ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRhZmM4MAotLS0gL2Rldi9udWxsCisrKyBiL01ha2VmaWxlCkBAIC0wLDAgKzEsMTY0IEBACisjCisjICAgIENvcHlyaWdodCAoYykgMjAxMC0yMDExIE5lc3QsIEluYy4KKyMgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgICAgVGhpcyBkb2N1bWVudCBpcyB0aGUgcHJvcGVydHkgb2YgTmVzdC4gSXQgaXMgY29uc2lkZXJlZAorIyAgICBjb25maWRlbnRpYWwgYW5kIHByb3ByaWV0YXJ5IGluZm9ybWF0aW9uLgorIworIyAgICBUaGlzIGRvY3VtZW50IG1heSBub3QgYmUgcmVwcm9kdWNlZCBvciB0cmFuc21pdHRlZCBpbiBhbnkgZm9ybSwKKyMgICAgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCB0aGUgZXhwcmVzcyB3cml0dGVuIHBlcm1pc3Npb24gb2YKKyMgICAgTmVzdC4KKyMKKyMgICAgRGVzY3JpcHRpb246CisjICAgICAgVGhpcyBmaWxlIGlzIHRoZSBtYWtlIGZpbGUgZm9yIGxpYnhtbDIsIGEgQy1iYXNlZCBsaWJyYXJ5IGZvcgorIyAgICAgIHBhcnNpbmcgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgKFhNTCkgZG9jdW1lbnRzLgorIworCitCdWlsZENvbmZpZ1NwZWNpYWxpemVkCTo9IE5vCitCdWlsZFByb2R1Y3RTcGVjaWFsaXplZAk6PSBObworCitpbmNsdWRlIHByZS5tYWsKKworUGFja2FnZU5hbWUJCTo9IGxpYnhtbDIKKworUGFja2FnZUV4dGVuc2lvbgk6PSB0YXIuZ3oKK1BhY2thZ2VTZXBhcmF0b3IJOj0gLQorCitQYWNrYWdlQXJjaGl2ZQkJOj0gJChQYWNrYWdlTmFtZSkuJChQYWNrYWdlRXh0ZW5zaW9uKQorUGFja2FnZVNvdXJjZURpcgk6PSAkKFBhY2thZ2VOYW1lKSQoUGFja2FnZVNlcGFyYXRvcikkKFBhY2thZ2VWZXJzaW9uKQorCitQYWNrYWdlQnVpbGRNYWtlZmlsZQk9ICQoY2FsbCBHZW5lcmF0ZUJ1aWxkUGF0aHMsTWFrZWZpbGUpCisKK0NsZWFuUGF0aHMJCSs9ICQoUGFja2FnZUxpY2Vuc2VGaWxlKQorCitabGliRGlyCQkJOj0gc3cvdHBzL3psaWIKK1psaWJTZWFyY2hQYXRoCQk6PSAkKGNhbGwgR2VuZXJhdGVSZXN1bHRQYXRocywkKFpsaWJEaXIpLHVzcikKKworaWZlcSAoJChCVUlMRF9GRUFUVVJFX0xUVE5HX1RPT0xTKSwgMSkKKwlXUklURVJfU1VQUE9SVCA9IC0td2l0aC13cml0ZXI9eWVzCisJU0NIRU1BU19TVVBQT1JUID0gLS13aXRoLXNjaGVtYXM9eWVzCitlbHNlCisJV1JJVEVSX1NVUFBPUlQgPSAtLXdpdGgtd3JpdGVyPW5vCisJU0NIRU1BU19TVVBQT1JUID0gLS13aXRoLXNjaGVtYXM9bm8KK2VuZGlmCisKK2FsbDogJChQYWNrYWdlRGVmYXVsdEdvYWwpCisKKyMgR2VuZXJhdGUgdGhlIHBhY2thZ2UgbGljZW5zZSBjb250ZW50cy4KKworJChQYWNrYWdlU291cmNlRGlyKS9DT1BZSU5HOiBzb3VyY2UKKworJChQYWNrYWdlTGljZW5zZUZpbGUpOiAkKFBhY2thZ2VTb3VyY2VEaXIpL0NPUFlJTkcKKwkkKGNvcHktcmVzdWx0KQorCisjIEV4dHJhY3QgdGhlIHNvdXJjZSBmcm9tIHRoZSBhcmNoaXZlIGFuZCBhcHBseSBwYXRjaGVzLCBpZiBhbnkuCisKKyQoUGFja2FnZVNvdXJjZURpcik6ICQoUGFja2FnZUFyY2hpdmUpICQoUGFja2FnZVBhdGNoUGF0aHMpCisJJChleHBhbmQtYW5kLXBhdGNoLXBhY2thZ2UpCisKKyMgUHJlcGFyZSB0aGUgc291cmNlcy4KKworLlBIT05ZOiBzb3VyY2UKK3NvdXJjZTogfCAkKFBhY2thZ2VTb3VyY2VEaXIpCisKKyMgUGF0Y2ggdGhlIHNvdXJjZXMsIGlmIG5lY2Vzc2FyeS4KKworLlBIT05ZOiBwYXRjaAorcGF0Y2g6IHNvdXJjZQorCisjIEdlbmVyYXRlIHRoZSBwYWNrYWdlIGJ1aWxkIG1ha2VmaWxlLgorCiskKFBhY2thZ2VCdWlsZE1ha2VmaWxlKTogfCAkKFBhY2thZ2VTb3VyY2VEaXIpICQoQnVpbGREaXJlY3RvcnkpCisJJChWZXJib3NlKWNkICQoQnVpbGREaXJlY3RvcnkpICYmIFwKKwkkKENVUkRJUikvJChQYWNrYWdlU291cmNlRGlyKS9jb25maWd1cmUgXAorCUNDPSIkKENDKSIgQ1hYPSIkKENYWCkiIEFSPSQoQVIpIFJBTkxJQj0kKFJBTkxJQikgU1RSSVA9JChTVFJJUCkgXAorCUlOU1RBTEw9IiQoSU5TVEFMTCkgJChJTlNUQUxMRkxBR1MpIiBcCisJLS1idWlsZD0kKEhvc3RUdXBsZSkgXAorCS0taG9zdD0kKFRhcmdldFR1cGxlKSBcCisJLS13aXRoLXpsaWI9JChabGliU2VhcmNoUGF0aCkgXAorCS0td2l0aG91dC1weXRob24gXAorCS0tcHJlZml4PS91c3IgXAorCS0tc3lzY29uZmRpcj0vZXRjIFwKKwktLWxvY2Fsc3RhdGVkaXI9L3ZhciBcCisJLS1kaXNhYmxlLXN0YXRpYyBcCisJLS13aXRoLWdudS1sZD1ubyBcCisJLS13aXRoLWMxNG49bm8gXAorCS0td2l0aC1jYXRhbG9nPW5vIFwKKwktLXdpdGgtZGVidWc9bm8gXAorCS0td2l0aC1kb2Nib29rPW5vIFwKKwktLXdpdGgtZmV4Y2VwdGlvbnM9bm8gXAorCS0td2l0aC1mdHA9bm8gXAorCS0td2l0aC1oaXN0b3J5PW5vIFwKKwktLXdpdGgtaHRtbD1ubyBcCisJLS13aXRoLWh0dHA9bm8gXAorCS0td2l0aC1pY29udj1ubyBcCisJLS13aXRoLWlzbzg4NTl4PW5vIFwKKwktLXdpdGgtbGVnYWN5PW5vIFwKKwktLXdpdGgtbWVtLWRlYnVnPW5vIFwKKwktLXdpdGgtbWluaW11bT1ubyBcCisJLS13aXRoLW91dHB1dD15ZXMgXAorCS0td2l0aC1wYXR0ZXJuPW5vIFwKKwktLXdpdGgtcHVzaD1ubyBcCisJLS13aXRoLXJlYWRlcj1ubyBcCisJLS13aXRoLXJlYWRsaW5lPW5vIFwKKwktLXdpdGgtcmVnZXhwcz1ubyBcCisJLS13aXRoLXJ1bi1kZWJ1Zz1ubyBcCisJLS13aXRoLXNheDE9eWVzIFwKKwkkKFNDSEVNQVNfU1VQUE9SVCkgXAorCS0td2l0aC1zY2hlbWF0cm9uPW5vIFwKKwktLXdpdGgtdGhyZWFkcz1ubyBcCisJLS13aXRoLXRocmVhZC1hbGxvYz1ubyBcCisJLS13aXRoLXRyZWU9eWVzIFwKKwktLXdpdGgtdmFsaWQ9bm8gXAorCSQoV1JJVEVSX1NVUFBPUlQpIFwKKwktLXdpdGgteGluY2x1ZGU9bm8gXAorCS0td2l0aC14cGF0aD1ubyBcCisJLS13aXRoLXhwdHI9bm8gXAorCS0td2l0aC1tb2R1bGVzPW5vCisKKyMgQ29uZmlndXJlIHRoZSBzb3VyY2UgZm9yIGJ1aWxkaW5nLgorCisuUEhPTlk6IGNvbmZpZ3VyZQorY29uZmlndXJlOiBzb3VyY2UgJChQYWNrYWdlQnVpbGRNYWtlZmlsZSkKKworIyBCdWlsZCB0aGUgc291cmNlLgorIworIyBXZSBoYXZlIHRvIHVuc2V0IE1BS0VGTEFHUyBzaW5jZSB0aGV5IGNvbmZ1c2UgdGhlIHBhY2thZ2UgYnVpbGQgb3RoZXJ3aXNlLgorCisuUEhPTlk6IGJ1aWxkCitidWlsZDogY29uZmlndXJlCisJJChWZXJib3NlKXVuc2V0IE1BS0VGTEFHUyAmJiBcCisJJChNQUtFKSAkKEpPQlNGTEFHKSAtQyAkKEJ1aWxkRGlyZWN0b3J5KSBhbGwKKworIyBTdGFnZSB0aGUgYnVpbGQgdG8gYSB0ZW1wb3JhcnkgaW5zdGFsbGF0aW9uIGFyZWEuCisjCisjIFdlIGhhdmUgdG8gdW5zZXQgTUFLRUZMQUdTIHNpbmNlIHRoZXkgY29uZnVzZSB0aGUgcGFja2FnZSBidWlsZCBvdGhlcndpc2UuCisjCisjIFdlIGV4cGxpY3RseSByZW1vdmUgJ2xpYnhtbDIubGEnIGJlY2F1c2Ugc29tZSBwYWNrYWdlcyB0aGF0IGRlcGVuZAorIyBvbiBsaWJ4bWwyIHVzZSBsaWJ0b29sLiBJZiBsaWJ0b29sIGZpbmRzIGEgJyoubGEnIGZpbGUgZm9yIGEKKyMgbGlicmFyeSwgaXQgdXNlcyB0aGUgdmFsdWUgb2YgJ2xpYmRpcj08ZGlyPicgaXQgZmluZHMuIEluIG91ciBjYXNlLAorIyBzaW5jZSAnLS1wcmVmaXg9L3VzcicgdGhpcyB2YWx1ZSBpcyAnL3Vzci9saWInLiBJdCB0aGVuIHJlc29sdmVzCisjICctbGxpYnhtbDInIHRvICcvdXNyL2xpYi9saWJ4bWwyLnNvJy4gSW4gYSBjcm9zcy1jb21waWxhdGlvbgorIyBlbnZpcm9ubWVudCwgdGhpcyBpcyBsaWtlbHkgdG8gYmUgbmVpdGhlciB0aGUgcmlnaHQgYXJjaGl0ZWN0dXJlIG5vcgorIyB0aGUgcmlnaHQgdmVyc2lvbiB0byBsaW5rIGFnYWluc3QuIEluIHNob3J0LCB3ZSBsb3NlLgorIworIyBXZSBjb3VsZCBhbHNvIGhhbmRsZSB0aGlzIGJ5IHJlbW92aW5nIERFU1RESVIgYW5kIHNldHRpbmcgdGhlIHByZWZpeAorIyB0byAkKFJlc3VsdERpcmVjdG9yeSk7IGhvd2V2ZXIsIHRoYXQgcmVzdWx0cyBpbiBsaWJ0b29sIGhhcmQtY29kaW5nCisjICQoUmVzdWx0RGlyZWN0b3J5KSBhcyB0aGUgUlBBVEggaW4gdGhlIGxpbmtlZCBleGVjdXRhYmxlcyB3aGljaCBpcworIyBOT1Qgd2hhdCB3ZSB3YW50IGVpdGhlci4gV2UgbG9zZSBhZ2Fpbi4KKyMKKyMgQnkgcmVtb3ZpbmcgdGhlICcqLmxhJyBmaWxlLCB3ZSB3aW4gYnkgZW5zdXJpbmcgbmVpdGhlciBhIG1pc2RpcmVjdGVkCisjIGxpbmsgbm9yIGFuIFJQQVRILgorCisuUEhPTlk6IHN0YWdlCitzdGFnZTogYnVpbGQgfCAkKFJlc3VsdERpcmVjdG9yeSkKKwkkKFZlcmJvc2UpdW5zZXQgTUFLRUZMQUdTICYmIFwKKwkkKE1BS0UpICQoSk9CU0ZMQUcpIC1DICQoQnVpbGREaXJlY3RvcnkpIERFU1RESVI9JChSZXN1bHREaXJlY3RvcnkpIGluc3RhbGwKKwkkKFZlcmJvc2UpJChSTSkgJChSTUZMQUdTKSAkKGNhbGwgR2VuZXJhdGVSZXN1bHRQYXRocywsdXNyL2xpYi9saWJ4bWwyLmxhKQorCitjbGVhbjoKKwkkKFZlcmJvc2UpJChSTSkgJChSTUZMQUdTKSAtciAkKFBhY2thZ2VTb3VyY2VEaXIpCisJJChWZXJib3NlKSQoUk0pICQoUk1GTEFHUykgLXIgJChCdWlsZERpcmVjdG9yeSkKKwkkKFZlcmJvc2UpJChSTSkgJChSTUZMQUdTKSAtciAkKFJlc3VsdERpcmVjdG9yeSkKKworaW5jbHVkZSBwb3N0Lm1hawpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9BVVRIT1JTIGIvbGlieG1sMi0yLjcuNy9BVVRIT1JTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMmU5YTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L0FVVEhPUlMKQEAgLTAsMCArMSw1IEBACitEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CitCam9ybiBSZWVzZSA8YnJlZXNlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK1dpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4gZm9yIHRoZSBXaW5kb3dzIHBvcnQKK0FsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L0NPUFlJTkcgYi9saWJ4bWwyLTIuNy43L0NPUFlJTkcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE3ZTk1NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvQ09QWUlORwpAQCAtMCwwICsxLDI3IEBACitFeGNlcHQgd2hlcmUgb3RoZXJ3aXNlIG5vdGVkIGluIHRoZSBzb3VyY2UgY29kZSAoZS5nLiB0aGUgZmlsZXMgaGFzaC5jLAorbGlzdC5jIGFuZCB0aGUgdHJpbyBmaWxlcywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgYSBzaW1pbGFyIGxpY2VuY2UgYnV0Cit3aXRoIGRpZmZlcmVudCBDb3B5cmlnaHQgbm90aWNlcykgYWxsIHRoZSBmaWxlcyBhcmU6CisKKyBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMyBEYW5pZWwgVmVpbGxhcmQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1ci0KK25pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVQtCitORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitEQU5JRUwgVkVJTExBUkQgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSCitJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT04tCitORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorCitFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiBEYW5pZWwgVmVpbGxhcmQgc2hhbGwgbm90CitiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIgZGVhbC0KK2luZ3MgaW4gdGhpcyBTb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbiBmcm9tIGhpbS4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9DaGFuZ2VMb2cgYi9saWJ4bWwyLTIuNy43L0NoYW5nZUxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjA0NWU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9DaGFuZ2VMb2cKQEAgLTAsMCArMSwxOTY3OCBAQAorRnJpIEp1bCAxMCAxNjoxMTozNCBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4IGEgcmVncmVzc2lvbiBpbiBlbnRpdHkgcGFyc2luZyB3aGVuIHVzaW5nIHRoZSByZWFkZXIKKwkgIGludHJvZHVjZWQgYmVjYXVzZSB3ZSB3ZXJlIG5vdCByZXVzaW5nIF9wcml2YXRlIG9uIGVudGl0aWVzIHBhcnNpbmcKKwkgIGNvbnRleHQKKworVGh1IEp1bCAgOSAxMDoyMTowMCBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJQWxla3NleSBTYW5pbiBzdXBwb3J0IGZvciBjMTRuIDEuMQorCSogYzE0bi5jIGluY2x1ZGUvbGlieG1sL2MxNG4uaDogYWRkcyBzdXBwb3J0IGZvciBDMTROIDEuMSwKKwkgIG5ldyBmbGFncyBhdCB0aGUgQVBJIGxldmVsCisJKiBydW50ZXN0LmMgTWFrZWZpbGUuYW0gdGVzdEMxNE4uYyB4bWxsaW50LmM6IGFkZCBzdXBwb3J0IGluIENMSQorCSAgdG9vbHMgYW5kIHRlc3QgYmluYXJpZXMKKwkqIHJlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzLyogdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzLyo6CisJICBhZGQgYSBuZXcgYmF0Y2ggb2YgdGVzdHMKKworVGh1IEp1bCAgOSAwODo1MjozNSBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWcuaC5pbjogdXBkYXRlIG9mIGxpYnRvb2wgc2VlbXMgdG8gaGF2ZSBtb2RpZmllZCBpdAorCSogcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IHB5dGhvbiB1cGRhdGUgbW9kaWZpZWQgdGhlIG9yZGVyCisJICBvZiBjbGFzc2VzIGFwcGFyZW50bHkKKworVGh1IEp1bCAgOSAwODo0MzowNiBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGF2b2lkIGNhbGxpbmcgeG1sQWRkSUQgd2l0aCBOVUxMIHZhbHVlcworCSogcGFyc2VyLmM6IGFkZCBhIGZldyB4bWxJbml0UGFyc2VyIGluIHNvbWUgZW50cnkgcG9pbnRzCisKK0ZyaSBKdW4gMTkgMTk6NTE6MDggQ0VTVCAyMDA5IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGNkYXRhem9uZS5vcmc+CisKKwkqIHBhcnNlci5jOiB1c2Ugb3B0aW9ucyBmcm9tIGN1cnJlbnQgcGFyc2VyIGNvbnRleHQgd2hlbiBjcmVhdGluZyAKKwkgIGEgcGFyc2VyIGNvbnRleHQgd2l0aGluIHhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5CisJKiB4bWx3cml0ZXIuYzogZml4IGVycm9yIG1lc3NhZ2Ugd2hlbiB1bmFibGUgdG8gY3JlYXRlIG91dHB1dCBmaWxlCisKK1RodSBKdW4gIDQgMTE6MTc6MjMgQ0VTVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogYzE0bi5jIGRlYnVnWE1MLmMgZG9jL2V4YW1wbGVzL2lvMi5jIHBhcnNlci5jIHNjaGVtYXRyb24uYworCSAgdmFsaWQuYyB4bWxzY2hlbWFzLmMgeG1sd3JpdGVyLmMgeHBhdGguYzogdXNlICVzIHRvIHByaW50ZiBzdHJpbmcKKwkgIHBhdGNoIGJ5IENocmlzdGlhbiBQZXJzY2gsIGZpeGVzICM1ODE2MTIKKworVGh1IEp1biAgNCAxMTowNjowNyBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyB0aHJlYWRzLmM6IGNoYW5nZSB0aGUgdGhyZWFkaW5nIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlCisJICBhcyBzdWdnZXN0ZWQgYnkgSWdvciBOb3Zvc2VsdHNldiB0byBhdm9pZCBjcmFzaCBpZiB4bWxJbml0UGFyc2VyKCkKKwkgIGlzIGNhbGxlZCBmcm9tIGEgdGhyZWFkIHdoaWNoIGlzIG5vdCB0aGUgbWFpbiBvbmUsIHNob3VsZCBmaXgKKwkgICM1ODQ2MDUKKworRnJpIE1heSAxNSAxNzo1NDo0OCBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IG1ha2Ugc3VyZSB3ZSBrZWVwIGxpbmUgbnVtYmVycyBmaXhlcyAjNTgwNzA1CisJICBiYXNlZCBBYXJvbiBQYXR0ZXJzb24gcGF0Y2gKKworVHVlIE1heSAxMiAwOToxMzo1OCBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGEgYnJva2VuIEhUTUwgdGFibGUgYXR0cmlidXRlcyBpbml0aWFsaXphdGlvbiwKKwkgIGZpeGVzICM1ODE4MDMsIGJ5IFJvbGFuZCBTdGVpbmVyIDxyb2xhbmRzdGVpbmVyQGdvb2dsZS5jb20+CisKK1R1ZSBNYXkgMTIgMDg6NTQ6MjAgQ0VTVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sMi5kb2FwOiBhZGRpbmcgUkRGIGRvcGUgZmlsZS4KKworVHVlIE1heSAxMiAwODo0Mjo1MiBDRVNUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IGFkYXB0IHRoZSBleHRyYSB2ZXJzaW9uIGRldGVjdGlvbiBjb2RlIHRvIGdpdAorCitXZWQgQXByIDI5IDE2OjA5OjM4IENFU1QgMjAwOSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjZGF0YXpvbmUub3JnPgorCisJKiBwYXJzZXIuYzogZG8gbm90IHNldCBlcnJvciBjb2RlIGluIHhtbE5zV2FybgorCitXZWQgQXByIDE1IDExOjE4OjI0IENFU1QgMjAwOSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oIGluY2x1ZGUvbGlieG1sL3htbHdyaXRlci5oCisJICBpbmNsdWRlL2xpYnhtbC9yZWxheG5nLmggaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluCisJICBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaC5pbiBpbmNsdWRlL2xpYnhtbC92YWxpZC5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmggaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogY2hhbmdlCisJICBBVFRSSUJVVEVfUFJJTlRGIGludG8gTElCWE1MX0FUVFJfRk9STUFUIHRvIGF2b2lkIG1hY3JvIG5hbWUKKwkgIGNvbGxpc2lvbnMgd2l0aCBvdGhlciBwYWNrYWdlcyBhbmQgaGVhZGVycyBhcyByZXBvcnRlZCBieQorCSAgQmVsZ2Fib3IgYW5kIE1pa2UgSG9tbWV5CisKK1RodSBBcHIgIDIgMTM6NTc6MTUgQ0VTVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYzogZml4IHN0cnVjdHVyZWQgZXJyb3IgaGFuZGxpbmcgcHJvYmxlbXMgIzU2NDIxNworCitUaHUgTWFyIDI2IDE5OjA4OjA4IENFVCAyMDA5IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGNkYXRhem9uZS5vcmc+CisKKwkqIHBhcnNlci5jOiB1c2Ugb3B0aW9ucyBmcm9tIGN1cnJlbnQgcGFyc2VyIGNvbnRleHQgd2hlbiBjcmVhdGluZyAKKwkgIGFuIGVudGl0eSBwYXJzZXIgY29udGV4dAorCitXZWQgTWFyIDI1IDExOjQwOjM0IENFVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jLyo6IHVwZGF0ZWQgU1ZOIFVSTCBmb3IgR05PTUUgYXMgcG9pbnRlZCBieSBWaW5jZW50IExlZmV2cmUKKwkgIGFuZCByZWdlbmVyYXRlZCBkb2NzCisKK1dlZCBNYXIgMjUgMTE6MjE6MjYgQ0VUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogaGlkZSB0aGUgbmJQYXJzZSogdmFyaWFibGVzIHVzZWQgZm9yIGRlYnVnZ2luZworCSAgYXMgcG9pbnRlZCBieSBNaWtlIEhvbW1leQorCitXZWQgTWFyIDI1IDEwOjUwOjA1IENFVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS93c29ja2NvbXBhdC5oIHdpbjMyL01ha2VmaWxlLmJjYiB4cGF0aC5jOiBmaXhlcyBmb3IKKwkgIEJvcmxhbmQvQ29kZUdlYXIvRW1iYXJjYWRlcm8gY29tcGlsZXJzIGJ5IEVyaWMgWnVyY2hlcgorCitXZWQgTWFyIDI1IDEwOjQzOjA3IENFVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogeG1sWFBhdGhSZWdpc3Rlck5zIHNob3VsZCBub3QgYWxsb3cgZW5wdHkgcHJlZml4ZXMKKworTW9uIE1hciAyMyAyMDoyNzoxNSBDRVQgMjAwOSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogYWRkIGEgbWlzc2luZyBjaGVjayBpbiB4bWxBZGRTaWJsaW5nLCBwYXRjaCBieSBLcmlzIEJyZXVrZXIKKwkqIHhtbElPLmM6IGF2b2lkIHhtbEFsbG9jT3V0cHV0QnVmZmVyIHVzaW5nIFhNTF9CVUZGRVJfRVhBQ1Qgd2hpY2gKKwkgIGxlYWRzIHRvIHBlcmZvcm1hbmNlcyBwcm9ibGVtcyBlc3BlY2lhbGx5IG9uIFdpbmRvd3MuCisKK1R1ZSBNYXIgIDMgMTQ6MzAuMjggSEtUIDIwMDkgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHRyaW8uaDogY2hhbmdlZCBpbmNsdWRlIG9mIGNvbmZpZy5oIHRvIGJlIHN1cnJvdW5kZWQgYnkKKwkgIHF1b3RhdGlvbiBtYXJrcyAjNTcwODA2CisKK1NhdCBGZWIgMjEgMTA6MjA6MzQgQ0VUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0aHJlYWRzLmMgcGFyc2VyLmM6IG1vcmUgd2FybmluZ3MgYWJvdXQgeG1sQ2xlYW51cFRocmVhZHMgYW5kCisJICB4bWxDbGVhbnVwUGFyc2VyIHRvIGF2b2lkIHRyb3VibGVzIGxpa2UgIzU3MTQwOQorCitGcmkgRmViIDIwIDA5OjQwOjA0IENFVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sd3JpdGVyLmM6IGNsZWFudXBzIGFuZCBlcnJvciByZXBvcnRzIHdoZW4geG1sVGV4dFdyaXRlclZTcHJpbnRmCisJICBmYWlscywgYnkgSmlubWVpIFRhdHV5YQorCitGcmkgRmViIDIwIDA5OjE4OjU2IENFVCAyMDA5IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sd3JpdGVyLmM6IHJlbW92ZSBhIGNvdXBsZSBvZiBsZWFrcyBvbiBlcnJvcnMgcmVwb3J0ZWQgYnkKKwkgIEppbm1laSBUYXR1eWEKKworU3VuIEphbiAxOCAyMjozNzo1OSBDRVQgMjAwOSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MveG1sLmh0bWwgZG9jLyo6IHByZXBhcmluZyAwLjcuMyByZWxlYXNlCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaCBTQVgyLmM6IGZpeCBhIHR5cG8gaW4gYSBuYW1lCisKK1N1biBKYW4gMTggMjE6NDg6MjggQ0VUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBpbmNsdWRlL2xpYnhtbC94bWx3cml0ZXIuaAorCSAgaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbgorCSAgaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmguaW4gaW5jbHVkZS9saWJ4bWwvdmFsaWQuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6CisJICBwb3J0IHBhdGNoIGZyb20gTWFyY3VzIE1laXNzbmVyIHRvIGFkZCBnY2MgY2hlY2tpbmcgZm9yCisJICBwcmludGYgbGlrZSBmdW5jdGlvbnMgcGFyYW1ldGVycywgc2hvdWxkIGZpeCAjNjUwNjgKKwkqIGRvYy9hcGlidWlsZC5weSBkb2MvKjogbW9kaWZpZWQgdGhlIHNjcmlwdCBhY2NvcmRpbmdseQorCSAgYW5kIHJlZ2VuZXJhdGVkCisJKiB4cGF0aC5jIHhtbG1lbW9yeS5jIHRocmVhZHMuYzogZml4IGEgZmV3IHdhcm5pbmdzCisKK1N1biBKYW4gMTggMjA6NDA6NDIgQ0VUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaC5pbjogd2luZG93cyBoZWFkZXIgc2hvdWxkCisJICBnZXQgdGhlIHNhbWUgZGVmaW5lCisKK1N1biBKYW4gMTggMTg6MjI6MzMgQ0VUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW4gaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6CisJICBhcHBseSBwYXRjaCBmcm9tIE1hcmN1cyBNZWlzc25lciB0byBhZGQgZ2NjIGF0dHJpYnV0ZSBhbGxvY19zaXplCisJICBzaG91bGQgZml4ICM1NTI1MDUKKwkqIGRvYy9hcGlidWlsZC5weSBkb2MvKiB0ZXN0YXBpLmM6IHJlZ2VuZXJhdGUgdGhlIEFQSQorCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg6IGZpeCBhIGNvbW1lbnQgcHJvYmxlbSByYWlzZWQKKwkgIGJ5IGFwaWJ1aWxkLnB5CisKK1N1biBKYW4gMTggMTY6Mzk6MDEgQ0VUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0aHJlYWRzLmM6IGFsc28gcmVtb3ZlIHB0aHJlYWQga2V5IHdoZW4gc3RvcHBpbmcgdGhyZWFkCisJICBzdXBwb3J0LCBwYXRjaCBiYXNlZCBvbiBBbGV4IE90dCBvbmUgc2hvdWxkIGZpeCAjNTY0NzIzCisKK1N1biBKYW4gMTggMTU6NTU6MTggQ0VUIDIwMDkgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0aHJlYWRzLmM6IHBhdGNoIGZyb20gRGFuaWVsIFppbW1lcm1hbm4gZml4aW5nIGEgbWVtb3J5IGxlYWsKKwkgIGluIGFuIGVkZ2UgY2FzZSwgc29sdmVzICM1NjIyMzAKKworU3VuIEphbiAxOCAxNTowNjowNSBDRVQgMjAwOSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIFNBWDIuYzogYWRkIGEgbmV3IGRlZmluZQorCSAgWE1MX01BWF9URVhUX0xFTkdUSCBsaW1pdGluZyB0aGUgbWF4aW11bSBzaXplIG9mIGEgc2luZ2xlIHRleHQKKwkgIG5vZGUsIHRoZSBkZWZhdWx0aXMgMTBNQiBhbmQgY2FuIGJlIHJlbW92ZWQgd2l0aCB0aGUgSFVHRQorCSAgcGFyc2luZyBvcHRpb24KKworTW9uIEphbiAwNSAxODoyODo0MSBDRVQgMjAwOSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjZGF0YXpvbmUub3JnPgorCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBwYXJzZXIuYzogYWRkIFhNTF9QQVJTRV9PTERTQVggcGFyc2VyIAorCSAgb3B0aW9uIHRvIGVuYWJsZSBwcmUgMi43IFNBWCBiZWhhdmlvci4KKworV2VkIERlYyAzMSAyMzoxMTozNyBDRVQgMjAwOCBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjZGF0YXpvbmUub3JnPgorCisJKiB0cmVlLmM6IHNldCBkb2Mgb24gbGFzdCBjaGlsZCB0cmVlIGluIHhtbEFkZENoaWxkTGlzdCBmb3IgCisJICBidWcgIzU0Njc3Mi4gRml4IHByb2JsZW0gYWRkaW5nIGFuIGF0dHJpYnV0ZSB2aWEgd2l0aCB4bWxBZGRDaGlsZCAKKwkgIHJlcG9ydGVkIGJ5IEtyaXMgQnJldWtlci4KKworU3VuIERlYyAyNyAxNDoxNjoxMyBDRVQgMjAwOCBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjZGF0YXpvbmUub3JnPgorCisJKiB4bWx3cml0ZXIuYzogZml4IGluZGVudGluZyBpbiB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQgZm9yIAorCSAgYnVnIyA1NTQzNTMuCisKK1RodSBOb3YgMjcgMTY6MjQ6NTIgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC90cmVlLmggdHJlZS5jIHB5dGhvbi9nZW5lcmF0b3IucHk6IGFkZHMKKwkgIGVsZW1lbnQgdHJhdmVyc2FsIHN1cHBvcnQKKwkqIHZhbGlkLmM6IGF2b2lkIGEgd2FybmluZworCSogZG9jLyo6IHJlZ2VuZXJhdGVkCisKK01vbiBOb3YgMTcgMTY6NTY6MTggQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVgyLmMgcGFyc2VyLmM6IGZpeCBmb3IgQ1ZFLTIwMDgtNDIyNiwgYSBtZW1vcnkgb3ZlcmZsb3cKKwkgIHdoZW4gYnVpbGRpbmcgZ2lnYW50aWMgdGV4dCBub2RlcywgYW5kIGEgYml0IG9mIGNsZWFudXAKKwkgIHRvIGJldHRlciBoYW5kbGVkIG91dCBvZiBtZW1vcnkgcHJvYmxlbSBpbiB0aGF0IGNvZGUuCisJKiB0cmVlLmM6IGZpeCBmb3IgQ1ZFLTIwMDgtNDIyNSwgbGFjayBvZiB0ZXN0aW5nIGxlYWRzIHRvCisJICBhIGJ1c3kgbG9vcCB0ZXN0IGFzc3VtaW5nIG9uZSBoYXZlIGVub3VnaCBjb3JlIG1lbW9yeS4KKworVGh1IE5vdiAgNiAxNDozNDozNSBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogTWF0dGhpYXMgS2FlaGxja2UgcmVwb3J0ZWQgYSBidWlsZCBwcm9ibGVtIHdoZW4KKwkgIG5vdCBjb21waWxpbmcgSFRNTCBzdXBwb3J0IGluLgorCitGcmkgT2N0IDE3IDE1OjI0OjA4IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvTWFrZWZpbGUuYW06IHBhdGNoIGZyb20gQWRyaWFuIEJ1bmsgd2hpY2gKKwkgIGFkZHMgLS1kaXNhYmxlLXJlYnVpbGQtZG9jcyB0byBhdm9pZCByZWJ1aWxkaW5nIHRoZW0KKworRnJpIE9jdCAgMyAwOTo0Mzo0NSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gZG9jLyogTkVXUzogcHJlcGFyaW5nIHRoZSByZWxlYXNlIG9mIDIuNy4yCisJKiBkaWN0LmM6IGZpeCB0aGUgU29sYXJpcyBwb3J0YWJpbGl0eSBpc3N1ZQorCSogcGFyc2VyLmM6IGFkZGl0aW9uYWwgY2xlYW51cCBvbiAjNTU0NjYwIGZpeAorCSogdGVzdC9lbnQxMyByZXN1bHQvZW50MTMqIHJlc3VsdC9ub2VudC9lbnQxMyo6IGFkZGVkIHRoZQorCSAgZXhhbXBsZSBpbiB0aGUgcmVncmVzc2lvbiB0ZXN0IHN1aXRlLgorCSogSFRNTHBhcnNlci5jOiBoYW5kbGUgbGVhZGluZyBCT00gaW4gaHRtbFBhcnNlRWxlbWVudCgpCisKK1RodSBPY3QgIDIgMjI6NTM6MzkgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeCBhIG5hc3R5IGJ1ZyBpbnRyb2R1Y2VkIHdoZW4gY2xlYW5pbmcgdXAKKwkgIGVudGl0aWVzIHByb2Nlc3NpbmcgaW4gMi43LnggLCBmaXhlcyAjNTU0NjYwCisKK1RodSBTZXAgMjUgMTg6MDQ6MjAgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBmaXggYW4gSFRNTCBwYXJzaW5nIGVycm9yIG9uIGxhcmdlIGRhdGEgc2VjdGlvbnMKKwkgIHJlcG9ydGVkIGJ5IE1pa2UgRGF5CisJKiB0ZXN0L0hUTUwvdXRmOGJ1Zy5odG1sIHJlc3VsdC9IVE1ML3V0ZjhidWcuaHRtbC5lcnIKKwkgIHJlc3VsdC9IVE1ML3V0ZjhidWcuaHRtbC5zYXggcmVzdWx0L0hUTUwvdXRmOGJ1Zy5odG1sOiBhZGQgdGhlCisJICByZXByb2R1Y2VyIHRvIHRoZSB0ZXN0IHN1aXRlCisKK1RodSBTZXAgMjUgMTc6MzU6NTcgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcnVueG1sY29uZi5jOiBmaXggY29tcGlsYXRpb24gaWYgWFBhdGggaXMgbm90IGluY2x1ZGVkCisKK1RodSBTZXAgMjUgMTY6NTQ6MDQgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IHBhdGNoIGZyb20gUmljY2FyZG8gU2N1c3NhdCBmaXhpbmcgY3VzdG9tIGVycm9yCisJICBoYW5kbGVycyBwcm9ibGVtcy4KKworVGh1IFNlcCAyNSAxNjozMDoxMSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWxzYXZlLmggeG1sc2F2ZS5jOiBuZXcgb3B0aW9ucyB0byBzZXJpYWxpemUKKwkgIGFzIFhNTC9IVE1ML1hIVE1MIGFuZCByZXN0b3JlIG9sZCBlbnRyeSBwb2ludCBiZWhhdmlvdXJzCisKK01vbiBTZXAgIDEgMTY6NDk6MDUgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL3htbC5odG1sIGRvYy9uZXdzLmh0bWwgY29uZmlndXJlLmluIHB5dGhvbi9zZXR1cC5weSBORVdTOgorCSAgcHJlcGFyZSByZWxlYXNlIG9mIDIuNy4xCisKK01vbiBTZXAgIDEgMTU6MzU6MTMgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogc2NoZW1hdHJvbi5jIHhwYXRoLmM6IGFwcGxpZWQgYSBjb3VwbGUgb2YgcGF0Y2hlcyBmcm9tIE1hcnRpbgorCSAgYXZvaWRpbmcgc29tZSBsZWFrcywgZml4aW5xIFFOYW1lIGNoZWNrcyBpbiBYUGF0aCwgWFBhdGggZGVidWdnaW5nCisJICBhbmQgc2NoZW1hdHJvbiBjb2RlIGNsZWFudXBzLgorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy94cGF0aGxlYWsucHk6IGFkZCB0aGUKKwkgIHNwZWNpZmljIHJlZ3Jlc3Npb24gdGVzdHMsIGp1c3QgdHdlYWsgaXQgdG8gYXZvaWQgb3V0cHV0IGJ5IGRlZmF1bHQKKworTW9uIFNlcCAgMSAxNTowMjowNSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmlvbmFuLmM6IEJvcmxhbmQgQyBmaXggZnJvbSBNb3JpdHogQm90aAorCSogdGVzdGFwaS5jOiByZWdlbmVyYXRlLCB3b3JrYXJvdW5kIGEgcHJvYmxlbSBmb3IgYnVmZmVyIHRlc3RpbmcKKwkqIHhtbElPLmMgSFRNTHRyZWUuYzogbmV3IGludGVybmFsIGVudHJ5IHBvaW50IHRvIGhpZGUgZXZlbiBiZXR0ZXIKKwkgIHhtbEFsbG9jT3V0cHV0QnVmZmVySW50ZXJuYWwKKwkqIHRyZWUuYzogaGFyZGVuIHRoZSBjb2RlIGFyb3VuZCBidWZmZXIgYWxsb2NhdGlvbiBzY2hlbWVzCisJKiBwYXJzZXIuYzogcmVzdG9yZSB0aGUgd2FybmluZyB3aGVuIG5hbWVzcGFjZSBuYW1lcyBhcmUgbm90IGFic29sdXRlCisJICBVUklzCisJKiBydW54bWxjb25mLmM6IGNvbnRpbnVlIHJlZ3Jlc3Npb24gdGVzdHMgaWYgd2UgZ2V0IHRoZSBleHBlY3RlZAorCSAgbnVtYmVyIG9mIGVycm9ycworCSogTWFrZWZpbGUuYW06IHJ1biB0aGUgcHl0aG9uIHRlc3RzIG9uIG1ha2UgY2hlY2sKKwkqIHhtbHNhdmUuYzogaGFuZGxlIHRoZSBIVE1MIGRvY3VtZW50cyBhbmQgdHJlZXMKKwkqIHB5dGhvbi9saWJ4bWwuYzogY29udmVydCBweXRob24gc2VyaWFsaXphdGlvbiB0byB0aGUgeG1sU2F2ZSBBUElzCisJICBhbmQgYXZvaWQgc29tZSBob3JyaWJsZSBoYWNrcworCitTYXQgQXVnIDMwIDE2OjU4OjQwIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiwgZG9jLyo6IHByZXBhcmluZyAyLjcuMCByZWxlYXNlCisJKiB0cmVlLmM6IHJlbW92ZSBzb21lIHRlc3RpbmcgdHJhY2VzCisJKiBwYXJzZXIuYyB4bWxJTy5jIHhtbHNjaGVtYXMuYzogcmVtb3ZlIHNvbWUgd2FybmluZ3MKKworU2F0IEF1ZyAzMCAxNDo1MDoxNiBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC90cmVlLmggdHJlZS5jOiBtYWtlIGEgbmV3IGtpbmQgb2YgYnVmZmVyIHdoZXJlCisJICBzaHJpbmtpbmcgYW5kIGFkZGluZyBpbiBoZWFkIGNhbiBhdm9pZCByZWFsbG9jYXRpb24gb3IgZnVsbAorCSAgYnVmZmVyIG1lbW1vdmVzCisJKiBlbmNvZGluZy5jIHhtbElPLmM6IHVzZSB0aGUgbmV3IGtpbmQgb2YgYnVmZmVycyBmb3Igb3V0cHV0CisJICBidWZmZXJzCisKK1NhdCBBdWcgMzAgMTA6MTg6MTMgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jLyogdGVzdGFwaS5jOiByZWdlbmVyYXRlZAorCitGcmkgQXVnIDI5IDIxOjUzOjEyIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9leGFtcGxlcy9yZWFkZXIzLmM6IHBhdGNoIGZyb20gIFJvYmVydCBTY2h3ZWJlbCAsIGFsbG93cyB0bworCSAgY29tcGlsZSB0aGUgZXhhbXBsZSBpZiBjb25maWd1cmVkIHdpdGhvdXQgb3V0cHV0IHN1cHBvcnQgZml4ZXMKKwkgICM1NDU1ODIKKwkqIE1ha2VmaWxlLmFtOiBhZGQgdGVzdHJlY3Vyc2UgdG8gdGhlIG1ha2UgY2hlY2sgdGVzdHMKKwkqIEhUTUxwYXJzZXIuYzogaWYgdGhlIHBhcnNlciBnb3QgYSBlbmNvZGluZyBhcmd1bWVudCBpdCBzaG91bGQgYmUKKwkgIHVzZWQgb3ZlciB3aGF0IHRoZSBtZXRhIHNwZWNpZmllcywgcGF0Y2ggZml4aW5nICM1MzYzNDYKKworRnJpIEF1ZyAyOSAxNDo0MTozOCBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYSBjb3VwbGUgbW9yZSBmaXhlcworCSogbmFub2h0dHAuYyBuYW5vZnRwLmM6IHBhdGNoIGZyb20gQW5kcmVhcyBGw6RyYmVyIHRvIGNvbXBpbGUgb24gSGFpa3UKKwkgIGZpeGVzICM1Mjc4ODAKKwkqIGRvYy9leGFtcGxlcy8qOiByZWdlbmVyYXRlZAorCitUaHUgQXVnIDI4IDE3OjMxOjQ2IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBjb21wbGV0ZWx5IGRpZmZlcmVudCBmaXggZm9yCisJICB0aGUgcmVjdXJzaW9uIGRldGVjdGlvbiBiYXNlZCBvbiBlbnRpdHkgZGVuc2l0eSwgYmlnIGNsZWFudXBzCisJICBpbiB0aGUgZW50aXR5IHBhcnNpbmcgY29kZSB0b28KKwkqIHJlc3VsdC8qLnNheCo6IHRoZSBwYXJzZXIgc2hvdWxkIG5vdCBhc2sgZm9yIHVzZWQgZGVmaW5lZCB2ZXJzaW9ucworCSAgb2YgdGhlIHByZWRlZmluZWQgZW50aXRpZXMKKwkqIHRlc3RyZWN1cnNlLmM6IGF1dG9tYXRpYyB0ZXN0IGZvciBlbnRpdHkgcmVjdXJzaW9uIGNoZWNrcworCSogTWFrZWZpbGUuYW06IGFkZGVkIHRlc3RyZWN1cnNlCisJKiB0ZXN0L3JlY3Vyc2UvbG9sKiB0ZXN0L3JlY3Vyc2UvZ29vZCo6IGEgZmlyc3Qgc2V0IG9mIHRlc3RzIGZvcgorCSAgdGhlIHJlY3Vyc2lvbgorCitXZWQgQXVnIDI3IDIxOjU1OjM0IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmggcGFyc2VyLmM6IGEgYml0IG9mIGNsZWFudXAgYW5kCisJICBhZGRlZCBjaGVja3MgYmFzZWQgb24gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgb2YgdGhlIHhtbGNvbmYgc3VpdGUKKworV2VkIEF1ZyAyNyAxOToyMjozNSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogYnVnIGluIHBhcnNpbmcgUkZDIDM5ODYgdXJpcyB3aXRoIHBvcnQgbnVtYmVycworCitXZWQgQXVnIDI3IDE3OjMwOjQ4IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBNYWtlZmlsZS5hbTogYWRkIGFuIC0td2l0aC1jb3ZlcmFnZSBjb25maWd1cmUgb3B0aW9uCisJICBhbmQgYSAnbWFrZSBjb3YnIHRhcmdldCBiYXNlZCBvbiBnY2MgcHJvZmlsaW5nIGFuZCB0aGUgbGNvdgorCSAgdG9vbC4gQ3VycmVudGx5IGF0IDY4LjklIGNvdmVyYWdlIG91dCBvZiAnbWFrZSBjaGVjaycgYW5kIAorCSAgcnVuc3VpdGUgZXhlY3V0aW9ucy4KKwkqIHhtbHJlYWRlci5jOiByZW1vdmUgd2FybmluZ3MgZHVlIHRvIEMrKyBjb21tZW50cworCitXZWQgQXVnIDI3IDE1OjAwOjU0IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIHBhcnNlci5jOiBjbGVhbnVwIGVudGl0eQorCSAgcHVzaGluZyBlcnJvciBoYW5kbGluZyBiYXNlZCBvbiBhIHBhdGNoIGZyb20gQXNod2luCisKK1dlZCBBdWcgMjcgMTM6NDE6MjYgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGhyZWFkcy5jOiBmaXggYSBzbWFsbCBpbml0aWFsaXphdGlvbiBwcm9ibGVtIHJhaXNlZCBieSBBc2h3aW4KKwkqIHRlc3RhcGkuYyBnZW50ZXN0LnB5OiBpbmNyZWFzZSB0ZXN0aW5nIGVzcGVjaWFsbHkgZm9yIGRvY3VtZW50CisJICB3aXRoIGFuIGludGVybmFsIHN1YnNldCwgYW5kIGVudGl0aWVzCisJKiB0cmVlLmM6IGZpeCBhIGRlYWxsb2NhdGlvbiBpc3N1ZSB3aGVuIHVubGlua2luZyBlbnRpdGllcyBmcm9tCisJICBhIGRvY3VtZW50LgorCSogdmFsaWQuYzogZml4IGEgbWlzc2luZyBlbnRyeSBwb2ludCB0ZXN0IG5vdCBmb3VuZCBwcmV2aW91c2x5LgorCSogZG9jLyo6IHJlZ2VuZXJhdGVkIHRoZSBBUElzLCBkb2NzIGV0Yy4KKworVHVlIEF1ZyAyNiAxNTowMjo1OCBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBwYXJzZXIuYyB4bWxsaW50LmM6IHN0cmVuZ3RoZW4gc29tZQorCSAgb2YgdGhlIGludGVybmFsIHBhcnNlciBsaW1pdHMsIGFkZCBhbiBYTUxfUEFSU0VfSFVHRSBvcHRpb24KKwkgIHRvIGJ5cGFzcyB0aGVtIGFsbC4gTW9yZSBpbnRlcm5hbCBwYXJzZXIgbGltaXRzIHdpbGwgc3RpbGwgbmVlZAorCSAgdG8gYmUgYWRkZWQuCisKK1R1ZSBBdWcgMjYgMDk6NDI6MDggQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGFkZCB0aGUgdGVzdGNoYXIgdG8gJ21ha2UgY2hlY2snCisJKiB4bWxzY2hlbWFzLmM6IFZvbGtlciBHcmFic2NoIHBvaW50ZWQgb3V0IGEgdHlwbworCSogeG1scmVnZXhwLmM6IHByb2R1Y3Rpb24gWzE5XSBmcm9tIFhNTCBTY2hlbWFzIHJlZ2V4cHMgd2VyZSBhCisJICBtaXN0YWtlIHJlbW92ZWQgaW4gdmVyc2lvbiBSRUMteG1sc2NoZW1hLTItMjAwNDEwMjgsIFZvbGtlciBHcmFic2NoCisJICBwcm92aWRlZCBhIHBhdGNoIHRvIHJlbW92ZSBpdAorCSogdGVzdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wLnhtbCB0ZXN0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzAueHNkCisJICB0ZXN0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzEueHNkIHJlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wXzAKKwkgIHJlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8xXzA6IFZvbGtlciBHcmFic2NoIGFsc28gcHJvdmlkZWQKKwkgIHJlZ2Vzc2lvbiB0ZXN0cyBmb3IgdGhpcworCitUdWUgQXVnIDI2IDA5OjI1OjM5IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oIHhpbmNsdWRlLmMgeG1sbGludC5jOiBwYXRjaCBiYXNlZCBvbgorCSAgV2llYW50IE5pZWxhbmRlciBjb250cmlidXRpb24gdG8gYWRkIHRoZSBvcHRpb24gb2Ygbm90IGRvaW5nCisJICBVUkkgYmFzZSBmaXh1cCBpbiBYSW5jbHVkZQorCitNb24gQXVnIDI1IDE2OjUyOjUzIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gQXN3aW4gdG8gZml4IHRyZWUgc2tpcHBpbmcKKwkqIGluY2x1ZGUvbGlieG1sL2VudGl0aWVzLmggZW50aXRpZXMuYzogZml4ZWQgYSBjb21tZW50IGFuZAorCSAgYWRkZWQgYSBuZXcgeG1sTmV3RW50aXR5KCkgZW50cnkgcG9pbnQKKwkqIHJ1bnRlc3QuYzogYmUgbGVzcyB2ZXJib3NlCisJKiB0cmVlLmM6IHNwYWNlIGFuZCB0YWJzIGNsZWFudXBzCisKK01vbiBBdWcgMjUgMTA6NTY6MzAgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvZW50aXRpZXMuaCBlbnRpdGllcy5jIFNBWDIuYyBwYXJzZXIuYzogcmV3b3JrCisJICB0aGUgcGF0Y2ggdG8gYXZvaWQgc29tZSBBQkkgaXNzdWUgd2l0aCBwZW9wbGUgYWxsb2NhdGluZworCSAgZW50aXRpZXMgc3RydWN0dXJlIGRpcmVjdGx5CisKK1dlZCBBdWcgMjAgMTk6MDI6MDEgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmggaW5jbHVkZS9saWJ4bWwvZW50aXRpZXMuaCBlbnRpdGllcy5jCisJICBwYXJzZXJJbnRlcm5hbHMuYyBwYXJzZXIuYzogZml4IGZvciBDVkUtMjAwOC0zMjgxCisKK1N1biBBdWcgMTAgMTc6MDY6MTMgQ0VTVCAyMDA4IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIGRpY3QuYzogZml4IG5vbiBHTlVDIGJ1aWxkcy4KKworRnJpIEF1ZyAgOCAxNDoxMzowNiBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBtYWtlZmlsZS5hbTogYWRkaW5nIGEgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CisKK0ZyaSBBdWcgIDggMTQ6MDE6NTkgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gdGVzdGRpY3QuYzogYWRkIHRoZSBuZXcgdGVzdCBpbiAnbWFrZSBjaGVjaycgYW5kCisJICB1cGRhdGUgaXQgdG8gY2hlY2sgc3ViZGljdGlvbmFyaWVzIHByb2Nlc3NpbmcuCisKK0ZyaSBBdWcgIDggMTI6MDc6MjAgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdGRpY3QuYzogYWRkZWQgYSBwcm9ncmFtIHRvIHJlZ3Jlc3Npb24gdGVzdCB0aGUgZGljdGlvbmFyeSBjb2RlCisJKiBkaWN0LmM6IGltcHJvdmUgdGhlIGxvb2t1cCBlZmZpY2llbmN5IGJ5IGNhY2hpbmcgdGhlIGtleS4KKworVGh1IEF1ZyAgNyAxODozMDo1NSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkaWN0LmM6IGNoYXNlZCBhbmQgZm91bmQgYSBjb3VwbGUgb2YgbmFzdHkgaXNzdWVzCisKK1RodSBBdWcgIDcgMTU6NTE6MzEgQ0VTVCAyMDA4IFN2ZW4gSGVyemJlcmcgPHN2ZW5AaW1lbmRpby5jb20+CisKKwlCdWcgNTQ2NjI5IOKAkyBydW50ZXN0cyBkb2Vzbid0IHBhc3Mgb24gbXkgbWFjCisJUmV2aWV3ZWQgYnkgV2lsbGlhbSBNLiBCcmFjay4KKworCSogcnVudGVzdC5jOiB1c2UgbGlicHRocmVhZCBvbiBNYWMgT1MgWCBhcyB3ZWxsCisKK1dlZCBBdWcgIDYgMTI6MjQ6MzMgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmM6IGFsbG93IFsgYW5kIF0gaW4gZnJhZ21lbnQgaWRlbnRpZmllcnMsIDM5ODYgZGlzYWxsb3cgdGhlbQorCSAgYnV0IGl0J3Mgd2lkZWx5IHVzZWQgZm9yIFhQb2ludGVyLCBhbmQgd291bGQgYnJlYWsgRG9jQm9vaworCSAgcHJvY2Vzc2luZyBhbW9uZyBvdGhlcnMKKworV2VkIEF1ZyAgNiAxMTozMjoyMSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkaWN0LmM6IGNoYW5nZSB0aGUgYmlnIGtleSBhbGdvcml0aG0gdG8gd29yayBwcm9wZXJseSB3aXRoIFFOYW1lCisJICB0b28sIGZpeCBhIGJ1ZyB3aXRoIGRpY3Qgc2l6ZSBhbmQgc3ViIGRpY3Rpb25hcmllcworCitNb24gQXVnICA0IDE3OjI3OjI3IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jIGluY2x1ZGUvbGlieG1sL3VyaS5oOiByZXdyaXRlIHRoZSBVUkkgcGFyc2VyIHRvIHVwZGF0ZSB0bworCSAgcmZjMzk4NiAoZnJvbSAyMzk2KQorCSogdGVzdC9lcnJvcnMvd2ViZGF2LnhtbCByZXN1bHQvZXJyb3JzL3dlYmRhdi54bWwqOiByZW1vdmVkIHRoZQorCSAgZXJyb3IgdGVzdCwgJ0RBVjonIGlzIGEgY29ycmVjdCBVUkkgdW5kZXIgMzk4NgorCSogTWFrZWZpbGUuYW06IHNtYWxsIGNsZWFudXAgaW4gbWFrZSBjaGVjaworCitUaHUgSnVsIDMxIDIxOjQ5OjQ1IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnhtbGNvbmYuYzogbW9yZSBwcm9ncmVzc2VzIGFnYWluc3QgdGhlIG9mZmljaWFsIHJlZ3Jlc3Npb24gdGVzdHMKKwkqIHJ1bnN1aXRlLmM6IHNtYWxsIGNsZWFudXAgZm9yIG5vbi1sZWFrIHJlcG9ydHMKKwkqIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogcGFyc2luZyBmbGFncyBhbmQgb3RoZXIgcHJvcGVydGllcyBhcmUKKwkgIG5vdyBhZGRlZCB0byB0aGUgZG9jdW1lbnQgbm9kZSwgdGhpcyBpcyBnZW5lcmFsbHkgdXNlZnVsIGFuZAorCSAgYWxsb3cgdG8gbWFrZSBOYW1lIGFuZCBObVRva2VuIHZhbGlkYXRpb25zIGJhc2VkIG9uIHRoZSBwYXJzZXIKKwkgIGZsYWdzLCBtb3JlIHNwZWNpZmljYWxseSB0aGUgNXRoIGVkaXRpb24gb2YgWE1MIG9yIG5vdAorCSogSFRNTHBhcnNlci5jIHRyZWUuYzogc21hbGwgc2lkZSBlZmZlY3RzIGZvciB0aGUgcHJldmlvdXMgY2hhbmdlcworCSogcGFyc2VyLmMgU0FYMi5jIHZhbGlkLmM6IHRoZSBidWxrIG9mIHRlaCBjaGFuZ2VzIGFyZSBoZXJlLAorCSAgdGhlIHBhcnNlciBhbmQgdmFsaWRhdGlvbiBiZWhhdmlvdXIgY2FuIGJlIGFmZmVjdGVkLCBwYXJzaW5nCisJICBmbGFncyBuZWVkIHRvIGJlIGNvcGllZCwgbG90IG9mIGNoYW5nZXMuIEFsc28gZml4aW5nIHZhcmlvdXMKKwkgIHZhbGlkYXRpb24gcHJvYmxlbXMgaW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMuCisKK1RodSBKdWwgMzEgMTA6MTU6NTMgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcnVueG1sY29uZi5jOiBhZGRlZCBhIHNraXBwZWQgbGlzdCwgaW5zZXJ0IHJtdC1uczEwLTAzNQorCSogTWFrZWZpbGUuYW06IGltcHJvdmUgJ21ha2UgY2hlY2snCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oIHBhcnNlci5jOiBjbGVhbiB1cCBuYW1lc3BhY2UgZXJyb3JzCisJICBjaGVja2luZyBhbmQgcmVwb3J0aW5nLCBlcnJvcnMgd2hlbiBhIGRvY3VtZW50IGlzIGxhYmVsbGVkCisJICBhcyBVVEYtMTYgd2hpbGUgaXQgaXMgcGFyc2VkIGFzIFVURi04IGFuZCBubyBlbmNvZGluZyB3YXMgZ2l2ZW4KKwkgIGV4cGxpY2l0ZWx5LgorCSogcmVzdWx0L2Vycm9ycy93ZWJkYXYueG1sLio6IHNvbWUgd2FybmluZ3MgYXJlIG5vIHJlY2F0ZWdvcml6ZWQKKwkgIGFzIE5hbWVzcGFjZSBlcnJvcnMKKworV2VkIEp1bCAzMCAxNDo1NTo1NCBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWxtZW1vcnkuaCB4bWxtZW1vcnkuYzogYWRkIHhtbE1lbURpc3BsYXlMYXN0IHRvCisJICBoZWxwIGRlYnVnIGluY3JlbWVudGFsIG1lbW9yeSBsZWFrcywgYW5kIHNvbWUgY2xlYW51cHMKKwkqIHJ1bnhtbGNvbmYuYzogdXNlIHRoYXQgbmV3IGNhbGwgYW5kIGF2b2lkIGV2ZXIgdG91Y2hpbmcgdGhlCisJICBzeXN0ZW0gY2F0YWxvZyBpbiB0aGUgcmVncmVzc2lvbiB0ZXN0cworCitXZWQgSnVsIDMwIDE0OjMzOjMzIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGFuIFhNTC0xLjAgZG9jdW1lbnQgY2FuJ3QgbG9hZAorCSAgYW4gMS4xIGVudGl0eQorCSogcnVueG1sY29uZi5jOiB3aGVuIHVzaW5nIGVudGl0aWVzIG1ha2Ugc3VyZSB3ZSBsb2FkIHRoZW0KKworVHVlIEp1bCAyOSAxODo0MzowNyBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4IGEgYnVnIG5vdCBkZXRlY3RpbmcgY3Jvc3MgZW50aXR5IGNvbW1lbnRzIHByb2JhYmx5CisJICB3aGVuIGNvbW1lbnQgcGFyc2luZyBnb3Qgb3B0aW1pemVkLgorCSogTWFrZWZpbGUuYW06IGFkZCBtYWtlIGNoZWNrCisJKiBydW54bWxjb25mLmM6IGZpeCB0aGUgbG9nIGZpbGUgbmFtZQorCitUdWUgSnVsIDI5IDE4OjA5OjI2IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnhtbGNvbmYuYyBNYWtlZmlsZS5hbTogYWRkIGEgQyBwcm9ncmFtIHRvIHJ1biB0aGUgVzNDIHRlc3QKKwkgIHN1aXRlLCB3b3JrIGluIHByb2dyZXNzCisJKiB4bWxsaW50LmM6IGFkZCBhIG5ldyBvcHRpb24gLS1vbGR4bWwxMCB0byB1c2UgdGhlIG9sZCBwYXJzZXIKKwkqIHBhcnNlci5jOiBmaXggdGhlIFhNTF9QQVJTRV9PTEQxMCBwcm9jZXNzaW5nIG9mIHRoZSBuZXcgb3B0aW9uCisJICBhbmQgYSBidWcgaW4gdmVyc2lvbiBwYXJzaW5nCisKK1R1ZSBKdWwgMjkgMTE6MTI6NDAgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogc3BhY2UgYW5kIHRhYnMgY2xlYW51cAorCitUdWUgSnVsIDI5IDEwOjU5OjM2IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmggcGFyc2VyLmM6CisJICBpbXBsZW1lbnQgWE1MLTEuMCA1dGggZWRpdGlvbiwgYWRkIHBhcnNlciBvcHRpb24gWE1MX1BBUlNFX09MRDEwCisJICB0byBzdGljayB0byBvbGQgYmVoYXZpb3VyCisJKiB0ZXN0YXBpLmMgZ2VudGVzdC5weTogbW9kaWZpZWQgc2xpZ2h0bHkgYW5kIHJlZ2VuZXJhdGVkCisJKiBNYWtlZmlsZS5hbTogYWRkIHRlc3RjaGFyCisKK1RodSBKdWwgMjQgMTY6NTc6MjAgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gdGVzdGNoYXIuYyBNYWtlZmlsZS50ZXN0cyBSRUFETUUudGVzdHM6IGFkZCBhCisJICBuZXcgcmVncmVzc2lvbiB0ZXN0IHByb2dyYW0gZm9yIHRlc3RpbmcgY2hhcmFjdGVyIHJhbmdlcyBhbmQKKwkgIFVURjggZW5jb2RpbmcvZGVjb2RpbmcKKworV2VkIEp1bCAyMyAxNTozMjozOSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuc3BlYy5pbjogZml4IHRoZSBidWlsZCByb290CisKK1dlZCBKdWwgMTYgMjI6Mjg6NDggUERUIDIwMDggV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHBhdHRlcm4uYzogZml4IHByb2JsZW0gd2l0aCB4bWxTdHJlYW1Qb3Agd2hlbiBwYXR0ZXJuIGluY2x1ZGVzCisJICBhICIuIiBlbGVtZW50IChzZWUgZGlzY3Vzc2lvbiBvbiBsaWJ4c2x0IGxpc3QpCisKK01vbiBKdWwgIDcgMTU6NDk6NTkgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYMi5jOiBmaXggbGluZSBudW1iZXIgb24gdGV4dCBub2RlcywgcHJvYmxlbSByYWlzZWQgYnkgUmFsZiBKdW5rZXIKKworU3VuIEp1biAyOSAxNzowNDoyOCBDRVNUIDIwMDggUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKwkqIHhtbHNjaGVtYXMuYzogZml4IGNyYXNoIHdpdGggaW52YWxpZCB3aGl0ZXNwYWNlIGZhY2V0CisKK1dlZCBKdW4gMTEgMTA6MTM6MDIgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL3htbC5odG1sIGRvYy9GQVEuaHRtbDogYWRkIGEgc2VjdGlvbiBpbiB0aGUgRkFRIGFib3V0CisJICBtdWx0aXRocmVhZCBhbmQgeG1sQ2xlYW51cFBhcnNlcgorCitUdWUgSnVuIDEwIDE2OjUyOjE3IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYzogYXBwbHkgYSBjb3VwbGUgb2YgZml4ZXMgYmFzZWQgb24gYSBDb3Zlcml0eSByZXBvcnQKKwkgIGZvcndhcmRlZCBieSBEZXJyaWNrIFByaWNlLgorCSogVnhXb3Jrcy9SRUFETUUgVnhXb3Jrcy9NYWtlZmlsZSBWeFdvcmtzL2J1aWxkLnNoOiBpbnN0cnVjdGlvbnMKKwkgIE1ha2VmaWxlLCBhbmQgc2hlbGwgc2NyaXB0IHRvIGJ1aWxkIG9uIFZ4V29ya3MgNi40KyBwcm92aWRlZCBieQorCSAgSmltIFdlcnQuCisKK1R1ZSBKdW4gIDMgMTg6MDc6MTMgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vc2V0dXAucHk6IGFwcGx5IHBhdGNoIGZyb20gTWFydGluIGZpeGluZworCSAgcHl0aG9uIHdoaXRlc3BhY2VzCisJKiBORVdTOiBmb2xsb3dpbmcgcHJldmlvdXMgY29tbWl0IHJlYnVpbHQgbm93IGluIFVURi04CisKK01vbiBKdW4gIDIgMTc6Mzk6NDIgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogQ2hhbmdlTG9nOiBwYXRjaCBmcm9tIEhhbnMgZGUgR29lZGUgdG8gc3dpdGNoIHRoZSBmaWxlIHRvIFVURi04CisJKiBkb2MvbmV3cy54c2w6IHN3aXRjaCB0byBnZW5lcmF0ZSB0aGUgTkVXUyBmaWxlIGluIFVURi04IGluc3RlYWQgb2YKKwkgIElTTy04ODU5LTEKKworTW9uIE1heSAxMiAxNToxMjo0NCBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogYXZvaWQgYSByZWdleHAgY3Jhc2gsIHNob3VsZCBmaXggIzUyMzczOAorCitNb24gTWF5IDEyIDE0OjU2OjA2IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyBydW50ZXN0LmMgdGVzdGFwaS5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oCisJICBweXRob24vdHlwZXMuYyBweXRob24vbGlieG1sX3dyYXAuaCBweXRob24vbGlieG1sLmM6IGZ4IGNvbXBpbGF0aW9uCisJICB3aGVuIGNvbmZpZ3VyZWQgd2l0aG91dCB0aGUgcmVhZGVyIHNob3VsZCBmaXggIzUxMzExMAorCSogZG9jLyo6IHJlZ2VuZXJhdGVkCisKK1NhdCBNYXkgIDMgMTQ6MzM6MjkgQ0VTVCAyMDA4IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIGRpY3QuYzogY2hlY2sgZm9yIHN0ZGludC5oIGFuZCBkZWZpbmUgdHlwZXMgd2hlbiB1c2luZyBNU1ZDCisKK01vbiBBcHIgMjggMjA6MDY6MTIgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBBc2h3aW4gdG8gYXZvaWQgYSBwb3RlbnRpYWwKKwkgIGRvdWJsZS1mcmVlCisKK1RodSBBcHIgMjQgMTM6NTY6NTMgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBBc2h3aW4gZml4aW5nIGEgbnVtYmVyIG9mIHJlYWxsb2MgcHJvYmxlbXMKKwkqIEhUTUxwYXJzZXIuYzogaW1wcm92ZSBoYW5kbGluZyBmb3IgbWlzcGxhY2VkIGh0bWwvaGVhZC9ib2R5CisKK1R1ZSBBcHIgMjIgMTA6Mjc6MTcgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGljdC5jOiBpbXByb3ZlbWVudCBvbiB0aGUgaGFzaGluZyBvZiB0aGUgZGljdGlvbm5hcnksIHdpdGggdmlzaWJsZQorCSAgc3BlZWQgdXAgYXMgdGhlIG51bWJlciBvZiBzdHJpbmdzIGluIHRoZSBoYXNoIGluY3JlYXNlcywgd29yayBmcm9tCisJICBTdGVmYW4gQmVobmVsCisKK0ZyaSBBcHIgMTEgMTQ6NDQ6MDAgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oIHhtbHNjaGVtYXMuYzogYWRkZWQgbmV3IGZ1bmN0aW9uCisJICB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0IGJhc2VkIG9uIEhvbGdlciBLYWVsYmVyZXIgcGF0Y2gKKwkqIGRvYy9hcGlidWlsZC5weSBkb2MvKjogcmVnZW5lcmF0ZWQgdGhlIGRvYywgY2hhc2VkIHdoeSB0aGUgbmV3CisJICBmdW5jdGlvbiBkaWRuJ3QgZ290IGFueSBkb2N1bWVudGF0aW9uLCBhZGRlZCBtb3JlIGNoZWNraW5nIGluIHRoZQorCSAgZ2VuZXJhdG9yCisJKiBpbmNsdWRlL2xpYnhtbC9yZWxheG5nLmggaW5jbHVkZS9saWJ4bWwvc2NoZW1hdHJvbi5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmggaW5jbHVkZS9saWJ4bWwvYzE0bi5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxyZWdleHAuaCBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oIHRocmVhZHMuYyB4bWxzY2hlbWFzLmM6IHZhcmlvdXMgY2hhbmdlcworCSAgYW5kIGNsZWFudXBzIGZvbGxvd2luZyB0aGUgbmV3IHJlcG9ydHMKKworCitUaHUgQXByIDEwIDEwOjA3OjAwIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBleHRlbmQgdGhlIGNsZWFudXAgcnVsZQorCSogeG1sc2NoZW1hcy5jOiBzcGFjZSBjbGVhbnVwCisKK1dlZCBBcHIgIDkgMTk6NDM6MjUgQ0VTVCAyMDA4IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIGluY2x1ZGUvd3NvY2tjb21wYXQuaDogc3VwcG9ydCBvbGRlciB3aW4zMiBwbGF0Zm9ybXMgd2hlbiBidWlsZGluZworCSAgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBWUworCitUdWUgQXByICA4IDE2OjU2OjA3IENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBORVdTIGRvYy8qOiBwcmVwYXJpbmcgcmVsZWFzZSBvZiAyLjYuMzIKKworVHVlIEFwciAgOCAxMDoxOTowMSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeCBhIGJ1ZyBpbnRyb2R1Y2VkIHdoZW4gZml4aW5nICM0MzgyMDggYW5kIHJlcG9ydGVkIGJ5CisJICBBc2h3aW4KKwkqIHB5dGhvbi9nZW5lcmF0b3IucHk6IGZpeCBhbiBpbmZpbml0ZSBsb29wIGJ1ZworCitNb24gQXByICA3IDE0OjQ0OjUxIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBmaXggYSBsaW5rIHRvIFhtbE5vZGVUeXBlIGRvYyByZXBvcnRlZCBieSBNYXJ0aWpuIEFydHMKKwkqIGRvY3MvKjogcmVidWlsdAorCitGcmkgQXByICA0IDE4OjA5OjUwIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBpbXByb3ZlIHRoZSAqUmVjb3ZlciogZnVuY3Rpb25zIGRvY3VtZW50YXRpb24KKworVGh1IEFwciAgMyAxNDo1NzoxNSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogcGF0Y2ggZnJvbSBNYXJrIFJvd2UgZml4aW5nIEJPTSBvciBlbmNvZGluZyBkZXRlY3Rpb24KKwkgIGluIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcywgc2hvdWxkIGZpeCAjNDQwNDE1CisKK1RodSBBcHIgIDMgMTM6MTY6MDEgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBmaXggc29tZSBwcm9ibGVtcyB3aXRoIHRoZSAqRWF0TmFtZSBmdW5jdGlvbnMgd2hlbgorCSAgcnVubmluZyBvdXQgb2YgbWVtb3J5IHJhaXNlZCBieSBFcmljIFNjaHJvY2sgLCBzaG91bGQgZml4ICM0MzgyMDgKKworVGh1IEFwciAgMyAxMjo0MToyOSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogaG9ycm9yIGFyb3VuZCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgbGV4aWNhbAorCSAgdmFsdWVzIGZvciBkZWNpbWFsIGFuZCBkZXJpdmVkIHR5cGVzLCBmaXhpbmcgdG8gcmVqZWN0IGVtcHR5IAorCSAgdmFsdWVzLCBzaG91bGQgZml4ICM1MDMyNjgKKworVGh1IEFwciAgMyAxMTo0NDo1NyBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbmNvZGluZy5jOiBidWZmZXIgbWF5IG5vdCBiZSAgbGFyZ2UgZW5vdWdoIHRvIGNvbnZlcnQgdG8KKwkgIFVDUzQsIHBhdGNoIGZyb20gQ2hyaXN0aWFuIEZydXRoICwgZml4ZXMgIzUwNDAxNQorCitUaHUgQXByICAzIDExOjAyOjAyIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogYXBwYXJlbnRseSBpdCdzIG9rYXkgdG8gZm9yZ2V0IHRoZSBzZW1pY29sdW1uIGFmdGVyCisJICBlbnRpdHkgcmVmcyBpbiBIVE1MLCBmaXhpbmcgY2hhciByZWZzIHBhcnNpbmcgYWNjb3JkaW5nbHkgYmFzZWQgb24KKwkgIFQuIE1hbnNrZSBwYXRjaCwgdGhpcyBzaG91bGQgZml4ICM1MTc2NTMKKworVGh1IEFwciAgMyAwOTozMDoyOSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlcnJvci5jOiBhdm9pZCBhIHNjYXJ5IHJlYWxsb2MoKSBsb29wIHNob3VsZCBmaXggIzUyMDM4MworCitUaHUgQXByICAzIDA4OjIyOjUyIENFU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBtb3JlIHJlYWxsb2MgcHJvYmxlbXMgcG9pbnRlZCBvdXQgYnkgQXNod2luCisKK1RodSBBcHIgIDMgMDc6NDA6MTMgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHN0Yy9NYWtlZmlsZS5hbTogYXBwbGllZCBwYXRjaCBmcm9tIE1pa2UgSG9tbWV5IGZpeGluZyBkaXN0Y2xlYW4sCisJICBmaXhlcyAjNTIwMzg3CisKK1RodSBBcHIgIDMgMDY6NTI6MzIgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveHBhdGguaDogc21hbGwgZG9jIGltcHJvdmVtZW50IGZvciB4bWxYUGF0aENvbnRleHQKKwkgIGZyb20gSmFjayBKYW5zZW4sIGZpeGVzICM1MjQ3NTkKKwkqIGRvYy9uZXdhcGkueHNsIGRvYy8qOiBmaXhlZCBhIHByb2JsZW0gYW5kIHJlZ2VuZXJhdGVkIHRoZSBkb2NzCisKK1R1ZSBBcHIgIDEgMDk6NTk6MjIgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogdHdvIHBhdGNoZXMgZnJvbSBBbHZhcm8gSGVycmVyYSB0byBhdm9pZCBwcm9ibGVtIHdoZW4KKwkgIHJ1bm5pbmcgb3V0IG9mIG1lbW9yeSBpbiBYUGF0aCBldmFsdWF0aW9ucy4KKworTW9uIE1hciAzMSAxMToyMzoxOSBDRVNUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogbG90IG9mIG91dCBvZiBtZW1vcnkgaGFuZGxpbmcgZml4ZXMgZnJvbSBBc2h3aW4KKwkqIGVsZmdjY2hhY2suaCBkb2MvZWxmZ2NjaGFjay54c2w6IHdvcmsgYXJvdW5kIGEgcHJvYmxlbSB3aXRoIHhtbERsbE1haW4KKwkqIGluY2x1ZGUvbGlieG1sL3RocmVhZHMuaDogaW5kZW50aW5nIGNsZWFudXBzCisKK01vbiBNYXIgMzEgMTA6MjU6MzcgQ0VTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgZG9jcy8qOiB0cnlpbmcgdG8gY2xhcmlmeSBldmVuIG1vcmUgdGhlIHhtbENsZWFudXBQYXJzZXIoKQorCSAgdXNlIGFuZCB0aGUgbWVtb3J5IGRvY3VtZW50YXRpb24KKworV2VkIE1hciAyNiAxODozOTo1OCBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBjaGFuZ2VzIGJhc2VkIG9uICBBbGV4IEtoZXNpbiBwYXRjaCB3aGVyZSB4bWxQYXJzZUNoYXJSZWYKKwkgIHNlZW1zIHRvIG5vdCBiZSBjaGVja2VkIGNvcnJlY3RseSwgZml4ZXMgIzUyMDE5OAorCitXZWQgTWFyIDI2IDE1OjAzOjQ5IENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHBhdGNoIGZyb20gQXNod2luIHRvIGF2b2lkIGEgcHJvYmxlbSBvZiBhdHRyaWJ1dGUKKwkgIHJlZGVmaW5pdGlvbiBpbiB0aGUgRFRELiBSZW1vdmUgYSB3YXJuaW5nIHRvby4KKworV2VkIE1hciAyNiAxNDozODozMSBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogZml4IGEgcHJvYmxlbSBpbiBleHRlcm5hbFN1YnNldFNwbGl0IHdpdGggYSBwYXRjaAorCSAgZnJvbSBBc2h3aW4KKworVHVlIE1hciAyNSAxNzo0ODowMiBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXggdmFyaW91cyBhdHRyaWJ1dGUgbm9ybWFsaXNhdGlvbiBwcm9ibGVtcyByZXBvcnRlZAorCSAgYnkgQXNod2luCisJKiByZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNAorCSAgcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTQ6IHRoaXMgaW1wYWN0ZWQgdGhlIHJlc3VsdCBvZgorCSAgdHdvIGMxNG4gdGVzdHMgOi1cCisJKiB0ZXN0L2F0dDkgdGVzdC9hdHQxMCB0ZXN0L2F0dDExIHJlc3VsdC8vYXR0OSogcmVzdWx0Ly9hdHQxMCoKKwkgIHJlc3VsdC8vYXR0MTEqOiBhZGRlZCAzIHNwZWNpZmljIHJlZ3Jlc3Npb24gdGVzdHMgY29taW5nIGZyb20gdGhlCisJICBYTUwgc3BlYyByZXZpc2lvbiBhbmQgZnJvbSBBc2h3aW4KKworVHVlIE1hciAyNSAxNDoyMDo0OSBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jOiBmaXggc2F2aW5nIGZvciBmaWxlOi8vL1g6LyBVUkkgZW1iZWRkaW5nIFdpbmRvd3MgZmlsZSBwYXRocworCSAgc2hvdWxkIGZpeCAjNTI0MjUzIAorCitNb24gTWFyIDI0IDIxOjQyOjMzIENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeCBhIHByb2JsZW0gcmVwb3J0ZWQgYnkgQXNod2luIGZvciBzeXN0ZW0gcGFyYW1ldGVyCisJICBlbnRpdGllcyByZWZlcmVuY2VkIGZyb20gZW50aXRpZXMgaW4gZXh0ZXJuYWwgc3Vic2V0LCBhZGQgYQorCSAgc3BlY2lmaWMgbG9hZGluZyByb3V0aW5lLgorCSogdGVzdC92YWxpZC9kdGRzL2V4dGVybmFsLmVudCB0ZXN0L3ZhbGlkL2R0ZHMvZXh0ZXJuYWwyLmVudAorCSAgdGVzdC92YWxpZC90MTEueG1sIHJlc3VsdC92YWxpZC90MTEueG1sKjogYWRkZWQgdGhlIHRlc3QgdG8KKwkgIHRoZSByZWdyZXNzaW9uIHN1aXRlCisKK01vbiBNYXIgMjQgMTU6MDQ6NTQgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeCBhbiBYTUwgU2NoZW1hcyBjcmFzaCByYWlzZWQgYnkgU3RlZmFuIEJlaG5lbAorCSAgd2hlbiB0ZXN0aW5nIHdpdGggVzNDIHRlc3Qgc3VpdGUKKworTW9uIE1hciAyNCAxMjoxMjowMCBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRocmVhZHMuYzogY2hlY2sgc29tZSBhbGxvY2F0aW9uIHdpdGggQXNod2luIHBhdGNoCisKK1dlZCBNYXIgMTkgMTY6NDE6NTIgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2bXMvYnVpbGRfbGlieG1sLmNvbTogdXBkYXRlIGZyb20gVHljaG8gSGlsaG9yc3QsIHNob3VsZCBmaXggIzUyMzM3OAorCitUdWUgTWFyIDE4IDA5OjIzOjA1IENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGhyZWFkcy5jOiBjaGVjayBzb21lIG1hbGxvYyByZXR1cm5zIHdpdGggQXNod2luIHBhdGNoLCBhZGQKKwkgIGVycm9yIG1lc3NhZ2VzIGFuZCByZWluZGVudCB0aGUgbW9kdWxlLgorCitGcmkgTWFyIDE0IDE1OjI4OjQzIENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IHBhdGNoIGZyb20gQXNod2luIHJlbW92aW5nIGR1cGxpY2F0ZSB0ZXN0cworCitGcmkgTWFyIDE0IDEzOjQ0OjI5IENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvc2NoZW1hdHJvbi5oIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmggc2NoZW1hdHJvbi5jOgorCSAgYXBwbGllZCBwYXRjaCBmcm9tIFRvYmlhcyBNaW5pY2ggdG8gYWxsb3cgcGx1Z2luIHNjaGVtYXRyb24gZXJyb3IKKwkgIHJlcG9ydGluZyBpbiB0aGUgbm9ybWFsIGVycm9yIHN5c3RlbSwgc2hvdWxkIGZpeCAjNTEzOTk4CisKK0ZyaSBNYXIgMTQgMTE6NTI6MDkgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyB4aW5jbHVkZS5jOiBwYXRjaCBmcm9tIFZhc2lseSBDaGVrYWxraW4gZml4ZXMgbWVtb3J5CisJICBsZWFrcywgc2hvdWxkIGZpeCA1MTI2NDcKKworVGh1IE1hciAxMyAwODoxNzo1OCBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBmb3VuZCBhIG5hc3R5IGJ1ZyBpbiByZWdleHAgYXV0b21hdGEgYnVpbGQsCisJICByZXBvcnRlZCBieSBBc2h3aW4gYW5kIEJqb3JuIFJlZXNlCisKK1dlZCBNYXIgMTIgMTg6NTY6MjIgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IHBhdGNoIGZyb20gQXJub2xkIEhlbmRyaWtzIGltcHJvdmluZyBwYXJzaW5nIG9mCisJICBodG1sIHdpdGhpbiBodG1sIGJvZ3VzIGRhdGEsIHN0aWxsIG5vdCBhIGNvbXBsZXRlIGZpeCB0aG91Z2gKKworV2VkIE1hciAxMiAxMDoyMjowMSBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi90eXBlcy5jOiBmaXggYSBtZW1vcnkgZXJycm8gd2hlbiB1c2luZyBuYW1lc3BhY2Ugbm9kZXMKKwkgIHJldHVybmVkIGZyb20gWFBhdGggcXVlcmllcywgc2hvdWxkIGZpeCAjNTIxNjk5CisJKiBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL3hwYXRobnMucHk6IGFkZCBhIHNwZWNpZmljCisJICByZWdyZXNzaW9uIHRlc3QgZm9yIGl0CisKK01vbiBNYXIgMTAgMTY6MjU6MzIgQ0VUIDIwMDggUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogaW5jbHVkZS93aW4zMmNvbmZpZy5oOiBhZGQgSUNPTlZfQ09OU1QgZGVmaW5lIGZvciB3aW4zMiBidWlsZAorCSAgdG8gc2F0aXNmeSBlbmNvZGluZy5jIGNoYW5nZSBpbiByZXYgMzY5MworCitGcmkgTWFyICA3IDE3OjQ1OjI3IENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2F2ZS5jIHBhcnNlci5jOiBmaXggaGFuZGxpbmcgb2YgZW1wdHkgQ0RBVEEgbm9kZXMgYXMgCisJICByZXBvcnRlZCBhbmQgZGlzY3Vzc2VkIGFyb3VuZCAjNTE0MTgxIGFuZCBhc3NvY2lhdGVkIHBhdGNoZXMKKwkqIHRlc3QvZW1wdHljZGF0YS54bWwgcmVzdWx0L2VtcHR5Y2RhdGEueG1sKiAKKwkgIHJlc3VsdC9ub2VudC9lbXB0eWNkYXRhLnhtbDogYWRkZWQgYSBzcGVjaWZpYyB0ZXN0IGluIHRoZQorCSAgcmVncmVzc2lvbiBzdWl0ZS4KKworVGh1IE1hciAgNiAxNToyMzoxMCBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmM6IHBvYmxlbSB3aXRoIGVuY29kaW5nIGRldGVjdGlvbiBmb3IgVVRGLTE2IHJlcG9ydGVkIGJ5CisJICBBc2h3aW4gYW5kIGZvdW5kIGJ5IEJpbGwKKwkqIHRlc3QvdmFsaWQvZHRkcy91dGYxNmIuZW50IHRlc3QvdmFsaWQvZHRkcy91dGYxNmwuZW50CisJICB0ZXN0L3ZhbGlkL1VURjE2RW50aXR5LnhtbCByZXN1bHQvdmFsaWQvVVRGMTZFbnRpdHkueG1sKjogYWRkZWQKKwkgIHRoZSBleGFtcGxlIHRvIHRoZSByZWdyZXNzaW9uIHRlc3RzCisKK1R1ZSBNYXIgIDQgMTQ6MTY6MzggQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWx3cml0ZXIuYzogcGF0Y2ggZnJvbSBBbGV4IEtoZXNpbiBmaXhpbmcgQ0RBVEEgb3V0cHV0IGFmdGVyCisJICBhIHRleHQgbm9kZS4KKwkqIHBhcnNlci5jOiBmaXhlZCB0aGUgY29tbWVudCBmb3IgeG1sUGFyc2VyQ2xlYW51cAorCSogZ2xvYmFscy5jOiBmaXhlZCBpbmRlbnRhdGlvbgorCitNb24gRmViIDI1IDE2OjQyOjE5IENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdE1vZHVsZS5jOiBwYXRjaCBmcm9tIEZsb3JlbnQgR3VpbGlhbmkgdG8gZml4IGJ1aWxkIG9uCisJICBTQ08gT3BlblNlcnZlcgorCitUaHUgRmViIDIxIDIyOjQ2OjA4IENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYzogbWFkZSBvbmUgb2YgdGhlIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IEJyaWFuIEtyYWhtZXIKKwkqIHRlc3RSZWdleHAuYzogYWxsb3cgdG8gcGFzcyAnLS0nIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYWxsb3cKKwkgIHJlZ2V4cHMgc3RhcnRpbmcgd2l0aCB0aGUgY2hhcmFjdGVyICctJworCitUdWUgRmViIDE5IDA4OjQ5OjMyIENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbTogYXBwbGllZCBjbGVhbnVwCisJICBwYXRjaGVzIGZvciBjcm9zcyBjb21waWxhdGlvbiBhbmQgTWluR1cgZnJvbSBSb3VtZW4gUGV0cm92CisKK1NhdCBGZWIgMTYgMTE6MDY6NTQgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBmaXggb3V0cHV0IGJ1ZyByZXBvcnRlZCBieSBQZXRyIFBhamFzIGFuZCBhbmFseXplZCBieQorCSAgQmlsbAorCitGcmkgRmViIDE1IDA5OjMyOjExIENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCB0cmVlLmM6IHBhdGNoIGZyb20gSnVsaWVuIENoYXJib24KKwkgIHRvIHNpbXBsaWZ5IHRoZSBwcm9jZXNzaW5nIG9mIHhtbFNldFByb3AoKQorCitGcmkgRmViIDE1IDA4OjQ1OjMyIENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlnLmguaW4gY29uZmlndXJlLmluIGVuY29kaW5nLmM6IHBhdGNoIGZyb20gUm91bWVuIFBldHJvdgorCSAgdG8gZGV0ZWN0IGlmIGljb252KCkgbmVlZHMgYSBjb25zdCBmb3IgdGhlIHNlY29uZCBwYXJhbWV0ZXIKKworRnJpIEZlYiAxNSAwODo0MTozMSBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG1hY29zL3NyYy9YTUxUZXN0UHJlZml4Mi5oIHdpbjMyL01ha2VmaWxlLm1zdmM6IEVPTCBjbGVhbnVwcworCSAgZnJvbSBGbG9yZW50IEd1aWxpYW5pCisKK1dlZCBGZWIgMTMgMTA6NTY6MzggQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWx3cml0ZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tIEFsZnJlZCBNaWNrYXV0c2NoIHRvIGZsdXNoIHRoZQorCSAgb3V0cHV0IGF0IHRoZSBlbmQgb2YgZG9jdW1lbnQuCisKK0ZyaSBGZWIgIDggMTE6NTc6MDMgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZXhhbXBsZXMvZXhhbXBsZXMueG1sOiByZWdlbmVyYXRlZCwgaXQgd2FzIHRydW5jYXRlZC4KKworRnJpIEZlYiAgOCAxMTo0NzoxOCBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbG1vZHVsZS5jOiBhcHBseSBzaW1wbGUgcGF0Y2ggZnJvbSBDYXJsbyBCcmFtaW5pIHRvIGF2b2lkCisJICBjb21waWxhdGlvbiBwcm9ibGVtcyB3aXRoIE1pbmd3MzIKKworRnJpIEZlYiAgOCAxMTozMzoxNSBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBhcHBseSBwYXRjaCBmcm9tIEFuZHJldyBUb3NoIHRvIGZpeCBiZWhhdmlvdXIKKwkgIHdoZW4gJy4nIGlzIHVzZWQgaW4gYSBwb3NDaGFyR3JvdXAKKwkqIHRlc3Qvc2NoZW1hcy9wb3NjaGFyZ3JwMF8wLiogcmVzdWx0L3NjaGVtYXMvcG9zY2hhcmdycDBfMF8wKjoKKwkgIGFkZGVkIHRoZSB0ZXN0IHRvIHRoZSByZWdyZXNzaW9uIHN1aXRlCisKK0ZyaSBGZWIgIDggMTA6NTQ6MDkgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkaWN0LmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBGbG9yZW50IEd1aWxpYW4gdG8gcmVtb3ZlIGFuCisJICB1c2VsZXNzIG11dGV4IGluIHRoZSB4bWxEaWN0IHN0cnVjdHVyZS4KKworV2VkIEZlYiAgNiAxNzowMDoyMCBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYzogYW5vdGhlciBsZWFrIHJlcG9ydGVkIGJ5IEFzaHdpbgorCSogeGluY2x1ZGUuYzogZml4ZWQgdGhlIGJlaGF2aW91ciB3aGVuIFhJbmNsdWRpbmcgYSBmcmFnbWVudAorCSAgb2YgdGhlIGN1cnJlbnQgZG9jdW1lbnQsIHBhdGNoIGZyb20gQ2hyaXMgUnlhbgorCitXZWQgRmViICA2IDEyOjEwOjA4IEhLVCAyMDA4IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBuYW5vaHR0cC5jOiBhZGRlZCBzcGFjZSBmb3IgcG9ydCBudW1iZXIgKHdoZW4gbm90IDgwKSBpbgorCSAgeG1sTmFub0hUVFBNZXRob2RSZWRpciwgcGx1cyBhIGZldyBtb3JlIGNvbW1lbnRzLiBTaG91bGQKKwkgIGZpeCAjNTE0NTIxLgorCitUdWUgRmViICA1IDA5OjQxOjQ2IENFVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogc2NoZW1hcy5jOiBhcHBseSBmaXggc3VnZ2VzdGVkIGJ5IEFzaHdpbiBjb3JyZWN0aW5nIGEgY3V0LW4tcGFzdGUKKwkgIGVycm9yIGFib3V0IHRoZSBTQVggY2FsbGJhY2sgaW4gY2RhdGFCbG9ja1NwbGl0IHdoZW4gc3RyZWFtaW5nCisJICBYU0QgdmFsaWRhdGlvbiAKKworVHVlIEZlYiAgNSAwOTozNjo0NiBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jOiBhcHBsaWVkIGEgcGF0Y2ggYmFzZWQgb24gUGV0ciBTdW1iZXJhIG9uZSB0byBhdm9pZCBhIAorCSAgcHJvYmxlbSB3aXRoIHBhdGhzIHN0YXJ0aW5nIHdpdGggLy8KKworTW9uIEZlYiAgNCAxNzo0ODozMCBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy94bWwuaHRtbCBkb2MveG1sbWVtLmh0bWw6IGFkZGVkIGEgc21hbGwgc2VjdGlvbiBvbiByZXR1cm5pbmcKKwkgIG1lbW9yeSB0byB0aGUga2VybmVsIGJ5IGNvbXBhY3RpbmcgdGhlIGhlYXAgcHJvdmlkZWQgYnkgV29sZnJhbSBTYW5nCisKK0ZyaSBKYW4gMjUgMjA6MDE6NDIgQ0VUIDIwMDcgUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogaW5jbHVkZS93aW4zMmNvbmZpZy5oIHdpbjMyL01ha2VmaWxlLm1zdmM6IGZpeCBidWlsZCB1bmRlciBWUyAyMDA4LgorCSAgcGF0Y2ggYnkgRGF2aWQgV2ltc2V5CisKK1RodSBKYW4gMjQgMTU6Mzc6MDQgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4IGEgbWVtZW9yeSBsZWFrIGluIGludGVybmFsIHN1YnNldCBwYXJzaW5nIHdpdGgKKwkgIGEgZml4IGZyb20gQXNod2luCisJKiB0ZXN0L2Vycm9ycy9jb250ZW50MS54bWwgcmVzdWx0L2Vycm9ycy9jb250ZW50MS54bWwqOgorCSAgYWRkIHRlc3QgdG8gcmVncmVzc2lvbnMKKworRnJpIEphbiAxMSAwOTowMDowOSBDRVQgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvKjogcHJlcGFyaW5nIHJlbGVhc2Ugb2YgMi42LjMxCisKK0ZyaSBKYW4gMTEgMDg6NTg6NDkgQ0VUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYXZvaWQgYSB3YXJuaW5nIG9uIDY0Yml0cyBpbnRyb2R1Y2VkIGVhcmxpZXIKKwkqIHBhcnNlckludGVybmFscy5jOiBtYWtlIG1vcmUgY2hlY2tpbmcgb24gdGhlIFVURi04IGlucHV0CisKK0ZyaSBKYW4gMTEgMTU6Mzc6MDUgQ1NUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGF2b2lkIHN0b3BwaW5nIHBhcnNpbmcgd2hlbiBlbmNvdW50ZXJpbmcKKwkgIG91dCBvZiByYW5nZSBjaGFyYWN0ZXJzIGluIGFuIEhUTUwgZmlsZSwgcmVwb3J0IGFuZCAKKwkgIGNvbnRpbnVlIHByb2Nlc3NpbmcgaW5zdGVhZCwgc2hvdWxkIGZpeCAjNDcyNjk2CisKK0ZyaSBKYW4gMTEgMTU6MTM6MzUgQ1NUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUyLnB5IGNoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZS5weQorCSAgTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi9NYWtlZmlsZS5hbQorCSAgY2hlY2steHNkZGF0YS10ZXN0LXN1aXRlLnB5OiBwYXRjaGVzIGZyb20gSm9obiBDYXJyIHRvCisJICBzdGFydCBjbGVhbmluZyB1cCAnbWFrZSBkaXNrY2hlY2snIHByb2JsZW1zIGMuZi4gIzUwNjIyOAorCitGcmkgSmFuIDExIDE0OjQ4OjQwIENTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhcHBseSBmaXggZnJvbSBTdGVmYW4gS29zdCB0byBhdm9pZCBhIGNyYXNoCisJICBpbiB4bWxsaW50LCBmaXhlcyA1MDQyODQKKworRnJpIEphbiAxMSAxNDozOTowMyBDU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbDItY29uZmlnLmluOiBhcHBseSBwYXRjaCBmcm9tIEZyZWQgQ3JvemF0IHRvIGF2b2lkCisJICBvdXRwdXR0aW5nIC1ML3Vzci9saWIgZnJvbSB4bWwyLWNvbmZpZywgZml4ZXMgIzQ5NzAxMgorCitGcmkgSmFuIDExIDE0OjE4OjA5IENTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBmaXggZGVmaW5pdGlvbiBmb3IgPGVtYmVkPiB0byBhdm9pZCBlcnJvcgorCSAgd2hlbiBzYXZpbmcgYmFjaywgcGF0Y2ggZnJvbSBTdGVmYW4gQmVobmVsIGZpeGluZyA0OTUyMTMKKworRnJpIEphbiAxMSAxNDowNjowOSBDU1QgMjAwOCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gQ2hyaXN0aWFuIFNjaG1pZHQgZml4aW5nIGEgCisJICBjb2x1bW4gY291bnRlciB1cGRhdGUgcHJvYmxlbSwgZml4ZXMgIzQ3MjY5NgorCitGcmkgSmFuIDExIDEzOjIyOjE0IENTVCAyMDA4IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGhhbmRsZSBhIGVycm9uZW91cyBwYXJzaW5nIG9mIGF0dHJpYnV0ZXMgaW4gCisJICBjYXNlIHNhaWQgYXR0cmlidXRlIGhhcyBiZWVuIHJlZGVjbGFyZWQgaW4gdGhlIERURCB3aXRoIGEKKwkgIGRpZmZlcmVudCB0eXBlCisJKiBoYXNoLmM6IGZpeCB0aGUgaGFzaCBzY2FubmVyIHRvIG5vdCBjcmFzaCBpZiBhIGZpcnN0IGVsZW1lbnQKKwkgIGZyb20gdGhlIGhhc2ggbGlzdCBpcyBiZWVuIHJlbW92ZWQgaW4gdGhlIGNhbGxiYWNrCisKK1dlZCBKYW4gIDkgMTA6MTU6NTAgQ1NUIDIwMDggRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWx3cml0ZXIuYzogZml4IGluZGVudGF0aW9uIGluIHhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCwKKwkgIGFzIHJhaXNlZCBieSBGZWxpcGUgUGVuYSwgc2hvdWxkIGZpeCAjNTA4MTU2CisKK1R1ZSBEZWMgIDYgMTE6MDc6NDIgQ0VUIDIwMDcgUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogcGF0dGVybi5jOiBmaXggY3Jhc2ggZnJvbSBkb3VibGUgZnJlZSBvZiBuYW1lIGZvciBidWcgIzUwMTc2MAorCitGcmkgTm92IDIzIDExOjQ3OjQ4IENFVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGhyZWFkcy5jOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlIGluIF9feG1sR2xvYmFsSW5pdE11dGV4TG9jaworCSAgcmVwb3J0ZWQgYnkgSGFubmVzIEVkZXIKKworTW9uIE5vdiAxOSAxODozOToyNiBDRVQgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiByZW1vdmUgYSBjdXQtYW5kLXBhc3RlIGNvcHkgZXJyb3IKKworRnJpIE5vdiAxNiAxMTo1NTozNiBDRVQgMjAwNyBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiBnbG9iYWxzLmMgdGhyZWFkcy5jIGluY2x1ZGUvbGlieG1sL3RocmVhZHMuaDogCisJICBfX3htbEdsb2JhbEluaXRNdXRleERlc3Ryb3koKSB3aWxsIGZyZWUgZ2xvYmFsX2luaXRfbG9jayBvbiBXaW4zMi4KKwkgIFBhdGNoIGZyb20gTWFyYy1BbnRvaW5lIFJ1ZWwuCisKK1R1ZSBOb3YgMTMgMjE6MjY6MjcgQ0VUIDIwMDcgUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogc2NoZW1hdHJvbi5jOiBmaXggY3Jhc2gvbGVha3MgZnJvbSB4bWxTY2hlbWF0cm9uUGFyc2UgZHVlIHRvIGltcHJvcGVyCisJICBzY2hlbWEgZG9jdW1lbnQgb3duZXJzaGlwIGZvciBidWcgIzQ5NTIxNQorCitUdWUgT2N0IDMwIDIxOjI0OjU1IENFVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbWVtb3J5LmM6IHhtbEZyZWUoTlVMTCkgc2hvdWxkIG5vdCBjcmFzaCBpbiBkZWJ1ZyBtb2RlCisJICBzaG91bGQgZml4ICM0OTE2NTEKKworVHVlIE9jdCAxNiAxMzo1ODo0MSBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0VVJJLmM6IGFkZCBhIGRlYnVnIG9wdGlvbiBwcmludGluZyBhbGwgdGhlIGZpZWxkcyB3aXRoaW4KKwkgIHRoZSBwYXJzZWQgVVJJIHN0cnVjdHVyZQorCitXZWQgT2N0IDEwIDEwOjI1OjUyIENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNhdmUuYzogZml4IHRvIGF2b2lkIGEgY3Jhc2ggd2hlbiBkdW1waW5nIGFuIGF0dHJpYnV0ZSBmcm9tCisJICBhbiBYSFRNTCBkb2N1bWVudCwgcGF0Y2ggY29udHJpYnV0ZWQgdG8gZml4ICM0ODUyOTgKKworVHVlIEF1ZyAyOCAxOTozMjoyOCBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogYW5vdGhlciBuYXN0eSByZWdleHAgY2FzZSBmaXhlZC4KKwkqIHRlc3QvcmVnZXhwL3JhbmdlczIgcmVzdWx0L3JlZ2V4cC9yYW5nZXMyOiBhZGRlZCB0byByZWdyZXNzaW9uCisJICBzdWl0ZQorCitGcmkgQXVnIDI0IDEwOjU4OjU4IEhLVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBuYW5vaHR0cC5jOiBFbmhhbmNlZCB0byBpbmNsdWRlIHBvcnQgbnVtYmVyIChpZiBub3QgPT0gODApIG9uIHRoZQorCSAgIkhlYWRlcjoiIFVSTCAoYnVnICM0Njk2ODEpLgorCSogeG1scmVnZXhwLmM6IEZpeGVkIGEgdHlwbyBjYXVzaW5nIGEgd2FybmluZyBtZXNzYWdlLgorCitUaHUgQXVnIDIzIDIyOjQ4OjIwIENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG5hbm9odHRwLmM6IGZpeCBhbiBvcGVuKCkgY2FsbCB3aXRoIGNyZWF0aW9uIHdpdGhvdXQgM3JkIGFyZ3VtZW50CisJICBob3BlZnVsbHkgdGhhdCBpbnRlcmZhY2UgaXMgbmV2ZXIgdXNlZC4KKworVGh1IEF1ZyAyMyAxNzowMDo0OSBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gZG9jLyo6IHByZXBhcmluZyByZWxlYXNlIG9mIDIuNi4zMAorCitUaHUgQXVnIDIzIDIwOjU4OjI4IEhLVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBmaXhlZCB4bWxYUGF0aENvbXBPcEV2YWxQb3NpdGlvbmFsUHJlZGljYXRlIHByb2JsZW0KKwkgIHdpdGggb2JqZWN0IGNhY2hpbmcgKGJ1ZyAjNDY5NDEwKQorCitUaHUgQXVnIDIzIDExOjI4OjM4IENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyB0ZXN0L3NjaGVtYXMvKjQ1NTk1MyogcmVzdWx0L3NjaGVtYXMvYnVnNDU1OTUzKjoKKwkgIGFwcGxpZWQgcGF0Y2ggZnJvbSBGcmFuayBHcm9zcyBmaXhpbmcgU2NoZW1hcyBJREMgaW1wb3J0IGJ1ZworCSAgIzQ1NTk1MyBhbmQgYWxzbyBhZGQgdGhlIHRlc3QgdG8gdGhlIHJlZ3Jlc3Npb24gc3VpdGUKKworV2VkIEF1ZyAyMiAxODoyOTo0MiBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogdHJ5IHRvIGZpeCBmb3IgdGhlIG50aCB0aW1lIHRoZSBhdXRvbWF0YSBnZW5lcmF0aW9uCisJICBpbiBjYXNlIG9mIGNvbXBsZXggcmFuZ2VzLiBJIHN1cHBvc2UgdGhhdCB0aW1lIGl0IGlzIGFjdHVhbGx5IG9rYXkKKworVHVlIEF1ZyAxNCAxNTo1MTowNSBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYWxpZ25lZCB4bWxTQVhVc2VyUGFyc2VNZW1vcnkoKSB0byBtYXRjaCAKKwkgIHhtbFNBWFVzZXJQYXJzZUZpbGUoKSBsb2dpYyBiYXNlZCBvbiBBc2h3aW4gcG9zdCwgYW5kIGlmZGVmCisJICBjbGVhbnVwCisKK1R1ZSBBdWcgMTQgMTE6NDI6MjcgQ0VTVCAyMDA3IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIHhtbElPLmM6IGZpeGVkIHdpbmRvd3MgcGF0aCBkZXRlcm1pbmF0aW9uIChwYXRjaCBmcm9tCisJICBSb2xhbmQgU2Nod2FyeiwgYnVnICM0NjI4NzcpCisJKiB3aW4zMi9NYWtlZmlsZS5taW5ndyB3aW4zMi9jb25maWd1cmUuanM6IGZpeGVkIG1pbmd3IGJ1aWxkCisJICAocGF0Y2ggZnJvbSBSb2xhbmQgU2Nod2FyeiwgYnVnICM0NjI4NzcpCisKK1dlZCBBdWcgIDEgMDk6NTA6MTIgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGVkIGEgcGFyc2VyIGJ1ZyB3aGVyZSBpbnZhbGlkIGNoYXIgaW4gY29tbWVudCBtYXkKKwkgIG5vdCBiZSBkZXRlY3RlZCwgcmVwb3J0ZWQgYnkgQXNod2luIFNpbmhhCisJKiB0ZXN0L2Vycm9ycy9jb21tZW50MS54bWwgcmVzdWx0L2Vycm9ycy9jb21tZW50MS54bWwqOiBhZGRlZAorCSAgdGhlIGV4YW1wbGUgdG8gdGhlIHJlZ3Jlc3Npb24gc3VpdGUKKworVGh1IEp1bCAyNiAxMzo0MjoyNiBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzYXZlLmM6IGZpeGVkIHByb2JsZW0gcmVwb3J0ZWQgb24gYnVnICM0NjA0MTUKKworVGh1IEp1bCAxOSAxODoxMDo1OCBQRFQgMjAwNyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdXJpLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBmcm9tIFBhdHJpayBGaW1tbC4gIEZpeGVzIGJ1ZyAjNDU4MjY4LgorCitXZWQgSnVsIDE4IDExOjA1OjA4IFBEVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4aW5jbHVkZS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gYnVnICM0NTQ2MDggZnJvbSBQYXRyaWsgRmltbWwuCisJICBGaXhlcyBidWcgIzQ1NDYwOC4KKworV2VkIEp1bCAxMSAxOTo1Nzo1OSBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGFwcGxpZWQgcGF0Y2ggZm9yIHhzaTpuaWwgZnJvbSBGcmFuayBHcm9zcywgdGhpcworCSAgc2hvdWxkIGZpeCBidWcgIzM1ODEyNQorCitXZWQgSnVsICA0IDE3OjQ0OjIwIENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHdyaXRlci5jOiBwYXRjaCBmcm9tIERvZGppIFNla2V0ZWxpIHRvIGF2b2lkIGEgbGVhayBvbiByZXBlYXRlZAorCSAgdXNlcyBvZiB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCgpCisKK1R1ZSBKdW4gMjYgMTM6MzA6NTAgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiBmaXggYSBjcmFzaCBvbiBzb2xhcmlzIHdoZW4gYSBwcmludGYgJXMgd2l0aCBhIE5VTEwKKwkgIGFyZ3VtZW50IG9jY3Vycywgc2hvdWxkIGZpeCAjNDUwOTM2CisKK1dlZCBKdW4gMTMgMTM6MzM6MzggUERUIDIwMDcgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHByb2JsZW0gaW4gcHJldmlvdXMgZml4IHRvIHhtbFhQYXRoTm9kZVNldFNvcnQKKworVHVlIEp1biAxMiAxODoxNzoyOCBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvKiBjb25maWd1cmUuaW4gTkVXUzogcmVsZWFzZSBvZiBsaWJ4bWwyIDIuNi4yOQorCSogdmFsaWQuYzogcGF0Y2ggZnJvbSBEYWdmaW5uIEkuIE1hbm5zw6VrZXIgZm9yIGlkbmVzcyBvZiBuYW1lCisJICBpbiBIVE1MLCBjLmYuIGJ1ZyAjMzA1ODg1LgorCitUdWUgSnVuIDEyIDE3OjE0OjA4IENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYzogZml4aW5nIGJ1ZyAjMzE5OTY0LCBwYXJzaW5nIG9mIEhUTUwgYXR0cmlidXRlIHJlYWxseQorCSAgc2hvdWxkIG5vdCBoYXZlIG5hbWVzcGFjZSBwcm9jZXNzaW5nLgorCitUdWUgSnVuIDEyIDE2OjQyOjE0IENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCB0aGUgcHVzaCBtb2RlIHdoZW4gYSBiaWcgY29tbWVudCBvY2N1cnMgYmVmb3JlCisJICBhbiBpbnRlcm5hbCBzdWJzZXQsIHNob3VsZCBjbG9zZSBidWcgIzQzODgzNQorCSogdGVzdC9jb21tZW50Ni54bWwgcmVzdWx0Ly9jb21tZW50Ni54bWwqOiBhZGRlZCBhIHNwZWNpYWwKKwkgIHRlc3QgaW4gdGhlIHJlZ3Jlc3Npb24gc3VpdGUKKworVHVlIEp1biAxMiAxNTo0MTowOSBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4IGJ1ZyAjNDE0ODQ2IHdoZXJlIGludmFsaWQgY2hhcmFjdGVycyBpbiBhdHRyaWJ1dGVzCisJICB3b3VsZCBzb21ldGltZXMgbm90IGJlIGRldGVjdGVkLgorCSogdGVzdC9lcnJvcnMvYXR0cjQueG1sIHJlc3VsdC9lcnJvcnMvYXR0cjQueG1sKjogYWRkZWQgYSBzcGVjaWZpYworCSAgdGVzdCBjYXNlIHRvIHRoZSByZWdyZXNzaW9uIHRlc3RzCisKK1R1ZSBKdW4gMTIgMTQ6MjM6MjQgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHN0Yy9NYWtlZmlsZS5hbTogYXBwbHkgcGF0Y2ggZnJvbSBSeWFuIEhpbGwgdG8gY29wZSB3aXRoIGNoYW5nZXMKKwkgIGluIEdOVSB0YXIsIHNob3VsZCBmaXggIzM5Njc1MQorCitUdWUgSnVuIDEyIDEyOjAzOjM2IENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi90eXBlcy5jOiB0cnkgdG8gYWxsb3cgY29tcGlsYXRpb24gb24gb2xkIHB5dGhvbiB2ZXJzaW9uCisJICBzaG91bGQgZml4ICMzOTgxMjUKKworVHVlIEp1biAxMiAxMTo0ODoxNSBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jOiBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQgZGlkbid0IGhhbmRsZSBYTUxfQVRUUklCVVRFX05PRGUKKwkgIGZpeGVzIGJ1ZyAjNDM4MzkwCisKK1R1ZSBKdW4gMTIgMTE6Mzc6NTUgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYzogd29ya2Fyb3VuZCBtaXNnZW5lcmF0ZWQgZmlsZTogVVJJcyBjLmYuICM0MzczODUKKworVHVlIEp1biAxMiAxMToyMjo0NyBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGZpeGVkIGJ1ZyAjNDA3NDM2IGEgY3Jhc2ggaW4gYSBzcGVjaWZpYyBjYXNlIG9mCisJICBSZWxheC1ORyB2YWxpZGF0aW9uCisKK1R1ZSBKdW4gMTIgMTE6MTI6NTAgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2F0YWxvZy5jOiBmaXhlZCBidWcgIzM4MzY4Nywgc29tZSBjYXNlIG9mIHJlY3Vyc2lvbiBvbiBuZXh0CisJICB3ZXJlIG5vdCBjYXVnaHQgaW4gdGhlIGNhdGFsb2cgY29kZS4KKworVHVlIEp1biAxMiAxMDozNzo0MiBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGJ1ZyAjMzgxODc3LCBhdm9pZCByZWFkaW5nIG92ZXIgdGhlIGVuZAorCSAgb2Ygc3RyZWFtIHdoZW4gZ2VuZXJhdGluZyBhbiBVVEYtOCBlbmNvZGluZyBlcnJvci4KKworVHVlIEp1biAxMiAxMDoxNjo0OCBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgYnVnICMzNjYxNjEsIHRyaXZpYWxseSBhZGRlZCB0aGUgY2hlY2sgaW4KKwkgIHhtbEN0eHRSZXNldCgpCisKK0ZyaSBKdW4gIDggMjE6NDg6MjEgQ0VTVCAyMDA3IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIHdpbjMyL2NvbmZpZ3VyZS5qcyB3aW4zMi9NYWtlZmlsZS5tc3ZjOiBhZGQgLS12Y21hbmlmZXN0IGZsYWcgKHllcy9ubykgCisJICBmb3IgVkM4IGJ1aWxkIHN1cHBvcnQgdG8gZW1iZWQgbWFuaWZlc3Qgd2l0aGluIGZpbGVzLiBVbmRlciBNUyBWQywgYnVpbGQgCisJICBsaWJ4bWwyX2FfZGxsLmxpYiBieSBkZWZhdWx0IChMSUJYTUxfU1RBVElDX0ZPUl9ETEwgZmxhZykuCisKK0ZyaSBKdW4gIDggMjE6Mzc6NDYgQ0VTVCAyMDA3IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIHRocmVhZHMuYyBpbmNsdWRlL2xpYnhtbC90aHJlYWRzLmg6IHVzZSBzcGVjaWZpZWQgY2FsbGluZyBjb252ZW50aW9uIAorCSAgZm9yIHhtbERsbE1haW4uIE9sZCBTREtzIChWQzYpIG9ubHkgc3VwcG9ydCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZS4KKwkgIGFkZCB4bWxEbGxNYWluIHRvIGhlYWRlciBmb3Igd2luMzIgd2hlbiBidWlsZGluZyBmb3Igc3RhdGljIGRsbAorCitGcmkgSnVuICA4IDEwOjUxOjI4IENFU1QgMjAwNyBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiB4bWx3cml0ZXIuYzogZml4ZWQgcHJvYmxlbSB3aXRoIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBiZWluZyAKKwkgIHdyaXR0ZW4gbW9yZSB0aGFuIG9uY2UgcGVyIGVsZW1lbnQgc3RhcnQgdGFnCisKK1dlZCBKdW4gIDYgMTA6MTg6MjggUERUIDIwMDcgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHByb2JsZW0gd2l0aCB4bWxYUGF0aE5vZGVTZXRTb3J0OworCSAgZml4ZWQgcHJvYmxlbSB3aXRoIHhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIChib3RoIGJ1ZyM0MTM0NTEpCisKK1dlZCBNYXkgMzAgMjI6MDU6MDggUERUIDIwMDcgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBzdHJpbmcgdmFsdWUgZm9yIFBJIG5vZGUKKwkgIChidWcgIzQ0MjI3NSkKKworTW9uIE1heSAyOCAxNjoxNDo1MCBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogZml4IGJ1ZyByZXBvcnRlZCBieSBGcmFuw6dvaXMgRGVseW9uCisKK1R1ZSBNYXkgMjIgMDg6NTk6NDggUERUIDIwMDcgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGVuY29kaW5nLmM6IEZpeGVkIHR5cG8gaW4geG1sQ2hhckVuY0ZpcnN0TGluZSBwb2ludGVkIG91dAorCSAgYnkgTWFyayBSb3dlIChidWcgIzQ0MDE1OSkKKwkqIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbjogQWRkZWQgY2hlY2sgZm9yIGRlZmluaXRpb24gb2YKKwkgIF9QT1NJWF9DX1NPVVJDRSB0byBhdm9pZCB3YXJuaW5ncyBvbiBBcHBsZSBPUy9YIChwYXRjaCBmcm9tCisJICBXZW5keSBEb3lsZSBhbmQgTWFyayBSb3dlLCBidWcgIzM0NjY3NSkKKwkqIHNjaGVtYXRyb24uYywgdGVzdGFwaS5jLCB0cmVlLmMsIHhtbElPLmMsIHhtbHNhdmUuYzogbWlub3IKKwkgIGNoYW5nZXMgdG8gZml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzIC0gbm8gY2hhbmdlIHRvIGxvZ2ljLgorCitUdWUgTWF5IDE1IDIyOjE4OjA4IFBEVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBuYW5vaHR0cC5jOiBzbWFsbCBlbmhhbmNlbWVudCB0byBsYXN0IGZpeCwgcG9pbnRlZCBvdXQKKwkgIGJ5IEFsZXggQ29ybmVqbworCitUdWUgTWF5IDE1IDEyOjM4OjM4IFBEVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBuYW5vaHR0cC5jOiBmaXhlZCBwcm9ibGVtIG9uIGd6aXAgc3RyZWFtcyAoYnVnICM0MzgwNDUpCisJKiB4cGF0aC5jOiBmaXhlZCBtaW5vciBzcG90IG9mIHJlZHVuZGFudCBjb2RlIC0gbm8gbG9naWMgY2hhbmdlLgorCitGcmkgTWF5IDExIDIyOjQ1OjE4IEhLVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBlbmhhbmNlZCB0aGUgY29kaW5nIGZvciB4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZworCSAgaW4gb3JkZXIgdG8gcHJvZHVjZSB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworCSAgKGJ1ZyAjNDM3MTc5KQorCitUaHUgTWF5IDEwIDAxOjUyOjQyIENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpc3QuYzogYXBwbGllZCBwYXRjaCB0byBmaXggeG1sTGlzdEFwcGVuZCgpIGZyb20gCisJICBHZW9yZ2VzLUFuZHLDqSBTSUxCRVIKKwkqIHZhbGlkLmM6IGFsc28gZml4IHRoZSBwbGFjZSB3aGVyIGl0IHdhcyBjYWxsZWQuCisKK1dlZCBNYXkgIDIgMTg6NDc6MzMgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHRyaWVkIHRvIGZpeCBhbiBlcnJvciBwcm9ibGVtIG9uIGVudGl0eSBjb250ZW50IGZhaWx1cmUKKwkgIHJlcG9ydGVkIGJ5IE1pY2hhZWwgRGF5CisKK1dlZCBNYXkgIDIgMTg6MjM6MzUgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiB0eXBvIHBhdGNoIGZyb20gQmpvcm4gUmVlc2UKKworV2VkIE1heSAgMiAxODoxMjo1OCBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNaWNoYWVsIERheSB0byBhZGQgc3VwcG9ydCBmb3IKKwkgIDxlbWJlZD4KKworVGh1IEFwciAyNiAxMDo1ODo1MCBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IEplYW4tRGFuaWVsIER1cGFzIHBvaW50ZWQgYSBjb3VwbGUgb2YgcHJvYmxlbXMKKwkgIGluIGh0bWxDcmVhdGVEb2NQYXJzZXJDdHh0LgorCitUaHUgQXByIDI2IDEwOjM2OjI2IENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jIGluY2x1ZGUvbGlieG1sL3VyaS5oOiBwYXRjaCBmcm9tIFJpY2hhcmQgSm9uZXMgdG8gc2F2ZQorCSAgdGhlIHF1ZXJ5IHBhcnQgaW4gcmF3IGZvcm0uCisJKiBsaWJ4bWwyLXB5dGhvbi1hcGkueG1sOiBhbHNvIGFkZGVkIGFjY2Vzc29yIGZvciB0aGUgcHl0aG9uIGJpbmRpbmdzCisKK1dlZCBBcHIgMjUgMTU6NTc6MzIgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHN0Yy9NYWtlZmlsZS5hbSBkb2MvZXhhbXBsZXMvTWFrZWZpbGUuYW0gTWFrZWZpbGUuYW06IGFwcGxpZWQKKwkgIHBhdGNoIGZyb20gUmljaGFyZCBKb25lcyB0byBmb3IgdGhlIHNpbGVudCBmbGFnIG9uIHZhbGdyaW5kCisJICB3aGVuIGRvaW5nICJtYWtlIHZhbGdyaW5kIgorCSogeG1scmVnZXhwLmM6IHJhaXNlIGEgcmVnZXhwIGVycm9yIHdoZW4gJ1wnIGlzIG1pc3VzZWQgdG8gZXNjYXBlCisJICBhIHN0YW5kYXJkIGNoYXJhY3Rlci4KKworVHVlIEFwciAyNCAyMDoxNToxNCBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IFJpY2hhcmQgSm9uZXMgcmVwb3J0ZWQgeG1sQnVmZmVyQWRkIChidWYsICIiLCAtMSksIGZpeGluZyBpdAorCitUdWUgQXByIDI0IDEwOjU5OjI4IENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jOiBmaXggeG1sVVJJVW5lc2NhcGVTdHJpbmcgY29tbWVudHMgd2hpY2ggd2FzIGNvbmZ1c2luZworCitXZWQgQXByIDE4IDA5OjUyOjI1IENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvd2luMzJjb25maWcuaCBsaWJ4bWwuaDogbmV3IHBhdGNoIGZyb20gQW5kcmVhcyBTdHJpY2tlIHRvCisJICBiZXR0ZXIgaW50ZWdyYXRlIHN1cHBvcnQgZm9yIFdpbmRvd3MgQ0UKKworVHVlIEFwciAxNyAxNjo1MDoxMiBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvKiBjb25maWd1cmUuaW4gTkVXUzogcmVsZWFzZSBvZiBsaWJ4bWwyIDIuNi4yOAorCitUdWUgQXByIDE3IDE0OjQ3OjQyIENFU1QgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYyBsaWJ4bWwuaCB3aW4zMi93aW5jZS93aW5jZWNvbXBhdC5oIHdpbjMyL3dpbmNlL3dpbmNlY29tcGF0LmMKKwkgIHhtbElPLmMgbmFub2h0dHAuYyBuYW5vZnRwLmMgdHJpby5jIHRyaW9zdHIuYyB0cmlvc3RyLmg6IGFwcGxpZWQgCisJICBwYXRjaCBmcm9tIEFuZHJlYXMgU3RyaWNrZSB0byBlYXNlIHRoZSBjb21waWxhdGlvbiBvbiBXaW5kb3dzIENFCisKK1R1ZSBBcHIgMTcgMTQ6MzQ6NDUgQ0VTVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jIGNhdGFsb2cuYzogInhtbGxpbnQgdW51c2FibGUgb24gd2luMzIiIHNvIGFwcGxpZWQKKwkgIGEgbGlieG1sMiBwYXRjaCBmcm9tIENocmlzdGlhbiBFaHJsaWNoZXIKKworTW9uIEFwciAxNiAwOTowNTowMSBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGNoYW5nZSB0aGUgd2F5IHNjcmlwdC9zdHlsZSBhcmUgcGFyc2VkIHRvCisJICBub3QgdHJ5IHRvIGRldGVjdCBjb21tZW50cywgcmVwb3J0ZWQgYnkgTWlrZSBEYXkKKwkqIHJlc3VsdC9IVE1ML2RvYzMuKjogYWZmZWN0cyB0aGUgcmVzdWx0IG9mIHRoYXQgdGVzdAorCitXZWQgQXByIDExIDIyOjM4OjE4IEhLVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxyZWdleHAuYzogc21hbGwgZW5oYW5jZW1lbnQgZm9yIHF1YW50aWZpZXIgcmFuZ2Ugd2l0aAorCSAgbWluIG9jY3VycyBvZiAwOyBmaXhlcyBidWcgNDI1NTQyLgorCQorRnJpIE1hciAzMCAxNDo0MTo1NyBDRVNUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBhcHBsaWVkIGNoYW5nZSBmcm9tIE1pY2hhZWwgRGF5IHRvIGF2b2lkIGEgcHJvYmxlbSB3aGVuCisJICBjb21waWxlZCB3aXRob3V0IHpsaWIgc3VwcG9ydC4KKworV2VkIE1hciAyMSAxNzo1ODoxMyBDRVQgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3hwYXRoLmg6IGFwcGxpZWQgZG9jdW1lbnRhdGlvbiBwYXRjaCBmcm9tIEphbWVzIERlbm5ldHQKKworV2VkIE1hciAyMSAyMToyMDo0OCBIS1QgMjAwNyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1scmVnZXhwLmM6IGZpeGVkIHByb2JsZW0gd2l0aCAweDJkIGluIENoYXIgUmFuZ2UgKGJ1ZyAjNDIwNTk2KQorCSogdGVzdC9yZWdleHAvYnVnNDIwNTk2LCByZXN1bHQvcmVnZXhwL2J1ZzQyMDU5NjogYWRkZWQgcmVncmVzc2lvbgorCSAgdGVzdCBmb3IgdGhpcworCitXZWQgTWFyIDIxIDE0OjIzOjA4IEhLVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIG1lbW9yeSBhY2Nlc3MgZXJyb3Igb24gcGFyc2luZyBvZiBtZXRhIGRhdGEKKwkgIHdoaWNoIGhhZCBlcnJvcnMgKGJ1ZyAjMzgyMjA2KS4gIEFsc28gY2xlYW5lZCB1cCBhIGZldyB3YXJuaW5ncworCSAgYnkgYWRkaW5nIHNvbWUgYWRkaXRpb25hbCBERUNMIG1hY3Jvcy4KKworVHVlIE1hciAyMCAwOTo1ODoxMyBDRVQgMjAwNyAgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBuYW5vZnRwLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBCasO2cm4gV2liZXJnIHRvIHRyeSB0byBmaXggYWdhaW4KKwkgIHRoZSBzaWxseSBfX3NzX2ZhbWlsbHkgcHJvYmxlbSBvbiB2YXJpb3VzIEFJWGVzLCBzaG91bGQgZml4ICM0MjAxODQKKworV2VkIE1hciAxNCAyMDozMDozOCBIS1QgMjAwNyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogY29uZmlndXJlLmluOiBjb3JyZWN0ZWQgc21hbGwgZXJyb3IgaW4gbGFzdCBjb21taXQKKwkqIHhtbHJlYWRlci5jOiBjb3JyZWN0ZWQgc21hbGwgdHlwbyBpbiBsYXN0IGNvbW1pdAorCitXZWQgTWFyIDE0IDE5OjM1OjI4IEhLVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeGVkIHByb2JsZW0gd2l0aCByZWZlcmVuY2VkIGF0dHJpYnV0ZSBncm91cHMKKwkgIChidWcgIzQxNzYyMSkKKwkqIGNvbmZpZ3VyZS5pbjogcmUtb3JkZXJlZCBzb21lIGluY2x1ZGVzIGZvciB0eXBlcy5oIC8gc29ja2V0LmgKKwkgIChidWcgIzQxNjAwMSkKKworRnJpIE1hciAgOSAxNzo1NDo0MCBDRVQgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gSnVsaWVuIFJlaWNoZWwgY2xlYW5pbmcgdXAgbW9kZQorCSAgYW5kIHN0YXRlIGludGVybmFsIGZsYWdzIG1peHVwcworCitXZWQgTWFyICA3IDE2OjE4OjE4IEhLVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBmaXhlZCB4bWxYUGF0aENtcE5vZGVzIGZvciBpbmNvcnJlY3QgcmVzdWx0IG9uIGNlcnRhaW4KKwkgIGNhc2VzIHdoZW4gY29tcGFyaW5nIGlkZW50aWNhbCBub2RlcyAoYnVnICM0MTU1NjcpIHdpdGggcGF0Y2gKKwkgIGZyb20gT2xlZyBQYXJhc2NoZW5rbworCitGcmkgRmViIDE2IDA5OjEzOjM4IFBTVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBweXRob24vbGlieG1sLnB5OiBmaXhlZCB0YWIgcHJvYmxlbSB3aXRoIHBhdGNoIGZyb20KKwkgIEFuZHJlYXMgSGFua2UgKGJ1ZyAjNDA4NjI2KQorCitUaHUgRmViIDE1IDEyOjQzOjI4IFBTVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MveG1sLmh0bWw6IENoYW5nZWQgYWxsIHJlZmVyZW5jZXMgdG8gbGlieG1sMiBDVlMgb3ZlciB0bworCSAgdGhlIGNvcnJlc3BvbmRpbmcgU1ZOLiAgQSBmZXcgb3RoZXIgc3BlbGxpbmcvZ3JhbW1hci9saW5rcworCSAgYWxzbyBjaGFuZ2VkLgorCSogZG9jL2xpYnhtbDItYXBpLnhtbCwgZG9jLyouaHRtbDogUmVnZW5lcmF0ZWQgYWxsIGRvY3MuCisKK1R1ZSBGZWIgMTMgMTg6MTU6NTggUFNUIDIwMDcgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IEZpeGVkIG1lbW9yeSBidWcgd2l0aCBpbnZhbGlkIGZ1bmN0aW9uIHJlcG9ydGVkIGJ5CisJICBGcmFuY29pcyBEZWx5b24gb24gbWFpbGluZyBsaXN0CisKK01vbiBGZWIgMTIgMTY6NDA6NDggUFNUIDIwMDcgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBpbnZhbGlkIGNoYXIgZW5jb3VudGVyZWQKKwkgIGR1cmluZyB0ZXh0IGluY2x1ZGUgKHJlcG9ydGVkIG9uIHhzbHQgbWFpbGluZyBsaXN0KQorCitNb24gRmViIDEyIDE4OjMwOjAxIENFVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IHNtYWxsIGNsZWFudXAgdG8gYXZvaWQgcGFja2FnaW5nIC5zdm4KKwkqIGxpYnhtbC5oIHRocmVhZHMuYyBwYXJzZXIuYzogYXBwbGllZCBwYXRjaCB0byBhdm9pZCBhIHByb2JsZW0KKwkgIGluIGNvbmN1cnJlbnQgdGhyZWFkZWQgaW5pdGlhbGl6YXRpb24gZml4IGZyb20gVGVkIFBoZWxwcworCitUaHUgRmViIDA4IDE1OjM1OjE4IFBTVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXJzZXIuYzogYWRkZWQgYSBHUk9XIHdoZW4gcGFyc2luZyBjb21wbGV4IGNvbW1lbnRzIChidWcgIzQwNTY2NikKKwkqIGdlbnRlc3QucHksIHRlc3RhcGkuYzogYWRkZWQgYSBoYWNrIHRvIHByZXZlbnQgZGVzdHJ1Y3Rpb24gb2YgYW55CisJICBwYXJhbSB3aXRoICdkZXN0cm95JyBpbiBpdCdzIGRlc2NyaXB0aW9uIChpLmUuIHBhcmFtIGRlc3Ryb3llZCBieQorCSAgdGhlIHJvdXRpbmUgdW5kZXIgdGVzdCwgc28gc2hvdWxkbid0IGJlIGRlc3Ryb3llZCBieSB0ZXN0YXBpKQorCSogeG1scmVhZGVyLmM6IGFkZGVkIGZyZWVpbmcgb2YgJ2lucHV0JyBwYXJhbSBldmVuIG9uIGVycm9yCisJICAoZml4ZXMgbGVhayBkZXRlY3RlZCBieSB0ZXN0YXBpKQorCitXZWQgSmFuIDMxIDEwOjI1OjM4IFBTVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB0ZXN0QXV0b21hdGEuYywgdGVzdFJlZ2V4cC5jLCB0ZXN0VGhyZWFkcy5jLCB0ZXN0VGhyZWFkc1dpbjMyLmMsCisJICB4bWx3cml0ZXIuYzogcmVwb3NpdGlvbmVkICNpbmNsdWRlIGZvciBsaWJ4bWwuaCB0byBhdm9pZAorCSAgY29tcGlsYXRpb24gZXJyb3Igb24gc29tZSBhcmNoaXRlY3R1cmVzIChidWcgIzM5ODI3NykKKwkqIGZpeGVkIHNjcmV3ZWQtdXAgQ2hhbmdlTG9nIChkZWxldGVkIHNvbWUgZHVwbGljYXRlIGVudHJpZXMpCisKK0ZyaSBKYW4gMjYgMDA6MDU6MTggUFNUIDIwMDcgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGltcGxlbWVudGVkIHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bCBmb3IgdXJpLmMgKGJ1ZyAjMzg5NzY3KQorCitUaHUgSmFuIDI1IDExOjE1OjA4IFBTVCAyMDA3IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBhZGRlZCBjaGVja3MgZm9yIGFsbG9jIGZhaWwgb24gY2FsbHMgdG8KKwkgIHhtbFhQYXRoTmV3Q29udGV4dCAobGlieHNsdCBidWcgIzQwMDI0MikKKworVGh1IEphbiAxMSAxNTozODowOCBQU1QgMjAwNyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogUmUtZ2VuZXJhdGVkIHRoZSBkb2N1bWVudGF0aW9uIChBUEkgY2h1bmtzIDI3LTI5IHdlcmUgbWlzc2luZykKKwkgIChhbHNvIGNhdXNlcyBjaGFuZ2VzIHRvIHRlc3RhcGkuYywgZWxmZ2NjaGFjay5oIGFuZAorCSAgd2luMzIvbGlieG1sMi5kZWYuc3JjKQorCitUdWUgSmFuICA5IDIyOjI0OjI2IENFVCAyMDA3IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiBmaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgcHl0aG9uIHN0cmluZyBoYW5kbGluZworCSAgd2hlbiBTQVggZXZlbnQgYXJlIHBhc3NlZCBiYWNrIHRvIHRoZSBweXRob24gaGFuZGxlcnMKKworVGh1IEphbiAgNCAxODoyNzo0OSBDRVQgMjAwNyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBmaXggeG1sVGV4dFJlYWRlclNldHVwKCkgZGVzY3JpcHRpb24KKwkqIHRlc3QvcmVsYXhuZy9lbXB0eTEucm5nIHRlc3QvcmVsYXhuZy9jb21wc18wLnhtbAorCSAgdGVzdC9yZWxheG5nL2VtcHR5MV8wLnhtbCB0ZXN0L3JlbGF4bmcvY29tcHMucm5nCisJICB0ZXN0L3JlbGF4bmcvZW1wdHkwLnJuZyB0ZXN0L3JlbGF4bmcvZW1wdHkwXzAueG1sCisJICB0ZXN0L3JlbGF4bmcvZW1wdHkxXzEueG1sOiB0ZXN0cyB3aGljaCB3ZXJlIGFwcGFyZW50bHkgCisJICBuZXZlciBjb21taXRlZCB0byBDVlMKKworV2VkIEphbiAgMyAxNjowNToyMSBQU1QgMjAwNyBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiB4bWxyZWFkZXIuYyBpbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaCB3aW4zMi9saWJ4bWwyLmRlZi5zcmM6CisJZXhwb3NlIHhtbFRleHRSZWFkZXJTZXR1cCgpIGZ1bmN0aW9uCisKK1dlZCBKYW4gIDMgMTY6MTQ6MTMgQ0VUIDIwMDcgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IGFkYXB0IHRoZSBleHRyYSB2ZXJzaW9uaW5nIGNvZGUgdG8gU1ZOCisKK1RodSBEZWMgMTQgMTY6NTI6MzQgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwucHk6IGFwcGFyZW50bHkgaWQoKSBzb21ldGltZXMKKwkgIGdlbmVyYXRlIG5lZ2F0aXZlIHZhbHVlcyBhbmQgJVggb3V0cHV0cyAtWFhYWCA6LSgKKworTW9uIERlYyAgNCAxMDozMDoyNSBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogcGF0Y2ggZnJvbSBNaWNoYWVsIERheSBvbiBzdGFuZGFsb25lCisJICBhbmQgWE1MIGRlY2xhcmF0aW9uIGRldGVjdGlvbiwgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBjaGFuZ2UKKworTW9uIERlYyAgNCAxMDoyNzowMSBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IGFub3RoZXIgWEluY2x1ZGUgdXNlciBkYXRhIHByb3BhZ2F0aW9uIHBhdGNoIGZyb20KKwkgIE1pY2hhZWwgRGF5CisKK1RodSBOb3YgMjMgMTc6MjI6MDMgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBTdGV2ZW4gUmFpbndhdGVyIHRvIGZpeCAKKwkgIFVURjhUb0h0bWwgYmVoYXZpb3VyIG9uIGNvZGUgcG9pbnRzIHdoaWNoIGFyZSBub3QgbWFwcGFibGUgdG8KKwkgIHByZWRlZmluZWQgSFRNTCBlbnRpdGllcywgZml4ZXMgIzM3NzU0NAorCitUaHUgTm92IDIzIDE3OjExOjIzIENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogZml4ZWQgYSBidWcgd2hlcmUgdGhlIHByaW5jaXBhbCBub2RlIHR5cGUgb2YgYW4gYXhpcworCSAgd2Fzbid0IHRlc3RlZCBvbiBuYW1lIGNoZWNrLCBmaXhlcyBidWcgIzM3NzQzMgorCitXZWQgTm92ICA4IDEwOjE5OjI3IENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBjaGFuZ2UgaHRtbEN0eHRSZXNldCgpIGZvbGxvd2luZyBNaWNoYWVsIERheSBidWcKKwkgIHJlcG9ydCBhbmQgc3VnZ2VzdGlvbi4KKworTW9uIE5vdiAgNiAwOTo1Njo0MSBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gSWdvciBmb3IgcGF0aCBjb252ZXJzaW9uIG9uIFdpbmRvd3MKKworVGh1IE5vdiAgMiAxMToyOToxNyBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBhbm90aGVyIHNtYWxsIGNoYW5nZSBvbiB0aGUgYWxnb3JpdGhtIGZvciB0aGUKKwkgIGVsaW1pbmF0aW9uIG9mIGVwc2lsb24gdHJhbnNpdGlvbnMsIHNob3VsZCBoZWxwIG9uICMzNjI5ODkgdG9vCisKK1dlZCBOb3YgIDEgMTY6MzM6MTAgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGFwcGxpZWQgZG9jdW1lbnRhdGlvbiBwYXRjaGVzIGZyb20gTWFya3VzIEtlaW0KKwkqIHhtbHJlZ2V4cC5jOiBmaXhlZCBvbmUgYnVnIGFuZCBhZGRlZCBhIGNvdXBsZSBvZiBvcHRpbWlzYXRpb25zCisJICB3aGlsZSB3b3JraW5nIG9uIGJ1ZyAjMzYyOTg5CisKK0ZyaSBPY3QgMjcgMTQ6NTQ6MDcgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBhcHBsaWVkIGEgcmV3b3JrZWQgdmVyc2lvbiBvZiBVc2FtYWggTWFsaWsgcGF0Y2gKKwkgIHRvIGF2b2lkIGdyb3dpbmcgdGhlIHBhcnNlciBzdGFjayBpbiBzb21lIGF1dG9jbG9zZSBjYXNlcywgc2hvdWxkCisJICBmaXggIzM2MTIyMQorCitUaHUgT2N0IDI2IDEwOjU0OjQwIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IFdpbGxpYW0gc3BvdHRlZCBhbiBvYnZpb3VzIGJ1ZworCitXZWQgT2N0IDI1IDE4OjA0OjUwIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE5FV1MgY29uZmlndXJlLmluIHRlc3RhcGkuYyBkb2MvLyo6IHByZXBhcmluZyByZWxlYXNlIG9mCisJICBsaWJ4bWwyLTIuNi4yNworCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBmaXggYSBzbWFsbCBwcm9ibGVtIHdpdGggcHJlcHJvYyBmbGFncworCitGcmkgT2N0IDIwIDE0OjU1OjQ3IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogZml4IGNvbW1lbnQgZm9yIHhtbERvY1NldFJvb3RFbGVtZW50IGMuZi4gIzM1MTk4MQorCSogeG1sbGludC5jOiBvcmRlciBYUGF0aCBlbGVtZW50cyB3aGVuIHVzaW5nIC0tc2hlbGwKKworVHVlIE9jdCAxNyAyMzoyMzoyNiBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogYXBwbGllZCBmaXggZnJvbSBDaHJpc3RvcGhlciBCb3VtZW5vdCBmb3IgYnVnCisJICAjMzYyNzE0IG9uIHJlZ2V4cHMgbWlzc2luZyAnXScKKworVHVlIE9jdCAxNyAyMjozMjo0MiBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogYXBwbGllZCBwYXRjaCBmcm9tIE1hcml1cyBLb25pdHplciB0byBhdm9pZAorCSAgbGVha2luZyBpbiB4bWxOZXdJbnB1dEZyb21GaWxlKCkgaW4gY2FzZSBvZiBIVFRQIHJlZGlyZWN0aW9uCisKK1R1ZSBPY3QgMTcgMjI6MTk6MDIgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBmaXggb25lIHByb2JsZW0gZm91bmQgaW4gaHRtbEN0eHRVc2VPcHRpb25zKCkKKwkgIGFuZCBwb2ludGVkIGluICMzNDA1OTEKKworVHVlIE9jdCAxNyAyMjowNDozMSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIHRlaCAyIHN0dXBpZCBidWdzIGFmZmVjdGluZyBodG1sUmVhZERvYygpIGFuZAorCSAgaHRtbFJlYWRJTygpIHRoaXMgc2hvdWxkIGZpeCAjMzQwMzIyCisKK1R1ZSBPY3QgMTcgMjE6Mzk6MjMgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogYXBwbGllZCBwYXRjaCBmcm9tIE9sYWYgV2Fsa293aWFrIHdoaWNoIHNob3VsZCBmaXggIzMzNDEwNAorCitUdWUgT2N0IDE3IDE4OjEyOjM0IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogZml4aW5nIEhUTUwgbWluaW1pemVkIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gYmUgZ2VuZXJhdGVkCisJICBpbnRlcm5hbGx5IGlmIG5vdCBwcmVzZW50LCBmaXhlcyBidWcgIzMzMjEyNAorCSogcmVzdWx0L0hUTUwvZG9jMi5odG0uc2F4IHJlc3VsdC9IVE1ML2RvYzMuaHRtLnNheCAKKwkgIHJlc3VsdC9IVE1ML3dpcmVkLmh0bWwuc2F4OiB0aGlzIGFmZmVjdHMgdGhlIFNBWCBldmVudCBzdHJlbSBmb3IKKwkgIGEgZmV3IHRlc3QgY2FzZXMKKworVHVlIE9jdCAxNyAxNzo1NjozMSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGluZyBIVE1MIGVudGl0aWVzIGluIGF0dHJpYnV0ZXMgcGFyc2luZyBidWcgIzM2MjU1MgorCSogcmVzdWx0L0hUTUwvZW50aXRpZXMyLmh0bWwqIHRlc3QvSFRNTC9lbnRpdGllczIuaHRtbDogYWRkZWQgdG8KKwkgIHRoZSByZWdyZXNzaW9uIHN1aXRlCisKK1R1ZSBPY3QgMTcgMDE6MjE6MzcgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBzdGFydGVkIHRvIHN3aXRjaCB4bWxsaW50IHRvIHVzZSB4bWxTYXZlRG9jIHRvIHRlc3QKKwkgICMzNDI1NTYKKwkqIHhtbHNhdmUuYzogZml4ZWQgIzM0MjU1NiBlYXN5IGFuZCBhIHdob2xlIHNldCBvZiBwcm9ibGVtcyB3aXRoCisJICBlbmNvZGluZ3MsIEJPTSBhbmQgeG1sU2F2ZURvYygpCisKK01vbiBPY3QgMTYgMTU6MTQ6NTMgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBmaXggIzM0ODI1MiBpZiB0aGUgZG9jdW1lbnQgY2xhaW5zIHRvIGJlIGluIGEKKwkgIGRpZmZlcmVudCBlbmNvZGluZyBpbiB0aGUgbWV0YSB0YWcgYW5kIGl0J3Mgb2J2aW91c2x5IHdyb25nLAorCSAgZG9uJ3Qgc2NyZXcgdXAgdGhlIGVuZCBvZiB0aGUgY29udGVudC4KKworTW9uIE9jdCAxNiAxMTozMjowOSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeCBhIGNodW5raW5nIGFuZCBzY3JpcHQgYnVnICMzNDc3MDgKKworTW9uIE9jdCAxNiAwOTo1MTowNSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IHJlbW92ZSBhIHdhcm5pbmcKKwkqIGVuY29kaW5nLmM6IGNoZWNrIHdpdGggdXBwZXJjYXNlIGZvciBBSVggaWNvbnYoKSBzaG91bGQgZml4ICMzNTI2NDQKKwkqIGRvYy9leGFtcGxlcy9NYWtlZmlsZS5hbTogcGFydGlhbGx5IGhhbmRsZSBvbmUgYnVnIHJlcG9ydAorCitTdW4gT2N0IDE1IDIyOjMxOjQyIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXggdGhlIHBhdGNoIGZvciB1bnJlcHJvZHVjdGFibGUgIzM0MzAwMCBidXQKKwkgIGFsc28gZml4IGEgbGluZS9jb2x1bW4ga2VlcGluZyBlcnJvcgorCSogcmVzdWx0L2Vycm9ycy9hdHRyMS54bWwuZXJyIHJlc3VsdC9lcnJvcnMvYXR0cjIueG1sLmVycgorCSAgcmVzdWx0L2Vycm9ycy9uYW1lLnhtbC5lcnIgcmVzdWx0L2Vycm9ycy9uYW1lMi54bWwuZXJyIAorCSAgcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMtZXJyMV8wXzAuZXJyIAorCSAgcmVzdWx0L3NjaGVtYXMvYnVnMzEyOTU3XzFfMC5lcnI6IGFmZmVjdGVkIGxpbmVzIGluIGVycm9yIG91dHB1dAorCSAgb2YgdGhlIHJlZ3Jlc3Npb24gdGVzdHMKKworU2F0IE9jdCAxNCAxMDo0Njo0NiBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeGluZyBidWcgIzM0NDM5MCB3aXRoIHhtbFJlY29uY2lsaWF0ZU5zCisKK1NhdCBPY3QgMTQgMDA6MzE6NDkgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhZGRlZCAtLWh0bWwgLS1tZW1vcnkgdG8gdGVzdCBodG1sUmVhZE1lbW9yeSB0byAKKwkgIHRlc3QgIzMyMTYzMgorCSogSFRNTHBhcnNlci5jOiBhZGRlZCB2YXJpb3VzIGluaXRpYWxpemF0aW9uIGNhbGxzIHdoaWNoIG1heSBoZWxwIAorCSAgIzMyMTYzMiBidXQgbm90IGNvbmNsdXNpdmUKKwkqIHRlc3RhcGkuYyB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBmaXhlZCBjb21waWxhdGlvbiB3aXRoCisJICAtLXdpdGgtbWluaW11bSAtLXdpdGgtc2F4MSBhbmQgLS13aXRoLW1pbmltdW0gLS13aXRoLXNjaGVtYXMKKwkgIGZpeGluZyAjMzI2NDQyCisKK0ZyaSBPY3QgMTMgMTg6MzA6NTUgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBmaXggYSBSZWxheC1ORyBidWcgcmVsYXRlZCB0byBlbGVtZW50IGNvbnRlbnQgcHJvY2Vzc2luZywKKwkgIGZpeGVzIGJ1ZyAjMzAyODM2CisJKiB0ZXN0L3JlbGF4bmcvMzAyODM2LnJuZyB0ZXN0L3JlbGF4bmcvMzAyODM2XzAueG1sCisJICByZXN1bHQvcmVsYXhuZy8zMDI4MzYqOiBhZGRlZCB0byByZWdyZXNzaW9uIHRlc3RzCisKK0ZyaSBPY3QgMTMgMTQ6NDI6NDQgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeCBhIHByb2JsZW0gaW4geG1sU3BsaXRRTmFtZSByZXN1bHRpbmcgaW4gYnVnICMzMzQ2NjkKKworRnJpIE9jdCAxMyAxMjoyNzoyMiBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgeG1sSU9QYXJzZURURCBoYW5kbGluZyBvZiBAaW5wdXQgaW4gZXJyb3IgY2FzZSwKKwkgIFNob3VsZCBmaXggIzMzNTA4NQorCSogdGVzdGFwaS5jOiByZXNldCB0aGUgaHR0cF9wcm94eSBlbnYgdmFyaWFibGUgdG8gbm90IHdhc3RlIHRpbWUKKwkgIG9uIHJlZ3Jlc3Npb24gdGVzdHMKKworVGh1IE9jdCAxMiAyMzowNzo0MyBDRVNUIDIwMDYgUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogeG1sSU8uYzogZml4IFdpbmRvd3MgY29tcGlsZSAtIG1pc3NpbmcgeG1sV3JhcE9wZW4uCisKK1RodSBPY3QgMTIgMTg6MjE6MTggQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGVkIHRoZSBoZXVyaXN0aWMgdXNlZCB3aGVuIHRyeWluZyB0byBkZXRlY3QgbWl4ZWQtY29udGVudAorCSAgZWxlbWVtdHMgaWYgdGhlIHBhcnNlciB3YW50cyB0byB0cmVhdCBpZ25vcmFibGUgd2hpdGVzcGFjZXMgCisJICBpbiBhIG5vbi1zdGFuZGFyZCB3YXksIHNob3VsZCBmaXggYnVnICMzMDAyNjMKKworVGh1IE9jdCAxMiAxNDo1MjozOCBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4IGEgZmlyc3QgYXJnIGVycm9yIGluIFNBWCBjYWxsYmFjayBwb2ludGVkIG91dCBieQorCSAgTWlrZSBIb21tZXksIGFuZCBhbm90aGVyIG9uZSBzdGlsbCBoYW5naW5nIGFyb3VuZC4gU2hvdWxkIGZpeCAjMzQyNzM3CisKK1dlZCBPY3QgMTEgMjM6MTE6NTggQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOiBmaXggY29tbWVudCBvbiB2ZXJzaW9ucworCSogeG1sbWVtb3J5LmM6IGRvIG5vdCBzcGVuZCB0b28gbXVjaCB0aW1lIGRpZ2dpbmcgaW4gZHVtcGVkIG1lbW9yeQorCitXZWQgT2N0IDExIDE4OjQwOjAwIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGVkIGEgd2VpcmQgZXJyb3Igd2hlcmUgdmFsaWRpdHkgY29udGV4dCB3aG91bGQgbm90CisJICBzaG93IHVwIGlmIHdhcm5pbmdzIHdlcmUgZGlzYWJsZWQgcG9pbnRlZCBvdXQgYnkgQm9iIFN0YXl0b24KKwkqIHhtbElPLmMgZG9jL2dlbmVyYXRvci5weTogY2xlYW51cCBhbmQgZml4IHRvIHJlZ2VuZXJhdGUgdGhlIGRvY3MKKwkqIGRvYy8vKiB0ZXN0YXBpLmM6IHJlYnVpbHQgdGhlIGRvY3MKKworV2VkIE9jdCAxMSAxNDozMjowMCBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwtMi4wLnBjLmluOiBhcHBsaWVkIHBhdGNoIGZyb20gTWlraGFpbCBaYWJhbHVldiB0byBzZXBhcmF0ZQorCSAgbGlicmFyeSBmbGFncyBmb3Igc2hhcmVkIGFuZCBzdGF0aWMgYnVpbGRzLCBmaXhlcyAjMzQ0NTk0LiBJZiB0aGlzCisJICBiaXRlcyB5b3UsIHVzZSB4bWwyLWNvbmZpZy4KKworV2VkIE9jdCAxMSAxMToyNzozNyBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vTWFrZWZpbGUuYW06IHJlbW92ZSB0aGUgYnVpbGQgcGF0aCByZWNvcmRlZCBpbiB0aGUgcHl0aG9uCisJICBzaGFyZWQgbW9kdWxlIGFzIFBldGVyIEJyZWl0ZW5sb2huZXIgcG9pbnRlZCBvdXQsIHNob3VsZCBmaXggIzM0NjAyMgorCitXZWQgT2N0IDExIDExOjE0OjUxIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNaWtoYWlsIFphYmFsdWV2IGZpeGluZyB0aGUgY29uZGl0aW9ucworCSAgb2YgdW5lc2NhcGluZyBmcm9tIFVSTCB0byBmaWxlcGF0aCwgc2hvdWxkIGZpeCAjMzQ0NTg4LgorCitXZWQgT2N0IDExIDEwOjI0OjU4IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiB4c3RjL01ha2VmaWxlLmFtOiBhcHBsaWVkIHBhdGNoIGZyb20gUGV0ZXIgQnJlaXRlbmxvaG5lcgorCSAgZm9yIHdnZXQgZGV0ZWN0aW9uIGFuZCBmaXggb2YgYSBQeXRob24gcGF0aCBwcm9ibGVtLCBzaG91bGQgZml4CisJICAjMzQwOTkzCisKK1R1ZSBPY3QgMTAgMjI6MDI6MjkgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvZW50aXRpZXMuaCBlbnRpdGllcy5jIFNBWDIuYyBwYXJzZXIuYzogdHJ5aW5nIHRvCisJICBmaXggZW50aXRpZXMgYmVoYXZpb3VyIHdoZW4gdXNpbmcgU0FYLCBoYWQgdG8gZXh0ZW5kIGVudGl0aWVzIAorCSAgY29udGVudCBhbmQgaGFjayBvbiB0aGUgZW50aXRpZXMgcHJvY2Vzc2luZyBjb2RlLCBidXQgdGhhdCBzaG91bGQKKwkgIGZpeCB0aGUgbG9uZyBzdGFuZGluZyBidWcgIzE1OTIxOQorCitUdWUgT2N0IDEwIDE0OjM2OjE4IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jIGluY2x1ZGUvbGlieG1sL3VyaS5oOiBhZGQgYSBuZXcgZnVuY3Rpb24geG1sUGF0aFRvVXJpKCkKKwkgIHRvIHByb3ZpZGUgYSBjbGVhbiBjb252ZXJzaW9uIHdoZW4gc2V0dGluZyB1cCBhIGJhc2UKKwkqIFNBWDIuYyB0cmVlLmM6IHVzZSBzYWlkIGZ1bmN0aW9uIHdoZW4gc2V0dGluZyB1cCBkb2MtPlVSTAorCSAgb3IgdXNpbmcgdGhlIHhtbFNldEJhc2UgZnVuY3Rpb24uIFNob3VsZCBmaXggIzM0NjI2MQorCitUdWUgT2N0IDEwIDExOjA1OjU5IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGFwcGxpZWQgYSBwb3J0YWJpbGl0eSBwYXRjaCBmcm9tIEVtZWx5YW5vdiBBbGV4ZXkKKworVHVlIE9jdCAxMCAxMDo1MjowMSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYXBwbGllZCBhbmQgc2xpZ2h0bHkgbW9kaWZpZWQgYSBwYXRjaCBmcm9tIE1pY2hhZWwgRGF5IHRvIAorCSAga2VlcCBfcHJpdmF0ZSBpbiB0aGUgcGFyc2VyIGNvbnRleHQgd2hlbiBwYXJzaW5nIGV4dGVybmFsIGVudGl0aWVzCisKK1R1ZSBPY3QgMTAgMTA6MzM6NDMgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5weSBweXRob24vdHlwZXMuYzogYXBwbGllZCBwYXRjaCBmcm9tIFJvc3MgUmVlZHN0cm9tLAorCSAgQnJpYW4gV2VzdCBhbmQgU3RlZmFuIEFuY2EgdG8gYWRkIFhQb2ludGVyIHN1cG9ydCB0byB0aGUgUHl0aG9uIGJpbmRpbmdzCisKK0ZyaSBTZXAgMjkgMTE6MTM6NTkgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2F2ZS5jOiBmaXhlZCBhIGNvbW1lbnQKKwkqIHhpbmNsdWRlLmMgaW5jbHVkZS9saWJ4bWwveGluY2x1ZGUuaDogYXBwbGllZCBhIHBhdGNoIGZyb20gTWljaGFlbCBEYXkKKwkgIHRvIGFkZCBhIG5ldyBmdW5jdGlvbiBwcm92aWRpbmcgdGhlIF9wcml2YXRlIGZpZWxkIGZvciB0aGUgZ2VuZXJhdGVkCisJICBwYXJzZXIgY29udGV4dHMgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhKCkKKworVGh1IFNlcCAyMSAxMDozNjoxMSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBhcHBsaWVkIHBhdGNoIGZyb20gTWljaGFlbCBEYXkgZG9pbmcgc29tZSByZWZhY3RvcmluZworCSAgZm9yIHRoZSBjYXRhbG9nIGVudGl0eSBsb2FkZXJzLgorCitUaHUgU2VwIDIxIDA4OjUzOjA2IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9IVE1McGFyc2VyLmg6IGV4cG9ydHMgaHRtbE5ld1BhcnNlckN0eHQoKQorCSAgYXMgTWljaGFlbCBEYXkgcG9pbnRlZCBvdXQgdGhpcyBpcyBuZWVkZWQgdG8gdXNlIGh0bWxDdHh0UmVhZCooKQorCitUdWUgU2VwIDE5IDE0OjQyOjU5IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gQmVuIERhcm5lbGwgb24gIzMyMTU0NSwgSSBjb3VsZCBub3QKKwkgIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSBidXQgMS8gdGhpcyBpcyBzYWZlIDIvIGl0J3MgYmV0dGVyIHRvIGJlIHNhZmUuCisKK1NhdCBTZXAgMTYgMTY6MDI6MjMgQ0VTVCAyMDA2IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIHRyZWUuYzogeG1sVGV4dENvbmNhdCB3b3JrcyB3aXRoIGNvbW1lbnRzIGFuZCBQSSBub2RlcyAoYnVnICMzNTU5NjIpLgorCSogcGFyc2VyLmM6IGZpeCByZXN1bHRpbmcgdHJlZSBjb3JydXB0aW9uIHdoZW4gdXNpbmcgWE1MIG5hbWVzcGFjZSAKKwkgIHdpdGggZXhpc3RpbmcgZG9jIGluIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIuCisKK0ZyaSBTZXAgIDEgMTE6NTI6NTUgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYzogYW5vdGhlciBwYXRjaCBmcm9tIEVtZWx5YW5vdiBBbGV4ZXkgdG8gY2xlYW4gdXAgYSBmZXcgdGhpbmdzCisJICBpbiB0aGUgcHJldmlvdXMgcGF0Y2guCisKK1dlZCBBdWcgMzAgMTU6MTA6MDkgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYzogYXBwbGllZCBwYXRjaCBmcm9tIFJvbGFuZCBTY2h3aW5nZWwgdG8gZml4IHRoZSBwcm9ibGVtCisJICB3aXRoIGZpbGUgbmFtZXMgaW4gVVRGLTggb24gV2luZG93cywgYW5kIGNvbXBhdCBvbiBvbGRlciB3aW45eCAKKwkgIHZlcnNpb25zLgorCitUdWUgQXVnIDIyIDE2OjUxOjIyIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGVkIGEgYnVnICMyMDMxMjUgaW4gUmVkIGhhdCBidWd6aWxsYSwgY3Jhc2hpbmcgUEhQNAorCSAgb24gdmFsaWRhdGlvbiBlcnJvcnMsIHRoZSBoZXVyaXN0aWMgdG8gZ3Vlc3MgaXMgYSB2Y3R4dCB1c2VyCisJICBwb2ludGVyIGlzIHRoZSBwYXJzaW5nIGNvbnRleHQgd2FzIGluc3VmZmljaWVudC4KKworTW9uIEF1ZyAyMSAxMDo0MDoxMCBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MveG1sY2F0YWxvZy4xIGRvYy94bWxjYXRhbG9nX21hbi54bWwgZG9jL3htbGxpbnQuMSBkb2MveG1sbGludC54bWw6CisJICBhcHBsaWVkIHBhdGNoIHRvIG1hbiBwYWdlcyBmcm9tIERhbmllbCBMZWlkZXJ0IGFuZCByZWdlbmVyYXRlZAorCitUaHUgQXVnIDE3IDAwOjQ4OjMxIENFU1QgMjAwNiBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiB4bWx3cml0ZXIuYzogQWRkIGEgZG9jdW1lbnQgdG8gdGhlIHhtbHdyaXRlciBzdHJ1Y3R1cmUgYW5kIAorCSAgcGFzcyBkb2N1bWVudCB3aGVuIHdyaXRpbmcgYXR0cmlidXRlIGNvbnRlbnQgZm9yIGVuY29kaW5nIHN1cHBvcnQuCisKK1dlZCBBdWcgMTYgMDE6MTU6MTIgQ0VTVCAyMDA2IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIEhUTUx0cmVlLmMgeG1sc2F2ZS5jOiBBZGQgbGluZWZlZWRzIHRvIGVycm9yIG1lc3NhZ2VzIGFsbG93aW5nIAorCSAgZm9yIGNvbnNpc3RhbnQgaGFuZGxpbmcuCisKK1R1ZSBBdWcgMTUgMTU6MDI6MTggQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHBhdGguYzogQXBwbGllZCB0aGUgcHJvcG9zZWQgZml4IGZvciB0aGUgZG9jdW1lbnRhdGlvbgorCSAgb2YgeG1sWFBhdGhDYXN0VG9TdHJpbmcoKTsgc2VlIGJ1ZyAjMzQ2MjAyLgorCitUdWUgQXVnIDE1IDE0OjQ5OjE4IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogV2hpbGUgaW52ZXN0aWdhdGluZyBidWcgIzM1MDI0NywgSSBub3RpY2VkCisJICB0aGF0IHhtbFNjaGVtYUlEQ01hdGNoZXIgc3RydWN0cyBhcmUgbWFzc2l2ZWx5IHJlY3JlYXRlZAorCSAgYWx0aG91Z2ggb25seSBhIG1heGltdW0gb2YgMyBzdHJ1Y3RzIGlzIHVzZWQgYXQgdGhlIHNhbWUKKwkgIHRpbWU7IGFkZGVkIGEgY2FjaGUgZm9yIHRob3NlIHN0cnVjdHVyZXMgdG8gdGhlCisJICB2YWxpZGF0aW9uIGNvbnRleHQuCisKK1NhdCBBdWcgMTIgMTY6MTI6NTMgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiBhcHBsaWVkIHBhdGNoIGZyb20gTWFydG9uIElsbGVzIHRvIGZpeCBhbiBhbGxvY2F0aW9uCisJICBidWcgaW4geG1sU2NoZW1hWFBhdGhFdmFsdWF0ZSBzaG91bGQgY2xvc2UgIzM1MTAzMgorCitNb24gQXVnICA3IDEzOjA4OjQ2IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogYXBwbGllZCBwYXRjaCBmcm9tIEJlcnRyYW5kIEZyaXRzY2ggdG8gZml4IGEgYnVnIGluCisJICB4bWxTY2hlbWFDbGVhclZhbGlkQ3R4dAorCitGcmkgQXVnICA0IDE0OjUwOjQxIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHk6IGZpeGVkIHRoZSBjb252ZXJzaW9uIG9mIGxvbmcgcGFyYW1ldGVycworCitUaHUgSnVsIDEzIDE1OjAzOjExIENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNhdmUuYzogUmVtb3ZlZCB0aGUgYXV0b21hdGljIGdlbmVyYXRpb24gb2YgQ0RBVEEgc2VjdGlvbnMKKwkgIGZvciB0aGUgY29udGVudCBvZiB0aGUgInNjcmlwdCIgYW5kICJzdHlsZSIgZWxlbWVudHMgd2hlbgorCSAgc2VyaWFsaXppbmcgWEhUTUwuIFRoZSBpc3N1ZSB3YXMgcmVwb3J0ZWQgYnkgVmluY2VudCBMZWZldnJlLAorCSAgYnVnICMzNDUxNDcuCisJKiByZXN1bHQveGh0bWwxIHJlc3VsdC9ub2VudC94aHRtbDE6IEFkanVzdGVkIHJlZ3Jlc3Npb24gdGVzdAorCSAgcmVzdWx0cyBkdWUgdG8gdGhlIHNlcmlhbGl6YXRpb24gY2hhbmdlIGRlc2NyaWJlZCBhYm92ZS4KKworVGh1IEp1bCAxMyAwODozMjoyMSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gcGFyc2VyLmMgeG1sbGludC5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oCisJICBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46IGFwcGxpZWQgcGF0Y2ggZnJvbSBBbmRyZXcgVy4gTm9zZW5rbworCSAgdG8gZXhwb3NlIGlmIHpsaWIgc3VwcG9ydCB3YXMgY29tcGlsZWQgaW4sIGluIHRoZSBoZWFkZXIsIGluIHRoZQorCSAgZmVhdHVyZSBBUEkgYW5kIGluIHRoZSB4bWxsaW50IC0tdmVyc2lvbiBvdXRwdXQuCisKK1RodSBKdWwgMTMgMDg6MjQ6MTQgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYMi5jOiByZWZhY3RvciB0byB1c2Ugbm9ybWFsIHdhcm5pbmdzIGZvciBlbnRpdGllcyBwcm9ibGVtCisJICBhbmQgbm90IHN0cmFpZ2h0IFNBWCBjYWxsYmFja3MuCisKK1dlZCBKdWwgMTIgMTc6MTM6MDMgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBGaXhlZCBidWcgIzM0NzMxNiwgcmVwb3J0ZWQgYnkgRGF2aWQgQmVsaXVzOgorCSAgVGhlIHNpbXBsZSB0eXBlLCB3aGljaCB3YXMgdGhlIGNvbnRlbnQgdHlwZSBkZWZpbml0aW9uCisJICBvZiBhIGNvbXBsZXggdHlwZSwgd2hpY2ggaW4gdHVybiB3YXMgdGhlIGJhc2UgdHlwZSBvZiBhCisJICBleHRlbmRpbmcgY29tcGxleCB0eXBlLCB3YXMgbWlzc2VkIHRvIGJlIHNldCBvbiB0aGlzCisJICBleHRlbmRpbmcgY29tcGxleCB0eXBlIGluIHRoZSBkZXJpdmF0aW9uIG1hY2hpbmVyeS4KKworTW9uIEp1bCAgMyAxMzozNjo0MyBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBDaGFuZ2VkIHhtbFhQYXRoQ29sbGVjdEFuZFRlc3QoKSB0byB1c2UKKwkgIHhtbFhQYXRoTm9kZVNldEFkZE5zKCkgd2hlbiBhZGRpbmcgYSBucy1ub2RlIGluIGNhc2Ugb2YKKwkgIE5PREVfVEVTVF9UWVBFICh0aGUgbnMtbm9kZSB3YXMgcHJldmlvdXNseSBhZGRlZCBwbGFpbmx5CisJICB0byB0aGUgbGlzdCkuIFNpbmNlIGZvciBOT0RFX1RFU1RfQUxMIGFuZCBOT0RFX1RFU1RfTkFNRQorCSAgdGhpcyBzcGVjaWFsaXplZCBucy1hZGRpdGlvbiBmdW5jdGlvbiB3YXMgYWxyZWFkeSB1c2VkLAorCSAgSSBhc3N1bWUgaXQgd2FzIG1pc3NlZCB0byBiZSB1c2VkIHdpdGggTk9ERV9URVNUX1RZUEUuCisKK01vbiBKdWwgIDMgMTA6NTc6MzMgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBhcHBsaWVkIGNvbnN0J2lmaWNhdGlvbiBvZiBzdHJpbmdzIHBhdGNoIGZyb20KKwkgIE1hdHRoaWFzIENsYXNlbgorCitUaHUgSnVuIDI5IDEzOjUxOjEyIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRocmVhZHMuYzogcGF0Y2ggZnJvbSBBbmRyZXcgVy4gTm9zZW5rbywgeG1sRnJlZVJNdXRleCBmb3Jnb3QgdG8KKwkgIGRlc3Ryb3kgdGhlIGNvbmRpdGlvbiBhc3NvY2lhdGVkIHRvIHRoZSBtdXRleC4KKworVGh1IEp1biAyOSAxMjo0ODowMCBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBGaXhlZCBhIGRvdWJsZS1mcmVlIGluIHhtbFhQYXRoQ29tcE9wRXZhbFRvQm9vbGVhbigpLAorCSAgcmV2ZWFsZWQgYnkgYSBMaWJ4c2x0IHJlZ3Jlc3Npb24gdGVzdC4KKworVGh1IEp1biAyOSAxMjoyODowNyBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBFbmhhbmNlZCB4bWxYUGF0aENvbXBPcEV2YWxUb0Jvb2xlYW4oKSB0byBiZSBhbHNvCisJICB1c2FibGUgb3V0c2lkZSBwcmVkaWNhdGUgZXZhbHVhdGlvbjsgdGhlIGludGVudGlvbiBpcyB0bworCSAgdXNlIGl0IHZpYSB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbigpIGZvciBYU0xUIHRlc3RzLAorCSAgbGlrZSBpbiA8eHNsOmlmIHRlc3Q9Ii9mb28iPi4KKwkgIAorV2VkIEp1biAyOCAxOToxMToxNiBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBGaXggYSBtZW1vcnkgbGVhayB3aGljaCBvY2N1cnJlZCB3aGVuIHVzaW5nCisJICB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbigpLgorCitNb24gSnVuIDI2IDE3OjI0OjI4IFVUQyAyMDA2IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBweXRob24vbGlieG1sLmMsIHB5dGhvbi9saWJ4bWwucHksIHB5dGhvbi90ZXN0cy9jb21wYXJlTm9kZXMucHksCisJICBweXRob24vdGVzdHMvTWFrZWZpbGUuYW06CisJICBBZGRlZCBjb2RlIHN1Ym1pdHRlZCBieSBBbmRyZWFzIFBha3VsYXQgdG8gcHJvdmlkZSBub2RlCisJICBlcXVhbGl0eSwgaW5lcXVhbGl0eSBhbmQgaGFzaCBmdW5jdGlvbnMsIHBsdXMgYSBzaW5nbGUKKwkgIHRlc3QgcHJvZ3JhbSB0byBjaGVjayB0aGUgZnVuY3Rpb25zIChidWdzIDM0NTc3OSArIDM0NTk2MSkuCisKK01vbiBKdW4gMjYgMTg6Mzg6NTEgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHBhdGguYzogQWRkZWQgeG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW4oKSB0byB0aGUgQVBJIGFuZAorCSAgYWRqdXN0ZWQvYWRkZWQgeG1sWFBhdGhSdW5FdmFsKCksIHhtbFhQYXRoUnVuU3RyZWFtRXZhbCgpLAorCSAgeG1sWFBhdGhDb21wT3BFdmFsVG9Cb29sZWFuKCksIHhtbFhQYXRoTm9kZUNvbGxlY3RBbmRUZXN0KCkKKwkgIHRvIGJlIGF3YXJlIG9mIGEgYm9vbGVhbiByZXN1bHQgcmVxdWVzdC4gVGhlIG5ldyBmdW5jdGlvbgorCSAgaXMgbm93IHVzZWQgdG8gZXZhbHVhdGUgcHJlZGljYXRlcy4KKworTW9uIEp1biAyNiAxNjoyMjo1MCBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBGaXhlZCBhbiBidWcgaW4geG1sWFBhdGhDb21wRXhwckFkZCgpOiB0aGUgbmV3bHkKKwkgIGludHJvZHVjZWQgZmllbGQgQHJld3JpdGVUeXBlIG9uIHhtbFhQYXRoU3RlcE9wIHdhcyBub3QKKwkgIGluaXRpYWxpemVkIHRvIHplcm8gaGVyZTsgdGhpcyBjb3VsZCBsZWFkIHRvIHRoZSBhY3RpdmF0aW9uCisJICBvZiB0aGUgYXhpcyByZXdyaXRlIGNvZGUgaW4geG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3QoKSB3aGVuCisJICBAcmV3cml0ZVR5cGUgaXMgcmFuZG9tbHkgc2V0IHRvIHRoZSB2YWx1ZSAxLiBBIHRlc3QKKwkgIChoYXJkY29kaW5nIHRoZSBpbnRpYWwgdmFsdWUgdG8gMSkgcmV2ZWFsZWQgdGhhdCB0aGUKKwkgIHJlc3VsdGluZyBpbmNvcnJlY3QgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gdGhlIGJlaGF2aW91cgorCSAgYXMgZGVzY3JpYmVkIGJ5IEFybm9sZCBIZW5kcmlrcyBvbiB0aGUgbWFpbGluZyBsaXN0OyBzbyBJCisJICBob3BlIHRoYXQgd2lsbCBmaXggdGhlIGlzc3VlLgkgIAorCitGcmkgSnVuIDIzIDE4OjI2OjA4IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhwYXRoLmM6IEZpeGVkIGFuIGVycm9yIGluIHhtbFhQYXRoRXZhbEV4cHIoKSwgd2hpY2gKKwkgIHdhcyBpbnRyb2R1Y2VkIHdpdGggdGhlIGFkZGl0aW9uIG9mIHRoZSBkLW8tcyByZXdyaXRlCisJICBhbmQgbWFkZSB4cGF0aC5jIHVuYWJsZSB0byBjb21waWxlIGlmIFhQQVRIX1NUUkVBTUlORworCSAgd2FzIG5vdCBkZWZpbmVkIChyZXBvcnRlZCBieSBLdXByaXlhbm92IEFuYXRvbGlqIC0KKwkgICMzNDU3NTIpLiBGaXhlZCB0aGUgY2hlY2sgZm9yIGQtby1zIHJld3JpdGUKKwkgIHRvIHdvcmsgb24gdGhlIGNvcnJlY3QgWFBhdGggc3RyaW5nLCB3aGljaCBpcyBjdHh0LT5iYXNlCisJICBhbmQgbm90IGNvbXAtPmV4cHIgaW4gdGhpcyBjYXNlLgorCitNb24gSnVuIDE5IDEyOjIzOjQxIENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhwYXRoLmM6IEFkZGVkIG9wdGltaXphdGlvbiBmb3IgcG9zaXRpb25hbCBwcmVkaWNhdGVzCisJICAob25seSBzaG9ydC1oYW5kIGZvcm0gIltuXSIpLCB3aGljaCBoYXZlIGEgcHJlY2VkaW5nCisJICBwcmVkaWNhdGU6ICIvZm9vW2Rlc2NlbmRhbnQ6OmJhcl1bM10iLgorCitTdW4gSnVuIDE4IDIwOjU5OjAyIEVEVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHRyeSB0byBmaXggdGhlIGNyYXNoIHJhaXNlZCBieSB0aGUgcGFyc2VyIGluCisJICByZWNvdmVyIG1vZGUgYXMgcG9pbnRlZCBieSBSeWFuIFBoaWxsaXBzCisKK1N1biBKdW4gMTggMTg6NDQ6NTYgRURUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vdHlwZXMuYzogcGF0Y2ggZnJvbSBOaWMgRmVycmllciB0byBwcm92aWRlIGEgYmV0dGVyIHR5cGUKKwkgIG1hcHBpbmcgZnJvbSBYUGF0aCB0byBweXRob24KKworU3VuIEp1biAxOCAxODozNTo1MCBFRFQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnRlc3QuYzogYXBwbGllZCBwYXRjaCBmcm9tIEJveiBmb3IgVk1TIGFuZCByZXBvcnRpbmcKKwkgIFNjaGVtYXMgZXJyb3JzLgorCitTdW4gSnVuIDE4IDE4OjIyOjI1IEVEVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdGFwaS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gRmVsaXBlIENvbnRyZXJhcyB3aGVuIGNvbXBpbGluZworCSAgd2l0aCAtLXdpdGgtbWluaW11bQorCitGcmkgSnVuIDE2IDIxOjM3OjQ0IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHRyZWUuYyBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IEZpeGVkIGEgYnVnIGluCisJICB4bWxET01XcmFwQWRvcHROb2RlKCk7IHRoZSB0cmVlIHRyYXZlcnNhbCBzdG9wcGVkIGlmIHRoZQorCSAgdmVyeSBmaXJzdCBnaXZlbiBub2RlIGhhZCBhbiBhdHRyaWJ1dGUgbm9kZSA6LSggVGhpcyB3YXMgZHVlCisJICB0byBhIG1pc3NlZCBjaGVjayBpbiB0aGUgdHJhdmVyc2FsIG1lY2hhbmlzbS4KKwkgIEV4cGFuZGVkIHRoZSB4bWxET01XcmFwQ3R4dDogaXQgbm93IGhvbGRzIHRoZSBuYW1lc3BhY2UgbWFwCisJICB1c2VkIGluIHhtbERPTVdyYXBBZG9wdE5vZGUoKSBhbmQgeG1sRE9NV3JhcENsb25lTm9kZSgpIGZvcgorCSAgcmV1c2FsOyBzbyB0aGUgbWFwLWl0ZW1zIGRvbid0IG5lZWQgdG8gYmUgY3JlYXRlZCBmb3IgZXZlcnkKKwkgIGNsb25pbmcvYWRvcHRpb24uIEFkZGVkIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gaXQgZm9yCisJICByZXRyaWV2YWwgb2YgeG1sTnNQdHIgdG8gYmUgc2V0IG9uIG5vZGUtPm5zOyB0aGlzIGlzIG5lZWRlZAorCSAgZm9yIG15IGN1c3RvbSBoYW5kbGluZyBvZiBucy1yZWZlcmVuY2VzIGluIG15IERPTSB3cmFwcGVyLgorCSAgU3Vic3RpdHV0ZWQgY29kZSB3aGljaCBjcmVhdGVkIHRoZSBYTUwgbmFtZXNwYWNlIGRlY2wgb24KKwkgIHRoZSBkb2MgZm9yIGEgY2FsbCB0byB4bWxUcmVlRW5zdXJlWE1MRGVjbCgpLiBSZW1vdmVkCisJICB0aG9zZSBuYXN0bHkgIndhcm5pZ25zIiBmcm9tIHRoZSBkb2NzIG9mIHRoZSBjbG9uZS9hZG9wdAorCSAgZnVuY3Rpb25zOyB0aGV5IHdvcmsgZmluZSBvbiBteSBzaWRlLgorCSAgCitNb24gSnVuIDEyIDEzOjIzOjExIENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHJlc3VsdC9wYXR0ZXJuL25hbWVzcGFjZXM6IEFkanVzdGVkIHRoZSByZXN1bHQgb2YgYQorCSAgcmVncmVzc2lvbiB0ZXN0LCBzaW5jZSB0aGUgZml4IG9mIHhtbEdldE5vZGVQYXRoKCkgcmV2ZWFsZWQgYQorCSAgYnVnIGluIHRoaXMgdGVzdCByZXN1bHQuCisKK01vbiBKdW4gMTIgMTM6MDY6MDMgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdHJlZS5jOiBHb3QgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZyBpbiB4bWxHZXROb2RlUGF0aCgpLgorCitNb24gSnVuIDEyIDEyOjU0OjI1IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHRyZWUuYzogRml4ZWQgeG1sR2V0Tm9kZVBhdGgoKSB0byBnZW5lcmF0ZSB0aGUgbm9kZSB0ZXN0ICIqIgorCSAgZm9yIGVsZW1lbnRzIGluIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSwgcmF0aGVyIHRoYW4gZ2VuZXJhdGluZworCSAgYW4gdW5wcmVmaXhlZCBuYW1lZCBub2RlIHRlc3QgYW5kIGxvb3NpbmcgdGhlIG5hbWVzcGFjZQorCSAgaW5mb3JtYXRpb24uCisKK0ZyaSBKdW4gIDkgMjE6NDU6MDIgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IENsYXJpZmllZCBpbiB0aGUgZG9jcyB0aGF0IHRoZSB0cmVlCisJICBtdXN0IG5vdCAgYmUgdHJpZWQgdG8gYmUgbW9kaWZpZWQgaWYgdXNpbmcgdGhlIHBhcnNlciBmbGFnCisJICBYTUxfUEFSU0VfQ09NUEFDVCBhcyBzdWdnZXN0ZWQgYnkgU3RlZmFuIEJlaG5lbAorCSAgKCMzNDQzOTApLgorCitUdWUgSnVuICA2IDE3OjUwOjQzIENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbmkgTkVXUyBkb2MvLyogbGlieG1sLnNwZWMuaW4gOiBwcmVwYXJpbmcgcmVsZWFzZSBvZiAyLjYuMjYKKworVHVlIEp1biAgNiAxNzoyNToyMyBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBGaXhlZCBzZWxmLWludmVudGVkIGEgc2VnZmF1bHQgaW4geG1sWFBhdGhDdHh0Q29tcGlsZSgpLAorCSAgd2hlbiB0aGUgZXhwcmVzc2lvbiB3YXMgbm90IHZhbGlkIGFuZCBAY29tcCB3YXMgTlVMTCBhbmQgSQorCSAgdHJpZWQgdG8gZG8gdGhlIGQtby1zIHJld3JpdGUuCisKK1R1ZSBKdW4gIDYgMTU6MTk6NTcgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluaSBORVdTIGRvYy8vKiBsaWJ4bWwuc3BlYy5pbiA6IHByZXBhcmluZyByZWxlYXNlIG9mIDIuNi4yNQorCitUdWUgSnVuICA2IDExOjI4OjE1IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhwYXRoLmM6IEVuYWJsZWQgdGhlIGNvbXBvdW5kIHRyYXZlcnNhbCBhZ2FpbjsgSSBhZGRlZCBhCisJICBjaGVjayB0byB1c2UgdGhpcyBvbmx5IGlmIHRoZSBoYXZlIGFuIGV4cHJlc3Npb24gc3RhcnRpbmcKKwkgIHdpdGggdGhlIGRvY3VtZW50IG5vZGU7IHNvIGluIHRoZSBjYXNlIG9mICIvL2ZvbyIsIHdlCisJICBhbHJlYWR5IGtub3cgYXQgY29tcGlsYXRpb24tdGltZSwgdGhhdCB0aGVyZSB3aWxsIGJlIG9ubHkKKwkgIDEgaW5pdGlhbCBjb250ZXh0IG5vZGUuIEFkZGVkIHRoZSByZXdyaXRlIGFsc28gdG8KKwkgIHhtbFhQYXRoRXZhbEV4cHIoKS4KKworVHVlIEp1biAgNiAxMDoyMzoxMCBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4aW5jbHVkZS5jOiBmaXggYnVnICMzNDM5NjgsIGluY2x1ZGU9J3RleHQnIGNhbid0IGxlYWQgdG8gYSAKKwkgIHJlY3Vyc2lvbi4KKworRnJpIEp1biAgMiAyMjo0NzowOCBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBEaXNhYmxlZCB0aGUgY29tcG91bmQgdHJhdmVyc2FsIGZvciB0aGUgcmVsZWFzZTsKKwkgIEkgbmVlZCBmaXJzdCB0byBhc3N1cmUgdGhhdCB0aGlzIGlzIGRvbmUgb25seSBpZiB3ZSBoYXZlCisJICAxIGluaXRpYWwgbm9kZS4KKworV2VkIE1heSAzMSAxMzo1Mzo0MSBQU1QgMjAwNiBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorICAgICAgCisJKiB4cGF0aC5jOiBmaXhlZCBtZW1vcnkgbGVhayBpbiB4cGF0aCBlcnJvciByZXBvcnRpbmcKKworV2VkIE1heSAzMSAxNTozMDoxNiBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuaCB0cmlvZGVmLmg6IGFwcGxpZWQgcGF0Y2ggZnJvbSBPbGxpIFNhdmlhIGZvciBMeW54T1MKKworV2VkIE1heSAzMSAxNDozMzowMCBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoLmggcnVuc3VpdGUuYzoKKwkgIENoYW5nZWQgdGhlIG5hbWUgb2YgdGhlIHJlY2VudGx5IGFkZGVkIHB1YmxpYyBmdW5jdGlvbgorCSAgeG1sWFBhdGhDb250ZXh0U2V0T2JqZWN0Q2FjaGUoKSB0bworCSAgeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUoKTsgc28gYSBtb3JlIGdlbmVyaWMgb25lLCBpbgorCSAgY2FzZSB3ZSBkZWNpZGUgdG8gY2FjaGUgbW9yZSB0aGluZ3MgdGhhbiBvbmx5IFhQYXRoCisJICBvYmplY3RzLgorCitUdWUgTWF5IDMwIDIxOjM2OjE2IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhwYXRoLmM6IE9wdGltaXplZCB4bWxYUGF0aE5vZGVDb2xsZWN0QW5kVGVzdCgpIGFuZAorCSAgeG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3ROdGgoKSB0byBldmFsdWF0ZSBhIGNvbXBvdW5kCisJICB0cmF2ZXJzYWwgb2YgMiBheGVzIHdoZW4gd2UgaGF2ZSBhICIvL2ZvbyIgZXhwcmVzc2lvbi4KKwkgIFRoaXMgaXMgZG9uZSB3aXRoIGEgcmV3cml0ZSBvZiB0aGUgWFBhdGggQVNUIGluCisJICB4bWxYUGF0aFJld3JpdGVET1NFeHByZXNzaW9uKCk7IEkgYWRkZWQgYW4gYWRkaXRpb25hbCBmaWVsZAorCSAgdG8geG1sWFBhdGhTdGVwT3AgZm9yIHRoaXMgKGJ1dCB0aGUgZmllbGQncyBuYW1lIHNob3VsZCBiZQorCSAgY2hhbmdlZCkuIFRoZSBtZWNoYW5pc206IHRoZSBlbWJyYWNpbmcgZGVzY2VuZGFudC1vci1zZWxmCisJICBheGlzIHRyYXZlcnNhbCAoYWxzbyBvcHRpbWl6ZWQgdG8gcmV0dXJuIG9ubHkgbm9kZXMgd2hpY2gKKwkgIGNhbiBob2xkIGVsZW1lbnRzKSwgd2lsbCBwcm9kdWNlIGNvbnRleHQgbm9kZXMgZm9yIHRoZQorCSAgaW5uZXIgdHJhdmVyc2FsIG9mIHRoZSBjaGlsZCBheGlzLiBUaGlzIHdheSB3ZSBhdm9pZCBhIGZ1bGwKKwkgIG5vZGUtY29sbGVjdGluZyB0cmF2ZXJzYWwgb2YgdGhlIGRlc2NlbmRhbnQtb3Itc2VsZiBheGlzLgorCSAgU29tZSB0ZXN0cyBpbmRpY2F0ZSB0aGF0IHRoaXMgY2FuIHJlZHVjZSBleGVjdXRpb24gdGltZSBvZgorCSAgIi8vZm9vIiB0byA1MCUuIFRvZ2V0aGVyIHdpdGggdGhlIFhQYXRoIG9iamVjdCBjYWNoZSB0aGlzCisJICBhbGwgc2lnbmlmaWNhbnRseSBzcGVlZHMgdXAgbGlieHNsdC4KKworVHVlIE1heSAzMCAxMTozODo0NyBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEEgd2FybmluZyB3aWxsIG5vdyBiZSByZXBvcnRlZCBpbiB0aGUgdmFsdWUgb2YKKwkgIHRoZSBYU0QgYXR0cmlidXRlICdzY2hlbWFMb2NhdGlvbicgZG9lcyBub3QgY29uc2lzdCBvZiB0dXBsZXMKKwkgIChuYW1lc3BhY2UtbmFtZSwgZG9jdW1lbnQtVVJJKS4gQSB3YXJuaW5nIHdpbGwgYmUgcmVwb3J0ZWQKKwkgIGlmIGEgc2NoZW1hIGRvY3VtZW50IGNvdWxkIG5vdCBiZSBmb3VuZCBhdCB0aGUgc3BlY2lmaWVkCisJICBsb2NhdGlvbiAodmlhICdzY2hlbWFMb2NhdGlvbicgb3IKKwkgICdub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uJykuCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBBZGRlZCBYTUxfU0NIRU1BVl9NSVNDIHRvCisJICB4bWxQYXJzZXJFcnJvcnMuCisKK1R1ZSBNYXkgMzAgMTE6MjE6MzQgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHBhdGguYzogRW5oYW5jZWQgeG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3QoKSB0byBhdm9pZAorCSAgcmVjcmVhdGlvbiAoaWYgcG9zc2libGUpIG9mIHRoZSBub2RlLXNldCB3aGljaCBpcyB1c2VkIHRvCisJICBjb2xsZWN0IHRoZSBub2RlcyBpbiB0aGUgY3VycmVudCBheGlzIGZvciB0aGUgY3VycmVjdCBjb250ZXh0CisJICBub2RlLiBFc3BlY2lhbGx5IGZvciAiLy9mb28iIHRoaXMgd2lsbCBkZWNyZWFzZSBkcmFtYXRpY2FsbHkKKwkgIHRoZSBudW1iZXIgb2YgY3JlYXRlZCBub2RlLXNldHMsIHNpbmNlIGZvciBlYWNoIG5vZGUgaW4gdGhlCisJICByZXN1bHQgbm9kZS1zZXQgb2YgdGhlIGV2YWx1YXRpb24gb2YgZGVzY2VuZGFudC1vci1zZWxmOjpub2RlKCkKKwkgIGEgbmV3IHRlbXBvcmFyeSBub2RlLXNldCB3YXMgY3JlYXRlZC4gQWRkZWQgbm9kZSBpdGVyYXRvcgorCSAgeG1sWFBhdGhOZXh0Q2hpbGRFbGVtZW50KCkgYXMgYSB0aW55IG9wdGltaXphdGlvbiBmb3IKKwkgIGNoaWxkOjpmb28uCisKK01vbiBNYXkgMjkgMTg6MDY6MTcgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHBhdGguYyBpbmNsdWRlL2xpYnhtbC94cGF0aC5oOiBBZGRlZCBhbiBYUGF0aCBvYmplY3QgY2FjaGUuCisJICBJdCBzaXRzIG9uIGFuIHhtbFhQYXRoQ29udGV4dCBhbmQgbmVlZCB0byBiZSBleHBsaWNpdGVseQorCSAgYWN0aXZhdGVkIChvciBkZWFjdGl2YXRlZCBhZ2Fpbikgd2l0aAorCSAgeG1sWFBhdGhDb250ZXh0U2V0T2JqZWN0Q2FjaGUoKS4gVGhlIGNhY2hlIGNvbnNpc3RzIG9mIDUKKwkgIGxpc3RzIGZvciBub2RlLXNldCwgc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIG1pc2MgWFBhdGgKKwkgIG9iamVjdHMuIEludGVybmFsbHkgdGhlIHhwYXRoLmMgbW9kdWxlIHdpbGwgdXNlIG9iamVjdC0KKwkgIGRlcG9zaXRpb24gYW5kIC1hY3F1aXNpdGlvbiBmdW5jdGlvbnMgd2hpY2ggd2lsbCB0cnkgdG8gcmV1c2UKKwkgIGFzIG1hbnkgWFBhdGggb2JqZWN0cyBhcyBwb3NzaWJsZSwgYW5kIGZhbGxiYWNrIHRvIG5vcm1hbAorCSAgZnJlZS9jcmVhdGUgYmVoYXZpb3VyIGlmIG5vIGNhY2hlIGlzIGF2YWlsYWJsZSBvciBpZiB0aGUgY2FjaGUKKwkgIGlzIGZ1bGwuCisJKiBydW5zdWl0ZS5jOiBBZGp1c3RlZCB0byBkZWFjdGl2YXRlIHRoZSBjYWNoZSBmb3IgWE1MIFNjaGVtYQorCSAgdGVzdHMgaWYgYSBjYWNoZS1jcmVhdGlvbiBpcyB0dXJuZWQgb24gYnkgZGVmYXVsdCBmb3IgdGhlIHdob2xlCisJICBsaWJyYXJ5LCBlLmcuIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9mIHRoZSBjYWNoZS4gSXQgaXMKKwkgIGRlYWN0aXZhdGVkIGhlcmUgaW4gb3JkZXIgdG8gYXZvaWQgY29uZnVzaW9uIG9mIHRoZSBtZW1vcnkgbGVhaworCSAgZGV0ZWN0aW9uIGluIHJ1bnN1aXRlLmMuCisKK1dlZCBNYXkgMjQgMTA6NTQ6MjUgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHBhdGguYzogUmVtb3ZlZCBhIG1lbWNweSBpZiB4bWxYUGF0aE5vZGVTZXRNZXJnZSgpOyBpdAorCSAgc2VlbXMgd2UgcmVhbGx5IG5lZWQgdG8gd2FsayB0aGUgd2hvbGUgbGlzdCwgc2luY2UgdGhvc2UKKwkgIG5hc3RseSBuYW1lc3BhY2Ugbm9kZXMgbmVlZCB0byBiZSBhZGRlZCB3aXRoCisJICB4bWxYUGF0aE5vZGVTZXREdXBOcygpOyB0aHVzIGEgcHVyZSBtZW1jcHkgaXMgbm90IHBvc3NpYmxlLgorCSAgQSBmbGFnIG9uIHRoZSBub2RlLXNldCBpbmRpY2F0aW5nIGlmIG5hbWVzcGFjZSBub2RlcyBhcmUgaW4KKwkgIHRoZSBzZXQgd291bGQgaGVscCBoZXJlOyB0aGlzIGlzIHRoZSAzcmQgZmxhZyB3aGljaCB3b3VsZAorCSAgYmUgdXNlZnVsbCB3aXRoIG5vZGUtc2V0cy4gVGhlIGN1cnJlbnQgZmxhZ3MgSSBoYXZlIGluIG1pbmQ6CisJICAxKSBJcyBhIG5vZGUtc2V0IGFscmVhZHkgc29ydGVkPworCSAgICAgVGhpcyB3b3VsZCBhbGxvdyBmb3IgcmVidXN0IGFuZCBvcHRpbWl6YWJsZSBzb3J0aW5nCisJICAgICBiZWhhdmlvdXIuCisJICAyKSBPZiB3aGF0IHR5cGUgYXJlIHRoZSBub2RlcyBpbiB0aGUgc2V0IChvciBvZiBtaXhlZCB0eXBlKT8KKwkgICAgIFRoaXMgd291bGQgYWxsb3cgZm9yIGZhc3RlciBtZXJnaW5nIG9mIG5vZGUtc2V0cy4KKwkgIDMpIEFyZSBuYW1lc3BhY2Ugbm9kZXMgaW4gdGhlIHNldD8KKwkgICAgIFRoaXMgd291bGQgYWxsb3cgdG8gc2tpcHAgYWxsIHRoZSBuYW1lc3BhY2Ugbm9kZSBzcGVjaWZpYworCSAgICAgc3BlY2lhbCBoYW5kbGluZy4gRmFzdGVyIG5vZGUtc2V0IG1lcmdpbmcgaWYgdGhlIGZpcnN0CisJICAgICBzZXQgaXMgZW1wdHk7IGp1c3QgbWVtY3B5IHRoZSBzZXQuCisKK01vbiBNYXkgMjIgMTc6MTQ6MDAgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHBhdGguYzogT3B0aW1pemF0aW9uIG9mIGNvdW50KCk6IGVsaW1pbmF0ZWQgc29ydGluZworCSAgKHNlZSBidWcgIzE2NTU0NykuIE9wdGltaXphdGlvbiBvZiBYUEFUSF9PUF9GSUxURVIgaWYgdGhlCisJICBwcmVkaWNhdGUgaXMgYSBbMV0gKGRpc2FibGUgd2l0aCBYUF9PUFRJTUlaRURfRklMVEVSX0ZJUlNUIGlmCisJICBpdCBwcm9kdWNlcyB0cm91YmxlKS4gVGlueSBvcHQgaW4geG1sWFBhdGhOb2RlU2V0TWVyZ2UoKS4KKwkgIAorTW9uIE1heSAyMiAxMzozMzoxMiBDRVNUIDIwMDYgUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogdHJlZS5jOiBSZXZlcnQgYmVoYXZpb3IgY2hhbmdlIGluIHhtbFNldFByb3AgdG8gaGFuZGxlIGF0dHJpYnV0ZXMKKwkgIHdpdGggY29sb25zIGluIG5hbWUgYW5kIG5vIG5hbWVzcGFjZS4KKworRnJpIE1heSAxOSAyMTo1Njo0MyBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4cGF0aC5jOiBTdWJzdGl0dXRlZCBhbGwgcmVtYWluaW5nIGNhbGxzIHRvIHhtbFhQYXRoQ21wTm9kZXMoKQorCSAgZm9yIHhtbFhQYXRoQ21wTm9kZXNFeHQoKS4gVGlueSBmdXJ0aGVyIGVuaGFuY2VtZW50IG9mCisJICB4bWxYUGF0aENtcE5vZGVzRXh0KCkuIEFkZGVkIGFkZGl0aW9uYWwgY2hlY2tzIGluIHZhcmlvdXMgY29kZQorCSAgcGFydHMgdG8gYXZvaWQgY2FsbGluZyBzb3J0aW5nIG9yIG1lcmdpbmcgZnVuY3Rpb25zIGlmIHRoZQorCSAgbm9kZS1zZXQocykgZG9uJ3QgbmVlZCB0aGVtOyBpLmUuLCBpZiB0aGV5IGFyZSBlbXB0eSBvciBjb250YWluCisJICBqdXN0IG9uZSBub2RlLgorCitGcmkgTWF5IDE5IDEzOjE2OjU4IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhwYXRoLmM6IE9wdGltaXplZCB0aGUgY29tcGFyaXNvbiBmb3Igbm9uLWVsZW1lbnQgbm9kZXMKKwkgIGluIHhtbFhQYXRoQ21wTm9kZXNFeHQoKTsgdGhlIGNvbXBhcmlzb24gaXMgdXNlZCBmb3Igc29ydGluZworCSAgb2Ygbm9kZS1zZXRzLiBUaGlzIGVuaGFuY2VtZW50IGlzIHJlbGF0ZWQgdG8gYnVnICMxNjU1NDcuCisJICBUaGVyZSBhcmUgb3RoZXIgcGxhY2VzIHdoZXJlIHRoZSBvbGQgY29tcGFyaXNvbiBmdW5jdGlvbgorCSAgeG1sWFBhdGhDbXBOb2RlcygpIGlzIHN0aWxsIGNhbGxlZCwgYnV0IEkgY3VycmVudGx5IGRvbid0CisJICBrbm93IGV4YWN0bHkgd2hhdCB0aG9zZSBjYWxscyBhcmUgZm9yOyB0aHVzIGlmIHRoZXkgY2FuIGJlCisJICBzdWJzdGl0dXRlZCAoaWYgaXQgbWFrZXMgc2Vuc2UpIGZvciB0aGUgbmV3IGZ1bmN0aW9uLgorCitUdWUgTWF5IDE2IDE2OjU1OjEzIENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhwYXRoLmM6IEFwcGxpZWQgcGF0Y2ggZnJvbSBSb2IgUmljaGFyZHMsIGZpeGluZyBhIHBvdGVudGlhbAorCSAgbWVtb3J5IGxlYWsgaW4geG1sWFBhdGhUcnlTdHJlYW1Db21waWxlKCksIHdoZW4gYSBsaXN0IG9mCisJICBuYW1lc3BhY2VzIHdhcyBhc3NpZ25lZCB0byB0aGUgWFBhdGggY29tcGlsYXRpb24gY29udGV4dDsKKwkgIGhlcmUgYSBuZXcgbmFtZXNwYWNlIGxpc3Qgd2FzIGNyZWF0ZWQgYW5kIHBhc3NlZCB0bworCSAgeG1sUGF0dGVybmNvbXBpbGUoKTsgYnV0IHRoaXMgbGlzdCB3YXMgbm90IGZyZWVkIGFmdGVyd2FyZHMuCisJICBBZGRpdGlvbmFsbHkgd2UgYXZvaWQgbm93IGluIHhtbFhQYXRoVHJ5U3RyZWFtQ29tcGlsZSgpIHRvCisJICBjb21waWxlIHRoZSBleHByZXNzaW9uLCBpZiBpdCBoYXMgYSBjb2xvbiAtIGluZGljYXRpbmcKKwkgIHByZWZpeGVkIG5hbWUgdGVzdHMgLSBhbmQgbm8gbmFtZXNwYWNlIGxpc3Qgd2FzIGdpdmVuLiBUaGUKKwkgIHN0cmVhbWluZyBYUGF0aCBtZWNoYW5pc20gbmVlZHMgYSBuYW1lc3BhY2UgbGlzdCBhdAorCSAgY29tcGlsYXRpb24gdGltZSAodW5saWtlIG5vcm1hbCBYUGF0aCwgd2hlcmUgd2UgY2FuIGJpbmQKKwkgIG5hbWVzcGFjZSBuYW1lcyB0byBwcmVmaXhlcyBhdCBleGVjdXRpb24gdGltZSkuCisJKiBwYXR0ZXJuLmM6IEVuaGFuY2VkIHRvIHVzZSBhIHN0cmluZyBkaWN0IGZvciBsb2NhbC1uYW1lcywKKwkgIG5zLXByZWZpeGVzIGFuZCBhbmQgbmFtZXNwYWNlLW5hbWVzLgorCSAgRml4ZWQgeG1sU3RyZWFtUHVzaEludGVybmFsKCkgbm90IHRvIHVzZSBzdHJpbmctcG9pbnRlcgorCSAgY29tcGFyaXNvbiBpZiBhIGRpY3QgaXMgYXZhaWxhYmxlOyB0aGlzIHdvbid0IHdvcmssIHNpbmNlCisJICBvbmUgZG9lcyBub3Qga25vdyBpdCB0aGUgZ2l2ZW4gc3RyaW5ncyBvcmlnaW5hdGUgZnJvbSB0aGUKKwkgIHNhbWUgZGljdCAtIGFuZCB0aGV5IG5vcm1hbGx5IGRvbid0IGRvLCBzaW5jZSBlLmcuCisJICBuYW1lc3BhY2VzIGFyZSBob2xkIG9uIHhtbE5zLT5ocmVmLiBJIHRoaW5rIHRoaXMgd291bGQgYmUKKwkgIHdvcnRoIGFuIGludmVzdGlnYXRpb246IGlmIHdlIGNhbiBhZGQgYSBAZG9jIGZpZWxkIHRvIHhtbE5zCisJICBhbmQgcHV0IHRoZSBAaHJlZiBpbiB0byBhIGFkZGl0aW9uYW4gbmFtZXNwYWNlIGRpY3QgaG9sZAorCSAgaW4geG1sRG9jLiBEYW5pZWwgd2lsbCBzdXJlbHkgbm90IGxpa2UgdGhpcyBpZGVhIDotKSBCdXQKKwkgIGV2YWx1YXRpb24gb2YgdG9ucyBvZiBlbGVtZW50cy9hdHRyaWJ1dGVzIGluIG5hbWVzcGFjZXMKKwkgIHdpdGggeG1sU3RyRXF1YWwoKSBpc24ndCB0aGUgd2F5IHdlIHNob3VsZCBnbyBmb3JldmVyLgorCSAgCitUaHUgTWF5IDExIDE4OjAzOjQ5IENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgYnVnICMzNDEzMzcsIHJlcG9ydGVkIGJ5IERhdmlkIEdyb2htYW5uLgorCSAgVGhlIGNvZGUgZXhwZWN0ZWQgYSBub2RlICh4bWxOb2RlUHRyKSBvbiB0aGUgaW5mbyBmb3IgYQorCSAgbm9uLWV4aXN0ZW50IGRlZmF1bHQgYXR0cmlidXRlLCB3aGljaCBjbGVhcmx5IGNhbm5vdCBiZQorCSAgZXhwZWN0ZWQsIHNpbmNlIHRoZSBhdHRyaWJ1dGUgZG9lcyBub3QgZXhpc3QuIEkgY2FuIG9ubHkKKwkgIGd1ZXNzIHRoYXQgdGhpcyBzbmVha2VkIHRyeWluZyB0byBlbGltaW5hdGUgdGhlIHF1ZXJ5CisJICBmb3IgdGhlIG93bmVyLWVsZW1lbnQsIHdoaWNoIGlzIHVuYXZvaWRhYmxlIGFjdHVhbGx5LgorCSAgTm90ZSB0aGF0IGNyZWF0aW9uIG9mIGRlZmF1bHQgYXR0cmlidXRlcyB3b24ndCBoYXZlIGFuCisJICBlZmZlY3QgaWYgdmFsaWRhdGluZyB2aWEgU0FYL1hNTFJlYWRlcjsgaS5lLiwgdGhlIHByb2Nlc3NvcgorCSAgd29uJ3QgZmlyZSBhZGRpdGlvbmFsIHN0YXJ0LWF0dHJpYnV0ZSBldmVudHMgKEknbSBub3QgZXZlbgorCSAgc3VyZSBpZiBMaWJ4bWwyIGhhcyBzdWNoIGEgU0FYLWV2ZW50OyBJIHRoaW5rIGl0IGhhbmRzIHRoZW0KKwkgIGFsbCBvdmVyIGluIHRoZSBzdGFydC1lbGVtZW50IGV2ZW50KS4KKworVHVlIE1heSAgOSAyMTo0Nzo1OCBDRVNUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEZpeGVkIGJ1ZyAjMzQxMTUwLCByZXBvcnRlZCBieSBNaWNoYWVsIFJvbWVyLgorCSAgSW4geG1sU2NoZW1hQnVpbGRDb250ZW50TW9kZWxGb3JTdWJzdEdyb3VwKCksCisJICB4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIoKSB3YXMgaW5jb3JyZWN0bHkgdXNlZCBpbnN0ZWFkIG9mCisJICB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yKCkgdG8gbWltaWMgYSB4czpjaG9pY2UgZm9yCisJICBzdWJzdGl0dXRpb24tZ3JvdXBzLgorCSogdGVzdC9zY2hlbWFzL3N1YnN0LWdyb3VwLTFfMS54c2QKKwkgIHRlc3Qvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzAueG1sCisJICByZXN1bHQvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzBfMQorCSAgcmVzdWx0L3NjaGVtYXMvc3Vic3QtZ3JvdXAtMV8wXzEuZXJyOiBBZGRlZCByZWdyZXNzaW9uIHRlc3QKKwkgIHN1cHBsaWVkIGJ5IE1pY2hhZWwgUm9tZXIgZm9yIGJ1ZyAjMzQxMTUwLgorCitTYXQgTWF5ICA2IDExOjA1OjI0IEhLVCAyMDA2IFdpbGxpYW0gTS4gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiByZWxheG5nLmM6IEZpeGVkIGNvbXBpbGF0aW9uIGVycm9yIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkKKwkgIEdyYWhhbSBCZW5uZXR0LgorCitUaHUgTWF5ICA0IDE5OjE0OjAzIENFU1QgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogV2UnbGwgcmFpc2UgYW4gaW50ZXJuYWwgZXJyb3IgYW5kIHN0b3AKKwkgIHZhbGlkYXRpb24gbm93IHdoZW4gYW4gZW50aXR5IGlzIGZvdW5kIGluIHRoZSBpbnN0YW5jZQorCSAgZG9jdW1lbnQsIHNpbmNlIHdlIGRvbid0IHN1cHBvcnQgYXV0b21hdGljIGVudGl0eQorCSAgc3Vic3RpdHV0aW9uIGJ5IHRoZSBzY2hlbWEgcHJvY2Vzc29yICh5ZXQ/KSAtCisJICBzZWUgYnVnICMzNDAzMTYsIHJlcG9ydGVkIGJ5IE5pY2sgV2VsbG5ob2Zlci4KKworV2VkIE1heSAgMyAxNToxNjowMCBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IGFwcGxpZWQgYW5vdGhlciBQeXRob24gZGV0ZWN0aW9uIHBhdGNoIGZyb20gSm9zZXBoIFNhY2NvCisJKiBsaWJ4bWwuc3BlYy5pbjogY2xlYW51cCB0aGUgY2hhbmdlbG9nIHNlY3Rpb24sIGFzY2lpZmllcyB0aGUgc3BlYyBmaWxlCisJICB0b28KKworVHVlIE1heSAgMiAyMjozNDo1NCBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBmaXggYSBtaXggb2YgY29kZSBhbmQgZGVjbGFyYXRpb25zIHNob3dpbmcgdXAgb24gV2luZG93cworCSAgcGF0Y2ggZnJvbSBLamFydGFuIE1hcmFhcywgZml4aW5nICMzNDA0MDQKKworVHVlIE1heSAgMiAxNDoyNDo0MCBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbmNvZGluZy5jOiBmaXhpbmcgYnVnICMzNDAzOTggeG1sQ2hhckVuY091dEZ1bmMgd3JpdGluZyB0bworCSAgaW5wdXQgYnVmZmVyCisKK0ZyaSBBcHIgMjggMTg6Mjk6MjIgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTkVXUyBjb25maWd1cmUuaW4gZG9jLy8qOiBwcmVwYXJpbmcgMi42LjI0IHJlbGVhc2UsIGZpeGVkIFB5dGhvbgorCSAgcGF0aHMgYXQgdGhlIGxhc3QgbW9tZW50CisJKiByZWxheG5nLmMgdGVzdGFwaS5jIHRyZWUuYzogZml4IHNvbWUgY29tbWVudHMKKworVGh1IEFwciAyNyAxMDoxNTo0NSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBhcHBsaWVkIHBhdGNoIGZyb20gUm9sYW5kIFNjaHdpbmdlbCB0byBhbGxvdyBVVEYtOAorCSAgZmlsZSBwYXRocyBvbiBXaW5kb3dzCisKK1RodSBBcHIgMjcgMTA6MTA6NTggQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sd3JpdGVyLmM6IHBhdGNoIGZyb20gSmFzb24gVmllcnMgZm9yIGxpbmUgYnJlYWtzIGFmdGVyIEVuZFBJCisKK1R1ZSBBcHIgMjUgMjI6MjI6NTggQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBmaXggY29tcGlsYXRpb24gd2l0aG91dCB0cmVlCisKK1R1ZSBBcHIgMjUgMTg6MTc6MzcgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhcHBsaWVkIHBhdGNoIGZyb20gR2FyeSBDb2FkeSB0byByZWFsbHkgbWFrZSBzdXJlCisJICB4bWxsaW50IC0tbm9uZXQgd291bGQgbm90IHJlYWNoIHRoZSBuZXR3b3JrLCBzaG91bGQgZml4ICMzMzc0ODMuCisKK1R1ZSBBcHIgMjUgMTQ6NTI6MTUgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBhcHBsaWVkIHBhdGNoIGZyb20gSm9zZXBoIFNhY2NvIGNoYW5naW5nIHNsaWdodGx5CisJICB0aGUgcHl0aG9uIGRldGVjdGlvbiBzY2hlbWUgc2hvdWxkIGZpeCBidWcgIzMzODUyNgorCitNb24gQXByIDI0IDEwOjUwOjE5IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXggdGhlIGVycm9yIG1lc3NhZ2UgZm9yIGludmFsaWQgY29kZSBwb2ludCBpbiBjb250ZW50CisJICBjLmYuIGJ1ZyAjMzM5MzExCisKK1dlZCBBcHIgMTkgMTM6MTY6MjMgQ0VTVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jIHRlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTEqCisJICByZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTEqOiBGaXhlZCBpbmNvcnJlY3QKKwkgIHZhbGlkYXRpb24gb2YgcmVzdHJpY3RlZCBlbnVtZXJhdGlvbnMuIEFkZGVkIHJlbGF0ZWQKKwkgIHJlZ3Jlc3Npb24gdGVzdHMuCisKK1RodSBBcHIgMTMgMDk6NDc6MjUgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiBmaXhpbmcgYSBkZWFsbG9jYXRpb24gcHJvYmxlbSBpbiB4bWxTY2hlbWFBZGRTY2hlbWFEb2MoKQorCSAgaW4gY2FzZSBvZiBlcnJvcnMsIHNob3VsZCBmaXggYnVnICMzMzgzMDMKKworVGh1IEFwciAxMyAwOTozMTo0NSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGZpeGluZyBhIGRlYWxsb2NhdGlvbiBwcm9ibGVtIGluIHhtbFJlbGF4TkdQYXJzZSgpIAorCSAgaW4gY2FzZSBvZiBlcnJvcnMsIHNob3VsZCBmaXggYnVnICMzMzgzMDYKKworVGh1IEFwciAgNiAxMDoyMjoxNyBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MveG1sY2F0YWxvZy4xIGRvYy94bWxjYXRhbG9nX21hbi54bWwgZG9jL3htbGxpbnQuMSBkb2MveG1sbGludC54bWw6CisJICBhcHBsaWVkIG1hbiBwYWdlIGltcHJvdmVtZW50cyBmcm9tIERhbmllbCBMZWlkZXJ0CisKK01vbiBNYXIgMjcgMTE6NDQ6MDcgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiByZW1vdmVkIHVudXNlZCBjb2RlIG9yIHZhcmlhYmxlcywgZnJvbSBTdGVmYW4gS29zdAorCSAgZml4aW5nICMzMzYxNjMgYW5kICMzMzYxNjQKKworTW9uIE1hciAyNyAxMTozODoyMSBDRVNUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBTdGVmYW4gS29zdCBmaXhpbmcgIzMzNjE2MAorCitNb24gTWFyIDI3IDExOjIzOjM5IENFU1QgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNodmFsaWQuYyBnZW5DaFJhbmdlcy5weSBnZW5Vbmljb2RlLnB5IHhtbHVuaWNvZGUuYworCSAgaW5jbHVkZS9saWJ4bWwvY2h2YWxpZC5oIGluY2x1ZGUvbGlieG1sL3htbHVuaWNvZGUuaDogYXBwbGllZAorCSAgcGF0Y2hlcyBmcm9tIEFpdmFycyBLYWx2YW5zIHRvIG1ha2UgdW5pY29kZSB0YWJsZXMgY29uc3QsIGZpeGVzCisJICBidWcgIzMzNjA5NiwgdGhpcyBhbHNvIHVwZGF0ZXMgdG8gVW5pY29kZSA0LjAxIGZpbmFsIHdpdGggYSBjb3VwbGUKKwkgIG9mIGNoYXJhY3RlciByYW5nZXMgZml4ZXMuCisKK01vbiBNYXIgMjcgMDA6NTE6NDAgQ0VTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2h2YWxpZC5jIGdlbkNoUmFuZ2VzLnB5IGluY2x1ZGUvbGlieG1sL2NodmFsaWQuaDogZml4ZWQgYnVnCisJICAjMzM1NjAzIGFuZCByZXN5bmMnZWQgZ2VuQ2hSYW5nZXMucHkgdG8gdGhlIGV4cGVjdGVkIG91dHB1dC4KKworV2VkIE1hciAyMiAwMDoxNDozNCBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBhcHBsaWVkIHBhdGNoIGZyb20gWW91cmkgR29sb3Zhbm92IGZpeGluZyBidWcKKwkgICMzMTYzMzggYW5kIGFkZGluZyBhIGNvdXBsZSBvZiBvcHRpbWl6YXRpb25zIGluIHRoZSByZWdleHAKKwkgIGNvbXBpbGF0aW9uIGVuZ2luZS4KKwkqIHRlc3QvcmVnZXhwL2J1ZzMxNjMzOCByZXN1bHQvcmVnZXhwL2J1ZzMxNjMzODogYWRkZWQgcmVncmVzc2lvbgorCSAgdGVzdHMgYmFzZWQgb24gdGhlIGV4YW1wbGVzIHByb3ZpZGVkIGluIHRoZSBidWcgcmVwb3J0LgorCitGcmkgTWFyIDEwIDA4OjQwOjU1IEVTVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogYzE0bi5jIGVuY29kaW5nLmMgeG1sc2NoZW1hcy5jIHhwYXRoLmMgeHBvaW50ZXIuYzogZml4IGEgZmV3CisJICB3YXJuaW5nIHJhaXNlZCBieSBnY2MtNC4xIGFuZCBsYXRlc3RzIGNoYW5nZXMKKworRnJpIE1hciAxMCAwMTozNDo0MiBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnRlc3QuYyBzY2hlbWF0cm9uLmMgdGVzdEF1dG9tYXRhLmMgdHJlZS5jIHZhbGlkLmMgeGluY2x1ZGUuYworCSAgeG1sY2F0YWxvZy5jIHhtbHJlYWRlci5jIHhtbHJlZ2V4cC5jIHhwYXRoLmM6IGVuZCBvZiBmaXJzdAorCSAgcGFzcyBvbiBjb3Zlcml0eSByZXBvcnRzLgorCitUaHUgTWFyICA5IDE5OjM2OjE0IENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYzogbW9yZSBjbGVhbnVwcyBiYXNlZAorCSAgb24gY292ZXJpdHkgcmVwb3J0cy4KKwkKK1RodSBNYXIgIDkgMTc6NDc6NDAgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVgyLmMgY2F0YWxvZy5jIGVuY29kaW5nLmMgZW50aXRpZXMuYyBleGFtcGxlL2dqb2JyZWFkLmMKKwkgIHB5dGhvbi9saWJ4bWwuYzogbW9yZSBjbGVhbnVwcyBiYXNlZCBvbiBjb3Zlcml0eSByZXBvcnRzLgorCitUaHUgTWFyICA5IDE1OjEyOjE5IENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHBhdHRlcm4uYyB1cmkuYzogYSBidW5jaAorCSAgb2Ygc21hbGwgY2xlYW51cHMgYmFzZWQgb24gY292ZXJpdHkgcmVwb3J0cy4KKworVGh1IE1hciAgOSAwOTo0MjoxMCBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLmJjYjogYWRkZWQgc2NoZW1hdHJvbiBhcyBwb2ludGVkIG91dCBieSBFcmljIFp1cmNoZXIKKworVHVlIE1hciAgNyAwOTo1MDowOSBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbDItY29uZmlnLmluOiBmaXggUmVkIEhhdCBidWcgIzE4NDE3MAorCitNb24gTWFyICA2IDE0OjIxOjA4IENFVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdHJlZS5jOiBTaW1wbGlmaWVkIHVzYWdlIG9mIHRoZSBpbnRlcm5hbCB4bWxOc01hcC4gQWRkZWQgYQorCSAgInN0cmljdCIgbG9va3VwIGZvciBuYW1lc3BhY2VzIGJhc2VkIG9uIGEgcHJlZml4LiBGaXhlZCBhCisJICBuYW1lc3BhY2UgcHJvY2Vzc2luZyBpc3N1ZSBpbiB0aGUgY2xvbmUtbm9kZSBmdW5jdGlvbiwgd2hpY2gKKwkgIG9jY3VyZWQgaWYgYSBAY3R4dCBhcmd1bWVudCB3YXMgZ2l2ZW4uCisJICAKK0ZyaSBNYXIgIDMgMTc6NDQ6MTAgQ0VUIDIwMDYgUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogdmFsaWQuYzogZml4IEhUTUwgYXR0cmlidXRlIElEIGNoZWNraW5nIGZvciBpbnB1dCBlbGVtZW50LgorCSAgTWFpbnRhaW4gY3VycmVudCBhdHRyaWJ1dGUgIm5hbWUiIGJlaGF2aW9yIGZvciBub3cuCisKK1RodSBNYXIgIDIgMTg6NTk6NTAgQ0VUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB0cmVlLmM6IEJ1bmRsZWQgbG9va3VwIG9mIGF0dHItbm9kZXMgYW5kIHJldHJpZXZpbmcgdGhlaXIKKwkgIHZhbHVlcyBpbnRvIHRoZSBmdW5jdGlvbnMgeG1sR2V0UHJvcE5vZGVJbnRlcm5hbCgpIGFuZAorCSAgeG1sR2V0UHJvcE5vZGVWYWx1ZUludGVybmFsKCkuIENoYW5nZWQgcmVsZXZhbnQgY29kZQorCSAgdG8gdXNlIHRob3NlIGZ1bmN0aW9ucy4KKworTW9uIEZlYiAyNyAyMDo0MjowNCBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IHdvcmthcm91bmQgSFAtVVggY29tcGlsZXIgYnVnIGJ5IFJpY2sgSm9uZXMKKworTW9uIEZlYiAyNyAxMDo1NzowNSBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwyLnB5OiByZW1vdmUgYSB0YWIsIGFzIHBvaW50ZWQgb3V0IG9uIElSQworCitTYXQgRmViIDI1IDE4OjEyOjEwIENFVCAyMDA2IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIHRyZWUuYzogRml4IHRoZSBhZGQgc2libGluZyBmdW5jdGlvbnMgd2hlbiBwYXNzaW5nIGF0dHJpYnV0ZXMuCisJICBNb2RpZnkgdGVzdGluZyBmb3IgSUQgaW4geG1sU2V0UHJvcC4KKwkgIE5vIGxvbmdlciByZW1vdmUgSURuZXNzIHdoZW4gdW5saW5raW5nIG9yIHJlcGxhY2luZyBhbiBhdHRyaWJ1dGUuCisKK0ZyaSBGZWIgMjQgMjE6MjA6MzMgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IE1hcnRpbiBDb2xlIHBvaW50ZWQgb3V0IGEgYnVnIGluIHhtbENhdGFsb2dBZGQoKQorCSAgaWYgL2V0Yy94bWwvY2F0YWxvZyBkb2Vzbid0IGV4aXN0LgorCitUaHUgRmViIDIzIDIzOjA2OjE4IENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jLy8qOiB1cGRhdGVkIHRoZSBSdWJ5IGJpbmRpbmdzIGxpbmtzLCBhbmQgcmVnZW5lcmF0ZWQgdGhlCisJICBkb2NzLgorCitUaHUgRmViIDIzIDA5OjEyOjI3IENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2F0YWxvZy5jOiBpbXByb3ZlIGNhdGFsb2cgZGVidWdnaW5nIG1lc3NhZ2UgcGF0Y2ggZnJvbSBSaWNrIEpvbmVzCisKK1dlZCBGZWIgMjIgMTY6MDk6MTAgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vdHlwZXMuYzogTmljIEZlcnJpZXIgZm91bmQgZGVidWcgc3RhdGVtZW50IGxlZnQgaW4gdGhlCisJICBYUGF0aCBjb252ZXJzaW9uIGNvZGUKKworVHVlIEZlYiAyMSAyMDoyMzoxNCBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy94bWxsaW50LjEgZG9jL3htbGxpbnQueG1sOiBzbWFsbCBtYW4gcGFnZSBpbXByb3ZlbWVudHMgZnJvbQorCSAgRGFuaWVsIExlaWRlcnQKKworTW9uIEZlYiAyMCAxNTo0NToxOSBDRVQgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgYSBzaWRlLWVmZmVjdCBvZiB0aGUgcHJldmlvdXMgWFNJIGJ1Z2ZpeDoKKwkgIFRoZSBjb25zdHJ1Y3RvciBuZWVkcyBhIGJ1Y2tldCB0byBiZSBhc3NpZ25lZCBkdXJpbmcgY29tcG9uZW50CisJICBmaXh1cC4KKworTW9uIEZlYiAyMCAxNDozMjozNiBDRVQgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYzogRml4ZWQgeHM6Ym9vbGVhbiB0byByZWplY3QKKwkgIHRoZSBlbXB0eSBzdHJpbmcgKHJlcG9ydGVkIGJ5IEJhcyBEcmllc3NlbiBvbiB0aGUgbWFpbGluZy1saXN0KS4KKwkgIEZpeGVkIHNjaGVtYSBYU0ktYWNxdWlzaXRpb24gYW5kIGNvbnN0cnVjdGlvbjogdGhlIHNjaGVtYXRhCisJICAoeG1sU2NoZW1hKSBkaWRuJ3QgZ2V0IHRoZSB0YXJnZXROYW1lc3BhY2UgaW4gc29tZSBjYXNlcywgdGh1cwkgIAorCSAgdGhlIGNvbXBvbmVudCByZXNvbHV0aW9uIG1lY2hhbmlzbSBmYWlsZWQgdG8gd29yay4gVGhlIFhTSQorCSAgc3R1ZmYgbmVlZHMgdG8gYmUgdGVzdGVkIG1vcmUgaW50ZW5zaXZlbHk7IHRoaW5rIGFib3V0IGhvdworCSAgdG8gdGVzdCB0aGlzIGZvciByZWdyZXNzaW9uLgorCitNb24gRmViIDIwIDA5OjU3OjQxIENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL3htbGxpbnQuMSBkb2MveG1sbGludC54bWw6IG1vcmUgbWFuIHBhZ2UgaW1wcm92ZW1lbnRzIGZyb20KKwkgIERhbmllbCBMZWlkZXJ0CisKK1N1biBGZWIgMTkgMjI6MzE6MzMgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MveG1sbGludC4xIGRvYy94bWxsaW50LnhtbDogbWFuIHBhZ2UgaW1wcm92ZW1lbnRzIGZyb20gRGFuaWVsCisJICBMZWlkZXJ0LCBjLmYuICMzMzEyOTAKKworU3VuIEZlYiAxOSAxNzo1NDowNCBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogZml4IGFuIGVycm9yIHJlcG9ydCB3aGVuIHVzaW5nIC0tcGF0aCBhbmQgLS12YWxpZAorCSAgY2xvc2VzIGJ1ZyAjMzMxMjkwCisKK1N1biBGZWIgMTkgMTY6MjA6NDMgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IHRyeWluZyB0byBmaXggIzMzMTA2MiwgdGhpcyBpcyBhZ2FpbiBhIHByb2JsZW0KKwkgIGFyb3VuZCBpbnRlcmxlYXZlLCB0aGVyZSBpcyBubyBnb29kIGZpeCB1bmxlc3MgcmVpbXBsZW1lbnRpbmcKKwkgIGJ1dCB0aGlzIHdvcmtzIGFyb3VuZCBzb21lIGNhc2VzIGFuZCBhbGxvdyB0byB2YWxpZGF0ZSBpbiB0aGF0CisJICBjYXNlLgorCitXZWQgRmViIDE1IDExOjU1OjIyIENFVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdHJlZS5jOiBGaXhlZCBidWcgIzMyODg5NiByZXBvcnRlZCBieSBMaXJvbi4gVGhlIHBhdGgKKwkgIGZvciB0ZXh0LSBhbmQgQ0RBVEEtc2VjdGlvbi1ub2RlcyB3YXMgY29tcHV0ZWQgaW5jb3JyZWN0bHkKKwkgIGluIHhtbEdldE5vZGVQYXRoKCkuCisKK1N1biBGZWIgMTIgMjA6MTI6MjIgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogYnVnIGZpeGVzIGZvciAjMzI3MTY3IGFzIHdlbGwgYXMgc29tZSBjbGVhbnVwcworCSAgYW5kIG1vcmUgdGhvcm91Z2ggdGVzdHMgb24gYXRvbXMgY29tcGFyaXNvbnMuCisKK1RodSBGZWIgIDkgMTA6MDc6MjAgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL3dzb2NrY29tcGF0Lmg6IHBhdGNoIGZyb20gRXJpYyBadXJjaGVyIHRvIGNvbXBpbGUgd2l0aAorCSAgQm9ybGFuZCBDKysgNgorCitTdW4gRmViICA1IDA0OjAzOjU5IENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGJpbGwgcG9pbnRlZCBvdXQgYSBtaXNzaW5nIGJsb2NrIGluIHhtbFBhcnNlQ29tbWVudAorCSAgdHJ5aW5nIHRvIGZpbGwgd2l0aCBhIG5vcm1hbCBwcm9jZXNzaW5nIG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIuCisKK1N1biBGZWIgIDUgMDM6NDE6MzkgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgdGhlIGNvbW1lbnQgc3RyZWFtaW5nIGJ1ZyByYWlzZWQgYnkgR3JhaGFtIEJlbm5ldHQKKwkqIHRlc3QvYmFkY29tbWVudC54bWwgcmVzdWx0Ly9iYWRjb21tZW50LnhtbCo6IGFkZGVkIHRvIHRoZSByZWdyZXNzaW9uCisJICBzdWl0ZS4KKworRnJpIEZlYiAgMyAxNzozNjo0MSBDRVQgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogQWRkZWQgdGhlIHhtbERPTVdyYXBDbG9uZU5vZGUoKSB0bworCSAgdGhlIGhlYWRlciBmaWxlLgorCitGcmkgRmViICAzIDE3OjI5OjIyIENFVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdHJlZS5jOiBBZGRlZCBhbiBpbml0aWFsIHZlcnNpb24gb2YgeG1sRE9NV3JhcENsb25lTm9kZSgpIHRvCisJICB0aGUgQVBJLiBJdCB3aWxsIGJlIHVzZWQgdG8gcmVmbGVjdCBET00ncyBOb2RlLmNsb25lTm9kZSBhbmQKKwkgIERvY3VtZW50LmltcG9ydE5vZGUgbWV0aG9kcy4KKwkgIFRoZSBwcm9zOiAxKSBub24tcmVjdXJzaXZlLCAyKSBvcHRpbWl6ZWQgbnMtbG9va3VwCisJICAobW9zdGx5IHBvaW50ZXIgY29tcGFyaXNvbiksIDMpIHVzZXIgZGVmaW5lZCBucy1sb29rdXAsCisJICA0KSBzYXZlIG5zLXByb2Nlc3NpbmcuIFRoZSBmdW5jdGlvbiBpcyBpbiBhbiB1bmZpbmlzaGVkCisJICBhbmQgZXhwZXJpbWVudGFsIHN0YXRlIGFuZCBzaG91bGQgYmUgb25seSB1c2VkIHRvIHRlc3QgaXQuCisKK0ZyaSBGZWIgIDMgMTA6NDI6NDggQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogYXBwbGllZCBwYXRjaCBmcm9tIFJvYiBSaWNoYXJkcyBmaXhpbmcgdGhlIFVSSSByZWdyZXNzaW9ucworCSAgdGVzdHMgb24gV2luZG93cyB3aGljaCBzZWVtcyB0byBpbmRpY2F0ZSBiYWQgZXNjYXBpbmcuCisKK1RodSBGZWIgIDIgMTM6MTE6MjYgQ0VUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB0cmVlLmM6IEZpeGVkIHNvbWUgYnVncyB4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcygpIHdydAorCSAgdGhlIHByZXZpb3VzIGFkZGl0aW9uIG9mIHRoZSByZW1vdmFsIG9mIHJlZHVuZGFudCBucy1kZWNscy4KKworV2VkIEZlYiAgMSAxNzozMjoyNSBDRVQgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHRyZWUuYzogRW5oYW5jZWQgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMoKSB0byByZW1vdmUKKwkgIHJlZHVuZGFudCBucy1kZWNscyBpZiB0aGUgb3B0aW9uIFhNTF9ET01fUkVDT05OU19SRU1PVkVSRURVTkQKKwkgIHdhcyBnaXZlbi4gTm90ZSB0aGF0IEkgaGF2ZW4ndCBtb3ZlZCB0aGlzIG9wdGlvbiB0byB0aGUKKwkgIGhlYWRlciBmaWxlIHlldDsgc28ganVzdCBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBhbiBAb3B0aW9uCisJICBvZiAxIHRvIHRlc3QgdGhlIGJlaGF2aW91ci4JICAKKworV2VkIEZlYiAgMSAxMjoyMTowOCBDRVQgMjAwNiBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHRhcGkuYyB3aW4zMi9NYWtlZmlsZS4qOiBBZGRlZCBjaGFuZ2VkIGFzIHByb3Bvc2VkIG9uCisJICB0aGUgbWFpbGluZyBsaXN0IGJ5IHZlbmthdCBuYWlkdSBpbiBvcmRlciB0byBjb21waWxlCisJICB0ZXN0YXBpLmMgb24gd2luZG93cy4KKworVGh1IEphbiAxOSAwOTo1NzoyOCBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiB4bWwyLWNvbmZpZy5pbjogdHJ5aW5nIHRvIGZpeCB3aW5kb3dzL2NvbmZpZ3VyZQorCSAgaXNzdWVzIHJlcG9ydGVkIGJ5IFRpbSBWYW4gSG9sZGVyCisKK1dlZCBKYW4gMTggMTg6MjE6MTUgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmMgbGlieG1sLmggcGFyc2VyLmM6IHRyeSB0byBmaXggeG1sUGFyc2VJbk5vZGVDb250ZXh0CisJICB3aGVuIG9wZXJhdGluZyBvbiBhbiBIVE1MIGRvY3VtZW50LgorCitNb24gSmFuICA5IDE3OjI3OjE1IENFVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcmVsYXhuZy5jIGluY2x1ZGUvbGlieG1sL3JlbGF4bmcuaDogQWRkZWQKKwkgIHhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKCkgdG8gdGhlIEFQSS4KKworTW9uIEphbiAgOSAxNTozMzoxNiBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiByZXZlcnRlZCBmaXJzdCBwYXRjaGVzIGZvciAjMzE5Mjc5IHdoaWNoIGxlZCB0byAjMzI2Mjk1CisJICBhbmQgZml4ZWQgdGhlIHByb2JsZW0gaW4geG1sUGFyc2VDaHVuaygpIGluc3RlYWQKKwkqIHRlc3QvZW50MTEgcmVzdWx0Ly9lbnQxMSo6IGFkZGVkIHRlc3QgZm9yICMzMjYyOTUgdG8gdGhlIHJlZ3Jlc3Npb24KKwkgIHN1aXRlCisKK1RodSBKYW4gIDUgMTY6MjU6MDYgQ0VUIDIwMDYgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBORVdTIGNvbmZpZ3VyZS5pbiBsaWJ4bWwuc3BlYy5pbiB0ZXN0YXBpLmMgZG9jLyo6IHVwYXRlZCB0aGUgbmV3cworCSAgcmVnZW5lcmF0ZWQgdGhlIGRvY3MsIHByZXBhcmluZyBmb3IgcmVsZWFzZSBvZiAyLjYuMjMKKwkqIHBhdHRlcm4uYyB4bWxzY2hlbWFzLmM6IGZpeGVkIHNvbWUgY29tbWVudHMKKwkKK1RodSBKYW4gIDUgMTU6NDg6MjcgQ0VUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB0ZXN0L1hQYXRoL2RvY3Mvbm9kZXMgdGVzdC9YUGF0aC90ZXN0cy9ub2Rlc3BhdAorCSAgcmVzdWx0L1hQYXRoL3Rlc3RzL25vZGVzcGF0OiBBZGRlZCByZWdyZXNzaW9uIHRlc3RzIGZvcgorCSAgdGhlIGxhdGVzdCBYUGF0aC9wYXR0ZXJuIGZpeGVzLgorCitUaHUgSmFuICA1IDE1OjQzOjM4IENFVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcGF0dGVybi5jOiBBbm90aGVyIGZpeCB0byBoYW5kbGUgImZvby8vLiI6ICJmb28iIHdhcyBub3QKKwkgIGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgbm9kZS1zZXQuCisKK1RodSBKYW4gIDUgMTM6MjI6MjkgQ0VUIDIwMDYgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiBwYXR0ZXJuLmMgeHBhdGguYyBpbmNsdWRlL2xpYnhtbC9wYXR0ZXJuLmg6CisJICBGaXhlZCBidWcgIzMyMjkyOCwgcmVwb3J0ZWQgYnkgRXJpY2ggU2NodWJlcnQ6IFRoZSBidWcgd2FzCisJICBpbiBwYXR0ZXJuLmMsIHdoaWNoIGlzIHVzZWQgZm9yIGEgdGlueSBzdWJzZXQgb2YgeHBhdGgKKwkgIGV4cHJlc3Npb24gd2hpY2ggY2FuIGJlIGV2YWx1YXRlZCBpbiBhbiBvcHRpbWl6ZWQgd2F5LgorCSAgVGhlIGRvYy1ub2RlIHdhcyBuZXZlciBjb25zaWRlcmVkIHdoZW4gZXZhbHVhdGluZyAiLy8iCisJICBleHByZXNzaW9ucy4gQWRkaXRpb25hbGx5LCB3ZSBmaXhlZCByZXNvbHV0aW9uCisJICB0byBub2RlcyBvZiBhbnkgdHlwZSBpbiBwYXR0ZXJuLmM7IGkuZS4gYSAiLy8uIiBkaWRuJ3Qgd29yaworCSAgeWV0LCBhcyBpdCBkaWQgc2VsZWN0IG9ubHkgZWxlbWVudC1ub2Rlcy4gRHVlIHRvIHRoaXMKKwkgIGlzc3VlIHRoZSBwdXNoaW5nIG9mIG5vZGVzIGluIHhwYXRoLmMgbmVlZGVkIHRvIGJlIGFkanVzdGVkCisJICBhcyB3ZWxsLgorCitXZWQgSmFuICA0IDE4OjA3OjQ3IENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHRpbnkgcmVmYWN0b3JpbmcgcGF0Y2ggZnJvbSBCam9ybiBSZWVzZQorCitXZWQgSmFuICA0IDE1OjAwOjUxIENFVCAyMDA2IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYMi5jOiBmaXggYnVnICMzMjQ0MzIgd2l0aCA8eG1sOmZvby8+CisJKiB0ZXN0L25zNyByZXN1bC8vbnM3KjogYWRkZWQgdG8gdGhlIHJlZ3Jlc3Npb24gdGVzdHMKKworV2VkIEphbiAgNCAxMDo1Mzo1NiBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvd3NvY2tjb21wYXQuaDogYXBwbGllZCBwYXRjaCBmcm9tIE1hcmsgSnVua2VyLCBmaXhpbmcgYSAKKwkgIE1pbkdXIGNvbXBpbGF0aW9uIHByb2JsZW0sIHNob3VsZCBjbG9zZSBidWcgIzMyNDk0MworCitUdWUgSmFuICAzIDExOjQ5OjU0IENFVCAyMDA2IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBSZW1vdmVkIGxhc3QgZGVwZW5kZW5jeSBvbiB0aGUgb2Jzb2xldGUgZW51bQorCSAgeG1sU2NoZW1hVmFsaWRFcnJvci4KKworTW9uIEphbiAgMiAxMToyMDowMCBDRVQgMjAwNiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oIHhtbHNjaGVtYXMuYzogY29tcGlsYXRpb24KKwkgIGFuZCBkb2MgYnVpbGQgZml4ZXMgZnJvbSBNaWNoYWVsIERheQorCitXZWQgRGVjIDI4IDIyOjEyOjM0IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmM6IGJ1ZyBpbiB4bWxSZWdFeGVjUHVzaFN0cmluZzIoKSBwb2ludGVkIG91dCBieSAKKwkgIFNyZWVuaSBOYWlyLgorCitUdWUgRGVjIDIwIDE2OjU1OjMxIENFVCAyMDA1IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIHRyZWUuYzogZml4IGJ1ZyAjMzIyMTM2IGluIHhtbE5vZGVCdWZHZXRDb250ZW50IHdoZW4gZW50aXR5IHJlZiBpcyAKKwkgIGEgY2hpbGQgb2YgYW4gZWxlbWVudCAoZml4IGJ5IE9sZWtzYW5kciBLb25vbmVua28pLgorCSogSFRNTHRyZWUuYyBpbmNsdWRlL2xpYnhtbC9IVE1MdHJlZS5oOiBBZGQgaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQuCisKK1R1ZSBEZWMgMjAgMTE6NDM6MDYgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmMgeG1sc3RyaW5nLmM6IEZpeGVkIGEgc2VnZmF1bHQgZHVyaW5nCisJICB0ZXh0IGNvbmNhdGVuYXRpb24gd2hlbiB2YWxpZGF0aW5nIGEgbm9kZSB0cmVlOgorCSAgeG1sU3RybmNhdCB3YXMgY2FsbGVkIHdpdGggYSBAbGVuIG9mIC0xOyBidXQgdW5saWtlCisJICB4bWxTdHJuY2F0TmV3LCBpdCBkb2VzIG5vdCBjYWxjdWxhdGUgdGhlIGxlbmd0aAorCSAgYXV0b21hdGljYWxseSBpbiBzdWNoIGEgY2FzZSAocmVwb3J0ZWQgYnkgSnVkeSBIYXkKKwkgIG9uIHRoZSBtYWlsaW5nIGxpc3QpLgorCSAgVXBkYXRlZCB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSBpbnZvbHZlZCBzdHJpbmcKKwkgIGZ1bmN0aW9ucyB0byBub3RlIHRoaXMuCisKK1RodSBEZWMgMTUgMTI6MTE6MDcgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBuYW5vaHR0cC5jOiBhcHBsaWVkIHBhdGNoIGZyb20gR2FyeSBDb2FkeSB0byBhY2NlcHQgZ3ppcHBlZAorCSAgaHR0cCByZXNvdXJjZXMuCisKK1dlZCBEZWMgMTQgMTg6NDE6MjYgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB3aW4zMi9jb25maWd1cmUuanM6IEFkZGVkIGVuYWJsZS9kaXNhYmxlIG9mIHJ1bnRpbWUKKwkgIGRlYnVnZ2luZyAoTElCWE1MX0RFQlVHX1JVTlRJTUUpLgorCitXZWQgRGVjIDE0IDE4OjExOjUwIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOiBGaXhlZCB0byBkZWZpbmUKKwkgIExJQlhNTF9ERUJVR19SVU5USU1FIG9uIHRoZSBiYXNpcyBvZiBAV0lUSF9SVU5fREVCVUdALgorCitUdWUgRGVjIDEzIDEyOjQ5OjIzIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9zY2hlbWFzL2J1ZzMyMTQ3NSogcmVzdWx0L3NjaGVtYXMvYnVnMzIxNDc1KjoKKwkgIEFkZGVkIHJlZ3Jlc3Npb24gdGVzdCBmb3IgYnVnICMzMjE0NzUgKHJlcG9ydGVkIGJ5CisJICBHYWJvciBOYWd5KS4gRml4aW5nIG9mIGJ1ZyAjMzIzNTEwIHNlZW1lZCB0byBoYXZlCisJICBmaXhlZCB0aGlzIGJ1ZyBhcyB3ZWxsLgorCitNb24gRGVjIDEyIDE2OjE5OjE2IENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9zY2hlbWFzL2J1ZzMyMzUxMCogcmVzdWx0L3NjaGVtYXMvYnVnMzIzNTEwKjoKKwkgIEFkZGVkIHJlZ3Jlc3Npb24gdGVzdCBmb3IgYnVnICMzMjM1MTAuCisKK01vbiBEZWMgMTIgMTY6MTE6MTMgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IFdvcmthcm91bmQgZm9yIGJ1ZyAjMzIzNTEwIChyZXBvcnRlZCBieQorCSAgSm9uYXRoYW4gRmlsaWF0cmF1bHQpOiBzdWJzdGl0dXRlZCB0aGUgZXBzaWxvbiB0cmFuc2l0aW9uCisJICBmb3IgYSBsYWJlbGxlZCB0cmFuc2l0aW9uLCBpbiBvcmRlciB0byBhdm9pZCBhIGJ1ZyBpbgorCSAgeG1scmVnZXhwLmMgd2hpY2ggZWxpbWluYXRlZCB0aGUgZXBzaWxvbiB0cmFuc2l0aW9uIGFuZAorCSAgbWFya2VkIHRoZSBpbml0aWFsIHN0YXRlIGFzIGZpbmFsLgorCitNb24gRGVjIDEyIDE0OjI1OjQ2IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IEdhcnkgQ29hZHkgcG9pbnRlZCBhIG1lbW9yeSBsZWFrIGluCisJICB4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sKCkgYXBwbGllZCBwYXRjaCBmaXhpbmcgIzMyMzg2NAorCitTYXQgRGVjIDEwIDEyOjA4OjI4IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIGNvbmZpZ3VyZS5pbiBwYXJzZXJJbnRlcm5hbHMuYyBydW5zdWl0ZS5jIHJ1bnRlc3QuYworCSAgdGVzdGFwaS5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYyB4bWxzdHJpbmcuYzogZml4ZWQgYSBudW1iZXIKKwkgIG9mIHdhcm5pbmdzIHNob3duIGJ5IEhQLVVYIGNvbXBpbGVyIGFuZCByZXBvcnRlZCBieSBSaWNrIEpvbmVzCisKK0ZyaSBEZWMgIDkgMTg6NTc6MzEgQ0VUIDIwMDUgUm9iIFJpY2hhcmRzIDxycmljaGFyZHNAY3RpbmR1c3RyaWVzLm5ldD4KKworCSogeG1sd3JpdGVyLmM6IEluc2VydCBzcGFjZSBiZXR3ZWVuIHB1YmlkIGFuZCBzeXNpZCB3aGVuIGJvdGggCisJICBwYXNzZWQgdG8geG1sVGV4dFdyaXRlclN0YXJ0RFREIGFuZCBpbmRlbnRpbmcgbm90IGJlaW5nIHVzZWQuCisJICBSZW1vdmUgbm8gbG9uZ2VyIHVzZWQgTWVtIGNhbGxiYWNrcy4KKworRnJpIERlYyAgOSAxMTowMToxNiBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHJ1bnN1aXRlLmM6IENoYW5nZWQgdG8gaW5zdGFudGx5IG1hcmsgaW5zdGFuY2UtdGVzdHMgYXMKKwkgIGZhaWxlZCBpZiB0aGUgY29ycmVzcG9uZGluZyBzY2hlbWEgd2FzIGludmFsaWQuIFRoaXMKKwkgIHJlZmxlY3RzIHRoZSBzaWRlIG9mIHRoZSBQeXRob24gY29kZSBmb3IgdGhlIFhNTCBTY2hlbWEgdGVzdAorCSAgc3VpdGUuIFdlIG5vdyBnZXQgdGhlIHNhbWUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cyBvbiBib3RoCisJICBzaWRlcy4KKworV2VkIERlYyAgNyAxNDo1OTowMSBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiBBZGRlZAorCSAgeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCgpIHRvIHRoZSBBUEkuCisKK1dlZCBEZWMgIDcgMTI6NTk6NTYgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEZpeGVkIGEgc2VnZmF1bHQ6IHRoZSBpbnN0YW5jZSBkb2N1bWVudCB3YXMKKwkgIHN0aWxsIHRyaWVkIHRvIGJlIHZhbGlkYXRlZCwgaWYgdGhlIHNjaGVtYSwgZHluYW1pY2FsbHkKKwkgIGFjcXVpcmVkIHVzaW5nIFhTSSB3YXMgaW52YWxpZCwgdGh1cyBtYW5nbGVkLiBUaGUKKwkgIHZhbGlkYXRpb24gd2lsbCBzdG9wIChvciByYXRoZXIgd29uJ3QgdmFsaWRhdGUpIG5vdyBpbgorCSAgc3VjaCBhIGNhc2UuIFRoZSBzY2hlbWEgcGFyc2VyIGVycm9yIGNvZGUgd2lsbCBiZSBzZXQKKwkgIG9uIHRoZSB2YWxpZGlvbiBjb250ZXh0IG5vdzsgdGhpcyBpcyBzb21laG93IG5vdCBuaWNlLAorCSAgYnV0IGl0IGFzc3VyZXMgdGhhdCB0aGUgdmFsaWRhdGlvbiBjb250ZXh0IGluZGljYXRlcyBhbgorCSAgZXJyb3IgaW4gdGhlcmUgd2FzIGEgcGFyc2VyIGVycm9yLgorCitUdWUgRGVjICA2IDE4OjU3OjIzIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IHNtYWxsIGRvYyBwYXRjaCBmcm9tIEFyb24gU3RhbnN2aWsKKwkqIGxlZ2FjeS5jOiBhbm90aGVyIGRvYyBwYXRjaCBmb3IgYSBkZXByZWNhdGVkIEFQSQorCitNb24gRGVjICA1IDE2OjIzOjQ5IENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogTWFrZWZpbGUuYW06IFRpbnkgY2hhbmdlIGZvciAnbWFrZSB0ZXN0cyc6IHJhaXNlZAorCSAgdGhlIG51bWJlciBvZiBleHBlY3RlZCBmYWlsdXJlcyBmb3IgSmFtZXMgQ2xhcmsncworCSAgWE1MIFNjaGVtYSBkYXRhdHlwZSB0ZXN0cyBmcm9tIDEwIHRvIDExLiBUaGUgYWRkaXRpb25hbAorCSAgcmVwb3J0ZWQgZXJyb3Igd2FzIGFncmVlZCB0byBiZSBjb3JyZWN0IGxvbmcgdGltZSBhZ28sCisJICBidXQgd2UgbWlzc2VkIHRvIGFkanVzdCB0aGUgbWVzc2FnZSByZXBvcnRlZCBieQorCSAgdGhlIHRlc3Rpbmcgc2NyaXB0LgorCitGcmkgRGVjICAyIDEzOjUxOjE0IENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcmVzdWx0L3NjaGVtYXMvZGVjaW1hbCogcmVzdWx0L3NjaGVtYXMvYnVnMzIyNDExKjoKKwkgIEFkZGVkIG1pc3NpbmcgcmVncmVzc2lvbiB0ZXN0IHJlc3VsdHMgZm9yIHRoZSBsYXRlc3QgSURDCisJICBhbmQgeHM6ZGVjaW1hbCBidWdzLgorCitXZWQgTm92IDMwIDEyOjIyOjIzIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9zY2hlbWFzL2RlY2ltYWwqIHRlc3Qvc2NoZW1hcy9idWczMjI0MTEqOiBBZGRlZAorCSAgcmVncmVzc2lvbiB0ZXN0cyBmb3IgdGhlIGxhdGVzdCBJREMgYW5kIHhzOmRlY2ltYWwgYnVncy4KKworV2VkIE5vdiAzMCAxMTo1NzozNSBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgYnViYmxpbmcgb2YgZHVwbGljYXRlIElEQyBub2RlczogdGhlCisJICBwYXJlbnQncyBsaXN0IG9mIGR1cGxpY2F0ZXMgd2FzIGZpbGxlZCB3aXRoIE5VTExzIGluc3RlYWQKKwkgIG9mIHRoZSBub2RlcyB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMuIFRoaXMgbGVhZCB0byBhCisJICBzZWdmYXVsdCB3aGVuIHRoZSBsaXN0J3MgZW50cmllcyB3ZXJlIGFjY2Vzc2VkLgorCitNb24gTm92IDI4IDE3OjI4OjUzIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IEZpeGVkIHBhcnNpbmcgb2YgeHM6ZGVjaW1hbCB0bworCSAgYWxsb3cvZGVueSBzcGVjaWFsIGxleGljYWwgZm9ybXMuIEZpeGVkIHRoZSB0b3RhbERpZ2l0cworCSAgZm9yIHZhbHVlcyBpbiB0aGUgcmFuZ2UgKHggPCAxKSAmJiAgKHggPiAtMSkgJiYgKHggIT0gMCk7CisJICBFLmcgIjAuMTIzIiBoYXMgbm93IGEgdG90YWxEaWdpdHMgb2YgMyAod2FzIDQgcHJldmlvdXNseSkuCisJICBBZGp1c3RlZCB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbiBmb3IgZGVjaW1hbHMgZHVlIHRvIHRoaXMKKwkgIGNoYW5nZS4gQXMgYSBzaWRlIGVmZmVjdCBjb21wYXJpc29uIGFnYWluc3QgemVyb2VzIHdhcworCSAgb3B0aW1pemVkLgorCitNb24gTm92IDI4IDEzOjI1OjExIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBBbiBhc3NpZ25tZW50IHRvIGEgbG9jYWwgdmFyaWFibGUsIHdoaWNoIHdhcworCSAgdXNlZCB0byBhY2Nlc3MgdGhlIElEQyBub2RlIGxpc3QsIHdhcyBtaXNzaW5nIGFmdGVyIHRoZQorCSAgcmVhbGxvY2F0aW9uIG9mIHRoZSBsaXN0IChyZXBvcnRlZCBieSBGYWJyaWNlIEdVWQorCSAgYnVnICMzMjI0MTEpLiBSZW5hbWVkIHRoZSBkZWZpbmUgRU5BQkxFX0lEQ19OT0RFX1RBQkxFUworCSAgdG8gRU5BQkxFX0lEQ19OT0RFX1RBQkxFU19URVNUIGFuZCAqZGlzYWJsZWQqIGl0LCBzaW5jZQorCSAgaXQgaXMgdXNlZCB0byBmb3JjZSBidWJibGluZyBvZiBJREMgbm9kZSB0YWJsZXMgZXZlbgorCSAgaWYgbm90IG5lY2Vzc2FyeTsgdGhpcyB3YXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgdGVzdAorCSAgcHVycG9zZXMsIGJ1dCBJIG9idmlvdXNseSBtaXNzZWQgdG8gZGlzYWJsZSBpdCAoYWx0aG91Z2gKKwkgIGl0IGFwcGFyZW50bHkgaGVscGVkIGZpbmRpbmcgdGhlIGJ1ZykuCisKK1dlZCBOb3YgMjMgMTc6MzQ6NTIgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEluIHhtbFNjaGVtYUFzc2VtYmxlQnlYU0koKSB0aGUgcmV0dXJuIHZhbHVlCisJICBvZiB4bWxTY2hlbWFHZXRNZXRhQXR0ckluZm8oKSB3YXMgbm90IGFzc2lnbmVkIHRvIGFueXRoaW5nOworCSAgdGhpcyBjYXVzZWQgWFNJLWRyaXZlbi1keW5hbWljIHNjaGVtYSBhY3F1aXNpdGlvbiB0byBmYWlsCisJICB3aXRoIEBub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIChyZXBvcnRlZCBieSBKdWxpZW4gTGFteQorCSAgb24gdGhlIG1haWxpbmcgbGlzdCkuCisKK1R1ZSBOb3YgMjIgMTg6MzE6MzQgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEZpeGVkIGEgYnVnIGluIHhtbFNjaGVtYUZpbmRSZWRlZkNvbXBJbkdyYXBoKCkKKwkgIHdoaWNoIGNhdXNlZCB0aGUgc2VhcmNoIGZvciBjb21wb25lbnRzIHRvIHN0b3AgYXQgdGhlCisJICBmaXJzdCBlbmNvdW50ZXJlZCBhdHRyaWJ1dGUgZ3JvdXAgY29tcG9uZW50LgorCSAgRml4ZWQgZXJyb3IgcmVwb3J0IGluIHhtbFNjaGVtYUNoZWNrU1JDUmVkZWZpbmVGaXJzdCgpOiB0aGUKKwkgIGRlc2lnbmF0aW9uIG9mIGEgbm90LWZvdW5kIGNvbXBvbmVudCB3YXMgbm90IHJlcG9ydGVkLgorCitNb24gTm92IDIxIDEyOjIzOjI4IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IEFsYmVydCBDaGluIGZvdW5kIGFub3RoZXIgc2lnbmVkL3Vuc2lnbmVkIHByb2JsZW0KKwkgIGluIHRoZSBkYXRlIGFuZCB0aW1lIGNvZGUgcmFpc2VkIG9uIElSSVggNi41CisKK0ZyaSBOb3YgMTggMTg6MTM6MzggQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oOgorCSAgQWRkZWQgeG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycygpIHRvIHRoZSBBUEkuCisJICBGaXhlZCBjaGFubmVsaW5nIG9mIGVycm9yIHJlbGV2YW50IGluZm9ybWF0aW9uIHRvCisJICBzdWJzZXF1ZW50IHBhcnNlci92YWxpZGF0aW9uIGNvbnRleHRzLgorCitUaHUgTm92IDE3IDE0OjExOjQzIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmM6IHJlbW92ZWQgdW5yZWFjaGFibGUgY29kZSBwb2ludGVkIG91dCBieSAKKwkgIE9sZWtzYW5kciBLb25vbmVua28sIGZpeGVzIGJ1ZyAjMzIxNjk1CisKK1RodSBOb3YgMTcgMDg6MjQ6MzEgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogdXNlIGN0eHQtPnN0YW5kYWxvbmUgPSAtMiB0byBpbmRpY2F0ZSB0aGF0IHRoZQorCSAgWE1MRGVjbCB3YXMgcGFyc2VkIGJ1dCBubyBzdGFuZGFsb25lIGF0dHJpYnV0ZSB3YXMgZm91bmQsCisJICBzdWdnZXN0ZWQgYnkgTWljaGFlbCBEYXkgdG8gZGV0ZWN0IGlmIGFuIFhNTERlY2wgd2FzIGZvdW5kLgorCitUdWUgTm92IDE1IDA5OjQ5OjI0IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcnVudGVzdC5jOiBIaXNhc2hpIEZ1amluYWthIHBvaW50ZWQgdGhhdCBlcnJvcnMgaW4gU2NoZW1hcyB0ZXN0cworCSAgd2VyZSBub3QgcHJvcGVybHkgcmVwb3J0ZWQuCisKK1N1biBOb3YgMTMgMTM6NDI6NDEgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBhcHBsaWVkIHBhdGNoIGZyb20gR2VlcnQgSmFuc2VuIHRvIHJlbW92ZSB4bWxCdWZmZXJDbG9zZSgpCisJICB3aGljaCBpcyBub3QgbmVlZGVkLgorCitGcmkgTm92IDExIDEzOjQ4OjUyIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBDaGFuZ2VkIHhtbFNjaGVtYUZvcm1hdElEQ0tleVNlcXVlbmNlKCkKKwkgIHRvIHVzZSB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3BFeHQoKSBpbiBvcmRlciB0bworCSAgY29ycmVjdGx5IHJlcG9ydCB2YWx1ZXMgZm9yIHhzOmFueVNpbXBsZVR5cGUuCisJKiB0ZXN0L3NjaGVtYXMvaWRjLWtleXJlZi1lcnIxKgorCSAgcmVzdWx0L3NjaGVtYXMvaWRjLWtleXJlZi1lcnIxKjogQWRkZWQgYSB0ZXN0IGZvciB0aGlzIGNoYW5nZS4KKworV2VkIE5vdiAgOSAxMzowNzoyNCBFU1QgMjAwNSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiB4bWxJTy5jIHhtbHdyaXRlci5jOiBmdW5jdGlvbiBjb25zb2xpZGF0aW9uIHdoZW4gd3JpdGluZyB0byB4bWxCdWZmZXIuCisJICBSZXR1cm4gZXJyb3IgY29uZGl0aW9uIG5vdCBsZW4gaWYgeG1sd3JpdGVyIGZhaWxzIHdyaXRpbmcgdG8gYnVmZmVyLgorCitXZWQgTm92ICA5IDA5OjU0OjU0IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2F2ZS5jIHhtbElPLmMgaW5jbHVkZS9saWJ4bWwveG1sSU8uaCBpbmNsdWRlL2xpYnhtbC94bWxzYXZlLmg6CisJICBhcHBsaWVkIHBhdGNoIGZyb20gR2VlcnQgSmFuc2VuIHRvIGltcGxlbWVudCB0aGUgc2F2ZSBmdW5jdGlvbiB0byAKKwkgIGEgeG1sQnVmZmVyLCBhbmQgYSBiaXQgb2YgY2xlYW51cC4KKworTW9uIE5vdiAgNyAxNDo1ODozOSBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYzogRml4ZWQgdGhlIHR5cGUgb2YgdGhlCisJICB0b3RhbERpZ2l0cyB2YWx1ZSB0byBiZSBwb3NpdGl2ZUludGVnZXIuCisJICBGaXhlZCBjcmFzaCBpbiBhbiBlcnJvciByZXBvcnQgZnVuY3Rpb24gd2hlbiB3ZSBnYXZlIGl0CisJICB0aGUgZG9jdW1lbnQgbm9kZTsgb25seSBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXMgYXJlCisJICBwcm9jZXNzZWQgbm93IChyZXBvcnRlZCBieSBSb2IgUmljaGFyZHMpLgorCitUdWUgTm92ICAxIDE2OjIyOjI5IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmM6IGZpeCBidWcgIzMxOTg5NywgcHJvYmxlbSB3aXRoIGNvdW50ZWQgYXRvbXMKKwkgIHdoZW4gdGhlIHRyYW5zaXRpb24gaXRzZWxmIGlzIGNvdW50ZWQgdG9vCisJKiByZXN1bHQvcmVnZXhwL2hhcmQgdGVzdC9yZWdleHAvaGFyZDogYXVnbWVudGVkIHRoZSByZWdyZXNzaW9uCisJICB0ZXN0cyB3aXRoIHRoZSBwcm9ibGVtIGV4cG9zZWQuCisKK1R1ZSBOb3YgIDEgMTE6NTQ6MzkgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9NYWtlZmlsZS5taW5ndyBpbmNsdWRlL3dpbjMyY29uZmlnLmg6IGFwcGxpZWQgcGF0Y2ggZnJvbQorCSAgTWFyayBKdW5rZXIgdG8gZml4IGNvbXBpbGF0aW9uIHdpdGggTWluR1cKKworRnJpIE9jdCAyOCAxODozNjowOCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuMzogdGlueSBmaXggZnJvbSBBbGJlcnQgQ2hpbgorCSogcnVuc3VpdGUuYyBydW50ZXN0LmMgdGVzdGFwaS5jOiBwb3J0YWJpbGl0eSBjbGVhbnVwIGZvciBhcmNoCisJICBuZWVkaW5nIHRyaW8gZm9yICpwcmludGYKKworRnJpIE9jdCAyOCAxMjoyMTozOSBFRFQgMjAwNSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiB0cmVlLmM6IGFkZCBhZGRpdGlvbmFsIGNoZWNrcyB0byBwcmV2ZW50IHRyZWUgY29ycnVwdGlvbi4gZml4IHByb2JsZW0gCisJICBjb3B5aW5nIGF0dHJpYnV0ZSB1c2luZyB4bWxEb2NDb3B5Tm9kZSBmcm9tIG9uZSBkb2N1bWVudCB0byBhbm90aGVyLgorCitGcmkgT2N0IDI4IDE3OjU4OjEzIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiB2bXMvY29uZmlnLnZtcyBtYWNvcy9zcmMvY29uZmlnLW1hYy5oOgorCSAgY2xlYW51cCBmcm9tIEFsYmVydCBDaGluCisJKiBkb2MvTWFrZWZpbGUuYW06IGh0bWwvaW5kZXguc2dtbCBkb2Vzbid0IGV4aXN0IGFueW1vcmUKKworRnJpIE9jdCAyOCAxNjo1Mzo1MSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jIHhtbG1vZHVsZS5jOiBtb3JlIHBvcnRhYmlsaXR5IHBhdGNoZXMgZnJvbSBBbGJlcnQgQ2hpbiBmb3IKKwkgIEhQLVVYIGFuZCBBSVgKKworRnJpIE9jdCAyOCAxMDozNjoxMCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxtb2R1bGUuYyBjb25maWd1cmUuaW46IGFwcGxpZWQgMiBwYXRjaGVzIGZyb20gQWxiZXJ0IENoaW4gZm9yCisJICBtb2R1bGUgcG9ydGFiaWxpdHkKKworRnJpIE9jdCAyOCAxMDoyNDozOSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlcnJvci5jOiBmaXhpbmcgYSBwb3J0YWJpbGl0eSBwcm9ibGVtIG9uIHNvbWUgb2xkIFVuaWNlcyB3aXRoCisJICBwYXRjaCBmcm9tIEFsYmVydCBDaGluCisKKzIwMDUtMTAtMjcgIEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIGMxNG4uYyAgcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0yCisJICB0ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0yLnhtbAorCSAgdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMi54cGF0aDogZml4aW5nCisJICBidWcgaW4gZXhjLWMxNG4gbmFtZXNwYWNlIHZpc2liaWxpdHkgKyB0ZXN0IGNhc2UgKGJ1ZyAjMzE5MzY3KQorCitUaHUgT2N0IDI3IDE2OjEwOjMxIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwucHk6IHJlbW92ZSB3YXJuaW5ncyB0byBzdGRvdXQgcGF0Y2ggZnJvbSBOaWMgRmVycmllcgorCitUaHUgT2N0IDI3IDEzOjU0OjUyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmMgeG1scmVnZXhwLmMgaW5jbHVkZS9saWJ4bWwvdmFsaWQuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1scmVnZXhwLmg6IGF2b2lkIGZ1bmN0aW9uIHBhcmFtZXRlcnMgbmFtZXMgJ2xpc3QnCisJICBhcyB0aGlzIHNlZW1zIHRvIGdpdmUgdHJvdWJsZXMgd2l0aCBWQzYgYW5kIHN0bCBhcyByZXBvcnRlZCBieQorCSAgU2FtdWVsIERpYXogR2FyY2lhLgorCitXZWQgT2N0IDI2IDEwOjU5OjIxIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlckludGVybmFscy5jOiBmaXggYSBwcm9ibGVtIGluIHNvbWUgZXJyb3IgY2FzZSBvbiBTb2xhcmlzCisJICB3aGVuIHBhc3NlZCBhIE5VTEwgZmlsZW5hbWUsIHBvaW50ZWQgYnkgQWxiZXJ0IENoaW4uCisKK1R1ZSBPY3QgMjUgMTQ6MzQ6NTggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBzY3JpcHQgSFRNTCBwYXJzZXIgZXJyb3IgZml4LCBjb3JyZWN0cyBidWcgIzMxOTcxNQorCSogcmVzdWx0L0hUTUwvNTM4NjcqIHRlc3QvSFRNTC81Mzg2Ny5odG1sOiBhZGRlZCB0ZXN0IGZyb20gTWljaGFlbCBEYXkKKwkgIHRvIHRoZSByZWdyZXNzaW9uIHN1aXRlIAorCitUdWUgT2N0IDI1IDE0OjIxOjExIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogdHlwbyBmaXggZnJvbSBNaWNoYWVsIERheQorCitNb24gT2N0IDI0IDIwOjE2OjIzIEVEVCAyMDA1IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIHRyZWUuYzogZml4IGlzc3VlIGFkZGluZyBub24tbmFtZXNwYWNlZCBhdHRyaWJ1dGVzIGluIHhtbEFkZENoaWxkKCksIAorCSAgeG1sQWRkTmV4dFNpYmxpbmcoKSBhbmQgeG1sQWRkUHJldlNpYmxpbmcoKSAoYnVnICMzMTkxMDgpIC0gcGFydCAxLgorCitTYXQgT2N0IDIyIDEwOjAwOjQxIEhLVCAyMDA1IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXJzZXIuYzogZml4ZWQgc2Vjb25kIHNwb3Qgd2hlcmUgQ1JMRiBzcGxpdCBiZXR3ZWVuIGNodW5rcworCSAgY291bGQgY2F1c2UgdHJvdWJsZSAoYnVnICMzMTkyNzkpCisJKiBnZW50ZXN0LnB5LCB0ZXN0YXBpLmM6IGZpeGVkIHR3byBwcm9ibGVtcyBpbnZvbHZlZCB3aXRoCisJICAtLXdpdGgtbWluaW11bSBjb21waWxhdGlvbiAoY29tcGlsYXRpb24gZXJyb3JzIHdpdGggc2NoZW1hdHJvbgorCSAgYW5kIGZvcm1hbCBleHByZXNzaW9ucyB0ZXN0cykKKworRnJpIE9jdCAyMSAxMDo1MDoxNCBFRFQgMjAwNSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiB4bWxzYXZlLmM6IHByZXZlbnQgb3V0cHV0IG9mIGZyYWdtZW50IHRhZ3Mgd2hlbiBzZXJpYWxpemluZyBYSFRNTC4KKworV2VkIE9jdCAxOSAxNjo1Mzo0NyBCU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBjb21taXRpbmcgYSBzb21lIGZpeGVzIGFuZCBkZWJ1ZyBkb25lIHllc3RlcmRheSBpbgorCSAgdGhlIExvbmRvbiBhaXJwb3J0LgorCitUaHUgT2N0IDIwIDEyOjU0OjIzIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogUmVtb3ZlZCBjcmVhdGlvbiBvZiBhIHRlbXBvcmFyeSBwYXJzZXIgY29udGV4dAorCSAgZHVyaW5nIHZhbGlkYXRpb24gd2hlbiBwcm9jZXNzaW5nIHhzaTp0eXBlOyB0aGlzIHByZXZpb3VzbHkKKwkgIGFkZGVkIGEgc3RyaW5nIHRvIHRoZSBkaWN0IG9mIHRoZSBzY2hlbWEgLSB0byBhc3N1cmUgdGhyZWFkCisJICBzYWZldHksIHdlIGRvbid0IHdhbnQgdG8gbW9kaWZ5IGEgZ2l2ZW4gc2NoZW1hIGR1cmluZworCSAgdmFsaWRhdGlvbi4KKworVGh1IE9jdCAyMCAxNzowNToyOSBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sd3JpdGVyLmM6IGZpeGVkIHByb2JsZW0gaW4geG1sVGV4dFdyaXRlclZTcHJpbnRmIGNhdXNlZCBieQorCSAgbWlzdXNlIG9mIHZzbnByaW50ZgorCSogY29uZmlndXJlLmluLCBjb25maWcuaC5pbjogYWRkZWQgYSBjb25maWd1cmF0aW9uIGNoZWNrIGZvcgorCSAgdmFfY29weSBhbmQgYWRkZWQgYSBkZWZpbmUgZm9yIFZBX0NPUFkgZm9yIHhtbHdyaXRlci5jIGZpeAorCSogcGFyc2VyLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBDUkxGIHNwbGl0IGJldHdlZW4gY2h1bmtzIChidWcKKwkgICMzMTkyNzkpIChmaXggcHJvdmlkZWQgYnkgQnJpb24gVmliYmVyKQorCitXZWQgT2N0IDE5IDE4OjQ5OjUyIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgYSBwb3RlbnRpYWwgbWVtb3J5IGxlYWsgaW4KKwkgIHhtbFNjaGVtYUNoZWNrQ1NlbGVjdG9yWFBhdGgoKSB3aGVuIGFuIGludGVybmFsIGVycm9yIG9jY3Vycy4KKwkgIEZpeGVkIHNldHRpbmcgb2YgY3R4dC0+ZXJyIHRvIHRoZSBnaXZlbiBlcnJvciBjb2RlIGluCisJICB0aGUgcGFyc2luZyBlcnJvciBmdW5jdGlvbnMuCisJKiBwYXR0ZXJuLmM6IEFkZGVkIGludGVybmFsIHhtbENvbXBpbGVJRENYUGF0aFBhdGgoKSBhcyBhCisJICBzdGFydGluZyBwb2ludCBmb3IgSURDIFhQYXRoIGNvbXBpbGF0aW9uOyB0aGlzIGFuZCBzb21lIG90aGVyCisJICB0aW55IGNoYW5nZXMgZml4ZXMgaXNzdWVzIHJlZ2FyZGluZyB3aGl0ZXNwYWNlIGluIHRoZQorCSAgZXhwcmVzc2lvbnMgYW5kIElEQyBzZWxlY3Rvci9maWVsZCByZWxldmFudCByZXN0cmljdGlvbnMgb2YKKwkgIHRoZSBzdWJzZXQgb2YgWFBhdGguIEZpeGVkIGEgbWlzc2luZyBibG9ja2luZyBvZiBhdHRyaWJ1dGVzCisJICBpbiB4bWxTdHJlYW1QdXNoSW50ZXJuYWwoKS4KKworTW9uIE9jdCAxNyAxNTowNjowNSBFRFQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnRlc3QuYzogcmVtb3ZlZCB0aGUgZXJyb3IgbWVzc2FnZQorCSogcmVsYXhuZy5jIHhtbHNjaGVtYXMuYzogcmVtb3ZlZCAyIGluc3RhYmlsaXR5IHdhcm5pbmdzIGZyb20gZnVuY3Rpb24KKwkgIGRvY3VtZW50YXRpb24KKwkqIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaDogY2hhbmdlZCB3YXJuaW5nIGFib3V0IEFQSSBzdGFiaWxpdHkKKwkqIHhtbHJlZ2V4cC5jOiB0cnlpbmcgdG8gaW1wcm92ZSBydW50aW1lIGV4ZWN1dGlvbiBvZiBub24tZGV0ZXJtaW5pc3RpYworCSAgcmVnZXhwcyBhbmQgYXV0b21hdGEuIE5vdCBmdWxseSBmaW5pc2hlZCBidXQgc2hvdWxkIGJlIHdheSBiZXR0ZXIuCisKK01vbiBPY3QgMTcgMTY6MTI6MDIgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCisJICB4bWxTY2hlbWFDb250ZW50TW9kZWxEdW1wKCkuIEFkZGVkIG91dHB1dCBvZiBsb2NhbCB0eXBlcworCSAgaW4geG1sU2NoZW1hRWxlbWVudER1bXAoKS4gVGlueSBjb3NtZXRpY2FsIGNoYW5nZXMgdG8gdGhlCisJICBkdW1wIG91dHB1dC4KKworTW9uIE9jdCAxNyAxNDoyOTowOCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB0cmVlLmMgcGF0dGVybi5jOiBTaWxlbmNlZCBpbnRlbCBjb21waWxlciB3YXJuaW5ncyAocmVwb3J0ZWQKKwkgIGJ5IEtqYXJ0YW4gTWFyYWFzLCBidWcgIzMxODUxNykuCisJKiB4bWxzY2hlbWFzLmM6IFRoZSBhYm92ZSBjaGFuZ2VzIGluIHBhdHRlcm4uYyByZXZlYWxlZCBhbgorCSAgaW5jb25zaXN0ZW5jeSB3cnQgSURDczogd2Ugbm93IF9vbmx5XyBwb3AgWFBhdGggc3RhdGVzLCBpZgorCSAgd2UgcmVhbGx5IHB1c2hlZCB0aGVtIGJlZm9yZWhhbmQ7IHRoaXMgd2FzIHByZXZpb3VzbHkgbm90CisJICBjaGVja2VkIGZvciB0aGUgY2FzZSB3aGVuIHdlIGRpc2NvdmVyIGFuIGVsZW1lbnQgbm9kZSB0byBiZQorCSAgaW52YWxpZCB3cnQgdGhlIGNvbnRlbnQgbW9kZWwuCisJICBGaXhlZCBzZWdmYXVsdCBpbiB4bWxTY2hlbWFHZXRFZmZlY3RpdmVWYWx1ZUNvbnN0cmFpbnQoKS4KKworRnJpIE9jdCAxNCAxNjo0MDoxOCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiByZXN1bHQvc2NoZW1hcy8qLmVycjogQWRhcHRlZCByZWdyZXNzaW9uIHRlc3QgcmVzdWx0cy4KKworRnJpIE9jdCAxNCAxNjoyMToyMiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCQorCSogeG1sc2NoZW1hcy5jOiBGaXhlZCBzb21lIGlkZW50aXR5LWNvbnN0cmFpbnQgaXNzdWVzOgorCSAgUmVzdHJ1Y3R1cmVkIElEQyBub2RlLXRhYmxlcworCSAgQWxsb3dlZCBJRENzIHRvIHJlc29sdmUgYWxzbyB0byBub2RlcyBvZiBjb21wbGV4IHR5cGUgd2l0aAorCSAgc2ltcGxlIGNvbnRlbnQuCisJICBBZGRlZCBjaGVjayBmb3Iga2V5cmVmcyB3aXRoIHJlZmVyZW5jZXMgdG8ga2V5cmVmcy4KKwkgIElEQyB0YXJnZXQtbm9kZXMgd2VyZSBpbnRlcmZlcnJpbmcgd2l0aCBJREMgbm9kZS10YWJsZXMsCisJICBzaW5jZSB0aGV5IHVzZWQgb25lIGxpc3Qgb2YgZW50cmllcyBvbmx5LiBJIHNlcGFyYXRlZCB0aGlzCisJICBvbmUgYmlnIGxpc3QgaW50byAzIGxpc3RzOiAxIGZvciBJREMgbm9kZS10YWJsZSBlbnRyaWVzLAorCSAgMSBmb3IgX2R1cGxpY2F0ZXNfIG9mIElEQyBub2RlLXRhYmxlIGVudHJpZXMgYW5kIDEgZm9yCisJICBJREMgdGFyZ2V0LW5vZGVzLiBNb3JlIGNvZGUsIGJ1dCBjbGVhbmVyIGFuZCBpdCB3b3JrcyBhdCBsYXN0LgorCSAgS2V5cmVmcyB3aWxsIGZhaWwgdG8gcmVzb2x2ZSB0byBkdXBsaWNhdGUga2V5L3VuaXF1ZSBlbnRyaWVzLgorCSAgSSB0aG91Z2h0IHRoaXMgd2FzIGFscmVhZHkgd29ya2luZyB0aGlzIHdheSwgYnV0IGl0IGRpZG4ndC4KKwkgIFRoZSB3b3JkaW5nIG9mIHRoZSBkZWZpbml0aW9uIGZvciBbbm9kZSB0YWJsZV0gaW4gdGhlIHNwZWMKKwkgIGNhbiBsZWFkIHRvIGEgc2NlbmFyaW8sIHdoZXJlIGtleXJlZnMgcmVzb2x2ZSBwZXJmZWN0bHksIGV2ZW4KKwkgIGlmIHRoZSByZWxldmFudCBrZXktc2VxdWVuY2VzIG9mIHRoZSByZWZlcmVuY2VkIGtleS91bmlxdWUgaGF2ZQorCSAgZHVwbGljYXRlcyBpbiB0aGUgc3VidHJlZS4gQ3VycmVudGx5IG9ubHkgU2F4b24gOC41LjEgaXMKKwkgIGRpc3NhbGxvd2luZyByZXNvbHV0aW9uIHRvIGR1cGxpY2F0ZSBlbnRyaWVzIGNvcnJlY3RseSAtIHdlCisJICB3aWxsIGZvbGxvdyBTYXhvbiBoZXJlLgorCSAgUmVtb3ZlZCBzb21lIGludGVsIGNvbXBpbGVyIHdhcm5pbmdzIChyZXBvcnRlZCBieQorCSAgS2phcnRhbiBNYXJhYXMsIGJ1ZyAjMzE4NTE3KS4KKwkqIHBhdHRlcm4uYzogRml4ZWQgYW4gSURDLVhQYXRoIHByb2JsZW0gd2hlbiByZXNvbHZpbmcgdG8KKwkgIGF0dHJpYnV0ZXMuCSAgCisKK01vbiBPY3QgMTQgMDE6MTU6MTQgQ0VTVCAyMDA1IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisJKiBuYW5vaHR0cC5jIGluY2x1ZGUvd3NvY2tjb21wYXQuaDogYXBwbGllZCBwYXRjaCBmcm9tIEtvbGphIE5vd2FrIAorCSAgdG8gdXNlIGdldGFkZHJpbmZvKCkgaWYgc3VwcG9ydGVkIGluIFdpbmRvd3MgYnVpbGQgKGJ1ZyMgMzE3NDMxKS4KKworTW9uIE9jdCAxMCAxNTozMzo0OCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiByZXN1bHQvc2NoZW1hcy8qOiBBZGFwdGVkIHJlZ3Jlc3Npb24gdGVzdCByZXN1bHRzLgorCitNb24gT2N0IDEwIDE1OjEyOjQzIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IEluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yCisJICByZWRlZmluaXRpb25zOyB0aGlzIHN0aWxsIG1pc3NlcyBjaGVja3MgZm9yIHJlc3RyaWN0aW9ucworCSAgb2YgdGhlIGNvbnRlbnQgbW9kZWwgb2YgY29tcGxleCB0eXBlcy4KKwkgIEZpeGVkIGRlZmF1bHQvZml4ZWQgdmFsdWVzIGZvciBhdHRyaWJ1dGVzIChsb29rcyBsaWtlIHRoZXkKKwkgIGRpZCBub3Qgd29yayBpbiB0aGUgbGFzdCAgcmVsZWFzZXMpLgorCSAgQ29tcGxldGVkIGNvbnN0cmFpbnRzIGZvciBhdHRyaWJ1dGUgdXNlcy4KKwkgIFNlcGVyYXRlZCBhdHRyaWJ1dGUgZGVyaXZhdGlvbiBmcm9tIGF0dHJpYnV0ZSBjb25zdHJhaW50cy4KKwkgIENvbXBsZXRlZCBjb25zdHJhaW50cyBmb3IgYXR0cmlidXRlIGdyb3VwIGRlZmluaXRpb25zLgorCSAgRGlzYWxsb3dpbmcgPGltcG9ydD5zIG9mIHNjaGVtYXMgaW4gbm8gdGFyZ2V0IG5hbWVzcGFjZSBpZiB0aGUKKwkgIGltcG9ydGluZyBzY2hlbWEgaXMgYSBjaGFtZWxlb24gc2NoZW1hLiBUaGlzIGNvbnRyYWRpY3RzCisJICB0aGUgd2F5IFNheG9uLCBYZXJjZXMtSiwgWFNWIGFuZCBJQk0ncyBTUUMgd29ya3MsIGJ1dCB0aGUKKwkgIFczQyBYTUwgU2NoZW1hIFdHLCB0aGlua3MgaXQgaXMgY29ycmVjdCB0byBkaXNzYWxvdyBzdWNoCisJICBpbXBvcnRzLgorCSAgQWRkZWQgY29zLWFsbC1saW1pdGVkIGNvbnN0cmFpbnRzLgorCSAgUmVzdHJ1Y3R1cmVkIHJlZmVyZW5jZSByZXNvbHV0aW9uIHRvIG1vZGVsIGdyb3VwcyBhbmQgZWxlbWVudAorCSAgZGVjbGFyYXRpb25zLgorCSAgTWlzYyBjbGVhbnVwLgorCitGcmkgT2N0ICA3IDA0OjM0OjEyIENFU1QgMjAwNSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiBzY2hlbWF0cm9uLmMgeG1scmVnZXhwLmM6IHJlbW92ZSB3YXJuaW5ncyB1bmRlciBXaW5kb3dzLgorCitXZWQgU2VwIDI4IDIzOjQyOjE0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gTWFzc2ltbyBNb3JhcmEgZml4aW5nIGJ1ZyAjMzE3NDQ3CisJICBhYm91dCByaXNrIG9mIGludmFsaWQgd3JpdGUgaW4geG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMKKworVHVlIFNlcCAyNyAxMToyMDo1NyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlcnJvci5jOiBBZHJpYW4gTW91YXQgcG9pbnRlZCBvdXQgcmVkdW5kYW5jaWVzIGluIHhtbFJlcG9ydEVycm9yKCkKKworTW9uIFNlcCAyNiAxOToxODoyNCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogc2VlbXMgYSB0ZXN0IHRvIGF2b2lkIGR1cGxpY2F0ZSB0cmFuc2l0aW9uIGlzIAorCSAgcmVhbGx5IG5lZWRlZCBhdCBhbGwgdGltZXMuIEx1a2EgUG9yIGdhdmUgYW4gZXhhbXBsZSBoaXR0aW5nCisJICB0aGlzLiBDaGFuZ2VkIGJhY2sgdGhlIGludGVybmFsIEFQSS4KKworVGh1IFNlcCAyMiAxMzoxNDowNyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogZml4aW5nIGxlYWsgaW4geG1sVGV4dFJlYWRlclJlYWRTdHJpbmcoKSAjMzE2OTI0CisKK1RodSBTZXAgMTUgMTY6MTI6NDQgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmM6IG1vcmUgZml4ZXMgdG8gdGhlIGJlaGF2aW91ciBvZiB4bWxCdWlsZFJlbGF0aXZlVVJJCisKK1RodSBTZXAgMTUgMTU6MDg6MjEgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmM6IGRldGVjdCBjb21iaW5hdG9yeSBleHBsb3Npb24gYW5kIHJldHVybiB3aXRoCisJICBhIHJ1bnRpbWUgZXJyb3IgaW4gdGhvc2UgY2FzZSwgYy5mLiAjMzE2MzM4IHRob3VnaCBtYXliZSB3ZQorCSAgc2hvdWxkIG5vdCBzZWUgc3VjaCBhbiBleHBsb3Npb24gd2l0aCB0aGF0IHNwZWNpZmljIHJlZ2V4cCwKKwkgIG1vcmUgY2hlY2tpbmcgbmVlZHMgdG8gYmUgZG9uZS4KKworV2VkIFNlcCAxNCAxOTo1MjoxOCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmg6IEFkZGVkIHNvbWUgY29tbWVudHMgZm9yIHRoZQorCSAgc3RydWN0IGZpZWxkcy4KKworV2VkIFNlcCAxNCAxMzoyNDoyNyBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdXJpLmM6IGZpeGVkIHByb2JsZW0gd2hlbiB4bWxCdWlsZFJlbGF0aXZlVVJJIHdhcyBnaXZlbiBhCisJICBibGFuayBwYXRoIChidWcgMzE2MjI0KQorCitNb24gU2VwIDEyIDIzOjQxOjQwIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE5FV1MgY29uZmlndXJlLmluIGRvYy8vKjogcmVsZWFzZSBvZiAyLjYuMjIgdXBkYXRlZCBkb2MgYW5kCisJICByZWJ1aWxkLgorCSogeG1sc2F2ZS5jIGluY2x1ZGUvbGlieG1sL3htbHNhdmUuaDogYWRkZWQgWE1MX1NBVkVfTk9fWEhUTUwKKwkgIHhtbFNhdmVPcHRpb24KKwkqIHhtbHNjaGVtYXMuYzogbWlub3IgY2xlYW51cHMKKworTW9uIFNlcCAxMiAyMTo0Mjo0NyBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCQorCSogdGVzdC9zY2hlbWFzL2ltcG9ydDFfMC54c2Q6IEFuZCBhZGFwdGluZyBhbm90aGVyIG9uZS4KKworTW9uIFNlcCAxMiAyMToyOTozNSBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiByZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLWV4dGVuc2lvbl8wXzA6IEFkYXB0ZWQgcmVzdWx0LgorCitNb24gU2VwIDEyIDIxOjIwOjQxIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHJlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMy5lcnIgcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF80LmVycgorCSAgcmVzdWx0L3NjaGVtYXMvY2hhbmdlbG9nMDkzXzFfMC5lcnIKKwkgIHJlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzBfMC5lcnIKKwkgIHJlc3VsdC9zY2hlbWFzL2ltcG9ydDFfMF8wLmVycgorCSAgcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wXzAuZXJyOgorCSAgQWRhcHRlZCByZWdyZXNzaW9uIHJlc3VsdHMuCisKK01vbiBTZXAgMTIgMjE6MDA6NTMgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogQ29tcGxldGlvbiBvZiB0aGUgc2NoZW1hIGdyYXBoLgorCSAgQ2VudHJhbGlzYXRpb24sIG1vcmUgcm9idXN0bmVzcyBvZiB0aGUgc2NoZW1hIGRvY3VtZW50CisJICBhcXVpc2l0aW9uIHN0b3J5LiBDZW50cmFsaXNlZCBhbmQgcmVzdHJ1Y3R1cmVkIGNvbXBvbmVudCBmaXh1cC4KKwkgIEZpeGVkIGF0dHJpYnV0ZSBkZXJpdmF0aW9uIHdoZW4gJ3Byb2hpYml0aW5nJyBhdHRyaWJ1dGUgdXNlcy4KKwkgIEFkZGVkIHdhcm5pbmdzOiB3aGVuIHNjaGVtYSBkb2N1bWVudHMgY2Fubm90IGJlIGxvY2FsaXplZAorCSAgZHVyaW5nIGltcG9ydHM7IHdoZW4gd2UgZ2V0IGR1cGxpY2F0ZSBhbmQgcG9pbnRsZXNzIGF0dHJpYnV0ZQorCSAgcHJvaGliaXRpb25zLiBDaGFuZ2VkIGVycm9yIHJlcG9ydHMgZm9yIElEQ3MgdG8gcmVwb3J0CisJICB0aGUgcmVsZXZhbnQgSURDIGRlc2lnbmF0aW9uIGFzIHdlbGwgKHJlcXVlc3RlZCBieSBHVVkgRmFicmljZSkuCisJICBNaXNjIGNvZGUtY2xlYW51cC4KKworTW9uIFNlcCAxMiAxNjowMjoxMiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzYXZlLmM6IGFwcGxpZWQgc2Vjb25kIHBhdGNoIGZyb20gRGF2aWQgTWFkb3JlIHRvIGJlIGxlc3MgaW50cnVzaXZlCisJICB3aGVuIGhhbmRsaW5nIHNjcmlwdHMgYW5kIHN0eWxlIGVsZW1lbnRzIGluIFhIVE1MMSBzaG91bGQgZml4ICMzMTYwNDEKKwkqIHRlc3QveGh0bWwxIHJlc3VsdC8veGh0bWwxXCo6IHVwZGF0ZWQgdGhlIHRlc3QgYWNjb3JkaW5nbHkKKworTW9uIFNlcCAxMiAxNTowOTowOSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuc3BlYy5pbiBkb2MvZGV2aGVscC8qOiBmaW5pc2hlZCB0aGUgaW50ZWdyYXRpb24gd2l0aAorCSAgZGV2aGVscCwgY29tcGxldGluZyB0aGUgaW5kZXggYW5kIGluc2VydGVkIGludG8gdGhlIGd0ay1kb2MKKwkgIGRhdGFiYXNlIGF0ICJtYWtlIGluc3RhbGwiIHN0YWdlCisKK01vbiBTZXAgMTIgMTQ6MTQ6MTIgQ0VTVCAyMDA1IFJvYiBSaWNoYXJkcyA8cnJpY2hhcmRzQGN0aW5kdXN0cmllcy5uZXQ+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbHNhdmUuaCB4bWxzYXZlLmM6IGFkZCBYTUxfU0FWRV9OT19FTVBUWSBzYXZlIG9wdGlvbgorCSAgYW5kIHVzZSBvcHRpb24gZnJvbSB4bWxTYXZlQ3R4dFB0ciByYXRoZXIgdGhhbiBnbG9iYWwgZHVyaW5nIG91dHB1dC4KKwkqIHhtbHNhdmUuYzogZml4IHNvbWUgb3V0cHV0IGZvcm1hdHRpbmcgZm9yIG1ldGEgZWxlbWVudCB1bmRlciBYSFRNTC4KKworTW9uIFNlcCAxMiAxMToxMjowMyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBwYXJzZXIuYyB4bWxsaW50LmM6IGRhbW4gWE1MX0ZFQVRVUkVfVU5JQ09ERQorCSAgY2xhc2hlcyB3aXRoIEV4cGF0IGhlYWRlcnMgcmVuYW1lIHRvIFhNTF9XSVRIXyB0byBmaXggYnVnICMzMTYwNTMuIAorCSogZG9jL01ha2VmaWxlLmFtOiBidWlsZCBkZXZoZWxwIGJlZm9yZSB0aGUgZXhhbXBsZXMuCisJKiBkb2MvKjogcmVnZW5lcmF0ZWQgdGhlIEFQSQorCitNb24gU2VwIDEyIDAyOjAzOjEyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNhdmUuYzogZml4IGJ1ZyAjMzE2MDM0LCB3aGVyZSB4bWxFbGVtRHVtcCgpIGNhbiBjcmFzaCBpZiAKKwkgIGdpdmVuIGEgZG9jdW1lbnQgcG9pbnRlciBpbnN0ZWFkIG9mIGFuIGVsZW1lbnQKKworTW9uIFNlcCAxMiAwMToyNjoxNiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZGV2aGVscC9kZXZoZWxwLnhzbDogaW1wcm92ZW1lbnRzIG9uIHRoZSBodG1sIGdlbmVyYXRpb24sCisJICBzaG91bGQgYmUgY29tcGxldGUgd2l0aCBuYXZpZ2F0aW9uLCB3aGF0IGlzIGxlZnQgZG9uZSBpcyBnbHVlaW5nCisKK01vbiBTZXAgMTIgMDA6MDM6MjcgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGRvYy9NYWtlZmlsZS5hbSBkb2MvYXBpYnVpbGQucHkgZG9jL2xpYnhtbDItYXBpLnhtbAorCSAgZG9jL2RldmhlbHAvKjogc3RhcnRlZCB3b3JrIG5lZWRlZCB0byBnZW5lcmF0ZSBkZXZoZWxwIGNvbnRlbnQsCisJICBub3QgdG9vIGhhcmQgYmFzZWQgb24gdGhlIGV4aXN0aW5nIGZvcm1hdCBhbmQgZXh0cmFjdG9yLgorCitGcmkgU2VwICA5IDEyOjU2OjE5IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlcyBidWcgIzMxNTYxNyB3aGVuIHVzaW5nIHB1c2ggQ0RBVEEgaW4gc29tZSBjYXNlcy4KKworVGh1IFNlcCAgOCAyMzozOTo0MSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmM6IHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bCB0byBjb21waWxlIHdpdGhvdXQgc2NoZW1hdHJvbgorCitXZWQgU2VwICA3IDAwOjE2OjI3IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRlYnVnWE1MLmM6IHBhdGNoIGZyb20gT2xlZyBQYXJhc2NoZW5rbyB0byBmaXggeG1sRGVidWdEdW1wTm9kZSgpCisJICB3aGVuIGhhbmRsZWQgYSBuYW1lc3BhY2Ugbm9kZS4KKworU3VuIFNlcCAgNCAyMzozNjo0NSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBORVdTIGVsZmdjY2hhY2suaCB0ZXN0YXBpLmMgZG9jLyo6IHVwZGF0ZWQgdGhlIGRvY3MgYW5kIHJlYnVpbGQKKwkgIHJlbGVhc2luZyAyLjYuMjEKKwkqIGluY2x1ZGUvbGlieG1sL3RocmVhZHMuaCB0aHJlYWRzLmM6IHJlbW92ZWQgeG1sSXNUaHJlYWRzRW5hYmxlZCgpCisJKiB0aHJlYWRzLmMgaW5jbHVkZS9saWJ4bWwvdGhyZWFkcy5oIHhtbGxpbnQuYzogYWRkZWQgdGhlIG1vcmUKKwkgIGdlbmVyaWMgeG1sSGFzRmVhdHVyZSgpIGFzIHN1Z2dlc3RlZCBieSBCam9ybiBSZWVzZSwgeG1sbGludCB1c2VzIGl0LgorCitTdW4gU2VwICA0IDIyOjQ1OjQ5IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvKiBjb25maWd1cmUuaW46IHByZXBhcmUgZm9yIHJlbGVhc2UKKwkqIHhwYXRoLmM6IHdvcmsgZm9yICMzMDMyODksIGZpeCBhIGZvcm1hdHRpbmcgYnVnIGZvciBNSU5fSU5UCisKK1N1biBTZXAgIDQgMTU6NDg6NTcgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiByZWFsIGZpeCBmb3IgIzMxNDg4MSBhbmQgIzMxNDc1OSBpcyB3YXMgYSBiaXQgbW9yZSBjb21wbGV4CisJICB0aGFuIGluaXRpYWxseSBleHBlY3RlZCBhcyBjdHh0LT5lcnJvciA9PSBOVUxMIGhhZCBiZWhhdmlvdXIgc2lkZQorCSAgZWZmZWN0cyBhdCB0aGUgY29tcGlsYXRpb24gbGV2ZWwgaXRzZWxmLgorCitTdW4gU2VwICA0IDE0OjAxOjAwIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhdHRlcm4uYyB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3BhdHRlcm4uaDogZml4aW5nIHlldCBhbm90aGVyCisJICBwYXR0ZXJuIGluZHVjZWQgWFBhdGggYnVnICMzMTQyODIKKwkqIHJlbGF4bmcuYzogcmV2ZXJ0ZWQgYmFjayBsYXN0IGNoYW5nZSBpdCB3YXMgc2VyaW91c2x5IGJyb2tlbgorCitTYXQgU2VwICAzIDE2OjUxOjU1IENFU1QgMjAwNSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiB4bWxzYXZlLmM6IGNoZWNrIGZvciBOVUxMIHRvIHByZXZlbnQgY3Jhc2ggd2l0aCBtZXRhIGVsZW1lbnRzCisKK1NhdCBTZXAgIDMgMTY6MjY6NTUgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBzdHJ1Y3R1cmVkIGVycm9yIHJlcG9ydGluZyBwcm9ibGVtIHdpdGggUmVsYXgtTkcKKwkgIHNob3VsZCBmaXggIzMxNDg4MSBhbmQgIzMxNDc1OQorCitTYXQgU2VwICAzIDE1OjQyOjI5IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhdHRlcm4uYzogZml4ZXMgYSBwb3J0YWJpbGl0eSBwcm9ibGVtIHJhaXNlZCBieSBDMzcwIG9uIFovT1MKKworU2F0IFNlcCAgMyAxNToyNjozMSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVgyLmMgdHJlZS5jIHZhbGlkLmM6IGZpeGluZyBhIG51bWJlciBvZiBpc3N1ZXMgcmFpc2VkIGJ5IHhtbDppZAorCSAgYnV0IG1vcmUgZ2VuZXJhbGx5IHJlbGF0ZWQgdG8gYXR0cmlidXRlcyBhbmQgSUQgaGFuZGxpbmcsIGZpeGVzCisJICAjMzE0MzU4IGFtb25nIG90aGVyIHRoaW5ncworCitGcmkgU2VwICAyIDE0OjI2OjQzIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmMgcGFyc2VySW50ZXJuYWxzLmM6IGF2b2lkIHBhc3NpbmcgYSBjaGFyW10gYXMgc25wcmludGYKKwkgIGZpcnN0IGFyZ3VtZW50LgorCSogdGhyZWFkcy5jIGluY2x1ZGUvbGlieG1sL3RocmVhZHMuaDogaW1wbGVtZW50ZWQgeG1sSXNUaHJlYWRzRW5hYmxlZCgpCisJICBiYXNlZCBvbiBBbmRyZXcgVy4gTm9zZW5rbyBpZGVhLgorCSogZG9jLyogZWxmZ2NjaGFjay5oOiByZWdlbmVyYXRlZCB0aGUgQVBJCisKK1RodSBTZXAgIDEgMTQ6NDQ6NDIgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiB0aGUgdXNlIG9mIEFNX1BBVEhfUFlUSE9OIGlzIG5vdCBwb3J0YWJsZSBlbm91Z2gKKwkgIHJldmVydGluZyBiYWNrIHRvIEFNX1BBVEhfUFJPRworCitUaHUgU2VwICAxIDExOjQyOjM5IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogQXBwbGllZCB0aGUgbGFzdCBwYXRjaCBmcm9tIEdhcnkgQ29hZHkgZm9yICMzMDQ2MzcKKwkgIGNoYW5naW5nIHRoZSBiZWhhdmlvdXIgd2hlbiB0ZXh0IG5vZGVzIGFyZSBmb3VuZCBpbiBib2R5CisJKiByZXN1bHQvSFRNTC8qOiB0aGlzIGNoYW5nZXMgdGhlIG91dHB1dCBvZiBzb21lIHRlc3RzCisKK1RodSBTZXAgIDEgMTE6MjI6MzcgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2Rvd25sb2Fkcy5odG1sIGRvYy94bWwuaHRtbDogYWRkaW5nIHJlZmVyZW5jZSB0byBCdWxsIEFJWCBycG1zCisJICBjLmYuICMxNjA1OTgKKworV2VkIEF1ZyAzMSAxMTozOTowMiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWwyLWNvbmZpZy5pbjogcmVtb3ZlZCB0aGUgb2Jzb2xldGUgLS1saWJ0b29sLWxpYnMgb3B0aW9uLCBjLmYuCisJICBidWcgIzMxNDg1MworCitGcmkgQXVnIDI2IDE3OjMzOjI2IENFU1QgMjAwNSBSb2IgUmljaGFyZHMgPHJyaWNoYXJkc0BjdGluZHVzdHJpZXMubmV0PgorCisJKiB4bWxzYXZlLmM6IG1vdmUgaGFuZGxpbmcgb2YgbWV0YSBlbGVtZW50IGZvciBodHRwLWVxdWl2IGluIFhIVE1MIGRvY3MgCisJICB0byBzZXJpYWxpemF0aW9uIGFuZCBubyBsb25nZXIgbW9kaWZ5IGludGVybmFsIHRyZWUuCisKK0ZyaSBBdWcgMjYgMDA6NTE6NTggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IHRoZSBwcm9maWxpbmcgdXN1YWxseSBkb24ndCB3b3JrLCBkaXNhYmxlZAorCSogZG9jLyo6IHJlYnVpbHQKKworVGh1IEF1ZyAyNSAyMzo0Nzo1NSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHRyeWluZyB0byBmaXggdGhlIGZpcnN0IHBhcnQgb2YgIzMxMDAzMyBieQorCSAgZGV0ZWN0aW5nIGdjYyA8PSAzLjIKKworVGh1IEF1ZyAyNSAyMjoxMzozNyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlcnJvci5jOiBmaXhlZCBidWcgIzMxMDAzMywgdGhlIFVSSSBleHRyYWN0aW9uIGNvZGUgZ2l2ZW4gYQorCSAgbm9kZSBpcyBhIGJpdCB0d2lzdGVkIGFuZCBicm9rZSBpbiB0aGUgbGFzdCBtb250aHMuCisKK1RodSBBdWcgMjUgMTY6MTg6MTUgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYyByZXN1bHQvWFBhdGgveHB0ci9zdHJyYW5nZTI6IHVuaW5pdGlhbGl6ZWQgZmllbGQgYW5kCisJICBmaXggb24gdGVzdC4KKworVGh1IEF1ZyAyNSAxNjowMzowNSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jOiBjaGFuZ2UgdmVyYm9zaXR5IGRlcGVuZGluZyBvbiBBUEkKKwkqIHJlc3VsdC9YUGF0aC90ZXN0cy8qIHJlc3VsdC9YUGF0aC94cHRyLyogcmVzdWx0L3htbGlkLyo6IGdldCBiYWNrCisJICB0byBwcmV2aW91cyBvdXRwdXRzCisKK1RodSBBdWcgMjUgMTU6MTQ6NTYgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIHBhcnNlci5jIFNBWDIuYyBkZWJ1Z1hNTC5jIHRyZWUuYyB2YWxpZC5jIHhtbHJlYWRlci5jCisJICB4bWxsaW50LmMgaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOgorCSAgYWRkZWQgYSBwYXJzZXIgWE1MX1BBUlNFX0NPTVBBQ1Qgb3B0aW9uIHRvIGFsbG9jYXRlIHNtYWxsIAorCSAgdGV4dCBub2RlcyAobGVzcyB0aGFuIDggYnl0ZXMgb24gMzJiaXRzLCBsZXNzIHRoYW4gMTZieXRlcyBvbiA2NGJpdHMpCisJICBkaXJlY3RseSB3aXRoaW4gdGhlIG5vZGUsIHZhcmlvdXMgY2hhbmdlcyB0byBjb3BlIHdpdGggdGhpcy4KKwkqIHJlc3VsdC9YUGF0aC90ZXN0cy8qIHJlc3VsdC9YUGF0aC94cHRyLyogcmVzdWx0L3htbGlkLyo6IHRoaXMgCisJICBzbGlnaHRseSBjaGFuZ2UgdGhlIG91dHB1dAorCitUaHUgQXVnIDI1IDEyOjE2OjI2IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcGF0Y2ggZnJvbSBBbmRyZXcgVy4gTm9zZW5rbywgdXNlIHNlICRHQ0MgPSAneWVzJworCSAgaW5zdGVhZCBvZiAkQ0MgPSAnZ2NjJyBiZWNhdXNlIEdDQyBtYXkgaGF2ZSBhIGRpZmZlcmVudCBuYW1lCisKK1RodSBBdWcgMjUgMDA6MTg6MjAgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBjaGFuZ2VzIHRoZSB3YXkgdGhlIHB5dGhvbiBiaW5hcnkgaXMgZm91bmQsIHNob3VsZAorCSAgYWxzbyBmaXggYnVnICMzMDgwMDQKKworV2VkIEF1ZyAyNCAxNjo0NDo0MSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZm91bmQgYW5vdGhlciBidWcgd2hpbGUgbG9va2luZyBhdCAjMzA5NjE2IG9uIG1pc3NpbmcKKwkgIGVudGl0aWVzLgorCSogcmVzdWx0L2VudDIuc2F4KiByZXN1bHQvZW50Ny5zYXgqIHJlc3VsdC94bWwyLnNheCo6IHRoaXMgY2hhbmdlZCB0aGUKKwkgIFNBWCBzdHJlYW0gaW4gbWlzc2luZyBjb25kaXRpb25zIGZvciBhIGZldyB0ZXN0cworCitXZWQgQXVnIDI0IDE2OjE5OjAwIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmM6IGFwcGxpZWQgdGhlIHBhdGNoIHN1Z2dlc3RlZCAjMzA5NTY1IHdoaWNoIGNhbiBhdm9pZAorCSAgbG9vcGluZyBpbiBlcnJvciBjb25kaXRpb25zLgorCitXZWQgQXVnIDI0IDE2OjA0OjE3IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYyB0cmVlLmM6IGxpbmUgbnVtYmVycyBhcmUgbm93IGNhcnJpZWQgYnkgbW9zdCBub2RlcywgZml4aW5nCisJICB4bWxHZXRMaW5lTm8oKSBjLmYuIGJ1ZyAjMzA5MjA1CisKK1dlZCBBdWcgMjQgMTQ6NDM6MzQgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYyBlcnJvci5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGZpbmFsbHkgY29udmVydGVkCisJICB0aGUgZW5jb2RpbmcgbW9kdWxlIHRvIHRoZSBjb21tb24gZXJyb3IgcmVwb3J0aW5nIG1lY2hhbmlzbQorCSogZG9jLyogZG9jL2h0bWwvbGlieG1sLXhtbGVycm9yLmh0bWw6IHJlYnVpbHQKKworV2VkIEF1ZyAyNCAxMTozNToyNiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiByZW1vdmVkIGEgcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBlcnJvcgorCSogcHl0aG9uL2dlbmVyYXRvci5weTogZml4ZWQgYSBkZXByZWNhdGlvbiB3YXJuaW5nCisJKiBweXRob24vdGVzdHMvdHN0TGFzdEVycm9yLnB5OiBzaWxlbnQgdGhlIGRhbW4gdGVzdCB3aGVuIE9rYXkgIQorCitXZWQgQXVnIDI0IDAwOjExOjE2IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYyBnbG9iYWxzLmMgcnVudGVzdC5jIHRlc3RDMTROLmMgdGVzdGFwaS5jIHRyZWUuYworCSAgaW5jbHVkZS9saWJ4bWwvU0FYMi5oIGluY2x1ZGUvbGlieG1sL3htbHJlZ2V4cC5oOiBmaXhlZCBjb21waWxhdGlvbgorCSAgd2hlbiBjb25maWd1cmVkIC0td2l0aG91dC1zYXgxIGFuZCBvdGhlciBjbGVhbnVwcyBmaXhlcyBidWcgIzE3MjY4MworCSogZG9jLyogZWxmZ2NjaGFjay5oOiByZWdlbmVyYXRlZAorCitUdWUgQXVnIDIzIDIwOjA1OjA1IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBidWcgIzE3MDQ4OSByZXBvcnRlZCBieSBKaXJrYSBLb3NlaworCSogdGVzdC92YWxpZC9vYmplZG5hdmthLnhtbCB0ZXN0L3ZhbGlkL2R0ZHMvb2JqZWRuYXZrYS5kdGQKKwkgIHJlc3VsdC92YWxpZC9vYmplZG5hdmthKjogYWRkZWQgdGhlIHRlc3QgdG8gdGhlIHJlZ3Jlc3Npb24gc3VpdGUuCisKK1R1ZSBBdWcgMjMgMTg6MDQ6MDggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL0hUTUxwYXJzZXIuaDogYWRkZWQgYSByZWNvdmVyeSBtb2RlCisJICBmb3IgdGhlIEhUTUwgcGFyc2VyIGJhc2VkIG9uIHRoZSBzdWdnZXN0aW9ucyBvZiBidWcgIzE2OTgzNCBieQorCSAgUGF1bCBMb2JlcmcKKworVHVlIEF1ZyAyMyAxNTozODo0NiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbGZnY2NoYWNrLmggdGVzdGFwaS5jIGRvYy8qOiByZWdlbmVyYXRlZAorCSogc2NoZW1hdHJvbi5jOiBmaXhlZCBhIGNvbXBpbGF0aW9uIHByb2JsZW0KKwkqIHhtbHJlZ2V4cC5jIGluY2x1ZGUvbGlieG1sL3htbHJlZ2V4cC5oOiBzb21lIGNsZWFudXBzIGFuZCBvbmUgYnVnIGZpeAorCSogcmVzdWx0L2V4cHIvYmFzZTogc2xpZ2h0bHkgY2hhbmdlcyB0aGUgbnVtYmVyIG9mIENvbnMuCisKK01vbiBBdWcgMjIgMjM6MTk6NTAgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZWxmZ2NjaGFjay5oIHRlc3RhcGkuYyBkb2MvKjogcmVzY2FubmVkIGNvZGUgYW5kIHJlYnVpbHQKKwkqIHhtbHJlZ2V4cC5jOiBzbWFsbCBjbGVhbnVwCisJKiBpbmNsdWRlL2xpYnhtbC9zY2hlbWF0cm9uLmggaW5jbHVkZS9saWJ4bWwveG1sZXhwb3J0cy5oCisJICBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46IGNsZWFudXAgcHJvYmxlbXMgZnJvbSBjb2RlIHNjYW5uZXIKKworTW9uIEF1ZyAyMiAxODowMDoxOCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogYXBwbGllZCBwYXRjaCBmcm9tIEt1YmEgTm93YWtvd3NraSBmaXhpbmcgYnVnCisJICAjMzEzOTgyCisJKiByZXN1bHQvc2NoZW1hcy9idWczMTM5ODIqIHRlc3Qvc2NoZW1hcy9idWczMTM5ODIqOiBhbHNvIGFkZGVkCisJICB0aGUgdGVzdCBjYXNlIHRvIHRoZSByZWdyZXNzaW9uIHN1aXRlLgorCitNb24gQXVnIDIyIDE3OjUwOjIwIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3RSZWdleHAuYzogcHJpbnRlZCB0aGUgd3Jvbmcgc3RyaW5nCisKK01vbiBBdWcgMjIgMTY6NDI6MDcgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdFJlZ2V4cC5jIHhtbHJlZ2V4cC5jIGluY2x1ZGUvbGlieG1sL3htbHJlZ2V4cC5oOiBleHBvcnRlZAorCSAgeG1sRXhwRXhwRGVyaXZlKCksIGFkZGVkIGl0IHRvIHRoZSB0ZXN0UmVnZXhwIGNvbW1hbmQgbGluZSAKKwkgIHRvb2wgd2hlbiBwcm92aWRpbmcgbXVsdGlwbGUgZXhwcmVzc2lvbnMuCisKK01vbiBBdWcgMjIgMTQ6NTc6MTMgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gcmVzdWx0L2V4cHIvYmFzZSB0ZXN0L2V4cHIvYmFzZTogYWRkZWQgdGhlIGZpcnN0CisJICByZWdyZXNzaW9uIHRlc3Qgc3VpdGUgc2V0IGZvciB0aGUgbmV3IGV4cHJlc3Npb24gc3VwcG9ydAorCitNb24gQXVnIDIyIDEzOjQ5OjE4IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGVkIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKKwkqIHhtbHJlZ2V4cC5jIGluY2x1ZGUvbGlieG1sL3htbHJlZ2V4cC5oOiBleHRlbmRlZCB0aGUgQVBJIHRvCisJICBhZGQgdGhlIHBhcnNlciwgc2VyaWFsaXplciBhbmQgc29tZSBkZWJ1Z2dpbmcKKwkqIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbjogbWFkZSB0aGUgbmV3IHN1cHBvcnQgY29tcGlsZWQKKwkgIGJ5IGRlZmF1bHQgaWYgU2NoZW1hcyBpcyBpbmNsdWRlZAorCSogdGVzdFJlZ2V4cC5jOiBjbGVhbnVwIGFuZCBpbnRlZ3JhdGlvbiBvZiB0aGUgZmlyc3QgcGFydCBvZiB0aGUKKwkgIG5ldyBjb2RlIHdpdGggYSBzcGVjaWFsIHN3aXRjaAorCSogeG1sbGludC5jOiBzaG93IHVwIEV4cHIgaW4gLS12ZXJzaW9uIGlmIGNvbXBpbGVkIGluCisJKiBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IG1vdmVkIHRoZSB4bWxCdWZmZXIgZGVmaW5pdGlvbiB1cAorCitNb24gQXVnIDIyIDEyOjExOjEwIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogU29tZSBwcmVwYXJhdGlvbiBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgZ3JhcGgKKwkgIG9mIGltcG9ydGVkL2luY2x1ZGVkL3JlZGVmaW5lZCBzY2hlbWFzOyB0aGlzIGlzIG5lZWRlZCBmb3IKKwkgIGF0IGxlYXN0IHRoZSByZWRlZmluaXRpb25zLgorCSAgQ2VudHJhbGl6ZWQgdGhlIGNyZWF0aW9uIG9mIHRoZSBwYXJzZXIgY29udGV4dCBpbiBvbmUgZnVuY3Rpb24uCisKK01vbiBBdWcgMjIgMDI6MTk6MzMgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmMgaW5jbHVkZS9saWJ4bWwveG1scmVnZXhwLmg6IHB1c2hpbmcgdGhlIGZvcm1hbCBleHByZXNzaW9uCisJICBoYW5kbGluZyBjb2RlIHRvIGhhdmUgaXQgaW4gQ1ZzIGZyb20gbm93LiBOb3QgcGx1Z2dlZCwgYW5kIG1pc3NlcyAKKwkgIEFQSXMgaXQncyBub3QgY29tcGlsZWQgaW4geWV0LgorCitTYXQgQXVnIDIwIDIzOjEzOjI3IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBhcHBsaWVkIGFub3RoZXIgcGF0Y2ggZnJvbSBSb2IgUmljaGFyZHMgdG8gZml4CisJICB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMgYW5kIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcworCitXZWQgQXVnIDE3IDA5OjA2OjMzIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gUm9iIFJpY2hhcmRzIHRvIGZpeCAKKwkgIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUgYmVoYXZpb3VyIHdpdGggbmFtZXNwYWNlIGRlY2xhcmF0aW9ucworCitGcmkgQXVnIDEyIDE0OjEyOjU2IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOgorCSAgQ2hhbmdlZCBvdXRwdXQgZm9yIGtleXJlZi1tYXRjaCBlcnJvcnM7IHRoZSB0YXJnZXQtbm9kZSB3aWxsCisJICBiZSBub3cgcmVwb3J0ZWQgcmF0aGVyIHRoYW4gdGhlIHNjb3BlLW5vZGUgb2YgdGhlIGtleXJlZgorCSAgZGVmaW5pdGlvbiAtIGFsbG93aW5nIGVhc2llciBjaGFzaW5nIG9mIGluc3RhbmNlIGVycm9ycy4KKwkgIFRoaXMgd2FzIHJlcG9ydGVkIGJ5IEd1eSBGYWJyaWNlIHRvIHRoZSBtYWlsaW5nIGxpc3QuCisJICBTb21lIGluaXRpYWwgcGFyc2luZyBjb2RlIGZvciBzY2hlbWEgcmVkZWZpbml0aW9ucy4KKwkqIHJlc3VsdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xXzEuZXJyCisJICByZXN1bHQvc2NoZW1hcy9idWczMTI5NTdfMV8wLmVycjogQWRhcHRlZCB0ZXN0IHJlc3VsdHMgZHVlCisJICB0byB0aGUga2V5cmVmIGNoYW5nZXMuCisKK0ZyaSBBdWcgMTIgMTI6MTc6NTIgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogYXBwbGllZCBwYXRjaCBmcm9tIERlcmVrIFBvb24gZml4aW5nIGJ1ZyAjMzEwNjkyCisKK1dlZCBBdWcgMTAgMjM6Mzk6MDIgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiBmaXggZm9yIGJ1ZyAjMzEyOTQ1IGFzIHBvaW50ZWQgYnkgRGVhbiBIaWxsLCB0aGUKKwkgIGNvbnRleHQgdHlwZSB3YXMgbm90IGFsd2F5cyBwcm9wZXJseSBpbml0aWFsaXplZC4gCisKK1dlZCBBdWcgMTAgMTg6MjE6NDEgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBmaXhlZCBidWcgIzMwNzM3NyBhYm91dCB2YWxpZGF0aW9uIG9mIGNob2ljZXMgaW4KKwkgIGxpc3QgdmFsdWVzLgorCSogdGVzdC9yZWxheG5nLzMwNzM3NyogcmVzdWx0L3JlbGF4bmcvMzA3Mzc3KiBNYWtlZmlsZS5hbSBydW50ZXN0LmM6CisJICBhZGRlZCBleGFtcGxlcyB0byB0aGUgcmVncmVzc2lvbiB0ZXN0cywgcHJvYmxlbSBpcyB0aGF0IHN0cmVhbWluZworCSAgdmVyc2lvbiBnaXZlcyBzbGlnaHRseSBtb3JlIGluZm9ybWF0aW9ucy4KKworV2VkIEF1ZyAxMCAxNToyNTo1MyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4aW5jbHVkZS5jOiBmaXhlZCBidWcgIzMwMjMwMiwgbmFzdHkgYnV0IHRoZSBmaXggaXMgcmF0aGVyIHNpbXBsZS4KKworV2VkIEF1ZyAxMCAxMTo1OTo0NiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiByZXN1bHQvc2NoZW1hcy9hbnk2XzFfMCo6IEFkZGVkIG1pc3NpbmcgdGVzdCByZXN1bHRzLgorCitUdWUgQXVnICA5IDIzOjM3OjIyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBmaXhlZCBhIGRldGVybWluaXNtIGRldGVjdGlvbiBwcm9ibGVtIGV4cG9zZWQgYnkKKwkgICMjb3RoZXIgdGVzdHMgY29tbWl0ZWQgYnkgS2FzaW1pZXIsIGFsc28gYWRkZWQgYSBzbWFsbCBzcGVlZHVwCisJICBvZiBkZXRlcm1pbmlzbSBkZXRlY3Rpb24uCisJKiB0ZXN0L3Jlc3VsdHMvYW55Nl8yXzAqIGFueThfMV8wKiBhbnk3XzFfMiogYW55N18yXzIqOiBhZGRlZCAKKwkgIHRoZSByZXN1bHRzIHRvIHRoZSByZWdyZXNzaW9uIHRlc3RzIG5vdworCitUdWUgQXVnICA5IDE1OjU0OjA5IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHRlc3Qvc2NoZW1hcy9hbnk3XzIueG1sIHRlc3Qvc2NoZW1hcy9hbnk2XzIueHNkCisJICB0ZXN0L3NjaGVtYXMvYW55OF8xLnhzZCB0ZXN0L3NjaGVtYXMvYW55OF8wLnhtbDoKKwkgIEFkZGVkIHNvbWUgbW9yZSB0ZXN0cyBmb3IgZWxlbWVudCB3aWxkY2FyZHMuCisKK1R1ZSBBdWcgIDkgMTQ6MjI6NDcgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBGaXhlZCAjMzEyOTU3IHJlcG9ydGVkIGJ5IENhcm9sIEh1bnRlcjoKKwkgIHN0cmVhbWluZyBYUGF0aCBzdGF0ZXMgd2VyZSBub3QgcG9wcGVkIGluIGV2ZXJ5IGNhc2UsCisJICB0aHVzIGZhaWxlZCB0byByZXNvbHZlIGNvcnJlY3RseSBmb3Igc3Vic2VxdWVudCBpbnB1dC4KKwkqIHRlc3Qvc2NoZW1hcy9idWczMTI5NTcqIHJlc3VsdC9zY2hlbWFzL2J1ZzMxMjk1Nyo6CisJICBBZGRlZCB0aGUgdGVzdCBzdWJtaXR0ZWQgYnkgQ2Fyb2wgSHVudGVyLgorCitUdWUgQXVnICA5IDEzOjA3OjI3IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jIHhtbHNjaGVtYXMuYzogdHJ5aW5nIHRvIG5haWwgZG93biB0aGUgcmVtYWluaW5nCisJICAjI290aGVyIGlzc3VlcworCSogcmVzdWx0L3NjaGVtYXMvYW55NyogdGVzdC9zY2hlbWFzL2FueTc6IGNvbXBsZXRlZCB0aGUgdGVzdHMKKwkgIGFuZCBhZGRlZCB0aGUgcmVzdWx0cworCSogcmVzdWx0L3NjaGVtYXMvYW55M18wXzAuZXJyIHJlc3VsdC9zY2hlbWFzL2FueTVfMF8wLmVycgorCSAgcmVzdWx0L3NjaGVtYXMvYW55NV8xXzAuZXJyOiB0aGlzIHNsaWdodGx5IGNobmFnZXMgdGhlIG91dHB1dAorCSAgZnJvbSAzIGV4aXN0aW5nIHRlc3RzCisKK01vbiBBdWcgIDggMjI6MzM6MDggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmMgeG1sc2NoZW1hc3R5cGVzLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSAKKwkgIE1hcmN1cyBCb2VyZ2VyIHRvIHJlbW92ZSB3YXJuaW5ncyBvbiBXaW5kb3dzLgorCitNb24gQXVnICA4IDE2OjQzOjA0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNhdmUuYyBpbmNsdWRlL2xpYnhtbC94bWxzYXZlLmg6IGZpeGVkICMxNDUwOTIgYnkgYWRkaW5nIAorCSAgYW4geG1sU2F2ZU9wdGlvbiB0byBvbWl0IFhNTCBkZWNsYXJhdGlvbgorCitNb24gQXVnICA4IDE1OjQ0OjU0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmM6IGZpeGVkIGJ1ZyAjMzEwMzMzIHdpdGggYSBwYXRjaCBjbG9zZSB0byB0aGUgcHJvdmlkZWQKKwkgIHBhdGNoIGZvciBIVE1MIFVURi04IHNlcmlhbGl6YXRpb24KKwkqIHJlc3VsdC9IVE1ML3NjcmlwdDIuaHRtbDogdGhpcyBjaGFuZ2VkIHRoZSBvdXRwdXQgb2YgdGhhdCB0ZXN0CisKK01vbiBBdWcgIDggMTU6MDE6NTEgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmM6IGZpeGVkIGJ1ZyAjMzEwMjY0LCBiYXNpY2FsbHkgaXQncyBhYm91dCByZWVudHJhbmN5CisJICBvZiBjb3VudCBiYXNlZCB0cmFuc2l0aW9uLCB3aGVuIGdvaW5nIHRob3VnaCB0aGUgY291bnRlciBtdXN0CisJICBiZSByZXNldCB0byAwCisJKiB0ZXN0L3NjaGVtYXMvYnVnMzEwMjY0KiByZXN1bHQvc2NoZW1hcy9idWczMTAyNjQqOiBhZGRlZCB0aGUKKwkgIHJlZ3Jlc3Npb24gdGVzdC4KKworTW9uIEF1ZyAgOCAxNDo0MDo1MiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEZpeGVkIGEgbWVtb3J5IGxlYWs6IHhtbFNjaGVtYUZyZWVBbm5vdCgpIHdhcworCSAgb25seSBmcmVlaW5nIHRoZSBmaXJzdCBhbm5vdGF0aW9uIGluIHRoZSBsaXN0LgorCitNb24gQXVnICA4IDA5OjQ0OjM0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gUm9iIFJpY2hhcmRzIGZpeGluZworCSAgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZQorCitNb24gQXVnICA4IDAxOjQxOjUzIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogZml4ZWQgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkgYWNjZXNzIHNwb3R0ZWQgYnkKKwkgIHZhbGdyaW5kCisKK1N1biBBdWcgIDcgMTI6Mzk6MzUgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdC9yZWxheG5nL2RvY2Jvb2tfMC54bWw6IGdldCByaWQgb2YgdGhlIGRlcGVuZGFuY3kgb24gYSBsb2NhbGx5CisJICBpbnN0YWxsZWQgRFRECisJKiB1cmkuYyBpbmNsdWRlL2xpYnhtbC91cmkuaCB4bWxJTy5jIG5hbm9mdHAuYyBuYW5vaHR0cC5jOiB0cnkgdG8KKwkgIGNsZWFudXAgdGhlIFBhdGgvVVJJIGNvbnZlcnNpb24gbWVzcywgbmVlZGVkIGZpeGluZyBpbiB2YXJpb3VzIAorCSAgbGF5ZXJzIGFuZCBhIG5ldyBBUEkgdG8gdGhlIHVyaSBtb2R1bGUgd2hpY2ggYWxzbyBmaXhlcyAjMzA2ODYxCisJKiBydW50ZXN0LmM6IGludGVncmF0ZWQgYSByZWdyZXNzaW9uIHRlc3Qgc3BlY2lmaWMgdG8gY2hlY2sgdGhlCisJICBVUkkgY29udmVyc2lvbnMgZG9uZSBiZWZvcmUgY2FsbGluZyB0aGUgSS9PIGhhbmRsZXJzLgorCitTYXQgQXVnICA2IDExOjA2OjI0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9YU0xULmh0bWwgZG9jL3htbC5odG1sOiBzbWFsbCBkb2MgZml4IGZvciAjMzEyNjQ3CisKK1R1ZSBBdWcgIDIgMTM6MjY6NDIgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogd2luMzIvY29uZmlndXJlLmpzOiBhcHBsaWVkIHBhdGNoIGZyb20gUm9iIFJpY2hhcmRzIHRvIGFsbG93CisJICBkaXNhYmxpbmcgbW9kdWxlcyBpbiB3aW4zMiwgZml4ZXMgIzMwNDA3MQorCitNb24gQXVnICAxIDA3OjE4OjUzIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwuYzogYXBwbGllZCBmaXggZnJvbSBKYWt1YiBQaW90ciBDbGFwYSBmb3IKKwkgIHhtbEF0dHIucGFyZW50KCksIGNsb3NpbmcgIzMxMjE4MQorCitTdW4gSnVsIDMxIDE4OjQ4OjU1IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHNjaGVtYXRyb24uYzogcmVwb3J0IGltcHJvdmVtZW50CisJKiB0ZXN0L3NjaGVtYXRyb24venZvbiogcmVzdWx0L3NjaGVtYXRyb24venZvbio6IG1vcmUgdGVzdHMKKworU3VuIEp1bCAzMSAxNjowMjo1OSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9NYWtlZmlsZS5tc3ZjIHdpbjMyL2NvbmZpZ3VyZS5qczogYXBwbGllZCBwYXRjaCBmcm9tIFJvYgorCSAgUmljaGFyZHMgdG8gYWRkIHNjaGVtYXRyb24gdG8gdGhlIGJ1aWxkIG9uIFdpbmRvd3MKKwkqIHRlc3Qvc2NoZW1hdHJvbi96dm9uMyogcmVzdWx0L3NjaGVtYXRyb24venZvbjMqOiBzZWNvbmQgdGVzdAorCSogdGVzdC9zY2hlbWF0cm9uL3p2b24xMCogcmVzdWx0L3NjaGVtYXRyb24venZvbjEwKjogdGhpcyBpcyB0aGUKKwkgIHJlYWwgc2Vjb25kIHRlc3QgMTAgYW5kIDIgYXJlIHN3YXBwZWQuCisKK1N1biBKdWwgMzEgMTU6NDI6MzEgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogc2NoZW1hdHJvbi5jOiBtb3JlIGJ1ZyBmaXhlcywgaW1wcm92ZSB0aGUgZXJyb3IgcmVwb3J0aW5nLgorCSogdGVzdC9zY2hlbWF0cm9uL3p2b24yKiByZXN1bHQvc2NoZW1hdHJvbi96dm9uMio6IHNlY29uZCB0ZXN0CisKK1N1biBKdWwgMzEgMTQ6MTU6MzEgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogc2NoZW1hdHJvbi5jIHhtbGxpbnQuYzogZml4aW5nIHRoZSBsb29wIGJ1ZywgZml4aW5nIHNjaGVtYXRyb24KKwkgIHRleHQgZXJyb3IgcmVuZGVyaW5nCisJKiBNYWtlZmlsZS5hbSByZXN1bHQvc2NoZW1hdHJvbi8qIHRlc3Qvc2NoZW1hdHJvbi96dm9uMSouc2N0OgorCSAgc3RhcnRlZCBpbnRlZ3JhdGluZyB3aXRoaW4gIm1ha2UgdGVzdHMiCisKK1NhdCBKdWwgMzAgMTc6MjY6NTggRURUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0L3NjaGVtYXRyb24vKjogYSBmZXcgZmlyc3QgdGVzdHMgZnJvbSBadm9uIHVuZm9ydHVuYXRlbHkKKwkgIHdpdGggdGhlIG9sZCBzeW50YXgKKworU2F0IEp1bCAzMCAxNzowODowNyBFRFQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHNjaGVtYXRyb24uYyB4bWxsaW50LmMgaW5jbHVkZS9saWJ4bWwvc2NoZW1hdHJvbi5oOiBjb21taXRpbmcKKwkgIHdvcmsgZG9uZSBvbiB0aGUgcGxhbmUgbGFzdCB3ZWVrLWVuZAorCitTYXQgSnVsIDMwIDE1OjE2OjI5IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnRlc3QuYzogYWxsb3dzIGFuIGV4dHJhIGFyZ3VtZW50IHRvIHN1YnNldCB0aGUgdGVzdHMKKwkqIHhtbHJlZ2V4cC5jOiBiaWcgc3BlZWR1cCBmb3IgdmFsaWRhdGlvbiwgYmFzaWNhbGx5IGF2b2lkZWQKKwkgIHRyYW5zaXRpb24gY3JlYXRpb24gZXhwbG9zaW9uIHdoZW4gcmVtb3ZpbmcgZXBzaWxvbiB0cmFuc2l0aW9uCisJICAKK1NhdCBKdWwgMzAgMDA6MDA6NDYgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gZ2xvYmFscy5jIHBhcnNlckludGVybmFscy5jIHhtbHJlYWRlci5jIHhtbHVuaWNvZGUuYworCSAgeG1sd3JpdGVyLmM6IG1vcmUgY2xlYW51cHMgYmFzZWQgb24gc3BhcnNlIHJlcG9ydHMsIGFkZGVkIAorCSAgIm1ha2Ugc3BhcnNlIgorCitGcmkgSnVsIDI5IDEyOjExOjI1IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwuYzogZG9uJ3Qgb3V0cHV0IGFueSBtZXNzYWdlIG9uIGZhaWxlZCByZXNvbHZlciBsb29rdXBzLAorCSAgYmV0dGVyIGRvbmUgYnkgdGhlIHB5dGhvbiB1c2VyIHByb3ZpZGVkIHJlc29sdmVyIGxheWVyLgorCitGcmkgSnVsIDI5IDAxOjQ4OjAyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyBTQVgyLmMgZW5jb2RpbmcuYyBnbG9iYWxzLmMgcGFyc2VyLmMgcmVsYXhuZy5jCisJICBydW5zdWl0ZS5jIHJ1bnRlc3QuYyBzY2hlbWF0cm9uLmMgdGVzdEhUTUwuYyB0ZXN0UmVhZGVyLmMKKwkgIHRlc3RSZWdleHAuYyB0ZXN0U0FYLmMgdGVzdFRocmVhZHMuYyB2YWxpZC5jIHhpbmNsdWRlLmMgeG1sSU8uYworCSAgeG1sbGludC5jIHhtbG1vZHVsZS5jIHhtbHNjaGVtYXMuYyB4cGF0aC5jIHhwb2ludGVyLmM6IGEgbG90IG9mIAorCSAgc21hbGwgY2xlYW51cHMgYmFzZWQgb24gTGludXMnIHNwYXJzZSBjaGVjayBvdXRwdXQuCisKK1RodSBKdWwgMjggMjE6Mjg6MzMgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW06IGFkZGVkIHNjaGVtYXRyb24uaCwgb29wcyAuLi4KKworVGh1IEp1bCAyOCAwMjozODoyMSBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogQWRkZWQgY3JlYXRpb24gb2YgdGhlIGNvbnRlbnQgdHlwZSBvZgorCSAgeHM6YW55VHlwZS4gVGhpcyBpcyBuZWVkZWQgd2hlbiB0cnlpbmcgdG8gZXh0ZW5kIHhzOmFueVR5cGUKKwkgIChhbHRob3VnaCBpdCBtYWtlcyBubyBzZW5zZSB0byBleHRlbmQgaXQ7IElNSE8gdGhlIHNjaGVtYQorCSAgcGVvcGxlIHNob3VsZCBoYXZlIHJ1bGVkIHRoaXMgb3V0KS4gVGhpcyB3YXMgcmVwb3J0ZWQKKwkgIGJ5IFlvbmcgQ2hlbiB0byB0aGUgbWFpbGluZyBsaXN0LgorCSogeG1sc2NoZW1hcy5jOiBGaXhlZCBoYW5kbGluZyBvZiB4czphbnlUeXBlIGluCisJICB4bWxTY2hlbWFDaGVja0NPU0NURXh0ZW5kcygpIChyZXBvcnRlZCBieSBZb3VuZyBDaGVuKS4gVGlueQorCSAgYWRqdXN0bWVudCB0byBhbiBlcnJvciByZXBvcnQgb3V0cHV0LgorCSogdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjIqIHJlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjIqOgorCSAgQWRkZWQgYSB0ZXN0IGNhc2UgcHJvdmlkZWQgYnkgWW91bmcgQ2hlbi4KKworTW9uIEp1bCAyNSAxMTo0MToxOCBQRFQgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdXJpLmM6IGVuaGFuY2VkIHhtbEJ1aWxkUmVsYXRpdmVVUkkgdG8gYWxsb3cgdGhlIFVSSSBhbmQgdGhlCisJICBiYXNlIHRvIGJlIGluICJyZWxhdGl2ZSIgZm9ybQorCitTdW4gSnVsIDI0IDEwOjI1OjQxIEVEVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogc2NoZW1hdHJvbi5jIHhtbGxpbnQuYzogc3RhcnRlZCBhZGRpbmcgc2NoZW1hdHJvbiB0byB0aGUgeG1sbGludAorCSAgdG9vbCwgdGhlIHJlcG9ydCBpbmZyYXN0cnVjdHVyZSBpcyBnb25uYSBiZSBmdW4uCisKK1NhdCBKdWwgMjMgMjM6MjM6NTEgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9zY2hlbWFzL2FueTYqIHRlc3Qvc2NoZW1hcy9hbnk3KjogQWRkZWQgcmVncmVzc2lvbiB0ZXN0cworCSAgKHRoZXkgZmFpbCBjdXJyZW50bHkpLCBidXQgZGlkIG5vdCBhZGRlZCByZXN1bHRzIHlldC4KKworU2F0IEp1bCAyMyAyMzowNzowNSBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IFJlbW92ZWQgdGhlIHdvcmthcm91bmQgY29kZSBpbgorCSAgeG1sU2NoZW1hVmFsaWRhdGVFbGVtV2lsZGNhcmQoKSBmb3IgdGhlIDxhbnk+IHdpbGRjYXJkCisJICB3aXRoIG5hbWVzcGFjZSA9PSAjI290aGVyLiBTdXBwb3J0IGZvciBzdWNoIHdpbGRjYXJkcyB3YXMKKwkgIGltcGxlbWVudGVkIGJ5IERhbmllbCBhdCB0aGUgYXV0b21hdG9uIGxldmVsIHJlY2VudGx5LCBhbmQKKwkgIHRoZSB3b3JrYXJvdW5kIGNvZGUgaXRlcmZlcmVkIHdpdGggaXQuCisKK1NhdCBKdWwgMjMgMTA6NTU6NTAgRURUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXR0ZXJuLmMgaW5jbHVkZS9saWJ4bWwvcGF0dGVybi5oOiBjaGFuZ2VkIHhtbFBhdHRlcm5jb21waWxlCisJICBzaWduYXR1cmUgdG8gcGFzcyBhbiBpbnQgYW5kIG5vdCBhbiBlbnVtIHNpbmNlIGl0IGNhbiBnZW5lcmF0ZQorCSAgQUJJIGNvbXBhdCB0cm91Ymxlcy4KKwkqIGluY2x1ZGUvbGlieG1sL3NjaGVtYXRyb24uaCBzY2hlbWF0cm9uLmM6IGFkZGluZyB0aGUgbmV3IAorCSAgc2NoZW1hdHJvbiBjb2RlLCB3b3JrIGluIHByb2dyZXNzIGxvdHMgdG8gYmUgbGVmdCBhbmQgbmVlZGluZworCSAgdGVzdGluZworCSogaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oLmluCisJICBNYWtlZmlsZS5hbSBjb25maWd1cmUuaW46IGludGVncmF0aW9uIG9mIHNjaGVtYXRyb24gaW50byB0aGUKKwkgIGJ1aWxkCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoLmg6IGFkZGluZyBmbGFncyB0byBjb250cm9sIGNvbXBpbGF0aW9uCisJICBvcHRpb25zIHJpZ2h0IG5vdyBqdXN0IFhNTF9YUEFUSF9DSEVDS05TLgorCitTYXQgSnVsIDIzIDE2OjM5OjM1IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogUmVtb3ZlZCBhbiAiaW50ZXJuYWwgZXJyb3IiIG1lc3NhZ2UgZnJvbQorCSAgeG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsKCkgd2hlbiBhbiBlbXB0eSBtb2RlbCBncm91cAorCSAgZGVmaW5pdGlvbiBpcyBoaXQuCisKK1NhdCBKdWwgMjMgMDA6MzQ6MDcgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcGF0dGVybi5jOiBDaGFuZ2VkIHhtbENvbXBpbGVTdGVwUGF0dGVybigpIGFuZAorCSAgeG1sQ29tcGlsZUF0dHJpYnV0ZVRlc3QoKSB0byBoYW5kbGUgdGhlICJ4bWwiIHByZWZpeCB3aXRob3V0CisJICBjYXJpbmcgaWYgdGhlIFhNTCBuYW1lc3BhY2Ugd2FzIHN1cHBsaWVkIGJ5IHRoZSB1c2VyLgorCitGcmkgSnVsIDIyIDAwOjA4OjQzIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoKSwgd2hpY2ggZGlkIG5vdAorCSAgb3V0cHV0IHRoZSBnaXZlbiBzdHJpbmcgYXJndW1lbnRzIGNvcnJlY3RseS4KKworVGh1IEp1bCAyMSAwOToyMTowMCBFRFQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVycm9yLmMgZ2xvYmFscy5jIHBhcnNlci5jIHJ1bnRlc3QuYyB0ZXN0SFRNTC5jIHRlc3RTQVguYworCSAgdGhyZWFkcy5jIHZhbGlkLmMgeG1sbGludC5jIHhtbHJlYWRlci5jIHhtbHNjaGVtYXMuYyB4bWxzdHJpbmcuYworCSAgeG1sd3JpdGVyLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmggaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oCisJICBpbmNsdWRlL2xpYnhtbC92YWxpZC5oIGluY2x1ZGUvbGlieG1sL3htbElPLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmggaW5jbHVkZS9saWJ4bWwveG1sZXhwb3J0cy5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6IGFwcGxpZWQgYSBwYXRjaCBmcm9tIE1hcmN1cyBCb2VyZ2VyCisJICB0byBmaXggcHJvYmxlbXMgd2l0aCBjYWxsaW5nIGNvbnZlbnRpb25zIG9uIFdpbmRvd3MgdGhpcyBzaG91bGQKKwkgIGZpeCAjMzA5NzU3CisKK1dlZCBKdWwgMjAgMTQ6NDU6MzkgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFuIG9wdGltaXphdGlvbiBvZiB0aGUgY2hhciBkYXRhIGlubmVyIGxvb3AsCisJICBjYW4gZ2FpbiB1cCB0byAxMCUgaW4gcHVyZSBTQVgyIHBhcnNpbmcgc3BlZWQKKwkqIHhtbHNjaGVtYXMuYzogYXBwbGllZCBwYXRjaCBmcm9tIEt1cHJpeWFub3YgQW5hdG9saWogZml4aW5nCisJICBhIGJ1ZyBpbiBYTUwgU2NoZW1hcyBmYWNldCBjb21wYXJpc29uICMzMTA4OTMKKworVHVlIEp1bCAxOSAxNzoyNzoyNiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmM6IGZpeGVkIHRoZSBlcnJvciByZXBvcnRpbmcgZm9yCisJICBub3QgdHJhbnNpdGlvbnMKKwkqIHJlc3VsdC9zY2hlbWFzL2FueTVfMF8wKiByZXN1bHQvc2NoZW1hcy9hbnk1XzBfMioKKwkgIHJlc3VsdC9zY2hlbWFzL2FueTVfMV8wKjogZml4ZWQgb3V0cHV0CisKK1R1ZSBKdWwgMTkgMTU6MzQ6MTIgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmMgeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3htbGF1dG9tYXRhLmg6IGZpeGluZworCSAgYnVnICMxNzIyMTUgYWJvdXQgZm9yZWlnbiBuYW1lc3BhY2VzIGJ5IGFkZGluZyBzdXBwb3J0IGZvcgorCSAgbmVnYXRlZCBzdHJpbmcgdHJhbnNpdGlvbnMuIEVycm9yIG1lc3NhZ2VzIHN0aWxsIG5lZWQgdG8gYmUKKwkgIGltcHJvdmVkLgorCSogdGVzdC9zY2hlbWFzL2FueTUqIHJlc3VsdC9zY2hlbWFzL2FueTUqOiBhZGRpbmcgcmVncmVzc2lvbgorCSAgdGVzdHMgZm9yIHRoaXMuCisKK1R1ZSBKdWwgMTkgMTI6MzM6MzEgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gQWxleGFuZGVyIFBvaG95ZGEgZml4aW5nIHhtbEdldE5vZGVQYXRoCisJICBvbiBuYW1lc3BhY2VkIGF0dHJpYnV0ZXMgIzMxMDQxNy4KKworTW9uIEp1bCAxOCAyMzowMToxNSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MveG1sbGludC4xIGRvYy94bWxsaW50Lmh0bWwgZG9jL3htbGxpbnQueG1sOiAtLW5vbmV0IHdhcworCSAgZHVjcGxpY2F0ZWQKKworTW9uIEp1bCAxOCAyMDo0OToyOCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeGVkIHhzZDphbGwgd2hlbiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGgKKwkgIHN1YnN0aXR1dGlvbiBncm91cHMKKwkqIHRlc3Qvc2NoZW1hcy9hbGxzZ18qIHJlc3VsdC9zY2hlbWFzL2FsbHNnXyo6IGFkZGluZyBzcGVjaWZpYworCSAgcmVncmVzc2lvbiB0ZXN0cywgc3RyYW5nZWx5IG1pc3NpbmcgZnJvbSBOSVNUL1N1bi9NaWNyb3NvZnQKKwkgIHRlc3RzdWl0ZXMKKworU3VuIEp1bCAxNyAwNzoxMToyNyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeGVkIGJ1ZyAjMzA3NTA4LCBhIGJhZCBhdXRvbWF0YSB3YXMgYnVpbHQgYnV0CisJICB0aGlzIHNob3dlZCBhcyBhbiBpbmRldGVybWluaXN0IHJlc3VsdAorCitUaHUgSnVsIDE0IDE3OjUzOjAyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBmb3VuZCB0aGUgbGFzdCBidWcgcmFpc2VkIGJ5IE5JU1QgdGVzdHMgaW4KKwkgIGNvbXBhcmluZyBiYXNlNjQgc3RyaW5ncywgcmVzdWx0IGZyb20gcnVuc3VpdGU6CisJICAjIyBOSVNUIHRlc3Qgc3VpdGUgZm9yIFNjaGVtYXMgdmVyc2lvbiBOSVNUMjAwNC0wMS0xNAorCSAgUmFuIDIzMTcwIHRlc3RzICgzOTUzIHNjaGVtYXRhKSwgbm8gZXJyb3JzCisKK1RodSBKdWwgMTQgMTQ6NTc6MzYgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdFJlZ2V4cC5jOiBmaXhlZCB3aGVyZSB4bWxNZW1vcnlEdW1wKCkgc2hvdWxkIGJlIGNhbGxlZC4KKwkqIHhtbHJlZ2V4cC5jOiBmaXhlZCBoYW5kbGluZyBvZiB7MH0sIFxuLCBcciBhbmQgXHQsIHR3byBidWdzCisJICBhZmZlY3RpbmcgTklTVCByZWdyZXNzaW9uIHRlc3RzCisKK1RodSBKdWwgMTQgMTE6MzA6MjQgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBhcHBsaWVkIGEgcGF0Y2ggZnJvbSBHZXJyaXQgUC4gSGFhc2UgdG8gYWRkCisJICBtb2R1bGUgc3VwcG9ydCBvbiBjeWd3aW4KKworVGh1IEp1bCAxNCAxMDo1Njo0MiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVycnVuIGVycm9yIGludHJvZHVjZWQKKwkgIG9uIGxhc3QgY29tbWl0IHRvIGh0bWxQYXJzZVNjcmlwdCgpIGMuZi4gIzMxMDIyOQorCitUaHUgSnVsIDE0IDIzOjQ4OjE3IFBEVCAyMDA1IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBDaGFuZ2VkIHRoZSBiZWhhdmlvdXIgb2YgeG1sWFBhdGhFcXVhbE5vZGVTZXRGbG9hdCB0bworCSAgcmV0dXJuIFRSVUUgaWYgYSBub2Rlc2V0IHdpdGggYSBudW1lcmljIHZhbHVlIG9mIE5hTiBpcyBjb21wYXJlZAorCSAgZm9yIGluZXF1YWxpdHkgd2l0aCBhbnkgbnVtZXJpYyB2YWx1ZSAoYnVnIDMwOTkxNCkuCisJICAKK1RodSBKdWwgMTQgMDE6MDM6MDMgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYyByZWxheG5nLmMgeG1scmVhZGVyLmMgeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3JlbGF4bmcuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oOiBhcHBsaWVkIHBhdGNoIGZyb20gTWFyY3VzIEJvZXJnZXIKKwkgIHRvIHJvdXRlIHJlbGF4bmcgYW5kIHNjaGVtYXMgZXJyb3IgbWVzc2FnZXMgd2hlbiB1c2luZyB0aGUgcmVhZGVyCisJICB0aHJvdWdoIHRoZSBzdHJ1Y3R1cmVkIGludGVyZmFjZSBpZiBhY3RpdmF0ZWQuCisJKiBlbGZnY2NoYWNrLmggZG9jLyogdGVzdGFwaS5jOiByZWJ1aWx0IHNpbmNlIHRoaXMgYWRkICBuZXcgQVBJcworCSAgdG8gdGVzdC4KKworV2VkIEp1bCAxMyAxODozNTo0NyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFwcGxpZWQgVVRGLTggc2NyaXB0IHBhcnNpbmcgYnVnICMzMTAyMjkgZml4IGZyb20KKwkgIEppcmkgTmV0b2xpY2t5IAorCSogcmVzdWx0L0hUTUwvc2NyaXB0Mi5odG1sKiB0ZXN0L0hUTUwvc2NyaXB0Mi5odG1sOiBhZGRlZCB0aGUgdGVzdAorCSAgY2FzZSBmcm9tIHRoZSByZWdyZXNzaW9uIHN1aXRlCisKK1R1ZSBKdWwgMTIgMTc6MDg6MTEgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFub2h0dHAuYzogZml4ZWQgYnVnICMzMTAxMDUgd2l0aCBodHRwX3Byb3h5IGVudmlyb25tZW50cyB3aXRoCisJICBwYXRjaCBwcm92aWRlZCBieSBQZXRlciBCcmVpdGVubG9obmVyCisKK01vbiBKdWwgMTEgMDA6Mjg6MTAgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gTkVXUyBjb25maWd1cmUuaW4gZG9jLyo6IHByZXBhcmluZyByZWxlYXNlIDIuNi4yMCAKKwkqIHhtbGxpbnQuYzogcmVtb3ZlZCBhIGNvbXBpbGF0aW9uIHByb2JsZW0KKworU3VuIEp1bCAxMCAyMzozMzo0MSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4c3RjL01ha2VmaWxlLmFtIFJFQURNRSBSRUFETUUudGVzdHMgTWFrZWZpbGUudGVzdHMgTWFrZWZpbGUuYW06CisJICBwcmVwYXJpbmcgdG8gbWFrZSB0ZXN0c3VpdGUgcmVsZWFzZXMgYWxvbmcgd2l0aCBjb2RlIHNvdXJjZSByZWxlYXNlcworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IGZpeGVkIGEgY291cGxlIG9mIHByb2JsZW0gaW50cm9kdWNlZCBieQorCSAgdGhlIG5ldyBTY2hlbWFzIHN1cHBvcnQgZm9yIFJlYWRlcnMKKwkqIHhwYXRoLmM6IGZpeGVkIHRoZSBYUGF0aCBhdHRyaWJ1dGU6OiBidWcgIzMwOTU4MCwgIzMwOTg2NCBpbiBhIGNydWRlCisJICBidXQgc2ltcGxlIHdheS4KKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IGZpeGVkIGEgY291cGxlIG9mIHByb2JsZW1zCisJICByYWlzZWQgYnkgdGhlIGRvYyBidWlsZGVyLgorCSogZG9jLyo6IG1hZGUgcmVidWlsZAorCitTdW4gSnVsIDEwIDIxOjUxOjE2IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogZml4ZWQgYSBidWcgaW50cm9kdWNlZCBvbiBsYXN0IGNvbW1pdAorCitTdW4gSnVsIDEwIDIxOjAwOjU0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy94bWxsaW50LjEgZG9jL3htbGxpbnQuaHRtbCBkb2MveG1sbGludC54bWw6IGZpeGVkIGEgdHlwbworCSAgcG9pbnRlZCBieSBKZXJvZW4gUnVpZ3JvaworCSogaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmggaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oOiBpbmNyZWFzZWQKKwkgIHRoZSBBUElzIGZvciB4bWxSZWFkZXIgc2NoZW1hcyB2YWxpZGF0aW9uIHN1cHBvcnQKKwkqIHhtbGxpbnQuYyB4bWxyZWFkZXIuYyB4bWxzY2hlbWFzLmM6IHhtbFJlYWRlciBzY2hlbWFzIHZhbGlkYXRpb24KKwkgIGltcGxlbWVudGF0aW9uIGFuZCB0ZXN0aW5nIGFzIHhtbGxpbnQgLS1zdHJlYW0gLS1zY2hlbWEgLi4uCisKK1N1biBKdWwgMTAgMTY6MTE6MjYgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmguaW46IHRyeSB0byBhdm9pZCBjb25mbGljdHMuCisKK1NhdCBKdWwgIDkgMTk6Mjk6MTAgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeCBmb3IgIzMwOTc2MSBmcm9tIER5bGFuIFNoZWxsICAKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6IGFkZGVkIHhtbFNjaGVtYVNBWFBsdWcKKwkgIGFuZCB4bWxTY2hlbWFTQVhVbnBsdWcgZ2VuZXJpYyBBUElzIGZvciBTQVggU2NoZW1hcyB2YWxpZGF0aW9uLgorCSogeG1sbGludC5jOiBjb3VwbGUgb2YgZml4ZXMgcGx1cyBhZGRlZCBkZXNjcmlwdGlvbnMgZm9yIC0tc2F4IGFuZAorCSAgLS1zYXgxCisKK0ZyaSBKdWwgIDggMjM6MzU6MDAgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBBZGRlZCBjLXByb3BzLWNvcnJlY3QgY29uc3RyYWludCB0byBjaGVjaworCSAgZm9yIGVxdWFsIGNhcmRpbmFsaXR5IG9mIGtleXJlZi9rZXkuCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBBZGRlZCBhbiBlcnJvciBjb2RlLgorCitGcmkgSnVsICA4IDIxOjU2OjA0IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHBhdHRlcm4uYzogRml4ZWQgZXZhbHVhdGlvbiBvZiBhdHRyaWJ1dGVzLiBBY3R1YWxseSBvbmx5CisJICBhdHRyaWJ1dGUgYXQgdGhlIGZpcnN0IGxldmVsIHdlcmUgZXZhbHVhdGVkIChlLmcuICJAYXR0ciIpOworCSAgZXhwcmVzc2lvbiBsaWtlICJmb28vQGF0dHIiIGFsd2F5cyBmYWlsZWQuCisKK0ZyaSBKdWwgIDggMjA6MDQ6MjkgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiB0aW55IGZpeCBpbiB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSgpIGlmIGEKKwkgIHVzZXItcHJvdmlkZWQgU0FYIGhhbmRsZXIgaXMgZ2l2ZW4uCisKK0ZyaSBKdWwgIDggMTk6MjU6MjYgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeCBzb21lIHBvdGVudGlhbCBsZWFrcyBpbiBlcnJvciBjYXNlcy4KKwkqIHhtbGxpbnQuYzogYWRkZWQgLS1zYXgsIHRvIGFsbG93IHRlc3Rpbmcgb2YgLS1zY2hlbWFzIC0tc2F4IGFuZAorCSAgdmFyaW91cyBvdGhlciBjb21iaW5hdGlvbnMuCisJKiB4bWxzY2hlbWFzLmM6IGZpeCBhIGNvdXBsZSBvZiB0aW55IHByb2JsZW1zIGluCisJICB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSgpCisKK0ZyaSBKdWwgIDggMTg6MzQ6MjIgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKwkKKwkqIHhtbHNjaGVtYXMuYzogQ2hhbmdlZCB4bWxTY2hlbWFWYWxpZGF0ZUZpbGUoKSB0byB1c2UKKwkgIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtKCkgaW50ZXJuYWxseS4KKworRnJpIEp1bCAgOCAxNzowMjoxNCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0L3JlbGF4bmcvZG9jYm9va18wLnhtbDogYWRkZWQgdGhlIG1pc3NpbmcgZW50aXR5IHRvIHRoZQorCSAgZG9jdW1lbnQgaW50ZXJuYWwgc3Vic2V0IHRvIGF2b2lkIGVycm9ycyBpZiB0aGUgRG9jQm9vayBjYXRhbG9ncworCSAgYXJlIG5vdCB0aGVyZQorCSogeG1sc2NoZW1hcy5jOiBmaXJzdCBjdXQgYXQgaW1wbGVtZW50aW5nIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtKCkKKwkgIHVudGVzdGVkIHlldAorCitXZWQgSnVsICA2IDE1OjQ1OjQ4IFBEVCAyMDA1IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXJzZXIuYzogZml4ZWQgcHJvYmxlbSB3aXRoIGZyZWUgb24gZHVwbCBhdHRyaWJ1dGUgaW4KKwkgIGR0ZCAoYnVnMzA5NjM3KS4KKwkqIHRlc3QvZXJyb3JzL2F0dHIzLnhtbCwgcmVzdWx0L2Vycm9ycy9hdHRyMy4qOiBhZGRlZAorCSAgcmVncmVzc2lvbiB0ZXN0IGZvciB0aGlzCisKK1dlZCBKdWwgIDYgMTM6MTE6MzUgUERUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHdpbjMyL01ha2VmaWxlLm1zdmM6IHRyeSBhZ2FpbiB0byBmaXggZmlsZSBmb3JtYXQgZm9yIFdpbmRvd3MKKworV2VkIEp1bCAgNiAxMjoyMDoxMyBQRFQgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogd2luMzIvTWFrZWZpbGUubXN2YzogcmVtb3ZlZCBzcHVyaW91cyBeTQorCSogcnVudGVzdC5jOiBhZGRlZCBjaGVjayBmb3Igb3B0aW9uIE9fQklOQVJZCisJKiB0ZXN0L3NjaGVtYXMvYnVnMzA5MzM4KiwgcmVzdWx0L3NjaGVtYXMvYnVnMzA5MzM4KjogY2hhbmdlZAorCSAgc3RpY2t5IHRhZyB0byAnYmluYXJ5JworCitXZWQgSnVsICA2IDEwOjM4OjAyIFBEVCAyMDA1IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkZWJ1Z1hNTC5jOiBleGNsdWRlZCBjb250ZW50IHN0cmluZyBjaGVjayBmb3IgWE1MX0VMRU1FTlRfREVDTAorCSAgaW4geG1sQ3R4dEdlbmVyaWNOb2RlQ2hlY2sKKwkqIHJ1bnRlc3QuYzogY2hhbmdlZCAib3BlbiIgY2FsbHMgdG8gaW5jbHVkZSBPX0JJTkFSWSBmb3IgV2luZG93cworCitXZWQgSnVsICA2IDE3OjE0OjAzIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhpbmcgYnVnICMxNjY3NzcgKGFuZCAjMTY5ODM4KSwgaXQgd2FzIGFuIGhldXJpc3RpYworCSAgaW4gYXJlQmxhbmtzIHdoaWNoIGZhaWxlZC4KKwkqIHJlc3VsdC93aW5ibGFua3MueG1sKiByZXN1bHQvbm9lbnQvd2luYmxhbmtzLnhtbCB0ZXN0L3dpbmJsYW5rcy54bWw6CisJICBhZGRlZCB0aGUgaW5wdXQgZmlsZSB0byB0aGUgcmVncmVzc2lvbiB0ZXN0cworCitXZWQgSnVsICA2IDEzOjQwOjIyIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBGaXhlZCBidWcgIzMwOTMzOCwgcmVwb3J0ZWQgYnkgS3Vwcml5YW5vdgorCSAgQW5vdG9saWouCisJKiB0ZXN0L3NjaGVtYXMvYnVnMzA5MzM4KiByZXN1bHQvc2NoZW1hcy9idWczMDkzMzgqOgorCSAgQWRkZWQgYSByZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBhYm92ZSBidWcuCisKK1R1ZSBKdWwgIDUgMTY6MDM6MDUgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGZpcnN0IHN0ZXBzIHRvd2FyZCBhIHRlc3RzdWl0ZSBkaXN0CisJKiBTQVgyLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogZml4ZWQgYnVnICMzMDc4NzAKKworVHVlIEp1bCAgNSAxMjozODozNiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiBydW5zdWl0ZS5jIHJ1bnRlc3QuYzogVGlueSBwb3J0YWJpbGl0eSBhZGp1c3RtZW50IGZvciB3aW4uCisJKiB3aW4zMi9NYWtlZmlsZS4qOiBBZGRlZCBydW50ZXN0LmV4ZSBhbmQgcnVuc3VpdGUuZXhlIHRvCisJICBiZSBjcmVhdGVkLgorCitNb24gSnVsICA0IDE3OjQ0OjI2IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnN1aXRlLmM6IGZpcnN0IHN0YiBhdCB1bmltcGxlbW50ZWQgZGV0ZWN0aW9uCisJKiBydW50ZXN0LmM6IGZpeGluZyBXaW5kb3dzIGNvZGUKKworTW9uIEp1bCAgNCAxNzoxOTozMSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBydW5zdWl0ZS5jOiBmaXggb24gc2NoZW1hcyBlcnJvcgorCSogcnVudGVzdC5jOiBwb3J0YWJpbGl0eSBnbG9iKCkgb24gV2luZG93cworCitNb24gSnVsICA0IDE2OjIzOjU0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnN1aXRlLmMgcnVudGVzdC5jOiBjbGVhbnVwcywgbG9nZmlsZSBhbmQgcG9ydGFiaWxpdHkKKwkqIHhtbGxpbnQuYzogZml4ZWQgYSBtZW1vcnkgbGVhaworCitNb24gSnVsICA0IDEzOjExOjEyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhIGJ1ZyBmYWlsaW5nIHRvIGRldGVjdCBVVEYtOCB2aW9sYXRpb25zIGluCisJICBDRGF0YSBpbiBwdXNoIG1vZGUuCisJKiByZXN1bHQvZXJyb3JzL2NkYXRhLnhtbCogdGVzdC9lcnJvcnMvY2RhdGEueG1sOiBhZGRlZCB0aGUgdGVzdAorCSAgdG8gdGhlIHJlZ3Jlc3Npb25zCisKK01vbiBKdWwgIDQgMTE6MjY6NTcgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYzogYWRkZWQgZW5oYW5jZW1lbnQgZm9yICMzMDkwNTcgaW4geG1sbGludCBzaGVsbAorCitNb24gSnVsICA0IDAwOjU4OjQ0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tIEphbWVzIEJ1cnNhIGZpeGluZyBhbiBodG1sIHBhcnNpbmcKKwkgIGJ1ZyBpbiBwdXNoIG1vZGUKKwkqIHJlc3VsdC9IVE1ML3JlcGVhdC5odG1sKiB0ZXN0L0hUTUwvcmVwZWF0Lmh0bWw6IGFkZGVkIHRoZSB0ZXN0IHRvIHRoZQorCSAgcmVncmVzc2lvbiBzdWl0ZQorCitTdW4gSnVsICAzIDIzOjQyOjMxIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3RhcGkuYyB0cmVlLmM6IGZpeGluZyBhIGxlYWsgZGV0ZWN0ZWQgYnkgdGVzdGFwaSBpbiAKKwkgIHhtbERPTVdyYXBBZG9wdE5vZGUsIGFuZCBmaXhpbmcgYW5vdGhlciBzaWRlIGVmZmVjdCBpbiB0ZXN0YXBpCisJICBzZWVtcyB0byBwYXNzIHRlc3RzIGZpbmUgbm93LgorCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmggcGFyc2VyLmM6IHhtbFN0b3BQYXJzZXIoKSBpcyBubyBtb3JlIGxpbWl0ZWQKKwkgIHRvIHB1c2ggbW9kZQorCSogZXJyb3IuYzogcmVtb3ZlIGEgd2FybmluZworCSogcnVudGVzdC5jIHhtbGxpbnQuYzogYXZvaWQgY29tcGlsYXRpb24gZXJyb3JzIGlmIG9ubHkgc29tZSBwYXJ0cworCSAgb2YgdGhlIGxpYnJhcnkgYXJlIGNvbXBpbGVkIGluLgorCitNb24gSnVsICA0IDAwOjM5OjM1IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBmaXggYSBwcm9ibGVtIHdpdGggcHJldmlvdXMgcGF0Y2ggdG8KKwkgIHRlc3RhcGkuYworCitTdW4gSnVsICAzIDIyOjU5OjI4IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnN1aXRlLmMgcnVudGVzdC5jIHRyZWUuYzogZml4aW5nIGNvbXBpbGF0aW9ucyB3aGVuCisJICBkaXNhYmxpbmcgcGFydHMgb2YgdGhlIGxpYnJhcnkgYXQgY29uZmlndXJlIHRpbWUuCisKK1N1biBKdWwgIDMgMTg6MTc6NTggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmM6IGZpeCBidWcgcmFpc2VkIGJ5IHphbWV6IG9uIElSQworCSogdGVzdGFwaS5jOiByZWdlbmVyYXRlZCwgc2VlbXMgdG8gcG9wLXVwIGxlYWtzIGluIG5ldyB0cmVlIGZ1bmN0aW9ucworCSogdHJlZS5jOiBhZGRlZCBjb21tZW50cyBtaXNzaW5nLgorCSogZG9jLyo6IHJlZ2VuZXJhdGVkCisKK1N1biBKdWwgIDMgMTg6MDY6NTUgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdGFwaS5jIHJ1bnN1aXRlLmMgcnVudGVzdC5jOiBmaXhpbmcgIzMwNzgyMyBhbmQgYSBjb3VwbGUgb2YKKwkgIGFzc29ydGVkIGJ1Z3MKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHkgcHl0aG9uL2xpYnhtbDItcHl0aG9uLWFwaS54bWw6IGZpeGVkIAorCSAgY29uZGl0aW9uYWxzIGluIGdlbmVyYXRvciB0b28KKwkqIGRvYy9hcGlidWlsZC5weSBkb2MvbGlieG1sMi1hcGkueG1sIGRvYy8qIGVsZmdjY2hhY2suaDogc29tZQorCSAgY2xlYW51cHMgdG9vIGFuZCByZWJ1aWx0CisKK1N1biBKdWwgIDMgMTY6NDI6MDAgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYzogZml4ZWQgYnVnICMzMDc1MDMgbWlzcGxhY2VkICNpZmRlZgorCitTdW4gSnVsICAzIDE2OjM0OjQ3IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnN1aXRlLmM6IGV4cGFuZGVkIHRlc3QKKwkqIHhtbHJlZ2V4cC5jOiBmb3VuZCBhbmQgZml4ZWQgdGhlIGxlYWsgZXhwb3NlZCBieSBNaWNyb3NvZnQgcmVndGVzdHMKKworU2F0IEp1bCAgMiAyMzozODoyNCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBydW5zdWl0ZS5jOiBhIGJpdCBvZiBwcm9ncmVzc2VzIG9uIHhzdGMKKworU2F0IEp1bCAgMiAwOTozMDoxMyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBydW5zdWl0ZS5jOiBjb21wbGV0ZWQgdGhlIHNpbXBsZSBjaGVja3MgZm9yIFJlbGF4LU5HIHN1aXRlcworCSAgYmFjayB0byB0aGUgc2FtZSAxMSBlcnJvcnMgYXMgaW4gdGhlIFB5dGhvbiBydW5zLgorCitUaHUgSnVuIDMwIDE1OjAxOjUyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnRlc3QuYzogY29tcGxldGUsIGNoZWNraW5nIG9uIG90aGVyIHBsYXRmb3JtcyBpcyBuZWVkZWQKKwkqIFJFQURNRTogdXBkYXRlZCAKKwkqIGRlYnVnWE1MLmM6IGZpeCBhIGJ1ZyByYWlzZWQgYnkgYmlsbCBvbiBJUkMKKwkqIHJlbGF4bmcuYzogZml4IGEgbGVhayBpbiB3ZWlyZCBjaXJjdW1zdGFuY2VzCisJKiBydW5zdWl0ZS5jIE1ha2VmaWxlLmFtOiBzdGFuZGFsb25lIHRlc3QgdG9vbCBhZ2Fpc250CisJICB0aGUgcmVncmVzc2lvbiBzdWl0ZXMsIHdvcmsgaW4gcHJvZ3Jlc3MKKworVHVlIEp1biAyOCAwODozMDoyNiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBydW50ZXN0LmM6IGFkZGluZyBVUkkgdGVzdHMKKworTW9uIEp1biAyNyAyMzo1NTo1NiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBydW50ZXN0LmM6IGFkZGluZyB4bWw6aWQKKworTW9uIEp1biAyNyAyMzoyOTozNiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBydW50ZXN0LmM6IGZpbmlzaGluZyBYUGF0aCwgYWRkaW5nIFhQb2ludGVyCisKK01vbiBKdW4gMjcgMTc6Mzk6MjcgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcnVudGVzdC5jOiBhZGRpbmcgbW9yZSBjb3ZlcmFnZSwgWEluY2x1ZGUgYW5kIHN0YXJ0aW5nIFhQYXRoCisKK01vbiBKdW4gMjcgMTc6MDI6MTQgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdHJlZS5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogQWRkZWQgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24KKwkgIGZ1bmN0aW9ucyBmb3IgdGhlIERPTS13cmFwcGVyIGNvbnRleHQuCisKK01vbiBKdW4gMjcgMTU6NDE6MzAgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdHJlZS5jOiBDb21tZW50ZWQgdGhlIG5ldyBmdW5jdGlvbnMgdG8gYmUgZXhwZXJpbWVudGFsLgorCitNb24gSnVuIDI3IDE0OjQxOjE0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVycm9yLmMgdmFsaWQuYzogd29ya2luZyBzb21lIHdlaXJkIGVycm9yIHJlcG9ydGluZyBwcm9ibGVtIGZvcgorCSAgRFREIHZhbGlkYXRpb24uCisJKiBydW50ZXN0LmM6IGF1Z21lbnRlZCB3aXRoIERURCB2YWxpZGF0aW9uIHRlc3RzCisJKiByZXN1bHQvVkMvT25lSUQqOiBzbGlnaHQgY2hhbmdlIGluIHZhbGlkYXRpb24gb3V0cHV0LgorCitNb24gSnVuIDI3IDEzOjQ0OjQxIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnRlc3QuYzogYWRkZWQgbW9zdCBIVE1MIHRlc3RzCisKK01vbiBKdW4gMjcgMTQ6MDY6MTAgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9uYW1lc3BhY2VzL3JlY29uY2lsZS90ZXN0cy54bWwKKwkgIHRlc3QvbmFtZXNwYWNlcy9yZWNvbmNpbGUvdGVzdHMtdG8tYy54c2w6IEFkZGVkIGluaXRpYWwgdGVzdHMKKwkgIGZvciBzb21lIG5ldyBET00td3JhcHBlciBoZWxwaW5nIGZ1bmN0aW9ucy4KKworTW9uIEp1biAyNyAxNDowMTowNiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4c3RjL3hzdGMtdG8tcHl0aG9uLnhzbDogQ2xlYW51cC4KKwkqIHhzdGMvc3VuLXRlc3QtZGVmLnhtbCB4c3RjL25pc3QtdGVzdC1kZWYueG1sIHhzdGMvbXMtdGVzdC1kZWYueG1sOgorCSAgUmVtb3ZlZCwgdGhvc2UgYXJlIG5vdCBuZWVkZWQgYW55bW9yZSBkdWUgdG8gdGhlIG5ldyB0ZXN0IHN1aXRlLgorCitNb24gSnVuIDI3IDExOjM5OjUwIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlc3VsdC8qLnNheDIgTUFrZWZpbGUuYW06IGFkZGVkIFNBWHYyIHJlZ3Jlc3Npb24gdGVzdHMgYXBwYXJlbnRseQorCSAgbWlzc2luZy4KKwkqIHJ1bnRlc3QuYzogYWRkZWQgU0FYMS9TQVgyIGNoZWNrcy4KKworTW9uIEp1biAyNyAxMjoyNDo1NCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBBZGRlZAorCSAgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMoKSwgeG1sRE9NV3JhcEFkb3B0Tm9kZSgpIGFuZAorCSAgeG1sRE9NV3JhcFJlbW92ZU5vZGUoKSB0byB0aGUgQVBJLiBUaGVzZSBhcmUgZnVuY3Rpb25zIGludGVuZGVkCisJICB0byBiZSB1c2VkIHdpdGggRE9NLXdyYXBwZXJzLgorCitNb24gSnVuIDI3IDEwOjE0OjU3IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJ1bnRlc3QuYzogY29udGludWUgdG8gaW5jcmVhc2UgdGhlIHRlc3RzCisKK01vbiBKdW4gMjcgMDk6MjE6NDkgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcnVudGVzdC5jOiBjb250aW51ZSB0byBpbmNyZWFzZSB0aGUgdGVzdHMKKworTW9uIEp1biAyNyAwMTowMTozMiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBydW50ZXN0LmM6IGNvbnRpbnVlIHRvIGluY3JlYXNlIHRoZSB0ZXN0cworCitTdW4gSnVuIDI2IDIwOjA4OjI0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3ZhbGlkLmggdmFsaWQuYzogYXZvaWQgbmFtZSBnbG9iIGluIGFncnVtZW50cyBhcworCSAgaXQgbWF0Y2hlcyB0aGUgZ2xvYigpIHJvdXRpbmUuCisJKiBydW50ZXN0LmMgTWFrZWZpbGUuYW06IGZpcnN0IHN0ZXBzIHRvd2FyZCBhIEMgcmVncmVzc2lvbiB0ZXN0CisJICBmcmFtZXdvcmsuCisKK1NhdCBKdW4gMjUgMDE6Mzc6MjIgUERUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGNvbmZpZ3VyZS5pbjogZml4ZWQgYSBwcm9ibGVtIHdpdGggdGhlIGRldGVjdGlvbiBvZgorCSAgc3NfZmFtaWx5IGZvciBpcFY2LCBhcyByZXBvcnRlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGJ5CisJICBEb3VnIE9ybGVhbnMuCisKK1R1ZSBKdW4gMjEgMTA6NDQ6MzQgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9zY2hlbWFzL2VtcHR5LXZhbHVlKiByZXN1bHQvc2NoZW1hcy9lbXB0eS12YWx1ZSo6CisJICBBZGRlZCByZWdyZXNzaW9uIHRlc3RzIChmcm9tIERoeWFuZXNoKS4KKworVHVlIEp1biAyMSAxMDozNTo0MyBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEZpeGVkIE5VTEwgdmFsdWVzIHRvIGJlIHZhbGlkYXRlZCBhcyBlbXB0eQorCSAgc3RyaW5nIHZhbHVlcyAocmVwb3J0ZWQgYnkgRGh5YW5lc2ggdG8gdGhlIG1haWxpbmcgbGlzdCkuCisJICBBZGp1c3RlZCB0ZXh0IGNvbmNhdGVuYXRpb24gb2YgbWl4ZWQgY29udGVudC4KKworTW9uIEp1biAyMCAxODoxMTozMiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmMgdmFsaWQuYzogYXBwbGllZCBwYXRjaCBmcm9tIFJvYiBSaWNoYXJkcyBmb3IgcmVtb3ZhbAorCSAgb2YgSUQgKGFuZCB4bWw6aWQpCisJKiB4bWxyZWFkZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tIEphbWVzIFdlcnQgaW1wbGVtZW50aW5nIAorCSAgeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCBhbmQgeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbAorCitUaHUgSnVuIDE2IDE0OjM4OjIyIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgU0FYMiB2YWxpZGF0aW9uOiBncm93IG9mIGludGVybmFsCisJICBuYW1lc3BhY2UgbGlzdCwgYXBwZW5kaW5nIG9mIGVsZW1lbnQgY2hhcmFjdGVyIGNvbnRlbnQuCisJKiB4c3RjL3hzdGMucHk6IEFkZGVkICItLXNheCIgb3B0aW9uIGZvciBTQVgyIHZhbGlkYXRpb24uCisKK1dlZCBKdW4gMTUgMTU6MzQ6NTIgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IEFkZGVkIG1pc3NpbmcgZnVuY3Rpb24gZGVzY3JpcHRpb25zLgorCitXZWQgSnVuIDE1IDE1OjI2OjE0IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogaWYgc2F4MSBpcyB1c2VkIGFuZCBpbnB1dCBpcyBhIGZpbGUgdXNlIHRoZSBvbGQKKwkgIEFQSSB4bWxQYXJzZUZpbGUoKQorCSogeG1sc2NoZW1hcy5jOiBjbGVhbnVwcworCSogZG9jLyogdGVzdGFwaS5jIGVsZmdjY2hhY2suaDogcmVidWlsdCB0byBhZGQgcHl0aG9uIGJpbmRpbmdzCisJICBmb3IgdGhlIG5ldyBmdW5jdGlvbnMgaW4gU2NoZW1hcy4KKworV2VkIEp1biAxNSAxNDo1MDo0OCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oOiBBZGRlZAorCSAgeG1sU2NoZW1hVmFsaWRhdGVGaWxlKCkgdG8gdGhlIHB1YmxpYyBBUEkuIFRoaXMgd2lsbCB1c2UKKwkgIFNBWDItZHJpdmVuIHZhbGlkYXRpb24uCisKK1dlZCBKdW4gMTUgMTE6MTE6MzggQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcmVzdWx0L3NjaGVtYXMvYnVnMzA2ODA2XzFfMCByZXN1bHQvc2NoZW1hcy9idWczMDY4MDZfMV8wLmVycjoKKwkgIEFkZGVkIHNjaGVtYSB0ZXN0IHJlc3VsdHMgKFRvbSBCcm93ZGVyLCBidWcgIzMwNjgwNikuCisKK1dlZCBKdW4gMTUgMTE6MDg6MzQgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9zY2hlbWFzL2J1ZzMwNjgwNl8xLnhzZCB0ZXN0L3NjaGVtYXMvYnVnMzA2ODA2XzAueG1sOgorCSAgQWRkZWQgc2NoZW1hIHRlc3RzIHN1Ym1pdHRlZCBieSBUb20gQnJvd2RlciAoYnVnICMzMDY4MDYpLgorCitUdWUgSnVuIDE0IDE1OjAzOjIyIFBEVCAyMDA1IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXR0ZXJuLmM6IGFkanVzdGVkIGxhc3QgY2hhbmdlIHRvIHhtbENvbXBpbGVQYXRoUGF0dGVybiwKKwkgIGZpeGVkIG9uZSBjb21waWxhdGlvbiB3YXJuaW5nCisKK1R1ZSBKdW4gMTQgMjE6MTk6MTYgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcGF0dGVybi5jOiBTb21lIGNoYW5nZXMvZml4ZXMgdG8gdGhlIHN0cmVhbWluZyBldmFsdWF0aW9uLgorCSogeG1sc2NoZW1hcy5jOiBBIGJpdCBvZiBzdXBwb3J0IGZvciBwYXJzaW5nIHRoZSBzY2hlbWEgZm9yCisJICBzY2hlbWEuIEZpeGVkIGF0dHJpYnV0ZSBkZXJpdmF0aW9uIHdoZW4gdGhlIHVzZSBpcworCSAgInByb2hpYml0ZWQiIGFuZCB3YXMgIm9wdGlvbmFsIi4gRml4ZWQgYW4gYXR0cmlidXRlIGNvbnN0cnVjdGlvbgorCSAgYnVnLCBhIGxlZnQtb3ZlciBmcm9tIHRoZSB0aW1lLCB3aGVyZSA8Y29tcGxleENvbnRlbnQ+LAorCSAgPGV4dGVuc2lvbj4sIGV0Yy4gd2hlcmUgY3JlYXRlZCBhcyBzdHJ1Y3RzLgorCitUdWUgSnVuIDE0IDEyOjM1OjEyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC0yLjAucGMuaW46IHJlbW92ZWQgYSByZWR1bmRhbnQgaW5jbHVkZSBwYXRoCisKK01vbiBKdW4gMTMgMTQ6NTg6MzMgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHN0Yy9NYWtlZmlsZS5hbTogU29tZSBtb3JlIGFkanVzdG1lbnRzLgorCitNb24gSnVuIDEzIDE0OjM1OjU5IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhzdGMvTWFrZWZpbGUuYW06IENoYW5nZWQgdGVzdCBleHRyYWN0aW9uIHByb2Nlc3MsIHNpbmNlIHNvbWUKKwkgIGJveGVzIGRvbid0IGtub3cgYWJvdXQgInRhciAtLXN0cmlwLXBhdGgiLgorCitNb24gSnVuIDEzIDEzOjM5OjQzIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogZml4ZWQgYSBidWcgZXhwb3NlZCBieSBSb2IgUmljaGFyZHMgaW4gdGhlIG1haWxpbmctbGlzdAorCSogcmVzdWx0Ly9jb21wYXJlMCogdGVzdC8vY29tcGFyZTAqOiBhZGRlZCB0aGUgcmVncmVzc2lvbiB0ZXN0IGluCisJICB0aGUgc3VpdGUgYXMgdGhpcyB3ZW50IHVubm90aWNlZCAhCisKK1dlZCBKdW4gIDkgMTE6MDc6NDIgUERUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHBhdHRlcm4uYywgeHBhdGguYywgaW5jbHVkZS9saWJ4bWwvcGF0dGVybi5oOiBGdXJ0aGVyCisJICBlbmhhbmNlbWVudCBmb3IgWFBhdGggc3RyZWFtaW5nLCBjb25zb2xpZGF0ZWQgd2l0aAorCSAgc2NoZW1hcyB1c2FnZSBvZiBwYXR0ZXJuLmMuICBBZGRlZCBhIG5ldyBlbnVtCisJICB4bWxQYXR0ZXJuRmxhZ3MuCisJKiBkb2MvKiwgdGVzdGFwaS5jLCBlbGZnY2NoYWNrLmg6IHVwZGF0ZWQgdG8gcmVmbGVjdCBuZXcKKwkgIGVudW0uCisJKiB0ZXN0L1hQYXRoL3Rlc3RzL21peGVkcGF0LCB0ZXN0L1hQYXRoL2RvY3MvbWl4ZWQsCisJICByZXN1bHQvWFBhdGgvbWl4ZWRwYXQ6IGFkZGVkIHJlZ3Jlc3Npb24gdGVzdCBmb3IgcHJvYmxlbXMKKwkgIHJlcG9ydGVkIGluIGJ1ZzMwNjM0OAorCitUaHUgSnVuICA5IDE2OjUxOjMxIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBDaGFuZ2VkIG5vbi1wcmVmaXhlZCBRTmFtZXMgdG8gYmUgYm91bmQgdG8gYQorCSAgZGVmYXVsdCBuYW1lc3BhY2UgaWYgZXhpc3RlbnQuCisKK1RodSBKdW4gIDkgMTU6MTE6MzggQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IEZpeGVkIGEgYnVnIHdoaWNoIEkgaW52ZW50ZWQ6IGhleEJpbmFyeSdzIHN0cmluZworCSAgdmFsdWVzIHdlcmUgbm90IGR1cGxpY2F0ZWQgY29ycmVudGx5IHdoZW4gY3JlYXRpbmcgYSBjb21wdXRlZCB2YWx1ZQorCSAgaW4geG1sU2NoZW1hVmFsQXRvbWljVHlwZS4KKworVGh1IEp1biAgOSAxMzoyMDo1NyBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmMgcmVzdWx0L3NjaGVtYXMvaW5jbHVkZTFfMF8wLmVycjoKKwkgIEZpeGVkIGFuIGF0dHJpYnV0ZSBmaXhlZC9kZWZhdWx0IHZhbHVlIGNvbnN0cmFpbnQgZXJyb3IuCisKK1RodSBKdW4gIDkgMTI6NTE6MjMgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcmVzdWx0L3NjaGVtYXMvKjogQWRhcHRlZCByZWdyZXNzaW9uIHRlc3QgcmVzdWx0cy4KKworVGh1IEp1biAgOSAxMjoyMjo0NSBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMgaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzdHlwZXMuaDogQ2hhbmdlZCB0aGUgdmFsaWRhdGlvbiBwcm9jZXNzCisJICB0byBiZSBhYmxlIHRvIHdvcmsgaW4gc3RyZWFtaW5nIG1vZGUuIFNvbWUgZGF0YXR5cGUgZml4ZXMsCisJICBlc3BlY2lhbGx5IGZvciBsaXN0IGFuZCB1bmlvbiB0eXBlcy4gRHVlIHRvIHRoZSBjaGFuZ2VzIHRoZQorCSAgZXJyb3IgcmVwb3J0IG91dHB1dCBoYXMgY2hhbmdlZCBpbiBtb3N0IGNhc2VzLiBJbml0aWFsIG1pZ3JhdGlvbiB0bworCSAgZnVuY3Rpb25zIHVzYWJsZSBieSBib3RoLCB0aGUgcGFyc2VyIGFuZCB0aGUgdmFsaWRhdG9yLiBUaGlzIHNob3VsZAorCSAgZWFzZSBhIHlldC10by1jb21lIFhTIGNvbnN0cnVjdGlvbiBBUEkgaW4gdGhlIGxvbmcgdGVybSBhcyB3ZWxsLgorCitUaHUgSnVuICA5IDEwOjE2OjExIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gTWFsY29sbSBSb3dlIHRvIGF2b2lkIG5hbWVzcGFjZQorCSAgdHJvdWJsZXMgb24gcm9sbGJhY2sgcGFyc2luZyBvZiBlbGVtZW50cyBzdGFydCAjMzA0NzYxCisJKiB0ZXN0L25zY2xlYW4ueG1sIHJlc3VsdC9ub2VudC9uc2NsZWFuLnhtbCByZXN1bHQvbnNjbGVhbi54bWwqOgorCSAgYWRkZWQgaXQgdG8gdGhlIHJlZ3Jlc3Npb24gdGVzdHMuCisKK1RodSBKdW4gIDkgMDA6MzM6NTAgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogYXBwbGllZCBwYXRjaCBmcm9tIFJvYiBSaWNoYXJkcworCSAgZm9yIHhtbDpzcGFjZSBhbmQgeG1sOmxhbmcgaGFuZGxpbmcgd2l0aCBTQVgyIGFwaS4KKworV2VkIEp1biAgOCAxOTo0MTozOCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnbG9iYWxzLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNb3J0ZW4gV2VsaW5kZXIsIGNsb3NpbmcgYnVnICMzMDY5MDEKKwkgIG9uIGNvbXBpbGluZyBzdWJzZXRzIG9mIHRoZSBsaWJyYXJ5CisKK1dlZCBKdW4gIDggMTk6MTE6NDIgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHN0Yy9NYWtlZmlsZS5hbSB4c3RjLnB5IHhzdGMtdG8tcHl0aG9uLnhzbDogQWRhcHRlZCB0aGUKKwkgIFhTIHRlc3RzIHRvIHVzZSB0aGUgbmV3IHJlbGVhc2Ugb2YgdGVzdHMgYW5kIHRlc3QtZGVmaW5pdGlvbnMuCisKKzIwMDUtMDYtMDcgIEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIGMxNG4uYzogZml4IHJlbmRlcmluZyBvZiBhdHRyaWJ1dGVzIHdoZW4gcGFyZW50IG5vZGUKKwlpcyBub3QgaW4gdGhlIG5vZGUgc2V0CisKKzIwMDUtMDYtMDYgIEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIGMxNG4uYzogZml4ZWQgeG1sIGF0dHJpYnV0ZXMgcHJvY2Vzc2luZyBidWcgaW4gZXhjIGMxNG4KKwkqIHhtbGxpbnQuYzogYWRkZWQgLS1leGMtYzE0biBjb21tYW5kIGxpbmUgb3B0aW9uCisKK01vbiBKdW4gIDYgMDY6NDM6MzMgUERUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmMsIHBhdHRlcm4uYzogRW5oYW5jZWQgeG1sWFBhdGhSdW5TdHJlYW1FdmFsLCBmaXhlZAorCSAgaGFuZGxpbmcgb2YgZGVwdGgvbGV2ZWwgZm9yIGNhc2VzIGxpa2UgdW5pb24gb3BlcmF0b3IKKwkgIChidWcgIzMwNjM0OCByZXBvcnRlZCBieSBCb2IgU3RheXRvbikuICBBbHNvIGVuaGFuY2VkCisJICBzZXZlcmFsIGNvbW1lbnRzIHRocm91Z2hvdXQgcGF0dGVybi5jLgorCSogZG9jL2FwaWJ1aWxkLnB5OiBmaXhlZCBwcm9ibGVtIGluIGhhbmRsaW5nIG9mCisJICAnc2lnbmVkJyBkZWNsYXJhdGlvbi4gIFJlYnVpbHQgdGhlIGRvY3MuCisJICAKK1R1ZSBNYXkgMzEgMjA6MzU6MjcgUERUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IEVuaGFuY2VkIGhhbmRsaW5nIG9mIHhtbDpiYXNlIGZvciBpbmNsdWRlZAorCSAgZWxlbWVudHMsIGZpeGluZyBidWdzIDE2OTIwOSBhbmQgMzAyMzUzLgorCitXZWQgTWF5IDI1IDE4OjU5OjUzIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgZmFjZXQgZXJyb3JzIHRvIGJlIGNoYW5uZWxsZWQgYmFjayBmb3IKKwkgIHVuaW9uIHR5cGUgbWVtYmVyczsgZmFjZXQtdmFsaWRhdGlvbiB3aWxsIHN0b3Agbm93IG9uIHRoZQorCSAgZmlyc3QgZXJyb3IuIFJlcG9ydGVkIGJ5IEdVWSBGYWJyaWNlIHRvIHRoZSBtYWlsaW5nLWxpc3QuCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogQ2hhbmdlZCB0byBpZ25vcmUgbGVuZ2gtcmVsYXRlZCBmYWNldAorCSAgdmFsaWRhdGlvbiBmb3IgUU5hbWVzIGFuZCBOT1RBVElPTnMgYXMgcHJvcG9zZWQgYnkgdGhlCisJICBzY2hlbWEgcGVvcGxlLgorCSogdGVzdC9zY2hlbWFzL3VuaW9uMiogcmVzdWx0L3NjaGVtYXMvdW5pb24yKjogQWRkZWQKKwkgIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIHVuaW9uIHR5cGVzIChieSBHVVkgRmFicmljZSkuCisKK0ZyaSBNYXkgMjAgMjA6NDg6MDggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2F2ZS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gTWFyayBWYWtvYyBmaXhpbmcgc2F2aW5nIG9mCisJICBDREFUQSB3aXRoIE5VTEwgY29udGVudC4KKworVGh1IE1heSAxMiAxNToxNDoyNiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogQ2hhbmdlZCB0aGUgVkFMSURfVFpPIG1hY3JvIHRvIHJlc3RyaWN0CisJICB0aGUgdGltZXpvbmUgdG8gLTg0MCB0byA4NDAuCisKK1RodSBNYXkgMTIgMTU6MDU6MTEgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IEFwcGxpZWQgcGF0Y2ggZnJvbSBTdGV2ZSBOYWlybiAoYnVnICMzMDM2NzApCisJICBmb3IgInNpZ25lZCBpbnQiIG9mIHRoZSBkYXRlLXRpbWUgdGltZXpvbmUgZmllbGQuIFNpbGVuY2VkCisJICBhIHdhcm5pbmcuCisKK1dlZCBNYXkgMTEgMjA6MDQ6MDkgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBhcHBsaWVkIHBhdGNoIGZvciByZXBsYWNlTm9kZSBmcm9tIEJyZW50IEhlbmRyaWNrcworCitUdWUgTWF5IDEwIDE3OjI3OjUyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogZml4ZWQgYnVnICMzMDM2ODIgb2YgYSBsZWFrIHJlcG9ydGVkIGJ5IE1hbGNvbG0gUm93ZQorCitUdWUgTWF5IDEwIDExOjUwOjE2IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3RhcGkuYzogYXBwbGllZCBwYXRjaCBmcm9tIFN0ZXZlIE5haXJuIHRvZiBmaXggdGhlIGNvbXBpbGF0aW9uCisJICBwcm9ibGVtIGV4cG9zZWQgaW4gYnVnICMzMDM2NDAKKworVHVlIE1heSAxMCAxMToxMToyNiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB0ZXN0L3NjaGVtYXMvYnVnMzAzNTY2XzEqIHJlc3VsdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xXzEqOgorCSAgQWRkZWQgcmVncmVzc2lvbiBhIHRlc3QgcHJvdmlkZWQgYnkgSGVpa28gT2JlcmRpZWsgKGJ1ZyAjMzAzNTY2KS4KKworTW9uIE1heSAgOSAxNzo1Njo1OCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiBwYXR0ZXJuLmM6IENoYW5nZWQgdGhlIFhQYXRoICIuIiB0byByZXNvbHZlIG9ubHkgb24gdGhlIGZpcnN0CisJICBsZXZlbCBmb3IgWE1MIFNjaGVtYSBJRENzIChidWcgIzMwMzU2NiByZXBvcnRlZCBieSBIZWlrbyBPYmVyZGllaykuCisJICBUaGlzIHNob3VsZCBub3QgYWZmZWN0IHBhdHRlcm4tbGlrZSByZXNvbHV0aW9uIG9uIGV2ZXJ5IGxldmVsLgorCitTdW4gTWF5ICA4IDEzOjM1OjM5IENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbG1lbW9yeS5jOiBmaXhlZCAjMTY5NjMwIHNlZ2ZhdWx0IGluIHhtbE1lbURpc3BsYXkKKworRnJpIE1heSAgNiAxMzo0MDowMyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBuYW5vZnRwLmM6IGZpeGluZyBidWcgIzMwMzA2OCBpbmNyZWFzaW5nIHRoZSBuYW5vZnRwIGJ1ZmZlci4KKwkqIGRvYy9hcGlidWlsZC5weTogZml4ZWQgX19hdHRyaWJ1dGUoKSBwYXJzaW5nIHByb2JsZW0KKwkqIGRvYy8qIHRlc3RhcGkuYzogcmVnZW5lcmF0ZWQgdGhlIGRlc2NyaXB0aW9ucyBhbmQgZG9jcy4KKworV2VkIE1heSAgNCAxMToxNjowMCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBjb25maWd1cmUuaW4gdGhyZWFkcy5jOiBvbiBsaW51eC9nY2MgdXNlIHdlYWsgZGVmaW5pdGlvbnMKKwkgIHRvIGF2b2lkIGxpbmtpbmcgd2l0aCBwdGhyZWFkIGxpYnJhcnkgb24gbm9uLXRocmVhZGVkIGVudmlyb25tZW50cy4KKwkqIHhwYXRoLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNYXJrIFZha29jIHcuci50LiBhIGJ1Z2d5IG5hbWVzcGFjZQorCSAgbGlzdCBhbGxvY2F0aW9uLgorCitGcmkgQXByIDI5IDExOjI3OjM3IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHBhcnNlci5jOiBGaXhlZCBhIHRlc3QgZm9yIGR1cGxpY2F0ZSBhdHRyaWJ1dGVzOiBOb24tcHJlZml4ZWQKKwkgIGF0dHJpYnV0ZXMgd2VyZSB0cmVhdGVkIGFzIGJlaW5nIGJvdW5kIHRvIHRoZSBkZWZhdWx0IG5hbWVzcGFjZS4KKworVHVlIEFwciAxOSAxNzo1MTozMiBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogRml4ZWQgZGF0ZS10aW1lIHJlbGF0ZWQgdmFsaWRhdGlvbgorCSAgKHJlcG9ydGVkIGJ5IERhdmlkIENyb3NzbGV5LCBidWcgIzMwMDU3NikuCisKK1R1ZSBBcHIgMTkgMTY6NTU6NDAgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jIHhtbHJlZ2V4cC5jOiBSZW1vdmVkIDUgdW5uZWNlc3NhcnkKKwkgIGRlcmVmZXJlbmNlcyAocmVwb3J0ZWQgYnkgQW5kcml5LCBidWcgIzMwMTA3NCkuCisKK1R1ZSBBcHIgMTkgMjI6MzM6MTggSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IEFkZGVkIHNvbWUgY29kZSB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93IGZvcgorCSAgY2VpbCwgZmxvb3IgYW5kIHJvdW5kIGZ1bmN0aW9ucyAoYnVnIDMwMTE2MikKKworVHVlIEFwciAxOSAxMzoyMTo1NCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IFJlbW92ZWQgd29ya2Fyb3VuZCBmb3IgYnVnICMxNzIyMTUsIHNpbmNlIGl0CisJICBkb2VzIG1vcmUgaGFybSBpbiBzb21lIHNjZW5hcmlvcy4gQWRkZWQgc29tZSBvZiB0aGUKKwkgICJQYXJ0aWNsZSBSZXN0cmljdGlvbiBPSyIgY29uc3RyYWludHMgLSBub3QgeWV0IGVuYWJsZWQuCSAgCisKK01vbiBBcHIgMTggMTM6MDI6NTUgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogcmVzdWx0L3NjaGVtYXMvY2hhbmdlbG9nMDkzKjogQWRkZWQgdGVzdCByZXN1bHRzLgorCitNb24gQXByIDE4IDEyOjQyOjE0IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogQWRkZWQgb3V0cHV0IG9mIGNhbm9uaWNhbCB2YWx1ZXMgaW4KKwkgIGlkZW50aXR5LWNvbnN0cmFpbnQgZXJyb3IgbWVzc2FnZXMuCisJKiB4bWxzY2hlbWFzdHlwZXMuYyBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzdHlwZXMuaDoKKwkgIEFkZGVkIHhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCgpIHRvIHRoZSBBUEkuCisJICBGdXJ0aGVyIGVuaGFuY2VtZW50IG9mIHRoZSBjYW5vbmljYWwgdmFsdWUKKwkgIGNvbnZlcnNpb24uCisJKiB0ZXN0L3NjaGVtYXMvY2hhbmdlbG9nMDkzXzAuKjogQWRkZWQgdGVzdCB3aXRoIGFuIFhTRAorCSAgc3VibWl0dGVkIGJ5IFJhbmR5IEouIFJheS4KKworRnJpIEFwciAxNSAwOTozMzoyMSBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogQXBwbGllZCBEYW5pZWwncyBmaXggZm9yIG1lbW9yeSBsZWFrIGluIGR0ZAorCSAgcHJlZml4IChidWcgMzAwNTUwKS4KKwkqIHhwYXRoLmM6IG1pbm9yIGNoYW5nZSB0byBjb21tZW50IG9ubHkKKworVGh1IEFwciAxNCAyMDo1Mjo0MSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxtZW1vcnkuYzogYWRkZWQgdGhlIGNhbGwgdG8gdGhlIGJyZWFrcG9pbnQgcm91dGluZQorCSAgd2hlbiBhIG1vbml0b3JlZCBibG9jayBpcyByZWFsbG9jYXRlZCBvciBmcmVlZAorCitXZWQgQXByIDEzIDA1OjU1OjUxIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG5hbm9odHRwLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBBcm9uIFN0YW5zdmlrIGZvciBidWcgIzE3MjUyNQorCSAgYWJvdXQgSFRUUCBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyIGJlaW5nIGxvc3QKKworVHVlIEFwciAxMiAwNDowMzozMiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbC5weTogYXBwbGllZCBwYXRjaCBmcm9tIEJyZW50IEhlbmRyaWNrcworCSAgYWRkaW5nIG5hbWVzcGFjZSByZW1vdmFsIGF0IHRoZSBweXRob24gbGV2ZWwgIzMwMDIwOQorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9uc2RlbC5weTogYWRkZWQgdGhlIHJlZ3Jlc3Npb24KKwkgIHRlc3QKKworU3VuIEFwciAxMCAwOTowMzoyMiBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogZml4ZWQgc2V2ZXJhbCBwbGFjZXMgd2hlcmUgbWVtb3J5IGNsZWFudXAgd2FzIG5vdAorCSAgcHJvcGVybHkgZG9uZSBhZnRlciBhbiBlcnJvciB3YXMgZGV0ZWN0ZWQgKHByb2JsZW0gd2FzCisJICByZXBvcnRlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGJ5IFBhd2VsIFBhbHVjaGEpCisKK0ZyaSBBcHIgIDggMjE6NTg6MDQgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBBZGRlZCBzdWJzdGl0dXRpb24gZ3JvdXAgY29uc3RyYWludHM7IGNoYW5nZWQKKwkgIHRoZSBidWlsZCBvZiB0aGUgcHJlLWNvbXB1dGVkIHN1YnN0aXR1dGlvbiBncm91cHMuIENoYW5uZWxlZAorCSAgZXJyb3JzIGR1cmluZyB4c2kgYXNzZW1ibGluZyBvZiBzY2hlbWFzIHRvIHRoZSB2YWxpZGF0aW9uCisJICBjb250ZXh0LiBGaXhlZCBhIGJpZyBtZW1vcnkgbGVhaywgd2hpY2ggb2NjdXJlZCB3aGVuIHVzaW5nCisJICBJRENzOiB0aGUgcHJlY29tcHV0ZWQgdmFsdWUgb2YgYXR0cmlidXRlcyB3YXMgbm90IGZyZWVkIGlmCisJICB0aGUgYXR0cmlidXRlIGRpZCBub3QgcmVzb2x2ZSB0byBhbiBJREMgZmllbGQgKGRpc2NvdmVyZWQKKwkgIHdpdGggdGhlIGhlbHAgb2YgUmFuZHkgSi4gUmF5J3Mgc2NoZW1hLCBwb3N0ZWQgdG8gdGhlCisJICB4bWxzY2hlbWEtZGV2IG1hbGluZyBsaXN0KS4KKworRnJpIEFwciAgOCAxMzoyMjowMSBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEFkZGVkICJQYXJ0aWNsZSBjb3JyZWN0IDIiIHRvIHBhcnNpbmcgb2YgbW9kZWwgZ3JvdXBzLgorCSAgQWRkZWQgaGFuZGxpbmcgc3Vic3RpdHV0aW9uIGdyb3VwcyBpbnNpZGUgPGNob2ljZT4gYW5kIDxzZXF1ZW5jZT47CisJICBmb3IgPGFsbD4gdGhpcyBpcyBub3Qgc3VwcG9ydGVkIHlldC4gQ2hhbmdlZCBjaXJjdWxhciBjaGVja3MgZm9yCisJICBtb2RlbCBncm91cHMgZGVmaW5pdGlvbnMuICJtZW1iZXJUeXBlcyIgYXJlIHByb2Nlc3NlZCBhdCBkaWZmZXJlbnQKKwkgIGxldmVscyBub3c6IGNvbXBvbmVudCByZXNvbHV0aW9uIGZpcnN0LCBjb25zdHJ1Y3Rpb24gbGF0ZXI7IHRoaXMKKwkgIGdvZXMgaGFuZCBpbiBoYW5kIHdpdGggYSBnbG9iYWwgY2hhbmdlIHRvIGhhbmRsZSBjb21wb25lbnQKKwkgIHJlc29sdXRpb24gaW4gYSBkaXN0aW5jdCBwaGFzZS4gRml4ZWQgaW52YWxpZCBkZWZhdWx0IHZhbHVlcyBmb3IKKwkgIGVsZW1lbnRzIHRvIG1hcmsgdGhlIHNjaGVtYSBhcyBpbnZhbGlkOyB0aGlzIGp1c3QgcmVzdWx0ZWQgaW4gYW4KKwkgIGVycm9yIHJlcG9ydCBwcmV2aW91c2x5LCBidXQgdGhlIHNjaGVtYSB3YXMgaGFuZGxlZCBhcyB2YWxpZC4KKwkgIFNlcGFyYXRlZCB0aGUgYXNzaWdubWVudCBvZiB0aGUgbW9kZWwgZ3JvdXBzIHRvIHJlZmVyZW5jaW5nCisJICBtb2RlbCBncm91cCBkZWZpbml0aW9uIHJlZmVyZW5jZXMgKGkuZS4gcGFydGljbGVzKTsgdGhpcyB3YXMKKwkgIG5lZWRlZCB0byBwZXJmb3JtIHRoZSBjaXJjdWxhcml0eSBjaGVjayBmb3IgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbnMuCisJICBBZGRlZCAiRWxlbWVudCBEZWNsYXJhdGlvbiBQcm9wZXJ0aWVzIENvcnJlY3QgKGUtcHJvcHMtY29ycmVjdCkiCisJICBjb25zdHJhaW50cy4gU2VwYXJhdGVkIGNvbXBvbmVudCByZXNvbHV0aW9uIGZvciBzaW1wbGUvY29tcGxleAorCSAgdHlwZXMuCisJKiBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmg6IEFkZGVkIGEgZmxhZyBmb3Igc3Vic3RpdHV0aW9uCisJICBncm91cCBoZWFkcy4JICAKKworV2VkIEFwciAgNiAyMzoxNDowMyBDRVNUIDIwMDUgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUuKjogbWFrZSBpbnN0YWxsIGNsZWFudXAKKworV2VkIEFwciAgNiAyMjo0MjoyMyBDRVNUIDIwMDUgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUubWluZ3c6IGZpeGVkIG1pbmd3IGNvbXBpbGF0aW9uCisJKiB0ZXN0TW9kdWxlLmM6IHJlbW92ZWQgbWluZ3cgd2FybmluZ3MKKworV2VkIEFwciAgNiAyMTo1OToxMSBDRVNUIDIwMDUgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogLmN2c2lnbm9yZTogYWRkZWQgRWNsaXBzZSBwcm9qZWN0IGZpbGVzIHRvIGlnbm9yZSBsaXN0CisKK1dlZCBBcHIgIDYgMTY6MDg6MTAgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogZml4ZWQgdGhlIGJ1ZyBpbiBsYW5nKCkgYXMgcmFpc2VkIGJ5IEVsbGlvdHRlIFJ1c3R5IEhhcm9sZAorCSogcmVzdWx0L1hQYXRoL3Rlc3RzL2xhbmdzaW1wbGUgdGVzdC9YUGF0aC90ZXN0cy9sYW5nc2ltcGxlCisJICB0ZXN0L1hQYXRoL2RvY3MvbGFuZzogYWRkZWQgYSByZWdyZXNzaW9uIHRlc3QKKworVHVlIEFwciAgNSAyMzo0ODozNSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBuYW5vZnRwLmM6IGFwcGxpZWQgZml4IGZyb20gUm9iIFJpY2hhcmRzIHRvIGNvbXBpbGUgb24gV2luZG93cy4KKworVHVlIEFwciAgNSAxNzowMjo1OCBDRVNUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEFkZGVkICJUeXBlIERlcml2YXRpb24gT0sgKENvbXBsZXgpIiBjb25zdHJhaW50cworCSAgYW5kIGFuY2hvcmVkIHRoZW0gaW4gdGhlICJFbGVtZW50IExvY2FsbHkgVmFsaWQgKEVsZW1lbnQpIgorCSAgY29uc3RyYWludHMuIFRoaXMgcmVzdHJpY3RzIHRoZSB0eXBlIHN1YnN0aXR1dGlvbiB2aWEgInhzaTp0eXBlIi4KKworVHVlIEFwciAgNSAxMzoxMDowNiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IHBhdGNoIGZyb20gTWF0dGhldyBCdXJnZXNzIHRvIGltcHJvdmUgc29tZSBzY2hlbWFzCisJICBmYWNldHMgdmFsaWRhdGlvbiBtZXNzYWdlcy4KKworU2F0IEFwciAgMiAxMjo0ODo0MSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvKiBjb25maWd1cmUuaW4gTkVXUzogcHJlcGFyaW5nIHJlbGVhc2UgMi42LjE5LCB1cGRhdGVkIGRvY3MgYW5kCisJICByZWJ1aWxkaW5nLgorCitTYXQgQXByICAyIDEzOjI3OjMyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhzdGMvTWFrZWZpbGUuYW06IGludGVncmF0ZWQgZml4dXAtdGVzdHMucHkKKworRnJpIEFwciAgMSAxOToxNDoxOCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogZml4ZWQgYSBsYWNrIG9mIGNvbW1lbnQgYW5kIG1pc3NpbmcgdGVzdCBmb3IKKwkgIGEgcG9pbnRlciBpbiB0aGUgQVBJLgorCitGcmkgQXByICAxIDE3OjU0OjIyIENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhzdGMvZml4dXAtdGVzdHMucHk6IEEgdGlueSBzY3JpcHQgdG8gZml4dXAgc29tZSBvZiB0aGUgc2NoZW1hCisJICBmaWxlcyB1c2VkIGZvciB0aGUgdGVzdHMuCisKK0ZyaSBBcHIgIDEgMTc6MzM6NTAgQ0VTVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaAorCSAgcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLSouZXJyIHJlc3VsdC9zY2hlbWFzL2VsZW1lbnQtKi5lcnI6CisJICBDb21taXR0aW5nIGFnYWluLCBzaW5jZSB0aGUgQ1ZTIHNlcnZlciBhYm9ydGVkLgorCitGcmkgQXByICAxIDE1OjI5OjI3IENFU1QgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBDb3JyZWN0ZWQgJ2xlbmd0aCcgZmFjZXQgdmFsaWRhdGlvbiBmb3IKKwkgIFFOYW1lcyBhbmQgbm90YXRpb25zLiBDb3JyZWN0ZWQgeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTogc29tZQorCSAgZGF0YSB0eXBlcyBkaWQgbm90IHJldHVybiBhIHZhbHVlIGlmIGFscmVhZHkgaW4gbm9ybWFsaXplZAorCSAgZm9ybS4KKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmg6CisJICBFbGltaW5hdGVkIGNyZWF0aW9uIG9mIHN0cnVjdHMgZm9yIDxyZXN0cmljdGlvbj4sIDxleHRlbnNpb24+LAorCSAgPHNpbXBsZUNvbnRlbnQ+LCA8Y29tcGxleENvbnRlbnQ+LCA8bGlzdD4gYW5kIDx1bmlvbj46IHRoZQorCSAgaW5mb3JtYXRpb24gaXMgbm93IHNldCBkaXJlY3RseSBvbiB0aGUgY29ycmVzcG9uZGluZyBzaW1wbGUvCisJICBjb21wbGV4IHR5cGUuIEFkZGVkIHNvbWUgbW9yZSBjb21wbGV4IHR5cGUgY29uc3RyYWludHMuCisJICBBZGRlZCBmYWNldCBkZXJpdmF0aW9uIGNvbnN0cmFpbnRzLiBJbnRyb2R1Y2VkICJwYXJ0aWNsZSIKKwkgIGNvbXBvbmVudHMsIHdoaWNoIHNlZW0gdG8gYmUgcmVhbGx5IG5lZWRlZCBpZiBhcHBseWluZworCSAgY29uc3RyYWludHMuIENvcnJlY3RlZC9jaGFuZ2Ugc29tZSBvZiB0aGUgcGFyc2luZyBmdW5jdGlvbnMuCisJICBUaGlzIGlzIGFsbCBhIGJpdCBzY2FyeSwgc2luY2UgYSBzaWduaWZpY2FudCBjaGFuZ2UgdG8gdGhlIGNvZGUuCisJKiByZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDItKi5lcnIgcmVzdWx0L3NjaGVtYXMvZWxlbWVudC0qLmVycjoKKwkgIEFkYXB0ZWQgcmVncmVzc2lvbiB0ZXN0IHJlc3VsdHMuCisKK0ZyaSBBcHIgIDEgMTY6MDc6NTkgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2FwaWJ1aWxkLnB5IGRvYy9lbGZnY2NoYWNrLnhzbDogcmV2YW1wZWQgdGhlIGVsZmdjY2hhY2suaCAKKwkgIGZvcm1hdCB0byBjb3BlIHdpdGggZ2NjNCBjaGFuZ2Ugb2YgYWxpYXNpbmcgYWxsb3dlZCBzY29wZXMsIGhhZAorCSAgdG8gYWRkIGV4dHJhIGluZm9ybWF0aW9ucyB0byBkb2MvbGlieG1sMi1hcGkueG1sIHRvIHNlcGFyYXRlCisJICB0aGUgaGVhZGVyIGZyb20gdGhlIGMgbW9kdWxlIHNvdXJjZS4KKwkqICouYzogdXBkYXRlZCBhbGwgYyBsaWJyYXJ5IGZpbGVzIHRvIGFkZCBhICNkZWZpbmUgYm90dG9tX3h4eAorCSAgYW5kIHJlaW1wb3J0IGVsZmdjY2hhY2suaCB0aGVyZWFmdGVyLCBhbmQgYSBiaXQgb2YgY2xlYW51cHMuCisJKiBkb2MvLyogdGVzdGFwaS5jOiByZWdlbmVyYXRlZCB3aGVuIHJlYnVpbGRpbmcgdGhlIEFQSQorCitUaHUgTWFyIDMxIDE3OjIwOjMyIENFU1QgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNhdmUuYzogZml4ZWQgYnVnIHJlcG9ydGVkIGJ5IFBldHIgUGFqYXMsIGluIHRoZSBhYnNlbmNlIG9mCisJICBlbmNvZGluZyBVVEYtOCBzaG91bGQgcmVhbGx5IGJlIGFzc3VtZWQuIFRoaXMgbWF5IGJyZWFrIGlmIAorCSAgdGhlIEhUVFAgaGVhZGVycyBpbmRpY2F0ZXMgZm9yIGV4YW1wbGUgSVNPLTg4NTktMSBzaW5jZSB0aGlzCisJICB0aGVuIGJlY29tZXMgYSB3ZWxsIGZvcm1lZG5lc3MgZXJyb3IuCisKK1RodSBNYXIgMzEgMTY6NTc6MTggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmM6IGZpeGVkICMxNzIyNjAgcmVkdW5kYW50IGFzc2lnbm1lbnQuCisJKiBwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogZml4ZWQgeG1sU0FYUGFyc2VEb2MoKSBhbmQgCisJICB4bWxQYXJzZURvYygpIHNpZ25hdHVyZXMgIzE3MjI1Ny4KKworVGh1IE1hciAzMSAxNjoxMToxMCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4IHBvdGVudGlhbCBjcmFzaCBpZiBjdHh0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UKKwkgIGlzIE5VTEwgYXMgcmVwb3J0ZWQgYnkgYnVnICMxNzIyNTUKKworVGh1IE1hciAzMSAxNTozNjo1MiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGZpeGVkIGEgcHJvYmxlbSBpbiBSZWxheC1ORyB2YWxpZGF0aW9uICMxNTk5NjgKKwkqIHRlc3QvcmVsYXhuZy9saXN0LiogcmVzdWx0L3JlbGF4bmcvbGlzdF8qOiBhZGRlZCB0aGUgdGVzdAorCSAgdG8gdGhlIHJlZ3Jlc3Npb24gc3VpdGUKKworVGh1IE1hciAzMSAxMzowNjowMiBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLmM6IGZpeGVkIGJ1ZyAjMTY4NTA0CisKK1RodSBNYXIgMzEgMTI6MjI6NTQgQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlnLmguaW4gY29uZmlndXJlLmluIG5hbm9mdHAuYyBuYW5vaHR0cC5jIHhtbGxpbnQuYworCSAgbWFjb3Mvc3JjL2NvbmZpZy1tYWMuaDogdXNlIFhNTF9TT0NLTEVOX1QgaW5zdGVhZCBvZiBTT0NLTEVOX1QKKwkgIHNpbmNlIGFwcGFyZW50bHkgSUJNIGNhbid0IGF2b2lkIGJyZWFraW5nIGNvbW1vbiBkZWZpbmVzICMxNjY5MjIKKworVGh1IE1hciAzMSAxMDo0MTo0NSBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbmNvZGluZy5jOiBmaXggdW5pdGluaWFsaXplZCB2YXJpYWJsZSBpbiBub3QgZnJlcXVlbnRseSB1c2VkCisJICBjb2RlIGJ1ZyAjMTcyMTgyCisKK1RodSBNYXIgMzEgMDA6NDU6MTggQ0VTVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLnB5OiBhbm90aGVyIHBhdGNoIGZyb20gQnJlbnQKKwkgIEhlbmRyaWNrcyB0byBhZGQgbmV3IGhhbmRsZXJzIHdpdGggdGhlIHZhcmlvdXMgdmFsaWRpdHkgY29udGV4dHMKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvdmFsaWREVEQucHkKKwkgIHB5dGhvbi90ZXN0cy92YWxpZFJORy5weSBweXRob24vdGVzdHMvdmFsaWRTY2hlbWFzLnB5OiBhbHNvIAorCSAgYWRkZWQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgaGUgcHJvdmlkZWQKKworV2VkIE1hciAzMCAwOTozOToyNyBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYzogYXBwbGllZCBwYXRjaCBmcm9tIEJyZW50CisJICBIZW5kcmlja3MgdG8gYXZvaWQgbGVhayBpbiBweXRob24gYmluZGluZ3Mgd2hlbiB1c2luZyBzY2hlbWFzCisJICBlcnJvciBoYW5kbGVycy4KKworVHVlIE1hciAyOSAyMjoyOToyOCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jOiBmaXhpbmcgYnVnIDE2ODE5NiwgPGEgbmFtZT0iIj4gbXVzdCBiZSBVUkkgZXNjYXBlZCB0b28KKworU3VuIE1hciAyNyAxMzoyNDoyNCBDRVNUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGNsZWFudXAgb2YgdGhlIFByb3AgcmVsYXRlZCBmdW5jdGlvbnMgYW5kIHhtbE5ld05vZGVFYXROYW1lCisJICBieSBSb2IgUmljaGFyZHMKKworVGh1IE1hciAyNCAxOTowMToyMiBQU1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZ2VudGVzdC5weSwgdGVzdGFwaS5jOiBmaXhlZCBwcm9ibGVtIHdpdGggJ21pbmltYWwgbGlicmFyeScKKwkgIGNvbXBpbGF0aW9uIChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEIG5vdCBwcm9wZXJseSBjaGVja2VkKSByZXBvcnRlZAorCSAgYnkgR3JlZyBNb3JnYW4KKworVGh1IE1hciAyNCAxMjowMTozMCBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRml4ZWQgY2FsbCB0byBhIGZhY2V0IGVycm9yIHJlcG9ydDogdGhlIHR5cGUgb2YKKwkgIHRoZSBlcnJvciB3YXMgd3JvbmcsIHJlc3VsdGluZyBpbiBhIHNlZ2ZhdWx0IChidWcgIzE3MTIyMCwgcmVwb3J0ZWQKKwkgIGJ5IEdVWSBGYWJyaWNlKS4KKworTW9uIE1hciAyMSAyMjo1ODozNyBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogUmVtb3ZlZCBhIHN0dXBpZCBidWcgaW4geG1sU2NoZW1hVmFsaWRhdGVBdHRyaWJ1dGVzLAorCSAgZmFpbGluZyB0byBidWlsZCBhIGxpbmtlZCBsaXN0IGNvcnJlY3RseSAoYnVnICMxNjk4OTgsIHJlcG9ydGVkCisJICBieSBiaW5nIHNvbmcsIGhtbS4uLikuCisKK01vbiBNYXIgMjEgMjE6MDk6MDcgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEZpeGVkIGEgc2VnZmF1bHQsIHdoaWNoIG9jY3VyZWQgZHVyaW5nIGJ1YmJsaW5nCisJICBvZiBJREMgbm9kZXMgKGJ1ZyAjMTcwNzc5IGFuZCAjMTcwNzc4LCByZXBvcnRlZCBieSBHVVkgRmFicmljZSk6CisJICBhIHZhcmlhYmxlIHdhcyBtaXNzZWQgdG8gYmUgcmVzZXQgaW4gYSBsb29wLiBEZWFjdGl2YXRlZCBidWJibGluZywKKwkgIGlmIG5vdCByZWZlcmVuY2VkIGJ5IGEga2V5cmVmLgorCitTdW4gTWFyIDIwIDExOjEzOjAyIFBTVCAyMDA1IEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisJCisJKiBjMTRuLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogc3BlY2lhbCBjYXNlICJEQVY6IiBuYW1lc3BhY2UKKwlpbiBjMTRuIHJlbGF0aXZlIG5hbWVzcGFjZXMgY2hlY2sgYW5kIGFkZCBzdHJ1Y3R1cmVkIGVycm9yIG1lc3NhZ2VzCisJdG8gYzE0biBjb2RlCisKK1RodSBNYXIgMTcgMTI6NTU6MjMgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IFJlbW92ZWQgaW5oZXJpdGFuY2Ugb2YgIm1peGVkIiBjb250ZW50IHR5cGUgZm9yCisJICBzaG9ydC1oYW5kIHJlc3RyaWN0aW9ucyBvZiAiYW55VHlwZSIgKHJlcG9ydGVkIGJ5IEd1eSBGYWJyaWNlCisJICB0byB0aGUgbWFpbGluZyBsaXN0KS4gQWRkZWQgdGhlIG5hbWVzcGFjZSBjb252ZXJzaW9uIChjaGFtZWxlb24KKwkgIGluY2x1ZGVzKSBmb3IgdGhlIGJhc2UgdHlwZSByZWZlcmVuY2Ugb2YgPHJlc3RyaWN0aW9uPiBhbmQKKwkgIDxleHRlbnNpb24+LgorCSogdGVzdC9zY2hlbWFzL2J1ZzE1MjQ3MF8xLnhzZDogQWRhcHRlZCBkdWUgdG8gdGhlIGFib3ZlIGNoYW5nZQorCSAgb2YgIm1peGVkIiBpbmhlcml0YW5jZS4KKworVGh1IE1hciAxNyAxMTowMzo1OSBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogZml4ZWQgYSA9IC0+ID09IGVycm9yIHBvaW50ZWQgYnkgR1VZIEZhYnJpY2UKKworV2VkIE1hciAxNiAyMjo1Mzo1MyBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogbW9yZSBkZWJ1ZyBtZXNzYWdlcyBmcm9tIE1hdHRoZXcgQnVyZ2VzcworCSogeG1sc2NoZW1hc3R5cGVzLmM6IHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQgQVBJIG1pc3NpbmcgY2hlY2suCisKK1dlZCBNYXIgMTYgMTc6Mzc6MDQgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogQWFhYW5ubmQgcHV0dGluZyBiYWNrIHRoZSBwcmV2aW91cyBjaGFuZ2VzIGRvbmUKKwkgIGJ5IERhbmllbCwgd2hpY2ggSSBvdmVyd3JvdGUgd2l0aCB0aGUgcHJldmlvdXMgY29tbWl0LgorCitXZWQgTWFyIDE2IDE3OjIwOjI1IENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oOgorCSAgSG9wZWZ1bGx5IGZpbmlzaGVkIHZhbGlkYXRpb24gYWdhaW5zdCBmYWNldHMgdG8gdXNlIHRoZSBub3JtYWxpemVkCisJICB2YWx1ZSBvZiBib3RoLCB0aGUgZmFjZXRzIGFuZCBpbnN0YW5jZSB2YWx1ZXMuIEFkZGVkIAorCSAgeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwKCksIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCgpCisJICBhbmQgeG1sU2NoZW1hR2V0VmFsVHlwZSgpIHRvIHRoZSBzY2hlbWEgQVBJLgorCitXZWQgTWFyIDE2IDEzOjU1OjMxIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IGRvIG5vdCBwYWNrYWdlIC5sYSBmaWxlcworCSogeG1sbGludC5jOiBhcHBsaWVkIHBhdGNoIGZyb20gR2VycnkgTXVycGh5IGZvciB4bWxsaW50IHJldHVybiBjb2RlCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogZml4ZWQgYSBjb3VwbGUgb2YgbWlzc2luZyB0ZXN0cyBvZiBwYXJhbWV0ZXJzCisJICBhdCBwdWJsaWMgQVBJIGVudHJ5IHBvaW50cy4KKworVHVlIE1hciAxNSAyMzozMToxNCBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGEgY291cGxlIG9mIG1vcmUgY2hhbmdlcyB0byB2YXJpb3VzCisJICBkZWNpbWFsLWhhbmRsaW5nIHJvdXRpbmVzLiAgRml4ZXMgcHl0aG9uIHNvbWUgcHJvYmxlbXMKKwkgIHR1cm5lZCB1cCBieSB0aGUgcHl0aG9uIHRlc3RzLgorCSogTWFrZWZpbGUuYW06IGNoYW5nZSBTY2hlbWFzUHl0aG9uVGVzdHMgbWVzc2FnZSB0byB3YXJuCisJICB0aGF0IHRoZXJlIGFyZSAxMCAnZXhwZWN0ZWQnIGVycm9ycyAocmF0aGVyIHRoYW4gNikgc2luY2UKKwkgIHdlIG5vdyByZWplY3QgYSAnKycgc2lnbiBvbiBhbiB1bnNpZ25lZC4KKworVHVlIE1hciAxNSAxNTo0MzoyNyBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jIHhtbHNjaGVtYXN0eXBlcy5oOiBJbiBwcmVwYXJhdGlvbiB0byB1c2UKKwkgIG5vcm1hbGl6ZWQgdmFsdWVzIG9mIGZhY2V0cyBkdXJpbmcgdmFsaWRhdGlvbjogY2hhbmdlZCB0aGUKKwkgIGFyZ3VtZW50cyBvZiBzb21lIHN0cmluZyBjb21wYXJpc29uIGZ1bmN0aW9uczsgYWRkZWQgYSBzdGF0aWMKKwkgIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRJbnRlcm5hbCgpIHdpdGggbW9yZSBhcmd1bWVudHMgdG8gYmUKKwkgIG1vcmUgZmxleGlibGUuIFByZXBhcmVkIFhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT04gdmFsaWRhdGlvbgorCSAgdG8gdXNlIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9ucy4gRml4ZWQgc29tZSBhc3NpZ25tZW50cyBpbgorCSAgeG1sU2NoZW1hVmFsQXRvbWljVHlwZSgpOiB0b3RhbCBkaWdpdCBjb3VudCwgbG8sIG1pLCBoaS4KKworU3VuIE1hciAxMyAxOTozMjowMyBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE5FV1MgY29uZmlndXJlLmluIHRlc3RhcGkuYyBkb2MvKjogcHJlcGFyaW5nIHJlbGVhc2Ugb2YgMi42LjE4CisJICB1cGRhdGVkIGRvY3MgYW5kIHJlYnVpbHQKKwkqIGxpYnhtbC5zcGVjLmluOiByZWFjdGl2YXRlZCBnY2MgcHJvZmlsaW5nIGZvciBnY2MgPj0gNC4wLjAKKworU2F0IE1hciAxMiAxOTo1MDoyMiBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmM6IHJlbW92ZWQgYSBzdGF0aWMgYnVmZmVyIGluIHhtbEJ5dGVDb25zdW1lZCgpLAorCSAgYXMgcG9pbnRlZCBieSBCZW4gTWF1cmVyLCBmaXhlcyAjMTcwMDg2CisJKiB4bWxzY2hlbWFzLmM6IHJlbW92ZSBhIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgcG9pbnRlciB3YXJuaW5nCisKK0ZyaSBNYXIgMTEgMjM6NTM6MTMgSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBlbmhhbmNlZCB0aGUgcGFyc2luZyBvZiBYTUxfU0NIRU1BU19ERUNJTUFMCisJICBhbmQgbXVjaCBvZiB0aGUgcm91dGluZSB4bWxTY2hlbWFDb21wYXJlRGVjaW1hbHMuICBUaGUKKwkgIGNoYW5nZXMgd2VyZSBuZWNlc3NhcnkgdG8gZml4IGEgcHJvYmxlbSByZXBvcnRlZCBvbiB0aGUKKwkgIG1haWxpbmcgbGlzdCBieSBKb2huIEhvY2thZGF5LgorCitGcmkgTWFyIDExIDEzOjIyOjUyIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBUaGUgc2NoZW1hIHBhcnNlciB3aWxsIHN0b3AgaWYgY29tcG9uZW50cyBjb3VsZAorCSAgbm90IGJlIHJlc29sdmVkLiBUaGlzIGlzIG5vdCBjb25mb3JtaW5nIHRvIHRoZSBzcGVjIGJ1dCBmb3Igbm93CisJICB3aWxsIGF2b2lkIGludGVybmFsIGVycm9ycyBkdXJpbmcgdHlwZSBmaXh1cCBhbmQgY29udGVudCBtb2RlbAorCSAgY3JlYXRpb24uIFJlc3RydWN0dXJlZCBpbmNsdXNpb24vaW1wb3J0IG9mIHNjaGVtYXRhOiB0aGlzIGF2b2lkcworCSAgZHVwbGljYXRlLCBzZWxmIGFuZCBjaXJjdWxhciBpbmNsdXNpb24uIENoYW1lbGVvbiBpbmNsdWRlcyBhcmUKKwkgIHN0aWxsIHdvcmthcm91bmRlZC4gQWRkZWQgcmVzdHJpY3Rpb24gdG8gZGlzYWxsb3cgcmVmZXJlbmNlcyB0bworCSAgbm9uLWltcG9ydGVkIG5hbWVzcGFjZXMuIENvcnJlY3RlZCBwYXJzaW5nIG9mIDxncm91cD4uCisJKiByZXN1bHQvc2NoZW1hcy9idWcxNjc3NTRfMF8wKjogQWRkZWQgYSBtaXNzaW5nIHRlc3QgcmVzdWx0LgorCitUaHUgTWFyIDEwIDE2OjAyOjE3IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL3htbC5odG1sIGRvYy9lbmNvZGluZy5odG1sOiBFbnJpY2hlZCBlbmNvZGluZy5odG1sIHdpdGggbW9yZQorCSAgbGluayBhbmQgZm9yZXdvcmQgd2FybmluZyB0byBhdm9pZCBwcm9ibGVtIHdpdGggaWdub3JhbnQKKwkgIHByb2dyYW1tZXJzLCBjLmYgIzE2OTcyMQorCitUaHUgTWFyIDEwIDE1OjAxOjM0IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9yZWFkZXJuZXh0LnB5OiBhZGRlZAorCSAgYSByZWdyZXNzaW9uIHRlc3QgZnJvbSBSb2IgUmljaGFyZHMgZm9yIHRoZSBwcmV2aW91cyBidWcKKworVGh1IE1hciAxMCAxMzoyMjozNiBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBhcHBsaWVkIGZpeCBmb3IgeG1sVGV4dFJlYWRlck5leHQoKSBidWcgZnJvbQorCSAgUm9iIFJpY2hhcmRzCisKK1RodSBNYXIgMTAgMTE6MzU6NTcgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxtb2R1bGUuYzogc2Vjb25kIHBhdGNoIGZyb20gUmljayBKb25lcywgcG9ydGFiaWxpdHkgZml4IGZvcgorCSAgSFAtVVgKKwkqIGRvYy9leGFtcGxlcy94cGF0aDEuYyBkb2MvZXhhbXBsZXMveHBhdGgyLmM6IGZpcnN0IGZpeCBmcm9tIFJpY2sgSm9uZXMKKwkgIHRvIGF2b2lkIHdhcm5pbmdzLgorCitUaHUgTWFyIDEwIDEwOjIwOjIzIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvaGFzaC5oIGxpYnhtbC5oIGxpYnhtbC5zcGVjLmluOiBzb21lIGdjYzQgcG9ydGFiaWxpdHkKKwkgIHBhdGNoZXMsIGluY2x1ZGluZyBhIHNlcmlvdXMgYWxpYXNpbmcgYnVnIGV4cG9zZWQgaW4gczM5MCAKKwkgIHdoZW4gdHJ5aW5nIHRvIGNvbnZlcnQgZGF0YSBwb2ludGVyIHRvIGNvZGUgcG9pbnRlci4KKworTW9uIE1hciAgNyAxODozNDowMCBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogVGlueSByZXN0cnVjdHVyaW5nIG9mIHRoZSB2YWxpZGF0aW9uIHN0YXJ0LXVwCisJICBmdW5jdGlvbnMuIEFkZGVkIGNsZWFudXAgb2YgdGhlIHZhbGlkYXRpb24gY29udGV4dCBhdCB0aGUKKwkgIGVuZCBvZiB2YWxpZGF0aW9uLiBUaGlzIHRha2VzIGNhcmUgb2YgdGhlIHZhbGlkYXRpb24gY29udGV4dAorCSAgYmVpbmcgcmV1c2VkLgorCitNb24gTWFyICA3IDEyOjEyOjAxIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IFRpbnkgY2hhbmdlcyBpbiB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbnMKKwkgIEkgZm9yZ290IHRvIGNvbW1pdCBsYXN0IHRpbWUuCisKK0ZyaSBNYXIgIDQgMjI6NTE6NDIgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEFkZGVkIElEQyB2YWxpZGF0aW9uIG9mIGFueVNpbXBsZVR5cGUgYXR0cmlidXRlCisJICB2YWx1ZXM7IGFueXdheSB0aGUgSURDIGtleSBjb21wYXJpc29uIGlzIHJlc3RyaWN0ZWQgdG8KKwkgIGFueVNpbXBsZVR5cGUgPC0tPiBzdHJpbmcgYmFzZWQgdHlwZXMuIEZvciBvdGhlciB0eXBlcyB3ZQorCSAgd291bGQgcG9zc2libHkgbmVlZCB0aGUgY2Fub25pY2FsIGxleGljYWwgcmVwcmVzZW50YXRpb24gb2YKKwkgIHRoZW07IHRoaXMgc291bmRzIG5vdCBwZXJmb3JtYW50LCBzaW5jZSB3ZSB3b3VsZCBuZWVkIHRvCisJICBidWlsZCBzdWNoIGEgcmVwcmVzZW50YXRpb24gZWFjaCB0aW1lIHdlIHdhbnQgdG8gY29tcGFyZSBhZ2FpbnN0CisJICBhbnlTaW1wbGVUeXBlLiBUT0RPOiB0aGluayBhYm91dCBidWZmZXJpbmcgdGhlIGNhbm9uaWNhbCB2YWx1ZXMKKwkgIHNvbWV3aGVyZS4gRml4ZWQgZXJyb3IgcmVwb3J0cyBmb3IgZGVmYXVsdCBhdHRyaWJ1dGVzIHRvIHdvcmsKKwkgIHdpdGhvdXQgYSBub2RlIGJlaW5nIHNwZWNpZmllZC4gVGhpcyBhbGwgYW5kIHRoZSBlbmFibGluZyBvZiBJREMKKwkgIHZhbGlkYXRpb24gZml4ZXMgYnVnICMxNjUzNDYgKHJlcG9ydGVkIGJ5IEJlbm9pdCBHcj9nb2lyZSAtIGNvdWxkCisJICBub3QgcmVhZCBoaXMgbGFzdCBuYW1lIGNvcnJlY3RseSBmcm9tIGJ1Z3ppbGxhKS4KKworRnJpIE1hciAgNCAxODo1Nzo0NCBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogRW5hYmxlZCBJREMgcGFyc2luZyBhbmQgdmFsaWRhdGlvbi4KKwkqIHhtbHNjaGVtYXN0eXBlcy5jIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oOiAKKwkgIEFkZGVkIHhtbFNjaGVtYUNvcHlWYWx1ZSB0byB0aGUgQVBJOyB0aGlzIHdhcyBkb25lIGR1ZSB0bworCSAgdmFsaWRhdGlvbiBvZiBkZWZhdWx0IGF0dHJpYnV0ZXMgYWdhaW5zdCBJRENzOiBzaW5jZSBJREMga2V5cworCSAgY29uc3VtZSB0aGUgcHJlY29tcHV0ZWQgdmFsdWUsIG9uZSBuZWVkcyBhIGNvcHkuCisJKiBwYXR0ZXJuLmM6IEVuYWJsZWQgSURDIHN1cHBvcnQ7IHRoaXMgaXMgY3VycmVudGx5IGRvbmUKKwkgIHZpYSBjYWxsaW5nIHhtbFBhdHRlcm5jb21waWxlIHdpdGggYSBmbGFnIGFyZyBvZiAxLgorCitXZWQgTWFyICAyIDExOjQ1OjE4IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gZG9jL2V4YW1wbGVzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbQorCSAgeHN0Yy9NYWtlZmlsZS5hbTogdHJ5IHRvIGZpeCBhIHByb2JsZW0gd2l0aCB2YWxncmluZC4KKwkqIHB5dGhvbi9nZW5lcmF0b3IucHkgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbQorCSAgcHl0aG9uL3Rlc3RzL3RzdG1lbS5weTogYXBwbGllZCBtZW1vcnkgbGVhayBmaXggZnJvbSBCcmVudCBIZW5kcmlja3MKKwkgIGMuZi4gYnVnICMxNjUzNDkKKworTW9uIEZlYiAyOCAxMToxODoyNCBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHRyZWUuYzogQ2hhbmdlZCB4bWxTZWFyY2hOc0J5SHJlZiB0byBjYWxsIHhtbE5zSW5TY29wZSB3aXRoCisJICB0aGUgcHJlZml4IGluc3RlYWQgb2YgdGhlIG5hbWVzcGFjZSBuYW1lLgorCSogdGVzdC9zY2hlbWFzL2Fubm90LWVycl8wLnhzZCB0ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2Q6CisJICBBZGFwdGVkIGludmFsaWQgdmFsdWVzIG9mIHRoZSAiaWQiIGF0dHJpYnV0ZSwgc2luY2UgdGhleSBhcmUKKwkgIHZhbGlkYXRlZCBub3cuCisKK0ZyaSBGZWIgMjUgMDg6MzE6MTYgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0aHJlYWRzLmM6IG5ldyB2ZXJzaW9uIHdpdGggZml4ZXMgZnJvbSBSb2IgUmljaGFyZHMKKworVGh1IEZlYiAyNCAxNjozNzo1MSBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRocmVhZHMuYzogYXBwbGllZCBwYXRjaCBmcm9tIFJpY2ggU2FseiBmb3IgbXVsdGl0aHJlYWRpbmcgb24KKwkgIFdpbmRvd3MuCisKK1dlZCBGZWIgMjMgMTU6MDQ6NDYgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWx3cml0ZXIuYzogYXBwbGllZCBhIHBhdGNoIGZyb20gUm9iIFJpY2hhcmRzIGZpeGluZyBhIGNvdXBsZQorCSAgb2YgYnVncyBpbiB0aGUgd3JpdGVyCisKK01vbiBGZWIgMjEgMjE6NTE6MDMgSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbHNhdmUuYzogZml4ZWQgcHJvYmxlbSB3aGVuIFhNTExJTlRfSU5ERU5UIHdhcyBlbXB0eSAoYnVnIDE2ODAzMykuCisJKiB4cGF0aC5jOiBmaXhlZCBjb21waWxhdGlvbiB3YXJuaW5nLCBubyBjaGFuZ2UgdG8gbG9naWMuCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogZml4ZWQgY29tcGlsYXRpb24gd2FybmluZywgbm8gY2hhbmdlIHRvIGxvZ2ljLgorCitNb24gRmViIDIxIDE0OjQ4OjI3IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sd3JpdGVyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBSb2IgUmljaGFyZHMgdG8gZml4IGEgcHJvYmxlbSB3aXRoCisJICB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUworCitNb24gRmViIDIxIDExOjQxOjQxIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGF0dGVybi5jIHhwYXRoLmM6IGZpeGVkIHJlbWFpbmluZyBrbm93biBidWdzIGluIHRoZSBYUGF0aCBzdHJlYW1pbmcsCisJICBhbmQgc3dpdGNoZWQgWFBhdGggdG8gdXNlIGl0IGJ5IGRlZmF1bHQgd2hlbiBwb3NzaWJsZQorCitTYXQgRmViIDE5IDE5OjI1OjE0IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGEgYml0IG9mIGNsZWFudXAKKwkqIGVsZmdjY2hhY2suaCB0ZXN0YXBpLmMgZG9jLyo6IHJlYnVpbHQgdGhlIEFQSSB0aGUgdGVzdHMgYW5kCisJICB0aGUgZG9jdW1lbnRhdGlvbiBhcyBhIHJlc3VsdC4KKworRnJpIEZlYiAxOCAyMDozNDowMyBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiBhcHBsaWVkIHBhdGNoIGZyb20KKwkgIEFyb24gU3RhbnN2aWsgdG8gYWRkIHhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQoKQorCSogdGVzdFJlYWRlci5jOiBhZGRlZCBhIHRlc3Qgb3B0aW9uCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogZml4IGEgbGFjayBvZiBwb2ludGVyIGNoZWNraW5nIGluIEFQSXMKKworRnJpIEZlYiAxOCAxMjo0MToxMCBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHRlc3Qvc2NoZW1hcy9idWcxNjc3NTRfMCo6IEFkZGVkIHRoZSByZWdyZXNzaW9uIHRlc3Qgb2YgRnJhbnMKKwkgIEVuZ2xpY2ggZm9yIGJ1ZyAjMTY3NzU0LgorCitGcmkgRmViIDE4IDEyOjMxOjQ5IENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBTdGFydGVkIHN1cHBvcnQgZm9yIElEQyByZXNvbHV0aW9uIHRvIGRlZmF1bHQKKwkgIGF0dHJpYnV0ZXMuIElmIGJ1aWxkaW5nIHRoZSBjb250ZW50IG1vZGVsIGZvciA8YWxsPjogZW5zdXJlZAorCSAgdG8gcHV0IGVsZW1lbnQgZGVjbGFyYXRpb25zIGFuZCBub3QgdGhlIHBhcnRpY2xlcyBpbnRvIHRoZQorCSAgY29udGVudCBtb2RlbCBhdXRvbWF0b24gKHRoaXMgd2FzIGJ1ZyAjMTY3NzU0LCByZXBvcnRlZCBieQorCSAgRnJhbnMgRW5nbGljaCkuCisKK1RodSBGZWIgMTcgMjI6MzE6NTggQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiBwYXR0ZXJuLmMgcGF0dGVybi5oOiBTb21lIGV4cGVyaW1lbnRhbCBhZGRpdGlvbiBmb3IgcGFyc2luZworCSAgb2YgZXhwcmVzc2lvbnMgYW5kIHN0cmVhbWFibGUgdmFsaWRhdGlvbi4KKwkgIEFkZGVkIHhtbFN0cmVhbVB1c2hBdHRyIHRvIHRoZSBBUEkuCisKK1RodSBGZWIgMTcgMTk6NTc6MzUgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEFkZGVkIHZhbGlkYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgImlkIiBpbiB0aGUKKwkgIHNjaGVtYXRhOyBkb2luZyB0aGlzIG5lZWRlZCBlcnJvciByZXBvcnQgZml4ZXMgZm9yIG5vdGF0aW9ucywKKwkgIGZhY2V0cyBhbmQgZ3JvdXAuIENoYW5nZWQgTk9UQVRJT04gdmFsaWRhdGlvbiB0byB3b3JrIHdpdGggdGhlCisJICBkZWNsYXJlZCBOT1RBVElPTnMgaW4gdGhlIHNjaGVtYTsgdGhpcyBkb2VzIGhhdmUgbm8gaW1wYWN0IG9uCisJICB0aGUgdmFsaWRhdGlvbiB2aWEgdGhlIHJlbGF4bmcgbW9kdWxlLgorCSogeG1sc2NoZW1hc3R5cGVzLmMgaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg6CisJICBBZGRlZCB4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlIHRvIHRoZSBBUEkgdG8gYmUgYWJsZSB0byBkbworCSAgdGhlIE5PVEFUSU9OIHZhbGlkYXRpb24gZGVzY3JpYmVkIGFib3ZlLgorCSogdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkIHRlc3Qvc2NoZW1hcy9hbm5vdC1lcnJfMC54c2Q6CisJICBGaXhlZCB0aGUgdmFsdWVzIG9mIHRoZSAiaWQiIGF0dHJpYnV0ZXMsIHdoaWNoIHdlcmUgbm90IHZhbGlkYXRlZAorCSAgcHJldmlvdXNseS4gIAorCitUaHUgRmViIDE3IDEyOjAzOjQ2IENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBGaXhlZCBjb21wYXJpc29uIGZvciBkZWZhdWx0L2ZpeGVkIGF0dHJpYnV0ZQorCSAgdmFsdWVzLCBpZiB0aGUgdHlwZSB3YXMgJ3hzZDpzdHJpbmcnLiBDaGFuZ2VkIHRoZSBjb21wYXJpc29uCisJICBmb3IgSURDcyB0byB1c2UgdGhlIHdoaXRlc3BhY2UgYXdhcmUgY29tcGFyaXNvbiBmdW5jdGlvbi4KKwkqIHhtbHNjaGVtYXN0eXBlcy5jIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oOgorCSAgQWRkZWQgeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSwgeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUgYW5kCisJICB4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AgdG8gdGhlIEFQSS4gQWRkZWQgZnVuY3Rpb25zCisJICB0byBjb21wYXJlIHN0cmluZ3Mgd2l0aCB3aGl0ZXNwYWNlIGNvbWJpbmF0aW9ucyBvZiAicHJlc2VydmUiLAorCSAgInJlcGxhY2UiIGFuZCAiY29sbGFwc2UiLgorCitXZWQgRmViIDE2IDEzOjI0OjM1IENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBGdXJ0aGVyIHdvcmsgb24gSURDcywgZXNwZWNpYWxseSBldmFsdWF0aW9uIGZvcgorCSAgYXR0cmlidXRlIG5vZGVzLgorCitXZWQgRmViIDE2IDAxOjE5OjI3IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYzogZml4IHRoZSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSByZWFsIHJldHVybiB2YWx1ZXMKKwkqIHBhdHRlcm4uYyB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3BhdHRlcm4uaDogbG90IG9mIHdvcmsgb24KKwkgIHRoZSBwYXR0ZXJucywgcGx1Z2dpbiBpbiB0aGUgWFBhdGggZGVmYXVsdCBldmFsdWF0aW9uLCBidXQKKwkgIGRpc2FibGVkIHJpZ2h0IG5vdyBiZWNhdXNlIGl0J3Mgbm90IHlldCBnb29kIGVub3VnaCBmb3IgWFNMVC4KKwkgIHBhdHRlcm4uaCBzdHJlYW1pbmcgQVBJIGFyZSBsaWtlbHkgdG8gYmUgY2hhbmdlZCB0byBoYW5kbGUKKwkgIHJlbGF0aXZlIGFuZCBhYnNvbHV0ZSBwYXRocyBpbiB0aGUgc2FtZSBleHByZXNzaW9uLgorCitUdWUgRmViIDE1IDE1OjMzOjMyIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBBZGRlZCBJREMgZXZhbHVhdGlvbiBmb3IgYXR0cmlidXRlIG5vZGVzLgorCSAgTWFkZSAnbmlsJ2VkIGVsZW1lbnRzIHdvcmsuIEFkZGVkIGEgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZQorCSAgZm9yICdzdHJpY3QnIGF0dHJpYnV0ZSB3aWxkY2FyZHMuCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBBZGRlZCBhbiBlcnJvciBjb2RlIGZvcgorCSAgd2lsZGNhcmRzLgorCSogcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMtZXJyMV8wXzAuZXJyOiBBZGFwdGVkLiAgCisKK1N1biBGZWIgMTMgMTY6MTU6MDMgSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwlUaGlzIGNoYW5nZSBzdGFydGVkIG91dCBhcyBhIHNpbXBsZSBkZXNpcmUgdG8gc3BlZWQgdXAgdGhlCisJZXhlY3V0aW9uIHRpbWUgb2YgdGVzdGFwaS5jLCB3aGljaCB3YXMgYmVpbmcgZGVsYXllZCBieQorCW5hbWVzZXJ2ZXIgcmVxdWVzdHMgZm9yIG5vbi1leGlzdGVudCBVUkwncy4gIEZyb20gdGhlcmUgaXQKKwlqdXN0IHNvcnQgb2YgZ3JldywgYW5kIGdyZXcuLi4uCisJKiBuYW5vaHR0cC5jLCBuYW5vZnRwLmM6IGNoYW5nZWQgdGhlIHByb2Nlc3Npbmcgb2YgVVJMJ3MKKwkgIHRvIHVzZSB0aGUgdXJpLmMgcm91dGluZXMgaW5zdGVhZCBvZiBjdXN0b20gY29kZS4KKwkqIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGFkZGVkIGNvZGUgWE1MX0ZUUF9VUkxfU1lOVEFYCisJKiB1cmkuYzogYWRkZWQgYWNjZXB0aW5nIGlwVjYgYWRkcmVzc2VzLCBpbiBhY2NvcmRhbmNlIHdpdGgKKwkgIFJGQydzIDI3MzIgYW5kIDIzNzMgKFRPRE86IGFsbG93IGlwVjQgd2l0aGluIGlwVjYpCisJKiBnZW50ZXN0LnB5LCB0ZXN0YXBpLmM6IGZpeGVkIGEgZmV3IHByb2JsZW1zIHdpdGggdGhlCisJICB0ZXN0aW5nIG9mIHRoZSBuYW5vZnRwIGFuZCBuYW5vaHR0cCByb3V0aW5lcy4KKwkqIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaDogbWlub3IgY2hhbmdlIHRvIGZpeCBhCisJICB3YXJuaW5nIG9uIHRoZSBkb2NzIGdlbmVyYXRpb24KKwkqIHJlZ2VuZXJhdGVkIHRoZSBkb2NzCisKK1NhdCBGZWIgMTIgMDk6MDc6MTEgSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGVkIHhtbFhJbmNsdWRlUGFyc2VGaWxlIHRvIHByZXZlbnQKKwkgIG92ZXJ3cml0aW5nIFhNTF9DT01QTEVURV9BVFRSUyB3aGVuIHNldHRpbmcgcGN0eHQtPmxvYWRzdWJzZXQKKwkgIChidWcgMTY2MTk5KQorCSogTWFrZWZpbGUuYW0sIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSwgeHN0Yy9NYWtlZmlsZS5hbTogYWRkZWQKKwkgIGNvZGUgdG8gYWRkICQodG9wX2J1aWxkZGlyKS8ubGlicyB0byBMRF9MSUJSQVJZX1BBVEggd2hlbmV2ZXIKKwkgIFBZVEhPTlBBVEggaXMgc2V0LCB0byBhc3N1cmUgbmV3IGxpYnhtbDIgcm91dGluZXMgYXJlIHVzZWQuCisKK0ZyaSBGZWIgMTEgMjI6MjA6NDEgSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBwcm9ibGVtIHdoZW4gbm8gaW5pdGlhbCAiY2h1bmsiIHdhcworCSAgZ2l2ZW4gdG8geG1sQ3JlYXRlUHVzaFBhcnNlciAoYnVnIDE2MjYxMykKKworRnJpIEZlYiAxMSAxODozNzoyMiBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZGljdC5jOiBmaXhlZCBjb21waWxhdGlvbiB3YXJuaW5nCisJKiBwYXJzZXIuYzogY2hhbmdlZCB4bWxXYXJuaW5nTXNnIHNvIGN0eHQtPmVyck5vIGlzIG5vdCBzZXQKKwkqIHhtbGxpbnQuYzogY2hhbmdlZCB0byByZXR1cm4gbm9uLXplcm8gc3RhdHVzIGlmIGVycm9yCisJICBvbiB4aW5jbHVkZSBwcm9jZXNzaW5nCisJKiB4bWxzYXZlLmM6IG1pbm9yIGRlbGV0aW9uIG9mIGEgcmVkdW5kYW50IGNvbmRpdGlvbiBzdGF0ZW1lbnQKKwkKK1dlZCBGZWIgIDkgMTc6NDc6NDAgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGFwcGxpZWQgcGF0Y2ggdG8geG1sU2V0TnNQcm9wIGZyb20gTWlrZSBIb21tZXkKKworU3VuIEZlYiAgNiAwMDoxNzo1NyBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhdHRlcm4uYyB4bWxsaW50LmM6IGZpeGVkIGltcGxlbWVudGF0aW9uIGZvciB8CisJKiB0ZXN0L3BhdHRlcm4vY29uai4qIHJlc3VsdC9wYXR0ZXJuL2Nvbmo6IGFkZGVkIGEgc3BlY2lmaWMgcmVncmVzc2lvbgorCSAgdGVzdAorCitTYXQgRmViICA1IDE4OjM2OjU2IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGF0dGVybi5jOiBmaXJzdCBpbXBsZW1lbnRhdGlvbiBmb3IgfCBzdXBwb3J0CisKK1NhdCBGZWIgIDUgMTQ6NTg6NDYgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXR0ZXJuLmM6IGZpeGVkIHRoZSBuYW1lc3BhY2VzIHN1cHBvcnQKKwkqIHRyZWUuYzogZml4ZWQgeG1sR2V0Tm9kZVBhdGggd2hlbiBuYW1lc3BhY2VzIGFyZSB1c2VkCisJKiByZXN1bHQvcGF0dGVybi9tdWx0aXBsZSByZXN1bHQvcGF0dGVybi9uYW1lc3BhY2VzCisJICB0ZXN0L3BhdHRlcm4vbXVsdGlwbGUuKiB0ZXN0L3BhdHRlcm4vbmFtZXNwYWNlcy4qOiBhZGRlZAorCSAgbW9yZSByZWdyZXNzaW9uIHRlc3RzCisKK0ZyaSBGZWIgIDQgMTg6MjY6NDMgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeGVkIG9uZSBpbnRlcm5hbCBmdW5jdGlvbgorCSogZG9jL01ha2VmaWxlLmFtIGRvYy93aWtpLnhzbDogYXBwbGllZCBwYXRjaCBmcm9tIEpvZWwgUmVlZAorCSogdGVzdGFwaS5jIGRvYy9saWJ4bWwyLWFwaS54bWwgZG9jL2xpYnhtbDItcmVmcy54bWw6IHJlZ2VuZXJhdGVkCisKK0ZyaSBGZWIgIDQgMDA6MjU6NDMgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogdXNlIHRoZSB3YWxrZXIgdG8gdGVzdCB0aGUgcGF0dGVybnMgaW5zdGVhZCBvZgorCSAgdGhlIG5vcm1hbCByZWFkZXIKKwkqIHBhdHRlcm4uYyB4bWxsaW50LmM6IGJ1ZyBmaXhlcyBpbiB0aGUgdHJhaW4gaW5jbHVkaW5nIGZpeGluZyB0aGUKKwkgIHN0dXBpZCBidWlsZCBicmVhay4KKworVHVlIEZlYiAgMSAxODoxNTo1MiBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhdHRlcm4uYzogbW9yZSBidWcgZml4ZXMgZm9yIHRoZSBYUGF0aCBzdHJlYW1pbmcgY29kZS4KKworTW9uIEphbiAzMSAxNzo1OToyNCBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogSW50ZWdyYXRlZCB0aGUgc3RyZWFtaW5nIHBhdHRlcm4gZnJvbSB0aGUKKwkgIHBhdHRlcm4gbW9kdWxlLiBGaXhlZCBzb21lIElEQyBjb2RlIGJ1Z3MuIENoYW5nZWQKKwkgIGZhbGxiYWNrIGZvciBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gYWRkaXRpb24gdG8gd29yayBsaWtlIGZvcgorCSAgZWxlbWVudCBkZWNsYXJhdGlvbnMuCQorCitNb24gSmFuIDMxIDAxOjI3OjIyIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGF0dGVybi5jIHhtbGxpbnQuYzogYnVnZml4ZXMgYXJvdW5kIHRoZSBzdHJlYW1pbmcgcGF0dGVybnMKKworU3VuIEphbiAzMCAyMzozNToxOSBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbiByZXN1bHQvcGF0dGVybi9zaW1wbGUgCisJICB0ZXN0L3BhdHRlcm4vc2ltcGxlLio6IGFkZGVkIGZpcnN0IHRlc3QgZm9yIHRoZSBwYXR0ZXJucworCSogcGF0dGVybi5jIHhtbGxpbnQuYzogYSBmZXcgZml4ZXMKKworU3VuIEphbiAzMCAxOToyNzoyMyBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhdHRlcm4uYyBpbmNsdWRlL2xpYnhtbC9wYXR0ZXJuLmggeG1sbGludC5jOiBhZGRlZCBhIAorCSAgc3RyZWFtaW5nIHBhdHRlcm4gZGV0ZWN0b3IgZm9yIGEgc3Vic2V0IG9mIFhQYXRoLCBzaG91bGQKKwkgIGhlbHAgS2FzaW1pZXIgZm9yIGlkZW50aXR5IGNvbnN0cmFpbnRzCisJKiBweXRob24vZ2VuZXJhdG9yLnB5OiBhcHBsaWVkIFN0w6lwaGFuZSBCaWRvdWwgcGF0Y2ggdG8gZmluZAorCSAgcGF0aHMgd2l0aG91dCBicmVha2luZy4KKworRnJpIEphbiAyOCAxODo1Mzo0MCBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogZml4ZWQgYW4gdW50ZXN0ZWQgcG9pbnRlciBkZXJlZmVyZW5jZSBhbmQgYSAmIHZzICYmCisKK0ZyaSBKYW4gMjggMTg6Mzc6MTggQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogaW1wbGVtZW50YXRpb24gb2YgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcgYnkKKwkgIEJqb3JuIFJlZXNlCisKK0ZyaSBKYW4gMjggMTY6NTE6NDcgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IENvcnJlY3RlZCBhbiBhbWJpZ2lvdXMgc3ltYm9sLXNwYWNlIGZvcgorCSAgbG9jYWwgYXR0cmlidXRlIGRlY2xhcmF0aW9ucy4gSUZERUZlZCBtb3JlIElEQyBjb2RlIHRvCisJICBzdXJwcmVzcyBjb21waWxlciB3YXJuaW5ncy4KKworRnJpIEphbiAyOCAwMDo1NzowNCBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGJha2VmaWxlL1JlYWRtZS50eHQgYmFrZWZpbGUvQmFrZWZpbGVzLmJrZ2VuIGJha2VmaWxlL2xpYnhtbDIuYmtsOgorCSAgZmlsZXMgZm9yIHRoZSBCYWtlZmlsZSBnZW5lcmF0b3IgZm9yIE1ha2VmaWxlcyBmcm9tIEZyYW5jZXNjbworCSAgTW9udG9yc2kKKwkqIHdpbjMyL2NvbmZpZ3VyZS5qczogZml4ZXMgZm9yIFdpbmRvd3MgY29tcGlsYXRpb24gd2l0aCBub24tZGVmYXVsdAorCSAgZmxhZ3MgYnkgSm9lbCBSZWVkCisKK1RodSBKYW4gMjcgMTg6MjM6NTAgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeGVkIHhtbENvcHlEb2MgdG8gYWxzbyBjb3B5IHRoZSBkb2MtPlVSTCBhcyBwb2ludGVkCisJICBieSBNYXJ0aWpuIEZhYXNzZW4KKworVGh1IEphbiAyNyAxMzozOTowNCBDRVQgMjAwNSBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmg6CisJICBBZGRlZCBhbiBpbml0aWFsIHNrZWxldG9uIGZvciBpbmRlbnRpdHktY29uc3RyYWludHMuIFRoaXMgaXMgYWxsCisJICBkZWZpbmVkIG91dCwgc2luY2Ugbm90IGNvbXBsZXRlLCBwbHVzIGl0IG5lZWRzIHN1cHBvcnQgZnJvbSBvdGhlcgorCSAgbW9kdWxlcy4KKwkgIEFkZGVkIG1hY2hhbmlzbSB0byBzdG9yZSBlbGVtZW50IGluZm9ybWF0aW9uIGZvciB0aGUKKwkgIGFuY2VzdG9yLW9yLXNlbGYgYXhpczsgdGhpcyBpcyBuZWVkZWQgZm9yIGlkZW50aXR5LWNvbnN0cmFpbnRzCisJICBhbmQgc2hvdWxkIGJlIGhlbHBmdWxsIGZvciBhIGZ1dHVyZSBzdHJlYW1hYmxlIHZhbGlkYXRpb24uCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBBZGRlZCBhbiBlcnJvciBjb2RlIGZvcgorCSAgaWRlbnRpdHktY29uc3RyYWludHMuCisKK1dlZCBKYW4gMjYgMDE6MDM6MzcgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnZW50ZXN0LnB5IHRlc3RhcGkuYzogaGFkIHRvIGZpeCBnZW5lcmF0aW9uIGFuZCByZWJ1aWxkLgorCSogdmFsaWQuYzogdGhlIHRlc3RhcGkgZm91bmQgYSBidWcgaW4gdGhlIGxhc3QgY29kZSBvZiBjb3Vyc2UgIQorCitXZWQgSmFuIDI2IDAwOjQzOjA1IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gdGVzdGFwaS5jIGRvYy9NYWtlZmlsZS5hbTogZml4aW5nIHRoZSB3YXkgdGVzdGFwaS5jCisJICBpcyBnZW5lcmF0ZWQsIGZpeGVzIGJ1ZyAjMTYxMzg2CisJKiBkaWN0LmM6IGZpeCBhIGNvbW1lbnQgdHlwbworCSogZWxmZ2NjaGFjay5oIGRvYy8qOiByZWdlbmVyYXRlZAorCitUdWUgSmFuIDI1IDIyOjM5OjMzIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZvdW5kIGFuZCBmaXhlZCAyIHByb2JsZW1zIGluIHRoZSBpbnRlcm5hbCBzdWJzZXQgc2Nhbm5pbmcKKwkgIGNvZGUgYWZmZWN0aW5nIHRoZSBwdXNoIHBhcnNlciAoYW5kIHRoZSByZWFkZXIpLCBmaXhlcyAjMTY1MTI2CisJKiB0ZXN0L2ludHN1YnNldDIueG1sIHJlc3VsdC8vaW50c3Vic2V0Mi54bWwqOiBhZGRlZCB0aGUgdGVzdCBjYXNlCisJICB0byB0aGUgcmVncmVzc2lvbiB0ZXN0cy4KKworVHVlIEphbiAyNSAwMToyMDoxMSBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3Rkc28uYyB4bWxyZWdleHAuYzogd2FybmluZyBwYXRjaGVzIGZyb20gUGV0ZXIgQnJlaXRlbmxvaG5lcgorCSogaW5jbHVkZS9saWJ4bWwvdmFsaWQuaCB2YWxpZC5jIHBhcnNlci5jOiBzZXJpb3VzIERURCBwYXJzaW5nCisJICBzcGVlZHVwcywgc3RhcnQgdG8gZGVwcmVjYXRlIDMgRWxlbWVudERlZiByZWxhdGVkIGVudHJ5IHBvaW50CisJICBhbmQgcmVwbGFjZSB0aGVtIHdpdGggYmV0dGVyIG9uZXMuCisKK01vbiBKYW4gMjQgMDA6NDc6NDEgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IG1vcmUgaGFzaCBkaWN0aW9uYXJ5IGludGVybmluZyBjaGFuZ2VzCisKK1N1biBKYW4gMjMgMjM6NTQ6MzkgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBoYXNoLmMgaW5jbHVkZS9saWJ4bWwvaGFzaC5oOiBhZGRlZCB4bWxIYXNoQ3JlYXRlRGljdCB3aGVyZQorCSAgdGhlIGhhc2ggcmV1c2VzIHRoZSBkaWN0aW9ubmFyeSBmb3IgaW50ZXJuYWwgc3RyaW5ncworCSogZW50aXRpZXMuYyB2YWxpZC5jIHBhcnNlci5jOiByZXVzZSB0aGF0IG5ldyBBUEksIGxlYWRzIHRvIGEgZGVjZW50CisJICBzcGVlZHVwIHdoZW4gcGFyc2luZyBmb3IgZXhhbXBsZSBEb2NCb29rIGRvY3VtZW50cy4KKworU3VuIEphbiAyMyAyMToxNDoyMCBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBzbWFsbCBzcGVlZHVwIGluIHNraXBwaW5nIGJsYW5rcyBjaGFyYWN0ZXJzCisJKiBlbnRpdGllcy5jOiBpbnRlcm5pbmcgdGhlIGVudGl0aWVzIHN0cmluZ3MgCisKK1N1biBKYW4gMjMgMTg6MzU6MDAgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYm9vc3RpbmcgY29tbW9uIGNvbW1uZW50IHBhcnNpbmcgY29kZSwgaXQgd2FzIHJlYWxseQorCSAgc2xvdy4KKwkqIHRlc3QvY29tbWVudFszLTVdLnhtbCByZXN1bHQvL2NvbW1lbnRbMy01XS54bWwqOiBhZGRlZCBzcHJlY2lmaWMKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKworU3VuIEphbiAyMyAwMTowMDowOSBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBzbWFsbCBvcHRpbWl6YXRpb24gYmFjay4KKworU2F0IEphbiAyMiAwMDo0MDozMSBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRpY3QuYyBwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9kaWN0Lmg6IGEgc2luZ2xlIGxvY2sgdmVyc2lvbgorCSAgbW9zdGx5IGF2b2lkIHRoZSBjb3N0IHBlbmFsdHkgb2YgdGhlIGxvY2sgaW4gY2FzZSBvZiBsb3cgCisJICBwYXJhbGxlbGlzbSwgc28gYXBwbHlpbmcgdGhhdCB2ZXJzaW9uIGluc3RlYWQuCisKK0ZyaSBKYW4gMjEgMTc6NTQ6MDYgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkaWN0LmM6IHBhdGNoIGZyb20gR2FyeSBDb2FkeSB0byBmaXggYSByYWNlIGluIGRpY3QgcmVmZXJlbmNlCisJICBjb3VudGluZyBpbiBtdWx0aXRocmVhZGVkIGFwcHMuCisKK0ZyaSBKYW4gMjEgMTY6MDg6MjEgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgYnVnICMxNjQ1NTYgd2hlcmUgbm9uLWZhdGFsIGVycm9ycyBzdG9wcGVkCisJICBwdXNoIHBhcnNpbmcgYW5kIHhtbHJlYWRlci4KKwkqIE1ha2VmaWxlLmFtOiBmaXh1cAorCSogdGVzdC9lcnJvcnMvd2ViZGF2LnhtbCByZXN1bHQvZXJyb3JzL3dlYmRhdio6IGFkZGluZyByZWdyZXNzaW9uCisJICB0ZXN0IGZvciB0aGlzIHByb2JsZW0uCisKK1dlZCBKYW4gMTkgMTc6MjQ6MzQgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IENvcnJlY3RlZCB0YXJnZXROYW1lc3BhY2UgaW4KKwkgIHhtbFNjaGVtYUVsZW1lbnREdW1wLiBDb3NtZXRpYyBjaGFuZ2VzIHRvIHRoZSBkdW1wIG91dHB1dC4JCisKK1N1biBKYW4gMTYgMjE6MDA6NTMgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gTkVXUyBkb2MvKjogcHJlcGFyaW5nIHJlbGVhc2Ugb2YgMi42LjE3LAorCSAgdXBkYXRlZCBhbmQgcmVidWlsdCB0aGUgZG9jcworCitTdW4gSmFuIDE2IDE5OjU4OjM2IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGJldHRlciBmaXggZm9yICMxNTE2OTQgbm90IGtpbGxpbmcgYzE0biByZWdyZXNzaW9uIHRlc3RzCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogZml4aW5nIGJ1ZyAjMTU3NjUzCisKK1N1biBKYW4gMTYgMTk6MDE6MDYgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4aW5nIGJ1ZyAjMTUxNjk0LCBsaW5lIHNob3VsZCBhbHdheXMgYmUgc2V0IGluIHRoZQorCSAgZWxlbWVudHMuCisKK1N1biBKYW4gMTYgMDE6MDQ6MTggQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogdHJ5aW5nIHRvIGZpeCBhdCBsZWFzdCB0aGUgbWVzc2FnZSBmcm9tCisJICBidWcgIzE1ODYyOAorCSogaW5jbHVkZS9saWJ4bWwveG1sc2F2ZS5oIHhtbHNhdmUuYzogYWRkZWQgZmlyc3QgeG1sc2F2ZSBvcHRpb24KKwkgIGZvciBmb3JtYXQsIGMuZi4gYnVnICMxNTk5OTcKKworU2F0IEphbiAxNSAxODo0NDozMCBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwucHk6IG1ha2UgX19zdHJfXyBjYWxsIHNlcmlhbGl6ZSgpIG9uIG5vZGVzLCBjLmYuIAorCSAgYnVnICMxNTc4NzIKKworU2F0IEphbiAxNSAxODoxODowNyBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG5hbm9mdHAuYzogYXBwbGllZCBwYXRjaCBmcm9tIERhbiBNY05pY2hvbCBmb3IgY29tcGlsYXRpb24gb24gQUlYCisKK1NhdCBKYW4gMTUgMTM6MzU6MTkgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGZpeGVkIGJ1ZyAjMTU3NjMzIGluIHJlbGF4bmcgY2hvaWNlIG9wdGltaXphdGlvbgorCSogcmVzdWx0L3JlbGF4bmcvY2hvaWNlMCogdGVzdC9yZWxheG5nL2Nob2ljZTAqOiBhZGRlZCByZWdyZXNzaW9uCisJICB0ZXN0cyBhYm91dCBpdC4KKwkqIGRvYy8qOiByZWJ1aWx0CisJKiB0ZXN0ZHNvLmM6IHJlbW92ZWQgYSB3YXJuaW5nIGR1ZSB0byBhIG1pc3Npbmcgdm9pZCBpbiBzaWduYXR1cmUuCisKK1RodSBKYW4gMTMgMTc6NDI6NTUgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmggeG1sc2NoZW1hcy5jOiAKKwkgIEV4cG9zZWQgdGFyZ2V0TmFtZXNwYWNlIGZvciBzaW1wbGUvY29tcGxleCB0eXBlcywgbW9kZWwgZ3JvdXBzLAorCSAgYXR0cmlidXRlIGdyb3VwcyBhbmQgbm90YXRpb25zIChyZXBvcnRlZCBieSBNaWNoYWVsIEhld2FydGggCisJICB0byB0aGUgbWFpbGluZyBsaXN0KS4gQWRkZWQgdGFyZ2V0TmFtZXNwYWNlIHRvIHhtbFNjaGVtYVR5cGUsIAorCSAgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXAgYW5kIHhtbFNjaGVtYU5vdGF0aW9uLgorCSAgVGlueSBjb3NtZXRpYyBjaGFuZ2UgdG8gdGhlIGNvbnRlbnQgbW9kZWwgZXJyb3IgcmVwb3J0IG91dHB1dC4KKwkqIHJlc3VsdC8vYWxsXyouZXJyIHJlc3VsdC8vYW55M18wXzAuZXJyIHJlc3VsdC8vY2hvaWNlXyouZXJyIAorCSAgcmVzdWx0Ly9saXN0MF8wXzEuZXJyIHJlc3VsdC8vbGlzdDBfMV8xLmVycjogQWRhcHRlZCBvdXRwdXQgCisJICBvZiByZWdyZXNzaW9uIHRlc3RzLgorCitUaHUgSmFuIDEzIDEzOjIwOjUxIENFVCAyMDA1IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBQdXQgdGhlIGZpeCBvZiBEYW5pZWwgKGZyb20gVHVlIEphbiAxMSAxNDo0MTo0NyBDRVQpCisJICBiYWNrIGluLCBzaW5jZSBJIG1pc3NlZCB0byB1cGRhdGUgeG1sc2NoZW1hcy5jIGJlZm9yZSBkb2luZworCSAgdGhlIHByZXZpb3VzIGNvbW1pdC4KKwkKK1RodSBKYW4gMTMgMTI6NTk6MjUgQ0VUIDIwMDUgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IEludGVncmF0ZWQgeG1sUmVnRXhlY0VyckluZm8gYW5kIHhtbFJlZ0V4ZWNOZXh0VmFsdWVzCisJICBmcm9tIHhtbHJlZ2V4cC5jIHRvIHJlcG9ydCBleHBlY3RlZCBlbGVtZW50cyBvbiBjb250ZW50IG1vZGVsIGVycm9ycy4KKwkqIGFsbF8qLmVyciBhbnkzXzBfMC5lcnIgY2hvaWNlXyouZXJyIGxpc3QwXzBfMS5lcnIgbGlzdDBfMV8xLmVycjoKKwkgIEFkYXB0ZWQgb3V0cHV0IG9mIHJlZ3Jlc3Npb24gdGVzdHMuCisKK1RodSBKYW4gMTMgMTI6MjQ6MDkgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWcuaC5pbiBjb25maWd1cmUuaW4geG1sbW9kdWxlLmM6IHRyeWluZyB0byB3b3JrIGFyb3VuZAorCSAgdGhlIGNvbXBpbGF0aW9uIHByb2JsZW0gb24gSFAtVVgKKworV2VkIEphbiAxMiAyMjowMzozMyBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhdHRlcm4uYzogZml4ZWQgdGhlIGZpeGVkIHNpemUgYXJyYXkgc3RydWN0dXJlIHByb2JsZW0gcmVwb3J0ZWQgYnkKKwkgIFBhdHJpY2sgU3RyZXVsZQorCitXZWQgSmFuIDEyIDE1OjE1OjAyIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZWxmZ2NjaGFjay5oIHRlc3RhcGkuYyBkb2MvbGlieG1sMi1hcGkueG1sIGRvYy8qOiByZWdlbmVyYXRlZAorCSAgdGhlIEFQSSBkZXNjcmlwdGlvbiwgcmVidWlsdCwgaW1wcm92ZWQgbmF2aWdhdGlvbiBpbiBkb2N1bWVudGF0aW9uCisJICBhIGJpdC4KKworV2VkIEphbiAxMiAxNDoxNzoxNCBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbHJlZ2V4cC5oIHhtbHJlZ2V4cC5jOiBleHRlbmRlZCB4bWxSZWdFeGVjRXJySW5mbygpCisJICBhbmQgeG1sUmVnRXhlY05leHRWYWx1ZXMoKSB0byByZXR1cm4gZXJyb3IgdHJhbnNpdGlvbiBzdHJpbmdzIHRvbywKKwkgIGFuZCBzaW5rIHN0YXRlIGRldGVjdGlvbiBhbmQgaGFuZGxpbmcuCisKK1R1ZSBKYW4gMTEgMTQ6NDE6NDcgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeGVkIGJ1ZyAjMTYzNjQxIHdoZW4gdGhlIHZhbHVlIHBhc3NlZCBmb3IKKwkgIGFuIGF0b21pYyBsaXN0IHR5cGUgaXMgTlVMTC4KKworVHVlIEphbiAxMSAxMDoxNDozMyBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluOiBmaXhlZCBkZXBlbmRlbmN5IG9uIHB5dGhvbiAyLjMsCisJICBhbHNvIHNtYWxsIGltcHJvdmVtZW50IGZvciBjeWd3aW4gKGJ1ZyAxNjMyNzMpCisKK1N1biBKYW4gIDkgMTg6NDY6MzIgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnZW50ZXN0LnB5IHRlc3RhcGkuYzogV2lsbGlhbSBub3RpY2VkIEkgZm9yZ290IHRvIGFkZCBzcGVjaWFsCisJICBzdXBwb3J0IGZvciB4bWxtb2R1bGVzLmMgZGVmaW5lCisJKiB4bWxyZWdleHAuYyBpbmNsdWRlL2xpYnhtbC94bWxyZWdleHAuaDogYWRkZWQgdGVybWluYWwgdG8KKwkgIHhtbFJlZ0V4ZWNFcnJJbmZvKCkgQVBJLCBhZGRpbmcgbmV3IHhtbFJlZ0V4ZWNOZXh0VmFsdWVzKCkKKwkgIGVudHJ5IHBvaW50IGFuZCByZWZhY3RvcmVkIHRvIHVzZSBib3RoIGNvZGUuCisKK01vbiBKYW4gMTAgMDE6MDI6NDEgSEtUIDIwMDYgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGRvYy94bWwuaHRtbCwgZG9jL0ZBUS5odG1sOiBhZGRlZCBhbiBGQVEgdW5kZXIgRGV2ZWxvcGVyIGZvcgorCSAgc2V0dGluZyB1cCBhICJwcml2YXRlIiBsaWJyYXJ5IChhZnRlciBzb21lIGxpc3QgcG9zdHMgYWJvdXQKKwkgIHBlb3BsZSBoYXZpbmcgdHJvdWJsZSBkb2luZyBpdCkKKworU2F0IEphbiAgOCAyMzowNDoxMCBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBmaXhpbmcgYmVoYXZpb3VyIGZvciB4bWxSZWdFeGVjRXJySW5mbyBpbiBjYXNlIG9mCisJICByb2xsYmFjaworCitGcmkgSmFuICA3IDE0OjU0OjUxIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogVE9ETzogc21hbGwgdXBkYXRlCisJKiB4bWxyZWdleHAuYzogdHJ5aW5nIHRvIGFkZCBhbiBBUEkgdG8gZ2V0IHVzZWZ1bCBlcnJvciBpbmZvcm1hdGlvbnMKKwkgIGJhY2sgZnJvbSBhIGZhaWxpbmcgcmVnZXhwIGNvbnRleHQuCisKK1RodSBKYW4gIDYgMTc6MzU6NDEgSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHByb2JsZW0gd2l0aCB4bWxYUGF0aEVyciB3aGVuIGVycm9yIG51bWJlcgorCSAgc3Vic2NyaXB0IHdhcyBvdXQgb2YgcmFuZ2UgKGJ1ZyAxNjMwNTUpCisKK1RodSBKYW4gIDYgMDk6NTc6MDMgSEtUIDIwMDUgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHVyaS5jOiBmaXhlZCBwcm9ibGVtIHdpdGggeG1sVVJJRXNjYXBlIHdoZW4gcXVlcnkgcGFydCB3YXMKKwkgIGVtcHR5IChhY3R1YWxseSBmaXhlZCB4bWxVUklFc2NhcGVTdHIgdG8gcmV0dXJuIGFuIGVtcHR5CisJICBzdHJpbmcgcmF0aGVyIHRoYW4gTlVMTCBmb3IgZW1wdHkgc3RyaW5nIGlucHV0KSAoYnVnIDE2MzA3OSkKKwkgIAorVHVlIEphbiAgNCAxNzowODo0NSBQU1QgMjAwNSBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiBwYXJzZXIuYywgcGFyc2VySW50ZXJuYWwuYzogZml4ZWQgImNvbCIgY2FsY3VsYXRpb24gZm9yIAorICAgICAgICAgIHN0cnVjdCBfeG1sUGFyc2VySW5wdXQgKGJhc2VkIG9uIHBhdGNoIGZyb20gUm9iIFJpY2hhcmRzKSAKKwkqIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmgsIGVycm9yLmM6IHByb3BhZ2F0ZWQgZXJyb3IgY29sdW1uCisgICAgICAgICAgbnVtYmVyIGluIHRoZSB4bWxFcnJvciBzdHJ1Y3R1cmUKKworVHVlIEphbiAgNCAyMjo0NzoyMiBDRVQgMjAwNSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBuYW1lc3BhY2UgYnVnIGluIHB1c2ggbW9kZSByZXBvcnRlZCBieSAKKwkgIFJvYiBSaWNoYXJkcworCSogdGVzdC9uczYgcmVzdWx0Ly9uczYqOiBhZGRlZCBpdCB0byB0aGUgcmVncmVzc2lvbiB0ZXN0cworCSogeG1sbW9kdWxlLmMgdGVzdE1vZHVsZS5jIGluY2x1ZGUvbGlieG1sL3htbG1vZHVsZS5oOgorCSAgYWRkZWQgYW4gZXh0cmEgb3B0aW9uIGFyZ3VtZW50IHRvIG1vZHVsZSBvcGVuaW5nIGFuZCBkZWZpbmVkCisJICBhIGNvdXBsZSBvZiBmbGFncyB0byB0aGUgQVBJLgorCitUdWUgSmFuICA0IDIxOjE2OjA1IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbW9kdWxlLmMgaW5jbHVkZS9saWJ4bWwveG1sbW9kdWxlLmg6IGFwcGxpZWQgcGF0Y2ggZnJvbQorCSAgQmpvcm4gUmVlc2UsIHBsdXMgc29tZSBjbGVhbnVwcworCSogZWxmZ2NjaGFjay5oIGRvYy9lbGZnY2NoYWNrLnhzbDogZml4ZWQgdGhlIHN0eWxlc2hlZXQgdG8gCisJICBhZGQgdGhlIG5ldyBoZWFkZXIKKwkqIGRvYy8qIHRlc3RhcGkuYzogcmVnZW5lcmF0ZWQgdGhlIEFQSQorCitUdWUgSmFuICA0IDE4OjQ3OjE5IENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBtYWtpbmcgRFNPIHN1cHBvcnQgYW4gb3B0aW9uCisJKiB4bWxtb2R1bGUuYyB4bWxyZWFkZXIuYyBpbmNsdWRlL2xpYnhtbC94bWxtb2R1bGUuaDogY29kZQorCSAgYW5kIGRvY3VtZW50YXRpb24gY2xlYW51cHMKKwkqIGVsZmdjY2hhY2suaCB0ZXN0YXBpLmMgZG9jLyo6IHJlZ2VuZXJhdGVkIHRoZSBkb2NzIGFuZAorCSAgY2hlY2tzIGZvciBuZXcgbW9kdWxlCisJKiB0ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sOiBmaXggYSBzbWFsbCBjaGFuZ2UgaW50cm9kdWNlZAorCSAgcHJldmlvdXNseQorCitUdWUgSmFuICA0IDE2OjA3OjUyIENFVCAyMDA1IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gY29uZmlnLmguaW4gY29uZmlndXJlLmluIGVycm9yLmMgbGlieG1sLTIuMC5wYy5pbgorCSAgdGVzdE1vZHVsZS5jIHRlc3Rkc28uYyB4bWwyLWNvbmZpZy5pbiB4bWxsaW50LmMgeG1sbW9kdWxlLmMKKwkgIGluY2x1ZGUvbGlieG1sL01ha2VmaWxlLmFtIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbG1vZHVsZS5oIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbiAKKwkgIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oLmluOiBhcHBsaWVkIERTTyBzdXBwb3J0CisJICBwYXRjaCAyIGZyb20gSm9lbCBSZWVkCisKK1R1ZSBKYW4gIDQgMTU6MzA6MTUgQ0VUIDIwMDUgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IGFwcGxpZWQgcGF0Y2ggZnJvbSBNYXJjaW4gS29uaWNraSBmb3IgQmVPUworCitNb24gSmFuICAzIDEzOjU3OjIxIFBTVCAyMDA1IEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIHBhcnNlci5jOiBhZGRlZCBHZXRMaW5lTnVtYmVyIGFuZCBHZXRDb2x1bW5OdW1iZXIgZnVuY3Rpb25zIGZvciB4bWxSZWFkZXIKKworU3VuIEphbiAgMiAxNzo1MToxOCBIS1QgMjAwNSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCVJlLWV4YW1pbmVkIHRoZSBwcm9ibGVtcyBvZiBjb25maWd1cmluZyBhICJtaW5pbWFsIiBsaWJyYXJ5LgorCVN5bmNocm9uaXplZCB0aGUgaGVhZGVyIGZpbGVzIHdpdGggdGhlIGxpYnJhcnkgY29kZSBpbiBvcmRlcgorCXRvIGFzc3VyZSB0aGF0IGFsbCB0aGUgdmFyaW91cyBjb25kaXRpb25hbHMgKExJQlhNTF94eHh4X0VOQUJMRUQpCisJd2VyZSB0aGUgc2FtZSBpbiBib3RoLiAgTW9kaWZpZWQgdGhlIEFQSSBkYXRhYmFzZSBjb250ZW50IHRvIG1vcmUKKwlhY2N1cmF0ZWx5IHJlZmxlY3QgdGhlIGNvbmRpdGlvbmFscy4gIEVuaGFuY2VkIHRoZSBnZW5lcmF0aW9uCisJb2YgdGhhdCBkYXRhYmFzZS4gIEFsdGhvdWdoIHRoZXJlIHdhcyBubyBzdWJzdGFudGlhbCBjaGFuZ2UgdG8KKwlhbnkgb2YgdGhlIGxpYnJhcnkgY29kZSdzIGxvZ2ljLCBhIGxhcmdlIG51bWJlciBvZiBmaWxlcyB3ZXJlCisJbW9kaWZpZWQgdG8gYWNoaWV2ZSB0aGUgYWJvdmUsIGFuZCB0aGUgY29uZmlndXJhdGlvbiBzY3JpcHQKKwl3YXMgZW5oYW5jZWQgdG8gZG8gc29tZSBhdXRvbWF0aWMgZW5hYmxpbmcgb2YgZmVhdHVyZXMgKGUuZy4KKwktLXdpdGgteGluY2x1ZGUgZm9yY2VzIC0td2l0aC14cGF0aCkuICBBZGRpdGlvbmFsbHksIGFsbCB0aGUgZm9ybWF0CisJZXJyb3JzIGRpc2NvdmVyZWQgYnkgYXBpYnVpbGQucHkgd2VyZSBjb3JyZWN0ZWQuCisJKiBjb25maWd1cmUuaW46IGVuaGFuY2VkIGNyb3NzLWNoZWNraW5nIG9mIG9wdGlvbnMKKwkqIGRvYy9hcGlidWlsZC5weSwgZG9jL2VsZmdjY2hhY2sueHNsLCBkb2MvbGlieG1sMi1yZWZzLnhtbCwKKwkgIGRvYy9saWJ4bWwyLWFwaS54bWwsIGdlbnRlc3QucHk6IGNoYW5nZWQgdGhlIHVzYWdlIG9mIHRoZQorCSAgPGNvbmQ+IGVsZW1lbnQgaW4gbW9kdWxlIGRlc2NyaXB0aW9ucworCSogZWxmZ2NjaGFjay5oLCB0ZXN0YXBpLmM6IHJlZ2VuZXJhdGVkIHdpdGggcHJvcGVyIGNvbmRpdGlvbmFscworCSogSFRNTHBhcnNlci5jLCBTQVguYywgZ2xvYmFscy5jLCB0cmVlLmMsIHhtbHNjaGVtYXMuYywgeHBhdGguYywKKwkgIHRlc3RTQVguYzogY2xlYW5lZCB1cCBjb25kaXRpb25hbHMKKwkqIGluY2x1ZGUvbGlieG1sL1tTQVguaCwgU0FYMi5oLCBkZWJ1Z1hNTC5oLCBlbmNvZGluZy5oLCBlbnRpdGllcy5oLAorCSAgaGFzaC5oLCBwYXJzZXIuaCwgcGFyc2VySW50ZXJuYWxzLmgsIHNjaGVtYXNJbnRlcm5hbHMuaCwgdHJlZS5oLAorCSAgdmFsaWQuaCwgeGxpbmsuaCwgeG1sSU8uaCwgeG1sYXV0b21hdGEuaCwgeG1scmVhZGVyLmgsIHhwYXRoLmhdOgorCSAgc3luY2hyb25pemVkIHRoZSBjb25kaXRpb25hbHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBtb2R1bGUgY29kZQorCSogZG9jL2V4YW1wbGVzL3RyZWUyLmMsIGRvYy9leGFtcGxlcy94cGF0aDEuYywgZG9jL2V4YW1wbGVzL3hwYXRoMi5jOgorCSAgYWRkZWQgYWRkaXRpb25hbCBjb25kaXRpb25zIHJlcXVpcmVkIGZvciBjb21waWxhdGlvbgorCSogZG9jLyouaHRtbCwgZG9jL2h0bWwvKi5odG1sOiByZWJ1aWx0IHRoZSBkb2NzCisJCitTYXQgRGVjIDI1IDE4OjEwOjAyIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogZml4ZWQgdG8gc2tpcCAoaWYgbmVjZXNzYXJ5KSB0aGUgQk9NIGZvcgorCSAgZW5jb2RpbmcgJ3V0Zi0xNicuICBDb21wbGV0ZXMgdGhlIGZpeCBmb3IgYnVnICMxNTIyODYuCisJKiB0cmVlLmMsIHBhcnNlci5jOiBtaW5vciB3YXJuaW5nIGNsZWFudXAsIG5vIGNoYW5nZSB0byBsb2dpYworCQorRnJpIERlYyAyNCAxNjozMToyMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weTogYWRkZWQgbW9zdCByZXF1aXJlZCBlbnRpcmVzIHRvCisJICBmb3JlaWduIGVuY29kaW5nIHRhYmxlLCBwbHVzIHNvbWUgYWRkaXRpb25hbCBsb2dpYyB0bworCSAgYXNzdXJlIG9ubHkgdGhlIDFzdCBwYXJhbSB1c2VzIHRoZSAndCMnIGZvcm1hdC4gIEZpeGVzCisJICBidWcgIzE1MjI4NiwgYnV0IG1heSBzdGlsbCBoYXZlIHNvbWUgb3RoZXIgVVRGLTE2IHByb2JsZW1zLgorCitUaHUgRGVjIDIzIDIzOjQ0OjA4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBNYWtlZmlsZS5hbSwgZ2VudGVzdC5weTogZW5oYW5jZWQgZm9yIGVuYWJsaW5nIGJ1aWxkIGluCisJICBhIGRpZmZlcmVudCBkaXJlY3RvcnkuICBBZGRlZCAob3B0aW9uYWwpIHBhcmFtIHRvIGdlbnRlc3QucHkKKwkgIHRvIHNwZWNpZnkgdGhlIHNvdXJjZSBkaXJlY3RvcnkgKGJ1ZyAjMTU1NDY4KQorCSogZG9jL01ha2VmaWxlLmFtOiBjaGFuZ2VkIGRlc3RpbmF0aW9uIG9mIE5FV1MgZnJvbSAodG9wX3NyY2RpcikKKwkgIHRvICh0b3BfYnVpbGRkaXIpIChidWcgIzE1NTQ2OCkKKwkqIHB5dGhvbi9NYWtlZmlsZS5hbSwgcHl0aG9uL2dlbmVyYXRvci5weTogZW5oYW5jZWQgZm9yIGVuYWJsaW5nCisJICBidWlsZCBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnkoYnVnICMxNTU0NjgpLiAgQWRkZWQgKG9wdGlvbmFsKQorCSAgcGFyYW0gdG8gZ2VuZXJhdG9yLnB5IHRvIHNwZWNpZnkgdGhlIHNvdXJjZSBkaXJlY3RvcnkuICBBZGRlZAorCSAgYSBuZXcgdGFibGUgb2YgZnVuY3Rpb25zIHdoaWNoIGhhdmUgcG9zc2libGUgImZvcmVpZ24iIGVuY29kaW5ncworCSAgKGUuZy4gVVRGMTYpLCBhbmQgY29kZSB0byB1c2UgcHl0aG9uICd0JyBmb3JtYXQgaW5zdGVhZCBvZgorCSAgJ3onIGZvcm1hdCAobW9zdGx5IHNvbHZpbmcgYnVnICMxNTIyODYsIGJ1dCBzdGlsbCBuZWVkIHRvCisJICBwb3B1bGF0ZSB0aGUgdGFibGUpLgorCSAgCitUdWUgRGVjIDIxIDA4OjEwOjQ0IE1TVCAyMDA0IEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy9zaXRlLnhzbCwgZG9jL3htbC5odG1sLCBwbHVzIHJlYnVpbHQgYWxsIHRoZSBodG1sIHBhZ2VzCisJQ2hhbmdlIHJlZmVyZW5jZSB0byBuZXcgc2l0ZSBmb3IgU29sYXJpcyBiaW5hcmllcywgZml4aW5nIGJ1ZworCTE2MDU5OAorCisKK01vbiBEZWMgMjAgMDg6MDI6NTcgUFNUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHBhcnNlci5jOiByZXNldCBpbnB1dC0+YmFzZSB3aXRoaW4geG1sU3RvcFBhcnNlcgorCSogeG1sc3RyaW5nLmM6IHJlbW92ZWQgY2FsbCB0byB4bWxVVEY4U3RybGVuIGZyb20gd2l0aGluCisJICB4bWxVVEY4U3RycG9zIChCaWxsIE1vc2VsZXkgcG9pbnRlZCBvdXQgaXQgd2FzIG5vdAorCSAgdXNlZnVsKQorCitGcmkgRGVjIDE3IDE2OjAzOjQxIFBTVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB2YWxpZC5jOiBjaGFuZ2VkIHhtbEVyclZhbGlkV2FybmluZyB0byB1c2UgY3R4dC0+d2FybmluZworCSAgaW5zdGVhZCBvZiBjdHh0LT5lcnJvciBmb3IgaXRzIHJlcG9ydHMgKGJ1ZyAjMTYwNjYyKQorCitGcmkgRGVjIDE3IDE0OjUyOjE3IFBTVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5OiBtb2RpZmllZCB0byBhbGxvdyB0aGUgbnMgYW5kIG5zRGVmcworCSAgYWNjZXNzb3JzIHRvIHJldHVybiBOb25lIGluc3RlYWQgb2YgZXJyb3Igd2hlbiBubyBuYW1lc3BhY2UKKwkgIGlzIHByZXNlbnQgKGJ1ZyAjKQorCitGcmkgRGVjIDE3IDExOjQwOjIxIFBTVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MvTWFrZWZpbGUuYW06IGNoYW5nZWQgbWFpbnRhaW5lci1jbGVhbiBkZXBlbmRlbmN5IHdpdGgKKwkgIHN1Z2dlc3Rpb24gZnJvbSBDcmlzcGluIEZsb3dlcmRheSAoYnVnICMxNTc2MzQpCisJKiBkZWJ1Z1hNTC5jOiBmaXhlZCBjcmFzaCB3aGVuIEFUVFJJQlVURSBvciBET0NVTUVOVCBub2RlcworCSAgd2VyZSBzcGVjaWZpZWQgd2l0aCBkZWJ1Z0R1bXBOb2RlIChidWcgIzE2MDYyMSkKKworRnJpIERlYyAxMCAxMToyNDo0MSBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGVkIElEIGRlYWxsb2NhdGlvbiBwcm9ibGVtIGJhc2VkIG9uIHBhdGNoIGZyb20KKwkgIFN0ZXZlIFNoZXBhcmQgZml4ZXMgYnVnICMxNjA4OTMKKwkqIHhtbG1lbW9yeS5jOiBpbXByb3ZpbmcgY29tbWVudC4KKwkqIHRlc3RhcGkuYzogbmV3IHRlc3QgZm9yIHhtbERpY3RFeGlzdHMoKSBpcyBnZW5lcmF0ZWQuCisKK1dlZCBEZWMgIDEgMjI6MzU6MzcgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGRpY3QuYywgeHBhdGguYywgaW5jbHVkZS9saWJ4bWwvaGFzaC5oOiBmaXhlZCB1cCBzb21lIGdjYyB3YXJuaW5ncywKKwkgIG5vIGNoYW5nZSB0byBsb2dpYy4gIE5ldyBtYWNybyBYTUxfQ0FTVF9GUFRSIHRvIGNpcmN1bXZlbnQgZ2NjCisJICB3YXJuaW5ncyBvbiBmdW5jdGlvbiBwb2ludGVyIDwtPiBvYmplY3QgcG9pbnRlciAoYSBoYWNrKS4KKworTW9uIE5vdiAyOSAxNDowNzoxOCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGZpeGVkIGEgbWVtb3J5IGxlYWsgb24gZXJyb3JzIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyAjMTU5ODEyCisKK0ZyaSBOb3YgMjYgMjM6MjA6NDggSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbElPLmM6IGFkZGVkIGEgY2hlY2sgd2l0aGluIHhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlIHRvIHByZXZlbnQKKwkgIGEgZGVhZCBsb29wIG9uIGJhZCBkYXRhIChidWcgMTU5NTUwKQorCitGcmkgTm92IDI2IDEzOjA5OjA0IENFVCAyMDA0IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBGaXhlZCBzdHJpY3QvbGF4IGVsZW1lbnQgd2lsZGNhcmRzOiB0aGUgY2hpbGRyZW4KKwkgIG9mIGVsZW1lbnRzIGZvciB3aGljaCBhIGRlY2xhcmF0aW9uIGV4aXN0ZWQgd2VyZSBzdGlsbCBwcm9jZXNzZWQKKwkgIGJ5IHRoZSB3aWxkY2FyZCBtZWNoYW5pc20gKHJlcG9ydGVkIGJ5IHBoaWxpcHBlIHZlbnRyaWxsb24gdG8gdGhlCisJICBtYWlsaW5nIGxpc3QpLgorCSAgQ2hhbmdlZCB0aGUgaW1wb3J0IGFuZCBpbmNsdWRlIG1hY2hhbmlzbSB0byBzaGFyZSBkaWN0aW9uYXJpZXMuCisKK0ZyaSBOb3YgMjYgMTE6NDQ6MzYgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmMgcGFyc2VyLmM6IG1ha2Ugc3VyZSB4bWxDdHh0UmVhZEZpbGUgYW5kIGh0bWxDdHh0UmVhZEZpbGUKKwkgIGdvIHRocm91Z2ggdGhlIGNhdGFsb2cgcmVzb2x1dGlvbi4KKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBmaXggYSBzaWRlIGVmZmVjdCB3cm5pbmcgb2YgdGhlIGNoYW5nZQorCitXZWQgTm92IDI0IDEzOjQxOjUyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGljdC5jIGluY2x1ZGUvbGlieG1sL2RpY3QuaDogYWRkZWQgeG1sRGljdEV4aXN0cygpIHRvIHRoZSAKKwkgIGRpY3Rpb25uYXJ5IGludGVyZmFjZS4KKwkqIHhtbHJlYWRlci5jOiBhcHBseWluZyB4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyBmaXggZm9yIG5hbWVzcGFjZXMKKwkgIGZyb20gUm9iIFJpY2hhcmRzCisKK1dlZCBOb3YgMTcgMTM6NTQ6MzcgQ0VUIDIwMDQgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IHRpbnkgZW5oYW5jZW1lbnQgZm9yIGNvbnRlbnQgbW9kZWwgZXJyb3IgcmVwb3J0cworCSAgKCMxNTcxOTAsICMxNDM5NDgpLiBSZW1vdmVkIGFiYnJldmlhdGlvbnM6IENULCBTVCBhbmQgV0MgCisJICAoIzE1NzE5MCwgcmVwb3J0ZWQgYnkgRnJhbnMgIEVuZ2xpY2gpLgorCSAgSW5pdGlhbDogbm8gcmVwb3J0IG9mIGxvY2FsIGNvbXBvbmVudHMuCisJKiByZXN1bHQvc2NoZW1hcy9hbGwqIHJlc3VsdC9zY2hlbWFzL2FueTNfMF8wLmVycgorCSAgcmVzdWx0L3NjaGVtYXMvY2hvaWNlKgorCSAgcmVzdWx0L3NjaGVtYXMvY29zLXN0LXJlc3RyaWN0cy0xLTItZXJyXzBfMC5lcnIKKwkgIHJlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uLWVycl8wXzAuZXJyCisJICByZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLWV4dGVuc2lvbl8wXzAuZXJyCisJICByZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTItMS0xXzBfMC5lcnIKKwkgIHJlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tNC0xLWVycl8wXzAuZXJyIAorCSAgcmVzdWx0L3NjaGVtYXMvZGV0ZXIwXzBfMC5lcnIgcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wXzIuZXJyCisJICByZXN1bHQvc2NoZW1hcy9mYWNldC11bmlvblNULWVycjFfMF8wLmVycgorCSAgcmVzdWx0L3NjaGVtYXMvaGV4YmluYXJ5XzBfMS5lcnIKKwkgIHJlc3VsdC9zY2hlbWFzL2xpc3QqIHJlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzBfMC5lcnIKKwkgIHJlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8xLmVyciByZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMi5lcnI6CisJICBBZGFwdGVkIG91dHB1dC4KKworTW9uIE5vdiAxNSAxMzowNDoyOCBDRVQgMjAwNCBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogTW92ZWQgZXhlY3V0aW9uIG9mIHhtbFNjaGVtYUNoZWNrRGVmYXVsdHMgdG8KKwkgIHhtbFNjaGVtYVR5cGVGaXh1cDsgdGhpcyBlbnN1cmVzIGZhY2V0cyBvZiBpbmhlcml0ZWQgdHlwZXMgdG8gYmUKKwkgIGNoZWNrZWQgcHJpb3IgdG8gZmFjZXRzIG9mIGRlcml2ZWQgdHlwZXMgLSB3aGljaCBjYXVzZWQgYSBzZWcKKwkgIGZhdWx0IG90aGVyd2lzZSAoYnVnICMxNTgyMTYsIHJlcG9ydGVkIGJ5IEZyYW5zIEVuZ2xpY2gpLgorCitTdW4gTm92IDE0IDIyOjIzOjE4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBnZW50ZXN0LnB5LCB0ZXN0YXBpLmM6IGZ1cnRoZXIgZW5oYW5jZW1lbnQsIG5vdyBhbGwKKwkgIGNvbXBpbGF0aW9uIHdhcm5pbmdzIGhhdmUgYmVlbiBmaXhlZC4KKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBhZGRlZCBOVUxMIGNoZWNrIGZvciBvbmUgZnVuY3Rpb24KKworRnJpIE5vdiAxMiAyMzo1ODoxNCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogdHJpdmlhbCBjaGFuZ2UgKGNoYW5nZWQgQ0hFQ0tfQ09OVEVYVCB0byBDSEVDS19DVFhUCisJICBvbiBhIGNvdXBsZSBvZiBsaW5lcykKKwkqIGdlbnRlc3QucHksIHRlc3RhcGkuYzogZW5oYW5jZWQgdG8gcmVkdWNlIGNvbXBpbGF0aW9uIHdhcm5pbmdzCisKK0ZyaSBOb3YgMTIgMTY6MTI6NDggQ0VUIDIwMDQgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmM6IFVuLWNvbW1lbnRlZCBhIFRPRE8gaW4geG1sU2NoZW1hUGFyc2VFbGVtZW50LgorCitGcmkgTm92IDEyIDE0OjU1OjM2IENFVCAyMDA0IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBDb3JyZWN0IHN5bWJvbCBzcGFjZSBmb3IgJ2FsbCcgYW5kICdjaG9pY2UnLgorCSogeG1sc2NoZW1hc3R5cGVzLmMgaW5jbHVkZS94bWxzY2hlbWFzdHlwZXMuaDogQWRkZWQgJ3JlcGxhY2UnIAorCSAgbm9ybWFsaXphdGlvbiBmb3IgJ25vcm1hbGl6ZWRTdHJpbmcnLiAgCisJICBBZGRlZCB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSB0byB0aGUgQVBJLgorCitUaHUgTm92IDExIDIxOjQzOjAyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGZvcmdvdCBhICQoc3JjZGlyKQorCSogZW5jb2RpbmcuYzogc3R1cGlkIGVycm9yIHdyb25nIG5hbWUgIzE1Nzk3NgorCitXZWQgTm92IDEwIDE1OjM1OjI1IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTkVXUyBjb25maWd1cmUuaW4gZG9jLyo6IHByZXBhcmluZyByZWxlYXNlIG9mIGxpYnhtbDItMi42LjE2CisKK1dlZCBOb3YgMTAgMTI6NTU6MTggQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sMmNsYXNzLnR4dAorCSAgcHl0aG9uL2xpYnhtbF93cmFwLmggcHl0aG9uL3R5cGVzLmM6IEFwcGxpZWQgcGF0Y2ggZnJvbSBCcmVudAorCSAgSGVuZHJpY2tzIGFkZGluZyBzdXBwb3J0IGZvciBsYXRlIERURCB2YWxpZGF0aW9uLgorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9kdGR2YWxpZC5weQorCSAgcHl0aG9uL3Rlc3RzL3Rlc3QuZHRkOiBpbnRlZ3JhdGVkIHRoZSBwcm92aWRlZCByZWdyZXNzaW9uIHRlc3QKKworVHVlIG5vdiAgOSAxOToyNDozMSBDRVQgMjAwNCBEb2RqaSBTZWtldGVsaSA8ZG9kamlAc2VrZXRlbGkub3JnPgorCisJKiBjb25maWd1cmUuaW46IGRldGVjdCB3aGVuIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlCisJICBoYXMgdGhlIF9fc3NfZmFtaWx5IG1lbWJlciBpbnN0ZWFkIG9mIHNzX2ZhbWlseSBhbmQKKwkgIGJlaGF2ZSBhY2NvcmRpbmdseS4gV2Ugbm93IGNhbiB1c2UgaXB2NiBvbiBhaXguCisKK1R1ZSBOb3YgIDkgMTc6MTU6NDYgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBnZW50ZXN0LnB5IHRlc3RhcGkuYzogaW50ZWdyYXRlZCBpbiAibWFrZSB0ZXN0cyIKKwkgIGFkZGVkIC1xIG9wdGlvbiwgYW5kIG1vcmUgY29uZGl0aW9uYWwgZmVhdHVyZXMgZml4ZXMKKwkqIGNhdGFsb2cuYyBkZWJ1Z1hNTC5jIHBhcnNlci5jIHRlc3RUaHJlYWRzLmMgeG1sbGludC5jCisJICB4bWxzY2hlbWFzdHlwZXMuYyB4bWx3cml0ZXIuY2luY2x1ZGUvbGlieG1sL2NhdGFsb2cuaAorCSAgaW5jbHVkZS9saWJ4bWwvZGVidWdYTUwuaDogdmFyaW91cyBjb21waWxhdGlvbiBhbmQgY29uZGl0aW9uYWwKKwkgIGNsZWFudXBzLgorCSogZG9jLyo6IHJlZ2VuZXJhdGVkCisKK1R1ZSBOb3YgIDkgMTU6NTk6NTAgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnZW50ZXN0LnB5IHRlc3RhcGkuYzogYmV0dGVyIGhhbmRsaW5nIG9mIGNvbmRpdGlvbmFsIGZlYXR1cmVzCisJKiBIVE1McGFyc2VyLmMgU0FYMi5jIHBhcnNlckludGVybmFscy5jIHhtbHdyaXRlci5jOiBtb3JlIHRlc3RpbmcKKwkgIG9uIHBhcnNlciBjb250ZXh0cyBjbG9zZWQgbGVha3MsIGVycm9yIG1lc3NhZ2VzCisKK1R1ZSBOb3YgIDkgMTA6MjE6MzcgR01UIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHByb2JsZW0gY29uY2VybmluZyBYUGF0aCBjb250ZXh0IGNvcnJ1cHRpb24KKwkgIGR1cmluZyBmdW5jdGlvbiBhcmd1bWVudCBldmFsdWF0aW9uIChidWcgMTU3NjUyKQorCSAgCitNb24gTm92ICA4IDE4OjU0OjUyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdGFwaS5jOiBtb3JlIHR5cGVzLgorCSogcGFyc2VySW50ZXJuYWxzLmMgeHBhdGguYzogbW9yZSBmaXhlcworCitNb24gTm92ICA4IDE4OjE2OjQzIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IGJldHRlciBwYXJzZXIgb3B0aW9ucyBjb3ZlcmFnZQorCSogU0FYMi5jIHhwYXRoLmM6IG1vcmUgY2xlYW51cHMuCisKK1R1ZSBOb3YgIDkgMDE6NTA6MDggQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0YXBpLmM6IHRyeWluZyB0byBmaXggc29tZSBvcHRpb25hbCBzdXBwb3J0IGJyb2tlbm5lc3MKKworTW9uIE5vdiAgOCAxNzoyNToyNyBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBtb3JlIGNvdmVyYWdlCisJKiBkZWJ1Z1hNTC5jIHBhcnNlci5jIHhtbHJlZ2V4cC5jIHhwYXRoLmM6IG1vcmUgZml4ZXMKKworTW9uIE5vdiAgOCAxNTowMjozOSBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBtb3JlIGNvdmVyYWdlCisJKiBTQVgyLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmM6IG1vcmUgZml4ZXMKKworTW9uIE5vdiAgOCAxMjo1NToxNiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jIHRlc3RhcGkuYyB4bWxJTy5jIHhtbHN0cmluZy5jOiBtb3JlIGZpeGVzLgorCitNb24gTm92ICA4IDExOjI0OjU3IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IG1vcmUgdHlwZXMsIG1vcmUgY292ZXJhZ2UKKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHJlbGF4bmcuYyB2YWxpZC5jIHhtbElPLmMKKwkgIHhtbHNjaGVtYXN0eXBlcy5jOiBtb3JlIHByb2JsZW1zIGZpeGVkCisJICAKK01vbiBOb3YgIDggMTA6MjQ6MjggSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGdlbnRlc3QucHk6IGZpeGVkIHRlc3QgZmlsZSBjb3JydXB0aW9uIHByb2JsZW0KKworU3VuIE5vdiAgNyAxMzoxODowNSBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBmaXhlZCB0eXBvcyBhbmQgYXZvaWQgQ2F0YWxvZ3MgdmVyYm9zaXR5CisKK1NhdCBOb3YgIDYgMjM6MjU6MTYgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0YXBpLmM6IGF1Z21lbnRlZCB0aGUgbnVtYmVyIG9mIHR5cGVzCisKK1NhdCBOb3YgIDYgMjA6MjQ6MDcgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jIHRyZWUuYyB4bWxyZWFkZXIuYyB4bWx3cml0ZXIuYzogYSBudW1iZXIgb2YgbmV3CisJICBidWcgZml4ZXMgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KKworU2F0IE5vdiAgNiAxNTo1MDoxMSBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBhdWdtZW50ZWQgdHlwZSBhdXRvZ2VuZXJhdGlvbiBmb3IgZW51bXMKKwkqIHhwYXRoLmMgaW5jbHVkZS9saWJ4bWwveHBhdGguaDogcmVtb3ZlZCBkaXJlY3QgZXJyb3IgcmVwb3J0aW5nLgorCitTYXQgTm92ICA2IDE0OjI3OjE4IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYzogZml4ZWQgYSByZWdyZXNzaW9uIGluIGljb252IHN1cHBvcnQuCisKK0ZyaSBOb3YgIDUgMTg6MTk6MjMgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnZW50ZXN0LnB5IHRlc3RhcGkuYzogYXV0b2dlbmVyYXRlIGEgbWluaW1hbCBOVUxMIHZhbHVlIHNlcXVlbmNlCisJICBmb3IgdW5rbm93biBwb2ludGVyIHR5cGVzCisJKiBIVE1McGFyc2VyLmMgU0FYMi5jIGNodmFsaWQuYyBlbmNvZGluZy5jIGVudGl0aWVzLmMgcGFyc2VyLmMKKwkgIHBhcnNlckludGVybmFscy5jIHJlbGF4bmcuYyB2YWxpZC5jIHhtbElPLmMgeG1scmVhZGVyLmMgCisJICB4bWxzYXZlLmMgeG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jIHhtbHN0cmluZy5jIHhwYXRoLmMKKwkgIHhwb2ludGVyLmM6IFRoaXMgdW5jb3ZlcmVkIGFuIGltcHJlc3NpdmUgYW1vdW50IG9mIGVudHJ5IHBvaW50cworCSAgbm90IGNoZWNraW5nIGZvciBOVUxMIHBvaW50ZXJzIHdoZW4gdGhleSBvdWdodCB0bywgY2xvc2luZyBhbGwKKwkgIHRoZSBvcGVuIGdhcHMuCisKK0ZyaSBOb3YgIDUgMTY6MjY6MjggVVRDIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGNhdGFsb2cuYzogZml4ZWQgcHJvYmxlbSB3aXRoIE5VTEwgZW50cnkgKGJ1ZyAxNTc0MDcpCisJKiB4cGF0aC5jOiBmaXhlZCBhIGNvdXBsZSBvZiB3YXJuaW5ncyAobm8gY2hhbmdlIHRvIGxvZ2ljKQorCitGcmkgTm92ICA1IDE1OjMwOjQzIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IG1vcmUgY292ZXJhZ2UKKwkqIHhtbHVuaWNvZGUuYzogb25lIGZpeAorCitGcmkgTm92ICA1IDIzOjE1OjUxIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW50aXRpZXMuYzogZml4ZWQgYSBjb21waWxhdGlvbiBwcm9ibGVtIG9uIGEgcmVjZW50IGNoYW5nZQorCitGcmkgTm92ICA1IDEyOjUwOjA5IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IG1vcmUgY292ZXJhZ2UKKwkqIG5hbm9mdHAuYyB0cmVlLmM6IG1vcmUgZml4ZXMKKworRnJpIE5vdiAgNSAxMTowMjoyOCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBmaXhlZCB0aGUgd2F5IHRoZSBnZW5lcmF0b3Igd29ya3MsCisJICBleHRlbmRlZCB0aGUgdGVzdGluZywgZXNwZWNpYWxseSB3aXRoIG1vcmUgcmVhbCB0cmVlcyBhbmQgbm9kZXMuCisJKiBIVE1MdHJlZS5jIHRyZWUuYyB2YWxpZC5jIHhpbmNsdWRlLmMgeG1sSU8uYyB4bWxzYXZlLmM6IGEgYnVuY2gKKwkgIG9mIHJlYWwgcHJvYmxlbXMgZm91bmQgYW5kIGZpeGVkLgorCSogZW50aXRpZXMuYzogZml4IGVycm9yIHJlcG9ydGluZyB0byBnbyB0aHJvdWdoIHRoZSBuZXcgaGFuZGxlcnMKKworVGh1IE5vdiAgNCAxODo0NDo1NiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBkb2hoIC4uLiBzdHVwaWQgY2hhbmdlIGtpbGxpbmcgeG1sUGFyc2VEb2MoKQorCitUaHUgTm92ICA0IDE4OjMyOjIyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IGNoYW5naW5nIHRoZSB3YXkgdGhlIC5jIGlzIGdlbmVyYXRlZCwKKwkgIGV4dGVuZGluZyB0aGUgdGVzdHMgY292ZXJhZ2UKKwkqIGluY2x1ZGUvbGlieG1sL25hbm9mdHAuaCBuYW5vZnRwLmMgZWxmZ2NjaGFjay5oIGRvYy8qOiBmaXhpbmcgc29tZQorCSAgZnVuY3Rpb24gc2lnbmF0dXJlcywgcmVnZW5lcmF0aW5nIHN0dWZmCisJKiBTQVgyLmMgcGFyc2VyLmMgeG1sSU8uYzogYW5vdGhlciBzZXQgb2YgYnVnIGZpeGVzIGFuZCBBUEkgaGFyZGVuaW5nCisKK1RodSBOb3YgIDQgMTM6MzI6MTkgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnZW50ZXN0LnB5IHRlc3RhcGkuYzogZXh0ZW5kaW5nIHRoZSB0ZXN0cyBjb3ZlcmFnZQorCitUaHUgTm92ICA0IDExOjUyOjI4IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGdlbnRlc3QucHkgd2FzIG1pc3NpbmcgZnJvbSB0aGUgRVhUUkFfRElTVAorCitUaHUgTm92ICA0IDExOjQ4OjQ3IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IGV4dGVuZGluZyB0aGUgdGVzdHMgY292ZXJhZ2UKKwkqIEhUTUx0cmVlLmMgdHJlZS5jIHhtbHNhdmUuYyB4cG9pbnRlci5jOiBtb3JlIGZpeGVzIGFuZCBjbGVhbnVwcworCitUaHUgTm92ICA0IDAwOjI1OjM2IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IG1vcmUgZml4ZXMgYW5kIGV4dGVuZGluZyB0aGUgdGVzdHMgY292ZXJhZ2UKKwkqIG5hbm9mdHAuYyB4bWxJTy5jOiBtb3JlIGZpeGVzIGFuZCBoYXJkZW5pbmcKKwkKK1dlZCBOb3YgIDMgMjA6MTY6MjQgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnZW50ZXN0LnB5IHRlc3RhcGkuYzogbW9yZSBmaXhlcyBhbmQgZXh0ZW5kaW5nIHRoZSB0ZXN0cyBjb3ZlcmFnZQorCSogdmFsaWQuYzogYnVuY2ggb2YgY2xlYW51cHMgYW5kIDIgbGVha3MgcmVtb3ZlZCAKKworV2VkIE5vdiAgMyAxODowNjo0NCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBtb3JlIGZpeGVzIGFuZCBleHRlbmRpbmcgdGhlIHRlc3RzIGNvdmVyYWdlCisJKiBsaXN0LmMgdHJlZS5jOiBtb3JlIGZpeGVzIGFuZCBoYXJkZW5pbmcKKworV2VkIE5vdiAgMyAxNToxOToyMiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdlbnRlc3QucHkgdGVzdGFwaS5jOiBtb3JlIGZpeGVzIGFuZCBleHRlbmRpbmcgdGhlIHRlc3RzIGNvdmVyYWdlCisJKiByZWxheG5nLmMgaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oOiBhZGRpbmcgYSB0eXBlIGluaXQgaW50ZXJmYWNlCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oIHBhcnNlci5jIHhtbHJlYWRlci5jIHhtbHdyaXRlci5jOiBtb3JlCisJICBjbGVhbnVwcyBhbmQgYnVnIGZpeGVzIHJhaXNlZCBieSB0aGUgcmVncmVzc2lvbiB0ZXN0cworCitXZWQgTm92ICAzIDEyOjQ5OjMwIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IG1vcmUgZml4ZXMgYW5kIGV4dGVuZGluZyB0aGUgdGVzdHMgY292ZXJhZ2UKKwkqIHhtbHdyaXRlci5jIGxpc3QuYzogbW9yZSBoYXJkZWluZyBvZiBBUElzCisJKiBkb2MvYXBpYnVpbGQucHk6IHNraXAgdGVzdGFwaS5jIHdoZW4gc2Nhbm5pbmcgdGhlIEMgZmlsZXMuCisKK1R1ZSBOb3YgIDIgMjM6MDk6MDYgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnZW50ZXN0LnB5IHRlc3RhcGkuYzogbW9yZSB0ZXN0aW5nIGFuZCBjb3ZlcmFnZQorCSogZWxmZ2NjaGFjay5oIHhtbHN0cmluZy5jIGluY2x1ZGUvbGlieG1sL3htbHN0cmluZy5oOiBtb3JlIGNsZWFudXBzCisJKiBkb2MvKjogcmVidWlsdAorCitUdWUgTm92ICAyIDE5OjQ0OjMyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2VudGVzdC5weSB0ZXN0YXBpLmM6IG1vcmUgZGV2ZWxvcG1lbnRzIG9uIHRoZSBBUEkgdGVzdGluZworCSogSFRNTHBhcnNlci5jIHRyZWUuYzogbW9yZSBjbGVhbnVwcworCSogZG9jLyo6IHJlYnVpbHQKKworVHVlIE5vdiAgMiAxNTo0OTozNCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbG1lbW9yeS5jIGluY2x1ZGUvbGlieG1sL3htbG1lbW9yeS5oOiBhZGRpbmcgeG1sTWVtQmxvY2tzKCkKKwkqIE1ha2VmaWxlLmFtIGdlbnRlc3QucHkgdGVzdGFwaS5jOiB3b3JrIG9uIGdlbmVyYXRvciBvZiBhbgorCSAgYXV0b21hdGljIEFQSSByZWdyZXNzaW9uIHRlc3QgdG9vbC4KKwkqIFNBWDIuYyBuYW5vZnRwLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdHJlZS5jIHhtbElPLmMKKwkgIHhtbHN0cmluZy5jOiB2YXJpb3VzIEFQSSBoYXJkZWluZyBjaGFuZ2VzIGFzIGEgcmVzdWx0IG9mIHJ1bm5pbmcKKwkgIHRlaCBmaXJzdCBzZXQgb2YgYXV0b21hdGljIEFQSSByZWdyZXNzaW9uIHRlc3RzLgorCSogdGVzdC9zbGFzaGRvdDE2LnhtbDogYXBwYXJlbnRseSBtaXNzaW5nIGZyb20gQ1ZTLCBjb21taXRlZCBpdAorCitNb24gTm92ICAxIDE1OjU0OjE4IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogZml4ZWQgYW4gVVRGLTggcGFyc2luZyBidWcgcmVwb3J0ZWQgYnkgTWFya3VzIEJlcnRoZWF1CisJICBvbiAjZmVkb3JhLWRldmVsCisKK1N1biBPY3QgMzEgMjI6MDM6MzggQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgYSBidWcgcmVwb3J0ZWQgYnkgUGV0ciBQYWphcyBvbiB0aGUgbGlzdCBhbmQKKwkgIGFmZmVjdGluZyBYTUw6OkxpYnhtbAorCitTdW4gT2N0IDMxIDE2OjMzOjU0IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYyBkb2MvZXhhbXBsZXMvdGVzdFdyaXRlci5jOiBGaXhlZCBidWcgIzE1MzkzNywgbWFraW5nCisJICBzdXJlIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4uCisJICBIYWQgdG8gZml4IG9uZSBvZiB0aGUgZXhhbXBsZXMuCisKK0ZyaSBPY3QgMjkgMTQ6MTY6NTYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL3htbGxpbnQuMSBkb2MveG1sbGludC54bWw6IGluZGljYXRlIC0gbWVhbnMgc3RkaW4gY2xvc2luZyAjMTU2NjI2CisKK0ZyaSBPY3QgMjkgMTQ6MDM6MzYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiByZWdpc3RlciB4bWxTY2hlbWFTZXRWYWxpZEVycm9ycywgcGF0Y2ggZnJvbQorCSAgQnJlbnQgSGVuZHJpY2tzIGluIHRoZSBtYWlsaW5nLWxpc3QKKwkqIGluY2x1ZGUvbGlieG1sL3ZhbGlkLmggSFRNTHBhcnNlci5jIFNBWDIuYyB2YWxpZC5jCisJICBwYXJzZXJJbnRlcm5hbHMuYzogZml4ICMxNTY2MjYgYW5kIG1vcmUgZ2VuZXJhbGx5IGhvdyB0byBmaW5kIG91dAorCSAgaWYgYSB2YWxpZGF0aW9uIGNvbnRlY3QgaXMgcGFydCBvZiBhIHBhcnNpbmcgY29udGV4dCBvciBub3QuIFRoaXMKKwkgIGNhbiBwcm9iYWJseSBiZSBpbXByb3ZlZCB0byBtYWtlIDEwMCUgc3VyZSB0aGF0IHZjdHh0LT51c2VyRGF0YQorCSAgaXMgdGhlIHBhcnNlciBjb250ZXh0IHRvby4gSXQncyBhIGJpdCBoYWlyeSBiZWNhdXNlIHdlIGNhbid0IAorCSAgY2hhbmdlIHRoZSB4bWxWYWxpZEN0eHQgc3RydWN0dXJlIHdpdGhvdXQgYnJlYWtpbmcgdGhlIEFCSSBzaW5jZQorCSAgdGhpcyBjaGFuZ2UgeG1sUGFyc2VyQ3R4dCBpbmZvcm1hdGlvbiBpbmRleGVzLgorCitXZWQgT2N0IDI3IDE5OjI2OjIwIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIENoYW5nZUxvZyBORVdTIGNvbmZpZ3VyZS5pbiBkb2MvKjogcHJlcGFyaW5nIHJlbGVhc2UgMi42LjE1CisJKiBkZWJ1Z1hNTC5jIG5hbm9mdHAuYyB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmM6IGNsZWFudXBzCisKK1dlZCBPY3QgMjcgMDk6MzE6MjQgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHVyaS5jOiBmaXhlZCBhIHN0dXBpZCBtaXN0YWtlIGluIHhtbEJ1aWxkUmVsYXRpdmVVUkkKKwkgIChidWcgMTU2NTI3KQorCitXZWQgT2N0IDI3IDExOjQ0OjM1IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG5hbm9mdHAuYyBuYW5vaHR0cC5jOiBzZWNvbmQgcGFydCBvZiB0aGUgc2VjdXJpdHkgZml4IGZvcgorCSAgeG1sTmFub0ZUUENvbm5lY3QoKSBhbmQgeG1sTmFub0hUVFBDb25uZWN0SG9zdCgpLgorCitUdWUgT2N0IDI2IDIzOjU3OjAyIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG5hbm9mdHAuYzogYXBwbGllZCBmaXhlcyBmb3IgYSBjb3VwbGUgb2YgcG90ZW50aWFsIHNlY3VyaXR5IHByb2JsZW1zCisJKiB0cmVlLmMgdmFsaWQuYyB4bWxsaW50LmM6IG1vcmUgZml4ZXMgb24gdGhlIHN0cmluZyBpbnRlcm5pbmcgY2hlY2tzCisKK1R1ZSBPY3QgMjYgMTg6MDk6NTkgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBhZGRlZCBjaGVja2luZyBmb3IgbmFtZXMKKwkgIHZhbHVlcyBhbmQgZGljdGlvbm5hcmllcyBnZW5lcmF0ZXMgYSB0b25zIG9mIGVycm9ycworCSogU0FYMi5jY2F0YWxvZy5jIHBhcnNlci5jIHJlbGF4bmcuYyB0cmVlLmMgeGluY2x1ZGUuYyB4bWx3cml0ZXIuYworCSAgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBmaXhpbmcgdGhlIGVycm9ycyBpbiB0aGUgcmVncmVzc2lvbiB0ZXN0cworCitNb24gT2N0IDI1IDE2OjA0OjIyIFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXJzZXIuYzogbW9kaWZpZWQgdGhlIGhhbmRsaW5nIG9mIF9wcml2YXRlIGZvciBlbnRpdHkKKwkgIGV4cGFuc2lvbiAoYnVnIDE1NTgxNikKKworTW9uIE9jdCAyNSAxNzoxMTozNyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgdGhlIGxlYWsgcmVwb3J0ZWQgYnkgVm9sa2VyIFJvdGggb24gdGhlIGxpc3QKKwkqIHRlc3QvZW50MTAgcmVzdWx0Ly9lbnQxMCo6IGFkZGVkIGEgc3BlY2lmaWMgdGVzdCBmb3IgdGhlIHByb2JsZW0KKworU2F0IE9jdCAyMyAxMTowNzo0MSBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogdW5saW5rZWQgdGhlIGludGVybmFsIHN1YnNldCB3aXRoaW4geG1sVmFsaWRhdGVEdGQKKwkgIChidWcgMTQxODI3KQorCSogY29uZmlndXJlLmluOiBhZGRlZCAtV2FsbCB0byBkZXZlbG9wZXIncyBmbGFncworCSogZG9jL2V4YW1wbGVzL3JlYWRlcjQucmVzOiBhZGRlZCB0byBDVlMKKworRnJpIE9jdCAyMiAxNjozNjo1MCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFkZGVkIHN1cHBvcnQgZm9yIEhUTUwgUElzICMxNTYwODcKKwkqIHRlc3QvSFRNTC9weXRob24uaHRtbCByZXN1bHQvSFRNTC9weXRob24uaHRtbCo6IGFkZGVkIHNwZWNpZmljIHRlc3RzCisKK0ZyaSBPY3QgMjIgMTU6MjA6MjMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGhyZWFkcy5jOiBmaXhlZCBuYXN0eSBidWcgIzE1NjA4NworCitGcmkgT2N0IDIyIDIxOjA0OjIwIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwuYzogZml4ZWQgYSBwcm9ibGVtIG9jY3VyaW5nIG9ubHkgaW4geDg2XzY0IHdoZW4KKwkgIHZlcnkgbGFyZ2UgZXJyb3IgbWVzc2FnZXMgYXJlIHJhaXNlZCB0byB0aGUgUHl0aG9uIGhhbmRsZXJzLgorCitUaHUgT2N0IDIxIDE4OjAzOjIxIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogZml4ZWQgYSBtZW1vcnkgYnVnCisJKiBkb2MvZXhhbXBsZXMvcmVhZGVyNC5jIGRvYy9leGFtcGxlcy8qOiBhZGRlZCB0ZXN0IGZyb20gR3JhaGFtIEJlbm5ldHQKKwkgIGFuZCByZWdlbmVyYXRlZCB0aGUgZGlyZWN0b3J5CisKK1R1ZSBPY3QgMTkgMTE6MDY6MzkgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmggeG1scmVhZGVyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbQorCSAgR3JhaGFtIEJlbm5ldHQgYWRkaW5nIDQgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIHRoZSByZWFkZXIgQVBJLgorCitGcmkgT2N0IDE1IDExOjIyOjQ4IFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkZWJ1Z1hNTC5jOiBleGNsdWRlZCBhIGZldyBub2RlcyAod2l0aCBubyBjb250ZW50KSBmcm9tIHRoZQorCSAgc3RyaW5nIGNoZWNrIHJvdXRpbmUuCisKK0ZyaSBPY3QgMTUgMTA6NDg6MzAgRURUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGFkZGVkIFVURi04IHN0cmluZyBjaGVja2luZywKKwkgIHJhaXNlIGEgcHJvYmxlbSwgbmVlZCBkZWJ1ZworCitXZWQgT2N0IDEzIDAyOjE3OjM2IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9NYWtlZmlsZS5hbTogYXBwbGllZCBwYXRjaCBmcm9tIFRob21hcyBGaXR6c2ltbW9ucyBmaXhpbmcKKwkgICMxNTUyNDAgYnVpbGRpbmcgb3V0c2lkZSB0aGUgc291cmNlIHRyZWUuIGJ1dCBtYWtlIHRlc3RzIGZhaWxzLgorCitNb24gT2N0IDExIDE2OjI2OjUxIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRlYnVnWE1MLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogYWRkZWQgbmFtZXNwYWNlIGNoZWNraW5nCisKK1NhdCBPY3QgIDkgMjI6MzY6MjEgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYzogc29tZSBmcmFtZXdvcmsgcHJlcGFyYXRpb24gdG8gYWRkIG5hbWVzcGFjZSBjaGVja2luZ3MKKworVGh1IE9jdCAgNyAxNToxMjo1OCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jIGluY2x1ZGUvbGlieG1sL2RlYnVnWE1MLmggaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDoKKwkgIGFkZGluZyB0aGUgdHJlZSBkZWJ1ZyBtb2RlCisJKiBwYXJzZXIuYyByZWxheG5nLmMgdHJlZS5jIHhwYXRoLmM6IGZpeGluZyB2YXJpb3VzIHByb2JsZW1zIHJlcG9ydGVkCisJICBieSB0aGUgZGVidWcgbW9kZS4KKwkqIFNBWDIuYzogYW5vdGhlciB0cmVlIGZpeCBmcm9tIFJvYiBSaWNoYXJkcworCitXZWQgT2N0ICA2IDEwOjUwOjAzIFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBjYXRhbG9nLmM6IHNtYWxsIGNoYW5nZSB0byBsYXN0IGZpeCwgdG8gZ2V0IHhtbDpiYXNlIHJpZ2h0CisKK1dlZCBPY3QgIDYgMDk6MzM6NTEgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGNhdGFsb2cuYzogYWRkZWQgY29kZSB0byBoYW5kbGUgPGdyb3VwPiwgaW5jbHVkaW5nIGR1bXBpbmcKKwkgIHRvIG91dHB1dCAoYnVnIDE1MTkyNCkuCisJKiB4bWxjYXRhbG9nLmMsIHhtbHN0cmluZy5jLCBwYXJzZXIuYzogbWlub3IgY29tcGlsZXIgd2FybmluZyAKKwkgIGNsZWFudXAgKG5vIGNoYW5nZSB0byBsb2dpYykKKwkgIAorTW9uIE9jdCAgNCAxNjowOTowNyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gZGVidWdYTUwuYyBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW4KKwkgIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oLmluOiByZXZhbXBlZCB0aGUgWE1MIGRlYnVnZ2luZworCSAgbW9kdWxlIGFuZCBwcmVwYXJlIGZvciBhIG5ldyBjaGVja2luZyBtb2RlCisKK01vbiBPY3QgIDQgMTM6NTM6MjQgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNYWxjb2xtIFRyZWRpbm5pY2sgZml4aW5nIGJ1ZyAjMTUyNDI2CisKK01vbiBPY3QgIDQgMTI6MjY6MjggQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmMgcHl0aG9uL3Rlc3RzL291dGJ1Zi5weTogCisJICBhcHBsaWVkIHBhdGNoIGZyb20gTWFsY29sbSBUcmVkaW5uaWNrIGZpeGluZyBidWcgIzE1NDI5NAorCSAgcmVsYXRlZCB0byBzYXZpbmcgdG8gcHl0aG9uIGZpbGUgb2JqZWN0cy4KKworU2F0IE9jdCAgMiAyMTowODo1MSBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdHJlZS5jOiBjaGFuZ2VkIHhtbEhhc05zUHJvcCB0byBwcm9wZXJseSBoYW5kbGUgYSByZXF1ZXN0IGZvcgorCSAgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIChidWcgMTUzNTU3KQorCitTYXQgT2N0ICAyIDE4OjE4OjI3IFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXJzZXIuYzogZml4ZWQgcHJvYmxlbSB3aXRoIGRpY3Rpb25hcnkgaGFuZGxpbmcgd2l0aGluCisJICB4bWxQYXJzZUluTm9kZUNvbnRleHQgKGJ1ZyAxNTMxNzUpCisKK1NhdCBPY3QgIDIgMTU6NDY6MzcgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGNoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZS5weSwgY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlMi5weSwKKwkgIGNoZWNrLXhpbmNsdWRlLXRlc3Qtc3VpdGUucHksIGNoZWNrLXhtbC10ZXN0LXN1aXRlLnB5LAorCSAgY2hlY2steHNkZGF0YS10ZXN0LXN1aXRlLnB5LCBkb2MvZXhhbXBsZXMvaW5kZXgucHk6IGNoYW5nZWQKKwkgIGNoYW5nZWQgc3lzLnBhdGggc2V0dGluZyBmcm9tICdhcHBlbmQnIHRvICdpbnNlcnQnIChwYXRjaAorCSAgc3VwcGxpZWQgYnkgTWFsY29sbSBUcmVkaW5uaWNrKSAoYnVnIDE1MzcxNikKKworU2F0IE9jdCAgMiAxNTowMzoxNCBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg6IGFkZGVkIHR3byBuZXcgbWFjcm9zCisJICBJU19BU0NJSV9MRVRURVIgYW5kIElTX0FTQ0lJX0RJR0lUIHVzZWQgd2l0aCAoaHRtbCkKKwkgIHBhcnNpbmcgYW5kIHhwYXRoIGZvciB0ZXN0aW5nIGRhdGEgbm90IG5lY2Vzc2FyaWx5CisJICB1bmljb2RlLgorCSogSFRNTHBhcnNlci5jLCB4cGF0aC5jOiBjaGFuZ2VkIHVzZSBvZiBJU19MRVRURVJfQ0ggYW5kCisJICBJU19ESUdJVF9DSCBtYWNyb3MgdG8gYXNjaWkgdmVyc2lvbnMgKGJ1ZyAxNTM5MzYpLgorCSAgCitGcmkgT2N0ICAxIDIwOjM3OjI1IFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBlcnJvci5jOiBhZGRlZCBzb21lIGNvZGluZyB0byBhdHRlbXB0IHRvIGRpc3BsYXkgd2hpY2ggZmlsZQorCSAgY29udGFpbnMgYW4gZXJyb3Igd2hlbiB1c2luZyBYSW5jbHVkZSAoYnVnIDE1MjYyMykKKworVGh1IFNlcCAzMCAxMToxOToxNyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHN0dXBpZCBjdXQnbiBwYXN0ZSBidWcgaW4geG1sbGludCBkZXRlY3Rpb24KKworV2VkIFNlcCAyOSAxNzo0Nzo1NiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gZG9jLyo6IHJlbGVhc2luZyAyLjYuMTQsIHJlYnVpbGRpbmcgdGhlIGRvY3MKKwkgIAorV2VkIFNlcCAyOSAxNTowMDoxMSBDRVNUIDIwMDQgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmgKKwkgIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaDogUGFyc2luZyBvZiA8Y29tcGxleENvbnRlbnQ+CisJICAtIGhhbmRsZSBhdHRyaWJ1dGUgJ21peGVkJywgY2F0Y2ggaWxsZWdhbCBhdHRyaWJ1dGVzLgorCSAgUGFyc2luZyBvZiA8Y29tcGxleFR5cGU+IC0gaGFuZGxlIGF0dHJpYnV0ZXMgJ2Fic3RyYWN0JywKKwkgICdmaW5hbCcgYW5kICdibG9jaycsIGNhdGNoIGlsbGVnYWwgYXR0cmlidXRlcy4KKwkgIFZhbGlkYXRpb24gb2YgY29tcGxleCB0eXBlcyAtIGhhbmRsZSBhYnN0cmFjdCB0eXBlcy4KKwkgIEFkZGVkIGhhbmRsaW5nIG9mIGRlZmF1bHQvZml4ZWQgYXR0cmlidXRlcyBhbmQgZWxlbWVudCB2YWx1ZXMuCisJICBQZXIgdmFsaWRhdGlvbiBvcHRpb24gYXR0cmlidXRlIG5vZGVzL3RleHQgbm9kZXMgYXJlIGNyZWF0ZWQKKwkgIG9uIHRoZSBpbnN0YW5jZS4KKwkgIEFkZGVkIHRoZSBjb3JyZXNwb25kaW5nIGNvbnN0cmFpbnRzIGZvciBmaXhlZC9kZWZhdWx0LgorCSAgQWRkZWQgeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zLCB4bWxTY2hlbWFHZXRWYWxpZE9wdGlvbnMKKwkgIHRvIHRoZSBleHRlcm5hbCBBUEkuCisJICBFeHRlbmRlZCBlbGVtZW50IGRlY2xhcmF0aW9uIGNvbnN0cmFpbnRzLiAgCisJICBHb3QgcmlkIG9mIHBlcnNldmVyYXRpdmUgY3JlYXRpb24gb2YgdGVtcG9yZXJ5IHZhbGlkYXRpb24vcGFyc2VyIAorCSAgY29udGV4dHMuCisJICBBZGRlZCBoYW5kbGluZyBvZiB4c2k6c2NoZW1hTG9jYXRpb24gYW5kCisJICB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbi4KKwkgIEZpeGVkIHhzaTp0eXBlIGNvbXBvbmVudCByZXNvbHV0aW9uIGlmIHVzaW5nIG5vbi1wcmVmaXhlZAorCSAgUU5hbWVzLgorCSogeG1scmVnZXhwLmMgeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3htbGF1dG9tYXRhLmg6CisJICBFbmFibGVkIG5hbWVzcGFjZSBhd2FyZW5lc3Mgb2YgdGhlIGNvbnRlbnQgbW9kZWwgaWYgdXNpbmcgdGhlCisJICBtb2RlbCBncm91cCAiYWxsIi4KKwkqIHRlc3Qvc2NoZW1hcy9idWcxNTI0NzBfMS54c2Q6IFJlbW92ZWQgYW4gImFic3RyYWN0IiBhdHRyaWJ1dGUsCisJICB3aGljaCBicm9rZSB0aGUgdGVzdC4KKwkqIHhzdGMveHN0Yy5weTogIFdvcmthcm91bmQgdG8gYWNjb21vZGF0ZSBjYXNlIGluc2Vuc2l0aXZlCisJICB0ZXN0IGRlZmluaXRpb25zIGluIG1zLXRlc3QuZGVmLnhtbCAod2FzIG1pc3NpbmcgaW4gYSBwcmV2aW91cworCSAgY29tbWl0KS4KKworV2VkIFNlcCAyOSAxMTowMzoxMCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZHJ2X2xpYnhtbDIucHk6IGFub3RoZXIgcGF0Y2ggZnJvbSBNYWxjb2xtIFRyZWRpbm5pY2sKKwkgIGFkZGluZyBvcHRpb24gbm90IHRvIGxvYWQgZHRkIGZyb20gdGhlIGRydl9saWJ4bWwyLnB5IG1vZHVsZQorCSAgIzEzNDYzMworCitUdWUgU2VwIDI4IDE0OjMwOjIyIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIHhtbElPLmMgeG1scmVnZXhwLmMgeG1sc2NoZW1hcy5jCisJICB4bWxzY2hlbWFzdHlwZXMuYzogYW5vdGhlciBwYXRjaCBmcm9tIE1hbGNvbG0gVHJlZGlubmljayBmaXhpbmcKKwkgIHdhcm5pbmcgZ2VuZXJhdGVkIGJ5IHRoZSBOb25zdG9wIEtlcm5lbCBPcGVuIFN5c3RlbSBTZXJ2aWNlcyAKKwkgIGNvbXBpbGVyICMxNTE3MTAKKworVHVlIFNlcCAyOCAxMzowNzozNyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLnB5OiBhcHBsaWVkIHBhdGNoIGZyb20gTWFsY29sbSBUcmVkaW5uaWNrIGZpeGluZworCSAgcHl0aG9uIGV4Y2VwdGlvbiBoaWVyYXJjaHkgIzEzOTgyNAorCitTdW4gU2VwIDI2IDE2OjQwOjI0IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmMgVE9ETzogYXBwbGllZCBwYXRjaCBmcm9tIE1hbGNvbG0gVHJlZGlubmljayBmaXhpbmcgZXJyYXRhCisJICBFMjAgY29uY2VybmluZyBOTVRPS0VOUyBhbmQgY28uIHZhbGlkYXRpb24gIzE1MzcyMgorCSogcmVzdWx0L1ZDL0F0dHJpYnV0ZU5tdG9rZW5zIHRlc3QvVkMvQXR0cmlidXRlTm10b2tlbnMKKwkgIHRlc3QvVkNNL0F0dHJpYnV0ZU5tdG9rZW5zLnhtbDogYWxzbyBhZGRlZCB0ZXN0cyBmcm9tIE1hbGNvbG0KKworU3VuIFNlcCAyNiAxNjoyNDo0NCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4c3RjL3hzdGMucHk6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNYWxjb2xtIFRyZWRpbm5pY2sgZml4aW5nIHNwYWNlL3RhYnMKKwkgICMxNTM3MTMKKwkqIHhwYXRoLmM6IGZpeGVkIGEgcmVhbGxvYyBwb3RlbnRpYWwgcHJvYmxlbQorCitGcmkgU2VwIDI0IDE2OjE0OjEyIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBmaXhlZCBtYWtlIHZhbGdyaW5kIHhzdGMgCisKK1RodSBTZXAgMjMgMTg6MjM6NDYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGZpeGluZyBhbiBvdXQgb2YgYm91bmQgYWRyZXNzaW5nIGlzc3VlCisKK1RodSBTZXAgMjMgMTU6MTQ6MTIgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIHBhcnNlci5jIHJlbGF4bmcuYyB4bWxzY2hlbWFzLmM6IG1vcmUgbWVtb3J5IHJlbGF0ZWQKKwkgIGNvZGUgY2xlYW51cHMuCisKK1RodSBTZXAgMjMgMDE6MDQ6MzAgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGVkIGEgYnVuY2ggb2YgZXJyb3JzIHdoZW4gcmVhbGxvYyBmYWlsZWQuCisKK1dlZCBTZXAgMjIgMjM6NTY6MDUgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGhyZWFkcy5jIHVyaS5jOiBjb3VwbGUgb2YgbWVtb3J5IGZpeGVzIGZyb20gTWFyayBWYWtvYyByZXBvcnRlZAorCSAgYnkgUHVyaWZ5IG9uIFdpbmRvd3MuCisKK01vbiBTZXAgMjAgMjI6MDE6NDcgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhZGRlZCAtLXRpbWluZyAtLWNvcHkgdGltaW5nIGZvciB0aGUgY29weQorCSogdm1zL2J1aWxkX2xpYnhtbC5jb206IGFwcGxpZWQgcGF0Y2ggZnJvbSBDcmFpZyBCZXJyeQorCSAgdG8gYnVpbGQgd2l0aCByZWNlbnQgcmVsZWFzZXMKKworRnJpIFNlcCAxNyAyMToyNTozMyBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogbmFub2h0dHAuYywgaW5jbHVkZS9saWJ4bWwvbmFub2h0dHAuaDogYWRkZWQgdGhlIHJvdXRpbmUKKwkgIHhtbE5hbm9IVFRQQ29udGVudExlbmd0aCB0byB0aGUgZXh0ZXJuYWwgQVBJIChidWcxNTE5NjgpLgorCSogcGFyc2VyLmM6IGZpeGVkIHVubmVjZXNzYXJ5IGludGVybmFsIGVycm9yIG1lc3NhZ2UgKGJ1ZzE1MjA2MCk7CisJICBhbHNvIGNoYW5nZWQgY2FsbCB0byBzdHJuY21wIG92ZXIgdG8geG1sU3RybmNtcC4KKwkqIGVuY29kaW5nLmM6IGZpeGVkIGNvbXBpbGF0aW9uIHdhcm5pbmcgKGJ1ZzE1MjMwNykuCisJKiB0cmVlLmM6IGZpeGVkIHNlZ2ZhdWx0IGluIHhtbENvcHlQcm9wTGlzdCAoYnVnMTUyMzY4KTsgZml4ZWQKKwkgIGEgY291cGxlIG9mIGNvbXBpbGF0aW9uIHdhcm5pbmdzLgorCSogSFRNTHRyZWUuYywgZGVidWdYTUwuYywgeG1sbWVtb3J5LmM6IGZpeGVkIGEgZmV3IGNvbXBpbGF0aW9uCisJICB3YXJuaW5nczsgbm8gY2hhbmdlIHRvIGxvZ2ljLgorCitGcmkgU2VwIDE3IDEwOjQwOjIzIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiByZW1vdmVkIHNvbWUgZXh0ZXJuIGJlZm9yZSBmdW5jdGlvbiBjb2RlIHJlcG9ydGVkIGJ5CisJICBLamFydGFuIE1hcmFhcyBvbiBJUkMKKwkqIGxlZ2FjeS5jOiBmaXhlZCBjb21waWxpbmcgd2hlbiBjb25maWd1cmluZyBvdXQgdGhlIEhUTUwgcGFyc2VyCisJKiBNYWtlZmlsZS5hbTogYWRkZWQgYSBkZWNsYXJhdGlvbiBmb3IgQ1ZTX0VYVFJBX0RJU1QKKwkqIEhUTUxwYXJzZXIuYzogYmVnaW5uaW5nIG9mIGFuIGF0dGVtcHQgYXQgY2xlYW5pbmcgdXAgdGhlIGNvbnN0cnVjdGlvbgorCSAgb2YgdGhlIEhUTUwgcGFyc2VyIGRhdGEgc3RydWN0dXJlcywgY3VycmVudCBkYXRhIGdlbmVyYXRlIGEgaHVnZQorCSAgYW1vdW50IG9mIEVMRiByZWxvY2F0aW9ucyBhdCBsb2FkaW5nIHRpbWUuCisKK0ZyaSBTZXAgMTcgMTA6MzY6MjMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogQ2hhbmdlTG9nOiBhcHBsaWVkIGZpeCBmcm9tIFN0ZXBhbiBLYXNhbCB0byBmaXggZHVwbGljYXRpb24KKwkgIGluIHRoZSBjaGFuZ2UgbG9nIGFuZCBjbGVhbnVwIG9mIHNwYWNlL3RhYnMgaXNzdWVzLgorCitUaHUgU2VwIDE2IDEzOjI0OjI3IENFU1QgMjAwNCBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmggCisJICB0ZXN0L3NjaGVtYXMvYnVnMTUyNDcwXzEuKiByZXN1bHQvc2NoZW1hcy9idWcxNTI0NzBfMV8xKjogCisJICBTaW1waWZpZWQgYXR0cmlidXRlIHdpbGRjYXJkIGNyZWF0aW9uIGFuZCBhc3NpZ25tZW50IHRvIGdldCByaWQgCisJICBvZiBtZW1vcnkgbGVha3MuCisJICBSZXN0cnVjdHVyZWQgdGhlIHZhbGlkYXRpb24gcHJvY2Vzcy4KKwkgIFJlc3RydWN0dXJlZCBhbmQgZXhwYW5kZWQgcGFyc2luZyBvZiA8YXR0cmlidXRlR3JvdXA+LgorCSAgQWRkZWQgaW5pdGlhbCBoYW5kaW5nIG9mIHhzaTp0eXBlLgorCSAgQWR2YW5jZWQgaGFuZGxpbmcgb2YgeHNpOm5pbCAoc2hvdWxkIHdvcmsgbm93IGZvciBzaW1wbGUgdHlwZXMpLgorCSAgQWRkZWQgY29uc3RydWN0aW9uIG9mIHNjaGVtYXRhIHVzaW5nIHhzaTpzY2hlbWFMb2NhdGlvbiBhbmQgCisJICB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbjsgdGhpcyBpcyBub3QgZW5hYmxlZCwgc2luY2UgCisJICBubyBjb3JyZXNwb25kaW5nIEFQSSBleGlzdHMgeWV0LgorCSAgTW92ZWQgdGhlIGNvbnRlbnQgbW9kZWwgdG8gY29tcGxleCB0eXBlIGNvbXBvbmVudHMuCisJICBSZXNvbHV0aW9uIG9mIHR5cGVzIGZvciBhdHRyaWJ1dGVzIHdpbGwgbG9vayBmb3Igc2ltcGxlIHR5cGVzCisJICBvbmx5IChpbmNsLiBhbGwgdGhlIGJ1aWx0LWluIHNpbXBsZSB0eXBlcykuCisJICBFeHRlbmRlZCBwYXJzaW5nIG9mICdhbnlBdHRyaWJ1dGUnLgorCSAgRml4ZWQgY29udGVudC10eXBlIHR5cGUgZm9yIGNvbXBsZXggdHlwZXMgaWYgZGVyaXZlZCBmcm9tIAorCSAgJ2FueVR5cGUnIHVzaW5nIHRoZSBzaG9ydC1oYW5kIGZvcm0gKHNlZSBidWcgIyAxNTI0NzAsCisJICBzdWJtaXR0ZWQgYnkgVGhpbG8gSmVyZW1pYXMpLgorCSogaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hdHlwZXMuaDogQ2xlYW5lZCB1cCBzb21lIGNvbW1lbnRzLgorCSogeHN0Yy94c3RjLnB5OiBXb3JrYXJvdW5kIHRvIGFjY29tb2RhdGUgY2FzZSBpbnNlbnNpdGl2ZQorCSAgdGVzdCBkZWZpbml0aW9ucyBpbiBtcy10ZXN0LmRlZi54bWwuCisJKiByZXN1bHQvc2NoZW1hcy9kZXRlcjBfMF8wLmVyciByZXN1bHQvc2NoZW1hcy9uczBfMF8yLmVycgorCSAgcmVzdWx0L3NjaGVtYXMvbnMwXzFfMi5lcnI6IEFkYXB0ZWQuCisKK1NhdCBTZXAgMTEgMDk6MDQ6MjIgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbHdyaXRlci5jOiBjaGFuZ2VkIGNoYXIgYXJyYXkgaW5pdGlhbGlzYXRpb24gdG8gYXZvaWQgYQorCSAgY29tcGxhaW50IGZyb20gc29tZSBjb21waWxlcihzKSAoYnVnIDE1MjMwOCkKKworVGh1IFNlcCAgOSAwNzoyMjoxMSBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZW5jb2RpbmcuYzogYXBwbGllZCBmaXhlcyBmb3IgdGhlIFVURjhUb0lTTzg4NTl4IHRyYW5zY29kaW5nCisJICByb3V0aW5lIHN1Z2dlc3RlZCBieSBNYXJrIEl0emNvdml0egorCitXZWQgU2VwICA4IDIyOjUwOjI3IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmMgeG1sc2F2ZS5jOiBmaXhlZCAyIHByb2JsZW1zIHJhaXNlZCBieSAjMTUyMTQwLCBvbmUKKwkgIHdoaWNoIGlzIHRoYXQgbm90YXRpb24gbm90IGluIHRoZSBpbnRlcm5hbCBzdWJzZXQgc2hvdWxkCisJICBub3QgYmUgc2F2ZWQsIGFuZCB0aGUgc2Vjb25kIG1vcmUgbmFzdHkgb24gYW4gZXJyb3Igc2F2aW5nCisJICBOT1RBVElPTnMsIGlmIHRoZXJlIGlzIGEgcHJvb2YgdGhhdCBub2JvZHkgdXNlcyBub3RhdGlvbnMgIQorCitXZWQgU2VwICA4IDExOjA0OjI3IENFU1QgMjAwNCBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6IEFkZGVkIHRoZSBmdW5jdGlvbgorCSAgeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50IHRvIHRoZSBYTUwgU2NoZW1hIHZhbGlkYXRpb24gQVBJLCAKKwkgIGFzIHByb3Bvc2VkIGJ5IEplZmZyZXkgRmluayAtIHNlZSBidWcgIyAxNTIwNzMuCisKK1R1ZSBTZXAgIDcgMTE6MTA6MzYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGRvYy9NYWtlZmlsZS5hbSB4c3RjL01ha2VmaWxlLmFtOiBzb21lIGNsZWFudXAKKwkgIGNoZWNraW5nIGZvciB4bWxsaW50IGFuZCB4c2x0cHJvYyBpbiBjb25maWd1cmUuaW4sIGZpeGVkCisJICBtYWtlIGRpc3Qgdy5yLnQuIHRoZSBuZXcgeHN0YyBzdWJkaXIuCisJKiBkb2MvKjogcmVidWlsdAorCitNb24gU2VwICA2IDE2OjQyOjU5IENFU1QgMjAwNCBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhzdGMveHN0Yy5weTogQ2hhbmdlZCB0byBmaW5hbGx5IHZhbGlkYXRlIGluc3RhbmNlIGRvY3VtZW50cy4KKworTW9uIFNlcCAgNiAxNjowNDowMSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4c3RjL01ha2VmaWxlLmFtIE1ha2VmaWxlLmFtOiBpbnRlZ3JhdGVkIHRvICJtYWtlIHZhbGdyaW5kIiwKKwkgIGhlYXZ5IC4uLiB3ZWlnaHQgMjUwTUIgb2YgVk0gIQorCitNb24gU2VwICA2IDE0OjU0OjM5IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhzdGMvTWFrZWZpbGUuYW0geHN0Yy94c3RjLXRvLXB5dGhvbi54c2wgeHN0Yy94c3RjLnB5IE1ha2VmaWxlLmFtOgorCSAgbW9yZSBjbGVhbnVwIGluIGludGVncmF0aW5nIHRoZSB4c3RjIHRlc3RzdWl0ZQorCitNb24gU2VwICA2IDEzOjU2OjI4IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbiB4c3RjLy5jdnNpZ25vcmUgeHN0Yy9NYWtlZmlsZS5hbToKKwkgIHN0YXJ0aW5nIHRvIGludGVncmF0ZSB0aGUgeHN0YyBzdWl0ZSBpbiB0aGUgbm9ybWFsIHJlZ3Jlc3Npb24KKwkgIHRlc3RzCisKK01vbiBTZXAgIDYgMTM6MTQ6MTEgQ0VTVCAyMDA0IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeHN0Yy9zdW4tdGVzdC1kZWYueG1sOiBUaGUgInRzRGlyIiBhdHRyaWJ1dGUgd2FzIG5vdAorCSAgc2V0IGNvcnJlY3RseS4KKworTW9uIFNlcCAgNiAxMTo1Mjo1MCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaGVjay14aW5jbHVkZS10ZXN0LXN1aXRlLnB5OiB3aGVuIG91dHB1dCBhbmQgZXhwZWN0ZWQgZG8gbm90IG1hdGNoCisJICBleGFjdGx5IHJ1biBkaWZmIHRvIHB1dCB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGxvZyBjLmYuICMxNDg2OTEKKworTW9uIFNlcCAgNiAxMToxNzozNSBDRVNUIDIwMDQgS2FzaW1pZXIgQnVjaGNpayA8bGlieG1sMi1jdnNAY2F6aWMubmV0PgorCisJKiB4c3RjL3hzdGMtdG8tcHl0aG9uLnhzbHQgeHN0Yy9tcy10ZXN0LWRlZi54bWwgeHN0Yy9uaXN0LXRlc3QtZGVmLnhtbAorCSAgeHN0Yy9zdW4tdGVzdC1kZWYueG1sOiBJbml0aWFsIHJlbGVhc2Ugb2YgZ2VuZXJhdGlvbiBmaWxlcyB0byAKKwkgIGNyZWF0ZSBweXRob24gdGVzdCBzY3JpcHRzLCB3aGljaCB3aWxsIHJ1biB0aGUgVzNDIFhNTCBTY2hlbWEgVGVzdAorCSAgQ29sbGVjdGlvbi4gVGhlIG1zLXRlc3QtZGVmLnhtbCBhbmQgc3VuLXRlc3QtZGVmLnhtbCBmaWxlcworCSAgd2VyZSBleHRyYWN0ZWQgZnJvbSB0aGUgb25saW5lIEhUTUwgWFNUQyByZXN1bHRzIFsxXSwgc2luY2UgdGhleSBkaWQKKwkgIG5vdCBleGlzdCBmb3IgdGhlIFNVTiB0ZXN0cywgYW5kIG9ubHkgcGFydGlhbGx5IGRpZCBleGlzdCBmb3IgdGhlIAorCSAgTVMgdGVzdHMuIFRoZSBOSVNUIGRlZmluaXRpb24gZmlsZSB3YXMgY3JlYXRlZCBieSBjb25jYXRlbmF0aW9uCisJICBvZiB0aGUgZXhpc3RpbmcgZGVmaW5pdGlvbiBmaWxlcyBmb3IgZWFjaCBzaW5nbGUgZGF0YXR5cGUuCisJICBUaGUgc3R5bGVzaGVldCAieHN0Yy10by1weXRob24ueHNsdCIgc2hvdWxkIGJlIHJ1biBhZ2FpbnN0IHRoZQorCSAgZGVmaW5pdGlvbiBmaWxlcyB0byBwcm9kdWNlIHRoZSBweXRob24gc2NyaXB0cy4KKwkgIFsxXSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzIwMDEvMDUveG1sc2NoZW1hLXRlc3QtY29sbGVjdGlvbi8KKwkgIHJlc3VsdHMtbWFzdGVyLmh0bWwiCisKK0ZyaSBTZXAgIDMgMjA6Mjk6NTkgQ0VTVCAyMDA0IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogRml4ZWQgYSBzZWcgZmF1bHQgaW4geG1sR2V0UU5hbWVQcm9wOgorCSAgYSBmb3JtYXQgYXJndW1lbnQgd2FzIG1pc3NpbmcuCisJICBGaXhlZCB3cm9uZyBhc3NpZ25tZW50IG9mIHRoZSBvd25lciBvZiBhIHdpbGRjYXJkIGluCisJICB4bWxTY2hlbWFCdWlsZEF0dHJpYnV0ZVZhbGlkYXRpb24gKGluIHRoZSBzaG9ydGhhbmRmb3JtIG9mCisJICA8Y29tcGxleFR5cGU+OyB0aGlzIGNhdXNlZCBhIHNlZyBmYXVsdCwgZHVlIHRvIGEgZG91YmxlLWZyZWUKKwkgIG9mIHRoZSB3aWxkY2FyZC4KKwkgIEFkZGVkIGEgY2hlY2sgZm9yIGNpcmN1bGFyIGF0dHJpYnV0ZSBncm91cCByZWZlcmVuY2VzLgorCSAgQWRkZWQgYSBjaGVjayBmb3IgY2lyY3VsYXIgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbiByZWZlcmVuY2VzLgorCSAgRml4ZWQgYSBkdWJsaWNhdGUgeG1sUGFyc2VyRXJyb3JzIGVudW0gdmFsdWUgLSBzZWUgYnVnICMxNTE3MzguCisKK0ZyaSBTZXAgIDMgMTA6MDg6MTMgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbW0uY29tLmhrPgorCisJKiB4bWxzdHJpbmcuYzogbW9kaWZpZWQgY29tbWVudHMgb24geG1sR2V0VVRGOENoYXIgaW4KKwkgIHJlc3BvbnNlIHRvIGJ1ZyAxNTE3NjAgKG5vIGNoYW5nZSB0byBsb2dpYykKKworVHVlIEF1ZyAzMSAwOTo0NjoxOCBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sc3RyaW5nLmM6IGZpeGVkIGVycm9yIHJlcG9ydGVkIG9uIHRoZSBsaXN0IGNhdXNlZCBieQorCSAgbXkgbGFzdCBjaGFuZ2UKKworVHVlIEF1ZyAzMSAxNTo0MTo1MiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBORVdTIGNvbmZpZ3VyZS5pbiBkb2MvKjogcmVsZWFzZSBvZiBsaWJ4bWwyLTIuNi4xMworCitUdWUgQXVnIDMxIDE0OjE0OjMwIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGZpeGluZyAjMTUxNDU2LCBhbiBlbmNvZGluZyBlcnJvciBjb3VsZCBnZW5lcmF0ZQorCSAgYSBzZXJpYWxpemF0aW9uIGxvb3AuCisKK1R1ZSBBdWcgMzEgMTE6MzQ6MDQgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGFsc28gcHJvZHVjZSBhIHRhciBiYWxsIHdpdGgganVzdCB0aGUgc291cmNlcworCSogeG1sbGludC5jOiBhZGRlZCAtLXBhdGggb3B0aW9uIGFuZCAtLWxvYWQtdHJhY2Ugb3B0aW9ucyB0bworCSAgeG1sbGludCwgUkZFICMxNDc3NDAgYmFzZWQgb24geHNsdHByb2MgdmVyc2lvbnMKKwkqIGRvYy94bWxsaW50LiogZG9jLyo6IHVwZGF0ZWQgdGhlIG1hbiBwYWdlIGFuZCByZWJ1aWx0CisKK1R1ZSBBdWcgMzEgMTA6Mzc6MjMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6ICIiIGlzIGEgdmFsaWQgaGV4YmluYXJ5IHN0cmluZyBkaXhpdCB4bWxzY2hlbWEtZGV2CisJKiByZXN1bHQvc2NoZW1hcy9oZXhiaW5hcnlfMF8xLmVyciB0ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sOiAKKwkgIHVwZGF0ZSB0aGUgdGVzdC4KKwkqIHRlc3QvbnM1IHJlc3VsdC8vbnM1KjogYWRkZWQgYSB0ZXN0IGZvciB0aGUgbmFtZXNwYWNlIGJ1ZyBmaXhlZAorCSAgaW4gcHJldmlvdXMgY29tbWl0LgorCSogTWFrZWZpbGUuYW06IGFkZGVkIGEgbWVzc2FnZSBpbiB0aGUgcmVncmVzc2lvbiB0ZXN0cworCitNb24gQXVnIDMwIDIzOjM2OjIxIFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBTQVgyLmM6IGZpeGVkIGJ1ZyBpbnRyb2R1Y2VkIGR1cmluZyBPT00gZml4dXAgY2F1c2luZyBwcm9ibGVtcworCSAgd2l0aCBkZWZhdWx0IG5hbWVzcGFjZSB3aGVuIGEgbmFtZWQgcHJlZml4IHdpdGggdGhlIHNhbWUgaHJlZgorCSAgd2FzIHByZXNlbnQgKHJlcG9ydGVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYnkgS2FybCBFaWNod2FsZGVyLgorCSogeG1sc3RyaW5nLmM6IG1vZGlmaWVkIHhtbENoZWNrVVRGOCB3aXRoIHN1Z2dlc3RlZCBjb2RlIGZyb20KKwkgIEp1bGl1cyBNaXR0ZW56d2VpLgorCSogZGljdC5jOiBhZGRlZCBhIHR5cGVjYXN0IHRvIHRyeSB0byBhdm9pZCBwcm9ibGVtIHJlcG9ydGVkIGJ5CisJICBQYXNjYWwgUm9kZXMuCisKK01vbiBBdWcgMzAgMTI6NDU6NDYgQ0VTVCAyMDA0IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogeG1sc2NoZW1hcy5jOiBGaXhlZCBhIGJ1ZyBpbiB4bWxTY2hlbWFzQ2hlY2tGYWNldCwgd2hpY2ggZGlkCisJICBub3QgY3JlYXRlIGEgY29tcHV0ZWQgdmFsdWUgb24gYSBmYWNldCBhbmQgdGh1cyBjcmFzaGVkIGR1cmluZworCSAgdmFsaWRhdGlvbiBvZiBpbnN0YW5jZXMuCisJICBFeHBhbmRlZCB2YWxpZGl0eSBjaGVja3MgZm9yIG1pbi9tYXhPY2N1cnMgYXR0cmlidXRlcy4KKwkgIEV4cGFuZGVkIHZhbGlkaXR5IGNoZWNrcyBmb3IgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgImZvcm0iLgorCitGcmkgQXVnIDI3IDE4OjMyOjI0IFBTVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzdHJpbmcuYzogZml4ZWQgYSBwcm9ibGVtIHdpdGggeG1sQ2hlY2tVVEY4IHJlcG9ydGVkIG9uIHRoZQorCSAgbWFpbGluZyBsaXN0IGJ5IEp1bGl1cyBNaXR0ZW56d2VpCisKK0ZyaSBBdWcgMjcgMDA6MTM6MzkgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IGFkZGVkIEJ1aWxkUmVxdWlyZXM6ICB6bGliLWRldmVsLCBmaXhlcworCSAgUmVkIEhhdCBidWcgIzEyNDk0MgorCitUaHUgQXVnIDI2IDEyOjI3OjIzIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiByZW1vdmUgYSB3YXJuaW5nIG9uIFNvbGFyaXMKKwkqIHhtbHNjaGVtYXN0eXBlLmM6IGZpeCBhIGNyYXNoaW5nIGJ1ZyAjMTUxMTExCisKK1dlZCBBdWcgMjUgMjI6MjA6MTggQ0VTVCAyMDA0IEthc2ltaWVyIEJ1Y2hjaWsgPGxpYnhtbDItY3ZzQGNhemljLm5ldD4KKworCSogdGVzdC9zY2hlbWFzL2ltcG9ydC1iYWQtMV8wLmltcDogQWRkZWQgbWlzc2luZyB0ZXN0IGZpbGUuCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6CisJICBTdWJzdGl0dXRlZCB0aGUgb2Jzb2xldGUgeG1sU2NoZW1hVmFsaWRFcnJvcihzKSBmb3IgeG1sUGFyc2VyRXJyb3JzCisJICAtIHNlZSAjMTUwODQwLiAKKwkgIENoYW5nZWQgdGhlIGltcG9ydCBvZiBzY2hlbWFzIHRvIGFsbG93IGZhaWx1cmUgb2YgbG9jYXRpb24KKwkgIG9mIGEgcmVzb3VyY2UgdG8gYmUgaW1wb3J0ZWQuCisJKiByZXN1bHQvc2NoZW1hcy9hbGxfKiByZXN1bHQvc2NoZW1hcy9hbnkzXzBfMC5lcnIgCisJICByZXN1bHQvc2NoZW1hcy9jaG9pY2VfKiByZXN1bHQvc2NoZW1hcy9pbXBvcnQxXzBfMC5lcnIKKwkgIHJlc3VsdC9zY2hlbWFzL2xpc3QwXzBfMS5lcnIgcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8wLmVycgorCSAgcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8xLmVyciByZXN1bHQvc2NoZW1hcy9uczBfMF8yLmVycgorCSAgcmVzdWx0L3NjaGVtYXMvbnMwXzFfMi5lcnI6IEFkYXB0ZWQgcmVncmVzc2lvbiB0ZXN0IHJlc3VsdHMuCisKK1R1ZSBBdWcgMjQgMjA6NDk6MTUgTURUIDIwMDQgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3R1dG9yaWFsL3htbHR1dG9yaWFsLnhtbCwgeG1sdHV0b3JpYWwucGRmLCAqLmh0bWwKKwlmaXggWHBhdGggbWVtb3J5IGxlYWsgKHRoYW5rcyB0byBzS2FCb3kgYW5kIFdpbGxpYW0gQnJhY2spCisKK1R1ZSBBdWcgMjQgMjE6MTA6NTkgQ0VTVCAyMDA0IElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBwYXRoIHByb2JsZW0gaW4gRFREIGxvYWRpbmcgcmVwb3J0ZWQgYnkgCisJICBTYW1lZXIgQWJoaW5rYXIKKworVHVlIEF1ZyAyNCAxNjo0MDo1MSBDRVNUIDIwMDQgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvY29uZmlndXJlLmpzOiBhZGRlZCBzdXBwb3J0IGZvciB2ZXJzaW9uIGV4dHJhCisJKiB3aW4zMi9NYWtlZmlsZS4qOiB1cGdyYWRlZCB0byB6bGliIDEuMi4xCisKK01vbiBBdWcgMjMgMTQ6MzM6NTQgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiByZW1vdmluZyAtTyAtZyBmcm9tIGRlZmF1bHQgZ2NjIGZsYWdzICMxNTA4MjgKKworU3VuIEF1ZyAyMiAxNjoyNjo0NiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gZG9jLyogTkVXUzogcHJlcGFyaW5nIDIuNi4xMiByZWxlYXNlLCB1cGRhdGVkIGFuZAorCSAgYW5kIHJlYnVpbHQgdGhlIGRvY3MuCisKK1N1biBBdWcgMjIgMTY6MDc6MjAgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiBmaXggYSBwcm9ibGVtIG9uIGxhc3QgY29tbWl0CisKK1N1biBBdWcgMjIgMTU6MTY6NTMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jIHhwYXRoLmMgaW5jbHVkZS9saWJ4bWwveHBhdGguaCAKKwkgIGluY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmggcHl0aG9uL2xpYnhtbC5jIAorCSAgcHl0aG9uL2xpYnhtbF93cmFwLmg6IHRyeWluZyB0byByZW1vdmUgc29tZSB3YXJuaW5nIHdoZW4gY29tcGlsaW5nCisJICBvbiBGZWRvcmEgQ29yZSAzIGFuZCA2NGJpdHMKKworU2F0IEF1ZyAyMSAwOjAzNToxMCBDRVQgMjAwNCBLYXNpbWllciBCdWNoY2lrIDxsaWJ4bWwyLWN2c0BjYXppYy5uZXQ+CisKKwkqIHhtbHNjaGVtYXMuYzogbW9kaWZpZWQgcGFyc2luZyBvZiA8bGlzdD4sIDx1bmlvbj4sIDxyZXN0cmljdGlvbj4sCisJICA8c2VxdWVuY2U+LCA8Y2hvaWNlPiwgPGluY2x1ZGU+LCA8aW1wb3J0Pi4KKwkgIEZpeGVkIHNjaGVtYSBkZWZhdWx0cyAoZWxlbWVudEZvcm1EZWZhdWx0LCBldGMuKSBmb3IgaW5jbHVkZWQKKwkgIHNjaGVtYXMuCisJICBGaXhlZCBhIGJ1ZyB3aGljaCByZXBvcnRlZCBhdHRyaWJ1dGVzIGFzIGludmFsaWQgb24KKwkgIGVsZW1lbnRzIGRlY2xhcmF0aW9ucyB3aXRoIHRoZSBidWlsdC1pbiB0eXBlICdhbnlUeXBlJy4KKwkgIEFkZGVkICJsYXgiIHZhbGlkYXRpb24gb2YgdGhlIGNvbnRlbnQgb2YgZWxlbWVudHMgb2YgdHlwZQorCSAgJ2FueVR5cGUnLgorCSAgRml4ZWQ6IGVsZW1lbnQgZGVjbGFyYXRpb25zIHdpdGggdGhlIHNhbWUgbmFtZSB3ZXJlIHRyZWF0ZWQKKwkgIGFzIGR1cGxpY2F0ZSBpZiBsb2NhdGVkIGluIHRoZSBzdWJ0cmVlIG9mIDxjaG9pY2U+IC0+IDxzZXF1ZW5jZT4uCisJICAoVGhpcyB3YXMgYnVnIDE1MDYyMywgc3VibWl0dGVkIGJ5IFJvbGFuZCBMZXp1bykKKwkgIEZpeGVkIGNsZWFudXAgb2YgZXJyb3IgY29kZXMgaW4geG1sU2NoZW1hVmFsaWRhdGVEb2MgYXMgcHJvcG9zZWQKKwkgIGJ5IElnb3IgS2FwaXRhbmtlci4gKFRoaXMgd2FzIGJ1ZyAxNTA2NDcsIHN1Ym1pdHRlZCBieSBJZ29yCisJICBLYXBpdGFua2VyKQorCSogeG1sc2NoZW1hc3R5cGVzLmM6IENoYW5nZWQgdGhlIHR5cGUgb2YgYW55VHlwZSB0bworCSAgWE1MX1NDSEVNQVNfQU5ZVFlQRS4KKwkqIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IEFkZGVkIHNjaGVtYSBwYXJzZXIgZXJyb3JzLgorCSogcmVzdWx0L3NjaGVtYXMvYnVnMTQ1MjQ2XzBfMCoKKwkgIHJlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjFfMF8yLmVycjogQ2hhbmdlZCB0ZXN0IHJlc3VsdHMuCisJKiByZXN1bHQvc2NoZW1hcy9jdC1zYy1ub2Jhc2VfMF8wKgorCSAgcmVzdWx0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wXzAqCisJICByZXN1bHQvc2NoZW1hcy9pbXBvcnQxXzBfMCogcmVzdWx0L3NjaGVtYXMvaW1wb3J0Ml8wXzAqCisJICByZXN1bHQvc2NoZW1hcy9pbmNsdWRlMl8wXzAqIHJlc3VsdC9zY2hlbWFzL2luY2x1ZGUzXzBfMCoKKwkgIHJlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzBfMCoKKwkgIHJlc3VsdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzBfMCoKKwkgIHJlc3VsdC9zY2hlbWFzL3hzZC1saXN0LWl0ZW1UeXBlXzBfMCo6IEFkZGVkIG5ldyByZXN0IHJlc3VsdHMuCisJICB0ZXN0L3NjaGVtYXMvYnVnMTQ1MjQ2LnhzZC5pbXAgdGVzdC9zY2hlbWFzL2N0LXNjLW5vYmFzZV8wKgorCSAgdGVzdC9zY2hlbWFzL2ZhY2V0LXdoaXRlU3BhY2VfMCogdGVzdC9zY2hlbWFzL2ltcG9ydDFfMCoKKwkgIHRlc3Qvc2NoZW1hcy9pbXBvcnQyXzAqIHRlc3Qvc2NoZW1hcy9pbmNsdWRlMl8wKgorCSAgdGVzdC9zY2hlbWFzL2luY2x1ZGUzXzAqIHRlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbi1hdHRyMV8wKgorCSAgdGVzdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzAqIHRlc3Qvc2NoZW1hcy94bWwueHNkCisJICB0ZXN0L3NjaGVtYXMveHNkLWxpc3QtaXRlbVR5cGVfMCo6IEFkZGVkIG5ldyB0ZXN0cyBhbmQgbWlzc2luZworCSAgZmlsZXMuICAJICAgICAgCisKK0ZyaSBBdWcgMjAgMTg6NTE6MzYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluOiBhIGJpdCBvZiBjbGVhbnVwIGFuZCBhIGV4dHJhIHZhcmlhYmxlIGZvcgorCSAgQ1ZTIGRpc3QKKworVGh1IEF1ZyAxOSAwNzo0NDowNyBNRFQgMjAwNCBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sbGludC54bWwsIHhtbGxpbnQuMSwgeG1sbGludC5odG1sOgorCUVkaXQgYW5kIHJlYnVpbGQgdGhlIG1hbiBwYWdlcyB3aXRoIERhbmllbCdzIEMxNCB1cGRhdGUKKworV2VkIEF1ZyAxOCAxOToxNToyNyBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcGFyc2VyLmM6IGZpeGVkIG1pc3NpbmcgbGluZSBudW1iZXJzIG9uIGVudGl0eSBhcyByZXBvcnRlZAorCSAgb24gdGhlIGxpc3QgYnkgU3RldmUgQ2hlbmcKKworV2VkIEF1ZyAxOCAxNDowNDozMSBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogY29uZmlndXJlLmluIGdsb2JhbHMuYyBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW4KKwkgIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oLmluOiBhZGRlZCBzb21lIGNvZGUgdG8KKwkgIGluY2x1ZGUgdGhlIENWUyBDaGFuZ2VMb2cgdmVyc2lvbiBpbiB0aGUgeG1sUGFyc2VyVmVyc2lvbgorCSAgc3RyaW5nIChwcmludGVkIGJ5IHhtbGxpbnQgd2l0aCAtLXZlcnNpb24pCisKK1dlZCBBdWcgMTggMTE6MTQ6MDYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXMuaCBweXRob24vZ2VuZXJhdG9yLnB5CisJICBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbF93cmFwLmggcHl0aG9uL3R5cGVzLmMKKwkgIHB5dGhvbi90ZXN0cy9zY2hlbWEucHkgcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtOiBBcHBsaWVkIHBhdGNoCisJICBmcm9tIFRvcmtlbCBMeW5nIHRvIGFkZCBTY2hlbWFzIHN1cHBvcnQgdG8gdGhlIFB5dGhvbiBiaW5kaW5ncworCSAgYW5kIGV4dGVuZCB0aGUgc2NoZW1hcyBlcnJvciBBUEksIHJlZ2lzdGVyZWQgYSBuZXcgdGVzdC4KKwkqIGRvYy8qIGVsZmdjY2hhY2suaDogcmVidWlsdCB0byByZWdlbmVyYXRlIHRoZSBiaW5kaW5ncworCitNb24gQXVnIDE2IDE0OjM2OjI1IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRlYnVnWE1MLmM6IGFkZGVkIGhlbHAgZm9yIG5ldyBzZXQgc2hlbGwgY29tbWFuZAorCSogeGluY2x1ZGUuYyB4bWxsaW50LmMgeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6CisJICBhZGRlZCBwYXJzZXIgb3B0aW9uIHRvIG5vdCBnZW5lcmF0ZSBYSW5jbHVkZSBzdGFydC9lbmQgbm9kZXMsCisJICBhZGRlZCBhIHNwZWNpZmljIG9wdGlvbiB0byB4bWxsaW50IHRvIHRlc3QgaXQgZml4ZXMgIzEzMDc2OQorCSogTWFrZWZpbGUuYW06IHJlZ3Jlc3Npb24gdGVzdCB0aGUgbmV3IGZlYXR1cmUKKwkqIGRvYy94bWxsaW50LjEgZG9jL3htbGxpbnQueG1sOiB1cGRhdGVkIG1hbiBwYWdlIHRvIGRvY3VtZW50IG9wdGlvbi4KKworTW9uIEF1ZyAxNiAwMjo0MjozMCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBzbWFsbCB0eXBvIHBvaW50ZWQgb3V0IGJ5IE1pa2UgSG9tbWV5CisJKiBkb2MveG1sbGludC54bWwsIHhtbGxpbnQuaHRtbCwgeG1sbGludC4xOiBzbGlnaHRseSBpbXByb3ZlZAorCSAgdGhlIC0tYzE0biBkZXNjcmlwdGlvbiwgYy5mLiAjMTQ0Njc1IC4KKwkqIG5hbm9odHRwLmMgbmFub2Z0cC5jOiBhcHBsaWVkIGEgZmlyc3Qgc2ltcGxlIHBhdGNoIGZyb20gCisJICBNaWtlIEhvbW1leSBmb3IgJG5vX3Byb3h5LCBjLmYuICMxMzM0NzAKKwkqIHBhcnNlckludGVybmFscy5jIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBjbGVhbnVwIHRvIGF2b2lkICdlcnJvcicgaWRlbnRpZmllciAKKwkgIGluIGluY2x1ZGVzICMxMzc0MTQKKwkqIHBhcnNlci5jIFNBWDIuYyBkZWJ1Z1hNTC5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOgorCSAgZmlyc3QgdmVyc2lvbiBvZiB0aGUgaW5wbGVtZW50YXRpb24gb2YgcGFyc2luZyB3aXRoaW4KKwkgIHRoZSBjb250ZXh0IG9mIGEgbm9kZSBpbiB0aGUgdHJlZSAjMTQyMzU5LCBuZXcgZnVuY3Rpb24KKwkgIHhtbFBhcnNlSW5Ob2RlQ29udGV4dCgpLCBhZGRlZCBzdXBwb3J0IGF0IHRoZSB4bWxsaW50IC0tc2hlbGwKKwkgIGxldmVsIGFzIHRoZSAic2V0IiBmdW5jdGlvbgorCSogdGVzdC9zY3JpcHRzL3NldCogcmVzdWx0L3NjcmlwdHMvKiBNYWtlZmlsZS5hbTogZXh0ZW5kZWQKKwkgIHRoZSBzY3JpcHQgYmFzZWQgcmVncmVzc2lvbiB0ZXN0cyB0byBpbnN0cnVtZW50IHRoZSBuZXcgZnVuY3Rpb24uCisKK1NhdCBBdWcgMTQgMTg6NTM6MDggTURUIDIwMDQgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGxpbnQueG1sLCB4bWxsaW50Lmh0bWwsIHhtbGxpbnQuMToKKwlhZGQgYzE0biB0byBtYW4gcGFnZSAobWFuLCBpdCdzIGhhcmQgdG8ga2VlcCB1cCB3aXRoCisJRGFuaWVsISkKKworU2F0IEF1ZyAxNCAxODo0NTozOCBNRFQgMjAwNCBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sbGludC54bWwsIHhtbGxpbnQuaHRtbCwgeG1sbGludC4xOgorCWFkZCBwYXR0ZXJuLCB3YWxrZXIsIG1heG1lbSwgb3V0cHV0IGFuZCB4bWxvdXQgdG8gbWFuIHBhZ2UKKwlmaXhlcyAjMTQ0Njc1CisKK1N1biBBdWcgMTUgMDA6NDE6MTIgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhZGRlZCBhIC0tYzE0biBvcHRpb24gdG8gY2Fub25pY2FsaXplIHRoZSBvdXRwdXQKKwkgIHNob3VsZCBjbG9zZSB0aGUgUkZFICMxNDMyMjYKKworU2F0IEF1ZyAxNCAyMzo1MDoxMCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IERvZGppIHBvaW50ZWQgb3V0IGEgYnVnIGluIHhtbEdldE5vZGVQYXRoKCkKKwkqIHhtbGNhdGFsb2cuYzogYXBwbGllZCBwYXRjaCBmcm9tIEFsYmVydCBDaGluIHRvIGFkZCBhCisJICAtLW5vLXN1cGVyLXVwZGF0ZSBvcHRpb24gdG8geG1sY2F0YWxvZyBzZWUgIzE0NTQ2MQorCSAgYW5kIGFub3RoZXIgcGF0Y2ggYWxzbyBmcm9tIEFsYmVydCBDaGluIHRvIG5vdCBjcmFzaCAKKwkgIG9uIC1zZ21sIC0tZGVsIHdpdGhvdXQgYXJncyBzZWUgIzE0NTQ2MgorCSogTWFrZWZpbGUuYW06IGFwcGxpZWQgYW5vdGhlciBwYXRjaCBmcm9tIEFsYmVydCBDaGluIHRvCisJICBmaXggYSBwcm9ibGVtIHdpdGggZGlmZiBvbiBTb2xhcmlzICMxNDU1MTEKKwkqIHhtbHN0cmluZy5jOiBmaXggeG1sQ2hlY2tVVEY4KCkgYWNjb3JkaW5nIHRvIHRoZSBzdWdnZXN0aW9uCisJICBpbiBidWcgIzE0ODExNQorCSogcHl0aG9uL2xpYnhtbC5weTogYXBwbHkgZml4IGZyb20gTWFyYy1BbnRvaW5lIFBhcmVudCBhYm91dAorCSAgdGhlIGVycm9ycyBpbiBsaWJ4bWwoMikucHkgb24gdGhlIG5vZGUgd3JhcHBlciAjMTM1NTQ3CisKK1NhdCBBdWcgMTQgMTM6MTg6NTcgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGFkZGVkIGEgZHVtYiBydWxlIHRvIGFibGUgdG8gY29tcGlsZSB0c3QuYworCSAgd2hlbiBwZW9wbGUgc3VibWl0IGEgc2FtcGxlIHRlc3QgcHJvZ3JhbQorCSogeG1sc2NoZW1hcy5jOiBhcHBsaWVkIHNtYWxsIHBhdGNoIGZyb20gRXJpYyBIYXN6bGFraWV3aWN6CisJICB0byBkb2N1bWVudCB4bWxTY2hlbWFzU2V0VmFsaWRFcnJvcnMoKSBsaW1pdGF0aW9ucywgIzE0MTgyNworCSogZXJyb3IuYzogQWRkIGluZm9ybWF0aW9uIGluIGdlbmVyaWMgYW5kIHN0cnVjdHVyZWQgZXJyb3IKKwkgIHNldHRlciBmdW5jdGlvbnMgdGhhdCB0aGlzIG5lZWQgdG8gYmUgZG9uZSBwZXIgdGhyZWFkICMxNDQzMDgKKwkqIHhtbHNhdmUuYzogZml4ZWQgYnVnIHdoaXRoIG1pc3NpbmcgTk9UQVRJT04ocykgc2VyaWFsaXphdGlvbgorCSAgYnVnICMxNDQxNjIKKwkqIGRvYy94bWxsaW50LnhtbDogdHlwbyBmaXggIzE0NDg0MAorCitUdWUgQXVnIDEwIDA3OjE5OjMxIFBEVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIHhtbHJlZ2V4cC5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYworCSAgaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oOiBhcHBsaWVkIFNjaGVtYXMgcGF0Y2hlcworCSAgZnJvbSBLYXNpbWllciBCdWNoY2lrCisJKiB0ZXN0LyByZXN1bHQvIGJ1ZzE0MTMzMyogYW5ub3QtZXJyKiBhbnlbMS00XSogYnVnMTQ1MjQ2KgorCSAgZWxlbWVudC1lcnIqIGVsZW1lbnQtbWlubWF4LWVyciogaW5jbHVkZTEqIHJlc3RyaWN0LUNULWF0dHItcmVmKjoKKwkgIGxvdCBvZiBuZXcgdGVzdHMgZm9yIHRoaW5ncyBmaXhlZCBieSB0aGUgcGF0Y2gKKworRnJpIEF1ZyAgNiAwOToyMjozNCBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogZml4ZWQgbXkgbWlzLWhhbmRsaW5nIG9mIEV4dGVybmFsIElEIG9uIGxhc3QKKwkgIGNoYW5nZS4KKworV2VkIEF1ZyAgNCAyMzo0MDoyMSBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogY2hhbmdlZCB0aGUgcGFyc2luZyBvZiBhIGRvY3VtZW50J3MgRFREIHRvIHVzZQorCSAgdGhlIHByb3BlciBiYXNlIHBhdGggKGJ1ZyAxNDQzNjYpCisKK1dlZCBBdWcgIDQgMTY6NTg6MDggQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gY29uZmlnLmguaW4gY29uZmlndXJlLmluIHB5dGhvbi9NYWtlZmlsZS5hbToKKwkgIGFwcGxpZWQgYSBwYXRjaCBmcm9tIEdlcnJpdCBQLiBIYWFzZSB0byBnZXQgcHl0aG9uIGJpbmRpbmdzCisJICBvbiBDeWd3aW4KKworVHVlIEF1ZyAgMyAxNTowODoyMiBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogaW5jbHVkZS9saWJ4bWwvdmFsaWQuaDogZWxhYm9yYXRlZCBvbiBkZXNjcmlwdGlvbiBvZgorCSAgeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyBhbmQgeG1sVmFsaWRpdHlFcnJvckZ1bmMgKGJ1ZworCSAgMTQ0NzYwKQorCSogeG1sSU8uYywgeG1sc2NoZW1hc3R5cGVzLmMsIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNpbnRlcm5hbHMuaDoKKwkgIG1pbm9yIGZpeGVzIHRvIGNvbW1lbnRzIGZvciBkb2MgcmVidWlsZGluZyBlcnJvcnMuCisJKiBkb2MvKi5odG1sOiByZWJ1aWx0IHRoZSBkb2NzCisKK1R1ZSBBdWcgIDMgMjM6NTk6MjMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL0NoYW5nZUxvZy54c2wgZG9jL2Rvd25sb2Fkcy5odG1sIGRvYy94bWwuaHRtbCBkb2MvKjoKKwkgIGZpeGVzIGRvY3VtZW50YXRpb24gZ2xpdGNoZXMgcmFpc2VkIGJ5IE9saXZlciBTdG9lbmViZXJnCisKK1R1ZSBBdWcgIDMgMDk6NDI6MzEgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHRyZWUuYzogZml4ZWQgcHJvYmxlbSB3aXRoIG1lbW9yeSBsZWFrIG9uIHRleHQgbm9kZXMgaW4gRFRECisJICAoYnVnIDE0ODk2NSkgd2l0aCBwYXRjaCBwcm92aWRlZCBieSBEYXJyZWxsIEtpbmRyZWQKKworVHVlIEF1ZyAgMyAwODoxNDo0NCBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogSFRNTHBhcnNlci5jOiBmaXhlZCBpbml0aWFsaXNhdGlvbiBwcm9ibGVtIGZvciBodG1sUmVhZE1lbW9yeQorCSAgKGJ1ZyAxNDkwNDEpCisKK1NhdCBKdWwgMzEgMTE6MDE6MzMgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGRvYy9idWlsZERvY0Jvb2tDYXRhbG9nOiBlbmhhbmNlZCBwZXIgYnVnIDExOTg3Ni4gIEZ1cnRoZXIKKwkgIGluZm8gcG9zdGVkIHRvIHRoZSBtYWlsaW5nIGxpc3QuCisKK1NhdCBKdWwgMzEgMDk6MTI6NDQgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIFNBWDIuYywgZW5jb2RpbmcuYywgZXJyb3IuYywgcGFyc2VyLmMsIHRyZWUuYywgdXJpLmMsIHhtbElPLmMsCisJICB4bWxyZWFkZXIuYywgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBtYW55IGZ1cnRoZXIgbGl0dGxlIGNoYW5nZXMKKwkgIGZvciBPT00gcHJvYmxlbXMuICBOb3cgc2VlbXMgdG8gYmUgZ2V0dGluZyBjbG9zZXIgdG8gIm9rIi4KKwkqIHRlc3RPT00uYzogYWRkZWQgY29kZSB0byBpbnRlcmNlcHQgbW9yZSBlcnJvcnMsIGZvdW5kIG1vcmUKKwkgIHByb2JsZW1zIHdpdGggbGlicmFyeS4gQ2hhbmdlZCBtZXRob2Qgb2YgZmxhZ2dpbmcgLyBjb3VudGluZworCSAgZXJyb3JzIGludGVyY2VwdGVkLgorCitGcmkgSnVsIDMwIDEzOjU3OjU1IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogYXBwbGllZCBhIGNvdXBsZSBvZiBwYXRjaCBvbmUgZnJvbSBPbGl2ZXIgU3RvZW5lYmVyZworCSAgYW5kIGFub3RoZXIgb25lIGZyb20gUm9iIFJpY2hhcmRzIGZpeGluZyAjMTQ4NDQ4CisKK1RodSBKdWwgMjkgMTM6MjA6MjggQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiAxIGxpbmUgcGF0Y2gsIGFwcGFyZW50bHkgaHRtbE5ld0RvYygpIHdhcyBub3QKKwkgIHNldHRpbmcgZG9jLT5jaGFyc2V0LgorCitUaHUgSnVsIDI5IDAwOjA1OjU4IFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBTQVgyLmMsIHRyZWUuYywgdXJpLmMsIHhtbElPLmMsIHhtbHJlYWRlci5jOiBmdXJ0aGVyCisJICBmaXhlcyBmb3Igb3V0IG9mIG1lbW9yeSBjb25kaXRpb24sIG1vc3RseSBmcm9tIE9saXZpZXIKKwkgIEFuZHJpZXUuCisJKiB0ZXN0T09NLmM6IHNvbWUgZnVydGhlciBpbXByb3ZlbWVudCBieSBPbGl2aWVyLCB3aXRoCisJICBhIGZ1cnRoZXIgc21hbGwgZW5oYW5jZW1lbnQgZm9yIGVhc2llciBkZWJ1Z2dpbmcuCisKK1R1ZSBKdWwgMjcgMDA6MzQ6MDcgUERUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIFNBWDIuYywgZXJyb3IuYywgcGFyc2VyLmMsIHRyZWUuYywgeG1scmVhZGVyLmM6CisJICBpbXBsZW1lbnRlZCBwYXRjaGVzIHN1cHBsaWVkIGJ5IE9saXZpZXIgQW5kcmlldSAKKwkgIChidWcgMTQ4NTg4KSwgcGx1cyBtYWRlIHNvbWUgZnVydGhlciBlbmhhbmNlbWVudHMsIHRvCisJICBjb3JyZWN0IHNvbWUgcHJvYmxlbXMgd2l0aCBvdXQgb2YgbWVtb3J5IGNvbmRpdGlvbnMuCisJKiB0ZXN0T09NLmM6IGltcHJvdmVkIHdpdGggcGF0Y2hlcyBmcm9tIE9saXZpZXIgQW5kcmlldQorCitNb24gSnVsIDI2IDExOjAzOjE4IFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB0cmVlLmM6IHB1dCBpbiBwYXRjaCBmb3IgV2luZG93cyBidWZmZXIgcmUtYWxsb2NhdGlvbgorCSAgc3VibWl0dGVkIGJ5IFN0ZXZlIEhheSAoYnVnIDE0NjY5NykKKworU3VuIEp1bCAyNSAxNzoxODozOSBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeGluY2x1ZGUuYzogYWRkZWQgc29tZSBjb2RlIHRvIGNoZWNrLCB3aGVuIGFuIGluY2x1ZGUgaXMKKwkgIGRvbmUsIHdoZXRoZXIgdGhlIHJlcXVlc3RlZCBVUkwgZ2V0cyBtYXBwZWQgdG8gc29tZSBvdGhlcgorCSAgbG9jYXRpb24gKGUuZy4gd2l0aCBhIGNhdGFsb2cgZW50cnkpIGFuZCwgaWYgc28sIHRha2UgY2FyZQorCSAgb2YgdGhlIHhtbDpiYXNlIHByb3Blcmx5IChidWcgMTQ2OTg4KQorCitTdW4gSnVsIDI1IDE0OjAyOjI0IFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBlcnJvci5jOiBmaXhlZCB0byBhc3N1cmUgdXNlciBkYXRhIHBhcmFtIGlzIHNldCBjb3JyZWN0bHkKKwkgIHdoZW4gdXNlciBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsZXIgaXMgY2FsbGVkIChidWcgMTQ0ODIzKQorCitUaHUgSnVsIDIyIDEwOjE0OjQ4IFBEVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxyZWFkZXIuYzogZml4ZWQgcHJvYmxlbSB3aXRoIHJlYWRlciBzdGF0ZSBhZnRlcgorCSAgcHJvY2Vzc2luZyBhdHRyaWJ1dGVzIChidWcgMTQ3OTkzKQorCitXZWQgSnVsIDIxIDE3OjA0OjI3IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmFtOiBwdXQgaW4gYW4gYXV0byogY2hlY2sgZm9yIHRoZQorCSAgcGF0aCB0byBwZXJsIChpZiBpdCBleGlzdHMpLCBhbmQgbW9kaWZpZWQgbWFrZSBUaW1pbmd0ZXN0cworCSAgdG8gdXNlIHRoYXQgcGF0aCBpbnN0ZWFkIG9mIGp1c3QgZXhlY3V0aW5nIHRoZSBkYmdlbmF0dHIucGwKKwkgIHNjcmlwdCAoYnVnIDE0ODA1NikKKworRnJpIEp1bCAxNiAxODozNjozMyBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weTogYWRkZWQgYSBjaGVjayBvbiB0aGUgYXJndW1lbnQgZm9yIHNvbWUKKwkgIGNsYXNzZXMgKGUuZy4geG1sRG9jIGFuZCB4bWxOb2RlKSB0byBwcmV2ZW50IGEgc2VnZmF1bHQgKGFzCisJICByZXBvcnRlZCBvbiB0aGUgbGlzdCkuICBGdXJ0aGVyIGVuaGFuY2VtZW50IHNob3VsZCBiZSBkb25lCisJICB0byBhdXRvLWNyZWF0ZSB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0LgorCSogcHl0aG9uL2xpYnhtbC5jOiBtaW5vciBmaXggZm9yIGEgd2FybmluZyBtZXNzYWdlOyBhZGRlZCBhCisJICByb3V0aW5lLCBjdXJyZW50bHkgbm90IHVzZWQsIHRvIHJlcG9ydCB0aGUgZGVzY3JpcHRpb24gb2YgYQorCSAgUHlDT2JqZWN0LgorCSogcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IHJlZ2VuZXJhdGVkCisKK0ZyaSBKdWwgMTYgMTE6MDE6NDAgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2F0YWxvZy5jIHRlc3QvY2F0YWxvZ3Mvd2hpdGUqIHJlc3VsdC9jYXRhbG9ncy93aGl0ZSo6CisJICBhcHBsaWVkIHBhdGNoZXMgZnJvbSBQZXRlciBCcmVpdGVubG9obmVyIHRvIGZpeCBoYW5kbGluZworCSAgb2Ygd2hpdGUgc3BhY2Ugbm9ybWFsaXphdGlvbiBpbiBwdWJsaWMgaWRzIGFuZCBhZGQgdGVzdHMKKworVHVlIEp1bCAxMyAxNzoyNDoxMyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxtZW1vcnkuYzogYXBwbGllZCBhIHNtYWxsIGZpeCBmcm9tIFN0ZXZlIEhheQorCitUdWUgSnVsIDEzIDIzOjAyOjE5IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBBZGRlZCBjb2RlIHRvIGluIFBSRURJQ0FURS9GSUxURVIgaGFuZGxpbmcgdG8gcmVzZXQKKwkgIHRoZSB4cGF0aCBjb250ZXh0IGRvY3VtZW50IHBvaW50ZXIgKHBhcnQgb2YgZml4IHRvIGxpYnhzbHQKKwkgIGJ1ZyAxNDc0NDUpCisKK1R1ZSBKdWwgMTMgMDA6MTQ6MDggSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHB5dGhvbi9saWJ4bWwucHk6IHJhbiAnZXhwYW5kJyBvbiB0aGUgZmlsZSB0byBnZXQgcmlkIG9mIG1peHR1cmUKKwkgIG9mIHRhYnMgYW5kIHNwYWNlcyAoYnVnIDE0NzQyNCkKKworU3VuIEp1bCAxMSAyMjozODoyOSBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcHl0aG9uL2Rydl9saWJ4bWwucHk6IGFkZGVkIGFuIGVuY29kaW5nICJzcGVjaWFsIGNvbW1lbnQiIHRvIGF2b2lkCisJICB3YXJuaW5nIG1lc3NhZ2UgaW4gcHl0aG9uMi4zIChidWcgMTQ2ODg5KQorCSogTWFrZWZpbGUuYW0sIHB5dGhvbi9NYWtlZmlsZS5hbSwgcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtOiBzbWFsbAorCSAgY2hhbmdlIHRvIG1ha2UgIm1ha2UgdGVzdHMiIGEgbGl0dGxlIHF1aWV0ZXIgKE1BS0VGTEFHUys9LS1zaWxlbnQpCisJKiB4cGF0aC5jOiBlbmhhbmNlZCB0byB0YWtlIGFkdmFudGFnZSBvZiBjdXJyZW50IGxpYnhzbHQgaGFuZGxpbmcKKwkgIG9mIHRtcFJWVC4gIEZpeGVzIGJ1ZyAxNDU1NDcuCisKK0ZyaSBKdWwgIDkgMTQ6MDI6NTQgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLmggdXJpLmM6IGZpeGVkIGEgY291cGxlIG9mIHByb2JsZW1zIGluIHRoZSBuZXcKKwkgIGVsZmdjY2hhY2suaCB0cmljayBwb2ludGVkIGJ5IFBldGVyIEJyZWl0ZW5sb2huZXIKKworV2VkIEp1bCAgNyAwMDo0NTo0OCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbGZnY2NoYWNrLmggZG9jL2FwaWJ1aWxkLnB5IGRvYy9saWJ4bWwyLWFwaS54bWw6IGZpeGVkIGEgYnVnCisJICB3aGljaCBwcmV2ZW50ZWQgYnVpbGRpbmcgd2l0aCAtLXdpdGgtbWluaW11bQorCitNb24gSnVsICA1IDE5OjQzOjUxIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvKjogcmVsZWFzaW5nIDIuNi4xMSwgdXBkYXRlZCBhbmQgcmVnZW5lcmF0ZWQgdGhlCisJICBkb2NzCisKK01vbiBKdWwgIDUgMTg6NDM6NDcgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IG1ha2UgdGhlIHB1c2ggaW50ZXJmYWNlcyBzeW5jaHJvbm91cworCSogcHl0aG9uL3Rlc3RzL3N5bmMucHk6IGFkZGVkIGEgc3BlY2lmaWMgdGVzdAorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIGRvYy9leGFtcGxlcy9NYWtlZmlsZS5hbQorCSAgZG9jL2V4YW1wbGVzL2luZGV4LnB5OiBhZGRlZCB0aGUgbmV3IHRlc3QsIGNsZWFuaW5nIHVwIAorCSAgIm1ha2UgdGVzdHMiIG91dHB1dAorCitNb24gSnVsICA1IDE1OjA5OjE3IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogYXBwbGllZCBwYXRjaCBmcm9tIEthc2ltaWVyIHRvIGZpeCBzb21lIFJlbGF4LU5HCisJICBkYXRhdHlwZSBmYWNldCBwcm9ibGVtIHdpdGggcmVjZW50IGNoYW5nZXMuCisKK1NhdCBKdWwgIDMgMTE6MzE6MDIgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHB5dGhvbi9saWJ4bWwuYzogQ2hhbmdlZCB0aGUgbnVtYmVyIG9mIFhQYXRoIGV4dGVuc2lvbiBmdW5jdGlvbnMKKwkgIGFsbG93ZWQgdG8gYmUgdmFyaWFibGUtbGVuZ3RoIChwYXRjaCBzdXBwbGllZCBieSBNYXJjLUFudG9pbmUKKwkgIFBhcmVudCwgYnVnIDE0MzgwNSkuICBBZGRlZCBjb2RlIHRvICJ1bnJlZ2lzdGVyIiB0aGUgZnVuY3Rpb25zCisJICB3aGVuIHRoZSBwYXJzZXIgY2xlYW51cCB0YWtlcyBwbGFjZS4KKworRnJpIEp1bCAgMiAxNDoyMjoxNCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxtZW1vcnkuYyBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbDItcHl0aG9uLWFwaS54bWw6CisJICBzb21lIHVwZGF0ZXMgd2l0aCBtZW1vcnkgZGVidWdnaW5nIGZhY2lsaXRpZXMgd2hpbGUgbWVzc2luZworCSAgd2l0aCBsaWJ4c2x0IHB5dGhvbiBiaW5kaW5ncworCitUaHUgSnVsICAxIDE0OjUzOjM2IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwuYyBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwucHkKKwkgIHB5dGhvbi9saWJ4bWwyLXB5dGhvbi1hcGkueG1sIHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0OgorCSAgYXBwbGllZCBwYXRjaCBmcm9tIFN0w6lwaGFuZSBCaWRvdWwgdG8gZml4IHNvbWUgUHl0aG9uIGJpbmRpbmdzCisJICBpbml0aWFsaXphdGlvbiwgdGhlbiBoYWQgdG8gY2hhbmdlIHRoZSBwYXJzZXJDbGVhbnVwKCkgCisJICB0byBoYW5kbGUgbWVtb3J5IHJlbGVhc2VkIHRoZXJlLgorCSogeG1sbWVtb3J5LmM6IGFkZGVkIG1vcmUgZGVidWdnaW5nIGNvbW1lbnRzLgorCitUaHUgSnVsICAxIDEzOjE4OjAyIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBzZWVtcyB0aGUgcmVhZGVyIGJ1ZmZlciBjb3VsZCBiZSB1c2VkIHdoaWxlIG5vdAorCSAgYWxsb2NhdGVkLCBmaXhlcyBidWcgIzE0NTIxOAorCitUaHUgSnVsICAxIDExOjM0OjEwIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHk6IGRvIG5vdCBwcm92aWRlIGZ1bmN0aW9ucyB1c2VkIGFzIGRlc3RydWN0b3IKKwkgIG9mIGNsYXNzZXMgYXMgcHVibGljIG1ldGhvZHMgdG8gYXZvaWQgZG91YmxlLWZyZWUgcHJvYmxlbSBsaWtlCisJICBpbiBidWcgIzE0NTE4NQorCitXZWQgSnVuIDMwIDE5OjQ1OjIzIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzY2hlbWFzLmMsIHhtbHNjaGVtYXN0eXBlcy5jOiB3YXJuaW5nIG1lc3NhZ2UgY2xlYW51cC4KKwkgIE5vdyBjb21waWxlcyB3YXJuaW5nLWZyZWUsIGFsbCB0ZXN0cyBwYXNzZWQuCisJKiBTQVgyLmM6IHNtYWxsIGNoYW5nZSB0byBjb21tZW50cyBmb3IgZG9jdW1lbnRhdGlvbi4KKwkgIE5vIGNoYW5nZSB0byBsb2dpYy4KKworVHVlIEp1biAyOSAxNTowMDoxMyBQRFQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogbW9yZSBmaXhlcyB3aXRoIEthc2ltaWVyLCBsb29rcyBmYXIgY2xlYW5lciA6LSkKKworVHVlIEp1biAyOSAyMzowMDowNSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IEthc2ltaWVyIEJ1Y2hjaWsgZml4ZWQgdGhlIG1lbW9yeSBhY2Nlc3MgYW5kCisJICBhbGxvY2F0aW9uIHByb2JsZW0KKworVHVlIEp1biAyOSAxOTowMDozMiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaAorCSAgaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oOgorCSAgYXBwbGllZCBTY2hlbWFzIHBhdGNoZXMgZnJvbSBLYXNpbWllciBCdWNoY2lrLCB0aGVyZSBpcyBzdGlsbAorCSAgb25lIG9wZW4gaXNzdWUgYWJvdXQgcmVmZXJlbmNpbmcgZnJlZWQgbWVtb3J5LgorCSogdGVzdC9zY2hlbWFzLyogcmVzdWx0L3NjaGVtYXMvKjogdXBkYXRlZCB3aXRoIG5ldyB0ZXN0cyBmcm9tIAorCSAgS2FzaW1pZXIKKworVHVlIEp1biAyOSAxNDo1MjoxOCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggaW5jbHVkZS9saWJ4bWwveG1sSU8uaAorCSAgZG9jL2xpYnhtbDItYXBpLnhtbCBkb2MvbGlieG1sMi1yZWZzLnhtbDogbW92ZWQgc29tZSBkZWZpbml0aW9ucworCSAgdG8gZ2xvYmFscy5oIHRvIGF2b2lkIHNvbWUgdHJvdWJsZXMgcG9pbnRlZCBvdXQgYnkgUm9iIFJpY2hhcmRzCisKK01vbiBKdW4gMjggMTE6MjU6MzEgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLm00OiBhcHBsaWVkIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IE1pa2UgSG9tbWV5LCByZW1vdmUKKwkgIGxpYnhtbDEgc3VwcG9ydCBhbmQgdXNlIENQUEZMQUdTIGluc3RlYWQgb2YgQ0ZMQUdTCisKK1N1biBKdW4gMjcgMTQ6MTc6MTUgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IGFub3RoZXIsIG1vcmUgJ2V4cGVyaW1lbnRhbCcgZmVhdHVyZSB0byAKKwkgIGdldCBjb21waWxlciBvcHRpbWl6YXRpb24gYmFzZWQgb24gZ2NjIHJ1bnRpbWUgcHJvZmlsaW5nCisKK1N1biBKdW4gMjcgMTQ6MDI6MzYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZWxmZ2NjaGFjay5oIGRvYy9lbGZnY2NoYWNrLnhzbCBsaWJ4bWwuaDogaGFjayBiYXNlZCBvbiBBcmphbiB2YW4gZGUKKwkgIFZlbiBzdWdnZXN0aW9uIHRvIHJlZHVjZSBFTEYgZm9vdHByaW50IGFuZCBnZW5lcmF0ZWQgY29kZS4gQmFzZWQgb24KKwkgIGFsaWFzaW5nIG9mIGxpYnJhcmllcyBmdW5jdGlvbiB0byBnZW5lcmF0ZSBkaXJlY3QgY2FsbCBpbnN0ZWFkIG9mCisJICBpbmRpcmVjdCBvbmVzCisJKiBkb2MvbGlieG1sMi1hcGkueG1sIGRvYy9NYWtlZmlsZS5hbSBkb2MvYXBpYnVpbGQucHk6IGFkZGVkIGF1dG9tYXRpYworCSAgZ2VuZXJhdGlvbiBvZiBlbGZnY2NoYWNrLmggYmFzZWQgb24gdGhlIEFQSSBkZXNjcmlwdGlvbiwgZXh0ZW5kZWQKKwkgIHRoZSBBUEkgZGVzY3JpcHRpb24gdG8gc2hvdyB0aGUgY29uZGl0aW9uYWxzIGNvbmZpZ3VyYXRpb24gZmxhZ3MKKwkgIHJlcXVpcmVkIGZvciBzeW1ib2xzLgorCSogbmFub2h0dHAuYyBwYXJzZXIuYyB4bWxzYXZlLmMgaW5jbHVkZS9saWJ4bWwvKi5oOiBsb3Qgb2YgY2xlYW51cAorCSogZG9jLyo6IHJlZ2VuZXJhdGVkIHRoZSBkb2NzLgorCitTdW4gSnVuIDI3IDEwOjAyOjI4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiByZWdyZXNzaW9ucy5weSwgcmVncmVzc2lvbnMueG1sOiBuZXcgZmlsZXMgZm9yIHJ1bm5pbmcKKwkgIHJlZ3Jlc3Npb24gdGVzdHMgdW5kZXIgUHl0aG9uLiAgTm90IHlldCBjb21wbGV0ZSwgYnV0CisJICBzaG91bGQgcHJvdmlkZSBnb29kIHRlc3RpbmcgdW5kZXIgYm90aCBMaW51eCBhbmQgV2luZG93cy4KKwkqIHRlc3RIVE1MLmMsIHRlc3RTQVguYywgeG1sbGludC5jOiBjaGFuZ2VkIHRoZSAnZm9wZW4nIHVzZWQKKwkgIGZvciAtLXB1c2ggdGVzdGluZyB0byBpbmNsdWRlIHRoZSAncmInIHBhcmFtIHdoZW4gY29tcGlsZWQKKwkgIHVuZGVyIFdpbmRvd3MuCisKK0ZyaSBKdW4gMjUgMTM6Mzg6NTcgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHVyaS5jOiBmaXhlZCBhIHByb2JsZW0gd2hlbiBiYXNlIHBhdGggd2FzICIuL3h4eCIKKwkqIHJlc3VsdC9YSW5jbHVkZS8qOiA1IHRlc3QgcmVzdWx0cyBjaGFuZ2VkIGJ5IGFib3ZlLgorCSogTWFrZWZpbGUuYW06IGZpeGVkIGEgY291cGxlIG9mIHNwb3RzIHdoZXJlIGEgbmV3CisJICByZXN1bHQgZmlsZSB1c2VkIGRpZmZlcmVudCBmbGFncyB0aGF0IHRoZSB0ZXN0aW5nIG9uZS4KKworVGh1IEp1biAyNCAxNjoyNzo0NCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogc3VwcHJlc3NlZCB3YXJuaW5ncyBmcm9tIHdpdGhpbiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMKKwkgIChidWcgMTQ0NjQ0KQorCSogZG9jL2V4YW1wbGVzL3Rlc3RXcml0ZXIuYzogY29ycmVjdGVkIHR5cG8gaW4gY29tbWVudCBmb3IgSVNPLTg4NTktMQorCSAgKGJ1ZyAxNDQyNDUpCisKK1RodSBKdW4gMjQgMTA6MTc6MzEgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHZhbGlkLmM6IGltcGxlbWVudGVkIGJ1Z2ZpeCBmcm9tIE1hc3NpbW8gTW9yYXJhIGZvciBEVEQKKwkgIGR1bXBpbmcgcHJvYmxlbS4KKwkqIHRlc3QvdmFsaWQvdDEwLnhtbCwgcmVzdWx0L3ZhbGlkL3QxMC4qOiBhZGRlZCByZWdyZXNzaW9uCisJICBmb3IgYWJvdmUKKwkqIGNvbmZpZ3VyZS5pbjogc21hbGwgY2hhbmdlIGZvciBteSBwcm9maWxlIHNldHRpbmdzCisKK1dlZCBKdW4gMjMgMjA6MTg6MTkgTURUIDIwMDQgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGNhdGFsb2dfbWFuLnhtbCwgeG1sY2F0YWxvZy4xCisJRG9jcyBwYXRjaCBmcm9tIFZpbGxlIFNreXR0YSwgYnVnemlsbGEgIzE0NDg0MQorCitTYXQgSnVuIDE5IDE4OjM0OjExIE1EVCAyMDA0IEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy94bWxsaW50LnhtbCwgeG1sbGludC5odG1sLCB4bWxsaW50LjEKKwl1cGRhdGUgbWFuIHBhZ2UgdG8gcmVmbGVjdCBXaWxsaWFtJ3MgbmV3bHkgZGlzY2lwbGluZWQgcmV0dXJuCisJY29kZSBtb2pvCisKK1RodSBKdW4gMTcgMDA6NTE6NTUgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2V4YW1wbGVzL2lvMi5jIGRvYy9leGFtcGxlcy9wYXJzZTQuYzogZml4aW5nIGEgY291cGxlIG9mCisJICBjb21waWxhdGlvbiBlcnJvcnMgd2hlbiBjb25maWd1cmVkIHdpdGggLS13aXRoLW1pbmltdW0KKworV2VkIEp1biAxNiAxNjowNzoxMCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jOiBhcHBsaWVkIHBhdGNoIGZyb20gU3RlZmFubyBEZWJlbmVkZXR0aSB0byByZWdpc3RlcgorCSAgbmFtZXNwYWNlcyBpbiB0aGUgZGVidWcgc2hlbGwKKworTW9uIEp1biAxNCAyMTo1NjozMSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogZml4IGZyb20gU3RldmUgQmFsbCBhbmQgdXBkYXRlIG9mIHRoZSBjb21tZW50LgorCSogTWFrZWZpbGUuYW0gcmVzdWx0L2Vycm9ycy8qLnN0cjogV2lsbGlhbSBwb2ludGVkIG91dCB0aGF0IAorCSAgdGhlIHN0cmVhbWluZyBlcnJvciBjaGVja2luZyBwYXJ0IHdhc24ndCBzdHJlYW1pbmcsIGZpeGluZworCitNb24gSnVuIDE0IDE0OjExOjUyIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYzogcGF0Y2ggZnJvbSBJZ29yIGZvciB0aGUgZGVmYXVsdCBjYXRhbG9nIHBhdGggb24gV2luZG93cworCitTYXQgSnVuIDEyIDA5OjAzOjU3IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBjb25maWd1cmUuaW46IGFwcGFyZW50bHkgd2Fzbid0IHVwZGF0ZWQgbGFzdCB0aW1lCisKK1RodSBKdW4gMTAgMjA6NTc6NDggSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGNvbmZpZ3VyZS5pbiwgeG1sbWVtb3J5LmMsIGdsb2JhbHMuYzogZml4ZWQgcHJvYmxlbSB3aGVuCisJICBjb25maWd1cmluZyB1c2luZyAtLXdpdGgtdGhyZWFkLWFsbG9jCisKK1dlZCBKdW4gIDkgMTY6MzE6MjQgQ0VTVCAyMDA0IElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL2NvbmZpZ3VyZS5qcyB3aW4zMi9NYWtlZmlsZS4qIG1pbm9yIGNoYW5nZXMgZm9yIHRoZSBuZXcKKwkgIGxheW91dCBvZiB0aGUgV2luZG93cyBiaW5hcnkgcGFja2FnZQorCitUdWUgSnVuICA4IDE5OjUwOjI1IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBhcHBsaWVkIGFub3RoZXIgcGF0Y2gKKwkgIGZyb20gS2FzaW1pZXIgQnVjaGNpayBmb3IgU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50cworCSogdGVzdC9zY2hlbWFzLyogcmVzdWx0L3NjaGVtYXMvKjogYWRkZWQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMKKworVHVlIEp1biAgOCAyMToyNzowMyBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sbGludC5jOiBmaXhlZCBtaXNzaW5nIGVycm9yIHJldHVybiBjb2RlIGZvciBzY2hlbWEKKwkgIHZhbGlkYXRpb24gKGJ1ZyAxNDM4ODApLCBhbHNvIGNoYW5nZWQgb3ZlciB0byBhbiBlbnVtIGZvcgorCSAgZGVmaW5pbmcgdGhlIGVycm9yIHJldHVybiBjb2RlcyBmb3IgYWxsIGNvbmRpdGlvbnMuCisKK1R1ZSBKdW4gIDggMTQ6MDE6MTQgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IGZpeGVkIGEgc2VyaW91cworCSAgcHJvYmxlbSB3aGVuIHN1YnN0aXR1aW5nIGVudGl0aWVzIHVzaW5nIHRoZSBSZWFkZXIsIHRoZSBlbnRpdGllcworCSAgY29udGVudCBtaWdodCBiZSBmcmVlZCBhbmQgaWYgcmVyZWZlcmVuY2VkIHdvdWxkIGNyYXNoCisJKiBNYWtlZmlsZS5hbSB0ZXN0LyogcmVzdWx0Lyo6IGFkZGVkIGEgbmV3IHRlc3QgY2FzZSBhbmQgYSBuZXcKKwkgIHRlc3Qgb3BlcmF0aW9uIGZvciB0aGUgcmVhZGVyIHdpdGggc3Vic3RpdHV0aW9uIG9mIGVudGl0aWVzLgorCitUdWUgSnVuICA4IDEyOjE0OjE2IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdsb2JhbHMuYyB4bWxJTy5jIGluY2x1ZGUvbGlieG1sL2dsb2JhbHMuaCBpbmNsdWRlL2xpYnhtbC94bWxJTy5oOgorCSAgYXBwbGllZCBwYXRjaCBmcm9tIFJvYiBSaWNoYXJkcyBmb3IgdGhlIHBlciB0aHJlYWQgSS9PIG1hcHBpbmdzCisKK1R1ZSBKdW4gIDggMDk6NTg6MzEgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IHNvbWUgZnVydGhlciBlbmhhbmNlbWVudCB0byB0YWtlIGNhcmUgb2YKKwkgIHhtbDpiYXNlIGZvciBYUG9pbnRlciBlbGVtZW50cyAoYnVnIDE0Mzg4NikuICBBbHNvIGZpeGVkCisJICBhIHByb2JsZW0gd2hlbiB4bWw6YmFzZSB3YXMgYWxyZWFkeSBzcGVjaWZpZWQgb24gYW4KKwkgIFhJbmNsdWRlJ2QgZWxlbWVudC4KKworTW9uIEp1biAgNyAyMjoxNDo1OCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcmVsYXhuZy5jOiBmaXhlZCBhIHByb2JsZW0gd2l0aCBpbnRlcm5hbCBjbGVhbnVwIG9mIDxESVY+IGVsZW1lbnQKKwkgIChidWcgMTQzNzM4KS4KKworTW9uIEp1biAgNyAxNjo1Nzo0MyBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdXJpLmMsIGluY2x1ZGUvbGlieG1sL3VyaS5oOiBhZGRlZCBhIG5ldyByb3V0aW5lCisJICB4bWxCdWlsZFJlbGF0aXZlVVJJIG5lZWRlZCBmb3IgZW5oYW5jZW1lbnQgb2YgeGluY2x1ZGUuYworCSogeGluY2x1ZGUuYzogY2hhbmdlZCBoYW5kbGluZyBvZiB4bWw6YmFzZSAoYnVnIDEzNTg2NCkKKwkqIHJlc3VsdC9YSW5jbHVkZS8qOiByZXN1bHRzIG9mIDUgdGVzdHMgY2hhbmdlZCBhcyBhIHJlc3VsdAorCSAgb2YgdGhlIGFib3ZlIGNoYW5nZQorCitGcmkgSnVuICA0IDExOjI3OjM3IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3Qvc2NoZW1hcy8qIHJlc3VsdC9zY2hlbWFzLyo6IGFkZGVkIGEgYnVuY2ggb2YgdGVzdHMgZnJvbQorCSAgS2FzaW1pZXIgQnVjaGNpayBwb3N0ZWQgb24gTWF5IDExCisKK1RodSBKdW4gIDMgMTc6NTg6MjUgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiBuZXcgcGF0Y2ggZnJvbSAgS2FzaW1pZXIgQnVjaGNpayBmb3IgcHJvY2Vzc0NvbnRlbnRzCisJICBvZiB3aWxkY2FyZHMgYXR0cmlidXRlIGhhbmRsaW5nCisJKiB0ZXN0L3NjaGVtYXMvYW55QXR0ci0qIHJlc3VsdC9zY2hlbWFzL2FueUF0dHItKjogYWRkZWQgc3BlY2lmaWMKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKworVGh1IEp1biAgMyAxMzoyMDozNiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgYSBidWcgd2hlcmUgaW52YWxpZCBjaGFycmVmcyBtYXkgbm90IGJlIGRldGVjdGVkCisJICBzb21ldGltZXMgYXMgcG9pbnRlZCBieSBNb3J1cyBXYWx0ZXIuCisJKiB0ZXN0L2Vycm9ycy9jaGFycmVmMS54bSByZXN1bHQvZXJyb3JzL2NoYXJyZWYxLnhtbCo6IGFkZGVkIHRoZQorCSAgdGVzdCBpbiB0aGUgcmVncmVzc2lvbiBzdWl0ZS4KKworVGh1IEp1biAgMyAxODozODoyNyBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sc2NoZW1hcy5jOiBzbWFsbCBjaGFuZ2UgdG8geG1sU2NoZW1hVmFsaWRhdGVBdHRyaWJ1dGVzLAorCSAgYWxzbyBjb3JyZWN0ZWQgdHlwbyBvbiBlcnJvciBjb2RlIGVudW0uCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBjb3JyZWN0ZWQgdHlwbyBvbiBzY2hlbWEgZXJyb3IKKwkgIGNvZGUgZW51bQorCitUaHUgSnVuICAzIDEwOjEyOjM4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzY2hlbWFzLmM6IG1pbm9yIGNvc21ldGljIGNoYW5nZXMsIG5vIGNoYW5nZSB0byBsb2dpYy4KKwkqIHJlc3VsdC9zY2hlbWFzL2F0dHJ1c2VfMF9bMTJdLmVycjogcmVnZW5lcmF0ZWQKKwkqIGdsb2JhbHMuYzogYWRkZWQgYSBuZXdsaW5lIGF0IGVuZCB0byBtYWtlIGdjYyBoYXBweQorCitXZWQgSnVuICAyIDIxOjE2OjI2IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmggCisJICBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBhcHBsaWVkIGEgcGF0Y2ggZnJvbSBLYXNpbWllciBCdWNoY2lrCisJICBpbXBsZW1lbnRpbmcgYXR0cmlidXRlIHVzZXMgYW5kIHdpbGRjYXJkcy4KKwkqIHRlc3Qvc2NoZW1hcy8qIHJlc3VsdC9zY2hlbWFzLyo6IGFkZGVkL2ZpeGVkIGEgYnVuY2ggb2YgdGVzdHMKKworV2VkIEp1biAgMiAxODoxNTo1MSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnbG9iYWxzLmMgeG1sSU8uYyBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmg6IGFwcGxpZWQgcGF0Y2ggZnJvbSAKKwkgIFJvYiBSaWNoYXJkcyBmb3IgY3VzdG9tIEkvTyBCdWZmZXJDcmVhdGVGaWxlbmFuZSBmaXhlcyBidWcKKwkgICMxNDMzNjYKKworV2VkIEp1biAwMiAxNjoyNTozMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogZml4ZWQgcHJvYmxlbSB3aXRoIHByZWRpY2F0ZSBldmFsdWF0aW9uIG9uIGFuCisJICBlbXB0eSBub2Rlc2V0IChidWcgMTQzNDA5KQorCitXZWQgSnVuIDAyIDExOjI2OjQxIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB0ZXN0U0FYLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBhdHRyaWJ1dGUgbGlzdGluZyAoYnVnIDE0MjY3NCkKKwkgIGFuZCBhZGRlZCBtYWNybyBMSUJYTUxfVEVTVF9WRVJTSU9OIHRvIGFzc3VyZSB4bWxJbml0UGFyc2VyCisJICBnZXRzIGNhbGxlZCAoYnVnIDE0MjY4NikKKworU2F0IE1heSAyOSAyMTozNTo1MiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0L3NjaGVtYXMvZGF0ZV8wLnhtbCB4bWxzY2hlbWFzdHlwZXMuYzogYXBwbGllZCBhIHBhdGNoIGZyb20KKwkgIENoYXJsZXMgQm96ZW1hbiBmaXhpbmcgYSBzaWRlIGVmZmVjdCBpbiBkYXRlIGhhbmRsaW5nCisKK1RodSBNYXkgMjcgMTk6NDc6NDggTURUIDIwMDQgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3R1dG9yaWFsL3htbHR1dG9yaWFsLnhtbCBmaXggbGFjayBvZiBjYXN0IGluIFhwYXRoIGV4YW1wbGUKKwkqIGRvYy90dXRvcmlhbC8qLmh0bWwsIHhtbHR1dG9yaWFsLnBkZiByZWJ1aWxkIGh0bWwsIHBkZgorCisyMDA0LTA1LTI1ICBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiBjMTRuLmM6IGZpeGVkIGMxNG4gYnVnIHdpdGggc2VyaWFsaXppbmcgYXR0cmlidXRlIG5hbWVzcGFjZXMKKworTW9uIE1heSAyNCAwODoyMjo0OCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogZml4ZWQgdG8gYWxsb3cgJysnIGluIGV4cG9uZW50IG9mIG51bWJlcgorCSAgKGJ1ZyAxNDMwMDUpCisJKiBTQVgyLmM6IGZpeGVkIHR5cG8gaW4gbGFzdCBjb21taXQKKworU2F0IE1heSAyMiAwOTowODoyNCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogU0FYMi5jOiBza2lwcGVkIGNhbGwgdG8geG1sVmFsaWRhdGVOQ05hbWUgd2hlbiBjb21waWxpbmcKKwkgIC0td2l0aC1taW5pbXVtIChidWcgMTQyOTE3KQorCitUdWUgTWF5IDE4IDA2OjQ4OjAwIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYzogcmV2ZXJ0ZWQgdGhlIGJyb2tlbiBjaGFuZ2UuCisKK01vbiBNYXkgMTcgMjM6MDc6MTUgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTkVXUyBkb2MvKjogdXBkYXRlZCB0aGUgZG9jcyBmb3IgMi42LjEwCisKK01vbiBNYXkgMTcgMDU6NTI6MDMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIDogcmVsZWFzaW5nIDIuNi4xMAorCitTdW4gTWF5IDE2IDIzOjEyOjM1IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogYXZvaWQgcmV0dXJuaW5nIGRlZmF1bHQgbmFtZXNwYWNlIHdoZW4gc2VhcmNoaW5nCisJICBmcm9tIGFuIGF0dHJpYnV0ZQorCSogZW50aXRpZXMuYyB4bWx3cml0ZXIuYzogcmV2ZXJzZSB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMoKSBiZWhhdmlvdXIKKwkgIGJhY2sgdG8gZXNjYXBpbmcgIiBzaW5jZSB0aGUgbm9ybWFsIHNlcmlhbGl6YXRpb24gcm91dGluZXMgZG8gbm90CisJICB1c2UgaXQgYW55bW9yZSwgc2hvdWxkIGNsb3NlIGJ1ZyAjMTM0NDc3IC4gVHJpZWQgdG8gbWFrZSAKKwkgIHRoZSB3cml0ZXIgYXZvaWQgaXQgdG9vIGJ1dCBpdCBkaWRuJ3Qgd29yay4KKworU3VuIE1heSAxNiAwMTowNzoxNiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvQ2hhbmdlTG9nLmF3ayBkb2MvQ2hhbmdlTG9nLnhzbDogZml4ZWQgZXNjYXBpbmcKKwkgIGhhbmRsaW5nIGFuZCBhZGRlZCBkaXJlY3QgbGlua3MgdG8gYnVnemlsbGEgcmVwb3J0IGZvcgorCSAgYnVnIG51bWJlcnMuCisKK1N1biBNYXkgMTYgMTE6MTE6MTMgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGVycm9yLmM6IG1vZGlmaWVkIHRvIGFzc3VyZSBwcm9wZXIgdXNlciBkYXRhIGlzIHNlbnQgdG8KKwkgIHN0cnVjdHVyZWQgZXJyb3Igcm91dGluZSAoYnVnIDE0MjU5OCkKKworU3VuIE1heSAxNiAwMzoxODo1MiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IGEgY291cGxlIG9mIGxhcmdlIHN0YXRpYyB2YXJpYWJsZSB3aGljaCBzaG91bGQgcmVhbGx5CisJICBub3QgYmUgZGVjbGFyZWQgYXMgc3VjaCBjbHV0dGVyZWQgdGhlIC5ic3Mgc2VjdGlvbi4KKworU3VuIE1heSAxNiAwMzowNjozMSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvQ2hhbmdlTG9nLmF3azogZml4ZWQgYSBjb3VwbGUgb2YgcHJvYmxlbXMgd2hlbiBwYXJzaW5nCisJICBsaWJ4c2x0IENoYW5nZUxvZworCitTYXQgTWF5IDE1IDIwOjE0OjIxIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9DaGFuZ2VMb2cuYXdrIGRvYy9DaGFuZ2VMb2cueHNsOiBmaXJzdCBzdGVwcyBvZiBhIGdvb2QKKwkgIENoYW5nZUxvZyBwYWdlIGdlbmVyYXRpb24uIFRoZSBhd2sgc2hvdWRsIGVzY2FwZSBjaGFyYWN0ZXJzCisJICBub3Qgb2theSBpbiBYTUwgYW5kIHRoZSB4c2x0IHNob3VsZCBtYWtlIGxpbmtzIHRvIGZ1bmN0aW9ucworCSAgb3IgdmFyaWFibGVzIG9yIGJ1ZyByZXBvcnRlZCBpbiB0aGUgZW50cmllcy4KKworU2F0IE1heSAxNSAxNDo1Nzo0MCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzYXZlLmMgaW5jbHVkZS9saWJ4bWwveG1sc2F2ZS5oOiBzdGFydCBhZGRpbmcgQVBJIGZvciAKKwkgIGVzY2FwaW5nIGN1c3RvbWl6YXRpb24uCisKK1NhdCBNYXkgMTUgMTI6Mzg6MTcgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2F2ZS5jOiBtb3JlIHhtbFNhdmUgY2xlYW51cCwgb3B0aW1pemF0aW9uIGFuZCByZWZhY3RvcmluZworCitGcmkgTWF5IDE0IDE3OjUxOjQ4IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmMgeG1sc2F2ZS5jOiB0aGlyZCBwYXNzIGF0IHRoZSBlc2NhcGluZyByZWZhY3RvcmluZy4KKworRnJpIE1heSAxNCAxMjozNzoyNCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcGFyc2VyLmM6IGVuaGFuY2VkIHRoZSBlbmhhbmNlbWVudCwgZml4ZWQgYW5vdGhlciBjb3VwbGUgb2YKKwkgIHNwZWNpYWwgY2FzZXMuCisKK0ZyaSBNYXkgMTQgMTE6NDg6MzMgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHBhcnNlci5jOiBzbWFsbCBlbmhhbmNlbWVudCB0byBkdGQgaGFuZGxpbmcgb2YgKGE/KSsgKGJ1ZyAxNDI0ODcpCisKK1RodSBNYXkgMTMgMjM6MTk6MDAgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYyB4bWxzYXZlLmMgaW5jbHVkZS9saWJ4bWwveG1sSU8uaDogc2Vjb25kIHBhc3Mgb24gZXNjYXBpbmcKKwkgIGhhbmRsaW5nLCBzdGFydCB0byBsb29rcyBiZXR0ZXIsIG5lZWQgdG8gYmUgY29tcGxldGVkIGFuZCBhZGRlZAorCSAgZGlyZWN0bHkgYXQgdGhlIHNhdmluZyBjb250ZXh0IGxldmVsLgorCitUaHUgTWF5IDEzIDEwOjMxOjI4IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmMgeG1sc2F2ZS5jIGluY2x1ZGUvbGlieG1sL3htbElPLmg6IGZpcnN0IHBhc3MgYXQgcmVmYWN0b3JpbmcKKwkgIHRoZSBlc2NhcGUgb24gc2F2ZSByb3V0aW5lcyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlcyAobGVzcyBtYWxsb2MpCisJICBhbmQgbW9yZSBmbGV4aWJpbGl0eSB1c2luZyB0aGUgbmV3IHNhdmluZyBjb250ZXh0LiBQcmVsaW1pbmFyeQorCSAgd29yaywgaW50ZXJmYWNlIHdpbGwgY2hhbmdlLgorCitXZWQgTWF5IDEyIDIyOjM0OjAzIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzY2hlbWFzLmM6IGFkZGVkIGNvZGUgaW4geG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsIHRvIGhhbmRsZQorCSAgZWxlbWVudCByZWZlcmVuY2Ugd2l0aGluIHRoZSB4czphbGwgY29uc3RydWN0IChidWcgMTM5ODk3KQorCitXZWQgTWF5IDEyIDE3OjI3OjE4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4aW5jbHVkZS5jOiBhIGxpdHRsZSBmdXJ0aGVyIGZpeGluZyBvZiBmYWxsYmFjayBwcm9jZXNzaW5nLCB0aGlzCisJICB0aW1lIGZvciBmYWxsYmFjayB3aXRoIGNoaWxkcmVuIChidWcgMTM5NTIwKS4KKworV2VkIE1heSAxMiAwODoyMTozMyBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sc2NoZW1hcy5jOiBhZGRlZCBjb2RlIGluIHhtbFNjaGVtYUJ1aWxkQ29udGVudE1vZGVsIHRvCisJICBhbGxvdyByZWYgaW4gZ3JvdXAgZGVmaW5pdGlvbiAoYnVnIDEzNDQxMSkuICBBbHNvIGZpeGVkCisJICBtaXNjIGNvbXBpbGF0aW9uIHdhcm5pbmcgbWVzc2FnZXMuCisJKiByZXN1bHQvc2NoZW1hL2dyb3VwMF8wXzAsIHJlc3VsdC9zY2hlbWEvZ3JvdXAwXzBfMC5lcnI6CisJICByZWdlbmVyYXRlZCAobm93IG5vIGVycm9yIHJlcG9ydGVkKS4KKworVHVlIE1heSAxMSAxMTo1NTo1OSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBmaXggdG8gdGhlIGZpeCBmb3IgIzE0MTg2NCBmcm9tIFBhdWwgRWxzZXRoICAKKwkqIEhUTUxwYXJzZXIuYyByZXN1bHQvSFRNTC9kb2MzLmh0bTogYXBwbHkgZml4IGZyb20gRGF2aWQgR2F0d29vZCBmb3IKKwkgICMxNDExOTUgYWJvdXQgdGV4dCBiZXR3ZWVuIGNvbW1lbnRzLgorCitUdWUgTWF5IDExIDIzOjA0OjQ3IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzY2hlbWFzLmMsIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaCwKKwkgIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IEFwcGxpZWQgcGF0Y2hlcyBzdXBwbGllZCBieQorCSAgS2FzaW1pZXIgQnVjaGNpay4KKwkqIHRlc3Qvc2NoZW1hcy9wbzFfMC54bWwsIHRlc3Qvc2NoZW1hcy9wbzFfMC54c2Q6CisJICBjaGFuZ2VkIHRlc3QgdG8gYWNjb3VudCBmb3IgYWJvdmUgcGF0Y2guCisKK1R1ZSBNYXkgMTEgMDk6MDY6NTMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL3Rlc3RzL3RzdExhc3RFcnJvci5weTogYmV0dGVyIHBvcnRhYmlsaXR5IGZpeCBmb3IgZigqYXJncyksCisJICB1c2UgYXBwbHkoZiwgYXJncykgYXMgU3TDqXBoYW5lIEJpZG91bCBzdWdnZXN0ZWQKKworTW9uIE1heSAxMCAxNTo0OToyMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1scmVnZXhwLmM6IGVuaGFuY2VkIHhtbFJlZ1N0YXRlQWRkVHJhbnMgdG8gY2hlY2sgaWYgdHJhbnNpdGlvbgorCSAgaXMgYWxyZWFkeSBwcmVzZW50IGFuZCwgaWYgc28sIHRvIGlnbm9yZSB0aGUgcmVxdWVzdCB0byBhZGQgaXQuCisJICBUaGlzIGhhcyBhIHZlcnkgZHJhbWF0aWMgZWZmZWN0IG9uIG1lbW9yeSByZXF1aXJlbWVudHMgYXMgd2VsbAorCSAgYXMgZWZmaWNpZW5jeS4gIEl0IGFsc28gZml4ZXMgYnVnIDE0MTc2Mi4KKworU3VuIE1heSAgOSAyMDo0MDo1OSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL3RzdExhc3RFcnJvci5weToKKwkgIGFwcGxpZWQgcGF0Y2ggZnJvbSBFZCBEYXZpcyB0byBhbGxvdyAibWFrZSB0ZXN0cyIgdG8gd29yaworCSAgd2l0aCBQeXRob24gMS41CisKK1N1biBNYXkgIDkgMTk6NDY6MTMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2F2ZS5jOiBhcHBseSBmaXggZm9yIFhIVE1MMSBmb3JtYXRpbmcgZnJvbSBOaWNrIFdlbGxuaG9mZXIKKwkgIGZpeGVzIGJ1ZyAjMTQxMjY2CisJKiB0ZXN0L3hodG1sY29tcCByZXN1bHQvL3hodG1sY29tcCo6IGFkZGVkIHRoZSBzcGVjaWZpYyByZWdyZXNzaW9uCisJICB0ZXN0CisKK1N1biBNYXkgIDkgMTQ6MDc6MjEgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGZpeCBmb3IgYSBwZWRhbnRpYyBtYWtlIGNoZWNrIHdpdGhvdXQgbWFrZSBhbGwgcmVxdWVzdAorCitTYXQgTWF5ICA4IDIyOjU2OjIyIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jIHhtbElPLmM6IGZpeGluZyBzb21lIHByb2JsZW1zIGluIFVSSSB1bmVzY2FwaW5nCisJICBhbmQgb3V0cHV0IGJ1ZmZlciBvcGVuaW5nLCB0aGlzIHNob3VsZCBmaXggIzE0MTg2NAorCitGcmkgTWF5ICA3IDIyOjMxOjU0IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmMgaW5jbHVkZS9saWJ4bWwvdmFsaWQuaDogZml4ZXMgdGhlIHVzZSBvZiAnbGlzdCcgYXMgYSBwYXJhbWV0ZXIKKwkqIHhtbElPLmMgaW5jbHVkZS9saWJ4bWwveG1sSU8uaDogYWRkZWQgeG1sUG9wSW5wdXRDYWxsYmFjayBmb3IKKwkgIE1hdHQgU2VyZ2VhbnQKKworVGh1IE1heSAgNiAyMToxNDozOCBQRFQgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1scmVnZXhwLmM6IGVuaGFuY2VkIHRoZSBoYW5kbGluZyBvZiBzdWJleHByZXNzaW9uIHJhbmdlcworCSAgd2hpY2ggaGF2ZSBhIG1pbk9jY3VycyBvZiAwIChidWcgMTQwNDc4IGFnYWluKTsgY2xlYW5lZCB1cAorCSAgY29tbWVudHMgdGhyb3VnaG91dCB0aGUgbW9kdWxlLgorCitUdWUgTWF5ICA0IDAwOjUyOjE2IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogYWRkaW5nIGEgLS1tYXhtZW0gb3B0aW9uIHRvIGNoZWNrIG1lbW9yeSB1c2VkLgorCitTYXQgTWF5ICAxIDAxOjA4OjQ0IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYyB4bWxzYXZlLmMgcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmM6IEZpeGVkCisJICBidWcgIzE0MTUyOSBpLmUuIHZhcmlvdXMgcHJvYmxlbXMgd2hlbiBidWlsZGluZyB3aXRoIC0td2l0aG91dC1odG1sCisKK0ZyaSBBcHIgMzAgMTg6MTI6MzEgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jIHhtbHJlYWRlci5jOiBmaXhpbmcgYnVnICMxNDEzODQgd2hlcmUgdGhlIHJlYWRlciBkaWRuJ3QKKwkgIGNhbGwgdGhlIGRlcmVnaXN0ZXJpbmcgZnVuY3Rpb25zLiBBbHNvIGFkZGVkIHRoZSBjaGVjayB0bworCSAgeG1sbGludCAtLXN0cmVhbSAtLWNoa3JlZ2lzdGVyIC4KKworRnJpIEFwciAzMCAwODo1Nzo0NyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9NYWtlZmlsZS5tc3ZjOiBhcHBsaWVkIGEgc2Vjb25kIHBhdGNoIGZyb20gTWFyayBWYWtvYyBmb3IKKwkgIHJlZ3Jlc3Npb24gdGVzdHMgb24gV2luZG93cworCitUaHUgQXByIDI5IDIxOjQ3OjIzIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBuZXZlciBjb21taXQgd2l0aG91dCBydW5uaW5nIG1ha2UgdGVzdHMgZmlyc3QgIQorCitUaHUgQXByIDI5IDIwOjE1OjIwIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jOiBmaXggYSBuYXN0eSBwcm9ibGVtIHdpdGggcmVhZGluZyBvdmVyIHRoZSBlbmQKKwkqIHhtbHNhdmUuYzogZml4IGEgcmVwb3J0ZWQgbWVtb3J5IGxlYWsgYXBwYXJlbnRseQorCitUaHUgQXByIDI5IDE3OjA1OjAwIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLm1zdmM6IHBhdGNoIGZyb20gTWFyayBWYWtvYyBmb3IgcmVncmVzc2lvbiB0ZXN0cworCSAgb24gV2luZG93cy4KKwkqIHhwYXRoLmM6IHRoZSBOYU4gcHJvYmxlbSBhbHNvIHNob3dzIHVwIG9uIEJvcmxhbmQKKworTW9uIEFwciAyNiAyMzozNzoxMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1scmVnZXhwLmM6IGVuaGFuY2VkIHhtbEZBUmVnRXhlYyByYW5nZSBldmFsdWF0aW9uIGZvciBtaW4KKwkgIG9jY3VycyAwIHByb2JsZW1zIC0gZml4ZXMgYnVnIDE0MDQ3OC4KKworVGh1IEFwciAyMiAwOToxMjo0NyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBybmdwYXJzZXIuYzogdGlueSBwYXRoIGZpeGVzIHRoZSAieG1sQ29udmVydENSTkdGaWxlIiBmdW5jdGlvbiBuYW1lCisJICBmcm9tIEthc2ltaWVyIEJ1Y2hjaWsKKwkqIHhtbHNjaGVtYXMuYzogcmVjdXJzaXZlIHhzOmV4dGVuc2lvbiBmaXggZnJvbSB0YWloZWkgZ29pCisKK1dlZCBBcHIgMjEgMDA6MTk6MjkgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBzbWFsbCBidWZmZXIgcmVzaXppbmcgaW1wcm92ZW1lbnQgZnJvbSBNb3J0ZW4gV2VsaW5kZXIKKwkgIGNsb3NlcyAjMTQwNjI5CisKK1R1ZSBBcHIgMjAgMjM6NDA6MTQgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogbGFzdCB2ZXJzaW9uIG9mIHRoZSBmaXggZm9yIE1TQyB2ZXJzaW9uIDEyMDAKKworVHVlIEFwciAyMCAxOTo0MDozNyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzoga2lsbGluZyB0aGUgc3RybmNtcCB2cy4gbWVtY21wIGNvbnRyb3ZlcnN5IGFuZCAjMTQwNTkzCisKK1R1ZSBBcHIgMjAgMTM6Mjc6MDYgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvU0FYMi5oOiBLYXNpbWllciBCdWNoY2lrIHBvaW50ZWQgb3V0IHNvbWUgCisJICBpbmV4aXN0ZW50IGZ1bmN0aW9ucywgY2xlYW5lZCB0aGVtIG91dC4KKworVHVlIEFwciAyMCAxMTo0Mjo1MCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlcnJvci5jOiBKb2huc29uIENhbWVyb24gcG9pbnRlZCBvdXQgdGhhdAorCSAgaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jKCkgd2FzIHJlYWxseSB3cm9uZy4KKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiB4bWxUZXh0UmVhZGVyTW9kZSBlbnVtCisJICBtdXN0IGJlIG1hZGUgcHVibGljLCBhZGRlZCBzb21lIG1pc3NpbmcgY29tbWVudHMgb24gdGhlIFhNTFJlYWRlcgorCSAgaGVhZGVyLgorCSogYzE0bi5jOiBBbGV4c2V5IGZpeGVkIEMxNE4gYnVnIHdpdGggcHJvY2Vzc2luZyBuYW1lc3BhY2VzCisJICBmcm9tIGF0dHJpYnV0ZXMKKworTW9uIEFwciAxOSAyMzoyNzo0NiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBmaXhlZCBhIHN0dXBpZCAoKSBlcnJvciArIE1hcmsgbmFtZS4KKworU3VuIEFwciAxOCAyMzo0NTo0NiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyAyLjYuOSByZWxlYXNlCisJKiBkb2MvKiBOZXdzOiB1cGRhdGVkIGFuZCByZWJ1aWx0IHRoZSBkb2NzCisKK1N1biBBcHIgMTggMjI6NTE6NDMgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogcmVsYXhlZCBpZCgpIHRvIG5vdCBjaGVjayB0YWh0IHRoZSBuYW1lKHMpIHBhc3NlZAorCSAgYXJlIGFjdHVhbGx5IE5DTmFtZSwgZGVjaWRlZCB0aGlzIGluIGFncmVlbWVudCB3aXRoIEFsZWtzZXkgU2FuaW4KKwkgIHNpbmNlIGV4aXN0aW5nIHNwZWNzIGxpa2UgVmlzYTNEIGJyb2tlIHRoYXQgY29uZm9ybWFuY2UgY2hlY2tpbmcKKwkgIGFuZCBvdGhlciB0b29scyBzZWVtcyB0byBub3QgaW1wbGVtZW50IGl0IHNpZ2guLi4KKwkqIFNBWDIuYzogY2hlY2sgYXR0cmlidXRlIGRlY2xzIGZvciB4bWw6aWQgYW5kIHRoZSB2YWx1ZSBpcyBhbgorCSAgTkNOYW1lLgorCSogdGVzdC94bWxpZC9pZF9lcnIqIHJlc3VsdC94bWxpZC9pZF9lcnIqOiBhZGRlZCBlcnJvciB0ZXN0aW5nCisKK1N1biBBcHIgMTggMjE6NDY6MTcgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogd29yayBhcm91bmQgTWljcm9zb2Z0IGNvbXBpbGVyIE5hTiBidWcgcmFpc2UgcmVwb3J0ZWQKKwkgIGJ5IE1hcmsgVmFrb2MKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmggCisJICBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBmaXhlZCBhIHJlY3VzaXZlIGV4dGVudGlvbiBzY2hlbWFzCisJICBjb21waWxhdGlvbiBlcnJvciByYWlzZWQgYnkgdGFpaGVpIGdvaQorCitTdW4gQXByIDE4IDE2OjU3OjAyIENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC5zcGVjLmluOiBrZWVwIHRoZSBDaGFuZ2VMb2cgY29tcHJlc3NlZCAKKwkqIHhtbHJlYWRlci5jOiBmaXggYSBzZWdmYXVsdCB3aGVuIHVzaW5nIENsb3NlKCkKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvcmVhZGVyOC5weTogdGVzdCBmb3IKKwkgIHRoZSBDbG9zZSgpIHJlYWRlciBBUEkuCisKK1NhdCBBcHIgMTcgMjI6NDI6MTMgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbHNjaGVtYXMuYywgeG1sd3JpdGVyLmMsIGRvYy9leGFtcGxlcy9wYXJzZTQuYywKKwkgIGRvYy9leGFtcGxlcy9pbzIuYzogbWlub3Igd2FybmluZyBjbGVhbnVwIChubyBjaGFuZ2UgdG8gbG9naWMpCisJKiB4aW5jbHVkZTogZml4ZWQgcmV0dXJuIHZhbHVlIGZvciBpbnRlcm5hbCBmdW5jdGlvbgorCSAgeG1sWEluY2x1ZGVMb2FkRmFsbGJhY2sgKG5vdyBhbHdheXMgMCBvciAtMSkKKworU2F0IEFwciAxNyAyMTozMjozMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogc21hbGwgZW5oYW5jZW1lbnQgdG8gZml4IGJ1ZyAxMzk3OTEKKworRnJpIEFwciAxNiAxODo0NDo0NyBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBhcHBsaWVkIHBhdGNoZXMgZnJvbSBLYXNpbWllciBCdWNoY2lrCisJICBmb3IgdGhlIGF0dHJpYnV0ZSB1c2Ugc3VwcG9ydAorCSogdGVzdC9zY2hlbWFzL2F0dHJ1c2UqIHJlc3VsdC9zY2hlbWFzL2F0dHJ1c2UqOiBhZGRlZCB0aGUKKwkgIHRlc3RzIHRvIHRoZSByZWdyZXNzaW9uIHN1aXRlLgorCitGcmkgQXByIDE2IDE4OjIyOjI1IENFU1QgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNhdmUuYzogbW92ZSB0aGUgVE9ETyBhcyBjb21tZW50cyBhcyB0aGUgZnVuY3Rpb24gd2hpbGUgbm90CisJICBmaW5pc2hlZCBhcmUgdXNhYmxlIGFzLWlzCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogcGF0Y2ggZnJvbSBLYXNpbWllciBCdWNoY2lrCisJICBpbXBsZW1lbnRpbmcgdW5pb24KKwkqIHRlc3Qvc2NoZW1hcy91bmlvbl8wXzAueCogcmVzdWx0L3NjaGVtYXMvdW5pb25fMF8wKjogYWRkZWQgZXhhbXBsZQorCSogcHl0aG9uL01ha2VmaWxlLmFtOiBhcHBsaWVkIGZpeCBmcm9tIE1pa2UgSG9tbWV5CisKK0ZyaSBBcHIgMTYgMjM6NTg6NDIgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBwcm9ibGVtIHdpdGggZGV0ZWN0aW5nIGV4dGVybmFsIGR0ZAorCSAgZW5jb2RpbmcgKGJ1ZyAxMzUyMjkpLgorCSogTWFrZWZpbGUuYW06IG1pbm9yIGNoYW5nZSB0byB0ZXN0IGxhYmVsCisKK0ZyaSBBcHIgMTYgMTY6MDk6MzEgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGVkIHByb2JsZW0gY2F1c2luZyBkdXBsaWNhdGUgZmFsbGJhY2sKKwkgIGV4ZWN1dGlvbiAoYnVnIDEzOTUyMCkKKwkqIHRlc3QvWEluY2x1ZGUvZG9jcy9mYWxsYmFjazIueG1sIHJlc3VsdC9YSW5jbHVkZS9mYWxsYmFjazIuKjoKKwkgIGFkZGVkIHRlc3RjYXNlCisKK0ZyaSBBcHIgIDkgMjM6NDk6MzcgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYMi5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogYWRkaW5nIHhtbDppZCBkcmFmdCBzdXBwb3J0CisJKiBNYWtlZmlsZS5hbSB0ZXN0L3htbGlkL2lkX3RzdCogcmVzdWx0L3htbGlkL2lkX3RzdCo6IGFkZGluZworCSAgNCBmaXJzdCByZWdyZXNzaW9uIHRlc3RzCisKK0ZyaSBBcHIgIDkgMTE6NTY6MDggQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IGZpeGluZyBSZWQgSGF0IGJ1ZyAjMTIwNDgyICwgbGlieG1sMi1weXRob24KKwkgIHNob3VsZCBkZXBlbmQgb24gdGhlIHZlcnNpb24gb2YgcHl0aG9uIHVzZWQgdG8gY29tcGlsZSBpdC4KKworTW9uIEFwciAgNSAwOTowNzoyNCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBKYW1lcyBCdXJzYSwgZnJhbWVzZXQgc2hvdWxkCisJICBjbG9zZSBoZWFkLgorCitGcmkgQXByICAyIDIyOjAyOjI0IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiByZWxheG5nLmM6IGZpeGVkIHByb2JsZW0gaW4geG1sUmVsYXhOR0NvbXBhcmVOYW1lQ2xhc3NlcworCSAgd2hpY2ggd2FzIGNhdXNpbmcgY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlLnB5IHRlc3QgMzUxIHRvIGZhaWwuCisKK0ZyaSBBcHIgIDIgMTc6MDM6NDggSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIG5hbm9odHRwLmM6IGltcGxlbWVudGVkIGZpeCBmb3IgTSQgSUlTIHJlZGlyZWN0IHByb3ZpZGVkCisJICBieSBJYW4gSHVtbWVsCisJKiByZWxheG5nLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBub3RBbGxvd2VkIGNvbXBpbGF0aW9uCisJICAoYnVnIDEzODc5MykKKworVGh1IEFwciAgMSAyMjowNzo1MiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogZml4IGZvciB4bWxVcmlFc2NhcGUgb24gImh0dHA6Ly91c2VyQHNvbWV3aGVyZS5jb20iCisJICBmcm9tIE1hcmsgVmFrb2MuCisKKzIwMDQtMDQtMDEgIEpvaGFuIERhaGxpbiAgPGpvaGFuQGdub21lLm9yZz4KKworCSogcHl0aG9uLy5jdnNpZ25vcmU6IEFkZCBnZW5lcmF0ZWQgZmlsZXMsIHRvIG1ha2UgY3ZzIHNpbGVudC4KKworVGh1IEFwciAgMSAxMjo0MTozNiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IHNtYWxsIHNpZ25lZC1uZXNzIHBhdGNoIGZyb20gU3RldmUgTGl0dGxlCisKK1dlZCBNYXIgMzEgMTc6NDc6MjggQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmM6IHBhdGNoZWQgYSBidWcgaW4gcGFyc2luZyBwcm9kdWN0aW9uIDEgYW5kIDIgb2YKKwkgIHhtbHNjaGVtYXMgcmVnZXhwIHRoYXQgV2lsbGlhbSBwb2ludGVkIG91dCB3aGlsZSB3b3JraW5nIG9uCisJICAjMTM0MTIwCisJKiB0ZXN0L3JlZ2V4cC9icmFuY2ggcmVzdWx0L3JlZ2V4cC9icmFuY2g6IGFkZGVkIGEgc3BlY2lmaWMKKwkgIHJlZ3Jlc3Npb24gdGVzdAorCitXZWQgTWFyIDMxIDA5OjUwOjMyIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBNYWtlZmlsZS5hbTogYWRkZWQgUFlUSE9OUEFUSCB0byBweXRob24gdGVzdHMgZm9yIFNjaGVtYXMKKwkgIGFuZCBSZWxheE5HCisJKiB0ZXN0L3hzZHRlc3QveHNkdGVzdHN1aXRlLnhtbDogYWRkZWQgdGVzdGZpbGUgZm9yCisJICBTY2hlbWFzUHl0aG9uVGVzdHMKKworTW9uIE1hciAyOSAxNjo1Njo0OSBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZXhhbXBsZXMvZXhhbXBsZXMueHNsIGRvYy9leGFtcGxlcy9pbmRleC5odG1sOiBhZGRlZAorCSAgaW5mb3JtYXRpb24gYWJvdXQgY29tcGlsaW5nIG9uIFVuaXgKKworTW9uIE1hciAyOSAxNDoxODoxMiBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IGZpeGVzIHRoZSBjb21tZW50cyBmb3IgeG1sQ2F0YWxvZ0R1bXAgYW5kIHhtbER1bXBBQ2F0YWxvZworCSogZG9jLyo6IHJlYnVpbHQgdG8gdXBkYXRlCisKK1N1biBNYXIgMjggMTg6MTE6NDEgQ0VTVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2F2ZS5jOiBvcHRpbWl6ZSBpbmRlbnRhdGlvbiBiYXNlZCBvbiB0aGUgbmV3IGNvbnRleHQKKworU3VuIE1hciAyOCAxNDoxNzoxMCBDRVNUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZXhhbXBsZXMveHBhdGgyLmMgZG9jL2V4YW1wbGVzL3hwYXRoMi5yZXM6IGhhbmRsZSBhbmQgZXhwbGFpbgorCSAgYSB2ZXJ5IHRyaWNreSBwcm9ibGVtIHdoZW4gbW9kaWZ5aW5nIHRoZSB0cmVlIGJhc2VkIG9uIGFuIFhQYXRoCisJICByZXN1bHQgcXVlcnkuCisKK1NhdCBNYXIgMjcgMDk6NTY6MTQgUFNUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHJlbGF4bmcuYzogZml4ZWQgcHJvYmxlbSB3aXRoIElTX0NPTVBJTEFCTEUgZmxhZworCSAgKGJ1ZyAxMzAyMTYpCisKK0ZyaSBNYXIgMjYgMTg6Mjg6MzIgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tIERhdmUgQmVja2V0dCB0byBjb3JyZWN0IGxpbmUgbnVtYmVyCisJICBlcnJvcnMgd2hlbiB1c2luZyBwdXNoIHdpdGggQ0RBVEEKKworRnJpIE1hciAyNiAxNDo1Mzo1OCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9leGFtcGxlcy94cGF0aDEuYzogYWRkZWQgYSB0ZXN0IHRlbXBsYXRlCisJKiBkb2MvZXhhbXBsZXMveHBhdGgyLmMgZG9jL2V4YW1wbGVzL3hwYXRoMi5yZXMgZG9jL2V4YW1wbGVzLyo6CisJICBhZGRlZCBhIG5ldyBleGFtcGxlLCBhbmQgbWFrZSB2YWxncmluZCB0YXJnZXQgCisKK0ZyaSBNYXIgMjYgMTE6NDc6MjkgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYXBwbHkgZml4IGZvciAjMTM2NjkzCisKK1RodSBNYXIgMjUgMjA6MjE6MDEgTVNUIDIwMDQgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL2V4YW1wbGVzL2lvMi5jCisJKiBkb2MvZXhhbXBsZXMvaW8yLnJlcworCWFkZCB4bWxEb2NEdW1wTWVtb3J5IGV4YW1wbGUgaW4gcmVzcG9uc2UgdG8gbWFpbGluZyBsaXN0IEZBUQorCShyZWJ1aWx0IHhtbCBhbmQgaHRtbCBhbHNvKQorCitUaHUgTWFyIDI1IDEwOjMzOjA1IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYyB0ZXN0WFBhdGguYyB4bWxsaW50LmMgeG1sc2NoZW1hc3R5cGVzLmM6IGFwcGxpZWQKKwkgIHBhdGNoIGZyb20gTWFyayBWYWtvYyBhdm9pZGluZyB1c2luZyB4bWxQYXJzZSogb3B0aW9uIGFuZCB1c2UKKwkgIHhtbFJlYWQqIGluc3RlYWQKKwkqIHdpbjMyL01ha2VmaWxlLmJjYjogcGF0Y2ggdG8gQm9ybGFuZCBDKysgYnVpbGRlciBmcm9tIEVyaWMgWnVyY2hlcgorCSAgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBzb21lIHBhdGhuYW1lcy4KKworVHVlIE1hciAyMyAxMjozNTowOCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvKiBOZXdzOiBwcmVwYXJpbmcgMi42LjggcmVsZWFzZSwgdXBkYXRlZCBhbmQgcmVidWlsdAorCSAgdGhlIGRvY3MuCisJKiBNYWtlZmlsZS5hbTogdXNlIHZhbGdyaW5nIGZybyB0aGUgbmV3IFB5dGhvbiBiYXNlZCByZWdyZXNzaW9uIHRlc3RzCisKK01vbiBNYXIgMjIgMjA6MDc6MjcgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IHJlbW92ZSBhIG1lbW9yeSBsZWFrIG9uIHNjaGVtYXMgdHlwZSBmYWNldHMuCisJKiBjaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUucHkgY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlMi5weQorCSAgY2hlY2steHNkZGF0YS10ZXN0LXN1aXRlLnB5OiByZWR1Y2UgdmVyYm9zaXR5CisJKiBjb25maWd1cmUuaW4gTWFrZWZpbGUuYW06IGluY29ycG9yYXRlZCB0aGUgUHl0aG9uIHJlZ3Jlc3Npb25zCisJICB0ZXN0cyBmb3IgUmVsYXgtTkcgYW5kIFNjaGVtYXMgRGF0YXR5cGUgdG8gIm1ha2UgdGVzdHMiCisKK01vbiBNYXIgMjIgMTY6MTY6MTggQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWx3cml0ZXIuYyBpbmNsdWRlL2xpYnhtbC94bWx3cml0ZXIuaCBkb2MvKiA6IGFwcGxpZWQgcGF0Y2ggZnJvbQorCSAgQWxmcmVkIE1pY2thdXRzY2ggZm9yIGJldHRlciBEVEQgc3VwcG9ydC4KKwkqIFNBWDIuYyBIVE1McGFyc2VyLmMgcGFyc2VyLmMgeGluY2x1ZGUuYyB4bWxsaW50LmMgeG1scmVhZGVyLmMKKwkgIHhtbHNjaGVtYXMuYzogZml4ZWQgYnVnICMxMzc4NjcgaS5lLiBmaXhlZCBwcm9wZXJseSB0aGUgd2F5CisJICByZWZlcmVuY2UgY291bnRpbmcgaXMgaGFuZGxlZCBpbiB0aGUgWE1MIHBhcnNlciB3aGljaCBoYWQgdGhlCisJICBzaWRlIGVmZmVjdCBvZiByZW1vdmluZyBhIGxvdCBvZiBoYXphcmRvdXMgY3J1ZnQgYWRkZWQgdG8gdHJ5CisJICB0byBmaXggdGhlIHByb2JsZW1zIGFzc29jaWF0ZWQgYXMgdGhleSBwb3BwZWQgdXAuCisJKiB4bWxJTy5jOiBGSUxFICogY2xvc2UgZml4dXAgZm9yIHN0ZGVyci9zdGRvdXQKKworU3VuIE1hciAyMSAxOToxOTo0MSBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcmVsYXhuZy5jOiBhZGRlZCBhbiBlcnJvciBtZXNzYWdlIHdoZW4gYW4gZWxlbWVudCBpcyBub3QKKwkgIGZvdW5kIHdpdGhpbiBhIDxjaG9pY2U+IChidWcgMTI2MDkzKQorCitTYXQgTWFyIDIwIDIyOjI1OjE4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxyZWdleHAuYzogZW5oYW5jZWQgdGhlIGxvZ2ljIG9mIHBhcnNpbmcgY2hhciBncm91cHMgdG8KKwkgIGJldHRlciBoYW5kbGUgaW5pdGlhbCBvciBlbmRpbmcgJy0nIChidWcgMTM1OTcyKQorCitTYXQgTWFyIDIwIDE5OjI2OjAzIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiByZWxheG5nLmM6IGFkZGVkIGNoZWNrIGZvciBleHRlcm5hbCByZWZlcmVuY2UgaW4gCisJICB4bWxSZWxheE5HR2V0RWxlbWVudHMgKGJ1ZyAxMzc3MTgpCisJKiB0ZXN0L3JlbGF4bmcvcm5nYnVnLTAwMS4qLCByZXN1bHQvcmVsYXhuZy9ybmdidWctMDAxKjogYWRkZWQKKwkgIHJlZ3Jlc3Npb24gdGVzdCBmb3IgYWJvdmUKKworV2VkIE1hciAxNyAxNjozNzoyMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogbmFub2h0dHAuYzogYWRkZWQgYSBjbG9zZSBmb3IgdGhlIGxvY2FsIGZpbGUgZGVzY3JpcHRvcgorCSAgKGJ1ZyAxMzc0NzQpCisKK01vbiBNYXIgMTUgMTU6NDY6NTkgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzYXZlLmM6IHN3aXRjaGVkIHRoZSBvdXRwdXQgcm91dGluZXMgdG8gdXNlIHRoZSBuZXcgY29udGV4dC4KKworTW9uIE1hciAxNSAxMDozNzoxOCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcmVsYXhuZy5jOiBlbmhhbmNlZCB0byBpZ25vcmUgWE1MX1hJTkNMVURFX1NUQVJUIGFuZCBYTUxfWElOQ0xVREVfRU5ECisJICBub2RlcyAoYnVnIDEzNzE1MykKKworU3VuIE1hciAxNCAxMzoxOToyMCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBhcHBsaWVkIHBhdGNoIGZyb20gSm9obiBCZWxtb250ZSBmb3IgYW55VVJJLgorCitXZWQgTWFyIDEwIDE3OjIyOjQ4IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeCBidWcgcmVwb3J0ZWQgYnkgSG9sZ2VyIFJhdWNoCisJKiB0ZXN0L2F0dDggcmVzdWx0L25vZW50L2F0dDggcmVzdWx0L2F0dDggcmVzdWx0L2F0dDgucmRyCisJICByZXN1bHQvYXR0OC5zYXg6IGFkZGVkIHRoZSB0ZXN0IHRvIHRoIHJlZ3Jlc3Npb24gc3VpdGUKKworV2VkIE1hciAxMCAxOTo0MjoyMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZG9jL3NlYXJjaC5waHA6IE1pbm9yIGNoYW5nZSBmb3IgbGF0ZXIgdmVyc29uIG9mIHBocCByZXF1aXJpbmcKKwkgICRIVFRQX0dFVF9WQVJTLgorCitXZWQgTWFyIDEwIDAwOjEyOjMxIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB0cmVlLmM6IENoYW5nZWQgdGhlIGZsYWcgdG8geG1sRG9jQ29weU5vZGUgKGFuZCBzaW1pbGFyIHJvdXRpbmVzKSwKKwkgIHByZXZpb3VzbHkgdXNlZCBvbmx5IGZvciByZWN1cnNpb24sIHRvIHVzZSBhIHZhbHVlIG9mICcyJyB0bworCSAgaW5kaWNhdGUgY29weSBwcm9wZXJ0aWVzICYgbmFtZXNwYWNlcywgYnV0IG5vdCBjaGlsZHJlbi4KKwkqIHhpbmNsdWRlLmM6IGNoYW5nZWQgdGhlIGhhbmRsaW5nIG9mIHJhbmdlcyB0byB1c2UgdGhlIGFib3ZlIG5ldworCSAgZmFjaWxpdHkuICBGaXhlcyBCdWcgMTM0MjY4LgorCitUdWUgTWFyICA5IDE4OjQ4OjUxIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB3aW4zMi9NYWtlZmlsZS5iY2IsIHdpbjMyL01ha2VmaWxlLm1pbmd3LCB3aW4zMi9NYWtlZmlsZS5tc3ZjOgorCSAgYWRkZWQgbmV3IG1vZHVsZSB4bWxzYXZlIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgRXJpYyBadXJjaGVyCisJICAoc2Vjb25kIGF0dGVtcHQgLSBkb24ndCBrbm93IHdoYXQgaGFwcGVuZWQgdG8gdGhlIGZpcnN0IG9uZSEpCisKK1R1ZSBNYXIgIDkgMDk6NTk6MjUgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbC5weTogYXBwbGllZCBwYXRjaCBmcm9tIEFudGhvbnkgQ2FycmljbworCSAgcHJvdmlkaW5nIFB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIENhbm9uaWNhbGl6YXRpb24gQzE0TiBzdXBwb3J0LgorCitNb24gTWFyICA4IDExOjEyOjIzIENFVCAyMDA0IEhhZ2VuIE1vZWJpdXMgPGhhZ2VuLm1vZWJpdXNAc3RhcnNjaGlmZmNoZW4uZGU+CisKKwkqIC5jdnNpZ25vcmUgYW5kIHB5dGhvbi8uY3ZzaWdub3JlIHBhdGNoZWQKKworTW9uIE1hciAgOCAyMjozMzoxNCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeGluY2x1ZGUuYzogZW5oYW5jZWQgdG8gYXNzdXJlIHRoYXQgaWYgeHBvaW50ZXIgaXMgY2FsbGVkCisJICBmb3IgYSBkb2N1bWVudCwgdGhlIFhNTF9QQVJTRV9OT0VOVCBmbGFnIGlzIHNldCBiZWZvcmUgcGFyc2luZworCSAgdGhlIGluY2x1ZGVkIGRvY3VtZW50IHNvIHRoYXQgZW50aXRpZXMgd2lsbCBhdXRvbWF0aWNhbGx5IGdldAorCSAgdGFrZW4gY2FyZSBvZi4KKwkqIHhwb2ludGVyLmM6IGNvcnJlY3RlZCBjb2RlIHNvIHRoYXQsIGlmIGFuIFhNTF9FTlRJVFlfUkVGIG5vZGUKKwkgIGlzIGVuY291bnRlcmVkLCBpdCB3aWxsIGxvZyBpdCBhbmQgbm90IGNyYXNoIChidWcgMTM1NzEzKQorCitTdW4gTWFyICA3IDE5OjAzOjQ4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4aW5jbHVkZS5jOiBtb2RpZmllZCB0byBtYWtlIHN1Yi1pbmNsdWRlcyBpbmhlcml0IHRoZQorCSAgcGFyc2UgZmxhZ3MgZnJvbSB0aGUgcGFyZW50IGRvY3VtZW50IChidWcgMTMyNTk3KQorCitGcmkgTWFyICA1IDAxOjEzOjIyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiBRTmFtZSBoYW5kbGluZyBmaXhlcyBmb3IgdGhlIFhNTCBTY2hlbWFzCisJICBzdXBwb3J0IGZyb20gQWRhbSBEaWNrbWVpc3MKKwkqIHRlc3Qvc2NoZW1hcy9wbzFfMC54c2Q6IGFsc28gZml4IHRoZSBzY2hlbWFzCisJKiB0ZXN0L3NjaGVtYXMvbnNbMTJdKiByZXN1bHQvc2NoZW1hcy9uc1sxMl0qOiBhZGRlZCB0aGUgc3BlY2lmaWMKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKworVGh1IE1hciAgNCAyMzowMzowMiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvTWFrZWZpbGUuYW0gaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW06CisJICBwYWFsaWVkIHBhdGNoIGZyb20gSnVsaW8gTS4gTWVyaW5vIFZpZGFsIGZpeGluZyBidWcgIzEzNDc1MQorCSAgdG8gZml4IC0td2l0aC1odG1sLWRpciBvcHRpb24uCisJKiBkb2MvKjogcmVidWlsdCBmdWxseSB0aGUgZG9jcyAKKwkqIGRvYy9odG1sL2xpYnhtbC14bWxzYXZlLmh0bWw6IG5ldyBmaWxlIGZyb20gbmV3IGhlYWRlci4KKworVGh1IE1hciAgNCAxNjo1Nzo1MCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRlYnVnWE1MLmMgdGVzdEhUTUwuYyB0cmVlLmMgZG9jL2V4YW1wbGVzLyouYworCSAgaW5jbHVkZS9saWJ4bWwveG1sc2F2ZS5oOiBmaXhpbmcgY29tcGlsYXRpb24gYnVnIHdpdGggc29tZSBvcHRpb25zCisJICBkaXNhYmxlZCBhcyB3ZWxsIGFzIC0td2l0aC1taW5pbXVtIHNob3VsZCBmaXggIzEzNDY5NQorCitUaHUgTWFyICA0IDE1OjAwOjQ1IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sY2F0YWxvZy5jOiBhbGxvdyBmYWxsYmFjayB0byBVUkkgbG9va3VwIHdoZW4gU1lTVEVNIGZhaWxzLAorCSAgc2hvdWxkIGNsb3NlICMxMzQwOTIKKworVGh1IE1hciAgNCAxNDozOTozOCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIHRyZWUuYyB4bWxzYXZlLmMgaW5jbHVkZS9saWJ4bWwveG1sc2F2ZS5oOiBjb21taXRpbmcKKwkgIHRoZSBuZXcgeG1sc2F2ZSBtb2R1bGUgYmVmb3JlIHRoZSBhY3R1YWxsIGJpZyBjb2RlIGNoYW5nZS4KKworVGh1IE1hciAgNCAxMjozODo1MyBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogYXBwbGllZCBwYXRjaCBmcm9tIEFkYW0gRGlja21laXNzIGZvciBtaXhlZCBjb250ZW50CisJKiB0ZXN0L3NjaGVtYXMvbWl4ZWQqIHJlc3VsdC9zY2hlbWFzL21peGVkKjogYWRkZWQgaGlzIHJlZ3Jlc3Npb24KKwkgIHRlc3RzIHRvby4KKworTW9uIE1hciAgMSAxNToyMjowNiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3RTQVguYzogZml4IGEgY29tcGlsYXRpb24gcHJvYmxlbSBhYm91dCBhIG1pc3NpbmcgdGltYiBpbmNsdWRlCisKK1NhdCBGZWIgMjggMjI6MzU6MzIgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHRlc3RTQVguYzogc21hbGwgZW5oYW5jZW1lbnQgdG8gcHJldmVudCB0cnlpbmcgdG8gcHJpbnQKKwkgIHN0cmluZ3Mgd2l0aCBudWxsIHBvaW50ZXJzIChjYXVzZWQgIm1ha2UgdGVzdHMiIGVycm9ycyBvbgorCSAgSFAtVVgpCisKK1RodSBGZWIgMjYgMjA6MTk6NDAgTVNUIDIwMDQgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGxpbnQueG1sCisJKiBkb2MveG1sbGludC4xCisJKiBkb2MveG1sbGludC5odG1sCisJKiBkb2MveG1sY2F0YWxvZ19tYW4ueG1sCisJKiBkb2MveG1sY2F0YWxvZy4xCisJKiBkb2MveG1sY2F0YWxvZ19tYW4uaHRtbAorCWFwcGx5aW5nIHBhdGNoIGZyb20gTWlrZSBIb21tZXkgdG8gY2xhcmlmeSBYTUxfQ0FUQUxPR19GSUxFUworCXVzZQorCitUaHUgRmViIDI2IDIzOjQ3OjQzIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IHBhdGNoIGZvciBjcm9zcy1jb21waWxhdGlvbiB0byBXaW5kb3dzIGZyb20KKwkgIENocmlzdG9waGUgZGUgVklFTk5FLgorCitUaHUgRmViIDI2IDE4OjUyOjExIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MvKi5odG1sLCBkb2MvaHRtbC8qLmh0bWw6IHJlZ2VuZXJhdGVkIGRvY3MgdXNpbmcgb2xkZXIKKwkgIHZlcnNpb24gb2YgeHNsdHByb2MgcGVuZGluZyByZXNvbHV0aW9uIG9mIEFWVCBwcm9ibGVtCisKK1RodSBGZWIgMjYgMTA6NTY6MjkgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogYXBwbGllZCBwYXRjaCBmcm9tIENoYXJsZXMgQm96ZW1hbiB0byBub3QgdXNlCisJICB0aGUgc3lzdGVtIHhtbGxpbnQuCisKK1dlZCBGZWIgMjUgMTg6MDc6MDUgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWxleHBvcnRzLmg6IGFwcGxpZWQgcGF0Y2ggZnJvbSBSb2xhbmQgU2Nod2luZ2VsCisJICBmb3IgTWluZ1cKKworV2VkIEZlYiAyNSAxMzo1NzoyNSBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIGNhdGFsb2cuYyBjb25maWd1cmUuaW46IGFwcGxpZWQgYSBjbGVhbnVwIHBhdGNoCisJICBmcm9tIFBldGVyIEJyZWl0ZW5sb2huZXIKKwkqIHRyZWUuYzogcmVtb3ZlZCBhIGRvYyBidWlsZCB3YXJuaW5nIGJ5IGZpeGluZyBhIHBhcmFtIGNvbW1lbnQKKwkqIGRvYy8qIDogcmVidWlsdCB0aGUgZG9jcworCitXZWQgRmViIDI1IDEzOjMzOjA3IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYyBIVE1McGFyc2VyLmM6IGF2b2lkIElEIGVycm9yIG1lc3NhZ2UgaWYgdXNpbmcKKwkgIEhUTUxfUEFSU0VfTk9FUlJPUiBzaG91bGQgZml4ICMxMzA3NjIKKworV2VkIEZlYiAyNSAxMjo1MDo1MyBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRlYnVnWE1MLmMgcmVsYXhuZy5jIHZhbGlkLmMgeGluY2x1ZGUuYyB4bWxsaW50LmMgeG1scmVhZGVyLmM6CisJICBmaXhpbmcgY29tcGlsYXRpb24gYW5kIGxpbmsgb3B0aW9uIHdoZW4gY29uZmlndXJpbmcgd2l0aAorCSAgLS13aXRob3V0LXZhbGlkIHNob3VsZCBmaXggIzEzNTMwOQorCitXZWQgRmViIDI1IDExOjM2OjA2IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2F0YWxvZy5jOiBmaXhlZCB0aGUgbWFpbiBpc3N1ZXMgcmVwb3J0ZWQgYnkgUGV0ZXIgQnJlaXRlbmxvaG5lcgorCSogcGFyc2VyLmM6IGNsZWFudXAKKwkqIHZhbGlkLmM6IHNwZWVkdXAgcGF0Y2ggZnJvbSBQZXRyIFBhamFzCisKK1dlZCBGZWIgMjUgMTY6MDc6MTQgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGZpeGVkIGEgbWVtb3J5IGxlYWsgKHhtbFhQYXRoTGFuZ0Z1bmN0aW9uKSByZXBvcnRlZAorCSAgb24gdGhlIGxpc3QgYnkgTWlrZSBIb21tZXkKKworTW9uIEZlYiAyMyAxNzoyODozNCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy8qIE5FV1MgY29uZmlndXJlLmluOiBwcmVwYXJpbmcgMi42LjcgcmVsZWFzZSwgdXBkYXRlZCBhbmQKKwkgIHJlYnVpbHQgdGhlIGRvY3VtZW50YXRpb24uCisKK01vbiBGZWIgMjMgMTE6NTI6MTIgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vdGVzdHMvKi5weTogYXBwbGllZCBwYXRjaCBmcm9tIE1hbGNvbG0gVHJlZGlubmljaworCSAgdG8gYXZvaWQgdGFicyBpbiBweXRob24gc291cmNlcywgc2hvdWxkIGZpeCAjMTM1MDk1CisKK1N1biBGZWIgMjIgMjM6MTY6MjMgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0U0FYLmM6IGFkZCAtLXRpbWluZyBvcHRpb24KKwkqIHJlbGF4bmcuYzogdXNlIHRoZSBwc3ZpIGZpZWxkIG9mIHRoZSBub2RlcyBpbnN0ZWFkIG9mIF9wcml2YXRlCisJICB3aGljaCBtYXkgYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuCisKK1NhdCBGZWIgMjEgMTY6NTc6NDggQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbmNvZGluZy5jOiBzbWFsbCBwYXRjaCB0byB0cnkgdG8gZml4IGEgd2FybmluZyB3aXRoIFN1biBPbmUgY29tcGlsZXIKKworU2F0IEZlYiAyMSAxNjoyMjozNSBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmM6IHNtYWxsIHBhdGNoIHJlbW92aW5nIGEgd2FybmluZyB3aXRoIE1TIGNvbXBpbGVyLgorCitTYXQgRmViIDIxIDEzOjUyOjMwIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYzogYWRkZWQgInJlbGF4bmciIG9wdGlvbiB0byB0aGUgZGVidWdnaW5nIHNoZWxsCisJKiBNYWtlZmlsZS5hbSB0ZXN0L2Vycm9ycy8qIHJlc3VsdC9lcnJvcnMvKjogc29tZSByZWdyZXNzaW9uIHRlc3RzCisJICBmb3Igc29tZSBlcnJvciB0ZXN0cyBjYXNlcy4KKworRnJpIEZlYiAyMCAwOTo1Njo0NyBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQgZG9uJ3Qgc2VnZmF1bHQgaWYgTlVMTAorCSAgaXMgcGFzc2VkLgorCSogdGVzdC9hdHQ3IHJlc3VsdC8vYXR0Nyo6IGFkZGluZyBhbiBvbGQgcmVncmVzc2lvbiB0ZXN0CisJICBsYXlpbmcgYXJvdW5kIG9uIG15IGxhcHRvcAorCitUaHUgRmViIDE5IDE3OjMzOjM2IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IGZpeGVkIHhtbGxpbnQgLS1tZW1vcnkgLS1zdHJlYW0gbWVtb3J5IGNvbnN1bXB0aW9uCisJICBvbiBsYXJnZSBmaWxlIGJ5IHVzaW5nIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljKCkgd2l0aAorCSAgdGhlIG1tYXAnZWQgZmlsZSAKKworVGh1IEZlYiAxOSAxMzo1Njo1MyBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogc29tZSBjbGFyaWZpY2F0aW9uIGluIHhtbERvY0R1bXBNZW1vcnkoKSBkb2N1bWVudGF0aW9uCisJKiB4bWxsaW50LmM6IGZpeGVkIHhtbGxpbnQgLS1zdHJlYW0gLS10aW1pbmcgdG8gZ2V0IHRpbWluZ3MgYmFjaworCitXZWQgRmViIDE4IDE1OjIwOjQyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGVkIGEgcHJvYmxlbSBpbiBwdXNoIG1vZGUgd2hlbiBhdHRyaWJ1dGUgY29udGFpbnMKKwkgIHVuZXNjYXBlZCAnPicgY2hhcmFjdGVycywgZml4ZXMgYnVnICMxMzQ1NjYKKwkqIHRlc3QvYXR0NiByZXN1bHQvL2F0dDYqOiBhZGRlZCB0aGUgdGVzdCB0byB0aGUgcmVncmVzc2lvbiBzdWl0ZQorCitUdWUgRmViIDE3IDE3OjI2OjMxIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogcmVtb3ZpbmcgYSBub24tbGluZWFyIGJlaGF2aW91ciBmcm9tIElEL0lEUkVGIHJhaXNlZAorCSAgYnkgUGV0ciBQYWphcy4gQ2FsbCB4bWxMaXN0QXBwZW5kIGluc3RlYWQgb2YgeG1sTGlzdEluc2VydCBpbgorCSAgeG1sQWRkUmVmCisKK1R1ZSBGZWIgMTcgMTM6Mjc6MjcgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vdGVzdHMvaW5kZXhlcy5weSBweXRob24vdGVzdHMvcmVhZGVyLnB5OiBpbmRpY2F0ZWQKKwkgIGVuY29kaW5nIG9mIHRoZSB0ZXN0IGZpbGUsIG5lZWRlZCBmb3IgcHl0aG9uIDIuMworCitUdWUgRmViIDE3IDIxOjA4OjExIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBmaXhlZCBwcm9ibGVtIHdpdGggbnVtYmVycyBoYXZpbmcgPiAxOQorCSAgZnJhY3Rpb25hbCBwbGFjZXMgKGJ1ZyAxMzM5MjEpCisKK1R1ZSBGZWIgMTcgMTI6NDc6MjAgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBhcHBsaWVkIG9wdGltaXphdGlvbiBwYXRjaCBmcm9tIFBldHIgUGFqYXMKKworVHVlIEZlYiAxNyAxMjozOTowOCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHdyaXRlci5jIGluY2x1ZGUvbGlieG1sL3htbHdyaXRlci5oOiBhcHBsaWVkIHVwZGF0ZQorCSAgZnJvbSBBbGZyZWQgTWlja2F1dHNjaCBhbmQgdGhlIGFkZGVkIHBhdGNoIGZyb20gTHVjYXMgQnJhc2lsaW5vCisKK1N1biBGZWIgMTUgMTI6MDE6MzAgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBiZW5jaG1hcmsucG5nIGluZGV4Lmh0bWwgeG1sLmh0bWw6IHVwZGF0aW5nIHRoZSBiZW5jaG1hcmsKKwkgIGdyYXBoIGFuZCB1c2luZyBhIFBORyBpbnN0ZWFkIG9mIGEgR0lGCisJKiB4bWxyZWFkZXIuYzogdXBkYXRlZCB0aGUgVE9ETworCitTYXQgRmViIDE0IDE4OjU1OjQwIE1TVCAyMDA0IEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy90dXRvcmlhbC94bWx0dXRvcmlhbC54bWwKKwkqIGRvYy90dXRvcmlhbC94bWx0dXRvcmlhbC5wZGYKKwkqIGRvYy90dXRvcmlhbC8qLmh0bWwKKwlGaXggYnVnIGluIFhQYXRoIGV4YW1wbGUgaW4gdGhlIHR1dG9yaWFsLCB0aGFua3MgdG8gQ2FybG9zLCB3aG9zZQorCWxhc3QgbmFtZSBJIGRvbid0IGtub3csIGZvciBwb2ludGluZyB0aGlzIG91dAorCitUaHUgRmViIDEyIDE2OjI4OjEyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTkVXUyBjb25maWd1cmUuaW46IHByZXBhcmluZyByZWxlYXNlIG9mIDIuNi42CisJKiBkb2MvKjogdXBkYXRlZCB0aGUgZG9jcyBhbmQgcmVidWlsdCB0aGVtCisKK1RodSBGZWIgMTIgMTM6NDE6MTYgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogZml4aW5nIGJ1ZyAjMTMyOTMwIHdpdGggdGhlIHByb3ZpZGVkIHBhdGNoLCBhIGJpdAorCSAgc3VzcGljaW91cyBhYm91dCBpdCBidXQgdGhpcyBpcyBmYWlybHkgY29udGFpbmVkIGFuZCByZWdyZXNzaW9uCisJICB0ZXN0cyBzdGlsbCBwYXNzZXMuCisJKiB0ZXN0L3NjaGVtYXMvYWxsMSogcmVzdWx0L3NjaGVtYXMvYWxsMSo6IGFkZGVkIHRoZSB0ZXN0IHRvCisJICB0aGUgcmVncmVzc2lvbiBzdWl0ZS4KKworVGh1IEZlYiAxMiAxMjo1NDoyNiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBidWcgIzEzMjU3NSBhYm91dCBmaW5kaW5nIHRoZSBlbmQgb2YgdGhlCisJICBpbnRlcm5hbCBzdWJzZXQgaW4gcHVzaCBtb2RlLgorCSogdGVzdC9pbnRzdWJzZXQueG1sIHJlc3VsdC9pbnRzdWJzZXQueG1sKiByZXN1bHQvbm9lbnQvaW50c3Vic2V0LnhtbDoKKwkgIGFkZGVkIHRoZSB0ZXN0IHRvIHRoZSByZWdyZXNzaW9uIHN1aXRlCisKK1dlZCBGZWIgMTEgMTQ6MTk6MzEgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYyB4bWxJTy5jIGVuY29kaW5nLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbElPLmg6IGFkZGVkIHhtbEJ5dGVDb25zdW1lZCgpIGludGVyZmFjZQorCSogZG9jLyo6IHVwZGF0ZWQgdGhlIGJlbmNobWFyayByZWJ1aWx0IHRoZSBkb2NzCisJKiBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL2luZGV4ZXMucHk6IGFkZGVkIGEKKwkgIHNwZWNpZmljIHJlZ3Jlc3Npb24gdGVzdCBmb3IgeG1sQnl0ZUNvbnN1bWVkKCkKKwkqIGluY2x1ZGUvbGlieG1sL2VuY29kaW5nLmggcm5ncGFyc2VyLmMgdHJlZS5jOiBzbWFsbCBjbGVhbnVwcworCitXZWQgRmViIDExIDA4OjEzOjU4IEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrCisKKwkqIHRyZWUuYzogZml4ZWQgbWlzc2luZyBvdXRwdXQgb2YgaW50ZXJuYWwgRFREIHBhcmFtIGVudGl0aWVzIHdoZW4KKwkgIG5vdGhpbmcgZWxzZSBwcmVzZW50IGluIERURCAoYnVnIDEzNDA1MikKKworVHVlIEZlYiAxMCAxOToyNDozOCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZW5jb2RpbmcuYzogYXBwbGllZCBwYXRjaCBzdXBwbGllZCBieSBDaHJpc3RvcGhlIER1YmFjaAorCSAgdG8gZml4IHByb2JsZW0gd2l0aCAtLXdpdGgtbWluaW11bSBjb25maWd1cmF0aW9uCisJICAoYnVnIDEzMzc3MykKKwkqIG5hbm9mdHAuYzogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBwcm9ibGVtLAorCSAgc2ltaWxhciB0byBmaXgganVzdCBhcHBsaWVkIHRvIG5hbm9odHRwLmMuCisKK01vbiBGZWIgIDkgMTg6NDA6MjEgQ0VUIDIwMDQgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogbmFub2h0dHAuYzogZml4ZWQgdGhlIGZpeCBmb3IgdGhlIGJ1ZmZlciBvdmVyZmxvdywgdGhhbngKKwkgIFdpbGxpYW0gOi0pCisKK01vbiBGZWIgIDkgMjI6Mzc6MTQgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLmluOiBmaXhlZCBwcm9ibGVtIGNvbmNlcm5pbmcKKwkgIGRldGVybWluaW5nIFNPQ0tMRU5fVCBhcyBwb2ludGVkIG91dCBieSBEYW5pZWwgUmljaGFyZCBHLgorCSAgb24gdGhlIG1haWxpbmcgbGlzdAorCitNb24gRmViICA5IDE1OjMxOjI0IENFVCAyMDA0IElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIG5hbm9odHRwLmM6IGZpeGVkIGJ1ZmZlciBvdmVyZmxvdyByZXBvcnRlZCBieSBZdXVpY2hpIFRlcmFuaXNoaQorCitNb24gRmViICA5IDEzOjQ1OjU5IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogc21hbGwgcGF0Y2ggZnJvbSBQaGlsaXAgTHVkbGFtIHRvIGF2b2lkIHdhcm5pbmdzLgorCitNb24gRmViICA5IDEzOjQxOjQ3IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYzogYXBwbGllZCBhIHNtYWxsIHBhdGNoIGZyb20gQWxmcmVkIE1pY2thdXRzY2gKKwkgIHRvIGF2b2lkIGFuIG91dCBvZiBib3VuZCBlcnJvciBpbiBpc29sYXQxVG9VVEY4KCkKKworTW9uIEZlYiAgOSAxMzozNTo1MCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IHJlbW92ZSB0aGUgd2FybmluZyBvbiB0aGUgMjAwMSBuYW1lc3BhY2UKKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHhwYXRoLmM6IHJlbW92ZSBzb21lIHdhcm5pbmdzCisJICB3aGVuIGNvbXBpbGluZyB3aXRoIE1TVkM2CisJKiBuYW5vaHR0cC5jOiBhcHBsaWVkIGEgcGF0Y2ggd2hlbiB1c2luZyBfV0lOU09DS0FQSV8KKworU3VuIEZlYiAgOCAxMjowOTo1NSBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeGluY2x1ZGUuYzogYWRkZWQgYSBzbWFsbCBoYWNrIHRvIGZpeCBpbnRlcmZlcmVuY2UgYmV0d2VlbgorCSAgbXkgZml4ZXMgZm9yIGJ1Z3MgMTMyNTg1IGFuZCAxMzI1ODguCisJKiBweXRob24vbGlieG1sLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBzZXJpYWxpemF0aW9uIG9mIG5hbWVzcGFjZQorCSAgcmVwb3J0ZWQgb24gdGhlIG1haWxpbmcgbGlzdCBieSBBbnRob255IENhcnJpY28KKworU2F0IEZlYiAgNyAxNjo1MzoxMSBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeGluY2x1ZGUuYzogZml4ZWQgcHJvYmxlbSB3aXRoIGZ1bmN0aW9uIHhtbFhJbmNsdWRlQ29weVJhbmdlCisJICAoYnVnIDEzMzY4NikuCisKK0ZyaSBGZWIgIDYgMjE6MDM6NDEgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbHdyaXRlci5jOiBmaXhlZCBwcm9ibGVtIHdpdGggcmV0dXJuIHZhbHVlIG9mCisJICB4bWxUZXh0V3JpdGVyV3JpdGVJbmRlbnQoKSAoYnVnIDEzMzI5NykKKworRnJpIEZlYiAgNiAxOTowNzowNCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeGluY2x1ZGUuYzogY2hhbmdlZCBjb2RpbmcgdG8gb3V0cHV0IGdvb2QgWEluY2x1ZGVzIHdoZW4KKwkgIG9uZSBvciBtb3JlIGJhZCBvbmVzIGFyZSBwcmVzZW50IChidWcgMTMyNTg4KQorCitGcmkgRmViICA2IDE3OjM0OjIxIEhLVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4aW5jbHVkZS5jOiBjb3JyZWN0ZWQgaGFuZGxpbmcgb2YgZW1wdHkgZmFsbGJhY2sgY29uZGl0aW9uCisJICAoYnVnIDEzMjU4NSkKKworRnJpIEZlYiAgNiAxNToyODozNiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogSFRNTHBhcnNlci5jOiBhZGRlZCBpbml0aWFsaXNhdGlvbiBmb3IgY3R4dC0+dmN0eHQKKwkgIGluIEhUTUxJbml0UGFyc2VyIChidWcgMTMzMTI3KQorCSogdmFsaWQuYzogbWlub3IgY29zbWV0aWMgY2hhbmdlIChyZW1vdmVkIEFUVFJJQlVURV9VTlVTRUQKKwkgIGZyb20gc2V2ZXJhbCBmdW5jdGlvbiBwYXJhbXMpCisKK1R1ZSBGZWIgIDMgMTY6NDg6NTcgUFNUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGVkIHByb2JsZW0gcmVnYXJkaW5nIGZyZWVpbmcgb2YgZGljdGlvbmFyeQorCSAgd2hlbiB0aGVyZSBhcmUgZXJyb3JzIHdpdGhpbiBhbiBYSW5jbHVkZSBmaWxlIChidWcgMTMzMTA2KS4KKwkgIFRoYW5rcyB0byBPbGVnIFBhcmFzY2hlbmtvIGZvciB0aGUgYXNzaXN0YW5jZS4KKworVHVlIEZlYiAgMyAwOTo1MzoxOCBQU1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGZpeGVkIHZhbGlkYXRpb24gb2YgbWF4TGVuZ3RoIHdpdGggbm8KKwkgIGNvbnRlbnQgdXNpbmcgcGF0Y2ggc3VibWl0dGVkIGJ5IEVyaWMgSGFzemxha2lld2ljegorCSAgKGJ1ZyAxMzMyNTkpCisKK1R1ZSBGZWIgIDMgMDk6MjE6MDkgQ0VUIDIwMDQgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmggaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IGFkZGVkCisJICBjYWxsaW5nIGNvbnZlbnRpb24gdG8gdGhlIHB1YmxpYyBmdW5jdGlvbiBwcm90b3R5cGVzIChyZXAgYnkKKwkgIENhbWVyb24gSm9obnNvbikKKwkqIGluY2x1ZGUvbGlieG1sL3htbGV4cG9ydHMuaDogZml4ZWQgbWluZ3crbXN5cyBjb21waWxhdGlvbgorCSAgKHJlcCBieSBNaWtoYWlsIEdydXNoaW5za2l5KQorCitNb24gRmViICAyIDIwOjIyOjE4IFBTVCAyMDA0IFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWx3cml0ZXIuYzogZW5oYW5jZWQgb3V0cHV0IGluZGVudGluZyAoYnVnIDEzMzI2NCkKKworTW9uIEZlYiAgMiAxNjoxMzozMyBQU1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1scmVhZGVyLmMsIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiBhcHBsaWVkIHBhdGNoIGZyb20KKwkgIFN0ZXZlIEJhbGwgdG8gcHJvdmlkZSBzdHJ1Y3R1cmVkIGVycm9yIHJlcG9ydHMuCisKK1N1biBGZWIgIDEgMDE6NDg6MTQgUFNUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHRyZWUuYywgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBtb3ZlZCBzZXJpYWxpemF0aW9uIG9mCisJICBhdHRyaWJ1dGUgdGV4dCBkYXRhICh4bWxTZXJpYWxpemVDb250ZW50KSBpbnRvIGEgc2VwYXJhdGUKKwkgIHJvdXRpbmUgKHhtbFNlcmlhbGl6ZVR4dENvbnRlbnQpIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IHhtbHdyaXRlci5jCisJKiB4bWx3cml0ZXIuYzogY2hhbmdlZCBoYW5kbGluZyBvZiBhdHRyaWJ1dGUgc3RyaW5nIHRvIHVzZSB0aGUKKwkgIHJvdXRpbmUgYWJvdmUgKGZpeGVkIGJ1ZyAxMzE1NDgpCisKK1NhdCBKYW4gMzEgMDg6MjI6MDIgTVNUIDIwMDQgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldAorCisJKiBkb2MvZXhhbXBsZXMvcmVhZGVyMS5jLCByZWFkZXIyLmMsIHJlYWRlcjMuYworCSogZG9jL2V4YW1wbGVzL2V4YW1wbGVzLnhtbAorCSogZG9jL2V4YW1wbGVzLyouaHRtbAorCWFkZCBub3RlIHRoYXQgcmVhZGVyIGV4YW1wbGVzIG5lZWQgbGlibXhsMiA+IDIuNiwgcmVidWlsZAorCWh0bWwgLSB0aGlzIHRpbWUgZG9pbmcgaXQgY29ycmVjdGx5IDotKQorCitGcmkgSmFuIDMwIDIwOjQ1OjM2IE1TVCAyMDA0IEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy9leGFtcGxlcy9leGFtcGxlcy54bWwKKwkqIGRvYy9leGFtcGxlcy8qLmh0bWwKKwlhZGQgbm90ZSB0aGF0IHJlYWRlciBleGFtcGxlcyBuZWVkIGxpYm14bDIgPiAyLjYsIHJlYnVpbGQKKwlodG1sCisKK1RodSBKYW4gMjkgMjM6NTE6NDggUFNUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGFkZGVkICh2b2lkICopIHR5cGUgb3ZlcnJpZGUgdG8gcHJldmVudAorCSAgd2FybmluZyBvbiBTb2xhcmlzIChCdWcgMTMyNjcxKQorCitXZWQgSmFuIDI4IDA3OjIwOjM3IE1TVCAyMDA0IEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy9leGFtcGxlcy9NYWtlZmlsZS5hbQorCXBlciBKYW4uIDE1IGVtYWlsIHRvIHRoZSBsaXN0IGZyb20gb2xpdmVyc3QsIHRoZSBpbmRleC5odG1sCisJZmlsZSBmcm9tIHRoaXMgZGlyZWN0b3J5IHdhc24ndCBtYWtpbmcgaXQgaW50byB0aGUgdGFyYmFsbAorCitNb24gSmFuIDI2IDE4OjAxOjAwIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogYWNpbmNsdWRlLm00OiBhcHBsaWVkIGZpeCBmcm9tIEFsZXhhbmRlciBXaW5zdG9uIGZvciBhIHByb2JsZW0KKwkgIHJlbGF0ZWQgdG8gYXV0b21ha2UtMS44ICwgYy5mLiAjMTMyNTEzIGFuZCAjMTI5ODYxCisKK01vbiBKYW4gMjYgMTI6NTM6MTEgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZXhhbXBsZXMvaW5kZXgucHk6IGRvbid0IHJlbHkgb24gLiBiZWluZyBvbiB0aGUgcGF0aCBmb3IKKwkgIG1ha2UgdGVzdHMsIHNob3VsZCBrZWVwIE1yLiBDcm96YXQgcXVpZXQgdW50aWwgbmV4dCB0aW1lLi4uCisKK1N1biBKYW4gMjUgMjE6NDU6MDMgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gTkVXUyBkb2MvKjogcHJlcGFyaW5nIHJlbGVhc2UgMi42LjUsIHJlYnVpbHQgdGhlCisJICBkb2NzLCBjaGVja2VkIHJuZ3BhcnNlciBzdHVmZiBkb2VzIG5vdCBlbmQgdXAgaW4gdGhlIHRhcmJhbGwKKworU3VuIEphbiAyNSAyMDo1OToyMCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwuYzogYXBwbGllZCBwYXRjaCBmcm9tIEZyZWRlcmljIFBldGVycworCSAgZml4aW5nIHRoZSB3cm9uZyBhcmcgb3JkZXIgaW4geHBhdGggY2FsbGJhY2sgaW4gYnVnICMxMzA5ODAKKworU3VuIEphbiAyNSAyMDo1MjowOSBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGluZyAjMTMwNDUzIFhJbmNsdWRlIGVsZW1lbnQgd2l0aCBubyBocmVmIGF0dHJpYnV0ZQorCSogcmVsYXhuZy5jIHJuZ3BhcnNlci5jIGluY2x1ZGUvbGlieG1sMi9yZWxheG5nLmg6IGZ1bGx5IGludGVncmF0aW5nIAorCSAgdGhlIGNvbXBhY3Qgc3ludGF4IHdpbGwgcmVxdWlyZSBtb3JlIHdvcmssIHBvc3Rwb25lZCBmb3IgdGhlCisJICAyLjYuNSByZWxlYXNlLgorCitTYXQgSmFuIDI0IDA5OjMwOjIyIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oIHhtbHNjaGVtYXMuYzogYXBwbGllZCBwYXRjaCBmcm9tCisJICBTdGV2ZSBCYWxsIHRvIGF2b2lkIGEgZG91YmxlLWZyZWUuCisKK0ZyaSBKYW4gMjMgMTQ6MDM6MjEgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZXhhbXBsZXMvKjogYWRkZWQgaW8xLmMgYW4gZXhhbXBsZSBveCB4bWxJTyB1c2FnZSBhbmQgaW8xLnJlcworCSAgdGVzdCByZXN1bHQsIGZpeGVkIGEgYXdmdWwgbG90IG9mIG1lbW9yeSBsZWFrcyBzaG93aW5nIHVwIGluCisJICB0ZXN0V3JpdGVyLmMsIGNoYW5nZWQgdGhlIGV4YW1wbGVzIGFuZCB0aGUgTWFrZWZpbGVzIHRvIHRlc3QKKwkgIG1lbW9yeSBsZWFrcy4KKwkqIHhtbHdyaXRlci5jOiBmaXhlZCBhIG1lbW9yeSBsZWFrCisJKiBNYWtlZmlsZS5hbTogcnVuIHRoZSBkb2MvZXhhbXBsZXMgcmVncmVzc2lvbiB0ZXN0cyBhcyBwYXJ0IG9mCisJICBtYWtlIHRlc3RzCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoLmg6IGFkZGVkIHhtbFhQYXRoQ3R4dENvbXBpbGUoKSB0bworCSAgY29tcGlsZSBhbiBYUGF0aCBleHByZXNzaW9uIHdpdGhpbiBhIGNvbnRleHQsIGN1cnJlbnRseSB0aGUgZ29hbAorCSAgaXMgdG8gYmUgYWJsZSB0byByZXVzZSB0aGUgWFNMVCBzdHlsZXNoZWV0IGRpY3Rpb25uYXJ5LCBidXQgdGhpcworCSAgb3BlbnMgdGhlIGRvb3IgdG8gb3RoZXJzIHBvc3NpYmxlIG9wdGltaXphdGlvbnMuCisJKiBkaWN0LmMgaW5jbHVkZS9saWJ4bWwvZGljdC5oOiBhZGRlZCB4bWxEaWN0Q3JlYXRlU3ViKCkgd2hpY2ggYWxsb3dzCisJICB0byBidWlsZCBhIG5ldyBkaWN0aW9ubmFyeSBiYXNlZCBvbiBhbm90aGVyIHJlYWQtb25seSBkaWN0aW9ubmFyeS4KKwkgIFRoaXMgaXMgbmVlZGVkIGZvciBYU0xUIHRvIGtlZXAgdGhlIHN0eWxlc2hlZXQgZGljdGlvbm5hcnkgcmVhZC1vbmx5CisJICB3aGlsZSBiZWluZyBhYmxlIHRvIHJldXNlIHRoZSBzdHJpbmdzIGZvciB0aGUgdHJhbnNmb3JtYXRpb24KKwkgIGRpY3Rpb25uYXJ5LgorCSogeGluY2x1ZGUuYzogZml4ZWQgYSBkaWN0aW9ubmFyIHJlZmVyZW5jZSBjb3VudGluZyBwcm9ibGVtIG9jY3VyaW5nCisJICB3aGVuIGRvY3VtZW50IHBhcnNpbmcgZmFpbGVkLgorCSogdGVzdFNBWC5jOiBhZGRpbmcgb3B0aW9uIC0tcmVwZWF0IGZvciB0aW1pbmcgMTAwdGltZXMgdGhlIHBhcnNpbmcKKwkqIGRvYy8qIDogcmVidWlsdCBhbGwgdGhlIGRvY3MKKworVGh1IEphbiAyMiAxNDoxNzowNSAyMDA0ICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogeG1sbWVtb3J5LmM6IG1ha2UgeG1sUmVhbGxvY0xvYygpIGFjY2VwdCBOVUxMIHBvaW50ZXIKKworVGh1IEphbiAyMiAwODoyNjoyMCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBhcHBsaWVkIHBhdGNoIGZyb20gSm9obiBCZWxtb250ZSBmb3IKKwkgIG5vcm1hbGl6ZWRTdHJpbmcgZGF0YXR5cGUgc3VwcG9ydC4KKworVGh1IEphbiAyMiAxMDo0MzoyMiBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogZml4ZWQgcHJvYmxlbSB3aXRoIHVuaW9uIHdoZW4gbGFzdCgpIGlzIHVzZWQKKwkgIGluIHByZWRpY2F0ZSAoYnVnICMxMzE5NzEpCisJKiB4cG9pbnRlci5jOiBtaW5vciBjaGFuZ2UgdG8gY29tbWVudCBmb3IgZG9jIGdlbmVyYXRpb24KKworV2VkIEphbiAyMSAxNzowMzoxNyBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBidWcgIzEzMTc0NSByYWlzZWQgYnkgU2hhdW4gTWNDYW5jZSB3aXRoIHRoZQorCSAgc3VnZ2VzdGVkIHBhdGNoCisKK1dlZCBKYW4gMjEgMTA6NTk6NTUgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWx3cml0ZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tIEFsZnJlZCBNaWNrYXV0c2NoIGZpeGluZyBhIG1lbW9yeQorCSAgbGVhayByZXBvcnRlZCBvbiB0aGUgbGlzdC4KKworVGh1IEphbiAxNSAwMDo0ODo0NiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHkgcHl0aG9uL3Rlc3RzL3RzdExhc3RFcnJvci5weTogYXBwbGllZAorCSAgcGF0Y2ggZnJvbSBTdMOpcGhhbmUgQmlkb3VsIHRvIGFkZCBlbnVtcyB0byB0aGUgUHl0aG9uIGJpbmRpbmdzLgorCitUdWUgSmFuIDEzIDIxOjUwOjA1IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdEhUTUwuYzogYW5vdGhlciBzbWFsbCBwYXRjaCBmcm9tIE1hcmsgVmFrb2MKKworVHVlIEphbiAxMyAyMTozOTo1OCBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyByZWxheG5nLmMgdGVzdFJlbGF4LmMgdGVzdFNjaGVtYXMuYzogYXBwbGllZAorCSAgcGF0Y2ggZnJvbSBNYXJrIFZha29jIHRvIG5vdCB1c2UgU0FYMSB1bmxlc3MgbmVjZXNzYXJ5LgorCitNb24gSmFuIDEyIDE3OjIyOjU3IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGljdC5jIHBhcnNlci5jIHhtbHN0cmluZy5jOiBzb21lIHBhcnNlciBvcHRpbWl6YXRpb25zLAorCSAgeG1sbGludCAtLW1lbW9yeSAtLXRpbWluZyAtLXJlcGVhdCAtLXN0cmVhbSAuL2RiMTAwMDAueG1sCisJICB3ZW50IGRvd24gZnJvbSAxNi41IHNlY3MgdG8gMTUuNSBzZWNzLgorCitUaHUgSmFuICA4IDE3OjU3OjUwIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiByZW1vdmVkIGEgbWVtb3J5IGxlYWsgcmVtYWluaW5nIGZyb20gdGhlIHN3aXRjaAorCSAgdG8gYSBkaWN0aW9ubmFyeSBmb3Igc3RyaW5nIGFsbG9jYXRpb25zIGMuZi4gIzEzMDg5MQorCitUaHUgSmFuICA4IDE3OjQ4OjQ2IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IGZpeGluZyBzb21lIHByb2JsZW0gaWYgY29uZmlndXJlZCAtLXdpdGhvdXQteGluY2x1ZGUKKwkgIGMuZi4gIzEzMDkwMgorCitUaHUgSmFuICA4IDE3OjQyOjQ4IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBjaGFuZ2VkIEFDX09VVFBVVCgpIG1hY3JvIHRvIGF2b2lkIGEgY3lnd2luIHByb2JsZW0KKwkgIGMuZi4gIzEzMDg5NgorCitUaHUgSmFuICA4IDAwOjM2OjAwIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUuYmNiIHdpbjMyL01ha2VmaWxlLm1pbmd3IHdpbjMyL01ha2VmaWxlLm1zdmM6CisJICBhcHBseWluZyBwYXRjaCBmcm9tIE1hcmsgVmFrb2MgZm9yIFdpbmRvd3MKKwkqIGRvYy9jYXRhbG9nLmh0bWwgZG9jL2VuY29kaW5nLmh0bWwgZG9jL3htbC5odG1sOiBhcHBsaWVkIGRvYworCSAgZml4ZXMgZnJvbSBTdmVuIFppbW1lcm1hbgorCitUdWUgSmFuICA2IDIzOjUxOjQ2IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbDItcHl0aG9uLWFwaS54bWwgcHl0aG9uL2xpYnhtbF93cmFwLmggcHl0aG9uL3R5cGVzLmMKKwkgIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvdHN0TGFzdEVycm9yLnB5OiBhcHBsaWVkIAorCSAgcGF0Y2ggZnJvbSBTdMOpcGhhbmUgQmlkb3VsIGZvciBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsaW5nIGZyb20KKwkgIHB5dGhvbiwgYW5kIHRoZSBhc3NvY2lhdGVkIHRlc3QKKworVHVlIEphbiAgNiAyMzoxODoxMSBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogY29uZmlndXJlLmluOiBmaXhlZCBCdWcxMzA1OTMKKwkqIHhtbHdyaXRlci5jOiBmaXhlZCBjb21waWxhdGlvbiB3YXJuaW5nCisKK1R1ZSBKYW4gIDYgMTU6MTU6MjMgQ0VUIDIwMDQgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWxzdHJpbmcuaDogZml4ZWQgdGhlIGNvbW1lbnQgaW4gdGhlIGhlYWRlcgorCSogZG9jLyo6IHJlYnVpbHQgdGhlIGRvY3MKKworVHVlIEphbiAgNiAxOTo0MDowNCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZW5jb2RpbmcuYywgcGFyc2VyLmMsIHhtbHN0cmluZy5jLCBNYWtlZmlsZS5hbSwKKwkgIGluY2x1ZGUvbGlieG1sL01ha2VmaWxlLmFtLCBpbmNsdWRlL2xpYnhtbC9jYXRhbG9nLmMsCisJICBpbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmgsIGluY2x1ZGUvbGlieG1sL2VuY29kaW5nLmgsCisJICBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCwgaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oLAorCSAgaW5jbHVkZS9saWJ4bWwvdHJlZS5oLCBpbmNsdWRlL2xpYnhtbC94bWx3cml0ZXIuaCwKKwkgIGluY2x1ZGUvbGlieG1sL3htbHN0cmluZy5oOgorCSAgbW92ZWQgc3RyaW5nIGFuZCBVVEY4IHJvdXRpbmVzIG91dCBvZiBwYXJzZXIuYyBhbmQgZW5jb2RpbmcuYworCSAgaW50byBhIG5ldyBtb2R1bGUgeG1sc3RyaW5nLmMgd2l0aCBpbmNsdWRlIGZpbGUKKwkgIGluY2x1ZGUvbGlieG1sL3htbHN0cmluZy5oIG1vc3RseSB1c2luZyBwYXRjaGVzIGZyb20gUmVpZAorCSAgU3BlbmNlci4gIFNpbmNlIHhtbENoYXIgbm93IGRlZmluZWQgaW4geG1sc3RyaW5nLmgsIHNldmVyYWwKKwkgIGluY2x1ZGUgZmlsZXMgbmVlZGVkIHRvIGhhdmUgYSAjaW5jbHVkZSBhZGRlZCBmb3Igc2FmZXR5LgorCSogZG9jL2FwaWJ1aWxkLnB5OiBhZGRlZCBzb21lIGFkZGl0aW9uYWwgc29ydGluZyBmb3IgdmFyaW91cworCSAgcmVmZXJlbmNlcyBkaXNwbGF5ZWQgaW4gdGhlIEFQSXh4eC5odG1sIGZpbGVzLiAgUmVidWlsdCB0aGUKKwkgIGRvY3MsIGFuZCBhbHNvIGFkZGVkIG5ldyBmaWxlIGZvciB4bWxzdHJpbmcgbW9kdWxlLgorCSogY29uZmlndXJlLmluOiBzbWFsbCBhZGRpdGlvbiB0byBoZWxwIG15IHRlc3Rpbmc7IG5vIGVmZmVjdCBvbgorCSAgbm9ybWFsIHVzYWdlLgorCSogZG9jL3NlYXJjaC5waHA6IGFkZGVkICRfR0VUW3F1ZXJ5XSBzbyB0aGF0IHBlcnNpc3RlbnQgZ2xvYmFscworCSAgY2FuIGJlIGRpc2FibGVkIChmb3IgcmVjZW50IHZlcnNpb25zIG9mIFBIUCkKKworTW9uIEphbiAgNSAyMDo0NzowNyBNU1QgMjAwNCBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MvdHV0b3JpYWwvY3VzdG9tZm8ueHNsCisJKiBkb2MvdHV0b3JpYWwvY3VzdG9taHRtbC54c2wKKwl1cGRhdGUgY3VzdG9tIHR1dG9yaWFsLWJ1aWxkaW5nIHN0eWxlc2hlZXRzIGluIHByZXBhcmF0aW9uCisJZm9yIHR1dG9yaWFsIHVwZGF0ZQorCitUdWUgSmFuICA2IDAwOjEwOjMzIENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcm5ncGFyc2VyLmM6IGNvbW1pdGluZyB0aGUgY29tcGFjdCByZWxheCBuZyBwYXJzZXIuIEl0J3Mgbm90CisJICBjb21wbGV0ZWx5IGZpbmlzaGVkLCBpdCdzIG5vdCBpbnRlZ3JhdGVkIGJ1dCBJIHdhbnQgdG8gc2F2ZSB0aGUKKwkgIGN1cnJlbnQgc3RhdGUKKworTW9uIEphbiAgNSAyMjoyMjo0OCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZG9jL2FwaWJ1aWxkLnB5LCBkb2MvQVBJY29uc3RydWN0b3JzLmh0bWwsIGRvYy9saWJ4bWwyLXJlZnMueG1sLAorCSAgd2luMzIvbGlieG1sMi5kZWYuc3JjOiBmaXhlZCBhcGlidWlsZC5weSdzIGdlbmVyYXRpb24gb2YKKwkgICJjb25zdHJ1Y3RvcnMiIHRvIGJlIGluIGFscGhhYmV0aWNhbCBvcmRlciAoaW5zdGVhZCBvZiBwcmV2aW91cworCSAgcmFuZG9tIHNlcXVlbmNlKTsgcmVnZW5lcmF0ZWQgcmVzdWx0aW5nIGZpbGVzLgorCitNb24gSmFuICA1IDE0OjAzOjU5IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sd3JpdGVyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBMdWNhcyBCcmFzaWxpbm8gZml4aW5nIGFuIGluZGVudAorCSAgcHJvYmxlbS4KKworU3VuIEphbiAgNCAxODo1NDoyOSBNU1QgMjAwNCBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MvbmV3YXBpLnhzbDogY2hhbmdlIGJhY2tncm91bmQgY29sb3Igb2YgZnVuY3Rpb24KKwlkZWNsYXJhdGlvbiB0byBpbXByb3ZlIHJlYWRhYmlsaXR5CisJKiBkb2MvKjogcmVidWlsZCBkb2NzIHdpdGggbmV3IHN0eWxlc2hlZXQKKworU3VuIEphbiAgNCAyMjo0NToxNCBIS1QgMjAwNCBXaWxsaWFtIEJyYWNrIDx3YmFyY2tAbW1tLmNvbS5oaz4KKworCSogcGFyc2VyLmMsIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBhZGRlZCBhIHJvdXRpbmUKKwkgIHhtbFN0cm5jYXROZXcgdG8gY3JlYXRlIGEgbmV3IHN0cmluZyBmcm9tIDIgZnJhZ3MuCisJKiB0cmVlLmM6IGFkZGVkIGNvZGUgdG8gY2hlY2sgaWYgbm9kZSBjb250ZW50IGlzIGZyb20KKwkgIGRpY3Rpb25hcnkgYmVmb3JlIHRyeWluZyB0byBjaGFuZ2Ugb3IgY29uY2F0ZW5hdGUuCisKK1N1biBKYW4gIDQgMDg6NTc6NTEgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbG1lbW9yeS5jOiBhcHBsaWVkIHN1Z2dlc3Rpb24gZnJvbSBNaWxvc2xhdiBUcm1hYyAoc2VlCisJICBCdWcgMTMwNDE5KSBhbmQgZWxpbWluYXRlZCB4bWxJbml0TWVtb3J5RG9uZS4gIE1vcmUKKwkgIGltcHJvdmVtZW50IG5lZWRlZC4KKwkqIHhtbDItY29uZmlnLmluOiBhZGRlZCBhbiBhZGRpdGlvbmFsIGZsYWcgKC0tZXhlYy1wcmVmaXgpIHRvCisJICBhbGxvdyBsaWJyYXJ5IGRpcmVjdG9yeSB0byBiZSBkaWZmZXJlbnQgZnJvbSBpbmNsdWRlIGRpcmVjdG9yeQorCSAgKEJ1ZyAxMjk1NTgpLgorCitGcmkgSmFuICAyIDIxOjIyOjE4IENFVCAyMDA0IERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYzogYXBwbGllZCBwYXRjaCBmcm9tIFN0w6lwaGFuZSBCaWRvdWwgZm9yIHN0cnVjdHVyZWQgZXJyb3IKKwkgIHJlcG9ydGluZy4KKworRnJpIEphbiAgMiAyMTowMzoxNyBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbHdyaXRlci5oIHhtbHdyaXRlci5jOiBhcHBsaWVkIHRoZSBwYXRjaCBmcm9tCisJICBMdWNhcyBCcmFzaWxpbm8gdG8gYWRkIGluZGVudGF0aW9uIHN1cHBvcnQgdG8geG1sV3JpdGVyCisKK0ZyaSBKYW4gIDIgMjI6NTg6MjkgSEtUIDIwMDQgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGVkIHByb2JsZW0gd2l0aCAicmVjdXJzaXZlIiBpbmNsdWRlIChmYWxsYmFjaworCSAgY29udGFpbnMgYW5vdGhlciBpbmNsdWRlIC0gQnVnIDEyOTk2OSkKKworRnJpIEphbiAgMiAxMTo0MDowNiBDRVQgMjAwNCBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYzogZm91bmQgYW5kIGZpeGVkIGEgYnVnIG1pc2FsbG9jYXRpbmcgc29tZSBub24KKwkgIGJsYW5rIHRleHQgbm9kZSBzdHJpbmdzIGZyb20gdGhlIGRpY3Rpb25uYXJ5LgorCSogeG1sbWVtb3J5LmM6IGZpeGVkIGEgcHJvYmxlbSB3aXRoIHRoZSBtZW1vcnkgZGVidWcgbXV0ZXgKKwkgIHJlbGVhc2UuCisKK1dlZCBEZWMgMzEgMjI6MDI6MzcgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGVkIHByb2JsZW0gY2F1c2VkIGJ5IHdyb25nIGRpY3Rpb25hcnkKKwkgIHJlZmVyZW5jZSBjb3VudCwgcmVwb3J0ZWQgb24gdGhlIGxpc3QgYnkgQ2hyaXN0b3BoZXIKKwkgIEdyYXljZS4KKworV2VkIERlYyAzMSAxNTo1NTo1NSBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSwgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IGZpeGVkIHByb2JsZW0KKwkgIHBvaW50ZWQgb3V0IGJ5IFN0w6lwaGFuZSBCaWRvdWwgb24gdGhlIGxpc3QuCisJKiB4aW5jbHVkZS5jLCB4cG9pbnRlci5jLCB4cGF0aC5jLCBpbmNsdWRlL2xpYnhtbC94cG9pbnRlci5oOgorCSAgY29tcGxldGVkIG1vZGlmaWNhdGlvbnMgcmVxdWlyZWQgdG8gZml4IEJ1ZyAxMjk5NjcgKGF0IGxhc3QhKS4KKwkgIE5vdyB3YWl0IHRvIHNlZSBob3cgbG9uZyBiZWZvcmUgZnVydGhlciB0cm91YmxlLi4uCisKK1R1ZSBEZWMgMzAgMTY6MjY6MTMgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHBhcnNlci5jLCB4bWxtZW1vcnkuYywgaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IEZpeGVkCisJICBtZW1vcnkgbGVhayByZXBvcnRlZCBieSBEYXZlIEJlY2tldHQKKwkqIHhtbHNjaGVtYXMuYzogUmVtb3ZlZCBzcHVyaW91cyBjb21tZW50IHJlcG9ydGVkIG9uIHRoZSBtYWlsaW5nCisJICBsaXN0CisJKiB4aW5jbHVkZS5jLCB4cGF0aC5jLCB4cG9pbnRlci5jLCBsaWJ4bWwvaW5jbHVkZS94cG9pbnRlci5oOgorCSAgRnVydGhlciB3b3JrIG9uIEJ1ZyAxMjk5NjcgY29uY2VybmluZyB4cG9pbnRlciByYW5nZSBoYW5kbGluZworCSAgYW5kIHJhbmdlLXRvIGZ1bmN0aW9uOyBtdWNoIGJldHRlciwgYnV0IHN0aWxsIG5vdCBjb21wbGV0ZQorCitNb24gRGVjIDI5IDE4OjA4OjA1IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogeG1sVmFsaWRhdGVFbGVtZW50IGNvdWxkIGNyYXNoIGZvciBlbGVtZW50IGhvbGRpbmcgYSAKKwkgIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBidXQgbm90IGluIGEgbmFtZXNwYWNlLiBPbGl2ZXIgRmlzY2hlciAKKwkgIHByb3ZpZGVkIHRoZSBleGFtcGxlLgorCitNb24gRGVjIDI5IDExOjI5OjMxIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBpc3N1ZSB2YWxpZGF0aW9uIHN0YXR1cyBvbiBzdGRlcnIsIG5vdCBzdGRvdXQgYXMgc3VnZ2VzdGVkCisJICBieSBQYXdlbCBQYWx1Y2hhCisJKiByZXN1bHQvcmVsYXhuZy8qOiB0aGlzIGNoYW5nZSBzbGlnaHRseSBhbGwgdGhlIG91dHB1dCBmcm9tIFJORyAKKwkgIHJlZ3Jlc3Npb25zLgorCitNb24gRGVjIDI4IDEwOjQ3OjMyIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzY2hlbWFzLmM6IGVkaXRlZCBhIGNvdXBsZSBvZiBjb21tZW50cyBpbiBhY2NvcmRhbmNlIHdpdGgKKwkgIHBvc3Rpbmcgb24gdGhlIG1haWxpbmcgbGlzdCAobm8gbG9naWMgY2hhbmdlKQorCSogeHBvaW50ZXIuYzogd29ya2luZyBvbiBCdWcgMTI5OTY3LCBhZGRlZCBjaGVjayBmb3IgTlVMTAorCSAgbm9kZXNldCB0byBwcmV2ZW50IGNyYXNoLiAgRnVydGhlciB3b3JrIHJlcXVpcmVkLgorCSogeHBhdGguYzogd29ya2luZyBvbiBCdWcgMTI5OTY3LCBhZGRlZCBjb2RlIHRvIGhhbmRsZQorCSAgWFBBVEhfTE9DQVRJT05TRVQgaW4gUkFOR0VUTyBjb2RlLCBhbHNvIGFkZGVkIGNvZGUgdG8KKwkgIGhhbmRsZSBpdCBpbiB4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0LiAgRnVydGhlcgorCSAgd29yayByZXF1aXJlZC4KKworU2F0IERlYyAyNyAxMjozMjo1OCBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sc2NoZW1hcy5jOiBhZGRlZCB0ZXN0cyBmb3IgeHM6YWxsIHRvIGFzc3VyZSBtaW5PY2N1cnMKKwkgIGFuZCBtYXhPY2N1cnMgPD0gMSAoQnVnIDEzMDAyMCkKKworU2F0IERlYyAyNyAwOTo1MzowNiBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1scmVnZXhwLmM6IGZpeGVkIHhtbEZBUGFyc2VDaGFyUmFuZ2UgZm9yIFVuaWNvZGUgcmFuZ2VzCisJICB3aXRoIHBhdGNoIGZyb20gQ2hhcmxlcyBCb3plbWFuLgorCitGcmkgRGVjIDI2IDE0OjAzOjQxIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxyZWdleHAuYzogZml4ZWQgcHJvYmxlbSBjYXVzaW5nIHNlZ2ZhdWx0IG9uIHZhbGlkYXRpb24gZXJyb3IKKwkgIGNvbmRpdGlvbiAocmVwb3J0ZWQgb24gbWFpbGluZyBsaXN0KQorCitUaHUgRGVjIDI1IDIxOjE2OjIyIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeGVkIG1pc3NpbmcgZGljdGlvbmFyaWVzIGZvciBNZW1vcnkgYW5kIERvYworCSAgcGFyc2VyIGNvbnRleHRzIChwcm9ibGVtIHJlcG9ydGVkIG9uIG1haWxpbmcgbGlzdCkKKwkqIGRvYy9hcGlidWlsZC5weTogc21hbGwgY2hhbmdlIHRvIHByZXZlbnQgZHVwbGljYXRlIGxpbmVzCisJICBvbiBBUEkgZnVuY3Rpb25zIGxpc3QuICBJdCB3aWxsIHRha2UgZWZmZWN0IHRoZSBuZXh0IHRpbWUKKwkgIHRoZSBkb2NzIGFyZSByZWJ1aWx0LgorCitXZWQgRGVjIDI0IDEyOjU0OjI1IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIE5FV1MgZG9jLyo6IHVwZGF0ZWQgdGhlIGRvY3MgYW5kIHByZXBhcmVkIGEgbmV3CisJICByZWxlYXNlIDIuNi40CisKK1dlZCBEZWMgMjQgMTI6MDc6NTIgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsZWdhY3kuYzogcmVtb3ZlIGRlcHJlY2F0ZWQgd2FybmluZyBvbiBzdGFydEVsZW1lbnQoKQorCitXZWQgRGVjIDI0IDEyOjA0OjM1IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYyByZXN1bHQvWEluY2x1ZGUvbm9kZXMyLio6IFhJbmNsdWRlIHhwb2ludGVyIHN1cHBvcnQKKwkgIHdhcyBicm9rZW4gd2l0aCB0aGUgbmV3IG5hbWVzcGFjZS4gRml4ZXMgIzEyOTkzMgorCitXZWQgRGVjIDI0IDAwOjI5OjMwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaDogdHlwZXMgbWlnaHQgYmUKKwkgIHJlZGVmaW5lZCBpbiBpbmNsdWRlcywgcXVpY2sgZml4IHRvIGFsbG93IHRoaXMgYnV0IGxhY2tzIHRoZSAKKwkgIGVxdWFsaXR5IG9mIHRoZSByZWRlZmluaXRpb24gdGVzdC4KKworVHVlIERlYyAyMyAxNToxNDozNyBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogZml4ZWQgYnVnIGNvbmNlcm5pbmcgdmFsaWRhdGlvbiB1c2luZyBleHRlcm5hbAorCSAgZHRkIG9mIGVsZW1lbnQgd2l0aCBtdXRpcGxlIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMKKwkgIChCdWcgMTI5ODIxKQorCitUdWUgRGVjIDIzIDExOjQxOjQyIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB0cmVlLmM6IGluaGliaXRlZCBwcm9kdWN0aW9uIG9mICIobnVsbCk6IiBpbiB4bWxHZXROb2RlUGF0aAorCSAgd2hlbiBub2RlIGhhcyBkZWZhdWx0IG5hbWVzcGFjZSAoQnVnIDEyOTcxMCkKKworVHVlIERlYyAyMyAwOToyOToxNCBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogc21hbGwgZW5oYW5jZW1lbnQgdG8geG1sWFBhdGhDbXBOb2RlcyB0byBhc3N1cmUKKwkgIGRvY3VtZW50IG9yZGVyIGZvciBhdHRyaWJ1dGVzIGlzIHJldGFpbmVkIChCdWcgMTI5MzMxKQorCitNb24gRGVjIDIyIDE5OjA2OjE2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgeG1scmVhZGVyLmM6IGNoYW5nZSB4bWxSZWFkRmQoKSB4bWxDdHh0UmVhZEZkKCkKKwkgIHhtbFJlYWRlck5ld0ZkKCkgeG1sUmVhZGVyRm9yRmQoKSwgY2hhbmdlIHRob3NlIHRvIG5vdCBjbG9zZQorCSAgdGhlIGZpbGUgZGVzY3JpcHRvci4gVXBkYXRlZCB0aGUgY29tbWVudCwgc2hvdWxkIGNsb3NlICMxMjk2ODMKKworTW9uIERlYyAyMiAwMDozNDowOSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IGZpeGVkIGEgc2VyaW91cyBwcm9ibGVtIGluIFhJbmNsdWRlICMxMjkwMjEKKworU3VuIERlYyAyMSAxMzo1OTo1NCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBidWcgIzEyOTQ4OSwgcHJvcGFnYXRpb24gb2YgcGFyc2luZyBmbGFncyAKKwkgIGluIGVudGl0aWVzLgorCSogcGFyc2VyLmMgeG1scmVhZGVyLmM6IGltcHJvdmVkIHRoZSBjb21tZW50cyBvZiBwYXJzaW5nIG9wdGlvbnMKKworU3VuIERlYyAyMSAxODoxNDowNCBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcHl0aG9uL01ha2VmaWxlLmFtLCBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0sCisJICBkb2MvTWFrZWZpbGUuYW06IGFwcGxpZWQgZml4ZXMgdG8gYWxsb3cgYnVpbGQgZnJvbQorCSAgJ291dHNpZGUnIGRpcmVjdG9yeSAoQnVnIDEyOTE3MikKKworU2F0IERlYyAyMCAxNjo0MjowNyBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiB0cmVlLmMgLSBhZGQgZXhwbGFuYXRpb24gb2YgbmFtZXNwYWNlIGluaGVyaXRhbmNlIHdoZW4KKwlucyBpcyBOVUxMIHRvIHhtbE5ld0NoaWxkIGFuZCB4bWxOZXdUZXh0Q2hpbGQgQVBJIGRvYworCitTYXQgRGVjIDIwIDE4OjE3OjI4IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBpbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oOiB1bmRpZCBsYXN0IGNoYW5nZSAobXkKKwkgIGJhZCkuICBQdXQgbmVjZXNzYXJ5IGZpeCBpbiBsaWJ4c2x0L2xpYmV4c2x0IGluc3RlYWQuCisJKiBpbmNsdWRlL2xpYnhtbC9ET0NCcGFyc2VyLmg6IHB1dCB0ZXN0IGZvciBfX0dDQ19fIG9uCisJICB3YXJuaW5nIGRpcmVjdGl2ZSAoQnVnIDEyOTEwNSkKKworU2F0IERlYyAyMCAxMDo0ODozNyBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogaW5jbHVkZS9saWJ4bWwveHBhdGhJbnRlcm5hbHMuaDogZml4ZWQgeG1sWFBhdGhSZXR1cm5TdHJpbmcKKwkgIHRvIGNhdGVyIGZvciBOVUxMIHBvaW50ZXIgKGJ1ZyAxMjk1NjEpCisJKiBnbG9iYWxzLmM6IGFkZGVkIGNvbW1lbnQgdG8gc3VwcHJlc3MgZG9jdW1lbnRhdGlvbiB3YXJuaW5nCisJKiBkb2MvYXBpYnVpbGQucHk6IGZpeGVkIHByb2JsZW0gd2hpY2ggY2F1c2VkIGxhc3QgQVBJY2h1bmt4eC5odG1sCisJICB0byBiZSBsb3N0LiAgUmVidWlsdCBkb2MvKiAoaW5jbHVkaW5nIGFkZGluZyBBUEljaHVuazI2Lmh0bWwpCisKK0ZyaSBEZWMgMTkgMTg6MjQ6MDIgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogdHJ5aW5nIHRvIGZpeCAjMTI5NjkyIHhtbFRleHRSZWFkZXJFeHBhbmQoKSB3aGVuCisJICB1c2luZyBhbiB4bWxSZWFkZXJXYWxrZXIoKQorCitUaHUgRGVjIDE4IDIwOjEwOjM0IE1TVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIHRyZWUuYzogZml4IG1pc2MuIHR5cG9zIGluIGRvYyBjb21tZW50cworCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBlbGFib3JhdGUgb24gbWFjcm8gZGVmaW5lIGRvYyBjb21tZW50cworCSogZG9jLyo6IHJlYnVpbGQgZG9jcworCitXZWQgRGVjIDE3IDE2OjA3OjMzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2V4YW1wbGVzLyo6IGRvbid0IGNhbGwgdGhlIHJlc3VsdCBmaWxlcyAub3V0IGJ1dCAucmVzIGFzCisJICB0aGUgTWFrZWZpbGVzIHRlbmQgdG8gdHJ5IGdlbmVyYXRpbmcgYmluYXJpZXMgZm9yIC5vdXQgdGFyZ2V0cy4uLgorCitUdWUgRGVjIDE2IDIwOjUzOjU0IE1TVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy9odG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWw6IC0gY3ZzIGFkZCBBUEkgZG9jcyBmb3IgbmV3CisJcGF0dGVybiBzdHVmZgorCitUdWUgRGVjIDE2IDIwOjQwOjQwIE1TVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIHRyZWUuYworCSogZG9jLyo6CisJRWxhYm9yYXRlIGluIGRvY3VtZW50YXRpb24gZGlzY3Vzc2lvbiBvZiB4bWxOZXdDaGlsZAorCWFuZCB4bWxOZXdUZXh0Q2hpbGQuIFRoYW5rcyB0byBTdGV2ZSBMZW50aSBmb3IgcG9pbnRpbmcKKwlvdXQgdGhlIHVzZWZ1bG5lc3Mgb2YgYSBtb3JlIGV4cGxpY2l0IGV4cGxhbmF0aW9uIG9mIHRoZQorCXJlc2VydmVkIGNoYXJhY3RlciBlc2NhcGluZyBpc3N1ZS4KKworRnJpIERlYyAxMiAxNTo1NToxNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGNhdGFsb2cuYzogYXBwbGllZCBwYXRjaCBmcm9tIFN0ZWZhbiBLb3N0CisKK1RodSBEZWMgMTEgMTU6MTU6MzEgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZXhhbXBsZXMvdGVzdFdyaXRlci5jOiBhcHBsaWVkIHNtYWxsIGZpeCBmcm9tIEx1Y2FzIEJyYXNpbGlubworCitUaHUgRGVjIDExIDE0OjU1OjIyIENFVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLiogd2luMzIvY29uZmlndXJlLmpzOiBBZGRlZCBwYXR0ZXJuIHN1cHBvcnQKKworV2VkIERlYyAxMCAxNDoxMToyMCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvKiBsaWJ4bWwuc3BlYy5pbjogcHJlcGFyaW5nIHJlbGVhc2Ugb2YKKwkgIGxpYnhtbDItMi42LjMsIHVwZGF0ZWQgYW5kIHJlZ2VuZXJhdGVkIHRoZSBkb2NzLgorCitXZWQgRGVjIDEwIDExOjQzOjMzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYMi5jIHBhdHRlcm4uYzogcmVtb3ZlZCBzb21lIGNvbXBpbGF0aW9uIHdhcm5pbmdzCisKK1dlZCBEZWMgMTAgMTE6MTY6MjkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmM6IGZpeGluZyBidWcgIzExOTI2NCB4bWxsaW50IGZhaWxpbmcgdG8gcmVwb3J0CisJICBzZXJpYWxpemF0aW9uIGVycm9ycyBpbiBzb21lIGNhc2VzLgorCitUdWUgRGVjICA5IDIzOjUwOjIzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW50aXRpZXMuYzogZml4ZWQgYW4gWE1MIGVudGl0ZXMgY29udGVudCBzZXJpYWxpemF0aW9uIAorCSAgcG90ZW50aWFsbHkgdHJpZ2dlcmVkIGJ5IFhJbmNsdWRlLCBzZWUgIzEyNjgxNworCitUdWUgRGVjICA5IDE2OjEyOjUwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sd3JpdGVyLmM6IGFwcGxpZWQgdGhlIHBhdGNoIHRvIHhtbFRleHRXcml0ZXJTdGFydFBJKCkKKwkgIHN1Z2dlc3RlZCBieSBEYW5pZWwgU2NodWxtYW4gaW4gIzEyODMxMworCitUdWUgRGVjICA5IDE1OjE4OjMyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIE1ha2VmaWxlLmFtOiBhbm90aGVyIHBhdGNoIGZyb20gS2VubmV0aCBIYWxleQorCSAgZm9yIE1pbmd3LCBjLmYuICMxMjg3ODcKKworVHVlIERlYyAgOSAxNTowNzowOSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbGV4cG9ydHMuaDogYXBwbGllZCBwYXRjaCBmcm9tIEtlbm5ldGggSGFsZXkKKwkgIGZvciBjb21waWxpbmcgb24gTWluZ3cgc2VlICMxMjg3ODYKKworVHVlIERlYyAgOSAxNDo1Mjo1OSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogc29tZSBmbGFncyB3ZXJlIG5vdCBwYXNzZWQgZG93biBjb3JyZWN0bHkgYXMKKwkgIHBhcnNpbmcgb3B0aW9ucy4gRml4ZXMgIzEyNjgwNgorCitUdWUgRGVjICA5IDEyOjI5OjI2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYyB4bWxsaW50LmMgeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwveGluY2x1ZGUuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogYXVnbWVudGVkIHRoZSBYSW5jbHVkZSBBUEkKKwkgIHRvIGJlIGFibGUgdG8gcGFzcyBYTUwgcGFyc2VyIGZsYWdzIGRvd24gdG8gdGhlIEluY2x1c2lvbgorCSAgcHJvY2Vzcy4gQWxzbyByZXN5bmNocm9uaXplZCB3aXRoIHRoZSBMYXN0IENhbGwgVzNDIFdvcmtpbmcKKwkgIERyYWZ0IDEwIE5vdmVtYmVyIDIwMDMgZm9yIHRoZSB4cG9pbnRlciBhdHRyaWJ1dGUuCisJKiBNYWtlZmlsZS5hbSB0ZXN0L1hJbmNsdWRlL2RvY3Mvbm9kZXNbMjNdLnhtbCAKKwkgIHJlc3VsdC9YSW5jbHVkZS8qOiBhdWdtZW50ZWQgdGhlIHRlc3RzIGZvciB0aGUgbmV3IG5hbWVzcGFjZSBhbmQKKwkgIHRlc3RpbmcgdGhlIHhwb2ludGVyIGF0dHJpYnV0ZSwgY2hhbmdlZCB0aGUgd2F5IGVycm9yIG1lc3NhZ2VzCisJICBhcmUgdGVzdGVkCisJKiBkb2MvKjogcmVnZW5lcmF0ZWQgdGhlIGRvY3VtZW50YXRpb24KKworTW9uIERlYyAgOCAxODozODoyNiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVycm9yLmM6IGZpbHRlciB3YXJuaW5nIG1lc3NhZ2VzIGlmIHRoZSBnbG9iYWwgc2V0dGluZyBibG9ja3MgdGhlbQorCSogeGluY2x1ZGUuYyB4bWxyZWFkZXIuYyBpbmNsdWRlL2xpYnhtbC94aW5jbHVkZS5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiB1cGRhdGVkIHRoZSBjaGFuZ2Ugb2YgbmFtZXNwYWNlIGF0CisJICB0aGUgWEluY2x1ZGUgbGV2ZWwsIHJhaXNlIGEgd2FybmluZyBpZiB0aGUgb2xkIG9uZSBpcyBmb3VuZCwKKwkgIGFuZCBzb21lIGNsZWFudXAKKworTW9uIERlYyAgOCAxMzowOTozOSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogdGVudGF0aXZlIGZpeCBmb3IgIzEyNjExNyBjaGFyYWN0ZXIgcmVmZXJlbmNlIGluCisJICBhdHRyaWJ1dGVzIG91dHB1dCBwcm9ibGVtIGluIHNvbWUgY29ybmVyY2FzZS4KKworTW9uIERlYyAgOCAxMTowODo0NSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwucHk6IHRyaWVkIHRvIGZpeCB0aGUgcHJvYmxlbXMgcmVwb3J0ZWQgaW4gCisJICBidWcgIzEyNjczNQorCSogeHBhdGguYyBTQVgyLmMgZXJyb3IuYyBwYXJzZXIuYyB2YWxpZC5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6CisJICBmaXhlZCBhZ2FpbiBzb21lIHByb2JsZW0gdHJ5aW5nIHRvIHVzZSB0aGUgc3RydWN0dXJlZCBlcnJvcgorCSAgaGFuZGxlcnMsIGMuZi4gYnVnICMxMjY3MzUKKwkqIHJlc3VsdC9WQy9FbGVtZW50VmFsaWQ6IHRpbnkgY2hhbmdlIGR1ZSB0byB0aGUgZml4CisKK1N1biBEZWMgIDcgMjI6Mjc6MzEgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlcnJvci5jOiBmaXhlZCBfX3htbFJhaXNlRXJyb3IgdG8gdXNlIHN0cnVjdHVyZWQgZXJyb3IgaGFuZGxlcnMKKwkgIGRlZmluZWQgYnkgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYygpLCBmaXhlcyBidWcgIzEyNjIxMQorCitTdW4gRGVjICA3IDIwOjMwOjUzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGF0dGVtcHQgdG8gZml4ICMxMjYyMTEgLi4uIAorCitGcmkgRGVjICA1IDE3OjA3OjI5IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGF0dGVybi5jIHhtbHJlYWRlci5jIHhtbGxpbnQuYyBpbmNsdWRlL2xpYnhtbC9wYXR0ZXJuLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiBmaXhlZCB0aGUgcGF0dGVybiBpbnRlcmZhY2VzCisJICBidXQgbm90IHlldCB0aGUgcGFyc2VyIHRvIGhhbmRsZSB0aGUgbmFtZXNwYWNlcy4KKwkqIGRvYy9leGFtcGxlcy9yZWFkZXIzLmMgZG9jLyo6IGZpeGVkIHRoZSBleGFtcGxlLCByZWJ1aWx0IHRoZSBkb2NzLgorCitGcmkgRGVjICA1IDE1OjQ5OjQ0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2xvYmFscy5jIHhtbHdyaXRlci5jIGRvYy9hcGlidWlsZC5weSBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggCisJICBpbmNsdWRlL2xpYnhtbC9wYXR0ZXJuLmggaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxleHBvcnRzLmggaW5jbHVkZS9saWJ4bWwveG1sd3JpdGVyLmg6IGNsZWFudXAKKwkgIHRoZSBtYWtlIHJlYnVpbGQgaW4gZG9jLCB0aGlzIGluY2x1ZGUgbmV3IGRpcmVjdGl2ZSB0byBzdG9wCisJICBkb2N1bWVudGF0aW9uIHdhcm5pbmdzCisJKiBkb2MvKiBkb2MvaHRtbC8qOiByZWJ1aWx0IHRoZSBkb2NzCisJKiBwYXR0ZXJuLmMgeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwvcGF0dGVybi5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaDogYWRkaW5nIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4oKQorCSAgdG8gc2F2ZSBub2RlcyB3aGlsZSBzY2FubmluZyB0aGUgdHJlZSB3aXRoIHRoZSByZWFkZXIsIGNsZWFudXAKKwkgIHRoZSB3YXkgZWxlbWVudCB3ZXJlIGZyZWVkLCBhbmQgeG1sVGV4dFJlYWRlclByZXNlcnZlKCkKKwkgIGltcGxlbWVudGF0aW9uLCB0aGUgQVBJIG1pZ2h0IGNoYW5nZSBmb3IgbmFtZXNwYWNlIGJpbmRpbmcgc3VwcG9ydAorCSAgd2hlbiBjb21waWxpbmcgcGF0dGVybnMuCisJKiBkb2MvZXhhbXBsZXMvKjogYWRkZWQgcmVhZGVyMy5jIGV4cG9zaW5nIHRoZSB4bWxUZXh0UmVhZGVyUHJlc2VydmUoKQorCitUaHUgRGVjICA0IDE1OjEwOjU3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5weTogb29wcyBmb3Jnb3QgdG8gbW9kaWZ5L2NvbW1pdCB0aGUgbmV3IGNvZGUuCisKK1RodSBEZWMgIDQgMTM6Mjk6MTkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sX3dyYXAuaDoKKwkgIGNsZWFudXAgdGhlIG91dHB1dCBidWZmZXIgc3VwcG9ydCB0byBhdCBsZWFzdCBnZXQgdGhlIGJhc2ljCisJICB0byB3b3JrCisJKiBweXRob24vdGVzdHMvb3V0YnVmLnB5IHB5dGhvbi90ZXN0cy9zZXJpYWxpemUucHk6IGZpeGVzIGFuZAorCSAgY2xlYW51cC4KKwkqIGluY2x1ZGUvbGlieG1sL3htbHdyaXRlci5oOiBjbGVhbnVwCisKK1dlZCBEZWMgIDMgMjE6Mzg6NTYgTVNUIDIwMDMgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluCisJKiBkb2MvKjogYWRkIFdJVEhfVFJJTyBjb21tZW50IHNvIGl0IHNob3dzIHVwIGluIHRoZSBkb2NzLCByZWJ1aWxkCisJICBkb2NzCisKK1dlZCBEZWMgIDMgMTM6MTA6MDggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWcuaC5pbiBjb25maWd1cmUuaW4geG1scmVnZXhwLmM6IGZpeCBidWcgIzEyODQwMSBhZmZlY3RpbmcKKwkgIHJlZ2V4cCBxdWFudGlmaWVycworCitUdWUgRGVjICAyIDIzOjI5OjU2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGF0dGVybi5jIGluY2x1ZGUvbGlieG1sL3BhdHRlcm4uaDogYWRkaW5nIHRoZSBwYXR0ZXJuIG5vZGUKKwkgIHNlbGVjdGlvbiBjb2RlLiBJbmhlcmllZCBpbiBwYXJ0IGZyb20gbGlieHNsdCBidXQgc21hbGxlci4KKwkqIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbiBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46CisJICBpbnRlZ3JhdGVkIHRoZSBwYXR0ZXJuIG1vZHVsZSwgbWFkZSBpdCBhIGNvbmZpZ3VyZSB0aW1lIG9wdGlvbgorCSogeG1sbGludC5jOiBhZGRlZCAtLXBhdHRlcm4gdG8gdGVzdCB3aGVuIGRvaW5nIC0tc3RyZWFtCisKK1R1ZSBEZWMgIDIgMTE6MjU6MjUgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogZml4ZWQgYSBwcm9ibGVtIGluIHhtbHJlYWRlciB2YWxpZGF0aW9uIHdoZW4KKwkgIHN0cmVhbWluZyBleHBvc2VkIGJ5IHJlYWRlcjIgZXhhbXBsZS4KKworTW9uIERlYyAgMSAyMDo0MDo1MSBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sLmh0bWwKKwkqIGRvYy9kb2NzLmh0bWw6CisJYWRkIHJlZmVyZW5jZSB0byB0aGUgQ29kZSBFeGFtcGxlcyBwYWdlIHRvIGRvY3MuaHRtbCBsaXN0CisJb2YgcmVzb3VyY2VzCisKK01vbiBEZWMgIDEgMTI6MzA6MjggQ0VUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUuYmNiIHdpbjMyL2NvbmZpZ3VyZS5qczogQXBwbGllZCB0aGUgQkNCIHBhdGNoCisJICBmcm9tIEVyaWMKKworU3VuIE5vdiAzMCAyMTozMzozNyBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBpbmNsdWRlL2xpYnhtbC94aW5jbHVkZS5oCisJKiBkb2MvKjogQWRkIGNvbW1lbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyBpbiB4aW5jbHVkZS5oIGFuZAorCXJlYnVpbGQgdGhlIGRvY3MKKworU3VuIE5vdiAzMCAyMTowNjoyOSBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MvZG9jZGVzY3IuZG9jCisJVXBkYXRpbmcgV2lsbGlhbSdzIGV4cGxhbmF0aW9uIG9mIGhvdyB0byBidWlsZCBkb2NzLCAKKwlyZWZsZWN0aW5nIERhbmllbCdzIG5ldyBkb2NzIGJ1aWxkIHN5c3RlbQorCitTYXQgTm92IDI5IDE4OjM4OjIyIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxtZW1vcnkuYzogZW5oYW5jZWQgYnkgYWRkaW5nIG11dGV4IHRvIHByb3RlY3QgZ2xvYmFsCisJICBzdHJ1Y3R1cmVzIGluIGEgbXVsdGktdGhyZWFkaW5nIGVudmlyb25tZW50LiAgVGhpcyBmaXhlZAorCSAgc29tZSByYW5kb20gZXJyb3JzIG9uIHRoZSBUaHJlYWRzIHJlZ3Jlc3Npb24gdGVzdHMuCisKK0ZyaSBOb3YgMjggMjE6Mzk6NDkgTVNUIDIwMDMgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbC5odG1sIGRvYy9weXRob24uaHRtbDogZml4IHRzdC5weSB0ZXh0LCB3aGljaCBkaWRuJ3QKKwkgIGltcG9ydCBzeXMKKworRnJpIE5vdiAyOCAxNzoyODo0NyBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZW5jb2RpbmcuYywgaW5jbHVkZS9saWJ4bWwvZW5jb2RpbmcuaDogRW5oYW5jZWQgdGhlIGhhbmRsaW5nIG9mCisJICBVVEYtMTYsIFVURi0xNkxFIGFuZCBVVEYtMTZCRSBlbmNvZGluZ3MuICBOb3cgVVRGLTE2IG91dHB1dCBpcworCSAgaGFuZGxlZCBpbnRlcm5hbGx5IGJ5IGRlZmF1bHQsIHdpdGggcHJvcGVyIEJPTSBhbmQgVVRGLTE2TEUKKwkgIGVuY29kaW5nLiAgTmF0aXZlIFVURi0xNkxFIGFuZCBVVEYtMTZCRSBlbmNvZGluZyB3aWxsIG5vdCBnZW5lcmF0ZQorCSAgQk9NIG9uIG91dHB1dCwgYW5kIHdpbGwgYmUgYXV0b21hdGljYWxseSByZWNvZ25pemVkIG9uIGlucHV0LgorCSogdGVzdC91dGYxNmxlYm9tLnhtbCwgdGVzdC91dGYxNmJlYm9tLnhtbCwgcmVzdWx0L3V0ZjE2P2Vib20qOgorCSAgYWRkZWQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgYWJvdmUuCisKK1RodSBOb3YgMjcgMTk6MjU6MTAgQ0VUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUuKiB3aW4zMi9jb25maWd1cmUuanM6IE1vZGlmaWVkIHRvIGFsbG93IGNvZXhpc3RlbnQgCisJICBidWlsZCB3aXRoIGFsbCBjb21waWxlcnMuIEFkZGVkIEMtUnVudGltZSBvcHRpb24gZm9yIE1TVkMuIEluY2x1ZGVkCisJICB4bWxXcml0ZXIuCisJKiB4bWx3cml0ZXIuYzogQWRkZWQgSU5fTElCWE1MIG1hY3JvCisKK1dlZCBOb3YgMjYgMjE6NTQ6MDEgQ0VUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUuYmNiOiBhcHBsaWVkIHBhdGNoIGZyb20gRXJpYworCitXZWQgTm92IDI2IDIxOjMzOjE0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBzdGVmYW4gb24gSVJDIHBvaW50ZWQgb3V0IHRoYXQgWE1MX0dFVF9MSU5FCisJICBpcyBicm9rZW4gb24gMi42LngKKworVHVlIE5vdiAyNSAxODozOTo0NCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVudGl0aWVzLmM6IGZpeGVkICMxMjc4NzcsIG5ldmVyIG91dHB1dCAmcXVvdDsgaW4gZWxlbWVudCBjb250ZW50CisJKiByZXN1bHQvaXNvbGF0MyByZXN1bHQvc2xhc2hkb3QxNi54bWwgcmVzdWx0L25vZW50L2lzb2xhdDMKKwkgIHJlc3VsdC9ub2VudC9zbGFzaGRvdDE2LnhtbCByZXN1bHQvdmFsaWQvUkVDLXhtbC0xOTk4MDIxMC54bWwKKwkgIHJlc3VsdC92YWxpZC9pbmRleC54bWwgcmVzdWx0L3ZhbGlkL3hsaW5rLnhtbDogdGhpcyBjaGFuZ2VzIHRoZQorCSAgb3V0cHV0IG9mIGEgZmV3IHRlc3RzCisKK1R1ZSBOb3YgMjUgMTY6MzY6MjEgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmggaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaAorCSAgdGVzdFNjaGVtYXMuYyB4bWxzY2hlbWFzLmM6IGFkZGVkIHhzZDppbmNsdWRlIHN1cHBvcnQsIGZpeGVkCisJICB0ZXN0U2NoZW1hcyBiZWhhdmlvdXIgd2hlbiBhIHNjaGVtYXMgZmFpbGVkIHRvIHBhcnNlLgorCSogdGVzdC9zY2hlbWFzL3Zkdi0qIHJlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDVfMF8wKjogYWRkZWQgb25lCisJICB0ZXN0IGZvciB4c2Q6aW5jbHVkZSBmcm9tIEVyaWMgVmFuIGRlciBWbGlzdAorCitUdWUgTm92IDI1IDA4OjE4OjEyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHN3YXBwZWQgdGhlIGF0dHJpYnV0ZSBkZWZhdWx0aW5nIGFuZCBhdHRyaWJ1dGUgY2hlY2tpbmcKKwkgIHBhcnRzIG9mIHBhcnNpbmcgYSBuZXcgZWxlbWVudCBzdGFydCwgZml4ZXMgYnVnICMxMjc3NzIKKwkqIHJlc3VsdC92YWxpZC8xMjc3NzIuKiB0ZXN0L3ZhbGlkLzEyNzc3Mi54bWwKKwkgIHRlc3QvdmFsaWQvZHRkcy8xMjc3NzIuZHRkOiBhZGRlZCB0aGUgZXhhbXBsZSBpbiB0aGUgcmVncmVzc2lvbiB0ZXN0cworCitUdWUgTm92IDI1IDA4OjAwOjE1IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IG1vdmVkIHhtbENsZWFudXBUaHJlYWRzKCkgdG8gdGhlIGVuZCBvZiB4bWxDbGVhbnVwUGFyc2VyKCkKKwkgIHRvIGF2b2lkIGJ1ZyAjMTI3ODUxCisKK01vbiBOb3YgMjQgMTU6MjY6MjEgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYzogZml4aW5nIHNvbWUgTmVnYXRpdmUgQ2hhcmFjdGVyIEdyb3VwIGFuZAorCSAgQ2hhcmFjdGVyIENsYXNzIFN1YnRyYWN0aW9uIGhhbmRsaW5nLgorCitNb24gTm92IDI0IDE0OjAxOjU3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmMgeG1sc2NoZW1hcy5jOiBtb3JlIFhNTCBTY2hlbWFzIGZpeGVzIGJhc2VkCisJICBvbiBFcmljIHZhbiBkZXIgVmxpc3QgZXhhbXBsZXMKKwkqIHJlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDQqIHRlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0KjoKKwkgIGFkZGVkIHJlZ3Jlc3Npb24gdGVzdHMKKwkqIGRvYy9leGFtcGxlcy9NYWtlZmlsZS5hbSBkb2MvZXhhbXBsZXMvaW5kZXgucHk6IGRvIG5vdAorCSAgcmVnZW5lcmF0ZSB0aGUgaW5kZXggb24gbWFrZSBhbGwgdGFyZ2V0LCBidXQgb25seSBvbgorCSAgbWFrZSByZWJ1aWxkIHRvIGF2b2lkIHRyb3VibGVzLgorCitTYXQgTm92IDIyIDIxOjM1OjQyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmgKKwkgIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaDogbG90IG9mIGJ1ZyBmaXhlcywgY2xlYW51cCwKKwkgIHN0YXJ0aW5nIHRvIGFkZCBwcm9wZXIgbmFtZXNwYWNlIHN1cHBvcnQgdG9vLgorCSogdGVzdC9zY2hlbWFzLyogcmVzdWx0L3NjaGVtYXMvKjogYWRkZWQgYSBudW1iZXIgb2YgdGVzdHMKKwkgIGZpeGVkIHRoZSByZXN1bHQgZnJvbSBzb21lIHJlZ3Jlc3Npb24gdGVzdHMgdG9vLgorCitGcmkgTm92IDIxIDIwOjUwOjU5IE1TVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy94bWwuaHRtbCwgZG9jcy5odG1sOiByZW1vdmUgcmVmZXJlbmNlIHRvIGd0ay1kb2Mgbm93IHRoYXQKKwlEYW5pZWwgaGFzIHJlbW92ZWQgaXQsIGZpeCBsaW5rIHRvIEdlb3JnZSdzIElCTSBhcnRpY2xlLCBvdGhlcgorCW1pbm9yIGVkaXRzCisKK0ZyaSBOb3YgMjEgMDE6MjY6MDAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBSb2JlcnQgU3RlcGFuZWsgdG8gc3RhcnQgCisJICBpbXBvcnQgb3Mgc2NoZW1hcyBzdXBwb3J0LCBjbGVhbmVkIHVwIHN0dWZmIGFuZCB0aGUgcGF0Y2guCisJKiB0ZXN0L3NjaGVtYXMvaW1wb3J0MF8wLiogcmVzdWx0L3NjaGVtYXMvaW1wb3J0MF8wXzAqOiBhZGRlZCB0ZXN0CisJICB0byByZWdyZXNzaW9uLCBmaXhlZCBhIGZldyByZWdyZXNzaW9ucyB0b28uCisKK1RodSBOb3YgMjAgMjI6NTg6MDAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFwcGxpZWQgdHdvIHBhcnNpbmcgZml4ZXMgZnJvbSBKYW1lcyBCdXJzYQorCitUaHUgTm92IDIwIDE5OjIwOjQ2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2V4YW1wbGVzLyo6IGFkZGVkIHR3byB4bWxSZWFkZXIgZXhhbXBsZXMKKwkqIHhtbHJlYWRlci5jOiBjbGVhbmVkIHVwIHNvbWUgYnVncyBpbiB0aGUgcHJvY2VzcworCitUaHUgTm92IDIwIDEyOjU0OjMwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sd3JpdGVyLmMgaW5jbHVkZS9saWJ4bWwveG1sd3JpdGVyLmg6IGFwcGxpZWQgcGF0Y2ggZnJvbQorCSAgQWxmcmVkIE1pY2thdXRzY2gsIGJ1Z2ZpeGVzIGFuZCBjb21tZW50cworCSogZG9jL2V4YW1wbGVzLyo6IGFkZGVkIGhpcyB0ZXN0IGFzIHRoZSB4bWxXcml0ZXIgZXhhbXBsZQorCSogZG9jL2h0bWwvIGRvYy8qLmh0bWw6IHRoaXMgcmVzdWx0ZWQgaW4gc29tZSBpbXByb3ZlbWVudHMKKwkqIGluY2x1ZGUvbGlieG1sL2hhc2guaDogZml4ZWQgYW4gaW5jbHVzaW9uIHByb2JsZW0gd2hlbgorCSAgPGxpYnhtbC9oYXNoLmg+IHdhc24ndCBwcmVjZWVkZWQgYnkgPHhtbC9wYXJzZXIuaD4KKworV2VkIE5vdiAxOSAxNzoxOTozNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IGZpeCBhbiBlcnJvciBtZXNzYWdlCisJKiBkb2MvZXhhbXBsZXMvKjogYWRkZWQgdHJlZTIgZXhhbXBsZSBmcm9tIEx1Y2FzIEJyYXNpbGlubworCitXZWQgTm92IDE5IDE3OjUwOjQ3IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MvbmV3YXBpLnhzbDogaW1wcm92ZSB0aGUgc29ydCBzZXF1ZW5jZSBmb3IgcGFnZSBjb250ZW50CisJKiBkb2MvaHRtbC8qLmh0bWw6IHJlZ2VuZXJhdGUgdGhlIHdlYiBwYWdlcworCitXZWQgTm92IDE5IDAwOjQ4OjU2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGRvIG5vdCBwYWNrYWdlIGN2cyB2ZXJzaW9uaW5nIHRlbXAgZmlsZXMuCisJKiBkb2MvYXBpYnVpbGQucHkgZG9jL2xpYnhtbDItYXBpLnhtbCBkb2MvbmV3YXBpLnhzbDogbW9yZSBjbGVhbnVwLAorCSAgc2xpZ2h0bHkgaW1wcm92ZWQgdGhlIEFQSSB4bWwgZm9ybWF0LCBmaXhlZCBhIGxvdCBvZiBzbWFsbAorCSAgcmVuZGVyaW5nIHByb2JsZW1zCisJKiBkb2MvaHRtbC9saWJ4bWwqLmh0bWw6IHJlYnVpbHQKKworVHVlIE5vdiAxOCAyMTo1MToxNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sLyouaCBpbmNsdWRlL2xpYnhtbC8qLmguaW46IG1vZGlmaWVkIHRoZSBmaWxlCisJICBoZWFkZXIgdG8gYWRkIG1vcmUgaW5mb3JtYXRpb25zLCBwYWluZnVsLi4uCisJKiBnZW5DaFJhbmdlcy5weSBnZW5Vbmljb2RlLnB5OiB1cGRhdGVkIHRvIGdlbmVyYXRlIHNhaWQgY2hhbmdlcworCSAgaW4gaGVhZGVycworCSogZG9jL2FwaWJ1aWxkLnB5OiBleHRyYWN0IGhlYWRlcnMsIGFkZCB0aGVtIHRvIGxpYnhtbDItYXBpLnhtbAorCSogKi5odG1sICoueHNsICoueG1sOiB1cGRhdGVkIHRoZSBzdHlsZXNoZWV0cyB0byBmbGFnIGdlcHJlY2F0ZWQKKwkgIEFQSXMgbW9kdWxlcy4gVXBkYXRlZCB0aGUgc3R5bGVzaGVldHMsIHNvbWUgY2xlYW51cHMsIHJlZ2VuZXJhdGVkCisJKiBkb2MvaHRtbC8qLmh0bWw6IHJlZ2VuZXJhdGVkIGFkZGVkIGJhY2sgYm9vazEgYW5kIGxpYnhtbC1saWIuaHRtbAorCitUdWUgTm92IDE4IDE0OjQzOjE2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL01ha2VmaWxlLmFtIGRvYy8qLnhzbCBkb2MvKi5odG1sIGRvYy9hcGlidWlsZC5weTogY2xlYW5lZCB1cAorCSAgdGhlIGJ1aWxkIHByb2Nlc3MgdG8gcmVtb3ZlIGFsbCByZW1haW5zIGZyb20gdGhlIG9sZCBndGstZG9jCisJICBpbmhlcml0ZWQsIGxpYnhtbDItcmVmcy54bWwgaXMgbm93IGdlbmVyYXRlZCBieSBhcGlidWlsZC5weSwgdGhlCisJICBzdHlsZXNoZWV0cyBoYXZlIGJlZW4gaW1wcm92ZWQsIGFuZCB0aGUgQVBJKmh0bWwgbm93IGdlbmVyYXRlZAorCSAgYXJlIFhIVE1MMSB2YWxpZCB0b28KKworVHVlIE5vdiAxOCAxNDoyODozMiBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDxtbW0uY29tLmhrPgorCisJKiBnZW5DaFJhbmdlcy5weSwgY2h2YWxpZC5jLCBpbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmg6IG1pbm9yCisJICBlbmhhbmNlbWVudCB0byBwcmV2ZW50IGNvbW1lbnQgd2l0aCB1bnJlZmVyZW5jZWQgdmFyaWFibGUuCisJKiB0aHJlYWRzLmMgeG1scmVhZGVyLmMgeG1sd3JpdGVyLmM6IGVkaXRlZCBzb21lIGNvbW1lbnRzIHRvCisJICBpbXByb3ZlIGF1dG8tZ2VuZXJhdGlvbiBvZiBkb2N1bWVudGF0aW9uCisJKiBhcGlidWlsZC5weTogbWlub3IgY2hhbmdlIHRvIGFuIGVycm9yIG1lc3NhZ2UKKworTW9uIE5vdiAxNyAxNzo1NTo1MSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9hcGlidWlsZC5weSBkb2MvbGlieG1sMi1hcGkueG1sIGRvYy9uZXdhcGkueHNsOiBtb3JlIGNsZWFudXAsCisJICBpbXByb3ZpbmcgbmF2aWdhdGlvbgorCSogZG9jL2h0bWwvKi5odG1sOiB1cGRhdGVkIHRoZSByZXN1bHQKKworTW9uIE5vdiAxNyAxNDo1NDozOCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9NYWtlZmlsZS5hbSBkb2MvYXBpYnVpbGQucHkgZG9jL2xpYnhtbDItYXBpLnhtbCBkb2MvbmV3YXBpLnhzbDoKKwkgIGltcHJvdmVtZW50IG9mIHRoZSBzdHlsZXNoZWV0cywgZml4ZWQgYSBBUEkgZ2VuZXJhdGlvbiBwcm9ibGVtLAorCSAgc3dpdGNoZWQgdGhlIHN0eWxlc2hlZXQgYW5kIE1ha2VmaWxlIHRvIGJ1aWxkIHRoZSBIVE1MIG91dHB1dC4KKwkqIGRvYy9odG1sLyouaHRtbDogY29tcGxldGUgdXBkYXRlLCBkaXRjaGVkIHNvbWUgb2xkIGZpbGVzLCBtaWdodAorCSAgaW50cm9kdWNlIHNvbWUgYnJlYWthZ2UuLi4KKworTW9uIE5vdiAxNyAxMjo1MDoyOCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9uZXdhcGkueHNsOiBsb3Qgb2YgaW1wcm92ZW1lbnRzLCB0aGlzIHN0YXJ0cyBsb29raW5nIGdvb2QKKwkgIGVub3VnaCB0byBiZSB1c2FibGUuCisKK01vbiBOb3YgMTcgMDA6NTg6MDkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvbmV3YXBpLnhzbDogc3R5bGVzaGVldCB0byBidWlsZCBIVE1MIHBhZ2VzIGZyb20gdGhlCisJICBBUEkgWE1MIGRlc2NyaXB0aW9uLCBXb3JrIGluIFByb2dyZXNzCisKK1N1biBOb3YgMTYgMTY6MDM6MjQgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IGZpeGVkIGJ1ZyAxMjY5NzYgKHN0cmluZyAhPSBlbXB0eSBub2Rlc2V0CisJICBzaG91bGQgYmUgZmFsc2UpCisKK1N1biBOb3YgMTYgMTQ6MDA6MDggSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGRvYy9odG1sLyouaHRtbDogRmluYWxseSAtIGZvdW5kIHRoZSBwcm9ibGVtIHdpdGggdGhlCisJICBwYWdlIGdlbmVyYXRpb24gKFhNTFBVQkZVTiBub3QgcmVjb2duaXplZCBieSBndGtkb2MpLgorCSAgUmUtY3JlYXRlZCB0aGUgcGFnZXMgdXNpbmcgYSB0ZW1wb3JhcnkgdmVyc2lvbiBvZgorCSAgaW5jbHVkZS9saWJ4bWwvKi5oLgorCSogdGVzdE9PTWxpYi5jLGluY2x1ZGUvbGlieG1sL2VuY29kaW5nLmgsCisJICBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmgsaW5jbHVkZS9saWJ4bWwvdmFsaWQuaCwKKwkgIGluY2x1ZGUvbGlieG1sL3hsaW5rLmgsaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmgsCisJICBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaC5pbiwKKwkgIGluY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmg6IG1pbm9yIGVkaXQgb2YgY29tbWVudHMKKwkgIHRvIGhlbHAgYXV0b21hdGljIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbgorCSogZG9jL2RvY2Rlc2NyLmRvYzogc21hbGwgZWxhYm9yYXRpb24KKwkqIGRvYy9leGFtcGxlcy90ZXN0MS5jLGRvYy9leGFtcGxlcy9NYWtlZmlsZS5hbTogcmUtY29tbWl0CisJICAobWVzc2VkIHVwIG9uIGxhc3QgdHJ5KQorCSogeG1scmVhZGVyLmM6IG1pbm9yIGNoYW5nZSB0byBjbGVhciB3YXJuaW5nLgorCitTYXQgTm92IDE1IDE5OjIwOjMyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogQ29weXJpZ2h0OiBmaXhlZCBzb21lIHdvcmRpbmcKKwkqIGxpYnhtbC5zcGVjLmluOiBtYWtlIHN1cmUgZG9jL2V4YW1wbGVzIGlzIHBhY2thZ2VkCisJKiBpbmNsdWRlL2xpYnhtbC90cmVlLmggdmFsaWQuYyB4bWxyZWFkZXIuYzogZml4ZWQgdGhlIHJlYWxseQorCSAgYW5ub3lpbmcgcHJvYmxlbSBhYm91dCB4bWxSZW1vdmVJRCBhbmQgeG1sUmVhZGVyIHN0cmVhbWluZy4KKwkgIFRoaW5nIGxvb2tzIGZpeGVkIG5vdywgaGFkIHRvIGFkZCBhIGRvYyByZWZlcmVuY2UgdG8gdGhlCisJICB4bWxJRCBzdHJ1Y3R1cmUgdGhvdWdoLi4uCisKK1NhdCBOb3YgMTUgMDk6NTM6MzYgTVNUIDIwMDMgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL2RvY2Rlc2NyLmRvYzogYWRkZWQgZGVzY3JpcHRpb24gb2YgbWFuIHBhZ2UgYnVpbGRpbmcKKworU2F0IE5vdiAxNSAxOTowODoyMiBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZG9jL2h0bWwvbGlieG1sLWNodmFsaWQuaHRtbCwgZG9jL2h0bWwvbGlieG1sLWRpY3QuaHRtbCwKKwkgIGRvYy9odG1sL2xpYnhtbC1saXN0Lmh0bWwsIGRvYy9odG1sL2xpYnhtbC10ZXN0T09NbGliLmh0bWwsCisJICBkb2MvaHRtbC9saWJ4bWwtd2luY2Vjb21wYXQsIGRvYy9odG1sL3dpbnNvY2tjb21wYXQuaHRtbCwKKwkgIGRvYy9odG1sL2xpYnhtbC14bWxleHBvcnRzLmh0bWwsIGRvYy9odG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwsCisJICBkb2MvaHRtbC9saWJ4bWwteG1sd2luMzJ2ZXJzaW9uLmh0bWwsIGRvYy9odG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbDoKKwkgIGFkZGVkIG1pc3NpbmcgcGFnZXMgZm9yIHRoZSB3ZWJzaXRlLgorCitTYXQgTm92IDE1IDE4OjIzOjQ4IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MvTWFrZWZpbGUuYW0gZG9jLyouaHRtbCBkb2MvaHRtbC8qLmh0bWw6IHJlYnVpbHQgdGhlCisJICBnZW5lcmF0ZWQgcGFnZXMgKGFnYWluKSwgbWFudWFsbHkgcmVzdG9yZWQgZG9jL2h0bWwvaW5kZXguaHRtbAorCSAgYW5kIG1hbnVhbGx5IGVkaXRlZCBnZW5lcmF0ZWQgZmlsZSBkb2MvZ25vbWUteG1sLnhtbCB0byBwdXQKKwkgIGluIGFwcHJvcHJpYXRlIGhlYWRpbmdzLgorCSogZG9jL2RvY2Rlc2NyLmRvYzogbmV3IGZpbGUgdG8gZGVzY3JpYmUgZGV0YWlscyBvZiB0aGUKKwkgIGRvY3VtZW50IGdlbmVyYXRpb24gKGhlbHBzIG15IG1lbW9yeSBmb3IgdGhlIG5leHQgdGltZSkKKwkqIGdlbkNoUmFuZ2VzLnB5LGNodmFsaWQuYyxpbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmg6IG1pbm9yCisJICBlbmhhbmNlbWVudCB0byBwbGVhc2UgdGhlIGF1dG9tYXRpYyBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24uCisKK0ZyaSBOb3YgMTQgMjM6NDc6MzEgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGNhdGFsb2cuYyxyZWxheG5nLmMsdGVzdEF1dG9tYXRhLmMseHBvaW50ZXIuYyxnZW5DaFJhbmdlcy5weSwKKwkgIGNodmFsaWQuYyxpbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmgsZG9jL2V4YW1wbGVzL3Rlc3QxLmM6CisJICBtaW5vciBlcnJvciBjbGVhbnVwIGZvciBnY2MtMy4zLlsxMl0gY29tcGlsYXRpb24gd2FybmluZ3MuCisKK0ZyaSBOb3YgMTQgMTU6MDg6MTMgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHRyZWUuYzogbWlub3IgY2hhbmdlcyB0byBzb21lIGNvbW1lbnRzCisJKiBkb2MvKi5odG1sOiByZWJ1aWx0IHRoZSBnZW5lcmF0ZWQgSFRNTCBwYWdlcyBmb3IgY2hhbmdlcworCSAgZnJvbSBqZmxlY2sgKGJ1ZyAxMjY5NDUpCisKK1RodSBOb3YgMTMgMTI6NDQ6MTQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvZXhhbXBsZXMvKjogYWRkZWQgRG9kamkncyBleGFtcGxlLCBhZGRlZCBvdXRwdXQgaGFuZGxpbmcKKworVGh1IE5vdiAxMyAxMTozNTozNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9leGFtcGxlcy8qOiBhZGRlZCBBbGVrc2V5IFhQYXRoIGV4YW1wbGUsIGZpeGVkIGJ1Z3MKKwkgIGluIHRoZSBpbmRleGVyCisKK1dlZCBOb3YgMTIgMjM6NDg6MjYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvKjogaW50ZWdyYXRpbmcgdGhlIGV4YW1wbGVzIGluIHRoZSBuYXZpZ2F0aW9uIG1lbnVzCisJKiBkb2MvZXhhbXBsZXMvKjogYWRkZWQgbWFrZSB0ZXN0cywgdXBkYXRlZCB0aGUgbmF2aWdhdGlvbiwKKwkgIGFkZGVkIGEgbmV3IHRlc3QsIGNsZWFudXBzLCB1cGRhdGVzLgorCitXZWQgTm92IDEyIDE3OjUwOjM2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jLyouaHRtbDogcmVidWlsdCB0aGUgZ2VuZXJhdGVkIEhUTUwgcGFnZXMKKwkqIGRvYy9leGFtcGxlcy8qOiB1cGRhdGVkIHRoZSBzdHlsZXNoZWV0cywgYWRkZWQgYSBzeW5vcHNpcywKKwkgIE1ha2VmaWxlLmFtIGlzIG5vdyBnZW5lcmF0ZWQgYnkgaW5kZXgucHkKKworV2VkIE5vdiAxMiAwMTozODoxNiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9zaXRlLnhzbCBkb2MvZXhhbXBsZXMvTWFrZWZpbGUuYW0gZG9jL2V4YW1wbGVzL2luZGV4Lmh0bWw6CisJICBhZGRlZCBhdXRvZ2VuZXJhdGlvbiBvZiBhIHdlYiBwYWdlIGZvciB0aGUgZXhhbXBsZXMKKwkqIGRvYy9leGFtcGxlcy9leGFtcGxlMS5jIGRvYy9leGFtcGxlcy8uY3ZzaWdub3JlCisJICBkb2MvZXhhbXBsZXMvZXhhbXBsZXMueG1sIGRvYy9leGFtcGxlcy9pbmRleC5weTogdXBkYXRlZCB0aGUKKwkgIGluZm9ybWF0aW9ucyBleHRyYWN0ZWQsIGltcHJvdmVkIHRoZSBmb3JtYXQgYW5kIGluZGV4aW5nLgorCitUdWUgTm92IDExIDIyOjA4OjU5IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2hlY2steGluY2x1ZGUtdGVzdC1zdWl0ZS5weTogbGVzcyB2ZXJib3NlIG9uIGRpZmZlcmVuY2UKKwkqIGxpYnhtbC5zcGVjLmluOiBjbGVhbnVwCisJKiBwYXJzZXIuYzogZml4ZWQgeG1sQ2xlYW51cFBhcnNlcigpIGRvYworCSogZG9jL01ha2VmaWxlLmFtIGRvYy9hcGlidWlsZC5weSBkb2MvbGlieG1sMi1hcGkueG1sCisJICBkb2MvZXhhbXBsZXMvTWFrZWZpbGUuYW0gZG9jL2V4YW1wbGVzL2V4YW1wbGUxLmMgCisJICBkb2MvZXhhbXBsZXMvZXhhbXBsZXMueG1sIGRvYy9leGFtcGxlcy9pbmRleC5weQorCSAgZG9jL2V4YW1wbGVzL3Rlc3QxLnhtbDogd29yayBvbiBhZGRpbmcgQyBleGFtcGxlcyBhbmQKKwkgIGdlbmVyYXRpbmcgYXV0b21hdGVkIGluZm9ybWF0aW9uIGFib3V0IHRob3NlLiBleGFtcGxlcy54bWwKKwkgIGlzIGF1dG9nZW5lcmF0ZWQgZGVzY3JpYmluZyB0aGUgZXhhbXBsZXMuCisJKiBleGFtcGxlL01ha2VmaWxlLmFtOiBjbGVhbnVwCisKK01vbiBOb3YgMTAgMjM6NDc6MDMgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGdlblVuaWNvZGUucHksIHhtbHVuaWNvZGUuYywgaW5jbHVkZS9saWJ4bWwveG1sdW5pY29kZS5oOgorCSAgZml4ZWQgbWlzc2luZyAnLScgaW4gYmxvY2sgbmFtZXMsIGVuaGFuY2VkIHRoZSBoYWNrIGZvcgorCSAgQUJJIGFsaWFzaW5nLgorCitTdW4gTm92ICA5IDIwOjI4OjIxIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBnZW5Vbmljb2RlLnB5LCB4bWx1bmljb2RlLmMsIGluY2x1ZGUvbGlieG1sL3htbHVuaWNvZGUuaCwKKwkgIHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0OiBlbmhhbmNlZCBmb3IgcmFuZ2UgY2hlY2tpbmcsCisJICB1cGRhdGVkIHRvIFVuaWNvZGUgdmVyc2lvbiA0LjAuMSAoQVBJIGRvY3MgYWxzbyB1cGRhdGVkKQorCSogcHl0aG9uL2dlbmVyYXRvci5weTogbWlub3IgY2hhbmdlIHRvIGZpeCBhIHdhcm5pbmcKKworV2VkIE5vdiAgNSAyMzo0NjozNiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBhcHBseSBmaXggZnJvbSBLYXJsIEVpY2h3YWxkZXIgZm9yIHNjcmlwdCBwYXRoCisKK1dlZCBOb3YgIDUgMTA6NDk6MjAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9jb25maWd1cmUuanM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNYXJrIFZha29jIHRvIHNpbXBsaWZ5CisJICBoaXMgd29yayBmcm9tIENWUyBjaGVja291dHMuCisKK1R1ZSBOb3YgIDQgMjE6MTY6NDcgTVNUIDIwMDMgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbHJlYWRlci5odG1sOiBtaW5vciBjbGVhbnVwcworCitUdWUgTm92ICA0IDE1OjUyOjI4IFBTVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46IGNoYW5nZWQgbWFjcm8gQVRUUklCVVRFX1VOVVNFRAorCSAgZm9yIGdjYyBzbyB0aGF0LCBpZiB1bmRlZmluZWQsIGl0J3MgZGVmaW5lZCBhcworCSAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKKworVHVlIE5vdiAgNCAxNToyODowNyBQU1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weTogc21hbGwgZW5oYW5jZW1lbnQgdG8gYXNzdXJlIEFUVFJJQlVURV9VTlVTRUQKKwkgIGFwcGVhcnMgYWZ0ZXIgdGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uLgorCSogdmFsaWQuYzogdHJpdmlhbCBjaGFuZ2UgdG8gZWxpbWluYXRlIGEgd2FybmluZyBtZXNzYWdlCisKK1R1ZSBOb3YgIDQgMTE6MjQ6MDQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gTkVXUyBkb2MvKjogcHJlcGFyaW5nIHJlbGVhc2UgMi42LjIsIHVwZGF0ZWQgYW5kCisJICByZWJ1aWx0IHRoZSBkb2NzCisKK1R1ZSBOb3YgIDQgMDk6Mzg6NDYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmM6IGNoYW5nZSAtLWh0bWwgdG8gbWFrZSBzdXJlIHdlIHVzZSB0aGUgSFRNTCBzZXJpYWxpemF0aW9uCisJICBydWxlIGJ5IGRlZmF1bHQgd2hlbiBIVE1MIHBhcnNlciBpcyB1c2VkLCBhZGQgLS14bWxvdXQgdG8gYWxsb3cgdG8KKwkgIGZvcmNlIHRoZSBYTUwgc2VyaWFsaXplciBvbiBIVE1MLgorCSogSFRNTHRyZWUuYzogdWdseSB0d2VhayB0byBmaXggdGhlIG91dHB1dCBvbiA8cD4gZWxlbWVudCBhbmQgCisJICBzb2x2ZSAjMTI1MDkzCisJKiByZXN1bHQvSFRNTC8qOiB0aGlzIGNoYW5nZXMgdGhlIG91dHB1dCBvZiBzb21lIHRlc3RzCisKK01vbiBOb3YgIDMgMTc6NTE6MjggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4aW5jbHVkZS5jOiBmaXhlZCBidWcgIzEyNTgxMiwgYWJvdXQgWFBvaW50ZXIgaW4gWEluY2x1ZGUgCisJICBmYWlsaW5nIGJ1dCBub3QgcmV0dXJuaW5nIGFuIGVycm9yLgorCitNb24gTm92ICAzIDE3OjE4OjIyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogZml4ZWQgYnVnICMxMjU4MTEgcmVsYXRlZCB0byBEVEQgcG9zdCB2YWxpZGF0aW9uCisJICB3aGVyZSB0aGUgRFREIGRvZXNuJ3QgcGVydGFpbiB0byBhIGRvY3VtZW50LgorCitNb24gTm92ICAzIDE1OjI1OjU4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgeG1sSU8uYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaDogaW1wbGVtZW50ZWQKKwkgIHRoZSBYTUxfUEFSU0VfTk9ORVQgcGFyc2VyIG9wdGlvbi4KKwkqIHhtbGxpbnQuYzogY29udmVydGVkIHhtbGxpbnQuYyB0byB1c2UgdGhlIG9wdGlvbiBpbnN0ZWFkIG9mIAorCSAgcmVseWluZyBvbiB0aGUgZ2xvYmFsIHJlc29sdmVyIHZhcmlhYmxlLgorCitNb24gTm92ICAzIDEzOjI2OjMyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYyB4bWxyZWFkZXIuYyBpbmNsdWRlL2xpYnhtbC94aW5jbHVkZS5oOiBhZGRpbmcgWEluY2x1ZGUKKwkgIHN1cHBvcnQgdG8gdGhlIHJlYWRlciBpbnRlcmZhY2UuIExvdCBvZiB0ZXN0aW5nIG9mIHRoZSB3YWxrZXIsCisJICB2YXJpb3VzIGJ1ZyBmaXhlcy4KKwkqIHhtbGxpbnQuYzogYWRkZWQgLS13YWxrZXIgYW5kIG1hZGUgc3VyZSAtLXhpbmNsdWRlIC0tc3RyZWFtIC0tZGVidWcKKwkgIHdvcmtzIGFzIGV4cGVjdGVkCisJKiBNYWtlZmlsZS5hbSByZXN1bHQvZHRkMTEucmRyIHJlc3VsdC9lbnQ2LnJkciB0ZXN0L2R0ZDExIHRlc3QvZW50NgorCSAgcmVzdWx0L1hJbmNsdWRlLyoucmRyOiBhZGRlZCByZWdyZXNzaW9uIHRlc3RzIGZvciB0aGUgd2Fsa2VyIGFuZAorCSAgWEluY2x1ZGUgeG1sUmVhZGVyIHN1cHBvcnQsIGhhZCB0byBzbGlnaHRseSBjaGFuZ2UgYSBjb3VwbGUgb2YgdGVzdHMKKwkgIGJlY2F1c2UgdGhlIHdhbGtlciBjYW4ndCBkaXN0aW5ndWlzaCA8Zm9vLz4gZnJvbSA8Zm9vPjwvZm9vPgorCitTYXQgTm92ICAxIDE3OjQyOjI3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jIG5hbm9odHRwLmMgdGhyZWFkcy5jOiBzZWNvbmQgQmVPUyBwYXRjaCBmcm9tIAorCSAgTWFyY2luICdTaGFyZCcgS29uaWNraQorCitGcmkgT2N0IDMxIDE1OjM1OjIwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFsd2F5cyBnZW5lcmF0ZSBsaW5lIG51bWJlcnMKKworRnJpIE9jdCAzMSAxMTo1Mzo0NiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhbm90aGVyIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiBmaXhpbmcgIzEyNTgyMworCitGcmkgT2N0IDMxIDExOjMzOjE4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiBwcmV2aW91cyBmaXggZm9yICMxMjQwNDQgd2FzIGJyb2tlbiwgY29ycmVjdAorCSAgZml4IHByb3ZpZGVkLgorCSogSFRNTHBhcnNlci5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHhtbElPLmM6IGZpeCB4bWxTdG9wUGFyc2VyKCkKKwkgIGFuZCB0aGUgZXJyb3IgaGFuZGxlcnMgdG8gYWRkcmVzcyAjMTI1ODc3CisKK1RodSBPY3QgMzAgMjM6MTA6NDYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogc2lkZSBlZmZlY3Qgb2YgIzEyMzEwNSBwYXRjaCwgbmFtZXNwYWNlIHJlc29sdXRpb24KKwkgIHdvdWxkIGZhaWwgd2hlbiBkZWZpbmVkIGluIGludGVybmFsIGVudGl0aWVzLCBmaXhlcyAjMTI1ODIzCisKK1RodSBPY3QgMzAgMTQ6MTA6NDIgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLmM6IGJlIG1vcmUgZGVmZW5zaXZlIGluIHRoZSB4bWxSZWFkZXIgcHl0aG9uIGJpbmRpbmdzCisJICBmaXhpbmcgYnVnICMxMjQwNDQKKworVGh1IE9jdCAzMCAxMToxNDozMSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IHRoZSBhLXBvc3RlcmlvcmkgRFREIHZhbGlkYXRpb24gY29kZSB3YXMgbm90IHZhbGlkYXRpbmcKKwkgIHRoZSBuYW1lc3BhY2UgZGVjbGFyYXRpb25zLCB0aGlzIGZpeGVzICMxMjQxMTAKKworV2VkIE9jdCAyOSAxNDoxMzowMyBQRFQgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sSU8uYzogZW5oYW5jZWQgdG8gYnlwYXNzIGNvbXByZXNzaW9uIGRldGVjdGlvbiBjb2RlCisJICB3aGVuIGlucHV0IGZpbGUgaXMgc3RkaW4gKGJ1ZyAxMjU4MDEpCisKK1dlZCBPY3QgMjkgMTg6MjE6MDAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBmaXggbmVlZGVkIHdoZW4gSFRUUCBpcyBub3QgY29tcGlsZWQgaW4gYnkgTWFyayBWYWtvYworCitXZWQgT2N0IDI5IDE4OjA1OjUzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogbW9yZSBmaXhlcyBhYm91dCB1bnJlZ2lzdGVyaW5nIG9iamVjdHMKKwkqIGluY2x1ZGUvbGlieG1sL3JlbGF4bmcuaDogYXBwbGllZCBwYXRjaCBmcm9tIE1hcmsgVmFrb2MKKwkgIG1pc3NpbmcgX2NwbHVzcGx1cyBwcm9jZXNzaW5nIGNsYXVzZQorCitXZWQgT2N0IDI5IDA3OjQ5OjUyIDIwMDMgIEFsZWtzZXkgU2FuaW4gIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBwYXJzZXIuYzogYWRkZWQgeG1sU3RyVlByaW50ZiBmdW5jdGlvbgorCitXZWQgT2N0IDI5IDE0OjM3OjQwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmMgdGVzdFRocmVhZHMuYyB0aHJlYWRzLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbQorCSAgTWFyY2luICdTaGFyZCcgS29uaWNraSB0byBwcm92aWRlIEJlT1MgdGhyZWFkIHN1cHBvcnQuCisKK1dlZCBPY3QgMjkgMTQ6MjA6MTQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oOiBhcHBsaWVkIHBhdGNoCisJICBmcm9tIFN0ZXZlIEJhbGwgdG8gbWFrZSBhIHNjaGVtYSBwYXJzZXIgZnJvbSBhIHByZXBhcnNlZCBkb2N1bWVudC4KKworV2VkIE9jdCAyOSAxMzo1MjoyNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogYXBwbGllZCBhIGNvdXBsZSBvZiBwYXRjaGVzIGZyb20gTWFyayBMaWxiYWNrIGFib3V0IHRleHQKKwkgIG5vZGVzIGNvYWxlc2NpbmcKKworV2VkIE9jdCAyOSAxMjoxNjo1MiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGNoYW5nZSBzdWdnZXN0ZWQgYnkgQW50aG9ueSBDYXJyaWNvIHdoZW4gdW5yZWdpc3RlcmluZworCSAgYSBuYW1lc3BhY2UgcHJlZml4IHRvIGEgY29udGV4dAorCSogaGFzaC5jOiBiZSBtb3JlIGNhcmVmdWwgYWJvdXQgY2FsbGluZyBjYWxsYmFja3Mgd2l0aCBOVUxMIHBheWxvYWRzLgorCitXZWQgT2N0IDI5IDAwOjA0OjI2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIE5FV1MgZG9jLyo6IHByZXBhcmluZyByZWxlYXNlIDIuNi4xLCB1cGRhdGVkIGFuZAorCSAgcmVnZW5lcmF0ZWQgZG9jcyBhbmQgQVBJcworCSogcGFyc2VyLmM6IGNsZWFudXAgYW5kIGxhc3QgY2hhbmdlIHRvIGZpeCAjMTIzMTA1CisKK1R1ZSBPY3QgMjggMjM6MDI6MjkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IEZpeCAjMTI0OTA3IGJ5IHNpbXBseSBiYWNrcG9ydGluZyB0aGUgc2FtZQorCSAgZml4IGFzIGZvciB0aGUgWE1MIHBhcnNlcgorCSogcmVzdWx0L0hUTUwvZG9jMy5odG0uZXJyOiBjaGFuZ2UgdG8gSUQgZGV0ZWN0aW5nIG1vZGlmaWVkIG9uZQorCSAgdGVzdCByZXN1bHQuCisKK1R1ZSBPY3QgMjggMjI6Mjg6NTAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogaW5jbHVkZWQgYSBuZXcgZnVuY3Rpb24KKwkgIHRvIHJldXNlIGEgUHVzaCBwYXJzZXIgY29udGV4dCwgYmFzZWQgb24gR3JhaGFtIEJlbm5ldHQgb3JpZ2luYWwKKwkgIGNvZGUKKwkqIHZhbGlkLmM6IGluIEhUTUwsIGEgbmFtZSBpbiBhbiBpbnB1dCBpcyBub3QgYW4gSUQKKwkqIFRPRE86IGJ1ZyBsaXN0IHVwZGF0ZQorCitUdWUgT2N0IDI4IDE5OjU0OjM3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogYXBwbGllZCBwYXRjaCBmcm9tIG5pY29AeHRyYWR5bmUuY29tIGZvciAjMTI1MDMwCisKK1R1ZSBPY3QgMjggMTY6NDI6MTYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogY2xlYW51cAorCSogZXJyb3IuYyB2YWxpZC5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGZpeGluZyBidWcgIzEyNTY1MworCSAgc29tZXRpbWVzIHRoZSBlcnJvciBoYW5kbGVycyBjYW4gZ2V0IGEgcGFyc2VyIGNvbnRleHQgb24gRFRECisJICBlcnJvcnMsIGFuZCBzb21ldGltZSB0aGV5IGRvbid0LiBTbyBiZSB2ZXJ5IGNhcmVmdWwgd2hlbiB0cnlpbmcKKwkgIHRvIGdyYWIgdGhvc2UgaW5mb3JtYXRpb25zLgorCitUdWUgT2N0IDI4IDE1OjI2OjE4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gS2FzaW1pZXIgQnVjaGNpayB3aGljaCBmaXhlcyBhIAorCSAgcHJvYmxlbSBpbiB4bWxTZWFyY2hOcyBpbnRyb2R1Y2VkIGluIDIuNi4wCisKK1R1ZSBPY3QgMjggMTQ6NTc6MDMgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4ZWQgIzEyMzI2MywgdGhlIGVuY29kaW5nIGlzIG1hbmRhdG9yeSBpbiBhIHRleHRkZWNsLgorCitUdWUgT2N0IDI4IDEzOjQ4OjUyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBmaXggYnVnICMxMjUwNDcgYWJvdXQgc2VyaWFsaXppbmcgd2hlbiBmaW5kaW5nIGEgCisJICBkb2N1bWVudCBmcmFnbWVudCBub2RlLgorCitNb24gT2N0IDI3IDExOjExOjI5IEVTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdFNBWC5jOiBmaXggYnVnICMxMjU1OTIgbmVlZCBhIE5VTEwgY2hlY2sKKwkqIGluY2x1ZGUvbGlieG1sL2NodmFsaWQuaDogcmVuYW1lIGEgcGFyYW1ldGVyCisKK01vbiBPY3QgMjcgMDk6NDM6NDggRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tICMxMjMxMDUgYWJvdXQgZGVmYXVsdGVkIGF0dHJpYnV0ZXMKKwkgIGZyb20gZWxlbWVudCBjb21pbmcgZnJvbSBhbiBlbnRpdHkKKworTW9uIE9jdCAyNyAyMToxMjoyNyBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeG1sbGludC5jOiBmaXhlZCB3YXJuaW5nIG1lc3NhZ2UgZnJvbSBJUklYIChidWcgMTI1MTgyKQorCSogcHl0aG9uL2xpYnhtbC5weTogcmVtb3ZlZCB0YWJzLCByZXBsYWNlZCB3aXRoIHNwYWNlcworCSAgKGJ1ZyAxMjU1NzIpCisKK01vbiBPY3QgMjcgMDY6MTc6MzAgRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuaCBwYXJzZXJJbnRlcm5hbHMuYyB4bWxJTy5jOiBtYWtlIHN1cmUgd2UgcmVwb3J0IGVycm9ycworCSAgaWYgeG1sTmV3SW5wdXRGcm9tRmlsZSgpIGZhaWxzLgorCSogeG1scmVhZGVyLmM6IGF2b2lkIHVzaW5nIF9wcml2YXRlIGZvciB0aGUgbm9kZSBvciBkb2N1bWVudAorCSAgZWxlbWVudHMuCisKK1NhdCBPY3QgMjUgMTc6MzM6NTkgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL2NvbmZpZ3VyZS5qczogYWRkZWQgZGVjbGFyYXRpb24gZm9yIHZlck1pY3JvU3VmZml4CisKK0ZyaSBPY3QgMjQgMjM6MDg6MTcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLm00OiBhcHBsaWVkIHBhdGNoIGZyb20gUGF0cmljayBXZWxjaGUgcHJvdmlkZWQgaW4KKwkgIGJ1ZyAjMTI1NDMyICwgZnV0dXJlIHByb29maW5nIHRoZSAubTQgZmlsZS4KKwkqIHBhcnNlci5jOiByZXNldHRpbmcgdGhlIGNvbnRleHQgc2hvdWxkIGFsc28gcmVzZXQgdGhlIGVycm9yCisJKiBUT0RPOiBwcm9ibGVtIG9mIGNvbmZvcm1hbmNlIHcuci50LiBFMjAgd2FzIHJhaXNlZCBpbiB0aGUKKwkgIFhNTCBDb3JlIHRlbGNvbmYgYW5kIGxpYnhtbDIgaXNuJ3QgY29uZm9ybWFudCB0aGVyZS4KKworV2VkIE9jdCAyMiAxNDozMzowNSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWx3cml0ZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tIEFsZnJlZCBNaWNrYXV0c2NoIGZpeGluZyAjMTI1MTgwCisKK1dlZCBPY3QgMjIgMTA6NTA6MzEgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2h2YWxpZC5jIGdlbkNoUmFuZ2VzLnB5OiBTdMOpcGhhbmUgQmlkb3VsIHBvaW50ZWQgb3V0IGFub3RoZXIKKwkgIHNtYWxsIGdsaXRjaCBtaXNzaW5nIGEgY29uc3QKKworV2VkIE9jdCAyMiAxMDo0MzoyMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaHZhbGlkLmMgZ2VuQ2hSYW5nZXMucHk6IFN0w6lwaGFuZSBCaWRvdWwgcG9pbnRlZCBvdXQgdGhhdAorCSAgaXQgZG9lc24ndCBkZWZpbmUgSU5fTElCWE1MCisKK1R1ZSBPY3QgMjEgMjE6MTQ6NTUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUubWluZ3c6IHR5cG8gcG9pbnRlZCBvdXQgYnkgU3TDqXBoYW5lIEJpZG91bAorCitUdWUgT2N0IDIxIDExOjI2OjM2IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLmJjYiB3aW4zMi9NYWtlZmlsZS5taW5ndyB3aW4zMi9NYWtlZmlsZS5tc3ZjCisJICB3aW4zMi9jb25maWd1cmUuanM6IHNldCBvZiBXaW4zMiBwYXRjaGVzIGZvciAyLjYuMCBieSBKb2FjaGltIEJhdWNoCisKK1R1ZSBPY3QgMjEgMDI6MDc6MjIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBsYXN0IG1pbnV0ZSBwYXRjaCBmcm9tIEVyaWMgWnVyY2hlciBtYWtpbmcgaXQgaW50byAyLjYuMAorCitUdWUgT2N0IDIxIDAyOjAzOjAzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBORVdTIGRvYy9saWJ4bWwyLnhzYTogcHJlcGFyaW5nIGxpYnhtbDItMi42LjAKKwkqIGRvYy8qOiB1cGRhdGVkIGFuZCByZWdlbmVyYXRlZCB0aGUgZG9jcyBhbmQgQVBJCisKK1R1ZSBPY3QgMjEgMDE6MDE6NTUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYMi5jIGVycm9yLmMgdHJlZS5jOiBtb3ZlZCB0aGUgbGluZSBudW1iZXIgdG8gdGhlaXIgcHJvcGVyCisJICBmaWVsZCBpbiBlbGVtZW50cyBub3cuCisKK1R1ZSBPY3QgMjEgMDA6Mjg6MjAgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIHhtbHdyaXRlci5jIE1ha2VmaWxlLmFtIGluY2x1ZGUvbGlieG1sL3htbHdyaXRlci5oCisJICBpbmNsdWRlL2xpYnhtbC9NYWtlZmlsZS5hbSBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46CisJICBhZGRlZCB0aGUgeG1sV3JpdGVyIG1vZHVsZSBjb250cmlidXRlZCBieSBBbGZyZWQgTWlja2F1dHNjaAorCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBhZGRlZCByb29tIGZvciBsaW5lIGFuZCBleHRyYSBpbmZvcm1hdGlvbgorCSogeG1scmVhZGVyLmMgcHl0aG9uL3Rlc3RzL3JlYWRlcjYucHk6IGJ1Z2ZpeGluZyBzb21lIHByb2JsZW0gc29tZQorCSAgb2YgdGhlbSBpbnRyb2R1Y2VkIGluIFNlcHRlbWJlcgorCSogd2luMzIvbGlieG1sMi5kZWYuc3JjIGRvYy9saWJ4bWwyLWFwaS54bWw6IHJlZ2VuZXJhdGVkIHRoZSBBUEkKKworTW9uIE9jdCAyMCAxOTowMjo1MyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBjb25maWd1cmUuaW4geG1sZHdhbGsuYyB4bWxyZWFkZXIuYworCSAgaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW0gaW5jbHVkZS9saWJ4bWwveG1sZHdhbGsuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOiByZW1vdmluZyB4bWxkd2FsayBtb2R1bGUKKwkgIHNpbmNlIGl0IGdvdCBtZXJnZWQgd2l0aCB0aGUgeG1scmVhZGVyLgorCSogcGFyc2VyLmM6IGNsZWFudXAKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYyBweXRob24vbGlieG1sMmNsYXNzLnR4dCBkb2MvbGlieG1sMi1hcGkueG1sOgorCSAgcmVidWlsdCB0aGUgQVBJCisJKiBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL3JlYWRlcjcucHkKKwkgIHB5dGhvbi90ZXN0cy93YWxrZXIucHk6IGFkZGluZyByZWdyZXNzaW9uIHRlc3RpbmcgZm9yIHRoZQorCSAgbmV3IHhtbHJlYWRlciBBUElzLCBuZXcgQVBJcyBmb3IgcmVhZGVyIGNyZWF0aW9uLCBpbmNsdWRpbmcKKwkgIG1ha2VpbmcgcmVhZGVyICJ3YWxrZXIiIG9wZXJhdGluZyBvbiBwcmVwYXJzZWQgZG9jdW1lbnQgdHJlZXMuCisKK1N1biBPY3QgMjAgMjI6Mzc6MDMgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGVudGl0aWVzLmMsIHZhbGlkLmM6IGZpeGVkIHByb2JsZW0gcmVwb3J0ZWQgb24gdGhlIG1haWxpbmcKKwkgIGxpc3QgYnkgTWVsdnluIFNvcGFjdWEgLSB3cm9uZyBhcmd1bWVudCBvcmRlciBvbiBmdW5jdGlvbnMKKwkgIGNhbGxlZCB0aHJvdWdoIHhtbEhhc2hTY2FuLgorCitTdW4gT2N0IDE5IDIzOjU3OjQ1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmMgeG1sSU8uYzogZml4ZXMgZm9yIGNvbXBpbGluZyB1c2luZyAtLXdpdGgtbWluaW11bQorCitTdW4gT2N0IDE5IDIzOjQ2OjA0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogY2xlYW51cCB4bWxOb2RlR2V0Q29udGVudCgpIHJldXNpbmcgeG1sTm9kZUJ1ZkdldENvbnRlbnQoKSwKKwkgIHRlc3RlZCBpdCB0aHJvdWdoIHRoZSB4c2x0IHJlZ3Jlc3Npb24gc3VpdGUuCisKK1N1biBPY3QgMTkgMjI6NDI6MTYgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogYWRkaW5nIHhtbE5vZGVCdWZHZXRDb250ZW50KCkKKwkgIGFsbG93aW5nIHRvIGdyYWIgdGhlIGNvbnRlbnQgd2l0aG91dCBmb3JjaW5nIGFsbG9jYXRpb25zLgorCSogcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQgZG9jL2xpYnhtbDItYXBpLnhtbDogcmVidWlsdCB0aGUgQVBJCisJKiB4cGF0aC5jIHhtbGR3YWxrLmM6IHJlbW92ZWQgYSBjb3VwbGUgb2YgY29tbWVudCBlcnJvcnMuCisKK1N1biBPY3QgMTkgMTY6Mzk6MzYgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBDaHJpcyBBbmRlcnNvbiB0byBjaGFuZ2UgYmFjaworCSAgbWVtY21wIHdpdGggQ01QeCgpCisKK1N1biBPY3QgMTkgMTY6MjQ6MTkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBmaXhlZCB0byBub3Qgc2VuZCBOVUxMIHRvICVzIHByaW50aW5nCisJKiBweXRob24vdGVzdHMvZXJyb3IucHkgcmVzdWx0L0hUTUwvZG9jMy5odG0uZXJyCisJICByZXN1bHQvSFRNTC90ZXN0My5odG1sLmVyciByZXN1bHQvSFRNTC93aXJlZC5odG1sLmVycgorCSAgcmVzdWx0L3ZhbGlkL3Q4LnhtbC5lcnIgcmVzdWx0L3ZhbGlkL3Q4YS54bWwuZXJyOiBjbGVhbmluZworCSAgdXAgc29tZSBvZiB0aGUgcmVncmVzc2lvbiB0ZXN0cyBlcnJvcgorCitTdW4gT2N0IDE5IDE1OjMxOjQzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL25hbm9odHRwLmggaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmggCisJICBpbmNsdWRlL2xpYnhtbC94bWxJTy5oIG5hbm9odHRwLmMgcGFyc2VySW50ZXJuYWxzLmMgeG1sSU8uYzoKKwkgIEZpeGVkIHRoZSBIVFRQPC0+cGFyc2VyIGludGVycmFjdGlvbiwgd2hpY2ggc2hvdWxkIGZpeCAyIGxvbmcKKwkgIHN0YW5kaW5nIGJ1Z3MgIzEwNDc5MCBhbmQgIzEyNDA1NCAsIHRoaXMgYWxzbyBmaXggdGhlIGZhY3QgdGhhdAorCSAgSFRUUCBlcnJvciBjb2RlICg+IDQwMCkgc2hvdWxkIG5vdCBnZW5lcmF0ZSBkYXRhLCB3ZSB1c3VhbGx5CisJICBkb24ndCB3YW50IHRvIHBhcnNlIHRoZSBIVE1MIGVycm9yIGluZm9ybWF0aW9uIGluc3RlYWQgb2YgdGhlCisJICByZXNvdXJjZSBsb29rZWQgYXQuCisKK1N1biBPY3QgMTkgMTk6MjA6NDggSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGRvYy9NYWtlZmlsZS5hbTogZW5oYW5jZWQgdGhlIGluc3RhbGxhdGlvbiBvZiB0dXRvcmlhbCBmaWxlcworCSAgdG8gYXZvaWQgaW5zdGFsbGluZyBDVlMgc3ViZGlyZWN0b3JpZXMgKGJ1ZyAxMjI5NDMpCisKK1N1biBPY3QgMTkgMTc6MzM6MjcgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhtbElPLmM6IGZpeGVkIHNlZ2ZhdWx0IHdoZW4gaW5wdXQgZmlsZSBub3QgcHJlc2VudAorCSogdHJlZS5jOiBjaGFuZ2VkIG91dHB1dCBmb3JtYXR0aW5nIG9mIFhNTF9DREFUQV9TRUNUSU9OCisJICAoYnVnIDEyMDkxNykKKworU3VuIE9jdCAxOSAwMDoxNTozOCBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmggSFRNTHBhcnNlci5jIEhUTUx0cmVlLmMKKwkgIFNBWDIuYyBjYXRhbG9nLmMgZGVidWdYTUwuYyBlbnRpdGllcy5jIHBhcnNlci5jIHJlbGF4bmcuYworCSAgdGVzdFNBWC5jIHRyZWUuYyB2YWxpZC5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYworCSAgeHBhdGguYzogQ2hhbmdlZCBhbGwgKD8pIG9jY3VyZW5jZXMgd2hlcmUgdmFsaWRhdGlvbiBtYWNyb3MKKwkgIChJU194eHgpIGhhZCBzaW5nbGUtYnl0ZSBhcmd1bWVudHMgdG8gdXNlIElTX3h4eF9DSCBpbnN0ZWFkCisJICAoZS5nLiBJU19CTEFOSyBjaGFuZ2VkIHRvIElTX0JMQU5LX0NIKS4gIFRoaXMgZ2V0cyByaWQgb2YKKwkgIG1hbnkgd2FybmluZyBtZXNzYWdlcyBvbiBjZXJ0YWluIHBsYXRmb3JtcywgYW5kIGFsc28gaGlnaC0KKwkgIGxpZ2h0cyBwbGFjZXMgaW4gdGhlIGxpYnJhcnkgd2hpY2ggbWF5IG5lZWQgdG8gYmUgZW5oYW5jZWQKKwkgIGZvciBwcm9wZXIgVVRGOCBoYW5kbGluZy4KKworU2F0IE9jdCAxOCAyMDozNDoxOCBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZ2VuQ2hSYW5nZXMucHksIGNodmFsaWQuYywgaW5jbHVkZS9saWJ4bWwvY2h2YWxpZC5oLAorCSAgZG9jL2FwaWJ1aWxkLnB5OiBlbmhhbmNlZCB0byBpbmNsdWRlIGVub3VnaCBjb21tZW50cyB0bworCSAgbWFrZSB0aGUgYXBpIGRvYyBnZW5lcmF0aW9uIGhhcHB5LgorCitTYXQgT2N0IDE4IDA3OjI4OjI1IEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFub2h0dHAuYyB4bWxJTy5jIGluY2x1ZGUvbGlieG1sL25hbm9odHRwLmg6IHN0YXJ0aW5nIHdvcmsKKwkgIHRvIGZpeCB0aGUgSFRUUC9YTUwgcGFyc2VyIGludGVncmF0aW9uLgorCitTYXQgT2N0IDE4IDExOjA0OjMyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiBhZGRlZCBuZXcgQVBJcworCSAgZm9yIGNyZWF0aW5nIHJlYWRlciBmcm9tIHNvdXJjZXMgb3IgcmV1c2luZyBhIHJlYWRlciB3aXRoCisJICBhIG5ldyBzb3VyY2UsIGxpa2UgdGhlIHhtbFJlYWR4eCBhbmQgeG1sQ3R4dFJlYWR4eHgKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYyBkb2MvbGlieG1sMi1hcGkueG1sIGRvYy9hcGlidWlsZC5weQorCSAgZG9jL01ha2VmaWxlLmFtOiByZWdlbmVyYXRlZCB0aGUgQVBJcworCSogZG9jL3htbC5odG1sOiBhcHBsaWVkIGEgcGF0Y2ggZnJvbSBTdGVmYW4gS29zdCBmb3IgbmFtZXNhcGNlIGRvY3MKKworU2F0IE9jdCAxOCAxMjo0NjowMiBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZ2VuQ2hSYW5nZXMucHksIGNodmFsaWQuYywgaW5jbHVkZS9saWJ4bWwvY2h2YWxpZC5oLAorCSAgaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg6IGVuaGFuY2VkIG1hY3JvcyB0byBhdm9pZAorCSAgYnJlYWtpbmcgQUJJIGZyb20gcHJldmlvdXMgdmVyc2lvbnMuCisJKiBjYXRhbG9nLmMsIHBhcnNlci5jLCB0cmVlLmM6IG1vZGlmaWVkIHRvIHVzZSBJU18qIG1hY3JvcworCSAgZGVmaW5lZCBpbiBwYXJzZXJJbnRlcm5hbHMuaC4gIE1ha2VzIG1haW50ZW5hbmNlIG11Y2ggZWFzaWVyLgorCSogdGVzdEhUTUwuYywgdGVzdFNBWC5jLCBweXRob24vbGlieG1sLmM6IG1pbm9yIGZpeGVzIHRvIGF2b2lkCisJICBjb21waWxhdGlvbiB3YXJuaW5ncworCSogY29uZmlndXJhdGlvbi5pbjogZml4ZWQgcHVzaEhUTUwgdGVzdCBlcnJvcjsgZW5oYW5jZWQgZm9yCisJICBiZXR0ZXIgZGV2ZWwgKG1lKSB0ZXN0aW5nCisKK0ZyaSBPY3QgMTcgMTQ6Mzg6NTQgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGVnYWN5LmM6IHJlbW92ZSB0aGUgd2FybmluZyBmb3Igc3RhcnREb2N1bWVudCgpLCBhcyBpdCBpcyB1c2VkIGJ5CisJICBnbGFkZSAob3IgZ2xhZGUtcHl0aG9uKQorCSogcGFyc2VyLmMgcmVsYXhuZy5jIHhtbHNjaGVtYXN0eXBlcy5jOiBmaXhlZCBhbiBhc3NvcnRlZCBzZXQgb2YKKwkgIGludmFsaWQgYWNjZXNzZXMgZm91bmQgYnkgcnVubmluZyBzb21lIFB5dGhvbiBiYXNlZCByZWdyZXNzaW9uCisJICB0ZXN0cyB1bmRlciB2YWxncmluZC4gVGhlcmUgaXMgc3RpbGwgYSBmZXcgbGVha3MgcmVwb3J0ZWQgYnkgdGhlCisJICByZWxheG5nIHJlZ3Jlc3Npb25zIHdoaWNoIG5lZWQgc29tZSBhdHRlbnRpb24uCisJKiBkb2MvTWFrZWZpbGUuYW06IGZpeGVkIGEgbWFrZSBpbnN0YWxsIHByb2JsZW0gYy5mLiAjMTI0NTM5CisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaDogYWRkaXRpb24gb2YgeG1sUGFyc2VyTWF4RGVwdGgKKwkgIHBhdGNoIGZyb20gY3J1dGNoZXIKKworV2VkIE9jdCAxNSAxMjo0NzozMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogTWFyYyBMaXlhbmFnZSBwb2ludGVkIG91dCB0aGF0IHhtbENsZWFudXBQYXJzZXIoKQorCSAgd2FzIG1pc3NpbmcgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzIGFuZCB4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzCisJICBjYWxscy4KKworV2VkIE9jdCAxNSAxMDoxNjo0NyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2bXMvYnVpbGRfbGlieG1sLmNvbSB0cmlvbmFuLmM6IFZNUyBwYXRjaCBmcm9tIENyYWlnIEEuIEJlcnJ5CisKK01vbiBPY3QgMTMgMjE6NDY6MjUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IHNtYWxsIGZpeCBmcm9tIEJqb3JuIFJlZXNlCisKK01vbiBPY3QgMTMgMTU6NTk6MjUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogZml4IGEgY2FsbCBtaXNzaW5nIGFyZ3VtZW50cworCitTdW4gT2N0IDEyIDE4OjQyOjE4IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBnZW5DaFJhbmdlcy5weSwgY2h2YWxpZC5jLCBpbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmg6IGZpeGVkCisJICBhIGJ1ZyBpbiB0aGUgcmFuZ2Ugc2VhcmNoOyBlbmhhbmNlZCByYW5nZSBnZW5lcmF0aW9uIChpbmxpbmUgY29kZQorCSAgaWYgYSBzbWFsbCBudW1iZXIgb2YgaW50ZXJ2YWxzKTsgZW5oYW5jZWQgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZQorCSAgb3V0cHV0IGZpbGVzLgorCitTdW4gT2N0IDEyIDAwOjUyOjE0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNodmFsaWQuZGVmIGNodmFsaWQuYyBpbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmg6IHJlYnVpbHQgCisJICBjaHZhbGlkLmRlZiBmcm9tIHNjcmF0Y2ggYmFzZWQgb24gWE1MIDJuZCBlZGl0aW9uIFJFQworCSAgYW5kIHJlZ2VuZXJhdGVkIHRoZSBjb2RlLgorCitTYXQgT2N0IDExIDIyOjU0OjEzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNoZWNrLXhtbC10ZXN0LXN1aXRlLnB5OiByZW1vdmVkIHNvbWUgYW5ub3lpbmcgd2FybmluZ3MKKwkqIGNodmFsaWQuZGVmIGNodmFsaWQuYyBpbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmg6IGZpeGVkIGEgYnVnCisJICBpbiB0aGUgUHViaWRDaGFycyBkZWZpbml0aW9uLCByZWdlbmVyYXRlZCwgdGhlcmUgaXMgc3RpbGwKKwkgIGEgYnVnIGxlZnQgc29tZXdoZXJlCisJKiBnZW5DaFJhbmdlcy5weTogc2F2ZSB0aGUgaGVhZGVyIGRpcmVjdGx5IGluIGluY2x1ZGUvbGlieG1sLworCSogY29uZmlndXJlLmluOiBJIGdlbmVyYXRlZCBhIDIuNi4wYmV0YTYgZWFybGllciB0b2RheQorCitTYXQgT2N0IDExIDIzOjMyOjQ3IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBmaXhlZCBzbWFsbCBlcnJvciBvbiBwcmV2aW91cyBjb21taXQgKGNodmFsaWQuaCBpbgorCSAgYmFzZSBkaXIgaW5zdGVhZCBvZiBpbmNsdWRlIGRpcmVjdG9yeSkKKworU2F0IE9jdCAxMSAyMzoxMToyMiBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZ2VuQ2hSYW5nZS5weSwgY2h2YWxpZC5kZWYsIGNodmFsaWQuYywgaW5jbHVkZS9saWJ4bWwvY2h2YWxpZC5oOgorCSAgbmV3IGZpbGVzIGZvciBhIGRpZmZlcmVudCBtZXRob2QgZm9yIGRvaW5nIHJhbmdlIHZhbGlkYXRpb24KKwkgIG9mIGNoYXJhY3RlciBkYXRhLgorCSogTWFrZWZpbGUuYW0sIHBhcnNlckludGVybmFscy5jLCBpbmNsdWRlL2xpYnhtbC9NYWtlZmlsZS5hbSwKKwkgIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oOiBtb2RpZmllZCBmb3IgbmV3IHJhbmdlIG1ldGhvZC4KKwkqIGNhdGFsb2cuYzogc21hbGwgZW5oYW5jZSBmb3Igd2FybmluZyBtZXNzYWdlICh1c2luZyBvbmUKKwkgIG9mIHRoZSBuZXcgcmFuZ2Ugcm91dGluZXMpCisKK1NhdCBPY3QgMTEgMTM6MjQ6NTcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYyBpbmNsdWRlL2xpYnhtbC92YWxpZC5oOiBhZGRpbmcgYW4gc2Vycm9yIGZpZWxkIHRvCisJICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0IGJyZWFrcyB0aGUgQUJJIGZvciB0aGUgeG1sUGFyc2VyQ3R4dAorCSAgc3RydWN0dXJlIHNpbmNlIGl0J3MgZW1iZWRkZWQgYnkgY29udGVudCBhbmQgbm90IGJ5IHJlZmVyZW5jZQorCitTYXQgT2N0IDExIDEyOjQ2OjQ5IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcGF0Y2ggZnJvbSBNaWtlIEhvbW1leQorCSogdGhyZWFkcy5jOiBhcHBsaWVkIFdpbmRvd3MgcGF0Y2ggZnJvbSBKZXNzZSBQZWx0b24gYW5kIFN0ZXBoYW5lCisJICBCaWRvdWwKKwkqIHBhcnNlci5jOiBmaXggdGhlIHBvdGVudGlhbGx5IG5hc3R5IGFjY2VzcyB0byBjdHh0LT5zZXJyb3IKKwkgIHdpdGhvdXQgY2hlY2tpbmcgZmlyc3QgdGhhdCB0aGUgU0FYIGJsb2NrIGlzIHZlcnNpb24gMgorCitGcmkgT2N0IDEwIDIxOjM0OjAxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYzogZml4ZWQgYSBuYXN0eSBidWcgd2l0aCBpbnRlcm5pbmcgc29tZSB0ZXh0IHN0cmluZ3MKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyZSBmb3IgYmV0YTUgb2YgMi42LjAKKwkqIGxpYnhtbC5oIG5hbm9mdHAuYyBuYW5vaHR0cC5jIHhtbElPLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDoKKwkgIGJldHRlciBlcnJvciBoYW5kbGluZyBmb3IgSS9PIGFuZCBjb252ZXJ0ZWQgRlRQIGFuZCBIVFRQCisJKiBwYXJzZXIuYzogZml4ZWQgYW5vdGhlciBidWcKKworRnJpIE9jdCAxMCAxNjo0NToyMCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVgyLmM6IGZpeGVkIHVuaW5pdGlhbGl6ZWQgbmV3IGZpZWxkLgorCSogcmVzdWx0L1ZDL09uZUlEMiByZXN1bHQvcmVsYXhuZy8qLmVycjogZml4ZWQgYSB0eXBvIHVwZGF0aW5nCisJICBhbGwgbWVzc2FnZXMKKworRnJpIE9jdCAxMCAxNjoxOToxNyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IG1ha2Ugcm9vbSBpbiBEb2MsIEVsZW1lbnQsIEF0dHJpYnV0ZXMKKwkgIGZvciBQU1ZJIHR5cGUgaW5mb3JtYXRpb25zLgorCitGcmkgT2N0IDEwIDE2OjA4OjAyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyBjMTRuLmMgY2F0YWxvZy5jIGVycm9yLmMgZ2xvYmFscy5jIHBhcnNlci5jCisJICBwYXJzZXJJbnRlcm5hbHMuYyByZWxheG5nLmMgdmFsaWQuYyB4aW5jbHVkZS5jIHhtbElPLmMgeG1scmVnZXhwLmMKKwkgIHhtbHNjaGVtYXMuYyB4cGF0aC5jIHhwb2ludGVyLmMgaW5jbHVkZS9saWJ4bWwvZ2xvYmFscy5oCisJICBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBpbmNsdWRlL2xpYnhtbC92YWxpZC5oIAorCSAgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogU2V0dGluZyB1cCB0aGUgZnJhbWV3b3JrIGZvciBzdHJ1Y3R1cmVkCisJICBlcnJvciByZXBvcnRpbmcsIHRvdWNoZXMgYSBsb3Qgb2YgbW9kdWxlcywgYnV0IGxpdHRsZSBjb2RlIG5vdworCSAgdGhlIGVycm9yIGhhbmRsaW5nIHRyYWlsIGhhcyBiZWVuIGNsZWFuZWQgdXAuCisKK0ZyaSBPY3QgMTAgMTQ6Mjk6NDIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogYzE0bi5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGNvbnZlcnRlZCB0aGUgQzE0TiBtb2R1bGUgdG9vCisKK0ZyaSBPY3QgMTAgMTM6NDA6NTEgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogY2xlYW51cAorCSogeHBvaW50ZXIuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBtaWdyYXRlZCBYUG9pbnRlciBtb2R1bGUKKwkgIHRvIHRoZSBuZXcgZXJyb3IgbWVjaGFuaXNtCisKK0ZyaSBPY3QgMTAgMTI6NDk6NTMgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYyB4bWxzY2hlbWFzLmM6IGEgYml0IG9mIGNsZWFudXAKKwkqIHJlc3VsdC9zY2hlbWFzLyouZXJyOiB1cGRhdGVkIHdpdGggdGhlIG5ldyByZXN1bHQgc3RyaW5ncworCitGcmkgT2N0IDEwIDAzOjU4OjM5IFBEVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4cGF0aC5jOiBmaXhlZCBidWcgMTI0MDYxCisKK0ZyaSBPY3QgMTAgMDI6NDc6MjIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGNsZWFudXAKKwkqIGVuY29kaW5nLmM6IGZpeCBhIGZ1bm55IHR5cG8KKwkqIGVycm9yLmMgeG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6CisJICBjb252ZXJ0ZWQgdGhlIFNjaGVtYXMgY29kZSB0byB0aGUgbmV3IGVycm9yIGhhbmRsaW5nLiBQSVRBLAorCSAgc3RpbGwgbmVlZCB0byBjaGVjayBvdXRwdXQgZnJvbSByZWdyZXNzaW9uIHRlc3RzLgorCitUaHUgT2N0ICA5IDE1OjEzOjUzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogY29udmVydGVkIHRvbworCSogdHJlZS5jOiBzbWFsbCBjbGVhbnVwCisKK1RodSBPY3QgIDkgMTM6NDQ6NTcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYzogY29tbWVudCBmaXgKKwkqIGNhdGFsb2cuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBtaWdyYXRpbmcgdGhlIGNhdGFsb2cgY29kZQorCSAgdG8gdGhlIG5ldyBpbmZyYXN0cnVjdHVyZQorCitUaHUgT2N0ICA5IDAwOjM2OjAzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGZpbmFsIGVycm9yIGhhbmRsaW5nIGNsZWFudXAKKwkqIHhpbmNsdWRlLmMgZXJyb3IuYzogY29udmVydGVkIFhJbmNsdWRlIHRvIHRoZSBuZXcgZXJyb3IgaGFuZGxpbmcKKwkqIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGFkZGVkIFhJbmNsdWRlIGVycm9ycworCitXZWQgT2N0ICA4IDIzOjMxOjIzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBidWcgaW4gY29tcHJlc3Npb24gc2F2aW5nIHdhcyBjcmFzaGluZyBnYWxlb24KKwkgIHJlcG9ydGVkIGJ5IHRldWYKKworV2VkIE9jdCAgOCAyMToxODoxMiBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlcnJvci5jIHRyZWUuYyB4bWxJTy5jIHhtbGxpbnQuYzogbW9yZSBjbGVhbnVwIHRocm91Z2ggdGhlCisJICBJL08gZXJyb3IgcGF0aAorCitXZWQgT2N0ICA4IDIwOjU3OjI3IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGJldHRlciBoYW5kbGluZyBvZiBlcnJvciBjYXNlcworCitXZWQgT2N0ICA4IDEzOjUxOjE0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmMgeG1sbGludC5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGZpcnN0IHBhc3MgYXQKKwkgIGNsZWFuaW5nIHVwIGVycm9yIGhhbmRsaW5nIGluIHRoZSBJL08gbW9kdWxlLgorCitXZWQgT2N0ICA4IDEwOjUyOjA1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGVycm9yIGhhbmRsaW5nCisJICBjbGVhbnVwIG9mIHRoZSBSZWdleHAgbW9kdWxlLgorCitXZWQgT2N0ICA4IDAxOjA5OjA1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogY29udmVydGluZyB0aGUgdHJlZSBtb2R1bGUgdG9vCisJKiBlcnJvci5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IGNyZWF0ZWQgYSBzaW1wbGVyIGludGVybmFsCisJICBlcnJvciByZXBvcnRpbmcgZnVuY3Rpb24uCisKK1R1ZSBPY3QgIDcgMjM6MTk6MzkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oIGluY2x1ZGUvbGlieG1sL3hwYXRoLmgKKwkgIGluY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmggeHBhdGguYzogY2xlYW5pbmcgdXAgWFBhdGgKKwkgIGVycm9yIHJlcG9ydGluZyB0aGF0IHRpbWUuIAorCSogdGhyZWFkcy5jOiBhcHBsaWVkIHRoZSB0d28gcGF0Y2hlcyBmb3IgVExTIHRocmVhZHMKKwkgIG9uIFdpbmRvd3MgZnJvbSBKZXNzZSBQZWx0b24KKwkqIHBhcnNlci5jOiB0aW55IHNhZmV0eSBwYXRjaCBmb3IgeG1sU3RyUHJpbnRmKCkgbWFrZSBzdXJlIHRoZQorCSAgcmV0dXJuIGlzIGFsd2F5cyB6ZXJvIHRlcm1pbmF0ZWQuIFNob3VsZCBhbHNvIGhlbHAgZGV0ZWN0aW5nCisJICBwYXNzaW5nIHdyb25nIGJ1ZmZlciBzaXplIGVhc2lsbHkuCisJKiByZXN1bHQvVkMvKiByZXN1bHQvdmFsaWQvcnNzLnhtbC5lcnIgcmVzdWx0L3ZhbGlkL3hsaW5rLnhtbC5lcnI6CisJICB1cGRhdGVkIHRoZSByZXN1bHRzIHRvIGZvbGxvdyB0aGUgZXJyb3JzIHN0cmluZyBnZW5lcmF0ZWQgYnkKKwkgIGxhc3QgY29tbWl0LgorCitUdWUgT2N0ICA3IDE0OjE2OjQ1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBsYXN0IGNsZWFudXAgb2YgZXJyb3IKKwkgIGhhbmRsaW5nIGluIHRoZSBSZWxheC1ORyBtb2R1bGUuCisKK1R1ZSBPY3QgIDcgMTM6MzA6MzkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYyByZWxheG5nLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogc3dpdGNoZWQgUmVsYXgtTkcKKwkgIG1vZHVsZSB0byB0ZWggbmV3IGVycm9yIHJlcG9ydGluZy4gQmV0dGVyIGRlZmF1bHQgcmVwb3J0LCBhZGRzCisJICB0aGUgZWxlbWVudCBhc3NvY2lhdGVkIGlmIGZvdW5kLCBjb250ZXh0IGFuZCBub2RlIGFyZSBpbmNsdWRlZAorCSAgaW4gdGhlIHhtbEVycm9yCisJKiBweXRob24vdGVzdHMvcmVhZGVyMi5weTogdGhlIGVycm9yIG1lc3NhZ2VzIGNoYW5nZWQuCisJKiByZXN1bHQvcmVsYXhuZy8qOiBlcnJvciBtZXNzYWdlIGNoYW5nZWQgdG9vLgorCitNb24gT2N0ICA2IDEwOjQ2OjM1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLmJjYiB3aW4zMi9NYWtlZmlsZS5taW5ndyB3aW4zMi9NYWtlZmlsZS5tc3ZjCisJICB3aW4zMi9jb25maWd1cmUuanM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBTdMOpcGhhbmUgQmlkb3VsIHRvCisJICBmaXggdGhlIGNvbXBpbGF0aW9uIG9mIDIuNi4wIGNvZGUgb24gV2luMzIKKworTW9uIE9jdCAgNiAxMDoxNjozMCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaGVjay14bWwtdGVzdC1zdWl0ZS5weTogZml4aW5nIHRoZSBzY3JpcHQKKwkqIHBhcnNlci5jOiByZXBsYWNlIHNlcXVlbmNlcyBvZiBSQVcgJiYgTlhUKC4pID09ICcuJyB3aXRoCisJICBtZW1jbXAgY2FsbHMsIHNlZW1zIHRvIG5vdCBicmVhayBjb25mb3JtYW5jZSwgc2xpZ2h0bHkgaW5mbGF0ZQorCSAgdGhlIHNpemUgb2YgdGhlIGdjYyBnZW5lcmF0ZWQgY29kZSB0aG91Z2guCisKK1N1biBPY3QgIDUgMjM6MzA6NDggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmMgcGFyc2VyLmMgdmFsaWQuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaDoKKwkgIG1vcmUgY2xlYW51cCBvZiBlcnJvciBoYW5kbGluZyBpbiBwYXJzZXJJbnRlcm5hbHMsIHNoYXJpbmcgdGhlCisJICByb3V0aW5lIGZvciBtZW1vcnkgZXJyb3JzLgorCitTdW4gT2N0ICA1IDE1OjQ5OjE0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyBNYWtlZmlsZS5hbSBsZWdhY3kuYyBwYXJzZXIuYyBwYXJzZXJJbnRlcm5hbHMuYworCSAgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogbW9yZSBjb2RlIGNsZWFudXAsIGVzcGVjaWFsbHkgYXJvdW5kCisJICBlcnJvciBtZXNzYWdlcywgdGhlIEhUTUwgcGFyc2VyIGhhcyBub3cgYmVlbiB1cGdyYWRlZCB0byB0aGUgbmV3CisJICBoYW5kbGluZy4KKwkqIHJlc3VsdC9IVE1MLyo6IGEgZmV3IGNoYW5nZXMgaW4gdGhlIHJlc3VsdGluZyBlcnJvciBtZXNzYWdlcworCitTYXQgT2N0ICA0IDIzOjA2OjQxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IG1vcmUgZXJyb3Ivd2FybmluZworCSAgaGFuZGxpbmcgY2xlYW51cHMsIHRoZSBYTUwgcGFyc2VyIG1vZHVsZSBzaG91bGQgYmUgb2theSBub3cuCisKK1NhdCBPY3QgIDQgMDE6NTg6MjcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluIHhtbGR3YWxrLmMgaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW0KKwkgIGluY2x1ZGUvbGlieG1sL3htbGR3YWxrLmggaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOgorCSAgaW50ZWdyYXRlZCB0aGUgeG1sRG9jV2Fsa2VyIEFQSSBnaXZlbiBieSBBbGZyZWQgTWlja2F1dHNjaCwKKwkgIGFuZCBwcm92aWRpbmcgYW4geG1sUmVhZGVyIGxpa2UgQVBJIGJ1dCB3b3JraW5nIG9uIGEgeG1sRG9jUHRyLgorCitTYXQgT2N0ICA0IDAwOjE4OjI5IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBtb3JlIGNsZWFudXAgaW4gbWFrZSB0ZXN0cworCSogZXJyb3IuYyB2YWxpZC5jIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmg6IG1vcmUgd29yaworCSAgaW4gdGhlIHRyYW5zaXRpb24gdG8gdGhlIG5ldyBlcnJvciByZXBvcnRpbmcgc3RyYXRlZ3kuCisJKiBweXRob24vdGVzdHMvcmVhZGVyMi5weSAgcmVzdWx0L1ZDLyogcmVzdWx0L3ZhbGlkLyo6CisJICBmZXcgY2hhbmdlcyBpbiB0aGUgc3RyaW5ncyBnZW5lcmF0ZWQgYnkgdGhlIHZhbGlkYXRpb24gb3V0cHV0CisKK0ZyaSBPY3QgIDMgMDA6MTk6MDIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGNoYW5nZWQgJ21ha2UgdGVzdHMnIHRvIHVzZSBhIGNvbmNpc2Ugb3V0cHV0LAorCSAgc2Nyb2xsaW5nIHRvIHNlZSB3aGVyZSB0aGluZyBicm9rZSB3YXNuJ3QgcGxlYXNhbnQKKwkqIGNvbmZpZ3VyZS5pbjogc29tZSBiZXRhNCBwcmVwYXJhdGlvbiwgYnV0IG5vdCByZWFkeSB5ZXQKKwkqIGVycm9yLmMgZ2xvYmFscy5jIGluY2x1ZGUvbGlieG1sL2dsb2JhbHMuaCBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOgorCSAgbmV3IGVycm9yIGhhbmRsaW5nIGNvZGUsIGxhc3QgZXJyb3IgaW5mb3JtYXRpb25zIGFyZSBzdG9yZWQKKwkgIGluIHRoZSBwYXJzaW5nIGNvbnRleHQgb3IgYSBnbG9iYWwgdmFyaWFibGUsIG5ldyBBUElzIHRvCisJICBoYW5kbGUgdGhlIHhtbEVycm9yUHRyIHR5cGUuCisJKiBwYXJzZXIuYyBwYXJzZXJJbnRlcm5hbHMuYyB2YWxpZC5jIDogc3RhcnRlZCBtaWdyYXRpbmcgdG8gdGhlCisJICBuZXcgZXJyb3IgaGFuZGxpbmcgY29kZSwgaXQncyBhIHJveWFsIHBhaW4uCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaDoKKwkgIG1vdmVkIHRoZSBkZWZpbml0aW9uIG9mIHhtbE5ld1BhcnNlckN0eHQoKQorCSogcGFyc2VyLmM6IHNtYWxsIHBvdGVudGlhbCBidWZmZXIgYWNjZXNzIHByb2JsZW0gaW4gcHVzaCBjb2RlCisJICBwcm92aWRlZCBieSBKdXN0aW4gRmxldGNoZXIKKwkqIHJlc3VsdC8qLnNheCByZXN1bHQvVkMvUEVOZXN0aW5nKiByZXN1bHQvbmFtZXNwYWNlcy8qCisJICByZXN1bHQvdmFsaWQvKi5lcnI6IHNvbWUgZXJyb3IgbWVzc2FnZXMgd2VyZSBzbGlndGhseSBjaGFuZ2VkLgorCitUaHUgT2N0ICAyIDEzOjAxOjEzIDIwMDMgIEFsZWtzZXkgU2FuaW4gIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBwYXJzZXIuYzogaW50cm9kdWNlZCB4bWxTdHJQcmludGYKKwlmdW5jdGlvbiAod3JhcHBlciBhcm91bmQgc25wcmludGYpCisKK1dlZCBPY3QgIDEgMjE6MTI6MDYgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW50aXRpZXMuYzogRml4IGVycm9yIG9uIG91dHB1dCBvZiBoaWdoIGNvZGVwb2ludCBjaGFycmVmIGxpa2UKKwkgICYjeDEwRkZGRjsgLCByZXBvcnRlZCBieSBFcmljIEhhbmNocm93CisKK1dlZCBPY3QgIDEgMTQ6MjA6MTAgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogRE9DQnBhcnNlci5jIGluY2x1ZGUvbGlieG1sL0RPQ0JwYXJzZXIuaDogbGV0J3Mgc2VlIGhvdyBtdWNoCisJICBvZiBhIHBhaW4gbXVycmF5YyBpcyByZWFsbHkgZ29ubmEgYmUuCisKK1dlZCBPY3QgIDEgMTE6MDM6NDAgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IEFwcGxpZWQgZml4IGZvciBidWcgIzEyMzQ4MSByZXBvcnRlZCBieSBQZXRlciBEZXJyCisKK1R1ZSBTZXAgMzAgMTU6MzQ6MzEgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW50aXRpZXMuYyBsZWdhY3kuYyBwYXJzZXIuYzogbWFkZSB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcworCSAgc3RhdGljIHByZWRlZmluZWQgc3RydWN0dXJlcyB0byBhdm9pZCB0aGUgd29yaywgbWVtb3J5IGFuZAorCSAgaGF6YXJkcyBhc3NvY2lhdGVkIHRvIGluaXRpYWxpemF0aW9uL2NsZWFudXAuCisKK1R1ZSBTZXAgMzAgMTQ6MzA6NDcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbiBsZWdhY3kuYyBwYXJzZXIuYworCSAgcGFyc2VySW50ZXJuYWxzLmMgdGVzdEhUTUwuYyB4bWxsaW50LmMgaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oCisJICBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOiBhZGRlZCBhIG5ldyBjb25maWd1cmUKKwkgIG9wdGlvbiAtLXdpdGgtcHVzaCwgc29tZSBjbGVhbnVwcywgY2hhc2VkIGNvZGUgc2l6ZSBhbm9tYWxpZXMuCisJICBOb3cgYSBsaWJyYXJ5IGNvbmZpZ3VyZWQgLS13aXRoLW1pbmltdW0gaXMgYXJvdW5kIDE1MEtCLAorCSAgc291bmRzIGdvb2QgZW5vdWdoLgorCitUdWUgU2VwIDMwIDEyOjMxOjAwIEFFU1QgMjAwMyBNYWxjb2xtIFRyZWRpbm5pY2sgPG1hbGNvbG1AY29tbXNlY3VyZS5jb20uYXU+CisKKwkqIGxpYnhtbC0yLjAtdW5pbnN0YWxsZWQucGMuaW46IE5ldyBmaWxlIGZvciBidWlsZGluZyBhZ2FpbnN0CisJdW5pbnN0YWxsZWQgbGlieG1sMiBidWlsZHMuCisJKiBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmFtOiBTdXBwb3J0IHRoZSAqLXVuaW5zdGFsbGVkLnBjIGZpbGUuCisJKiAuY3ZzaWdub3JlOiBJZ25vcmUgdGhlIG5ldyBnZW5lcmF0ZWQgKi5wYyBmaWxlLgorCitUdWUgU2VwIDMwIDAyOjM4OjE2IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIFNBWC5jIFNBWDIuYyBjb25maWd1cmUuaW4gZ2xvYmFscy5jIHBhcnNlci5jCisJICBwYXJzZXJJbnRlcm5hbHMuYyB0ZXN0UmVhZGVyLmMgdGVzdFNBWC5jIHhtbElPLmMgeG1sbGludC5jCisJICB4bWxyZWFkZXIuYyBleGFtcGxlL2dqb2JyZWFkLmMgaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOgorCSAgYWRkZWQgMiBuZXcgY29uZmlndXJlIG9wdGlvbjogLS13aXRoLXJlYWRlciAtLXdpdGgtc2F4MQorCSAgdG8gYWxsb3cgcmVtb3ZpbmcgdGhlIHJlYWRlciBvciBub24teG1sUmVhZHh4eCgpIGludGVyZmFjZXMuCisKK01vbiBTZXAgMjkgMTk6NTg6MjYgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGVudGl0aWVzLmMgdHJlZS5jIHZhbGlkLmMgeG1sbGludC5jCisJICBpbmNsdWRlL2xpYnhtbC90cmVlLmggaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOgorCSAgQWRkaW5nIGEgY29uZmlndXJlIG9wdGlvbiB0byByZW1vdmUgdHJlZSBtYW5pcHVsYXRpb24KKwkgIGNvZGUgd2hpY2ggaXMgbm90IHN0cmljdGx5IG5lZWRlZCBieSB0aGUgcGFyc2VyLgorCitNb24gU2VwIDI5IDE1OjIzOjQxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG5hbm9mdHAuYyBuYW5vaHR0cC5jOiBsYXN0IGZpbmlzaGluZyB0b3VjaCB0byB0aGUgQmVPUworCSAgcGF0Y2ggZnJvbSBNYXJjaW4gJ1NoYXJkJyBLb25pY2tpCisKK01vbiBTZXAgMjkgMTU6MTU6MDggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHRyZWUuYyBTQVgyLmMgYzE0bi5jIGNhdGFsb2cuYyBjb25maWd1cmUuaW4gZGVidWdYTUwuYworCSAgZW5jb2RpbmcuYyBlbnRpdGllcy5jIG5hbm9mdHAuYyBuYW5vaHR0cC5jIHBhcnNlci5jIHJlbGF4bmcuYworCSAgdGVzdEF1dG9tYXRhLmMgdGVzdEMxNE4uYyB0ZXN0SFRNTC5jIHRlc3RSZWdleHAuYyB0ZXN0UmVsYXguYworCSAgdGVzdFNjaGVtYXMuYyB0ZXN0WFBhdGguYyB0aHJlYWRzLmMgdHJlZS5jIHZhbGlkLmMgeG1sSU8uYworCSAgeG1sY2F0YWxvZy5jIHhtbGxpbnQuYyB4bWxtZW1vcnkuYyB4bWxyZWFkZXIuYyB4bWxzY2hlbWFzLmMKKwkgIGV4YW1wbGUvZ2pvYnJlYWQuYyBpbmNsdWRlL2xpYnhtbC9IVE1MdHJlZS5oIGluY2x1ZGUvbGlieG1sL2MxNG4uaAorCSAgaW5jbHVkZS9saWJ4bWwvY2F0YWxvZy5oIGluY2x1ZGUvbGlieG1sL2RlYnVnWE1MLmgKKwkgIGluY2x1ZGUvbGlieG1sL2VudGl0aWVzLmggaW5jbHVkZS9saWJ4bWwvbmFub2h0dHAuaAorCSAgaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oIGluY2x1ZGUvbGlieG1sL3RyZWUuaAorCSAgaW5jbHVkZS9saWJ4bWwvdmFsaWQuaCBpbmNsdWRlL2xpYnhtbC94bWxJTy5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmggaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluCisJICBpbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oIHB5dGhvbi9saWJ4bWwuYzoKKwkgIE9rYXkgdGhpcyBpcyBzY2FyeSBidXQgaXQgaXMganVzdCBhZGRpbmcgYSBjb25maWd1cmUgb3B0aW9uCisJICB0byBkaXNhYmxlIG91dHB1dCwgdGhpcyB0b3VjaGVzIG1vc3Qgb2YgdGhlIGZpbGVzLgorCitNb24gU2VwIDI5IDEyOjUzOjU2IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbG1lbW9yeS5jOiBiZXR0ZXIgZml4LCBhdm9pZHMgYnJlYWtpbmcgdGhlIHB5dGhvbiBiaW5kaW5ncworCitNb24gU2VwIDI5IDExOjIxOjMzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbG1lbW9yeS5jOiBmaXggYSBjb21waWxhdGlvbiBwcm9ibGVtIHdoZW4gY29uZmlndXJpbmcKKwkgIHdpdGggZGVidWcgYnV0IHdpdGhvdXQgbWVtLWRlYnVnCisKK1N1biBTZXAgMjggMjA6NTM6MTcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGNsZWFudXAsIGNyZWF0aW5nIGEgbmV3IGxlZ2FjeS5jIG1vZHVsZSwKKwkgIG1hZGUgc3VyZSBtYWtlIHRlc3RzIHJhbiBpbiByZWR1Y2VkIGNvbmRpdGlvbnMKKwkqIFNBWC5jIFNBWDIuYyBjb25maWd1cmUuaW4gZW50aXRpZXMuYyBnbG9iYWxzLmMgcGFyc2VyLmMKKwkgIHBhcnNlckludGVybmFscy5jIHRyZWUuYyB2YWxpZC5jIHhsaW5rLmMgeG1sSU8uYyB4bWxjYXRhbG9nLmMKKwkgIHhtbG1lbW9yeS5jIHhwYXRoLmMgeG1sbWVtb3J5LmMgaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluOgorCSAgaW5jcmVhc2VkIHRoZSBtb2R1bGFyaXphdGlvbiwgYWxsb3cgdG8gY29uZmlndXJlIG91dCAKKwkgIHZhbGlkYXRpb24gY29kZSBhbmQgbGVnYWN5IGNvZGUsIGFkZGVkIGEgY29uZmlndXJhdGlvbgorCSAgb3B0aW9uIC0td2l0aC1taW5pbXVtIGNvbXBpbGluZyBvbmx5IHRoZSBtYW5kYXRvcnkgY29kZQorCSAgd2hpY2ggdGhlbiBzaHJpbmsgdG8gMjAwS0IuCisKK1N1biBTZXAgMjggMDI6MTU6MDcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeCBhIGJ1ZyByYWlzZWQgYnkgdGhlIE1pcHMgY29tcGlsZXIuCisJKiBpbmNsdWRlL2xpYnhtbC9TQVguaCBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogbW92ZSB0aGUgCisJICBTQVh2MSBibG9jayBkZWZpbml0aW9ucyB0byBwYXJzZXIuaCBmaXhlcyBidWcgIzEyMzM4MAorCSogeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmg6IHJlaW5zdGFuY2lhdGUKKwkgIHRoZSBhdHRyaWJ1dGUgYW5kIGVsZW1lbnQgcG9vbCBib3JrZW4gMiBjb21taXRzIGFnby4KKwkgIFN0YXJ0IHBsYXlpbmcgd2l0aCBhbiBlbnRyeSBwb2ludCB0byBwcmVzZXJ2ZSBhIHN1YnRyZWUuCisJKiBlbnRpdGllcy5jOiByZW1vdmUgYSB3YXJuaW5nLgorCitTYXQgU2VwIDI3IDEyOjE5OjM4IFBEVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBlbmNvZGluZy5jLCBwYXJzZXIuYywgcmVsYXhuZy5jOiBmdXJ0aGVyIChmaW5hbD8pIG1pbm9yCisJICBjaGFuZ2VzIGZvciBjb21waWxhdGlvbiB3YXJuaW5ncy4gTm8gY2hhbmdlIHRvIGxvZ2ljLgorCitGcmkgU2VwIDI2IDE4OjAzOjQyIFBEVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBwYXJzZXIuYzogZml4ZWQgc21hbGwgcHJvYmxlbSB3aXRoIG1pc3NpbmcgZW50aXRpZXMgKHRlc3QvZW50MikKKworU2F0IFNlcCAyNyAwMToyNTozOSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogV2lsbGlhbSdzIGNoYW5nZSBhbGxvd2VkIHRvIHNwb3QgYSBuYXN0eSBidWcgaW4geG1sRG9SZWFkCisJICBpZiB0aGUgcmVzdWx0IGlzIG5vdCB3ZWxsIGZvcm1lZCB0aGF0IGN0eHQtPm15RG9jIGlzIG5vdCBOVUxMCisJICBhbmQgdXNlcyB0aGUgY29udGV4dCBkaWN0aW9ubmFyeS4KKworRnJpIFNlcCAyNiAyMTowOTozNCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogb3RoZXIgcGF0Y2hlcyBmcm9tIFdpbGxpYW0gQnJhY2sgdG8gYXZvaWQKKwkgIGNvbXBpbGF0aW9uIHdhcm5pbmdzIG9uIEFJWC4KKworRnJpIFNlcCAyNiAxMTowMzowOCBQRFQgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogSFRNTHBhcnNlci5jLCBlbnRpdGllcy5jLCB4bWxyZWFkZXIuYzogbWlub3IgY2hhbmdlIHRvCisJICBhdm9pZCBjb21waWxhdGlvbiB3YXJuaW5ncyBvbiBzb21lIChlLmcuIEFJWCkgc3lzdGVtcworCitGcmkgU2VwIDI2IDE2OjQ5OjI1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlckludGVybmFscy5jOiBmaXhlZCBhIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcHJvYmxlbQorCSAgd2hlbiBmb3JtYXR0aW5nICJkZXByZWNhdGVkIFNBWHYxIGZ1bmN0aW9uIGlnbm9yYWJsZVdoaXRlc3BhY2UiCisJICBjb3VsZCBiZSByZXByb2R1Y2VkIGJ5IHhtbGxpbnQgLS1mb3JtYXQKKworRnJpIFNlcCAyNiAxNTo1MDo0NCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvbGlieG1sMi1hcGkueG1sOiByZWJ1aWx0IHRoZSBBUEkKKwkqIHhtbGxpbnQuYyBkb2MveG1sbGludC4xIGRvYy94bWxsaW50LnhtbDogYWRkZWQgdGhlIG5ldyBvcHRpb25zCisJICAtLW5vY2RhdGEgYW5kIC0tbnNjbGVhbiB0byByZW1vdmUgQ0RBVEEgc2VjdGlvbiBhbmQgc3VycGVyZmx1b3VzCisJICBuYW1lc3BhY2UgZGVjbGFyYXRpb25zCisJKiBwYXJzZXIuYyBTQVgyLmM6IGltcGxlbWVudGF0aW9uIG9mIHRoZSAyIG5ldyBvcHRpb25zCisKK0ZyaSBTZXAgMjYgMTQ6NDE6NTMgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIHRlc3RIVE1MLmMgeG1sbGludC5jIGluY2x1ZGUvbGlieG1sL0hUTUxwYXJzZXIuaDoKKwkgIGFkZGVkIHRoZSBzYW1lIGh0bWxSZWFkIEFQSXMgdGhhbiB0aGVpciBYTUwgY291bnRlcnBhcnRzCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogbmV3IHBhcnNlciBvcHRpb25zLCBub3QgeWV0IGltcGxlbWVudGVkLAorCSAgYWRkZWQgYW4gb3B0aW9ucyBmaWVsZCB0byB0aGUgY29udGV4dC4KKwkqIHRyZWUuYzogcGF0Y2ggZnJvbSBTaGF1biBNY0NhbmNlIHRvIGZpeCBidWcgIzEyMzIzOCB3aGVuIF1dPgorCSAgaXMgZm91bmQgd2l0aGluIGEgY2RhdGEgc2VjdGlvbi4KKwkqIHJlc3VsdC9ub2VudC9jZGF0YTIgcmVzdWx0L2NkYXRhMiByZXN1bHQvY2RhdGEyLnJkcgorCSAgcmVzdWx0L2NkYXRhMi5zYXggdGVzdC9jZGF0YTI6IGFkZCBvbmUgbW9yZSBjZGF0YSB0ZXN0CisKK1RodSBTZXAgMjUgMjM6MDM6MjMgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgeG1sbGludC5jIGRvYy9saWJ4bWwyLWFwaS54bWwgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6CisJICBDaGFuZ2VkIHRoZSBuZXcgeG1sUmVhZC94bWxDdHh0UmVhZCBBUElzIHRvIGhhdmUgYW4gZXh0cmEKKwkgIGJhc2UgVVJMIHBhcmFtZXRlciB3aGVuIG5vdCBsb2FkaW5nIGZyb20gYSBmaWxlIG9yIFVSTC4KKworVGh1IFNlcCAyNSAxNjoyMzo1OCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyBhIGJldGEzIHNvbHZpbmcgdGhlIEFCSSBwcm9ibGVtcworCSogZ2xvYmFscy5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHRlc3RIVE1MLmMgSFRNTHBhcnNlci5jIFNBWC5jCisJICBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggaW5jbHVkZS9saWJ4bWwvU0FYLmg6IG1ha2Ugc3VyZSB0aGUKKwkgIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRoZSBkZWZhdWx0IFNBWCBoYW5kbGVyIGFyZSBWMSBvbmVzIHRvCisJICBhdm9pZCBBQkkgY29tcGF0IHByb2JsZW1zLgorCSogeG1scmVhZGVyLmM6IGNsZWFudXAgb2YgdW5lZWRlZCBjb2RlCisJKiBoYXNoLmM6IGZpeCBhIGNvbW1lbnQKKworVGh1IFNlcCAyNSAxNDoxNjo1MSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVgyLmMgaGFzaC5jIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3htbGV4cG9ydHMuaCAKKwkgIGluY2x1ZGUvbGlieG1sL3htbG1lbW9yeS5oIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbjoKKwkgIGZpeGluZyBzb21lIGNvbW1lbnRzIHRvIGF2b2lkIHdhcm5pbmdzIGZyb20gYXBpYnVpbGQucHkKKworV2VkIFNlcCAyNCAyMzo0MjowOCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9jb25maWd1cmUuanM6IHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bCBmb3IgY29uZmlndXJpbmcKKwkgIHRoZSBiZXRhMiB2ZXJzaW9uICMxMjMxMDQKKworV2VkIFNlcCAyNCAyMzoxNzo1OSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogYWRkaW5nIHJlcGVhdGVkIHBhcnNpbmcgYW5kIHZhbGlkYXRpbmcgdGVzdHMKKwkqIFNBWDIuYyBwYXJzZXIuYyB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IG1ha2UgdGhlIG5ldworCSAgRE9NIHRyZWUgYnVpbGRpbmcgaW50ZXJmYWNlcyB1c2UgdGhlIGRpY3Rpb25hcnkgZnJvbSB0aGUgCisJICBwYXJzaW5nIGNvbnRleHQgdG8gYnVpbGQgdGhlIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZXMgbmFtZXMKKwkgIGFzIHdlbGwgYXMgZm9ybWF0dGluZyBzcGFjZXMgYW5kIHNob3J0IHRleHQgbm9kZXMKKwkqIGluY2x1ZGUvbGlieG1sL2RpY3QuaCBkaWN0LmM6IGFkZGVkIHNvbWUgcmVmZXJlbmNlIGNvdW50aW5nCisJICBmb3IgeG1sRGljdFB0ciBiZWNhdXNlIHRoZXkgY2FuIGJlIHNoYXJlZCBieSBkb2N1bWVudHMgYW5kCisJICBhIHBhcnNlciBjb250ZXh0LgorCSogeG1scmVhZGVyLmM6IGEgYml0IG9mIGNsZWFudXAsIHJlbW92ZSB0aGUgc3BlY2lmaWMgdHJlZSBmcmVlaW5nCisJICBmdW5jdGlvbnMgYW5kIHVzZSB0aGUgc3RhbmRhcmQgb25lcyBub3cuCisJKiB4bWxsaW50LmM6IGFkZCAtLW5vZGljdAorCSogcHl0aG9uL2xpYnhtbC5jOiBmaXggYSBzdHVwaWQgYnVnIHNvIHRoYXQgbnMoKSB3b3JrcyBvbiAKKwkgIGF0dHJpYnV0ZSBub2Rlcy4KKworVHVlIFNlcCAyMyAyMzowNzo0NSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogYWRkaW5nIGEgbmV3IHNldCBvZgorCSAgQVBJIGZvciBwYXJzaW5nIHhtbFJlYWREb2MoKSB4bWxSZWFkRmlsZSgpIC4uLiB4bWxSZWFkSU8oKQorCSAgYW5kIHhtbEN0eHRSZWFkRG9jKCkgLi4uIHhtbEN0eHRSZWFkSU8oKS4gVGhhdCB3aXRoCisJICBhIGNsZWFyIGRlZmluZSBvZiB4bWxQYXJzZXJPcHRpb24sIHhtbEN0eHRVc2VPcHRpb25zKCkKKwkgIHNob3VsZCBzaW1wbGlmeSBjdXN0b20gcGFyc2luZyB3aXRob3V0IGJlaW5nIHRlbXB0ZWQgdG8KKwkgIHVzZSBnbG9iYWwgdmFyaWFibGVzLCBhbmQgeG1sQ3R4dFJlc2V0KCkgc2hvdWxkIGFsbG93IHJldXNlCisJICBvZiBhIGNvbnRleHQgZm9yIG11bHRpcGxlIHBhcnNpbmcuCisJKiB4bWxsaW50LmM6IHN3aXRjaGVkIHRvIHVzZSB4bWxSZWFkWFhYLCBhbGxvdyBvcHRpb25zIHRvCisJICBiZSB1c2VkIHNpbXVsdGFuZW91c2x5IHdpdGggbGVzcyB0cm91Ymxlcy4KKwkqIHRyZWUuYzogc2ltcGxlIHdhcm5pbmcgcmVtb3ZhbAorCSogZG9jL2FwaWJ1aWxkLnB5OiBzbWFsbCBmaXgKKwkqIGRvYy9saWJ4bWwyLWFwaS54bWwgd2luMzIvbGlieG1sMi5kZWYuc3JjOiB1cGRhdGVkCisKK1R1ZSBTZXAgMjMgMTE6MTU6MjMgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHJldmVydCB4bWxDcmVhdGVEb2NQYXJzZXJDdHh0KCkgc2luY2UgdGhpcyBicmVhaworCSAgdGhlIHBhcnNlRG9jKCkgcHl0aG9uIGJpbmRpbmdzCisKK1R1ZSBTZXAgMjMgMTE6MDA6MTggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IG1ha2Ugc3VyZSB4bWxEZXRlY3RTQVgyKCkgaXMgY2FsbGVkIG9ubHkgYXQgCisJICBwYXJzaW5nIHRpbWUgdG8gYXZvaWQgYnJlYWtpbmcgYXBwcyBjaGFuZ2luZyB0aGUgU0FYCisJICBjYWxsYmFja3MgYWZ0ZXIgY29udGV4dCBhbGxvY2F0aW9uLCBjaGFuZ2UgeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCgpCisJICB0byB1c2UgYW4gaW1tdXRhYmxlIGJ1ZmZlciBpbnN0ZWFkIG9mIGEgY29weQorCitUdWUgU2VwIDIzIDA5OjQwOjMzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNYXJrdXMgS2VpbSBmaXhpbmcgYSBwcm9ibGVtCisJICB3aXRoIEkvTyBjYWxsYmFjayByZWdpc3RyYXRpb24uCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBmaXhlZCAjMTIyOTk0IGNvbW1lbnQgbnVtYmVyaW5nCisJICBmb3IgeG1sUGFyc2VyRXJyb3JzCisKK01vbiBTZXAgMjIgMTI6MjE6MTEgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogdGhlIHVyaSBhcmcgdG8geG1sTm9kZVNldEJhc2UgaXMKKwkgIHJlYWxseSBhIGNvbnN0IHhtbENoYXIqCisJKiB4bWxyZWFkZXIuYyBpbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaDogYWRkaW4gdGhlCisJICB4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcoKSB0byBnZXQgYW4gaW50ZXJuZWQgc3RyaW5nIGZyb20KKwkgIHRoZSByZWFkZXIKKworU3VuIFNlcCAyMCAxNzoyMjoyMCBQRFQgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZXJyb3IuYzogZml4ZWQgYSB3YXJuaW5nIG1lc3NhZ2UgKHRyaXZpYWwpCisJKiBkb2Mvc2VhcmNoLnBocDogcmVtb3ZlZCBpbmNvcnJlY3Qgd2FybmluZyBtZXNzYWdlIHdoZW4gd29yZAorCSAgc2VhcmNoIG5vdCBmb3VuZCBpbiBsYXN0IG9mIG11bHRpcGxlIHRhYmxlcyAoYnVnIDExOTUzNSkKKworRnJpIFNlcCAxOSAxNDoyNjoyOCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyBhIDIuNi4wLWJldGEyIHJlbGVhc2UKKwkqIHhtbElPLmM6IGF2b2lkIGEgd2FybmluZworCSogdHJlZS5jOiBhdm9pZCBkdXBsaWNhdGUgY29kZSBpbiB4bWxSZXBsYWNlTm9kZSBhcyBwb2ludGVkIG91dAorCSAgYnkgQ2hyaXMgUnlsYW5kCisJKiBpbmNsdWRlL2xpYnhtbC9kaWN0Lmg6IGFkZCBhIFFOYW1lIGFjY2VzcyBsb29rdXAgdG8gdGhlCisJICBkaWN0aW9uYXJ5LgorCSogeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmg6IGFkZGluZyBjb25zdCBhY2Nlc3MKKwkgIGJhc2VkIG9uIHRoZSBkaWN0aW9uYXJ5IGludGVyZmFjZSBmb3Igc3RyaW5nIHJlYWQgZnJvbSB0aGUKKwkgIHJlYWRlciwgdGhlIG5vZGUgY29udGVudCBhY2Nlc3MgaXMgc3RpbGwgVE9ETywgaXQncyB0b28gZGlmZmVyZW50CisKK0ZyaSBTZXAgMTkgMDA6MDE6MDggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYMi5jOiBmaXhpbmcgbmFtZXNwYWNlIERURCB2YWxpZGF0aW9ucworCSogcmVzdWx0L3ZhbGlkL25zMi54bWwgcmVzdWx0L3ZhbGlkL25zLnhtbDogdGhlIG91dHB1dCBvZiBkZWZhdWx0ZWQKKwkgIG5hbWVzcGFjZXMgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IG5vdy4KKwkqIE1ha2VmaWxlLmFtOiByZXBvcnQgdGhlIG1lbW9yeSB1c2VkIGluIFRpbWluZ3Rlc3RzIChhcyB3ZWxsIGFzIHRpbWUpCisKK1RodSBTZXAgMTggMTU6Mjk6NDYgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGFkZCBzdHJlYW1pbmcgb24gbWVtb3J5IHJlZ3Jlc3Npb24gdGVzdHMsIGZvdW5kCisJICBiYWQgYnVncyBpbiB0aGUgcmVhZGVyIGludGVyZmFjZQorCSogeG1scmVhZGVyLmM6IGZpeGluZyBidWdzIHcuci50LiB2ZXJ5IGxhcmdlIG5hbWVzLCBhbmQgc3BlY2lhbAorCSAgY29uZGl0aW9uIGluIGVuZCBvZiBmaWxlLgorCSogeG1sSU8uYyB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvdHJlZS5oIGluY2x1ZGUvbGlieG1sL3htbElPLmg6CisJICBhZGRpbmcgaW1tdXRhYmxlIGJ1ZmZlcnMsIGFuZCBwYXJzZXIgaW5wdXQgYmFzZWQgb24gdGhvc2UsCisJICBidXQgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgKHlldCkgZm9yIGdlbmVyYWwgcGFyc2luZworCSogcGFyc2VyLmM6IGFkZGVkIGEgY29tbWVudCBhYm91dCB1c2luZyBpbW11dGFibGUgYnVmZmVycyBmb3IKKwkgIGdlbmVyYWwgcGFyc2luZy4KKwkqIHJlc3VsdC9iaWduYW1lLnhtbC5yZHIgcmVzdWx0L2JpZ25hbWUyLnhtbC5yZHI6IGZpeGluZyB0aGUKKwkgIG91dHB1dCBvZiB0aGUgcmVncmVzc2lvbiB0ZXN0cworCSogeG1sbGludC5jOiB1c2luZyB0aGUgaW1tdXRhYmxlIGJ1ZmZlcnMgd2hlbiBzdHJlYW1pbmcgb24KKwkgIG1tYXBlZCBmaWxlICgtLXN0cmVhbSAtLW1lbW9yeSkKKworVGh1IFNlcCAxOCAxMjowNDo1MCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkaWN0LmM6IHRoZSBsYXN0IHBhdGNoIGJyb2tlIHVuaWNpdHkgb2YgcmV0dXJuZWQgc3RyaW5ncywgcmVtb3ZlZAorCitUaHUgU2VwIDE4IDAwOjMxOjAyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBhZGQgYSBUaW1pbmd0ZXN0cyB0YXJnZXQgdG8gY2hlY2sgYmFkIGJlaGF2aW91cgorCSAgZnJvbSB0aGUgc3RyZWFtaW5nIGVuZ2luZQorCSogZGJnZW4ucGwgZGJnZW5hdHRyLnBsOiBwZXJsIHNjcmlwdCB0byBnZW5lcmF0ZSBiaWcgaW5zdGFuY2VzCisJKiB4bWxyZWFkZXIuYzogZml4IGEgYmFkIGJlaGF2aW91ciBvbiBsYXJnZSBidWZmZXIgaW5wdXRzCisKK1dlZCBTZXAgMTcgMjM6MjU6NDcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGljdC5jIHhtbHJlYWRlci5jOiB0d28gc21hbGwgaW1wcm92ZW1lbnRzCisKK1dlZCBTZXAgMTcgMjI6NTM6MzIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmM6IGF2b2lkIGEgbGVhayB3aXRoIHByZXZpb3VzIHBhdGNoCisKK1dlZCBTZXAgMTcgMjI6MDY6MTEgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiB1c2Ugc3RkZXJyIGFuZCBub3Qgc3Rkb3V0IGZvciBkZWZhdWx0IGVycm9ycworCSAgaW4gcHl0aG9uIGVudmlyb25tZW50IGJ1ZyAjMTIyNTUyCisKK1dlZCBTZXAgMTcgMjE6MzM6NTcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmM6IHNtYWxsIGZpeCBmcm9tIFJvYiBSaWNoYXJkcyBmb3IgaW5wdXQgZmlsZW5hbWUKKwkqIHhtbGxpbnQuYzogZml4ZXMgZm9yIC0tcmVwZWF0IGFuZCAtLW1lbW9yeS8tLXN0cmVhbSBmb3Igc3BlZWQgdGVzdHMKKwkqIHhtbElPOiBhZGRpbmcgYSBndWFyZCBpbiBvbmUgZnVuY3Rpb24KKworV2VkIFNlcCAxNyAxNTo1Nzo0NCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVgyLmMgeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IG1vcmUgcGVyZm9ybWFuY2UgaHVudGluZworCSAgcmVkdWNpbmcgbWVtb3J5IGFsbG9jYXRpb24gYW5kIGZyZWUgYW5kIGF2b2lkaW5nIGV4cGVuc2l2ZSByb3V0aW5lcworCitXZWQgU2VwIDE3IDEyOjIzOjQxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYyBwYXJzZXIuYyBwYXJzZXJJbnRlcm5hbHMuYyB4bWxyZWFkZXIuYzogc3RhcnRlZCBtZXNzaW5nCisJICBzZXJpb3VzbHkgd2l0aCBwZXItZG9jdW1lbnQgZGljdCBhbmQgZWxlbWVudCBhbmQgYXR0cmlidXRlIG5vZGVzCisJICByZXVzZSBpbiB0aGUgeG1sUmVhZGVyLiBUaGlzIHNlZW1zIHRvIGxlYWQgdG8gYW4gaW50ZXJlc3RpbmcKKwkgIHNwZWVkdXAgb2YgdGhlIHhtbFJlYWRlciBhbHJlYWR5LgorCitXZWQgU2VwIDE3IDAxOjA3OjU2IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRpY3QuYyBpbmNsdWRlL2xpYnhtbC9kaWN0Lmg6IGRvIHN0cmluZyBhbGxvY2F0aW9ucyBpbiBsYXJnZQorCSAgcG9vbHMsIGFsbG93aW5nIHRvIGZpbmQgaWYgYSBzdHJpbmcgcGVydGFpbiB0byBhIGRpY3QgcXVpY2tseQorCSogeG1sbGludC5jOiBmaXggLS1zdHJlYW0gLS1yZXBlYXQgLS10aW1pbmcKKwkqIE1ha2VmaWxlLmFtOiB0aGUgdGVzdFRocmVhZHMgcnVuIG91dHB1dCBzaG91bGQgYmUgc2Vlbi4KKworTW9uIFNlcCAxNSAxNjo0NjoyOCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVgyLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IHN0YXJ0aW5nIHdvcmsgb24gcmV1c2luZyB0aGUKKwkgIHBhcnNlciBkaWN0aW9uYXJ5IGZvciB0aGUgZWxlbWVudCBhbmQgYXR0cmlidXRlIHRhZyBuYW1lcy4KKwkgIEFkZCBwb29scyBmb3IgRWxlbWVudCBhbmQgQXR0cmlidXRlcyBpbiB0aGUgcGFyc2VyIGNvbnRleHQsCisJICB3aGljaCBzaG91bGQgaGVscCBzcGVlZGluZyB1cCB0aGUgcmVhZGVyLgorCSogTWFrZWZpbGUuYW0gcmVzdWx0LyoucmRyIDogYWRkaW5nIG5vbi1weXRob24gcmVhZGVyIHJlZ3Jlc3Npb24KKwkgIHRlc3RzLgorCitNb24gU2VwIDE1IDE0OjU0OjQyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYyBwYXJzZXIuYyB2YWxpZC5jOiBzdGFydGluZyB0byBjbGVhbnVwIHNvbWUgb2YgdGhlCisJICBwcm9ibGVtcyBleHBvc2VkIGJ5IHRoZSBXM0MvTklTVCByZWdyZXNzaW9uIHN1aXRlLgorCSogcmVzdWx0L2VudDcuc2F4IHJlc3VsdC94bWwyLnNheDogc21hbGwgZml4ZXMuCisKK01vbiBTZXAgMTUgMTE6NDY6NDcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IG1vcmUgcGFyc2VyIGVycm9yIGZhY3RvcmluZworCitTdW4gU2VwIDE0IDIxOjUzOjM5IFBEVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBIVE1MdHJlZS5jOiBGaXhlZCBidWcgMTIxMzk0IC0gbWlzc2luZyBucyBvbiBhdHRyaWJ1dGVzCisKK1N1biBTZXAgMTQgMjE6NDM6MzIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaDogZmFjdG9yaW5nIG9mIG1vcmUgCisJICBlcnJvciBoYW5kbGluZyBjb2RlLCBzZXJpb3VzIHNpemUgcmVkdWN0aW9uIGFuZCBtb3JlIGxpc2liaWxpdHkKKwkgIG9mIHRoZSByZXN1bHRpbmcgY29kZS4KKwkqIHBhcnNlckludGVybmFscy5jIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oCisJICBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogY2hhbmdpbmcgdGhlIHdheSBWQzpQcm9wZXIgR3JvdXAvUEUgTmVzdGluZworCSAgY2hlY2tzIGFyZSBkb25lLCB1c2UgYSBjb3VudGVyIGZvciBlbnRpdGllcy4gRW50aXRpZXMgd2hlcmUgZnJlZWQgYW5kCisJICByZWFsbG9jYXRlZCBhdCB0aGUgc2FtZSBhZGRyZXNzIGZhaWxpbmcgdGhlIGNoZWNrLgorCSogdHJlZS5jOiBhdm9pZCBhIHdhcm5pbmcKKwkqIHJlc3VsdC92YWxpZC8qIHJlc3VsdC9WQy8qOiB0aGlzIHNsaWdodGx5IGNoYW5nZXMgc29tZSB2YWxpZGF0aW9uCisJICBlcnJvciBtZXNzYWdlcy4KKworU3VuIFNlcCAxNCAxMTowMzoyNyBQRFQgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogdmFsaWQuYzogZml4ZWQgYnVnIDEyMTc1OSAtIGVhcmx5IGRlY2xhcmF0aW9uIG9mCisJICBhdHRyaWJ1dGUtbGlzdCBpbiBleHRlcm5hbCBEVEQKKworU2F0IFNlcCAxMyAxNDo0MjoxMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBzdGFydGluZyBjbGVhbmluZyB1cAorCSAgZXJyb3IgaGFuZGxpbmcsIGZhY3Rvcml6ZSBlcnJvciBwcm9jZXNzaW5nCisJKiBkb2MveG1sbGludC5odG1sOiB1cGRhdGUgb2YgdGhlIHBhZ2UsIHJlbW92ZSAtLXNnbWwKKworU2F0IFNlcCAxMyAwMjoxMzo1MCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBET0NCcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdGVzdERvY2Jvb2suYworCSAgeG1sbGludC5jIGRvYy94bWxsaW50LnhtbCBkb2MveG1sbGludC4xOiByZW1vdmluZyB0aGUgCisJICBicm9rZW4gcHNldWRvIFNHTUwgRG9jQm9vayBwYXJzZXIgY29kZS4KKworRnJpIFNlcCAxMiAxNzoyNDoxMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBmaXggYSBwcm9ibGVtIHdpdGggc3RyY3B5KCkgaW4geG1sWFBhdGhGb3JtYXROdW1iZXIoKQorCSAgdmFsZ3JpbmQgcG9pbnRlZCBvdXQgdGhlIHN0cmluZ3Mgb3ZlcmxhcHBlZC4gY2xlYW51cCAuCisKK0ZyaSBTZXAgMTIgMTE6NDM6MTIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBhcHBsaWVkIHNwZWVkdXAgdG8geG1sU2VhcmNoTnMoKSBhcyBzdWdnZXN0ZWQgYnkKKwkgIEx1Y2EgUGFkb3ZhbmkuIENsZWFuZWQgdXAgeG1sU2VhcmNoTnNCeUhyZWYoKSBpbiB0aGUgcHJvY2VzcworCSAgYXBwbHlpbmcgdGhlIHNhbWUgdHJpY2suCisKK0ZyaSBTZXAgMTIgMDE6MzY6MjAgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdHJlZS5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBhZGRpbmcgbmFtZXNwYWNlIGNoZWNraW5ncworCSAgd2hpbGUgbWFraW5nIHN1cmUgdGhleSBzdGlsbCBwYXJzZSBhcyB3ZWxsZm9ybWVkIGRvY3VtZW50cy4KKwkgIEFkZCBhbiBuc1dlbGxGb3JtZWQgc3RhdHVzIHJlcG9ydCB0byB0aGUgY29udGV4dCwgYW5kIAorCSAgcHJvdmlkZSBuZXcgYXBwcm9wcmlhdGUgZXJyb3IgY29kZXMuCisJKiBNYWtlZmlsZS5hbSByZXN1bHQvbmFtZXNwYWNlcy8qIHRlc3QvbmFtZXNwYWNlcy8qOiBhZGQgCisJICBzcGVjaWZpYyByZWdyZXNzaW9uIHRlc3RpbmcgZm9yIHRoZSBuZXcgbmFtZXNwYWNlIHN1cHBvcnQKKwkqIHRlc3QvYXR0NSByZXN1bHQvbm9lbnQvYXR0NSByZXN1bHQvYXR0NSByZXN1bHQvYXR0NS5zYXg6CisJICBhZGQgbW9yZSBjb3ZlcmFnZSBmb3IgdGhlIGF0dHJpYnV0ZSBwYXJzaW5nIGFuZCBub3JtYWxpemF0aW9uCisJICBjb2RlLgorCitGcmkgU2VwIDEyIDAxOjM0OjE5IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRocmVhZHMuYzogYmFja3BvcnQgb2YgYSB0aHJlYWQgYnVnZml4IGZyb20gMl81X1ggYnJhbmNoCisKK1RodSBTZXAgMTEgMTg6Mjk6MTggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGVkIGEgYnVnIGluIG9uZSBjb3JuZXIgY2FzZSBvZiBhdHRyaWJ1dGUgcGFyc2luZy4KKworVGh1IFNlcCAxMSAxNjoyMTo1MyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gZG9jLyogOiAyLjYuMGJldGExIGNoYW5nZXMKKwkqIFNBWDIuYyBoYXNoLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmM6IEZpeGluZyBhdHRyaWJ1dGUKKwkgIG5vcm1hbGl6YXRpb24sIG1pZ2h0IG5vdCBiZSB0b3RhbGx5IGZpeGVkIGJ1dCB0aGlzIHNob3VsZCAKKwkgIG1ha2Ugc3VyZSBTQVggZXZlbnQgcHJvdmlkZSB0aGUgcmlnaHQgc3RyaW5ncyBmb3IgYXR0cmlidXRlcworCSAgZXhjZXB0IGVudGl0aWVzIGZvciB3aGljaCBsaWJ4bWwyIGlzIGRpZmZlcmVudCBieSBkZWZhdWx0CisJICBUaGlzIHNob3VsZCBmaXggIzEwOTU2NAorCSogcmVzdWx0L2F0dHJpYi54bWwuc2F4IHJlc3VsdC9lbnQzLnNheCByZXN1bHQvcDNwLnNheDogbWlub3IgY2hhbmdlcworCSAgaW4gYXR0cmlidXRlIGNhbGxiYWNrIHZhbHVlcworCSogcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTQKKwkgIHJlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS00OiB0aGlzIGFsc28gZml4ZXMgYSBzdWJ0bGUKKwkgIGJ1ZyBpbiB0aGUgY2Fub25pY2FsaXphdGlvbiB0ZXN0cy4KKworV2VkIFNlcCAxMCAxMjozODo0NCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJVGltZSB0byBjb21taXQgMyBkYXlzIG9mIHdvcmsgcmV3cml0aW5nIHRoZSBwYXJzZXIgaW50ZXJuYWwsCisJZml4aW5nIGJ1Z3MgYW5kIG1pZ3JhdGluZyB0byBTQVgyIGludGVyZmFjZSBieSBkZWZhdWx0LiBUaGVyZQorCWlzIHNvbWUgd29yayBsZXRmIFRPRE8sIGxpa2UgbmFtZXNwYWNlIHZhbGlkYXRpb24gYW5kIGF0dHJpYnV0ZXMKKwlub3JtYWxpemF0aW9uICh0aGlzIGJyZWFrIEMxNE4gcmlnaHQgbm93KQorCSogTWFrZWZpbGUuYW06IGZpeGVkIHRoZSB0ZXN0IHJ1bGVzCisJKiBpbmNsdWRlL2xpYnhtbC9TQVgyLmggaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmgKKwkgIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIFNBWDIuYyBwYXJzZXIuYworCSAgcGFyc2VySW50ZXJuYWxzLmM6IGNoYW5naW5nIHRoZSBwYXJzZXIsIG1pZ3JhdGluZyB0byBTQVgyLAorCSAgYWRkaW5nIG5ldyBpbnRlcmZhY2UgdG8gc3dpdGNoIGJhY2sgdG8gU0FYMSBvciBpbml0aWFsaXplIGEKKwkgIFNBWCBibG9jayBmb3IgdjEgb3IgdjIuIE1vc3Qgb2YgdGhlIG5hbWVzcGFjZSB3b3JrIGlzIGRvbmUKKwkgIGJlbG93IFNBWCwgYXMgd2VsbCBhcyBhdHRyaWJ1dGUgZGVmYXVsdGluZworCSogZ2xvYmFscy5jOiBjaGFuZ2VkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkZWZhdWx0IFNBWCBoYW5kbGVycworCSogaGFzaC5jIHRyZWUuYyBpbmNsdWRlL2xpYnhtbC9oYXNoLmg6IGFkZGVkIFFOYW1lIHNwZWNpZmljIGhhbmRsaW5nCisJKiB4bWxJTy5jOiBzbWFsbCBmaXgKKwkqIHhtbGxpbnQuYyB0ZXN0U0FYLmM6IHByb3ZpZGUgYSAtLXNheDEgc3dpdGNoIHRvIHRlc3QgdGhlIG9sZAorCSAgdmVyc2lvbiBjb2RlIHBhdGgKKwkqIHJlc3VsdC9wM3AgcmVzdWx0L3AzcC5zYXggcmVzdWx0L25vZW50L3AzcCB0ZXN0L3AzcDogdGhlIG5ldyBjb2RlCisJICBwb2ludGVkIG91dCBhIHR5cG8gaW4gYSB2ZXJ5IG9sZCB0ZXN0IG5hbWVzcGFjZQorCitTdW4gU2VwICA3IDE5OjU4OjMzIFBURCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB4bWxJTy5jIGluY2x1ZGUvbGlieG1sL3htbElPLmggcGFyc2VyLmM6IEltcGxlbWVudGVkIGRldGVjdGlvbgorCSAgb2YgY29tcHJlc3NlZCBmaWxlcywgc2V0dGluZyBkb2MtPmNvbXByZXNzZWQgYXBwcm9wcmlhdGVseQorCSAgKGJ1ZyAjMTIwNTAzKS4KKworU3VuIFNlcCAgNyAyMjo1MzowNiBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogdHJ5IHRvIGNvcGUgd2l0aCB0aGUgZmFjdCB0aGF0IGFwcHMgbWF5IHN0aWxsCisJICBoYXZlIGFsbG9jYXRlZCBzbWFsbGVyIFNBWCBjYWxsYmFrIGJsb2NrCisKK1N1biBTZXAgIDcgMTE6MTE6NDUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGljdC5jOiBhbGxvdyB0byBnaXZlIC0xIGZvciB1bmRlZmluZWQgbGVuZ3RoIGluIGxvb2t1cHMKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHRlc3RTQVguYzoKKwkgIGZpcnN0IHJvdW5kIG9mIHdvcmsgb24gdGhlIG5ldyBTQVgyIGludGVyZmFjZXMsIHRoZSBBUEkKKwkgIHdpbGwgY2hhbmdlIGJ1dCBjb21taXRpbmcgYmVmb3JlIGNoYW5naW5nIGZvciBoaXN0b3JpY2FsCisJICByZWZlcmVuY2UuCisKK1NhdCBTZXAgIDYgMTA6NTU6MDEgUFREIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIFNBWDIuYywgeG1sSU8uYzogZml4ZWQgYnVnICMxMjEyMTAgKGNhbGxiYWNrIHRvIHNheC0+ZXJyb3IsCisJICBzYXgtPndhcm5pbmcgd2l0aCB3cm9uZyBwYXJhbXMpLgorCitGcmkgU2VwICA1IDEwOjMzOjQyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL2dsb2JhbHMuaDogcGF0Y2ggZnJvbSBTdMOpcGhhbmUgQmlkb3VsIHRvIGV4cG9ydAorCSAgZ2xvYmFscyBlbnRyeSBwb2ludHMgdG8gdGhlIHB5dGhvbiBiaW5kaW5ncworCitXZWQgU2VwICAzIDE1OjI0OjQxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogd2hlbiBjcmVhdGluZyBhIERPQ1RZUEUgdXNlICJodG1sIiBsb3dlcmNhc2UKKwkgIGJ5IGRlZmF1bHQgaW5zdGVhZCBvZiAiSFRNTCIKKwkqIHBhcnNlci5jIHhtbHJlYWRlci5jOiBvcHRpbWl6YXRpb24sIGdhaW4gYSBmZXcgJSBwYXJzaW5nIHNwZWVkIGJ5CisJICBhdm9pZGluZyBjYWxscyB0byAiYXJlQmxhbmtzIiB3aGVuIG5vdCBuZWVkZWQuCisJKiBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IHNvbWUgc3RydWN0dXJlCisJICBleHRlbnNpb25zIGZvciBmdXR1cmUgd29yayBvbiB1c2luZyBwZXItZG9jdW1lbnQgZGljdGlvbmFyaWVzLgorCitXZWQgU2VwICAzIDE1OjA4OjA2IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIHJlc3VsdHMvKi5zYXggU0FYUmVzdWx0Lyo6IHJlbW92aW5nIHRoZSBTQVhyZXN1bHRzCisJICB0cmVlLCBrZWVwaW5nIHJlc3VsdCBpbiB0aGUgc2FtZSB0cmVlLCBhZGRlZCBTQVh0ZXN0cyB0byB0aGUKKwkgIGRlZmF1bHQgIm1ha2UgdGVzdHMiCisKK1R1ZSBTZXAgIDIgMTU6NTk6MDQgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbGV4cG9ydHMuaDogZGVmaW5lZCBhZGRpdGlvbmFsIG1hY3JvcyB3aGljaAorCSAgYWZmZWN0IGV4cG9ydHMgYW5kIGFkZGVkIG1pbmd3IHNlY3Rpb24KKworTW9uIFNlcCAgMSAxNToxNToxOCBQRFQgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZG9jL2luZGV4LnB5OiBmaXhlZCBwcm9ibGVtIHBhcnNpbmcgeGh0bWwgZG9jcworCSogZG9jL3htbHJlYWRlci5odG1sLGRvYy9ndWlkZWxpbmVzLmh0bWw6IHNtYWxsIG1vZGlmaWNhdGlvbgorCSAgdG8gYXZvaWQgcHJvYmxlbSBpbiBweXRob24gcGFyc2luZy4KKwkqIGRvYy9zZWFyY2gucGhwOiBmaXhlZCB1cHBlciBjYXNlIGZpbGVuYW1lIHByb2JsZW0gZm9yIFhTTFQgZG9jcworCitNb24gU2VwICAxIDIyOjU1OjA5IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IHBhdGNoIGZyb20gTWFyayBWYWtvYyB0aGF0IGFsbG93cyBjb21waWxpbmcgCisJICB3aXRoIFhJbmNsdWRlIGJ1dCB3aXRob3V0IFhQb2ludGVyIHN1cHBvcnQuCisKK01vbiBTZXAgIDEgMjI6MzE6MzggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIHhtbDItY29uZmlnLmluOiBBcHBsaWVkIGEgcGF0Y2ggZnJvbSBLZXZpbiBQLiBGbGVtaW5nCisJICB0byBhZGQgLS1saWJ0b29sLWxpYnMgb3B0aW9uIHRvIHhtbDItY29uZmlnIHNjcmlwdC4KKworU3VuIEF1ZyAzMSAyMTo1MjoxMiBQRFQgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZG9jL1JFQURNRS5kb2NzLCBkb2MvTWFrZWZpbGUuYW06IG5ldyBmaWxlIGFkZGVkLAorCSAgZ2l2aW5nIHNvbWUgZGVzY3JpcHRpb24gb2YgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBwcm9jZXNzCisJKiBkb2Mvc2VhcmNoLnBocDogZml4ZWQgcHJvYmxlbSB3aXRoIHVwcGVyIGNhc2Ugb24gZmlsZW5hbWVzCisKK0ZyaSBBdWcgMjkgMTI6MjU6MDEgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLmJjYjogdXBkYXRlcyBieSBFcmljIFp1cmNoZXIKKworVGh1IEF1ZyAyOCAyMjo1ODozOCBQRFQgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZG9jL2FwaWJ1aWxkLnB5LCBkb2MvbGlieG1sMi1hcGkueG1sOiBlbmhhbmNlZCBjb2RlCisJICB0byBjb21wZW5zYXRlIGZvciBwb2xsdXRpb24gZnJvbSBJZ29yJ3MgaGVhZGVyIHRhaW50CisJICAocXVpY2sgYmVmb3JlIERhbmllbCBub3RpY2VzKQorCitUaHUgQXVnIDI4IDIzOjAxOjM2IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWDIuYzogZml4ZWQgYSBuYW1lc3BhY2UgZXJyb3Igb24gYXR0cmlidXRlIHJlcG9ydGluZyBidWcKKwkgIHBvaW50ZWQgb3V0IGJ5IFRvYmlhcyBSZWlmCisJKiB0ZXN0L3AzcCByZXN1bHQvcDNwIHJlc3VsdC9ub2VudC9wM3A6IHRoaXMgdGVzdCBjYXNlIHdhcyB3cm9uZworCSAgdXNpbmcgeG1sc24gaW5zdGVhZCBvZiB4bWxucy4uLgorCitUaHUgQXVnIDI4IDE4OjI1OjA3IENFU1QgMjAwMyBJZ29yIFpsYXRrb3ZpYyA8aWdvckB6bGF0a292aWMuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggaW5jbHVkZS9saWJ4bWwveG1sZXhwb3J0cy5oOiBmaXhlZAorCSAgdHlwb3MgcmVwb3J0ZWQgYnkgTWFyayBWYWtvYworCitUaHUgQXVnIDI4IDA4OjU5OjUxIE1EVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwlhZGQ6CisJKiBkb2MvdHV0b3JpYWwvYXBpLmh0bWwKKwkqIGRvYy90dXRvcmlhbC9hcjAxczA5Lmh0bWwKKwkqIGRvYy90dXRvcmlhbC9pbmNsdWRleHBhdGguYworCXVwZGF0ZWQKKwkqIGRvYy90dXRvcmlhbC8qLmh0bWwKKwlmaXggbXkgYmFkIC0gZm9yZ290IHRvIGNoZWNrIGluIG5ldyBmaWxlcyB3aGVuIEkgbGFzdAorCXVwZGF0ZWQKKworVGh1IEF1ZyAyOCAxNDozMToxMyBDRVNUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUuYmNiOiBuZXcgZmlsZSwgc3VwcG9ydCBmb3IgQm9ybGFuZCBDKysKKwkqIHhtbGxpbnQuYzogZml4ZWQgdGltZSBpbmNsdXNpb24gZm9yIHZhcmlvdXMgY29tcGlsZXJzCisKK1RodSBBdWcgMjggMTI6MzI6NTkgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIERPQ0JwYXJzZXIuYyBIVE1McGFyc2VyLmM6IGFkZGVkCisJICBmZXcgY2FzdHMgdG8gc2h1dCB0aGUgY29tcGlsZXIgd2FybmluZ3MKKworVGh1IEF1ZyAyOCAxMjoyMzo1MSBDRVNUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvTWFrZWZpbGUuKiB3aW4zMi9jb25maWd1cmUuanM6IGZpeGVkIGZvciBtaW5ndworCitUaHUgQXVnIDI4IDEwOjAxOjQ0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdsb2JhbHMuYyB0aHJlYWRzLmM6IGZpeGluZyBidWcgIzEyMDg3MCB0cnkgdG8gYXZvaWQgcHJvYmxlbQorCSAgd2l0aCB1bmluaXRpYWxpemVkIG11dGV4ZXMKKworV2VkIEF1ZyAyNyAxNjoxMjo0MSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGZpeGVkIGFuIGVycm9yIHJlcG9ydGluZyBidWcgaW4gUmVsYXgtTkcgd2hlbiB3ZSBlbmQKKwkgIHVwIHdpdGggbXVsdGlwbGUgc3RhdGVzLCBzZWxlY3QgdGhlICJiZXN0IiBvbmUuIEZpeCAjMTIwNjgyCisJKiByZXN1bHQvcmVsYXhuZy90dXRvcjExXzJfMy5lcnI6IHNtYWxsIGNoYW5nZSByZXN1bHRpbmcgCisKK1dlZCBBdWcgMjcgMTE6MjU6MjUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGFwcGxpZWQgYmFzZTY0IHN1cHBvcnQgcGF0Y2ggZnJvbSBBbnRob255IENhcnJpY28KKworV2VkIEF1ZyAyNyAxMDo1ODo1MSBDRVNUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvW3RocmVhZHMteHBvaW50ZXJdLmg6IHJlYWxpZ25lZCBwYXJhbWV0ZXJzCisJICBhZnRlciB0YWludAorCitXZWQgQXVnIDI3IDA5OjU5OjU0IENFU1QgMjAwMyBJZ29yIFpsYXRrb3ZpYyA8aWdvckB6bGF0a292aWMuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWxleHBvcnRzLmg6IGZpeGVkIGRlZnMgZm9yIEJvcmxhbmQgY29tcGlsZXIsCisJICBhcyByZXBvcnRlZCBieSBFcmljIFp1cmNoZXIKKworVHVlIEF1ZyAyNiAxNTo1NDowNCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGZpeGVkIGJ1ZyAjMTIwMzg2IGFnYWluIGEgcHJvYmxlbSBpbnRyb2R1Y2VkIHdoZW4KKwkgIHRyeWluZyB0byByZXVzZSBhdXRvbWF0YSBmb3IgY29udGVudCB2YWxpZGF0aW9uLiBGaXggYSBidWcgcmVwb3J0CisJICBwcm9ibGVtIG9uIHplcm9Pck1vcmUKKwkqIHJlc3VsdC9yZWxheG5nL3R1dG9yM183X2VycjogY2hhbmdlIHNsaWdodGx5IGVycm9yIHJlcG9ydGluZy4KKworTW9uIEF1ZyAyNSAxMzoyNDo1NyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9NYWtlZmlsZS5hbTogbWFrZSBzdXJlIHRoZSBuZXcgaGVhZGVyIHdpbGwKKwkgIGJlIGluY2x1ZGVkIHdoZW4gZ2VuZXJhdGluZyBhIG5ldyBkaXN0cmlidXRpb24uCisKK01vbiBBdWcgMjUgMTI6Mzc6MDUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBmaXhlZCBhIGNvdXBsZSBvZiBzdHVwaWQgYnVncyBpbiB0aGUgc3RhdGUgYWxsb2NhdGlvbgorCSAgcm91dGluZXMgd2hpY2ggbGVkIHRvIGJ1ZyAjMTIwMDQwIGFuZCB0aGUgb25lcyByZXBvcnRlZCBieQorCSAgTWFydGlqbiBGYWFzc2VuCisKK01vbiBBdWcgMjUgMTI6Mzc6MjMgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIGluY2x1ZGUvbGlieG1sL3JlbGF4bmcuaAorCSAgaW5jbHVkZS9saWJ4bWwvU0FYLmggaW5jbHVkZS9saWJ4bWwvU0FYMi5oOiByZWFsaWduZWQgdGhlCisJICBwYXJhbWV0ZXJzIGFmdGVyIHRhaW50LgorCitNb24gQXVnIDI1IDExOjE2OjAxIENFU1QgMjAwMyBJZ29yIFpsYXRrb3ZpYyA8aWdvckB6bGF0a292aWMuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46IG1vdmVkIGV4cG9ydCBkZWZzIHRvIGEgc2VwYXJhdGUKKwkgIGZpbGUgZm9yIGNvbnNpc3RlbmN5LgorCSogaW5jbHVkZS9saWJ4bWwveG1sZXhwb3J0cy5oOiBuZXcgZmlsZSwgY29udGFpbnMgZXhwb3J0IGRlZnMuCisKK01vbiBBdWcgMjUgMTE6MDE6NDkgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sLyouaCBnZW5Vbmljb2RlLnB5OiBleHBvcnRhYmlsaXR5IHRhaW50CisJICBvZiB0aGUgaGVhZGVycy4KKworVGh1IEF1ZyAyMSAxMjozNzo0NiBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogbWFrZSB0aGUgZGVwcmVjYXRlZCBpbnRlcmZhY2VzIGxvZyBhbiBlcnJvciBtZXNzYWdlCisJICB0byBiZSBzdXJlIGl0IHdvbid0IGdldCB1c2VkLgorCitUaHUgQXVnIDIxIDAwOjUwOjMyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIFNBWDIuYyBpbmNsdWRlL2xpYnhtbC9NYWtlZmlsZS5hbSBpbmNsdWRlL2xpYnhtbC9TQVgyLmg6CisJICBBZGRpbmcgbmV3IHZlcnNpb24gb2YgdGhlIFNBWCBpbnRlcmZhY2UsIGl0J3Mgbm90IHRoZXJlIHlldCwKKwkgIGN1cnJlbnRseSBqdXN0IHByZXBhcmluZyB0aGUgd29yaworCSogZ2xvYmFscy5jIHBhcnNlci5jIFNBWC5jIGluY2x1ZGUvbGlieG1sL1NBWC5oIAorCSAgaW5jbHVkZS9saWJ4bWwvZ2xvYmFscy5oIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBkb2luZyBzb21lCisJICByZWZhY3RvcmluZyBvZiB0aGUgU0FYdjEgaW50ZXJmYWNlcywgb2Jzb2xldGluZyBhIGJ1bmNoIG9mIHRoZW0KKwkgIHdoaWxlIGtlZXBpbmcgZnVuY3Rpb25hbGl0aWVzLCBwcmVwYXJpbmcgU0FYMiBpbnRlZ3JhdGlvbi4KKwkqIGRpY3QuYzogc21hbGwgY2xlYW51cC4KKworV2VkIEF1ZyAyMCAwMDoyMDowMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeGVzIGEgc21hbGwgYnVnIGludHJvZHVjZWQgaW4gbGFzdCBjb21taXQgYW5kIGRldGVjdGVkCisJICBieSB2YWxncmluZC4KKworVHVlIEF1ZyAxOSAxNjo1NDoxOCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkaWN0LmMgaGFzaC5jOiBvcHRpbWl6YXRpb24gd2hlbiBmcmVlaW5nIGhhc2ggdGFibGVzLgorCSogcGFyc2VyLmMgeG1sSU8uYyBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IHNvbWUgdHVuaW5nIG9mIGJ1ZmZlcgorCSAgYWxsb2NhdGlvbnMKKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBrZWVwIGEKKwkgIHNpbmdsZSBhbGxvY2F0ZWQgYmxvY2sgZm9yIGFsbCB0aGUgYXR0cmlidXRlcyBjYWxsYmFja3MsCisJICBhdm9pZCB1c2VsZXNzIG1hbGxvYygpL2ZyZWUoKQorCSogdHJlZS5jOiBkbyBub3QgcmVhbGxvYygpIHdoZW4gZ3Jvd2luZyBhIGJ1ZmZlciBpZiB0aGUgYnVmZmVyCisJICBhaW4ndCBmdWxsLCBtYWxsb2MvbWVtY3B5L2ZyZWUgYXZvaWQgY29weWluZyBtZW1vcnkuCisKK01vbiBBdWcgMTggMTg6Mzc6MDEgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jIGRvYy94bWxsaW50LnhtbCBkb2MveG1sbGludC4xOiBhZGRlZCBvcHRpb24KKwkgIC0tZHRkdmFsaWRmcGkgZm9yIFRvYmlhcyBSZWlmCisKK01vbiBBdWcgMTggMTQ6MDM6MDMgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGljdC5jIGluY2x1ZGUvbGlieG1sL2RpY3QuaCBNYWtlZmlsZS5hbSBpbmNsdWRlL2xpYnhtbC9NYWtlZmlsZS5hbToKKwkgIG5ldyBkaWN0aW9uYXJ5IG1vZHVsZSB0byBrZWVwIGEgc2luZ2xlIGluc3RhbmNlIG9mIHRoZSBuYW1lcyB1c2VkCisJICBieSB0aGUgcGFyc2VyCisJKiBET0NCcGFyc2VyLmMgSFRNTHBhcnNlci5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHZhbGlkLmM6CisJICBzd2l0Y2hlZCBhbGwgcGFyc2VycyB0byB1c2UgdGhlIGRpY3Rpb25hcnkgaW50ZXJuYWxseQorCSogaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oCisJICBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaCBpbmNsdWRlL2xpYnhtbC92YWxpZC5oOgorCSAgU29tZSBvZiB0aGUgaW50ZXJmYWNlcyBjaGFuZ2VkIGFzIGEgcmVzdWx0IHRvIHJlY2VpdmUgb3IgcmV0dXJuCisJICAiY29uc3QgeG1sQ2hhciAqIiBpbnN0ZWFkIG9mICJ4bWxDaGFyICoiLCB0aGlzIGlzIGVpdGhlcgorCSAgaW5zaWduaWZpY2FudCBmcm9tIGFuIHVzZXIgcG9pbnQgb2YgdmlldyBvciB3aGVuIHRoZSByZXR1cm5pbmcKKwkgIHZhbHVlIGNoYW5nZWQsIHRob3NlIGZ1bmN0aW9uIGFyZSByZWFsbHkgcGFyc2VyIGludGVybmFsIG1ldGhvZHMKKwkgIHRoYXQgbm8gdXNlciBjb2RlIHNob3VsZCByZWFsbHkgY2hhbmdlCisJKiBkb2MvbGlieG1sMi1hcGkueG1sIGRvYy9odG1sLyo6IHRoZSBBUEkgaW50ZXJmYWNlIGNoYW5nZWQgYW5kCisJICB0aGUgZG9jcyB3ZXJlIHJlZ2VuZXJhdGVkCisKK1N1biBBdWcgMTcgMjM6MDU6MzggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFwcGxpZWQgcGF0Y2ggdG8geG1sQ2xlYW51cFBhcnNlciBmcm9tIERhdmUgQmVja2V0dAorCitTYXQgQXVnIDE2IDIyOjUzOjQyIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MvcGFyc2VkZWNsLnB5LCBkb2MvbGlieG1sMi1yZWZzLnhtbCwgZG9jL0FQSSouaHRtbDoKKwkgIGZpeGVkIHBhcnQgKDIpIG9mIGJ1ZyAxMTk1MzUgKHdyb25nIGFscGhhIGNhc2Ugb24gZmlsZW5hbWVzKQorCitTYXQgQXVnIDE2IDIwOjM1OjI4IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MvQVBJKi5odG1sLCBkb2MvaHRtbC8qOiByZWdlbmVyYXRlZCBBUEkgZG9jdW1lbnRhdGlvbgorCSAgZm9yIHhtbHNvZnQub3JnIChwYXJ0IG9mIEJ1ZyAxMTk1MzUpCisKK0ZyaSBBdWcgMTUgMTQ6NTg6MzcgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGVuY29kaW5nLmMsIHRocmVhZHMuYywgaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oLAorCSAgZG9jL2xpYnhtbDItYXBpLnhtbDogTWlub3IgY2hhbmdlcyB0byBjb21tZW50cywgZXRjLiBmb3IKKwkgIGltcHJvdmluZyBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24KKwkqIGRvYy9NYWtlZmlsZS5hbTogZnVydGhlciBhZGp1c3RtZW50IHRvIGF1dG8tZ2VuZXJhdGlvbiBvZgorCSAgd2luMzIvbGlieG1sMi5kZWYuc3JjCisKK0ZyaSBBdWcgMTUgMDI6MjQ6MjAgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTmV3cyBjb25maWd1cmUuaW46IHByZXBhcmluZyBsaWJ4bWwyLTIuNS4xMCByZWxlYXNlCisJKiBkb2MvKiA6IHVwZGF0ZWQgdGhlIGRvYyBhbmQgcmVidWlsdAorCitGcmkgQXVnIDE1IDAxOjU1OjUzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhpbmcgdGhlIHhtbFNBWFBhcnNlRFREIGJ1ZyAjMTE5NTM2IHJhaXNlZCBieQorCSAgTWFsY29sbSBUcmVkaW5uaWNrIHdpdGggdGhlIHBhdGNoIGhlIHN1Z2dlc3RlZC4KKworRnJpIEF1ZyAxNSAwMTozNzoxMCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFsbG9jYXRpb24gZXJyb3IgIzExOTc4NCByYWlzZWQgYnkgT2xpdmVyIFN0b2VuZWJlcmcKKworRnJpIEF1ZyAxNSAwMDo0MTo1OCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogZml4aW5nIGFuIHVzZSBvZiBzdHJjcHkoKSB3aGVyZSBib3RoIHN0cmluZ3Mgb3ZlcmxhcAorCSAgcG9pbnRlZCBvdXQgYnkgdmFsZ3JpbmQuCisKK1RodSBBdWcgMTQgMTc6MTA6MzkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogRE9DQnBhcnNlci5jIGdsb2JhbHMuYyBpbmNsdWRlL2xpYnhtbC94bWxtZW1vcnkuaDogZ2V0IHJpZCBvZgorCSAgc29tZSBjb21waWxhdGlvbiB3YXJuaW5ncy4KKwkqIHhpbmNsdWRlLmM6IGZpeCB0aGUgcGVyZm9ybWFuY2UgcHJvYmxlbSByZXBvcnRlZCBieSBLZXZpbiBSdXNjb2UKKwkgIHBsdXMgc29tZSBjbGVhbnVwIGFuZCBiZXR0ZXIgZXJyb3IgcmVwb3J0aW5nLgorCitUaHUgQXVnIDE0IDE0OjEzOjQzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmM6IGFwcGxpZWQgVVRGLTE2IGVuY29kaW5nIGhhbmRsaW5nIHBhdGNoIHByb3ZpZGVkIGJ5CisJICBNYXJrIEl0emNvdml0egorCSogZW5jb2RpbmcuYyBwYXJzZXIuYzogbW9yZSBjbGVhbnVwIGFuZCBmaXhlcyBmb3IgVVRGLTE2IHdoZW4gCisJICBub3QgaGF2aW5nIGljb252IHN1cHBvcnQuCisKK1RodSBBdWcgMTQgMDM6MTk6MDggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluIGV4YW1wbGUvTWFrZWZpbGUuYW0gbGlieG1sLmggbmFub2Z0cC5jCisJICBuYW5vaHR0cC5jIHhtbGxpbnQuYzogQXBwbGllZCBwYXRjaCBmcm9tIE1pa2hhaWwgR3J1c2hpbnNraXkgZm9yCisJICBtaW5ndyBjb21waWxlciBvbiBXaW5kb3dzLgorCitUaHUgQXVnIDE0IDAyOjI4OjM2IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCB0aGUgc2VyaW91cyBDUFUgdXNhZ2UgcHJvYmxlbSByZXBvcnRlZCBieQorCSAgR3JhbnQgR29vZGFsZQorCSogSFRNTHBhcnNlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gT2xpdmVyIFN0b2VuZWJlcmcgYWJvdXQgYSBmcmVlCisJICBtaXNzaW5nIGluIGh0bWxTQVhQYXJzZURvYworCitUdWUgQXVnIDEyIDIyOjQ4OjEwIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBkb2MvTWFrZWZpbGUuYW06IFJlbW92ZWQgZGVwZW5kZW5jeSBmcm9tIGxpYnhtbDIuZGVmLnNyYworCitUdWUgQXVnIDEyIDE4OjU1OjA4IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBhdXRvZ2VuLnNoOiB0b29rIGF3YXkgdGhlIHJlcXVpcmVtZW50IGZvciBhdXRvbWFrZS0xLjQsCisJICBjaGFuZ2VkIHRoZSBtZXNzYWdlcyBmb3IgZ2V0dGluZyBhdXRvKiB0b29scyB0byBjdXJyZW50CisJICBnbnUgcGFnZXMuCisJKiBjb25maWd1cmUuaW46IGFkZGVkIGNoZWNrIGZvciBMaW51eCBEZWMgYWxwaGEgcmVxdWlyaW5nCisJICAtaWVlZSBmbGFnLCBmaXhlZCB0ZXN0IGZvciBpcHY2CisJKiB0cmlvbmFuLmM6IGZpeGVkIHByb2JsZW0gZm9yIGNvbXBpbGluZyBvbiBMaW51eCBEZWMgYWxwaGEKKwkgIHVzaW5nIG5hdGl2ZSBjb21waWxlcgorCSogZG9jL01ha2VmaWxlLmFtOiBpbXBsZW1lbnRlZCByZWdlbmVyYXRpb24gb2Ygd2luMzIvbGlieG1sMi5kZWYuc3JjCisJICB3aGVuZXZlciBsaWJ4bWwyLWFwaS54bWwgaXMgY2hhbmdlZC4KKworTW9uIEF1ZyAxMSAxNzowMjoyMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogY2xlYW5pbmcgdXAgYSBwcm9ibGVtIHdoZW4gcGFyc2luZyBVVEYtMTYgYW5kIGxpYmljb252CisJICBpcyBub3QgdXNlZC4KKworU3VuIEF1ZyAxMCAwODoxMzoyMiBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogd2luMzIvbGlieG1sMi5kZWYuc3JjOiByZW5lcmF0ZWQgd2l0aCBmaXhlZCBsaWJ4bWwyLWFwaS54bWwKKworU3VuIEF1ZyAxMCAwMDoyMjo1NSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBOZXdzIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIGxpYnhtbDItMi41LjkgcmVsZWFzZQorCSogZG9jLyogOiB1cGRhdGVkIHRoZSBkb2MgYW5kIHJlYnVpbHQKKworU2F0IEF1ZyAgOSAyMDowMDoxMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaCBkb2MvbGlieG1sMi1hcGkueG1sOiBjaGFuZ2luZyBhbiBlbnVtCisJICBkZWZpbml0aW9uIHRvIGdldCBhIGNvcnJlY3QgQVBJIFhNTCBkZXNjcmlwdGlvbi4gVGhpcyB3YXMgYXBwYXJlbnRseQorCSAgYnJlYWtpbmcgV2luZG93cyBidWlsZC4KKworU2F0IEF1ZyAgOSAxMzo0MToyMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGEgbmFzdHkgYnVnICMxMTkzODcsIGJhZCBoZXVyaXN0aWMgZnJvbQorCSAgdGhlIHByb2dyZXNzaXZlIEhUTUwgcGFyc2VyIGZyb250LWVuZCBvbiBsYXJnZSBjaGFyYWN0ZXIgZGF0YQorCSAgaXNsYW5kIGxlYWRpbmcgdG8gYW4gZXJyb25lb3VzIGVuZCBvZiBkYXRhIGRldGVjdGlvbiBieSB0aGUKKwkgIHBhcnNlci4gU29tZSBjbGVhbnVwIHRvbyB0byBnZXQgY2xvc2VyIGZyb20gdGhlIFhNTCBwcm9ncmVzc2l2ZQorCSAgcGFyc2VyLgorCitTYXQgQXVnICA5IDAwOjQyOjQ3IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiB3aW4zMi9jb25maWd1cmUuanM6IEFkZGVkIGluIHN1cHBvcnQgZm9yIHRoZSBJU084ODU5WAorCSAgbW9kdWxlIChwYXRjaCBwcm92aWRlZCBieSBKZXNzZSBQZWx0b24pCisKK0ZyaSBBdWcgIDggMTU6NTY6MzIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHRyZWUuYyB0cmVlLmMgdGhyZWFkcy5jOiBodW0gdHJ5IHRvIGF2b2lkIHNvbWUgdHJvdWJsZXMKKwkgIHdoZW4gdGhlIGxpYnJhcnkgaXMgbm90IGluaXRpYWxpemVkIGFuZCBvbmUgdHJ5IHRvIHNhdmUsIHRoZSAKKwkgIGxvY2tzIGluIHRocmVhZGVkIGVudiBtaWdodCBub3QgYmVlbiBpbml0aWFsaXplZCwgcGxheWluZyBzYWZlCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogYXBwbHkgcGF0Y2ggZm9yIGhleEJpbmFyeSBmcm9tIENoYXJsZXMgQm96ZW1hbgorCSogdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8qIHJlc3VsdC9zY2hlbWFzL2hleGJpbmFyeV8qOiBhbHNvIGFkZGVkCisJICBoaXMgdGVzdHMgdG8gdGhlIHJlZ3Jlc3Npb24gc3VpdGUuCisKK0ZyaSBBdWcgIDggMTg6NDc6MzggSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHdpbjMyL2RlZmdlbi54c2wsIHdpbjMyL2xpYnhtbDIuZGVmLnNyYzogQnVnIDExOTM0MworCSAgKHdpdGggYXBvbG9naWVzIHRvIElnb3IpIC0gRW5oYW5jZWQgaGFuZGxpbmcgb2YgZG9jYiBhbmQKKwkgIG5hbm9odHRwLgorCitUaHUgQXVnICA3IDIxOjEzOjIyIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBlbmNvZGluZy5jOiBmdXJ0aGVyIHNtYWxsIGNoYW5nZXMgZm9yIHdhcm5pbmdzIHdoZW4KKwkgIGNvbmZpZ3VyZWQgd2l0aCAtLXdpdGgtaWNvbnY9bm8KKworV2VkIEF1ZyAgNiAxMjozMjoxMSBIS1QgMjAwMyBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogZXJyb3IuYyB0cmlvbmFuLltjaF0gdGVzdFRocmVhZHMuYyBweXRob24vZ2VuZXJhdG9yLnB5OgorCSAgZnVydGhlciBzbWFsbCBjaGFuZ2VzIHRvIGVsbWluYXRlIG1vc3Qgb2YgdGhlIHJlbWFpbmluZworCSAgd2FybmluZ3MuCisKK1R1ZSBBdWcgIDUgMjM6NTE6MjEgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGVycm9yLmMgSFRNTHBhcnNlci5jIHRlc3RDMTROLmMgdGVzdEhUTUwuYyB0ZXN0VVJJLmMKKwkgIHhtbGNhdGFsb2cuYyB4bWxtZW1vcnkuYyB4bWxyZWFkZXIuYyB4bWxzY2hlbWFzdHlwZXMuYworCSAgcHl0aG9uL2xpYnhtbC5jIGluY2x1ZGUvbGlieG1sL3htbG1lbW9yeS5oOiBzbWFsbCBjaGFuZ2VzCisJICB0byBzeW50YXggdG8gZ2V0IHJpZCBvZiBjb21waWxlciB3YXJuaW5ncy4gIE5vIGNoYW5nZXMKKwkgIHRvIGxvZ2ljLgorCitNb24gQXVnICA0IDIyOjQwOjU0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9saWJ4bWwyLWFwaS54bWwgZG9jL2h0bWwvKjogcmVidWlsdCB0aGUgQVBJIGFuZCBkb2NzLgorCitNb24gQXVnICA0IDIxOjQwOjM0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogZml4ZWQgYSBzbWFsbCBwcm9ibGVtIGluIHRoZSBwYXRjaCBmb3IgIzExODc2MworCSogcmVzdWx0L0hUTUwvZG9jMy5odG0qOiB0aGlzIHJldmVydHMgYmFjayB0byB0aGUgcHJldmlvdXMgcmVzdWx0CisKK1N1biBBdWcgIDMgMjE6NDE6NDkgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvRkFRLmh0bWwgZG9jL3htbC5odG1sOiBhcHBsaWVkIGRvYyBwYXRjaCB0byB4bWwuaHRtbAorCSAgYW5kIHJlYnVpbHQsIGFwcGFyZW50bHkgc29tZSBDKysgd3JhcHBlcnMgYXJlIG5vdCBhdmFpbGFibGUsCisJICBjLmYuIGJ1ZyAjMTE4OTQzCisKK1N1biBBdWcgIDMgMjE6MzA6MzEgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeGluZyBIVE1MIGF0dHJpYnV0ZSBzZXJpYWxpemF0aW9uIGJ1ZyAjMTE4NzYzCisJICBhcHBseWluZyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIHBhdGNoIGZyb20gQmFjZWsKKwkqIHJlc3VsdC9IVE1ML2RvYzMuaHRtKjogdGhpcyBtb2RpZmllcyB0aGUgb3V0cHV0IGZyb20gb25lIHRlc3QKKworU3VuIEF1ZyAgMyAyMTowMjozMCBFRFQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYyBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IGFkZGVkIGEgbmV3IEFQSSB0byBzcGxpdCBhCisJICBRTmFtZSB3aXRob3V0IGdlbmVyYXRpbmcgYW55IG1lbW9yeSBhbGxvY2F0aW9uCisJKiB2YWxpZC5jOiBmaXhlZCBhbm90aGVyIHByb2JsZW0gd2l0aCBuYW1lc3BhY2VzIG9uIGVsZW1lbnQKKwkgIGluIG1peGVkIGNvbnRlbnQgY2FzZQorCSogcHl0aG9uL3Rlc3RzL3JlYWRlcjIucHk6IHVwZGF0ZWQgdGhlIHRlc3RjYXNlIHdpdGggCisJICBCam9ybiBSZWVzZSBmaXggdG8gcmVhZGVyIGZvciB1bnNpZ25pZmljYW50IHdoaXRlIHNwYWNlCisJKiBwYXJzZXIuYyBIVE1McGFyc2VyLmM6IGNsZWFudXAuCisKK1N1biBBdWcgIDMgMjA6NTU6NDAgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IHRyeWluZyB0byBmaXggIzExODc1NCBvZiBwb3NzaWJsZSByZWN1cnNpb24gaW4gdGhlCisJICBjYXRhbG9ncy4gTm90IGZhbnRhc3RpY2FsbHkgaGFwcHkgYWJvdXQgdGhlIGN1cnJlbnQgZml4IHNpbmNlCisJICBpdCdzIGxpa2VseSB0byBicmVhayB1bmRlciB2ZXJ5IHRocmVhZCBpbnRlbnNpdmUgY29uY3VycmVudAorCSAgYWNjZXNzIHRvIHRoZSBjYXRhbG9nLiBCZXR0ZXIgc29sdXRpb24gbWlnaHQgdG8ga2VlcCB0aGUgZGVwdGgKKwkgIGFuIGV4dHJhIGFyZ3VtZW50IHRvIHRoZSByZXNvbHV0aW9uIGZ1bmN0aW9ucy4KKworU3VuIEF1ZyAgMyAxODo1Njo1NCBFRFQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGVkIGJ1ZyAjMTE4NzEyIGFib3V0IG1peGVkIGNvbnRlbnQsIGFuZCBuYW1lc3BhY2VkCisJICBlbGVtZW50IG5hbWVzLgorCSogdGVzdC92YWxpZC9taXhlZF9ucy54bWwgcmVzdWx0L3ZhbGlkL21peGVkX25zKjogYWRkZWQgYSBjaGVjaworCSAgaW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMKKworRnJpIEF1ZyAxIDIzOjU1OjIzIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJQ29uaW51aW5nIHdvcmsgb24gYnVnIDExODU1OQorCSogRE9DQnBhcnNlci5jOiByZW1vdmVkIDIgdW5zZWQgdmFycworCSogeG1scmVnZXhwLmM6IGNoYW5nZWQgc29tZSBudW1lcmljIGNvbnN0IHRvIHRoZWlyIGVudW0gc3ltYm9scworCSogeG1scmVhZGVyLmM6IGNoYW5nZWQgb25lIHZhciBkZWZpbmUgZnJvbSBpbnQgdG8gZW51bQorCSAgKGEgbGl0dGxlIG1vcmUgdG8gYmUgZG9uZSwgYXdhaXRpbmcgY28tb3JkaW5hdGlvbikKKwkqIHJlbGF4bmcuYzogZGVsZXRlZCBvbmUgdW51c2VkIHZhcgorCSogeG1sbGludC5jOiBkZWxldGVkIHNvbWUgdW51c2VkIHZhcnMsIGNoYW5nZWQgb25lIGFyZworCSAgdmFsIGZyb20gaW50IHRvIGVudW0KKwkqIHRlc3RIVE1MLmMsIHRlc3REb2Nib29rLmM6IGNoYW5nZWQgc29tZSBhcmcgdmFscyB0byBlbnVtIGNvbnN0CisJKiB4bWxJTy5jOiBmaXhlZCB0eXBvIGZyb20gbGFzdCBuaWdodCAoc21hbGwgd2FybmluZyBtc2cpCisKK1RodSBKdWwgMzEgMjI6NDQ6MzMgSEtUIDIwMDMgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwlXb3JraW5nIG9uIGJ1ZyAxMTg1NTkKKwkqIGVycm9yLmM6IGRlbGV0ZWQgdW51c2VkIHZhcmlhYmxlCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogZGVsZXRlZCB1bm5lZWRlZCAnY29uc3QnIHF1YWxpZmllcgorCSogcGFyc2VyLmM6IGNoYW5nZWQgdmFyaWFibGUgdHlwZSBmb3IgZW51bSB0ZW1wIHN0b3JhZ2UKKwkqIHhtbElPLmM6IGNoYW5nZWQgZGVidWdnaW5nIHZhciB0byBiZSBpbnNpZGUgI2lmZGVmCisJKiB2YWxpZC5jOiByZW1vdmVkIHVudXNlZCB2YXJpYWJsZQorCSogSFRNTHBhcnNlci5jOiByZW1vdmVkIHNvbWUgdW5uZWVkZWQgJ2NvbnN0JyBxdWFsaWZpZXJzCisJKiB4cGF0aC5jOiBhZGRlZCBzb21lIHR5cGUgY2FzdHMsIHJlbW92ZWQgc29tZSB1bnVzZWQgdmFycworCSogeGluY2x1ZGUuYzogYWRkZWQgb25lIHR5cGUgY2FzdAorCSogbmFub2h0dHAuYzogcmVwb3NpdGlvbmVkIHNvbWUgI2lmZGVmIHRvIGF2b2lkIHVudXNlZCB2YXIKKwkqIG5hbm9mdHAuYzogcmVtb3ZlZCB1bnVzZWQgdmFyCisKK1dlZCBKdWwgMzAgMTQ6NTc6NTUgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGFwcGxpZWQgYSBwYXRjaCBmcm9tIFdpbGxpYW0gQnJhY2sgYWJvdXQKKwkgIHRoZSBwcm9ibGVtIG9mIHBhcnNpbmcgdmVyeSBsYXJnZSBIVE1MIGluc3RhbmNlIHdpdGggY29tbWVudHMKKwkgIGFzIHJhaXNlZCBieSBOaWNrIEtldworCitXZWQgSnVsIDMwIDEyOjI5OjM4IEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmg6IGFwcGx5aW5nIGNsZWFudXAKKwkgIHBhdGNoIGZyb20gQmpvcm4gUmVlc2UgZm9yIHhtbFRleHRSZWFkZXJOb2RlVHlwZSgpIGFuZCAKKwkgIHNpZ25pZmljYW50IHdoaXRlc3BhY2UuIFRoZXJlIGlzIGFuIGVudW0gZm9yIG5vZGUgdHlwZQorCSAgdmFsdWVzIG5vdy4KKworV2VkIEp1bCAzMCAxMTowODoyMSBFRFQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmM6IGFwcGx5aW5nIHBhdGNoIGZyb20gUGV0ZXIgSmFjb2JpIHRvIGFkZGVkIAorCSAgSVNPLTg4NTkteCBlbmNvZGluZyBzdXBwb3J0IHdoZW4gaWNvbnYgaXMgbm90IGF2YWlsYWJsZQorCSogY29uZmlndXJlLmluIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbgorCSAgaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmguaW46IGFkZGVkIHRoZSBnbHVlIG5lZWRlZAorCSAgYXQgdGhlIGNvbmZpZ3VyZSBsZXZlbCBhbmQgbWFkZSBpdCB0aGUgZGVmYXVsdCBmb3IgV2luZG93cworCitUdWUgSnVsIDI5IDE2OjQzOjQ4IEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6CisJICBwYXRjaCBmcm9tIEpvYWNoaW0gQmF1Y2ggKyBjbGVhbnVwIGZvciBSZWxheCBORyBlcnJvciBjYWxsYmFja3MKKwkgIGluIHB5dGhvbgorCitUdWUgSnVsIDI5IDEyOjQ2OjA4IEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdHJlZS5jOiBhcHBsaWVkIFBldGVyIEphY29iaSBlbmNvZGluZworCSAgY2xlYW51cCBwYXRjaCwgYW5kIGFsc28gYXZvaWRlZCBhIHBvc3NpYmxlIG1lbW9yeSBsZWFrCisKK1R1ZSBKdWwgMjkgMDk6Mjg6MDkgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbmNvZGluZy5jOiBmaXggdGhlIHByZXZpb3VzIGNvbW1pdAorCitUdWUgSnVsIDI5IDEyOjI4OjE3IEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBjb21tZW50cyByZXBvcnRlZCBieSBOaWNrIEtldworCSogZW5jb2RpbmcuYzogYWRkZWQgcm91dGluZXMgeG1sVVRGOFNpemUgYW5kIHhtbFVURjhDaGFyY21wIGZvcgorCSAgc29tZSBmdXR1cmUgY2xlYW51cCBvZiBVVEY4IGhhbmRsaW5nCisKK01vbiBKdWwgMjggMTY6Mzk6MTQgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBhcHBsaWVkIGEgY2hhbmdlIHN1Z2dlc3RlZCBieSBTZWFuIEdyaWZmaW4gaW4gYnVnCisJICAjMTE4NDk0IGFib3V0IGEgbWVtb3J5IGxlYWsgaW4gRVhTTFQKKworU3VuIEp1bCAyNyAxNDozMDo1NiBFRFQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogZml4ZWQgYSBSZWxheC1ORyBjb21waWxhdGlvbi9zdHJlYW1pbmcgYnVnIGludHJvZHVjZWQKKwkgIHdoZW4gZml4aW5nIHRoZSBwcmV2aW91cyBSZWxheC1ORyBidWdzCisJKiByZXN1bHQvcmVsYXhuZy8qOiBUaGlzIHNsaWdodGx5IGNoYW5nZXMgdGhlIG91dHB1dCBtZXNzYWdlcyBvZgorCSAgc29tZSByZWdyZXNzaW9uIHRlc3RzLgorCSogY29uZmlndXJlLmluOiBhZGRlZCBzdXBwb3J0IG9mIC13aXRoLWZleGNlcHRpb25zIGZvciBuZXN0ZWQgQysrCisJICBzdXBwb3J0LgorCitUaHUgSnVsIDI0IDE1OjQ2OjAyIE1EVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy90dXRvcmlhbC9hcGEuaHRtbAorCSogZG9jL3R1dG9yaWFsL2FwYi5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXBjLmh0bWwKKwkqIGRvYy90dXRvcmlhbC9hcGQuaHRtbAorCSogZG9jL3R1dG9yaWFsL2FwZS5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXBmLmh0bWwKKwkqIGRvYy90dXRvcmlhbC9hcGcuaHRtbAorCSogZG9jL3R1dG9yaWFsL2FwaC5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwMi5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwMy5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwNC5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwNS5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwNi5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwNy5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwOC5odG1sCisJKiBkb2MvdHV0b3JpYWwvaW5kZXguaHRtbAorCSogZG9jL3R1dG9yaWFsL2l4MDEuaHRtbAorCSogZG9jL3R1dG9yaWFsL3htbHR1dG9yaWFsLnBkZgorCSogZG9jL3R1dG9yaWFsL3htbHR1dG9yaWFsLnhtbAorCXVwZGF0ZSB0dXRvcmlhbCB3aXRoIFhQYXRoIGV4YW1wbGUKKworVGh1IEp1bCAyNCAxNzowNzowNiBJU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jIHBhcnNlci5jOiBmaXhpbmcgYSBidWcgYWJvdXQgYSBzcGVjaWFsIGNhc2Ugb2YgbmFtZXNwYWNlCisJICBoYW5kbGluZywgdGhpcyBjbG9zZXMgYnVnICMxMTY4NDEKKworV2VkIEp1bCAyMyAyMDo1MjozNiBJU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyByZXN1bHQvcmVsYXhuZy8qOiBjaGVja2VkIGFuZCBmaXhlZCB0aGUgY29tcGlsYXRpb24KKwkgIG9mIFJORyBzY2hlbWFzLCBmaXhlcyBhIGNvdXBsZSBvZiBidWdzICMxMTcwOTcgYW5kICMxMTcwMDEgLgorCSAgVGhpcyBzbGlnaHRseSBjaGFuZ2VzIHRoZSBvdXRwdXQgbWVzc2FnZXMgb2Ygc29tZSByZWdyZXNzaW9uIHRlc3RzLgorCitXZWQgSnVsIDIzIDE1OjE1OjA4IElTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IGZpeGVkIGFuIG91dCBvZiBib3VuZCBlcnJvciAjMTE4MDUyICwgdGhlIGdvb2QKKwkgIHBhcnQgaWYgdGhhdCBiYXNlNjQgY29kZSB3YXMgbm90IGluIHVzZSB5ZXQgLi4uCisKK1R1ZSBKdWwgMjIgMTk6NDI6MTUgTURUIDIwMDMgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGxpbnQuaHRtbAorCWluY2x1ZGUgaHRtbCB2ZXJzaW9uIG9mIHRoZSB4bWxsaW50IG1hbiBwYWdlLCBzbyBhbgorCXVwLXRvLWRhdGUgdmVyc2lvbiBpcyB2aXNpYmxlIG9uIHRoZSBXZWIKKworTW9uIEp1bCAyMSAyMTo1Mzo0MyBJU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmMgaW5jbHVkZS9saWJ4bWwveGluY2x1ZGUuaDogYWRkZWQgYSBuZXcgQVBJCisJICB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlKCkgdG8gcHJvY2VzcyBYSW5jbHVkZSBvbmx5IG9uIGEgc3VidHJlZQorCSAgdGhpcyBzaG91bGQgZml4IGJ1ZyAjMTE1Mzg1CisKK0ZyaSBKdWwgMTggMTc6MTE6NDIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jIGluY2x1ZGUvbGlieG1sL3JlbGF4bmcuaDogYWRkaW5nIEdldCBpbnRlcmZhY2UgZm9yCisJICB0aGUgZXJyb3IgY2FsbGJhY2sgYW5kIHBhcmFtZXRlcnMgb2YgcGFyc2luZyBhbmQgdmFsaWRhdGlvbgorCSAgY29udGV4dHMKKwkqIHhtbHJlYWRlci5jOiBwYXRjaCB0byBmaXggYnVnICMxMTc3MDIgYWJvdXQgaW5jb21wbGV0ZSBSZWFkKCkKKwkgIG9uIHRleHQgbm9kZXMuCisKK1dlZCBKdWwgMTYgMjM6MTU6NTMgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmM6IHBhdGNoIGZyb20gRG9kamkgU2VrZXRlbGkgYWJvdXQgVVRGMTYgQk9NCisJICB3aGVuIHVzaW5nIHRoZSBwdXNoIFhNTCBwYXJzZXIuCisJKiByZXN1bHQvdXRmMTZib20ueG1sIHJlc3VsdC9ub2VudC91dGYxNmJvbS54bWwgdGVzdC91dGYxNmJvbS54bWw6CisJICBhZGRlZCB0aGUgdGVzdCB0byB0aGUgcmVncmVzc2lvbiBzdWl0ZS4KKworVHVlIEp1bCAxNSAyMjowMzoxMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnbG9iYWxzLmM6IGFkZCB4bWxUaHJEZWZNdXRleCA9IE5VTEwgaW4geG1sQ2xlYW51cEdsb2JhbHMoKSAKKwkgIGFzIHN1Z2dlc3RlZCBieSBSb2IgUmljaGFyZHMKKworVHVlIEp1bCAxNSAxNTozMDo1NSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBET0NCcGFyc2VyLmMgSFRNTHBhcnNlci5jIGVudGl0aWVzLmMgcGFyc2VyLmMgcmVsYXhuZy5jIAorCSAgeG1sc2NoZW1hcy5jIHhwYXRoLmM6IHJlbW92ZWQgc29tZSB3YXJuaW5ncyBieSBjYXN0aW5nIHhtbENoYXIKKwkgIHRvIHVuc2lnbmVkIGludCBhbmQgYSBjb3VwbGUgb2Ygb3RoZXJzLgorCitGcmkgSnVsIDExIDE2OjQ0OjIyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBmaXhlcyBhIHNlZ2ZhdWx0IG9uIGVtcHR5IGhleEJpbmFyeSBzdHJpbmdzCisKK1RodSBKdWwgMTAgMTY6MDI6NDcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmM6IGNsZWFudXAgcGF0Y2hlcyBmcm9tIFBldGVyIEJyZWl0ZW5sb2huZXIKKworVHVlIEp1bCAgOCAxNjowMjoxOSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnbG9iYWxzLmMgdGhyZWFkcy5jOiBmaXhlcyBzb21lIHByb2JsZW0gd2hlbiBmcmVlaW5nIHVuaXRpdGlhbGl6ZWQKKwkgIG11dGV4ZXMKKworVHVlIEp1bCAgOCAxNDoxNTowNyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBuYW5vZnRwLmMgbmFub2h0dHAuYzogdGhlIG1vZHVsZXMgc2hvdWxkIG5vdCBpbXBvcnQgPGNvbmZpZy5oPgorCSAgZGlyZWN0bHksIHNvbWUgY2xlYW51cHMKKwkqIHhtbHNjaGVtYXMuYzogUGV0ZXIgU29iaXNjaCBmb3VuZCBhIG5hc3R5IGJ1ZyBpbiB0aGUgU2NoZW1hcworCSAgdmFsaWRhdGlvbiBjb2RlLgorCitNb24gSnVsICA3IDE4OjAwOjUxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL2NvbmZpZ3VyZS5qczogSmVzc2UgUGVsdG9uIHBvaW50ZWQgb3V0IGEgcHJvYmxlbSBpbiB0aGUKKwkgIGphdmFzY3JpcHQgY29kZS4KKworTW9uIEp1bCAgNyAxNjozOTozMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBORVdTIGRvYy8qOiByZWdlbmVyYXRlZAorCSogbmFub2Z0cC5jIG5hbm9odHRwLmM6IG1pZ2h0IGZpeCBpbmNsdWRlcyBwcm9ibGVtcyB3aXRoIHRoZQorCSAgSXB2NiBzdXBwb3J0IG9uIHNvbGFyaXMKKwkqIHRyZWUuYzogcGF0Y2ggZnJvbSBNYXJrdXMgS2VpbSBhYm91dCB4bWxIYXNOc1Byb3AoKSBvbiBhdHRyaWJ1dGVzCisJICBkZWZpbmVkIGFzICNJTVBMSUVECisKK1N1biBKdWwgIDYgMjM6MDk6MTMgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGRvYy8qOiBwcmVwYXJpbmcgcmVsZWFzZSAyLjUuOAorCSogbmFub2h0dHAuYzogY2hhbmdlZCBzb21lIHByZXByb2Nlc3NvciBibG9jaworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBDaGFybGVzIEJvemVtYW4gYWRkaW5nCisJICBoZXhCaW5hcnkgc2NoZW1hIGRhdGF0eXBlIGFuZCBhZGRpbmcgc3VwcG9ydCBmb3IgdG90YWxEaWdpdHMgYW5kCisJICBmcmFjdGlvbkRpZ2l0cyBmYWNldHMuCisKK1N1biBKdWwgIDYgMTk6NTY6MTggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYyB4cGF0aC5jOiBmaXhlZCAyIGJ1Z3MgcG9pbnRlZCBpbiAjMTE2NDQ4CisKK1N1biBKdWwgIDYgMTk6MzQ6MTcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYzogZml4ZWQgYnVnICMxMTYwOTUgcmVtb3ZpbmcgdGhlIGVycm9yIG1lc3NhZ2Ugd2hlbgorCSAgcmVhcHBseWluZyBYSW5jbHVkZSB0byBhIGRvY3VtZW50LgorCitTYXQgSnVsICA1IDIyOjQwOjIzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGFwcGxpZWQgc21hbGwgY2hhbmdlcyB0byBwb3J0YWJpbGl0eSBsYXllciBmb3IgCisJICBjb21waWxhdGlvbiBvbiBESkdQUCBNcy1ET1MgY29tcGlsZXIuCisKK1NhdCBKdWwgIDUgMjI6MzA6MjUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgSFRNTHBhcnNlci5jOiB1c2UgdGhlIGNoYXJhY3RlcigpIFNBWCBjYWxsYmFjaworCSAgaWYgdGhlIGNkYXRhQmxvY2sgYWluJ3QgZGVmaW5lZC4KKwkqIHhwYXRoLmM6IGZpeCBidWcgIzExNTM0OSBhbGxvd2luZyBjb21waWxhdGlvbiB3aGVuIGNvbmZpZ3VyZWQKKwkgIHdpdGggLS13aXRob3V0LXhwYXRoIHNpbmNlIHRoZSBTY2hlbWFzIGNvZGUgbmVlZHMgTkFOIGFuZCBjby4KKworU2F0IEp1bCA1IDAwOjUxOjMwIEhLVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJRml4ZWQgcHJvYmxlbSB3aXRoIG11bHRpLXRocmVhZGluZywgc2hvd24gYnkgdGhlIHRlc3QgcHJvZ3JhbQorCXRlc3RUaHJlYWRzLiAgQWZ0ZXIgZml4LCByYW4gbXV0aXBsZSB0ZXN0cyBvbiB2YXJpb3VzIHNwZWVkCisJbWFjaGluZXMgKHNpbmdsZSBhbmQgZHVhbCBwcm9jZXNzb3IgWDg2KSwgd2hpY2ggYWxsIHNlZW0gb2theS4KKworCSogY2F0YWxvZy5jOiBhZGRlZCBtaXNzaW5nIHhtbFJNdXRleFVubG9jayBpbiB4bWxMb2FkQ2F0YWxvZworCisJKiB0aHJlYWRzLmM6IGFkZGVkIG1pc3NpbmcgaW5pdGlhbGlzYXRpb24gZm9yIGNvbmRpdGlvbiB2YXJpYWJsZQorCSAgaW4geG1sTmV3Uk11dGV4LgorCitTYXQgSnVuIDIxIDE2OjEwOjI0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwlBcHBseWluZyBJUHY2IHBhdGNoIGZyb20gQXJjaGFuYSBTaGFoIDxhcmNoYW5hLnNoYWhAd2lwcm8uY29tPgorCWNsb3NpbmcgYnVnICMxMTQ4MzcKKworCSogY29uZmlndXJlLmluOiBBZGRlZCBjaGVja3MgZm9yIElQdjYgc3VwcG9ydCBhbmQgZ2V0YWRkcmluZm8oKS4KKworCSogYWNjb25maWcuaDogRGVmaW5lZCBIQVZFX0dFVEFERFJJTkZPIGFuZCBTVVBQT1JUX0lQNi4KKworCSogY29uZmlnLmguaW46IERlZmluZWQgSEFWRV9HRVRBRERSSU5GTyBhbmQgU1VQUE9SVF9JUDYuCisKKwkqIG5hbm9mdHAuYzogU3RydWN0dXJlIHhtbE5hbm9GVFBDdHh0IGNvbnRhaW5zIGVpdGhlciBzb2NrYWRkcl9zdG9yYWdlCisJICBmaWVsZCBvciBzb2NrYWRkcl9pbiBmaWVsZCwgZGVwZW5kaW5nIHVwb24gdGhlIGF2YWlsYWJpbGl0eSBvZiBJUHY2CisJICBzdXBwb3J0LgorCSAgaGF2ZV9pcHY2KCk6IEFkZGVkIHRvIGNoZWNrIGZvciBydW4tdGltZSBJUHY2IHN1cHBvcnQuCisJICAoeG1sTmFub0ZUUFNjYW5VUkwpLCAoeG1sTmFub0ZUUFVwZGF0ZVVSTCksICh4bWxOYW5vRlRQU2NhblByb3h5KToKKwkgIE1vZGlmaWVkIHRvIHBhcnNlIGEgVVJJIHdpdGggSVB2NiBhZGRyZXNzIGdpdmVuIGluIFtdLgorCSAgKHhtbE5hbm9GVFBDb25uZWN0KTogQ2hhbmdlZCB0byB1c2UgZ2V0YWRkcmluZm8gZm9yIGFkZHJlc3MKKwkgIHJlc29sdXRpb24sIGlmIGl0IGlzIGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtLCBhcyBnZXRob3N0YnluYW1lCisJICBkb2VzIG5vdCByZXR1cm4gSVB2NiBhZGRyZXNzZXMgb24gc29tZSBwbGF0Zm9ybXMuCisJICAoeG1sTmFub0ZUUEdldENvbm5lY3Rpb24pOiBNb2RpZmllZCB0eXBlIG9mIGRhdGFBZGRyIHZhcmlhYmxlIHRvCisJICBzb2NrYWRkcl9zdG9yYWdlIG9yIHNvY2thZGRyX2luIGRlcGVuZGluZyB1cG9uIHRoZSBJUHY2IHN1cHBvcnQuCisJICBTZW5kaW5nIEVQU1YsIEVQUlQgb3IgUEFTViwgUE9SVCBkZXBlbmRpbmcgdXBvbiB0aGUgdHlwZSBvZiBhZGRyZXNzCisJICB3ZSBhcmUgZGVhbGluZyB3aXRoLgorCisJKiBuYW5vaHR0cC5jOiAoaGF2ZV9pcHY2KTogQWRkZWQgdG8gY2hlY2sgZm9yIHJ1bi10aW1lIElQdjYgc3VwcG9ydC4KKwkgICh4bWxOYW5vSFRUUFNjYW5VUkwpLCAoeG1sTmFub0hUVFBTY2FuUHJveHkpOiBNb2RpZmllZCB0byBwYXJzZQorCSAgYSBVUkkgd2l0aCBJUHY2IGFkZHJlc3MgZ2l2ZW4gaW4gW10uCisJICAoeG1sTmFub0hUVFBDb25uZWN0SG9zdCk6IE1vZGlmaWVkIHRvIHVzZSBnZXRhZGRyaW5mbyBpZiBpdCBpcworCSAgYXZhaWxhYmxlIG9uIHRoZSBzeXN0ZW0uIEFsc28gSVB2NiBhZGRyZXNzZXMgd2lsbCBiZSByZXNvbHZlZCBieQorCSAgZ2V0aG9zdGJ5bmFtZSBvbmx5IGlmIElQdjYgcnVuLXRpbWUgc3VwcG9ydCBpcyBhdmFpbGFibGUuCisJICAoeG1sTmFub0hUVFBDb25uZWN0QXR0ZW1wdCk6IE1vZGlmaWVkIHRvIGRlYWwgd2l0aCBJUHY2IGFkZHJlc3MuCisKK1NhdCBKdW4gMTQgMTg6NDY6NTEgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL2NvbmZpZ3VyZS5qcyBpbmNsdWRlL3dpbjMyY29uZmlnLmggCisJICBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46IEFwcGxpZWQgdGhlIHBhdGNoIGZvciBCQ0IKKwkgIGJ5IEVyaWMgWnVyY2hlci4KKworRnJpIEp1biAxMyAxNDoyNzoxOSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvTWFrZWZpbGUuYW0gZG9jL2h0bWwvKjogcmV2ZXJ0ZWQgYmFjayBwYXRjaCBmb3IgIzExMzUyMSwKKwkgIGR1ZSB0byAjMTE1MTA0IGFuZCB3aGlsZSBmaXhpbmcgIzExNTEwMSAuIEhUTUwgVVJMcyBtdXN0IG5vdAorCSAgYmUgdmVyc2lvbiBkZXBlbmRhbnQuCisKK0ZyaSBKdW4gMTMgMTI6MDM6MzAgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW50aXRpZXMuYzogZG8gbm90IGdlbmVyYXRlICZxdW90OyBmb3IgIiBvdXRzaWRlIG9mIGF0dHJpYnV0ZXMKKwkqIHJlc3VsdC8vKjogdGhpcyBjaGFuZ2VzIHRoZSBvdXRwdXQgb2Ygc29tZSB0ZXN0cworCitNb24gSnVuICA5IDEyOjI4OjU4IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jIHhtbElPLmM6IHRyeWluZyB0byBmaXggIzExNDI3NyBhYm91dCB3aGVuIGZpbGUKKwkgIHJlbWFwcGluZyBhbmQgZXNjYXBpbmcgc2hvdWxkIHJlYWxseSBiZSBhdHRlbXB0ZWQuCisKK01vbiBKdW4gIDkgMTE6MDY6MDkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jLyo6IGFwcGxpZWQgYSBwYXRjaCBmcm9tIEdtYW4gZm9yIGJ1aWxkaW5nIGRvY3MKKwkqIHZhbGlkLmMgeG1sbGludC5jIGluY2x1ZGUvbGlieG1sL3ZhbGlkLmg6IGFwcGxpZWQgYSBwYXRjaCBmcm9tCisJICBHYXJ5IFBlbm5pbmd0b24gdG8gcHJvdmlkZSBhbiBhbGxvY2F0b3IgZm9yIHhtbFZhbGlkQ3R4dAorCSogeG1scmVhZGVyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBKYWNlayBLb25pZWN6bnkgZml4aW5nIGJ1ZworCSAgIzExMzU4MCBhYm91dCBkYXRhIG5vdCBiZWluZyBwYXNzZWQgaW1tZWRpYXRlbHkuCisKK1RodSBKdW4gIDUgMTE6MzE6MDIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBhcHBsaWVkIGEgY291cGxlIG9mIHBhdGNoZXMgZnJvbSBNYXJrIEl0emNvdml0egorCSAgdG8gaGFuZGxlIHNhdmluZyBiYWNrICJVVEYtMTYiIGRvY3VtZW50cy4KKworTW9uIEp1biAgMiAyMTo1NjoxNSBNVlQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oOiBjb21taXRpbmcKKwkgIHNvbWUgd29yayBkb25lIHdoaWxlIGluIHRoZSBNYWxkaXZlcyAoaGVuY2UgdGhlIHRpbWV6b25lIG9uIHRoZQorCSAgbGFwdG9wICEpCisJKiByZXN1bHQvc2NoZW1hcy9sZW5ndGgzKiB0ZXN0L3NjaGVtYXMvZGV0ZXIwXyoKKwkgIHRlc3Qvc2NoZW1hcy9ncm91cDBfKjogc29tZSB0ZXN0cyBhZGRlZCB0b28KKworTW9uIEp1biAgMiAxNTozNDoxNyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbmNvZGluZy5jOiBzbWFsbCBmaXgKKwkqIHhtbElPLmM6IGZpeGVkIGFuIGVycm9yIG1lc3NhZ2UKKworVHVlIE1heSAyMCAxNDoyMToyMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogZml4aW5nIFJlZCBIYXQgYnVnICM5MTAxMyB3aGVyZSB4bWxsaW50IHdhcworCSAgYWNjZXB0aW5nIGFuIGltcHJvcGVyIFVURjggc2VxdWVuY2UKKworU2F0IE1heSAxNyAxMjo1MzoxMSBDRVNUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogdGhyZWFkcy5jOiBhcHBsaWVkIHRoZSBwYXRjaCBmcm9tIFN0w6lwaGFuZSBCaWRvdWwgZm9yIGdldHRpbmcKKwkgIHJpZCBvZiBleHRyYSB0aHJlYWRzIGluIGEgZHluYW1pYyBsaWJyYXJ5LgorCSogd2luMzIvY29uZmlndXJlLmpzOiB0aHJlYWRzIGRlZmF1bHQgdG8gJ25hdGl2ZScgbm93LgorCitGcmkgTWF5IDE2IDEzOjE3OjUyIEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHRyZWUuYzogZml4aW5nICBidWcgIzExMjkwNDogaHRtbCBvdXRwdXQgbWV0aG9kIGVzY2FwZWQKKwkgIHBsdXMgc2lnbiBjaGFyYWN0ZXIgaW4gVVJJIGF0dHJpYnV0ZS4KKworVGh1IE1heSAxNSAxODowNjoxOCBFRFQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGJ1aWxkX2dsb2IucHkgZ2xvYmFsLmRhdGEgZ2xvYmFscy5jIHBhcnNlci5jCisJICBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmg6IHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bCBmb3Igc2V0dGluZworCSAgdXAgdGhyZWFkcyBnbG9iYWwgZGVmYXVsdHMuCisJKiBkb2MvbGlieG1sMi1hcGkueG1sOiB0aGlzIGV4dGVuZHMgdGhlIEFQSSB3aXRoIG5ldyBmdW5jdGlvbnMKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvcmVhZGVyMi5weQorCSAgcHl0aG9uL3Rlc3RzL3RocmVhZDIucHk6IGludGVncmF0ZWQgdGhlIGFzc29jaWF0ZWQgdGVzdGNhc2UgYW5kCisJICBmaXhlZCB0aGUgZXJyb3Igc3RyaW5nIHVzZWQgaW4gcmVhZGVyMgorCitXZWQgTWF5IDE0IDE0OjU2OjQ2IEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGxpYnhtbC5zcGVjLmluIHB5dGhvbi9NYWtlZmlsZS5hbTogdHJ5aW5nCisJICB0byBjb25jaWxpYXRlIC0td2l0aC1weXRob249IHJlcXVpcmVtZW50cyBhbmQgUlBNIGJ1aWxkcywKKwkgIGEgUElUQSByZWFsbHkuLi4KKworVHVlIE1heSAxMyAxODozMDozNCBFRFQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogb29wcyBsYXN0IGNvbW1pdCBpbnRyb2R1Y2VkIGEgbWVtb3J5IGxlYWsuCisKK1R1ZSBNYXkgMTMgMTg6MTA6MzggRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmMgZG9jL3htbGxpbnQueG1sOiBhZGRlZCAtLW5vbmV0IG9wdGlvbgorCSogZG9jL01ha2VmaWxlLmFtOiBmaXhpbmcgIzExMjgwMyBieSBhZGRpbmcgLS1ub25ldCB3aGVuIGNhbGxpbmcKKwkgIHhzbHRwcm9jIG9yIHhtbGxpbnQKKwkqIGRvYy94bWxsaW50LnhtbCBkb2MveG1sbGludC4xOiBhbHNvIGFkZGVkIC0tc2NoZW1hIGRvYyBhbmQKKwkgIHJlYnVpbHQKKwkqIEhUTUxwYXJzZXIuYzogY2xlYW5lZCB1cCB0aGUgSFRNTCBwYXJzZXIgY29udGV4dCBidWlsZCB3aGVuIAorCSAgdXNpbmcgYW4gVVJMCisKK1R1ZSBNYXkgMTMgMTY6MzU6MDQgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuc3BlYy5pbjogYWRkZWQgYSBjb21tZW50IGFib3V0IGJ1ZyAjMTEyOTAyIAorCitNb24gTWF5IDEyIDIxOjU4OjAwIEVEVCAyMDAzIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBtaW5vciBjbGVhbnVwIG9mIGNvbmZpZ3VyZSAnLS1oZWxwJyBkaXNwbGF5CisJKiBlcnJvci5jOiBlbmhhbmNlZCB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0IHRvIGZpeCBidWcgIzEwOTk0MgorCitNb24gTWF5IDEyIDE3OjUzOjMwIEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBQSSBub2RlcyBpbiBleHRlcm5hbCBzdWJzZXQgd2VyZSBub3QgZnJlZWQgOi1cCisJICBmaXhlcyBidWcgIzExMjg0MgorCitNb24gTWF5IDEyIDExOjIzOjI3IEVEVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhZGRlZCAtLXNjaGVtYSBvcHRpb24gdG8gcnVuIFdYUyBzY2hlbWEgdmFsaWRhdGlvbgorCSogeG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jIGluY2x1ZGUvbGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaDoKKwkgIHRyaWVkIHRvIGltcHJvdmUgZXJyb3IgcmVwb3J0aW5nIGluIHRoZSBTY2hlbWEgY29kZSwgc29tZSBjbGVhbnVwCisJICB0b28uCisKK1N1biBNYXkgMTEgMTY6MTM6MjAgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IGZpeGVkIHNvbWUgcHJvYmxlbXMgaW4gdGhlIGhhbmRsaW5nIG9mIGVycm9ycywKKwkgIGFuZCBhdHRyaWJ1dGVzIGFkZHJlc3NlZCBieSByZWZlcmVuY2VzLgorCSogdGVzdC9zY2hlbWFzLyogcmVzdWx0L3NjaGVtYXMvKjogZHJvcHBlZCB0aGUgdmVyYm9zaXR5IGxldmVsCisJICBhbmQgYWRkZWQgYSBjb3VwbGUgb2YgbmV3IHRlc3RzCisKK1NhdCBNYXkgMTAgMTY6MDE6MjEgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IFN0w6lwaGFuZSBCaWRvdWwgZm91bmQgYW4gb2ZmIGJ5IG9uZSBhZGRyZXNzaW5nCisJICBlcnJvciBvbiB0aGUgZXJyb3IgaGFuZGxpbmcuCisKK0ZyaSBNYXkgIDkgMTk6MDg6MjAgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogdHJ5aW5nIHRvIGZpeCAjMTEyNjczCisKK0ZyaSBNYXkgIDkgMTg6MTQ6MTYgRURUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBET0NCcGFyc2VyLmMgY2F0YWxvZy5jIHBhcnNlci5jIHJlbGF4bmcuYzogcmVtb3ZlZCBtdWx0aXBsZQorCSAgd2FybmluZywgdGhpcyBmaXhlZCBhIGJ1ZyBhbmQgc2hvdWxkIGNsb3NlICMxMTE1NzQKKworRnJpIE1heSAgOSAxNTozNDozMiBFRFQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogZml4aW5nIGJ1ZyAjMTA0MDgxIHdpdGggeHM6YWxsIHdpdGggYW4gZWxlbWVudAorCSAgaG9sZGluZyBtaW5PY2N1cnM9IjAiCisJKiB0ZXN0L3NjaGVtYXMvYWxsXyogcmVzdWx0L3NjaGVtYXMvYWxsXyo6IGFkZGVkIHNvbWUgcmVncmVzc2lvbgorCSAgdGVzdHMgZm9yIHRoYXQgYnVnCisJKiB4bWxsaW50LmMgeG1scmVhZGVyLmM6IHBhdGNoZXMgZnJvbSBKb2VyZyBTY2htaXR6LUxpbm5ld2ViZXIgYW5kCisJICBHYXJyeSBQZW5uaW5ndG9uIHRvIGNvbXBpbGUgd2l0aG91dCBzY2hlbWFzIHN1cHBvcnQuCisKK1RodSBNYXkgIDEgMTA6MDI6MzUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBmaXhlZCBhIHByb2JsZW0gd2l0aCB4bWxVbmxpbmtOb2RlKCkgZm9yIERURHMuCisKK1dlZCBBcHIgMzAgMTQ6MTY6MDggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sMi1jb25maWcuaW46IHRyeSB0byBmaXggUmVkIGhhdCBidWcgIzg5OTU3LCBkbyBub3QKKwkgIG91dHB1dCAtTC91c3IvbGliNjQKKwkqIHhtbHJlYWRlci5jOiBmaXhlZCBhIHR5cG8gaW4gYSBjb21tZW50CisKK1R1ZSBBcHIgMjkgMDc6MzI6MDIgTURUIDIwMDMgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLmVudD4KKworCSogZG9jL3R1dG9yaWFsL2FwaC5odG1sLCBpeDAxLmh0bWwKKwlmb3Jnb3QgdG8gY3ZzIGFkZCB0aGUgbmV3IGZpbGVzLiBUaGFua3MgdG8gUm9sYW5kIHZhbiBMYWFyCisJZm9yIHBvaW50aW5nIHRoaXMgb3V0CisKK1R1ZSBBcHIgMjkgMTQ6MzY6NDkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jIGRvYy9saWJ4bWwyLWFwaS54bWw6IGZpeGluZyBhIGZ1bmN0aW9uIGNvbW1lbnQKKwkqIGRvYy9NYWtlZmlsZS5hbSBkb2MvYXBpYnVpbGQucHkgZG9jL2dub21lLXhtbC5zZ21sOiBzd2l0Y2hpbmcKKwkgIHRvIHRoZSBYTUwvWFNMVCBkb2MgZ2VuZXJhdGlvbiBjbG9zaW5nICMxMTE3OTkKKwkqIGRvYy9odG1sLyo6IGNvbXBsZXRlIHVwZGF0ZSBvZiB0aGUgSFRNTCByZXN1bHRzCisKK01vbiBBcHIgMjggMTQ6NTE6NDEgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL2RlZmdlbi54c2w6IGZpeGVkIHRoZSBjb25kaXRpb25hbCBmb3IgdW5pY29kZSBtYXAsCisJICByZW1vdmVkIGhhcmRjb2RlZCBzY2hlbWEgZW50cmllcworCitNb24gQXByIDI4IDAyOjE5OjAwIENFU1QgMjAwMyBJZ29yIFpsYXRrb3ZpYyA8aWdvckB6bGF0a292aWMuY29tPgorCisJKiB3aW4zMi9kZWZnZW4ueHNsOiBuZXcgZmlsZSwgc3R5bGVzaGVldCBmb3IgZ2VuZXJhdGluZyAKKwkgIHdpbjMyL2xpYnhtbDIuZGVmLnNyYyBmcm9tIGRvYy9saWJ4bWwyLWFwaS54bWwKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYzogaXMgYXV0b2dlbmVyYXRlZCBmcm9tIG5vdyBvbiwgY2hhbmdlcworCSAgdG8gdGhpcyBmaWxlIHdpbGwgbm90IGFwcGVhciBoZXJlIGFueW1vcmUKKworTW9uIEFwciAyOCAwMDoxMjoxMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9jb25maWd1cmUuanMgcHl0aG9uL3NldHVwLnB5LmluOiBhcHBsaWVkIHBhdGNoCisJICBmcm9tIFN0w6lwaGFuZSBCaWRvdWwgZm9yIHRoZSBQeXRob24gYmluZGluZ3Mgb24gdGhlIG5ldworCSAgcmVsZWFzZS4KKworU3VuIEFwciAyNyAxNzo1NjoyMSBDRVNUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogZGVidWdYTUwuYzogaW5jbHVkZWQgbGlieG1sL3VyaS5oIGZvciB4bWxDYW5vbmljUGF0aAorCSAgZGVjbGFyYXRpb24KKwkqIHdpbjMyL2NvbmZpZ3VyZS5qczogdGhyZWFkLWVuYWJsZWQgYnVpbGQgaXMgbm93IGRlZmF1bHQKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYzogYWRkZWQgbW9yZSBleHBvcnRzCisKK1N1biBBcHIgMjcgMDA6MjM6MDUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTkVXUyBkb2MvKi54c2wgZG9jLyouaHRtbDogdXBkYXRlZCB0aGUgd2ViIHNpdGUgc2VwYXJhdGVkCisJICBkZXZlbG9wZXJzIGZyb20gY29tbW9uIHBhZ2VzLCBtYWRlIHRoZSB0cmFuc2l0aW9uIHRvIFhIVE1MMSwKKwkgIGFkZGVkIHZhbGlkaXR5IGNoZWNraW5nIHRvIHRoZSBtYWtlZmlsZSBydWxlcy4KKworU2F0IEFwciAyNiAyMzoxNzo1MSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4IGZvciB4bWxJT1BhcnNlRFREIHNhbWUgYXMgcHJldmlvdXMgYW5kIHJlcG9ydGVkCisJICBieSBQZXRyIFBhamFzCisKK1NhdCBBcHIgMjYgMTU6MjY6MDQgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFwcGxpZWQgZml4IHRvIHhtbFNBWFBhcnNlRFREIGZyb20gTWFsY29sbSBUcmVkaW5uaWNrCisJICBjbG9zaW5nICMxMTE2MzgKKworU2F0IEFwciAyNiAxNDowMDo1OCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5OiBmaXhlZCBhIHByb2JsZW0gaW4gdGhlIGdlbmVyYXRvciB3aGVyZQorCSAgdGhlIHdheSBmdW5jdGlvbnMgYXJlIHJlbWFwcGVkIGFzIG1ldGhvZHMgb24gY2xhc3NlcyB3YXMKKwkgIG5vdCBzeW1ldHJpYyBhbmQgZGVwZW5kYW50IG9uIHB5dGhvbiBpbnRlcm5hbCBoYXNoIG9yZGVyLAorCSAgYXMgcmVwb3J0ZWQgYnkgU3TDqXBoYW5lIEJpZG91bAorCitGcmkgQXByIDI1IDIxOjUyOjMzIE1EVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy90dXRvcmlhbDoKKwl4bWx0dXRvcmlhbC54bWwKKwl4bWx0dXRvcmlhbC5wZGYKKwkqLmh0bWwKKwlhZGQgYXBwZW5kaXggb24gZ2VuZXJhdGluZyBjb21waWxlciBmbGFncywgbW9yZSBpbmRleGluZworCitTYXQgQXByIDI2IDAxOjEwOjQ4IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyaW9kZWYuaCB2bXMvYnVpbGRfbGlieG1sLmNvbTogYXBwbGllZCBwYXRjaCBmcm9tIENyYWlnIEEuIEJlcnJ5CisJICB0byBnZXQgbGlieG1sLTIuNS43IHRvIGNvbXBpbGUgb24gT3BlblZNUworCitGcmkgQXByIDI1IDE4OjQyOjM1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhpbmcgYW4geG1sUGFyc2VEVEQgYnVnIHJhaXNlZCBieSBQZXRyIFBhamFzCisKK0ZyaSBBcHIgMjUgMTU6MjA6MjkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL01ha2VmaWxlLmFtIGRvYy94bWxjYXRhbG9nLjEgZG9jL3htbGNhdGFsb2dfbWFuLnhtbAorCSAgZG9jL3htbGxpbnQuMSBkb2MveG1sbGludC54bWw6IGF1dG9tYXRlZCB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUKKwkgIG1hbiBwYWdlIGJhc2VkIG9uIHhzbHRwcm9jIGFuZCBhIHN0eWxlc2hlZXQgUEkgaW4gdGhlIFhNTC4KKworRnJpIEFwciAyNSAxMjozNzozMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MveG1sbGludC4qOiB0cnlpbmcgdG8gZml4ICMxMTA1NDEgd2hlcmUgJm5ic3A7IGdlbmVyYXRlZAorCSAgY2hhcmFjdGVyIHByZXZlbnRpbmcgcmVuZGVyaW5nIGJ5IHRoZSBtYW4gY29tbWFuZC4KKworRnJpIEFwciAyNSAwMTowOToyMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBORVdTIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIHJlbGVhc2UgMi41LjcKKwkqIGRvYy8qOiB1cGRhdGVkIGFuZCByZWJ1aWx0IHRoZSBkb2NzCisJKiBkb2MvYXBpYnVpbGQucHk6IGZpeGVkIHRoZSBzY3JpcHQKKworVGh1IEFwciAyNCAxOToxMToxMiBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBkb2MvYXBpYnVpbGQucHk6IG1ha2Ugc3VyZSB0aGUgT09NIGNvZGUgZG9uJ3QKKwkgIGdldCBpbiB0aGUgd2F5IG9mIHRoZSBidWlsZHMKKwkqIGRvYy9saWJ4bWwyLWFwaS54bWwgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IGF1dG9tYXRpYyB1cGRhdGUKKworVGh1IEFwciAyNCAxODowMTo0NiBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSB0ZXN0T09NLmMgdGVzdE9PTWxpYi5bY2hdIDogaW50ZWdyYXRlZCB0aGUgT3V0IE9mCisJICBNZW1vcnkgdGVzdCBmcm9tIEhhdm9jIFBlbm5pbmd0b24gIzEwOTM2OAorCSogU0FYLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdHJlZS5jIHVyaS5jIHZhbGlkLmMKKwkgIHhtbG1lbW9yeS5jIHhtbHJlYWRlci5jIHhtbHJlZ2V4cC5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaAorCSAgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IGEgbG90IG9mIG1lbW9yeSBhbGxvY2F0aW9uIGNsZWFudXBzCisJICBiYXNlZCBvbiB0aGUgcmVzdWx0cyBvZiB0aGUgT09NIHRlc3RpbmcKKwkqIGNoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZTIucHk6IHNlZW1zIEkgZm9yZ290IHRvIGNvbW1pdCB0aGUKKwkgIHNjcmlwdC4KKworV2VkIEFwciAyMyAxNzoxNjo0MSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogdHJpdmlhbCBmaXggZm9yIDEwOTc3NCByZW1vdmluZyBhIHdhcm5pbmcKKworV2VkIEFwciAyMyAxNTo0OTozMiBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBET0NCcGFyc2VyLmMgU0FYLmMgY2F0YWxvZy5jIGRlYnVnWE1MLmMgcGFyc2VyLmM6IHRyeSB0byBmaW5kCisJICBtb3JlIHBsYWNlcyB3aGVyZSB4bWxDYW5vbmljUGF0aCgpIG11c3QgYmUgdXNlZCB0byBjb252ZXJ0CisJICBmaWxlbmFtZXMgdG8gVVJMcywgdHJ5aW5nIHRvIGZpeCAjMTExMDg4CisKK1dlZCBBcHIgMjMgMDk6MzU6MTIgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwucHk6IGFwcGxpZWQgcGF0Y2ggZnJvbSAKKwkgIEJyZW50IE0gSGVuZHJpY2tzIGFkZGluZyBiaW5kaW5nIGZvciB4bWxDYXRhbG9nQWRkTG9jYWwKKworVHVlIEFwciAyMiAxNToxODowMSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IHRyaWVkIHRvIGZpeCAjOTg4NzkgYWdhaW4gaW4gYSBtb3JlIHNvbGlkCisJICB3YXkuCisKK1R1ZSBBcHIgMjIgMTM6NTg6NDMgQ0VTVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYzogYWRkZWQgbW9yZSBleHBvcnRzIGZyb20gdGhlIHJlbGF4bmcgYW5kCisJICB4bWxyZWFkZXIgY2xhbgorCitUdWUgQXByIDIyIDEwOjM1OjEzIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jIHRlc3QvdmFsaWQvbnMqIHRlc3QvcmVzdWx0L25zKjogYXBwbGllZCB0aGUgcGF0Y2gKKwkgIHByb3ZpZGVkIGJ5IEJyZW50IEhlbmRyaWNrcyBmaXhpbmcgIzEwNTk5MiBhbmQgaW50ZWdyYXRlZCB0aGUKKwkgIGV4YW1wbGVzIGluIHRoZSB0ZXN0c3VpdGUuCisKK1R1ZSBBcHIgMjIgMDE6MDY6MDkgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogVE9ETzogdXBkYXRlZCBhIGJpdAorCSogY29uZmlndXJlLmluOiBmaXhlZCB0aGUgY29tbWVudCwgdGhyZWFkcyBub3cgZGVmYXVsdCB0byBvbgorCSogcGFyc2VySW50ZXJuYWxzLmM6IGZpeGVkIGFuIGVycm9uZW91cyB4bWxNYWxsb2NBdG9taWMoKSBjYWxsCisKK01vbiBBcHIgMjEgMjM6MzM6MzggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2xvYmFscy5jIGxpYnhtbC5oIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHRyZWUuYyB4bWxsaW50LmMKKwkgIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBhIGxvdCBvZiBwZXJmb3JtYW5jZSB3b3JrCisJICBlc3BlY2lhbGx5IHRoZSBzcGVlZCBvZiBzdHJlYW1pbmcgdGhyb3VnaCB0aGUgcmVhZGVyIGFuZCBwdXNoCisJICBpbnRlcmZhY2UuIFNvbWUgdGhyZWFkIHJlbGF0ZWQgb3B0aW1pemF0aW9ucy4gTmVhcmx5IGRvdWJsZWQgdGhlCisJICBzcGVlZCBvZiBwYXJzaW5nIHRocm91Z2ggdGhlIHJlYWRlci4KKworU3VuIEFwciAyMCAxMDozNjowNSBNRFQgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sbGludC54bWwKKwkqIGRvYy94bWxsaW50LjEKKwl1cGRhdGUgbWFuIHBhZ2UgdG8gZXhwbGFpbiB1c2Ugb2YgLS1zdHJlYW0KKworU2F0IEFwciAxOSAwMjowMzoyNCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBET0NCcGFyc2VyLmMgSFRNTHBhcnNlci5jIGMxNG4uYyBjYXRhbG9nLmMgZW5jb2RpbmcuYyBnbG9iYWxzLmMKKwkgIG5hbm9odHRwLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgcmVsYXhuZy5jIHRyZWUuYyB1cmkuYworCSAgeG1sbWVtb3J5LmMgeG1scmVhZGVyLmMgeG1scmVnZXhwLmMgeHBhdGguYyB4cG9pbnRlci5jCisJICBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IGFkZGVkCisJICB4bWxNYWxsb2NBdG9taWMoKSB0byBiZSB1c2VkIHdoZW4gYWxsb2NhdGluZyBibG9ja3Mgd2hpY2gKKwkgIGRvIG5vdCBjb250YWlucyBwb2ludGVycywgYWRkIHhtbEdjTWVtU2V0dXAoKSBhbmQgeG1sR2NNZW1HZXQoKQorCSAgdG8gYWxsb3cgcmVnaXN0ZXJpbmcgdGhlIGZ1bGwgc2V0IG9mIGZ1bmN0aW9ucyBuZWVkZWQgYnkKKwkgIGEgZ2FyYmFnZSBjb2xsZWN0aW5nIGFsbG9jYXRvciBsaWtlIGxpYmdjLCByZWYgIzEwOTk0NAorCitGcmkgQXByIDE4IDE2OjM3OjQxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogc3dpdGNoZWQgdG8gaGF2ZSB0aHJlYWQgc3VwcG9ydCBlbmFibGVkIGJ5IGRlZmF1bHQsCisJICBkaWRuJ3QgZ290IHRyb3VibGVzIHdpdGggQUJJIGNvbXBhdGliaWxpdHkgb24gTGludXgsIGhvcGUgaXQKKwkgIHdvbid0IGJyZWFrIG9uIHN0cmFuZ2UgT1NlcywgaWYgeWVzLCByZXBvcnQgdGhlIHN5c3RlbSBJRAorCSogZG9jL2xpYnhtbDItYXBpLnhtbDoganVzdCByZWJ1aWx0IHRoZSBBUEkKKworRnJpIEFwciAxOCAxNDozMToxNSBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuaCBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBwYXJzZXIuYyB4bWxJTy5jIERPQ0JwYXJzZXIuYzogCisJICBhZGRlZCBzdXBwb3J0IGZvciBsYXJnZSBmaWxlLCB0ZXN0ZWQgd2l0aCBhIDMrR0IgaW5zdGFuY2UsCisJICBhbmQgc29tZSBjbGVhbnVwLgorCSogY2F0YWxvZy5jOiBhZGRlZCBhIFRPRE8KKwkqIE1ha2VmaWxlLmFtOiBhZGRlZCBzb21lICJtYWtlIHRlc3RzIiBjb21tZW50cworCitUaHUgQXByIDE3IDE0OjUxOjU3IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogc29tZSBjbGVhbnVwcworCSogZG9jL3htbHJlYWRlci5odG1sOiBleHRlbmRlZCB0aGUgZG9jdW1lbnQgdG8gY292ZXIgUmVsYXhORyBhbmQKKwkgIHRyZWUgb3BlcmF0aW9ucworCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9yZWFkZXJbNDZdLnB5OiBhZGRlZCBzb21lCisJICB4bWxSZWFkZXIgZXhhbXBsZS9yZWdyZXNzaW9uIHRlc3RzCisJKiByZXN1bHQvcmVsYXhuZy90dXRvciouZXJyOiB1cGRhdGVkIHRoZSBvdXRwdXQgb2YgYSBudW1iZXIgb2YgdGVzdHMKKworVGh1IEFwciAxNyAxMTozNTozNyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IHZhbGdyaW5kIHBvaW50ZWQgb3V0IGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgZXJyb3IuCisKK1RodSBBcHIgMTcgMTE6MDY6MjggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oIHJlbGF4bmcuYyBpbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaAorCSAgeG1scmVhZGVyLmM6IGF1Z25lbXRpbmcgdGhlIEFQSXMsIGNsZWFudXBzLgorCSogcGFyc2VyLmM6IGNsZWFudXAgYnVnICMxMTEwMDUKKwkqIHhtbElPLmM6IGFkZGVkIHNvbWUgbWlzc2luZyBjb21tZW50cworCitXZWQgQXByIDE2IDE3OjQ2OjUwIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyB4bWxsaW50LmM6IG1vcmUgd29yayBvbiBSZWxheE5HIHN0cmVhbWluZyB2YWxpZGF0aW9uCisJICB0cnlpbmcgdG8gaW1wcm92ZSB0aGUgc3Vic2V0IGNvbXBpbGVkLCBhbmQgbW9yZSB0ZXN0aW5nLgorCSogZG9jL2Rvd25sb2Fkcy5odG1sIGRvYy94bWwuaHRtbCBkb2MveG1sbWVtLmh0bWw6IHNvbWUgdXBkYXRlcyBvbiB0aGUKKwkgIGRvY3VtZW50YXRpb24KKwkqIHRlc3QvcmVsYXhuZy90dXRvcjExXzFfMy54bWw6IGZpeGVzIHRoZSBEVEQgcGF0aAorCSogcmVzdWx0L3JlbGF4bmcvKi5lcnI6IGZpeCBzb21lIG9mIHRoZSBvdXRwdXRzCisKK1dlZCBBcHIgMTYgMDE6Mjg6MTUgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jIHhtbHJlYWRlci5jIHhtbGxpbnQuYyBpbmNsdWRlL2xpYnhtbC9yZWxheG5nLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiBpbXBsZW1lbnRlZCBzdHJlYW1pbmcgb2YKKwkgIFJlbGF4TkcgKHdoZW4gcG9zc2libGUpIG9uIHRvcCBvZiB0aGUgeG1sUmVhZGVyIGludGVyZmFjZSwKKwkgIHByb3ZpZGVkIGl0IGFzIHhtbGxpbnQgLS1zdHJlYW0gLS1yZWxheG5nIC5ybmcgLnhtbAorCSAgVGhpcyBzZWVtcyB0byBtb3N0bHkgd29yay4KKwkqIE1ha2VmaWxlLmFtOiB1cGRhdGVkIHRvIHRlc3QgUmVsYXhORyBzdHJlYW1pbmcKKworTW9uIEFwciAxNCAxODowODozMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmMgaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oOiBpbnRlZ3JhdGVkIHRoZSByZWdleHAKKwkgIGJhc2VkIHZhbGlkaXR5IGNoZWNraW5nIG9mIGZyYWdtZW50cyBvZiB0aGUgZG9jdW1lbnQgZm9yCisJICB3aGljaCB0aGUgUk5HIGNhbiBiZSBjb21waWxlZCB0byByZWdleHBzLiBXb3JrcyBvbiBhbGwgcmVncmVzc2lvbgorCSAgdGVzdHMsIG9ubHkgZml4IG5lZWRlZCBpcyByZWxhdGVkIHRvIGVycm9yIG1lc3NhZ2VzLgorCitTdW4gQXByIDEzIDIxOjUxOjAwIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyB4bWxyZWdleHAuYyBpbmNsdWRlL2xpYnhtbC94bWxhdXRvbWF0YS5oCisJICBpbmNsdWRlL2xpYnhtbC94bWxyZWdleHAuaDogU3RhcnRpbmcgd29yayBwcmVjb21waWxpbmcKKwkgIHBhcnRzIG9mIFJlbGF4Tkcgc2NoZW1hcy4gTm90IHBsdWdnZWQgb250byB2YWxpZGl0eSBjaGVja2luZworCSAgeWV0LCBqdXN0IHRoZSByZWdleHAgYnVpbGRpbmcgcGFydC4gTmVlZGVkIHRvIGV4dGVuZCBzb21lCisJICBvZiB0aGUgYXV0b21hdGEgYW5kIHJlZ2V4cCBBUElzLgorCitGcmkgQXByIDExIDIxOjM2OjIxIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYyB4bWxyZWFkZXIuYyBpbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaDogbWFrZSBzdXJlCisJICB4bWxsaW50IC0tc3RyZWFtIGFuZCB4bWxsaW50IC0tc3RyZWFtIC0tdmFsaWQgcmV0dXJucyBlcnJvcnMKKwkgIGNvZGUgYXBwcm9wcmlhdGVseQorCitGcmkgQXByIDExIDEwOjU5OjI0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiBBZGRlZCB0aGUgRXhwYW5kKCkKKwkgIGFuZCBOZXh0KCkgb3BlcmF0aW9uIHRvIHdvcmsgb24gc3VidHJlZXMgd2l0aGluIHRoZSByZWFkZXIKKwkgIGZyYW1ld29yay4KKwkqIGRvYy9saWJ4bWwyLWFwaS54bWwgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IHJlc3VsdGluZyB1cGRhdGVzCisJKiBweXRob24vdGVzdHMvcmVhZGVyNS5weTogYWRkZWQgYW4gZXhhbXBsZSBmb3IgdGhvc2UgbmV3CisJICBmdW5jdGlvbnMgb2YgdGhlIHJlYWRlci4KKworVGh1IEFwciAxMCAyMzozODoxMyBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jOiBwYXRjaCBmcm9tIFZhc2lseSBUY2hla2Fsa2luIHRvIGZpeCAjMTA5ODY1CisKK1RodSBBcHIgMTAgMTU6MzI6NDQgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IGZpeGluZyBIYXNWYWx1ZSBmb3IgbmFtZXNwYWNlIGFzIHJhaXNlZCBieSAKKwkgIERlbnlzIER1Y2hpZXIKKworV2VkIEFwciAgOSAxNDowNzoxOCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmMgaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oOiAgZXhwb3J0ZWQKKwkgIGh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KCkgaXQgd2FzIHN0YXRpYworCitXZWQgQXByICA5IDEzOjIxOjQ4IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYyBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6CisJICB1cGRhdGUgZnJvbSBDaGFybGVzIEJvemVtYW4gZm9yIGRhdGUgYW5kIGR1cmF0aW9uIHR5cGVzCisJKiB0ZXN0L3NjaGVtYXMvZGF0ZV8wLiogdGVzdC9zY2hlbWFzL2R1cl8wLioKKwkgIHJlc3VsdC9zY2hlbWFzL2RhdGVfMC4qIHJlc3VsdC9zY2hlbWFzL2R1cl8wLio6IHVwZGF0ZWQgdG9vCisKK01vbiBBcHIgIDcgMTI6MTk6MjYgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jIHZhbGlkLmMgeHBhdGguYyBpbmNsdWRlL2xpYnhtbC90cmVlLmggaW5jbHVkZS9saWJ4bWwvdmFsaWQuaDoKKwkgIGZpeGluZyBidWcgIzEwNzEyOSwgcmVtb3ZpbmcgZXhjZXNzaXZlIGFsbG9jYXRpb24gYW5kIGNhbGxzCisJICB0byAqcHJpbnRmIGluIHRoZSBjb2RlIHRvIGJ1aWxkIFFOYW1lIHN0cmluZ3MuCisKK1NhdCBBcHIgIDUgMTE6NDE6MzYgQ0VTVCAyMDAzIElnb2UgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYzogZml4ZWQgY29uZGl0aW9uYWwgZXhwb3J0cywgcmVwb3J0ZWQgYnkKKwkgIEx1a2UgTXVycmF5LgorCitGcmkgQXByICA0IDE4OjA4OjAwIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhIHBvc3NpYmxlIHByb2JsZW0gd2l0aCB4bWxSZWNvdmVyTWVtb3J5KCkKKworVGh1IEFwciAgMyAxNzoyNDo0NCBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmlvLmMgdHJpby5oIHRyaW9kZWYuaCB0cmlvbmFuLmMgdHJpb25hbi5oIHRyaW9wLmggdHJpb3N0ci5jCisJICB0cmlvc3RyLmg6IEJqb3JuIHNlbnQgYW4gdXBkYXRlIGZvciB0aGUgVFJJTyBwb3J0YWJpbGl0eSBsYXllci4KKworVHVlIEFwciAgMSAyMTo1NzoyNiBDRVNUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogd2luMzIvbGlieG1sMi5kZWYuc3JjOiBleHBvcnRlZCBuZXcgZnVuY3Rpb25zCisKK1R1ZSBBcHIgIDEgMTM6MDk6NDYgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIE5FV1M6IHByZXBhcmluZyByZWxlYXNlIDIuNS42CisJKiBkb2MvKjogdXBkYXRlZCBhbmQgcmVidWlsdCB0aGUgZG9jcworCitUdWUgQXByICAxIDExOjUyOjE1IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jOiBmaXhlZCBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSBhY2Nlc3MgcG9pbnRlZCBieSB2YWxncmluZAorCSAgb24gQzE0TnRlc3RzCisKK1R1ZSBBcHIgIDEgMDA6MTI6MjggQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBvbmUgbW9yZSBmaXh1cCBvZiBlcnJvciBtZXNzYWdlIHJlcG9ydGluZworCitNb24gTWFyIDMxIDE4OjM2OjMyIENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogbW9yZSB3b3JrIG9uIGJ1ZyAjMTA5MjI1LCBhbmQgZml4ZWQgYW4gdW5pbml0aWFsaXplZAorCSAgdmFyaWFibGUgcG9pbnRlZCBvdXQgYnkgdmFsZ3JpbmQKKworTW9uIE1hciAzMSAxODowNToyMiBDRVNUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IHRyeSB0byB3b3JrIG9uIGJ1ZyAjMTA5MjI1IGFuZCBwcm92aWRlIGJldHRlcgorCSAgZXJyb3IgcmVwb3J0cy4KKwkqIHJlc3VsdC9yZWxheG5nLyogOiB0aGlzIGNoYW5nZSB0aGUgb3V0cHV0IG9mIGEgbnVtYmVyIG9mIHRlc3RzCisJKiB4aW5jbHVkZS5jOiBmaXhpbmcgdGhlIHBhcnNlZCBlbnRpdHkgcmVkZWZpbml0aW9uIHByb2JsZW0KKwkgIHJhaXNlZCBvbiB0aGUgbGlzdC4KKwkqIHRlc3Qvc2NoZW1hcy9kYXRlXzAueHNkOiB1cGRhdGVkIHRoZSBkYXRlIHRlc3QgYy5mLiBFMi0xMgorCitNb24gTWFyIDMxIDEzOjE5OjA0IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBmaXhlZCBkYXRlIGNvbXBhcmlzb24gdG8gaGFuZGxlIHRoZSB0em8KKwkgIFRoZSBvbmx5IGZhaWx1cmVzIGxlZnQgYXJlIGRpc2FncmVlbWVudHMgb24gTm90YXRpb25zIGFuZAorCSAgJysxJyBub3QgYmVpbmcgYWxsb3dlZCBmb3IgdWxvbmcsIHVpbnQsIHVzaG9ydCBhbmQgdWJ5dGUuCisKK01vbiBNYXIgMzEgMTI6MTE6NDcgQ0VTVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGZpeGVkIGdNb250aCBwYXJzaW5nIHJvdXRpbmUgYWNjb3JkaW5nbHkKKwkgIHRvIHRoZSBYTUwgU2NoZW1hcyBlcnJhdGEKKwkgIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDUveG1sc2NoZW1hLWVycmF0YSNlMi0xMgorCitTdW4gTWFyIDMwIDIzOjA0OjE4IENFU1QgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyB4bWxzY2hlbWFzdHlwZXMuYzogbW9yZSB3b3JrIG9uIFhNTCBTY2hlbWFzIGRhdGF0eXBlcworCSAgYW5kIGZhY2V0cyBzdXBwb3J0LiBDdXJyZW50bHkgb25seSBzY2hlbWFzIHdpdGggYmluSGV4IG9yCisJICBiYXNlNjQgZG9uJ3QgY29tcGlsZS4gQSBmZXcgZXJyb3IgbGVmdCBpbiB0aGUgdGVzdCBzdWl0ZToKKwkgIGZvdW5kIDEwMzUgdGVzdCBpbnN0YW5jZXM6IDkxOSBzdWNjZXNzIDIzIGZhaWx1cmVzCisJICBtb3N0IGFyZSBnZGF0ZSBvciBnZGF0ZXllYXIgZmFpbGluZyBjaGVjaywgYW5kIGEgZmV3IGNhc2VzIHdoZXJlCisJICBKYW1lcyBjbGFyayB0ZXN0cyByZXN1bHRzIGFyZSBzdHJhbmdlLgorCSogdmFsaWQuYzogYWxsb3cgdG8gcmV1c2UgdGhlIE5vdGF0aW9uIGNoZWNraW5nIHJvdXRpbmUgd2l0aG91dAorCSAgaGF2aW5nIGEgdmFsaWRhdGlvbiBjb250ZXh0LgorCSogU0FYLmM6IHJlbW92ZWQgYSAjaWYgMAorCitTYXQgTWFyIDI5IDE3OjM1OjA1IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYzogZm9yZ290IHRvIGFwcGx5IG9uZSBjaGVjayBmcm9tICMxMDY5MzEgcGF0Y2gKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBtb3JlIHdvcmsgb24gWE1MIFNjaGVtYXMgZGF0YXR5cGVzCisKK1NhdCBNYXIgMjkgMTE6NDk6MjUgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmMgaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oIHhtbHNjaGVtYXN0eXBlcy5jOiBtb3JlIHdvcmsKKwkgIG9uIGNsZWFuaW5nIHVwIFhNTCBTY2hlbWFzIGRhdGF0eXBlcyBiYXNlZCBvbiBKYW1lcyBDbGFyayB0ZXN0cworCSAgdGVzdC94c2R0ZXN0L3hzZHRlc3QueG1sCisKK0ZyaSBNYXIgMjggMTQ6MjQ6MDggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGltcGxlbWVudGVkIGNvbXBhcmlzb25zIGZvciBTY2hlbWFzIHZhbHVlcy4KKwkqIHhtbHNjaGVtYXN0eXBlcy5jIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oOiBmaXhlZAorCSAgc29tZSBidWdzIGluIGR1cmF0aW9uIGhhbmRsaW5nLCBjb21wYXJpc29ucyBmb3IgZHVyYXRpb25zCisJICBhbmQgZGVjaW1hbHMsIHJlbW92ZWQgYWxsIG1lbW9yeSBsZWFrcyBwb2ludGVkIG91dCBieSBKYW1lcworCSAgdGVzdHN1aXRlLiBDdXJyZW50IHN0YXR1cyBpcyBub3cKKwkgIGZvdW5kIDIzOCB0ZXN0IHNjaGVtYXM6IDE5NyBzdWNjZXNzIDQxIGZhaWx1cmVzCisJICBmb3VuZCAxMDM1IHRlc3QgaW5zdGFuY2VzOiA4MDMgc3VjY2VzcyAxMzAgZmFpbHVyZXMKKworRnJpIE1hciAyOCAwMDo0MTo1NSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6IGZpeGVkIGJ1Z3MgYW5kIG1lbW9yeQorCSAgbGVha3MgaW4gdGhlIFczQyBYTUwgU2NoZW1hcyBjb2RlCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogaW1wbGVtZW50ZWQgbm9uUG9zaXRpdmVJbnRlZ2VyCisJKiB0ZXN0L3NjaGVtYXMvbGVuZ3RoMl8wLnhzZCByZXN1bHQvc2NoZW1hcy9sZW5ndGgyXzBfMC5lcnI6CisJICBmaXhlZCB0aGUgdGVzdCBhbmQgcmVzdWx0LgorCitUaHUgTWFyIDI3IDIyOjIzOjA3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIHRyZWUuYzogdHdvIHBhdGNoZXMgZnJvbSBKYW1lcyBCdXJzYSBvbiB0aGUgSFRNTAorCSAgcGFyc2VyIGFuZCBhIHR5cG8KKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiByZWluZGVudGluZywgZml4aW5nIGEgbWVtb3J5IGFjY2VzcworCSAgcHJvYmxlbSB3aXRoIGRhdGVzLgorCitUaHUgTWFyIDI3IDE1OjUzOjM1IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGluZyAjMTA5MjI3IHByb3ZpZGluZyBtb3JlIGNvbnRleHQgaW4gY2FzZSBvZiAKKwkgIHN0YXJ0L2VuZCB0YWcgbWlzbWF0Y2gKKwkqIHB5dGhvbi90ZXN0cy9jdHh0ZXJyb3IucHkgcHl0aG9uL3Rlc3RzL3JlYWRlcmVyci5weTogdXBkYXRlIHRoZQorCSAgdGVzdHMgYWNjb3JkaW5nbHkKKworVGh1IE1hciAyNyAxNToyMjo0MSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IHNob3VsZCBmaXggIzEwOTMyNyBlcnJvcnMgb24gbWVtb3J5IGFjY2Vzc2VzCisKK1RodSBNYXIgMjcgMTU6MDY6MTMgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jOiBGaXhlZCByZW9wZW5pbmcgb2YgIzc4NjYyIDxmb3JtIGFjdGlvbj0iLi4uIj4KKwkgIGlzIGFuIFVSSSByZWZlcmVuY2UKKworV2VkIE1hciAyNiAyMjozODozOSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGZpeGVkIGJ1ZyAjMTA5MTYwIG9uIG5vbi1BU0NJSSBJRHMKKworV2VkIE1hciAyNiAxNzozMDozNyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBOb3JtIHN1Z2dlc3RlZCBhIG5pY2VyIGVycm9yIG1lc3NhZ2UgZm9yIHhtbDpzcGFjZSB2YWx1ZXMKKwkgIGVycm9ycworCitXZWQgTWFyIDI2IDAxOjM0OjE5IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYyBpbmNsdWRlL2xpYnhtbC94cGF0aC5oOiBmaXJzdCBwYXJ0IG9mIHRoZSBmaXggdG8KKwkgIHBlcmZvcm1hbmNlIGJ1ZyAjMTA4OTA1LCBhZGRzIHhtbFhQYXRoT3JkZXJEb2NFbGVtcygpIHByb3ZpZGluZworCSAgZG9jdW1lbnQgb3JkZXIgZm9yIG5vZGVzLgorCSogcHl0aG9uL2xpYnhtbC5jOiBQeXRob24gbWF5IHJlcXVpcmUgVFJJTyBhcyBBbGJlcnQgQ2hpbiBwb2ludGVkIG91dAorCitUdWUgTWFyIDI1IDE2OjA3OjAwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IHJlbW92aW5nIGEgd2FybmluZyB3aXRoIFN1biBjb21waWxlcgorCSAgYnVnICMxMDkxNTQKKworVHVlIE1hciAyNSAwNzowMjo1NiBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sbGludC54bWwKKwkqIGRvYy94bWxsaW50LjEKKwl1cGRhdGUgeG1sbGludCBtYW4gcGFnZSB3aXRoIC0tcmVsYXhuZyBvcHRpb24KKworVHVlIE1hciAyNSAxMjowNzowMyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9zZXR1cC5weS5pbiA6IHdhcyBtaXNzaW5nICJkcnZfbGlieG1sMi5weSIKKworTW9uIE1hciAyNCAxOTozODowNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYyB4cGF0aC5jOiBzb21lIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgbmV3IHdheSBvZiAKKwkgIGhhbmRsaW5nIFJlc3VsdCBWYWx1ZSBUcmVlLCBiZWZvcmUgMi41LjUKKworTW9uIE1hciAyNCAxNjozNjoyMyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBORVdTOiBwcmVwYXJpbmcgcmVsZWFzZSAyLjUuNQorCSogZG9jLyogOiB1cGRhdGVkIHRoZSBkb2N1bWVudGF0aW9uIGFuZCByZWdlbmVyYXRlZCBpdC4KKworTW9uIE1hciAyNCAxNDo1NjowMSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHNvbWUgcHJvYmxlbXMgcmVsYXRlZCB0byAjNzU4MTMgYWJvdXQgaGFuZGxpbmcKKwkgIG9mIFJlc3VsdCBWYWx1ZSBUcmVlcworCitTdW4gTWFyIDIzIDIyOjU3OjIwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmM6IGFwcGxpZWQgYSBzZXQgb2YgcGF0Y2hlcyBmcm9tIExvcmVuem8gVmlhbGkgY29ycmVjdGluZworCSAgVVJJIHBhcnNpbmcgZXJyb3JzLgorCitTdW4gTWFyIDIzIDIyOjAwOjE0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHZhbGlkaXR5IHN0YXR1cyB3YXMgbm90IHBhc3NlZCBiYWNrIHdoZW4gdmFsaWRhdGluZyBpbgorCSAgZW50aXRpZXMsIGJ1dCByYWlzZWQgYnkgT2xpdmVyIEZpc2NoZXIKKworU3VuIE1hciAyMyAyMTozMDo1MCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmM6IGF2b2lkIGVzY2FwaW5nICcsJyBpbiBVUklzCisKK1N1biBNYXIgMjMgMTI6NTc6MDAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4aW5nIGJ1ZyAjMTA4OTc2IGdldCB0aGUgSUQvUkVGcyB0byByZWZlcmVuY2UgCisJICB0aGUgSUQgaW4gdGhlIGRvY3VtZW50IGNvbnRlbnQgYW5kIG5vdCBpbiB0aGUgZW50aXR5IGNvcHkKKwkqIFNBWC5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBtb3JlIGNoZWNraW5nIG9mIHRoZSBJRC9SRUYKKwkgIHN0dWZmLCBiZXR0ZXIgc29sdXRpb24gZm9yICMxMDcyMDgKKwkqIHhtbHJlZ2V4cC5jOiByZW1vdmVkIGEgZGlyZWN0IHByaW50ZiwgZG9oaGgKKwkqIHhtbHJlYWRlci5jOiBmaXhlZCBhIGJ1ZyBvbiBzdHJlYW1pbmcgdmFsaWRhdGlvbiBvZiBlbXB0eSAKKwkgIGVsZW1lbnRzIGluIGVudGl0aWVzCisJKiByZXN1bHQvVkMvRWxlbWVudFZhbGlkOCB0ZXN0L1ZDTS92MjAueG1sIHJlc3VsdC92YWxpZC94aHRtbDEueGh0bWw6CisJICBjbGVhbnVwIG9mIHRoZSB2YWxpZGF0aW9uIHRlc3RzCisJKiB0ZXN0L3ZhbGlkL2lkKiB0ZXN0L3ZhbGlkL2R0ZHMvZGVzdGZvby5lbnQgcmVzdWx0L3ZhbGlkL2lkKjoKKwkgIGFkZGVkIG1vcmUgSUQvSURSRUYgdGVzdHMgdG8gdGhlIHN1aXRlCisKK1NhdCBNYXIgMjIgMjM6Mzg6MDggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogZml4ZWQgIzEwNzA0MyByZW1vdmluZyAyIHdhcm5pbmdzIHdpdGggU3VuIE9uZQorCSAgY29tcGlsZXIuCisKK1NhdCBNYXIgMjIgMTg6NTA6NDUgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IHZhbGdyaW5kJ2VkIGFuZCBjbGVhbmVkIHVwIGEgY291cGxlIG9mIG1lbW9yeSBpc3N1ZXMuCisKK1NhdCBNYXIgMjIgMTY6MTU6NTAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogZml4IGJ1ZyAjMTA3MjA4IGF2b2lkIGZhbHNlIGR1cGxpY2F0ZXMgd2hlbiBJRC9SRUZzIGFyZQorCSAgZGVmaW5lZCBpbiBlbnRpdGllcyBjb250ZW50CisKK1NhdCBNYXIgMjIgMTU6NTM6MjcgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogRml4ZWQgdmFsaWRhdGlvbiBidWcgIzEwODg1OCBvbiBuYW1lc3BhY2UgbmFtZXMgdXNpbmcKKwkgIGVudGl0aWVzIGFuZCByZXBvcnRlZCBieSBCcmVudCBIZW5kcmlja3MKKwkqIHhtbGxpbnQuYzogcmVwb3J0IHhtbFRleHRSZWFkZXJIYXNWYWx1ZSgpIHJlc3VsdCBpbiAtLXN0cmVhbQorCSAgLS1kZWJ1ZyBvdXRwdXQuCisKK1NhdCBNYXIgMjIgMTM6MzI6MzkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogZml4ZWQgYnVnICMxMDg4MDEgcmVwb3J0ZWQgYnkgTWFsY29sbSBUcmVkaW5uaWNrCisJICBhYm91dCB0aGUgRG9jVHlwZSBub2RlIG5vdCBiZWluZyByZXBvcnRlZCBzb21ldGltZXMuCisJKiBweXRob24vdGVzdHMvcmVhZGVyLnB5OiBhZGRlZCB0byB0ZXN0IHRvIHRoZSByZWdyZXNzaW9uIGNoZWNrcworCitTYXQgTWFyIDIyIDAxOjU3OjQwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmM6IGZpeGVkIGJ1ZyAjMTA4NTQ2IG9uIGxvbmcgQ0RBVEEgKG9yIHRleHQgbm9kZXMpCisJICByZXBvcnRlZCBieSBFZGQgRHVtYmlsbAorCitTYXQgTWFyIDIzIDAxOjAwOjI0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jOiBwYXRjaCBmcm9tCisJICBqb2hhbkBldmVuaHVpcy5ubCBmb3IgIzEwNzkzNyBmaXhpbmcgc29tZSBsaW5lIGNvdW50aW5nCisJICBwcm9ibGVtcywgYW5kIHNvbWUgb3RoZXIgY2xlYW51cHMuCisJKiByZXN1bHQvSFRNTC86IHRoaXMgcmVzdWx0IGluIHNvbWUgbGluZSBudW1iZXIgY2hhbmdlcworCitGcmkgTWFyIDIxIDIyOjE5OjE0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIE1ha2VmaWxlLmFtOiBmaXhlZCBSZWQgSGF0IGJ1ZyAjODYxMTggdXNlIGxpYnhtbDIuc3BlYworCSAgaW5zdGVhZCBvZiBsaWJ4bWwuc3BlYworCSogcmVsYXhuZy5jOiBmaXhlZCBzb21lIG9mIHRoZSBlcnJvciByZXBvcnRpbmcgZXhjZXNzaXZlCisJICB2ZXJib3NpdHkKKwkqIGNhdGFsb2cuYyBkZWJ1Z1hNTC5jIHZhbGlkLmMgeG1scmVhZGVyLmMgeG1sc2NoZW1hcy5jIHhwYXRoLmMKKwkgIHhtbHNjaGVtYXN0eXBlcy5jOiByZW1vdmVkIHNvbWUgd2FybmluZ3MgZnJvbSBnY2MKKwkqIGRvYy9saWJ4bWwyLWFwaS54bWw6IHJlYnVpbHQKKworRnJpIE1hciAyMSAxNzoyNToyMyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogYW5vdGhlciBvcHRpbWl6YXRpb24sIGZvciBjaG9pY2UgdGhpcyB0aW1lCisJKiByZXN1bHQvcmVsYXhuZy9zcGVjMSogcmVzdWx0L3JlbGF4bmcvdHV0b3IxMl8xKiAKKwkgIHJlc3VsdC9yZWxheG5nL3R1dG9yM183OiBjbGVhbnVwcy4KKworRnJpIE1hciAyMSAxMzo0MToyMyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogZml4ZWQgeG1sUmVsYXhOR05vZGVNYXRjaGVzTGlzdAorCSogdGVzdC9yZWxheG5nL3Rlc3RzdWl0ZS54bWw6IGF1Z21lbnRlZCB0aGUgdGVzdCBzdWl0ZQorCSogcmVzdWx0L3JlbGF4bmcvc3BlYzEqIHJlc3VsdC9yZWxheG5nL3R1dG9yMTJfMSo6IHRoaXMgZml4ZXMKKwkgIHNvbWUgc2NoZW1hcyB2YWxpZGF0aW9uIHRlc3RzIGluIHRoZSBwcmVzZW5jZSBvZiBmb3JlaWduIAorCSAgbmFtZXNwYWNlcy4KKworRnJpIE1hciAyMSAwMjoyMzozNCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogYWRkZWQgYW5vdGhlciBpbnRlcmxlYXZlIHNwZWVkdXAuCisKK1RodSBNYXIgMjAgMTc6MjI6MDAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogYWRkZWQgaW50ZWdlciBhbmQgZml4ZWQgb25lIG9mIHRoZQorCSAgSURSRUZTIHJlZ3Jlc3Npb24gdGVzdHMgcGJtCisJKiByZXN1bHQvcmVsYXhuZy9kb2Nib29rXzAuZXJyOiB1cGRhdGVkCisKK1dlZCBNYXIgMTkgMjE6NTg6NDcgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2YWxpZC5jIHhtbHNjaGVtYXN0eXBlcy5jOiBhdHRlbXB0IHRvIGNvcGUgd2l0aCBJRC9JRFJFRihTKQorCSAgZGVjbGFyZWQgYm90aCBpbiB0aGUgRFREIGFuZCBpbiB0aGUgU2NoZW1hcyA8Z3Jpbi8+CisJKiByZWxheG5nLmM6IG1vcmUgZGVidWcsIGFkZGVkIGEgYmlnIG9wdGltaXphdGlvbiBmb3IgPG1peGVkPgorCSogdGVzdC9yZWxheG5nL3Rlc3RzdWl0ZS54bWw6IGF1Z21lbnRlZCB0aGUgdGVzdHN1aXRlCisJKiB0ZXN0L3JlbGF4bmcvIHJlc3VsdC9yZWxheG5nOiBhZGRlZCB0aGUgUmVsYXhORyBzcGVjIGFuZCBhIAorCSAgRG9jQm9vayBleGFtcGxlIHRvIHRoZSByZWdyZXNzaW9uIHRlc3RzCisKK1dlZCBNYXIgMTkgMTE6MzQ6MTAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaGVjay14c2RkYXRhLXRlc3Qtc3VpdGUucHk6IGNvc21ldGljIGNoYW5nZSBmb3Igb3V0cHV0CisJKiByZWxheG5nLmM6IHRyeSB0byBtaW5pbWl6ZSBjYWxscyB0byBtYWxsb2MvZnJlZSBmb3Igc3RhdGVzLgorCitUdWUgTWFyIDE4IDE3OjUwOjMxIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiByZW1vdmVkIGEgd2FybmluZworCSogeG1sc2NoZW1hc3R5cGVzLmM6IG1vcmUgY2xlYW51cCwgYWRkZWQgRU5USVRZIGFuZCBFTlRJVElFUworCSAgc3VwcG9ydAorCSogY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlLnB5IGNoZWNrLXhzZGRhdGEtdGVzdC1zdWl0ZS5weToKKwkgIGNsZWFudXAvaW1wcm92ZW1lbnRzIG9mIHRoZSByZWdyZXNzaW9uIHRlc3RzIGJhdGNoCisJKiB0ZXN0L3JlbGF4bmcvdGVzdHN1aXRlLnhtbDogYXVnbWVudGVkIGxpYnhtbDIgb3duIHRlc3RzdWl0ZQorCitUdWUgTWFyIDE4IDEyOjM2OjIyIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBmaXhlZCBlcnJvciBtc2cgY2xlYW51cCBkZWFsbG9jYXRpb24KKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBhZGRlZCBhIGZ1bmN0aW9uIHRvIGhhbmRsZSBsaXN0cyBvZgorCSAgYXRvbWljIHR5cGVzLCBhZGRlZCBzdXBwb3J0IGZvciBJRFJFRlMKKworVHVlIE1hciAxOCAwMToyODoxNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyB2YWxpZC5jIHhtbHNjaGVtYXN0eXBlcy5jOiBhZGRlZCBEYXRhdHlwZSBJRAorCSAgYW5kIElEUkVGLCB1c2FibGUgZnJvbSBSZWxheE5HIG5vdworCSogaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg6IG5lZWQgdG8gYWRkIGEgbmV3IGludGVyZmFjZQorCSAgYmVjYXVzZSB0aGUgdmFsaWRhdGlvbiBtb2RpZmllcyB0aGUgaW5mb3NldAorCSogdGVzdC9yZWxheG5nL3Rlc3RzdWl0ZS54bWw6IGV4dGVuZGVkIHRoZSB0ZXN0c3VpdGUKKworTW9uIE1hciAxNyAxNjozNDowNyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogZml4ZWQgdGhlIGxhc3QgY29yZSBSZWxheE5HIGJ1ZyBrbm93biAjMTA3MDgzLAorCSAgc2hlbWFzIGRhdGF0eXBlIElEL0lEUkVGIHN1cHBvcnQgc3RpbGwgbWlzc2luZyB0aG91Z2guCisJKiB4bWxyZWFkZXIuYzogZml4IGEgY3Jhc2hpbmcgYnVnIHdpdGggcHJlZml4IHJhaXNlZCBieQorCSAgTWVyaWpuIEJyb2VyZW4KKwkqIHRlc3QvcmVsYXhuZy90ZXN0c3VpdGUueG1sOiBhdWdtZW50ZWQgdGhlIHRlc3RzdWl0ZSB3aXRoCisJICBjb21wbGV4IGluaGVyaXRhbmNlIHRlc3RzCisKK1N1biBNYXIgMTYgMTg6NDU6NTAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IHN3aXRjaGVkIGJhY2sgdG8gdGhlIHByZXZpb3VzIFJlbGF4LU5HIGNvZGUgYmFzZSwKKwkgIHRoZSBkZXJpdmF0aW9uIGFsZ29yaXRobSBuZWVkIHNldmVyZSBjb25zdHJhaW5pbmcgY29kZSB0byBhdm9pZAorCSAgY29tYmluYXRvcmlhbCBleHBsb3Npb24uIEZpeGVkIHRoZSBwcm9ibGVtIHdpdGggU2ViYXN0aWFuIFJhaHR6CisJICBURUkgYmFzZWQgZXhhbXBsZSBhbmQgb3RoZXIgYnVncworCSogcmVzdWx0L3JlbGF4bmcvKmVycjogdXBkYXRlZCB0aGUgcmVzdWx0cworCSogdGVzdC9yZWxheG5nL3Rlc3RzdWl0ZS54bWw6IHN0YXJ0ZWQgYSBuZXcgdGVzdCBzdWl0ZSAKKworU2F0IE1hciAxNSAyMjoyNjo0NiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyBpbmNsdWRlL2xpYnhtbC9yZWxheG5nLmg6IEFmdGVyIGNvbWluZyB0byB0aGUgY29uY2x1c2lvbgorCSAgdGhhdCB0aGUgb3JpZ2luYWwgUmVsYXhORyB2YWxpZGF0aW9uIGNvZGUgd2FzIHVuLWZpeGVhYmxlLCBpdCBnb3QKKwkgIHJld3JpdHRlbiB0byB1c2UgdGhlIGRlcml2YXRpb24gYWxnb3JpdGhtIGZyb20gSmFtZXMgQ2xhcmsgYW5kCisJICByZWRlYnVnZ2VkIGl0IChuZWFybHkpIGZyb20gc2NyYXRjaDoKKwkgIGZvdW5kIDM3MyB0ZXN0IHNjaGVtYXM6IDM3MiBzdWNjZXNzIDEgZmFpbHVyZXMKKwkgIGZvdW5kIDUyOSB0ZXN0IGluc3RhbmNlczogNTI5IHN1Y2Nlc3MgMCBmYWlsdXJlcworCitUdWUgTWFyIDExIDEyOjA4OjIzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmMgcGFyc2VyLmM6IGZpeCBzb21lIHJlY3Vyc2lvbiBwcm9ibGVtcyBpbnRyb2R1Y2VkIGluIHRoZQorCSAgbGFzdCByZWxlYXNlLgorCSogcmVsYXhuZy5jOiBtb3JlIGRlYnVnZ2luZyBvZiB0aGUgUk5HIHZhbGlkYXRpb24gZW5naW5lLCBzdGlsbAorCSAgcHJvYmxlbXMgdGhvdWdoLgorCitNb24gTWFyIDEwIDE0OjEwOjQ3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IHN0b3AgZ2VuZXJhdGluZyB3cm9uZyByZXN1bHQgZmlsZSB3aXRoICogaW4gbmFtZQorCSogcmVsYXhuZy5jOiBmaXhpbmcgdGhlIGluY2x1ZGUgYnVnIHJhaXNlZCBieSBTZWJhc3RpYW4gUmFodHoKKwkqIHJlc3VsdC9yZWxheG5nL2RlbW8qIHRlc3QvcmVsYXhuZy9kZW1vOiBhZGRlZCB0aGUgdGVzdHMgZnJvbQorCSAgU2ViYXN0aWFuIHJlcHJvZHVjaW5nIHRoZSBwcm9ibGVtLgorCitTdW4gTWFyICA5IDE4OjAyOjMxIE1TVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy94bWxsaW50LjE6IHJlZ2VuZXJhdGluZyBtYW4gcGFnZSBmcm9tIHhtbGxpbnQueG1sIHRvIHBpY2sKKwkgIHVwIEFsZWtzZXkncyBjaGFuZ2UKKworU3VuIE1hciAgOSAxMzo1MzoxNiAyMDAzICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogeG1sbGludC5jIGRvYy94bWxsaW50LnhtbDogdXNlICRYTUxMSU5UX0lOREVOVCBlbnZpcm9ubWVudAorCXZhcmlhYmxlIHRvIGNvbnRyb2wgdGhlIGluZGVudGF0aW9uIGZvciB0aGUgeG1sbGludCAiLS1mb3JtYXQiIAorCW9wdGlvbgorCitTYXQgTWFyICA4IDE0OjI3OjQzIENFVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIGVuY29kaW5nLmM6IGFwcGxpZWQgR2VubmFkeSdzIHBhdGNoIGFnYWluc3QgYnVmZmVyIG92ZXJydW4KKworRnJpIE1hciAgNyAxOToyOTo0MCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3QveHNkdGVzdC94c2R0ZXN0LnhtbCB1cmkuYzogYWZ0ZXIgYW5kIGV4Y2hhbmdlIHdpdGggSmFtZXMKKwkgIENsYXJrIGl0IGFwcGVhcmVkIEkgaGFkIGJ1ZyBpbiBVUkkgcGFyc2luZyBjb2RlIC4uLgorCSogcmVsYXhuZy5jIGluY2x1ZGUvbGlieG1sL3JlbGF4bmcuaDogY29tcGxldGVseSByZXZhbXBlZCBlcnJvcgorCSAgcmVwb3J0aW5nIHRvIG5vdCBsb29zZSBtZXNzYWdlIGZyb20gb3B0aW9uYWwgcGFydHMuCisJKiB4bWxsaW50LmM6IGFkZGVkIHRpbWluZyBmb3IgUk5HIHZhbGlkYXRpb24gc3RlcHMKKwkqIHJlc3VsdC9yZWxheG5nLyo6IHVwZGF0ZWQgdGhlIHJlc3VsdCwgYWxsIGVycm9yIG1lc3NhZ2VzIGNoYW5nZWQKKworRnJpIE1hciAgNyAxNToxODozMiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGZpeCBidWcgIzEwNzgwNCwgdGhlIGFsZ29yaXRobSB1c2VkIGZvciBkb2N1bWVudCBvcmRlcgorCSAgY29tcHV0YXRpb24gd2FzIGZhaWxpbmcgb24gYXR0cmlidXRlcy4KKworVGh1IE1hciAgNiAyMjozNTo1MCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeCBidWcgIzEwNzc2NCAsIHBvc3NpYmlsaXR5IG9mIGJ1ZmZlciBvdmVyZmxvdworCSAgaW4geG1sVmFsaWREZWJ1ZygpCisKK1dlZCBNYXIgIDUgMTc6NDE6MzcgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBuYW5vZnRwLmMgaW5jbHVkZS9saWJ4bWwvbmFub2Z0cC5oOiBhZGRpbmcgeG1sTmFub0ZUUERlbGUoKQorCSAgZnJvbSBQaGlsaXBwIER1bmtlbAorCitXZWQgTWFyICA1IDEwOjU3OjA5IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGUuYzogbWFkZSBwb3d0ZW4gYXJyYXkgc3RhdGljIGl0IHNob3VsZCBub3QgYmUgZXhwb3J0ZWQKKwkqIEhUTUxwYXJzZXIuYzogZml4IGJ1ZyAjMTA3MzYxIGJ5IHJldXNpbmcgdGhlIGNvZGUgZnJvbSB0aGUgWE1MIAorCSAgcGFyc2VyIGZ1bmN0aW9uLgorCSogdGVzdEhUTUwuYzogZ2V0IHJpZCBvZiB2YWxncmluZCBtZXNzYWdlcyBvbiB0aGUgSFRNTCBTQVggdGVzdHMKKworRnJpIEZlYiAyOCAwMDoyMzowMCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogZml4ZWQgYSBub2RlIGR1bXAgY3Jhc2ggb24gYXR0cmlidXRlcworCSogdGVzdC94c2R0ZXN0L3hzZHRlc3QueG1sIHRlc3QveHNkdGVzdC94c2R0ZXN0LnhzbDogZml4ZWQKKwkgIGFuIFVSSSB0ZXN0IGJ1ZyBhbmQgZ2V0IGJldHRlciBvdXRwdXQuCisKK1RodSBGZWIgMjcgMjI6Mjg6NDAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaGVjay14c2RkYXRhLXRlc3Qtc3VpdGUucHk6IGdpdmUgbW9yZSBpbmZvcworCSogcmVsYXhuZy5jOiBmaXggYSBidWcgcmVwb3J0ZWQgYnkgU2ViYXN0aWFuIFJhaHR6IGFuZAorCSAgUkVGLT5ERUYgaW4gYXR0cmlidXRlIHZhbHVlcy4KKworVGh1IEZlYiAyNyAyMTowOTozMiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNoZWNrLXhzZGRhdGEtdGVzdC1zdWl0ZS5weSB0ZXN0L3hzZHRlc3QveHNkdGVzdC54bWwKKwkgIHRlc3QveHNkdGVzdC94c2R0ZXN0LnhzbDogaW1wb3J0IG9mIHRoZSBYU0QgRGF0YXR5cGUKKwkgIHJlZ3Jlc3Npb24gdGVzdHMgZnJvbSBKYW1lcyBDbGFyay4KKworVGh1IEZlYiAyNyAxODo0MDowNCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYyB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMKKwkgIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oOiBhZGRlZCBwYXJhbSBzdXBwb3J0IGZvciByZWxheG5nCisJICB0eXBlIGNoZWNraW5nLCBzdGFydGVkIHRvIGluY3JlbWVudCB0aGUgcG9vbCBvZiBzaW1wbGUgdHlwZXMKKwkgIHJlZ2lzdGVyZWQsIHN0aWxsIG11Y2ggd29yayB0byBiZSBkb25lIG9uIHNpbXBsZSB0eXBlcyBhbmQKKwkgIGZhY2V0cyBjaGVja2luZ3MuCisKK1dlZCBGZWIgMjYgMTY6NDU6MzkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbnRpdGllcy5jOiBmaXhlcyBhZ2FpbiBvbmUgb2YgdGhlIHByb2JsZW0gcmFpc2VkIGJ5CisJICBKYW1lcyBDbGFyayBpbiAjMTA2Nzg4CisKK1dlZCBGZWIgMjYgMTU6NDY6NDggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IEZpeGVkIGEgY291cGxlIG9mIHByb2JsZW0gcmFpc2VkIGJ5IEphbWVzIENsYXJrCisJICBpbiBidWcgIzEwNzA4MywgdGhlIHN1cHBvcnQgZm9yIElEL0lEUkVGL0lEUkVGUyBhdCB0aGUgV1hTCisJICBkYXRhdHlwZSBsZXZlbCBzdGlsbCBub3QgZml4ZWQgdGhvdWdoLgorCitNb24gRmViIDI0IDIxOjA5OjE5IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBwcmVwYXJpbmcgcmVsZWFzZSAyLjUuNAorCSogZG9jLyo6IHVwZGF0ZWQgYW5kIHJlYnVpbHQgdGhlIGRvY3MKKwkqIHJlbGF4bmcuYzogcmVtb3ZlZCB3YXJuaW5ncworCSogcmVzdWx0L3JlbGF4bmcvKjogdXBkYXRlZCB0aGUgcmVzdWx0cworCitNb24gRmViIDI0IDIwOjUzOjE3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogZml4ZXMgYSBEVEQgcmVnZXhwIGdlbmVyYXRpb24gcHJvYmxlbS4KKworTW9uIEZlYiAyNCAyMDoxMjo1NyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlcyBidWcgIzEwNTk5OCBhYm91dCBmYWxzZSBkZXRlY3Rpb24gb2YKKwkgIGF0dHJpYnV0ZSBjb25zdW1wdGlvbiBsb29wLgorCitNb24gRmViIDI0IDE5OjE0OjU3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYzogRml4ZXMgYnVnICMxMDY5MzEgaW4gWEluY2x1ZGUgZW50aXRpZXMgbWVyZ2luZy4KKworTW9uIEZlYiAyNCAxODo1MDozNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jOiBmaXhlZCBidWcgIzEwNTk5MgorCitNb24gRmViIDI0IDE4OjE0OjE2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBmaXhlZCB4bWxTZXRQcm9wIGFuZCBhbC4gd2hlbiB0aGUgbm9kZSBwYXNzZWQgaXMgbm90IGFuCisJICBlbGVtZW50LgorCSogcmVsYXhuZy5jOiBmaXhlZCBidWdzIDcuMyAodGhvdWdoIG5vdCBjb21wbGV0ZSkgYW5kIG1lbW9yeSBsZWFrcworCSAgZm91bmQgMzczIHRlc3Qgc2NoZW1hczogMzY5IHN1Y2Nlc3MgNCBmYWlsdXJlcworCSAgZm91bmQgNTI5IHRlc3QgaW5zdGFuY2VzOiA1MjUgc3VjY2VzcyA0IGZhaWx1cmVzCisJKiBjaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUucHk6IGFkZGVkIG1lbW9yeSBkZWJ1ZyByZXBvcnRpbmcKKworTW9uIEZlYiAyNCAxMjo0MTo1NCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHVyaS5jIHBhcnNlci5jOiBzb21lIHdhcm5pbmcgcmVtb3ZhbCBvbiBJZ29yJ3MgcGF0Y2gKKwkqIHRyZWUuYzogc2VlbXMgSSBtZXNzZWQgdXAgd2l0aCAjMTA2Nzg4IGZpeAorCSogcHl0aG9uL2xpYnhtbC5jOiBmaXhlZCBzb21lIGJhc2UgcHJvYmxlbXMgd2hlbiBQeXRob24gcHJvdmlkZXMKKwkgIHRoZSByZXNvbHZlci4KKwkqIHJlbGF4bmcuYzogZml4ZWQgdGhlIGludGVybGVhdmUgYWxnb3JpdGhtIAorCSAgZm91bmQgMzczIHRlc3Qgc2NoZW1hczogMzY0IHN1Y2Nlc3MgOSBmYWlsdXJlcworCSAgZm91bmQgNTI5IHRlc3QgaW5zdGFuY2VzOiA1MjUgc3VjY2VzcyA0IGZhaWx1cmVzCisJICB0aGUgcmVzdWx0aW5nIGZhaWx1cmVzIGFyZSBidWcgaW4gdGhlIGFsZ29yaXRobSBmcm9tIDcuMyBhbmQKKwkgIGxhY2sgb2Ygc3VwcG9ydCBmb3IgcGFyYW1zCisKK1N1biBGZWIgMjMgMTQ6NDk6MzkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogYW5vdGhlciBmaXggZm9yIG5vZGVpbmZvIGluIGVudGl0aWVzIHByb2JsZW0KKwkqIHRyZWUuYyBlbnRpdGllcy5jOiBmaXhlZCBidWcgIzEwNjc4OCBmcm9tIEphbWVzIENsYXJrCisJICBzb21lIHNwYWNlcyBuZWVkIHRvIGJlIHNlcmlhbGl6ZWQgYXMgY2hhcmFjdGVyIHJlZmVyZW5jZXMuCisKK1NhdCBGZWIgMjIgMTg6Mjg6MTYgQ0VUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogcGFyc2VyLmMgdXJpLmM6IGZpeGVkIHRoZSBidWcgSSBpbnRyb2R1Y2VkIGluIHRoZSBwYXRoCisJICBoYW5kbGluZywgcmVwb3J0ZWQgYnkgU2ViYXN0aWFuIEJlcmdtYW5uCisKK1NhdCBGZWIgMjIgMDA6MTk6NDggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4aW5nIHNvbWUgbm9kZWluZm8gaW4gZW50aXRpZXMgcHJvYmxlbSByYWlzZWQKKwkgIGJ5IEdsZW5uIFcuIEJhY2gKKwkqIHJlbGF4bmcuYzogaW1wbGVtZW50ZWQgdGhlIGZpcnN0IHNlY3Rpb24gNy4zIGNoZWNrCisJKiByZXN1bHQvcmVsYXhuZy8qOiB1cGRhdGVkIHRoZSByZXN1bHRzCisKK0ZyaSBGZWIgMjEgMTg6MTI6MTkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGZpeGVkIHNvbWUgcHJvYmxlbXMgaW4gdGhlIHByZXZpb3VzIGNvbW1pdAorCSAgYW5kIGZpbmlzaGVkIGltcGxlbWVudGluZyA0LjE2IHJ1bGVzIGNoZWNraW5nCisJICBmb3VuZCAzNzMgdGVzdCBzY2hlbWFzOiAzNTMgc3VjY2VzcyAyMCBmYWlsdXJlcworCSAgZm91bmQgNTI5IHRlc3QgaW5zdGFuY2VzOiA1MTkgc3VjY2VzcyA2IGZhaWx1cmVzCisJKiByZXN1bHQvcmVsYXhuZy8qOiB1cGRhdGVkIHRoZSByZXN1bHRzCisKK0ZyaSBGZWIgMjEgMTY6Mzc6MzkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGltcGxlbWVudGVkIGNoZWNrcyBmcm9tIHNlY3Rpb24gNy4yCisKK1RodSBGZWIgMjAgMTY6MDA6MzEgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGltcGxlbWVudGVkIHRoZSBjaGVja3MgZnJvbSBzZWN0aW9uIDcuMSwgZml4ZWQKKwkgIHNvbWUgb2YgdGhlIDQuMjAgYW5kIDQuMjEgcHJvYmxlbXMuCisJICBmb3VuZCAzNzMgdGVzdCBzY2hlbWFzOiAzMzggc3VjY2VzcyAzNSBmYWlsdXJlcworCSAgZm91bmQgNTI5IHRlc3QgaW5zdGFuY2VzOiA1MTkgc3VjY2VzcyA2IGZhaWx1cmVzCisJKiByZXN1bHQvcmVsYXhuZy8qOiB1cGRhdGVkIHRoZSByZXN1bHRzCisKK1RodSBGZWIgMjAgMDE6MDk6MjQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGltcGxlbWVudGVkIHRoZSA0LjIwIGFuZCA0LjIxIHNpbXBsaWZpY2F0aW9uIHJ1bGVzLgorCSogcmVzdWx0L3JlbGF4bmcvKjogdXBkYXRlZCB0aGUgcmVzdWx0cworCitXZWQgRmViIDE5IDE4OjMwOjMwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBtb3JlIGJ1Z2ZpeGVzCisJKiByZXN1bHQvcmVsYXhuZy8qOiB1cGRhdGVkIHRoZSByZXN1bHRzCisKK1dlZCBGZWIgMTkgMTU6Mzk6NTYgQ0VUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworCSogRE9DQnBhcnNlci5jOiBvYnNvbGV0ZWQgeG1sTm9ybWFsaXplV2luZG93c1BhdGgKKwkqIEhUTUxwYXJzZXIuYzogb2Jzb2xldGVkIHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoCisJKiBTQVguYzogZW5zdXJlZCB4bWxEb2MuVVJMIGlzIGFsd2F5cyBjYW5vbmljCisJKiBwYXJzZXIuYzogb2Jzb2xldGVkIHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoCisJKiB1cmkuYyBpbmNsdWRlL2xpYnhtbC91cmkuaDogaW50cm9kdWNlZCB4bWxDYW5vbmljUGF0aAorCSogeG1sSU8uYyBpbmNsdWRlL2xpYnhtbC94bWxJTy5oOiBvYnNvbGV0ZWQgeG1sTm9ybWFsaXplV2luZG93c1BhdGgKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYzogYWRkZWQgZmV3IGV4cG9ydHMKKworV2VkIEZlYiAxOSAxNDoyNjo1MSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbjogcGF0Y2hlZCB0byBoYXZlIHNoYXJlZCBsaWJyYXJpZXMKKwkgIGZvciBQeXRob24gcmVncmVzc2lvbiB0ZXN0cyBhbmQgc3RhdGljIGJpbmFyaWVzIGZvciBnZGIgZGVidWcKKwkgIGluIG15IGRldmVsb3BtZW50IGVudmlyb25tZW50CisJKiByZWxheG5nLmM6IG1vcmUgYnVnZml4ZXMgCisJICBmb3VuZCAzNzMgdGVzdCBzY2hlbWFzOiAyOTYgc3VjY2VzcyA3NyBmYWlsdXJlcworCSAgZm91bmQgNTI5IHRlc3QgaW5zdGFuY2VzOiA1MTYgc3VjY2VzcyA4IGZhaWx1cmVzCisJKiByZXN1bHQvcmVsYXhuZy8qOiB1cGRhdGVkIHRoZSByZXN1bHRzCisKK1dlZCBGZWIgMTkgMDE6MTc6NDggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGd1ZXNzIHdoYXQgISBSZWxheC1ORyBidWdmaXhpbmcsIHdoYXQgYSBzdXJwcml6ZS4uLgorCitUdWUgRmViIDE4IDIyOjA5OjUwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGZsb2F0L2RvdWJsZSBjaGVjayBidWdmaXgKKwkqIHRyZWUuYyBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IGV4cG9ydGVkIGEgZnVuY3Rpb24gZm9yIE5NVE9LRU4KKwkgIHZhbGlkYXRpb24KKwkqIHhtbHJlYWRlci5jOiBhZGQgYSBUT0RPIGZvciBKb2R5CisJKiByZWxheG5nLmM6IGJ1Z2ZpeCBidWdmaXggYnVnZml4CisJICBmb3VuZCAzNzMgdGVzdCBzY2hlbWFzOiAzMDAgc3VjY2VzcyA3MyBmYWlsdXJlcworCSAgZm91bmQgNTI5IHRlc3QgaW5zdGFuY2VzOiA1MDcgc3VjY2VzcyAxMCBmYWlsdXJlcworCSogcmVzdWx0L3JlbGF4bmcvKjogdXBkYXRlZCB0aGUgcmVzdWx0cworCitUdWUgRmViIDE4IDAwOjMzOjE3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jIGNoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZS5weTogbW9yZSBSZWxheE5HIGJ1ZyBodW50aW5nCisKK01vbiBGZWIgMTcgMTg6MjM6MzIgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmMgY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlLnB5OiBtb3JlIHdvcmsgb24gdGhlCisJICBSZWxheE5HIGltcGxlbWVudGF0aW9uIGNvbmZvcm1hbmNlIHRlc3RpbmcuCisJICBmb3VuZCAzNzMgdGVzdCBzY2hlbWFzOiAyODQgc3VjY2VzcyA4OSBmYWlsdXJlcworCSAgZm91bmQgNTI5IHRlc3QgaW5zdGFuY2VzOiA0NDggc3VjY2VzcyA0NyBmYWlsdXJlcworCSogcmVzdWx0L3JlbGF4bmcvKjogdXBkYXRlZCB0aGUgcmVzdWx0cworCitTdW4gRmViIDE2IDE2OjQ4OjM4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogQ2hhbmdlTG9nIHRyZWUuYyBkb2MvbGlieG1sLWRvYy5lbCBkb2MvbGlieG1sMi1hcGkueG1sOiBhcHBsaWVkCisJICBhIHBhdGNoIGZyb20gS2phcnRhbiBNYXJhYXMgdG8gZml4IHNvbWUgdHlwb3MKKworU3VuIEZlYiAxNiAxNjo0MDo1MiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmcuYzogbW9yZSBidWctaHVudGluZworCSogdGVzdFJlbGF4LmMgaW5jbHVkZS9saWJ4bWwvcmVsYXhuZy5oOiBhZGRlZCAtLXRyZWUgdG8gZHVtcCB0aGUKKwkgIGludGVybWVkaWF0ZSBybmcgdHJlZQorCSogcHl0aG9uL2dlbmVyYXRvci5weTogcGF0Y2ggZnJvbSBTdMOpcGhhbmUgQmlkb3VsIHRvIGZpeCB0aGUgZ2VuZXJhdG9yCisJICBvbiBweXRob24gPCAyLjIKKworRnJpIEZlYiAxNCAxNzo0OToyNiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZS5weSByZWxheG5nLmM6IG1vcmUgdGVzdGluZyBvbiB0aGUKKwkgIFJlbGF4LU5HIGZyb250LCBjbGVhbmluZyB1cCB0aGUgcmVncmVzc2lvbiB0ZXN0cyBmYWlsdXJlcworCSAgY3VycmVudCBzdGF0ZSBhbmQgSSBmb3Jnb3Qgc3VwcG9ydCBmb3IgIm1peGVkIjoKKwkgIGZvdW5kIDM3MyB0ZXN0IHNjaGVtYXM6IDI4MCBzdWNjZXNzIDkzIGZhaWx1cmVzCisJICBmb3VuZCA1MjkgdGVzdCBpbnN0YW5jZXM6IDQwMSBzdWNjZXNzIDY4IGZhaWx1cmVzCisJKiB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvdHJlZS5oIHhtbHNjaGVtYXN0eXBlcy5jOiBmaW5pc2hlZCBhbmQKKwkgIG1vdmVkIHRoZSBOYW1lLCBOQ05hbWUgYW5kIFFOYW1lIHZhbGlkYXRpb24gcm91dGluZSBpbiB0cmVlLmMKKwkqIHVyaS5jOiBmaXhlZCBoYW5kbGluZyBvZiBVUkkgZW5kaW5nIHVwIHdpdGggIywgaS5lLiBoYXZpbmcKKwkgIGFuIGVtcHR5IGZyYWdtZW50IElELgorCSogcmVzdWx0L3JlbGF4bmcvKjogdXBkYXRlZCB0aGUgcmVzdWx0cworCitUaHUgRmViIDEzIDE2OjQ5OjI0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2hlY2steGluY2x1ZGUtdGVzdC1zdWl0ZS5weTogaW1wcm92ZWQgdGhlIHNjcmlwdCBhY2NvcmRpbmdseQorCSAgdG8gdGhlIFhJbmNsdWRlIHJlZ3Jlc3Npb24gdGVzdHMgdXBkYXRlcworCSogeHBvaW50ZXIuYzogSW1wbGVtZW50ZWQgWFBvaW50ZXIgZWxlbWVudCgpIFNjaGVtZSBXM0MgUFIgb2YgMTMKKwkgIE5vdmVtYmVyIDIwMDIKKwkqIHJlc3VsdC9YUGF0aC94cHRyL2NoYXB0ZXJzY2hpbGRzZXEgcmVzdWx0L1hQYXRoL3hwdHIvdmlkY2hpbGRzZXEKKwkgIHRlc3QvWFBhdGgveHB0ci9jaGFwdGVyc2NoaWxkc2VxIHRlc3QvWFBhdGgveHB0ci92aWRjaGlsZHNlcToKKwkgIGF1Z21lbnRlZCB0aGUgWHBvaW50ZXIgdGVzdHN1aXRlIGZvciB0aGUgZWxlbWVudCgpIHNjaGVtZQorCitUaHUgRmViIDEzIDEyOjAwOjMwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBhZGRlZCBUT0RPIGZvciB0aGUgRFREIGNvbXBhdGliaWxpdHkgc3BlYworCSogeGluY2x1ZGUuYzogbW9yZSBidWcgZml4ZXMgZHJpdmVuIGJ5IHRoZSB0ZXN0c3VpdGUgCisKK1R1ZSBGZWIgMTEgMTk6MDE6MDIgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaGVjay14aW5jbHVkZS10ZXN0LXN1aXRlLnB5IHhpbmNsdWRlLmM6IFdvcmsgb24gdGhlIFczQy9OSVNUCisJICByZWdyZXNzaW9uIHRlc3RzIGZvciBYSW5jbHVkZSwgaW1wcm92ZWQgdGhlIHNjcmlwdCwgaW1wcm92aW5nCisJICBYSW5jbHVkZSBlcnJvciByZXBvcnRpbmcgbWVjaGFuaXNtCisKK01vbiBGZWIgMTAgMTc6MTk6MTQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBORVdTIGRvYy8qIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIHJlbGVhc2UgMi41LjMKKworTW9uIEZlYiAxMCAxNzoxMToyMiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogdHJ5aW5nIHRvIGZpeCAjMTA0OTM0IGFib3V0IHNvbWUgWEhUTUwxIHNlcmlhbGl6YXRpb24KKwkgIGlzc3Vlcy4KKworTW9uIEZlYiAxMCAxNjo0MToxMyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmMgeG1sSU8uYzogZml4aW5nIGJ1ZyAjMTA0NjQ2IGFib3V0IGljb252IGJhc2VkCisJICBlbmNvZGluZyBjb252ZXJzaW9uIHdoZW4gdGhlIGlucHV0IGJ1ZmZlciBzdG9wcyBpbiB0aGUKKwkgIG1pZGRsZSBvZiBhIG11bHRpYnl0ZSBjaGFyCisKK01vbiBGZWIgMTAgMTU6MjQ6NDcgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0L3JlbGF4bmcvT0FTSVMvc3BlY3Rlc3QueG1sOiBPQVNJUyBSZWxheE5HIHRlc3RzdWl0ZQorCSogY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlLnB5OiBweXRob24gc2NyaXB0IHRvIHJ1biByZWdyZXNzaW9uCisJICBhZ2FpbnN0IE9BU0lTIFJlbGF4TkcgdGVzdHN1aXRlCisJKiByZWxheG5nLmM6IHNvbWUgY2xlYW51cCB0d2Vha3MKKwkqIEhUTUxwYXJzZXIuYyBnbG9iYWxzLmM6IGNsZWFudXBzIGluIGNvbW1lbnRzCisJKiBkb2MvbGlieG1sMi1hcGkueG1sOiB1cGRhdGVkIHRoZSBBUEkKKwkqIHJlc3VsdC9yZWxheG5nLyo6IGVycm9ycyBtb3ZlZCBmaWxlcywgc28gbGFyZ2UgZGlmZnMgYnV0CisJICBubyBjaGFuZ2VzIGF0IHRoZSBzZW1hbnRpYyBsZXZlbC4KKworTW9uIEZlYiAxMCAwMTowMDozMSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogZml4aW5nICMxMDU2NzggcHJvYmxlbSB3aGVuIGR1bXBpbmcgYSBuYW1lc3BhY2Ugbm9kZS4KKworTW9uIEZlYiAxMCAwMDozMDowMSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGZpeGVkIGRvYyBjb21tZW50IHByb2JsZW1zCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWxfd3JhcC5oIHB5dGhvbi90eXBlcy5jOiBhZGRpbmcKKwkgIFJlbGF4Tkcgd3JhcHBlcnMKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvcmVsYXhuZy5weTogYWRkZWQgYSBzcGVjaWZpYworCSAgdGVzdCBvZiB0aG9zZSBlYXJseSBQeXRob24gUmVsYXhORyBiaW5kaW5ncworCitTdW4gRmViICA5IDE1OjE4OjQzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IGZpeGVzIGEgbGlidG9vbCBwcm9ibGVtIG9uIEFNRCA2NGJpdHMgYnVpbGRzCisJKiByZWxheG5nLmM6IGZvdW5kIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0gSSBoYWQgd2l0aCBpbnRlcmxlYXZlCisJICB3aGVuIG5vdCBjb3ZlcmluZyBhbGwgcmVtYWluaW5nIHNpYmxpbmdzCisJKiBNYWtlZmlsZS5hbSB0ZXN0LnJlbGF4bmcvKiByZXN1bHQvcmVsYXhuZy8qOiBhdWdtZW50ZWQgdGhlCisJICB0ZXN0c3VpdGUgYW5kIGNoZWNrIHRoZSBSTkcgc2NoZW1hcyBhZ2FpbnN0IHRoZSBSTkcgc2NoZW1hcworCSAgZ2l2ZW4gaW4gYXBwZW5kaXggQQorCitTYXQgRmViICA4IDE4OjU1OjQzIENFVCAyMDAzIElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLm1zdmM6IHVwZGF0ZXMgZm9yIFJlbGF4TkcKKwkqIHdpbjMyL01ha2VmaWxlLm1pbmd3OiB1cGRhdGVzIGZvciBSZWxheE5HCisJKiB3aW4zMi9saWJ4bWwyLmRlZi5zcmM6IGFkZGVkIFJlbGF4TkcgZXhwb3J0cworCitGcmkgRmViICA3IDE0OjAwOjUzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYzogYXBwbGllZCBhbm90aGVyIGJ1ZyBmaXggZnJvbSBTZWFuIENoaXR0ZW5kZW4KKworRnJpIEZlYiAgNyAxMzozNDowOCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiB4bWxsaW50LmM6IEkgZi4uLmVkIHVwIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24KKwkgIG9mIHNjaGVtYXMgYW5kIC0tcmVsYXhuZyBvcHRpb24gZGlzcGxheSBpbiB4bWxsaW50LCBwb2ludGVkIGJ5CisJICBNb3J1cyBXYWx0ZXIuCisJKiB4bGluay5jOiBTZWFuIENoaXR0ZW5kZW4gcG9pbnRlZCBhIGNvdXBsZSBvZiBlcnJvcnMgaW4gdGhlIFhMaW5rCisJICBkZXRlY3Rpb24gbW9kdWxlLCBmaXhlcyBidWcgIzEwNTM3NC4KKworRnJpIEZlYiAgNyAwMTo0MzozOCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBhZGRlZCB0aGUgYm9vbGVhbiBiYXNlIHR5cGUuCisKK1RodSBGZWIgIDYgMTA6MjM6NTIgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogc3RhcnRlZCBpbXBsZW1lbnRpbmcgc29tZSBvZiB0aGUgbWlzc2luZworCSAgZGVmYXVsdCBzaW1wbGUgdHlwZXMKKwkqIHJlc3VsdC9yZWxheG5nLyo6IHVwZGF0ZWQgdGhlIHJlc3VsdHMKKworV2VkIEZlYiAgNSAxNToyODowNCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE5FV1MgZG9jLyo6IHVwZGF0ZWQgdGhlIGRvY3MsIHJlYWR5IGZvciAyLjUuMiByZWxlYXNlCisKK1dlZCBGZWIgIDUgMTQ6MTU6NTkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmMgdHJlZS5jIHhtbElPLmM6IGNvbW1lbnRzIGNsZWFudXBzCisJKiBNYWtlZmlsZS5hbTogdXNlIHhtbGxpbnQgZm9yIGRvaW5nIHRoZSBSZWxheE5HIHRlc3RzCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyAyLjUuMiBtYWRlIHNjaGVtYXMgc3VwcG9ydCBkZWZhdWx0IHRvCisJICBvbiBpbnN0ZWFkIG9mIG9mZgorCSogcmVsYXhuZy5jOiByZW1vdmVkIHRoZSB2ZXJib3NpdHkKKwkqIHhtbGxpbnQuYzogYWRkZWQgLS1yZWxheG5nIG9wdGlvbgorCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sX3dyYXAuaDogcHJlcGFyZWQgdGhlIGludGVncmF0aW9uCisJICBvZiB0aGUgbmV3IFJlbGF4TkcgbW9kdWxlIGFuZCBzY2hlbWFzCisJKiByZXN1bHQvcmVsYXhuZy8qOiBsZXNzIHZlcmJvc2Ugb3V0cHV0CisKK1dlZCBGZWIgIDUgMTI6MDA6MzYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2YWxpZC5jOiBkbyBub3QgcnVuIGNvbnRlbnQgbW9kZWwgdmFsaWRhdGlvbiBpZiB0aGUKKwkgIGNvbnRlbnQgaXMgbm90IGRldGVybWluaXN0CisKK1dlZCBGZWIgIDUgMTE6NDM6NTggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogYWRkZWQgdGhlIHJlZGVmaW5pdGlvbiBvZiBuYW1lc3BhY2VkIGF0dHJpYnV0ZQorCSAgY2hlY2sgdGhhdCB3YXMgbWlzc2luZyBhcyBGYWJyaWNlIERlc3LDqSBwb2ludGVkIG91dC4KKworV2VkIEZlYiAgNSAxMTowOToyOSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9IVE1McGFyc2VyLmg6IGFwcGxpZWQgSFRNTAorCSAgaW1wcm92ZW1lbnRzIGZyb20gTmljayBLZXcsIGFsbG93aW5nIHRvIGRvIG1vcmUgY2hlY2tpbmcKKwkgIHRvIEhUTUwgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMuCisKK1R1ZSBGZWIgIDQgMjM6NDc6MDYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4aW5jbHVkZS5jOiBmaXhpbmcgYnVnICMxMDUxMzcgYWJvdXQgZW50aXRpZXMgZGVjbGFyYXRpb24KKwkgIG5lZWRpbmcgdG8gYmUgY29waWVkIHRvIHRoZSBpbmNsdWRpbmcgZG9jdW1lbnQuCisKK1R1ZSBGZWIgIDQgMjA6MjY6MjIgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IGZpeGVkIGJ1ZyAjMTA0ODE3IHdpdGggZGVsZWdhdGVVUkkKKwkqIHhwYXRoLmM6IGZpeGluZyBidWdzICMxMDQxMjMgYW5kICMxMDQxMjUKKworVHVlIEZlYiAgNCAxNzoxMjo1NiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiB2YWxpZC5jIHhtbHJlYWRlci5jIHB5dGhvbi9saWJ4bWxfd3JhcC5oIAorCSAgcHl0aG9uL3R5cGVzLmM6IGZpeGluZyAjMTA0MDk2IHRvIGNvbXBpbGUgd2l0aG91dCByZWdleHBzCisKK1R1ZSBGZWIgIDQgMTY6MzE6NTUgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2YWxpZC5jOiBmaXhpbmcgYnVnICMxMDM5NjkgZm9yZ290IHRvIGFkZCBhbiBlcHNpbG9uIHRyYW5zaXRpb24KKwkgIHdoZW4gYnVpbGRpbmcgdGhlIGF1dG9tYXRhIGZvciBlbGVtKgorCitUdWUgRmViICA0IDE2OjIxOjA3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBhcHBsaWVkIHBhdGNoIGZyb20gQXJuZSBkZSBCcnVpam4gZml4aW5nIAorCSAgYnVnICMxMDM4MjcKKworVHVlIEZlYiAgNCAxNjoxNzowOSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogdXBkYXRpbmcgYSBjb21tZW50LCBmaXhpbmcgIzEwMzc3NgorCitUdWUgRmViICA0IDE2OjA1OjUzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGluZyBidWcgMTA1MDQ5IGZvciB2YWxpZGl0eSBjaGVja2luZyBvZiBjb250ZW50CisJICB3aXRoaW4gcmVjdXJzaXZlIGVudGl0aWVzLgorCitUdWUgRmViICA0IDE1OjQwOjU0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiB0cnkgdG8gZml4ICMgMTA1MDQ5CisJKiByZWxheG5nLmMgeG1sc2NoZW1hc3R5cGVzLmM6IGEgY291cGxlIG9mIGNoYW5nZXMgYW5kIGV4dGVuc2lvbnMKKwkqIHRyZWUuYzogdXBkYXRlZCBhIGZ1bmN0aW9uIGNvbW1lbnQKKworVHVlIEZlYiAgNCAwMDoyMDo1OCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmc6IG1vcmUgd29yayBvbiBncmFtbWFycyBhbmQgcmVmcy9kZWZzCisJKiB0ZXN0L3JlbGF4bmcvKiByZXN1bHQvcmVsYXhuZy8qOiBhdWdtZW50ZWQvdXBkYXRlZCB0aGUKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKworTW9uIEZlYiAgMyAxNDoxNjo1OSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmc6IG1vcmUgd29yayBvbiBuYW1lIGNsYXNzZXMsIGV4Y2VwdCBzdXBwb3J0CisJKiB0ZXN0L3JlbGF4bmcvKiByZXN1bHQvcmVsYXhuZy8qOiBhdWdtZW50ZWQvdXBkYXRlZCB0aGUKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKworTW9uIEZlYiAgMyAxMTo1NjowNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmc6IG1vcmUgd29yayBvbiBuYW1lIGNsYXNzZXMsIHRoZSAidmFsaWRhdGUgYWxsIiBzY2hlbWFzCisJICBzZWVtcyB0byB3b3JrIG5vdy4KKwkqIHRlc3QvcmVsYXhuZy8qIHJlc3VsdC9yZWxheG5nLyo6IGF1Z21lbnRlZC91cGRhdGVkIHRoZQorCSAgcmVncmVzc2lvbiB0ZXN0cworCitNb24gRmViICAzIDA5OjUwOjI2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiByZW1vdmVkIGFuIHVucHJvdGVkdGVkIGRlYnVnIG1lc3NhZ2UgQWxla3NpIFN1aG9uZW4KKwkqIHBhcnNlci5jOiBwdXQgYSBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGRvY3VtZW50IGRlcHRoLCBiYXNpY2FsbHkKKwkgIHRyeWluZyB0byBhdm9pZCBhbm90aGVyIGtpbmQgb2YgRG9TIGF0dGFjay4KKwkqIHJlbGF4bmcuYzogc29tZSBjb2RlIHcuci50LiBuYW1lQ2xhc3NlcworCitTdW4gRmViICAyIDE3OjAxOjQzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdGVzdC9yZWxheG5nLyogcmVzdWx0L3JlbGF4bmcvKjogY2hlY2sgYWxsIHRoZSBuYW1lc3BhY2Ugc3VwcG9ydAorCSAgd2FzIGFjdHVhbGx5IGNvcnJlY3QgYmFzZWQgb24gdHV0b3JpYWwgc2VjdGlvbiAxMC4KKworU3VuIEZlYiAgMiAxNTozMzozOCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmc6IGluY2x1ZGUgc2VlbXMgdG8gd29yayBva2F5IG5vdworCSogdGVzdC9yZWxheG5nLyogcmVzdWx0L3JlbGF4bmcvKjogYXVnbWVudGVkL3VwZGF0ZWQgdGhlCisJICByZWdyZXNzaW9uIHRlc3RzCisKK1NhdCBGZWIgIDEgMTk6NDQ6NTggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGEgYml0IG9mIHdvcmsgZG9uZSBpbiB0aGUgdHJhaW4gYmFjay4KKwkqIHRlc3QvcmVsYXhuZy8qOiBhZGRlZCBvbmUgb2YgdGhlIGluY2x1ZGUgdGVzdHMKKworVGh1IEphbiAzMCAxNDowNjo1NSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHJlbGF4bmc6IG1vcmUgd29yayBkb25lIGluIHRoZSB0cmFpbgorCSogdGVzdC9yZWxheG5nLyogcmVzdWx0L3JlbGF4bmcvKjogYXVnbWVudGVkL3VwZGF0ZWQgdGhlCisJICByZWdyZXNzaW9uIHRlc3RzCisKK1dlZCBKYW4gMjkgMjM6NDQ6NTggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IGRlYnVnZ2luZyBvZiBleHRlcm5hbFJlZgorCSogdGVzdC9yZWxheG5nLyogcmVzdWx0L3JlbGF4bmcvKjogYXVnbWVudGVkL3VwZGF0ZWQgdGhlCisJICByZWdyZXNzaW9uIHRlc3RzCisKK1dlZCBKYW4gMjkgMjI6MDY6MDQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IG1vcmUgd29yayBvbiBSZWxheC1ORywgaW1wbGVtZW50aW5nIGV4dGVybmFsUmVmCisJKiB0ZXN0L3JlbGF4bmcvKiByZXN1bHQvcmVsYXhuZy8qOiBhdWdtZW50ZWQvdXBkYXRlZCB0aGUgCisJICByZWdyZXNzaW9uIHRlc3RzCisJKiBNYWtlZmlsZS5hbTogY2xlYW51cCB0byBSZWxheHRlc3RzIHRhcmdldAorCitXZWQgSmFuIDI5IDAwOjA4OjM4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBtb3JlIHdvcmsgb24gUmVsYXgtTkcsIGltcGxlbWVudGluZyBpbnRlcmxlYXZlCisJKiB0ZXN0L3JlbGF4bmcvKiByZXN1bHQvcmVsYXhuZy8qOiBhdWdtZW50ZWQvdXBkYXRlZCB0aGUgCisJICByZWdyZXNzaW9uIHRlc3RzCisKK1R1ZSBKYW4gMjggMjE6NTY6NDkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IG1vcmUgd29yayBvbiBSZWxheC1ORywgaW1wbGVtZW50aW5nIGludGVybGVhdmUKKwkqIHRlc3QvcmVsYXhuZy8qIHJlc3VsdC9yZWxheG5nLyo6IGF1Z21lbnRlZC91cGRhdGVkIHRoZSAKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKworTW9uIEphbiAyNyAwNzozNToyOSBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MvdHV0b3JpYWwvY3VzdG9tZm8ueHNsCisJKiBkb2MvdHV0b3JpYWwvY3VzdG9taHRtbC54c2wKKwlhZGRpbmcgc3R5bGVzaGVldCBjdXN0b21pemF0aW9ucyB1c2VkIHRvIGdlbmVyYXRlIGZvCisJZm9yIHBkZiBhbmQgaHRtbAorCitNb24gSmFuIDI3IDEzOjI5OjQzIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBtb3JlIHdvcmsgb24gUmVsYXgtTkcKKwkqIHRlc3QvcmVsYXhuZy8qIHJlc3VsdC9yZWxheG5nLyo6IGF1Z21lbnRlZC91cGRhdGVkIHRoZSAKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKwkqIHhtbHNjaGVtYXN0eXBlcy5jOiBhZGRlZCBhIG51bWJlciBvZiBiYXNlIHR5cGUgZGVmaW5pdGlvbiBidXQgbm90CisJICB0aGUgYXNzb2NpYXRlZCBjaGVja3MsIHRob3NlIGFyZSBzdGlsbCBUT0RPcworCitTdW4gSmFuIDI2IDE3OjM3OjA2IE1TVCAyMDAzIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwlpbiBkb2NzL3R1dG9yaWFsOgorCSogYXBhLmh0bWwKKwkqIGFwYi5odG1sCisJKiBhcGMuaHRtbAorCSogYXBkLmh0bWwKKwkqIGFwZS5odG1sCisJKiBhcGYuaHRtbAorCSogYXBnLmh0bWwKKwkqIGFyMDFzMDIuaHRtbAorCSogYXIwMXMwMy5odG1sCisJKiBhcjAxczA0Lmh0bWwKKwkqIGFyMDFzMDUuaHRtbAorCSogYXIwMXMwNi5odG1sCisJKiBhcjAxczA3Lmh0bWwKKwkqIGFyMDFzMDguaHRtbAorCSogaW5kZXguaHRtbAorCSogeG1sdHV0b3JpYWwucGRmCisJKiB4bWx0dXRvcmlhbC54bWwKKwlhZGQgaW5kZXggdG8gdHV0b3JpYWwKKworU3VuIEphbiAyNiAxNzowMjoyOSBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sY2F0YWxvZy4xCisJKiBkb2MveG1sY2F0YWxvZ19tYW4uaHRtbAorCSogZG9jL3htbGNhdGFsb2dfbWFuLnhtbAorCWJlbGF0ZWRseSBmaXhpbmcgYnVnICM5MzYyMiAoYWRkcyByZXdyaXRlVVJJIHR5cGUgdG8KKwkiLS1hZGQiIG9wdGlvbiBpbiB4bWxjYXRhbG9nIG1hbiBwYWdlCisKK1N1biBKYW4gMjYgMjA6NDc6MjYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxjYXRhbG9nLmMgeG1sbGludC5jOiBhcHBsaWVkIHBhdGNoIGZvciBOZXRCU0QgYnkKKwkgIEp1bGlvIE1lcmlubywgY2xvc2luZyAjMTA0NDc1CisKK1N1biBKYW4gMjYgMjA6Mzg6NDMgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IG1vcmUgd29yayBvbiBSZWxheC1ORworCSogdGVzdC9yZWxheG5nLyogcmVzdWx0L3JlbGF4bmcvKjogYXVnbWVudGVkL3VwZGF0ZWQgdGhlIAorCSAgcmVncmVzc2lvbiB0ZXN0cworCitTdW4gSmFuIDI2IDAxOjQ5OjU4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVsYXhuZy5jOiBtb3JlIHdvcmsgb24gUmVsYXgtTkcKKwkqIHRlc3QvcmVsYXhuZy8qIHJlc3VsdC9yZWxheG5nLyo6IGF1Z21lbnRlZC91cGRhdGVkIHRoZSAKKwkgIHJlZ3Jlc3Npb24gdGVzdHMKKworU2F0IEphbiAyNSAxODo1OTo1NCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFJFQURNRTogdXBkYXRlZCB0aGUgcG9saWN5IG9uIHByaXZhdGUgbWFpbCBhbnN3ZXJzCisJKiByZWxheG5nLmM6IG1vcmUgd29yayBvbiBSZWxheC1ORworCSogdGVzdC9yZWxheG5nLyogcmVzdWx0L3JlbGF4bmcvKjogYXVnbWVudGVkL3VwZGF0ZWQgdGhlIAorCSAgcmVncmVzc2lvbiB0ZXN0cworCitGcmkgSmFuIDI0IDE1OjEyOjQ0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYyBwYXJzZXIuYyB0cmVlLmM6IGFwcGxpZWQgYSBkb2N1bWVudGF0aW9uIHBhdGNoIGZyb20KKwkgIFN0ZWZhbiBLb3N0CisKK0ZyaSBKYW4gMjQgMDI6MDA6NTAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiByZWxheG5nLmM6IG1vcmUgd29yayBvbiBSZWxheC1ORworCSogZG9jLyo6IHJlZ2VuZXJhdGVkIHRoZSBkb2NzCisJKiB0ZXN0L3JlbGF4bmcvKiByZXN1bHQvcmVsYXhuZy8qOiB1cGRhdGVkIGFuZCBhdWdtZW50ZWQgdGhlCisJICBSZWxheC1ORyByZWdyZXNzaW9uIHRlc3RzIGFuZCByZXN1bHRzCisKK1RodSBKYW4gMjMgMTk6MjY6MjAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBjb25maWd1cmUuaW4gcmVsYXhuZy5jIGluY2x1ZGUvbGlieG1sL3JlbGF4bmcuaDoKKwkgIEZpcnN0IGNvbW1pdCBvZiB0aGUgbmV3IFJlbGF4LU5HIHZhbGlkYXRpb24gY29kZSwgbm90IGdlbmVyYWxseQorCSAgdXNlZnVsIHlldC4KKwkqIHRlc3QvcmVsYXhuZy8qIHJlc3VsdC9yZWxheG5nLyo6IGN1cnJlbnQgc3RhdGUgb2YgdGhlIHJlZ3Jlc3Npb24KKwkgIHRlc3RzCisKK1RodSBKYW4gMjMgMTk6MjI6NTQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IG1pbmltaXplZCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBmb3IgR2V0Q29udGVudAorCSAgYW5kIGEgYml0IG9mIGNsZWFudXAuCisKK1RodSBKYW4gMjMgMTc6NDE6MzcgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5OiBzZWVtcyB0aGVyZSBpcyBubyBnb29kIHJlYXNvbnMgdG8KKwkgIG5vdCBnZW5lcmF0ZSBiaW5kaW5ncyBmb3IgWFBvaW50ZXIKKworVHVlIEphbiAyMSAxMzoxOTozNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIGRvYy9hcGlidWlsZC5weTogYXBwbGllZCBhIG5ldyBwYXRjaCBmcm9tCisJICBTdMOpcGhhbmUgQmlkb3VsIGZvciBjbGVhbnVwcworCSogZG9jL2xpYnhtbDItYXBpLnhtbDogcmVidWlsdCB0aGUgQVBJIGRlc2NyaXB0aW9uIHdpdGgKKwkgIG5ldyBlbnRyeSBwb2ludHMKKworTW9uIEphbiAyMCAyMzoyNTowMCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIHB5dGhvbi9kcnZfbGlieG1sMi5weSBweXRob24vZ2VuZXJhdG9yLnB5CisJICBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbC5weSBweXRob24vbGlieG1sX3dyYXAuaAorCSAgcHl0aG9uL3R5cGVzLmM6IHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bCBmb3IgYmV0dGVyIHBlcgorCSAgY29udGV4dCBlcnJvciBtZXNzYWdlIEFQSXMKKwkqIHB5dGhvbi90ZXN0cy9jdHh0ZXJyb3IucHkgcHl0aG9uL3Rlc3RzL3JlYWRlcmVyci5weToKKwkgIHVwZGF0ZSBvZiB0aGUgdGVzdHMKKworU3VuIEphbiAxOSAxNzowOToyOCBNU1QgMjAwMyBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MvZ3VpZGVsaW5lcy5odG1sCisJZ3JhbW1hciBhbmQgc3BlbGxpbmcgY2xlYW51cAorCitGcmkgSmFuIDE3IDAwOjMxOjMwIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmggcHl0aG9uL2dlbmVyYXRvci5weQorCSAgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwucHkgd2luMzIvbGlieG1sMi5kZWYuc3JjOiBhcHBsaWVkCisJICBhIHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bCB0byBhbGxvdyBwZXIgWE1MdGV4dFJlYWRlciBlcnJvcgorCSAgYW5kIHdhcm5pbmcgaGFuZGxpbmcKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvcmVhZGVyZXJyLnB5OiBhZGRpbmcgdGhlCisJICBzcGVjaWZpYyByZWdyZXNzaW9uIHRlc3QKKworVHVlIEphbiAxNCAxNzowMDowOCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IEFsZXhleSBFZmltb3YgcG9pbnRlZCBvdXQgdGhhdCBjb25jYXQoJ2EnLCAnYicsICkKKwkgIHNob3VsZCByYWlzZSBhIHN5bnRheCBlcnJvcgorCitUdWUgSmFuIDE0IDE1OjM5OjE0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiBjbGVhbnVwIHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bAorCitUdWUgSmFuIDE0IDE0OjQxOjE4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYzogZml4aW5nIGJ1ZyAjMTAzMTAwIHdpdGggYSBkdW1teSBVVEY4VG9VVEY4IGNvcHkKKworVHVlIEphbiAxNCAxMjo0MDoyOSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHkgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwucHkKKwkgIHB5dGhvbi9saWJ4bWxfd3JhcC5oIHB5dGhvbi90eXBlcy5jOiBhcHBsaWVkIGFuZCBmaXhlZCBhIHBhdGNoCisJICBmcm9tIFN0w6lwaGFuZSBCaWRvdWwgdG8gcHJvdmlkZSBwZXIgcGFyc2VyIGVycm9yIGhhbmRsZXJzIGF0IHRoZQorCSAgUHl0aG9uIGxldmVsLgorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9jdHh0ZXJyb3IucHk6IGFkZGVkIGEKKwkgIHJlZ3Jlc3Npb24gdGVzdCBmb3IgaXQuCisKK1R1ZSBKYW4gMTQgMDE6MTU6MDQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogZml4ZWQgdGhlIHN0cmVhbWluZyBwcm9wZXJ0eSBvZiB0aGUgcmVhZGVyLAorCSAgaXQgd2FzIGdlbmVyYXRpbmcgdHJlZSBmYXN0ZXIgdGhhbiBjb25zdW1pbmcgaXQuIFBvaW50ZWQgb3V0CisJICBieSBOYXRlIE15ZXJzCisJKiB0cmVlLmM6IGZpeGVkIGEgYnVnIGluIHhtbFNhdmVGb3JtYXRGaWxlRW5jIGlmIHBhc3NlZCBhIE5VTEwgZG9jCisKK1N1biBKYW4gMTIgMjI6MTg6MDIgQ0VUIDIwMDMgSWdvciBabGF0a292aWMgPGlnb3JAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIHdpbjMyL2xpYnhtbDIuZGVmLnNyYzogYWRkZWQgbW9yZSB4bWxyZWFkZXIgYW5kIG90aGVyIGV4cG9ydHMKKworRnJpIEphbiAxMCAxODowNDozMiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGZpeCB0byB0aGUgWFBhdGggaW1wbGVtZW50YXRpb24gZm9yIHBhcmVudCBhbmQKKwkgIGFuY2VzdG9ycyBheGlzIHdoZW4gb3BlcmF0aW5nIG9uIGEgUmVzdWx0IFZhbHVlIFRyZWUuCisJICBGaXhlcyBidWcgIzEwMDI3MQorCitGcmkgSmFuIDEwIDE3OjA3OjAxIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmMgeG1sSU8uYzogcGF0Y2ggZnJvbSBTdGVmYW5vIFphY2NoaXJvbGkKKwkgIHRvIGZpeCBzb21lIFVSSS9maWxlIGVzY2FwaW5nIHByb2JsZW1zCisKK0ZyaSBKYW4gMTAgMTY6MjA6MzQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5OiBmaXhlZCBhIGJ1ZyByYWlzZWQgYnkgUmF5bW9uZCBXaWtlciwgCisJICBkb2NTZXRSb290RWxlbWVudCgpIHNob3VsZCBub3QgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIHRoZQorCSAgcmV0dXJuIGlzIE5vbmUKKworRnJpIEphbiAxMCAxNDoxMzowMyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWwucHkgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwyLXB5dGhvbi1hcGkueG1sOgorCSAgZml4ZWQgYnVnICMxMDIxODEgYnkgYXBwbHlpbmcgdGhlIHN1Z2dlc3RlZCBjaGFuZ2UgYW5kIGZpeGluZworCSAgdGhlIGdlbmVyYXRpb24vcmVnaXN0cmF0aW9uIHByb2JsZW0uCisKK0ZyaSBKYW4gMTAgMTM6NDc6NTUgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGJ1ZyAjMTAyOTYwIGJ5IHJldXNpbmcgdGhlIFhNTCBuYW1lIHBhcnNpbmcKKwkgIHJvdXRpbmVzLgorCitGcmkgSmFuIDEwIDAwOjE2OjQ5IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IG9uZSBtb3JlIElzRW1wdHlFbGVtZW50IGNyYXp5bmVzcywgdGhhdCB0aW1lIGluCisJICBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMgaWYgc3Vic3RpdHV0aW9uIGlzIGFza2VkLgorCSogcHl0aG9uL3Rlc3RzL3JlYWRlcjMucHk6IGFkZGVkIGEgc3BlY2lmaWMgdGVzdC4KKworVGh1IEphbiAgOSAyMjozNTozMSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9kcnZfbGlieG1sMi5weTogdXBkYXRlIGZyb20gU3TDqXBoYW5lIEJpZG91bDogcHl0aG9uIDIuMQorCSAgc3VwcG9ydCBhbmQgaW1wcm92ZWQgZXJyb3IgaGFuZGxlciByZWdpc3RyYXRpb24KKworVGh1IEphbiAgOSAxNDoxNjozOCBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgdHJlZS5jOiBmaXhlcyAjMTAyOTIwIGFib3V0IG5hbWVzcGFjZSBoYW5kbGluZyBpbgorCSAgSFRNTCBvdXRwdXQgYW5kIHNlY3Rpb24gMTYuMiAiSFRNTCBPdXRwdXQgTWV0aG9kIiBvZiBYU0xULTEuMAorCSogUkVBRE1FOiBmaXhlZCBhIGxpbmsKKworV2VkIEphbiAgOCAxODozMjoyNSBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvKiBORVdTOiBwcmVwYXJpbmcgMi41LjEgcmVsZWFzZQorCSogU0FYLmMgcGFyc2VyLmM6IGZpeGluZyBYbWxUZXh0UmVhZGVyIGJ1ZworCitXZWQgSmFuICA4IDAwOjEzOjAxIENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmM6IGZ1Y2ssIEkgaW50cm9kdWNlZCBhIG1lbW9yeSBsZWFrIG9uIGV4dGVybmFsIHBhcnNlZAorCSAgZW50aXRpZXMgaW4gMi41LjAgOi0oCisKK1R1ZSBKYW4gIDcgMTI6MTI6NDUgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmM6IGFub3RoZXIgZml4IG5lZWRlZCBhcyBwb2ludGVkIGJ5IENocmlzdG9waGUgTWVybGV0CisJICBmb3IgLS1zdHJlYW0gLS1kZWJ1ZyBpZiBjb21waWxlZCB3aXRob3V0IGRlYnVnIHN1cHBvcnQuCisKK01vbiBKYW4gIDYgMjA6NTM6MDggTVNUIDIwMDMgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGxpbnQueG1sCisJKiBkb2MveG1sbGludC4xOgorCXVwZGF0ZSBtYW4gcGFnZSB3aXRoIC0tc3RyZWFtIGFuZCAtLWNoa3JlZ2lzdGVyCisKK1R1ZSBKYW4gIDcgMDE6MTc6MjYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnbG9iYWxzLmM6IGZpeGVkIC0td2l0aC10aHJlYWRzIGNvbXBpbGUKKwkqIHhtbGxpbnQuYzogZml4ZWQgLS13aXRob3V0LWRlYnVnIGNvbXBpbGUKKwkqIGluY2x1ZGUvbGlieG1sL2dsb2JhbHMuaDogY2xlYW51cAorCSogaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oOiBhZGQgYSBtaXNzaW5nIGluY2x1ZGUKKworTW9uIEphbiAgNiAxNDowNjowNyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBORVdTOiBwcmVwYXJpbmcgMi41LjAgcmVsZWFzZQorCSogU0FYLmM6IG9ubHkgd2FybiBpbiBwZWRhbnRpYyBtb2RlIGFib3V0IG5hbWVzcGFjZSBuYW1lIAorCSAgYnJva2VuZXNzCisJKiBnbG9iYWxzLmM6IGZpeCBhIGRvYyBnZW5lcmF0aW9uIHByb2JsZW0KKwkqIHVyaS5jOiBmaXggIzEwMTUyMAorCSogZG9jLyo6IHVwZGF0ZWQgYW5kIHJlYnVpbHQgdGhlIGRvYyBmb3IgdGhlIHJlbGVhc2UsIGluY2x1ZHVkaW5nCisJICBzdHlsZXNoZWV0IHVwZGF0ZQorCSogcHl0aG9uL01ha2VmaWxlLmFtOiBmaXggYSBmaWxlbmFtZSBidWcKKworTW9uIEphbiAgNiAxMjowNToxMiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy90dXRvcmlhbC8qIDogZml4ZWQgIzEwMTg5NCBpZiBkb2MgPT0gTlVMTCB4bWxGcmVlRG9jIAorCSAgc2hvdWxkIG5vdCBiZSBjYWxsZWQuCisKK01vbiBKYW4gIDYgMTE6NTk6MDkgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwtMi4wLnBjLmluOiBhcHBsaWVkIHRoZSBwYXRjaCB0byBmaXggIzEwMTg5NAorCitTdW4gSmFuICA1IDIzOjM1OjQ3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jIDogYXBwbGllZCBwYXRjaCBmcm9tIEx1a2FzIFNjaHJvZWRlciBmb3IgcmVnaXN0ZXIgY2FsbGJhY2tzCisJKiB2YWxpZC5jOiBtb2RpZmllZCBwYXRjaCBmcm9tIEx1a2FzIFNjaHJvZWRlciB0byB0ZXN0CisJICByZWdpc3RlciBjYWxsYmFja3Mgd2l0aCAtLWNoa3JlZ2lzdGVyCisKK1N1biBKYW4gIDUgMDI6MjM6MjAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogc2VyaW91c2x5IGNoYW5nZWQgdGhlIHdheSBkYXRhIGFyZSBwdXNoZWQgdG8KKwkgIHRoZSB1bmRlcmx5aW5nIHBhcnNlciwgZ28gYnkgYmxvY2sgb2YgNTEyIGJ5dGVzIGluc3RlYWQgb2YKKwkgIHRyeW5nIHRvIGRldGVjdCB0YWcgYm91bmRhcmllcyBhdCB0aGF0IGxldmVsLiBDaGFuZ2VkIHRoZQorCSAgd2F5IGVtcHR5IGVsZW1lbnQgYXJlIGRldGVjdGVkIGFuZCB0YWdnZWQuCisJKiBweXRob24vdGVzdHMvcmVhZGVyLnB5IHB5dGhvbi90ZXN0cy9yZWFkZXIyLnB5CisJICBweXRob24vdGVzdHMvcmVhZGVyMy5weTogc21hbGwgY2hhbmdlcyBtb3N0bHkgZHVlIHRvIGNvbnRleHQKKwkgIHJlcG9ydGluZyBiZWluZyBkaWZmZXJlbnQgYW5kIERURCBub2RlIGJlaW5nIHJlcG9ydGVkLiBTb21lCisJICBlcnJvcnMgcHJldmlvdXNseSB1bmRldGVjdGVkIGFyZSBub3cgY2F1Z2h0IGFuZCBmaXhlZC4KKwkqIGRvYy94bWxyZWFkZXIuaHRtbDogZmxhZ2dlZCBsYXN0IHNlY3Rpb24gYXMgVE9ETworCitTYXQgSmFuICA0IDIwOjQwOjI4IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5weTogaW50ZWdyYXRlZCB0aGUgUHl0aG9uIDIuMiBvcHRpbWl6YXRpb25zCisJICBmcm9tIEhhbm51IEtyb3NpbmcsIHdoaWxlIG1haW50YWluaW5nIGNvbXBhdGliaWxpdHkgd2l0aCAKKwkgIDEuNSBhbmQgMi4xCisKK1NhdCBKYW4gIDQgMTc6MzM6MTcgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmM6IGEgYml0IG9mIGNsZWFudXAKKwkqIHhtbHJlYWRlci5jOiBzbWFsbCBmaXgKKwkqIGRvYy94bWxyZWFkZXIuaHRtbDogbW9yZSB3b3JrIG9uIHRoZSBYbWxUZXh0UmVhZGVyIHR1dG9yaWFsCisJKiBweXRob24vbGlieG1sLnB5OiBhIGZldyBmaXhlcyBwb2ludGVkIG91dCBieSBIYW5udSBLcm9zaW5nCisKK1NhdCBKYW4gIDQgMTM6NDY6MTQgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vc2V0dXAucHkuaW46IHBhdGNoIGZyb20gU3TDqXBoYW5lIEJpZG91bCB0byBpbmNsdWRlCisJICBkcnZfbGlieG1sMi5weSBpbiBzZXR1cC5weQorCitTYXQgSmFuICA0IDAxOjQzOjA2IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL3htbHJlYWRlci5odG1sOiBzdGFydGluZyBkb2N1bWVudGluZyB0aGUgbmV3IFhtbFRleHRSZWFkZXIKKwkgIGludGVyZmFjZS4KKworRnJpIEphbiAgMyAxNzoxODozMiBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogYWRkZWQgdGhlIC0tc3RyZWFtIGZsYWcgdG8gdXNlIHRoZSBUZXh0UmVhZGVyIEFQSQorCSogeG1scmVhZGVyLmM6IHNtYWxsIHBlcmZvcm1hbmNlIHR3ZWFrCisKK0ZyaSBKYW4gIDMgMTM6NTA6NTUgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYyBweXRob24vdGVzdHMvcmVhZGVyMnB5OiBva2F5IHRoZSBEVEQgdmFsaWRhdGlvbgorCSAgY29kZSBvbiB0b3Agb2YgdGhlIFhNTFRleHRQYXJzZXIgQVBJIHNob3VsZCBiZSBzb2xpZCBub3cuCisKK0ZyaSBKYW4gIDMgMDI6MTc6MTggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYyBweXRob24vdGVzdHMvcmVhZGVyMnB5OiBGaXhpbmcgc29tZSBtb3JlIG1lc3MKKwkgIHdpdGggdmFsaWRhdGlvbiBhbmQgcmVjdXJzaXZlIGVudGl0aWVzIHdoaWxlIHVzaW5nIHRoZQorCSAgcmVhZGVyIGludGVyZmFjZSwgaXQncyBnZXR0aW5nIGEgYml0IG1lc3N5Li4uCisKK1RodSBKYW4gIDIgMTU6MTU6MjYgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYyBweXRob24vdGVzdHMvcmVhZGVyLnB5OiBhbm90aGVyIGNvdXBsZSBvZiBwcm9ibGVtCisJICByZWxhdGVkIHRvIElzRW1wdHlFbGVtZW50IHJlcG9ydGVkIGJ5IFN0w6lwaGFuZSBCaWRvdWwgbmVlZGVkIAorCSAgc29tZSBmaXhlcy4KKworVGh1IEphbiAgMiAxMzo1NzowNyBDRVQgMjAwMyBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC5zcGVjLmluIHB5dGhvbi9NYWtlZmlsZS5hbSBweXRob24vZHJ2X2xpYnhtbDIucHk6CisJICBpbnRlZ3JhdGVkIGRydl9saWJ4bWwyLnB5IFB5dGhvbiB4bWwuc2F4IGRyaXZlciBmcm9tIFN0w6lwaGFuZSBCaWRvdWwKKwkgIGJhc2VkIG9uIHRoZSBweXRob24gWG1sVGV4dFJlYWRlciBpbnRlcmZhY2UuCisKK1dlZCBKYW4gIDEgMjI6MDU6NDAgQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGJhY2tpbmcgb3V0IG9uZSBjaGFuZ2UgaW4gdGhlIGxhc3QgcGF0Y2ggd2hpY2ggYnJva2UgdGhlCisJICByZWdyZXNzaW9uIHRlc3RzCisKK1dlZCBKYW4gIDEgMjE6NTc6MjggQ0VUIDIwMDMgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBnbG9iYWwuZGF0YSBnbG9iYWxzLmMgdHJlZS5jIGluY2x1ZGUvbGlieG1sL2dsb2JhbHMuaDogYXBwbGllZAorCSAgYW4gb2xkIHBhdGNoIGZyb20gTHVrYXMgU2Nocm9lZGVyIHRvIHRyYWNrIG5vZGUgY3JlYXRpb24gYW5kCisJICBkZXN0cnVjdGlvbi4gUHJvYmFibHkgbWlzc2luZyBhIGxvdCBvZiByZWZlcmVuY2VzIGF0IHRoZSBtb21lbnQKKwkgIGFuZCBub3QgdXNhYmxlIHJlbGlhYmx5LgorCitXZWQgSmFuICAxIDIwOjEyOjA3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTkVXUyBkb2MvTWFrZWZpbGUuYW0gZG9jL25ld3MueHNsOiBnZW5lcmF0ZSB0aGUgTkVXUyBmaWxlCisJICBmcm9tIGRvYy9uZXdzLmh0bWwgYW5kIGEgc3R5bGVzaGVldAorCitXZWQgSmFuICAxIDE2OjA5OjU3IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmMgcHl0aG9uL3Rlc3RzL3JlYWRlci5weTogZml4ZWQgYW5vdGhlciBjb3VwbGUgb2YKKwkgIHhtbHJlYWRlciBidWdzIHJlcG9ydGVkIGJ5IFN0w6lwaGFuZSBCaWRvdWwgYW5kIGFkZGVkIHRlc3RzLgorCitXZWQgSmFuICAxIDE1OjQyOjU0IENFVCAyMDAzIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmMgcHl0aG9uL3Rlc3RzL3JlYWRlcjIucHk6IGZpeGVkIGFub3RoZXIgdmFsaWRpdHkKKwkgIGNoZWNraW5nIGluIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcyByYWlzZWQgYnkgU3TDqXBoYW5lIEJpZG91bAorCSAgYW5kIGFkZGVkIGEgc3BlY2lmaWMgcmVncmVzc2lvbiB0ZXN0LgorCSogcHl0aG9uL3Rlc3RzL3JlYWRlcjMucHk6IGNsZWFudXAKKworVHVlIERlYyAzMSAxNTo0NDowMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIHB5dGhvbi90ZXN0cy9yZWFkZXIyLnB5OiBmaXhlZCBhIHByb2JsZW0gd2l0aAorCSAgdmFsaWRhdGlvbiB3aXRoaW4gZW50aXRpZXMgcG9pbnRlZCBieSBTdMOpcGhhbmUgQmlkb3VsLCBhdWdtZW50ZWQKKwkgIHRoZSB0ZXN0cyB0byBjYXRjaCB0aG9zZS4KKworVHVlIERlYyAzMSAxMjoxNTozNyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHk6IG1vZGlmaWVkIHRoZSBnZW5lcmF0b3IgdG8gYWxsb3cga2VlcGluZworCSAgY2xhc3MgcmVmZXJlbmNlcyB3aGVuIGNyZWF0aW5nIG5ldyBjbGFzc2VzLCBuZWVkZWQgdG8gZml4IGEgYnVnCisJICBwb2ludGVkIGJ5IFN0w6lwaGFuZSBCaWRvdWwgd2hlcmUgdGhlIGlucHV0IGJ1ZmZlciBvZiB0aGUKKwkgIHhtbFRleHRSZWFkZXIgaW5zdGFuY2UgZ2V0cyBkZXN0cm95ZWQgaWYgdGhlIHB5dGhvbiB3cmFwcGVyIGZvcgorCSAgdGhlIGlucHV0IGlzIG5vdCByZWZlcmVuY2VkIGFueW1vcmUuCisKK01vbiBEZWMgMzAgMTk6Mzk6MzYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYyBweXRob24vdGVzdHMvcmVhZGVyLnB5OiBmaXhlZCBhbm90aGVyIHBhaXIgb2YgcHJvYmxlbQorCSAgcG9pbnRlZCBieSBTdMOpcGhhbmUgQmlkb3VsOiBkZXB0aCBzdGFydCBhdCAwIGFuZCBhIHBhcnNlIHByb2JsZW0uCisKK01vbiBEZWMgMzAgMTM6MzY6NTAgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYyBweXRob24vdGVzdHMvcmVhZGVyLnB5OiBmaXhlZCBhbm90aGVyIHByb2JsZW0KKwkgIHBvaW50ZWQgYnkgU3TDqXBoYW5lIEJpZG91bAorCitNb24gRGVjIDMwIDEyOjM5OjU1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmMgcHl0aG9uL3Rlc3RzL3JlYWRlci5weTogZml4ZWQgYSBsaW1pdCBjYXNlIHByb2JsZW0KKwkgIHdpdGggIjxhLz4iCisKK01vbiBEZWMgMzAgMTE6NTM6NDQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogd2FybiBvbiB4bWxuczpwcmVmaXg9ImZvbyIKKwkqIHhtbHJlYWRlci5jIHB5dGhvbi90ZXN0cy9yZWFkZXIucHk6IGZpeGVkIGEgY291cGxlIG9mIHByb2JsZW0KKwkgIGZvciBuYW1lc3BhY2UgYXR0cmlidXRlcyBoYW5kbGluZy4KKworTW9uIERlYyAzMCAwMDo1OTowNyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVudGl0aWVzLmMgcGFyc2VyLmMgdHJlZS5jIGluY2x1ZGUvbGlieG1sL2VudGl0aWVzLmg6IEZpeGVkCisJICBhIHJlYWxseSBuYXN0eSBwcm9ibGVtIHJhaXNlZCBieSBhIERvY0Jvb2sgWFNMVCB0cmFuc2Zvcm0KKwkgIHByb3ZpZGVkIGJ5IFNlYmFzdGlhbiBCZXJnbWFubgorCitTdW4gRGVjIDI5IDEyOjEzOjE4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmMgcHl0aG9uL3Rlc3RzL3JlYWRlci5weTogZml4ZWQgYSBidWcgcG9pbnRlZCBvdXQKKwkgIGJ5IFN0w6lwaGFuZSBCaWRvdWwgYW5kIGludGVncmF0ZWQgaXQgaW50byB0aGUgdGVzdHMKKworU2F0IERlYyAyOCAyMzo0OToxMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oIGRvYy9saWJ4bWwyLWFwaS54bWw6CisJICBleHRlbmRlZCB0aGUgWG1sVGV4dFJlYWRlciBBUEkgYSBiaXQsIGFkZGRpbmcgYWNjZXNzb3JzIGZvcgorCSAgdGhlIGN1cnJlbnQgZG9jIGFuZCBub2RlLCBhbmQgYW4gZW50aXR5IHN1YnN0aXR1dGlvbiBtb2RlIGZvcgorCSAgdGhlIHBhcnNlci4KKwkqIHB5dGhvbi9saWJ4bWwucHkgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IHJlbGF0ZWQgdXBkYXRlcworCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9yZWFkZXIucHkgCisJICBweXRob24vdGVzdHMvcmVhZGVyMi5weSBweXRob24vdGVzdHMvcmVhZGVyMy5weTogdXBkYXRlZCBhIGJpdAorCSAgdGhlIG9sZCB0ZXN0cyBhbmQgYWRkZWQgYSBuZXcgb25lIHRvIHRlc3QgdGhlIGVudGl0aWVzIGhhbmRsaW5nCisKK1NhdCBEZWMgMjggMjI6MTE6NTcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0IAorCSAgcHl0aG9uL3Rlc3RzL3JlYWRlci5weSBweXRob24vdGVzdHMvcmVhZGVyMi5weTogY2hhbmdlZCB0aGUKKwkgIGdlbmVyYXRvciB0byBwcm92aWRlIGNhc2luZyBmb3IgdGhlIFhtbFRleHRSZWFkZXIgc2ltaWxhciB0bworCSAgQyMgc28gdGhhdCBleGFtcGxlcyBhbmQgZG9jdW1lbnRhdGlvbiBhcmUgbW9yZSBkaXJlY3RseSB0cmFuc3Bvc2FibGUuCisJICBGaXhlZCB0aGUgY291cGxlIG9mIHRlc3RzIGluIHRoZSBzdWl0ZS4KKworU2F0IERlYyAyOCAxNTo1NTozMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9ndWlkZWxpbmVzLmh0bWw6IGFkZGVkIGEgZG9jdW1lbnQgb24gZ3VpbGRlbGluZSBmb3IKKwkgIHB1Ymxpc2hpbmcgYW5kIGRlcGxveWluZyBYTUwKKworRnJpIERlYyAyNyAyMDozNToxNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmMgeG1scmVhZGVyLmM6IGZpbmFsIHRvdWNoIHJ1bm5pbmcgRFREIHZhbGlkYXRpb24KKwkgIG9uIHRoZSBYbWxUZXh0UmVhZGVyCisJKiBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL3JlYWRlcjIucHk6IGFkZGVkIGEKKwkgIHNwZWNpZmljIHJ1biBiYXNlZCBvbiB0aGUgZXhhbXBsZXMgZnJvbSB0ZXN0L3ZhbGlkLyoueG1sCisKK0ZyaSBEZWMgMjcgMTU6MTc6MjAgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLnB5OiBhZGRlZCBhIGZldyBwcmVkZWZpbmVkIHhtbFRleHRSZWFkZXIgcGFyc2VyCisJICBjb25maWd1cmF0aW9uIHZhbHVlcy4KKworRnJpIERlYyAyNyAxMjo1NzoyMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWxfd3JhcC5oOiB0cnlpbmcgdG8gZml4ICMxMDIwMzcKKworRnJpIERlYyAyNyAxMjoxODoxNCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jOiBmaXhpbmcgYnVnICM5NTI5Niwgd2hlbiB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcworCSAgYXJlIHJlZGVmaW5lZCBpbiB0aGUgRFREIHRoZSBkZWZhdWx0IG9uZSBtdXN0IGJlIHVzZWQKKwkgIGluc3RlYWQgYW55d2F5LgorCitXZWQgRGVjIDI1IDE5OjIyOjA2IE1TVCAyMDAyIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy94bWxsaW50LnhtbAorCSogZG9jL3htbGxpbnQuMQorCUFkZCBkaXNjdXNzaW9uIG9mIFhNTF9ERUJVR19DQVRBTE9HIHRvIHhtbGxpbnQgbWFuCisJcGFnZSAtIGJ1ZyAjMTAwOTA3CisKK01vbiBEZWMgMjMgMTY6NTQ6MjIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYzogRml4ZWQgdGhlIGVtcHR5IG5vZGUgZGV0ZWN0aW9uIHRvIGF2b2lkIHJlcG9ydGluZworCSAgYW4gaW5leGlzdGFudCBjbG9zZSB0YWcuCisKK01vbiBEZWMgMjMgMTU6NDI6MjQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLmMgcHl0aG9uL3NldHVwLnB5LmluOiBwYXRjaCBmcm9tIFN0w6lwaGFuZSBCaWRvdWwKKwkgIGZvciBQeXRob24gMi4xCisKK1N1biBEZWMgMjIgMTE6MjQ6MDYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0QzE0Ti5jIHZtcy9jb25maWcudm1zOiBhcHBsaWVkIENyYWlnIEEuIEJlcnJ5IHBhdGNoZXMgZm9yIFZNUworCitGcmkgRGVjIDIwIDExOjI3OjQ5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2xpYnhtbDItYXBpLnhtbCBweXRob24vdGVzdHMvcmVhZGVyLnB5OiBvbmUgcmVhbGx5IG5lZWQKKwkgIHRvIHByb3ZpZGUgdGhlIGJhc2UgVVJJIGluZm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSByZWFkZXIgcGFyc2VyCisJICBmcm9tIGFuIGlucHV0IHN0cmVhbS4gVXBkYXRlZCB0aGUgQVBJIGFuZCB0aGUgZXhhbXBsZSB1c2luZyBpdC4KKworRnJpIERlYyAyMCAwMToxMTozMCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3RSZWFkZXIuYyB4bWxyZWFkZXIuYyB2YWxpZC5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaAorCSAgaW5jbHVkZS9saWJ4bWwvdmFsaWQuaCBpbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaDogd29ya2luZyBvbgorCSAgRFREIHZhbGlkYXRpb24gb24gdG9wIG9mIHhtbCByZWFkZXIgaW50ZXJmYWNlcy4gQWxsb3dzIHRvCisJICB2YWxpZGF0ZSBhcmJpdHJhcnkgbGFyZ2UgaW5zdGFuY2VzLiBUaGlzIHJlcXVpcmVkIHNvbWUgZXh0ZW5zaW9ucworCSAgdG8gdGhlIHZhbGlkIG1vZHVsZSBpbnRlcmZhY2UgYW5kIGF1Z21lbnRpbmcgdGhlIHNpemUgb2YgeG1sSUQKKwkgIGFuZCB4bWxSZWYgc3RydWN0cyBhIGJpdC4KKwkqIHVyaS5jIHhtbHJlZ2V4cC5jOiBzaW1wbGUgY2xlYW51cC4KKworV2VkIERlYyAxOCAxNTo1MToyMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlYWRlci5jIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oIGRvYy9saWJ4bWwyLWFwaS54bWw6IG1vcmUKKwkgIHdvcmsgb24gdGhlIHhtbCByZWFkZXIgaW50ZXJmYWNlcy4KKwkqIEFVVEhPUlMgTUFJTlRBSU5FUlMgZG9jLyogd2luMzIvKjogdXBkYXRlZCBJZ29yJ3MgbWFpbCBhbmQgdGhlCisJICBXZWIgcGFnZSBmb3IgdGhlIFdpbmRvd3MgYmluYXJpZXMuCisKK1R1ZSBEZWMgMTcgMTk6MzE6MDcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBhcHBsaWVkIGEgcGF0Y2ggZm9yIFZNUyBmb2xsb3dpbmcgdGhlIHJlcG9ydCBieQorCSAgTmlnZWwgSGFsbAorCitUdWUgRGVjIDE3IDExOjI5OjQxIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHRoZSBwYXJzZVN0YXJ0VGFnIGJ1ZyBmaXggd2Fzbid0IGNvbXBsZXRlLgorCitNb24gRGVjIDE2IDIzOjAwOjA1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IFZ5YWNoZXNsYXYgUGluZHl1cmEgbWFuYWdlZCB0byB0cmlnZ2VyIGEgYnVnIGluCisJICBwYXJzZVN0YXJ0VGFnLCBmaXhpbmcgaXQuCisJKiB0ZXN0L2F0dDQgcmVzdWx0L2F0dDQgcmVzdWx0L25vZW50L2F0dDQ6IGFkZGluZyB0aGUgdGVzdAorCSogeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmggZG9jL2xpYnhtbDItYXBpLnhtbDogYWRkZWQKKwkgIG1vcmUgbWV0aG9kcyB0byBYbWxUZXh0UmVhZGVyLgorCitNb24gRGVjIDE2IDE5OjMxOjE2IENFVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiB3aW4zMi9saWJ4bWwyLmRlZi5zcmM6IGFkZGVkIG1vcmUgeG1sIHJlYWRlciBleHBvcnRzCisJKiB3aW4zMi9NYWtlZmlsZS5tc3ZjIHdpbjMyL01ha2VmaWxlLm1pbmd3OiBhZGRlZCB4bWwgcmVhZGVyIGludGVyZmFjZQorCSAgdG8gdGhlIGJ1aWxkCisKK01vbiBEZWMgMTYgMDY6MzY6NTQgTVNUIDIwMDIgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3R1dG9yaWFsL3htbHR1dG9yaWFsLnhtbAorCXBsdXMgZ2VuZXJhdGVkIGh0bWwgYW5kIHBkZgorCVVwZGF0aW5nIHR1dG9yaWFsIGFnYWluIGJhc2VkIG9uIGZ1cnRoZXIgY29tbWVudHMgZnJvbSBOaXJhagorCVRvbGlhIG9uIHRoZSBsYXN0IGl0ZXJhdGlvbgorCitTdW4gRGVjIDE1IDIxOjI3OjMwIE1TVCAyMDAyIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy90dXRvcmlhbC94bWx0dXRvcmlhbC54bWwKKwkqIGRvYy90dXRvcmlhbC9pbmNsdWRla2V5d29yZC5jCisJKiBkb2MvdHV0b3JpYWwvaW5jbHVkZWdldGF0dHJpYnV0ZS5jCisJcGx1cyBnZW5lcmF0ZWQgaHRtbCBhbmQgcGRmCisJQWRkaW5nIGZpeCBmcm9tIE5pcmFqIFRvbGlhIHRvIHR1dG9yaWFsIHRvIHByb3Blcmx5IGZyZWUgbWVtb3J5LgorCitNb24gRGVjIDE2IDAwOjM0OjI1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwveG1scmVhZGVyLmggZG9jL2xpYnhtbDItYXBpLnhtbDogYWRkZWQKKwkgIG1vcmUgbWV0aG9kcyBvZiBYbWxUZXh0UmVhZGVyLgorCSogcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQgcHl0aG9uL3Rlc3RzL3JlYWRlci5weTogdGhpcyBpbmNyZWFzZWQgdGhlCisJICBtZXRob2RzIGluIHRoZSBibmRpbmdzLCBhdWdtZW50ZWQgdGhlIHRlc3QgdG8gY2hlY2sgdGhvc2UgbmV3CisJICBmdW5jdGlvbnMuCisKK1NhdCBEZWMgMTQgMjM6NTc6MzkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWFkZXIuYyBkb2MvbGlieG1sMi1hcGkueG1sOiBhZGRlZCB0aGUgY2xvc2UgYW5kIGdldGF0dHJpYnV0ZQorCSAgbWV0aG9kcyBvZiBYbWxUZXh0UmVhZGVyLgorCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sX3dyYXAuaCBweXRob24vdHlwZXMuYyAKKwkgIHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0OiBhZGRlZCB0aGUgcmVhZGVyIHRvIHRoZSBQeXRob24gYmluZGluZ3MKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvcmVhZGVyLnB5OiBhZGRlZCBhIHNwZWNpZmljCisJICB0ZXN0IGZvciB0aGUgUHl0aG9uIGJpbmRpbmdzIG9mIHRoZSBSZWFkZXIgQVBJcworCSogcGFyc2VyLmM6IHNtYWxsIGNsZWFudXAuCisKK0ZyaSBEZWMgMTMgMTE6Mzk6NDQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4aW5jbHVkZS5jOiBmYWxsYmFjayB3YXMgb25seSBjb3B5aW5nIHRoZSBmaXJzdCBjaGlsZCBub3QgdGhlCisJICBmdWxsIGNoaWxkIGxpc3Qgb2YgdGhlIGZhbGxiYWNrIGVsZW1lbnQsIGNsb3NlcyAjODk2ODQgYXMgcmVvcGVuZWQKKwkgIGJ5IEJlcm5kIEt1ZW1tZXJsZW4KKworVGh1IERlYyAxMiAxMzozNDo1OSBDRVQgMjAwMiBJZ29yIFpsYXRrb3ZpYyA8aWdvckBzdHVkLmZoLWZyYW5rZnVydC5kZT4KKworCSogd2luMzIvbGlieG1sMi5kZWYuc3JjOiBleHBvcnRlZCBodG1sTm9kZUR1bXBPdXRwdXQKKworVGh1IERlYyAxMiAxMDo1OToxMSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIHJlbGVhc2Ugb2YgMi40LjMwCisJKiBkb2MvYXBpYnVpbGQucHkgZG9jL2xpYnhtbDItYXBpLnhtbDogZml4dXBzIHRvIHRoZSBhcGkgYnVpbGRlciwKKwkgIGdpdmVzIGVudW0gdmFsdWVzLCBmaXggZnVuY3R5cGUgcmV0dXJuIHR5cGUsIHB1dCBiYWNrIGZpZWxkcyBpbgorCSAgc3RydWN0cyAKKwkqIGRvYy8qOiB1cGRhdGVkIHRoZSBkb2NzIHJlYnVpbHQKKworVGh1IERlYyAxMiAwMTowOTozNCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgaW5jbHVkZS9saWJ4bWwvSFRNTHRyZWUuaDogcGF0Y2ggZnJvbSBNYXJrIFZha29jCisJICBhYm91dCBodG1sTm9kZUR1bXBPdXRwdXQgbG9jYXRpb24uCisJKiB4cGF0aC5jOiByZW1vdmVkIGFuIHVuZGVmaW5lZCBmdW5jdGlvbiBzaWduYXR1cmUKKwkqIGRvYy9hcGlidWlsZC5weSBkb2MvbGlieG1sMi1hcGkueG1sOiB0aGUgc2NyaXB0IHdhcyBleHBvcnRpbmcKKwkgIHRvbyBtYW55IHN5bWJvbHMgaW4gdGhlIEFQSSBicmVha2luZyB0aGUgcHl0aG9uIGJpbmRpbmdzLgorCSAgVXBkYXRlZCB3aXRoIHRoZSBsaWJ4c2x0L2xpYmV4c2x0IGNoYW5nZXMuCisKK1dlZCBEZWMgMTEgMjA6MjY6MTUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyByZWxlYXNlIG9mIDIuNC4yOQorCSogZG9jLyo6IHJlYnVpbHQgdGhlIGRvY3MgYW5kIEFQSQorCSogeG1scmVhZGVyLmM6IGEgZmV3IG1vcmUgZml4ZXMgZm9yIHRoZSBYbWxUZXh0UmVhZGVyIEFQSQorCitXZWQgRGVjIDExIDE4OjAxOjE1IENFVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiBpbmNsdWRlL3dpbjMyY29uZmlnLmg6IGFwcGxpZWQgbWluZ3cgcGF0Y2ggZnJvbSBNYWdudXMgSGVub2NoCisKK1dlZCBEZWMgMTEgMTY6NTg6NDggQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmMgZG9jL2xpYnhtbDItYXBpLnhtbDogYSBiaXQgbW9yZSBjbGVhbnVwCisKK1dlZCBEZWMgMTEgMTQ6NTQ6NDcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvYXBpYnVpbGQucHkgZG9jL2xpYnhtbDItYXBpLnhtbCBkb2MvTWFrZWZpbGUuYW06IG5ldyBBUEkKKwkgIGJ1aWxkaW5nIFB5dGhvbiBzY3JpcHQsIGRvZXMgdGhlIEMgcGFyc2luZyBkaXJlY3RseSwgZ2VuZXJhdGVzCisJICBhIGJldHRlciBBUEkgZGVzY3JpcHRpb24gaW5jbHVkaW5nIHN0cnVjdHVyZSBmaWVkcyBkZWZzIGFuZAorCSAgZW51bXMuIFN0aWxsIGEgY291cGxlIG9mIGJ1Z3MsIGJ1dCBnb29kIGVub3VnaCBmb3IgdGhlIHB5dGhvbgorCSAgd3JhcHBlcnMgbm93LgorCSogRE9DQnBhcnNlci5jIFNBWC5jIG5hbm9odHRwLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdHJlZS5jCisJICB2YWxpZC5jIHhtbElPLmMgeG1sbWVtb3J5LmMgeG1scmVhZGVyLmMgeG1scmVnZXhwLmMgeG1sc2NoZW1hcy5jCisJICBpbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmggaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBtb3JlCisJICBjbGVhbnVwIGJhc2VkIG9uIHRoZSBweXRob24gYW5hbHlzaXMgc2NyaXB0IHJlcG9ydHMuCisJKiBsaWJ4bWwuc3BlYy5pbjogbWFrZSBzdXJlIHRoZSBBUEkgWE1MIGRlc2NyaXB0aW9uIGlzIHBhcnQgb2YgdGhlCisJICBkZXZlbCBwYWNrYWdlLgorCitUdWUgRGVjIDEwIDE2OjE2OjM0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogRE9DQnBhcnNlci5jIEhUTUxwYXJzZXIuYyBjMTRuLmMgZGVidWdYTUwuYyBlbmNvZGluZy5jIGhhc2guYworCSAgbmFub2Z0cC5jIG5hbm9odHRwLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdGVzdEMxNE4uYworCSAgdGVzdERvY2Jvb2suYyB0aHJlYWRzLmMgdHJlZS5jIHZhbGlkLmMgeG1sSU8uYyB4bWxsaW50LmMgeG1sbWVtb3J5LmMKKwkgIHhtbHJlYWRlci5jIHhtbHJlZ2V4cC5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYyB4cGF0aC5jOgorCSAgY29kZSBjbGVhbnVwLCBlc3BlY2lhbGx5IHRoZSBmdW5jdGlvbiBjb21tZW50cy4KKwkqIHRyZWUuYzogZml4ZWQgYSBzbWFsbCBidWcgd2hlbiBmcmVlaW5nIG5vZGVzIHdoaWNoIGFyZSBYSW5jbHVkZSBvbmVzLgorCitNb24gRGVjICA5IDE1OjA4OjE3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0geG1scmVhZGVyLmMgaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW0KKwkgIGluY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oOiAgQWRkaW5nIGEgbmV3IHNldCBvZiBBUElzIGJhc2VkIG9uCisJICB0aGUgQyMgVGV4dFhtbFJlYWRlciBBUEkgYnV0IGNvbnZlcnRlZCB0byBDLiBBbGxvdyB0byBwYXJzZQorCSAgaW4gY29uc3RhbnQgbWVtb3J5IHVzYWdlLCBmYXIgc2ltcGxlciB0byBwcm9ncmFtIGFuZCBleHBsYWluCisJICB0aGFuIHRoZSBTQVggbGlrZSBBUElzLCB1bmZpbmlzaGVkIGJ1dCB3b3JraW5nLgorCSogdGVzdFJlYWRlci5jOiB0ZXN0IHByb2dyYW0KKworU3VuIERlYyAgOCAxODozNjowMSBDRVQgMjAwMiBJZ29yIFpsYXRrb3ZpYyA8aWdvckBzdHVkLmZoLWZyYW5rZnVydC5kZT4KKworCSogd2luMzIvbGlieG1sMi5kZWYuc3JjOiBhcHBsaWVkIFlBTERTUCBmcm9tIE1hcmsgVmFrb2MKKworV2VkIERlYyAgNCAxNjowODo0OSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogQ2hpcCB0dXJuZXIgaW5kaWNhdGVkIHRoYXQgWEhUTUwxIHNlcmlhbGl6YXRpb24KKwkgIHJ1bGUgZm9yIHN0eWxlIGFjdHVhbGx5IGJyZWFrIG9uIGJvdGggSUUgYW5kIE1vemlsbGEsIAorCSAgdHJ5IHRvIGF2b2lkIHRoZSBydWxlIGlmIGVzY2FwaW5nIGFpbid0IG5lY2Vzc2FyeQorCitXZWQgRGVjICA0IDEyOjQzOjI4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFuaHR0cC5jOiBoYW5kbGUgSFRUUCBVUkwgZXNjYXBpbmcsIHByb2JsZW0gcmVwb3J0ZWQgYnkKKwkgIEdsZW4gTmFrYW11cmEgYW5kIFN0ZWZhbm8gWmFjY2hpcm9saQorCitTYXQgTm92IDMwIDEyOjE5OjE3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogRE9DQnBhcnNlci5jIEhUTUxwYXJzZXIuYyBwYXJzZXIuYyB2YWxpZC5jIHhwYXRoLmM6IGNvZGUgY2xlYW51cAorCitUaHUgTm92IDI4IDEyOjUzOjIyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmM6IEpvaGFubiBSaWNoYXJkIHBvaW50ZWQgb3V0IHNvbWUgWFBvaW50ZXIgcHJvYmxlbXMgZm9yCisJICBVUk4gYmFzZWQgVVJJIHJlZmVyZW5jZXMgaW4gWEluY2x1ZGUuIE1vZGlmaWVkIHRoZSBVUkkgcGFyc2luZworCSAgYW5kIHNhdmluZyByb3V0aW5lcyB0byBhbGxvdyBjb3JyZWN0IHBhcnNpbmcgYW5kIHNhdmluZyBvZiAKKwkgIFhQb2ludGVycywgZXNwZWNpYWxseSB3aGVuIGF0dGFjaGVkIHRvICJvcGFxdWUiIHNjaGVtZSBhY2NvcmRpbmdseQorCSAgdG8gUkZDIDIzOTYKKworV2VkIE5vdiAyNyAyMDozNjowOCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgaW5jbHVkZS9saWJ4bWwvSFRNTHRyZWUuaDogYXBwbGllZCB0aGUgc2FtZSBraW5kCisJICBvZiByZWZhY3RvcmluZyB0byB0aGUgSFRNTCBzYXZpbmcgY29kZS4KKwkqIGRvYy9saWJ4bWwyLSoueG1sIGRvYy9BUEkqLmh0bWw6IHNsaWdodCBBUEkgY2hhbmdlcyBnb3QgcmVmbGVjdGVkCisJICBpbiB0aGUgZG9jLgorCitXZWQgTm92IDI3IDEyOjQwOjE2IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogcmVmYWN0b3JlZCB0aGUgWE1MIGR1bXAgb2YgYSBub2RlCisJICB0byBhIGJ1ZmZlciBBUEkgdG8gcmV1c2UgdGhlIGdlbmVyaWMgZHVtcCB0byBhbiBPdXRwdXRJTyBsYXllciwKKwkgIHRoaXMgcmVkdWNlcyBjb2RlLCBmaXhlcyB4bWxOb2RlRHVtcCgpIGZvciBYSFRNTCwgYWxzbyBtYWRlCisJICB4bWxOb2RlRHVtcCgpIG5vdyByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4uCisKK1dlZCBOb3YgMjcgMDk6MDA6MDAgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vc2V0dXAucHkuaW46IGFub3RoZXIgcGF0Y2ggZnJvbSBTdMOpcGhhbmUgQmlkb3VsIGZvciAKKwkgIFB5dGhvbiBiaW5kaW5ncyBvbiBXaW5kb3dzCisJKiBkb2MvcGFyc2VkZWNsLnB5OiBzbWFsbCBjbGVhbnVwCisKK01vbiBOb3YgMjUgMTc6Mjg6NTMgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuc3BlYy5pbiBjb25maWd1cmUuaW46IGFkZCBhIGxpbmUgaW4gJWNoYW5nZWxvZyBmb3IgcmVsZWFzZXMKKworTW9uIE5vdiAyNSAxNDoxODoyNyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBwYXRjaCBmcm9tIE1hcmN1cyBDbGFya2UgZml4aW5nIGEgcHJvYmxlbSBpbiBlbnRpdGllcworCSAgcGFyc2luZyB0aGF0IHdhcyBkZXRlY3RlZCBpbiBLRGUgZG9jdW1lbnRhdGlvbnMgZW52aXJvbm1lbnQuCisKK01vbiBOb3YgMjQgMTQ6MTM6MjEgQ0VUIDIwMDIgRVJESSBHZXJnbyA8Y2FjdHVzQGNhY3R1cy5ydWxlei5vcmc+CisKKwkqIHB5dGhvbi9saWJ4bWwuYyAobGlieG1sX3ByZXYpOiBSZXR1cm4gdGhlIHByZXZpb3VzIGFzIG9wcG9zZWQgdG8KKwl0aGUgbmV4dCBub2RlIChJIGd1ZXNzIHRoaXMgaXMgdGhlIHJlc3VsdCBvZiBzb21lIGN1dCAmIHBhc3RlIHByb2dyYW1taW5nOikKKworU2F0IE5vdiAyMyAxNzoyMjoyMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9NYWtlZmlsZS5hbTogSmFuIFJhZmFqIHBvaW50ZWQgYSBidWcgaW4gdGhlIE1ha2VmaWxlLgorCitTYXQgTm92IDIzIDEyOjIxOjI0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmMgcHl0aG9uL3NldHVwLnB5LmluOiB0cnlpbmcKKwkgIHRvIGZpeCB0aGUgUHl0aG9uIGJpbmRpbmdzIGJ1aWxkIG9uIFdpbmRvd3MgKFN0w6lwaGFuZSBCaWRvdWwpCisKK0ZyaSBOb3YgMjIgMjI6NDE6MzQgQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiB3aW4zMi9jb25maWd1cmUuanM6IGFkZGVkIG9wdGlvbiBmb3IgcHl0aG9uIGJpbmRpbmdzCisJKiB3aW4zMi9saWJ4bWwyLmRlZi5zcmM6IGFkZGVkIG1vcmUgZXhwb3J0cworCitGcmkgTm92IDIyIDE4OjUwOjM0IENFVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiB3aW4zMi9NYWtlZmlsZS5taW5ndzogZml4ZWQgdW5yZXNvbHZlZCBzeW1ib2xzIHdoZW4gbGlua2luZyB3aXRoCisJICBwdGhyZWFkcworCSogd2luMzIvd2luY2UvKjogYXBwbGllZCB1cGRhdGVzIHRvIFdpbmRvd3MgQ0UgcG9ydCBmcm9tIEphdmllcgorCitGcmkgTm92IDIyIDE1OjUxOjIyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBwcmVwYXJpbmcgMi40LjI4CisJKiBsaWJ4bWwuc3BlYy5pbiBkb2MvTWFrZWZpbGUuYW06IHNvbWUgY2xlYW51cAorCSogZG9jLyo6IHVwZGF0ZWQgdGhlIG5ld3MgYW5kIHJlZ2VuZXJhdGVkLgorCitGcmkgTm92IDIyIDE0OjE1OjE0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBmaW5hbCB0b3VjaCBhdCBjbG9zaW5nICM4NzIzNSA8L3A+IGVuZCB0YWdzCisJICBuZWVkIHRvIGJlIGdlbmVyYXRlZC4KKwkqIHJlc3VsdC9IVE1ML2NmXzEyOC5odG1sIHJlc3VsdC9IVE1ML3Rlc3QyLmh0bWwgcmVzdWx0L0hUTUwvdGVzdDMuaHRtbDoKKwkgIHRoaXMgY2hhbmdlIHNsaWdodGx5IHRoZSBvdXRwdXQgb2YgYSBmZXcgdGVzdHMKKwkqIGRvYy8qOiByZWdlbmVyYXRlZAorCitGcmkgTm92IDIyIDEzOjI2OjE5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VySW50ZXJuYWxzLmM6IGZpeGluZyBidWcgIzk5MTkwIHdoZW4gVVRGOCBkb2N1bWVudCBhcmUKKwkgIHBhcnNlZCB1c2luZyB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2VyIGFuZCB0aGUgZW5kIG9mIHRoZSBjaHVuaworCSAgaXMgaW4gdGhlIG1pZGRsZSBvZiBhbiBVVEY4IG11bHRpYnl0ZSBjaGFyYWN0ZXIuCisKK0ZyaSBOb3YgMjIgMTM6MTM6MDAgSEtUIDIwMDIgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHRocmVhZHMuYzogZml4ZWQgaW5pdGlhbGl6YXRpb24gcHJvYmxlbSBpbiB4bWxOZXdHbG9iYWxTdGF0ZQorCSAgd2hpY2ggd2FzIGNhdXNpbmcgY3Jhc2guCisJKiBnbG9iYWxzLmM6IHJlbW92ZWQgZHVwbGljYXRlIGNhbGwgdG8gaW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyCisJICBpbiB4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUuCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogY2xlYW5lZCB1cCBjdHh0LT5zYXggaW5pdGlhbGlzYXRpb24uCisKK1RodSBOb3YgMjEgMTU6MDU6NDUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBtb2RpZmllZCB0aGUgZXhpc3RpbmcgQVBJcworCSAgdG8gaGFuZGxlIFhIVE1MMSBzZXJpYWxpemF0aW9uIHJ1bGVzIGF1dG9tYXRpY2FsbHksIGFsc28gYWRkCisJICB4bWxJc1hIVE1MKCkgdG8gbGlieG1sMiBBUEkuIFNvbWUgdHdlYWtpbmcgdG8gbWFrZSBzdXJlCisJICBsaWJ4c2x0IHNlcmlhbGl6YXRpb24gdXNlcyBpdCB3aGVuIG5lZWRlZCB3aXRob3V0IGNoYW5naW5nCisJICB0aGUgbGlicmFyeSBBUEkuCisJKiB0ZXN0L3hodG1sMSByZXN1bHQvbm9lbnQveGh0bWwxIHJlc3VsdC92YWxpZC94aHRtbDEueGh0bWwKKwkgIHJlc3VsdC94aHRtbDE6IGFkZGVkIGEgbmV3IHRlc3Qgc3BlY2lmaWNhbGx5IGZvciB4aHRtbDEgb3V0cHV0CisJICBhbmQgdXBkYXRlZCB0aGUgcmVzdWx0IG9mIG9uZSBYSFRNTDEgdGVzdAorCitXZWQgTm92IDIwIDE0OjI0OjU2IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYyBwYXJzZXJJbnRlcm5hbHMuYyBlbmNvZGluZy5jOiBmaXhlZCAjOTkwODIKKwkgIGZvciB4aTppbmNsdWRlIGVuY29kaW5nPSIuLi4iIHN1cHBvcnQgb24gdGV4dCBpbmNsdWRlcy4KKwkqIHJlc3VsdC9YSW5jbHVkZS90c3RlbmNvZGluZy54bWwgdGVzdC9YSW5jbHVkZS9kb2NzL3RzdGVuY29kaW5nLnhtbAorCSAgdGVzdC9YSW5jbHVkZS9lbnRzL2lzb2xhdGluLnR4dCA6IGFkZGVkIGEgc3BlY2lmaWMgcmVncmVzc2lvbiB0ZXN0CisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0OiBmaXhlZCB0aGUgZ2VuZXJhdG9yCisJICB0aGUgbmV3IHNldCBvZiBjb21tZW50cyBnZW5lcmF0ZWQgZm9yIGRvYy9saWJ4bWwyLWFwaS54bWwgd2VyZQorCSAgYnJlYWtpbmcgdGhlIHB5dGhvbiBnZW5lcmF0aW9uLgorCitUdWUgTm92IDE5IDIzOjI1OjQ3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL01ha2VmaWxlLmFtOiByZXBhaXIgc29tZSBwcm9ibGVtIGlmIGd0ay1kb2MgZmFpbCBvciBzdWNoCisJKiBjb25maWd1cmUuaW46IHBhdGNoIGZvciBTb2xhcmlzIG9uIG5ldyBhdXRvY29uZiBjbG9zZXMgIzk4ODgwIAorCSogZG9jL3BhcnNlZGVjbC5weTogcmVwYWlyIHRoZSBmcmlnZ2luZyBBUEkgYnVpbGRpbmcgc2NyaXB0LAorCSAgZGlkIEkgc2F5IHRoYXQgcHl0aG9uIHhtbGxpYiBzdWNrcyA/CisJKiBkb2MvbGlieG1sMi1hcGkueG1sIGRvYy9saWJ4bWwyLXJlZnMueG1sOiByZWdlbmVyYXRlZCwgcmVvcmRlcmluZworCSAgYW5kIHNvbWUgY29tbWVudCBhcmUgbm8gbW9yZSB0cnVuY2F0ZWQuCisKK1R1ZSBOb3YgMTkgMDk6MDk6MDQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogTWFydGluIFN0b2lsb3YgcG9pbnRlZCBvdXQgYSBwb3RlbnRpYWwgbGVhayBpbgorCSAgeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dAorCitNb24gTm92IDE4IDE2OjA1OjUxIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBmaXhlZCBidWcgIzk4ODc5IGEgY29ybmVyIGNhc2Ugd2hlbiAwIGlzCisJICBpbmNsdWRlZCBpbiBIVE1MIGRvY3VtZW50cyBhbmQgdXNpbmcgdGhlIHB1c2ggcGFyc2VyLgorCitNb24gTm92IDE4IDAwOjExOjI0IENFVCAyMDAyIEVSREkgR2VyZ28gPGNhY3R1c0BjYWN0dXMucnVsZXoub3JnPgorCisJKiBjb25maWd1cmUuaW4gKFBZVEhPTl9TSVRFX1BBQ0tBR0VTKTogSWYgLS13aXRoLXB5dGhvbiBpcworCSAgc3BlY2lmaWVkLCBsb29rIGZvciB0aGUgUHl0aG9uIGludGVycHJldGVyIG5vdCBqdXN0IGluIHRoZQorCSAgc3BlY2lmaWVkIHJvb3QgYnV0IGFsc28gaW4gdGhlIHNwZWNpZmllZCBsb2NhdGlvbi4gRml4ZXMgIzk4ODI1CisKK1N1biBOb3YgMTcgMjM6MzY6MDYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vbGlieG1sLmM6IGZpeGluZyBidWcgIzk4NzkyICwgbm9kZSBtYXkgaGF2ZSBubyBkb2MKKwkgIGFuZCBkZXJlZmVyZW5jaW5nIHdpdGhvdXQgY2hlY2tpbmcgYWluJ3QgZ29vZCAuLi4KKworU3VuIE5vdiAxNyAxMDoyNTo0MyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIHJlbGVhc2UgMi40LjI3CisJKiBkb2MvKiA6IHVwZGF0ZWQgYW5kIHJlYnVpbHQgdGhlIGRvY3MKKwkqIGRvYy9NYWtlZmlsZS5hbSBsaWJ4bWwuc3BlYy5pbjogdHJ5IHRvIG1ha2Ugc3VyZSB0aGUgdHV0b3JpYWwKKwkgIGFuZCBhbGwgdGhlIGRvY3MgYXJlIGFjdHVhbGx5IHBhY2thZ2VkIGFuZCBpbiB0aGUgZmluYWwgUlBNcworCSogcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IHJlc3RvcmUKKwkgIHhtbGxpbnQgLS1yZWNvdmVyIGZlYXR1cmUuCisKK1NhdCBOb3YgMTYgMTY6MzA6MjUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyB4cGF0aC5jOiBmaXhpbmcgIzk2OTI1IHdpY2ggd2FzIGFsc28gZGVwZW5kZW50IG9uIHRoZQorCSAgcHJvY2Vzc2luZyBvZiBwYXJzZWQgZW50aXRpZXMsIGFuZCBYUGF0aCBjb21wdXRhdGlvbiBvbiBzdXN0aXR1ZWQKKwkgIGVudGl0aWVzLgorCSogdGVzdFhQYXRoLmM6IG1ha2Ugc3VyZSBlbnRpdGllcyBhcmUgc3Vic3RpdHVlZC4KKworRnJpIE5vdiAxNSAxNjoyMjo1NCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCAjOTY1OTQsIHdoaWNoIHdhcyB0b3RhbGx5IGRlcGVuZGVudCBvbiB0aGUgCisJICBwcm9jZXNzaW5nIG9mIGludGVybmFsIHBhcnNlZCBlbnRpdGllcywgd2hpY2ggaGFkIHRvIGJlIGNoYW5nZWQuCisKK0ZyaSBOb3YgMTUgMTI6MTY6MDcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBweXRob24vTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtOgorCSAgdHJ5aW5nIHRvIGZpeCBidWcgIzk4NTE3IGFib3V0IGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNvdXJjZSB0cmVlCisJKiBkb2MveG1sLmh0bWwgZG9jL0ZBUS5odG1sOiBmaXhlZCB0aGUgbGluayB0byBsaWJpY29udiAjOTQ1ODUKKworVGh1IE5vdiAxNCAxODo0MTo1NSBDRVNUIDIwMDIgSWdvciBabGF0a292aWMgPGlnb3JAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIGluY2x1ZGUvd2luMzJjb25maWcuaDogY2xlYW51cAorCSogd2luMzIvTWFrZWZpbGUubWluZ3c6IGludGVncmF0ZWQgbWluZ3cgaW4gSlNjcmlwdCBjb25maWd1cmUKKwkqIHdpbjMyL01ha2VmaWxlLm1zdmM6IG1vZGlmaWVkIHRvIGFsbG93IG1pbmd3IGNvZXhpc3RlbmNlCisJKiB3aW4zMi9jb25maWd1cmUuanM6IGludGVncmF0ZWQgbWluZ3cKKwkqIHdpbjMyL1JlYWRtZS50eHQ6IGNsZWFudXAKKworVHVlIE5vdiAxMiAyMjowNjo0NSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogc3RyZW5ndGhlbiB0aGUgZ3VhcmQgaW4gdGhlIFBvcCBtYWNyb3MsCisJICBsaWtlIGluIHRoZSBYTUwgcGFyc2VyLCBjbG9zZXMgYnVnICM5NzMxNQorCitUdWUgTm92IDEyIDIxOjU2OjM5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IGZpeGVkIGJ1ZyAjOTgzMzggLCBmYXRhbEVycm9yIFNBWAorCSAgY2FsbGJhY2sgaXMgbmV2ZXIgdXNlZC4KKworVHVlIE5vdiAxMiAxMzozMjo1MCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlckludGVybmFscy5jOiBmaXhlZCB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIFNBWCBzdHJ1Y3R1cmUKKwkgIHdoaWNoIHdhcyBicmVha2luZyB4c2x0cHJvYworCSogeHBhdGguYzogcGF0Y2ggZnJvbSBQZXRyIFBhamFzIGZvciBDREFUQSBub2RlcworCSogdHJlZS5jOiBwYXRjaCBmcm9tIFBldHIgUGFqYXMgaW1wcm92aW5nIHhtbEdldE5vZGVQYXRoKCkKKwkqIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBwYXRjaCBmcm9tIFBldGVyIEpvbmVzCisJICByZW1vdmluZyBhIGxlYWsgaW4geG1sU0FYUGFyc2VNZW1vcnkoKSBhbmQgYWRkaW5nIHRoZQorCSAgZnVuY3Rpb24geG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSgpCisKK01vbiBOb3YgMTEgMjA6NDc6MDMgTVNUIDIwMDIgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCWFkZGluZyBwZGYgb2YgdHV0b3JpYWwsIGNoYW5naW5nIHdlYiBwYWdlIHRvIGxpbmsgdG8gaXQKKwkqIGRvYy90dXRvcmlhbC94bWx0dXRvcmlhbC5wZGYKKwkqIGRvYy94bWwuaHRtbAorCSogZG9jL2RvY3MuaHRtbAorCitTdW4gTm92IDEwIDIwOjQ4OjU3IE1TVCAyMDAyIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy90dXRvcmlhbC9hcjAxczA4Lmh0bWwKKwlhZGRpbmcgZmlsZSB3aGF0IEkgZm9yZ290IGZvciB0dXRvcmlhbAorCitTdW4gTm92IDEwIDIwOjMzOjEzIE1TVCAyMDAyIEpvaG4gRmxlY2sgIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJQWRkaW5nIGVuY29kaW5nIGRpc2N1c3Npb24gdG8gdHV0b3JpYWwKKwlBZGRlZDoKKwkqIGRvYy90dXRvcmlhbC9pbWFnZXMvKi5wbmc6IERvY0Jvb2sgYWRtb25pdGlvbiBpbWFnZSBmaWxlcworCSogZG9jL3R1dG9yaWFsL2FwZi5odG1sLCBhcGcuaHRtbDogbmV3IGdlbmVyYXRlZCBodG1sCisJKiBkb2MvdHV0b3JpYWwvaW5jbHVkZWNvbnZlcnQuYzogY29udmVyc2lvbiBjb2RlIGVudGl0eSBmaWxlCisJY2hhbmdlZDoKKwkqIGRvYy90dXRvcmlhbC94bWx0dXRvcmlhbC54bWw6IERvY0Jvb2sgb3JpZ2luYWwKKwkqIGRvYy90dXRvcmlhbC8qLmh0bWw6IGdlbmVyYXRlZCBodG1sCisKK0ZyaSBOb3YgIDggMTc6NTk6MzIgQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiBpbmNsdWRlL2xpYnhtbC8qLmg6IHJldGlyZWQgeG1sd2luMzJ2ZXJzaW9uLmgKKwkqIGRvYy9NYWtlZmlsZS5hbTogcmV0aXJlZCB4bWx3aW4zMnZlcnNpb24uaAorCSogd2luMzIvY29uZmlndXJlLmpzOiByZXRpcmVkIHhtbHdpbjMydmVyc2lvbi5oCisKK0ZyaSBOb3YgIDggMTY6NTU6NDcgQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiB3aW4zMi9saWJ4bWwyLmRlZi5zcmM6IGV4cG9ydGVkIGFkZGl0aW9uYWwgc3ltYm9scworCSogaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IGV4cG9ydGVkIHRoZSByZXN0IG9mIHRoZSB4bWxNZW0qIAorCSAgc2lzdGVyaG9vZAorCitGcmkgTm92ICA4IDE2OjA4OjEzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2xvYmFscy5jOiBmaXhlZCBhIHR5cG8gcG9pbnRlZCBvdXQgYnkgSWdvcgorCSogeHBhdGguYzogdHJ5IHRvIHNwZWVkIHVwIG5vZGUgY29tcGFyZSB1c2luZyBsaW5lIG51bWJlcnMKKwkgIGlmIGF2YWlsYWJsZS4KKworVGh1IE5vdiAgNyAxNToxNjowMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogbWFrZSB4bWxGcmVlTm9kZSgpIGhhbmRsZSBhdHRyaWJ1dGVzIGNvcnJlY3RseS4KKworV2VkIE5vdiAgNiAyMzo1MToxMSBDRVQgMjAwMiBJZ29yIFpsYXRrb3ZpYyA8aWdvckBzdHVkLmZoLWZyYW5rZnVydC5kZT4KKworCSogY2F0YWxvZy5jOiBjb21wbGV0ZWQgdGhlICM5Njk2MyBmaXgsIGFzIHJlcG9ydGVkIGJ5IEthcmwKKwkgIEVpY2h3YWxkZXIKKworV2VkIE5vdiAgNiAxNjo0ODo0NCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwb2ludGVyLmM6IHRyaWVkIHRvIGZpeCBidWcgIzk3ODUyIHJlcG9ydGVkIGJ5IE5pY29sYXMgTm9mZmtlCisKK1N1biBOb3YgIDMgMTA6NDM6NDQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogc3dpdGNoZWQgdGhlIG9yZGVyIG9mIGEgY291cGxlIG9mIGluY2x1ZGVzCisJICB0byBmaXggYnVncyAjOTcxMDAKKworVGh1IE9jdCAzMSAxNzoxMTo0NiBDRVNUIDIwMDIgSWdvciBabGF0a292aWMgPGlnb3JAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIGNhdGFsb2cuYzogZml4ZWQgYnVnICM5Njk2MywgcmV2ZXJ0ZWQgdG8gdGhlIG9sZCBiZWhhdmlvdXIgb2YKKwkgIHhtbExvYWRDYXRhbG9ncyB0aGF0IHVzZWQgdG8gc2VwYXJhdGUgZGlyZWN0b3JpZXMgd2l0aCBhICc6Jy4KKworVGh1IE9jdCAzMSAxNjo1NToyMSBDRVNUIDIwMDIgSWdvciBabGF0a292aWMgPGlnb3JAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIHRocmVhZHMuYzogaW1wcm92ZW1lbnRzIHRvIHRoZSBXaW5kb3dzLXNpZGUgb2YgdGhyZWFkIGhhbmRsaW5nCisJKiB0ZXN0VGhyZWFkcy5jOiBjb25kaXRpb25hbGx5IGV4Y2x1ZGVkIHVuaXN0ZC5oCisJKiB0ZXN0VGhyYWRzV2luMzIuYzogYnJva2Ugb3ZlcmxvbmcgbGluZXMKKwkqIGluY2x1ZGUvd2luMzJjb25maWcuaDogYWRhcHRlZCB0aHJlYWQtcmVsYXRlZCBtYWNyb3MgdG8gdGhlIG5ldworCSAgc2NoZW1lIGFuZCBmb3IgcHRocmVhZHMgb24gV2luZG93cworCSogd2luMzIvTWFrZWZpbGUubXN2YzogaW50cm9kdWNlZCBhIG1vcmUgZmxleGlibGUgdGhyZWFkIGJ1aWxkLCAKKwkgIGFkZGVkIHRlc3RUaHJlYWRzW1dpbjMyXS5jIHRvIHRoZSBidWlsZAorCSogd2luMzIvY29uZmlndXJlLmpzOiBpbnRyb2R1Y2VkIGEgbW9yZSBmbGV4aWJsZSB0aHJlYWQgY29uZmlnCisKKzIwMDItMTAtMzEgIEpvaG4gRmxlY2sgIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sLmh0bWwgKGFuZCwgYnkgaW1wbGljYXRpb24sIEZBUS5odG1sKQorCWFkZGVkIFVURi04IGNvbnZlcnNhaW9uIEZBUSBmcm9tIE1hcmN1cyBMYWJpYiBJc2thbmRlcgorCitUdWUgT2N0IDI5IDE4OjMyOjMzIENFVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiBjb25maWd1cmUuaW46IHJlbW92ZWQgeG1sd2luMzJ2ZXJzaW9uLmgKKwkqIGluY2x1ZGUvbGlieG1sL01ha2VmaWxlLmFtOiByZW1vdmVkIHhtbHdpbjMydmVyc2lvbi5oCisKK01vbiBPY3QgMjggMTQ6MDE6MjkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBCcmlhbiBTdGFmZm9yZCB0byBmaXggYSBidWcKKwkgIGluIHhtbFJlY29uY2lsaWF0ZU5zKCkKKworTW9uIE9jdCAyOCAxMzo1MTo1NSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogYXBwbGllZCBwYXRjaCBmcm9tIENocmlzdGlhbiBHbGFobiB0byBhbGxvdworCSAgeG1sTmV3Q2hpbGQoKSBvbiBkb2N1bWVudCBmcmFnbWVudCBub2RlcworCitTYXQgT2N0IDI2IDE1OjI3OjAwIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBDaHJpc3RpYW4gR2xhaG4gZm91bmQgYSBwcm9ibGVtIHdpdGggYSByZWNlbnQKKwkgIHBhdGNoIHRvIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIoKQorCSogeG1sc2NoZW1hcy5jOiBDaGFybGVzIEJvemVtYW4gZml4ZWQgc29tZSBTY2hlbWFzIHZhbGlkYXRpb24KKwkgIHByb2JsZW1zCisJKiByZXN1bHQvc2NoZW1hcy9lbGVtKiByZXN1bHQvc2NoZW1hcy9zZXEqIHRlc3Qvc2NoZW1hcy5lbGVtKgorCSAgdGVzdC9zY2hlbWFzL3NlcSo6IGFkZGVkIHRoZSB0ZXN0IGNhc2VzIGZyb20gQ2hhcmxlcworCitXZWQgT2N0IDIzIDE2OjQyOjI5IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIGNvbmZpZy5oLmluIGxpYnhtbC5zcGVjLmluIGRvYy9NYWtlZmlsZS5hbToKKwkgIHNlcmlvdXMgY2xlYW51cCBvZiB0aGUgc3BlYyBmaWxlIGFuZCBhc3NvY2lhdGVkIGNoYW5nZXMKKwkgIGluIHRoZSBNYWtlZmlsZXMuCisJKiB2YWxpZC5jOiB0cnkgdG8gcmVtb3ZlIHNvbWUgd2FybmluZ3Mgb24geDg2XzY0CisKK1dlZCBPY3QgMjMgMTA6NTM6NDIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9NYWtlZmlsZS5hbTogYWRkZWQgd2luc29ja2NvbXBhdC5oIHRvIEVYVFJBX0RJU1QgdG8KKwkgIGZpeCBidWcgIzk2NTg2CisKK1R1ZSBPY3QgMjIgMjE6MTM6MDYgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jOiBNaWtoYWlsIFNvZ3JpbmUgcG9pbnRlZCBvdXQgYSBidWcgaW4gSFRNTAorCSAgcGFyc2luZywgYXBwbGllZCBoaXMgcGF0Y2gKKwkqIHJlc3VsdC9IVE1ML2F0dHJlbnRzLmh0bWwgcmVzdWx0L0hUTUwvYXR0cmVudHMuaHRtbC5lcnIKKwkgIHJlc3VsdC9IVE1ML2F0dHJlbnRzLmh0bWwuc2F4IHRlc3QvSFRNTC9hdHRyZW50cy5odG1sOgorCSAgYWRkZWQgdGhlIHRlc3QgYW5kIHJlc3VsdCBjYXNlIHByb3ZpZGVkIGJ5IE1pa2hhaWwgU29ncmluZQorCitUdWUgT2N0IDIyIDE5OjMzOjIwIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZtcy9idWlsZF9saWJ4bWwuY29tIHZtcy9jb25maWcudm1zIHZtcy9yZWFkbWUudm1zCisJICBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaCBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaAorCSAgaW5jbHVkZS9saWJ4bWwvdHJlZS5oIGluY2x1ZGUvbGlieG1sL3htbElPLmgKKwkgIEhUTUxwYXJzZXIuYyBjYXRhbG9nLmMgZGVidWdYTUwuYyBwYXJzZXIuYyBwYXJzZXJJbnRlcm5hbHMuYworCSAgdHJlZS5jIHRyaW9kZWYuaCB0cmlvbmFuLmMgdXJpLmMgeG1sSU8uYyB4cGF0aC5jOgorCSAgQXBwbGllZCB0aGUgVk1TIHVwZGF0ZSBwYXRjaCBmcm9tIENyYWlnIEEuIEJlcnJ5CisJKiBkb2MvKi5odG1sOiB1cGRhdGUKKworVHVlIE9jdCAyMiAxNjoyNzozMSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9lbmNvZGluZy5oIGVuY29kaW5nLmM6IG1hZGUgeG1sR2V0VVRGOENoYXIgcHVibGljCisKK1R1ZSBPY3QgMjIgMTY6MjU6MTggQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYzogYWRkaW5nIGEgZ3JlcCBjb21tYW5kIHRvIC0tc2hlbGwgaW4geG1sbGludAorCSAgZm9yIFQuVi4gUmFtYW4KKworVHVlIE9jdCAyMiAxNjoyMzo1NyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxjYXRhbG9nLmM6IHRyaWVkIHRvIGZpeCBzb21lIG9mIHRoZSBwcm9ibGVtIHdpdGggLS1zZ21sCisKK01vbiBPY3QgMjEgMDk6NTc6MTAgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHRyaWVkIHRvIGZpeCBidWcgIzkxNTAwIHdoZXJlIGRvYy0+Y2hpbGRyZW4gbWF5CisJICBiZSBvdmVycmlkZW4gYnkgYSBjYWxsIHRvIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSgpCisKK01vbiBPY3QgMjEgMDk6MDQ6MzIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2F0YWxvZy5jOiB0cmllZCB0byBmaXggYnVnICM5MDk0NSB3LnIudC4gcGFyc2luZyBvZiBzeXN0ZW0KKwkgIGlkZW50aWZpZXJzIGluIFNHTUwgY2F0YWxvZ3MgY29udGFpbmluZyAnJicKKworU3VuIE9jdCAyMCAyMzozMTo0NyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vdHlwZXMuYzogZml4ZWQgYnVncyB3aGVuIHBhc3NpbmcgcmVzdWx0IHZhbHVlIHRyZWUKKwkgIHRvIFB5dGhvbiBmdW5jdGlvbnMuCisKK0ZyaSBPY3QgMTggMTM6MTg6NTMgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBwcmVwYXJpbmcgdGhlIHJlbGVhc2Ugb2YgMi40LjI2CisJKiBkb2MvKjogdXBkYXRlZCBhbmQgcmVidWlsdCB0aGUgZG9jdW1lbnRhdGlvbgorCitXZWQgT2N0IDE2IDIwOjAxOjQ2IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhIFhNTCBOYW1lc3BhY2UgY29tcGxpYW5jZSBidWcgcmVwb3J0ZWQgYnkKKwkgIEFsZXhhbmRlciBHcmltYWxvdnNreQorCitXZWQgT2N0IDE2IDE3OjE4OjQyIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmM6IGZpeGVkIHNlcmlhbGl6YXRpb24gb2Ygc2NyaXB0IGFuZCBzdHlsZSB3aGVuCisJICB0aGV5IGFyZSBub3QgbG93ZXJjYXNlIChpLmUuIGFkZGVkIHVzaW5nIHRoZSBBUEkgdG8gdGhlIHRyZWUpLgorCitXZWQgT2N0IDE2IDE2OjMxOjA1IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IG1ha2UgeG1sVmFsaWRhdGVEb2N1bWVudCBlbWl0IGEgd2FybmluZyBtc2cgaWYgdGhlcmUKKwkgIGlzIG5vIERURCwgcG9pbnRlZCBieSBDaHJpc3RpYW4gR2xhaG4KKworV2VkIE9jdCAxNiAxNjowNTozOCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmM6IGZpeGVkIHRoZSB2YWxpZGF0aW9uIG9mIHNlcXVlbmNlcworCSAgY29udGVudCBtb2RlbCB3aGVuIHNvbWUgb2YgdGhlIGJsb2NrcyBoYXZlIG1pbiBvciBtYXgsIGFuZCBhIGNvdXBsZQorCSAgb2YgYnVncyBmb3VuZCBpbiB0aGUgcHJvY2Vzcy4KKwkqIHJlc3VsdC9zY2hlbWFzL2xpc3QwKiB0ZXN0L3NjaGVtYXMvbGlzdDAqOiBhZGRlZCBzb21lIHNwZWNpZmljCisJICByZWdyZXNzaW9uIHRlc3RzCisKK1R1ZSBPY3QgMTUgMTI6NDE6MDEgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogUkVBRE1FOiB1cGRhdGVkIHRoZSBjb250YWN0IGluZm9ybWF0aW9ucworCitUdWUgT2N0IDE1IDEwOjM1OjU3IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiB1c2UgdGVzdCAtZiBpbnN0ZWFkIG9mIHRlc3QgLWUgc2luY2UgU29sYXJpcyAvYmluL3NoCisJICBtaXNzZXMgaXQsIHJlcG9ydGVkIGJ5IFBldGVyIEJyYXkuCisKK01vbiBPY3QgMTQgMTc6Mzc6MzIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBpbnZlc3RpZ2F0aW5nIHhtbE5vZGVHZXRDb250ZW50KCkgb24gbmFtZXNwYWNlIG5vZGVzCisJICBhbmQgcmVtb3ZlZCBhIGZldyB3YXJuaW5ncworCitNb24gT2N0IDE0IDEzOjEyOjU1IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBDaHJpc3RpYW4gR2xhaG4gZm91bmQgYSBzbWFsbCBidWcgaW4gdGhlIHB1c2ggcGFyc2VyLgorCSogeG1sSU8uYyBpbmNsdWRlL2xpYnhtbC94bWxJTy5oOiBjbGVhbmVkIHVwIGFuZCBtYWRlIHhtbENoZWNrRmlsZW5hbWUKKwkgIHB1YmxpYworCitXZWQgT2N0ICA5IDIzOjExOjAyIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6IGFkZGVkCisJICB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0IHRvIHBhcnNlIGEgc2NoZW1hcyBmcm9tIGEgbWVtb3J5IGFyZWEKKwkqIHRlc3RTY2hlbWFzLmM6IGFkZGVkIC0tbWVtb3J5IHRvIHRlc3QgdGhlIG5ldyBpbnRlcmZhY2UKKworV2VkIE9jdCAgOSAxNjoyMjo1NCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvaW5kZXgucHkgZG9jL3NlYXJjaC5waHA6IGludGVncmF0ZWQgdGhlIFhTTFQgaW5kZXhpbmcsCisJICBhIGZldyBmaXhlZCBpbiB0aGUgaW5kZXhlciwgYWRkZWQgYSBzY29wZSBzZWxlY3Rpb24gYXQgdGhlCisJICBzZWFyY2ggbGV2ZWwuCisKK1dlZCBPY3QgIDkgMTI6MTg6MzcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogSm9lIE1hcmN1cyBDbGFya2UgcmVwb3J0ZWQgYSBzZWdmYXVsdCBvbiBGQnNkIAorCSAgdGhpcyB3YXMgZHVlIHRvIHVuaW5pdGlhbGl6ZWQgcGFydHMgb2YgdGhlIHZhbGlkYXRpb24gY29udGV4dAorCitUdWUgT2N0ICA4IDIzOjI0OjIwIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRlYnVnWE1MLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBNYXJrIFZha29jIGV4Y2VwdCB0aGUgQVBJCisJICBjaGFuZ2UsIHByZXNlcnZlZCBpdC4KKwkqIGRvYy8qOiB1cGRhdGVkIHRoZSBkb2NzIHRvIHBvaW50IHRvIHRoZSBzZWFyY2ggZW5naW5lIGZvcgorCSAgaW5mb3JtYXRpb24gbG9va3VwIG9yIGJlZm9yZSBidWcvaGVscCByZXBvcnRzLgorCitUdWUgT2N0ICA4IDE4OjUzOjMxIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9pbmRleC5weSBkb2Mvc2VhcmNoLnBocDogYWRkZWQgbWFpbGluZy1saXN0IGFyY2hpdmVzCisJICBpbmRleGluZyBhbmQgbG9va3VwCisKK1R1ZSBPY3QgIDggMTA6MjU6MDcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBwYXRjaCBmcm9tIE1hcmsgVmFrb2MgdG8gZml4IHhtbE5vZGVHZXRQYXRoKCkKKworTW9uIE9jdCAgNyAxMzoxMjowMyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvaW5kZXgucHk6IGltcHJvdmVkIEhUTUwgaW5kZXhpbmcKKwkqIGRvYy9zZWFyY2gucGhwOiBtYWtlIHRoZSBxdWVyaWVzIGFsc28gbG9va3VwIHRoZSBIVE1MIGJhc2VkIGluZGV4ZXMKKworU3VuIE9jdCAgNiAyMzo1MDoyOSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvaW5kZXgucHk6IGFkZGVkIEhUTUwgcGFnZSBpbmRleGluZyAKKworRnJpIE9jdCAgNCAxNTozMzo1NSBDRVNUIDIwMDIgSWdvciBabGF0a292aWMgPGlnb3JAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIHhtbElPLmM6IGV4dGVuZGVkIFdpbmRvd3MgcGF0aCBub3JtYWxpc2F0aW9uIHRvIGZpeCB0aGUgYmFzZQorCSAgcHJvYmxlbSBpbiBsaWJ4c2x0LgorCSogY2F0YWxvZy5jOiBmaXhlZCBsaXN0IGhhbmRsaW5nIGluIFhNTF9DQVRBTE9HX0ZJTEVTCisKK0ZyaSBPY3QgIDQgMTM6NDM6MDIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogdHlwby9idWcgZm91bmQgYnkgQ2hyaXN0aWFuIEdsYWhuCisKK1N1biBTZXAgMjkgMTk6NDQ6MTAgQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiB4bWxJTy5jOiBhcHBsaWVkIFdpbmRvd3MgQ0UgcGF0Y2ggZnJvbSBKYXZpZXIuCisJKiB3aW4zMi93aW5jZTogbmV3IGRpcmVjdG9yeSwgY29udGFpbnMgc3VwcG9ydCBmb3IgdGhlIFBvY2tldFBDCisJICB3aXRoIFdpbmRvd3MgQ0UgZnJvbSBKYXZpZXIuCisJKiBpbmNsdWRlL3dpbjMyY29uZmlnLmg6IHJlb3JnYW5pc2VkLCByZW1vdmVkIGR1cGxpY2F0ZSAKKwkgIGRlZmluaXRpb25zIGFuZCBhcHBsaWVkIFdpbkNFIHBhdGNoIGZyb20gSmF2aWVyLgorCSogaW5jbHVkZS93c29ja2NvbXBhdC5oOiBuZXcgZmlsZSwgbm93IGNvbnRhaW5zIFdpblNvY2sKKwkgIGNvbXBhdGliaWxpdHkgbWFjcm9zLgorCSogd2luMzIvTWFrZWZpbGUubXN2YzogaW50cm9kdWNlZCBkb3VibGUtcnVuIGNvbXBpbGF0aW9uLgorCitUaHUgU2VwIDI2IDE5OjQ4OjA2IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaDogcHJlcGFyaW5nIHJlbGVhc2UKKwkgIG9mIDIuNC4yNQorCSogZG9jLyo6IHVwZGF0ZWQgYW5kIHJlZ2VuZXJhdGVkIHRlaCBkb2NzIGFuZCB3ZWIgcGFnZXMuCisKK1RodSBTZXAgMjYgMTc6MzM6NDYgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmMgdmFsaWQuYyBpbmNsdWRlL2xpYnhtbC92YWxpZC5oOiBmaXhlZCBidWcgIzkyNTE4IHZhbGlkYXRpb24KKwkgIGVycm9yIHdlcmUgbm90IGNvdmVyaW5nIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMuCisJKiByZXN1bHQvdmFsaWQvZGlhLnhtbCB0ZXN0L3ZhbGlkL2RpYS54bWw6IHRoZSB0ZXN0IHdhc24ndCB2YWxpZCwKKwkgIGl0IHdhcyBtaXNzaW5nIHRoZSBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gZm9yIHRoZSBuYW1lc3BhY2UKKwkqIHJlc3VsdC9WQy9OUzM6IHRoZSBmaXggbm93IHJlcG9ydCBicmVha2FnZXMgaW4gdGhhdCB0ZXN0CisKK1RodSBTZXAgMjYgMTQ6Mzk6MDcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHRyZWUuYzogZml4aW5nIGJ1ZyAjOTQyNDEgb24gSFRNTCBib29sZWFuIGF0dHJpYnV0ZXMKKworVGh1IFNlcCAyNiAxNDoyNTozMyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvKjogYWRkZWQgdGhlIDMgbmV3IG1vZHVsZXMgeG1scmVnZXhwIHhtbGF1dG9tYXRhIGFuZCB4bWx1bmljb2RlCisJICBhbmQgcmVnZW5lcmF0ZWQgdGhlIGRvY3MgYW5kIHdlYiBzaXRlCisKK1RodSBTZXAgMjYgMTE6NDU6NDIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYyB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMgeHBhdGguYzogbWFrZSBzdXJlCisJICBBVFRSSUJVVEVfVU5VU0VEIGlzIGFsd2F5cyBwdXQgYWZ0ZXIgdGhlIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiwKKwkgIG5vdCBiZWZvcmUKKworVGh1IFNlcCAyNiAxMTozMzoyOCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0OiBmaXhlZCBhIHN0dXBpZCBlcnJvcgorCSAgYnJlYWtpbmcgdGhlIHB5dGhvbiBBUEkKKworVGh1IFNlcCAyNiAwMDozMTo0NiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmlvLmMgdHJpby5oIHRyaW9kZWYuaCB0cmlvbmFuLmMgdHJpb25hbi5oIHRyaW9wLmgKKwkgIHRyaW9zdHIuYyB0cmlvc3RyLmg6IGFwcGxpZWQgYSB0cmlvIHVwZGF0ZSBwYXRjaCBmcm9tIAorCSAgQmpvcm4gUmVlc2Ugd2hpY2ggc2hvdWxkIHdvcmsgd2l0aCBNaW5HVworCitUaHUgU2VwIDI2IDAwOjIxOjE4IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogaW1wcm92aW5nIHNvbWUgZG9jdW1lbnRhdGlvbiBjb21tZW50cworCSogeG1scmVnZXhwLmM6IGZvdW5kIGFuZCBmaXhlZCBhIG1lbSBsZWFrIHdpdGggcHl0aG9uIHJlZ3Jlc3Npb24gdGVzdHMKKwkqIGRvYy8qOiByZWJ1aWx0IHRoZSBkb2MgYW5kIHRoZSBBUEkgWE1MIGZpbGUgaW5jbHVkaW5nIHRoZSAKKwkgIHhtbHJlZ2V4cC5oIHhtbGF1dG9tYXRhLmggYW5kIHhtbHVuaWNvZGUuaCBoZWFkZXJzCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0IHB5dGhvbi9saWJ4bWxfd3JhcC5oCisJICBweXRob24vdHlwZXMuYzogYWRkZWQgYWNjZXNzIHRvIHRoZSBYTUwgU2NoZW1hcyByZWdleHBzIGZyb20KKwkgIHB5dGhvbgorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9yZWdleHAucHk6IGFkZGVkIGEgCisJICBzaW1wbGUgcmVnZXhwIGJpbmRpbmdzIHRlc3QKKworVHVlIFNlcCAyNCAwODoxMDo0OCBNRFQgMjAwMiBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sLmh0bWw6CisJICBmaXhpbmcgZnRwIGxpbmtzIC0gdGhhbmtzIHRvIFZpdGFseSBPc3RhbmluCisKK1R1ZSBTZXAgMjQgMTY6MDg6MTcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1scmVnZXhwLmM6IGZpeGVkIHRoZSBkYXRhIGNhbGxiYWNrIG9uIHRyYW5zaXRpb24gZnVuY3Rpb25hbGl0eQorCSAgd2hpY2ggd2FzIGJyb2tlbiB3aGVuIHVzaW5nIHRoZSBjb21wYWN0IGZvcm0KKwkqIHJlc3VsdC9zY2hlbWFzLyo6IHVwZGF0ZWQgdGhlIHJlc3VsdHMsIGxlc3MgdmVyYm9zZSwgYWxsIHRlc3RzCisJICBwYXNzIGxpa2UgYmVmb3JlCisJKiBET0NCcGFyc2VyLmMgdGVzdEF1dG9tYXRhLmMgdGVzdEMxNE4uYyB0ZXN0U2NoZW1hcy5jIHRlc3RUaHJlYWRzLmMKKwkgIHRlc3RYUGF0aC5jIHZhbGlkLmMgeGluY2x1ZGUuYyB4bWxsaW50LmMgeG1scmVnZXhwLmMgeG1sc2NoZW1hcy5jCisJICB4bWxzY2hlbWFzdHlwZXMuYyB4cGF0aC5jIHB5dGhvbi9saWJ4bWwuYzogcmVtb3ZlZCBhIGJ1bmNoIG9mCisJICBhbm5veWluZyB3YXJuaW5ncworCSogeHBhdGguYzogdHJ5IHRvIHByb3ZpZGUgYmV0dGVyIGVycm9yIHJlcG9ydCB3aGVuIHBvc3NpYmxlCisKK1NhdCBTZXAgMjEgMTQ6NTY6MzcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IGZpeGVkIGEgYnJlYWthZ2UgcmFpc2VkIGJ5IEphY29iCisKK0ZyaSBTZXAgMjAgMjA6MDg6MTggQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiBpbmNsdWRlL3dpbjMyY29uZmlnLmg6IGFkZGVkIEhBVkVfRVJSTk9fSCBkZWZpbml0aW9uIGZvciBwYXJ0cworCSAgd2hpY2ggZG9uJ3QgdXNlIHNvY2tldHMKKworRnJpIFNlcCAyMCAxODo0MDo1MCBDRVNUIDIwMDIgSWdvciBabGF0a292aWMgPGlnb3JAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIHdpbjMyL01ha2VmaWxlLm1zdmM6IGFwcGxpZWQgemxpYiBwYXRjaCBmcm9tIERhbmllbCBHZWhyaWdlcgorCSogd2luMzIvY29uZmlndXJlLmpzOiBhcHBsaWVkIHpsaWIgcGF0Y2ggZnJvbSBEYW5pZWwgR2VocmlnZXIKKworRnJpIFNlcCAyMCAxNTo0MDoxNCBDRVNUIDIwMDIgSWdvciBabGF0a292aWMgPGlnb3JAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIHdpbjMyL2NvbmZpZ3VyZS5qczogYXBwbGllZCB0aGUgcGF0Y2ggZnJvbSBNYXJrIFZha29jIGZvciAKKwkgIHJlZ2V4cCBzdXBwb3J0CisJKiB3aW4zMi9saWJ4bWwyLmRlZi5zcmM6IGFwcGxpZWQgdGhlIHBhdGNoIGZyb20gTWFyayBWYWtvYworCSAgZm9yIHJlZ2V4cCBzdXBwb3J0CisKK0ZyaSBTZXAgMjAgMTU6MzU6MzMgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGFzIHBvaW50ZWQgYnkgSWdvciBGbG9hdCBhbmQgRG91YmxlCisJICBwYXJzaW5nIGFpbid0IGZpbmlzaGVkIHlldAorCitGcmkgU2VwIDIwIDE0OjAwOjE2IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbjogdHJ5aW5nIHRvIGZpeCAjODg0MTIgYnkgYnlwYXNzaW5nCisJICBhbGwgdGhlIHB5dGhvbiBzdWJkaXIgaWYgcHl0aG9uIGFpbid0IGRldGVjdGVkCisKK1RodSBTZXAgMTkgMjE6NDY6NTMgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbjoKKwkgIG1hZGUgY29uZmlndXJpbmcgd2l0aCByZWdleHBzL2F1dG9tYXRhL3VuaWNvZGUgdGhlIGRlZmF1bHQKKwkgIGJ1dCB3aXRob3V0IHNjaGVtYXMgQVRNCisJKiB0ZXN0UmVnZXhwLmMgdmFsaWQuYyB4bWxyZWdleHAuYyBpbmNsdWRlL2xpYnhtbC94bWxyZWdleHAuaDoKKwkgIGZpeGVkIHRoZSByZWdleHAgYmFzZWQgRFREIHZhbGlkYXRpb24gcGVyZm9ybWFuY2UgYW5kIG1lbW9yeQorCSAgcHJvYmxlbSBieSBzd2l0Y2hpbmcgdG8gYSBjb21wYWN0IGZvcm0gZm9yIGRldGVybWluaXN0IHJlZ2V4cHMKKwkgIGFuZCBkZXRlY3RpbmcgdGhlIGRldGVybWluaXNtIHByb3BlcnR5IGluIHRoZSBwcm9jZXNzLiBTZWVtcworCSAgYXMgZmFzdCBhcyB0aGUgb2xkIERURCB2YWxpZGF0aW9uIHNwZWNpZmljIGVuZ2luZSA6LSkgZGVzcGl0ZQorCSAgdGhlIHJlZ2V4cCBidWlsdCBhbmQgY29tcGFjdGlvbiBwcm9jZXNzLgorCitXZWQgU2VwIDE4IDE4OjI3OjI2IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGRldGVybWluaXNtIGlzIGRlYnVnZ2VkLCBuZXcgRFREIGNoZWNraW5nIGNvZGUgbm93IHdvcmtzCisJICBidXQgeG1sRkFDb21wdXRlc0RldGVybWluaXNtIHRha2VzIGZhciB0b28gbXVjaCBDUFUgYW5kIHRoZSB3aG9sZQorCSAgc2V0IHVzdWVzIHRvbyBtdWNoIG1lbW9yeSB0byBiZSByZWFsbHkgdXNhYmxlIGFzLWlzCisKK1dlZCBTZXAgMTggMDA6NTQ6MzAgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBmaXhlZCBhbm90aGVyIHN0dXBpZCBidWcgaW4geG1sR2V0Tm9kZVBhdGgoKQorCSogeG1sbGludC5jOiAtLXZlcnNpb24gbm93IHJlcG9ydCB0aGUgb3B0aW9ucyBjb21waWxlZCBpbgorCitUdWUgU2VwIDE3IDIzOjQ4OjA3IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogc21hbGwgY2xlYW51cAorCSogdmFsaWQuYyB4bWxyZWdleHAuYzogc3dpdGNoZWQgRFREIHZhbGlkYXRpb24gdG8gdXNlIG9ubHkgcmVnZXhwCisJICB3aGVuIGNvbmZpZ3VyZWQgd2l0aCB0aGVtLiBBIGJpdCBvZiBkZWJ1Z2dpbmcgYXJvdW5kIHRoZSBkZXRlcm1pbmlzbQorCSAgY2hlY2tzIGlzIHN0aWxsIG5lZWRlZAorCitUdWUgU2VwIDE3IDIxOjIyOjI1IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9saWJ4bWxfd3JhcC5oOiBzdHVwaWQgYnVnIGZvdW5kIGJ5IG1hdHRhbUBuZXRjb3Vycmllci5jb20KKworVHVlIFNlcCAxNyAxOTo1ODoyNiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBzbWFsbCBwb3J0YWJpbGl0eSBnbGl0Y2ggZml4ZWQuCisKK01vbiBTZXAgMTcgMTI6Mzg6MDggQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IGluY29tcGxldGUgc3RlcHMgZm9yIHJlYWwvZG91YmxlIHN1cHBvcnQKKwkqIHRlc3RBdXRvbWF0YS5jIGluY2x1ZGUvbGlieG1sL3htbGF1dG9tYXRhLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbHJlZ2V4cC5oOiBhdm9pZGluZyBhIGNvbXBpbGF0aW9uIHByb2JsZW0KKwkqIHZhbGlkLmMgaW5jbHVkZS9saWJ4bWwvdmFsaWQuaDogc3RhcnRpbmcgdGhlIHdvcmsgdG93YXJkIHVzaW5nCisJICB0aGUgcmVnZXhwcyBmb3IgYWN0dWFsIERURCB2YWxpZGF0aW9uCisKK0ZyaSBTZXAgMTMgMTY6NDY6MTQgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaGFzaC5jOiBjb3NtZXRpYyBjbGVhbnVwCisJKiB2YWxpZC5jIGluY2x1ZGUvbGlieG1sL3RyZWUuaCBpbmNsdWRlL2xpYnhtbC92YWxpZC5oOiBzdGFydGVkIAorCSAgaW50ZWdyYXRpbmcgYSBEVEQgdmFsaWRhdGlvbiBsYXllciBiYXNlZCBvbiB0aGUgcmVnZXhwcworCitUaHUgU2VwIDEyIDE4OjAxOjI5IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jIHhtbHNjaGVtYXMuYzogZml4ZWQgYSBidWcgcmVwb3J0ZWQgYnkgSmVmZiBHb2ZmLAorCSAgdGhlIGRldGVybWluaXNtIHdhcyB0ZXN0ZWQgYmVmb3JlIGVsaW1pbmF0aW5nIHRoZSBlcHNpbG9uCisJICB0cmFuc2l0aW9ucyA6LSgKKworVGh1IFNlcCAxMiAxNjo1Nzo0NSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sLnB5CisJICBweXRob24vbGlieG1sMi1weXRob24tYXBpLnhtbCBweXRob24vbGlieG1sMmNsYXNzLnR4dAorCSAgcHl0aG9uL2xpYnhtbF93cmFwLmggcHl0aG9uL3R5cGVzLmM6IHVwZGF0ZWQgdGhlIHB5dGhvbgorCSAgYmluZGluZ3MsIGFkZGVkIGNvZGUgZm9yIGVhc2llciBGaWxlIEkvTywgYW5kIHRoZSBhYmlsaXR5IHRvCisJICBkZWZpbmUgYSByZXNvbHZlciBmcm9tIFB5dGhvbiBmaXhpbmcgYnVnICM5MTYzNQorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9pbmJ1Zi5weQorCSAgcHl0aG9uL3Rlc3RzL291dGJ1Zi5weSBweXRob24vdGVzdHMvcHVzaFNBWGh0bWwucHkKKwkgIHB5dGhvbi90ZXN0cy9yZXNvbHZlci5weSBweXRob24vdGVzdHMvc2VyaWFsaXplLnB5OiB1cGRhdGVkCisJICBhbmQgYXVnbWVudGVkIHRoZSBzZXQgb2YgUHl0aG9uIHRlc3RzLgorCitUdWUgU2VwIDEwIDIxOjA1OjI4IENFU1QgMjAwMiBJZ29yIFpsYXRrb3ZpYyA8aWdvckBzdHVkLmZoLWZyYW5rZnVydC5kZT4KKworCSogd2luMzIvY29uZmlndXJlLmpzOiBhZGRlZCBtb3JlIHJlYWRtZSBpbmZvIGZvciB0aGUgYmluYXJ5CisJICBwYWNrYWdlLgorCitUdWUgU2VwIDEwIDE0OjE1OjE4IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGZpeGVkIGEgc3R1cGlkIG91dCBvZiBib3VuZCBhcnJheSBlcnJvcgorCitUdWUgU2VwIDEwIDEzOjA5OjE0IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbElPLmggeG1sSU8uYyBwYXJzZXIuYyBIVE1McGFyc2VyLmMgRE9DQnBhcnNlci5jOgorCSAgbWVzc2luZyBhcm91bmQgd2l0aCBzdXBwb3J0IGZvciBXaW5kb3dzIHBhdGgsIGNsZWFudXBzLAorCSAgdHJ5aW5nIHRvIGlkZW50aWZ5IGFuZCBmaXggdGhlIHZhcmlvdXMgY29kZSBwYXRoIHRvIHRoZQorCSAgZmlsZW5hbWUgYWNjZXNzLiBBZGRlZCB4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCgpCisKK1RodSBTZXAgIDUgMTY6MTk6MTggQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZXJyb3IuYyB2YWxpZC5jOiB3b3JraW5nIG9uIGJldHRlciBlcnJvciByZXBvcnRpbmcgb2YgdmFsaWRpdHkKKwkgIGVycm9ycywgZXNwZWNpYWxseSBwcm92aWRpbmcgYW4gYWNjdXJhdGUgY29udGV4dC4KKwkqIHJlc3VsdC92YWxpZC94bGluay54bWwuZXJyIHJlc3VsdC92YWxpZC9yc3MueG1sLmVycjogYmV0dGVyCisJICBlcnJvciByZXBvcnRzIGluIHRob3NlIGNhc2VzLgorCitUaHUgU2VwICA1IDEzOjI5OjQ3IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIERPQ0JwYXJzZXIuYyBIVE1McGFyc2VyLmMgYzE0bi5jIGVudGl0aWVzLmMgbGlzdC5jCisJICBwYXJzZXIuYyBwYXJzZXJJbnRlcm5hbHMuYyB4bWxJTy5jOiBnZXQgcmlkIG9mIGFsbCB0aGUgCisJICBwZXJyb3IoKSBjYWxscyBtYWRlIGluIHRoZSBsaWJyYXJ5IGV4ZWN1dGlvbiBwYXRocy4gVGhpcworCSAgc2hvdWxkIGZpeCBib3RoICM5MjA1OSBhbmQgIzkyMzg1CisKK1RodSBTZXAgIDUgMTM6MTM6MTcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBtZW1vcnkgbGVhayByZXBvcnRpbmcgd2FzIGJyb2tlbiBhZnRlciBhIGNoYW5nZQorCSAgb2YgdGhlIHByZXByb2Nlc3NvciBzeW1ib2wgdXNlZCB0byBhY3RpdmF0ZSBpdC4KKworVGh1IFNlcCAgNSAxMzoxMDo1NyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IHRyeSB0byBtYWtlIHRoZSBjb3B5IGZ1bmN0aW9uIHdvcmsgZm9yIG5vZGUgb2YKKwkgIHR5cGUgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERSwgdGhleSBhcmUgb25seSBjcmVhdGVkIGJ5IHRoZQorCSAgRE9NIGxheWVycyB0aG91Z2gsIG5vdCBsaWJ4bWwyIGl0c2VsZi4KKworVGh1IFNlcCAgNSAxMjo1NzozOCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2YWxpZC5jOiB0cnkgdG8gcHJvdmlkZSBmaWxlIGFuZCBsaW5lIGluZm9ybWF0aW9ucywgbm90IGFsbAorCSAgbWVzc2FnZXMgYXJlIGNvdmVyZWQsIGJ1dCBpdCdzIGEgKGdvb2QpIHN0YXJ0CisKK1RodSBTZXAgIDUgMTI6NDk6MzUgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYzogcmVpbXBsZW1lbnRlZCBhIGxhcmdlIHBhcnQgb2YgdGhlIFhJbmNsdWRlCisJICBwcm9jZXNzb3IsIHRyeWluZyB0byBtaW5pbWl6ZSByZXNvdXJjZXMgdXNlZCwgSmFtZXMgSGVuc3RyaWRnZQorCSAgcHJvdmlkZWQgYSBodWdlIHRlc3QgY2FzZSB3aGljaCB3YXMgZXhoaWJpdGluZyBzZXZlcmUgbWVtb3J5CisJICBjb25zdW1wdGlvbiBwcm9ibGVtcy4KKworVGh1IFNlcCAgNSAxMDowNzoxMyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vTWFrZWZpbGUuYW06IGFwcGxpZWQgcGF0Y2ggZnJvbSBDaHJpc3RvcGhlIE1lcmxldCB0bworCSAgcmVlc3RhYmxpc2ggREVTVERJUgorCitXZWQgU2VwICA0IDE0OjEzOjM0IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC5zcGVjLmluOiBmaXhlcyBsaWJhcnkgcGF0aCBmb3IgeDg2XzY0IEFNRAorCitUdWUgU2VwICAzIDIxOjE0OjE5IE1EVCAyMDAyIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy90dXRvcmlhbC9pbmNsdWRla2V5d29yZC5jCisJKiBkb2MvdHV0b3JpYWwveG1sdHV0b3JpYWwueG1sOgorCShwbHVzIHJlc3VsdGluZyBnZW5lcmF0ZWQgaHRtbCBmaWxlcykKKwlmaXhpbmcgb25lIHNwb3QgSSBtaXNzZWQgaW4gdGhlIHR1dG9yaWFsIHdoZXJlIEkgaGFkbid0IGZyZWVkCisJbWVtb3J5IHByb3Blcmx5CisKK1NhdCBBdWcgMzEgMTk6MzE6MTcgTURUIDIwMDIgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3R1dG9yaWFsL2luY2x1ZGVhZGRhdHRyaWJ1dGUuYworCSogZG9jL3R1dG9yaWFsL2luY2x1ZGVhZGRrZXl3b3JkLmMKKwkqIGRvYy90dXRvcmlhbC9pbmNsdWRlZ2V0YXR0cmlidXRlLmMKKwkqIGRvYy90dXRvcmlhbC9pbmNsdWRla2V5d29yZC5jCisJKiBkb2MvdHV0b3JpYWwveG1sdHV0b3JpYWwueG1sCisJKiBkb2MvdHV0b3JpYWwvKi5odG1sOgorCXVwZGF0ZSB0dXRvcmlhbCB0byBwcm9wZXJseSBmcmVlIG1lbW9yeSAodGhhbmtzIHRvIENocmlzdG9waGVyCisJUi4gSGFycmlzIGZvciBwb2ludGluZyBvdXQgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGRvbmUpCisJKiBkb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLyoucG5nOgorCWFkZGVkIGltYWdlIGZpbGVzIHNvIHRoZSBjYWxsb3V0cyBhcmUgZ3JhcGhpY2FsLCBtYWtpbmcgaXQKKwllYXNpZXIgdG8gcmVhZCAoIHVzZSAiLS1wYXJhbSBjYWxsb3V0LmdyYXBoaWNzIDEiIHRvIGdlbmVyYXRlCisJaHRtbCB3aXRoIGdyYXBoaWNhbCBjYWxsb3V0cykKKworV2VkIEF1ZyAyOCAxMzo0NDo1NCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIGRvYy9MaWJ4bWwyLUxvZ28tOTB4MzQuZ2lmOgorCSAgbmljZSBsb2dvcyBnZW5lcmF0ZWQgYnkgTWFyYyBMaXlhbmFnZQorCSogZG9jL3NpdGUueHNsICouaHRtbDogY2hhbmdlZCB0aGUgc3R5bGVzaGVldCB0byBzaG93IHRoZSBuZXcKKwkgIGxvZ28gYW5kIHJlZ2VuZXJhdGVkIHRoZSBwYWdlcworCitTdW4gQXVnIDI1IDE2OjM4OjA1IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGhhbmRsZSBXaW5kb3dzIHNlcGVjaWZpYyBmaWxlOi8vbG9jYWxob3N0LyBzZW1hbnRpYyAuLi4KKworVGh1IEF1ZyAyMiAyMjowMzoxOSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBwb3NzaWJsZSBtZW0gbGVhayBwYXRjaCBmcm9tIEphc29uIEFkYW1zCisKK1RodSBBdWcgMjIgMTc6Mjc6MzAgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogaW50ZWdyYXRlZCB4Zjplc2NhcGUtdXJpKCkgZnJvbSBXZXNsZXkgVGVycHN0cmEKKwkgIGluIHRoZSBYUXVlcnkgbmFtZXNwYWNlCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyAyLjQuMjQKKwkqIGRvYy8qLmh0bWw6IHVwZGF0ZWQgdGhlIHdlYiBwYWdlcworCitUaHUgQXVnIDIyIDE2OjE5OjQyIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHk6IGNsb3NpbmcgYnVnICM4NTI1OCBieSBnZW5lcmF0aW5nIGNvbmRpdGlvbmFsCisJICBjb21waWxlIGNoZWNrIHRvIGF2b2lkIGxpbmtpbmcgdG8gcm91dGluZXMgbm90IGNvbmZpZ3VyZWQgaW4uCisKKzIwMDItMDgtMjIgIEhhdm9jIFBlbm5pbmd0b24gIDxocEBwb2JveC5jb20+CisKKwkqIGF1dG9nZW4uc2g6IHVwZGF0ZSBlcnJvciBtZXNzYWdlIGZvciBtaXNzaW5nIGF1dG9tYWtlCisKK1RodSBBdWcgMjIgMTE6NDU6NTAgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL01ha2VmaWxlLmFtOiB0eXBvIGluIHRhcmdldCBuYW1lIHJlc3VsdGVkIGluIGxpYnhtbDIucHkKKwkgIHRvIG5vdCBiZSByZWJ1aWx0LiBmaXhlZCBERVNURElSIHNpbWlsYXJ5IHRvIHRoZSBsaWJ4c2x0IG9uZS4KKworVGh1IEF1ZyAyMiAwOToxNTowMCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi93aW4zMi9NYWtlZmlsZS5taW5ndzogdXBkYXRlZCB3aXRoIHZlcnNpb24gZnJvbSAKKwkgIEVsaXphYmV0aCBCYXJoYW0gYXQgaHR0cDovL3NvZ2d5dHJvdXNlcnMubmV0L3JlcG9zaXRvcnkvCisKK1R1ZSBBdWcgMjAgMTY6NDA6NDggQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiB3aW4zMi9NYWtlZmlsZS5tc3ZjOiBhZGRlZCB0aGUgcHJlZml4IGxvY2F0aW9uIHRvIHRoZSBpbmNsdWRlCisJYW5kIGxpYiBzZWFyY2ggcGF0aC4KKworMjAwMi0wOC0xOCAgSGF2b2MgUGVubmluZ3RvbiAgPGhwQHBvYm94LmNvbT4KKworCSogYXV0b2dlbi5zaDogaGFyZGNvZGUgYWNsb2NhbC0xLjQvYXV0b21ha2UtMS40IHNvIHRoYXQgdXNlcnMgd2l0aAorCWJvdGggYXV0b21ha2UgMS42IGFuZCAxLjQgaW5zdGFsbGVkIGdldCB0aGUgcmlnaHQgYXV0b21ha2UuIE1lYW5zCisJY29tcGlsYXRpb24gZnJvbSBDVlMgd2lsbCBub3cgcmVxdWlyZSB0aGUgbGF0ZXN0IGF1dG9tYWtlIDEuNAorCXJlbGVhc2UsIG9yIG1hbnVhbGx5IGNyZWF0aW5nIHN5bWxpbmtzIGNhbGxlZCAiYXV0b21ha2UtMS40IiBhbmQKKwkiYWNsb2NhbC0xLjQiCisKK1dlZCBBdWcgMTQgMTg6NTQ6MTkgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIHB5dGhvbi9NYWtlZmlsZS5hbTogbW9yZSBBTUQgNjQgaW5kdWNlZCBjaGFuZ2VzIGZyb20KKwkgIEZyZWRlcmljIENyb3phdAorCitXZWQgQXVnIDE0IDE2OjQzOjUzIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhpbmNsdWRlLmM6IG9vcHMgSSB3YXMgbWlzc2luZyB0aGUgeG1sOmJhc2UgZml4dXAgdG9vCisJKiByZXN1bHQvWEluY2x1ZGUvKi54bWw6IHRoaXMgYWRkcyB4bWw6YmFzZSBhdHRyaWJ1dGVzIHRvIG1vc3QKKwkgIHJlc3VsdHMgb2YgdGhlIHRlc3RzCisKK1dlZCBBdWcgMTQgMTY6MDU6MzcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeGluY2x1ZGUuYzogcXVpY2sgYnV0IGFwcGFyZW50bHkgd29ya2luZyBpbXBsZW1lbnRhdGlvbiBvZgorCSAgeGk6ZmFsbGJhY2ssIHNob3VsZCBjbG9zZSBidWcgIzg5Njg0CisJKiBNYWtlZmlsZS5hbSB0ZXN0L1hJbmNsdWRlL2RvY3MvZmFsbGJhY2sueG1sIAorCSAgcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrLnhtbDogYWRkZWQgYSBiYXNpYyB0ZXN0IGZvciBmYWxsYmFjaywKKwkgIGFuZCBydW4gd2l0aCAtLW5vd2FybmluZyB0byBhdm9pZCBhIHNwdXJpb3VzIHdhcm5pbmcKKwkqIGNvbmZpZ3VyZS5pbjogYXBwbGllZCBwYXRjaCBmcm9tIEZyZWRlcmljIENyb3phdCBmb3IgcHl0aG9uCisJICBiaW5kaW5ncyBvbiBBTUQgNjRiaXRzIG1hY2hpbmVzLgorCitXZWQgQXVnIDE0IDEwOjQ3OjQ2IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiB4bWxTQVhVc2VyUGFyc2VNZW1vcnkoKSByZWFsbHkgb3VnaHQgdG8gZmFpbCBpZgorCSAgdGhlIGNhbGxlciBkb24ndCBwYXNzIGEgU0FYIGNhbGxiYWNrIGJsb2NrLgorCitXZWQgQXVnIDE0IDEwOjI5OjAyIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogYXBwbGllZCB0aGUgc2FtZSBmaXggZm9yIHRoZSBYTUwtMS4wIG5hbWVzcGFjZSB0bworCSAgeG1sU2VhcmNoTnNCeUhyZWYoKSBhcyB3YXMgZG9uZSBmb3IgeG1sU2VhcmNoTnMoKQorCitNb24gQXVnIDEyIDE2OjUyOjA4IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC4zOiBzbWFsbCBjbGVhbnVwIG9mIHRoZSBtYW4gcGFnZQorCSogSFRNTHRyZWUuYzogZml4ZWQgYSBwb3RlbnRpYWwgcHJvYmxlbSByYWlzZWQgYnkgUGV0ciBWYW5kcm92ZWMKKwkgIHdoZW4gc2VyaWFsaXppbmcgSFJFRiBhdHRyaWJ1dGVzIGdlbmVyYXRlZCBieSBYU0xULgorCitNb24gQXVnIDEyIDE1OjI0OjA1IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgaW5jbHVkZS9saWJ4bWwvSFRNTHRyZWUuaDogaW50ZWdyYXRlZCBhIGNsZWFuZWQgdXAKKwkgIHZlcnNpb24gb2YgTWFyYyBMaXlhbmFnZScgcGF0Y2ggZm9yIGJvb2xlYW4gYXR0cmlidXRlcyBpbiBIVE1MCisJICBvdXRwdXQKKworTW9uIEF1ZyAxMiAxNDoxMTo1OSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vdGVzdHMvc2VyaWFsaXplLnB5OiBmaXhlZCB0aGUgdGVzdCByZXN1bHRzLCBpbmRlbnRpbmcKKwkgIGJlaGF2aW91ciBjaGFuZ2VkIHNsaWdodGx5CisKK1RodSBBdWcgIDggMTE6MDA6MjYgMjAwMiAgQWxla3NleSBTYW5pbiAgPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIHdpbjMyL2RzcC9saWJ4bWwyLmRlZi5zcmMgd2luMzIvbGlieG1sMi5kZWYuc3JjOiBhZGRlZAorCW5ldyBjMTRuIGZ1bmN0aW9uIHRvIFdpbmRvd3MgZGVmIGZpbGVzCisKK0ZyaSBBdWcgIDIgMTY6NDY6NDYgMjAwMiAgQWxla3NleSBTYW5pbiAgPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIGMxNG4uYzogZml4ZWQgYSBtZW1vcnkgbGVhayBpbiBjMTRuIGNvZGUKKworU2F0IEF1ZyAgMyAwMDoxNTowNiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogYWRkaW5nIGEgbmV3IEFQSSBmb3IgQ2hyaXN0aWFuCisJICBHbGFobjogeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcgorCSogdmFsaWQuYzogcGF0Y2ggZnJvbSBSaWNrIEpvbmVzIGZvciBzb21lIGdyYW1tYXIgY2xlYW51cCBpbgorCSAgdmFsaWRhdGlvbiBtZXNzYWdlcworCSogcmVzdWx0L1ZDLyogcmVzdWx0L3ZhbGlkLyo6IHRoaXMgc2xpZ2h0bHkgY2hhbmdlIHNvbWUgb2YgdGhlCisJICByZWdyZXNzaW9uIHRlc3RzIG91dHB1dHMKKworVGh1IEF1ZyAgMSAxNDo1MDoyOCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IHRyeWluZyB0byBmaXggYSBwcm9ibGVtIGluIG5hbWVzcGFjZWQgYXR0cmlidXRlIGhhbmRsaW5nCisJICByYWlzZWQgYnkgQ2hyaXN0aWFuIEdsYWhuCisKK1RodSBBdWcgIDEgMTI6MTc6MzAgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYyBpbmNsdWRlL2xpYnhtbC9lbmNvZGluZy5oOiBPcGVuaW5nIHRoZSBpbnRlcmZhY2UKKwkgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIgYXMgcmVxdWVzdGVkIGluICM4OTQxNQorCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vc2V0dXAucHkuaW46IGFwcGxpZWQgY2xlYW51cAorCSAgcGF0Y2hlcyBmcm9tIE1hcmMtQW5kcmUgTGVtYnVyZworCSogdHJlZS5jOiBmaXhpbmcgYnVnICM4OTMzMiBvbiBhIHNwZWNpZmljIGNhc2Ugb2YgbG9vc2luZyAKKwkgIHRoZSBYTUwtMS4wIG5hbWVzcGFjZSBvbiB4bWw6eHh4IGF0dHJpYnV0ZXMKKworV2VkIEp1bCAzMSAyMzoyNzo0MiAyMDAyICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogYzE0bi5jIGluY2x1ZGUvbGlieG1sL2MxNG4uaDogZml4ZWQgb25lIG1vcmUgYzE0biArIG5hbWVzcGFjZXMKKwljb3JuZXIgY2FzZSBmcm9tIG5ldyBNZXJsaW4ncyB0ZXN0IHN1aXRlIGFuZCBhZGRlZCBhIGNhbGxiYWNrCisJdGhhdCB3aWxsIGJlIHVzZWQgdG8gaW1wcm92ZSB4bWxzZWMgcGVyZm9ybWFuY2UKKworTW9uIEp1bCAyOSAxODoyMjowMCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jOiB0cnlpbmcgdG8gZml4IHRoZSA8c3R5bGU+IGVzY2FwaW5nIHByb2JsZW0gaW4KKwkgIEhUTUwgc2VyaWFsaXphdGlvbiBidWcgIzg5MzQyCisKK1RodSBKdWwgMjUgMDE6MzM6NDcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL3htbC5odG1sIGRvYy8qLmh0bWw6IGFwcGxpZWQgc3ludGF4IHBhdGNoIGZyb20gUmljayBKb25lcworCSAgYW5kIHJlYnVpbHQgdGhlIHdlYiBzaXRlLgorCitNb24gSnVsIDIyIDExOjA0OjQ4IFBEVCAyMDAyICBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IGFkZGVkIF9wcml2YXRlIG1lbWJlciB0byB4bWxOcyBzdHJ1Y3QKKworU3VuIEp1bCAyMSAxNzo0ODo0NyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGluZyBidWcgIzg0ODc2IGJhc2VkIG9uIHRoZSB4bWwgd29ya2luZworCSAgY29kZS4KKworU3VuIEp1bCAyMSAxOToxNTowMCBIS1QgMjAwMiBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogcHl0aG9uL01ha2VmaWxlLmFtOiBlbmhhbmNlZCB0byBmaXggYnVnIDcyMDEyIChlcnJvcnMKKwkgIHdoZW4gdXNpbmcgJy1qWCcgbWFrZSBwYXJhbWV0ZXIpCisKK0ZyaSBKdWwgMTkgMTY6MzU6MDAgSEtUIDIwMDIgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIHhwYXRoLmM6IHNtYWxsIGFkZGl0aW9uYWwgZW5oYW5jZW1lbnQgZm9yIGJvb2xlYW5zCisJICBjb21wYXJlZCB0byBub2Rlc2V0cworCitXZWQgSnVsIDE3IDE5OjQ4OjE0IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmM6IGNoYW5nZWQgdGhlIG9yZGVyIG9mIHRoZSBlbmNvZGluZyBkZWNsYXJhdGlvbgorCSAgYXR0cmlidXRlcyBpbiB0aGUgbWV0YSB0YWdzIGR1ZSB0byBhIGJ1ZyBpbiBJRS9NYWMKKworRnJpIEp1bCAxMiAwODo0NTowMCBIS1QgMjAwMiBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogZW5oYW5jZWQgaGFuZGxpbmcgb2YgYm9vbGVhbnMgKGVzcGVjaWFsbHkgJz0nCisJICBhbmQgJyE9JyBmb3Igbm9kZXNldHMpIC0gZml4ZXMgYnVnIDg1MjU2LiAgQWRkZWQgbmV3CisJICByb3V0aW5lIHhtbFhQYXRoTm90RXF1YWxWYWx1ZXMgZm9yIG1vcmUgcHJvcGVyIGhhbmRsaW5nCisJICBvZiAnIT0nIHdoZW4gbm9kZXNldHMgYXJlIGludm9sdmVkLgorCitUaHUgSnVsIDExIDIxOjQ1OjUyIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9NYWtlZmlsZS5hbTogZml4aW5nIFJlZCBIYXQgYnVnICM2ODYxNCBieSBhZGRpbmcgdGhlCisJICBkb2MveG1sY2F0YWxvZ19tYW4ueG1sIHRvIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uCisKK1dlZCBKdWwgMTAgMjE6MjY6MTMgQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiB3aW4zMi9NYWtlZmlsZS5tc3ZjOiBBZGRlZCBhIGNvcHkgKi5wZGIgdG8gaW5zdGFsbCwgZmV3IGhhdmUKKwkgIGFza2VkIGZvciB0aGlzLgorCitTYXQgSnVsICA2IDIxOjU1OjU5IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIDIuNC4yMworCSogZG9jLyo6IHJlYnVpbHQgdGhlIGRvY3MKKworU2F0IEp1bCAgNiAyMToxMToyMCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogZml4aW5nIGJ1ZyAjODQxNjkgYnkgZml4aW5nIHRoZQorCSAgY29tbWVudCBvZiB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCB0byBkZXNjcmliZSB0aGUgCisJICBlbmNvZGluZyBkZXRlY3Rpb24gcGFyYW1ldGVycyBiZXR0ZXIuCisKK1NhdCBKdWwgIDYgMTk6NDQ6NTYgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogZml4aW5nIGJ1ZyAjNzkzMzEgaW4gb25lIHBhdGggdGhlIGxvb2t1cCBmb3IKKwkgIElEIGF0dHJpYnV0ZXMgb24gYSBuYW1lc3BhY2VkIG5vZGUgd2Fzbid0IGhhbmRsZWQgY29ycmVjdGx5IDotXAorCitGcmkgSnVsICA1IDIwOjA3OjQzIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogdHJ5aW5nIHRvIGZpeCA4NzIzNSBhYm91dCBkaXNjYXJkZWQgd2hpdGUKKwkgIHNwYWNlcyBpbiB0aGUgSFRNTCBwYXJzZXIuCisJKiByZXN1bHQvSFRNTC8qOiB0aGlzIGNoYW5nZXMgdGhlIG91dHB1dCBvZiBhIG51bWJlciBvZiBIVE1MCisJICByZWdyZXNzaW9uIHRlc3RzCisKK01vbiBKdWwgIDEgMjM6MjM6NDEgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogYXBwbGllZCBwYXRjaCBmcm9tIFJpY2hhcmQgSmlua3MgZm9yIHRoZSBuYW1lc3BhY2UKKwkgIGF4aXMgKyBmaXhlZCBhIG1lbW9yeSBlcnJvci4KKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jOiBhcHBsaWVkIHBhdGNoZXMgZnJvbSBQZXRlciBKYWNvYmkKKwkgIHJlbW92aW5nIGN0eHQtPnRva2VuIGZvciBnb29kLgorCSogeG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jOiBmaXhlZCBhIGZldyBtZW1vcnkgbGVha3MKKwkgIHBvcHBlZCBvdXQgYnkgdGhlIHJlZ3Jlc3Npb24gdGVzdHMuCisJKiBNYWtlZmlsZS5hbTogcGF0Y2ggZm9yIHRocmVhZHMgbWFrZWZpbGUgZnJvbSBHYXJ5IFBlbm5pbmd0b24KKworRnJpIEp1biAyOCAxOTozODowMCBIS1QgMjAwMiBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogeHBhdGguYzogZW5oYW5jZWQgYmVoYXZpb3VyIG9mIHBvc2l0aW9uKCkgYWZ0ZXIgdXNhZ2Ugb2YKKwkgIGV4cHJlc3Npb25zIGludm9sdmluZyBwcmVjZWRpbmctc2libGluZyAoZXQgYWwpLgorCitUdWUgSnVuIDE4IDA5OjU4OjQ4IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGhhc2guYzogYXBwbGllZCBhIHBhdGNoIGZyb20gUGV0ZXIgSmFjb2JpIHRvIHNvbHZlIGEgcHJvYmxlbQorCSAgd2hlbiBjb21waWxpbmcgd2l0aCB0aGUgV2F0Y29tIEMgb24gV2luMzIgCisJKiByZXN1bHQvc2NoZW1hcy8qLmVycjogdGhlIGNoYW5nZSBvZiBoYXNoaW5nIGFsZ28gZ2VuZXJhdGVkCisJICBwZXJtdXRhdGlvbnMgaW4gdGhlIG91dHB1dAorCitNb24gSnVuIDE3IDE5OjAyOjQ5IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGhhc2guYzogYXBwbGllZCBwYXRjaCBmcm9tIFNhbmRlciBWZXNpayBpbXByb3ZpbmcgdGhlIHF1YWxpdHkgb2YKKwkgIHRoZSBoYXNoIGZ1bmN0aW9uLgorCisyMDAyLTA2LTE0ICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogRE9DQnBhcnNlci5jIEhUTUxwYXJzZXIuYyBkZWJ1Z1hNTC5jIGVuY29kaW5nLmMKKwluYW5vZnRwLmMgbmFub2h0dHAuYyBwYXJzZXIuYyB0cmVlLmMgdXJpLmMgeG1sSU8uYworCXhtbGxpbnQuYyB4cGF0aC5jOiByZXBsYWNlZCBzcHJpbnRmKCkgd2l0aCBzbnByaW50ZigpCisJdG8gcHJldmVudCBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cgKHRoZSBidWcgd2FzIHBvaW50ZWQKKwlvdXQgYnkgQW5qdSBQcmVtYWNoYW5kcmFuKSAKKworVGh1IEp1biAxMyAxNzozMDoyNSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogcmVtb3ZlZCBhbiB1bmluaXRpYWxpemVkIGRhdGEgZXJyb3IgcG9wcGVkIGJ5IHZhbGdyaW5kCisJICBvbiBQRSByZWZlcmVuY2VzCisKK1dlZCBKdW4gMTIgMjE6Mzg6NDYgTURUIDIwMDIgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbC5odG1sCisJYWRkaW5nIHR1dG9yaWFsIHJlZmVyZW5jZSB0byB0aGUgd2ViIHBhZ2UKKworV2VkIEp1biAxMiAyMToyNjowOCBNRFQgMjAwMiBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MvdHV0b3JpYWwveG1sdHV0b3JpYWwueG1sCisJKiBkb2MvdHV0b3JpYWwvYXIwMXMwNy5odG1sCisJKiBkb2MvdHV0b3JpYWwvYXBlLmh0bWwKKwkqIGRvYy90dXRvcmlhbC9pbmNsdWRlZ2V0YXR0cmlidXRlLmMKKwlhZGRpbmcgc2VjdGlvbiB0byB0dXRvcmlhbCBhYm91dCByZXRyaWV2aW5nIGFuIGF0dHJpYnV0ZQorCXZhbHVlCisKK1R1ZSBKdW4gMTEgMTI6MDc6MDQgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFwcGxpZWQgYSBjb3VwbGUgb2YgcGF0Y2hlcyBmcm9tIFBldGVyIEphY29iaSB0byBzdGFydAorCSAgdG8gZ2V0IHJpZCBvZiBjdHh0LT50b2tlbiwgd2l0aCBhIHBvc3NpYmxlIHNpZ25pZmljYW50IHNwZWVkCisJICBpbXByb3ZlbWVudCB0byBiZSBnYWluZWQgb25jZSBkb25lLiBCZXR0ZXIgY29tcGxpYW5jZSB3aXRoIFBFCisJICByZWZlcmVuY2VzIGNvbnN0cnVjdHMgaW4gRFREcyB0b28uCisJKiB0ZXN0L3ZhbGlkL3RbMC05XSogcmVzdWx0L3ZhbGlkL3RbMC05XSo6IGFkZGVkIGEgc2V0IG9mIHRlc3RzCisJICBmcm9tIFBldGVyIHRvbworCitUdWUgSnVuIDExIDA5OjI1OjEyIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBCYWJhayBWYWhlZGlwb3VyLUt1bnplIHJlcG9ydGVkIHRoYXQgb3BlblRhZyBpbiAKKwkgIHhtbFBhcnNlRWxlbWVudCB3YXMgbGlrZWx5IHRvIGhhdmUgYmVlbiBkZWFsbG9jYXRlZCBhdCB0aGUKKwkgIHRpbWUgb2YgdGhlIHJlcG9ydCwgcG9zc2libHkgbGVhZGluZyB0byBzZWdmYXVsdC4gSnVzdCByZXBvcnQKKwkgIHRoZSB0YWcgbmFtZSBub3cuCisKK01vbiBKdW4gMTAgMTg6MDA6MDIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogcGF0Y2ggZnJvbSBSaWNoYXJkIEppbmtzIGZvciBYUGF0aCBzdWJzdHJpbmcoKSBmdW5jdGlvbgorCSogcmVzdWx0L1hQYXRoL2V4cHIvc3RyaW5ncyB0ZXN0L1hQYXRoL2V4cHIvc3RyaW5nczogbmV3IHNldCBvZiB0ZXN0cworCisyMDAyLTA2LTA2ICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogeG1sSU8uYzogcGF0Y2ggZnJvbSBSYWNoZWwgSGVzdGlsb3cgdG8gZml4IGJ1ZyAjODQzNDAKKworV2VkIEp1biAgNSAxOToxNDo0OSBNRFQgMjAwMiBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKmRvYy9GQVEuaHRtbAorCWZpeGluZyB0eXBvcyBpbiBGQVEsIHRoYW5rcyB0byBSb2JlcnQgRnVubmVsbCBmb3IgdGhlCisJZWRpdGluZyBoZWxwCisKK1dlZCBKdW4gIDUgMTQ6NTA6MjQgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTkVXUzogZ290IGNvbXBsYWludHMgZnJvbSBycG1saW50IHRoYXQgaXQgd2FzIGVtcHR5CisKK1R1ZSBKdW4gIDQgMDk6MDk6MTggTURUIDIwMDIgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogYWRkZWQgZG9jL3R1dG9yaWFsLCBpbmNsdWRpbmc6CisJYXBhLmh0bWwKKwlhcGIuaHRtbAorCWFwYy5odG1sCisJYXBkLmh0bWwKKwlhcjAxczAyLmh0bWwKKwlhcjAxczAzLmh0bWwKKwlhcjAxczA0Lmh0bWwKKwlhcjAxczA1Lmh0bWwKKwlhcjAxczA2Lmh0bWwKKwlpbmNsdWRlYWRkYXR0cmlidXRlLmMKKwlpbmNsdWRlYWRka2V5d29yZC5jCisJaW5jbHVkZWtleXdvcmQuYworCWluY2x1ZGVzdG9yeS54bWwKKwlpbmRleC5odG1sCisJeG1sdHV0b3JpYWwueG1sCisJbGlieG1sIHR1dG9yaWFsLCBpbmNsdWRpbmcgZ2VuZXJhdGVkIGh0bWwKKworTW9uIEp1biAgMyAyMToyMToyNiAyMDAyICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLSoKKwkgIHJlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLSoKKwkgIHRlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tKgorCSAgdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLSoKKwkgIHRlc3RDMTROLmMgTWFrZWZpbGUuYW06IGFkZGVkIG1lcmxpbi1jMTRuLXR3by50YXIuZ3ogdGVzdHMgZm9yIAorCWMxNG4vZXhjLWMxNG4gYW5kIHNsaWdodGx5IG1vZGlmaWVkIHRlc3Qgc2NyaXB0IHRvIGhhbmRsZQorCXRoZXNlIHRlc3QgY2FzZXMKKwkqIGMxNG4uYzogZml4ZWQgYnVncyBmb3IgY29tcGxpY2F0ZWQgbm9kZXMgc2V0IChuYW1lc3BhY2UKKwl3aXRob3V0IG5vZGUgYW5kIG90aGVycyBmcm9tIG1lcmxpbi1jMTRuLXR3by50YXIuZ3opCisJKiBpbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oIHdpbjMyL2RzcC9saWJ4bWwyLmRlZi5zcmMKKwl3aW4zMi9saWJ4bWwyLmRlZi5zcmM6ICJvcGVuZWQiIHhtbFhQYXRoTm9kZVNldEZyZWVOcygpIGZ1bmN0aW9uCisJZm9yIHhtbHNlYyBwZXJmb3JtYW5jZSBwYXRjaAorCSogeHBhdGguYzogZml4ZWQgc2VsZjo6bm9kZSgpIGZvciBuYW1lc3BhY2VzIGFuZCBhdHRyaWJ1dGVzCisKK01vbiBKdW4gMDMgMDA6MDQ6MjEgMjAwMiBDaGVtYSBDZWxvcmlvIDxjaGVtYUB4aW1pYW4uY29tPgorCisJKiB0cmVlLmg6IGFkZGVkIHhtbERvY0Zvcm1hdER1bXAgd2hpY2ggaXMganVzdCBhcyB4bWxEb2NEdW1wCisJICBidXQgd2l0aCB0aGUgZm9ybWF0IHBhcmFtZXRlcgorCSogdHJlZS5jOiBtYWRlIHhtbERvY0R1bXAgYSB3cmFwcGVyIGFycm91bmQgeG1sRG9jRm9ybWF0RHVtcAorCitGcmkgTWF5IDMxIDEyOjE2OjQ4IDIwMDIgIEFsZWtzZXkgU2FuaW4gIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiBNYWtlZmlsZS5hbTogdXBkYXRlZCBjMTRuIHRlc3RzIHN1aXRlCisJKiBjMTRuLmM6IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGZvciBwcmV2aW91cyBjMTRuIHBhdGNoCisKK0ZyaSBNYXkgMzEgMTE6NDc6MTIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGFub3RoZXIgcGVyb2Zvcm1hbmNlIHBhdGNoIGZyb20gUGV0ZXIgSmFjb2JpLCB0aGF0CisJICB0aW1lIG9uIHBhcnNpbmcgYXR0cmlidXRlIHZhbHVlcy4KKworVGh1IE1heSAzMCAyMzozNDoyNyAyMDAyICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogTWFrZWZpbGUuYW0gcmVzdWx0L2MxNG4vKiB0ZXN0L2MxNG4vKjogQzE0TiB0ZXN0cyBpbnRlZ3JhdGVkCisJaW50byBMaWJYTUwyIHRlc3Qgc3VpdGUKKworVGh1IE1heSAzMCAyMToyMzowNiAyMDAyICBBbGVrc2V5IFNhbmluICA8YWxla3NleUBhbGVrc2V5LmNvbT4KKworCSogYzE0bi5jOiBwcm9wYWdhdGluZyB4cGF0aCBhbmNlc3N0b3JzIG5vZGUgZml4IHRvIGMxNG4KKwlwbHVzIHNtYWxsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IHRvIHJlZHVjZSBudW1iZXIgb2YKKwltYWxsb2NzCisJKiB4cGF0aC5jOiBmaXhlZCBhbmNlc3RvcnMgYXhpcyBwcm9jZXNzaW5nIGZvciBuYW1lc3BhY2Ugbm9kZXMKKworV2VkIE1heSAyOSAxMDoyMTozOSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYyBwYXJzZXIuYyB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBwZXJmb3JtYW5jZSBwYXRjaCBmcm9tCisJICBQZXRlciBKYWNvYmkKKworTW9uIE1heSAyNyAyMzoxODozMyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyAyLjQuMjIKKworTW9uIE1heSAyNyAxNjo0NDowNCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmMgd2luMzIvbGlieG1sMi5kZWYuc3JjIHdpbjMyL2RzcC9saWJ4bWwyLmRlZi5zcmMKKwkgIGluY2x1ZGUvbGlieG1sL0hUTUxwYXJzZXIuaDogZml4aW5nICM3OTMzNCBtYWtpbmcgaHRtbFBhcnNlRG9jdW1lbnQKKwkgIGEgcHVibGljIGVudHJ5IHBvaW50LgorCSogZG9jLyo6IHJlYnVpbHQgdGhlIEFQSSBhbmQgZG9jcworCitNb24gTWF5IDI3IDE0OjE2OjI4IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IHBhdGNoIGZyb20gUmljaGFyZCBKaW5rcyB0byBmaXggYSBwcm9ibGVtIGludHJvZHVjZWQKKwkgIGluIHRoZSBwcmV2aW91cyBwYXRjaCBhbmQgcG9pbnRlZCBieSBOb3JtCisKK0ZyaSBNYXkgMjQgMTM6MTA6MjIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IGZpeGluZyBidWcgIzgxMTEyCisKK0ZyaSBNYXkgMjQgMTM6MDM6MjQgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmM6IGZpeGluZyBidWcgIzgyODQ4CisKK0ZyaSBNYXkgMjQgMDk6NTQ6NDkgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZy5mdWxsOiBBbGVrc2V5J3MgY29tbWl0IGNoYW5nZWQgdGhlCisJICBvdXRwdXQgb2Ygb25lIGNhdGFsb2cgdGVzdAorCitGcmkgMjQgTWF5IDIwMDIgMTI6MTc6NDUgQU0gUERUIEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIGdsb2JhbC5kYXRhIGdsb2JhbHMuYyB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvZ2xvYmFscy5oIAorCXdpbjMyL2xpYnhtbDIuZGVmLnNyYyB3aW4zMi9kc3AvbGlieG1sMi5kZWYuc3JjOiBjaGFuZ2VkCisJZGVmYXVsdCB2YWx1ZSBmb3IgZ2xvYmFsIHBhcmFtZXRlciB4bWxJbmRlbnRUcmVlT3V0cHV0IHRvIDEgYW5kCisJaW50cm9kdWNlZCBuZXcgZ2xvYmFsIHBhcmFtZXRlciB4bWxUcmVlSW5kZW50U3RyaW5nICh0aGUgc3RyaW5nCisJdXNlZCB0byBkbyBvbmUtbGV2ZWwgaW5kZW50KSB3aXRoIGRlZmF1bHQgdmFsdWUgIiAgIiAoYXMgaXQgd2FzCisJaW4gdHJlZS5jKQorCitUaHUgTWF5IDIzIDEzOjU1OjU3IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBNZXJpam4gQnJvZXJlbiBwb2ludGVkIG91dCBhIHByb2JsZW0gd2hlbiBjb21waWxpbmcKKwkgIHdpdGggdHJpbyBhbmQgc2NoZW1hcy4KKworV2VkIE1heSAyMiAxMTo1Nzo0OSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBwYXRjaCBmcm9tIFJpY2hhcmQgSmlua3MgdG8gZml4IHRoZSBwcm9ibGVtIHJhaXNlZCBpbgorCSAgaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8yMDAyLUFwcmlsL21zZzAwMjQ2Lmh0bQorCitXZWQgTWF5IDIyIDA4OjM4OjE5IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYzogYSBiaXQgb2Ygd29yayBvbiBpbXBvcnQuCisJKiB4bWxzY2hlbWFzdHlwZXMuYzogQ2hhcmxlcyBCb3plbWFuIHByb3ZpZGVkIGEgY29tcGFyZSBmdW5jdGlvbgorCSAgZm9yIGRhdGUvdGltZSB0eXBlcyBzbyBtaW4vbWF4IGZhY2V0IHJlc3RyaWN0aW9ucyBzaG91bGQgd29yaywKKwkgIGluZGV0ZXJtaW5hdGUgY29tcGFyaXNvbnMgcmV0dXJuIGFuIGVycm9yIGluc3RlYWQgb2YgZXF1YWwuCisJKiB0ZXN0L3NjaGVtYXMvZGF0ZV8wKiByZXN1bHQvc2NoZW1hcy9kYXRlXzBfMDogc3BlY2lmaWMgdGVzdAorCSAgZnJvbSBDaGFybGVzIEJvemVtYW4gdG9vCisKK1NhdCBNYXkgMTggMDk6NTQ6MTIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLjMgZG9jL2J1aWxkRG9jQm9va0NhdGFsb2c6IGFwcGx5IGEgY291cGxlIG9mIHBhdGNoZXMKKwkgIGZyb20gQ2hyaXN0aWFuIENvcm5lbHNzZW4gZml4aW5nIHRoZSBtYW4gcGFnZXMgYW5kIHRoZSBDYXRhbG9nCisJICBidWlsZGluZyBzY3JpcHQuCisJKiB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oOiBub3RoaW5nIG5ldyB5ZXQKKwkgIG5leHQgc3RlcCBpcyA8eHM6aW1wb3J0PiBJIG5vdyBoYXZlIGEgcmVhc29uYWJsZSB1bmRlcnN0YW5kaW5nCisJICBvZiBob3cgaXQgd29ya3MuCisKK1RodSBNYXkgMTYgMTA6NDM6MjYgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYzogYXBwbGllZCBhIHNtYWxsIGJ1ZmZlciBwZXJmb3JtYW5jZSBwYXRjaCBmcm9tIEdhcnkgUGVubmluZ3RvbgorCitXZWQgTWF5IDE1IDAwOjI1OjM0IENFU1QgMjAwMiBJZ29yIFpsYXRrb3ZpYyA8aWdvckBzdHVkLmZoLWZyYW5rZnVydC5kZT4KKworCSogd2luMzIvbGlieG1sMi5kZWYuc3JjOiBleHBvcnRlZCB4bWxYUGF0aE5vZGVTZXRBZGROcygpCisKK1R1ZSBNYXkgMTQgMTM6MDA6NDggQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogZml4aW5nIGFuIFhQYXRoIGZ1bmN0aW9uIGV2YWx1dGF0aW9uIGJ1ZyBwb2ludGVkIG91dAorCSAgYnkgQWxleGV5IEVmaW1vdiB3aGVyZSB0aGUgY29udGV4dCB3YXMgbG9zdCB3aGVuIGV2YWx1YXRpbmcKKwkgIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKKworTW9uIDEzIE1heSAyMDAyIDExOjM3OjM5IFBNIFBEVCBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmg6IG1ha2VkIHhtbFhQYXRoTm9kZVNldEFkZE5zKCkgCisJICBmdW5jdGlvbiBwdWJsaWMgZm9yIFhNTFNlYyBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zCisKK01vbiBNYXkgMTMgMTI6MzI6MjIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sMmNsYXNzLnR4dCA6IGZpeGVkIGEgcHJvYmxlbQorCSAgd2l0aCB0aGUgSFRNTCBwYXJzZXIgcG9pbnRlZCBieSBHYXJ5IEJlbnNvbgorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9wdXNoU0FYaHRtbC5weTogc2RkaW5nIHRoZQorCSAgZXhhbXBsZQorCitUaHUgMDkgTWF5IDIwMDIgMTE6MTk6MDAgQU0gUERUIEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisJKiBwYXJzZXIuYzogZml4ZWQgYnVnICM4MTE1OSAobWVtb3J5IGdyb3d0aCBpbiBTQVgpCisKK1R1ZSAwNyBNYXkgMjAwMiAwOToyMDoyMSBBTSBQRFQgQWxla3NleSBTYW5pbiA8YWxla3NleUBhbGVrc2V5LmNvbT4KKwkqIHhwYXRoLmM6IGZpeGVkIGJ1ZyAjNzg4NTggKHRoZSByZWFsIGZpeCkKKworU2F0IDA0IE1heSAyMDAyIDExOjU2OjMxIFBNIFBEVCBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorCSogeHBhdGguYzogZml4ZWQgYnVnICM3ODg1OCAocXVpY2sgYW5kIGR1cnR5IGZpeCB0byBoaWRlIHRoZSBwcm9ibGVtKQorCitTdW4gTWF5ICA1IDA4OjU3OjA4IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogbW9kaWZpZWQgeG1sTm9kZVNldEJhc2UgdG8gYWxsb3cgY2hhbmdpbmcgdGhlCisJICBiYXNlIG9mIGEgZG9jdW1lbnQuCisKK0ZyaSBNYXkgIDMgMDk6MjA6NDEgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hc3R5cGVzLmM6IHBhdGNoIENoYXJsZXMgQm96ZW1hbiBmb3IgdmFsaWRhdGlvbiBvZgorCSAgYWxsIHRoZSBkYXRlLCB0aW1lLCBhbmQgZHVyYXRpb24gdHlwZXMKKwkqIHRlc3Qvc2NoZW1hcy9kdXJfMCogcmVzdWx0L3NjaGVtYXMvZHVyXzAqOiBhc3NvY2lhdGVkIHRlc3RzCisJKiBjb25maWd1cmUuaW46IGZpeGVkIGFuIGVycm9yIHBvaW50ZWQgYnkgYW4gdXNlcgorCSogeG1sMi1jb25maWcuaW46IGZpeGVkIGFuIGVycm9yIHBvaW50ZWQgYnkgYW4gdXNlcgorCitXZWQgMDEgTWF5IDIwMDIgMTE6Mjk6MjcgQU0gUERUIEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3htbElPLmggd2luMzIvZHNwL2xpYnhtbDIuZGVmLnNyYworCXdpbjMyL2xpYnhtbDIuZGVmLnNyYyB4bWxJTy5jOiBleHBvcnRlZCBkZWZhdWx0CisJJ2ZpbGU6JywgJ2h0dHA6JyBhbmQgJ2Z0cDonIHByb3RvY29scyBpbnB1dCBoYW5kbGVycyAKKwlhbmQgbWFrZWQgcHJvdG9jb2xzIGNvbXBhcmlzc29uIGNhc2UgaW5zZW5zaXRpdmUKKworVHVlIEFwciAzMCAxNjoyOTowNSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IE5ldmVuIEhhcyBkZXRlY3RlZCBhIHR5cG8KKworVHVlIEFwciAzMCAwODo0ODoxMSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBBVVRIT1JTIEhBQ0tJTkc6IGFkZGVkIEFsZWtzZXkgU2FuaW4gPGFsZWtzZXlAYWxla3NleS5jb20+CisJICBhcyBvbmUgb2YgdGhlIHBlcnNvbnMgYWxsb3dlZCB0byBjb21taXQgZGlyZWN0bHkgdG8gdGhlCisJICBtb2R1bGUuCisKK01vbiBBcHIgMjkgMTc6NDg6MjYgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oOiBwcmVwYXJpbmcgMi40LjIxCisJKiB2YWxpZC5jOiByYWlzZWQgYSB0b28gbG93IGxpbWl0CisJKiBkb2MvKjogcmVidWlsdCB0aGUgZG9jcyAKKworV2VkIEFwciAyNCAxMzo0MTowMyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0L1hQYXRoL2V4cHIvZmxvYXRzIHRlc3QvWFBhdGgvZXhwci9mdW5jdGlvbnMKKwkgIHJlc3VsdC9YUGF0aC9leHByL2Zsb2F0cyByZXN1bHQvWFBhdGgvZXhwci9mdW5jdGlvbnMKKwkgIHhwYXRoLmM6IGFub3RoZXIgWFBhdGggY29uZm9ybWFuY2UgcGF0Y2ggZnJvbSBSaWNoYXJkIEppbmtzCisKK1R1ZSBBcHIgMjMgMTk6NTA6NDAgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sc2NoZW1hcy5jOiBmaXhlZCB2YWxpZGF0aW9uIG9mIGF0dHJpYnV0ZSBncm91cHMuCisJKiB0ZXN0L3NjaGVtYXMgcmVzdWx0L3NjaGVtYXM6IGFkZGVkIGFuIGV4YW1wbGUgZnJvbSB0aGUgcHJpbWVyCisKK1R1ZSBBcHIgMjMgMDk6MTE6MzcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0geG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jOiBtb3JlIHdvcmsgb24gU2NoZW1hcworCSogdGVzdC9zY2hlbWFzIHJlc3VsdC9zY2hlbWFzOiB1cGRhdGVkIHRoZSB0ZXN0IGxpc3QKKworTW9uIEFwciAyMiAxNzo1OToxNCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBUT0RPOiB1cGRhdGVkIGEgYml0CisJKiBwYXJzZXIuYzogbWFkZSBhIGNvbW1lbnQgbW9yZSBzcGVjaWZpYworCSogeG1scmVnZXhwLmMgeG1sc2NoZW1hcy5jIHhtbHNjaGVtYXN0eXBlcy5jOiBtb3JlIHdvcmsgb24gdGhlCisJICBTY2hlbWFzIGNvbmZvcm1hbmNlLgorCSogdGVzdC9zY2hlbWFzIHJlc3VsdC9zY2hlbWFzOiB1cGRhdGVkIHRoZSB0ZXN0IGxpc3QKKworU2F0IEFwciAyMCAxOTozNjozOSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sYXV0b21hdGEuaDoKKwkgIGltcGxlbWVudGluZyB4czphbGwgd2l0aCBtaW5PY2N1cnMgPSAwCisJKiB0ZXMvc2NoZW1hcy8qIHJlc3VsdC9zY2hlbWFzLyo6IGFkZGVkIG1vcmUgdGVzdHMgY292ZXJpbmcKKwkgIHhzOmFsbAorCitTYXQgQXByIDIwIDA5OjIyOjUwIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHJlZ2V4cC5jOiBmaXJzdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYWxsIHBhcnRpY2xlLCB0aGlzCisJICBtYXkgbmVlZCB0byBiZSByZXZpc2l0ZWQgZm9yIGNhc2Ugd2hlcmUgbm90IGFsbCB0cmFuc2l0aW9ucworCSAgbXVzdCBiZSBjcm9zc2VkLgorCitGcmkgQXByIDE5IDE4OjI2OjA0IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogYW5vdGhlciBlbnRpdHkgcHJvY2Vzc2luZyB1cGRhdGUgZnJvbSBNYXJrdXMgSGVua2UKKworRnJpIEFwciAxOSAxNzoxNDoyNCBDRVNUIDIwMDIgQmpvcm4gUmVlc2UgPGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIHRyaW9uYW4uYzogZml4ZWQgY3Jhc2ggb24gT1NGLzEKKworRnJpIEFwciAxOSAwOTowMDo1NiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxzY2hlbWFzLmM6IG1vcmUgU2NoZW1hcyB3b3JrCisJKiB0ZXN0L3NjaGVtYXMvKiByZXN1bHQvc2NoZW1hcy8qOiBhZGRlZCBtb3JlIHRlc3RzIGNvbWluZworCSAgZnJvbSB0aGUgc3BlYy4KKworVGh1IEFwciAxOCAyMzowMDowMiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjMTRuLmM6IHBhdGNoIGZyb20gQWxla3NleSBTYW5pbiByZWZsZWN0aW5nIGEgY2hhbmdlIGluIHRoZQorCSAgRXhjQzE0TiBzcGVjaWZpY2F0aW9uCisKK1RodSBBcHIgMTggMTg6Mzg6MzAgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBwYXRjaCBmcm9tIE1hcmt1cyBIZW5rZSwgZml4IGZvciByZWN1cnNpdmUgZW50aXRpZXMuCisKK1RodSBBcHIgMTggMTc6NDk6MjQgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogZml4IGEgcHJvYmxlbSB3aXRoIHN0cmluZygpIG9uIGEgZG9jdW1lbnQgbm9kZS4KKworVGh1IEFwciAxOCAxNjo0MDo0MiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSB4bWxzY2hlbWFzLmM6IG1vcmUgU2NoZW1hcyB3b3JrCisJKiB0ZXN0L3NjaGVtYXMvKiByZXN1bHQvc2NoZW1hcy8qOiBhZGRlZCBtb3JlIHRlc3RzIGNvbWluZworCSAgZnJvbSB0aGUgc3BlYy4KKworVGh1IEFwciAxOCAxMzo1Mjo1MiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jOiBmaXhlZCAmIHNlcmlhbGl6YXRpb24gYnVnIGludHJvZHVjZWQgaW4gMi40LjIwCisJKiByZXN1bHQvSFRNTC8qOiB0aGlzIGNoYW5nZXMgYSBmZXcgdGhpbmdzIGluIHRoZSByZXN1bHRzCisKK1dlZCBBcHIgMTcgMjA6MzQ6MzcgQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpZ29yQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IGVsaW1pbmF0ZWQgJ2RlY2xhcmF0aW9uIGRpZmZlcmVudCB0aGFuCisJIHByb3RvdHlwZScgd2FybmluZworCSogaW5jbHVkZS93aW4zMmNvbmZpZy5oOiAicmVzb2x2ZWQiIGNvbmZsaWN0cyB3aXRoIGVycm5vLmgKKworV2VkIEFwciAxNyAxODoyNjowNyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmMgaW5jbHVkZS9saWJ4bWwveG1sYXV0b21hdGEuaDogbW9yZSB3b3JrCisJICBvbiB0aGUgYXV0b21hdGEgaW50ZXJmYWNlcyBhbmQgZGVidWcgb2YgY291bnRlZCBjaG9pY2VzCisJKiB0ZXN0L3NjaGVtYXMvKiByZXN1bHQvc2NoZW1hcy8qOiBhZGRlZCBhIG51bWJlciBvZiB0ZXN0cworCitXZWQgQXByIDE3IDExOjAzOjAzIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYyBpbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmg6CisJICBhIGJpdCBvZiB3b3JrIG9uIFNjaGVtYXMKKwkqIHRlc3RTY2hlbWFzLmM6IHRyeSB0byBtYWtlIGl0IG1vcmUgdXNlZnVsCisJKiB0ZXN0L3NjaGVtYXMvKiByZXN1bHQvc2NoZW1hcy8qIE1ha2VmaWxlLmFtOiBjaGFuZ2VkIHRoZQorCSAgU2NoZW1hcyByZWdyZXNzaW9uIHRlc3QgcHJvY2VkdXJlLCBzdGFydGVkIGFkZGluZyBhIGZldyBzYW1wbGVzCisKK1R1ZSBBcHIgMTYgMTk6NTI6MDEgQ0VTVCAyMDAyIElnb3IgWmxhdGtvdmljIDxpemxhdGtvdmljQHN0dWQuZmgtZnJhbmtmdXJ0LmRlPgorCisJKiBpbmNsdWRlL2xpYnhtbC9lbmNvZGluZy5oOiBQYXRjaCBmb3IgdGhlIEJvcmxhbmQgQysrIGJ1aWxkZXIKKwkqIGluY2x1ZGUvbGlieG1sL3RyZWUuaDogUGF0Y2ggZm9yIHRoZSBCb3JsYW5kIEMrKyBidWlsZGVyCisJKiB0aHJlYWRzLmM6IFBhdGNoIGZvciB0aGUgQm9ybGFuZCBDKysgYnVpbGRlcgorCSogd2luMzIvYmNiNTogTmV3IGRpcmVjdG9yeSBmb3IgdGhlIEJvcmxhbmQgQysrIGJ1aWxkZXIKKwkgcHJvamVjdCBmaWxlcyAgICAgICAKKworVHVlIEFwciAxNiAxOTo0Njo1NSBDRVNUIDIwMDIgSWdvciBabGF0a292aWMgPGl6bGF0a292aWNAc3R1ZC5maC1mcmFua2Z1cnQuZGU+CisKKwkqIHdpbjMyL01ha2VmaWxlLm1zdmM6IFVwZGF0ZSBmb3IgWE1MIFNjaGVtYSBzdXBwb3J0CisJKiB3aW4zMi9jb25maWd1cmUuanM6IFVwZGF0ZSBmb3IgWE1MIFNjaGVtYSBzdXBwb3J0CisJKiB3aW4zMi9saWJ4bWwyLmRlZi5zcmM6IFVwZGF0ZSBmb3IgWE1MIFNjaGVtYSBzdXBwb3J0CisKK1R1ZSBBcHIgMTYgMTc6NDY6NDMgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gVE9ET19TQ0hFTUFTIGNvbmZpZ3VyZS5pbiBnZW5Vbmljb2RlLnB5IHRlc3RBdXRvbWF0YS5jCisJIHRlc3RSZWdleHAuYyB0ZXN0U2NoZW1hcy5jIHhtbHJlZ2V4cC5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYworCSB4bWx1bmljb2RlLmMgaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW0KKwkgaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oIGluY2x1ZGUvbGlieG1sL3htbGF1dG9tYXRhLmgKKwkgaW5jbHVkZS9saWJ4bWwveG1scmVnZXhwLmggaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hcy5oCisJIGluY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oIGluY2x1ZGUvbGlieG1sL3htbHVuaWNvZGUuaAorCSBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW4gOiBtZXJnZWQgdGhlIGN1cnJlbnQgc3RhdGUgb2YKKwkgWE1MIFNjaGVtYXMgaW1wbGVtZW50YXRpb24sIGl0IGlzIG5vdCBjb25maWd1cmVkIGluIGJ5IGRlZmF1bHQsCisJIGEgc3BlY2lmaWMgLS1zY2hlbWFzIGNvbmZpZ3VyZSBvcHRpb24gaGFzIGJlZW4gYWRkZWQuCisJKiB0ZXN0L2F1dG9tYXRhIHRlc3QvcmVnZXhwIHRlc3Qvc2NoZW1hcyBNYWtlZmlsZS5hbQorCSAgcmVzdWx0L2F1dG9tYXRhIHJlc3VsdC9yZWdleHAgcmVzdWx0L3NjaGVtYXM6CisJICBtZXJnZWQgYXV0b21hdGEvcmVnZXhwL3NjaGVtYXMgcmVncmVzc2lvbiB0ZXN0cworCitUdWUgQXByIDE2IDA5OjQ4OjQ0IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IEdhcnkgZm91bmQgYSBjb21waWxlIHRpbWUgcHJvYmxlbSwgZml4ZXMgIzc4ODIzCisKK01vbiBBcHIgMTUgMTk6MTE6MzYgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiByZWxlYXNlIG9mIDIuNC4yMAorCSogZG9jLyo6IHVwZGF0ZWQgYW5kIHJlYnVpbHQgdGhlIGRvY3MKKworTW9uIEFwciAxNSAxNDo1NTo1MyBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vTWFrZWZpbGUuYW06IHBhdGNoIGZyb20gQ3Jpc3RpYW4gR2FmdG9uIHRvIGJ1aWxkIG9uCisJICBSZWQgSGF0IDYuMiwgc2hvdWxkIGFsc28gZml4ICM3NTc3OQorCitNb24gQXByIDE1IDEyOjE0OjQ5IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpcnN0IHBhcnQgb2YgZml4aW5nICM3ODcyOQorCitTdW4gQXByIDE0IDIzOjQ0OjU4IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgdXJpLmM6IGZpeGluZyBidWcgIzc4NjYyIGkuZS4gYWRkIHByb3BlcgorCSAgZXNjYXBpbmcgb2YgVVJJIHdoZW4gc2F2aW5nIEhUTUwgZmlsZXMuCisJKiByZXN1bHQvSFRNTC8qOiB0aGlzIGltcGFjdGVkIHNvbWUgdGVzdHMKKworU3VuIEFwciAxNCAxNDo1NToxNSBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHRyeWluZyB0byBmaXggIzc3NDQxCisKK0ZyaSBBcHIgMTIgMjM6MDI6MTYgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sSU8uaDogSGFsbHNraSBjb21wbGFpbmVkIGl0IGNvdWxkIG5vdCBiZQorCSAgaW5jbHVkZWQgYnkgaXRzZWxmLgorCitUaHUgQXByIDExIDEwOjIzOjM2IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogYXBwbGllZCBhbiBJRUVFIGZsYWcgcGF0Y2ggZm9yIE9TRi8xICM3NzgyNQorCitXZWQgQXByIDEwIDIzOjMxOjM0IENFU1QgMjAwMiBJZ29yIFpsYXRrb3ZpYyA8aWdvckBzdHVkLmZoLWZyYW5rZnVydC5kZT4KKworCSogd2luMzIvY29uZmlndXJlLmpzOiBwYXRjaCBmcm9tIE5pbG8gZm9yIHRoZSBjMTRuIG9wdGlvbgorCSogd2luMzIvTWFrZWZpbGUubXN2YzogZml4ZWQgbGlieG1sMi5kZWYgZ2VuZXJhdGlvbiB3aXRoIHRocmVhZHMKKworV2VkIEFwciAxMCAyMToyNDoxNiBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oLmluOiBTaWx2YW4gTWluZ2hldHRpCisJICBwb2ludGVkIGVycm9uZW91cyB1c2Ugb2YgTElCWE1MX1RIUkVBRFNfRU5BQkxFRCBpbnN0ZWFkIG9mCisJICAgTElCWE1MX1RIUkVBRF9FTkFCTEVECisKK1dlZCBBcHIgMTAgMTg6MTI6NTIgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogYW5vdGhlciBwYXRjaCBmcm9tIFJpY2hhcmQgSmlua3MgZm9yIHN1YnN0cmluZyBjb25mb3JtYW5jZQorCSogdGVzdC9YUGF0aC9leHByL2Zsb2F0cyB0ZXN0L1hQYXRoL2V4cHIvc3RyaW5ncworCSAgcmVzdWx0L1hQYXRoL2V4cHIvZmxvYXRzIHJlc3VsdC9YUGF0aC9leHByL3N0cmluZ3M6IHVwZGF0ZSBvZiB0aGUKKwkgIHRlc3Qgc3VpdGUgdG8gY2hlY2sgdGhvc2UuCisKK1dlZCBBcHIgMTAgMTM6Mjk6NDkgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogcGF0Y2ggZnJvbSBSaWNoYXJkIEppbmtzIGZvciAueCBmbG9hdCBwYXJzaW5nLgorCitUdWUgQXByICA5IDE4OjA5OjMxIENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBwYXRjaCBmcm9tIE1hcmt1cyBIZW5rZSB3aGVuIGFuIGVuY29kaW5nIGFpbid0IHJlY29nbml6ZWQKKworVHVlIEFwciAgOSAxNTo0NzoxNCBDRVNUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwubTQ6IGdvdCBhIHJlcG9ydCB0aGF0ICNpbmNsdWRlIDxzdHJpbmcuaD4gd2FzIG5lZWRlZAorCitUdWUgQXByICA5IDExOjUxOjI1IENFU1QgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogYXBwbGllZCBhIGZpeCBmcm9tIEFudGhvbnkgSm9uZXMgZm9yIC1vIC8tLW91dHB1dAorCitUdWUgQXByICAyIDIwOjI3OjExIE1TVCAyMDAyIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy9leGFtcGxlLmh0bWw6IGZpeGluZyB0eXBvCisKK01vbiBBcHIgIDEgMTA6MDI6NTcgQ0VTVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogZml4ZWQgYSBidWcgaW4gdGhlIG5vZGVzZXQgdG8gYm9vbGVhbiBjb21wYXJpc29uIGNvZGUKKwkgIHBvaW50ZWQgb3V0IGJ5IE1lbHZ5biBTb3BhY3VhLgorCitGcmkgTWFyIDI5IDIzOjQxOjUzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLm00OiBGcsOpZMOpcmljIENyb3phdCBnYXZlIGEgcGF0Y2ggcmVsYXRlZCB0byB0aGUgY2hhbmdlCisJICBvZiBJbmNsdWRlIHBhdGhzIGJyZWFraW5nIHRoZSBsaWJ4bWwubTQKKworRnJpIE1hciAyOSAxODoyNTo1NCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IEZpeCBidWcgIzc2OTI3IGZvcmdvdCB0byBzYXZlIHNvbWUgY29udGV4dAorCSAgd2hlbiBldmFsdWF0aW5nIGJpbmFyeSBleHByZXNzaW9ucworCitUaHUgTWFyIDI4IDE5OjIyOjQ4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBmaXhlZCBjb25maWd1cmUgZm9yIE1QRS9pWCBmcm9tIE1hcmt1cyBIZW5rZQorCSogeG1sbWVtb3J5LmM6IGZpeGVkIGluaXRpYWxpemF0aW9uIHByb2JsZW1zCisJKiB4cGF0aC5jOiBhbm90aGVyIHNldCBvZiBwYXRjaGVzIGZyb20gUmljaGFyZCBKaW5rcyB0aGlzCisJICBmaXhlcyAibWFrZSBYUGF0aHRlc3RzIiBvbiBsaW51eAorCitXZWQgTWFyIDI3IDE3OjA5OjQzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJpb25hbi5jIHRyaW9uYW4uaCB4cGF0aC5jOiBtb3JlIHBhdGNoZXMgZnJvbSBSaWNoYXJkIEppbmtzCisJKiB0ZXN0L1hQYXRoL2V4cHIvY29tcGFyZSB0ZXN0L1hQYXRoL2V4cHIvZXF1YWxpdHkKKwkgIHRlc3QvWFBhdGgvZXhwci9mbG9hdHMgdGVzdC9YUGF0aC9leHByL2Z1bmN0aW9ucworCSAgdGVzdC9YUGF0aC9leHByL3N0cmluZ3MgcmVzdWx0L1hQYXRoL2V4cHIvY29tcGFyZQorCSAgcmVzdWx0L1hQYXRoL2V4cHIvZXF1YWxpdHkgcmVzdWx0L1hQYXRoL2V4cHIvZmxvYXRzCisJICByZXN1bHQvWFBhdGgvZXhwci9mdW5jdGlvbnMgcmVzdWx0L1hQYXRoL2V4cHIvc3RyaW5nczogVXBkYXRlZAorCSAgdGVzdHMgdGhvdWdoIHRoZXkgc2hvdyBhIGRpdmVyZ2VuY2Ugb24gTGludXgKKworV2VkIE1hciAyNyAxMDowNjo1MyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmMgdHJpb25hbi5jOiBwcmV2aW91cyBjb21taXQgYWxzbyBpbmNsdWRlZCBwYXRjaGVzCisJICBmcm9tIFJpY2hhcmQgSmlua3Mgb24gc29tZSBJRUVFIHN1cHBvcnQgY29ybmVyIGNhc2UKKworV2VkIE1hciAyNyAxMDowMzoxMSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEFVVEhPUlMgSEFDS0lORzogQWRkZWQgSWdvciBabGF0a292aWMgYXMgb2ZmaWNpYWwgbWFpbnRhaW5lcgorCSogcHl0aG9uL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbTogQWxiZXJ0IENoaW4gcG9pbnRlZAorCSAgdGhhdCAkKGRhdGFkaXIpIHNob3VsZCBiZSB1c2VkIGZvciBkb2NzCisKK1R1ZSBNYXIgMjYgMTM6NDM6MTYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBUaG9tYXMgU3RlaW5ib3JuIHBvaW50ZWQgb3V0ICM3NjQwNCB0aGF0IGxpYnhtbDIKKwkgIGNvdWxkIGxlYWsgZmlsZWRlc2NyaXB0b3JzCisKK1R1ZSBNYXIgMjYgMDg6NTU6NTMgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gbmFub2h0dHAuYzogYXBwbGllZCBwYXRjaCBmcm9tIEFsbGFuIENsYXJrIGZvcgorCSAgVW5peFdhcmUvT3BlblNlcnZlcgorCitNb24gTWFyIDI1IDE3OjQ1OjQ0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBwcmVwYXJpbmcgMi40LjE5CisJKiBkb2MvKjogcmVidWlsdCB0aGUgZG9jcworCitNb24gTWFyIDI1IDE3OjM0OjA2IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbmFub2h0dHAuYzogZml4aW5nICM3NjA0MywgZ290IGZlZCB1cCB3aXRoIG5vbi1wb3J0YWJpbGl0eQorCSAgb2YgdGhhdCBwaWVjZSBvZiBjb2RlLgorCitNb24gTWFyIDI1IDEzOjA4OjIxIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYyBTQVguYzogTmV2ZXIgY29tbWl0IHdpdGhvdXQgcnVubmluZyAibWFrZSB0ZXN0cyIgOi0oCisJICBmaXggYSBjb3VwbGUgb2Ygc3R1cGlkaXRpZXMgaW4gdGhlIHByZXZpb3VzIGNvbW1pdAorCSogcmVzdWx0Lyo6IGEgZmV3IGNoYW5nZXMgaW4gc29tZSBhdHRyaWJ1dGUgb3JkZXIgcmVzdWx0IG9mIHByZXZpb3VzCisJICBjb21taXQuCisKK01vbiBNYXIgMjUgMTE6NDY6MDUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2YWxpZC5jIFNBWC5jOiBmaXhlZCBidWcgIzc2MTY4LCBhdHRyaWJ1dGUgcmVkZWNsYXJlZCBpbgorCSAgdGhlIGludGVybmFsIHN1YnNldCBzaG91bGQgbm90IHJhaXNlIGR1cGxpY2F0ZSBJRCBlcnJvcnMsCisJICBhbHNvIHRoZXJlIHdhcyBhIHNtYWxsIGJ1ZyBpbiBjb25qdW5jdGlvbiB0byBuYW1lc3BhY2UKKwkgIGRlY2xhcmF0aW9ucyBkZWZhdWx0ZWQgYW5kIHhtbDp4eHggYXR0cmlidXRlcyBEVEQgZGVmaW5pdGlvbnMuCisKK0ZyaSBNYXIgMjIgMTU6MTM6NDkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBSaWNoYXJkIEppbmtzIGFsc28gcmFpc2VkIHNvbWUgcm91bmRpbmcgcHJvYmxlbXMKKwkgIHRoaXMgdHJpZXMgdG8gZml4IHRoZW0KKworRnJpIE1hciAyMiAxMzoyMjowOSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IFJpY2hhcmQgSmlua3Mgc3BvdHRlZCBhbiBpbmNvaGVyZW50IG1lbW9yeSBhbGxvY2F0aW9uCisJICBiZWhhdmlvdXIgaW4geG1sWFBhdGhDYXN0VG9TdHJpbmcoKQorCitUaHUgTWFyIDIxIDE0OjI1OjI5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYzogZml4ZWQgYSBidWcgaW4gdGhlIElTTy1MYXRpbiAxIHRvIFVURjggZW5jb2RlcgorCSAgcmFpc2VkIGJ5IE1vcnVzIFdhbHRlcgorCitUaHUgTWFyIDIxIDE0OjA3OjEzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sY2F0YWxvZy5jIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbjogYXBwbGllZCAyIGZpeHVwcworCSAgZnJvbSBJZ29yCisKK1RodSBNYXIgMjEgMTM6MzA6MDYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBmaXhpbmcgIzc1NjE5LCByZWxhdGVkIHRvIGEgcHJvYmxlbSB3aGVuIHRyeWluZworCSAgdG8gZXZhbHVhdGUgY29uZGl0aW9uIHdoZW4gdGhlIGN1cnJlbnQgbm9kZSBzZXQgcmVzdWx0aW5nCisJICBmcm9tIHRoYXQgc3ViLXN0ZXAgZXZhbHVhdGlvbiBpcyBlbXB0eS4gQWxzbyBmaXhlcyAyIHBvdGVudGlhbAorCSAgcHJvYmxlbSB3aXRoIHByZXZpb3VzLXNpYmxpbmcgYW5kIG5leHQtc2libGluZ3MgYXhpcy4KKworVGh1IE1hciAyMSAwOTowMzo1OSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGMxNG4uYzogcGF0Y2ggZnJvbSBNYXJrIFZha29jIHRvIGJ1aWxkIEMxNE4gaWYgRG9jQm9vayBhbmQKKwkgIEhUTUwgc3VwcG9ydCBpcyBub3QgY29uZmlndXJlZCBpbi4KKworV2VkIE1hciAyMCAyMjo0Mjo0MiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyBlcnJvci5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHRyZWUuYyB4bWxJTy5jCisJICBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IGRvaGggSSByZWFsbHkgZGlkbid0IGludGVuZGVkIHRvIGNvbW1pdAorCSAgdGhpcyB0ZXN0IHZlcnNpb24gOi0oCisKK1dlZCBNYXIgMjAgMjA6MjA6NTcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0U0FYLmM6IEkgd2FudGVkIHRvIHNlZSB0aGUgcmVhbCBzcGVlZCBhdCB0aGUgU0FYIGludGVyZmFjZQorCSAgYWZ0ZXIgYSBsaXR0bGUgdG9vIG1hbnkgWGltaWFuZXIgc3RhcnRlZCBjb21wbGFpbmluZyBhYm91dCB0aGUKKwkgIHBhcnNlciBzcGVlZC4KKwkgIGFkZGVkIGEgLS1xdWlldCBvcHRpb246CisJICBwYXBoaW86fi9YTUwgLT4gbHMgLWwgZGIxMDAwMDAueG1sIAorCSAgLXJ3LXJ3LXItLSAgICAxIHZlaWxsYXJkIHd3dyAgICAgIDIwMTgyMDQwIE1hciAyMCAxMDozMCBkYjEwMDAwMC54bWwKKwkgIHBhcGhpbzp+L1hNTCAtPiB0aW1lIC4vdGVzdFNBWCAtLXF1aWV0IGRiMTAwMDAwLnhtbCAKKwkgIDMyMDAwMDYgY2FsbGJhY2tzIGdlbmVyYXRlZAorCSAgcmVhbAkwbTEuMjcwcworCSAgV2hpY2ggbWVhbnMgMTZNQnl0ZXMvcyBhbmQgM01jYWxsYmFjay9zCisKK1R1ZSBNYXIgMTkgMTk6MzM6NTcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiB2YWxncmluZCBzcG90dGVkIGFub3RoZXIgZXJyb3IgdGhhdCB0aW1lIHdoZW4gcnVubmluZworCSAgb24gbGlieHNsdCByZWdyZXNzaW9uIHRlc3RzCisKK1R1ZSBNYXIgMTkgMTU6MjQ6NDkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogYWRkaW5nICJtYWtlIHZhbGdyaW5kIiBydW5uaW5nIHRoZSBmdWxsIHJlZ3Jlc3Npb24KKwkgIHRlc3RzIChleGNlcHQgcHl0aG9uIG9uZXMpIHVuZGVyIFZhbGdyaW5kICh1c2luZyB2YWxncmluZCAtcQorCSAgd2hpY2ggd2FzIGtpbmRseSBhZGRlZCBieSB0aGUgYXV0aG9yKS4KKwkqIHZhbGlkLmM6IHN0dXBpZCBidWcgcGlucG9pbnRlZCBieSBWYWxncmluZCwgdGhlIHJlZ3Jlc3Npb24gdGVzdHMKKwkgIHBhc3NlcyBjbGVhbmx5IG5vdyBleGNlcHQgYW4gb2JjdXJlIGZsb2F0aW5nIHBvaW50IGluaXRpYWxpemF0aW9uCisJICByYWlzZWQgaW4gbG9nMTAoKSBpbiBvbmUgWFBhdGggcmVncmVzc2lvbiB0ZXN0ID8/PworCSogdHJlZS5jOiBlZGl0ZWQgc29tZSBjb21tZW50cyB0byBjbG9zZSAjNzUyNDQKKworVHVlIE1hciAxOSAxMjoxNToyMCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IHByZXR0eSBpbnNhbmUgdGhpbmcsIHRoZSB4bWxYUGF0aEZvcm1hdE51bWJlcigpCisJICB3YXMgbm90IHNlcmlhbGl6aW5nIDEgYXMgIjEiIGlmIExDX0FMTD1zdl9TRSA6LSggYW5kIGluIHRoZQorCSAgY29udGV4dCBvZiBTY3JvbGxLZWVwZXIsIG1hZGUgc3VyZSB0aGF0IGlmIHRoZSBudW1iZXIgaXMKKwkgIGFuIGludGVnZXIsIHRoZSBzZXJpYWxpemF0aW9uIGZvbGxvd3MgdGhlIGRlc2NyaXB0aW9uIGF0CisJICBodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aCNzZWN0aW9uLVN0cmluZy1GdW5jdGlvbnMKKworTW9uIE1hciAxOCAxOToxODoxMyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIDIuNC4xOAorCSogZG9jLyo6IHVwZGF0ZWQgYW5kIHJlYnVpbHQgdGhlIHdlYiBzaXRlCisJKiAqLmMgbGlieG1sLmg6IGltcGxlbWVudCB0aGUgbmV3IElOX0xJQlhNTCBzY2hlbWUgZGlzY3Vzc2VkIHdpdGgKKwkgIHRoZSBXaW5kb3dzIGFuZCBDeWd3aW4gbWFpbnRhaW5lcnMuCisJKiBwYXJzZXIuYzogaHVtbSwgY2hhbmdlZCB0aGUgd2F5IHRoZSBTQVggcGFyc2VyIHdvcmsgd2hlbgorCSAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKSBpcyBzZXQsIGl0IHdpbGwgdGhlbiAKKwkgIGRvIHRoZSBlbnRpdHkgcmVnaXN0cmF0aW9uIGFuZCBsb2FkaW5nIGJ5IGl0c2VsZiBpbiBjYXNlIHRoZQorCSAgdXNlciBwcm92aWRlZCBTQVggZ2V0RW50aXR5KCkgcmV0dXJucyBOVUxMLgorCSogdGVzdFNBWC5jOiBhZGRlZCAtLW5vZW50IHRvIHRlc3QgdGhlIGJlaGF2aW91ci4KKworTW9uIE1hciAxOCAxMjo0NDoyMyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBXaWxmcmllZCBUZWlrZW4gcHJvdmlkZWQgYSBoYWNraXNoIGJ1dCB3b3JraW5nCisJICB3YXkgdG8gZ2V0IGNvbnRleHQgcmVwb3J0ZWQgYmFjayBvbiBlbnRpdGllcyB3aGVuIHBhcnNpbmcKKwkgIHdpdGggU0FYIGFuZCB3aXRob3V0IGJyZWFraW5nIHRoZSBET00gYnVpbGQuCisKK1N1biBNYXIgMTcgMTE6MzE6NTUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjMTRuLmM6IGFwcGxpZWQgYSBuZXcgcGF0Y2ggZnJvbSBBbGVrc2V5IFNhbmluCisJKiBkb2Mvc2l0ZS54c2wgZG9jL3htbC5odG1sIGRvYy8qLmh0bWw6IHVwZGF0ZWQgdGhlIGRvY3VtZW50YXRpb24KKwkgIHRvIHJlZmVyZW5jZSBBbGVrc2V5IGltcGxlbWVudGF0aW9uIG9mIFhNTCBkaWdpdGFsIFNpZ25hdHVyZXMKKworU2F0IE1hciAxNiAyMzowMTo0MiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IHNtYWxsIGZpeCB0byBhdm9pZCBwb3RlbnRpYWwgcHJvYmxlbSBkdWUgdG8KKwkgIG9yZGVyaW5nIG9mIGZyZWVpbmcgZGF0YQorCSogcHl0aG9uL01ha2VmaWxlLmFtOiBwZW9wbGUgd2VyZSBjb21wbGFpbmluZyBhYm91dCAKKwkgIHRoZSBnZW5lcmF0ZWQgZmlsZSBpbiBweXRob24gZGlyIG5vdCBiZWluZyBidWlsdAorCitGcmkgTWFyIDE1IDIzOjIxOjQwIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW4gcHl0aG9uL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbQorCSAgcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmMgcHl0aG9uL3R5cGVzLmM6IENsZWFudXAKKwkgIG9mIHRoZSBweXRob24gTWFrZWZpbGVzIGJhc2VkIG9uIEphY29iIGFuZCBKYW1lcyBmZWVkYmFjaywKKwkgIGZpeGVkIHRoZSBzcGVjIGZpbGUgYWNjb3JkaW5nbHksIGZpeGVkIHRoZSBudW1iZXIgb2Ygd2FybmluZworCSAgdGhhdCBwYXNzaW5nIG15IHBlZGFudGljIENGTEFHUyB3YXMgZ2VuZXJhdGluZy4gQ29uY2x1c2lvbgorCSAgaXMgdGhhdCBQeXRob24gaW5jbHVkZXMgYXJlIHJlYWwgY3JhcC4KKworRnJpIE1hciAxNSAxOTo0MToyNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZSxpbjogaXQgd2FzIHJlcG9ydGVkIHF1aXRlIGEgZmV3IHRpbWVzIHRoYXQKKwkgIHhtbDItY29uZmlnIC0tY2ZsYWdzIHNob3VsZCBub3Qgb3V0cHV0CisJICAtSSRpbmNsdWRlcHJlZml4L2xpYnhtbDIvbGlieG1sIGJlY2F1c2UgbGlieG1sMiBoZWFkZXIgbmFtZXMKKwkgIGNsYXNoZXMgd2l0aCBleGlzdGluZyBuYW1lcyBsaWtlIGxpc3QuaCBmcm9tIEMrKyBzdGwuCisJICBJbmNsdWRlcyBzaG91bGQgYmUgI2luY2x1ZGU8bGlieG1sL3h4eC5oPiBzbyAuLi4KKworRnJpIE1hciAxNSAxMDo0MTo1MCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGMxNG4uYzogYW5vdGhlciBwYXRjaCBmcm9tIEFsZWtzZXkgU2FuaW4KKworRnJpIE1hciAxNSAwODo1NTo1NSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGMxNG4uYzogYXBwbGllZCBwYXRjaCBmcm9tIEFsZWtzZXkgU2FuaW4gZml4aW5nIGEgcHJvYmxlbSBpbiB0aGUKKwkgIGNhbm9uaWNhbGl6YXRpb24gYWxnb3JpdGhtCisJKiBkb2MveG1sLmh0bWwgZG9jL2luZGV4Lmh0bWw6IGFkZGVkIHRoZSBDMTROIHJlZmVyZW5jZXMgb24gdGhlIAorCSAgaW5kZXggcGFnZS4KKworMjAwMi0wMy0xMyAgamFjb2IgYmVya21hbiAgPGphY29iQHhpbWlhbi5jb20+CisKKwkqIHB5dGhvbi9NYWtlZmlsZS5hbTogcmVtb3ZlIExEQUREIGFuZCBDRkxBR1MgYXMgdGhpcyBpcyBicm9rZW4KKwl1c2FnZSwgcmVkdW5kYW50LCBhbmQgZ2NjIHNwZWNpZmljCisKK1dlZCBNYXIgMTMgMTE6MDA6NTkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBzcGVlZHVwIHNvbWUgbm9kZSBzZWxlY3Rpb24gb3BlcmF0aW9ucywgdGhpcyBjYW4KKwkgIGhhdmUgYSBzaWduaWZpY2FudCBpbXBhY3Qgb24gRG9jQm9vayBOb3JtJ3Mgc3R5bGVzaGVldHMKKwkqIG5hbm9odHRwLmM6IHNvbWVvbmUgcmVwb3J0ZWQgdGhhdCBTT0NLTEVOX1QgbWF5IG5vdCBiZSBkZWZpbmVkCisJICBtYWtlIHN1cmUgaXQncyBhbHdheXMgdGhlIGNhc2UKKwkqIGRlYnVnWE1MLmM6IGRpc3Rpbmd1aXNoIENEQVRBIGFuZCBjb21tZW50cyBpbiBscyBvcGVyYXRpb25zCisKK1R1ZSBNYXIgMTIgMTk6NDU6MjQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC8qLmg6IEhlaWtvIFcuIFJ1cHAgZml4ZWQgYSBsb3Qgb2YgY29tbWVudHMKKwkgIHRvIGdlbmVyYXRlIGJldHRlciBBUEkgZGVzY3JpcHRpb25zIGV0Yy4uLgorCitNb24gTWFyIDExIDEwOjEwOjMwIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogYzE0bi5jOiBGaXhpbmcgIzc0MTg2LCBtYWRlIHN1cmUgYWxsIGJvb2xlYW4gZXhwcmVzc2lvbnMKKwkgIGdldCBmdWxseSBwYXJlbnRoZXNpemVkLCByYW4gaW5kZW50IG9uIHRoZSBvdXRwdXQKKwkqIGNvbmZpZ3VyZS5pbiBIVE1MdHJlZS5jIFNBWC5jIGMxNG4uYyBkZWJ1Z1hNTC5jIHRyZWUuYyB4cG9pbnRlci5jCisJICBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IGFsc28gIzc0MTg2IHJlbGF0ZWQsIHJlbW92ZWQgdGhlCisJICAtLXdpdGgtYnVmZmVycyBvcHRpb24sIGFuZCBhbGwgdGhlIHByZXByb2Nlc3NvciBjb25kaXRpb25hbAorCSAgc2VjdGlvbnMgdGhhdCB3ZXJlIHJlc3VsdGluZyBmcm9tIGl0LgorCitTdW4gTWFyIDEwIDE3OjQ3OjU4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogYXBwbGllZCBwYXRjaCBmcm9tIERvZGppIFNla2V0ZWxpIGZpeGluZyBhbgorCSAgdW5pbml0YWlsaXplZCB2YXJpYWJsZSBpbiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMoKQorCitTYXQgTWFyICA5IDE1OjEwOjQ5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogYzE0bi5jOiBmaXhlZCBhIGZldyBjb21tZW50cworCSogZG9jLyouaHRtbCBkb2MvKi8qLmh0bWw6IHJlZ2VuZXJhdGVkIHRoZSBkb2NzIGFuZCBhZGRlZAorCSAgdGhlIEMxNE4gQVBJCisJKiBkb2MvYXBpLnhzbCBkb2MvZ25vbWUteG1sLnNnbWw6IGZpeHVwcyBhbmQgYWRkZWQgSURzCisKK1NhdCBNYXIgIDkgMTE6MTY6MTEgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjaGVjay14bWwtdGVzdC1zdWl0ZS5weTogZml4IHRvIGFkYXB0IHZhcmFpYXRpb25zIGluIHRoZQorCSAgYmluZGluZ3MKKwkqIGNvbmZpZ3VyZS5pbiBweXRob24vc2V0dXAucHkgcHl0aG9uL3NldHVwLnB5LmluOiBmaXhlZCB0bworCSAgaGF2ZSB0aGUgdmVyc2lvbiBvZiB0aGUgcHl0aG9uIHNjcmlwdHMgYXV0b21hdGljYWxseSB1cGRhdGVkCisKK0ZyaSBNYXIgIDggMTY6NDU6NTUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeGVkIGEgYnVnIG5ld2x5IGludHJvZHVjZWQgYW5kIHBvaW50ZWQgYnkgVXdlIEZlY2huZXIKKwkgIGluIHhtbENvcHlQcm9wKCkKKworRnJpIE1hciAgOCAxNTo0OToxMCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIDIuNC4xNyByZWxlYXNlCisJKiBkb2MvKjogdXBkYXRlZCBhbmQgcmVidWlsdCB0aGUgZG9jcworCSogeHBhdGguYzogZml4ZWQgYSBjb21tZW50CisJKiBweXRob24vbGlieG1sLmM6IGZpeGVkIGEgcG9zc2libGUgcmVlbnRyYW5jeSBwcm9ibGVtCisKK1RodSBNYXIgIDcgMjM6MTk6MjggQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmMgcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9hdHRyaWJzLnB5OgorCSAgZml4ZWQgeG1sSGFzTnNQcm9wKCkgYnVncyBmb3IgZGVmYXVsdGVkIGZyb20gRFREIGF0dHJpYnMsCisJICBhZGRlZCBhIHNwZWNpZmljIHJlZ3Jlc3Npb24gdGVzdAorCSogcHl0aG9uL2dlbmVyYXRvci5weTogeG1sSGFzTnNQcm9wKCkgYW5kIHhtbEhhc1Byb3AoKSBzaGFsbAorCSAgbm90IHJhaXNlIGV4Y2VwdGlvbnMgd2hlbiBmYWlsaW5nIHRvIGZpbmQgdGhlIGF0dHJpYnV0ZS4KKworVGh1IE1hciAgNyAxNjoxMTozNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiB4bWxsaW50LmM6IG93ZW4gcG9pbnRlZCBvdXQgYSBwcm9ibGVtIHdpdGggdGhlCisJICBmdG1lIGZpeCwgZ2V0dGltZW9mZGF5KCkgd2FzIG5vdCBkZXRlY3RlZCBieSBjb25maWd1cmUgYW5kCisJICB0aGUgZnRpbWUgaGVhZGVyIHdhc24ndCBpbmNsdWRlZCwgZG9oaGgKKworVGh1IE1hciAgNyAxMjoxOTozNiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiB4bWxsaW50LmM6IHRyeWluZyB0byBmaXggIzcxNDU3IGZvciB0aW1pbmcKKwkgIHByZWNpc2lvbiB3aGVuIGdldHRpbWVvZmRheSgpIGlzIG5vdCBhdmFpbGJsZSBidXQgZnRpbWUoKSBpcworCitUaHUgTWFyICA3IDExOjI0OjAyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW4gZG9jL01ha2VmaWxlLmFtOiBGaXhlZCAjNzM0MDggbWlzc2luZyBpbWFnZXMKKwkgIGFyZSBub3cgY29waWVkIG9uIGluc3RhbGwgYW5kIHBhcnQgb2YgdGhlIC1kZXZlbCBSUE0KKworVGh1IE1hciAgNyAwOTozNDoxNiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IHRyeWluZyB0byBhdm9pZCBidWcgIzcyMTUwIHdoaWNoIHdhcyBhcHBhcmVudGx5CisJICBjYXVzZWQgYnkgYSBnY2MgYnVnIChvciBhIHByb2Nlc3NvciBwcm9ibGVtKSBhcyBkZXRhaWxlZAorCSAgYXQgaHR0cDovL3ZlaWxsYXJkLmNvbS9nY2MuYnVnCisKK1RodSBNYXIgIDcgMDE6MDI6MzcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmMgcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9jdXRucGFzdGUucHk6CisJICBmaXhlZCB4bWxSZWNvbmNpbGlhdGVOcygpLCBhZGRlZCBhIFB5dGhvbiB0ZXN0L2V4YW1wbGUgZm9yCisJICBpbnRlci1kb2N1bWVudCBjdXQnbiBwYXN0ZQorCSogcHl0aG9uL2xpYnhtbC5weTogZml4ZWQgbm9kZS5kb2Mgb24gZG9jdW1lbnQgbm9kZXMgYW5kIGFkZGVkCisJICB4cGF0aEV2YWwoKSBvbnRvIG5vZGUgb2JqZWN0cworCitXZWQgTWFyICA2IDIyOjM4OjAzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHRyZWUuYzogZml4ZWQgc29tZSBodG1sU2V0TWV0YUVuY29kaW5nKCkgcHJvYmxlbXMKKwkqIHB5dGhvbi9saWJ4bWwuYyBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL3NlcmlhbGl6ZS5weToKKwkgIGZpeHVwIGFuZCBpbnRlZ3JhdGVkIHRlc3RzIGZvciB0aGUgc2VyaWFsaXphdGlvbiBzdHVmZgorCitXZWQgTWFyICA2IDE5OjQwOjU3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gbGlieG1sLjMgbGlieG1sLjQgbGlieG1sLnNwZWMuaW46IEZpeGVkIGJ1ZyAjNzI1NzAKKwkgIG1vdmVkIHRoZSBsaWJ4bWwgbWFuIHBhZ2UgdG8gc2VjdGlvbiAzCisKK1dlZCBNYXIgIDYgMTg6MzQ6MDcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeCBidWcgIzcyNDkwCisJKiBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbC5weTogYWRkZWQgbWV0aG9kcyBzZXJpYWxpemUoKQorCSAgYW5kIHNhdmVUbygpIHRvIGFsbCBub2RlIGVsZW1lbnRzLgorCitUdWUgTWFyICA1IDIxOjI3OjAzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYzogY2xvc2VkICM3MzQzMCwgZG9uJ3QgcmVhZCBmcm9tIGFuIGlucHV0IHNvdXJjZQorCSAgd2hpY2ggaW5kaWNhdGVkIGFuIGVuZC1vZi1maWxlIG9yIGFuIGVycm9yLgorCitUdWUgTWFyICA1IDE2OjMzOjQyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IG1ha2Ugc3VyZSBTQVggZW5kRG9jdW1lbnQgaXMgYWx3YXlzIGNhbGxlZCBhcworCSAgdGhpcyBjb3VsZCByZXN1bHQgaW4gYSBQeXRob24gbWVtb3J5IGxlYWsgb3RoZXJ3aXNlIChpdCdzCisJICB1c2VkIHRvIGRlY3JlbWVudCByZWYtY291bnRpbmcpCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sLnB5CisJICBweXRob24vbGlieG1sMi1weXRob24tYXBpLnhtbCBweXRob24vbGlieG1sMmNsYXNzLnR4dAorCSAgcHl0aG9uL3Rlc3RzL2Vycm9yLnB5IHB5dGhvbi90ZXN0cy94cGF0aC5weTogaW1wbGVtZW50ZWQKKwkgIHRoZSBzdWdnZXN0aW9ucyBtYWRlIGJ5IEdhcnkgQmVuc29uIGFuZCBleHRlbmRlZCB0aGUgdGVzdHMKKwkgIHRvIG1hdGNoIGl0LgorCitUdWUgTWFyICA1IDEwOjM1OjI0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weTogYXBwbGllZCBwYXRjaCBmaXhpbmcgIzczNDUwCisKK01vbiBNYXIgIDQgMTc6NTk6MjkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBmaXhpbmcgIzYxMjkwICJuYW1lc3BhY2Ugbm9kZXMgaGF2ZSBubyBwYXJlbnQiCisJICBsb25nIHN0YW5kaW5nIGRpdmVyZ2VuY2UgZnJvbSB0aGUgWFBhdGggUkVDLiBOb2RlU2V0cworCSAgc2ltcGx5IGhvbGQgYSBjb3B5IG9mIG5hbWVzcGFjZSBub2RlcyBhbmQgdGhvc2Ugbm9kZSAtPm5leHQKKwkgIHBvaW50cyB0byB0aGUgcGFyZW50ICh3aGljaCBtYXkgbm90IGJlIHRoZSBub2RlIGNhcnJ5aW5nIHRoZQorCSAgZGVmaW5pdGlvbikuCisJKiBpbmNsdWRlL2xpYnhtbC94cGF0aC5oOiBmbGFnZ2VkIGJ1dCBkaWRuJ3QgYWRkZWQgYSBwb3NzaWJsZQorCSAgc3BlZWR1cAorCSogRE9DQnBhcnNlci5jIEhUTUxwYXJzZXIuYzogcmVtb3ZlZCBzb21lIHdhcm5pbmdzIGZyb20gcHVzaAorCSAgcGFyc2VyIGR1ZSB0byBuZXcgc3RhdGUgYmVpbmcgYWRkZWQuCisJKiB0cmVlLmM6IG5ldyBmaXggZnJvbSBCb3JpcyBFcmRtYW5uCisJKiBjb25maWd1cmUuaW4gYzE0bi5jIGluY2x1ZGUvbGlieG1sL2MxNG4uaCB0ZXN0QzE0Ti5jOiBhZGRlZAorCSAgdGhlIFhNTCBDYW5vbmFsaXphdGlvbiBzdXBwb3J0IGZyb20gQWxla3NleSBTYW5pbgorCitTdW4gTWFyICAzIDE1OjEyOjQyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBwYXRjaCBmcm9tIEJvcmlzIEVyZG1hbm4gZml4aW5nIHNvbWUgbmFtZXNwYWNlIG9kaXRpZXMKKwkgIHdpdGggeG1sQ29weU5vZGUoKQorCitTYXQgTWFyICAyIDEwOjMzOjA0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSU8uYzogZml4IGJ1ZyAjNzI3MDYgd2hlbiBsb2FkaW5nIGEgTlVMTCBlbnRpdHkKKworRnJpIE1hciAgMSAxNzoxNDo0MiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jOiBGaXhlZCAjNzIzNDYsIGFib3V0IGhhbmRsaW5nIG9mIHhtbG5zOmZvbz0iIiwgdGhpcyBjb3VsZAorCSAgYWN0dWFsbHkgY2hhbmdlIGluIGEgZnV0dXJlIFhNTCBOYW1lc3BhY2UgcmV2aXNpb24uCisKK0ZyaSBNYXIgIDEgMTc6MTI6MTUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vdHlwZXMuYyBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL3hwYXRocmV0LnB5OgorCSAgYWRkZWQgdGhlIHBvc3NpYmlsaXR5IG9mIHJldHVybmluZyBub2Rlc2V0cyBmcm9tIFhQYXRoIGV4dGVuc2lvbgorCSAgZnVuY3Rpb25zIHdyaXR0ZW4gaW4gUHl0aG9uCisKK0ZyaSBNYXIgIDEgMTM6NTY6MTIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vKjogY29tbWl0aW5nIHNvbWUgUHl0aG9uIGJpbmRpbmdzIHdvcmsgZG9uZSB3aGlsZSB0cmF2ZWxsaW5nCisKK0ZyaSBNYXIgIDEgMTA6MTE6MTUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmM6IGNsb3NlICM3MjY2MyBhbmQgIzcyNjU4LCBkb24ndCBtZW1kdW1wIHVubGVzcyBjb21waWxlZAorCSAgZXhwbGljaXRlbHkgd2l0aCBtZW1vcnkgZGVidWdnaW5nIHN3aXRjaGVkIG9uCisKK1NhdCBGZWIgMjMgMTE6MDg6MDkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sMi1weXRob24tYXBpLnhtbAorCSAgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQgcHl0aG9uL2xpYnhtbF93cmFwLmggcHl0aG9uL3R5cGVzLmM6CisJICBBZGRlZCB3cmFwcGVyIGZvciB0aGUgeG1sVVJJUHRyIHR5cGUsIHByb3ZpZGVkIGFjY2Vzc29ycywgZml4ZWQKKwkgIHRoZSBhY2Nlc3NvciBnZW5lcmF0b3IgZm9yIHN0cmluZ3MKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvdHN0VVJJLnB5OiBhZGRlZCBhIHNwZWNpZmljCisJICByZWdyZXNzaW9uIHRlc3QuCisKK0ZyaSBGZWIgMjIgMjM6NDQ6NTcgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vUkVBRE1FIHB5dGhvbi9nZW5lcmF0b3IucHkgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9zZXR1cC5weToKKwkgIGFkZGVkIHRoZSAndXN1YWwnIHNldHVwLnB5IHRvIGFsbG93IGJ1aWxkaW5nIGEgbGlieG1sMi1weXRob24KKwkgIG1vZHVsZSBiYXNlZCBvbiB0aGUgc2FtZSBjb2RlLiBUaGUgaW5pdGlhbGl6YXRpb24gaXMgaG93ZXZlcgorCSAgZGlmZmVyZW50IHRoZSAyIC5zbyBmaWxlcyBmbyBsaWJ4bWwyIGFuZCBsaWJ4c2x0IGFyZSBpZGVudGljYWwgYW5kCisJICB0aGV5IGVudHJ5IHBvaW50IGluaXRpYWxpemUgYm90aCBsaWJyYXJpZXMuIHRoaXMgaXMgZG9uZSB0byBhdm9pZAorCSAgc29tZSBwb3NzaWJsZSBuYXN0eSBwcm9ibGVtIHNpbmNlIHRoZSBQeXRob24gZG9uJ3QgbWVyZ2UgdGhlIG1hcHMKKwkgIG9mIGFsbCBzaGFyZWQgbW9kdWxlcy4KKworV2VkIEZlYiAyMCAyMzoxNjowOCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhIHB1c2gvZW5jb2RpbmcgYnVnIHJlcG9ydGVkIGJ5IE1pY2hhZWwKKwkgIG9uIGxpYnJzdmcKKworV2VkIEZlYiAyMCAxOTo1NDowNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oOiBmaXhlcyBhIG1pc3BsYWNlZCAjZW5kaWYKKworV2VkIEZlYiAyMCAxNzo0Nzo1NSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlci5jIHZhbGlkLmM6IGZvdW5kIGFuZCBmaXhlZCBhIGNvdXBsZSBvZiBhbGxvY2F0aW9uIGJ1Z3MKKworV2VkIEZlYiAyMCAxNTozNjowMyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy94bWwuaHRtbCBkb2MvcHl0aG9uLmh0bWwgZG9jLyo6IGFkZGVkIGEgUHl0aG9uIGFuZCBiaW5kaW5nCisJICBwYWdlIGRlc2NyaWJpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIFB5dGhvbiBiaW5kaW5ncyBhbmQgCisJICBnaXZpbmcgcG9pbnRlcnMgdG8gdGhlIG90aGVyIGxhbmd1YWdlcyB3cmFwcGVycy4KKworV2VkIEZlYiAyMCAxMToxNjoxNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaDogcHJlcGFyaW5nIDIuNC4xNgorCSogZG9jLyogcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IHVwZGF0ZWQgYW5kIHJlYnVpbHQgdGhlIGRvY3MsCisJICByZWJ1aWx0IHRoZSBBUEkgYW5kIHdlYiBzaXRlCisJKiB4cGF0aC5jOiBmaXhlZCAjNzE5NzggcG9ydGFiaWxpdHkgYnVncworCitUdWUgRmViIDE5IDIyOjQ5OjM2IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmM6IG9vcHMgYnJva2UgYXV0b21hdGljIGRlZmF1bHRpbmcgb2YgbmFtZXNwYWNlcyBhdHRyaWJ1dGVzLgorCitUdWUgRmViIDE5IDIyOjAxOjM1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmggcGFyc2VyLmM6IGhhZCB0byBjaGFuZ2UKKwkgIDIgaW50ZXJuYWwgcGFyc2luZyBBUEkgd2hlbiBwcm9jZXNzaW5nIGRvY3VtZW50IGNvbnRlbnQKKwkgIHRvIGNoZWNrIHRoZSBzdGFydCBhbmQgZW5kIG9mIGVsZW1lbnQgY29udGVudCBhcmUgZGVmaW5lZAorCSAgaW4gdGhlIHNhbWUgZW50aXR5CisJKiB2YWxpZC5jIGluY2x1ZGUvbGlieG1sL3ZhbGlkLmg6IGF0dHJpYnV0ZSBub3JtYWxpemF0aW9uIGNhbgorCSAgZ2VuZXJhdGUgYSB2YWxpZGl0eSBlcnJvciBhZGRlZCB4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSgpCisJICB3aXRoIHRoZSBjb250ZXh0IHRvIHJlcG9ydCBpdC4KKwkqIFNBWC5jOiBmaXhlZCB0aGUgbGFzdCBrbm93biBidWdzLCBjcmF6eSB2YWxpZGF0aW9uIGNvbnN0cmFpbnRzCisJICB3aGVuIGEgZG9jdW1lbnQgaXMgc3RhbmRhbG9uZSBzZWVtcyBjb3JyZWN0bHkgaGFuZGxlZC4gVGhlcmUKKwkgIGlzIGEgY291cGxlIG9mIG9wZW4gaXNzdWVzIGxlZnQgd2hpY2ggbmVlZCBjb25zaWRlcmF0aW9uIGVzcGVjaWFsbHkKKwkgIFBFOTMgb24gZXh0ZXJuYWwgdW5wYXJzZWQgZW50aXRpZXMgYW5kIHN0YW5kYWxvbmUgc3RhdHVzLiAKKwkgIFJhbiAxODE5IHRlc3RzOiAxODE3IHN1Y2VlZGVkLCAyIGZhaWxlZCBhbmQgMCBnZW5lcmF0ZWQgYW4gZXJyb3IgaW4gOC4yNiBzLgorCSAgVGhlIDIgdGVzdHMgbGVmdCBmYWlsaW5nIGFyZSBhY3R1YWxseSBpbiBlcnJvci4gQ2xlYW51cCBkb25lLgorCitUdWUgRmViIDE5IDE1OjE3OjAyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogaW1wbGVtZW50ZWQgRTU5IHNwYWNlcyBpbiBDREFUQSBkb2VzIG5vdCBtYXRjaCB0aGUKKwkgIG5vbnRlcm1pbmFsIFMKKworVHVlIEZlYiAxOSAxNDo0NDo1MyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jIHBhcnNlci5jIHZhbGlkLmM6IG1vcmUgdmFsaWRhdGlvbiB0ZXN0IGZpeHVwcworCSogY2hlY2steG1sLXRlc3Qtc3VpdGUucHk6IGFkZGVkIGR1cmF0aW9uIGluZm8gZm9yIHRoZSB0ZXN0cworCitNb24gRmViIDE4IDIzOjI1OjA4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgdmFsaWQuYzogYSBjb3VwbGUgb2YgZXJyb3JzIHdlcmUgcmVwb3J0ZWQgYnV0IG5vdAorCSAgc2F2ZWQgYmFjayBhcyBzdWNoIGluIHRoZSBwYXJzaW5nIGNvbnRleHQuIERvd24gdG8gMSUgZmFpbHVyZSByYXRlCisJICBSYW4gMTgxOSB0ZXN0czogMTgwMSBzdWNlZWRlZCwgMTggZmFpbGVkIGFuZCAwIGdlbmVyYXRlZCBhbiBlcnJvcgorCitNb24gRmViIDE4IDIwOjE2OjE1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sSW50ZXJuYWxkLmM6IGlzRXh0ZW5kZXIgd2FzIG1pc3NpbmcgYSBjaGFyIAorCSogcGFyc2VyLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6ICUgYXJlIGFjY2VwdGFibGUgaW4gdGhlCisJICBpbnRlcm5hbCBzdWJzZXQgaWYgd2l0aGluIGEgUFVCTElDIElECisKK01vbiBGZWIgMTggMTk6Mjc6MzIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYyBwYXJzZXJJbnRlcm5hbHMuYyB2YWxpZC5jOiBtb3JlIHdvcmsgb24gdGhlIGNvbmZvcm1hbmNlCisJICBzdWl0ZS4gVG9vayB0aGUgc3RlcCB0byBmaW5hbGx5IGJsb2NrIGRvY3VtZW50cyB3aXRoIGVuY29kaW5nCisJICBlcnJvcnMuIEl0J3MgYSBmYXRhbCBlcnJvciBwZXIgdGhlIHNwZWMsIHBlb3BsZSBzaG91bGQgaGF2ZSBmaXhlZAorCSAgdGhlaXIgZG9jdW1lbnRzIGJ5IG5vdy4KKworTW9uIEZlYiAxOCAxNTozMDoxNCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNoZWNrLXhtbC10ZXN0LXN1aXRlLnB5OiBmaXhlZCB0aGUgdGVzdCBzY3JpcHQgYWZ0ZXIgc29tZSBkaXNjdXNzaW9uCisJICBvbiB0aGUgc2VtYW50aWMgb2YgVFlQRT0iZXJyb3IiCisJKiBNYWtlZmlsZS5hbTogYWRkZWQgdGhlIHNjcmlwdCB0byB0aGUgZGlzdHJpYgorCitNb24gRmViIDE4IDEyOjE3OjQxIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmMgZW50aXRpZXMuYzogZml4ZWQgYSBjb3VwbGUgb2YgY29uZm9ybWFuY2VzIGlzc3VlcyBkZWVwCisJICBpbnRvIHRoZSB2YWxpZGF0aW9uIGNvZGUgKHN0YW5kYWxvbmUgYW5kIHVuZGVjbGFyZWQgTm90YXRpb25zKQorCitNb24gRmViIDE4IDAwOjE3OjI0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGVkICM3MTc0MSBzdXBpZCB0eXBvIGFuIGEgYnVnIGFib3V0IGVuY29kaW5nIHBhcnNpbmcKKwkgIHN0YXllZCB0aGVyZSBmb3IgeWVhcnMgIQorCitNb24gRmViIDE4IDAwOjA2OjQyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYyBTQVguYzogZml4ZWQgIzcxNzQwIE5vdGF0aW9uRGVjbCB3aXRoIGEgcmVxdWlyZWQgZmllbGQKKwkgIG1pc3NpbmcKKworU3VuIEZlYiAxNyAyMzo0NTo0MCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNoZWNrLXhtbC10ZXN0LXN1aXRlLnB5OiBpbXByb3ZlZCB0aGUgYmVoYXZpb3VyIGEgYml0IGFzCisJICB3ZWxsIGFzIHRoZSBsb2dzCisJKiBwYXJzZXIuYyB2YWxpZC5jIFNBWC5jOiBmaXhlZCBhIGZldyBtb3JlIGJ1Z3MgCisJICAiUmFuIDE4MTkgdGVzdHM6IDE3Nzggc3VjZWVkZWQsIDQxIGZhaWxlZCwgYW5kIDAgZ2VuZXJhdGVkIGFuIGVycm9yIgorCitTdW4gRmViIDE3IDIwOjQxOjM3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2hlY2steG1sLXRlc3Qtc3VpdGUucHk6IHB5dGhvbiBzY3JpcHQgdG8gcnVuIHJlZ3Jlc3Npb24gdGVzdHMKKwkgIGFnYWluc3QgdGhlIFhNTCBUZXN0IHN1aXRlIG9mIFczQy9PQVNpcworCSogU0FYLmM6IGZpeGVkIGEgdmFsaWRhdGlvbiBidWcKKwkqIHBhcnNlci5jOiBmaXhlZCAzIGVycm9ycyBwb2ludGVkIGJ5IHRoZSB0ZXN0IHN1aXRlCisJKiBkb2MvYnVpbGREb2NCb29rQ2F0YWxvZzogZml4ZWQgYSB0eXBvIHBvaW50ZWQgYnkgZHJha2UKKwkqIHB5dGhvbi9NYWtlZmlsZS5hbTogZml4ZWQgYSBkZXBlbmRlbmR5CisKK0ZyaSBGZWIgMTUgMjE6NDc6MTMgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxtZW1vcnkuYzogYXZvaWQgYSB3YXJuaW5nIGJ1ZyAjNzE1OTQKKworV2VkIEZlYiAxMyAyMjoxMzozMyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbG1lbW9yeS5jOiBKZXNzZSBQZXJyeSBwcm92aWRlZCBhIHBhdGNoIHRvIHJlbW92ZSBhIGZldworCSAgd2FybmluZyBvbiBhbHBoYS9UcnU2NAorCitXZWQgRmViIDEzIDE0OjMwOjQ5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvZW50aXRpZXMuaDogZml4aW5nIGEgY29tbWVudAorCSogdmFsaWQuYzogZml4aW5nIHNvbWUgdHJvdWJsZXMgd2l0aCB2YWxpZGl0eSBjaGVjayBvbiBuYW1lc3BhY2VzCisJKiByZXN1bHQvVkMvTlMzIHRlc3QvVkMvTlMzOiBhZGRlZCBhIHNwZWNpZmljIHJlZ3Jlc3Npb24gdGVzdAorCitXZWQgRmViIDEzIDE0OjA1OjI0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBGaXhpbmcgIzcxMzQyIHNlcmlhbGl6aW5nICdcbicgaW4gYXR0cmlidXRlIHZhbHVlcworCSogcmVzdWx0L25vZW50L2F0dDMgcmVzdWx0L2F0dDMgdGVzdC9hdHQzOiBhZGRlZCBhIHNwZWNpZmljCisJICB0ZXN0LgorCitUdWUgRmViIDEyIDE0OjQ1OjMyIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jOiBjb3VwbGUgb2YgYnVnIGZpeGVzCisKK01vbiBGZWIgMTEgMTk6NDE6MjkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vKi5weTogcmVtb3ZlZCB0YWJzIGFuZCB1c2VkIHNwYWNlcy4KKworTW9uIEZlYiAxMSAxOToyNTo0NCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaDogcHJlcGFyaW5nIDIuNC4xNQorCSogZG9jL25ld3MuaHRtbCBkb2MveG1sLmh0bWwgZG9jL3htbGlvLmh0bWw6IHJlYnVpbHQgc29tZSBkb2NzCisKK01vbiBGZWIgMTEgMTQ6NTM6MjQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MveG1sY2F0YWxvZ19tYW4ueG1sOiB0cnlpbmcgdG8gY2xvc2UgUmVkIEhhdCBidWcgIzU4NzA3CisJICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU4NzA3CisKK01vbiBGZWIgMTEgMDk6NTM6MDIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9lbmNvZGluZy5oIGluY2x1ZGUvbGlieG1sL2VudGl0aWVzLmgKKwkgIGluY2x1ZGUvbGlieG1sL2dsb2JhbHMuaCBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaAorCSAgaW5jbHVkZS9saWJ4bWwvdGhyZWFkcy5oIGluY2x1ZGUvbGlieG1sL3RyZWUuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IHRyeWluZyB0byBmaXggdGhlIGluY2x1ZGUgbWVzcworCitNb24gRmViIDExIDA4OjUzOjMzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IHJldmVydGVkIHBhcnQgb2YgdGhlIHByZXZpb3VzCisJICBhdHRlbXB0IHRvIHByb3ZpZGUgIzY5NjU1LCB0aGlzIHdhcyBicmVha2luZyB0aGUgYnVpbGQuCisKK1N1biBGZWIgMTAgMTQ6MTM6MzQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1MdHJlZS5jIE1ha2VmaWxlLmFtIGJ1aWxkX2dsb2IucHkgY29uZmlndXJlLmluIGRlYnVnWE1MLmMKKwkgIGdsb2JhbHMuYyBwYXJzZXIuYyB0aHJlYWRzLmMgdHJlZS5jIHZhbGlkLmMgeG1sbWVtb3J5LmMKKwkgIHhwYXRoLmMgeHBvaW50ZXIuYyBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmgKKwkgIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIGluY2x1ZGUvbGlieG1sL3RyZWUuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5LmggaW5jbHVkZS9saWJ4bWwveHBhdGhJbnRlcm5hbHMuaDoKKwkgIFRlbnRhdGl2ZWx5IGZpeGVkICM2OTY1NSAsIG1ha2UgY29tcGlsaW5nIHdpdGggLVdyZWR1bmRhbnQtZGVjbHMKKwkgIGNsZWFuLgorCSogcHl0aG9uL2xpYnhtbC5jOiBmaXhlZCBhIHdhcm5pbmcuCisKK1N1biBGZWIgMTAgMTI6MDI6NTkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmMgdmFsaWQuYyB4aW5jbHVkZS5jOiBmaXggIzY4ODgyLCBjbGVhbnVwIHRoZSBYSW5jbHVkZQorCSAgY29weWluZyBvZiBub2RlLCBtZXJnZSBiYWNrIElEcyBpbiB0aGUgdGFyZ2V0IGRvY3VtZW50LgorCSogcmVzdWx0L1hJbmNsdWRlL2RvY2lkcy54bWwgdGVzdC9YSW5jbHVkZS9kb2NzL2RvY2lkcy54bWwKKwkgIHRlc3QvWEluY2x1ZGUvZW50cy9pZHMueG1sOiB0ZXN0IGNhc2UKKwkqIHJlc3VsdC9WQy9FbGVtZW50VmFsaWQ0OiBvdXRwdXQgY2hhbmdlZCBkdWUgdG8gYSB0eXBvIGZpeAorCitTYXQgRmViICA5IDIzOjE1OjA0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL01ha2VmaWxlLmFtOiBzZWVtcyBzb21lIHZlcnNpb24gb2YgYXV0b21ha2UgZGlkbid0CisJICBnZW5lcmF0ZSB0aGUgZGVwZW5kZW5jaWVzIHJpZ2h0IGFzIEphY29iIGZvdW5kIG91dC4gQWRkCisJICBhbiBleHRyYSBkZXBlbmRlbmN5IHJ1bGUuCisKK1NhdCBGZWIgIDkgMTg6NTk6MjMgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYyB2YWxpZC5jOiBKdXN0aW4gRmxldGNoZXIgZm91bmQgc29tZSBwYXJ0cworCSAgb2YgdGhlIGNvZGUgbmVlZGluZyBjbGVhbnVwCisJKiBsaWJ4bWwuc3BlYy5pbiBweXRob24vTWFrZWZpbGUuYW0gcHl0aG9uL2dlbmVyYXRvci5weQorCSAgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwucHk6IEZpeGVkIHRoZSBweXRob24gTWFrZWZpbGVzCisJICBjb3JyZWN0ZWQgYSBidWcgc2hvd2luZyB1cCBvbiBpYTY0LCBjaGFuZ2VkIHRoZSBuYW1lIG9mIHRoZQorCSAgcHl0aG9uIGludGVybmFsIG1vZHVsZSB0b28KKworRnJpIEZlYiAgOCAxNToxOToyOCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBhcHBsaWVkIHBhdGNoIGZyb20gQW5kcmlzIFBhdmVuaXMgZm9yIGJpbmFyeQorCSAgbmFtZSBzdWZmaXhlcworCitGcmkgRmViICA4IDE0OjQzOjE3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jIHdpbjMyL3dpbjMyY29uZmlnLmg6IGZpeGluZyAjNjg3NDgKKworRnJpIEZlYiAgOCAxNDozNzowNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGluZyAjNzAxNjYKKworRnJpIEZlYiAgOCAxNDozMToyNCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGluZyAjNzAwNzcKKworRnJpIEZlYiAgOCAxNDoyNDowMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIENvcHlyaWdodCBNYWtlZmlsZS5hbSBSRUFETUUgY29uZmlndXJlLmluIGxpYnhtbC5zcGVjLmluOgorCSAgQ2hhbmdlZCB0byB0aGUgTUlUIExpY2VuY2UKKwkqIGRvYy9GQVEuaHRtbCBkb2MvY2F0YWxvZy5odG1sIGRvYy9pbnRyby5odG1sIGRvYy94bWwuaHRtbAorCSAgZG9jL3htbGlvLmh0bWw6IHVwZGF0ZWQgdGhlIGRvYyBhY2NvcmRpbmdseQorCSogaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmggY29uZmlndXJlLmluOiBwcmVwYXJpbmcKKwkgIDIuNC4xNCByZWxlYXNlCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sMi1weXRob24tYXBpLnhtbAorCSAgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQgcHl0aG9uL2xpYnhtbF93cmFwLmggcHl0aG9uL3R5cGVzLmM6CisJICBmaXhlZCB0aGUgY29uc3QgeG1sQ2hhciAqIHdyYXBwZXIgYW5kIGdlbmVyYXRvciwgWFBhdGggZXh0ZW5zaW9uCisJICBmdW5jdGlvbnMgbm93IHVzZSB0aGUgY29udGV4dCBhcyBmaXJzdCBhcmd1bWVudAorCSogcHl0aG9uL3Rlc3RzL3RzdHhwYXRoLnB5IHB5dGhvbi90ZXN0cy94cGF0aC5weQorCSAgcHl0aG9uL3Rlc3RzL3hwYXRoZXh0LnB5OiBVcGRhdGVkIHRoZSB0ZXN0cyBhY2NvcmRpbmdseQorCSogdHJlZS5jOiBmaXhlZCBidWcgIzcwMDY3CisKK1RodSBGZWIgIDcgMTc6MzM6NTggQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogY2xlYW51cAorCSogZGVidWdYTUwuYzogYWx3YXlzIHVzZSBzdGRvdXQgaWYgb3V0cHV0IGlzIE5VTEwKKwkqIHhtbElPLmM6IGRvbid0IGNsb3NlIGZpbGVkZXNjcmlwdG9ycyBwYXNzZWQgdG8gb3V0cHV0QnVmZmVycworCSogcHl0aG9uL01ha2VmaWxlLmFtIHB5dGhvbi9nZW5lcmF0b3IucHkgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQKKwkgIHB5dGhvbi9saWJ4bWxfd3JhcC5oIHB5dGhvbi90eXBlcy5jOiBhdWdtZW50ZWQgdGhlIG51bWJlciBvZiBiaW5kaW5ncworCSAgaGFuZGxpbmcgRklMRSAqIGFuZCBYUGF0aCBjb250ZXh0cworCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtOiBhdm9pZCBhIHN0dXBpZCBwcm9ibGVtIGR1ZSB0byB0aGUKKwkgIHVzZSBvZiBURVNULgorCitXZWQgRmViICA2IDIzOjM3OjA3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBmaXhlZCBzdHVwaWQgYnVnICM3MDczOCBmb3VuZCBieSBhbGZvbnMgaG9vZ2Vydm9yc3QKKworV2VkIEZlYiAgNiAxNzowNDo1MSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9UT0RPIHB5dGhvbi9saWJ4bWwuYzogY2xlYW51cCB0aGUgZXh0ZW5zaW9uIGZ1bmN0aW9uIGxvb2t1cAorCSogeG1sbWVtb3J5LmMgaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IGFsd2F5cyBjb21waWxlIHRoZSBsaXN0CisKK1R1ZSBGZWIgIDUgMTc6MzM6MzAgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gcHl0aG9uL01ha2VmaWxlLmFtOiBkbyBub3QgaW5zdGFsbCBvdXRzaWRlCisJICBvZiBwcmVmaXgKKworTW9uIEZlYiAgNCAxNTowNTo1NSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9UT0RPIHB5dGhvbi9saWJ4bWwuYzogc3RhcnRlZCBhZGRpbmcgU0FYIGludGVyZmFjZXMKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvcHVzaFNBWC5weTogYWRkZWQgYSBiYXNpYworCSAgU0FYIHRlc3QKKworTW9uIEZlYiAgNCAwMToxMjo0MiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogaGFyZGVuZWQgdGhlIGFkZENoaWxkIGZ1bmN0aW9uCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sMi1weXRob24tYXBpLnhtbAorCSAgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQgcHl0aG9uL2xpYnhtbF93cmFwLmggcHl0aG9uL1RPRE86CisJICBhZGRlZCBhY2Nlc3NvcnMgbmVlZGVkIGZvciB4bWxOb2RlLCBhIGJpdCBtb3JlIHRlc3RpbmcgYW5kCisJICBleHRlbnNpb24gb2YgaW50ZXJmYWNlcworCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9idWlsZC5weTogYWRkZWQgYSB0ZXN0CisJICBidWlsZCBmcm9tIHNjcmF0Y2gvc2F2ZS9sb2FkL2NoZWNrCisKK1N1biBGZWIgIDMgMjE6MTA6MzkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogY2hhbmdlIGEgc21hbGwgYml0IGluIHRoZSB3YXkgdmFsaWRpZHkKKwkgIGVycm9yIG1lc3NhZ2VzIGdldCBpbml0aWFsaXplZAorCSogcHl0aG9uL1RPRE8gcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwyLXB5dGhvbi1hcGkueG1sCisJICBweXRob24vbGlieG1sMmNsYXNzLnR4dCBweXRob24vbGlieG1sX3dyYXAuaCBweXRob24vdHlwZXMuYzoKKwkgIGFkZGVkIHNvbWUgbWVtb3J5IGRlYnVnZ2luZyB0byB0cmFjayBsZWFrcyBhdCB0aGUgbGlieG1sMiBsZXZlbAorCSogcHl0aG9uL3Rlc3RzLyoucHk6IGNoYW5nZWQgYWxsIHRlc3RzIHRvIGNoZWNrIGZvciBsZWFrcywKKwkgIHRoZXJlIGlzIGp1c3Qgb25lIGxlZnQgaW4gWFBhdGggZXh0ZW5zaW9uIHJlZ2lzdHJhdGlvbnMuCisKK1N1biBGZWIgIDMgMTc6NTA6NDYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vVE9ETyBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwyLXB5dGhvbi1hcGkueG1sCisJICBweXRob24vbGlieG1sMmNsYXNzLnR4dDogbW9yZSBhY2Nlc3NvciBjbGFzc2VzIGZvciB0aGUgcGFyc2VyCisJICBjb250ZXh0LCBhbGxvdyB0byBzd2l0Y2ggb24gYW5kIGNoZWNrIHZhbGlkaXR5CisJKiBweXRob24vdGVzdHMvTWFrZWZpbGUuYW0gcHl0aG9uL3Rlc3RzL2Vycm9yLnB5CisJICBweXRob24vdGVzdHMvaW52YWxpZC54bWwgcHl0aG9uL3Rlc3RzL3ZhbGlkLnhtbAorCSAgcHl0aG9uL3Rlc3RzL3ZhbGlkYXRlLnB5OiBhdHRkZWQgbW9yZSB0ZXN0IGFuZCBhbmQgYWRkZWQgZXJyb3IucHkKKwkgIHdoaWNoIEkgZm9yZ290IHRvIGNvbW1pdCBpbiB0aGUgbGFzdCBzdGVwCisKK1N1biBGZWIgIDMgMTY6MDM6NTUgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vTWFrZWZpbGUuYW0gcHl0aG9uL3R5cGVzLmM6IGNsZWFudXAKKwkqIHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sLnB5IHB5dGhvbi9saWJ4bWxfd3JhcC5oCisJICBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwyLXB5dGhvbi1hcGkueG1sIAorCSAgcHl0aG9uL2xpYnhtbDJjbGFzcy50eHQ6IGFkZGVkIGNsYXNzIGZvciBwYXJzZXIgY29udGV4dCwgYWRkZWQKKwkgIGZpcnN0IGN1dCBmb3IgcHVzaCBtb2RlIHN1cHBvcnQuIEFkZGVkIGEgZnJhbWV3b3JrIHRvIGdlbmVyYXRlCisJICBhY2Nlc3NvcnMgZnVuY3Rpb25zLgorCSogcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtIHB5dGhvbi90ZXN0cy9wdXNoLnB5OiBhZGRlZCBhIHB1c2gKKwkgIHRlc3QKKworU3VuIEZlYiAgMyAwMDoxNzoyNiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9NYWtlZmlsZS5hbSBweXRob24vVE9ETyBweXRob24vbGlieG1sLnB5OiBmaXhlZCBhIHNtYWxsCisJICBidWcgYSBiaXQgb2YgY2xlYW51cC4KKworU2F0IEZlYiAgMiAyMjo0NzoxMCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9NYWtlZmlsZS5hbSBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbDItcHl0aG9uLWFwaS54bWwKKwkgIHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0OiBhZGRpbmcgZXJyb3IgcmVkaXJlY3Rpb25zIGFuZCBwcmVmb3JtYXQKKwkgIHRvIGEgcHl0aG9uIGhhbmRsZXIKKwkqIHB5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBweXRob24vdGVzdHMvKi5weTogY2xlYW51cCBtYWRlIGFsbAorCSAgdGVzdHMgc2VsZiBjaGVja2luZworCitTYXQgRmViICAyIDEzOjE4OjU0IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwucHk6IGZpeGVkIGEgc3R1cGlkIGJ1ZyB3aGVuIHJlbmFtaW5nCisJICBhIGZ1bmN0aW9uCisKK1NhdCBGZWIgIDIgMTE6MjU6NTEgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuc3BlYy5pbiBweXRob24vTWFrZWZpbGUuYW0gcHl0aG9uL1RPRE8gcHl0aG9uL2dlbmVyYXRvci5weQorCSAgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwyLXB5dGhvbi1hcGkueG1sCisJICBweXRob24vbGlieG1sMmNsYXNzLnR4dDogUHJvZ3Jlc3NpbmcgdGhyb3VnaCB0aGUgVE9ET3MsIGNsYXNzCisJICBkZXNjcmlwdGlvbiBvdXRwdXQsIGV4dHJhIFhNTCBBUEksIFJQTSBub3cgYnVpbGRzIHRoZSB3cmFwcGVycworCSAgZm9yIGFsbCBweXRob24gaW5zdGFsbGVkIHZlcnNpb25zCisKK1NhdCBGZWIgIDIgMTA6MTM6NTIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gbGlieG1sLnNwZWMuaW4gcHl0aG9uL01ha2VmaWxlLmFtIHB5dGhvbi9UT0RPCisJICBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwyY2xhc3MudHh0OiBhZGRlZCBtb3JlIGluZm9ybWF0aW9ucworCSAgaW4gdGhlIGxpYnhtbDItcHl0aG9uIHBhY2thZ2UgaW5jbHVkaW5nIGRvY3MuIFNsaWdodGx5IGNoYW5nZWQKKwkgIHRoZSBjbGFzcyBoaWVyYXJjaHkKKwkqIHB5dGhvbi90ZXN0cy8qOiBhZGRlZCBiYXNpYyByZWdyZXNzaW9uIHRlc3RzIGluZnJhc3RydWN0dXJlIHRvbworCitGcmkgRmViICAxIDIzOjExOjU4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGxpYnhtbC5zcGVjLmluIGV4YW1wbGUvTWFrZWZpbGUuYW0gcHl0aG9uL01ha2VmaWxlLmFtOgorCSAgYWRkZWQgbGlieG1sMi1weXRob24gYXMgcGFydCBvZiB0aGUgcGFja2FnZXMgaW5zdGFsbGVkCisKK0ZyaSBGZWIgIDEgMTg6NDg6MTkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vTWFrZWZpbGUuYW0gcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmMKKwkgIHB5dGhvbi9saWJ4bWwucHk6IG1vcmUgd29yaywgbm93IGFibGUgdG8gZXh0ZW5kIHRoZQorCSAgWFBhdGggaW50ZXJwcmV0ZXIgd2l0aCBmdW5jdGlvbnMgd3JpdHRlbiBpbiBweXRob24uCisKK0ZyaSBGZWIgIDEgMTA6Mjg6NTEgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vTWFrZWZpbGUuYW06IEphY29iIHNlbnQgYSBwYXRjaCB0byBhbGxvdyBidWlsZGluZyBmcm9tCisJICB0YXJmaWxlLgorCitGcmkgRmViICAxIDAwOjQwOjQ4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL01ha2VmaWxlLmFtIHB5dGhvbi9saWJ4bWwuYyBjb25maWd1cmUuaW4gTWFrZWZpbGUuYW06CisJICBpbnNlcnRlZCB0aGUgcHl0aG9uIHdyYXBwZXJzIGJ1aWxkLCBJIGhvcGUgdGhpcyB3b24ndCBiZSB0b28KKwkgIHVucG9ydGFibGUKKworVGh1IEphbiAzMSAyMToyNzozNyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IG1pbm9yIG9wdGltaXphdGlvbgorCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbC5weQorCSAgcHl0aG9uL2xpYnhtbF93cmFwLmg6IG1vcmUgd29yayBvbiB0aGUgcHl0aG9uIGJpbmRpbmdzLAorCSAgdGhleSBub3cgc3VwcG9ydCBYUGF0aCBhbmQgdGhlcmUgaXMgbm8gZXZpZGVudCBsZWFrCisKK1RodSBKYW4gMzEgMDA6NDg6MDYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBweXRob24vZ2VuZXJhdG9yLnB5IHB5dGhvbi9saWJ4bWwuYyBweXRob24vbGlieG1sLnB5OgorCSAgbW9yZSB3b3JrIG9uIHRoZSBweXRob24gYmluZGluZ3MgZ2VuZXJhdG9yLgorCitXZWQgSmFuIDMwIDIxOjUxOjI2IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcHl0aG9uL2dlbmVyYXRvci5weSBweXRob24vbGlieG1sLmMgcHl0aG9uL2xpYnhtbF93cmFwLmg6CisJICBtb3JlIHdvcmsgb24gdGhlIHB5dGhvbiBiaW5kaW5ncy4KKworV2VkIEphbiAzMCAxNzozNTozMyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHB5dGhvbi9nZW5lcmF0b3IucHkgcHl0aG9uL2xpYnhtbC5jIHB5dGhvbi9saWJ4bWwucHkKKwkgIHB5dGhvbi9saWJ4bWxfd3JhcC5oOiBjb21taXRlZCBlYXJseSB2ZXJzaW9uIG9mIGEgcHl0aG9uIGJpbmRpbmcKKwkgIGZvciBwcml2YXRlIHVzZSBvbmx5IEFUTQorCitTYXQgSmFuIDI2IDIyOjQxOjEzIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW50aXRpZXMuYyB0cmVlLmMgaW5jbHVkZS9saWJ4bWwvZW50aXRpZXMuaDogYXBwbGllZCBwYXRjaAorCSAgZnJvbSBBbnRob255IEpvbmVzIHRvIGltcGxlbWVudCBjb3B5IG9mIERURCBzdWJ0cmVlIHRvby4gSGFkCisJICBqdXN0IHRvIGtlZXAgMiBmdW5jdGlvbiBwcml2YXRlIHdoaWNoIHJlYWxseSBvdWdodCB0byBiZWNvbWUKKwkgIHB1YmxpYyBvbmVzLgorCitGcmkgSmFuIDI1IDE1OjE0OjU1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhZGRlZCBwb2ludGVycyB0byB0aGUgd2ViIHBhZ2VzIGluIHRoZSB1c2FnZSgpCisKK1RodSBKYW4gMjQgMTc6MDQ6MDQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IG1vcmUgZml4ZXMgZnJvbSBQZXRyIEtvemVsa2EgZm9yIGF0dHJpYnV0ZSBoYW5kbGluZworCSAgaW4gdGhlIHRyZWUgQVBJIHRvIGFsaWduIHRoZSBzZW1hbnRpYyB3aXRoIERPTS4KKworVGh1IEphbiAyNCAxNjowMDo1MyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmMgdHJlZS5jIGVudGl0aWVzLmM6IGFub3RoZXIgc2V0IG9mIHBhdGNoZXMgZnJvbQorCSAgQW50aG9ueSBKb25lcyBmb3IgY29weSBvcGVyYXRpb25zIGNsZWFudXAgYW5kIHJvYnVzdG5lc3MKKworV2VkIEphbiAyMyAxODo1Mzo1NSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9BUEljaHVuayouaHRtbCBkb2MvcGFyc2VkZWNsLnB5IGRvYy9hcGkueHNsOiBnZW5lcmF0ZWQKKwkgIGFuIGFscGhhYmV0aWMgaW5kZXggYmFzZWQgb24gY29tbWVudHMgY29udGVudAorCSogZG9jLyo6IHJlYnVpbHQgdGhlIHdlYiBzaXRlIHdpdGggdGhlIG5ldyByZWZlcmVuY2VzCisKK1dlZCBKYW4gMjMgMTU6MTQ6MjIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuaDogR3JlZyBTamFhcmRlbWEgc3VnZ2VzdGVkIHRvIHVzZSBhbgorCSAgZXBvbmVudGlhbCBidWZmZXIgZ3JvdGggcG9saWN5IGluIHhtbFBhcnNlckFkZE5vZGVJbmZvKCkKKworV2VkIEphbiAyMyAxMzozMjo0MCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy9hcGkueHNsIGRvYy9BUEljb25zdHJ1Y3RvcnMuaHRtbCBkb2MvQVBJZmlsZXMuaHRtbAorCSAgZG9jL0FQSWZ1bmN0aW9ucy5odG1sIGRvYy9BUElzeW1ib2xzLmh0bWwgZG9jL2xpYnhtbDItcmVmcy54bWwKKwkgIGRvYy9wYXJzZWRlY2wucHkgZG9jL01ha2VmaWxlLmFtOiB1cGRhdGVkIHRoZSBweXRob24gZXh0cmFjdG9yCisJICB0byBnZW5lcmF0ZSBjcm9zcy1yZWZlcmVuY2VzLCBhbmQgYWRkZWQvdXBkYXRlZCB0aGUgc3R5bGVzaGVldHMKKwkgIHRvIGdlbmVyYXRlIGFuZCBsaW5rIEFQSSBpbmRleGVzLiBUaGUgZ2VuZXJpYyBrZXl3b3JkIGluZGV4CisJICBpcyBub3QgZG9uZSB5ZXQuCisJKiBkb2MvKi5odG1sOiByZWdlbmVyYXRlZCBhbGwgdGhlIHVzdWFsIGRvY3MgdG9vCisKK1R1ZSBKYW4gMjIgMjM6MTE6MjYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jOiBhZGRlZCBhbiB4cGF0aCBmdW5jdGlvbiB0byB0aGUgc2hlbGwgZm9yIFQuIFYuIFJhbWFuCisKK1R1ZSBKYW4gMjIgMjI6NDI6MjMgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jOiBwYXRjaCBmcm9tIEFudGhvbnkgSm9uZXMgdG8gY2F0Y2ggTlVMTCBub2RlcyBpbgorCSAgZGVidWcgcm91dGluZXMuCisKK1R1ZSBKYW4gMjIgMjI6Mzg6NDIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGFwcGx5IGFuIHBhdGNoIGZyb20gUGV0ciBLb3plbGthIGZvciB1bmxpbmsgYW5kIHJlcGxhY2UgCisJICBzdXBwb3J0IG9mIGF0dHJpYnV0ZSBub2RlcworCitUdWUgSmFuIDIyIDE5OjEyOjA2IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2xpYnhtbDItYXBpLnhtbCBkb2MvcGFyc2VkZWNsLnB5OiBCdWlsZCBhIG5ldyB2ZXJzaW9uCisJICBob3BlZnVsbHkgbmVhciBjb21wbGV0ZSBhbmQgZnVsbHkgZG9jdW1lbnRlZCBvZiB0aGUgQVBJIGluIFhNTAorCSogSFRNTHRyZWUuYyBTQVguYyBkZWJ1Z1hNTC5jIGVycm9yLmMgZ2xvYmFscy5jIHBhcnNlci5jIHRyZWUuYworCSB4bWxJTy5jIHhtbG1lbW9yeS5jIGluY2x1ZGUvbGlieG1sL2NhdGFsb2cuaCBpbmNsdWRlL2xpYnhtbC9oYXNoLmgKKwkgaW5jbHVkZS9saWJ4bWwvbGlzdC5oIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oIGluY2x1ZGUvbGlieG1sL3RyZWUuaAorCSBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaCBpbmNsdWRlL2xpYnhtbC92YWxpZC5oaQorCSBpbmNsdWRlL2xpYnhtbC94bWxJTy5oIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmhpCisJIGluY2x1ZGUvbGlieG1sL3htbG1lbW9yeS5oIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbmkKKwkgaW5jbHVkZS9saWJ4bWwveHBhdGguaCBpbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oOgorCSAgQ2xlYW5lZCB1cCB0aGUgZG9jIGNvbW1lbnRzIGEgbG90IGluIHRoZSBwcm9jZXNzLCB0aGUgaW50ZXJmYWNlCisJICBjb3ZlcmFnZSBpcyBub3cgMTAwJQorCitUdWUgSmFuIDIyIDAwOjEyOjU4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2xpYnhtbDItYXBpLnhtbCBkb2MvcGFyc2VkZWNsLnB5OiBpbXByb3ZlZCB0aGUgc2NyaXB0IHRvCisJICBleHRyYWN0cyBjb21tZW50cyBmcm9tIHRoZSBndGstZG9jIERvY0Jvb2sgb3V0cHV0IChhIGJpdAorCSAgY29udm9sdXRlZCBidXQgc2VlbXMgdG8gd29yaykuCisKK01vbiBKYW4gMjEgMTg6Mjk6MTkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSBkb2MvTWFrZWZpbGUuYW0gZG9jL2xpYnhtbDItYXBpLnhtbCBkb2MvcGFyc2VkZWNsLnB5OgorCSAgYWRkZWQgYW4gWE1MIGRlc2NyaXB0aW9uIG9mIHRoZSBBUEksIG1vdmVkIHRoZSBzY3JpcHQgZ2VuZXJhdGluZworCSAgaXQgaGVyZS4gQWRkZWQgYSAibWFrZSBhcGkiIHRhcmdldAorCitNb24gSmFuIDIxIDE0OjM0OjM3IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBBZGFtIExvdW5kcyBwb2ludGVkIG91dCBhIGJ1ZyBpbiB4bWxTZWFyY2hOcygpCisKK01vbiBKYW4gMjEgMDk6NTU6MjEgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmg6IHRoZSBjaGFuZ2UgbWFkZSB0bworCSAgeG1sWFBhdGhGdW5jTG9va3VwRnVuYyB3YXMgaW5jb21wYXRpYmxlIHJvbGwgaXQgYmFjaworCitTdW4gSmFuIDIwIDIzOjAzOjQxIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmM6IGNsZWFudXAgcGF0Y2ggZnJvbSBBbnRob255IEpvbmVzCisJKiBkb2MvTWFrZWZpbGUuYW06IGZpeCB0aGUgaGVhZGVycyB0byBhdm9pZCBpbiBtYWtlIHNjYW4KKwkqIHBhcnNlckludGVybmFscy5jIHhwYXRoLmMgaW5jbHVkZS9saWJ4bWwvKi5oOiBjbGVhbnVwIG9mIHRoZQorCSAgaW5jbHVkZXMsICogdnMgUHRyIGFuZCBnZW5lcmFsIGNsZWFudXAKKwkqIHBhcnNlZGVjbC5weTogZmlyc3QgdmVyc2lvbiBvZiBhIHNjcmlwdCB0byBleHRyYWN0IHRoZQorCSAgbW9kdWxlIGludGVyZmFjZXMsIHRoZSBnb2FsIHdpbGwgYmUgdG8gcHJvdmlkZSAuZGVjbCBvciBYTUwKKwkgIHNwZWNpZmljYXRpb24gb2YgdGhlIGludGVyZmFjZXMgdG8gYnVpbGQgd3JhcHBlcnMuCisKK1N1biBKYW4gMjAgMTM6Mzg6MjIgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MveG1sY2F0YWxvZ19tYW4ueG1sIHhtbGNhdGFsb2cuYzogRml4ZWQgYnVnICM2ODgzMCwgeG1sY2F0YWxvZworCSAgbm93IHByb3ZpZGVzIHJldHVybiBjb2RlcyBpbiBjYXNlIG9mIGVycm9ycworCitTYXQgSmFuIDE5IDE2OjM2OjIxIENFVCAyMDAyIEJqb3JuIFJlZXNlIDxicmVlc2VAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiB0cmlvLmggdHJpby5jIHRyaW9kZWYuaCB0cmlvcC5oIHRyaW9uYW4uaCB0cmlvbmFuLmMgTWFrZWZpbGUuYW06CisJICBVcGdyYWRlZCB0byB0cmlvIGJhc2VsaW5lIDEuNgorCSogc3RyaW8uaCBzdHJpby5jOiBSZXBsYWNlZCBieSB0cmlvc3RyLmggYW5kIHRyaW9zdHIuYworCitGcmkgSmFuIDE4IDE3OjIyOjUwIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2xvYmFscy5jIHhtbElPLmMgeG1sY2F0YWxvZy5jOiByZW1vdmVkIHRoZSBsYXN0IG9jY3VyZW5jZXMKKwkgIG9mIHN0cmR1cCB1c2FnZSBpbiB0aGUgY29kZQorCitGcmkgSmFuIDE4IDEyOjQ3OjE1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgZXJyb3IuYzogS2VpdGggSXNkYWxlIGNvbXBsYWluZWQgcmlnaHRseSB0aGF0IAorCSAgeG1sSW5pdFBhcnNlcigpIGRpZCBub3QgcHJlc2VydmUgdmFsdWUgc2V0IGJ5IHhtbFNldEdlbmVyaWNFcnJvckZ1bmMKKworVGh1IEphbiAxNyAwOTo0NDo0NCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogZml4ZWQgdGhlIGZ1bnh0aW9uIHRvIHNldCB0aGUgeG1sOiBhdHRyaWJ1dGVzCisJKiBkZWJ1Z1hNTC5jOiBhZGRlZCAic2V0YmFzZSIgdG8gdGVzdCBpdC4KKworV2VkIEphbiAxNiAxNjozNjowOCBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogdXBkYXRlIHhtbE5vZGVTZXRDb250ZW50KCkgYW5kIHhtbE5vZGVTZXRDb250ZW50TGVuKCkKKwkgIHRvIGFsbG93IHVwZGF0aW5nIGFuIGF0dHJpYnV0ZSBjb250ZW50CisKK1R1ZSBKYW4gMTUgMTg6MDk6MjMgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBsaWJ4bWwuaDogdHJ5IHRvIGF2b2lkIHByb2JsZW1zIHdoZW4gY29tcGlsaW5nIG9uIFdpbmRvd3MKKworTW9uIEphbiAxNCAxODo1NjoyNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGhhc2guYzogcGF0Y2ggZnJvbSBBbnRob255IEpvbmVzIGZvciBoYXNoLmMgYWxsb2NhdGlvbiBzaXplCisJKiBNYWtlZmlsZS5hbTogdHJ5aW5nIHRvIHdvcmsgYXJvdW5kIFlldCBBbm90aGVyIExpYnRvb2wgTWFkbmVzcworCSAgYW5kIGJ1aWxkIHRoZSAyLjQuMTMgcmVsZWFzZSBmaW5hbGx5IC4uLgorCitNb24gSmFuIDE0IDE4OjI3OjE5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oOiB1cGRhdGVkIHRvIDIuNC4xMworCSogZG9jLyogOiB1cGRhdGUgb2YgdGhlIGRvY3VtZW50YXRpb24KKworTW9uIEphbiAxNCAxNzo1Mzo0MSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRlYnVnWE1MLmMgdHJlZS5jOiBzb21lIGNsZWFudXAgYWZ0ZXIgYW4gdW5zdWNjZXNzZnVsIGF0dGVtcHQKKwkgIGF0IGZpeGluZyAjNjEyOTAgOi0oCisKK1N1biBKYW4gMTMgMjE6MzA6NTQgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IGZpeGVkIHhtbFNhdmVGb3JtYXRGaWxlRW5jKCkgd2hlbiBlbmNvZGluZyA9PSBOVUxMCisJICBGaXhlcyBidWcgIzY3MjI5CisKK1N1biBKYW4gMTMgMTc6MTQ6MDYgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IHRyeWluZyB0byBhdm9pZCB0cm91YmxlcyB3aGVuIGEgc3VidHJlZSBpcyBjb3BpZWQKKwkgIGFuZCBjb2FsZXNjZWQgaW4gcGFydCB3aXRoIHRoZSB0YXJnZXQgdHJlZS4gU2hvdWxkIGZpeCAKKwkgIGJ1ZyAjNjc0MDcKKworU3VuIEphbiAxMyAxNjozNzoxNSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGZpeGVkIHZhbGlkYXRpb24gb2YgYXR0cmlidXRlcyBjb250ZW50IG9mIHR5cGUKKwkgIE5BTUUgTkFNRVMgTk1UT0tFTiBhbmQgTk1UT0tFTlMgdG8gYWNjZXB0IGludGVybmF0aW9uYWxpemVkCisJICB2YWx1ZXMsIHZlcnkgb2xkIGJ1Zy4gRml4ZXMgIzY3NjcxCisKK1N1biBKYW4gMTMgMTU6MDc6NDkgQ0VUIDIwMDIgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaCB0cmVlLmM6IGludGVncmF0ZWQKKwkgIGEgY291cGxlIG9mIGZpeGVzIGFuZCBhIG5ldyBBUEkgZnVuY3Rpb24geG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYygpCisJICBmcm9tIEtlaXRoIElzZGFsZSBhbmQgZGVkaWNhdGVkIHRvIHhzbGRiZyB0aGUgWFNMVCBkZWJ1Z2dlci4KKworU3VuIEphbiAxMyAxNDoyMzoyMSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRocmVhZHMuYzogYXBwbGllZCBTZXJndWVpIE5hcm9qbnlpJ3MgcGF0Y2ggdG8gYWRkIG5hdGl2ZQorCSAgdGhyZWFkIHN1cHBvcnQgb24gdGhlIFdpbjMyIHBsYXRmb3JtCisJKiB0ZXN0VGhyZWFkc1dpbjMyLmMgTWFrZWZpbGUuYW06IGFkZGVkIHRoZSB0ZXN0IHByb2dyYW0gYWxzbworCSAgZnJvbSBTZXJndWVpLCBXaW4zMiBzcGVjaWZpYworCSogaW5jbHVkZS93aW4zMmNvbmZpZy5oIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oLmluOgorCSAgYWRkZWQgcGF0Y2ggZnJvbSBJZ29yIGZvciB0aGUgV2luZG93cyB0aHJlYWQgc3BlY2lmaWMgZGVmaW5lcy4KKworV2VkIEphbiAgOSAxMjo1MDozOSBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVudGl0aWVzLmM6IEFudGhvbnkgSm9uZXMgcG9pbnRlZCBhIGJ1ZyBpbiB4bWxDb3B5RW50aXR5KCkKKworVHVlIEphbiAgOCAxNDoyMzoyMiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy8qLmh0bWwgZG9jL3NpdGUueHNsIGRvYy9NYWtlZmlsZTogcmVuYW1lZCBYTUwuaHRtbAorCSAgb3V0cHV0IHBhZ2UgaW50byBYTUxpbmZvLmh0bWwuIENsb3NlIGJ1ZyAjNjY5NTEgYW5kCisJICByYWlzZWQgYnkgUm9iZXJ0IENvbGxpbnMgdG9vLgorCitUdWUgSmFuICA4IDE0OjEzOjE4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZW5jb2RpbmcuYzogUGF1bCBLZW9naCBwb2ludGVkIG91dCBhIHBvc3NpYmlsaXR5IG9mIHNlZ2ZhdWx0CisJICBvbiByZXBldGVkIHhtbEFkZEVuY29kaW5nQWxpYXMoKSAvIHhtbENsZWFudXBFbmNvZGluZ0FsaWFzKCkuCisJICBDbG9zZXMgYnVnICMgNjgyMzgKKworVHVlIEphbiAgOCAxMjo0ODoyNyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGRvYy8qLmh0bWw6IHVwZGF0ZWQgdGhlIEdkb21lMiBsaW5rcworCitUdWUgSmFuICA4IDExOjMyOjMwIENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLmg6IEFwcGxpZWQgZm9sbG93aW5nIHBhdGNoZXMgZnJvbSBSb2JlcnQgQ29sbGlucworCSAgYW5kIG1ha2Ugc3VyZSBJTl9MSUJYTUwgaXMgZGVmaW5lZCB3aGVuIGNvbXBpbGluZyBpdAorCS0tLS0tLS0KKwkqIGluY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaC5pbiAoTElCWE1MX0RMTF9JTVBPUlQpOiBVc2Ugb24gQ3lnd2luCisJICBhcyB3ZWxsIGFzIFZpc3VhbCBDLgorCSogcGFyc2VyLmMgKFhNTF9ESVJfU0VQKTogRG9uJ3QgdXNlICdcXCcgZm9yIEN5Z3dpbi4KKwkqIHBhcnNlckludGVybmFscy5jIChYTUxfRElSX1NFUCk6IERvbid0IHVzZSAnXFwnIGZvciBDeWd3aW4uCisJKiBzdHJpby5jIChQTEFURk9STV9VTklYKTogRGVmaW5lIGZvciBDeWd3aW4uCisJKiB0cmlvZGVmLmggKFRSSU9fUExBVEZPUk1fVU5JWCk6IERlZmluZSBmb3IgQ3lnd2luLgorCSogeG1sSU8uYyAoeG1sRmlsZU9wZW4pOiBVc2UgdW5peCBiZWhhdmlvdXIgZm9yIEN5Z3dpbi4KKwkgIFVzZSBiaW5hcnkgbW9kZSBvcGVucyBmb3IgQ3lnd2luICh4bWxGaWxlT3BlblcgeG1sUGFyc2VyR2V0RGlyZWN0b3J5CisJICB4bWxTeXNJREV4aXN0cyB4bWxOb05ldEV4aXN0cykuCisJKiB4bWxsaW50LmM6IERvbid0IGluY2x1ZGUgd2luc29jazIuaCBmb3IgQ3lnd2luLgorCitNb24gSmFuICA3IDE3OjUyOjQ4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IEppcmthIEtvc2VrIHBvaW50ZXIgb3V0IGEgYnVnIGluIHhtbFBhcnNlVGV4dERlY2woKQorCSAgd2hlbiB0aGUgdmVyc2lvbiBpbmZvIGlzIG5vdCBwcmVzZW50LgorCitNb24gSmFuICA3IDAwOjAzOjU4IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBBbnRob255IEpvbmVzICBwb2ludGVkIG91dCBhIHByb2JsZW0gaW4KKwkgIHhtbFN0cmluZ0dldE5vZGVMaXN0KCkgYW5kIHByb3ZpZGVkIGEgZml4IGZvciBpdAorCitTdW4gSmFuICA2IDEzOjQ1OjQ5IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IHBhdGNoIGZyb20gRnJhbmsgSiBGcmFua2xpbiB0byByZW1vdmUgYSBidWcgaW4KKwkgIHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KCkgd2hlbiB0aGUgaW5pdGlhbCBidWZmZXIgcGFzc2VkCisJICBpcyBsYXJnZS4KKworU2F0IEphbiAgNSAxOToyNDoyMyBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyLyo6IGJpZyBjbGVhbnVwIG9mIHRoZSBXaW5kb3dzL01TVkMgcHJvamVjdCBmaWxlcworCSAgZnJvbSBJZ29yIFpsYXRrb3ZpYworCitXZWQgSmFuICAyIDE0OjExOjM1IENFVCAyMDAyIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL01ha2VmaWxlLmFtOiBzaG91bGQgZml4ICM2NzY3NCBhbmQgYXZvaWQgdHJvdWJsZXMgaWYgCisJICB4c2x0cHJvYyBpcyBub3QgYXZhaWxhYmxlIG9yIGZhaWxzIGluIHRoZSBwcmVmaXggcHJvdmlkZWQKKworVHVlIEphbiAgMSAxNzo0ODo1NiBDRVQgMjAwMiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbG1lbW9yeS5jOiBvbmUgbW9yZSBkb2MgcGF0Y2ggZnJvbSBDaGFybGllIEJvemVtYW4uCisKK01vbiBEZWMgMzEgMTc6MzU6NDAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBET0NCcGFyc2VyLmMgcGFyc2VyLmMgdmFsaWQuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCBpbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oOgorCSAgRml4ZWQgYSBmZXcgb3RoZXIgcHJvYmxlbXMgcmFpc2VkIGJ5IENoYXJsaWUgQm96ZW1hbi4KKwkqIHJlc3VsdC9WQy9FbGVtZW50VmFsaWRbNS03XTogZml4ZWQgdGhlIG91dHB1dAorCitNb24gRGVjIDMxIDE3OjEzOjM0IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogKi5jIGluY2x1ZGUvbGlieG1sLyouaCBkb2MvaHRtbC8qOiBhcHBsaWVkIDQyIGRvY3VtZW50YXRpb24KKwkgIHBhdGNoZXMgZnJvbSBDaGFybGllIEJvemVtYW4uIFJlZ2VuZXJhdGVkIHRoZSBIVE1MIGRvY3MuCisKK1RodSBEZWMgMjAgMTQ6NTk6NTIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9kZWJ1Z1hNTC5oIHdpbjMyL2RzcC9saWJ4bWwyLmRlZi5zcmM6IGZpeGVzCisJICBmb3IgV2luZG93cyBmcm9tIElnb3IKKworVHVlIERlYyAxOCAxMjoxMzozMyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogYXBwbGllZCBKdXN0aW4gRmxldGNoZXIgcGF0Y2ggZm9yIC0tb3V0cHV0IG9yIC1vCisKK1R1ZSBEZWMgMTggMDg6NTI6MzIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9saWJ4bWwyL2xpYnhtbDIuZGVmLnNyYzogY2xvc2UgIzY3MDE5CisKK1R1ZSBEZWMgMTggMDg6MDg6NTEgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxsaW50LmM6IGFwcGxpZWQgSnVzdGluIEZsZXRjaGVyIGdlbmVyaWMgdGltaW5nIHBhdGNoCisJICBzaW1pbGFyIHRvIHRoZSBvbmUgYWxyZWFkeSBhcHBsaWVkIHRvIHhzbHRwcm9jLgorCitNb24gRGVjIDE3IDE2OjI5OjA4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oIHRyZWUuYzogYXBwbGllZCBkb2N1bWVudGF0aW9uIHBhdGNoZXMKKwkgIGZyb20gQ2hhcmxpZSBCb3plbWFuCisKK1RodSBEZWMgMTMgMjE6MjQ6MTYgTVNUIDIwMDEgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSpkb2MveG1sbGludC54bWwsIHhtbGxpbnQuMSAtIGRvY3VtZW50IC0tZHJvcGR0ZAorCitUaHUgRGVjIDEzIDIzOjE5OjUwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogZml4IHRoZSB4bWxTdHJkdXAoKSB1c2VkIGluIHRoZSBwcmV2aW91cyBwYXRjaC4KKwkqIHZhbGlkLmM6IGFkZGVkIC0tZHJvcGR0ZAorCSogdHJlZS5jOiBmaXhlZCB4bWxVbmxpbmtOb2RlIHNvIGl0IGFsc28gcmVtb3ZlcyB0aGUgcmVmZXJlbmNlcworCSAgZnJvbSB0aGUgZG9jdW1lbnQgaWYgdGhlIG5vZGUgaXMgYSBEVEQKKworVGh1IERlYyAxMyAxNTo1NDozNSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgdmFsaWQuYzogY2xlYW51cCBzb21lIHN0YXRpYyBkZWNsYXJhdGlvbnMKKworVGh1IERlYyAxMyAxNToyMzowNCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogcmVtb3ZlZCBhbm90aGVyIHN0cmR1cCgpCisJKiBkb2MvRkFROiByZW1vdmVkIHRoZSBIUC9VWCBlbnRyeQorCitUaHUgRGVjIDEzIDA5OjQ0OjU4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogZml4IGJ1ZyAjNjY4MTYgd2hlbiB2YWxpZGF0aW5nLgorCSogeG1sbGludC5jOiBkb24ndCB1c2Ugc3lzL3RpbWUuaCBpZiBjb25maWd1cmUgZGlkIG5vdCBmb3VuZCBpdAorCitNb24gRGVjIDEwIDIxOjM5OjU1IE1TVCAyMDAxIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvY3MveG1sbGludC4xLCB4bWxsaW50LnhtbCwgeG1sY2F0YWxvZy4xLCB4bWxjYXRhbG9nX21hbi5odG1sLAorCXhtbGNhdGFsb2dfbWFuLnhtbAorCitNb24gRGVjIDEwIDIyOjA2OjE2IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sbWVtb3J5Lmg6IEhpZXRhbmllbWkgSmFya2tvIHBvaW50ZWQgb3V0IHRoYXQKKwkgIHhtbEluaXRNZW1vcnkoKSB3YXMgZGVjbGFyZWQgdHdpY2UKKworU3VuIERlYyAgOSAxNDo1OToyMyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdsb2JhbHMuYzogZG8gbm90IHJlZmVyZW5jZSBzdHJkdXAoKSAhCisJKiBjb25maWd1cmUuaW4gbGlieG1sLTIuMC5wYy5pbjogdHJ5aW5nIHRvIGZpeCB0aGUgbGlicworCSAgb2YgdGhlIHZhcmlvdXMgY29uZmlnIGV4dHJhY3Rpb24gbW9kdWxlcworCitGcmkgRGVjICA3IDE1OjIxOjMzIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluIDogcHJlcGFyaW5nIDIuNC4xMgorCSogZG9jLyogOiB1cGRhdGVkIGFuZCByZWJ1aWx0IHRoZSBkb2NzCisKK0ZyaSBEZWMgIDcgMTI6MzI6MDAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogY2xvc2VkIGJ1ZyAjNjYxNTkKKwkqIHRlc3RVUkkuYzogYWRkZWQgLS1lc2NhcGUgb3B0aW9uCisJKiBjb25maWd1cmUuaW46IHNvbWUgY2xlYW51cCBmb3IgeG1sMi1jb25maWcgLS1jZmxhZ3MKKworVGh1IERlYyAgNiAxNTozMTozMCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGdsb2JhbHMuYyB0ZXN0VGhyZWFkcy5jOiByZW1vdmVkIHNvbWUgbWlzcGxhY2VkIGluY2x1ZGVzCisJICBvZiB4bWx2ZXJzaW9uLmgKKworVGh1IERlYyAgNiAwOTowNjowOCBFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRocmVhZHMuYzogcGF0Y2ggZnJvbSBHYXJ5IFBlbm5pbmd0b24gZml4aW5nIGEgcG9zc2libGUKKwkgIHByb2JsZW0gYXQgaW5pdGlhbGl6YXRpb24gdGltZS4KKworV2VkIERlYyAgNSAxMzowMTozNyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBsaWJ4bWwuaCBwYXJzZXIuYyB0ZXN0VGhyZWFkcy5jIG1hY29zLzogaW50ZWdyYXRlZAorCSAgRXJpYyBMYXZpZ25lIGNvbnRyaWJ1dGlvbiB0byBidWlsZCBsaWJ4bWwyIG9uIE1hY09TIHVzaW5nCisJICBDb2RlV2Fycmlvci4KKworVHVlIERlYyAgNCAxNDoxMzo0NCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogYXBwbGllZCBHZWVydCBLbG9vc3Rlcm1hbidzIHBhdGNoIHRvIGZpeAorCSAgLS1yZXBlYXQgLS10aW1pbmcgb3V0cHV0CisKK1RodSBOb3YgMjkgMTc6MTA6MjIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogUm9iaW4gQmVyam9uIDxyb2JpbkBrbm93c2NhcGUuY29tPiBmb3VuZCBhIGNhc2UKKwkgIHdoZXJlIG5vbi13ZWxsZm9ybWVkIFhNTCBkZWNsYXJhY3Rpb25zIHdlcmUgbm90IGRldGVjdGVkLgorCitXZWQgTm92IDI4IDE1OjQxOjQwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBvaW50ZXIuYzogZml4ZWQgYSBjb21waWxhdGlvbiBidWcgcG9pbnRlZCBieSBEYW5ueSBKYW1zaHkKKworV2VkIE5vdiAyOCAxMDowOTo1MSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbElPLmM6IGFzIHJvYmVydCBwb2ludGVkIGFnYWluLCB4bWxJbnB1dENhbGxiYWNrSW5pdGlhbGl6ZWQKKwkgIGdldHMgcmVzZXQgYnkgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzKCkgYW5kIHRoaXMgbWFrZXMgdGhlCisJICBmdW5jdGlvbiB1c2VsZXNzLiBTYW1lIGZvciBvdXRwdXQuCisKK1R1ZSBOb3YgMjcgMTc6MjI6MzYgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiByb2JlcnQgcG9pbnRlZCBvdXQgYSBsb29wIGVycm9yIGluIGNhbGxiYWNrIGNsZWFudXBzCisKK01vbiBOb3YgMjYgMTY6NTY6MDAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmMgZGVidWdYTUwuYyBpbmNsdWRlL2xpYnhtbC90cmVlLmggaW5jbHVkZS9saWJ4bWwvZGVidWdYTUwuaDoKKwkgIG1vdmVkIHhtbEdldExpbmVObygpIGFuZCB4bWxHZXROb2RlUGF0aCgpIGludG8gdGhlIG1haW4gdHJlZSBtb2R1bGUsCisJICB0aGV5IGFyZSBub3QgcmVhbGx5IHRpZWQgdG8gZGVidWdnaW5nCisKK01vbiBOb3YgMjYgMTE6MzE6MzYgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW4gaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmg6IHByZXBhcmluZyAyLjQuMTEKKwkqIHhtbGxpbnQuYzogYmV0dGVyIC0tY2F0YWxvZ3MgZGVzY3JpcHRpb24KKworU3VuIE5vdiAyNSAxMTozNDoyNCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRyZWUuYzogZml4ZWQgYSBjb3VwbGUgb2YgcHJvYmxlbXMgaW4geG1sU2V0UHJvcCgpCisKK1RodSBOb3YgMjIgMTk6MTk6MTAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jIHRyZWUuYyB4bWxJTy5jIHhtbG1lbW9yeS5jOiBzb21lIGNsZWFudXBzIHdoZW4gY2hhc2luZworCSAgdW5hcHByb3ByaWF0ZSBzdGRvdXQgb3V0cHV0LgorCitUaHUgTm92IDIyIDEzOjU4OjE0IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBGaXhlZCBhIGNvdXBsZSBvZiBtYWNybyBlcnJvcnMgcG9pbnRlZCBvdXQKKwkgIGJ5IERlbmlzIEJldXJpdmUsIGNsb3NlcyAjNjUxMTEKKworVHVlIE5vdiAyMCAxMDozNDowMSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGluIGNhc2Ugb2YgY29udGVudCBtb2RlbCB2YWxpZGl0eSBlcnJvciwgZG9uJ3QKKwkgIHByaW50IGl0IGlmIHZhbGlkaXR5IHdhcm5pbmdzIHdlcmUgbm90IHJlcXVlc3RlZC4KKworVHVlIE5vdiAyMCAwOTozMDowMiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIG5hbm9mdHAuYzogYXBwbGllZCBhIGNvdXBsZSBvZiBwYXRjaGVzIGZyb20gQnJpYW4gRCBSaXBsZXkuCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogcmVtb3ZlZCB0aGUgbGFzdCBleGl0KCkgY2FsbC4gUHJpbnQgYW4KKwkgIHVubWFza2FibGUgZXJyb3Igb24gc3RkZXJyIGluc3RlYWQgKGxpYnJhcnkgbWlzbWF0Y2ggZGV0ZWN0aW9uKQorCitTYXQgTm92IDE3IDE3OjE2OjUxIE1TVCAyMDAxIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqIGRvYy94bWxsaW50LnhtbCwgZG9jL3htbGxpbnQuMSAtIHVwZGF0ZSB4bWxsaW50IG1hbiBwYWdlIHdpdGgKKwlzaGVsbCBpbnN0cnVjdGlvbnMgZnJvbSBIZWlrbyBSdXBwCisKK1RodSBOb3YgMTUgMTQ6NTM6NDIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IHVzZSB0aGUgVVJMIG5vdGF0aW9uIGZpbGU6Ly8gZm9yIGRlZmF1bHQgY2F0YWxvZyBwYXRocworCitXZWQgTm92IDE0IDE2OjAzOjAyIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBiZXR0ZXIgY29tbWVudHMgZm9yIF9wcml2YXRlIGZpZWxkcworCSogdHJlZS5jOiByZW1vdmVkIGEgcHJvYmxlbSB3aGVuIGNvcHlpbmcgYW4gZW50aXR5IHJlZmVyZW5jZS4KKworVHVlIE5vdiAxMyAxNjoyMzowNCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZtcy8qOiB1cGRhdGVkIGluc3RydWN0aW9ucyBhbmQgZGlmZnMgZnJvbSBKb2huIEEgRm90aGVyaW5naGFtCisKK01vbiBOb3YgMTIgMjM6NDM6MjIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oOiBhdm9pZCBhbiBpbmNsdWRlIHByb2JsZW0gaWYKKwkgICNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4gaGFwcGVucyBmaXJzdCBpbiBjb2RlCisJICBzZWVtcyB0byBiZSB0aGUgY2FzZSBpbiBLREUgbGlicworCitNb24gTm92IDEyIDIyOjMyOjQxIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogd2luMzIvZHNwLyogaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmguaW46IHVwZGF0ZQorCSAgZnJvbSBJZ29yIGZvciBXaW5kb3dzCisKK01vbiBOb3YgMTIgMTA6MTk6NDEgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogR2FyeSBQZW5uaW5ndG9uIHBvaW50ZWQgb3V0IGEgbWlzc2luZyBwcmVmaXgKKworU2F0IE5vdiAxMCAxMjo1NTo0MiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaDogcHJlcGFyaW5nIDIuNC4xMAorCSogZG9jLyo6IHVwZ3JhZGVkIGFuZCByZWJ1aWx0IHRoZSBkb2NzCisKK1NhdCBOb3YgMTAgMTI6MzM6MzggQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeCBjb21tZW50IGluIHNjcmlwdHMgZWxlbWVudCBwYXJzaW5nLgorCSogcmVzdWx0L0hUTUwvZG9jMyo6IHVwZGF0ZWQgdGhlIHJlc3VsdHMuCisKK1NhdCBOb3YgMTAgMTE6MTg6MTggQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogYW5vdGhlciBVUkkgYnVnIGZpeCAjNjMzMzYsIHVzaW5nIEpvZWwgWW91bmcgcGF0Y2guCisKK1NhdCBOb3YgMTAgMTE6MDc6MjYgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jIGluY2x1ZGUvbGlieG1sL2RlYnVnWE1MLmg6IGFkZCB4bWxHZXROb2RlUGF0aCgpCisJICBhIGNsZWFuZWQgdXAgdmVyc2lvbiBvZiB0aGUgUHdkIHNoZWxsIHN0cmluZyBnZW5lcmF0aW9uLgorCitGcmkgTm92ICA5IDAwOjM0OjEzIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYyBpbmNsdWRlL2xpYnhtbC90cmVlLmg6IHRyeWluZyB0byBmaXggbmFtZXNwYWNlcyArCisJICB2YWxpZGF0aW9uIHByb2JsZW1zIGZvciBnb29kLCBjbG9zaW5nICM2MzYxOSBpbiB0aGUgcHJvY2VzcworCSogcmVzdWx0L3ZhbGlkL2RpYS54bWwgdGVzdC92YWxpZC9kaWEueG1sOiB0aGUgRGlhIHRlc3Qgd2FzCisJICB3cm9uZyBpbiB0aGlzIHJlc3BlY3QsIGZpeGVkIGl0LgorCitUaHUgTm92ICA4IDE4OjMxOjQwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBNb3J1cyBXYWx0ZXIgcGF0Y2ggdG8gYWxsb3cgLS1mb3JtYXQgYW5kIC0tZW5jb2RlCisKK1RodSBOb3YgIDggMTQ6NTI6MTggQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jOiBTdGVmYW4gS29zdCBwcm92aWRlZCBhbiBoZWxwIGNvbW1hbmQgZm9yIHRoZSBzaGVsbAorCitXZWQgTm92ICA3IDE0OjMyOjU1IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYzogSGVpa28gUnVwcCBwb2ludGVkIHRoYXQgdGhlIHNoZWxsIHdvdWxkIGNyYXNoCisJICBvbiBlbXB0eSBub2Rlc2V0cyByZXR1cm5zLgorCitXZWQgTm92ICA3IDEzOjUyOjM2IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW06IFdlaXFpIEdhbyBwb2ludGVkIG91dCB0aGF0IHhtbGNhdGFsb2cKKwkgIG1pZ2ggbmVlZCB0aGUgaGlzdG9yeSBsaWJyYXJpZXMKKworVHVlIE5vdiAgNiAyMzo0OTowOSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYyB0ZXN0L0hUTUwvbHQuaHRtbCByZXN1bHQvSFRNTC9sdC5odG1sKjoKKwkgIGhhbmRsZSB0aGUgY2FzZSBvZiA8IGluIHF1b3RlZCBhdHRyaWJ1dGVzLCBCYXN0aWFuIEtsZWluZWlkYW0KKworVHVlIE5vdiAgNiAxNjoyMTozMyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaDogcmVsZWFzaW5nIDIuNC45CisJICBmaXhpbmcgY2F0YWxvZyBicmVha2FnZXMKKwkqIE1ha2VmaWxlLmFtIGNhdGFsb2cuYyByZXN1bHQvY2F0YWxvZ3MvY2F0YWwgCisJICByZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nLiogdGVzdC9jYXRhbG9ncy9jYXRhbCo6CisJICBmaXhlZCBtb3JlIHByb2JsZW1zIGluIGNhdGFsb2cgc3VwcG9ydCwgYWRkZWQgbW9yZSByZWdyZXNzaW9uIHRlc3RzCisJICBmb3IgYm90aCBYTUwgYW5kIFNHTUwgY2F0YWxvZyBoYW5kbGluZworCitNb24gTm92ICA1IDIwOjI2OjQxIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZGVidWdYTUwuYzogYXBwbGllZCBhbiBpbXByb3ZlbWVudCB0byB4bWxHZXRMaW5lTm8oKSBmcm9tCisJICBLZWl0aCBJc2RhbGUKKworTW9uIE5vdiAgNSAxNToyMDoxNiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYzogZG9oaGhoIFhNTCBjYXRhbG9nIGFkZCBhbmQgcmVtb3ZlIG9wcyB3ZXJlIGJyb2tlbiB0b28uCisJICBTaWRlIGVmZmVjdCBvZiB0aGUgcHJvZ3Jlc3NpdmUgY2F0YWxvZyBsb2FkaW5nCisKK01vbiBOb3YgIDUgMTI6NDA6NTQgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogY29uZmV4ZWNkaXIgYW5kIGNvbmZleGVjX0RBVEEgd2VyZSBkZWZpbmVkIHR3aWNlCisJICBwb2ludGVkIG91dCBieSBLYXJsIEVpY2h3YWxkZXIKKworU3VuIE5vdiAgNCAyMzoxODozNCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGNhdGFsb2cuYzogYXZvaWQgdW5saW5rKCkgYW5kIHVzZSByZW1vdmUoKSBpbnN0ZWFkLgorCitTdW4gTm92ICA0IDIzOjEyOjM4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLnNwZWMuaW46IGNsZWFudXAKKwkqIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oOiB1cGRhdGVkIHdpdGggMi40LjgKKworU3VuIE5vdiAgNCAyMToxNzoyNCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVuY29kaW5nLmMgZ2xvYmFsLmRhdGEgZ2xvYmFscy5jIHRlc3RUaHJlYWRzLmM6IGZpeCBidWcgIzYzNzUyCisJICBvZiBjb21waWxpbmcgbGlieG1sIHdpdGggYSBub24gc3RhbmRhcmQgc2V0IG9mIG9wdGlvbnMKKworU3VuIE5vdiAgNCAxMzoxMTo0MSBNU1QgMjAwMSBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0CisKKwkqIGRvYy94bWxsaW50LnhtbCwgeG1sbGludC4xIC0gdXBkYXRpbmcgeG1sbGludCBtYW4gcGFnZSB0bworCWRvY3VtZW50IC0tc2dtbCBvcHRpb24sIGZpeGluZyBnbm9tZSBidWd6aWxsYSAjNjMzODIKKworU3VuIE5vdiAgNCAyMDo1Njo1MyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL2NhdGFsb2cuaCBjYXRhbG9nLmM6IEZpeGVkIFNHTUwgY2F0YWxvZ3MKKwkgIGJyZWFrYWdlIG9mIDIuNC43LCBhZGRlZCBhIGNvdXBsZSBvZiByZWFsbHkgbmVlZGVkIEFQSXMKKwkgIGxpa2UgeG1sQ2F0YWxvZ0lzRW1wdHkoKSBhbmQgeG1sTmV3Q2F0YWxvZygpCisJKiB4bWxjYXRhbG9nLmM6IHVwZGF0ZWQgLS1zZ21sIC0tbm9vdXQgdG8gYmUgYSBzdWl0YWJsZSByZXBsYWNlbWVudAorCSAgZm9yIGluc3RhbGwtY2F0YWxvZworCSogY29uZmlndXJlLmluOiBwcmVwYXJpbmcgMi40LjgKKworVGh1IE5vdiAgMSAxNToyOTozMSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUx0cmVlLmMgdHJlZS5jIGluY2x1ZGUvbGlieG1sL0hUTUx0cmVlLmgKKwkgIGluY2x1ZGUvbGlieG1sL3RyZWUuaCBpbmNsdWRlL2xpYnhtbC94bWxJTy5oOiBtb3JlIGluY2x1ZGUKKwkgIGNsZWFudXBzLCBleHBvcnQgY2xlYW5seSBvbmUgaHRtbCBvdXRwdXQgKyBmb3JtYXQgZnVuY3Rpb24uCisKK1RodSBOb3YgIDEgMTQ6MTI6MTIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogcmVtb3ZlZCBpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMgY2FsbCBmcm9tCisJICB4bWxJbml0UGFyc2VyKCkgc2luY2UgaXQgY291bGQgZGVzdHJveSBwcmV2aW91cyBjYWxscyB0bworCSAgeHNsdFNldEdlbmVyaWNFcnJvckZ1bmMoKSBlZmZlY3RzCisKK1RodSBOb3YgIDEgMDk6Mzc6MTMgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkZWJ1Z1hNTC5jIGluY2x1ZGUvbGlieG1sL2RlYnVnWE1MLmg6IGJvb2wgY2FuIGJlIGEgcmVzZXJ2ZWQKKwkgIGtleXdvcmQuCisKK1dlZCBPY3QgMzEgMTg6NTA6MDggQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbTogY2xlYW51cAorCSogdGhyZWFkcy5jOiBjbGVhbnVwIHRvbworCSogeG1sSU8uYyBpbmNsdWRlL2xpYnhtbC94bWxJTy5oOiBhZGRlZCB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyKCkKKwkgIGZyb20geHNsdHByb2MKKwkqIGluY2x1ZGUvbGlieG1sL3RyZWUuaCBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogdHJ5aW5nIHRvIGJyZWFrIGEKKwkgIGRlcGVuZGVuY3kgbG9vcC4KKworVHVlIE9jdCAzMCAxODozODo1MyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYzogSnVzdGluIEZsZXRjaGVyIHBvaW50ZWQgb3V0IHRoYXQgeG1sUGFyc2VYTUxDYXRhbG9nCisJICB3YXMgbm90IHVzZWQgYW55bW9yZSAhCisKK1R1ZSBPY3QgMzAgMTM6MzM6MTMgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyAyLjQuNworCSogTWFrZWZpbGUuYW0gZG9jL01ha2VmaWxlLmFtOiBzd2l0Y2hlZCB0byB0aGUgbGF0ZXN0IHhtbGxpbnQKKwkgIG1hbnVhbCBwYWdlIGZyb20gSm9obgorCSogZG9jLyo6IHVwZGF0ZWQgdGhlIGRvYyBhbmQgcmVidWlsdCB0aGUgZ2VuZXJhdGVkIHBhZ2VzCisKK1R1ZSBPY3QgMzAgMTE6MzE6MTkgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiBjbG9zaW5nIGJ1ZyAjNjI3MTEsIHRoZSBsaWJyYXJ5IHNob3VsZCBuZXZlcgorCSAgY2xvc2Ugc3RkaW4gb3Igc3Rkb3V0LgorCitUdWUgT2N0IDMwIDEwOjQ2OjEyIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmM6IHNlY29uZCBwYXNzIGF0IGZpeGluZyAjNjMzMzYsIHVzaW5nIEpvZWwgWW91bmcKKwkgIGZpbmFsIHBhdGNoLiBsb29rcyBva2F5LgorCitUdWUgT2N0IDMwIDAwOjU2OjA1IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdXJpLmMgaW5jbHVkZS9saWJ4bWwvdXJpLmg6IHRyeWluZyB0byBjbGVhciAjNjMzMzYKKwkgIGFsbG93aW5nIHRoZSBlc2NhcGluZyByb3V0aW5lIHRvIHBhcnNlIHVuY29uZm9ybWFudAorCSAgVVJJLVJlZmVyZW5jZXMuCisKK01vbiBPY3QgMjkgMTk6MDk6NDYgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB2bXMvcmVhZG1lLnZtcyB2bXMvYnVpbGRfbGlieG1sLmNvbSBuYW5vZnRwLmMgCisJICBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW46IGEgZmV3IFZNUyB1cGRhdGVzIGZyb20KKwkgIEpvaG4gQSBGb3RoZXJpbmdoYW0KKwkqIGluY2x1ZGUvbGlieG1sL3htbElPLmggeG1sSU8uYzogYWRkZWQgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzKCkKKwkgIGFuZCB4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzKCkgZm9yIHRoZSBQZXJsIGJpbmRpbmcgcGVvcGxlLgorCitNb24gT2N0IDI5IDEyOjQ0OjE3IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgZ2xvYmFscy5jIERPQ0JwYXJzZXIuYyBIVE1McGFyc2VyLmMgZXJyb3IuYzoKKwkgIGFwcGx5IGZpeGVzIHRvIGNsb3NlICM2MzI3MSBhbmQgYXZvaWQgc2VnZmF1bHRzIHdoZW4KKwkgIHRoZSBlcnJvciByb3V0aW5lIGdldHMgY2FsbGJlZCBiZWZvcmUgeG1sSW5pdFBhcnNlcigpCisJICBnZXQgY2FsbGVkLgorCSogbmFub2Z0cC5jIGVycm9yLmM6IEFwcGxpZWQgcGF0Y2hlcyBmcm9tIEp1c3RpbiBGbGV0Y2hlcgorCSAgY29ycmVjdGluZyBzb21lIHhtbEdlbmVyaWNFcnJvciBtaXN1c2VzLgorCitTYXQgT2N0IDI3IDE0OjA0OjQ1IE1EVCAyMDAxIEpvaG4gRmxlY2sgPGpmbGVja0BpbmtzdGFpbi5uZXQ+CisKKwkqZG9jL3htbGxpbnQueG1sLCBkb2MveG1sbGludC4xCisJTmV3IGFuZCBpbXByb3ZlZCBtYW4gcGFnZSBmb3IgeG1sbGludCAtIC54bWwgaXMgdGhlIG9yaWdpbmFsLCAuMQorCWlzIHRoZSBnZW5lcmF0ZWQgbWFuIHBhZ2UKKworV2VkIE9jdCAyNCAxNDozNDoyNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2Mvc2l0ZS54c2wgZG9jLyouaHRtbCBkb2MvTWFrZWZpbGUuYW06IG5vdyBhdXRvZ2VuZXJhdGUKKwkgIHRoZSB3ZWIgc2l0ZSBmcm9tIHRoZSBtYWluIEhUTUwgZG9jdW1lbnQuCisKK1R1ZSBPY3QgMjMgMTQ6MzI6MDQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmM6IGZpeGVkIGFuIGVycm9uZW91cyB2YWxpZGF0aW9uIGJ1ZyB3aGVuIFBFIHJlZnMKKwkgIG9jY3VycyBpbiBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMgcmVmZXJlbmNlZCBmcm9tIHRoZQorCSAgaW50ZXJuYWxzIHN1YnNldAorCSogdGVzdC92YWxpZC9pbmRleC54bWwgdGVzdC92YWxpZC9kdGRzL25pdGYtMi01LmR0ZAorCSAgdGVzdC92YWxpZC9kdGRzL05ld3NNTHYxLjAuZHRkIHJlc3VsdC92YWxpZC9pbmRleC54bWwqOgorCSAgYWRkZWQgdGhlIGFzc29jaWF0ZWQgdGVzdGNhc2UsIGl0J3MgYSBuaWNlIG9uZS4KKwkqIEhUTUxwYXJzZXIuYzogZ2VuZXJhdGUgdGhlIERURCBub2RlIGFzIEhUTUwgc3RpbGwgLi4uCisJKiBIVE1MdHJlZS5jOiBmaXhlZCBlcnJvcnMgaW4gU2V0L0dldE1ldGFFbmNvZGluZyAKKworTW9uIE9jdCAyMiAxNDoyMDoxNyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGEgYnVnIGluIGh0bWxOZXdEb2MoKQorCitNb24gT2N0IDIyIDExOjMyOjM2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHRlc3QvdGhyZWFkcy8qOiBhZGRlZCBlbnRpdGllcyB0ZXN0aW5nIHRvIHRoZSBUaHJlYWQgdGVzdAorCSogdGVzdFRocmVhZHMuYzogbWFrZSB0aGUgdGVzdCByZWFzb25hYmxlCisJKiBET0NCcGFyc2VyLmM6IGZpeCB0aGUgRFREIHB1YmxpYyBhbmQgc3lzdGVtIElECisJKiB4bWxsaW50LmM6IGFkZGVkIC0tc2dtbCBmb3IgU0dNTCBEb2NCb29rIGltcG9ydGluZworCSogTWFrZWZpbGUuYW06IGFkZGVkIERvY2J0ZXN0cyB0YXJnZXQKKworRnJpIE9jdCAxOSAxMTo0NzoxMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBuYW5vZnRwLmM6IHVzZSBvbmx5ICJhbm9ueW1vdXNAIiBzdHJpbmcgZm9yIGFub255bW91cyBwYXNzd2RzCisJKiB0ZXN0VGhyZWFkcy5jOiByZW1vdmVkIGJvZ3VzIGluY2x1ZGUKKworVGh1IE9jdCAxOCAxNjo1NjoyMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyB2YWxpZC5jIHJlc3VsdC92YWxpZC9yc3MueG1sIHJlc3VsdC92YWxpZC9yc3MueG1sLmVycjoKKwkgIGZpeGVkIGEgdmVyeSBzZXJpb3VzIChsb29waW5nKSB2YWxpZGF0aW9uIGJ1ZworCitXZWQgT2N0IDE3IDExOjU2OjI1IEVEVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvZ2xvYmFscy5oIGluY2x1ZGUvbGlieG1sL3RocmVhZHMuaCB0aHJlYWRzLmMKKwkgIHRlc3RUaHJlYWRzLmM6IGZhciBtb3JlIHRlc3RpbmcsIGNsZWFuaW5nIHVwIGJ1Z3MKKwkqICouYyA6IG1ha2Ugc3VyZSBnbG9iYWxzLmggaXMgYWx3YXlzIGluY2x1ZGVkLgorCitXZWQgT2N0IDE3IDE3OjQxOjQxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIEhUTUxwYXJzZXIuYzogdHJ5IHRvIGdldCByaWQgb2YgcGFyc2VyIGxvb3BzIGZvciBnb29kLgorCitXZWQgT2N0IDE3IDEzOjI5OjAyIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogZml4ZWQgc29tZSBidWdzIGluIENGTEFHUyBwYXNzaW5nLgorCSogdGVzdC90aHJlYWRzIE1ha2VmaWxlLmFtIHRlc3RUaHJlYWRzLmM6IGFkZGVkIGEgc3BlY2lmaWMKKwkgIHRocmVhZGVkIHRlc3QgY2FzZSAocmVhbGx5IG5hc3R5LCBndWFyYW50ZWVkKS4KKworVHVlIE9jdCAxNiAyMzowMTo0OSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IHNlcmlvdXMgY2xlYW51cCBvbiB0aGUgbWFuYWdlbWVudCBvZiB0aGUKKwkgIFhNTCBjYXRhbG9nIHRyZWUsIG1vcmUgdGVzdHMgZG9uZSwgZXNwZWNpYWxseSB3aXRoCisJICB0aGUgY2F0YWxvZyBQSS4KKworVHVlIE9jdCAxNiAwODo0Mzo0MyBFRFQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYzogYXZvaWQgYSBwcm9ibGVtIGluIGNhdGFsb2cgY2xlYW51cCBvbiBTTVAgaWYKKwkgIGNhdGFsb2dzIHdlcmUgbm90IGluaXRpYWxpemVkLgorCitUdWUgT2N0IDE2IDE0OjMzOjE5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYyB4cGF0aC5jOiB0cnlpbmcgdG8gY2xlYW51cCB0aGUgbm90IHRocmVhZCBzYWZlCisJICBwYXJ0cyBvZiB0aGUgbGlicmFyeS4KKworTW9uIE9jdCAxNSAxNDozMDoxMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggY29uZmlndXJlLmluIGdsb2JhbC5kYXRhOiBtYWtlCisJICB0aGUgYWxsb2NhdGlvbiBiZSBwZXItdGhyZWFkIGEgY29uZmlndXJlIG9wdGlvbgorCSogZW5jb2RpbmcuYyBpbmNsdWRlL2xpYnhtbC9wYXJzZXIuaDogZml4ZWQgY29tcGlsYXRpb24KKwkgIGVycm9ycworCitNb24gT2N0IDE1IDEyOjQ1OjAzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBOb3JtIHJlcG9ydGVkIHRoYXQgYSBmZXcgbGluZXMKKwkgIGFkZGVkIHdlcmUgYnJlYWtpbmcgbGlieHNsdCBjb21waWxlLCByZW1vdmVkIHRoZW0gZm9yIG5vdworCitTdW4gT2N0IDE0IDA1OjU1OjAxIEVEVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdGhyZWFkcy5jOiBkZWJ1Z2dlZCBhbmQgZml4ZWQKKwkgIGluaXRpYWxpemF0aW9uIHByb2JsZW1zIHdoaWNoIHdlcmUgZ2l2aW5nIHRyb3VibGVzIG9uIFNNUAorCSAgYm94ZXMuCisKK1NhdCBPY3QgMTMgMTY6MTc6MTMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW06IG1pc3NpbmcgZ2xvYmFscy5oCisKK1NhdCBPY3QgMTMgMTQ6MTU6MDAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZ2xvYmFscy5jOiBhZGRlZCBhIGNvdXBsZSBvZiBzdGFuZGFyZCBpbmNsdWRlcy4KKworU2F0IE9jdCAxMyAxMTowODoyMCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9TQVguaCBpbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmgKKwkgIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIGluY2x1ZGUvbGlieG1sL3RyZWUuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCBIVE1McGFyc2VyLmMgU0FYLmMgZXJyb3IuYyBnbG9iYWxzLmMKKwkgIG5hbm9mdHAuYyBuYW5vaHR0cC5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jIHRlc3REb2Nib29rLmMKKwkgIHRlc3RIVE1MLmMgdGVzdFNBWC5jIHRyZWUuYyB1cmkuYyB4bGluay5jIHhtbG1lbW9yeS5jOgorCSAgQXBwbGllZCB0aGUgbGFzdCBwYXRjaGVzIGZyb20gR2FyeSwgY2xlYW51cCwgYWN0aXZhdGVkIHRocmVhZGluZworCSAgYWxsIHVzZXIgYWNjZXNzaWJsZSBnbG9iYWwgdmFyaWFibGVzIGFyZSBub3cgaGFuZGxlZCBpbiBnbG9iYWxzLltjaF0KKwkgIFN0aWxsIGEgYml0IHJvdWdodCBidXQgbWFrZSB0ZXN0cyBwYXNzZXMgd2l0aCBlaXRoZXIgCisJICAtLXdpdGgtdGhyZWFkcyBkZWZpbmVkIGF0IGNvbmZpZ3VyZSB0aW1lIG9yIG5vdC4KKwkqIE1ha2VmaWxlLmFtIGV4YW1wbGUvTWFrZWZpbGUuYW06IGFkZGVkIGdsb2JhbHMuW2NoXSBhbmQgdGhyZWFkcworCSAgbGlua2luZyBvcHRpb25zCisKK0ZyaSBPY3QgMTIgMTk6MjU6NTUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW0KKwkgIGluY2x1ZGUvbGlieG1sL2dsb2JhbHMuaCBnbG9iYWxzLmMgIGluY2x1ZGUvbGlieG1sL3RocmVhZHMuaAorCSAgdGhyZWFkcy5jIGJ1aWxkX2dsb2IucHkgZ2xvYmFsLmRhdGEgeG1sY2F0YWxvZy5jIGFjY29uZmlnLmgKKwkgIGNvbmZpZ3VyZS5pbjogc3RhcnRlZCBpbnRlZ3JhdGluZyB0aGUgY29yZSBvZiB0aGUgdGhyZWFkIHN1cHBvcnQKKwkgIG5vdCBhY3RpdmF0ZWQgeWV0IGJ1dCBoYWxmIGludGVncmF0ZWQuIFRoZSBjb2RlIHNob3VsZCBzdGlsbAorCSAgY29tcGlsZSBhbmQgd29yayBhbnl3YXkuCisKK0ZyaSBPY3QgMTIgMDA6NTM6MDMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHRyZWUuYyBjYXRhbG9nLmMgZGVidWdYTUwuYyBlbnRpdGllcy5jIG5hbm9mdHAuYworCSAgcGFyc2VyLmMgdmFsaWQuYyB4bWxtZW1vcnkuYyB4cGF0aC5jIHhwb2ludGVyLmM6IHN0YXJ0ZWQKKwkgIGludGVncmF0aW5nIHRoZSBub24tY29udHJvdmVyc2lhbCBwYXJ0cyBvZiBHYXJ5IFBlbm5pbmd0b24KKwkgIG11bHRpdGhyZWFkIHBhdGNoZXMKKwkqIGNhdGFsb2cuYzogY29ycmVjdGVkIGEgc21hbGwgYnVnIGludHJvZHVjZWQKKworVGh1IE9jdCAxMSAyMDo1ODoxNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmMgaW5jbHVkZS9saWJ4bWwvY2F0YWxvZy5oOiB2ZXJ5IHNlcmlvdXMgY2xlYW51cCwKKwkgIGlzb2xhdGluZyB1bnBvcnRhYmxlIGNvZGUgYW5kIGFzIG11Y2ggYXMgcG9zc2libGUgdGhlIGFjY2Vzc2VzCisJICB0byB0aGUgZ2xvYmFsIHNoYXJlZCBjYXRhbG9nLiBNYXkgbmVlZCBtb3JlIHRlc3RpbmcgIQorCitUaHUgT2N0IDExIDExOjEwOjMxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGluY2x1ZGUvbGlieG1sL2RlYnVnWE1MLmggZGVidWdYTUwuYyB0cmVlLmM6IGludGVncmF0aW5nCisJICBLZWl0aCBJc2RhbGUgcGF0Y2hlcyBmb3IgdGhlIFhTTFQgZGVidWdnZXIgaW50ZXJmYWNlcy4gU29tZQorCSAgY2xlYW51cAorCitUaHUgT2N0IDExIDA4OjQ0OjAxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL01ha2VmaWxlLm1pbmd3OiB1cGRhdGUgZnJvbSBUb2JpYXMgUGV0ZXJzIGZvciAyLjQuNQorCSogRE9DQnBhcnNlci5jOiBnZW5lcmF0ZSBsaW5lIG51YmVycyBpbiBlbGVtZW50cworCitXZWQgT2N0IDEwIDExOjM1OjQ1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIDIuNC42IHJlbGVhc2UKKwkqIGRvYy94bWwuaHRtbCBkb2MvaHRtbC8qOiB1cGRhdGVkIGFuZCByZWJ1aWx0IHRoZSBkb2NzCisJKiBpbmNsdWRlL2xpYnhtbC8qLmggKi5jOiBmaXhlZCBhIG51bWJlciBvZiB0ZWgvdGhlIHdpZGh0L3dpZHRoIHR5cG9zCisKK01vbiBPY3QgIDggMjA6Mzg6MjcgTURUIDIwMDEgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGNhdGFsb2dfbWFuLnhtbCwgeG1sY2F0YWxvZy4xLCB4bWxjYXRhbG9nX21hbi5odG1sCisJYWRkaW5nIGRvY3VtZW50YXRpb24gZm9yIERWJ3Mgc3VwZXJjYXRhbG9nIHN1cHBvcnQKKworTW9uIE9jdCAgOCAxNzowMDoxNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9jYXRhbG9nLmggY2F0YWxvZy5jIHhtbGNhdGFsb2cuYzogYWRkaW5nIFNHTUwKKwkgIHN1cGVyIGNhdGFsb2cgc3VwcG9ydCBhZGRpbmcgb25lIEFQSSBhbmQgb25lIGZsYWcgLS1zZ21sIHRvCisJICB4bWxjYXRhbG9nCisKK1N1biBPY3QgIDcgMTY6NDM6NTcgTURUIDIwMDEgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGNhdGFsb2dfbWFuLnhtbCwgeG1sY2F0YWxvZy4xCisJT25lIG1vcmUgY3JhY2sgYXQKKwlodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU0MzkyIAorCitTdW4gT2N0ICA3IDE4OjQ3OjAyIENFU1QgMjAwMSBUaG9tYXMgQnJveWVyIDx0YnJveWVyQGx0Z3QubmV0PgorCisJKiB4cGF0aC5jOiBpbXBsZW1lbnRlZCB4bWxYUGF0aE9iamVjdENvcHkgZm9yIGV4dGVybmFsIG9iamVjdHMKKwkqIGluY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmg6IGFkZGVkIHhtbFhQYXRoU3RhY2tJc0V4dGVybmFsCisKK1NhdCBPY3QgIDYgMTY6MjU6NTIgTURUIDIwMDEgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSpkb2MveG1sY2F0YWxvZ19tYW4ueG1sLCB4bWxjYXRhbG9nX21hbi5odG1sLCB4bWxjYXRhbG9nLjEKKwlmaW5pc2hpbmcgdXAgZml4IHRvCisJaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD01NDM5MiwgbWFraW5nCisJdGhlIHhtbGNhdGFsb2cgbWFuIHBhZ2UgZGlzcGxheSBtb3JlIGVsZWdhbnRseQorCitTYXQgT2N0ICA2IDE1OjI3OjEyIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogY2xvc2luZyBidWcgIzYxODMyCisJKiBIVE1McGFyc2VyLmM6IHJlbW92ZWQgYSB3YXJuaW5nCisKK1NhdCBPY3QgIDYgMTU6MDc6MTQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogZml4aW5nICM2MTY3MyBwYXJ0IEksIGRvIG5vdCBsb29zZSBkb2MgaW5mb3JtYXRpb24KKwkgIHdoZW4gY29weWluZyByZXN1bHQgdmFsdWUgdHJlZXMuCisKK1NhdCBPY3QgIDYgMTE6NTg6NTggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogdHJ5aW5nIHRvIGhhcmRlbiB0aGUgWFBhdGggaW50ZXJwcmV0ZXIKKworRnJpIE9jdCAgNSAyMDozNzo1MSBNRFQgMjAwMSBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiBkb2MveG1sY2F0YWxvZy4xIHVwZGF0ZWQgdXNpbmcgYSBuZXcgc3R5bGVzaGVldCB0byBhZGRyZXNzLCBpbgorCXBhcnQsIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTQzOTIKKworRnJpIE9jdCAgNSAyMzozNTowMCBIS1QgMjAwMSBXaWxsaWFtIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KKworCSogSFRNTHBhcnNlcjogcmVwYWlyZWQgYW5vdGhlciBsb29wIHByb2JsZW0KKworRnJpIE9jdCAgNSAxMToxNjoyMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB1cmkuYzogYXBwbGllZCBmaXggZnJvbSBNYXRoaWFzIEhhc3NlbG1hbm4gYWJvdXQgYSBidWcgaW4gVVJJCisJICBwYXJzaW5nLgorCSogeHBhdGguYzogZml4IGJ1ZyAjNjEyOTEgdGhlIGRlZmF1bHQgWE1MIG5hbWVzcGFjZSBub2RlIGlzCisJICBtaXNzaW5nIGZyb20gdGhlIG5hbWVzcGFjZSBheGlzLgorCSogdHJlZS5jOiByZWZ1c2UgdG8gY3JlYXRlIG5hbWVzcGFjZXMgbm9kZXMgd2l0aCBwcmVmaXggInhtbCIKKworVGh1IE9jdCAgNCAxNjo0Nzo0NCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogb3VjaCBhIG5vbi1kZWZpbmVkIG5hbWVzcGFjZSBjb3VsZCBsZWFkIHRvIGEgY3Jhc2gsCisJICBmaXhlZCAjNjEyMTUKKworVGh1IE9jdCAgNCAxNjoyNDoyNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogY2xvc2VkIGJ1ZyAjNjEwNTQKKworV2VkIE9jdCAgMyAxNToxOTowNCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9NYWtlZmlsZS5hbTogY2xvc2luZyAjNjA3MDgKKworVHVlIE9jdCAgMiAxNTo1MjowNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9kc3AvbGlieG1sMi5kZWYuc3JjIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oIHBhcnNlci5jOgorCSAgYWRkaW5nIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhIGZvbGxvd2luZyBNYXJjbyBTdGlwZWsgc3VnZ2VzdGlvbgorCitUdWUgT2N0ICAyIDExOjI3OjU4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHZhbGlkLmM6IGNsb3NlIGJ1ZyAjNjE1NTAgd2hlbiB4bWw6IHdhc24ndCBjb25zaWRlcmVkIGEgbmFtZXNwYWNlCisKK1R1ZSBPY3QgIDIgMTE6MTg6MzIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogd2luMzIvZHNwL2xpYnhtbDIuZGVmLnNyYzogSWdvciBabGF0a292aWMgcGF0Y2hlcworCSogRE9DQnBhcnNlci5jIEhUTUxwYXJzZXIuYyBwYXJzZXIuYzogZml4ZWQgdHlwb3MKKworTW9uIE9jdCAgMSAwOTozNDo1MSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IEp1c3RpbiBGbGV0Y2hlciBwcm92aWRlZCBjbGVhdXAgY29kZSBpbiBjYXNlCisJICBIQVZFX1NUQVQgaXMgbm90IGRlZmluZWQKKwkqIGluY2x1ZGUvd2luMzJjb25maWcuaDogSWdvciBabGF0a292aWMgc3VnZ2VzdGVkIHRvIGhhdmUKKwkgIEhBVkVfU1RBVCBkZWZpbmVkIHRoZXJlCisKK1NhdCBTZXAgMjkgMDA6MTU6MDAgSEtUIDIwMDEgV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisKKwkqIGNhdGFsb2cuYyAtIGZpeGVkIHR5cGluZyBlcnJvciByZXBvcnRlZCBieSBNLiBCYXJyb3MKKworU3VuIFNlcCAyMyAyMTowMjozOSBNRFQgMjAwMSBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKiB4bWxsaW50LmMgLSBmaXhpbmcgdHlwbworCitTYXQgU2VwIDIyIDEwOjAwOjAwIEhLVCAyMDAxIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorCisJKiBIVE1McGFyc2VyLmM6IHNtYWxsIGVuaGFuY2VtZW50IHRvIHByZXZlbnQgbG9vcCBvbgorCSAgdW5yZWNvZ25pemFibGUgZGF0YQorCitGcmkgU2VwIDIxIDExOjQ1OjUzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHBhcnNlckludGVybmFscy5jOiBhcHBseWluZyBwYXRjaCBmcm9tIGJ1ZyAjNjA3NTcgdGhpcworCSAgc2hvdWxkIGNsb3NlIGl0CisKK1RodSBTZXAgMjAgMTU6NTQ6MjkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY2F0YWxvZy5jIHhtbGNhdGFsb2cuYzogcmVtb3ZlZCBhIGNvdXBsZSBvZiB3YXJuaW5nCisJKiB4cGF0aC5jOiB0cnkgdG8gc29sdmUgdGhlIGxpbmtpbmcgcHJvYmxlbSBvbiBwbGF0Zm9ybXMKKwkgIG5lZWRpbmcgdHJpbyB0byBjb21waWxlCisKK1dlZCBTZXAgMTkgMTA6MDE6MzcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gbGlieG1sLnNwZWMuaW46IGJhY2tpbmcgdXAgbm9uLWRvY3VtZW50ZWQgY2hhbmdlcworCSAgY29tbWl0ZWQgd2l0aG91dCByZXZpZXcgb3IgYXByb3ZhbCBieSBKZW5zIEZpbmtlIDxqZW5zQGdub21lLm9yZz4KKwkqIEhBQ0tJTkc6IG1hZGUgMTAwJSBjbGVhciB0aGF0IG5vIGNvbW1pdCBzaG91bGQgYmUgZG9uZSBkaXJlY3RseQorCitNb24gU2VwIDE3IDE4OjUyOjM3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbjogSm9lIE9ydG9uIHByb3ZpZGVkIGEgcGF0Y2ggZml4aW5nIGEgcHJvYmxlbQorCSAgd2hlbiBpY29udiBpcyBzcGVjaWZpZWQgdG8gYmUgaW4gYSBub24tc3RhbmRhcmQgZGlyZWN0b3J5CisJICBidXQgd2Fzbid0IGV4cG9ydGVkIGluIHhtbDItY29uZmlnIC0tY2ZsYWdzCisKK0ZyaSBTZXAgMTQgMTk6MzI6NDMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBsZXQncyBzaGlwIDIuNC41IGJlZm9yZSBnZXR0aW5nIHRvbyBtdWNoCisJICB0cm91YmxlcyB3aXRoIDIuNC40IGVycm9ycy4KKworRnJpIFNlcCAxNCAxMjoyNjo1OCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBlbmNvZGluZy5jIGVudGl0aWVzLmM6IGRvIG5vdCBvdXRwdXQgaGV4YWRlY2ltYWwgY2hhcnJlZnMKKwkgIHdoZW4gc2VyaWFsaXppbmcgSFRNTCBzaW5jZSBzb21lIHZlcnNpb24gb2YgTmV0c2NhcGUgY2FuJ3QKKwkgIGdyb2sgaXQsIGdlbmVyYXRlIGRlY2ltYWwgb25lcy4KKwkqIHJlc3VsdC9IVE1ML2RvYzMuaHRtOiBvdXRwdXQgY2hhbmdlZCBkdWUgdG8gcHJldmlvdXMgdGVzdAorCSogcGFyc2VySW50ZXJuYWxzLmM6IHJlcGFpciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgpIGJyb2tlbiBpbiAyLjQuNAorCitUaHUgU2VwIDEzIDEzOjM0OjI3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC0yLjAucGMuaW46IGRvaGggZ2VuZXJhdGVkIHRoZSB3cm9uZyBpbmNsdWRlIHBhdGggOi0oCisJKiBkb2MvTWFrZWZpbGUuYW0gbGlieG1sLnNwZWMuaW46IHJlLWRvaGggZm9yZ290IHRoZSBuZXcgbWFucGFnZSA6LSgKKworV2VkIFNlcCAxMiAyMjoxNDo1NSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCVJlbGVhc2VkIDIuNC40CisKKwkqIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBsaWJ4bWwuc3BlYy5pbiBpbmNsdWRlL2xpYnhtbC9NYWtlZmlsZS5hbQorCSAgbGlieG1sLTIuMC5wYy5pbjogbW92ZWQgaW5jbHVkZXMgdG8gaW5jbHVkZWRpci9saWJ4bWwyL2xpYnhtbCwKKwkgIHVwZGF0ZWQgdGhlIGNvbmZpZ3VyYXRpb24gc2NyaXB0cyBzeXN0ZW1zIGFjY29yZGluZ2x5CisKK1dlZCBTZXAgMTIgMjA6NDk6MzIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogY29uZmlndXJlLmluOiBwcmVwYXJpbmcgZm9yIDIuNC40CisJKiBkb2MveG1sLmh0bWwgZG9jL2h0bWwvKjogdXBkYXRlZCBhbmQgcmVidWlsdCB0aGUgZG9jcworCitXZWQgU2VwIDEyIDE2OjU4OjE2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL2RzcC9saWJ4bWwyLmRlZi5zcmM6IHRyaWVkIHRvIGluY29ycG9yYXRlIGNvbW1lbnRzCisJICBmcm9tIGJ1ZyAjNTkyMjAKKworVHVlIFNlcCAxMSAxMToyNTozNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYyByZXN1bHQvbm9lbnQvd21sLnhtbDogZml4ZWQgYnVnICM1OTk4MSByZWxhdGVkCisJICB0byBoYW5kbGluZyBvZiAnJicgaW4gYXR0cmlidXRlcyB3aGVuIGVudGl0aWVzIGFyZSBzdWJzdGl0dWVkCisKK01vbiBTZXAgMTAgMjI6MTQ6NDIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogbGlieG1sLmggaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluCisJICBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaCBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaC5pbjoKKwkgIFRyaWVkIHRvIGNsb3NlIGJ1ZyAjNjAxMzEKKworTW9uIFNlcCAxMCAyMDo0NjowMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogZml4ZWQgYSBidWcgaW4gdGhlIEhUTUwgcGFyc2VyIGludHJvZHVjZWQgU2VwICA5CisKK01vbiBTZXAgMTAgMjA6MTM6MDkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmM6IGZpeGluZyBidWcgIzU5OTQ2IG9uIHhtbG5zPSIiCisKK01vbiBTZXAgMTAgMTY6Mzk6NDIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCBTQVguYzogZml4aW5nIGJ1ZyA1OTczMiwgc2ltcGxlCisJICBidXQgYWxsb2NhdGVzIGEgbmV3IGVycm9yIGNvZGUuCisKK1N1biBTZXAgIDkgMTA6MzM6MTUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBKb2huIEZsZWNrIGZpeGVkIHR5cG9zIGluIHRoZSBvcHRpb25zIG91dHB1dAorCSogcGFyc2VyLmMgU0FYLmM6IGZpeCBpZ25vcmFibGUgd2hpdGUgc3BhY2UgU0FYIHNlbGVjdGlvbgorCitTYXQgU2VwICA4IDExOjQzOjUzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGVudGl0aWVzLmM6IFN0ZXZlIFVuZGVyd29vZCBmb3VuZCB0aGUgcG9zc2liaWxpdHkgb2YgYW4KKwkgIGluaW5pdGUgbG9vcCBpbiBjYXNlIG9mIGVycm9yLgorCitGcmkgU2VwICA3IDExOjM1OjAwIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtOiBOZWVkICQoSUNPTlZfTElCUykgaW4gbGlieG1sMl9sYV9MSUJBREQKKworV2VkIFNlcCAgNSAxNzo0Nzo0MyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBwYXJzZXIuYzogd2FybiBpZiB2ZXJzaW9uIGlzIG5vdCAxLjAgYnV0IGl0J3Mgbm90CisJICBzdHJpY3RseSBzcGVha2luZyBhbiBlcnJvciBhZnRlciBhbmFseXppbmcgdGhlIHNwZWMKKworTW9uIFNlcCAgMyAxMDowNzowMyBNRFQgMjAwMSBKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PgorCisJKmRvYy9jYXRhbG9nLmh0bWwgLSBhZGQgbGluayB0byB0aGUgaHRtbCB2ZXJzaW9uIG9mIHRoZQorCW1hbiBwYWdlLCBvdGhlciBsaW5ndWlzdGljIGNsZWFudXBzCisKK01vbiBTZXAgIDMgMDk6MTA6MDggTURUIDIwMDEgSm9obiBGbGVjayA8amZsZWNrQGlua3N0YWluLm5ldD4KKworCSogZG9jL3htbGNhdGFsb2dfbWFuLnhtbCwgeG1sY2F0YWxvZ19tYW4uaHRtbCwgeG1sY2F0YWxvZy4xCisJYWRkaW5nIGRvY3VtZW50YXRpb24gZm9yIHhtbGNhdGFsb2cuIE5vdGU6IHhtbGNhdGFsb2cuMSwgdGhlIG1hbgorCWZpbGUsIGhhcyBub3QgeWV0IGJlZW4gaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLgorCitTYXQgU2VwICAxIDE4OjE3OjQ3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNhdGFsb2cuYzogcmVtb3ZlZCBhIGR1cGxpY2F0ZSBhZmZlY3RhdGlvbiBKdXN0aW4gRmxldGNoZXIKKworRnJpIEF1ZyAzMSAyMjowMjoxMCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0cmVlLmM6IEFybWluIFNhbmRlciBwb2ludGVkIGEgcG9zc2libGUgdGV4dCBjb2FsZXNjaW5nIAorCSAgcHJvYmxlbSwgY29tcGxldGVkIGhpcyBwYXRjaC4KKworRnJpIEF1ZyAzMSAxODozMDoyOCBDRVNUIDIwMDEgQmpvcm4gUmVlc2UgPGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIHRyaW9uYW4uYzogRml4ZWQgY29uc3QgYW5kIHZvbGF0aWxlIHJlLWRlZmluaXRpb24gcHJvYmxlbQorCitGcmkgQXVnIDMxIDE2OjUxOjI4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC40IHBhcnNlci5jOiBkb2MgdXBkYXRlcyBmcm9tIEhlaWtvIFJ1cHAKKwkqIHBhcnNlckludGVybmFscy5jOiAyIHNhbml0eSBjaGVja3MgZnJvbSBIZWlrbyBSdXBwCisKK1R1ZSBBdWcgMjggMjI6Mzg6NDUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdHJlZS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gQXJtaW4gU2FuZGVyIHRvIG1ha2Ugc29tZSBwb2ludGVycworCSAgY29uc3QgaW4geG1sQ29weU5vZGUoKQorCSogaW5jbHVkZS9saWJ4bWwvdHJlZS5oOiBhZGRlZCBmaXggdG8gdGhlIGhlYWRlcgorCitNb24gQXVnIDI3IDE2OjI0OjQ3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhwYXRoLmM6IGh1bSwgcmVzdHJpY3QgdGhlIGludGVnZXIgdXNhZ2UgZ2NjIGJ1ZyB3b3JrYXJvdW5kCisJICB0byBvbmx5IGdjYyBjb21waWxlcnMgc28gdGhhdCBvdGhlciBhcmNoaXRlY3R1cmUgZG9uJ3QgZ2V0CisJICBwZW5hbGl6ZWQgYnkgdGhpcyBsaW1pdGF0aW9uLgorCSogaW5jbHVkZS9saWJ4bWwveHBhdGguaDogc21hbGwgdHlwbyBmaXggZnJvbSBIZWlrbyBXLiBSdXBwCisKK1N1biBBdWcgMjYgMjA6NDU6MDQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogdmFsaWQuYzogZml4ZWQgYSBXaW5kb3dzIGNvbXBpbGVyIHdhcm5pbmcgKENocmlzIFBvYmxldGUpCisJKiB4cGF0aC5jOiBmaXggZm9yIG1vZCB3aGVuIGRpdmlkZW5kIGlzIDAgKENocmlzIFBvYmxldGUpCisKK1NhdCBBdWcgMjUgMTU6MzA6MTcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvY2F0YWxvZy5oIGNhdGFsb2cuYyB4bWxjYXRhbG9nLmM6IGFkZGVkIGEgCisJICAtLWNvbnZlcnQgb3B0aW9uIHRvIHhtbGNhdGFsb2cgdG8gY29udmVydCBTR01MIG9uZXMgdG8KKwkgIHRoZSBYTUwgc3ludGF4LgorCSogeG1sbGludC5jOiBzbWFsbCBjbGVhbnVwIGZvciAkU0dNTF9DQVRBTE9HX0ZJTEVTIHN1cHBvcnQuCisKKwkyLjQuMyBnb3QgcmVsZWFzZWQgYXQgdGhhdCBwb2ludAorVGh1IEF1ZyAyMyAyMzoxNjozMiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmMgeG1sSU8uYzogc3RhcnRlZCBzb21lIHNlcmlvdXMgdGVzdGluZyBhbmQgZml4ZWQKKwkgIGEgZmV3IGJ1ZyBhbmQgb3B0bWl6YXRpb24gbmVlZHMuCisKK1RodSBBdWcgMjMgMTc6MjY6NTggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oOgorCSAgcHJlcGFyaW5nIGZvciBhIDIuNC4zIHJlbGVhc2UgZXZlbiBpZiBpdCBtYXkgbm90IGJlIHJlYWR5IHlldAorCSogY2F0YWxvZy5jIHBhcnNlci5jIHhtbElPLmMgaW5jbHVkZS9saWJ4bWwvY2F0YWxvZy5oOiByZWRpcmVjdGVkCisJICBhbGwgZmlsZSBwYXJzaW5nIGxvb2t1cCB0byBnbyB0aHJvdWdoIHRoZSBlbnRpdHkgcmVzb2x2ZXIsIGFkZAorCSAgdG8gYWRkIGFuIEFQSSB0byBieXBhc3MgaXQgKG5lZWRlZCB0byBsb2FkIGNhdGFsb2dzIHRoZW1zZWx2ZXMpLAorCSAgc29tZSBjbGVhbnVwIG9uIHRoZSBjYXRhbG9nIGNvZGUgdG9vLgorCSogbmFub2Z0cC5jOiBzbWFsbCBjbGVhbnVwCisJKiBkb2MvY2F0YWxvZy5odG1sOiBzbWFsbCB1cGRhdGUKKworVGh1IEF1ZyAyMyAxMjoyMjoyNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IGZpeGVkIGJ1Z2kgIzU5NDA2IGluIFNHTUwgY2F0YWxvZyBwYXJzaW5nIHJlcG9ydGVkIGJ5CisJICBKdW4gS3VyaXlhbWEKKworVGh1IEF1ZyAyMyAwMjo1MToyOSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBkb2MvY2F0YWxvZy5odG1sOiBmaW5pc2hlZCB0aGUgY2F0YWxvZyBkb2N1bWVudGF0aW9uCisKK1RodSBBdWcgMjMgMDE6Mzg6NDIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogZG9jL2NhdGFsb2cuaHRtbCBkb2MveG1sLmh0bWw6IGFkZGVkIGRvY3VtZW50YXRpb24gYWJvdXQKKwkgIENhdGFsb2cgc3VwcG9ydCwgbWlzc2VzIGFuIEFQSSBkZXNjcmlwdGlvbiAKKwkqIGRvYy9odG1sLyo6IHJlZXh0cmFjdGVkIHRoZSBBUEkgcGFnZXMKKworV2VkIEF1ZyAyMiAxODoyNzo0NyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9jYXRhbG9nLmggY2F0YWxvZy5jIHhtbElPLmMgSFRNTHBhcnNlci5jOgorCSAgQWRkZWQgdGhlIHBhcnQgYWJvdXQgc2VjdGlvbiA3LjIgb24gVVJJIHJlc29sdXRpb24sCisJICBmaXhlZCBhIHNpZGUgZWZmZWN0IGluIHRoZSBIVE1MIHBhcnNlciwgbG9vayBjb21wbGV0ZQorCSAgYW5kIHJlYWR5IHRvIHJvY2sgZXhjZXB0IHRoZSBVUkkvU3lzdGVtSUQgcGFydCEKKworV2VkIEF1ZyAyMiAxNjoyNzowMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC9jYXRhbG9nLmggaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmgKKwkgIGluY2x1ZGUvbGlieG1sL3htbGVycm9yLmggY2F0YWxvZy5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jCisJICB4bWxJTy5jOiBhZGRlZCBzdXBwb3J0IGFuZCBBUElzIG5lZWRlZCBmb3IgdGhlIGNhdGFsb2cgUEkKKwkqIGluY2x1ZGUvbGlieG1sL3htbElPLmg6IGNsZWFudXAKKworV2VkIEF1ZyAyMiAwMjowMzozMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmMgcGFyc2VyLmMgeG1sSU8uYyB4bWxjYXRhbG9nLmMgeG1sbGludC5jIAorCSAgaW5jbHVkZS9saWJ4bWwvY2F0YWxvZy5oOiBzdGFydHMgdG8gbG9vayBva2F5LCByZWFsbHkKKwkgIHBsdWdnZWQgdGhlIG5ldyBmcmFtZXdvcmssIGNsZWFuZWQgYSBsb3Qgb2Ygc3R1ZmYsCisJICBhZGRlZCBzb21lIEFQSXMsIGV4Y2VwdCB0aGUgUEkncyBzdXBwb3J0IG1pc3NpbmcgdGhpcworCSAgc2hvdWxkIGJlIG1vc3RseSBjb21wbGV0ZQorCSogcmVzdWx0L2NhdGFsb2dzLyogdGVzdC9jYXRhbG9ncy8qOiBhZGRlZCBuZXcgdGVzdCwgZW5yaWNoZWQKKwkgIHRoZSBleGlzdGluZyBvbmUgd2l0aCBVUk4gSUQgdGVzdHMKKworVHVlIEF1ZyAyMSAxNDo1NjoxOCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBjYXRhbG9nLmM6IGZpeGVkIG5leHRDYXRhbG9nCisJKiByZXN1bHQvY2F0YWxvZ3MvZG9jYm9vayB0ZXN0L2NhdGFsb2dzLyo6IHN0YXJ0ZWQgYWRkaW5nCisJICBhIHNtYWxsIHJlZ3Jlc3Npb24gdGVzdAorCitUdWUgQXVnIDIxIDEyOjUyOjM4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIGNhdGFsb2cuYyB4bWxjYXRhbG9nLmMgaW5jbHVkZS9saWJ4bWwvY2F0YWxvZy5oOgorCSAgbW9yZSB3b3JrIG9uIHRoZSBYTUwgY2F0YWxvZyBzdXBwb3J0LgorCSogcGFyc2VyLmMgaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmg6IHNtYWxsIGNsZWFudXAgc2VlbXMgdXNpbmcKKwkgIGxpc3QgYXMgYSBwdWJsaWMgcGFyYW1ldGVyIG5hbWUgY2FuIGdpdmUgcG9ydGFiaWxpdHkgdHJvdWJsZXMKKwkqIHRyaW9uYW4uYyB0cmlvbmFuLmggeHBhdGguYyBpbmNsdWRlL2xpYnhtbC90cmlvbmFuLmgKKwkgIGluY2x1ZGUvbGlieG1sL3hwYXRoLmggaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW06IHJlbW92ZWQKKwkgIHRyaW9uYW4gZnJvbSB0aGUgbGlieG1sIEFQSSwgYWRkZWQgeG1sWFBhdGhJc0luZiBhbmQgeG1sWFBhdGhJc05hTgorCSAgd3JhcHBlcnMKKworVHVlIEF1ZyAyMSAxMToxODo0NSBDRVNUIDIwMDEgQmpvcm4gUmVlc2UgPGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIE1ha2VmaWxlLmFtIHRyaW8uYyB0cmlvZGVmLmggdHJpb25hbi5jIHhwYXRoLmMKKwkgIGluY2x1ZGUvbGlieG1sL01ha2VmaWxlLmFtIGluY2x1ZGUvbGlieG1sL3RyaW9uYW4uaDoKKwkgIFJlLXdvcmtlZCBOb3QtQS1OdW1iZXIgYW5kIEluZmluaXR5IHN1cHBvcnQuCisJKiB4bWxjYXRhbG9nLmM6IGFkZGVkIHJlYWRsaW5lIGluY2x1ZGUgZmlsZXMKKworTW9uIEF1ZyAyMCAwMjowNDoxMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBNYWtlZmlsZS5hbSB4bWxjYXRhbG9nLmMgbGlieG1sLnNwZWMuaW46IHJlbmFtaW5nIAorCSAgdGVzdENhdGFsb2cgYXMgeG1sY2F0YWxvZywgbWFraW5nIGl0IGFuIGluc3RhbGxlZCBhcHAKKwkgIGFkZGluZyBhIHNoZWxsLCBhbmQgcHJlcGFyaW5nIGl0IHRvIGJlIGEgL2V0Yy94bWwvY2F0YWxvZworCSAgbWFuYWdlbWVudCB0b29sLCB0aG91Z2ggbm90IHJlYWR5IHlldAorCSogY2F0YWxvZy5jIGluY2x1ZGUvbGlieG1sL2NhdGFsb2cuaDogYWRkaW5nIHN1cHBvcnQgZm9yCisJICBYTUwgQ2F0YWxvZ3MgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS8KKwkgIG5vdCBmaW5pc2hlZCwgdGhlcmUgaXMgc29tZSBpbnRlcmVzdGluZyB0cmFkZW9mZnMgYW5kIGEKKwkgIGZldyBvcGVuIHF1ZXN0aW9ucyBsZWZ0LgorCitTdW4gQXVnIDE5IDE0OjU5OjU2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHhtbGxpbnQuYzogZml4ZWQgYSBsaW5lIGZvcm1hdHRpbmcgcHJvYmxlbQorCitGcmkgQXVnIDE3IDExOjM1OjMxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIFNBWC5jOiByZW1vdmVkIGEgY291cGxlIG9mIHVudXNlZCB2YXJpYWJsZSAoQWxiZXJ0IENoaW4pCisKK0ZyaSBBdWcgMTcgMDE6MjU6MjEgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSFRNTHBhcnNlci5jIEhUTUx0cmVlLmMgaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oOgorCSAgdHJ5aW5nIHRvIGZpeCBzb21lIHRyb3VibGVzIHcuci50LiBmdW5jdGlvbiByZXR1cm5pbmcKKwkgIGNvbnN0IHh4eFB0ci4KKworVGh1IEF1ZyAxNiAyMTozMzoyMCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB3aW4zMi9kc3AvbGlieG1sMi5kZWYuc3JjOiBhbm90aGVyIHNldCBvZiBzeW1ib2xzIGNvbmRpdGlvbmFsbHkKKwkgIGRlZmluZWQKKworVGh1IEF1ZyAxNiAyMTozMToxNCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cG9pbnRlci5jOiByZW1vdmVkIHVudXNlZCB2YXIKKworVGh1IEF1ZyAxNiAxODoyNjo0MCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB0ZXN0WFBhdGguYzogYW5vdGhlciBzbWFsbCBjbGVhbnVwIGNsb3NpbmcgYnVnICM1OTExMAorCitUaHUgQXVnIDE2IDE3OjU5OjE4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIHdpbjMyL2RzcC9saWJ4bWwyLmRlZi5zcmM6IHNtYWxsIGNsZWFudXAgY2xvc2luZyBidWcKKwkgICM1OTEwOAorCitXZWQgQXVnIDE1IDIyOjQ2OjAxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGV4YW1wbGUvZ2pvYnJlYWQuYzogYWRkIHhtbENsZWFudXBQYXJzZXIoKSBiZWZvcmUgbGVhdmluZworCitXZWQgQXVnIDE1IDE0OjU3OjA4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaDoKKwkgIHJlbGVhc2VkIDIuNC4yCisKK1dlZCBBdWcgMTUgMTM6NTY6MjIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogaW5jbHVkZS9saWJ4bWwvdmFsaWQuaCBkZWJ1Z1hNTC5jIHZhbGlkLmM6IGRlcHJlY2F0ZQorCSAgdGhlIG5vbi1ib3VuZGNoZWNraW5nIFNwcmludGYgZnVuY3Rpb25zLCBhZGQgU25wcmludGYKKwkgIHRoaXMgc2hvdWxkIGNsb3NlIGJ1ZyAjNTc5ODQKKworV2VkIEF1ZyAxNSAxMDo0NjowNyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4bWxJTy5jOiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSgpIGRpZG4ndCB1bmVzY2FwZWQKKwkgIFVSSXMgYmVmb3JlIGRvaW5nIHRoZSBsb29rdXBzIChwb2ludGVkIGJ5IE1hcmsgVmFrb2MpCisKK1R1ZSBBdWcgMTQgMTg6Mzc6MjMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeHBhdGguYzogc2VyaW91cyBjaGFuZ2VzIG9uIFJlc3VsdCBWYWx1ZSBUcmVlcyBhbmQgTm9kZVNldHMKKwkgIHcuci50LiBkZWFsbG9jYXRpb24gYW5kIGNvbGxlY3Qgb3BlcmF0aW9ucy4gUHJvYmFibHkgbm90CisJICAxMDAlIGNsZWFuIChtZXJnZSBvZiBhbGxvY2F0ZWQgdHJlZXMgc21lbGxzIGxpa2UgYSBwcm9ibGVtKS4KKwkgIFNlZW1zIHN1ZmZpY2llbnQgdG8gY2xvc2UgIzU4OTQzCisKK1R1ZSBBdWcgMTQgMTY6MTI6MDAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogeG1sbGludC5jOiBhZGRpbmcgYSAtLWZvcm1hdCBvcHRpb24KKworVHVlIEF1ZyAxNCAxNDoxNjoyNCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBjb3VudCgpIHdhcyBicm9rZW4gb24gUmVzdWx0IFZhbHVlIFRyZWUKKwkqIHhtbElPLmM6IGZpeGVkIGZpbGU6Ly8vIGFjY2Vzc2VzIG9uIF9XSU4zMgorCitNb24gQXVnIDEzIDEzOjIyOjUzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisKKwkqIGxpYnhtbC5tNDogcy9MSUJYTUxfVkVSU0lPTl9OVU1CRVIvTElCWE1MX1ZFUlNJT04vIHNlZW1zIHRoZQorCSAgbWFjcm8gd2FzIHJlbmFtZWQsIHRoaXMgc2hvdWxkIGNsb3NlIGJ1ZyAjNTg2ODMKKworTW9uIEF1ZyAxMyAxMjozMzo0MCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYzogc21hbGwgZml4IGZpeGluZyBidWcgIzU4NTM5IHJlcG9ydGVkIGJ5IGNvb2xvLCBpbgorCSAgZW50aXR5IHN1YnN0aXR1dGlvbiBtb2RlIHRleHQgYXQgdGhlIGVuZCBvZiB0aGUgZW50aXR5IG1pZ2h0CisJICBiZSBhZGRlZCBkdWUgdG8gdGV4dCBjb2FsZXNjaW5nLgorCSogbmFub2Z0cC5jIHBhcnNlci5jOiBzbWFsbCBjbGVhbnVwCisKK1dlZCBBdWcgIDggMjI6NTc6MDUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogSEFDS0lORzogYWRkZWQgSm9obiBGbGVjayByaWdodCB0byBjb21taXQgaW4gdGhlIGRvYyBzdWJkaXIKKworVHVlIEF1ZyAgNyAwMzowNTo1OCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiBTQVguYyB0ZXN0WFBhdGguYyB2YWxpZC5jIHhtbGxpbnQuYyBpbmNsdWRlL2xpYnhtbC92YWxpZC5oOgorCSAgYWxsb3cgdG8gaW5oZXJpdCBhdHRyaWJ1dGVzIGZyb20gdGhlIERURCBkaXJlY3RseSBpbiB0aGUKKwkgIHRyZWUsIHRoaXMgaXMgbmVlZGVkIGZvciBYUGF0aCBhbmQgY2FuIGJlIGEgdXNlZnVsIGZlYXR1cmUuCisJICBJbmhlcml0ZWQgbmFtZXNwYWNlcyBhcmUgYWx3YXlzIHByb3ZpZGVkIGF0IHRoZSB0cmVlIGxldmVsIG5vdworCSogdGVzdC9kZWZhdHRyKiByZXN1bHQvZGVmYXR0ciogcmVzdWx0L25vZW50L2RlZmF0dHIqOiBhZGRlZCBhIGNvdXBsZQorCSAgb2YgdGVzdHMgZm9yIHRoaXMgZmVhdHVyZSAoWFNMVCBiZWluZyB0aGUgcHJpbWUgdXNlcikuCisKK0ZyaSBBdWcgIDMgMTQ6MDI6MjAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogRE9DQnBhcnNlci5jIE1ha2VmaWxlLmFtIG5hbm9odHRwLmMgcGFyc2VyLmMgdGVzdEhUTUwuYworCSAgdGVzdFNBWC5jIHhtbElPLmMgeG1sbGludC5jIGluY2x1ZGUvd2luMzJjb25maWcuaAorCSAgaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oCisJICBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaC5pbiB3aW4zMi9SRUFETUUuTVNEZXYKKwkgIHdpbjMyL2RzcC8qOiBhcHBsaWVkIFdpbjMyIEZhY2VsaWZ0IE5vLjIgcGF0Y2hlcyBmcm9tIAorCSAgSWdvciBabGF0a292aWMgZm9yIFdpbmRvd3MvTVNDCisKK1dlZCBBdWcgIDEgMjM6MjE6MDYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKworCSogU0FYLmM6IHVucGFyc2VkRW50aXR5RGVjbCgpIHRoZSBVUkkgY29tcHV0YXRpb24gb2YgdGhlCisJICBlbnRpdHkgd2Fzbid0IGRvbmUgYnJlYWtpbmcgWFNMVCB1bnBhcnNlZC1lbnRpdHktdXJpKCkKKworV2VkIEF1ZyAgMSAxNzo0NDo1NyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorCisJKiB4cGF0aC5jOiBmaXhlZCBhIGJ1ZyB3aGVuIHdhbGtpbmcgdGhlIGRlc2NlbmRhbnRzIGFuZAorCSAgdGhlIGN1cnJlbnQgbm9kZSBoYXMgbm8gY2hpbGRyZW4KKwkqIGRlYnVnWE1MLmM6IHNob3cgdXAgd2hlbiBhIHRleHQgbm9kZSBpcyBzdXBwb3NlZCB0byBub3QgYmUgZXNjYXBlZAorCitXZWQgQXVnICAxIDAxOjMzOjM1IENFU1QgMjAwMSBUaG9tYXMgQnJveWVyIDx0YnJveWVyQGx0Z3QubmV0PgorCisJKiB4cGF0aC5jOiBmaXhlZCBhIGJ1ZyBpbiB4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCAoZm9yIG5vdyBpdAorCSAgd29ya2VkIGxpa2UgdGhlIHNldDpsZWFkaW5nKCkgZnVuY3Rpb24pCisJKiBpbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oOiBhZGRlZCB4bWxYUGF0aE5vZGVTZXRDb250YWlucworCitUdWUgSnVsIDMxIDE4OjI0OjM0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBuYW5vaHR0cC5jOiBwcm90ZWN0ZWQgYW4gdXNlIG9mIEVBR0FJTiwgQnJpYW4gU3RhZmZvcmQKKworVHVlIEp1bCAzMSAxNzo0ODo0NCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogaW5jbHVkZS9saWJ4bWwveG1sSU8uaDogYXBwbHkgY2hhbmdlIHRvIGNsb3NlICM1ODE0MSAKKwkqIHdpbjMyL2xpYnhtbDIvKjogdXBkYXRlIG9mIHRoZSBNU0MgcHJvamVjdHMgZnJvbSBJZ29yICBabGF0a292aWMKKworVHVlIEp1bCAzMSAxNzowOTozMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogcGFyc2VyLmM6IHdoZW4gdGhlIGludGVybmFsIHN1YnNldCB1c2VzIGEgUEUsIHRoZW4gdGhlCisJICBpbmNsdWRlZCBlbnRpdHkgY2FuIHVzZSBjb25kaXRpb25hbCBzZWN0aW9ucy4KKworTW9uIEp1bCAzMCAxMjo1ODozOSBFRFQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoLmg6IGZpeGVkIGEgc2VyaW91cyBtZW1vcnkgcHJvYmxlbgorCSAgd2hlbiB3YWxraW5nIHRoZSBuYW1lc3BhY2UgYXhpcyBzaG93aW5nIHVwIGluCisJICBsaWJ4c3QvdGVzdHMvZ2VuZXJhbC9idWctMTIKKwkqIHhtbG1lbW9yeS5jOiBhZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gdHJhY2UgYSBnaXZlbiBibG9jaworCSAgZGVmaW5lZCBieSBpdHMgYWRkcmVzcworCitTdW4gSnVsIDI5IDA3OjE4OjUzIEVEVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jOiBkb24ndCBvdmVycmlkZSBleGlzdGluZyBlbmNvZGluZyBzcGVjaWZpZWQgYmVmb3JlCisJICBzdGFydGluZyB4bWxQYXJzZURvY3VtZW50KCkKKworU2F0IEp1bCAyOCAxMzozMzoxMCBFRFQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaDogcmVpbnNlcnRlZCwgbmVlZGVkIGZvcgorCSAgV2luZG93cyB1c2VycyBvZiBDVlMKKworMjAwMS0wNy0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBiZW50c3Bvb24uY29tPgorCisJKiBlbmNvZGluZy5jOiAoeG1sSWNvbnZXcmFwcGVyKTogQWRkIGNhc3QgdG8gZml4IHdhcm5pbmcuCisJKiB0ZXN0Q2F0YWxvZy5jOiBBZGQgaW5jbHVkZSBvZiA8bGlieG1sL3BhcnNlci5oPi4KKworMjAwMS0wNy0yNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBiZW50c3Bvb24uY29tPgorCisJKiBpbmNsdWRlL2xpYnhtbC8uY3ZzaWdub3JlOgorCSogaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmg6CisJUmVtb3ZlIHRoaXMgZmlsZSBmcm9tIENWUyBiZWNhdXNlIGl0J3MgZ2VuZXJhdGVkLgorCitGcmkgSnVsIDI3IDEwOjAzOjU2IEVEVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oOiBhcHBsaWVkIGNvbnN0IHBhdGNoZXMgZnJvbQorCSAgVG9tIE1vb2cgIzU4MDAyCisKK1RodSBKdWwgMjYgMTg6NTU6NTIgQ0VTVCAyMDAxIFRob21hcyBCcm95ZXIgPHRicm95ZXJAbHRndC5uZXQ+CisKKwkqIHhwYXRoLmMgaW5jbHVkZS9saWJ4bWwveHBhdGh7LEludGVybmFsc30uaDogYWRkZWQgYSBmdW5jdGlvbgorCSAgbG9va3VwIGZyYW1ld29yaworCitGcmkgSnVsIDI3IDAxOjUwOjIwIEVEVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYzogZml4ZWQgeG1sQ29weU5vZGUoKSBmb3IgZG9jdW1lbnRzCisKK1RodSBKdWwgMjYgMTI6NDA6MzUgRURUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogcGFyc2VyLmM6IGZpeGVkIGJ1Z3MgIzU4MDczIHJlcG9ydGVkIGJ5IEdyZWcgU2h0aWxtYW4KKworVGh1IEp1bCAyNiAxMTozODozNyBFRFQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogZml4ZXMgYnVnICM1NzY1MiByZXBvcnRlZCBieSBNb3J1cyBXYWx0ZXIKKworVGh1IEp1bCAyNiAxMDoyNDozNCBFRFQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBuYW5vaHR0cC5jOiBKb2huIEtyb2xsIHByb3ZpZGVkIGEgc21hbGwgZml4IHRvIHhtbE5hbm9IVFRQU2F2ZQorCitUaHUgSnVsIDI2IDA3OjE2OjA0IEVEVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jOiBmaXhlZCB0aGUgeG1sTGluZU51bWJlcnNEZWZhdWx0KCkKKwkgIGVycm9ycywgbGVzc29uIGRvbid0IGFkZCBuZXcgZnVuY3Rpb25zIGF0IDFhbSBiZWZvcmUgYSByZWxlYXNlCisJKiB4cGF0aC5jOiBpbnRlZ3JhdGVkIGZpeCBmcm9tIEJqb3JuIHRvIGF2b2lkIGRpdmlkZSBieSB6ZXJvCisJICBmcm9tIFhQYXRoIGluaXRpYWxpemF0aW9uIHdoZW4gcG9zc2libGUuCisKK1R1ZSBKdWwgMjQgMTU6Mzk6MTEgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHJlc3VsdC9zY3JpcHRzL2Jhc2UqOiByZW1vdmluZyBoaXN0b3J5L3JlYWRsaW5lIGNoYW5nZWQKKwkgIHRoaXMgc2xpZ2h0bHkKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlci5oIFNBWC5jIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jCisJICB4bWxsaW50LmM6IG1ha2UgZWxlbWVudCBjb250ZW50IGxpbmUgbnVtYmVyIGdlbmVyYXRpb24KKwkgIG9wdGlvbm5hbCB0byBhdm9pZCBicmVha2luZyBvbGQgYXBwcyBhZGRlZCBpbnRlcmZhY2UgdG8gc3dpdGNoCisKK1R1ZSBKdWwgMjQgMTU6MDY6NTggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbjogZ2V0IHJpZCBvZiB0aGUgcmVhZGxpbmUgYW5kIGxpYmhpc3RvcnkKKwkgIGRlcGVuZGVuY2llcyBieSBkZWZhdWx0LCByZWxlYXNlIDIuNC4xIHdpdGggSUE2NCBmaXgKKwkqIG5hbm9odHRwLmMgdHJlZS5jIHhtbElPLmMgaW5jbHVkZS9saWJ4bWwvbmFub2h0dHAuaAorCSAgaW5jbHVkZS9saWJ4bWwvdHJlZS5oIGluY2x1ZGUvbGlieG1sL3htbElPLmg6IGluY29ycG9yYXRlZAorCSAgSm9obiBLcm9sbCBmaXhlcyB0byBhbGxvdyBzYXZpbmcgdG8gSFRUUCB2aWEgUFVUIChvcgorCSAgUE9TVCBvZiBuZWVkZWQpLgorCSogZG9jL2h0bWwvKi5odG1sOiByZWdlbmVyYXRlZCB0aGUgZG9jcworCitTdW4gSnVsIDIyIDA1OjU2OjE2IENFU1QgMjAwMSBUaG9tYXMgQnJveWVyIDx0YnJveWVyQGx0Z3QubmV0PgorCisJKiBoYXNoLmMgaW5jbHVkZS9saWJ4bWwvaGFzaC5oOiBhZGRlZCB4bWxIYXNoU2Nhbm5lckZ1bGwsCisJICB4bWxIYXNoU2NhbkZ1bGwgYW5kIHhtbEhhc2hTY2FubkZ1bGwzIHRvIGdldCBwYXNzZWQgdGhlCisJICB0aHJlZSBrZXlzIGFzIGFyZ3VtZW50cyB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24KKworVGh1IEp1bCAxOSAxNToyOToyNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluIE1ha2VmaWxlLmFtOiByZW1vdmVkIGxpYnhtbCBzb2Z0bGluayBmb3IgZ29vZAorCSogaW5jbHVkZS9saWJ4bWwvKi5oICouYyBkb2MvTWFrZWZpbGUuYW06IGNsZWFudXAgdG8gZ2V0CisJICAxMDAlIGNvdmVyYWdlIGJ5IGd0ay1kb2MKKworVHVlIEp1bCAxNyAxNzozNjo0NiBFRFQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4bWxtZW1vcnkuYyBpbmNsdWRlL2xpYnhtbC94bWxtZW1vcnkuaDogZGVidWdnaW5nIG9uIElBNjQsCisJICBmaXhlZCBzZXJpb3VzIHRyb3VibGVzIGR1ZSB0byBzaXplX3QgdnMuIGludCBtaXNtYXRjaAorCitUdWUgSnVsIDE3IDE2OjA0OjM2IEVEVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIFNBWC5jIHhtbElPLmM6IGNsZWFuZWQgdXAgc29tZSB3YXJuaW5nIG9uIHRoZSBBbHBoYQorCitNb24gSnVsIDE2IDA2OjMyOjQ0IENFU1QgMjAwMSBUaG9tYXMgQnJveWVyIDx0YnJveWVyQGx0Z3QubmV0PgorCisJKiBpbmNsdWRlL2xpYnhtbC94cGF0aHssSW50ZXJuYWxzfS5oIHhwYXRoLmM6IGFkZGVkIGEgbW9yZQorCSAgY29udmVuaWVudCBleHRlbnNpb24gQVBJIGZvciB2YWx1ZSBhbmQgY29udGV4dCBtYW5hZ2luZworCSAgTm93IGhhbmRsZXMgZXh0ZXJuYWwgb2JqZWN0cyB0aHJvdWdoIHhtbFhQYXRoUG9wRXh0ZXJuYWwsCisJICB4bWxYUGF0aFdyYXBFeHRlcm5hbCBhbmQgeG1sWFBhdGhSZXR1cm5FeHRlcm5hbC4KKwkgIEFkZGVkIGZ1bmN0aW9ucyBmb3Igc2V0cyBvcGVyYXRpb25zIChpbnRlcnNlY3Rpb24sIGV0Yy4pCisKK01vbiBKdWwgMTYgMjA6MDU6MjcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGluY2x1ZGUvbGlieG1sL3BhcnNlckludGVybmFscy5oIGluY2x1ZGUvbGlieG1sL0hUTUxwYXJzZXIuaAorCSAgeG1sSU8uYyB0cmVlLmMgcGFyc2VySW50ZXJuYWxzLmMgZW50aXRpZXMuYyBlbmNvZGluZy5jCisJICBIVE1McGFyc2VyLmM6IGNsZWFudXAgb2YgZ2xvYmFsIHZhcmlhYmxlcywgbWFya2luZyBzb21lCisJICBjb25zdCBvciBwcml2YXRlLgorCitNb24gSnVsIDE2IDAwOjE3OjE1IENFU1QgMjAwMSBUaG9tYXMgQnJveWVyIDx0YnJveWVyQGx0Z3QubmV0PgorCisJKiBpbmNsdWRlL2xpYnhtbC94cGF0aC5oOiBleHBvcnRlZCB4bWxYUGF0aHtOQU4sUElORixOSU5GfQorCSAgZml4ZWQgeG1sWFBhdGhOb2RlU2V0SXRlbSB3aGVuIHBhc3NpbmcgaW5kZXg9MAorCitTdW4gSnVsIDE1IDE3OjU4OjQ0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaC5pbjogYWRkZWQgeG1sQ2hlY2tWZXJzaW9uKCkKKworU2F0IEp1bCAxNCAxOTozMToyMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeG1sbGludC5jOiBmaXhlZCBjb21waWxhdGlvbiB1bmRlciBDeWd3aW4gIzU3NTAzCisJKiBUT0RPOiB1cGRhdGUKKworMjAwMS0wNy0xMyAgUGV0ZXIgV2lsbGlhbXMgIDxwZXRlcndAeGltaWFuLmNvbT4KKworCSogY29uZmlnLmguaW46IGFkZCAjdW5kZWYgSEFWRV9ETEZDTl9ICisKKwkqIGV4YW1wbGUvTWFrZWZpbGUuYW0gKElOQ0xVREVTKTogQ29tcGlsZSBmaXggd2hlbiBzcmNkaXIgIT0KKwlidWlsZGRpci4KKworRnJpIEp1bCAxMyAxMTowOTo1NiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogd2luMzIvbGlieG1sMi9saWJ4bWwyLmRlZi5zcmM6IGFkZGVkIGEgY291cGxlIG9mIGV4cG9ydGVkIGVudHJpZXMKKwkgIHJhaXNlZCBieSAjNTczNDggYW5kICM1NzM4MQorCitUaHUgSnVsIDEyIDIxOjIwOjE3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBET0NCcGFyc2VyLmMgSFRNTHBhcnNlci5jIEhUTUx0cmVlLmMgU0FYLmMgZGVidWdYTUwuYyBwYXJzZXIuYworCSAgdHJlZS5jIHhwb2ludGVyLmM6IHN0b3JlIHRoZSBsaW5lIG51bWJkZXIgaW4gZWxlbWVudC0+Y29udGVudCwKKwkgIG1heSBicmVhayBzb21lIHNvZnR3YXJlLCBuZWVkIGEgY29uZmlndXJhdGlvbiBtZWNoYW5pc20KKworMjAwMS0wNy0xMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBiZW50c3Bvb24uY29tPgorCisJKiAuY3ZzaWdub3JlOgorCSogZXhhbXBsZS8uY3ZzaWdub3JlOgorCSogaW5jbHVkZS8uY3ZzaWdub3JlOgorCSogaW5jbHVkZS9saWJ4bWwvLmN2c2lnbm9yZToKKwlWYXJpb3VzIHRoaW5ncyB0aGF0IGFyZSBnZW5lcmF0ZWQgYW5kIHNob3VsZCBiZSBpZ25vcmVkLgorCitUdWUgSnVsIDEwIDE3OjQ3OjA5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW4gaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmg6IHJlbGVhc2Ugb2YgMi40LjAKKwkqIGRvYy94bWwuaHRtbCBkb2MvaHRtbC8qOiAgdXBkYXRlZCB0aGUgZG9jcworCitNb24gSnVsICA5IDIyOjA2OjUzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB2YWxpZC5jOiBmaXhlZCAiSW50ZXJuYWw6IE1JWEVEIHN0cnVjdCBiYWQiIHdoZW4gI0NEQVRBIGVsZW1lbnRzCisJICB2YWxpZGF0aW9uIG9jY3VyZWQgb24gY29udGVudCB3aXRoIGVsZW1lbnQgY2hpbGQKKworTW9uIEp1bCAgOSAxNzo1OTowOCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdHJlZS5jOiBmaXhlZCBYTUwgQmFzZSBjb21wdXRhdGlvbiB3aGljaCB3YXMgYnJva2VuCisJKiBkZWJ1Z1hNTC5jOiBhZGRlZCBhIGJhc2UgZnVuY3Rpb24gdG8gdGhlIHNoZWxsCisJKiBNYWtlZmlsZS5hbSByZXN1bHQvc2NyaXB0cy8qIHRlc3Qvc2NyaXB0cy8qOiBhZGRlZCBzY3JpcHRzCisJICBiYXNlZCByZWdyZXNzaW9uIHRlc3RzLCBhbmQgYWRkaW5nIDIgWE1MIEJhc2UgdGVzdHMKKworTW9uIEp1bCAgOSAxMjozMTowNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdHJlZS5jOiBzZXQgcHJvcGVydGllcyBkb2MgYW5kIGNhbGwgeG1sU2V0TGlzdERvYyBmb3IgcHJvcGVydGllcworCSAgY29udGVudCB3aGVuIGdyYWZ0aW5nIHRoZW0gaW4gYSBkaWZmZXJlbnQgdHJlZS4KKwkqIGFjbG9jYWwubTQ6IHJlbW92ZSBmcm9tIENWUworCitTdW4gSnVsICA4IDIzOjA5OjA3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB3aW4zMi9saWJ4bWwyL2xpYnhtbDIuZGVmLnNyYzogYWRkZWQgc29tZSBtaXNzaW5nIGVudHJ5IHBvaW50CisJICBmb3IgWFBhdGggKE1hcmsgVmFrb2MpCisKK1N1biBKdWwgIDggMjA6MzQ6MzUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhtbElPLmM6IGZpeGVkIGFuIG9sZCBidWcgcmFpc2VkIGJ5IEJlcm5oYXJkIFp3aXNjaCwgdGhlIEkvTworCSAgbGF5ZXIgc2hvdWxkIFVSSS1VbmVzY2FwZSBiZWZvcmUgdHJ5aW5nIHRvIG9wZW4gcmVzb3VyY2VzLgorCitTdW4gSnVsICA4IDE2OjI2OjAwIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBmaXggdGhlIG5hbWUoKSBidWcgZm9yIGVsZW1lbnRzIGluIHRoZSBkZWZhdWx0IAorCSAgbmFtZXNwYWNlIHJlcG9ydGVkIGJ5IENoYXJsaWUgQm96ZW1hbgorCitTdW4gSnVsICA4IDE1OjExOjA1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBTQVguYyBwYXJzZXIuYyB0ZXN0WFBhdGguYyB4cGF0aC5jOiB0cnlpbmcgdG8gZml4ICM1Njk0OCwgdGhpcworCSAgbGVkIHRvIGFuIFhQYXRoIGZpeCwgaW1wcm92ZW1lbnRzIG9mIFNBWCBpbml0aWFsaXphdGlvbiwgYW5kCisJICBhbiBhZGRlZCBvcHRpb24gLS1ub2NkYXRhIHRvIHRlc3RYUGF0aAorCitTYXQgSnVsICA3IDIxOjA5OjU1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBkb2MvbGlieG1sLWRvYy5lbDogRmVsaXggTmF0dGVyIHByb3ZpZGVkIGFuZXcgdmVyc2lvbiB3b3JraW5nCisJICB3aXRoIFhFbWFjcyB0b28KKworU2F0IEp1bCAgNyAwMjoxNjowMCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogaW5jbHVkZS9saWJ4bWwveHBhdGguaDogc21hbGwgY2xlYW51cAorCSogZG9jL3htbC5odG1sOiB1cGRhdGUKKworRnJpIEp1bCAgNiAwMTo0MDoyMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluIGluY2x1ZGUvbGlieG1sL3htbHdpbjMydmVyc2lvbi5oOgorCSAgcmVsZWFzZWQgMi4zLjE0CisKK0ZyaSBKdWwgIDYgMDA6NDc6NDEgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGRvYy9odG1sLyo6IHJlYnVpbHQgdGhlIGRvY3MgZm9yIHRoZSByZWxlYXNlCisJKiBkb2MveG1sLmh0bWw6IGFkZGVkIDIuMy4xNCByZWxlYXNlLgorCitUaHUgSnVsICA1IDIyOjAxOjMxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBhIGJ1ZyByZXBvcnRlZCBieSBTdGVwaGFuIEt1bG93IGVtcHR5IG5vZGVzZXRzCisJICB3ZXJlIG5vdCBlcXVhbCB0byBlbXB0eSBzdHJpbmdzCisKK1RodSBKdWwgIDUgMDA6NTI6MjUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIFNBWC5jOiBmaXhlZCBhIFVSSS1SZWZlcmVuY2UgY29tcHV0YXRpb24gcHJvYmxlbSB3aGVuIHZhbGlkYXRpbmcKKwkqIHhtbElPLmM6IHNtYWxsIGNsZWFudXAKKworVGh1IEp1bCAgNSAwMDowNDo1OCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogcGFyc2VyLmM6IGltcHJvdmVkIHRoZSBkZXNjcmlwdGlvbiBvZiBhIGNvdXBsZSBvZiBpbnRlcmZhY2VzCisJICB1cG9uIExhcnJ5IFN0YW1wZXIgc3VnZ2VzdGlvbgorCitXZWQgSnVsICA0IDIxOjQyOjI0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBTQVguYyBlbnRpdGllcy5jIHBhcnNlci5jOiBjaGFuZ2VkIGNvbXBsZXRlbHkgdGhlIHdheSBlbnRpdGllcworCSAgYXJlIGhhbmRsZWQgd2hlbiBydW5uaW5nIHRoZSBwYXJzZXIgaW4gZW50aXR5IHN1YnN0aXR1dGlvbiBtb2RlLgorCSAgVGhpcyBmaXhlcyBhIGJ1ZyByZXBvcnRlZCBieSBTdGVwaGFuIEt1bG93IGFuZCBuZWFybHkgZGl2aWRlcworCSAgYnkgMyB0aGUgYW1vdW50IG9mIG1lbW9yeSByZXF1aXJlZCBieSBsaWJ4c2x0IHRvIGxvYWQgYW5kIHByb2Nlc3MKKwkgIERvY0Jvb2sgVERHLgorCitXZWQgSnVsICA0IDE4OjAyOjU4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGluZyBhIHRvbyBlYXJseSByb290IGNsb3NpbmcgcHJvYmxlbSByYWlzZWQKKwkgIGJ5dCBQcmFzaGFudGggTmFpZHUKKworV2VkIEp1bCAgNCAwMTo0MjowMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogZml4ZWQgYSBtaXNzaW5nIGNvcHkgaW4geG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TKCkgCisJICByYWlzZWQgYnkgTWFyayBWYWtvYy4KKworVHVlIEp1bCAgMyAxODozNTo0OCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZXhhbXBsZS9NYWtlZmlsZS5hbTogZml4ZWQgdGhlIGluY2x1ZGUgcGF0aCB0byBhZGQgc3JjZGlyL2luY2x1ZGUKKwkqIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbjogZml4IGZyb20gQWxiZXJ0IENoaW4gZm9yIGljb252IGRldGVjdGlvbgorCSAgYW5kIHNvbWUgY2xlYW51cAorCitUdWUgSnVsICAzIDEwOjEyOjAzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jIGluY2x1ZGUvbGlieG1sL3hwYXRoLmggaW5jbHVkZS9saWJ4bWwveHBhdGhJbnRlcm5hbHMuaDoKKwkgIGxvdCBvZiBvcHRpbWl6YXRpb24gd29yaywgcmVzdWx0cyBpbiBzaWduaWZpY2FudCBpbXByb3ZlbWVudHMKKwkgIHdoZW4gaGFuZGxpbmcgcmVhbGx5IGNvbXBsZXggWFBhdGggcXVlcmllcy4gQWRkIGEgc21hbGwgb3B0aW1pemVyCisJICBmb3IgdW5pb25zLCBpbXByb3ZlIFtuXSBhbmQgW2xhc3QoKV0sIGF2b2lkIHNvbWUgY29zdGx5IG9wcy4KKworRnJpIEp1biAyOSAyMzoyNjo1NCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmggcGFyc2VyLmM6IHhtbFN0cnN0ciBhcmdzIGFyZSBib3RoIGNvbnN0CisJKiB4cGF0aC5jOiBzbWFsbCBjbGVhbnVwCisJKiB4bWxHZXROc0xpc3Q6IHJlZm9ybWF0ZWQsIGZpeGVkIHByb2JsZW1zIGlmIHVzZWQgb24gRW50aXRpZXMKKworVGh1IEp1biAyOCAxODoxOTo0NCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZG9jL3htbC5odG1sOiBhZGRlZCAxLjguMTQgYW5kIDIuMy4xMyByZWxlYXNlcworCitUaHUgSnVuIDI4IDE4OjE2OjI4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW4gaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmg6IHJlbGVhc2VkIDIuMy4xMworCSogTWFrZWZpbGUuYW0gZXhhbXBsZS9NYWtlZmlsZS5hbTogd29ya2Fyb3VuZCBhdXRvbWFrZSBnZW5lcmF0aW5nCisJICBlcnJvbmVvdXMgZGVwcworCitUaHUgSnVuIDI4IDE1OjA4OjIyIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBpbmNsdWRlL3dpbjMyY29uZmlnLmg6IGJ1ZyAjNTY4MDEgWW9uIERlcmVrIHByb3ZpZGVkIGEgcGF0Y2gKKwkgIHRvIHRoZSB3aW5kb3dzIGNvbmZpZyBmaWxlLgorCitUaHUgSnVuIDI4IDE0OjUxOjQ0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cG9pbnRlci5jIGluY2x1ZGUvd2luMzJjb25maWcuaCB3aW4zMi9saWJ4bWwyL2xpYnhtbDIuZGVmLnNyYworCSAgbGlieG1sLmggOiBZb24gRGVyZWsgcHJvdmlkZWQgYSBzZXQgb2YgY2hhbmdlcyB0byBjb21waWxlIGZyb20KKwkgIENWUyBvbiBXaW5kb3dzL01TQworCitUaHUgSnVuIDI4IDE0OjExOjI4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogZml4ZWQgVVRGOCBCT00gc3VwcG9ydCBpbiBwdXNoIG1vZGUKKwkqIHRlc3QvdXRmOGJvbS54bWwgcmVzdWx0L3V0Zjhib20ueG1sIHJlc3VsdC9ub2VudC91dGY4Ym9tLnhtbDoKKwkgIGFkZGVkIGEgc3BlY2lmaWMgdGVzdGNhc2UKKworV2VkIEp1biAyNyAxODozMzoxMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogTWFrZWZpbGUuYW06IGFkZGVkIC0tcHVzaCByZWdyZXNzaW9uIHRlc3RzCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogdGhlIFhNTCBwYXJzZXIgc2VnZmF1bHRlZCBpbiAtLXB1c2ggbW9kZQorCitXZWQgSnVuIDI3IDEzOjA5OjUxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW46IG1vdmVkIHRoZSBzeW1saW5rcyBkZXRlY3Rpb24gd2l0aGluIGEgQ1ZTCisJICBjaGVjaywgdGhpcyBpcyBub3QgcG9ydGFibGUgYW5kIHdpbGwgYmUgcmVtb3ZlZCBzb29uLgorCSogeHBhdGguYzogc21hbGwgY2xlYW51cC9zcGVlZHVwCisKK1R1ZSBKdW4gMjYgMTg6MDU6MjYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MveG1sLmh0bWwgaW5jbHVkZS9saWJ4bWwveG1sd2luMzJ2ZXJzaW9uLmg6CisJICByZWxlYXNlIG9mIDIuMy4xMgorCSogcGFyc2VyLmM6IG1ha2UgYW4gZXJyb3IgbWVzc2FnZSBpZiB1bmtub3cgZW50aXRpZXMgaW4gYWxsIGNhc2VzCisKK1R1ZSBKdW4gMjYgMDk6NDY6MjkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHVyaS5jOiBmaXhlZCAyIHVyaSBub3JtYWxpemF0aW9uIGJ1Z3Mgb24gJy8vJyByZWR1Y3Rpb24KKworTW9uIEp1biAyNSAxODowNjoyMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW06IExhc3psbyBQZXRlciBwb2ludGVkIG91dCB0aGF0CisJICBpbmNsdWRlcyB3ZXJlIGluc3RhbGxlZCBpbiB0aGUgd3JvbmcgZGlyCisKK01vbiBKdW4gMjUgMTc6MDc6MzcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGRvYy9odG1sLnhtbDogd2FybiBhZ2FpbnN0IHNlbmRpbmcgY29kZSB0byBleGhpYml0IGJ1Z3MuCisKK1N1biBKdW4gMjQgMjM6MzE6NTYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IHBhdGNoIHRvIHhtbFhQYXRoRm9ybWF0TnVtYmVyIGZvciB0aGUgb3B0aW1pemVyIG9uCisJICBUcnU2NCBmcm9tIFRob21hcyBMZWl0bmVyCisKK1N1biBKdW4gMjQgMTQ6MDU6NTQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEFVVEhPUlM6IGFkZGVkIFdpbGxpYW0gYW5kIEJqb3JuCisJKiBpbmNsdWRlL2xpYnhtbC8qLmggKi5jIFJFQURNRSBkb2MvKi5odG1sIGV0Yy46IGNoYW5nZWQgb2xkIGVtYWlsIHRvCisJICBkYW5pZWxAdmVpbGxhcmQuY29tIGhvcGVmdWxseSBJIHdvbid0IGhhdmUgdG8gZG8gdGhpcyBhZ2FpbgorCSogZG9jL01ha2VmaWxlLmFtIGRvYy9odG1sLyouaHRtbDogY2xlYW51cCBtYWtlZmlsZSwgY2hlY2tlZCB0aGF0CisJICBkb2NzIGNhbiBiZSByZWJ1aWx0IGNsZWFubHkgbm93CisJKiBpbmNsdWRlL2xpYnhtbC94bWwqdmVyc2lvbi5oKjogcmVtb3ZlZCBpbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmgKKwkgIGZyb20gQ1ZzIGl0J3MgZ2VuZXJhdGVkLCBhZGRlZCBpbmNsdWRlL2xpYnhtbC94bWx3aW4zMnZlcnNpb24uaAorCSAgYWxzbyBnZW5lcmF0ZWQgYnV0IHdoaWNoIHNob3VsZCBjaGFuZ2UgZmFyIGxlc3MgZnJlcXVlbnRseS4KKwkqIGNhdGFsb2cuYyBuYW5vZnRwLmM6IG1hZGUgc3VyZSB0byBpbmNsdWRlIGxpYnhtbC5oIG5vdAorCSAgbGlieG1sL3htbHZlcnNpb24uaCBkaXJlY3RseQorCSogaW5jbHVkZS9saWJ4bWwvKi5oOiBpbmNsdWRlIHhtbHdpbjMydmVyc2lvbi5oIGluc3RlYWQgb2YgeG1sdmVyc2lvbi5oCisJICB3aGVuIGNvbXBpbGluZyBvbiBXSU4zMiBhbmQgTVNDCisKK1NhdCBKdW4gMjMgMjM6NTQ6MTIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGluY2x1ZGUvTWFrZWZpbGUuYW0gaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW0gY29uZmlndXJlLmluOgorCSAgZml4ZWQgbWFrZSBkaXN0Y2hlY2sgYW5kIHJlYnVpbGRpbmcgdGhlIHJwbXMKKworU2F0IEp1biAyMyAyMDo1MDo1MyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBzaG91bGQgZmluaXNoIHRoZSBtaWdyYXRpb24gb2YgZXhwb3J0ZWQgaW5jbHVkZXMKKwkgIGludG8gYSByZWFsIGluY2x1ZGUvbGlieG1sIGluIENWUywgYXQgbGVhc3QgZm9yIENWUyB1c2Vycy4KKwkqIHJlbW92ZWQgdGhlIGV4cG9ydGVkIGhlYWRlcnMsIGFkZGVkIGluIGluY2x1ZGUvbGlieG1sIChhcyB3ZWxsCisJICBhcyB4bWx2ZXJzaW9uLmguaW4pLgorCitTYXQgSnVuIDIzIDIwOjM3OjE5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW46IGZpeGVkIHRoZSB3YXkgdG8gZGV0ZWN0IHN5bWxpbmsKKworU2F0IEp1biAyMyAyMDozMDoxMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiB1cGRhdGVkLCBpbmNsdWRlL2xpYnhtbCBpcyBub3cgYSByZWFsIENWUyBkaXIKKworU2F0IEp1biAyMyAxOTozNjozMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZG9jL2xpYnhtbC1kb2MuZWw6IGEgbmV3IHZlcnNpb24gb2YgbGlieG1sLWRvYy5lbC4gVGhpcyBuZXcKKwkgIHZlcnNpb24gd29ya3Mgd2l0aCBib3RoIGxpYnhtbDEgYW5kIGxpYnhtbDIgKGl0IGF1dG9kZXRlY3RzCisJICB0aGUgcHJlZml4IG9mIHRoZSBodG1sLWZpbGVzKSBmcm9tIEZlbGl4IE5hdHRlci4KKwkqIGRvYy94bWwuaHRtbDogdXBkYXRlZCBkb2MgYWNjb3JkaW5nbHkKKworU2F0IEp1biAyMyAxODozMDoyOCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogZml4ZWQgdGhlIGJ1ZyBnZW5lcmF0aW5nIGEgdGVtcGxhdGUgbG9vcCBpbiBsaWJ4c2x0CisJICB3aGVuIHVzaW5nIGRvY2Jvb2steHNsLTEuNCwgKiBzaG91bGQgZmlsdGVyIG91dCBkb2N1bWVudCBub2RlcworCSogSEFDS0lORzogYWRkZWQgV2lsbGlhbQorCSogVE9ETzogdXBkYXRlZAorCitGcmkgSnVuIDIyIDE4OjAyOjM3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBkb2MvRkFRLmh0bWw6IGFkZGVkIGEgd2FybmluZyBhYm91dCBnY2MtMy4wCisJKiBkb2MveG1sLmh0bWw6IGFkZGVkIHJlZmVyZW5jZSB0byBnZG9tZTIgYW5kIHJlbW92ZWQgYSBjb25mdXNpbmcKKwkgIHNlbnRlbmNlCisKK0ZyaSBKdW4gMjIgMTc6MDI6MTYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhtbHZlcnNpb24uaDogb2theSB0aGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUsIGJ1dCBXaW5kb3dzCisJICB1c2VycyBuZWVkIGl0IGFuZCB0aGV5IGNhbid0IGdlbmVyYXRlIGl0LCBhbmQgSSB3YW50IENWUworCSAgV2luZG93cyB1c2VycyAuLi4KKwkqIHdpbjMyL2xpYnhtbDIvbGlieG1sMl9zby5kc3A6IFdpbmRvd3MgcHJvamVjdCBmaWxlIGZvciAKKwkgIHRoZSBzaGFyZWQgbGliIHZlcnNpb24gb2YgbGlieG1sMgorCSogd2luMzIvbGlieG1sMi9saWJ4bWwyLmRlZi5zcmM6IGJ1ZyAjNTY1Mjcgc2V0IG9mIGV4cG9ydGVkCisJICByZXNvdXJjZXMgbmVlZGVkIGZvciBsaWJ4c2x0L3hzbHRwcm9jIGJ5IFlvbiBEZXJlaworCitGcmkgSnVuIDIyIDE2OjM5OjM2IENFU1QgMjAwMSBCam9ybiBSZWVzZSA8YnJlZXNlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogdHJpby5jOiBNU1ZDIGZpeCAocHJvdmlkZWQgYnkgSWdvciBabGF0a292aWMpCisKK0ZyaSBKdW4gMjIgMTI6NDI6MTYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGluY2x1ZGUvd2luMzJjb25maWcuaDogYW5vdGhlciBzbWFsbCBmaXggZm9yIEFUVFJJQlVURV9VTlVTRUQKKworRnJpIEp1biAyMiAxMjo0MjoxNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogaW5jbHVkZS93aW4zMmNvbmZpZy5oOiBZb24gRGVyZWsgcHJvdmlkZWQgYSBmaXJzdCBmaXgKKwkgIHRvIGJlIGFibGUgdG8gY29tcGlsZSBsaWJ4c2x0L3hzbHRwcm9jIG9uIFdpbmRvd3MKKworRnJpIEp1biAyMiAwMDowNDozNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogYXR0ZW1wdCB0byB3b3JrIGFyb3VuZCB3aGF0IHNlZW1lZCBhIGdjYyBvcHRpbWl6ZXIKKwkgIGJ1ZyB3aGVuIGhhbmRsaW5nIGZsb2F0cyBvbiBpMzg2IGh0dHA6Ly92ZWlsbGFyZC5jb20vZ2NjLmJ1ZworCSogdHJlZS5jIGVudGl0aWVzLmMgZW5jb2RpbmcuYzogZG9pbmcgc29tZSBjbGVhbnVwcyB3aGlsZQorCSAgY2hhc2luZyBpdAorCitUaHUgSnVuIDIxIDEzOjEzOjM2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBNYWtlZmlsZS5hbTogY2xlYW51cCB3aGVuIC0td2l0aG91dC1kZWJ1ZyBpcyBzcGVjaWZpZWQKKwkqIHhpbmNsdWRlLmMgeHBhdGguYyB4cGF0aEludGVybmFscy5oIHhwb2ludGVyLmM6IGNsZWFudXAKKwkgIHcuci50LiAtLXdpdGhvdXQtZGVidWcgYW5kIG90aGVyIGluY2x1ZGUgcG9pbnRzCisJKiBjYXRhbG9nLmggdGVzdENhdGFsb2cuYzogYSBiaXQgb2YgY2xlYW51cCBhbmQgcHJlcGFyZSBmb3IgWE1MCisJICBDYXRhbG9ncworCSogY29uZmlndXJlLmluIGVudGl0aWVzLmggdHJlZS5oIEhUTUxwYXJzZXIuYzogcmVtb3ZlZAorCSAgLS13aXRob3V0LWNvcmJhLCBtYWRlIHRoZSBfcHJpdmF0ZSBmaWVsZCBtYW5kYXRvcnkKKworV2VkIEp1biAyMCAxOTozNzoyNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgZW5jb2RpbmcuYzogU2luY2UgTm90ZXBhZCBvbiBXaW4yaworCSAgb3V0cHV0cyBhIEJPTSBpbiBVVEY4LCBhbiBlcnJhdGEgaGFzIGJlZW4gaXNzdWVkIHRvIGF2b2lkIHRoZQorCSAgcHJvYmxlbSwgdGhhdCB3YXMgdGhlIG1vc3QgcmVhc29uYWJsZSBzb2x1dGlvbi4uLiBBZGQgc3VwcG9ydAorCSAgZm9yIGEgbGVhZGluZyBVVEY4IEJPTSBpbiBlbnRpdGllcy4KKworV2VkIEp1biAyMCAxNTozODo1OSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdmFsaWQuYzogZml4ZWQgYSBidWcgZm91bmQgd2hlbiBwb3N0IHZhbGlkYXRpbmcgYW4gZW50aXR5IHJlZgorCSogeG1sbGludC5jOiBhZGRlZCAtLWxvYWRkdGQgYW5kIHNsaWdseSBjaGFuZ2VkIC0tcG9zdHZhbGlkIHRvCisJICBhY3RpdmF0ZSBpdCB0b28KKworVHVlIEp1biAxOSAyMDowMzo0MCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdHJlZS5jIHhpbmNsdWRlLmMgeHBvaW50ZXIuYzogYnVnICM1NjQwMiBleHBvc2VkIGEgbnVtYmVyIG9mCisJICB3ZWFrbmVzcyBpbiB0aGUgbm9kZSBjb3B5IHRoZSBYUG9pbnRlciBhbmQgdGhlIFhJbmNsdWRlCisJICBpbXBsZW1lbnRhdGlvbnMuIFNlcmlvdXMgY2xlYW51cC4KKworVHVlIEp1biAxOSAxNDo1MDoxOCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogTWFrZWZpbGUuYW06IEtqYXJ0YW4gTWFyYWFzIHByb3ZpZGVkIGEgc21hbGwgcGF0Y2ggdG8KKwkgIGFkZCB4bWwyLWNvbmZpZy5pbiB0byBFWFRSQV9ESVNUCisKK1R1ZSBKdW4gMTkgMTM6MDQ6MTAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmMgdHJlZS5jIHBhcnNlckludGVybmFscy5jIHBhcnNlci5jOiBTdGVwaGFuIEt1bG93CisJICBwcm92aWRlZCBhbm90aGVyIGZhaWxpbmcgY2FzZSBmb3VuZCBpbiBLREUsIHRoZSB3YXkgdGhlCisJICBjdHh0LT52Y3R4dC5ub2RlVGFiIHdhcyBhbGxvY2F0ZWQgYW5kIGZyZWVkIGNoYW5nZWQgb3ZlcgorCSAgdGltZSBidXQgaXQgd2Fzbid0IGNvbXBsZXRlbHkgY2xlYW5lZCB1cC4gVGhpcyBzaG91bGQgZml4IGl0LgorCitTdW4gSnVuIDE3IDE5OjU2OjMzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogU3RlcGhhbiBLdWxvdyBhbHNvIHJhaXNlZCB0aGUgZmFjdCB0aGF0IGxpbmUgbnVtYmVyCisJICBjb3VsZCBnZXQgbWlzY291bnRlZCBtYWtpbmcgZGVidWcgaGFyZGVyLCBmaXhlZCB0aGUgcHJvYmxlbQorCSAgaW4geG1sUGFyc2VDaGFyRGF0YSgpCisKK1N1biBKdW4gMTcgMTk6MTc6MjYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IFN0ZXBoYW4gS3Vsb3cgcG9pbnRlZCBvdXQgYSBwcm9ibGVtIHdoZW4gdmFsaWRhdGluZworCSAgYW5kIHVzaW5nIGFuIGVtcHR5IGVudGl0eSwgZm9yZ290IGEgJ2JyZWFrJyBpbiBhIGNhc2UuCisKK1N1biBKdW4gMTcgMTY6NDc6NDAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYzogZml4ZWQgeG1sSGFzTnNQcm9wKCkgYWNjb3JkaW5nbHkgdG8gYnVnICM1NTY4MworCSogZG9jL3htbC5odG1sOiB1cGRhdGVkIHdpdGggMi4zLjExCisKK1N1biBKdW4gMTcgMTI6MjQ6MTEgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIFRPRE86IHVwZGF0ZWQgYWRkaW5nIGNsZWFudXAgb2YgZ2VuZXJhdGVkIGRvYworCSogY29uZmlndXJlLmluOiBwcmVwYXJlZCB0byByZWxlYXNlIDIuMy4xMQorCSogeG1sbGludC5jOiBhZGRlZCAtLXZlcnNpb24gZm9yIGJ1ZyByZXBvcnRpbmcKKwkqIGRvYy9odG1sLyouaHRtbDogcmVidWlsdCB0aGUgZG9jCisKK1NhdCBKdW4gMTYgMjM6MjM6MzMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGZpcnN0IHBhcnQgb2YgdGhlIHdvcmsgb24gc2VsZWN0aW5nIG5hbWVzcGFjZSB0bworCSAgZml4IGJ1ZyAjNTYxMTUgCisKK1NhdCBKdW4gMTYgMDA6MjA6NDYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIE1ha2VmaWxlLmFtIGV4YW1wbGUvTWFrZWZpbGUuYW06IExhc3psbyBQRVRFUiBwcm92aWRlZCBhIGZpeAorCSAgd2hlbiB1c2luZyAtbGljb252CisJKiBUT0RPOiB1cGRhdGVkCisKK0ZyaSBKdW4gMTUgMDc6MDg6NTcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUx0cmVlLltjaF06IG1vcmUgd29yayBvbiB0aGUgSFRNTCBzZXJpYWxpemF0aW9uIHJvdXRuZXMsCisJICBjbGVhbnVwLCBlbmNvZGluZyBzdXBwb3J0LgorCitUaHUgSnVuIDE0IDEwOjMxOjE3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBUaG9tYXMgQnJveWVyIHN1Z2dlc3RlZCBhIGJldHRlciBwYXRjaCBmb3IgdGhlIC8gYXJnCisKK1RodSBKdW4gMTQgMDE6MDE6MzAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGJ1ZyBkZXRlY3RlZCBieSBBbmtoIHdoZW4gLyBpcyB1c2VkIGFzIGEgZnVuY3Rpb24gYXJnCisKK1dlZCBKdW4gMTMgMjM6MDg6NDYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUxwYXJzZXIuW2NoXSBIVE1MdHJlZS5jOiBzdG9yZWQgdGhlIGlubGluZS9ibG9jayBwcm9wZXJ0eQorCSAgb2YgZWxlbWVudCBhbmQgdXNlIGl0IHRvIGF2b2lkIG91dHB1dHRpbmcgZm9ybWF0dGluZyBzcGFjZXMgYXQKKwkgIHRoZSB3cm9uZyBwbGFjZS4gSW1wbGVtZW50ZWQgdGhlIGZvcm1hdCBwYXJhbWV0ZXIgZm9yIEhUTUwgc2F2ZS4KKwkqIHJlc3VsdC9IVE1ML2RvYzIuaHRtIHJlc3VsdC9IVE1ML2RvYzMuaHRtIHJlc3VsdC9IVE1ML2ZwNDAuaHRtCisJICByZXN1bHQvSFRNTC9zY3JpcHQuaHRtbCByZXN1bHQvSFRNTC90ZXN0Mi5odG1sIHJlc3VsdC9IVE1ML3Rlc3QzLmh0bWwKKwkgIHJlc3VsdC9IVE1ML3dpcmVkLmh0bWw6IG9mIGNvdXJzZSB0aGlzIGltcGFjdCB0aGUgcmVzdWx0IG9mIGEKKwkgIG51bWJlciBvZiBIVE1MIHRlc3RzCisKK1RodSBKdW4gMTQgMDk6NDk6MDkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUx0cmVlLltjaF06IHN0YXJ0ZWQgYXVnbWVudGluZyB0aGUgSFRNTCBzYXZlIEFQSSB3aXRoCisJICBlbmNvZGluZyBhbmQgZm9ybWF0dGluZyBwYXJhbWV0ZXJzCisKK1dlZCBKdW4gMTMgMDk6NDQ6MTUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUx0cmVlLmg6IGNsZWFudXAgYW5kIHN0YXJ0ZWQgZXZhbHVhdGluZyB0aGUgd29yayBuZWVkZWQgb24KKwkgIHJldmFtcGluZyB0aGUgSFRNTCBvdXRwdXQgY29kZQorCitNb24gSnVuIDExIDE5OjI5OjQwIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBET0NCcGFyc2VyLmM6IGhhbmRsaW5nIG9mIFBJcyBhbmQgPD9zZ21sLWRlY2xhcmF0aW9uIGluIGVudGl0aWVzLgorCitUdWUgSnVuIDEyIDA4OjQ2OjI4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB2YWxpZC5jOiBmaXhlZCBidWcgIzU2MDQ5LCBmb3Jnb3Qgb25lIGNoZWNrIGluIHRoZQorCSAgdmFsaWRhdGlvbiByb3V0aW5lCisKK1R1ZSBKdW4gMTIgMDg6MDk6NDYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuW2NoXTogZ3JyciAuLi4gbmFtZXNwYWNlIGlzIGEgQysrIHJlc2VydmVkIGtleXdvcmQKKworVHVlIEp1biAxMiAwNjoyOTozOSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogbGlieG1sLmg6IGZpeGVkIGFuIGVycm9yIGluIGxhc3QgY29tbWl0CisJKiBkb2MvRkFRLmh0bWw6IGFkZGVkIGFuIGVudHJ5IGZvciBjb21waWxhdGlvbiBmcm9tIENWUworCitNb24gSnVuIDExIDEwOjA3OjI5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4bWx2ZXJzaW9uLmguaW4gbGlieG1sLmg6IEN5Z3dpbiBwYXRjaGVzCisJKiB0cmVlLmM6IHhtbEZyZWVOb2RlTGlzdCBwYXRjaCBzaW1pbGFyIHRvIHhtbEZyZWVOb2RlIG9uZQorCSogdHJlZS5oOiBjbGVhbnVwCisKK1NhdCBKdW4gIDkgMTk6MTY6MDAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYzogcGF0Y2hlZCB4bWxGcmVlTm9kZSgpIHRvIGF2b2lkIGZyZWVpbmcoKSBhIHN0YXRpYworCSAgbWVtb3J5IGJsb2NrIGluIGEgc3RyYW5nZSBjYXNlIHdoZXJlIGxpYnhtbCBpcyBsaW5rZWQgdHdpY2UKKwkgIGluIHRoZSBiaW5hcnkuCisKK1NhdCBKdW4gIDkgMTg6Mzk6MDMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IChhPyAsIGI/ICwgYz8gLCAuLi4gLCB6Pykgd2FzIHN0b3JpbmcvcmVzdGF1cmluZworCSAgc3RhdGUgZmFyIHRvbyBvZnRlbiwgc2ltcGxlIGZpeCB1c2VkIHRvIGF2b2lkIGl0LgorCitTYXQgSnVuICA5IDE2OjEwOjM2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4aW5jbHVkZS5jOiBSYXBoYWVsIEhlcnR6b2cgaGFkIGEgdHJvdWJsZSB3aXRoIERURCBub2RlcworCSAgYmVpbmcgcHJvY2Vzc2VkLCBhcHBsaWVkIGhpcyBwYXRjaAorCSogdHJlZS5jOiBmaXhlZCBhIGJ1ZyByYWlzZWQgaW4geG1sU3RhdGljQ29weU5vZGVMaXN0KCkKKworU2F0IEp1biAgOSAxNTo1MDoxMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmMgdXJpLmMgaW5jbHVkZS93aW4zMmNvbmZpZy5oOiBJZ29yICBabGF0a292aWMKKwkgIHByb3ZpZGVkIGZpeGVzIHRvIGNvbXBpbGUgb24gTVNDQyBhZ2FpbgorCSogd2luMzIvbGlieG1sMi9saWJ4bWwyLmRlZi5zcmMgd2luMzIvbGlieG1sMi9saWJ4bWwyKi5kc3A6IGhlCisJICBhbHNvIHByb3ZpZGVkIGFuIHVwZGF0ZSBmb3IgdGhlIHByb2plY3QgZmlsZXMuCisKK1RodSBKdW4gIDcgMjE6NTI6MTAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYzogYXBwbGllZCBTdGV2ZSBUaW5uZXkgcGF0Y2ggdG8geG1sTmV3TnNQcm9wIHRvIGZpeAorCSAgYnVnICM1NTgxMAorCitUaHUgSnVuICA3IDIxOjI5OjM5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLmM6IGZpeGVkIHhtbEdldE5zUHJvcCgpIHRvIGNsb3NlIGJ1ZyAjNTU2ODMKKwkgIE5vdGUgdGhpcyByZXF1aXJlcyBsaWJ4c2x0IHRvIHVzZSBpdCdzIG93biBmdW5jdGlvbiBpbnN0ZWFkLgorCitUaHUgSnVuICA3IDE4OjA2OjM0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBIVE1MdHJlZS5jOiB3aGVuIGluIGEgcHJlIGVsZW1lbnQgbm8gZm9ybWF0dGluZyBzcGFjZSBzaG91bGQKKwkgIGJlIGFkZGVkLgorCSogdGVzdC9IVE1ML3ByZS5odG1sIHJlc3VsdC9IVE1ML3ByZS5odG1sKjogYWRkZWQgYSByZWdyZXNzaW9uIHRlc3QKKworVGh1IEp1biAgNyAxNzoyOTozOCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBhZGRlZCB0ZXN0cyBmb3Igc2lnbmFsKCkgYW5kIHNpZ25hbC5oCisKK0ZyaSBKdW4gIDggMTA6MTc6MTUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IHJvYmVydCBwb2ludGVkIG91dCB4bWxYUGF0aE5JTkYgd2FzIG5vdCBpbml0aWFsaXplZAorCitGcmkgSnVuICA4IDEwOjAxOjQ1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBkb2MvbGlieG1sLWRvYy5lbDogRmVsaXggTmF0dGVyIHByb3ZpZGVkIGEgbmV3IHZlcnNpb24gZm9yCisJICBsaWJ4bWwyCisKK0ZyaSBKdW4gIDggMDc6MjA6NDYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUx0cmVlLmM6IHdoZW4gaW4gYSBwcmUgZWxlbWVudCBubyBmb3JtYXR0aW5nIHNwYWNlIHNob3VsZAorCSAgYmUgYWRkZWQuCisKK1dlZCBKdW4gIDYgMTg6MDc6MzYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbjogYWRkIC1taWVlZSB0byBDRkxBR1Mgd2hlbiBjb21waWxpbmcgb24gTGludXgvYWxwaGEKKworVGh1IEp1biAgNyAwNjo0NDowMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogRE9DQnBhcnNlci5jOiBpbXBsZW1lbnRlZCB0aGUgPD9zZ21sLWRlY2xhcmF0aW9uIGVuY29kaW5nPSJ4eHgiPz4KKwkgIGhhY2sKKwkqIHRyZWUuW2NoXTogYWRkZWQgeG1sSGFzTnNQcm9wIGFzIHN1Z2dlc3RlZCBpbiBidWcgcmVwb3J0ICM1NTY1MyAKKwkqIHVyaS5jOiBmaXhlZCBhIHdhcm5pbmcKKworVHVlIEp1biAgNSAyMjo1NDoyMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHRyZWUuYzogdHJ5aW5nIHRvIGNsb3NlIGJ1ZyAjNTU3NzIgZXNjYXBpbmcgaW4gc2NyaXB0CisJICBlbGVtZW50cworCSogZG9jL3htbC5odG1sOiBzdWdnZXN0IHRvIHNlbmQgbWFpbCB0byB0aGUgbGlzdAorCitUdWUgSnVuICA1IDE5OjExOjAyIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBlcnJvci5jOiBhdHRlbXB0IHRvIGZpeCB0aGUgeG1sR2V0VmFyU3RyIGJyZWFrYWdlIG9uY2UgYW5kIGZvcgorCSAgZ29vZC4gVXNlIGEgbWFjcm8gYW5kIGJhc2VkIG9uIHRoZSBzb2x1dGlvbiBwcm92aWRlZCBpbiAKKwkgIHZzbnByaW50ZiBtYW51YWwgcGFnZSBmcm9tIEdOVS4KKworVHVlIEp1biAgNSAxNDo0NjoxMCBDRVNUIDIwMDEgQmpvcm4gUmVlc2UgPGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGVycm9yLmM6IFdvcmthcm91bmQgZm9yIG5vbi1wcmVzZXJ2aW5nIHZhcmlhZGljIGxpc3QuCisJKiB0cmlvLmMgdHJpby5oIHRyaW9wLmggc3RyaW8uYyBzdHJpby5oOiBVcGdyYWRlZCB0byB0cmlvIGJhc2VsaW5lIDEuNAorCitTYXQgSnVuICAyIDA2OjEyOjMzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBkb2MveG1sLmh0bWw6IGFkZGVkIDIuMy4xMCByZWxlYXNlCisKK0ZyaSBKdW4gIDEgMTE6Mjc6MTEgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbjogcmVsZWFzaW5nIDIuMy4xMAorCitUaHUgTWF5IDMxIDIwOjQyOjM5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4bWxJTy5jOiBHYXJ5IFBlbm5pbmd0b24gc3BvdHRlZCBhIGZldyB0cm91YmxlcyB3aXRoIGZpbGU6Ly8vCisKK1RodSBNYXkgMzEgMjA6MTg6NTkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGVuY29kaW5nLmM6IFJvYmVydCBDb2xsaW5zIHByb3ZpZGVkIGEgcGF0Y2ggdG8gYWRkIHRoZQorCSAgIlVTLUFTQ0lJIiBlbmNvZGluZyBhbGlhcworCitXZWQgTWF5IDMwIDIxOjEyOjQ1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jIGVuY29kaW5nLltjaF06IFdpbGxpYW0gTS4gQnJhY2sgcHJvdmlkZWQgYSBzZXQgb2YgVVRGOAorCSAgc3RyaW5nIG9yaWVudGVkIGZ1bmN0aW9ucyBhbmQgc3RhcnRlZCBjbGVhbmluZyB0aGUgcmVsYXRlZCBhcmVhcworCSAgaW4geHBhdGguYyB3aGljaCBuZWVkZWQgZml4aW5nIGluIHRoaXMgcmVzcGVjdAorCitXZWQgTWF5IDMwIDIwOjMwOjQ3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBIVE1MdHJlZS5jOiBhcHBsaWVkIHBhdGNoIGZyb20gSmFyb3NsYXcgS29sYWtvd3NraSB0byBjbG9zZSBidWcKKwkgICM1NTM4MAorCSogdHJlZS5jOiBwYXRjaCB0byB4bWxOb2RlR2V0Q29udGVudCgpIHRvIGdldCBDREFUQSBzZWN0aW9uIGNvbnRlbnQKKworTW9uIE1heSAyOCAxMjo1NjoyOSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogVE9ETzogdXBkYXRlZAorCSogbmFub2h0dHAuW2NoXSA6IHN0YXJ0ZWQgYWRkaW5nIEFQSXMgdG8gZ2V0IHRoZSByZWRpcmVjdGVkIFVSTAorCSAgd2hlbiB0aGlzIG9jY3VycyAobmVlZGVkIGZvciBmdXJ0aGVyIGJhc2UgY29tcHV0YXRpb24KKwkqIHRyZWUuaDogY2xlYW51cAorCSogZW5jb2RpbmcuYzogY2xlYW51cAorCSogU0FYLmM6IG1pbm9yIGNoYW5nZSBhcm91bmQgY3R4dC0+bG9hZHN1YnNldAorCitGcmkgTWF5IDI1IDA5OjM2OjI2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBNYWtlZmlsZS5hbSBpbmNsdWRlL01ha2VmaWxlLmFtOiBzbWFsbCBjaGFuZ2UgdG8gaGF2ZQorCSAgaW5jbHVkZS9saWJ4bWwgcmVidWlsdCBpZiB3b3JraW5nIGZyb20gQ1ZTLgorCSogdXJpLmM6IGFwcGxpZWQgYW5vdGhlciBwYXRjaCBmcm9tIENhcmwgRG91Z2xhcyBmb3IgVVJJIGVzY2FwaW5nLAorCSAgdGhpcyBzaG91bGQgY2xvc2UgYnVnICM1MTg3NgorCitXZWQgTWF5IDIzIDE1OjQwOjI3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4aW5jbHVkZS5jOiBmaXhlZCBYSW5jbHVkZSByZWN1cnNpdmUgYmVoYXZpb3VyIGJ1ZyAjNTQ2NzgKKwkqIHJlc3VsdC9YSW5jbHVkZS9yZWN1cnNpdmUueG1sIHRlc3QvWEluY2x1ZGUvZG9jcy9yZWN1cnNpdmUueG1sCisJICB0ZXN0L1hJbmNsdWRlL2VudHMvaW5jLnR4dCB0ZXN0L1hJbmNsdWRlL2VudHMvc3ViLWluYy5lbnQ6CisJICBhZGRlZCBzcGVjaWZpYyByZWdyZXNzaW9uIHRlc3QKKwkqIHBhcnNlci5oOiBwcmVwYXJpbmcgZm9yIHRoZSBYU0xUIG1vZGUgd2hlcmUgRFREIGluaGVyaXRlZAorCSAgYXR0cmlidXRlcyBhcmUgYWRkZWQgdG8gdGhlIHRyZWUuCisKK1dlZCBNYXkgMjMgMTM6NTk6MTkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhpbmNsdWRlLltjaF06IFVwZGF0ZWQgdGhlIG5hbWVzcGFjZSBmb3IgdGhlIExhc3QgQ2FsbCB2ZXJzaW9uCisJKiByZXN1bHQvWEluY2x1ZGUvaW5jbHVkZSB0ZXN0L1hJbmNsdWRlL2luY2x1ZGU6IHVwZGF0ZWQgdGhlCisJICB0ZXN0c3VpdGUgYWNjb3JkaW5nbHkKKworV2VkIE1heSAyMyAxMjoyNzo0NCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdXJpLltjaF06IGFwcGxpZWQgYSBwYXRjaCBmcm9tIENhcmwgRG91Z2xhcyBmb3IgVVJJIGVzY2FwaW5nLAorCSAgcmVsYXRlZCB0byBidWcgIzUxODc2CisKK1R1ZSBNYXkgMjIgMTg6NDY6NTYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYzogZml4ZWQgYSBncm9zcyBtaXN0YWtlIGluIGJhc2UgY29tcHV0YXRpb24sIHhtbDpiYXNlIGlzCisJICBub3QgY29tcGxldGVseSBjb3JyZWN0IHlldCAobmVlZCBjYXNjYWRlKS4KKwkqIHhwYXRoLltjaF06IGFkZGVkIHRoZSBmZXcgdGhpbmdzIG5lZWRlZCB0byBmaW5kIGEgZnVuY3Rpb24gbmFtZQorCSAgYW5kIFVSSSBmcm9tIHRoZSBYUGF0aCBjb250ZXh0IHdoZW4gaXQgaXMgY2FsbGVkLgorCitUdWUgTWF5IDIyIDE3OjAwOjM2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjYXRhbG9nLltjaF06IGZpeGVzIGFuZCBhZGQgeG1sTG9hZENhdGFsb2dzKCkKKwkqIERPQ0JwYXJzZXIuYzogc21hbGwgY2xlYW51cAorCSogeG1sbGludC5jOiBhZGRlZCBhIC0tY2F0YWxvZ3Mgb3B0aW9uIHRvIGxvYWQgY2F0YWxvZ3MgZnJvbQorCSAgJFNHTUxfQ0FUQUxPR19GSUxFUworCSogdHJlZS5jOiBjbGVhbnVwCisJKiBjb25maWd1cmUuaW46IGljb252IGxpYnJhcnkgZml4dXAsIElDT05WX0xJQlMgCisKK01vbiBNYXkgMjEgMTY6MDU6MjIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNhdGFsb2cuYzogaGFuZGxpbmcgb2YgQ0FUQUxPRyBlbnRyaWVzLiBkZXRlY3Rpb24gb2YgcmVjdXJzaW9uLAorCSAgYW5kIGEgZmV3IGJ1Z2ZpeGVzCisJKiB4cGF0aC5jOiBmaXhpbmcgYnVnICM1NDk1MSBRTkFNRSB3aXRoIG5vIHByZWZpeCBzaG91bGQgbm90IG1hdGNoCisJICBhZ2FpbnN0IHRoZSBkZWZhdWx0IG5hbWVzcGFjZQorCitNb24gTWF5IDIxIDEwOjE0OjA3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBKb2UgT3J0b24gcmVwb3J0ZWQgYSBidWcgZm91bmQgd2l0aCBJUkl4IGNvbXBpbGVyLgorCitTdW4gTWF5IDIwIDE1OjE1OjQ2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogZml4ZWQgcHJvcGFnYXRpb24gY29udGV4dCBpbmZvIHdoZW4gcGFyc2luZyBhbgorCSAgZXh0ZXJuYWwgZW50aXR5LgorCSogZG9jL2h0bWwvKi5odG1sOiByZWdlbmVyYXRlZCBhIGNvdXBsZSBvZiBkb2NzCisKK1NhdCBNYXkgMTkgMTc6MTE6MTUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGRvYy94bWwuaHRtbDogdXBkYXRlIHdpdGggMi4zLjkgaW5mb3JtYXRpb25zCisKK1NhdCBNYXkgMTkgMTY6NTA6NDcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUx0cmVlLmggZGVidWdYTUwuaCBwYXJzZXJJbnRlcm5hbHMuaCB0cmVlLmggdmFsaWQuYworCSAgeG1sdmVyc2lvbi5oLmluIHhwYXRoSW50ZXJuYWxzLmggeHBhdGguaDogc29tZSBjbGVhbnVwIGZvciBndGstZG9jCisJKiBkb2MvaHRtbC8qIDogcmVidWlsdCB0aGUgZG9jcworCSogdmFsaWQuYzogc21hbGwgcGF0Y2ggd2hpY2ggbWF5IGltcHJvdmUgc29tZSBjYXNlIHdoZW4KKwkgIHZhbGlkYXRpbmcuCisKK1NhdCBNYXkgMTkgMTU6MjA6MDMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUxwYXJzZXIuYzogQ2xvc2VkIGJ1ZyAjNTQ4OTEKKwkqIHJlc3VsdC9IVE1ML2NmXzEyOC5odG1sKiB0ZXN0L0hUTUwvY2ZfMTI4Lmh0bWw6IGFkZGVkIHRoZSB0ZXN0CisJICB0byB0aGUgc3VpdGUKKworVGh1IE1heSAxNyAxNDoxNTowNyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZW5jb2RpbmcuaCBoYXNoLmMgbmFub2Z0cC5oIHBhcnNlci5oIHRyZWUuaCB1cmkuaCB4bGluay5oIHhwb2ludGVyLmM6CisJICBhcHBsaWVkIGEgZG9jdW1lbnRhdGlvbiBwYXRjaCBmcm9tIExvdFIgYW5kIGZpbGxlZCBpbiBhIGZldyBtaXNzaW5nCisJICBkZXNjcmlwdGlvbnMKKworV2VkIE1heSAxNiAyMzowMjo0MSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYyB0cmVlLmMgcGFyc2VyLmM6IHNwZWVkIG9wdGltaXphdGlvbnMgYXQgdGhlIHBhcnNlciBsZXZlbAorCSAgZG9jdW1lbnQgdHJlZSBmcmVlaW5nIGFuZCB4cGF0aCBldmFsdWF0aW9uCisKK1dlZCBNYXkgMTYgMTI6NTU6NDggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jIHBhcnNlci5oIHBhcnNlckludGVybmFscy5oOiBmaXhlZCBhIGNvdXBsZSBvZgorCSAgaW50ZXJmYWNlcyBmb3IgaGFuZGxpbmcgbWVtb3J5IGJ1ZmZlciBpbnB1dCB0byBjb25zdCBjaGFyICoKKwkgIHVwb24gc3VnZ2VzdGlvbiBvZiBKYW1lc0guCisKK1R1ZSBNYXkgMTUgMTc6MjI6MjcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbjogTG9UUiBzZW50IGEgcGF0Y2ggZml4aW5nIHRoZSBwcmV2aW91cyBjb21taXQgCisKK1R1ZSBNYXkgMTUgMTQ6NDA6MDQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbjogdHJ5aW5nIHRvIGRlYWwgYWdhaW4gd2l0aCB0aGUgc3Rvb3BpZCAtUiBsaW5raW5nCisJICBmbGFnIG9mIFNvbGFyaXMKKworVHVlIE1heSAxNSAxMjo0OTo1MCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguaDogdHdvIG5vZGVzZXQgYWNjZXNzIG1hY3JvcyBmcm9tIFRob21hcyBCcm95ZXIKKworVHVlIE1heSAxNSAxMTo0MjozOSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYyB4cGF0aC5oIHhwYXRoSW50ZXJuYWxzLmg6IGFwcGx5IGFuIFhQYXRoIEFQSSBjbGVhbnVwCisJICBwYXRjaCBmcm9tIFRob21hcyBCcm95ZXIKKworVHVlIE1heSAxNSAxMDo1MjoxOSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdmFsaWQuYyB0ZXN0L1ZDTS92MlszNF0ueG1sOiBGaXhlZCBidWcgIzU0NjMxIGFkZGVkIHNwZWNpZmljIHRlc3QKKwkgIGNhc2UKKwkqIElOU1RBTEw6IHdhcyBlbXB0eSBhZGRlZCBzdHVmZiBmcm9tIHRoZSBGQVEKKworRnJpIE1heSAxMSAxOTozNzozMCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdHJlZS5bY2hdOiBmaXhpbmcgYnVnICM1NDQ0NiwgYnkgY2xlYW5pbmcgc29tZSBidWdzIGluIHRoZQorCSAgYXR0cmlidXRlcyBoYW5kbGluZyBhbmQgIzU0NDMzIGJ5IGFkZGluZyB4bWxVbnNldFByb3AoKQorCSAgYW5kIHhtbFVuc2V0TnNQcm9wKCkKKworRnJpIE1heSAxMSAxNjowNzoxMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHBhcnNlci5jOiBQYXRjaCBmcm9tIEpvbmFzIEJvcmdzdHLDtm0KKwkoaHRtbEdldEVuZFByaW9yaXR5KTogTmV3IGZ1bmN0aW9uLCByZXR1cm5zIAorCXRoZSBwcmlvcml0eSBvZiBhIGNlcnRhaW4gZWxlbWVudC4KKwkoaHRtbEF1dG9DbG9zZU9uQ2xvc2UpOiBPbmx5IGNsb3NlIGlubGluZSBlbGVtZW50cyBpZiB0aGV5IAorCWFsbCBoYXZlIGxvd2VyIG9yIGVxdWFsIHByaW9yaXR5LgorCSogcmVzdWx0L0hUTUw6IHRoaXMgb2YgY291cnNlIGNoYW5nZWQgYSBudW1iZXIgb2YgdGVzdHMgcmVzdWx0cy4KKworVGh1IE1heSAxMCAxNzozMDoyMiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeG1sSU8uYyBjYXRhbG9nLmM6IHBsdWdnZWQgaW4gdGhlIGRlZmF1bHQgY2F0YWxvZyByZXNvbHV0aW9uCisJKiBkb2MvZ25vbWUteG1sLnNnbWw6IGxpbmtlZCBpbiB0aGUgRG9jYm9vayBwYXJzZXIgYW5kIGNhdGFsb2cKKwkgIGRvY3VtZW50YXRpb25zCisJKiBkb2MvaHRtbC9saWJ4bWwtKi5odG1sOiByZWJ1aWxkIGFkZGVkIHRoZSBtaXNzaW5nIG9uZXMgdG8gQ1ZTCisKK1RodSBNYXkgMTAgMTY6MTQ6MzYgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIE1ha2VmaWxlLmFtIHhtbHZlcnNpb24uaC5pbiBjb25maWd1cmUuaW4gaW5jbHVkZS9NYWtlZmlsZS5hbToKKwkgIGludGVncmF0aW5nIGNhdGFsb2dzCisJKiBjYXRhbG9nLltjaF0gdGVzdENhdGFsb2cuYzogYWRkaW5nIGEgc21hbGwgY2F0YWxvIEFQSQorCSAgKG9ubHkgU0dNTCBjYXRhbG9nIHN1cHBvcnQpLgorCSogcGFyc2VyLmM6IHJlc3RhdXJlZCB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSBBUEkKKworV2VkIE1heSAgOSAxMjo1MDoxNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdHJlZS5jOiB6YkBiaXNwLmNvbSByZXBvcnRlZCBhbiBlcnJvciBpbiB4bWxOb2RlR2V0TGFuZygpCisKK1R1ZSBNYXkgIDggMTI6MzE6NDAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jOiBhZGRlZCB4bWxQYXJzZUV4dGVybmFsRW50aXR5UHJpdmF0ZSgpIHRvIGFsbG93CisJICBwcm9wYWdhdGlvbiBvZiBjdHh0LT5fcHJpdmF0ZSB3aGVuIHBhcnNpbmcgZXh0ZXJuYWwgZW50aXRpZXMKKworVHVlIE1heSAgOCAxMDoyNjoyMiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHRyZWUuYzogZml4ZWQgdGhlIGJ1ZyByZXBvcnRlZCBieSBCam9ybiBpbiBodG1sTm9kZUR1bXAKKworVHVlIE1heSAgOCAwOTozMDoxMiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBmaXhlZCBhIHNtYWxsIHBvcnRhYmlsaXR5IHByb2JsZW0gd2l0aCBBTV9DT05ESVRJT05BTAorCitNb24gTWF5ICA3IDIyOjQ0OjQ1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB2YWxpZC5jOiB3YXJuIHdoZW4gaW5kZXRlcm1pbmlzdCBjb250ZW50IG1vZGVsIGlzIGRldGVjdGVkCisJKiByZXN1bHQvVkMvRWxlbWVudFZhbGlkODogdGhpcyBhZGRzIGEgbWVzc2FnZQorCSogTWFrZWZpbGUuYW06IGFkZCAtLW5vdmFsaWQgZm9yIFZDTSB0ZXN0cworCSogcGFyc2VySW50ZXJuYWxzLmM6IGFkZGVkIGEgY2FsbCB0byBJbml0IG1lbW9yeSAKKworRnJpIE1heSAgNCAxOTo1MToxNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHBhcnNlci5jOiBmaXhlZCBodG1sTmV3RG9jIFNZU1RFTSBhbmQgUFVCTElDIElEIGludmVyc2lvbgorCSAgd2hlbiBib3RoIHBhcmFtZXRlcnMgYXJlIE5VTEwuCisKK0ZyaSBNYXkgIDQgMTc6MTk6MzkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IGFwcGxpZWQgc21hbGwgcGF0Y2ggZnJvbSBHYXJ5IFBlbm5pbmd0b24sIHJlaW5kZW50ZWQKKwkgIHNvbWUgcGFydCBvZiB0aGUgY29kZS4KKworVGh1IE1heSAgMyAxMzoxMDo0MyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluIGRvYy94bWwuaHRtbCBkb2MvaHRtbC8qOiBwcmVwYXJpbmcgZm9yIDIuMy44CisJICByZWxlYXNlLCB1cGRhdGVkIGFuZCByZWdlbmVyYXRlZCB0aGUgZG9jcworCitUaHUgTWF5ICAzIDEyOjQ3OjQ2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jIHJlc3VsdC9YUGF0aC9leHByL2Zsb2F0cyA6IGNsYXJpZmllZCBhbmQgY2xlYW51cAorCSAgcHJpbnRpbmcgb2YgYWJub3JtYWwgZmxvYXRzIGluIHRlc3RzLgorCitUaHUgTWF5ICAzIDEwOjI1OjE5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBIVE1McGFyc2VyLmM6IHRyeWluZyB0byBmaXggdGhlIHByb2JsZW0gcmVwb3J0ZWQgYnkgSm9uYXMgQm9yZ3N0csO2bQorCSogcmVzdWx0cy9IVE1MLyA6IGEgZmV3IGNoYW5nZXMgaW4gdGhlIG91dHB1dCBvZiB0aGUgSFRNTCB0ZXN0cyBhcworCSAgYSByZXN1bHQuCisJKiBjb25maWd1cmUuaW46IHR5aW5nIHRvIGZpeCAtbGljb252IHdoZXJlIG5lZWRlZAorCitXZWQgTWF5ICAyIDE5OjEwOjI2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBNYWtlZmlsZS5hbTogZml4ZWQgYSBzdHVwaWQgZXJyb3IKKworV2VkIE1heSAgMiAxODozOTozOSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluIE1ha2VmaWxlLmFtOiBtYWtlIHRoZSBpbmNsdXNpb24gb2YgdGhlIHRyaW8KKwkgIG1vZHVsZXMgaW4gdGhlIGxpYnJhcnkgY29uZGl0aW9uYWwKKworV2VkIE1heSAgMiAxNDozOTo1NyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogRE9DQnBhcnNlci5jOiBwYXRjaGUgZnJvbSAgTMOhc3psw7MgS292w6FjcywgZml4ZWQgZW50aXRpZXMgcmVmcworCSAgaW4gYXR0cmlidXRlcyBoYW5kbGluZworCitXZWQgTWF5ICAyIDEyOjU2OjA0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4bWxJTy5jOiBCam9ybiBSZWVzZSBwcm92aWRlZCBhIGZpeCBmb3IgYSBwcm9ibGVtIG9uIGJ1ZmZlcgorCSBmbHVzaGluZworCitNb24gQXByIDMwIDIyOjI5OjM0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBmaXggb2YgYW4gWFNMVCBuYW1lc3BhY2UgYnVnIHJlcG9ydGVkIG9uIHRoZSBsaXN0CisJICBnZW5lcmFsL2J1Zy04LQorCitNb24gQXByIDMwIDE5OjQyOjU4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBzdHJpby5oIHRyaW8uYzogRGFuIE1jTmljaG9sIHN1Z2dlc3RlZCBhIGNvdXBsZSBvZiBzbWFsbAorCSAgZml4ZXMgZm9yIEFJWCA0LjMuMyB1c2luZyBWaXN1YWwgQWdlIDUuMC4yIGNvbXBpbGVyCisKK01vbiBBcHIgMzAgMTM6NDQ6NDggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYyBwYXJzZXIuYyBlbmNvZGluZy5jOiBzcGVudCBhIGJpdCBtb3JlIHRpbWUgbG9va2luZworCSAgYXQgdGhlIHBhcnNpbmcgc3BlZWQgYW5kIERPTSBoYW5kbGluZy4gQWRkZWQgYSBmZXcgbW9yZQorCSAgc3BlZWR1cHMuCisKK1N1biBBcHIgMjkgMjE6NTM6NDcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jOiBzbWFsbCBidXQgZWZmZWN0aXZlIHBhcnNpbmcgc3BlZWQgaW1wcm92ZW1lbnQKKworU3VuIEFwciAyOSAxOTowMjoxMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBkZWZhdWx0IG9uIHRoZSBEb2NCb29rIHBhcnNlciBpbmNsdXNpb24gKGZvciBHbm9tZSkKKwkqIERPQ0JwYXJzZXIuaDogZml4ZWQgYSBoZWFkZXIgcmVmZXJlbmNlCisKK1NhdCBBcHIgMjggMTk6MDA6MzkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbiB4cGF0aC5jOiBhcHBsaWVkIEJqb3JuIHBhdGNoZXMgZm9yIEZQRSBvbiB0aGUKKwkgIGFscGhhCisKK1NhdCBBcHIgMjggMTg6NTQ6MjggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuW2NoXSB4bWxJTy5oOiBhcHBsaWVkIHBhdGNoIGZyb20gSm9lIE1jQWxlcm5leSB0byBhZGQKKwkgIHhtbFNhdmVGb3JtYXRGaWxlVG8oKQorCitTYXQgQXByIDI4IDE2OjMzOjA1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBzaW1wbGUgYW5kIGVmZmljaWVudCBvcHRpbWl6YXRpb24sIFhQYXRoIGZ1bmN0aW9ucworCSAgYXdheXMgYmluZCB0byB0aGUgc2FtZSBjb2RlLCBjYWNoZSB0aGlzCisJKiBUT0RPOiB1cGRhdGVkIChieSBzYXlpbmcgc29tZSBpcyBvYnNvbGV0ZSkKKworU2F0IEFwciAyOCAxNDoyMzozMCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogbW9yZSBjbGVhbnVwIHdvcmsgb24gWFBhdGggbmFtZSBwYXJzaW5nIHJvdXRpbmVzCisKK0ZyaSBBcHIgMjcgMTk6MDY6MTMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlckludGVybmFscy5jIHhwYXRoLltjaF06IHNvbWUgVVRGOCBjbGVhbnVwIG9uCisJICB4bWxYUGF0aFBhcnNlTmFtZQorCSogeHBhdGguYzogSWdvciBabGF0a292aWMgc3VnZ2VzdGVkIGEgY2hhbmdlIGZvciBOQU4gYW5kIE1TQworCSogZGVidWdYTUwuYzogYXZvaWQgY29tcGlsYXRpb24gcHJvYmxlbXMgaWYgY29tcGlsaW5nIHdpdGhvdXQKKwkgIEhUTUwgc3VwcG9ydCwgSWdvciBabGF0a292aWMKKwkqIHdpbjMyL2xpYnhtbDIvbGlieG1sMi5kZWYuc3JjOiBiZWluZyBhYmxlIHRvIGNvbXBpbGUgd2l0aG91dAorCSAgWFBhdGggb24gV2luZG93cworCitUaHUgQXByIDI2IDIyOjUzOjAzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBsaWJ4bWwubTQ6IHlldCBhbm90aGVyIHBhdGNoIGZyb20gVG9zaGlvIEt1cmF0b21pCisKK1RodSBBcHIgMjYgMjE6Mjc6NDMgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGxpYnhtbC5tNCBsaWJ4bWwyLXNwZWMuaW46IG5ldyBwYXRjaGVzIGZyb20gVG9zaGlvIEt1cmF0b21pCisKK1RodSBBcHIgMjYgMjA6NTM6NDggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuW2NoXTogYWRkZWQgeG1sU2F2ZUZvcm1hdEZpbGUgaW50ZXJmYWNlIGZvciBzYXZpbmcKKwkgIGFuZCBpbmRlbnRpbmcgYSBmaWxlLgorCitUaHUgQXByIDI2IDE2OjM1OjUzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBmaXhlZCBidWcgIzUzNjg5IHJlbGF0ZWQgdG8gcHJvY2Vzc2luZy1pbnN0cnVjdGlvbigpCisKK1RodSBBcHIgMjYgMTI6NTc6NTggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIERPQ0JwYXJzZXIuYzogcGF0Y2hlIGZyb20gIEzDoXN6bMOzIEtvdsOhY3MKKworVGh1IEFwciAyNiAxMTozMTo1NCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogcGFyc2VyLmM6IGFwcGxpZWQgZml4ZXMgZnJvbSBDaHJpc3RpYW4gR2xhaG4gYnVnIHJlcG9ydCAjNTMzOTEKKworVGh1IEFwciAyNiAxMToxNDo1NiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZXJyb3IuYzogSmVhbiBGcmFuw6dvaXMgTGVjb210ZSBwcm92aWRlZCBhIGNvbXBsZXRlIGRlc2NyaXB0aW9uCisJICBhbmQgYSBmaXggdG8gYnVnICM1MzUzNworCitUaHUgQXByIDI2IDA5OjQyOjU4IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBsaWJ4bWwubTQ6IGFkZGVkIEFNX1BBVEhfWE1MMiBwcm92aWRlZCBieSBUb3NoaW8gS3VyYXRvbWkKKworV2VkIEFwciAyNSAyMTowNTozMSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogRE9DQnBhcnNlci5jIFNBWC5jOiBhIGJpdCBtb3JlIHdvcmsgb24gZW50aXRpZXMgcHJvY2Vzc2luZy4KKwkgIFN0aWxsIE5lZWQgdG8gY2xlYW51cCBYTUwgb3V0cHV0IGFuZCByZWZlcmVuY2VzIGluIGF0dHJpYnV0ZXMKKworV2VkIEFwciAyNSAxNzo1MjoyNyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogRE9DQnBhcnNlci5jIGluY2x1ZGUvTWFrZWZpbGUuYW06IHR3byBwYXRjaGVzIGZyb20gTMOhc3psw7MgS292w6FjcworCitXZWQgQXByIDI1IDE0OjU2OjI2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLmM6IHRyeWluZyB0byBmaXggIzUzNTc0LCBub3QgY29tcGxldGVseSBjb21wbGV0ZSwKKwkgIEkgd291bGQgbGlrZSB4bWxsaW50IC0tY29weSAtLWRlYnVnIHRlc3QvZW50MSBhbmQKKwkgIHhtbGxpbnQgLS1kZWJ1ZyB0ZXN0L2VudDEgdG8gc2hvdyB0aGUgc2FtZSByZXN1bHQuCisJKiB4cGF0aC5jOiBmaXggYSBidWcgd2hlbiB0cnlpbmcgdG8gc29ydCBuYW1lc3BhY2Ugbm9kZXMKKworV2VkIEFwciAyNSAxMjoyODo1NyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHRyZWUuYzogcmVhbCBmaXggZm9yICAjNTM0MDIKKworVHVlIEFwciAyNCAxNzozNjozNSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHRyZWUuYyBIVE1MdHJlZS5oIDogY2xvc2luZyAjNTM0MDIgaS5lLiBvdXRwdXQgb2YKKwkgIFBJcyB3aGVuIHVzaW5nIHhzbDpvdXRwdXQKKwkqIHZhbGlkLmM6IGNsb3NpbmcgIzUzNTM3IHNvbWUgY2FzZSBnZW5lcmF0ZSBzZWdmYXVsdHMgaWYgdGhlcmUKKwkgIGlzIHZhbGlkaXR5IGVycm9ycworCitUdWUgQXByIDI0IDE1OjE5OjUzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBTQVguYyB0ZXN0RG9jYm9vay5jIERPQ0JwYXJzZXIuYzogbW9yZSB3b3JrIG9uIHRoZSBzdXBwb3J0CisJICBvZiBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMsIGFkZGVkIC0tbm9lbnQgdG8gdGVzdERvY2Jvb2sKKwkqIHZhbGlkLmM6IEdhcnJ5IFBlbm5pbmd0b24gZm91bmQgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZQorCSAgYWNjZXNzIGluIHhtbFZhbGlkYXRlRWxlbWVudENvbnRlbnQoKQorCitUdWUgQXByIDI0IDE0OjQxOjI1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBIVE1McGFyc2VyLmMgOiBIVE1MIHBhcnNpbmcgc3RpbGwgc3Vja3MgLi4uIHRyeWluZyB0byBkZWFsCisJICB3aXRoIG1hZG5lc3MKKwkqIHJlc3VsdC9IVE1MLyA6IHRoaXMgbW9kaWZpZWQgdGhlIHJlc3VsdCBvZiB0aGUgcmVncmVzc2lvbiB0ZXN0cworCSAgYSBsb3QuCisKK1R1ZSBBcHIgMjQgMTQ6MTA6MzggQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGVudGl0aWVzLmM6IHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50IGZpeGVkIGEgZmV3IGFjY2Vzc2VzCisJICB0byBkb2Mgd2hlcmUgaXQgd2Fzbid0IGNoZWNrZWQgYWdhaW5zdCBOVUxMIHJlcG9ydGVkIGJ5CisJICBKZW5zIExhYXMKKworVHVlIEFwciAyNCAxMzoyMTozNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHBhcnNlci5jOiBKb25hcyBCb3Jnc3Ryw7ZtIHBhdGNoLCB0aGUgPHRkPiwgYW5kIDx0aD4gZWxlbWVudHMKKwkgIG5vdyBtZWFucyB0aGUgZW5kIG9mIGFueSBvcGVuIDxzcGFuPiw8Zm9udD4sPGE+LDxiPiw8aT4sPHU+LgorCitNb24gQXByIDIzIDE1OjQwOjA0IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBET0NCcGFyc2VyLmMgRE9DQnBhcnNlci5oIHRlc3REb2Nib29rLmMgY29uZmlndXJlLmluIE1ha2VmaWxlLmFtCisJICB4bWx2ZXJzaW9uLmguaW46IHN0YXJ0ZWQgKHJlKWludGVncmF0aW5nIHRoZSBEb2NCb29rIFNHTUwgcGFyc2VyLgorCSogU0FYLltjaF06IGNsZWFudXAgYW5kIHVwZGF0ZXMgZm9yIERvY0Jvb2sKKwkqIGRlYnVnWE1MLmMgcGFyc2VyLmggdHJlZS5bY2hdIHZhbGlkLmMgeHBhdGguYzogc21hbGwgbWFjcm8gb3IKKwkgIGV4IFNHTUwgaWRlbnRpZmllciBjaGFuZ2VzCisJKiB2YWxpZC5jOiByZW1vdmVkIGEgc3RhdGljIHVudXNlZCBmdW5jdGlvbi4KKworTW9uIEFwciAyMyAxMTowNTo1NiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHRyZWUuYzogYXBwbGllZCBjaGFuZ2UgZm9yIFBhdWwgU3BvbmFnbCBvbiBzY3JpcHQgc2F2aW5nCisJKiBNYWtlZmlsZS5hbTogdGhlIHdhcm5pbmcgYWJvdXQgZW50aXR5IHRpdGxlLnhtbCBhcmUgbm9ybWFsLgorCitTdW4gQXByIDIyIDIyOjA5OjM1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW46IHJlbGVhc2Ugb2YgMi4zLjcKKwkqIE1ha2VmaWxlLmFtOiBmaXhpbmcgbWFrZSBkaXN0Y2hlY2sKKworU3VuIEFwciAyMiAyMToyOTo1MiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZG9jL2h0bWwvKiBkb2MveG1sLmh0bWw6IHVwZGF0ZWQgYW5kIHJlZ2VuZXJhdGVkIHRoZSBkb2NzCisKK1N1biBBcHIgMjIgMjE6MTE6NDUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHRoZSBYUG9pbnRlciBwcm9ibGVtIGludHJvZHVjZWQgaW4gMi4zLjYKKworU3VuIEFwciAyMiAxNDoxMTo1OCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdHJlZS5jOiBmaXhlZCAjNTMzODggd2l0aCB0aGUgcHJvdmlkZWQgcGF0Y2gKKworU3VuIEFwciAyMiAxMjozNDo0MSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdmFsaWQuYzogQmpvcm4gZGV0ZWN0ZWQgYW4gaW52YWxpZCBtZW1vcnkgYWNjZXNzLiBGaXhlZAorCSAgdnN0YXRlVlB1c2goKQorCitTdW4gQXByIDIyIDEwOjQ5OjIzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBmaXhlZCB4bWxYUGF0aENvbXBpbGUgdG8gZGV0ZWN0ZWQgdW5wcm9wZXJseSBlbmRlZCBleHByCisKK1NhdCBBcHIgMjEgMTg6Mjc6NTEgQ0VTVCAyMDAxIEJqb3JuIFJlZXNlIDxicmVlc2VAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBsaWJ4bWwuaDogbmV3IGhlYWRlciB1c2VkIG9ubHkgZm9yIHRoZSBjb21waWxhdGlvbiBvZiBsaWJ4bWwKKwkqIEhUTUxwYXJzZXIuYyBIVE1MdHJlZS5jIFNBWC5jIGRlYnVnWE1MLmMgZW5jb2RpbmcuYyBlbnRpdGllcy5jCisJICBlcnJvci5jIGhhc2guYyBsaXN0LmMgbmFub2Z0cC5jIG5hbm9odHRwLmMgcGFyc2VyLmMKKwkgIHBhcnNlckludGVybmFscy5jIHRlc3RIVE1MLmMgdGVzdFNBWC5jIHRlc3RVUkkuYyB0ZXN0WFBhdGguYworCSAgdHJlZS5jIHVyaS5jIHZhbGlkLmMgeGluY2x1ZGUuYyB4bGluay5jIHhtbElPLmMgeG1sbGludC5jCisJICB4bWxtZW1vcnkuYyB4cGF0aC5jIHhwb2ludGVyLmM6IGxpYnhtbC5oIGludGVncmF0aW9uCisJKiB0cmlvLltjaF0gdHJpb3AuaCBzdHJpby5bY2hdOiB1cGdyYWRlZCB0byB0aGUgbGF0ZXN0IHRyaW8KKwkgIGJhc2VsaW5lICh2ZXJzaW9uIDEuMiBwbHVzIGEgc2luZ2xlIHBhdGNoKS4KKwkqIHhwYXRoLmMgcmVzdWx0L1hQYXRoL2V4cHIvZmxvYXRzIHRlc3QvWFBhdGgvZXhwci9mbG9hdHM6IHBhcnNlcworCSAgc2NpZW50aWZpYyBub3RhdGlvbiBmb3IgbnVtYmVycy4gVGVzdHMgYWRkZWQuCisJKiB4cGF0aC5jOiBmb3JtYXR0aW5nIG9mIG51bWJlcnMgY2hhbmdlZCB0byB1c2Ugc3ByaW50ZgorCSAgKGNvbnRyaWJ1dGlvbiBmcm9tIFdpbGxpYW0gQnJhY2spCisKK1NhdCBBcHIgMjEgMTY6MTI6NTkgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IGNsZWFudXAsIG1vcmUgdXNlZnVsIGRlYnVnZ2luZworCSogcGFyc2VySW50ZXJuYWxzLmM6IGNsZWFudXAgdmN0eHQubm9kZVRhYiAoZGUpYWxsb2NhdGlvbgorCSogeG1sSU8uYzogZW50aXR5IGxvYWRpbmcgaXMgcHJpbnRlZCBhcyBhbiBlcnJvciB3aGVuIHZhbGlkYXRpbmcKKworU2F0IEFwciAyMSAxMjoyNTo0OSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdmFsaWQuYzogZml4ZWQgdG8gdmFsaWRhdGUgd2l0aGluIGVudGl0aWVzCisJKiB0ZXN0L1ZDTS92MjIueG1sOiBhZGRlZCBhIHNwZWNpZmljIHRlc3RjYXNlCisKK0ZyaSBBcHIgMjAgMTc6NDU6NDcgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IGZvcmdvdCBhbiBlcHNpbG9uIHRyYW5zaXRpb24gaW4gZm9yICgpKworCSogdGVzdC9WQ00vdjIxLnhtbCA6IGFkZGVkIGEgc3BlY2lmaWMgdGVzdCBjYXNlCisKK0ZyaSBBcHIgMjAgMTU6NDY6MDQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IHJlbW92ZWQgYSBzdGF0ZSBleHBsb3Npb24gZXhoaWJpdGVkIGJ5IFJTUworCSogdGVzdC92YWxpZC9yc3MueG1sIHJlc3VsdC92YWxpZC9yc3MueG1sKjogYWRkZWQgdGhlIHRlc3RjYXNlCisJICBmcm9tIGJ1ZyAjNTE4NzIKKworRnJpIEFwciAyMCAxNDo1Mjo0NCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdmFsaWQuW2NoXSB0cmVlLmg6IHdvcmtlZCAqaGFyZCogdG8gZ2V0IG5vbi1kZXRlcm1pbmlzdCBjb250ZW50CisJICB2YWxpZGF0aW9uIHdpdGhvdXQgdXNpbmcgYW4gdWdseSBORkEgLT4gREZBIGFsZ28gaW4gdGhlIHNvdXJjZS4KKwkgIE1hZGUgYSBzcGVjaWZpYyBhbGdvcml0aG0gZWFzaWVyIHRvIG1haW50YWluLCB1c2luZyBhIHNpbmdsZQorCSAgc3RhY2sgYW5kIHdpdGhvdXQgcmVjdXJzaW9uLgorCSogTWFrZWZpbGUuYW0gdGVzdC9WQ00vKi54bWw6IGFkZGVkIG1vcmUgdGVzdHMgdG8gIm1ha2UgVmFsaWR0ZXN0cyIKKwkqIGhhc2guYzogbWFkZSB0aGUgZ3Jvd2luZyByb3V0aW5lIHN0YXRpYworCSogdHJlZS5oIHBhcnNlci5jOiBhZGRlZCB0aGUgcGFyZW50IGluZm9ybWF0aW9uIHRvIGFuCisJICB4bWxFbGVtZW50Q29udGVudCBub2RlLgorCitXZWQgQXByIDE4IDIzOjMzOjExIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBTQVguYyBwYXJzZXIuYyB4cGF0aC5jOiBnZW5lcmF0aW5nIElEcyB3aGVuIG5vdCB2YWxpZGF0aW5nCisJICBmcm9tIGFuIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkgd2FzIHBvaXNvbmluZyB0aGUgSUQgaGFzIHRhYmxlCisJICB3aXRoIHJlbW92ZWQgdmFsdWVzLiBUaGlzIHdhcyBraWxsaW5nIFhTTFQgb24gdGhlIEtERSBoZWxwCisJICBicm93c2VyLgorCitXZWQgQXByIDE4IDE3OjA5OjE1IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBlbnRpdGllcy5oOiBhbmRyZXdAdWdoLm5ldC5hdSBkZXRlY3RlZCBhIGRvdWJsZSBkZWNsYXJhdGlvbgorCitXZWQgQXByIDE4IDE1OjA2OjMwIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBkZWJ1Z1hNTC5jIGhhc2guYyB0cmVlLmggdmFsaWQuYyA6IHNvbWUgY2hhbmdlcyByZWxhdGVkIHRvCisJICB0aGUgdmFsaWRhdGlvbiBzdXBvcnQgdG8gaW1wcm92ZSBzcGVlZCB3aXRoIERvY0Jvb2sKKwkqIHJlc3VsdC9WQy9PbmVJRDIgcmVzdWx0L1ZDL09uZUlEMyA6IHRoaXMgc2xpZ2h0bHkgY2hhbmdlcworCSAgdGhlIHdheSB2YWxpZGF0aW9uIGVycm9ycyBnZXQgcmVwb3J0ZWQKKworV2VkIEFwciAxOCAxMTo0Mjo0NyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogSFRNTHBhcnNlci5jIEhUTUx0cmVlLmM6IGFwcGxpZWQgcGFydCBvZiB0aGUgcGF0Y2hlcyBwcm92aWRlZAorCSAgYnkgUCBDIENob3cgYW5kIFdpbGxpYW0gTS4gQnJhY2sgZm9yIFhTTFQgSFRNTCBvdXRwdXQKKworTW9uIEFwciAxNiAxOTo0NDozNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeG1sdmVyc2lvbi5oLmluIHdpbjMyY29uZmlnLmggd2luMzIvbGlieG1sMi8qOiBhcHBsaWVkIAorCSAgSWdvciBabGF0a292aWMgcGF0Y2hlcyBmb3IgTVNDIGNvbXBpbGF0aW9uIGFuZCBhZGRlZCBoaXMKKwkgIHVwZGF0ZXMKKworVHVlIEFwciAxNyAxMDowODoxOSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogZml4ZWQgeG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3QoKSB0byBkbyBwcm9wZXIKKwkgIHByZWZpeCBsb29rdXAuCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogZml4ZWQgdGhlIGJ1ZyByZXBvcnRlZCBieSBNb3J1cyBXYWx0ZXIKKwkgIGR1ZSB0byBhbiBvZmYgYnkgb25lIHR5cG8gaW4geG1sU3RyaW5nQ3VycmVudENoYXIoKQorCitUaHUgQXByIDEyIDE3OjQxOjA5IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBIVE1McGFyc2VyLmMgcmVzdWx0L0hUTUwvKjogcmV2YW1wZWQgdGhlIHdheSB0aGUgSFRNTAorCSAgcGFyc2VyIGhhbmRsZXMgZW5kIG9mIHRhZ3Mgb3IgZW5kIG9mIGlucHV0CisKK1RodSBBcHIgMTIgMTA6NTA6MzQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuW2NoXSA6IGFkZGVkIHhtbERvY0NvcHlOb2RlIGZvciBnZG9tZTIgc3VwcG9ydAorCitXZWQgQXByIDExIDE2OjM3OjUwIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLmg6IGluY2x1ZGUgeG1sbWVtb3J5LmggdGhpcyBzZWVtcyB0byBoYXZvaWQgYSBuYXN0eSBnbGliYworCSAgYnVnIHdoZXJlIHRoZSBsaW5rdGltZSB2ZXJpb25zIG9mIGZyZWUoKSB3b24ndCB3b3JrIC4uLgorCitXZWQgQXByIDExIDE0OjIxOjMxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWcuaC5pbiBjb25maWd1cmUuaW4geG1sdmVyc2lvbi5oLmluOiBhZGRlZCBhbnNpZGVjbC5oIHRlc3QKKworV2VkIEFwciAxMSAxMzo1MDo0MiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZG9jL3htbC5odG1sOiBhZGRlZCAyLjMuNiByZWxlYXNlCisKK1dlZCBBcHIgMTEgMTM6MjY6MzQgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYzogZml4ZWQgeG1sU3RyaW5nR2V0Tm9kZUxpc3QoKSB0byBoYW5kbGUgY2hhcnJlZnMKKwkqIHJlc3VsdC93bWwueG1sOiByZXN1bHRlZCBpbiBhIHNtYWxsIG91dHB1dCBjaGFuZ2UKKworV2VkIEFwciAxMSAwOTo0Nzo1NSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdHJlZS5jOiB4bWxOZXdEb2Mgd2FzIG1pc3NpbmcgdGhlIGNoYXJzZXQgaW5pdGlhbGl6YXRpb24KKwkqIHhtbGxpbnQuYzogYWRkZWQgLS1hdXRvIHRvIGF1dG9nZW5lcmF0ZSBhIGRvYywgYWxsb3cgdG8KKwkgIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSBmaXhlZCBvbiB4bWxOZXdEb2MKKworVHVlIEFwciAxMCAxODoxMzoxMCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogdHJ5aW5nIHRvIGdldCA1Mjk3OSBzb2x2ZWQKKwkqIHRyZWUuYyByZXN1bHQvIHJlc3VsdC9ub2VudC86IHRyeWluZyB0byBnZXQgNTI3MTIgc29sdmVkLCB0aGlzCisJICBhbHNvIG1hZGUgbWUgY2xlYW4gdXAgdGhlIGZhY3QgdGhhdCBYTUwgb3V0cHV0IGluIGdlbmVyYWwgc2hvdWxkCisJICBub3QgYWRkIGZvcm1hdGluZyBibGFua3MgYnkgZGVmYXVsdCwgdGhpcyBjaGFuZ2VkIHRoZSBvdXRwdXQgb2YKKwkgIGEgZmV3IHRlc3RzCisKK1R1ZSBBcHIgMTAgMTY6MzA6MjAgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IEJpbGwgQnJhY2sgcG9pbnRlciBhbiBlcnJvciBpbiBkZXRlY3RpbmcgYSBudWxsIG5vZGVzZXQKKworU3VuIEFwciAgOCAxNTowNzoxNiBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBmaW5hbGx5IHJlbGVhc2VkIDIuMy42CisKK1N1biBBcHIgIDggMTE6Mzk6MjEgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGNoZWNraW5nIGZvciBudWxsIHBvaW50ZXIgZ2VuZXJhdGVkIGJ5IG5ldyBjb2RlCisKK0ZyaSBBcHIgIDYgMTI6NTM6MDUgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGZpeGVkIGEgW10gZXZhbHVhdGlvbiBwcm9ibGVtIHJlcG9ydGVkCisJKiB0ZXN0L1hQYXRoL3Rlc3RzL3NpbXBsZWFkZHI6IGV4dGVuZGVkIHRlc3QKKwkqIHJlc3VsdC9YUGF0aC9zaW1wbGVhZGRyOiB1cGRhdGVkIHJlc3VsdAorCitXZWQgQXByICA0IDAyOjA3OjUzIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4bWxsaW50LmM6IERhbiBUaW1pcyByZXBvcnRlZCBhIHBvcnRhYmlsaXR5IHByb2JsZW0KKwkgIG9uIE1hY3Mgd2l0aG91dCBtbWFwLCBmaXhlZCBpdC4KKworVHVlIEFwciAgMyAyMDoyMDo1MSBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdGVzdFhQYXRoLmMgOiBhZGRlZCBhIC0tdHJlZSBvcHRpb24gYWxsb3dpbmcgdG8gZGlzcGxheSB0aGUKKwkgIHRyZWUgZHVtcCBvZiB0aGUgWFBhdGggZXhwcmVzc2lvbgorCitNb24gQXByICAyIDE3OjEzOjUxIENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBmaXhlZCBhIG1lbWxlYWsgd2hlbiBjb21wYXJpbmcgbm9kZXNldHMKKwkqIEhUTUx0cmVlLmM6IGRvbid0IGludmVudCB0aGUgSFRNTCBkb2N0eXBlIGlmIG5vdCBhdmFpbGFibGUgKFhTTFQpCisJKiB0cmVlLmM6IGFkZGVkIGEgVE9ETworCitUdWUgTWFyIDI3IDE0OjMyOjA2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW4gTWFrZWZpbGUuYW0gY29uZmlnLmguaW4geG1sdmVyc2lvbi5oLmluOiBkZXRlY3QgaWYKKwkgIHdlIG5lZWQgc3RyaW5nIGZ1bmN0aW9ucworCSogdHJpby5bY2hdIHN0cmlvLltjaF06IGVtYmVkZGVkIHRoZSBUcmlvLTAuMjMgc3RyaW5nIGZ1bmN0aW9ucworCSAgdG8gYmUgYWJsZSB0byB1c2UgdGhlbSB3aGVyZSBuZWVkZWQuIEFwcGxpZWQgc29tZSBjaGFuZ2VzCisJICB0byByZWR1Y2UgbmFtZSBsaW5raW5nIHBvbGx1dGlvbiBhbmQgY29tcGlsZSBpbiBvbmx5IHdoYXQncworCSAgbmVlZGVkLgorCSogSFRNTHRyZWUuYyBkZWJ1Z1hNTC5jIGVudGl0aWVzLmMgZXJyb3IuYyBuYW5vZnRwLmMgdmFsaWQuYworCSAgeGxpbmsuYyB4bWx2ZXJzaW9uLmguaW4geHBhdGguYzogZ290IHJpZCBvZiB0aGUgI2lmZGVmIAorCSAgZm9yIHRoZSBzdHJpbmcgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucworCSogeG1sbWVtb3J5LltjaF06IHJlbW92ZWQgREVCVUdfTUVNT1JZX0ZSRUVEIGFuZCBhZGRlZCBpdCBhdXRvbWF0aWNhbGx5CisJICB0byB0aGUgZnJlZSgpIGZ1bmN0aW9uIG9mIHhtbG1lbW9yeS5jCisJKiBlbnRpdGllcy5jIEhUTUx0cmVlLmMgcGFyc2VySW50ZXJuYWxzLmMgdHJlZS5jIHVyaS5jIHZhbGlkLmMKKwkgIHhpbmNsdWRlLmMgeG1sSU8uYyB4cGF0aC5jIHhwb2ludGVyLmM6IHJlbW92ZWQgdGhlIE1FTV9DTEVBTlVQCisJICB1c2FnZS4KKworVHVlIE1hciAyNyAwMjozMDoyMyBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZXJyb3IuYzogYXBwbGllZCB0aGUgY29udGV4dCBvdXRwdXQgcGF0Y2ggb2YgdGhlIGVycm9yCisJICBoYW5kbGluZyBzdWJtaXR0ZWQgYnkgQ2h1Y2sgR3JpZmZpdGgKKwkqIGVycm9yL1ZDLyo6IHRoaXMgc2xpZ2h0bHkgY2hhbmdlIHNvbWUgZXJyb3IgbG9ncworCitUdWUgTWFyIDI3IDAwOjUxOjI3IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogZml4ZWQgbGluZSBudW1iZXIgcmVwb3J0aW5nIG9uIGVycm9yCisKK01vbiBNYXIgMjYgMjM6MjE6NDEgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jOiBTdWxsaXZhbiBhbmQgRGFyaW4gZm91bmQgYSBwYXJzZXIgYnVnLAorCSAgYXBwbGllZCB0aGUgcGF0Y2guCisKK01vbiBNYXIgMjYgMTg6MjQ6NTIgQ0VTVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUxwYXJzZXIuYyBIVE1MdHJlZS5jIFNBWC5jIGRlYnVnWE1MLmMgZXJyb3IuYyBwYXJzZXJJbnRlcm5hbHMuYworCSAgdGVzdEhUTUwuYyB0ZXN0U0FYLmMgdHJlZS5jIHZhbGlkLmMgeG1sSU8uYyB4bWxtZW1vcnkuYworCSAgeG1sdmVyc2lvbi5oLmluIHhwb2ludGVyLmM6IG9mIGNvdXJzZSB0aGUgd2F5IEkgZGVmaW5lZAorCSAgVU5VU0VEIGJyZWFrcyBvbiBvbGQgZ2NjIHZlcnNpb24uIFRyeSB0byBiZSBzbWFydCBhbmQKKwkgIGFsc28gZGVmaW5lIGl0IGRpcmVjdGx5IGluIHhtbHZlcnNpb24uaAorCSogY29uZmlndXJlLmluOiByZW1vdmVkIC1hbnNpIGZsYWcgZnJvbSB0aGUgcGVkYW50aWMgc2V0CisKK1NhdCBNYXIgMjQgMTc6NDU6MzYgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKwlIdWdlIGNsZWFudXAsIEkgc3dpdGNoZWQgdG8gY29tcGlsZSB3aXRoCisJLVdhbGwgLWcgLU8gLWFuc2kgLXBlZGFudGljIC1XIC1XdW51c2VkIC1XaW1wbGljaXQKKwktV3JldHVybi10eXBlIC1Xc3dpdGNoIC1XY29tbWVudCAtV3RyaWdyYXBocyAtV2Zvcm1hdAorCS1XY2hhci1zdWJzY3JpcHRzIC1XdW5pbml0aWFsaXplZCAtV3BhcmVudGhlc2VzIC1Xc2hhZG93CisJLVdwb2ludGVyLWFyaXRoIC1XY2FzdC1hbGlnbiAtV3dyaXRlLXN0cmluZ3MgLVdhZ2dyZWdhdGUtcmV0dXJuCisJLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcyAtV25lc3RlZC1leHRlcm5zIC1XaW5saW5lCisJKiBIVE1McGFyc2VyLltjaF0gSFRNTHRyZWUuYyBTQVguYyBkZWJ1Z1hNTC5jIGVuY29kaW5nLltjaF0KKwkgIGVuY29kaW5nLmggZW50aXRpZXMuYyBlcnJvci5jIGxpc3QuW2NoXSBuYW5vZnRwLmMKKwkgIG5hbm9odHRwLmMgcGFyc2VyLltjaF0gcGFyc2VySW50ZXJuYWxzLltjaF0gdGVzdEhUTUwuYworCSAgdGVzdFNBWC5jIHRlc3RVUkkuYyB0ZXN0WFBhdGguYyB0cmVlLltjaF0gdXJpLmMKKwkgIHZhbGlkLltjaF0geGluY2x1ZGUuYyB4bWxJTy5bY2hdIHhtbGxpbnQuYyB4bWxtZW1vcnkuYworCSAgeHBhdGguYyB4cGF0aEludGVybmFscy5oIHhwb2ludGVyLltjaF0gZXhhbXBsZS9nam9icmVhZC5jOgorCSAgQ2xlYW51cCwgc3RhdGljZmllZCBhIG51bWJlciBvZiBub24tZXhwb3J0ZWQgZnVuY3Rpb25zLAorCSAgZGV0ZWN0ZWQgYW5kIGNsZWFuZWQgdXAgYSBkb3plbiBvZiBwcm9ibGVtIGZvdW5kIHRoaXMgd2F5LAorCSAgYXZvaWRlZCBhIGxvdCBvZiBwdWJsaWMgZnVuY3Rpb24gbmFtZS90eXBlZGVmL3N5c3RlbSBuYW1lcyBjbGFzaGVzCisJKiBkb2MveG1sLmh0bWw6IHVwZGF0ZWQKKwkqIGNvbmZpZ3VyZS5pbjogc3dpdGNoZWQgcHJpdmF0ZSBmbGFncyB0byB0aGUgcmVhbGx5IHBlZGFudGljIG9uZXMuCisKK1RodSBNYXIgMjIgMjI6NDQ6MTUgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiAyLjMuNQorCSogZG9jL2h0bWwvKjogcmVidWlsdCB0aGUgZG9jcworCitUaHUgTWFyIDIyIDE1OjM2OjQ1IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhIHJlcG9ydGVkIGJ1ZyBpbiBOT1RBVElPTiBwYXJzaW5nCisJKiB1cmkuYzogYWNjZXB0ZWQgYnV0IG5vdCBmaXhlZCBidWcgNTE4NzYsIGFkZGVkIFRPRE8gCisJKiBNYWtlZmlsZS5hbTogZml4ZWQgYnVnIDUxODc2CisKK1RodSBNYXIgMjIgMTM6NDE6MjIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlnLmguaW4gY29uZmlndXJlLmluIGVycm9yLmM6IGZpeCBhIGNvbXBpbGF0aW9uIHByb2JsZW0KKwkgIG9uIHBsYXRmb3JtcyB3aXRob3V0IHZzbnByaW50ZiAoeG1sQHRoZXdyaXR0ZW53b3JkLmNvbSkKKworV2VkIE1hciAyMSAxOTowNDozNCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogZml4ZWQgYSBmdW5jdGlvbiBuYW1lIGhlYWRlciB0eXBvCisJKiBTQVguYzogbm90YXRpb25zIGNhbiBhbHNvIG9jY3VyIGluIGV4dGVybmFsIHN1YnNldC4KKworVHVlIE1hciAyMCAxNDoyMToyOCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBlcnJvci5jOiByZW1vdmVkIGEgQysrIGxpa2UgY29tbWVudAorCitUdWUgTWFyIDIwIDEyOjIyOjM2IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jOiBmaXhpbmcgYnVnIDUyMjk5IHN0cmFuZ2UgY29uZGl0aW9uIGxlYWRpbmcKKwkgIHRvIGEgcGFyc2VyIGNyYXNoIGR1ZSB0byBhIGJ1ZmZlciBvdmVyZmxvdworCSogcmVzdWx0L25vZW50L2F0dHJpYi54bWwgcmVzdWx0L2F0dHJpYi54bWwgdGVzdC9hdHRyaWIueG1sOgorCSAgYWRkZWQgdGhlIHNwZWNpZmljIHRlc3QgY2FzZQorCitNb24gTWFyIDE5IDE2OjUwOjUyIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLltjaF06IHN0aWxsIGEgbG90IG9mIGNsZWFudXAgYmFzZWQgb24gWFNMVCwgYWRkZWQKKwkgIHhtbFhQYXRoQ29udmVydHtTdHJpbmcsTnVtYmVyLEJvb2xlYW59IHRvIGJlIGFibGUgdG8gbWFrZQorCSAgdHlwZSBjYXN0cyB3aXRob3V0IGEgY29udGV4dCBzdGFjaywgZml4ZWQgc29tZSBpbXBsZW1lbnRhdGlvbgorCSAgcHJvYmxlbXMgcmVsYXRlZCB0byB0aGUgYWJzZW5jZSBvZiBjb250ZXh0IGF0IHBhcnNlLXRpbWUsCisJICBhZGRlZCB4bWxYUGF0aEV2YWxQcmVkaWNhdGUoKSBhbmQgeG1sWFBhdGhGcmVlQ29tcEV4cHIoKQorCSAgaW4gdGhlIHB1YmxpYyBBUEkgdG9vCisJKiB4cG9pbnRlci5jIHhwYXRoSW50ZXJuYWxzLmg6IHdlIG5lZWQgdG8ga25vdyBhdCBwYXJzZSB0aW1lCisJICB3aGV0aGVyIHdlIGFyZSBjb21waWxpbmcgYW4gWFBvaW50ZXIKKworTW9uIE1hciAxOSAxMTo1NDozMSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5bY2hdIHhwb2ludGVyLmM6IHJlc3RhdXJlZCB0aGUgQmluYXJ5IGFuZCBBUEkgY29tcGF0aWJpbGl0eQorCSAgY2xlYW5lZCB1cCB0aGUgcGFyc2VyIGludGVybmFscywgcmVmYWN0b3JlZCBYUGF0aCBjb2RlLCBhZGRlZAorCSAgbmV3IGNvbXBpbGF0aW9uIGJhc2VkIEFQSXMgYW5kIGNsZWFubHkgc2VwYXJhdGVkIHB1YmxpYyBhbmQKKwkgIHByaXZhdGUgQVBJcy4KKworTW9uIE1hciAxOSAwMDo1OToyNSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5oOiB0aGUgY29tcCBmaWVsZCBtdXN0IGJlIGFkZGVkIGF0IHRoZSBlbmQgdG8gYXZvaWQKKwkgIGtpbGxpbmcgYmluYXJ5IGNvbXBhdC4KKworTW9uIE1hciAxOSAwMDoxMToxOCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBNYWtlZmlsZS5hbTogZGV0ZWN0IFhQYXRoIG1lbWxlYWtzIGluIHJlZ3Jlc29uIHRlc3RzCisJKiBlcnJvci5jOiBmaXhlZCBhbmQgZXJyb3Igdy5yLnQuIGVycm9yIHJlcG9ydGluZyBzdGlsbCB1c2luZworCSAgc3RkZXJyCisJKiBoYXNoLmM6IGFkZGVkIG5ldyBsaW5lIGF0IGVuZCBvZiBmaWxlCisJKiB0cmVlLmg6IG1pbm9yIGNsZWFudXAKKwkqIHhwYXRoLltjaF0geHBvaW50ZXIuW2NoXTogTWFqb3IgY2hhbmdlcyAhIFNlcGFyYXRlZCBYUGF0aAorCSAgZXhwcmVzc2lvbiBwYXJzaW5nIGZyb20gZXZhbHVhdGlvbiwgcmVzdWx0ZWQgaW4gYSBudW1iZXIgb2YKKwkgIGNoYW5nZXMgaW50ZXJuYWxseSwgYW5kIGluIFhQb2ludGVyLiBMaWtlbHkgdG8gYnJlYWsgc3R1ZmYKKwkgIHVzaW5nIHhwYXRoSW50ZXJuYWxzLmggYnV0IHNob3VsZCByZW1haW4gYmluYXJ5IGNvbXBhdGlibGUsCisJICBuZXcgaW50ZXJmYWNlcyB3aWxsIGJlIGFkZGVkLgorCitXZWQgTWFyIDE0IDIwOjM0OjAyIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGNvbmZpZ3VyZS5pbjogZml4ZWQgYSBjb3VwbGUgb2YgcHJvYmxlbXMgcmVwb3J0ZWQgYnkgCisJICBva2lkZGxlQHlhaG9vLmNvLnVrIGFuZCBhbGxhbmNAY2hpY2tlbmFuZHBvcm4uY29tIHdoZW4gY29tcGlsaW5nCisJICB3aXRob3V0IGdjYyBvbiBub24gbGludXggcGxhdGZvcm1zLgorCitXZWQgTWFyIDE0IDIwOjEzOjU0IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGRvYy9NYWtlZmlsZS5hbSBjb25maWd1cmUuaW46IHllYXJrZUBlbmcuYnVmZmFsby5lZHUgc3VnZ2VzdGVkCisJICBhIGZpeCBmb3IgLS13aXRoLWh0bWwtZGlyPSBjb25maWd1cmUgc3VwcG9ydC4gSSBob3BlIGl0IHdvbid0CisJICBicmVhayBycG0gZ2VuZXJhdGlvbgorCitXZWQgTWFyIDE0IDE3OjI4OjQ5IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhtbElPLmM6IG9uZSBmdW5jdGlvbiBjb21tZW50IGNsZWFudXAuCisKK1dlZCBNYXIgMTQgMTQ6NTU6NDYgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogU0FYLmM6IGV4dGVybmFsIHN1YnNldCBub3RhdGlvbnMgd2VyZSBpbXByb3Blcmx5IHJlZ2lzdGVyZWQKKwkgIGluIHRoZSBpbnRlcm5hbCBzdWJzZXQuCisKK1R1ZSBNYXIgMTMgMTA6Mjg6NDkgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogUkVBRE1FLmN2cy1jb21taXRzOiBhZGRlZCwgcG9pbnRpbmcgdG8gSEFDS0lORworCSogSEFDS0lORzogdXBkYXRlZAorCitNb24gTWFyIDEyIDIyOjA5OjQwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jOiBhbmQgTWF0dCBTZXJnZWFudCBmb3VuZCBvbmUgaW4gdGhlIFhNTCBwdXNoCisJICBwYXJzZXIgKGVycm9uZW91cyBjaGVjayBJIGZvcmdvdCB0byByZW1vdmUgd2hlbiBJIGZpeGVkIHRoZQorCSAgbWFpbiBwYXJzZXIpLgorCitNb24gTWFyIDEyIDE5OjE5OjA0IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IHB0aXR0b20gZm91bmQgYSBzbWFsbCBidWcgaW4gVW5hcnlFeHByCisKK1NhdCBNYXIgMTAgMTM6MDk6NTMgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBidW1wZWQgdG8gMi4zLjQKKwkqIGVycm9yLmM6IGZpeGVkIGJ1ZyAjNTE4NjAKKwkqIHRyZWUuYzogZml4ZWQgYnVnICM1MTg2MQorCSogdmFsaWQuYzogY2xlYW51cCwgbW9yZSBkZWJ1ZywgZmFpbGVkIHRvIGZpeCBvbmUgYnVnIGNyYXAgLi4uCisJKiB0cmVlLltjaF0gOiBhZGRlZCB4bWxEZWZhdWx0QnVmZmVyU2l6ZQorCSogbmFub2Z0cC5jOiB0eXBvIGluIGZ1bmN0aW9uIG5hbWUgaGVhZGVyIGJsb2NrCisJKiBkb2MveG1sLmh0bWwgOiB1cGRhdGVkLCBhZGRlZCBsaW5rIHRvIFhNTDo6TGliWFNMVAorCSogZG9jL2h0bWwvKiA6IHJlYnVpbHQgdGhlIGRvY3MKKworV2VkIE1hciAgNyAyMDo0Mzo0NyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYyBTQVguYzogdGhlIG5ldyBjb250ZW50IHBhcnNpbmcgY29kZSByYWlzZWQgYW4KKwkgIHVnbHkgYnVnIGluIHRoZSBjaGFyYWN0ZXJzKCkgU0FYIGNhbGxiYWNrLiBGb3VuZCBpdAorCSAganVzdCBiZWNhdXNlIG9mIHN0cmFuZ2VuZXNzIGluIFhTTFQgWE1MIFJlYyBvdXB0dXQgOi0oCisKK1dlZCBNYXIgIDcgMTY6NTA6MjIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogTWFrZWZpbGUuYW06IE1hcnRpbiBCYXVsaWcgc3VnZ2VzdGVkIHRvIGFkZCAtbG0KKwkqIHRyZWUuYzogZm91bmQgYW5vdGhlciBidWcgaW4geG1sTm9kZUdldENvbnRlbnQoKQorCitUdWUgTWFyICA2IDA5OjIxOjMwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IEJqb3JuIGZvdW5kIHRoZSBlcnJvciByZWxhdGVkIHRvIHN0cmljdG5lc3Mgb2YgY29tcGFyaXNvbi4KKworTW9uIE1hciAgNSAyMTo0NzozMSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogdHJ5aW5nIHRvIGZpeCB0aGUgRHRkIHBhcnNpbmcgcHJvYmxlbSByZXBvcnRlZAorCSAgYnkgR2FyeSwgc2lkZSBlZmZlY3Qgb2YgbGFzdCB3ZWVrIHNwZWVkIG9wdGltaXphdGlvbnMuCisKK1NhdCBNYXIgIDMgMTk6NDU6NTkgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeG1sMkNvbmYuc2guaW46IGZpeGVzIHBvaW50ZWQgb3V0IGJ5IEZyZWRyaWsgSGFsbGVuYmVyZworCSogcGFyc2VySW50ZXJuYWxzLmM6IHJlbW92ZWQgdW5uZWVkZWQgdGVzdCByYWlzZWQgYnkgU3RyaWMKKworU2F0IE1hciAgMyAxMzowNDozNyBDRVQgMjAwMSBCam9ybiBSZWVzZSA8YnJlZXNlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogeHBhdGguYzogRml4ZWQgeG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3QgKHByb2JsZW0gcmVwb3J0ZWQKKwkgIGFuZCBmaXhlZCBieSBXaWxsaWFtIEJyYWNrKS4gQWRkZWQgeG1sWFBhdGhGb3JtYXROdW1iZXIuCisJICBDaGFuZ2VkIHRoZSBzb3J0aW5nIHNsaWdodGx5LgorCSogY29uZmlndXJlLmluIE1ha2VmaWxlLmFtIGV4YW1wbGUvTWFrZWZpbGUuYW06IEFkZGVkIC1sbS4KKwkgIFBsZWFzZSBub3RlIHRoYXQgYXBwbGljYXRpb25zIGxpbmtpbmcgd2l0aCBsaWJ4bWwyLCBtdXN0CisJICBhbHNvIGxpa2Ugd2l0aCB0aGUgbWF0aCBsaWJyYXJ5IGZyb20gbm93IG9uLgorCitTYXQgTWFyICAzIDA3OjM4OjU4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIEhUTUxwYXJzZXIuYzogZml4ZWQgbG9vcCByZXBvcnRlZCBieSBNYXJjIFNhbmZhY29uCisKK1NhdCBNYXIgIDMgMDI6MTA6MjQgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogcGFyc2VyLmM6IG9uZSBtdXN0IHJlcG9ydCBzcGFjZXMgZXZlbiBpZiB0aGUgRHRkIGVsZW1lbnQKKwkgIGNvbnRlbnQgcHJvdmVzIHRoYXQgdGhpcyBpcyBub3QgcGFydCBvZiB0aGUgZWxlbWVudCBjb250ZW50LgorCSogcmVzdWx0L3ZhbGlkLyoueG1sOiB0aGlzIGNoYW5nZWQgdGhlIG91cHR1IHNsaWdodGx5CisKK1RodSBNYXIgIDEgMTc6NTM6MzkgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBidW1wZWQgdG8gMi4zLjMKKwkqIGRvYy94bWwuaHRtbDogdXBkYXRlZAorCitXZWQgRmViIDI4IDAwOjQzOjU4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHRyZWUuYzogbWlub3IgZG9jIGZpeAorCSogeHBhdGguYzogZGVhbGxvY2F0aW9uIGlzc3VlcyB3aGVuIGEgcmVzdWx0IHRyZWUgaGFzIGJlZW4KKwkgIGNvbnZlcnRlZCB0byBhIG5vZGUtc2V0CisKK01vbiBGZWIgMjYgMjI6MDk6NDUgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZG9jL3htbC5odG1sOiBvb3BzIGNvcnJlY3RlZCBkYXRlcyBzLzIwMDAvMjAwMQorCitNb24gRmViIDI2IDEyOjQ4OjM1IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IG5ldyBwYXRjaCBmcm9tIEdhcnkgUGVubmluZ3RvbgorCitNb24gRmViIDI2IDA5OjMwOjIzIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGRvYy94bWwuaHRtbDogYXBwbGllZCBwYXRjaCBmcm9tIEFua2gKKworTW9uIEZlYiAyNiAwMzozNDo0MyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4aW5jbHVkZS5jOiBmaXhlZCBhIHByb2JsZW0gYnVpbGRpbmcgb24gTWFjCisKK1N1biBGZWIgMjUgMjE6NTI6MzAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogcGFyc2VyLmM6IG1vcmUgd29yayBvbiBpbmNyZWFzaW5nIHBhcnNpbmcgZmVyZm9ybWFuY2VzCisKK1N1biBGZWIgMjUgMTg6MDM6NDIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeG1sbWVtb3J5LmggSFRNTHBhcnNlci5jIEhUTUx0cmVlLmMgZW50aXRpZXMuYyBwYXJzZXIuYworCSAgeHBhdGguYyB4cG9pbnRlci5jIHRyZWUuYyB1cmkuYyB2YWxpZC5jIHhpbmNsdWRlLmMgeG1sSU8uYzoKKwkgIGF2b2lkaW5nIG1lbWNweSBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBNRU1fQ0xFQU5VUCBtYWNybyB1c2UKKwkqIHBhcnNlci5bY2hdIHBhcnNlckludGVybmFscy5jOiBvcHRpbWl6YXRpb25zIG9mIHRoZSB0aWdodGVzdAorCSAgaW50ZXJuYWwgbG9vcHMgaW5zaWRlIHRoZSBwYXJzZXIuIEJldHRlciBjaGVja2luZyBvZiBJL08KKwkgIGZsdXNoaW5nL2xvYWRpbmcgY29uZGl0aW9ucworCSogeG1sbGludC5jIDogYWRkZWQgLS10aW1pbmcKKworU3VuIEZlYiAyNSAwNTo0ODo1MSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW46IGJ1bXBlZCB0byAyLjMuMgorCSogZG9jL3htbC5odG1sOiB1cGRhdGVkIGZvciByZWxlYXNlCisKK1NhdCBGZWIgMjQgMTQ6MDc6NTIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogZm91bmQgYSBtZW1sZWFrIGFuZCBmaXhlZCBhIG5hc3R5IGJ1ZworCitTYXQgRmViIDI0IDAzOjM1OjQ4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhtbGxpbnQuW2MxXSA6IGFkZGVkIHJldHVybiBjb2RlIGVycm9ycyBmb3IgeG1sbGludAorCSogeHBhdGguYzogc3BlY2lmaWMgZGVidWcgZHVtcCBmdW5jdGlvbiBmb3IgcmVzdWx0IHZhbHVlIHRyZWVzCisKK1RodSBGZWIgMjIgMDc6NTI6MjcgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogZmluYWxseSBpbXBsZW1lbnRlZCB4bWxYUGF0aENvbXBhcmVOb2RlU2V0cworCSogdGVzdC9YUGF0aC9leHByL2Zsb2F0cyByZXN1bHRzL1hQYXRoL2V4cHIvZmxvYXRzOiBhZGRlZCAKKwkgIGEgdGVzdCBmb3IgZmxvYXQgZXhwcmVzc2lvbnMKKworVHVlIEZlYiAyMCAxODo1Nzo1NCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLmM6IGZpeGVkIHhtbE5vZGVHZXRDb250ZW50LCBpdCB3YXMgbm90IHJlY3Vyc2luZyBvbiBjaGlsZAorCSogcGFyc2VySW50ZXJuYWxzLltjaF06IHRyeWluZyB0byBzcGVlZCB1cCBwYXJzaW5nCisJKiB4cGF0aC5jIDogc3BlZWRlZCB1cCBub2RlIHNldCBlcXVhbGl0eSBvcAorCitNb24gRmViIDE5IDE5OjAxOjU3IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIE1ha2VmaWxlLmFtIHZhbGlkLmMgbGlzdC5bY2hdOiBHYXJ5IFBlbm5pbmd0b24gcHJvdmlkZWQgYQorCSAgYmV0dGVyIGhhbmRsaW5nIG9mIElEL0lEUkVGIGFuZCB0aGUgbGlzdCBtb2R1bGVzIGFzc29jaWF0ZWQKKwkqIGNvbmZpZ3VyZS5pbjogc21hbGwgQ0ZMQUdTIGNsZWFudXAKKworTW9uIEZlYiAxOSAxNjoxMzoyMiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW46IGZpeGVkIGljb252IGRldGVjdGlvbiBvbiBBSVggKHN0cmljKQorCitNb24gRmViIDE5IDEwOjU5OjQxIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGZpeGVkICIqIiAodW5iZWxpZXZhYmxlICEpIGFuZCBhIGNvdXBsZSBvZiB3YXJuaW5ncworCitTdW4gRmViIDE4IDE3OjUyOjM3IE1FVCAyMDAxIEJqb3JuIFJlZXNlIDxicmVlc2VAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiB4cGF0aC5jOiBmaXhlZCB3aGl0ZXNwYWNlIGhhbmRsaW5nIGluIHhtbFhQYXRoU3RyaW5nRXZhbE51bWJlciwKKwkgIGFuZCBvcHRpbWl6ZWQgeG1sWFBhdGhOb2RlU2V0U29ydAorCitTYXQgRmViIDE3IDE0OjE4OjQyIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGJ1ZyBmaXggd2hlbiBjb250ZXh0IHNpemUgaXMgMAorCSogcGFyc2VyLmM6IEkgbGlrZSBOb3JtJ3MgRHRkIGJlY2F1c2UgdGhleSBzdGlsbCBtYW5hZ2UgdG8gYnJlYWsKKwkgIHRoZSBwYXJzZXIgb2NjYXNpb25hbGx5CisKK0ZyaSBGZWIgMTYgMTQ6MjA6MzUgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogeG1sWFBhdGhFcXVhbE5vZGVTZXRGbG9hdCB0aGUgYXJnIGlzIHJlYWxseSBhIGRvdWJsZSBub3cKKworRnJpIEZlYiAxNiAwMToxMDowNiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLltjaF0gcGFyc2VyLmMgeHBhdGguYzogZml4ZWQgdGhlIHByb2JsZW0gb2YgYWRkcmVzc2luZworCSAgYXR0cmlidXRlcyB3aXRoaW4gdGhlIFhNTC0xLjAgbmFtZXNwYWNlCisKK1RodSBGZWIgMTUgMTY6NTM6MjAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGhJbnRlcm5hbHMuaDogZXhwb3J0ZWQgYSBmZXcgYXhpcyBmdW5jdGlvbnMKKwkqIGRvYy94bWwuaHRtbDogdXBkYXRlZCB0aGUgZG9jCisKK1RodSBGZWIgMTUgMTU6NTc6MTQgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogY29uZmlndXJlLmluOiBhcHBsaWVkIHBhdGNoIGZyb20gRGFuaWVsIHZhbiBCYWxlbiBmb3IgT3BlbkJTRAorCSAgYW5kIGJ1bXBlZCB2ZXJzaW9uIHRvIDIuMy4xCisJKiBIVE1MdHJlZS5jIHJlc3VsdC9IVE1ML2RvYzMuaHRtIHJlc3VsdC9IVE1ML3dpcmVkLmh0bWw6IHRoZQorCSAgYXR0ZW1wdCB0byBmaW5kIGF1dG9jbG9zaW5nIHdhcyBzaW1wbHkgYnJva2VuLCByZW1vdmVkIGl0LAorCSAgdXBkYXRlZCB0aGUgZXhhbXBsZXMsIHRoaXMgaXMgYmV0dGVyCisKK1dlZCBGZWIgMTQgMTE6MzU6MzkgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogaGFzaC5bY2hdOiBhZGRlZCBQYW9sbyBDYXNhcmluaSBwYXRjaCB0byBwcm92aWRlIERlbGV0ZSBmcm9tCisJICBoYXNoIGZ1bmN0aW9ubmFsaXRpZXMuCisJKiBkb2MvaHRtbC8qIDogcmVidWlsZCB0aGUgZG9jCisKK1R1ZSBGZWIgMTMgMTg6MDE6NDggQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYyByZXN1bHQvWFBhdGgvdGVzdHMvY2hhcHRlcnNwcmVmb2w6IGJ1Z2ZpeGVzIG9uIG9yZGVyIGFuZAorCSAgb24gcHJlZGljYXRlCisJKiBIVE1McGFyc2VyLltjaF0gSFRNTHRyZWUuYyByZXN1bHQvSFRNTC9kb2MzLmh0bS5lcnIKKwkgIHJlc3VsdC9IVE1ML2RvYzMuaHRtLnNheCByZXN1bHQvSFRNTC93aXJlZC5odG1sOiBzb21ldGltZXMgb25lCisJICByZWFsbHkgd2FudCB0byBoYXZlIHRhZ3MgY2xvc2VkIG9uIG91dHB1dCBldmVuIGlmIHdlIGFjY2VwdAorCSAgdW5jbG9zZWQgb25lcyBvbiBpbnB1dAorCitNb24gRmViIDEyIDE4OjMzOjIwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IG91Y2ggZG9uJ3QgZnJlZSBOVUxMLCByYXJlIGNhc2UgZml4ZWQKKwkqIHRyZWUuYzogZG9uJ3QgY29hbGVzY2UgdGV4dCBub2RlcyBpZiB0aGV5IGRvbid0IGhhdmUgdGhlCisJICBzYW1lIGJlaGF2aW91ciB3cnQgZXNjYXBpbmcgb24gb3V0cHV0CisKK1N1biBGZWIgMTEgMjE6MTU6NDEgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogc21hbGwgZml4dXAKKwkqIFNBWC5jOiBkb24ndCB3YXJuIG9uIGVtcHR5IG5hbWVzcGFjZXMuCisKK1RodSBGZWIgIDggMTE6Mjg6NTggQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogUkVBRE1FOiBhIGJpdCBvZiBjbGVhbnVwCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyBmb3IgMi4zLjAgcmVsZWFzZQorCitUaHUgRmViICA4IDEwOjM3OjAwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGhhc2guW2NoXTogYWRkZWQgYSBmaXJzdCB2ZXJzaW9uIG9mIHhtbEhhc2hTaXplKCkKKwkqIHZhbGlkLmM6IGFub3RoZXIgYnVnIGZpeCBmcm9tIEdhcnkgUGVubmluZ3RvbgorCitXZWQgRmViICA3IDE5OjIyOjM3IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHZhbGlkLmM6IGNvdXBsZSBvZiBidWcgZml4ZXMgcG9pbnRlZCBieSBHYXJ5IFBlbm5pbmd0b24KKwkqIEhUTUx0cmVlLmM6ICNpZiAwIGNsZWFudXAKKworVHVlIEZlYiAgNiAxNDowMjo1NiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBzdGFydGVkIHByb2ZpbGluZyBYU0xULCBhZGRlZCB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUoKQorCSAgd2hpY2ggcmVtb3ZlcyBhIHRpbWUgY29uc3VtaW5nIGNoZWNrIG9mIHhtbFhQYXRoTm9kZVNldEFkZCgpCisJICBhbmQgdXNlIGl0IGluIHBsYWNlcyB3aGVyZSB3ZSBhcmUgc3VyZSB0byBub3QgYnJlYWsgdW5pY2l0eQorCitNb24gRmViICA1IDE4OjUxOjM2IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGJ1ZyBmaXhlcyBmb3VuZCBmcm9tIFhTTFQKKwkqIHRyZWUuYzogcHJlc2VydmUgbm9kZS0+bmFtZSBzcGVjaWFsIHZhbHVlcyB3aGVuIGNvcHlpbmcgbm9kZXMuCisJKiBwYXJzZXJJbnRlcm5hbHMuW2NoXSBwYXJzZXIuW2NoXSBTQVguYyA6IGFkZGVkIGEgbW9kZSB3aGVyZQorCSAgZXh0ZXJuYWwgc3Vic2V0IGFyZSBmZXRjaGVkIHdoZW4gYXZhaWxhYmxlIGJ1dCB3aXRob3V0IGZ1bGwKKwkgIHZhbGlkYXRpb24uIEFkZGVkIHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUsIG5lZWQgYSBmdW5jdGlvbi4KKwkqIEhUTUx0cmVlLmM6IGFkZCBzdXBwb3J0IGZvciB4bWxTdHJpbmdUZXh0Tm9lbmMgZm9yIFhTTHQgSFRNTAorCSAgb3V0cHV0IHdpdGggZW5jb2RpbmcgZGlzYWJsZWQuCisKK1NhdCBGZWIgIDMgMDk6NTA6MjkgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeG1saU8uYzogSGFycnkgQmx1bmRlbGwgcG9pbnRlZCBvdXQgdGhhdCB4bWxDaGVja0ZpbGVuYW1lCisJICB4bWxDaGVja0ZpbGVuYW1lIHNob3VsZCBub3QgYmUgY2FsbGVkIGZyb20geG1sRmlsZU9wZW5XCisJICBhbmQgeG1sR3pmaWxlT3BlblcKKworRnJpIEZlYiAgMiAxODowNDozNSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB1cmkuYzogcmV3cml0ZSBvZiB4bWxOb3JtYWxpemVVUklQYXRoIGZyb20gUGF1bCBELiBTbWl0aAorCSogdGVzdC9VUkkvc21pdGgudXJpIHJlc3VsdC9VUkkvc21pdGgudXJpIE1ha2VmaWxlLmFtOgorCSAgYWRkZWQgdGhlIG5ldyB0ZXN0cyBmb3IgVVJJIG5vcm1hbGl6YXRpb24KKwkqIHRlc3RVUkkuYzogZml4ZWQgc3Rvb3BpZCBidWdzCisJKiByZXN1bHQvVkMvT25lSUQzIHJlc3VsdC9WQy9VbmlxdWVFbGVtZW50VHlwZURlY2xhcmF0aW9uOgorCSAgdGhlIFVSSSBpbiB0aGUgZXJyb3IgbWVzc2FnZXMgYXJlIG5vdyBwcm9wZXJseSBub3JtYWxpemVkCisKK0ZyaSBGZWIgIDIgMDk6MTg6NTMgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogdXJpLmM6IGFwcGxpZWQgTWFyYyBTYW5mYWNvbidzIHBhdGNoIGZvciB4bWxOb3JtYWxpemVVUklQYXRoCisKK1RodSBGZWIgIDEgMDU6Mjg6NTUgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogZml4ZWQgYSBudW1iZXIgb2YgcHJvYmxlbXMgaW4gWFBBVEhfWFNMVF9UUkVFIHByb2Nlc3NpbmcKKworV2VkIEphbiAzMSAyMTo0NTozNyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiBmaXhlZCBtb2Qgb3BlcmF0b3IKKworV2VkIEphbiAzMSAxNjo1MDo0MiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBwYXJzZXIuYzogZml4ZWQgeG1sU3RyY2F0IGRvYworCSogdHJlZS5jOiAyIGZpeGVzIGZvcm0gQW5kZXJzIENhcmxzb24gZm9yIGNvcHlpbmcgbm9kZXMgYW5kCisJICB0cmVlcy4KKworV2VkIEphbiAzMSAxNDoxOToxNiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jIHJlc3VsdC9YUGF0aC90ZXN0cy9jaGFwdGVyc2Jhc2UKKwkgIHJlc3VsdC9YUGF0aC90ZXN0cy9zaW1wbGViYXNlOiBmaXhlZCBYUGF0aCBub2RlKCkgCisJKiB0cmVlLmM6IHNtYWxsIGZpeCBpbiB4bWxOZXdOcygpCisJKiBNYWtlZmlsZS5hbTogcmVtb3ZlZCBleHRyYW5lb3VzIHhtbDJDb25mLnNoIHJ1bGUKKworU3VuIEphbiAyOCAwODozNzowMyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBNYWtlZmlsZS5hbSBjb25maWd1cmUuaW4gbGlieG1sLnNwZWMuaW4gZXhhbXBsZS9NYWtlZmlsZS5hbToKKwkgIENoYW5nZWQgdGhlIGxpYnJhcnkgbmFtZSwgaW4gb3JkZXIgdG8gZ2V0IGxpYnhtbC1kZXZlbCBhbmQKKwkgIGxpYnhtbDItZGV2ZWwgdG8gY29leGlzdCBvbiBhIHNpbmdsZSBzeXN0ZW0KKwkqIHhtbC1jb25maWcuMSB4bWwtY29uZmlnLmluIHhtbENvbmYuc2guaW46IHJlbmFtZWQKKwkqIHhtbDItY29uZmlnLjEgeG1sMi1jb25maWcuaW4geG1sMkNvbmYuc2guaW46IG5ldyBmaWxlcworCitTYXQgSmFuIDI3IDE5OjU4OjIyIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIE1ha2VmaWxlLmFtIGNvbmZpZ3VyZS5pbiBsaWJ4bWwtMi4wLnBjLmluOiBzdGFydGVkIHdvcmtpbmcgb24gZ2V0dGluZworCSAgbGlieG1sMi1kZXZlbCBpbnN0YWxsYWJsZSBpbiAvLyBhcyBsaWJ4bWwtZGV2ZWwuCisKK1NhdCBKYW4gMjcgMTg6NDk6MDIgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZG9jL01ha2VmaWxlLmFtOiBmaXhlZCBtYWtlIHJlYnVpbGQgaW4gZG9jCisJKiBkb2MvaHRtbC8qLmh0bWw6IHJlYnVpbHQgdGhlIGRvY3MKKworRnJpIEphbiAyNiAxMDozMDo1OCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLmM6IHBhdGNoIGZyb20gQmpvcm4gUmVlc2Ugb24geG1sQnVmZmVyQ0NhdAorCitUaHUgSmFuIDI1IDE5OjIyOjI1IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIE1ha2VmaWxlLmFtIGRvYy9NYWtlZmlsZS5hbSBsaWJ4bWwuc3BlYy5pbjogcGFpbmZ1bCB3b3JrIHRvIGdldAorCSAgdGhlIEhUTUwgZG9jIHRvIGdvIGludG8gdGhlIC1kZXZlbCBSUE0gLi4uCisJKiBhY2xvY2FsLm00IGNvbmZpZy5oLmluOiBzb21lIHVwZGF0ZXMgZHVlIHRvIGF1dG8qIG1hZ2ljCisKK1RodSBKYW4gMjUgMTk6MTE6NDkgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguaDogYWRkZWQgYSBob29rIGluIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBhbGxvd2luZyB0bworCSAgbGluayB0byBleHRyYSBzdXBwb3J0LCBuZWVkZWQgZm9yIFhTTFQKKworVGh1IEphbiAyNSAxMzozNDoxMSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5bY2hdIHhwb2ludGVyLmM6IGFkZGVkIHhtbFhQYXRoQ21wTm9kZXMsIGNoYW5nZWQKKwkgIHhtbFhQdHJDbXBQb2ludHMgdG8gdXNlIGl0LgorCSogcHJvcGFnYXRlZCB0aGUgZm9sbG93aW5nIHBhdGNoIGZyb20gQWxlamFuZHJvIEZvcmVybworCSogaW5jbHVkZS93aW4zMmNvbmZpZy5oIHhtbElPLmM6IGFwcGxpZWQgZnVydGhlciBzdWdnZXN0aW9ucworCSAgZnJvbSBJZ29yIFpsYXRrb3ZpYyA8aWdvcnpAZGlhbHVwLm5hY2FtYXIuZGU+IGFuZCBjbGVhbnVwCisJKiBleGFtcGxlL2dqb2JyZWFkLmM6IGZpeGVkIHdhcm5pbmdzLCBub3cgdGhhdCBpdCBidWlsZHMKKworV2VkIEphbiAyNCAyMDoyNzoyOCBDT1QgMjAwMSBBbGVqYW5kcm8gRm9yZXJvIDxiYWNodWVAYmFjaHVlLmNvbT4KKworCSogeG1sSU8uYyAoeG1sRmlsZU9wZW4sIHhtbEZpbGVPcGVuVyk6IFJlbW92ZWQgdW5uZWNlc2FyeSBjaGVja3MuCisKKwkqIHhtbElPLmMgKHhtbENoZWNrRmlsZW5hbWUpOiBGdW5jdGlvbiBhZGRlZCB0byBrbm93IHdoZXRoZXIgYSBnaXZlbgorCSAgZmlsZW5hbWUgcG9pbnRzIHRvIGEgdmFsaWQgZmlsZSAobm90IGEgZGlyZWN0b3J5KS4KKwkqIHhtbElPLmMgKHhtbEZpbGVPcGVuLCB4bWxGaWxlT3BlblcsIHhtbEd6ZmlsZU9wZW4sIHhtbEd6ZmlsZU9wZW5XKToKKwkgIEFkZGVkIGNhbGxzIHRvIHhtbENoZWNrRmlsZW5hbWVEaXIuCisKKwkqIHhtbElPLmMgKHhtbEd6ZmlsZU9wZW4sIHhtbEd6ZmlsZU9wZW5XLCB4bWxGZE9wZW4sIHhtbEZkT3BlblcpOiBQYXNzCisJICBgcGF0aCcgKHJhdGhlciB0aGFuIGBmaWxlbmFtZScpIGFzIHRoZSBwYXJhbWV0ZXIgdG8gZ3pvcGVuIGFuZCBvcGVuLgorCitUdWUgSmFuIDIzIDE2OjI2OjMwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIE1ha2VmaWxlLmFtOiBmaXhlZCBhIHByb2JsZW0gd2l0aCBFWFRSQV9ESVNUCisKK01vbiBKYW4gMjIgMjM6NDI6MTcgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogTWFrZWZpbGUuYW0gZXhhbXBsZS9NYWtlZmlsZS5hbTogZmluYWxseSBmb3VuZCB0aGUgdHJpY2sKKwkgIHRvIGJ1aWxkIHRoZSBleGFtcGxlLCBpLmUuIGFkZCAiLiIgaW4gU1VCRElSUyBiZWZvcmUgZXhhbXBsZQorCSAgaW4gdGhlIGxpc3QgPGdyaW4vPgorCitNb24gSmFuIDIyIDE2OjMwOjM3IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGRvYy94bWwuaHRtbDogdXBkYXRlZCB3aXRoIGFuIFhTTFQgc2VjdGlvbiwgcmVtb3ZlZCBwb2ludGVyIHRvCisJICBXM0MgQ1ZTIGJhc2UuCisKK01vbiBKYW4gMjIgMTE6NDM6MjEgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogd2hlbiBjb3B5aW5nIGEgWFNMVCB0cmVlIG9iamVjdCB0ZWggdHJlZSBuZWVkIHRvIGJlIGNvcGllZAorCSAgdG9vLCBhbmQgZGVhbGxvY2F0aW9uIG5lZWQgdG8gb2NjdXIgdGhlIHNhbWUgd2F5LgorCitNb24gSmFuIDIyIDEwOjM1OjQwIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoSW50ZXJuYWxzLmggeHBhdGguW2NoXSBkZWJ1Z1hNTC5jOiBhZGRlZCB0aGUgWFBBVEhfWFNMVF9UUkVFCisJICB0eXBlIGNvcnJlcG9uZGluZyB0byBhbiBYU0xUIHJlc3VsdCB0cmVlIGZyYWdtZW50LiBTaGFyZSBtb3N0CisJICBvZiB0aGUgZGF0YSBmb3JtYXQgd2l0aCBub2RlIHNldCwgYXMgd2VsbCBhcyBvcGVyYXRvcnMuCisJKiBIVE1MdHJlZS5jOiBhZGRlZCBhIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdHlwZSBvdXRwdXQKKwkgIHdoZSB0aGlzIG9uZSBpcyBub3QgcHJlc2VudCBpbml0aWFsbHkuCisJKiB0cmVlLmM6IG1ha2Ugc3VyZSB0YWh0IHRoZSBwYXJlbnQgYW5kIGRvYyBwb2ludGVycyBhcmUgcHJvcGVybHkKKwkgIHNldCB3aGVuIGNvcHlpbmcgYXR0cmlidXRlcyAobGlzdHMpLgorCitTdW4gSmFuIDIxIDEwOjQ3OjM4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIGh0bWxUcmVlLltjaF0geG1sSU8uaDogZXhwb3J0ZWQgaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0CisKK0ZyaSBKYW4gMTkgMTg6MTU6NTAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogeHBhdGguYzogc2VlbXMgSSBmaW5hbGx5IGtpbGxlZCB0aGF0IHVnbHkgcGF0aCBldmFsdWF0aW9uCisJICBjb250ZXh0IGJ1ZyAodGFnZ2VkIDk5OTkgaW4gY2FzZSBpcyBpcyB3cm9uZykKKworRnJpIEphbiAxOSAwNjozMDozOCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5bY2hdIHhwYXRoSW50ZXJuYWxzLmg6IGFkZGVkIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCgpCisJICBmb3IgWFNMVAorCitUaHUgSmFuIDE4IDE2OjE5OjQ3IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhtbElPLmM6IEdhcnkgUGVubmluZ3RvbiA8R2FyeS5QZW5uaW5ndG9uQHVrLnN1bi5jb20+IGZpeAorCSAgZm9yIHhtbEd6ZmlsZU9wZW4oKSBidWcKKworVGh1IEphbiAxOCAxMzoxMTo1MCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4cGF0aC5jOiByZW1vdmVkIGFuIGVycm9yIGZvdW5kIGJ5IFhTTFQgdXNhZ2UKKwkqIHRyZWUuYyBwYXJzZXJJbnRlcm5hbHMuaDogdXNlIGEgcHJlZGVmaW5lZCBzdGF0aWMgc3RyaW5nCisJICBmb3IgdGV4dCBhbmQgY29tbWVudCBub2RlcywgYXZvaWQgZnJlZWluZyB0aGVtIGluIHhtbEZyZWVOb2RlLAorCSAgZXhwb3J0ZWQgdGhlIHN0cmluZyBuYW1lIGluIHBhcnNlckludGVybmFscy5oIGFuZCBhZGRlZAorCSAgYW5vdGhlciB2YWx1ZSB0byBkaXNhYmxlIGVuY29kaW5nIGF0IG91dHB1dCAoZm9yIFhTTFQpLAorCSAgZ2FpbiBtZW1vcnksIHRpbWUuCisKK1dlZCBKYW4gMTcgMDk6MTU6MTYgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogd2luMzIvUkVBRE1FLk1TRGV2IHdpbjMyL2xpYnhtbDIvbGlieG1sMl9hLmRzcAorCSAgd2luMzIvbGlieG1sMi9saWJ4bWwyX3NvLmRzcDogbmV3IG1ha2VmaWxlcyBhbmQgdXBkYXRlCisJICBwcm92aWRlZCBieSBJZ29yIFpsYXRrb3ZpYyA8aWdvckBzdHVkLmZoLWZyYW5rZnVydC5kZT4KKworVHVlIEphbiAxNiAxODoyNDo0NiBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLmMgOiB4bWxTYXZlRmlsZSwgeG1sU2F2ZUZpbGVFbmMsIGFwcGxpZWQgcGF0Y2ggZnJvbSAKKwkgIEdhcnkgUGVubmluZ3RvbgorCitNb24gSmFuIDE1IDIwOjI0OjE4IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhwYXRoLmM6IGZpeGVkIHRoZSBjb21hcHJpc2lvbiBvZiB2YWx1ZXMgYW5kIG5vZGVsaXN0cywKKwkgIG5lZWQgdG8gY29tcGFyZSBub2RlbGlzdCBzdGlsbCAuLi4KKwkqIGRlYnVnWE1MLmM6IGF2b2lkZWQgYSBwb3NzaWJsZSBjb3JlIGR1bXAKKwkqIEhUTUxwYXJzZXIuYzogY2xlYW51cAorCSogbmFub2h0dHAuYzogY29udHJpYnV0ZWQgZml4LgorCSogdHJlZS5jOiBmaXhlcyBpbiBwcm9wZXJ0aWVzIGhhbmRsaW5nIGFkZGVkIHhtbFNldE5zUHJvcAorCSAgbmVlZGVkIGJ5IGxpYnhzbHQKKwkqIHhwYXRoSW50ZXJuYWxzLmg6IGV4cG9ydGVkIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uLCBhZGRlZCBhIAorCSAgY29tbWVudAorCSogVE9ETzogdXBkYXRlZAorCitTYXQgSmFuICA2IDIyOjA1OjA5IENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5jOiBhcHBsaWVkIEJqb3JuIFJlZXNlIG9wdGltaXphdGlvbgorCSAgcGF0Y2gKKworU2F0IEphbiAgNiAxOToxMzoyNyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBNYWtlZmlsZS5hbTogYXBwbGllZCBwYXRjaCBmcm8gbWFrZSBjaGVjayBmcm9tIE1hcnRpbiBWaWRuZXIKKworVGh1IEphbiAgNCAxOTowNzo0OSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyAyLjIuMTEKKwkqIGRvYy9odG1sLyo6IHJlYnVpbGQgdGhlIEhUTUwgZmlsZXMKKwkqIGRvYy94bWwuaHRtbCA6IHVwZGF0ZWQKKworVGh1IEphbiAgNCAxNDowOTo1OCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0cmVlLmM6IGZpeGVkIGEgc3R1cGlkIGJ1ZworCSogdmFsaWQuYzogYXBwbGllZCAiUGF1bCBELiBTbWl0aCIgPHBhdXNtaXRoQG5vcnRlbG5ldHdvcmtzLmNvbT4KKwkgIHBhdGNoZXMgcmVsYXRlZCB0byB2YWxpZGF0aW9uIG9mIGFuIFhJbmNsdWRlIHByb2Nlc3NpbmcgcmVzdWx0CisJKiBUT0RPOiB1cGRhdGVkCisKK1RodSBKYW4gIDQgMTE6NDY6NDAgQ0VUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZW5jb2RpbmcuYyB4bWxJTy5jOiBGaXhpbmcgdGhlIHByb2JsZW0gcmVwb3J0ZWQgYnkgTWFyYyBTYW5mYWNvbgorCSAgb24gbGFyZ2UgZmlsZXMKKworV2VkIEphbiAgMyAyMTo1MToxMyBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB4bWxJTy5jOiBmaXhlZCB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSBkb2MKKworV2VkIEphbiAgMyAxODo1NjowMCBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiBIVE1McGFyc2VyLmM6IGh0bWxDaGVja1BhcmFncmFwaCB0byBjaGVjayBodG1sT21pdHRlZERlZmF1bHRWYWx1ZSwKKwkgIHJlcG9ydGVkIGJ5IEpvbmFzIEJvcmdzdHLDtm0KKwkqIG5hbm9odHRwLmM6IEFwcGxpZWQgQmpvcm4gUmVlc2UnIElQVjYgZmlyc3QgcGF0Y2gKKworV2VkIEphbiAgMyAxNjoxOTozOSBDRVQgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgorCisJKiB0ZXN0WFBhdGguYyB4cGF0aC5jOiBmaXhpbmcgdGhlIFhQYXRoIHVuaW9uIGV4cHJlc3Npb25zIHByb2JsZW0KKwkgIHJlcG9ydGVkIGJ5ICBNYXJ0aW4gVmlkbmVyIDxtYXJ0aW5AYXJ0YXgua2FybGluLm1mZi5jdW5pLmN6PgorCitXZWQgSmFuICAzIDE0OjIyOjMzIENFVCAyMDAxIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQGltYWcuZnI+CisKKwkqIHhtbGxpbnQuYzogTWFkZSBpcyBzbyBpZiB0aGUgZmlsZSBuYW1lIGlzICItIiBpcyB3aWxsIHJlYWQgZm9ybQorCSAgc3RhbmRhcmQgaW5wdXQuIFN2ZW4gSGVpbmlja2UgIDxzdmVuQHplbi5vcmc+CisJKiB0cmVlLmM6IGZpeGVkIGEgcHJvYmxlbSB3aGVuIGdyb3dpbmcgYnVmZmVyCisJKiB0cmVlLmg6IGZpeGVkIHRoZSBjb21tZW50IG9mIHRoZSBub2RlIHR5cGVzIGZvbGxvd2luZyBhbmRlcnNjYQorCSAgY29tbWVudAorCSogVE9ETzogdXBkYXRlZAorCitXZWQgRGVjIDI3IDEyOjM1OjQ5IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5bY2hdOiBhZGRlZCBhIHdheSB0byBhdm9pZCBhZGRpbmcgYXV0b21hdGljYWxseQorCSAgb21pdHRlZCB0YWdzLiBodG1sSGFuZGxlT21pdHRlZEVsZW0oKSBhbGxvd3MgdG8gY2hhbmdlIHRoZQorCSAgZGVmYXVsdCBoYW5kbGluZy4KKwkqIHRyZWUuW2NoXSB4bWxsaW50LmM6IGFkZGVkIHhtbERvY0R1bXBGb3JtYXRNZW1vcnkoKSBhbmQgCisJICB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jKCksIHVzZXMgbWVtb3J5IGZ1bmN0aW9ucyBmb3Igb3V0cHV0CisJICBvZiB4bWxsaW50IHRvbyB3aGVuIHVzaW5nIC0tbWVtb3J5IGZsYWcsIGFkZGVkIGEgbWVtb3J5IHRlc3QKKwkgIHN1aXRlIGF0IHRoZSBNYWtlZmlsZSBsZXZlbC4KKwkqIHhwYXRoSW50ZXJuYWxzLmggeHBhdGguW2NoXSB4cG9pbnRlci5jOiBmaXhlZCBwcm9ibGVtcworCSAgd2l0aCBuYW1lc3BhY2UgdXNlIHdoZW4gZW5jb3VudGVyaW5nIFFOYW1lcyBpbiBYUGF0aCBldmFsYXRpb24sCisJICBhZGRlZCB4bWxucygpIHNjaGVtZSBpbiBYUG9pbnRlci4KKwkqIG5hbm9mdHAuYyA6IGluY29ycG9yYXRlZCBhIGZpeAorCSogcGFyc2VyLmMgeG1sSU8uYzogZml4ZWQgcHJvYmxlbXMgcmFpc2VkIHdpdGggZW5jb2Rpbmcgd2hlbiB1c2luZworCSAgdGhlIG1lbW9yeSBJL08KKwkqIHBhcnNlckludGVybmFscy5jOiBjbG9zZWQgYnVnIDI1OTM0IHJlcG9ydGVkIGJ5IAorCSAgdG9yc3Rlbi5sYW5kc2Nob2ZmQGlubm9taW5hdGUuZGUKKwkqIFRPRE86IHVwZGF0ZWQKKworU2F0IE5vdiAyNSAxMTo0NjoyNyBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGNvbmZpZ3VyZS5pbiBkb2MvaHRtbC8qIGRvYy94bWwuaHRtbDogbWFkZSBhIDIuMi45IHJlbGVhc2UKKwkgIG9uIGEgbm9uLXVwZGF0ZWQgdHJlZSA6LSgsIG1hZGUgYSAyLjIuMTAgcmVsZWFzZSB0byBjb3JyZWN0IHRoZQorCSAgc2l0dWF0aW9uCisKK1NhdCBOb3YgMjUgMTA6NDE6MzcgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vaHR0cC5jIHBhcnNlci5bY2hdIHRyZWUuW2NoXSB4bWxJTy5bY2hdIHhtbGxpbnQuYyB4cGF0aC5jCisJICBwYXJzZXJJbnRlcm5hbHMuaCB2bXMvYnVpbGRfbGlieG1sLmNvbSB2bXMvY29uZmlnLnZtcyBNYWtlZmlsZS5hbToKKwkgIGludGVncmF0ZWQgYSBzZXQgb2YgT3BlblZNUyBjaGFuZ2VzIGZyb20gSG93YXJkIFRheWxvcgorCSAgPEhvd2FyZC5UYXlsb3JAcGFjb2FzdC5jb20+CisKK1NhdCBOb3YgMjUgMDE6MjE6MDEgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0cmVlLltjaF0geG1sSU8uYzogYWRkZWQgeG1sRG9jRHVtcE1lbW9yeUVuYygpIGZyb20gSm9obiBLcm9sbAorCSogZXJyb3IuYzogYXBwbGllZCBmaXggc3VnZ2VzdGVkIGJ5ICJMZW8gRGF2aWRzb24iIDxsZW9Ab3guY29tcHNvYy5uZXQ+CisKK1NhdCBOb3YgMjUgMDA6MjQ6NDkgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmM6IHNvbWUgZml4ZXMgb24gYXV0by1vcGVuIG9mIGh0bWwvaGVhZC9ib2R5CisJKiBlbmNvZGluZy5jOiBmaXhlZCBhIGNvbXBpbGF0aW9uIGVycm9yIG9uIHNvbWUgZ2NjIGVudgorCSogeHBhdGguYyB4cG9pbnRlci5bY2hdIHhwYXRoSW50ZXJuYWxzLmg6IGltcHJvdmVkIHRoZQorCSAgWFBvaW50ZXIgaW1wbGVtZW50YXRpb24KKwkqIHRlc3QvWFBhdGgveHB0ci9zdHJwb2ludCB0ZXN0L1hQYXRoL3hwdHIvc3RycmFuZ2UzOiBhZGRlZAorCSAgcmVsYXRlZCBYUG9pbnRlciB0ZXN0cyBhbmQgYXNzb2NpYXRlZCByZXN1bHRzCisKK0ZyaSBOb3YgMjQgMTQ6MDE6NDQgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MveG1sZHRkLmh0bWwgZG9jL3htbC5odG1sOiBmb2xsb3dpbmcgYSBzaG9ydCBzdGVwIGJ5IHN0ZXAKKwkgIGd1aWRhbmNlIG9uIElSQyB0byBoZWxwIG1hY2llaiB3aXRoIERURHMgSSBzdGFydGVkIGEgc21hbGwKKwkgIHBhZ2Ugb24gdGhlIHN1YmplY3QuCisKK0ZyaSBOb3YgMTcgMTc6Mjg6MDYgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGhhbmRsaW5nIG9mIGJyb2tlbiBjaGFycmVmcworCSogeG1sbWVtb3J5LmggbGlieG1sMi5kc3AgaW5jbHVkZS93aW4zMmNvbmZpZy5oOiByZXBvcnRpbmcgV2luZG93cworCSAgcGF0Y2hlcworCitNb24gTm92IDEzIDE5OjE3OjIwIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jL3htbC5odG1sIGRvYy9odG1sLyogOiByZWJ1aWx0IHRoZSBkb2NzIGFmdGVyIGFkZGluZworCSAgeGluY2x1ZGUgYW5kIHVwZGF0ZWQgcGFnZSBmb3IgMi4yLjcgYW5kIDIuMi44CisJKiBjb25maWd1cmUuaW46IHJlbGVhc2luZyAyLjIuOAorCitNb24gTm92IDEzIDEyOjM5OjM4IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLltjaF0gcGFyc2VySW50ZXJuYWxzLmM6IGFwcGxpZWQgdGhlIGNvbmRpdGlvbmFsCisJICBzZWN0aW9uIHByb2Nlc3NpbmcgZml4IGZyb20gSm9uYXRoYW4gUCBTcHJpbmdlcgorCSAgPGpvbmF0aGFuLnNwcmluZ2VyMkBndGUubmV0PgorCSogeG1sdmVyc2lvbi5oLmluIHdpbjMyL2xpYnhtbDIvbGlieG1sMi5kc3AgOiBVcGRhdGVkIE1TCisJICBwcm9qZWN0IGZpbGUsIGZpeGVkIGljb252IGRlZmF1bHQgbm9uIHN1cHBvcnQKKwkqIHhwYXRoLmM6IGZpeGVkIHRoZSBwcm9ibGVtIG9mIGV2YWx1YXRpbmcgcmVsYXRpdmUgZXhwcmVzc2lvbnMKKwkgIHdoZW4gYSBub2RlIGNvbnRleHQgaXMgcHJvdmlkZWQuCisKK1N1biBOb3YgMTIgMTY6MzE6MTkgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vZnRwLmM6IGZpeGVkIGdjYyAyLjk1IG5ldyB3YXJuaW5ncworCSogU0FYLmM6IGZpeGVkIGEgc3R1cGlkIGJ1ZworCSogdHJlZS5jOiBmaXhlZCBhIGZvcm1hdHRpbmcgcHJvYmxlbSB3aGVuIHJvdW5kLXRyaXBwaW5nCisJICBmcm9tL3RvIG1lbW9yeQorCSogeGluY2x1ZGUuYzogY2hhc2VkIG1lbWxlYWssIGZpeGVkIGEgYmFzZSBwcm9ibGVtCisJKiB4cG9pbnRlci5jOiBhZGRlZCB4bWxYUHRyQnVpbGRSYW5nZU5vZGVMaXN0KCksIGZpbmlzaGVkID8gCisJICB4bWxYUHRyQnVpbGROb2RlTGlzdCgpCisJKiBUT0RPOiB1cGRhdGVkCisJKiBNYWtlZmlsZS5hbSB0ZXN0L1hJbmNsdWRlL2RvY3MgdGVzdC9YSW5jbHVkZS9lbnRzIHJlc3VsdC9YSW5jbHVkZToKKwkgIGFkZGluZyBhIGZpcnN0IHNtYWxsIHNldCBvZiByZWdyZXNzaW9uIHRlc3RzIGZvciBYSW5jbHVkZQorCitUdWUgTm92ICA3IDE1OjExOjM0IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbmFub2h0dHAuW2NoXTogYXBwbGllZCBXYXluZSBEYXZpc29uIHBhdGNoZXMgdG8gYWNjZXNzCisJICB0aGUgV1dXLUF1dGhvcml6YXRpb24gaGVhZGVyLgorCSogcGFyc2VyLmM6IENsb3NlZCBCdWcjMzA4NDc6IFByb2JsZW1zIHdoZW4gc3dpdGNoaW5nIGVuY29kaW5nCisJICBpbiBzaG9ydCBmaWxlcyBieSBhcHBseWluZyBTaW1vbiBCZXJnJ3MgcGF0Y2guCisJKiB2YWxpZC5jOiBmaXhlZCBhIHZhbGlkYXRpb24gcHJvYmxlbQorCSogaGFzaC5jIHBhcnNlci5oIHBhcnNlckludGVybmFscy5oIHRlc3RIVE1MLmMgdGVzdFNBWC5jIHRyZWUuaAorCSAgeG1sZXJyb3IuaCB4bWxtZW1vcnkuaCB4bWx2ZXJzaW9uLmguaW46IGFwcGxpZWQgYSBETEwgcGF0Y2ggZnJvbQorCSAgV2F5bmUgRGF2aXNvbgorCSogeHBvaW50ZXIuW2NoXTogYWRkZWQgZmlyc3QgdmVyc2lvbiBvZiB4bWxYUHRyQnVpbGROb2RlTGlzdCgpCisJICBuZWVkIHRvIGJlIGV4dGVuZGVkIHRvIG5vbiBmdWxsIG5vZGVzIHNlbGVjdGlvbnMuCisJKiB4aW5jbHVkZS5jOiBzdGFydHMgdG8gd29yayBkZWNlbnRseQorCitNb24gTm92ICA2IDE3OjIyOjQ2IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5bY2hdIHhpbmNsdWRlLltjaF0geG1sbGludC5jIGNvbmZpZ3VyZS5pbiB2YWxpZC5jCisJICBkZWJ1Z1hNTC5jIHhtbHZlcnNpb24uaC5pbjogU3RhcnRlZCBhZGRpbmcgWEluY2x1ZGUgc3VwcG9ydCwKKwkgIHRoaXMgaXMgYSBuZXcgeG1sbGludCBvcHRpb24KKwkqIHRyZWUuYyB4cGF0aC5jOiBhcHBsaWVkIFRPTSBwYXRjaGVzIGZvciBYUGF0aAorCSogeHBvaW50ZXIuYzogZml4ZWQgYSBjb3VwbGUgb2YgZXJyb3JzLgorCSogdXJpLmM6IGFkZGVkIGFuIGVzY2FwaW5nIGZ1bmN0aW9uIG5lZWRlZCBmb3IgeGluY2x1ZGUKKwkqIHRlc3RYUGF0aC5jIGhhc2guYyBIVE1MdHJlZS5jOiBtaW5vciBjbGVhbnVwcyByYWlzZWQgYnkKKwkgIG5ldyB3YXJuaW5nIGZyb20gUkg3MCBnY2MncyB2ZXJzaW9uCisKK1R1ZSBPY3QgMzEgMTQ6MTQ6MTMgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGxvb3Agb24gaW52YWxpZCBjaGFyIGluIHNjcmlwdHMKKwkqIHBhcnNlci5jOiB1cGRhdGUgdG8gZGVzY3JpcHRpb24gb2YgeG1sSU9QYXJzZURURCgpCisJKiBsaWJ4bWwubTQgeG1sdmVyc2lvbi5oLmluOiBjaGFuZ2VzIGNvbnRyaWJ1dGVkIGJ5CisJICBNaWNoYWVsIFNjaG1laW5nIDxtLnNjaG1laW5nQGludGVybmV0LWZhY3RvcnkuZGU+CisJKiBjb25maWd1cmUuaW46IHByZXBhcmluZyBmb3IgMi4yLjcKKwkqIE1ha2VmaWxlLmFtOiB0cnlpbmcgdG8gYXZvaWQgIGNvbmZpZy5oIGFuZCBhY2NvbmZpZy5oCisJICBiZWluZyBpbmNsdWRlZCBpbiB0aGUgZGlzdHJpYgorCSogY29uZmlndXJlLmluOiByZWxlYXNlZCAyLjIuNworCitNb24gT2N0IDMwIDE3OjA4OjEwIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5bY2hdIGRlYnVnWE1MLmMgcGFyc2VySW50ZXJuYWxzLmMgeHBhdGguYzogRGVwcmVjYXRlZCBQaSdzCisJICBsaWtlIG5hbWVzcGFjZXMgZm9yIGdvb2QuIFVuaWZpZWQgeG1sTnMgYW5kIHhtbE5vZGUgc29tZXdoYXQuCisKK01vbiBPY3QgMzAgMTY6MjY6NDkgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuW2NoXTogYWRkZWQgeG1sSU9QYXJzZURURCgpCisJKiB4cG9pbnRlci5jOiBhZGRlZCBzdXBwb3J0IGZvciB0aGUgMiBleHRyYSBwYXJhbWV0ZXJzIG9mCisJICBzdHJpbmctcmFuZ2UsIGZpeGVkIGEgc3Rvb3BpZCBlcnJvciB3aGVuICcwJyB3YXMgcHJlc2VudAorCSAgaW4gWFBvaW50ZXIgZXhwcmVzc2lvbnMKKwkqIHRlc3QvWFBhdGgveHB0ci9zdHJyYW5nZTIgcmVzdWx0L1hQYXRoL3hwdHIvc3RycmFuZ2UyOiBhZGRlZAorCSAgdGVzdHN1aXRlIGZvciB0aGUgYWJvdmUKKworTW9uIE9jdCAzMCAxMDoyNjo0MyBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGxpYnhtbC5zcGVjLmluOiBpbXByb3ZlZCBwYWNrYWdlIGRlc2NyaXB0aW9ucworCitTdW4gT2N0IDI5IDE5OjAzOjExIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeHBhdGguYyB4cGF0aEludGVybmFscy5oOiBhcHBsaWVkIGEgbGFyZ2UgY2xlYW5pbmcgcGF0Y2gKKwkgIGZyb20gVE9NIDxwdGl0dG9tQGZyZWUuZnI+LCBpdCBhbHNvIGFkZCBuYW1lc3BhY2Ugc3VwcG9ydAorCSAgZm9yIGZ1bmN0aW9uIGFuZCB2YXJpYWJsZXMgcmVnaXN0cmF0aW9uLgorCitTdW4gT2N0IDI5IDE4OjUxOjQ2IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdXJpLmM6IFdheW5lIERhdmlzb24ncyBwYXRjaCBmaXhpbmcgeG1sQnVpbGRVUkkoKQorCSogTWFrZWZpbGUubWluZ3c6IFdheW5lIERhdmlzb24ncyB1cGRhdGUgYWRkaW5nIGhhc2guYworCitTdW4gT2N0IDI5IDE4OjM4OjEyIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeHBhdGguYzogZml4ZWQgdGhlIHJvb3QgZXZhbHVhdGlvbiBwcm9ibGVtcworCSogSFRNTHBhcnNlci5jIHJlc3VsdC9IVE1ML2RvYzMuaHRtOiBmaXhlZCB0aGUgcHJvYmxlbSBvZiBub24KKwkgIGlnbm9yYWJsZSBzcGFjZXMgd2l0aCA8Yj4gPGJvbGQ+IDxlbT4KKwkqIHRyZWUuYzogZml4ZWQgYSBsb29wIGluIHhtbFNlYXJjaE5zQnlIcmVmKCkKKworRnJpIE9jdCAyNyAxODo1NzozMiBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB4cGF0aC5jOiBhcHBsaWVkIGFub3RoZXIgWFBhdGggcGF0Y2ggZnJvbSBUT00gCisJKiB4cGF0aC5jIGluY2x1ZGUvbWFrZWZpbGUuYW06IGFwcGxpZWQgYW5vdGhlciBwYXRjaCBmcm9tIAorCSAgY2hpbmFAdGhld3JpdHRlbndvcmQuY29tIChjbGVhbnVwIG9uIElSSVgpLgorCitGcmkgT2N0IDI3IDEzOjQ1OjI4IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbC1jb25maWcuMTogcmVjZWl2ZWQgYSBmaXhlZCB2ZXJzaW9uIGZyb20gRnJlZHJpayBIYWxsZW5iZXJnCisJICA8aGFsbG9uQGx5c2F0b3IubGl1LnNlPgorCitUaHUgT2N0IDI2IDE2OjA1OjI1IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhwYXRoLmMgdGV4dFhQYXRoLmMgeHBhdGhJbnRlcm5hbHMuaDogYXBwbGllZCBUT00gPHB0aXR0b21AZnJlZS5mcj4KKwkgIGNsZWFudXAgcGF0Y2ggZm9yIFhQYXRoCisKK1dlZCBPY3QgMjUgMjE6MzE6MTAgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGF0Y2hlZCB0byByZWRpcnJlY3QgYWxsICJvdXQgb2YgY29udGV4dCIgZXJyb3IgbWVzc2FnZXMgdG8KKwkgIGEgcmVjb25maWd1cmFibGUgcm91dGluZS4gVGhlIGNoYW5nZXMgYXJlOgorCSogeG1sZXJyb3IuaCA6IGFkZGVkIHRoZSBleHBvcnQgb2YgYW4gZXJyb3IgY29udGV4dCB0eXBlICh2b2lkICopCisJICBhbiBlcnJvciBoYW5kbGVyIHR5cGUgeG1sR2VuZXJpY0Vycm9yRnVuYyB0aGVyZSBpcyBhbiBpbnRlcmZhY2UKKwkgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmModm9pZCAqY3R4LCB4bWxHZW5lcmljRXJyb3JGdW5jIGhhbmRsZXIpOworCSAgdG8gcmVzZXQgdGhlIGVycm9yIGhhbmRsaW5nIHJvdXRpbmUgYW5kIGl0cyBhcmd1bWVudAorCSAgKGJ5IGRlZmF1bHQgaXQncyBlcXVpdmFsZW50IHRvIHJlc3BlY3RpdmVseSBmcHJpbnRmIGFuZCBzdGRlcnIuCisJKiBhbGwgdGhlIGMgZmlsZXM6IGFsbCB3aWxkIGFjY2Vzc2VzIHRvIHN0ZGVyciBvciBzdGRvdXQgd2l0aGluCisJICB0aGUgbGlicmFyeSBoYXZlIGJlZW4gcmVwbGFjZWQgdG8gY2FsbHMgdG8gdGhlIGhhbmRsZXIuCisKK1dlZCBPY3QgMjUgMTU6Mjc6MTkgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluOiByZWxlYXNlIDIuMi42CisJKiB4cGF0aC5bY2hdIHhwb2ludGVyLmMgeHBhdGhJbnRlcm5hbHMuaDogYWRkZWQgeHBhdGhJbnRlcm5hbHMuaAorCSAgZXhwb3J0aW5nIHRoZSBpbm5lciBmdW5jdGlvbnMgb2YgeHBhdGggZm9yIGV4dGVuc2lvbiBtb2R1bGVzCisJKiBkb2MvKjogdXBkYXRlZCBhbmQgcmVidWlsdCB0aGUgZG9jCisKK1dlZCBPY3QgMjUgMTI6NDg6NTUgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbmFub2h0dHAuYyA6IGFwcGxpZWQgV2F5bmUgSFRUUCBjbGVhbnVwIHBhdGNoCisJKiB0cmVlLltjaF06IGFwcGxpZWQgVE9NIDxwdGl0dG9tQGZyZWUuZnI+IGZvciB4bWxOb2RlU2V0QmFzZSgpCisJICBhbmQgeG1sTm9kZVNldFNwYWNlUHJlc2VydmUoKQorCitXZWQgT2N0IDI1IDEyOjExOjAzIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhwYXRoLmM6IGNsb3NpbmcgYnVnICMyOTI2MAorCitUdWUgT2N0IDI0IDE4OjQ5OjM0IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGhhc2guW2NoXSBkZWJ1Z1hNTC5jOiBleHBhbmRlZC9lbmhhbmNlZCB0aGUgQVBJLCBhZGRlZAorCSAgbXVsdGlrZXkgdHVwbGVzLCBtYWRlIGhhc2ggc3RydWN0dXJlIG9wYXF1ZQorCSogdmFsaWQuW2NoXTogbW92ZWQgZWxlbWVudHMsIGF0dHJpYnV0ZXMsIG5vdGF0aW9ucyBkZWNhbGFyYXRpb25zCisJICBhcyB3ZWxsIGFzIElEIGFuZCByZWZzIHRvIGhhc2ggdGFibGVzLgorCSogZW50aXRpZXMuYzogaGFzaCBjbGVhbnVwCisJKiB4bWxtZW1vcnkuYzogZml4ZWQgYSBkdW1wIHByb2JsZW0gaW4gZGVidWcgbW9kZQorCSogaW5jbHVkZS9NYWtlZmlsZS5hbTogcHJvYmxlbSBwYXNzaW5nIGluIERFU1RESVI9IHZhbHVlcyBwYXRjaAorCSAgZnJvbSBNYXJjIENocmlzdGVuc2VuIDxtYXJjQGNhbGRlcmFzeXN0ZW1zLmNvbT4KKwkqIG5hbm9odHRwLmM6IHJlbW92ZWQgZGVidWdnaW5nIHJlbWFpbnMKKwkqIEhUTUxwYXJzZXIuYzogdGhlIGJvZ3VzIHRhZyBzaG91bGQgYmUgaWdub3JlZCAoV2F5bmUpCisJKiBIVE1McGFyc2VyLmMgcGFyc2VyLmM6IGZpeGluZyBhIG51bWJlciBvZiBwcm9ibGVtcyB3aXRoIHRoZQorCSAgbWFjcm9zIGluIHRoZSAqcGFyc2VyLmMgZmlsZXMgKFdheW5lKS4KKwkqIEhUTUxwYXJzZXIuYzogY2xvc2UgdGhlIHByZXZpb3VzIG9wdGlvbiB3aGVuIG9wZW5pbmcgYSBuZXcgb25lCisJICAoTWFyYyBTYW5mYWNvbikuCisJKiByZXN1bHQvSFRNTC8qOiB1cGRhdGVkIHRoZSBIVE1MIHJlc3VsdHMgYWNjb3JkaW5nbHkKKworU3VuIE9jdCAyMiAxODozOToxOSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBlbnRpdGllcy5bY2hdIHhwYXRoLltjaF0gaGFzaC5bY2hdIGRlYnVnWE1MLmMgdHJlZS5oOiBhZGRlZC9oYWNrZWQKKwkgIGhhc2ggdGFibGVzIGZyb20gQmpvcm4gUmVlc2UgPGJyZWVzZUBtYWlsMS5zdG9mYW5ldC5kaz4uIFN3aXRjaGVkCisJICBYUGF0aCBmdW5jdGlvbnMgYW5kIFhNTCBlbnRpdGllcyB0YWJsZSB0byB0aGVtLiBNb3JlIHRvIGNvbWUuLi4KKwkqIHhtbElPLmM6IGZpeGVkIGxpYnhtbCBjbG9zaW5nIEZJTEVzIGl0IGRpZG4ndCBvcGVuLgorCitTdW4gT2N0IDIyIDEzOjU5OjUwIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYzogY29hbGVzY2UgYWRqYWNlbnQgdGV4dCBub2RlcworCSogdmFsaWQuYzogaGFuZGxpbmcgb2YgYmxhbmsgbm9kZXMgaW4gRFRkIHZhbGlkYXRpb24gKHJhaXNlZAorCSAgYnkgcHJvYmxlbXMgd2l0aCBhIHBvc3RlcmlvcmkgdmFsaWRhdGlvbikuCisJKiBuYW5vaHR0cC5jOiBjaGFuZ2luZyBiZWhhdmlvdXIgb24gSFRUUCB3cml0ZSBzdHVmZi4KKwkqIEhUTUx0cmVlLmM6IGZvcmNlZCBib2R5IGFuZCBodG1sIHRvIGJlIGV4cGxpY2l0ZWx5IGNsb3NlZC4KKwkqIHhwYXRoLmg6IGV4cG9ydGVkIG1vcmUgWFBhdGggZnVuY3Rpb25zLgorCitTdW4gT2N0IDE1IDIyOjI4OjMyIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIFJlbGVhc2Ugb2YgMi4yLjUKKwkqIHhwb2ludGVyLmM6IHJhbmdlKCkgcmFuZ2UtaW5zaWRlIGFuZCBvdGhlciBoZWxwZXIgZnVuY3Rpb25zCisJKiBwYXJzZXJJbnRlcm5hbHMuYzogZml4ZWQgcGVyZiBwcm9ibGVtIHJhaXNlZCBieSByb2xmQHBvaW50c21hbi5kZQorCitTdW4gT2N0IDE1IDE2OjIxOjI3IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIFNBWC5jOiBIVE1MIGF0dHJpYnV0ZXMgbmVlZCBub3JtYWxpemF0aW9uIHRvbyAoQmpvcm4gUmVlc2UpCisJKiBIVE1McGFyc2VyLltjaF06IGFkZGRlZCBodG1sSXNTY3JpcHRBdHRyaWJ1dGUoKQorCitTdW4gT2N0IDE1IDEzOjE4OjM2IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy8qOiByZWJ1aWx0IGRvY3MgcHJlcGFyaW5nIGZvciAyLjIuNSByZWxlYXNlLCBhZGRlZCBVUkkKKwkgIGFuZCBYUG9pbnRlciBtb2R1bGVzCisKK1N1biBPY3QgMTUgMTI6MTM6MzAgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogU0FYLmg6IGNsb3NlZCAjMjUxMDcKKworU3VuIE9jdCAxNSAxMjowNjoxNiBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0ZXN0U0FYLmM6IGZpeGVkIHByb2JsZW0gd2l0aCBjZGF0YSByZXBvcnRpbmcKKwkqIFNBWHJlc3VsdC8qIDogdXBkYXRlZAorCitTdW4gT2N0IDE1IDEyOjAwOjI0IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jIHRlc3Qvd2FwLnhtbCByZXN1bHQvbm9lbnQvd2FwLnhtbCByZXN1bHQvd2FwLnhtbDoKKwkgIENsb3NlZCBidWcgIzI3NDk5LCBhZGRlZCB0byByZWdyZXNzaW9uIHRlc3RzCisJKiBUT0RPOiB1cGRhdGVkCisKK1N1biBPY3QgMTUgMDE6MzQ6MzcgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5jIEhUTUx0cmVlLltjaF0gU0FYLmMgdGVzdEhUTUwuYyB0cmVlLmM6IGZpeGVkIEhUTUwKKwkgIHN1cHBvcnQgZm9yIFNDUklQVCBhbmQgU1RZTEUgd2l0aCBoZWxwIGZyb20gQmpvcm4gUmVlc2UKKwkqIHRlc3QvSFRNTC8qIHJlc3VsdC9IVE1MLyo6IGFkZGVkIHNpbXBsZSB0ZXN0Y2FzZSBhbmQgdXBkYXRlZAorCSAgdGhlIGV4aXN0aW5nIG9uZXMuCisKK0ZyaSBPY3QgMTMgMTg6MjQ6MzEgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeHBhdGguYyB4cG9pbnRlci5jOiBYUG9pbnRlciByZW9yZGVyIG9mIHJhbmdlcyBzdGFydC9lbmQgYW5kCisJICBzdHJpbmctcmFuZ2UgZm9yIGVtcHR5IHN0cmluZ3MKKwkqIHRlc3QvWFBhdGgvZG9jcy9zdHIgdGVzdC9YUGF0aC94cHRyL2NoYXB0ZXJzcmFuZ2UKKwkgIHRlc3QvWFBhdGgveHB0ci9zdHJyYW5nZTogYXVnbWVudGVkIHRoZSBYUG9pbnRlciB0ZXN0c3VpdGUKKworRnJpIE9jdCAxMyAxMjoyMTo0OCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MveG1sLmh0bWwgZG9jL3htbG1lbS5odG1sOiBhZGRlZCBhIG1vZHVsZSBkZXNjcmliaW5nIG1lbW9yeQorCSAgaW50ZXJmYWNlcyBhbmQgdXNlLCB1cGRhdGVkIHRoZSBtYWluIHBhZ2UuCisKK0ZyaSBPY3QgMTMgMDE6MjM6NDggQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmMgeG1sSU8uYzogV2F5bmUgRGF2aXNvbiBXaW4zMiBwYXRjaAorCSAgbmFub2Z0cCBjb2RlIHdvcmsgb24gV2luZG93cyB0b28gbm93CisKK0ZyaSBPY3QgMTMgMDA6NTQ6MzcgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdGVzdFhQYXRoLmMgeHBhdGguW2NoXTogbW92ZWQgc29tZSBkZWJ1ZyBmdW5jdGlvbnMgdG8geHBhdGggY29yZQorCSogeHBvaW50ZXIuYzogaW1wbGVtZW50ZWQgc3RyaW5nLXJhbmdlKCkgYXQgbGVhc3QgYSBnb29kIGZpcnN0IHZlcnNpb24KKwkqIHRlc3QvWFBhdGgvZG9jcy9zdHIgdGVzdC9YUGF0aC94cHRyL3N0cnJhbmdlCisJICByZXN1bHQvWFBhdGgveHB0ci9zdHJyYW5nZTogdGhlIHN0cmluZy1yYW5nZSgpIHRlc3RzCisKK1RodSBPY3QgMTIgMTA6MDI6NTkgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogTWFrZWZpbGUuYW0gaW5jbHVkZS9NYWtlZmlsZS5hbSBpbmNsdWRlL3dpbjMyY29uZmlnLmgKKwkgIHdpbjMyL01ha2VmaWxlLm1pbmd3OiBmaXhlZCBwcm9ibGVtcyByZXBvcnRlZCBieSBXYXluZSBEYXZpc29uCisJICBhbmQgbWFrZSBkaXN0Y2hlY2sKKworVGh1IE9jdCAxMiAwMTo0NDowOCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vaHR0cC5jOiBhZGRlZCB4bWxOYW5vSFRUUFRpbWVvdXQoaW50IGRlbGF5KSwgcmVtb3ZlZCBhIGJ1ZworCSAgeG1sTmFub0hUVFBNZXRob2Qgb24gaW5wdXQgTWltZVR5cGUgVG9ueSBMYW0gPFRvbnkuTGFtQGVuZy5zdW4uY29tPgorCSogeHBvaW50ZXIuYzogc2xpZ2h0IGV4dGVuc2lvbiBvZiB4bWxYUHRyTG9jYXRpb25TZXRNZXJnZQorCitUaHUgT2N0IDEyIDAxOjM3OjUzIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBuYW5vZnRwLmMgbmFub2h0dHAuYyB4bWx2ZXJzaW9uLmguaW4gOgorCSAgcGF0Y2ggZm9yIHNvY2tsZW5fdCBkZXRlY3Rpb24gYnkKKwkgIEFsYmVydCBDaGluLUEtWW91bmcgPGNoaW5hQHRoZXdyaXR0ZW53b3JkLmNvbT4KKworV2VkIE9jdCAxMSAxNzo1Mzo1NyBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0cmVlLmMgdmFsaWQuYyB4bWxsaW50LmM6IEZpeGVkIGEgZmV3IHBvc3R2YWxpZGF0aW9uIGJ1Z3MKKwkgIGFuZCBhZGRlZCBhIC0tZHRkdmFsaWQgb3B0aW9uIHRvIHhtbGxpbnQgdXNlZCB0byB0ZXN0IGl0CisKK1dlZCBPY3QgMTEgMTU6MDE6MjkgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeG1sLWNvbmZpZy4xIE1ha2VmaWxlLmFtIGxpYnhtbC5zcGVjLmluOiBhZGRpbmcgYSBtYW4gcGFnZSBmb3IKKwkgIHhtbC1jb25maWcgYnkgRnJlZHJpayBIYWxsZW5iZXJnIDxoYWxsb25AbHlzYXRvci5saXUuc2U+CisKK1dlZCBPY3QgMTEgMTI6NDE6MzAgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeHBhdGguW2NoXSB4cG9pbnRlci5bY2hdOiB3b3JrZWQgb24gWFBhdGggZnVuY3Rpb25zIGFuZCB2YXJpYWJsZQorCSAgaGFuZGxpbmdzIChyZWdpc3RyYXRpb24sIGxvb2t1cCwgY2xlYW51cCkKKworV2VkIE9jdCAxMSAwMTo0Njo0NCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBjb25maWd1cmUuaW4gTWFrZWZpbGUuYW0gaW5jbHVkZS9tYWtlZmlsZS5hbTogYWRkaW5nIFhQb2ludGVyCisJICBhbmQgWFB0cnRlc3RzIHRhcmdldAorCSogeHBvaW50ZXIuW2NoXSA6IG5ldyBmaWxlcyBmb3IgWFBvaW50ZXIgc3VwcG9ydAorCSogdGVzdC9YUGF0aC94cHRyIHJlc3VsdC9YUGF0aC94cHRyOiBhZGRlZCBYUG9pbnRlciB0ZXN0c3VpdGUgYW5kCisJICBtb3JlIFhQYXRoIHRlc3RzCisKK1dlZCBPY3QgMTEgMDE6MjM6MjUgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluOiBmaXhlZCwgdmVyeSBicm9rZW4sIG1ha2UgZGlzdGNoZWNrIHdvcmtzIGFnYWluCisKK1dlZCBPY3QgMTEgMDI6NTM6MTAgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogTW9yZSB3b3JrIHRvd2FyZCAyLjIuNSwgaW50ZWdyYXRlZCBhIG51bWJlciBvZiBwYXRjaGVzCisJKiBjb25maWd1cmUuaW4gTWFrZWZpbGUuYW0gd2luMzJjb25maWcuaC5pbjogdHJ5aW5nIHRvIGNsZWFudXAKKwkgIG1ha2UgZGlzdGNoZWNrIC4uLi4gaHVoIC4uLgorCSogaW5jbHVkZS9NYWtlZmlsZS5hbSBpbmNsdWRlL3dpbjMyY29uZmlnLmg6IG5ldyBkaXJlY3RvcnkKKwkgIGZvciBpbmNsdWRlcworCSogd2luMzIvTWFrZWZpbGUubWluZ3cgd2luMzIvUkVBRE1FLk1TRGV2IHdpbjMyL2xpYnhtbDIvbGlieG1sMi5kc3AKKwkgIHVwZGF0ZWQgdGVoIG1ha2VmaWxlcyBhbmQgaW5zdHJ1Y3Rpb25zIGZvciBXSU4zMgorCSogeHBhdGguYzogc21hbGwgZml4ZXMKKwkqIHRlc3QvWFBhdGgvIHJlc3VsdHMvWFBhdGg6IHVwZGF0ZWQgdGhlIHRlc3RjYXNlcyBhbmQgcmVzdWx0cworCSogSFRNTHBhcnNlci5jIG5hbm9odHRwLmMgdGVzdFhQYXRoLmM6IGluY29ycG9yYXRlZCBwcm92aWRlZCBvcgorCSAgc3VnZ2VzdGVkIHBhdGNoZXMKKwkqIHZhbGlkLmM6IGZpeGVkIGFuIElEIGJ1ZworCitNb24gT2N0ICA5IDE0OjI4OjU2IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIG1vdmVkIHhtbC1lcnJvci5oIHRvIHhtbGVycm9yLmg6IHNlZW1zIHRoaXMgYWxsb3dlZCB0byBieXBhc3MKKwkgIHRoZSBhdXRvbWFrZSBidWcgd2hlcmUgd3JvbmcgZGVwZW5kZW5jaWVzIHdlcmUgZ2VuZXJhdGVkLgorCSogeHBhdGguW2NoXTogd29ya2VkIG9uIFhQb2ludGVyCisKK0ZyaSBPY3QgIDYgMTI6NTg6MDQgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluIE1ha2VmaWxlLmFtOiAyLjIuNSwgc2hpcCB0aGUgaW5jbHVkZSBpbiBhbgorCSAgaW5jbHVkZS9saWJ4bWwgc3ViZGlyZWN0b3J5LCB1c2Ugc3ltbGlua3Mgd2hlbiB1c2luZyBDVlMKKwkqIHRlc3RTQVguYzogZml4ZWQgc21hbGwgYnVnCisJKiB0ZXN0WFBhdGguYzogY2hhbmdlZCB0aGUgd2F5IHRlc3RmaWxlcyBhcmUgcGFyc2VkCisJKiBkZWJ1Z1hNTC5jOiBzYW1lIGtpbmQgb2YgY2xlYW51cCB3aGVuIHBhcnNpbmcgYW4gYXJndW1lbnQgZXhwcmVzc2lvbgorCSAgWFBhdGgvWFBvaW50ZXJzIGNhbiBoYXZlIGJsYW5rcyBlbWJlZGRlZAorCSogeHBhdGguW2NoXTogbW9yZSBjbGVhbnVwLCByZW9yZ3MgZm9yIFhQb2ludGVyIHdvcmsKKwkqIHBhcnNlckludGVybmFscy5jIHBhcnNlci5jIEhUTUxwYXJzZXIuYzogZml4ZWQgd3JvbmcgaW5jbHVkZQorCSogd2luMzIvUkVBRE1FLk1TRGV2IHdpbjMyL2xpYnhtbDIvbGlieG1sMi5kc3A6IFdpbmRvd3Mgc3R1ZmYKKworVGh1IE9jdCAgNSAxODoxMzoxNSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkZWJ1Z1hNTC5jIHRlc3RYUGF0aC5jIHhwYXRoLltjaF06IGdvdCBwaXNzZWQgYnkgc29tZSBuYXN0eW5lc3MKKwkgIGluIHRoZSBYUGF0aCBlbmdpbmUsIHJld3JvdGUgbGFyZ2UgcGFydHMgb2YgaXQsIG5vdyBpdCdzIGZhcgorCSAgY2xlYW5lciBhbmQgaW4gc3luYyB3aXRoIHRoZSBSRUMgbm90IGFuIG9sZCBXRC4gRml4ZWQgYSBwYXJzaW5nCisJICBwcm9ibGVtIGluIHRoZSBpbnRlcmFjdGl2ZSBYTUwgc2hlbGwgZm91bmQgd2hlbiB0ZXN0aW5nIFhQYXRoLgorCitXZWQgT2N0ICA0IDE1OjI1OjUzIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRlYnVnWE1MLmMgdGVzdFhQYXRoLmMgeHBhdGguW2NoXTogTW9yZSB3b3JrIG9uIFhQYXRoL1hwb2ludGVyLAorCSAgaW5jb3Jwb3JhdGVkICIoVE9NKSIgPHB0aXR0b21AZnJlZS5mcj4gcGF0Y2hlcyByZWJ1aWx0IHRoZSBYUGF0aAorCSAgZXhhbXBsZXMgd2l0aCB0aGUgZXh0cmEgdGVzdAorCitXZWQgT2N0ICA0IDE0OjM5OjAxIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jIHhtbElPLmMgeG1sSU8uaDogZml4ZWQgYnVnIDI2NjUwLCBhbmQgaW1wcm92ZWQKKwkgIHRoZSBnbG9iYWwgaW5pdCBmdW5jdGlvbi4KKworVHVlIE9jdCAgMyAxMToyODo1MiBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmM6IERvb2hoaCwgYXR0cmlidXRlIG5hbWUgcGFyc2luZyB3YXMgc3RpbGwgY2FzZQorCSAgc2Vuc2l0aXZlICEgRml4ZWQgdGhpcyAuLi4KKwkqIHJlc3VsdC9IVE1MLyogOiB1cGRhdGVkIHRoZSB0ZXN0cyByZXN1bHRzIGFjY29yZGluZ2x5CisKK01vbiBPY3QgIDIgMjM6NDc6MzIgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeHBhdGguW2NoXSBkZWJ1Z1hNTC5jIHRlc3RYUGF0aC5jOiBmaXhlZCB0aGUgWFBhdGggZXZhbHVhdGlvbgorCSAgZW5naW5lLCBzaG91bGQgYmUgZmFyIG1vcmUgc3RhYmxlLCBpbmNvcnBvcmF0ZWQgYSBuZXcgdmVyc2lvbiBvZgorCSAgcHJlY2VkaW5nL2ZvbGxvd2luZyBheGlzLCBuZWVkIHRlc3RpbmcKKwkqIHVyaS5jOiBmaXhlZCBmaWxlOi8vL2M6L2EvYi9jIHByb2JsZW0KKwkqIHRlc3QvWFBhdGgvdGVzdHMvaWRzaW1wbGU6IGF1Z21lbnRlZCB0aGUgWFBhdGggdGVzdHMKKworU3VuIE9jdCAgMSAyMjozMzowMCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MvKiByZWJ1aWxkaW5nIGRvY3MgZm9yIDIuMi40IHJlbGVhc2UKKworU3VuIE9jdCAgMSAyMjoxNjozMyBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBjb25maWd1cmUuaW46IHJlbGVhc2luZyAyLjIuNAorCSogcGFyc2VyLltjaF06IGFkZGVkIHhtbFN0ckVxdWFsKCkKKwkqIEhUTUxwYXJzZXIuYyBIVE1MdHJlZS5jIFNBWC5jIGRlYnVnWE1MLmMgZW50aXRpZXMuYyBwYXJzZXIuYworCSAgdHJlZS5jIHZhbGlkLmMgeGxpbmsuYyB4cGF0aC5jOiBjb252ZXJ0ZWQgYWxsICF4bWxTdHJjbXAgdG8KKwkgIHVzZSB4bWxTdHJFcXVhbCBpbnN0ZWFkCisJKiBUT0RPOiB1cGRhdGVkCisJKiBhZGRlZCBhbiBYUGF0aCB0ZXN0CisKK1N1biBPY3QgIDEgMjA6MTk6MzkgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5jOiBmaXhlZCBodG1sU3RhcnRDbG9zZUluZGV4aW5pdGlhbGl6ZWQgaW5pdAorCSogZW50aXRpZXMuaDogZXhwb3J0ZWQgeG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllcworCSogcGFyc2VyLltjaF0gOiBhZGRlZCB4bWxJbml0UGFyc2VyKCkKKwkqIHBhcnNlckludGVybmFscy5oIDogaGFkIHRvIGV4cG9ydCBodG1sSW5pdEF1dG9DbG9zZSgpCisKK1N1biBPY3QgIDEgMTY6Mjg6MjIgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeHBhdGguW2NoXSA6IGZpeGVkIHNvbWUgc2VyaW91cyBYUGF0aCBQcmVkaWNhdGUgZXZhbHVhdGlvbgorCSAgcHJvYmxlbXMKKwkqIE1ha2VmaWxlLmFtIDogYWRkZWQgWFBhdGggcmVncmVzc2lvbiB0ZXN0cyB0byBub3JtYWwgdGVzdHMKKwkqIHVyaS5jOiBmaXhlZCBhIHByb2JsZW0gd2l0aCBsb2NhbCBwYXRocywgY2xlYW51cAorCSogcGFyc2VyLmM6IGZpeGVkIGEgcHJvYmxlbSB3aXRoIGxhcmdlIENEYXRhIHNlY3Rpb25zCisKK1NhdCBTZXAgMzAgMTY6MzU6NTQgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluIHhtbC1jb25maWcuaW46IHBhdGNoIGZyb20gIkJlbiBUYXlsb3IiCisJICA8c29sN3g4NkBob3RtYWlsLmNvbT4gZm9yIHNvbGFyaXMgc2hhcmVkIGxpYnMgbG9va3VwCisKKzIwMDAtMDktMzAgIE1hcnRpbiBCYXVsaWcgIDxiYXVsaWdAc3VzZS5kZT4KKworCSogbGlieG1sLTIuMC5wYy5pbjogUHJvdmlkZSBwa2ctY29uZmlnIHNjcmlwdC4KKworCSogY29uZmlndXJlLmluOiBDcmVhdGUgdGhlIGxpYnhtbC0yLjAucGMgc2NyaXB0IGZyb20gdGhlCisJbGlieG1sLTIuMC5wYy5pbiB0ZW1wbGF0ZXMuCisJKiBNYWtlZmlsZS5hbSAocGtnY29uZmlnX0RBVEEpOiBJbnN0YWxsIHRoZSBsaWJ4bWwtMi4wLnBjCisJc2NyaXB0IGluIGAkKGxpYmRpcikvcGtnY29uZmlnJy4KKworTW9uIFNlcCAyNSAxNjoyMzo0MSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmMgcGFyc2VyLmMgdHJlZS5jIHRyZWUuaDogQXZvaWRpbmcgYSBmZXcgd2FybmluZworCSAgd2hlbiBjb21waWxpbmcgd2l0aCBNU0MKKworU3VuIFNlcCAyNCAyMDozMjo1MiBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB4cGF0aC5jOiBwYXRjaCBmb3Igbm9ybWFsaXplLXN0cmluZygpIHN1YnN0cmluZy1iZWZvcmUoKSwKKwkgIHN1YnN0cmluZy1hZnRlcigpIGFuZCB0cmFuc2xhdGUoKSBmdW5jdGlvbnMgZnJvbSBCam9ybiBSZWVzZQorCSAgPGJyZWVzZUBtYWlsMS5zdG9mYW5ldC5kaz4KKwkqIGxpYnhtbC5tNCBNYWtlZmlsZS5hbTogYWRkZWQgbGlieG1sLm00IGZyb20gRGViaWFuID8KKwkgIEZyZWRyaWsgSGFsbGVuYmVyZyA8aGFsbG9uQGx5c2F0b3IubGl1LnNlPgorCSogVE9ETzogdXBkYXRlZAorCitTdW4gU2VwIDI0IDEwOjAwOjQ5IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbHZlcnNpb24uaC5pbiBuYW5vZnRwLmMgbmFub2h0dHAuYzogdHJheWluZyB0byB3b3JrIG91dCB0aGUKKwkgIHByb2JsZW0gb2Ygc29ja2xlbl90IGJlaW5nIHVuZGVmaW5lZCBvbiBhIG51bWJlciBvZiBwbGF0Zm9ybXMKKwkqIGRlYnVnWE1MLmM6IGZpeGVkIGEgY29tcGlsYXRpb24gcHJvYmxlbSB3aGVuIHdpdGhvdXQgc25wcmludGYKKworU2F0IFNlcCAyMyAxMjoxOTo0NSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmMgdXJpLmM6IEFub3RoZXIgcGF0Y2ggZnJvbSBXYXluZSBEYXZpc29uLCBjb3JyZWN0aW5nCisJICBhbiBVUkkgYnVnIGFuZCBhIGZpeCBmb3IgdGhlIGNvbnRyb2wtY2hhcmFjdGVyLWluZHVjZWQgaW5maW5pdGUgbG9vcAorCSogbmFub2h0dHAuYzogcHJldmVudGl2ZSBmaXggZm9yIGNvbXBpbGluZyBvbiBXSU4zMgorCitGcmkgU2VwIDIyIDE4OjA2OjA4IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbGludC5jOiBjbG9zaW5nIGJ1ZyAjMjUwMDAKKworRnJpIFNlcCAyMiAxNDoxNzo1MyBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB4bWxJTy5oIHRyZWUuaDogbWFkZSB4bWxOb2RlRHVtcCgpIGFuZCB4bWxOb2RlRHVtcE91dHB1dCgpIHB1YmxpYworCSogcGFyc2VyLltjaF0gbmFub2h0dHAuYyBIVE1MdHJlZS5jIEhUTUxwYXJzZXIuYyB0cmVlLmM6IGFwcGxpZWQgYW5kCisJICBtb2RpZmllZCBzbGlnaHRseSBXYXluZSBEYXZpc29uIHBhdGNoIGFkZGluZyB4bWxTdHJjYXNlY21wIGFuZAorCSAgcmVsYXRlZCBmdW5jdGlvbiwgZml4aW5nIHhtbFN0cm5jbXAoKSwgYW5kIGFzc29jaWF0ZWQgY2xlYW51cAorCSogcmVzdWx0L0hUTUwvZW50aXRpZXMuaHRtbC5zYXg6IHVwZGF0aW5nIHJlc3VsdAorCitUdWUgU2VwIDE5IDE0OjIwOjEwIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHVyaS5jOiBhcHBsaWVkIHBhdGNoIGZvciBVUkkgZXNjYXBpbmcgZnJvbSBXYXluZSBEYXZpc29uCisJICA8d2F5bmVkQGJsb3JmLm5ldD4KKwkqIHRyZWUuYyBwYXJzZXJJbnRlcm5hbHMuYyBIVE1McGFyc2VyLmM6IG1lbXNldCBjaGVja3MgcGF0Y2hlcworCSAgZnJvbSBEZW5pcyBCYXJiaWVyIDxiYXJiaWVyQGltYWNzLnBvbHl0ZWNobmlxdWUuZnI+CisJKiBIVE1McGFyc2VyLmM6IFVURjggY2hhcmFjdGVycyBpbiBIVE1MIHRhZy1hdHRyaWJ1dGUgdmFsdWVzCisJICBwYXRjaCBmcm9tIFdheW5lIERhdmlzb24KKworU3VuIFNlcCAxNyAxODozNzowMyBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MveG1sLmh0bWwgOiB1cGRhdGVkIHdpdGggbmV3IHJlbGVhc2VzLCBhZGRpbmcgImhvdyB0byBoZWxwIgorCitTdW4gU2VwIDE3IDE3OjU4OjM3IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIFNBWC5jIGRlYnVnWE1MLmMgcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmMgdHJlZS5jIHZhbGlkLmMgeHBhdGguYzoKKwkgIHJlbW92ZWQgYSBmZXcgd2FybmluZ3MgaW4gcGVkYW50aWMgbW9kZSAuLi4KKwkqIHBhcnNlckludGVybmFscy5jIHBhcnNlci5jOiBtb3ZlZCBlbmNvZGluZyBzd2l0Y2hpbmcgZnVuY3Rpb24KKwkgIHRvIHBhcnNlckludGVybmFscy5jCisJKiBjb25maWd1cmUuaW4sIGRvYy9NYWtlZmlsZS5hbSBsaWJ4bWwuc3BlYy5pbjogcmVsZWFzZWQgMi4yLjMKKworU2F0IFNlcCAxNiAyMDoxMjo0MSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmMgcGFyc2VyLmM6IHNldCBjdHh0LT5lcnJObyBiZWZvcmUgY2FsbGluZyB0aGUKKwkgIGVycm9yIG9yIHdhcm5pbmcgaGFuZGxlcnMKKworV2VkIFNlcCAxMyAyMjowMzoxOCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXJJbnRlcm5hbHMuYyBwYXJzZXJJbnRlcm5hbHMuaCBwYXJzZXIuYyBNYWtlZmlsZS5hbToKKwkgIGNyZWF0ZWQgYSBuZXcgbW9kdWxlIHBhcnNlckludGVybmFscy5jLCBtb3ZlZCBtb3N0IG9mIHRoZQorCSAgY29kZSBzaGFyZWQgYnkgdGhlIHZhcmlvdXMgcGFyc2VycyB0aGVyZSwgYXMgd2VsbCBhcworCSAgZGVwcmVjYXRlZCAgY29kZSBmcm9tIHBhcnNlci5jLiBNb3JlIGNsZWFudXAgb2YgcGFyc2VyLmMKKwkqIHVyaS5jOiBmaXhlZCBhIHByb2JsZW0gd2hlbiBVUkkgaXMgTlVMTAorCSogdmFsaWQuYzogc3BlZWR1cCB3aGVuIGxvb2tpbmcgZm9yIGFuIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbgorCitTdW4gU2VwIDEwIDE3OjUzOjQ4IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHVyaS5jIHRyZWUuYyBTQVguYyBwYXJzZXIuYyBlbnRpdGllcy5jIGRlYnVnWE1MLmM6IGZpbmlzaGVkCisJICB0aGUgY2xlYW51cCBvZiB0aGUgY29tcHV0YXRpb24gb2YgVVJJIHJlZmVyZW5jZXMgd2hlbiBzZWVraW5nCisJICBleHRlcm5hbCBlbnRpdGllcy4gVGhlIFVSSSByZWZlcmVuY2Ugc3RyaW5nIGFuZCB0aGUgcmVzdWx0aW5nCisJICBVUkkgYXJlIGJvdGggc3RvcmVkIG5vdy4KKwkqIHBhcnNlci5jIEhUTUxwYXJzZXIuYyB2YWxpZC5jIG5hbm9mdHAuYyBuYW5vaHR0cC5jIHhwYXRoLmM6CisJICBsYXJnZSBzKG4pcHJpbnRmIGNoZWNrcyBhbmQgY2xlYW51cCBmcm9tIERlbmlzIEJhcmJpZXIKKwkgIDxiYXJiaWVyQGltYWNzLnBvbHl0ZWNobmlxdWUuZnI+CisJKiB4bWx2ZXJzaW9uLmguaW4gdHJlZS5oOiBjb3VwbGUgb2YgU0dNTCBkZWNsYXJhdGlvbnMgZm9yIGEKKwkgIHBvc3NpYmxlIGRvY2Jvb2sgbW9kdWxlLgorCSogcmVzdWx0L1ZDLyA6IGEgY291cGxlIG9mIHRlc3Qgb3V0cHV0IGNoYW5nZWQgZHVlIHRvIHRoZSBjaGFuZ2UKKwkgIG9mIHRoZSBlbnRpdGllcyBVUkkKKworU3VuIFNlcCAxMCAxNTo1OTo1OCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuaDogYWRkZWQgYSBfcHJpdmF0ZSBmaWVsZCBmb3IgbGlua2luZyB1c2VyJ3MgZGF0YQorCitTdW4gU2VwIDEwIDE1OjE0OjQzIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jIHBhcnNlckludGVybmFscy5oOiBkZW1hY3JvaWZpZWQgbW9zdCBvZiB0aGUgSVNfWFhYCisJICB0aGUgZ2FpbiBpbiBzaXplIGlzIHNpZ25pZmljYW50IHNvIC4uLgorCitGcmkgU2VwICA4IDIwOjQ4OjI5IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGVudGl0aWVzLmM6IGNhc2VzIHdoZXJlIGxvb2tpbmcgdXAgZW50aXRpZXMgd2l0aCBkb2M9PU5VTEwKKwkgIGNvdmVyZWQKKworVHVlIFNlcCAgNSAxMjo0MToxNSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB1cmkuYzogYXBwbGllZCBXYXluZSBEYXZpc29uIHBhdGNoCisJKiBNYWtlZmlsZS5pbiB0ZXN0L1VSSS91cmkuZGF0YSByZXN1bHQvVVJJL3VyaS5kYXRhOiB1cGRhdGVkIFVSSSB0ZXN0cworCitNb24gU2VwICA0IDEzOjAxOjQ1IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHVyaS5jIHRlc3RVcmkuYzogYXBwbGllZCBXYXluZSBEYXZpc29uIHBhdGNoZXMKKwkqIHRlc3QvVVJJL3VyaS5kYXRhIHJlc3VsdC9VUkkvdXJpLmRhdGE6IGZpcnN0IHNldCBvZiB0ZXN0cy9yZXN1bHRzCisJKiBNYWtlZmlsZS5pbjogYWRkZWQgVVJJdGVzdCBhbmQgaW5jbHVkZWQgdGhlbmluICJtYWtlIHRlc3RzIgorCitTdW4gU2VwICAzIDE5OjE5OjI5IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbHZlcnNpb24uaC5pbjogY2xvc2VkIGJ1ZyAyMjk0MQorCitUaHUgQXVnIDMxIDE2OjU1OjU1IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy94bWxpby5odG1sOiBhZGRlZCBkb2MgYW5kIGV4YW1wbGUgZm9yIGVudGl0eSBsb2FkZXIKKwkgIHJlZGVmaW5pdGlvbi4KKworVGh1IEF1ZyAzMSAxNDo1OToyOCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MveG1saW8uaHRtbCBkb2MveG1sLmh0bWw6IGFkZGVkIGEgZG9jIG9uIHRoZSBJL08gbWVjaGFuaXNtCisJICB1c2VkIGJ5IGxpYnhtbAorCitUdWUgQXVnIDI5IDIwOjIyOjUzIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jOiBGaXhlZCBidWcgb24gaW52YWxpZCBvbnRlbnQgY2hhcmFjdGVycyBhbmQgd2hlbiB1c2luZworCSAgcHVzaC4KKwkqIHhtbGxpbnQuYzogZml4ZWQgeG1sbGludCBlbmRsaW5nIG9mIGVycm9ycyBpbiBwdXNoIG1vZGUKKworVHVlIEF1ZyAyOSAxMToyNDo0OCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLmMgdGVzdEhUTUwuYzogYXBwbGllZCB0d28gbmV3IHBhdGNoZXMgZnJvbQorCSAgV2F5bmUgRGF2aXNvbiA8d2F5bmVkQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKwkqIHJlc3VsdC9IVE1MLyouc2F4OiByZWdlbmVyYXRlZCBIVE1MIFNBWCBvdXRwdXQKKwkqIHBhcnNlci5jOiBtb3JlIGNsZWFudXAuCisKK01vbiBBdWcgMjggMTE6NTg6MTIgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5bY2hdIHRlc3RIVE1MLmM6IGFwcGxpZWQgdGhlIHNlY29uZCBzZXQgb2YKKwkgIHBhdGNoZXMgZnJvbSBXYXluZSBEYXZpc29uIDx3YXluZWRAdXNlcnMuc291cmNlZm9yZ2UubmV0PiwKKwkgIGFkZGluZyBodG1sRW5jb2RlRW50aXRpZXMoKQorCSogSFRNTHBhcnNlci5jOiBmaXhlZCBhbiBpZ25vcmFibGUgd2hpdGUgc3BhY2UgZGV0ZWN0aW9uIGJ1ZworCSAgb2NjdXJpbmcgd2hlbiBwYXJzaW5nIHdpdGggU0FYIG9ubHkKKwkqIHJlc3VsdC9IVE1MLyouc2F4OiB1cGRhdGVkIHNpbmNlIHRoZSBvdXRwdXQgaXMgbm93IEhUTUwKKwkgIGVuY29kZWQuLi4KKworTW9uIEF1ZyAyOCAwMDozODozMSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIVE1McGFyc2VyLltjaF06IGFwcGxpZWQgc29tZSBvZiBXYXluZSBEYXZpc29uCisJICA8d2F5bmVkQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gcGF0Y2hlcworCitTdW4gQXVnIDI3IDIyOjE0OjAxIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIFNBWC5jIHRyZWUuYyBkZWJ1Z1hNTC5jOiBmaXhlZCBib2d1cyBiZWhhdmlvdXIgd2hlbiBhbgorCSAgdW5kZWNsYXJlZCBuYW1lc3BhY2UgcHJlZml4IHdhcyB1c2VkLCBhZGRlZCBhIHdhcm5pbmcuCisJICBDbGVhbmVkIHVwIHN1cHBvcnQgdy5yLnQuIGVudGl0aWVzLCBzcGlsbGluZyBvdXQgYSB3YXJuaW5nCisJICBhbmQgYmVpbmcgcGVkYW50aWMgb24gbG9va3Vwcy4KKwkqIHRlc3Qvd2FybmluZy9lbnQ5IDogYWRkZWQgdGVzdGNhc2UgZm9yIHByZXZpb3VzIGV4YW1wbGUuCisJKiBUT0RPOiB1cGRhdGVkCisJKiBwYXJzZXJJbnRlcm5hbHMuaCBwYXJzZXIuYzogY2hhbmdlZCB0aGUgd2F5IG5hbWVzIGFyZSBwYXJzZWQKKwkgIG5vdyBhbGxvdyBpbmZpbml0ZSBzaXplIGFuZCBkZWNyZWFzZSBwZW5hbHR5IGZvciBub3JtYWwgdXNlCisJKiBwYXJzZXIuYzogU3RhcnRlZCBhIGJpZyBjbGVhbnVwL2NoZWNrIG9mIHRoZSBwYXJzZXIgY29kZSwKKwkgIGZpeGVkIHNvbWUgb2YgdGhlIG1vc3QgdG9ydHVvdXMgZW50aXR5IGNvZGUsIHNwb3R0ZWQgY29kZQorCSAgdW51c2VkIGFueW1vcmUKKwkqIHRlc3QvKjogYWRkZWQgdGVzdHMgZm9yIHZlcnkgbG9uZyBuYW1lcyBhbmQgcmVsYXRlZCBuYXN0eQorCSAgdGhpbmdzLgorCitTYXQgQXVnIDI2IDIzOjMxOjA0IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy9lbmNvZGluZy5odG1sOiBhZGRlZCBlbmNvZGluZyBhbGlhc2VzIGRvYworCSogZG9jL3htbC5odG1sOiB1cGRhdGVzCisJKiBlbmNvZGluZy5bY2hdOiBhZGRlZCBFbmNvZGluZ0FsaWFzZXMgZnVuY3Rpb25zCisJKiBlbnRpdGllcy5bY2hdIHZhbGlkLltjaF0gZGVidWdYTUwuYzogcmVtb3ZlZCB0d28gc2VyaW91cworCSAgYm90dGxlbmVjayBhZmZlY3RpbmcgbGFyZ2UgRFREcyBsaWtlIERvY2Jvb2sKKwkqIHBhcnNlci5bY2hdIHhtbGxpbnQuYzogYWRkZWQgYSBwZWRhbnRpYyBvcHRpb24sIHdpbGwgYmUKKwkgIHVzZWZ1bAorCSogU0FYLmM6IHJlZGVmaW5pdGlvbiBvZiBlbnRpdGllcyBpcyByZXBvcnRlZCBpbiBwZWRhbnRpYyBtb2RlCisJKiB0ZXN0SFRNTC5jOiB1bmluaXRpYWxpemVkIHdhcm5pbmcgZnJvbSBnY2MKKwkqIHVyaS5jOiBmaXhlZCBhIGNvdXBsZSBvZiBidWdzCisJKiBUT0RPOiBhZGRlZCBpc3N1ZSByYWlzZWQgYnkgTWljaGFlbAorCitXZWQgQXVnIDIzIDAxOjUwOjUxIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy9lbmNvZGluZy5odG1sOiBwcm9wYWdhdGVkIE1hcnRpbiBEdWVyc3Qgc3VnZ2VzdGlvbnMKKworV2VkIEF1ZyAyMyAwMDoyMzo0MSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYzogRml4ZWQgQnVnIzIxNTUyOiBsaWJ4bWwgZmFpbHMgdG8gZGVjb2RlICZhbXA7CisJKiB1cmkuYyB0ZXN0VXJpLmMgcGF0Y2hlcywgYnkgTWFyYyBTYW5mYWNvbiAoMSBsZWZ0KQorCSogcGFyc2VyLmMgSFRNTHBhcnNlci5jOiBIVE1ML2VuY29kaW5nIHB1c2ggcHJvYmxlbXMgcmVwb3J0ZWRpCisJICBieSBXYXluZSBEYXZpc29uCisKK1N1biBBdWcgMjAgMTc6MDM6MzggQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmM6IHNtYWxsIGNsZWFudXAKKwkqIFRPRE86IHVwZGF0ZWQKKworU2F0IEF1ZyAxOSAyMjo1NzowMiBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBhZGRlZCBhbiBvbGQgVkMgdGVzdGNhc2UgYW5kIHVwZGF0ZWQgdGl0bGUueG1sIGVudGl0eQorCitTYXQgQXVnIDE5IDIxOjAyOjA4IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuYyBTQVguYyB0cmVlLmMgSFRNTHRyZWUuaCByZXN1bHQvSFRNTC8qOiB3b3JrCisJICBkb25lIG9uIGF1dG8tb3BlbmluZyBvZiA8cD4gdGFncyBhbmQgY2xlYW51cCBvZiBTQVggb3V0cHV0CisKK1NhdCBBdWcgMTkgMTg6NDU6NDAgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbGlieG1sLjQgIHhtbGxpbnQuMSBNYWtlZmlsZS5hbSBsaWJ4bWwuc3BlYy5pbjogYWRkZWQgbWFuIHBhZ2VzCisKK1NhdCBBdWcgMTkgMTg6Mzg6NTMgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jL3htbC5odG1sIGxpYnhtbC4qIHN0cnVjdHVyZS4qOiB1cGRhdGVkIHRoZSBkb2MgYSBiaXQKKworVGh1IEF1ZyAxNyAxNTo1MDowMCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0ZXN0U0FYLmMgdGVzdEhUTUwuYyByZXN1bHQvSFRNTC86IGNsZWFudXAgb2YgdGhlIG91dHB1dAorCSAgb2YgU0FYIHRlc3RzCisKK01vbiBBdWcgMTQgMTM6NTY6MzMgRURUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmcgPGNoaW5hQHRoZXdyaXR0ZW53b3JkLmNvbT46CisJKiB4bWxsaW50LmM6IHdvcmthcm91bmQgYSBNQVBfRkFJTEVkIGRlZmluaXRpb24gYnVnIGluIERVLTQuMAorCitNb24gQXVnIDE0IDExOjEwOjIwIEVEVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogUGF0Y2ggZnJvbSBEYXZlIFllYXJrZSA8eWVhcmtlQGVuZy5idWZmYWxvLmVkdT46CisJKiB0ZXN0SFRNTC5jOiBmaXggY29yZSBkdW1wIG9uIFNvbGFyaXMgMi54IHN5c3RlbXMKKwkqIEhUTUxwYXJzZXIuYzogZml4IHNlZ2ZhdWx0IGlmIGN0eHQtPnNheC0+Y2hhcmFjdGVycygpIGlzIE5VTEwKKwkqIHJlc3VsdC9IVE1MLyouc2F4OiBwcmV2aW91cyBidWcgZml4IGxlYWQgdG8gbmV3IHJlc3VsdHMKKworTW9uIEF1ZyAxNCAxMDoyNjowOSBFRFQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZyA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPjoKKwkqIGNvbmZpZ3VyZS5pbjogYWRkZWQgLS13aXRoLXJlYWRsaW5lPURJUiB0byBhY2NlcHQgYWx0ZXJuYXRlCisJICBwYXRoIGZvciByZWFkbGluZSBpbmNsdWRlL2xpYnJhcnkKKwkqIGNvbmZpZ3VyZS5pbjogYWRkZWQgQU1fQ19QUk9UT1RZUEVTIHRvIGFkZCAtQWEgLURfSFBVWF9TT1VSQ0UKKwkgIGZvciBBTlNJIHVuZGVyIEhQLVVYCisJKiBjb25maWcuaW46IFJlbW92ZWQgQExJQlNAIGZyb20geG1sLWNvbmZpZyBiZWNhdXNlIEBYTUxfTElCU0AKKwkgIGluY2x1ZGVzIEBMSUJTQAorCitTYXQgQXVnIDEyIDIzOjE5OjQyIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy8qIDogcmVidWlsdCB0aGUgZG9jcworCSogZ2V0dGluZyByZWFkeSBmb3IgMi4yLjIgcmVsZWFzZQorCitTYXQgQXVnIDEyIDE2OjQyOjM3IEVEVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLltjaF06IGFkZGVkIHhtbEdldEZlYXR1cmVzTGlzdCgpIHhtbEdldEZlYXR1cmUoKQorCSAgYW5kIHhtbEFkZEZlYXR1cmUoKQorCSogdHJlZS5bY2hdOiBhZGRlZCB4bWxBZGRDaGlsZExpc3QoKQorCSogeG1sbGludC5jOiBNQVBfRkFJTEVEIG1hY3JvIHRlc3QKKwkqIHBhcnNlci5oOiBhZGRlZCB4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSgpCisJKiB2YWxpZC5jOiBhcHBsaWVkIGJ1ZyBmaXhlcyByZW1vdmVkIHdhcm5pbmcKKwkqIHRyZWUuYzogYWRkZWQgQ0RBVEEgYmxvY2sgdG8gZWxlbWVudHMgY29udGVudAorCSogdGVzdFNBWC5jOiBjbGVhbnVwIG9mIG91dHB1dAorCSogdGVzdEhUTUwuYzogYWRkZWQgU0FYIHRlc3RpbmcKKwkqIGVuY29kaW5nLmM6IGJldHRlciBlcnJvciByZWNvdmVyeQorCSogU0FYLmMsIHBhcnNlci5jOiBmaXhlZCBvbmUgb2YgdGhlIGV4dGVybmFsIGVudGl0eSBwcm9jZXNzaW5nCisJICBvZiB0aGUgT0FTaXMgdGVzdHN1aXRlCisJKiBNYWtlZmlsZS5hbTogYWRkZWQgSFRNTCBTQVggcmVncmVzc2lvbiB0ZXN0cworCSogY29uZmlndXJlLmluOiBidW1wZWQgdG8gMi4yLjIKKwkqIHRlc3QvSFRNTC8gcmVzdWx0L0hUTUw6IGFkZGVkIGEgZmV3IG9mIEhUTUwgdGVzdHMsIGFuZCBhZGRlZCB0aGUKKwkgIFNBWCByZXN1bHRzCisKK0ZyaSBBdWcgIDQgMTE6MjE6NTAgUERUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBjb25maWd1cmUuaW46IHBhdGNoIGZvciBIUCBjb21waWxlcgorCisyMDAwLTA4LTA0ICBTdmVuIEhlaW5pY2tlICA8c3ZlbkB6ZW4ub3JnPgorCisJKiB4bWxsaW50LmM6IFdhcyBjb3JlZHVtcGluZyBzb21ldGltZXMgd2hlbiB0aGUgZmlsZSBnaXZlbiBkaWRuJ3QKKwlleGlzdC4KKworU2F0IEp1bCAyMiAwNTo1OTowNSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYyB4bWxJTy5bY2hdOiBmaXhlZCB0aGUgcHJvYmxlbSBvZiBlbmNvZGluZyBzdXBwb3J0CisKKwkgIHdoZW4gdXNpbmcgaW4gbWVtb3J5IHBhcnNpbmcuIE5lZWQgc29tZSBjbGVhbnVwLgorCSogeG1sbGludC5jIGNvbmZpZ3VyZS5pbjogYWRkZWQgYSAtLW1lbW9yeSBmbGFnIHRvIHRlc3QgbWVtb3J5CisJICBwYXJzaW5nCisKK0ZyaSBKdWwgMjEgMTc6MDk6NTcgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbmFub2h0dHAuYzogZml4ZWQgc29ja2xlbl90IHJlcGxhY2VtZW50IHRvIHVuc2lnbmVkIGludAorCSogcGFyc2VyLmM6IGZpeGVkIGEgc3BhY2UgaGFuZGRsaW5nIG1pc3NpbmcgYXQgdGhlIGVuZCBvZgorCSAgcHJvZHVjdGlvbiAyOCBET0NUWVBFLgorCSogeG1sbWVtb3J5LmM6IGZpeGVkIGEgc3R1cGlkIGJ1ZyBvbiB0aGUgcm91dGluZSB0byBvdmVycmlkZQorCSAgYWxsb2NhdGlvbiBmdW5jdGlvbnMKKwkqIFRPRE86IHVwZGF0ZWQKKworRnJpIEp1bCAxNCAxNzowMToxNCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MvIHJlZ2VuZXJhdGVkIHRoZSBkb2NzCisKK0ZyaSBKdWwgMTQgMTY6MTI6MjAgTUVTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jL2VuY29kaW5nLmh0bWwgZG9jL3htbC5odG1sOiBhZGRlZCBJMThOIGRvYworCSogZW5jb2RpbmcuW2NoXSBIVE1MdHJlZS5bY2hdIHBhcnNlci5jIEhUTUxwYXJzZXIuYzogSTE4TiBlbmNvZGluZworCSAgaW1wcm92ZW1lbnRzLCBib3RoIHBhcnNlciBhbmQgZmlsdGVycywgYWRkZWQgQVNDSUkgJiBIVE1MLAorCSAgZml4ZWQgdGhlIElTTy1MYXRpbi0xIG9uZQorCSogeG1sbGludC5jIHRlc3RIVE1MLmM6IGFkZGVkL21hZGUgdmlzaWJsZSAtLWVuY29kZQorCSogZGVidWdYTUwuYyA6IGNsZWFudXAKKwkqIG1vc3QgLmMgZmlsZXM6IGFwcGxpZWQgcGF0Y2hlcyBkdWUgdG8gd2FybmluZyBvbiBXaW5kb3dzIGFuZAorCSAgd2hlbiB1c2luZyBTdW4gUHJvIGNjIGNvbXBpbGVyCisJKiB4cGF0aC5jIDogY2xlYW51cCBtZW1sZWFrcworCSogbmFub2Z0cC5jIDogYWRkZWQgYSBURVNUSU5HIHByZXByb2Nlc3NvciBmbGFnIGZvciBzdGFuZGFsb25nCisJICBjb21waWxlIHNvIHRoYXQgcGVvcGxlIGNhbiByZXBvcnQgYnVncyBtb3JlIGVhc2lsbHkKKwkqIG5hbm9odHRwLmMgOiBkaXRjaGVkIHNvY2tsZW5fdCB3aGljaCB3YXMgYSBwb3J0YWJpbGl0eSBtZXNzCisJICBhbmQgcmVwbGFjZWQgaXQgd2l0aCB1bnNpZ25lZCBpbnQuCisJKiB0cmVlLltjaF06IGFkZGVkIHhtbEhhc1Byb3AoKQorCSogVE9ETzogdXBkYXRlZAorCSogdGVzdC8gOiBhZGRlZCBtb3JlIHRlc3QgZm9yIGVudGl0aWVzLCBOUywgZW5jb2RpbmcsIEhUTUwsIHdhcAorCSogY29uZmlndXJlLmluOiBwcmVwYXJpbmcgZm9yIDIuMi4wIHJlbGVhc2UKKworTW9uIEp1bCAxMCAxNjoxNzoxOCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vZnRwLmM6IGZpeGVkIHRoZSB3YXkgdGhlIGNvbnRyb2wgY29ubmVjdGlvbiBpcyBoYW5kbGVkCisJKiBsaWJ4bWwuc3BlYy5pbjogZml4ZWQgdGhlIGRlcGVuZGVuY2llcyBhbmQgY2xlYW51cAorCitNb24gSnVsICAzIDE0OjM3OjA3IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy94bWwuaHRtbDogY2hhbmdlZCB0aGUgeG1sc29mdC5vcmcgc3RydWN0dXJlLCB1cGRhdGVkIHRoZQorCSAgZXhhbXBsZXMgdy5yLnQuIHJvb3QgYW5kIGNoaWxkcworCitTdW4gSnVsICAyIDIwOjUxOjQzIE1FU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGxpYnhtbC5zcGVjLmluOiBmaXhlZCBidWcgIzc0MTksIGRlcGVuZGVuY2llcyBmb3VsZWQgZm9yIGxpYnhtbC1kZXZlbAorCitTdW4gSnVsICAyIDA5OjUyOjQ1IE1FU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuYzogV29yayBvbiBjaGFyYWN0ZXIgZW5jb2Rpbmcgc3VwcG9ydCBmb3IgdGhlIEhUTUwgcGFyc2VyCisJKiBIVE1McGFyc2VyLmM6IEZpeGVkIHNvbWUgYXV0b29wZW4vYXV0b2Nsb3NlIHByb2JzIGZvciB0aGUgSFRNTCBwYXJzZXIKKwkqIGVuY29kaW5nLmM6IEZpeGVkIGEgcG90ZW50aWFsIG1lbWxlYWsgaW4gdGhlIGVuY29kaW5nIHN0dWZmCisKK1NhdCBKdWwgIDEgMTM6NDQ6MjIgTUVTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jL0ZBUS5odG1sIGRvYy9NYWtlZmlsZS5hbSA6IGFkZGVkIGEgRkFRCisKK0ZyaSBKdW4gMzAgMjA6Mjk6MDggTUVTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5jIEhUTUx0cmVlLmMgU0FYLmMgdmFsaWQuYyB0cmVlLmggOiBtb3JlIGNsZWFudXAKKwkgIG9mIHRoZSBIVE1MIHBhcnNlciB0byBmb3JjZSBpdCB0byBub3QgYnlwYXNzIFNBWAorCitGcmkgSnVuIDMwIDExOjE5OjU5IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHdpbjMyY29uZmlnLmguaW46IHVwZGF0ZWQKKwkqIHhtbHZlcnNpb24uaC5pbjogY3JhcCBmb3Jnb3QgdG8gdXBkYXRlIHRoaXMsIHRoaXMgbWVhbiAyLjEuMAorCSAgbGFja3MgaWNvbnYgc3VwcG9ydCA6LSggbmVlZCB0byByZWxlYXNlIDIuMS4xCisJKiBjb25maWd1cmUuaW46IHJlbGVhc2UgMi4xLjEKKwkqIEhUTUxwYXJzZXI6IGZpeGVkIGJ1ZyAjMTQ3ODQKKwkqIHhwYXRoLmMgSFRNTHBhcnNlci5jIGVuY29kaW5nLmMgcGFyc2VyLmM6IGZpeCB3YXJuaW5nIHJhaXNlZAorCSAgYnkgV2luZG93cyBjb21waWxlcgorCSogSFRNTHBhcnNlci5jIFNBWC5jIEhUTUx0cmVlLmggdHJlZS5oOiBjcmVhdGUgSFRNTCBkb2N1bWVudCBpbgorCSAgdGhlIFNBWCBzdGFydERvY3VtZW50KCkgY2FsbGJhY2suCisJKiBUT0RPOiB1cGRhdGVkCisKK1RodSBKdW4gMjkgMTI6MDY6NDggQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogYWRkZWQgeG1sU3RvcFBhcnNlcigpCisKK1dlZCBKdW4gMjggMjM6MTA6MjYgTUVTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluOiAyLjEuMCBwcmVyZWxlYXNlCisJKiBMYXJnZSByZXN5bmMgYmV0d2VlbiBXM0MgYW5kIEdub21lIHRyZWUKKwkqIG5hbm9mdHAsIG5hbm9odHRwLmM6IGZpeGVkIHN0YWxsZWQgY29ubmVjdGlvbnMgcHJvYnMKKwkqIEhUTUx0cmVlLmMgU0FYLmMgOiBzdXBwb3J0IGZvciBhdHRyaWJ1dGUgd2l0aG91dCB2YWx1ZXMgaW4KKwkgIEhUTUwgZm9yIGFuZGVyc2NhCisJKiB2YWxpZC5jOiBGaXhlZCBtb3N0IHZhbGlkYXRpb24gKyBuYW1lc3BhY2UgcHJvYmxlbXMKKwkqIEhUTUxwYXJzZXIuYzogc3RhcnQgZG9jdW1lbnQgY2FsbGJhY2sgZm9yIGFuZGVyc2NhCisJKiBkZWJ1Z1hNTC5jIHhwYXRoLmM6IGxvdHMgb2YgWFBhdGggZml4dXBzIGZyb20gUGljZGFyIFRlY2hub2xvZ3kKKwkqIHBhcnNlci5oLCBTQVguYzogc2VyaW91cyBzcGVlZCBpbXByb3ZlbWVudCBmb3IgbGFyZ2UKKwkgIENEQVRBIGJsb2NrcworCSogZW5jb2RpbmcuW2NoXSB4bWxJTy5bY2hdOiBJbXByb3ZlZCBzZXJpb3VzbHkgc2F2aW5nIHRvCisJICBkaWZmZXJlbnQgZW5jb2RpbmcKKwkqIGV4YW1wbGUvTWFrZWZpbGUuYW0gZXhhbXBsZS9nam9icmVhZC5jIHRyZWUuaDogd29yayBvbiAKKwkgIGxpYnhtbDEgbGlieG1sMiBjb252ZXJnZW5jZS4KKwkqIGNvbmZpZy5oLmluIHBhcnNlci5jIHhtbGxpbnQuYzogYWRkZWQgeG1sQ2hlY2tWZXJzaW9uKCkKKwkgIGFuZCB0aGUgTElCWE1MX1RFU1RfVkVSU0lPTiBtYWNybworCitGcmkgSnVuIDIzIDIyOjI2OjA3IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy94bWwuaHRtbDogdmFyaW91cyBwYXRjaGVzIGFuZCBpbXByb3ZlbWVudHMgdHlwbyBmaXhlZCBieQorCSAgRmVsaXggTmF0dGVyCisJKiBkb2MvbGlieG1sLWRvYy5lbDogRW1hY3MgbW9kdWxlIHRvIGxvb2t1cCB0aGUgbGlieG1sIGRvY3VtZW50YXRpb24KKwkgIGZyb20gRmVsaXggTmF0dGVyIDxmbmF0dGVyQGdteC5uZXQ+CisKK1NhdCBNYXkgIDYgMTA6MDk6NDUgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jL3VwZ3JhZGUuaHRtbDogdXBkYXRlZCB3aXRoIGluc3RydWN0aW9ucyBmb3Igc3VwcG9ydCBvZiBib3RoCisJICBsaWJ4bWwtMS54IGFuZCBsaWJ4bWwtMi54CisJKiBkb2MvZ2pvYnJlYWQuYyA6IGFwcGxpZWQgVG9kZCBEdWtlcyA8dGR1a2VzQGlibW90by5jb20+IHBhdGNoCisJICBmb3IgMi54IHN1cHBvcnQgYW5kIGFsc28gZml4ZWQgaW5jbHVkZXMKKworV2VkIE1heSAgMyAxNDoyMToyNSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBlbmNvZGluZy5bY2hdLCB4bWxJTy5bY2hdLCBwYXJzZXIuYywgY29uZmlndXJlLmluIDogcmV2YW1wZWQKKwkgIHRoZSBlbmNvZGluZyBzdXBwb3J0LCBhZGRlZCBpY29udiBzdXBwb3J0LCBzbyBub3cgbGlieG1sIGlmCisJICBjb21waWxlZCB3aXRoIGljb252IGF1dG9tYXRpY2FsbHkgc3VwcG9ydCBqYXBhbmVzZSBlbmNvZGluZ3MKKwkgIGFtb25nIG90aGVycy4gV29yayBiYXNlZCBvbiBpbml0aWFsIHBhdGNoIGZyb20gWXVhbi1DaGVuIENoZW5nCisJICBJIG1heSBoYXZlIGJyb2tlbiBiaW5hcnkgY29tcGF0IGluIHRoZSBlbmNvZGluZyBoYW5kbGVyCisJICByZWdpc3RyYXRpb24gc2NoZW1lLCBidXQgdGhhdCB3YXMgc28gdXR0ZXJseSBicm9rZW4gSSBkb24ndAorCSAgZXhwZWN0IGFueWJvZHkgdG8gaGF2ZSB1c2VkIHRoaXMgZmVhdHVyZSB1bnRpbCBub3cuCisJKiBwYXJzZXJJbnRlcm5hbHMuaDogZml4dXAgb24gdGhlIENIQVIgcmFuZ2UgbWFjcm8KKwkqIHhtbC1lcnJvci5oLCBwYXJzZXIuYzogY2F0Y2ggVVJML1VSSSBlcnJvcnMgdXNpbmcgdGhlIHVyaS5jCisJICBjb2RlLgorCSogdHJlZS5bY2hdOiBhZGRlZCB4bWxCdWZmZXJHcm93KCksIHdhcyBuZWVkZWQgZm9yIGljb252CisJKiB1cmkuYzogYWRkZWQgeG1sUGFyc2VVUkkoKSBJIGNhbid0IGJlbGlldmUgSSBmb3Jnb3QgdG8KKwkgIGltcGxlbWVudCB0aGlzIG9uZSBpbiAyLjAgISEhCisJKiBTQVguYzogbW92ZWQgZG9jLT5lbmNvZGluZyB1cGRhdGUgaW4gdGhlIGVuZERvY3VtZW50KCkgY2FsbC4KKwkqIFRPRE86IHVwZGF0ZWQuCisKK01vbiBBcHIgMjQgMTM6MzA6MTMgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5oOiByZW1vdmVkIGV4dHJhbmVvdXMgeG1sUmVtb3ZlUHJvcCBkZWZpbml0aW9uCisJKiBUT0RPOiBhZGRlZCBpdGVtIGFib3V0IC0tZGlzYWJsZS1jb3JiYSBjb25maWd1cmUgc3dpdGNoCisJKiB0cmVlLmMgcGFyc2VyLmM6IGZpeGVkIHByb2JsZW1zIGZvciB4bWxDb3B5RG9jIGFuZCBwb3N0dmFsaWRhdGlvbgorCSogbmFub2Z0cC5jOiBmaXhlZCBpbmNsdWRlIHByb2JsZW1zIGdpdmluZyB0cm91YmxlcyBvbiBBSVggYW5kIAorCSAgc2xvd2xhcmlzCisJKiB4bWxJTy5bY2hdIHZhbGlkLmggdHJlZS5bY2hdIHhsaW5rLmMgeG1sbWVtb3J5LmMgdXJpLmMgCisJICBwYXJzZXIuYyBuYW5vZnRwLmMgbmFub2h0dHAuYyBTQVguYyB0ZXN0U0FYLmMgOgorCSAgY29tbWVudCBhbmQgaGVhZGVycyBjaGFuZ2VzIHRvIGxvd2VyIGd0ay1kb2MgbnVtYmVyIG9mIHdhcm5pbmdzCisJKiBkb2MvaHRtbC8qOiByZWJ1aWx0IGRvY3MKKworU3VuIEFwciAxNiAxMToyMzoyOSBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBIQUNLSU5HOiBkb2N1bWVudGVkIHRoZSB0YWcgZm9yIDEueCBhbmQgaW5zdHJ1Y3Rpb25zCisKK1dlZCBBcHIgMTIgMTU6NDc6MjIgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeG1sSU8uW2NoXSBwYXJzZXIuW2NoXTogTW9yZSBpbnRlcmZhY2VzIGZvciBuZXcgSS9PIGZ1bmN0aW9ucworCSAgeG1sTmV3SU9JbnB1dFN0cmVhbSwgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTywKKwkgIHhtbENyZWF0ZUlPUGFyc2VyQ3R4dAorCSogcGFyc2VyLmMgcGFyc2VySW50ZXJuYWxzLmg6IHNwZWVkdXAgb2YgSVNfQ0hBUiBsaWtlIG1hY3JvcywKKwkgIHNpZ25pZmljYW50IG92ZXJhbGwgaW1wcm92ZW1lbnQKKwkqIHhtbGxpbnQuYzogYWRkZWQgSS9PIHRlc3QgdG8geG1sbGludAorCSogdGVzdFNBWC5jOiBhZGRlZCBhIHNwZWVkIHRlc3QKKwkqIGRvYy8qIDogdXBkYXRlZC9yZWdlbmVyYXRlZAorCitTYXQgQXByICA4IDE0OjU0OjU0IENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhwYXRoLmMgdXJpLmggcGFyc2VySW50ZXJuYWxzLmg6IGNvc21ldGljIGNoYW5nZXMgZnJvbQorCSAgIlRpbXVyIEkuIEJha2V5ZXYiIDx0aW11ckBiYXQucnU+LCBpbmNsdWRpbmcgbWFraW5nIAorCSAgeG1sQ3JlYXRlVVJJKCkgcHVibGljCisKK0ZyaSBBcHIgIDcgMTg6MzU6MDIgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeG1sSU8uW2NoXSBwYXJzZXIuYzogY2xlYW5lIHVwIHRoZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlciBtZXNzCisJICBhbmQgdGhlIGNvZGUgYXQgdGhlIHNhbWUgdGltZS4gQWRkZWQgYSBjbGVhbiBtZWNoYW5pc20gZm9yCisJICBvdmVybG9hZCBvciBhZGRlZCBpbnB1dCBtZXRob2RzOiB4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzKCkKKwkqIHRyZWUuYzogZml4ZWQgeG1sUHJldlNpYmxpbmcgYW5kIHhtbE5leHRTaWJsaW5nIHBlciAKKwkgIENocmlzdG9waGUgTGUgR2FsIChDaHJpc3RvcGhlLkxlLUdhbEBpbWFnLmZyKSBpbnB1dAorCSogVE9ETzogdXBkYXRlZAorCSogZG9jLyogOiB1cGRhdGVkL3JlZ2VuZXJhdGVkCisJKiBkb2MvTWFrZWZpbGUuYW06IHR3ZWFrcyB0byBhdm9pZCBwcm9ibGVtIHdpdGggbGlieG1sIGxpbmsgaW4gdGhlCisJICBzb3VyY2UgZGlyCisKK1dlZCBBcHIgIDUgMjE6MTE6MzUgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdGVzdFVSSS5jOiB5ZXQgYW5vdGhlciBmb3Jnb3R0ZW4gY29tbWl0LCBJIHNob3VsZCBnZXQgc29tZSBzbGVlcCAhCisKK1dlZCBBcHIgIDUgMjA6MzY6NDYgQ0VTVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeG1sbGludC5jOiBmb3Jnb3QgdG8gY29tbWl0IHRoaXMgdG9vID8KKworV2VkIEFwciAgNSAxNjoyMjo0NCBDRVNUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB4bWx2ZXJzaW9uLmguaW4gOiBmb3Jnb3QgdG8gY29tbWl0IHRoaXMgcHJldmlvdXNseQorCitNb24gQXByICAzIDIxOjQ3OjEwIENFU1QgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyaW5nIGxpYnhtbC0yLjAuMCB2ZXJzaW9uIGxvb2tzIE9rIHNvIGZhcgorCSogUkVBRE1FIFRPRE86IHVwZGF0ZWQgZm9yIHJlbGVhc2UKKwkqIHVyaS5jIHVyaS5oOiBhZGRlZCBhdXRob3JpdHkgcGFyc2luZy9zYXZpbmcKKwkqIHVyaS5jIHRlc3RVUkkuYyBNYWtlZmlsZS5hbTogbW92ZWQgdGhlIHRlc3RpbmcgY29kZSB0byB0ZXN0VVJJLmMKKwkqIHhtbHZlcnNpb24uaC5pbiBjb25maWd1cmUuaW4gbmFub2Z0cC5bY2hdIG5hbm9odHRwLltjaF0gZW5jb2RpbmcuaAorCSAgZGVidWdYTUwuW2NoXSB4cGF0aC5bY2hdIHhtbElPLmMgdGVzdGVyLmMgdGVzdFhQYXRoLmMgdGVzdEhUTUwuYworCSAgdHJlZS5jIEhUTUx0cmVlLmMgSFRNTHBhcnNlci5jIHRyZWUuYyB0cmVlLmggcGFyc2VyLmMKKwkgIE1ha2VmaWxlLmFtIDogYWRkZWQgY29tcGlsZS10aW1lIGN1c3RvbWl6YXRpb24gb2YgbGlieG1sCisJICAtLXdpdGgtZnRwIC0td2l0aC1odHRwIC0td2l0aC1odG1sIC0td2l0aC14cGF0aCAtLXdpdGgtZGVidWcKKwkgIC0td2l0aC1tZW0tZGVidWcKKwkqICouW2NoXSBhdXRvY29uZi5zaCA6IG1vdmVkIHRvIGFuIGFic29sdXRlIGFkcmVzc2luZyBvZiBpbmNsdWRlcyA6IAorCSAgI2luY2x1ZGUgPGxpYnhtbC94eHguaD4gSSBob3BlIGl0IHdvbid0IGJyZWFrIHRvbyBtdWNoIHN0dWZmCisJICBhbmQgd2lsbCBiZSBtYW5hZ2VhYmxlIGluIHRoZSBmdXR1cmUuLi4KKwkqIHhtbGxpbnQuYyBNYWtlZmlsZS5hbSBsaWJ4bWwuc3BlYy5pbiA6IHJlbmFtZWQgdGVzdGVyLmMgdG8geG1sbGludC5jCisJICBhbmQgYWRkZWQgeG1sbGludCB0byB0aGUgaW5zdGFsbGVkIHByb2dyYW1zCisJKiB1cmkuaDogYWRkZWQgeG1sRnJlZVVSSSgpCisKK0ZyaSBNYXIgMjQgMTQ6MzU6MjEgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB1cmkuYyB1cmkuaDogZmluaXNoZWQgdGhlIGVzY2FwaW5nIGhhbmRsaW5nLCB0aGUgYmFzZSBzdXBwb3J0CisJICBhbmQgdGhlIFVSSSBwYXRoIG5vcm1hbGl6YXRpb24uIExvb2tzIGdvb2QganVzdCBsYWNrcyB0aGUKKwkgIGF1dGhvcml0eSBjb250ZW50IHBhcnNpbmcgY29kZS4KKwkqIE1ha2VmaWxlLmFtOiBhZGRlZCBpbnN0cnVjdGlvbnMgdG8gZ2VuZXJhdGUgdGVzdFVSSQorCSogVE9ETzogdXBkYXRlZAorCSogZG9jL3htbC5odG1sLCBkb2Mvc21hbGxmb290b25seS5naWYgZG9jL3czYy5wbmc6IHVwZGF0ZWQsCisJICBhZGRlZCBsaW5rcyBhbmQgaWNvbnMgZm9yIFczQyBhbmQgR25vbWUKKworTW9uIE1hciAyMCAxNDowNToyNiBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbG1lbW9yeS5bY2hdIDogc2VlbXMgSSBmb3Jnb3QgdG8gYWN0dWFsbHkgdXBkYXRlIHRoZSBmaWxlcyBpbgorCSAgdGhlIGxhc3QgY29tbWl0IDotKQorCSogZG9jL3htbC5odG1sIGRvYy9odG1sLyogOiB1cGRhdGVkIGFuZCB1cGxvYWRlZCB0aGUgZG9jcworCitNb24gTWFyIDIwIDEyOjMzOjUxIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdGVzdC92YWxpZC9kdGRzL3hodG1sKjogcmVtb3ZlZCBSQ1MgaW5mb3MgKHBhaW4gd2l0aCBDVlMpCisJKiBUT0RPOiB1cGRhdGVkCisJKiB4bWxtZW1vcnkuW2NoXSA6IGFkZGVkIHhtbE1lbVNldHVwKCkgYW5kIHhtbE1lbUdldCgpIHRvIG92ZXJyaWRlCisJICBsaWJ4bWwgZGVmYXVsdCBhbGxvY2F0aW9uIGZ1bmN0aW9uIHdpdGggYW5vdGhlciBzZXQgKGxpa2UgZ21hbGxvYy8KKwkgIGdmcmVlKS4KKwkqIE1ha2VmaWxlLmFtLCB1cmkuYywgdXJpLmg6IGFkZGVkIGEgc2V0IG9mIGZ1bmN0aW9ucyB0byBkbworCSAgZXhhY3QgKGxpdHRlcmFseSBjb3BpZWQgZnJvbSB0aGUgUkZDIDIzOTYgcHJvZHVjdGlvbnMpIHBhcnNpbmcKKwkgIGFuZCBoYW5kbGluZyBvZiBVUkkuIFdpbGwgYmUgbmVlZGVkIGZvciBYTGluaywgb25lIFhNTCBXRkMsIAorCSAgWE1MIEJhc2UgYW5kIHJldXNlZCBpbiB0aGUgbmFub1tmdHAvaHR0cF0gbW9kdWxlcy4gU3RpbGwgd29yaworCSAgdG8gYmUgZG9uZS4KKworVHVlIE1hciAxNCAyMDo1MjozNSBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGNvbmZpZ3VyZS5pbiwgbGlieG1sLnNwZWMuaW4gOiBsaWJ4bWwyCisJKiBkb2MvKiA6IHVwZGF0ZWQgdGhlIGRvYyBwYWdlLCByZWJ1aWx0IHRoZSBkb2NzCisKK1R1ZSBNYXIgMTQgMTk6MTE6MjkgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBhbGw6IHRhZ2dlZCBMSUJfWE1MXzFfWAorCSogKi5jICouaCA6IHVwZGF0ZWQgZnJvbSBXM0MgQ1ZTIHRyZWUKKwkqIGNvbmZpZ3VyZS5pbiA6IDIuMC4wLWJldGEKKwkqIGxpYnhtbC5zcGVjLmluIDogbGlieG1sMiBwYWNrYWdlIG5hbQorCSogcmVzdWx0LyogOiBuZXcgdmVyc2lvbiBvZiB0aGUgdGVzdHMgb3V0cHV0CisKK01vbiBNYXIgIDYgMDk6MzQ6NTIgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MveG1sLmh0bWwsIGRvYy91cGRhdGUuaHRtbDogdXBkYXRlZCBkb2NzLCAxLjguNworCitTYXQgTWFyICA0IDE2OjE0OjQyIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jLyogOiByZWJ1aWx0IHRoZSBkb2NzCisJKiBwYXJzZXIuYzogZmluYWwgcGF0Y2ggb24gIzY3NjYKKwkqIHZhbGlkLmM6IHNtYWxsIHBhdGNoIG9uIHZhbGlkaXR5IGNoZWNrcy4KKworU2F0IE1hciAgNCAxMjozODo0MSBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRvYy91cGdyYWRlLmh0bWw6IGluc3RydWN0aW9uIG9uIGhvdyB0byB1cGdyYWRlIGZyb20gMS54IHRvIDIueAorCSAgYWRkZWQKKwkqIHBhcnNlci5jOiBhZGRpbmcgeG1sS2VlcEJsYW5rc0RlZmF1bHQoKSBhcyBhIHdheSB0byBtYW5hZ2UKKwkgIGNvbXBhdGliaWxpdHkgdy5yLnQuIFhNTCBzcGVjIGFuZCBleGlzdGluZyBjb2RlLgorCitUaHUgTWFyICAyIDA0OjQ1OjE1IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLmM6IHNlZW1zIGEgYmV0dGVyIHNvbHV0aW9uIHRvIDxhPiAgIDwvYT4gZXhpc3RzLAorCSAgd2lsbCB0cnkgaXQgZm9yIGEgd2hpbGUKKworVGh1IE1hciAgMiAwMjoyNjoxMyBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jOiB0cmllZCB0byByZW1vdmUgdGhlIDxhPiAgIDwvYT4gZ2VuZXJhdGluZyA8YS8+CisJICB0aGlzIGlzIGhhcmQuIExlZnQgYSBmbGFnIGZvciB0aGF0IHB1cnBvc2UuIEZpeGVkIGJ1ZyAjNjc2NgorCSogY29uZmlndXJlLmluOiBwcmVwYXJlZCAxLjguNyBub3QgcmVsZWFzZWQsIGR1ZSB0byBwcmV2aW91cworCSAgcHJvYmxlbQorCitUaHUgTWFyICAyIDAzOjAzOjUwIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jL3htbC5odG1sIDogYXBwbGllZCBzZWNvbmQgcGF0Y2ggZnJvbSBQYXVsIER1Qm9pcworCitUdWUgRmViIDI5IDIzOjU1OjEzIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jL3htbC5odG1sIDogYXBwbGllZCBwYXRjaCBmcm9tIFBhdWwgRHVCb2lzCisKK1RodSBGZWIgIDMgMTY6MzY6MzkgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYyBIVE1McGFyc2VyLmM6IGRvIGEgYml0IG9mIGJ1ZmZlcml6YXRpb24gaW4gcHVzaCBtb2RlLgorCitUaHUgRmViICAzIDE1OjU5OjM3IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbmFub2Z0cC5jIG5hbm9odHRwLmMgdHJlZS5jIEhUTUx0cmVlLltjaF0gZGVidWdYTUwuYyB4cGF0aC5jOiBGaXhlZAorCSAgY29tcGlsYXRpb24gd2FybmluZ3Mgb24gdmFyaW91cyBwbGF0Zm9ybXMuCisJKiBwYXJzZXIuYzogRml4ZWQgIzUyODEgdmFsaWRpdHkgZXJyb3IgY2FsbGJhY2tzIGFyZSBub3cgZGVzYWN0aXZlZAorCSAgYnkgZGVmYXVsdCBpZiBub3QgdmFsaWRhdGluZy4KKworVGh1IEZlYiAgMyAxMzo0NjoxNCBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIG5hbm9mdHAuYywgd2luMzJjb25maWcuaC5pbjogcGF0Y2hlcyB0byBjb21waWxlIG9uIFdJTjMyCisKK1dlZCBGZWIgIDIgMjI6NTE6MTYgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vZnRwLmM6IHNucHJpbnRmL3NwcmludGYgcGF0Y2ggY291cnRlc3kgR2VvcmdlIEthdHNpcmVsb3MKKwkgIDxna2F0c2lAY3MudG9yb250by5lZHU+CisKK01vbiBKYW4gMzEgMTg6NTg6MjEgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vZnRwLmMgbmFub2h0dHAuYzogRml4ZWQgJyMnIGFuZCAnPycgc3RyaXBwaW5nIHdoZW4KKwkgIHByb2Nlc3NpbmcgVVJMcworCitNb24gSmFuIDMxIDE0OjI1OjU3IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbmFub2Z0cC5bY2hdOiBjbGVhbnVwLCBidWcgZml4ZXMsIGludGVncmF0aW9uIGluIHJwbWZpbmQsIGFkZGVkCisJICB4bWxOYW5vRlRQVXBkYXRlVVJMIGZvciBwZXJzaXN0ZW50IGNvbnRyb2wgY29ubmVjdGlvbnMuCisJKiBjb25maWd1cmUuaW46IDEuOC42CisKK1RodSBKYW4gMjcgMTc6NTI6MjkgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vaHR0cC5bY2hdLCBuYW5vZnRwLltjaF06IGNsZWFudXAsIGFkZGVkIHByb3h5IHN1cHBvcnQKKwkqIHRyZWUuW2NoXSA6IGFkZGVkIHhtbFNhdmVOb0VtcHR5VGFncworCisyMDAwLTAxLTI5ICBKYW1lcyBIZW5zdHJpZGdlIDxqYW1lc0BkYWEuY29tLmF1PgorCisJKiBuYW5vZnRwLmM6IGluY2x1ZGUgPG5ldGluZXQvaW4uaD4gZm9yIElQUFJPVE9fVENQLgorCisJKiBNYWtlZmlsZS5hbTogYWRkZWQgbmFub2Z0cC5bY2hdIHRvIHRoZSBidWlsZC4KKworV2VkIEphbiAyNiAxODoxNDo1NSBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIG5hbm9mdHAuW2NoXTogY2xlYW51cCwgY29tbWVudHMsIEFQSQorCSogZGVidWdYTUwuYyA6IGZpeGVkIGEgYnVnIGluIHRoZSBjYXQgY29tbWFuZAorCSogZG9jLyo6IHJlZ2VuZXJhdGVkIHRoZSBkb2NzCisKK1dlZCBKYW4gMjYgMTY6NTI6NTAgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vZnRwLltjaF0gcGFyc2VyLmMgeG1sSU8uW2NoXTogYWRkZWQgYSBOYW5vIEZUUCBpbXBsZW1lbnRhdGlvbgorCSogZGVidWdYTUwuYyA6IGZpeGVkIGEgYnVnIGluIHRoZSBjYXQgY29tbWFuZAorCSogdmFsaWQuYzogZml4aW5nIHNvbWUgc21hbGwgcHJvYnMKKwkqIGxpYnhtbC5zcGVjLmluOiBnZXQgcmlkIG9mIHRoZSBTTkFQIHN1ZmZpeAorCSogZG9jL3htbC5odG1sOiB1cGRhdGVkIHRoZSBzdGF0dXMKKworTW9uIEphbiAyNCAxNDozMTowOSBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbC1jb25maWcuaW46IHhtbC1jb25maWcgLS12ZXJzaW9uIHRvIGp1c3QgcmV0dXJuIHRoZQorCSAgdmVyc2lvbiBudW1iZXIKKwkqIHhwYXRoLmM6IHNvbWUgY2xlYW51cCB3LnIudC4gYXhpcyB3aGVuIHRoZSBjdXJyZW50IG5vZGUgaXMKKwkgIGFuIGF0dHJpYnV0ZS4KKwkqIFRPRE86IHVwZGF0ZWQKKworVHVlIEphbiAxOCAxODo0NjowNiBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGNvbmZpZ3VyZS5pbjogcHJlcGFyZWQgZm9yIGxpYnhtbC0xLjguNQorCSogZG9jLyogcmVjb21waWxlZCB0aGUgZG9jdW1lbnRhdGlvbgorCisyMDAwLTAxLTE3ICBKb2R5IEdvbGRiZXJnIDxqZ29sZGJlcmdAaG9tZS5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiA6IFdBUk5JTkcgYXV0b2NvbmYgc3VidGxldHkgYWxlcnQgOgorCSAgVXNlIEFDX0NIRUNLX0hFQURFUlMgcmF0aGVyIHRoYW4gQUNfQ0hFQ0tfSEVBREVSCisJICB3aGVuIGxvb2tpbmcgZm9yIHpsaWIuaCBzbyB0aGF0IEhBVkVfWkxJQl9IIGlzIGRlZmluZWQuCisJKiBjb25maWcuaC5pbiA6IEhhdmUgYSAjdW5kZWYgZm9yIEhBVkVfWkxJQl9IIHNvIHRoYXQgaXQgd2lsbAorCSAgZ2V0IGRlZmluZWQgYnkgQUNfQ0hFQ0tfSEVBREVSUy4KKworTW9uIEphbiAxNyAxNzowNDoxMiBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYzogZml4ZWQgYSBoaWRlb3VzIGJ1ZyBpbiB4bWxHZXRQcm9wKCkgdGhhbmtzIHRvCisJICBSdW5lLkRqdXJodXVzQGZhc3Qubm8KKworU2F0IEphbiAxNSAxNTowOTowNiBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIFRPRE86IHVwZGF0ZWQKKwkqIHRyZWUuYywgcGFyc2VyLmM6IG1hZGUgc3VyZSB0aGF0IG9ubHkgbWVtb3J5IGFsbG9jIHByb2JsZW1zCisJICBhbmQgaW50ZXJuYWwgcGFyc2VyIGVycm9ycyBhcmUgYWxsb3dlZCB0byB3cml0ZSB0byBzdGRvdXQgb3IKKwkgIHN0ZGVyci4KKworVGh1IEphbiAxMyAxMTo0OToxMSBDRVQgMjAwMCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYyA6IHJlc3RvcmVkIHhtbE5ld0dsb2JhbE5zIHNpbmNlIHRoaXMgc2VlbXMgdXNlZCBieQorCSAgYSBsb3Qgb2YgZXhpc3RpbmcgY29kZSA6LSgsIGZpeGVkIGEgYnVnIGluIHhtbE5ld05zCisJKiBuYW5vaHR0cC5jOiBmaXhlZCBhIHByb2JsZW0gd2l0aCBJTkNMVURFX1dJTlNPQ0sKKwkqIEhUTUxwYXJzZXIuYywgcGFyc2VyLmMsIGVudGl0aWVzLmMsIHZhbGlkLmMgOiByZW1vdmVkIGFsbCBjYWxscworCSAgdG8gZXhpdCgpIGZyb20gdGhlIGxpYnJhcnkgY29kZS4KKwkqIHhwYXRoLmMsIHBhcnNlci5jOiByZW1vdmVkIGJ1Z3Mgb3IgdW51c2VkIGNvZGUgZGV0ZWN0ZWQgYnkgCisJICBXaW5kb3dzIGNvbXBpbGVycworCSogcGFyc2VyLmM6IHN0YXJ0ZWQgYWRkaW5nIGludGVyZmFjZXMgZm9yIHBhcnNpbmcgd2VsbCBiYWxhbmNlZAorCSAgWE1MIGZyYWdtZW50cworCSogY29uZmlndXJlLmluOiByZWxlYXNpbmcgMS44LjQKKwkqIGRvYy8qIDogcmVidWlsdCB0aGUgZG9jcworCitTdW4gSmFuICA5IDIzOjAzOjIwIENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5bY2hdIDogYWRkZWQgeG1sTmV3RG9jRnJhZ21lbnQoKSBmb3IgRE9NCisJKiB0ZXN0SFRNTC5jOiB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgorCitXZWQgSmFuICA1IDE3OjI5OjE3IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZG9jLyogOiByZWJ1aWxkIHRoZSBkb2NzCisKK1dlZCBKYW4gIDUgMTc6MDg6NDMgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBhY2NvbmZpZy5oOiByZWFkbGluZSBhbmQgaGlzdG9yeSBwYXRjaAorCSogdmFsaWQuW2NoXTogYWRkZWQgeG1sUmVtb3ZlSUQoKSBhbmQgeG1sUmVtb3ZlUmVmKCkKKwkqIHRyZWUuYzogYWRkZWQgY2hlY2sgYW5kIGhhbmRsaW5nIHdoZW4gcG9zc2libHkgcmVtb3ZpbmcgYW4gSUQKKwkqIHRyZWUuYywgSFRNTHBhcnNlci5oLCBIVE1MdHJlZS5oOiBmaXhlZCBlbnRpdGllcyBwYXJzaW5nCisJICAgICBhbmQgc2F2aW5nLgorCSogdGVzdC9IVE1ML2VudGl0aWVzLmh0bWwgcmVzdWx0L0hUTUwvZW50aXRpZXMuaHRtbCogOiB0ZXN0IGZvcgorCSAgICAgdmFyaW91cyBlbnRpdGllcyByZWZlcmVuY2UgY2FzZXMKKwkqIHJlc3VsdC9IVE1MLyogOiBhcyBhIHJlc3VsdCBvdXRwdXQgb2Ygc29tZSB0ZXN0Y2FzZSBoYXZlCisJICAgICBjaGFuZ2VkCisJKiBIVE1McGFyc2VyLmMsIHBhcnNlci5jOiBmaXhlZCBhIGJ1ZyBpbiB0aGUgcHVzaCBtb2RlIHRyaWdnZXJlZAorCSAgICAgYnkgcHJldmlvdXMgZXhhbXBsZS4gYWRkZWQgeG1sUGFyc2VUcnlPckZpbmlzaCgpLgorCSogeHBhdGguaCB0cmVlLmggcGFyc2VyLmggdmFsaWQuaCB4bWxJTy5oIHhsaW5rLmggZW5jb2RpbmcuaAorCSAgZW50aXRpZXMuaCBkZWJ1Z1hNTC5oIEhUTUxwYXJzZXIuaDogY2hhbmdlZCB0aGUgd2F5IHN0cnVjdCBhcmUgCisJICBkZWNsYXJlZCB0byBhbGxvdyBndGstZG9jIHRvIGV4cG9zZSB0aG9zZQorCSogcGFyc2VyLmM6IGNsb3NlZCBidWcgIzQ5NjAgIAorCSogTWFrZWZpbGUuYW0gY29uZmlndXJlLmluOiBBcHBsaWVkIHBhdGNoIGZyb20gCisJICBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+IGZvciBiZXR0ZXIgemxpYgorCSAgYW5kIG1hdGgvc29ja2V0IGxpYnMgZGV0ZWN0aW9uCisKK01vbiBKYW4gIDMgMTg6Mjk6NDMgQ0VUIDIwMDAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmFtOiBsaW5rIHRlc3RlciBhZ2FpbnN0IHJlYWRsaW5lCisJKiBkb2MveG1sLmh0bWwgZG9jLyovKjogdXBkYXRlZCBhbmQgcmVidWlsdCB0aGUgZG9jdW1lbnRhdGlvbiBwYWdlcworCitNb24gSmFuICAzIDExOjU4OjA1IENFVCAyMDAwIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5bY2hdOiBhZGRlZCB4bWxSZW1vdmVQcm9wCisJKiB3aW4zMmNvbmZpZy5oLmluIG5hbm9odHRwLmM6IGF2b2lkIGluY2x1ZGluZyB0aGUgV2luZG93cworCSAgICBzb2NrZXQgc3R1ZmYgaW4gZXZlcnkgQyBmaWxlcworCSogcGFyc2VyLmM6IHJlbW92ZWQgYW4gaW5kZXRlcm1pbmF0aW9uIHhtTERlY2wvUEkoeG1sLi4uKSBpbgorCSAgICB0aGUgWG1MIHBhcnNlcihzKQorCSogdGVzdC9uczQgcmVzdWx0L25zNCBldGMuLi46IGFkZGVkIHRlc3QgY2FzZSBmb3IgcHJldmlvdXMgcHJvYiAgICAKKwkqIHRyZWUuYzogeG1sTmV3TnMgd2Fzbid0IGNoZWNraW5nIGZvciBkb3VibGUgZGVmaW5pdGlvbgorCSogTWFrZWZpbGUuaW46IGZpeGVkIGEgcHJvYmxlbSB3aXRoIGRpc3QtaG9vayBkdXBsaWNhdGVzCisJKiBwYXJzZXIuW2hjXSwgeG1sSU8uYzogZml4ZWQgdGhlIGxvYWRpbmcgb2YgZXh0ZXJuYWwgZW50aXRpZXMKKwkgICAgQVBJcywgbm93IHhtbExvYWRFeHRlcm5hbEVudGl0eSgpIGlzIHVzZWQgZXZlcnl3aGVyZSBhbmQKKwkgICAgc2V0dGluZyB1cCBhbiBhcHAgc3BlY2lmaWMgZnJvbnQtZW5kIHVzaW5nIHRoZSAKKwkqIFNBWC5jIHBhcnNlci5jOiBzb21lIGZpeGVzLCBub3cgdGhlIHhodG1sIHNwZWMgdmFsaWRhdGVzCisJICAgIHdpdGggdGhlIHhodG1sIERURC4KKwkqIGVycm9yLmM6IGZpeGVkIGNyYXNoZXMgaW4gY2FzZSBvZiBubyBpbnB1dCBzdHJlYW0gICAgCisJKiB0ZXN0L3ZhbGlkL1tkdGRzL10veGh0bWwqIDogYWRkZWQgdGhlIHhodG1sIHNwZWMgYW5kIGR0ZHMKKwkgICAgdG8gdGhlIHZhbGlkYXRpb24gdGVzdHMgYW5kIHJlc3VsdHMKKworV2VkIERlYyAyOSAxNToyOTo1MiBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuW2NoXSB0ZXN0SFRNTC5jOiBhZGRlZCBwdXNoIG1vZGUgZm9yIHRoZSBIVE1MIHBhcnNlcgorCSAgdG9vIGh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCgpIGFuZCBodG1sUGFyc2VDaHVuaygpCisJKiBwYXJzZXIuYzogYSBiaXQgb2YgY2xlYW51cC4KKwkqIFNBWC5jLCBIVE1McGFyc2VyLmM6IHNvbWUgYXR0cmlidXRlcyBtYXkgbm90IGhhdmUgdmFsdWVzIChjb250cmFyeQorCSAgdG8gWE1MKSByZW1vdmVkIHRoZSBsYXN0IG1lbSBsZWFrIGtub3duCisJKiBIVE1MdHJlZS5jOiBvdXRwdXQgbWVzc2FnZSBjbGVhbnVwCisJKiB4bWxtZW1vcnkuYzogZGlzcGxheSBjb250ZW50IGluZm8gYWJvdXQgbWVtb3J5IGJsb2NrcworCSogcmVzdWx0L0hUTUwvd2lyZWQuKiA6IG1pc3NpbmcgYXR0IHZhbHVlIHdhcm5pbmcgY2hhbmdlCisKK1R1ZSBEZWMgMjggMTc6NDI6NDEgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MvKiA6IHJlYnVpbHQgdGhlIGRvY3VtZW50YXRpb24KKworVHVlIERlYyAyOCAxODo0NDoyMiBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5bY2hdIHBhcnNlckludGVybmFscy5oOiBQdXNoIHBhcnNlciBmb3IgWE1MLAorCSAgICAgc2VlbXMgdG8gd29yayBmaW5lIG5vdworCSogdGVzdGVyLmMgZGVidWdYTUwuW2NoXTogQWRkZWQgYW4gWE1MIHNoZWxsIGRlYnVnIGZhY2lsaXR5IGFuZAorCSAgICAgLS1wdXNoIGZvciBwdXNoIHRlc3RpbmcKKwkqIHhwYXRoLltjaF0gOiBjbGVhbmVkIHVwIGZvciBTaGVsbCB1c2FnZSwgYWRkZWQgbWlzc2luZyBBUElzCisJKiB0ZXN0U0FYLmM6IGFkZGVkIC0tcHVzaAorCSogSFRNTHRyZWUuW2NoXSB0cmVlLltjaF06IG5ldyBmdW5jdGlvbnMgZm9yIGR1bXBpbmcgcGFydHMgb2YgdGhlCisJICAgICBzdWJ0cmVlCisJKiB4bWxJTy5bY2hdIDogZW5yaWNoZWQgQVBJICsgZml4ZXMgZm9yIHB1c2ggbW9kZSAgICAgCisJKiBlbnRpdGllcy5bY2hdOiBhZGRlZCB0aGUgZW50aXR5IGNvbnRlbnQgbGVuZ3RoIHRvIHRoZSBzdHJ1Y3QuCisJKiB4bWxtZW1vcnkuW2NoXTogbmV3IEFQSSB0byBzaG93IHRoZSBsYXN0IGVudHJpZXMgZm9yIHRoZSBzaGVsbAorCSogdmFsaWQuYzogYWRkZWQgcmVxdWlyZWQgYXR0cmlidXRlIHRlc3RpbmcKKwkqIFNBWC5jOiB0aGUgY2RhdGEgY2FsbGJhY2sgbm93IG1lcmdlIGNvbnRpZ3VvdXMgZnJhZ21lbnRzCisJKiBIVE1McGFyc2VyLmM6IGNsZWFudXAgb2Ygc29tZSBtYWNyb3MKKworV2VkIERlYyAyMiAxMjoyMDo1MyBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jOiBmaXggZm9yIFBJcyBuYW1lIHN0YXJ0aW5nIHdpdGggeG1sCisJKiB0cmVlLmM6IGZpeGVkIGEgcG90ZW50aWFsIHByb2JsZW0gd2l0aCB8fCBhbmQgJiYgb3BzCisJKiAqLmMsIGNvbmZpZ3VyZS5pbiB3aW4zMmNvbmZpZy5oLmluIDogZ2VuZXJhdGUgd2luMzJjb25maWcuaCBmb3IKKwkgIHRob3NlIG9uIHRoZSBPdGhlciBTaWRlICEKKworVHVlIERlYyAyMSAxNzoyMjoxNyBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhIHN0dXBpZCA9IHZzLiA9PSBidWcgOi0oCisJKiBkb2MvZ25vbWUteG1sLnNnbWw6IHMvZ2xhZGUveG1sLworCitUdWUgRGVjIDIxIDE0OjI5OjM0IENFVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluLCBkb2MveG1sLmh0bWwgOiBidWcgZml4IHJlbGVhc2UgMS44LjIKKwkqIGRlYnVnWE1MLmggbmFub2h0dHAuaCB4bWwtZXJyb3IuaCB4bWxtZW1vcnkuaCB4cGF0aC5oIDogCisJICBIb3BlZnVsbHkgdGhlIGVuZCBvZiB0aGF0IHNpbGx5IEMrKyBpbmNsdWRlIHByb2JsZW0KKwkqIHRyZWUuW2NoXTogQWRkZWQgYSBmZXcgZnVuY3Rpb25zOiB4bWxSZXBsYWNlTm9kZSwgeG1sQWRkUHJldlNpYmxpbmcsCisJICAgICAgeG1sQWRkTmV4dFNpYmxpbmcsIHhtbE5vZGVTZXROYW1lIGFuZCB4bWxEb2NTZXRSb290RWxlbWVudAorCSogSFRNTHBhcnNlci5jIEhUTUxwYXJzZXIuaCBIVE1MdHJlZS5jOiBXaGVuIHNhdmluZyBIVE1MIHRyeSB0byBhdm9pZCAKKwkgICAgICB0cm91YmxlcyB3aXRoIGF1dG9jbG9zZWQgZWxlbWVudHMgd2hlbiB0aGUgc3RyZWUgc2hhcGUgZG9lc24ndAorCSAgICAgIGZvbGxvdyB0aGUgRHREIHNwZWNzLiBBZGRlZCBodG1sSXNBdXRvQ2xvc2VkKCkgYW5kCisJICAgICAgaHRtbEF1dG9DbG9zZVRhZygpCisJKiByZXN1bHQvSFRNTC8qLmh0bSo6IFVwZGF0ZWQgdGhlIEhUTUwgZXhhbXBsZXMgcmVncmVzc2lvbiB0ZXN0cyBvdXRwdXQKKwkqIFNBWC5jIHRyZWUuYzogZml4ZWQgYnVnIG9uIGRlZmF1bHRpbmcgbmFtZXNwYWNlcyBvbiBhdHRyaWJ1dGVzCisJKiBkZWJ1Z1hNTC5jOiBmaXhlZCBhIGJ1ZyBvbiBwcmludGluZyBkZWZhdWx0IG5hbWVzcGFjZXMuCisJKiBIVE1MdHJlZS5jOiBmaXhlZCBhIHByb2JsZW0gd2hlbiBvdXRwdXRpbmcgWE1MIHBhcnNlZCBkb2NzIGFzIEhUTUwKKworTW9uIERlYyAyMCAxNjoyMDo1NSBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHJlc3VsdC9IVE1MLyouaHRtW2xdIDogdXBkYXRlZCB0aGUgSFRNTCByZWdyZXNzaW9uIHRlc3RzIGFjY29yZGluZworCSAgdG8gdGhlIG5ldyBvdXRwdXQKKwkqIHhwYXRoLmggeG1sLWVycm9yLmggdmFsaWQuaCB0cmVlLmggcGFyc2VyLmggZW50aXRpZXMuaCBTQVguaAorCSAgSFRNTHRyZWUuaCB0cmVlLmMgZW50aXRpZXMuYzogaGVhZGVycyB0d2Vha2luZ3MgdG8gYXZvaWQgYSBuYXN0eQorCSAgcHJvYmxlbSBkdWUgdG8gaW50ZXJtaXggb2YgZXh0ZXJuICJDIiB7IC4uLiB9IGRlY2xhcmF0aW9ucyBmb3IgQysrCisJICBhbmQgcmVjdXJzaXZlIGluY2x1ZGVzIGluIHRoZSBoZWFkZXJzCisKKzE5OTktMTItMjAgIENocmlzIExhaGV5ICA8Y2xhaGV5QHVtaWNoLmVkdT4KKworCSogSFRNTHRyZWUuYzogTWFkZSBpdCBzbyB0aGF0IGh0bWwgbm9kZXMgd2l0aCBhIHNpbmdsZSBjaGlsZCBkbworCW5vdCBpbnNlcnQgYSBjYXJyaWFnZSByZXR1cm4gYmVmb3JlIG9yIGFmdGVyIHRoZSBjaGlsZCBub2RlLgorCitTYXQgRGVjIDE4IDE2OjA3OjAzIENFVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluLCBkb2MveG1sLmh0bWwgOiBidWcgZml4IHJlbGVhc2UgMS44LjEKKwkqIHBhcnNlci5jOiBmaXhlZCBidWcgIzQzNDQKKwkqIHhwYXRoLmggeG1sLWVycm9yLmggeGxpbmsuaCBuYW5vaHR0cC5oIGRlYnVnWE1MLmggU0FYLmggSFRNTHBhcnNlci5oCisJICBhZGRlZCB0aGUgZ2x1ZSB0byBhdm9pZCBDKysgcHJvYmxlbXMKKwkqIGRvYy8qIDogcmVnZW5lcmF0ZWQgdGhlIGRvY3VtZW50YXRpb24KKworVGh1IERlYyAxNiAxNjoxOToyOSBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYzogZml4ZWQgYSBidWcgaW50cm9kdWNlZCBpbiAxLjguMCBhbmQgYnJlYWtpbmcgZGVmYXVsdAorCSAgbmFtZXNwYWNlIHJlY29nbml0aW9uLCBhbmQgRGlhIGFzIGEgcmVzdWwgOi0oCisJKiBlbmNvZGluZy5jOiBjbG9zZWQgYnVnICMzOTUwCisKK1dlZCBEZWMgMTUgMTk6MjI6MjMgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB2YWxpZC5jOiBkZWJ1Z2dpbmcgYSBwb3N0ZXJpb3JpIHZhbGlkYXRpb24sIGV4Y2VwdCBVUkkgZXhwYW5zaW9uCisJICBzdHVmZiB0aGlzIHNob3VsZCBiZSBmaXhlZCBub3cKKwkqIHBhcnNlckludGVybmFscy5oOiBmaXhlZCBhIGJ1ZyBpbiBJU19CQVNFQ0hBUiByZXBvcnRlZCBieQorCSAgQ2FybCBOeWdhcmQgPGNueWdhcmRAYmVsbGF0bGFudGljLm5ldD4KKwkqIHRlc3Rlci5jOiBhZGRlZCAtLXBvc3R2YWxpZCwgY2xlYW5pbmcgb2YgdGhlIGNvZGUKKwkqIHRyZWUuW2NoXTogYWRkZWQgeG1sRG9jR2V0Um9vdEVsZW1lbnQoKQorCitUdWUgRGVjIDE0IDIwOjMwOjM0IFBTVCAxOTk5IFJhbWlybyBFc3RydWdvIDxyYW1pcm9AZWF6ZWwuY29tPgorCisJKiBTQVguaCwgdHJlZS5oIDogY2hhbmdlZCAnbmFtZXNwYWNlJyB0byAnbmFtZVNwYWNlJyB0byB3b3JrYXJvdW5kCisJYysrIGxvc2FnZS4KKworU3VuIERlYyAxMiAxMzowODoxNSBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGNvbmZpZ3VyZS5pbiwgZG9jL3htbC5odG1sIDogYnVtcGVkIHRvIDEuOC4wCisJKiB4bGluay5bY2hdLCBNYWtlZmlsZS5hbSA6IGFkZGVkIGZyYW1ld29yayBmb3IgbGluayBkZXRlY3Rpb24KKwkqIHBhcnNlci5oOiBhZGRlZCBuYkNoYXJzIHRvIHBhcnNlciBjb250ZXh0LCBuZWVkZWQgZm9yIGNsZWFudXAuCisJKiB4bWxtZW1vcnkuYzogcmVtb3ZlZCBhIG5hc3R5IGJ1ZyB3aGVuIG91dCBvZiBtZW0KKwkqIHZhbGlkLltjaF06IGFkZGluZyBuYW1lc3BhY2Ugc3VwcG9ydCBmb3IgYXR0cmlidXRlIGRlY2wKKwkqIHRlc3Rlci5jOiBhZGRlZCAtLWRlYnVnZW50IG9wdGlvbgorCSogZGVidWdYTUwuW2NoXTogYWRkZWQgeG1sRGVidWdEdW1wRW50aXRpZXMoKQorCSogcGFyc2VyLmM6IGNsZWFudXAsIGF2b2lkaW5nIHVzZSBvZiBDVVJfUFRSIGxpa2UgcGxhZ3VlLCB1c2luZworCSAgYnVmZmVycyBpbnN0ZWFkLCB0aGlzIHdhcyByZWFsbHkgbmVlZGVkLCB2YWxpZGF0aW9uIHdhcyBicmVha2luZworCSAgaW4gc3RyYW5nZSB3YXlzIGR1ZSB0byB0aGF0LiBBZGRlZCB4bWxQYXJzZVN0cmluZ1BFUmVmZXJlbmNlKCkKKwkgIGFuZCBvdGhlciBwYXJzaW5nIGZyb20gc3RyaW5ncyBmdW5jdGlvbnMuIEVudGl0aWVzIHByb2Nlc3NpbmcKKwkgIG1vZGlmaWVkIGFnYWluLCBidXQgUEVSZWYgYXJlIHN0aWxsIG5vdCBoYW5kbGVkIGNvcnJlY2x5IGJ1dAorCSAgdW5sZXNzIHlvdSdyZSBFdmUgTWFsbGVyIHlvdSB3b24ndCBub3RpY2UgOi0pCisJKiBIVE1McGFyc2VyLmM6IGxhcmdlIGNoYW5nZXMgdG93YXJkIHJlbGlhYmlsaXR5LCBhbmQgc3dpdGNoZWQgdG8KKwkgIGxvd2VyY2FzZSBpbnRlcm5hbCB0YWdzLCBYSFRNTCBpcyBsb3dlcmNhc2UsIHNvIGl0IHdpbGwgaGVscAorCSAgdGhhdCBvdXRwdXQgaXMgY2xvc2VyIHRvIG5leHQgdmVyc2lvbi4KKwkqIGRvYy8qIDogcmVnZW5lcmF0ZWQgdGhlIGRvY3VtZW50YXRpb24sIGl0IGlzIG5vdyBob3N0ZWQgYXQKKwkgIGh0dHA6Ly94bWxzb2Z0Lm9yZy8gKHNhbWUgYml0cyBJIGp1c3QgYm91Z2h0IHRoZSBkb21haW4gOi0pCisKK0ZyaSBEZWMgIDMgMTM6NDY6MzIgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBTQVguaCwgU0FYLmMsIG1ha2VmaWxlLmFtOiBhZGRlZCBTQVguaCBtb3N0bHkgdXNlZnVsIGZvciB0aGUKKwkgICAgICAgICBkb2MgZ2VuZXJhdGlvbgorCSogcGFyc2VyLmM6IGZpeGVkIGJ1Z3MgIzM5MDggYW5kICMzOTM3IGFuZCBhIG1lbW9yeSBsZWFrCisJICAgICAgICAgaW4gdGhlIFNBWCBBUEkKKwkqIGRvYy8qOiByZWJ1aWx0IHRoZSBkb2MgbWFraW5nIHN1cmUgZXZlcnl0aGluZyBhcHBlYXJzIGluIHRoZQorCSAgICAgICAgIEhUTUwgZmlsZXMKKworV2VkIERlYyAgMSAxMDoyNzo0NyBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuW2NoXSBIVE1MdHJlZS5jLCBkZWJ1Z1hNTC5jLCBjb25maWd1cmUuaW4sIHhtbC1jb25maWcuaW46CisJICAgICBhZGRlZCB0aGUgcGF0Y2ggZnJvbSBDYXJsIE55Z2FyZCA8Y255Z2FyZEBiZWxsYXRsYW50aWMubmV0PgorCSAgICAgd2hpY2ggYWxsb3cgaW1wcmVzc2l2ZSBzcGVlZCBpbXByb3ZlbWVudCBvbiBkYXRhc2V0IHdpdGgKKwkgICAgIGxhcmdlIHRleHQgcGllY2VzLCBidXQgYXQgdGhlIGNvc3Qgb2YgYnJva2VuIGJpbmFyeQorCSAgICAgY29tcGF0aWJpbGl0eSBhbmQgc2xpZ2h0bHkgYmlnZ2VyIG1lbW9yeSB1c2FnZS4KKwkgICAgIENvbmZpZ3VyZSB3aXRoIC0td2l0aC1idWZmZXJzIHRvIGFjdGl2YXRlIHRoZW0sIHRoZXkKKwkgICAgIGFyZSBwcm90ZWN0ZWQgd2l0aCBYTUxfVVNFX0JVRkZFUl9DT05URU5UIGRlZmluZS4KKwkqIGVudGl0aWVzLltjaF0sIHBhcnNlci5jOiBhZGRlZCB4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzKCksCisJICAgICBnb2FsIGlzIDAgbWVtb3J5IGxlZnQgYWxsb2NhdGVkIG9uY2UgcGFyc2VyIGlzIG5vIG1vcmUgdXNlZAorCSogdGVzdERBVi5jLCB0ZXN0SFRNTC5jLCB0ZXN0U0FYLmMsIHRlc3RYUGF0aC5jOiBtYWtlIHN1cmUgd2UKKwkgICAgIGNhbGwgeG1sQ2xlYW51cFBhcnNlcigpIGFuZCB4bWxNZW1vcnlEdW1wKCkKKworV2VkIE5vdiAyNCAxOTowMDowNiBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuW2NoXSB4bWxJTy5bY2hdIHBhcnNlci5jIHZhbGlkLmM6IGNvZGUgY2xlYW51cCB3aXRoIC1wZWRhbnRpYworCSogcGFyc2VyLltjaF0gZW5jb2RpbmcuW2NoXTogYWRkZWQgbWVtb3J5IGNsZWFudXAgcm91dGluZXMKKwkqIHBhcnNlci5jOiBjbG9zaW5nIGJ1ZyAjMzc4OAorCSogZG9jLyo6IHJlYnVpbHQgdGhlIGRvYworCitUdWUgTm92IDIzIDExOjIzOjU1IENFVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5bY2hdOiBjbG9zaW5nIGJ1ZyAzNzQ4LCBhZGRlZCB4bWxOZXdEb2NSYXdOb2RlKCksIAorCSAgICAgICAgICAgICB4bWxOZXdUZXh0Q2hpbGQoKSBhbmQgeG1sU2V0Q29tcHJlc3NNb2RlKCkgYmVoYXZpb3VyLgorCSogdGVzdGVyLmM6IGFkZGVkIC0tY29tcHJlc3Mgb3B0aW9uCisJKiBkb2MvKjogcmVidWlsdCB0aGUgZG9jdW1lbnRhdGlvbgorCitGcmkgTm92IDE5IDE4OjQxOjI4IENFVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5jOiBidWdmaXhpbmcsIHRoZSBkYW1uIHRoaW5nIE1VU1Qgbm90IGNyYXNoIGV2ZW4KKwkgICAgICAgICAgICAgICAgaWYgZ2l2ZW4gL3Byb2Mva2NvcmUgYXMgaW5wdXQgIQorCSogZG9jL3htbC5odG1sIGRvYy8qOiB1cGRhdGVkIGFuZCByZWJ1aWx0IHRoZSBkb2N1bWVudGF0aW9uCisKK1RodSBOb3YgMTggMTQ6NTc6MTggQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYzogRml4ZWQgc29tZSB3cm9uZ2x5IHNwYWNlIGNvbGxhcHNpbmcgY29kZSBkdWUgdG8KKwkgICAgICAgICAgICBhIG1pc3JlYWRpbmcgb2YgdGhlIHNwZWMuCisJKiByZXN1bHQvKjogZml4ZWQgdGhlIG91dHB1dCBhY2NvcmRpbmdseQkgICAgCisKK1dlZCBOb3YgMTcgMTg6Mjg6MDYgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBlbmNvZGluZy5jOiBidWcgZml4IGFuZCB0eXBvcworCSogeG1sSU8uW2NoXSBwYXJzZXIuYzogZmlyc3QgYml0cyB0b3dhcmQgcmVhbCBwcm9ncmVzc2l2ZSBwYXJzaW5nCisJKiBwYXJzZXIuYzogYWRkZWQgYXR0cmlidXRlIG5vcm1hbGl6YXRpb24gY2xvc2luZyBidWcgIzM1OTcKKwkqIHRlc3QvYXR0KiByZXN1bHQvYXR0KiBTQVhyZXN1bHQvYXR0KjogdGVzdGNhc2UgZm9yIGF0dHJpYnV0ZQorCSAgICBub3JtYWxpemF0aW9uCisKK01vbiBOb3YgMTUgMTg6NTA6NTYgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBjb25maWd1cmUuaW46IGNsb3NpbmcgYnVnICMzMTYzIGJ5IGFkZGluZyBleHRyYSBmbGFncyBmb3IgdGhlCisJICAgICAgICAgICAgICAgIGNjIGNvbXBpbGVyIG9uIEhQLVVYCisKK0ZyaSBOb3YgMTIgMTc6NDE6MjAgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB2YWxpZC5bY2hdIDogcmVtb3ZlZCBhIHR5cG8gYW5kIGFuIGVudW1lcmF0ZWQgdHlwZSBidWcgaW4gdGhlCisJICAgICAgICAgICAgICAgeG1sQWRkRWxlbWVudERlY2woKSBmdW5jdGlvbgorCSogdHJlZS5jIDogSSBjaGFuZ2VkIHhtbFNldFByb3AoKSBhbmQgeG1sTmV3UHJvcCgpIHRvIGRvIHRoZQorCSAgICBjYWxsIHRvIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCkgc28gdGhhdCB0aGUgZnVuY3Rpb25zIAorCSAgICBOZXcsIFNldCBhbmQgR2V0IGFyZSBhdCB0aGUgc2FtZSBsZXZlbC4KKwkqIHBhcnNlci5jIEhUTUxwYXJzZXIuYzogZXh0cmEgbWVtb3J5IGFsbG9jYXRpb24gYnVnIGZvcgorCSAgICBhdHRyaWJ1dGVzIGRldGVjdGVkIGJ5IHNvbWVvbmUgdXNpbmcgbGlieG1sIGluIGVtYmVkZGVkIHN5c3RlbXMgOi0pCisKK1RodSBPY3QgMjggMTc6NDk6MjYgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeG1sbWVtb3J5Lmg6IHR1cm5lZCBvZmYgbWVtIGRlYnVnIDotXAorCitNb24gT2N0IDI1IDEyOjEzOjI1IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jOiBjbG9zZWQgYnVnICMyNzg0IGEgb25lIGxpbmUgZml4LCBidXQgd29ydGggcHVzaGluZworCSAgICAgICAgICAgIGEgbmV3IHJlbGVhc2Ugb3V0CisJKiBIVE1McGFyc2VyLmM6IGZpeGVkIGF1dG8tY2xvc2UgYnVncyBvbiBsaXN0IGl0ZW1zLCB6ZXJvaW5nCisJICAgICAgICAgICAgc29tZSBzdHJ1Y3R1cmVzLCBjb21tZW50cyBiZWZvcmUgYW5kIGFmdGVyIHRoZQorCQkgICAgbWFpbiBlbGVtZW50LCBhbmQgb3RoZXIgbmFzdHluZXNzCisJKiBIVE1MdHJlZS5jIHRyZWUuYzogYWNjb21vZGF0ZSB0aGUgZXh0ZW5kZWQgSFRNTCBzdXBwb3J0ZWQJICAgIAorCSogY29uZmlndXJlLmluOiBwdXNoaW5nIDEuNy40CisJKiB0ZXN0L2VudDggYW5kIHJlbGF0ZWQgb3V0cHV0cyA6IGFkZGVkIGEgbmV3IHRlc3QgZm9yIGJ1ZyAjMjc4NAorCSogdGVzdC9IVE1ML3dpcmVkLmh0bWwgYW5kIHJlbGF0ZWQgb3V0cHV0OiBhIG5hc3R5IEhUTUwgZXhhbXBsZQorCSogTWFrZWZpbGUuYW06IGltcHJvdmVkIHRoZSB0ZXN0IHNjcmlwdHMKKwkqIGRvY3MvKiA6IHJlcmFuIHRoZSBkb2N1bWVudGF0aW9uIGV4dHJhY3RvciwgdXBkYXRlZCB4bWwuaHRtbAorCitUaHUgT2N0IDE0IDEwOjI5OjU2IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuYywgSFRNTHRyZWUuYywgdHJlZS5oOiBjb21wbGV0ZWx5IHJldmFtcGVkIHRoZQorCSAgICAgSFRNTHBhcnNlciBhbmQgZGVidWdnZWQgdGhlIEhUTUwgcmVsYXRlZCBjb2RlLiBIVE1MIGRvY3VtZW50cworCSAgICAgbm93IGhhdmUgdGhlaXIgb3duIHR5cGUKKwkqIGVudGl0aWVzLmM6IGRvIG5vdCBkdW1wICZhcG9zOyBmb3IgSFRNTCBvdXRwdXQKKwkqIHhtbG1lbW9yeS5jOiBpbXByb3ZlbWVudCwgYnJlYWtwb2ludCBtZWNoYW5pc20KKwkqIHRlc3RIVE1MLmM6IGFkZGVkIC0tc2F4IC0tcmVwZWF0IC4uLgorCSogTWFrZWZpbGUuYW06IGltcHJvdmVkIHRoZSBIVE1MIHRlc3RzCisJKiB2YWxpZC5bY2hdOiBhZGRlZCB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMgYW5kCisJICAgICAgICAgICAgICB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuCisJKiB0ZXN0ZXIuYzogYWRkZWQgLS1pbnNlcnQgdG8gdGVzdCB0aGUgMiBuZXcgZnVuY3Rpb25zCisJKiB0ZXN0Ly8qIHJlc3VsdC8vKiBTQVhyZXN1bHQvLyogOiByZWdyZXNzaW9uIHRlc3QgY2xlYW51cAorCSAgICAgICAgICAgICAgIGFuZCBleHRlbnNpb24uCisJKiBkb2MvaHRtbCA6IGFkZGVkIGRvYyBmb3IgbmV3IG1vZHVsZXMgZ25vbWUteG1sLXhtbG1lbW9yeS5odG1sIGFuZAorCSAgICAgICAgICAgICBnbm9tZS14bWwtbmFub2h0dHAuaHRtbAorCitNb24gT2N0IDExIDE0OjMxOjU4IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuYzogZml4ZWQgcHJvYmxlbXMgd2l0aCBzb21lIGF1dG9jbG9zZSB0YWdzCisJKiB0cmVlLmM6IGZpeGVkIFhNTCBvdXRwdXQgcHJvYmxlbXMuIAorCSogcmVzdWx0LyogU0FYcmVzdWx0Lyo6IHVwZGF0ZSBvZiB0aGUgdGVzdHMgb3V0cHV0CisKK1NhdCBPY3QgIDkgMTE6MDI6NTcgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogTWFrZWZpbGUuYW06IEFydHVybyBwYXRjaCBmb3IgeG1sQ29uZi5zaCB2ZXJzaW9uIGluZm8KKwkqIHBhcnNlci5jOiBUaW0gSm9zbGluZyBwYXRjaCBmb3Igc2luZ2xlIHF1b3RlZCBpdGVtcworCSogdGVzdGVyLmM6IFRpbSBKb3NsaW5nIHBhdGNoIGZvciB0ZXN0ZXIgb3B0aW9ucyB1c2FnZQorCSogdHJlZS5oOiBpbmRlbnQgY2xlYW51cAorCitGcmkgT2N0ICA4IDE2OjM1OjM3IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuYyBwYXJzZXIuaCA6IEZpeGVkIHByb2JsZW1zIHdpdGggSFRNTCBwYXJzaW5nCisJICAgIHJlcG9ydGVkIGJ5IEtyaXN0aWFuIEhvZ3NiZXJnIEtyaXN0ZW5zZW4gPGhvZ3NiZXJnQGRhaW1pLmF1LmRrPgorCitGcmkgT2N0ICA4IDExOjM3OjExIENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYyA6IFJhcGggcGF0Y2ggZm9yIGluaXRpYWxpemF0aW9uIG9mIENPUkJBIGZpZWxkcworCSogcGFyc2VyLmMsIHhwYXRoLmMsIC4uLjogbW9kaWZpY2F0aW9uIG9mIGRvYyBjb21tZW50cworCSogeHBhdGguYyA6IGFsbG93IHNwYWNlcyBpbiB4cGF0aCBleHByZXNzaW9ucworCitNb24gU2VwIDI3IDEwOjE2OjQzIENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbG1lbW9yeS5oOiB0dXJuaW5nIG9mZiBtZW1vcnkgZGVidWcgOi0oCisKK1N1biBTZXAgMjYgMTM6MTY6NTQgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLltjaF0gOiBhZGRlZCB4bWxTQVhVc2VyUGFyc2VGaWxlKCkgYW5kIHhtbFNBWFVzZXJQYXJzZU1lbW9yeSgpCisJICAgICAgICAgICAgICAgIGJldHRlciBTQVggaW50ZXJmYWNlcy4KKwkqIHRlc3RTQVguYzogdXNlcyB0aGUgbmV3IFNBWCByb3V0aW5lLCBhdm9pZCBmZXRjaGluZyBhbnkgcmVtb3RlCisJICAgICAgICAgICAgIGVudGl0eS4KKwkqIGNvbmZpZ3VyZS5pbjogMS43LjIKKworRnJpIFNlcCAyNCAxNjowMTowMSBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBsaWJ4bWwuc3BlYy5pbjogZml4ZWQgdGhlIFVSTAorCSogZG9jL3htbC5odG1sOiBpbXByb3ZlZCB0aGUgZG9jdW1lbnRhdGlvbiBmcm9udC1lbmQKKworRnJpIFNlcCAyNCAwMTowNjozNiBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBuYW5vaHR0cC5jOiBjb25kaXRpb25uZWQgcmVmZXJlbmNlcyB0byBzbnByaW50ZiB3aXRoIEhBVkVfU05QUklOVEYKKworRnJpIFNlcCAyNCAwMDoxNTo1OCBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBsaWJ4bWwuc3BlYy5pbjogZml4ZWQgdGhlIGFscGhhIGNvbXBpbGUgcHJvYmxlbQorCSogcGFyc2VyLltjaF06IGNoYW5nZWQgZXJybm8gdG8gZXJyTm8gaW4gdGhlIHBhcnNlciBjb250ZXh0IDotKAorCSogKi5bY2hdOiBjaGFuZ2VkIENIQVIgdG8geG1sQ2hhciB0byBhdm9pZCBwcm9ibGVtIG9uIFdJTjMyCisJKiBkb2MveG1sLmh0bWw6IGNoYW5nZWQgQ0hBUiB0byB4bWxDaGFyCisJKiBkb2MvaHRtbC8qOiByZWNvbXBpbGVkIHRoZSBkb2N1bWVudGF0aW9uCisJKiBjb25maWd1cmUuaW46IDEuNy4xCisKK1dlZCBTZXAgMjIgMTE6NDA6MzEgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLmg6IG1vZGlmaWVkIHRoZSBwYXJzZXIgY29udGV4dCBzdHJ1Y3QgdG8gcmVnYWluIDEuNC4wCisJICAgICAgICAgICAgYmluYXJ5IGNvbXBhdGliaWxpdHkKKwkqIHBhcnNlci5jLCB4bWwtZXJyb3IuaDogYWRkZWQgZXJybm8gb3QgdGVoIGNvbnRleHQgYW5kIGRlZmluZWQKKwkgICAgICAgICAgICBhIHNldCBvZiBlcnJvcnMgdmFsdWVzIHdpdGggdXBkYXRlIG9mIGVycm5vCisJKiBuYW5vaHR0cC5bY2hdOiBtaW5pbWFsaXN0IEhUVFAgZnJvbnQtZW5kIGZvciBmZXRjaGluZyByZW1vdGUKKwkgICAgICAgICAgICBEVERzIGFuZCBlbnRpdGllcworCSogKi5oLCAqLmM6IGNvbXBsZXRlIGNsZWFudXAgb2YgdGhlIHVzZSBvZiBjb25maWcuaCBhbmQgaW5jbHVkZQorCSAgICAgICAgICAgIHByb3RlY3Rpb24gZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50IHNldHVwLgorCSogb3ZlcmFsbGwgZGVidWdnaW5nLCBtYWludGVuYW5jZSBhbmQgYnVnLWZpeGluZyBvbiBhbGwgbW9kdWxlcworCSogdXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbgorCSogcmVhZHkgZm9yIDEuNy4wCisKK1dlZCBTZXAgIDggMjI6NDY6MTQgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5jIDogY2xlYW51cAorCSogU0FYLmMgdmFsaWQuYyB2YWxpZC5oOiBhZGRlZCBJRC9JRFJFRiBjaGVja2luZworCSogdHJlZS5jIHRyZWUuaDogZXh0ZW5kZWQgZG9jIHN0cnVjdHVyZSBmb3IgcmVmcworCSogY29uZmlndXJlLmluOiAxLjYuMgorCSogcGFyc2VyLmM6IHBhdGNoZWQgYnVnIGluIFNBWCB1c2VyIGFyZyBjYWxsCisJKiBwYXJzZXJJbnRlcm5hbHMuaDogcGF0Y2hlZCBtaXNzaW5nIGNsb3NlIGluIEMrKyB3cmFwcGluZworCSogdGVzdFhQYXRoLmMgeHBhdGguYyB4cGF0aC5oOiBwcmVwYXJlZCBmb3IgZXh0ZW5zaWJpbGl0eSwKKwkgIGVzcGVjaWFsbHkgdXBjb21pbmcgWFBvaW50ZXIgaW1wbGVtZW50YXRpb24uCisJKiBkb2MveG1sLmh0bWw6IGF1Z21lbnRlZCwgdHlwbworCitTYXQgU2VwICA0IDIyOjQ4OjA1IENFU1QgMTk5OSBUaW11ciBCYWtleWV2IDxtY0BiYXQucnU+CisKKwkqIGRvYy9NYWtlZmlsZS5hbTogcmVwbGFjZWQgImluc3RhbGwgLWQgIiB3aXRoICJta2luc3RhbGxkaXJzIiAtCisJbm90IGFsbCBpbnZvY2F0aW9ucyBvZiBpbnN0YWxsIHVuZGVyc3RhbmQgLWQuCisKK1NhdCBTZXAgIDQgMjI6MjA6MDcgQ0VTVCAxOTk5IFRpbXVyIEJha2V5ZXYgPG1jQGJhdC5ydT4KKworCSogTWFrZWZpbGUuYW06IHByZXBlbmQgYWxsIHRoZSB0ZXN0KiBjYWxscyB3aXRoICQodG9wX2J1aWxkZGlyKSAtCisJdG8gbWFrZSAnY2hlY2snIHdvcmtzLCB3aGVuIGJ1aWxkZGlyICE9IHNyY2Rpci4KKworU2F0IFNlcCAgNCAyMDoyNTo0NiBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBkb2MveG1sLmh0bWwgOiB1cGRhdGVkIHRoZSBkb2N1bWVudGF0aW9uCisKK0ZyaSBTZXAgIDMgMDA6MDE6MDggQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogeG1sbWVtb3J5LltjaF0gTWFrZWZpbGUuYW0gIDphZGRlZCBhIG1lbW9yeSB3cmFwcGVyIHRvIGNoYXNlCisJICAgICAgbm90IGRlYWxsb2NhdGVkIG1lbW9yeSBibG9ja3MKKwkqICouYyA6IHJlcGxhY2VzIGFsbCBjYWxscyB0byBtYWxsb2MoKSBmcmVlKCkgYW5kIHJlYWxsb2MoKSB0bworCSAgICAgIHRoZSB3cmFwcGVyIGZ1bmN0aW9ucy9tYWNyb3MKKwkqIHRyZWUuYyA6IHJlbW92ZWQgbWVtb3J5IGxlYWtzIGR1ZXMgdG8gY2FsbGluZyB4bWxGcmVlTm9kZSgpCisJICAgICAgaW5zdGVhZCBvZiB4bWxGcmVlTm9kZUxpc3QoKQorCitXZWQgU2VwICAxIDE0OjE1OjA5IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuYzogY29ycmVjdGVkIGEgc3R1cGlkIGJ1ZyBsZWFkaW5nIHRvIGNvcmUgZHVtcCBhdAorCSAgICAgICAgICAgICAgICB0cmVlIGRlYWxsb2NhdGlvbi4gUmVtb3ZlZCB3YXJuaW5ncyBpbmRpY2F0ZWQgYnkKKwkJCVN0ZXBoYW5lLkNvbnZlcnN5QGxyaS5mcgorCSogZW50aXRpZXMuYzogRml4ZXMgWWV0IEFub3RoZXIgU3R1cGlkIEJ1ZywgZW50aXRpZXMgd2VyZSBub3QKKwkgICAgICAgICAgICAgIGxvb2tlZCBmb3IgaW4gdGhlIGV4dGVybmFsIHN1YnNldAorCitNb24gQXVnIDMwIDEzOjIyOjI2IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jIHZhbGlkLltjaF0geHBhdGguYzogcGF0Y2hlZCBjb21waWxhdGlvbiB3YXJuaW5ncyByZXBvcnRlZAorCSAgb24gU0dJIGJ5IFN0ZXBoYW5lLkNvbnZlcnN5QGxyaS5mcgorCitTdW4gQXVnIDI5IDIyOjI3OjI5IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGFsbCAuaCA6IGNoYW5nZWQgdGhlIHByb3RvdHlwZSBkZWNsYXJhdGlvbiBpbmRlbnQgYXMgaW4gZ3RrCisJKiBtb3N0IC5jIDogd29ya2luZyBvbiByZWR1Y2luZyB0aGUgVE9ET3MgaW4gdGhlIGNvZGUKKwkqIG1vc3QgLmMgOiBjbGVhbnVwIHRob3VnaCAtcGVkYW50aWMgYW5kIEluc3VyZSsrCisJKiBpbXByb3ZlbWVudHMgb24gdmFsaWRhdGlvbiBJRCBjaGVja2luZ3MuCisJKiB0cmVlLltjaF0gU0FYLmM6IGFkZGVkIHN1cHBvcnQgZm9yIG5hbWVzcGFjZSBvbiBhdHRyaWJ1dGVzICMyMDIyCisJKiB4bWwtY29uZmlnLmluOiBjbG9zZWQgIzE4MTAKKworTW9uIEF1ZyAxNiAwMzoyNzozOCBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0cmVlLmgsIHZhbGlkLmMsIHZhbGlkLmg6IG1vcmUgd29yayBvbiB2YWxpZGl0eSwgSURzCisJKiB4cGF0aC5jOiBhZGRlZC9maXhlZCBjb21wYXJpZG9uIGFuZCBlcXVsaXR5LCBhZGRlZCBhIG5ldyBpc2luZgorCSAgZGVmaW5pdGlvbiBmb3IgQUlYCisKK1N1biBBdWcgMTUgMjE6MTU6MTcgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogTWFrZWZpbGUuYW0gbGlieG1sLnNwZWMuaW46IGNvcnJlY3RlZCBtaXNzaW5nIHhtbENvbmYuc2ggaW4KKwkgIHRoZSBkaXN0cmlidXRpb24gZHVlIHRvIGEgY3V0J24gcGFzdGUgZXJyb3IgYXQgbGFzdCBjb21taXQKKworVHVlIEF1ZyAxMCAyMDoyODowOSBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBjb25maWd1cmUuaW46IHVwZ3JhZGVkIHRvIHZlcnNpb24gMS40LjAKKwkqIHZhbGlkLltjaF0sIFNBWC5jLCBwYXJzZXIuW2NoXSBwYXJzZXJJbnRlcm5hbHMuaCAuLi4KKwkgIEJpZyB1cGRhdGUsIGFkZGVkIGEgbGFyZ2UgcGFydCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9jZXNzLAorCSAgaXQgc2hvdWxkIGJlIHVzYWJsZSwgYnV0IHNvbWUgcGFydHMgYXJlIG1pc3NpbmcKKwkqIHhwYXRoLmM6IGltcHJvdmVkIHRoZSBpbXBsZW1lbnRhdGlvbiB3LnIudC4gcm9vdC4KKwkqIE1ha2VmaWxlLmFtOiBhZGRlZCBtb3JlIHRlc3RzCisJKiB0ZXN0IGFuZCByZXN1bHQgdHJlZXM6IGFkZGVkIGEgbG90IG9mIHRlc3RzCisJKiBsaWJ4bWwuc3BlYy5pbjogZXhwb3J0IGxpYnhtbC5zby4wIGFuZCBsaWJ4bWwuc28uMQorCitUdWUgQXVnIDEwIDExOjMzOjQxIENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEFkZGVkIGFuIEhBQ0tJTkcgZmlsZQorCitUdWUgSnVsIDI3IDIxOjQzOjAwIENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhwYXRoLltjaF0gOiBpbXByb3ZlbWVudHMgYW5kIGRlYnVnIG9mIHRoZSBYUGF0aCBpbXBsZW1lbnRhdGlvbgorCSogcGFyc2VyLmMsIEhUTUxwYXJzZXIuYyA6IG1vZGlmaWVkIHRoZSBwYXJzZXJzIHRvIGJlIHByb2dyZXNzaXZlCisJKiB0cmVlLltjaF0gOiBleHRlbmRlZCB0aGUgQnVmZmVyIHByb21pdGl2ZXMKKwkqIHhtbElPLltjaF0gOiBhZGRlZCBiYXNpYyBJL08gcm91dGluZXMgcHJvdmlkaW5nIHByb2dyZXNzaXZlCisJICBwYXJzaW5nIGFuZCByZWFkeSBmb3IgSTE4TiBjb252ZXJzaW9uIHBsdWdpbnMKKwkqIFNBWHJlc3VsdC8qIDogdGhlIFNBWCBjYWxsYmFjayBzZXF1ZW5jZSBtYXliZSBzbGlnaHRseSBkaWZmZXJlbnQKKwkgIG5vdworCSogdGVzdCouYyA6IGltcHJvdmVkL3VwZGF0ZWQgdGhlIHRlc3RzIHByb2dyYW1zCisJKiBkb2MvKiA6IHJlY29tcGlsZWQgdGhlIGRvY3MuCisKKzE5OTktMDctMjYgIE1pY2hhZWwgTWVla3MgIDxtaWNoYWVsQGVkZW5wcm9qZWN0Lm9yZz4KKworCSogdHJlZS5oOiBBZGQgY29uc3QgdG8gJ2NvbnRlbnQnIGluIHhtbE5ld0RvY05vZGUsIHhtbE5ld0NoaWxkCisKKwkqIHRyZWUuYzogRGl0dG8uCisKK1RodSBKdWwgMTUgMTY6MTc6MTYgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluOiB1cGdyYWRlZCB0byB2ZXJzaW9uIDEuNC4wCisJKiB4cGF0aC5jLCB4cGF0aC5oLCB0ZXN0WFBhdGguYywgbWFrZWZpbGUuYW06IGFkZGVkIGNvZGUgZm9yIHRoZSBYUGF0aAorCSAgZHJhZnQgZnJvbSBXM0MuIFdpbGwgYmUgdXNlZCBieSBYUG9pbnRlciwgWGxpbmssIFhTTCwgYW5kIHBvc3NpYmx5CisJICBYTUwgcXVlcnkgbGFuZ3VhZ2UsIHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aCBmb3IgbW9yZSBkZXRhaWxzLgorCSogcGFyc2VyLmMsIHBhcnNlci5oOiBhZGRlZCBDSEFSKiByZWxhdGVkIHN0cmluZyBmdW5jdGlvbnMgZm9yIFhQYXRoCisJKiBIVE1McGFyc2VyLltjaF0sIEhUTUx0cmVlLmM6IGEgYml0IG9mIGNsZWFudXAgb24gZW50aXRpZXMuCisJKiBkb2MvZ25vbWUteG1sLnNnbWwsIGRvYy9odG1sLyogOiBhZGRlZCBYUGF0aCBhbmQgSFRNTCBkb2N1bWVudGF0aW9uLAorCSAgcmVidWlsZCB0aGUgZG9jcy4KKwkqIE1ha2VmaWxlLmFtLCB0ZXN0L1hQYXRoLyosIHJlc3VsdC9YUGF0aC8qOiBhZGRlZCBhbiBYUGF0aHRlc3RzIHRhcmdldAorCSAgYW5kIHJlZ3Jlc3Npb24gdGVzdGluZyBjYXBhYmlsaXRpZXMgZm9yIFhQYXRoLgorCitNb24gSnVsIDEyIDEyOjM2OjM5IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jLCBIVE1McGFyc2VyLmM6IGFwcGxpZWQgcGF0Y2ggZnJvbSBKb2huIEVsbHNvbiA8ZWxsc29uQGx1Y2VudC5jb20+CisJICBjbG9zaW5nIGJ1ZyAjMTY0NgorCitNb24gSnVsIDEyIDExOjA0OjQ0IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIE1ha2VmaWxlLmFtLCBleGFtcGxlL01ha2VmaWxlLmFtOiBjbG9zZWQgYnVnICMxNjgzCisKK1N1biBKdWwgMTEgMTg6MTY6MzQgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZXhhbXBsZS9NYWtlZmlsZS5hbSwgY29uZmlndXJlLmluOiBhZGRlZCB0aGUgbWFrZWZpbGUgZm9yIHRoZQorCSAgZ2pvYnJlYWQgZXhhbXBsZQorCitTYXQgSnVsIDEwIDE0OjE5OjExIENFU1QgMTk5OSBUb21hc3ogS8WCb2N6a28gIDxrbG9jemVrQHBsZC5vcmcucGw+CisKKwkqIGRvYy9NYWtlZmlsZS5hbToKKwktIGZpeCB3aGljaCBhbGxvdyAibWFrZSBpbnN0YWxsIERFU1RESVI9PC9pbnN0YWxsL3ByZWZpeD4iLgorCitGcmkgSnVsICA5IDEyOjEwOjI0IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIEhUTUxwYXJzZXIuYyBwYXJzZXIuYzogYXBwbGllZCBwYXRjaCBmcm9tIEpvaG4gRWxsc29uIDxlbGxzb25AbHVjZW50LmNvbT4KKwkgIHdoaWNoIGZpeGVkIGEgcHJvYmxlbSBvbiB0aGUgZmlsZSByZWFkaW5nLWNvZGUuCisKK1dlZCBKdWwgIDcgMDk6Mjg6NDMgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogSFRNTHBhcnNlci5bY2hdLCBIVE1MdHJlZS5bY2hdOiBtb3JlIHdvcmsgZm9yIEhUTUwgcGFyc2luZyBhbmQKKwkgIG91dHB1dC4KKwkqIE1ha2VmaWxlLmFtLCB0ZXN0L0hUTUwvKiwgcmVzdWx0L0hUTUwvKjogYWRkZWQgSFRNTHRlc3RzIHRhcmdldGVzdEhUTUx0CisKK1dlZCBKdWwgIDcgMDA6MjU6NDIgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLmggOiBPb3BzIHJlbW92ZWQgdGhlIGJpbmFyeSBjb21wYXRpYmlsaXR5IHByb2JsZW0KKwkqIEhUTUxwYXJzZXIuW2NoXSwgSFRNTHRyZWUuaCA6IE1vcmUgd29yayBvbiB0aGUgSFRNTCBwYXJzZS9kdW1wCisJKiBwYXJzZXIuYywgSFRNTHBhcnNlci5jOiBhcHBsaWVkIHBhdGNoZXMgZm9yIHJlYWRpbmcgZnJvbSBzdGRpbgorCitNb24gSnVsICA1IDE4OjQ1OjMxIENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jLCBlbnRpdGllcy5jLCB2YWxpZC5jOiBjbGVhbnVwIGJ1ZyAjMTU5MQorCSogY29uZmlndXJlLmluOiBjbGVhbnVwIGJ1ZyAjMTU5MgorCSogSFRNTHBhcnNlci5bY2hdLCB0ZXN0SFRNTC5jOiBzdGFydGVkIGFkZGluZyBhbiBIVE1MIHBhcnNlciB1c2luZworCSAgdGhlIHNhbWUgdHJlZSBiYWNrLWVuZC4gSGVuY2UgZ2RvbWUgd2lsbCBiZSBhdmFpbGFibGUgZm9yIGl0LgorCSogZG9jL01ha2VmaWxlLmFtOiBjbG9zZSBidWcgIzYxNworCitTYXQgSnVuIDI2IDIzOjM2OjM4IEVEVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLmM6IGFsbG9jdGF0ZSBhIHBlciBwYXJzZXIgY29udGV4dCBTQVggaW50ZXJmYWNlIGJsb2NrCisKK1R1ZSBKdW4gMjIgMjM6NDY6MzIgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcmVsZWFzZWQgMS4zLjAgd2l0aCB4bWxFbmNvZGVFbnRpdGllcyByZXN0b3Jpbmcgb2xkIGJlaGF2aW91cgorCSAgYW5kIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50IHdpdGggdGhlIGNvcnJlY3Qgb25lIDotXAorCitNb24gSnVuIDIxIDE0OjA3OjUzIENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGNvbW1pdCBvZiBteSBpbnRlcm5hbCBYTUwgYmFzZSBjaGFuZ2VzLCBxdWl0ZSBhIGxvdCBvZgorCSAgY2hhbmdlcywgY2xlYW51cHMsIGJldHRlciBlbnRpdGllcyBzdXBwb3J0LCBmcmFtZXdvcmsgZm9yCisJICBuZXcgSS9PIGFuZCBjaGFyc2V0IGRldGVjdGlvbiBhbmQgaGFuZGxpbmcKKwkqIEZpeGVkIHRoZSBjb25maWd1cmUvTWFrZWZpbGUgc3R1ZmYgdG8gZ2VuZXJhdGUgc2hhcmVkIGxpYnMKKwkgIHdpdGggdGhlIHByb3BlciB2ZXJzaW9uIGluZm8sIHNvIHdlIGp1bXBlZCBvbiByZXYgZnJvbQorCSAgMC4wLjAgdG8gMS4yLjAgISBUaGUgYmluYXJ5IGludGVyZmFjZXMgaGF2ZSBiZWVuIGJyb2tlbiwKKwkgIHhtbEVuY29kZUVudGl0aWVzKCkgcmVzdWx0IG5lZWQgdG8gYmUgZnJlZWQgbm93LCBhbmQgYSBzdHJpbmcKKwkgIHhtbFBhcnNlclZlcnNpb24gcHJvdmlkZSB0aGUgY3VycmVudCBsaWJyYXJ5IHZlcnNpb24uCisKK1R1ZSBKdW4gMTUgMTQ6MjQ6MTkgMTk5OSAgUmFwaCBMZXZpZW4gIDxyYXBoQGFjbS5vcmc+CisKKwkqIHBhcnNlci5jOiBmaXhlZCBhIGJ1ZmZlciBvdmVycnVuIGZvciB3aGVuIHlvdSBoYXZlIGEgdmVyeSBsb25nCisJYXR0cmlidXRlIHdpdGggbm8gZW50aXRpZXMgaW4gaXQuCisKK01vbiBKdW4gMTQgMDA6MTc6NTAgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogYWRkZWQgZXhhbXBsZSBkaXJlY3RvcnkKKwkqIGFkZGVkIGV4YW1wbGUvZ2pvYnMueG1sIGdqb2JyZWFkLmMsIHN0aWxsIG5lZWQgYSBNYWtlZmlsZS5pbgorCitXZWQgSnVuICAyIDE5OjQwOjU4IENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIFJlbGVhc2Ugb2YgbGlieG1sLTEuMSwgbmVhcmx5IGV2ZXJ5dGhpbmcgaGFzIGJlZW4gdG91Y2hlZCBmb3IKKwkgIHRoaXMuCisJKiBBZGRlZCBtb3JlIHJlZ3Jlc3Npb24gdGVzdHMKKwkqIFVwZGF0ZWQgdGhlIGRvY3VtZW50YXRpb24KKworU2F0IE1heSAyOSAxMzozNDo0MiBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0cmVlLltjaF06IHVuaWZpZWQgdGhlIFhNTF9OT19DT1JCQSBkZWZpbmVzLgorCSogcGFyc2VyLmMgZW5jb2RpbmcuW2NoXTogc3RhcnRlZCBwbHVnZ2luZyBpbiBjaGFyIGVuY29kaW5nIGRldGVjdGlvbgorCitGcmkgTWF5IDI4IDIyOjU4OjQyIEVEVCAxOTk5IE1hbmlzaCBWYWNoaGFyYWphbmkgPG12YWNoaGFyQHZnZXIucnV0Z2Vycy5lZHU+CisKKwkqIHRyZWUuYzogKHhtbFNhdmVGaWxlKSAtIHJlbW92ZWQgZG91YmxlIGNhbGwgb2YgeG1sQ29udGVudER1bXAuICAKKwkgIEFsc28gZnJlZWQgYWxsb2NhdGVkIGJ1ZmZlci4KKworV2VkIEFwciAyMSAyMjowNzozNSBDRVNUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCSogcGFyc2VyLltjaF0gdHJlZS5bY2hdIGVudGl0aWVzLltjaF0gdmFsaWQuW2NoXSA6IHJlbW92ZWQgdGhlIG1haW4KKwkgIHJlZW50cmFuY3kgcHJvYmxlbSBhdCBwcmludGluZy4gT25lIGlzIGxlZnQgaW4gZW50aXRpZXMuYywgdG8KKwkgIHJlbW92ZSBBU0FQCisJKiB0ZXN0U0FYLmMgOiBhZGRlZCBhIHRlc3QgZXhhbXBsZSBzaG93aW5nIHRoZSB1c2Ugb2YgdGhlIFNBWCAKKwkgIGludGVyZmFjZSBpZiBvbmUgZG9lc24ndCB3YW50IHRvIGJ1aWxkIHRoZSBET00gdHJlZS4KKwkqIGh0bWwvZ25vbWUteG1sLSouaHRtbCBodG1sL2luZGV4LnNnbWw6IHJlZ2VuZXJhdGVkIHRoZSBkb2N1bWVudGF0aW9uCisKK01vbiBBcHIgIDUgMTQ6MTQ6NDAgQ0VTVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogcGFyc2VyLltjaF0gdHJlZS5bY2hdIFNBWC5jLCBwYXJzZXJJbnRlcm5hbHMuaCB2YWxpZC5bY2hdOgorCSAgbGFyZ2UgcmV2YW1waW5nIG9mIHRoZSBwYXJzZXIgdG8gdXNlIFNBWCBjYWxsYmFja3MKKwkgIGh0dHA6Ly93d3cubWVnZ2luc29uLmNvbS9TQVgvIChvciBhdCBsZWFzdCBhIEMgbGlrZSBpbnRlcmZhY2UKKwkgIGEgbGEgRXhwYXQpLiBJdCdzIG5vdyBwb3NzaWJsZSB0byBzZXQgdXAgeW91ciBvd24gY2FsbGJhY2tzCisJICBhbmQgdGhlIHBhcnNlciB3aWxsIG5vdCBidWlsZCBhIERPTSB0cmVlLgorCSogdGVzdC8qIHJlc3VsdC8qOiB1cGRhdGVkIHRoZSB0ZXN0IHN1aXRlLCBJIGZpbmFsbHkgcmVtb3ZlZAorCSAgdGhlIG9sZCBOYW1lc3BhY2UgZHJhZnQgc3VwcG9ydCAoUEkgYmFzZWQpLgorCitGcmkgQXByICAyIDE3OjU3OjMyIENFU1QgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIE1ha2VmaWxlLmFtOiBhZGRlZCB0ZXN0IHJlc3VsdCB0byBFWFRSQV9ESVNUIGZvciBtYWtlIHRlc3RzCisKK1dlZCBNYXIgMjQgMjE6Mzc6MDIgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYywgcGFyc2VySW50ZXJuYWxzLmg6IG1vdmVkIHRoZSBjaGFycyBtYWNybyBkZWZpbml0aW9ucworCSAgdG8gcGFyc2VySW50ZXJuYWxzLmgKKwkqIHBhcnNlci5jLCBlcnJvci5jOiBhcHBsaWVkIHBhdGNoZXMgZnJvbSAiS251dCDDhWtlc3NvbiIKKwkgIDxrYUBzMi5jaGFsbWVycy5zZT4gZm9yIGNsZWFuIGNvbXBpbGF0aW9uIHVuZGVyIE1TVkMgNiA6LW8KKworVHVlIE1hciAyMyAxMToxMDoxNSBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHhtbC1jb25maWcuaW4gOiBhcHBsaWVkIHBhdGNoIHRvIG1ha2UgLS12ZXJzaW9uIHdvcmsKKworMTk5OS0wMy0wNSAgUmFqYSBSIEhhcmluYXRoICA8aGFyaW5hdGhAY3MudW1uLmVkdT4KKworCSogTWFrZWZpbGUuYW0gKGNoZWNrLWxvY2FsKTogQWxpYXMgZm9yIGB0ZXN0cycgdGFyZ2V0LiAgVGhpcyB3aWxsCisJY2F1c2UgYG1ha2UgY2hlY2snIHRvIGRvIHRoZSByaWdodCB0aGluZy4KKwkodGVzdHMpOiBEb24ndCBydW4gdGVzdHMgaW4gc3JjZGlyLiAgQWxzbywgcmVwbGFjZWQgY2FsbHMgdG8KKwliYXNlbmFtZSB3aXRoIGEgYHNlZCcgImVxdWl2YWxlbnQiLgorCitGcmkgTWFyICA1IDA3OjIzOjUzIENFVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogUmVuYW1lZCBlcnJvci5oIHRvIHhtbC1lcnJvci5oLCBjb3JyZWN0ZWQgTWFrZWZpbGUuYW0gdG8gbGlzdAorCSAgaXQgaW4gdGhlIGhlYWRlciBhbmQgbm90IHRoZSBzb3VyY2VzLCB1cGRhdGVkIHRoZSBkb2MuCisJICBUaGFua3MgdG8gVGltIE1vb25leSA8bW9vbmV5QGRvZ2JlcnQuY2MubmRzdS5ub2Rhay5lZHU+IGZvcgorCSAgcG9pbnRpbmcgdGhpcyBvdXQuCisKK01vbiBNYXIgIDEgMTM6Mjc6MTcgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYywgcGFyc2VyLmgsIHBhcnNlckludGVybmFscy5oOiBtZW1vcnkgbGVhayBodW50aW5nLAorCSAgZXhwb3J0ZWQgdGhlIGlucHV0U3RyZWFtIHJvdXRpbmVzLgorCSogZG9jL2h0bWwvKiA6IHVwZGF0ZWQgYWNjb3JkaW5nbHkKKworU3VuIEZlYiAyOCAyMjo1MTozMyBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jLCBwYXJzZXIuaCwgcGFyc2VySW50ZXJuYWxzLmg6IGFkZGVkIGEgZmV3IGV4dHJhCisJICBpbnRlcm5hbCBjYWxscyB0byBhbGxvY2F0ZSBhbmQgZnJlZSBwYXJzZXIgY29udGV4dHMgLi4uCisJKiBkb2MvaHRtbC8qIDogdXBkYXRlZCBhY2NvcmRpbmdseQorCitUaHUgRmViIDI1IDExOjUyOjI0IENFVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogY29uZmlndXJlLmluLCBNYWtlZmlsZS5hbSwgZG9jL21ha2VmaWxlLmFtIDogR2VuZXJhbCBjaGFuZ2VzIGZvcgorCSAgMS4wLjAgcmVsZWFzZSBhbmQgaW5jbHVkaW5nIHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgorCitUaHUgRmViIDI1IDA5OjQ0OjUyIENFVCAxOTk5IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogbWFrZWZpbGUuYW0gOiBhZGRlZCBwYXJzZXJJbnRlcm5hbHMuaCwgb29wcy4KKworTW9uIEZlYiAyMiAxMToyNDo1NiBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlckludGVybmFscy5oOiBhZGRlZCB0aGlzIGhlYWRlciBnaXZpbmcgYWNjZXNzIHRvIHRoZSBwYXJzZXIKKwkgIGludGVybmFsIGZ1bmN0aW9ucy4KKwkqIGRvYy9NYWtlZmlsZS5hbSA6IGFkZGVkIGEgcmVidWlsZCB0YXJnZXQgd2hpY2ggcmVidWlsZHMgdGhlIGZ1bGwKKwkgIHNldCBvZiBkb2N1bWVudGF0aW9ucworCSogcGFyc2VyLltjaF0gdHJlZS5bY2hdIHZhbGlkLltjaF06IHNlcmlvdXMgdXBkYXRlcyB3LnIudC4gcGFyc2luZworCSAgdGhlIGludGVybmFsIHN1YnNldC4gCisJKiAqLmMgKi5oOiBtb2RpZmljYXRpb25zIG5lZWRlZCB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbiB1c2luZworCSAgZ3RrLWRvYywgY2xlYW51cCBvZiBmdW5jdGlvbnMgYmxvY2tzLCByZW9yZ2FuaXNhdGlvbiBvZiBzdHJ1Y3QKKwkgIGRlY2xhcmF0aW9ucy4KKworVHVlIEZlYiAxNiAxNzoyNzoyOSBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIE1ha2VmaWxlLmFtLCBzcGVjLCBkb2MvTWFrZWZpbGUuYW0gOiB1cGdyYWRpbmcgdG8gMC45OS44LCBmaXhpbmcKKwkgIHRoZSB0YXIgYW5kIHNwZWMgZmlsZSB0byBpbmNsdWRlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvYy4KKworMTk5OS0wMi0xMyAgTnVubyBGZXJyZWlyYSAgPG5tcmZAcm5sLmlzdC51dGwucHQ+CisKKwkqIGRvYy8uY3ZzaWdub3JlOiBBZGRlZCB0aGlzIGZpbGUuCisKK01vbiBGZWIgIDggMTk6Mjc6NTYgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0cmVlLmM6IGZpeGVkIHhtbEdldFByb3AgdG8gcmV0dXJuICIiIHdoZW4gdGhlIGF0dHJpYnV0ZQorCSAgZXhpc3RzLCBldmVuIGlmIHRoZSBub2RlLWxpc3QgaXMgTlVMTC4KKworTW9uIEZlYiAgOCAxNjoxMDoxNSBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYzogcGF0Y2hlZCBhbiBlcnJvciBvdXRwdXR0aW5nIGVtcHR5IGF0dHJpYnV0ZSB2YWx1ZXMuCisJKiBNYWtlZmlsZS5hbSBhbmQgZG9jL21ha2VmaWxlLmFtOiBoYXZlIGJlZW4gdXBkYXRlZCBkdXJpbmcgdGhlCisJICB3ZWVrLWVuZC4gU29ycnkgZm9yIGFuIGVtcHR5IENWUyBsb2csIEkgZ290IGEgc2hlbGwgcHJvYmxlbS4KKworTW9uIEZlYiAgMSAxMjoxMDoxMyBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuaDogY2xlYW5lZCB1cCB1c2luZyBlbnVtcyBpbnN0ZWFkIG9mIGRlZmluZXMKKwkqIHBhcnNlci5jLCB2YWxpZC5bY2hdOiBtb3JlIHdvcmsgb24gcGFyc2luZy9vdXRwdXQgb2YgZWxlbWVudAorCSAgZGVjbGFyYXRpb25zCisKK1N1biBKYW4gMzEgMjI6MDY6NDggQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB2YWxpZC5bY2hdLCB0cmVlLmMsIHBhcnNlci5jIDogbW9yZSB3b3JrIHRvd2FyZCBmdWxsIHBhcnNpbmcKKwkgIG9mIFhNTCBEVERzLgorCSogUkVBRE1FOiBhZGRlZCBpbmZvcm1hdGlvbnMgYWJvdXQgbWFpbGluZy1saXN0IGFuZCBvbi1saW5lCisJICBkb2N1bWVudGF0aW9uCisKKzE5OTktMDEtMjcgIFJhamEgUiBIYXJpbmF0aCAgPGhhcmluYXRoQGNzLnVtbi5lZHU+CisKKwkqIGNvbmZpZ3VyZS5pbiAoWE1MX0lOQ0xVREVESVIpOiBVc2UgLUkgbm90IC1MIGZvciBpbmNsdWRlcy4KKworU3VuIEphbiAxNyAyMDowNjozNiBDRVQgMTk5OSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5jLCB0cmVlLltjaF0gOiBtb3JlIHdvcmsgdG93YXJkIGNvbmZvcm1hbmNlIHRlc3RpbmcsCisJICBhZGRlZCBhIGxhc3QgZWxlbWVudCB0byBhY2NlbGVyYXRlIHBhcnNpbmcgb2YgdmVyeSBmbGF0IHN0cnVjdHVyZXMKKwkgIHN0YXJ0ZWQgd29ya2luZyBvbiBpbnRlcm5hbCBzdWJzZXQgRWxlbWVudCBjb250ZW50IGRlY2xhcmF0aW9uLgorCSogdmFsaWQuW2NoXSA6IGZpcnN0IGN1dCBhdCBhZGRpbmcgY29kZSB0b3dhcmQgdmFsaWRhdGlvbi4KKwkqIHByZXZpb3VzIGNoYW5nZXMgaGFkIGFsc28gc21hbGwgaW1wYWN0IG9uIG1vc3QgZmlsZXMsIGVzcGVjaWFsbHkKKwkgIHRoZSBjb25mb3JtYW5jZSB0ZXN0aW5nIHVzaW5nIEphbWVzIENsYXJrIHRlc3Qgc3VpdGUuCisKK1N1biBKYW4gMTcgMTQ6NDU6MDYgQ0VUIDE5OTkgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0ZXN0LyogOiB1cGRhdGVkIHRoZSBleGFtcGxlcywgbW9zdCBvZiB0aGVtIHdlcmUgbm90IHdlbGwKKwkgICAgICAgICAgIGZvcm1lZCAoaHVtbSksIGFuZCBhZGRlZCByZGYyLgorCSogcmVzdWx0LyogOiByZXN1bHRpbmcgY2hhbmdlcyBpbiB0aGUgb3V0cHV0LgorCitTdW4gRGVjICA2IDEzOjA2OjU4IEVTVCAxOTk4IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5jOiBjaGFuZ2VkIHRoZSBiZWhhdmlvdXIgb2YgeG1sR2V0UHJvcCBvbiBOVUxMIHZhbHVlcy4KKworU2F0IERlYyAgNSAxMjoyNTowOSBFU1QgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYzogcGF0Y2hlZCBhIGJ1ZyBpbiB0aGUgZ2VuZXJhdGlvbiBvZiBlbXB0eSBhdHRyaWJ1dGVzCisKK0ZyaSBOb3YgMjcgMDE6MzY6NTQgRVNUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBlbnRpdGllcy5bY2hdLCB0cmVlLltjaF0sIHRlc3Rlci5jOiBhZGRlZCBjb3B5IGludGVyZmFjZXMKKwkgIGZvciBub2RlL3RyZWVzL2RvY3VtZW50cy8uLi4gQmlnZ2VzdCBwcm9ibGVtIGlzIG5hbWVzcGFjZQorCSAgc3VwcG9ydCB3aGVuIGNvcHlpbmcgc3VidHJlZXMuCisKK1N1biBOb3YgMTUgMTk6NTk6NDcgRVNUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYywgZW50aXRpZXMuYzogaW1wcm92ZSBlbnRpdGllcyBhbmQgY2hhciByZWYgZW5jb2RpbmcsCisJICBhbmQgY2xlYW51cHMgb2YgZXJyb3IgbWVzc2FnZXMuCisKK0ZyaSBOb3YgMTMgMTM6MDM6MTAgRVNUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYywgZW50aXRpZXMuYzogc2ltcGxlIGJ1ZyBodW50aW5nIGRvbmUgZHVyaW5nIHJwbTJodG1sIGFuZAorCSAgcnBtZmluZCBpbnRlZ3JhdGlvbi4KKworU3VuIE5vdiAgOCAxMzoxMTowNyBFU1QgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5bY2hdOiBBZGRlZCBpbnRlcmZhY2VzIGFsbG93aW5nIHRvIHNwZWNpZnkgYSBTQVgKKwkgIGhhbmRsZXIgYmVmb3JlIHBhcnNpbmcuCisKK1N1biBOb3YgIDggMDk6Mzk6MTcgRVNUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYzogcmVkaXJyZWN0IGFsbCBlcnJvcnMgcmVwb3J0aW5nIHRocm91Z2ggdGhlIFNBWAorCSAgZXJyb3IgZnVuY3Rpb24KKworV2VkIE5vdiAgNCAxNDoyMTo1NCBFU1QgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGVudGl0aWVzLmM6IHJhdGhlciB1c2UgSEFWRV9TTlBSSU5URiBhbmQgbm90IGRlcGVuZCBvbiBnbGliCisJKiBsaWJ0b29sLCB0bG1haW4gLi4uOiB1cGRhdGUgb2YgdGhlIGxpYnRvb2wgZmlsZXMKKworMTk5OC0xMS0wNCAgTWlndWVsIGRlIEljYXphICA8bWlndWVsQG51Y2xlY3UudW5hbS5teD4KKworCSogZW50aXRpZXMuYzogVXNlIGdfc25wcmludGYgaW5zdGVkYSBvZiBzbnByaW50Zi4KKworU3VuIE5vdiAgMSAxNDozMTowNiBFU1QgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGVudGl0aWVzLmMsIHBhcnNlci5jOiBkZWJ1ZyBhbmQgY2xlYW51cCBvZiBDaGFyUmVmIGhhbmRsaW5nL3NhdmluZy4KKwkgIGFkZGVkIGVudDUgdGVzdCBmb3IgdGhpcyBwdXJwb3NlLgorCSogcGFyc2VyLmMsIHBhcnNlci5oOiBmb3JtYXR0aW5nLCBjb21tZW50cyBhbmQgVVRGLTggcGxhbm5pbmcuCisKK0ZyaSBPY3QgMzAgMDE6MzY6NTIgRVNUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYzogZml4ZWQ/IGEgc3RyYW5nZSBlcnJvciBkdWUgdG8gY29tcHJlc3Npb24gb24gYSBHV1AKKwkgIGRvY3VtZW50LgorCitUaHUgT2N0IDI5IDAwOjQ4OjQ1IEVTVCAxOTk4IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5bY2hdOiBidWcgZml4aW5nCisJKiBlbnRpdGllcy5bY2hdOiBkZWZpbmVkIGEgc3BlY2lmaWMgdHlwZSBmb3IgcHJlZGVmaW5lZCBlbnRpdGllcworCSogZG9jL3htbC5odG1sOiBtb3JlIGRvY3VtZW50YXRpb24gb24gdGhlIGxpYnJhcnksIGhvdyB0byB1c2UgaXQsCisJICBvdmVydmlldyBvZiB0aGUgaW50ZXJmYWNlcy4KKworV2VkIE9jdCAyOCAxNzo1NjozNSBFU1QgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuW2NoXTogbW9yZSBjbGVhbnVwIG9uIHRoZSBBUEksIG1hZGUgdGhlIHRyZWUgbW9yIGNvbmZvcm1hbnQuCisKK1R1ZSBPY3QgMjcgMTc6NTQ6MDAgRVNUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0cmVlLmM6IGNvcnJlY3RlZCBhIHNtYWxsIGJ1ZworCSogZG9jL3htbC5odG1sOiBjb250aW51aW5nIHdyaXRpbmcgZG9jdW1lbnRhdGlvbi4KKworVHVlIE9jdCAyNyAxNzo1NDowMCBFU1QgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGRlYnVnWE1MLmggZGVidWdYTUwuYzogYWRkZWQgZGVidWdnaW5nIHV0aWxpdGllcy4KKwkqIHRlc3Rlci5jOiBhZGRlZCAtLWRlYnVnIHN3aXRjaC4KKwkqIHRyZWUuYzogcGF0Y2hlZCBhbiBpbmNvcnJlY3Qgbm9kZS0+dHlwZSBhc3NpZ25tZW50LgorCSogcGFyc2VyLmM6IGZvcm1hdHRpbmcsIGVuc3VyZSB0aGF0IG5vZGUtPmRvYyAhPSBOVUxMIGluIGF0dHJpYnV0ZXMKKworVHVlIE9jdCAyNyAwMToxNTozOSBFU1QgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHBhcnNlci5bY2hdIFNBWC5jIHRyZWUuW2NoXTogbGFyZ2UgYW1vdW50IG9mIGNoYW5nZXMgdG8gaW1wcm92ZQorCSAgZW50aXR5IHN1cHBvcnQgYW5kIHByb3ZpZGUgYW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gY2xvc2UgdG8KKwkgIERPTSBvbmUgKGVudGl0eSByZWYgbm9kZXMsIGFuZCBhdHRyaWJ1dGUgdmFsdWUgYXMgdHJlZSkuIEkgdHJpZWQKKwkgIHRvIHByZXNlcnZlIHRoZSBpbnRlcmZhY2UgYnV0IHRoaXMgd2lsbCBzdXJlbHkgYnJlYWsgc29tZSBhcHBzCisJICAoSSBoYXZlIHRvIGNoYW5nZSBycG0yaHRtbC9ycG1maW5kIGZvciBleGFtcGxlKS4gSSBoYWQgdG8gY2hhbmdlCisJICB0d28gaW50ZXJmYWNlcywgYW5kIHRoZSBnZW5lcmF0ZWQgdHJlZSBpcyBzb21ld2hhdCBkaWZmZXJlbnQuCisJKiBkb2MvKiA6IHN0YXJ0ZWQgZG9jdW1lbnRpbmcgdGhlIFhNTCBsaWJyYXJ5LCB0aGUgdHJlZSBhbmQKKwkgIERPTS9Db3JiYS4gVGhpcyBpcyBhIGZpcnN0IHN0ZXAuCisKK1NhdCBPY3QgMjQgMTQ6MjM6NTEgRURUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYzogU2V0IHVwIHRoZSBmb25jdGlvbnMgY29tbWVudCBibG9jaywgYm9yaW5nIGJ1dCB1c2VmdWwuCisJKiBwYXJzZXIuaCwgU0FYLmMsIHBhcnNlci5jOiBub3cgYXR0cmlidXRlcyBhcmUgcHJvY2Vzc2VkIHRocm91Z2gKKwkgIHRoZSBTQVggaW50ZXJmYWNlLiBUaGUgcHJvYmxlbSBpcyB0aGF0IG15IFNBWCBpbnRlcmZhY2UgZGl2ZXJnZWQKKwkgIHF1aXRlIGEgYml0IGZyb20gdGhlIG9yaWdpbmFsIG9uZSwgd2VsbCB0aGlzIGlzIG5vdCBhbiBvZmZpY2lhbAorCSAgc3BlYywgYW5kIHRyYW5zbGF0aW5nIGl0IGZyb20gSmF2YSB0byBDIGlzIGhhaXJ5IGFueXdheS4uLgorCitUdWUgT2N0IDIwIDAyOjExOjIxIEVEVCAxOTk4IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogU0FYLmMsIGVudGl0aWVzLmMsIHRyZWUuYywgZW5jb2RpbmcuYywgZXJyb3IuYzogU2V0IHVwIHRoZQorCSAgZm9uY3Rpb25zIGNvbW1lbnQgYmxvY2ssIGJvcmluZyBidXQgdXNlZnVsLgorCitTdW4gT2N0IDE4IDIwOjQwOjU4IEVEVCAxOTk4IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogZW5jb2RpbmcuW2NoXSwgTWFrZWZpbGUuYW06IEFkZGVkIHRoZSBVVEYtOCwgVVRGLTE2IGFuZCBJU08gTGF0aW4gMQorCSAgY29udmVyc2lvbiByb3V0aW5lcy4gSG93ZXZlciB0aGV5IGFyZSBub3QgeWV0IHVzZWQgdG8gY29udmVydCB0aGUKKwkgIGlucHV0cy4gVGhlIGNvcmUgd2lsbCBydW4gd2l0aCBVVEYtOC4KKworU3VuIE9jdCAxOCAxNTowODoxOSBFRFQgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuYyA6IG1ha2Ugc3VyZSB0aGF0IHRoZSB0eXBlIGlkIGlzIHByb3Blcmx5IHNldC11cCB3aGVuCisJICBhIG5ldyBvYmplY3QgaXMgYWxsb2NhdGVkLCBuZWVkZWQgZm9yIERPTS4KKworU2F0IE9jdCAxNyAwMjo0MzoyMSBFRFQgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIHRyZWUuaCwgdHJlZS5jOiBPaywgdGhlIG1haW4gb2JqZWN0cyBpbiB0aGUgdHJlZSB3aWxsIGJlIG5hdGl2ZQorCSAgY29yYmEgb2JqZWN0cywgaXQgY29zdHMgOCBieXRlcyBwZXIgTm9kZSwgQXR0cmlidXRlIGFuZCBEb2N1bWVudAorCSAgYnV0IGl0IHNpbXBsaWZpZXMgdGhlIENvcmJhIGludGVncmF0aW9uIGEgbG90IChubyBleHRyYSBpbnRlcmZhY2UKKwkgIG9iamVjdHMgdG8gYWxsb2NhdGUvZnJlZSkuCisKK1R1ZSBPY3QgMTMgMjE6NDY6NTcgRURUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB0cmVlLmgsIHRyZWUuYywgcGFyc2VyLmM6IGFkZGVkIHByZXYgYW5kIGRvYyBwb2ludGVycyB0byBOb2RlLAorCSAgYW5kIGNoYW5nZWQgTk9ERXMgY29udGFudHMgZm9yIGNvbmZvcm1pdHkgd2l0aCBET00gTGV2ZWwgMQorCitXZWQgT2N0ICA3IDIzOjQyOjQ2IEVEVCAxOTk4IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogYWRkZWQgaG9va3MgdG8ga2VlcCB0cmFjayBvZiBzZXJ2YW50cyB3aGVuIGNyZWF0aW5nIG9iamVjdHMKKwkgIHhtbERvYyBhbmQgeG1sTm9kZSAoZm9yIENvcmJhIGV4cG9ydCkuCisKK1N1biBPY3QgIDQgMDM6MTg6MDkgRURUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBhZGRlZCB4bWwtY29uZmlnIHNjcmlwdC4KKworVGh1IE9jdCAgMSAxNjoyMjozNyBFRFQgMTk5OCBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGF1dG9nZW4uc2ggOiBhcHBsaWVkIHBhdGNoIGZyb20gRnJlZGVyaWMgRGV2ZXJuYXkgPGRldmVybmF5QGlzdGFyLmZyPgorCSAgdG8gYXV0b3VwZGF0ZSBsaWJ0b29sIGFuZCBhdXRvbWFrZSBjb25mIGZpbGVzLgorCisxOTk4LTA5LTMwICBNaWd1ZWwgZGUgSWNhemEgIDxtaWd1ZWxAbnVjbGVjdS51bmFtLm14PgorCisJKiBNYWtlZmlsZS5hbTogVXNlICc/JyB0byBzZXBhcmF0ZSB0aGUgc2VkCisJY29tbWFuZHMgYXMgJywnIGlzIHVzZWQgd2hlbiBwZW9wbGUgcGFzcyAtV2wsc29tZXRoaW5nLgorCitUaHUgU2VwIDI0IDE1OjEzOjI5IEVEVCAxOTk4IERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogdHJlZS5jLCB0cmVlLmg6IGFkZGVkIGEgcGVyLWRvY3VtZW50IGNvbXByZXNzaW9uIGludGVyZmFjZS4KKworVHVlIFNlcCAyMiAyMDo0NzozOCBFRFQgMTk5OAorCisJKiB0cmVlLmMsIHRyZWUuaDogYWRkZWQgc2F2aW5nIHdpdGggY29tcHJlc3Npb24gYW5kIGFkZGVkIGludGVyZmFjZXMKKwkgIHRvIGNvbnRyb2wgdGhlIGNvbXByZXNzaW9uIGxldmVsICh4bWxHZXRDb21wcmVzc01vZGUsCisJICB4bWxTZXRDb21wcmVzc01vZGUpIGFuZCBhIG5ldyBzYXZlIHRvIGZpbGVuYW1lIGZ1bmN0aW9uICh4bWxTYXZlRmlsZSkuCisKK01vbiBTZXAgMjEgMjA6MTE6MTMgRURUIDE5OTggRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBwYXJzZXIuYzogY29ycmVjdGVkIGEgbG9vcCBmb3IgZmlsZXMgb2Ygc2l6ZSAwCisKKzE5OTgtMDgtMjAgIFJhamEgUiBIYXJpbmF0aCAgPGhhcmluYXRoQGNzLnVtbi5lZHU+CisKKwkqIGVycm9yLmg6IE5ldyBmaWxlLiAgQ29udGFpbnMgcHJvdG90eWVzIGZyb20gYGVycm9yLmMnLgorCitUaHUgQXVnIDEzIDE5OjAyOjM0IDE5OTggIFRvbSBUcm9tZXkgIDx0cm9tZXlAY3lnbnVzLmNvbT4KKworCSogTWFrZWZpbGUuYW0gKHhtbGluY2Rpcik6IE5ldyBtYWNyby4KKwkoeG1saW5jX0hFQURFUlMpOiBSZW5hbWVkIGZyb20gaW5jbHVkZV9IRUFERVJTLgorCitUaHUgQXVnIDEzIDAwOjQwOjE0IEVEVCAxOTk4ICBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEB3My5vcmc+CisKKwkqIGFwcGxpZWQgc21hbGwgcGF0Y2ggb24gbnVtZXJpYyBlbnRpdGllcyBmcm9tCisJICBDaHJpc3RvcGhlciBCbGl6emFyZCA8YmxpenphcmRAYXBwbGllZHRoZW9yeS5jb20+CisKK1dlZCBBdWcgMTIgMjM6MTI6NTggRURUIDE5OTggIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogTmV3IHJlbGVhc2UgMC4yLCByZW1vdmVkIHRoZSBvbGQgeG1sXyogZmlsZXMgc28gdGhhdCBpdCdzCisJICAgIGNvaGVyZW50IHdpdGggdGhlIG90aGVyIENWUyBiYXNlIChXM0MpLCBmYXIgYmV0dGVyIGNvbmZvcm1hbmNlCisJICAgIHRvIHN0YW5kYXJkLCBuZXcgbmFtZXNwYWNlcywgZGVjZW50IGVudGl0aWVzIHN1cHBvcnQsIGJlZ2lubmluZworCSAgICBvZiBhIFNBWC1saWtlIGludGVyZmFjZS4gTmVhcmx5IG5vdGhpbmcgbGVmdCBpbnRhY3QsIGV2ZW4gdGhlCisJICAgIHRlc3QgZXhhbXBsZXMgLi4uCisKKzE5OTgtMDctMzAgIENocmlzdG9waGVyIEJsaXp6YXJkICA8YmxpenphcmRAYXBwbGllZHRoZW9yeS5jb20+CisKKwkqIC5jdnNpZ25vcmU6IEFkZCAuZGVwcyBkaXIKKworU3VuIEp1bCAyNiAxNzoyOTo1MiBFRFQgMTk5OCAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiB4bWxfdHJlZTogY2hhbmdlZCB0aGUgbWVtb3J5IGFsbG9jYXRpb24gc2NoZW1lIGZvciBuYW1lIGluIHhtbE5ld05vZGUKKworU3VuIEp1bCAyNiAwMDoxNzo1MSBFRFQgMTk5OCAgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAdzMub3JnPgorCisJKiBjb25maWd1cmUuaW46IGFkZGVkIHRlc3QgZm9yIENQUAorCSogQVVUSE9SUywgQ2hhbmdlbG9nOiB0aGUgb3JpZ2luYWwgb25lcyBkaWRuJ3QgZ2V0IGNvbW1pdGVkIGJ1dCB0aGUKKwkgICAgZ2xpYiBvbmVzIGluc3RlYWQsIGZpeGVkLgorCSogTWFrZWZpbGUuYW06IGNvcnJlY3RlZCBhbiBlcnJvciBpbiBsaWJyYXJ5IG5hbWluZworCitGcmkgSnVsIDI0IDE2OjQ3OjE0IDE5OTggIERhbmllbCBWZWlsbGFyZCA8RGFuaWVsLlZlaWxsYXJkQHczLm9yZz4KKworCSogaW50ZWdyYXRlZCBjb2RlIGRldmVsb3BwZWQgYXQgVzNDCisJKiBjaGFuZ2VkIHRoZSBvcmlnaW5hbCBDb3B5cmlnaHQKKwkqIG1pZ3JhdGVkIHRvIGF1dG9tYWtlCisJKiBwcmVmaXhlZCB0aGUgZmlsZW5hbWVzIGJ5IHhtbF8gdG8gYXZvaWQgZmlsZW5hbWUgY2xhc2hlcworCisjCisjIHZpbTogc2V0IGVuYz11dGYtOAorIwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9Db3B5cmlnaHQgYi9saWJ4bWwyLTIuNy43L0NvcHlyaWdodApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTdlOTU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9Db3B5cmlnaHQKQEAgLTAsMCArMSwyNyBAQAorRXhjZXB0IHdoZXJlIG90aGVyd2lzZSBub3RlZCBpbiB0aGUgc291cmNlIGNvZGUgKGUuZy4gdGhlIGZpbGVzIGhhc2guYywKK2xpc3QuYyBhbmQgdGhlIHRyaW8gZmlsZXMsIHdoaWNoIGFyZSBjb3ZlcmVkIGJ5IGEgc2ltaWxhciBsaWNlbmNlIGJ1dAord2l0aCBkaWZmZXJlbnQgQ29weXJpZ2h0IG5vdGljZXMpIGFsbCB0aGUgZmlsZXMgYXJlOgorCisgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgRGFuaWVsIFZlaWxsYXJkLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXItCituaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklULQorTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorREFOSUVMIFZFSUxMQVJEIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUgorSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OLQorTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKworRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgRGFuaWVsIFZlaWxsYXJkIHNoYWxsIG5vdAorYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBvdGhlcndpc2UgdG8gcHJvbW90ZSB0aGUgc2FsZSwgdXNlIG9yIG90aGVyIGRlYWwtCitpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gZnJvbSBoaW0uCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvRE9DQnBhcnNlci5jIGIvbGlieG1sMi0yLjcuNy9ET0NCcGFyc2VyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU3Mzc0MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvRE9DQnBhcnNlci5jCkBAIC0wLDAgKzEsMzA1IEBACisvKgorICogRE9DQnBhcnNlci5jIDogYW4gYXR0ZW1wdCB0byBwYXJzZSBTR01MIERvY2Jvb2sgZG9jdW1lbnRzCisgKgorICogVGhpcyBpcyBkZXByZWNhdGVkICEhIQorICogQ29kZSByZW1vdmVkIHdpdGggcmVsZWFzZSAyLjYuMCBpdCB3YXMgYnJva2VuLgorICogVGhlIGRvYyBhcmUgZXhwZWN0IHRvIGJlIG1pZ3JhdGVkIHRvIFhNTCBEb2NCb29rCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKworI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC9ET0NCcGFyc2VyLmg+CisKKy8qKgorICogZG9jYkVuY29kZUVudGl0aWVzOgorICogQG91dDogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0CisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnMKKyAqIEBpbmxlbjogIHRoZSBsZW5ndGggb2YgQGluCisgKiBAcXVvdGVDaGFyOiB0aGUgcXVvdGUgY2hhcmFjdGVyIHRvIGVzY2FwZSAoJyBvciAiKSBvciB6ZXJvLgorICoKKyAqIFRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gQVNDSUkKKyAqIHBsdXMgU0dNTCBlbnRpdGllcyBibG9jayBvZiBjaGFycyBvdXQuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywgb3IgLTEgb3RoZXJ3aXNlCisgKiBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZAorICogICAgIGFzIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4KKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4KKyAqLworaW50Citkb2NiRW5jb2RlRW50aXRpZXModW5zaWduZWQgY2hhciAqb3V0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgaW50ICpvdXRsZW4gQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbiBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgIGludCAqaW5sZW4gQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICBpbnQgcXVvdGVDaGFyIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2NiRW5jb2RlRW50aXRpZXMoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiBkb2NiUGFyc2VEb2N1bWVudDoKKyAqIEBjdHh0OiAgYW4gU0dNTCBwYXJzZXIgY29udGV4dAorICogCisgKiBwYXJzZSBhbiBTR01MIGRvY3VtZW50IChhbmQgYnVpbGQgYSB0cmVlIGlmIHVzaW5nIHRoZSBzdGFuZGFyZCBTQVgKKyAqIGludGVyZmFjZSkuCisgKgorICogUmV0dXJucyAwLCAtMSBpbiBjYXNlIG9mIGVycm9yLiB0aGUgcGFyc2VyIGNvbnRleHQgaXMgYXVnbWVudGVkCisgKiAgICAgICAgICAgICAgICBhcyBhIHJlc3VsdCBvZiB0aGUgcGFyc2luZy4KKyAqLworCitpbnQKK2RvY2JQYXJzZURvY3VtZW50KGRvY2JQYXJzZXJDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgImRvY2JQYXJzZURvY3VtZW50KCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorICAgIHJldHVybiAoeG1sUGFyc2VEb2N1bWVudChjdHh0KSk7Cit9CisKKy8qKgorICogZG9jYkZyZWVQYXJzZXJDdHh0OgorICogQGN0eHQ6ICBhbiBTR01MIHBhcnNlciBjb250ZXh0CisgKgorICogRnJlZSBhbGwgdGhlIG1lbW9yeSB1c2VkIGJ5IGEgcGFyc2VyIGNvbnRleHQuIEhvd2V2ZXIgdGhlIHBhcnNlZAorICogZG9jdW1lbnQgaW4gY3R4dC0+bXlEb2MgaXMgbm90IGZyZWVkLgorICovCisKK3ZvaWQKK2RvY2JGcmVlUGFyc2VyQ3R4dChkb2NiUGFyc2VyQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2NiRnJlZVBhcnNlckN0eHQoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7Cit9CisKKy8qKgorICogZG9jYlBhcnNlQ2h1bms6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGNodW5rOiAgYW4gY2hhciBhcnJheQorICogQHNpemU6ICB0aGUgc2l6ZSBpbiBieXRlIG9mIHRoZSBjaHVuaworICogQHRlcm1pbmF0ZTogIGxhc3QgY2h1bmsgaW5kaWNhdG9yCisgKgorICogUGFyc2UgYSBDaHVuayBvZiBtZW1vcnkKKyAqCisgKiBSZXR1cm5zIHplcm8gaWYgbm8gZXJyb3IsIHRoZSB4bWxQYXJzZXJFcnJvcnMgb3RoZXJ3aXNlLgorICovCitpbnQKK2RvY2JQYXJzZUNodW5rKGRvY2JQYXJzZXJDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNodW5rIEFUVFJJQlVURV9VTlVTRUQsCisJICAgICAgIGludCBzaXplIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICBpbnQgdGVybWluYXRlIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2NiUGFyc2VDaHVuaygpIGRlcHJlY2F0ZWQgZnVuY3Rpb24gcmVhY2hlZFxuIik7CisgICAgICAgIGRlcHJlY2F0ZWQgPSAxOworICAgIH0KKworICAgIHJldHVybiAoeG1sUGFyc2VDaHVuayhjdHh0LCBjaHVuaywgc2l6ZSwgdGVybWluYXRlKSk7Cit9CisKKy8qKgorICogZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0OgorICogQHNheDogIGEgU0FYIGhhbmRsZXIKKyAqIEB1c2VyX2RhdGE6ICBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MKKyAqIEBjaHVuazogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBjaGFycworICogQHNpemU6ICBudW1iZXIgb2YgY2hhcnMgaW4gdGhlIGFycmF5CisgKiBAZmlsZW5hbWU6ICBhbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJCisgKiBAZW5jOiAgYW4gb3B0aW9uYWwgZW5jb2RpbmcKKyAqCisgKiBDcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgdXNpbmcgdGhlIERvY0Jvb2sgU0dNTCBwYXJzZXIgaW4gcHVzaCBtb2RlCisgKiBUbyBhbGxvdyBjb250ZW50IGVuY29kaW5nIGRldGVjdGlvbiwgQHNpemUgc2hvdWxkIGJlID49IDQKKyAqIFRoZSB2YWx1ZSBvZiBAZmlsZW5hbWUgaXMgdXNlZCBmb3IgZmV0Y2hpbmcgZXh0ZXJuYWwgZW50aXRpZXMKKyAqIGFuZCBlcnJvci93YXJuaW5nIHJlcG9ydHMuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqLworZG9jYlBhcnNlckN0eHRQdHIKK2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dChkb2NiU0FYSGFuZGxlclB0ciBzYXggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyX2RhdGEgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjaHVuayBBVFRSSUJVVEVfVU5VU0VELAorCQkJIGludCBzaXplIEFUVFJJQlVURV9VTlVTRUQsCisJCQkgY29uc3QgY2hhciAqZmlsZW5hbWUgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyRW5jb2RpbmcgZW5jIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2NiUGFyc2VDaHVuaygpIGRlcHJlY2F0ZWQgZnVuY3Rpb24gcmVhY2hlZFxuIik7CisgICAgICAgIGRlcHJlY2F0ZWQgPSAxOworICAgIH0KKworICAgIHJldHVybih4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dChzYXgsIHVzZXJfZGF0YSwgY2h1bmssIHNpemUsIGZpbGVuYW1lKSk7Cit9CisKKy8qKgorICogZG9jYlNBWFBhcnNlRG9jOgorICogQGN1cjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyCisgKiBAZW5jb2Rpbmc6ICBhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBTR01MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAc2F4OiAgdGhlIFNBWCBoYW5kbGVyIGJsb2NrCisgKiBAdXNlckRhdGE6IGlmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLiAKKyAqCisgKiBwYXJzZSBhbiBTR01MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLgorICogSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLgorICogSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCisKK2RvY2JEb2NQdHIKK2RvY2JTQVhQYXJzZURvYyh4bWxDaGFyICogY3VyIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcgQVRUUklCVVRFX1VOVVNFRCwKKwkJZG9jYlNBWEhhbmRsZXJQdHIgc2F4IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgdm9pZCAqdXNlckRhdGEgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgImRvY2JQYXJzZUNodW5rKCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorCisgICAgcmV0dXJuICh4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhKHNheCwgKGNvbnN0IGNoYXIgKiljdXIsCisJCQkgIHhtbFN0cmxlbigoY29uc3QgeG1sQ2hhciAqKSBjdXIpLCAwLCAgdXNlckRhdGEpKTsKK30KKworLyoqCisgKiBkb2NiUGFyc2VEb2M6CisgKiBAY3VyOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIKKyAqIEBlbmNvZGluZzogIGEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIFNHTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqCisgKiBwYXJzZSBhbiBTR01MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCisKK2RvY2JEb2NQdHIKK2RvY2JQYXJzZURvYyh4bWxDaGFyICogY3VyIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgImRvY2JQYXJzZUNodW5rKCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorCisgICAgcmV0dXJuICh4bWxQYXJzZURvYyhjdXIpKTsKK30KKworCisvKioKKyAqIGRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dDoKKyAqIEBmaWxlbmFtZTogIHRoZSBmaWxlbmFtZQorICogQGVuY29kaW5nOiAgdGhlIFNHTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqCisgKiBDcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYSBmaWxlIGNvbnRlbnQuIAorICogQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZAorICogYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqLworZG9jYlBhcnNlckN0eHRQdHIKK2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dChjb25zdCBjaGFyICpmaWxlbmFtZSBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gKHhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0KGZpbGVuYW1lKSk7Cit9CisKKy8qKgorICogZG9jYlNBWFBhcnNlRmlsZToKKyAqIEBmaWxlbmFtZTogIHRoZSBmaWxlbmFtZQorICogQGVuY29kaW5nOiAgYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQHNheDogIHRoZSBTQVggaGFuZGxlciBibG9jaworICogQHVzZXJEYXRhOiBpZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy4gCisgKgorICogcGFyc2UgYW4gU0dNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzCisgKiBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLgorICogSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLgorICogSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLgorICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlCisgKi8KKworZG9jYkRvY1B0cgorZG9jYlNBWFBhcnNlRmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZyBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICBkb2NiU0FYSGFuZGxlclB0ciBzYXggQVRUUklCVVRFX1VOVVNFRCwKKwkJIHZvaWQgKnVzZXJEYXRhIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2NiU0FYUGFyc2VGaWxlKCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorCisgICAgcmV0dXJuICh4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YShzYXgsIGZpbGVuYW1lLCAwLCB1c2VyRGF0YSkpOworfQorCisvKioKKyAqIGRvY2JQYXJzZUZpbGU6CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUKKyAqIEBlbmNvZGluZzogIGEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqCisgKiBwYXJzZSBhIERvY2Jvb2sgU0dNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvcgorICogWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQKKyAqIGF0IGNvbXBpbGUtdGltZS4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCisKK2RvY2JEb2NQdHIKK2RvY2JQYXJzZUZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgImRvY2JQYXJzZUZpbGUoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gKHhtbFBhcnNlRmlsZShmaWxlbmFtZSkpOworfQorI2RlZmluZSBib3R0b21fRE9DQnBhcnNlcgorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfRE9DQl9FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L0hUTUxwYXJzZXIuYyBiL2xpYnhtbDItMi43LjcvSFRNTHBhcnNlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyZGM3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L0hUTUxwYXJzZXIuYwpAQCAtMCwwICsxLDY5MzkgQEAKKy8qCisgKiBIVE1McGFyc2VyLmMgOiBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlcgorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpZmRlZiBIQVZFX0NUWVBFX0gKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkNOVExfSAorI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1pMSUJfSAorI2luY2x1ZGUgPHpsaWIuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHBhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9IVE1MdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbmNvZGluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC92YWxpZC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxJTy5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorCisjZGVmaW5lIEhUTUxfTUFYX05BTUVMRU4gMTAwMAorI2RlZmluZSBIVE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgMTAwMAorI2RlZmluZSBIVE1MX1BBUlNFUl9CVUZGRVJfU0laRSAxMDAKKworLyogI2RlZmluZSBERUJVRyAqLworLyogI2RlZmluZSBERUJVR19QVVNIICovCisKK3N0YXRpYyBpbnQgaHRtbE9taXR0ZWREZWZhdWx0VmFsdWUgPSAxOworCit4bWxDaGFyICogaHRtbERlY29kZUVudGl0aWVzKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBsZW4sCisJCQkgICAgIHhtbENoYXIgZW5kLCB4bWxDaGFyICBlbmQyLCB4bWxDaGFyIGVuZDMpOworc3RhdGljIHZvaWQgaHRtbFBhcnNlQ29tbWVudChodG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJU29tZSBmYWN0b3JpemVkIGVycm9yIHJvdXRpbmVzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBodG1sRXJyTWVtb3J5OgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSByZWRlZmluaXRpb24gb2YgYXR0cmlidXRlIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCitodG1sRXJyTWVtb3J5KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBjdHh0LT5lcnJObyA9IFhNTF9FUlJfTk9fTUVNT1JZOworICAgICAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgIH0KKyAgICBpZiAoZXh0cmEpCisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX05PX01FTU9SWSwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgZXh0cmEsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7CisgICAgZWxzZQorICAgICAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLAorICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9OT19NRU1PUlksIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAwLCAwLCAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkXG4iKTsKK30KKworLyoqCisgKiBodG1sUGFyc2VFcnI6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBtc2c6ICB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6ICBzdHJpbmcgaW5mb3IKKyAqIEBzdHIyOiAgc3RyaW5nIGluZm9yCisgKgorICogSGFuZGxlIGEgZmF0YWwgcGFyc2VyIGVycm9yLCBpLmUuIHZpb2xhdGluZyBXZWxsLUZvcm1lZG5lc3MgY29uc3RyYWludHMKKyAqLworc3RhdGljIHZvaWQKK2h0bWxQYXJzZUVycih4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwljdHh0LT5lcnJObyA9IGVycm9yOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9IVE1MLCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKwkJICAgIChjb25zdCBjaGFyICopIHN0cjEsIChjb25zdCBjaGFyICopIHN0cjIsCisJCSAgICBOVUxMLCAwLCAwLAorCQkgICAgbXNnLCBzdHIxLCBzdHIyKTsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKQorCWN0eHQtPndlbGxGb3JtZWQgPSAwOworfQorCisvKioKKyAqIGh0bWxQYXJzZUVyckludDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAdmFsOiAgaW50ZWdlciBpbmZvCisgKgorICogSGFuZGxlIGEgZmF0YWwgcGFyc2VyIGVycm9yLCBpLmUuIHZpb2xhdGluZyBXZWxsLUZvcm1lZG5lc3MgY29uc3RyYWludHMKKyAqLworc3RhdGljIHZvaWQKK2h0bWxQYXJzZUVyckludCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGludCB2YWwpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwljdHh0LT5lcnJObyA9IGVycm9yOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9IVE1MLCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwgTlVMTCwgTlVMTCwKKwkJICAgIE5VTEwsIHZhbCwgMCwgbXNnLCB2YWwpOworICAgIGlmIChjdHh0ICE9IE5VTEwpCisJY3R4dC0+d2VsbEZvcm1lZCA9IDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJUGFyc2VyIHN0YWNrcyByZWxhdGVkIGZ1bmN0aW9ucyBhbmQgbWFjcm9zCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogaHRtbG5hbWVQdXNoOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAdmFsdWU6ICB0aGUgZWxlbWVudCBuYW1lCisgKgorICogUHVzaGVzIGEgbmV3IGVsZW1lbnQgbmFtZSBvbiB0b3Agb2YgdGhlIG5hbWUgc3RhY2sKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBlcnJvciwgdGhlIGluZGV4IGluIHRoZSBzdGFjayBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoraHRtbG5hbWVQdXNoKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKiB2YWx1ZSkKK3sKKyAgICBpZiAoKGN0eHQtPmh0bWwgPCAzKSAmJiAoeG1sU3RyRXF1YWwodmFsdWUsIEJBRF9DQVNUICJoZWFkIikpKQorICAgICAgICBjdHh0LT5odG1sID0gMzsKKyAgICBpZiAoKGN0eHQtPmh0bWwgPCAxMCkgJiYgKHhtbFN0ckVxdWFsKHZhbHVlLCBCQURfQ0FTVCAiYm9keSIpKSkKKyAgICAgICAgY3R4dC0+aHRtbCA9IDEwOworICAgIGlmIChjdHh0LT5uYW1lTnIgPj0gY3R4dC0+bmFtZU1heCkgeworICAgICAgICBjdHh0LT5uYW1lTWF4ICo9IDI7CisgICAgICAgIGN0eHQtPm5hbWVUYWIgPSAoY29uc3QgeG1sQ2hhciAqICopCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVhbGxvYygoeG1sQ2hhciAqICopY3R4dC0+bmFtZVRhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPm5hbWVNYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPm5hbWVUYWJbMF0pKTsKKyAgICAgICAgaWYgKGN0eHQtPm5hbWVUYWIgPT0gTlVMTCkgeworICAgICAgICAgICAgaHRtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgY3R4dC0+bmFtZVRhYltjdHh0LT5uYW1lTnJdID0gdmFsdWU7CisgICAgY3R4dC0+bmFtZSA9IHZhbHVlOworICAgIHJldHVybiAoY3R4dC0+bmFtZU5yKyspOworfQorLyoqCisgKiBodG1sbmFtZVBvcDoKKyAqIEBjdHh0OiBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUG9wcyB0aGUgdG9wIGVsZW1lbnQgbmFtZSBmcm9tIHRoZSBuYW1lIHN0YWNrCisgKgorICogUmV0dXJucyB0aGUgbmFtZSBqdXN0IHJlbW92ZWQKKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoraHRtbG5hbWVQb3AoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBjb25zdCB4bWxDaGFyICpyZXQ7CisKKyAgICBpZiAoY3R4dC0+bmFtZU5yIDw9IDApCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgY3R4dC0+bmFtZU5yLS07CisgICAgaWYgKGN0eHQtPm5hbWVOciA8IDApCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaWYgKGN0eHQtPm5hbWVOciA+IDApCisgICAgICAgIGN0eHQtPm5hbWUgPSBjdHh0LT5uYW1lVGFiW2N0eHQtPm5hbWVOciAtIDFdOworICAgIGVsc2UKKyAgICAgICAgY3R4dC0+bmFtZSA9IE5VTEw7CisgICAgcmV0ID0gY3R4dC0+bmFtZVRhYltjdHh0LT5uYW1lTnJdOworICAgIGN0eHQtPm5hbWVUYWJbY3R4dC0+bmFtZU5yXSA9IE5VTEw7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIGh0bWxOb2RlSW5mb1B1c2g6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEB2YWx1ZTogIHRoZSBub2RlIGluZm8KKyAqCisgKiBQdXNoZXMgYSBuZXcgZWxlbWVudCBuYW1lIG9uIHRvcCBvZiB0aGUgbm9kZSBpbmZvIHN0YWNrCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK2h0bWxOb2RlSW5mb1B1c2goaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgaHRtbFBhcnNlck5vZGVJbmZvICp2YWx1ZSkKK3sKKyAgICBpZiAoY3R4dC0+bm9kZUluZm9OciA+PSBjdHh0LT5ub2RlSW5mb01heCkgeworICAgICAgICBpZiAoY3R4dC0+bm9kZUluZm9NYXggPT0gMCkKKyAgICAgICAgICAgICAgICBjdHh0LT5ub2RlSW5mb01heCA9IDU7CisgICAgICAgIGN0eHQtPm5vZGVJbmZvTWF4ICo9IDI7CisgICAgICAgIGN0eHQtPm5vZGVJbmZvVGFiID0gKGh0bWxQYXJzZXJOb2RlSW5mbyAqKQorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlYWxsb2MoKGh0bWxQYXJzZXJOb2RlSW5mbyAqKWN0eHQtPm5vZGVJbmZvVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+bm9kZUluZm9NYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPm5vZGVJbmZvVGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT5ub2RlSW5mb1RhYiA9PSBOVUxMKSB7CisgICAgICAgICAgICBodG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBjdHh0LT5ub2RlSW5mb1RhYltjdHh0LT5ub2RlSW5mb05yXSA9ICp2YWx1ZTsKKyAgICBjdHh0LT5ub2RlSW5mbyA9ICZjdHh0LT5ub2RlSW5mb1RhYltjdHh0LT5ub2RlSW5mb05yXTsKKyAgICByZXR1cm4gKGN0eHQtPm5vZGVJbmZvTnIrKyk7Cit9CisKKy8qKgorICogaHRtbE5vZGVJbmZvUG9wOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUG9wcyB0aGUgdG9wIGVsZW1lbnQgbmFtZSBmcm9tIHRoZSBub2RlIGluZm8gc3RhY2sKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBlcnJvciwgdGhlIHBvaW50ZXIgdG8gTm9kZUluZm8gb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBodG1sUGFyc2VyTm9kZUluZm8gKgoraHRtbE5vZGVJbmZvUG9wKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgaWYgKGN0eHQtPm5vZGVJbmZvTnIgPD0gMCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjdHh0LT5ub2RlSW5mb05yLS07CisgICAgaWYgKGN0eHQtPm5vZGVJbmZvTnIgPCAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmIChjdHh0LT5ub2RlSW5mb05yID4gMCkKKyAgICAgICAgY3R4dC0+bm9kZUluZm8gPSAmY3R4dC0+bm9kZUluZm9UYWJbY3R4dC0+bm9kZUluZm9OciAtIDFdOworICAgIGVsc2UKKyAgICAgICAgY3R4dC0+bm9kZUluZm8gPSBOVUxMOworICAgIHJldHVybiAmY3R4dC0+bm9kZUluZm9UYWJbY3R4dC0+bm9kZUluZm9Ocl07Cit9CisKKy8qCisgKiBNYWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUgY29udGVudC4gVGhvc2Ugc2hvdWxkIGJlIHVzZWQgb25seSBieSB0aGUgcGFyc2VyLAorICogYW5kIG5vdCBleHBvcnRlZC4KKyAqCisgKiBEaXJ0eSBtYWNyb3MsIGkuZS4gb25lIG5lZWQgdG8gbWFrZSBhc3N1bXB0aW9uIG9uIHRoZSBjb250ZXh0IHRvIHVzZSB0aGVtCisgKgorICogICBDVVJfUFRSIHJldHVybiB0aGUgY3VycmVudCBwb2ludGVyIHRvIHRoZSB4bWxDaGFyIHRvIGJlIHBhcnNlZC4KKyAqICAgQ1VSICAgICByZXR1cm5zIHRoZSBjdXJyZW50IHhtbENoYXIgdmFsdWUsIGkuZS4gYSA4IGJpdCB2YWx1ZSBpZiBjb21waWxlZAorICogICAgICAgICAgIGluIElTTy1MYXRpbiBvciBVVEYtOCwgYW5kIHRoZSBjdXJyZW50IDE2IGJpdCB2YWx1ZSBpZiBjb21waWxlZAorICogICAgICAgICAgIGluIFVOSUNPREUgbW9kZS4gVGhpcyBzaG91bGQgYmUgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBwYXJzZXIKKyAqICAgICAgICAgICBvbmx5IHRvIGNvbXBhcmUgdG8gQVNDSUkgdmFsdWVzIG90aGVyd2lzZSBpdCB3b3VsZCBicmVhayB3aGVuCisgKiAgICAgICAgICAgcnVubmluZyB3aXRoIFVURi04IGVuY29kaW5nLgorICogICBOWFQobikgIHJldHVybnMgdGhlIG4ndGggbmV4dCB4bWxDaGFyLiBTYW1lIGFzIENVUiBpcyBzaG91bGQgYmUgdXNlZCBvbmx5CisgKiAgICAgICAgICAgdG8gY29tcGFyZSBvbiBBU0NJSSBiYXNlZCBzdWJzdHJpbmcuCisgKiAgIFVQUChuKSAgcmV0dXJucyB0aGUgbid0aCBuZXh0IHhtbENoYXIgY29udmVydGVkIHRvIHVwcGVyY2FzZS4gU2FtZSBhcyBDVVIKKyAqICAgICAgICAgICBpdCBzaG91bGQgYmUgdXNlZCBvbmx5IHRvIGNvbXBhcmUgb24gQVNDSUkgYmFzZWQgc3Vic3RyaW5nLgorICogICBTS0lQKG4pIFNraXAgbiB4bWxDaGFyLCBhbmQgbXVzdCBhbHNvIGJlIHVzZWQgb25seSB0byBza2lwIEFTQ0lJIGRlZmluZWQKKyAqICAgICAgICAgICBzdHJpbmdzIHdpdGhvdXQgbmV3bGluZXMgd2l0aGluIHRoZSBwYXJzZXIuCisgKgorICogQ2xlYW4gbWFjcm9zLCBub3QgZGVwZW5kZW50IG9mIGFuIEFTQ0lJIGNvbnRleHQsIGV4cGVjdCBVVEYtOCBlbmNvZGluZworICoKKyAqICAgQ1VSUkVOVCBSZXR1cm5zIHRoZSBjdXJyZW50IGNoYXIgdmFsdWUsIHdpdGggdGhlIGZ1bGwgZGVjb2Rpbmcgb2YKKyAqICAgICAgICAgICBVVEYtOCBpZiB3ZSBhcmUgdXNpbmcgdGhpcyBtb2RlLiBJdCByZXR1cm5zIGFuIGludC4KKyAqICAgTkVYVCAgICBTa2lwIHRvIHRoZSBuZXh0IGNoYXJhY3RlciwgdGhpcyBkb2VzIHRoZSBwcm9wZXIgZGVjb2RpbmcKKyAqICAgICAgICAgICBpbiBVVEYtOCBtb2RlLiBJdCBhbHNvIHBvcC11cCB1bmZpbmlzaGVkIGVudGl0aWVzIG9uIHRoZSBmbHkuCisgKiAgIE5FWFRMKGwpIFNraXAgdGhlIGN1cnJlbnQgdW5pY29kZSBjaGFyYWN0ZXIgb2YgbCB4bWxDaGFycyBsb25nLgorICogICBDT1BZKHRvKSBjb3B5IG9uZSBjaGFyIHRvICp0bywgaW5jcmVtZW50IENVUl9QVFIgYW5kIHRvIGFjY29yZGluZ2x5CisgKi8KKworI2RlZmluZSBVUFBFUiAodG91cHBlcigqY3R4dC0+aW5wdXQtPmN1cikpCisKKyNkZWZpbmUgU0tJUCh2YWwpIGN0eHQtPm5iQ2hhcnMgKz0gKHZhbCksY3R4dC0+aW5wdXQtPmN1ciArPSAodmFsKSxjdHh0LT5pbnB1dC0+Y29sKz0odmFsKQorCisjZGVmaW5lIE5YVCh2YWwpIGN0eHQtPmlucHV0LT5jdXJbKHZhbCldCisKKyNkZWZpbmUgVVBQKHZhbCkgKHRvdXBwZXIoY3R4dC0+aW5wdXQtPmN1clsodmFsKV0pKQorCisjZGVmaW5lIENVUl9QVFIgY3R4dC0+aW5wdXQtPmN1cgorCisjZGVmaW5lIFNIUklOSyBpZiAoKGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSA+IDIgKiBJTlBVVF9DSFVOSykgJiYgXAorCQkgICAoY3R4dC0+aW5wdXQtPmVuZCAtIGN0eHQtPmlucHV0LT5jdXIgPCAyICogSU5QVVRfQ0hVTkspKSBcCisJeG1sUGFyc2VySW5wdXRTaHJpbmsoY3R4dC0+aW5wdXQpCisKKyNkZWZpbmUgR1JPVyBpZiAoKGN0eHQtPnByb2dyZXNzaXZlID09IDApICYmCQkJCVwKKwkJIChjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1ciA8IElOUFVUX0NIVU5LKSkJXAorCXhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspCisKKyNkZWZpbmUgQ1VSUkVOVCAoKGludCkgKCpjdHh0LT5pbnB1dC0+Y3VyKSkKKworI2RlZmluZSBTS0lQX0JMQU5LUyBodG1sU2tpcEJsYW5rQ2hhcnMoY3R4dCkKKworLyogSW5wb3J0ZWQgZnJvbSBYTUwgKi8KKworLyogI2RlZmluZSBDVVIgKGN0eHQtPnRva2VuID8gY3R4dC0+dG9rZW4gOiAoaW50KSAoKmN0eHQtPmlucHV0LT5jdXIpKSAqLworI2RlZmluZSBDVVIgKChpbnQpICgqY3R4dC0+aW5wdXQtPmN1cikpCisjZGVmaW5lIE5FWFQgeG1sTmV4dENoYXIoY3R4dCkKKworI2RlZmluZSBSQVcgKGN0eHQtPnRva2VuID8gLTEgOiAoKmN0eHQtPmlucHV0LT5jdXIpKQorCisKKyNkZWZpbmUgTkVYVEwobCkgZG8gewkJCQkJCQlcCisgICAgaWYgKCooY3R4dC0+aW5wdXQtPmN1cikgPT0gJ1xuJykgewkJCQkJXAorCWN0eHQtPmlucHV0LT5saW5lKys7IGN0eHQtPmlucHV0LT5jb2wgPSAxOwkJCVwKKyAgICB9IGVsc2UgY3R4dC0+aW5wdXQtPmNvbCsrOwkJCQkJCVwKKyAgICBjdHh0LT50b2tlbiA9IDA7IGN0eHQtPmlucHV0LT5jdXIgKz0gbDsgY3R4dC0+bmJDaGFycysrOwkJXAorICB9IHdoaWxlICgwKQorCisvKioqKioqKioqKioqCisgICAgXAorICAgIGlmICgqY3R4dC0+aW5wdXQtPmN1ciA9PSAnJScpIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlKGN0eHQpOwlcCisgICAgaWYgKCpjdHh0LT5pbnB1dC0+Y3VyID09ICcmJykgeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlKGN0eHQpOworICoqKioqKioqKioqKi8KKworI2RlZmluZSBDVVJfQ0hBUihsKSBodG1sQ3VycmVudENoYXIoY3R4dCwgJmwpCisjZGVmaW5lIENVUl9TQ0hBUihzLCBsKSB4bWxTdHJpbmdDdXJyZW50Q2hhcihjdHh0LCBzLCAmbCkKKworI2RlZmluZSBDT1BZX0JVRihsLGIsaSx2KQkJCQkJCVwKKyAgICBpZiAobCA9PSAxKSBiW2krK10gPSAoeG1sQ2hhcikgdjsJCQkJCVwKKyAgICBlbHNlIGkgKz0geG1sQ29weUNoYXIobCwmYltpXSx2KQorCisvKioKKyAqIGh0bWxGaW5kRW5jb2Rpbmc6CisgKiBAdGhlIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBUeSB0byBmaW5kIGFuZCBlbmNvZGluZyBpbiB0aGUgY3VycmVudCBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgaW5wdXQKKyAqIGJ1ZmZlciB0aGlzIGlzIG5lZWRlZCB0byB0cnkgdG8gc3dpdGNoIHRvIHRoZSBwcm9wZXIgZW5jb2Rpbmcgd2hlbgorICogb25lIGZhY2UgYSBjaGFyYWN0ZXIgZXJyb3IuCisgKiBUaGF0J3MgYW4gaGV1cmlzdGljLCBzaW5jZSBpdCdzIG9wZXJhdGluZyBvdXRzaWRlIG9mIHBhcnNpbmcgaXQgY291bGQKKyAqIHRyeSB0byB1c2UgYSBtZXRhIHdoaWNoIGhhZCBiZWVuIGNvbW1lbnRlZCBvdXQsIHRoYXQncyB0aGUgcmVhc29uIGl0CisgKiBzaG91bGQgb25seSBiZSB1c2VkIGluIGNhc2Ugb2YgZXJyb3IsIG5vdCBhcyBhIGRlZmF1bHQuCisgKgorICogUmV0dXJucyBhbiBlbmNvZGluZyBzdHJpbmcgb3IgTlVMTCBpZiBub3QgZm91bmQsIHRoZSBzdHJpbmcgbmVlZCB0bworICogICBiZSBmcmVlZAorICovCitzdGF0aWMgeG1sQ2hhciAqCitodG1sRmluZEVuY29kaW5nKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKnN0YXJ0LCAqY3VyLCAqZW5kOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5pbnB1dCA9PSBOVUxMKSB8fAorICAgICAgICAoY3R4dC0+aW5wdXQtPmVuY29kaW5nICE9IE5VTEwpIHx8IChjdHh0LT5pbnB1dC0+YnVmID09IE5VTEwpIHx8CisgICAgICAgIChjdHh0LT5pbnB1dC0+YnVmLT5lbmNvZGVyICE9IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKChjdHh0LT5pbnB1dC0+Y3VyID09IE5VTEwpIHx8IChjdHh0LT5pbnB1dC0+ZW5kID09IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICBzdGFydCA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgZW5kID0gY3R4dC0+aW5wdXQtPmVuZDsKKyAgICAvKiB3ZSBhbHNvIGV4cGVjdCB0aGUgaW5wdXQgYnVmZmVyIHRvIGJlIHplcm8gdGVybWluYXRlZCAqLworICAgIGlmICgqZW5kICE9IDApCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIGN1ciA9IHhtbFN0cmNhc2VzdHIoc3RhcnQsIEJBRF9DQVNUICJIVFRQLUVRVUlWIik7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3VyID0geG1sU3RyY2FzZXN0cihjdXIsIEJBRF9DQVNUICAiQ09OVEVOVCIpOworICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGN1ciA9IHhtbFN0cmNhc2VzdHIoY3VyLCBCQURfQ0FTVCAgIkNIQVJTRVQ9Iik7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3VyICs9IDg7CisgICAgc3RhcnQgPSBjdXI7CisgICAgd2hpbGUgKCgoKmN1ciA+PSAnQScpICYmICgqY3VyIDw9ICdaJykpIHx8CisgICAgICAgICAgICgoKmN1ciA+PSAnYScpICYmICgqY3VyIDw9ICd6JykpIHx8CisgICAgICAgICAgICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpIHx8CisgICAgICAgICAgICgqY3VyID09ICctJykgfHwgKCpjdXIgPT0gJ18nKSB8fCAoKmN1ciA9PSAnOicpIHx8ICgqY3VyID09ICcvJykpCisgICAgICAgICAgIGN1cisrOworICAgIGlmIChjdXIgPT0gc3RhcnQpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXR1cm4oeG1sU3RybmR1cChzdGFydCwgY3VyIC0gc3RhcnQpKTsKK30KKworLyoqCisgKiBodG1sQ3VycmVudENoYXI6CisgKiBAY3R4dDogIHRoZSBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAbGVuOiAgcG9pbnRlciB0byB0aGUgbGVuZ3RoIG9mIHRoZSBjaGFyIHJlYWQKKyAqCisgKiBUaGUgY3VycmVudCBjaGFyIHZhbHVlLCBpZiB1c2luZyBVVEYtOCB0aGlzIG1heSBhY3R1YWxseSBzcGFuIG11bHRpcGxlCisgKiBieXRlcyBpbiB0aGUgaW5wdXQgYnVmZmVyLiBJbXBsZW1lbnQgdGhlIGVuZCBvZiBsaW5lIG5vcm1hbGl6YXRpb246CisgKiAyLjExIEVuZC1vZi1MaW5lIEhhbmRsaW5nCisgKiBJZiB0aGUgZW5jb2RpbmcgaXMgdW5zcGVjaWZpZWQsIGluIHRoZSBjYXNlIHdlIGZpbmQgYW4gSVNPLUxhdGluLTEKKyAqIGNoYXIsIHRoZW4gdGhlIGVuY29kaW5nIGNvbnZlcnRlciBpcyBwbHVnZ2VkIGluIGF1dG9tYXRpY2FsbHkuCisgKgorICogUmV0dXJucyB0aGUgY3VycmVudCBjaGFyIHZhbHVlIGFuZCBpdHMgbGVuZ3RoCisgKi8KKworc3RhdGljIGludAoraHRtbEN1cnJlbnRDaGFyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50ICpsZW4pIHsKKyAgICBpZiAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikKKwlyZXR1cm4oMCk7CisKKyAgICBpZiAoY3R4dC0+dG9rZW4gIT0gMCkgeworCSpsZW4gPSAwOworCXJldHVybihjdHh0LT50b2tlbik7CisgICAgfQorICAgIGlmIChjdHh0LT5jaGFyc2V0ID09IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpIHsKKwkvKgorCSAqIFdlIGFyZSBzdXBwb3NlZCB0byBoYW5kbGUgVVRGOCwgY2hlY2sgaXQncyB2YWxpZAorCSAqIEZyb20gcmZjMjA0NDogZW5jb2Rpbmcgb2YgdGhlIFVuaWNvZGUgdmFsdWVzIG9uIFVURi04OgorCSAqCisJICogVUNTLTQgcmFuZ2UgKGhleC4pICAgICAgICAgICBVVEYtOCBvY3RldCBzZXF1ZW5jZSAoYmluYXJ5KQorCSAqIDAwMDAgMDAwMC0wMDAwIDAwN0YgICAweHh4eHh4eAorCSAqIDAwMDAgMDA4MC0wMDAwIDA3RkYgICAxMTB4eHh4eCAxMHh4eHh4eAorCSAqIDAwMDAgMDgwMC0wMDAwIEZGRkYgICAxMTEweHh4eCAxMHh4eHh4eCAxMHh4eHh4eAorCSAqCisJICogQ2hlY2sgZm9yIHRoZSAweDExMDAwMCBsaW1pdCB0b28KKwkgKi8KKwljb25zdCB1bnNpZ25lZCBjaGFyICpjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworCXVuc2lnbmVkIGNoYXIgYzsKKwl1bnNpZ25lZCBpbnQgdmFsOworCisJYyA9ICpjdXI7CisJaWYgKGMgJiAweDgwKSB7CisJICAgIGlmIChjdXJbMV0gPT0gMCkgeworCQl4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKKyAgICAgICAgICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworICAgICAgICAgICAgfQorCSAgICBpZiAoKGN1clsxXSAmIDB4YzApICE9IDB4ODApCisJCWdvdG8gZW5jb2RpbmdfZXJyb3I7CisJICAgIGlmICgoYyAmIDB4ZTApID09IDB4ZTApIHsKKworCQlpZiAoY3VyWzJdID09IDApIHsKKwkJICAgIHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOworICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworICAgICAgICAgICAgICAgIH0KKwkJaWYgKChjdXJbMl0gJiAweGMwKSAhPSAweDgwKQorCQkgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKwkJaWYgKChjICYgMHhmMCkgPT0gMHhmMCkgeworCQkgICAgaWYgKGN1clszXSA9PSAwKSB7CisJCQl4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1ciA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgICAgICAgICAgICAgICAgIH0KKwkJICAgIGlmICgoKGMgJiAweGY4KSAhPSAweGYwKSB8fAorCQkJKChjdXJbM10gJiAweGMwKSAhPSAweDgwKSkKKwkJCWdvdG8gZW5jb2RpbmdfZXJyb3I7CisJCSAgICAvKiA0LWJ5dGUgY29kZSAqLworCQkgICAgKmxlbiA9IDQ7CisJCSAgICB2YWwgPSAoY3VyWzBdICYgMHg3KSA8PCAxODsKKwkJICAgIHZhbCB8PSAoY3VyWzFdICYgMHgzZikgPDwgMTI7CisJCSAgICB2YWwgfD0gKGN1clsyXSAmIDB4M2YpIDw8IDY7CisJCSAgICB2YWwgfD0gY3VyWzNdICYgMHgzZjsKKwkJfSBlbHNlIHsKKwkJICAvKiAzLWJ5dGUgY29kZSAqLworCQkgICAgKmxlbiA9IDM7CisJCSAgICB2YWwgPSAoY3VyWzBdICYgMHhmKSA8PCAxMjsKKwkJICAgIHZhbCB8PSAoY3VyWzFdICYgMHgzZikgPDwgNjsKKwkJICAgIHZhbCB8PSBjdXJbMl0gJiAweDNmOworCQl9CisJICAgIH0gZWxzZSB7CisJICAgICAgLyogMi1ieXRlIGNvZGUgKi8KKwkJKmxlbiA9IDI7CisJCXZhbCA9IChjdXJbMF0gJiAweDFmKSA8PCA2OworCQl2YWwgfD0gY3VyWzFdICYgMHgzZjsKKwkgICAgfQorCSAgICBpZiAoIUlTX0NIQVIodmFsKSkgeworCSAgICAgICAgaHRtbFBhcnNlRXJySW50KGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorCQkJCSJDaGFyIDB4JVggb3V0IG9mIGFsbG93ZWQgcmFuZ2VcbiIsIHZhbCk7CisJICAgIH0KKwkgICAgcmV0dXJuKHZhbCk7CisJfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkgJiYKKyAgICAgICAgICAgICAgICAoY3R4dC0+aW5wdXQtPmN1ciA8IGN0eHQtPmlucHV0LT5lbmQpKSB7CisgICAgICAgICAgICAgICAgICAgIGh0bWxQYXJzZUVyckludChjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKwkJCQkiQ2hhciAweCVYIG91dCBvZiBhbGxvd2VkIHJhbmdlXG4iLCAwKTsKKyAgICAgICAgICAgICAgICAqbGVuID0gMTsKKyAgICAgICAgICAgICAgICByZXR1cm4oJyAnKTsKKyAgICAgICAgICAgIH0KKwkgICAgLyogMS1ieXRlIGNvZGUgKi8KKwkgICAgKmxlbiA9IDE7CisJICAgIHJldHVybigoaW50KSAqY3R4dC0+aW5wdXQtPmN1cik7CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIEFzc3VtZSBpdCdzIGEgZml4ZWQgbGVuZ3RoIGVuY29kaW5nICgxKSB3aXRoCisgICAgICogYSBjb21wYXRpYmxlIGVuY29kaW5nIGZvciB0aGUgQVNDSUkgc2V0LCBzaW5jZQorICAgICAqIFhNTCBjb25zdHJ1Y3RzIG9ubHkgdXNlIDwgMTI4IGNoYXJzCisgICAgICovCisgICAgKmxlbiA9IDE7CisgICAgaWYgKChpbnQpICpjdHh0LT5pbnB1dC0+Y3VyIDwgMHg4MCkKKwlyZXR1cm4oKGludCkgKmN0eHQtPmlucHV0LT5jdXIpOworCisgICAgLyoKKyAgICAgKiBIdW1tIHRoaXMgaXMgYmFkLCBkbyBhbiBhdXRvbWF0aWMgZmxvdyBjb252ZXJzaW9uCisgICAgICovCisgICAgeworICAgICAgICB4bWxDaGFyICogZ3Vlc3M7CisgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsKKworICAgICAgICBndWVzcyA9IGh0bWxGaW5kRW5jb2RpbmcoY3R4dCk7CisgICAgICAgIGlmIChndWVzcyA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxTd2l0Y2hFbmNvZGluZyhjdHh0LCBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGN0eHQtPmlucHV0LT5lbmNvZGluZyAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgY3R4dC0+aW5wdXQtPmVuY29kaW5nKTsKKyAgICAgICAgICAgIGN0eHQtPmlucHV0LT5lbmNvZGluZyA9IGd1ZXNzOworICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKChjb25zdCBjaGFyICopIGd1ZXNzKTsKKyAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxTd2l0Y2hUb0VuY29kaW5nKGN0eHQsIGhhbmRsZXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0VOQ09ESU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5zdXBwb3J0ZWQgZW5jb2RpbmcgJXMiLCBndWVzcywgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY3R4dC0+Y2hhcnNldCA9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjg7CisgICAgfQorCisgICAgcmV0dXJuKHhtbEN1cnJlbnRDaGFyKGN0eHQsIGxlbikpOworCitlbmNvZGluZ19lcnJvcjoKKyAgICAvKgorICAgICAqIElmIHdlIGRldGVjdCBhbiBVVEY4IGVycm9yIHRoYXQgcHJvYmFibHkgbWVhbiB0aGF0IHRoZQorICAgICAqIGlucHV0IGVuY29kaW5nIGRpZG4ndCBnZXQgcHJvcGVybHkgYWR2ZXJ0aXplZCBpbiB0aGUKKyAgICAgKiBkZWNsYXJhdGlvbiBoZWFkZXIuIFJlcG9ydCB0aGUgZXJyb3IgYW5kIHN3aXRjaCB0aGUgZW5jb2RpbmcKKyAgICAgKiB0byBJU08tTGF0aW4tMSAoaWYgeW91IGRvbid0IGxpa2UgdGhpcyBwb2xpY3ksIGp1c3QgZGVjbGFyZSB0aGUKKyAgICAgKiBlbmNvZGluZyAhKQorICAgICAqLworICAgIHsKKyAgICAgICAgY2hhciBidWZmZXJbMTUwXTsKKworCWlmIChjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1ciA+PSA0KSB7CisJICAgIHNucHJpbnRmKGJ1ZmZlciwgMTQ5LCAiQnl0ZXM6IDB4JTAyWCAweCUwMlggMHglMDJYIDB4JTAyWFxuIiwKKwkJCSAgICBjdHh0LT5pbnB1dC0+Y3VyWzBdLCBjdHh0LT5pbnB1dC0+Y3VyWzFdLAorCQkJICAgIGN0eHQtPmlucHV0LT5jdXJbMl0sIGN0eHQtPmlucHV0LT5jdXJbM10pOworCX0gZWxzZSB7CisJICAgIHNucHJpbnRmKGJ1ZmZlciwgMTQ5LCAiQnl0ZXM6IDB4JTAyWFxuIiwgY3R4dC0+aW5wdXQtPmN1clswXSk7CisJfQorCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkcsCisJCSAgICAgIklucHV0IGlzIG5vdCBwcm9wZXIgVVRGLTgsIGluZGljYXRlIGVuY29kaW5nICFcbiIsCisJCSAgICAgQkFEX0NBU1QgYnVmZmVyLCBOVUxMKTsKKyAgICB9CisKKyAgICBjdHh0LT5jaGFyc2V0ID0gWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8xOworICAgICpsZW4gPSAxOworICAgIHJldHVybigoaW50KSAqY3R4dC0+aW5wdXQtPmN1cik7Cit9CisKKy8qKgorICogaHRtbFNraXBCbGFua0NoYXJzOgorICogQGN0eHQ6ICB0aGUgSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHNraXAgYWxsIGJsYW5rcyBjaGFyYWN0ZXIgZm91bmQgYXQgdGhhdCBwb2ludCBpbiB0aGUgaW5wdXQgc3RyZWFtcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygc3BhY2UgY2hhcnMgc2tpcHBlZAorICovCisKK3N0YXRpYyBpbnQKK2h0bWxTa2lwQmxhbmtDaGFycyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgcmVzID0gMDsKKworICAgIHdoaWxlIChJU19CTEFOS19DSCgqKGN0eHQtPmlucHV0LT5jdXIpKSkgeworCWlmICgoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkgJiYKKwkgICAgKHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspIDw9IDApKSB7CisJCXhtbFBvcElucHV0KGN0eHQpOworCX0gZWxzZSB7CisJICAgIGlmICgqKGN0eHQtPmlucHV0LT5jdXIpID09ICdcbicpIHsKKwkJY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CisJICAgIH0gZWxzZSBjdHh0LT5pbnB1dC0+Y29sKys7CisJICAgIGN0eHQtPmlucHV0LT5jdXIrKzsKKwkgICAgY3R4dC0+bmJDaGFycysrOworCSAgICBpZiAoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkKKwkJeG1sUGFyc2VySW5wdXRHcm93KGN0eHQtPmlucHV0LCBJTlBVVF9DSFVOSyk7CisJfQorCXJlcysrOworICAgIH0KKyAgICByZXR1cm4ocmVzKTsKK30KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJVGhlIGxpc3Qgb2YgSFRNTCBlbGVtZW50cyBhbmQgdGhlaXIgcHJvcGVydGllcwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogIFN0YXJ0IFRhZzogMSBtZWFucyB0aGUgc3RhcnQgdGFnIGNhbiBiZSBvbW1pdGVkCisgKiAgRW5kIFRhZzogICAxIG1lYW5zIHRoZSBlbmQgdGFnIGNhbiBiZSBvbW1pdGVkCisgKiAgICAgICAgICAgICAyIG1lYW5zIGl0J3MgZm9yYmlkZGVuIChlbXB0eSBlbGVtZW50cykKKyAqICAgICAgICAgICAgIDMgbWVhbnMgdGhlIHRhZyBpcyBzdHlsaXN0aWMgYW5kIHNob3VsZCBiZSBjbG9zZWQgZWFzaWx5CisgKiAgRGVwcjogICAgICB0aGlzIGVsZW1lbnQgaXMgZGVwcmVjYXRlZAorICogIERURDogICAgICAgMSBtZWFucyB0aGF0IHRoaXMgZWxlbWVudCBpcyB2YWxpZCBvbmx5IGluIHRoZSBMb29zZSBEVEQKKyAqICAgICAgICAgICAgIDIgbWVhbnMgdGhhdCB0aGlzIGVsZW1lbnQgaXMgdmFsaWQgb25seSBpbiB0aGUgRnJhbWVzZXQgRFRECisgKgorICogTmFtZSxTdGFydCBUYWcsRW5kIFRhZyxTYXZlIEVuZCxFbXB0eSxEZXByZWNhdGVkLERURCxpbmxpbmUsRGVzY3JpcHRpb24KKwksIHN1YkVsZW1lbnRzICwgaW1wbGllZHN1YmVsdCAsIEF0dHJpYnV0ZXMsIHVzZXJkYXRhCisgKi8KKworLyogRGVmaW5pdGlvbnMgYW5kIGEgY291cGxlIG9mIHZhcnMgZm9yIEhUTUwgRWxlbWVudHMgKi8KKworI2RlZmluZSBGT05UU1RZTEUgInR0IiwgImkiLCAiYiIsICJ1IiwgInMiLCAic3RyaWtlIiwgImJpZyIsICJzbWFsbCIKKyNkZWZpbmUgTkJfRk9OVFNUWUxFIDgKKyNkZWZpbmUgUEhSQVNFICJlbSIsICJzdHJvbmciLCAiZGZuIiwgImNvZGUiLCAic2FtcCIsICJrYmQiLCAidmFyIiwgImNpdGUiLCAiYWJiciIsICJhY3JvbnltIgorI2RlZmluZSBOQl9QSFJBU0UgMTAKKyNkZWZpbmUgU1BFQ0lBTCAiYSIsICJpbWciLCAiYXBwbGV0IiwgImVtYmVkIiwgIm9iamVjdCIsICJmb250IiwgImJhc2Vmb250IiwgImJyIiwgInNjcmlwdCIsICJtYXAiLCAicSIsICJzdWIiLCAic3VwIiwgInNwYW4iLCAiYmRvIiwgImlmcmFtZSIKKyNkZWZpbmUgTkJfU1BFQ0lBTCAxNgorI2RlZmluZSBJTkxJTkUgRk9OVFNUWUxFLCBQSFJBU0UsIFNQRUNJQUwsIEZPUk1DVFJMCisjZGVmaW5lIE5CX0lOTElORSBOQl9QQ0RBVEEgKyBOQl9GT05UU1RZTEUgKyBOQl9QSFJBU0UgKyBOQl9TUEVDSUFMICsgTkJfRk9STUNUUkwKKyNkZWZpbmUgQkxPQ0sgSEVBRElORywgTElTVCwgInByZSIsICJwIiwgImRsIiwgImRpdiIsICJjZW50ZXIiLCAibm9zY3JpcHQiLCAibm9mcmFtZXMiLCAiYmxvY2txdW90ZSIsICJmb3JtIiwgImlzaW5kZXgiLCAiaHIiLCAidGFibGUiLCAiZmllbGRzZXQiLCAiYWRkcmVzcyIKKyNkZWZpbmUgTkJfQkxPQ0sgTkJfSEVBRElORyArIE5CX0xJU1QgKyAxNAorI2RlZmluZSBGT1JNQ1RSTCAiaW5wdXQiLCAic2VsZWN0IiwgInRleHRhcmVhIiwgImxhYmVsIiwgImJ1dHRvbiIKKyNkZWZpbmUgTkJfRk9STUNUUkwgNQorI2RlZmluZSBQQ0RBVEEKKyNkZWZpbmUgTkJfUENEQVRBIDAKKyNkZWZpbmUgSEVBRElORyAiaDEiLCAiaDIiLCAiaDMiLCAiaDQiLCAiaDUiLCAiaDYiCisjZGVmaW5lIE5CX0hFQURJTkcgNgorI2RlZmluZSBMSVNUICJ1bCIsICJvbCIsICJkaXIiLCAibWVudSIKKyNkZWZpbmUgTkJfTElTVCA0CisjZGVmaW5lIE1PRElGSUVSCisjZGVmaW5lIE5CX01PRElGSUVSIDAKKyNkZWZpbmUgRkxPVyBCTE9DSyxJTkxJTkUKKyNkZWZpbmUgTkJfRkxPVyBOQl9CTE9DSyArIE5CX0lOTElORQorI2RlZmluZSBFTVBUWSBOVUxMCisKKworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGh0bWxfZmxvd1tdID0geyBGTE9XLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGh0bWxfaW5saW5lW10gPSB7IElOTElORSwgTlVMTCB9IDsKKworLyogcGxhY2Vob2xkZXJzOiBlbHRzIHdpdGggY29udGVudCBidXQgbm8gc3ViZWxlbWVudHMgKi8KK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBodG1sX3BjZGF0YVtdID0geyBOVUxMIH0gOworI2RlZmluZSBodG1sX2NkYXRhIGh0bWxfcGNkYXRhCisKKworLyogLi4uIGFuZCBmb3IgSFRNTCBBdHRyaWJ1dGVzICovCisKKyNkZWZpbmUgQ09SRUFUVFJTICJpZCIsICJjbGFzcyIsICJzdHlsZSIsICJ0aXRsZSIKKyNkZWZpbmUgTkJfQ09SRUFUVFJTIDQKKyNkZWZpbmUgSTE4TiAibGFuZyIsICJkaXIiCisjZGVmaW5lIE5CX0kxOE4gMgorI2RlZmluZSBFVkVOVFMgIm9uY2xpY2siLCAib25kYmxjbGljayIsICJvbm1vdXNlZG93biIsICJvbm1vdXNldXAiLCAib25tb3VzZW92ZXIiLCAib25tb3VzZW91dCIsICJvbmtleXByZXNzIiwgIm9ua2V5ZG93biIsICJvbmtleXVwIgorI2RlZmluZSBOQl9FVkVOVFMgOQorI2RlZmluZSBBVFRSUyBDT1JFQVRUUlMsSTE4TixFVkVOVFMKKyNkZWZpbmUgTkJfQVRUUlMgTkJfTkJfQ09SRUFUVFJTICsgTkJfSTE4TiArIE5CX0VWRU5UUworI2RlZmluZSBDRUxMSEFMSUdOICJhbGlnbiIsICJjaGFyIiwgImNoYXJvZmYiCisjZGVmaW5lIE5CX0NFTExIQUxJR04gMworI2RlZmluZSBDRUxMVkFMSUdOICJ2YWxpZ24iCisjZGVmaW5lIE5CX0NFTExWQUxJR04gMQorCitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgaHRtbF9hdHRyc1tdID0geyBBVFRSUywgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBjb3JlX2kxOG5fYXR0cnNbXSA9IHsgQ09SRUFUVFJTLCBJMThOLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNvcmVfYXR0cnNbXSA9IHsgQ09SRUFUVFJTLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGkxOG5fYXR0cnNbXSA9IHsgSTE4TiwgTlVMTCB9IDsKKworCisvKiBPdGhlciBkZWNsYXJhdGlvbnMgdGhhdCBzaG91bGQgZ28gaW5saW5lIC4uLiAqLworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGFfYXR0cnNbXSA9IHsgQVRUUlMsICJjaGFyc2V0IiwgInR5cGUiLCAibmFtZSIsCisJImhyZWYiLCAiaHJlZmxhbmciLCAicmVsIiwgInJldiIsICJhY2Nlc3NrZXkiLCAic2hhcGUiLCAiY29vcmRzIiwKKwkidGFiaW5kZXgiLCAib25mb2N1cyIsICJvbmJsdXIiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHRhcmdldF9hdHRyW10gPSB7ICJ0YXJnZXQiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHJvd3NfY29sc19hdHRyW10gPSB7ICJyb3dzIiwgImNvbHMiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGFsdF9hdHRyW10gPSB7ICJhbHQiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNyY19hbHRfYXR0cnNbXSA9IHsgInNyYyIsICJhbHQiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGhyZWZfYXR0cnNbXSA9IHsgImhyZWYiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNsZWFyX2F0dHJzW10gPSB7ICJjbGVhciIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgaW5saW5lX3BbXSA9IHsgSU5MSU5FLCAicCIsIE5VTEwgfSA7CisKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBmbG93X3BhcmFtW10gPSB7IEZMT1csICJwYXJhbSIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgYXBwbGV0X2F0dHJzW10gPSB7IENPUkVBVFRSUyAsICJjb2RlYmFzZSIsCisJCSJhcmNoaXZlIiwgImFsdCIsICJuYW1lIiwgImhlaWdodCIsICJ3aWR0aCIsICJhbGlnbiIsCisJCSJoc3BhY2UiLCAidnNwYWNlIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBhcmVhX2F0dHJzW10gPSB7ICJzaGFwZSIsICJjb29yZHMiLCAiaHJlZiIsICJub2hyZWYiLAorCSJ0YWJpbmRleCIsICJhY2Nlc3NrZXkiLCAib25mb2N1cyIsICJvbmJsdXIiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGJhc2Vmb250X2F0dHJzW10gPQorCXsgImlkIiwgInNpemUiLCAiY29sb3IiLCAiZmFjZSIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgcXVvdGVfYXR0cnNbXSA9IHsgQVRUUlMsICJjaXRlIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBib2R5X2NvbnRlbnRzW10gPSB7IEZMT1csICJpbnMiLCAiZGVsIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBib2R5X2F0dHJzW10gPSB7IEFUVFJTLCAib25sb2FkIiwgIm9udW5sb2FkIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBib2R5X2RlcHJbXSA9IHsgImJhY2tncm91bmQiLCAiYmdjb2xvciIsICJ0ZXh0IiwKKwkibGluayIsICJ2bGluayIsICJhbGluayIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgYnV0dG9uX2F0dHJzW10gPSB7IEFUVFJTLCAibmFtZSIsICJ2YWx1ZSIsICJ0eXBlIiwKKwkiZGlzYWJsZWQiLCAidGFiaW5kZXgiLCAiYWNjZXNza2V5IiwgIm9uZm9jdXMiLCAib25ibHVyIiwgTlVMTCB9IDsKKworCitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgY29sX2F0dHJzW10gPSB7IEFUVFJTLCAic3BhbiIsICJ3aWR0aCIsIENFTExIQUxJR04sIENFTExWQUxJR04sIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgY29sX2VsdFtdID0geyAiY29sIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBlZGl0X2F0dHJzW10gPSB7IEFUVFJTLCAiZGF0ZXRpbWUiLCAiY2l0ZSIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgY29tcGFjdF9hdHRyc1tdID0geyBBVFRSUywgImNvbXBhY3QiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGRsX2NvbnRlbnRzW10gPSB7ICJkdCIsICJkZCIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgY29tcGFjdF9hdHRyW10gPSB7ICJjb21wYWN0IiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBsYWJlbF9hdHRyW10gPSB7ICJsYWJlbCIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZmllbGRzZXRfY29udGVudHNbXSA9IHsgRkxPVywgImxlZ2VuZCIgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZm9udF9hdHRyc1tdID0geyBDT1JFQVRUUlMsIEkxOE4sICJzaXplIiwgImNvbG9yIiwgImZhY2UiICwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBmb3JtX2NvbnRlbnRzW10gPSB7IEhFQURJTkcsIExJU1QsIElOTElORSwgInByZSIsICJwIiwgImRpdiIsICJjZW50ZXIiLCAibm9zY3JpcHQiLCAibm9mcmFtZXMiLCAiYmxvY2txdW90ZSIsICJpc2luZGV4IiwgImhyIiwgInRhYmxlIiwgImZpZWxkc2V0IiwgImFkZHJlc3MiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGZvcm1fYXR0cnNbXSA9IHsgQVRUUlMsICJtZXRob2QiLCAiZW5jdHlwZSIsICJhY2NlcHQiLCAibmFtZSIsICJvbnN1Ym1pdCIsICJvbnJlc2V0IiwgImFjY2VwdC1jaGFyc2V0IiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBmcmFtZV9hdHRyc1tdID0geyBDT1JFQVRUUlMsICJsb25nZGVzYyIsICJuYW1lIiwgInNyYyIsICJmcmFtZWJvcmRlciIsICJtYXJnaW53aWR0aCIsICJtYXJnaW5oZWlnaHQiLCAibm9yZXNpemUiLCAic2Nyb2xsaW5nIiAsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZnJhbWVzZXRfYXR0cnNbXSA9IHsgQ09SRUFUVFJTLCAicm93cyIsICJjb2xzIiwgIm9ubG9hZCIsICJvbnVubG9hZCIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZnJhbWVzZXRfY29udGVudHNbXSA9IHsgImZyYW1lc2V0IiwgImZyYW1lIiwgIm5vZnJhbWVzIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBoZWFkX2F0dHJzW10gPSB7IEkxOE4sICJwcm9maWxlIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBoZWFkX2NvbnRlbnRzW10gPSB7ICJ0aXRsZSIsICJpc2luZGV4IiwgImJhc2UiLCAic2NyaXB0IiwgInN0eWxlIiwgIm1ldGEiLCAibGluayIsICJvYmplY3QiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGhyX2RlcHJbXSA9IHsgImFsaWduIiwgIm5vc2hhZGUiLCAic2l6ZSIsICJ3aWR0aCIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdmVyc2lvbl9hdHRyW10gPSB7ICJ2ZXJzaW9uIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBodG1sX2NvbnRlbnRbXSA9IHsgImhlYWQiLCAiYm9keSIsICJmcmFtZXNldCIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgaWZyYW1lX2F0dHJzW10gPSB7IENPUkVBVFRSUywgImxvbmdkZXNjIiwgIm5hbWUiLCAic3JjIiwgImZyYW1lYm9yZGVyIiwgIm1hcmdpbndpZHRoIiwgIm1hcmdpbmhlaWdodCIsICJzY3JvbGxpbmciLCAiYWxpZ24iLCAiaGVpZ2h0IiwgIndpZHRoIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBpbWdfYXR0cnNbXSA9IHsgQVRUUlMsICJsb25nZGVzYyIsICJuYW1lIiwgImhlaWdodCIsICJ3aWR0aCIsICJ1c2VtYXAiLCAiaXNtYXAiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGVtYmVkX2F0dHJzW10gPSB7IENPUkVBVFRSUywgImFsaWduIiwgImFsdCIsICJib3JkZXIiLCAiY29kZSIsICJjb2RlYmFzZSIsICJmcmFtZWJvcmRlciIsICJoZWlnaHQiLCAiaGlkZGVuIiwgImhzcGFjZSIsICJuYW1lIiwgInBhbGV0dGUiLCAicGx1Z2luc3BhY2UiLCAicGx1Z2ludXJsIiwgInNyYyIsICJ0eXBlIiwgInVuaXRzIiwgInZzcGFjZSIsICJ3aWR0aCIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgaW5wdXRfYXR0cnNbXSA9IHsgQVRUUlMsICJ0eXBlIiwgIm5hbWUiLCAidmFsdWUiLCAiY2hlY2tlZCIsICJkaXNhYmxlZCIsICJyZWFkb25seSIsICJzaXplIiwgIm1heGxlbmd0aCIsICJzcmMiLCAiYWx0IiwgInVzZW1hcCIsICJpc21hcCIsICJ0YWJpbmRleCIsICJhY2Nlc3NrZXkiLCAib25mb2N1cyIsICJvbmJsdXIiLCAib25zZWxlY3QiLCAib25jaGFuZ2UiLCAiYWNjZXB0IiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBwcm9tcHRfYXR0cnNbXSA9IHsgQ09SRUFUVFJTLCBJMThOLCAicHJvbXB0IiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBsYWJlbF9hdHRyc1tdID0geyBBVFRSUywgImZvciIsICJhY2Nlc3NrZXkiLCAib25mb2N1cyIsICJvbmJsdXIiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGxlZ2VuZF9hdHRyc1tdID0geyBBVFRSUywgImFjY2Vzc2tleSIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgYWxpZ25fYXR0cltdID0geyAiYWxpZ24iLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGxpbmtfYXR0cnNbXSA9IHsgQVRUUlMsICJjaGFyc2V0IiwgImhyZWYiLCAiaHJlZmxhbmciLCAidHlwZSIsICJyZWwiLCAicmV2IiwgIm1lZGlhIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBtYXBfY29udGVudHNbXSA9IHsgQkxPQ0ssICJhcmVhIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBuYW1lX2F0dHJbXSA9IHsgIm5hbWUiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGFjdGlvbl9hdHRyW10gPSB7ICJhY3Rpb24iLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGJsb2NrbGlfZWx0W10gPSB7IEJMT0NLLCAibGkiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IG1ldGFfYXR0cnNbXSA9IHsgSTE4TiwgImh0dHAtZXF1aXYiLCAibmFtZSIsICJzY2hlbWUiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNvbnRlbnRfYXR0cltdID0geyAiY29udGVudCIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdHlwZV9hdHRyW10gPSB7ICJ0eXBlIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBub2ZyYW1lc19jb250ZW50W10gPSB7ICJib2R5IiwgRkxPVyBNT0RJRklFUiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBvYmplY3RfY29udGVudHNbXSA9IHsgRkxPVywgInBhcmFtIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBvYmplY3RfYXR0cnNbXSA9IHsgQVRUUlMsICJkZWNsYXJlIiwgImNsYXNzaWQiLCAiY29kZWJhc2UiLCAiZGF0YSIsICJ0eXBlIiwgImNvZGV0eXBlIiwgImFyY2hpdmUiLCAic3RhbmRieSIsICJoZWlnaHQiLCAid2lkdGgiLCAidXNlbWFwIiwgIm5hbWUiLCAidGFiaW5kZXgiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IG9iamVjdF9kZXByW10gPSB7ICJhbGlnbiIsICJib3JkZXIiLCAiaHNwYWNlIiwgInZzcGFjZSIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgb2xfYXR0cnNbXSA9IHsgInR5cGUiLCAiY29tcGFjdCIsICJzdGFydCIsIE5VTEx9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBvcHRpb25fZWx0W10gPSB7ICJvcHRpb24iLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IG9wdGdyb3VwX2F0dHJzW10gPSB7IEFUVFJTLCAiZGlzYWJsZWQiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IG9wdGlvbl9hdHRyc1tdID0geyBBVFRSUywgImRpc2FibGVkIiwgImxhYmVsIiwgInNlbGVjdGVkIiwgInZhbHVlIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBwYXJhbV9hdHRyc1tdID0geyAiaWQiLCAidmFsdWUiLCAidmFsdWV0eXBlIiwgInR5cGUiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHdpZHRoX2F0dHJbXSA9IHsgIndpZHRoIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBwcmVfY29udGVudFtdID0geyBQSFJBU0UsICJ0dCIsICJpIiwgImIiLCAidSIsICJzIiwgInN0cmlrZSIsICJhIiwgImJyIiwgInNjcmlwdCIsICJtYXAiLCAicSIsICJzcGFuIiwgImJkbyIsICJpZnJhbWUiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNjcmlwdF9hdHRyc1tdID0geyAiY2hhcnNldCIsICJzcmMiLCAiZGVmZXIiLCAiZXZlbnQiLCAiZm9yIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBsYW5ndWFnZV9hdHRyW10gPSB7ICJsYW5ndWFnZSIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc2VsZWN0X2NvbnRlbnRbXSA9IHsgIm9wdGdyb3VwIiwgIm9wdGlvbiIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc2VsZWN0X2F0dHJzW10gPSB7IEFUVFJTLCAibmFtZSIsICJzaXplIiwgIm11bHRpcGxlIiwgImRpc2FibGVkIiwgInRhYmluZGV4IiwgIm9uZm9jdXMiLCAib25ibHVyIiwgIm9uY2hhbmdlIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzdHlsZV9hdHRyc1tdID0geyBJMThOLCAibWVkaWEiLCAidGl0bGUiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHRhYmxlX2F0dHJzW10gPSB7IEFUVFJTLCAic3VtbWFyeSIsICJ3aWR0aCIsICJib3JkZXIiLCAiZnJhbWUiLCAicnVsZXMiLCAiY2VsbHNwYWNpbmciLCAiY2VsbHBhZGRpbmciLCAiZGF0YXBhZ2VzaXplIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB0YWJsZV9kZXByW10gPSB7ICJhbGlnbiIsICJiZ2NvbG9yIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB0YWJsZV9jb250ZW50c1tdID0geyAiY2FwdGlvbiIsICJjb2wiLCAiY29sZ3JvdXAiLCAidGhlYWQiLCAidGZvb3QiLCAidGJvZHkiLCAidHIiLCBOVUxMfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdHJfZWx0W10gPSB7ICJ0ciIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdGFsaWduX2F0dHJzW10gPSB7IEFUVFJTLCBDRUxMSEFMSUdOLCBDRUxMVkFMSUdOLCBOVUxMfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdGhfdGRfZGVwcltdID0geyAibm93cmFwIiwgImJnY29sb3IiLCAid2lkdGgiLCAiaGVpZ2h0IiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB0aF90ZF9hdHRyW10gPSB7IEFUVFJTLCAiYWJiciIsICJheGlzIiwgImhlYWRlcnMiLCAic2NvcGUiLCAicm93c3BhbiIsICJjb2xzcGFuIiwgQ0VMTEhBTElHTiwgQ0VMTFZBTElHTiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB0ZXh0YXJlYV9hdHRyc1tdID0geyBBVFRSUywgIm5hbWUiLCAiZGlzYWJsZWQiLCAicmVhZG9ubHkiLCAidGFiaW5kZXgiLCAiYWNjZXNza2V5IiwgIm9uZm9jdXMiLCAib25ibHVyIiwgIm9uc2VsZWN0IiwgIm9uY2hhbmdlIiwgTlVMTCB9IDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB0cl9jb250ZW50c1tdID0geyAidGgiLCAidGQiLCBOVUxMIH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGJnY29sb3JfYXR0cltdID0geyAiYmdjb2xvciIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgbGlfZWx0W10gPSB7ICJsaSIsIE5VTEwgfSA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdWxfZGVwcltdID0geyAidHlwZSIsICJjb21wYWN0IiwgTlVMTH0gOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGRpcl9hdHRyW10gPSB7ICJkaXIiLCBOVUxMfSA7CisKKyNkZWZpbmUgREVDTCAoY29uc3QgY2hhcioqKQorCitzdGF0aWMgY29uc3QgaHRtbEVsZW1EZXNjCitodG1sNDBFbGVtZW50VGFibGVbXSA9IHsKK3sgImEiLAkJMCwgMCwgMCwgMCwgMCwgMCwgMSwgImFuY2hvciAiLAorCURFQ0wgaHRtbF9pbmxpbmUgLCBOVUxMICwgREVDTCBhX2F0dHJzICwgREVDTCB0YXJnZXRfYXR0ciwgTlVMTAorfSwKK3sgImFiYnIiLAkwLCAwLCAwLCAwLCAwLCAwLCAxLCAiYWJicmV2aWF0ZWQgZm9ybSIsCisJREVDTCBodG1sX2lubGluZSAsIE5VTEwgLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJhY3JvbnltIiwJMCwgMCwgMCwgMCwgMCwgMCwgMSwgIiIsCisJREVDTCBodG1sX2lubGluZSAsIE5VTEwgLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJhZGRyZXNzIiwJMCwgMCwgMCwgMCwgMCwgMCwgMCwgImluZm9ybWF0aW9uIG9uIGF1dGhvciAiLAorCURFQ0wgaW5saW5lX3AgICwgTlVMTCAsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgImFwcGxldCIsCTAsIDAsIDAsIDAsIDEsIDEsIDIsICJqYXZhIGFwcGxldCAiLAorCURFQ0wgZmxvd19wYXJhbSAsIE5VTEwgLCBOVUxMICwgREVDTCBhcHBsZXRfYXR0cnMsIE5VTEwKK30sCit7ICJhcmVhIiwJMCwgMiwgMiwgMSwgMCwgMCwgMCwgImNsaWVudC1zaWRlIGltYWdlIG1hcCBhcmVhICIsCisJRU1QVFkgLCAgTlVMTCAsIERFQ0wgYXJlYV9hdHRycyAsIERFQ0wgdGFyZ2V0X2F0dHIsIERFQ0wgYWx0X2F0dHIKK30sCit7ICJiIiwJCTAsIDMsIDAsIDAsIDAsIDAsIDEsICJib2xkIHRleHQgc3R5bGUiLAorCURFQ0wgaHRtbF9pbmxpbmUgLCBOVUxMICwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAiYmFzZSIsCTAsIDIsIDIsIDEsIDAsIDAsIDAsICJkb2N1bWVudCBiYXNlIHVyaSAiLAorCUVNUFRZICwgTlVMTCAsIE5VTEwgLCBERUNMIHRhcmdldF9hdHRyLCBERUNMIGhyZWZfYXR0cnMKK30sCit7ICJiYXNlZm9udCIsCTAsIDIsIDIsIDEsIDEsIDEsIDEsICJiYXNlIGZvbnQgc2l6ZSAiICwKKwlFTVBUWSAsIE5VTEwgLCBOVUxMLCBERUNMIGJhc2Vmb250X2F0dHJzLCBOVUxMCit9LAoreyAiYmRvIiwJMCwgMCwgMCwgMCwgMCwgMCwgMSwgImkxOG4gYmlkaSBvdmVyLXJpZGUgIiwKKwlERUNMIGh0bWxfaW5saW5lICwgTlVMTCAsIERFQ0wgY29yZV9pMThuX2F0dHJzLCBOVUxMLCBERUNMIGRpcl9hdHRyCit9LAoreyAiYmlnIiwJMCwgMywgMCwgMCwgMCwgMCwgMSwgImxhcmdlIHRleHQgc3R5bGUiLAorCURFQ0wgaHRtbF9pbmxpbmUgLCBOVUxMICwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAiYmxvY2txdW90ZSIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJsb25nIHF1b3RhdGlvbiAiLAorCURFQ0wgaHRtbF9mbG93ICwgTlVMTCAsIERFQ0wgcXVvdGVfYXR0cnMgLCBOVUxMLCBOVUxMCit9LAoreyAiYm9keSIsCTEsIDEsIDAsIDAsIDAsIDAsIDAsICJkb2N1bWVudCBib2R5ICIsCisJREVDTCBib2R5X2NvbnRlbnRzICwgImRpdiIgLCBERUNMIGJvZHlfYXR0cnMsIERFQ0wgYm9keV9kZXByLCBOVUxMCit9LAoreyAiYnIiLAkJMCwgMiwgMiwgMSwgMCwgMCwgMSwgImZvcmNlZCBsaW5lIGJyZWFrICIsCisJRU1QVFkgLCBOVUxMICwgREVDTCBjb3JlX2F0dHJzLCBERUNMIGNsZWFyX2F0dHJzICwgTlVMTAorfSwKK3sgImJ1dHRvbiIsCTAsIDAsIDAsIDAsIDAsIDAsIDIsICJwdXNoIGJ1dHRvbiAiLAorCURFQ0wgaHRtbF9mbG93IE1PRElGSUVSICwgTlVMTCAsIERFQ0wgYnV0dG9uX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAiY2FwdGlvbiIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJ0YWJsZSBjYXB0aW9uICIsCisJREVDTCBodG1sX2lubGluZSAsIE5VTEwgLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJjZW50ZXIiLAkwLCAzLCAwLCAwLCAxLCAxLCAwLCAic2hvcnRoYW5kIGZvciBkaXYgYWxpZ249Y2VudGVyICIsCisJREVDTCBodG1sX2Zsb3cgLCBOVUxMICwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMCit9LAoreyAiY2l0ZSIsCTAsIDAsIDAsIDAsIDAsIDAsIDEsICJjaXRhdGlvbiIsCisJREVDTCBodG1sX2lubGluZSAsIE5VTEwgLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJjb2RlIiwJMCwgMCwgMCwgMCwgMCwgMCwgMSwgImNvbXB1dGVyIGNvZGUgZnJhZ21lbnQiLAorCURFQ0wgaHRtbF9pbmxpbmUgLCBOVUxMICwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAiY29sIiwJMCwgMiwgMiwgMSwgMCwgMCwgMCwgInRhYmxlIGNvbHVtbiAiLAorCUVNUFRZICwgTlVMTCAsIERFQ0wgY29sX2F0dHJzICwgTlVMTCwgTlVMTAorfSwKK3sgImNvbGdyb3VwIiwJMCwgMSwgMCwgMCwgMCwgMCwgMCwgInRhYmxlIGNvbHVtbiBncm91cCAiLAorCURFQ0wgY29sX2VsdCAsICJjb2wiICwgREVDTCBjb2xfYXR0cnMgLCBOVUxMLCBOVUxMCit9LAoreyAiZGQiLAkJMCwgMSwgMCwgMCwgMCwgMCwgMCwgImRlZmluaXRpb24gZGVzY3JpcHRpb24gIiwKKwlERUNMIGh0bWxfZmxvdyAsIE5VTEwgLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJkZWwiLAkwLCAwLCAwLCAwLCAwLCAwLCAyLCAiZGVsZXRlZCB0ZXh0ICIsCisJREVDTCBodG1sX2Zsb3cgLCBOVUxMICwgREVDTCBlZGl0X2F0dHJzICwgTlVMTCwgTlVMTAorfSwKK3sgImRmbiIsCTAsIDAsIDAsIDAsIDAsIDAsIDEsICJpbnN0YW5jZSBkZWZpbml0aW9uIiwKKwlERUNMIGh0bWxfaW5saW5lICwgTlVMTCAsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgImRpciIsCTAsIDAsIDAsIDAsIDEsIDEsIDAsICJkaXJlY3RvcnkgbGlzdCIsCisJREVDTCBibG9ja2xpX2VsdCwgImxpIiAsIE5VTEwsIERFQ0wgY29tcGFjdF9hdHRycywgTlVMTAorfSwKK3sgImRpdiIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJnZW5lcmljIGxhbmd1YWdlL3N0eWxlIGNvbnRhaW5lciIsCisJREVDTCBodG1sX2Zsb3csIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgREVDTCBhbGlnbl9hdHRyLCBOVUxMCit9LAoreyAiZGwiLAkJMCwgMCwgMCwgMCwgMCwgMCwgMCwgImRlZmluaXRpb24gbGlzdCAiLAorCURFQ0wgZGxfY29udGVudHMgLCAiZGQiICwgREVDTCBodG1sX2F0dHJzLCBERUNMIGNvbXBhY3RfYXR0ciwgTlVMTAorfSwKK3sgImR0IiwJCTAsIDEsIDAsIDAsIDAsIDAsIDAsICJkZWZpbml0aW9uIHRlcm0gIiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJlbSIsCQkwLCAzLCAwLCAwLCAwLCAwLCAxLCAiZW1waGFzaXMiLAorCURFQ0wgaHRtbF9pbmxpbmUsIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgImVtYmVkIiwJMCwgMSwgMCwgMCwgMSwgMSwgMSwgImdlbmVyaWMgZW1iZWRkZWQgb2JqZWN0ICIsCisJRU1QVFksIE5VTEwsIERFQ0wgZW1iZWRfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJmaWVsZHNldCIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJmb3JtIGNvbnRyb2wgZ3JvdXAgIiwKKwlERUNMIGZpZWxkc2V0X2NvbnRlbnRzICwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAiZm9udCIsCTAsIDMsIDAsIDAsIDEsIDEsIDEsICJsb2NhbCBjaGFuZ2UgdG8gZm9udCAiLAorCURFQ0wgaHRtbF9pbmxpbmUsIE5VTEwsIE5VTEwsIERFQ0wgZm9udF9hdHRycywgTlVMTAorfSwKK3sgImZvcm0iLAkwLCAwLCAwLCAwLCAwLCAwLCAwLCAiaW50ZXJhY3RpdmUgZm9ybSAiLAorCURFQ0wgZm9ybV9jb250ZW50cywgImZpZWxkc2V0IiwgREVDTCBmb3JtX2F0dHJzICwgREVDTCB0YXJnZXRfYXR0ciwgREVDTCBhY3Rpb25fYXR0cgorfSwKK3sgImZyYW1lIiwJMCwgMiwgMiwgMSwgMCwgMiwgMCwgInN1YndpbmRvdyAiICwKKwlFTVBUWSwgTlVMTCwgTlVMTCwgREVDTCBmcmFtZV9hdHRycywgTlVMTAorfSwKK3sgImZyYW1lc2V0IiwJMCwgMCwgMCwgMCwgMCwgMiwgMCwgIndpbmRvdyBzdWJkaXZpc2lvbiIgLAorCURFQ0wgZnJhbWVzZXRfY29udGVudHMsICJub2ZyYW1lcyIgLCBOVUxMICwgREVDTCBmcmFtZXNldF9hdHRycywgTlVMTAorfSwKK3sgImgxIiwJCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJoZWFkaW5nICIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBERUNMIGFsaWduX2F0dHIsIE5VTEwKK30sCit7ICJoMiIsCQkwLCAwLCAwLCAwLCAwLCAwLCAwLCAiaGVhZGluZyAiLAorCURFQ0wgaHRtbF9pbmxpbmUsIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgREVDTCBhbGlnbl9hdHRyLCBOVUxMCit9LAoreyAiaDMiLAkJMCwgMCwgMCwgMCwgMCwgMCwgMCwgImhlYWRpbmcgIiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIERFQ0wgYWxpZ25fYXR0ciwgTlVMTAorfSwKK3sgImg0IiwJCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJoZWFkaW5nICIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBERUNMIGFsaWduX2F0dHIsIE5VTEwKK30sCit7ICJoNSIsCQkwLCAwLCAwLCAwLCAwLCAwLCAwLCAiaGVhZGluZyAiLAorCURFQ0wgaHRtbF9pbmxpbmUsIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgREVDTCBhbGlnbl9hdHRyLCBOVUxMCit9LAoreyAiaDYiLAkJMCwgMCwgMCwgMCwgMCwgMCwgMCwgImhlYWRpbmcgIiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIERFQ0wgYWxpZ25fYXR0ciwgTlVMTAorfSwKK3sgImhlYWQiLAkxLCAxLCAwLCAwLCAwLCAwLCAwLCAiZG9jdW1lbnQgaGVhZCAiLAorCURFQ0wgaGVhZF9jb250ZW50cywgTlVMTCwgREVDTCBoZWFkX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAiaHIiLAkJMCwgMiwgMiwgMSwgMCwgMCwgMCwgImhvcml6b250YWwgcnVsZSAiICwKKwlFTVBUWSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBERUNMIGhyX2RlcHIsIE5VTEwKK30sCit7ICJodG1sIiwJMSwgMSwgMCwgMCwgMCwgMCwgMCwgImRvY3VtZW50IHJvb3QgZWxlbWVudCAiLAorCURFQ0wgaHRtbF9jb250ZW50ICwgTlVMTCAsIERFQ0wgaTE4bl9hdHRycywgREVDTCB2ZXJzaW9uX2F0dHIsIE5VTEwKK30sCit7ICJpIiwJCTAsIDMsIDAsIDAsIDAsIDAsIDEsICJpdGFsaWMgdGV4dCBzdHlsZSIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAiaWZyYW1lIiwJMCwgMCwgMCwgMCwgMCwgMSwgMiwgImlubGluZSBzdWJ3aW5kb3cgIiwKKwlERUNMIGh0bWxfZmxvdywgTlVMTCwgTlVMTCwgREVDTCBpZnJhbWVfYXR0cnMsIE5VTEwKK30sCit7ICJpbWciLAkwLCAyLCAyLCAxLCAwLCAwLCAxLCAiZW1iZWRkZWQgaW1hZ2UgIiwKKwlFTVBUWSwgTlVMTCwgREVDTCBpbWdfYXR0cnMsIERFQ0wgYWxpZ25fYXR0ciwgREVDTCBzcmNfYWx0X2F0dHJzCit9LAoreyAiaW5wdXQiLAkwLCAyLCAyLCAxLCAwLCAwLCAxLCAiZm9ybSBjb250cm9sICIsCisJRU1QVFksIE5VTEwsIERFQ0wgaW5wdXRfYXR0cnMgLCBERUNMIGFsaWduX2F0dHIsIE5VTEwKK30sCit7ICJpbnMiLAkwLCAwLCAwLCAwLCAwLCAwLCAyLCAiaW5zZXJ0ZWQgdGV4dCIsCisJREVDTCBodG1sX2Zsb3csIE5VTEwsIERFQ0wgZWRpdF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgImlzaW5kZXgiLAkwLCAyLCAyLCAxLCAxLCAxLCAwLCAic2luZ2xlIGxpbmUgcHJvbXB0ICIsCisJRU1QVFksIE5VTEwsIE5VTEwsIERFQ0wgcHJvbXB0X2F0dHJzLCBOVUxMCit9LAoreyAia2JkIiwJMCwgMCwgMCwgMCwgMCwgMCwgMSwgInRleHQgdG8gYmUgZW50ZXJlZCBieSB0aGUgdXNlciIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAibGFiZWwiLAkwLCAwLCAwLCAwLCAwLCAwLCAxLCAiZm9ybSBmaWVsZCBsYWJlbCB0ZXh0ICIsCisJREVDTCBodG1sX2lubGluZSBNT0RJRklFUiwgTlVMTCwgREVDTCBsYWJlbF9hdHRycyAsIE5VTEwsIE5VTEwKK30sCit7ICJsZWdlbmQiLAkwLCAwLCAwLCAwLCAwLCAwLCAwLCAiZmllbGRzZXQgbGVnZW5kICIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBsZWdlbmRfYXR0cnMgLCBERUNMIGFsaWduX2F0dHIsIE5VTEwKK30sCit7ICJsaSIsCQkwLCAxLCAxLCAwLCAwLCAwLCAwLCAibGlzdCBpdGVtICIsCisJREVDTCBodG1sX2Zsb3csIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgImxpbmsiLAkwLCAyLCAyLCAxLCAwLCAwLCAwLCAiYSBtZWRpYS1pbmRlcGVuZGVudCBsaW5rICIsCisJRU1QVFksIE5VTEwsIERFQ0wgbGlua19hdHRycywgREVDTCB0YXJnZXRfYXR0ciwgTlVMTAorfSwKK3sgIm1hcCIsCTAsIDAsIDAsIDAsIDAsIDAsIDIsICJjbGllbnQtc2lkZSBpbWFnZSBtYXAgIiwKKwlERUNMIG1hcF9jb250ZW50cyAsIE5VTEwsIERFQ0wgaHRtbF9hdHRycyAsIE5VTEwsIERFQ0wgbmFtZV9hdHRyCit9LAoreyAibWVudSIsCTAsIDAsIDAsIDAsIDEsIDEsIDAsICJtZW51IGxpc3QgIiwKKwlERUNMIGJsb2NrbGlfZWx0ICwgTlVMTCwgTlVMTCwgREVDTCBjb21wYWN0X2F0dHJzLCBOVUxMCit9LAoreyAibWV0YSIsCTAsIDIsIDIsIDEsIDAsIDAsIDAsICJnZW5lcmljIG1ldGFpbmZvcm1hdGlvbiAiLAorCUVNUFRZLCBOVUxMLCBERUNMIG1ldGFfYXR0cnMgLCBOVUxMICwgREVDTCBjb250ZW50X2F0dHIKK30sCit7ICJub2ZyYW1lcyIsCTAsIDAsIDAsIDAsIDAsIDIsIDAsICJhbHRlcm5hdGUgY29udGVudCBjb250YWluZXIgZm9yIG5vbiBmcmFtZS1iYXNlZCByZW5kZXJpbmcgIiwKKwlERUNMIG5vZnJhbWVzX2NvbnRlbnQsICJib2R5IiAsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgIm5vc2NyaXB0IiwJMCwgMCwgMCwgMCwgMCwgMCwgMCwgImFsdGVybmF0ZSBjb250ZW50IGNvbnRhaW5lciBmb3Igbm9uIHNjcmlwdC1iYXNlZCByZW5kZXJpbmcgIiwKKwlERUNMIGh0bWxfZmxvdywgImRpdiIsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgIm9iamVjdCIsCTAsIDAsIDAsIDAsIDAsIDAsIDIsICJnZW5lcmljIGVtYmVkZGVkIG9iamVjdCAiLAorCURFQ0wgb2JqZWN0X2NvbnRlbnRzICwgImRpdiIgLCBERUNMIG9iamVjdF9hdHRycywgREVDTCBvYmplY3RfZGVwciwgTlVMTAorfSwKK3sgIm9sIiwJCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJvcmRlcmVkIGxpc3QgIiwKKwlERUNMIGxpX2VsdCAsICJsaSIgLCBERUNMIGh0bWxfYXR0cnMsIERFQ0wgb2xfYXR0cnMsIE5VTEwKK30sCit7ICJvcHRncm91cCIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJvcHRpb24gZ3JvdXAgIiwKKwlERUNMIG9wdGlvbl9lbHQgLCAib3B0aW9uIiwgREVDTCBvcHRncm91cF9hdHRycywgTlVMTCwgREVDTCBsYWJlbF9hdHRyCit9LAoreyAib3B0aW9uIiwJMCwgMSwgMCwgMCwgMCwgMCwgMCwgInNlbGVjdGFibGUgY2hvaWNlICIgLAorCURFQ0wgaHRtbF9wY2RhdGEsIE5VTEwsIERFQ0wgb3B0aW9uX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAicCIsCQkwLCAxLCAwLCAwLCAwLCAwLCAwLCAicGFyYWdyYXBoICIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBERUNMIGFsaWduX2F0dHIsIE5VTEwKK30sCit7ICJwYXJhbSIsCTAsIDIsIDIsIDEsIDAsIDAsIDAsICJuYW1lZCBwcm9wZXJ0eSB2YWx1ZSAiLAorCUVNUFRZLCBOVUxMLCBERUNMIHBhcmFtX2F0dHJzLCBOVUxMLCBERUNMIG5hbWVfYXR0cgorfSwKK3sgInByZSIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJwcmVmb3JtYXR0ZWQgdGV4dCAiLAorCURFQ0wgcHJlX2NvbnRlbnQsIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgREVDTCB3aWR0aF9hdHRyLCBOVUxMCit9LAoreyAicSIsCQkwLCAwLCAwLCAwLCAwLCAwLCAxLCAic2hvcnQgaW5saW5lIHF1b3RhdGlvbiAiLAorCURFQ0wgaHRtbF9pbmxpbmUsIE5VTEwsIERFQ0wgcXVvdGVfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJzIiwJCTAsIDMsIDAsIDAsIDEsIDEsIDEsICJzdHJpa2UtdGhyb3VnaCB0ZXh0IHN0eWxlIiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwKK30sCit7ICJzYW1wIiwJMCwgMCwgMCwgMCwgMCwgMCwgMSwgInNhbXBsZSBwcm9ncmFtIG91dHB1dCwgc2NyaXB0cywgZXRjLiIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAic2NyaXB0IiwJMCwgMCwgMCwgMCwgMCwgMCwgMiwgInNjcmlwdCBzdGF0ZW1lbnRzICIsCisJREVDTCBodG1sX2NkYXRhLCBOVUxMLCBERUNMIHNjcmlwdF9hdHRycywgREVDTCBsYW5ndWFnZV9hdHRyLCBERUNMIHR5cGVfYXR0cgorfSwKK3sgInNlbGVjdCIsCTAsIDAsIDAsIDAsIDAsIDAsIDEsICJvcHRpb24gc2VsZWN0b3IgIiwKKwlERUNMIHNlbGVjdF9jb250ZW50LCBOVUxMLCBERUNMIHNlbGVjdF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgInNtYWxsIiwJMCwgMywgMCwgMCwgMCwgMCwgMSwgInNtYWxsIHRleHQgc3R5bGUiLAorCURFQ0wgaHRtbF9pbmxpbmUsIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgInNwYW4iLAkwLCAwLCAwLCAwLCAwLCAwLCAxLCAiZ2VuZXJpYyBsYW5ndWFnZS9zdHlsZSBjb250YWluZXIgIiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJzdHJpa2UiLAkwLCAzLCAwLCAwLCAxLCAxLCAxLCAic3RyaWtlLXRocm91Z2ggdGV4dCIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMCit9LAoreyAic3Ryb25nIiwJMCwgMywgMCwgMCwgMCwgMCwgMSwgInN0cm9uZyBlbXBoYXNpcyIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMLCBOVUxMCit9LAoreyAic3R5bGUiLAkwLCAwLCAwLCAwLCAwLCAwLCAwLCAic3R5bGUgaW5mbyAiLAorCURFQ0wgaHRtbF9jZGF0YSwgTlVMTCwgREVDTCBzdHlsZV9hdHRycywgTlVMTCwgREVDTCB0eXBlX2F0dHIKK30sCit7ICJzdWIiLAkwLCAzLCAwLCAwLCAwLCAwLCAxLCAic3Vic2NyaXB0IiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJzdXAiLAkwLCAzLCAwLCAwLCAwLCAwLCAxLCAic3VwZXJzY3JpcHQgIiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJ0YWJsZSIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICIiLAorCURFQ0wgdGFibGVfY29udGVudHMgLCAidHIiICwgREVDTCB0YWJsZV9hdHRycyAsIERFQ0wgdGFibGVfZGVwciwgTlVMTAorfSwKK3sgInRib2R5IiwJMSwgMCwgMCwgMCwgMCwgMCwgMCwgInRhYmxlIGJvZHkgIiwKKwlERUNMIHRyX2VsdCAsICJ0ciIgLCBERUNMIHRhbGlnbl9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgInRkIiwJCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJ0YWJsZSBkYXRhIGNlbGwiLAorCURFQ0wgaHRtbF9mbG93LCBOVUxMLCBERUNMIHRoX3RkX2F0dHIsIERFQ0wgdGhfdGRfZGVwciwgTlVMTAorfSwKK3sgInRleHRhcmVhIiwJMCwgMCwgMCwgMCwgMCwgMCwgMSwgIm11bHRpLWxpbmUgdGV4dCBmaWVsZCAiLAorCURFQ0wgaHRtbF9wY2RhdGEsIE5VTEwsIERFQ0wgdGV4dGFyZWFfYXR0cnMsIE5VTEwsIERFQ0wgcm93c19jb2xzX2F0dHIKK30sCit7ICJ0Zm9vdCIsCTAsIDEsIDAsIDAsIDAsIDAsIDAsICJ0YWJsZSBmb290ZXIgIiwKKwlERUNMIHRyX2VsdCAsICJ0ciIgLCBERUNMIHRhbGlnbl9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgInRoIiwJCTAsIDEsIDAsIDAsIDAsIDAsIDAsICJ0YWJsZSBoZWFkZXIgY2VsbCIsCisJREVDTCBodG1sX2Zsb3csIE5VTEwsIERFQ0wgdGhfdGRfYXR0ciwgREVDTCB0aF90ZF9kZXByLCBOVUxMCit9LAoreyAidGhlYWQiLAkwLCAxLCAwLCAwLCAwLCAwLCAwLCAidGFibGUgaGVhZGVyICIsCisJREVDTCB0cl9lbHQgLCAidHIiICwgREVDTCB0YWxpZ25fYXR0cnMsIE5VTEwsIE5VTEwKK30sCit7ICJ0aXRsZSIsCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJkb2N1bWVudCB0aXRsZSAiLAorCURFQ0wgaHRtbF9wY2RhdGEsIE5VTEwsIERFQ0wgaTE4bl9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgInRyIiwJCTAsIDAsIDAsIDAsIDAsIDAsIDAsICJ0YWJsZSByb3cgIiwKKwlERUNMIHRyX2NvbnRlbnRzICwgInRkIiAsIERFQ0wgdGFsaWduX2F0dHJzLCBERUNMIGJnY29sb3JfYXR0ciwgTlVMTAorfSwKK3sgInR0IiwJCTAsIDMsIDAsIDAsIDAsIDAsIDEsICJ0ZWxldHlwZSBvciBtb25vc3BhY2VkIHRleHQgc3R5bGUiLAorCURFQ0wgaHRtbF9pbmxpbmUsIE5VTEwsIERFQ0wgaHRtbF9hdHRycywgTlVMTCwgTlVMTAorfSwKK3sgInUiLAkJMCwgMywgMCwgMCwgMSwgMSwgMSwgInVuZGVybGluZWQgdGV4dCBzdHlsZSIsCisJREVDTCBodG1sX2lubGluZSwgTlVMTCwgTlVMTCwgREVDTCBodG1sX2F0dHJzLCBOVUxMCit9LAoreyAidWwiLAkJMCwgMCwgMCwgMCwgMCwgMCwgMCwgInVub3JkZXJlZCBsaXN0ICIsCisJREVDTCBsaV9lbHQgLCAibGkiICwgREVDTCBodG1sX2F0dHJzLCBERUNMIHVsX2RlcHIsIE5VTEwKK30sCit7ICJ2YXIiLAkwLCAwLCAwLCAwLCAwLCAwLCAxLCAiaW5zdGFuY2Ugb2YgYSB2YXJpYWJsZSBvciBwcm9ncmFtIGFyZ3VtZW50IiwKKwlERUNMIGh0bWxfaW5saW5lLCBOVUxMLCBERUNMIGh0bWxfYXR0cnMsIE5VTEwsIE5VTEwKK30KK307CisKKy8qCisgKiBzdGFydCB0YWdzIHRoYXQgaW1wbHkgdGhlIGVuZCBvZiBjdXJyZW50IGVsZW1lbnQKKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBodG1sU3RhcnRDbG9zZVtdID0geworImZvcm0iLAkJImZvcm0iLCAicCIsICJociIsICJoMSIsICJoMiIsICJoMyIsICJoNCIsICJoNSIsICJoNiIsCisJCSJkbCIsICJ1bCIsICJvbCIsICJtZW51IiwgImRpciIsICJhZGRyZXNzIiwgInByZSIsCisJCSJsaXN0aW5nIiwgInhtcCIsICJoZWFkIiwgTlVMTCwKKyJoZWFkIiwJCSJwIiwgTlVMTCwKKyJ0aXRsZSIsCSJwIiwgTlVMTCwKKyJib2R5IiwJCSJoZWFkIiwgInN0eWxlIiwgImxpbmsiLCAidGl0bGUiLCAicCIsIE5VTEwsCisiZnJhbWVzZXQiLAkiaGVhZCIsICJzdHlsZSIsICJsaW5rIiwgInRpdGxlIiwgInAiLCBOVUxMLAorImxpIiwJCSJwIiwgImgxIiwgImgyIiwgImgzIiwgImg0IiwgImg1IiwgImg2IiwgImRsIiwgImFkZHJlc3MiLAorCQkicHJlIiwgImxpc3RpbmciLCAieG1wIiwgImhlYWQiLCAibGkiLCBOVUxMLAorImhyIiwJCSJwIiwgImhlYWQiLCBOVUxMLAorImgxIiwJCSJwIiwgImhlYWQiLCBOVUxMLAorImgyIiwJCSJwIiwgImhlYWQiLCBOVUxMLAorImgzIiwJCSJwIiwgImhlYWQiLCBOVUxMLAorImg0IiwJCSJwIiwgImhlYWQiLCBOVUxMLAorImg1IiwJCSJwIiwgImhlYWQiLCBOVUxMLAorImg2IiwJCSJwIiwgImhlYWQiLCBOVUxMLAorImRpciIsCQkicCIsICJoZWFkIiwgTlVMTCwKKyJhZGRyZXNzIiwJInAiLCAiaGVhZCIsICJ1bCIsIE5VTEwsCisicHJlIiwJCSJwIiwgImhlYWQiLCAidWwiLCBOVUxMLAorImxpc3RpbmciLAkicCIsICJoZWFkIiwgTlVMTCwKKyJ4bXAiLAkJInAiLCAiaGVhZCIsIE5VTEwsCisiYmxvY2txdW90ZSIsCSJwIiwgImhlYWQiLCBOVUxMLAorImRsIiwJCSJwIiwgImR0IiwgIm1lbnUiLCAiZGlyIiwgImFkZHJlc3MiLCAicHJlIiwgImxpc3RpbmciLAorCQkieG1wIiwgImhlYWQiLCBOVUxMLAorImR0IiwJCSJwIiwgIm1lbnUiLCAiZGlyIiwgImFkZHJlc3MiLCAicHJlIiwgImxpc3RpbmciLCAieG1wIiwKKyAgICAgICAgICAgICAgICAiaGVhZCIsICJkZCIsIE5VTEwsCisiZGQiLAkJInAiLCAibWVudSIsICJkaXIiLCAiYWRkcmVzcyIsICJwcmUiLCAibGlzdGluZyIsICJ4bXAiLAorICAgICAgICAgICAgICAgICJoZWFkIiwgImR0IiwgTlVMTCwKKyJ1bCIsCQkicCIsICJoZWFkIiwgIm9sIiwgIm1lbnUiLCAiZGlyIiwgImFkZHJlc3MiLCAicHJlIiwKKwkJImxpc3RpbmciLCAieG1wIiwgTlVMTCwKKyJvbCIsCQkicCIsICJoZWFkIiwgInVsIiwgTlVMTCwKKyJtZW51IiwJCSJwIiwgImhlYWQiLCAidWwiLCBOVUxMLAorInAiLAkJInAiLCAiaGVhZCIsICJoMSIsICJoMiIsICJoMyIsICJoNCIsICJoNSIsICJoNiIsIEZPTlRTVFlMRSwgTlVMTCwKKyJkaXYiLAkJInAiLCAiaGVhZCIsIE5VTEwsCisibm9zY3JpcHQiLAkicCIsICJoZWFkIiwgTlVMTCwKKyJjZW50ZXIiLAkiZm9udCIsICJiIiwgImkiLCAicCIsICJoZWFkIiwgTlVMTCwKKyJhIiwJCSJhIiwgTlVMTCwKKyJjYXB0aW9uIiwJInAiLCBOVUxMLAorImNvbGdyb3VwIiwJImNhcHRpb24iLCAiY29sZ3JvdXAiLCAiY29sIiwgInAiLCBOVUxMLAorImNvbCIsCQkiY2FwdGlvbiIsICJjb2wiLCAicCIsIE5VTEwsCisidGFibGUiLAkicCIsICJoZWFkIiwgImgxIiwgImgyIiwgImgzIiwgImg0IiwgImg1IiwgImg2IiwgInByZSIsCisJCSJsaXN0aW5nIiwgInhtcCIsICJhIiwgTlVMTCwKKyJ0aCIsCQkidGgiLCAidGQiLCAicCIsICJzcGFuIiwgImZvbnQiLCAiYSIsICJiIiwgImkiLCAidSIsIE5VTEwsCisidGQiLAkJInRoIiwgInRkIiwgInAiLCAic3BhbiIsICJmb250IiwgImEiLCAiYiIsICJpIiwgInUiLCBOVUxMLAorInRyIiwJCSJ0aCIsICJ0ZCIsICJ0ciIsICJjYXB0aW9uIiwgImNvbCIsICJjb2xncm91cCIsICJwIiwgTlVMTCwKKyJ0aGVhZCIsCSJjYXB0aW9uIiwgImNvbCIsICJjb2xncm91cCIsIE5VTEwsCisidGZvb3QiLAkidGgiLCAidGQiLCAidHIiLCAiY2FwdGlvbiIsICJjb2wiLCAiY29sZ3JvdXAiLCAidGhlYWQiLAorCQkidGJvZHkiLCAicCIsIE5VTEwsCisidGJvZHkiLAkidGgiLCAidGQiLCAidHIiLCAiY2FwdGlvbiIsICJjb2wiLCAiY29sZ3JvdXAiLCAidGhlYWQiLAorCQkidGZvb3QiLCAidGJvZHkiLCAicCIsIE5VTEwsCisib3B0Z3JvdXAiLAkib3B0aW9uIiwgTlVMTCwKKyJvcHRpb24iLAkib3B0aW9uIiwgTlVMTCwKKyJmaWVsZHNldCIsCSJsZWdlbmQiLCAicCIsICJoZWFkIiwgImgxIiwgImgyIiwgImgzIiwgImg0IiwgImg1IiwgImg2IiwKKwkJInByZSIsICJsaXN0aW5nIiwgInhtcCIsICJhIiwgTlVMTCwKK05VTEwKK307CisKKy8qCisgKiBUaGUgbGlzdCBvZiBIVE1MIGVsZW1lbnRzIHdoaWNoIGFyZSBzdXBwb3NlZCBub3QgdG8gaGF2ZQorICogQ0RBVEEgY29udGVudCBhbmQgd2hlcmUgYSBwIGVsZW1lbnQgd2lsbCBiZSBpbXBsaWVkCisgKgorICogVE9ETzogZXh0ZW5kIHRoYXQgbGlzdCBieSByZWFkaW5nIHRoZSBIVE1MIFNHTUwgRFREIG9uCisgKiAgICAgICBpbXBsaWVkIHBhcmFncmFwaAorICovCitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgaHRtbE5vQ29udGVudEVsZW1lbnRzW10gPSB7CisgICAgImh0bWwiLAorICAgICJoZWFkIiwKKyAgICBOVUxMCit9OworCisvKgorICogVGhlIGxpc3Qgb2YgSFRNTCBhdHRyaWJ1dGVzIHdoaWNoIGFyZSBvZiBjb250ZW50ICVTY3JpcHQ7CisgKiBOT1RFOiB3aGVuIGFkZGluZyBvbmVzLCBjaGVjayBodG1sSXNTY3JpcHRBdHRyaWJ1dGUoKSBzaW5jZQorICogICAgICAgaXQgYXNzdW1lcyB0aGUgbmFtZSBzdGFydHMgd2l0aCAnb24nCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBodG1sU2NyaXB0QXR0cmlidXRlc1tdID0geworICAgICJvbmNsaWNrIiwKKyAgICAib25kYmxjbGljayIsCisgICAgIm9ubW91c2Vkb3duIiwKKyAgICAib25tb3VzZXVwIiwKKyAgICAib25tb3VzZW92ZXIiLAorICAgICJvbm1vdXNlbW92ZSIsCisgICAgIm9ubW91c2VvdXQiLAorICAgICJvbmtleXByZXNzIiwKKyAgICAib25rZXlkb3duIiwKKyAgICAib25rZXl1cCIsCisgICAgIm9ubG9hZCIsCisgICAgIm9udW5sb2FkIiwKKyAgICAib25mb2N1cyIsCisgICAgIm9uYmx1ciIsCisgICAgIm9uc3VibWl0IiwKKyAgICAib25yZXN0IiwKKyAgICAib25jaGFuZ2UiLAorICAgICJvbnNlbGVjdCIKK307CisKKy8qCisgKiBUaGlzIHRhYmxlIGlzIHVzZWQgYnkgdGhlIGh0bWxwYXJzZXIgdG8ga25vdyB3aGF0IHRvIGRvIHdpdGgKKyAqIGJyb2tlbiBodG1sIHBhZ2VzLiBCeSBhc3NpZ25pbmcgZGlmZmVyZW50IHByaW9yaXRpZXMgdG8gZGlmZmVyZW50CisgKiBlbGVtZW50cyB0aGUgcGFyc2VyIGNhbiBkZWNpZGUgaG93IHRvIGhhbmRsZSBleHRyYSBlbmR0YWdzLgorICogRW5kdGFncyBhcmUgb25seSBhbGxvd2VkIHRvIGNsb3NlIGVsZW1lbnRzIHdpdGggbG93ZXIgb3IgZXF1YWwKKyAqIHByaW9yaXR5LgorICovCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBjaGFyICpuYW1lOworICAgIGludCBwcmlvcml0eTsKK30gZWxlbWVudFByaW9yaXR5OworCitzdGF0aWMgY29uc3QgZWxlbWVudFByaW9yaXR5IGh0bWxFbmRQcmlvcml0eVtdID0geworICAgIHsiZGl2IiwgICAxNTB9LAorICAgIHsidGQiLCAgICAxNjB9LAorICAgIHsidGgiLCAgICAxNjB9LAorICAgIHsidHIiLCAgICAxNzB9LAorICAgIHsidGhlYWQiLCAxODB9LAorICAgIHsidGJvZHkiLCAxODB9LAorICAgIHsidGZvb3QiLCAxODB9LAorICAgIHsidGFibGUiLCAxOTB9LAorICAgIHsiaGVhZCIsICAyMDB9LAorICAgIHsiYm9keSIsICAyMDB9LAorICAgIHsiaHRtbCIsICAyMjB9LAorICAgIHtOVUxMLCAgICAxMDB9IC8qIERlZmF1bHQgcHJpb3JpdHkgKi8KK307CisKK3N0YXRpYyBjb25zdCBjaGFyKiogaHRtbFN0YXJ0Q2xvc2VJbmRleFsxMDBdOworc3RhdGljIGludCBodG1sU3RhcnRDbG9zZUluZGV4aW5pdGlhbGl6ZWQgPSAwOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCWZ1bmN0aW9ucyB0byBoYW5kbGUgSFRNTCBzcGVjaWZpYyBkYXRhCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIGh0bWxJbml0QXV0b0Nsb3NlOgorICoKKyAqIEluaXRpYWxpemUgdGhlIGh0bWxTdGFydENsb3NlSW5kZXggZm9yIGZhc3QgbG9va3VwIG9mIGNsb3NpbmcgdGFncyBuYW1lcy4KKyAqIFRoaXMgaXMgbm90IHJlZW50cmFudC4gQ2FsbCB4bWxJbml0UGFyc2VyKCkgb25jZSBiZWZvcmUgcHJvY2Vzc2luZyBpbgorICogY2FzZSBvZiB1c2UgaW4gbXVsdGl0aHJlYWRlZCBwcm9ncmFtcy4KKyAqLwordm9pZAoraHRtbEluaXRBdXRvQ2xvc2Uodm9pZCkgeworICAgIGludCBpbmR4LCBpID0gMDsKKworICAgIGlmIChodG1sU3RhcnRDbG9zZUluZGV4aW5pdGlhbGl6ZWQpIHJldHVybjsKKworICAgIGZvciAoaW5keCA9IDA7aW5keCA8IDEwMDtpbmR4ICsrKSBodG1sU3RhcnRDbG9zZUluZGV4W2luZHhdID0gTlVMTDsKKyAgICBpbmR4ID0gMDsKKyAgICB3aGlsZSAoKGh0bWxTdGFydENsb3NlW2ldICE9IE5VTEwpICYmIChpbmR4IDwgMTAwIC0gMSkpIHsKKyAgICAgICAgaHRtbFN0YXJ0Q2xvc2VJbmRleFtpbmR4KytdID0gKGNvbnN0IGNoYXIqKikgJmh0bWxTdGFydENsb3NlW2ldOworCXdoaWxlIChodG1sU3RhcnRDbG9zZVtpXSAhPSBOVUxMKSBpKys7CisJaSsrOworICAgIH0KKyAgICBodG1sU3RhcnRDbG9zZUluZGV4aW5pdGlhbGl6ZWQgPSAxOworfQorCisvKioKKyAqIGh0bWxUYWdMb29rdXA6CisgKiBAdGFnOiAgVGhlIHRhZyBuYW1lIGluIGxvd2VyY2FzZQorICoKKyAqIExvb2t1cCB0aGUgSFRNTCB0YWcgaW4gdGhlIEVsZW1lbnRUYWJsZQorICoKKyAqIFJldHVybnMgdGhlIHJlbGF0ZWQgaHRtbEVsZW1EZXNjUHRyIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICovCitjb25zdCBodG1sRWxlbURlc2MgKgoraHRtbFRhZ0xvb2t1cChjb25zdCB4bWxDaGFyICp0YWcpIHsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCAoc2l6ZW9mKGh0bWw0MEVsZW1lbnRUYWJsZSkgLworICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGh0bWw0MEVsZW1lbnRUYWJsZVswXSkpO2krKykgeworICAgICAgICBpZiAoIXhtbFN0cmNhc2VjbXAodGFnLCBCQURfQ0FTVCBodG1sNDBFbGVtZW50VGFibGVbaV0ubmFtZSkpCisJICAgIHJldHVybigoaHRtbEVsZW1EZXNjUHRyKSAmaHRtbDQwRWxlbWVudFRhYmxlW2ldKTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIGh0bWxHZXRFbmRQcmlvcml0eToKKyAqIEBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZWxlbWVudCB0byBsb29rIHVwIHRoZSBwcmlvcml0eSBmb3IuCisgKgorICogUmV0dXJuIHZhbHVlOiBUaGUgImVuZHRhZyIgcHJpb3JpdHkuCisgKiovCitzdGF0aWMgaW50CitodG1sR2V0RW5kUHJpb3JpdHkgKGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICBpbnQgaSA9IDA7CisKKyAgICB3aGlsZSAoKGh0bWxFbmRQcmlvcml0eVtpXS5uYW1lICE9IE5VTEwpICYmCisJICAgKCF4bWxTdHJFcXVhbCgoY29uc3QgeG1sQ2hhciAqKWh0bWxFbmRQcmlvcml0eVtpXS5uYW1lLCBuYW1lKSkpCisJaSsrOworCisgICAgcmV0dXJuKGh0bWxFbmRQcmlvcml0eVtpXS5wcmlvcml0eSk7Cit9CisKKworLyoqCisgKiBodG1sQ2hlY2tBdXRvQ2xvc2U6CisgKiBAbmV3dGFnOiAgVGhlIG5ldyB0YWcgbmFtZQorICogQG9sZHRhZzogIFRoZSBvbGQgdGFnIG5hbWUKKyAqCisgKiBDaGVja3Mgd2hldGhlciB0aGUgbmV3IHRhZyBpcyBvbmUgb2YgdGhlIHJlZ2lzdGVyZWQgdmFsaWQgdGFncyBmb3IKKyAqIGNsb3Npbmcgb2xkLgorICogSW5pdGlhbGl6ZSB0aGUgaHRtbFN0YXJ0Q2xvc2VJbmRleCBmb3IgZmFzdCBsb29rdXAgb2YgY2xvc2luZyB0YWdzIG5hbWVzLgorICoKKyAqIFJldHVybnMgMCBpZiBubywgMSBpZiB5ZXMuCisgKi8KK3N0YXRpYyBpbnQKK2h0bWxDaGVja0F1dG9DbG9zZShjb25zdCB4bWxDaGFyICogbmV3dGFnLCBjb25zdCB4bWxDaGFyICogb2xkdGFnKQoreworICAgIGludCBpLCBpbmR4OworICAgIGNvbnN0IGNoYXIgKipjbG9zZWQgPSBOVUxMOworCisgICAgaWYgKGh0bWxTdGFydENsb3NlSW5kZXhpbml0aWFsaXplZCA9PSAwKQorICAgICAgICBodG1sSW5pdEF1dG9DbG9zZSgpOworCisgICAgLyogaW5lZmZpY2llbnQsIGJ1dCBub3QgYSBiaWcgZGVhbCAqLworICAgIGZvciAoaW5keCA9IDA7IGluZHggPCAxMDA7IGluZHgrKykgeworICAgICAgICBjbG9zZWQgPSBodG1sU3RhcnRDbG9zZUluZGV4W2luZHhdOworICAgICAgICBpZiAoY2xvc2VkID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICBpZiAoeG1sU3RyRXF1YWwoQkFEX0NBU1QgKiBjbG9zZWQsIG5ld3RhZykpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpID0gY2xvc2VkIC0gaHRtbFN0YXJ0Q2xvc2U7CisgICAgaSsrOworICAgIHdoaWxlIChodG1sU3RhcnRDbG9zZVtpXSAhPSBOVUxMKSB7CisgICAgICAgIGlmICh4bWxTdHJFcXVhbChCQURfQ0FTVCBodG1sU3RhcnRDbG9zZVtpXSwgb2xkdGFnKSkgeworICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgfQorICAgICAgICBpKys7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogaHRtbEF1dG9DbG9zZU9uQ2xvc2U6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuZXd0YWc6ICBUaGUgbmV3IHRhZyBuYW1lCisgKiBAZm9yY2U6ICBmb3JjZSB0aGUgdGFnIGNsb3N1cmUKKyAqCisgKiBUaGUgSFRNTCBEVEQgYWxsb3dzIGFuIGVuZGluZyB0YWcgdG8gaW1wbGljaXRseSBjbG9zZSBvdGhlciB0YWdzLgorICovCitzdGF0aWMgdm9pZAoraHRtbEF1dG9DbG9zZU9uQ2xvc2UoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqIG5ld3RhZykKK3sKKyAgICBjb25zdCBodG1sRWxlbURlc2MgKmluZm87CisgICAgaW50IGksIHByaW9yaXR5OworCisgICAgcHJpb3JpdHkgPSBodG1sR2V0RW5kUHJpb3JpdHkobmV3dGFnKTsKKworICAgIGZvciAoaSA9IChjdHh0LT5uYW1lTnIgLSAxKTsgaSA+PSAwOyBpLS0pIHsKKworICAgICAgICBpZiAoeG1sU3RyRXF1YWwobmV3dGFnLCBjdHh0LT5uYW1lVGFiW2ldKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvKgorICAgICAgICAgKiBBIG1pc3NwbGFjZWQgZW5kdGFnIGNhbiBvbmx5IGNsb3NlIGVsZW1lbnRzIHdpdGggbG93ZXIKKyAgICAgICAgICogb3IgZXF1YWwgcHJpb3JpdHksIHNvIGlmIHdlIGZpbmQgYW4gZWxlbWVudCB3aXRoIGhpZ2hlcgorICAgICAgICAgKiBwcmlvcml0eSBiZWZvcmUgd2UgZmluZCBhbiBlbGVtZW50IHdpdGgKKyAgICAgICAgICogbWF0Y2hpbmcgbmFtZSwgd2UganVzdCBpZ25vcmUgdGhpcyBlbmR0YWcKKyAgICAgICAgICovCisgICAgICAgIGlmIChodG1sR2V0RW5kUHJpb3JpdHkoY3R4dC0+bmFtZVRhYltpXSkgPiBwcmlvcml0eSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGkgPCAwKQorICAgICAgICByZXR1cm47CisKKyAgICB3aGlsZSAoIXhtbFN0ckVxdWFsKG5ld3RhZywgY3R4dC0+bmFtZSkpIHsKKyAgICAgICAgaW5mbyA9IGh0bWxUYWdMb29rdXAoY3R4dC0+bmFtZSk7CisgICAgICAgIGlmICgoaW5mbyAhPSBOVUxMKSAmJiAoaW5mby0+ZW5kVGFnID09IDMpKSB7CisgICAgICAgICAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCwKKwkgICAgICAgICAgICAgICAgICJPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiAlcyBhbmQgJXNcbiIsCisJCQkgbmV3dGFnLCBjdHh0LT5uYW1lKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpKQorICAgICAgICAgICAgY3R4dC0+c2F4LT5lbmRFbGVtZW50KGN0eHQtPnVzZXJEYXRhLCBjdHh0LT5uYW1lKTsKKwlodG1sbmFtZVBvcChjdHh0KTsKKyAgICB9Cit9CisKKy8qKgorICogaHRtbEF1dG9DbG9zZU9uRW5kOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogQ2xvc2UgYWxsIHJlbWFpbmluZyB0YWdzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmVhbQorICovCitzdGF0aWMgdm9pZAoraHRtbEF1dG9DbG9zZU9uRW5kKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgaW50IGk7CisKKyAgICBpZiAoY3R4dC0+bmFtZU5yID09IDApCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKGkgPSAoY3R4dC0+bmFtZU5yIC0gMSk7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmVuZEVsZW1lbnQgIT0gTlVMTCkpCisgICAgICAgICAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIGN0eHQtPm5hbWUpOworCWh0bWxuYW1lUG9wKGN0eHQpOworICAgIH0KK30KKworLyoqCisgKiBodG1sQXV0b0Nsb3NlOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmV3dGFnOiAgVGhlIG5ldyB0YWcgbmFtZSBvciBOVUxMCisgKgorICogVGhlIEhUTUwgRFREIGFsbG93cyBhIHRhZyB0byBpbXBsaWNpdGx5IGNsb3NlIG90aGVyIHRhZ3MuCisgKiBUaGUgbGlzdCBpcyBrZXB0IGluIGh0bWxTdGFydENsb3NlIGFycmF5LiBUaGlzIGZ1bmN0aW9uIGlzCisgKiBjYWxsZWQgd2hlbiBhIG5ldyB0YWcgaGFzIGJlZW4gZGV0ZWN0ZWQgYW5kIGdlbmVyYXRlcyB0aGUKKyAqIGFwcHJvcHJpYXRlcyBjbG9zZXMgaWYgcG9zc2libGUvbmVlZGVkLgorICogSWYgbmV3dGFnIGlzIE5VTEwgdGhpcyBtZWFuIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSByZXNvdXJjZQorICogYW5kIHdlIHNob3VsZCBjaGVjaworICovCitzdGF0aWMgdm9pZAoraHRtbEF1dG9DbG9zZShodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICogbmV3dGFnKQoreworICAgIHdoaWxlICgobmV3dGFnICE9IE5VTEwpICYmIChjdHh0LT5uYW1lICE9IE5VTEwpICYmCisgICAgICAgICAgIChodG1sQ2hlY2tBdXRvQ2xvc2UobmV3dGFnLCBjdHh0LT5uYW1lKSkpIHsKKyAgICAgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+ZW5kRWxlbWVudCAhPSBOVUxMKSkKKyAgICAgICAgICAgIGN0eHQtPnNheC0+ZW5kRWxlbWVudChjdHh0LT51c2VyRGF0YSwgY3R4dC0+bmFtZSk7CisJaHRtbG5hbWVQb3AoY3R4dCk7CisgICAgfQorICAgIGlmIChuZXd0YWcgPT0gTlVMTCkgeworICAgICAgICBodG1sQXV0b0Nsb3NlT25FbmQoY3R4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgd2hpbGUgKChuZXd0YWcgPT0gTlVMTCkgJiYgKGN0eHQtPm5hbWUgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgKCh4bWxTdHJFcXVhbChjdHh0LT5uYW1lLCBCQURfQ0FTVCAiaGVhZCIpKSB8fAorICAgICAgICAgICAgKHhtbFN0ckVxdWFsKGN0eHQtPm5hbWUsIEJBRF9DQVNUICJib2R5IikpIHx8CisgICAgICAgICAgICAoeG1sU3RyRXF1YWwoY3R4dC0+bmFtZSwgQkFEX0NBU1QgImh0bWwiKSkpKSB7CisgICAgICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmVuZEVsZW1lbnQgIT0gTlVMTCkpCisgICAgICAgICAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIGN0eHQtPm5hbWUpOworCWh0bWxuYW1lUG9wKGN0eHQpOworICAgIH0KK30KKworLyoqCisgKiBodG1sQXV0b0Nsb3NlVGFnOgorICogQGRvYzogIHRoZSBIVE1MIGRvY3VtZW50CisgKiBAbmFtZTogIFRoZSB0YWcgbmFtZQorICogQGVsZW06ICB0aGUgSFRNTCBlbGVtZW50CisgKgorICogVGhlIEhUTUwgRFREIGFsbG93cyBhIHRhZyB0byBpbXBsaWNpdGx5IGNsb3NlIG90aGVyIHRhZ3MuCisgKiBUaGUgbGlzdCBpcyBrZXB0IGluIGh0bWxTdGFydENsb3NlIGFycmF5LiBUaGlzIGZ1bmN0aW9uIGNoZWNrcworICogaWYgdGhlIGVsZW1lbnQgb3Igb25lIG9mIGl0J3MgY2hpbGRyZW4gd291bGQgYXV0b2Nsb3NlIHRoZQorICogZ2l2ZW4gdGFnLgorICoKKyAqIFJldHVybnMgMSBpZiBhdXRvY2xvc2UsIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoraHRtbEF1dG9DbG9zZVRhZyhodG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqbmFtZSwgaHRtbE5vZGVQdHIgZWxlbSkgeworICAgIGh0bWxOb2RlUHRyIGNoaWxkOworCisgICAgaWYgKGVsZW0gPT0gTlVMTCkgcmV0dXJuKDEpOworICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBlbGVtLT5uYW1lKSkgcmV0dXJuKDApOworICAgIGlmIChodG1sQ2hlY2tBdXRvQ2xvc2UoZWxlbS0+bmFtZSwgbmFtZSkpIHJldHVybigxKTsKKyAgICBjaGlsZCA9IGVsZW0tPmNoaWxkcmVuOworICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChodG1sQXV0b0Nsb3NlVGFnKGRvYywgbmFtZSwgY2hpbGQpKSByZXR1cm4oMSk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGh0bWxJc0F1dG9DbG9zZWQ6CisgKiBAZG9jOiAgdGhlIEhUTUwgZG9jdW1lbnQKKyAqIEBlbGVtOiAgdGhlIEhUTUwgZWxlbWVudAorICoKKyAqIFRoZSBIVE1MIERURCBhbGxvd3MgYSB0YWcgdG8gaW1wbGljaXRseSBjbG9zZSBvdGhlciB0YWdzLgorICogVGhlIGxpc3QgaXMga2VwdCBpbiBodG1sU3RhcnRDbG9zZSBhcnJheS4gVGhpcyBmdW5jdGlvbiBjaGVja3MKKyAqIGlmIGEgdGFnIGlzIGF1dG9jbG9zZWQgYnkgb25lIG9mIGl0J3MgY2hpbGQKKyAqCisgKiBSZXR1cm5zIDEgaWYgYXV0b2Nsb3NlZCwgMCBvdGhlcndpc2UKKyAqLworaW50CitodG1sSXNBdXRvQ2xvc2VkKGh0bWxEb2NQdHIgZG9jLCBodG1sTm9kZVB0ciBlbGVtKSB7CisgICAgaHRtbE5vZGVQdHIgY2hpbGQ7CisKKyAgICBpZiAoZWxlbSA9PSBOVUxMKSByZXR1cm4oMSk7CisgICAgY2hpbGQgPSBlbGVtLT5jaGlsZHJlbjsKKyAgICB3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworCWlmIChodG1sQXV0b0Nsb3NlVGFnKGRvYywgZWxlbS0+bmFtZSwgY2hpbGQpKSByZXR1cm4oMSk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGh0bWxDaGVja0ltcGxpZWQ6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuZXd0YWc6ICBUaGUgbmV3IHRhZyBuYW1lCisgKgorICogVGhlIEhUTUwgRFREIGFsbG93cyBhIHRhZyB0byBleGlzdHMgb25seSBpbXBsaWNpdGx5CisgKiBjYWxsZWQgd2hlbiBhIG5ldyB0YWcgaGFzIGJlZW4gZGV0ZWN0ZWQgYW5kIGdlbmVyYXRlcyB0aGUKKyAqIGFwcHJvcHJpYXRlcyBpbXBsaWNpdCB0YWdzIGlmIG1pc3NpbmcKKyAqLworc3RhdGljIHZvaWQKK2h0bWxDaGVja0ltcGxpZWQoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqbmV3dGFnKSB7CisgICAgaW50IGk7CisKKyAgICBpZiAoY3R4dC0+b3B0aW9ucyAmIEhUTUxfUEFSU0VfTk9JTVBMSUVEKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFodG1sT21pdHRlZERlZmF1bHRWYWx1ZSkKKwlyZXR1cm47CisgICAgaWYgKHhtbFN0ckVxdWFsKG5ld3RhZywgQkFEX0NBU1QiaHRtbCIpKQorCXJldHVybjsKKyAgICBpZiAoY3R4dC0+bmFtZU5yIDw9IDApIHsKKwlodG1sbmFtZVB1c2goY3R4dCwgQkFEX0NBU1QiaHRtbCIpOworCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPnN0YXJ0RWxlbWVudCAhPSBOVUxMKSkKKwkgICAgY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIEJBRF9DQVNUImh0bWwiLCBOVUxMKTsKKyAgICB9CisgICAgaWYgKCh4bWxTdHJFcXVhbChuZXd0YWcsIEJBRF9DQVNUImJvZHkiKSkgfHwgKHhtbFN0ckVxdWFsKG5ld3RhZywgQkFEX0NBU1QiaGVhZCIpKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICgoY3R4dC0+bmFtZU5yIDw9IDEpICYmCisgICAgICAgICgoeG1sU3RyRXF1YWwobmV3dGFnLCBCQURfQ0FTVCJzY3JpcHQiKSkgfHwKKwkgKHhtbFN0ckVxdWFsKG5ld3RhZywgQkFEX0NBU1Qic3R5bGUiKSkgfHwKKwkgKHhtbFN0ckVxdWFsKG5ld3RhZywgQkFEX0NBU1QibWV0YSIpKSB8fAorCSAoeG1sU3RyRXF1YWwobmV3dGFnLCBCQURfQ0FTVCJsaW5rIikpIHx8CisJICh4bWxTdHJFcXVhbChuZXd0YWcsIEJBRF9DQVNUInRpdGxlIikpIHx8CisJICh4bWxTdHJFcXVhbChuZXd0YWcsIEJBRF9DQVNUImJhc2UiKSkpKSB7CisgICAgICAgIGlmIChjdHh0LT5odG1sID49IDMpIHsKKyAgICAgICAgICAgIC8qIHdlIGFscmVhZHkgc2F3IG9yIGdlbmVyYXRlZCBhbiA8aGVhZD4gYmVmb3JlICovCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgICogZHJvcHBlZCBPQkpFQ1QgLi4uIGkgeW91IHB1dCBpdCBmaXJzdCBCT0RZIHdpbGwgYmUKKyAgICAgICAgICogYXNzdW1lZCAhCisgICAgICAgICAqLworICAgICAgICBodG1sbmFtZVB1c2goY3R4dCwgQkFEX0NBU1QiaGVhZCIpOworICAgICAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQgIT0gTlVMTCkpCisgICAgICAgICAgICBjdHh0LT5zYXgtPnN0YXJ0RWxlbWVudChjdHh0LT51c2VyRGF0YSwgQkFEX0NBU1QiaGVhZCIsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoKCF4bWxTdHJFcXVhbChuZXd0YWcsIEJBRF9DQVNUIm5vZnJhbWVzIikpICYmCisJICAgICAgICgheG1sU3RyRXF1YWwobmV3dGFnLCBCQURfQ0FTVCJmcmFtZSIpKSAmJgorCSAgICAgICAoIXhtbFN0ckVxdWFsKG5ld3RhZywgQkFEX0NBU1QiZnJhbWVzZXQiKSkpIHsKKyAgICAgICAgaWYgKGN0eHQtPmh0bWwgPj0gMTApIHsKKyAgICAgICAgICAgIC8qIHdlIGFscmVhZHkgc2F3IG9yIGdlbmVyYXRlZCBhIDxib2R5PiBiZWZvcmUgKi8KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCWZvciAoaSA9IDA7aSA8IGN0eHQtPm5hbWVOcjtpKyspIHsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKGN0eHQtPm5hbWVUYWJbaV0sIEJBRF9DQVNUImJvZHkiKSkgeworCQlyZXR1cm47CisJICAgIH0KKwkgICAgaWYgKHhtbFN0ckVxdWFsKGN0eHQtPm5hbWVUYWJbaV0sIEJBRF9DQVNUImhlYWQiKSkgeworCQlyZXR1cm47CisJICAgIH0KKwl9CisKKwlodG1sbmFtZVB1c2goY3R4dCwgQkFEX0NBU1QiYm9keSIpOworCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPnN0YXJ0RWxlbWVudCAhPSBOVUxMKSkKKwkgICAgY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIEJBRF9DQVNUImJvZHkiLCBOVUxMKTsKKyAgICB9Cit9CisKKy8qKgorICogaHRtbENoZWNrUGFyYWdyYXBoCisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBDaGVjayB3aGV0aGVyIGEgcCBlbGVtZW50IG5lZWQgdG8gYmUgaW1wbGllZCBiZWZvcmUgaW5zZXJ0aW5nCisgKiBjaGFyYWN0ZXJzIGluIHRoZSBjdXJyZW50IGVsZW1lbnQuCisgKgorICogUmV0dXJucyAxIGlmIGEgcGFyYWdyYXBoIGhhcyBiZWVuIGluc2VydGVkLCAwIGlmIG5vdCBhbmQgLTEKKyAqICAgICAgICAgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworCitzdGF0aWMgaW50CitodG1sQ2hlY2tQYXJhZ3JhcGgoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKnRhZzsKKyAgICBpbnQgaTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICB0YWcgPSBjdHh0LT5uYW1lOworICAgIGlmICh0YWcgPT0gTlVMTCkgeworCWh0bWxBdXRvQ2xvc2UoY3R4dCwgQkFEX0NBU1QicCIpOworCWh0bWxDaGVja0ltcGxpZWQoY3R4dCwgQkFEX0NBU1QicCIpOworCWh0bWxuYW1lUHVzaChjdHh0LCBCQURfQ0FTVCJwIik7CisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+c3RhcnRFbGVtZW50ICE9IE5VTEwpKQorCSAgICBjdHh0LT5zYXgtPnN0YXJ0RWxlbWVudChjdHh0LT51c2VyRGF0YSwgQkFEX0NBU1QicCIsIE5VTEwpOworCXJldHVybigxKTsKKyAgICB9CisgICAgaWYgKCFodG1sT21pdHRlZERlZmF1bHRWYWx1ZSkKKwlyZXR1cm4oMCk7CisgICAgZm9yIChpID0gMDsgaHRtbE5vQ29udGVudEVsZW1lbnRzW2ldICE9IE5VTEw7IGkrKykgeworCWlmICh4bWxTdHJFcXVhbCh0YWcsIEJBRF9DQVNUIGh0bWxOb0NvbnRlbnRFbGVtZW50c1tpXSkpIHsKKwkgICAgaHRtbEF1dG9DbG9zZShjdHh0LCBCQURfQ0FTVCJwIik7CisJICAgIGh0bWxDaGVja0ltcGxpZWQoY3R4dCwgQkFEX0NBU1QicCIpOworCSAgICBodG1sbmFtZVB1c2goY3R4dCwgQkFEX0NBU1QicCIpOworCSAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQgIT0gTlVMTCkpCisJCWN0eHQtPnNheC0+c3RhcnRFbGVtZW50KGN0eHQtPnVzZXJEYXRhLCBCQURfQ0FTVCJwIiwgTlVMTCk7CisJICAgIHJldHVybigxKTsKKwl9CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiBodG1sSXNTY3JpcHRBdHRyaWJ1dGU6CisgKiBAbmFtZTogIGFuIGF0dHJpYnV0ZSBuYW1lCisgKgorICogQ2hlY2sgaWYgYW4gYXR0cmlidXRlIGlzIG9mIGNvbnRlbnQgdHlwZSBTY3JpcHQKKyAqCisgKiBSZXR1cm5zIDEgaXMgdGhlIGF0dHJpYnV0ZSBpcyBhIHNjcmlwdCAwIG90aGVyd2lzZQorICovCitpbnQKK2h0bWxJc1NjcmlwdEF0dHJpYnV0ZShjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorICAgICAgcmV0dXJuKDApOworICAgIC8qCisgICAgICogYWxsIHNjcmlwdCBhdHRyaWJ1dGVzIHN0YXJ0IHdpdGggJ29uJworICAgICAqLworICAgIGlmICgobmFtZVswXSAhPSAnbycpIHx8IChuYW1lWzFdICE9ICduJykpCisgICAgICByZXR1cm4oMCk7CisgICAgZm9yIChpID0gMDsKKwkgaSA8IHNpemVvZihodG1sU2NyaXB0QXR0cmlidXRlcykvc2l6ZW9mKGh0bWxTY3JpcHRBdHRyaWJ1dGVzWzBdKTsKKwkgaSsrKSB7CisJaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopIGh0bWxTY3JpcHRBdHRyaWJ1dGVzW2ldKSkKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJVGhlIGxpc3Qgb2YgSFRNTCBwcmVkZWZpbmVkIGVudGl0aWVzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK3N0YXRpYyBjb25zdCBodG1sRW50aXR5RGVzYyAgaHRtbDQwRW50aXRpZXNUYWJsZVtdID0geworLyoKKyAqIHRoZSA0IGFic29sdXRlIG9uZXMsIHBsdXMgYXBvc3Ryb3BoZS4KKyAqLworeyAzNCwJInF1b3QiLAkicXVvdGF0aW9uIG1hcmsgPSBBUEwgcXVvdGUsIFUrMDAyMiBJU09udW0iIH0sCit7IDM4LAkiYW1wIiwJImFtcGVyc2FuZCwgVSswMDI2IElTT251bSIgfSwKK3sgMzksCSJhcG9zIiwJInNpbmdsZSBxdW90ZSIgfSwKK3sgNjAsCSJsdCIsCSJsZXNzLXRoYW4gc2lnbiwgVSswMDNDIElTT251bSIgfSwKK3sgNjIsCSJndCIsCSJncmVhdGVyLXRoYW4gc2lnbiwgVSswMDNFIElTT251bSIgfSwKKworLyoKKyAqIEEgYnVuY2ggc3RpbGwgaW4gdGhlIDEyOC0yNTUgcmFuZ2UKKyAqIFJlcGxhY2luZyB0aGVtIGRlcGVuZCByZWFsbHkgb24gdGhlIGNoYXJzZXQgdXNlZC4KKyAqLworeyAxNjAsCSJuYnNwIiwJIm5vLWJyZWFrIHNwYWNlID0gbm9uLWJyZWFraW5nIHNwYWNlLCBVKzAwQTAgSVNPbnVtIiB9LAoreyAxNjEsCSJpZXhjbCIsImludmVydGVkIGV4Y2xhbWF0aW9uIG1hcmssIFUrMDBBMSBJU09udW0iIH0sCit7IDE2MiwJImNlbnQiLAkiY2VudCBzaWduLCBVKzAwQTIgSVNPbnVtIiB9LAoreyAxNjMsCSJwb3VuZCIsInBvdW5kIHNpZ24sIFUrMDBBMyBJU09udW0iIH0sCit7IDE2NCwJImN1cnJlbiIsImN1cnJlbmN5IHNpZ24sIFUrMDBBNCBJU09udW0iIH0sCit7IDE2NSwJInllbiIsCSJ5ZW4gc2lnbiA9IHl1YW4gc2lnbiwgVSswMEE1IElTT251bSIgfSwKK3sgMTY2LAkiYnJ2YmFyIiwiYnJva2VuIGJhciA9IGJyb2tlbiB2ZXJ0aWNhbCBiYXIsIFUrMDBBNiBJU09udW0iIH0sCit7IDE2NywJInNlY3QiLAkic2VjdGlvbiBzaWduLCBVKzAwQTcgSVNPbnVtIiB9LAoreyAxNjgsCSJ1bWwiLAkiZGlhZXJlc2lzID0gc3BhY2luZyBkaWFlcmVzaXMsIFUrMDBBOCBJU09kaWEiIH0sCit7IDE2OSwJImNvcHkiLAkiY29weXJpZ2h0IHNpZ24sIFUrMDBBOSBJU09udW0iIH0sCit7IDE3MCwJIm9yZGYiLAkiZmVtaW5pbmUgb3JkaW5hbCBpbmRpY2F0b3IsIFUrMDBBQSBJU09udW0iIH0sCit7IDE3MSwJImxhcXVvIiwibGVmdC1wb2ludGluZyBkb3VibGUgYW5nbGUgcXVvdGF0aW9uIG1hcmsgPSBsZWZ0IHBvaW50aW5nIGd1aWxsZW1ldCwgVSswMEFCIElTT251bSIgfSwKK3sgMTcyLAkibm90IiwJIm5vdCBzaWduLCBVKzAwQUMgSVNPbnVtIiB9LAoreyAxNzMsCSJzaHkiLAkic29mdCBoeXBoZW4gPSBkaXNjcmV0aW9uYXJ5IGh5cGhlbiwgVSswMEFEIElTT251bSIgfSwKK3sgMTc0LAkicmVnIiwJInJlZ2lzdGVyZWQgc2lnbiA9IHJlZ2lzdGVyZWQgdHJhZGUgbWFyayBzaWduLCBVKzAwQUUgSVNPbnVtIiB9LAoreyAxNzUsCSJtYWNyIiwJIm1hY3JvbiA9IHNwYWNpbmcgbWFjcm9uID0gb3ZlcmxpbmUgPSBBUEwgb3ZlcmJhciwgVSswMEFGIElTT2RpYSIgfSwKK3sgMTc2LAkiZGVnIiwJImRlZ3JlZSBzaWduLCBVKzAwQjAgSVNPbnVtIiB9LAoreyAxNzcsCSJwbHVzbW4iLCJwbHVzLW1pbnVzIHNpZ24gPSBwbHVzLW9yLW1pbnVzIHNpZ24sIFUrMDBCMSBJU09udW0iIH0sCit7IDE3OCwJInN1cDIiLAkic3VwZXJzY3JpcHQgdHdvID0gc3VwZXJzY3JpcHQgZGlnaXQgdHdvID0gc3F1YXJlZCwgVSswMEIyIElTT251bSIgfSwKK3sgMTc5LAkic3VwMyIsCSJzdXBlcnNjcmlwdCB0aHJlZSA9IHN1cGVyc2NyaXB0IGRpZ2l0IHRocmVlID0gY3ViZWQsIFUrMDBCMyBJU09udW0iIH0sCit7IDE4MCwJImFjdXRlIiwiYWN1dGUgYWNjZW50ID0gc3BhY2luZyBhY3V0ZSwgVSswMEI0IElTT2RpYSIgfSwKK3sgMTgxLAkibWljcm8iLCJtaWNybyBzaWduLCBVKzAwQjUgSVNPbnVtIiB9LAoreyAxODIsCSJwYXJhIiwJInBpbGNyb3cgc2lnbiA9IHBhcmFncmFwaCBzaWduLCBVKzAwQjYgSVNPbnVtIiB9LAoreyAxODMsCSJtaWRkb3QiLCJtaWRkbGUgZG90ID0gR2VvcmdpYW4gY29tbWEgR3JlZWsgbWlkZGxlIGRvdCwgVSswMEI3IElTT251bSIgfSwKK3sgMTg0LAkiY2VkaWwiLCJjZWRpbGxhID0gc3BhY2luZyBjZWRpbGxhLCBVKzAwQjggSVNPZGlhIiB9LAoreyAxODUsCSJzdXAxIiwJInN1cGVyc2NyaXB0IG9uZSA9IHN1cGVyc2NyaXB0IGRpZ2l0IG9uZSwgVSswMEI5IElTT251bSIgfSwKK3sgMTg2LAkib3JkbSIsCSJtYXNjdWxpbmUgb3JkaW5hbCBpbmRpY2F0b3IsIFUrMDBCQSBJU09udW0iIH0sCit7IDE4NywJInJhcXVvIiwicmlnaHQtcG9pbnRpbmcgZG91YmxlIGFuZ2xlIHF1b3RhdGlvbiBtYXJrIHJpZ2h0IHBvaW50aW5nIGd1aWxsZW1ldCwgVSswMEJCIElTT251bSIgfSwKK3sgMTg4LAkiZnJhYzE0IiwidnVsZ2FyIGZyYWN0aW9uIG9uZSBxdWFydGVyID0gZnJhY3Rpb24gb25lIHF1YXJ0ZXIsIFUrMDBCQyBJU09udW0iIH0sCit7IDE4OSwJImZyYWMxMiIsInZ1bGdhciBmcmFjdGlvbiBvbmUgaGFsZiA9IGZyYWN0aW9uIG9uZSBoYWxmLCBVKzAwQkQgSVNPbnVtIiB9LAoreyAxOTAsCSJmcmFjMzQiLCJ2dWxnYXIgZnJhY3Rpb24gdGhyZWUgcXVhcnRlcnMgPSBmcmFjdGlvbiB0aHJlZSBxdWFydGVycywgVSswMEJFIElTT251bSIgfSwKK3sgMTkxLAkiaXF1ZXN0IiwiaW52ZXJ0ZWQgcXVlc3Rpb24gbWFyayA9IHR1cm5lZCBxdWVzdGlvbiBtYXJrLCBVKzAwQkYgSVNPbnVtIiB9LAoreyAxOTIsCSJBZ3JhdmUiLCJsYXRpbiBjYXBpdGFsIGxldHRlciBBIHdpdGggZ3JhdmUgPSBsYXRpbiBjYXBpdGFsIGxldHRlciBBIGdyYXZlLCBVKzAwQzAgSVNPbGF0MSIgfSwKK3sgMTkzLAkiQWFjdXRlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgQSB3aXRoIGFjdXRlLCBVKzAwQzEgSVNPbGF0MSIgfSwKK3sgMTk0LAkiQWNpcmMiLCJsYXRpbiBjYXBpdGFsIGxldHRlciBBIHdpdGggY2lyY3VtZmxleCwgVSswMEMyIElTT2xhdDEiIH0sCit7IDE5NSwJIkF0aWxkZSIsImxhdGluIGNhcGl0YWwgbGV0dGVyIEEgd2l0aCB0aWxkZSwgVSswMEMzIElTT2xhdDEiIH0sCit7IDE5NiwJIkF1bWwiLAkibGF0aW4gY2FwaXRhbCBsZXR0ZXIgQSB3aXRoIGRpYWVyZXNpcywgVSswMEM0IElTT2xhdDEiIH0sCit7IDE5NywJIkFyaW5nIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgQSB3aXRoIHJpbmcgYWJvdmUgPSBsYXRpbiBjYXBpdGFsIGxldHRlciBBIHJpbmcsIFUrMDBDNSBJU09sYXQxIiB9LAoreyAxOTgsCSJBRWxpZyIsImxhdGluIGNhcGl0YWwgbGV0dGVyIEFFID0gbGF0aW4gY2FwaXRhbCBsaWdhdHVyZSBBRSwgVSswMEM2IElTT2xhdDEiIH0sCit7IDE5OSwJIkNjZWRpbCIsImxhdGluIGNhcGl0YWwgbGV0dGVyIEMgd2l0aCBjZWRpbGxhLCBVKzAwQzcgSVNPbGF0MSIgfSwKK3sgMjAwLAkiRWdyYXZlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgRSB3aXRoIGdyYXZlLCBVKzAwQzggSVNPbGF0MSIgfSwKK3sgMjAxLAkiRWFjdXRlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgRSB3aXRoIGFjdXRlLCBVKzAwQzkgSVNPbGF0MSIgfSwKK3sgMjAyLAkiRWNpcmMiLCJsYXRpbiBjYXBpdGFsIGxldHRlciBFIHdpdGggY2lyY3VtZmxleCwgVSswMENBIElTT2xhdDEiIH0sCit7IDIwMywJIkV1bWwiLAkibGF0aW4gY2FwaXRhbCBsZXR0ZXIgRSB3aXRoIGRpYWVyZXNpcywgVSswMENCIElTT2xhdDEiIH0sCit7IDIwNCwJIklncmF2ZSIsImxhdGluIGNhcGl0YWwgbGV0dGVyIEkgd2l0aCBncmF2ZSwgVSswMENDIElTT2xhdDEiIH0sCit7IDIwNSwJIklhY3V0ZSIsImxhdGluIGNhcGl0YWwgbGV0dGVyIEkgd2l0aCBhY3V0ZSwgVSswMENEIElTT2xhdDEiIH0sCit7IDIwNiwJIkljaXJjIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgSSB3aXRoIGNpcmN1bWZsZXgsIFUrMDBDRSBJU09sYXQxIiB9LAoreyAyMDcsCSJJdW1sIiwJImxhdGluIGNhcGl0YWwgbGV0dGVyIEkgd2l0aCBkaWFlcmVzaXMsIFUrMDBDRiBJU09sYXQxIiB9LAoreyAyMDgsCSJFVEgiLAkibGF0aW4gY2FwaXRhbCBsZXR0ZXIgRVRILCBVKzAwRDAgSVNPbGF0MSIgfSwKK3sgMjA5LAkiTnRpbGRlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgTiB3aXRoIHRpbGRlLCBVKzAwRDEgSVNPbGF0MSIgfSwKK3sgMjEwLAkiT2dyYXZlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgTyB3aXRoIGdyYXZlLCBVKzAwRDIgSVNPbGF0MSIgfSwKK3sgMjExLAkiT2FjdXRlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgTyB3aXRoIGFjdXRlLCBVKzAwRDMgSVNPbGF0MSIgfSwKK3sgMjEyLAkiT2NpcmMiLCJsYXRpbiBjYXBpdGFsIGxldHRlciBPIHdpdGggY2lyY3VtZmxleCwgVSswMEQ0IElTT2xhdDEiIH0sCit7IDIxMywJIk90aWxkZSIsImxhdGluIGNhcGl0YWwgbGV0dGVyIE8gd2l0aCB0aWxkZSwgVSswMEQ1IElTT2xhdDEiIH0sCit7IDIxNCwJIk91bWwiLAkibGF0aW4gY2FwaXRhbCBsZXR0ZXIgTyB3aXRoIGRpYWVyZXNpcywgVSswMEQ2IElTT2xhdDEiIH0sCit7IDIxNSwJInRpbWVzIiwibXVsdGlwbGljYXRpb24gc2lnbiwgVSswMEQ3IElTT251bSIgfSwKK3sgMjE2LAkiT3NsYXNoIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgTyB3aXRoIHN0cm9rZSBsYXRpbiBjYXBpdGFsIGxldHRlciBPIHNsYXNoLCBVKzAwRDggSVNPbGF0MSIgfSwKK3sgMjE3LAkiVWdyYXZlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgVSB3aXRoIGdyYXZlLCBVKzAwRDkgSVNPbGF0MSIgfSwKK3sgMjE4LAkiVWFjdXRlIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgVSB3aXRoIGFjdXRlLCBVKzAwREEgSVNPbGF0MSIgfSwKK3sgMjE5LAkiVWNpcmMiLCJsYXRpbiBjYXBpdGFsIGxldHRlciBVIHdpdGggY2lyY3VtZmxleCwgVSswMERCIElTT2xhdDEiIH0sCit7IDIyMCwJIlV1bWwiLAkibGF0aW4gY2FwaXRhbCBsZXR0ZXIgVSB3aXRoIGRpYWVyZXNpcywgVSswMERDIElTT2xhdDEiIH0sCit7IDIyMSwJIllhY3V0ZSIsImxhdGluIGNhcGl0YWwgbGV0dGVyIFkgd2l0aCBhY3V0ZSwgVSswMEREIElTT2xhdDEiIH0sCit7IDIyMiwJIlRIT1JOIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgVEhPUk4sIFUrMDBERSBJU09sYXQxIiB9LAoreyAyMjMsCSJzemxpZyIsImxhdGluIHNtYWxsIGxldHRlciBzaGFycCBzID0gZXNzLXplZCwgVSswMERGIElTT2xhdDEiIH0sCit7IDIyNCwJImFncmF2ZSIsImxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggZ3JhdmUgPSBsYXRpbiBzbWFsbCBsZXR0ZXIgYSBncmF2ZSwgVSswMEUwIElTT2xhdDEiIH0sCit7IDIyNSwJImFhY3V0ZSIsImxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggYWN1dGUsIFUrMDBFMSBJU09sYXQxIiB9LAoreyAyMjYsCSJhY2lyYyIsImxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggY2lyY3VtZmxleCwgVSswMEUyIElTT2xhdDEiIH0sCit7IDIyNywJImF0aWxkZSIsImxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggdGlsZGUsIFUrMDBFMyBJU09sYXQxIiB9LAoreyAyMjgsCSJhdW1sIiwJImxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggZGlhZXJlc2lzLCBVKzAwRTQgSVNPbGF0MSIgfSwKK3sgMjI5LAkiYXJpbmciLCJsYXRpbiBzbWFsbCBsZXR0ZXIgYSB3aXRoIHJpbmcgYWJvdmUgPSBsYXRpbiBzbWFsbCBsZXR0ZXIgYSByaW5nLCBVKzAwRTUgSVNPbGF0MSIgfSwKK3sgMjMwLAkiYWVsaWciLCJsYXRpbiBzbWFsbCBsZXR0ZXIgYWUgPSBsYXRpbiBzbWFsbCBsaWdhdHVyZSBhZSwgVSswMEU2IElTT2xhdDEiIH0sCit7IDIzMSwJImNjZWRpbCIsImxhdGluIHNtYWxsIGxldHRlciBjIHdpdGggY2VkaWxsYSwgVSswMEU3IElTT2xhdDEiIH0sCit7IDIzMiwJImVncmF2ZSIsImxhdGluIHNtYWxsIGxldHRlciBlIHdpdGggZ3JhdmUsIFUrMDBFOCBJU09sYXQxIiB9LAoreyAyMzMsCSJlYWN1dGUiLCJsYXRpbiBzbWFsbCBsZXR0ZXIgZSB3aXRoIGFjdXRlLCBVKzAwRTkgSVNPbGF0MSIgfSwKK3sgMjM0LAkiZWNpcmMiLCJsYXRpbiBzbWFsbCBsZXR0ZXIgZSB3aXRoIGNpcmN1bWZsZXgsIFUrMDBFQSBJU09sYXQxIiB9LAoreyAyMzUsCSJldW1sIiwJImxhdGluIHNtYWxsIGxldHRlciBlIHdpdGggZGlhZXJlc2lzLCBVKzAwRUIgSVNPbGF0MSIgfSwKK3sgMjM2LAkiaWdyYXZlIiwibGF0aW4gc21hbGwgbGV0dGVyIGkgd2l0aCBncmF2ZSwgVSswMEVDIElTT2xhdDEiIH0sCit7IDIzNywJImlhY3V0ZSIsImxhdGluIHNtYWxsIGxldHRlciBpIHdpdGggYWN1dGUsIFUrMDBFRCBJU09sYXQxIiB9LAoreyAyMzgsCSJpY2lyYyIsImxhdGluIHNtYWxsIGxldHRlciBpIHdpdGggY2lyY3VtZmxleCwgVSswMEVFIElTT2xhdDEiIH0sCit7IDIzOSwJIml1bWwiLAkibGF0aW4gc21hbGwgbGV0dGVyIGkgd2l0aCBkaWFlcmVzaXMsIFUrMDBFRiBJU09sYXQxIiB9LAoreyAyNDAsCSJldGgiLAkibGF0aW4gc21hbGwgbGV0dGVyIGV0aCwgVSswMEYwIElTT2xhdDEiIH0sCit7IDI0MSwJIm50aWxkZSIsImxhdGluIHNtYWxsIGxldHRlciBuIHdpdGggdGlsZGUsIFUrMDBGMSBJU09sYXQxIiB9LAoreyAyNDIsCSJvZ3JhdmUiLCJsYXRpbiBzbWFsbCBsZXR0ZXIgbyB3aXRoIGdyYXZlLCBVKzAwRjIgSVNPbGF0MSIgfSwKK3sgMjQzLAkib2FjdXRlIiwibGF0aW4gc21hbGwgbGV0dGVyIG8gd2l0aCBhY3V0ZSwgVSswMEYzIElTT2xhdDEiIH0sCit7IDI0NCwJIm9jaXJjIiwibGF0aW4gc21hbGwgbGV0dGVyIG8gd2l0aCBjaXJjdW1mbGV4LCBVKzAwRjQgSVNPbGF0MSIgfSwKK3sgMjQ1LAkib3RpbGRlIiwibGF0aW4gc21hbGwgbGV0dGVyIG8gd2l0aCB0aWxkZSwgVSswMEY1IElTT2xhdDEiIH0sCit7IDI0NiwJIm91bWwiLAkibGF0aW4gc21hbGwgbGV0dGVyIG8gd2l0aCBkaWFlcmVzaXMsIFUrMDBGNiBJU09sYXQxIiB9LAoreyAyNDcsCSJkaXZpZGUiLCJkaXZpc2lvbiBzaWduLCBVKzAwRjcgSVNPbnVtIiB9LAoreyAyNDgsCSJvc2xhc2giLCJsYXRpbiBzbWFsbCBsZXR0ZXIgbyB3aXRoIHN0cm9rZSwgPSBsYXRpbiBzbWFsbCBsZXR0ZXIgbyBzbGFzaCwgVSswMEY4IElTT2xhdDEiIH0sCit7IDI0OSwJInVncmF2ZSIsImxhdGluIHNtYWxsIGxldHRlciB1IHdpdGggZ3JhdmUsIFUrMDBGOSBJU09sYXQxIiB9LAoreyAyNTAsCSJ1YWN1dGUiLCJsYXRpbiBzbWFsbCBsZXR0ZXIgdSB3aXRoIGFjdXRlLCBVKzAwRkEgSVNPbGF0MSIgfSwKK3sgMjUxLAkidWNpcmMiLCJsYXRpbiBzbWFsbCBsZXR0ZXIgdSB3aXRoIGNpcmN1bWZsZXgsIFUrMDBGQiBJU09sYXQxIiB9LAoreyAyNTIsCSJ1dW1sIiwJImxhdGluIHNtYWxsIGxldHRlciB1IHdpdGggZGlhZXJlc2lzLCBVKzAwRkMgSVNPbGF0MSIgfSwKK3sgMjUzLAkieWFjdXRlIiwibGF0aW4gc21hbGwgbGV0dGVyIHkgd2l0aCBhY3V0ZSwgVSswMEZEIElTT2xhdDEiIH0sCit7IDI1NCwJInRob3JuIiwibGF0aW4gc21hbGwgbGV0dGVyIHRob3JuIHdpdGgsIFUrMDBGRSBJU09sYXQxIiB9LAoreyAyNTUsCSJ5dW1sIiwJImxhdGluIHNtYWxsIGxldHRlciB5IHdpdGggZGlhZXJlc2lzLCBVKzAwRkYgSVNPbGF0MSIgfSwKKworeyAzMzgsCSJPRWxpZyIsImxhdGluIGNhcGl0YWwgbGlnYXR1cmUgT0UsIFUrMDE1MiBJU09sYXQyIiB9LAoreyAzMzksCSJvZWxpZyIsImxhdGluIHNtYWxsIGxpZ2F0dXJlIG9lLCBVKzAxNTMgSVNPbGF0MiIgfSwKK3sgMzUyLAkiU2Nhcm9uIiwibGF0aW4gY2FwaXRhbCBsZXR0ZXIgUyB3aXRoIGNhcm9uLCBVKzAxNjAgSVNPbGF0MiIgfSwKK3sgMzUzLAkic2Nhcm9uIiwibGF0aW4gc21hbGwgbGV0dGVyIHMgd2l0aCBjYXJvbiwgVSswMTYxIElTT2xhdDIiIH0sCit7IDM3NiwJIll1bWwiLAkibGF0aW4gY2FwaXRhbCBsZXR0ZXIgWSB3aXRoIGRpYWVyZXNpcywgVSswMTc4IElTT2xhdDIiIH0sCisKKy8qCisgKiBBbnl0aGluZyBiZWxvdyBzaG91bGQgcmVhbGx5IGJlIGtlcHQgYXMgZW50aXRpZXMgcmVmZXJlbmNlcworICovCit7IDQwMiwJImZub2YiLAkibGF0aW4gc21hbGwgZiB3aXRoIGhvb2sgPSBmdW5jdGlvbiA9IGZsb3JpbiwgVSswMTkyIElTT3RlY2giIH0sCisKK3sgNzEwLAkiY2lyYyIsCSJtb2RpZmllciBsZXR0ZXIgY2lyY3VtZmxleCBhY2NlbnQsIFUrMDJDNiBJU09wdWIiIH0sCit7IDczMiwJInRpbGRlIiwic21hbGwgdGlsZGUsIFUrMDJEQyBJU09kaWEiIH0sCisKK3sgOTEzLAkiQWxwaGEiLCJncmVlayBjYXBpdGFsIGxldHRlciBhbHBoYSwgVSswMzkxIiB9LAoreyA5MTQsCSJCZXRhIiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIGJldGEsIFUrMDM5MiIgfSwKK3sgOTE1LAkiR2FtbWEiLCJncmVlayBjYXBpdGFsIGxldHRlciBnYW1tYSwgVSswMzkzIElTT2dyazMiIH0sCit7IDkxNiwJIkRlbHRhIiwiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgZGVsdGEsIFUrMDM5NCBJU09ncmszIiB9LAoreyA5MTcsCSJFcHNpbG9uIiwiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgZXBzaWxvbiwgVSswMzk1IiB9LAoreyA5MTgsCSJaZXRhIiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIHpldGEsIFUrMDM5NiIgfSwKK3sgOTE5LAkiRXRhIiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIGV0YSwgVSswMzk3IiB9LAoreyA5MjAsCSJUaGV0YSIsImdyZWVrIGNhcGl0YWwgbGV0dGVyIHRoZXRhLCBVKzAzOTggSVNPZ3JrMyIgfSwKK3sgOTIxLAkiSW90YSIsCSJncmVlayBjYXBpdGFsIGxldHRlciBpb3RhLCBVKzAzOTkiIH0sCit7IDkyMiwJIkthcHBhIiwiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIga2FwcGEsIFUrMDM5QSIgfSwKK3sgOTIzLAkiTGFtYmRhIiwgImdyZWVrIGNhcGl0YWwgbGV0dGVyIGxhbWJkYSwgVSswMzlCIElTT2dyazMiIH0sCit7IDkyNCwJIk11IiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIG11LCBVKzAzOUMiIH0sCit7IDkyNSwJIk51IiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIG51LCBVKzAzOUQiIH0sCit7IDkyNiwJIlhpIiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIHhpLCBVKzAzOUUgSVNPZ3JrMyIgfSwKK3sgOTI3LAkiT21pY3JvbiIsImdyZWVrIGNhcGl0YWwgbGV0dGVyIG9taWNyb24sIFUrMDM5RiIgfSwKK3sgOTI4LAkiUGkiLAkiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgcGksIFUrMDNBMCBJU09ncmszIiB9LAoreyA5MjksCSJSaG8iLAkiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgcmhvLCBVKzAzQTEiIH0sCit7IDkzMSwJIlNpZ21hIiwiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgc2lnbWEsIFUrMDNBMyBJU09ncmszIiB9LAoreyA5MzIsCSJUYXUiLAkiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgdGF1LCBVKzAzQTQiIH0sCit7IDkzMywJIlVwc2lsb24iLCJncmVlayBjYXBpdGFsIGxldHRlciB1cHNpbG9uLCBVKzAzQTUgSVNPZ3JrMyIgfSwKK3sgOTM0LAkiUGhpIiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIHBoaSwgVSswM0E2IElTT2dyazMiIH0sCit7IDkzNSwJIkNoaSIsCSJncmVlayBjYXBpdGFsIGxldHRlciBjaGksIFUrMDNBNyIgfSwKK3sgOTM2LAkiUHNpIiwJImdyZWVrIGNhcGl0YWwgbGV0dGVyIHBzaSwgVSswM0E4IElTT2dyazMiIH0sCit7IDkzNywJIk9tZWdhIiwiZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgb21lZ2EsIFUrMDNBOSBJU09ncmszIiB9LAorCit7IDk0NSwJImFscGhhIiwiZ3JlZWsgc21hbGwgbGV0dGVyIGFscGhhLCBVKzAzQjEgSVNPZ3JrMyIgfSwKK3sgOTQ2LAkiYmV0YSIsCSJncmVlayBzbWFsbCBsZXR0ZXIgYmV0YSwgVSswM0IyIElTT2dyazMiIH0sCit7IDk0NywJImdhbW1hIiwiZ3JlZWsgc21hbGwgbGV0dGVyIGdhbW1hLCBVKzAzQjMgSVNPZ3JrMyIgfSwKK3sgOTQ4LAkiZGVsdGEiLCJncmVlayBzbWFsbCBsZXR0ZXIgZGVsdGEsIFUrMDNCNCBJU09ncmszIiB9LAoreyA5NDksCSJlcHNpbG9uIiwiZ3JlZWsgc21hbGwgbGV0dGVyIGVwc2lsb24sIFUrMDNCNSBJU09ncmszIiB9LAoreyA5NTAsCSJ6ZXRhIiwJImdyZWVrIHNtYWxsIGxldHRlciB6ZXRhLCBVKzAzQjYgSVNPZ3JrMyIgfSwKK3sgOTUxLAkiZXRhIiwJImdyZWVrIHNtYWxsIGxldHRlciBldGEsIFUrMDNCNyBJU09ncmszIiB9LAoreyA5NTIsCSJ0aGV0YSIsImdyZWVrIHNtYWxsIGxldHRlciB0aGV0YSwgVSswM0I4IElTT2dyazMiIH0sCit7IDk1MywJImlvdGEiLAkiZ3JlZWsgc21hbGwgbGV0dGVyIGlvdGEsIFUrMDNCOSBJU09ncmszIiB9LAoreyA5NTQsCSJrYXBwYSIsImdyZWVrIHNtYWxsIGxldHRlciBrYXBwYSwgVSswM0JBIElTT2dyazMiIH0sCit7IDk1NSwJImxhbWJkYSIsImdyZWVrIHNtYWxsIGxldHRlciBsYW1iZGEsIFUrMDNCQiBJU09ncmszIiB9LAoreyA5NTYsCSJtdSIsCSJncmVlayBzbWFsbCBsZXR0ZXIgbXUsIFUrMDNCQyBJU09ncmszIiB9LAoreyA5NTcsCSJudSIsCSJncmVlayBzbWFsbCBsZXR0ZXIgbnUsIFUrMDNCRCBJU09ncmszIiB9LAoreyA5NTgsCSJ4aSIsCSJncmVlayBzbWFsbCBsZXR0ZXIgeGksIFUrMDNCRSBJU09ncmszIiB9LAoreyA5NTksCSJvbWljcm9uIiwiZ3JlZWsgc21hbGwgbGV0dGVyIG9taWNyb24sIFUrMDNCRiBORVciIH0sCit7IDk2MCwJInBpIiwJImdyZWVrIHNtYWxsIGxldHRlciBwaSwgVSswM0MwIElTT2dyazMiIH0sCit7IDk2MSwJInJobyIsCSJncmVlayBzbWFsbCBsZXR0ZXIgcmhvLCBVKzAzQzEgSVNPZ3JrMyIgfSwKK3sgOTYyLAkic2lnbWFmIiwiZ3JlZWsgc21hbGwgbGV0dGVyIGZpbmFsIHNpZ21hLCBVKzAzQzIgSVNPZ3JrMyIgfSwKK3sgOTYzLAkic2lnbWEiLCJncmVlayBzbWFsbCBsZXR0ZXIgc2lnbWEsIFUrMDNDMyBJU09ncmszIiB9LAoreyA5NjQsCSJ0YXUiLAkiZ3JlZWsgc21hbGwgbGV0dGVyIHRhdSwgVSswM0M0IElTT2dyazMiIH0sCit7IDk2NSwJInVwc2lsb24iLCJncmVlayBzbWFsbCBsZXR0ZXIgdXBzaWxvbiwgVSswM0M1IElTT2dyazMiIH0sCit7IDk2NiwJInBoaSIsCSJncmVlayBzbWFsbCBsZXR0ZXIgcGhpLCBVKzAzQzYgSVNPZ3JrMyIgfSwKK3sgOTY3LAkiY2hpIiwJImdyZWVrIHNtYWxsIGxldHRlciBjaGksIFUrMDNDNyBJU09ncmszIiB9LAoreyA5NjgsCSJwc2kiLAkiZ3JlZWsgc21hbGwgbGV0dGVyIHBzaSwgVSswM0M4IElTT2dyazMiIH0sCit7IDk2OSwJIm9tZWdhIiwiZ3JlZWsgc21hbGwgbGV0dGVyIG9tZWdhLCBVKzAzQzkgSVNPZ3JrMyIgfSwKK3sgOTc3LAkidGhldGFzeW0iLCJncmVlayBzbWFsbCBsZXR0ZXIgdGhldGEgc3ltYm9sLCBVKzAzRDEgTkVXIiB9LAoreyA5NzgsCSJ1cHNpaCIsImdyZWVrIHVwc2lsb24gd2l0aCBob29rIHN5bWJvbCwgVSswM0QyIE5FVyIgfSwKK3sgOTgyLAkicGl2IiwJImdyZWVrIHBpIHN5bWJvbCwgVSswM0Q2IElTT2dyazMiIH0sCisKK3sgODE5NCwJImVuc3AiLAkiZW4gc3BhY2UsIFUrMjAwMiBJU09wdWIiIH0sCit7IDgxOTUsCSJlbXNwIiwJImVtIHNwYWNlLCBVKzIwMDMgSVNPcHViIiB9LAoreyA4MjAxLAkidGhpbnNwIiwidGhpbiBzcGFjZSwgVSsyMDA5IElTT3B1YiIgfSwKK3sgODIwNCwJInp3bmoiLAkiemVybyB3aWR0aCBub24tam9pbmVyLCBVKzIwMEMgTkVXIFJGQyAyMDcwIiB9LAoreyA4MjA1LAkiendqIiwJInplcm8gd2lkdGggam9pbmVyLCBVKzIwMEQgTkVXIFJGQyAyMDcwIiB9LAoreyA4MjA2LAkibHJtIiwJImxlZnQtdG8tcmlnaHQgbWFyaywgVSsyMDBFIE5FVyBSRkMgMjA3MCIgfSwKK3sgODIwNywJInJsbSIsCSJyaWdodC10by1sZWZ0IG1hcmssIFUrMjAwRiBORVcgUkZDIDIwNzAiIH0sCit7IDgyMTEsCSJuZGFzaCIsImVuIGRhc2gsIFUrMjAxMyBJU09wdWIiIH0sCit7IDgyMTIsCSJtZGFzaCIsImVtIGRhc2gsIFUrMjAxNCBJU09wdWIiIH0sCit7IDgyMTYsCSJsc3F1byIsImxlZnQgc2luZ2xlIHF1b3RhdGlvbiBtYXJrLCBVKzIwMTggSVNPbnVtIiB9LAoreyA4MjE3LAkicnNxdW8iLCJyaWdodCBzaW5nbGUgcXVvdGF0aW9uIG1hcmssIFUrMjAxOSBJU09udW0iIH0sCit7IDgyMTgsCSJzYnF1byIsInNpbmdsZSBsb3ctOSBxdW90YXRpb24gbWFyaywgVSsyMDFBIE5FVyIgfSwKK3sgODIyMCwJImxkcXVvIiwibGVmdCBkb3VibGUgcXVvdGF0aW9uIG1hcmssIFUrMjAxQyBJU09udW0iIH0sCit7IDgyMjEsCSJyZHF1byIsInJpZ2h0IGRvdWJsZSBxdW90YXRpb24gbWFyaywgVSsyMDFEIElTT251bSIgfSwKK3sgODIyMiwJImJkcXVvIiwiZG91YmxlIGxvdy05IHF1b3RhdGlvbiBtYXJrLCBVKzIwMUUgTkVXIiB9LAoreyA4MjI0LAkiZGFnZ2VyIiwiZGFnZ2VyLCBVKzIwMjAgSVNPcHViIiB9LAoreyA4MjI1LAkiRGFnZ2VyIiwiZG91YmxlIGRhZ2dlciwgVSsyMDIxIElTT3B1YiIgfSwKKworeyA4MjI2LAkiYnVsbCIsCSJidWxsZXQgPSBibGFjayBzbWFsbCBjaXJjbGUsIFUrMjAyMiBJU09wdWIiIH0sCit7IDgyMzAsCSJoZWxsaXAiLCJob3Jpem9udGFsIGVsbGlwc2lzID0gdGhyZWUgZG90IGxlYWRlciwgVSsyMDI2IElTT3B1YiIgfSwKKworeyA4MjQwLAkicGVybWlsIiwicGVyIG1pbGxlIHNpZ24sIFUrMjAzMCBJU090ZWNoIiB9LAorCit7IDgyNDIsCSJwcmltZSIsInByaW1lID0gbWludXRlcyA9IGZlZXQsIFUrMjAzMiBJU090ZWNoIiB9LAoreyA4MjQzLAkiUHJpbWUiLCJkb3VibGUgcHJpbWUgPSBzZWNvbmRzID0gaW5jaGVzLCBVKzIwMzMgSVNPdGVjaCIgfSwKKworeyA4MjQ5LAkibHNhcXVvIiwic2luZ2xlIGxlZnQtcG9pbnRpbmcgYW5nbGUgcXVvdGF0aW9uIG1hcmssIFUrMjAzOSBJU08gcHJvcG9zZWQiIH0sCit7IDgyNTAsCSJyc2FxdW8iLCJzaW5nbGUgcmlnaHQtcG9pbnRpbmcgYW5nbGUgcXVvdGF0aW9uIG1hcmssIFUrMjAzQSBJU08gcHJvcG9zZWQiIH0sCisKK3sgODI1NCwJIm9saW5lIiwib3ZlcmxpbmUgPSBzcGFjaW5nIG92ZXJzY29yZSwgVSsyMDNFIE5FVyIgfSwKK3sgODI2MCwJImZyYXNsIiwiZnJhY3Rpb24gc2xhc2gsIFUrMjA0NCBORVciIH0sCisKK3sgODM2NCwJImV1cm8iLAkiZXVybyBzaWduLCBVKzIwQUMgTkVXIiB9LAorCit7IDg0NjUsCSJpbWFnZSIsImJsYWNrbGV0dGVyIGNhcGl0YWwgSSA9IGltYWdpbmFyeSBwYXJ0LCBVKzIxMTEgSVNPYW1zbyIgfSwKK3sgODQ3MiwJIndlaWVycCIsInNjcmlwdCBjYXBpdGFsIFAgPSBwb3dlciBzZXQgPSBXZWllcnN0cmFzcyBwLCBVKzIxMTggSVNPYW1zbyIgfSwKK3sgODQ3NiwJInJlYWwiLAkiYmxhY2tsZXR0ZXIgY2FwaXRhbCBSID0gcmVhbCBwYXJ0IHN5bWJvbCwgVSsyMTFDIElTT2Ftc28iIH0sCit7IDg0ODIsCSJ0cmFkZSIsInRyYWRlIG1hcmsgc2lnbiwgVSsyMTIyIElTT251bSIgfSwKK3sgODUwMSwJImFsZWZzeW0iLCJhbGVmIHN5bWJvbCA9IGZpcnN0IHRyYW5zZmluaXRlIGNhcmRpbmFsLCBVKzIxMzUgTkVXIiB9LAoreyA4NTkyLAkibGFyciIsCSJsZWZ0d2FyZHMgYXJyb3csIFUrMjE5MCBJU09udW0iIH0sCit7IDg1OTMsCSJ1YXJyIiwJInVwd2FyZHMgYXJyb3csIFUrMjE5MSBJU09udW0iIH0sCit7IDg1OTQsCSJyYXJyIiwJInJpZ2h0d2FyZHMgYXJyb3csIFUrMjE5MiBJU09udW0iIH0sCit7IDg1OTUsCSJkYXJyIiwJImRvd253YXJkcyBhcnJvdywgVSsyMTkzIElTT251bSIgfSwKK3sgODU5NiwJImhhcnIiLAkibGVmdCByaWdodCBhcnJvdywgVSsyMTk0IElTT2Ftc2EiIH0sCit7IDg2MjksCSJjcmFyciIsImRvd253YXJkcyBhcnJvdyB3aXRoIGNvcm5lciBsZWZ0d2FyZHMgPSBjYXJyaWFnZSByZXR1cm4sIFUrMjFCNSBORVciIH0sCit7IDg2NTYsCSJsQXJyIiwJImxlZnR3YXJkcyBkb3VibGUgYXJyb3csIFUrMjFEMCBJU090ZWNoIiB9LAoreyA4NjU3LAkidUFyciIsCSJ1cHdhcmRzIGRvdWJsZSBhcnJvdywgVSsyMUQxIElTT2Ftc2EiIH0sCit7IDg2NTgsCSJyQXJyIiwJInJpZ2h0d2FyZHMgZG91YmxlIGFycm93LCBVKzIxRDIgSVNPdGVjaCIgfSwKK3sgODY1OSwJImRBcnIiLAkiZG93bndhcmRzIGRvdWJsZSBhcnJvdywgVSsyMUQzIElTT2Ftc2EiIH0sCit7IDg2NjAsCSJoQXJyIiwJImxlZnQgcmlnaHQgZG91YmxlIGFycm93LCBVKzIxRDQgSVNPYW1zYSIgfSwKKworeyA4NzA0LAkiZm9yYWxsIiwiZm9yIGFsbCwgVSsyMjAwIElTT3RlY2giIH0sCit7IDg3MDYsCSJwYXJ0IiwJInBhcnRpYWwgZGlmZmVyZW50aWFsLCBVKzIyMDIgSVNPdGVjaCIgfSwKK3sgODcwNywJImV4aXN0IiwidGhlcmUgZXhpc3RzLCBVKzIyMDMgSVNPdGVjaCIgfSwKK3sgODcwOSwJImVtcHR5IiwiZW1wdHkgc2V0ID0gbnVsbCBzZXQgPSBkaWFtZXRlciwgVSsyMjA1IElTT2Ftc28iIH0sCit7IDg3MTEsCSJuYWJsYSIsIm5hYmxhID0gYmFja3dhcmQgZGlmZmVyZW5jZSwgVSsyMjA3IElTT3RlY2giIH0sCit7IDg3MTIsCSJpc2luIiwJImVsZW1lbnQgb2YsIFUrMjIwOCBJU090ZWNoIiB9LAoreyA4NzEzLAkibm90aW4iLCJub3QgYW4gZWxlbWVudCBvZiwgVSsyMjA5IElTT3RlY2giIH0sCit7IDg3MTUsCSJuaSIsCSJjb250YWlucyBhcyBtZW1iZXIsIFUrMjIwQiBJU090ZWNoIiB9LAoreyA4NzE5LAkicHJvZCIsCSJuLWFyeSBwcm9kdWN0ID0gcHJvZHVjdCBzaWduLCBVKzIyMEYgSVNPYW1zYiIgfSwKK3sgODcyMSwJInN1bSIsCSJuLWFyeSBzdW1tYXRpb24sIFUrMjIxMSBJU09hbXNiIiB9LAoreyA4NzIyLAkibWludXMiLCJtaW51cyBzaWduLCBVKzIyMTIgSVNPdGVjaCIgfSwKK3sgODcyNywJImxvd2FzdCIsImFzdGVyaXNrIG9wZXJhdG9yLCBVKzIyMTcgSVNPdGVjaCIgfSwKK3sgODczMCwJInJhZGljIiwic3F1YXJlIHJvb3QgPSByYWRpY2FsIHNpZ24sIFUrMjIxQSBJU090ZWNoIiB9LAoreyA4NzMzLAkicHJvcCIsCSJwcm9wb3J0aW9uYWwgdG8sIFUrMjIxRCBJU090ZWNoIiB9LAoreyA4NzM0LAkiaW5maW4iLCJpbmZpbml0eSwgVSsyMjFFIElTT3RlY2giIH0sCit7IDg3MzYsCSJhbmciLAkiYW5nbGUsIFUrMjIyMCBJU09hbXNvIiB9LAoreyA4NzQzLAkiYW5kIiwJImxvZ2ljYWwgYW5kID0gd2VkZ2UsIFUrMjIyNyBJU090ZWNoIiB9LAoreyA4NzQ0LAkib3IiLAkibG9naWNhbCBvciA9IHZlZSwgVSsyMjI4IElTT3RlY2giIH0sCit7IDg3NDUsCSJjYXAiLAkiaW50ZXJzZWN0aW9uID0gY2FwLCBVKzIyMjkgSVNPdGVjaCIgfSwKK3sgODc0NiwJImN1cCIsCSJ1bmlvbiA9IGN1cCwgVSsyMjJBIElTT3RlY2giIH0sCit7IDg3NDcsCSJpbnQiLAkiaW50ZWdyYWwsIFUrMjIyQiBJU090ZWNoIiB9LAoreyA4NzU2LAkidGhlcmU0IiwidGhlcmVmb3JlLCBVKzIyMzQgSVNPdGVjaCIgfSwKK3sgODc2NCwJInNpbSIsCSJ0aWxkZSBvcGVyYXRvciA9IHZhcmllcyB3aXRoID0gc2ltaWxhciB0bywgVSsyMjNDIElTT3RlY2giIH0sCit7IDg3NzMsCSJjb25nIiwJImFwcHJveGltYXRlbHkgZXF1YWwgdG8sIFUrMjI0NSBJU090ZWNoIiB9LAoreyA4Nzc2LAkiYXN5bXAiLCJhbG1vc3QgZXF1YWwgdG8gPSBhc3ltcHRvdGljIHRvLCBVKzIyNDggSVNPYW1zciIgfSwKK3sgODgwMCwJIm5lIiwJIm5vdCBlcXVhbCB0bywgVSsyMjYwIElTT3RlY2giIH0sCit7IDg4MDEsCSJlcXVpdiIsImlkZW50aWNhbCB0bywgVSsyMjYxIElTT3RlY2giIH0sCit7IDg4MDQsCSJsZSIsCSJsZXNzLXRoYW4gb3IgZXF1YWwgdG8sIFUrMjI2NCBJU090ZWNoIiB9LAoreyA4ODA1LAkiZ2UiLAkiZ3JlYXRlci10aGFuIG9yIGVxdWFsIHRvLCBVKzIyNjUgSVNPdGVjaCIgfSwKK3sgODgzNCwJInN1YiIsCSJzdWJzZXQgb2YsIFUrMjI4MiBJU090ZWNoIiB9LAoreyA4ODM1LAkic3VwIiwJInN1cGVyc2V0IG9mLCBVKzIyODMgSVNPdGVjaCIgfSwKK3sgODgzNiwJIm5zdWIiLAkibm90IGEgc3Vic2V0IG9mLCBVKzIyODQgSVNPYW1zbiIgfSwKK3sgODgzOCwJInN1YmUiLAkic3Vic2V0IG9mIG9yIGVxdWFsIHRvLCBVKzIyODYgSVNPdGVjaCIgfSwKK3sgODgzOSwJInN1cGUiLAkic3VwZXJzZXQgb2Ygb3IgZXF1YWwgdG8sIFUrMjI4NyBJU090ZWNoIiB9LAoreyA4ODUzLAkib3BsdXMiLCJjaXJjbGVkIHBsdXMgPSBkaXJlY3Qgc3VtLCBVKzIyOTUgSVNPYW1zYiIgfSwKK3sgODg1NSwJIm90aW1lcyIsImNpcmNsZWQgdGltZXMgPSB2ZWN0b3IgcHJvZHVjdCwgVSsyMjk3IElTT2Ftc2IiIH0sCit7IDg4NjksCSJwZXJwIiwJInVwIHRhY2sgPSBvcnRob2dvbmFsIHRvID0gcGVycGVuZGljdWxhciwgVSsyMkE1IElTT3RlY2giIH0sCit7IDg5MDEsCSJzZG90IiwJImRvdCBvcGVyYXRvciwgVSsyMkM1IElTT2Ftc2IiIH0sCit7IDg5NjgsCSJsY2VpbCIsImxlZnQgY2VpbGluZyA9IGFwbCB1cHN0aWxlLCBVKzIzMDggSVNPYW1zYyIgfSwKK3sgODk2OSwJInJjZWlsIiwicmlnaHQgY2VpbGluZywgVSsyMzA5IElTT2Ftc2MiIH0sCit7IDg5NzAsCSJsZmxvb3IiLCJsZWZ0IGZsb29yID0gYXBsIGRvd25zdGlsZSwgVSsyMzBBIElTT2Ftc2MiIH0sCit7IDg5NzEsCSJyZmxvb3IiLCJyaWdodCBmbG9vciwgVSsyMzBCIElTT2Ftc2MiIH0sCit7IDkwMDEsCSJsYW5nIiwJImxlZnQtcG9pbnRpbmcgYW5nbGUgYnJhY2tldCA9IGJyYSwgVSsyMzI5IElTT3RlY2giIH0sCit7IDkwMDIsCSJyYW5nIiwJInJpZ2h0LXBvaW50aW5nIGFuZ2xlIGJyYWNrZXQgPSBrZXQsIFUrMjMyQSBJU090ZWNoIiB9LAoreyA5Njc0LAkibG96IiwJImxvemVuZ2UsIFUrMjVDQSBJU09wdWIiIH0sCisKK3sgOTgyNCwJInNwYWRlcyIsImJsYWNrIHNwYWRlIHN1aXQsIFUrMjY2MCBJU09wdWIiIH0sCit7IDk4MjcsCSJjbHVicyIsImJsYWNrIGNsdWIgc3VpdCA9IHNoYW1yb2NrLCBVKzI2NjMgSVNPcHViIiB9LAoreyA5ODI5LAkiaGVhcnRzIiwiYmxhY2sgaGVhcnQgc3VpdCA9IHZhbGVudGluZSwgVSsyNjY1IElTT3B1YiIgfSwKK3sgOTgzMCwJImRpYW1zIiwiYmxhY2sgZGlhbW9uZCBzdWl0LCBVKzI2NjYgSVNPcHViIiB9LAorCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlDb21tb2RpdHkgZnVuY3Rpb25zIHRvIGhhbmRsZSBlbnRpdGllcwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIE1hY3JvIHVzZWQgdG8gZ3JvdyB0aGUgY3VycmVudCBidWZmZXIuCisgKi8KKyNkZWZpbmUgZ3Jvd0J1ZmZlcihidWZmZXIpIHsJCQkJCQlcCisgICAgeG1sQ2hhciAqdG1wOwkJCQkJCQlcCisgICAgYnVmZmVyIyNfc2l6ZSAqPSAyOwkJCQkJCQlcCisgICAgdG1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhidWZmZXIsIGJ1ZmZlciMjX3NpemUgKiBzaXplb2YoeG1sQ2hhcikpOyBcCisgICAgaWYgKHRtcCA9PSBOVUxMKSB7CQkJCQkJXAorCWh0bWxFcnJNZW1vcnkoY3R4dCwgImdyb3dpbmcgYnVmZmVyXG4iKTsJCQlcCisJeG1sRnJlZShidWZmZXIpOwkJCQkJCVwKKwlyZXR1cm4oTlVMTCk7CQkJCQkJCVwKKyAgICB9CQkJCQkJCQkJXAorICAgIGJ1ZmZlciA9IHRtcDsJCQkJCQkJXAorfQorCisvKioKKyAqIGh0bWxFbnRpdHlMb29rdXA6CisgKiBAbmFtZTogdGhlIGVudGl0eSBuYW1lCisgKgorICogTG9va3VwIHRoZSBnaXZlbiBlbnRpdHkgaW4gRW50aXRpZXNUYWJsZQorICoKKyAqIFRPRE86IHRoZSBsaW5lYXIgc2NhbiBpcyByZWFsbHkgdWdseSwgYW4gaGFzaCB0YWJsZSBpcyByZWFsbHkgbmVlZGVkLgorICoKKyAqIFJldHVybnMgdGhlIGFzc29jaWF0ZWQgaHRtbEVudGl0eURlc2NQdHIgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlLgorICovCitjb25zdCBodG1sRW50aXR5RGVzYyAqCitodG1sRW50aXR5TG9va3VwKGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7aSA8IChzaXplb2YoaHRtbDQwRW50aXRpZXNUYWJsZSkvCisgICAgICAgICAgICAgICAgICAgIHNpemVvZihodG1sNDBFbnRpdGllc1RhYmxlWzBdKSk7aSsrKSB7CisgICAgICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCBodG1sNDBFbnRpdGllc1RhYmxlW2ldLm5hbWUpKSB7CisgICAgICAgICAgICByZXR1cm4oKGh0bWxFbnRpdHlEZXNjUHRyKSAmaHRtbDQwRW50aXRpZXNUYWJsZVtpXSk7CisJfQorICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogaHRtbEVudGl0eVZhbHVlTG9va3VwOgorICogQHZhbHVlOiB0aGUgZW50aXR5J3MgdW5pY29kZSB2YWx1ZQorICoKKyAqIExvb2t1cCB0aGUgZ2l2ZW4gZW50aXR5IGluIEVudGl0aWVzVGFibGUKKyAqCisgKiBUT0RPOiB0aGUgbGluZWFyIHNjYW4gaXMgcmVhbGx5IHVnbHksIGFuIGhhc2ggdGFibGUgaXMgcmVhbGx5IG5lZWRlZC4KKyAqCisgKiBSZXR1cm5zIHRoZSBhc3NvY2lhdGVkIGh0bWxFbnRpdHlEZXNjUHRyIGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZS4KKyAqLworY29uc3QgaHRtbEVudGl0eURlc2MgKgoraHRtbEVudGl0eVZhbHVlTG9va3VwKHVuc2lnbmVkIGludCB2YWx1ZSkgeworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yIChpID0gMDtpIDwgKHNpemVvZihodG1sNDBFbnRpdGllc1RhYmxlKS8KKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGh0bWw0MEVudGl0aWVzVGFibGVbMF0pKTtpKyspIHsKKyAgICAgICAgaWYgKGh0bWw0MEVudGl0aWVzVGFibGVbaV0udmFsdWUgPj0gdmFsdWUpIHsKKwkgICAgaWYgKGh0bWw0MEVudGl0aWVzVGFibGVbaV0udmFsdWUgPiB2YWx1ZSkKKwkJYnJlYWs7CisgICAgICAgICAgICByZXR1cm4oKGh0bWxFbnRpdHlEZXNjUHRyKSAmaHRtbDQwRW50aXRpZXNUYWJsZVtpXSk7CisJfQorICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogVVRGOFRvSHRtbDoKKyAqIEBvdXQ6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAorICogQG91dGxlbjogIHRoZSBsZW5ndGggb2YgQG91dAorICogQGluOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzCisgKiBAaW5sZW46ICB0aGUgbGVuZ3RoIG9mIEBpbgorICoKKyAqIFRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gQVNDSUkKKyAqIHBsdXMgSFRNTCBlbnRpdGllcyBibG9jayBvZiBjaGFycyBvdXQuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywgb3IgLTEgb3RoZXJ3aXNlCisgKiBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZAorICogICAgIGFzIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4KKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4KKyAqLworaW50CitVVEY4VG9IdG1sKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogcHJvY2Vzc2VkID0gaW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogb3V0ZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG91dHN0YXJ0ID0gb3V0OworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluc3RhcnQgPSBpbjsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbmVuZDsKKyAgICB1bnNpZ25lZCBpbnQgYywgZDsKKyAgICBpbnQgdHJhaWxpbmc7CisKKyAgICBpZiAoKG91dCA9PSBOVUxMKSB8fCAob3V0bGVuID09IE5VTEwpIHx8IChpbmxlbiA9PSBOVUxMKSkgcmV0dXJuKC0xKTsKKyAgICBpZiAoaW4gPT0gTlVMTCkgeworICAgICAgICAvKgorCSAqIGluaXRpYWxpemF0aW9uIG5vdGhpbmcgdG8gZG8KKwkgKi8KKwkqb3V0bGVuID0gMDsKKwkqaW5sZW4gPSAwOworCXJldHVybigwKTsKKyAgICB9CisgICAgaW5lbmQgPSBpbiArICgqaW5sZW4pOworICAgIG91dGVuZCA9IG91dCArICgqb3V0bGVuKTsKKyAgICB3aGlsZSAoaW4gPCBpbmVuZCkgeworCWQgPSAqaW4rKzsKKwlpZiAgICAgIChkIDwgMHg4MCkgIHsgYz0gZDsgdHJhaWxpbmc9IDA7IH0KKwllbHNlIGlmIChkIDwgMHhDMCkgeworCSAgICAvKiB0cmFpbGluZyBieXRlIGluIGxlYWRpbmcgcG9zaXRpb24gKi8KKwkgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCSAgICAqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCSAgICByZXR1cm4oLTIpOworICAgICAgICB9IGVsc2UgaWYgKGQgPCAweEUwKSAgeyBjPSBkICYgMHgxRjsgdHJhaWxpbmc9IDE7IH0KKyAgICAgICAgZWxzZSBpZiAoZCA8IDB4RjApICB7IGM9IGQgJiAweDBGOyB0cmFpbGluZz0gMjsgfQorICAgICAgICBlbHNlIGlmIChkIDwgMHhGOCkgIHsgYz0gZCAmIDB4MDc7IHRyYWlsaW5nPSAzOyB9CisJZWxzZSB7CisJICAgIC8qIG5vIGNoYW5jZSBmb3IgdGhpcyBpbiBBc2NpaSAqLworCSAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisJICAgICppbmxlbiA9IHByb2Nlc3NlZCAtIGluc3RhcnQ7CisJICAgIHJldHVybigtMik7CisJfQorCisJaWYgKGluZW5kIC0gaW4gPCB0cmFpbGluZykgeworCSAgICBicmVhazsKKwl9CisKKwlmb3IgKCA7IHRyYWlsaW5nOyB0cmFpbGluZy0tKSB7CisJICAgIGlmICgoaW4gPj0gaW5lbmQpIHx8ICgoKGQ9ICppbisrKSAmIDB4QzApICE9IDB4ODApKQorCQlicmVhazsKKwkgICAgYyA8PD0gNjsKKwkgICAgYyB8PSBkICYgMHgzRjsKKwl9CisKKwkvKiBhc3NlcnRpb246IGMgaXMgYSBzaW5nbGUgVVRGLTQgdmFsdWUgKi8KKwlpZiAoYyA8IDB4ODApIHsKKwkgICAgaWYgKG91dCArIDEgPj0gb3V0ZW5kKQorCQlicmVhazsKKwkgICAgKm91dCsrID0gYzsKKwl9IGVsc2UgeworCSAgICBpbnQgbGVuOworCSAgICBjb25zdCBodG1sRW50aXR5RGVzYyAqIGVudDsKKwkgICAgY29uc3QgY2hhciAqY3A7CisJICAgIGNoYXIgbmJ1ZlsxNl07CisKKwkgICAgLyoKKwkgICAgICogVHJ5IHRvIGxvb2t1cCBhIHByZWRlZmluZWQgSFRNTCBlbnRpdHkgZm9yIGl0CisJICAgICAqLworCisJICAgIGVudCA9IGh0bWxFbnRpdHlWYWx1ZUxvb2t1cChjKTsKKwkgICAgaWYgKGVudCA9PSBOVUxMKSB7CisJICAgICAgc25wcmludGYobmJ1Ziwgc2l6ZW9mKG5idWYpLCAiIyV1IiwgYyk7CisJICAgICAgY3AgPSBuYnVmOworCSAgICB9CisJICAgIGVsc2UKKwkgICAgICBjcCA9IGVudC0+bmFtZTsKKwkgICAgbGVuID0gc3RybGVuKGNwKTsKKwkgICAgaWYgKG91dCArIDIgKyBsZW4gPj0gb3V0ZW5kKQorCQlicmVhazsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICBtZW1jcHkob3V0LCBjcCwgbGVuKTsKKwkgICAgb3V0ICs9IGxlbjsKKwkgICAgKm91dCsrID0gJzsnOworCX0KKwlwcm9jZXNzZWQgPSBpbjsKKyAgICB9CisgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICppbmxlbiA9IHByb2Nlc3NlZCAtIGluc3RhcnQ7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGh0bWxFbmNvZGVFbnRpdGllczoKKyAqIEBvdXQ6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAorICogQG91dGxlbjogIHRoZSBsZW5ndGggb2YgQG91dAorICogQGluOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzCisgKiBAaW5sZW46ICB0aGUgbGVuZ3RoIG9mIEBpbgorICogQHF1b3RlQ2hhcjogdGhlIHF1b3RlIGNoYXJhY3RlciB0byBlc2NhcGUgKCcgb3IgIikgb3IgemVyby4KKyAqCisgKiBUYWtlIGEgYmxvY2sgb2YgVVRGLTggY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIEFTQ0lJCisgKiBwbHVzIEhUTUwgZW50aXRpZXMgYmxvY2sgb2YgY2hhcnMgb3V0LgorICoKKyAqIFJldHVybnMgMCBpZiBzdWNjZXNzLCAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMsIG9yIC0xIG90aGVyd2lzZQorICogVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQKKyAqICAgICBhcyB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGFibGUuCisgKiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuCisgKi8KK2ludAoraHRtbEVuY29kZUVudGl0aWVzKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisJCSAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuLCBpbnQgcXVvdGVDaGFyKSB7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogcHJvY2Vzc2VkID0gaW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogb3V0ZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG91dHN0YXJ0ID0gb3V0OworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluc3RhcnQgPSBpbjsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbmVuZDsKKyAgICB1bnNpZ25lZCBpbnQgYywgZDsKKyAgICBpbnQgdHJhaWxpbmc7CisKKyAgICBpZiAoKG91dCA9PSBOVUxMKSB8fCAob3V0bGVuID09IE5VTEwpIHx8IChpbmxlbiA9PSBOVUxMKSB8fCAoaW4gPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgb3V0ZW5kID0gb3V0ICsgKCpvdXRsZW4pOworICAgIGluZW5kID0gaW4gKyAoKmlubGVuKTsKKyAgICB3aGlsZSAoaW4gPCBpbmVuZCkgeworCWQgPSAqaW4rKzsKKwlpZiAgICAgIChkIDwgMHg4MCkgIHsgYz0gZDsgdHJhaWxpbmc9IDA7IH0KKwllbHNlIGlmIChkIDwgMHhDMCkgeworCSAgICAvKiB0cmFpbGluZyBieXRlIGluIGxlYWRpbmcgcG9zaXRpb24gKi8KKwkgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCSAgICAqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCSAgICByZXR1cm4oLTIpOworICAgICAgICB9IGVsc2UgaWYgKGQgPCAweEUwKSAgeyBjPSBkICYgMHgxRjsgdHJhaWxpbmc9IDE7IH0KKyAgICAgICAgZWxzZSBpZiAoZCA8IDB4RjApICB7IGM9IGQgJiAweDBGOyB0cmFpbGluZz0gMjsgfQorICAgICAgICBlbHNlIGlmIChkIDwgMHhGOCkgIHsgYz0gZCAmIDB4MDc7IHRyYWlsaW5nPSAzOyB9CisJZWxzZSB7CisJICAgIC8qIG5vIGNoYW5jZSBmb3IgdGhpcyBpbiBBc2NpaSAqLworCSAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisJICAgICppbmxlbiA9IHByb2Nlc3NlZCAtIGluc3RhcnQ7CisJICAgIHJldHVybigtMik7CisJfQorCisJaWYgKGluZW5kIC0gaW4gPCB0cmFpbGluZykKKwkgICAgYnJlYWs7CisKKwl3aGlsZSAodHJhaWxpbmctLSkgeworCSAgICBpZiAoKChkPSAqaW4rKykgJiAweEMwKSAhPSAweDgwKSB7CisJCSpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKwkJKmlubGVuID0gcHJvY2Vzc2VkIC0gaW5zdGFydDsKKwkJcmV0dXJuKC0yKTsKKwkgICAgfQorCSAgICBjIDw8PSA2OworCSAgICBjIHw9IGQgJiAweDNGOworCX0KKworCS8qIGFzc2VydGlvbjogYyBpcyBhIHNpbmdsZSBVVEYtNCB2YWx1ZSAqLworCWlmICgoYyA8IDB4ODApICYmIChjICE9ICh1bnNpZ25lZCBpbnQpIHF1b3RlQ2hhcikgJiYKKwkgICAgKGMgIT0gJyYnKSAmJiAoYyAhPSAnPCcpICYmIChjICE9ICc+JykpIHsKKwkgICAgaWYgKG91dCA+PSBvdXRlbmQpCisJCWJyZWFrOworCSAgICAqb3V0KysgPSBjOworCX0gZWxzZSB7CisJICAgIGNvbnN0IGh0bWxFbnRpdHlEZXNjICogZW50OworCSAgICBjb25zdCBjaGFyICpjcDsKKwkgICAgY2hhciBuYnVmWzE2XTsKKwkgICAgaW50IGxlbjsKKworCSAgICAvKgorCSAgICAgKiBUcnkgdG8gbG9va3VwIGEgcHJlZGVmaW5lZCBIVE1MIGVudGl0eSBmb3IgaXQKKwkgICAgICovCisJICAgIGVudCA9IGh0bWxFbnRpdHlWYWx1ZUxvb2t1cChjKTsKKwkgICAgaWYgKGVudCA9PSBOVUxMKSB7CisJCXNucHJpbnRmKG5idWYsIHNpemVvZihuYnVmKSwgIiMldSIsIGMpOworCQljcCA9IG5idWY7CisJICAgIH0KKwkgICAgZWxzZQorCQljcCA9IGVudC0+bmFtZTsKKwkgICAgbGVuID0gc3RybGVuKGNwKTsKKwkgICAgaWYgKG91dCArIDIgKyBsZW4gPiBvdXRlbmQpCisJCWJyZWFrOworCSAgICAqb3V0KysgPSAnJic7CisJICAgIG1lbWNweShvdXQsIGNwLCBsZW4pOworCSAgICBvdXQgKz0gbGVuOworCSAgICAqb3V0KysgPSAnOyc7CisJfQorCXByb2Nlc3NlZCA9IGluOworICAgIH0KKyAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgKmlubGVuID0gcHJvY2Vzc2VkIC0gaW5zdGFydDsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUNvbW1vZGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHN0cmVhbXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogaHRtbE5ld0lucHV0U3RyZWFtOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogQ3JlYXRlIGEgbmV3IGlucHV0IHN0cmVhbSBzdHJ1Y3R1cmUKKyAqIFJldHVybnMgdGhlIG5ldyBpbnB1dCBzdHJlYW0gb3IgTlVMTAorICovCitzdGF0aWMgaHRtbFBhcnNlcklucHV0UHRyCitodG1sTmV3SW5wdXRTdHJlYW0oaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGh0bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKworICAgIGlucHV0ID0gKHhtbFBhcnNlcklucHV0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKGh0bWxQYXJzZXJJbnB1dCkpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKSB7CisgICAgICAgIGh0bWxFcnJNZW1vcnkoY3R4dCwgImNvdWxkbid0IGFsbG9jYXRlIGEgbmV3IGlucHV0IHN0cmVhbVxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoaW5wdXQsIDAsIHNpemVvZihodG1sUGFyc2VySW5wdXQpKTsKKyAgICBpbnB1dC0+ZmlsZW5hbWUgPSBOVUxMOworICAgIGlucHV0LT5kaXJlY3RvcnkgPSBOVUxMOworICAgIGlucHV0LT5iYXNlID0gTlVMTDsKKyAgICBpbnB1dC0+Y3VyID0gTlVMTDsKKyAgICBpbnB1dC0+YnVmID0gTlVMTDsKKyAgICBpbnB1dC0+bGluZSA9IDE7CisgICAgaW5wdXQtPmNvbCA9IDE7CisgICAgaW5wdXQtPmJ1ZiA9IE5VTEw7CisgICAgaW5wdXQtPmZyZWUgPSBOVUxMOworICAgIGlucHV0LT52ZXJzaW9uID0gTlVMTDsKKyAgICBpbnB1dC0+Y29uc3VtZWQgPSAwOworICAgIGlucHV0LT5sZW5ndGggPSAwOworICAgIHJldHVybihpbnB1dCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJQ29tbW9kaXR5IGZ1bmN0aW9ucywgY2xlYW51cCBuZWVkZWQgPwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiBhbGwgdGFncyBhbGxvd2luZyBwYyBkYXRhIGZyb20gdGhlIGh0bWwgNC4wMSBsb29zZSBkdGQKKyAqIE5PVEU6IGl0IG1pZ2h0IGJlIG1vcmUgYXByb3ByaWF0ZSB0byBpbnRlZ3JhdGUgdGhpcyBpbmZvcm1hdGlvbgorICogaW50byB0aGUgaHRtbDQwRWxlbWVudFRhYmxlIGFycmF5IGJ1dCBJIGRvbid0IHdhbnQgdG8gcmlzayBhbnkKKyAqIGJpbmFyeSBpbmNvbXB0aWJpbGl0eQorICovCitzdGF0aWMgY29uc3QgY2hhciAqYWxsb3dQQ0RhdGFbXSA9IHsKKyAgICAiYSIsICJhYmJyIiwgImFjcm9ueW0iLCAiYWRkcmVzcyIsICJhcHBsZXQiLCAiYiIsICJiZG8iLCAiYmlnIiwKKyAgICAiYmxvY2txdW90ZSIsICJib2R5IiwgImJ1dHRvbiIsICJjYXB0aW9uIiwgImNlbnRlciIsICJjaXRlIiwgImNvZGUiLAorICAgICJkZCIsICJkZWwiLCAiZGZuIiwgImRpdiIsICJkdCIsICJlbSIsICJmb250IiwgImZvcm0iLCAiaDEiLCAiaDIiLAorICAgICJoMyIsICJoNCIsICJoNSIsICJoNiIsICJpIiwgImlmcmFtZSIsICJpbnMiLCAia2JkIiwgImxhYmVsIiwgImxlZ2VuZCIsCisgICAgImxpIiwgIm5vZnJhbWVzIiwgIm5vc2NyaXB0IiwgIm9iamVjdCIsICJwIiwgInByZSIsICJxIiwgInMiLCAic2FtcCIsCisgICAgInNtYWxsIiwgInNwYW4iLCAic3RyaWtlIiwgInN0cm9uZyIsICJ0ZCIsICJ0aCIsICJ0dCIsICJ1IiwgInZhciIKK307CisKKy8qKgorICogYXJlQmxhbmtzOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAc3RyOiAgYSB4bWxDaGFyICoKKyAqIEBsZW46ICB0aGUgc2l6ZSBvZiBAc3RyCisgKgorICogSXMgdGhpcyBhIHNlcXVlbmNlIG9mIGJsYW5rIGNoYXJzIHRoYXQgb25lIGNhbiBpZ25vcmUgPworICoKKyAqIFJldHVybnMgMSBpZiBpZ25vcmFibGUgMCBvdGhlcndpc2UuCisgKi8KKworc3RhdGljIGludCBhcmVCbGFua3MoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqc3RyLCBpbnQgbGVuKSB7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IGo7CisgICAgeG1sTm9kZVB0ciBsYXN0Q2hpbGQ7CisgICAgeG1sRHRkUHRyIGR0ZDsKKworICAgIGZvciAoaiA9IDA7aiA8IGxlbjtqKyspCisgICAgICAgIGlmICghKElTX0JMQU5LX0NIKHN0cltqXSkpKSByZXR1cm4oMCk7CisKKyAgICBpZiAoQ1VSID09IDApIHJldHVybigxKTsKKyAgICBpZiAoQ1VSICE9ICc8JykgcmV0dXJuKDApOworICAgIGlmIChjdHh0LT5uYW1lID09IE5VTEwpCisJcmV0dXJuKDEpOworICAgIGlmICh4bWxTdHJFcXVhbChjdHh0LT5uYW1lLCBCQURfQ0FTVCJodG1sIikpCisJcmV0dXJuKDEpOworICAgIGlmICh4bWxTdHJFcXVhbChjdHh0LT5uYW1lLCBCQURfQ0FTVCJoZWFkIikpCisJcmV0dXJuKDEpOworCisgICAgLyogT25seSBzdHJpcCBDREFUQSBjaGlsZHJlbiBvZiB0aGUgYm9keSB0YWcgZm9yIHN0cmljdCBIVE1MIERURHMgKi8KKyAgICBpZiAoeG1sU3RyRXF1YWwoY3R4dC0+bmFtZSwgQkFEX0NBU1QgImJvZHkiKSAmJiBjdHh0LT5teURvYyAhPSBOVUxMKSB7CisgICAgICAgIGR0ZCA9IHhtbEdldEludFN1YnNldChjdHh0LT5teURvYyk7CisgICAgICAgIGlmIChkdGQgIT0gTlVMTCAmJiBkdGQtPkV4dGVybmFsSUQgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKCF4bWxTdHJjYXNlY21wKGR0ZC0+RXh0ZXJuYWxJRCwgQkFEX0NBU1QgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iKSB8fAorICAgICAgICAgICAgICAgICAgICAheG1sU3RyY2FzZWNtcChkdGQtPkV4dGVybmFsSUQsIEJBRF9DQVNUICItLy9XM0MvL0RURCBIVE1MIDQvL0VOIikpCisgICAgICAgICAgICAgICAgcmV0dXJuKDEpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGN0eHQtPm5vZGUgPT0gTlVMTCkgcmV0dXJuKDApOworICAgIGxhc3RDaGlsZCA9IHhtbEdldExhc3RDaGlsZChjdHh0LT5ub2RlKTsKKyAgICB3aGlsZSAoKGxhc3RDaGlsZCkgJiYgKGxhc3RDaGlsZC0+dHlwZSA9PSBYTUxfQ09NTUVOVF9OT0RFKSkKKwlsYXN0Q2hpbGQgPSBsYXN0Q2hpbGQtPnByZXY7CisgICAgaWYgKGxhc3RDaGlsZCA9PSBOVUxMKSB7CisgICAgICAgIGlmICgoY3R4dC0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorICAgICAgICAgICAgKGN0eHQtPm5vZGUtPmNvbnRlbnQgIT0gTlVMTCkpIHJldHVybigwKTsKKwkvKiBrZWVwIHdzIGluIGNvbnN0cnVjdHMgbGlrZSAuLi48Yj4gPC9iPi4uLgorCSAgIGZvciBhbGwgdGFncyAiYiIgYWxsb3dpbmcgUENEQVRBICovCisJZm9yICggaSA9IDA7IGkgPCBzaXplb2YoYWxsb3dQQ0RhdGEpL3NpemVvZihhbGxvd1BDRGF0YVswXSk7IGkrKyApIHsKKwkgICAgaWYgKCB4bWxTdHJFcXVhbChjdHh0LT5uYW1lLCBCQURfQ0FTVCBhbGxvd1BDRGF0YVtpXSkgKSB7CisJCXJldHVybigwKTsKKwkgICAgfQorCX0KKyAgICB9IGVsc2UgaWYgKHhtbE5vZGVJc1RleHQobGFzdENoaWxkKSkgeworICAgICAgICByZXR1cm4oMCk7CisgICAgfSBlbHNlIHsKKwkvKiBrZWVwIHdzIGluIGNvbnN0cnVjdHMgbGlrZSA8cD48Yj54eTwvYj4gPGk+ejwvaT48cD4KKwkgICBmb3IgYWxsIHRhZ3MgInAiIGFsbG93aW5nIFBDREFUQSAqLworCWZvciAoIGkgPSAwOyBpIDwgc2l6ZW9mKGFsbG93UENEYXRhKS9zaXplb2YoYWxsb3dQQ0RhdGFbMF0pOyBpKysgKSB7CisJICAgIGlmICggeG1sU3RyRXF1YWwobGFzdENoaWxkLT5uYW1lLCBCQURfQ0FTVCBhbGxvd1BDRGF0YVtpXSkgKSB7CisJCXJldHVybigwKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIGh0bWxOZXdEb2NOb0R0RDoKKyAqIEBVUkk6ICBVUkkgZm9yIHRoZSBkdGQsIG9yIE5VTEwKKyAqIEBFeHRlcm5hbElEOiAgdGhlIGV4dGVybmFsIElEIG9mIHRoZSBEVEQsIG9yIE5VTEwKKyAqCisgKiBDcmVhdGVzIGEgbmV3IEhUTUwgZG9jdW1lbnQgd2l0aG91dCBhIERURCBub2RlIGlmIEBVUkkgYW5kIEBFeHRlcm5hbElECisgKiBhcmUgTlVMTAorICoKKyAqIFJldHVybnMgYSBuZXcgZG9jdW1lbnQsIGRvIG5vdCBpbml0aWFsaXplIHRoZSBEVEQgaWYgbm90IHByb3ZpZGVkCisgKi8KK2h0bWxEb2NQdHIKK2h0bWxOZXdEb2NOb0R0RChjb25zdCB4bWxDaGFyICpVUkksIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQpIHsKKyAgICB4bWxEb2NQdHIgY3VyOworCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBkb2N1bWVudCBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxEb2NQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sRG9jKSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJaHRtbEVyck1lbW9yeShOVUxMLCAiSFRNTCBkb2N1bWVudCBjcmVhdGlvbiBmYWlsZWRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbERvYykpOworCisgICAgY3VyLT50eXBlID0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERTsKKyAgICBjdXItPnZlcnNpb24gPSBOVUxMOworICAgIGN1ci0+aW50U3Vic2V0ID0gTlVMTDsKKyAgICBjdXItPmRvYyA9IGN1cjsKKyAgICBjdXItPm5hbWUgPSBOVUxMOworICAgIGN1ci0+Y2hpbGRyZW4gPSBOVUxMOworICAgIGN1ci0+ZXh0U3Vic2V0ID0gTlVMTDsKKyAgICBjdXItPm9sZE5zID0gTlVMTDsKKyAgICBjdXItPmVuY29kaW5nID0gTlVMTDsKKyAgICBjdXItPnN0YW5kYWxvbmUgPSAxOworICAgIGN1ci0+Y29tcHJlc3Npb24gPSAwOworICAgIGN1ci0+aWRzID0gTlVMTDsKKyAgICBjdXItPnJlZnMgPSBOVUxMOworICAgIGN1ci0+X3ByaXZhdGUgPSBOVUxMOworICAgIGN1ci0+Y2hhcnNldCA9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjg7CisgICAgY3VyLT5wcm9wZXJ0aWVzID0gWE1MX0RPQ19IVE1MIHwgWE1MX0RPQ19VU0VSQlVJTFQ7CisgICAgaWYgKChFeHRlcm5hbElEICE9IE5VTEwpIHx8CisJKFVSSSAhPSBOVUxMKSkKKwl4bWxDcmVhdGVJbnRTdWJzZXQoY3VyLCBCQURfQ0FTVCAiaHRtbCIsIEV4dGVybmFsSUQsIFVSSSk7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogaHRtbE5ld0RvYzoKKyAqIEBVUkk6ICBVUkkgZm9yIHRoZSBkdGQsIG9yIE5VTEwKKyAqIEBFeHRlcm5hbElEOiAgdGhlIGV4dGVybmFsIElEIG9mIHRoZSBEVEQsIG9yIE5VTEwKKyAqCisgKiBDcmVhdGVzIGEgbmV3IEhUTUwgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm5zIGEgbmV3IGRvY3VtZW50CisgKi8KK2h0bWxEb2NQdHIKK2h0bWxOZXdEb2MoY29uc3QgeG1sQ2hhciAqVVJJLCBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElEKSB7CisgICAgaWYgKChVUkkgPT0gTlVMTCkgJiYgKEV4dGVybmFsSUQgPT0gTlVMTCkpCisJcmV0dXJuKGh0bWxOZXdEb2NOb0R0RCgKKwkJICAgIEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCIsCisJCSAgICBCQURfQ0FTVCAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIpKTsKKworICAgIHJldHVybihodG1sTmV3RG9jTm9EdEQoVVJJLCBFeHRlcm5hbElEKSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVRoZSBwYXJzZXIgaXRzZWxmCQkJCSoKKyAqCVJlbGF0ZXMgdG8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQwCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVRoZSBwYXJzZXIgaXRzZWxmCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKiBodG1sUGFyc2VOYW1lQ29tcGxleCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworCisvKioKKyAqIGh0bWxQYXJzZUhUTUxOYW1lOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYW4gSFRNTCB0YWcgb3IgYXR0cmlidXRlIG5hbWUsIG5vdGUgdGhhdCB3ZSBjb252ZXJ0IGl0IHRvIGxvd2VyY2FzZQorICogc2luY2UgSFRNTCBuYW1lcyBhcmUgbm90IGNhc2Utc2Vuc2l0aXZlLgorICoKKyAqIFJldHVybnMgdGhlIFRhZyBOYW1lIHBhcnNlZCBvciBOVUxMCisgKi8KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoraHRtbFBhcnNlSFRNTE5hbWUoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCBpID0gMDsKKyAgICB4bWxDaGFyIGxvY1tIVE1MX1BBUlNFUl9CVUZGRVJfU0laRV07CisKKyAgICBpZiAoIUlTX0FTQ0lJX0xFVFRFUihDVVIpICYmIChDVVIgIT0gJ18nKSAmJgorICAgICAgICAoQ1VSICE9ICc6JykgJiYgKENVUiAhPSAnLicpKSByZXR1cm4oTlVMTCk7CisKKyAgICB3aGlsZSAoKGkgPCBIVE1MX1BBUlNFUl9CVUZGRVJfU0laRSkgJiYKKyAgICAgICAgICAgKChJU19BU0NJSV9MRVRURVIoQ1VSKSkgfHwgKElTX0FTQ0lJX0RJR0lUKENVUikpIHx8CisJICAgKENVUiA9PSAnOicpIHx8IChDVVIgPT0gJy0nKSB8fCAoQ1VSID09ICdfJykgfHwKKyAgICAgICAgICAgKENVUiA9PSAnLicpKSkgeworCWlmICgoQ1VSID49ICdBJykgJiYgKENVUiA8PSAnWicpKSBsb2NbaV0gPSBDVVIgKyAweDIwOworICAgICAgICBlbHNlIGxvY1tpXSA9IENVUjsKKwlpKys7CisKKwlORVhUOworICAgIH0KKworICAgIHJldHVybih4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIGxvYywgaSkpOworfQorCisKKy8qKgorICogaHRtbFBhcnNlSFRNTE5hbWVfbm9uSW52YXNpdmU6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbiBIVE1MIHRhZyBvciBhdHRyaWJ1dGUgbmFtZSwgbm90ZSB0aGF0IHdlIGNvbnZlcnQgaXQgdG8gbG93ZXJjYXNlCisgKiBzaW5jZSBIVE1MIG5hbWVzIGFyZSBub3QgY2FzZS1zZW5zaXRpdmUsIHRoaXMgZG9lc24ndCBjb25zdW1lIHRoZSBkYXRhCisgKiBmcm9tIHRoZSBzdHJlYW0sIGl0J3MgYSBsb29rLWFoZWFkCisgKgorICogUmV0dXJucyB0aGUgVGFnIE5hbWUgcGFyc2VkIG9yIE5VTEwKKyAqLworCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCitodG1sUGFyc2VIVE1MTmFtZV9ub25JbnZhc2l2ZShodG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaW50IGkgPSAwOworICAgIHhtbENoYXIgbG9jW0hUTUxfUEFSU0VSX0JVRkZFUl9TSVpFXTsKKworICAgIGlmICghSVNfQVNDSUlfTEVUVEVSKE5YVCgxKSkgJiYgKE5YVCgxKSAhPSAnXycpICYmCisgICAgICAgIChOWFQoMSkgIT0gJzonKSkgcmV0dXJuKE5VTEwpOworCisgICAgd2hpbGUgKChpIDwgSFRNTF9QQVJTRVJfQlVGRkVSX1NJWkUpICYmCisgICAgICAgICAgICgoSVNfQVNDSUlfTEVUVEVSKE5YVCgxK2kpKSkgfHwgKElTX0FTQ0lJX0RJR0lUKE5YVCgxK2kpKSkgfHwKKwkgICAoTlhUKDEraSkgPT0gJzonKSB8fCAoTlhUKDEraSkgPT0gJy0nKSB8fCAoTlhUKDEraSkgPT0gJ18nKSkpIHsKKwlpZiAoKE5YVCgxK2kpID49ICdBJykgJiYgKE5YVCgxK2kpIDw9ICdaJykpIGxvY1tpXSA9IE5YVCgxK2kpICsgMHgyMDsKKyAgICAgICAgZWxzZSBsb2NbaV0gPSBOWFQoMStpKTsKKwlpKys7CisgICAgfQorCisgICAgcmV0dXJuKHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgbG9jLCBpKSk7Cit9CisKKworLyoqCisgKiBodG1sUGFyc2VOYW1lOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYW4gSFRNTCBuYW1lLCB0aGlzIHJvdXRpbmUgaXMgY2FzZSBzZW5zaXRpdmUuCisgKgorICogUmV0dXJucyB0aGUgTmFtZSBwYXJzZWQgb3IgTlVMTAorICovCisKK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK2h0bWxQYXJzZU5hbWUoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKmluOworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKyAgICBpbnQgY291bnQgPSAwOworCisgICAgR1JPVzsKKworICAgIC8qCisgICAgICogQWNjZWxlcmF0b3IgZm9yIHNpbXBsZSBBU0NJSSBuYW1lcworICAgICAqLworICAgIGluID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICBpZiAoKCgqaW4gPj0gMHg2MSkgJiYgKCppbiA8PSAweDdBKSkgfHwKKwkoKCppbiA+PSAweDQxKSAmJiAoKmluIDw9IDB4NUEpKSB8fAorCSgqaW4gPT0gJ18nKSB8fCAoKmluID09ICc6JykpIHsKKwlpbisrOworCXdoaWxlICgoKCppbiA+PSAweDYxKSAmJiAoKmluIDw9IDB4N0EpKSB8fAorCSAgICAgICAoKCppbiA+PSAweDQxKSAmJiAoKmluIDw9IDB4NUEpKSB8fAorCSAgICAgICAoKCppbiA+PSAweDMwKSAmJiAoKmluIDw9IDB4MzkpKSB8fAorCSAgICAgICAoKmluID09ICdfJykgfHwgKCppbiA9PSAnLScpIHx8CisJICAgICAgICgqaW4gPT0gJzonKSB8fCAoKmluID09ICcuJykpCisJICAgIGluKys7CisJaWYgKCgqaW4gPiAwKSAmJiAoKmluIDwgMHg4MCkpIHsKKwkgICAgY291bnQgPSBpbiAtIGN0eHQtPmlucHV0LT5jdXI7CisJICAgIHJldCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgY3R4dC0+aW5wdXQtPmN1ciwgY291bnQpOworCSAgICBjdHh0LT5pbnB1dC0+Y3VyID0gaW47CisJICAgIGN0eHQtPm5iQ2hhcnMgKz0gY291bnQ7CisJICAgIGN0eHQtPmlucHV0LT5jb2wgKz0gY291bnQ7CisJICAgIHJldHVybihyZXQpOworCX0KKyAgICB9CisgICAgcmV0dXJuKGh0bWxQYXJzZU5hbWVDb21wbGV4KGN0eHQpKTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoraHRtbFBhcnNlTmFtZUNvbXBsZXgoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaW50IGxlbiA9IDAsIGw7CisgICAgaW50IGM7CisgICAgaW50IGNvdW50ID0gMDsKKworICAgIC8qCisgICAgICogSGFuZGxlciBmb3IgbW9yZSBjb21wbGV4IGNhc2VzCisgICAgICovCisgICAgR1JPVzsKKyAgICBjID0gQ1VSX0NIQVIobCk7CisgICAgaWYgKChjID09ICcgJykgfHwgKGMgPT0gJz4nKSB8fCAoYyA9PSAnLycpIHx8IC8qIGFjY2VsZXJhdG9ycyAqLworCSghSVNfTEVUVEVSKGMpICYmIChjICE9ICdfJykgJiYKKyAgICAgICAgIChjICE9ICc6JykpKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIHdoaWxlICgoYyAhPSAnICcpICYmIChjICE9ICc+JykgJiYgKGMgIT0gJy8nKSAmJiAvKiB0ZXN0IGJpZ25hbWUueG1sICovCisJICAgKChJU19MRVRURVIoYykpIHx8IChJU19ESUdJVChjKSkgfHwKKyAgICAgICAgICAgIChjID09ICcuJykgfHwgKGMgPT0gJy0nKSB8fAorCSAgICAoYyA9PSAnXycpIHx8IChjID09ICc6JykgfHwKKwkgICAgKElTX0NPTUJJTklORyhjKSkgfHwKKwkgICAgKElTX0VYVEVOREVSKGMpKSkpIHsKKwlpZiAoY291bnQrKyA+IDEwMCkgeworCSAgICBjb3VudCA9IDA7CisJICAgIEdST1c7CisJfQorCWxlbiArPSBsOworCU5FWFRMKGwpOworCWMgPSBDVVJfQ0hBUihsKTsKKyAgICB9CisgICAgcmV0dXJuKHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgY3R4dC0+aW5wdXQtPmN1ciAtIGxlbiwgbGVuKSk7Cit9CisKKworLyoqCisgKiBodG1sUGFyc2VIVE1MQXR0cmlidXRlOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAc3RvcDogIGEgY2hhciBzdG9wIHZhbHVlCisgKgorICogcGFyc2UgYW4gSFRNTCBhdHRyaWJ1dGUgdmFsdWUgdGlsbCB0aGUgc3RvcCAocXVvdGUpLCBpZgorICogc3RvcCBpcyAwIHRoZW4gaXQgc3RvcHMgYXQgdGhlIGZpcnN0IHNwYWNlCisgKgorICogUmV0dXJucyB0aGUgYXR0cmlidXRlIHBhcnNlZCBvciBOVUxMCisgKi8KKworc3RhdGljIHhtbENoYXIgKgoraHRtbFBhcnNlSFRNTEF0dHJpYnV0ZShodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyIHN0b3ApIHsKKyAgICB4bWxDaGFyICpidWZmZXIgPSBOVUxMOworICAgIGludCBidWZmZXJfc2l6ZSA9IDA7CisgICAgeG1sQ2hhciAqb3V0ID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIgPSBOVUxMOworICAgIGNvbnN0IGh0bWxFbnRpdHlEZXNjICogZW50OworCisgICAgLyoKKyAgICAgKiBhbGxvY2F0ZSBhIHRyYW5zbGF0aW9uIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBidWZmZXJfc2l6ZSA9IEhUTUxfUEFSU0VSX0JVRkZFUl9TSVpFOworICAgIGJ1ZmZlciA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhidWZmZXJfc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisJaHRtbEVyck1lbW9yeShjdHh0LCAiYnVmZmVyIGFsbG9jYXRpb24gZmFpbGVkXG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG91dCA9IGJ1ZmZlcjsKKworICAgIC8qCisgICAgICogT2sgbG9vcCB1bnRpbCB3ZSByZWFjaCBvbmUgb2YgdGhlIGVuZGluZyBjaGFycworICAgICAqLworICAgIHdoaWxlICgoQ1VSICE9IDApICYmIChDVVIgIT0gc3RvcCkpIHsKKwlpZiAoKHN0b3AgPT0gMCkgJiYgKENVUiA9PSAnPicpKSBicmVhazsKKwlpZiAoKHN0b3AgPT0gMCkgJiYgKElTX0JMQU5LX0NIKENVUikpKSBicmVhazsKKyAgICAgICAgaWYgKENVUiA9PSAnJicpIHsKKwkgICAgaWYgKE5YVCgxKSA9PSAnIycpIHsKKwkJdW5zaWduZWQgaW50IGM7CisJCWludCBiaXRzOworCisJCWMgPSBodG1sUGFyc2VDaGFyUmVmKGN0eHQpOworCQlpZiAgICAgIChjIDwgICAgMHg4MCkKKwkJICAgICAgICB7ICpvdXQrKyAgPSBjOyAgICAgICAgICAgICAgICBiaXRzPSAtNjsgfQorCQllbHNlIGlmIChjIDwgICAweDgwMCkKKwkJICAgICAgICB7ICpvdXQrKyAgPSgoYyA+PiAgNikgJiAweDFGKSB8IDB4QzA7ICBiaXRzPSAgMDsgfQorCQllbHNlIGlmIChjIDwgMHgxMDAwMCkKKwkJICAgICAgICB7ICpvdXQrKyAgPSgoYyA+PiAxMikgJiAweDBGKSB8IDB4RTA7ICBiaXRzPSAgNjsgfQorCQllbHNlCisJCSAgICAgICAgeyAqb3V0KysgID0oKGMgPj4gMTgpICYgMHgwNykgfCAweEYwOyAgYml0cz0gMTI7IH0KKworCQlmb3IgKCA7IGJpdHMgPj0gMDsgYml0cy09IDYpIHsKKwkJICAgICpvdXQrKyAgPSAoKGMgPj4gYml0cykgJiAweDNGKSB8IDB4ODA7CisJCX0KKworCQlpZiAob3V0IC0gYnVmZmVyID4gYnVmZmVyX3NpemUgLSAxMDApIHsKKwkJCWludCBpbmR4ID0gb3V0IC0gYnVmZmVyOworCisJCQlncm93QnVmZmVyKGJ1ZmZlcik7CisJCQlvdXQgPSAmYnVmZmVyW2luZHhdOworCQl9CisJICAgIH0gZWxzZSB7CisJCWVudCA9IGh0bWxQYXJzZUVudGl0eVJlZihjdHh0LCAmbmFtZSk7CisJCWlmIChuYW1lID09IE5VTEwpIHsKKwkJICAgICpvdXQrKyA9ICcmJzsKKwkJICAgIGlmIChvdXQgLSBidWZmZXIgPiBidWZmZXJfc2l6ZSAtIDEwMCkgeworCQkJaW50IGluZHggPSBvdXQgLSBidWZmZXI7CisKKwkJCWdyb3dCdWZmZXIoYnVmZmVyKTsKKwkJCW91dCA9ICZidWZmZXJbaW5keF07CisJCSAgICB9CisJCX0gZWxzZSBpZiAoZW50ID09IE5VTEwpIHsKKwkJICAgICpvdXQrKyA9ICcmJzsKKwkJICAgIGN1ciA9IG5hbWU7CisJCSAgICB3aGlsZSAoKmN1ciAhPSAwKSB7CisJCQlpZiAob3V0IC0gYnVmZmVyID4gYnVmZmVyX3NpemUgLSAxMDApIHsKKwkJCSAgICBpbnQgaW5keCA9IG91dCAtIGJ1ZmZlcjsKKworCQkJICAgIGdyb3dCdWZmZXIoYnVmZmVyKTsKKwkJCSAgICBvdXQgPSAmYnVmZmVyW2luZHhdOworCQkJfQorCQkJKm91dCsrID0gKmN1cisrOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgdW5zaWduZWQgaW50IGM7CisJCSAgICBpbnQgYml0czsKKworCQkgICAgaWYgKG91dCAtIGJ1ZmZlciA+IGJ1ZmZlcl9zaXplIC0gMTAwKSB7CisJCQlpbnQgaW5keCA9IG91dCAtIGJ1ZmZlcjsKKworCQkJZ3Jvd0J1ZmZlcihidWZmZXIpOworCQkJb3V0ID0gJmJ1ZmZlcltpbmR4XTsKKwkJICAgIH0KKwkJICAgIGMgPSBlbnQtPnZhbHVlOworCQkgICAgaWYgICAgICAoYyA8ICAgIDB4ODApCisJCQl7ICpvdXQrKyAgPSBjOyAgICAgICAgICAgICAgICBiaXRzPSAtNjsgfQorCQkgICAgZWxzZSBpZiAoYyA8ICAgMHg4MDApCisJCQl7ICpvdXQrKyAgPSgoYyA+PiAgNikgJiAweDFGKSB8IDB4QzA7ICBiaXRzPSAgMDsgfQorCQkgICAgZWxzZSBpZiAoYyA8IDB4MTAwMDApCisJCQl7ICpvdXQrKyAgPSgoYyA+PiAxMikgJiAweDBGKSB8IDB4RTA7ICBiaXRzPSAgNjsgfQorCQkgICAgZWxzZQorCQkJeyAqb3V0KysgID0oKGMgPj4gMTgpICYgMHgwNykgfCAweEYwOyAgYml0cz0gMTI7IH0KKworCQkgICAgZm9yICggOyBiaXRzID49IDA7IGJpdHMtPSA2KSB7CisJCQkqb3V0KysgID0gKChjID4+IGJpdHMpICYgMHgzRikgfCAweDgwOworCQkgICAgfQorCQl9CisJICAgIH0KKwl9IGVsc2UgeworCSAgICB1bnNpZ25lZCBpbnQgYzsKKwkgICAgaW50IGJpdHMsIGw7CisKKwkgICAgaWYgKG91dCAtIGJ1ZmZlciA+IGJ1ZmZlcl9zaXplIC0gMTAwKSB7CisJCWludCBpbmR4ID0gb3V0IC0gYnVmZmVyOworCisJCWdyb3dCdWZmZXIoYnVmZmVyKTsKKwkJb3V0ID0gJmJ1ZmZlcltpbmR4XTsKKwkgICAgfQorCSAgICBjID0gQ1VSX0NIQVIobCk7CisJICAgIGlmICAgICAgKGMgPCAgICAweDgwKQorCQkgICAgeyAqb3V0KysgID0gYzsgICAgICAgICAgICAgICAgYml0cz0gLTY7IH0KKwkgICAgZWxzZSBpZiAoYyA8ICAgMHg4MDApCisJCSAgICB7ICpvdXQrKyAgPSgoYyA+PiAgNikgJiAweDFGKSB8IDB4QzA7ICBiaXRzPSAgMDsgfQorCSAgICBlbHNlIGlmIChjIDwgMHgxMDAwMCkKKwkJICAgIHsgKm91dCsrICA9KChjID4+IDEyKSAmIDB4MEYpIHwgMHhFMDsgIGJpdHM9ICA2OyB9CisJICAgIGVsc2UKKwkJICAgIHsgKm91dCsrICA9KChjID4+IDE4KSAmIDB4MDcpIHwgMHhGMDsgIGJpdHM9IDEyOyB9CisKKwkgICAgZm9yICggOyBiaXRzID49IDA7IGJpdHMtPSA2KSB7CisJCSpvdXQrKyAgPSAoKGMgPj4gYml0cykgJiAweDNGKSB8IDB4ODA7CisJICAgIH0KKwkgICAgTkVYVDsKKwl9CisgICAgfQorICAgICpvdXQgPSAwOworICAgIHJldHVybihidWZmZXIpOworfQorCisvKioKKyAqIGh0bWxQYXJzZUVudGl0eVJlZjoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQHN0cjogIGxvY2F0aW9uIHRvIHN0b3JlIHRoZSBlbnRpdHkgbmFtZQorICoKKyAqIHBhcnNlIGFuIEhUTUwgRU5USVRZIHJlZmVyZW5jZXMKKyAqCisgKiBbNjhdIEVudGl0eVJlZiA6Oj0gJyYnIE5hbWUgJzsnCisgKgorICogUmV0dXJucyB0aGUgYXNzb2NpYXRlZCBodG1sRW50aXR5RGVzY1B0ciBpZiBmb3VuZCwgb3IgTlVMTCBvdGhlcndpc2UsCisgKiAgICAgICAgIGlmIG5vbi1OVUxMICpzdHIgd2lsbCBoYXZlIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuCisgKi8KK2NvbnN0IGh0bWxFbnRpdHlEZXNjICoKK2h0bWxQYXJzZUVudGl0eVJlZihodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICoqc3RyKSB7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICBjb25zdCBodG1sRW50aXR5RGVzYyAqIGVudCA9IE5VTEw7CisKKyAgICBpZiAoc3RyICE9IE5VTEwpICpzdHIgPSBOVUxMOworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXQgPT0gTlVMTCkpIHJldHVybihOVUxMKTsKKworICAgIGlmIChDVVIgPT0gJyYnKSB7CisgICAgICAgIE5FWFQ7CisgICAgICAgIG5hbWUgPSBodG1sUGFyc2VOYW1lKGN0eHQpOworCWlmIChuYW1lID09IE5VTEwpIHsKKwkgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkgICAgICAgICAgICAgICAgICJodG1sUGFyc2VFbnRpdHlSZWY6IG5vIG5hbWVcbiIsIE5VTEwsIE5VTEwpOworCX0gZWxzZSB7CisJICAgIEdST1c7CisJICAgIGlmIChDVVIgPT0gJzsnKSB7CisJICAgICAgICBpZiAoc3RyICE9IE5VTEwpCisJCSAgICAqc3RyID0gbmFtZTsKKworCQkvKgorCQkgKiBMb29rdXAgdGhlIGVudGl0eSBpbiB0aGUgdGFibGUuCisJCSAqLworCQllbnQgPSBodG1sRW50aXR5TG9va3VwKG5hbWUpOworCQlpZiAoZW50ICE9IE5VTEwpIC8qIE9LIHRoYXQncyB1Z2x5ICEhISAqLworCQkgICAgTkVYVDsKKwkgICAgfSBlbHNlIHsKKwkJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORywKKwkJICAgICAgICAgICAgICJodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOydcbiIsCisJCQkgICAgIE5VTEwsIE5VTEwpOworCSAgICAgICAgaWYgKHN0ciAhPSBOVUxMKQorCQkgICAgKnN0ciA9IG5hbWU7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybihlbnQpOworfQorCisvKioKKyAqIGh0bWxQYXJzZUF0dFZhbHVlOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYSB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlCisgKiBOb3RlOiB0aGUgcGFyc2VyIHdvbid0IGRvIHN1YnN0aXR1dGlvbiBvZiBlbnRpdGllcyBoZXJlLCB0aGlzCisgKiB3aWxsIGJlIGhhbmRsZWQgbGF0ZXIgaW4geG1sU3RyaW5nR2V0Tm9kZUxpc3QsIHVubGVzcyBpdCB3YXMKKyAqIGFza2VkIGZvciBjdHh0LT5yZXBsYWNlRW50aXRpZXMgIT0gMAorICoKKyAqIFJldHVybnMgdGhlIEF0dFZhbHVlIHBhcnNlZCBvciBOVUxMLgorICovCisKK3N0YXRpYyB4bWxDaGFyICoKK2h0bWxQYXJzZUF0dFZhbHVlKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworCisgICAgaWYgKENVUiA9PSAnIicpIHsKKyAgICAgICAgTkVYVDsKKwlyZXQgPSBodG1sUGFyc2VIVE1MQXR0cmlidXRlKGN0eHQsICciJyk7CisgICAgICAgIGlmIChDVVIgIT0gJyInKSB7CisJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0FUVFJJQlVURV9OT1RfRklOSVNIRUQsCisJICAgICAgICAgICAgICAgICAiQXR0VmFsdWU6IFwiIGV4cGVjdGVkXG4iLCBOVUxMLCBOVUxMKTsKKwl9IGVsc2UKKwkgICAgTkVYVDsKKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnXCcnKSB7CisgICAgICAgIE5FWFQ7CisJcmV0ID0gaHRtbFBhcnNlSFRNTEF0dHJpYnV0ZShjdHh0LCAnXCcnKTsKKyAgICAgICAgaWYgKENVUiAhPSAnXCcnKSB7CisJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0FUVFJJQlVURV9OT1RfRklOSVNIRUQsCisJICAgICAgICAgICAgICAgICAiQXR0VmFsdWU6ICcgZXhwZWN0ZWRcbiIsIE5VTEwsIE5VTEwpOworCX0gZWxzZQorCSAgICBORVhUOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qCisJICogVGhhdCdzIGFuIEhUTUxpc20sIHRoZSBhdHRyaWJ1dGUgdmFsdWUgbWF5IG5vdCBiZSBxdW90ZWQKKwkgKi8KKwlyZXQgPSBodG1sUGFyc2VIVE1MQXR0cmlidXRlKGN0eHQsIDApOworCWlmIChyZXQgPT0gTlVMTCkgeworCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9BVFRSSUJVVEVfV0lUSE9VVF9WQUxVRSwKKwkgICAgICAgICAgICAgICAgICJBdHRWYWx1ZTogbm8gdmFsdWUgZm91bmRcbiIsIE5VTEwsIE5VTEwpOworCX0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogaHRtbFBhcnNlU3lzdGVtTGl0ZXJhbDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIEhUTUwgTGl0ZXJhbAorICoKKyAqIFsxMV0gU3lzdGVtTGl0ZXJhbCA6Oj0gKCciJyBbXiJdKiAnIicpIHwgKCInIiBbXiddKiAiJyIpCisgKgorICogUmV0dXJucyB0aGUgU3lzdGVtTGl0ZXJhbCBwYXJzZWQgb3IgTlVMTAorICovCisKK3N0YXRpYyB4bWxDaGFyICoKK2h0bWxQYXJzZVN5c3RlbUxpdGVyYWwoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKnE7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKworICAgIGlmIChDVVIgPT0gJyInKSB7CisgICAgICAgIE5FWFQ7CisJcSA9IENVUl9QVFI7CisJd2hpbGUgKChJU19DSEFSX0NIKENVUikpICYmIChDVVIgIT0gJyInKSkKKwkgICAgTkVYVDsKKwlpZiAoIUlTX0NIQVJfQ0goQ1VSKSkgeworCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9MSVRFUkFMX05PVF9GSU5JU0hFRCwKKwkJCSAiVW5maW5pc2hlZCBTeXN0ZW1MaXRlcmFsXG4iLCBOVUxMLCBOVUxMKTsKKwl9IGVsc2UgeworCSAgICByZXQgPSB4bWxTdHJuZHVwKHEsIENVUl9QVFIgLSBxKTsKKwkgICAgTkVYVDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoQ1VSID09ICdcJycpIHsKKyAgICAgICAgTkVYVDsKKwlxID0gQ1VSX1BUUjsKKwl3aGlsZSAoKElTX0NIQVJfQ0goQ1VSKSkgJiYgKENVUiAhPSAnXCcnKSkKKwkgICAgTkVYVDsKKwlpZiAoIUlTX0NIQVJfQ0goQ1VSKSkgeworCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9MSVRFUkFMX05PVF9GSU5JU0hFRCwKKwkJCSAiVW5maW5pc2hlZCBTeXN0ZW1MaXRlcmFsXG4iLCBOVUxMLCBOVUxMKTsKKwl9IGVsc2UgeworCSAgICByZXQgPSB4bWxTdHJuZHVwKHEsIENVUl9QVFIgLSBxKTsKKwkgICAgTkVYVDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCwKKwkgICAgICAgICAgICAgIiBvciAnIGV4cGVjdGVkXG4iLCBOVUxMLCBOVUxMKTsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiBodG1sUGFyc2VQdWJpZExpdGVyYWw6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbiBIVE1MIHB1YmxpYyBsaXRlcmFsCisgKgorICogWzEyXSBQdWJpZExpdGVyYWwgOjo9ICciJyBQdWJpZENoYXIqICciJyB8ICInIiAoUHViaWRDaGFyIC0gIiciKSogIiciCisgKgorICogUmV0dXJucyB0aGUgUHViaWRMaXRlcmFsIHBhcnNlZCBvciBOVUxMLgorICovCisKK3N0YXRpYyB4bWxDaGFyICoKK2h0bWxQYXJzZVB1YmlkTGl0ZXJhbChodG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqcTsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIC8qCisgICAgICogTmFtZSA6Oj0gKExldHRlciB8ICdfJykgKE5hbWVDaGFyKSoKKyAgICAgKi8KKyAgICBpZiAoQ1VSID09ICciJykgeworICAgICAgICBORVhUOworCXEgPSBDVVJfUFRSOworCXdoaWxlIChJU19QVUJJRENIQVJfQ0goQ1VSKSkgTkVYVDsKKwlpZiAoQ1VSICE9ICciJykgeworCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9MSVRFUkFMX05PVF9GSU5JU0hFRCwKKwkgICAgICAgICAgICAgICAgICJVbmZpbmlzaGVkIFB1YmlkTGl0ZXJhbFxuIiwgTlVMTCwgTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sU3RybmR1cChxLCBDVVJfUFRSIC0gcSk7CisJICAgIE5FWFQ7CisJfQorICAgIH0gZWxzZSBpZiAoQ1VSID09ICdcJycpIHsKKyAgICAgICAgTkVYVDsKKwlxID0gQ1VSX1BUUjsKKwl3aGlsZSAoKElTX1BVQklEQ0hBUl9DSChDVVIpKSAmJiAoQ1VSICE9ICdcJycpKQorCSAgICBORVhUOworCWlmIChDVVIgIT0gJ1wnJykgeworCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9MSVRFUkFMX05PVF9GSU5JU0hFRCwKKwkgICAgICAgICAgICAgICAgICJVbmZpbmlzaGVkIFB1YmlkTGl0ZXJhbFxuIiwgTlVMTCwgTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sU3RybmR1cChxLCBDVVJfUFRSIC0gcSk7CisJICAgIE5FWFQ7CisJfQorICAgIH0gZWxzZSB7CisJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCwKKwkgICAgICAgICAgICAgIlB1YmlkTGl0ZXJhbCBcIiBvciAnIGV4cGVjdGVkXG4iLCBOVUxMLCBOVUxMKTsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiBodG1sUGFyc2VTY3JpcHQ6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhbiBIVE1MIFNDUklQVCBvciBTVFlMRSBlbGVtZW50CisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zZ21sL2R0ZC5odG1sI1NjcmlwdAorICogaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc2dtbC9kdGQuaHRtbCNTdHlsZVNoZWV0CisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC90eXBlcy5odG1sI3R5cGUtc2NyaXB0CisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC90eXBlcy5odG1sI2gtNi4xNQorICogaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvYXBwZW5kaXgvbm90ZXMuaHRtbCNoLUIuMy4yLjEKKyAqCisgKiBTY3JpcHQgZGF0YSAoICVTY3JpcHQ7IGluIHRoZSBEVEQpIGNhbiBiZSB0aGUgY29udGVudCBvZiB0aGUgU0NSSVBUCisgKiBlbGVtZW50IGFuZCB0aGUgdmFsdWUgb2YgaW50cmluc2ljIGV2ZW50IGF0dHJpYnV0ZXMuIFVzZXIgYWdlbnRzIG11c3QKKyAqIG5vdCBldmFsdWF0ZSBzY3JpcHQgZGF0YSBhcyBIVE1MIG1hcmt1cCBidXQgaW5zdGVhZCBtdXN0IHBhc3MgaXQgb24gYXMKKyAqIGRhdGEgdG8gYSBzY3JpcHQgZW5naW5lLgorICogTk9URVM6CisgKiAtIFRoZSBjb250ZW50IGlzIHBhc3NlZCBsaWtlIENEQVRBCisgKiAtIHRoZSBhdHRyaWJ1dGVzIGZvciBzdHlsZSBhbmQgc2NyaXB0aW5nICJvblhYWCIgYXJlIGFsc28gZGVzY3JpYmVkCisgKiAgIGFzIENEQVRBIGJ1dCBTR01MIGFsbG93cyBlbnRpdGllcyByZWZlcmVuY2VzIGluIGF0dHJpYnV0ZXMgc28gdGhlaXIKKyAqICAgcHJvY2Vzc2luZyBpcyBpZGVudGljYWwgYXMgb3RoZXIgYXR0cmlidXRlcworICovCitzdGF0aWMgdm9pZAoraHRtbFBhcnNlU2NyaXB0KGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyIGJ1ZltIVE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUgKyA1XTsKKyAgICBpbnQgbmJjaGFyID0gMDsKKyAgICBpbnQgY3VyLGw7CisKKyAgICBTSFJJTks7CisgICAgY3VyID0gQ1VSX0NIQVIobCk7CisgICAgd2hpbGUgKElTX0NIQVJfQ0goY3VyKSkgeworCWlmICgoY3VyID09ICc8JykgJiYgKE5YVCgxKSA9PSAnLycpKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogT25lIHNob3VsZCBicmVhayBoZXJlLCB0aGUgc3BlY2lmaWNhdGlvbiBpcyBjbGVhcjoKKyAgICAgICAgICAgICAqIEF1dGhvcnMgc2hvdWxkIHRoZXJlZm9yZSBlc2NhcGUgIjwvIiB3aXRoaW4gdGhlIGNvbnRlbnQuCisgICAgICAgICAgICAgKiBFc2NhcGUgbWVjaGFuaXNtcyBhcmUgc3BlY2lmaWMgdG8gZWFjaCBzY3JpcHRpbmcgb3IKKyAgICAgICAgICAgICAqIHN0eWxlIHNoZWV0IGxhbmd1YWdlLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEluIHJlY292ZXJ5IG1vZGUsIG9ubHkgYnJlYWsgaWYgZW5kIHRhZyBtYXRjaCB0aGUKKyAgICAgICAgICAgICAqIGN1cnJlbnQgdGFnLCBlZmZlY3RpdmVseSBpZ25vcmluZyBhbGwgdGFncyBpbnNpZGUgdGhlCisgICAgICAgICAgICAgKiBzY3JpcHQvc3R5bGUgYmxvY2sgYW5kIHRyZWF0aW5nIHRoZSBlbnRpcmUgYmxvY2sgYXMKKyAgICAgICAgICAgICAqIENEQVRBLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoY3R4dC0+cmVjb3ZlcnkpIHsKKyAgICAgICAgICAgICAgICBpZiAoeG1sU3RybmNhc2VjbXAoY3R4dC0+bmFtZSwgY3R4dC0+aW5wdXQtPmN1cisyLAorCQkJCSAgIHhtbFN0cmxlbihjdHh0LT5uYW1lKSkgPT0gMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvKiB3aGlsZSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisJCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCwKKwkJCQkgIkVsZW1lbnQgJXMgZW1iZWRzIGNsb3NlIHRhZ1xuIiwKKwkJICAgICAgICAgICAgICAgICBjdHh0LT5uYW1lLCBOVUxMKTsKKwkJfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoKChOWFQoMikgPj0gJ0EnKSAmJiAoTlhUKDIpIDw9ICdaJykpIHx8CisgICAgICAgICAgICAgICAgICAgICgoTlhUKDIpID49ICdhJykgJiYgKE5YVCgyKSA8PSAneicpKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvKiB3aGlsZSAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwl9CisJQ09QWV9CVUYobCxidWYsbmJjaGFyLGN1cik7CisJaWYgKG5iY2hhciA+PSBIVE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUpIHsKKwkgICAgaWYgKGN0eHQtPnNheC0+Y2RhdGFCbG9jayE9IE5VTEwpIHsKKwkJLyoKKwkJICogSW5zZXJ0IGFzIENEQVRBLCB3aGljaCBpcyB0aGUgc2FtZSBhcyBIVE1MX1BSRVNFUlZFX05PREUKKwkJICovCisJCWN0eHQtPnNheC0+Y2RhdGFCbG9jayhjdHh0LT51c2VyRGF0YSwgYnVmLCBuYmNoYXIpOworCSAgICB9IGVsc2UgaWYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKSB7CisJCWN0eHQtPnNheC0+Y2hhcmFjdGVycyhjdHh0LT51c2VyRGF0YSwgYnVmLCBuYmNoYXIpOworCSAgICB9CisJICAgIG5iY2hhciA9IDA7CisJfQorCUdST1c7CisJTkVYVEwobCk7CisJY3VyID0gQ1VSX0NIQVIobCk7CisgICAgfQorCisgICAgaWYgKCghKElTX0NIQVJfQ0goY3VyKSkpICYmICghKChjdXIgPT0gMCkgJiYgKGN0eHQtPnByb2dyZXNzaXZlKSkpKSB7CisJaHRtbFBhcnNlRXJySW50KGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorCSAgICAgICAgICAgICAgICAiSW52YWxpZCBjaGFyIGluIENEQVRBIDB4JVhcbiIsIGN1cik7CisJTkVYVDsKKyAgICB9CisKKyAgICBpZiAoKG5iY2hhciAhPSAwKSAmJiAoY3R4dC0+c2F4ICE9IE5VTEwpICYmICghY3R4dC0+ZGlzYWJsZVNBWCkpIHsKKwlpZiAoY3R4dC0+c2F4LT5jZGF0YUJsb2NrIT0gTlVMTCkgeworCSAgICAvKgorCSAgICAgKiBJbnNlcnQgYXMgQ0RBVEEsIHdoaWNoIGlzIHRoZSBzYW1lIGFzIEhUTUxfUFJFU0VSVkVfTk9ERQorCSAgICAgKi8KKwkgICAgY3R4dC0+c2F4LT5jZGF0YUJsb2NrKGN0eHQtPnVzZXJEYXRhLCBidWYsIG5iY2hhcik7CisJfSBlbHNlIGlmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkgeworCSAgICBjdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsIGJ1ZiwgbmJjaGFyKTsKKwl9CisgICAgfQorfQorCisKKy8qKgorICogaHRtbFBhcnNlQ2hhckRhdGE6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhIENoYXJEYXRhIHNlY3Rpb24uCisgKiBpZiB3ZSBhcmUgd2l0aGluIGEgQ0RBVEEgc2VjdGlvbiAnXV0+JyBtYXJrcyBhbiBlbmQgb2Ygc2VjdGlvbi4KKyAqCisgKiBbMTRdIENoYXJEYXRhIDo6PSBbXjwmXSogLSAoW148Jl0qICddXT4nIFtePCZdKikKKyAqLworCitzdGF0aWMgdm9pZAoraHRtbFBhcnNlQ2hhckRhdGEoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgYnVmW0hUTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSArIDVdOworICAgIGludCBuYmNoYXIgPSAwOworICAgIGludCBjdXIsIGw7CisgICAgaW50IGNodW5rID0gMDsKKworICAgIFNIUklOSzsKKyAgICBjdXIgPSBDVVJfQ0hBUihsKTsKKyAgICB3aGlsZSAoKChjdXIgIT0gJzwnKSB8fCAoY3R4dC0+dG9rZW4gPT0gJzwnKSkgJiYKKyAgICAgICAgICAgKChjdXIgIT0gJyYnKSB8fCAoY3R4dC0+dG9rZW4gPT0gJyYnKSkgJiYKKwkgICAoY3VyICE9IDApKSB7CisJaWYgKCEoSVNfQ0hBUihjdXIpKSkgeworCSAgICBodG1sUGFyc2VFcnJJbnQoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJICAgICAgICAgICAgICAgICJJbnZhbGlkIGNoYXIgaW4gQ0RBVEEgMHglWFxuIiwgY3VyKTsKKwl9IGVsc2UgeworCSAgICBDT1BZX0JVRihsLGJ1ZixuYmNoYXIsY3VyKTsKKwl9CisJaWYgKG5iY2hhciA+PSBIVE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUpIHsKKwkgICAgLyoKKwkgICAgICogT2sgdGhlIHNlZ21lbnQgaXMgdG8gYmUgY29uc3VtZWQgYXMgY2hhcnMuCisJICAgICAqLworCSAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpKSB7CisJCWlmIChhcmVCbGFua3MoY3R4dCwgYnVmLCBuYmNoYXIpKSB7CisJCSAgICBpZiAoY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlICE9IE5VTEwpCisJCQljdHh0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UoY3R4dC0+dXNlckRhdGEsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBuYmNoYXIpOworCQl9IGVsc2UgeworCQkgICAgaHRtbENoZWNrUGFyYWdyYXBoKGN0eHQpOworCQkgICAgaWYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKQorCQkJY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLCBidWYsIG5iY2hhcik7CisJCX0KKwkgICAgfQorCSAgICBuYmNoYXIgPSAwOworCX0KKwlORVhUTChsKTsKKyAgICAgICAgY2h1bmsrKzsKKyAgICAgICAgaWYgKGNodW5rID4gSFRNTF9QQVJTRVJfQlVGRkVSX1NJWkUpIHsKKyAgICAgICAgICAgIGNodW5rID0gMDsKKyAgICAgICAgICAgIFNIUklOSzsKKyAgICAgICAgICAgIEdST1c7CisgICAgICAgIH0KKwljdXIgPSBDVVJfQ0hBUihsKTsKKwlpZiAoY3VyID09IDApIHsKKwkgICAgU0hSSU5LOworCSAgICBHUk9XOworCSAgICBjdXIgPSBDVVJfQ0hBUihsKTsKKwl9CisgICAgfQorICAgIGlmIChuYmNoYXIgIT0gMCkgeworICAgICAgICBidWZbbmJjaGFyXSA9IDA7CisKKwkvKgorCSAqIE9rIHRoZSBzZWdtZW50IGlzIHRvIGJlIGNvbnN1bWVkIGFzIGNoYXJzLgorCSAqLworCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmICghY3R4dC0+ZGlzYWJsZVNBWCkpIHsKKwkgICAgaWYgKGFyZUJsYW5rcyhjdHh0LCBidWYsIG5iY2hhcikpIHsKKwkJaWYgKGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSAhPSBOVUxMKQorCQkgICAgY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlKGN0eHQtPnVzZXJEYXRhLCBidWYsIG5iY2hhcik7CisJICAgIH0gZWxzZSB7CisJCWh0bWxDaGVja1BhcmFncmFwaChjdHh0KTsKKwkJaWYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKQorCQkgICAgY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLCBidWYsIG5iY2hhcik7CisJICAgIH0KKwl9CisgICAgfSBlbHNlIHsKKwkvKgorCSAqIExvb3AgZGV0ZWN0aW9uCisJICovCisJaWYgKGN1ciA9PSAwKQorCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgfQorfQorCisvKioKKyAqIGh0bWxQYXJzZUV4dGVybmFsSUQ6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBwdWJsaWNJRDogIGEgeG1sQ2hhcioqIHJlY2VpdmluZyBQdWJpZExpdGVyYWwKKyAqCisgKiBQYXJzZSBhbiBFeHRlcm5hbCBJRCBvciBhIFB1YmxpYyBJRAorICoKKyAqIFs3NV0gRXh0ZXJuYWxJRCA6Oj0gJ1NZU1RFTScgUyBTeXN0ZW1MaXRlcmFsCisgKiAgICAgICAgICAgICAgICAgICB8ICdQVUJMSUMnIFMgUHViaWRMaXRlcmFsIFMgU3lzdGVtTGl0ZXJhbAorICoKKyAqIFs4M10gUHVibGljSUQgOjo9ICdQVUJMSUMnIFMgUHViaWRMaXRlcmFsCisgKgorICogUmV0dXJucyB0aGUgZnVuY3Rpb24gcmV0dXJucyBTeXN0ZW1MaXRlcmFsIGFuZCBpbiB0aGUgc2Vjb25kCisgKiAgICAgICAgICAgICAgICBjYXNlIHB1YmxpY0lEIHJlY2VpdmVzIFB1YmlkTGl0ZXJhbCwgaXMgc3RyaWN0IGlzIG9mZgorICogICAgICAgICAgICAgICAgaXQgaXMgcG9zc2libGUgdG8gcmV0dXJuIE5VTEwgYW5kIGhhdmUgcHVibGljSUQgc2V0LgorICovCisKK3N0YXRpYyB4bWxDaGFyICoKK2h0bWxQYXJzZUV4dGVybmFsSUQoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sQ2hhciAqKnB1YmxpY0lEKSB7CisgICAgeG1sQ2hhciAqVVJJID0gTlVMTDsKKworICAgIGlmICgoVVBQRVIgPT0gJ1MnKSAmJiAoVVBQKDEpID09ICdZJykgJiYKKyAgICAgICAgIChVUFAoMikgPT0gJ1MnKSAmJiAoVVBQKDMpID09ICdUJykgJiYKKwkgKFVQUCg0KSA9PSAnRScpICYmIChVUFAoNSkgPT0gJ00nKSkgeworICAgICAgICBTS0lQKDYpOworCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkgICAgICAgICAgICAgICAgICJTcGFjZSByZXF1aXJlZCBhZnRlciAnU1lTVEVNJ1xuIiwgTlVMTCwgTlVMTCk7CisJfQorICAgICAgICBTS0lQX0JMQU5LUzsKKwlVUkkgPSBodG1sUGFyc2VTeXN0ZW1MaXRlcmFsKGN0eHQpOworCWlmIChVUkkgPT0gTlVMTCkgeworCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9VUklfUkVRVUlSRUQsCisJICAgICAgICAgICAgICAgICAiaHRtbFBhcnNlRXh0ZXJuYWxJRDogU1lTVEVNLCBubyBVUklcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmICgoVVBQRVIgPT0gJ1AnKSAmJiAoVVBQKDEpID09ICdVJykgJiYKKwkgICAgICAgKFVQUCgyKSA9PSAnQicpICYmIChVUFAoMykgPT0gJ0wnKSAmJgorCSAgICAgICAoVVBQKDQpID09ICdJJykgJiYgKFVQUCg1KSA9PSAnQycpKSB7CisgICAgICAgIFNLSVAoNik7CisJaWYgKCFJU19CTEFOS19DSChDVVIpKSB7CisJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCSAgICAgICAgICAgICAgICAgIlNwYWNlIHJlcXVpcmVkIGFmdGVyICdQVUJMSUMnXG4iLCBOVUxMLCBOVUxMKTsKKwl9CisgICAgICAgIFNLSVBfQkxBTktTOworCSpwdWJsaWNJRCA9IGh0bWxQYXJzZVB1YmlkTGl0ZXJhbChjdHh0KTsKKwlpZiAoKnB1YmxpY0lEID09IE5VTEwpIHsKKwkgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfUFVCSURfUkVRVUlSRUQsCisJICAgICAgICAgICAgICAgICAiaHRtbFBhcnNlRXh0ZXJuYWxJRDogUFVCTElDLCBubyBQdWJsaWMgSWRlbnRpZmllclxuIiwKKwkJCSBOVUxMLCBOVUxMKTsKKwl9CisgICAgICAgIFNLSVBfQkxBTktTOworICAgICAgICBpZiAoKENVUiA9PSAnIicpIHx8IChDVVIgPT0gJ1wnJykpIHsKKwkgICAgVVJJID0gaHRtbFBhcnNlU3lzdGVtTGl0ZXJhbChjdHh0KTsKKwl9CisgICAgfQorICAgIHJldHVybihVUkkpOworfQorCisvKioKKyAqIHhtbFBhcnNlUEk6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIFhNTCBQcm9jZXNzaW5nIEluc3RydWN0aW9uLgorICoKKyAqIFsxNl0gUEkgOjo9ICc8PycgUElUYXJnZXQgKFMgKENoYXIqIC0gKENoYXIqICc/PicgQ2hhciopKSk/ICc/PicKKyAqLworc3RhdGljIHZvaWQKK2h0bWxQYXJzZVBJKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpidWYgPSBOVUxMOworICAgIGludCBsZW4gPSAwOworICAgIGludCBzaXplID0gSFRNTF9QQVJTRVJfQlVGRkVSX1NJWkU7CisgICAgaW50IGN1ciwgbDsKKyAgICBjb25zdCB4bWxDaGFyICp0YXJnZXQ7CisgICAgeG1sUGFyc2VySW5wdXRTdGF0ZSBzdGF0ZTsKKyAgICBpbnQgY291bnQgPSAwOworCisgICAgaWYgKChSQVcgPT0gJzwnKSAmJiAoTlhUKDEpID09ICc/JykpIHsKKwlzdGF0ZSA9IGN0eHQtPmluc3RhdGU7CisgICAgICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1BJOworCS8qCisJICogdGhpcyBpcyBhIFByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb24uCisJICovCisJU0tJUCgyKTsKKwlTSFJJTks7CisKKwkvKgorCSAqIFBhcnNlIHRoZSB0YXJnZXQgbmFtZSBhbmQgY2hlY2sgZm9yIHNwZWNpYWwgc3VwcG9ydCBsaWtlCisJICogbmFtZXNwYWNlLgorCSAqLworICAgICAgICB0YXJnZXQgPSBodG1sUGFyc2VOYW1lKGN0eHQpOworCWlmICh0YXJnZXQgIT0gTlVMTCkgeworCSAgICBpZiAoUkFXID09ICc+JykgeworCQlTS0lQKDEpOworCisJCS8qCisJCSAqIFNBWDogUEkgZGV0ZWN0ZWQuCisJCSAqLworCQlpZiAoKGN0eHQtPnNheCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJgorCQkgICAgKGN0eHQtPnNheC0+cHJvY2Vzc2luZ0luc3RydWN0aW9uICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY3R4dC0+dXNlckRhdGEsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIE5VTEwpOworCQljdHh0LT5pbnN0YXRlID0gc3RhdGU7CisJCXJldHVybjsKKwkgICAgfQorCSAgICBidWYgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisJICAgIGlmIChidWYgPT0gTlVMTCkgeworCQlodG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCQljdHh0LT5pbnN0YXRlID0gc3RhdGU7CisJCXJldHVybjsKKwkgICAgfQorCSAgICBjdXIgPSBDVVI7CisJICAgIGlmICghSVNfQkxBTksoY3VyKSkgeworCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJCSAgIlBhcnNlUEk6IFBJICVzIHNwYWNlIGV4cGVjdGVkXG4iLCB0YXJnZXQsIE5VTEwpOworCSAgICB9CisgICAgICAgICAgICBTS0lQX0JMQU5LUzsKKwkgICAgY3VyID0gQ1VSX0NIQVIobCk7CisJICAgIHdoaWxlIChJU19DSEFSKGN1cikgJiYgKGN1ciAhPSAnPicpKSB7CisJCWlmIChsZW4gKyA1ID49IHNpemUpIHsKKwkJICAgIHhtbENoYXIgKnRtcDsKKworCQkgICAgc2l6ZSAqPSAyOworCQkgICAgdG1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhidWYsIHNpemUgKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCQlodG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCQkJeG1sRnJlZShidWYpOworCQkJY3R4dC0+aW5zdGF0ZSA9IHN0YXRlOworCQkJcmV0dXJuOworCQkgICAgfQorCQkgICAgYnVmID0gdG1wOworCQl9CisJCWNvdW50Kys7CisJCWlmIChjb3VudCA+IDUwKSB7CisJCSAgICBHUk9XOworCQkgICAgY291bnQgPSAwOworCQl9CisJCUNPUFlfQlVGKGwsYnVmLGxlbixjdXIpOworCQlORVhUTChsKTsKKwkJY3VyID0gQ1VSX0NIQVIobCk7CisJCWlmIChjdXIgPT0gMCkgeworCQkgICAgU0hSSU5LOworCQkgICAgR1JPVzsKKwkJICAgIGN1ciA9IENVUl9DSEFSKGwpOworCQl9CisJICAgIH0KKwkgICAgYnVmW2xlbl0gPSAwOworCSAgICBpZiAoY3VyICE9ICc+JykgeworCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9QSV9OT1RfRklOSVNIRUQsCisJCSAgICAgICJQYXJzZVBJOiBQSSAlcyBuZXZlciBlbmQgLi4uXG4iLCB0YXJnZXQsIE5VTEwpOworCSAgICB9IGVsc2UgeworCQlTS0lQKDEpOworCisJCS8qCisJCSAqIFNBWDogUEkgZGV0ZWN0ZWQuCisJCSAqLworCQlpZiAoKGN0eHQtPnNheCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJgorCQkgICAgKGN0eHQtPnNheC0+cHJvY2Vzc2luZ0luc3RydWN0aW9uICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY3R4dC0+dXNlckRhdGEsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIGJ1Zik7CisJICAgIH0KKwkgICAgeG1sRnJlZShidWYpOworCX0gZWxzZSB7CisJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX1BJX05PVF9TVEFSVEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICJQSSBpcyBub3Qgc3RhcnRlZCBjb3JyZWN0bHkiLCBOVUxMLCBOVUxMKTsKKwl9CisJY3R4dC0+aW5zdGF0ZSA9IHN0YXRlOworICAgIH0KK30KKworLyoqCisgKiBodG1sUGFyc2VDb21tZW50OgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYW4gWE1MIChTR01MKSBjb21tZW50IDwhLS0gLi4uLiAtLT4KKyAqCisgKiBbMTVdIENvbW1lbnQgOjo9ICc8IS0tJyAoKENoYXIgLSAnLScpIHwgKCctJyAoQ2hhciAtICctJykpKSogJy0tPicKKyAqLworc3RhdGljIHZvaWQKK2h0bWxQYXJzZUNvbW1lbnQoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgKmJ1ZiA9IE5VTEw7CisgICAgaW50IGxlbjsKKyAgICBpbnQgc2l6ZSA9IEhUTUxfUEFSU0VSX0JVRkZFUl9TSVpFOworICAgIGludCBxLCBxbDsKKyAgICBpbnQgciwgcmw7CisgICAgaW50IGN1ciwgbDsKKyAgICB4bWxQYXJzZXJJbnB1dFN0YXRlIHN0YXRlOworCisgICAgLyoKKyAgICAgKiBDaGVjayB0aGF0IHRoZXJlIGlzIGEgY29tbWVudCByaWdodCBoZXJlLgorICAgICAqLworICAgIGlmICgoUkFXICE9ICc8JykgfHwgKE5YVCgxKSAhPSAnIScpIHx8CisgICAgICAgIChOWFQoMikgIT0gJy0nKSB8fCAoTlhUKDMpICE9ICctJykpIHJldHVybjsKKworICAgIHN0YXRlID0gY3R4dC0+aW5zdGF0ZTsKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT01NRU5UOworICAgIFNIUklOSzsKKyAgICBTS0lQKDQpOworICAgIGJ1ZiA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyAgICAgICAgaHRtbEVyck1lbW9yeShjdHh0LCAiYnVmZmVyIGFsbG9jYXRpb24gZmFpbGVkXG4iKTsKKwljdHh0LT5pbnN0YXRlID0gc3RhdGU7CisJcmV0dXJuOworICAgIH0KKyAgICBxID0gQ1VSX0NIQVIocWwpOworICAgIE5FWFRMKHFsKTsKKyAgICByID0gQ1VSX0NIQVIocmwpOworICAgIE5FWFRMKHJsKTsKKyAgICBjdXIgPSBDVVJfQ0hBUihsKTsKKyAgICBsZW4gPSAwOworICAgIHdoaWxlIChJU19DSEFSKGN1cikgJiYKKyAgICAgICAgICAgKChjdXIgIT0gJz4nKSB8fAorCSAgICAociAhPSAnLScpIHx8IChxICE9ICctJykpKSB7CisJaWYgKGxlbiArIDUgPj0gc2l6ZSkgeworCSAgICB4bWxDaGFyICp0bXA7CisKKwkgICAgc2l6ZSAqPSAyOworCSAgICB0bXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1Ziwgc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisJICAgIGlmICh0bXAgPT0gTlVMTCkgeworCSAgICAgICAgeG1sRnJlZShidWYpOworCSAgICAgICAgaHRtbEVyck1lbW9yeShjdHh0LCAiZ3Jvd2luZyBidWZmZXIgZmFpbGVkXG4iKTsKKwkJY3R4dC0+aW5zdGF0ZSA9IHN0YXRlOworCQlyZXR1cm47CisJICAgIH0KKwkgICAgYnVmID0gdG1wOworCX0KKwlDT1BZX0JVRihxbCxidWYsbGVuLHEpOworCXEgPSByOworCXFsID0gcmw7CisJciA9IGN1cjsKKwlybCA9IGw7CisJTkVYVEwobCk7CisJY3VyID0gQ1VSX0NIQVIobCk7CisJaWYgKGN1ciA9PSAwKSB7CisJICAgIFNIUklOSzsKKwkgICAgR1JPVzsKKwkgICAgY3VyID0gQ1VSX0NIQVIobCk7CisJfQorICAgIH0KKyAgICBidWZbbGVuXSA9IDA7CisgICAgaWYgKCFJU19DSEFSKGN1cikpIHsKKwlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9DT01NRU5UX05PVF9GSU5JU0hFRCwKKwkgICAgICAgICAgICAgIkNvbW1lbnQgbm90IHRlcm1pbmF0ZWQgXG48IS0tJS41MHNcbiIsIGJ1ZiwgTlVMTCk7CisJeG1sRnJlZShidWYpOworICAgIH0gZWxzZSB7CisgICAgICAgIE5FWFQ7CisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+Y29tbWVudCAhPSBOVUxMKSAmJgorCSAgICAoIWN0eHQtPmRpc2FibGVTQVgpKQorCSAgICBjdHh0LT5zYXgtPmNvbW1lbnQoY3R4dC0+dXNlckRhdGEsIGJ1Zik7CisJeG1sRnJlZShidWYpOworICAgIH0KKyAgICBjdHh0LT5pbnN0YXRlID0gc3RhdGU7Cit9CisKKy8qKgorICogaHRtbFBhcnNlQ2hhclJlZjoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIFJlZmVyZW5jZSBkZWNsYXJhdGlvbnMKKyAqCisgKiBbNjZdIENoYXJSZWYgOjo9ICcmIycgWzAtOV0rICc7JyB8CisgKiAgICAgICAgICAgICAgICAgICcmI3gnIFswLTlhLWZBLUZdKyAnOycKKyAqCisgKiBSZXR1cm5zIHRoZSB2YWx1ZSBwYXJzZWQgKGFzIGFuIGludCkKKyAqLworaW50CitodG1sUGFyc2VDaGFyUmVmKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgdmFsID0gMDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXQgPT0gTlVMTCkpIHsKKwlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICAgICAiaHRtbFBhcnNlQ2hhclJlZjogY29udGV4dCBlcnJvclxuIiwKKwkJICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKyAgICBpZiAoKENVUiA9PSAnJicpICYmIChOWFQoMSkgPT0gJyMnKSAmJgorICAgICAgICAoKE5YVCgyKSA9PSAneCcpIHx8IE5YVCgyKSA9PSAnWCcpKSB7CisJU0tJUCgzKTsKKwl3aGlsZSAoQ1VSICE9ICc7JykgeworCSAgICBpZiAoKENVUiA+PSAnMCcpICYmIChDVVIgPD0gJzknKSkKKwkgICAgICAgIHZhbCA9IHZhbCAqIDE2ICsgKENVUiAtICcwJyk7CisJICAgIGVsc2UgaWYgKChDVVIgPj0gJ2EnKSAmJiAoQ1VSIDw9ICdmJykpCisJICAgICAgICB2YWwgPSB2YWwgKiAxNiArIChDVVIgLSAnYScpICsgMTA7CisJICAgIGVsc2UgaWYgKChDVVIgPj0gJ0EnKSAmJiAoQ1VSIDw9ICdGJykpCisJICAgICAgICB2YWwgPSB2YWwgKiAxNiArIChDVVIgLSAnQScpICsgMTA7CisJICAgIGVsc2UgeworCSAgICAgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9IRVhfQ0hBUlJFRiwKKwkJICAgICAgICAgICAgICJodG1sUGFyc2VDaGFyUmVmOiBtaXNzaW5nIHNlbWljb2x1bW5cbiIsCisJCQkgICAgIE5VTEwsIE5VTEwpOworCQlicmVhazsKKwkgICAgfQorCSAgICBORVhUOworCX0KKwlpZiAoQ1VSID09ICc7JykKKwkgICAgTkVYVDsKKyAgICB9IGVsc2UgaWYgICgoQ1VSID09ICcmJykgJiYgKE5YVCgxKSA9PSAnIycpKSB7CisJU0tJUCgyKTsKKwl3aGlsZSAoQ1VSICE9ICc7JykgeworCSAgICBpZiAoKENVUiA+PSAnMCcpICYmIChDVVIgPD0gJzknKSkKKwkgICAgICAgIHZhbCA9IHZhbCAqIDEwICsgKENVUiAtICcwJyk7CisJICAgIGVsc2UgeworCSAgICAgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiwKKwkJICAgICAgICAgICAgICJodG1sUGFyc2VDaGFyUmVmOiBtaXNzaW5nIHNlbWljb2x1bW5cbiIsCisJCQkgICAgIE5VTEwsIE5VTEwpOworCQlicmVhazsKKwkgICAgfQorCSAgICBORVhUOworCX0KKwlpZiAoQ1VSID09ICc7JykKKwkgICAgTkVYVDsKKyAgICB9IGVsc2UgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUlJFRiwKKwkgICAgICAgICAgICAgImh0bWxQYXJzZUNoYXJSZWY6IGludmFsaWQgdmFsdWVcbiIsIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICAqIENoZWNrIHRoZSB2YWx1ZSBJU19DSEFSIC4uLgorICAgICAqLworICAgIGlmIChJU19DSEFSKHZhbCkpIHsKKyAgICAgICAgcmV0dXJuKHZhbCk7CisgICAgfSBlbHNlIHsKKwlodG1sUGFyc2VFcnJJbnQoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJCQkiaHRtbFBhcnNlQ2hhclJlZjogaW52YWxpZCB4bWxDaGFyIHZhbHVlICVkXG4iLAorCQkJdmFsKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisKKy8qKgorICogaHRtbFBhcnNlRG9jVHlwZURlY2w6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhIERPQ1RZUEUgZGVjbGFyYXRpb24KKyAqCisgKiBbMjhdIGRvY3R5cGVkZWNsIDo6PSAnPCFET0NUWVBFJyBTIE5hbWUgKFMgRXh0ZXJuYWxJRCk/IFM/CisgKiAgICAgICAgICAgICAgICAgICAgICAoJ1snIChtYXJrdXBkZWNsIHwgUEVSZWZlcmVuY2UgfCBTKSogJ10nIFM/KT8gJz4nCisgKi8KKworc3RhdGljIHZvaWQKK2h0bWxQYXJzZURvY1R5cGVEZWNsKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKkV4dGVybmFsSUQgPSBOVUxMOworICAgIHhtbENoYXIgKlVSSSA9IE5VTEw7CisKKyAgICAvKgorICAgICAqIFdlIGtub3cgdGhhdCAnPCFET0NUWVBFJyBoYXMgYmVlbiBkZXRlY3RlZC4KKyAgICAgKi8KKyAgICBTS0lQKDkpOworCisgICAgU0tJUF9CTEFOS1M7CisKKyAgICAvKgorICAgICAqIFBhcnNlIHRoZSBET0NUWVBFIG5hbWUuCisgICAgICovCisgICAgbmFtZSA9IGh0bWxQYXJzZU5hbWUoY3R4dCk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisJICAgICAgICAgICAgICJodG1sUGFyc2VEb2NUeXBlRGVjbCA6IG5vIERPQ1RZUEUgbmFtZSAhXG4iLAorCQkgICAgIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICAqIENoZWNrIHRoYXQgdXBwZXIobmFtZSkgPT0gIkhUTUwiICEhISEhISEhISEhISEKKyAgICAgKi8KKworICAgIFNLSVBfQkxBTktTOworCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgU3lzdGVtSUQgYW5kIEV4dGVybmFsSUQKKyAgICAgKi8KKyAgICBVUkkgPSBodG1sUGFyc2VFeHRlcm5hbElEKGN0eHQsICZFeHRlcm5hbElEKTsKKyAgICBTS0lQX0JMQU5LUzsKKworICAgIC8qCisgICAgICogV2Ugc2hvdWxkIGJlIGF0IHRoZSBlbmQgb2YgdGhlIERPQ1RZUEUgZGVjbGFyYXRpb24uCisgICAgICovCisgICAgaWYgKENVUiAhPSAnPicpIHsKKwlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9ET0NUWVBFX05PVF9GSU5JU0hFRCwKKwkgICAgICAgICAgICAgIkRPQ1RZUEUgaW1wcm9wZXJseSB0ZXJtaW5hdGVkXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgLyogV2Ugc2hvdWxkbid0IHRyeSB0byByZXN5bmNocm9uaXplIC4uLiAqLworICAgIH0KKyAgICBORVhUOworCisgICAgLyoKKyAgICAgKiBDcmVhdGUgb3IgdXBkYXRlIHRoZSBkb2N1bWVudCBhY2NvcmRpbmdseSB0byB0aGUgRE9DVFlQRQorICAgICAqLworICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmludGVybmFsU3Vic2V0ICE9IE5VTEwpICYmCisJKCFjdHh0LT5kaXNhYmxlU0FYKSkKKwljdHh0LT5zYXgtPmludGVybmFsU3Vic2V0KGN0eHQtPnVzZXJEYXRhLCBuYW1lLCBFeHRlcm5hbElELCBVUkkpOworCisgICAgLyoKKyAgICAgKiBDbGVhbnVwLCBzaW5jZSB3ZSBkb24ndCB1c2UgYWxsIHRob3NlIGlkZW50aWZpZXJzCisgICAgICovCisgICAgaWYgKFVSSSAhPSBOVUxMKSB4bWxGcmVlKFVSSSk7CisgICAgaWYgKEV4dGVybmFsSUQgIT0gTlVMTCkgeG1sRnJlZShFeHRlcm5hbElEKTsKK30KKworLyoqCisgKiBodG1sUGFyc2VBdHRyaWJ1dGU6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEB2YWx1ZTogIGEgeG1sQ2hhciAqKiB1c2VkIHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlCisgKgorICogcGFyc2UgYW4gYXR0cmlidXRlCisgKgorICogWzQxXSBBdHRyaWJ1dGUgOjo9IE5hbWUgRXEgQXR0VmFsdWUKKyAqCisgKiBbMjVdIEVxIDo6PSBTPyAnPScgUz8KKyAqCisgKiBXaXRoIG5hbWVzcGFjZToKKyAqCisgKiBbTlMgMTFdIEF0dHJpYnV0ZSA6Oj0gUU5hbWUgRXEgQXR0VmFsdWUKKyAqCisgKiBBbHNvIHRoZSBjYXNlIFFOYW1lID09IHhtbG5zOj8/PyBpcyBoYW5kbGVkIGluZGVwZW5kZW50bHkgYXMgYSBuYW1lc3BhY2UKKyAqIGRlZmluaXRpb24uCisgKgorICogUmV0dXJucyB0aGUgYXR0cmlidXRlIG5hbWUsIGFuZCB0aGUgdmFsdWUgaW4gKnZhbHVlLgorICovCisKK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK2h0bWxQYXJzZUF0dHJpYnV0ZShodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxDaGFyICoqdmFsdWUpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKnZhbCA9IE5VTEw7CisKKyAgICAqdmFsdWUgPSBOVUxMOworICAgIG5hbWUgPSBodG1sUGFyc2VIVE1MTmFtZShjdHh0KTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkgICAgICAgICAgICAgImVycm9yIHBhcnNpbmcgYXR0cmlidXRlIG5hbWVcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiByZWFkIHRoZSB2YWx1ZQorICAgICAqLworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgPT0gJz0nKSB7CisgICAgICAgIE5FWFQ7CisJU0tJUF9CTEFOS1M7CisJdmFsID0gaHRtbFBhcnNlQXR0VmFsdWUoY3R4dCk7CisgICAgfQorCisgICAgKnZhbHVlID0gdmFsOworICAgIHJldHVybihuYW1lKTsKK30KKworLyoqCisgKiBodG1sQ2hlY2tFbmNvZGluZzoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQGF0dHZhbHVlOiB0aGUgYXR0cmlidXRlIHZhbHVlCisgKgorICogQ2hlY2tzIGFuIGh0dHAtZXF1aXYgYXR0cmlidXRlIGZyb20gYSBNZXRhIHRhZyB0byBkZXRlY3QKKyAqIHRoZSBlbmNvZGluZworICogSWYgYSBuZXcgZW5jb2RpbmcgaXMgZGV0ZWN0ZWQgdGhlIHBhcnNlciBpcyBzd2l0Y2hlZCB0byBkZWNvZGUKKyAqIGl0IGFuZCBwYXNzIFVURjgKKyAqLworc3RhdGljIHZvaWQKK2h0bWxDaGVja0VuY29kaW5nKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKmF0dHZhbHVlKSB7CisgICAgY29uc3QgeG1sQ2hhciAqZW5jb2Rpbmc7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGF0dHZhbHVlID09IE5VTEwpKQorCXJldHVybjsKKworICAgIC8qIGRvIG5vdCBjaGFuZ2UgZW5jb2RpbmcgKi8KKyAgICBpZiAoY3R4dC0+aW5wdXQtPmVuY29kaW5nICE9IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIGVuY29kaW5nID0geG1sU3RyY2FzZXN0cihhdHR2YWx1ZSwgQkFEX0NBU1QiY2hhcnNldD0iKTsKKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworCWVuY29kaW5nICs9IDg7CisgICAgfSBlbHNlIHsKKwllbmNvZGluZyA9IHhtbFN0cmNhc2VzdHIoYXR0dmFsdWUsIEJBRF9DQVNUImNoYXJzZXQgPSIpOworCWlmIChlbmNvZGluZyAhPSBOVUxMKQorCSAgICBlbmNvZGluZyArPSA5OworICAgIH0KKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworCXhtbENoYXJFbmNvZGluZyBlbmM7CisJeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyOworCisJd2hpbGUgKCgqZW5jb2RpbmcgPT0gJyAnKSB8fCAoKmVuY29kaW5nID09ICdcdCcpKSBlbmNvZGluZysrOworCisJaWYgKGN0eHQtPmlucHV0LT5lbmNvZGluZyAhPSBOVUxMKQorCSAgICB4bWxGcmVlKCh4bWxDaGFyICopIGN0eHQtPmlucHV0LT5lbmNvZGluZyk7CisJY3R4dC0+aW5wdXQtPmVuY29kaW5nID0geG1sU3RyZHVwKGVuY29kaW5nKTsKKworCWVuYyA9IHhtbFBhcnNlQ2hhckVuY29kaW5nKChjb25zdCBjaGFyICopIGVuY29kaW5nKTsKKwkvKgorCSAqIHJlZ2lzdGVyZWQgc2V0IG9mIGtub3duIGVuY29kaW5ncworCSAqLworCWlmIChlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfRVJST1IpIHsKKwkgICAgaWYgKCgoZW5jID09IFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEUpIHx8CisJICAgICAgICAgKGVuYyA9PSBYTUxfQ0hBUl9FTkNPRElOR19VVEYxNkJFKSB8fAorCQkgKGVuYyA9PSBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0TEUpIHx8CisJCSAoZW5jID09IFhNTF9DSEFSX0VOQ09ESU5HX1VDUzRCRSkpICYmCisJCShjdHh0LT5pbnB1dC0+YnVmICE9IE5VTEwpICYmCisJCShjdHh0LT5pbnB1dC0+YnVmLT5lbmNvZGVyID09IE5VTEwpKSB7CisJCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkcsCisJCSAgICAgICAgICAgICAiaHRtbENoZWNrRW5jb2Rpbmc6IHdyb25nIGVuY29kaW5nIG1ldGFcbiIsCisJCQkgICAgIE5VTEwsIE5VTEwpOworCSAgICB9IGVsc2UgeworCQl4bWxTd2l0Y2hFbmNvZGluZyhjdHh0LCBlbmMpOworCSAgICB9CisJICAgIGN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4OworCX0gZWxzZSB7CisJICAgIC8qCisJICAgICAqIGZhbGxiYWNrIGZvciB1bmtub3duIGVuY29kaW5ncworCSAgICAgKi8KKwkgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKChjb25zdCBjaGFyICopIGVuY29kaW5nKTsKKwkgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgeworCQl4bWxTd2l0Y2hUb0VuY29kaW5nKGN0eHQsIGhhbmRsZXIpOworCQljdHh0LT5jaGFyc2V0ID0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGODsKKwkgICAgfSBlbHNlIHsKKwkJY3R4dC0+ZXJyTm8gPSBYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HOworCSAgICB9CisJfQorCisJaWYgKChjdHh0LT5pbnB1dC0+YnVmICE9IE5VTEwpICYmCisJICAgIChjdHh0LT5pbnB1dC0+YnVmLT5lbmNvZGVyICE9IE5VTEwpICYmCisJICAgIChjdHh0LT5pbnB1dC0+YnVmLT5yYXcgIT0gTlVMTCkgJiYKKwkgICAgKGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlciAhPSBOVUxMKSkgeworCSAgICBpbnQgbmJjaGFyczsKKwkgICAgaW50IHByb2Nlc3NlZDsKKworCSAgICAvKgorCSAgICAgKiBjb252ZXJ0IGFzIG11Y2ggYXMgcG9zc2libGUgdG8gdGhlIHBhcnNlciByZWFkaW5nIGJ1ZmZlci4KKwkgICAgICovCisJICAgIHByb2Nlc3NlZCA9IGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZTsKKwkgICAgeG1sQnVmZmVyU2hyaW5rKGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlciwgcHJvY2Vzc2VkKTsKKwkgICAgbmJjaGFycyA9IHhtbENoYXJFbmNJbkZ1bmMoY3R4dC0+aW5wdXQtPmJ1Zi0+ZW5jb2RlciwKKwkJICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXIsCisJCQkJICAgICAgIGN0eHQtPmlucHV0LT5idWYtPnJhdyk7CisJICAgIGlmIChuYmNoYXJzIDwgMCkgeworCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0VOQ09ESU5HLAorCQkgICAgICAgICAgICAgImh0bWxDaGVja0VuY29kaW5nOiBlbmNvZGVyIGVycm9yXG4iLAorCQkJICAgICBOVUxMLCBOVUxMKTsKKwkgICAgfQorCSAgICBjdHh0LT5pbnB1dC0+YmFzZSA9CisJICAgIGN0eHQtPmlucHV0LT5jdXIgPSBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgICAgICAgICBjdHh0LT5pbnB1dC0+ZW5kID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eHQtPmlucHV0LT5iYXNlW2N0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+dXNlXTsKKwl9CisgICAgfQorfQorCisvKioKKyAqIGh0bWxDaGVja01ldGE6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBhdHRzOiAgdGhlIGF0dHJpYnV0ZXMgdmFsdWVzCisgKgorICogQ2hlY2tzIGFuIGF0dHJpYnV0ZXMgZnJvbSBhIE1ldGEgdGFnCisgKi8KK3N0YXRpYyB2b2lkCitodG1sQ2hlY2tNZXRhKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKiphdHRzKSB7CisgICAgaW50IGk7CisgICAgY29uc3QgeG1sQ2hhciAqYXR0LCAqdmFsdWU7CisgICAgaW50IGh0dHAgPSAwOworICAgIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQgPSBOVUxMOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChhdHRzID09IE5VTEwpKQorCXJldHVybjsKKworICAgIGkgPSAwOworICAgIGF0dCA9IGF0dHNbaSsrXTsKKyAgICB3aGlsZSAoYXR0ICE9IE5VTEwpIHsKKwl2YWx1ZSA9IGF0dHNbaSsrXTsKKwlpZiAoKHZhbHVlICE9IE5VTEwpICYmICgheG1sU3RyY2FzZWNtcChhdHQsIEJBRF9DQVNUImh0dHAtZXF1aXYiKSkKKwkgJiYgKCF4bWxTdHJjYXNlY21wKHZhbHVlLCBCQURfQ0FTVCJDb250ZW50LVR5cGUiKSkpCisJICAgIGh0dHAgPSAxOworCWVsc2UgaWYgKCh2YWx1ZSAhPSBOVUxMKSAmJiAoIXhtbFN0cmNhc2VjbXAoYXR0LCBCQURfQ0FTVCJjb250ZW50IikpKQorCSAgICBjb250ZW50ID0gdmFsdWU7CisJYXR0ID0gYXR0c1tpKytdOworICAgIH0KKyAgICBpZiAoKGh0dHApICYmIChjb250ZW50ICE9IE5VTEwpKQorCWh0bWxDaGVja0VuY29kaW5nKGN0eHQsIGNvbnRlbnQpOworCit9CisKKy8qKgorICogaHRtbFBhcnNlU3RhcnRUYWc6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhIHN0YXJ0IG9mIHRhZyBlaXRoZXIgZm9yIHJ1bGUgZWxlbWVudCBvcgorICogRW1wdHlFbGVtZW50LiBJbiBib3RoIGNhc2Ugd2UgZG9uJ3QgcGFyc2UgdGhlIHRhZyBjbG9zaW5nIGNoYXJzLgorICoKKyAqIFs0MF0gU1RhZyA6Oj0gJzwnIE5hbWUgKFMgQXR0cmlidXRlKSogUz8gJz4nCisgKgorICogWzQ0XSBFbXB0eUVsZW1UYWcgOjo9ICc8JyBOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICcvPicKKyAqCisgKiBXaXRoIG5hbWVzcGFjZToKKyAqCisgKiBbTlMgOF0gU1RhZyA6Oj0gJzwnIFFOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICc+JworICoKKyAqIFtOUyAxMF0gRW1wdHlFbGVtZW50IDo6PSAnPCcgUU5hbWUgKFMgQXR0cmlidXRlKSogUz8gJy8+JworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IgYW5kIDEgaWYgZGlzY2FyZGVkCisgKi8KKworc3RhdGljIGludAoraHRtbFBhcnNlU3RhcnRUYWcoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgY29uc3QgeG1sQ2hhciAqYXR0bmFtZTsKKyAgICB4bWxDaGFyICphdHR2YWx1ZTsKKyAgICBjb25zdCB4bWxDaGFyICoqYXR0czsKKyAgICBpbnQgbmJhdHRzID0gMDsKKyAgICBpbnQgbWF4YXR0czsKKyAgICBpbnQgbWV0YSA9IDA7CisgICAgaW50IGk7CisgICAgaW50IGRpc2NhcmR0YWcgPSAwOworCisgICAgaWYgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5pbnB1dCA9PSBOVUxMKSkgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAgICJodG1sUGFyc2VTdGFydFRhZzogY29udGV4dCBlcnJvclxuIiwgTlVMTCwgTlVMTCk7CisJcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoQ1VSICE9ICc8JykgcmV0dXJuIC0xOworICAgIE5FWFQ7CisKKyAgICBhdHRzID0gY3R4dC0+YXR0czsKKyAgICBtYXhhdHRzID0gY3R4dC0+bWF4YXR0czsKKworICAgIEdST1c7CisgICAgbmFtZSA9IGh0bWxQYXJzZUhUTUxOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9OQU1FX1JFUVVJUkVELAorCSAgICAgICAgICAgICAiaHRtbFBhcnNlU3RhcnRUYWc6IGludmFsaWQgZWxlbWVudCBuYW1lXG4iLAorCQkgICAgIE5VTEwsIE5VTEwpOworCS8qIER1bXAgdGhlIGJvZ3VzIHRhZyBsaWtlIGJyb3dzZXJzIGRvICovCisJd2hpbGUgKChJU19DSEFSX0NIKENVUikpICYmIChDVVIgIT0gJz4nKSAmJgorICAgICAgICAgICAgICAgKGN0eHQtPmluc3RhdGUgIT0gWE1MX1BBUlNFUl9FT0YpKQorCSAgICBORVhUOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCJtZXRhIikpCisJbWV0YSA9IDE7CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciBhdXRvLWNsb3N1cmUgb2YgSFRNTCBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBodG1sQXV0b0Nsb3NlKGN0eHQsIG5hbWUpOworCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgaW1wbGllZCBIVE1MIGVsZW1lbnRzLgorICAgICAqLworICAgIGh0bWxDaGVja0ltcGxpZWQoY3R4dCwgbmFtZSk7CisKKyAgICAvKgorICAgICAqIEF2b2lkIGh0bWwgYXQgYW55IGxldmVsID4gMCwgaGVhZCBhdCBhbnkgbGV2ZWwgIT0gMQorICAgICAqIG9yIGFueSBhdHRlbXB0IHRvIHJlY3Vyc2UgYm9keQorICAgICAqLworICAgIGlmICgoY3R4dC0+bmFtZU5yID4gMCkgJiYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUImh0bWwiKSkpIHsKKwlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0hUTUxfU1RSVUNVUkVfRVJST1IsCisJICAgICAgICAgICAgICJodG1sUGFyc2VTdGFydFRhZzogbWlzcGxhY2VkIDxodG1sPiB0YWdcbiIsCisJCSAgICAgbmFtZSwgTlVMTCk7CisJZGlzY2FyZHRhZyA9IDE7CisJY3R4dC0+ZGVwdGgrKzsKKyAgICB9CisgICAgaWYgKChjdHh0LT5uYW1lTnIgIT0gMSkgJiYKKwkoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QiaGVhZCIpKSkgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfSFRNTF9TVFJVQ1VSRV9FUlJPUiwKKwkgICAgICAgICAgICAgImh0bWxQYXJzZVN0YXJ0VGFnOiBtaXNwbGFjZWQgPGhlYWQ+IHRhZ1xuIiwKKwkJICAgICBuYW1lLCBOVUxMKTsKKwlkaXNjYXJkdGFnID0gMTsKKwljdHh0LT5kZXB0aCsrOworICAgIH0KKyAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QiYm9keSIpKSB7CisJaW50IGluZHg7CisJZm9yIChpbmR4ID0gMDtpbmR4IDwgY3R4dC0+bmFtZU5yO2luZHgrKykgeworCSAgICBpZiAoeG1sU3RyRXF1YWwoY3R4dC0+bmFtZVRhYltpbmR4XSwgQkFEX0NBU1QiYm9keSIpKSB7CisJCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfSFRNTF9TVFJVQ1VSRV9FUlJPUiwKKwkJICAgICAgICAgICAgICJodG1sUGFyc2VTdGFydFRhZzogbWlzcGxhY2VkIDxib2R5PiB0YWdcbiIsCisJCQkgICAgIG5hbWUsIE5VTEwpOworCQlkaXNjYXJkdGFnID0gMTsKKwkJY3R4dC0+ZGVwdGgrKzsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5vdyBwYXJzZSB0aGUgYXR0cmlidXRlcywgaXQgZW5kcyB1cCB3aXRoIHRoZSBlbmRpbmcKKyAgICAgKgorICAgICAqIChTIEF0dHJpYnV0ZSkqIFM/CisgICAgICovCisgICAgU0tJUF9CTEFOS1M7CisgICAgd2hpbGUgKChJU19DSEFSX0NIKENVUikpICYmCisgICAgICAgICAgIChDVVIgIT0gJz4nKSAmJgorCSAgICgoQ1VSICE9ICcvJykgfHwgKE5YVCgxKSAhPSAnPicpKSkgeworCWxvbmcgY29ucyA9IGN0eHQtPm5iQ2hhcnM7CisKKwlHUk9XOworCWF0dG5hbWUgPSBodG1sUGFyc2VBdHRyaWJ1dGUoY3R4dCwgJmF0dHZhbHVlKTsKKyAgICAgICAgaWYgKGF0dG5hbWUgIT0gTlVMTCkgeworCisJICAgIC8qCisJICAgICAqIFdlbGwgZm9ybWVkbmVzcyByZXF1aXJlcyBhdCBtb3N0IG9uZSBkZWNsYXJhdGlvbiBvZiBhbiBhdHRyaWJ1dGUKKwkgICAgICovCisJICAgIGZvciAoaSA9IDA7IGkgPCBuYmF0dHM7aSArPSAyKSB7CisJICAgICAgICBpZiAoeG1sU3RyRXF1YWwoYXR0c1tpXSwgYXR0bmFtZSkpIHsKKwkJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0FUVFJJQlVURV9SRURFRklORUQsCisJCSAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZSAlcyByZWRlZmluZWRcbiIsIGF0dG5hbWUsIE5VTEwpOworCQkgICAgaWYgKGF0dHZhbHVlICE9IE5VTEwpCisJCQl4bWxGcmVlKGF0dHZhbHVlKTsKKwkJICAgIGdvdG8gZmFpbGVkOworCQl9CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBBZGQgdGhlIHBhaXIgdG8gYXR0cworCSAgICAgKi8KKwkgICAgaWYgKGF0dHMgPT0gTlVMTCkgeworCSAgICAgICAgbWF4YXR0cyA9IDIyOyAvKiBhbGxvdyBmb3IgMTAgYXR0cnMgYnkgZGVmYXVsdCAqLworCSAgICAgICAgYXR0cyA9IChjb25zdCB4bWxDaGFyICoqKQorCQkgICAgICAgeG1sTWFsbG9jKG1heGF0dHMgKiBzaXplb2YoeG1sQ2hhciAqKSk7CisJCWlmIChhdHRzID09IE5VTEwpIHsKKwkJICAgIGh0bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCSAgICBpZiAoYXR0dmFsdWUgIT0gTlVMTCkKKwkJCXhtbEZyZWUoYXR0dmFsdWUpOworCQkgICAgZ290byBmYWlsZWQ7CisJCX0KKwkJY3R4dC0+YXR0cyA9IGF0dHM7CisJCWN0eHQtPm1heGF0dHMgPSBtYXhhdHRzOworCSAgICB9IGVsc2UgaWYgKG5iYXR0cyArIDQgPiBtYXhhdHRzKSB7CisJICAgICAgICBjb25zdCB4bWxDaGFyICoqbjsKKworCSAgICAgICAgbWF4YXR0cyAqPSAyOworCSAgICAgICAgbiA9IChjb25zdCB4bWxDaGFyICoqKSB4bWxSZWFsbG9jKCh2b2lkICopIGF0dHMsCisJCQkJCSAgICAgbWF4YXR0cyAqIHNpemVvZihjb25zdCB4bWxDaGFyICopKTsKKwkJaWYgKG4gPT0gTlVMTCkgeworCQkgICAgaHRtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJICAgIGlmIChhdHR2YWx1ZSAhPSBOVUxMKQorCQkJeG1sRnJlZShhdHR2YWx1ZSk7CisJCSAgICBnb3RvIGZhaWxlZDsKKwkJfQorCQlhdHRzID0gbjsKKwkJY3R4dC0+YXR0cyA9IGF0dHM7CisJCWN0eHQtPm1heGF0dHMgPSBtYXhhdHRzOworCSAgICB9CisJICAgIGF0dHNbbmJhdHRzKytdID0gYXR0bmFtZTsKKwkgICAgYXR0c1tuYmF0dHMrK10gPSBhdHR2YWx1ZTsKKwkgICAgYXR0c1tuYmF0dHNdID0gTlVMTDsKKwkgICAgYXR0c1tuYmF0dHMgKyAxXSA9IE5VTEw7CisJfQorCWVsc2UgeworCSAgICBpZiAoYXR0dmFsdWUgIT0gTlVMTCkKKwkgICAgICAgIHhtbEZyZWUoYXR0dmFsdWUpOworCSAgICAvKiBEdW1wIHRoZSBib2d1cyBhdHRyaWJ1dGUgc3RyaW5nIHVwIHRvIHRoZSBuZXh0IGJsYW5rIG9yCisJICAgICAqIHRoZSBlbmQgb2YgdGhlIHRhZy4gKi8KKwkgICAgd2hpbGUgKChJU19DSEFSX0NIKENVUikpICYmCisJICAgICAgICAgICAhKElTX0JMQU5LX0NIKENVUikpICYmIChDVVIgIT0gJz4nKSAmJgorCQkgICAoKENVUiAhPSAnLycpIHx8IChOWFQoMSkgIT0gJz4nKSkpCisJCU5FWFQ7CisJfQorCitmYWlsZWQ6CisJU0tJUF9CTEFOS1M7CisgICAgICAgIGlmIChjb25zID09IGN0eHQtPm5iQ2hhcnMpIHsKKwkgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJICAgICAgICAgICAgICAgICAiaHRtbFBhcnNlU3RhcnRUYWc6IHByb2JsZW0gcGFyc2luZyBhdHRyaWJ1dGVzXG4iLAorCQkJIE5VTEwsIE5VTEwpOworCSAgICBicmVhazsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBIYW5kbGUgc3BlY2lmaWMgYXNzb2NpYXRpb24gdG8gdGhlIE1FVEEgdGFnCisgICAgICovCisgICAgaWYgKG1ldGEgJiYgKG5iYXR0cyAhPSAwKSkKKwlodG1sQ2hlY2tNZXRhKGN0eHQsIGF0dHMpOworCisgICAgLyoKKyAgICAgKiBTQVg6IFN0YXJ0IG9mIEVsZW1lbnQgIQorICAgICAqLworICAgIGlmICghZGlzY2FyZHRhZykgeworCWh0bWxuYW1lUHVzaChjdHh0LCBuYW1lKTsKKwlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQgIT0gTlVMTCkpIHsKKwkgICAgaWYgKG5iYXR0cyAhPSAwKQorCQljdHh0LT5zYXgtPnN0YXJ0RWxlbWVudChjdHh0LT51c2VyRGF0YSwgbmFtZSwgYXR0cyk7CisJICAgIGVsc2UKKwkJY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIG5hbWUsIE5VTEwpOworCX0KKyAgICB9CisKKyAgICBpZiAoYXR0cyAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaSA9IDE7aSA8IG5iYXR0cztpICs9IDIpIHsKKwkgICAgaWYgKGF0dHNbaV0gIT0gTlVMTCkKKwkJeG1sRnJlZSgoeG1sQ2hhciAqKSBhdHRzW2ldKTsKKwl9CisgICAgfQorCisgICAgcmV0dXJuKGRpc2NhcmR0YWcpOworfQorCisvKioKKyAqIGh0bWxQYXJzZUVuZFRhZzoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIGVuZCBvZiB0YWcKKyAqCisgKiBbNDJdIEVUYWcgOjo9ICc8LycgTmFtZSBTPyAnPicKKyAqCisgKiBXaXRoIG5hbWVzcGFjZQorICoKKyAqIFtOUyA5XSBFVGFnIDo6PSAnPC8nIFFOYW1lIFM/ICc+JworICoKKyAqIFJldHVybnMgMSBpZiB0aGUgY3VycmVudCBsZXZlbCBzaG91bGQgYmUgY2xvc2VkLgorICovCisKK3N0YXRpYyBpbnQKK2h0bWxQYXJzZUVuZFRhZyhodG1sUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgY29uc3QgeG1sQ2hhciAqb2xkbmFtZTsKKyAgICBpbnQgaSwgcmV0OworCisgICAgaWYgKChDVVIgIT0gJzwnKSB8fCAoTlhUKDEpICE9ICcvJykpIHsKKyAgICAgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfTFRTTEFTSF9SRVFVSVJFRCwKKwkgICAgICAgICAgICAgImh0bWxQYXJzZUVuZFRhZzogJzwvJyBub3QgZm91bmRcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICByZXR1cm4gKDApOworICAgIH0KKyAgICBTS0lQKDIpOworCisgICAgbmFtZSA9IGh0bWxQYXJzZUhUTUxOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiAoMCk7CisgICAgLyoKKyAgICAgKiBXZSBzaG91bGQgZGVmaW5pdGVseSBiZSBhdCB0aGUgZW5kaW5nICJTPyAnPiciIHBhcnQKKyAgICAgKi8KKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoKCFJU19DSEFSX0NIKENVUikpIHx8IChDVVIgIT0gJz4nKSkgeworICAgICAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9HVF9SRVFVSVJFRCwKKwkgICAgICAgICAgICAgIkVuZCB0YWcgOiBleHBlY3RlZCAnPidcbiIsIE5VTEwsIE5VTEwpOworCWlmIChjdHh0LT5yZWNvdmVyeSkgeworCSAgICAvKgorCSAgICAgKiBXZSdyZSBub3QgYXQgdGhlIGVuZGluZyA+ICEhCisJICAgICAqIEVycm9yLCB1bmxlc3MgaW4gcmVjb3ZlciBtb2RlIHdoZXJlIHdlIHNlYXJjaCBmb3J3YXJkcworCSAgICAgKiB1bnRpbCB3ZSBmaW5kIGEgPgorCSAgICAgKi8KKwkgICAgd2hpbGUgKENVUiAhPSAnXDAnICYmIENVUiAhPSAnPicpIE5FWFQ7CisJICAgIE5FWFQ7CisJfQorICAgIH0gZWxzZQorICAgICAgICBORVhUOworCisgICAgLyoKKyAgICAgKiBpZiB3ZSBpZ25vcmVkIG1pc3BsYWNlZCB0YWdzIGluIGh0bWxQYXJzZVN0YXJ0VGFnIGRvbid0IHBvcCB0aGVtCisgICAgICogb3V0IG5vdy4KKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPmRlcHRoID4gMCkgJiYKKyAgICAgICAgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJodG1sIikgfHwKKyAgICAgICAgIHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJib2R5IikgfHwKKwkgeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgImhlYWQiKSkpIHsKKwljdHh0LT5kZXB0aC0tOworCXJldHVybiAoMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBJZiB0aGUgbmFtZSByZWFkIGlzIG5vdCBvbmUgb2YgdGhlIGVsZW1lbnQgaW4gdGhlIHBhcnNpbmcgc3RhY2sKKyAgICAgKiB0aGVuIHJldHVybiwgaXQncyBqdXN0IGFuIGVycm9yLgorICAgICAqLworICAgIGZvciAoaSA9IChjdHh0LT5uYW1lTnIgLSAxKTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIGN0eHQtPm5hbWVUYWJbaV0pKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpIDwgMCkgeworICAgICAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCwKKwkgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgZW5kIHRhZyA6ICVzXG4iLCBuYW1lLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICB9CisKKworICAgIC8qCisgICAgICogQ2hlY2sgZm9yIGF1dG8tY2xvc3VyZSBvZiBIVE1MIGVsZW1lbnRzLgorICAgICAqLworCisgICAgaHRtbEF1dG9DbG9zZU9uQ2xvc2UoY3R4dCwgbmFtZSk7CisKKyAgICAvKgorICAgICAqIFdlbGwgZm9ybWVkbmVzcyBjb25zdHJhaW50cywgb3BlbmluZyBhbmQgY2xvc2luZyBtdXN0IG1hdGNoLgorICAgICAqIFdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IHRoZSBhdXRvY2xvc2UgbWF5IGhhdmUgcG9wcGVkIHN0dWZmIG91dAorICAgICAqIG9mIHRoZSBzdGFjay4KKyAgICAgKi8KKyAgICBpZiAoIXhtbFN0ckVxdWFsKG5hbWUsIGN0eHQtPm5hbWUpKSB7CisgICAgICAgIGlmICgoY3R4dC0+bmFtZSAhPSBOVUxMKSAmJiAoIXhtbFN0ckVxdWFsKGN0eHQtPm5hbWUsIG5hbWUpKSkgeworICAgICAgICAgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfVEFHX05BTUVfTUlTTUFUQ0gsCisJICAgICAgICAgICAgICAgICAiT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogJXMgYW5kICVzXG4iLAorCQkJIG5hbWUsIGN0eHQtPm5hbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTQVg6IEVuZCBvZiBUYWcKKyAgICAgKi8KKyAgICBvbGRuYW1lID0gY3R4dC0+bmFtZTsKKyAgICBpZiAoKG9sZG5hbWUgIT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKG9sZG5hbWUsIG5hbWUpKSkgeworICAgICAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpKQorICAgICAgICAgICAgY3R4dC0+c2F4LT5lbmRFbGVtZW50KGN0eHQtPnVzZXJEYXRhLCBuYW1lKTsKKyAgICAgICAgaHRtbG5hbWVQb3AoY3R4dCk7CisgICAgICAgIHJldCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0ID0gMDsKKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKworLyoqCisgKiBodG1sUGFyc2VSZWZlcmVuY2U6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbmQgaGFuZGxlIGVudGl0eSByZWZlcmVuY2VzIGluIGNvbnRlbnQsCisgKiB0aGlzIHdpbGwgZW5kLXVwIGluIGEgY2FsbCB0byBjaGFyYWN0ZXIoKSBzaW5jZSB0aGlzIGlzIGVpdGhlciBhCisgKiBDaGFyUmVmLCBvciBhIHByZWRlZmluZWQgZW50aXR5LgorICovCitzdGF0aWMgdm9pZAoraHRtbFBhcnNlUmVmZXJlbmNlKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCBodG1sRW50aXR5RGVzYyAqIGVudDsKKyAgICB4bWxDaGFyIG91dFs2XTsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGlmIChDVVIgIT0gJyYnKSByZXR1cm47CisKKyAgICBpZiAoTlhUKDEpID09ICcjJykgeworCXVuc2lnbmVkIGludCBjOworCWludCBiaXRzLCBpID0gMDsKKworCWMgPSBodG1sUGFyc2VDaGFyUmVmKGN0eHQpOworCWlmIChjID09IDApCisJICAgIHJldHVybjsKKworICAgICAgICBpZiAgICAgIChjIDwgICAgMHg4MCkgeyBvdXRbaSsrXT0gYzsgICAgICAgICAgICAgICAgYml0cz0gLTY7IH0KKyAgICAgICAgZWxzZSBpZiAoYyA8ICAgMHg4MDApIHsgb3V0W2krK109KChjID4+ICA2KSAmIDB4MUYpIHwgMHhDMDsgIGJpdHM9ICAwOyB9CisgICAgICAgIGVsc2UgaWYgKGMgPCAweDEwMDAwKSB7IG91dFtpKytdPSgoYyA+PiAxMikgJiAweDBGKSB8IDB4RTA7ICBiaXRzPSAgNjsgfQorICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgeyBvdXRbaSsrXT0oKGMgPj4gMTgpICYgMHgwNykgfCAweEYwOyAgYml0cz0gMTI7IH0KKworICAgICAgICBmb3IgKCA7IGJpdHMgPj0gMDsgYml0cy09IDYpIHsKKyAgICAgICAgICAgIG91dFtpKytdPSAoKGMgPj4gYml0cykgJiAweDNGKSB8IDB4ODA7CisgICAgICAgIH0KKwlvdXRbaV0gPSAwOworCisJaHRtbENoZWNrUGFyYWdyYXBoKGN0eHQpOworCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkpCisJICAgIGN0eHQtPnNheC0+Y2hhcmFjdGVycyhjdHh0LT51c2VyRGF0YSwgb3V0LCBpKTsKKyAgICB9IGVsc2UgeworCWVudCA9IGh0bWxQYXJzZUVudGl0eVJlZihjdHh0LCAmbmFtZSk7CisJaWYgKG5hbWUgPT0gTlVMTCkgeworCSAgICBodG1sQ2hlY2tQYXJhZ3JhcGgoY3R4dCk7CisJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkpCisJICAgICAgICBjdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsIEJBRF9DQVNUICImIiwgMSk7CisJICAgIHJldHVybjsKKwl9CisJaWYgKChlbnQgPT0gTlVMTCkgfHwgIShlbnQtPnZhbHVlID4gMCkpIHsKKwkgICAgaHRtbENoZWNrUGFyYWdyYXBoKGN0eHQpOworCSAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5jaGFyYWN0ZXJzICE9IE5VTEwpKSB7CisJCWN0eHQtPnNheC0+Y2hhcmFjdGVycyhjdHh0LT51c2VyRGF0YSwgQkFEX0NBU1QgIiYiLCAxKTsKKwkJY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLCBuYW1lLCB4bWxTdHJsZW4obmFtZSkpOworCQkvKiBjdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsIEJBRF9DQVNUICI7IiwgMSk7ICovCisJICAgIH0KKwl9IGVsc2UgeworCSAgICB1bnNpZ25lZCBpbnQgYzsKKwkgICAgaW50IGJpdHMsIGkgPSAwOworCisJICAgIGMgPSBlbnQtPnZhbHVlOworCSAgICBpZiAgICAgIChjIDwgICAgMHg4MCkKKwkgICAgICAgICAgICB7IG91dFtpKytdPSBjOyAgICAgICAgICAgICAgICBiaXRzPSAtNjsgfQorCSAgICBlbHNlIGlmIChjIDwgICAweDgwMCkKKwkgICAgICAgICAgICB7IG91dFtpKytdPSgoYyA+PiAgNikgJiAweDFGKSB8IDB4QzA7ICBiaXRzPSAgMDsgfQorCSAgICBlbHNlIGlmIChjIDwgMHgxMDAwMCkKKwkgICAgICAgICAgICB7IG91dFtpKytdPSgoYyA+PiAxMikgJiAweDBGKSB8IDB4RTA7ICBiaXRzPSAgNjsgfQorCSAgICBlbHNlCisJICAgICAgICAgICAgeyBvdXRbaSsrXT0oKGMgPj4gMTgpICYgMHgwNykgfCAweEYwOyAgYml0cz0gMTI7IH0KKworCSAgICBmb3IgKCA7IGJpdHMgPj0gMDsgYml0cy09IDYpIHsKKwkJb3V0W2krK109ICgoYyA+PiBiaXRzKSAmIDB4M0YpIHwgMHg4MDsKKwkgICAgfQorCSAgICBvdXRbaV0gPSAwOworCisJICAgIGh0bWxDaGVja1BhcmFncmFwaChjdHh0KTsKKwkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKSkKKwkJY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLCBvdXQsIGkpOworCX0KKyAgICB9Cit9CisKKy8qKgorICogaHRtbFBhcnNlQ29udGVudDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIFBhcnNlIGEgY29udGVudDogY29tbWVudCwgc3ViLWVsZW1lbnQsIHJlZmVyZW5jZSBvciB0ZXh0LgorICogS2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBjb2RlCisgKi8KKworc3RhdGljIHZvaWQKK2h0bWxQYXJzZUNvbnRlbnQoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgKmN1cnJlbnROb2RlOworICAgIGludCBkZXB0aDsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworCisgICAgY3VycmVudE5vZGUgPSB4bWxTdHJkdXAoY3R4dC0+bmFtZSk7CisgICAgZGVwdGggPSBjdHh0LT5uYW1lTnI7CisgICAgd2hpbGUgKDEpIHsKKwlsb25nIGNvbnMgPSBjdHh0LT5uYkNoYXJzOworCisgICAgICAgIEdST1c7CisKKyAgICAgICAgaWYgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpCisgICAgICAgICAgICBicmVhazsKKworCS8qCisJICogT3VyIHRhZyBvciBvbmUgb2YgaXQncyBwYXJlbnQgb3IgY2hpbGRyZW4gaXMgZW5kaW5nLgorCSAqLworICAgICAgICBpZiAoKENVUiA9PSAnPCcpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCSAgICBpZiAoaHRtbFBhcnNlRW5kVGFnKGN0eHQpICYmCisJCSgoY3VycmVudE5vZGUgIT0gTlVMTCkgfHwgKGN0eHQtPm5hbWVOciA9PSAwKSkpIHsKKwkJaWYgKGN1cnJlbnROb2RlICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKGN1cnJlbnROb2RlKTsKKwkJcmV0dXJuOworCSAgICB9CisJICAgIGNvbnRpbnVlOyAvKiB3aGlsZSAqLworICAgICAgICB9CisKKwllbHNlIGlmICgoQ1VSID09ICc8JykgJiYKKwkgICAgICAgICAoKElTX0FTQ0lJX0xFVFRFUihOWFQoMSkpKSB8fAorCQkgIChOWFQoMSkgPT0gJ18nKSB8fCAoTlhUKDEpID09ICc6JykpKSB7CisJICAgIG5hbWUgPSBodG1sUGFyc2VIVE1MTmFtZV9ub25JbnZhc2l2ZShjdHh0KTsKKwkgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCSAgICAgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkJCSAiaHRtbFBhcnNlU3RhcnRUYWc6IGludmFsaWQgZWxlbWVudCBuYW1lXG4iLAorCQkJIE5VTEwsIE5VTEwpOworCSAgICAgICAgLyogRHVtcCB0aGUgYm9ndXMgdGFnIGxpa2UgYnJvd3NlcnMgZG8gKi8KKyAgICAgICAgd2hpbGUgKChJU19DSEFSX0NIKENVUikpICYmIChDVVIgIT0gJz4nKSkKKwkgICAgICAgICAgICBORVhUOworCisJICAgICAgICBpZiAoY3VycmVudE5vZGUgIT0gTlVMTCkKKwkgICAgICAgICAgICB4bWxGcmVlKGN1cnJlbnROb2RlKTsKKwkgICAgICAgIHJldHVybjsKKwkgICAgfQorCisJICAgIGlmIChjdHh0LT5uYW1lICE9IE5VTEwpIHsKKwkgICAgICAgIGlmIChodG1sQ2hlY2tBdXRvQ2xvc2UobmFtZSwgY3R4dC0+bmFtZSkgPT0gMSkgeworCSAgICAgICAgICAgIGh0bWxBdXRvQ2xvc2UoY3R4dCwgbmFtZSk7CisJICAgICAgICAgICAgY29udGludWU7CisJICAgICAgICB9CisJICAgIH0KKwl9CisKKwkvKgorCSAqIEhhcyB0aGlzIG5vZGUgYmVlbiBwb3BwZWQgb3V0IGR1cmluZyBwYXJzaW5nIG9mCisJICogdGhlIG5leHQgZWxlbWVudAorCSAqLworICAgICAgICBpZiAoKGN0eHQtPm5hbWVOciA+IDApICYmIChkZXB0aCA+PSBjdHh0LT5uYW1lTnIpICYmCisJICAgICgheG1sU3RyRXF1YWwoY3VycmVudE5vZGUsIGN0eHQtPm5hbWUpKSkKKwkgICAgIHsKKwkgICAgaWYgKGN1cnJlbnROb2RlICE9IE5VTEwpIHhtbEZyZWUoY3VycmVudE5vZGUpOworCSAgICByZXR1cm47CisJfQorCisJaWYgKChDVVIgIT0gMCkgJiYgKCh4bWxTdHJFcXVhbChjdXJyZW50Tm9kZSwgQkFEX0NBU1Qic2NyaXB0IikpIHx8CisJICAgICh4bWxTdHJFcXVhbChjdXJyZW50Tm9kZSwgQkFEX0NBU1Qic3R5bGUiKSkpKSB7CisJICAgIC8qCisJICAgICAqIEhhbmRsZSBTQ1JJUFQvU1RZTEUgc2VwYXJhdGVseQorCSAgICAgKi8KKwkgICAgaHRtbFBhcnNlU2NyaXB0KGN0eHQpOworCX0gZWxzZSB7CisJICAgIC8qCisJICAgICAqIFNvbWV0aW1lcyBET0NUWVBFIGFycml2ZXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQKKwkgICAgICovCisJICAgIGlmICgoQ1VSID09ICc8JykgJiYgKE5YVCgxKSA9PSAnIScpICYmCisJCShVUFAoMikgPT0gJ0QnKSAmJiAoVVBQKDMpID09ICdPJykgJiYKKwkJKFVQUCg0KSA9PSAnQycpICYmIChVUFAoNSkgPT0gJ1QnKSAmJgorCQkoVVBQKDYpID09ICdZJykgJiYgKFVQUCg3KSA9PSAnUCcpICYmCisJCShVUFAoOCkgPT0gJ0UnKSkgeworCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0hUTUxfU1RSVUNVUkVfRVJST1IsCisJCSAgICAgICAgICAgICAiTWlzcGxhY2VkIERPQ1RZUEUgZGVjbGFyYXRpb25cbiIsCisJCQkgICAgIEJBRF9DQVNUICJET0NUWVBFIiAsIE5VTEwpOworCQlodG1sUGFyc2VEb2NUeXBlRGVjbChjdHh0KTsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIEZpcnN0IGNhc2UgOiAgYSBjb21tZW50CisJICAgICAqLworCSAgICBpZiAoKENVUiA9PSAnPCcpICYmIChOWFQoMSkgPT0gJyEnKSAmJgorCQkoTlhUKDIpID09ICctJykgJiYgKE5YVCgzKSA9PSAnLScpKSB7CisJCWh0bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBTZWNvbmQgY2FzZSA6IGEgUHJvY2Vzc2luZyBJbnN0cnVjdGlvbi4KKwkgICAgICovCisJICAgIGVsc2UgaWYgKChDVVIgPT0gJzwnKSAmJiAoTlhUKDEpID09ICc/JykpIHsKKwkJaHRtbFBhcnNlUEkoY3R4dCk7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBUaGlyZCBjYXNlIDogIGEgc3ViLWVsZW1lbnQuCisJICAgICAqLworCSAgICBlbHNlIGlmIChDVVIgPT0gJzwnKSB7CisJCWh0bWxQYXJzZUVsZW1lbnQoY3R4dCk7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBGb3VydGggY2FzZSA6IGEgcmVmZXJlbmNlLiBJZiBpZiBoYXMgbm90IGJlZW4gcmVzb2x2ZWQsCisJICAgICAqICAgIHBhcnNpbmcgcmV0dXJucyBpdCdzIE5hbWUsIGNyZWF0ZSB0aGUgbm9kZQorCSAgICAgKi8KKwkgICAgZWxzZSBpZiAoQ1VSID09ICcmJykgeworCQlodG1sUGFyc2VSZWZlcmVuY2UoY3R4dCk7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBGaWZ0aCBjYXNlIDogZW5kIG9mIHRoZSByZXNvdXJjZQorCSAgICAgKi8KKwkgICAgZWxzZSBpZiAoQ1VSID09IDApIHsKKwkJaHRtbEF1dG9DbG9zZU9uRW5kKGN0eHQpOworCQlicmVhazsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIExhc3QgY2FzZSwgdGV4dC4gTm90ZSB0aGF0IFJlZmVyZW5jZXMgYXJlIGhhbmRsZWQgZGlyZWN0bHkuCisJICAgICAqLworCSAgICBlbHNlIHsKKwkJaHRtbFBhcnNlQ2hhckRhdGEoY3R4dCk7CisJICAgIH0KKworCSAgICBpZiAoY29ucyA9PSBjdHh0LT5uYkNoYXJzKSB7CisJCWlmIChjdHh0LT5ub2RlICE9IE5VTEwpIHsKKwkJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAgICAgICAgICAgICAgICJkZXRlY3RlZCBhbiBlcnJvciBpbiBlbGVtZW50IGNvbnRlbnRcbiIsCisJCQkJIE5VTEwsIE5VTEwpOworCQl9CisJCWJyZWFrOworCSAgICB9CisJfQorICAgICAgICBHUk9XOworICAgIH0KKyAgICBpZiAoY3VycmVudE5vZGUgIT0gTlVMTCkgeG1sRnJlZShjdXJyZW50Tm9kZSk7Cit9CisKKy8qKgorICogaHRtbFBhcnNlRWxlbWVudDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIEhUTUwgZWxlbWVudCwgdGhpcyBpcyBoaWdobHkgcmVjdXJzaXZlCisgKiB0aGlzIGlzIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyBjb2RlIHZlcnNpb25zCisgKgorICogWzM5XSBlbGVtZW50IDo6PSBFbXB0eUVsZW1UYWcgfCBTVGFnIGNvbnRlbnQgRVRhZworICoKKyAqIFs0MV0gQXR0cmlidXRlIDo6PSBOYW1lIEVxIEF0dFZhbHVlCisgKi8KKwordm9pZAoraHRtbFBhcnNlRWxlbWVudChodG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxDaGFyICpjdXJyZW50Tm9kZSA9IE5VTEw7CisgICAgY29uc3QgaHRtbEVsZW1EZXNjICogaW5mbzsKKyAgICBodG1sUGFyc2VyTm9kZUluZm8gbm9kZV9pbmZvOworICAgIGludCBmYWlsZWQ7CisgICAgaW50IGRlcHRoOworICAgIGNvbnN0IHhtbENoYXIgKm9sZHB0cjsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXQgPT0gTlVMTCkpIHsKKwlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICAgICAiaHRtbFBhcnNlRWxlbWVudDogY29udGV4dCBlcnJvclxuIiwgTlVMTCwgTlVMTCk7CisJcmV0dXJuOworICAgIH0KKworICAgIGlmIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBDYXB0dXJlIHN0YXJ0IHBvc2l0aW9uICovCisgICAgaWYgKGN0eHQtPnJlY29yZF9pbmZvKSB7CisgICAgICAgIG5vZGVfaW5mby5iZWdpbl9wb3MgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAoQ1VSX1BUUiAtIGN0eHQtPmlucHV0LT5iYXNlKTsKKwlub2RlX2luZm8uYmVnaW5fbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworICAgIH0KKworICAgIGZhaWxlZCA9IGh0bWxQYXJzZVN0YXJ0VGFnKGN0eHQpOworICAgIG5hbWUgPSBjdHh0LT5uYW1lOworICAgIGlmICgoZmFpbGVkID09IC0xKSB8fCAobmFtZSA9PSBOVUxMKSkgeworCWlmIChDVVIgPT0gJz4nKQorCSAgICBORVhUOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBMb29rdXAgdGhlIGluZm8gZm9yIHRoYXQgZWxlbWVudC4KKyAgICAgKi8KKyAgICBpbmZvID0gaHRtbFRhZ0xvb2t1cChuYW1lKTsKKyAgICBpZiAoaW5mbyA9PSBOVUxMKSB7CisJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9IVE1MX1VOS05PV05fVEFHLAorCSAgICAgICAgICAgICAiVGFnICVzIGludmFsaWRcbiIsIG5hbWUsIE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQ2hlY2sgZm9yIGFuIEVtcHR5IEVsZW1lbnQgbGFiZWxlZCB0aGUgWE1ML1NHTUwgd2F5CisgICAgICovCisgICAgaWYgKChDVVIgPT0gJy8nKSAmJiAoTlhUKDEpID09ICc+JykpIHsKKyAgICAgICAgU0tJUCgyKTsKKwlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpKQorCSAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIG5hbWUpOworCWh0bWxuYW1lUG9wKGN0eHQpOworCXJldHVybjsKKyAgICB9CisKKyAgICBpZiAoQ1VSID09ICc+JykgeworICAgICAgICBORVhUOworICAgIH0gZWxzZSB7CisJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfR1RfUkVRVUlSRUQsCisJICAgICAgICAgICAgICJDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgJXNcbiIsIG5hbWUsIE5VTEwpOworCisJLyoKKwkgKiBlbmQgb2YgcGFyc2luZyBvZiB0aGlzIG5vZGUuCisJICovCisJaWYgKHhtbFN0ckVxdWFsKG5hbWUsIGN0eHQtPm5hbWUpKSB7CisJICAgIG5vZGVQb3AoY3R4dCk7CisJICAgIGh0bWxuYW1lUG9wKGN0eHQpOworCX0KKworCS8qCisJICogQ2FwdHVyZSBlbmQgcG9zaXRpb24gYW5kIGFkZCBub2RlCisJICovCisJaWYgKGN0eHQtPnJlY29yZF9pbmZvKSB7CisJICAgbm9kZV9pbmZvLmVuZF9wb3MgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQgKworCQkJICAgICAgKENVUl9QVFIgLSBjdHh0LT5pbnB1dC0+YmFzZSk7CisJICAgbm9kZV9pbmZvLmVuZF9saW5lID0gY3R4dC0+aW5wdXQtPmxpbmU7CisJICAgbm9kZV9pbmZvLm5vZGUgPSBjdHh0LT5ub2RlOworCSAgIHhtbFBhcnNlckFkZE5vZGVJbmZvKGN0eHQsICZub2RlX2luZm8pOworCX0KKwlyZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgYW4gRW1wdHkgRWxlbWVudCBmcm9tIERURCBkZWZpbml0aW9uCisgICAgICovCisgICAgaWYgKChpbmZvICE9IE5VTEwpICYmIChpbmZvLT5lbXB0eSkpIHsKKwlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpKQorCSAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIG5hbWUpOworCWh0bWxuYW1lUG9wKGN0eHQpOworCXJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFBhcnNlIHRoZSBjb250ZW50IG9mIHRoZSBlbGVtZW50OgorICAgICAqLworICAgIGN1cnJlbnROb2RlID0geG1sU3RyZHVwKGN0eHQtPm5hbWUpOworICAgIGRlcHRoID0gY3R4dC0+bmFtZU5yOworICAgIHdoaWxlIChJU19DSEFSX0NIKENVUikpIHsKKwlvbGRwdHIgPSBjdHh0LT5pbnB1dC0+Y3VyOworCWh0bWxQYXJzZUNvbnRlbnQoY3R4dCk7CisJaWYgKG9sZHB0cj09Y3R4dC0+aW5wdXQtPmN1cikgYnJlYWs7CisJaWYgKGN0eHQtPm5hbWVOciA8IGRlcHRoKSBicmVhazsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENhcHR1cmUgZW5kIHBvc2l0aW9uIGFuZCBhZGQgbm9kZQorICAgICAqLworICAgIGlmICggY3VycmVudE5vZGUgIT0gTlVMTCAmJiBjdHh0LT5yZWNvcmRfaW5mbyApIHsKKyAgICAgICBub2RlX2luZm8uZW5kX3BvcyA9IGN0eHQtPmlucHV0LT5jb25zdW1lZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgIChDVVJfUFRSIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworICAgICAgIG5vZGVfaW5mby5lbmRfbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworICAgICAgIG5vZGVfaW5mby5ub2RlID0gY3R4dC0+bm9kZTsKKyAgICAgICB4bWxQYXJzZXJBZGROb2RlSW5mbyhjdHh0LCAmbm9kZV9pbmZvKTsKKyAgICB9CisgICAgaWYgKCFJU19DSEFSX0NIKENVUikpIHsKKwlodG1sQXV0b0Nsb3NlT25FbmQoY3R4dCk7CisgICAgfQorCisgICAgaWYgKGN1cnJlbnROb2RlICE9IE5VTEwpCisJeG1sRnJlZShjdXJyZW50Tm9kZSk7Cit9CisKK3N0YXRpYyB2b2lkCitodG1sUGFyc2VyRmluaXNoRWxlbWVudFBhcnNpbmcoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIC8qCisgICAgICogQ2FwdHVyZSBlbmQgcG9zaXRpb24gYW5kIGFkZCBub2RlCisgICAgICovCisgICAgaWYgKCBjdHh0LT5ub2RlICE9IE5VTEwgJiYgY3R4dC0+cmVjb3JkX2luZm8gKSB7CisgICAgICAgY3R4dC0+bm9kZUluZm8tPmVuZF9wb3MgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ1VSX1BUUiAtIGN0eHQtPmlucHV0LT5iYXNlKTsKKyAgICAgICBjdHh0LT5ub2RlSW5mby0+ZW5kX2xpbmUgPSBjdHh0LT5pbnB1dC0+bGluZTsKKyAgICAgICBjdHh0LT5ub2RlSW5mby0+bm9kZSA9IGN0eHQtPm5vZGU7CisgICAgICAgeG1sUGFyc2VyQWRkTm9kZUluZm8oY3R4dCwgY3R4dC0+bm9kZUluZm8pOworICAgICAgIGh0bWxOb2RlSW5mb1BvcChjdHh0KTsKKyAgICB9CisgICAgaWYgKCFJU19DSEFSX0NIKENVUikpIHsKKyAgICAgICBodG1sQXV0b0Nsb3NlT25FbmQoY3R4dCk7CisgICAgfQorfQorCisvKioKKyAqIGh0bWxQYXJzZUVsZW1lbnRJbnRlcm5hbDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIEhUTUwgZWxlbWVudCwgbmV3IHZlcnNpb24sIG5vbiByZWN1cnNpdmUKKyAqCisgKiBbMzldIGVsZW1lbnQgOjo9IEVtcHR5RWxlbVRhZyB8IFNUYWcgY29udGVudCBFVGFnCisgKgorICogWzQxXSBBdHRyaWJ1dGUgOjo9IE5hbWUgRXEgQXR0VmFsdWUKKyAqLworCitzdGF0aWMgdm9pZAoraHRtbFBhcnNlRWxlbWVudEludGVybmFsKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGNvbnN0IGh0bWxFbGVtRGVzYyAqIGluZm87CisgICAgaHRtbFBhcnNlck5vZGVJbmZvIG5vZGVfaW5mbzsKKyAgICBpbnQgZmFpbGVkOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5pbnB1dCA9PSBOVUxMKSkgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAgICJodG1sUGFyc2VFbGVtZW50SW50ZXJuYWw6IGNvbnRleHQgZXJyb3JcbiIsIE5VTEwsIE5VTEwpOworCXJldHVybjsKKyAgICB9CisKKyAgICBpZiAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikKKyAgICAgICAgcmV0dXJuOworCisgICAgLyogQ2FwdHVyZSBzdGFydCBwb3NpdGlvbiAqLworICAgIGlmIChjdHh0LT5yZWNvcmRfaW5mbykgeworICAgICAgICBub2RlX2luZm8uYmVnaW5fcG9zID0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKENVUl9QVFIgLSBjdHh0LT5pbnB1dC0+YmFzZSk7CisJbm9kZV9pbmZvLmJlZ2luX2xpbmUgPSBjdHh0LT5pbnB1dC0+bGluZTsKKyAgICB9CisKKyAgICBmYWlsZWQgPSBodG1sUGFyc2VTdGFydFRhZyhjdHh0KTsKKyAgICBuYW1lID0gY3R4dC0+bmFtZTsKKyAgICBpZiAoKGZhaWxlZCA9PSAtMSkgfHwgKG5hbWUgPT0gTlVMTCkpIHsKKwlpZiAoQ1VSID09ICc+JykKKwkgICAgTkVYVDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogTG9va3VwIHRoZSBpbmZvIGZvciB0aGF0IGVsZW1lbnQuCisgICAgICovCisgICAgaW5mbyA9IGh0bWxUYWdMb29rdXAobmFtZSk7CisgICAgaWYgKGluZm8gPT0gTlVMTCkgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfSFRNTF9VTktOT1dOX1RBRywKKwkgICAgICAgICAgICAgIlRhZyAlcyBpbnZhbGlkXG4iLCBuYW1lLCBOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciBhbiBFbXB0eSBFbGVtZW50IGxhYmVsZWQgdGhlIFhNTC9TR01MIHdheQorICAgICAqLworICAgIGlmICgoQ1VSID09ICcvJykgJiYgKE5YVCgxKSA9PSAnPicpKSB7CisgICAgICAgIFNLSVAoMik7CisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+ZW5kRWxlbWVudCAhPSBOVUxMKSkKKwkgICAgY3R4dC0+c2F4LT5lbmRFbGVtZW50KGN0eHQtPnVzZXJEYXRhLCBuYW1lKTsKKwlodG1sbmFtZVBvcChjdHh0KTsKKwlyZXR1cm47CisgICAgfQorCisgICAgaWYgKENVUiA9PSAnPicpIHsKKyAgICAgICAgTkVYVDsKKyAgICB9IGVsc2UgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0dUX1JFUVVJUkVELAorCSAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCBlbmQgb2YgU3RhcnQgVGFnICVzXG4iLCBuYW1lLCBOVUxMKTsKKworCS8qCisJICogZW5kIG9mIHBhcnNpbmcgb2YgdGhpcyBub2RlLgorCSAqLworCWlmICh4bWxTdHJFcXVhbChuYW1lLCBjdHh0LT5uYW1lKSkgeworCSAgICBub2RlUG9wKGN0eHQpOworCSAgICBodG1sbmFtZVBvcChjdHh0KTsKKwl9CisKKyAgICAgICAgaWYgKGN0eHQtPnJlY29yZF9pbmZvKQorICAgICAgICAgICAgaHRtbE5vZGVJbmZvUHVzaChjdHh0LCAmbm9kZV9pbmZvKTsKKyAgICAgICAgaHRtbFBhcnNlckZpbmlzaEVsZW1lbnRQYXJzaW5nKGN0eHQpOworCXJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciBhbiBFbXB0eSBFbGVtZW50IGZyb20gRFREIGRlZmluaXRpb24KKyAgICAgKi8KKyAgICBpZiAoKGluZm8gIT0gTlVMTCkgJiYgKGluZm8tPmVtcHR5KSkgeworCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmVuZEVsZW1lbnQgIT0gTlVMTCkpCisJICAgIGN0eHQtPnNheC0+ZW5kRWxlbWVudChjdHh0LT51c2VyRGF0YSwgbmFtZSk7CisJaHRtbG5hbWVQb3AoY3R4dCk7CisJcmV0dXJuOworICAgIH0KKworICAgIGlmIChjdHh0LT5yZWNvcmRfaW5mbykKKyAgICAgICAgaHRtbE5vZGVJbmZvUHVzaChjdHh0LCAmbm9kZV9pbmZvKTsKK30KKworLyoqCisgKiBodG1sUGFyc2VDb250ZW50SW50ZXJuYWw6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQYXJzZSBhIGNvbnRlbnQ6IGNvbW1lbnQsIHN1Yi1lbGVtZW50LCByZWZlcmVuY2Ugb3IgdGV4dC4KKyAqIE5ldyB2ZXJzaW9uIGZvciBub24gcmVjdXJzaXZlIGh0bWxQYXJzZUVsZW1lbnRJbnRlcm5hbAorICovCisKK3N0YXRpYyB2b2lkCitodG1sUGFyc2VDb250ZW50SW50ZXJuYWwoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgKmN1cnJlbnROb2RlOworICAgIGludCBkZXB0aDsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworCisgICAgY3VycmVudE5vZGUgPSB4bWxTdHJkdXAoY3R4dC0+bmFtZSk7CisgICAgZGVwdGggPSBjdHh0LT5uYW1lTnI7CisgICAgd2hpbGUgKDEpIHsKKwlsb25nIGNvbnMgPSBjdHh0LT5uYkNoYXJzOworCisgICAgICAgIEdST1c7CisKKyAgICAgICAgaWYgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpCisgICAgICAgICAgICBicmVhazsKKworCS8qCisJICogT3VyIHRhZyBvciBvbmUgb2YgaXQncyBwYXJlbnQgb3IgY2hpbGRyZW4gaXMgZW5kaW5nLgorCSAqLworICAgICAgICBpZiAoKENVUiA9PSAnPCcpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCSAgICBpZiAoaHRtbFBhcnNlRW5kVGFnKGN0eHQpICYmCisJCSgoY3VycmVudE5vZGUgIT0gTlVMTCkgfHwgKGN0eHQtPm5hbWVOciA9PSAwKSkpIHsKKwkJaWYgKGN1cnJlbnROb2RlICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKGN1cnJlbnROb2RlKTsKKworCSAgICAgICAgY3VycmVudE5vZGUgPSB4bWxTdHJkdXAoY3R4dC0+bmFtZSk7CisJICAgICAgICBkZXB0aCA9IGN0eHQtPm5hbWVOcjsKKwkgICAgfQorCSAgICBjb250aW51ZTsgLyogd2hpbGUgKi8KKyAgICAgICAgfQorCisJZWxzZSBpZiAoKENVUiA9PSAnPCcpICYmCisJICAgICAgICAgKChJU19BU0NJSV9MRVRURVIoTlhUKDEpKSkgfHwKKwkJICAoTlhUKDEpID09ICdfJykgfHwgKE5YVCgxKSA9PSAnOicpKSkgeworCSAgICBuYW1lID0gaHRtbFBhcnNlSFRNTE5hbWVfbm9uSW52YXNpdmUoY3R4dCk7CisJICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwkgICAgICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisJCQkgImh0bWxQYXJzZVN0YXJ0VGFnOiBpbnZhbGlkIGVsZW1lbnQgbmFtZVxuIiwKKwkJCSBOVUxMLCBOVUxMKTsKKwkgICAgICAgIC8qIER1bXAgdGhlIGJvZ3VzIHRhZyBsaWtlIGJyb3dzZXJzIGRvICovCisJICAgICAgICB3aGlsZSAoKElTX0NIQVJfQ0goQ1VSKSkgJiYgKENVUiAhPSAnPicpKQorCSAgICAgICAgICAgIE5FWFQ7CisKKwkgICAgICAgIGh0bWxQYXJzZXJGaW5pc2hFbGVtZW50UGFyc2luZyhjdHh0KTsKKwkgICAgICAgIGlmIChjdXJyZW50Tm9kZSAhPSBOVUxMKQorCSAgICAgICAgICAgIHhtbEZyZWUoY3VycmVudE5vZGUpOworCisJICAgICAgICBjdXJyZW50Tm9kZSA9IHhtbFN0cmR1cChjdHh0LT5uYW1lKTsKKwkgICAgICAgIGRlcHRoID0gY3R4dC0+bmFtZU5yOworCSAgICAgICAgY29udGludWU7CisJICAgIH0KKworCSAgICBpZiAoY3R4dC0+bmFtZSAhPSBOVUxMKSB7CisJICAgICAgICBpZiAoaHRtbENoZWNrQXV0b0Nsb3NlKG5hbWUsIGN0eHQtPm5hbWUpID09IDEpIHsKKwkgICAgICAgICAgICBodG1sQXV0b0Nsb3NlKGN0eHQsIG5hbWUpOworCSAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgfQorCSAgICB9CisJfQorCisJLyoKKwkgKiBIYXMgdGhpcyBub2RlIGJlZW4gcG9wcGVkIG91dCBkdXJpbmcgcGFyc2luZyBvZgorCSAqIHRoZSBuZXh0IGVsZW1lbnQKKwkgKi8KKyAgICAgICAgaWYgKChjdHh0LT5uYW1lTnIgPiAwKSAmJiAoZGVwdGggPj0gY3R4dC0+bmFtZU5yKSAmJgorCSAgICAoIXhtbFN0ckVxdWFsKGN1cnJlbnROb2RlLCBjdHh0LT5uYW1lKSkpCisJICAgICB7CisJICAgIGh0bWxQYXJzZXJGaW5pc2hFbGVtZW50UGFyc2luZyhjdHh0KTsKKwkgICAgaWYgKGN1cnJlbnROb2RlICE9IE5VTEwpIHhtbEZyZWUoY3VycmVudE5vZGUpOworCisJICAgIGN1cnJlbnROb2RlID0geG1sU3RyZHVwKGN0eHQtPm5hbWUpOworCSAgICBkZXB0aCA9IGN0eHQtPm5hbWVOcjsKKwkgICAgY29udGludWU7CisJfQorCisJaWYgKChDVVIgIT0gMCkgJiYgKCh4bWxTdHJFcXVhbChjdXJyZW50Tm9kZSwgQkFEX0NBU1Qic2NyaXB0IikpIHx8CisJICAgICh4bWxTdHJFcXVhbChjdXJyZW50Tm9kZSwgQkFEX0NBU1Qic3R5bGUiKSkpKSB7CisJICAgIC8qCisJICAgICAqIEhhbmRsZSBTQ1JJUFQvU1RZTEUgc2VwYXJhdGVseQorCSAgICAgKi8KKwkgICAgaHRtbFBhcnNlU2NyaXB0KGN0eHQpOworCX0gZWxzZSB7CisJICAgIC8qCisJICAgICAqIFNvbWV0aW1lcyBET0NUWVBFIGFycml2ZXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQKKwkgICAgICovCisJICAgIGlmICgoQ1VSID09ICc8JykgJiYgKE5YVCgxKSA9PSAnIScpICYmCisJCShVUFAoMikgPT0gJ0QnKSAmJiAoVVBQKDMpID09ICdPJykgJiYKKwkJKFVQUCg0KSA9PSAnQycpICYmIChVUFAoNSkgPT0gJ1QnKSAmJgorCQkoVVBQKDYpID09ICdZJykgJiYgKFVQUCg3KSA9PSAnUCcpICYmCisJCShVUFAoOCkgPT0gJ0UnKSkgeworCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0hUTUxfU1RSVUNVUkVfRVJST1IsCisJCSAgICAgICAgICAgICAiTWlzcGxhY2VkIERPQ1RZUEUgZGVjbGFyYXRpb25cbiIsCisJCQkgICAgIEJBRF9DQVNUICJET0NUWVBFIiAsIE5VTEwpOworCQlodG1sUGFyc2VEb2NUeXBlRGVjbChjdHh0KTsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIEZpcnN0IGNhc2UgOiAgYSBjb21tZW50CisJICAgICAqLworCSAgICBpZiAoKENVUiA9PSAnPCcpICYmIChOWFQoMSkgPT0gJyEnKSAmJgorCQkoTlhUKDIpID09ICctJykgJiYgKE5YVCgzKSA9PSAnLScpKSB7CisJCWh0bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBTZWNvbmQgY2FzZSA6IGEgUHJvY2Vzc2luZyBJbnN0cnVjdGlvbi4KKwkgICAgICovCisJICAgIGVsc2UgaWYgKChDVVIgPT0gJzwnKSAmJiAoTlhUKDEpID09ICc/JykpIHsKKwkJaHRtbFBhcnNlUEkoY3R4dCk7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBUaGlyZCBjYXNlIDogIGEgc3ViLWVsZW1lbnQuCisJICAgICAqLworCSAgICBlbHNlIGlmIChDVVIgPT0gJzwnKSB7CisJCWh0bWxQYXJzZUVsZW1lbnRJbnRlcm5hbChjdHh0KTsKKwkJaWYgKGN1cnJlbnROb2RlICE9IE5VTEwpIHhtbEZyZWUoY3VycmVudE5vZGUpOworCisJCWN1cnJlbnROb2RlID0geG1sU3RyZHVwKGN0eHQtPm5hbWUpOworCQlkZXB0aCA9IGN0eHQtPm5hbWVOcjsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIEZvdXJ0aCBjYXNlIDogYSByZWZlcmVuY2UuIElmIGlmIGhhcyBub3QgYmVlbiByZXNvbHZlZCwKKwkgICAgICogICAgcGFyc2luZyByZXR1cm5zIGl0J3MgTmFtZSwgY3JlYXRlIHRoZSBub2RlCisJICAgICAqLworCSAgICBlbHNlIGlmIChDVVIgPT0gJyYnKSB7CisJCWh0bWxQYXJzZVJlZmVyZW5jZShjdHh0KTsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIEZpZnRoIGNhc2UgOiBlbmQgb2YgdGhlIHJlc291cmNlCisJICAgICAqLworCSAgICBlbHNlIGlmIChDVVIgPT0gMCkgeworCQlodG1sQXV0b0Nsb3NlT25FbmQoY3R4dCk7CisJCWJyZWFrOworCSAgICB9CisKKwkgICAgLyoKKwkgICAgICogTGFzdCBjYXNlLCB0ZXh0LiBOb3RlIHRoYXQgUmVmZXJlbmNlcyBhcmUgaGFuZGxlZCBkaXJlY3RseS4KKwkgICAgICovCisJICAgIGVsc2UgeworCQlodG1sUGFyc2VDaGFyRGF0YShjdHh0KTsKKwkgICAgfQorCisJICAgIGlmIChjb25zID09IGN0eHQtPm5iQ2hhcnMpIHsKKwkJaWYgKGN0eHQtPm5vZGUgIT0gTlVMTCkgeworCQkgICAgaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAgICAgICAgICAgICAgImRldGVjdGVkIGFuIGVycm9yIGluIGVsZW1lbnQgY29udGVudFxuIiwKKwkJCQkgTlVMTCwgTlVMTCk7CisJCX0KKwkJYnJlYWs7CisJICAgIH0KKwl9CisgICAgICAgIEdST1c7CisgICAgfQorICAgIGlmIChjdXJyZW50Tm9kZSAhPSBOVUxMKSB4bWxGcmVlKGN1cnJlbnROb2RlKTsKK30KKworLyoqCisgKiBodG1sUGFyc2VDb250ZW50OgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYSBjb250ZW50OiBjb21tZW50LCBzdWItZWxlbWVudCwgcmVmZXJlbmNlIG9yIHRleHQuCisgKiBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCB3aGVuIGNhbGxlZCBmcm9tIHBhcnNlci5jCisgKi8KKwordm9pZAorX19odG1sUGFyc2VDb250ZW50KHZvaWQgKmN0eHQpIHsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKQorCWh0bWxQYXJzZUNvbnRlbnRJbnRlcm5hbCgoaHRtbFBhcnNlckN0eHRQdHIpIGN0eHQpOworfQorCisvKioKKyAqIGh0bWxQYXJzZURvY3VtZW50OgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYW4gSFRNTCBkb2N1bWVudCAoYW5kIGJ1aWxkIGEgdHJlZSBpZiB1c2luZyB0aGUgc3RhbmRhcmQgU0FYCisgKiBpbnRlcmZhY2UpLgorICoKKyAqIFJldHVybnMgMCwgLTEgaW4gY2FzZSBvZiBlcnJvci4gdGhlIHBhcnNlciBjb250ZXh0IGlzIGF1Z21lbnRlZAorICogICAgICAgICAgICAgICAgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuCisgKi8KKworaW50CitodG1sUGFyc2VEb2N1bWVudChodG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciBzdGFydFs0XTsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jOworICAgIHhtbER0ZFB0ciBkdGQ7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KCk7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmlucHV0ID09IE5VTEwpKSB7CisJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAgImh0bWxQYXJzZURvY3VtZW50OiBjb250ZXh0IGVycm9yXG4iLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4oWE1MX0VSUl9JTlRFUk5BTF9FUlJPUik7CisgICAgfQorICAgIGN0eHQtPmh0bWwgPSAxOworICAgIGN0eHQtPmxpbmVudW1iZXJzID0gMTsKKyAgICBHUk9XOworICAgIC8qCisgICAgICogU0FYOiBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50IHByb2Nlc3NpbmcuCisgICAgICovCisgICAgaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcikpCisgICAgICAgIGN0eHQtPnNheC0+c2V0RG9jdW1lbnRMb2NhdG9yKGN0eHQtPnVzZXJEYXRhLCAmeG1sRGVmYXVsdFNBWExvY2F0b3IpOworCisgICAgaWYgKChjdHh0LT5lbmNvZGluZyA9PSAoY29uc3QgeG1sQ2hhciAqKVhNTF9DSEFSX0VOQ09ESU5HX05PTkUpICYmCisgICAgICAgICgoY3R4dC0+aW5wdXQtPmVuZCAtIGN0eHQtPmlucHV0LT5jdXIpID49IDQpKSB7CisJLyoKKwkgKiBHZXQgdGhlIDQgZmlyc3QgYnl0ZXMgYW5kIGRlY29kZSB0aGUgY2hhcnNldAorCSAqIGlmIGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FCisJICogcGx1ZyBzb21lIGVuY29kaW5nIGNvbnZlcnNpb24gcm91dGluZXMuCisJICovCisJc3RhcnRbMF0gPSBSQVc7CisJc3RhcnRbMV0gPSBOWFQoMSk7CisJc3RhcnRbMl0gPSBOWFQoMik7CisJc3RhcnRbM10gPSBOWFQoMyk7CisJZW5jID0geG1sRGV0ZWN0Q2hhckVuY29kaW5nKCZzdGFydFswXSwgNCk7CisJaWYgKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FKSB7CisJICAgIHhtbFN3aXRjaEVuY29kaW5nKGN0eHQsIGVuYyk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogV2lwZSBvdXQgZXZlcnl0aGluZyB3aGljaCBpcyBiZWZvcmUgdGhlIGZpcnN0ICc8JworICAgICAqLworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgPT0gMCkgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0RPQ1VNRU5UX0VNUFRZLAorCSAgICAgICAgICAgICAiRG9jdW1lbnQgaXMgZW1wdHlcbiIsIE5VTEwsIE5VTEwpOworICAgIH0KKworICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5zdGFydERvY3VtZW50KSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpKQorCWN0eHQtPnNheC0+c3RhcnREb2N1bWVudChjdHh0LT51c2VyRGF0YSk7CisKKworICAgIC8qCisgICAgICogUGFyc2UgcG9zc2libGUgY29tbWVudHMgYW5kIFBJcyBiZWZvcmUgYW55IGNvbnRlbnQKKyAgICAgKi8KKyAgICB3aGlsZSAoKChDVVIgPT0gJzwnKSAmJiAoTlhUKDEpID09ICchJykgJiYKKyAgICAgICAgICAgIChOWFQoMikgPT0gJy0nKSAmJiAoTlhUKDMpID09ICctJykpIHx8CisJICAgKChDVVIgPT0gJzwnKSAmJiAoTlhUKDEpID09ICc/JykpKSB7CisgICAgICAgIGh0bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisgICAgICAgIGh0bWxQYXJzZVBJKGN0eHQpOworCVNLSVBfQkxBTktTOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBUaGVuIHBvc3NpYmx5IGRvYyB0eXBlIGRlY2xhcmF0aW9uKHMpIGFuZCBtb3JlIE1pc2MKKyAgICAgKiAoZG9jdHlwZWRlY2wgTWlzYyopPworICAgICAqLworICAgIGlmICgoQ1VSID09ICc8JykgJiYgKE5YVCgxKSA9PSAnIScpICYmCisJKFVQUCgyKSA9PSAnRCcpICYmIChVUFAoMykgPT0gJ08nKSAmJgorCShVUFAoNCkgPT0gJ0MnKSAmJiAoVVBQKDUpID09ICdUJykgJiYKKwkoVVBQKDYpID09ICdZJykgJiYgKFVQUCg3KSA9PSAnUCcpICYmCisJKFVQUCg4KSA9PSAnRScpKSB7CisJaHRtbFBhcnNlRG9jVHlwZURlY2woY3R4dCk7CisgICAgfQorICAgIFNLSVBfQkxBTktTOworCisgICAgLyoKKyAgICAgKiBQYXJzZSBwb3NzaWJsZSBjb21tZW50cyBhbmQgUElzIGJlZm9yZSBhbnkgY29udGVudAorICAgICAqLworICAgIHdoaWxlICgoKENVUiA9PSAnPCcpICYmIChOWFQoMSkgPT0gJyEnKSAmJgorICAgICAgICAgICAgKE5YVCgyKSA9PSAnLScpICYmIChOWFQoMykgPT0gJy0nKSkgfHwKKwkgICAoKENVUiA9PSAnPCcpICYmIChOWFQoMSkgPT0gJz8nKSkpIHsKKyAgICAgICAgaHRtbFBhcnNlQ29tbWVudChjdHh0KTsKKyAgICAgICAgaHRtbFBhcnNlUEkoY3R4dCk7CisJU0tJUF9CTEFOS1M7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUaW1lIHRvIHN0YXJ0IHBhcnNpbmcgdGhlIHRyZWUgaXRzZWxmCisgICAgICovCisgICAgaHRtbFBhcnNlQ29udGVudEludGVybmFsKGN0eHQpOworCisgICAgLyoKKyAgICAgKiBhdXRvY2xvc2UKKyAgICAgKi8KKyAgICBpZiAoQ1VSID09IDApCisJaHRtbEF1dG9DbG9zZU9uRW5kKGN0eHQpOworCisKKyAgICAvKgorICAgICAqIFNBWDogZW5kIG9mIHRoZSBkb2N1bWVudCBwcm9jZXNzaW5nLgorICAgICAqLworICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKyAgICAgICAgY3R4dC0+c2F4LT5lbmREb2N1bWVudChjdHh0LT51c2VyRGF0YSk7CisKKyAgICBpZiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkgeworCWR0ZCA9IHhtbEdldEludFN1YnNldChjdHh0LT5teURvYyk7CisJaWYgKGR0ZCA9PSBOVUxMKQorCSAgICBjdHh0LT5teURvYy0+aW50U3Vic2V0ID0KKwkJeG1sQ3JlYXRlSW50U3Vic2V0KGN0eHQtPm15RG9jLCBCQURfQ0FTVCAiaHRtbCIsCisJCSAgICBCQURfQ0FTVCAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIsCisJCSAgICBCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiKTsKKyAgICB9CisgICAgaWYgKCEgY3R4dC0+d2VsbEZvcm1lZCkgcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVBhcnNlciBjb250ZXh0cyBoYW5kbGluZwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBodG1sSW5pdFBhcnNlckN0eHQ6CisgKiBAY3R4dDogIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBJbml0aWFsaXplIGEgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KKworc3RhdGljIGludAoraHRtbEluaXRQYXJzZXJDdHh0KGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgaHRtbFNBWEhhbmRsZXIgKnNheDsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybigtMSk7CisgICAgbWVtc2V0KGN0eHQsIDAsIHNpemVvZihodG1sUGFyc2VyQ3R4dCkpOworCisgICAgY3R4dC0+ZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKyAgICBpZiAoY3R4dC0+ZGljdCA9PSBOVUxMKSB7CisgICAgICAgIGh0bWxFcnJNZW1vcnkoTlVMTCwgImh0bWxJbml0UGFyc2VyQ3R4dDogb3V0IG9mIG1lbW9yeVxuIik7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgc2F4ID0gKGh0bWxTQVhIYW5kbGVyICopIHhtbE1hbGxvYyhzaXplb2YoaHRtbFNBWEhhbmRsZXIpKTsKKyAgICBpZiAoc2F4ID09IE5VTEwpIHsKKyAgICAgICAgaHRtbEVyck1lbW9yeShOVUxMLCAiaHRtbEluaXRQYXJzZXJDdHh0OiBvdXQgb2YgbWVtb3J5XG4iKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIG1lbXNldChzYXgsIDAsIHNpemVvZihodG1sU0FYSGFuZGxlcikpOworCisgICAgLyogQWxsb2NhdGUgdGhlIElucHV0IHN0YWNrICovCisgICAgY3R4dC0+aW5wdXRUYWIgPSAoaHRtbFBhcnNlcklucHV0UHRyICopCisgICAgICAgICAgICAgICAgICAgICAgeG1sTWFsbG9jKDUgKiBzaXplb2YoaHRtbFBhcnNlcklucHV0UHRyKSk7CisgICAgaWYgKGN0eHQtPmlucHV0VGFiID09IE5VTEwpIHsKKyAgICAgICAgaHRtbEVyck1lbW9yeShOVUxMLCAiaHRtbEluaXRQYXJzZXJDdHh0OiBvdXQgb2YgbWVtb3J5XG4iKTsKKwljdHh0LT5pbnB1dE5yID0gMDsKKwljdHh0LT5pbnB1dE1heCA9IDA7CisJY3R4dC0+aW5wdXQgPSBOVUxMOworCXJldHVybigtMSk7CisgICAgfQorICAgIGN0eHQtPmlucHV0TnIgPSAwOworICAgIGN0eHQtPmlucHV0TWF4ID0gNTsKKyAgICBjdHh0LT5pbnB1dCA9IE5VTEw7CisgICAgY3R4dC0+dmVyc2lvbiA9IE5VTEw7CisgICAgY3R4dC0+ZW5jb2RpbmcgPSBOVUxMOworICAgIGN0eHQtPnN0YW5kYWxvbmUgPSAtMTsKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9TVEFSVDsKKworICAgIC8qIEFsbG9jYXRlIHRoZSBOb2RlIHN0YWNrICovCisgICAgY3R4dC0+bm9kZVRhYiA9IChodG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MoMTAgKiBzaXplb2YoaHRtbE5vZGVQdHIpKTsKKyAgICBpZiAoY3R4dC0+bm9kZVRhYiA9PSBOVUxMKSB7CisgICAgICAgIGh0bWxFcnJNZW1vcnkoTlVMTCwgImh0bWxJbml0UGFyc2VyQ3R4dDogb3V0IG9mIG1lbW9yeVxuIik7CisJY3R4dC0+bm9kZU5yID0gMDsKKwljdHh0LT5ub2RlTWF4ID0gMDsKKwljdHh0LT5ub2RlID0gTlVMTDsKKwljdHh0LT5pbnB1dE5yID0gMDsKKwljdHh0LT5pbnB1dE1heCA9IDA7CisJY3R4dC0+aW5wdXQgPSBOVUxMOworCXJldHVybigtMSk7CisgICAgfQorICAgIGN0eHQtPm5vZGVOciA9IDA7CisgICAgY3R4dC0+bm9kZU1heCA9IDEwOworICAgIGN0eHQtPm5vZGUgPSBOVUxMOworCisgICAgLyogQWxsb2NhdGUgdGhlIE5hbWUgc3RhY2sgKi8KKyAgICBjdHh0LT5uYW1lVGFiID0gKGNvbnN0IHhtbENoYXIgKiopIHhtbE1hbGxvYygxMCAqIHNpemVvZih4bWxDaGFyICopKTsKKyAgICBpZiAoY3R4dC0+bmFtZVRhYiA9PSBOVUxMKSB7CisgICAgICAgIGh0bWxFcnJNZW1vcnkoTlVMTCwgImh0bWxJbml0UGFyc2VyQ3R4dDogb3V0IG9mIG1lbW9yeVxuIik7CisJY3R4dC0+bmFtZU5yID0gMDsKKwljdHh0LT5uYW1lTWF4ID0gMDsKKwljdHh0LT5uYW1lID0gTlVMTDsKKwljdHh0LT5ub2RlTnIgPSAwOworCWN0eHQtPm5vZGVNYXggPSAwOworCWN0eHQtPm5vZGUgPSBOVUxMOworCWN0eHQtPmlucHV0TnIgPSAwOworCWN0eHQtPmlucHV0TWF4ID0gMDsKKwljdHh0LT5pbnB1dCA9IE5VTEw7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgY3R4dC0+bmFtZU5yID0gMDsKKyAgICBjdHh0LT5uYW1lTWF4ID0gMTA7CisgICAgY3R4dC0+bmFtZSA9IE5VTEw7CisKKyAgICBjdHh0LT5ub2RlSW5mb1RhYiA9IE5VTEw7CisgICAgY3R4dC0+bm9kZUluZm9OciAgPSAwOworICAgIGN0eHQtPm5vZGVJbmZvTWF4ID0gMDsKKworICAgIGlmIChzYXggPT0gTlVMTCkgY3R4dC0+c2F4ID0gKHhtbFNBWEhhbmRsZXJQdHIpICZodG1sRGVmYXVsdFNBWEhhbmRsZXI7CisgICAgZWxzZSB7CisgICAgICAgIGN0eHQtPnNheCA9IHNheDsKKwltZW1jcHkoc2F4LCAmaHRtbERlZmF1bHRTQVhIYW5kbGVyLCBzaXplb2YoeG1sU0FYSGFuZGxlclYxKSk7CisgICAgfQorICAgIGN0eHQtPnVzZXJEYXRhID0gY3R4dDsKKyAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgY3R4dC0+d2VsbEZvcm1lZCA9IDE7CisgICAgY3R4dC0+cmVwbGFjZUVudGl0aWVzID0gMDsKKyAgICBjdHh0LT5saW5lbnVtYmVycyA9IHhtbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlOworICAgIGN0eHQtPmh0bWwgPSAxOworICAgIGN0eHQtPnZjdHh0LmZpbmlzaER0ZCA9IFhNTF9DVFhUX0ZJTklTSF9EVERfMDsKKyAgICBjdHh0LT52Y3R4dC51c2VyRGF0YSA9IGN0eHQ7CisgICAgY3R4dC0+dmN0eHQuZXJyb3IgPSB4bWxQYXJzZXJWYWxpZGl0eUVycm9yOworICAgIGN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc7CisgICAgY3R4dC0+cmVjb3JkX2luZm8gPSAwOworICAgIGN0eHQtPnZhbGlkYXRlID0gMDsKKyAgICBjdHh0LT5uYkNoYXJzID0gMDsKKyAgICBjdHh0LT5jaGVja0luZGV4ID0gMDsKKyAgICBjdHh0LT5jYXRhbG9ncyA9IE5VTEw7CisgICAgeG1sSW5pdE5vZGVJbmZvU2VxKCZjdHh0LT5ub2RlX3NlcSk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGh0bWxGcmVlUGFyc2VyQ3R4dDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIEZyZWUgYWxsIHRoZSBtZW1vcnkgdXNlZCBieSBhIHBhcnNlciBjb250ZXh0LiBIb3dldmVyIHRoZSBwYXJzZWQKKyAqIGRvY3VtZW50IGluIGN0eHQtPm15RG9jIGlzIG5vdCBmcmVlZC4KKyAqLworCit2b2lkCitodG1sRnJlZVBhcnNlckN0eHQoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKK30KKworLyoqCisgKiBodG1sTmV3UGFyc2VyQ3R4dDoKKyAqCisgKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSBhIG5ldyBwYXJzZXIgY29udGV4dC4KKyAqCisgKiBSZXR1cm5zIHRoZSBodG1sUGFyc2VyQ3R4dFB0ciBvciBOVUxMIGluIGNhc2Ugb2YgYWxsb2NhdGlvbiBlcnJvcgorICovCisKK2h0bWxQYXJzZXJDdHh0UHRyCitodG1sTmV3UGFyc2VyQ3R4dCh2b2lkKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxQYXJzZXJDdHh0KSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICBodG1sRXJyTWVtb3J5KE5VTEwsICJOZXdQYXJzZXJDdHh0OiBvdXQgb2YgbWVtb3J5XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChjdHh0LCAwLCBzaXplb2YoeG1sUGFyc2VyQ3R4dCkpOworICAgIGlmIChodG1sSW5pdFBhcnNlckN0eHQoY3R4dCkgPCAwKSB7CisgICAgICAgIGh0bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihjdHh0KTsKK30KKworLyoqCisgKiBodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dDoKKyAqIEBidWZmZXI6ICBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5CisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICoKKyAqIENyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBIVE1MIGluLW1lbW9yeSBkb2N1bWVudC4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTAorICovCitodG1sUGFyc2VyQ3R4dFB0cgoraHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSkgeworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBidWY7CisKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChzaXplIDw9IDApCisJcmV0dXJuKE5VTEwpOworCisgICAgY3R4dCA9IGh0bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBidWYgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbShidWZmZXIsIHNpemUsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChidWYgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisgICAgaW5wdXQgPSB4bWxOZXdJbnB1dFN0cmVhbShjdHh0KTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpbnB1dC0+ZmlsZW5hbWUgPSBOVUxMOworICAgIGlucHV0LT5idWYgPSBidWY7CisgICAgaW5wdXQtPmJhc2UgPSBpbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXQtPmN1ciA9IGlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICBpbnB1dC0+ZW5kID0gJmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbnB1dC0+YnVmLT5idWZmZXItPnVzZV07CisKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXQpOworICAgIHJldHVybihjdHh0KTsKK30KKworLyoqCisgKiBodG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dDoKKyAqIEBjdXI6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcgorICogQGVuY29kaW5nOiAgYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgSFRNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICoKKyAqIENyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBIVE1MIGRvY3VtZW50LgorICoKKyAqIFRPRE86IGNoZWNrIHRoZSBuZWVkIHRvIGFkZCBlbmNvZGluZyBoYW5kbGluZyB0aGVyZQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMCisgKi8KK3N0YXRpYyBodG1sUGFyc2VyQ3R4dFB0cgoraHRtbENyZWF0ZURvY1BhcnNlckN0eHQoY29uc3QgeG1sQ2hhciAqY3VyLCBjb25zdCBjaGFyICplbmNvZGluZykgeworICAgIGludCBsZW47CisgICAgaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgbGVuID0geG1sU3RybGVuKGN1cik7CisgICAgY3R4dCA9IGh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KChjaGFyICopY3VyLCBsZW4pOworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwl4bWxDaGFyRW5jb2RpbmcgZW5jOworCXhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsKKworCWlmIChjdHh0LT5pbnB1dC0+ZW5jb2RpbmcgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdHh0LT5pbnB1dC0+ZW5jb2RpbmcpOworCWN0eHQtPmlucHV0LT5lbmNvZGluZyA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBlbmNvZGluZyk7CisKKwllbmMgPSB4bWxQYXJzZUNoYXJFbmNvZGluZyhlbmNvZGluZyk7CisJLyoKKwkgKiByZWdpc3RlcmVkIHNldCBvZiBrbm93biBlbmNvZGluZ3MKKwkgKi8KKwlpZiAoZW5jICE9IFhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SKSB7CisJICAgIHhtbFN3aXRjaEVuY29kaW5nKGN0eHQsIGVuYyk7CisJICAgIGlmIChjdHh0LT5lcnJObyA9PSBYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HKSB7CisJCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HLAorCQkgICAgICAgICAgICAgIlVuc3VwcG9ydGVkIGVuY29kaW5nICVzXG4iLAorCQkJICAgICAoY29uc3QgeG1sQ2hhciAqKSBlbmNvZGluZywgTlVMTCk7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiBmYWxsYmFjayBmb3IgdW5rbm93biBlbmNvZGluZ3MKKwkgICAgICovCisJICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigoY29uc3QgY2hhciAqKSBlbmNvZGluZyk7CisJICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHsKKwkJeG1sU3dpdGNoVG9FbmNvZGluZyhjdHh0LCBoYW5kbGVyKTsKKwkgICAgfSBlbHNlIHsKKwkJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcsCisJCSAgICAgICAgICAgICAiVW5zdXBwb3J0ZWQgZW5jb2RpbmcgJXNcbiIsCisJCQkgICAgIChjb25zdCB4bWxDaGFyICopIGVuY29kaW5nLCBOVUxMKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKGN0eHQpOworfQorCisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKglQcm9ncmVzc2l2ZSBwYXJzaW5nIGludGVyZmFjZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIGh0bWxQYXJzZUxvb2t1cFNlcXVlbmNlOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAZmlyc3Q6ICB0aGUgZmlyc3QgY2hhciB0byBsb29rdXAKKyAqIEBuZXh0OiAgdGhlIG5leHQgY2hhciB0byBsb29rdXAgb3IgemVybworICogQHRoaXJkOiAgdGhlIG5leHQgY2hhciB0byBsb29rdXAgb3IgemVybworICogQGNvbW1lbnQ6IGZsYWcgdG8gZm9yY2UgY2hlY2tpbmcgaW5zaWRlIGNvbW1lbnRzCisgKgorICogVHJ5IHRvIGZpbmQgaWYgYSBzZXF1ZW5jZSAoZmlyc3QsIG5leHQsIHRoaXJkKSBvciAganVzdCAoZmlyc3QgbmV4dCkgb3IKKyAqIChmaXJzdCkgaXMgYXZhaWxhYmxlIGluIHRoZSBpbnB1dCBzdHJlYW0uCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBhIHNpZGUgZWZmZWN0IG9mIChwb3NzaWJseSkgaW5jcmVtZW50aW5nIGN0eHQtPmNoZWNrSW5kZXgKKyAqIHRvIGF2b2lkIHJlc2Nhbm5pbmcgc2VxdWVuY2VzIG9mIGJ5dGVzLCBpdCBET0VTIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlCisgKiBwYXJzZXIsIGRvIG5vdCB1c2UgbGliZXJhbGx5LgorICogVGhpcyBpcyBiYXNpY2FsbHkgc2ltaWxhciB0byB4bWxQYXJzZUxvb2t1cFNlcXVlbmNlKCkKKyAqCisgKiBSZXR1cm5zIHRoZSBpbmRleCB0byB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50IGlmIHRoZSBmdWxsIHNlcXVlbmNlCisgKiAgICAgIGlzIGF2YWlsYWJsZSwgLTEgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50CitodG1sUGFyc2VMb29rdXBTZXF1ZW5jZShodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxDaGFyIGZpcnN0LAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciBuZXh0LCB4bWxDaGFyIHRoaXJkLCBpbnQgaXNjb21tZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlnbm9yZWF0dHJ2YWwpCit7CisgICAgaW50IGJhc2UsIGxlbjsKKyAgICBodG1sUGFyc2VySW5wdXRQdHIgaW47CisgICAgY29uc3QgeG1sQ2hhciAqYnVmOworICAgIGludCBpbmNvbW1lbnQgPSAwOworICAgIGludCBpbnZhbHVlID0gMDsKKyAgICBjaGFyIHZhbGRlbGxpbSA9IDB4MDsKKworICAgIGluID0gY3R4dC0+aW5wdXQ7CisgICAgaWYgKGluID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgYmFzZSA9IGluLT5jdXIgLSBpbi0+YmFzZTsKKyAgICBpZiAoYmFzZSA8IDApCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgaWYgKGN0eHQtPmNoZWNrSW5kZXggPiBiYXNlKQorICAgICAgICBiYXNlID0gY3R4dC0+Y2hlY2tJbmRleDsKKworICAgIGlmIChpbi0+YnVmID09IE5VTEwpIHsKKyAgICAgICAgYnVmID0gaW4tPmJhc2U7CisgICAgICAgIGxlbiA9IGluLT5sZW5ndGg7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYnVmID0gaW4tPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworICAgICAgICBsZW4gPSBpbi0+YnVmLT5idWZmZXItPnVzZTsKKyAgICB9CisKKyAgICAvKiB0YWtlIGludG8gYWNjb3VudCB0aGUgc2VxdWVuY2UgbGVuZ3RoICovCisgICAgaWYgKHRoaXJkKQorICAgICAgICBsZW4gLT0gMjsKKyAgICBlbHNlIGlmIChuZXh0KQorICAgICAgICBsZW4tLTsKKyAgICBmb3IgKDsgYmFzZSA8IGxlbjsgYmFzZSsrKSB7CisgICAgICAgIGlmICgoIWluY29tbWVudCkgJiYgKGJhc2UgKyA0IDwgbGVuKSAmJiAoIWlzY29tbWVudCkpIHsKKyAgICAgICAgICAgIGlmICgoYnVmW2Jhc2VdID09ICc8JykgJiYgKGJ1ZltiYXNlICsgMV0gPT0gJyEnKSAmJgorICAgICAgICAgICAgICAgIChidWZbYmFzZSArIDJdID09ICctJykgJiYgKGJ1ZltiYXNlICsgM10gPT0gJy0nKSkgeworICAgICAgICAgICAgICAgIGluY29tbWVudCA9IDE7CisgICAgICAgICAgICAgICAgLyogZG8gbm90IGluY3JlbWVudCBwYXN0IDwhIC0gc29tZSBwZW9wbGUgdXNlIDwhLS0+ICovCisgICAgICAgICAgICAgICAgYmFzZSArPSAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpZ25vcmVhdHRydmFsKSB7CisgICAgICAgICAgICBpZiAoYnVmW2Jhc2VdID09ICciJyB8fCBidWZbYmFzZV0gPT0gJ1wnJykgeworICAgICAgICAgICAgICAgIGlmIChpbnZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChidWZbYmFzZV0gPT0gdmFsZGVsbGltKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsZGVsbGltID0gYnVmW2Jhc2VdOworICAgICAgICAgICAgICAgICAgICBpbnZhbHVlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChpbnZhbHVlKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluY29tbWVudCkgeworICAgICAgICAgICAgaWYgKGJhc2UgKyAzID4gbGVuKQorICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgaWYgKChidWZbYmFzZV0gPT0gJy0nKSAmJiAoYnVmW2Jhc2UgKyAxXSA9PSAnLScpICYmCisgICAgICAgICAgICAgICAgKGJ1ZltiYXNlICsgMl0gPT0gJz4nKSkgeworICAgICAgICAgICAgICAgIGluY29tbWVudCA9IDA7CisgICAgICAgICAgICAgICAgYmFzZSArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZltiYXNlXSA9PSBmaXJzdCkgeworICAgICAgICAgICAgaWYgKHRoaXJkICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoKGJ1ZltiYXNlICsgMV0gIT0gbmV4dCkgfHwgKGJ1ZltiYXNlICsgMl0gIT0gdGhpcmQpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZltiYXNlICsgMV0gIT0gbmV4dCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisgICAgICAgICAgICBpZiAobmV4dCA9PSAwKQorICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSFBQOiBsb29rdXAgJyVjJyBmb3VuZCBhdCAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QsIGJhc2UpOworICAgICAgICAgICAgZWxzZSBpZiAodGhpcmQgPT0gMCkKKyAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhQUDogbG9va3VwICclYyVjJyBmb3VuZCBhdCAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QsIG5leHQsIGJhc2UpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSFBQOiBsb29rdXAgJyVjJWMlYycgZm91bmQgYXQgJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LCBuZXh0LCB0aGlyZCwgYmFzZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiAoYmFzZSAtIChpbi0+Y3VyIC0gaW4tPmJhc2UpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoKCFpbmNvbW1lbnQpICYmICghaW52YWx1ZSkpCisgICAgICAgIGN0eHQtPmNoZWNrSW5kZXggPSBiYXNlOworI2lmZGVmIERFQlVHX1BVU0gKKyAgICBpZiAobmV4dCA9PSAwKQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJIUFA6IGxvb2t1cCAnJWMnIGZhaWxlZFxuIiwgZmlyc3QpOworICAgIGVsc2UgaWYgKHRoaXJkID09IDApCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIkhQUDogbG9va3VwICclYyVjJyBmYWlsZWRcbiIsIGZpcnN0LCBuZXh0KTsKKyAgICBlbHNlCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIkhQUDogbG9va3VwICclYyVjJWMnIGZhaWxlZFxuIiwgZmlyc3QsIG5leHQsCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlyZCk7CisjZW5kaWYKKyAgICByZXR1cm4gKC0xKTsKK30KKworLyoqCisgKiBodG1sUGFyc2VMb29rdXBDaGFyczoKKyAqIEBjdHh0OiBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAc3RvcDogQXJyYXkgb2YgY2hhcnMsIHdoaWNoIHN0b3AgdGhlIGxvb2t1cC4KKyAqIEBzdG9wTGVuOiBMZW5ndGggb2Ygc3RvcC1BcnJheQorICoKKyAqIFRyeSB0byBmaW5kIGlmIGFueSBjaGFyIG9mIHRoZSBzdG9wLUFycmF5IGlzIGF2YWlsYWJsZSBpbiB0aGUgaW5wdXQgCisgKiBzdHJlYW0uCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBhIHNpZGUgZWZmZWN0IG9mIChwb3NzaWJseSkgaW5jcmVtZW50aW5nIGN0eHQtPmNoZWNrSW5kZXgKKyAqIHRvIGF2b2lkIHJlc2Nhbm5pbmcgc2VxdWVuY2VzIG9mIGJ5dGVzLCBpdCBET0VTIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlCisgKiBwYXJzZXIsIGRvIG5vdCB1c2UgbGliZXJhbGx5LgorICoKKyAqIFJldHVybnMgdGhlIGluZGV4IHRvIHRoZSBjdXJyZW50IHBhcnNpbmcgcG9pbnQgaWYgYSBzdG9wQ2hhciAKKyAqICAgICAgaXMgYXZhaWxhYmxlLCAtMSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK2h0bWxQYXJzZUxvb2t1cENoYXJzKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKiBzdG9wLAorICAgICAgICAgICAgICAgICAgICAgaW50IHN0b3BMZW4pCit7CisgICAgaW50IGJhc2UsIGxlbjsKKyAgICBodG1sUGFyc2VySW5wdXRQdHIgaW47CisgICAgY29uc3QgeG1sQ2hhciAqYnVmOworICAgIGludCBpbmNvbW1lbnQgPSAwOworICAgIGludCBpOworCisgICAgaW4gPSBjdHh0LT5pbnB1dDsKKyAgICBpZiAoaW4gPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBiYXNlID0gaW4tPmN1ciAtIGluLT5iYXNlOworICAgIGlmIChiYXNlIDwgMCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpZiAoY3R4dC0+Y2hlY2tJbmRleCA+IGJhc2UpCisgICAgICAgIGJhc2UgPSBjdHh0LT5jaGVja0luZGV4OworCisgICAgaWYgKGluLT5idWYgPT0gTlVMTCkgeworICAgICAgICBidWYgPSBpbi0+YmFzZTsKKyAgICAgICAgbGVuID0gaW4tPmxlbmd0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBidWYgPSBpbi0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgICAgIGxlbiA9IGluLT5idWYtPmJ1ZmZlci0+dXNlOworICAgIH0KKworICAgIGZvciAoOyBiYXNlIDwgbGVuOyBiYXNlKyspIHsKKyAgICAgICAgaWYgKCFpbmNvbW1lbnQgJiYgKGJhc2UgKyA0IDwgbGVuKSkgeworICAgICAgICAgICAgaWYgKChidWZbYmFzZV0gPT0gJzwnKSAmJiAoYnVmW2Jhc2UgKyAxXSA9PSAnIScpICYmCisgICAgICAgICAgICAgICAgKGJ1ZltiYXNlICsgMl0gPT0gJy0nKSAmJiAoYnVmW2Jhc2UgKyAzXSA9PSAnLScpKSB7CisgICAgICAgICAgICAgICAgaW5jb21tZW50ID0gMTsKKyAgICAgICAgICAgICAgICAvKiBkbyBub3QgaW5jcmVtZW50IHBhc3QgPCEgLSBzb21lIHBlb3BsZSB1c2UgPCEtLT4gKi8KKyAgICAgICAgICAgICAgICBiYXNlICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluY29tbWVudCkgeworICAgICAgICAgICAgaWYgKGJhc2UgKyAzID4gbGVuKQorICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgaWYgKChidWZbYmFzZV0gPT0gJy0nKSAmJiAoYnVmW2Jhc2UgKyAxXSA9PSAnLScpICYmCisgICAgICAgICAgICAgICAgKGJ1ZltiYXNlICsgMl0gPT0gJz4nKSkgeworICAgICAgICAgICAgICAgIGluY29tbWVudCA9IDA7CisgICAgICAgICAgICAgICAgYmFzZSArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHN0b3BMZW47ICsraSkgeworICAgICAgICAgICAgaWYgKGJ1ZltiYXNlXSA9PSBzdG9wW2ldKSB7CisgICAgICAgICAgICAgICAgY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIChiYXNlIC0gKGluLT5jdXIgLSBpbi0+YmFzZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGN0eHQtPmNoZWNrSW5kZXggPSBiYXNlOworICAgIHJldHVybiAoLTEpOworfQorCisvKioKKyAqIGh0bWxQYXJzZVRyeU9yRmluaXNoOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAdGVybWluYXRlOiAgbGFzdCBjaHVuayBpbmRpY2F0b3IKKyAqCisgKiBUcnkgdG8gcHJvZ3Jlc3Mgb24gcGFyc2luZworICoKKyAqIFJldHVybnMgemVybyBpZiBubyBwYXJzaW5nIHdhcyBwb3NzaWJsZQorICovCitzdGF0aWMgaW50CitodG1sUGFyc2VUcnlPckZpbmlzaChodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgdGVybWluYXRlKSB7CisgICAgaW50IHJldCA9IDA7CisgICAgaHRtbFBhcnNlcklucHV0UHRyIGluOworICAgIGludCBhdmFpbCA9IDA7CisgICAgeG1sQ2hhciBjdXIsIG5leHQ7CisKKyNpZmRlZiBERUJVR19QVVNICisgICAgc3dpdGNoIChjdHh0LT5pbnN0YXRlKSB7CisJY2FzZSBYTUxfUEFSU0VSX0VPRjoKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiSFBQOiB0cnkgRU9GXG4iKTsgYnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX1NUQVJUOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJIUFA6IHRyeSBTVEFSVFxuIik7IGJyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9NSVNDOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJIUFA6IHRyeSBNSVNDXG4iKTticmVhazsKKwljYXNlIFhNTF9QQVJTRVJfQ09NTUVOVDoKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiSFBQOiB0cnkgQ09NTUVOVFxuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX1BST0xPRzoKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiSFBQOiB0cnkgUFJPTE9HXG4iKTticmVhazsKKwljYXNlIFhNTF9QQVJTRVJfU1RBUlRfVEFHOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJIUFA6IHRyeSBTVEFSVF9UQUdcbiIpO2JyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9DT05URU5UOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJIUFA6IHRyeSBDT05URU5UXG4iKTticmVhazsKKwljYXNlIFhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTjoKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiSFBQOiB0cnkgQ0RBVEFfU0VDVElPTlxuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX0VORF9UQUc6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIkhQUDogdHJ5IEVORF9UQUdcbiIpO2JyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9FTlRJVFlfREVDTDoKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiSFBQOiB0cnkgRU5USVRZX0RFQ0xcbiIpO2JyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUU6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIkhQUDogdHJ5IEVOVElUWV9WQUxVRVxuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRToKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiSFBQOiB0cnkgQVRUUklCVVRFX1ZBTFVFXG4iKTticmVhazsKKwljYXNlIFhNTF9QQVJTRVJfRFREOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJIUFA6IHRyeSBEVERcbiIpO2JyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9FUElMT0c6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIkhQUDogdHJ5IEVQSUxPR1xuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX1BJOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJIUFA6IHRyeSBQSVxuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJIUFA6IHRyeSBTWVNURU1fTElURVJBTFxuIik7YnJlYWs7CisgICAgfQorI2VuZGlmCisKKyAgICB3aGlsZSAoMSkgeworCisJaW4gPSBjdHh0LT5pbnB1dDsKKwlpZiAoaW4gPT0gTlVMTCkgYnJlYWs7CisJaWYgKGluLT5idWYgPT0gTlVMTCkKKwkgICAgYXZhaWwgPSBpbi0+bGVuZ3RoIC0gKGluLT5jdXIgLSBpbi0+YmFzZSk7CisJZWxzZQorCSAgICBhdmFpbCA9IGluLT5idWYtPmJ1ZmZlci0+dXNlIC0gKGluLT5jdXIgLSBpbi0+YmFzZSk7CisJaWYgKChhdmFpbCA9PSAwKSAmJiAodGVybWluYXRlKSkgeworCSAgICBodG1sQXV0b0Nsb3NlT25FbmQoY3R4dCk7CisJICAgIGlmICgoY3R4dC0+bmFtZU5yID09IDApICYmIChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfRU9GKSkgeworCQkvKgorCQkgKiBTQVg6IGVuZCBvZiB0aGUgZG9jdW1lbnQgcHJvY2Vzc2luZy4KKwkJICovCisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKwkJaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPmVuZERvY3VtZW50ICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT5lbmREb2N1bWVudChjdHh0LT51c2VyRGF0YSk7CisJICAgIH0KKwl9CisgICAgICAgIGlmIChhdmFpbCA8IDEpCisJICAgIGdvdG8gZG9uZTsKKwljdXIgPSBpbi0+Y3VyWzBdOworCWlmIChjdXIgPT0gMCkgeworCSAgICBTS0lQKDEpOworCSAgICBjb250aW51ZTsKKwl9CisKKyAgICAgICAgc3dpdGNoIChjdHh0LT5pbnN0YXRlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfRU9GOgorCSAgICAgICAgLyoKKwkJICogRG9jdW1lbnQgcGFyc2luZyBpcyBkb25lICEKKwkJICovCisJICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfU1RBUlQ6CisJICAgICAgICAvKgorCQkgKiBWZXJ5IGZpcnN0IGNoYXJzIHJlYWQgZnJvbSB0aGUgZG9jdW1lbnQgZmxvdy4KKwkJICovCisJCWN1ciA9IGluLT5jdXJbMF07CisJCWlmIChJU19CTEFOS19DSChjdXIpKSB7CisJCSAgICBTS0lQX0JMQU5LUzsKKwkJICAgIGlmIChpbi0+YnVmID09IE5VTEwpCisJCQlhdmFpbCA9IGluLT5sZW5ndGggLSAoaW4tPmN1ciAtIGluLT5iYXNlKTsKKwkJICAgIGVsc2UKKwkJCWF2YWlsID0gaW4tPmJ1Zi0+YnVmZmVyLT51c2UgLSAoaW4tPmN1ciAtIGluLT5iYXNlKTsKKwkJfQorCQlpZiAoKGN0eHQtPnNheCkgJiYgKGN0eHQtPnNheC0+c2V0RG9jdW1lbnRMb2NhdG9yKSkKKwkJICAgIGN0eHQtPnNheC0+c2V0RG9jdW1lbnRMb2NhdG9yKGN0eHQtPnVzZXJEYXRhLAorCQkJCQkJICAmeG1sRGVmYXVsdFNBWExvY2F0b3IpOworCQlpZiAoKGN0eHQtPnNheCkgJiYgKGN0eHQtPnNheC0+c3RhcnREb2N1bWVudCkgJiYKKwkgICAgICAgICAgICAoIWN0eHQtPmRpc2FibGVTQVgpKQorCQkgICAgY3R4dC0+c2F4LT5zdGFydERvY3VtZW50KGN0eHQtPnVzZXJEYXRhKTsKKworCQljdXIgPSBpbi0+Y3VyWzBdOworCQluZXh0ID0gaW4tPmN1clsxXTsKKwkJaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAoVVBQKDIpID09ICdEJykgJiYgKFVQUCgzKSA9PSAnTycpICYmCisJCSAgICAoVVBQKDQpID09ICdDJykgJiYgKFVQUCg1KSA9PSAnVCcpICYmCisJCSAgICAoVVBQKDYpID09ICdZJykgJiYgKFVQUCg3KSA9PSAnUCcpICYmCisJCSAgICAoVVBQKDgpID09ICdFJykpIHsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoaHRtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJz4nLCAwLCAwLCAwLCAxKSA8IDApKQorCQkJZ290byBkb25lOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IFBhcnNpbmcgaW50ZXJuYWwgc3Vic2V0XG4iKTsKKyNlbmRpZgorCQkgICAgaHRtbFBhcnNlRG9jVHlwZURlY2woY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9QUk9MT0c7CisjaWZkZWYgREVCVUdfUFVTSAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkhQUDogZW50ZXJpbmcgUFJPTE9HXG4iKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9NSVNDOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IGVudGVyaW5nIE1JU0NcbiIpOworI2VuZGlmCisJCX0KKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfTUlTQzoKKwkJU0tJUF9CTEFOS1M7CisJCWlmIChpbi0+YnVmID09IE5VTEwpCisJCSAgICBhdmFpbCA9IGluLT5sZW5ndGggLSAoaW4tPmN1ciAtIGluLT5iYXNlKTsKKwkJZWxzZQorCQkgICAgYXZhaWwgPSBpbi0+YnVmLT5idWZmZXItPnVzZSAtIChpbi0+Y3VyIC0gaW4tPmJhc2UpOworCQlpZiAoYXZhaWwgPCAyKQorCQkgICAgZ290byBkb25lOworCQljdXIgPSBpbi0+Y3VyWzBdOworCQluZXh0ID0gaW4tPmN1clsxXTsKKwkgICAgICAgIGlmICgoY3VyID09ICc8JykgJiYgKG5leHQgPT0gJyEnKSAmJgorCQkgICAgKGluLT5jdXJbMl0gPT0gJy0nKSAmJiAoaW4tPmN1clszXSA9PSAnLScpKSB7CisJCSAgICBpZiAoKCF0ZXJtaW5hdGUpICYmCisJCSAgICAgICAgKGh0bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICctJywgJy0nLCAnPicsIDEsIDEpIDwgMCkpCisJCQlnb3RvIGRvbmU7CisjaWZkZWYgREVCVUdfUFVTSAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkhQUDogUGFyc2luZyBDb21tZW50XG4iKTsKKyNlbmRpZgorCQkgICAgaHRtbFBhcnNlQ29tbWVudChjdHh0KTsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX01JU0M7CisJICAgICAgICB9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnPycpKSB7CisJCSAgICBpZiAoKCF0ZXJtaW5hdGUpICYmCisJCSAgICAgICAgKGh0bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICc+JywgMCwgMCwgMCwgMSkgPCAwKSkKKwkJCWdvdG8gZG9uZTsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiSFBQOiBQYXJzaW5nIFBJXG4iKTsKKyNlbmRpZgorCQkgICAgaHRtbFBhcnNlUEkoY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9NSVNDOworCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAoVVBQKDIpID09ICdEJykgJiYgKFVQUCgzKSA9PSAnTycpICYmCisJCSAgICAoVVBQKDQpID09ICdDJykgJiYgKFVQUCg1KSA9PSAnVCcpICYmCisJCSAgICAoVVBQKDYpID09ICdZJykgJiYgKFVQUCg3KSA9PSAnUCcpICYmCisJCSAgICAoVVBQKDgpID09ICdFJykpIHsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoaHRtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJz4nLCAwLCAwLCAwLCAxKSA8IDApKQorCQkJZ290byBkb25lOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IFBhcnNpbmcgaW50ZXJuYWwgc3Vic2V0XG4iKTsKKyNlbmRpZgorCQkgICAgaHRtbFBhcnNlRG9jVHlwZURlY2woY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9QUk9MT0c7CisjaWZkZWYgREVCVUdfUFVTSAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkhQUDogZW50ZXJpbmcgUFJPTE9HXG4iKTsKKyNlbmRpZgorCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAgICAgICAgKGF2YWlsIDwgOSkpIHsKKwkJICAgIGdvdG8gZG9uZTsKKwkJfSBlbHNlIHsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1NUQVJUX1RBRzsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiSFBQOiBlbnRlcmluZyBTVEFSVF9UQUdcbiIpOworI2VuZGlmCisJCX0KKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfUFJPTE9HOgorCQlTS0lQX0JMQU5LUzsKKwkJaWYgKGluLT5idWYgPT0gTlVMTCkKKwkJICAgIGF2YWlsID0gaW4tPmxlbmd0aCAtIChpbi0+Y3VyIC0gaW4tPmJhc2UpOworCQllbHNlCisJCSAgICBhdmFpbCA9IGluLT5idWYtPmJ1ZmZlci0+dXNlIC0gKGluLT5jdXIgLSBpbi0+YmFzZSk7CisJCWlmIChhdmFpbCA8IDIpCisJCSAgICBnb3RvIGRvbmU7CisJCWN1ciA9IGluLT5jdXJbMF07CisJCW5leHQgPSBpbi0+Y3VyWzFdOworCQlpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYKKwkJICAgIChpbi0+Y3VyWzJdID09ICctJykgJiYgKGluLT5jdXJbM10gPT0gJy0nKSkgeworCQkgICAgaWYgKCghdGVybWluYXRlKSAmJgorCQkgICAgICAgIChodG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnLScsICctJywgJz4nLCAxLCAxKSA8IDApKQorCQkJZ290byBkb25lOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IFBhcnNpbmcgQ29tbWVudFxuIik7CisjZW5kaWYKKwkJICAgIGh0bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9QUk9MT0c7CisJICAgICAgICB9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnPycpKSB7CisJCSAgICBpZiAoKCF0ZXJtaW5hdGUpICYmCisJCSAgICAgICAgKGh0bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICc+JywgMCwgMCwgMCwgMSkgPCAwKSkKKwkJCWdvdG8gZG9uZTsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiSFBQOiBQYXJzaW5nIFBJXG4iKTsKKyNlbmRpZgorCQkgICAgaHRtbFBhcnNlUEkoY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9QUk9MT0c7CisJCX0gZWxzZSBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYKKwkJICAgICAgICAgICAoYXZhaWwgPCA0KSkgeworCQkgICAgZ290byBkb25lOworCQl9IGVsc2UgeworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfU1RBUlRfVEFHOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IGVudGVyaW5nIFNUQVJUX1RBR1xuIik7CisjZW5kaWYKKwkJfQorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9FUElMT0c6CisJCWlmIChpbi0+YnVmID09IE5VTEwpCisJCSAgICBhdmFpbCA9IGluLT5sZW5ndGggLSAoaW4tPmN1ciAtIGluLT5iYXNlKTsKKwkJZWxzZQorCQkgICAgYXZhaWwgPSBpbi0+YnVmLT5idWZmZXItPnVzZSAtIChpbi0+Y3VyIC0gaW4tPmJhc2UpOworCQlpZiAoYXZhaWwgPCAxKQorCQkgICAgZ290byBkb25lOworCQljdXIgPSBpbi0+Y3VyWzBdOworCQlpZiAoSVNfQkxBTktfQ0goY3VyKSkgeworCQkgICAgaHRtbFBhcnNlQ2hhckRhdGEoY3R4dCk7CisJCSAgICBnb3RvIGRvbmU7CisJCX0KKwkJaWYgKGF2YWlsIDwgMikKKwkJICAgIGdvdG8gZG9uZTsKKwkJbmV4dCA9IGluLT5jdXJbMV07CisJICAgICAgICBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYKKwkJICAgIChpbi0+Y3VyWzJdID09ICctJykgJiYgKGluLT5jdXJbM10gPT0gJy0nKSkgeworCQkgICAgaWYgKCghdGVybWluYXRlKSAmJgorCQkgICAgICAgIChodG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnLScsICctJywgJz4nLCAxLCAxKSA8IDApKQorCQkJZ290byBkb25lOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IFBhcnNpbmcgQ29tbWVudFxuIik7CisjZW5kaWYKKwkJICAgIGh0bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FUElMT0c7CisJICAgICAgICB9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnPycpKSB7CisJCSAgICBpZiAoKCF0ZXJtaW5hdGUpICYmCisJCSAgICAgICAgKGh0bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICc+JywgMCwgMCwgMCwgMSkgPCAwKSkKKwkJCWdvdG8gZG9uZTsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiSFBQOiBQYXJzaW5nIFBJXG4iKTsKKyNlbmRpZgorCQkgICAgaHRtbFBhcnNlUEkoY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FUElMT0c7CisJCX0gZWxzZSBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYKKwkJICAgICAgICAgICAoYXZhaWwgPCA0KSkgeworCQkgICAgZ290byBkb25lOworCQl9IGVsc2UgeworCQkgICAgY3R4dC0+ZXJyTm8gPSBYTUxfRVJSX0RPQ1VNRU5UX0VORDsKKwkJICAgIGN0eHQtPndlbGxGb3JtZWQgPSAwOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRU9GOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IGVudGVyaW5nIEVPRlxuIik7CisjZW5kaWYKKwkJICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKwkJCWN0eHQtPnNheC0+ZW5kRG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCQkgICAgZ290byBkb25lOworCQl9CisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX1NUQVJUX1RBRzogeworCSAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKwkJaW50IGZhaWxlZDsKKwkJY29uc3QgaHRtbEVsZW1EZXNjICogaW5mbzsKKworCQlpZiAoYXZhaWwgPCAyKQorCQkgICAgZ290byBkb25lOworCQljdXIgPSBpbi0+Y3VyWzBdOworCSAgICAgICAgaWYgKGN1ciAhPSAnPCcpIHsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisjaWZkZWYgREVCVUdfUFVTSAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkhQUDogZW50ZXJpbmcgQ09OVEVOVFxuIik7CisjZW5kaWYKKwkJICAgIGJyZWFrOworCQl9CisJCWlmIChpbi0+Y3VyWzFdID09ICcvJykgeworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRU5EX1RBRzsKKwkJICAgIGN0eHQtPmNoZWNrSW5kZXggPSAwOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJIUFA6IGVudGVyaW5nIEVORF9UQUdcbiIpOworI2VuZGlmCisJCSAgICBicmVhazsKKwkJfQorCQlpZiAoKCF0ZXJtaW5hdGUpICYmCisJCSAgICAoaHRtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJz4nLCAwLCAwLCAwLCAxKSA8IDApKQorCQkgICAgZ290byBkb25lOworCisJCWZhaWxlZCA9IGh0bWxQYXJzZVN0YXJ0VGFnKGN0eHQpOworCQluYW1lID0gY3R4dC0+bmFtZTsKKwkJaWYgKChmYWlsZWQgPT0gLTEpIHx8CisJCSAgICAobmFtZSA9PSBOVUxMKSkgeworCQkgICAgaWYgKENVUiA9PSAnPicpCisJCQlORVhUOworCQkgICAgYnJlYWs7CisJCX0KKworCQkvKgorCQkgKiBMb29rdXAgdGhlIGluZm8gZm9yIHRoYXQgZWxlbWVudC4KKwkJICovCisJCWluZm8gPSBodG1sVGFnTG9va3VwKG5hbWUpOworCQlpZiAoaW5mbyA9PSBOVUxMKSB7CisJCSAgICBodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0hUTUxfVU5LTk9XTl9UQUcsCisJCSAgICAgICAgICAgICAgICAgIlRhZyAlcyBpbnZhbGlkXG4iLCBuYW1lLCBOVUxMKTsKKwkJfQorCisJCS8qCisJCSAqIENoZWNrIGZvciBhbiBFbXB0eSBFbGVtZW50IGxhYmVsZWQgdGhlIFhNTC9TR01MIHdheQorCQkgKi8KKwkJaWYgKChDVVIgPT0gJy8nKSAmJiAoTlhUKDEpID09ICc+JykpIHsKKwkJICAgIFNLSVAoMik7CisJCSAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpKQorCQkJY3R4dC0+c2F4LT5lbmRFbGVtZW50KGN0eHQtPnVzZXJEYXRhLCBuYW1lKTsKKwkJICAgIGh0bWxuYW1lUG9wKGN0eHQpOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiSFBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorCQkgICAgYnJlYWs7CisJCX0KKworCQlpZiAoQ1VSID09ICc+JykgeworCQkgICAgTkVYVDsKKwkJfSBlbHNlIHsKKwkJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0dUX1JFUVVJUkVELAorCQkgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgJXNcbiIsCisJCQkJIG5hbWUsIE5VTEwpOworCisJCSAgICAvKgorCQkgICAgICogZW5kIG9mIHBhcnNpbmcgb2YgdGhpcyBub2RlLgorCQkgICAgICovCisJCSAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgY3R4dC0+bmFtZSkpIHsKKwkJCW5vZGVQb3AoY3R4dCk7CisJCQlodG1sbmFtZVBvcChjdHh0KTsKKwkJICAgIH0KKworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiSFBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorCQkgICAgYnJlYWs7CisJCX0KKworCQkvKgorCQkgKiBDaGVjayBmb3IgYW4gRW1wdHkgRWxlbWVudCBmcm9tIERURCBkZWZpbml0aW9uCisJCSAqLworCQlpZiAoKGluZm8gIT0gTlVMTCkgJiYgKGluZm8tPmVtcHR5KSkgeworCQkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+ZW5kRWxlbWVudCAhPSBOVUxMKSkKKwkJCWN0eHQtPnNheC0+ZW5kRWxlbWVudChjdHh0LT51c2VyRGF0YSwgbmFtZSk7CisJCSAgICBodG1sbmFtZVBvcChjdHh0KTsKKwkJfQorCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworI2lmZGVmIERFQlVHX1BVU0gKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiSFBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICB9CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfQ09OVEVOVDogeworCQlsb25nIGNvbnM7CisgICAgICAgICAgICAgICAgLyoKKwkJICogSGFuZGxlIHByZXBhcnNlZCBlbnRpdGllcyBhbmQgY2hhclJlZgorCQkgKi8KKwkJaWYgKGN0eHQtPnRva2VuICE9IDApIHsKKwkJICAgIHhtbENoYXIgY2hyWzJdID0geyAwICwgMCB9IDsKKworCQkgICAgY2hyWzBdID0gKHhtbENoYXIpIGN0eHQtPnRva2VuOworCQkgICAgaHRtbENoZWNrUGFyYWdyYXBoKGN0eHQpOworCQkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKSkKKwkJCWN0eHQtPnNheC0+Y2hhcmFjdGVycyhjdHh0LT51c2VyRGF0YSwgY2hyLCAxKTsKKwkJICAgIGN0eHQtPnRva2VuID0gMDsKKwkJICAgIGN0eHQtPmNoZWNrSW5kZXggPSAwOworCQl9CisJCWlmICgoYXZhaWwgPT0gMSkgJiYgKHRlcm1pbmF0ZSkpIHsKKwkJICAgIGN1ciA9IGluLT5jdXJbMF07CisJCSAgICBpZiAoKGN1ciAhPSAnPCcpICYmIChjdXIgIT0gJyYnKSkgeworCQkJaWYgKGN0eHQtPnNheCAhPSBOVUxMKSB7CisJCQkgICAgaWYgKElTX0JMQU5LX0NIKGN1cikpIHsKKwkJCQlpZiAoY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlICE9IE5VTEwpCisJCQkJICAgIGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSgKKwkJCQkJICAgIGN0eHQtPnVzZXJEYXRhLCAmY3VyLCAxKTsKKwkJCSAgICB9IGVsc2UgeworCQkJCWh0bWxDaGVja1BhcmFncmFwaChjdHh0KTsKKwkJCQlpZiAoY3R4dC0+c2F4LT5jaGFyYWN0ZXJzICE9IE5VTEwpCisJCQkJICAgIGN0eHQtPnNheC0+Y2hhcmFjdGVycygKKwkJCQkJICAgIGN0eHQtPnVzZXJEYXRhLCAmY3VyLCAxKTsKKwkJCSAgICB9CisJCQl9CisJCQljdHh0LT50b2tlbiA9IDA7CisJCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKwkJCWluLT5jdXIrKzsKKwkJCWJyZWFrOworCQkgICAgfQorCQl9CisJCWlmIChhdmFpbCA8IDIpCisJCSAgICBnb3RvIGRvbmU7CisJCWN1ciA9IGluLT5jdXJbMF07CisJCW5leHQgPSBpbi0+Y3VyWzFdOworCQljb25zID0gY3R4dC0+bmJDaGFyczsKKwkJaWYgKCh4bWxTdHJFcXVhbChjdHh0LT5uYW1lLCBCQURfQ0FTVCJzY3JpcHQiKSkgfHwKKwkJICAgICh4bWxTdHJFcXVhbChjdHh0LT5uYW1lLCBCQURfQ0FTVCJzdHlsZSIpKSkgeworCQkgICAgLyoKKwkJICAgICAqIEhhbmRsZSBTQ1JJUFQvU1RZTEUgc2VwYXJhdGVseQorCQkgICAgICovCisJCSAgICBpZiAoIXRlcm1pbmF0ZSkgeworCQkgICAgICAgIGludCBpZHg7CisJCQl4bWxDaGFyIHZhbDsKKworCQkJaWR4ID0gaHRtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJzwnLCAnLycsIDAsIDAsIDEpOworCQkJaWYgKGlkeCA8IDApCisJCQkgICAgZ290byBkb25lOworCQkgICAgICAgIHZhbCA9IGluLT5jdXJbaWR4ICsgMl07CisJCQlpZiAodmFsID09IDApIC8qIGJhZCBjdXQgb2YgaW5wdXQgKi8KKwkJCSAgICBnb3RvIGRvbmU7CisJCSAgICB9CisJCSAgICBodG1sUGFyc2VTY3JpcHQoY3R4dCk7CisJCSAgICBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICcvJykpIHsKKwkJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VORF9UQUc7CisJCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkiSFBQOiBlbnRlcmluZyBFTkRfVEFHXG4iKTsKKyNlbmRpZgorCQkJYnJlYWs7CisJCSAgICB9CisJCX0gZWxzZSB7CisJCSAgICAvKgorCQkgICAgICogU29tZXRpbWVzIERPQ1RZUEUgYXJyaXZlcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBkb2N1bWVudAorCQkgICAgICovCisJCSAgICBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYKKwkJCShVUFAoMikgPT0gJ0QnKSAmJiAoVVBQKDMpID09ICdPJykgJiYKKwkJCShVUFAoNCkgPT0gJ0MnKSAmJiAoVVBQKDUpID09ICdUJykgJiYKKwkJCShVUFAoNikgPT0gJ1knKSAmJiAoVVBQKDcpID09ICdQJykgJiYKKwkJCShVUFAoOCkgPT0gJ0UnKSkgeworCQkJaWYgKCghdGVybWluYXRlKSAmJgorCQkJICAgIChodG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnPicsIDAsIDAsIDAsIDEpIDwgMCkpCisJCQkgICAgZ290byBkb25lOworCQkJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9IVE1MX1NUUlVDVVJFX0VSUk9SLAorCQkJICAgICAgICAgICAgICJNaXNwbGFjZWQgRE9DVFlQRSBkZWNsYXJhdGlvblxuIiwKKwkJCQkgICAgIEJBRF9DQVNUICJET0NUWVBFIiAsIE5VTEwpOworCQkJaHRtbFBhcnNlRG9jVHlwZURlY2woY3R4dCk7CisJCSAgICB9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCQkoaW4tPmN1clsyXSA9PSAnLScpICYmIChpbi0+Y3VyWzNdID09ICctJykpIHsKKwkJCWlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJCSAgICAoaHRtbFBhcnNlTG9va3VwU2VxdWVuY2UoCisJCQkJY3R4dCwgJy0nLCAnLScsICc+JywgMSwgMSkgPCAwKSkKKwkJCSAgICBnb3RvIGRvbmU7CisjaWZkZWYgREVCVUdfUFVTSAorCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJIkhQUDogUGFyc2luZyBDb21tZW50XG4iKTsKKyNlbmRpZgorCQkJaHRtbFBhcnNlQ29tbWVudChjdHh0KTsKKwkJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJCSAgICB9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnPycpKSB7CisJCQlpZiAoKCF0ZXJtaW5hdGUpICYmCisJCQkgICAgKGh0bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICc+JywgMCwgMCwgMCwgMSkgPCAwKSkKKwkJCSAgICBnb3RvIGRvbmU7CisjaWZkZWYgREVCVUdfUFVTSAorCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJIkhQUDogUGFyc2luZyBQSVxuIik7CisjZW5kaWYKKwkJCWh0bWxQYXJzZVBJKGN0eHQpOworCQkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKwkJICAgIH0gZWxzZSBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYgKGF2YWlsIDwgNCkpIHsKKwkJCWdvdG8gZG9uZTsKKwkJICAgIH0gZWxzZSBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICcvJykpIHsKKwkJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VORF9UQUc7CisJCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkiSFBQOiBlbnRlcmluZyBFTkRfVEFHXG4iKTsKKyNlbmRpZgorCQkJYnJlYWs7CisJCSAgICB9IGVsc2UgaWYgKGN1ciA9PSAnPCcpIHsKKwkJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1NUQVJUX1RBRzsKKwkJCWN0eHQtPmNoZWNrSW5kZXggPSAwOworI2lmZGVmIERFQlVHX1BVU0gKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJIUFA6IGVudGVyaW5nIFNUQVJUX1RBR1xuIik7CisjZW5kaWYKKwkJCWJyZWFrOworCQkgICAgfSBlbHNlIGlmIChjdXIgPT0gJyYnKSB7CisJCQlpZiAoKCF0ZXJtaW5hdGUpICYmCisJCQkgICAgKGh0bWxQYXJzZUxvb2t1cENoYXJzKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICI7ID4vIiwgNCkgPCAwKSkKKwkJCSAgICBnb3RvIGRvbmU7CisjaWZkZWYgREVCVUdfUFVTSAorCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJIkhQUDogUGFyc2luZyBSZWZlcmVuY2VcbiIpOworI2VuZGlmCisJCQkvKiBUT0RPOiBjaGVjayBnZW5lcmF0aW9uIG9mIHN1YnRyZWVzIGlmIG5vZW50ICEhISAqLworCQkJaHRtbFBhcnNlUmVmZXJlbmNlKGN0eHQpOworCQkgICAgfSBlbHNlIHsKKwkJICAgICAgICAvKgorCQkJICogY2hlY2sgdGhhdCB0aGUgdGV4dCBzZXF1ZW5jZSBpcyBjb21wbGV0ZQorCQkJICogYmVmb3JlIGhhbmRpbmcgb3V0IHRoZSBkYXRhIHRvIHRoZSBwYXJzZXIKKwkJCSAqIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggZXJyb25lb3VzIGVuZCBvZgorCQkJICogZGF0YSBkZXRlY3Rpb24uCisJCQkgKi8KKwkJCWlmICgoIXRlcm1pbmF0ZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHRtbFBhcnNlTG9va3VwQ2hhcnMoY3R4dCwgQkFEX0NBU1QgIjwmIiwgMikgPCAwKSkKKwkJCSAgICBnb3RvIGRvbmU7CisJCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkiSFBQOiBQYXJzaW5nIGNoYXIgZGF0YVxuIik7CisjZW5kaWYKKwkJCWh0bWxQYXJzZUNoYXJEYXRhKGN0eHQpOworCQkgICAgfQorCQl9CisJCWlmIChjb25zID09IGN0eHQtPm5iQ2hhcnMpIHsKKwkJICAgIGlmIChjdHh0LT5ub2RlICE9IE5VTEwpIHsKKwkJCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkJICAgICAgICAgICAgICJkZXRlY3RlZCBhbiBlcnJvciBpbiBlbGVtZW50IGNvbnRlbnRcbiIsCisJCQkJICAgICBOVUxMLCBOVUxMKTsKKwkJICAgIH0KKwkJICAgIE5FWFQ7CisJCSAgICBicmVhazsKKwkJfQorCisJCWJyZWFrOworCSAgICB9CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfRU5EX1RBRzoKKwkJaWYgKGF2YWlsIDwgMikKKwkJICAgIGdvdG8gZG9uZTsKKwkJaWYgKCghdGVybWluYXRlKSAmJgorCQkgICAgKGh0bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICc+JywgMCwgMCwgMCwgMSkgPCAwKSkKKwkJICAgIGdvdG8gZG9uZTsKKwkJaHRtbFBhcnNlRW5kVGFnKGN0eHQpOworCQlpZiAoY3R4dC0+bmFtZU5yID09IDApIHsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VQSUxPRzsKKwkJfSBlbHNlIHsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJCX0KKwkJY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisjaWZkZWYgREVCVUdfUFVTSAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJIUFA6IGVudGVyaW5nIENPTlRFTlRcbiIpOworI2VuZGlmCisJICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OOgorCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSJIUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBDREFUQVxuIiwKKwkJCSAgICAgTlVMTCwgTlVMTCk7CisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJCWN0eHQtPmNoZWNrSW5kZXggPSAwOworI2lmZGVmIERFQlVHX1BVU0gKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiSFBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9EVEQ6CisJCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkJIkhQUDogaW50ZXJuYWwgZXJyb3IsIHN0YXRlID09IERURFxuIiwKKwkJCSAgICAgTlVMTCwgTlVMTCk7CisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJCWN0eHQtPmNoZWNrSW5kZXggPSAwOworI2lmZGVmIERFQlVHX1BVU0gKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiSFBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9DT01NRU5UOgorCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSJIUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBDT01NRU5UXG4iLAorCQkJICAgICBOVUxMLCBOVUxMKTsKKwkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKwkJY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisjaWZkZWYgREVCVUdfUFVTSAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJIUFA6IGVudGVyaW5nIENPTlRFTlRcbiIpOworI2VuZGlmCisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX1BJOgorCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSJIUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBQSVxuIiwKKwkJCSAgICAgTlVMTCwgTlVMTCk7CisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJCWN0eHQtPmNoZWNrSW5kZXggPSAwOworI2lmZGVmIERFQlVHX1BVU0gKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiSFBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9FTlRJVFlfREVDTDoKKwkJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCQkiSFBQOiBpbnRlcm5hbCBlcnJvciwgc3RhdGUgPT0gRU5USVRZX0RFQ0xcbiIsCisJCQkgICAgIE5VTEwsIE5VTEwpOworCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkhQUDogZW50ZXJpbmcgQ09OVEVOVFxuIik7CisjZW5kaWYKKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfRU5USVRZX1ZBTFVFOgorCQlodG1sUGFyc2VFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSJIUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBFTlRJVFlfVkFMVUVcbiIsCisJCQkgICAgIE5VTEwsIE5VTEwpOworCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkhQUDogZW50ZXJpbmcgRFREXG4iKTsKKyNlbmRpZgorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUU6CisJCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkJIkhQUDogaW50ZXJuYWwgZXJyb3IsIHN0YXRlID09IEFUVFJJQlVURV9WQUxVRVxuIiwKKwkJCSAgICAgTlVMTCwgTlVMTCk7CisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1NUQVJUX1RBRzsKKwkJY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisjaWZkZWYgREVCVUdfUFVTSAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJIUFA6IGVudGVyaW5nIFNUQVJUX1RBR1xuIik7CisjZW5kaWYKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1BBUlNFUl9TWVNURU1fTElURVJBTDoKKwkJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAiSFBQOiBpbnRlcm5hbCBlcnJvciwgc3RhdGUgPT0gWE1MX1BBUlNFUl9TWVNURU1fTElURVJBTFxuIiwKKwkJCSAgICAgTlVMTCwgTlVMTCk7CisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJCWN0eHQtPmNoZWNrSW5kZXggPSAwOworI2lmZGVmIERFQlVHX1BVU0gKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiSFBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfUEFSU0VSX0lHTk9SRToKKwkJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCQkiSFBQOiBpbnRlcm5hbCBlcnJvciwgc3RhdGUgPT0gWE1MX1BBUlNFUl9JR05PUkVcbiIsCisJCQkgICAgIE5VTEwsIE5VTEwpOworCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkhQUDogZW50ZXJpbmcgQ09OVEVOVFxuIik7CisjZW5kaWYKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1BBUlNFUl9QVUJMSUNfTElURVJBTDoKKwkJaHRtbFBhcnNlRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCQkiSFBQOiBpbnRlcm5hbCBlcnJvciwgc3RhdGUgPT0gWE1MX1BBUlNFUl9MSVRFUkFMXG4iLAorCQkJICAgICBOVUxMLCBOVUxMKTsKKwkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKwkJY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisjaWZkZWYgREVCVUdfUFVTSAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJIUFA6IGVudGVyaW5nIENPTlRFTlRcbiIpOworI2VuZGlmCisJCWJyZWFrOworCisJfQorICAgIH0KK2RvbmU6CisgICAgaWYgKChhdmFpbCA9PSAwKSAmJiAodGVybWluYXRlKSkgeworCWh0bWxBdXRvQ2xvc2VPbkVuZChjdHh0KTsKKwlpZiAoKGN0eHQtPm5hbWVOciA9PSAwKSAmJiAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0VPRikpIHsKKwkgICAgLyoKKwkgICAgICogU0FYOiBlbmQgb2YgdGhlIGRvY3VtZW50IHByb2Nlc3NpbmcuCisJICAgICAqLworCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisJICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKwkJY3R4dC0+c2F4LT5lbmREb2N1bWVudChjdHh0LT51c2VyRGF0YSk7CisJfQorICAgIH0KKyAgICBpZiAoKGN0eHQtPm15RG9jICE9IE5VTEwpICYmCisJKCh0ZXJtaW5hdGUpIHx8IChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSB8fAorCSAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VQSUxPRykpKSB7CisJeG1sRHRkUHRyIGR0ZDsKKwlkdGQgPSB4bWxHZXRJbnRTdWJzZXQoY3R4dC0+bXlEb2MpOworCWlmIChkdGQgPT0gTlVMTCkKKwkgICAgY3R4dC0+bXlEb2MtPmludFN1YnNldCA9CisJCXhtbENyZWF0ZUludFN1YnNldChjdHh0LT5teURvYywgQkFEX0NBU1QgImh0bWwiLAorCQkgICAgQkFEX0NBU1QgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iLAorCQkgICAgQkFEX0NBU1QgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIik7CisgICAgfQorI2lmZGVmIERFQlVHX1BVU0gKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkhQUDogZG9uZSAlZFxuIiwgcmV0KTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIGh0bWxQYXJzZUNodW5rOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAY2h1bms6ICBhbiBjaGFyIGFycmF5CisgKiBAc2l6ZTogIHRoZSBzaXplIGluIGJ5dGUgb2YgdGhlIGNodW5rCisgKiBAdGVybWluYXRlOiAgbGFzdCBjaHVuayBpbmRpY2F0b3IKKyAqCisgKiBQYXJzZSBhIENodW5rIG9mIG1lbW9yeQorICoKKyAqIFJldHVybnMgemVybyBpZiBubyBlcnJvciwgdGhlIHhtbFBhcnNlckVycm9ycyBvdGhlcndpc2UuCisgKi8KK2ludAoraHRtbFBhcnNlQ2h1bmsoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqY2h1bmssIGludCBzaXplLAorICAgICAgICAgICAgICBpbnQgdGVybWluYXRlKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5pbnB1dCA9PSBOVUxMKSkgeworCWh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAgICJodG1sUGFyc2VDaHVuazogY29udGV4dCBlcnJvclxuIiwgTlVMTCwgTlVMTCk7CisJcmV0dXJuKFhNTF9FUlJfSU5URVJOQUxfRVJST1IpOworICAgIH0KKyAgICBpZiAoKHNpemUgPiAwKSAmJiAoY2h1bmsgIT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT5pbnB1dC0+YnVmICE9IE5VTEwpICYmIChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfRU9GKSkgIHsKKwlpbnQgYmFzZSA9IGN0eHQtPmlucHV0LT5iYXNlIC0gY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworCWludCBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2U7CisJaW50IHJlczsKKworCXJlcyA9IHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaChjdHh0LT5pbnB1dC0+YnVmLCBzaXplLCBjaHVuayk7CisJaWYgKHJlcyA8IDApIHsKKwkgICAgY3R4dC0+ZXJyTm8gPSBYTUxfUEFSU0VSX0VPRjsKKwkgICAgY3R4dC0+ZGlzYWJsZVNBWCA9IDE7CisJICAgIHJldHVybiAoWE1MX1BBUlNFUl9FT0YpOworCX0KKwljdHh0LT5pbnB1dC0+YmFzZSA9IGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudCArIGJhc2U7CisJY3R4dC0+aW5wdXQtPmN1ciA9IGN0eHQtPmlucHV0LT5iYXNlICsgY3VyOworCWN0eHQtPmlucHV0LT5lbmQgPQorCSAgJmN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudFtjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPnVzZV07CisjaWZkZWYgREVCVUdfUFVTSAorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiSFBQOiBwdXNoZWQgJWRcbiIsIHNpemUpOworI2VuZGlmCisKKyNpZiAwCisJaWYgKCh0ZXJtaW5hdGUpIHx8IChjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPnVzZSA+IDgwKSkKKwkgICAgaHRtbFBhcnNlVHJ5T3JGaW5pc2goY3R4dCwgdGVybWluYXRlKTsKKyNlbmRpZgorICAgIH0gZWxzZSBpZiAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0VPRikgeworCWlmICgoY3R4dC0+aW5wdXQgIT0gTlVMTCkgJiYgY3R4dC0+aW5wdXQtPmJ1ZiAhPSBOVUxMKSB7CisJICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGluID0gY3R4dC0+aW5wdXQtPmJ1ZjsKKwkgICAgaWYgKChpbi0+ZW5jb2RlciAhPSBOVUxMKSAmJiAoaW4tPmJ1ZmZlciAhPSBOVUxMKSAmJgorCQkgICAgKGluLT5yYXcgIT0gTlVMTCkpIHsKKwkJaW50IG5iY2hhcnM7CisKKwkJbmJjaGFycyA9IHhtbENoYXJFbmNJbkZ1bmMoaW4tPmVuY29kZXIsIGluLT5idWZmZXIsIGluLT5yYXcpOworCQlpZiAobmJjaGFycyA8IDApIHsKKwkJICAgIGh0bWxQYXJzZUVycihjdHh0LCBYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkcsCisJCQkgICAgICAgICAiZW5jb2RlciBlcnJvclxuIiwgTlVMTCwgTlVMTCk7CisJCSAgICByZXR1cm4oWE1MX0VSUl9JTlZBTElEX0VOQ09ESU5HKTsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKyAgICBodG1sUGFyc2VUcnlPckZpbmlzaChjdHh0LCB0ZXJtaW5hdGUpOworICAgIGlmICh0ZXJtaW5hdGUpIHsKKwlpZiAoKGN0eHQtPmluc3RhdGUgIT0gWE1MX1BBUlNFUl9FT0YpICYmCisJICAgIChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfRVBJTE9HKSAmJgorCSAgICAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX01JU0MpKSB7CisJICAgIGN0eHQtPmVyck5vID0gWE1MX0VSUl9ET0NVTUVOVF9FTkQ7CisJICAgIGN0eHQtPndlbGxGb3JtZWQgPSAwOworCX0KKwlpZiAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0VPRikgeworCSAgICBpZiAoKGN0eHQtPnNheCkgJiYgKGN0eHQtPnNheC0+ZW5kRG9jdW1lbnQgIT0gTlVMTCkpCisJCWN0eHQtPnNheC0+ZW5kRG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCX0KKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgfQorICAgIHJldHVybigoeG1sUGFyc2VyRXJyb3JzKSBjdHh0LT5lcnJObyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlVc2VyIGVudHJ5IHBvaW50cwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0OgorICogQHNheDogIGEgU0FYIGhhbmRsZXIKKyAqIEB1c2VyX2RhdGE6ICBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MKKyAqIEBjaHVuazogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBjaGFycworICogQHNpemU6ICBudW1iZXIgb2YgY2hhcnMgaW4gdGhlIGFycmF5CisgKiBAZmlsZW5hbWU6ICBhbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJCisgKiBAZW5jOiAgYW4gb3B0aW9uYWwgZW5jb2RpbmcKKyAqCisgKiBDcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgdXNpbmcgdGhlIEhUTUwgcGFyc2VyIGluIHB1c2ggbW9kZQorICogVGhlIHZhbHVlIG9mIEBmaWxlbmFtZSBpcyB1c2VkIGZvciBmZXRjaGluZyBleHRlcm5hbCBlbnRpdGllcworICogYW5kIGVycm9yL3dhcm5pbmcgcmVwb3J0cy4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTAorICovCitodG1sUGFyc2VyQ3R4dFB0cgoraHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KGh0bWxTQVhIYW5kbGVyUHRyIHNheCwgdm9pZCAqdXNlcl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNodW5rLCBpbnQgc2l6ZSwgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkgeG1sQ2hhckVuY29kaW5nIGVuYykgeworICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgaHRtbFBhcnNlcklucHV0UHRyIGlucHV0U3RyZWFtOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGJ1ZjsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGJ1ZiA9IHhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIoZW5jKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIGN0eHQgPSBodG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwl4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoYnVmKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmKGVuYz09WE1MX0NIQVJfRU5DT0RJTkdfVVRGOCB8fCBidWYtPmVuY29kZXIpCisJY3R4dC0+Y2hhcnNldD1YTUxfQ0hBUl9FTkNPRElOR19VVEY4OworICAgIGlmIChzYXggIT0gTlVMTCkgeworCWlmIChjdHh0LT5zYXggIT0gKHhtbFNBWEhhbmRsZXJQdHIpICZodG1sRGVmYXVsdFNBWEhhbmRsZXIpCisJICAgIHhtbEZyZWUoY3R4dC0+c2F4KTsKKwljdHh0LT5zYXggPSAoaHRtbFNBWEhhbmRsZXJQdHIpIHhtbE1hbGxvYyhzaXplb2YoaHRtbFNBWEhhbmRsZXIpKTsKKwlpZiAoY3R4dC0+c2F4ID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZShidWYpOworCSAgICB4bWxGcmVlKGN0eHQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCW1lbWNweShjdHh0LT5zYXgsIHNheCwgc2l6ZW9mKGh0bWxTQVhIYW5kbGVyKSk7CisJaWYgKHVzZXJfZGF0YSAhPSBOVUxMKQorCSAgICBjdHh0LT51c2VyRGF0YSA9IHVzZXJfZGF0YTsKKyAgICB9CisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpIHsKKwljdHh0LT5kaXJlY3RvcnkgPSBOVUxMOworICAgIH0gZWxzZSB7CisgICAgICAgIGN0eHQtPmRpcmVjdG9yeSA9IHhtbFBhcnNlckdldERpcmVjdG9yeShmaWxlbmFtZSk7CisgICAgfQorCisgICAgaW5wdXRTdHJlYW0gPSBodG1sTmV3SW5wdXRTdHJlYW0oY3R4dCk7CisgICAgaWYgKGlucHV0U3RyZWFtID09IE5VTEwpIHsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwl4bWxGcmVlKGJ1Zik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKQorCWlucHV0U3RyZWFtLT5maWxlbmFtZSA9IE5VTEw7CisgICAgZWxzZQorCWlucHV0U3RyZWFtLT5maWxlbmFtZSA9IChjaGFyICopCisJICAgIHhtbENhbm9uaWNQYXRoKChjb25zdCB4bWxDaGFyICopIGZpbGVuYW1lKTsKKyAgICBpbnB1dFN0cmVhbS0+YnVmID0gYnVmOworICAgIGlucHV0U3RyZWFtLT5iYXNlID0gaW5wdXRTdHJlYW0tPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworICAgIGlucHV0U3RyZWFtLT5jdXIgPSBpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXRTdHJlYW0tPmVuZCA9CisJJmlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPnVzZV07CisKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXRTdHJlYW0pOworCisgICAgaWYgKChzaXplID4gMCkgJiYgKGNodW5rICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+aW5wdXQtPmJ1ZiAhPSBOVUxMKSkgIHsKKwlpbnQgYmFzZSA9IGN0eHQtPmlucHV0LT5iYXNlIC0gY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworCWludCBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2U7CisKKwl4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2goY3R4dC0+aW5wdXQtPmJ1Ziwgc2l6ZSwgY2h1bmspOworCisJY3R4dC0+aW5wdXQtPmJhc2UgPSBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnQgKyBiYXNlOworCWN0eHQtPmlucHV0LT5jdXIgPSBjdHh0LT5pbnB1dC0+YmFzZSArIGN1cjsKKwljdHh0LT5pbnB1dC0+ZW5kID0KKwkgICAgJmN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudFtjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPnVzZV07CisjaWZkZWYgREVCVUdfUFVTSAorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiSFBQOiBwdXNoZWQgJWRcbiIsIHNpemUpOworI2VuZGlmCisgICAgfQorICAgIGN0eHQtPnByb2dyZXNzaXZlID0gMTsKKworICAgIHJldHVybihjdHh0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfUFVTSF9FTkFCTEVEICovCisKKy8qKgorICogaHRtbFNBWFBhcnNlRG9jOgorICogQGN1cjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyCisgKiBAZW5jb2Rpbmc6ICBhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAc2F4OiAgdGhlIFNBWCBoYW5kbGVyIGJsb2NrCisgKiBAdXNlckRhdGE6IGlmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLgorICoKKyAqIFBhcnNlIGFuIEhUTUwgaW4tbWVtb3J5IGRvY3VtZW50LiBJZiBzYXggaXMgbm90IE5VTEwsIHVzZSB0aGUgU0FYIGNhbGxiYWNrcworICogdG8gaGFuZGxlIHBhcnNlIGV2ZW50cy4gSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTQorICogYmVoYXZpb3IgYW5kIHJldHVybiBhIHRyZWUuCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgdW5sZXNzIFNBWCBpcyBOVUxMIG9yIHRoZSBkb2N1bWVudCBpcworICogICAgIG5vdCB3ZWxsIGZvcm1lZC4KKyAqLworCitodG1sRG9jUHRyCitodG1sU0FYUGFyc2VEb2MoeG1sQ2hhciAqY3VyLCBjb25zdCBjaGFyICplbmNvZGluZywgaHRtbFNBWEhhbmRsZXJQdHIgc2F4LCB2b2lkICp1c2VyRGF0YSkgeworICAgIGh0bWxEb2NQdHIgcmV0OworICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybihOVUxMKTsKKworCisgICAgY3R4dCA9IGh0bWxDcmVhdGVEb2NQYXJzZXJDdHh0KGN1ciwgZW5jb2RpbmcpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoc2F4ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGN0eHQtPnNheCAhPSBOVUxMKSB4bWxGcmVlIChjdHh0LT5zYXgpOworICAgICAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgICAgIGN0eHQtPnVzZXJEYXRhID0gdXNlckRhdGE7CisgICAgfQorCisgICAgaHRtbFBhcnNlRG9jdW1lbnQoY3R4dCk7CisgICAgcmV0ID0gY3R4dC0+bXlEb2M7CisgICAgaWYgKHNheCAhPSBOVUxMKSB7CisJY3R4dC0+c2F4ID0gTlVMTDsKKwljdHh0LT51c2VyRGF0YSA9IE5VTEw7CisgICAgfQorICAgIGh0bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIGh0bWxQYXJzZURvYzoKKyAqIEBjdXI6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcgorICogQGVuY29kaW5nOiAgYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgSFRNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICoKKyAqIHBhcnNlIGFuIEhUTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworCitodG1sRG9jUHRyCitodG1sUGFyc2VEb2MoeG1sQ2hhciAqY3VyLCBjb25zdCBjaGFyICplbmNvZGluZykgeworICAgIHJldHVybihodG1sU0FYUGFyc2VEb2MoY3VyLCBlbmNvZGluZywgTlVMTCwgTlVMTCkpOworfQorCisKKy8qKgorICogaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0OgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lCisgKiBAZW5jb2Rpbmc6ICBhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKgorICogQ3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGEgZmlsZSBjb250ZW50LgorICogQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZAorICogYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqLworaHRtbFBhcnNlckN0eHRQdHIKK2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqZW5jb2RpbmcpCit7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICBodG1sUGFyc2VySW5wdXRQdHIgaW5wdXRTdHJlYW07CisgICAgY2hhciAqY2Fub25pY0ZpbGVuYW1lOworICAgIC8qIGh0bWxDaGFyRW5jb2RpbmcgZW5jOyAqLworICAgIHhtbENoYXIgKmNvbnRlbnQsICpjb250ZW50X2xpbmUgPSAoeG1sQ2hhciAqKSAiY2hhcnNldD0iOworCisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIGN0eHQgPSBodG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGNhbm9uaWNGaWxlbmFtZSA9IChjaGFyICopIHhtbENhbm9uaWNQYXRoKChjb25zdCB4bWxDaGFyICopIGZpbGVuYW1lKTsKKyAgICBpZiAoY2Fub25pY0ZpbGVuYW1lID09IE5VTEwpIHsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisJaWYgKHhtbERlZmF1bHRTQVhIYW5kbGVyLmVycm9yICE9IE5VTEwpIHsKKwkgICAgeG1sRGVmYXVsdFNBWEhhbmRsZXIuZXJyb3IoTlVMTCwgIm91dCBvZiBtZW1vcnlcbiIpOworCX0KKyNlbmRpZgorCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpbnB1dFN0cmVhbSA9IHhtbExvYWRFeHRlcm5hbEVudGl0eShjYW5vbmljRmlsZW5hbWUsIE5VTEwsIGN0eHQpOworICAgIHhtbEZyZWUoY2Fub25pY0ZpbGVuYW1lKTsKKyAgICBpZiAoaW5wdXRTdHJlYW0gPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXRTdHJlYW0pOworCisgICAgLyogc2V0IGVuY29kaW5nICovCisgICAgaWYgKGVuY29kaW5nKSB7CisgICAgICAgIGNvbnRlbnQgPSB4bWxNYWxsb2NBdG9taWMgKHhtbFN0cmxlbihjb250ZW50X2xpbmUpICsgc3RybGVuKGVuY29kaW5nKSArIDEpOworCWlmIChjb250ZW50KSB7CisJICAgIHN0cmNweSAoKGNoYXIgKiljb250ZW50LCAoY2hhciAqKWNvbnRlbnRfbGluZSk7CisgICAgICAgICAgICBzdHJjYXQgKChjaGFyICopY29udGVudCwgKGNoYXIgKillbmNvZGluZyk7CisgICAgICAgICAgICBodG1sQ2hlY2tFbmNvZGluZyAoY3R4dCwgY29udGVudCk7CisJICAgIHhtbEZyZWUgKGNvbnRlbnQpOworCX0KKyAgICB9CisKKyAgICByZXR1cm4oY3R4dCk7Cit9CisKKy8qKgorICogaHRtbFNBWFBhcnNlRmlsZToKKyAqIEBmaWxlbmFtZTogIHRoZSBmaWxlbmFtZQorICogQGVuY29kaW5nOiAgYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgSFRNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQHNheDogIHRoZSBTQVggaGFuZGxlciBibG9jaworICogQHVzZXJEYXRhOiBpZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy4KKyAqCisgKiBwYXJzZSBhbiBIVE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MKKyAqIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuCisgKiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suCisgKiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgdW5sZXNzIFNBWCBpcyBOVUxMIG9yIHRoZSBkb2N1bWVudCBpcworICogICAgIG5vdCB3ZWxsIGZvcm1lZC4KKyAqLworCitodG1sRG9jUHRyCitodG1sU0FYUGFyc2VGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICplbmNvZGluZywgaHRtbFNBWEhhbmRsZXJQdHIgc2F4LAorICAgICAgICAgICAgICAgICB2b2lkICp1c2VyRGF0YSkgeworICAgIGh0bWxEb2NQdHIgcmV0OworICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgaHRtbFNBWEhhbmRsZXJQdHIgb2xkc2F4ID0gTlVMTDsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGN0eHQgPSBodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQoZmlsZW5hbWUsIGVuY29kaW5nKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKHNheCAhPSBOVUxMKSB7CisJb2xkc2F4ID0gY3R4dC0+c2F4OworICAgICAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgICAgIGN0eHQtPnVzZXJEYXRhID0gdXNlckRhdGE7CisgICAgfQorCisgICAgaHRtbFBhcnNlRG9jdW1lbnQoY3R4dCk7CisKKyAgICByZXQgPSBjdHh0LT5teURvYzsKKyAgICBpZiAoc2F4ICE9IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+c2F4ID0gb2xkc2F4OworICAgICAgICBjdHh0LT51c2VyRGF0YSA9IE5VTEw7CisgICAgfQorICAgIGh0bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIGh0bWxQYXJzZUZpbGU6CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUKKyAqIEBlbmNvZGluZzogIGEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqCisgKiBwYXJzZSBhbiBIVE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MKKyAqIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworCitodG1sRG9jUHRyCitodG1sUGFyc2VGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICplbmNvZGluZykgeworICAgIHJldHVybihodG1sU0FYUGFyc2VGaWxlKGZpbGVuYW1lLCBlbmNvZGluZywgTlVMTCwgTlVMTCkpOworfQorCisvKioKKyAqIGh0bWxIYW5kbGVPbWl0dGVkRWxlbToKKyAqIEB2YWw6ICBpbnQgMCBvciAxCisgKgorICogU2V0IGFuZCByZXR1cm4gdGhlIHByZXZpb3VzIHZhbHVlIGZvciBoYW5kbGluZyBIVE1MIG9taXR0ZWQgdGFncy4KKyAqCisgKiBSZXR1cm5zIHRoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBoYW5kbGluZywgMSBmb3IgYXV0byBpbnNlcnRpb24uCisgKi8KKworaW50CitodG1sSGFuZGxlT21pdHRlZEVsZW0oaW50IHZhbCkgeworICAgIGludCBvbGQgPSBodG1sT21pdHRlZERlZmF1bHRWYWx1ZTsKKworICAgIGh0bWxPbWl0dGVkRGVmYXVsdFZhbHVlID0gdmFsOworICAgIHJldHVybihvbGQpOworfQorCisvKioKKyAqIGh0bWxFbGVtZW50QWxsb3dlZEhlcmU6CisgKiBAcGFyZW50OiBIVE1MIHBhcmVudCBlbGVtZW50CisgKiBAZWx0OiBIVE1MIGVsZW1lbnQKKyAqCisgKiBDaGVja3Mgd2hldGhlciBhbiBIVE1MIGVsZW1lbnQgbWF5IGJlIGEgZGlyZWN0IGNoaWxkIG9mIGEgcGFyZW50IGVsZW1lbnQuCisgKiBOb3RlIC0gZG9lc24ndCBjaGVjayBmb3IgZGVwcmVjYXRlZCBlbGVtZW50cworICoKKyAqIFJldHVybnMgMSBpZiBhbGxvd2VkOyAwIG90aGVyd2lzZS4KKyAqLworaW50CitodG1sRWxlbWVudEFsbG93ZWRIZXJlKGNvbnN0IGh0bWxFbGVtRGVzYyogcGFyZW50LCBjb25zdCB4bWxDaGFyKiBlbHQpIHsKKyAgY29uc3QgY2hhcioqIHAgOworCisgIGlmICggISBlbHQgfHwgISBwYXJlbnQgfHwgISBwYXJlbnQtPnN1YmVsdHMgKQorCXJldHVybiAwIDsKKworICBmb3IgKCBwID0gcGFyZW50LT5zdWJlbHRzOyAqcDsgKytwICkKKyAgICBpZiAoICF4bWxTdHJjbXAoKGNvbnN0IHhtbENoYXIgKikqcCwgZWx0KSApCisgICAgICByZXR1cm4gMSA7CisKKyAgcmV0dXJuIDAgOworfQorLyoqCisgKiBodG1sRWxlbWVudFN0YXR1c0hlcmU6CisgKiBAcGFyZW50OiBIVE1MIHBhcmVudCBlbGVtZW50CisgKiBAZWx0OiBIVE1MIGVsZW1lbnQKKyAqCisgKiBDaGVja3Mgd2hldGhlciBhbiBIVE1MIGVsZW1lbnQgbWF5IGJlIGEgZGlyZWN0IGNoaWxkIG9mIGEgcGFyZW50IGVsZW1lbnQuCisgKiBhbmQgaWYgc28gd2hldGhlciBpdCBpcyB2YWxpZCBvciBkZXByZWNhdGVkLgorICoKKyAqIFJldHVybnMgb25lIG9mIEhUTUxfVkFMSUQsIEhUTUxfREVQUkVDQVRFRCwgSFRNTF9JTlZBTElECisgKi8KK2h0bWxTdGF0dXMKK2h0bWxFbGVtZW50U3RhdHVzSGVyZShjb25zdCBodG1sRWxlbURlc2MqIHBhcmVudCwgY29uc3QgaHRtbEVsZW1EZXNjKiBlbHQpIHsKKyAgaWYgKCAhIHBhcmVudCB8fCAhIGVsdCApCisgICAgcmV0dXJuIEhUTUxfSU5WQUxJRCA7CisgIGlmICggISBodG1sRWxlbWVudEFsbG93ZWRIZXJlKHBhcmVudCwgKGNvbnN0IHhtbENoYXIqKSBlbHQtPm5hbWUgKSApCisgICAgcmV0dXJuIEhUTUxfSU5WQUxJRCA7CisKKyAgcmV0dXJuICggZWx0LT5kdGQgPT0gMCApID8gSFRNTF9WQUxJRCA6IEhUTUxfREVQUkVDQVRFRCA7Cit9CisvKioKKyAqIGh0bWxBdHRyQWxsb3dlZDoKKyAqIEBlbHQ6IEhUTUwgZWxlbWVudAorICogQGF0dHI6IEhUTUwgYXR0cmlidXRlCisgKiBAbGVnYWN5OiB3aGV0aGVyIHRvIGFsbG93IGRlcHJlY2F0ZWQgYXR0cmlidXRlcworICoKKyAqIENoZWNrcyB3aGV0aGVyIGFuIGF0dHJpYnV0ZSBpcyB2YWxpZCBmb3IgYW4gZWxlbWVudAorICogSGFzIGZ1bGwga25vd2xlZGdlIG9mIFJlcXVpcmVkIGFuZCBEZXByZWNhdGVkIGF0dHJpYnV0ZXMKKyAqCisgKiBSZXR1cm5zIG9uZSBvZiBIVE1MX1JFUVVJUkVELCBIVE1MX1ZBTElELCBIVE1MX0RFUFJFQ0FURUQsIEhUTUxfSU5WQUxJRAorICovCitodG1sU3RhdHVzCitodG1sQXR0ckFsbG93ZWQoY29uc3QgaHRtbEVsZW1EZXNjKiBlbHQsIGNvbnN0IHhtbENoYXIqIGF0dHIsIGludCBsZWdhY3kpIHsKKyAgY29uc3QgY2hhcioqIHAgOworCisgIGlmICggIWVsdCB8fCAhIGF0dHIgKQorCXJldHVybiBIVE1MX0lOVkFMSUQgOworCisgIGlmICggZWx0LT5hdHRyc19yZXEgKQorICAgIGZvciAoIHAgPSBlbHQtPmF0dHJzX3JlcTsgKnA7ICsrcCkKKyAgICAgIGlmICggIXhtbFN0cmNtcCgoY29uc3QgeG1sQ2hhciopKnAsIGF0dHIpICkKKyAgICAgICAgcmV0dXJuIEhUTUxfUkVRVUlSRUQgOworCisgIGlmICggZWx0LT5hdHRyc19vcHQgKQorICAgIGZvciAoIHAgPSBlbHQtPmF0dHJzX29wdDsgKnA7ICsrcCkKKyAgICAgIGlmICggIXhtbFN0cmNtcCgoY29uc3QgeG1sQ2hhciopKnAsIGF0dHIpICkKKyAgICAgICAgcmV0dXJuIEhUTUxfVkFMSUQgOworCisgIGlmICggbGVnYWN5ICYmIGVsdC0+YXR0cnNfZGVwciApCisgICAgZm9yICggcCA9IGVsdC0+YXR0cnNfZGVwcjsgKnA7ICsrcCkKKyAgICAgIGlmICggIXhtbFN0cmNtcCgoY29uc3QgeG1sQ2hhciopKnAsIGF0dHIpICkKKyAgICAgICAgcmV0dXJuIEhUTUxfREVQUkVDQVRFRCA7CisKKyAgcmV0dXJuIEhUTUxfSU5WQUxJRCA7Cit9CisvKioKKyAqIGh0bWxOb2RlU3RhdHVzOgorICogQG5vZGU6IGFuIGh0bWxOb2RlUHRyIGluIGEgdHJlZQorICogQGxlZ2FjeTogd2hldGhlciB0byBhbGxvdyBkZXByZWNhdGVkIGVsZW1lbnRzIChZRVMgaXMgZmFzdGVyIGhlcmUKKyAqCWZvciBFbGVtZW50IG5vZGVzKQorICoKKyAqIENoZWNrcyB3aGV0aGVyIHRoZSB0cmVlIG5vZGUgaXMgdmFsaWQuICBFeHBlcmltZW50YWwgKHRoZSBhdXRob3IKKyAqICAgICBvbmx5IHVzZXMgdGhlIEhUTUwgZW5oYW5jZW1lbnRzIGluIGEgU0FYIHBhcnNlcikKKyAqCisgKiBSZXR1cm46IGZvciBFbGVtZW50IG5vZGVzLCBhIHJldHVybiBmcm9tIGh0bWxFbGVtZW50QWxsb3dlZEhlcmUgKGlmCisgKglsZWdhY3kgYWxsb3dlZCkgb3IgaHRtbEVsZW1lbnRTdGF0dXNIZXJlIChvdGhlcndpc2UpLgorICoJZm9yIEF0dHJpYnV0ZSBub2RlcywgYSByZXR1cm4gZnJvbSBodG1sQXR0ckFsbG93ZWQKKyAqCWZvciBvdGhlciBub2RlcywgSFRNTF9OQSAobm8gY2hlY2tzIHBlcmZvcm1lZCkKKyAqLworaHRtbFN0YXR1cworaHRtbE5vZGVTdGF0dXMoY29uc3QgaHRtbE5vZGVQdHIgbm9kZSwgaW50IGxlZ2FjeSkgeworICBpZiAoICEgbm9kZSApCisgICAgcmV0dXJuIEhUTUxfSU5WQUxJRCA7CisKKyAgc3dpdGNoICggbm9kZS0+dHlwZSApIHsKKyAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICByZXR1cm4gbGVnYWN5CisJPyAoIGh0bWxFbGVtZW50QWxsb3dlZEhlcmUgKAorCQlodG1sVGFnTG9va3VwKG5vZGUtPnBhcmVudC0+bmFtZSkgLCBub2RlLT5uYW1lCisJCSkgPyBIVE1MX1ZBTElEIDogSFRNTF9JTlZBTElEICkKKwk6IGh0bWxFbGVtZW50U3RhdHVzSGVyZSgKKwkJaHRtbFRhZ0xvb2t1cChub2RlLT5wYXJlbnQtPm5hbWUpICwKKwkJaHRtbFRhZ0xvb2t1cChub2RlLT5uYW1lKSApCisJOworICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorICAgICAgcmV0dXJuIGh0bWxBdHRyQWxsb3dlZCgKKwlodG1sVGFnTG9va3VwKG5vZGUtPnBhcmVudC0+bmFtZSkgLCBub2RlLT5uYW1lLCBsZWdhY3kpIDsKKyAgICBkZWZhdWx0OiByZXR1cm4gSFRNTF9OQSA7CisgIH0KK30KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJTmV3IHNldCAoMi42LjApIG9mIHNpbXBsZXIgYW5kIG1vcmUgZmxleGlibGUgQVBJcwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBESUNUX0ZSRUU6CisgKiBAc3RyOiAgYSBzdHJpbmcKKyAqCisgKiBGcmVlIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvd25lZCBieSB0aGUgImRpY3QiIGRpY3Rpb25uYXJ5IGluIHRoZQorICogY3VycmVudCBzY29wZQorICovCisjZGVmaW5lIERJQ1RfRlJFRShzdHIpCQkJCQkJXAorCWlmICgoc3RyKSAmJiAoKCFkaWN0KSB8fAkJCQlcCisJICAgICh4bWxEaWN0T3ducyhkaWN0LCAoY29uc3QgeG1sQ2hhciAqKShzdHIpKSA9PSAwKSkpCVwKKwkgICAgeG1sRnJlZSgoY2hhciAqKShzdHIpKTsKKworLyoqCisgKiBodG1sQ3R4dFJlc2V0OgorICogQGN0eHQ6IGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXNldCBhIHBhcnNlciBjb250ZXh0CisgKi8KK3ZvaWQKK2h0bWxDdHh0UmVzZXQoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgZGljdCA9IGN0eHQtPmRpY3Q7CisKKyAgICB3aGlsZSAoKGlucHV0ID0gaW5wdXRQb3AoY3R4dCkpICE9IE5VTEwpIHsgLyogTm9uIGNvbnN1bWluZyAqLworICAgICAgICB4bWxGcmVlSW5wdXRTdHJlYW0oaW5wdXQpOworICAgIH0KKyAgICBjdHh0LT5pbnB1dE5yID0gMDsKKyAgICBjdHh0LT5pbnB1dCA9IE5VTEw7CisKKyAgICBjdHh0LT5zcGFjZU5yID0gMDsKKyAgICBpZiAoY3R4dC0+c3BhY2VUYWIgIT0gTlVMTCkgeworCWN0eHQtPnNwYWNlVGFiWzBdID0gLTE7CisJY3R4dC0+c3BhY2UgPSAmY3R4dC0+c3BhY2VUYWJbMF07CisgICAgfSBlbHNlIHsKKwljdHh0LT5zcGFjZSA9IE5VTEw7CisgICAgfQorCisKKyAgICBjdHh0LT5ub2RlTnIgPSAwOworICAgIGN0eHQtPm5vZGUgPSBOVUxMOworCisgICAgY3R4dC0+bmFtZU5yID0gMDsKKyAgICBjdHh0LT5uYW1lID0gTlVMTDsKKworICAgIERJQ1RfRlJFRShjdHh0LT52ZXJzaW9uKTsKKyAgICBjdHh0LT52ZXJzaW9uID0gTlVMTDsKKyAgICBESUNUX0ZSRUUoY3R4dC0+ZW5jb2RpbmcpOworICAgIGN0eHQtPmVuY29kaW5nID0gTlVMTDsKKyAgICBESUNUX0ZSRUUoY3R4dC0+ZGlyZWN0b3J5KTsKKyAgICBjdHh0LT5kaXJlY3RvcnkgPSBOVUxMOworICAgIERJQ1RfRlJFRShjdHh0LT5leHRTdWJVUkkpOworICAgIGN0eHQtPmV4dFN1YlVSSSA9IE5VTEw7CisgICAgRElDVF9GUkVFKGN0eHQtPmV4dFN1YlN5c3RlbSk7CisgICAgY3R4dC0+ZXh0U3ViU3lzdGVtID0gTlVMTDsKKyAgICBpZiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZURvYyhjdHh0LT5teURvYyk7CisgICAgY3R4dC0+bXlEb2MgPSBOVUxMOworCisgICAgY3R4dC0+c3RhbmRhbG9uZSA9IC0xOworICAgIGN0eHQtPmhhc0V4dGVybmFsU3Vic2V0ID0gMDsKKyAgICBjdHh0LT5oYXNQRXJlZnMgPSAwOworICAgIGN0eHQtPmh0bWwgPSAxOworICAgIGN0eHQtPmV4dGVybmFsID0gMDsKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9TVEFSVDsKKyAgICBjdHh0LT50b2tlbiA9IDA7CisKKyAgICBjdHh0LT53ZWxsRm9ybWVkID0gMTsKKyAgICBjdHh0LT5uc1dlbGxGb3JtZWQgPSAxOworICAgIGN0eHQtPnZhbGlkID0gMTsKKyAgICBjdHh0LT52Y3R4dC51c2VyRGF0YSA9IGN0eHQ7CisgICAgY3R4dC0+dmN0eHQuZXJyb3IgPSB4bWxQYXJzZXJWYWxpZGl0eUVycm9yOworICAgIGN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc7CisgICAgY3R4dC0+cmVjb3JkX2luZm8gPSAwOworICAgIGN0eHQtPm5iQ2hhcnMgPSAwOworICAgIGN0eHQtPmNoZWNrSW5kZXggPSAwOworICAgIGN0eHQtPmluU3Vic2V0ID0gMDsKKyAgICBjdHh0LT5lcnJObyA9IFhNTF9FUlJfT0s7CisgICAgY3R4dC0+ZGVwdGggPSAwOworICAgIGN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FOworICAgIGN0eHQtPmNhdGFsb2dzID0gTlVMTDsKKyAgICB4bWxJbml0Tm9kZUluZm9TZXEoJmN0eHQtPm5vZGVfc2VxKTsKKworICAgIGlmIChjdHh0LT5hdHRzRGVmYXVsdCAhPSBOVUxMKSB7CisgICAgICAgIHhtbEhhc2hGcmVlKGN0eHQtPmF0dHNEZWZhdWx0LCAoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxGcmVlKTsKKyAgICAgICAgY3R4dC0+YXR0c0RlZmF1bHQgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+YXR0c1NwZWNpYWwgIT0gTlVMTCkgeworICAgICAgICB4bWxIYXNoRnJlZShjdHh0LT5hdHRzU3BlY2lhbCwgTlVMTCk7CisgICAgICAgIGN0eHQtPmF0dHNTcGVjaWFsID0gTlVMTDsKKyAgICB9Cit9CisKKy8qKgorICogaHRtbEN0eHRVc2VPcHRpb25zOgorICogQGN0eHQ6IGFuIEhUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpCisgKgorICogQXBwbGllcyB0aGUgb3B0aW9ucyB0byB0aGUgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCB0aGUgc2V0IG9mIHVua25vd24gb3IgdW5pbXBsZW1lbnRlZCBvcHRpb25zCisgKiAgICAgICAgIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoraHRtbEN0eHRVc2VPcHRpb25zKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBvcHRpb25zKQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICBpZiAob3B0aW9ucyAmIEhUTUxfUEFSU0VfTk9XQVJOSU5HKSB7CisgICAgICAgIGN0eHQtPnNheC0+d2FybmluZyA9IE5VTEw7CisgICAgICAgIGN0eHQtPnZjdHh0Lndhcm5pbmcgPSBOVUxMOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9OT1dBUk5JTkc7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9XQVJOSU5HOworICAgIH0KKyAgICBpZiAob3B0aW9ucyAmIEhUTUxfUEFSU0VfTk9FUlJPUikgeworICAgICAgICBjdHh0LT5zYXgtPmVycm9yID0gTlVMTDsKKyAgICAgICAgY3R4dC0+dmN0eHQuZXJyb3IgPSBOVUxMOworICAgICAgICBjdHh0LT5zYXgtPmZhdGFsRXJyb3IgPSBOVUxMOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9OT0VSUk9SOworCWN0eHQtPm9wdGlvbnMgfD0gWE1MX1BBUlNFX05PRVJST1I7CisgICAgfQorICAgIGlmIChvcHRpb25zICYgSFRNTF9QQVJTRV9QRURBTlRJQykgeworICAgICAgICBjdHh0LT5wZWRhbnRpYyA9IDE7CisgICAgICAgIG9wdGlvbnMgLT0gWE1MX1BBUlNFX1BFREFOVElDOworCWN0eHQtPm9wdGlvbnMgfD0gWE1MX1BBUlNFX1BFREFOVElDOworICAgIH0gZWxzZQorICAgICAgICBjdHh0LT5wZWRhbnRpYyA9IDA7CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfTk9CTEFOS1MpIHsKKyAgICAgICAgY3R4dC0+a2VlcEJsYW5rcyA9IDA7CisgICAgICAgIGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSA9IHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9OT0JMQU5LUzsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9OT0JMQU5LUzsKKyAgICB9IGVsc2UKKyAgICAgICAgY3R4dC0+a2VlcEJsYW5rcyA9IDE7CisgICAgaWYgKG9wdGlvbnMgJiBIVE1MX1BBUlNFX1JFQ09WRVIpIHsKKyAgICAgICAgY3R4dC0+cmVjb3ZlcnkgPSAxOworCW9wdGlvbnMgLT0gSFRNTF9QQVJTRV9SRUNPVkVSOworICAgIH0gZWxzZQorICAgICAgICBjdHh0LT5yZWNvdmVyeSA9IDA7CisgICAgaWYgKG9wdGlvbnMgJiBIVE1MX1BBUlNFX0NPTVBBQ1QpIHsKKwljdHh0LT5vcHRpb25zIHw9IEhUTUxfUEFSU0VfQ09NUEFDVDsKKyAgICAgICAgb3B0aW9ucyAtPSBIVE1MX1BBUlNFX0NPTVBBQ1Q7CisgICAgfQorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpIHsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9IVUdFOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9IVUdFOworICAgIH0KKyAgICBjdHh0LT5kaWN0TmFtZXMgPSAwOworICAgIHJldHVybiAob3B0aW9ucyk7Cit9CisKKy8qKgorICogaHRtbERvUmVhZDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKQorICogQHJldXNlOiAga2VlcCB0aGUgY29udGV4dCBmb3IgcmV1c2UKKyAqCisgKiBDb21tb24gZnJvbnQtZW5kIGZvciB0aGUgaHRtbFJlYWQgZnVuY3Rpb25zCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgb3IgTlVMTAorICovCitzdGF0aWMgaHRtbERvY1B0cgoraHRtbERvUmVhZChodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorICAgICAgICAgIGludCBvcHRpb25zLCBpbnQgcmV1c2UpCit7CisgICAgaHRtbERvY1B0ciByZXQ7CisKKyAgICBodG1sQ3R4dFVzZU9wdGlvbnMoY3R4dCwgb3B0aW9ucyk7CisgICAgY3R4dC0+aHRtbCA9IDE7CisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoZGxyOworCisJaGRsciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuY29kaW5nKTsKKwlpZiAoaGRsciAhPSBOVUxMKSB7CisJICAgIHhtbFN3aXRjaFRvRW5jb2RpbmcoY3R4dCwgaGRscik7CisJICAgIGlmIChjdHh0LT5pbnB1dC0+ZW5jb2RpbmcgIT0gTlVMTCkKKwkgICAgICB4bWxGcmVlKCh4bWxDaGFyICopIGN0eHQtPmlucHV0LT5lbmNvZGluZyk7CisgICAgICAgICAgICBjdHh0LT5pbnB1dC0+ZW5jb2RpbmcgPSB4bWxTdHJkdXAoKHhtbENoYXIgKillbmNvZGluZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKChVUkwgIT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT5pbnB1dC0+ZmlsZW5hbWUgPT0gTlVMTCkpCisgICAgICAgIGN0eHQtPmlucHV0LT5maWxlbmFtZSA9IChjaGFyICopIHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBVUkwpOworICAgIGh0bWxQYXJzZURvY3VtZW50KGN0eHQpOworICAgIHJldCA9IGN0eHQtPm15RG9jOworICAgIGN0eHQtPm15RG9jID0gTlVMTDsKKyAgICBpZiAoIXJldXNlKSB7CisgICAgICAgIGlmICgoY3R4dC0+ZGljdE5hbWVzKSAmJgorCSAgICAocmV0ICE9IE5VTEwpICYmCisJICAgIChyZXQtPmRpY3QgPT0gY3R4dC0+ZGljdCkpCisJICAgIGN0eHQtPmRpY3QgPSBOVUxMOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogaHRtbFJlYWREb2M6CisgKiBAY3VyOiAgYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZworICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKQorICoKKyAqIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCitodG1sRG9jUHRyCitodG1sUmVhZERvYyhjb25zdCB4bWxDaGFyICogY3VyLCBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICBodG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworCisgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgeG1sSW5pdFBhcnNlcigpOworICAgIGN0eHQgPSBodG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dChjdXIsIE5VTEwpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgcmV0dXJuIChodG1sRG9SZWFkKGN0eHQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDApKTsKK30KKworLyoqCisgKiBodG1sUmVhZEZpbGU6CisgKiBAZmlsZW5hbWU6ICBhIGZpbGUgb3IgVVJMCisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpCisgKgorICogcGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCitodG1sRG9jUHRyCitodG1sUmVhZEZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICBodG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworCisgICAgeG1sSW5pdFBhcnNlcigpOworICAgIGN0eHQgPSBodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQoZmlsZW5hbWUsIGVuY29kaW5nKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHJldHVybiAoaHRtbERvUmVhZChjdHh0LCBOVUxMLCBOVUxMLCBvcHRpb25zLCAwKSk7Cit9CisKKy8qKgorICogaHRtbFJlYWRNZW1vcnk6CisgKiBAYnVmZmVyOiAgYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheQorICogQHNpemU6ICB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocykKKyAqCisgKiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworaHRtbERvY1B0cgoraHRtbFJlYWRNZW1vcnkoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSwgY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKyAgICBjdHh0ID0geG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dChidWZmZXIsIHNpemUpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCgpOworICAgIGlmIChjdHh0LT5zYXggIT0gTlVMTCkKKyAgICAgICAgbWVtY3B5KGN0eHQtPnNheCwgJmh0bWxEZWZhdWx0U0FYSGFuZGxlciwgc2l6ZW9mKHhtbFNBWEhhbmRsZXJWMSkpOworICAgIHJldHVybiAoaHRtbERvUmVhZChjdHh0LCBVUkwsIGVuY29kaW5nLCBvcHRpb25zLCAwKSk7Cit9CisKKy8qKgorICogaHRtbFJlYWRGZDoKKyAqIEBmZDogIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yCisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpCisgKgorICogcGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCitodG1sRG9jUHRyCitodG1sUmVhZEZkKGludCBmZCwgY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoZmQgPCAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgeG1sSW5pdFBhcnNlcigpOworICAgIGlucHV0ID0geG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZChmZCwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihpbnB1dCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHN0cmVhbSA9IHhtbE5ld0lPSW5wdXRTdHJlYW0oY3R4dCwgaW5wdXQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChzdHJlYW0gPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpbnB1dFB1c2goY3R4dCwgc3RyZWFtKTsKKyAgICByZXR1cm4gKGh0bWxEb1JlYWQoY3R4dCwgVVJMLCBlbmNvZGluZywgb3B0aW9ucywgMCkpOworfQorCisvKioKKyAqIGh0bWxSZWFkSU86CisgKiBAaW9yZWFkOiAgYW4gSS9PIHJlYWQgZnVuY3Rpb24KKyAqIEBpb2Nsb3NlOiAgYW4gSS9PIGNsb3NlIGZ1bmN0aW9uCisgKiBAaW9jdHg6ICBhbiBJL08gaGFuZGxlcgorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKQorICoKKyAqIHBhcnNlIGFuIEhUTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCitodG1sRG9jUHRyCitodG1sUmVhZElPKHhtbElucHV0UmVhZENhbGxiYWNrIGlvcmVhZCwgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGlvY2xvc2UsCisgICAgICAgICAgdm9pZCAqaW9jdHgsIGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgc3RyZWFtOworCisgICAgaWYgKGlvcmVhZCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGlucHV0ID0geG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyhpb3JlYWQsIGlvY2xvc2UsIGlvY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjdHh0ID0gaHRtbE5ld1BhcnNlckN0eHQoKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihpbnB1dCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHN0cmVhbSA9IHhtbE5ld0lPSW5wdXRTdHJlYW0oY3R4dCwgaW5wdXQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChzdHJlYW0gPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpbnB1dFB1c2goY3R4dCwgc3RyZWFtKTsKKyAgICByZXR1cm4gKGh0bWxEb1JlYWQoY3R4dCwgVVJMLCBlbmNvZGluZywgb3B0aW9ucywgMCkpOworfQorCisvKioKKyAqIGh0bWxDdHh0UmVhZERvYzoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQGN1cjogIGEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmcKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocykKKyAqCisgKiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuCisgKiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCitodG1sRG9jUHRyCitodG1sQ3R4dFJlYWREb2MoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqIGN1ciwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFBhcnNlcklucHV0UHRyIHN0cmVhbTsKKworICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgaHRtbEN0eHRSZXNldChjdHh0KTsKKworICAgIHN0cmVhbSA9IHhtbE5ld1N0cmluZ0lucHV0U3RyZWFtKGN0eHQsIGN1cik7CisgICAgaWYgKHN0cmVhbSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGlucHV0UHVzaChjdHh0LCBzdHJlYW0pOworICAgIHJldHVybiAoaHRtbERvUmVhZChjdHh0LCBVUkwsIGVuY29kaW5nLCBvcHRpb25zLCAxKSk7Cit9CisKKy8qKgorICogaHRtbEN0eHRSZWFkRmlsZToKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQGZpbGVuYW1lOiAgYSBmaWxlIG9yIFVSTAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKQorICoKKyAqIHBhcnNlIGFuIFhNTCBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0gb3IgdGhlIG5ldHdvcmsuCisgKiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCitodG1sRG9jUHRyCitodG1sQ3R4dFJlYWRGaWxlKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgaHRtbEN0eHRSZXNldChjdHh0KTsKKworICAgIHN0cmVhbSA9IHhtbExvYWRFeHRlcm5hbEVudGl0eShmaWxlbmFtZSwgTlVMTCwgY3R4dCk7CisgICAgaWYgKHN0cmVhbSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGlucHV0UHVzaChjdHh0LCBzdHJlYW0pOworICAgIHJldHVybiAoaHRtbERvUmVhZChjdHh0LCBOVUxMLCBlbmNvZGluZywgb3B0aW9ucywgMSkpOworfQorCisvKioKKyAqIGh0bWxDdHh0UmVhZE1lbW9yeToKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQGJ1ZmZlcjogIGEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkKKyAqIEBzaXplOiAgdGhlIHNpemUgb2YgdGhlIGFycmF5CisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpCisgKgorICogcGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLgorICogVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0CisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworaHRtbERvY1B0cgoraHRtbEN0eHRSZWFkTWVtb3J5KGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmJ1ZmZlciwgaW50IHNpemUsCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmIChidWZmZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIGh0bWxDdHh0UmVzZXQoY3R4dCk7CisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtKGJ1ZmZlciwgc2l6ZSwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgc3RyZWFtID0geG1sTmV3SU9JbnB1dFN0cmVhbShjdHh0LCBpbnB1dCwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKHN0cmVhbSA9PSBOVUxMKSB7CisJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGlucHV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaW5wdXRQdXNoKGN0eHQsIHN0cmVhbSk7CisgICAgcmV0dXJuIChodG1sRG9SZWFkKGN0eHQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDEpKTsKK30KKworLyoqCisgKiBodG1sQ3R4dFJlYWRGZDoKKyAqIEBjdHh0OiAgYW4gSFRNTCBwYXJzZXIgY29udGV4dAorICogQGZkOiAgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocykKKyAqCisgKiBwYXJzZSBhbiBYTUwgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciBhbmQgYnVpbGQgYSB0cmVlLgorICogVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0CisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworaHRtbERvY1B0cgoraHRtbEN0eHRSZWFkRmQoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50IGZkLAorICAgICAgICAgICAgICBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoZmQgPCAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBodG1sQ3R4dFJlc2V0KGN0eHQpOworCisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQoZmQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHN0cmVhbSA9IHhtbE5ld0lPSW5wdXRTdHJlYW0oY3R4dCwgaW5wdXQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChzdHJlYW0gPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpbnB1dFB1c2goY3R4dCwgc3RyZWFtKTsKKyAgICByZXR1cm4gKGh0bWxEb1JlYWQoY3R4dCwgVVJMLCBlbmNvZGluZywgb3B0aW9ucywgMSkpOworfQorCisvKioKKyAqIGh0bWxDdHh0UmVhZElPOgorICogQGN0eHQ6ICBhbiBIVE1MIHBhcnNlciBjb250ZXh0CisgKiBAaW9yZWFkOiAgYW4gSS9PIHJlYWQgZnVuY3Rpb24KKyAqIEBpb2Nsb3NlOiAgYW4gSS9PIGNsb3NlIGZ1bmN0aW9uCisgKiBAaW9jdHg6ICBhbiBJL08gaGFuZGxlcgorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKQorICoKKyAqIHBhcnNlIGFuIEhUTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlCisgKi8KK2h0bWxEb2NQdHIKK2h0bWxDdHh0UmVhZElPKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbElucHV0UmVhZENhbGxiYWNrIGlvcmVhZCwKKyAgICAgICAgICAgICAgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGlvY2xvc2UsIHZvaWQgKmlvY3R4LAorCSAgICAgIGNvbnN0IGNoYXIgKlVSTCwKKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0OworICAgIHhtbFBhcnNlcklucHV0UHRyIHN0cmVhbTsKKworICAgIGlmIChpb3JlYWQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgaHRtbEN0eHRSZXNldChjdHh0KTsKKworICAgIGlucHV0ID0geG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyhpb3JlYWQsIGlvY2xvc2UsIGlvY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBzdHJlYW0gPSB4bWxOZXdJT0lucHV0U3RyZWFtKGN0eHQsIGlucHV0LCBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKyAgICBpZiAoc3RyZWFtID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGlucHV0KTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgaW5wdXRQdXNoKGN0eHQsIHN0cmVhbSk7CisgICAgcmV0dXJuIChodG1sRG9SZWFkKGN0eHQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDEpKTsKK30KKworI2RlZmluZSBib3R0b21fSFRNTHBhcnNlcgorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfSFRNTF9FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L0hUTUx0cmVlLmMgYi9saWJ4bWwyLTIuNy43L0hUTUx0cmVlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUwODU4MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvSFRNTHRyZWUuYwpAQCAtMCwwICsxLDEyMzEgQEAKKy8qCisgKiBIVE1MdHJlZS5jIDogaW1wbGVtZW50YXRpb24gb2YgYWNjZXNzIGZ1bmN0aW9uIGZvciBhbiBIVE1MIHRyZWUuCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorCisjaW5jbHVkZSA8c3RyaW5nLmg+IC8qIGZvciBtZW1zZXQoKSBvbmx5ICEgKi8KKworI2lmZGVmIEhBVkVfQ1RZUEVfSAorI2luY2x1ZGUgPGN0eXBlLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHBhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9IVE1MdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC92YWxpZC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAgIAkJR2V0dGluZy9TZXR0aW5nIGVuY29kaW5nIG1ldGEgdGFncwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBodG1sR2V0TWV0YUVuY29kaW5nOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogCisgKiBFbmNvZGluZyBkZWZpbml0aW9uIGxvb2t1cCBpbiB0aGUgTWV0YSB0YWdzCisgKgorICogUmV0dXJucyB0aGUgY3VycmVudCBlbmNvZGluZyBhcyBmbGFnZ2VkIGluIHRoZSBIVE1MIHNvdXJjZQorICovCitjb25zdCB4bWxDaGFyICoKK2h0bWxHZXRNZXRhRW5jb2RpbmcoaHRtbERvY1B0ciBkb2MpIHsKKyAgICBodG1sTm9kZVB0ciBjdXI7CisgICAgY29uc3QgeG1sQ2hhciAqY29udGVudDsKKyAgICBjb25zdCB4bWxDaGFyICplbmNvZGluZzsKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgY3VyID0gZG9jLT5jaGlsZHJlbjsKKworICAgIC8qCisgICAgICogU2VhcmNoIHRoZSBodG1sCisgICAgICovCisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKGN1ci0+bmFtZSAhPSBOVUxMKSkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCJodG1sIikpCisJCWJyZWFrOworCSAgICBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCJoZWFkIikpCisJCWdvdG8gZm91bmRfaGVhZDsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QibWV0YSIpKQorCQlnb3RvIGZvdW5kX21ldGE7CisJfQorCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CisgICAgaWYgKGN1ciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCisgICAgLyoKKyAgICAgKiBTZWFyY2ggdGhlIGhlYWQKKyAgICAgKi8KKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5uYW1lICE9IE5VTEwpKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUImhlYWQiKSkKKwkJYnJlYWs7CisJICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUIm1ldGEiKSkKKwkJZ290byBmb3VuZF9tZXRhOworCX0KKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7Citmb3VuZF9oZWFkOgorICAgIGN1ciA9IGN1ci0+Y2hpbGRyZW47CisKKyAgICAvKgorICAgICAqIFNlYXJjaCB0aGUgbWV0YSBlbGVtZW50cworICAgICAqLworZm91bmRfbWV0YToKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5uYW1lICE9IE5VTEwpKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUIm1ldGEiKSkgeworCQl4bWxBdHRyUHRyIGF0dHIgPSBjdXItPnByb3BlcnRpZXM7CisJCWludCBodHRwOworCQljb25zdCB4bWxDaGFyICp2YWx1ZTsKKworCQljb250ZW50ID0gTlVMTDsKKwkJaHR0cCA9IDA7CisJCXdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkJICAgIGlmICgoYXR0ci0+Y2hpbGRyZW4gIT0gTlVMTCkgJiYKKwkJICAgICAgICAoYXR0ci0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgJiYKKwkJICAgICAgICAoYXR0ci0+Y2hpbGRyZW4tPm5leHQgPT0gTlVMTCkpIHsKKwkJCXZhbHVlID0gYXR0ci0+Y2hpbGRyZW4tPmNvbnRlbnQ7CisJCQlpZiAoKCF4bWxTdHJjYXNlY21wKGF0dHItPm5hbWUsIEJBRF9DQVNUImh0dHAtZXF1aXYiKSkKKwkJCSAmJiAoIXhtbFN0cmNhc2VjbXAodmFsdWUsIEJBRF9DQVNUIkNvbnRlbnQtVHlwZSIpKSkKKwkJCSAgICBodHRwID0gMTsKKwkJCWVsc2UgaWYgKCh2YWx1ZSAhPSBOVUxMKQorCQkJICYmICgheG1sU3RyY2FzZWNtcChhdHRyLT5uYW1lLCBCQURfQ0FTVCJjb250ZW50IikpKQorCQkJICAgIGNvbnRlbnQgPSB2YWx1ZTsKKwkJCWlmICgoaHR0cCAhPSAwKSAmJiAoY29udGVudCAhPSBOVUxMKSkKKwkJCSAgICBnb3RvIGZvdW5kX2NvbnRlbnQ7CisJCSAgICB9CisJCSAgICBhdHRyID0gYXR0ci0+bmV4dDsKKwkJfQorCSAgICB9CisJfQorCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworCitmb3VuZF9jb250ZW50OgorICAgIGVuY29kaW5nID0geG1sU3Ryc3RyKGNvbnRlbnQsIEJBRF9DQVNUImNoYXJzZXQ9Iik7CisgICAgaWYgKGVuY29kaW5nID09IE5VTEwpIAorCWVuY29kaW5nID0geG1sU3Ryc3RyKGNvbnRlbnQsIEJBRF9DQVNUIkNoYXJzZXQ9Iik7CisgICAgaWYgKGVuY29kaW5nID09IE5VTEwpIAorCWVuY29kaW5nID0geG1sU3Ryc3RyKGNvbnRlbnQsIEJBRF9DQVNUIkNIQVJTRVQ9Iik7CisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwllbmNvZGluZyArPSA4OworICAgIH0gZWxzZSB7CisJZW5jb2RpbmcgPSB4bWxTdHJzdHIoY29udGVudCwgQkFEX0NBU1QiY2hhcnNldCA9Iik7CisJaWYgKGVuY29kaW5nID09IE5VTEwpIAorCSAgICBlbmNvZGluZyA9IHhtbFN0cnN0cihjb250ZW50LCBCQURfQ0FTVCJDaGFyc2V0ID0iKTsKKwlpZiAoZW5jb2RpbmcgPT0gTlVMTCkgCisJICAgIGVuY29kaW5nID0geG1sU3Ryc3RyKGNvbnRlbnQsIEJBRF9DQVNUIkNIQVJTRVQgPSIpOworCWlmIChlbmNvZGluZyAhPSBOVUxMKQorCSAgICBlbmNvZGluZyArPSA5OworICAgIH0KKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworCXdoaWxlICgoKmVuY29kaW5nID09ICcgJykgfHwgKCplbmNvZGluZyA9PSAnXHQnKSkgZW5jb2RpbmcrKzsKKyAgICB9CisgICAgcmV0dXJuKGVuY29kaW5nKTsKK30KKworLyoqCisgKiBodG1sU2V0TWV0YUVuY29kaW5nOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGVuY29kaW5nIHN0cmluZworICogCisgKiBTZXRzIHRoZSBjdXJyZW50IGVuY29kaW5nIGluIHRoZSBNZXRhIHRhZ3MKKyAqIE5PVEU6IHRoaXMgd2lsbCBub3QgY2hhbmdlIHRoZSBkb2N1bWVudCBjb250ZW50IGVuY29kaW5nLCBqdXN0CisgKiB0aGUgTUVUQSBmbGFnIGFzc29jaWF0ZWQuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK2h0bWxTZXRNZXRhRW5jb2RpbmcoaHRtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKmVuY29kaW5nKSB7CisgICAgaHRtbE5vZGVQdHIgY3VyLCBtZXRhID0gTlVMTCwgaGVhZCA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqY29udGVudCA9IE5VTEw7CisgICAgY2hhciBuZXdjb250ZW50WzEwMF07CisKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgLyogaHRtbCBpc24ndCBhIHJlYWwgZW5jb2RpbmcgaXQncyBqdXN0IGxpYnhtbDIgd2F5IHRvIGdldCBlbnRpdGllcyAqLworICAgIGlmICgheG1sU3RyY2FzZWNtcChlbmNvZGluZywgQkFEX0NBU1QgImh0bWwiKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIGlmIChlbmNvZGluZyAhPSBOVUxMKSB7CisJc25wcmludGYobmV3Y29udGVudCwgc2l6ZW9mKG5ld2NvbnRlbnQpLCAidGV4dC9odG1sOyBjaGFyc2V0PSVzIiwKKyAgICAgICAgICAgICAgICAoY2hhciAqKWVuY29kaW5nKTsKKwluZXdjb250ZW50W3NpemVvZihuZXdjb250ZW50KSAtIDFdID0gMDsKKyAgICB9CisKKyAgICBjdXIgPSBkb2MtPmNoaWxkcmVuOworCisgICAgLyoKKyAgICAgKiBTZWFyY2ggdGhlIGh0bWwKKyAgICAgKi8KKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5uYW1lICE9IE5VTEwpKSB7CisJICAgIGlmICh4bWxTdHJjYXNlY21wKGN1ci0+bmFtZSwgQkFEX0NBU1QiaHRtbCIpID09IDApCisJCWJyZWFrOworCSAgICBpZiAoeG1sU3RyY2FzZWNtcChjdXItPm5hbWUsIEJBRF9DQVNUImhlYWQiKSA9PSAwKQorCQlnb3RvIGZvdW5kX2hlYWQ7CisJICAgIGlmICh4bWxTdHJjYXNlY21wKGN1ci0+bmFtZSwgQkFEX0NBU1QibWV0YSIpID09IDApCisJCWdvdG8gZm91bmRfbWV0YTsKKwl9CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCisgICAgLyoKKyAgICAgKiBTZWFyY2ggdGhlIGhlYWQKKyAgICAgKi8KKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5uYW1lICE9IE5VTEwpKSB7CisJICAgIGlmICh4bWxTdHJjYXNlY21wKGN1ci0+bmFtZSwgQkFEX0NBU1QiaGVhZCIpID09IDApCisJCWJyZWFrOworCSAgICBpZiAoeG1sU3RyY2FzZWNtcChjdXItPm5hbWUsIEJBRF9DQVNUIm1ldGEiKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgaGVhZCA9IGN1ci0+cGFyZW50OworCQlnb3RvIGZvdW5kX21ldGE7CisgICAgICAgICAgICB9CisJfQorCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CisgICAgaWYgKGN1ciA9PSBOVUxMKQorCXJldHVybigtMSk7Citmb3VuZF9oZWFkOgorICAgIGhlYWQgPSBjdXI7CisgICAgaWYgKGN1ci0+Y2hpbGRyZW4gPT0gTlVMTCkKKyAgICAgICAgZ290byBjcmVhdGU7CisgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKworZm91bmRfbWV0YToKKyAgICAvKgorICAgICAqIFNlYXJjaCBhbmQgdXBkYXRlIGFsbCB0aGUgcmVtYWluaW5nIHRoZSBtZXRhIGVsZW1lbnRzIGNhcnJ5aW5nCisgICAgICogZW5jb2RpbmcgaW5mb3JtYXRpb25zCisgICAgICovCisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKGN1ci0+bmFtZSAhPSBOVUxMKSkgeworCSAgICBpZiAoeG1sU3RyY2FzZWNtcChjdXItPm5hbWUsIEJBRF9DQVNUIm1ldGEiKSA9PSAwKSB7CisJCXhtbEF0dHJQdHIgYXR0ciA9IGN1ci0+cHJvcGVydGllczsKKwkJaW50IGh0dHA7CisJCWNvbnN0IHhtbENoYXIgKnZhbHVlOworCisJCWNvbnRlbnQgPSBOVUxMOworCQlodHRwID0gMDsKKwkJd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCQkgICAgaWYgKChhdHRyLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCQkgICAgICAgIChhdHRyLT5jaGlsZHJlbi0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSAmJgorCQkgICAgICAgIChhdHRyLT5jaGlsZHJlbi0+bmV4dCA9PSBOVUxMKSkgeworCQkJdmFsdWUgPSBhdHRyLT5jaGlsZHJlbi0+Y29udGVudDsKKwkJCWlmICgoIXhtbFN0cmNhc2VjbXAoYXR0ci0+bmFtZSwgQkFEX0NBU1QiaHR0cC1lcXVpdiIpKQorCQkJICYmICgheG1sU3RyY2FzZWNtcCh2YWx1ZSwgQkFEX0NBU1QiQ29udGVudC1UeXBlIikpKQorCQkJICAgIGh0dHAgPSAxOworCQkJZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh2YWx1ZSAhPSBOVUxMKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIXhtbFN0cmNhc2VjbXAoYXR0ci0+bmFtZSwgQkFEX0NBU1QiY29udGVudCIpKSkKKwkJCSAgICAgICBjb250ZW50ID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisJCSAgICAgICAgaWYgKChodHRwICE9IDApICYmIChjb250ZW50ICE9IE5VTEwpKQorCQkJICAgIGJyZWFrOworCQkgICAgfQorCQkgICAgYXR0ciA9IGF0dHItPm5leHQ7CisJCX0KKwkJaWYgKChodHRwICE9IDApICYmIChjb250ZW50ICE9IE5VTEwpKSB7CisJCSAgICBtZXRhID0gY3VyOworCQkgICAgYnJlYWs7CisJCX0KKworCSAgICB9CisJfQorCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CitjcmVhdGU6CisgICAgaWYgKG1ldGEgPT0gTlVMTCkgeworICAgICAgICBpZiAoKGVuY29kaW5nICE9IE5VTEwpICYmIChoZWFkICE9IE5VTEwpKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogQ3JlYXRlIGEgbmV3IE1ldGEgZWxlbWVudCB3aXRoIHRoZSByaWdodCBhdHRyaWJ1dGVzCisgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgbWV0YSA9IHhtbE5ld0RvY05vZGUoZG9jLCBOVUxMLCBCQURfQ0FTVCJtZXRhIiwgTlVMTCk7CisgICAgICAgICAgICBpZiAoaGVhZC0+Y2hpbGRyZW4gPT0gTlVMTCkKKyAgICAgICAgICAgICAgICB4bWxBZGRDaGlsZChoZWFkLCBtZXRhKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB4bWxBZGRQcmV2U2libGluZyhoZWFkLT5jaGlsZHJlbiwgbWV0YSk7CisgICAgICAgICAgICB4bWxOZXdQcm9wKG1ldGEsIEJBRF9DQVNUImh0dHAtZXF1aXYiLCBCQURfQ0FTVCJDb250ZW50LVR5cGUiKTsKKyAgICAgICAgICAgIHhtbE5ld1Byb3AobWV0YSwgQkFEX0NBU1QiY29udGVudCIsIEJBRF9DQVNUIG5ld2NvbnRlbnQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyogY2hhbmdlIHRoZSBkb2N1bWVudCBvbmx5IGlmIHRoZXJlIGlzIGEgcmVhbCBlbmNvZGluZyBjaGFuZ2UgKi8KKyAgICAgICAgaWYgKHhtbFN0cmNhc2VzdHIoY29udGVudCwgZW5jb2RpbmcpID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFNldFByb3AobWV0YSwgQkFEX0NBU1QiY29udGVudCIsIEJBRF9DQVNUIG5ld2NvbnRlbnQpOworICAgICAgICB9CisgICAgfQorCisKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogYm9vbGVhbkhUTUxBdHRyczoKKyAqCisgKiBUaGVzZSBhcmUgdGhlIEhUTUwgYXR0cmlidXRlcyB3aGljaCB3aWxsIGJlIG91dHB1dAorICogaW4gbWluaW1pemVkIGZvcm0sIGkuZS4gPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiPiB3aWxsIGJlCisgKiBvdXRwdXQgYXMgPG9wdGlvbiBzZWxlY3RlZD4sIGFzIHBlciBYU0xUIDEuMCAxNi4yICJIVE1MIE91dHB1dCBNZXRob2QiCisgKgorICovCitzdGF0aWMgY29uc3QgY2hhciogaHRtbEJvb2xlYW5BdHRyc1tdID0geworICAiY2hlY2tlZCIsICJjb21wYWN0IiwgImRlY2xhcmUiLCAiZGVmZXIiLCAiZGlzYWJsZWQiLCAiaXNtYXAiLAorICAibXVsdGlwbGUiLCAibm9ocmVmIiwgIm5vcmVzaXplIiwgIm5vc2hhZGUiLCAibm93cmFwIiwgInJlYWRvbmx5IiwKKyAgInNlbGVjdGVkIiwgTlVMTAorfTsKKworCisvKioKKyAqIGh0bWxJc0Jvb2xlYW5BdHRyOgorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHRvIGNoZWNrCisgKgorICogRGV0ZXJtaW5lIGlmIGEgZ2l2ZW4gYXR0cmlidXRlIGlzIGEgYm9vbGVhbiBhdHRyaWJ1dGUuCisgKiAKKyAqIHJldHVybnM6IGZhbHNlIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IGJvb2xlYW4sIHRydWUgb3RoZXJ3aXNlLgorICovCitpbnQKK2h0bWxJc0Jvb2xlYW5BdHRyKGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgaW50IGkgPSAwOworCisgICAgd2hpbGUgKGh0bWxCb29sZWFuQXR0cnNbaV0gIT0gTlVMTCkgeworICAgICAgICBpZiAoeG1sU3RyY2FzZWNtcCgoY29uc3QgeG1sQ2hhciAqKWh0bWxCb29sZWFuQXR0cnNbaV0sIG5hbWUpID09IDApCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoKKyAqIHByaXZhdGUgcm91dGluZSBleHBvcnRlZCBmcm9tIHhtbElPLmMKKyAqLworeG1sT3V0cHV0QnVmZmVyUHRyCit4bWxBbGxvY091dHB1dEJ1ZmZlckludGVybmFsKHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2Rlcik7CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJCU91dHB1dCBlcnJvciBoYW5kbGVycwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIGh0bWxTYXZlRXJyTWVtb3J5OgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCitodG1sU2F2ZUVyck1lbW9yeShjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBfX3htbFNpbXBsZUVycm9yKFhNTF9GUk9NX09VVFBVVCwgWE1MX0VSUl9OT19NRU1PUlksIE5VTEwsIE5VTEwsIGV4dHJhKTsKK30KKworLyoqCisgKiBodG1sU2F2ZUVycjoKKyAqIEBjb2RlOiAgdGhlIGVycm9yIG51bWJlcgorICogQG5vZGU6ICB0aGUgbG9jYXRpb24gb2YgdGhlIGVycm9yLgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCitodG1sU2F2ZUVycihpbnQgY29kZSwgeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBjb25zdCBjaGFyICptc2cgPSBOVUxMOworCisgICAgc3dpdGNoKGNvZGUpIHsKKyAgICAgICAgY2FzZSBYTUxfU0FWRV9OT1RfVVRGODoKKwkgICAgbXNnID0gInN0cmluZyBpcyBub3QgaW4gVVRGLThcbiI7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NBVkVfQ0hBUl9JTlZBTElEOgorCSAgICBtc2cgPSAiaW52YWxpZCBjaGFyYWN0ZXIgdmFsdWVcbiI7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NBVkVfVU5LTk9XTl9FTkNPRElORzoKKwkgICAgbXNnID0gInVua25vd24gZW5jb2RpbmcgJXNcbiI7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NBVkVfTk9fRE9DVFlQRToKKwkgICAgbXNnID0gIkhUTUwgaGFzIG5vIERPQ1RZUEVcbiI7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIG1zZyA9ICJ1bmV4cGVjdGVkIGVycm9yIG51bWJlclxuIjsKKyAgICB9CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9PVVRQVVQsIGNvZGUsIG5vZGUsIG1zZywgZXh0cmEpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqICAgCQlEdW1waW5nIEhUTUwgdHJlZSBjb250ZW50IHRvIGEgc2ltcGxlIGJ1ZmZlcgkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CitodG1sTm9kZUR1bXBGb3JtYXQoeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIsCisJICAgICAgICAgICBpbnQgZm9ybWF0KTsKKworLyoqCisgKiBodG1sTm9kZUR1bXBGb3JtYXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUKKyAqIEBmb3JtYXQ6ICBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZAorICoKKyAqIER1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoraHRtbE5vZGVEdW1wRm9ybWF0KHhtbEJ1ZmZlclB0ciBidWYsIHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyLAorCSAgICAgICAgICAgaW50IGZvcm1hdCkgeworICAgIHVuc2lnbmVkIGludCB1c2U7CisgICAgaW50IHJldDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgb3V0YnVmOworCisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgIGlmIChidWYgPT0gTlVMTCkgeworCXJldHVybiAoLTEpOworICAgIH0KKyAgICBvdXRidWYgPSAoeG1sT3V0cHV0QnVmZmVyUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE91dHB1dEJ1ZmZlcikpOworICAgIGlmIChvdXRidWYgPT0gTlVMTCkgeworICAgICAgICBodG1sU2F2ZUVyck1lbW9yeSgiYWxsb2NhdGluZyBIVE1MIG91dHB1dCBidWZmZXIiKTsKKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgbWVtc2V0KG91dGJ1ZiwgMCwgKHNpemVfdCkgc2l6ZW9mKHhtbE91dHB1dEJ1ZmZlcikpOworICAgIG91dGJ1Zi0+YnVmZmVyID0gYnVmOworICAgIG91dGJ1Zi0+ZW5jb2RlciA9IE5VTEw7CisgICAgb3V0YnVmLT53cml0ZWNhbGxiYWNrID0gTlVMTDsKKyAgICBvdXRidWYtPmNsb3NlY2FsbGJhY2sgPSBOVUxMOworICAgIG91dGJ1Zi0+Y29udGV4dCA9IE5VTEw7CisgICAgb3V0YnVmLT53cml0dGVuID0gMDsKKworICAgIHVzZSA9IGJ1Zi0+dXNlOworICAgIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dChvdXRidWYsIGRvYywgY3VyLCBOVUxMLCBmb3JtYXQpOworICAgIHhtbEZyZWUob3V0YnVmKTsKKyAgICByZXQgPSBidWYtPnVzZSAtIHVzZTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogaHRtbE5vZGVEdW1wOgorICogQGJ1ZjogIHRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlCisgKgorICogRHVtcCBhbiBIVE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLAorICogYW5kIGZvcm1hdHRpbmcgcmV0dXJucyBhcmUgYWRkZWQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoraHRtbE5vZGVEdW1wKHhtbEJ1ZmZlclB0ciBidWYsIHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgeG1sSW5pdFBhcnNlcigpOworCisgICAgcmV0dXJuKGh0bWxOb2RlRHVtcEZvcm1hdChidWYsIGRvYywgY3VyLCAxKSk7Cit9CisKKy8qKgorICogaHRtbE5vZGVEdW1wRmlsZUZvcm1hdDoKKyAqIEBvdXQ6ICB0aGUgRklMRSBwb2ludGVyCisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgbm9kZQorICogQGVuY29kaW5nOiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcKKyAqIEBmb3JtYXQ6ICBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZAorICoKKyAqIER1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4KKyAqCisgKiBUT0RPOiBpZiBlbmNvZGluZyA9PSBOVUxMIHRyeSB0byBzYXZlIGluIHRoZSBkb2MgZW5jb2RpbmcKKyAqCisgKiByZXR1cm5zOiB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKi8KK2ludAoraHRtbE5vZGVEdW1wRmlsZUZvcm1hdChGSUxFICpvdXQsIHhtbERvY1B0ciBkb2MsCisJICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBjdXIsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9ybWF0KSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXIgPSBOVUxMOworICAgIGludCByZXQ7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworCXhtbENoYXJFbmNvZGluZyBlbmM7CisKKwllbmMgPSB4bWxQYXJzZUNoYXJFbmNvZGluZyhlbmNvZGluZyk7CisJaWYgKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4KSB7CisJICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcihlbmNvZGluZyk7CisJICAgIGlmIChoYW5kbGVyID09IE5VTEwpCisJCXJldHVybigtMSk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogRmFsbGJhY2sgdG8gSFRNTCBvciBBU0NJSSB3aGVuIHRoZSBlbmNvZGluZyBpcyB1bnNwZWNpZmllZAorICAgICAqLworICAgIGlmIChoYW5kbGVyID09IE5VTEwpCisJaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJIVE1MIik7CisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKwloYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoImFzY2lpIik7CisKKyAgICAvKiAKKyAgICAgKiBzYXZlIHRoZSBjb250ZW50IHRvIGEgdGVtcCBidWZmZXIuCisgICAgICovCisgICAgYnVmID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZShvdXQsIGhhbmRsZXIpOworICAgIGlmIChidWYgPT0gTlVMTCkgcmV0dXJuKDApOworCisgICAgaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0KGJ1ZiwgZG9jLCBjdXIsIGVuY29kaW5nLCBmb3JtYXQpOworCisgICAgcmV0ID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiBodG1sTm9kZUR1bXBGaWxlOgorICogQG91dDogIHRoZSBGSUxFIHBvaW50ZXIKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlCisgKgorICogRHVtcCBhbiBIVE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLAorICogYW5kIGZvcm1hdHRpbmcgcmV0dXJucyBhcmUgYWRkZWQuCisgKi8KK3ZvaWQKK2h0bWxOb2RlRHVtcEZpbGUoRklMRSAqb3V0LCB4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGN1cikgeworICAgIGh0bWxOb2RlRHVtcEZpbGVGb3JtYXQob3V0LCBkb2MsIGN1ciwgTlVMTCwgMSk7Cit9CisKKy8qKgorICogaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQ6CisgKiBAY3VyOiAgdGhlIGRvY3VtZW50CisgKiBAbWVtOiAgT1VUOiB0aGUgbWVtb3J5IHBvaW50ZXIKKyAqIEBzaXplOiAgT1VUOiB0aGUgbWVtb3J5IGxlbmd0aAorICogQGZvcm1hdDogIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkCisgKgorICogRHVtcCBhbiBIVE1MIGRvY3VtZW50IGluIG1lbW9yeSBhbmQgcmV0dXJuIHRoZSB4bWxDaGFyICogYW5kIGl0J3Mgc2l6ZS4KKyAqIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkuCisgKi8KK3ZvaWQKK2h0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0KHhtbERvY1B0ciBjdXIsIHhtbENoYXIqKm1lbSwgaW50ICpzaXplLCBpbnQgZm9ybWF0KSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXIgPSBOVUxMOworICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nOworCisgICAgeG1sSW5pdFBhcnNlcigpOworCisgICAgaWYgKChtZW0gPT0gTlVMTCkgfHwgKHNpemUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwkqbWVtID0gTlVMTDsKKwkqc2l6ZSA9IDA7CisJcmV0dXJuOworICAgIH0KKworICAgIGVuY29kaW5nID0gKGNvbnN0IGNoYXIgKikgaHRtbEdldE1ldGFFbmNvZGluZyhjdXIpOworCisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwl4bWxDaGFyRW5jb2RpbmcgZW5jOworCisJZW5jID0geG1sUGFyc2VDaGFyRW5jb2RpbmcoZW5jb2RpbmcpOworCWlmIChlbmMgIT0gY3VyLT5jaGFyc2V0KSB7CisJICAgIGlmIChjdXItPmNoYXJzZXQgIT0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCkgeworCQkvKgorCQkgKiBOb3Qgc3VwcG9ydGVkIHlldAorCQkgKi8KKwkJKm1lbSA9IE5VTEw7CisJCSpzaXplID0gMDsKKwkJcmV0dXJuOworCSAgICB9CisKKwkgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuY29kaW5nKTsKKwkgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkgeworCQkqbWVtID0gTlVMTDsKKwkJKnNpemUgPSAwOworCQlyZXR1cm47CisJICAgIH0KKwl9IGVsc2UgeworCSAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEZhbGxiYWNrIHRvIEhUTUwgb3IgQVNDSUkgd2hlbiB0aGUgZW5jb2RpbmcgaXMgdW5zcGVjaWZpZWQKKyAgICAgKi8KKyAgICBpZiAoaGFuZGxlciA9PSBOVUxMKQorCWhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiSFRNTCIpOworICAgIGlmIChoYW5kbGVyID09IE5VTEwpCisJaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJhc2NpaSIpOworCisgICAgYnVmID0geG1sQWxsb2NPdXRwdXRCdWZmZXJJbnRlcm5hbChoYW5kbGVyKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKwkqbWVtID0gTlVMTDsKKwkqc2l6ZSA9IDA7CisJcmV0dXJuOworICAgIH0KKworCWh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dChidWYsIGN1ciwgTlVMTCwgZm9ybWF0KTsKKworICAgIHhtbE91dHB1dEJ1ZmZlckZsdXNoKGJ1Zik7CisgICAgaWYgKGJ1Zi0+Y29udiAhPSBOVUxMKSB7CisJKnNpemUgPSBidWYtPmNvbnYtPnVzZTsKKwkqbWVtID0geG1sU3RybmR1cChidWYtPmNvbnYtPmNvbnRlbnQsICpzaXplKTsKKyAgICB9IGVsc2UgeworCSpzaXplID0gYnVmLT5idWZmZXItPnVzZTsKKwkqbWVtID0geG1sU3RybmR1cChidWYtPmJ1ZmZlci0+Y29udGVudCwgKnNpemUpOworICAgIH0KKyAgICAodm9pZCl4bWxPdXRwdXRCdWZmZXJDbG9zZShidWYpOworfQorCisvKioKKyAqIGh0bWxEb2NEdW1wTWVtb3J5OgorICogQGN1cjogIHRoZSBkb2N1bWVudAorICogQG1lbTogIE9VVDogdGhlIG1lbW9yeSBwb2ludGVyCisgKiBAc2l6ZTogIE9VVDogdGhlIG1lbW9yeSBsZW5ndGgKKyAqCisgKiBEdW1wIGFuIEhUTUwgZG9jdW1lbnQgaW4gbWVtb3J5IGFuZCByZXR1cm4gdGhlIHhtbENoYXIgKiBhbmQgaXQncyBzaXplLgorICogSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeS4KKyAqLwordm9pZAoraHRtbERvY0R1bXBNZW1vcnkoeG1sRG9jUHRyIGN1ciwgeG1sQ2hhcioqbWVtLCBpbnQgKnNpemUpIHsKKwlodG1sRG9jRHVtcE1lbW9yeUZvcm1hdChjdXIsIG1lbSwgc2l6ZSwgMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAgIAkJRHVtcGluZyBIVE1MIHRyZWUgY29udGVudCB0byBhbiBJL08gb3V0cHV0IGJ1ZmZlcgkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3ZvaWQgeG1sTnNMaXN0RHVtcE91dHB1dCh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLCB4bWxOc1B0ciBjdXIpOworCisvKioKKyAqIGh0bWxEdGREdW1wT3V0cHV0OgorICogQGJ1ZjogIHRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBzdHJpbmcKKyAqIAorICogVE9ETzogY2hlY2sgd2hldGhlciBlbmNvZGluZyBpcyBuZWVkZWQKKyAqCisgKiBEdW1wIHRoZSBIVE1MIGRvY3VtZW50IERURCwgaWYgYW55LgorICovCitzdGF0aWMgdm9pZAoraHRtbER0ZER1bXBPdXRwdXQoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgeG1sRG9jUHRyIGRvYywKKwkgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHhtbER0ZFB0ciBjdXIgPSBkb2MtPmludFN1YnNldDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCWh0bWxTYXZlRXJyKFhNTF9TQVZFX05PX0RPQ1RZUEUsICh4bWxOb2RlUHRyKSBkb2MsIE5VTEwpOworCXJldHVybjsKKyAgICB9CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiPCFET0NUWVBFICIpOworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworICAgIGlmIChjdXItPkV4dGVybmFsSUQgIT0gTlVMTCkgeworCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIiBQVUJMSUMgIik7CisJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLT5idWZmZXIsIGN1ci0+RXh0ZXJuYWxJRCk7CisJaWYgKGN1ci0+U3lzdGVtSUQgIT0gTlVMTCkgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICIgIik7CisJICAgIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1Zi0+YnVmZmVyLCBjdXItPlN5c3RlbUlEKTsKKwl9IAorICAgIH0gIGVsc2UgaWYgKGN1ci0+U3lzdGVtSUQgIT0gTlVMTCkgeworCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIiBTWVNURU0gIik7CisJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLT5idWZmZXIsIGN1ci0+U3lzdGVtSUQpOworICAgIH0KKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI+XG4iKTsKK30KKworLyoqCisgKiBodG1sQXR0ckR1bXBPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBhdHRyaWJ1dGUgcG9pbnRlcgorICogQGVuY29kaW5nOiAgdGhlIGVuY29kaW5nIHN0cmluZworICoKKyAqIER1bXAgYW4gSFRNTCBhdHRyaWJ1dGUKKyAqLworc3RhdGljIHZvaWQKK2h0bWxBdHRyRHVtcE91dHB1dCh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLCB4bWxEb2NQdHIgZG9jLCB4bWxBdHRyUHRyIGN1ciwKKwkgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICB4bWxDaGFyICp2YWx1ZTsKKworICAgIC8qCisgICAgICogVE9ETzogVGhlIGh0bWwgb3V0cHV0IG1ldGhvZCBzaG91bGQgbm90IGVzY2FwZSBhICYgY2hhcmFjdGVyCisgICAgICogICAgICAgb2NjdXJyaW5nIGluIGFuIGF0dHJpYnV0ZSB2YWx1ZSBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorICAgICAqICAgICAgIGEgeyBjaGFyYWN0ZXIgKHNlZSBTZWN0aW9uIEIuNy4xIG9mIHRoZSBIVE1MIDQuMCBSZWNvbW1lbmRhdGlvbikuCisgICAgICovCisKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwlyZXR1cm47CisgICAgfQorICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIiAiKTsKKyAgICBpZiAoKGN1ci0+bnMgIT0gTlVMTCkgJiYgKGN1ci0+bnMtPnByZWZpeCAhPSBOVUxMKSkgeworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5ucy0+cHJlZml4KTsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI6Iik7CisgICAgfQorICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworICAgIGlmICgoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSAmJiAoIWh0bWxJc0Jvb2xlYW5BdHRyKGN1ci0+bmFtZSkpKSB7CisJdmFsdWUgPSB4bWxOb2RlTGlzdEdldFN0cmluZyhkb2MsIGN1ci0+Y2hpbGRyZW4sIDApOworCWlmICh2YWx1ZSkgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI9Iik7CisJICAgIGlmICgoY3VyLT5ucyA9PSBOVUxMKSAmJiAoY3VyLT5wYXJlbnQgIT0gTlVMTCkgJiYKKwkJKGN1ci0+cGFyZW50LT5ucyA9PSBOVUxMKSAmJgorCQkoKCF4bWxTdHJjYXNlY21wKGN1ci0+bmFtZSwgQkFEX0NBU1QgImhyZWYiKSkgfHwKKwkgICAgICAgICAoIXhtbFN0cmNhc2VjbXAoY3VyLT5uYW1lLCBCQURfQ0FTVCAiYWN0aW9uIikpIHx8CisJCSAoIXhtbFN0cmNhc2VjbXAoY3VyLT5uYW1lLCBCQURfQ0FTVCAic3JjIikpIHx8CisJCSAoKCF4bWxTdHJjYXNlY21wKGN1ci0+bmFtZSwgQkFEX0NBU1QgIm5hbWUiKSkgJiYKKwkJICAoIXhtbFN0cmNhc2VjbXAoY3VyLT5wYXJlbnQtPm5hbWUsIEJBRF9DQVNUICJhIikpKSkpIHsKKwkJeG1sQ2hhciAqZXNjYXBlZDsKKwkJeG1sQ2hhciAqdG1wID0gdmFsdWU7CisKKwkJd2hpbGUgKElTX0JMQU5LX0NIKCp0bXApKSB0bXArKzsKKworCQllc2NhcGVkID0geG1sVVJJRXNjYXBlU3RyKHRtcCwgQkFEX0NBU1QiQC86PT87IyUmLCsiKTsKKwkJaWYgKGVzY2FwZWQgIT0gTlVMTCkgeworCQkgICAgeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLT5idWZmZXIsIGVzY2FwZWQpOworCQkgICAgeG1sRnJlZShlc2NhcGVkKTsKKwkJfSBlbHNlIHsKKwkJICAgIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1Zi0+YnVmZmVyLCB2YWx1ZSk7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLT5idWZmZXIsIHZhbHVlKTsKKwkgICAgfQorCSAgICB4bWxGcmVlKHZhbHVlKTsKKwl9IGVsc2UgIHsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiPVwiXCIiKTsKKwl9CisgICAgfQorfQorCisvKioKKyAqIGh0bWxBdHRyTGlzdER1bXBPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBmaXJzdCBhdHRyaWJ1dGUgcG9pbnRlcgorICogQGVuY29kaW5nOiAgdGhlIGVuY29kaW5nIHN0cmluZworICoKKyAqIER1bXAgYSBsaXN0IG9mIEhUTUwgYXR0cmlidXRlcworICovCitzdGF0aWMgdm9pZAoraHRtbEF0dHJMaXN0RHVtcE91dHB1dCh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLCB4bWxEb2NQdHIgZG9jLCB4bWxBdHRyUHRyIGN1ciwgY29uc3QgY2hhciAqZW5jb2RpbmcpIHsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwlyZXR1cm47CisgICAgfQorICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICBodG1sQXR0ckR1bXBPdXRwdXQoYnVmLCBkb2MsIGN1ciwgZW5jb2RpbmcpOworCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9Cit9CisKKworCisvKioKKyAqIGh0bWxOb2RlTGlzdER1bXBPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBmaXJzdCBub2RlCisgKiBAZW5jb2Rpbmc6ICB0aGUgZW5jb2Rpbmcgc3RyaW5nCisgKiBAZm9ybWF0OiAgc2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQKKyAqCisgKiBEdW1wIGFuIEhUTUwgbm9kZSBsaXN0LCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4KKyAqLworc3RhdGljIHZvaWQKK2h0bWxOb2RlTGlzdER1bXBPdXRwdXQoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgeG1sRG9jUHRyIGRvYywKKwkgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGN1ciwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JtYXQpIHsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwlyZXR1cm47CisgICAgfQorICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQoYnVmLCBkb2MsIGN1ciwgZW5jb2RpbmcsIGZvcm1hdCk7CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KK30KKworLyoqCisgKiBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBzdHJpbmcKKyAqIEBmb3JtYXQ6ICBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZAorICoKKyAqIER1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4KKyAqLwordm9pZAoraHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0KHhtbE91dHB1dEJ1ZmZlclB0ciBidWYsIHhtbERvY1B0ciBkb2MsCisJICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGN1ciwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JtYXQpIHsKKyAgICBjb25zdCBodG1sRWxlbURlc2MgKiBpbmZvOworCisgICAgeG1sSW5pdFBhcnNlcigpOworCisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKGJ1ZiA9PSBOVUxMKSkgeworCXJldHVybjsKKyAgICB9CisgICAgLyoKKyAgICAgKiBTcGVjaWFsIGNhc2VzLgorICAgICAqLworICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0RURF9OT0RFKQorCXJldHVybjsKKyAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSB8fAorICAgICAgICAoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSl7CisJaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0KGJ1ZiwgKHhtbERvY1B0cikgY3VyLCBlbmNvZGluZyk7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworICAgICAgICBodG1sQXR0ckR1bXBPdXRwdXQoYnVmLCBkb2MsICh4bWxBdHRyUHRyKSBjdXIsIGVuY29kaW5nKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gSFRNTF9URVhUX05PREUpIHsKKwlpZiAoY3VyLT5jb250ZW50ICE9IE5VTEwpIHsKKwkgICAgaWYgKCgoY3VyLT5uYW1lID09IChjb25zdCB4bWxDaGFyICopeG1sU3RyaW5nVGV4dCkgfHwKKwkJIChjdXItPm5hbWUgIT0gKGNvbnN0IHhtbENoYXIgKil4bWxTdHJpbmdUZXh0Tm9lbmMpKSAmJgorCQkoKGN1ci0+cGFyZW50ID09IE5VTEwpIHx8CisJCSAoKHhtbFN0cmNhc2VjbXAoY3VyLT5wYXJlbnQtPm5hbWUsIEJBRF9DQVNUICJzY3JpcHQiKSkgJiYKKwkJICAoeG1sU3RyY2FzZWNtcChjdXItPnBhcmVudC0+bmFtZSwgQkFEX0NBU1QgInN0eWxlIikpKSkpIHsKKwkJeG1sQ2hhciAqYnVmZmVyOworCisJCWJ1ZmZlciA9IHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KGRvYywgY3VyLT5jb250ZW50KTsKKwkJaWYgKGJ1ZmZlciAhPSBOVUxMKSB7CisJCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopYnVmZmVyKTsKKwkJICAgIHhtbEZyZWUoYnVmZmVyKTsKKwkJfQorCSAgICB9IGVsc2UgeworCQl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5jb250ZW50KTsKKwkgICAgfQorCX0KKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gSFRNTF9DT01NRU5UX05PREUpIHsKKwlpZiAoY3VyLT5jb250ZW50ICE9IE5VTEwpIHsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiPCEtLSIpOworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5jb250ZW50KTsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiLS0+Iik7CisJfQorCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBIVE1MX1BJX05PREUpIHsKKwlpZiAoY3VyLT5uYW1lID09IE5VTEwpCisJICAgIHJldHVybjsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI8PyIpOworCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworCWlmIChjdXItPmNvbnRlbnQgIT0gTlVMTCkgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICIgIik7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPmNvbnRlbnQpOworCX0KKwl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI+Iik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IEhUTUxfRU5USVRZX1JFRl9OT0RFKSB7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIiYiKTsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5uYW1lKTsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiOyIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBIVE1MX1BSRVNFUlZFX05PREUpIHsKKwlpZiAoY3VyLT5jb250ZW50ICE9IE5VTEwpIHsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+Y29udGVudCk7CisJfQorCXJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEdldCBzcGVjaWZpYyBIVE1MIGluZm8gZm9yIHRoYXQgbm9kZS4KKyAgICAgKi8KKyAgICBpZiAoY3VyLT5ucyA9PSBOVUxMKQorCWluZm8gPSBodG1sVGFnTG9va3VwKGN1ci0+bmFtZSk7CisgICAgZWxzZQorCWluZm8gPSBOVUxMOworCisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiPCIpOworICAgIGlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJiAoY3VyLT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5zLT5wcmVmaXgpOworCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIjoiKTsKKyAgICB9CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+bmFtZSk7CisgICAgaWYgKGN1ci0+bnNEZWYpCisJeG1sTnNMaXN0RHVtcE91dHB1dChidWYsIGN1ci0+bnNEZWYpOworICAgIGlmIChjdXItPnByb3BlcnRpZXMgIT0gTlVMTCkKKyAgICAgICAgaHRtbEF0dHJMaXN0RHVtcE91dHB1dChidWYsIGRvYywgY3VyLT5wcm9wZXJ0aWVzLCBlbmNvZGluZyk7CisKKyAgICBpZiAoKGluZm8gIT0gTlVMTCkgJiYgKGluZm8tPmVtcHR5KSkgeworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI+Iik7CisJaWYgKChmb3JtYXQpICYmICghaW5mby0+aXNpbmxpbmUpICYmIChjdXItPm5leHQgIT0gTlVMTCkpIHsKKwkgICAgaWYgKChjdXItPm5leHQtPnR5cGUgIT0gSFRNTF9URVhUX05PREUpICYmCisJCShjdXItPm5leHQtPnR5cGUgIT0gSFRNTF9FTlRJVFlfUkVGX05PREUpICYmCisJCShjdXItPnBhcmVudCAhPSBOVUxMKSAmJgorCQkoY3VyLT5wYXJlbnQtPm5hbWUgIT0gTlVMTCkgJiYKKwkJKGN1ci0+cGFyZW50LT5uYW1lWzBdICE9ICdwJykpIC8qIHAsIHByZSwgcGFyYW0gKi8KKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiXG4iKTsKKwl9CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwgKGN1ci0+Y29udGVudCA9PSBOVUxMKSkgJiYKKwkoY3VyLT5jaGlsZHJlbiA9PSBOVUxMKSkgeworICAgICAgICBpZiAoKGluZm8gIT0gTlVMTCkgJiYgKGluZm8tPnNhdmVFbmRUYWcgIT0gMCkgJiYKKwkgICAgKHhtbFN0cmNtcChCQURfQ0FTVCBpbmZvLT5uYW1lLCBCQURfQ0FTVCAiaHRtbCIpKSAmJgorCSAgICAoeG1sU3RyY21wKEJBRF9DQVNUIGluZm8tPm5hbWUsIEJBRF9DQVNUICJib2R5IikpKSB7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIj4iKTsKKwl9IGVsc2UgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI+PC8iKTsKKyAgICAgICAgICAgIGlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJiAoY3VyLT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+bnMtPnByZWZpeCk7CisgICAgICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiOiIpOworICAgICAgICAgICAgfQorCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5uYW1lKTsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiPiIpOworCX0KKwlpZiAoKGZvcm1hdCkgJiYgKGN1ci0+bmV4dCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKGluZm8gIT0gTlVMTCkgJiYgKCFpbmZvLT5pc2lubGluZSkpIHsKKwkgICAgaWYgKChjdXItPm5leHQtPnR5cGUgIT0gSFRNTF9URVhUX05PREUpICYmCisJCShjdXItPm5leHQtPnR5cGUgIT0gSFRNTF9FTlRJVFlfUkVGX05PREUpICYmCisJCShjdXItPnBhcmVudCAhPSBOVUxMKSAmJgorCQkoY3VyLT5wYXJlbnQtPm5hbWUgIT0gTlVMTCkgJiYKKwkJKGN1ci0+cGFyZW50LT5uYW1lWzBdICE9ICdwJykpIC8qIHAsIHByZSwgcGFyYW0gKi8KKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiXG4iKTsKKwl9CisJcmV0dXJuOworICAgIH0KKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI+Iik7CisgICAgaWYgKChjdXItPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkoY3VyLT5jb250ZW50ICE9IE5VTEwpKSB7CisJICAgIC8qCisJICAgICAqIFVzZXMgdGhlIE91dHB1dEJ1ZmZlciBwcm9wZXJ0eSB0byBhdXRvbWF0aWNhbGx5IGNvbnZlcnQKKwkgICAgICogaW52YWxpZHMgdG8gY2hhcnJlZnMKKwkgICAgICovCisKKyAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKikgY3VyLT5jb250ZW50KTsKKyAgICB9CisgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICBpZiAoKGZvcm1hdCkgJiYgKGluZm8gIT0gTlVMTCkgJiYgKCFpbmZvLT5pc2lubGluZSkgJiYKKwkgICAgKGN1ci0+Y2hpbGRyZW4tPnR5cGUgIT0gSFRNTF9URVhUX05PREUpICYmCisJICAgIChjdXItPmNoaWxkcmVuLT50eXBlICE9IEhUTUxfRU5USVRZX1JFRl9OT0RFKSAmJgorCSAgICAoY3VyLT5jaGlsZHJlbiAhPSBjdXItPmxhc3QpICYmCisJICAgIChjdXItPm5hbWUgIT0gTlVMTCkgJiYKKwkgICAgKGN1ci0+bmFtZVswXSAhPSAncCcpKSAvKiBwLCBwcmUsIHBhcmFtICovCisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIlxuIik7CisJaHRtbE5vZGVMaXN0RHVtcE91dHB1dChidWYsIGRvYywgY3VyLT5jaGlsZHJlbiwgZW5jb2RpbmcsIGZvcm1hdCk7CisgICAgICAgIGlmICgoZm9ybWF0KSAmJiAoaW5mbyAhPSBOVUxMKSAmJiAoIWluZm8tPmlzaW5saW5lKSAmJgorCSAgICAoY3VyLT5sYXN0LT50eXBlICE9IEhUTUxfVEVYVF9OT0RFKSAmJgorCSAgICAoY3VyLT5sYXN0LT50eXBlICE9IEhUTUxfRU5USVRZX1JFRl9OT0RFKSAmJgorCSAgICAoY3VyLT5jaGlsZHJlbiAhPSBjdXItPmxhc3QpICYmCisJICAgIChjdXItPm5hbWUgIT0gTlVMTCkgJiYKKwkgICAgKGN1ci0+bmFtZVswXSAhPSAncCcpKSAvKiBwLCBwcmUsIHBhcmFtICovCisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIlxuIik7CisgICAgfQorICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgIjwvIik7CisgICAgaWYgKChjdXItPm5zICE9IE5VTEwpICYmIChjdXItPm5zLT5wcmVmaXggIT0gTlVMTCkpIHsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+bnMtPnByZWZpeCk7CisJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAiOiIpOworICAgIH0KKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5uYW1lKTsKKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICI+Iik7CisgICAgaWYgKChmb3JtYXQpICYmIChpbmZvICE9IE5VTEwpICYmICghaW5mby0+aXNpbmxpbmUpICYmCisJKGN1ci0+bmV4dCAhPSBOVUxMKSkgeworICAgICAgICBpZiAoKGN1ci0+bmV4dC0+dHlwZSAhPSBIVE1MX1RFWFRfTk9ERSkgJiYKKwkgICAgKGN1ci0+bmV4dC0+dHlwZSAhPSBIVE1MX0VOVElUWV9SRUZfTk9ERSkgJiYKKwkgICAgKGN1ci0+cGFyZW50ICE9IE5VTEwpICYmCisJICAgIChjdXItPnBhcmVudC0+bmFtZSAhPSBOVUxMKSAmJgorCSAgICAoY3VyLT5wYXJlbnQtPm5hbWVbMF0gIT0gJ3AnKSkgLyogcCwgcHJlLCBwYXJhbSAqLworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICJcbiIpOworICAgIH0KK30KKworLyoqCisgKiBodG1sTm9kZUR1bXBPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBzdHJpbmcKKyAqCisgKiBEdW1wIGFuIEhUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91cixjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28sCisgKiBhbmQgZm9ybWF0dGluZyByZXR1cm5zL3NwYWNlcyBhcmUgYWRkZWQuCisgKi8KK3ZvaWQKK2h0bWxOb2RlRHVtcE91dHB1dCh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLCB4bWxEb2NQdHIgZG9jLAorCSAgICAgICAgICAgeG1sTm9kZVB0ciBjdXIsIGNvbnN0IGNoYXIgKmVuY29kaW5nKSB7CisgICAgaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0KGJ1ZiwgZG9jLCBjdXIsIGVuY29kaW5nLCAxKTsKK30KKworLyoqCisgKiBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGN1cjogIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGVuY29kaW5nIHN0cmluZworICogQGZvcm1hdDogIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkCisgKgorICogRHVtcCBhbiBIVE1MIGRvY3VtZW50LgorICovCit2b2lkCitodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgeG1sRG9jUHRyIGN1ciwKKwkgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9ybWF0KSB7CisgICAgaW50IHR5cGU7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBpZiAoKGJ1ZiA9PSBOVUxMKSB8fCAoY3VyID09IE5VTEwpKQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAgICAqIGZvcmNlIHRvIG91dHB1dCB0aGUgc3R1ZmYgYXMgSFRNTCwgZXNwZWNpYWxseSBmb3IgZW50aXRpZXMKKyAgICAgKi8KKyAgICB0eXBlID0gY3VyLT50eXBlOworICAgIGN1ci0+dHlwZSA9IFhNTF9IVE1MX0RPQ1VNRU5UX05PREU7CisgICAgaWYgKGN1ci0+aW50U3Vic2V0ICE9IE5VTEwpIHsKKyAgICAgICAgaHRtbER0ZER1bXBPdXRwdXQoYnVmLCBjdXIsIE5VTEwpOworICAgIH0KKyAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisgICAgICAgIGh0bWxOb2RlTGlzdER1bXBPdXRwdXQoYnVmLCBjdXIsIGN1ci0+Y2hpbGRyZW4sIGVuY29kaW5nLCBmb3JtYXQpOworICAgIH0KKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsICJcbiIpOworICAgIGN1ci0+dHlwZSA9ICh4bWxFbGVtZW50VHlwZSkgdHlwZTsKK30KKworLyoqCisgKiBodG1sRG9jQ29udGVudER1bXBPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIEhUTUwgYnVmZmVyIG91dHB1dAorICogQGN1cjogIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGVuY29kaW5nIHN0cmluZworICoKKyAqIER1bXAgYW4gSFRNTCBkb2N1bWVudC4gRm9ybWF0aW5nIHJldHVybi9zcGFjZXMgYXJlIGFkZGVkLgorICovCit2b2lkCitodG1sRG9jQ29udGVudER1bXBPdXRwdXQoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgeG1sRG9jUHRyIGN1ciwKKwkgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nKSB7CisgICAgaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0KGJ1ZiwgY3VyLCBlbmNvZGluZywgMSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVNhdmluZyBmdW5jdGlvbnMgZnJvbnQtZW5kcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogaHRtbERvY0R1bXA6CisgKiBAZjogIHRoZSBGSUxFKgorICogQGN1cjogIHRoZSBkb2N1bWVudAorICoKKyAqIER1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhbiBvcGVuIEZJTEUuCisgKgorICogcmV0dXJuczogdGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLgorICovCitpbnQKK2h0bWxEb2NEdW1wKEZJTEUgKmYsIHhtbERvY1B0ciBjdXIpIHsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqZW5jb2Rpbmc7CisgICAgaW50IHJldDsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGlmICgoY3VyID09IE5VTEwpIHx8IChmID09IE5VTEwpKSB7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBlbmNvZGluZyA9IChjb25zdCBjaGFyICopIGh0bWxHZXRNZXRhRW5jb2RpbmcoY3VyKTsKKworICAgIGlmIChlbmNvZGluZyAhPSBOVUxMKSB7CisJeG1sQ2hhckVuY29kaW5nIGVuYzsKKworCWVuYyA9IHhtbFBhcnNlQ2hhckVuY29kaW5nKGVuY29kaW5nKTsKKwlpZiAoZW5jICE9IGN1ci0+Y2hhcnNldCkgeworCSAgICBpZiAoY3VyLT5jaGFyc2V0ICE9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpIHsKKwkJLyoKKwkJICogTm90IHN1cHBvcnRlZCB5ZXQKKwkJICovCisJCXJldHVybigtMSk7CisJICAgIH0KKworCSAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworCSAgICBpZiAoaGFuZGxlciA9PSBOVUxMKQorCQlyZXR1cm4oLTEpOworCX0gZWxzZSB7CisJICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcihlbmNvZGluZyk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogRmFsbGJhY2sgdG8gSFRNTCBvciBBU0NJSSB3aGVuIHRoZSBlbmNvZGluZyBpcyB1bnNwZWNpZmllZAorICAgICAqLworICAgIGlmIChoYW5kbGVyID09IE5VTEwpCisJaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJIVE1MIik7CisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKwloYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoImFzY2lpIik7CisKKyAgICBidWYgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlKGYsIGhhbmRsZXIpOworICAgIGlmIChidWYgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBodG1sRG9jQ29udGVudER1bXBPdXRwdXQoYnVmLCBjdXIsIE5VTEwpOworCisgICAgcmV0ID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiBodG1sU2F2ZUZpbGU6CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUgKG9yIFVSTCkKKyAqIEBjdXI6ICB0aGUgZG9jdW1lbnQKKyAqCisgKiBEdW1wIGFuIEhUTUwgZG9jdW1lbnQgdG8gYSBmaWxlLiBJZiBAZmlsZW5hbWUgaXMgIi0iIHRoZSBzdGRvdXQgZmlsZSBpcworICogdXNlZC4KKyAqIHJldHVybnM6IHRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50CitodG1sU2F2ZUZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIHhtbERvY1B0ciBjdXIpIHsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqZW5jb2Rpbmc7CisgICAgaW50IHJldDsKKworICAgIGlmICgoY3VyID09IE5VTEwpIHx8IChmaWxlbmFtZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICAgICAKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBlbmNvZGluZyA9IChjb25zdCBjaGFyICopIGh0bWxHZXRNZXRhRW5jb2RpbmcoY3VyKTsKKworICAgIGlmIChlbmNvZGluZyAhPSBOVUxMKSB7CisJeG1sQ2hhckVuY29kaW5nIGVuYzsKKworCWVuYyA9IHhtbFBhcnNlQ2hhckVuY29kaW5nKGVuY29kaW5nKTsKKwlpZiAoZW5jICE9IGN1ci0+Y2hhcnNldCkgeworCSAgICBpZiAoY3VyLT5jaGFyc2V0ICE9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpIHsKKwkJLyoKKwkJICogTm90IHN1cHBvcnRlZCB5ZXQKKwkJICovCisJCXJldHVybigtMSk7CisJICAgIH0KKworCSAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworCSAgICBpZiAoaGFuZGxlciA9PSBOVUxMKQorCQlyZXR1cm4oLTEpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEZhbGxiYWNrIHRvIEhUTUwgb3IgQVNDSUkgd2hlbiB0aGUgZW5jb2RpbmcgaXMgdW5zcGVjaWZpZWQKKyAgICAgKi8KKyAgICBpZiAoaGFuZGxlciA9PSBOVUxMKQorCWhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiSFRNTCIpOworICAgIGlmIChoYW5kbGVyID09IE5VTEwpCisJaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJhc2NpaSIpOworCisgICAgLyogCisgICAgICogc2F2ZSB0aGUgY29udGVudCB0byBhIHRlbXAgYnVmZmVyLgorICAgICAqLworICAgIGJ1ZiA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKGZpbGVuYW1lLCBoYW5kbGVyLCBjdXItPmNvbXByZXNzaW9uKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHJldHVybigwKTsKKworICAgIGh0bWxEb2NDb250ZW50RHVtcE91dHB1dChidWYsIGN1ciwgTlVMTCk7CisKKyAgICByZXQgPSB4bWxPdXRwdXRCdWZmZXJDbG9zZShidWYpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIGh0bWxTYXZlRmlsZUZvcm1hdDoKKyAqIEBmaWxlbmFtZTogIHRoZSBmaWxlbmFtZQorICogQGN1cjogIHRoZSBkb2N1bWVudAorICogQGZvcm1hdDogIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkCisgKiBAZW5jb2Rpbmc6IHRoZSBkb2N1bWVudCBlbmNvZGluZworICoKKyAqIER1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhIGZpbGUgdXNpbmcgYSBnaXZlbiBlbmNvZGluZy4KKyAqIAorICogcmV0dXJuczogdGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLgorICovCitpbnQKK2h0bWxTYXZlRmlsZUZvcm1hdChjb25zdCBjaGFyICpmaWxlbmFtZSwgeG1sRG9jUHRyIGN1ciwKKwkgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9ybWF0KSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXIgPSBOVUxMOworICAgIGludCByZXQ7CisKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoZmlsZW5hbWUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworCXhtbENoYXJFbmNvZGluZyBlbmM7CisKKwllbmMgPSB4bWxQYXJzZUNoYXJFbmNvZGluZyhlbmNvZGluZyk7CisJaWYgKGVuYyAhPSBjdXItPmNoYXJzZXQpIHsKKwkgICAgaWYgKGN1ci0+Y2hhcnNldCAhPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4KSB7CisJCS8qCisJCSAqIE5vdCBzdXBwb3J0ZWQgeWV0CisJCSAqLworCQlyZXR1cm4oLTEpOworCSAgICB9CisKKwkgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuY29kaW5nKTsKKwkgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKwkJcmV0dXJuKC0xKTsKKwl9CisgICAgICAgIGh0bWxTZXRNZXRhRW5jb2RpbmcoY3VyLCAoY29uc3QgeG1sQ2hhciAqKSBlbmNvZGluZyk7CisgICAgfSBlbHNlIHsKKwlodG1sU2V0TWV0YUVuY29kaW5nKGN1ciwgKGNvbnN0IHhtbENoYXIgKikgIlVURi04Iik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGYWxsYmFjayB0byBIVE1MIG9yIEFTQ0lJIHdoZW4gdGhlIGVuY29kaW5nIGlzIHVuc3BlY2lmaWVkCisgICAgICovCisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKwloYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIkhUTUwiKTsKKyAgICBpZiAoaGFuZGxlciA9PSBOVUxMKQorCWhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiYXNjaWkiKTsKKworICAgIC8qIAorICAgICAqIHNhdmUgdGhlIGNvbnRlbnQgdG8gYSB0ZW1wIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBidWYgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZShmaWxlbmFtZSwgaGFuZGxlciwgMCk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSByZXR1cm4oMCk7CisKKyAgICBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQoYnVmLCBjdXIsIGVuY29kaW5nLCBmb3JtYXQpOworCisgICAgcmV0ID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiBodG1sU2F2ZUZpbGVFbmM6CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUKKyAqIEBjdXI6ICB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogdGhlIGRvY3VtZW50IGVuY29kaW5nCisgKgorICogRHVtcCBhbiBIVE1MIGRvY3VtZW50IHRvIGEgZmlsZSB1c2luZyBhIGdpdmVuIGVuY29kaW5nCisgKiBhbmQgZm9ybWF0dGluZyByZXR1cm5zL3NwYWNlcyBhcmUgYWRkZWQuCisgKiAKKyAqIHJldHVybnM6IHRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50CitodG1sU2F2ZUZpbGVFbmMoY29uc3QgY2hhciAqZmlsZW5hbWUsIHhtbERvY1B0ciBjdXIsIGNvbnN0IGNoYXIgKmVuY29kaW5nKSB7CisgICAgcmV0dXJuKGh0bWxTYXZlRmlsZUZvcm1hdChmaWxlbmFtZSwgY3VyLCBlbmNvZGluZywgMSkpOworfQorCisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKyNkZWZpbmUgYm90dG9tX0hUTUx0cmVlCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgorI2VuZGlmIC8qIExJQlhNTF9IVE1MX0VOQUJMRUQgKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvSU5TVEFMTCBiL2xpYnhtbDItMi43LjcvSU5TVEFMTApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDFjMzIzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9JTlNUQUxMCkBAIC0wLDAgKzEsMzY1IEBACitJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioqKioqCisKK0NvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNCwgMjAwNSwKKzIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCithcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKK25vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBvZmZlcmVkIGFzLWlzLAord2l0aG91dCB3YXJyYW50eSBvZiBhbnkga2luZC4KKworQmFzaWMgSW5zdGFsbGF0aW9uCis9PT09PT09PT09PT09PT09PT0KKworICAgQnJpZWZseSwgdGhlIHNoZWxsIGNvbW1hbmRzIGAuL2NvbmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJyBzaG91bGQKK2NvbmZpZ3VyZSwgYnVpbGQsIGFuZCBpbnN0YWxsIHRoaXMgcGFja2FnZS4gIFRoZSBmb2xsb3dpbmcKK21vcmUtZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIGFyZSBnZW5lcmljOyBzZWUgdGhlIGBSRUFETUUnIGZpbGUgZm9yCitpbnN0cnVjdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlLiAgU29tZSBwYWNrYWdlcyBwcm92aWRlIHRoaXMKK2BJTlNUQUxMJyBmaWxlIGJ1dCBkbyBub3QgaW1wbGVtZW50IGFsbCBvZiB0aGUgZmVhdHVyZXMgZG9jdW1lbnRlZAorYmVsb3cuICBUaGUgbGFjayBvZiBhbiBvcHRpb25hbCBmZWF0dXJlIGluIGEgZ2l2ZW4gcGFja2FnZSBpcyBub3QKK25lY2Vzc2FyaWx5IGEgYnVnLiAgTW9yZSByZWNvbW1lbmRhdGlvbnMgZm9yIEdOVSBwYWNrYWdlcyBjYW4gYmUgZm91bmQKK2luICpub3RlIE1ha2VmaWxlIENvbnZlbnRpb25zOiAoc3RhbmRhcmRzKU1ha2VmaWxlIENvbnZlbnRpb25zLgorCisgICBUaGUgYGNvbmZpZ3VyZScgc2hlbGwgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGNvcnJlY3QgdmFsdWVzIGZvcgordmFyaW91cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyB1c2VkIGR1cmluZyBjb21waWxhdGlvbi4gIEl0IHVzZXMKK3Rob3NlIHZhbHVlcyB0byBjcmVhdGUgYSBgTWFrZWZpbGUnIGluIGVhY2ggZGlyZWN0b3J5IG9mIHRoZSBwYWNrYWdlLgorSXQgbWF5IGFsc28gY3JlYXRlIG9uZSBvciBtb3JlIGAuaCcgZmlsZXMgY29udGFpbmluZyBzeXN0ZW0tZGVwZW5kZW50CitkZWZpbml0aW9ucy4gIEZpbmFsbHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBzY3JpcHQgYGNvbmZpZy5zdGF0dXMnIHRoYXQKK3lvdSBjYW4gcnVuIGluIHRoZSBmdXR1cmUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiwgYW5kIGEKK2ZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcgY29tcGlsZXIgb3V0cHV0ICh1c2VmdWwgbWFpbmx5IGZvcgorZGVidWdnaW5nIGBjb25maWd1cmUnKS4KKworICAgSXQgY2FuIGFsc28gdXNlIGFuIG9wdGlvbmFsIGZpbGUgKHR5cGljYWxseSBjYWxsZWQgYGNvbmZpZy5jYWNoZScKK2FuZCBlbmFibGVkIHdpdGggYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnIG9yIHNpbXBseSBgLUMnKSB0aGF0IHNhdmVzCit0aGUgcmVzdWx0cyBvZiBpdHMgdGVzdHMgdG8gc3BlZWQgdXAgcmVjb25maWd1cmluZy4gIENhY2hpbmcgaXMKK2Rpc2FibGVkIGJ5IGRlZmF1bHQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNlIG9mIHN0YWxlCitjYWNoZSBmaWxlcy4KKworICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGluZ3MgdG8gY29tcGlsZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQordG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAorZGlmZnMgb3IgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBhZGRyZXNzIGdpdmVuIGluIHRoZSBgUkVBRE1FJyBzbyB0aGV5IGNhbgorYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIHlvdSBhcmUgdXNpbmcgdGhlIGNhY2hlLCBhbmQgYXQKK3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UKK21heSByZW1vdmUgb3IgZWRpdCBpdC4KKworICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5hYycgKG9yIGBjb25maWd1cmUuaW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQorYGNvbmZpZ3VyZScgYnkgYSBwcm9ncmFtIGNhbGxlZCBgYXV0b2NvbmYnLiAgWW91IG5lZWQgYGNvbmZpZ3VyZS5hYycgaWYKK3lvdSB3YW50IHRvIGNoYW5nZSBpdCBvciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lvbgorb2YgYGF1dG9jb25mJy4KKworICAgVGhlIHNpbXBsZXN0IHdheSB0byBjb21waWxlIHRoaXMgcGFja2FnZSBpczoKKworICAxLiBgY2QnIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcGFja2FnZSdzIHNvdXJjZSBjb2RlIGFuZCB0eXBlCisgICAgIGAuL2NvbmZpZ3VyZScgdG8gY29uZmlndXJlIHRoZSBwYWNrYWdlIGZvciB5b3VyIHN5c3RlbS4KKworICAgICBSdW5uaW5nIGBjb25maWd1cmUnIG1pZ2h0IHRha2UgYSB3aGlsZS4gIFdoaWxlIHJ1bm5pbmcsIGl0IHByaW50cworICAgICBzb21lIG1lc3NhZ2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQgaXMgY2hlY2tpbmcgZm9yLgorCisgIDIuIFR5cGUgYG1ha2UnIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UuCisKKyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8gcnVuIGFueSBzZWxmLXRlc3RzIHRoYXQgY29tZSB3aXRoCisgICAgIHRoZSBwYWNrYWdlLCBnZW5lcmFsbHkgdXNpbmcgdGhlIGp1c3QtYnVpbHQgdW5pbnN0YWxsZWQgYmluYXJpZXMuCisKKyAgNC4gVHlwZSBgbWFrZSBpbnN0YWxsJyB0byBpbnN0YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRhdGEgZmlsZXMgYW5kCisgICAgIGRvY3VtZW50YXRpb24uICBXaGVuIGluc3RhbGxpbmcgaW50byBhIHByZWZpeCBvd25lZCBieSByb290LCBpdCBpcworICAgICByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYWNrYWdlIGJlIGNvbmZpZ3VyZWQgYW5kIGJ1aWx0IGFzIGEgcmVndWxhcgorICAgICB1c2VyLCBhbmQgb25seSB0aGUgYG1ha2UgaW5zdGFsbCcgcGhhc2UgZXhlY3V0ZWQgd2l0aCByb290CisgICAgIHByaXZpbGVnZXMuCisKKyAgNS4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBpbnN0YWxsY2hlY2snIHRvIHJlcGVhdCBhbnkgc2VsZi10ZXN0cywgYnV0CisgICAgIHRoaXMgdGltZSB1c2luZyB0aGUgYmluYXJpZXMgaW4gdGhlaXIgZmluYWwgaW5zdGFsbGVkIGxvY2F0aW9uLgorICAgICBUaGlzIHRhcmdldCBkb2VzIG5vdCBpbnN0YWxsIGFueXRoaW5nLiAgUnVubmluZyB0aGlzIHRhcmdldCBhcyBhCisgICAgIHJlZ3VsYXIgdXNlciwgcGFydGljdWxhcmx5IGlmIHRoZSBwcmlvciBgbWFrZSBpbnN0YWxsJyByZXF1aXJlZAorICAgICByb290IHByaXZpbGVnZXMsIHZlcmlmaWVzIHRoYXQgdGhlIGluc3RhbGxhdGlvbiBjb21wbGV0ZWQKKyAgICAgY29ycmVjdGx5LgorCisgIDYuIFlvdSBjYW4gcmVtb3ZlIHRoZSBwcm9ncmFtIGJpbmFyaWVzIGFuZCBvYmplY3QgZmlsZXMgZnJvbSB0aGUKKyAgICAgc291cmNlIGNvZGUgZGlyZWN0b3J5IGJ5IHR5cGluZyBgbWFrZSBjbGVhbicuICBUbyBhbHNvIHJlbW92ZSB0aGUKKyAgICAgZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yCisgICAgIGEgZGlmZmVyZW50IGtpbmQgb2YgY29tcHV0ZXIpLCB0eXBlIGBtYWtlIGRpc3RjbGVhbicuICBUaGVyZSBpcworICAgICBhbHNvIGEgYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgdGFyZ2V0LCBidXQgdGhhdCBpcyBpbnRlbmRlZCBtYWlubHkKKyAgICAgZm9yIHRoZSBwYWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBnZXQKKyAgICAgYWxsIHNvcnRzIG9mIG90aGVyIHByb2dyYW1zIGluIG9yZGVyIHRvIHJlZ2VuZXJhdGUgZmlsZXMgdGhhdCBjYW1lCisgICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworICA3LiBPZnRlbiwgeW91IGNhbiBhbHNvIHR5cGUgYG1ha2UgdW5pbnN0YWxsJyB0byByZW1vdmUgdGhlIGluc3RhbGxlZAorICAgICBmaWxlcyBhZ2Fpbi4gIEluIHByYWN0aWNlLCBub3QgYWxsIHBhY2thZ2VzIGhhdmUgdGVzdGVkIHRoYXQKKyAgICAgdW5pbnN0YWxsYXRpb24gd29ya3MgY29ycmVjdGx5LCBldmVuIHRob3VnaCBpdCBpcyByZXF1aXJlZCBieSB0aGUKKyAgICAgR05VIENvZGluZyBTdGFuZGFyZHMuCisKKyAgOC4gU29tZSBwYWNrYWdlcywgcGFydGljdWxhcmx5IHRob3NlIHRoYXQgdXNlIEF1dG9tYWtlLCBwcm92aWRlIGBtYWtlCisgICAgIGRpc3RjaGVjaycsIHdoaWNoIGNhbiBieSB1c2VkIGJ5IGRldmVsb3BlcnMgdG8gdGVzdCB0aGF0IGFsbCBvdGhlcgorICAgICB0YXJnZXRzIGxpa2UgYG1ha2UgaW5zdGFsbCcgYW5kIGBtYWtlIHVuaW5zdGFsbCcgd29yayBjb3JyZWN0bHkuCisgICAgIFRoaXMgdGFyZ2V0IGlzIGdlbmVyYWxseSBub3QgcnVuIGJ5IGVuZCB1c2Vycy4KKworQ29tcGlsZXJzIGFuZCBPcHRpb25zCis9PT09PT09PT09PT09PT09PT09PT0KKworICAgU29tZSBzeXN0ZW1zIHJlcXVpcmUgdW51c3VhbCBvcHRpb25zIGZvciBjb21waWxhdGlvbiBvciBsaW5raW5nIHRoYXQKK3RoZSBgY29uZmlndXJlJyBzY3JpcHQgZG9lcyBub3Qga25vdyBhYm91dC4gIFJ1biBgLi9jb25maWd1cmUgLS1oZWxwJworZm9yIGRldGFpbHMgb24gc29tZSBvZiB0aGUgcGVydGluZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4KKworICAgWW91IGNhbiBnaXZlIGBjb25maWd1cmUnIGluaXRpYWwgdmFsdWVzIGZvciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMKK2J5IHNldHRpbmcgdmFyaWFibGVzIGluIHRoZSBjb21tYW5kIGxpbmUgb3IgaW4gdGhlIGVudmlyb25tZW50LiAgSGVyZQoraXMgYW4gZXhhbXBsZToKKworICAgICAuL2NvbmZpZ3VyZSBDQz1jOTkgQ0ZMQUdTPS1nIExJQlM9LWxwb3NpeAorCisgICAqTm90ZSBEZWZpbmluZyBWYXJpYWJsZXM6OiwgZm9yIG1vcmUgZGV0YWlscy4KKworQ29tcGlsaW5nIEZvciBNdWx0aXBsZSBBcmNoaXRlY3R1cmVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgWW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRoYW4gb25lIGtpbmQgb2YgY29tcHV0ZXIgYXQgdGhlCitzYW1lIHRpbWUsIGJ5IHBsYWNpbmcgdGhlIG9iamVjdCBmaWxlcyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUgaW4gdGhlaXIKK293biBkaXJlY3RvcnkuICBUbyBkbyB0aGlzLCB5b3UgY2FuIHVzZSBHTlUgYG1ha2UnLiAgYGNkJyB0byB0aGUKK2RpcmVjdG9yeSB3aGVyZSB5b3Ugd2FudCB0aGUgb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcyB0byBnbyBhbmQgcnVuCit0aGUgYGNvbmZpZ3VyZScgc2NyaXB0LiAgYGNvbmZpZ3VyZScgYXV0b21hdGljYWxseSBjaGVja3MgZm9yIHRoZQorc291cmNlIGNvZGUgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IGBjb25maWd1cmUnIGlzIGluIGFuZCBpbiBgLi4nLiAgVGhpcworaXMga25vd24gYXMgYSAiVlBBVEgiIGJ1aWxkLgorCisgICBXaXRoIGEgbm9uLUdOVSBgbWFrZScsIGl0IGlzIHNhZmVyIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG9uZQorYXJjaGl0ZWN0dXJlIGF0IGEgdGltZSBpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUKK2luc3RhbGxlZCB0aGUgcGFja2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlCityZWNvbmZpZ3VyaW5nIGZvciBhbm90aGVyIGFyY2hpdGVjdHVyZS4KKworICAgT24gTWFjT1MgWCAxMC41IGFuZCBsYXRlciBzeXN0ZW1zLCB5b3UgY2FuIGNyZWF0ZSBsaWJyYXJpZXMgYW5kCitleGVjdXRhYmxlcyB0aGF0IHdvcmsgb24gbXVsdGlwbGUgc3lzdGVtIHR5cGVzLS1rbm93biBhcyAiZmF0IiBvcgorInVuaXZlcnNhbCIgYmluYXJpZXMtLWJ5IHNwZWNpZnlpbmcgbXVsdGlwbGUgYC1hcmNoJyBvcHRpb25zIHRvIHRoZQorY29tcGlsZXIgYnV0IG9ubHkgYSBzaW5nbGUgYC1hcmNoJyBvcHRpb24gdG8gdGhlIHByZXByb2Nlc3Nvci4gIExpa2UKK3RoaXM6CisKKyAgICAgLi9jb25maWd1cmUgQ0M9ImdjYyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFyY2ggcHBjNjQiIFwKKyAgICAgICAgICAgICAgICAgQ1hYPSJnKysgLWFyY2ggaTM4NiAtYXJjaCB4ODZfNjQgLWFyY2ggcHBjIC1hcmNoIHBwYzY0IiBcCisgICAgICAgICAgICAgICAgIENQUD0iZ2NjIC1FIiBDWFhDUFA9ImcrKyAtRSIKKworICAgVGhpcyBpcyBub3QgZ3VhcmFudGVlZCB0byBwcm9kdWNlIHdvcmtpbmcgb3V0cHV0IGluIGFsbCBjYXNlcywgeW91CittYXkgaGF2ZSB0byBidWlsZCBvbmUgYXJjaGl0ZWN0dXJlIGF0IGEgdGltZSBhbmQgY29tYmluZSB0aGUgcmVzdWx0cwordXNpbmcgdGhlIGBsaXBvJyB0b29sIGlmIHlvdSBoYXZlIHByb2JsZW1zLgorCitJbnN0YWxsYXRpb24gTmFtZXMKKz09PT09PT09PT09PT09PT09PQorCisgICBCeSBkZWZhdWx0LCBgbWFrZSBpbnN0YWxsJyBpbnN0YWxscyB0aGUgcGFja2FnZSdzIGNvbW1hbmRzIHVuZGVyCitgL3Vzci9sb2NhbC9iaW4nLCBpbmNsdWRlIGZpbGVzIHVuZGVyIGAvdXNyL2xvY2FsL2luY2x1ZGUnLCBldGMuICBZb3UKK2NhbiBzcGVjaWZ5IGFuIGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBgL3Vzci9sb2NhbCcgYnkgZ2l2aW5nCitgY29uZmlndXJlJyB0aGUgb3B0aW9uIGAtLXByZWZpeD1QUkVGSVgnLCB3aGVyZSBQUkVGSVggbXVzdCBiZSBhbgorYWJzb2x1dGUgZmlsZSBuYW1lLgorCisgICBZb3UgY2FuIHNwZWNpZnkgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHByZWZpeGVzIGZvcgorYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJZiB5b3UKK3Bhc3MgdGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1QUkVGSVgnIHRvIGBjb25maWd1cmUnLCB0aGUgcGFja2FnZSB1c2VzCitQUkVGSVggYXMgdGhlIHByZWZpeCBmb3IgaW5zdGFsbGluZyBwcm9ncmFtcyBhbmQgbGlicmFyaWVzLgorRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0YSBmaWxlcyBzdGlsbCB1c2UgdGhlIHJlZ3VsYXIgcHJlZml4LgorCisgICBJbiBhZGRpdGlvbiwgaWYgeW91IHVzZSBhbiB1bnVzdWFsIGRpcmVjdG9yeSBsYXlvdXQgeW91IGNhbiBnaXZlCitvcHRpb25zIGxpa2UgYC0tYmluZGlyPURJUicgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZvciBwYXJ0aWN1bGFyCitraW5kcyBvZiBmaWxlcy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMKK3lvdSBjYW4gc2V0IGFuZCB3aGF0IGtpbmRzIG9mIGZpbGVzIGdvIGluIHRoZW0uICBJbiBnZW5lcmFsLCB0aGUKK2RlZmF1bHQgZm9yIHRoZXNlIG9wdGlvbnMgaXMgZXhwcmVzc2VkIGluIHRlcm1zIG9mIGAke3ByZWZpeH0nLCBzbyB0aGF0CitzcGVjaWZ5aW5nIGp1c3QgYC0tcHJlZml4JyB3aWxsIGFmZmVjdCBhbGwgb2YgdGhlIG90aGVyIGRpcmVjdG9yeQorc3BlY2lmaWNhdGlvbnMgdGhhdCB3ZXJlIG5vdCBleHBsaWNpdGx5IHByb3ZpZGVkLgorCisgICBUaGUgbW9zdCBwb3J0YWJsZSB3YXkgdG8gYWZmZWN0IGluc3RhbGxhdGlvbiBsb2NhdGlvbnMgaXMgdG8gcGFzcyB0aGUKK2NvcnJlY3QgbG9jYXRpb25zIHRvIGBjb25maWd1cmUnOyBob3dldmVyLCBtYW55IHBhY2thZ2VzIHByb3ZpZGUgb25lIG9yCitib3RoIG9mIHRoZSBmb2xsb3dpbmcgc2hvcnRjdXRzIG9mIHBhc3NpbmcgdmFyaWFibGUgYXNzaWdubWVudHMgdG8gdGhlCitgbWFrZSBpbnN0YWxsJyBjb21tYW5kIGxpbmUgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBsb2NhdGlvbnMgd2l0aG91dAoraGF2aW5nIHRvIHJlY29uZmlndXJlIG9yIHJlY29tcGlsZS4KKworICAgVGhlIGZpcnN0IG1ldGhvZCBpbnZvbHZlcyBwcm92aWRpbmcgYW4gb3ZlcnJpZGUgdmFyaWFibGUgZm9yIGVhY2gKK2FmZmVjdGVkIGRpcmVjdG9yeS4gIEZvciBleGFtcGxlLCBgbWFrZSBpbnN0YWxsCitwcmVmaXg9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgY2hvb3NlIGFuIGFsdGVybmF0ZSBsb2NhdGlvbiBmb3IgYWxsCitkaXJlY3RvcnkgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZgorYCR7cHJlZml4fScuICBBbnkgZGlyZWN0b3JpZXMgdGhhdCB3ZXJlIHNwZWNpZmllZCBkdXJpbmcgYGNvbmZpZ3VyZScsCitidXQgbm90IGluIHRlcm1zIG9mIGAke3ByZWZpeH0nLCBtdXN0IGVhY2ggYmUgb3ZlcnJpZGRlbiBhdCBpbnN0YWxsCit0aW1lIGZvciB0aGUgZW50aXJlIGluc3RhbGxhdGlvbiB0byBiZSByZWxvY2F0ZWQuICBUaGUgYXBwcm9hY2ggb2YKK21ha2VmaWxlIHZhcmlhYmxlIG92ZXJyaWRlcyBmb3IgZWFjaCBkaXJlY3RvcnkgdmFyaWFibGUgaXMgcmVxdWlyZWQgYnkKK3RoZSBHTlUgQ29kaW5nIFN0YW5kYXJkcywgYW5kIGlkZWFsbHkgY2F1c2VzIG5vIHJlY29tcGlsYXRpb24uCitIb3dldmVyLCBzb21lIHBsYXRmb3JtcyBoYXZlIGtub3duIGxpbWl0YXRpb25zIHdpdGggdGhlIHNlbWFudGljcyBvZgorc2hhcmVkIGxpYnJhcmllcyB0aGF0IGVuZCB1cCByZXF1aXJpbmcgcmVjb21waWxhdGlvbiB3aGVuIHVzaW5nIHRoaXMKK21ldGhvZCwgcGFydGljdWxhcmx5IG5vdGljZWFibGUgaW4gcGFja2FnZXMgdGhhdCB1c2UgR05VIExpYnRvb2wuCisKKyAgIFRoZSBzZWNvbmQgbWV0aG9kIGludm9sdmVzIHByb3ZpZGluZyB0aGUgYERFU1RESVInIHZhcmlhYmxlLiAgRm9yCitleGFtcGxlLCBgbWFrZSBpbnN0YWxsIERFU1RESVI9L2FsdGVybmF0ZS9kaXJlY3RvcnknIHdpbGwgcHJlcGVuZAorYC9hbHRlcm5hdGUvZGlyZWN0b3J5JyBiZWZvcmUgYWxsIGluc3RhbGxhdGlvbiBuYW1lcy4gIFRoZSBhcHByb2FjaCBvZgorYERFU1RESVInIG92ZXJyaWRlcyBpcyBub3QgcmVxdWlyZWQgYnkgdGhlIEdOVSBDb2RpbmcgU3RhbmRhcmRzLCBhbmQKK2RvZXMgbm90IHdvcmsgb24gcGxhdGZvcm1zIHRoYXQgaGF2ZSBkcml2ZSBsZXR0ZXJzLiAgT24gdGhlIG90aGVyIGhhbmQsCitpdCBkb2VzIGJldHRlciBhdCBhdm9pZGluZyByZWNvbXBpbGF0aW9uIGlzc3VlcywgYW5kIHdvcmtzIHdlbGwgZXZlbgord2hlbiBzb21lIGRpcmVjdG9yeSBvcHRpb25zIHdlcmUgbm90IHNwZWNpZmllZCBpbiB0ZXJtcyBvZiBgJHtwcmVmaXh9JworYXQgYGNvbmZpZ3VyZScgdGltZS4KKworT3B0aW9uYWwgRmVhdHVyZXMKKz09PT09PT09PT09PT09PT09CisKKyAgIElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAord2l0aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBgY29uZmlndXJlJyB0aGUKK29wdGlvbiBgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCcuCisKKyAgIFNvbWUgcGFja2FnZXMgcGF5IGF0dGVudGlvbiB0byBgLS1lbmFibGUtRkVBVFVSRScgb3B0aW9ucyB0bworYGNvbmZpZ3VyZScsIHdoZXJlIEZFQVRVUkUgaW5kaWNhdGVzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHBhY2thZ2UuCitUaGV5IG1heSBhbHNvIHBheSBhdHRlbnRpb24gdG8gYC0td2l0aC1QQUNLQUdFJyBvcHRpb25zLCB3aGVyZSBQQUNLQUdFCitpcyBzb21ldGhpbmcgbGlrZSBgZ251LWFzJyBvciBgeCcgKGZvciB0aGUgWCBXaW5kb3cgU3lzdGVtKS4gIFRoZQorYFJFQURNRScgc2hvdWxkIG1lbnRpb24gYW55IGAtLWVuYWJsZS0nIGFuZCBgLS13aXRoLScgb3B0aW9ucyB0aGF0IHRoZQorcGFja2FnZSByZWNvZ25pemVzLgorCisgICBGb3IgcGFja2FnZXMgdGhhdCB1c2UgdGhlIFggV2luZG93IFN5c3RlbSwgYGNvbmZpZ3VyZScgY2FuIHVzdWFsbHkKK2ZpbmQgdGhlIFggaW5jbHVkZSBhbmQgbGlicmFyeSBmaWxlcyBhdXRvbWF0aWNhbGx5LCBidXQgaWYgaXQgZG9lc24ndCwKK3lvdSBjYW4gdXNlIHRoZSBgY29uZmlndXJlJyBvcHRpb25zIGAtLXgtaW5jbHVkZXM9RElSJyBhbmQKK2AtLXgtbGlicmFyaWVzPURJUicgdG8gc3BlY2lmeSB0aGVpciBsb2NhdGlvbnMuCisKKyAgIFNvbWUgcGFja2FnZXMgb2ZmZXIgdGhlIGFiaWxpdHkgdG8gY29uZmlndXJlIGhvdyB2ZXJib3NlIHRoZQorZXhlY3V0aW9uIG9mIGBtYWtlJyB3aWxsIGJlLiAgRm9yIHRoZXNlIHBhY2thZ2VzLCBydW5uaW5nIGAuL2NvbmZpZ3VyZQorLS1lbmFibGUtc2lsZW50LXJ1bGVzJyBzZXRzIHRoZSBkZWZhdWx0IHRvIG1pbmltYWwgb3V0cHV0LCB3aGljaCBjYW4gYmUKK292ZXJyaWRkZW4gd2l0aCBgbWFrZSBWPTEnOyB3aGlsZSBydW5uaW5nIGAuL2NvbmZpZ3VyZQorLS1kaXNhYmxlLXNpbGVudC1ydWxlcycgc2V0cyB0aGUgZGVmYXVsdCB0byB2ZXJib3NlLCB3aGljaCBjYW4gYmUKK292ZXJyaWRkZW4gd2l0aCBgbWFrZSBWPTAnLgorCitQYXJ0aWN1bGFyIHN5c3RlbXMKKz09PT09PT09PT09PT09PT09PQorCisgICBPbiBIUC1VWCwgdGhlIGRlZmF1bHQgQyBjb21waWxlciBpcyBub3QgQU5TSSBDIGNvbXBhdGlibGUuICBJZiBHTlUKK0NDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZm9sbG93aW5nIG9wdGlvbnMgaW4KK29yZGVyIHRvIHVzZSBhbiBBTlNJIEMgY29tcGlsZXI6CisKKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIC1BZSAtRF9YT1BFTl9TT1VSQ0U9NTAwIgorCithbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmssIGluc3RhbGwgcHJlLWJ1aWx0IGJpbmFyaWVzIG9mIEdDQyBmb3IgSFAtVVguCisKKyAgIE9uIE9TRi8xIGEuay5hLiBUcnU2NCwgc29tZSB2ZXJzaW9ucyBvZiB0aGUgZGVmYXVsdCBDIGNvbXBpbGVyIGNhbm5vdAorcGFyc2UgaXRzIGA8d2NoYXIuaD4nIGhlYWRlciBmaWxlLiAgVGhlIG9wdGlvbiBgLW5vZHRrJyBjYW4gYmUgdXNlZCBhcworYSB3b3JrYXJvdW5kLiAgSWYgR05VIENDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHRoZXJlZm9yZSByZWNvbW1lbmRlZAordG8gdHJ5CisKKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIgorCithbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmssIHRyeQorCisgICAgIC4vY29uZmlndXJlIENDPSJjYyAtbm9kdGsiCisKKyAgIE9uIFNvbGFyaXMsIGRvbid0IHB1dCBgL3Vzci91Y2InIGVhcmx5IGluIHlvdXIgYFBBVEgnLiAgVGhpcworZGlyZWN0b3J5IGNvbnRhaW5zIHNldmVyYWwgZHlzZnVuY3Rpb25hbCBwcm9ncmFtczsgd29ya2luZyB2YXJpYW50cyBvZgordGhlc2UgcHJvZ3JhbXMgYXJlIGF2YWlsYWJsZSBpbiBgL3Vzci9iaW4nLiAgU28sIGlmIHlvdSBuZWVkIGAvdXNyL3VjYicKK2luIHlvdXIgYFBBVEgnLCBwdXQgaXQgX2FmdGVyXyBgL3Vzci9iaW4nLgorCisgICBPbiBIYWlrdSwgc29mdHdhcmUgaW5zdGFsbGVkIGZvciBhbGwgdXNlcnMgZ29lcyBpbiBgL2Jvb3QvY29tbW9uJywKK25vdCBgL3Vzci9sb2NhbCcuICBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCisgICAgIC4vY29uZmlndXJlIC0tcHJlZml4PS9ib290L2NvbW1vbgorCitTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fubm90IGZpZ3VyZSBvdXQKK2F1dG9tYXRpY2FsbHksIGJ1dCBuZWVkcyB0byBkZXRlcm1pbmUgYnkgdGhlIHR5cGUgb2YgbWFjaGluZSB0aGUgcGFja2FnZQord2lsbCBydW4gb24uICBVc3VhbGx5LCBhc3N1bWluZyB0aGUgcGFja2FnZSBpcyBidWlsdCB0byBiZSBydW4gb24gdGhlCitfc2FtZV8gYXJjaGl0ZWN0dXJlcywgYGNvbmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50cworYSBtZXNzYWdlIHNheWluZyBpdCBjYW5ub3QgZ3Vlc3MgdGhlIG1hY2hpbmUgdHlwZSwgZ2l2ZSBpdCB0aGUKK2AtLWJ1aWxkPVRZUEUnIG9wdGlvbi4gIFRZUEUgY2FuIGVpdGhlciBiZSBhIHNob3J0IG5hbWUgZm9yIHRoZSBzeXN0ZW0KK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNhbm9uaWNhbCBuYW1lIHdoaWNoIGhhcyB0aGUgZm9ybToKKworICAgICBDUFUtQ09NUEFOWS1TWVNURU0KKword2hlcmUgU1lTVEVNIGNhbiBoYXZlIG9uZSBvZiB0aGVzZSBmb3JtczoKKworICAgICBPUworICAgICBLRVJORUwtT1MKKworICAgU2VlIHRoZSBmaWxlIGBjb25maWcuc3ViJyBmb3IgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiBlYWNoIGZpZWxkLiAgSWYKK2Bjb25maWcuc3ViJyBpc24ndCBpbmNsdWRlZCBpbiB0aGlzIHBhY2thZ2UsIHRoZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKK25lZWQgdG8ga25vdyB0aGUgbWFjaGluZSB0eXBlLgorCisgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29tcGlsZXIgdG9vbHMgZm9yIGNyb3NzLWNvbXBpbGluZywgeW91IHNob3VsZAordXNlIHRoZSBvcHRpb24gYC0tdGFyZ2V0PVRZUEUnIHRvIHNlbGVjdCB0aGUgdHlwZSBvZiBzeXN0ZW0gdGhleSB3aWxsCitwcm9kdWNlIGNvZGUgZm9yLgorCisgICBJZiB5b3Ugd2FudCB0byBfdXNlXyBhIGNyb3NzIGNvbXBpbGVyLCB0aGF0IGdlbmVyYXRlcyBjb2RlIGZvciBhCitwbGF0Zm9ybSBkaWZmZXJlbnQgZnJvbSB0aGUgYnVpbGQgcGxhdGZvcm0sIHlvdSBzaG91bGQgc3BlY2lmeSB0aGUKKyJob3N0IiBwbGF0Zm9ybSAoaS5lLiwgdGhhdCBvbiB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdpbGwKK2V2ZW50dWFsbHkgYmUgcnVuKSB3aXRoIGAtLWhvc3Q9VFlQRScuCisKK1NoYXJpbmcgRGVmYXVsdHMKKz09PT09PT09PT09PT09PT0KKworICAgSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBgY29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLAoreW91IGNhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZpZy5zaXRlJyB0aGF0IGdpdmVzCitkZWZhdWx0IHZhbHVlcyBmb3IgdmFyaWFibGVzIGxpa2UgYENDJywgYGNhY2hlX2ZpbGUnLCBhbmQgYHByZWZpeCcuCitgY29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLCB0aGVuCitgUFJFRklYL2V0Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQorYENPTkZJR19TSVRFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlIHNpdGUgc2NyaXB0LgorQSB3YXJuaW5nOiBub3QgYWxsIGBjb25maWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKworRGVmaW5pbmcgVmFyaWFibGVzCis9PT09PT09PT09PT09PT09PT0KKworICAgVmFyaWFibGVzIG5vdCBkZWZpbmVkIGluIGEgc2l0ZSBzaGVsbCBzY3JpcHQgY2FuIGJlIHNldCBpbiB0aGUKK2Vudmlyb25tZW50IHBhc3NlZCB0byBgY29uZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMgbWF5IHJ1bgorY29uZmlndXJlIGFnYWluIGR1cmluZyB0aGUgYnVpbGQsIGFuZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKK3ZhcmlhYmxlcyBtYXkgYmUgbG9zdC4gIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgeW91IHNob3VsZCBzZXQKK3RoZW0gaW4gdGhlIGBjb25maWd1cmUnIGNvbW1hbmQgbGluZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKworICAgICAuL2NvbmZpZ3VyZSBDQz0vdXNyL2xvY2FsMi9iaW4vZ2NjCisKK2NhdXNlcyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRvIGJlIHVzZWQgYXMgdGhlIEMgY29tcGlsZXIgKHVubGVzcyBpdCBpcworb3ZlcnJpZGRlbiBpbiB0aGUgc2l0ZSBzaGVsbCBzY3JpcHQpLgorCitVbmZvcnR1bmF0ZWx5LCB0aGlzIHRlY2huaXF1ZSBkb2VzIG5vdCB3b3JrIGZvciBgQ09ORklHX1NIRUxMJyBkdWUgdG8KK2FuIEF1dG9jb25mIGJ1Zy4gIFVudGlsIHRoZSBidWcgaXMgZml4ZWQgeW91IGNhbiB1c2UgdGhpcyB3b3JrYXJvdW5kOgorCisgICAgIENPTkZJR19TSEVMTD0vYmluL2Jhc2ggL2Jpbi9iYXNoIC4vY29uZmlndXJlIENPTkZJR19TSEVMTD0vYmluL2Jhc2gKKworYGNvbmZpZ3VyZScgSW52b2NhdGlvbgorPT09PT09PT09PT09PT09PT09PT09PQorCisgICBgY29uZmlndXJlJyByZWNvZ25pemVzIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBjb250cm9sIGhvdyBpdAorb3BlcmF0ZXMuCisKK2AtLWhlbHAnCitgLWgnCisgICAgIFByaW50IGEgc3VtbWFyeSBvZiBhbGwgb2YgdGhlIG9wdGlvbnMgdG8gYGNvbmZpZ3VyZScsIGFuZCBleGl0LgorCitgLS1oZWxwPXNob3J0JworYC0taGVscD1yZWN1cnNpdmUnCisgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB1bmlxdWUgdG8gdGhpcyBwYWNrYWdlJ3MKKyAgICAgYGNvbmZpZ3VyZScsIGFuZCBleGl0LiAgVGhlIGBzaG9ydCcgdmFyaWFudCBsaXN0cyBvcHRpb25zIHVzZWQKKyAgICAgb25seSBpbiB0aGUgdG9wIGxldmVsLCB3aGlsZSB0aGUgYHJlY3Vyc2l2ZScgdmFyaWFudCBsaXN0cyBvcHRpb25zCisgICAgIGFsc28gcHJlc2VudCBpbiBhbnkgbmVzdGVkIHBhY2thZ2VzLgorCitgLS12ZXJzaW9uJworYC1WJworICAgICBQcmludCB0aGUgdmVyc2lvbiBvZiBBdXRvY29uZiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJlJworICAgICBzY3JpcHQsIGFuZCBleGl0LgorCitgLS1jYWNoZS1maWxlPUZJTEUnCisgICAgIEVuYWJsZSB0aGUgY2FjaGU6IHVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSwKKyAgICAgdHJhZGl0aW9uYWxseSBgY29uZmlnLmNhY2hlJy4gIEZJTEUgZGVmYXVsdHMgdG8gYC9kZXYvbnVsbCcgdG8KKyAgICAgZGlzYWJsZSBjYWNoaW5nLgorCitgLS1jb25maWctY2FjaGUnCitgLUMnCisgICAgIEFsaWFzIGZvciBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScuCisKK2AtLXF1aWV0JworYC0tc2lsZW50JworYC1xJworICAgICBEbyBub3QgcHJpbnQgbWVzc2FnZXMgc2F5aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCisgICAgIHN1cHByZXNzIGFsbCBub3JtYWwgb3V0cHV0LCByZWRpcmVjdCBpdCB0byBgL2Rldi9udWxsJyAoYW55IGVycm9yCisgICAgIG1lc3NhZ2VzIHdpbGwgc3RpbGwgYmUgc2hvd24pLgorCitgLS1zcmNkaXI9RElSJworICAgICBMb29rIGZvciB0aGUgcGFja2FnZSdzIHNvdXJjZSBjb2RlIGluIGRpcmVjdG9yeSBESVIuICBVc3VhbGx5CisgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1pbmUgdGhhdCBkaXJlY3RvcnkgYXV0b21hdGljYWxseS4KKworYC0tcHJlZml4PURJUicKKyAgICAgVXNlIERJUiBhcyB0aGUgaW5zdGFsbGF0aW9uIHByZWZpeC4gICpub3RlIEluc3RhbGxhdGlvbiBOYW1lczo6CisgICAgIGZvciBtb3JlIGRldGFpbHMsIGluY2x1ZGluZyBvdGhlciBvcHRpb25zIGF2YWlsYWJsZSBmb3IgZmluZS10dW5pbmcKKyAgICAgdGhlIGluc3RhbGxhdGlvbiBsb2NhdGlvbnMuCisKK2AtLW5vLWNyZWF0ZScKK2AtbicKKyAgICAgUnVuIHRoZSBjb25maWd1cmUgY2hlY2tzLCBidXQgc3RvcCBiZWZvcmUgY3JlYXRpbmcgYW55IG91dHB1dAorICAgICBmaWxlcy4KKworYGNvbmZpZ3VyZScgYWxzbyBhY2NlcHRzIHNvbWUgb3RoZXIsIG5vdCB3aWRlbHkgdXNlZnVsLCBvcHRpb25zLiAgUnVuCitgY29uZmlndXJlIC0taGVscCcgZm9yIG1vcmUgZGV0YWlscy4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9NYWtlZmlsZS5hbSBiL2xpYnhtbDItMi43LjcvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY3YWZiZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwxMjYyIEBACisjIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9tYWtlIHRvIHByb2R1Y2UgTWFrZWZpbGUuaW4KKworQUNMT0NBTF9BTUZMQUdTID0gLUkgbTQKKworU1VCRElSUyA9IGluY2x1ZGUgLiBkb2MgZXhhbXBsZSB4c3RjIEBQWVRIT05fU1VCRElSQAorCitESVNUX1NVQkRJUlMgPSBpbmNsdWRlIC4gZG9jIGV4YW1wbGUgcHl0aG9uIHhzdGMKKworSU5DTFVERVMgPSAtSSQodG9wX2J1aWxkZGlyKS9pbmNsdWRlIC1JQHNyY2RpckAvaW5jbHVkZSBAVEhSRUFEX0NGTEFHU0AgQFpfQ0ZMQUdTQCAKKworbm9pbnN0X1BST0dSQU1TPXRlc3RTY2hlbWFzIHRlc3RSZWxheCB0ZXN0U0FYIHRlc3RIVE1MIHRlc3RYUGF0aCB0ZXN0VVJJIFwKKyAgICAgICAgICAgICAgICB0ZXN0VGhyZWFkcyB0ZXN0QzE0TiB0ZXN0QXV0b21hdGEgdGVzdFJlZ2V4cCBcCisgICAgICAgICAgICAgICAgdGVzdFJlYWRlciB0ZXN0YXBpIHRlc3RNb2R1bGUgcnVudGVzdCBydW5zdWl0ZSB0ZXN0Y2hhciBcCisJCXRlc3RkaWN0IHJ1bnhtbGNvbmYgdGVzdHJlY3Vyc2UKKworYmluX1BST0dSQU1TID0geG1sbGludCB4bWxjYXRhbG9nCisKK2Jpbl9TQ1JJUFRTPXhtbDItY29uZmlnCisKK2xpYl9MVExJQlJBUklFUyA9IGxpYnhtbDIubGEKK2xpYnhtbDJfbGFfTElCQUREID0gQFRIUkVBRF9MSUJTQCBAWl9MSUJTQCAkKElDT05WX0xJQlMpIEBNX0xJQlNAIEBXSU4zMl9FWFRSQV9MSUJBRERACisKK2lmIFVTRV9WRVJTSU9OX1NDUklQVAorTElCWE1MMl9WRVJTSU9OX1NDUklQVCA9ICQoVkVSU0lPTl9TQ1JJUFRfRkxBR1MpJChzcmNkaXIpL2xpYnhtbDIuc3ltcworZWxzZQorTElCWE1MMl9WRVJTSU9OX1NDUklQVCA9CitlbmRpZgorCitsaWJ4bWwyX2xhX0xERkxBR1MgPSBAQ1lHV0lOX0VYVFJBX0xERkxBR1NAIEBXSU4zMl9FWFRSQV9MREZMQUdTQCBcCisgICAgICAgICAgICAgICAgICAgICAkKExJQlhNTDJfVkVSU0lPTl9TQ1JJUFQpIFwKKwkJICAgICAtdmVyc2lvbi1pbmZvIEBMSUJYTUxfVkVSU0lPTl9JTkZPQCBcCisJCSAgICAgQE1PRFVMRV9QTEFURk9STV9MSUJTQAorCitpZiBXSVRIX1RSSU9fU09VUkNFUworbGlieG1sMl9sYV9TT1VSQ0VTID0gU0FYLmMgZW50aXRpZXMuYyBlbmNvZGluZy5jIGVycm9yLmMgcGFyc2VySW50ZXJuYWxzLmMgIFwKKwkJcGFyc2VyLmMgdHJlZS5jIGhhc2guYyBsaXN0LmMgeG1sSU8uYyB4bWxtZW1vcnkuYyB1cmkuYyAgXAorCQl2YWxpZC5jIHhsaW5rLmMgSFRNTHBhcnNlci5jIEhUTUx0cmVlLmMgZGVidWdYTUwuYyB4cGF0aC5jICBcCisJCXhwb2ludGVyLmMgeGluY2x1ZGUuYyBuYW5vaHR0cC5jIG5hbm9mdHAuYyBET0NCcGFyc2VyLmMgXAorCQljYXRhbG9nLmMgZ2xvYmFscy5jIHRocmVhZHMuYyBjMTRuLmMgeG1sc3RyaW5nLmMgXAorCQl4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMgeG1sdW5pY29kZS5jIFwKKwkJdHJpb3N0ci5jIHRyaW8uYyB4bWxyZWFkZXIuYyByZWxheG5nLmMgZGljdC5jIFNBWDIuYyBcCisJCXhtbHdyaXRlci5jIGxlZ2FjeS5jIGNodmFsaWQuYyBwYXR0ZXJuLmMgeG1sc2F2ZS5jIFwKKwkJeG1sbW9kdWxlLmMgc2NoZW1hdHJvbi5jCitlbHNlCitsaWJ4bWwyX2xhX1NPVVJDRVMgPSBTQVguYyBlbnRpdGllcy5jIGVuY29kaW5nLmMgZXJyb3IuYyBwYXJzZXJJbnRlcm5hbHMuYyAgXAorCQlwYXJzZXIuYyB0cmVlLmMgaGFzaC5jIGxpc3QuYyB4bWxJTy5jIHhtbG1lbW9yeS5jIHVyaS5jICBcCisJCXZhbGlkLmMgeGxpbmsuYyBIVE1McGFyc2VyLmMgSFRNTHRyZWUuYyBkZWJ1Z1hNTC5jIHhwYXRoLmMgIFwKKwkJeHBvaW50ZXIuYyB4aW5jbHVkZS5jIG5hbm9odHRwLmMgbmFub2Z0cC5jIERPQ0JwYXJzZXIuYyBcCisJCWNhdGFsb2cuYyBnbG9iYWxzLmMgdGhyZWFkcy5jIGMxNG4uYyB4bWxzdHJpbmcuYyBcCisJCXhtbHJlZ2V4cC5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYyB4bWx1bmljb2RlLmMgXAorCQl4bWxyZWFkZXIuYyByZWxheG5nLmMgZGljdC5jIFNBWDIuYyBcCisJCXhtbHdyaXRlci5jIGxlZ2FjeS5jIGNodmFsaWQuYyBwYXR0ZXJuLmMgeG1sc2F2ZS5jIFwKKwkJeG1sbW9kdWxlLmMgc2NoZW1hdHJvbi5jCitlbmRpZgorCitERVBTID0gJCh0b3BfYnVpbGRkaXIpL2xpYnhtbDIubGEKK0xEQUREUyA9IEBTVEFUSUNfQklOQVJJRVNAICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhIEBUSFJFQURfTElCU0AgQFpfTElCU0AgJChJQ09OVl9MSUJTKSBATV9MSUJTQCBAV0lOMzJfRVhUUkFfTElCQUREQAorCisKK21hbl9NQU5TID0geG1sMi1jb25maWcuMSBsaWJ4bWwuMworCittNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKK200ZGF0YV9EQVRBID0gbGlieG1sLm00CisKK3J1bnRlc3RfU09VUkNFUz1ydW50ZXN0LmMKK3J1bnRlc3RfTERGTEFHUyA9IAorcnVudGVzdF9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCitydW50ZXN0X0xEQUREPSBAQkFTRV9USFJFQURfTElCU0AgQFJETF9MSUJTQCAkKExEQUREUykKKwordGVzdHJlY3Vyc2VfU09VUkNFUz10ZXN0cmVjdXJzZS5jCit0ZXN0cmVjdXJzZV9MREZMQUdTID0gCit0ZXN0cmVjdXJzZV9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0cmVjdXJzZV9MREFERD0gQEJBU0VfVEhSRUFEX0xJQlNAIEBSRExfTElCU0AgJChMREFERFMpCisKK3Rlc3RjaGFyX1NPVVJDRVM9dGVzdGNoYXIuYwordGVzdGNoYXJfTERGTEFHUyA9IAordGVzdGNoYXJfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdGNoYXJfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3Rlc3RkaWN0X1NPVVJDRVM9dGVzdGRpY3QuYwordGVzdGRpY3RfTERGTEFHUyA9IAordGVzdGRpY3RfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdGRpY3RfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3J1bnN1aXRlX1NPVVJDRVM9cnVuc3VpdGUuYworcnVuc3VpdGVfTERGTEFHUyA9IAorcnVuc3VpdGVfREVQRU5ERU5DSUVTID0gJChERVBTKQorcnVuc3VpdGVfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3htbGxpbnRfU09VUkNFUz14bWxsaW50LmMKK3htbGxpbnRfTERGTEFHUyA9IAoreG1sbGludF9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit4bWxsaW50X0xEQUREPSAgQFJETF9MSUJTQCAkKExEQUREUykKKwordGVzdFNBWF9TT1VSQ0VTPXRlc3RTQVguYwordGVzdFNBWF9MREZMQUdTID0gCit0ZXN0U0FYX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RTQVhfTERBREQ9ICQoTERBRERTKQorCit0ZXN0SFRNTF9TT1VSQ0VTPXRlc3RIVE1MLmMKK3Rlc3RIVE1MX0xERkxBR1MgPSAKK3Rlc3RIVE1MX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RIVE1MX0xEQUREPSAkKExEQUREUykKKworeG1sY2F0YWxvZ19TT1VSQ0VTPXhtbGNhdGFsb2cuYworeG1sY2F0YWxvZ19MREZMQUdTID0gCit4bWxjYXRhbG9nX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3htbGNhdGFsb2dfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3Rlc3RYUGF0aF9TT1VSQ0VTPXRlc3RYUGF0aC5jCit0ZXN0WFBhdGhfTERGTEFHUyA9IAordGVzdFhQYXRoX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RYUGF0aF9MREFERD0gJChMREFERFMpCisKK3Rlc3RDMTROX1NPVVJDRVM9dGVzdEMxNE4uYwordGVzdEMxNE5fTERGTEFHUyA9IAordGVzdEMxNE5fREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdEMxNE5fTERBREQ9ICQoTERBRERTKQorCit0ZXN0VGhyZWFkc19TT1VSQ0VTPXRlc3RUaHJlYWRzQFRIUkVBRFNfVzMyQC5jCit0ZXN0VGhyZWFkc19MREZMQUdTID0gCit0ZXN0VGhyZWFkc19ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0VGhyZWFkc19MREFERD0gQEJBU0VfVEhSRUFEX0xJQlNAICAkKExEQUREUykKKwordGVzdFVSSV9TT1VSQ0VTPXRlc3RVUkkuYwordGVzdFVSSV9MREZMQUdTID0gCit0ZXN0VVJJX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RVUklfTERBREQ9ICQoTERBRERTKQorCit0ZXN0UmVnZXhwX1NPVVJDRVM9dGVzdFJlZ2V4cC5jCit0ZXN0UmVnZXhwX0xERkxBR1MgPSAKK3Rlc3RSZWdleHBfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdFJlZ2V4cF9MREFERD0gJChMREFERFMpCisKK3Rlc3RBdXRvbWF0YV9TT1VSQ0VTPXRlc3RBdXRvbWF0YS5jCit0ZXN0QXV0b21hdGFfTERGTEFHUyA9IAordGVzdEF1dG9tYXRhX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RBdXRvbWF0YV9MREFERD0gJChMREFERFMpCisKK3Rlc3RTY2hlbWFzX1NPVVJDRVM9dGVzdFNjaGVtYXMuYwordGVzdFNjaGVtYXNfTERGTEFHUyA9IAordGVzdFNjaGVtYXNfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdFNjaGVtYXNfTERBREQ9ICQoTERBRERTKQorCit0ZXN0UmVsYXhfU09VUkNFUz10ZXN0UmVsYXguYwordGVzdFJlbGF4X0xERkxBR1MgPSAKK3Rlc3RSZWxheF9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0UmVsYXhfTERBREQ9ICQoTERBRERTKQorCit0ZXN0UmVhZGVyX1NPVVJDRVM9dGVzdFJlYWRlci5jCit0ZXN0UmVhZGVyX0xERkxBR1MgPSAKK3Rlc3RSZWFkZXJfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdFJlYWRlcl9MREFERD0gJChMREFERFMpCisKK3Rlc3RNb2R1bGVfU09VUkNFUz10ZXN0TW9kdWxlLmMKK3Rlc3RNb2R1bGVfTERGTEFHUyA9IAordGVzdE1vZHVsZV9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0TW9kdWxlX0xEQUREPSAkKExEQUREUykKKworbm9pbnN0X0xUTElCUkFSSUVTID0gdGVzdGRzby5sYQordGVzdGRzb19sYV9TT1VSQ0VTID0gdGVzdGRzby5jCit0ZXN0ZHNvX2xhX0xERkxBR1MgPSAtbW9kdWxlIC1uby11bmRlZmluZWQgLWF2b2lkLXZlcnNpb24gLXJwYXRoICQobGliZGlyKQorCisjIHRoYXQgb25lIGZvcmNlcyB0aGUgcmVidWlsZCB3aGVuICJtYWtlIHJlYnVpbGQiIGlzIHJ1biBvbiBkb2MvCityZWJ1aWxkX3Rlc3RhcGk6CisJLUAoaWYgWyAiJChQWVRIT04pIiAhPSAiIiBdIDsgdGhlbiBcCisJICAgICQoUFlUSE9OKSAkKHNyY2RpcikvZ2VudGVzdC5weSAkKHNyY2RpcikgOyBmaSApCisKKyMgdGhhdCBvbmUgaXMganVzdCB0byBtYWtlIHN1cmUgaXQgaXMgcmVidWlsdCBpZiBtaXNzaW5nCisjIGJ1dCBhZGRpbmcgdGhlIGRlcGVuZGFuY2VzIGdlbmVyYXRlIG1lc3MKK3Rlc3RhcGkuYzogJChzcmNkaXIpL2dlbnRlc3QucHkKKwktQChpZiBbICIkKFBZVEhPTikiICE9ICIiIF0gOyB0aGVuIFwKKwkgICAgJChQWVRIT04pICQoc3JjZGlyKS9nZW50ZXN0LnB5ICQoc3JjZGlyKSA7IGZpICkKKwordGVzdGFwaV9TT1VSQ0VTPXRlc3RhcGkuYwordGVzdGFwaV9MREZMQUdTID0gCit0ZXN0YXBpX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RhcGlfTERBREQ9ICQoTERBRERTKQorCitydW54bWxjb25mX1NPVVJDRVM9cnVueG1sY29uZi5jCitydW54bWxjb25mX0xERkxBR1MgPSAKK3J1bnhtbGNvbmZfREVQRU5ERU5DSUVTID0gJChERVBTKQorcnVueG1sY29uZl9MREFERD0gJChMREFERFMpCisKKyN0ZXN0T09NX1NPVVJDRVM9dGVzdE9PTS5jIHRlc3RPT01saWIuaCB0ZXN0T09NbGliLmMKKyN0ZXN0T09NX0xERkxBR1MgPSAKKyN0ZXN0T09NX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKKyN0ZXN0T09NX0xEQUREPSAkKExEQUREUykKKworcnVudGVzdHM6CisJJChDSEVDS0VSKSAuL3J1bnRlc3QkKEVYRUVYVCkgJiYgJChDSEVDS0VSKSAuL3Rlc3RyZWN1cnNlJChFWEVFWFQpICYmJChDSEVDS0VSKSAuL3Rlc3RhcGkkKEVYRUVYVCkgJiYgJChDSEVDS0VSKSAuL3Rlc3RjaGFyJChFWEVFWFQpJiYgJChDSEVDS0VSKSAuL3Rlc3RkaWN0JChFWEVFWFQpICYmICQoQ0hFQ0tFUikgLi9ydW54bWxjb25mJChFWEVFWFQpCisJQChpZiBbICJAUFlUSE9OX1NVQkRJUkAiICE9ICIiIF0gOyB0aGVuIGNkIHB5dGhvbiA7IFwKKwkgICAgJChNQUtFKSBNQUtFRkxBR1MrPS0tc2lsZW50IHRlc3RzIDsgZmkpCisKK2NoZWNrOiBhbGwgcnVudGVzdHMKKworY2hlY2stdmFsZ3JpbmQ6IGFsbAorCUBlY2hvICcjIyBSdW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kJworCUBlY2hvICcjIyBHbyBnZXQgYSBjdXAgb2YgY29mZmVlIGl0IGlzIGdvbm5hIHRha2UgYSB3aGlsZSAuLi4nCisJJChNQUtFKSBDSEVDS0VSPSd2YWxncmluZCAtcScgY2hlY2sKKwordGVzdGFsbCA6IHRlc3RzIFNWR3Rlc3RzIFNBWHRlc3RzCisKK3Rlc3RzOiBYTUx0ZXN0cyBYTUxlbnR0ZXN0cyBOU3Rlc3RzIElEdGVzdHMgRXJydGVzdHMgQVBJdGVzdHMgQFJFQURFUl9URVNUQCBAVEVTVF9TQVhAIEBURVNUX1BVU0hAIEBURVNUX0hUTUxAIEBURVNUX1BIVE1MQCAgQFRFU1RfVkFMSURAIFVSSXRlc3RzIEBURVNUX1BBVFRFUk5AIEBURVNUX1hQQVRIQCBAVEVTVF9YUFRSQCBAVEVTVF9YSU5DTFVERUAgQFRFU1RfQzE0TkAgQFRFU1RfREVCVUdAIEBURVNUX0NBVEFMT0dAIEBURVNUX1JFR0VYUFNAIEBURVNUX1NDSEVNQVNAIEBURVNUX1NDSEVNQVRST05AIEBURVNUX1RIUkVBRFNAIFRpbWluZ3Rlc3RzIEBURVNUX1ZUSU1FQCBAUFlUSE9OX1RFU1RTQCBAVEVTVF9NT0RVTEVTQAorCUAoaWYgWyAiQFBZVEhPTl9TVUJESVJAIiAhPSAiIiBdIDsgdGhlbiBjZCBweXRob24gOyBcCisJICAgICQoTUFLRSkgTUFLRUZMQUdTKz0tLXNpbGVudCB0ZXN0cyA7IGZpKQorCUAoY2QgZG9jL2V4YW1wbGVzIDsgJChNQUtFKSBNQUtFRkxBR1MrPS0tc2lsZW50IHRlc3RzKQorCit2YWxncmluZDoKKwlAZWNobyAnIyMgUnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZCcKKwlAZWNobyAnIyMgR28gZ2V0IGEgY3VwIG9mIGNvZmZlZSBpdCBpcyBnb25uYSB0YWtlIGEgd2hpbGUgLi4uJworCSQoTUFLRSkgQ0hFQ0tFUj0ndmFsZ3JpbmQgLXEnIHRlc3RzCisKK0FQSXRlc3RzOiB0ZXN0YXBpJChFWEVFWFQpCisJQGVjaG8gIiMjIFJ1bm5pbmcgdGhlIEFQSSByZWdyZXNzaW9uIHRlc3RzIHRoaXMgbWF5IHRha2UgYSBsaXR0bGUgd2hpbGUiCisJLUAoJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdGFwaSAtcSkKKworSFRNTHRlc3RzIDogdGVzdEhUTUwkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgSFRNTCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L0hUTUwvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZSAyPiQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUuZXJyIDsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0SFRNTCAkJGkgPiByZXN1bHQuJCRuYW1lIDI+IGVycm9yLiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAtYiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLmVyciBlcnJvci4kJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgcmVzdWx0LiQkbmFtZSA+IHJlc3VsdDIuJCRuYW1lIDI+ZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgIGRpZmYgcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lIGVycm9yLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitIVE1MUHVzaHRlc3RzIDogdGVzdEhUTUwkKEVYRUVYVCkKKwlAZWNobyAiIyMgUHVzaCBIVE1MIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvSFRNTC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0SFRNTCAtLXB1c2ggJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZSAyPiQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUuZXJyIDsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0SFRNTCAtLXB1c2ggJCRpID4gcmVzdWx0LiQkbmFtZSAyPiBlcnJvci4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZSByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGN1dCAtYiAxLTE1ICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUuZXJyID4gZXJyb3JjdXQuJCRuYW1lOyBcCisJICAgICAgY3V0IC1iIDEtMTUgZXJyb3IuJCRuYW1lID4gZXJyb3JjdXQyLiQkbmFtZTsgXAorCSAgICAgIGRpZmYgLWIgZXJyb3JjdXQuJCRuYW1lIGVycm9yY3V0Mi4kJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgLS1wdXNoIHJlc3VsdC4kJG5hbWUgPiByZXN1bHQyLiQkbmFtZSAyPmVycm9yLiQkbmFtZSA7IFwKKwkgICAgICBkaWZmIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZSBlcnJvci4kJG5hbWUgZXJyb3JjdXQuJCRuYW1lIGVycm9yY3V0Mi4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAZWNobyAiIyMgSFRNTCBTQVggcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9IVE1MLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLnNheCBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0SFRNTCAtLXNheCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLnNheCA7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgLS1zYXggJCRpID4gcmVzdWx0LiQkbmFtZS5zYXggOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZS5zYXggcmVzdWx0LiQkbmFtZS5zYXhgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZS5zYXggOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAZWNobyAiIyMgUHVzaCBIVE1MIFNBWCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L0hUTUwvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgLS1wdXNoIC0tc2F4ICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUuc2F4IDsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0SFRNTCAtLXB1c2ggLS1zYXggJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lLnNheCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLnNheCByZXN1bHQuJCRuYW1lLnNheGAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lLnNheCA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitYTUx0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgWE1MIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCByZXN1bHQuJCRuYW1lIDI+JjEgPiByZXN1bHQyLiQkbmFtZSB8IGdyZXAgLXYgJ2ZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eScgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgICAgICBkaWZmIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWVgIDtcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIFhNTCByZWdyZXNzaW9uIHRlc3RzIG9uIG1lbW9yeSIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW1lbW9yeSAkJGkgPiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbWVtb3J5ICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZSByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1tZW1vcnkgcmVzdWx0LiQkbmFtZSAyPiYxID4gcmVzdWx0Mi4kJG5hbWUgfCBncmVwIC12ICdmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHknIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiYDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgZGlmZiByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworWE1MUHVzaHRlc3RzOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFhNTCBwdXNoIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1wdXNoICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1wdXNoICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tcHVzaCByZXN1bHQuJCRuYW1lIDI+JjEgPiByZXN1bHQyLiQkbmFtZSB8IGdyZXAgLXYgJ2ZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eScgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgICAgICBkaWZmIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitOU3Rlc3RzIDogeG1sbGludCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBYTUwgTmFtZXNwYWNlcyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L25hbWVzcGFjZXMvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvbmFtZXNwYWNlcy8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAkJGkgXAorCSAgICAgICAgIDI+ICQoc3JjZGlyKS9yZXN1bHQvbmFtZXNwYWNlcy8kJG5hbWUuZXJyIFwKKwkJID4gJChzcmNkaXIpL3Jlc3VsdC9uYW1lc3BhY2VzLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50ICQkaSAyPiBlcnJvci4kJG5hbWUgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L25hbWVzcGFjZXMvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L25hbWVzcGFjZXMvJCRuYW1lLmVyciBlcnJvci4kJG5hbWVgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIGVycm9yLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitJRHRlc3RzIDogeG1sbGludCQoRVhFRVhUKSB0ZXN0WFBhdGgkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgeG1sOmlkIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QveG1saWQvaWRfKi54bWwgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L3htbGlkLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggLWkgJCRpICJpZCgnYmFyJykiIFwKKwkgICAgICAgICAyPiAkKHNyY2RpcikvcmVzdWx0L3htbGlkLyQkbmFtZS5lcnIgXAorCQkgPiAkKHNyY2RpcikvcmVzdWx0L3htbGlkLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggLWkgJCRpICJpZCgnYmFyJykiIDI+IGVycm9yLiQkbmFtZSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQveG1saWQvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3htbGlkLyQkbmFtZS5lcnIgZXJyb3IuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK0VycnRlc3RzIDogeG1sbGludCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBFcnJvciBjYXNlcyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L2Vycm9ycy8qLnhtbCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50ICQkaSBcCisJICAgICAgICAgMj4gJChzcmNkaXIpL3Jlc3VsdC9lcnJvcnMvJCRuYW1lLmVyciBcCisJCSA+ICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50ICQkaSAyPiBlcnJvci4kJG5hbWUgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L2Vycm9ycy8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzLyQkbmFtZS5lcnIgZXJyb3IuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIEVycm9yIGNhc2VzIHN0cmVhbSByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L2Vycm9ycy8qLnhtbCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzLyQkbmFtZS5zdHIgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXN0cmVhbSAkJGkgXAorCSAgICAgICAgIDI+ICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzLyQkbmFtZS5zdHIgXAorCQkgPiAvZGV2L251bGwgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXN0cmVhbSAkJGkgMj4gZXJyb3IuJCRuYW1lID4gL2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L2Vycm9ycy8kJG5hbWUuc3RyIGVycm9yLiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSBlcnJvci4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworRG9jYnRlc3RzIDogeG1sbGludCQoRVhFRVhUKQorCitYTUxlbnR0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgWE1MIGVudGl0eSBzdWJzdCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0LyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L25vZW50LyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9lbnQgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9ub2VudC8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vZW50ICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9ub2VudC8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9lbnQgcmVzdWx0LiQkbmFtZSAyPiYxID4gcmVzdWx0Mi4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgICAgICBkaWZmIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitVUkl0ZXN0cyA6IHRlc3RVUkkkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgVVJJIG1vZHVsZSByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1VSSS8qLmRhdGEgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L1VSSS8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFVSSSAtYmFzZSAnaHR0cDovL2Zvby5jb20vcGF0aC90by9pbmRleC5odG1sP29yaWcjaGVscCcgPCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L1VSSS8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFVSSSAtYmFzZSAnaHR0cDovL2Zvby5jb20vcGF0aC90by9pbmRleC5odG1sP29yaWcjaGVscCcgPCAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9VUkkvJCRuYW1lIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1VSSS8qLnVyaSA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvVVJJLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0VVJJIDwgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9VUkkvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RVUkkgPCAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9VUkkvJCRuYW1lIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitYUGF0aHRlc3RzIDogdGVzdFhQYXRoJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFhQYXRoIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoaWYgWyAiYCQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggfCBncmVwICdzdXBwb3J0IG5vdCBjb21waWxlZCBpbidgIiAhPSAiIiBdIDsgXAorCSAgdGhlbiBlY2hvIFNraXBwaW5nIGRlYnVnIG5vdCBjb21waWxlZCBpbiA7IGV4aXQgMCA7IGZpIDsgXAorCSAgZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvWFBhdGgvZXhwci8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9YUGF0aC9leHByLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggLWYgLS1leHByICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvWFBhdGgvZXhwci8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggLWYgLS1leHByICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1hQYXRoL2V4cHIvJCRuYW1lIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lIDsgXAorCSAgZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvWFBhdGgvZG9jcy8qIDsgZG8gXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBkb2M9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGZvciBqIGluICQoc3JjZGlyKS90ZXN0L1hQYXRoL3Rlc3RzLyQkZG9jKiA7IGRvIFwKKwkgIGlmIFsgISAtZiAkJGogXSA7IHRoZW4gY29udGludWUgOyBmaSA7IFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkamA7IFwKKwkgIGlmIFsgISAtZCAkJGogXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvWFBhdGgvdGVzdHMvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RYUGF0aCAtZiAtaSAkJGkgJCRqID4gJChzcmNkaXIpL3Jlc3VsdC9YUGF0aC90ZXN0cy8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggLWYgLWkgJCRpICQkaiAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1hQYXRoL3Rlc3RzLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSA7IGZpIDsgZG9uZSkKKworWFB0cnRlc3RzIDogdGVzdFhQYXRoJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFhQb2ludGVyIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoaWYgWyAiYCQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggfCBncmVwICdzdXBwb3J0IG5vdCBjb21waWxlZCBpbidgIiAhPSAiIiBdIDsgXAorCSAgdGhlbiBlY2hvIFNraXBwaW5nIGRlYnVnIG5vdCBjb21waWxlZCBpbiA7IGV4aXQgMCA7IGZpIDsgXAorCSAgZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvWFBhdGgvZG9jcy8qIDsgZG8gXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBkb2M9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGZvciBqIGluICQoc3JjZGlyKS90ZXN0L1hQYXRoL3hwdHIvJCRkb2MqIDsgZG8gXAorCSAgaWYgWyAhIC1mICQkaiBdIDsgdGhlbiBjb250aW51ZSA7IGZpIDsgXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRqYDsgXAorCSAgaWYgWyAhIC1kICQkaiBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9YUGF0aC94cHRyLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggLXhwdHIgLWYgLWkgJCRpICQkaiA+ICQoc3JjZGlyKS9yZXN1bHQvWFBhdGgveHB0ci8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIC14cHRyIC1mIC1pICQkaSAkJGogMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9YUGF0aC94cHRyLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSA7IGZpIDsgZG9uZSkKKworWEluY2x1ZGV0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgWEluY2x1ZGUgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9YSW5jbHVkZS9kb2NzLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm93YXJuaW5nIC0teGluY2x1ZGUgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUgMj4gJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUuZXJyIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vd2FybmluZyAtLXhpbmNsdWRlICQkaSA+IHJlc3VsdC4kJG5hbWUgMj5lcnJvci4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLmVyciBlcnJvci4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSBlcnJvci4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9YSW5jbHVkZS9kb2NzLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm93YXJuaW5nIC0tbm94aW5jbHVkZW5vZGUgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUgMj4gJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUuZXJyIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vd2FybmluZyAtLW5veGluY2x1ZGVub2RlICQkaSA+IHJlc3VsdC4kJG5hbWUgMj5lcnJvci4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLmVyciBlcnJvci4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSBlcnJvci4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgWEluY2x1ZGUgeG1sUmVhZGVyIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvWEluY2x1ZGUvZG9jcy8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUucmRyIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub3dhcm5pbmcgLS14aW5jbHVkZSAtLXN0cmVhbSAtLWRlYnVnICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLnJkciA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub3dhcm5pbmcgLS14aW5jbHVkZSAtLXN0cmVhbSAtLWRlYnVnICQkaSA+IHJlc3VsdC4kJG5hbWUgMj5lcnJvci4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUuZXJyIGVycm9yLiQkbmFtZSA7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLnJkciByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvWEluY2x1ZGUvZG9jcy8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUucmRyIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub3dhcm5pbmcgLS1ub3hpbmNsdWRlbm9kZSAtLXN0cmVhbSAtLWRlYnVnICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLnJkciA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub3dhcm5pbmcgLS14aW5jbHVkZSAtLXN0cmVhbSAtLWRlYnVnICQkaSA+IHJlc3VsdC4kJG5hbWUgMj5lcnJvci4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUuZXJyIGVycm9yLiQkbmFtZSA7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLnJkciByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK1NjcmlwdHRlc3RzIDogeG1sbGludCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBTY3JpcHRzIHJlZ3Jlc3Npb24gdGVzdHMiCisJQGVjaG8gIiMjIFNvbWUgb2YgdGhlIGJhc2UgY29tcHV0YXRpb25zIG1heSBiZSBkaWZmZXJlbnQgaWYgc3JjZGlyICE9IC4iCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3Qvc2NyaXB0cy8qLnNjcmlwdCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSAuc2NyaXB0YDsgXAorCSAgeG1sPSQoc3JjZGlyKS90ZXN0L3NjcmlwdHMvYGJhc2VuYW1lICQkaSAuc2NyaXB0YC54bWw7IFwKKwkgIGlmIFsgLWYgJCR4bWwgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvc2NyaXB0cy8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXNoZWxsICQkeG1sIDwgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9zY3JpcHRzLyQkbmFtZSAyPiAkKHNyY2RpcikvcmVzdWx0L3NjcmlwdHMvJCRuYW1lLmVyciA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1zaGVsbCAkJHhtbCA8ICQkaSA+IHJlc3VsdC4kJG5hbWUgMj4gcmVzdWx0LiQkbmFtZS5lcnIgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9zY3JpcHRzLyQkbmFtZSByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9zY3JpcHRzLyQkbmFtZS5lcnIgcmVzdWx0LiQkbmFtZS5lcnJgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSByZXN1bHQuJCRuYW1lLmVyciA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitDYXRhdGVzdHMgOiB4bWxjYXRhbG9nJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIENhdGFsb2cgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9jYXRhbG9ncy8qLnNjcmlwdCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSAuc2NyaXB0YDsgXAorCSAgeG1sPSQoc3JjZGlyKS90ZXN0L2NhdGFsb2dzL2BiYXNlbmFtZSAkJGkgLnNjcmlwdGAueG1sOyBcCisJICBpZiBbIC1mICQkeG1sIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tc2hlbGwgJCR4bWwgPCAkJGkgMj4mMSA+ICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sY2F0YWxvZyAtLXNoZWxsICQkeG1sIDwgJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvJCRuYW1lIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L2NhdGFsb2dzLyouc2NyaXB0IDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpIC5zY3JpcHRgOyBcCisJICBzZ21sPSQoc3JjZGlyKS90ZXN0L2NhdGFsb2dzL2BiYXNlbmFtZSAkJGkgLnNjcmlwdGAuc2dtbDsgXAorCSAgaWYgWyAtZiAkJHNnbWwgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGNhdGFsb2cgLS1zaGVsbCAkJHNnbWwgPCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGNhdGFsb2cgLS1zaGVsbCAkJHNnbWwgPCAkJGkgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvJCRuYW1lIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCUBlY2hvICIjIyBBZGQgYW5kIGRlbCBvcGVyYXRpb25zIG9uIFhNTCBDYXRhbG9ncyIKKwktQCgkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tY3JlYXRlIC0tbm9vdXQgJChzcmNkaXIpL3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2c7IFwKKwlncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGNhdGFsb2cgLS1ub291dCAtLWFkZCBwdWJsaWMgUHViaWQgc3lzaWQgJChzcmNkaXIpL3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2c7IFwKKwlncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGNhdGFsb2cgLS1ub291dCAtLWFkZCBwdWJsaWMgUHViaWQyIHN5c2lkMiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZzsgXAorCWdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sY2F0YWxvZyAtLW5vb3V0IC0tYWRkIHB1YmxpYyBQdWJpZDMgc3lzaWQzICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nOyBcCisJZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwlkaWZmIHJlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2cuZnVsbCAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZzsgXAorCWdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sY2F0YWxvZyAtLW5vb3V0IC0tZGVsIHN5c2lkICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nOyBcCisJZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tbm9vdXQgLS1kZWwgc3lzaWQzICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nOyBcCisJZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tbm9vdXQgLS1kZWwgc3lzaWQyICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nOyBcCisJZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwlkaWZmIHJlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2cuZW1wdHkgJChzcmNkaXIpL3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2c7IFwKKwlncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCXJtIC1mICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nKQorCitTVkd0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAZWNobyAiIyMgU1ZHIHBhcnNpbmcgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9TVkcvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvU1ZHLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50ICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvU1ZHLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBlY2hvIFRlc3RpbmcgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgJCRpID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1NWRy8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IHJlc3VsdC4kJG5hbWUgPiByZXN1bHQyLiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworVGhyZWFkdGVzdHMgOiB0ZXN0VGhyZWFkcyQoRVhFRVhUKQorCUBlY2hvICIjIyBUaHJlYWRlZCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RUaHJlYWRzIDsgXAorCSAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgZXhpdCAwKQorCitSZWFkZXJ0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgUmVhZGVyIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnJkciBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9uZXQgLS1kZWJ1ZyAtLXN0cmVhbSAkJGkgPiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZHIgMj4vZGV2L251bGwgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9uZXQgLS1kZWJ1ZyAtLXN0cmVhbSAkJGkgPiByZXN1bHQuJCRuYW1lIDI+L2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnJkciByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAZWNobyAiIyMgUmVhZGVyIG9uIG1lbW9yeSByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0LyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZHIgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW1lbW9yeSAtLW5vbmV0IC0tZGVidWcgLS1zdHJlYW0gJCRpID4gJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRyIDI+L2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW1lbW9yeSAtLW5vbmV0IC0tZGVidWcgLS1zdHJlYW0gJCRpID4gcmVzdWx0LiQkbmFtZSAyPi9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZHIgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFdhbGtlciByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0LyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZHIgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vbmV0IC0tZGVidWcgLS13YWxrZXIgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRyIDI+L2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vbmV0IC0tZGVidWcgLS13YWxrZXIgJCRpID4gcmVzdWx0LiQkbmFtZSAyPi9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZHIgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIFJlYWRlciBlbnRpdGllcyBzdWJzdGl0dXRpb24gcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRlIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub2VudCAtLW5vbmV0IC0tZGVidWcgLS1zdHJlYW0gJCRpID4gJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRlIDI+L2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vZW50IC0tbm9uZXQgLS1kZWJ1ZyAtLXN0cmVhbSAkJGkgPiByZXN1bHQuJCRuYW1lIDI+L2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnJkZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworU0FYdGVzdHMgOiB0ZXN0U0FYJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFNBWDEgY2FsbGJhY2tzIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnNheCBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0U0FYICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnNheCAyPiAvZGV2L251bGwgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0U0FYICQkaSA+IHJlc3VsdC4kJG5hbWUgMj4gL2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnNheCByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAZWNobyAiIyMgU0FYMiBjYWxsYmFja3MgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUuc2F4MiBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0U0FYIC0tc2F4MiAkJGkgPiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5zYXgyIDI+IC9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RTQVggLS1zYXgyICQkaSA+IHJlc3VsdC4kJG5hbWUgMj4gL2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnNheDIgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK1ZhbGlkdGVzdHMgOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFZhbGlkIGRvY3VtZW50cyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1ZDTS8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tdmFsaWQgLS1ub291dCAtLW5vd2FybmluZyAkJGkgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCJgO1wKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgZmkgOyBkb25lIDsgZXhpdCAwKQorCUBlY2hvICIjIyBWYWxpZGl0eSBjaGVja2luZyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1ZDLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L1ZDLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9vdXQgLS12YWxpZCAkJGkgMj4gJChzcmNkaXIpL3Jlc3VsdC9WQy8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9vdXQgLS12YWxpZCAkJGkgMj4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1ZDLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAZWNobyAiIyMgR2VuZXJhbCBkb2N1bWVudHMgdmFsaWQgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC92YWxpZC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC92YWxpZC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXZhbGlkICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvdmFsaWQvJCRuYW1lIDI+JChzcmNkaXIpL3Jlc3VsdC92YWxpZC8kJG5hbWUuZXJyIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXZhbGlkICQkaSA+IHJlc3VsdC4kJG5hbWUgMj5lcnJvci4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC92YWxpZC8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvdmFsaWQvJCRuYW1lLmVyciBlcnJvci4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSBlcnJvci4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworUmVnZXhwdGVzdHM6IHRlc3RSZWdleHAkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgUmVnZXhwIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvcmVnZXhwLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L3JlZ2V4cC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFJlZ2V4cCAtaSAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L3JlZ2V4cC8kJG5hbWU7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RSZWdleHAgLWkgJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvcmVnZXhwLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAZWNobyAiIyMgRm9ybWFsIGV4cHJlc3NzaW9ucyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L2V4cHIvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvZXhwci8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFJlZ2V4cCAtLWV4cHIgLWkgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9leHByLyQkbmFtZTsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFJlZ2V4cCAtLWV4cHIgLWkgJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvZXhwci8kJG5hbWUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK0F1dG9tYXRhdGVzdHM6IHRlc3RBdXRvbWF0YSQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBBdXRvbWF0YSByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L2F1dG9tYXRhLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L2F1dG9tYXRhLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0QXV0b21hdGEgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9hdXRvbWF0YS8kJG5hbWU7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RBdXRvbWF0YSAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9hdXRvbWF0YS8kJG5hbWUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK2RiYTEwMDAwMC54bWw6IGRiZ2VuYXR0ci5wbAorCUBlY2hvICIjIyBnZW5lcmF0aW5nIGRiYTEwMDAwMC54bWwiCisJQCgkKFBFUkwpICQodG9wX3NyY2RpcikvZGJnZW5hdHRyLnBsIDEwMDAwMCA+IGRiYTEwMDAwMC54bWwpCisKK1RpbWluZ3Rlc3RzOiB4bWxsaW50JChFWEVFWFQpIGRiYTEwMDAwMC54bWwKKwlAZWNobyAiIyMgVGltaW5nIHRlc3RzIHRvIHRyeSB0byBkZXRlY3QgcGVyZm9ybWFuY2UiCisJQGVjaG8gIiMjIGFzIHdlbGwgYSBtZW1vcnkgdXNhZ2UgYnJlYWthZ2Ugd2hlbiBzdHJlYW1pbmciCisJQGVjaG8gIiMjIDEvIHVzaW5nIHRoZSBmaWxlIGludGVyZmFjZSIKKwlAZWNobyAiIyMgMi8gdXNpbmcgdGhlIG1lbW9yeSBpbnRlcmZhY2UiCisJQGVjaG8gIiMjIDMvIHJlcGVhdGVkIERPTSBwYXJzaW5nIgorCUBlY2hvICIjIyA0LyByZXBlYXRlZCBET00gdmFsaWRhdGlvbiIKKwktQCgkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXN0cmVhbSAtLXRpbWluZyBkYmExMDAwMDAueG1sOyBcCisJICAgTUVNPWBjYXQgLm1lbWR1bXAgfCBncmVwICJNRU1PUlkgQUxMT0NBVEVEIiB8IGF3ayAneyBwcmludCAkJDd9J2A7XAorCSAgIGlmIFsgIiQkTUVNIiAhPSAiIiBdIDsgdGhlbiBlY2hvIFVzaW5nICQkTUVNIGJ5dGVzIDsgZmkgOyBcCisJICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgIGV4aXQgMCkKKwktQCgkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXN0cmVhbSAtLXRpbWluZyAtLW1lbW9yeSBkYmExMDAwMDAueG1sOyBcCisJICAgTUVNPWBjYXQgLm1lbWR1bXAgfCBncmVwICJNRU1PUlkgQUxMT0NBVEVEIiB8IGF3ayAneyBwcmludCAkJDd9J2A7XAorCSAgIGlmIFsgIiQkTUVNIiAhPSAiIiBdIDsgdGhlbiBlY2hvIFVzaW5nICQkTUVNIGJ5dGVzIDsgZmkgOyBcCisJICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgIGV4aXQgMCkKKwktQCgkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vb3V0IC0tdGltaW5nIC0tcmVwZWF0ICQoc3JjZGlyKS90ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sOyBcCisJICAgTUVNPWBjYXQgLm1lbWR1bXAgfCBncmVwICJNRU1PUlkgQUxMT0NBVEVEIiB8IGF3ayAneyBwcmludCAkJDd9J2A7XAorCSAgIGlmIFsgIiQkTUVNIiAhPSAiIiBdIDsgdGhlbiBlY2hvIFVzaW5nICQkTUVNIGJ5dGVzIDsgZmkgOyBcCisJICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgIGV4aXQgMCkKKworVlRpbWluZ3Rlc3RzOiB4bWxsaW50JChFWEVFWFQpCisJLUAoJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub291dCAtLXRpbWluZyAtLXZhbGlkIC0tcmVwZWF0ICQoc3JjZGlyKS90ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sOyBcCisJICAgTUVNPWBjYXQgLm1lbWR1bXAgfCBncmVwICJNRU1PUlkgQUxMT0NBVEVEIiB8IGF3ayAneyBwcmludCAkJDd9J2A7XAorCSAgIGlmIFsgIiQkTUVNIiAhPSAiIiBdIDsgdGhlbiBlY2hvIFVzaW5nICQkTUVNIGJ5dGVzIDsgZmkgOyBcCisJICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgIGV4aXQgMCkKKworQzE0TnRlc3RzIDogdGVzdEMxNE4kKEVYRUVYVCkKKwlAZWNobyAiIyMgQzE0TiBhbmQgWFBhdGggcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgbSBpbiB3aXRoLWNvbW1lbnRzIHdpdGhvdXQtY29tbWVudHMgMS0xLXdpdGhvdXQtY29tbWVudHMgZXhjLXdpdGhvdXQtY29tbWVudHMgOyBkbyBcCisJICAgIGZvciBpIGluICQoc3JjZGlyKS90ZXN0L2MxNG4vJCRtLyoueG1sIDsgZG8gIFwKKwkJaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJCSAgICBuYW1lPWBiYXNlbmFtZSAkJGkgLnhtbGA7IFwKKwkJICAgIGNtZGxpbmU9IiQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RDMTROIC0tJCRtICQkaSI7IFwKKwkJICAgIGlmIFsgLWYgJChzcmNkaXIpL3Rlc3QvYzE0bi8kJG0vJCRuYW1lLnhwYXRoIF0gOyB0aGVuIFwKKwkJCWNtZGxpbmU9IiQkY21kbGluZSAkKHNyY2RpcikvdGVzdC9jMTRuLyQkbS8kJG5hbWUueHBhdGgiOyBcCisJCQlpZiBbIC1mICQoc3JjZGlyKS90ZXN0L2MxNG4vJCRtLyQkbmFtZS5ucyBdIDsgdGhlbiBcCisJCQkgICAgY21kbGluZT0iJCRjbWRsaW5lICdgY2F0ICQoc3JjZGlyKS90ZXN0L2MxNG4vJCRtLyQkbmFtZS5uc2AnIjsgXAorCQkJZmk7IFwKKwkJICAgIGZpOyBcCisJCSAgICAkJGNtZGxpbmUgPiAkKHNyY2RpcikvdGVzdC9jMTRuL3Rlc3QudG1wOyBcCisJCSAgICBpZiBbICQkPyAtZXEgMCBdOyB0aGVuIFwKKwkJCWRpZmYgICQoc3JjZGlyKS9yZXN1bHQvYzE0bi8kJG0vJCRuYW1lICQoc3JjZGlyKS90ZXN0L2MxNG4vdGVzdC50bXA7IFwKKwkJCWlmIFsgJCQ/IC1uZSAwIF07IHRoZW4gXAorCQkJICAgIGVjaG8gIlRlc3QgJCRtLyQkbmFtZSBmYWlsZWQiOyBcCisJCQkgICAgY2F0ICQoc3JjZGlyKS90ZXN0L2MxNG4vdGVzdC50bXA7IFwKKwkJCWZpOyBcCisJCSAgICBlbHNlIFwKKwkJCWVjaG8gIkMxNE4gZmFpbGVkIjsgXAorCQkgICAgZmk7IFwKKwkJICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkJZmk7IFwKKwkJcm0gLWYgJChzcmNkaXIpL3Rlc3QvYzE0bi90ZXN0LnRtcDsgXAorCSAgICBkb25lOyBcCisJZG9uZSkKKworU2NoZW1hc3Rlc3RzOiB0ZXN0U2NoZW1hcyQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBTY2hlbWFzIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3Qvc2NoZW1hcy8qXyoueHNkIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpIHwgc2VkICdzK18uKisrJ2A7IFwKKwkgIHNubz1gYmFzZW5hbWUgJCRpIHwgc2VkICdzKy4qX1woLipcKS54c2QrXDErJ2A7IFwKKwkgIGZvciBqIGluICQoc3JjZGlyKS90ZXN0L3NjaGVtYXMvIiQkbmFtZSJfKi54bWwgOyBkbyBcCisJICAgICAgaWYgWyAtZiAkJGogXSA7IHRoZW4gXAorCSAgICAgIHhubz1gYmFzZW5hbWUgJCRqIHwgc2VkICdzKy4qX1woLipcKS54bWwrXDErJ2A7IFwKKwkgICAgICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWFzLyIkJG5hbWUiXyIkJHNubyJfIiQkeG5vIiBdOyBcCisJICAgICAgdGhlbiBcCisJCSAgZWNobyBOZXcgdGVzdCBmaWxlICIkJG5hbWUiXyIkJHNubyJfIiQkeG5vIiA7IFwKKwkJICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0U2NoZW1hcyAkJGkgJCRqIFwKKwkJICAgID4gJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWFzLyIkJG5hbWUiXyIkJHNubyJfIiQkeG5vIiBcCisJCSAgICAyPiAkKHNyY2RpcikvcmVzdWx0L3NjaGVtYXMvIiQkbmFtZSJfIiQkc25vIl8iJCR4bm8iLmVycjsgXAorCSAgICAgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZWxzZSBcCisJICAgICAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFNjaGVtYXMgJCRpICQkaiBcCisJCSAgICA+IHJlcy4kJG5hbWUgMj4gZXJyLiQkbmFtZTtcCisJICAgICAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3NjaGVtYXMvIiQkbmFtZSJfIiQkc25vIl8iJCR4bm8iIFwKKwkJICAgICAgIHJlcy4kJG5hbWU7XAorCSAgICAgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvc2NoZW1hcy8iJCRuYW1lIl8iJCRzbm8iXyIkJHhubyIuZXJyIFwKKwkJICAgICAgIGVyci4kJG5hbWU7XAorCQkgIGdyZXAgVW5pbXBsZW1lbnRlZCBlcnIuJCRuYW1lYDsgXAorCSAgICAgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAiJCRuYW1lIl8iJCRzbm8iXyIkJHhubyIgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgICAgICBybSByZXMuJCRuYW1lIGVyci4kJG5hbWUgOyBcCisJICAgICAgIGZpIDsgZmkgO1wKKwkgIGRvbmU7IGRvbmUpCisKK1JlbGF4dGVzdHM6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgUmVsYXgtTkcgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9yZWxheG5nLyoucm5nIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpIHwgc2VkICdzK1wucm5nKysnYDsgXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl92YWxpZCBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgc2NoZW1hcyAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCQoRVhFRVhUKSAtLW5vb3V0IC0tcmVsYXhuZyAkKHNyY2RpcikvdGVzdC9yZWxheG5nL3R1dG9yQS5ybmcgJCRpIFwKKwkJICAgICAgPiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfdmFsaWQgXAorCQkgICAgICAyPiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfZXJyOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50JChFWEVFWFQpIC0tbm9vdXQgLS1yZWxheG5nICQoc3JjZGlyKS90ZXN0L3JlbGF4bmcvdHV0b3JBLnJuZyAkJGkgXAorCSAgICAgID4gcmVzLiQkbmFtZSAyPiBlcnIuJCRuYW1lO1wKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfdmFsaWQgXAorCQkgICByZXMuJCRuYW1lO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl9lcnIgXAorCQkgICBlcnIuJCRuYW1lIHwgZ3JlcCAtdiAiZXJyb3IgZGV0ZWN0ZWQgYXQiO1wKKwkgICAgICBncmVwIFVuaW1wbGVtZW50ZWQgZXJyLiQkbmFtZWA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyBzY2hlbWFzICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzLiQkbmFtZSBlcnIuJCRuYW1lIDsgXAorCSAgZmk7IFwKKwkgIGZvciBqIGluICQoc3JjZGlyKS90ZXN0L3JlbGF4bmcvIiQkbmFtZSJfKi54bWwgOyBkbyBcCisJICAgICAgaWYgWyAtZiAkJGogXSA7IHRoZW4gXAorCSAgICAgIHhubz1gYmFzZW5hbWUgJCRqIHwgc2VkICdzKy4qX1woLipcKS54bWwrXDErJ2A7IFwKKwkgICAgICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9yZWxheG5nLyIkJG5hbWUiXyIkJHhubyIgXTsgXAorCSAgICAgIHRoZW4gXAorCQkgIGVjaG8gTmV3IHRlc3QgZmlsZSAiJCRuYW1lIl8iJCR4bm8iIDsgXAorCQkgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQkKEVYRUVYVCkgLS1ub291dCAtLXJlbGF4bmcgJCRpICQkaiBcCisJCSAgICA+ICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iIFwKKwkJICAgIDI+ICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iLmVycjsgXAorCSAgICAgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZWxzZSBcCisJICAgICAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCQoRVhFRVhUKSAtLW5vb3V0IC0tcmVsYXhuZyAkJGkgJCRqIFwKKwkJICAgID4gcmVzLiQkbmFtZSAyPiBlcnIuJCRuYW1lO1wKKwkgICAgICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iIFwKKwkJICAgICAgIHJlcy4kJG5hbWU7XAorCSAgICAgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iLmVyciBcCisJCSAgICAgICBlcnIuJCRuYW1lIHwgZ3JlcCAtdiAiZXJyb3IgZGV0ZWN0ZWQgYXQiO1wKKwkJICBncmVwIFVuaW1wbGVtZW50ZWQgZXJyLiQkbmFtZWA7IFwKKwkJICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAiJCRuYW1lIl8iJCR4bm8iIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICAgICAgcm0gcmVzLiQkbmFtZSBlcnIuJCRuYW1lIDsgXAorCSAgICAgICBmaSA7IGZpIDsgXAorCSAgZG9uZTsgZG9uZSkKKwlAZWNobyAiIyMgUmVsYXgtTkcgc3RyZWFtaW5nIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvcmVsYXhuZy8qLnJuZyA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSB8IHNlZCAncytcLnJuZysrJ2A7IFwKKwkgIGZvciBqIGluICQoc3JjZGlyKS90ZXN0L3JlbGF4bmcvIiQkbmFtZSJfKi54bWwgOyBkbyBcCisJICAgICAgaWYgWyAtZiAkJGogXSA7IHRoZW4gXAorCSAgICAgIHhubz1gYmFzZW5hbWUgJCRqIHwgc2VkICdzKy4qX1woLipcKS54bWwrXDErJ2A7IFwKKwkgICAgICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9yZWxheG5nLyIkJG5hbWUiXyIkJHhubyIgXTsgXAorCSAgICAgIHRoZW4gXAorCQkgIGVjaG8gTmV3IHRlc3QgZmlsZSAiJCRuYW1lIl8iJCR4bm8iIDsgXAorCQkgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQkKEVYRUVYVCkgLS1ub291dCAtLXJlbGF4bmcgJCRpICQkaiBcCisJCSAgICA+ICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iIFwKKwkJICAgIDI+ICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iLmVycjsgXAorCSAgICAgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZWxzZSBcCisJICAgICAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCQoRVhFRVhUKSAtLW5vb3V0IC0tc3RyZWFtIC0tcmVsYXhuZyAkJGkgJCRqIFwKKwkJICAgID4gcmVzLiQkbmFtZSAyPiBlcnIuJCRuYW1lO1wKKwkgICAgICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iIHJlcy4kJG5hbWU7XAorCQkgIGlmIFsgIiQkbmFtZSIgIT0gInR1dG9yMTBfMSIgLWEgIiQkbmFtZSIgIT0gInR1dG9yMTBfMiIgLWEgIiQkbmFtZSIgIT0gInR1dG9yM18yIiAtYSAiJCRuYW1lIiAhPSAiMzA3Mzc3IiAtYSAiJCRuYW1lIiAhPSAidHV0b3I4XzIiIF0gOyB0aGVuIFwKKwkJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIi5lcnIgXAorCQkJICAgZXJyLiQkbmFtZSB8IGdyZXAgLXYgImVycm9yIGRldGVjdGVkIGF0IjtcCisJCSAgZmkgOyBncmVwIFVuaW1wbGVtZW50ZWQgZXJyLiQkbmFtZWA7IFwKKwkgICAgICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gIiQkbmFtZSJfIiQkeG5vIiByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgICAgIHJtIHJlcy4kJG5hbWUgZXJyLiQkbmFtZSA7IFwKKwkgICAgICAgZmkgOyBmaSA7IFwKKwkgIGRvbmU7IGRvbmUpCisKK1NjaGVtYXRyb250ZXN0czogeG1sbGludCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBTY2hlbWF0cm9uIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3Qvc2NoZW1hdHJvbi8qLnNjdCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSB8IHNlZCAncytcLnNjdCsrJ2A7IFwKKwkgIGZvciBqIGluICQoc3JjZGlyKS90ZXN0L3NjaGVtYXRyb24vIiQkbmFtZSJfKi54bWwgOyBkbyBcCisJICAgICAgaWYgWyAtZiAkJGogXSA7IHRoZW4gXAorCSAgICAgIHhubz1gYmFzZW5hbWUgJCRqIHwgc2VkICdzKy4qX1woLipcKS54bWwrXDErJ2A7IFwKKwkgICAgICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWF0cm9uLyIkJG5hbWUiXyIkJHhubyIgXTsgXAorCSAgICAgIHRoZW4gXAorCQkgIGVjaG8gTmV3IHRlc3QgZmlsZSAiJCRuYW1lIl8iJCR4bm8iIDsgXAorCQkgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQkKEVYRUVYVCkgLS1zY2hlbWF0cm9uICQkaSAkJGogXAorCQkgICAgPiAkKHNyY2RpcikvcmVzdWx0L3NjaGVtYXRyb24vIiQkbmFtZSJfIiQkeG5vIiBcCisJCSAgICAyPiAkKHNyY2RpcikvcmVzdWx0L3NjaGVtYXRyb24vIiQkbmFtZSJfIiQkeG5vIi5lcnI7IFwKKwkgICAgICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGVsc2UgXAorCSAgICAgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQkKEVYRUVYVCkgLS1zY2hlbWF0cm9uICQkaSAkJGogXAorCQkgICAgPiByZXMuJCRuYW1lIDI+IGVyci4kJG5hbWU7XAorCSAgICAgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWF0cm9uLyIkJG5hbWUiXyIkJHhubyIgXAorCQkgICAgICAgcmVzLiQkbmFtZTtcCisJICAgICAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWF0cm9uLyIkJG5hbWUiXyIkJHhubyIuZXJyIFwKKwkJICAgICAgIGVyci4kJG5hbWUgfCBncmVwIC12ICJlcnJvciBkZXRlY3RlZCBhdCI7XAorCQkgIGdyZXAgVW5pbXBsZW1lbnRlZCBlcnIuJCRuYW1lYDsgXAorCQkgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICIkJG5hbWUiXyIkJHhubyIgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgICAgICBybSByZXMuJCRuYW1lIGVyci4kJG5hbWUgOyBcCisJICAgICAgIGZpIDsgZmkgOyBcCisJICBkb25lOyBkb25lKQorCitSZWxheE5HUHl0aG9uVGVzdHM6CisJQChpZiBbIC14ICQoUFlUSE9OKSBdIDsgdGhlbiBcCisJICAgIFBZVEhPTlBBVEg9JCh0b3BfYnVpbGRkaXIpL3B5dGhvbjokKHRvcF9idWlsZGRpcikvcHl0aG9uLy5saWJzOiQkUFlUSE9OUEFUSCA7IFwKKwkgICAgZXhwb3J0IFBZVEhPTlBBVEg7IFwKKwkgICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvLmxpYnM6JCRMRF9MSUJSQVJZX1BBVEgiIDsgXAorCSAgICBleHBvcnQgTERfTElCUkFSWV9QQVRIOyBcCisJICAgIGVjaG8gIiMjIFJlbGF4LU5HIFB5dGhvbiBiYXNlZCB0ZXN0IHN1aXRlIDEiIDsgXAorCSAgICAkKENIRUNLRVIpICQoUFlUSE9OKSAkKHNyY2RpcikvY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlLnB5IDsgXAorCSAgICBlY2hvICIjIyBSZWxheC1ORyBQeXRob24gYmFzZWQgdGVzdCBzdWl0ZSAyIiA7IFwKKwkgICAgJChDSEVDS0VSKSAkKFBZVEhPTikgJChzcmNkaXIpL2NoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZTIucHkgOyBcCisJICBmaSkKKworU2NoZW1hc1B5dGhvblRlc3RzOgorCUAoaWYgWyAteCAkKFBZVEhPTikgXSA7IHRoZW4gXAorCSAgICBQWVRIT05QQVRIPSQodG9wX2J1aWxkZGlyKS9weXRob246JCh0b3BfYnVpbGRkaXIpL3B5dGhvbi8ubGliczokJFBZVEhPTlBBVEg7IFwKKwkgICAgZXhwb3J0IFBZVEhPTlBBVEg7IFwKKwkgICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvLmxpYnM6JCRMRF9MSUJSQVJZX1BBVEgiIDsgXAorCSAgICBleHBvcnQgTERfTElCUkFSWV9QQVRIOyBcCisJICAgIGVjaG8gIiMjIFhNTCBTY2hlbWFzIGRhdGF0eXBlcyBQeXRob24gYmFzZWQgdGVzdCBzdWl0ZSIgOyBcCisJICAgIGVjaG8gIiMjIEl0IGlzIG5vcm1hbCB0byBzZWUgMTEgZXJyb3JzIHJlcG9ydGVkIiA7IFwKKwkgICAgJChDSEVDS0VSKSAkKFBZVEhPTikgJChzcmNkaXIpL2NoZWNrLXhzZGRhdGEtdGVzdC1zdWl0ZS5weSA7IFwKKwkgIGZpKQorCUAoaWYgWyAteCAkKFBZVEhPTikgLWEgLWQgeHN0YyBdIDsgdGhlbiBjZCB4c3RjIDsgJChNQUtFKSBDSEVDS0VSPSIkKENIRUNLRVIpIiBNQUtFRkxBR1MrPS0tc2lsZW50IHB5dGVzdHMgOyBmaSkKKworUGF0dGVybnRlc3RzOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFBhdHRlcm4gcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9wYXR0ZXJuLyoucGF0IDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpIC5wYXRgOyBcCisJICBpZiBbIC1mICQoc3JjZGlyKS90ZXN0L3BhdHRlcm4vJCRuYW1lLnhtbCBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9wYXR0ZXJuLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgcm0gLWYgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgIGZvciBwYXQgaW4gYGNhdCAkJGlgIDsgZG8gXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS13YWxrZXIgLS1wYXR0ZXJuICQkcGF0ICQoc3JjZGlyKS90ZXN0L3BhdHRlcm4vJCRuYW1lLnhtbCA+PiAkKHNyY2RpcikvcmVzdWx0L3BhdHRlcm4vJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkb25lIDtcCisJICBlbHNlIFwKKwkgICAgICBybSAtZiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGxzdD1gY2F0ICQkaWAgOyBcCisJICAgICAgbG9nPWBmb3IgcGF0IGluICQkbHN0IDsgZG8gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXdhbGtlciAtLXBhdHRlcm4gJCRwYXQgJChzcmNkaXIpL3Rlc3QvcGF0dGVybi8kJG5hbWUueG1sIDI+JjEgPj4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZG9uZSA7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9wYXR0ZXJuLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSA7KQorCitNb2R1bGVUZXN0czogdGVzdE1vZHVsZSQoRVhFRVhUKSB0ZXN0ZHNvLmxhCisJQGVjaG8gIiMjIE1vZHVsZSB0ZXN0cyIKKwlAKC4vdGVzdE1vZHVsZSQoRVhFRVhUKSkKKworY2xlYW51cDoKKwktQChmaW5kIC4gLW5hbWUgLlwjXCogLWV4ZWMgcm0ge30gXDspCisJLUAoZmluZCAuIC1uYW1lIFwqLmdjZGEgLW8gKi5nY25vIC1leGVjIHJtIHt9IFw7KQorCS1AKGZpbmQgLiAtbmFtZSBcKi5vcmlnIC1vIC1uYW1lIFwqLnJlaiAtbyAtbmFtZSBcKi5vbGQgLWV4ZWMgcm0ge30gXDspCisKK2Rpc3QtaG9vazogY2xlYW51cCBsaWJ4bWwyLnNwZWMKKwktY3AgbGlieG1sMi5zcGVjICQoZGlzdGRpcikKKwkoY2QgJChzcmNkaXIpIDsgdGFyIC1jZiAtIC0tZXhjbHVkZSBDVlMgLS1leGNsdWRlIC5zdm4gd2luMzIgbWFjb3Mgdm1zIFZ4V29ya3MgYmFrZWZpbGUgdGVzdCByZXN1bHQpIHwgKGNkICQoZGlzdGRpcik7IHRhciB4ZiAtKQorCitkaXN0LXNvdXJjZTogZGlzdGRpcgorCSQoQU1UQVIpIC1jaG9mIC0gLS1leGNsdWRlIFRlc3RzIC0tZXhjbHVkZSB0ZXN0IC0tZXhjbHVkZSByZXN1bHQgJChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+YGVjaG8gIiQoZGlzdGRpcikiIHwgc2VkICJzK2xpYnhtbDIrbGlieG1sMi1zb3VyY2VzKyJgLnRhci5negorCitkaXN0LXRlc3Q6IGRpc3RkaXIKKwkobWtkaXIgLXAgJChkaXN0ZGlyKSkKKwkoY2QgJChzcmNkaXIpIDsgdGFyIC1jZiAtIC0tZXhjbHVkZSBDVlMgLS1leGNsdWRlIC5zdm4geHN0Yy9UZXN0cykgfCAoY2QgJChkaXN0ZGlyKTsgdGFyIHhmIC0pCisJdGFyIC1jZiAtICQoZGlzdGRpcikvdGVzdCAkKGRpc3RkaXIpL3Jlc3VsdCAkKGRpc3RkaXIpL3hzdGMvVGVzdHMgICQoZGlzdGRpcikvTWFrZWZpbGUudGVzdHMgJChkaXN0ZGlyKS9SRUFETUUgJChkaXN0ZGlyKS9SRUFETUUudGVzdHMgJChkaXN0ZGlyKS9BVVRIT1JTICQoZGlzdGRpcikvdGVzdGFwaS5jICQoZGlzdGRpcikvcnVudGVzdC5jICQoZGlzdGRpcikvcnVuc3VpdGUuYyB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+YGVjaG8gIiQoZGlzdGRpcikiIHwgc2VkICJzK2xpYnhtbDIrbGlieG1sMi10ZXN0cysiYC50YXIuZ3oKKwlAKHJtIC1yZiAkKGRpc3RkaXIpL3hzdGMvVGVzdCkKKworY2xlYW50YXI6CisJQChybSAtZiBsaWJ4bWwqLnRhci5neiBDT1BZSU5HLkxJQikKKworcnBtOiBjbGVhbnVwIGNsZWFudGFyCisJQCh1bnNldCBDRFBBVEggOyAkKE1BS0UpIGRpc3Qtc291cmNlIGRpc3QgJiYgcnBtYnVpbGQgLXRhICQoZGlzdGRpcikudGFyLmd6KQorCisjIyBXZSBjcmVhdGUgeG1sMkNvbmYuc2ggaGVyZSBhbmQgbm90IGZyb20gY29uZmlndXJlIGJlY2F1c2Ugd2Ugd2FudAorIyMgdG8gZ2V0IHRoZSBwYXRocyBleHBhbmRlZCBjb3JyZWN0bHkuICBNYWNyb3MgbGlrZSBzcmNkaXIgYXJlIGdpdmVuCisjIyB0aGUgdmFsdWUgTk9ORSBpbiBjb25maWd1cmUgaWYgdGhlIHVzZXIgZG9lc24ndCBzcGVjaWZ5IHRoZW0gKHRoaXMKKyMjIGlzIGFuIGF1dG9jb25mIGZlYXR1cmUsIG5vdCBhIGJ1ZykuCisKK3htbDJDb25mLnNoOiB4bWwyQ29uZi5zaC5pbiBNYWtlZmlsZQorIyMgVXNlIHNlZCBhbmQgdGhlbiBtdiB0byBhdm9pZCBwcm9ibGVtcyBpZiB0aGUgdXNlciBpbnRlcnJ1cHRzLgorCXNlZCAtZSAncz9cQFhNTF9MSUJESVJcQD8kKFhNTF9MSUJESVIpP2cnIFwKKwkgICAgLWUgJ3M/XEBYTUxfSU5DTFVERURJUlxAPyQoWE1MX0lOQ0xVREVESVIpP2cnIFwKKwkgICAgLWUgJ3M/XEBWRVJTSU9OXEA/JChWRVJTSU9OKT9nJyBcCisJICAgIC1lICdzP1xAWE1MX0xJQlNcQD8kKFhNTF9MSUJTKT9nJyBcCisJICAgICAgIDwgJChzcmNkaXIpL3htbDJDb25mLnNoLmluID4geG1sMkNvbmYudG1wIFwKKwkmJiBtdiB4bWwyQ29uZi50bXAgeG1sMkNvbmYuc2gKKworQ0xFQU5GSUxFUz14bWwyQ29uZi5zaCAqLmdjZGEgKi5nY25vCisKK2NvbmZleGVjZGlyPSQobGliZGlyKQorY29uZmV4ZWNfREFUQSA9IHhtbDJDb25mLnNoCitDVlNfRVhUUkFfRElTVD0KK0VYVFJBX0RJU1QgPSB4bWwyLWNvbmZpZy5pbiB4bWwyQ29uZi5zaC5pbiBsaWJ4bWwuc3BlYy5pbiBsaWJ4bWwyLnNwZWMgXAorICAgICAgICAgICAgIGxpYnhtbC5tNCBDb3B5cmlnaHQgY2hlY2steG1sLXRlc3Qtc3VpdGUucHkgZ2VudGVzdC5weSBcCisJICAgICBjaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUucHkgY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlMi5weSBcCisJICAgICBjaGVjay14c2RkYXRhLXRlc3Qtc3VpdGUucHkgY2hlY2steGluY2x1ZGUtdGVzdC1zdWl0ZS5weSBcCisgICAgICAgICAgICAgZXhhbXBsZS9NYWtlZmlsZS5hbSBleGFtcGxlL2dqb2JyZWFkLmMgZXhhbXBsZS9nam9icy54bWwgXAorCSAgICAgJChtYW5fTUFOUykgbGlieG1sLTIuMC5wYy5pbiBsaWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjLmluIFwKKwkgICAgIHRyaW9uYW4uYyB0cmlvbmFuLmggdHJpb3N0ci5jIHRyaW9zdHIuaCB0cmlvLmMgdHJpby5oIFwKKwkgICAgIHRyaW9wLmggdHJpb2RlZi5oIGxpYnhtbC5oIGVsZmdjY2hhY2suaCBcCisJICAgICB0ZXN0VGhyZWFkc1dpbjMyLmMgZ2VuVW5pY29kZS5weSBUT0RPX1NDSEVNQVMgXAorCSAgICAgZGJnZW4ucGwgZGJnZW5hdHRyLnBsIHJlZ3Jlc3Npb25zLnB5IHJlZ3Jlc3Npb25zLnhtbCBcCisJICAgICBSRUFETUUudGVzdHMgTWFrZWZpbGUudGVzdHMgbGlieG1sMi5zeW1zIFwKKwkgICAgICQoQ1ZTX0VYVFJBX0RJU1QpCisKKworcGtnY29uZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZworcGtnY29uZmlnX0RBVEEgPSBsaWJ4bWwtMi4wLnBjCisKKyMKKyMgSW5zdGFsbCB0aGUgdGVzdHMgcHJvZ3JhbSBzb3VyY2VzIGFzIGV4YW1wbGVzIAorIworQkFTRV9ESVI9JChkYXRhZGlyKS9kb2MKK0RPQ19NT0RVTEU9bGlieG1sMi0kKFZFUlNJT04pCitFWEFNUExFU19ESVI9JChCQVNFX0RJUikvJChET0NfTU9EVUxFKS9leGFtcGxlcworCitpbnN0YWxsLWRhdGEtbG9jYWw6IAorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoQkFTRV9ESVIpLyQoRE9DX01PRFVMRSkKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL0NvcHlyaWdodCAkKERFU1RESVIpJChCQVNFX0RJUikvJChET0NfTU9EVUxFKQorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoRVhBTVBMRVNfRElSKQorCS1ASU5TVEFMTEAgLW0gMDY0NCAkKHNyY2RpcikveG1sbGludC5jICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3Rlc3RTQVguYyAkKERFU1RESVIpJChFWEFNUExFU19ESVIpCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS90ZXN0SFRNTC5jICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3Rlc3RYUGF0aC5jICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwordW5pbnN0YWxsLWxvY2FsOgorCXJtIC1mICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikvdGVzdFhQYXRoLmMKKwlybSAtZiAkKERFU1RESVIpJChFWEFNUExFU19ESVIpL3Rlc3RIVE1MLmMKKwlybSAtZiAkKERFU1RESVIpJChFWEFNUExFU19ESVIpL3Rlc3RTQVguYworCXJtIC1mICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikveG1sbGludC5jCisJcm0gLXJmICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwlybSAtZiAkKERFU1RESVIpJChCQVNFX0RJUikvJChET0NfTU9EVUxFKS9Db3B5cmlnaHQKKwlybSAtcmYgJChERVNURElSKSQoQkFTRV9ESVIpLyQoRE9DX01PRFVMRSkKKwordHN0OiB0c3QuYworCSQoQ0MpICQoQ0ZMQUdTKSAtSWluY2x1ZGUgLW8gdHN0IHRzdC5jIC5saWJzL2xpYnhtbDIuYSAtbHB0aHJlYWQgLWxtIC1segorCitzcGFyc2U6IGNsZWFuCisJJChNQUtFKSBDQz1jZ2NjCisKKyMKKyMgQ292ZXJhZ2Ugc3VwcG9ydCwgbGFyZ2VseSBib3Jyb3dlZCBmcm9tIGxpYnZpcnQKKyMgQm90aCBiaW5hcmllcyBjb21lcyBmcm9tIHRoZSBsY292IHBhY2thZ2UgaW4gRmVkb3JhCisjCitMQ09WID0gL3Vzci9iaW4vbGNvdgorR0VOSFRNTCA9IC91c3IvYmluL2dlbmh0bWwKKworY292OiBjbGVhbi1jb3YKKwlpZiBbICJgZWNobyAkKExERkxBR1MpIHwgZ3JlcCBjb3ZlcmFnZWAiID0gIiIgXSA7IHRoZW4gXAorCSAgICBlY2hvIG5vdCBjb25maWd1cmVkIHdpdGggY292ZXJhZ2U7IGV4aXQgMSA7IGZpCisJaWYgWyAhIC14ICQoTENPVikgLW8gISAteCAkKEdFTkhUTUwpIF0gOyB0aGVuIFwKKwkgICAgZWNobyBOZWVkICQoTENPVikgYW5kICQoR0VOSFRNTCkgZXhjZWN1dGFibGVzOyBleGl0IDEgOyBmaQorCS1AKCQoTUFLRSkgY2hlY2spCisJLUAoLi9ydW5zdWl0ZSQoRVhFRVhUKSkKKwlta2RpciAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UKKwkkKExDT1YpIC1jIC1vICQodG9wX2J1aWxkZGlyKS9jb3ZlcmFnZS9saWJ4bWwyLmluZm8udG1wIC1kICQodG9wX3NyY2RpcikKKwkkKExDT1YpIC1yICQodG9wX2J1aWxkZGlyKS9jb3ZlcmFnZS9saWJ4bWwyLmluZm8udG1wIC1vICQodG9wX2J1aWxkZGlyKS9jb3ZlcmFnZS9saWJ4bWwyLmluZm8gKnVzcioKKwlybSAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UvbGlieG1sMi5pbmZvLnRtcAorCSQoR0VOSFRNTCkgLXMgLXQgImxpYnhtbDIiIC1vICQodG9wX2J1aWxkZGlyKS9jb3ZlcmFnZSAtLWxlZ2VuZCAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UvbGlieG1sMi5pbmZvCisJZWNobyAiQ292ZXJhZ2UgcmVwb3J0IGlzIGluICQodG9wX2J1aWxkZGlyKS9jb3ZlcmFnZS9pbmRleC5odG1sIgorCitjbGVhbi1jb3Y6CisJcm0gLXJmICQodG9wX2J1aWxkZGlyKS9jb3ZlcmFnZQorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L01ha2VmaWxlLmluIGIvbGlieG1sMi0yLjcuNy9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjFiODRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDI3NDUgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKKworCisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK25vaW5zdF9QUk9HUkFNUyA9IHRlc3RTY2hlbWFzJChFWEVFWFQpIHRlc3RSZWxheCQoRVhFRVhUKSBcCisJdGVzdFNBWCQoRVhFRVhUKSB0ZXN0SFRNTCQoRVhFRVhUKSB0ZXN0WFBhdGgkKEVYRUVYVCkgXAorCXRlc3RVUkkkKEVYRUVYVCkgdGVzdFRocmVhZHMkKEVYRUVYVCkgdGVzdEMxNE4kKEVYRUVYVCkgXAorCXRlc3RBdXRvbWF0YSQoRVhFRVhUKSB0ZXN0UmVnZXhwJChFWEVFWFQpIHRlc3RSZWFkZXIkKEVYRUVYVCkgXAorCXRlc3RhcGkkKEVYRUVYVCkgdGVzdE1vZHVsZSQoRVhFRVhUKSBydW50ZXN0JChFWEVFWFQpIFwKKwlydW5zdWl0ZSQoRVhFRVhUKSB0ZXN0Y2hhciQoRVhFRVhUKSB0ZXN0ZGljdCQoRVhFRVhUKSBcCisJcnVueG1sY29uZiQoRVhFRVhUKSB0ZXN0cmVjdXJzZSQoRVhFRVhUKQorYmluX1BST0dSQU1TID0geG1sbGludCQoRVhFRVhUKSB4bWxjYXRhbG9nJChFWEVFWFQpCitzdWJkaXIgPSAuCitESVNUX0NPTU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2NvbmZpZy5oLmluIFwKKwkkKHNyY2RpcikvbGlieG1sLTIuMC11bmluc3RhbGxlZC5wYy5pbiBcCisJJChzcmNkaXIpL2xpYnhtbC0yLjAucGMuaW4gJChzcmNkaXIpL2xpYnhtbC5zcGVjLmluIFwKKwkkKHNyY2RpcikveG1sMi1jb25maWcuaW4gJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9SUyBcCisJQ09QWUlORyBDaGFuZ2VMb2cgSU5TVEFMTCBORVdTIFRPRE8gYWNjb25maWcuaCBjb25maWcuZ3Vlc3MgXAorCWNvbmZpZy5zdWIgZGVwY29tcCBpbnN0YWxsLXNoIGx0bWFpbi5zaCBtaXNzaW5nIG1raW5zdGFsbGRpcnMKK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9hY2luY2x1ZGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuaW4KK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMgPSBjb25maWcuc3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcubG9nIFwKKyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5zdGF0dXMubGluZW5vCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9IGxpYnhtbDIuc3BlYyB4bWwyLWNvbmZpZyBsaWJ4bWwtMi4wLnBjIFwKKwlsaWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjCitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CithbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisgICAgKikgZj0kJHA7OyBcCisgIGVzYWM7CithbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CithbV9faW5zdGFsbF9tYXggPSA0MAorYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorYW1fX25vYmFzZV9zdHJpcCA9IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCithbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCisgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworYW1fX2Jhc2VfbGlzdCA9IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChiaW5kaXIpIiBcCisJIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSIgXAorCSIkKERFU1RESVIpJChtYW4zZGlyKSIgIiQoREVTVERJUikkKGNvbmZleGVjZGlyKSIgXAorCSIkKERFU1RESVIpJChtNGRhdGFkaXIpIiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIKK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpICQobm9pbnN0X0xUTElCUkFSSUVTKQorYW1fX0RFUEVOREVOQ0lFU18xID0KK2xpYnhtbDJfbGFfREVQRU5ERU5DSUVTID0gJChhbV9fREVQRU5ERU5DSUVTXzEpCithbV9fbGlieG1sMl9sYV9TT1VSQ0VTX0RJU1QgPSBTQVguYyBlbnRpdGllcy5jIGVuY29kaW5nLmMgZXJyb3IuYyBcCisJcGFyc2VySW50ZXJuYWxzLmMgcGFyc2VyLmMgdHJlZS5jIGhhc2guYyBsaXN0LmMgeG1sSU8uYyBcCisJeG1sbWVtb3J5LmMgdXJpLmMgdmFsaWQuYyB4bGluay5jIEhUTUxwYXJzZXIuYyBIVE1MdHJlZS5jIFwKKwlkZWJ1Z1hNTC5jIHhwYXRoLmMgeHBvaW50ZXIuYyB4aW5jbHVkZS5jIG5hbm9odHRwLmMgbmFub2Z0cC5jIFwKKwlET0NCcGFyc2VyLmMgY2F0YWxvZy5jIGdsb2JhbHMuYyB0aHJlYWRzLmMgYzE0bi5jIHhtbHN0cmluZy5jIFwKKwl4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMgeG1sdW5pY29kZS5jIFwKKwl4bWxyZWFkZXIuYyByZWxheG5nLmMgZGljdC5jIFNBWDIuYyB4bWx3cml0ZXIuYyBsZWdhY3kuYyBcCisJY2h2YWxpZC5jIHBhdHRlcm4uYyB4bWxzYXZlLmMgeG1sbW9kdWxlLmMgc2NoZW1hdHJvbi5jIFwKKwl0cmlvc3RyLmMgdHJpby5jCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VAYW1fbGlieG1sMl9sYV9PQkpFQ1RTID0gU0FYLmxvIGVudGl0aWVzLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJZW5jb2RpbmcubG8gZXJyb3IubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX0ZBTFNFQAlwYXJzZXJJbnRlcm5hbHMubG8gcGFyc2VyLmxvIHRyZWUubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX0ZBTFNFQAloYXNoLmxvIGxpc3QubG8geG1sSU8ubG8geG1sbWVtb3J5LmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJdXJpLmxvIHZhbGlkLmxvIHhsaW5rLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJSFRNTHBhcnNlci5sbyBIVE1MdHJlZS5sbyBkZWJ1Z1hNTC5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VACXhwYXRoLmxvIHhwb2ludGVyLmxvIHhpbmNsdWRlLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJbmFub2h0dHAubG8gbmFub2Z0cC5sbyBET0NCcGFyc2VyLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJY2F0YWxvZy5sbyBnbG9iYWxzLmxvIHRocmVhZHMubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX0ZBTFNFQAljMTRuLmxvIHhtbHN0cmluZy5sbyB4bWxyZWdleHAubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX0ZBTFNFQAl4bWxzY2hlbWFzLmxvIHhtbHNjaGVtYXN0eXBlcy5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VACXhtbHVuaWNvZGUubG8geG1scmVhZGVyLmxvIHJlbGF4bmcubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX0ZBTFNFQAlkaWN0LmxvIFNBWDIubG8geG1sd3JpdGVyLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJbGVnYWN5LmxvIGNodmFsaWQubG8gcGF0dGVybi5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VACXhtbHNhdmUubG8geG1sbW9kdWxlLmxvIHNjaGVtYXRyb24ubG8KK0BXSVRIX1RSSU9fU09VUkNFU19UUlVFQGFtX2xpYnhtbDJfbGFfT0JKRUNUUyA9IFNBWC5sbyBlbnRpdGllcy5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJZW5jb2RpbmcubG8gZXJyb3IubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACXBhcnNlckludGVybmFscy5sbyBwYXJzZXIubG8gdHJlZS5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJaGFzaC5sbyBsaXN0LmxvIHhtbElPLmxvIHhtbG1lbW9yeS5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJdXJpLmxvIHZhbGlkLmxvIHhsaW5rLmxvIEhUTUxwYXJzZXIubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACUhUTUx0cmVlLmxvIGRlYnVnWE1MLmxvIHhwYXRoLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19UUlVFQAl4cG9pbnRlci5sbyB4aW5jbHVkZS5sbyBuYW5vaHR0cC5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJbmFub2Z0cC5sbyBET0NCcGFyc2VyLmxvIGNhdGFsb2cubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACWdsb2JhbHMubG8gdGhyZWFkcy5sbyBjMTRuLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19UUlVFQAl4bWxzdHJpbmcubG8geG1scmVnZXhwLmxvIFwKK0BXSVRIX1RSSU9fU09VUkNFU19UUlVFQAl4bWxzY2hlbWFzLmxvIHhtbHNjaGVtYXN0eXBlcy5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJeG1sdW5pY29kZS5sbyB0cmlvc3RyLmxvIHRyaW8ubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACXhtbHJlYWRlci5sbyByZWxheG5nLmxvIGRpY3QubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACVNBWDIubG8geG1sd3JpdGVyLmxvIGxlZ2FjeS5sbyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJY2h2YWxpZC5sbyBwYXR0ZXJuLmxvIHhtbHNhdmUubG8gXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACXhtbG1vZHVsZS5sbyBzY2hlbWF0cm9uLmxvCitsaWJ4bWwyX2xhX09CSkVDVFMgPSAkKGFtX2xpYnhtbDJfbGFfT0JKRUNUUykKK2xpYnhtbDJfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKGxpYnhtbDJfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAordGVzdGRzb19sYV9MSUJBREQgPQorYW1fdGVzdGRzb19sYV9PQkpFQ1RTID0gdGVzdGRzby5sbwordGVzdGRzb19sYV9PQkpFQ1RTID0gJChhbV90ZXN0ZHNvX2xhX09CSkVDVFMpCit0ZXN0ZHNvX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJCh0ZXN0ZHNvX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK1BST0dSQU1TID0gJChiaW5fUFJPR1JBTVMpICQobm9pbnN0X1BST0dSQU1TKQorYW1fcnVuc3VpdGVfT0JKRUNUUyA9IHJ1bnN1aXRlLiQoT0JKRVhUKQorcnVuc3VpdGVfT0JKRUNUUyA9ICQoYW1fcnVuc3VpdGVfT0JKRUNUUykKK2FtX19ERVBFTkRFTkNJRVNfMiA9ICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhICQoYW1fX0RFUEVOREVOQ0lFU18xKQorcnVuc3VpdGVfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQocnVuc3VpdGVfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK2FtX3J1bnRlc3RfT0JKRUNUUyA9IHJ1bnRlc3QuJChPQkpFWFQpCitydW50ZXN0X09CSkVDVFMgPSAkKGFtX3J1bnRlc3RfT0JKRUNUUykKK3J1bnRlc3RfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQocnVudGVzdF9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1fcnVueG1sY29uZl9PQkpFQ1RTID0gcnVueG1sY29uZi4kKE9CSkVYVCkKK3J1bnhtbGNvbmZfT0JKRUNUUyA9ICQoYW1fcnVueG1sY29uZl9PQkpFQ1RTKQorcnVueG1sY29uZl9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQocnVueG1sY29uZl9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV90ZXN0QXV0b21hdGFfT0JKRUNUUyA9IHRlc3RBdXRvbWF0YS4kKE9CSkVYVCkKK3Rlc3RBdXRvbWF0YV9PQkpFQ1RTID0gJChhbV90ZXN0QXV0b21hdGFfT0JKRUNUUykKK3Rlc3RBdXRvbWF0YV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQodGVzdEF1dG9tYXRhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2FtX3Rlc3RDMTROX09CSkVDVFMgPSB0ZXN0QzE0Ti4kKE9CSkVYVCkKK3Rlc3RDMTROX09CSkVDVFMgPSAkKGFtX3Rlc3RDMTROX09CSkVDVFMpCit0ZXN0QzE0Tl9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJCh0ZXN0QzE0Tl9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1fdGVzdEhUTUxfT0JKRUNUUyA9IHRlc3RIVE1MLiQoT0JKRVhUKQordGVzdEhUTUxfT0JKRUNUUyA9ICQoYW1fdGVzdEhUTUxfT0JKRUNUUykKK3Rlc3RIVE1MX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKHRlc3RIVE1MX0xERkxBR1MpIFwKKwkkKExERkxBR1MpIC1vICRACithbV90ZXN0TW9kdWxlX09CSkVDVFMgPSB0ZXN0TW9kdWxlLiQoT0JKRVhUKQordGVzdE1vZHVsZV9PQkpFQ1RTID0gJChhbV90ZXN0TW9kdWxlX09CSkVDVFMpCit0ZXN0TW9kdWxlX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJCh0ZXN0TW9kdWxlX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2FtX3Rlc3RSZWFkZXJfT0JKRUNUUyA9IHRlc3RSZWFkZXIuJChPQkpFWFQpCit0ZXN0UmVhZGVyX09CSkVDVFMgPSAkKGFtX3Rlc3RSZWFkZXJfT0JKRUNUUykKK3Rlc3RSZWFkZXJfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpIFwKKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKwkkKHRlc3RSZWFkZXJfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorYW1fdGVzdFJlZ2V4cF9PQkpFQ1RTID0gdGVzdFJlZ2V4cC4kKE9CSkVYVCkKK3Rlc3RSZWdleHBfT0JKRUNUUyA9ICQoYW1fdGVzdFJlZ2V4cF9PQkpFQ1RTKQordGVzdFJlZ2V4cF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQodGVzdFJlZ2V4cF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV90ZXN0UmVsYXhfT0JKRUNUUyA9IHRlc3RSZWxheC4kKE9CSkVYVCkKK3Rlc3RSZWxheF9PQkpFQ1RTID0gJChhbV90ZXN0UmVsYXhfT0JKRUNUUykKK3Rlc3RSZWxheF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQodGVzdFJlbGF4X0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2FtX3Rlc3RTQVhfT0JKRUNUUyA9IHRlc3RTQVguJChPQkpFWFQpCit0ZXN0U0FYX09CSkVDVFMgPSAkKGFtX3Rlc3RTQVhfT0JKRUNUUykKK3Rlc3RTQVhfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQodGVzdFNBWF9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1fdGVzdFNjaGVtYXNfT0JKRUNUUyA9IHRlc3RTY2hlbWFzLiQoT0JKRVhUKQordGVzdFNjaGVtYXNfT0JKRUNUUyA9ICQoYW1fdGVzdFNjaGVtYXNfT0JKRUNUUykKK3Rlc3RTY2hlbWFzX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJCh0ZXN0U2NoZW1hc19MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV90ZXN0VGhyZWFkc19PQkpFQ1RTID0gdGVzdFRocmVhZHNAVEhSRUFEU19XMzJALiQoT0JKRVhUKQordGVzdFRocmVhZHNfT0JKRUNUUyA9ICQoYW1fdGVzdFRocmVhZHNfT0JKRUNUUykKK3Rlc3RUaHJlYWRzX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJCh0ZXN0VGhyZWFkc19MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV90ZXN0VVJJX09CSkVDVFMgPSB0ZXN0VVJJLiQoT0JKRVhUKQordGVzdFVSSV9PQkpFQ1RTID0gJChhbV90ZXN0VVJJX09CSkVDVFMpCit0ZXN0VVJJX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKHRlc3RVUklfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK2FtX3Rlc3RYUGF0aF9PQkpFQ1RTID0gdGVzdFhQYXRoLiQoT0JKRVhUKQordGVzdFhQYXRoX09CSkVDVFMgPSAkKGFtX3Rlc3RYUGF0aF9PQkpFQ1RTKQordGVzdFhQYXRoX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJCh0ZXN0WFBhdGhfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorYW1fdGVzdGFwaV9PQkpFQ1RTID0gdGVzdGFwaS4kKE9CSkVYVCkKK3Rlc3RhcGlfT0JKRUNUUyA9ICQoYW1fdGVzdGFwaV9PQkpFQ1RTKQordGVzdGFwaV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJCh0ZXN0YXBpX0xERkxBR1MpIFwKKwkkKExERkxBR1MpIC1vICRACithbV90ZXN0Y2hhcl9PQkpFQ1RTID0gdGVzdGNoYXIuJChPQkpFWFQpCit0ZXN0Y2hhcl9PQkpFQ1RTID0gJChhbV90ZXN0Y2hhcl9PQkpFQ1RTKQordGVzdGNoYXJfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQodGVzdGNoYXJfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK2FtX3Rlc3RkaWN0X09CSkVDVFMgPSB0ZXN0ZGljdC4kKE9CSkVYVCkKK3Rlc3RkaWN0X09CSkVDVFMgPSAkKGFtX3Rlc3RkaWN0X09CSkVDVFMpCit0ZXN0ZGljdF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJCh0ZXN0ZGljdF9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1fdGVzdHJlY3Vyc2VfT0JKRUNUUyA9IHRlc3RyZWN1cnNlLiQoT0JKRVhUKQordGVzdHJlY3Vyc2VfT0JKRUNUUyA9ICQoYW1fdGVzdHJlY3Vyc2VfT0JKRUNUUykKK3Rlc3RyZWN1cnNlX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJCh0ZXN0cmVjdXJzZV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV94bWxjYXRhbG9nX09CSkVDVFMgPSB4bWxjYXRhbG9nLiQoT0JKRVhUKQoreG1sY2F0YWxvZ19PQkpFQ1RTID0gJChhbV94bWxjYXRhbG9nX09CSkVDVFMpCit4bWxjYXRhbG9nX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcCisJJCh4bWxjYXRhbG9nX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKK2FtX3htbGxpbnRfT0JKRUNUUyA9IHhtbGxpbnQuJChPQkpFWFQpCit4bWxsaW50X09CSkVDVFMgPSAkKGFtX3htbGxpbnRfT0JKRUNUUykKK3htbGxpbnRfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoeG1sbGludF9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorU0NSSVBUUyA9ICQoYmluX1NDUklQVFMpCitERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQAorZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvZGVwY29tcAorYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKK2FtX19tdiA9IG12IC1mCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorQ0NMRCA9ICQoQ0MpCitMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorU09VUkNFUyA9ICQobGlieG1sMl9sYV9TT1VSQ0VTKSAkKHRlc3Rkc29fbGFfU09VUkNFUykgXAorCSQocnVuc3VpdGVfU09VUkNFUykgJChydW50ZXN0X1NPVVJDRVMpICQocnVueG1sY29uZl9TT1VSQ0VTKSBcCisJJCh0ZXN0QXV0b21hdGFfU09VUkNFUykgJCh0ZXN0QzE0Tl9TT1VSQ0VTKSBcCisJJCh0ZXN0SFRNTF9TT1VSQ0VTKSAkKHRlc3RNb2R1bGVfU09VUkNFUykgXAorCSQodGVzdFJlYWRlcl9TT1VSQ0VTKSAkKHRlc3RSZWdleHBfU09VUkNFUykgXAorCSQodGVzdFJlbGF4X1NPVVJDRVMpICQodGVzdFNBWF9TT1VSQ0VTKSAkKHRlc3RTY2hlbWFzX1NPVVJDRVMpIFwKKwkkKHRlc3RUaHJlYWRzX1NPVVJDRVMpICQodGVzdFVSSV9TT1VSQ0VTKSAkKHRlc3RYUGF0aF9TT1VSQ0VTKSBcCisJJCh0ZXN0YXBpX1NPVVJDRVMpICQodGVzdGNoYXJfU09VUkNFUykgJCh0ZXN0ZGljdF9TT1VSQ0VTKSBcCisJJCh0ZXN0cmVjdXJzZV9TT1VSQ0VTKSAkKHhtbGNhdGFsb2dfU09VUkNFUykgXAorCSQoeG1sbGludF9TT1VSQ0VTKQorRElTVF9TT1VSQ0VTID0gJChhbV9fbGlieG1sMl9sYV9TT1VSQ0VTX0RJU1QpICQodGVzdGRzb19sYV9TT1VSQ0VTKSBcCisJJChydW5zdWl0ZV9TT1VSQ0VTKSAkKHJ1bnRlc3RfU09VUkNFUykgJChydW54bWxjb25mX1NPVVJDRVMpIFwKKwkkKHRlc3RBdXRvbWF0YV9TT1VSQ0VTKSAkKHRlc3RDMTROX1NPVVJDRVMpIFwKKwkkKHRlc3RIVE1MX1NPVVJDRVMpICQodGVzdE1vZHVsZV9TT1VSQ0VTKSBcCisJJCh0ZXN0UmVhZGVyX1NPVVJDRVMpICQodGVzdFJlZ2V4cF9TT1VSQ0VTKSBcCisJJCh0ZXN0UmVsYXhfU09VUkNFUykgJCh0ZXN0U0FYX1NPVVJDRVMpICQodGVzdFNjaGVtYXNfU09VUkNFUykgXAorCSQodGVzdFRocmVhZHNfU09VUkNFUykgJCh0ZXN0VVJJX1NPVVJDRVMpICQodGVzdFhQYXRoX1NPVVJDRVMpIFwKKwkkKHRlc3RhcGlfU09VUkNFUykgJCh0ZXN0Y2hhcl9TT1VSQ0VTKSAkKHRlc3RkaWN0X1NPVVJDRVMpIFwKKwkkKHRlc3RyZWN1cnNlX1NPVVJDRVMpICQoeG1sY2F0YWxvZ19TT1VSQ0VTKSBcCisJJCh4bWxsaW50X1NPVVJDRVMpCitSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKK21hbjFkaXIgPSAkKG1hbmRpcikvbWFuMQorbWFuM2RpciA9ICQobWFuZGlyKS9tYW4zCitOUk9GRiA9IG5yb2ZmCitNQU5TID0gJChtYW5fTUFOUykKK0RBVEEgPSAkKGNvbmZleGVjX0RBVEEpICQobTRkYXRhX0RBVEEpICQocGtnY29uZmlnX0RBVEEpCitSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCitBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorCWRpc3RkaXIgZGlzdCBkaXN0LWFsbCBkaXN0Y2hlY2sKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitkaXN0ZGlyID0gJChQQUNLQUdFKS0kKFZFUlNJT04pCit0b3BfZGlzdGRpciA9ICQoZGlzdGRpcikKK2FtX19yZW1vdmVfZGlzdGRpciA9IFwKKyAgeyB0ZXN0ICEgLWQgIiQoZGlzdGRpcikiIFwKKyAgICB8fCB7IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAtMjAwIC1leGVjIGNobW9kIHUrdyB7fSAnOycgXAorICAgICAgICAgJiYgcm0gLWZyICIkKGRpc3RkaXIpIjsgfTsgfQorYW1fX3JlbGF0aXZpemUgPSBcCisgIGRpcjA9YHB3ZGA7IFwKKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorICAgICAgZWxzZSBcCisgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICAgICAgICBlbHNlIFwKKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisgICAgICAgIGZpOyBcCisgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisgICAgICBmaTsgXAorICAgIGZpOyBcCisgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisgIGRvbmU7IFwKKyAgcmVsZGlyPSIkJGRpcjIiCitESVNUX0FSQ0hJVkVTID0gJChkaXN0ZGlyKS50YXIuZ3oKK0daSVBfRU5WID0gLS1iZXN0CitkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CitkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQVIgPSBAQVJACitBUyA9IEBBU0AKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkFTRV9USFJFQURfTElCUyA9IEBCQVNFX1RIUkVBRF9MSUJTQAorQzE0Tl9PQkogPSBAQzE0Tl9PQkpACitDQVRBTE9HX09CSiA9IEBDQVRBTE9HX09CSkAKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorQ1lHV0lOX0VYVFJBX0xERkxBR1MgPSBAQ1lHV0lOX0VYVFJBX0xERkxBR1NACitDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFERCA9IEBDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFEREAKK0RFQlVHX09CSiA9IEBERUJVR19PQkpACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRExMVE9PTCA9IEBETExUT09MQAorRE9DQl9PQkogPSBARE9DQl9PQkpACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorRlRQX09CSiA9IEBGVFBfT0JKQAorR1JFUCA9IEBHUkVQQAorSEFWRV9JU0lORiA9IEBIQVZFX0lTSU5GQAorSEFWRV9JU05BTiA9IEBIQVZFX0lTTkFOQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitIVE1MX09CSiA9IEBIVE1MX09CSkAKK0hUVFBfT0JKID0gQEhUVFBfT0JKQAorSUNPTlZfTElCUyA9IEBJQ09OVl9MSUJTQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlhNTF9NQUpPUl9WRVJTSU9OID0gQExJQlhNTF9NQUpPUl9WRVJTSU9OQAorTElCWE1MX01JQ1JPX1ZFUlNJT04gPSBATElCWE1MX01JQ1JPX1ZFUlNJT05ACitMSUJYTUxfTUlOT1JfVkVSU0lPTiA9IEBMSUJYTUxfTUlOT1JfVkVSU0lPTkAKK0xJQlhNTF9WRVJTSU9OID0gQExJQlhNTF9WRVJTSU9OQAorTElCWE1MX1ZFUlNJT05fRVhUUkEgPSBATElCWE1MX1ZFUlNJT05fRVhUUkFACitMSUJYTUxfVkVSU0lPTl9JTkZPID0gQExJQlhNTF9WRVJTSU9OX0lORk9ACitMSUJYTUxfVkVSU0lPTl9OVU1CRVIgPSBATElCWE1MX1ZFUlNJT05fTlVNQkVSQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTU9EVUxFX0VYVEVOU0lPTiA9IEBNT0RVTEVfRVhURU5TSU9OQAorTU9EVUxFX1BMQVRGT1JNX0xJQlMgPSBATU9EVUxFX1BMQVRGT1JNX0xJQlNACitNViA9IEBNVkAKK01fTElCUyA9IEBNX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQWVRIT04gPSBAUFlUSE9OQAorUFlUSE9OX0lOQ0xVREVTID0gQFBZVEhPTl9JTkNMVURFU0AKK1BZVEhPTl9MSUJTID0gQFBZVEhPTl9MSUJTQAorUFlUSE9OX1NJVEVfUEFDS0FHRVMgPSBAUFlUSE9OX1NJVEVfUEFDS0FHRVNACitQWVRIT05fU1VCRElSID0gQFBZVEhPTl9TVUJESVJACitQWVRIT05fVEVTVFMgPSBAUFlUSE9OX1RFU1RTQAorUFlUSE9OX1ZFUlNJT04gPSBAUFlUSE9OX1ZFUlNJT05ACitSQU5MSUIgPSBAUkFOTElCQAorUkRMX0xJQlMgPSBAUkRMX0xJQlNACitSRUFERVJfVEVTVCA9IEBSRUFERVJfVEVTVEAKK1JFTERBVEUgPSBAUkVMREFURUAKK1JNID0gQFJNQAorU0VEID0gQFNFREAKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVEFUSUNfQklOQVJJRVMgPSBAU1RBVElDX0JJTkFSSUVTQAorU1RSSVAgPSBAU1RSSVBACitUQVIgPSBAVEFSQAorVEVTVF9DMTROID0gQFRFU1RfQzE0TkAKK1RFU1RfQ0FUQUxPRyA9IEBURVNUX0NBVEFMT0dACitURVNUX0RFQlVHID0gQFRFU1RfREVCVUdACitURVNUX0hUTUwgPSBAVEVTVF9IVE1MQAorVEVTVF9NT0RVTEVTID0gQFRFU1RfTU9EVUxFU0AKK1RFU1RfUEFUVEVSTiA9IEBURVNUX1BBVFRFUk5ACitURVNUX1BIVE1MID0gQFRFU1RfUEhUTUxACitURVNUX1BVU0ggPSBAVEVTVF9QVVNIQAorVEVTVF9SRUdFWFBTID0gQFRFU1RfUkVHRVhQU0AKK1RFU1RfU0FYID0gQFRFU1RfU0FYQAorVEVTVF9TQ0hFTUFTID0gQFRFU1RfU0NIRU1BU0AKK1RFU1RfU0NIRU1BVFJPTiA9IEBURVNUX1NDSEVNQVRST05ACitURVNUX1RIUkVBRFMgPSBAVEVTVF9USFJFQURTQAorVEVTVF9WQUxJRCA9IEBURVNUX1ZBTElEQAorVEVTVF9WVElNRSA9IEBURVNUX1ZUSU1FQAorVEVTVF9YSU5DTFVERSA9IEBURVNUX1hJTkNMVURFQAorVEVTVF9YUEFUSCA9IEBURVNUX1hQQVRIQAorVEVTVF9YUFRSID0gQFRFU1RfWFBUUkAKK1RIUkVBRFNfVzMyID0gQFRIUkVBRFNfVzMyQAorVEhSRUFEX0NGTEFHUyA9IEBUSFJFQURfQ0ZMQUdTQAorVEhSRUFEX0xJQlMgPSBAVEhSRUFEX0xJQlNACitVID0gQFVACitWRVJTSU9OID0gQFZFUlNJT05ACitWRVJTSU9OX1NDUklQVF9GTEFHUyA9IEBWRVJTSU9OX1NDUklQVF9GTEFHU0AKK1dHRVQgPSBAV0dFVEAKK1dJTjMyX0VYVFJBX0xERkxBR1MgPSBAV0lOMzJfRVhUUkFfTERGTEFHU0AKK1dJTjMyX0VYVFJBX0xJQkFERCA9IEBXSU4zMl9FWFRSQV9MSUJBRERACitXSVRIX0MxNE4gPSBAV0lUSF9DMTROQAorV0lUSF9DQVRBTE9HID0gQFdJVEhfQ0FUQUxPR0AKK1dJVEhfREVCVUcgPSBAV0lUSF9ERUJVR0AKK1dJVEhfRE9DQiA9IEBXSVRIX0RPQ0JACitXSVRIX0ZUUCA9IEBXSVRIX0ZUUEAKK1dJVEhfSFRNTCA9IEBXSVRIX0hUTUxACitXSVRIX0hUVFAgPSBAV0lUSF9IVFRQQAorV0lUSF9JQ09OViA9IEBXSVRIX0lDT05WQAorV0lUSF9JU084ODU5WCA9IEBXSVRIX0lTTzg4NTlYQAorV0lUSF9MRUdBQ1kgPSBAV0lUSF9MRUdBQ1lACitXSVRIX01FTV9ERUJVRyA9IEBXSVRIX01FTV9ERUJVR0AKK1dJVEhfTU9EVUxFUyA9IEBXSVRIX01PRFVMRVNACitXSVRIX09VVFBVVCA9IEBXSVRIX09VVFBVVEAKK1dJVEhfUEFUVEVSTiA9IEBXSVRIX1BBVFRFUk5ACitXSVRIX1BVU0ggPSBAV0lUSF9QVVNIQAorV0lUSF9SRUFERVIgPSBAV0lUSF9SRUFERVJACitXSVRIX1JFR0VYUFMgPSBAV0lUSF9SRUdFWFBTQAorV0lUSF9SVU5fREVCVUcgPSBAV0lUSF9SVU5fREVCVUdACitXSVRIX1NBWDEgPSBAV0lUSF9TQVgxQAorV0lUSF9TQ0hFTUFTID0gQFdJVEhfU0NIRU1BU0AKK1dJVEhfU0NIRU1BVFJPTiA9IEBXSVRIX1NDSEVNQVRST05ACitXSVRIX1RIUkVBRFMgPSBAV0lUSF9USFJFQURTQAorV0lUSF9UUkVFID0gQFdJVEhfVFJFRUAKK1dJVEhfVFJJTyA9IEBXSVRIX1RSSU9ACitXSVRIX1ZBTElEID0gQFdJVEhfVkFMSURACitXSVRIX1dSSVRFUiA9IEBXSVRIX1dSSVRFUkAKK1dJVEhfWElOQ0xVREUgPSBAV0lUSF9YSU5DTFVERUAKK1dJVEhfWFBBVEggPSBAV0lUSF9YUEFUSEAKK1dJVEhfWFBUUiA9IEBXSVRIX1hQVFJACitXSVRIX1pMSUIgPSBAV0lUSF9aTElCQAorWElOQ0xVREVfT0JKID0gQFhJTkNMVURFX09CSkAKK1hNTExJTlQgPSBAWE1MTElOVEAKK1hNTF9DRkxBR1MgPSBAWE1MX0NGTEFHU0AKK1hNTF9JTkNMVURFRElSID0gQFhNTF9JTkNMVURFRElSQAorWE1MX0xJQkRJUiA9IEBYTUxfTElCRElSQAorWE1MX0xJQlMgPSBAWE1MX0xJQlNACitYTUxfTElCVE9PTExJQlMgPSBAWE1MX0xJQlRPT0xMSUJTQAorWFBBVEhfT0JKID0gQFhQQVRIX09CSkAKK1hQVFJfT0JKID0gQFhQVFJfT0JKQAorWFNMVFBST0MgPSBAWFNMVFBST0NACitaX0NGTEFHUyA9IEBaX0NGTEFHU0AKK1pfTElCUyA9IEBaX0xJQlNACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3B5dGhvbmRpciA9IEBweXRob25kaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK0FDTE9DQUxfQU1GTEFHUyA9IC1JIG00CitTVUJESVJTID0gaW5jbHVkZSAuIGRvYyBleGFtcGxlIHhzdGMgQFBZVEhPTl9TVUJESVJACitESVNUX1NVQkRJUlMgPSBpbmNsdWRlIC4gZG9jIGV4YW1wbGUgcHl0aG9uIHhzdGMKK0lOQ0xVREVTID0gLUkkKHRvcF9idWlsZGRpcikvaW5jbHVkZSAtSUBzcmNkaXJAL2luY2x1ZGUgQFRIUkVBRF9DRkxBR1NAIEBaX0NGTEFHU0AgCitiaW5fU0NSSVBUUyA9IHhtbDItY29uZmlnCitsaWJfTFRMSUJSQVJJRVMgPSBsaWJ4bWwyLmxhCitsaWJ4bWwyX2xhX0xJQkFERCA9IEBUSFJFQURfTElCU0AgQFpfTElCU0AgJChJQ09OVl9MSUJTKSBATV9MSUJTQCBAV0lOMzJfRVhUUkFfTElCQUREQAorQFVTRV9WRVJTSU9OX1NDUklQVF9GQUxTRUBMSUJYTUwyX1ZFUlNJT05fU0NSSVBUID0gCitAVVNFX1ZFUlNJT05fU0NSSVBUX1RSVUVATElCWE1MMl9WRVJTSU9OX1NDUklQVCA9ICQoVkVSU0lPTl9TQ1JJUFRfRkxBR1MpJChzcmNkaXIpL2xpYnhtbDIuc3ltcworbGlieG1sMl9sYV9MREZMQUdTID0gQENZR1dJTl9FWFRSQV9MREZMQUdTQCBAV0lOMzJfRVhUUkFfTERGTEFHU0AgXAorICAgICAgICAgICAgICAgICAgICAgJChMSUJYTUwyX1ZFUlNJT05fU0NSSVBUKSBcCisJCSAgICAgLXZlcnNpb24taW5mbyBATElCWE1MX1ZFUlNJT05fSU5GT0AgXAorCQkgICAgIEBNT0RVTEVfUExBVEZPUk1fTElCU0AKKworQFdJVEhfVFJJT19TT1VSQ0VTX0ZBTFNFQGxpYnhtbDJfbGFfU09VUkNFUyA9IFNBWC5jIGVudGl0aWVzLmMgZW5jb2RpbmcuYyBlcnJvci5jIHBhcnNlckludGVybmFscy5jICBcCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VACQlwYXJzZXIuYyB0cmVlLmMgaGFzaC5jIGxpc3QuYyB4bWxJTy5jIHhtbG1lbW9yeS5jIHVyaS5jICBcCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VACQl2YWxpZC5jIHhsaW5rLmMgSFRNTHBhcnNlci5jIEhUTUx0cmVlLmMgZGVidWdYTUwuYyB4cGF0aC5jICBcCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VACQl4cG9pbnRlci5jIHhpbmNsdWRlLmMgbmFub2h0dHAuYyBuYW5vZnRwLmMgRE9DQnBhcnNlci5jIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJCWNhdGFsb2cuYyBnbG9iYWxzLmMgdGhyZWFkcy5jIGMxNG4uYyB4bWxzdHJpbmcuYyBcCitAV0lUSF9UUklPX1NPVVJDRVNfRkFMU0VACQl4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMgeG1sdW5pY29kZS5jIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJCXhtbHJlYWRlci5jIHJlbGF4bmcuYyBkaWN0LmMgU0FYMi5jIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJCXhtbHdyaXRlci5jIGxlZ2FjeS5jIGNodmFsaWQuYyBwYXR0ZXJuLmMgeG1sc2F2ZS5jIFwKK0BXSVRIX1RSSU9fU09VUkNFU19GQUxTRUAJCXhtbG1vZHVsZS5jIHNjaGVtYXRyb24uYworCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUBsaWJ4bWwyX2xhX1NPVVJDRVMgPSBTQVguYyBlbnRpdGllcy5jIGVuY29kaW5nLmMgZXJyb3IuYyBwYXJzZXJJbnRlcm5hbHMuYyAgXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACQlwYXJzZXIuYyB0cmVlLmMgaGFzaC5jIGxpc3QuYyB4bWxJTy5jIHhtbG1lbW9yeS5jIHVyaS5jICBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJCXZhbGlkLmMgeGxpbmsuYyBIVE1McGFyc2VyLmMgSFRNTHRyZWUuYyBkZWJ1Z1hNTC5jIHhwYXRoLmMgIFwKK0BXSVRIX1RSSU9fU09VUkNFU19UUlVFQAkJeHBvaW50ZXIuYyB4aW5jbHVkZS5jIG5hbm9odHRwLmMgbmFub2Z0cC5jIERPQ0JwYXJzZXIuYyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJCWNhdGFsb2cuYyBnbG9iYWxzLmMgdGhyZWFkcy5jIGMxNG4uYyB4bWxzdHJpbmcuYyBcCitAV0lUSF9UUklPX1NPVVJDRVNfVFJVRUAJCXhtbHJlZ2V4cC5jIHhtbHNjaGVtYXMuYyB4bWxzY2hlbWFzdHlwZXMuYyB4bWx1bmljb2RlLmMgXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACQl0cmlvc3RyLmMgdHJpby5jIHhtbHJlYWRlci5jIHJlbGF4bmcuYyBkaWN0LmMgU0FYMi5jIFwKK0BXSVRIX1RSSU9fU09VUkNFU19UUlVFQAkJeG1sd3JpdGVyLmMgbGVnYWN5LmMgY2h2YWxpZC5jIHBhdHRlcm4uYyB4bWxzYXZlLmMgXAorQFdJVEhfVFJJT19TT1VSQ0VTX1RSVUVACQl4bWxtb2R1bGUuYyBzY2hlbWF0cm9uLmMKKworREVQUyA9ICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhCitMREFERFMgPSBAU1RBVElDX0JJTkFSSUVTQCAkKHRvcF9idWlsZGRpcikvbGlieG1sMi5sYSBAVEhSRUFEX0xJQlNAIEBaX0xJQlNAICQoSUNPTlZfTElCUykgQE1fTElCU0AgQFdJTjMyX0VYVFJBX0xJQkFEREAKK21hbl9NQU5TID0geG1sMi1jb25maWcuMSBsaWJ4bWwuMworbTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCittNGRhdGFfREFUQSA9IGxpYnhtbC5tNAorcnVudGVzdF9TT1VSQ0VTID0gcnVudGVzdC5jCitydW50ZXN0X0xERkxBR1MgPSAKK3J1bnRlc3RfREVQRU5ERU5DSUVTID0gJChERVBTKQorcnVudGVzdF9MREFERCA9IEBCQVNFX1RIUkVBRF9MSUJTQCBAUkRMX0xJQlNAICQoTERBRERTKQordGVzdHJlY3Vyc2VfU09VUkNFUyA9IHRlc3RyZWN1cnNlLmMKK3Rlc3RyZWN1cnNlX0xERkxBR1MgPSAKK3Rlc3RyZWN1cnNlX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RyZWN1cnNlX0xEQUREID0gQEJBU0VfVEhSRUFEX0xJQlNAIEBSRExfTElCU0AgJChMREFERFMpCit0ZXN0Y2hhcl9TT1VSQ0VTID0gdGVzdGNoYXIuYwordGVzdGNoYXJfTERGTEFHUyA9IAordGVzdGNoYXJfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdGNoYXJfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQordGVzdGRpY3RfU09VUkNFUyA9IHRlc3RkaWN0LmMKK3Rlc3RkaWN0X0xERkxBR1MgPSAKK3Rlc3RkaWN0X0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RkaWN0X0xEQUREID0gQFJETF9MSUJTQCAkKExEQUREUykKK3J1bnN1aXRlX1NPVVJDRVMgPSBydW5zdWl0ZS5jCitydW5zdWl0ZV9MREZMQUdTID0gCitydW5zdWl0ZV9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCitydW5zdWl0ZV9MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCit4bWxsaW50X1NPVVJDRVMgPSB4bWxsaW50LmMKK3htbGxpbnRfTERGTEFHUyA9IAoreG1sbGludF9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit4bWxsaW50X0xEQUREID0gQFJETF9MSUJTQCAkKExEQUREUykKK3Rlc3RTQVhfU09VUkNFUyA9IHRlc3RTQVguYwordGVzdFNBWF9MREZMQUdTID0gCit0ZXN0U0FYX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RTQVhfTERBREQgPSAkKExEQUREUykKK3Rlc3RIVE1MX1NPVVJDRVMgPSB0ZXN0SFRNTC5jCit0ZXN0SFRNTF9MREZMQUdTID0gCit0ZXN0SFRNTF9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0SFRNTF9MREFERCA9ICQoTERBRERTKQoreG1sY2F0YWxvZ19TT1VSQ0VTID0geG1sY2F0YWxvZy5jCit4bWxjYXRhbG9nX0xERkxBR1MgPSAKK3htbGNhdGFsb2dfREVQRU5ERU5DSUVTID0gJChERVBTKQoreG1sY2F0YWxvZ19MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCit0ZXN0WFBhdGhfU09VUkNFUyA9IHRlc3RYUGF0aC5jCit0ZXN0WFBhdGhfTERGTEFHUyA9IAordGVzdFhQYXRoX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RYUGF0aF9MREFERCA9ICQoTERBRERTKQordGVzdEMxNE5fU09VUkNFUyA9IHRlc3RDMTROLmMKK3Rlc3RDMTROX0xERkxBR1MgPSAKK3Rlc3RDMTROX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RDMTROX0xEQUREID0gJChMREFERFMpCit0ZXN0VGhyZWFkc19TT1VSQ0VTID0gdGVzdFRocmVhZHNAVEhSRUFEU19XMzJALmMKK3Rlc3RUaHJlYWRzX0xERkxBR1MgPSAKK3Rlc3RUaHJlYWRzX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RUaHJlYWRzX0xEQUREID0gQEJBU0VfVEhSRUFEX0xJQlNAICAkKExEQUREUykKK3Rlc3RVUklfU09VUkNFUyA9IHRlc3RVUkkuYwordGVzdFVSSV9MREZMQUdTID0gCit0ZXN0VVJJX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RVUklfTERBREQgPSAkKExEQUREUykKK3Rlc3RSZWdleHBfU09VUkNFUyA9IHRlc3RSZWdleHAuYwordGVzdFJlZ2V4cF9MREZMQUdTID0gCit0ZXN0UmVnZXhwX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3Rlc3RSZWdleHBfTERBREQgPSAkKExEQUREUykKK3Rlc3RBdXRvbWF0YV9TT1VSQ0VTID0gdGVzdEF1dG9tYXRhLmMKK3Rlc3RBdXRvbWF0YV9MREZMQUdTID0gCit0ZXN0QXV0b21hdGFfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdEF1dG9tYXRhX0xEQUREID0gJChMREFERFMpCit0ZXN0U2NoZW1hc19TT1VSQ0VTID0gdGVzdFNjaGVtYXMuYwordGVzdFNjaGVtYXNfTERGTEFHUyA9IAordGVzdFNjaGVtYXNfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdFNjaGVtYXNfTERBREQgPSAkKExEQUREUykKK3Rlc3RSZWxheF9TT1VSQ0VTID0gdGVzdFJlbGF4LmMKK3Rlc3RSZWxheF9MREZMQUdTID0gCit0ZXN0UmVsYXhfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdFJlbGF4X0xEQUREID0gJChMREFERFMpCit0ZXN0UmVhZGVyX1NPVVJDRVMgPSB0ZXN0UmVhZGVyLmMKK3Rlc3RSZWFkZXJfTERGTEFHUyA9IAordGVzdFJlYWRlcl9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0UmVhZGVyX0xEQUREID0gJChMREFERFMpCit0ZXN0TW9kdWxlX1NPVVJDRVMgPSB0ZXN0TW9kdWxlLmMKK3Rlc3RNb2R1bGVfTERGTEFHUyA9IAordGVzdE1vZHVsZV9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0TW9kdWxlX0xEQUREID0gJChMREFERFMpCitub2luc3RfTFRMSUJSQVJJRVMgPSB0ZXN0ZHNvLmxhCit0ZXN0ZHNvX2xhX1NPVVJDRVMgPSB0ZXN0ZHNvLmMKK3Rlc3Rkc29fbGFfTERGTEFHUyA9IC1tb2R1bGUgLW5vLXVuZGVmaW5lZCAtYXZvaWQtdmVyc2lvbiAtcnBhdGggJChsaWJkaXIpCit0ZXN0YXBpX1NPVVJDRVMgPSB0ZXN0YXBpLmMKK3Rlc3RhcGlfTERGTEFHUyA9IAordGVzdGFwaV9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit0ZXN0YXBpX0xEQUREID0gJChMREFERFMpCitydW54bWxjb25mX1NPVVJDRVMgPSBydW54bWxjb25mLmMKK3J1bnhtbGNvbmZfTERGTEFHUyA9IAorcnVueG1sY29uZl9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCitydW54bWxjb25mX0xEQUREID0gJChMREFERFMpCitDTEVBTkZJTEVTID0geG1sMkNvbmYuc2ggKi5nY2RhICouZ2NubworY29uZmV4ZWNkaXIgPSAkKGxpYmRpcikKK2NvbmZleGVjX0RBVEEgPSB4bWwyQ29uZi5zaAorQ1ZTX0VYVFJBX0RJU1QgPSAKK0VYVFJBX0RJU1QgPSB4bWwyLWNvbmZpZy5pbiB4bWwyQ29uZi5zaC5pbiBsaWJ4bWwuc3BlYy5pbiBsaWJ4bWwyLnNwZWMgXAorICAgICAgICAgICAgIGxpYnhtbC5tNCBDb3B5cmlnaHQgY2hlY2steG1sLXRlc3Qtc3VpdGUucHkgZ2VudGVzdC5weSBcCisJICAgICBjaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUucHkgY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlMi5weSBcCisJICAgICBjaGVjay14c2RkYXRhLXRlc3Qtc3VpdGUucHkgY2hlY2steGluY2x1ZGUtdGVzdC1zdWl0ZS5weSBcCisgICAgICAgICAgICAgZXhhbXBsZS9NYWtlZmlsZS5hbSBleGFtcGxlL2dqb2JyZWFkLmMgZXhhbXBsZS9nam9icy54bWwgXAorCSAgICAgJChtYW5fTUFOUykgbGlieG1sLTIuMC5wYy5pbiBsaWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjLmluIFwKKwkgICAgIHRyaW9uYW4uYyB0cmlvbmFuLmggdHJpb3N0ci5jIHRyaW9zdHIuaCB0cmlvLmMgdHJpby5oIFwKKwkgICAgIHRyaW9wLmggdHJpb2RlZi5oIGxpYnhtbC5oIGVsZmdjY2hhY2suaCBcCisJICAgICB0ZXN0VGhyZWFkc1dpbjMyLmMgZ2VuVW5pY29kZS5weSBUT0RPX1NDSEVNQVMgXAorCSAgICAgZGJnZW4ucGwgZGJnZW5hdHRyLnBsIHJlZ3Jlc3Npb25zLnB5IHJlZ3Jlc3Npb25zLnhtbCBcCisJICAgICBSRUFETUUudGVzdHMgTWFrZWZpbGUudGVzdHMgbGlieG1sMi5zeW1zIFwKKwkgICAgICQoQ1ZTX0VYVFJBX0RJU1QpCisKK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKK3BrZ2NvbmZpZ19EQVRBID0gbGlieG1sLTIuMC5wYworCisjCisjIEluc3RhbGwgdGhlIHRlc3RzIHByb2dyYW0gc291cmNlcyBhcyBleGFtcGxlcyAKKyMKK0JBU0VfRElSID0gJChkYXRhZGlyKS9kb2MKK0RPQ19NT0RVTEUgPSBsaWJ4bWwyLSQoVkVSU0lPTikKK0VYQU1QTEVTX0RJUiA9ICQoQkFTRV9ESVIpLyQoRE9DX01PRFVMRSkvZXhhbXBsZXMKKworIworIyBDb3ZlcmFnZSBzdXBwb3J0LCBsYXJnZWx5IGJvcnJvd2VkIGZyb20gbGlidmlydAorIyBCb3RoIGJpbmFyaWVzIGNvbWVzIGZyb20gdGhlIGxjb3YgcGFja2FnZSBpbiBGZWRvcmEKKyMKK0xDT1YgPSAvdXNyL2Jpbi9sY292CitHRU5IVE1MID0gL3Vzci9iaW4vZ2VuaHRtbAorYWxsOiBjb25maWcuaAorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFsbC1yZWN1cnNpdmUKKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorYW0tLXJlZnJlc2g6CisJQDoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSc7IFwKKwkgICAgICAkKGFtX19jZCkgJChzcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IFwKKwkJJiYgZXhpdCAwOyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBNYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWdudSBNYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGVjaG8gJyAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMnOyBcCisJICAgICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1czs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJJChhbV9fY2QpICQoc3JjZGlyKSAmJiAkKEFVVE9DT05GKQorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwkkKGFtX19jZCkgJChzcmNkaXIpICYmICQoQUNMT0NBTCkgJChBQ0xPQ0FMX0FNRkxBR1MpCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorCitjb25maWcuaDogc3RhbXAtaDEKKwlAaWYgdGVzdCAhIC1mICRAOyB0aGVuIFwKKwkgIHJtIC1mIHN0YW1wLWgxOyBcCisJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBzdGFtcC1oMTsgXAorCWVsc2UgOjsgZmkKKworc3RhbXAtaDE6ICQoc3JjZGlyKS9jb25maWcuaC5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBybSAtZiBzdGFtcC1oMQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgKKyQoc3JjZGlyKS9jb25maWcuaC5pbjogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAkKHRvcF9zcmNkaXIpL2FjY29uZmlnLmgKKwkoJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgJChBVVRPSEVBREVSKSkKKwlybSAtZiBzdGFtcC1oMQorCXRvdWNoICRACisKK2Rpc3RjbGVhbi1oZHI6CisJLXJtIC1mIGNvbmZpZy5oIHN0YW1wLWgxCitsaWJ4bWwyLnNwZWM6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9saWJ4bWwuc3BlYy5pbgorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKK3htbDItY29uZmlnOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2RpcikveG1sMi1jb25maWcuaW4KKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACitsaWJ4bWwtMi4wLnBjOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2RpcikvbGlieG1sLTIuMC5wYy5pbgorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKK2xpYnhtbC0yLjAtdW5pbnN0YWxsZWQucGM6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9saWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjLmluCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAoraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgorCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisJbGlzdDI9OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWRvbmU7IFwKKwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAnJChERVNURElSKSQobGliZGlyKSciOyBcCisJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNURElSKSQobGliZGlyKSI7IFwKKwl9CisKK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAkKGFtX19zdHJpcF9kaXIpIFwKKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAorCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorCWRvbmUKKworY2xlYW4tbGliTFRMSUJSQVJJRVM6CisJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCisJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisJZG9uZQorCitjbGVhbi1ub2luc3RMVExJQlJBUklFUzoKKwktdGVzdCAteiAiJChub2luc3RfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKG5vaW5zdF9MVExJQlJBUklFUykKKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKwlkb25lCitsaWJ4bWwyLmxhOiAkKGxpYnhtbDJfbGFfT0JKRUNUUykgJChsaWJ4bWwyX2xhX0RFUEVOREVOQ0lFUykgCisJJChsaWJ4bWwyX2xhX0xJTkspIC1ycGF0aCAkKGxpYmRpcikgJChsaWJ4bWwyX2xhX09CSkVDVFMpICQobGlieG1sMl9sYV9MSUJBREQpICQoTElCUykKK3Rlc3Rkc28ubGE6ICQodGVzdGRzb19sYV9PQkpFQ1RTKSAkKHRlc3Rkc29fbGFfREVQRU5ERU5DSUVTKSAKKwkkKHRlc3Rkc29fbGFfTElOSykgICQodGVzdGRzb19sYV9PQkpFQ1RTKSAkKHRlc3Rkc29fbGFfTElCQUREKSAkKExJQlMpCitpbnN0YWxsLWJpblBST0dSQU1TOiAkKGJpbl9QUk9HUkFNUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKGJpbmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGJpbmRpcikiCisJQGxpc3Q9JyQoYmluX1BST0dSQU1TKSc7IHRlc3QgLW4gIiQoYmluZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorCXNlZCAncy8kKEVYRUVYVCkkJC8vJyB8IFwKKwl3aGlsZSByZWFkIHAgcDE7IGRvIGlmIHRlc3QgLWYgJCRwIHx8IHRlc3QgLWYgJCRwMTsgXAorCSAgdGhlbiBlY2hvICIkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuO2gnIC1lICdzfC4qfC58JyBcCisJICAgIC1lICdwO3g7cywuKi8sLDtzLyQoRVhFRVhUKSQkLy87JCh0cmFuc2Zvcm0pO3MvJCQvJChFWEVFWFQpLycgfCBcCisJc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisJJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIjsgZGlyc1siLiJdID0gMSB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCAkJDMgIi8iICQkNCwgJCQxOyB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgaWYgdGVzdCAiJCRkaXIiID0gLjsgdGhlbiBkaXI9OyBlbHNlIGRpcj0vJCRkaXI7IGZpOyBcCisJICAgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX1BST0dSQU1fRU5WKSAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMX1BST0dSQU0pICQkZmlsZXMgJyQoREVTVERJUikkKGJpbmRpcikkJGRpciciOyBcCisJICAgICQoSU5TVEFMTF9QUk9HUkFNX0VOVikgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTF9QUk9HUkFNKSAkJGZpbGVzICIkKERFU1RESVIpJChiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgIH0gXAorCTsgZG9uZQorCit1bmluc3RhbGwtYmluUFJPR1JBTVM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJChiaW5kaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICBzZWQgLWUgJ2g7cyxeLiovLCw7cy8kKEVYRUVYVCkkJC8vOyQodHJhbnNmb3JtKScgXAorCSAgICAgIC1lICdzLyQkLyQoRVhFRVhUKS8nIGA7IFwKKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChiaW5kaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQoYmluZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCitjbGVhbi1iaW5QUk9HUkFNUzoKKwlAbGlzdD0nJChiaW5fUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0CisKK2NsZWFuLW5vaW5zdFBST0dSQU1TOgorCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QKK3J1bnN1aXRlJChFWEVFWFQpOiAkKHJ1bnN1aXRlX09CSkVDVFMpICQocnVuc3VpdGVfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgcnVuc3VpdGUkKEVYRUVYVCkKKwkkKHJ1bnN1aXRlX0xJTkspICQocnVuc3VpdGVfT0JKRUNUUykgJChydW5zdWl0ZV9MREFERCkgJChMSUJTKQorcnVudGVzdCQoRVhFRVhUKTogJChydW50ZXN0X09CSkVDVFMpICQocnVudGVzdF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBydW50ZXN0JChFWEVFWFQpCisJJChydW50ZXN0X0xJTkspICQocnVudGVzdF9PQkpFQ1RTKSAkKHJ1bnRlc3RfTERBREQpICQoTElCUykKK3J1bnhtbGNvbmYkKEVYRUVYVCk6ICQocnVueG1sY29uZl9PQkpFQ1RTKSAkKHJ1bnhtbGNvbmZfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgcnVueG1sY29uZiQoRVhFRVhUKQorCSQocnVueG1sY29uZl9MSU5LKSAkKHJ1bnhtbGNvbmZfT0JKRUNUUykgJChydW54bWxjb25mX0xEQUREKSAkKExJQlMpCit0ZXN0QXV0b21hdGEkKEVYRUVYVCk6ICQodGVzdEF1dG9tYXRhX09CSkVDVFMpICQodGVzdEF1dG9tYXRhX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3RBdXRvbWF0YSQoRVhFRVhUKQorCSQodGVzdEF1dG9tYXRhX0xJTkspICQodGVzdEF1dG9tYXRhX09CSkVDVFMpICQodGVzdEF1dG9tYXRhX0xEQUREKSAkKExJQlMpCit0ZXN0QzE0TiQoRVhFRVhUKTogJCh0ZXN0QzE0Tl9PQkpFQ1RTKSAkKHRlc3RDMTROX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3RDMTROJChFWEVFWFQpCisJJCh0ZXN0QzE0Tl9MSU5LKSAkKHRlc3RDMTROX09CSkVDVFMpICQodGVzdEMxNE5fTERBREQpICQoTElCUykKK3Rlc3RIVE1MJChFWEVFWFQpOiAkKHRlc3RIVE1MX09CSkVDVFMpICQodGVzdEhUTUxfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGVzdEhUTUwkKEVYRUVYVCkKKwkkKHRlc3RIVE1MX0xJTkspICQodGVzdEhUTUxfT0JKRUNUUykgJCh0ZXN0SFRNTF9MREFERCkgJChMSUJTKQordGVzdE1vZHVsZSQoRVhFRVhUKTogJCh0ZXN0TW9kdWxlX09CSkVDVFMpICQodGVzdE1vZHVsZV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0TW9kdWxlJChFWEVFWFQpCisJJCh0ZXN0TW9kdWxlX0xJTkspICQodGVzdE1vZHVsZV9PQkpFQ1RTKSAkKHRlc3RNb2R1bGVfTERBREQpICQoTElCUykKK3Rlc3RSZWFkZXIkKEVYRUVYVCk6ICQodGVzdFJlYWRlcl9PQkpFQ1RTKSAkKHRlc3RSZWFkZXJfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGVzdFJlYWRlciQoRVhFRVhUKQorCSQodGVzdFJlYWRlcl9MSU5LKSAkKHRlc3RSZWFkZXJfT0JKRUNUUykgJCh0ZXN0UmVhZGVyX0xEQUREKSAkKExJQlMpCit0ZXN0UmVnZXhwJChFWEVFWFQpOiAkKHRlc3RSZWdleHBfT0JKRUNUUykgJCh0ZXN0UmVnZXhwX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3RSZWdleHAkKEVYRUVYVCkKKwkkKHRlc3RSZWdleHBfTElOSykgJCh0ZXN0UmVnZXhwX09CSkVDVFMpICQodGVzdFJlZ2V4cF9MREFERCkgJChMSUJTKQordGVzdFJlbGF4JChFWEVFWFQpOiAkKHRlc3RSZWxheF9PQkpFQ1RTKSAkKHRlc3RSZWxheF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0UmVsYXgkKEVYRUVYVCkKKwkkKHRlc3RSZWxheF9MSU5LKSAkKHRlc3RSZWxheF9PQkpFQ1RTKSAkKHRlc3RSZWxheF9MREFERCkgJChMSUJTKQordGVzdFNBWCQoRVhFRVhUKTogJCh0ZXN0U0FYX09CSkVDVFMpICQodGVzdFNBWF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0U0FYJChFWEVFWFQpCisJJCh0ZXN0U0FYX0xJTkspICQodGVzdFNBWF9PQkpFQ1RTKSAkKHRlc3RTQVhfTERBREQpICQoTElCUykKK3Rlc3RTY2hlbWFzJChFWEVFWFQpOiAkKHRlc3RTY2hlbWFzX09CSkVDVFMpICQodGVzdFNjaGVtYXNfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGVzdFNjaGVtYXMkKEVYRUVYVCkKKwkkKHRlc3RTY2hlbWFzX0xJTkspICQodGVzdFNjaGVtYXNfT0JKRUNUUykgJCh0ZXN0U2NoZW1hc19MREFERCkgJChMSUJTKQordGVzdFRocmVhZHMkKEVYRUVYVCk6ICQodGVzdFRocmVhZHNfT0JKRUNUUykgJCh0ZXN0VGhyZWFkc19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0VGhyZWFkcyQoRVhFRVhUKQorCSQodGVzdFRocmVhZHNfTElOSykgJCh0ZXN0VGhyZWFkc19PQkpFQ1RTKSAkKHRlc3RUaHJlYWRzX0xEQUREKSAkKExJQlMpCit0ZXN0VVJJJChFWEVFWFQpOiAkKHRlc3RVUklfT0JKRUNUUykgJCh0ZXN0VVJJX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3RVUkkkKEVYRUVYVCkKKwkkKHRlc3RVUklfTElOSykgJCh0ZXN0VVJJX09CSkVDVFMpICQodGVzdFVSSV9MREFERCkgJChMSUJTKQordGVzdFhQYXRoJChFWEVFWFQpOiAkKHRlc3RYUGF0aF9PQkpFQ1RTKSAkKHRlc3RYUGF0aF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0WFBhdGgkKEVYRUVYVCkKKwkkKHRlc3RYUGF0aF9MSU5LKSAkKHRlc3RYUGF0aF9PQkpFQ1RTKSAkKHRlc3RYUGF0aF9MREFERCkgJChMSUJTKQordGVzdGFwaSQoRVhFRVhUKTogJCh0ZXN0YXBpX09CSkVDVFMpICQodGVzdGFwaV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0YXBpJChFWEVFWFQpCisJJCh0ZXN0YXBpX0xJTkspICQodGVzdGFwaV9PQkpFQ1RTKSAkKHRlc3RhcGlfTERBREQpICQoTElCUykKK3Rlc3RjaGFyJChFWEVFWFQpOiAkKHRlc3RjaGFyX09CSkVDVFMpICQodGVzdGNoYXJfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGVzdGNoYXIkKEVYRUVYVCkKKwkkKHRlc3RjaGFyX0xJTkspICQodGVzdGNoYXJfT0JKRUNUUykgJCh0ZXN0Y2hhcl9MREFERCkgJChMSUJTKQordGVzdGRpY3QkKEVYRUVYVCk6ICQodGVzdGRpY3RfT0JKRUNUUykgJCh0ZXN0ZGljdF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB0ZXN0ZGljdCQoRVhFRVhUKQorCSQodGVzdGRpY3RfTElOSykgJCh0ZXN0ZGljdF9PQkpFQ1RTKSAkKHRlc3RkaWN0X0xEQUREKSAkKExJQlMpCit0ZXN0cmVjdXJzZSQoRVhFRVhUKTogJCh0ZXN0cmVjdXJzZV9PQkpFQ1RTKSAkKHRlc3RyZWN1cnNlX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRlc3RyZWN1cnNlJChFWEVFWFQpCisJJCh0ZXN0cmVjdXJzZV9MSU5LKSAkKHRlc3RyZWN1cnNlX09CSkVDVFMpICQodGVzdHJlY3Vyc2VfTERBREQpICQoTElCUykKK3htbGNhdGFsb2ckKEVYRUVYVCk6ICQoeG1sY2F0YWxvZ19PQkpFQ1RTKSAkKHhtbGNhdGFsb2dfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgeG1sY2F0YWxvZyQoRVhFRVhUKQorCSQoeG1sY2F0YWxvZ19MSU5LKSAkKHhtbGNhdGFsb2dfT0JKRUNUUykgJCh4bWxjYXRhbG9nX0xEQUREKSAkKExJQlMpCit4bWxsaW50JChFWEVFWFQpOiAkKHhtbGxpbnRfT0JKRUNUUykgJCh4bWxsaW50X0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHhtbGxpbnQkKEVYRUVYVCkKKwkkKHhtbGxpbnRfTElOSykgJCh4bWxsaW50X09CSkVDVFMpICQoeG1sbGludF9MREFERCkgJChMSUJTKQoraW5zdGFsbC1iaW5TQ1JJUFRTOiAkKGJpbl9TQ1JJUFRTKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoYmluZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoYmluZGlyKSIKKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ3A7cywuKi8sLDtuJyBcCisJICAgIC1lICdoO3N8Lip8LnwnIFwKKwkgICAgLWUgJ3A7eDtzLC4qLywsOyQodHJhbnNmb3JtKScgfCBzZWQgJ047TjtOO3MsXG4sICxnJyB8IFwKKwkkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiOyBkaXJzWyIuIl0gPSAxOyB9IFwKKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKwkgICAgaWYgKCQkMiA9PSAkJDQpIHsgZmlsZXNbZF0gPSBmaWxlc1tkXSAiICIgJCQxOyBcCisJICAgICAgaWYgKCsrbltkXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIHsgXAorCQlwcmludCAiZiIsIGQsIGZpbGVzW2RdOyBuW2RdID0gMDsgZmlsZXNbZF0gPSAiIiB9IH0gXAorCSAgICBlbHNlIHsgcHJpbnQgImYiLCBkICIvIiAkJDQsICQkMSB9IH0gXAorCSAgRU5EIHsgZm9yIChkIGluIGZpbGVzKSBwcmludCAiZiIsIGQsIGZpbGVzW2RdIH0nIHwgXAorCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKwkgICAgIGlmIHRlc3QgIiQkZGlyIiA9IC47IHRoZW4gZGlyPTsgZWxzZSBkaXI9LyQkZGlyOyBmaTsgXAorCSAgICAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgICAgIGVjaG8gIiAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICckKERFU1RESVIpJChiaW5kaXIpJCRkaXInIjsgXAorCSAgICAgICAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICIkKERFU1RESVIpJChiaW5kaXIpJCRkaXIiIHx8IGV4aXQgJCQ/OyBcCisJICAgICB9IFwKKwk7IGRvbmUKKwordW5pbnN0YWxsLWJpblNDUklQVFM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBcCisJICAgICAgIHNlZCAtZSAncywuKi8sLDskKHRyYW5zZm9ybSknYDsgXAorCXRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKGJpbmRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJChiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9ET0NCcGFyc2VyLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvSFRNTHBhcnNlci5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL0hUTUx0cmVlLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvU0FYLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvU0FYMi5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2MxNG4uUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9jYXRhbG9nLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvY2h2YWxpZC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2RlYnVnWE1MLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZGljdC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2VuY29kaW5nLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZW50aXRpZXMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9lcnJvci5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2dsb2JhbHMuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9oYXNoLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGVnYWN5LlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlzdC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL25hbm9mdHAuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9uYW5vaHR0cC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhcnNlci5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhcnNlckludGVybmFscy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhdHRlcm4uUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9yZWxheG5nLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcnVuc3VpdGUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3J1bnRlc3QuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3J1bnhtbGNvbmYuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NjaGVtYXRyb24uUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0QXV0b21hdGEuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RDMTROLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0SFRNTC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdE1vZHVsZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdFJlYWRlci5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdFJlZ2V4cC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdFJlbGF4LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0U0FYLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0U2NoZW1hcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdFRocmVhZHNAVEhSRUFEU19XMzJALlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0VVJJLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0WFBhdGguUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RhcGkuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RjaGFyLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0ZGljdC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdGRzby5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RyZWN1cnNlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90aHJlYWRzLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdHJlZS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3RyaW8uUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90cmlvc3RyLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdXJpLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdmFsaWQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94aW5jbHVkZS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3hsaW5rLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikveG1sSU8uUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWxjYXRhbG9nLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWxsaW50LlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWxtZW1vcnkuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWxtb2R1bGUuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWxyZWFkZXIuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWxyZWdleHAuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWxzYXZlLlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikveG1sc2NoZW1hcy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3htbHNjaGVtYXN0eXBlcy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3htbHN0cmluZy5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3htbHVuaWNvZGUuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94bWx3cml0ZXIuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94cGF0aC5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3hwb2ludGVyLlBsb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChMVENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworCitkaXN0Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgbGlidG9vbCBjb25maWcubHQKK2luc3RhbGwtbWFuMTogJChtYW5fTUFOUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJeyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChtYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKwl9IHwgd2hpbGUgcmVhZCBwOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKwlkb25lIHwgXAorCXNlZCAtZSAnbjtzLC4qLywsO3A7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKKwlzZWQgJ047TjtzLFxuLCAsZycgfCB7IFwKKwlsaXN0PTsgd2hpbGUgcmVhZCBmaWxlIGJhc2UgaW5zdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGZpbGUiICIkKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QiIHx8IGV4aXQgJCQ/OyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIHRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG1hbjFkaXIpJyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorCWRvbmU7IH0KKwordW5pbnN0YWxsLW1hbjE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQobWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuMVthLXpdKiQkL3AnOyBcCisJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnYDsgXAorCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAorCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwkgIGNkICIkKERFU1RESVIpJChtYW4xZGlyKSIgJiYgcm0gLWYgJCRmaWxlczsgfQoraW5zdGFsbC1tYW4zOiAkKG1hbl9NQU5TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobWFuM2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjNkaXIpIgorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjNkaXIpIiB8fCBleGl0IDA7IFwKKwl7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjNbYS16XSokJC9wJzsgXAorCX0gfCB3aGlsZSByZWFkIHA7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgZWNobyAiJCRwIjsgXAorCWRvbmUgfCBcCisJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteM11bMC05YS16XSokJCwzLDt4JyBcCisJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnIHwgXAorCXNlZCAnTjtOO3MsXG4sICxnJyB8IHsgXAorCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJGJhc2UiID0gIiQkaW5zdCI7IHRoZW4gbGlzdD0iJCRsaXN0ICQkZmlsZSI7IGVsc2UgXAorCSAgICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4zZGlyKS8kJGluc3QnIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjNkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuM2RpciknIjsgXAorCSAgICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobWFuM2RpcikiIHx8IGV4aXQgJCQ/OyB9OyBcCisJZG9uZTsgfQorCit1bmluc3RhbGwtbWFuMzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjNkaXIpIiB8fCBleGl0IDA7IFwKKwlmaWxlcz1geyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkaSI7IGRvbmU7IFwKKwlsMj0nJChtYW5fTUFOUyknOyBmb3IgaSBpbiAkJGwyOyBkbyBlY2hvICIkJGkiOyBkb25lIHwgXAorCSAgc2VkIC1uICcvXC4zW2Etel0qJCQvcCc7IFwKKwl9IHwgc2VkIC1lICdzLC4qLywsO2g7cywuKlwuLCw7cyxeW14zXVswLTlhLXpdKiQkLDMsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCdgOyBcCisJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisJICBlY2hvICIgKCBjZCAnJChERVNURElSKSQobWFuM2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCSAgY2QgIiQoREVTVERJUikkKG1hbjNkaXIpIiAmJiBybSAtZiAkJGZpbGVzOyB9CitpbnN0YWxsLWNvbmZleGVjREFUQTogJChjb25mZXhlY19EQVRBKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoY29uZmV4ZWNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChjb25mZXhlY2RpcikiCisJQGxpc3Q9JyQoY29uZmV4ZWNfREFUQSknOyB0ZXN0IC1uICIkKGNvbmZleGVjZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBcCisJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChjb25mZXhlY2RpciknIjsgXAorCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKGNvbmZleGVjZGlyKSIgfHwgZXhpdCAkJD87IFwKKwlkb25lCisKK3VuaW5zdGFsbC1jb25mZXhlY0RBVEE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChjb25mZXhlY19EQVRBKSc7IHRlc3QgLW4gIiQoY29uZmV4ZWNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKGNvbmZleGVjZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKGNvbmZleGVjZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworaW5zdGFsbC1tNGRhdGFEQVRBOiAkKG00ZGF0YV9EQVRBKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobTRkYXRhZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobTRkYXRhZGlyKSIKKwlAbGlzdD0nJChtNGRhdGFfREFUQSknOyB0ZXN0IC1uICIkKG00ZGF0YWRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgXAorCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobTRkYXRhZGlyKSciOyBcCisJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQobTRkYXRhZGlyKSIgfHwgZXhpdCAkJD87IFwKKwlkb25lCisKK3VuaW5zdGFsbC1tNGRhdGFEQVRBOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQobTRkYXRhX0RBVEEpJzsgdGVzdCAtbiAiJChtNGRhdGFkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKG00ZGF0YWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiAmJiBybSAtZiAkJGZpbGVzCitpbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6ICQocGtnY29uZmlnX0RBVEEpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChwa2djb25maWdkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIgorCUBsaXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7IHRlc3QgLW4gIiQocGtnY29uZmlnZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBcCisJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChwa2djb25maWdkaXIpJyI7IFwKKwkgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIiB8fCBleGl0ICQkPzsgXAorCWRvbmUKKwordW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnY29uZmlnZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiICYmIHJtIC1mICQkZmlsZXMKKworIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorCSAgY2FzZSAkJGYgaW4gXAorCSAgICAqPSogfCAtLVsha10qKTs7IFwKKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWRvdF9zZWVuPW5vOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKwkgICAgZG90X3NlZW49eWVzOyBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmU7IFwKKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorCiskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCWNhc2UgIiRAIiBpbiBcCisJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisJZXNhYzsgXAorCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCXJldj0iJCRyZXYgLiI7IFwKKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKwkgIGVsc2UgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorCSAgZmk7IFwKKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCit0YWdzLXJlY3Vyc2l2ZToKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorCWRvbmUKK2N0YWdzLXJlY3Vyc2l2ZToKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKwlkb25lCisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisJICBlbXB0eV9maXg9LjsgXAorCWVsc2UgXAorCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisJICBlbXB0eV9maXg9OyBcCisJZmk7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKwkgIGxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorCSAgaWYgdGVzdCAtbiAiJCRsaXN0IiAmJiBcCisJICAgIGdyZXAgJ2FiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZScgJCRsaXN0ID4vZGV2L251bGw7IHRoZW4gXAorCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorCSAgICBncmVwIC1sICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCB8IHNlZCAncy9eLyAgICAgICAgIC8nID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdG8gZml4IHRoZW0sIGluc3RhbGwgaGVscDJtYW4sIHJlbW92ZSBhbmQgcmVnZW5lcmF0ZSB0aGUgbWFuIHBhZ2VzOyIgPiYyOyBcCisJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorCSAgICBleGl0IDE7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwllbHNlIDo7IGZpCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisJdGVzdCAtZCAiJChkaXN0ZGlyKSIgfHwgbWtkaXIgIiQoZGlzdGRpcikiCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCisJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCisJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAorCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisJICAgICAgICBkaXN0ZGlyKSBcCisJICAgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisJICB0b3BfZGlzdGRpcj0iJCh0b3BfZGlzdGRpcikiIGRpc3RkaXI9IiQoZGlzdGRpcikiIFwKKwkgIGRpc3QtaG9vaworCS10ZXN0IC1uICIkKGFtX19za2lwX21vZGVfZml4KSIgXAorCXx8IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAtNzU1IFwKKwkJLWV4ZWMgY2htb2QgdStyd3gsZ28rcngge30gXDsgLW8gXAorCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAorCSAgISAtdHlwZSBkICEgLXBlcm0gLTQwMCAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAorCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtZXhlYyAkKGluc3RhbGxfc2gpIC1jIC1tIGErciB7fSB7fSBcOyBcCisJfHwgY2htb2QgLVIgYStyICIkKGRpc3RkaXIpIgorZGlzdC1nemlwOiBkaXN0ZGlyCisJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKworZGlzdC1iemlwMjogZGlzdGRpcgorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3QtbHptYTogZGlzdGRpcgorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBsem1hIC05IC1jID4kKGRpc3RkaXIpLnRhci5sem1hCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3QteHo6IGRpc3RkaXIKKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgeHogLWMgPiQoZGlzdGRpcikudGFyLnh6CisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3QtdGFyWjogZGlzdGRpcgorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBjb21wcmVzcyAtYyA+JChkaXN0ZGlyKS50YXIuWgorCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorCitkaXN0LXNoYXI6IGRpc3RkaXIKKwlzaGFyICQoZGlzdGRpcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikuc2hhci5negorCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorCitkaXN0LXppcDogZGlzdGRpcgorCS1ybSAtZiAkKGRpc3RkaXIpLnppcAorCXppcCAtcnEgJChkaXN0ZGlyKS56aXAgJChkaXN0ZGlyKQorCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorCitkaXN0IGRpc3QtYWxsOiBkaXN0ZGlyCisJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKworIyBUaGlzIHRhcmdldCB1bnRhcnMgdGhlIGRpc3QgZmlsZSBhbmQgdHJpZXMgYSBWUEFUSCBjb25maWd1cmF0aW9uLiAgVGhlbgorIyBpdCBndWFyYW50ZWVzIHRoYXQgdGhlIGRpc3RyaWJ1dGlvbiBpcyBzZWxmLWNvbnRhaW5lZCBieSBtYWtpbmcgYW5vdGhlcgorIyB0YXJmaWxlLgorZGlzdGNoZWNrOiBkaXN0CisJY2FzZSAnJChESVNUX0FSQ0hJVkVTKScgaW4gXAorCSoudGFyLmd6KikgXAorCSAgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1kYyAkKGRpc3RkaXIpLnRhci5neiB8ICQoYW1fX3VudGFyKSA7O1wKKwkqLnRhci5iejIqKSBcCisJICBiemlwMiAtZGMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7XAorCSoudGFyLmx6bWEqKSBcCisJICBsem1hIC1kYyAkKGRpc3RkaXIpLnRhci5sem1hIHwgJChhbV9fdW50YXIpIDs7XAorCSoudGFyLnh6KikgXAorCSAgeHogLWRjICQoZGlzdGRpcikudGFyLnh6IHwgJChhbV9fdW50YXIpIDs7XAorCSoudGFyLloqKSBcCisJICB1bmNvbXByZXNzIC1jICQoZGlzdGRpcikudGFyLlogfCAkKGFtX191bnRhcikgOztcCisJKi5zaGFyLmd6KikgXAorCSAgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1kYyAkKGRpc3RkaXIpLnNoYXIuZ3ogfCB1bnNoYXIgOztcCisJKi56aXAqKSBcCisJICB1bnppcCAkKGRpc3RkaXIpLnppcCA7O1wKKwllc2FjCisJY2htb2QgLVIgYS13ICQoZGlzdGRpcik7IGNobW9kIGErdyAkKGRpc3RkaXIpCisJbWtkaXIgJChkaXN0ZGlyKS9fYnVpbGQKKwlta2RpciAkKGRpc3RkaXIpL19pbnN0CisJY2htb2QgYS13ICQoZGlzdGRpcikKKwl0ZXN0IC1kICQoZGlzdGRpcikvX2J1aWxkIHx8IGV4aXQgMDsgXAorCWRjX2luc3RhbGxfYmFzZT1gJChhbV9fY2QpICQoZGlzdGRpcikvX2luc3QgJiYgcHdkIHwgc2VkIC1lICdzLF5bXjpcXC9dOltcXC9dLC8sJ2AgXAorCSAgJiYgZGNfZGVzdGRpcj0iJCR7VE1QRElSLS90bXB9L2FtLWRjLSQkJCQvIiBcCisJICAmJiBhbV9fY3dkPWBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKGRpc3RkaXIpL19idWlsZCBcCisJICAmJiAuLi9jb25maWd1cmUgLS1zcmNkaXI9Li4gLS1wcmVmaXg9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCisJICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZHZpIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbGNoZWNrIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHVuaW5zdGFsbCBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2luc3RhbGxfYmFzZSIgXAorCSAgICAgICAgZGlzdHVuaW5zdGFsbGNoZWNrIFwKKwkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKKwkgICYmICh7IFwKKwkgICAgICAgKGNkIC4uLy4uICYmIHVtYXNrIDA3NyAmJiBta2RpciAiJCRkY19kZXN0ZGlyIikgXAorCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIGluc3RhbGwgXAorCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBcCisJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgXAorCSAgICAgICAgICAgIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNoZWNrOyBcCisJICAgICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0ZGlyIjsgZXhpdCAxOyB9KSBcCisJICAmJiBybSAtcmYgIiQkZGNfZGVzdGRpciIgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdCBcCisJICAmJiBybSAtcmYgJChESVNUX0FSQ0hJVkVTKSBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0Y2xlYW5jaGVjayBcCisJICAmJiBjZCAiJCRhbV9fY3dkIiBcCisJICB8fCBleGl0IDEKKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKwlAKGVjaG8gIiQoZGlzdGRpcikgYXJjaGl2ZXMgcmVhZHkgZm9yIGRpc3RyaWJ1dGlvbjogIjsgXAorCSAgbGlzdD0nJChESVNUX0FSQ0hJVkVTKSc7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAkJGk7IGRvbmUpIHwgXAorCSAgc2VkIC1lIDFoIC1lIDFzLy4vPS9nIC1lIDFwIC1lIDF4IC1lICckJHAnIC1lICckJHgnCitkaXN0dW5pbnN0YWxsY2hlY2s6CisJQCQoYW1fX2NkKSAnJChkaXN0dW5pbnN0YWxsY2hlY2tfZGlyKScgXAorCSYmIHRlc3QgYCQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWxlIDEgXAorCSAgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgYWZ0ZXIgdW5pbnN0YWxsOiIgOyBcCisJICAgICAgICBpZiB0ZXN0IC1uICIkKERFU1RESVIpIjsgdGhlbiBcCisJICAgICAgICAgIGVjaG8gIiAgKGNoZWNrIERFU1RESVIgc3VwcG9ydCkiOyBcCisJICAgICAgICBmaSA7IFwKKwkgICAgICAgICQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgOyBcCisJICAgICAgICBleGl0IDE7IH0gPiYyCitkaXN0Y2xlYW5jaGVjazogZGlzdGNsZWFuCisJQGlmIHRlc3QgJyQoc3JjZGlyKScgPSAuIDsgdGhlbiBcCisJICBlY2hvICJFUlJPUjogZGlzdGNsZWFuY2hlY2sgY2FuIG9ubHkgcnVuIGZyb20gYSBWUEFUSCBidWlsZCIgOyBcCisJICBleGl0IDEgOyBcCisJZmkKKwlAdGVzdCBgJChkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMpIHwgd2MgLWxgIC1lcSAwIFwKKwkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgaW4gYnVpbGQgZGlyZWN0b3J5IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAorCSAgICAgICAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgOyBcCisJICAgICAgIGV4aXQgMTsgfSA+JjIKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChQUk9HUkFNUykgJChTQ1JJUFRTKSAkKE1BTlMpICQoREFUQSkgXAorCQljb25maWcuaAoraW5zdGFsbC1iaW5QUk9HUkFNUzogaW5zdGFsbC1saWJMVExJQlJBUklFUworCitpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCitpbnN0YWxsZGlycy1hbToKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSIgIiQoREVTVERJUikkKG1hbjNkaXIpIiAiJChERVNURElSKSQoY29uZmV4ZWNkaXIpIiAiJChERVNURElSKSQobTRkYXRhZGlyKSIgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCit1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChDTEVBTkZJTEVTKQorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisKK2NsZWFuLWFtOiBjbGVhbi1iaW5QUk9HUkFNUyBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxUTElCUkFSSUVTIFwKKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKKwltb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLXJlY3Vyc2l2ZQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tcmVjdXJzaXZlCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1kYXRhLWxvY2FsIGluc3RhbGwtbTRkYXRhREFUQSBpbnN0YWxsLW1hbiBcCisJaW5zdGFsbC1wa2djb25maWdEQVRBCisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1iaW5QUk9HUkFNUyBpbnN0YWxsLWJpblNDUklQVFMgXAorCWluc3RhbGwtY29uZmV4ZWNEQVRBIGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46IGluc3RhbGwtbWFuMSBpbnN0YWxsLW1hbjMKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQorCS1ybSAtcmYgJCh0b3Bfc3JjZGlyKS9hdXRvbTR0ZS5jYWNoZQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLXJlY3Vyc2l2ZQorCitwZGYtYW06CisKK3BzOiBwcy1yZWN1cnNpdmUKKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWJpblBST0dSQU1TIHVuaW5zdGFsbC1iaW5TQ1JJUFRTIFwKKwl1bmluc3RhbGwtY29uZmV4ZWNEQVRBIHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyBcCisJdW5pbnN0YWxsLWxvY2FsIHVuaW5zdGFsbC1tNGRhdGFEQVRBIHVuaW5zdGFsbC1tYW4gXAorCXVuaW5zdGFsbC1wa2djb25maWdEQVRBCisKK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4xIHVuaW5zdGFsbC1tYW4zCisKKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBhbGwgXAorCWN0YWdzLXJlY3Vyc2l2ZSBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKworLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1iaW5QUk9HUkFNUyBcCisJY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwKKwljbGVhbi1ub2luc3RMVExJQlJBUklFUyBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBcCisJY3RhZ3MtcmVjdXJzaXZlIGRpc3QgZGlzdC1hbGwgZGlzdC1iemlwMiBkaXN0LWd6aXAgZGlzdC1ob29rIFwKKwlkaXN0LWx6bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXh6IGRpc3QtemlwIGRpc3RjaGVjayBcCisJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1oZHIgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RjbGVhbmNoZWNrIGRpc3RkaXIgXAorCWRpc3R1bmluc3RhbGxjaGVjayBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWJpblBST0dSQU1TIGluc3RhbGwtYmluU0NSSVBUUyBcCisJaW5zdGFsbC1jb25mZXhlY0RBVEEgaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBcCisJaW5zdGFsbC1kYXRhLWxvY2FsIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW00ZGF0YURBVEEgXAorCWluc3RhbGwtbWFuIGluc3RhbGwtbWFuMSBpbnN0YWxsLW1hbjMgaW5zdGFsbC1wZGYgXAorCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnY29uZmlnREFUQSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisJaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLWJpblBST0dSQU1TIFwKKwl1bmluc3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtY29uZmV4ZWNEQVRBIFwKKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLWxvY2FsIHVuaW5zdGFsbC1tNGRhdGFEQVRBIFwKKwl1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xIHVuaW5zdGFsbC1tYW4zIFwKKwl1bmluc3RhbGwtcGtnY29uZmlnREFUQQorCisKKyMgdGhhdCBvbmUgZm9yY2VzIHRoZSByZWJ1aWxkIHdoZW4gIm1ha2UgcmVidWlsZCIgaXMgcnVuIG9uIGRvYy8KK3JlYnVpbGRfdGVzdGFwaToKKwktQChpZiBbICIkKFBZVEhPTikiICE9ICIiIF0gOyB0aGVuIFwKKwkgICAgJChQWVRIT04pICQoc3JjZGlyKS9nZW50ZXN0LnB5ICQoc3JjZGlyKSA7IGZpICkKKworIyB0aGF0IG9uZSBpcyBqdXN0IHRvIG1ha2Ugc3VyZSBpdCBpcyByZWJ1aWx0IGlmIG1pc3NpbmcKKyMgYnV0IGFkZGluZyB0aGUgZGVwZW5kYW5jZXMgZ2VuZXJhdGUgbWVzcwordGVzdGFwaS5jOiAkKHNyY2RpcikvZ2VudGVzdC5weQorCS1AKGlmIFsgIiQoUFlUSE9OKSIgIT0gIiIgXSA7IHRoZW4gXAorCSAgICAkKFBZVEhPTikgJChzcmNkaXIpL2dlbnRlc3QucHkgJChzcmNkaXIpIDsgZmkgKQorCisjdGVzdE9PTV9TT1VSQ0VTPXRlc3RPT00uYyB0ZXN0T09NbGliLmggdGVzdE9PTWxpYi5jCisjdGVzdE9PTV9MREZMQUdTID0gCisjdGVzdE9PTV9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCisjdGVzdE9PTV9MREFERD0gJChMREFERFMpCisKK3J1bnRlc3RzOgorCSQoQ0hFQ0tFUikgLi9ydW50ZXN0JChFWEVFWFQpICYmICQoQ0hFQ0tFUikgLi90ZXN0cmVjdXJzZSQoRVhFRVhUKSAmJiQoQ0hFQ0tFUikgLi90ZXN0YXBpJChFWEVFWFQpICYmICQoQ0hFQ0tFUikgLi90ZXN0Y2hhciQoRVhFRVhUKSYmICQoQ0hFQ0tFUikgLi90ZXN0ZGljdCQoRVhFRVhUKSAmJiAkKENIRUNLRVIpIC4vcnVueG1sY29uZiQoRVhFRVhUKQorCUAoaWYgWyAiQFBZVEhPTl9TVUJESVJAIiAhPSAiIiBdIDsgdGhlbiBjZCBweXRob24gOyBcCisJICAgICQoTUFLRSkgTUFLRUZMQUdTKz0tLXNpbGVudCB0ZXN0cyA7IGZpKQorCitjaGVjazogYWxsIHJ1bnRlc3RzCisKK2NoZWNrLXZhbGdyaW5kOiBhbGwKKwlAZWNobyAnIyMgUnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZCcKKwlAZWNobyAnIyMgR28gZ2V0IGEgY3VwIG9mIGNvZmZlZSBpdCBpcyBnb25uYSB0YWtlIGEgd2hpbGUgLi4uJworCSQoTUFLRSkgQ0hFQ0tFUj0ndmFsZ3JpbmQgLXEnIGNoZWNrCisKK3Rlc3RhbGwgOiB0ZXN0cyBTVkd0ZXN0cyBTQVh0ZXN0cworCit0ZXN0czogWE1MdGVzdHMgWE1MZW50dGVzdHMgTlN0ZXN0cyBJRHRlc3RzIEVycnRlc3RzIEFQSXRlc3RzIEBSRUFERVJfVEVTVEAgQFRFU1RfU0FYQCBAVEVTVF9QVVNIQCBAVEVTVF9IVE1MQCBAVEVTVF9QSFRNTEAgIEBURVNUX1ZBTElEQCBVUkl0ZXN0cyBAVEVTVF9QQVRURVJOQCBAVEVTVF9YUEFUSEAgQFRFU1RfWFBUUkAgQFRFU1RfWElOQ0xVREVAIEBURVNUX0MxNE5AIEBURVNUX0RFQlVHQCBAVEVTVF9DQVRBTE9HQCBAVEVTVF9SRUdFWFBTQCBAVEVTVF9TQ0hFTUFTQCBAVEVTVF9TQ0hFTUFUUk9OQCBAVEVTVF9USFJFQURTQCBUaW1pbmd0ZXN0cyBAVEVTVF9WVElNRUAgQFBZVEhPTl9URVNUU0AgQFRFU1RfTU9EVUxFU0AKKwlAKGlmIFsgIkBQWVRIT05fU1VCRElSQCIgIT0gIiIgXSA7IHRoZW4gY2QgcHl0aG9uIDsgXAorCSAgICAkKE1BS0UpIE1BS0VGTEFHUys9LS1zaWxlbnQgdGVzdHMgOyBmaSkKKwlAKGNkIGRvYy9leGFtcGxlcyA7ICQoTUFLRSkgTUFLRUZMQUdTKz0tLXNpbGVudCB0ZXN0cykKKwordmFsZ3JpbmQ6CisJQGVjaG8gJyMjIFJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdW5kZXIgVmFsZ3JpbmQnCisJQGVjaG8gJyMjIEdvIGdldCBhIGN1cCBvZiBjb2ZmZWUgaXQgaXMgZ29ubmEgdGFrZSBhIHdoaWxlIC4uLicKKwkkKE1BS0UpIENIRUNLRVI9J3ZhbGdyaW5kIC1xJyB0ZXN0cworCitBUEl0ZXN0czogdGVzdGFwaSQoRVhFRVhUKQorCUBlY2hvICIjIyBSdW5uaW5nIHRoZSBBUEkgcmVncmVzc2lvbiB0ZXN0cyB0aGlzIG1heSB0YWtlIGEgbGl0dGxlIHdoaWxlIgorCS1AKCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RhcGkgLXEpCisKK0hUTUx0ZXN0cyA6IHRlc3RIVE1MJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIEhUTUwgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9IVE1MLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RIVE1MICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUgMj4kKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLmVyciA7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgJCRpID4gcmVzdWx0LiQkbmFtZSAyPiBlcnJvci4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZSByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGRpZmYgLWIgJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZS5lcnIgZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RIVE1MIHJlc3VsdC4kJG5hbWUgPiByZXN1bHQyLiQkbmFtZSAyPmVycm9yLiQkbmFtZSA7IFwKKwkgICAgICBkaWZmIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZSBlcnJvci4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworSFRNTFB1c2h0ZXN0cyA6IHRlc3RIVE1MJChFWEVFWFQpCisJQGVjaG8gIiMjIFB1c2ggSFRNTCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L0hUTUwvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgLS1wdXNoICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUgMj4kKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLmVyciA7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgLS1wdXNoICQkaSA+IHJlc3VsdC4kJG5hbWUgMj4gZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBjdXQgLWIgMS0xNSAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLmVyciA+IGVycm9yY3V0LiQkbmFtZTsgXAorCSAgICAgIGN1dCAtYiAxLTE1IGVycm9yLiQkbmFtZSA+IGVycm9yY3V0Mi4kJG5hbWU7IFwKKwkgICAgICBkaWZmIC1iIGVycm9yY3V0LiQkbmFtZSBlcnJvcmN1dDIuJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RIVE1MIC0tcHVzaCByZXN1bHQuJCRuYW1lID4gcmVzdWx0Mi4kJG5hbWUgMj5lcnJvci4kJG5hbWUgOyBcCisJICAgICAgZGlmZiByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWUgZXJyb3IuJCRuYW1lIGVycm9yY3V0LiQkbmFtZSBlcnJvcmN1dDIuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIEhUTUwgU0FYIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvSFRNTC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZS5zYXggXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgLS1zYXggJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZS5zYXggOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RIVE1MIC0tc2F4ICQkaSA+IHJlc3VsdC4kJG5hbWUuc2F4IDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvSFRNTC8kJG5hbWUuc2F4IHJlc3VsdC4kJG5hbWUuc2F4YCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUuc2F4IDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIFB1c2ggSFRNTCBTQVggcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9IVE1MLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RIVE1MIC0tcHVzaCAtLXNheCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L0hUTUwvJCRuYW1lLnNheCA7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEhUTUwgLS1wdXNoIC0tc2F4ICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZS5zYXggOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9IVE1MLyQkbmFtZS5zYXggcmVzdWx0LiQkbmFtZS5zYXhgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZS5zYXggOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworWE1MdGVzdHMgOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFhNTCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0LyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50ICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZSByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgcmVzdWx0LiQkbmFtZSAyPiYxID4gcmVzdWx0Mi4kJG5hbWUgfCBncmVwIC12ICdmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHknIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lYCA7XAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCUBlY2hvICIjIyBYTUwgcmVncmVzc2lvbiB0ZXN0cyBvbiBtZW1vcnkiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1tZW1vcnkgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW1lbW9yeSAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbWVtb3J5IHJlc3VsdC4kJG5hbWUgMj4mMSA+IHJlc3VsdDIuJCRuYW1lIHwgZ3JlcCAtdiAnZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5JyA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwImA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIGRpZmYgcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK1hNTFB1c2h0ZXN0czogeG1sbGludCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBYTUwgcHVzaCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0LyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tcHVzaCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tcHVzaCAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXB1c2ggcmVzdWx0LiQkbmFtZSAyPiYxID4gcmVzdWx0Mi4kJG5hbWUgfCBncmVwIC12ICdmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHknIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworTlN0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgWE1MIE5hbWVzcGFjZXMgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9uYW1lc3BhY2VzLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L25hbWVzcGFjZXMvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgJCRpIFwKKwkgICAgICAgICAyPiAkKHNyY2RpcikvcmVzdWx0L25hbWVzcGFjZXMvJCRuYW1lLmVyciBcCisJCSA+ICQoc3JjZGlyKS9yZXN1bHQvbmFtZXNwYWNlcy8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAkJGkgMj4gZXJyb3IuJCRuYW1lID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9uYW1lc3BhY2VzLyQkbmFtZSByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9uYW1lc3BhY2VzLyQkbmFtZS5lcnIgZXJyb3IuJCRuYW1lYDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSBlcnJvci4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworSUR0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkgdGVzdFhQYXRoJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIHhtbDppZCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L3htbGlkL2lkXyoueG1sIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC94bWxpZC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIC1pICQkaSAiaWQoJ2JhcicpIiBcCisJICAgICAgICAgMj4gJChzcmNkaXIpL3Jlc3VsdC94bWxpZC8kJG5hbWUuZXJyIFwKKwkJID4gJChzcmNkaXIpL3Jlc3VsdC94bWxpZC8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIC1pICQkaSAiaWQoJ2JhcicpIiAyPiBlcnJvci4kJG5hbWUgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3htbGlkLyQkbmFtZSByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC94bWxpZC8kJG5hbWUuZXJyIGVycm9yLiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIGVycm9yLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitFcnJ0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgRXJyb3IgY2FzZXMgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9lcnJvcnMvKi54bWwgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L2Vycm9ycy8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAkJGkgXAorCSAgICAgICAgIDI+ICQoc3JjZGlyKS9yZXN1bHQvZXJyb3JzLyQkbmFtZS5lcnIgXAorCQkgPiAkKHNyY2RpcikvcmVzdWx0L2Vycm9ycy8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAkJGkgMj4gZXJyb3IuJCRuYW1lID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9lcnJvcnMvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L2Vycm9ycy8kJG5hbWUuZXJyIGVycm9yLiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIGVycm9yLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCUBlY2hvICIjIyBFcnJvciBjYXNlcyBzdHJlYW0gcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9lcnJvcnMvKi54bWwgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L2Vycm9ycy8kJG5hbWUuc3RyIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1zdHJlYW0gJCRpIFwKKwkgICAgICAgICAyPiAkKHNyY2RpcikvcmVzdWx0L2Vycm9ycy8kJG5hbWUuc3RyIFwKKwkJID4gL2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1zdHJlYW0gJCRpIDI+IGVycm9yLiQkbmFtZSA+IC9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9lcnJvcnMvJCRuYW1lLnN0ciBlcnJvci4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK0RvY2J0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKworWE1MZW50dGVzdHMgOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFhNTCBlbnRpdHkgc3Vic3QgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9ub2VudC8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vZW50ICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvbm9lbnQvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub2VudCAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvbm9lbnQvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vZW50IHJlc3VsdC4kJG5hbWUgMj4mMSA+IHJlc3VsdDIuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICAgICAgZGlmZiByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgcmVzdWx0Mi4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworVVJJdGVzdHMgOiB0ZXN0VVJJJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFVSSSBtb2R1bGUgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9VUkkvKi5kYXRhIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9VUkkvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RVUkkgLWJhc2UgJ2h0dHA6Ly9mb28uY29tL3BhdGgvdG8vaW5kZXguaHRtbD9vcmlnI2hlbHAnIDwgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9VUkkvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RVUkkgLWJhc2UgJ2h0dHA6Ly9mb28uY29tL3BhdGgvdG8vaW5kZXguaHRtbD9vcmlnI2hlbHAnIDwgJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvVVJJLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9VUkkvKi51cmkgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L1VSSS8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFVSSSA8ICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvVVJJLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0VVJJIDwgJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvVVJJLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworWFBhdGh0ZXN0cyA6IHRlc3RYUGF0aCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBYUGF0aCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGlmIFsgImAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIHwgZ3JlcCAnc3VwcG9ydCBub3QgY29tcGlsZWQgaW4nYCIgIT0gIiIgXSA7IFwKKwkgIHRoZW4gZWNobyBTa2lwcGluZyBkZWJ1ZyBub3QgY29tcGlsZWQgaW4gOyBleGl0IDAgOyBmaSA7IFwKKwkgIGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1hQYXRoL2V4cHIvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvWFBhdGgvZXhwci8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIC1mIC0tZXhwciAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L1hQYXRoL2V4cHIvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIC1mIC0tZXhwciAkJGkgMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9YUGF0aC9leHByLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSA7IFwKKwkgIGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1hQYXRoL2RvY3MvKiA7IGRvIFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgZG9jPWBiYXNlbmFtZSAkJGlgOyBcCisJICBmb3IgaiBpbiAkKHNyY2RpcikvdGVzdC9YUGF0aC90ZXN0cy8kJGRvYyogOyBkbyBcCisJICBpZiBbICEgLWYgJCRqIF0gOyB0aGVuIGNvbnRpbnVlIDsgZmkgOyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGpgOyBcCisJICBpZiBbICEgLWQgJCRqIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L1hQYXRoL3Rlc3RzLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0WFBhdGggLWYgLWkgJCRpICQkaiA+ICQoc3JjZGlyKS9yZXN1bHQvWFBhdGgvdGVzdHMvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIC1mIC1pICQkaSAkJGogMj4mMSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9YUGF0aC90ZXN0cy8kJG5hbWUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUgOyBmaSA7IGRvbmUpCisKK1hQdHJ0ZXN0cyA6IHRlc3RYUGF0aCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBYUG9pbnRlciByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGlmIFsgImAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIHwgZ3JlcCAnc3VwcG9ydCBub3QgY29tcGlsZWQgaW4nYCIgIT0gIiIgXSA7IFwKKwkgIHRoZW4gZWNobyBTa2lwcGluZyBkZWJ1ZyBub3QgY29tcGlsZWQgaW4gOyBleGl0IDAgOyBmaSA7IFwKKwkgIGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1hQYXRoL2RvY3MvKiA7IGRvIFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgZG9jPWBiYXNlbmFtZSAkJGlgOyBcCisJICBmb3IgaiBpbiAkKHNyY2RpcikvdGVzdC9YUGF0aC94cHRyLyQkZG9jKiA7IGRvIFwKKwkgIGlmIFsgISAtZiAkJGogXSA7IHRoZW4gY29udGludWUgOyBmaSA7IFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkamA7IFwKKwkgIGlmIFsgISAtZCAkJGogXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvWFBhdGgveHB0ci8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFhQYXRoIC14cHRyIC1mIC1pICQkaSAkJGogPiAkKHNyY2RpcikvcmVzdWx0L1hQYXRoL3hwdHIvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RYUGF0aCAteHB0ciAtZiAtaSAkJGkgJCRqIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWFBhdGgveHB0ci8kJG5hbWUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUgOyBmaSA7IGRvbmUpCisKK1hJbmNsdWRldGVzdHMgOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFhJbmNsdWRlIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvWEluY2x1ZGUvZG9jcy8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vd2FybmluZyAtLXhpbmNsdWRlICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lIDI+ICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLmVyciA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub3dhcm5pbmcgLS14aW5jbHVkZSAkJGkgPiByZXN1bHQuJCRuYW1lIDI+ZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZS5lcnIgZXJyb3IuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvWEluY2x1ZGUvZG9jcy8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9YSW5jbHVkZS8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vd2FybmluZyAtLW5veGluY2x1ZGVub2RlICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lIDI+ICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLmVyciA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub3dhcm5pbmcgLS1ub3hpbmNsdWRlbm9kZSAkJGkgPiByZXN1bHQuJCRuYW1lIDI+ZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZS5lcnIgZXJyb3IuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFhJbmNsdWRlIHhtbFJlYWRlciByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1hJbmNsdWRlL2RvY3MvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLnJkciBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm93YXJuaW5nIC0teGluY2x1ZGUgLS1zdHJlYW0gLS1kZWJ1ZyAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZS5yZHIgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm93YXJuaW5nIC0teGluY2x1ZGUgLS1zdHJlYW0gLS1kZWJ1ZyAkJGkgPiByZXN1bHQuJCRuYW1lIDI+ZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLmVyciBlcnJvci4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZS5yZHIgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIGVycm9yLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L1hJbmNsdWRlL2RvY3MvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLnJkciBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm93YXJuaW5nIC0tbm94aW5jbHVkZW5vZGUgLS1zdHJlYW0gLS1kZWJ1ZyAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZS5yZHIgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm93YXJuaW5nIC0teGluY2x1ZGUgLS1zdHJlYW0gLS1kZWJ1ZyAkJGkgPiByZXN1bHQuJCRuYW1lIDI+ZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvWEluY2x1ZGUvJCRuYW1lLmVyciBlcnJvci4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L1hJbmNsdWRlLyQkbmFtZS5yZHIgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIGVycm9yLiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitTY3JpcHR0ZXN0cyA6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgU2NyaXB0cyByZWdyZXNzaW9uIHRlc3RzIgorCUBlY2hvICIjIyBTb21lIG9mIHRoZSBiYXNlIGNvbXB1dGF0aW9ucyBtYXkgYmUgZGlmZmVyZW50IGlmIHNyY2RpciAhPSAuIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L3NjcmlwdHMvKi5zY3JpcHQgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGkgLnNjcmlwdGA7IFwKKwkgIHhtbD0kKHNyY2RpcikvdGVzdC9zY3JpcHRzL2BiYXNlbmFtZSAkJGkgLnNjcmlwdGAueG1sOyBcCisJICBpZiBbIC1mICQkeG1sIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L3NjcmlwdHMvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1zaGVsbCAkJHhtbCA8ICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvc2NyaXB0cy8kJG5hbWUgMj4gJChzcmNkaXIpL3Jlc3VsdC9zY3JpcHRzLyQkbmFtZS5lcnIgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tc2hlbGwgJCR4bWwgPCAkJGkgPiByZXN1bHQuJCRuYW1lIDI+IHJlc3VsdC4kJG5hbWUuZXJyIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvc2NyaXB0cy8kJG5hbWUgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvc2NyaXB0cy8kJG5hbWUuZXJyIHJlc3VsdC4kJG5hbWUuZXJyYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgcmVzdWx0LiQkbmFtZS5lcnIgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKworQ2F0YXRlc3RzIDogeG1sY2F0YWxvZyQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBDYXRhbG9nIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvY2F0YWxvZ3MvKi5zY3JpcHQgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGkgLnNjcmlwdGA7IFwKKwkgIHhtbD0kKHNyY2RpcikvdGVzdC9jYXRhbG9ncy9gYmFzZW5hbWUgJCRpIC5zY3JpcHRgLnhtbDsgXAorCSAgaWYgWyAtZiAkJHhtbCBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9jYXRhbG9ncy8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sY2F0YWxvZyAtLXNoZWxsICQkeG1sIDwgJCRpIDI+JjEgPiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGNhdGFsb2cgLS1zaGVsbCAkJHhtbCA8ICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9jYXRhbG9ncy8qLnNjcmlwdCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSAuc2NyaXB0YDsgXAorCSAgc2dtbD0kKHNyY2RpcikvdGVzdC9jYXRhbG9ncy9gYmFzZW5hbWUgJCRpIC5zY3JpcHRgLnNnbWw7IFwKKwkgIGlmIFsgLWYgJCRzZ21sIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzLyQkbmFtZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tc2hlbGwgJCRzZ21sIDwgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9jYXRhbG9ncy8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tc2hlbGwgJCRzZ21sIDwgJCRpID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzLyQkbmFtZSByZXN1bHQuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgOyBcCisJICBmaSA7IGZpIDsgZG9uZSkKKwlAZWNobyAiIyMgQWRkIGFuZCBkZWwgb3BlcmF0aW9ucyBvbiBYTUwgQ2F0YWxvZ3MiCisJLUAoJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sY2F0YWxvZyAtLWNyZWF0ZSAtLW5vb3V0ICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nOyBcCisJZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tbm9vdXQgLS1hZGQgcHVibGljIFB1YmlkIHN5c2lkICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nOyBcCisJZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwkkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxjYXRhbG9nIC0tbm9vdXQgLS1hZGQgcHVibGljIFB1YmlkMiBzeXNpZDIgJChzcmNkaXIpL3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2c7IFwKKwlncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGNhdGFsb2cgLS1ub291dCAtLWFkZCBwdWJsaWMgUHViaWQzIHN5c2lkMyAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZzsgXAorCWdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJZGlmZiByZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nLmZ1bGwgJChzcmNkaXIpL3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2c7IFwKKwlncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGNhdGFsb2cgLS1ub291dCAtLWRlbCBzeXNpZCAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZzsgXAorCWdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sY2F0YWxvZyAtLW5vb3V0IC0tZGVsIHN5c2lkMyAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZzsgXAorCWdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sY2F0YWxvZyAtLW5vb3V0IC0tZGVsIHN5c2lkMiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZzsgXAorCWdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiOyBcCisJZGlmZiByZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nLmVtcHR5ICQoc3JjZGlyKS9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nOyBcCisJZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7IFwKKwlybSAtZiAkKHNyY2RpcikvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZykKKworU1ZHdGVzdHMgOiB4bWxsaW50JChFWEVFWFQpCisJQGVjaG8gIiMjIFNWRyBwYXJzaW5nIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvU1ZHLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L1NWRy8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L1NWRy8kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgZWNobyBUZXN0aW5nICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50ICQkaSA+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9TVkcvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCByZXN1bHQuJCRuYW1lID4gcmVzdWx0Mi4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgcmVzdWx0LiQkbmFtZSByZXN1bHQyLiQkbmFtZSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIHJlc3VsdDIuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK1RocmVhZHRlc3RzIDogdGVzdFRocmVhZHMkKEVYRUVYVCkKKwlAZWNobyAiIyMgVGhyZWFkZWQgcmVncmVzc2lvbiB0ZXN0cyIKKwktQCgkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0VGhyZWFkcyA7IFwKKwkgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjsgXAorCSAgIGV4aXQgMCkKKworUmVhZGVydGVzdHMgOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFJlYWRlciByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0LyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZHIgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vbmV0IC0tZGVidWcgLS1zdHJlYW0gJCRpID4gJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRyIDI+L2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vbmV0IC0tZGVidWcgLS1zdHJlYW0gJCRpID4gcmVzdWx0LiQkbmFtZSAyPi9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZHIgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIFJlYWRlciBvbiBtZW1vcnkgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRyIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1tZW1vcnkgLS1ub25ldCAtLWRlYnVnIC0tc3RyZWFtICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnJkciAyPi9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1tZW1vcnkgLS1ub25ldCAtLWRlYnVnIC0tc3RyZWFtICQkaSA+IHJlc3VsdC4kJG5hbWUgMj4vZGV2L251bGwgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRyIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBXYWxrZXIgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRyIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub25ldCAtLWRlYnVnIC0td2Fsa2VyICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnJkciAyPi9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub25ldCAtLWRlYnVnIC0td2Fsa2VyICQkaSA+IHJlc3VsdC4kJG5hbWUgMj4vZGV2L251bGwgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUucmRyIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCUBlY2hvICIjIyBSZWFkZXIgZW50aXRpZXMgc3Vic3RpdHV0aW9uIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnJkZSBdIDsgdGhlbiBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9lbnQgLS1ub25ldCAtLWRlYnVnIC0tc3RyZWFtICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnJkZSAyPi9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub2VudCAtLW5vbmV0IC0tZGVidWcgLS1zdHJlYW0gJCRpID4gcmVzdWx0LiQkbmFtZSAyPi9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5yZGUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK1NBWHRlc3RzIDogdGVzdFNBWCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBTQVgxIGNhbGxiYWNrcyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0LyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5zYXggXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFNBWCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5zYXggMj4gL2Rldi9udWxsIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFNBWCAkJGkgPiByZXN1bHQuJCRuYW1lIDI+IC9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5zYXggcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIFNBWDIgY2FsbGJhY2tzIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvJCRuYW1lLnNheDIgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFNBWCAtLXNheDIgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC8kJG5hbWUuc2F4MiAyPiAvZGV2L251bGwgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0U0FYIC0tc2F4MiAkJGkgPiByZXN1bHQuJCRuYW1lIDI+IC9kZXYvbnVsbCA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0LyQkbmFtZS5zYXgyIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitWYWxpZHRlc3RzIDogeG1sbGludCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBWYWxpZCBkb2N1bWVudHMgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9WQ00vKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLXZhbGlkIC0tbm9vdXQgLS1ub3dhcm5pbmcgJCRpIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiYDtcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgIGZpIDsgZG9uZSA7IGV4aXQgMCkKKwlAZWNobyAiIyMgVmFsaWRpdHkgY2hlY2tpbmcgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9WQy8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9WQy8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vb3V0IC0tdmFsaWQgJCRpIDI+ICQoc3JjZGlyKS9yZXN1bHQvVkMvJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCAtLW5vb3V0IC0tdmFsaWQgJCRpIDI+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9WQy8kJG5hbWUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIEdlbmVyYWwgZG9jdW1lbnRzIHZhbGlkIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvdmFsaWQvKiA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaWA7IFwKKwkgIGlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvdmFsaWQvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS12YWxpZCAkJGkgPiAkKHNyY2RpcikvcmVzdWx0L3ZhbGlkLyQkbmFtZSAyPiQoc3JjZGlyKS9yZXN1bHQvdmFsaWQvJCRuYW1lLmVyciA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS12YWxpZCAkJGkgPiByZXN1bHQuJCRuYW1lIDI+ZXJyb3IuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvdmFsaWQvJCRuYW1lIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3ZhbGlkLyQkbmFtZS5lcnIgZXJyb3IuJCRuYW1lYCA7IFwKKwkgICAgICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlc3VsdC4kJG5hbWUgZXJyb3IuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisKK1JlZ2V4cHRlc3RzOiB0ZXN0UmVnZXhwJChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFJlZ2V4cCByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L3JlZ2V4cC8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9yZWdleHAvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RSZWdleHAgLWkgJCRpID4gJChzcmNkaXIpL3Jlc3VsdC9yZWdleHAvJCRuYW1lOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0UmVnZXhwIC1pICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3JlZ2V4cC8kJG5hbWUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUpCisJQGVjaG8gIiMjIEZvcm1hbCBleHByZXNzc2lvbnMgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9leHByLyogOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGlgOyBcCisJICBpZiBbICEgLWQgJCRpIF0gOyB0aGVuIFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L2V4cHIvJCRuYW1lIF0gOyB0aGVuIFwKKwkgICAgICBlY2hvIE5ldyB0ZXN0IGZpbGUgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RSZWdleHAgLS1leHByIC1pICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvZXhwci8kJG5hbWU7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICBlbHNlIFwKKwkgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RSZWdleHAgLS1leHByIC1pICQkaSAyPiYxID4gcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L2V4cHIvJCRuYW1lIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitBdXRvbWF0YXRlc3RzOiB0ZXN0QXV0b21hdGEkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgQXV0b21hdGEgcmVncmVzc2lvbiB0ZXN0cyIKKwktQChmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9hdXRvbWF0YS8qIDsgZG8gXAorCSAgbmFtZT1gYmFzZW5hbWUgJCRpYDsgXAorCSAgaWYgWyAhIC1kICQkaSBdIDsgdGhlbiBcCisJICBpZiBbICEgLWYgJChzcmNkaXIpL3Jlc3VsdC9hdXRvbWF0YS8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHRlc3QgZmlsZSAkJG5hbWUgOyBcCisJICAgICAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdEF1dG9tYXRhICQkaSA+ICQoc3JjZGlyKS9yZXN1bHQvYXV0b21hdGEvJCRuYW1lOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgZWxzZSBcCisJICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0QXV0b21hdGEgJCRpIDI+JjEgPiByZXN1bHQuJCRuYW1lIDsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvYXV0b21hdGEvJCRuYW1lIHJlc3VsdC4kJG5hbWVgIDsgXAorCSAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICQkbmFtZSByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgcm0gcmVzdWx0LiQkbmFtZSA7IFwKKwkgIGZpIDsgZmkgOyBkb25lKQorCitkYmExMDAwMDAueG1sOiBkYmdlbmF0dHIucGwKKwlAZWNobyAiIyMgZ2VuZXJhdGluZyBkYmExMDAwMDAueG1sIgorCUAoJChQRVJMKSAkKHRvcF9zcmNkaXIpL2RiZ2VuYXR0ci5wbCAxMDAwMDAgPiBkYmExMDAwMDAueG1sKQorCitUaW1pbmd0ZXN0czogeG1sbGludCQoRVhFRVhUKSBkYmExMDAwMDAueG1sCisJQGVjaG8gIiMjIFRpbWluZyB0ZXN0cyB0byB0cnkgdG8gZGV0ZWN0IHBlcmZvcm1hbmNlIgorCUBlY2hvICIjIyBhcyB3ZWxsIGEgbWVtb3J5IHVzYWdlIGJyZWFrYWdlIHdoZW4gc3RyZWFtaW5nIgorCUBlY2hvICIjIyAxLyB1c2luZyB0aGUgZmlsZSBpbnRlcmZhY2UiCisJQGVjaG8gIiMjIDIvIHVzaW5nIHRoZSBtZW1vcnkgaW50ZXJmYWNlIgorCUBlY2hvICIjIyAzLyByZXBlYXRlZCBET00gcGFyc2luZyIKKwlAZWNobyAiIyMgNC8gcmVwZWF0ZWQgRE9NIHZhbGlkYXRpb24iCisJLUAoJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1zdHJlYW0gLS10aW1pbmcgZGJhMTAwMDAwLnhtbDsgXAorCSAgIE1FTT1gY2F0IC5tZW1kdW1wIHwgZ3JlcCAiTUVNT1JZIEFMTE9DQVRFRCIgfCBhd2sgJ3sgcHJpbnQgJCQ3fSdgO1wKKwkgICBpZiBbICIkJE1FTSIgIT0gIiIgXSA7IHRoZW4gZWNobyBVc2luZyAkJE1FTSBieXRlcyA7IGZpIDsgXAorCSAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICBleGl0IDApCisJLUAoJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1zdHJlYW0gLS10aW1pbmcgLS1tZW1vcnkgZGJhMTAwMDAwLnhtbDsgXAorCSAgIE1FTT1gY2F0IC5tZW1kdW1wIHwgZ3JlcCAiTUVNT1JZIEFMTE9DQVRFRCIgfCBhd2sgJ3sgcHJpbnQgJCQ3fSdgO1wKKwkgICBpZiBbICIkJE1FTSIgIT0gIiIgXSA7IHRoZW4gZWNobyBVc2luZyAkJE1FTSBieXRlcyA7IGZpIDsgXAorCSAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICBleGl0IDApCisJLUAoJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS1ub291dCAtLXRpbWluZyAtLXJlcGVhdCAkKHNyY2RpcikvdGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbDsgXAorCSAgIE1FTT1gY2F0IC5tZW1kdW1wIHwgZ3JlcCAiTUVNT1JZIEFMTE9DQVRFRCIgfCBhd2sgJ3sgcHJpbnQgJCQ3fSdgO1wKKwkgICBpZiBbICIkJE1FTSIgIT0gIiIgXSA7IHRoZW4gZWNobyBVc2luZyAkJE1FTSBieXRlcyA7IGZpIDsgXAorCSAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICBleGl0IDApCisKK1ZUaW1pbmd0ZXN0czogeG1sbGludCQoRVhFRVhUKQorCS1AKCQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0tbm9vdXQgLS10aW1pbmcgLS12YWxpZCAtLXJlcGVhdCAkKHNyY2RpcikvdGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbDsgXAorCSAgIE1FTT1gY2F0IC5tZW1kdW1wIHwgZ3JlcCAiTUVNT1JZIEFMTE9DQVRFRCIgfCBhd2sgJ3sgcHJpbnQgJCQ3fSdgO1wKKwkgICBpZiBbICIkJE1FTSIgIT0gIiIgXSA7IHRoZW4gZWNobyBVc2luZyAkJE1FTSBieXRlcyA7IGZpIDsgXAorCSAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICBleGl0IDApCisKK0MxNE50ZXN0cyA6IHRlc3RDMTROJChFWEVFWFQpCisJQGVjaG8gIiMjIEMxNE4gYW5kIFhQYXRoIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIG0gaW4gd2l0aC1jb21tZW50cyB3aXRob3V0LWNvbW1lbnRzIDEtMS13aXRob3V0LWNvbW1lbnRzIGV4Yy13aXRob3V0LWNvbW1lbnRzIDsgZG8gXAorCSAgICBmb3IgaSBpbiAkKHNyY2RpcikvdGVzdC9jMTRuLyQkbS8qLnhtbCA7IGRvICBcCisJCWlmIFsgISAtZCAkJGkgXSA7IHRoZW4gXAorCQkgICAgbmFtZT1gYmFzZW5hbWUgJCRpIC54bWxgOyBcCisJCSAgICBjbWRsaW5lPSIkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS90ZXN0QzE0TiAtLSQkbSAkJGkiOyBcCisJCSAgICBpZiBbIC1mICQoc3JjZGlyKS90ZXN0L2MxNG4vJCRtLyQkbmFtZS54cGF0aCBdIDsgdGhlbiBcCisJCQljbWRsaW5lPSIkJGNtZGxpbmUgJChzcmNkaXIpL3Rlc3QvYzE0bi8kJG0vJCRuYW1lLnhwYXRoIjsgXAorCQkJaWYgWyAtZiAkKHNyY2RpcikvdGVzdC9jMTRuLyQkbS8kJG5hbWUubnMgXSA7IHRoZW4gXAorCQkJICAgIGNtZGxpbmU9IiQkY21kbGluZSAnYGNhdCAkKHNyY2RpcikvdGVzdC9jMTRuLyQkbS8kJG5hbWUubnNgJyI7IFwKKwkJCWZpOyBcCisJCSAgICBmaTsgXAorCQkgICAgJCRjbWRsaW5lID4gJChzcmNkaXIpL3Rlc3QvYzE0bi90ZXN0LnRtcDsgXAorCQkgICAgaWYgWyAkJD8gLWVxIDAgXTsgdGhlbiBcCisJCQlkaWZmICAkKHNyY2RpcikvcmVzdWx0L2MxNG4vJCRtLyQkbmFtZSAkKHNyY2RpcikvdGVzdC9jMTRuL3Rlc3QudG1wOyBcCisJCQlpZiBbICQkPyAtbmUgMCBdOyB0aGVuIFwKKwkJCSAgICBlY2hvICJUZXN0ICQkbS8kJG5hbWUgZmFpbGVkIjsgXAorCQkJICAgIGNhdCAkKHNyY2RpcikvdGVzdC9jMTRuL3Rlc3QudG1wOyBcCisJCQlmaTsgXAorCQkgICAgZWxzZSBcCisJCQllY2hvICJDMTROIGZhaWxlZCI7IFwKKwkJICAgIGZpOyBcCisJCSAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJCWZpOyBcCisJCXJtIC1mICQoc3JjZGlyKS90ZXN0L2MxNG4vdGVzdC50bXA7IFwKKwkgICAgZG9uZTsgXAorCWRvbmUpCisKK1NjaGVtYXN0ZXN0czogdGVzdFNjaGVtYXMkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgU2NoZW1hcyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L3NjaGVtYXMvKl8qLnhzZCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSB8IHNlZCAncytfLiorKydgOyBcCisJICBzbm89YGJhc2VuYW1lICQkaSB8IHNlZCAncysuKl9cKC4qXCkueHNkK1wxKydgOyBcCisJICBmb3IgaiBpbiAkKHNyY2RpcikvdGVzdC9zY2hlbWFzLyIkJG5hbWUiXyoueG1sIDsgZG8gXAorCSAgICAgIGlmIFsgLWYgJCRqIF0gOyB0aGVuIFwKKwkgICAgICB4bm89YGJhc2VuYW1lICQkaiB8IHNlZCAncysuKl9cKC4qXCkueG1sK1wxKydgOyBcCisJICAgICAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvc2NoZW1hcy8iJCRuYW1lIl8iJCRzbm8iXyIkJHhubyIgXTsgXAorCSAgICAgIHRoZW4gXAorCQkgIGVjaG8gTmV3IHRlc3QgZmlsZSAiJCRuYW1lIl8iJCRzbm8iXyIkJHhubyIgOyBcCisJCSAgJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikvdGVzdFNjaGVtYXMgJCRpICQkaiBcCisJCSAgICA+ICQoc3JjZGlyKS9yZXN1bHQvc2NoZW1hcy8iJCRuYW1lIl8iJCRzbm8iXyIkJHhubyIgXAorCQkgICAgMj4gJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWFzLyIkJG5hbWUiXyIkJHNubyJfIiQkeG5vIi5lcnI7IFwKKwkgICAgICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGVsc2UgXAorCSAgICAgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3Rlc3RTY2hlbWFzICQkaSAkJGogXAorCQkgICAgPiByZXMuJCRuYW1lIDI+IGVyci4kJG5hbWU7XAorCSAgICAgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWFzLyIkJG5hbWUiXyIkJHNubyJfIiQkeG5vIiBcCisJCSAgICAgICByZXMuJCRuYW1lO1wKKwkgICAgICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3NjaGVtYXMvIiQkbmFtZSJfIiQkc25vIl8iJCR4bm8iLmVyciBcCisJCSAgICAgICBlcnIuJCRuYW1lO1wKKwkJICBncmVwIFVuaW1wbGVtZW50ZWQgZXJyLiQkbmFtZWA7IFwKKwkgICAgICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gIiQkbmFtZSJfIiQkc25vIl8iJCR4bm8iIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICAgICAgcm0gcmVzLiQkbmFtZSBlcnIuJCRuYW1lIDsgXAorCSAgICAgICBmaSA7IGZpIDtcCisJICBkb25lOyBkb25lKQorCitSZWxheHRlc3RzOiB4bWxsaW50JChFWEVFWFQpCisJQChlY2hvID4gLm1lbWR1bXApCisJQGVjaG8gIiMjIFJlbGF4LU5HIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvcmVsYXhuZy8qLnJuZyA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSB8IHNlZCAncytcLnJuZysrJ2A7IFwKKwkgIGlmIFsgISAtZiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfdmFsaWQgXSA7IHRoZW4gXAorCSAgICAgIGVjaG8gTmV3IHNjaGVtYXMgJCRuYW1lIDsgXAorCSAgICAgICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQkKEVYRUVYVCkgLS1ub291dCAtLXJlbGF4bmcgJChzcmNkaXIpL3Rlc3QvcmVsYXhuZy90dXRvckEucm5nICQkaSBcCisJCSAgICAgID4gJChzcmNkaXIpL3Jlc3VsdC9yZWxheG5nLyIkJG5hbWUiX3ZhbGlkIFwKKwkJICAgICAgMj4gJChzcmNkaXIpL3Jlc3VsdC9yZWxheG5nLyIkJG5hbWUiX2VycjsgXAorCSAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgIGVsc2UgXAorCSAgICAgIGxvZz1gJChDSEVDS0VSKSAkKHRvcF9idWlsZGRpcikveG1sbGludCQoRVhFRVhUKSAtLW5vb3V0IC0tcmVsYXhuZyAkKHNyY2RpcikvdGVzdC9yZWxheG5nL3R1dG9yQS5ybmcgJCRpIFwKKwkgICAgICA+IHJlcy4kJG5hbWUgMj4gZXJyLiQkbmFtZTtcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9yZWxheG5nLyIkJG5hbWUiX3ZhbGlkIFwKKwkJICAgcmVzLiQkbmFtZTtcCisJICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfZXJyIFwKKwkJICAgZXJyLiQkbmFtZSB8IGdyZXAgLXYgImVycm9yIGRldGVjdGVkIGF0IjtcCisJICAgICAgZ3JlcCBVbmltcGxlbWVudGVkIGVyci4kJG5hbWVgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gc2NoZW1hcyAkJG5hbWUgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgIHJtIHJlcy4kJG5hbWUgZXJyLiQkbmFtZSA7IFwKKwkgIGZpOyBcCisJICBmb3IgaiBpbiAkKHNyY2RpcikvdGVzdC9yZWxheG5nLyIkJG5hbWUiXyoueG1sIDsgZG8gXAorCSAgICAgIGlmIFsgLWYgJCRqIF0gOyB0aGVuIFwKKwkgICAgICB4bm89YGJhc2VuYW1lICQkaiB8IHNlZCAncysuKl9cKC4qXCkueG1sK1wxKydgOyBcCisJICAgICAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iIF07IFwKKwkgICAgICB0aGVuIFwKKwkJICBlY2hvIE5ldyB0ZXN0IGZpbGUgIiQkbmFtZSJfIiQkeG5vIiA7IFwKKwkJICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50JChFWEVFWFQpIC0tbm9vdXQgLS1yZWxheG5nICQkaSAkJGogXAorCQkgICAgPiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIiBcCisJCSAgICAyPiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIi5lcnI7IFwKKwkgICAgICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGVsc2UgXAorCSAgICAgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQkKEVYRUVYVCkgLS1ub291dCAtLXJlbGF4bmcgJCRpICQkaiBcCisJCSAgICA+IHJlcy4kJG5hbWUgMj4gZXJyLiQkbmFtZTtcCisJICAgICAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIiBcCisJCSAgICAgICByZXMuJCRuYW1lO1wKKwkgICAgICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIi5lcnIgXAorCQkgICAgICAgZXJyLiQkbmFtZSB8IGdyZXAgLXYgImVycm9yIGRldGVjdGVkIGF0IjtcCisJCSAgZ3JlcCBVbmltcGxlbWVudGVkIGVyci4kJG5hbWVgOyBcCisJCSAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gIiQkbmFtZSJfIiQkeG5vIiByZXN1bHQgOyBlY2hvICQkbG9nIDsgZmkgOyBcCisJICAgICAgICAgIHJtIHJlcy4kJG5hbWUgZXJyLiQkbmFtZSA7IFwKKwkgICAgICAgZmkgOyBmaSA7IFwKKwkgIGRvbmU7IGRvbmUpCisJQGVjaG8gIiMjIFJlbGF4LU5HIHN0cmVhbWluZyByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L3JlbGF4bmcvKi5ybmcgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGkgfCBzZWQgJ3MrXC5ybmcrKydgOyBcCisJICBmb3IgaiBpbiAkKHNyY2RpcikvdGVzdC9yZWxheG5nLyIkJG5hbWUiXyoueG1sIDsgZG8gXAorCSAgICAgIGlmIFsgLWYgJCRqIF0gOyB0aGVuIFwKKwkgICAgICB4bm89YGJhc2VuYW1lICQkaiB8IHNlZCAncysuKl9cKC4qXCkueG1sK1wxKydgOyBcCisJICAgICAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvcmVsYXhuZy8iJCRuYW1lIl8iJCR4bm8iIF07IFwKKwkgICAgICB0aGVuIFwKKwkJICBlY2hvIE5ldyB0ZXN0IGZpbGUgIiQkbmFtZSJfIiQkeG5vIiA7IFwKKwkJICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50JChFWEVFWFQpIC0tbm9vdXQgLS1yZWxheG5nICQkaSAkJGogXAorCQkgICAgPiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIiBcCisJCSAgICAyPiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIi5lcnI7IFwKKwkgICAgICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGVsc2UgXAorCSAgICAgICAgICBsb2c9YCQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQkKEVYRUVYVCkgLS1ub291dCAtLXN0cmVhbSAtLXJlbGF4bmcgJCRpICQkaiBcCisJCSAgICA+IHJlcy4kJG5hbWUgMj4gZXJyLiQkbmFtZTtcCisJICAgICAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICAgICAgZGlmZiAkKHNyY2RpcikvcmVzdWx0L3JlbGF4bmcvIiQkbmFtZSJfIiQkeG5vIiByZXMuJCRuYW1lO1wKKwkJICBpZiBbICIkJG5hbWUiICE9ICJ0dXRvcjEwXzEiIC1hICIkJG5hbWUiICE9ICJ0dXRvcjEwXzIiIC1hICIkJG5hbWUiICE9ICJ0dXRvcjNfMiIgLWEgIiQkbmFtZSIgIT0gIjMwNzM3NyIgLWEgIiQkbmFtZSIgIT0gInR1dG9yOF8yIiBdIDsgdGhlbiBcCisJCSAgICAgIGRpZmYgJChzcmNkaXIpL3Jlc3VsdC9yZWxheG5nLyIkJG5hbWUiXyIkJHhubyIuZXJyIFwKKwkJCSAgIGVyci4kJG5hbWUgfCBncmVwIC12ICJlcnJvciBkZXRlY3RlZCBhdCI7XAorCQkgIGZpIDsgZ3JlcCBVbmltcGxlbWVudGVkIGVyci4kJG5hbWVgOyBcCisJICAgICAgICAgIGlmIFsgLW4gIiQkbG9nIiBdIDsgdGhlbiBlY2hvICIkJG5hbWUiXyIkJHhubyIgcmVzdWx0IDsgZWNobyAkJGxvZyA7IGZpIDsgXAorCSAgICAgICAgICBybSByZXMuJCRuYW1lIGVyci4kJG5hbWUgOyBcCisJICAgICAgIGZpIDsgZmkgOyBcCisJICBkb25lOyBkb25lKQorCitTY2hlbWF0cm9udGVzdHM6IHhtbGxpbnQkKEVYRUVYVCkKKwlAKGVjaG8gPiAubWVtZHVtcCkKKwlAZWNobyAiIyMgU2NoZW1hdHJvbiByZWdyZXNzaW9uIHRlc3RzIgorCS1AKGZvciBpIGluICQoc3JjZGlyKS90ZXN0L3NjaGVtYXRyb24vKi5zY3QgOyBkbyBcCisJICBuYW1lPWBiYXNlbmFtZSAkJGkgfCBzZWQgJ3MrXC5zY3QrKydgOyBcCisJICBmb3IgaiBpbiAkKHNyY2RpcikvdGVzdC9zY2hlbWF0cm9uLyIkJG5hbWUiXyoueG1sIDsgZG8gXAorCSAgICAgIGlmIFsgLWYgJCRqIF0gOyB0aGVuIFwKKwkgICAgICB4bm89YGJhc2VuYW1lICQkaiB8IHNlZCAncysuKl9cKC4qXCkueG1sK1wxKydgOyBcCisJICAgICAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvc2NoZW1hdHJvbi8iJCRuYW1lIl8iJCR4bm8iIF07IFwKKwkgICAgICB0aGVuIFwKKwkJICBlY2hvIE5ldyB0ZXN0IGZpbGUgIiQkbmFtZSJfIiQkeG5vIiA7IFwKKwkJICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50JChFWEVFWFQpIC0tc2NoZW1hdHJvbiAkJGkgJCRqIFwKKwkJICAgID4gJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWF0cm9uLyIkJG5hbWUiXyIkJHhubyIgXAorCQkgICAgMj4gJChzcmNkaXIpL3Jlc3VsdC9zY2hlbWF0cm9uLyIkJG5hbWUiXyIkJHhubyIuZXJyOyBcCisJICAgICAgICAgIGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiO1wKKwkgICAgICBlbHNlIFwKKwkgICAgICAgICAgbG9nPWAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50JChFWEVFWFQpIC0tc2NoZW1hdHJvbiAkJGkgJCRqIFwKKwkJICAgID4gcmVzLiQkbmFtZSAyPiBlcnIuJCRuYW1lO1wKKwkgICAgICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvc2NoZW1hdHJvbi8iJCRuYW1lIl8iJCR4bm8iIFwKKwkJICAgICAgIHJlcy4kJG5hbWU7XAorCSAgICAgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvc2NoZW1hdHJvbi8iJCRuYW1lIl8iJCR4bm8iLmVyciBcCisJCSAgICAgICBlcnIuJCRuYW1lIHwgZ3JlcCAtdiAiZXJyb3IgZGV0ZWN0ZWQgYXQiO1wKKwkJICBncmVwIFVuaW1wbGVtZW50ZWQgZXJyLiQkbmFtZWA7IFwKKwkJICBpZiBbIC1uICIkJGxvZyIgXSA7IHRoZW4gZWNobyAiJCRuYW1lIl8iJCR4bm8iIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICAgICAgcm0gcmVzLiQkbmFtZSBlcnIuJCRuYW1lIDsgXAorCSAgICAgICBmaSA7IGZpIDsgXAorCSAgZG9uZTsgZG9uZSkKKworUmVsYXhOR1B5dGhvblRlc3RzOgorCUAoaWYgWyAteCAkKFBZVEhPTikgXSA7IHRoZW4gXAorCSAgICBQWVRIT05QQVRIPSQodG9wX2J1aWxkZGlyKS9weXRob246JCh0b3BfYnVpbGRkaXIpL3B5dGhvbi8ubGliczokJFBZVEhPTlBBVEggOyBcCisJICAgIGV4cG9ydCBQWVRIT05QQVRIOyBcCisJICAgIExEX0xJQlJBUllfUEFUSD0iJCh0b3BfYnVpbGRkaXIpLy5saWJzOiQkTERfTElCUkFSWV9QQVRIIiA7IFwKKwkgICAgZXhwb3J0IExEX0xJQlJBUllfUEFUSDsgXAorCSAgICBlY2hvICIjIyBSZWxheC1ORyBQeXRob24gYmFzZWQgdGVzdCBzdWl0ZSAxIiA7IFwKKwkgICAgJChDSEVDS0VSKSAkKFBZVEhPTikgJChzcmNkaXIpL2NoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZS5weSA7IFwKKwkgICAgZWNobyAiIyMgUmVsYXgtTkcgUHl0aG9uIGJhc2VkIHRlc3Qgc3VpdGUgMiIgOyBcCisJICAgICQoQ0hFQ0tFUikgJChQWVRIT04pICQoc3JjZGlyKS9jaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUyLnB5IDsgXAorCSAgZmkpCisKK1NjaGVtYXNQeXRob25UZXN0czoKKwlAKGlmIFsgLXggJChQWVRIT04pIF0gOyB0aGVuIFwKKwkgICAgUFlUSE9OUEFUSD0kKHRvcF9idWlsZGRpcikvcHl0aG9uOiQodG9wX2J1aWxkZGlyKS9weXRob24vLmxpYnM6JCRQWVRIT05QQVRIOyBcCisJICAgIGV4cG9ydCBQWVRIT05QQVRIOyBcCisJICAgIExEX0xJQlJBUllfUEFUSD0iJCh0b3BfYnVpbGRkaXIpLy5saWJzOiQkTERfTElCUkFSWV9QQVRIIiA7IFwKKwkgICAgZXhwb3J0IExEX0xJQlJBUllfUEFUSDsgXAorCSAgICBlY2hvICIjIyBYTUwgU2NoZW1hcyBkYXRhdHlwZXMgUHl0aG9uIGJhc2VkIHRlc3Qgc3VpdGUiIDsgXAorCSAgICBlY2hvICIjIyBJdCBpcyBub3JtYWwgdG8gc2VlIDExIGVycm9ycyByZXBvcnRlZCIgOyBcCisJICAgICQoQ0hFQ0tFUikgJChQWVRIT04pICQoc3JjZGlyKS9jaGVjay14c2RkYXRhLXRlc3Qtc3VpdGUucHkgOyBcCisJICBmaSkKKwlAKGlmIFsgLXggJChQWVRIT04pIC1hIC1kIHhzdGMgXSA7IHRoZW4gY2QgeHN0YyA7ICQoTUFLRSkgQ0hFQ0tFUj0iJChDSEVDS0VSKSIgTUFLRUZMQUdTKz0tLXNpbGVudCBweXRlc3RzIDsgZmkpCisKK1BhdHRlcm50ZXN0czogeG1sbGludCQoRVhFRVhUKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUBlY2hvICIjIyBQYXR0ZXJuIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoZm9yIGkgaW4gJChzcmNkaXIpL3Rlc3QvcGF0dGVybi8qLnBhdCA7IGRvIFwKKwkgIG5hbWU9YGJhc2VuYW1lICQkaSAucGF0YDsgXAorCSAgaWYgWyAtZiAkKHNyY2RpcikvdGVzdC9wYXR0ZXJuLyQkbmFtZS54bWwgXSA7IHRoZW4gXAorCSAgaWYgWyAhIC1mICQoc3JjZGlyKS9yZXN1bHQvcGF0dGVybi8kJG5hbWUgXSA7IHRoZW4gXAorCSAgICAgIHJtIC1mIHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZWNobyBOZXcgdGVzdCBmaWxlICQkbmFtZSA7IFwKKwkgICAgICBmb3IgcGF0IGluIGBjYXQgJCRpYCA7IGRvIFwKKwkgICAgICAkKENIRUNLRVIpICQodG9wX2J1aWxkZGlyKS94bWxsaW50IC0td2Fsa2VyIC0tcGF0dGVybiAkJHBhdCAkKHNyY2RpcikvdGVzdC9wYXR0ZXJuLyQkbmFtZS54bWwgPj4gJChzcmNkaXIpL3Jlc3VsdC9wYXR0ZXJuLyQkbmFtZSA7IFwKKwkgICAgICBncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIjtcCisJICAgICAgZG9uZSA7XAorCSAgZWxzZSBcCisJICAgICAgcm0gLWYgcmVzdWx0LiQkbmFtZSA7IFwKKwkgICAgICBsc3Q9YGNhdCAkJGlgIDsgXAorCSAgICAgIGxvZz1gZm9yIHBhdCBpbiAkJGxzdCA7IGRvICQoQ0hFQ0tFUikgJCh0b3BfYnVpbGRkaXIpL3htbGxpbnQgLS13YWxrZXIgLS1wYXR0ZXJuICQkcGF0ICQoc3JjZGlyKS90ZXN0L3BhdHRlcm4vJCRuYW1lLnhtbCAyPiYxID4+IHJlc3VsdC4kJG5hbWUgOyBcCisJICAgICAgZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCI7XAorCSAgICAgIGRvbmUgO1wKKwkgICAgICBkaWZmICQoc3JjZGlyKS9yZXN1bHQvcGF0dGVybi8kJG5hbWUgcmVzdWx0LiQkbmFtZWAgOyBcCisJICAgICAgaWYgWyAtbiAiJCRsb2ciIF0gOyB0aGVuIGVjaG8gJCRuYW1lIHJlc3VsdCA7IGVjaG8gJCRsb2cgOyBmaSA7IFwKKwkgICAgICBybSByZXN1bHQuJCRuYW1lIDsgXAorCSAgZmkgOyBmaSA7IGRvbmUgOykKKworTW9kdWxlVGVzdHM6IHRlc3RNb2R1bGUkKEVYRUVYVCkgdGVzdGRzby5sYQorCUBlY2hvICIjIyBNb2R1bGUgdGVzdHMiCisJQCguL3Rlc3RNb2R1bGUkKEVYRUVYVCkpCisKK2NsZWFudXA6CisJLUAoZmluZCAuIC1uYW1lIC5cI1wqIC1leGVjIHJtIHt9IFw7KQorCS1AKGZpbmQgLiAtbmFtZSBcKi5nY2RhIC1vICouZ2NubyAtZXhlYyBybSB7fSBcOykKKwktQChmaW5kIC4gLW5hbWUgXCoub3JpZyAtbyAtbmFtZSBcKi5yZWogLW8gLW5hbWUgXCoub2xkIC1leGVjIHJtIHt9IFw7KQorCitkaXN0LWhvb2s6IGNsZWFudXAgbGlieG1sMi5zcGVjCisJLWNwIGxpYnhtbDIuc3BlYyAkKGRpc3RkaXIpCisJKGNkICQoc3JjZGlyKSA7IHRhciAtY2YgLSAtLWV4Y2x1ZGUgQ1ZTIC0tZXhjbHVkZSAuc3ZuIHdpbjMyIG1hY29zIHZtcyBWeFdvcmtzIGJha2VmaWxlIHRlc3QgcmVzdWx0KSB8IChjZCAkKGRpc3RkaXIpOyB0YXIgeGYgLSkKKworZGlzdC1zb3VyY2U6IGRpc3RkaXIKKwkkKEFNVEFSKSAtY2hvZiAtIC0tZXhjbHVkZSBUZXN0cyAtLWV4Y2x1ZGUgdGVzdCAtLWV4Y2x1ZGUgcmVzdWx0ICQoZGlzdGRpcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPmBlY2hvICIkKGRpc3RkaXIpIiB8IHNlZCAicytsaWJ4bWwyK2xpYnhtbDItc291cmNlcysiYC50YXIuZ3oKKworZGlzdC10ZXN0OiBkaXN0ZGlyCisJKG1rZGlyIC1wICQoZGlzdGRpcikpCisJKGNkICQoc3JjZGlyKSA7IHRhciAtY2YgLSAtLWV4Y2x1ZGUgQ1ZTIC0tZXhjbHVkZSAuc3ZuIHhzdGMvVGVzdHMpIHwgKGNkICQoZGlzdGRpcik7IHRhciB4ZiAtKQorCXRhciAtY2YgLSAkKGRpc3RkaXIpL3Rlc3QgJChkaXN0ZGlyKS9yZXN1bHQgJChkaXN0ZGlyKS94c3RjL1Rlc3RzICAkKGRpc3RkaXIpL01ha2VmaWxlLnRlc3RzICQoZGlzdGRpcikvUkVBRE1FICQoZGlzdGRpcikvUkVBRE1FLnRlc3RzICQoZGlzdGRpcikvQVVUSE9SUyAkKGRpc3RkaXIpL3Rlc3RhcGkuYyAkKGRpc3RkaXIpL3J1bnRlc3QuYyAkKGRpc3RkaXIpL3J1bnN1aXRlLmMgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPmBlY2hvICIkKGRpc3RkaXIpIiB8IHNlZCAicytsaWJ4bWwyK2xpYnhtbDItdGVzdHMrImAudGFyLmd6CisJQChybSAtcmYgJChkaXN0ZGlyKS94c3RjL1Rlc3QpCisKK2NsZWFudGFyOgorCUAocm0gLWYgbGlieG1sKi50YXIuZ3ogQ09QWUlORy5MSUIpCisKK3JwbTogY2xlYW51cCBjbGVhbnRhcgorCUAodW5zZXQgQ0RQQVRIIDsgJChNQUtFKSBkaXN0LXNvdXJjZSBkaXN0ICYmIHJwbWJ1aWxkIC10YSAkKGRpc3RkaXIpLnRhci5neikKKworeG1sMkNvbmYuc2g6IHhtbDJDb25mLnNoLmluIE1ha2VmaWxlCisJc2VkIC1lICdzP1xAWE1MX0xJQkRJUlxAPyQoWE1MX0xJQkRJUik/ZycgXAorCSAgICAtZSAncz9cQFhNTF9JTkNMVURFRElSXEA/JChYTUxfSU5DTFVERURJUik/ZycgXAorCSAgICAtZSAncz9cQFZFUlNJT05cQD8kKFZFUlNJT04pP2cnIFwKKwkgICAgLWUgJ3M/XEBYTUxfTElCU1xAPyQoWE1MX0xJQlMpP2cnIFwKKwkgICAgICAgPCAkKHNyY2RpcikveG1sMkNvbmYuc2guaW4gPiB4bWwyQ29uZi50bXAgXAorCSYmIG12IHhtbDJDb25mLnRtcCB4bWwyQ29uZi5zaAorCitpbnN0YWxsLWRhdGEtbG9jYWw6IAorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoQkFTRV9ESVIpLyQoRE9DX01PRFVMRSkKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL0NvcHlyaWdodCAkKERFU1RESVIpJChCQVNFX0RJUikvJChET0NfTU9EVUxFKQorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoRVhBTVBMRVNfRElSKQorCS1ASU5TVEFMTEAgLW0gMDY0NCAkKHNyY2RpcikveG1sbGludC5jICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3Rlc3RTQVguYyAkKERFU1RESVIpJChFWEFNUExFU19ESVIpCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS90ZXN0SFRNTC5jICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3Rlc3RYUGF0aC5jICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwordW5pbnN0YWxsLWxvY2FsOgorCXJtIC1mICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikvdGVzdFhQYXRoLmMKKwlybSAtZiAkKERFU1RESVIpJChFWEFNUExFU19ESVIpL3Rlc3RIVE1MLmMKKwlybSAtZiAkKERFU1RESVIpJChFWEFNUExFU19ESVIpL3Rlc3RTQVguYworCXJtIC1mICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikveG1sbGludC5jCisJcm0gLXJmICQoREVTVERJUikkKEVYQU1QTEVTX0RJUikKKwlybSAtZiAkKERFU1RESVIpJChCQVNFX0RJUikvJChET0NfTU9EVUxFKS9Db3B5cmlnaHQKKwlybSAtcmYgJChERVNURElSKSQoQkFTRV9ESVIpLyQoRE9DX01PRFVMRSkKKwordHN0OiB0c3QuYworCSQoQ0MpICQoQ0ZMQUdTKSAtSWluY2x1ZGUgLW8gdHN0IHRzdC5jIC5saWJzL2xpYnhtbDIuYSAtbHB0aHJlYWQgLWxtIC1segorCitzcGFyc2U6IGNsZWFuCisJJChNQUtFKSBDQz1jZ2NjCisKK2NvdjogY2xlYW4tY292CisJaWYgWyAiYGVjaG8gJChMREZMQUdTKSB8IGdyZXAgY292ZXJhZ2VgIiA9ICIiIF0gOyB0aGVuIFwKKwkgICAgZWNobyBub3QgY29uZmlndXJlZCB3aXRoIGNvdmVyYWdlOyBleGl0IDEgOyBmaQorCWlmIFsgISAteCAkKExDT1YpIC1vICEgLXggJChHRU5IVE1MKSBdIDsgdGhlbiBcCisJICAgIGVjaG8gTmVlZCAkKExDT1YpIGFuZCAkKEdFTkhUTUwpIGV4Y2VjdXRhYmxlczsgZXhpdCAxIDsgZmkKKwktQCgkKE1BS0UpIGNoZWNrKQorCS1AKC4vcnVuc3VpdGUkKEVYRUVYVCkpCisJbWtkaXIgJCh0b3BfYnVpbGRkaXIpL2NvdmVyYWdlCisJJChMQ09WKSAtYyAtbyAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UvbGlieG1sMi5pbmZvLnRtcCAtZCAkKHRvcF9zcmNkaXIpCisJJChMQ09WKSAtciAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UvbGlieG1sMi5pbmZvLnRtcCAtbyAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UvbGlieG1sMi5pbmZvICp1c3IqCisJcm0gJCh0b3BfYnVpbGRkaXIpL2NvdmVyYWdlL2xpYnhtbDIuaW5mby50bXAKKwkkKEdFTkhUTUwpIC1zIC10ICJsaWJ4bWwyIiAtbyAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UgLS1sZWdlbmQgJCh0b3BfYnVpbGRkaXIpL2NvdmVyYWdlL2xpYnhtbDIuaW5mbworCWVjaG8gIkNvdmVyYWdlIHJlcG9ydCBpcyBpbiAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UvaW5kZXguaHRtbCIKKworY2xlYW4tY292OgorCXJtIC1yZiAkKHRvcF9idWlsZGRpcikvY292ZXJhZ2UKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9NYWtlZmlsZS50ZXN0cyBiL2xpYnhtbDItMi43LjcvTWFrZWZpbGUudGVzdHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE5Y2JmYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvTWFrZWZpbGUudGVzdHMKQEAgLTAsMCArMSw0MSBAQAorIworIyBZb3UgbWF5IGhhdmUgdG8gYWp1c3QgdG8gY2FsbCB0aGUgcmlnaHQgY29tcGlsZXIsIG9yIG90aGVyIG9wcmlvbnMKKyMgZm9yIGNvbXBpbGluZyBhbmQgbGlua2luZworIworCitDRkxBR1M9YHhtbDItY29uZmlnIC0tY2ZsYWdzYAorTElCUz1geG1sMi1jb25maWcgLS1saWJzYAorVEhSRUFETElCPSAtbHB0aHJlYWQKK0VYRUVYVD0KKworYWxsOiBydW50ZXN0JChFWEVFWFQpIHJ1bnN1aXRlJChFWEVFWFQpIHRlc3RhcGkkKEVYRUVYVCkgdGVzdGNoYXIkKEVYRUVYVCkKKworY2xlYW46CisJJChSTSkgcnVudGVzdCQoRVhFRVhUKSBydW5zdWl0ZSQoRVhFRVhUKSB0ZXN0YXBpJChFWEVFWFQpCisKK2NoZWNrOiBkb19ydW50ZXN0IGRvX3Rlc3RjaGFyIGRvX3Rlc3RhcGkgZG9fcnVuc3VpdGUKKworcnVudGVzdCQoRVhFRVhUKTogcnVudGVzdC5jCisJJChDQykgLW8gcnVudGVzdCQoRVhFRVhUKSAkKENGTEFHUykgcnVudGVzdC5jICQoTElCUykgJChUSFJFQURMSUIpCisKK2RvX3J1bnRlc3Q6IHJ1bnRlc3QkKEVYRUVYVCkKKwkuL3J1bnRlc3QKKworcnVuc3VpdGUkKEVYRUVYVCk6IHJ1bnN1aXRlLmMKKwkkKENDKSAtbyBydW5zdWl0ZSQoRVhFRVhUKSAkKENGTEFHUykgcnVuc3VpdGUuYyAkKExJQlMpCisKK2RvX3J1bnN1aXRlOiBydW5zdWl0ZSQoRVhFRVhUKQorCS4vcnVuc3VpdGUKKwordGVzdGFwaSQoRVhFRVhUKTogdGVzdGFwaS5jCisJJChDQykgLW8gdGVzdGFwaSQoRVhFRVhUKSAkKENGTEFHUykgdGVzdGFwaS5jICQoTElCUykKKworZG9fdGVzdGFwaTogdGVzdGFwaSQoRVhFRVhUKQorCS4vdGVzdGFwaQorCit0ZXN0Y2hhciQoRVhFRVhUKTogdGVzdGNoYXIuYworCSQoQ0MpIC1vIHRlc3RjaGFyJChFWEVFWFQpICQoQ0ZMQUdTKSB0ZXN0Y2hhci5jICQoTElCUykKKworZG9fdGVzdGNoYXI6IHRlc3RjaGFyJChFWEVFWFQpCisJLi90ZXN0Y2hhcgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L05FV1MgYi9saWJ4bWwyLTIuNy43L05FV1MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RmZGRhNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvTkVXUwpAQCAtMCwwICsxLDIwMDYgQEAKKworICAgICAgICBORVdTIGZpbGUgZm9yIGxpYnhtbDIKKworICBOb3RlIHRoYXQgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBuZXdzIHdlYnBhZ2UgYXQ6CisgICAgICAgaHR0cDovL3htbHNvZnQub3JnL25ld3MuaHRtbAorCitJdGVtcyBub3QgZmluaXNoZWQgYW5kIHdvcmtlZCBvbiwgZ2V0IGluIHRvdWNoIHdpdGggdGhlIGxpc3QgaWYgeW91IHdhbnQKK3RvIGhlbHAgdGhvc2UgICAtIE1vcmUgdGVzdGluZyBvbiBSZWxheE5HCisgICAtIEZpbmlzaGluZyB1cCBYTUwKKyAgU2NoZW1hcworCitUaGUgY2hhbmdlIGxvZyBhdCAKK0NoYW5nZUxvZy5odG1sCisgZGVzY3JpYmVzIHRoZSByZWNlbnRzIGNvbW1pdHMKK3RvIHRoZSBTVk4gYXQgCitodHRwOi8vc3ZuLmdub21lLm9yZy92aWV3dmMvbGlieG1sMi90cnVuay8KKyBjb2RlIGJhc2UuSGVyZSBpcyB0aGUgbGlzdCBvZiBwdWJsaWMgcmVsZWFzZXM6CisyLjcuNjogT2N0ICA2IDIwMDk6CisgICAtICBCdWcgRml4ZXM6CisgICAgIFJlc3RvcmUgdGhyZWFkIHN1cHBvcnQgaW4gZGVmYXVsdCBjb25maWd1cmF0aW9uIChBbmRyZXcgVy4gTm9zZW5rbyksCisgICAgIFVSSSB3aXRoIG5vIHBhdGggcGFyc2luZyBwcm9ibGVtIChEYW5pZWwgVmVpbGxhcmQpLAorICAgICBNaW5vciBwYXRjaCBmb3IgY29uZGl0aW9uYWwgZGVmaW5lcyBpbiB0aHJlYWRzLmMgKEVyaWMgWnVyY2hlcikKKyAgCisKKworMi43LjU6IFNlcCAyNCAyMDA5OgorICAgLSAgQnVnIEZpeGVzOgorICAgIFJlc3RvcmUgYmVoYXZpb3Igb2YgLS13aXRoLXRocmVhZHMgd2l0aG91dCBhcmd1bWVudCAoQW5kcmV3IFcuIE5vc2Vua28pLAorICAgIEZpeCBtZW1vcnkgbGVhayB3aGVuIGRvYyBpcyBOVUxMIChSb2IgUmljaGFyZHMpLAorICAgIDU5NTc5MiBmaXhpbmcgYSBSZWxheE5HIGJ1ZyBpbnRyb2R1Y2VkIGluIDIuNy40IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBhIFJlbGF4bmcgYnVnIHJhaXNlZCBieSBsaWJ2aXJ0IHRlc3Qgc3VpdGUgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGEgcGFyc2luZyBwcm9ibGVtIHdpdGggbGl0dGxlIGRhdGEgYXQgc3RhcnR1cCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBsaW5rIHB5dGhvbiBtb2R1bGUgd2l0aCBweXRob24gbGlicmFyeSAoRnJlZGVyaWMgQ3JvemF0KSwKKyAgICA1OTQ4NzQgRm9yZ290IGFuIGZjbG9zZSBpbiB4bWxsaW50IChEYW5pZWwgVmVpbGxhcmQpCisgIAorICAgLSAgQ2xlYW51cDoKKyAgICBBZGRpbmcgc3ltYm9scy54bWwgdG8gRVhUUkFfRElTVCAoRGFuaWVsIFZlaWxsYXJkKQorICAKKworCisyLjcuNDogU2VwIDEwIDIwMDk6CisgICAtIEltcHJvdmVtZW50czoKKyAgICBTd2l0Y2ggdG8gR0lUIChHTk9NRSksCisgICAgQWRkIHN5bWJvbCB2ZXJzaW9uaW5nIHRvIGxpYnhtbDIgc2hhcmVkIGxpYnMgKERhbmllbCBWZWlsbGFyZCkKKyAgCisgICAtIFBvcnRhYmlsaXR5OgorICAgIDU5Mzg1NyB0cnkgdG8gd29yayBhcm91bmQgdGhyZWFkIHBibSBNaW5HVyA0LjQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTk0MjUwIHJlbmFtZSBBVFRSSUJVVEVfQUxMT0NfU0laRSB0byBhdm9pZCBjbGFzaGVzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBXaW5kb3dzIGJ1aWxkICogcmVsYXhuZy5jOiBmaXggd2luZG93cyBidWlsZCAoUm9iIFJpY2hhcmRzKSwKKyAgICBGaXggdGhlIGdsb2JhbHMuaCB0byB1c2UgWE1MUFVCRlVOIChQYXVsIFNtaXRoKSwKKyAgICBQcm9ibGVtIHdpdGggZXh0ZXJuIGV4dGVybiBpbiBoZWFkZXIgKERhbmllbCBWZWlsbGFyZCksCisgICAgQWRkIC1sbmV0d29yayBmb3IgY29tcGlsaW5nIG9uIEhhaWt1IChTY290dCBNY0NyZWFyeSksCisgICAgUnVudGVzdCBwb3J0YWJpbGl0eSBwYXRjaCBmb3IgU29sYXJpcyAoVGltIFJpY2UpLAorICAgIFNtYWxsIHBhdGNoIHRvIGFjY29tb2RhdGUgdGhlIEhhaWt1IE9TIChTY290dCBNY0NyZWFyeSksCisgICAgNTg0NjA1IHBhY2thZ2UgVnhXb3JrcyBmb2xkZXIgaW4gdGhlIGRpc3RyaWJ1dGlvbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NzQwMTcgUmVhbGxvYyB0b28gZXhwZW5zaXZlIG9uIG1vc3QgcGxhdGZvcm0gKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IHdpbmRvd3MgYnVpbGQgKFJvYiBSaWNoYXJkcyksCisgICAgNTQ1NTc5IGRvZXNuJ3QgY29tcGlsZSB3aXRob3V0IHNjaGVtYSBzdXBwb3J0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIHhtbGxpbnQgdXNlIHhtbEdldE5vZGVQYXRoIHdoZW4gbm90IGNvbXBpbGVkIGluIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIFRyeSB0byBhdm9pZCBfX2ltcF9feG1sRnJlZSBsaW5rIHRyb3VibGUgb24gbXN5cyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBBbGxvdyB0byBzZWxlY3QgdGhlIHRocmVhZGluZyBzeXN0ZW0gb24gV2luZG93cyAoTFJOKSwKKyAgICBGaXggU29sYXJpcyBiaW5hcnkgbGlua3MsIGNsZWFudXBzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEJ1ZyA1NzEwNTkgw6LCgMKTIE1TVkMgZG9lc24ndCB3b3JrIHdpdGggdGhlIGJha2VmaWxlIChJbnRyb24pLAorICAgIGZpeCBBVFRSSUJVVEVfUFJJTlRGIGhlYWRlciBjbGFzaCAoQmVsZ2Fib3IgYW5kIE1pa2UgSG9tbWV5KSwKKyAgICBmaXhlcyBmb3IgQm9ybGFuZC9Db2RlR2Vhci9FbWJhcmNhZGVybyBjb21waWxlcnMgKEVyaWMgWnVyY2hlcikKKyAgCisgICAtIERvY3VtZW50YXRpb246CisgICAgNTQ0OTEwIHR5cG86ICJyZW5jaWxpYXRlTnMiIChMZW9uaWQgRXZkb2tpbW92KSwKKyAgICBBZGQgVnhXb3JrcyB0byBsaXN0IG9mIE9TZXMgKERhbmllbCBWZWlsbGFyZCksCisgICAgUmVnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgdXBkYXRlIGZvciBnaXQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTYwNTI0IMOCwr8geG1sVGV4dFJlYWRlckxvY2FsTmFtZSBkZXNjcmlwdGlvbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBBZGRlZCBzcG9uc29yaW5nIGJ5IEFPRSBtZWRpYSBmb3IgdGhlIHNlcnZlciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICB1cGRhdGVkIFVSTHMgZm9yIEdOT01FIChWaW5jZW50IExlZmV2cmUpLAorICAgIG1vcmUgd2FybmluZ3MgYWJvdXQgeG1sQ2xlYW51cFRocmVhZHMgYW5kIHhtbENsZWFudXBQYXJzZXIgKERhbmllbCBWZWlsbGFyZCkKKyAgCisgICAtIEJ1ZyBmaXhlczoKKyAgICA1OTQ1MTQgbWVtb3J5IGxlYWtzIC0gZHVwbGljYXRlIGluaXRpYWxpemF0aW9uIChNT0QpLAorICAgIFdyb25nIGJsb2NrIG9wZW5pbmcgaW4gaHRtbE5vZGVEdW1wT3V0cHV0SW50ZXJuYWwgKERhbmllbCBWZWlsbGFyZCksCisgICAgNDkyMzE3IEZpeCAgUmVsYXgtTkcgdmFsaWRhdGlvbiBwcm9ibGVtcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NTg0NTIgZmlnaHQgd2l0aCByZWcgdGVzdCBhbmQgZXJyb3IgcmVwb3J0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU1ODQ1MiBSTkcgY29tcGlsYXRpb24gb2Ygb3B0aW9uYWwgbXVsdGlwbGUgY2hpbGQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTc5NzQ2IFhTRCB2YWxpZGF0aW9uIG5vdCBjb3JyZWN0IC8gbmlsYWJsZSBncm91cHMgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTAyOTYwIHByb3ZpZGUgbmFtZXNwYWNlIHN0YWNrIHdoZW4gcGFyc2luZyBlbnRpdHkgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTY2MDEyIHBhcnQgMiBmaXggcmVncmVzaW9uIHRlc3RzIGFuZCBwdXNoIG1vZGUgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTY2MDEyIGF1dG9kZXRlY3RlZCBlbmNvZGluZyBhbmQgZW5jb2RpbmcgY29uZmxpY3QgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTg0MjIwIHhwb2ludGVyKC8pIGFuZCB4aW5jbHVkZSBwcm9ibGVtcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODc2NjMgSW5jb3JyZWN0IEF0dHJpYnV0ZS1WYWx1ZSBOb3JtYWxpemF0aW9uIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDQ0NDk5NCBIVE1MIGNodW5rZWQgZmFpbHVyZSBmb3IgYXR0cmlidXRlIHdpdGggPD4gKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGVuZCBvZiBidWZmZXIgY2hhciBiZWluZyBzcGxpdCBpbiBYTUwgcGFyc2VyIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIE5vbiBBU0NJSSBjaGFyYWN0ZXIgbWF5IGJlIHNwbGl0IGF0IGJ1ZmZlciBlbmQgKEFkaWVsIE1pdHRtYW5uKSwKKyAgICA0NDAyMjYgQWRkIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEgQVBJIChTdGVmYW4gQmVobmVsKSwKKyAgICA1NzIxMjkgc3BlZWQgdXAgcGFyc2luZyBvZiBsYXJnZSBIVE1MIHRleHQgbm9kZXMgKE1hcmt1cyBLdWxsKSwKKyAgICBGaXggSFRNTCBwYXJzaW5nIHdpdGggMCBjaGFyYWN0ZXIgaW4gQ0RBVEEgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IFNldEdlbmVyaWNFcnJvckZ1bmMgYW5kIFNldFN0cnVjdHVyZWQgY2xhc2ggKFdhbmcgTGFtKSwKKyAgICA1NjYwMTIgIEluY29tcGxldGUgRUJDRElDIHBhcnNpbmcgc3VwcG9ydCAoTWFydGluIEtvZ2xlciksCisgICAgNTQxMzM1IEhUTUwgYXZvaWQgY3JlYXRpbmcgMiBoZWFkIG9yIDIgYm9keSBlbGVtZW50IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU0MTIzNyBlcnJvciBjb3JyZWN0aW5nIG1pc3NpbmcgZW5kIHRhZ3MgaW4gSFRNTCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODM0MzkgbWlzc2luZyBsaW5lIG51bWJlcnMgaW4gcHVzaCBtb2RlIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU4Nzg2NyB4bWxsaW50IC0taHRtbCAtLXhtbG91dCBzZXJpYWxpemluZyBhcyBIVE1MIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU1OTUwMSBhdm9pZCBzZWxlY3QgYW5kIHVzZSBwb2xsIGZvciBuYW5vaHR0cCAoUmFwaGFlbCBQcmV2b3N0KSwKKyAgICA1NTk0MTAgLSAgUmVnZXhwIGJ1ZyBvbiAoLi4uKT8gY29uc3RydWN0cyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggYSBzbWFsbCBwcm9ibGVtIG9uIHByZXZpb3VzIEhUTUwgcGFyc2VyIHBhdGNoIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU5MjQzMCAtICBIVE1MIHBhcnNlciBydW5zIGludG8gZW5kbGVzcyBsb29wIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDQ0Nzg5OSBwb3RlbnRpYWwgZG91YmxlIGZyZWUgaW4geG1sRnJlZVRleHRSZWFkZXIgKERhbmllbCBWZWlsbGFyZCksCisgICAgNDQ2NjEzIHNtYWxsIHZhbGlkYXRpb24gYnVnIG1peGVkIGNvbnRlbnQgd2l0aCBOUyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggdGhlIHByb2JsZW0gb2YgcmV2YWxpZGF0aW5nIGEgZG9jIHdpdGggUk5HIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCB4bWxLZWVwQmxhbmtzRGVmYXVsdCB0byBub3QgYnJlYWsgaW5kZW50IChOaWNrIFdlbGxuaG9mZXIpLAorICAgIDUxMjEzMSByZWZzIGZyb20gZXh0ZXJuYWxSZWYgcGFydCBuZWVkIHRvIGJlIGFkZGVkIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDUxMjEzMSBjcmFzaCBpbiB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODg0NDEgYWxsb3cgJy4nIGluIEhUTUwgTmFtZXMgZXZlbiBpZiBpbnZhbGlkIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU4MjkxMyBGaXggaHRtbFNldE1ldGFFbmNvZGluZygpIHRvIGJlIG5pY2VyIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU3OTMxNyBUcnkgdG8gZmluZCB0aGUgSFRNTCBlbmNvZGluZyBpbmZvcm1hdGlvbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NzU4NzUgZG9uJ3Qgb3V0cHV0IGNoYXJzZXQ9aHRtbCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NzEyNzEgZml4IHNlbWFudGljIG9mIHhzZDphbGwgd2l0aCBtaW5PY2N1cnM9MCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NzA3MDIgZml4IGEgYnVnIGluIHJlZ2V4cCBkZXRlcm1pbmlzbSBjaGVja2luZyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1Njc2MTkgeG1sVmFsaWRhdGVOb3RhdGlvblVzZSBtaXNzaW5nIHBhcmFtIHRlc3QgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTc0MzkzIMOCwr8gdXRmLTggZmlsZW5hbWUgbWFnaWMgZm9yIGNvbXByZXNzZWQgZmlsZXMgKEhhbnMgQnJldWVyKSwKKyAgICBGaXggYSBjb3VwbGUgb2YgcHJvYmxlbXMgaW4gdGhlIHBhcnNlciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODU1MDUgw4LCvyBEb2N1bWVudCBpZHMgYW5kIHJlZnMgcG9wdWxhdGVkIGJ5IFhTRCAoV2F5bmUgSmVuc2VuKSwKKyAgICA1ODI5MDYgWFNEIHZhbGlkYXRpbmcgbXVsdGlwbGUgaW1wb3J0cyBvZiB0aGUgc2FtZSBzY2hlbWEgKEphc29uIENoaWxkcyksCisgICAgQnVnIDU4Mjg4NyDDgsK/IHByb2JsZW1zIHZhbGlkYXRpbmcgY29tcGxleCBzY2hlbWFzIChKYXNvbiBDaGlsZHMpLAorICAgIEJ1ZyA1Nzk3Mjkgw4LCvyBmaXggWFNEIHNjaGVtYXMgcGFyc2luZyBjcmFzaCAoTWlyb3NsYXYgQmFqdG9zKSwKKyAgICA1NzYzNjggw4LCvyBodG1sQ2h1bmtQYXJzZXIgd2l0aCBzcGVjaWFsIGF0dHJpYnV0ZXMgKEppcmkgTmV0b2xpY2t5KSwKKyAgICBCdWcgNTY1NzQ3IMOCwr8gcmVsYXggYW55VVJJIGRhdGEgY2hhcmFjdGVyIGNoZWNraW5nIChWaW5jZW50IExlZmV2cmUpLAorICAgIFByZXNlcnZlIGF0dHJpYnV0ZXMgb2YgaW5jbHVkZSBzdGFydCBvbiB0cmVlIGNvcHkgKFBldHIgUGFqYXMpLAorICAgIFNraXAgc2lsZW50bHkgdW5yZWNvZ25pemVkIFhQb2ludGVyIHNjaGVtZXMgKEpha3ViIFdpbGspLAorICAgIEZpeCBsZWFrIG9uIFNBWDEsIHhtbGxpbnQgLS1zYXgxIG9wdGlvbiBhbmQgZGVidWcgKERhbmllbCBWZWlsbGFyZCksCisgICAgcG90ZW50aWFsIE5VTEwgZGVyZWZlcmVuY2Ugb24gbm9uLWdsaWJjIChKaW0gTWV5ZXJpbmcpLAorICAgIEZpeCBhbiBYU0QgdmFsaWRhdGlvbiBjcmFzaCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggYSByZWdyZXNzaW9uIGluIHN0cmVhbWluZyBlbnRpdGllcyBzdXBwb3J0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBhIGNvdXBsZSBvZiBBQkkgaXNzdWVzIHdpdGggQzE0TiAxLjEgKEFsZWtzZXkgU2FuaW4pLAorICAgIEFsZWtzZXkgU2FuaW4gc3VwcG9ydCBmb3IgYzE0biAxLjEgKEFsZWtzZXkgU2FuaW4pLAorICAgIHJlYWRlciBidWcgZml4IHdpdGggZW50aXRpZXMgKERhbmllbCBWZWlsbGFyZCksCisgICAgdXNlIG9wdGlvbnMgZnJvbSBjdXJyZW50IHBhcnNlciBjdHh0IGZvciBleHRlcm5hbCBlbnRpdGllcyAoUm9iIFJpY2hhcmRzKSwKKyAgICA1ODE2MTIgdXNlICVzIHRvIHByaW50ZiBzdHJpbmdzIChDaHJpc3RpYW4gUGVyc2NoKSwKKyAgICA1ODQ2MDUgY2hhbmdlIHRoZSB0aHJlYWRpbmcgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKElnb3IgTm92b3NlbHRzZXYpLAorICAgIDU4MDcwNSBrZWVwIGxpbmUgbnVtYmVycyBpbiBIVE1MIHBhcnNlciAoQWFyb24gUGF0dGVyc29uKSwKKyAgICA1ODE4MDMgYnJva2VuIEhUTUwgdGFibGUgYXR0cmlidXRlcyBpbml0IChSb2xhbmQgU3RlaW5lciksCisgICAgZG8gbm90IHNldCBlcnJvciBjb2RlIGluIHhtbE5zV2FybiAoUm9iIFJpY2hhcmRzKSwKKyAgICA1NjQyMTcgZml4IHN0cnVjdHVyZWQgZXJyb3IgaGFuZGxpbmcgcHJvYmxlbXMsCisgICAgcmV1c2Ugb3B0aW9ucyBmcm9tIGN1cnJlbnQgcGFyc2VyIGZvciBlbnRpdGllcyAoUm9iIFJpY2hhcmRzKSwKKyAgICB4bWxYUGF0aFJlZ2lzdGVyTnMgc2hvdWxkIG5vdCBhbGxvdyBlbnB0eSBwcmVmaXhlcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBhZGQgYSBtaXNzaW5nIGNoZWNrIGluIHhtbEFkZFNpYmxpbmcgKEtyaXMgQnJldWtlciksCisgICAgYXZvaWQgbGVha3Mgb24gZXJyb3JzIChKaW5tZWkgVGF0dXlhKQorICAKKyAgIC0gQ2xlYW51cDoKKyAgICBDaGFzaW5nIGRlYWQgYXNzaWdubWVudHMgcmVwb3J0ZWQgYnkgY2xhbmctc2NhbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBBIGZldyBtb3JlIHNhZmV0eSBjbGVhbnVwIHJhaXNlZCBieSBzY2FuIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeGluZyBhc3NvcnRlZCBwb3RlbnRpYWwgcHJvYmxlbXMgcmFpc2VkIGJ5IHNjYW4gKERhbmllbCBWZWlsbGFyZCksCisgICAgUG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgYXJndW1lbnRzIHJhaXNlZCBieSBzY2FuIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBhIGJ1bmNoIG9mIHNjYW4gJ2RlYWQgaW5jcmVtZW50cycgYW5kIGNsZWFudXAgKERhbmllbCBWZWlsbGFyZCksCisgICAgUmVtb3ZlIGEgcGVkYW50aWMgd2FybmluZyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NTU4MzMgYWx3YXlzIHVzZSBybSAtZiBpbiB1bmluc3RhbGwtbG9jYWwgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTQyMzk0IHhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIE1BWF9JTlBVVF9DQUxMQkFDSyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBBdXRvcmVnZW5lcmF0ZSBsaWJ4bWwyLnN5bXMgYXV0b21hdGVkIGNoZWNraW5ncyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBNYWtlIHhtbFJlY292ZXJEb2MgY29uc3QgKE1hcnRpbiBUcmFwcGVsKSAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBCb3RoIGFyZ3Mgb2YgeG1sU3RyY2FzZXN0ciBhcmUgY29uc3QgKERhbmllbCBWZWlsbGFyZCksCisgICAgaGlkZSB0aGUgbmJQYXJzZSogdmFyaWFibGVzIHVzZWQgZm9yIGRlYnVnZ2luZyAoTWlrZSBIb21tZXkpLAorICAgIDU3MDgwNiBjaGFuZ2VkIGluY2x1ZGUgb2YgY29uZmlnLmggKFdpbGxpYW0gTS4gQnJhY2spLAorICAgIGNsZWFudXBzIGFuZCBlcnJvciByZXBvcnRzIHdoZW4geG1sVGV4dFdyaXRlclZTcHJpbnRmIGZhaWxzIChKaW5tZWkgVGF0dXlhKQorICAKKworCisyLjcuMzogSmFuIDE4IDIwMDk6CisgICAtIEJ1aWxkIGZpeDogZml4IGJ1aWxkIHdoZW4gSFRNTCBzdXBwb3J0IGlzIG5vdCBpbmNsdWRlZC4KKyAgIC0gQnVnIGZpeGVzOiBhdm9pZCBtZW1vcnkgb3ZlcmZsb3cgaW4gZ2lnYW50aWMgdGV4dCBub2RlcywKKyAgICAgIGluZGVudGF0aW9uIHByb2JsZW0gb24gdGhlIHdyaXRlZCAoUm9iIFJpY2hhcmRzKSwKKyAgICAgIHhtbEFkZENoaWxkTGlzdCBwb2ludGVyIHByb2JsZW0gKFJvYiBSaWNoYXJkcyBhbmQgS2V2aW4gTWlsYnVybiksCisgICAgICB4bWxBZGRDaGlsZCBwcm9ibGVtIHdpdGggYXR0cmlidXRlIChSb2IgUmljaGFyZHMgYW5kIEtyaXMgQnJldWtlciksCisgICAgICBhdm9pZCBhIG1lbW9yeSBsZWFrIGluIGFuIGVkZ2UgY2FzZSAoRGFuaWVsIFppbW1lcm1hbm4pLAorICAgICAgZGVhbGxvY2F0ZSBzb21lIHB0aHJlYWQgZGF0YSAoQWxleCBPdHQpLgorICAgLSBJbXByb3ZlbWVudHM6IGNvbmZpZ3VyZSBvcHRpb24gdG8gYXZvaWQgcmVidWlsZGluZyBkb2NzIChBZHJpYW4gQnVuayksCisgICAgICBsaW1pdCB0ZXh0IG5vZGVzIHRvIDEwTUIgbWF4IGJ5IGRlZmF1bHQsIGFkZCBlbGVtZW50IHRyYXZlcnNhbAorICAgICAgQVBJcywgYWRkIGEgcGFyc2VyIG9wdGlvbiB0byBlbmFibGUgcHJlIDIuNyBTQVggYmVoYXZpb3IgKFJvYiBSaWNoYXJkcyksCisgICAgICBhZGQgZ2NjIG1hbGxvYyBjaGVja2luZyAoTWFyY3VzIE1laXNzbmVyKSwgYWRkIGdjYyBwcmludGYgbGlrZSBmdW5jdGlvbnMKKyAgICAgIHBhcmFtZXRlcnMgY2hlY2tpbmcgKE1hcmN1cyBNZWlzc25lcikuCisKKworMi43LjI6IE9jdCAzIDIwMDg6CisgICAtIFBvcnRhYmlsaXR5IGZpeDogZml4IHNvbGFyaXMgY29tcGlsYXRpb24gcHJvYmxlbSwgZml4IGNvbXBpbGF0aW9uCisgICAgICAgIGlmIFhQYXRoIGlzIG5vdCBjb25maWd1cmVkIGluCisgICAtIEJ1ZyBmaXhlczogbmFzdHkgZW50aXR5IGJ1ZyBpbnRyb2R1Y2VkIGluIDIuNy4wLCByZXN0b3JlIG9sZCBiZWhhdmlvdXIKKyAgICAgICAgd2hlbiBzYXZpbmcgYW4gSFRNTCBkb2Mgd2l0aCBhbiB4bWwgZHVtcCBmdW5jdGlvbiwgSFRNTCBVVEYtOCBwYXJzaW5nCisgICAgICAgIGJ1ZywgZml4IHJlYWRlciBjdXN0b20gZXJyb3IgaGFuZGxlcnMgKFJpY2NhcmRvIFNjdXNzYXQpCisgICAgCisgICAtIEltcHJvdmVtZW50OiB4bWxTYXZlIG9wdGlvbnMgZm9yIG1vcmUgZmxleGliaWxpdHkgdG8gc2F2ZSBhcworICAgICAgICBYTUwvSFRNTC9YSFRNTCwgaGFuZGxlIGxlYWRpbmcgQk9NIGluIEhUTUwgZG9jdW1lbnRzCisKKworMi43LjE6IFNlcCAxIDIwMDg6CisgICAtIFBvcnRhYmlsaXR5IGZpeDogQm9ybGFuZCBDIGZpeCAoTW9yaXR6IEJvdGgpCisgICAtIEJ1ZyBmaXhlczogcHl0aG9uIHNlcmlhbGl6YXRpb24gd3JhcHBlcnMsIFhQYXRoIFFOYW1lIGNvcm5lcgorICAgICAgICBjYXNlIGhhbmRraW5nIGFuZCBsZWFrcyAoTWFydGluKQorICAgLSBJbXByb3ZlbWVudDogZXh0ZW5kIHRoZSB4bWxTYXZlIHRvIGhhbmRsZSBIVE1MIGRvY3VtZW50cyBhbmQgdHJlZXMKKyAgIC0gQ2xlYW51cDogcHl0aG9uIHNlcmlhbGl6YXRpb24gd3JhcHBlcnMKKworCisyLjcuMDogQXVnIDMwIDIwMDg6CisgICAtIERvY3VtZW50YXRpb246IHN3aXRjaCBDaGFuZ2VMb2cgdG8gVVRGLTgsIGltcHJvdmUgbXV0aXRocmVhZHMgYW5kCisgICAgICB4bWxQYXJzZXJDbGVhbnVwIGRvY3MKKyAgIC0gUG9ydGFiaWxpdHkgZml4ZXM6IE9sZGVyIFdpbjMyIHBsYXRmb3JtcyAoUm9iIFJpY2hhcmRzKSwgTVNWQworICAgICAgcG9ydGluZyBmaXggKFJvYiBSaWNoYXJkcyksIE1hYyBPUyBYIHJlZ3Jlc3Npb24gdGVzdHMgKFN2ZW4gSGVyemJlcmcpLAorICAgICAgbm9uIEdOVUNDIGJ1aWxkcyAoUm9iIFJpY2hhcmRzKSwgY29tcGlsYXRpb24gb24gSGFpa3UgKEFuZHJlYXMgRsODwqRyYmVyKQorICAgICAgCisgICAtIEJ1ZyBmaXhlczogdmFyaW91cyByZWFsbG9jIHByb2JsZW1zIChBc2h3aW4pLCBwb3RlbnRpYWwgZG91YmxlLWZyZWUKKyAgICAgIChBc2h3aW4pLCByZWdleHAgY3Jhc2gsIGljcmFzaCB3aXRoIGludmFsaWQgd2hpdGVzcGFjZSBmYWNldHMgKFJvYgorICAgICAgUmljaGFyZHMpLCBwYXR0ZXJuIGZpeCB3aGVuIHN0cmVhbWluZyAoV2lsbGlhbSBCcmFjayksIHZhcmlvdXMgWE1MCisgICAgICBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGZpeGVzIGJhc2VkIG9uIHRoZSBXM0MgcmVncmVzc2lvbiB0ZXN0cywgcmVhZGVyCisgICAgICB0cmVlIHNraXBwaW5nIGZ1bmN0aW9uIGZpeCAoQXNod2luKSwgU2NoZW1hcyByZWdleHBzIGVzY2FwaW5nIGZpeAorICAgICAgKFZvbGtlciBHcmFic2NoKSwgaGFuZGxpbmcgb2YgZW50aXR5IHB1c2ggZXJyb3JzIChBc2h3aW4pLCBmaXggYSBzbG93ZG93bgorICAgICAgd2hlbiBlbmNvZGVyIGNhbnQgc2VyaWFsaXplIGNoYXJhY3RlcnMgb24gb3V0cHV0CisgICAtIENvZGUgY2xlYW51cDogY29tcGlsYXRpb24gZml4IHdpdGhvdXQgdGhlIHJlYWRlciwgd2l0aG91dCB0aGUgb3V0cHV0CisgICAgICAoUm9iZXJ0IFNjaHdlYmVsKSwgcHl0aG9uIHdoaXRlc3BhY2UgKE1hcnRpbiksIG1hbnkgc3BhY2UvdGFicyBjbGVhbnVwcywKKyAgICAgIHNlcmlvdXMgY2xlYW51cCBvZiB0aGUgZW50aXR5IGhhbmRsaW5nIGNvZGUKKyAgIC0gSW1wcm92ZW1lbnQ6IHN3aXRjaCBwYXJzZXIgdG8gWE1MLTEuMCA1dGggZWRpdGlvbiwgYWRkIHBhcnNpbmcgZmxhZ3MKKyAgICAgIGZvciBvbGQgdmVyc2lvbnMsIHN3aXRjaCBVUkkgcGFyc2luZyB0byBSRkMgMzk4NiwKKyAgICAgIGFkZCB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0IChIb2xnZXIgS2FlbGJlcmVyKSwKKyAgICAgIG5ldyBoYXNoaW5nIGZ1bmN0aW9ucyBmb3IgZGljdGlvbm5hcmllcyAoYmFzZWQgb24gU3RlZmFuIEJlaG5lbCB3b3JrKSwKKyAgICAgIGltcHJvdmUgaGFuZGxpbmcgb2YgbWlzcGxhY2VkIGh0bWwvaGVhZC9ib2R5IGluIEhUTUwgcGFyc2VyLCBiZXR0ZXIKKyAgICAgIHJlZ3Jlc3Npb24gdGVzdCB0b29scyBhbmQgY29kZSBjb3ZlcmFnZSBkaXNwbGF5LCBiZXR0ZXIgYWxnb3JpdGhtcworICAgICAgdG8gZGV0ZWN0IHZhcmlvdXMgdmVyc2lvbnMgb2YgdGhlIGJpbGxpb24gbGF1Z2h0cyBhdHRhY2tzLCBtYWtlCisgICAgICBhcmJpdHJhcnkgcGFyc2VyIGxpbWl0cyBhdm9pZGFibGUgYXMgYSBwYXJzZXIgb3B0aW9uCisKKworMi42LjMyOiBBcHIgOCAyMDA4OgorICAgLSBEb2N1bWVudGF0aW9uOiByZXR1cm5pbmcgaGVhcCBtZW1vcnkgdG8ga2VybmVsIChXb2xmcmFtIFNhbmcpLAorICAgICAgdHJ5aW5nIHRvIGNsYXJpZnkgeG1sQ2xlYW51cFBhcnNlcigpIHVzZSwgeG1sWFBhdGhDb250ZXh0IGltcHJvdmVtZW50CisgICAgICAoSmFjayBKYW5zZW4pLCBpbXByb3ZlIHRoZSAqUmVjb3ZlciogZnVuY3Rpb25zIGRvY3VtZW50YXRpb24sCisgICAgICBYbWxOb2RlVHlwZSBkb2MgbGluayBmaXggKE1hcnRpam4gQXJ0cykKKyAgIC0gQnVnIGZpeGVzOiBpbnRlcm5hbCBzdWJzZXQgbWVtb3J5IGxlYWsgKEFzaHdpbiksIGF2b2lkIHByb2JsZW0gd2l0aAorICAgICAgcGF0aHMgc3RhcnRpbmcgd2l0aCAvLyAoUGV0ciBTdW1iZXJhKSwgc3RyZWFtaW5nIFhTRCB2YWxpZGF0aW9uIGNhbGxiYWNrCisgICAgICBwYXRjaGVzIChBc2h3aW4pLCBmaXggcmVkaXJlY3Rpb24gb24gcG9ydCBvdGhlciB0aGFuIDgwIChXaWxsaWFtIEJyYWNrKSwKKyAgICAgIFNBWDIgbGVhayAoQXNod2luKSwgWEluY2x1ZGUgZnJhZ21lbnQgb2Ygb3duIGRvY3VtZW50IChDaHJpcyBSeWFuKSwKKyAgICAgIHJlZ2V4cCBidWcgd2l0aCAnLicgKEFuZHJldyBUb3NoKSwgZmx1c2ggdGhlIHdyaXRlciBhdCB0aGUgZW5kIG9mIHRoZQorICAgICAgZG9jdW1lbnQgKEFsZnJlZCBNaWNrYXV0c2NoKSwgb3V0cHV0IEkvTyBidWcgZml4IChXaWxsaWFtIEJyYWNrKSwKKyAgICAgIHdyaXRlciBDREFUQSBvdXRwdXQgYWZ0ZXIgYSB0ZXh0IG5vZGUgKEFsZXggS2hlc2luKSwgVVRGLTE2IGVuY29kaW5nCisgICAgICBkZXRlY3Rpb24gKFdpbGxpYW0gQnJhY2spLCBmaXggaGFuZGxpbmcgb2YgZW1wdHkgQ0RBVEEgbm9kZXMgZm9yIFNhZmFyaQorICAgICAgdGVhbSwgcHl0aG9uIGJpbmRpbmcgcHJvYmxlbSB3aXRoIG5hbWVzcGFjZSBub2RlcywgaW1wcm92ZSBIVE1MIHBhcnNpbmcKKyAgICAgIChBcm5vbGQgSGVuZHJpa3MpLCByZWdleHAgYXV0b21hdGEgYnVpbGQgYnVnLCBtZW1vcnkgbGVhayBmaXggKFZhc2lseQorICAgICAgQ2hla2Fsa2luKSwgWFNEIHRlc3QgY3Jhc2gsIHdlaXJkIHN5c3RlbSBwYXJhbWV0ZXIgZW50aXR5IHBhcnNpbmcgcHJvYmxlbSwKKyAgICAgIGFsbG93IHNhdmUgdG8gZmlsZTovLy9YOi8gd2luZG93cyBwYXRocywgdmFyaW91cyBhdHRyaWJ1dGUgbm9ybWFsaXNhdGlvbgorICAgICAgcHJvYmxlbXMsIGV4dGVybmFsU3Vic2V0U3BsaXQgZml4IChBc2h3aW4pLCBhdHRyaWJ1dGUgcmVkZWZpbml0aW9uIGluCisgICAgICB0aGUgRFREIChBc2h3aW4pLCBmaXggaW4gY2hhciByZWYgcGFyc2luZyBjaGVjayAoQWxleCBLaGVzaW4pLCBtYW55CisgICAgICBvdXQgb2YgbWVtb3J5IGhhbmRsaW5nIGZpeGVzIChBc2h3aW4pLCBYUGF0aCBvdXQgb2YgbWVtb3J5IGhhbmRsaW5nIGZpeGVzCisgICAgICAoQWx2YXJvIEhlcnJlcmEpLCB2YXJpb3VzIHJlYWxsb2MgcHJvYmxlbXMgKEFzaHdpbiksIFVDUzQgZW5jb2RpbmcKKyAgICAgIGNvbnZlcnNpb24gYnVmZmVyIHNpemUgKENocmlzdGlhbiBGcnV0aCksIHByb2JsZW1zIHdpdGggRWF0TmFtZQorICAgICAgZnVuY3Rpb25zIG9uIG1lbW9yeSBlcnJvcnMsIEJPTSBoYW5kbGluZyBpbiBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMKKyAgICAgIChNYXJrIFJvd2UpCisgICAtIENvZGUgY2xlYW51cDogZml4IGJ1aWxkIHVuZGVyIFZTIDIwMDggKERhdmlkIFdpbXNleSksIHJlbW92ZSB1c2VsZXNzCisgICAgICBtdXRleCBpbiB4bWxEaWN0IChGbG9yZW50IEd1aWxpYW4pLCBNaW5ndzMyIGNvbXBpbGF0aW9uIGZpeCAoQ2FybG8KKyAgICAgIEJyYW1pbmkpLCBXaW4gYW5kIE1hY09TIEVPTCBjbGVhbnVwcyAoRmxvcmVudCBHdWlsaWFuaSksIGljb252IG5lZWQKKyAgICAgIGEgY29uc3QgZGV0ZWN0aW9uIChSb3VtZW4gUGV0cm92KSwgc2ltcGxpZnkgeG1sU2V0UHJvcCAoSnVsaWVuIENoYXJib24pLAorICAgICAgY3Jvc3MgY29tcGlsYXRpb24gZml4ZXMgZm9yIE1pbmd3IChSb3VtZW4gUGV0cm92KSwgU0NPIE9wZW5zZXJ2ZXIgYnVpbGQKKyAgICAgIGZpeCAoRmxvcmVudCBHdWlsaWFuaSksIGljb252IHVzZXMgY29uc3Qgb24gV2luMzIgKFJvYiBSaWNoYXJkcyksCisgICAgICBkdXBsaWNhdGUgY29kZSByZW1vdmFsIChBc2h3aW4pLCBtaXNzaW5nIG1hbGxvYyB0ZXN0IGFuZCBlcnJvciByZXBvcnRzCisgICAgICAoQXNod2luKSwgVk1TIG1ha2VmaWxlIGZpeCAoVHljaG8gSGlsaG9yc3QpCisgICAtIGltcHJvdmVtZW50czogYmV0dGVyIHBsdWcgb2Ygc2NoZW1hdHJvbiBpbiB0aGUgbm9ybWFsIGVycm9yIGhhbmRsaW5nCisgICAgICAoVG9iaWFzIE1pbmljaCkKKworCisyLjYuMzE6IEphbiAxMSAyMDA4OgorICAgLSBTZWN1cml0eSBmaXg6IG1pc3Npbmcgb2YgY2hlY2tzIGluIFVURi04IHBhcnNpbmcKKyAgIC0gQnVnIGZpeGVzOiByZWdleHAgYnVnLCBkdW1wIGF0dHJpYnV0ZSBmcm9tIFhIVE1MIGRvY3VtZW50LCBmaXgKKyAgICAgIHhtbEZyZWUoTlVMTCkgdG8gbm90IGNyYXNoIGluIGRlYnVnIG1vZGUsIFNjaGVtYXRyb24gcGFyc2luZyBjcmFzaAorICAgICAgKFJvYiBSaWNoYXJkcyksIGdsb2JhbCBsb2NrIGZyZWUgb24gV2luZG93cyAoTWFyYy1BbnRvaW5lIFJ1ZWwpLAorICAgICAgWFNEIGNyYXNoIGR1ZSB0byBkb3VibGUgZnJlZSAoUm9iIFJpY2hhcmRzKSwgaW5kZW50YXRpb24gZml4IGluCisgICAgICB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQgKEZlbGlwZSBQZW5hKSwgZXJyb3IgaW4gYXR0cmlidXRlIHR5cGUKKyAgICAgIHBhcnNpbmcgaWYgYXR0cmlidXRlIHJlZGVjbGFyZWQsIGF2b2lkIGNyYXNoIGluIGhhc2ggbGlzdCBzY2FubmVyIGlmCisgICAgICBkZWxldGluZyBlbGVtZW50cywgY29sdW1uIGNvdW50ZXIgYnVnIGZpeCAoQ2hyaXN0aWFuIFNjaG1pZHQpLAorICAgICAgSFRNTCBlbWJlZCBlbGVtZW50IHNhdmluZyBmaXggKFN0ZWZhbiBCZWhuZWwpLCBhdm9pZCAtTC91c3IvbGliCisgICAgICBvdXRwdXQgZnJvbSB4bWwyLWNvbmZpZyAoRnJlZCBDcm96YXQpLCBhdm9pZCBhbiB4bWxsaW50IGNyYXNoIAorICAgICAgKFN0ZWZhbiBLb3N0KSwgZG9uJ3Qgc3RvcCBIVE1MIHBhcnNpbmcgb24gb3V0IG9mIHJhbmdlIGNoYXJzLgorICAgICAgCisgICAtIENvZGUgY2xlYW51cDogZml4IG9wZW4oKSBjYWxsIHRoaXJkIGFyZ3VtZW50LCByZWdleHAgY3V0J24gcGFzdGUKKyAgICAgIGNvcHkgZXJyb3IsIHVudXNlZCB2YXJpYWJsZSBpbiBfX3htbEdsb2JhbEluaXRNdXRleExvY2sgKEhhbm5lcyBFZGVyKSwKKyAgICAgIHNvbWUgbWFrZSBkaXN0Y2hlY2sgcmVhbHRlZCBmaXhlcyAoSm9obiBDYXJyKQorICAgLSBJbXByb3ZlbWVudHM6IEhUVFAgSGVhZGVyOiBpbmNsdWRlcyBwb3J0IG51bWJlciAoV2lsbGlhbSBCcmFjayksCisgICAgICB0ZXN0VVJJIC0tZGVidWcgb3B0aW9uLCAKKworCisyLjYuMzA6IEF1ZyAyMyAyMDA3OgorICAgLSBQb3J0YWJpbGl0eTogU29sYXJpcyBjcmFzaCBvbiBlcnJvciBoYW5kbGluZywgd2luZG93cyBwYXRoIGZpeGVzCisgICAgICAoUm9sYW5kIFNjaHdhcnogYW5kIFJvYiBSaWNoYXJkcyksIG1pbmd3IGJ1aWxkIChSb2xhbmQgU2Nod2FyeikKKyAgIC0gQnVnZml4ZXM6IHhtbFhQYXRoTm9kZVNldFNvcnQgcHJvYmxlbSAoV2lsbGlhbSBCcmFjayksIGxlYWsgd2hlbgorICAgICAgcmV1c2luZyBhIHdyaXRlciBmb3IgYSBuZXcgZG9jdW1lbnQgKERvZGppIFNla2V0ZWxpKSwgU2NoZW1hcworICAgICAgeHNpOm5pbCBoYW5kbGluZyBwYXRjaCAoRnJhbmsgR3Jvc3MpLCByZWxhdGl2ZSBVUkkgYnVpbGQgcHJvYmxlbQorICAgICAgKFBhdHJpayBGaW1tbCksIGNyYXNoIGluIHhtbERvY0Zvcm1hdER1bXAsIGludmFsaWQgY2hhciBpbiBjb21tZW50CisgICAgICBkZXRlY3Rpb24gYnVnLCBmaXggZGlzcGFyaXR5IHdpdGggeG1sU0FYVXNlclBhcnNlTWVtb3J5LCBhdXRvbWF0YQorICAgICAgZ2VuZXJhdGlvbiBmb3IgY29tcGxleCByZWdleHAgY291bnRzIHByb2JsZW1zLCBTY2hlbWFzIElEQyBpbXBvcnQKKyAgICAgIHByb2JsZW1zIChGcmFuayBHcm9zcyksIHhwYXRoIHByZWRpY2F0ZSBldmFpbGF0aW9uIGVycm9yIGhhbmRsaW5nCisgICAgICAoV2lsbGlhbSBCcmFjaykKKworCisyLjYuMjk6IEp1biAxMiAyMDA3OgorICAgLSBQb3J0YWJpbGl0eTogcGF0Y2hlcyBmcm9tIEFuZHJlYXMgU3RyaWNrZSBmb3IgV2luQ0VpLAorICAgICAgZml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzIChXaWxsaWFtIEJyYWNrKSwgYXZvaWQgd2FybmluZ3Mgb24gQXBwbGUgT1MvWAorICAgICAgKFdlbmR5IERveWxlIGFuZCBNYXJrIFJvd2UpLCBXaW5kb3dzIGNvbXBpbGF0aW9uIGFuZCB0aHJlYWRpbmcKKyAgICAgIGltcHJvdmVtZW50cyAoUm9iIFJpY2hhcmRzKSwgY29tcGlsYXRpb24gYWdhaW5zdCBvbGQgUHl0aG9uIHZlcnNpb25zLAorICAgICAgbmV3IEdOVSB0YXIgY2hhbmdlcyAoUnlhbiBIaWxsKQorICAgLSBEb2N1bWVudGF0aW9uOiB4bWxVUklVbmVzY2FwZVN0cmluZyBjb21tZW50LCAKKyAgIC0gQnVnZml4ZXM6IHhtbEJ1ZmZlckFkZCBwcm9ibGVtIChSaWNoYXJkIEpvbmVzKSwgJ21ha2UgdmFsZ3JpbmQnCisgICAgICBmbGFnIGZpeCAoUmljaGFyZCBKb25lcyksIHJlZ2V4cCBpbnRlcnByZXRhdGlvbiBvZiBcLAorICAgICAgaHRtbENyZWF0ZURvY1BhcnNlckN0eHQgKEplYW4tRGFuaWVsIER1cGFzKSwgY29uZmlndXJlLmluCisgICAgICB0eXBvIChCam9ybiBSZWVzZSksIGVudGl0eSBjb250ZW50IGZhaWx1cmUsIHhtbExpc3RBcHBlbmQoKSBmaXgKKyAgICAgIChHZW9yZ2VzLUFuZHLDg8KpIFNpbGJlciksIFhQYXRoIG51bWJlciBzZXJpYWxpemF0aW9uIChXaWxsaWFtIEJyYWNrKSwKKyAgICAgIG5hbm9odHRwIGd6aXBwZWQgc3RyZWFtIGZpeCAoV2lsbGlhbSBCcmFjayBhbmQgQWxleCBDb3JuZWpvKSwKKyAgICAgIHhtbENoYXJFbmNGaXJzdExpbmUgdHlwbyAoTWFyayBSb3dlKSwgdXJpIGJ1ZyAoRnJhbsODwqdvaXMgRGVseW9uKSwKKyAgICAgIFhQYXRoIHN0cmluZyB2YWx1ZSBvZiBQSSBub2RlcyAoV2lsbGlhbSBCcmFjayksIFhQYXRoIG5vZGUgc2V0CisgICAgICBzb3J0aW5nIGJ1Z3MgKFdpbGxpYW0gQnJhY2spLCBhdm9pZCBvdXRwdXR0aW5nIG5hbWVzcGFjZSBkZWNsCisgICAgICBkdXBzIGluIHRoZSB3cml0ZXIgKFJvYiBSaWNoYXJkcyksIHhtbEN0eHRSZXNldCBidWcsIFVURi04IGVuY29kaW5nCisgICAgICBlcnJvciBoYW5kbGluZywgcmVjdXN0aW9uIG9uIG5leHQgaW4gY2F0YWxvZ3MsIGZpeCBhIFJlbGF4LU5HIGNyYXNoLAorICAgICAgd29ya2Fyb3VuZCB3cm9uZyBmaWxlOiBVUklzLCBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQgb24gYXR0cmlidXRlcywKKyAgICAgIGludmFsaWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSBkZXRlY3Rpb24gYnVnLCBiaWcgY29tbWVudHMgYmVmb3JlIAorICAgICAgaW50ZXJuYWwgc3Vic2V0IHN0cmVhbWluZyBidWcsIEhUTUwgcGFyc2luZyBvZiBhdHRyaWJ1dGVzIHdpdGggOiBpbgorICAgICAgdGhlIG5hbWUsIElEbmVzcyBvZiBuYW1lIGluIEhUTUwgKERhZ2Zpbm4gSS4gTWFubnPDg8Kla2VyKSAKKyAgIC0gSW1wcm92ZW1lbnQ6IGtlZXAgVVJJIHF1ZXJ5IHBhcnRzIGluIHJhdyBmb3JtIChSaWNoYXJkIEpvbmVzKSwKKyAgICAgIGVtYmVkIHRhZyBzdXBwb3J0IGluIEhUTUwgKE1pY2hhZWwgRGF5KSAKKworCisyLjYuMjg6IEFwciAxNyAyMDA3OgorICAgLSBEb2N1bWVudGF0aW9uOiBjb21tZW50IGZpeGVzIChNYXJrdXMgS2VpbSksIHhwYXRoIGNvbW1lbnRzIGZpeGVzIHRvbworICAgICAgKEphbWVzIERlbm5ldHQpCisgICAtIEJ1ZyBmaXhlczogWFBhdGggYnVnIChXaWxsaWFtIEJyYWNrKSwgSFRNTCBwYXJzZXIgYXV0b2Nsb3NlIHN0YWNrIHVzYWdlCisgICAgICAoVXNhbWFoIE1hbGlrKSwgdmFyaW91cyByZWdleHAgYnVnIGZpeGVzIChEViBhbmQgV2lsbGlhbSksIHBhdGggY29udmVyc2lvbgorICAgICAgb24gV2luZG93cyAoSWdvciBabGF0a292aWMpLCBodG1sQ3R4dFJlc2V0IGZpeCAoTWljaGFlbCBEYXkpLCBYUGF0aAorICAgICAgcHJpbmNpcGFsIG5vZGUgb2YgYXhpcyBidWcsIEhUTUwgc2VyaWFsaXphdGlvbiBvZiBzb21lIGNvZGVwb2ludAorICAgICAgKFN0ZXZlbiBSYWlud2F0ZXIpLCB1c2VyIGRhdGEgcHJvcGFnYXRpb24gaW4gWEluY2x1ZGUgKE1pY2hhZWwgRGF5KSwKKyAgICAgIHN0YW5kYWxvbmUgYW5kIFhNTCBkZWNsIGRldGVjdGlvbiAoTWljaGFlbCBEYXkpLCBQeXRob24gaWQgb3VwdHV0CisgICAgICBmb3Igc29tZSBpZCwgZml4IHRoZSBiaWcgcHl0aG9uIHN0cmluZyBtZW1vcnkgbGVhaywgVVJJIHBhcnNpbmcgZml4ZXMKKyAgICAgIChTdMODwqlwaGFuZSBCaWRvdWwgYW5kIFdpbGxpYW0pLCBsb25nIGNvbW1lbnRzIHBhcnNpbmcgYnVnIChXaWxsaWFtKSwKKyAgICAgIGNvbmN1cnJlbnQgdGhyZWFkcyBpbml0aWFsaXphdGlvbiAoVGVkIFBoZWxwcyksIGludmFsaWQgY2hhcgorICAgICAgaW4gdGV4dCBYSW5jbHVkZSAoV2lsbGlhbSksIFhQYXRoIG1lbW9yeSBsZWFrIChXaWxsaWFtKSwgdGFiIGluCisgICAgICBweXRob24gcHJvYmxlbXMgKEFuZHJlYXMgSGFua2UpLCBYUGF0aCBub2RlIGNvbXBhcmlzb24gZXJyb3IKKyAgICAgIChPbGVnIFBhcmFzY2hlbmtvKSwgY2xlYW51cCBwYXRjaCBmb3IgcmVhZGVyIChKdWxpZW4gUmVpY2hlbCksCisgICAgICBYTUwgU2NoZW1hcyBhdHRyaWJ1dGUgZ3JvdXAgKFdpbGxpYW0pLCBIVE1MIHBhcnNpbmcgcHJvYmxlbSAoV2lsbGlhbSksCisgICAgICBmaXggY2hhciAweDJkIGluIHJlZ2V4cHMgKFdpbGxpYW0pLCByZWdleHAgcXVhbnRpZmllciByYW5nZSB3aXRoCisgICAgICBtaW4gb2NjdXJzIG9mIDAgKFdpbGxpYW0pLCBIVE1MIHNjcmlwdC9zdHlsZSBwYXJzaW5nIChNaWtlIERheSkKKyAgIC0gSW1wcm92ZW1lbnQ6IG1ha2UgeG1sVGV4dFJlYWRlclNldHVwKCkgcHVibGljCisgICAtIENvbXBpbGF0aW9uIGFuZCBwb3N0YWJpbGl0eTogZml4IGEgbWlzc2luZyBpbmNsdWRlIHByb2JsZW0gKFdpbGxpYW0pLAorICAgICAgX19zc19mYW1pbGx5IG9uIEFJWCBhZ2FpbiAoQmrDg8K2cm4gV2liZXJnKSwgY29tcGlsYXRpb24gd2l0aG91dCB6bGliCisgICAgICAoTWljaGFlbCBEYXkpLCBjYXRhbG9nIHBhdGNoIGZvciBXaW4zMiAoQ2hyaXN0aWFuIEVocmxpY2hlciksCisgICAgICBXaW5kb3dzIENFIGZpeGVzIChBbmRyZWFzIFN0cmlja2UpCisgICAtIFZhcmlvdXMgQ1ZTIHRvIFNWTiBpbmZyYXN0cnVjdHVyZSBjaGFuZ2VzCisKKworMi42LjI3OiBPY3QgMjUgMjAwNjoKKyAgIC0gUG9ydGFiaWxpdHkgZml4ZXM6IGZpbGUgbmFtZXMgb24gd2luZG93cyAoUm9sYW5kIFNjaHdpbmdlbCwgCisgICAgICBFbWVseWFub3YgQWxleGV5KSwgd2luZG93cyBjb21waWxlIGZpeHVwIChSb2IgUmljaGFyZHMpLCAKKyAgICAgIEFJWCBpY29udigpIGlzIGFwcGFyZW50bHkgY2FzZSBzZW5zaXRpdmUKKyAgIC0gaW1wcm92ZW1lbnRzOiBQeXRob24gWFBhdGggdHlwZXMgbWFwcGluZyAoTmljIEZlcnJpZXIpLCBYUGF0aCBvcHRpbWl6YXRpb24KKyAgICAgIChLYXNpbWllciksIGFkZCB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiAoS2FzaW1pZXIpLCBQeXRob24gbm9kZQorICAgICAgZXF1YWxpdHkgYW5kIGNvbXBhcmlzb24gKEFuZHJlYXMgUGFrdWxhdCksIHhtbFhQYXRoQ29sbGVjdEFuZFRlc3QKKyAgICAgIGltcHJvdmVtZW10IChLYXNpbWllciksIGV4cG9zZSBpZiBsaWJyYXJ5IHdhcyBjb21waWxlZCB3aXRoIHpsaWIgCisgICAgICBzdXBwb3J0IChBbmRyZXcgTm9zZW5rbyksIGNhY2hlIGZvciB4bWxTY2hlbWFJRENNYXRjaGVyIHN0cnVjdHMKKyAgICAgIChLYXNpbWllciksIHhtbFRleHRDb25jYXQgc2hvdWxkIHdvcmsgd2l0aCBjb21tZW50cyBhbmQgUElzIChSb2IKKyAgICAgIFJpY2hhcmRzKSwgZXhwb3J0IGh0bWxOZXdQYXJzZXJDdHh0IG5lZWRlZCBieSBNaWNoYWVsIERheSwgcmVmYWN0b3JpbmcKKyAgICAgIG9mIGNhdGFsb2cgZW50aXR5IGxvYWRlcnMgKE1pY2hhZWwgRGF5KSwgYWRkIFhQb2ludGVyIHN1cHBvcnQgdG8gCisgICAgICBweXRob24gYmluZGluZ3MgKFJvc3MgUmVlZHN0cm9tLCBCcmlhbiBXZXN0IGFuZCBTdGVmYW4gQW5jYSksIAorICAgICAgdHJ5IHRvIHNvcnQgb3V0IG1vc3QgZmlsZSBwYXRoIHRvIFVSSSBjb252ZXJzaW9ucyBhbmQgeG1sUGF0aFRvVXJpLAorICAgICAgYWRkIC0taHRtbCAtLW1lbW9yeSBjYXNlIHRvIHhtbGxpbnQKKyAgIC0gYnVpbGRpbmcgZml4OiBmaXggLS13aXRoLW1pbmltdW0gKEZlbGlwZSBDb250cmVyYXMpLCBWTVMgZml4LCAKKyAgICAgIGNvbnN0J2lmaWNhdGlvbiBvZiBIVE1MIHBhcnNlciBzdHJ1Y3R1cmVzIChNYXR0aGlhcyBDbGFzZW4pLAorICAgICAgcG9ydGFiaWxpdHkgZml4IChFbWVseWFub3YgQWxleGV5KSwgd2dldCBhdXRvZGV0ZWN0aW9uIChQZXRlcgorICAgICAgQnJlaXRlbmxvaG5lciksICByZW1vdmUgdGhlIGJ1aWxkIHBhdGggcmVjb3JkZWQgaW4gdGhlIHB5dGhvbgorICAgICAgc2hhcmVkIG1vZHVsZSwgc2VwYXJhdGUgbGlicmFyeSBmbGFncyBmb3Igc2hhcmVkIGFuZCBzdGF0aWMgYnVpbGRzCisgICAgICAoTWlraGFpbCBaYWJhbHVldiksIGZpeCAtLXdpdGgtbWluaW11bSAtLXdpdGgtc2F4MSBidWlsZHMsIGZpeAorICAgICAgLS13aXRoLW1pbmltdW0gLS13aXRoLXNjaGVtYXMgYnVpbGRzCisgICAtIGJ1ZyBmaXg6IHhtbEdldE5vZGVQYXRoIGZpeCAoS2FzaW1pZXIpLCB4bWxET01XcmFwQWRvcHROb2RlIGFuZAorICAgICAgYXR0cmlidXRlIChLYXNpbWllciksIGNyYXNoIHdoZW4gdXNpbmcgdGhlIHJlY292ZXIgbW9kZSwgCisgICAgICB4bWxYUGF0aEV2YWxFeHByIHByb2JsZW0gKEthc2ltaWVyKSwgeG1sWFBhdGhDb21wRXhwckFkZCBidWcgKEthc2ltaWVyKSwKKyAgICAgIG1pc3NpbmcgZGVzdHJ5IGluIHhtbEZyZWVSTXV0ZXggKEFuZHJldyBOb3NlbmtvKSwgWE1MIFNjaGVtYXMgZml4ZXMKKyAgICAgIChLYXNpbWllciksIHdhcm5pbmcgb24gZW50aXRpZXMgcHJvY2Vzc2luZywgWEhUTUwgc2NyaXB0IGFuZCBzdHlsZQorICAgICAgc2VyaWFsaXphdGlvbiAoS2FzaW1pZXIpLCBweXRob24gZ2VuZXJhdG9yIGZvciBsb25nIHR5cGVzLCBidWcgaW4KKyAgICAgIHhtbFNjaGVtYUNsZWFyVmFsaWRDdHh0IChCZXJ0cmFuZCBGcml0c2NoKSwgeG1sU2NoZW1hWFBhdGhFdmFsdWF0ZQorICAgICAgYWxsb2NhdGlvbiBidWcgKE1hcnRvbiBJbGxlcyksIGVycm9yIG1lc3NhZ2UgZW5kIG9mIGxpbmUgKFJvYiBSaWNoYXJkcyksCisgICAgICBmaXggYXR0cmlidXRlIHNlcmlhbGl6YXRpb24gaW4gd3JpdGVyIChSb2IgUmljaGFyZHMpLCBQSFA0IERURCB2YWxpZGF0aW9uCisgICAgICBjcmFzaGVyLCBwYXJzZXIgc2FmZXR5IHBhdGNoIChCZW4gRGFybmVsbCksIF9wcml2YXRlIGNvbnRleHQgcHJvcGFnYXRpb24KKyAgICAgIHdoZW4gcGFyc2luZyBlbnRpdGllcyAod2l0aCBNaWNoYWVsIERheSksIGZpeCBlbnRpdGllcyBiZWhhdmlvdXIgd2hlbiAKKyAgICAgIHVzaW5nIFNBWCwgVVJJIHRvIGZpbGUgcGF0aCBmaXggKE1pa2hhaWwgWmFiYWx1ZXYpLCBkaXNhcGVhcmluZyB2YWxpZGl0eQorICAgICAgY29udGV4dCwgYXJnIGVycm9yIGluIFNBWCBjYWxsYmFjayAoTWlrZSBIb21tZXkpLCBmaXggbWl4ZWQtY29udGVudAorICAgICAgYXV0b2RldGVjdCB3aGVuIHVzaW5nIC0tbm9ibGFua3MsIGZpeCB4bWxJT1BhcnNlRFREIGVycm9yIGhhbmRsaW5nLAorICAgICAgZml4IGJ1ZyBpbiB4bWxTcGxpdFFOYW1lIG9uIHNwZWNpYWwgTmFtZXMsIGZpeCBSZWxheC1ORyBlbGVtZW50IGNvbnRlbnQKKyAgICAgIHZhbGlkYXRpb24gYnVnLCBmaXggeG1sUmVjb25jaWxpYXRlTnMgYnVnLCBmaXggcG90ZW50aWFsIGF0dHJpYnV0ZSAKKyAgICAgIFhNTCBwYXJzaW5nIGJ1ZywgZml4IGxpbmUvY29sdW1uIGFjY291bnRpbmcgaW4gWE1MIHBhcnNlciwgY2h1bmtpbmcgYnVnCisgICAgICBpbiB0aGUgSFRNTCBwYXJzZXIgb24gc2NyaXB0LCB0cnkgdG8gZGV0ZWN0IG9idmlvdXNseSBidWdneSBIVE1MCisgICAgICBtZXRhIGVuY29kaW5nIGluZGljYXRpb25zLCBidWdzIHdpdGggZW5jb2RpbmcgQk9NIGFuZCB4bWxTYXZlRG9jLCAKKyAgICAgIEhUTUwgZW50aXRpZXMgaW4gYXR0cmlidXRlcyBwYXJzaW5nLCBIVE1MIG1pbmltaXplZCBhdHRyaWJ1dGUgdmFsdWVzLAorICAgICAgaHRtbFJlYWREb2MgYW5kIGh0bWxSZWFkSU8gd2VyZSBicm9rZW4sIGVycm9yIGhhbmRsaW5nIGJ1ZyBpbgorICAgICAgeG1sWFBhdGhFdmFsRXhwcmVzc2lvbiAoT2xhZiBXYWxrb3dpYWspLCBmaXggYSBwcm9ibGVtIGluCisgICAgICBodG1sQ3R4dFVzZU9wdGlvbnMsIHhtbE5ld0lucHV0RnJvbUZpbGUgY291bGQgbGVhayAoTWFyaXVzIEtvbml0emVyKSwKKyAgICAgIGJ1ZyBvbiBtaXNmb3JtZWQgU1NEIHJlZ2V4cHMgKENocmlzdG9waGVyIEJvdW1lbm90KQorICAgICAgCisgICAtIGRvY3VtZW50YXRpb246IHdhcm5pbmcgYWJvdXQgWE1MX1BBUlNFX0NPTVBBQ1QgKEthc2ltaWVyIEJ1Y2hjaWspLAorICAgICAgZml4IHhtbFhQYXRoQ2FzdFRvU3RyaW5nIGRvY3VtZW50YXRpb24sIGltcHJvdmUgbWFuIHBhZ2VzIGZvcgorICAgICAgeG1sbGl0biBhbmQgeG1sY2F0YWxvZyAoRGFuaWVsIExlaWRlcnQpLCBmaXhlZCBjb21tZW50cyBvZiBhIGZldworICAgICAgZnVuY3Rpb25zCisKKworMi42LjI2OiBKdW4gNiAyMDA2OgorICAgLSBwb3J0YWJpbGl0eSBmaXhlczogUHl0aG9uIGRldGVjdGlvbiAoSm9zZXBoIFNhY2NvKSwgY29tcGlsYXRpb24KKyAgICBlcnJvcihXaWxsaWFtIEJyYWNrIGFuZCBHcmFoYW0gQmVubmV0dCksIEx5bnhPUyBwYXRjaCAoT2xsaSBTYXZpYSkKKyAgIC0gYnVnIGZpeGVzOiBlbmNvZGluZyBidWZmZXIgcHJvYmxlbSwgbWl4IG9mIGNvZGUgYW5kIGRhdGEgaW4KKyAgICB4bWxJTy5jKEtqYXJ0YW4gTWFyYWFzKSwgZW50aXRpZXMgaW4gWFNEIHZhbGlkYXRpb24gKEthc2ltaWVyIEJ1Y2hjaWspLAorICAgIHZhcmlvdXNYU0QgdmFsaWRhdGlvbiBmaXhlcyAoS2FzaW1pZXIpLCBtZW1vcnkgbGVhayBpbiBwYXR0ZXJuIChSb2IKKyAgICBSaWNoYXJkcyBhbmRLYXNpbWllciksIGF0dHJpYnV0ZSB3aXRoIGNvbG9uIGluIG5hbWUgKFJvYiBSaWNoYXJkcyksIFhQYXRoCisgICAgbGVhayBpbmVycm9yIHJlcG9ydGluZyAoQWxla3NleSBTYW5pbiksIFhJbmNsdWRlIHRleHQgaW5jbHVkZSBvZgorICAgIHNlbGZkb2N1bWVudC4KKyAgIC0gaW1wcm92ZW1lbnRzOiBYcGF0aCBvcHRpbWl6YXRpb25zIChLYXNpbWllciksIFhQYXRoIG9iamVjdAorICAgIGNhY2hlKEthc2ltaWVyKQorCisKKzIuNi4yNTogSnVuIDYgMjAwNjo6CitEbyBub3QgdXNlIG9yIHBhY2thZ2UgMi42LjI1CisyLjYuMjQ6IEFwciAyOCAyMDA2OgorICAgLSBQb3J0YWJpbGl0eSBmaXhlczogY29uZmlndXJlIG9uIFdpbmRvd3MsIHRlc3RhcGkgY29tcGlsZSBvbiB3aW5kb3dzCisgICAgICAoS2FzaW1pZXIgQnVjaGNpaywgdmVua2F0IG5haWR1KSwgQm9ybGFuZCBDKysgNiBjb21waWxlIChFcmljIFp1cmNoZXIpLAorICAgICAgSFAtVVggY29tcGlsZXIgd29ya2Fyb3VuZCAoUmljayBKb25lcyksIHhtbDItY29uZmlnIGJ1Z2ZpeCwgZ2NjLTQuMQorICAgICAgY2xlYW51cHMsIFB5dGhvbiBkZXRlY3Rpb24gc2NoZW1lIChKb3NlcGggU2FjY28pLCBVVEYtOCBmaWxlIHBhdGhzIG9uCisgICAgICBXaW5kb3dzIChSb2xhbmQgU2Nod2luZ2VsKS4KKyAgICAgIAorICAgLSBJbXByb3ZlbWVudHM6IHhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIHhtbERPTVdyYXBDbG9uZU5vZGUgKEthc2ltaWVyCisgICAgICBCdWNoY2lrKSwgWE1MIGNhdGFsb2cgZGVidWdnaW5nIChSaWNrIEpvbmVzKSwgdXBkYXRlIHRvIFVuaWNvZGUgNC4wMS4KKyAgIC0gQnVnIGZpeGVzOiB4bWxQYXJzZUNodW5rKCkgcHJvYmxlbSBpbiAyLjYuMjMsIHhtbFBhcnNlSW5Ob2RlQ29udGV4dCgpCisgICAgICBvbiBIVE1MIGRvY3MsIFVSSSBiZWhhdmlvdXIgb24gV2luZG93cyAoUm9iIFJpY2hhcmRzKSwgY29tbWVudCBzdHJlYW1pbmcKKyAgICAgIGJ1ZywgeG1sUGFyc2VDb21tZW50ICh3aXRoIFdpbGxpYW0gQnJhY2spLCByZWdleHAgYnVnIGZpeGVzIChEViAmCisgICAgICBZb3VyaSBHb2xvdmFub3YpLCB4bWxHZXROb2RlUGF0aCBvbiB0ZXh0L0NEQVRBIChLYXNpbWllciksCisgICAgICBvbmUgUmVsYXgtTkcgaW50ZXJsZWF2ZSBidWcsIHhtbGxpbnQgLS1wYXRoIGFuZCAtLXZhbGlkLAorICAgICAgWFNEIGJ1Z2ZpeGVzIChLYXNpbWllciksIHJlbW92ZSBkZWJ1ZworICAgICAgbGVmdCBpbiBQeXRob24gYmluZGluZ3MgKE5pYyBGZXJyaWVyKSwgeG1sQ2F0YWxvZ0FkZCBidWcgKE1hcnRpbiBDb2xlKSwKKyAgICAgIHhtbFNldFByb3AgZml4ZXMgKFJvYiBSaWNoYXJkcyksIEhUTUwgSURuZXNzIChSb2IgUmljaGFyZHMpLCBhIGxhcmdlCisgICAgICBudW1iZXIgb2YgY2xlYW51cHMgYW5kIHNtYWxsIGZpeGVzIGJhc2VkIG9uIENvdmVyaXR5IHJlcG9ydHMsIGJ1ZworICAgICAgaW4gY2hhcmFjdGVyIHJhbmdlcywgVW5pY29kZSB0YWJsZXMgY29uc3QgKEFpdmFycyBLYWx2YW5zKSwgc2NoZW1hcworICAgICAgZml4IChTdGVmYW4gS29zdCksIHhtbFJlbGF4TkdQYXJzZSBlcnJvciBkZWFsbG9jYXRpb24sIAorICAgICAgeG1sU2NoZW1hQWRkU2NoZW1hRG9jIGVycm9yIGRlYWxsb2NhdGlvbiwgZXJyb3IgaGFuZGxpbmcgb24gdW5hbGxvd2VkCisgICAgICBjb2RlIHBvaW50LCBpeG1sbGludCAtLW5vbmV0IHRvIG5ldmVyIHJlYWNoIHRoZSBuZXQgKEdhcnkgQ29hZHkpLAorICAgICAgbGluZSBicmVhayBpbiB3cml0ZXIgYWZ0ZXIgZW5kIFBJIChKYXNvbiBWaWVycykuIAorICAgLSBEb2N1bWVudGF0aW9uOiBtYW4gcGFnZXMgdXBkYXRlcyBhbmQgY2xlYW51cHMgKERhbmllbCBMZWlkZXJ0KS4KKyAgIC0gTmV3IGZlYXR1cmVzOiBSZWxheCBORyBzdHJ1Y3R1cmUgZXJyb3IgaGFuZGxlcnMuCisKKworMi42LjIzOiBKYW4gNSAyMDA2OgorICAgLSBwb3J0YWJpbGl0eSBmaXhlczogV2luZG93cyAoUm9iIFJpY2hhcmRzKSwgZ2V0YWRkcmluZm8gb24gV2luZG93cworICAgIChLb2xqYSBOb3dhaywgUm9iIFJpY2hhcmRzKSwgaWNjIHdhcm5pbmdzIChLamFydGFuIE1hcmFhcyksCisgICAgLS13aXRoLW1pbmltdW0gY29tcGlsYXRpb24gZml4ZXMgKFdpbGxpYW0gQnJhY2spLCBlcnJvciBjYXNlIGhhbmRsaW5nIGZpeAorICAgIG9uIFNvbGFyaXMgKEFsYmVydCBDaGluKSwgZG9uJ3QgdXNlICdsaXN0JyBhcyBwYXJhbWV0ZXIgbmFtZSByZXBvcnRlZCBieQorICAgIFNhbXVlbCBEaWF6IEdhcmNpYSwgbW9yZSBvbGQgVW5pY2VzIHBvcnRhYmlsaXR5IGZpeGVzIChBbGJlcnQgQ2hpbiksCisgICAgTWluR1cgY29tcGlsYXRpb24gKE1hcmsgSnVua2VyKSwgSFAtVVggY29tcGlsZXIgd2FybmluZ3MgKFJpY2sKKyAgSm9uZXMpLAorICAgLSBjb2RlIGNsZWFudXA6IHhtbFJlcG9ydEVycm9yIChBZHJpYW4gTW91YXQpLCByZW1vdmUgeG1sQnVmZmVyQ2xvc2UKKyAgICAoR2VlcnQgSmFuc2VuKSwgdW5yZWFjaGFibGUgY29kZSAoT2xla3NhbmRyIEtvbm9uZW5rbyksIHJlZmFjdG9yaW5nCisgICAgcGFyc2luZyBjb2RlIChCam9ybiBSZWVzZSkKKyAgIC0gYnVnIGZpeGVzOiB4bWxCdWlsZFJlbGF0aXZlVVJJIGFuZCBlbXB0eSBwYXRoIChXaWxsaWFtIEJyYWNrKSwKKyAgICBjb21iaW5hdG9yeSBleHBsb3Npb24gYW5kIHBlcmZvcm1hbmNlcyBpbiByZWdleHAgY29kZSwgbGVhayBpbgorICAgIHhtbFRleHRSZWFkZXJSZWFkU3RyaW5nKCksIHhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIHByb2JsZW0gKE1hc3NpbW8KKyAgICBNb3JhcmEpLCBJZGVudGl0eSBDb25zdHJhaW50cyBidWdzIGFuZCBhIHNlZ2ZhdWx0IChLYXNpbWllciBCdWNoY2lrKSwKKyAgICBYUGF0aCBwYXR0ZXJuIGJhc2VkIGV2YWx1YXRpb24gYnVncyAoRFYgJiBLYXNpbWllciksCisgICAgeG1sU2NoZW1hQ29udGVudE1vZGVsRHVtcCgpIG1lbW9yeSBsZWFrIChLYXNpbWllciksIHBvdGVudGlhbCBsZWFrIGluCisgICAgeG1sU2NoZW1hQ2hlY2tDU2VsZWN0b3JYUGF0aCgpLCB4bWxUZXh0V3JpdGVyVlNwcmludGYoKSBtaXN1c2Ugb2YKKyAgICB2c25wcmludGYgKFdpbGxpYW0gQnJhY2spLCBYSFRNTCBzZXJpYWxpemF0aW9uIGZpeCAoUm9iIFJpY2hhcmRzKSwgQ1JMRgorICAgIHNwbGl0IHByb2JsZW0gKFdpbGxpYW0pLCBpc3N1ZXMgd2l0aCBub24tbmFtZXNwYWNlZCBhdHRyaWJ1dGVzIGluCisgICAgeG1sQWRkQ2hpbGQoKSB4bWxBZGROZXh0U2libGluZygpIGFuZCB4bWxBZGRQcmV2U2libGluZygpIChSb2IgUmljaGFyZHMpLAorICAgIEhUTUwgcGFyc2luZyBvZiBzY3JpcHQsIFB5dGhvbiBtdXN0IG5vdCBvdXRwdXQgdG8gc3Rkb3V0IChOaWMgRmVycmllciksCisgICAgZXhjbHVzaXZlIEMxNE4gbmFtZXNwYWNlIHZpc2liaWxpdHkgKEFsZWtzZXkgU2FuaW4pLCBYU0QgZGF0YXlwZQorICAgIHRvdGFsRGlnaXRzIGJ1ZyAoS2FzaW1pZXIgQnVjaGNpayksIGVycm9yIGhhbmRsaW5nIHdoZW4gd3JpdGluZyB0byBhbgorICAgIHhtbEJ1ZmZlciAoUm9iIFJpY2hhcmRzKSwgcnVudGVzdCBzY2hlbWFzIGVycm9yIG5vdCByZXBvcnRlZCAoSGlzYXNoaQorICAgIEZ1amluYWthKSwgc2lnbmVkL3Vuc2lnbmVkIHByb2JsZW0gaW4gZGF0ZS90aW1lIGNvZGUgKEFsYmVydCBDaGluKSwgZml4CisgICAgWFNJIGRyaXZlbiBYU0QgdmFsaWRhdGlvbiAoS2FzaW1pZXIpLCBwYXJzaW5nIG9mIHhzOmRlY2ltYWwgKEthc2ltaWVyKSwKKyAgICBmaXggRFREIHdyaXRlciBvdXRwdXQgKFJvYiBSaWNoYXJkcyksIGxlYWsgaW4geG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbAorICAgIChHYXJ5IENvYWR5KSwgcmVnZXhwIGJ1ZyBhZmZlY3Rpbmcgc2NoZW1hcyAoS2FzaW1pZXIpLCBjb25maWd1cmF0aW9uIG9mCisgICAgcnVudGltZSBkZWJ1Z2dpbmcgKEthc2ltaWVyKSwgeG1sTm9kZUJ1ZkdldENvbnRlbnQgYnVnIG9uIGVudGl0eSByZWZzCisgICAgKE9sZWtzYW5kciBLb25vbmVua28pLCB4bWxSZWdFeGVjUHVzaFN0cmluZzIgYnVnIChTcmVlbmkgTmFpciksCisgICAgY29tcGlsYXRpb24gYW5kIGJ1aWxkIGZpeGVzIChNaWNoYWVsIERheSksIHJlbW92ZWQgZGVwZW5kYW5jaWVzIG9uCisgICAgeG1sU2NoZW1hVmFsaWRFcnJvciAoS2FzaW1pZXIpLCBidWcgd2l0aCA8eG1sOmZvby8+LCBtb3JlIFhQYXRoCisgICAgcGF0dGVybiBiYXNlZCBldmFsdWF0aW9uIGZpeGVzIChLYXNpbWllcikKKyAgIC0gaW1wcm92ZW1lbnRzOiBYU0QgU2NoZW1hcyByZWRlZmluaXRpb25zL3Jlc3RyaWN0aW9ucyAoS2FzaW1pZXIKKyAgICBCdWNoY2lrKSwgbm9kZSBjb3B5IGNoZWNrcyBhbmQgZml4IGZvciBhdHRyaWJ1dGUgKFJvYiBSaWNoYXJkcyksIGNvdW50ZWQKKyAgICB0cmFuc2l0aW9uIGJ1ZyBpbiByZWdleHBzLCBjdHh0LT5zdGFuZGFsb25lID0gLTIgdG8gaW5kaWNhdGUgbm8KKyAgICBzdGFuZGFsb25lIGF0dHJpYnV0ZSB3YXMgZm91bmQsIGFkZCB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKCkKKyAgICAoS2FzaW1pZXIgQnVjaGNpayksIGFkZCB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0KCkgdG8gQVBJCisgICAgKEthc2ltaWVyKSwgaGFuZGxlIGd6aXBwZWQgSFRUUCByZXNvdXJjZXMgKEdhcnkgQ29hZHkpLCBhZGQKKyAgICBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdC4gKFJvYiBSaWNoYXJkcyksCisgICAtIGRvY3VtZW50YXRpb246IHR5cG8gKE1pY2hhZWwgRGF5KSwgbGlieG1sIG1hbiBwYWdlIChBbGJlcnQgQ2hpbiksIHNhdmUKKyAgICBmdW5jdGlvbiB0byBYTUwgYnVmZmVyIChHZWVydCBKYW5zZW4pLCBzbWFsbCBkb2MgZml4IChBcm9uIFN0YW5zdmlrKSwKKworCisyLjYuMjI6IFNlcCAxMiAyMDA1OgorICAgLSBidWlsZCBmaXhlczogY29tcGlsZSB3aXRob3V0IHNjaGVtYXRyb24gKFN0w4PCqXBoYW5lIEJpZG91bCkKKyAgIC0gYnVnIGZpeGVzOiB4bWxEZWJ1Z0R1bXBOb2RlIG9uIG5hbWVzcGFjZSBub2RlIChPbGVnIFBhcmFzY2hlbmtvKWksCisgICAgQ0RBVEEgcHVzaCBwYXJzZXIgYnVnLCB4bWxFbGVtRHVtcCBwcm9ibGVtIHdpdGggWEhUTUwxIGRvYywKKyAgICBYTUxfRkVBVFVSRV94eHggY2xhc2ggd2l0aCBleHBhdCBoZWFkZXJzIHJlbmFtZWQgWE1MX1dJVEhfeHh4LCBmaXggc29tZQorICAgIG91dHB1dCBmb3JtYXR0aW5nIGZvciBtZXRhIGVsZW1lbnQgKFJvYiBSaWNoYXJkcyksIHNjcmlwdCBhbmQgc3R5bGUKKyAgICBYSFRNTDEgc2VyaWFsaXphdGlvbiAoRGF2aWQgTWFkb3JlKSwgQXR0cmlidXRlIGRlcml2YXRpb24gZml4dXBzIGluIFhTRAorICAgIChLYXNpbWllciBCdWNoY2lrKSwgYmV0dGVyIElEQyBlcnJvciByZXBvcnRzIChLYXNpbWllciBCdWNoY2lrKQorICAgLSBpbXByb3ZlbWVudHM6IGFkZCBYTUxfU0FWRV9OT19FTVBUWSB4bWxTYXZlT3B0aW9uIChSb2IgUmljaGFyZHMpLCBhZGQKKyAgICBYTUxfU0FWRV9OT19YSFRNTCB4bWxTYXZlT3B0aW9uLCBYTUwgU2NoZW1hcyBpbXByb3ZlbWVudHMgcHJlcGFyaW5nIGZvcgorICAgIGRlcml2ZSAoS2FzaW1pZXIgQnVjaGNpaykuCisgICAtIGRvY3VtZW50YXRpb246IGdlbmVyYXRpb24gb2YgZ3RrLWRvYyBsaWtlIGRvY3MsIGludGVncmF0aW9uIHdpdGgKKyAgICBkZXZoZWxwLgorCisKKzIuNi4yMTogU2VwIDQgMjAwNToKKyAgIC0gYnVpbGQgZml4ZXM6IEN5Z3dpbiBwb3J0YWJpbGl0eSBmaXhlcyAoR2Vycml0IFAuIEhhYXNlKSwgY2FsbGluZworICAgIGNvbnZlbnRpb24gcHJvYmxlbXMgb24gV2luZG93cyAoTWFyY3VzIEJvZXJnZXIpLCBjbGVhbnVwcyBiYXNlZCBvbiBMaW51cycKKyAgICBzcGFyc2UgdG9vbCwgdXBkYXRlIG9mIHdpbjMyL2NvbmZpZ3VyZS5qcyAoUm9iIFJpY2hhcmRzKSwgcmVtb3ZlIHdhcm5pbmdzCisgICAgb24gV2luZG93cyhNYXJjdXMgQm9lcmdlciksIGNvbXBpbGF0aW9uIHdpdGhvdXQgU0FYMSwgZGV0ZWN0aW9uIG9mIHRoZQorICAgIFB5dGhvbiBiaW5hcnksIHVzZSAkR0NDIGluZXN0YWQgb2YgJENDID0gJ2djYycgKEFuZHJldyBXLiBOb3NlbmtvKSwKKyAgICBjb21waWxhdGlvbi9saW5rIHdpdGggdGhyZWFkcyBhbmQgb2xkIGdjYywgY29tcGlsZSBwcm9ibGVtIGJ5IEMzNzAgb24KKyAgICBaL09TLAorICAgLSBidWcgZml4ZXM6IGh0dHBfcHJveHkgZW52aXJvbm1lbnRzIChQZXRlciBCcmVpdGVubG9obmVyKSwgSFRNTCBVVEYtOAorICAgIGJ1ZyAoSmlyaSBOZXRvbGlja3kpLCBYUGF0aCBOYU4gY29tcGFyZSBidWcgKFdpbGxpYW0gQnJhY2spLAorICAgIGh0bWxQYXJzZVNjcmlwdCBwb3RlbnRpYWwgYnVnLCBTY2hlbWFzIHJlZ2V4cCBoYW5kbGluZyBvZiBzcGFjZXMsIEJhc2U2NAorICAgIFNjaGVtYXMgY29tcGFyaXNvbnMgTklTVCBwYXNzZXMsIGF1dG9tYXRhIGJ1aWxkIGVycm9yIHhzZDphbGwsCisgICAgeG1sR2V0Tm9kZVBhdGggZm9yIG5hbWVzcGFjZWQgYXR0cmlidXRlcyAoQWxleGFuZGVyIFBvaG95ZGEpLCB4bWxTY2hlbWFzCisgICAgZm9yZWlnbiBuYW1lc3BhY2VzIGhhbmRsaW5nLCBYTUwgU2NoZW1hcyBmYWNldCBjb21wYXJpc29uIChLdXByaXlhbm92CisgICAgQW5hdG9saWopLCB4bWxTY2hlbWFQU2ltcGxlVHlwZUVyciBlcnJvciByZXBvcnQgKEthc2ltaWVyIEJ1Y2hjaWspLCB4bWw6CisgICAgbmFtZXNwYWNlIGFobmRsaW5nIGluIFNjaGVtYXMgKEthc2ltaWVyKSwgZW1wdHkgbW9kZWwgZ3JvdXAgaW4gU2NoZW1hcworICAgIChLYXNpbWllciksIHdpbGNhcmQgaW4gU2NoZW1hcyAoS2FzaW1pZXIpLCBVUkkgY29tcG9zaXRpb24gKFdpbGxpYW0pLAorICAgIHhzOmFueVR5cGUgaW4gU2NoZW1hcyAoS2FzaW1pZXIpLCBQeXRob24gcmVzb2x2ZXIgZW1taXR0aW5nIGVycm9yCisgICAgbWVzc2FnZXMgZGlyZWN0bHksIFB5dGhvbiB4bWxBdHRyLnBhcmVudCAoSmFrdWIgUGlvdHIgQ2xhcGEpLCB0cnlpbmcgdG8KKyAgICBmaXggdGhlIGZpbGUgcGF0aC9VUkkgY29udmVyc2lvbiwgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSBmaXggKFJvYgorICAgIFJpY2hhcmRzKSwgeG1sU2NoZW1hRnJlZUFubm90IG1lbWxlYWsgKEthc2ltaWVyKSwgSFRNTCBVVEYtOAorICAgIHNlcmlhbGl6YXRpb24sIHN0cmVhbWluZyBYUGF0aCwgU2NoZW1hcyBkZXRlcm1pbmlzbSBkZXRlY3Rpb24gcHJvYmxlbSwKKyAgICBYSW5jbHVkZSBidWcsIFNjaGVtYXMgY29udGV4dCB0eXBlIChEZWFuIEhpbGwpLCB2YWxpZGF0aW9uIGZpeCAoRGVyZWsKKyAgICBQb29uKSwgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZVtOc10gbmFtZXNwYWNlcyAoUm9iIFJpY2hhcmRzKSwgU2NoZW1hcworICAgIHR5cGUgZml4IChLdWJhIE5vd2Frb3dza2kpLCBVVEYtOCBwYXJzZXIgYnVnLCBlcnJvciBpbiBlbmNvZGluZyBoYW5kbGluZywKKyAgICB4bWxHZXRMaW5lTm8gZml4ZXMsIGJ1ZyBvbiBlbnRpdGllcyBoYW5kbGluZywgZW50aXR5IG5hbWUgZXh0cmFjdGlvbiBpbgorICAgIGVycm9yIGhhbmRsaW5nIHdpdGggWEluY2x1ZGUsIHRleHQgbm9kZXMgaW4gSFRNTCBib2R5IHRhZ3MgKEdhcnkgQ29hZHkpLAorICAgIHhtbDppZCBhbmQgSURuZXNzIGF0IHRoZSB0cmVlZSBsZXZlbCBmaXhlcywgWFBhdGggc3RyZWFtaW5nIHBhdHRlcm5zCisgIGJ1Z3MuCisgICAtIGltcHJvdmVtZW50czogc3RydWN0dXJlZCBpbnRlcmZhY2VzIGZvciBzY2hlbWFzIGFuZCBSTkcgZXJyb3IgcmVwb3J0cworICAgIChNYXJjdXMgQm9lcmdlciksIG9wdGltaXphdGlvbiBvZiB0aGUgY2hhciBkYXRhIGlubmVyIGxvb3AgcGFyc2luZworICAgICh0aGFua3MgdG8gQmVoZGFkIEVzZmFoYm9kIGZvciB0aGUgaWRlYSksIHNjaGVtYXRyb24gdmFsaWRhdGlvbiB0aG91Z2gKKyAgICBub3QgZmluaXNoZWQgeWV0LCB4bWxTYXZlT3B0aW9uIHRvIG9taXQgWE1MIGRlY2xhcmF0aW9uLCBrZXlyZWYgbWF0Y2gKKyAgICBlcnJvciByZXBvcnRzIChLYXNpbWllciksIGZvcm1hbCBleHByZXNzaW9uIGhhbmRsaW5nIGNvZGUgbm90IHBsdWdnZWQKKyAgICB5ZXQsIG1vcmUgbGF4IG1vZGUgZm9yIHRoZSBIVE1MIHBhcnNlciwgcGFyc2VyIFhNTF9QQVJTRV9DT01QQUNUIG9wdGlvbgorICAgIGZvciB0ZXh0IG5vZGVzIGFsbG9jYXRpb24uCisgICAtIGRvY3VtZW50YXRpb246IHhtbGxpbnQgbWFuIHBhZ2UgaGFkIC0tbm9uZXQgZHVwbGljYXRlZAorCisKKzIuNi4yMDogSnVsIDEwIDIwMDU6CisgICAtIGJ1aWxkIGZpeGVzOiBXaW5kb3dzIGJ1aWxkIChSb2IgUmljaGFyZHMpLCBNaW5ndyBjb21waWxhdGlvbiAoSWdvcgorICAgIFpsYXRrb3ZpYyksIFdpbmRvd3MgTWFrZWZpbGUgKElnb3IpLCBnY2Mgd2FybmluZ3MgKEthc2ltaWVyIGFuZAorICAgIGFuZHJpeUBnb29nbGUuY29tKSwgdXNlIGdjYyB3ZWFrIHJlZmVyZW5jZXMgdG8gcHRocmVhZCB0byBhdm9pZCB0aGUKKyAgICBwdGhyZWFkIGRlcGVuZGFuY3kgb24gTGludXgsIGNvbXBpbGF0aW9uIHByb2JsZW0gKFN0ZXZlIE5haXJuKSwgY29tcGlsaW5nCisgICAgb2Ygc3Vic2V0IChNb3J0ZW4gV2VsaW5kZXIpLCBJUHY2L3NzX2ZhbWlseSBjb21waWxhdGlvbiAoV2lsbGlhbSBCcmFjayksCisgICAgY29tcGlsYXRpb24gd2hlbiBkaXNhYmxpbmcgcGFydHMgb2YgdGhlIGxpYnJhcnksIHN0YW5kYWxvbmUgdGVzdAorICAgIGRpc3RyaWJ1dGlvbi4KKyAgIC0gYnVnIGZpeGVzOiBidWcgaW4gbGFuZygpLCBtZW1vcnkgY2xlYW51cCBvbiBlcnJvcnMgKFdpbGxpYW0gQnJhY2spLAorICAgIEhUVFAgcXVlcnkgc3RyaW5ncyAoQXJvbiBTdGFuc3ZpayksIG1lbW9yeSBsZWFrIGluIERURCAoV2lsbGlhbSksIGludGVnZXIKKyAgICBvdmVyZmxvdyBpbiBYUGF0aCAoV2lsbGlhbSksIG5hbm9mdHAgYnVmZmVyIHNpemUsIHBhdHRlcm4gIi4iIGFwdGggZml4dXAKKyAgICAoS2FzaW1pZXIpLCBsZWFrIGluIHRyZWUgcmVwb3J0ZWQgYnkgTWFsY29sbSBSb3dlLCByZXBsYWNlTm9kZSBwYXRjaAorICAgIChCcmVudCBIZW5kcmlja3MpLCBDREFUQSB3aXRoIE5VTEwgY29udGVudCAoTWFyayBWYWtvYyksIHhtbDpiYXNlIGZpeHVwCisgICAgb24gWEluY2x1ZGUgKFdpbGxpYW0pLCBwYXR0ZXJuIGZpeGVzIChXaWxsaWFtKSwgYXR0cmlidXRlIGJ1ZyBpbgorICAgIGV4Y2x1c2l2ZSBjMTRuIChBbGVrc2V5IFNhbmluKSwgeG1sOnNwYWNlIGFuZCB4bWw6bGFuZyB3aXRoIFNBWDIgKFJvYgorICAgIFJpY2hhcmRzKSwgbmFtZXNwYWNlIHRyb3VibGUgaW4gY29tcGxleCBwYXJzaW5nIChNYWxjb2xtIFJvd2UpLCBYU0QgdHlwZQorICAgIFFOYW1lcyBmaXhlcyAoS2FzaW1pZXIpLCBYUGF0aCBzdHJlYW1pbmcgZml4dXBzIChXaWxsaWFtKSwgUmVsYXhORyBidWcKKyAgICAoUm9iIFJpY2hhcmRzKSwgU2NoZW1hcyBmb3IgU2NoZW1hcyBmaXhlcyAoS2FzaW1pZXIpLCByZW1vdmFsIG9mIElEIChSb2IKKyAgICBSaWNoYXJkcyksIGEgc21hbGwgUmVsYXhORyBsZWFrLCBIVE1MIHBhcnNpbmcgaW4gcHVzaCBtb2RlIGJ1ZyAoSmFtZXMKKyAgICBCdXJzYSksIGZhaWx1cmUgdG8gZGV0ZWN0IFVURi04IHBhcnNpbmcgYnVncyBpbiBDREFUQSBzZWN0aW9ucywKKyAgICBhcmVCbGFua3MoKSBoZXVyaXN0aWMgZmFpbHVyZSwgZHVwbGljYXRlIGF0dHJpYnV0ZXMgaW4gRFREIGJ1ZworICAoV2lsbGlhbSkuCisgICAtIGltcHJvdmVtZW50czogbG90IG9mIHdvcmsgb24gU2NoZW1hcyBieSBLYXNpbWllciBCdWNoY2lrIGJvdGggb24KKyAgICBjb25mb3JtYW5jZSBhbmQgc3RyZWFtaW5nLCBTY2hlbWFzIHZhbGlkYXRpb24gbWVzc2FnZXMgKEthc2ltaWVyIEJ1Y2hjaWssCisgICAgTWF0dGhldyBCdXJnZXNzKSwgbmFtZXNwYWNlIHJlbW92YWwgYXQgdGhlIHB5dGhvbiBsZXZlbCAoQnJlbnQKKyAgICBIZW5kcmlja3MpLCBVcGRhdGUgdG8gbmV3IFNjaGVtYXMgcmVncmVzc2lvbiB0ZXN0cyBmcm9tIFczQy9OaXN0CisgICAgKEthc2ltaWVyKSwgeG1sU2NoZW1hVmFsaWRhdGVGaWxlKCkgKEthc2ltaWVyKSwgaW1wbGVtZW50YXRpb24gb2YKKyAgICB4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIGFuZCB4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sIChKYW1lcyBXZXJ0KSwKKyAgICBzdGFuZGFsb25lIHRlc3QgZnJhbWV3b3JrIGFuZCBwcm9ncmFtcywgbmV3IERPTSBpbXBvcnQgQVBJcworICAgIHhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzKCkgeG1sRE9NV3JhcEFkb3B0Tm9kZSgpIGFuZAorICAgIHhtbERPTVdyYXBSZW1vdmVOb2RlKCksIGV4dGVuc2lvbiBvZiB4bWxsaW50IGNhcGFiaWxpdGllcyBmb3IgU0FYIGFuZAorICAgIFNjaGVtYXMgcmVncmVzc2lvbiB0ZXN0cywgeG1sU3RvcFBhcnNlcigpIGF2YWlsYWJsZSBpbiBwdWxsIG1vZGUgdG9vLAorICAgIGllbmhhbmNlbWVudCB0byB4bWxsaW50IC0tc2hlbGwgbmFtZXNwYWNlcyBzdXBwb3J0LCBXaW5kb3dzIHBvcnQgb2YgdGhlCisgICAgc3RhbmRhbG9uZSB0ZXN0aW5nIHRvb2xzIChLYXNpbWllciBhbmQgV2lsbGlhbSksCisgICAgeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0oKSB4bWxTY2hlbWFTQVhQbHVnKCkgYW5kIHhtbFNjaGVtYVNBWFVucGx1ZygpIFNBWAorICAgIFNjaGVtYXMgQVBJcywgU2NoZW1hcyB4bWxSZWFkZXIgc3VwcG9ydC4KKworCisyLjYuMTk6IEFwciAwMiAyMDA1OgorICAgLSBidWlsZCBmaXhlczogZHJvcCAubGEgZnJvbSBSUE1zLCAtLXdpdGgtbWluaW11bSBidWlsZCBmaXggKFdpbGxpYW0KKyAgICBCcmFjayksIHVzZSBYTUxfU09DS0xFTl9UIGluc3RlYWQgb2YgU09DS0xFTl9UIGJlY2F1c2UgaXQgYnJlYWtzIHdpdGggQUlYCisgICAgNS4zIGNvbXBpbGVyLCBmaXhlZCBlbGZnY2NoYWNrLmggZ2VuZXJhdGlvbiBhbmQgUExUIHJlZHVjdGlvbiBjb2RlIG9uCisgICAgTGludXgvRUxGL2djYzQKKyAgIC0gYnVnIGZpeGVzOiBzY2hlbWFzIHR5cGUgZGVjaW1hbCBmaXh1cHMgKFdpbGxpYW0gQnJhY2spLCB4bW1saW50IHJldHVybgorICAgIGNvZGUgKEdlcnJ5IE11cnBoeSksIHNtYWxsIHNjaGVtYXMgZml4ZXMgKE1hdHRoZXcgQnVyZ2VzcyBhbmQgR1VZCisgICAgRmFicmljZSksIHdvcmthcm91bmQgIkRBVjoiIG5hbWVzcGFjZSBicm9rZW5lc3MgaW4gYzE0biAoQWxla3NleSBTYW5pbiksCisgICAgc2VnZmF1bHQgaW4gU2NoZW1hcyAoS2FzaW1pZXIgQnVjaGNpayksIFNjaGVtYXMgYXR0cmlidXRlIHZhbGlkYXRpb24KKyAgICAoS2FzaW1pZXIpLCBQcm9wIHJlbGF0ZWQgZnVuY3Rpb25zIGFuZCB4bWxOZXdOb2RlRWF0TmFtZSAoUm9iIFJpY2hhcmRzKSwKKyAgICBIVE1MIHNlcmlhbGl6YXRpb24gb2YgbmFtZSBhdHRyaWJ1dGUgb24gYSBlbGVtZW50cywgUHl0aG9uIGVycm9yIGhhbmRsZXJzCisgICAgbGVha3MgYW5kIGltcHJvdmVtZW50IChCcmVudCBIZW5kcmlja3MpLCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGluCisgICAgZW5jb2RpbmcgY29kZSwgUmVsYXgtTkcgdmFsaWRhdGlvbiBidWcsIHBvdGVudGlhbCBjcmFzaCBpZgorICAgIGdub3JhYmxlV2hpdGVzcGFjZSBpcyBOVUxMLCB4bWxTQVhQYXJzZURvYyBhbmQgeG1sUGFyc2VEb2Mgc2lnbmF0dXJlcywKKyAgICBzd2l0Y2hlZCBiYWNrIHRvIGFzc3VtaW5nIFVURi04IGluIGNhc2Ugbm8gZW5jb2RpbmcgaXMgZ2l2ZW4gYXQKKyAgICBzZXJpYWxpemF0aW9uIHRpbWUKKyAgIC0gaW1wcm92ZW1lbnRzOiBsb3Qgb2Ygd29yayBvbiBTY2hlbWFzIGJ5IEthc2ltaWVyIEJ1Y2hjaWsgb24gZmFjZXRzCisgICAgY2hlY2tpbmcgYW5kIGFsc28gbWl4ZWQgaGFuZGxpbmcuCisgICAtIAorCisKKzIuNi4xODogTWFyIDEzIDIwMDU6CisgICAtIGJ1aWxkIGZpeGVzOiB3YXJuaW5ncyAoUGV0ZXIgQnJlaXRlbmxvaG5lciksIHRlc3RhcGkuYyBnZW5lcmF0aW9uLAorICAgIEJha2VmaWxlIHN1cHBvcnQgKEZyYW5jZXNjbyBNb250b3JzaSksIFdpbmRvd3MgY29tcGlsYXRpb24gKEpvZWwgUmVlZCksCisgICAgc29tZSBnY2M0IGZpeGVzLCBIUC1VWCBwb3J0YWJpbGl0eSBmaXhlcyAoUmljayBKb25lcykuCisgICAtIGJ1ZyBmaXhlczogeG1sU2NoZW1hRWxlbWVudER1bXAgbmFtZXNwYWNlIChLYXNpbWllciBCdWNoY2lrKSwgcHVzaCBhbmQKKyAgICB4bWxyZWFkZXIgc3RvcHBpbmcgb24gbm9uLWZhdGFsIGVycm9ycywgdGhyZWFkIHN1cHBvcnQgZm9yIGRpY3Rpb25uYXJpZXMKKyAgICByZWZlcmVuY2UgY291bnRpbmcgKEdhcnkgQ29hZHkpLCBpbnRlcm5hbCBzdWJzZXQgYW5kIHB1c2ggcHJvYmxlbSwgVVJMCisgICAgc2F2ZWQgaW4geG1sQ29weURvYywgdmFyaW91cyBzY2hlbWFzIGJ1ZyBmaXhlcyAoS2FzaW1pZXIpLCBQeXRob24gcGF0aHMKKyAgICBmaXh1cCAoU3RlcGhhbmUgQmlkb3VsKSwgeG1sR2V0Tm9kZVBhdGggYW5kIG5hbWVzcGFjZXMsIHhtbFNldE5zUHJvcCBmaXgKKyAgICAoTWlrZSBIb21tZXkpLCB3YXJuaW5nIHNob3VsZCBub3QgY291bnQgYXMgZXJyb3IgKFdpbGxpYW0gQnJhY2spLAorICAgIHhtbENyZWF0ZVB1c2hQYXJzZXIgZW1wdHkgY2h1bmssIFhJbmNsdWRlIHBhcnNlciBmbGFncyAoV2lsbGlhbSksIGNsZWFudXAKKyAgICBGVFAgYW5kIEhUVFAgY29kZSB0byByZXVzZSB0aGUgdXJpIHBhcnNpbmcgYW5kIElQdjYgKFdpbGxpYW0pLAorICAgIHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TIGZpeCAoUm9iIFJpY2hhcmRzKSwgWE1MTElOVF9JTkRFTlQgYmVpbmcKKyAgICBlbXB0eSAoV2lsbGlhbSksIHhtbFdyaXRlciBidWdzIChSb2IgUmljaGFyZHMpLCBtdWx0aXRocmVhZGluZyBvbiBXaW5kb3dzCisgICAgKFJpY2ggU2FseiksIHhtbFNlYXJjaE5zQnlIcmVmIGZpeCAoS2FzaW1pZXIpLCBQeXRob24gYmluZGluZyBsZWFrIChCcmVudAorICAgIEhlbmRyaWNrcyksIGFsaWFzaW5nIGJ1ZyBleHBvc2VkIGJ5IGdjYzQgb24gczM5MCwgeG1sVGV4dFJlYWRlck5leHQgYnVnCisgICAgKFJvYiBSaWNoYXJkcyksIFNjaGVtYXMgZGVjaW1hbCB0eXBlIGZpeGVzIChXaWxsaWFtIEJyYWNrKSwKKyAgICB4bWxCeXRlQ29uc3VtZWQgc3RhdGljIGJ1ZmZlciAoQmVuIE1hdXJlcikuCisgICAtIGltcHJvdmVtZW50OiBzcGVlZHVwIHBhcnNpbmcgY29tbWVudHMgYW5kIERURHMsIGRpY3Rpb25uYXJ5IHN1cHBvcnQgZm9yCisgICAgaGFzaCB0YWJsZXMsIFNjaGVtYXMgSWRlbnRpdHkgY29uc3RyYWludHMgKEthc2ltaWVyKSwgc3RyZWFtaW5nIFhQYXRoCisgICAgc3Vic2V0LCB4bWxUZXh0UmVhZGVyUmVhZFN0cmluZyBhZGRlZCAoQmpvcm4gUmVlc2UpLCBTY2hlbWFzIGNhbm9uaWNhbAorICAgIHZhbHVlcyBoYW5kbGluZyAoS2FzaW1pZXIpLCBhZGQgeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCAoQXJvbgorICBTdGFuc3ZpayksCisgICAtIERvY3VtZW50YXRpb246IFdpa2kgc3VwcG9ydCAoSm9lbCBSZWVkKQorCisKKzIuNi4xNzogSmFuIDE2IDIwMDU6CisgICAtIGJ1aWxkIGZpeGVzOiBXaW5kb3dzLCB3YXJuaW5ncyByZW1vdmFsIChXaWxsaWFtIEJyYWNrKSwKKyAgICBtYWludGFpbmVyLWNsZWFuIGRlcGVuZGVuY3koV2lsbGlhbSksIGJ1aWxkIGluIGEgZGlmZmVyZW50IGRpcmVjdG9yeQorICAgIChXaWxsaWFtKSwgZml4aW5nIC0td2l0aC1taW5pbXVtIGNvbmZpZ3VyZSBidWlsZCAoV2lsbGlhbSksIEJlT1MgYnVpbGQKKyAgICAoTWFyY2luIEtvbmlja2kpLCBQeXRob24tMi40IGRldGVjdGlvbiAoV2lsbGlhbSksIGNvbXBpbGF0aW9uIG9uIEFJWCAoRGFuCisgICAgTWNOaWNob2wpCisgICAtIGJ1ZyBmaXhlczogeG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMgKFJvYiBSaWNoYXJkcyksIHhtbEN0eHRSZWFkRmlsZSgpCisgICAgdG8gdXNlIHRoZSBjYXRhbG9nKHMpLCBsb29wIG9uIG91dHB1dCAoV2lsbGlhbSBCcmFjayksIFhQYXRoIG1lbW9yeSBsZWFrLAorICAgIElEIGRlYWxsb2NhdGlvbiBwcm9ibGVtIChTdGV2ZSBTaGVwYXJkKSwgZGVidWdEdW1wTm9kZSBjcmFzaCAoV2lsbGlhbSksCisgICAgd2FybmluZyBub3QgdXNpbmcgZXJyb3IgY2FsbGJhY2sgKFdpbGxpYW0pLCB4bWxTdG9wUGFyc2VyIGJ1ZyAoV2lsbGlhbSksCisgICAgVVRGLTE2IHdpdGggQk9NIG9uIERURHMgKFdpbGxpYW0pLCBuYW1lc3BhY2UgYnVnIG9uIGVtcHR5IGVsZW1lbnRzIGluCisgICAgcHVzaCBtb2RlIChSb2IgUmljaGFyZHMpLCBsaW5lIGFuZCBjb2wgY29tcHV0YXRpb25zIGZpeHVwcyAoQWxla3NleQorICAgIFNhbmluKSwgeG1sVVJJRXNjYXBlIGZpeCAoV2lsbGlhbSksIHhtbFhQYXRoRXJyIG9uIGJhZCByYW5nZSAoV2lsbGlhbSksCisgICAgcGF0dGVybnMgd2l0aCB0b28gbWFueSBzdGVwcywgYnVnIGluIFJORyBjaG9pY2Ugb3B0aW1pemF0aW9uLCBsaW5lIG51bWJlcgorICAgIHNvbWV0aW1lcyBtaXNzaW5nLgorICAgLSBpbXByb3ZlbWVudHM6IFhTRCBTY2hlbWFzIChLYXNpbWllciBCdWNoY2lrKSwgcHl0aG9uIGdlbmVyYXRvcgorICAgIChXaWxsaWFtKSwgeG1sVVRGOFN0cnBvcyBzcGVlZHVwIChXaWxsaWFtKSwgdW5pY29kZSBQeXRob24gc3RyaW5ncworICAgIChXaWxsaWFtKSwgWFNEIGVycm9yIHJlcG9ydHMgKEthc2ltaWVyIEJ1Y2hjaWspLCBQeXRob24gX19zdHJfXyBjYWxsCisgICAgc2VyaWFsaXplKCkuCisgICAtIG5ldyBBUElzOiBhZGRlZCB4bWxEaWN0RXhpc3RzKCksIEdldExpbmVOdW1iZXIgYW5kIEdldENvbHVtbk51bWJlciBmb3IKKyAgICB0aGUgeG1sUmVhZGVyIChBbGVrc2V5IFNhbmluKSwgRHluYW1pYyBTaGFyZWQgTGlicmFyaWVzIEFQSXMgKG1vc3RseSBKb2VsCisgICAgUmVlZCksIGVycm9yIGV4dHJhY3Rpb24gQVBJIGZyb20gcmVnZXhwcywgbmV3IFhNTFNhdmUgb3B0aW9uIGZvciBmb3JtYXQKKyAgICAoUGhpbCBTaGFmZXIpCisgICAtIGRvY3VtZW50YXRpb246IHNpdGUgaW1wcm92ZW1lbnQgKEpvaG4gRmxlY2spLCBGQVEgZW50cmllcworICAoV2lsbGlhbSkuCisKKworMi42LjE2OiBOb3YgMTAgMjAwNDoKKyAgIC0gZ2VuZXJhbCBoYXJkZW5pbmcgYW5kIGJ1ZyBmaXhpbmcgY3Jvc3NpbmcgYWxsIHRoZSBBUEkgYmFzZWQgb24gbmV3CisgICAgYXV0b21hdGVkIHJlZ3Jlc3Npb24gdGVzdGluZworICAgLSBidWlsZCBmaXg6IElQdjYgYnVpbGQgYW5kIHRlc3Qgb24gQUlYIChEb2RqaSBTZWtldGVsaSkKKyAgIC0gYnVnIGZpeGVzOiBwcm9ibGVtIHdpdGggWE1MOjpMaWJ4bWwgcmVwb3J0ZWQgYnkgUGV0ciBQYWphcywgIGVuY29kaW5nCisgICAgY29udmVyc2lvbiBmdW5jdGlvbnMgcmV0dXJuIHZhbHVlcywgVVRGLTggYnVnIGFmZmVjdGluZyBYUGF0aCByZXBvcnRlZCBieQorICAgIE1hcmt1cyBCZXJ0aGVhdSwgY2F0YWxvZyBwcm9ibGVtIHdpdGggTlVMTCBlbnRyaWVzIChXaWxsaWFtIEJyYWNrKQorICAgLSBkb2N1bWVudGF0aW9uOiBmaXggdG8geG1sbGludCBtYW4gcGFnZSwgc29tZSBBUEkgZnVuY3Rpb24gZGVzY3JpdHBpb24KKyAgICB3ZXJlIHVwZGF0ZWQuCisgICAtIGltcHJvdmVtZW50czogRFREIHZhbGlkYXRpb24gQVBJcyBwcm92aWRlZCBhdCB0aGUgUHl0aG9uIGxldmVsIChCcmVudAorICAgIEhlbmRyaWNrcykKKworCisyLjYuMTU6IE9jdCAyNyAyMDA0OgorICAgLSBzZWN1cml0eSBmaXhlcyBvbiB0aGUgbmFub2Z0cCBhbmQgbmFub2h0dHAgbW9kdWxlcworICAgLSBidWlsZCBmaXhlczogeG1sbGludCBkZXRlY3Rpb24gYnVnIGluIGNvbmZpZ3VyZSwgYnVpbGRpbmcgb3V0c2lkZSB0aGUKKyAgICBzb3VyY2UgdHJlZSAoVGhvbWFzIEZpdHpzaW1tb25zKQorICAgLSBidWcgZml4ZXM6IEhUTUwgcGFyc2VyIG9uIGJyb2tlbiBBU0NJSSBjaGFycyBpbiBuYW1lcyAoV2lsbGlhbSksIFB5dGhvbgorICAgIHBhdGhzIChNYWxjb2xtIFRyZWRpbm5pY2spLCB4bWxIYXNOc1Byb3AgYW5kIGRlZmF1bHQgbmFtZXNwYWNlIChXaWxsaWFtKSwKKyAgICBzYXZpbmcgdG8gcHl0aG9uIGZpbGUgb2JqZWN0cyAoTWFsY29sbSBUcmVkaW5uaWNrKSwgRFREIGxvb2t1cCBmaXgKKyAgICAoTWFsY29sbSksIHNhdmUgYmFjayA8Z3JvdXA+IGluIGNhdGFsb2dzIChXaWxsaWFtKSwgdHJlZSBidWlsZAorICAgIGZpeGVzIChEViBhbmQgUm9iIFJpY2hhcmRzKSwgU2NoZW1hcyBtZW1vcnkgYnVnLCBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsZXIKKyAgICBvbiBQeXRob24gNjRiaXRzLCB0aHJlYWQgbG9jYWwgbWVtb3J5IGRlYWxsb2NhdGlvbiwgbWVtb3J5IGxlYWsgcmVwb3J0ZWQKKyAgICBieSBWb2xrZXIgUm90aCwgeG1sVmFsaWRhdGVEdGQgaW4gdGhlIHByZXNlbmNlIG9mIGFuIGludGVybmFsIHN1YnNldCwKKyAgICBlbnRpdGllcyBhbmQgX3ByaXZhdGUgcHJvYmxlbSAoV2lsbGlhbSksIHhtbEJ1aWxkUmVsYXRpdmVVUkkgZXJyb3IKKyAgICAoV2lsbGlhbSkuCisgICAtIGltcHJvdmVtZW50czogYmV0dGVyIFhJbmNsdWRlIGVycm9yIHJlcG9ydHMgKFdpbGxpYW0pLCB0cmVlIGRlYnVnZ2luZworICAgIG1vZHVsZSBhbmQgdGVzdHMsIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBhdCB0aGUgUmVhZGVyIEFQSSAoR3JhaGFtCisgICAgQmVubmV0dCksIGFkZCBzdXBwb3J0IGZvciBQSSBpbiB0aGUgSFRNTCBwYXJzZXIuCisKKworMi42LjE0OiBTZXAgMjkgMjAwNDoKKyAgIC0gYnVpbGQgZml4ZXM6IGNvbmZpZ3VyZSBwYXRocyBmb3IgeG1sbGludCBhbmQgeHNsdHByb2MsIGNvbXBpbGF0aW9uCisgICAgd2l0aG91dCBIVE1MIHBhcnNlciwgY29tcGlsYXRpb24gd2FybmluZyBjbGVhbnVwcyAoV2lsbGlhbSBCcmFjayAmCisgICAgTWFsY29sbSBUcmVkaW5uaWNrKSwgVk1TIG1ha2VmaWxlIHVwZGF0ZSAoQ3JhaWcgQmVycnkpLAorICAgLSBidWcgZml4ZXM6IHhtbEdldFVURjhDaGFyIChXaWxsaWFtIEJyYWNrKSwgUU5hbWUgcHJvcGVydGllcyAoS2FzaW1pZXIKKyAgICBCdWNoY2lrKSwgWEluY2x1ZGUgdGVzdGluZywgTm90YXRpb24gc2VyaWFsaXphdGlvbiwgVVRGOFRvSVNPODg1OXgKKyAgICB0cmFuc2NvZGluZyAoTWFyayBJdHpjb3ZpdHopLCBsb3RzIG9mIFhNTCBTY2hlbWFzIGNsZWFudXAgYW5kIGZpeGVzCisgICAgKEthc2ltaWVyKSwgQ2hhbmdlTG9nIGNsZWFudXAgKFN0ZXBhbiBLYXNhbCksIG1lbW9yeSBmaXhlcyAoTWFyayBWYWtvYyksCisgICAgaGFuZGxpbmcgb2YgZmFpbGVkIHJlYWxsb2MoKSwgb3V0IG9mIGJvdW5kIGFycmF5IGFkcmVzc2luZyBpbiBTY2hlbWFzCisgICAgZGF0ZSBoYW5kbGluZywgUHl0aG9uIHNwYWNlL3RhYnMgY2xlYW51cHMgKE1hbGNvbG0gVHJlZGlubmljayksIE5NVE9LRU5TCisgICAgRTIwIHZhbGlkYXRpb24gZml4IChNYWxjb2xtKSwKKyAgIC0gaW1wcm92ZW1lbnRzOiBhZGRlZCBXM0MgWE1MIFNjaGVtYXMgdGVzdHN1aXRlIChLYXNpbWllciBCdWNoY2lrKSwgYWRkCisgICAgeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50IChLYXNpbWllciksIFB5dGhvbiBleGNlcHRpb24gaGllcmVhcmNoeQorICAgIChNYWxjb2xtIFRyZWRpbm5pY2spLCBQeXRob24gbGlieG1sMiBkcml2ZXIgaW1wcm92ZW1lbnQgKE1hbGNvbG0KKyAgICBUcmVkaW5uaWNrKSwgU2NoZW1hcyBzdXBwb3J0IGZvciB4c2k6c2NoZW1hTG9jYXRpb24sCisgICAgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24sIHhzaTp0eXBlIChLYXNpbWllciBCdWNoY2lrKQorCisKKzIuNi4xMzogQXVnIDMxIDIwMDQ6CisgICAtIGJ1aWxkIGZpeGVzOiBXaW5kb3dzIGFuZCB6bGliIChJZ29yIFpsYXRrb3ZpYyksIC1PIGZsYWcgd2l0aCBnY2MsCisgICAgU29sYXJpcyBjb21waWxlciB3YXJuaW5nLCBmaXhpbmcgUlBNIEJ1aWxkUmVxdWlyZXMsCisgICAtIGZpeGVzOiBEVEQgbG9hZGluZyBvbiBXaW5kb3dzIChJZ29yKSwgU2NoZW1hcyBlcnJvciByZXBvcnRzIEFQSXMKKyAgICAoS2FzaW1pZXIgQnVjaGNpayksIFNjaGVtYXMgdmFsaWRhdGlvbiBjcmFzaCwgeG1sQ2hlY2tVVEY4IChXaWxsaWFtIEJyYWNrCisgICAgYW5kIEp1bGl1cyBNaXR0ZW56d2VpKSwgU2NoZW1hcyBmYWNldCBjaGVjayAoS2FzaW1pZXIpLCBkZWZhdWx0IG5hbWVzcGFjZQorICAgIHByb2JsZW0gKFdpbGxpYW0pLCBTY2hlbWFzIGhleGJpbmFyeSBlbXB0eSB2YWx1ZXMsIGVuY29kaW5nIGVycm9yIGNvdWxkCisgICAgZ2VucmF0ZSBhIHNlcmlhbGl6YXRpb24gbG9vcC4KKyAgIC0gSW1wcm92ZW1lbnRzOiBTY2hlbWFzIHZhbGlkaXR5IGltcHJvdmVtZW50cyAoS2FzaW1pZXIpLCBhZGRlZCAtLXBhdGgKKyAgICBhbmQgLS1sb2FkLXRyYWNlIG9wdGlvbnMgdG8geG1sbGludAorICAgLSBkb2N1bWVudGF0aW9uOiB0dXRvcmlhbCB1cGRhdGUgKEpvaG4gRmxlY2spCisKKworMi42LjEyOiBBdWcgMjIgMjAwNDoKKyAgIC0gYnVpbGQgZml4ZXM6IGZpeCAtLXdpdGgtbWluaW11bSwgZWxmZ2NjaGFjay5oIGZpeGVzIChQZXRlcgorICAgIEJyZWl0ZW5sb2huZXIpLCBwZXJsIHBhdGggbG9va3VwIChXaWxsaWFtKSwgZGlmZiBvbiBTb2xhcmlzIChBbGJlcnQKKyAgICBDaGluKSwgc29tZSA2NGJpdHMgY2xlYW51cHMuCisgICAtIFB5dGhvbjogYXZvaWQgYSB3YXJuaW5nIHdpdGggMi4zIChXaWxsaWFtIEJyYWNrKSwgdGFiIGFuZCBzcGFjZSBtaXhlcworICAgIChXaWxsaWFtKSwgd3JhcHBlciBnZW5lcmF0b3IgZml4ZXMgKFdpbGxpYW0pLCBDeWd3aW4gc3VwcG9ydCAoR2Vycml0IFAuCisgICAgSGFhc2UpLCBub2RlIHdyYXBwZXIgZml4IChNYXJjLUFudG9pbmUgUGFyZW50KSwgWE1MIFNjaGVtYXMgc3VwcG9ydAorICAgIChUb3JrZWwgTHluZykKKyAgIC0gU2NoZW1hczogYSBsb3Qgb2YgYnVnIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMgZnJvbSBLYXNpbWllciBCdWNoY2lrCisgICAtIGZpeGVzOiBSVlQgZml4ZXMgKFdpbGxpYW0pLCBYUGF0aCBjb250ZXh0IHJlc2V0cyBidWcgKFdpbGxpYW0pLCBtZW1vcnkKKyAgICBkZWJ1ZyAoU3RldmUgSGF5KSwgY2F0YWxvZyB3aGl0ZSBzcGFjZSBoYW5kbGluZyAoUGV0ZXIgQnJlaXRlbmxvaG5lciksCisgICAgeG1sUmVhZGVyIHN0YXRlIGFmdGVyIGF0dHJpYnV0ZSByZWFkaW5nIChXaWxsaWFtKSwgc3RydWN0dXJlZCBlcnJvcgorICAgIGhhbmRsZXIgKFdpbGxpYW0pLCBYSW5jbHVkZSBnZW5lcmF0ZWQgeG1sOmJhc2UgZml4dXAgKFdpbGxpYW0pLCBXaW5kb3dzCisgICAgbWVtb3J5IHJlYWxsb2NhdGlvbiBwcm9ibGVtIChTdGV2ZSBIYXkpLCBPdXQgb2YgTWVtb3J5IGNvbmRpdGlvbnMKKyAgICBoYW5kbGluZyAoV2lsbGlhbSBhbmQgT2xpdmllciBBbmRyaWV1KSwgaHRtbE5ld0RvYygpIGNoYXJzZXQgYnVnLAorICAgIGh0bWxSZWFkTWVtb3J5IGluaXQgKFdpbGxpYW0pLCBhIHBvc3RlcmlvcmkgdmFsaWRhdGlvbiBEVEQgYmFzZQorICAgIChXaWxsaWFtKSwgbm90YXRpb25zIHNlcmlhbGl6YXRpb24gbWlzc2luZywgeG1sR2V0Tm9kZVBhdGggKERvZGppKSwKKyAgICB4bWxDaGVja1VURjggKERpZWdvIFRhcnRhcmEpLCBtaXNzaW5nIGxpbmUgbnVtYmVycyBvbiBlbnRpdHkKKyAgKFdpbGxpYW0pCisgICAtIGltcHJvdmVtZW50czogRG9jQm9vayBjYXRhbG9nIGJ1aWxkIHNjcmlwIChXaWxsaWFtKSwgeG1sY2F0YWxvZyB0b29sCisgICAgKEFsYmVydCBDaGluKSwgeG1sbGludCAtLWMxNG4gb3B0aW9uLCBub19wcm94eSBlbnZpcm9ubWVudCAoTWlrZSBIb21tZXkpLAorICAgIHhtbFBhcnNlSW5Ob2RlQ29udGV4dCgpIGFkZGl0aW9uLCBleHRlbmQgeG1sbGludCAtLXNoZWxsLCBhbGxvdyBYSW5jbHVkZQorICAgIHRvIG5vdCBnZW5lcmF0ZSBzdGFydC9lbmQgbm9kZXMsIGV4dGVuZCB4bWxsaW50IC0tdmVyc2lvbiB0byBpbmNsdWRlIENWUworICAgIHRhZyAoV2lsbGlhbSkKKyAgIC0gZG9jdW1lbnRhdGlvbjogd2ViIHBhZ2VzIGZpeGVzLCB2YWxpZGl0eSBBUEkgZG9jcyBmaXhlcyAoV2lsbGlhbSkKKyAgICBzY2hlbWFzIEFQSSBmaXggKEVyaWMgSGFzemxha2lld2ljeiksIHhtbGxpbnQgbWFuIHBhZ2UgKEpvaG4gRmxlY2spCisKKworMi42LjExOiBKdWx5IDUgMjAwNDoKKyAgIC0gU2NoZW1hczogYSBsb3Qgb2YgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIGJ5IEthc2ltaWVyIEJ1Y2hjaWsgZm9yCisgICAgYXR0cmlidXRlcywgbmFtZXNwYWNlcyBhbmQgc2ltcGxlIHR5cGVzLgorICAgLSBidWlsZCBmaXhlczogLS13aXRoLW1pbmltdW0gKFdpbGxpYW0gQnJhY2spLCAgc29tZSBnY2MgY2xlYW51cAorICAgIChXaWxsaWFtKSwgLS13aXRoLXRocmVhZC1hbGxvYyAoV2lsbGlhbSkKKyAgIC0gcG9ydGFiaWxpdHk6IFdpbmRvd3MgYmluYXJ5IHBhY2thZ2UgY2hhbmdlIChJZ29yIFpsYXRrb3ZpYyksIENhdGFsb2cKKyAgICBwYXRoIG9uIFdpbmRvd3MKKyAgIC0gZG9jdW1lbnRhdGlvbjogdXBkYXRlIHRvIHRoZSB0dXRvcmlhbCAoSm9obiBGbGVjayksIHhtbGxpbnQgcmV0dXJuIGNvZGUKKyAgICAoSm9obiBGbGVjayksIG1hbiBwYWdlcyAoVmlsbGUgU2t5dHRhKSwKKyAgIC0gYnVnIGZpeGVzOiBDMTROIGJ1ZyBzZXJpYWxpemluZyBuYW1lc3BhY2VzIChBbGVrc2V5IFNhbmluKSwgdGVzdFNBWAorICAgIHByb3Blcmx5IGluaXRpYWxpemUgdGhlIGxpYnJhcnkgKFdpbGxpYW0pLCBlbXB0eSBub2RlIHNldCBpbiBYUGF0aAorICAgIChXaWxsaWFtKSwgeG1sU2NoZW1hcyBlcnJvcnMgKFdpbGxpYW0pLCBpbnZhbGlkIGNoYXJyZWYgcHJvYmxlbSBwb2ludGVkCisgICAgYnkgTW9ydXMgV2FsdGVyLCBYSW5jbHVkZSB4bWw6YmFzZSBnZW5lcmF0aW9uIChXaWxsaWFtKSwgUmVsYXgtTkcgYnVnCisgICAgd2l0aCBkaXYgcHJvY2Vzc2luZyAoV2lsbGlhbSksIFhQb2ludGVyIGFuZCB4bWw6YmFzZSBwcm9ibGVtKFdpbGxpYW0pLAorICAgIFJlYWRlciBhbmQgZW50aXRpZXMsIHhtbGxpbnQgcmV0dXJuIGNvZGUgZm9yIHNjaGVtYXMgKFdpbGxpYW0pLCByZWFkZXIKKyAgICBzdHJlYW1pbmcgcHJvYmxlbSAoU3RldmUgQmFsbCksIERURCBzZXJpYWxpemF0aW9uIHByb2JsZW0gKFdpbGxpYW0pLAorICAgIGxpYnhtbC5tNCBmaXhlcyAoTWlrZSBIb21tZXkpLCBkbyBub3QgcHJvdmlkZSBkZXN0cnVjdG9ycyBhcyBtZXRob2RzIG9uCisgICAgUHl0aG9uIGNsYXNzZXMsIHhtbFJlYWRlciBidWZmZXIgYnVnLCBQeXRob24gYmluZGluZ3MgbWVtb3J5IGludGVyZmFjZXMKKyAgICBpbXByb3ZlbWVudCAod2l0aCBTdMODwqlwaGFuZSBCaWRvdWwpLCBGaXhlZCB0aGUgcHVzaCBwYXJzZXIgdG8gYmUgYmFjayB0bworICAgIHN5bmNocm9ub3VzIGJlaGF2aW91ci4KKyAgIC0gaW1wcm92ZW1lbnQ6IGN1c3RvbSBwZXItdGhyZWFkIEkvTyBlbmhhbmNlbWVudCAoUm9iIFJpY2hhcmRzKSwgcmVnaXN0ZXIKKyAgICBuYW1lc3BhY2UgaW4gZGVidWcgc2hlbGwgKFN0ZWZhbm8gRGViZW5lZGV0dGkpLCBQeXRob24gYmFzZWQgcmVncmVzc2lvbgorICAgIHRlc3QgZm9yIG5vbi1Vbml4IHVzZXJzIChXaWxsaWFtKSwgZHluYW1pY2FsbHkgaW5jcmVhc2UgdGhlIG51bWJlciBvZgorICAgIFhQYXRoIGV4dGVuc2lvbiBmdW5jdGlvbnMgaW4gUHl0aG9uIGFuZCBmaXggYSBtZW1vcnkgbGVhayAoTWFyYy1BbnRvaW5lCisgICAgUGFyZW50IGFuZCBXaWxsaWFtKQorICAgLSBwZXJmb3JtYW5jZTogaGFjayBkb25lIHdpdGggQXJqYW4gdmFuIGRlIFZlbiB0byByZWR1Y2UgRUxGIGZvb3RwcmludAorICAgIGFuZCBnZW5lcmF0ZWQgY29kZSBvbiBMaW51eCwgcGx1cyB1c2UgZ2NjIHJ1bnRpbWUgcHJvZmlsaW5nIHRvIG9wdGltaXplCisgICAgdGhlIGNvZGUgZ2VuZXJhdGVkIGluIHRoZSBSUE0gcGFja2FnZXMuCisKKworMi42LjEwOiBNYXkgMTcgMjAwNDoKKyAgIC0gV2ViIHBhZ2UgZ2VuZXJhdGVkIGZvciBDaGFuZ2VMb2cKKyAgIC0gYnVpbGQgZml4ZXM6IC0td2l0aG91dC1odG1sIHByb2JsZW1zLCBtYWtlIGNoZWNrIHdpdGhvdXQgbWFrZSBhbGwKKyAgIC0gcG9ydGFiaWxpdHk6IHByb2JsZW0gd2l0aCB4cGF0aC5jIG9uIFdpbmRvd3MgKE1TQyBhbmQgQm9ybGFuZCksIG1lbWNtcAorICAgIHZzLiBzdHJuY21wIG9uIFNvbGFyaXMsIFhQYXRoIHRlc3RzIG9uIFdpbmRvd3MgKE1hcmsgVmFrb2MpLCBDKysgZG8gbm90CisgICAgdXNlICJsaXN0IiBhcyBwYXJhbWV0ZXIgbmFtZSwgbWFrZSB0ZXN0cyB3b3JrIHdpdGggUHl0aG9uIDEuNSAoRWQKKyAgRGF2aXMpLAorICAgLSBpbXByb3ZlbWVudHM6IG1hZGUgeG1sVGV4dFJlYWRlck1vZGUgcHVibGljLCBzbWFsbCBidWZmZXJzIHJlc2l6aW5nCisgICAgKE1vcnRlbiBXZWxpbmRlciksIGFkZCAtLW1heG1lbSBvcHRpb24gdG8geG1sbGludCwgYWRkCisgICAgeG1sUG9wSW5wdXRDYWxsYmFjaygpIGZvciBNYXR0IFNlcmdlYW50LCByZWZhY3RvcmluZyBvZiBzZXJpYWxpemF0aW9uCisgICAgZXNjYXBpbmcsIGFkZGVkIGVzY2FwaW5nIGN1c3RvbWl6YXRpb24KKyAgIC0gYnVnZml4ZXM6IHhzZDpleHRlbnNpb24gKFRhaWhlaSBHb2kpLCBhc3NvcnRlZCByZWdleHAgYnVncyAoV2lsbGlhbQorICAgIEJyYWNrKSwgeG1sUmVhZGVyIGVuZCBvZiBzdHJlYW0gcHJvYmxlbSwgbm9kZSBkZXJlZ2lzdHJhdGlvbiB3aXRoIHJlYWRlciwKKyAgICBVUkkgZXNjYXBpbmcgYW5kIGZpbGVtYW5lcywgIFhIVE1MMSBmb3JtYXR0aW5nIChOaWNrIFdlbGxuaG9mZXIpLCByZWdleHAKKyAgICB0cmFuc2l0aW9uIHJlZHVjdGlvbiAoV2lsbGlhbSksIHZhcmlvdXMgWFNEIFNjaGVtYXMgZml4ZXMgKEthc2ltaWVyCisgICAgQnVjaGNpayksIFhJbmNsdWRlIGZhbGxiYWNrIHByb2JsZW0gKFdpbGxpYW0pLCB3ZWlyZCBwcm9ibGVtcyB3aXRoIERURAorICAgIChXaWxsaWFtKSwgc3RydWN0dXJlZCBlcnJvciBoYW5kbGVyIGNhbGxiYWNrIGNvbnRleHQgKFdpbGxpYW0pLCByZXZlcnNlCisgICAgeG1sRW5jb2RlU3BlY2lhbENoYXJzKCkgYmVoYXZpb3VyIGJhY2sgdG8gZXNjYXBpbmcgJyInCisKKworMi42Ljk6IEFwciAxOCAyMDA0OgorICAgLSBpbXBsZW1lbnQgeG1sOmlkIFdvcmtpbmcgRHJhZnQsIHJlbGF4ZWQgWFBhdGggaWQoKSBjaGVja2luZworICAgLSBidWdmaXhlczogeG1sQ3R4dFJlc2V0IChCcmVudCBIZW5kcmlja3MpLCBsaW5lIG51bWJlciBhbmQgQ0RBVEEgKERhdmUKKyAgICBCZWNrZXR0KSwgUmVsYXgtTkcgY29tcGlsYXRpb24gKFdpbGxpYW0gQnJhY2spLCBSZWdleHAgcGF0Y2hlcyAod2l0aAorICAgIFdpbGxpYW0pLCB4bWxVcmlFc2NhcGUgKE1hcmsgVmFrb2MpLCBhIFJlbGF4LU5HIG5vdEFsbG93ZWQgcHJvYmxlbSAod2l0aAorICAgIFdpbGxpYW0pLCBSZWxheC1ORyBuYW1lIGNsYXNzZXMgY29tcGFyZXMgKFdpbGxpYW0pLCBYSW5jbHVkZSBkdXBsaWNhdGUKKyAgICBmYWxsYmFjayAoV2lsbGlhbSksIGV4dGVybmFsIERURCBlbmNvZGluZyBkZXRlY3Rpb24gKFdpbGxpYW0pLCBhIERURAorICAgIHZhbGlkYXRpb24gYnVnIChXaWxsaWFtKSwgeG1sUmVhZGVyIENsb3NlKCkgZml4LCByZWN1c2l2ZSBleHRlbnRpb24KKyAgICBzY2hlbWFzCisgICAtIGltcHJvdmVtZW50czogdXNlIHhtbFJlYWQqIEFQSXMgaW4gdGVzdCB0b29scyAoTWFyayBWYWtvYyksIGluZGVudGluZworICAgIHNhdmUgb3B0aW1pemF0aW9uLCBiZXR0ZXIgaGFuZGxlIElJUyBicm9rZW4gSFRUUCByZWRpcmVjdCAgYmVoYXZpb3VyIChJYW4KKyAgICBIdW1tZWwpLCBIVE1MIHBhcnNlciBmcmFtZXNldCAoSmFtZXMgQnVyc2EpLCBsaWJ4bWwyLXB5dGhvbiBSUE0KKyAgICBkZXBlbmRhbmN5LCBYTUwgU2NoZW1hcyB1bmlvbiBzdXBwb3J0IChLYXNpbWllciBCdWNoY2lrKSwgd2FybmluZyByZW1vdmFsCisgICAgY2xhbnVwIChXaWxsaWFtKSwga2VlcCBDaGFuZ2VMb2cgY29tcHJlc3NlZCB3aGVuIGluc3RhbGxpbmcgZnJvbSBSUE1zCisgICAtIGRvY3VtZW50YXRpb246IGV4YW1wbGVzIGFuZCB4bWxEb2NEdW1wTWVtb3J5IGRvY3MgKEpvaG4gRmxlY2spLCBuZXcKKyAgICBleGFtcGxlIChsb2FkLCB4cGF0aCwgbW9kaWZ5LCBzYXZlKSwgeG1sQ2F0YWxvZ0R1bXAoKSBjb21tZW50cywKKyAgIC0gV2luZG93czogQm9ybGFuZCBDKysgYnVpbGRlciAoRXJpYyBadXJjaGVyKSwgd29yayBhcm91bmQgTWljcm9zb2Z0CisgICAgY29tcGlsZXIgTmFOIGhhbmRsaW5nIGJ1ZyAoTWFyayBWYWtvYykKKworCisyLjYuODogTWFyIDIzIDIwMDQ6CisgICAtIEZpcnN0IHN0ZXAgb2YgdGhlIGNsZWFudXAgb2YgdGhlIHNlcmlhbGl6YXRpb24gY29kZSBhbmQgQVBJcworICAgLSBYTUwgU2NoZW1hczogbWl4ZWQgY29udGVudCAoQWRhbSBEaWNrbWVpc3MpLCBRTmFtZSBoYW5kbGluZyBmaXhlcyAoQWRhbQorICAgIERpY2ttZWlzcyksIGFueVVSSSBmb3IgIiIgKEpvaG4gQmVsbW9udGUpCisgICAtIFB5dGhvbjogQ2Fub25pY2FsaXphdGlvbiBDMTROIHN1cHBvcnQgYWRkZWQgKEFudGhvbnkgQ2FycmljbykKKyAgIC0geG1sRG9jQ29weU5vZGUoKSBleHRlbnNpb24gKFdpbGxpYW0pCisgICAtIFJlbGF4LU5HOiBmaXggd2hlbiBwcm9jZXNzaW5nIFhJbmNsdWRlIHJlc3VsdHMgKFdpbGxpYW0pLCBleHRlcm5hbAorICAgIHJlZmVyZW5jZSBpbiBpbnRlcmxlYXZlIChXaWxsaWFtKSwgbWlzc2luZyBlcnJvciBvbiA8Y2hvaWNlPgorICAgIGZhaWx1cmUgKFdpbGxpYW0pLCBtZW1vcnkgbGVhayBpbiBzY2hlbWFzIGRhdGF0eXBlIGZhY2V0cy4KKyAgIC0geG1sV3JpdGVyOiBwYXRjaCBmb3IgYmV0dGVyIERURCBzdXBwb3J0IChBbGZyZWQgTWlja2F1dHNjaCkKKyAgIC0gYnVnIGZpeGVzOiB4bWxYUGF0aExhbmdGdW5jdGlvbiBtZW1vcnkgbGVhayAoTWlrZSBIb21tZXkgYW5kIFdpbGxpYW0KKyAgICBCcmFjayksIG5vIElEIGVycm9ycyBpZiB1c2luZyBIVE1MX1BBUlNFX05PRVJST1IsIHhtbGNhdGFsb2cgZmFsbGJhY2tzIHRvCisgICAgVVJJIG9uIFNZU1RFTSBsb29rdXAgZmFpbHVyZSwgWEluY2x1ZGUgcGFyc2UgZmxhZ3MgaW5oZXJpdGFuY2UgKFdpbGxpYW0pLAorICAgIFhJbmNsdWRlIGFuZCBYUG9pbnRlciBmaXhlcyBmb3IgZW50aXRpZXMgKFdpbGxpYW0pLCBYTUwgcGFyc2VyIGJ1ZworICAgIHJlcG9ydGVkIGJ5IEhvbGdlciBSYXVjaCwgbmFub2h0dHAgZmQgbGVhayAoV2lsbGlhbSksICByZWdleHBzIGNoYXIKKyAgICBncm91cHMgJy0nIGhhbmRsaW5nIChXaWxsaWFtKSwgZGljdGlvbm5hcnkgcmVmZXJlbmNlIGNvdW50aW5nIHByb2JsZW1zLAorICAgIGRvIG5vdCBjbG9zZSBzdGRlcnIuCisgICAtIHBlcmZvcm1hbmNlIHBhdGNoZXMgZnJvbSBQZXRyIFBhamFzCisgICAtIERvY3VtZW50YXRpb24gZml4ZXM6IFhNTF9DQVRBTE9HX0ZJTEVTIGluIG1hbiBwYWdlcyAoTWlrZSBIb21tZXkpCisgICAtIGNvbXBpbGF0aW9uIGFuZCBwb3J0YWJpbGl0eSBmaXhlczogLS13aXRob3V0LXZhbGlkLCBjYXRhbG9nIGNsZWFudXBzCisgICAgKFBldGVyIEJyZWl0ZW5sb2huZXIpLCBNaW5nVyBwYXRjaCAoUm9sYW5kIFNjaHdpbmdlbCksIGNyb3NzLWNvbXBpbGF0aW9uCisgICAgdG8gV2luZG93cyAoQ2hyaXN0b3BoZSBkZSBWaWVubmUpLCAgLS13aXRoLWh0bWwtZGlyIGZpeHVwIChKdWxpbyBNZXJpbm8KKyAgICBWaWRhbCksIFdpbmRvd3MgYnVpbGQgKEVyaWMgWnVyY2hlcikKKworCisyLjYuNzogRmViIDIzIDIwMDQ6CisgICAtIGRvY3VtZW50YXRpb246IHR1dG9yaWFsIHVwZGF0ZXMgKEpvaG4gRmxlY2spLCBiZW5jaG1hcmsgcmVzdWx0cworICAgLSB4bWxXcml0ZXI6IHVwZGF0ZXMgYW5kIGZpeGVzIChBbGZyZWQgTWlja2F1dHNjaCwgTHVjYXMgQnJhc2lsaW5vKQorICAgLSBYUGF0aCBvcHRpbWl6YXRpb24gKFBldHIgUGFqYXMpCisgICAtIERURCBJRCBoYW5kbGluZyBvcHRpbWl6YXRpb24KKyAgIC0gYnVnZml4ZXM6IHhwYXRoIG51bWJlciB3aXRoICA+IDE5IGZyYWN0aW9uYWwgKFdpbGxpYW0gQnJhY2spLCBwdXNoCisgICAgbW9kZSB3aXRoIHVuZXNjYXBlZCAnPicgY2hhcmFjdGVycywgZml4IHhtbGxpbnQgLS1zdHJlYW0gLS10aW1pbmcsIGZpeAorICAgIHhtbGxpbnQgLS1tZW1vcnkgLS1zdHJlYW0gbWVtb3J5IHVzYWdlLCB4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudAorICAgIGhhbmRsaW5nIE5VTEwsIHRyeWluZyB0byBmaXggUmVsYXgtTkcvUGVybCBpbnRlcmZhY2UuCisgICAtIHB5dGhvbjogMi4zIGNvbXBhdGliaWxpdHksIHdoaXRlc3BhY2UgZml4ZXMgKE1hbGNvbG0gVHJlZGlubmljaykKKyAgIC0gQWRkZWQgcmVsYXhuZyBvcHRpb24gdG8geG1sbGludCAtLXNoZWxsCisKKworMi42LjY6IEZlYiAxMiAyMDA0OgorICAgLSBuYW5vaHR0cCBhbmQgbmFub2Z0cDogYnVmZmVyIG92ZXJmbG93IGVycm9yIG9uIFVSSSBwYXJzaW5nIChJZ29yIGFuZAorICAgIFdpbGxpYW0pIHJlcG9ydGVkIGJ5IFl1dWljaGkgVGVyYW5pc2hpCisgICAtIGJ1Z2ZpeGVzOiBtYWtlIHRlc3QgYW5kIHBhdGggaXNzdWVzLCB4bWxXcml0ZXIgYXR0cmlidXRlIHNlcmlhbGl6YXRpb24KKyAgICAoV2lsbGlhbSBCcmFjayksIHhtbFdyaXRlciBpbmRlbnRhdGlvbiAoV2lsbGlhbSksIHNjaGVtYXMgdmFsaWRhdGlvbgorICAgIChFcmljIEhhc3psYWtpZXdpY3opLCBYSW5jbHVkZSBkaWN0aW9ubmFyaWVzIGlzc3VlcyAoV2lsbGlhbSBhbmQgT2xlZworICAgIFBhcmFzY2hlbmtvKSwgWEluY2x1ZGUgZW1wdHkgZmFsbGJhY2sgKFdpbGxpYW0pLCBIVE1MIHdhcm5pbmdzIChXaWxsaWFtKSwKKyAgICBYUG9pbnRlciBpbiBYSW5jbHVkZSAoV2lsbGlhbSksIFB5dGhvbiBuYW1lc3BhY2Ugc2VyaWFsaXphdGlvbiwKKyAgICBpc29sYXQxVG9VVEY4IGJvdW5kIGVycm9yIChBbGZyZWQgTWlja2F1dHNjaCksIG91dHB1dCBvZiBwYXJhbWV0ZXIKKyAgICBlbnRpdGllcyBpbiBpbnRlcm5hbCBzdWJzZXQgKFdpbGxpYW0pLCBpbnRlcm5hbCBzdWJzZXQgYnVnIGluIHB1c2ggbW9kZSwKKyAgICA8eHM6YWxsPiBmaXggKEFsZXhleSBTYXJ5dGNoZXYpCisgICAtIEJ1aWxkOiBmaXggZm9yIGF1dG9tYWtlLTEuOCAoQWxleGFuZGVyIFdpbnN0b24pLCB3YXJuaW5ncyByZW1vdmFsCisgICAgKFBoaWxpcCBMdWRsYW0pLCBTT0NLTEVOX1QgZGV0ZWN0aW9uIGZpeGVzIChEYW5pZWwgUmljaGFyZCksIGZpeAorICAgIC0td2l0aC1taW5pbXVtIGNvbmZpZ3VyYXRpb24uCisgICAtIFhJbmNsdWRlOiBhbGxvdyB0aGUgMjAwMSBuYW1lc3BhY2Ugd2l0aG91dCB3YXJuaW5nLgorICAgLSBEb2N1bWVudGF0aW9uOiBtaXNzaW5nIGV4YW1wbGUvaW5kZXguaHRtbCAoSm9obiBGbGVjayksIHZlcnNpb24KKyAgICBkZXBlbmRhbmNpZXMgKEpvaG4gRmxlY2spCisgICAtIHJlYWRlciBBUEk6IHN0cnVjdHVyZWQgZXJyb3IgcmVwb3J0aW5nIChTdGV2ZSBCYWxsKQorICAgLSBXaW5kb3dzIGNvbXBpbGF0aW9uOiBtaW5ndywgbXN5cyAoTWlraGFpbCBHcnVzaGluc2tpeSksIGZ1bmN0aW9uCisgICAgcHJvdG90eXBlIChDYW1lcm9uIEpvaG5zb24pLCBNU1ZDNiBjb21waWxlciB3YXJuaW5ncywgX1dJTlNPQ0tBUElfCisgIHBhdGNoCisgICAtIFBhcnNlcnM6IGFkZGVkIHhtbEJ5dGVDb25zdW1lZChjdHh0KSBBUEkgdG8gZ2V0IHRoZSBieXRlIG9mZmVzdCBpbgorICAgIGlucHV0LgorCisKKzIuNi41OiBKYW4gMjUgMjAwNDoKKyAgIC0gQnVnZml4ZXM6IGRpY3Rpb25uYXJpZXMgZm9yIHNjaGVtYXMgKFdpbGxpYW0gQnJhY2spLCByZWdleHAgc2VnZmF1bHQKKyAgICAoV2lsbGlhbSksIHhzOmFsbCBwcm9ibGVtIChXaWxsaWFtKSwgYSBudW1iZXIgb2YgWFBvaW50ZXIgYnVnZml4ZXMKKyAgICAoV2lsbGlhbSksIHhtbGxpbnQgZXJyb3IgZ28gdG8gc3RkZXJyLCBEVEQgdmFsaWRhdGlvbiBwcm9ibGVtIHdpdGgKKyAgICBuYW1lc3BhY2UsIG1lbW9yeSBsZWFrIChXaWxsaWFtKSwgU0FYMSBjbGVhbnVwIGFuZCBtaW5pbWFsIG9wdGlvbnMgZml4ZXMKKyAgICAoTWFyayBWYWRvYyksIHBhcnNlciBjb250ZXh0IHJlc2V0IG9uIGVycm9yIChTaGF1biBNY0NhbmNlKSwgWFBhdGggdW5pb24KKyAgICBldmFsdWF0aW9uIHByb2JsZW0gKFdpbGxpYW0pICwgeG1sUmVhbGxvY0xvYyB3aXRoIE5VTEwgKEFsZWtzZXkgU2FuaW4pLAorICAgIFhNTCBTY2hlbWFzIGRvdWJsZSBmcmVlIChTdGV2ZSBCYWxsKSwgWEluY2x1ZGUgd2l0aCBubyBocmVmLCBhcmd1bWVudAorICAgIGNhbGxiYWNrcyBvcmRlciBmb3IgWFBhdGggY2FsbGJhY2tzIChGcmVkZXJpYyBQZXRlcnMpCisgICAtIERvY3VtZW50YXRpb246IHB5dGhvbiBzY3JpcHRzIChXaWxsaWFtIEJyYWNrKSwgeHNsdCBzdHlsZXNoZWV0cyAoSm9obgorICAgIEZsZWNrKSwgZG9jIChTdmVuIFppbW1lcm1hbiksIEkvTyBleGFtcGxlLgorICAgLSBQeXRob24gYmluZGluZ3M6IGZpeGVzIChXaWxsaWFtKSwgZW51bSBzdXBwb3J0IChTdMODwqlwaGFuZSBCaWRvdWwpLAorICAgIHN0cnVjdHVyZWQgZXJyb3IgcmVwb3J0aW5nIChTdMODwqlwaGFuZSBCaWRvdWwpCisgICAtIFhJbmNsdWRlOiB2YXJpb3VzIGZpeGVzIGZvciBjb25mb3JtYW5jZSwgcHJvYmxlbSByZWxhdGVkIHRvIGRpY3Rpb25uYXJ5CisgICAgcmVmZXJlbmNlcyAoV2lsbGlhbSAmIG1lKSwgcmVjdXJzaW9uIChXaWxsaWFtKQorICAgLSB4bWxXcml0ZXI6IGluZGVudGF0aW9uIChMdWNhcyBCcmFzaWxpbm8pLCBtZW1vcnkgbGVha3MgKEFsZnJlZAorICAgIE1pY2thdXRzY2gpLAorICAgLSB4bWxTY2hlbWFzOiBub3JtYWxpemVkU3RyaW5nIGRhdGF0eXBlIChKb2huIEJlbG1vbnRlKQorICAgLSBjb2RlIGNsZWFudXAgZm9yIHN0cmluZ3MgZnVuY3Rpb25zIChXaWxsaWFtKQorICAgLSBXaW5kb3dzOiBjb21waWxlciBwYXRjaGVzIChNYXJrIFZha29jKQorICAgLSBQYXJzZXIgb3B0aW1pemF0aW9ucywgYSBmZXcgbmV3IFhQYXRoIGFuZCBkaWN0aW9ubmFyeSBBUElzIGZvciBmdXR1cmUKKyAgICBYU0xUIG9wdGltaXphdGlvbnMuCisKKworMi42LjQ6IERlYyAyNCAyMDAzOgorICAgLSBXaW5kb3dzIGJ1aWxkIGZpeGVzIChJZ29yIFpsYXRrb3ZpYykKKyAgIC0gU29tZSBzZXJpb3VzIFhJbmNsdWRlIHByb2JsZW1zIHJlcG9ydGVkIGJ5IE9sZWcgUGFyYXNjaGVua28gYW5kCisgICAtIFVuaXggYW5kIE1ha2VmaWxlIHBhY2thZ2luZyBmaXhlcyAobWUsIFdpbGxpYW0gQnJhY2ssCisgICAtIERvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzIChKb2huIEZsZWNrLCBXaWxsaWFtIEJyYWNrKSwgZXhhbXBsZSBmaXgKKyAgICAoTHVjYXMgQnJhc2lsaW5vKQorICAgLSBidWdmaXhlczogeG1sVGV4dFJlYWRlckV4cGFuZCgpIHdpdGggeG1sUmVhZGVyV2Fsa2VyLCBYUGF0aCBoYW5kbGluZyBvZgorICAgIE5VTEwgc3RyaW5ncyAoV2lsbGlhbSBCcmFjaykgLCBBUEkgYnVpbGRpbmcgcmVhZGVyIG9yIHBhcnNlciBmcm9tCisgICAgZmlsZWRlc2NyaXB0b3Igc2hvdWxkIG5vdCBjbG9zZSBpdCwgY2hhbmdlZCBYUGF0aCBzb3J0aW5nIHRvIGJlIHN0YWJsZQorICAgIGFnYWluIChXaWxsaWFtIEJyYWNrKSwgeG1sR2V0Tm9kZVBhdGgoKSBnZW5lcmF0aW5nICcobnVsbCknIChXaWxsaWFtCisgICAgQnJhY2spLCBEVEQgdmFsaWRhdGlvbiBhbmQgbmFtZXNwYWNlIGJ1ZyAoV2lsbGlhbSBCcmFjayksIFhNTCBTY2hlbWFzCisgICAgZG91YmxlIGluY2x1c2lvbiBiZWhhdmlvdXIKKworCisyLjYuMzogRGVjIDEwIDIwMDM6CisgICAtIGRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgY2xlYW51cCAoRFYsIFdpbGxpYW0gQnJhY2ssIEpvaG4gRmxlY2spCisgICAtIGFkZGVkIGEgcmVwb3NpdG9yeSBvZiBleGFtcGxlcywgZXhhbXBsZXMgZnJvbSBBbGVrc2V5IFNhbmluLCBEb2RqaQorICAgIFNla2V0ZWxpLCBBbGZyZWQgTWlja2F1dHNjaAorICAgLSBXaW5kb3dzIHVwZGF0ZXM6IE1hcmsgVmFrb2MsIElnb3IgWmxhdGtvdmljLCBFcmljIFp1cmNoZXIsIE1pbmd3CisgICAgKEtlbm5ldGggSGFsZXkpCisgICAtIFVuaWNvZGUgcmFuZ2UgY2hlY2tpbmcgKFdpbGxpYW0gQnJhY2spCisgICAtIGNvZGUgY2xlYW51cCAoV2lsbGlhbSBCcmFjaykKKyAgIC0gUHl0aG9uIGJpbmRpbmdzOiBkb2MgKEpvaG4gRmxlY2spLCAgYnVnIGZpeGVzCisgICAtIFVURi0xNiBjbGVhbnVwIGFuZCBCT00gaXNzdWVzIChXaWxsaWFtIEJyYWNrKQorICAgLSBidWcgZml4ZXM6IElEIGFuZCB4bWxSZWFkZXIgdmFsaWRhdGlvbiwgWFBhdGggKFdpbGxpYW0gQnJhY2spLAorICAgIHhtbFdyaXRlciAoQWxmcmVkIE1pY2thdXRzY2gpLCBoYXNoLmggaW5jbHVzaW9uIHByb2JsZW0sIEhUTUwgcGFyc2VyCisgICAgKEphbWVzIEJ1cnNhKSwgYXR0cmlidXRlIGRlZmF1bHRpbmcgYW5kIHZhbGlkYXRpb24sIHNvbWUgc2VyaWFsaXphdGlvbgorICAgIGNsZWFudXBzLCBYTUxfR0VUX0xJTkUgbWFjcm8sIG1lbW9yeSBkZWJ1ZyB3aGVuIHVzaW5nIHRocmVhZHMgKFdpbGxpYW0KKyAgICBCcmFjayksIHNlcmlhbGl6YXRpb24gb2YgYXR0cmlidXRlcyBhbmQgZW50aXRpZXMgY29udGVudCwgeG1sV3JpdGVyCisgICAgKERhbmllbCBTY2h1bG1hbikKKyAgIC0gWEluY2x1ZGUgYnVnZml4LCBuZXcgQVBJcyBhbmQgdXBkYXRlIHRvIHRoZSBsYXN0IHZlcnNpb24gaW5jbHVkaW5nIHRoZQorICAgIG5hbWVzcGFjZSBjaGFuZ2UuCisgICAtIFhNTCBTY2hlbWFzIGltcHJvdmVtZW50czogaW5jbHVkZSAoUm9iZXJ0IFN0ZXBhbmVrKSwgaW1wb3J0IGFuZAorICAgIG5hbWVzcGFjZSBoYW5kbGluZywgZml4ZWQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdHJvdWJsZXMsIGFkZGVkIGV4YW1wbGVzCisgICAgYmFzZWQgb24gRXJpYyB2YW4gZGVyIFZsaXN0IGJvb2ssIHJlZ2V4cCBmaXhlcworICAgLSBwcmVsaW1pbmFyeSBwYXR0ZXJuIHN1cHBvcnQgZm9yIHN0cmVhbWluZyAobmVlZGVkIGZvciBzY2hlbWFzCisgICAgY29uc3RyYWludHMpLCBhZGRlZCB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuKCkgdG8gY29sbGVjdCBzdWJkb2N1bWVudAorICAgIHdoZW4gc3RyZWFtaW5nLgorICAgLSB2YXJpb3VzIGZpeGVzIGluIHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsaW5nCisKKworMi42LjI6IE5vdiA0IDIwMDM6CisgICAtIFhQYXRoIGNvbnRleHQgdW5yZWdpc3RyYXRpb24gZml4ZXMKKyAgIC0gdGV4dCBub2RlIGNvYWxlc2NpbmcgZml4ZXMgKE1hcmsgTGlsYmFjaykKKyAgIC0gQVBJIHRvIHNjcmVhdGUgYSBXM0MgU2NoZW1hcyBmcm9tIGFuIGV4aXN0aW5nIGRvY3VtZW50IChTdGV2ZSBCYWxsKQorICAgLSBCZU9TIHBhdGNoZXMgKE1hcmNpbiAnU2hhcmQnIEtvbmlja2kpCisgICAtIHhtbFN0clZQcmludGYgZnVuY3Rpb24gYWRkZWQgKEFsZWtzZXkgU2FuaW4pCisgICAtIGNvbXBpbGF0aW9uIGZpeGVzIChNYXJrIFZha29jKQorICAgLSBzdGRpbiBwYXJzaW5nIGZpeCAoV2lsbGlhbSBCcmFjaykKKyAgIC0gYSBwb3N0ZXJpb3JpIERURCB2YWxpZGF0aW9uIGZpeGVzCisgICAtIHhtbFJlYWRlciBidWcgZml4ZXM6IFdhbGtlciBmaXhlcywgcHl0aG9uIGJpbmRpbmdzCisgICAtIGZpeGVkIHhtbFN0b3BQYXJzZXIoKSB0byByZWFsbHkgc3RvcCB0aGUgcGFyc2VyIGFuZCBlcnJvcnMKKyAgIC0gYWx3YXlzIGdlbmVyYXRlIGxpbmUgbnVtYmVycyB3aGVuIHVzaW5nIHRoZSBuZXcgeG1sUmVhZHh4eAorICBmdW5jdGlvbnMKKyAgIC0gYWRkZWQgWEluY2x1ZGUgc3VwcG9ydCB0byB0aGUgeG1sUmVhZGVyIGludGVyZmFjZQorICAgLSBpbXBsZW1lbnRlZCBYTUxfUEFSU0VfTk9ORVQgcGFyc2VyIG9wdGlvbgorICAgLSBEb2NCb29rIFhTTFQgcHJvY2Vzc2luZyBidWcgZml4ZWQKKyAgIC0gSFRNTCBzZXJpYWxpemF0aW9uIGZvciA8cD4gZWxlbWVudHMgKFdpbGxpYW0gQnJhY2sgYW5kIG1lKQorICAgLSBYUG9pbnRlciBmYWlsdXJlIGluIFhJbmNsdWRlIGFyZSBub3cgaGFuZGxlZCBhcyByZXNvdXJjZSBlcnJvcnMKKyAgIC0gZml4ZWQgeG1sbGludCAtLWh0bWwgdG8gdXNlIHRoZSBIVE1MIHNlcmlhbGl6ZXIgb24gb3V0cHV0IChhZGRlZAorICAgIC0teG1sb3V0IHRvIGltcGxlbWVudCB0aGUgcHJldmlvdXMgYmVoYXZpb3VyIG9mIHNhdmluZyBpdCB1c2luZyB0aGUgWE1MCisgICAgc2VyaWFsaXplcikKKworCisyLjYuMTogT2N0IDI4IDIwMDM6CisgICAtIE1vc3RseSBidWdmaXhlcyBhZnRlciB0aGUgYmlnIDIuNi4wIGNoYW5nZXMKKyAgIC0gVW5peCBjb21waWxhdGlvbiBwYXRjaGVzOiBsaWJ4bWwubTQgKFBhdHJpY2sgV2VsY2hlKSwgd2FybmluZ3MgY2xlYW51cAorICAgIChXaWxsaWFtIEJyYWNrKQorICAgLSBXaW5kb3dzIGNvbXBpbGF0aW9uIHBhdGNoZXMgKEpvYWNoaW0gQmF1Y2gsIFN0ZXBoYW5lIEJpZG91bCwgSWdvcgorICAgIFpsYXRrb3ZpYykKKyAgIC0geG1sV3JpdGVyIGJ1Z2ZpeCAoQWxmcmVkIE1pY2thdXRzY2gpCisgICAtIGNodmFsaWQuW2NoXTogY291cGxlIG9mIGZpeGVzIGZyb20gU3RlcGhhbmUgQmlkb3VsCisgICAtIGNvbnRleHQgcmVzZXQ6IGVycm9yIHN0YXRlIHJlc2V0LCBwdXNoIHBhcnNlciByZXNldCAoR3JhaGFtCisgIEJlbm5ldHQpCisgICAtIGNvbnRleHQgcmV1c2U6IGdlbmVyYXRlIGVycm9ycyBpZiBmaWxlIGlzIG5vdCByZWFkYWJsZQorICAgLSBkZWZhdWx0ZWQgYXR0cmlidXRlcyBmb3IgZWxlbWVudCBjb21pbmcgZnJvbSBpbnRlcm5hbCBlbnRpdGllcworICAgIChTdGVwaGFuZSBCaWRvdWwpCisgICAtIFB5dGhvbjogdGFiIGFuZCBzcGFjZXMgbWl4IChXaWxsaWFtIEJyYWNrKQorICAgLSBFcnJvciBoYW5kbGVyIGNvdWxkIGNyYXNoIGluIERURCB2YWxpZGF0aW9uIGluIDIuNi4wCisgICAtIHhtbFJlYWRlcjogZG8gbm90IHVzZSB0aGUgZG9jdW1lbnQgb3IgZWxlbWVudCBfcHJpdmF0ZSBmaWVsZAorICAgLSB0ZXN0U0FYLmM6IGF2b2lkIGEgcHJvYmxlbSB3aXRoIHNvbWUgUElzIChNYXNzaW1vIE1vcmFyYSkKKyAgIC0gZ2VuZXJhbCBidWcgZml4ZXM6IG1hbmRhdG9yeSBlbmNvZGluZyBpbiB0ZXh0IGRlY2wsIHNlcmlhbGl6aW5nCisgICAgRG9jdW1lbnQgRnJhZ21lbnQgbm9kZXMsIHhtbFNlYXJjaE5zIDIuNi4wIHByb2JsZW0gKEthc2ltaWVyIEJ1Y2hjaWspLAorICAgIFhQYXRoIGVycm9ycyBub3QgcmVwb3J0ZWQsICBzbG93IEhUTUwgcGFyc2luZyBvZiBsYXJnZSBkb2N1bWVudHMuCisKKworMi42LjA6IE9jdCAyMCAyMDAzOgorICAgLSBNYWpvciByZXZpc2lvbiByZWxlYXNlOiBzaG91bGQgYmUgQVBJIGFuZCBBQkkgY29tcGF0aWJsZSBidXQgZ290IGEgbG90CisgICAgb2YgY2hhbmdlCisgICAtIEluY3JlYXNlZCB0aGUgbGlicmFyeSBtb2R1bGFyaXR5LCBmYXIgbW9yZSBvcHRpb25zIGNhbiBiZSBzdHJpcHBlZCBvdXQsCisgICAgYSAtLXdpdGgtbWluaW11bSBjb25maWd1cmF0aW9uIHdpbGwgd2VpZ2h0IGFyb3VuZCAxNjBLQnl0ZXMKKyAgIC0gVXNlIHBlciBwYXJzZXIgYW5kIHBlciBkb2N1bWVudCBkaWN0aW9ubmFyeSwgYWxsb2NhdGUgbmFtZXMgYW5kIHNtYWxsCisgICAgdGV4dCBub2RlcyBmcm9tIHRoZSBkaWN0aW9ubmFyeQorICAgLSBTd2l0Y2ggdG8gYSBTQVgyIGxpa2UgcGFyc2VyIHJld3JvdGUgbW9zdCBvZiB0aGUgWE1MIHBhcnNlciBjb3JlLAorICAgIHByb3ZpZGVzIG5hbWVzcGFjZSByZXNvbHV0aW9uIGFuZCBkZWZhdWx0ZWQgYXR0cmlidXRlcywgbWluaW1pemUgbWVtb3J5CisgICAgYWxsb2NhdGlvbnMgYW5kIGNvcGllcywgbmFtZXNwYWNlIGNoZWNraW5nIGFuZCBzcGVjaWZpYyBlcnJvciBoYW5kbGluZywKKyAgICBpbW11dGFibGUgYnVmZmVycywgbWFrZSBwcmVkZWZpbmVkIGVudGl0aWVzIHN0YXRpYyBzdHJ1Y3R1cmVzLCBldGMuLi4KKyAgIC0gcmV3cm90ZSBhbGwgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBsaWJyYXJ5LCBhbGwgZXJyb3JzIGNhbiBiZQorICAgIGludGVyY2VwdGVkIGF0IGEgc3RydWN0dXJlZCBsZXZlbCwgd2l0aCBwcmVjaXNlIGluZm9ybWF0aW9uCisgIGF2YWlsYWJsZS4KKyAgIC0gTmV3IHNpbXBsZXIgYW5kIG1vcmUgZ2VuZXJpYyBYTUwgYW5kIEhUTUwgcGFyc2VyIEFQSXMsIGFsbG93aW5nIHRvCisgICAgZWFzaWxseSBtb2RpZnkgdGhlIHBhcnNpbmcgb3B0aW9ucyBhbmQgcmV1c2UgcGFyc2VyIGNvbnRleHQgZm9yIG11bHRpcGxlCisgICAgY29uc2VjdXRpdmUgZG9jdW1lbnRzLgorICAgLSBTaW1pbGFyIG5ldyBBUElzIGZvciB0aGUgeG1sUmVhZGVyLCBmb3Igb3B0aW9ucyBhbmQgcmV1c2UsIHByb3ZpZGVkIG5ldworICAgIGZ1bmN0aW9ucyB0byBhY2Nlc3MgY29udGVudCBhcyBjb25zdCBzdHJpbmdzLCB1c2UgdGhlbSBmb3IgUHl0aG9uCisgIGJpbmRpbmdzCisgICAtIGEgIGxvdCBvZiBvdGhlciBzbWFsbGVyIEFQSSBpbXByb3ZlbWVudHM6IHhtbFN0clByaW50ZiAoQWxla3NleSBTYW5pbiksCisgICAgV2Fsa2VyIGkuZS4gcmVhZGVyIG9uIGEgZG9jdW1lbnQgdHJlZSBiYXNlZCBvbiBBbGZyZWQgTWlja2F1dHNjaCBjb2RlLAorICAgIG1ha2Ugcm9vbSBpbiBub2RlcyBmb3IgbGluZSBudW1iZXJzLCByZWZlcmVuY2UgY291bnRpbmcgYW5kIGZ1dHVyZSBQU1ZJCisgICAgZXh0ZW5zaW9ucywgZ2VuZXJhdGlvbiBvZiBjaGFyYWN0ZXIgcmFuZ2VzIHRvIGJlIGNoZWNrZWQgd2l0aCBmYXN0ZXIKKyAgICBhbGdvcml0aG0gKFdpbGxpYW0pLCAgeG1sUGFyc2VyTWF4RGVwdGggKENydXRjaGVyIER1bm5hdmFudCksIGJ1ZmZlcgorICAgIGFjY2VzcworICAgLSBOZXcgeG1sV3JpdGVyIEFQSSBwcm92aWRlZCBieSBBbGZyZWQgTWlja2F1dHNjaAorICAgLSBTY2hlbWFzOiBiYXNlNjQgc3VwcG9ydCBieSBBbnRob255IENhcnJpY28KKyAgIC0gUGFyc2VyPC0+SFRUUCBpbnRlZ3JhdGlvbiBmaXgsIHByb3BlciBwcm9jZXNzaW5nIG9mIHRoZSBNaW1lLVR5cGUKKyAgICBhbmQgY2hhcnNldCBpbmZvcm1hdGlvbiBpZiBhdmFpbGFibGUuCisgICAtIFJlbGF4LU5HOiBidWcgZml4ZXMgaW5jbHVkaW5nIHRoZSBvbmUgcmVwb3J0ZWQgYnkgTWFydGlqbiBGYWFzc2VuIGFuZAorICAgIHplcm9Pck1vcmUsIGJldHRlciBlcnJvciByZXBvcnRpbmcuCisgICAtIFB5dGhvbiBiaW5kaW5ncyAoU3TDg8KpcGhhbmUgQmlkb3VsKSwgbmV2ZXIgdXNlIHN0ZG91dCBmb3IgZXJyb3JzCisgIG91dHB1dAorICAgLSBQb3J0YWJpbGl0eTogYWxsIHRoZSBoZWFkZXJzIGhhdmUgbWFjcm9zIGZvciBleHBvcnQgYW5kIGNhbGxpbmcKKyAgICBjb252ZW50aW9uIGRlZmluaXRpb25zIChJZ29yIFpsYXRrb3ZpYyksIFZNUyB1cGRhdGUgKENyYWlnIEEuIEJlcnJ5KSwKKyAgICBXaW5kb3dzOiB0aHJlYWRzIChKZXNzZSBQZWx0b24pLCBCb3JsYW5kIGNvbXBpbGVyIChFcmljIFp1cmNoZXIsICBJZ29yKSwKKyAgICBNaW5ndyAoSWdvciksIHR5cG9zIChNYXJrIFZha29jKSwgIGJldGEgdmVyc2lvbiAoU3RlcGhhbmUgQmlkb3VsKSwKKyAgICB3YXJuaW5nIGNsZWFudXBzIG9uIEFJWCBhbmQgTUlQUyBjb21waWxlcnMgKFdpbGxpYW0gQnJhY2spLCBCZU9TIChNYXJjaW4KKyAgICAnU2hhcmQnIEtvbmlja2kpCisgICAtIERvY3VtZW50YXRpb24gZml4ZXMgYW5kIFJFQURNRSAoV2lsbGlhbSBCcmFjayksIHNlYXJjaCBmaXggKFdpbGxpYW0pLAorICAgIHR1dG9yaWFsIHVwZGF0ZXMgKEpvaG4gRmxlY2spLCBuYW1lc3BhY2UgZG9jcyAoU3RlZmFuIEtvc3QpCisgICAtIEJ1ZyBmaXhlczogeG1sQ2xlYW51cFBhcnNlciAoRGF2ZSBCZWNrZXR0KSwgdGhyZWFkaW5nIHVuaW5pdGlhbGl6ZWQKKyAgICBtdXRleGVzLCBIVE1MIGRvY3R5cGUgbG93ZXJjYXNlLCAgU0FYL0lPIChXaWxsaWFtKSwgY29tcHJlc3Npb24gZGV0ZWN0aW9uCisgICAgYW5kIHJlc3RvcmUgKFdpbGxpYW0pLCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gaW4gRFREcyAoV2lsbGlhbSksIG5hbWVzcGFjZQorICAgIG9uIGF0dHJpYnV0ZSBpbiBIVE1MIG91dHB1dCAoV2lsbGlhbSksIGlucHV0IGZpbGVuYW1lIChSb2IgUmljaGFyZHMpLAorICAgIG5hbWVzcGFjZSBEVEQgdmFsaWRhdGlvbiwgeG1sUmVwbGFjZU5vZGUgKENocmlzIFJ5bGFuZCksIEkvTyBjYWxsYmFja3MKKyAgICAoTWFya3VzIEtlaW0pLCBDREFUQSBzZXJpYWxpemF0aW9uIChTaGF1biBNY0NhbmNlKSwgeG1sUmVhZGVyIChQZXRlcgorICAgIERlcnIpLCBoaWdoIGNvZGVwb2ludCBjaGFycmVmIGxpa2UgJiN4MTBGRkZGOywgYnVmZmVyIGFjY2VzcyBpbiBwdXNoCisgICAgbW9kZSAoSnVzdGluIEZsZXRjaGVyKSwgVExTIHRocmVhZHMgb24gV2luZG93cyAoSmVzc2UgUGVsdG9uKSwgWFBhdGggYnVnCisgICAgKFdpbGxpYW0pLCB4bWxDbGVhbnVwUGFyc2VyIChNYXJjIExpeWFuYWdlKSwgQ0RBVEEgb3V0cHV0IChXaWxsaWFtKSwgSFRUUAorICAgIGVycm9yIGhhbmRsaW5nLgorICAgLSB4bWxsaW50IG9wdGlvbnM6IC0tZHRkdmFsaWRmcGkgZm9yIFRvYmlhcyBSZWlmLCAtLXNheDEgZm9yIGNvbXBhdAorICAgIHRlc3RpbmcsICAtLW5vZGljdCBmb3IgYnVpbGRpbmcgd2l0aG91dCB0cmVlIGRpY3Rpb25uYXJ5LCAtLW5vY2RhdGEgdG8KKyAgICByZXBsYWNlIENEQVRBIGJ5IHRleHQsIC0tbnNjbGVhbiB0byByZW1vdmUgc3VycGVyZmx1b3VzICBuYW1lc3BhY2UKKyAgICBkZWNsYXJhdGlvbnMKKyAgIC0gYWRkZWQgeG1sMi1jb25maWcgLS1saWJ0b29sLWxpYnMgb3B0aW9uIGZyb20gS2V2aW4gUC4gRmxlbWluZworICAgLSBhIGxvdCBvZiBwcm9maWxpbmcgYW5kIHR1bmluZyBvZiB0aGUgY29kZSwgc3BlZWR1cCBwYXRjaCBmb3IKKyAgICB4bWxTZWFyY2hOcygpIGJ5IEx1Y2EgUGFkb3ZhbmkuIFRoZSB4bWxSZWFkZXIgc2hvdWxkIGRvIGZhciBsZXNzCisgICAgYWxsb2NhdGlvbiBhbmQgaXQgc3BlZWQgc2hvdWxkIGdldCBjbG9zZXIgdG8gU0FYLiBDaHJpcyBBbmRlcnNvbiB3b3JrZWQKKyAgICBvbiBzcGVlZGluZyBhbmQgY2xlYW5pbmcgdXAgcmVwZXRpdGl2ZSBjaGVja2luZyBjb2RlLgorICAgLSBjbGVhbnVwIG9mICJtYWtlIHRlc3RzIgorICAgLSBsaWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjIGZyb20gTWFsY29sbSBUcmVkaW5uaWNrCisgICAtIGRlYWN0aXZhdGVkIHRoZSBicm9rZW4gZG9jQm9vayBTR01MIHBhcnNlciBjb2RlIGFuZCBwbHVnZ2VkIHRoZSBYTUwKKyAgICBwYXJzZXIgaW5zdGVhZC4KKworCisyLjUuMTE6IFNlcCA5IDIwMDM6CitBIGJ1Z2ZpeCBvbmx5IHJlbGVhc2U6ICAgLSByaXNrIG9mIGNyYXNoIGluIFJlbGF4LU5HCisgICAtIHJpc2sgb2YgY3Jhc2ggd2hlbiB1c2luZyBtdWx0aXRocmVhZGVkIHByb2dyYW1zCisKKworMi41LjEwOiBBdWcgMTUgMjAwMzoKK0EgYnVnZml4ZXMgb25seSByZWxlYXNlICAgLSBXaW5kb3dzIE1ha2VmaWxlcyAoV2lsbGlhbSBCcmFjaykKKyAgIC0gVVRGLTE2IHN1cHBvcnQgZml4ZXMgKE1hcmsgSXR6Y292aXR6KQorICAgLSBNYWtlZmlsZSBhbmQgcG9ydGFiaWxpdHkgKFdpbGxpYW0gQnJhY2spIGF1dG9tYWtlLCBMaW51eCBhbHBoYSwgTWluZ3cKKyAgICBvbiBXaW5kb3dzIChNaWtoYWlsIEdydXNoaW5za2l5KQorICAgLSBIVE1MIHBhcnNlciAoT2xpdmVyIFN0b2VuZWJlcmcpCisgICAtIFhJbmNsdWRlIHBlcmZvcm1hbmNlIHByb2JsZW0gcmVwb3J0ZWQgYnkgS2V2aW4gUnVzY29lCisgICAtIFhNTCBwYXJzZXIgcGVyZm9ybWFuY2UgcHJvYmxlbSByZXBvcnRlZCBieSBHcmFudCBHb29kYWxlCisgICAtIHhtbFNBWFBhcnNlRFREKCkgYnVnIGZpeCBmcm9tIE1hbGNvbG0gVHJlZGlubmljaworICAgLSBhbmQgYSBjb3VwbGUgb3RoZXIgY2xlYW51cAorCisKKzIuNS45OiBBdWcgOSAyMDAzOgorICAgLSBidWdmaXhlczogSVB2NiBwb3J0YWJpbGl0eSwgeG1sSGFzTnNQcm9wIChNYXJrdXMgS2VpbSksIFdpbmRvd3MgYnVpbGQKKyAgICAoV2lsaWFtIEJyYWtlLCBKZXNzZSBQZWx0b24sIElnb3IpLCBTY2hlbWFzIChQZXRlciBTb2Jpc2NoKSwgdGhyZWFkaW5nCisgICAgKFJvYiBSaWNoYXJkcyksIGhleEJpbmFyeSB0eXBlICgpLCBVVEYtMTYgQk9NIChEb2RqaSBTZWtldGVsaSksCisgICAgeG1sUmVhZGVyLCBSZWxheC1ORyBzY2hlbWFzIGNvbXBpbGF0aW9uLCBuYW1lc3BhY2UgaGFuZGxpbmcsICBFWFNMVCAoU2VhbgorICAgIEdyaWZmaW4pLCBIVE1MIHBhcnNpbmcgcHJvYmxlbSAoV2lsbGlhbSBCcmFjayksIERURCB2YWxpZGF0aW9uIGZvciBtaXhlZAorICAgIGNvbnRlbnQgKyBuYW1lc3BhY2VzLCBIVE1MIHNlcmlhbGl6YXRpb24sIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24sCisgICAgcHJvZ3Jlc3NpdmUgSFRNTCBwYXJzZXIKKyAgIC0gYmV0dGVyIGludGVyZmFjZXMgZm9yIFJlbGF4LU5HIGVycm9yIGhhbmRsaW5nIChKb2FjaGltIEJhdWNoLCApCisgICAtIGFkZGluZyB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlKCkgZm9yIFhJbmNsdWQnaW5nIGluIGEgc3VidHJlZQorICAgLSBkb2MgZml4ZXMgYW5kIGltcHJvdmVtZW50cyAoSm9obiBGbGVjaykKKyAgIC0gY29uZmlndXJlIGZsYWcgZm9yIC13aXRoLWZleGNlcHRpb25zIHdoZW4gZW1iZWRkaW5nIGluIEMrKworICAgLSBjb3VwbGUgb2YgbmV3IFVURi04IGhlbHBlciBmdW5jdGlvbnMgKFdpbGxpYW0gQnJhY2spCisgICAtIGdlbmVyYWwgZW5jb2RpbmcgY2xlYW51cCArIElTTy04ODU5LXggd2l0aG91dCBpY29udiAoUGV0ZXIgSmFjb2JpKQorICAgLSB4bWxUZXh0UmVhZGVyIGNsZWFudXAgKyBlbnVtIGZvciBub2RlIHR5cGVzIChCam9ybiBSZWVzZSkKKyAgIC0gZ2VuZXJhbCBjb21waWxhdGlvbi93YXJuaW5nIGNsZWFudXAgU29sYXJpcy9IUC1VWC8uLi4gKFdpbGxpYW0KKyAgQnJhY2spCisKKworMi41Ljg6IEp1bCA2IDIwMDM6CisgICAtIGJ1Z2ZpeGVzOiBYUGF0aCwgWEluY2x1ZGUsIGZpbGUvVVJJIG1hcHBpbmcsIFVURi0xNiBzYXZlIChNYXJrCisgICAgSXR6Y292aXR6KSwgVVRGLTggY2hlY2tpbmcsIFVSSSBzYXZpbmcsIGVycm9yIHByaW50aW5nIChXaWxsaWFtIEJyYWNrKSwKKyAgICBQSSByZWxhdGVkIG1lbWxlYWssIGNvbXBpbGF0aW9uIHdpdGhvdXQgc2NoZW1hcyBvciB3aXRob3V0IHhwYXRoIChKb2VyZworICAgIFNjaG1pdHotTGlubmV3ZWJlci9HYXJyeSBQZW5uaW5ndG9uKSwgeG1sVW5saW5rTm9kZSBwcm9ibGVtIHdpdGggRFREcywKKyAgICBycG0gcHJvYmxlbSBvbiAsIGk4Nl82NCwgcmVtb3ZlZCBhIGZldyBjb21waWxhdGlvbiBwcm9ibGVtcyBmcm9tIDIuNS43LAorICAgIHhtbElPUGFyc2VEVEQsIGFuZCB4bWxTQVhQYXJzZURURCAoTWFsY29sbSBUcmVkaW5uaWNrKQorICAgLSBwb3J0YWJpbGl0eTogREpHUFAgKE1zRG9zKSAsIE9wZW5WTVMgKENyYWlnIEEuIEJlcnJ5KQorICAgLSBXaWxsaWFtIEJyYWNrIGZpeGVkIG11bHRpdGhyZWFkaW5nIGxvY2sgcHJvYmxlbXMKKyAgIC0gSVB2NiBwYXRjaCBmb3IgRlRQIGFuZCBIVFRQIGFjY2Vzc2VzIChBcmNoYW5hIFNoYWgvV2lwcm8pCisgICAtIFdpbmRvd3MgZml4ZXMgKElnb3IgWmxhdGtvdmljLCAgRXJpYyBadXJjaGVyKSwgdGhyZWFkaW5nIChTdMODwqlwaGFuZQorICAgIEJpZG91bCkKKyAgIC0gQSBmZXcgVzNDIFNjaGVtYXMgU3RydWN0dXJlIGltcHJvdmVtZW50cworICAgLSBXM0MgU2NoZW1hcyBEYXRhdHlwZSBpbXByb3ZlbWVudHMgKENoYXJsaWUgQm96ZW1hbikKKyAgIC0gUHl0aG9uIGJpbmRpbmdzIGZvciB0aHJlYWQgZ2xvYmFscyAoU3TDg8KpcGhhbmUgQmlkb3VsKSwgYW5kIG1ldGhvZC9jbGFzcworICAgIGdlbmVyYXRvcgorICAgLSBhZGRlZCAtLW5vbmV0IG9wdGlvbiB0byB4bWxsaW50CisgICAtIGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzIChKb2huIEZsZWNrKQorCisKKzIuNS43OiBBcHIgMjUgMjAwMzoKKyAgIC0gUmVsYXgtTkc6IENvbXBpbGluZyB0byByZWdleHAgYW5kIHN0cmVhbWluZyB2YWxpZGF0aW9uIG9uIHRvcCBvZiB0aGUKKyAgICB4bWxSZWFkZXIgaW50ZXJmYWNlLCBhZGRlZCB0byB4bWxsaW50IC0tc3RyZWFtCisgICAtIHhtbFJlYWRlcjogRXhwYW5kKCksIE5leHQoKSBhbmQgRE9NIGFjY2VzcyBnbHVlLCBidWcgZml4ZXMKKyAgIC0gU3VwcG9ydCBmb3IgbGFyZ2UgZmlsZXM6IFJHTiB2YWxpZGF0ZWQgYSA0LjVHQiBpbnN0YW5jZQorICAgLSBUaHJlYWQgc3VwcG9ydCBpcyBub3cgY29uZmlndXJlZCBpbiBieSBkZWZhdWx0CisgICAtIEZpeGVzOiB1cGRhdGUgb2YgdGhlIFRyaW8gY29kZSAoQmpvcm4pLCBXWFMgRGF0ZSBhbmQgRHVyYXRpb24gZml4ZXMKKyAgICAoQ2hhcmxlcyBCb3plbWFuKSwgRFREIGFuZCBuYW1lc3BhY2VzIChCcmVudCBIZW5kcmlja3MpLCBIVE1MIHB1c2ggcGFyc2VyCisgICAgYW5kIHplcm8gYnl0ZXMgaGFuZGxpbmcsIHNvbWUgbWlzc2luZyBXaW5kb3dzIGZpbGUgcGF0aCBjb252ZXJzaW9ucywKKyAgICBiZWhhdmlvdXIgb2YgdGhlIHBhcnNlciBhbmQgdmFsaWRhdG9yIGluIHRoZSBwcmVzZW5jZSBvZiAib3V0IG9mIG1lbW9yeSIKKyAgICBlcnJvciBjb25kaXRpb25zCisgICAtIGV4dGVuZGVkIHRoZSBBUEkgdG8gYmUgYWJsZSB0byBwbHVnIGEgZ2FyYmFnZSBjb2xsZWN0aW5nIG1lbW9yeQorICAgIGFsbG9jYXRvciwgYWRkZWQgeG1sTWFsbG9jQXRvbWljKCkgYW5kIG1vZGlmaWVkIHRoZSBhbGxvY2F0aW9ucworICAgIGFjY29yZGluZ2x5LgorICAgLSBQZXJmb3JtYW5jZXM6IHJlbW92ZWQgZXhjZXNzaXZlIG1hbGxvYygpIGNhbGxzLCBzcGVlZHVwIG9mIHRoZSBwdXNoIGFuZAorICAgIHhtbFJlYWRlciBpbnRlcmZhY2VzLCByZW1vdmVkIGV4Y2Vzc2l2ZSB0aHJlYWQgbG9ja2luZworICAgLSBEb2N1bWVudGF0aW9uOiBtYW4gcGFnZSAoSm9obiBGbGVjayksIHhtbFJlYWRlciBkb2N1bWVudGF0aW9uCisgICAtIFB5dGhvbjogYWRkaW5nIGJpbmRpbmcgZm9yIHhtbENhdGFsb2dBZGRMb2NhbCAoQnJlbnQgTSBIZW5kcmlja3MpCisKKworMi41LjY6IEFwciAxIDIwMDM6CisgICAtIEZpeGVkIFczQyBYTUwgU2NoZW1hcyBkYXRhdHlwZSwgc2hvdWxkIGJlIGNvbXBsaWFudCBub3cgZXhjZXB0IGZvcgorICAgIGJpbkhleCBhbmQgYmFzZTY0IHdoaWNoIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4KKyAgIC0gYnVnIGZpeGVzOiBub24tQVNDSUkgSURzLCBIVE1MIG91dHB1dCwgWEluY2x1ZGUgb24gbGFyZ2UgZG9jcyBhbmQKKyAgICBYSW5jbHVkZSBlbnRpdGllcyBoYW5kbGluZywgZW5jb2RpbmcgZGV0ZWN0aW9uIG9uIGV4dGVybmFsIHN1YnNldHMsIFhNTAorICAgIFNjaGVtYXMgYnVncyBhbmQgbWVtb3J5IGxlYWtzLCBIVE1MIHBhcnNlciAoSmFtZXMgQnVyc2EpCisgICAtIHBvcnRhYmlsaXR5OiBweXRob24vdHJpbyAoQWxiZXJ0IENoaW4pLCBTdW4gY29tcGlsZXIgd2FybmluZ3MKKyAgIC0gZG9jdW1lbnRhdGlvbjogYWRkZWQgLS1yZWxheG5nIG9wdGlvbiB0byB4bWxsaW50IG1hbiBwYWdlIChKb2huKQorICAgLSBpbXByb3ZlZCBlcnJvciByZXBvcnRpbmc6IHhtbDpzcGFjZSwgc3RhcnQvZW5kIHRhZyBtaXNtYXRjaGVzLCBSZWxheCBORworICAgIGVycm9ycworCisKKzIuNS41OiBNYXIgMjQgMjAwMzoKKyAgIC0gTG90IG9mIGZpeGVzIG9uIHRoZSBSZWxheCBORyBpbXBsZW1lbnRhdGlvbi4gTW9yZSB0ZXN0aW5nIGluY2x1ZGluZworICAgIERvY0Jvb2sgYW5kIFRFSSBleGFtcGxlcy4KKyAgIC0gSW5jcmVhc2VkIHRoZSBzdXBwb3J0IGZvciBXM0MgWE1MIFNjaGVtYXMgZGF0YXR5cGUKKyAgIC0gU2V2ZXJhbCBidWcgZml4ZXMgaW4gdGhlIFVSSSBoYW5kbGluZyBsYXllcgorICAgLSBCdWcgZml4ZXM6IEhUTUwgcGFyc2VyLCB4bWxSZWFkZXIsIERURCB2YWxpZGF0aW9uLCBYUGF0aCwgZW5jb2RpbmcKKyAgICBjb252ZXJzaW9uLCBsaW5lIGNvdW50aW5nIGluIHRoZSBwYXJzZXIuCisgICAtIEFkZGVkIHN1cHBvcnQgZm9yICRYTUxMSU5UX0lOREVOVCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgRlRQIGRlbGV0ZQorICAgLSBGaXhlZCB0aGUgUlBNIHNwZWMgZmlsZSBuYW1lCisKKworMi41LjQ6IEZlYiAyMCAyMDAzOgorICAgLSBDb25mb3JtYW5jZSB0ZXN0aW5nIGFuZCBsb3Qgb2YgZml4ZXMgb24gUmVsYXggTkcgYW5kIFhJbmNsdWRlCisgICAgaW1wbGVtZW50YXRpb24KKyAgIC0gSW1wbGVtZW50YXRpb24gb2YgWFBvaW50ZXIgZWxlbWVudCgpIHNjaGVtZQorICAgLSBCdWcgZml4ZXM6IFhNTCBwYXJzZXIsIFhJbmNsdWRlIGVudGl0aWVzIG1lcmdlLCB2YWxpZGl0eSBjaGVja2luZyBvbgorICAgIG5hbWVzcGFjZXMsCisgICAgMiBzZXJpYWxpemF0aW9uIGJ1Z3MsIG5vZGUgaW5mbyBnZW5lcmF0aW9uIHByb2JsZW1zLCBhIERURCByZWdleHAKKyAgICBnZW5lcmF0aW9uIHByb2JsZW0uCisgIAorICAgLSBQb3J0YWJpbGl0eTogd2luZG93cyB1cGRhdGVzIGFuZCBwYXRoIGNhbm9uaWNhbGl6YXRpb24gKElnb3IpCisgICAtIEEgZmV3IHR5cG8gZml4ZXMgKEtqYXJ0YW4gTWFyYWFzKQorICAgLSBQeXRob24gYmluZGluZ3MgZ2VuZXJhdG9yIGZpeGVzIChTdGVwaGFuZSBCaWRvdWwpCisKKworMi41LjM6IEZlYiAxMCAyMDAzOgorICAgLSBSZWxheE5HIGFuZCBYTUwgU2NoZW1hcyBkYXRhdHlwZXMgaW1wcm92ZW1lbnRzLCBhbmQgYWRkZWQgYSBmaXJzdAorICAgIHZlcnNpb24gb2YgUmVsYXhORyBQeXRob24gYmluZGluZ3MKKyAgIC0gRml4ZXM6IFhMaW5rIChTZWFuIENoaXR0ZW5kZW4pLCBYSW5jbHVkZSAoU2VhbiBDaGl0dGVuZGVuKSwgQVBJIGZpeCBmb3IKKyAgICBzZXJpYWxpemluZyBuYW1lc3BhY2Ugbm9kZXMsIGVuY29kaW5nIGNvbnZlcnNpb24gYnVnLCBYSFRNTDEKKyAgc2VyaWFsaXphdGlvbgorICAgLSBQb3J0YWJpbGl0eSBmaXhlczogV2luZG93cyAoSWdvciksIEFNRCA2NGJpdHMgUlBNIHNwZWMgZmlsZQorCisKKzIuNS4yOiBGZWIgNSAyMDAzOgorICAgLSBGaXJzdCBpbXBsZW1lbnRhdGlvbiBvZiBSZWxheE5HLCBhZGRlZCAtLXJlbGF4bmcgZmxhZyB0byB4bWxsaW50CisgICAtIFNjaGVtYXMgc3VwcG9ydCBub3cgY29tcGlsZWQgaW4gYnkgZGVmYXVsdC4KKyAgIC0gQnVnIGZpeGVzOiBEVEQgdmFsaWRhdGlvbiwgbmFtZXNwYWNlIGNoZWNraW5nLCBYSW5jbHVkZSBhbmQgZW50aXRpZXMsCisgICAgZGVsZWdhdGVVUkkgaW4gWE1MIENhdGFsb2dzLCBIVE1MIHBhcnNlciwgWE1MIHJlYWRlciAoU3TDg8KpcGhhbmUgQmlkb3VsKSwKKyAgICBYUGF0aCBwYXJzZXIgYW5kIGV2YWx1YXRpb24sICBVVEY4VG9VVEY4IHNlcmlhbGl6YXRpb24sIFhNTCByZWFkZXIgbWVtb3J5CisgICAgY29uc3VtcHRpb24sIEhUTUwgcGFyc2VyLCBIVE1MIHNlcmlhbGl6YXRpb24gaW4gdGhlIHByZXNlbmNlIG9mCisgIG5hbWVzcGFjZXMKKyAgIC0gYWRkZWQgYW4gSFRNTCBBUEkgdG8gY2hlY2sgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMuCisgICAtIERvY3VtZW50YXRpb24gaW1wcm92ZW1lbnQsIFBERiBmb3IgdGhlIHR1dG9yaWFsIChKb2huIEZsZWNrKSwgZG9jCisgICAgcGF0Y2hlcyAoU3RlZmFuIEtvc3QpCisgICAtIFBvcnRhYmlsaXR5IGZpeGVzOiBOZXRCU0QgKEp1bGlvIE1lcmlubyksIFdpbmRvd3MgKElnb3IgWmxhdGtvdmljKQorICAgLSBBZGRlZCBweXRob24gYmluZGluZ3MgZm9yIFhQb2ludGVyLCBjb250ZXh0dWFsIGVycm9yIHJlcG9ydGluZworICAgIChTdMODwqlwaGFuZSBCaWRvdWwpCisgICAtIFVSSS9maWxlIGVzY2FwaW5nIHByb2JsZW1zIChTdGVmYW5vIFphY2NoaXJvbGkpCisKKworMi41LjE6IEphbiA4IDIwMDM6CisgICAtIEZpeGVzIGEgbWVtb3J5IGxlYWsgYW5kIGNvbmZpZ3VyYXRpb24vY29tcGlsYXRpb24gcHJvYmxlbXMgaW4gMi41LjAKKyAgIC0gZG9jdW1lbnRhdGlvbiB1cGRhdGVzIChKb2huKQorICAgLSBhIGNvdXBsZSBvZiBYbWxUZXh0UmVhZGVyIGZpeGVzCisKKworMi41LjA6IEphbiA2IDIwMDM6CisgICAtIE5ldyBYbWx0ZXh0UmVhZGVyIGludGVyZmFjZSBiYXNlZCBvbiBDIworICAgIEFQSSAod2l0aCBoZWxwIG9mIFN0w4PCqXBoYW5lIEJpZG91bCkKKyAgIC0gV2luZG93czogbW9yZSBleHBvcnRzLCBpbmNsdWRpbmcgdGhlIG5ldyBBUEkgKElnb3IpCisgICAtIFhJbmNsdWRlIGZhbGxiYWNrIGZpeAorICAgLSBQeXRob246IGJpbmRpbmdzIGZvciB0aGUgbmV3IEFQSSwgcGFja2FnaW5nIChTdMODwqlwaGFuZSBCaWRvdWwpLAorICAgIGRydl9saWJ4bWwyLnB5IFB5dGhvbiB4bWwuc2F4IGRyaXZlciAoU3TDg8KpcGhhbmUgQmlkb3VsKSwgZml4ZXMsIHNwZWVkdXAKKyAgICBhbmQgaXRlcmF0b3JzIGZvciBQeXRob24tMi4yIChIYW5udSBLcm9zaW5nKQorICAgLSBUdXRvcmlhbCBmaXhlcyAoam9obiBGbGVjayBhbmQgTmlyYWogVG9saWEpIHhtbGxpbnQgbWFuIHVwZGF0ZQorICAoSm9obikKKyAgIC0gRml4IGFuIFhNTCBwYXJzZXIgYnVnIHJhaXNlZCBieSBWeWFjaGVzbGF2IFBpbmR5dXJhCisgICAtIEZpeCBmb3IgVk1TIHNlcmlhbGl6YXRpb24gKE5pZ2VsIEhhbGwpIGFuZCBjb25maWcgKENyYWlnIEEuIEJlcnJ5KQorICAgLSBFbnRpdGllcyBoYW5kbGluZyBmaXhlcworICAgLSBuZXcgQVBJIHRvIG9wdGlvbmFsbHkgdHJhY2sgbm9kZSBjcmVhdGlvbiBhbmQgZGVsZXRpb24gKEx1a2FzCisgIFNjaHJvZWRlcikKKyAgIC0gQWRkZWQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIFhtbHRleHRSZWFkZXIgaW50ZXJmYWNlIGFuZCBzb21lIFhNTCBndWlkZWxpbmVzCisKKworMi40LjMwOiBEZWMgMTIgMjAwMjoKKyAgIC0gMi40LjI5IGJyb2tlIHRoZSBweXRob24gYmluZGluZ3MsIHJlcmVsZWFzaW5nCisgICAtIEltcHJvdmVtZW50L2ZpeGVzIG9mIHRoZSBYTUwgQVBJIGdlbmVyYXRvciwgYW5kIGNvdXBsZSBvZiBtaW5vciBjb2RlCisgICAgZml4ZXMuCisKKworMi40LjI5OiBEZWMgMTEgMjAwMjoKKyAgIC0gV2luZG93cyBmaXhlcyAoSWdvcik6IFdpbmRvd3MgQ0UgcG9ydCwgcHRocmVhZCBsaW5raW5nLCBweXRob24gYmluZGluZ3MKKyAgICAoU3TDg8KpcGhhbmUgQmlkb3VsKSwgTWluZ3cgKE1hZ251cyBIZW5vY2gpLCBhbmQgZXhwb3J0IGxpc3QgdXBkYXRlcworICAgLSBGaXggZm9yIHByZXYgaW4gcHl0aG9uIGJpbmRpbmdzIChFUkRJIEdlcmdvKQorICAgLSBGaXggZm9yIGVudGl0aWVzIGhhbmRsaW5nIChNYXJjdXMgQ2xhcmtlKQorICAgLSBSZWZhY3RvcmVkIHRoZSBYTUwgYW5kIEhUTUwgZHVtcHMgdG8gYSBzaW5nbGUgY29kZSBwYXRoLCBmaXhlZCBYSFRNTDEKKyAgICBkdW1wCisgICAtIEZpeCBmb3IgVVJJIHBhcnNpbmcgd2hlbiBoYW5kbGluZyBVUk5zIHdpdGggZnJhZ21lbnQgaWRlbnRpZmllcnMKKyAgIC0gRml4IGZvciBIVFRQIFVSTCBlc2NhcGluZyBwcm9ibGVtCisgICAtIGFkZGVkIGFuIFRleHRYbWxSZWFkZXIgKEMjKSBsaWtlIEFQSSAod29yayBpbiBwcm9ncmVzcykKKyAgIC0gUmV3cm90ZSB0aGUgQVBJIGluIFhNTCBnZW5lcmF0aW9uIHNjcmlwdCwgaW5jbHVkZXMgYSBDIHBhcnNlciBhbmQgc2F2ZXMKKyAgICBtb3JlIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgQyMgYmluZGluZ3MKKworCisyLjQuMjg6IE5vdiAyMiAyMDAyOgorICAgLSBhIGNvdXBsZSBvZiBweXRob24gYmluZGluZyBmaXhlcworICAgLSAyIGJ1ZyBmaXhlcyBpbiB0aGUgWE1MIHB1c2ggcGFyc2VyCisgICAtIHBvdGVudGlhbCBtZW1vcnkgbGVhayByZW1vdmVkIChNYXJ0aW4gU3RvaWxvdikKKyAgIC0gZml4IHRvIHRoZSBjb25maWd1cmUgc2NyaXB0IGZvciBVbml4IChEaW1pdHJpIFBhcGFkb3BvdWxvcykKKyAgIC0gYWRkZWQgZW5jb2Rpbmcgc3VwcG9ydCBmb3IgWEluY2x1ZGUgcGFyc2U9InRleHQiCisgICAtIGF1dG9kZXRlY3Rpb24gb2YgWEhUTUwxIGFuZCBzcGVjaWZpYyBzZXJpYWxpemF0aW9uIHJ1bGVzIGFkZGVkCisgICAtIG5hc3R5IHRocmVhZGluZyBidWcgZml4ZWQgKFdpbGxpYW0gQnJhY2spCisKKworMi40LjI3OiBOb3YgMTcgMjAwMjoKKyAgIC0gZml4ZXMgZm9yIHRoZSBQeXRob24gYmluZGluZ3MKKyAgIC0gYSBudW1iZXIgb2YgYnVnIGZpeGVzOiBTR01MIGNhdGFsb2dzLCB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkoKSwKKyAgICBIVE1MIHBhcnNlciwgIFNjaGVtYXMgKENoYXJsZXMgQm96ZW1hbiksIGRvY3VtZW50IGZyYWdtZW50IHN1cHBvcnQKKyAgICAoQ2hyaXN0aWFuIEdsYWhuKSwgeG1sUmVjb25jaWxpYXRlTnMgKEJyaWFuIFN0YWZmb3JkKSwgWFBvaW50ZXIsCisgICAgeG1sRnJlZU5vZGUoKSwgeG1sU0FYUGFyc2VNZW1vcnkgKFBldGVyIEpvbmVzKSwgeG1sR2V0Tm9kZVBhdGggKFBldHIKKyAgICBQYWphcyksIGVudGl0aWVzIHByb2Nlc3NpbmcKKyAgIC0gYWRkZWQgZ3JlcCB0byB4bWxsaW50IC0tc2hlbGwKKyAgIC0gVk1TIHVwZGF0ZSBwYXRjaCBmcm9tIENyYWlnIEEuIEJlcnJ5CisgICAtIGNsZWFudXAgb2YgdGhlIFdpbmRvd3MgYnVpbGQgd2l0aCBzdXBwb3J0IGZvciBtb3JlIGNvbXBpbGVycyAoSWdvciksCisgICAgYmV0dGVyIHRocmVhZCBzdXBwb3J0IG9uIFdpbmRvd3MKKyAgIC0gY2xlYW51cCBvZiBVbml4IE1ha2VmaWxlcyBhbmQgc3BlYyBmaWxlCisgICAtIEltcHJvdmVtZW50cyB0byB0aGUgZG9jdW1lbnRhdGlvbiAoSm9obiBGbGVjaykKKworCisyLjQuMjY6IE9jdCAxOCAyMDAyOgorICAgLSBQYXRjaGVzIGZvciBXaW5kb3dzIENFIHBvcnQsIGltcHJvdmVtZW50cyBvbiBXaW5kb3dzIHBhdGhzIGhhbmRsaW5nCisgICAtIEZpeGVzIHRvIHRoZSB2YWxpZGF0aW9uICBjb2RlIChEVEQgYW5kIFNjaGVtYXMpLCB4bWxOb2RlR2V0UGF0aCgpICwKKyAgICBIVE1MIHNlcmlhbGl6YXRpb24sIE5hbWVzcGFjZSBjb21wbGlhbmNlLCAgYW5kIGEgbnVtYmVyIG9mIHNtYWxsCisgIHByb2JsZW1zCisKKworMi40LjI1OiBTZXAgMjYgMjAwMjoKKyAgIC0gQSBudW1iZXIgb2YgYnVnIGZpeGVzOiBYUGF0aCwgdmFsaWRhdGlvbiwgUHl0aG9uIGJpbmRpbmdzLCBET00gYW5kCisgICAgdHJlZSwgeG1sSS9PLCAgSHRtbAorICAgLSBTZXJpb3VzIHJld3JpdGUgb2YgWEluY2x1ZGUKKyAgIC0gTWFkZSBYTUwgU2NoZW1hcyByZWdleHAgcGFydCBvZiB0aGUgZGVmYXVsdCBidWlsZCBhbmQgQVBJcywgc21hbGwgZml4CisgICAgYW5kIGltcHJvdmVtZW50IG9mIHRoZSByZWdleHAgY29yZQorICAgLSBDaGFuZ2VkIHRoZSB2YWxpZGF0aW9uIGNvZGUgdG8gcmV1c2UgWE1MIFNjaGVtYXMgcmVnZXhwIEFQSXMKKyAgIC0gQmV0dGVyIGhhbmRsaW5nIG9mIFdpbmRvd3MgZmlsZSBwYXRocywgaW1wcm92ZW1lbnQgb2YgTWFrZWZpbGVzIChJZ29yLAorICAgIERhbmllbCBHZWhyaWdlciwgTWFyayBWYWtvYykKKyAgIC0gSW1wcm92ZWQgdGhlIHB5dGhvbiBJL08gYmluZGluZ3MsIHRoZSB0ZXN0cywgYWRkZWQgcmVzb2x2ZXIgYW5kIHJlZ2V4cAorICAgIEFQSXMKKyAgIC0gTmV3IGxvZ29zIGZyb20gTWFyYyBMaXlhbmFnZQorICAgLSBUdXRvcmlhbCBpbXByb3ZlbWVudHM6IEpvaG4gRmxlY2ssIENocmlzdG9waGVyIEhhcnJpcworICAgLSBNYWtlZmlsZTogRml4ZXMgZm9yIEFNRCB4ODZfNjQgKE1hbmRyYWtlKSwgREVTVERJUiAoQ2hyaXN0b3BoZQorICBNZXJsZXQpCisgICAtIHJlbW92YWwgb2YgYWxsIHN0ZGVyci9wZXJyb3IgdXNlIGZvciBlcnJvciByZXBvcnRpbmcKKyAgIC0gQmV0dGVyIGVycm9yIHJlcG9ydGluZzogWFBhdGggYW5kIERURCB2YWxpZGF0aW9uCisgICAtIHVwZGF0ZSBvZiB0aGUgdHJpbyBwb3J0YWJpbGl0eSBsYXllciAoQmpvcm4gUmVlc2UpCisKKzIuNC4yNDogQXVnIDIyIDIwMDIgICAtIFhQYXRoIGZpeGVzIChXaWxsaWFtKSwgeGY6ZXNjYXBlLXVyaSgpIChXZXNsZXkgVGVycHN0cmEpCisgICAtIFB5dGhvbiBiaW5kaW5nIGZpeGVzOiBtYWtlZmlsZXMgKFdpbGxpYW0pLCBnZW5lcmF0b3IsIHJwbSBidWlsZCwgeDg2LTY0CisgICAgKGZjcm96YXQpCisgICAtIEhUTUwgPHN0eWxlPiBhbmQgYm9vbGVhbiBhdHRyaWJ1dGVzIHNlcmlhbGl6ZXIgZml4ZXMKKyAgIC0gQzE0TiBpbXByb3ZlbWVudHMgYnkgQWxla3NleQorICAgLSBkb2MgY2xlYW51cHM6IFJpY2sgSm9uZXMKKyAgIC0gV2luZG93cyBjb21waWxlciBtYWtlZmlsZSB1cGRhdGVzOiBJZ29yIGFuZCBFbGl6YWJldGggQmFyaGFtCisgICAtIFhJbmNsdWRlOiBpbXBsZW1lbnRhdGlvbiBvZiBmYWxsYmFjayBhbmQgeG1sOmJhc2UgZml4dXAgYWRkZWQKKworCisyLjQuMjM6IEp1bHkgNiAyMDAyOgorICAgLSBwZXJmb3JtYW5jZXMgcGF0Y2hlczogUGV0ZXIgSmFjb2JpCisgICAtIGMxNG4gZml4ZXMsIHRlc3RzdWl0ZSBhbmQgcGVyZm9ybWFuY2VzOiBBbGVrc2V5IFNhbmluCisgICAtIGFkZGVkIHhtbERvY0Zvcm1hdER1bXA6IENoZW1hIENlbG9yaW8KKyAgIC0gbmV3IHR1dG9yaWFsOiBKb2huIEZsZWNrCisgICAtIG5ldyBoYXNoIGZ1bmN0aW9ucyBhbmQgcGVyZm9ybWFuY2VzOiBTYW5kZXIgVmVzaWssIHBvcnRhYmlsaXR5IGZpeCBmcm9tCisgICAgUGV0ZXIgSmFjb2JpCisgICAtIGEgbnVtYmVyIG9mIGJ1ZyBmaXhlczogWFBhdGggKFdpbGxpYW0gQnJhY2ssIFJpY2hhcmQgSmlua3MpLCBYTUwgYW5kCisgICAgSFRNTCBwYXJzZXJzLCBJRCBsb29rdXAgZnVuY3Rpb24KKyAgIC0gcmVtb3ZhbCBvZiBhbGwgcmVtYWluaW5nIHNwcmludGY6IEFsZWtzZXkgU2FuaW4KKworCisyLjQuMjI6IE1heSAyNyAyMDAyOgorICAgLSBhIG51bWJlciBvZiBidWcgZml4ZXM6IGNvbmZpZ3VyZSBzY3JpcHRzLCBiYXNlIGhhbmRsaW5nLCBwYXJzZXIsIG1lbW9yeQorICAgIHVzYWdlLCBIVE1MIHBhcnNlciwgWFBhdGgsIGRvY3VtZW50YXRpb24gKENocmlzdGlhbiBDb3JuZWxzc2VuKSwKKyAgICBpbmRlbnRhdGlvbiwgVVJJIHBhcnNpbmcKKyAgIC0gT3B0aW1pemF0aW9ucyBmb3IgWE1MU2VjLCBmaXhpbmcgYW5kIG1ha2luZyBwdWJsaWMgc29tZSBvZiB0aGUgbmV0d29yaworICAgIHByb3RvY29sIGhhbmRsZXJzIChBbGVrc2V5KQorICAgLSBwZXJmb3JtYW5jZSBwYXRjaCBmcm9tIEdhcnkgUGVubmluZ3RvbgorICAgLSBDaGFybGVzIEJvemVtYW4gcHJvdmlkZWQgZGF0ZSBhbmQgdGltZSBzdXBwb3J0IGZvciBYTUwgU2NoZW1hcworICBkYXRhdHlwZXMKKworCisyLjQuMjE6IEFwciAyOSAyMDAyOgorVGhpcyByZWxlYXNlIGlzIGJvdGggYSBidWcgZml4IHJlbGVhc2UgYW5kIGFsc28gY29udGFpbnMgdGhlIGVhcmx5IFhNTAorU2NoZW1hcyBzdHJ1Y3R1cmVzIGF0IAoraHR0cDovL3d3dy53My5vcmcvVFIveG1sc2NoZW1hLTEvCisgYW5kIGRhdGF0eXBlcyBhdCAKK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0yLworIGNvZGUsIGJld2FyZSwgYWxsCitpbnRlcmZhY2VzIGFyZSBsaWtlbHkgdG8gY2hhbmdlLCB0aGVyZSBpcyBodWdlIGhvbGVzLCBpdCBpcyBjbGVhcmx5IGEgd29yayBpbgorcHJvZ3Jlc3MgYW5kIGRvbid0IGV2ZW4gdGhpbmsgb2YgcHV0dGluZyB0aGlzIGNvZGUgaW4gYSBwcm9kdWN0aW9uIHN5c3RlbSwKK2l0J3MgYWN0dWFsbHkgbm90IGNvbXBpbGVkIGluIGJ5IGRlZmF1bHQuIFRoZSByZWFsIGZpeGVzIGFyZTogICAtIGEgY291cGxlIG9mIGJ1Z3Mgb3IgbGltaXRhdGlvbnMgaW50cm9kdWNlZCBpbiAyLjQuMjAKKyAgIC0gcGF0Y2hlcyBmb3IgQm9ybGFuZCBDKysgYW5kIE1TQyBieSBJZ29yCisgICAtIHNvbWUgZml4ZXMgb24gWFBhdGggc3RyaW5ncyBhbmQgY29uZm9ybWFuY2UgcGF0Y2hlcyBieSBSaWNoYXJkCisgIEppbmtzCisgICAtIHBhdGNoIGZyb20gQWxla3NleSBmb3IgdGhlIEV4Y0MxNE4gc3BlY2lmaWNhdGlvbgorICAgLSBPU0YvMSBidWcgZml4IGJ5IEJqb3JuCisKKworMi40LjIwOiBBcHIgMTUgMjAwMjoKKyAgIC0gYnVnIGZpeGVzOiBmaWxlIGRlc2NyaXB0b3IgbGVhaywgWFBhdGgsIEhUTUwgb3V0cHV0LCBEVEQgdmFsaWRhdGlvbgorICAgLSBYUGF0aCBjb25mb3JtYW5jZSB0ZXN0aW5nIGJ5IFJpY2hhcmQgSmlua3MKKyAgIC0gUG9ydGFiaWxpdHkgZml4ZXM6IFNvbGFyaXMsIE1QRS9pWCwgV2luZG93cywgT1NGLzEsIHB5dGhvbiBiaW5kaW5ncywKKyAgICBsaWJ4bWwubTQKKworCisyLjQuMTk6IE1hciAyNSAyMDAyOgorICAgLSBidWcgZml4ZXM6IGhhbGYgYSBkb3plbiBYUGF0aCBidWdzLCBWYWxpZGF0aW9uLCBJU08tTGF0aW4gdG8gVVRGOAorICAgIGVuY29kZXIKKyAgIC0gcG9ydGFiaWxpdHkgZml4ZXMgaW4gdGhlIEhUVFAgY29kZQorICAgLSBtZW1vcnkgYWxsb2NhdGlvbiBjaGVja3MgdXNpbmcgdmFsZ3JpbmQsIGFuZCBwcm9maWxpbmcgdGVzdHMKKyAgIC0gcmV2YW1wIG9mIHRoZSBXaW5kb3dzIGJ1aWxkIGFuZCBNYWtlZmlsZXMKKworCisyLjQuMTg6IE1hciAxOCAyMDAyOgorICAgLSBidWcgZml4ZXM6IHRyZWUsIFNBWCwgY2Fub25pY2FsaXphdGlvbiwgdmFsaWRhdGlvbiwgcG9ydGFiaWxpdHksCisgIFhQYXRoCisgICAtIHJlbW92ZWQgdGhlIC0td2l0aC1idWZmZXIgb3B0aW9uIGl0IHdhcyBiZWNvbWluZyB1bm1haW50YWluYWJsZQorICAgLSBzZXJpb3VzIGNsZWFudXAgb2YgdGhlIFB5dGhvbiBtYWtlZmlsZXMKKyAgIC0gc3BlZWR1cCBwYXRjaCB0byBYUGF0aCB2ZXJ5IGVmZmVjdGl2ZSBmb3IgRG9jQm9vayBzdHlsZXNoZWV0cworICAgLSBGaXhlcyBmb3IgV2luZG93cyBidWlsZCwgY2xlYW51cCBvZiB0aGUgZG9jdW1lbnRhdGlvbgorCisKKzIuNC4xNzogTWFyIDggMjAwMjoKKyAgIC0gYSBsb3Qgb2YgYnVnIGZpeGVzLCBpbmNsdWRpbmcgIm5hbWVzcGFjZSBub2RlcyBoYXZlIG5vIHBhcmVudHMgaW4KKyAgWFBhdGgiCisgICAtIGZpeGVkL2ltcHJvdmVkIHRoZSBQeXRob24gd3JhcHBlcnMsIGFkZGVkIG1vcmUgZXhhbXBsZXMgYW5kIG1vcmUKKyAgICByZWdyZXNzaW9uIHRlc3RzLCBYUGF0aCBleHRlbnNpb24gZnVuY3Rpb25zIGNhbiBub3cgcmV0dXJuIG5vZGUtc2V0cworICAgLSBhZGRlZCB0aGUgWE1MIENhbm9uaWNhbGl6YXRpb24gc3VwcG9ydCBmcm9tIEFsZWtzZXkgU2FuaW4KKworCisyLjQuMTY6IEZlYiAyMCAyMDAyOgorICAgLSBhIGxvdCBvZiBidWcgZml4ZXMsIG1vc3Qgb2YgdGhlbSB3ZXJlIHRyaWdnZXJlZCBieSB0aGUgWE1MIFRlc3RzdWl0ZQorICAgIGZyb20gT0FTSVMgYW5kIFczQy4gQ29tcGxpYW5jZSBoYXMgYmVlbiBzaWduaWZpY2FudGx5IGltcHJvdmVkLgorICAgLSBhIGNvdXBsZSBvZiBwb3J0YWJpbGl0eSBmaXhlcyB0b28uCisKKworMi40LjE1OiBGZWIgMTEgMjAwMjoKKyAgIC0gRml4ZWQgdGhlIE1ha2VmaWxlcywgZXNwZWNpYWxseSB0aGUgcHl0aG9uIG1vZHVsZSBvbmVzCisgICAtIEEgZmV3IGJ1ZyBmaXhlcyBhbmQgY2xlYW51cAorICAgLSBJbmNsdWRlcyBjbGVhbnVwCisKKworMi40LjE0OiBGZWIgOCAyMDAyOgorICAgLSBDaGFuZ2Ugb2YgTGljZW5zZSB0byB0aGUgTUlUCisgICAgTGljZW5zZSBiYXNpY2FsbHkgZm9yIGludGVncmF0aW9uIGluIFhGcmVlODYgY29kZWJhc2UsIGFuZCByZW1vdmluZworICAgIGNvbmZ1c2lvbiBhcm91bmQgdGhlIHByZXZpb3VzIGR1YWwtbGljZW5zaW5nCisgICAtIGFkZGVkIFB5dGhvbiBiaW5kaW5ncywgYmV0YSBzb2Z0d2FyZSBidXQgc2hvdWxkIGFscmVhZHkgYmUgcXVpdGUKKyAgICBjb21wbGV0ZQorICAgLSBhIGxhcmdlIG51bWJlciBvZiBmaXhlcyBhbmQgY2xlYW51cHMsIGVzcGVjaWFsbHkgZm9yIGFsbCB0cmVlCisgICAgbWFuaXB1bGF0aW9ucworICAgLSBjbGVhbnVwIG9mIHRoZSBoZWFkZXJzLCBnZW5lcmF0aW9uIG9mIGEgcmVmZXJlbmNlIEFQSSBkZWZpbml0aW9uIGluCisgIFhNTAorCisKKzIuNC4xMzogSmFuIDE0IDIwMDI6CisgICAtIHVwZGF0ZSBvZiB0aGUgZG9jdW1lbnRhdGlvbjogSm9obiBGbGVjayBhbmQgQ2hhcmxpZSBCb3plbWFuCisgICAtIGNsZWFudXAgb2YgdGltaW5nIGNvZGUgZnJvbSBKdXN0aW4gRmxldGNoZXIKKyAgIC0gZml4ZXMgZm9yIFdpbmRvd3MgYW5kIGluaXRpYWwgdGhyZWFkIHN1cHBvcnQgb24gV2luMzI6IElnb3IgYW5kIFNlcmd1ZWkKKyAgICBOYXJvam55aQorICAgLSBDeWd3aW4gcGF0Y2ggZnJvbSBSb2JlcnQgQ29sbGlucworICAgLSBhZGRlZCB4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jKCkgZm9yIEtlaXRoIElzZGFsZSB3b3JrIG9uIHhzbGRiZworCisKKzIuNC4xMjogRGVjIDcgMjAwMToKKyAgIC0gYSBmZXcgYnVnIGZpeGVzOiB0aHJlYWQgKEdhcnkgUGVubmluZ3RvbiksIHhtbGxpbnQgKEdlZXJ0IEtsb29zdGVybWFuKSwKKyAgICBYTUwgcGFyc2VyIChSb2JpbiBCZXJqb24pLCBYUG9pbnRlciAoRGFubnkgSmFtc2h5KSwgSS9PIGNsZWFudXBzCisgIChyb2JlcnQpCisgICAtIEVyaWMgTGF2aWduZSBjb250cmlidXRlZCBwcm9qZWN0IGZpbGVzIGZvciBNYWNPUworICAgLSBzb21lIG1ha2VmaWxlcyBjbGVhbnVwcworCisKKzIuNC4xMTogTm92IDI2IDIwMDE6CisgICAtIGZpeGVkIGEgY291cGxlIG9mIGVycm9ycyBpbiB0aGUgaW5jbHVkZXMsIGZpeGVkIGEgZmV3IGJ1Z3MsIHNvbWUgY29kZQorICAgIGNsZWFudXBzCisgICAtIHhtbGxpbnQgbWFuIHBhZ2VzIGltcHJvdmVtZW50IGJ5IEhlaWtvIFJ1cHAKKyAgIC0gdXBkYXRlZCBWTVMgYnVpbGQgaW5zdHJ1Y3Rpb25zIGZyb20gSm9obiBBIEZvdGhlcmluZ2hhbQorICAgLSBXaW5kb3dzIE1ha2VmaWxlcyB1cGRhdGVzIGZyb20gSWdvcgorCisKKzIuNC4xMDogTm92IDEwIDIwMDE6CisgICAtIFVSSSBlc2NhcGluZyBmaXggKEpvZWwgWW91bmcpCisgICAtIGFkZGVkIHhtbEdldE5vZGVQYXRoKCkgKGZvciBwYXRocyBvciBYUG9pbnRlcnMgZ2VuZXJhdGlvbikKKyAgIC0gRml4ZXMgbmFtZXNwYWNlIGhhbmRsaW5nIHByb2JsZW1zIHdoZW4gdXNpbmcgRFREIGFuZCB2YWxpZGF0aW9uCisgICAtIGltcHJvdmVtZW50cyBvbiB4bWxsaW50OiBNb3J1cyBXYWx0ZXIgcGF0Y2hlcyBmb3IgLS1mb3JtYXQgYW5kCisgICAgLS1lbmNvZGUsIFN0ZWZhbiBLb3N0IGFuZCBIZWlrbyBSdXBwIGltcHJvdmVtZW50cyBvbiB0aGUgLS1zaGVsbAorICAgLSBmaXhlcyBmb3IgeG1sY2F0YWxvZyBsaW5raW5nIHBvaW50ZWQgYnkgV2VpcWkgR2FvCisgICAtIGZpeGVzIHRvIHRoZSBIVE1MIHBhcnNlcgorCisKKzIuNC45OiBOb3YgNiAyMDAxOgorICAgLSBmaXhlcyBtb3JlIGNhdGFsb2cgYnVncworICAgLSBhdm9pZCBhIGNvbXBpbGF0aW9uIHByb2JsZW0sIGltcHJvdmUgeG1sR2V0TGluZU5vKCkKKworCisyLjQuODogTm92IDQgMjAwMToKKyAgIC0gZml4ZWQgU0dNTCBjYXRhbG9ncyBicm9rZW4gaW4gcHJldmlvdXMgcmVsZWFzZSwgdXBkYXRlZCB4bWxjYXRhbG9nCisgIHRvb2wKKyAgIC0gZml4ZWQgYSBjb21waWxlIGVycm9ycyBhbmQgc29tZSBpbmNsdWRlcyB0cm91Ymxlcy4KKworCisyLjQuNzogT2N0IDMwIDIwMDE6CisgICAtIGV4cG9ydGVkIHNvbWUgZGVidWdnaW5nIGludGVyZmFjZXMKKyAgIC0gc2VyaW91cyByZXdyaXRlIG9mIHRoZSBjYXRhbG9nIGNvZGUKKyAgIC0gaW50ZWdyYXRlZCBHYXJ5IFBlbm5pbmd0b24gdGhyZWFkIHNhZmV0eSBwYXRjaCwgYWRkZWQgY29uZmlndXJlIG9wdGlvbgorICAgIGFuZCByZWdyZXNzaW9uIHRlc3RzCisgICAtIHJlbW92ZWQgYW4gSFRNTCBwYXJzZXIgYnVnCisgICAtIGZpeGVkIGEgY291cGxlIG9mIHBvdGVudGlhbGx5IHNlcmlvdXMgdmFsaWRhdGlvbiBidWdzCisgICAtIGludGVncmF0ZWQgdGhlIFNHTUwgRG9jQm9vayBzdXBwb3J0IGluIHhtbGxpbnQKKyAgIC0gY2hhbmdlZCB0aGUgbmFub2Z0cCBhbm9ueW1vdXMgbG9naW4gcGFzc3dkCisgICAtIHNvbWUgSS9PIGNsZWFudXAgYW5kIGEgY291cGxlIG9mIGludGVyZmFjZXMgZm9yIFBlcmwgd3JhcHBlcgorICAgLSBnZW5lcmFsIGJ1ZyBmaXhlcworICAgLSB1cGRhdGVkIHhtbGxpbnQgbWFuIHBhZ2UgYnkgSm9obiBGbGVjaworICAgLSBzb21lIFZNUyBhbmQgV2luZG93cyB1cGRhdGVzCisKKworMi40LjY6IE9jdCAxMCAyMDAxOgorICAgLSBhZGRlZCBhbiB1cGRhdGVkIG1hbiBwYWdlcyBieSBKb2huIEZsZWNrCisgICAtIHBvcnRhYmlsaXR5IGFuZCBjb25maWd1cmUgZml4ZXMKKyAgIC0gYW4gaW5maW5pdGUgbG9vcCBvbiB0aGUgSFRNTCBwYXJzZXIgd2FzIHJlbW92ZWQgKFdpbGxpYW0pCisgICAtIFdpbmRvd3MgbWFrZWZpbGUgcGF0Y2hlcyBmcm9tIElnb3IKKyAgIC0gZml4ZWQgaGFsZiBhIGRvemVuIGJ1Z3MgcmVwb3J0ZWQgZm9yIGxpYnhtbCBvciBsaWJ4c2x0CisgICAtIHVwZGF0ZWQgeG1sY2F0YWxvZyB0byBiZSBhYmxlIHRvIG1vZGlmeSBTR01MIHN1cGVyIGNhdGFsb2dzCisKKworMi40LjU6IFNlcCAxNCAyMDAxOgorICAgLSBSZW1vdmUgYSBmZXcgYW5ub3lpbmcgYnVncyBpbiAyLjQuNAorICAgLSBmb3JjZXMgdGhlIEhUTUwgc2VyaWFsaXplciB0byBvdXRwdXQgZGVjaW1hbCBjaGFycmVmcyBzaW5jZSBzb21lCisgICAgdmVyc2lvbiBvZiBOZXRzY2FwZSBjYW4ndCBoYW5kbGUgaGV4YWRlY2ltYWwgb25lcworCisKKzEuOC4xNjogU2VwIDE0IDIwMDE6CisgICAtIG1haW50ZW5hbmNlIHJlbGVhc2Ugb2YgdGhlIG9sZCBsaWJ4bWwxIGJyYW5jaCwgY291cGxlIG9mIGJ1ZyBhbmQKKyAgICBwb3J0YWJpbGl0eSBmaXhlcworCisKKzIuNC40OiBTZXAgMTIgMjAwMToKKyAgIC0gYWRkZWQgLS1jb252ZXJ0IHRvIHhtbGNhdGFsb2csIGJ1ZyBmaXhlcyBhbmQgY2xlYW51cHMgb2YgWE1MCisgIENhdGFsb2cKKyAgIC0gYSBmZXcgYnVnIGZpeGVzIGFuZCBzb21lIHBvcnRhYmlsaXR5IGNoYW5nZXMKKyAgIC0gc29tZSBkb2N1bWVudGF0aW9uIGNsZWFudXBzCisKKworMi40LjM6ICBBdWcgMjMgMjAwMToKKyAgIC0gWE1MIENhdGFsb2cgc3VwcG9ydCBzZWUgdGhlIGRvYworICAgLSBOZXcgTmFOL0luZmluaXR5IGZsb2F0aW5nIHBvaW50IGNvZGUKKyAgIC0gQSBmZXcgYnVnIGZpeGVzCisKKworMi40LjI6ICBBdWcgMTUgMjAwMToKKyAgIC0gYWRkcyB4bWxMaW5lTnVtYmVyc0RlZmF1bHQoKSB0byBjb250cm9sIGxpbmUgbnVtYmVyIGdlbmVyYXRpb24KKyAgIC0gbG90IG9mIGJ1ZyBmaXhlcworICAgLSB0aGUgTWljcm9zb2Z0IE1TQyBwcm9qZWN0cyBmaWxlcyBzaG91bGQgbm93IGJlIHVwIHRvIGRhdGUKKyAgIC0gaW5oZXJpdGFuY2Ugb2YgbmFtZXNwYWNlcyBmcm9tIERURCBkZWZhdWx0ZWQgYXR0cmlidXRlcworICAgLSBmaXhlcyBhIHNlcmlvdXMgcG90ZW50aWFsIHNlY3VyaXR5IGJ1ZworICAgLSBhZGRlZCBhIC0tZm9ybWF0IG9wdGlvbiB0byB4bWxsaW50CisKKworMi40LjE6ICBKdWx5IDI0IDIwMDE6CisgICAtIHBvc3NpYmlsaXR5IHRvIGtlZXAgbGluZSBudW1iZXJzIGluIHRoZSB0cmVlCisgICAtIHNvbWUgY29tcHV0YXRpb24gTmFOIGZpeGVzCisgICAtIGV4dGVuc2lvbiBvZiB0aGUgWFBhdGggQVBJCisgICAtIGNsZWFudXAgZm9yIGFscGhhIGFuZCBpYTY0IHRhcmdldHMKKyAgIC0gcGF0Y2ggdG8gYWxsb3cgc2F2aW5nIHRocm91Z2ggSFRUUCBQVVQgb3IgUE9TVAorCisKKzIuNC4wOiBKdWx5IDEwIDIwMDE6CisgICAtIEZpeGVkIGEgZmV3IGJ1Z3MgaW4gWFBhdGgsIHZhbGlkYXRpb24sIGFuZCB0cmVlIGhhbmRsaW5nLgorICAgLSBGaXhlZCBYTUwgQmFzZSBpbXBsZW1lbnRhdGlvbiwgYWRkZWQgYSBjb3VwbGUgb2YgZXhhbXBsZXMgdG8gdGhlCisgICAgcmVncmVzc2lvbiB0ZXN0cworICAgLSBBIGJpdCBvZiBjbGVhbnVwCisKKworMi4zLjE0OiBKdWx5IDUgMjAwMToKKyAgIC0gZml4ZWQgc29tZSBlbnRpdGllcyBwcm9ibGVtcyBhbmQgcmVkdWNlIG1lbW9yeSByZXF1aXJlbWVudCB3aGVuCisgICAgc3Vic3RpdHV0aW5nIHRoZW0KKyAgIC0gbG90cyBvZiBpbXByb3ZlbWVudHMgaW4gdGhlIFhQYXRoIHF1ZXJpZXMgaW50ZXJwcmV0ZXIgY2FuIGJlCisgICAgc3Vic3RhbnRpYWxseSBmYXN0ZXIKKyAgIC0gTWFrZWZpbGVzIGFuZCBjb25maWd1cmUgY2xlYW51cHMKKyAgIC0gRml4ZXMgdG8gWFBhdGggdmFyaWFibGUgZXZhbCwgYW5kIGNvbXBhcmUgb24gZW1wdHkgbm9kZSBzZXQKKyAgIC0gSFRNTCB0YWcgY2xvc2luZyBidWcgZml4ZWQKKyAgIC0gRml4ZWQgYW4gVVJJIHJlZmVyZW5jZSBjb21wdXRhdGlvbiBwcm9ibGVtIHdoZW4gdmFsaWRhdGluZworCisKKzIuMy4xMzogSnVuZSAyOCAyMDAxOgorICAgLSAyLjMuMTIgY29uZmlndXJlLmluIHdhcyBicm9rZW4gYXMgd2VsbCBhcyB0aGUgcHVzaCBtb2RlIFhNTCBwYXJzZXIKKyAgIC0gYSBmZXcgbW9yZSBmaXhlcyBmb3IgY29tcGlsYXRpb24gb24gV2luZG93cyBNU0MgYnkgWW9uIERlcmVrCisKKworMS44LjE0OiBKdW5lIDI4IDIwMDE6CisgICAtIFpiaWduaWV3IENoeWxhIGdhdmUgYSBwYXRjaCB0byB1c2UgdGhlIG9sZCBYTUwgcGFyc2VyIGluIHB1c2ggbW9kZQorICAgLSBTbWFsbCBNYWtlZmlsZSBmaXgKKworCisyLjMuMTI6IEp1bmUgMjYgMjAwMToKKyAgIC0gbG90cyBvZiBjbGVhbnVwCisgICAtIGEgY291cGxlIG9mIHZhbGlkYXRpb24gZml4CisgICAtIGZpeGVkIGxpbmUgbnVtYmVyIGNvdW50aW5nCisgICAtIGZpeGVkIHNlcmlvdXMgcHJvYmxlbXMgaW4gdGhlIFhJbmNsdWRlIHByb2Nlc3NpbmcKKyAgIC0gYWRkZWQgc3VwcG9ydCBmb3IgVVRGOCBCT00gYXQgYmVnaW5uaW5nIG9mIGVudGl0aWVzCisgICAtIGZpeGVkIGEgc3RyYW5nZSBnY2Mgb3B0aW1pemVyIGJ1Z3MgaW4geHBhdGggaGFuZGxpbmcgb2YgZmxvYXQsIGdjYy0zLjAKKyAgICBtaXNjb21waWxlIHVyaS5jIChXaWxsaWFtKSwgVGhvbWFzIExlaXRuZXIgcHJvdmlkZWQgYSBmaXggZm9yIHRoZQorICAgIG9wdGltaXplciBvbiBUcnU2NAorICAgLSBpbmNvcnBvcmF0ZWQgWW9uIERlcmVrIGFuZCBJZ29yIFpsYXRrb3ZpYyAgZml4ZXMgYW5kIGltcHJvdmVtZW50cyBmb3IKKyAgICBjb21waWxhdGlvbiBvbiBXaW5kb3dzIE1TQworICAgLSB1cGRhdGUgb2YgbGlieG1sLWRvYy5lbCAoRmVsaXggTmF0dGVyKQorICAgLSBmaXhlZCAyIGJ1Z3MgaW4gVVJJIG5vcm1hbGl6YXRpb24gY29kZQorCisKKzIuMy4xMTogSnVuZSAxNyAyMDAxOgorICAgLSB1cGRhdGVzIHRvIHRyaW8sIE1ha2VmaWxlcyBhbmQgY29uZmlndXJlIHNob3VsZCBmaXggc29tZSBwb3J0YWJpbGl0eQorICAgIHByb2JsZW1zIChhbHBoYSkKKyAgIC0gZml4ZWQgc29tZSBIVE1MIHNlcmlhbGl6YXRpb24gcHJvYmxlbXMgKHByZSwgc2NyaXB0LCBhbmQgYmxvY2svaW5saW5lCisgICAgaGFuZGxpbmcpLCBhZGRlZCBlbmNvZGluZyBhd2FyZSBBUElzLCBjbGVhbnVwIG9mIHRoaXMgY29kZQorICAgLSBhZGRlZCB4bWxIYXNOc1Byb3AoKQorICAgLSBpbXBsZW1lbnRlZCBhIHNwZWNpZmljIFBJIGZvciBlbmNvZGluZyBzdXBwb3J0IGluIHRoZSBEb2NCb29rIFNHTUwKKyAgICBwYXJzZXIKKyAgIC0gc29tZSBYUGF0aCBmaXhlcyAoLUluZmluaXR5LCAvIGFzIGEgZnVuY3Rpb24gcGFyYW1ldGVyIGFuZCBuYW1lc3BhY2VzCisgICAgbm9kZSBzZWxlY3Rpb24pCisgICAtIGZpeGVkIGEgcGVyZm9ybWFuY2UgcHJvYmxlbSBhbmQgYW4gZXJyb3IgaW4gdGhlIHZhbGlkYXRpb24gY29kZQorICAgLSBmaXhlZCBYSW5jbHVkZSByb3V0aW5lIHRvIGltcGxlbWVudCB0aGUgcmVjdXJzaXZlIGJlaGF2aW91cgorICAgLSBmaXhlZCB4bWxGcmVlTm9kZSBwcm9ibGVtIHdoZW4gbGlieG1sIGlzIGluY2x1ZGVkIHN0YXRpY2FsbHkgdHdpY2UKKyAgIC0gYWRkZWQgLS12ZXJzaW9uIHRvIHhtbGxpbnQgZm9yIGJ1ZyByZXBvcnRzCisKKworMi4zLjEwOiBKdW5lIDEgMjAwMToKKyAgIC0gZml4ZWQgdGhlIFNHTUwgY2F0YWxvZyBzdXBwb3J0CisgICAtIGEgbnVtYmVyIG9mIHJlcG9ydGVkIGJ1Z3MgZ290IGZpeGVkLCBpbiBYUGF0aCwgaWNvbnYgZGV0ZWN0aW9uLAorICAgIFhJbmNsdWRlIHByb2Nlc3NpbmcKKyAgIC0gWFBhdGggc3RyaW5nIGZ1bmN0aW9uIHNob3VsZCBub3cgaGFuZGxlIHVuaWNvZGUgY29ycmVjdGx5CisKKworMi4zLjk6IE1heSAxOSAyMDAxOgorTG90cyBvZiBidWdmaXhlcywgYW5kIGFkZGVkIGEgYmFzaWMgU0dNTCBjYXRhbG9nIHN1cHBvcnQ6ICAgLSBIVE1MIHB1c2ggYnVnZml4ICM1NDg5MSBhbmQgYW5vdGhlciBwYXRjaCBmcm9tIEpvbmFzIEJvcmdzdHLDg8K2bQorICAgLSBzb21lIHNlcmlvdXMgc3BlZWQgb3B0aW1pemF0aW9uIGFnYWluCisgICAtIHNvbWUgZG9jdW1lbnRhdGlvbiBjbGVhbnVwcworICAgLSB0cnlpbmcgdG8gZ2V0IGJldHRlciBsaW5raW5nIG9uIFNvbGFyaXMgKC1SKQorICAgLSBYUGF0aCBBUEkgY2xlYW51cCBmcm9tIFRob21hcyBCcm95ZXIKKyAgIC0gVmFsaWRhdGlvbiBidWcgZml4ZWQgIzU0NjMxLCBhZGRlZCBhIHBhdGNoIGZyb20gR2FyeSBQZW5uaW5ndG9uLCBmaXhlZAorICAgIHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cygpCisgICAtIEFkZGVkIGFuIElOU1RBTEwgZmlsZQorICAgLSBBdHRyaWJ1dGUgcmVtb3ZhbCBhZGRlZCB0byBBUEk6ICM1NDQzMworICAgLSBhZGRlZCBhIGJhc2ljIHN1cHBvcnQgZm9yIFNHTUwgY2F0YWxvZ3MKKyAgIC0gZml4ZWQgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgQVBJCisgICAtIGJ1Z2ZpeCBpbiB4bWxOb2RlR2V0TGFuZygpCisgICAtIGZpeGVkIGEgc21hbGwgY29uZmlndXJlIHBvcnRhYmlsaXR5IHByb2JsZW0KKyAgIC0gZml4ZWQgYW4gaW52ZXJzaW9uIG9mIFNZU1RFTSBhbmQgUFVCTElDIGlkZW50aWZpZXIgaW4gSFRNTCBkb2N1bWVudAorCisKKzEuOC4xMzogTWF5IDE0IDIwMDE6CisgICAtIGJ1Z2ZpeGVzIHJlbGVhc2Ugb2YgdGhlIG9sZCBsaWJ4bWwxIGJyYW5jaCB1c2VkIGJ5IEdub21lCisKKworMi4zLjg6IE1heSAzIDIwMDE6CisgICAtIEludGVncmF0ZWQgYW4gU0dNTCBEb2NCb29rIHBhcnNlciBmb3IgdGhlIEdub21lIHByb2plY3QKKyAgIC0gRml4ZWQgYSBmZXcgdGhpbmdzIGluIHRoZSBIVE1MIHBhcnNlcgorICAgLSBGaXhlZCBzb21lIFhQYXRoIGJ1Z3MgcmFpc2VkIGJ5IFhTTFQgdXNlLCB0cmllZCB0byBmaXggdGhlIGZsb2F0aW5nCisgICAgcG9pbnQgcG9ydGFiaWxpdHkgaXNzdWUKKyAgIC0gU3BlZWQgaW1wcm92ZW1lbnQgKDhNL3MgZm9yIFNBWCwgM00vcyBmb3IgRE9NLCAxLjVNL3MgZm9yCisgICAgRE9NK3ZhbGlkYXRpb24gdXNpbmcgdGhlIFhNTCBSRUMgYXMgaW5wdXQgYW5kIGEgNzAwTUh6IGNlbGVyb24pLgorICAgLSBpbmNvcnBvcmF0ZWQgbW9yZSBXaW5kb3dzIGNsZWFudXAKKyAgIC0gYWRkZWQgeG1sU2F2ZUZvcm1hdEZpbGUoKQorICAgLSBmaXhlZCBwcm9ibGVtcyBpbiBjb3B5aW5nIG5vZGVzIHdpdGggZW50aXRpZXMgcmVmZXJlbmNlcyAoZ2RvbWUpCisgICAtIHJlbW92ZWQgc29tZSB0cm91YmxlcyBzdXJyb3VuZGluZyB0aGUgbmV3IHZhbGlkYXRpb24gbW9kdWxlCisKKworMi4zLjc6IEFwcmlsIDIyIDIwMDE6CisgICAtIGxvdHMgb2Ygc21hbGwgYnVnIGZpeGVzLCBjb3JyZWN0ZWQgWFBvaW50ZXIKKyAgIC0gTm9uIGRldGVybWluaXN0aWMgY29udGVudCBtb2RlbCB2YWxpZGF0aW9uIHN1cHBvcnQKKyAgIC0gYWRkZWQgeG1sRG9jQ29weU5vZGUgZm9yIGdkb21lMgorICAgLSByZXZhbXBlZCB0aGUgd2F5IHRoZSBIVE1MIHBhcnNlciBoYW5kbGVzIGVuZCBvZiB0YWdzCisgICAtIFhQYXRoOiBjb3JyZWN0aW9ucyBvZiBuYW1lc3BhY2VzIHN1cHBvcnQgYW5kIG51bWJlciBmb3JtYXR0aW5nCisgICAtIFdpbmRvd3M6IElnb3IgWmxhdGtvdmljIHBhdGNoZXMgZm9yIE1TQyBjb21waWxhdGlvbgorICAgLSBIVE1MIG91dHB1dCBmaXhlcyBmcm9tIFAgQyBDaG93IGFuZCBXaWxsaWFtIE0uIEJyYWNrCisgICAtIEltcHJvdmVkIHZhbGlkYXRpb24gc3BlZWQgc2Vuc2libGUgZm9yIERvY0Jvb2sKKyAgIC0gZml4ZWQgYSBiaWcgYnVnIHdpdGggSUQgZGVjbGFyZWQgaW4gZXh0ZXJuYWwgcGFyc2VkIGVudGl0aWVzCisgICAtIHBvcnRhYmlsaXR5IGZpeGVzLCB1cGRhdGUgb2YgVHJpbyBmcm9tIEJqb3JuIFJlZXNlCisKKworMi4zLjY6IEFwcmlsIDggMjAwMToKKyAgIC0gQ29kZSBjbGVhbnVwIHVzaW5nIGV4dHJlbWUgZ2NjIGNvbXBpbGVyIHdhcm5pbmcgb3B0aW9ucywgZm91bmQgYW5kCisgICAgY2xlYXJlZCBoYWxmIGEgZG96ZW4gcG90ZW50aWFsIHByb2JsZW0KKyAgIC0gdGhlIEVhemVsIHRlYW0gZm91bmQgYW4gWE1MIHBhcnNlciBidWcKKyAgIC0gY2xlYW5lZCB1cCB0aGUgdXNlciBvZiBzb21lIG9mIHRoZSBzdHJpbmcgZm9ybWF0dGluZyBmdW5jdGlvbi4gdXNlZCB0aGUKKyAgICB0cmlvIGxpYnJhcnkgY29kZSB0byBwcm92aWRlIHRoZSBvbmUgbmVlZGVkIHdoZW4gdGhlIHBsYXRmb3JtIGlzIG1pc3NpbmcKKyAgICB0aGVtCisgICAtIHhwYXRoOiByZW1vdmVkIGEgbWVtb3J5IGxlYWsgYW5kIGZpeGVkIHRoZSBwcmVkaWNhdGUgZXZhbHVhdGlvbgorICAgIHByb2JsZW0sIGV4dGVuZGVkIHRoZSB0ZXN0c3VpdGUgYW5kIGNsZWFuZWQgdXAgdGhlIHJlc3VsdC4gWFBvaW50ZXIgc2VlbXMKKyAgICBicm9rZW4gLi4uCisKKworMi4zLjU6IE1hciAyMyAyMDAxOgorICAgLSBCaWdnZXN0IGNoYW5nZSBpcyBzZXBhcmF0ZSBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIG9mIFhQYXRoIGV4cHJlc3Npb25zLAorICAgIHRoZXJlIGlzIHNvbWUgbmV3IEFQSXMgZm9yIHRoaXMgdG9vCisgICAtIGluY2x1ZGVkIGEgbnVtYmVyIG9mIGJ1ZyBmaXhlcyhYTUwgcHVzaCBwYXJzZXIsIDUxODc2LCBub3RhdGlvbnMsCisgIDUyMjk5KQorICAgLSBGaXhlZCBzb21lIHBvcnRhYmlsaXR5IGlzc3VlcworCisKKzIuMy40OiBNYXIgMTAgMjAwMToKKyAgIC0gRml4ZWQgYnVncyAjNTE4NjAgYW5kICM1MTg2MQorICAgLSBBZGRlZCBhIGdsb2JhbCB2YXJpYWJsZSB4bWxEZWZhdWx0QnVmZmVyU2l6ZSB0byBhbGxvdyBkZWZhdWx0IGJ1ZmZlcgorICAgIHNpemUgdG8gYmUgYXBwbGljYXRpb24gdHVuYWJsZS4KKyAgIC0gU29tZSBjbGVhbnVwIGluIHRoZSB2YWxpZGF0aW9uIGNvZGUsIHN0aWxsIGEgYnVnIGxlZnQgYW5kIHRoaXMgcGFydAorICAgIHNob3VsZCBwcm9iYWJseSBiZSByZXdyaXR0ZW4gdG8gc3VwcG9ydCBhbWJpZ3VvdXMgY29udGVudCBtb2RlbCA6LVwKKyAgIC0gRml4IGEgY291cGxlIG9mIHNlcmlvdXMgYnVncyBpbnRyb2R1Y2VkIG9yIHJhaXNlZCBieSBjaGFuZ2VzIGluIDIuMy4zCisgICAgcGFyc2VyCisgICAtIEZpeGVkIGFub3RoZXIgYnVnIGluIHhtbE5vZGVHZXRDb250ZW50KCkKKyAgIC0gQmpvcm4gZml4ZWQgWFBhdGggbm9kZSBjb2xsZWN0aW9uIGFuZCBOdW1iZXIgZm9ybWF0dGluZworICAgLSBGaXhlZCBhIGxvb3AgcmVwb3J0ZWQgaW4gdGhlIEhUTUwgcGFyc2luZworICAgLSBibGFuayBzcGFjZSBhcmUgcmVwb3J0ZWQgZXZlbiBpZiB0aGUgRHRkIGNvbnRlbnQgbW9kZWwgcHJvdmVzIHRoYXQgdGhleQorICAgIGFyZSBmb3JtYXR0aW5nIHNwYWNlcywgdGhpcyBpcyBmb3IgWE1MIGNvbmZvcm1hbmNlCisKKworMi4zLjM6IE1hciAxIDIwMDE6CisgICAtIHNtYWxsIGNoYW5nZSBpbiBYUGF0aCBmb3IgWFNMVAorICAgLSBkb2N1bWVudGF0aW9uIGNsZWFudXBzCisgICAtIGZpeCBpbiB2YWxpZGF0aW9uIGJ5IEdhcnkgUGVubmluZ3RvbgorICAgLSBzZXJpb3VzIHBhcnNpbmcgcGVyZm9ybWFuY2VzIGltcHJvdmVtZW50cworCisKKzIuMy4yOiBGZWIgMjQgMjAwMToKKyAgIC0gY2hhc2luZyBYUGF0aCBidWdzLCBmb3VuZCBhIGJ1bmNoLCBjb21wbGV0ZWQgc29tZSBUT0RPCisgICAtIGZpeGVkIGEgRHRkIHBhcnNpbmcgYnVnCisgICAtIGZpeGVkIGEgYnVnIGluIHhtbE5vZGVHZXRDb250ZW50CisgICAtIElEL0lEUkVGIHN1cHBvcnQgcGFydGx5IHJld3JpdHRlbiBieSBHYXJ5IFBlbm5pbmd0b24KKworCisyLjMuMTogRmViIDE1IDIwMDE6CisgICAtIHNvbWUgWFBhdGggYW5kIEhUTUwgYnVnIGZpeGVzIGZvciBYU0xUCisgICAtIHNtYWxsIGV4dGVuc2lvbiBvZiB0aGUgaGFzaCB0YWJsZSBpbnRlcmZhY2VzIGZvciBET00gZ2RvbWUyCisgICAgaW1wbGVtZW50YXRpb24KKyAgIC0gQSBmZXcgYnVnIGZpeGVzCisKKworMi4zLjA6IEZlYiA4IDIwMDEgKDIuMi4xMiB3YXMgb24gMjUgSmFuIGJ1dCBJIGRpZG4ndCBrZXB0IHRyYWNrKToKKyAgIC0gTG90cyBvZiBYUGF0aCBidWcgZml4ZXMKKyAgIC0gQWRkIGEgbW9kZSB3aXRoIER0ZCBsb29rdXAgYnV0IHdpdGhvdXQgdmFsaWRhdGlvbiBlcnJvciByZXBvcnRpbmcgZm9yCisgICAgWFNMVAorICAgLSBBZGQgc3VwcG9ydCBmb3IgdGV4dCBub2RlIHdpdGhvdXQgZXNjYXBpbmcgKFhTTFQpCisgICAtIGJ1ZyBmaXhlcyBmb3IgeG1sQ2hlY2tGaWxlbmFtZQorICAgLSB2YWxpZGF0aW9uIGNvZGUgYnVnIGZpeGVzIGZyb20gR2FyeSBQZW5uaW5ndG9uCisgICAtIFBhdGNoIGZyb20gUGF1bCBELiBTbWl0aCBjb3JyZWN0aW5nIFVSSSBwYXRoIG5vcm1hbGl6YXRpb24KKyAgIC0gUGF0Y2ggdG8gYWxsb3cgc2ltdWx0YW5lb3VzIGluc3RhbGwgb2YgbGlieG1sLWRldmVsIGFuZAorICBsaWJ4bWwyLWRldmVsCisgICAtIHRoZSBleGFtcGxlIE1ha2VmaWxlIGlzIG5vdyBmaXhlZAorICAgLSBhZGRlZCBIVE1MIHRvIHRoZSBSUE0gcGFja2FnZXMKKyAgIC0gdHJlZSBjb3B5aW5nIGJ1Z2ZpeGVzCisgICAtIHVwZGF0ZXMgdG8gV2luZG93cyBtYWtlZmlsZXMKKyAgIC0gb3B0aW1pemF0aW9uIHBhdGNoIGZyb20gQmpvcm4gUmVlc2UKKworCisyLjIuMTE6IEphbiA0IDIwMDE6CisgICAtIGJ1bmNoIG9mIGJ1ZyBmaXhlcyAobWVtb3J5IEkvTywgeHBhdGgsIGZ0cC9odHRwLCAuLi4pCisgICAtIGFkZGVkIGh0bWxIYW5kbGVPbWl0dGVkRWxlbSgpCisgICAtIEFwcGxpZWQgQmpvcm4gUmVlc2UncyBJUFY2IGZpcnN0IHBhdGNoCisgICAtIEFwcGxpZWQgUGF1bCBELiBTbWl0aCBwYXRjaGVzIGZvciB2YWxpZGF0aW9uIG9mIFhJbmNsdWRlIHJlc3VsdHMKKyAgIC0gYWRkZWQgWFBvaW50ZXIgeG1sbnMoKSBuZXcgc2NoZW1lIHN1cHBvcnQKKworCisyLjIuMTA6IE5vdiAyNSAyMDAwOgorICAgLSBGaXggdGhlIFdpbmRvd3MgcHJvYmxlbXMgb2YgMi4yLjgKKyAgIC0gaW50ZWdyYXRlIE9wZW5WTVMgcGF0Y2hlcworICAgLSBiZXR0ZXIgaGFuZGxpbmcgb2Ygc29tZSBuYXN0eSBIVE1MIGlucHV0CisgICAtIEltcHJvdmVkIHRoZSBYUG9pbnRlciBpbXBsZW1lbnRhdGlvbgorICAgLSBpbnRlZ3JhdGUgYSBudW1iZXIgb2YgcHJvdmlkZWQgcGF0Y2hlcworCisKKzIuMi45OiBOb3YgMjUgMjAwMDoKKyAgIC0gZXJyb25lb3VzIHJlbGVhc2UgOi0oCisKKworMi4yLjg6IE5vdiAxMyAyMDAwOgorICAgLSBGaXJzdCB2ZXJzaW9uIG9mIFhJbmNsdWRlCisgICAgc3VwcG9ydAorICAgLSBQYXRjaCBpbiBjb25kaXRpb25hbCBzZWN0aW9uIGhhbmRsaW5nCisgICAtIHVwZGF0ZWQgTVMgY29tcGlsZXIgcHJvamVjdAorICAgLSBmaXhlZCBzb21lIFhQYXRoIHByb2JsZW1zCisgICAtIGFkZGVkIGFuIFVSSSBlc2NhcGluZyBmdW5jdGlvbgorICAgLSBzb21lIG90aGVyIGJ1ZyBmaXhlcworCisKKzIuMi43OiBPY3QgMzEgMjAwMDoKKyAgIC0gYWRkZWQgbWVzc2FnZSByZWRpcmVjdGlvbgorICAgLSBYUGF0aCBpbXByb3ZlbWVudHMgKHRoYW5rcyBUT00gISkKKyAgIC0geG1sSU9QYXJzZURURCgpIGFkZGVkCisgICAtIHZhcmlvdXMgc21hbGwgZml4ZXMgaW4gdGhlIEhUTUwsIFVSSSwgSFRUUCBhbmQgWFBvaW50ZXIgc3VwcG9ydAorICAgLSBzb21lIGNsZWFudXAgb2YgdGhlIE1ha2VmaWxlLCBhdXRvY29uZiBhbmQgdGhlIGRpc3RyaWJ1dGlvbiBjb250ZW50CisKKworMi4yLjY6IE9jdCAyNSAyMDAwOjoKKyAgIC0gQWRkZWQgYW4gaGFzaCB0YWJsZSBtb2R1bGUsIG1pZ3JhdGVkIGEgbnVtYmVyIG9mIGludGVybmFsIHN0cnVjdHVyZSB0bworICAgIHRob3NlCisgICAtIEZpeGVkIGEgcG9zdGVyaW9yaSB2YWxpZGF0aW9uIHByb2JsZW1zCisgICAtIEhUVFAgbW9kdWxlIGNsZWFudXBzCisgICAtIEhUTUwgcGFyc2VyIGltcHJvdmVtZW50cyAodGFnIGVycm9ycywgc2NyaXB0L3N0eWxlIGhhbmRsaW5nLCBhdHRyaWJ1dGUKKyAgICBub3JtYWxpemF0aW9uKQorICAgLSBjb2FsZXNjaW5nIG9mIGFkamFjZW50IHRleHQgbm9kZXMKKyAgIC0gY291cGxlIG9mIFhQYXRoIGJ1ZyBmaXhlcywgZXhwb3J0ZWQgdGhlIGludGVybmFsIEFQSQorCisKKzIuMi41OiBPY3QgMTUgMjAwMDo6CisgICAtIFhQb2ludGVyIGltcGxlbWVudGF0aW9uIGFuZCB0ZXN0c3VpdGUKKyAgIC0gTG90IG9mIFhQYXRoIGZpeGVzLCBhZGRlZCB2YXJpYWJsZSBhbmQgZnVuY3Rpb25zIHJlZ2lzdHJhdGlvbiwgbW9yZQorICAgIHRlc3RzCisgICAtIFBvcnRhYmlsaXR5IGZpeGVzLCBsb3RzIG9mIGVuaGFuY2VtZW50cyB0b3dhcmQgYW4gZWFzeSBXaW5kb3dzIGJ1aWxkCisgICAgYW5kIHJlbGVhc2UKKyAgIC0gTGF0ZSB2YWxpZGF0aW9uIGZpeGVzCisgICAtIEludGVncmF0ZWQgYSBsb3Qgb2YgY29udHJpYnV0ZWQgcGF0Y2hlcworICAgLSBhZGRlZCBtZW1vcnkgbWFuYWdlbWVudCBkb2NzCisgICAtIGEgcGVyZm9ybWFuY2UgcHJvYmxlbSB3aGVuIHVzaW5nIGxhcmdlIGJ1ZmZlciBzZWVtcyBmaXhlZAorCisKKzIuMi40OiBPY3QgMSAyMDAwOjoKKyAgIC0gbWFpbiBYUGF0aCBwcm9ibGVtIGZpeGVkCisgICAtIEludGVncmF0ZWQgcG9ydGFiaWxpdHkgcGF0Y2hlcyBmb3IgV2luZG93cworICAgLSBTZXJpb3VzIGJ1ZyBmaXhlcyBvbiB0aGUgVVJJIGFuZCBIVE1MIGNvZGUKKworCisyLjIuMzogU2VwIDE3IDIwMDA6CisgICAtIGJ1ZyBmaXhlcworICAgLSBjbGVhbnVwIG9mIGVudGl0eSBoYW5kbGluZyBjb2RlCisgICAtIG92ZXJhbGwgcmV2aWV3IG9mIGFsbCBsb29wcyBpbiB0aGUgcGFyc2VycywgYWxsIHNwcmludGYgdXNhZ2UgaGFzIGJlZW4KKyAgICBjaGVja2VkIHRvbworICAgLSBGYXIgYmV0dGVyIGhhbmRsaW5nIG9mIGxhcmdlcyBEdGQuIFZhbGlkYXRpbmcgYWdhaW5zdCBEb2NCb29rIFhNTCBEdGQKKyAgICB3b3JrcyBzbW9vdGhseSBub3cuCisKKworMS44LjEwOiBTZXAgNiAyMDAwOgorICAgLSBidWcgZml4IHJlbGVhc2UgZm9yIHNvbWUgR25vbWUgcHJvamVjdHMKKworCisyLjIuMjogQXVndXN0IDEyIDIwMDA6CisgICAtIG1vc3RseSBidWcgZml4ZXMKKyAgIC0gc3RhcnRlZCBhZGRpbmcgcm91dGluZXMgdG8gYWNjZXNzIHhtbCBwYXJzZXIgY29udGV4dCBvcHRpb25zCisKKworMi4yLjE6IEp1bHkgMjEgMjAwMDoKKyAgIC0gYSBwdXJlbHkgYnVnIGZpeGVzIHJlbGVhc2UKKyAgIC0gZml4ZWQgYW4gZW5jb2Rpbmcgc3VwcG9ydCBwcm9ibGVtIHdoZW4gcGFyc2luZyBmcm9tIGEgbWVtb3J5IGJsb2NrCisgICAtIGZpeGVkIGEgRE9DVFlQRSBwYXJzaW5nIHByb2JsZW0KKyAgIC0gcmVtb3ZlZCBhIGJ1ZyBpbiB0aGUgZnVuY3Rpb24gYWxsb3dpbmcgdG8gb3ZlcnJpZGUgdGhlIG1lbW9yeQorICAgIGFsbG9jYXRpb24gcm91dGluZXMKKworCisyLjIuMDogSnVseSAxNCAyMDAwOgorICAgLSBhcHBsaWVkIGEgbG90IG9mIHBvcnRhYmlsaXR5IGZpeGVzCisgICAtIGJldHRlciBlbmNvZGluZyBzdXBwb3J0L2NsZWFudXAgYW5kIHNhdmluZyAoY29udGVudCBpcyBub3cgYWx3YXlzCisgICAgZW5jb2RlZCBpbiBVVEYtOCkKKyAgIC0gdGhlIEhUTUwgcGFyc2VyIG5vdyBjb3JyZWN0bHkgaGFuZGxlcyBlbmNvZGluZ3MKKyAgIC0gYWRkZWQgeG1sSGFzUHJvcCgpCisgICAtIGZpeGVkIGEgc2VyaW91cyBwcm9ibGVtIHdpdGggJiMzODsKKyAgIC0gcHJvcGFnYXRlZCB0aGUgZml4IHRvIEZUUCBjbGllbnQKKyAgIC0gY2xlYW51cCwgYnVnZml4ZXMsIGV0YyAuLi4KKyAgIC0gQWRkZWQgYSBwYWdlIGFib3V0IGxpYnhtbCBJbnRlcm5hdGlvbmFsaXphdGlvbgorICAgIHN1cHBvcnQKKworCisxLjguOTogIEp1bHkgOSAyMDAwOgorICAgLSBmaXhlZCB0aGUgc3BlYyB0aGUgUlBNcyBzaG91bGQgYmUgYmV0dGVyCisgICAtIGZpeGVkIGEgc2VyaW91cyBidWcgaW4gdGhlIEZUUCBpbXBsZW1lbnRhdGlvbiwgcmVsZWFzZWQgMS44LjkgdG8gc29sdmUKKyAgICBycG1maW5kIHVzZXJzIHByb2JsZW0KKworCisyLjEuMTogSnVseSAxIDIwMDA6CisgICAtIGZpeGVzIGEgY291cGxlIG9mIGJ1Z3MgaW4gdGhlIDIuMS4wIHBhY2thZ2luZworICAgLSBpbXByb3ZlbWVudHMgb24gdGhlIEhUTUwgcGFyc2VyCisKKworMi4xLjAgYW5kIDEuOC44OiBKdW5lIDI5IDIwMDA6CisgICAtIDEuOC44IGlzIG1vc3RseSBhIGNvbW1vZGl0eSBwYWNrYWdlIGZvciB1cGdyYWRpbmcgdG8gbGlieG1sMiBhY2NvcmRpbmcKKyAgICB0byBuZXcgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyBhIG5hc3R5IHByb2JsZW0KKyAgICBhYm91dCAmIzM4OyBjaGFycmVmIHBhcnNpbmcKKyAgIC0gMi4xLjAgYWxzbyBlYXNlIHRoZSB1cGdyYWRlIGZyb20gbGlieG1sIHYxIHRvIHRoZSByZWNlbnQgdmVyc2lvbi4gaXQKKyAgICBhbHNvIGNvbnRhaW5zIG51bWVyb3VzIGZpeGVzIGFuZCBlbmhhbmNlbWVudHM6CisgICAgYWRkZWQgeG1sU3RvcFBhcnNlcigpIHRvIHN0b3AgcGFyc2luZworICAgICAgaW1wcm92ZWQgYSBsb3QgcGFyc2luZyBzcGVlZCB3aGVuIHRoZXJlIGlzIGxhcmdlIENEQVRBIGJsb2NzCisgICAgICBpbmNsdWRlcyBYUGF0aCBwYXRjaGVzIHByb3ZpZGVkIGJ5IFBpY2RhciBUZWNobm9sb2d5CisgICAgICB0cmllZCB0byBmaXggYXMgbXVjaCBhcyBwb3NzaWJsZSBEVEQgdmFsaWRhdGlvbiBhbmQgbmFtZXNwYWNlCisgICAgICAgIHJlbGF0ZWQgcHJvYmxlbXMKKyAgICAgIG91dHB1dCB0byBhIGdpdmVuIGVuY29kaW5nIGhhcyBiZWVuIGFkZGVkL3Rlc3RlZAorICAgICAgbG90IG9mIHZhcmlvdXMgZml4ZXMKKyAgICAKKyAgIC0gYWRkZWQgeG1sU3RvcFBhcnNlcigpIHRvIHN0b3AgcGFyc2luZworICAgLSBpbXByb3ZlZCBhIGxvdCBwYXJzaW5nIHNwZWVkIHdoZW4gdGhlcmUgaXMgbGFyZ2UgQ0RBVEEgYmxvY3MKKyAgIC0gaW5jbHVkZXMgWFBhdGggcGF0Y2hlcyBwcm92aWRlZCBieSBQaWNkYXIgVGVjaG5vbG9neQorICAgLSB0cmllZCB0byBmaXggYXMgbXVjaCBhcyBwb3NzaWJsZSBEVEQgdmFsaWRhdGlvbiBhbmQgbmFtZXNwYWNlCisgICAgICAgIHJlbGF0ZWQgcHJvYmxlbXMKKyAgIC0gb3V0cHV0IHRvIGEgZ2l2ZW4gZW5jb2RpbmcgaGFzIGJlZW4gYWRkZWQvdGVzdGVkCisgICAtIGxvdCBvZiB2YXJpb3VzIGZpeGVzCisKKworMi4wLjA6IEFwciAxMiAyMDAwOgorICAgLSBGaXJzdCBwdWJsaWMgcmVsZWFzZSBvZiBsaWJ4bWwyLiBJZiB5b3UgYXJlIHVzaW5nIGxpYnhtbCwgaXQncyBhIGdvb2QKKyAgICBpZGVhIHRvIGNoZWNrIHRoZSAxLnggdG8gMi54IHVwZ3JhZGUgaW5zdHJ1Y3Rpb25zLiBOT1RFOiB3aGlsZSBpbml0aWFsbHkKKyAgICBzY2hlZHVsZWQgZm9yIEFwciAzIHRoZSByZWxlYXNlIG9jY3VycmVkIG9ubHkgb24gQXByIDEyIGR1ZSB0byBtYXNzaXZlCisgICAgd29ya2xvYWQuCisgICAtIFRoZSBpbmNsdWRlIGFyZSBub3cgbG9jYXRlZCB1bmRlciAkcHJlZml4L2luY2x1ZGUvbGlieG1sIChpbnN0ZWFkIG9mCisgICAgJHByZWZpeC9pbmNsdWRlL2dub21lLXhtbCksIHRoZXkgYWxzbyBhcmUgcmVmZXJlbmNlZCBieQorICAgICNpbmNsdWRlIDxsaWJ4bWwveHh4Lmg+CisgICAgaW5zdGVhZCBvZgorICAgICNpbmNsdWRlICJ4eHguaCIKKyAgCisgICAtIGEgbmV3IFVSSSBtb2R1bGUgZm9yIHBhcnNpbmcgVVJJcyBhbmQgZm9sbG93aW5nIHN0cmljdGx5IFJGQyAyMzk2CisgICAtIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiByb3V0aW5lcyB1c2VkIGJ5IGxpYnhtbCBjYW4gbm93IGJlIG92ZXJsb2FkZWQKKyAgICBkeW5hbWljYWxseSBieSB1c2luZyB4bWxNZW1TZXR1cCgpCisgICAtIFRoZSBwcmV2aW91c2x5IENWUyBvbmx5IHRvb2wgdGVzdGVyIGhhcyBiZWVuIHJlbmFtZWQKKyAgICB4bWxsaW50IGFuZCBpcyBub3cgaW5zdGFsbGVkIGFzIHBhcnQgb2YgdGhlIGxpYnhtbDIKKyAgICBwYWNrYWdlCisgICAtIFRoZSBJL08gaW50ZXJmYWNlIGhhcyBiZWVuIHJldmFtcGVkLiBUaGVyZSBpcyBub3cgd2F5cyB0byBwbHVnIGluCisgICAgc3BlY2lmaWMgSS9PIG1vZHVsZXMsIGVpdGhlciBhdCB0aGUgVVJJIHNjaGVtZSBkZXRlY3Rpb24gbGV2ZWwgdXNpbmcKKyAgICB4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzKCkgIG9yIGJ5IHBhc3NpbmcgSS9PIGZ1bmN0aW9ucyB3aGVuIGNyZWF0aW5nIGEKKyAgICBwYXJzZXIgY29udGV4dCB1c2luZyB4bWxDcmVhdGVJT1BhcnNlckN0eHQoKQorICAgLSB0aGVyZSBpcyBhIEMgcHJlcHJvY2Vzc29yIG1hY3JvIExJQlhNTF9WRVJTSU9OIHByb3ZpZGluZyB0aGUgdmVyc2lvbgorICAgIG51bWJlciBvZiB0aGUgbGlieG1sIG1vZHVsZSBpbiB1c2UKKyAgIC0gYSBudW1iZXIgb2Ygb3B0aW9uYWwgZmVhdHVyZXMgb2YgbGlieG1sIGNhbiBub3cgYmUgZXhjbHVkZWQgYXQKKyAgICBjb25maWd1cmUgdGltZSAoRlRQL0hUVFAvSFRNTC9YUGF0aC9EZWJ1ZykKKworCisyLjAuMGJldGE6IE1hciAxNCAyMDAwOgorICAgLSBUaGlzIGlzIGEgZmlyc3QgQmV0YSByZWxlYXNlIG9mIGxpYnhtbCB2ZXJzaW9uIDIKKyAgIC0gSXQncyBhdmFpbGFibGUgb25seSBmcm9teG1sc29mdC5vcmcKKyAgICBGVFAsIGl0J3MgcGFja2FnZWQgYXMgbGlieG1sMi0yLjAuMGJldGEgYW5kIGF2YWlsYWJsZSBhcyB0YXIgYW5kCisgIFJQTXMKKyAgIC0gVGhpcyB2ZXJzaW9uIGlzIG5vdyB0aGUgaGVhZCBpbiB0aGUgR25vbWUgQ1ZTIGJhc2UsIHRoZSBvbGQgb25lIGlzCisgICAgYXZhaWxhYmxlIHVuZGVyIHRoZSB0YWcgTElCX1hNTF8xX1gKKyAgIC0gVGhpcyBpbmNsdWRlcyBhIHZlcnkgbGFyZ2Ugc2V0IG9mIGNoYW5nZXMuIEZyb20gYSAgcHJvZ3JhbW1hdGljIHBvaW50CisgICAgb2YgdmlldyBhcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCBoYXZlIHRvIGJlIG1vZGlmaWVkIHRvbyBtdWNoLCBjaGVjayB0aGUKKyAgICB1cGdyYWRlIHBhZ2UKKyAgIC0gU29tZSBpbnRlcmZhY2VzIG1heSBjaGFuZ2VzIChlc3BlY2lhbGx5IGEgYml0IGFib3V0IGVuY29kaW5nKS4KKyAgIC0gdGhlIHVwZGF0ZXMgaW5jbHVkZXM6CisgICAgZml4IEkxOE4gc3VwcG9ydC4gSVNPLUxhdGluLXgvVVRGLTgvVVRGLTE2IChuZWFybHkpIHNlZW1zIGNvcnJlY3RseQorICAgICAgICBoYW5kbGVkIG5vdworICAgICAgQmV0dGVyIGhhbmRsaW5nIG9mIGVudGl0aWVzLCBlc3BlY2lhbGx5IHdlbGwtZm9ybWVkbmVzcyBjaGVja2luZworICAgICAgICBhbmQgcHJvcGVyIFBFcmVmIGV4dGVuc2lvbnMgaW4gZXh0ZXJuYWwgc3Vic2V0cworICAgICAgRFREIGNvbmRpdGlvbmFsIHNlY3Rpb25zCisgICAgICBWYWxpZGF0aW9uIG5vdyBjb3JyZWN0bHkgaGFuZGxlIGVudGl0aWVzIGNvbnRlbnQKKyAgICAgIGNoYW5nZQorICAgICAgICBzdHJ1Y3R1cmVzIHRvIGFjY29tbW9kYXRlIERPTQorICAgIAorICAgLSBmaXggSTE4TiBzdXBwb3J0LiBJU08tTGF0aW4teC9VVEYtOC9VVEYtMTYgKG5lYXJseSkgc2VlbXMgY29ycmVjdGx5CisgICAgICAgIGhhbmRsZWQgbm93CisgICAtIEJldHRlciBoYW5kbGluZyBvZiBlbnRpdGllcywgZXNwZWNpYWxseSB3ZWxsLWZvcm1lZG5lc3MgY2hlY2tpbmcKKyAgICAgICAgYW5kIHByb3BlciBQRXJlZiBleHRlbnNpb25zIGluIGV4dGVybmFsIHN1YnNldHMKKyAgIC0gRFREIGNvbmRpdGlvbmFsIHNlY3Rpb25zCisgICAtIFZhbGlkYXRpb24gbm93IGNvcnJlY3RseSBoYW5kbGUgZW50aXRpZXMgY29udGVudAorICAgLSBjaGFuZ2UKKyAgICAgICAgc3RydWN0dXJlcyB0byBhY2NvbW1vZGF0ZSBET00KKyAgIC0gU2VyaW91cyBwcm9ncmVzcyB3ZXJlIG1hZGUgdG93YXJkIGNvbXBsaWFuY2UsIGhlcmUgYXJlIHRoZSByZXN1bHQgb2YgdGhlIHRlc3QgYWdhaW5zdCB0aGUKKyAgICBPQVNJUyB0ZXN0c3VpdGUgKGV4Y2VwdCB0aGUgSmFwYW5lc2UgdGVzdHMgc2luY2UgSSBkb24ndCBzdXBwb3J0IHRoYXQKKyAgICBlbmNvZGluZyB5ZXQpLiBUaGlzIFVSTCBpcyByZWJ1aWx0IGV2ZXJ5IGNvdXBsZSBvZiBob3VycyB1c2luZyB0aGUgQ1ZTCisgICAgaGVhZCB2ZXJzaW9uLgorCisKKzEuOC43OiBNYXIgNiAyMDAwOgorICAgLSBUaGlzIGlzIGEgYnVnIGZpeCByZWxlYXNlOgorICAgLSBJdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSBpZ25vcmFibGUgYmxhbmtzIGhldXJpc3RpYyB1c2VkIGJ5CisgICAgbGlieG1sLTEueCwgYSBuZXcgZnVuY3Rpb24gIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdpbGwgYWxsb3cgdGhpcy4gTm90ZQorICAgIHRoYXQgZm9yIGFkaGVyZW5jZSB0byBYTUwgc3BlYywgdGhpcyBiZWhhdmlvdXIgd2lsbCBiZSBkaXNhYmxlZCBieQorICAgIGRlZmF1bHQgaW4gMi54IC4gVGhlIHNhbWUgZnVuY3Rpb24gd2lsbCBhbGxvdyB0byBrZWVwIGNvbXBhdGliaWxpdHkgZm9yCisgICAgb2xkIGNvZGUuCisgICAtIEJsYW5rcyBpbiA8YT4gIDwvYT4gY29uc3RydWN0cyBhcmUgbm90IGlnbm9yZWQgYW55bW9yZSwKKyAgICBhdm9pZGluZyBoZXVyaXN0aWMgaXMgcmVhbGx5IHRoZSBSaWdodCBXYXkgOi1cCisgICAtIFRoZSB1bmNoZWNrZWQgdXNlIG9mIHNucHJpbnRmIHdoaWNoIHdhcyBicmVha2luZyBsaWJ4bWwtMS44LjYKKyAgICBjb21waWxhdGlvbiBvbiBzb21lIHBsYXRmb3JtcyBoYXMgYmVlbiBmaXhlZAorICAgLSBuYW5vZnRwLmMgbmFub2h0dHAuYzogRml4ZWQgJyMnIGFuZCAnPycgc3RyaXBwaW5nIHdoZW4gcHJvY2Vzc2luZworICBVUklzCisKKworMS44LjY6IEphbiAzMSAyMDAwOgorICAgLSBhZGRlZCBhIG5hbm9GVFAgdHJhbnNwb3J0IG1vZHVsZSwgZGVidWdnZWQgdW50aWwgdGhlIG5ldyB2ZXJzaW9uIG9mIHJwbWZpbmQgY2FuIHVzZQorICAgIGl0IHdpdGhvdXQgdHJvdWJsZXMKKworCisxLjguNTogSmFuIDIxIDIwMDA6CisgICAtIGFkZGluZyBBUElzIHRvIHBhcnNlIGEgd2VsbCBiYWxhbmNlZCBjaHVuayBvZiBYTUwgKHByb2R1Y3Rpb24gWzQzXSBjb250ZW50IG9mIHRoZQorICAgIFhNTCBzcGVjKQorICAgLSBmaXhlZCBhIGhpZGVvdXMgYnVnIGluIHhtbEdldFByb3AgcG9pbnRlZCBieSBSdW5lLkRqdXJodXVzQGZhc3Qubm8KKyAgIC0gSm9keSBHb2xkYmVyZyA8amdvbGRiZXJnQGhvbWUuY29tPiBwcm92aWRlZCBhbm90aGVyIHBhdGNoIHRyeWluZworICAgIHRvIHNvbHZlIHRoZSB6bGliIGNoZWNrcyBwcm9ibGVtcworICAgLSBUaGUgY3VycmVudCBzdGF0ZSBpbiBnbm9tZSBDVlMgYmFzZSBpcyBleHBlY3RlZCB0byBzaGlwIGFzIDEuOC41IHdpdGgKKyAgICBnbnVtZXJpYyBzb29uCisKKworMS44LjQ6IEphbiAxMyAyMDAwOgorICAgLSBidWcgZml4ZXMsIHJlaW50cm9kdWNlZCB4bWxOZXdHbG9iYWxOcygpLCBmaXhlZCB4bWxOZXdOcygpCisgICAtIGFsbCBleGl0KCkgY2FsbCBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSBsaWJ4bWwKKyAgIC0gZml4ZWQgYSBwcm9ibGVtIHdpdGggSU5DTFVERV9XSU5TT0NLIG9uIFdJTjMyIHBsYXRmb3JtCisgICAtIGFkZGVkIG5ld0RvY0ZyYWdtZW50KCkKKworCisxLjguMzogSmFuIDUgMjAwMDoKKyAgIC0gYSBQdXNoIGludGVyZmFjZSBmb3IgdGhlIFhNTCBhbmQgSFRNTCBwYXJzZXJzCisgICAtIGEgc2hlbGwtbGlrZSBpbnRlcmZhY2UgdG8gdGhlIGRvY3VtZW50IHRyZWUgKHRyeSB0ZXN0ZXIgLS1zaGVsbCA6LSkKKyAgIC0gbG90cyBvZiBidWcgZml4ZXMgYW5kIGltcHJvdmVtZW50IGFkZGVkIG92ZXIgWE1hcyBob2xpZGF5cworICAgLSBmaXhlZCB0aGUgRFREIHBhcnNpbmcgY29kZSB0byB3b3JrIHdpdGggdGhlIHhodG1sIERURAorICAgLSBhZGRlZCB4bWxSZW1vdmVQcm9wKCksIHhtbFJlbW92ZUlEKCkgYW5kIHhtbFJlbW92ZVJlZigpCisgICAtIEZpeGVkIGJ1Z3MgaW4geG1sTmV3TnMoKQorICAgLSBFeHRlcm5hbCBlbnRpdHkgbG9hZGluZyBjb2RlIGhhcyBiZWVuIHJldmFtcGVkLCBub3cgaXQgdXNlcworICAgIHhtbExvYWRFeHRlcm5hbEVudGl0eSgpLCBzb21lIGZpeCBvbiBlbnRpdGllcyBwcm9jZXNzaW5nIHdlcmUgYWRkZWQKKyAgIC0gY2xlYW5lZCB1cCBXSU4zMiBpbmNsdWRlcyBvZiBzb2NrZXQgc3R1ZmYKKworCisxLjguMjogRGVjIDIxIDE5OTk6CisgICAtIEkgZ290IGFub3RoZXIgcHJvYmxlbSB3aXRoIGluY2x1ZGVzIGFuZCBDKyssIEkgaG9wZSB0aGlzIGlzc3VlIGlzIGZpeGVkCisgICAgZm9yIGdvb2QgdGhpcyB0aW1lCisgICAtIEFkZGVkIGEgZmV3IHRyZWUgbW9kaWZpY2F0aW9uIGZ1bmN0aW9uczogeG1sUmVwbGFjZU5vZGUsCisgICAgeG1sQWRkUHJldlNpYmxpbmcsIHhtbEFkZE5leHRTaWJsaW5nLCB4bWxOb2RlU2V0TmFtZSBhbmQKKyAgICB4bWxEb2NTZXRSb290RWxlbWVudAorICAgLSBUcmllZCB0byBpbXByb3ZlIHRoZSBIVE1MIG91dHB1dCB3aXRoIGhlbHAgZnJvbSBDaHJpcyBMYWhleQorCisKKzEuOC4xOiBEZWMgMTggMTk5OToKKyAgIC0gdmFyaW91cyBwYXRjaGVzIHRvIGF2b2lkIHRyb3VibGVzIHdoZW4gdXNpbmcgbGlieG1sIHdpdGggQysrIGNvbXBpbGVycworICAgIHRoZSAibmFtZXNwYWNlIiBrZXl3b3JkIGFuZCBDIGVzY2FwaW5nIGluIGluY2x1ZGUgZmlsZXMKKyAgIC0gYSBwcm9ibGVtIGluIG9uZSBvZiB0aGUgY29yZSBtYWNyb3MgSVNfQ0hBUiB3YXMgY29ycmVjdGVkCisgICAtIGZpeGVkIGEgYnVnIGludHJvZHVjZWQgaW4gMS44LjAgYnJlYWtpbmcgZGVmYXVsdCBuYW1lc3BhY2UgcHJvY2Vzc2luZywKKyAgICBhbmQgbW9yZSBzcGVjaWZpY2FsbHkgdGhlIERpYSBhcHBsaWNhdGlvbgorICAgLSBmaXhlZCBhIHBvc3RlcmlvcmkgdmFsaWRhdGlvbiAodmFsaWRhdGlvbiBhZnRlciBwYXJzaW5nLCBvciBieSB1c2luZyBhCisgICAgRHRkIG5vdCBzcGVjaWZpZWQgaW4gdGhlIG9yaWdpbmFsIGRvY3VtZW50KQorICAgLSBmaXhlZCBhIGJ1ZyBpbgorCisKKzEuOC4wOiBEZWMgMTIgMTk5OToKKyAgIC0gY2xlYW51cCwgZXNwZWNpYWxseSBtZW1vcnkgd2lzZQorICAgLSB0aGUgcGFyc2VyIHNob3VsZCBiZSBtb3JlIHJlbGlhYmxlLCBlc3BlY2lhbGx5IHRoZSBIVE1MIG9uZSwgaXQgc2hvdWxkCisgICAgbm90IGNyYXNoLCB3aGF0ZXZlciB0aGUgaW5wdXQgIQorICAgLSBJbnRlZ3JhdGVkIHZhcmlvdXMgcGF0Y2hlcywgZXNwZWNpYWxseSBhIHNwZWVkdXAgaW1wcm92ZW1lbnQgZm9yIGxhcmdlCisgICAgZGF0YXNldCBmcm9tIENhcmwgTnlnYXJkLAorICAgIGNvbmZpZ3VyZSB3aXRoIC0td2l0aC1idWZmZXJzIHRvIGVuYWJsZSB0aGVtLgorICAgLSBhdHRyaWJ1dGUgbm9ybWFsaXphdGlvbiwgb29wcyBzaG91bGQgaGF2ZSBiZWVuIGFkZGVkIGxvbmcgYWdvICEKKyAgIC0gYXR0cmlidXRlcyBkZWZhdWx0ZWQgZnJvbSBEVERzIHNob3VsZCBiZSBhdmFpbGFibGUsIHhtbFNldFByb3AoKSBub3cKKyAgICBkb2VzIGVudGl0aWVzIGVzY2FwaW5nIGJ5IGRlZmF1bHQuCisKKworMS43LjQ6IE9jdCAyNSAxOTk5OgorICAgLSBMb3RzIG9mIEhUTUwgaW1wcm92ZW1lbnQKKyAgIC0gRml4ZWQgc29tZSBlcnJvcnMgd2hlbiBzYXZpbmcgYm90aCBYTUwgYW5kIEhUTUwKKyAgIC0gTW9yZSBleGFtcGxlcywgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgc2hvdWxkIG5vdyBsb29rIGNsZWFuCisgICAtIEZpeGVkIGEgYnVnIHdpdGggY29udGlndW91cyBjaGFycmVmCisKKworMS43LjM6IFNlcCAyOSAxOTk5OgorICAgLSBwb3J0YWJpbGl0eSBwcm9ibGVtcyBmaXhlZAorICAgLSBzbnByaW50ZiB3YXMgdXNlZCB1bmNvbmRpdGlvbmFsbHksIGxlYWRpbmcgdG8gbGluayBwcm9ibGVtcyBvbiBzeXN0ZW0KKyAgICB3ZXJlIGl0J3Mgbm90IGF2YWlsYWJsZSwgZml4ZWQKKworCisxLjcuMTogU2VwIDI0IDE5OTk6CisgICAtIFRoZSBiYXNpYyB0eXBlIGZvciBzdHJpbmdzIG1hbmlwdWxhdGVkIGJ5IGxpYnhtbCBoYXMgYmVlbiByZW5hbWVkIGluCisgICAgMS43LjEgZnJvbSBDSEFSIHRvIHhtbENoYXIuIFRoZSByZWFzb24KKyAgICBpcyB0aGF0IENIQVIgd2FzIGNvbmZsaWN0aW5nIHdpdGggYSBwcmVkZWZpbmVkIHR5cGUgb24gV2luZG93cy4gSG93ZXZlcgorICAgIG9uIG5vbiBXSU4zMiBlbnZpcm9ubWVudCwgY29tcGF0aWJpbGl0eSBpcyBwcm92aWRlZCBieSB0aGUgd2F5IG9mICBhCisgICAgI2RlZmluZSAuCisgICAtIENoYW5nZWQgYW5vdGhlciBlcnJvciA6IHRoZSB1c2Ugb2YgYSBzdHJ1Y3R1cmUgZmllbGQgY2FsbGVkIGVycm5vLCBhbmQKKyAgICBsZWFkaW5nIHRvIHRyb3VibGVzIG9uIHBsYXRmb3JtcyB3aGVyZSBpdCdzIGEgbWFjcm8KKworCisxLjcuMDogU2VwIDIzIDE5OTk6CisgICAtIEFkZGVkIHRoZSBhYmlsaXR5IHRvIGZldGNoIHJlbW90ZSBEVEQgb3IgcGFyc2VkIGVudGl0aWVzLCBzZWUgdGhlIG5hbm9odHRwIG1vZHVsZS4KKyAgIC0gQWRkZWQgYW4gZXJybm8gdG8gcmVwb3J0IGVycm9ycyBieSBhbm90aGVyIG1lYW4gdGhhbiBhIHNpbXBsZSBwcmludGYKKyAgICBsaWtlIGNhbGxiYWNrCisgICAtIEZpbmlzaGVkIElEL0lEUkVGIHN1cHBvcnQgYW5kIGNoZWNraW5nIHdoZW4gdmFsaWRhdGlvbgorICAgLSBTZXJpb3VzIG1lbW9yeSBsZWFrcyBmaXhlZCAodGhlcmUgaXMgbm93IGEgbWVtb3J5IHdyYXBwZXIgbW9kdWxlKQorICAgLSBJbXByb3ZlbWVudCBvZiBYUGF0aAorICAgIGltcGxlbWVudGF0aW9uCisgICAtIEFkZGVkIGFuIEhUTUwgcGFyc2VyIGZyb250LWVuZAorCitEYW5pZWwgVmVpbGxhcmQgYXQgCitidWdzLmh0bWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvUkVBRE1FIGIvbGlieG1sMi0yLjcuNy9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE4MTdhYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvUkVBRE1FCkBAIC0wLDAgKzEsMzkgQEAKKworICAgICAgICAgICAgICAgICAgWE1MIHRvb2xraXQgZnJvbSB0aGUgR05PTUUgcHJvamVjdAorCitGdWxsIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIG9uLWxpbmUgYXQKKyAgICBodHRwOi8veG1sc29mdC5vcmcvCisKK1RoaXMgY29kZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2VuY2Ugc2VlIHRoZSBDb3B5cmlnaHQgZmlsZS4KKworVG8gYnVpbGQgb24gYW4gVW5peGlzZWQgc2V0dXA6CisgICAuL2NvbmZpZ3VyZSA7IG1ha2UgOyBtYWtlIGluc3RhbGwKK1RvIGJ1aWxkIG9uIFdpbmRvd3M6CisgICBzZWUgaW5zdHJ1Y3Rpb25zIG9uIHdpbjMyL1JlYWRtZS50eHQKKworVG8gYXNzZXJ0IGJ1aWxkIHF1YWxpdHk6CisgICBvbiBhbiBVbml4aXNlZCBzZXR1cDoKKyAgICAgIHJ1biBtYWtlIHRlc3RzCisgICBvdGhlcndpc2U6CisgICAgICAgVGhlcmUgaXMgMyBzdGFuZGFsb25lIHRvb2xzIHJ1bnRlc3QuYyBydW5zdWl0ZS5jIHRlc3RhcGkuYywgd2hpY2gKKyAgICAgICBzaG91bGQgY29tcGlsZSBhcyBwYXJ0IG9mIHRoZSBidWlsZCBvciBhcyBhbnkgYXBwbGljYXRpb24gd291bGQuCisgICAgICAgTGF1bmNoIHRoZW0gZnJvbSB0aGlzIGRpcmVjdG9yeSB0byBnZXQgcmVzdWx0cywgcnVudGVzdCBjaGVja3MgCisgICAgICAgdGhlIHByb3BlciBmdW5jdGlvbm5pbmcgb2YgbGlieG1sMiBtYWluIEFQSXMgd2hpbGUgdGVzdGFwaSBkb2VzCisgICAgICAgYSBmdWxsIGNvdmVyYWdlIGNoZWNrLiBSZXBvcnQgZmFpbHVyZXMgdG8gdGhlIGxpc3QuCisKK1RvIHJlcG9ydCBidWdzLCBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBhdDogCisgIGh0dHA6Ly94bWxzb2Z0Lm9yZy9idWdzLmh0bWwKKworQSBtYWlsaW5nLWxpc3QgeG1sQGdub21lLm9yZyBpcyBhdmFpbGFibGUsIHRvIHN1YnNjcmliZToKKyAgICBodHRwOi8vbWFpbC5nbm9tZS5vcmcvbWFpbG1hbi9saXN0aW5mby94bWwKKworVGhlIGxpc3QgYXJjaGl2ZSBpcyBhdDoKKyAgICBodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLworCitBbGwgdGVjaG5pY2FsIGFuc3dlcnMgYXNrZWQgcHJpdmF0ZWx5IHdpbGwgYmUgYXV0b21hdGljYWxseSBhbnN3ZXJlZCBvbgordGhlIGxpc3QgYW5kIGFyY2hpdmVkIGZvciBwdWJsaWMgYWNjZXNzIHVubGVzcyBwcmljYWN5IGlzIGV4cGxpY2l0ZWx5CityZXF1aXJlZCBhbmQganVzdGlmaWVkLgorCitEYW5pZWwgVmVpbGxhcmQKKworJElkJApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9SRUFETUUudGVzdHMgYi9saWJ4bWwyLTIuNy43L1JFQURNRS50ZXN0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjUyMmFiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9SRUFETUUudGVzdHMKQEAgLTAsMCArMSwzMCBAQAorICAgICAgICAgICAgICAgICAgICAgICBSRUFETUUudGVzdHMKKworICAgSW5zdHJ1Y3Rpb25zIGZvciBzdGFuZGFsb25lIHRlc3QgcmVncmVzc2lvbnMgb2YgbGlieG1sMgorCitsaWJ4bWwyLXRlc3RzLSR2ZXJzaW9uLnRhci5neiBjb250YWlucyAzIHN0YW5kYWxvbmUgQyBwcm9ncmFtcyBhcyB3ZWxsCithcyBhIGxhcmdlIGFtb3VudCBvZiB0ZXN0cyBhbmQgcmVzdWx0cyBjb21pbmcgZnJvbSBsaWJ4bWwyIGl0c2VsZiBhbmQKK2Zyb20gVzNDLCBOSVNULCBTdW4gTWljcm9zeXN0ZW1zLCBNaWNyb3NvZnQgYW5kIEphbWVzIENsYXJrLiBFYWNoIEMKK3Byb2dyYW0gaGFzIGEgZGlmZmVyZW50IHRlc3RpbmcgcHVycG9zZToKKworICBydW50ZXN0LmMgOiBydW5zIGxpYnhtbDIgYmFzaWMgaW50ZXJuYWwgcmVncmVzc2lvbiB0ZXN0cworICBydW5zdWl0ZS5jOiBydW5zIGxpYnhtbDIgYWdhaW5zdCBleHRlcm5hbCByZWdyZXNzaW9uIHRlc3RzCisgIHRlc3RhcGkuYyA6IGV4ZXJjaXNlcyB0aGUgbGlicmFyeSBwdWJsaWMgZW50cnkgcG9pbnRzCisgIHRlc3RjaGFyLmM6IGV4ZXJjaXNlIHRoZSBjaGVjayBvZiBjaGFyYWN0ZXIgcmFuZ2VzIGFuZCBVVEYtOCB2YWxpZGF0aW9uCisKK1RoZSBjb21tYW5kOgorCisgIG1ha2UgLWYgTWFrZWZpbGUudGVzdHMgY2hlY2sKKworc2hvdWxkIGJlIHN1ZmZpY2llbnQgb24gYW4gVW5peCBzeXN0ZW0gdG8gYnVpbGQgYW5kIGV4ZXJjaXNlIHRoZSB0ZXN0cworZm9yIHRoZSB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtLiBOb3RlIGhvd2V2ZXIKK3RoYXQgdGhlcmUgaXNuJ3QgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBwcm92aWRlZCBzbyBpZiB0aGUgaW5zdGFsbGVkCit2ZXJzaW9uIGlzIG9sZGVyIHRvIHRoZSB0ZXN0c3VpdGUgb25lLCBmYWlsaW5nIHRvIGNvbXBpbGUgb3IgcnVuIHRoZSB0ZXN0cworaXMgbGlrZWx5LiBJbiBhbnkgZXZlbnQgdGhpcyB3b24ndCB3b3JrIHdpdGggYW4gaW5zdGFsbGVkIGxpYnhtbDIgb2xkZXIKK3RoYW4gMi42LjIwLgorQnVpbGRpbmcgb24gb3RoZXIgcGxhdGZyb21zIHNob3VsZCBiZSBhIG1hdHRlciBvZiBjb21waWxpbmcgdGhlIEMgZmlsZXMKK2xpa2UgYW55IG90aGVyIHByb2dyYW0gdXNpbmcgbGlieG1sMiwgcnVubmluZyB0aGUgdGVzdCBzaG91bGQgYmUgZG9uZQorc2ltcGx5IGJ5IGxhdW5jaGluZyB0aGUgcmVzdWx0aW5nIGV4ZWN1dGFibGVzLgorCitEYW5pZWwgVmVpbGxhcmQKK1RodSBKdWwgMjQgMjAwOApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9TQVguYyBiL2xpYnhtbDItMi43LjcvU0FYLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU1ZDQ2MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvU0FYLmMKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKiBTQVguYyA6IE9sZCBTQVggdjEgaGFuZGxlcnMgdG8gYnVpbGQgYSB0cmVlLgorICogICAgICAgICBEZXByZWNhdGVkIGV4Y2VwdCBmb3IgY29tcGF0aWJpbGl0eQorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBEYW5pZWwgVmVpbGxhcmQgPGRhbmllbEB2ZWlsbGFyZC5jb20+CisgKi8KKworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3ZhbGlkLmg+CisjaW5jbHVkZSA8bGlieG1sL2VudGl0aWVzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL2RlYnVnWE1MLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbElPLmg+CisjaW5jbHVkZSA8bGlieG1sL1NBWC5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdmFsaWQuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHRyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC9TQVgyLmg+CisKKyNpZmRlZiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisvKioKKyAqIGluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcjoKKyAqIEBoZGxyOiAgdGhlIFNBWCBoYW5kbGVyCisgKiBAd2FybmluZzogIGZsYWcgaWYgbm9uLXplcm8gc2V0cyB0aGUgaGFuZGxlciB3YXJuaW5nIHByb2NlZHVyZQorICoKKyAqIEluaXRpYWxpemUgdGhlIGRlZmF1bHQgWE1MIFNBWCB2ZXJzaW9uIDEgaGFuZGxlcgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIoKSBmb3IgdGhlIG5ldyBTQVgyIGJsb2NrcworICovCit2b2lkCitpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIoeG1sU0FYSGFuZGxlclYxICpoZGxyLCBpbnQgd2FybmluZykKK3sKKyAgICAKKyAgICBpZihoZGxyLT5pbml0aWFsaXplZCA9PSAxKQorCXJldHVybjsKKworICAgIGhkbHItPmludGVybmFsU3Vic2V0ID0geG1sU0FYMkludGVybmFsU3Vic2V0OworICAgIGhkbHItPmV4dGVybmFsU3Vic2V0ID0geG1sU0FYMkV4dGVybmFsU3Vic2V0OworICAgIGhkbHItPmlzU3RhbmRhbG9uZSA9IHhtbFNBWDJJc1N0YW5kYWxvbmU7CisgICAgaGRsci0+aGFzSW50ZXJuYWxTdWJzZXQgPSB4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+aGFzRXh0ZXJuYWxTdWJzZXQgPSB4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+cmVzb2x2ZUVudGl0eSA9IHhtbFNBWDJSZXNvbHZlRW50aXR5OworICAgIGhkbHItPmdldEVudGl0eSA9IHhtbFNBWDJHZXRFbnRpdHk7CisgICAgaGRsci0+Z2V0UGFyYW1ldGVyRW50aXR5ID0geG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTsKKyAgICBoZGxyLT5lbnRpdHlEZWNsID0geG1sU0FYMkVudGl0eURlY2w7CisgICAgaGRsci0+YXR0cmlidXRlRGVjbCA9IHhtbFNBWDJBdHRyaWJ1dGVEZWNsOworICAgIGhkbHItPmVsZW1lbnREZWNsID0geG1sU0FYMkVsZW1lbnREZWNsOworICAgIGhkbHItPm5vdGF0aW9uRGVjbCA9IHhtbFNBWDJOb3RhdGlvbkRlY2w7CisgICAgaGRsci0+dW5wYXJzZWRFbnRpdHlEZWNsID0geG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbDsKKyAgICBoZGxyLT5zZXREb2N1bWVudExvY2F0b3IgPSB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yOworICAgIGhkbHItPnN0YXJ0RG9jdW1lbnQgPSB4bWxTQVgyU3RhcnREb2N1bWVudDsKKyAgICBoZGxyLT5lbmREb2N1bWVudCA9IHhtbFNBWDJFbmREb2N1bWVudDsKKyAgICBoZGxyLT5zdGFydEVsZW1lbnQgPSB4bWxTQVgyU3RhcnRFbGVtZW50OworICAgIGhkbHItPmVuZEVsZW1lbnQgPSB4bWxTQVgyRW5kRWxlbWVudDsKKyAgICBoZGxyLT5yZWZlcmVuY2UgPSB4bWxTQVgyUmVmZXJlbmNlOworICAgIGhkbHItPmNoYXJhY3RlcnMgPSB4bWxTQVgyQ2hhcmFjdGVyczsKKyAgICBoZGxyLT5jZGF0YUJsb2NrID0geG1sU0FYMkNEYXRhQmxvY2s7CisgICAgaGRsci0+aWdub3JhYmxlV2hpdGVzcGFjZSA9IHhtbFNBWDJDaGFyYWN0ZXJzOworICAgIGhkbHItPnByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CisgICAgaWYgKHdhcm5pbmcgPT0gMCkKKwloZGxyLT53YXJuaW5nID0gTlVMTDsKKyAgICBlbHNlCisJaGRsci0+d2FybmluZyA9IHhtbFBhcnNlcldhcm5pbmc7CisgICAgaGRsci0+ZXJyb3IgPSB4bWxQYXJzZXJFcnJvcjsKKyAgICBoZGxyLT5mYXRhbEVycm9yID0geG1sUGFyc2VyRXJyb3I7CisKKyAgICBoZGxyLT5pbml0aWFsaXplZCA9IDE7Cit9CisKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisKKy8qKgorICogaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcjoKKyAqIEBoZGxyOiAgdGhlIFNBWCBoYW5kbGVyCisgKgorICogSW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBIVE1MIFNBWCB2ZXJzaW9uIDEgaGFuZGxlcgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyKCkgZm9yIHRoZSBuZXcgU0FYMiBibG9ja3MKKyAqLwordm9pZAoraW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcih4bWxTQVhIYW5kbGVyVjEgKmhkbHIpCit7CisgICAgaWYoaGRsci0+aW5pdGlhbGl6ZWQgPT0gMSkKKwlyZXR1cm47CisKKyAgICBoZGxyLT5pbnRlcm5hbFN1YnNldCA9IHhtbFNBWDJJbnRlcm5hbFN1YnNldDsKKyAgICBoZGxyLT5leHRlcm5hbFN1YnNldCA9IE5VTEw7CisgICAgaGRsci0+aXNTdGFuZGFsb25lID0gTlVMTDsKKyAgICBoZGxyLT5oYXNJbnRlcm5hbFN1YnNldCA9IE5VTEw7CisgICAgaGRsci0+aGFzRXh0ZXJuYWxTdWJzZXQgPSBOVUxMOworICAgIGhkbHItPnJlc29sdmVFbnRpdHkgPSBOVUxMOworICAgIGhkbHItPmdldEVudGl0eSA9IHhtbFNBWDJHZXRFbnRpdHk7CisgICAgaGRsci0+Z2V0UGFyYW1ldGVyRW50aXR5ID0gTlVMTDsKKyAgICBoZGxyLT5lbnRpdHlEZWNsID0gTlVMTDsKKyAgICBoZGxyLT5hdHRyaWJ1dGVEZWNsID0gTlVMTDsKKyAgICBoZGxyLT5lbGVtZW50RGVjbCA9IE5VTEw7CisgICAgaGRsci0+bm90YXRpb25EZWNsID0gTlVMTDsKKyAgICBoZGxyLT51bnBhcnNlZEVudGl0eURlY2wgPSBOVUxMOworICAgIGhkbHItPnNldERvY3VtZW50TG9jYXRvciA9IHhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I7CisgICAgaGRsci0+c3RhcnREb2N1bWVudCA9IHhtbFNBWDJTdGFydERvY3VtZW50OworICAgIGhkbHItPmVuZERvY3VtZW50ID0geG1sU0FYMkVuZERvY3VtZW50OworICAgIGhkbHItPnN0YXJ0RWxlbWVudCA9IHhtbFNBWDJTdGFydEVsZW1lbnQ7CisgICAgaGRsci0+ZW5kRWxlbWVudCA9IHhtbFNBWDJFbmRFbGVtZW50OworICAgIGhkbHItPnJlZmVyZW5jZSA9IE5VTEw7CisgICAgaGRsci0+Y2hhcmFjdGVycyA9IHhtbFNBWDJDaGFyYWN0ZXJzOworICAgIGhkbHItPmNkYXRhQmxvY2sgPSB4bWxTQVgyQ0RhdGFCbG9jazsKKyAgICBoZGxyLT5pZ25vcmFibGVXaGl0ZXNwYWNlID0geG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U7CisgICAgaGRsci0+cHJvY2Vzc2luZ0luc3RydWN0aW9uID0geG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKKyAgICBoZGxyLT5jb21tZW50ID0geG1sU0FYMkNvbW1lbnQ7CisgICAgaGRsci0+d2FybmluZyA9IHhtbFBhcnNlcldhcm5pbmc7CisgICAgaGRsci0+ZXJyb3IgPSB4bWxQYXJzZXJFcnJvcjsKKyAgICBoZGxyLT5mYXRhbEVycm9yID0geG1sUGFyc2VyRXJyb3I7CisKKyAgICBoZGxyLT5pbml0aWFsaXplZCA9IDE7Cit9CisKKyNlbmRpZiAvKiBMSUJYTUxfSFRNTF9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisvKioKKyAqIGluaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXI6CisgKiBAaGRscjogIHRoZSBTQVggaGFuZGxlcgorICoKKyAqIEluaXRpYWxpemUgdGhlIGRlZmF1bHQgRG9jQm9vayBTQVggdmVyc2lvbiAxIGhhbmRsZXIKKyAqIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcigpIGZvciB0aGUgbmV3IFNBWDIgYmxvY2tzCisgKi8KK3ZvaWQKK2luaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXIoeG1sU0FYSGFuZGxlclYxICpoZGxyKQoreworICAgIGlmKGhkbHItPmluaXRpYWxpemVkID09IDEpCisJcmV0dXJuOworCisgICAgaGRsci0+aW50ZXJuYWxTdWJzZXQgPSB4bWxTQVgySW50ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+ZXh0ZXJuYWxTdWJzZXQgPSBOVUxMOworICAgIGhkbHItPmlzU3RhbmRhbG9uZSA9IHhtbFNBWDJJc1N0YW5kYWxvbmU7CisgICAgaGRsci0+aGFzSW50ZXJuYWxTdWJzZXQgPSB4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+aGFzRXh0ZXJuYWxTdWJzZXQgPSB4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+cmVzb2x2ZUVudGl0eSA9IHhtbFNBWDJSZXNvbHZlRW50aXR5OworICAgIGhkbHItPmdldEVudGl0eSA9IHhtbFNBWDJHZXRFbnRpdHk7CisgICAgaGRsci0+Z2V0UGFyYW1ldGVyRW50aXR5ID0gTlVMTDsKKyAgICBoZGxyLT5lbnRpdHlEZWNsID0geG1sU0FYMkVudGl0eURlY2w7CisgICAgaGRsci0+YXR0cmlidXRlRGVjbCA9IE5VTEw7CisgICAgaGRsci0+ZWxlbWVudERlY2wgPSBOVUxMOworICAgIGhkbHItPm5vdGF0aW9uRGVjbCA9IE5VTEw7CisgICAgaGRsci0+dW5wYXJzZWRFbnRpdHlEZWNsID0gTlVMTDsKKyAgICBoZGxyLT5zZXREb2N1bWVudExvY2F0b3IgPSB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yOworICAgIGhkbHItPnN0YXJ0RG9jdW1lbnQgPSB4bWxTQVgyU3RhcnREb2N1bWVudDsKKyAgICBoZGxyLT5lbmREb2N1bWVudCA9IHhtbFNBWDJFbmREb2N1bWVudDsKKyAgICBoZGxyLT5zdGFydEVsZW1lbnQgPSB4bWxTQVgyU3RhcnRFbGVtZW50OworICAgIGhkbHItPmVuZEVsZW1lbnQgPSB4bWxTQVgyRW5kRWxlbWVudDsKKyAgICBoZGxyLT5yZWZlcmVuY2UgPSB4bWxTQVgyUmVmZXJlbmNlOworICAgIGhkbHItPmNoYXJhY3RlcnMgPSB4bWxTQVgyQ2hhcmFjdGVyczsKKyAgICBoZGxyLT5jZGF0YUJsb2NrID0gTlVMTDsKKyAgICBoZGxyLT5pZ25vcmFibGVXaGl0ZXNwYWNlID0geG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U7CisgICAgaGRsci0+cHJvY2Vzc2luZ0luc3RydWN0aW9uID0gTlVMTDsKKyAgICBoZGxyLT5jb21tZW50ID0geG1sU0FYMkNvbW1lbnQ7CisgICAgaGRsci0+d2FybmluZyA9IHhtbFBhcnNlcldhcm5pbmc7CisgICAgaGRsci0+ZXJyb3IgPSB4bWxQYXJzZXJFcnJvcjsKKyAgICBoZGxyLT5mYXRhbEVycm9yID0geG1sUGFyc2VyRXJyb3I7CisKKyAgICBoZGxyLT5pbml0aWFsaXplZCA9IDE7Cit9CisKKyNlbmRpZiAvKiBMSUJYTUxfRE9DQl9FTkFCTEVEICovCisKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisKKyNkZWZpbmUgYm90dG9tX1NBWAorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvU0FYMi5jIGIvbGlieG1sMi0yLjcuNy9TQVgyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRjMWYwMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvU0FYMi5jCkBAIC0wLDAgKzEsMjk0NSBAQAorLyoKKyAqIFNBWDIuYyA6IERlZmF1bHQgU0FYMiBoYW5kbGVyIHRvIGJ1aWxkIGEgdHJlZS4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorICovCisKKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC92YWxpZC5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC9kZWJ1Z1hNTC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxJTy5oPgorI2luY2x1ZGUgPGxpYnhtbC9TQVguaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaW5jbHVkZSA8bGlieG1sL3ZhbGlkLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUx0cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworLyogRGVmaW5lIFNJWkVfVF9NQVggdW5sZXNzIGRlZmluZWQgdGhyb3VnaCA8bGltaXRzLmg+LiAqLworI2lmbmRlZiBTSVpFX1RfTUFYCisjIGRlZmluZSBTSVpFX1RfTUFYICAgICAoKHNpemVfdCktMSkKKyNlbmRpZiAvKiAhU0laRV9UX01BWCAqLworCisvKiAjZGVmaW5lIERFQlVHX1NBWDIgKi8KKy8qICNkZWZpbmUgREVCVUdfU0FYMl9UUkVFICovCisKKy8qKgorICogVE9ETzoKKyAqCisgKiBtYWNybyB0byBmbGFnIHVuaW1wbGVtZW50ZWQgYmxvY2tzCisgKiBYTUxfQ0FUQUxPR19QUkVGRVIgdXNlciBlbnYgdG8gc2VsZWN0IGJldHdlZW4gc3lzdGVtL3B1YmxpYyBwcmVmZXJlZAorICogb3B0aW9uLiBDLmYuIFJpY2hhcmQgVG9iaW4gPHJpY2hhcmRAY29nc2NpLmVkLmFjLnVrPgorICo+IEp1c3QgRllJLCBJIGFtIHVzaW5nIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIFhNTF9DQVRBTE9HX1BSRUZFUiB3aXRoCisgKj4gdmFsdWVzICJzeXN0ZW0iIGFuZCAicHVibGljIi4gIEkgaGF2ZSBtYWRlIHRoZSBkZWZhdWx0IGJlICJzeXN0ZW0iIHRvCisgKj4gbWF0Y2ggeW91cnMuCisgKi8KKyNkZWZpbmUgVE9ETyAJCQkJCQkJCVwKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwJCQkJXAorCSAgICAiVW5pbXBsZW1lbnRlZCBibG9jayBhdCAlczolZFxuIiwJCQkJXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKworLyoKKyAqIHhtbFNBWDJFcnJNZW1vcnk6CisgKiBAY3R4dDogIGFuIFhNTCB2YWxpZGF0aW9uIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgIGEgc3RyaW5nIHRvIGFjY29tcGFueSB0aGUgZXJyb3IgbWVzc2FnZQorICovCitzdGF0aWMgdm9pZAoreG1sU0FYMkVyck1lbW9yeSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKm1zZykgeworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lcnJvciAhPSBOVUxMKSkKKwkgICAgY3R4dC0+c2F4LT5lcnJvcihjdHh0LT51c2VyRGF0YSwgIiVzOiBvdXQgb2YgbWVtb3J5XG4iLCBtc2cpOworCWN0eHQtPmVyck5vID0gWE1MX0VSUl9OT19NRU1PUlk7CisJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRU9GOworCWN0eHQtPmRpc2FibGVTQVggPSAxOworICAgIH0KK30KKworLyoqCisgKiB4bWxWYWxpZEVycm9yOgorICogQGN0eHQ6ICBhbiBYTUwgdmFsaWRhdGlvbiBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAc3RyMTogIGV4dHJhIGRhdGEKKyAqIEBzdHIyOiAgZXh0cmEgZGF0YQorICoKKyAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbEVyclZhbGlkKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpzdHIxLCBjb25zdCBjaGFyICpzdHIyKQoreworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOworCisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCWN0eHQtPmVyck5vID0gZXJyb3I7CisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+aW5pdGlhbGl6ZWQgPT0gWE1MX1NBWDJfTUFHSUMpKQorCSAgICBzY2hhbm5lbCA9IGN0eHQtPnNheC0+c2Vycm9yOworCV9feG1sUmFpc2VFcnJvcihzY2hhbm5lbCwKKwkJCWN0eHQtPnZjdHh0LmVycm9yLCBjdHh0LT52Y3R4dC51c2VyRGF0YSwKKwkJCWN0eHQsIE5VTEwsIFhNTF9GUk9NX0RURCwgZXJyb3IsCisJCQlYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLCAoY29uc3QgY2hhciAqKSBzdHIxLAorCQkJKGNvbnN0IGNoYXIgKikgc3RyMiwgTlVMTCwgMCwgMCwKKwkJCW1zZywgKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMik7CisJY3R4dC0+dmFsaWQgPSAwOworICAgIH0gZWxzZSB7CisJX194bWxSYWlzZUVycm9yKHNjaGFubmVsLAorCQkJTlVMTCwgTlVMTCwKKwkJCWN0eHQsIE5VTEwsIFhNTF9GUk9NX0RURCwgZXJyb3IsCisJCQlYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLCAoY29uc3QgY2hhciAqKSBzdHIxLAorCQkJKGNvbnN0IGNoYXIgKikgc3RyMiwgTlVMTCwgMCwgMCwKKwkJCW1zZywgKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMik7CisgICAgfQorfQorCisvKioKKyAqIHhtbEZhdGFsRXJyTXNnOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBtc2c6ICB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6ICBhbiBlcnJvciBzdHJpbmcKKyAqIEBzdHIyOiAgYW4gZXJyb3Igc3RyaW5nCisgKgorICogSGFuZGxlIGEgZmF0YWwgcGFyc2VyIGVycm9yLCBpLmUuIHZpb2xhdGluZyBXZWxsLUZvcm1lZG5lc3MgY29uc3RyYWludHMKKyAqLworc3RhdGljIHZvaWQKK3htbEZhdGFsRXJyTXNnKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgorICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCisJcmV0dXJuOworICAgIGlmIChjdHh0ICE9IE5VTEwpCisJY3R4dC0+ZXJyTm8gPSBlcnJvcjsKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgCisJCSAgICAoY29uc3QgY2hhciAqKSBzdHIxLCAoY29uc3QgY2hhciAqKSBzdHIyLAorCQkgICAgTlVMTCwgMCwgMCwgbXNnLCBzdHIxLCBzdHIyKTsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisJY3R4dC0+d2VsbEZvcm1lZCA9IDA7CisJY3R4dC0+dmFsaWQgPSAwOworCWlmIChjdHh0LT5yZWNvdmVyeSA9PSAwKQorCSAgICBjdHh0LT5kaXNhYmxlU0FYID0gMTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sV2Fybk1zZzoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBzdHIxOiAgYW4gZXJyb3Igc3RyaW5nCisgKiBAc3RyMjogIGFuIGVycm9yIHN0cmluZworICoKKyAqIEhhbmRsZSBhIHBhcnNlciB3YXJuaW5nCisgKi8KK3N0YXRpYyB2b2lkCit4bWxXYXJuTXNnKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICpzdHIxKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgorICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCisJcmV0dXJuOworICAgIGlmIChjdHh0ICE9IE5VTEwpCisJY3R4dC0+ZXJyTm8gPSBlcnJvcjsKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9XQVJOSU5HLCBOVUxMLCAwLCAKKwkJICAgIChjb25zdCBjaGFyICopIHN0cjEsIE5VTEwsCisJCSAgICBOVUxMLCAwLCAwLCBtc2csIHN0cjEpOworfQorCisvKioKKyAqIHhtbE5zRXJyTXNnOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBtc2c6ICB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6ICBhbiBlcnJvciBzdHJpbmcKKyAqIEBzdHIyOiAgYW4gZXJyb3Igc3RyaW5nCisgKgorICogSGFuZGxlIGEgbmFtZXNwYWNlIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxOc0Vyck1zZyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikKK3sKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmRpc2FibGVTQVggIT0gMCkgJiYKKyAgICAgICAgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpKQorCXJldHVybjsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKQorCWN0eHQtPmVyck5vID0gZXJyb3I7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGN0eHQsIE5VTEwsIFhNTF9GUk9NX05BTUVTUEFDRSwgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsIAorCQkgICAgKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMiwKKwkJICAgIE5VTEwsIDAsIDAsIG1zZywgc3RyMSwgc3RyMik7Cit9CisKKy8qKgorICogeG1sTnNXYXJuTXNnOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBtc2c6ICB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6ICBhbiBlcnJvciBzdHJpbmcKKyAqCisgKiBIYW5kbGUgYSBuYW1lc3BhY2Ugd2FybmluZworICovCitzdGF0aWMgdm9pZAoreG1sTnNXYXJuTXNnKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikKK3sKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmRpc2FibGVTQVggIT0gMCkgJiYKKyAgICAgICAgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpKQorCXJldHVybjsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKQorCWN0eHQtPmVyck5vID0gZXJyb3I7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGN0eHQsIE5VTEwsIFhNTF9GUk9NX05BTUVTUEFDRSwgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfV0FSTklORywgTlVMTCwgMCwgCisJCSAgICAoY29uc3QgY2hhciAqKSBzdHIxLCAoY29uc3QgY2hhciAqKSBzdHIyLAorCQkgICAgTlVMTCwgMCwgMCwgbXNnLCBzdHIxLCBzdHIyKTsKK30KKworLyoqCisgKiB4bWxTQVgyR2V0UHVibGljSWQ6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogUHJvdmlkZXMgdGhlIHB1YmxpYyBJRCBlLmcuICItLy9TR01MU09VUkNFLy9EVEQgREVNTy8vRU4iCisgKgorICogUmV0dXJucyBhIHhtbENoYXIgKgorICovCitjb25zdCB4bWxDaGFyICoKK3htbFNBWDJHZXRQdWJsaWNJZCh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICAvKiB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OyAqLworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxTQVgyR2V0U3lzdGVtSWQ6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogUHJvdmlkZXMgdGhlIHN5c3RlbSBJRCwgYmFzaWNhbGx5IFVSTCBvciBmaWxlbmFtZSBlLmcuCisgKiBodHRwOi8vd3d3LnNnbWxzb3VyY2UuY29tL2R0ZHMvbWVtby5kdGQKKyAqCisgKiBSZXR1cm5zIGEgeG1sQ2hhciAqCisgKi8KK2NvbnN0IHhtbENoYXIgKgoreG1sU0FYMkdldFN5c3RlbUlkKHZvaWQgKmN0eCkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIGlmICgoY3R4ID09IE5VTEwpIHx8IChjdHh0LT5pbnB1dCA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworICAgIHJldHVybigoY29uc3QgeG1sQ2hhciAqKSBjdHh0LT5pbnB1dC0+ZmlsZW5hbWUpOyAKK30KKworLyoqCisgKiB4bWxTQVgyR2V0TGluZU51bWJlcjoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBQcm92aWRlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50LgorICoKKyAqIFJldHVybnMgYW4gaW50CisgKi8KK2ludAoreG1sU0FYMkdldExpbmVOdW1iZXIodm9pZCAqY3R4KQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgaWYgKChjdHggPT0gTlVMTCkgfHwgKGN0eHQtPmlucHV0ID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgcmV0dXJuKGN0eHQtPmlucHV0LT5saW5lKTsKK30KKworLyoqCisgKiB4bWxTQVgyR2V0Q29sdW1uTnVtYmVyOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICoKKyAqIFByb3ZpZGUgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC4KKyAqCisgKiBSZXR1cm5zIGFuIGludAorICovCitpbnQKK3htbFNBWDJHZXRDb2x1bW5OdW1iZXIodm9pZCAqY3R4KQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgaWYgKChjdHggPT0gTlVMTCkgfHwgKGN0eHQtPmlucHV0ID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgcmV0dXJuKGN0eHQtPmlucHV0LT5jb2wpOworfQorCisvKioKKyAqIHhtbFNBWDJJc1N0YW5kYWxvbmU6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogSXMgdGhpcyBkb2N1bWVudCB0YWdnZWQgc3RhbmRhbG9uZSA/CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworaW50Cit4bWxTQVgySXNTdGFuZGFsb25lKHZvaWQgKmN0eCkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIGlmICgoY3R4ID09IE5VTEwpIHx8IChjdHh0LT5teURvYyA9PSBOVUxMKSkgcmV0dXJuKDApOworICAgIHJldHVybihjdHh0LT5teURvYy0+c3RhbmRhbG9uZSA9PSAxKTsKK30KKworLyoqCisgKiB4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQ6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogRG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBpbnRlcm5hbCBzdWJzZXQKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZQorICovCitpbnQKK3htbFNBWDJIYXNJbnRlcm5hbFN1YnNldCh2b2lkICpjdHgpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPm15RG9jID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgcmV0dXJuKGN0eHQtPm15RG9jLT5pbnRTdWJzZXQgIT0gTlVMTCk7Cit9CisKKy8qKgorICogeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworaW50Cit4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQodm9pZCAqY3R4KQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5teURvYyA9PSBOVUxMKSkgcmV0dXJuKDApOworICAgIHJldHVybihjdHh0LT5teURvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpOworfQorCisvKioKKyAqIHhtbFNBWDJJbnRlcm5hbFN1YnNldDoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogIHRoZSByb290IGVsZW1lbnQgbmFtZQorICogQEV4dGVybmFsSUQ6ICB0aGUgZXh0ZXJuYWwgSUQKKyAqIEBTeXN0ZW1JRDogIHRoZSBTWVNURU0gSUQgKGUuZy4gZmlsZW5hbWUgb3IgVVJMKQorICoKKyAqIENhbGxiYWNrIG9uIGludGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi4KKyAqLwordm9pZAoreG1sU0FYMkludGVybmFsU3Vic2V0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxEdGRQdHIgZHRkOworICAgIGlmIChjdHggPT0gTlVMTCkgcmV0dXJuOworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJJbnRlcm5hbFN1YnNldCglcywgJXMsICVzKVxuIiwKKyAgICAgICAgICAgIG5hbWUsIEV4dGVybmFsSUQsIFN5c3RlbUlEKTsKKyNlbmRpZgorCisgICAgaWYgKGN0eHQtPm15RG9jID09IE5VTEwpCisJcmV0dXJuOworICAgIGR0ZCA9IHhtbEdldEludFN1YnNldChjdHh0LT5teURvYyk7CisgICAgaWYgKGR0ZCAhPSBOVUxMKSB7CisJaWYgKGN0eHQtPmh0bWwpCisJICAgIHJldHVybjsKKwl4bWxVbmxpbmtOb2RlKCh4bWxOb2RlUHRyKSBkdGQpOworCXhtbEZyZWVEdGQoZHRkKTsKKwljdHh0LT5teURvYy0+aW50U3Vic2V0ID0gTlVMTDsKKyAgICB9CisgICAgY3R4dC0+bXlEb2MtPmludFN1YnNldCA9IAorCXhtbENyZWF0ZUludFN1YnNldChjdHh0LT5teURvYywgbmFtZSwgRXh0ZXJuYWxJRCwgU3lzdGVtSUQpOworICAgIGlmIChjdHh0LT5teURvYy0+aW50U3Vic2V0ID09IE5VTEwpCisgICAgICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJJbnRlcm5hbFN1YnNldCIpOworfQorCisvKioKKyAqIHhtbFNBWDJFeHRlcm5hbFN1YnNldDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgdGhlIHJvb3QgZWxlbWVudCBuYW1lCisgKiBARXh0ZXJuYWxJRDogIHRoZSBleHRlcm5hbCBJRAorICogQFN5c3RlbUlEOiAgdGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpCisgKgorICogQ2FsbGJhY2sgb24gZXh0ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLgorICovCit2b2lkCit4bWxTQVgyRXh0ZXJuYWxTdWJzZXQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIGlmIChjdHggPT0gTlVMTCkgcmV0dXJuOworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJFeHRlcm5hbFN1YnNldCglcywgJXMsICVzKVxuIiwKKyAgICAgICAgICAgIG5hbWUsIEV4dGVybmFsSUQsIFN5c3RlbUlEKTsKKyNlbmRpZgorICAgIGlmICgoKEV4dGVybmFsSUQgIT0gTlVMTCkgfHwgKFN5c3RlbUlEICE9IE5VTEwpKSAmJgorICAgICAgICAoKChjdHh0LT52YWxpZGF0ZSkgfHwgKGN0eHQtPmxvYWRzdWJzZXQgIT0gMCkpICYmCisJIChjdHh0LT53ZWxsRm9ybWVkICYmIGN0eHQtPm15RG9jKSkpIHsKKwkvKgorCSAqIFRyeSB0byBmZXRjaCBhbmQgcGFyc2UgdGhlIGV4dGVybmFsIHN1YnNldC4KKwkgKi8KKwl4bWxQYXJzZXJJbnB1dFB0ciBvbGRpbnB1dDsKKwlpbnQgb2xkaW5wdXROcjsKKwlpbnQgb2xkaW5wdXRNYXg7CisJeG1sUGFyc2VySW5wdXRQdHIgKm9sZGlucHV0VGFiOworCXhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gTlVMTDsKKwl4bWxDaGFyRW5jb2RpbmcgZW5jOworCWludCBvbGRjaGFyc2V0OworCisJLyoKKwkgKiBBc2sgdGhlIEVudGl0eSByZXNvbHZlciB0byBsb2FkIHRoZSBkYW1uIHRoaW5nCisJICovCisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+cmVzb2x2ZUVudGl0eSAhPSBOVUxMKSkKKwkgICAgaW5wdXQgPSBjdHh0LT5zYXgtPnJlc29sdmVFbnRpdHkoY3R4dC0+dXNlckRhdGEsIEV4dGVybmFsSUQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbUlEKTsKKwlpZiAoaW5wdXQgPT0gTlVMTCkgeworCSAgICByZXR1cm47CisJfQorCisJeG1sTmV3RHRkKGN0eHQtPm15RG9jLCBuYW1lLCBFeHRlcm5hbElELCBTeXN0ZW1JRCk7CisKKwkvKgorCSAqIG1ha2Ugc3VyZSB3ZSB3b24ndCBkZXN0cm95IHRoZSBtYWluIGRvY3VtZW50IGNvbnRleHQKKwkgKi8KKwlvbGRpbnB1dCA9IGN0eHQtPmlucHV0OworCW9sZGlucHV0TnIgPSBjdHh0LT5pbnB1dE5yOworCW9sZGlucHV0TWF4ID0gY3R4dC0+aW5wdXRNYXg7CisJb2xkaW5wdXRUYWIgPSBjdHh0LT5pbnB1dFRhYjsKKwlvbGRjaGFyc2V0ID0gY3R4dC0+Y2hhcnNldDsKKworCWN0eHQtPmlucHV0VGFiID0gKHhtbFBhcnNlcklucHV0UHRyICopCisJICAgICAgICAgICAgICAgICB4bWxNYWxsb2MoNSAqIHNpemVvZih4bWxQYXJzZXJJbnB1dFB0cikpOworCWlmIChjdHh0LT5pbnB1dFRhYiA9PSBOVUxMKSB7CisJICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJFeHRlcm5hbFN1YnNldCIpOworCSAgICBjdHh0LT5pbnB1dCA9IG9sZGlucHV0OworCSAgICBjdHh0LT5pbnB1dE5yID0gb2xkaW5wdXROcjsKKwkgICAgY3R4dC0+aW5wdXRNYXggPSBvbGRpbnB1dE1heDsKKwkgICAgY3R4dC0+aW5wdXRUYWIgPSBvbGRpbnB1dFRhYjsKKwkgICAgY3R4dC0+Y2hhcnNldCA9IG9sZGNoYXJzZXQ7CisJICAgIHJldHVybjsKKwl9CisJY3R4dC0+aW5wdXROciA9IDA7CisJY3R4dC0+aW5wdXRNYXggPSA1OworCWN0eHQtPmlucHV0ID0gTlVMTDsKKwl4bWxQdXNoSW5wdXQoY3R4dCwgaW5wdXQpOworCisJLyoKKwkgKiBPbiB0aGUgZmx5IGVuY29kaW5nIGNvbnZlcnNpb24gaWYgbmVlZGVkCisJICovCisJaWYgKGN0eHQtPmlucHV0LT5sZW5ndGggPj0gNCkgeworCSAgICBlbmMgPSB4bWxEZXRlY3RDaGFyRW5jb2RpbmcoY3R4dC0+aW5wdXQtPmN1ciwgNCk7CisJICAgIHhtbFN3aXRjaEVuY29kaW5nKGN0eHQsIGVuYyk7CisJfQorCisJaWYgKGlucHV0LT5maWxlbmFtZSA9PSBOVUxMKQorCSAgICBpbnB1dC0+ZmlsZW5hbWUgPSAoY2hhciAqKSB4bWxDYW5vbmljUGF0aChTeXN0ZW1JRCk7CisJaW5wdXQtPmxpbmUgPSAxOworCWlucHV0LT5jb2wgPSAxOworCWlucHV0LT5iYXNlID0gY3R4dC0+aW5wdXQtPmN1cjsKKwlpbnB1dC0+Y3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKKwlpbnB1dC0+ZnJlZSA9IE5VTEw7CisKKwkvKgorCSAqIGxldCdzIHBhcnNlIHRoYXQgZW50aXR5IGtub3dpbmcgaXQncyBhbiBleHRlcm5hbCBzdWJzZXQuCisJICovCisJeG1sUGFyc2VFeHRlcm5hbFN1YnNldChjdHh0LCBFeHRlcm5hbElELCBTeXN0ZW1JRCk7CisKKyAgICAgICAgLyoKKwkgKiBGcmVlIHVwIHRoZSBleHRlcm5hbCBlbnRpdGllcworCSAqLworCisJd2hpbGUgKGN0eHQtPmlucHV0TnIgPiAxKQorCSAgICB4bWxQb3BJbnB1dChjdHh0KTsKKwl4bWxGcmVlSW5wdXRTdHJlYW0oY3R4dC0+aW5wdXQpOworICAgICAgICB4bWxGcmVlKGN0eHQtPmlucHV0VGFiKTsKKworCS8qCisJICogUmVzdG9yZSB0aGUgcGFyc2luZyBjb250ZXh0IG9mIHRoZSBtYWluIGVudGl0eQorCSAqLworCWN0eHQtPmlucHV0ID0gb2xkaW5wdXQ7CisJY3R4dC0+aW5wdXROciA9IG9sZGlucHV0TnI7CisJY3R4dC0+aW5wdXRNYXggPSBvbGRpbnB1dE1heDsKKwljdHh0LT5pbnB1dFRhYiA9IG9sZGlucHV0VGFiOworCWN0eHQtPmNoYXJzZXQgPSBvbGRjaGFyc2V0OworCS8qIGN0eHQtPndlbGxGb3JtZWQgPSBvbGR3ZWxsRm9ybWVkOyAqLworICAgIH0KK30KKworLyoqCisgKiB4bWxTQVgyUmVzb2x2ZUVudGl0eToKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICoKKyAqIFRoZSBlbnRpdHkgbG9hZGVyLCB0byBjb250cm9sIHRoZSBsb2FkaW5nIG9mIGV4dGVybmFsIGVudGl0aWVzLAorICogdGhlIGFwcGxpY2F0aW9uIGNhbiBlaXRoZXI6CisgKiAgICAtIG92ZXJyaWRlIHRoaXMgeG1sU0FYMlJlc29sdmVFbnRpdHkoKSBjYWxsYmFjayBpbiB0aGUgU0FYIGJsb2NrCisgKiAgICAtIG9yIGJldHRlciB1c2UgdGhlIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKCkgZnVuY3Rpb24gdG8KKyAqICAgICAgc2V0IHVwIGl0J3Mgb3duIGVudGl0eSByZXNvbHV0aW9uIHJvdXRpbmUKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxQYXJzZXJJbnB1dFB0ciBpZiBpbmxpbmVkIG9yIE5VTEwgZm9yIERPTSBiZWhhdmlvdXIuCisgKi8KK3htbFBhcnNlcklucHV0UHRyCit4bWxTQVgyUmVzb2x2ZUVudGl0eSh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldDsKKyAgICB4bWxDaGFyICpVUkk7CisgICAgY29uc3QgY2hhciAqYmFzZSA9IE5VTEw7CisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkKKwliYXNlID0gY3R4dC0+aW5wdXQtPmZpbGVuYW1lOworICAgIGlmIChiYXNlID09IE5VTEwpCisJYmFzZSA9IGN0eHQtPmRpcmVjdG9yeTsKKworICAgIFVSSSA9IHhtbEJ1aWxkVVJJKHN5c3RlbUlkLCAoY29uc3QgeG1sQ2hhciAqKSBiYXNlKTsKKworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJSZXNvbHZlRW50aXR5KCVzLCAlcylcbiIsIHB1YmxpY0lkLCBzeXN0ZW1JZCk7CisjZW5kaWYKKworICAgIHJldCA9IHhtbExvYWRFeHRlcm5hbEVudGl0eSgoY29uc3QgY2hhciAqKSBVUkksCisJCQkJKGNvbnN0IGNoYXIgKikgcHVibGljSWQsIGN0eHQpOworICAgIGlmIChVUkkgIT0gTlVMTCkKKwl4bWxGcmVlKFVSSSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU0FYMkdldEVudGl0eToKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiBUaGUgZW50aXR5IG5hbWUKKyAqCisgKiBHZXQgYW4gZW50aXR5IGJ5IG5hbWUKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxFbnRpdHlQdHIgaWYgZm91bmQuCisgKi8KK3htbEVudGl0eVB0cgoreG1sU0FYMkdldEVudGl0eSh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxFbnRpdHlQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmIChjdHggPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJHZXRFbnRpdHkoJXMpXG4iLCBuYW1lKTsKKyNlbmRpZgorCisgICAgaWYgKGN0eHQtPmluU3Vic2V0ID09IDApIHsKKwlyZXQgPSB4bWxHZXRQcmVkZWZpbmVkRW50aXR5KG5hbWUpOworCWlmIChyZXQgIT0gTlVMTCkKKwkgICAgcmV0dXJuKHJldCk7CisgICAgfQorICAgIGlmICgoY3R4dC0+bXlEb2MgIT0gTlVMTCkgJiYgKGN0eHQtPm15RG9jLT5zdGFuZGFsb25lID09IDEpKSB7CisJaWYgKGN0eHQtPmluU3Vic2V0ID09IDIpIHsKKwkgICAgY3R4dC0+bXlEb2MtPnN0YW5kYWxvbmUgPSAwOworCSAgICByZXQgPSB4bWxHZXREb2NFbnRpdHkoY3R4dC0+bXlEb2MsIG5hbWUpOworCSAgICBjdHh0LT5teURvYy0+c3RhbmRhbG9uZSA9IDE7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sR2V0RG9jRW50aXR5KGN0eHQtPm15RG9jLCBuYW1lKTsKKwkgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJCWN0eHQtPm15RG9jLT5zdGFuZGFsb25lID0gMDsKKwkJcmV0ID0geG1sR2V0RG9jRW50aXR5KGN0eHQtPm15RG9jLCBuYW1lKTsKKwkJaWYgKHJldCAhPSBOVUxMKSB7CisJCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX05PVF9TVEFOREFMT05FLAorCSAiRW50aXR5KCVzKSBkb2N1bWVudCBtYXJrZWQgc3RhbmRhbG9uZSBidXQgcmVxdWlyZXMgZXh0ZXJuYWwgc3Vic2V0XG4iLAorCQkJCSAgIG5hbWUsIE5VTEwpOworCQl9CisJCWN0eHQtPm15RG9jLT5zdGFuZGFsb25lID0gMTsKKwkgICAgfQorCX0KKyAgICB9IGVsc2UgeworCXJldCA9IHhtbEdldERvY0VudGl0eShjdHh0LT5teURvYywgbmFtZSk7CisgICAgfQorICAgIGlmICgocmV0ICE9IE5VTEwpICYmCisJKChjdHh0LT52YWxpZGF0ZSkgfHwgKGN0eHQtPnJlcGxhY2VFbnRpdGllcykpICYmCisJKHJldC0+Y2hpbGRyZW4gPT0gTlVMTCkgJiYKKwkocmV0LT5ldHlwZSA9PSBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZKSkgeworCWludCB2YWw7CisKKwkvKgorCSAqIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIHdlIHJlYWxseSBuZWVkIHRvIGZldGNoIGFuZAorCSAqIHBhcnNlIHRoZSBleHRlcm5hbCBlbnRpdHkKKwkgKi8KKwl4bWxOb2RlUHRyIGNoaWxkcmVuOworCisgICAgICAgIHZhbCA9IHhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5KGN0eHQsIHJldC0+VVJJLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LT5FeHRlcm5hbElELCAmY2hpbGRyZW4pOworCWlmICh2YWwgPT0gMCkgeworCSAgICB4bWxBZGRDaGlsZExpc3QoKHhtbE5vZGVQdHIpIHJldCwgY2hpbGRyZW4pOworCX0gZWxzZSB7CisJICAgIHhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfRU5USVRZX1BST0NFU1NJTkcsCisJCSAgICAgICAgICAgIkZhaWx1cmUgdG8gcHJvY2VzcyBlbnRpdHkgJXNcbiIsIG5hbWUsIE5VTEwpOworCSAgICBjdHh0LT52YWxpZGF0ZSA9IDA7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJcmV0LT5vd25lciA9IDE7CisJaWYgKHJldC0+Y2hlY2tlZCA9PSAwKQorCSAgICByZXQtPmNoZWNrZWQgPSAxOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQG5hbWU6IFRoZSBlbnRpdHkgbmFtZQorICoKKyAqIEdldCBhIHBhcmFtZXRlciBlbnRpdHkgYnkgbmFtZQorICoKKyAqIFJldHVybnMgdGhlIHhtbEVudGl0eVB0ciBpZiBmb3VuZC4KKyAqLworeG1sRW50aXR5UHRyCit4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbEVudGl0eVB0ciByZXQ7CisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyNpZmRlZiBERUJVR19TQVgKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIlNBWC54bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5KCVzKVxuIiwgbmFtZSk7CisjZW5kaWYKKworICAgIHJldCA9IHhtbEdldFBhcmFtZXRlckVudGl0eShjdHh0LT5teURvYywgbmFtZSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKworLyoqCisgKiB4bWxTQVgyRW50aXR5RGVjbDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgdGhlIGVudGl0eSBuYW1lIAorICogQHR5cGU6ICB0aGUgZW50aXR5IHR5cGUgCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBjb250ZW50OiB0aGUgZW50aXR5IHZhbHVlICh3aXRob3V0IHByb2Nlc3NpbmcpLgorICoKKyAqIEFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZAorICovCit2b2lkCit4bWxTQVgyRW50aXR5RGVjbCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGludCB0eXBlLAorICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCwgeG1sQ2hhciAqY29udGVudCkKK3sKKyAgICB4bWxFbnRpdHlQdHIgZW50OworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybjsKKyNpZmRlZiBERUJVR19TQVgKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIlNBWC54bWxTQVgyRW50aXR5RGVjbCglcywgJWQsICVzLCAlcywgJXMpXG4iLAorICAgICAgICAgICAgbmFtZSwgdHlwZSwgcHVibGljSWQsIHN5c3RlbUlkLCBjb250ZW50KTsKKyNlbmRpZgorICAgIGlmIChjdHh0LT5pblN1YnNldCA9PSAxKSB7CisJZW50ID0geG1sQWRkRG9jRW50aXR5KGN0eHQtPm15RG9jLCBuYW1lLCB0eXBlLCBwdWJsaWNJZCwKKwkJICAgICAgICAgICAgICBzeXN0ZW1JZCwgY29udGVudCk7CisJaWYgKChlbnQgPT0gTlVMTCkgJiYgKGN0eHQtPnBlZGFudGljKSkKKwkgICAgeG1sV2Fybk1zZyhjdHh0LCBYTUxfV0FSX0VOVElUWV9SRURFRklORUQsCisJICAgICAiRW50aXR5KCVzKSBhbHJlYWR5IGRlZmluZWQgaW4gdGhlIGludGVybmFsIHN1YnNldFxuIiwKKwkgICAgICAgICAgICAgICBuYW1lKTsKKwlpZiAoKGVudCAhPSBOVUxMKSAmJiAoZW50LT5VUkkgPT0gTlVMTCkgJiYgKHN5c3RlbUlkICE9IE5VTEwpKSB7CisJICAgIHhtbENoYXIgKlVSSTsKKwkgICAgY29uc3QgY2hhciAqYmFzZSA9IE5VTEw7CisKKwkgICAgaWYgKGN0eHQtPmlucHV0ICE9IE5VTEwpCisJCWJhc2UgPSBjdHh0LT5pbnB1dC0+ZmlsZW5hbWU7CisJICAgIGlmIChiYXNlID09IE5VTEwpCisJCWJhc2UgPSBjdHh0LT5kaXJlY3Rvcnk7CisJCisJICAgIFVSSSA9IHhtbEJ1aWxkVVJJKHN5c3RlbUlkLCAoY29uc3QgeG1sQ2hhciAqKSBiYXNlKTsKKwkgICAgZW50LT5VUkkgPSBVUkk7CisJfQorICAgIH0gZWxzZSBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMikgeworCWVudCA9IHhtbEFkZER0ZEVudGl0eShjdHh0LT5teURvYywgbmFtZSwgdHlwZSwgcHVibGljSWQsCisJCSAgICAgICAgICAgICAgc3lzdGVtSWQsIGNvbnRlbnQpOworCWlmICgoZW50ID09IE5VTEwpICYmIChjdHh0LT5wZWRhbnRpYykgJiYKKwkgICAgKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT53YXJuaW5nICE9IE5VTEwpKQorCSAgICBjdHh0LT5zYXgtPndhcm5pbmcoY3R4dC0+dXNlckRhdGEsIAorCSAgICAgIkVudGl0eSglcykgYWxyZWFkeSBkZWZpbmVkIGluIHRoZSBleHRlcm5hbCBzdWJzZXRcbiIsIG5hbWUpOworCWlmICgoZW50ICE9IE5VTEwpICYmIChlbnQtPlVSSSA9PSBOVUxMKSAmJiAoc3lzdGVtSWQgIT0gTlVMTCkpIHsKKwkgICAgeG1sQ2hhciAqVVJJOworCSAgICBjb25zdCBjaGFyICpiYXNlID0gTlVMTDsKKworCSAgICBpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkKKwkJYmFzZSA9IGN0eHQtPmlucHV0LT5maWxlbmFtZTsKKwkgICAgaWYgKGJhc2UgPT0gTlVMTCkKKwkJYmFzZSA9IGN0eHQtPmRpcmVjdG9yeTsKKwkKKwkgICAgVVJJID0geG1sQnVpbGRVUkkoc3lzdGVtSWQsIChjb25zdCB4bWxDaGFyICopIGJhc2UpOworCSAgICBlbnQtPlVSSSA9IFVSSTsKKwl9CisgICAgfSBlbHNlIHsKKwl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX0VOVElUWV9QUk9DRVNTSU5HLAorCSAgICAgICAgICAgICAgICJTQVgueG1sU0FYMkVudGl0eURlY2woJXMpIGNhbGxlZCB3aGlsZSBub3QgaW4gc3Vic2V0XG4iLAorCQkgICAgICAgbmFtZSwgTlVMTCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNBWDJBdHRyaWJ1dGVEZWNsOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGVsZW06ICB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudAorICogQGZ1bGxuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lIAorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUgCisgKiBAZGVmOiAgdGhlIHR5cGUgb2YgZGVmYXVsdCB2YWx1ZQorICogQGRlZmF1bHRWYWx1ZTogdGhlIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlCisgKiBAdHJlZTogIHRoZSB0cmVlIG9mIGVudW1lcmF0ZWQgdmFsdWUgc2V0CisgKgorICogQW4gYXR0cmlidXRlIGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkCisgKi8KK3ZvaWQKK3htbFNBWDJBdHRyaWJ1dGVEZWNsKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqZWxlbSwgY29uc3QgeG1sQ2hhciAqZnVsbG5hbWUsCisgICAgICAgICAgICAgIGludCB0eXBlLCBpbnQgZGVmLCBjb25zdCB4bWxDaGFyICpkZWZhdWx0VmFsdWUsCisJICAgICAgeG1sRW51bWVyYXRpb25QdHIgdHJlZSkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbEF0dHJpYnV0ZVB0ciBhdHRyOworICAgIHhtbENoYXIgKm5hbWUgPSBOVUxMLCAqcHJlZml4ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+bXlEb2MgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJBdHRyaWJ1dGVEZWNsKCVzLCAlcywgJWQsICVkLCAlcywgLi4uKVxuIiwKKyAgICAgICAgICAgIGVsZW0sIGZ1bGxuYW1lLCB0eXBlLCBkZWYsIGRlZmF1bHRWYWx1ZSk7CisjZW5kaWYKKyAgICBpZiAoKHhtbFN0ckVxdWFsKGZ1bGxuYW1lLCBCQURfQ0FTVCAieG1sOmlkIikpICYmCisgICAgICAgICh0eXBlICE9IFhNTF9BVFRSSUJVVEVfSUQpKSB7CisJLyoKKwkgKiBSYWlzZSB0aGUgZXJyb3IgYnV0IGtlZXAgdGhlIHZhbGlkaXR5IGZsYWcKKwkgKi8KKwlpbnQgdG1wID0gY3R4dC0+dmFsaWQ7CisJeG1sRXJyVmFsaWQoY3R4dCwgWE1MX0RURF9YTUxJRF9UWVBFLAorCSAgICAgICJ4bWw6aWQgOiBhdHRyaWJ1dGUgdHlwZSBzaG91bGQgYmUgSURcbiIsIE5VTEwsIE5VTEwpOworCWN0eHQtPnZhbGlkID0gdG1wOworICAgIH0KKyAgICAvKiBUT0RPOiBvcHRpbWl6ZSBuYW1lL3ByZWZpeCBhbGxvY2F0aW9uICovCisgICAgbmFtZSA9IHhtbFNwbGl0UU5hbWUoY3R4dCwgZnVsbG5hbWUsICZwcmVmaXgpOworICAgIGN0eHQtPnZjdHh0LnZhbGlkID0gMTsKKyAgICBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMSkKKwlhdHRyID0geG1sQWRkQXR0cmlidXRlRGVjbCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQsIGVsZW0sCisJICAgICAgIG5hbWUsIHByZWZpeCwgKHhtbEF0dHJpYnV0ZVR5cGUpIHR5cGUsCisJICAgICAgICh4bWxBdHRyaWJ1dGVEZWZhdWx0KSBkZWYsIGRlZmF1bHRWYWx1ZSwgdHJlZSk7CisgICAgZWxzZSBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMikKKwlhdHRyID0geG1sQWRkQXR0cmlidXRlRGVjbCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jLT5leHRTdWJzZXQsIGVsZW0sCisJICAgbmFtZSwgcHJlZml4LCAoeG1sQXR0cmlidXRlVHlwZSkgdHlwZSwgCisJICAgKHhtbEF0dHJpYnV0ZURlZmF1bHQpIGRlZiwgZGVmYXVsdFZhbHVlLCB0cmVlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICJTQVgueG1sU0FYMkF0dHJpYnV0ZURlY2woJXMpIGNhbGxlZCB3aGlsZSBub3QgaW4gc3Vic2V0XG4iLAorCSAgICAgICAgICAgICAgIG5hbWUsIE5VTEwpOworCXhtbEZyZWVFbnVtZXJhdGlvbih0cmVlKTsKKwlyZXR1cm47CisgICAgfQorI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKGN0eHQtPnZjdHh0LnZhbGlkID09IDApCisJY3R4dC0+dmFsaWQgPSAwOworICAgIGlmICgoYXR0ciAhPSBOVUxMKSAmJiAoY3R4dC0+dmFsaWRhdGUpICYmIChjdHh0LT53ZWxsRm9ybWVkKSAmJgorICAgICAgICAoY3R4dC0+bXlEb2MtPmludFN1YnNldCAhPSBOVUxMKSkKKwljdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2woJmN0eHQtPnZjdHh0LCBjdHh0LT5teURvYywKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cik7CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKyAgICBpZiAocHJlZml4ICE9IE5VTEwpCisJeG1sRnJlZShwcmVmaXgpOworICAgIGlmIChuYW1lICE9IE5VTEwpCisJeG1sRnJlZShuYW1lKTsKK30KKworLyoqCisgKiB4bWxTQVgyRWxlbWVudERlY2w6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogIHRoZSBlbGVtZW50IG5hbWUgCisgKiBAdHlwZTogIHRoZSBlbGVtZW50IHR5cGUgCisgKiBAY29udGVudDogdGhlIGVsZW1lbnQgdmFsdWUgdHJlZQorICoKKyAqIEFuIGVsZW1lbnQgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQKKyAqLwordm9pZAoreG1sU0FYMkVsZW1lbnREZWNsKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGludCB0eXBlLAorICAgICAgICAgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbEVsZW1lbnRQdHIgZWxlbSA9IE5VTEw7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPm15RG9jID09IE5VTEwpKQorICAgICAgICByZXR1cm47CisKKyNpZmRlZiBERUJVR19TQVgKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIlNBWC54bWxTQVgyRWxlbWVudERlY2woJXMsICVkLCAuLi4pXG4iLCBuYW1lLCB0eXBlKTsKKyNlbmRpZgorCisgICAgaWYgKGN0eHQtPmluU3Vic2V0ID09IDEpCisgICAgICAgIGVsZW0gPSB4bWxBZGRFbGVtZW50RGVjbCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLCAoeG1sRWxlbWVudFR5cGVWYWwpIHR5cGUsIGNvbnRlbnQpOworICAgIGVsc2UgaWYgKGN0eHQtPmluU3Vic2V0ID09IDIpCisgICAgICAgIGVsZW0gPSB4bWxBZGRFbGVtZW50RGVjbCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jLT5leHRTdWJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLCAoeG1sRWxlbWVudFR5cGVWYWwpIHR5cGUsIGNvbnRlbnQpOworICAgIGVsc2UgeworICAgICAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCSAgICAgIlNBWC54bWxTQVgyRWxlbWVudERlY2woJXMpIGNhbGxlZCB3aGlsZSBub3QgaW4gc3Vic2V0XG4iLAorCSAgICAgICAgICAgICAgIG5hbWUsIE5VTEwpOworICAgICAgICByZXR1cm47CisgICAgfQorI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKGVsZW0gPT0gTlVMTCkKKyAgICAgICAgY3R4dC0+dmFsaWQgPSAwOworICAgIGlmIChjdHh0LT52YWxpZGF0ZSAmJiBjdHh0LT53ZWxsRm9ybWVkICYmCisgICAgICAgIGN0eHQtPm15RG9jICYmIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQpCisgICAgICAgIGN0eHQtPnZhbGlkICY9CisgICAgICAgICAgICB4bWxWYWxpZGF0ZUVsZW1lbnREZWNsKCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MsIGVsZW0pOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCit9CisKKy8qKgorICogeG1sU0FYMk5vdGF0aW9uRGVjbDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgbm90YXRpb24KKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICoKKyAqIFdoYXQgdG8gZG8gd2hlbiBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHBhcnNlZC4KKyAqLwordm9pZAoreG1sU0FYMk5vdGF0aW9uRGVjbCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxOb3RhdGlvblB0ciBub3RhID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+bXlEb2MgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJOb3RhdGlvbkRlY2woJXMsICVzLCAlcylcbiIsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCk7CisjZW5kaWYKKworICAgIGlmICgocHVibGljSWQgPT0gTlVMTCkgJiYgKHN5c3RlbUlkID09IE5VTEwpKSB7CisJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9OT1RBVElPTl9QUk9DRVNTSU5HLAorCSAgICAgIlNBWC54bWxTQVgyTm90YXRpb25EZWNsKCVzKSBleHRlcm5hbElEIG9yIFB1YmxpY0lEIG1pc3NpbmdcbiIsCisJICAgICAgICAgICAgICAgbmFtZSwgTlVMTCk7CisJcmV0dXJuOworICAgIH0gZWxzZSBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMSkKKwlub3RhID0geG1sQWRkTm90YXRpb25EZWNsKCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MtPmludFN1YnNldCwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY0lkLCBzeXN0ZW1JZCk7CisgICAgZWxzZSBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMikKKwlub3RhID0geG1sQWRkTm90YXRpb25EZWNsKCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MtPmV4dFN1YnNldCwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY0lkLCBzeXN0ZW1JZCk7CisgICAgZWxzZSB7CisJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9OT1RBVElPTl9QUk9DRVNTSU5HLAorCSAgICAgIlNBWC54bWxTQVgyTm90YXRpb25EZWNsKCVzKSBjYWxsZWQgd2hpbGUgbm90IGluIHN1YnNldFxuIiwKKwkgICAgICAgICAgICAgICBuYW1lLCBOVUxMKTsKKwlyZXR1cm47CisgICAgfQorI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKG5vdGEgPT0gTlVMTCkgY3R4dC0+dmFsaWQgPSAwOworICAgIGlmICgoY3R4dC0+dmFsaWRhdGUpICYmIChjdHh0LT53ZWxsRm9ybWVkKSAmJgorICAgICAgICAoY3R4dC0+bXlEb2MtPmludFN1YnNldCAhPSBOVUxMKSkKKwljdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGEpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCit9CisKKy8qKgorICogeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZW50aXR5CisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBub3RhdGlvbk5hbWU6IHRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbgorICoKKyAqIFdoYXQgdG8gZG8gd2hlbiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb24gaXMgcGFyc2VkCisgKi8KK3ZvaWQKK3htbFNBWDJVbnBhcnNlZEVudGl0eURlY2wodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQsCisJCSAgIGNvbnN0IHhtbENoYXIgKm5vdGF0aW9uTmFtZSkKK3sKKyAgICB4bWxFbnRpdHlQdHIgZW50OworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgaWYgKGN0eCA9PSBOVUxMKSByZXR1cm47CisjaWZkZWYgREVCVUdfU0FYCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJTQVgueG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCglcywgJXMsICVzLCAlcylcbiIsCisgICAgICAgICAgICBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQsIG5vdGF0aW9uTmFtZSk7CisjZW5kaWYKKyAgICBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMSkgeworCWVudCA9IHhtbEFkZERvY0VudGl0eShjdHh0LT5teURvYywgbmFtZSwKKwkJCVhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWSwKKwkJCXB1YmxpY0lkLCBzeXN0ZW1JZCwgbm90YXRpb25OYW1lKTsKKwlpZiAoKGVudCA9PSBOVUxMKSAmJiAoY3R4dC0+cGVkYW50aWMpICYmCisJICAgIChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+d2FybmluZyAhPSBOVUxMKSkKKwkgICAgY3R4dC0+c2F4LT53YXJuaW5nKGN0eHQtPnVzZXJEYXRhLCAKKwkgICAgICJFbnRpdHkoJXMpIGFscmVhZHkgZGVmaW5lZCBpbiB0aGUgaW50ZXJuYWwgc3Vic2V0XG4iLCBuYW1lKTsKKwlpZiAoKGVudCAhPSBOVUxMKSAmJiAoZW50LT5VUkkgPT0gTlVMTCkgJiYgKHN5c3RlbUlkICE9IE5VTEwpKSB7CisJICAgIHhtbENoYXIgKlVSSTsKKwkgICAgY29uc3QgY2hhciAqYmFzZSA9IE5VTEw7CisKKwkgICAgaWYgKGN0eHQtPmlucHV0ICE9IE5VTEwpCisJCWJhc2UgPSBjdHh0LT5pbnB1dC0+ZmlsZW5hbWU7CisJICAgIGlmIChiYXNlID09IE5VTEwpCisJCWJhc2UgPSBjdHh0LT5kaXJlY3Rvcnk7CisJCisJICAgIFVSSSA9IHhtbEJ1aWxkVVJJKHN5c3RlbUlkLCAoY29uc3QgeG1sQ2hhciAqKSBiYXNlKTsKKwkgICAgZW50LT5VUkkgPSBVUkk7CisJfQorICAgIH0gZWxzZSBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMikgeworCWVudCA9IHhtbEFkZER0ZEVudGl0eShjdHh0LT5teURvYywgbmFtZSwKKwkJCVhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWSwKKwkJCXB1YmxpY0lkLCBzeXN0ZW1JZCwgbm90YXRpb25OYW1lKTsKKwlpZiAoKGVudCA9PSBOVUxMKSAmJiAoY3R4dC0+cGVkYW50aWMpICYmCisJICAgIChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+d2FybmluZyAhPSBOVUxMKSkKKwkgICAgY3R4dC0+c2F4LT53YXJuaW5nKGN0eHQtPnVzZXJEYXRhLCAKKwkgICAgICJFbnRpdHkoJXMpIGFscmVhZHkgZGVmaW5lZCBpbiB0aGUgZXh0ZXJuYWwgc3Vic2V0XG4iLCBuYW1lKTsKKwlpZiAoKGVudCAhPSBOVUxMKSAmJiAoZW50LT5VUkkgPT0gTlVMTCkgJiYgKHN5c3RlbUlkICE9IE5VTEwpKSB7CisJICAgIHhtbENoYXIgKlVSSTsKKwkgICAgY29uc3QgY2hhciAqYmFzZSA9IE5VTEw7CisKKwkgICAgaWYgKGN0eHQtPmlucHV0ICE9IE5VTEwpCisJCWJhc2UgPSBjdHh0LT5pbnB1dC0+ZmlsZW5hbWU7CisJICAgIGlmIChiYXNlID09IE5VTEwpCisJCWJhc2UgPSBjdHh0LT5kaXJlY3Rvcnk7CisJCisJICAgIFVSSSA9IHhtbEJ1aWxkVVJJKHN5c3RlbUlkLCAoY29uc3QgeG1sQ2hhciAqKSBiYXNlKTsKKwkgICAgZW50LT5VUkkgPSBVUkk7CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgIHhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJICAgICAiU0FYLnhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2woJXMpIGNhbGxlZCB3aGlsZSBub3QgaW4gc3Vic2V0XG4iLAorCSAgICAgICAgICAgICAgIG5hbWUsIE5VTEwpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGxvYzogQSBTQVggTG9jYXRvcgorICoKKyAqIFJlY2VpdmUgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXQgc3RhcnR1cCwgYWN0dWFsbHkgeG1sRGVmYXVsdFNBWExvY2F0b3IKKyAqIEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuCisgKi8KK3ZvaWQKK3htbFNBWDJTZXREb2N1bWVudExvY2F0b3Iodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIHhtbFNBWExvY2F0b3JQdHIgbG9jIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgLyogeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsgKi8KKyNpZmRlZiBERUJVR19TQVgKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIlNBWC54bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yKClcbiIpOworI2VuZGlmCit9CisKKy8qKgorICogeG1sU0FYMlN0YXJ0RG9jdW1lbnQ6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogY2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IHN0YXJ0IGJlaW5nIHByb2Nlc3NlZC4KKyAqLwordm9pZAoreG1sU0FYMlN0YXJ0RG9jdW1lbnQodm9pZCAqY3R4KQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgeG1sRG9jUHRyIGRvYzsKKworICAgIGlmIChjdHggPT0gTlVMTCkgcmV0dXJuOworCisjaWZkZWYgREVCVUdfU0FYCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJTQVgueG1sU0FYMlN0YXJ0RG9jdW1lbnQoKVxuIik7CisjZW5kaWYKKyAgICBpZiAoY3R4dC0+aHRtbCkgeworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKwlpZiAoY3R4dC0+bXlEb2MgPT0gTlVMTCkKKwkgICAgY3R4dC0+bXlEb2MgPSBodG1sTmV3RG9jTm9EdEQoTlVMTCwgTlVMTCk7CisJY3R4dC0+bXlEb2MtPnByb3BlcnRpZXMgPSBYTUxfRE9DX0hUTUw7CisJY3R4dC0+bXlEb2MtPnBhcnNlRmxhZ3MgPSBjdHh0LT5vcHRpb25zOworCWlmIChjdHh0LT5teURvYyA9PSBOVUxMKSB7CisJICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJTdGFydERvY3VtZW50Iik7CisJICAgIHJldHVybjsKKwl9CisjZWxzZQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJImxpYnhtbDIgYnVpbHQgd2l0aG91dCBIVE1MIHN1cHBvcnRcbiIpOworCWN0eHQtPmVyck5vID0gWE1MX0VSUl9JTlRFUk5BTF9FUlJPUjsKKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisJY3R4dC0+ZGlzYWJsZVNBWCA9IDE7CisJcmV0dXJuOworI2VuZGlmCisgICAgfSBlbHNlIHsKKwlkb2MgPSBjdHh0LT5teURvYyA9IHhtbE5ld0RvYyhjdHh0LT52ZXJzaW9uKTsKKwlpZiAoZG9jICE9IE5VTEwpIHsKKwkgICAgZG9jLT5wcm9wZXJ0aWVzID0gMDsKKwkgICAgaWYgKGN0eHQtPm9wdGlvbnMgJiBYTUxfUEFSU0VfT0xEMTApCisJICAgICAgICBkb2MtPnByb3BlcnRpZXMgfD0gWE1MX0RPQ19PTEQxMDsKKwkgICAgZG9jLT5wYXJzZUZsYWdzID0gY3R4dC0+b3B0aW9uczsKKwkgICAgaWYgKGN0eHQtPmVuY29kaW5nICE9IE5VTEwpCisJCWRvYy0+ZW5jb2RpbmcgPSB4bWxTdHJkdXAoY3R4dC0+ZW5jb2RpbmcpOworCSAgICBlbHNlCisJCWRvYy0+ZW5jb2RpbmcgPSBOVUxMOworCSAgICBkb2MtPnN0YW5kYWxvbmUgPSBjdHh0LT5zdGFuZGFsb25lOworCX0gZWxzZSB7CisJICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJTdGFydERvY3VtZW50Iik7CisJICAgIHJldHVybjsKKwl9CisJaWYgKChjdHh0LT5kaWN0TmFtZXMpICYmIChkb2MgIT0gTlVMTCkpIHsKKwkgICAgZG9jLT5kaWN0ID0gY3R4dC0+ZGljdDsKKwkgICAgeG1sRGljdFJlZmVyZW5jZShkb2MtPmRpY3QpOworCX0KKyAgICB9CisgICAgaWYgKChjdHh0LT5teURvYyAhPSBOVUxMKSAmJiAoY3R4dC0+bXlEb2MtPlVSTCA9PSBOVUxMKSAmJgorCShjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJiAoY3R4dC0+aW5wdXQtPmZpbGVuYW1lICE9IE5VTEwpKSB7CisJY3R4dC0+bXlEb2MtPlVSTCA9IHhtbFBhdGhUb1VSSSgoY29uc3QgeG1sQ2hhciAqKWN0eHQtPmlucHV0LT5maWxlbmFtZSk7CisJaWYgKGN0eHQtPm15RG9jLT5VUkwgPT0gTlVMTCkKKwkgICAgeG1sU0FYMkVyck1lbW9yeShjdHh0LCAieG1sU0FYMlN0YXJ0RG9jdW1lbnQiKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU0FYMkVuZERvY3VtZW50OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICoKKyAqIGNhbGxlZCB3aGVuIHRoZSBkb2N1bWVudCBlbmQgaGFzIGJlZW4gZGV0ZWN0ZWQuCisgKi8KK3ZvaWQKK3htbFNBWDJFbmREb2N1bWVudCh2b2lkICpjdHgpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyNpZmRlZiBERUJVR19TQVgKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIlNBWC54bWxTQVgyRW5kRG9jdW1lbnQoKVxuIik7CisjZW5kaWYKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybjsKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorICAgIGlmIChjdHh0LT52YWxpZGF0ZSAmJiBjdHh0LT53ZWxsRm9ybWVkICYmCisgICAgICAgIGN0eHQtPm15RG9jICYmIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQpCisJY3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsKCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisKKyAgICAvKgorICAgICAqIEdyYWIgdGhlIGVuY29kaW5nIGlmIGl0IHdhcyBhZGRlZCBvbi10aGUtZmx5CisgICAgICovCisgICAgaWYgKChjdHh0LT5lbmNvZGluZyAhPSBOVUxMKSAmJiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkgJiYKKwkoY3R4dC0+bXlEb2MtPmVuY29kaW5nID09IE5VTEwpKSB7CisJY3R4dC0+bXlEb2MtPmVuY29kaW5nID0gY3R4dC0+ZW5jb2Rpbmc7CisJY3R4dC0+ZW5jb2RpbmcgPSBOVUxMOworICAgIH0KKyAgICBpZiAoKGN0eHQtPmlucHV0VGFiICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT5pbnB1dE5yID4gMCkgJiYgKGN0eHQtPmlucHV0VGFiWzBdICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT5pbnB1dFRhYlswXS0+ZW5jb2RpbmcgIT0gTlVMTCkgJiYgKGN0eHQtPm15RG9jICE9IE5VTEwpICYmCisJKGN0eHQtPm15RG9jLT5lbmNvZGluZyA9PSBOVUxMKSkgeworCWN0eHQtPm15RG9jLT5lbmNvZGluZyA9IHhtbFN0cmR1cChjdHh0LT5pbnB1dFRhYlswXS0+ZW5jb2RpbmcpOworICAgIH0KKyAgICBpZiAoKGN0eHQtPmNoYXJzZXQgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkgJiYgKGN0eHQtPm15RG9jICE9IE5VTEwpICYmCisJKGN0eHQtPm15RG9jLT5jaGFyc2V0ID09IFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpKSB7CisJY3R4dC0+bXlEb2MtPmNoYXJzZXQgPSBjdHh0LT5jaGFyc2V0OworICAgIH0KK30KKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKQorLyoqCisgKiB4bWxTQVgyQXR0cmlidXRlSW50ZXJuYWw6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAZnVsbG5hbWU6ICBUaGUgYXR0cmlidXRlIG5hbWUsIGluY2x1ZGluZyBuYW1lc3BhY2UgcHJlZml4CisgKiBAdmFsdWU6ICBUaGUgYXR0cmlidXRlIHZhbHVlCisgKiBAcHJlZml4OiB0aGUgcHJlZml4IG9uIHRoZSBlbGVtZW50IG5vZGUKKyAqCisgKiBIYW5kbGUgYW4gYXR0cmlidXRlIHRoYXQgaGFzIGJlZW4gcmVhZCBieSB0aGUgcGFyc2VyLgorICogVGhlIGRlZmF1bHQgaGFuZGxpbmcgaXMgdG8gY29udmVydCB0aGUgYXR0cmlidXRlIGludG8gYW4KKyAqIERPTSBzdWJ0cmVlIGFuZCBwYXN0IGl0IGluIGEgbmV3IHhtbEF0dHIgZWxlbWVudCBhZGRlZCB0bworICogdGhlIGVsZW1lbnQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTQVgyQXR0cmlidXRlSW50ZXJuYWwodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpmdWxsbmFtZSwKKyAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwgY29uc3QgeG1sQ2hhciAqcHJlZml4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxBdHRyUHRyIHJldDsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKm5zOworICAgIHhtbENoYXIgKm52YWw7CisgICAgeG1sTnNQdHIgbmFtZXNwYWNlOworCisgICAgaWYgKGN0eHQtPmh0bWwpIHsKKwluYW1lID0geG1sU3RyZHVwKGZ1bGxuYW1lKTsKKwlucyA9IE5VTEw7CisJbmFtZXNwYWNlID0gTlVMTDsKKyAgICB9IGVsc2UgeworCS8qCisJICogU3BsaXQgdGhlIGZ1bGwgbmFtZSBpbnRvIGEgbmFtZXNwYWNlIHByZWZpeCBhbmQgdGhlIHRhZyBuYW1lCisJICovCisJbmFtZSA9IHhtbFNwbGl0UU5hbWUoY3R4dCwgZnVsbG5hbWUsICZucyk7CisJaWYgKChuYW1lICE9IE5VTEwpICYmIChuYW1lWzBdID09IDApKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChucywgQkFEX0NBU1QgInhtbG5zIikpIHsKKwkJeG1sTnNFcnJNc2coY3R4dCwgWE1MX0VSUl9OU19ERUNMX0VSUk9SLAorCQkJICAgICJpbnZhbGlkIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiAnJXMnXG4iLAorCQkJICAgIGZ1bGxuYW1lLCBOVUxMKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sTnNXYXJuTXNnKGN0eHQsIFhNTF9XQVJfTlNfQ09MVU1OLAorCQkJICAgICAiQXZvaWQgYXR0cmlidXRlIGVuZGluZyB3aXRoICc6JyBsaWtlICclcydcbiIsCisJCQkgICAgIGZ1bGxuYW1lLCBOVUxMKTsKKwkgICAgfQorCSAgICBpZiAobnMgIT0gTlVMTCkKKwkJeG1sRnJlZShucyk7CisJICAgIG5zID0gTlVMTDsKKwkgICAgeG1sRnJlZShuYW1lKTsKKwkgICAgbmFtZSA9IHhtbFN0cmR1cChmdWxsbmFtZSk7CisJfQorICAgIH0KKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJTdGFydEVsZW1lbnQiKTsKKwlpZiAobnMgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShucyk7CisJcmV0dXJuOworICAgIH0KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICBpZiAoKGN0eHQtPmh0bWwpICYmCisgICAgICAgICh2YWx1ZSA9PSBOVUxMKSAmJiAoaHRtbElzQm9vbGVhbkF0dHIoZnVsbG5hbWUpKSkgeworICAgICAgICAgICAgbnZhbCA9IHhtbFN0cmR1cChmdWxsbmFtZSk7CisgICAgICAgICAgICB2YWx1ZSA9IChjb25zdCB4bWxDaGFyICopIG52YWw7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gdGhlIGxhc3Qgc3RhZ2Ugb2YgdGhlIGF0dHJpYnV0ZSBub3JtYWxpemF0aW9uCisgICAgICAgICAqIE5lZWRlZCBmb3IgSFRNTCB0b286CisgICAgICAgICAqICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvdHlwZXMuaHRtbCNoLTYuMgorICAgICAgICAgKi8KKyAgICAgICAgY3R4dC0+dmN0eHQudmFsaWQgPSAxOworICAgICAgICBudmFsID0geG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUoJmN0eHQtPnZjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5teURvYywgY3R4dC0+bm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbG5hbWUsIHZhbHVlKTsKKyAgICAgICAgaWYgKGN0eHQtPnZjdHh0LnZhbGlkICE9IDEpIHsKKyAgICAgICAgICAgIGN0eHQtPnZhbGlkID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAobnZhbCAhPSBOVUxMKQorICAgICAgICAgICAgdmFsdWUgPSBudmFsOworI2Vsc2UKKyAgICAgICAgbnZhbCA9IE5VTEw7CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKyAgICB9CisKKyAgICAvKgorICAgICAqIENoZWNrIHdoZXRoZXIgaXQncyBhIG5hbWVzcGFjZSBkZWZpbml0aW9uCisgICAgICovCisgICAgaWYgKCghY3R4dC0+aHRtbCkgJiYgKG5zID09IE5VTEwpICYmCisgICAgICAgIChuYW1lWzBdID09ICd4JykgJiYgKG5hbWVbMV0gPT0gJ20nKSAmJiAobmFtZVsyXSA9PSAnbCcpICYmCisgICAgICAgIChuYW1lWzNdID09ICduJykgJiYgKG5hbWVbNF0gPT0gJ3MnKSAmJiAobmFtZVs1XSA9PSAwKSkgeworCXhtbE5zUHRyIG5zcmV0OworCXhtbENoYXIgKnZhbDsKKworICAgICAgICBpZiAoIWN0eHQtPnJlcGxhY2VFbnRpdGllcykgeworCSAgICBjdHh0LT5kZXB0aCsrOworCSAgICB2YWwgPSB4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyhjdHh0LCB2YWx1ZSwgWE1MX1NVQlNUSVRVVEVfUkVGLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgIDAsMCwwKTsKKwkgICAgY3R4dC0+ZGVwdGgtLTsKKwl9IGVsc2UgeworCSAgICB2YWwgPSAoeG1sQ2hhciAqKSB2YWx1ZTsKKwl9CisKKwlpZiAodmFsWzBdICE9IDApIHsKKwkgICAgeG1sVVJJUHRyIHVyaTsKKworCSAgICB1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKXZhbCk7CisJICAgIGlmICh1cmkgPT0gTlVMTCkgeworCQlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT53YXJuaW5nICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT53YXJuaW5nKGN0eHQtPnVzZXJEYXRhLCAKKwkJCSAieG1sbnM6ICVzIG5vdCBhIHZhbGlkIFVSSVxuIiwgdmFsKTsKKwkgICAgfSBlbHNlIHsKKwkJaWYgKHVyaS0+c2NoZW1lID09IE5VTEwpIHsKKwkJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPndhcm5pbmcgIT0gTlVMTCkpCisJCQljdHh0LT5zYXgtPndhcm5pbmcoY3R4dC0+dXNlckRhdGEsIAorCQkJICAgICAieG1sbnM6IFVSSSAlcyBpcyBub3QgYWJzb2x1dGVcbiIsIHZhbCk7CisJCX0KKwkJeG1sRnJlZVVSSSh1cmkpOworCSAgICB9CisJfQorCisJLyogYSBkZWZhdWx0IG5hbWVzcGFjZSBkZWZpbml0aW9uICovCisJbnNyZXQgPSB4bWxOZXdOcyhjdHh0LT5ub2RlLCB2YWwsIE5VTEwpOworCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKwkvKgorCSAqIFZhbGlkYXRlIGFsc28gZm9yIG5hbWVzcGFjZSBkZWNscywgdGhleSBhcmUgYXR0cmlidXRlcyBmcm9tCisJICogYW4gWE1MLTEuMCBwZXJzcGVjdGl2ZQorCSAqLworICAgICAgICBpZiAobnNyZXQgIT0gTlVMTCAmJiBjdHh0LT52YWxpZGF0ZSAmJiBjdHh0LT53ZWxsRm9ybWVkICYmCisJICAgIGN0eHQtPm15RG9jICYmIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQpCisJICAgIGN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlT25lTmFtZXNwYWNlKCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MsCisJCQkJCSAgIGN0eHQtPm5vZGUsIHByZWZpeCwgbnNyZXQsIHZhbCk7CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKwlpZiAobmFtZSAhPSBOVUxMKSAKKwkgICAgeG1sRnJlZShuYW1lKTsKKwlpZiAobnZhbCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKG52YWwpOworCWlmICh2YWwgIT0gdmFsdWUpCisJICAgIHhtbEZyZWUodmFsKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmICgoIWN0eHQtPmh0bWwpICYmCisJKG5zICE9IE5VTEwpICYmIChuc1swXSA9PSAneCcpICYmIChuc1sxXSA9PSAnbScpICYmIChuc1syXSA9PSAnbCcpICYmCisgICAgICAgIChuc1szXSA9PSAnbicpICYmIChuc1s0XSA9PSAncycpICYmIChuc1s1XSA9PSAwKSkgeworCXhtbE5zUHRyIG5zcmV0OworCXhtbENoYXIgKnZhbDsKKworICAgICAgICBpZiAoIWN0eHQtPnJlcGxhY2VFbnRpdGllcykgeworCSAgICBjdHh0LT5kZXB0aCsrOworCSAgICB2YWwgPSB4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyhjdHh0LCB2YWx1ZSwgWE1MX1NVQlNUSVRVVEVfUkVGLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgIDAsMCwwKTsKKwkgICAgY3R4dC0+ZGVwdGgtLTsKKwkgICAgaWYgKHZhbCA9PSBOVUxMKSB7CisJICAgICAgICB4bWxTQVgyRXJyTWVtb3J5KGN0eHQsICJ4bWxTQVgyU3RhcnRFbGVtZW50Iik7CisJICAgICAgICB4bWxGcmVlKG5zKTsKKwkJaWYgKG5hbWUgIT0gTlVMTCkgCisJCSAgICB4bWxGcmVlKG5hbWUpOworCQlyZXR1cm47CisJICAgIH0KKwl9IGVsc2UgeworCSAgICB2YWwgPSAoeG1sQ2hhciAqKSB2YWx1ZTsKKwl9CisKKwlpZiAodmFsWzBdID09IDApIHsKKwkgICAgeG1sTnNFcnJNc2coY3R4dCwgWE1MX05TX0VSUl9FTVBUWSwKKwkJICAgICAgICAiRW1wdHkgbmFtZXNwYWNlIG5hbWUgZm9yIHByZWZpeCAlc1xuIiwgbmFtZSwgTlVMTCk7CisJfQorCWlmICgoY3R4dC0+cGVkYW50aWMgIT0gMCkgJiYgKHZhbFswXSAhPSAwKSkgeworCSAgICB4bWxVUklQdHIgdXJpOworCisJICAgIHVyaSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopdmFsKTsKKwkgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisJICAgICAgICB4bWxOc1dhcm5Nc2coY3R4dCwgWE1MX1dBUl9OU19VUkksCisJCQkgInhtbG5zOiVzOiAlcyBub3QgYSB2YWxpZCBVUklcbiIsIG5hbWUsIHZhbHVlKTsKKwkgICAgfSBlbHNlIHsKKwkJaWYgKHVyaS0+c2NoZW1lID09IE5VTEwpIHsKKwkJICAgIHhtbE5zV2Fybk1zZyhjdHh0LCBYTUxfV0FSX05TX1VSSV9SRUxBVElWRSwKKwkJCSAgICJ4bWxuczolczogVVJJICVzIGlzIG5vdCBhYnNvbHV0ZVxuIiwgbmFtZSwgdmFsdWUpOworCQl9CisJCXhtbEZyZWVVUkkodXJpKTsKKwkgICAgfQorCX0KKworCS8qIGEgc3RhbmRhcmQgbmFtZXNwYWNlIGRlZmluaXRpb24gKi8KKwluc3JldCA9IHhtbE5ld05zKGN0eHQtPm5vZGUsIHZhbCwgbmFtZSk7CisJeG1sRnJlZShucyk7CisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKwkvKgorCSAqIFZhbGlkYXRlIGFsc28gZm9yIG5hbWVzcGFjZSBkZWNscywgdGhleSBhcmUgYXR0cmlidXRlcyBmcm9tCisJICogYW4gWE1MLTEuMCBwZXJzcGVjdGl2ZQorCSAqLworICAgICAgICBpZiAobnNyZXQgIT0gTlVMTCAmJiBjdHh0LT52YWxpZGF0ZSAmJiBjdHh0LT53ZWxsRm9ybWVkICYmCisJICAgIGN0eHQtPm15RG9jICYmIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQpCisJICAgIGN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlT25lTmFtZXNwYWNlKCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MsCisJCQkJCSAgIGN0eHQtPm5vZGUsIHByZWZpeCwgbnNyZXQsIHZhbHVlKTsKKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworCWlmIChuYW1lICE9IE5VTEwpIAorCSAgICB4bWxGcmVlKG5hbWUpOworCWlmIChudmFsICE9IE5VTEwpCisJICAgIHhtbEZyZWUobnZhbCk7CisJaWYgKHZhbCAhPSB2YWx1ZSkKKwkgICAgeG1sRnJlZSh2YWwpOworCXJldHVybjsKKyAgICB9CisKKyAgICBpZiAobnMgIT0gTlVMTCkgeworCW5hbWVzcGFjZSA9IHhtbFNlYXJjaE5zKGN0eHQtPm15RG9jLCBjdHh0LT5ub2RlLCBucyk7CisKKwlpZiAobmFtZXNwYWNlID09IE5VTEwpIHsKKwkgICAgeG1sTnNFcnJNc2coY3R4dCwgWE1MX05TX0VSUl9VTkRFRklORURfTkFNRVNQQUNFLAorCQkgICAgIk5hbWVzcGFjZSBwcmVmaXggJXMgb2YgYXR0cmlidXRlICVzIGlzIG5vdCBkZWZpbmVkXG4iLAorCQkgICAgICAgICAgICAgbnMsIG5hbWUpOworCX0gZWxzZSB7CisgICAgICAgICAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICAgICAgICAgIHByb3AgPSBjdHh0LT5ub2RlLT5wcm9wZXJ0aWVzOworICAgICAgICAgICAgd2hpbGUgKHByb3AgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGlmIChwcm9wLT5ucyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoeG1sU3RyRXF1YWwobmFtZSwgcHJvcC0+bmFtZSkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoKG5hbWVzcGFjZSA9PSBwcm9wLT5ucykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwobmFtZXNwYWNlLT5ocmVmLCBwcm9wLT5ucy0+aHJlZikpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5zRXJyTXNnKGN0eHQsIFhNTF9FUlJfQVRUUklCVVRFX1JFREVGSU5FRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBdHRyaWJ1dGUgJXMgaW4gJXMgcmVkZWZpbmVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgbmFtZXNwYWNlLT5ocmVmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPndlbGxGb3JtZWQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnJlY292ZXJ5ID09IDApIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcm9wID0gcHJvcC0+bmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisJbmFtZXNwYWNlID0gTlVMTDsKKyAgICB9CisKKyAgICAvKiAhISEhISEgPGEgdG90bzphcmc9IiIgeG1sbnM6dG90bz0iaHR0cDovL3RvdG8uY29tIj4gKi8KKyAgICByZXQgPSB4bWxOZXdOc1Byb3BFYXROYW1lKGN0eHQtPm5vZGUsIG5hbWVzcGFjZSwgbmFtZSwgTlVMTCk7CisKKyAgICBpZiAocmV0ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChjdHh0LT5yZXBsYWNlRW50aXRpZXMgPT0gMCkgJiYgKCFjdHh0LT5odG1sKSkgeworCSAgICB4bWxOb2RlUHRyIHRtcDsKKworCSAgICByZXQtPmNoaWxkcmVuID0geG1sU3RyaW5nR2V0Tm9kZUxpc3QoY3R4dC0+bXlEb2MsIHZhbHVlKTsKKwkgICAgdG1wID0gcmV0LT5jaGlsZHJlbjsKKwkgICAgd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJCXRtcC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIHJldDsKKwkJaWYgKHRtcC0+bmV4dCA9PSBOVUxMKQorCQkgICAgcmV0LT5sYXN0ID0gdG1wOworCQl0bXAgPSB0bXAtPm5leHQ7CisJICAgIH0KKwl9IGVsc2UgaWYgKHZhbHVlICE9IE5VTEwpIHsKKwkgICAgcmV0LT5jaGlsZHJlbiA9IHhtbE5ld0RvY1RleHQoY3R4dC0+bXlEb2MsIHZhbHVlKTsKKwkgICAgcmV0LT5sYXN0ID0gcmV0LT5jaGlsZHJlbjsKKwkgICAgaWYgKHJldC0+Y2hpbGRyZW4gIT0gTlVMTCkKKwkJcmV0LT5jaGlsZHJlbi0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIHJldDsKKwl9CisgICAgfQorCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICBpZiAoKCFjdHh0LT5odG1sKSAmJiBjdHh0LT52YWxpZGF0ZSAmJiBjdHh0LT53ZWxsRm9ybWVkICYmCisgICAgICAgIGN0eHQtPm15RG9jICYmIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQpIHsKKwkKKwkvKgorCSAqIElmIHdlIGRvbid0IHN1YnN0aXR1dGUgZW50aXRpZXMsIHRoZSB2YWxpZGF0aW9uIHNob3VsZCBiZQorCSAqIGRvbmUgb24gYSB2YWx1ZSB3aXRoIHJlcGxhY2VkIGVudGl0aWVzIGFueXdheS4KKwkgKi8KKyAgICAgICAgaWYgKCFjdHh0LT5yZXBsYWNlRW50aXRpZXMpIHsKKwkgICAgeG1sQ2hhciAqdmFsOworCisJICAgIGN0eHQtPmRlcHRoKys7CisJICAgIHZhbCA9IHhtbFN0cmluZ0RlY29kZUVudGl0aWVzKGN0eHQsIHZhbHVlLCBYTUxfU1VCU1RJVFVURV9SRUYsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgMCwwLDApOworCSAgICBjdHh0LT5kZXB0aC0tOworCSAgICAKKwkgICAgaWYgKHZhbCA9PSBOVUxMKQorCQljdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSgmY3R4dC0+dmN0eHQsCisJCQkJY3R4dC0+bXlEb2MsIGN0eHQtPm5vZGUsIHJldCwgdmFsdWUpOworCSAgICBlbHNlIHsKKwkJeG1sQ2hhciAqbnZhbG5vcm07CisKKwkJLyoKKwkJICogRG8gdGhlIGxhc3Qgc3RhZ2Ugb2YgdGhlIGF0dHJpYnV0ZSBub3JtYWxpemF0aW9uCisJCSAqIEl0IG5lZWQgdG8gYmUgZG9uZSB0d2ljZSAuLi4gaXQncyBhbiBleHRyYSBidXJkZW4gcmVsYXRlZAorCQkgKiB0byB0aGUgYWJpbGl0eSB0byBrZWVwIHhtbFNBWDJSZWZlcmVuY2VzIGluIGF0dHJpYnV0ZXMKKwkJICovCisJCW52YWxub3JtID0geG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZShjdHh0LT5teURvYywKKwkJCQkJICAgIGN0eHQtPm5vZGUsIGZ1bGxuYW1lLCB2YWwpOworCQlpZiAobnZhbG5vcm0gIT0gTlVMTCkgeworCQkgICAgeG1sRnJlZSh2YWwpOworCQkgICAgdmFsID0gbnZhbG5vcm07CisJCX0KKworCQljdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSgmY3R4dC0+dmN0eHQsCisJCQkgICAgICAgIGN0eHQtPm15RG9jLCBjdHh0LT5ub2RlLCByZXQsIHZhbCk7CisgICAgICAgICAgICAgICAgeG1sRnJlZSh2YWwpOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgY3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUoJmN0eHQtPnZjdHh0LCBjdHh0LT5teURvYywKKwkJCQkJICAgICAgIGN0eHQtPm5vZGUsIHJldCwgdmFsdWUpOworCX0KKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworICAgICAgICAgICBpZiAoKChjdHh0LT5sb2Fkc3Vic2V0ICYgWE1MX1NLSVBfSURTKSA9PSAwKSAmJgorCSAgICAgICAoKChjdHh0LT5yZXBsYWNlRW50aXRpZXMgPT0gMCkgJiYgKGN0eHQtPmV4dGVybmFsICE9IDIpKSB8fAorCSAgICAgICAgKChjdHh0LT5yZXBsYWNlRW50aXRpZXMgIT0gMCkgJiYgKGN0eHQtPmluU3Vic2V0ID09IDApKSkpIHsKKyAgICAgICAgLyoKKwkgKiB3aGVuIHZhbGlkYXRpbmcsIHRoZSBJRCByZWdpc3RyYXRpb24gaXMgZG9uZSBhdCB0aGUgYXR0cmlidXRlCisJICogdmFsaWRhdGlvbiBsZXZlbC4gT3RoZXJ3aXNlIHdlIGhhdmUgdG8gZG8gc3BlY2lmaWMgaGFuZGxpbmcgaGVyZS4KKwkgKi8KKwlpZiAoeG1sU3RyRXF1YWwoZnVsbG5hbWUsIEJBRF9DQVNUICJ4bWw6aWQiKSkgeworCSAgICAvKgorCSAgICAgKiBBZGQgdGhlIHhtbDppZCB2YWx1ZQorCSAgICAgKgorCSAgICAgKiBPcGVuIGlzc3VlOiBub3JtYWxpemF0aW9uIG9mIHRoZSB2YWx1ZS4KKwkgICAgICovCisJICAgIGlmICh4bWxWYWxpZGF0ZU5DTmFtZSh2YWx1ZSwgMSkgIT0gMCkgeworCSAgICAgICAgeG1sRXJyVmFsaWQoY3R4dCwgWE1MX0RURF9YTUxJRF9WQUxVRSwKKwkJICAgICAgInhtbDppZCA6IGF0dHJpYnV0ZSB2YWx1ZSAlcyBpcyBub3QgYW4gTkNOYW1lXG4iLAorCQkJICAgIChjb25zdCBjaGFyICopIHZhbHVlLCBOVUxMKTsKKwkgICAgfQorCSAgICB4bWxBZGRJRCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jLCB2YWx1ZSwgcmV0KTsKKwl9IGVsc2UgaWYgKHhtbElzSUQoY3R4dC0+bXlEb2MsIGN0eHQtPm5vZGUsIHJldCkpCisJICAgIHhtbEFkZElEKCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MsIHZhbHVlLCByZXQpOworCWVsc2UgaWYgKHhtbElzUmVmKGN0eHQtPm15RG9jLCBjdHh0LT5ub2RlLCByZXQpKQorCSAgICB4bWxBZGRSZWYoJmN0eHQtPnZjdHh0LCBjdHh0LT5teURvYywgdmFsdWUsIHJldCk7CisgICAgfQorCitlcnJvcjoKKyAgICBpZiAobnZhbCAhPSBOVUxMKQorCXhtbEZyZWUobnZhbCk7CisgICAgaWYgKG5zICE9IE5VTEwpIAorCXhtbEZyZWUobnMpOworfQorCisvKgorICogeG1sQ2hlY2tEZWZhdWx0ZWRBdHRyaWJ1dGVzOgorICoKKyAqIENoZWNrIGRlZmF1bHRlZCBhdHRyaWJ1dGVzIGZyb20gdGhlIERURAorICovCitzdGF0aWMgdm9pZAoreG1sQ2hlY2tEZWZhdWx0ZWRBdHRyaWJ1dGVzKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwljb25zdCB4bWxDaGFyICpwcmVmaXgsIGNvbnN0IHhtbENoYXIgKiphdHRzKSB7CisgICAgeG1sRWxlbWVudFB0ciBlbGVtRGVjbDsKKyAgICBjb25zdCB4bWxDaGFyICphdHQ7CisgICAgaW50IGludGVybmFsID0gMTsKKyAgICBpbnQgaTsKKworICAgIGVsZW1EZWNsID0geG1sR2V0RHRkUUVsZW1lbnREZXNjKGN0eHQtPm15RG9jLT5pbnRTdWJzZXQsIG5hbWUsIHByZWZpeCk7CisgICAgaWYgKGVsZW1EZWNsID09IE5VTEwpIHsKKwllbGVtRGVjbCA9IHhtbEdldER0ZFFFbGVtZW50RGVzYyhjdHh0LT5teURvYy0+ZXh0U3Vic2V0LCBuYW1lLCBwcmVmaXgpOworCWludGVybmFsID0gMDsKKyAgICB9CisKK3Byb2Nlc3NfZXh0ZXJuYWxfc3Vic2V0OgorCisgICAgaWYgKGVsZW1EZWNsICE9IE5VTEwpIHsKKwl4bWxBdHRyaWJ1dGVQdHIgYXR0ciA9IGVsZW1EZWNsLT5hdHRyaWJ1dGVzOworCS8qCisJICogQ2hlY2sgYWdhaW5zdCBkZWZhdWx0ZWQgYXR0cmlidXRlcyBmcm9tIHRoZSBleHRlcm5hbCBzdWJzZXQKKwkgKiBpZiB0aGUgZG9jdW1lbnQgaXMgc3RhbXBlZCBhcyBzdGFuZGFsb25lCisJICovCisJaWYgKChjdHh0LT5teURvYy0+c3RhbmRhbG9uZSA9PSAxKSAmJgorCSAgICAoY3R4dC0+bXlEb2MtPmV4dFN1YnNldCAhPSBOVUxMKSAmJgorCSAgICAoY3R4dC0+dmFsaWRhdGUpKSB7CisJICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkJaWYgKChhdHRyLT5kZWZhdWx0VmFsdWUgIT0gTlVMTCkgJiYKKwkJICAgICh4bWxHZXREdGRRQXR0ckRlc2MoY3R4dC0+bXlEb2MtPmV4dFN1YnNldCwKKwkJCQkJYXR0ci0+ZWxlbSwgYXR0ci0+bmFtZSwKKwkJCQkJYXR0ci0+cHJlZml4KSA9PSBhdHRyKSAmJgorCQkgICAgKHhtbEdldER0ZFFBdHRyRGVzYyhjdHh0LT5teURvYy0+aW50U3Vic2V0LAorCQkJCQlhdHRyLT5lbGVtLCBhdHRyLT5uYW1lLAorCQkJCQlhdHRyLT5wcmVmaXgpID09IE5VTEwpKSB7CisJCSAgICB4bWxDaGFyICpmdWxsbjsKKworCQkgICAgaWYgKGF0dHItPnByZWZpeCAhPSBOVUxMKSB7CisJCQlmdWxsbiA9IHhtbFN0cmR1cChhdHRyLT5wcmVmaXgpOworCQkJZnVsbG4gPSB4bWxTdHJjYXQoZnVsbG4sIEJBRF9DQVNUICI6Iik7CisJCQlmdWxsbiA9IHhtbFN0cmNhdChmdWxsbiwgYXR0ci0+bmFtZSk7CisJCSAgICB9IGVsc2UgeworCQkJZnVsbG4gPSB4bWxTdHJkdXAoYXR0ci0+bmFtZSk7CisJCSAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChmdWxsbiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxTQVgyRXJyTWVtb3J5KGN0eHQsICJ4bWxTQVgyU3RhcnRFbGVtZW50Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisJCSAgICAvKgorCQkgICAgICogQ2hlY2sgdGhhdCB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWNsYXJlZCBpbiB0aGUKKwkJICAgICAqIHNlcmlhbGl6YXRpb24KKwkJICAgICAqLworCQkgICAgYXR0ID0gTlVMTDsKKwkJICAgIGlmIChhdHRzICE9IE5VTEwpIHsKKwkJCWkgPSAwOworCQkJYXR0ID0gYXR0c1tpXTsKKwkJCXdoaWxlIChhdHQgIT0gTlVMTCkgeworCQkJICAgIGlmICh4bWxTdHJFcXVhbChhdHQsIGZ1bGxuKSkKKwkJCQlicmVhazsKKwkJCSAgICBpICs9IDI7CisJCQkgICAgYXR0ID0gYXR0c1tpXTsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGlmIChhdHQgPT0gTlVMTCkgeworCQkgICAgICAgIHhtbEVyclZhbGlkKGN0eHQsIFhNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQsCisgICAgICAic3RhbmRhbG9uZTogYXR0cmlidXRlICVzIG9uICVzIGRlZmF1bHRlZCBmcm9tIGV4dGVybmFsIHN1YnNldFxuIiwKKwkJCQkgICAgKGNvbnN0IGNoYXIgKilmdWxsbiwKKwkJCQkgICAgKGNvbnN0IGNoYXIgKilhdHRyLT5lbGVtKTsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShmdWxsbik7CisJCX0KKwkJYXR0ciA9IGF0dHItPm5leHRoOworCSAgICB9CisJfQorCisJLyoKKwkgKiBBY3R1YWxseSBpbnNlcnQgZGVmYXVsdGVkIHZhbHVlcyB3aGVuIG5lZWRlZAorCSAqLworCWF0dHIgPSBlbGVtRGVjbC0+YXR0cmlidXRlczsKKwl3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICAqIE1ha2Ugc3VyZSB0aGF0IGF0dHJpYnV0ZXMgcmVkZWZpbml0aW9uIG9jY3VyaW5nIGluIHRoZQorCSAgICAgKiBpbnRlcm5hbCBzdWJzZXQgYXJlIG5vdCBvdmVycmlkZW4gYnkgZGVmaW5pdGlvbnMgaW4gdGhlCisJICAgICAqIGV4dGVybmFsIHN1YnNldC4KKwkgICAgICovCisJICAgIGlmIChhdHRyLT5kZWZhdWx0VmFsdWUgIT0gTlVMTCkgeworCQkvKgorCQkgKiB0aGUgZWxlbWVudCBzaG91bGQgYmUgaW5zdGFudGlhdGVkIGluIHRoZSB0cmVlIGlmOgorCQkgKiAgLSB0aGlzIGlzIGEgbmFtZXNwYWNlIHByZWZpeAorCQkgKiAgLSB0aGUgdXNlciByZXF1aXJlZCBmb3IgY29tcGxldGlvbiBpbiB0aGUgdHJlZQorCQkgKiAgICBsaWtlIFhTTFQKKwkJICogIC0gdGhlcmUgaXNuJ3QgYWxyZWFkeSBhbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiAKKwkJICogICAgaW4gdGhlIGludGVybmFsIHN1YnNldCBvdmVycmlkaW5nIGl0LgorCQkgKi8KKwkJaWYgKCgoYXR0ci0+cHJlZml4ICE9IE5VTEwpICYmCisJCSAgICAgKHhtbFN0ckVxdWFsKGF0dHItPnByZWZpeCwgQkFEX0NBU1QgInhtbG5zIikpKSB8fAorCQkgICAgKChhdHRyLT5wcmVmaXggPT0gTlVMTCkgJiYKKwkJICAgICAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInhtbG5zIikpKSB8fAorCQkgICAgKGN0eHQtPmxvYWRzdWJzZXQgJiBYTUxfQ09NUExFVEVfQVRUUlMpKSB7CisJCSAgICB4bWxBdHRyaWJ1dGVQdHIgdHN0OworCisJCSAgICB0c3QgPSB4bWxHZXREdGRRQXR0ckRlc2MoY3R4dC0+bXlEb2MtPmludFN1YnNldCwKKwkJCQkJICAgICBhdHRyLT5lbGVtLCBhdHRyLT5uYW1lLAorCQkJCQkgICAgIGF0dHItPnByZWZpeCk7CisJCSAgICBpZiAoKHRzdCA9PSBhdHRyKSB8fCAodHN0ID09IE5VTEwpKSB7CisJCSAgICAgICAgeG1sQ2hhciBmbls1MF07CisJCQl4bWxDaGFyICpmdWxsbjsKKworICAgICAgICAgICAgICAgICAgICAgICAgZnVsbG4gPSB4bWxCdWlsZFFOYW1lKGF0dHItPm5hbWUsIGF0dHItPnByZWZpeCwgZm4sIDUwKTsKKwkJCWlmIChmdWxsbiA9PSBOVUxMKSB7CisJCQkgICAgeG1sU0FYMkVyck1lbW9yeShjdHh0LCAieG1sU0FYMlN0YXJ0RWxlbWVudCIpOworCQkJICAgIHJldHVybjsKKwkJCX0KKworCQkJLyoKKwkJCSAqIENoZWNrIHRoYXQgdGhlIGF0dHJpYnV0ZSBpcyBub3QgZGVjbGFyZWQgaW4gdGhlCisJCQkgKiBzZXJpYWxpemF0aW9uCisJCQkgKi8KKwkJCWF0dCA9IE5VTEw7CisJCQlpZiAoYXR0cyAhPSBOVUxMKSB7CisJCQkgICAgaSA9IDA7CisJCQkgICAgYXR0ID0gYXR0c1tpXTsKKwkJCSAgICB3aGlsZSAoYXR0ICE9IE5VTEwpIHsKKwkJCQlpZiAoeG1sU3RyRXF1YWwoYXR0LCBmdWxsbikpCisJCQkJICAgIGJyZWFrOworCQkJCWkgKz0gMjsKKwkJCQlhdHQgPSBhdHRzW2ldOworCQkJICAgIH0KKwkJCX0KKwkJCWlmIChhdHQgPT0gTlVMTCkgeworCQkJICAgIHhtbFNBWDJBdHRyaWJ1dGVJbnRlcm5hbChjdHh0LCBmdWxsbiwKKwkJCQkJCSBhdHRyLT5kZWZhdWx0VmFsdWUsIHByZWZpeCk7CisJCQl9CisJCQlpZiAoKGZ1bGxuICE9IGZuKSAmJiAoZnVsbG4gIT0gYXR0ci0+bmFtZSkpCisJCQkgICAgeG1sRnJlZShmdWxsbik7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBhdHRyID0gYXR0ci0+bmV4dGg7CisJfQorCWlmIChpbnRlcm5hbCA9PSAxKSB7CisJICAgIGVsZW1EZWNsID0geG1sR2V0RHRkUUVsZW1lbnREZXNjKGN0eHQtPm15RG9jLT5leHRTdWJzZXQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgcHJlZml4KTsKKwkgICAgaW50ZXJuYWwgPSAwOworCSAgICBnb3RvIHByb2Nlc3NfZXh0ZXJuYWxfc3Vic2V0OworCX0KKyAgICB9Cit9CisKKy8qKgorICogeG1sU0FYMlN0YXJ0RWxlbWVudDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBmdWxsbmFtZTogIFRoZSBlbGVtZW50IG5hbWUsIGluY2x1ZGluZyBuYW1lc3BhY2UgcHJlZml4CisgKiBAYXR0czogIEFuIGFycmF5IG9mIG5hbWUvdmFsdWUgYXR0cmlidXRlcyBwYWlycywgTlVMTCB0ZXJtaW5hdGVkCisgKgorICogY2FsbGVkIHdoZW4gYW4gb3BlbmluZyB0YWcgaGFzIGJlZW4gcHJvY2Vzc2VkLgorICovCit2b2lkCit4bWxTQVgyU3RhcnRFbGVtZW50KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqZnVsbG5hbWUsIGNvbnN0IHhtbENoYXIgKiphdHRzKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgeG1sTm9kZVB0ciByZXQ7CisgICAgeG1sTm9kZVB0ciBwYXJlbnQ7CisgICAgeG1sTnNQdHIgbnM7CisgICAgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxDaGFyICpwcmVmaXg7CisgICAgY29uc3QgeG1sQ2hhciAqYXR0OworICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlOworICAgIGludCBpOworCisgICAgaWYgKChjdHggPT0gTlVMTCkgfHwgKGZ1bGxuYW1lID09IE5VTEwpIHx8IChjdHh0LT5teURvYyA9PSBOVUxMKSkgcmV0dXJuOworICAgIHBhcmVudCA9IGN0eHQtPm5vZGU7CisjaWZkZWYgREVCVUdfU0FYCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJTQVgueG1sU0FYMlN0YXJ0RWxlbWVudCglcylcbiIsIGZ1bGxuYW1lKTsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBGaXJzdCBjaGVjayBvbiB2YWxpZGl0eToKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+dmFsaWRhdGUgJiYgKGN0eHQtPm15RG9jLT5leHRTdWJzZXQgPT0gTlVMTCkgJiYgCisgICAgICAgICgoY3R4dC0+bXlEb2MtPmludFN1YnNldCA9PSBOVUxMKSB8fAorCSAoKGN0eHQtPm15RG9jLT5pbnRTdWJzZXQtPm5vdGF0aW9ucyA9PSBOVUxMKSAmJiAKKwkgIChjdHh0LT5teURvYy0+aW50U3Vic2V0LT5lbGVtZW50cyA9PSBOVUxMKSAmJgorCSAgKGN0eHQtPm15RG9jLT5pbnRTdWJzZXQtPmF0dHJpYnV0ZXMgPT0gTlVMTCkgJiYgCisJICAoY3R4dC0+bXlEb2MtPmludFN1YnNldC0+ZW50aXRpZXMgPT0gTlVMTCkpKSkgeworCXhtbEVyclZhbGlkKGN0eHQsIFhNTF9FUlJfTk9fRFRELAorCSAgIlZhbGlkYXRpb24gZmFpbGVkOiBubyBEVEQgZm91bmQgISIsIE5VTEwsIE5VTEwpOworCWN0eHQtPnZhbGlkYXRlID0gMDsKKyAgICB9CisgICAgICAgCisKKyAgICAvKgorICAgICAqIFNwbGl0IHRoZSBmdWxsIG5hbWUgaW50byBhIG5hbWVzcGFjZSBwcmVmaXggYW5kIHRoZSB0YWcgbmFtZQorICAgICAqLworICAgIG5hbWUgPSB4bWxTcGxpdFFOYW1lKGN0eHQsIGZ1bGxuYW1lLCAmcHJlZml4KTsKKworCisgICAgLyoKKyAgICAgKiBOb3RlIDogdGhlIG5hbWVzcGFjZSByZXNvbHV0aW9uIGlzIGRlZmVycmVkIHVudGlsIHRoZSBlbmQgb2YgdGhlCisgICAgICogICAgICAgIGF0dHJpYnV0ZXMgcGFyc2luZywgc2luY2UgbG9jYWwgbmFtZXNwYWNlIGNhbiBiZSBkZWZpbmVkIGFzCisgICAgICogICAgICAgIGFuIGF0dHJpYnV0ZSBhdCB0aGlzIGxldmVsLgorICAgICAqLworICAgIHJldCA9IHhtbE5ld0RvY05vZGVFYXROYW1lKGN0eHQtPm15RG9jLCBOVUxMLCBuYW1lLCBOVUxMKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHByZWZpeCk7CisJeG1sU0FYMkVyck1lbW9yeShjdHh0LCAieG1sU0FYMlN0YXJ0RWxlbWVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChjdHh0LT5teURvYy0+Y2hpbGRyZW4gPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJTZXR0aW5nICVzIGFzIHJvb3RcbiIsIG5hbWUpOworI2VuZGlmCisgICAgICAgIHhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBjdHh0LT5teURvYywgKHhtbE5vZGVQdHIpIHJldCk7CisgICAgfSBlbHNlIGlmIChwYXJlbnQgPT0gTlVMTCkgeworICAgICAgICBwYXJlbnQgPSBjdHh0LT5teURvYy0+Y2hpbGRyZW47CisgICAgfQorICAgIGN0eHQtPm5vZGVtZW0gPSAtMTsKKyAgICBpZiAoY3R4dC0+bGluZW51bWJlcnMpIHsKKwlpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgeworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmxpbmUgPCA2NTUzNSkKKwkJcmV0LT5saW5lID0gKHNob3J0KSBjdHh0LT5pbnB1dC0+bGluZTsKKwkgICAgZWxzZQorCSAgICAgICAgcmV0LT5saW5lID0gNjU1MzU7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogV2UgYXJlIHBhcnNpbmcgYSBuZXcgbm9kZS4KKyAgICAgKi8KKyNpZmRlZiBERUJVR19TQVhfVFJFRQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAicHVzaGluZyglcylcbiIsIG5hbWUpOworI2VuZGlmCisgICAgbm9kZVB1c2goY3R4dCwgcmV0KTsKKworICAgIC8qCisgICAgICogTGluayB0aGUgY2hpbGQgZWxlbWVudAorICAgICAqLworICAgIGlmIChwYXJlbnQgIT0gTlVMTCkgeworICAgICAgICBpZiAocGFyZW50LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKyNpZmRlZiBERUJVR19TQVhfVFJFRQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJhZGRpbmcgY2hpbGQgJXMgdG8gJXNcbiIsIG5hbWUsIHBhcmVudC0+bmFtZSk7CisjZW5kaWYKKwkgICAgeG1sQWRkQ2hpbGQocGFyZW50LCByZXQpOworCX0gZWxzZSB7CisjaWZkZWYgREVCVUdfU0FYX1RSRUUKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiYWRkaW5nIHNpYmxpbmcgJXMgdG8gIiwgbmFtZSk7CisJICAgIHhtbERlYnVnRHVtcE9uZU5vZGUoc3RkZXJyLCBwYXJlbnQsIDApOworI2VuZGlmCisJICAgIHhtbEFkZFNpYmxpbmcocGFyZW50LCByZXQpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEluc2VydCBhbGwgdGhlIGRlZmF1bHRlZCBhdHRyaWJ1dGVzIGZyb20gdGhlIERURCBlc3BlY2lhbGx5IG5hbWVzcGFjZXMKKyAgICAgKi8KKyAgICBpZiAoKCFjdHh0LT5odG1sKSAmJgorCSgoY3R4dC0+bXlEb2MtPmludFN1YnNldCAhPSBOVUxMKSB8fAorCSAoY3R4dC0+bXlEb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkpIHsKKwl4bWxDaGVja0RlZmF1bHRlZEF0dHJpYnV0ZXMoY3R4dCwgbmFtZSwgcHJlZml4LCBhdHRzKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIHByb2Nlc3MgYWxsIHRoZSBhdHRyaWJ1dGVzIHdob3NlIG5hbWUgc3RhcnQgd2l0aCAieG1sbnMiCisgICAgICovCisgICAgaWYgKGF0dHMgIT0gTlVMTCkgeworICAgICAgICBpID0gMDsKKwlhdHQgPSBhdHRzW2krK107CisJdmFsdWUgPSBhdHRzW2krK107CisJaWYgKCFjdHh0LT5odG1sKSB7CisJICAgIHdoaWxlICgoYXR0ICE9IE5VTEwpICYmICh2YWx1ZSAhPSBOVUxMKSkgeworCQlpZiAoKGF0dFswXSA9PSAneCcpICYmIChhdHRbMV0gPT0gJ20nKSAmJiAoYXR0WzJdID09ICdsJykgJiYKKwkJICAgIChhdHRbM10gPT0gJ24nKSAmJiAoYXR0WzRdID09ICdzJykpCisJCSAgICB4bWxTQVgyQXR0cmlidXRlSW50ZXJuYWwoY3R4dCwgYXR0LCB2YWx1ZSwgcHJlZml4KTsKKworCQlhdHQgPSBhdHRzW2krK107CisJCXZhbHVlID0gYXR0c1tpKytdOworCSAgICB9CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogU2VhcmNoIHRoZSBuYW1lc3BhY2UsIG5vdGUgdGhhdCBzaW5jZSB0aGUgYXR0cmlidXRlcyBoYXZlIGJlZW4KKyAgICAgKiBwcm9jZXNzZWQsIHRoZSBsb2NhbCBuYW1lc3BhY2VzIGFyZSBhdmFpbGFibGUuCisgICAgICovCisgICAgbnMgPSB4bWxTZWFyY2hOcyhjdHh0LT5teURvYywgcmV0LCBwcmVmaXgpOworICAgIGlmICgobnMgPT0gTlVMTCkgJiYgKHBhcmVudCAhPSBOVUxMKSkKKwlucyA9IHhtbFNlYXJjaE5zKGN0eHQtPm15RG9jLCBwYXJlbnQsIHByZWZpeCk7CisgICAgaWYgKChwcmVmaXggIT0gTlVMTCkgJiYgKG5zID09IE5VTEwpKSB7CisJbnMgPSB4bWxOZXdOcyhyZXQsIE5VTEwsIHByZWZpeCk7CisJeG1sTnNXYXJuTXNnKGN0eHQsIFhNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSwKKwkJICAgICAiTmFtZXNwYWNlIHByZWZpeCAlcyBpcyBub3QgZGVmaW5lZFxuIiwKKwkJICAgICBwcmVmaXgsIE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogc2V0IHRoZSBuYW1lc3BhY2Ugbm9kZSwgbWFraW5nIHN1cmUgdGhhdCBpZiB0aGUgZGVmYXVsdCBuYW1zcGFjZQorICAgICAqIGlzIHVuYm91bmQgb24gYSBwYXJlbnQgd2Ugc2ltcGx5IGtlZSBpdCBOVUxMCisgICAgICovCisgICAgaWYgKChucyAhPSBOVUxMKSAmJiAobnMtPmhyZWYgIT0gTlVMTCkgJiYKKwkoKG5zLT5ocmVmWzBdICE9IDApIHx8IChucy0+cHJlZml4ICE9IE5VTEwpKSkKKwl4bWxTZXROcyhyZXQsIG5zKTsKKworICAgIC8qCisgICAgICogcHJvY2VzcyBhbGwgdGhlIG90aGVyIGF0dHJpYnV0ZXMKKyAgICAgKi8KKyAgICBpZiAoYXR0cyAhPSBOVUxMKSB7CisgICAgICAgIGkgPSAwOworCWF0dCA9IGF0dHNbaSsrXTsKKwl2YWx1ZSA9IGF0dHNbaSsrXTsKKwlpZiAoY3R4dC0+aHRtbCkgeworCSAgICB3aGlsZSAoYXR0ICE9IE5VTEwpIHsKKwkJeG1sU0FYMkF0dHJpYnV0ZUludGVybmFsKGN0eHQsIGF0dCwgdmFsdWUsIE5VTEwpOworCQlhdHQgPSBhdHRzW2krK107CisJCXZhbHVlID0gYXR0c1tpKytdOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgd2hpbGUgKChhdHQgIT0gTlVMTCkgJiYgKHZhbHVlICE9IE5VTEwpKSB7CisJCWlmICgoYXR0WzBdICE9ICd4JykgfHwgKGF0dFsxXSAhPSAnbScpIHx8IChhdHRbMl0gIT0gJ2wnKSB8fAorCQkgICAgKGF0dFszXSAhPSAnbicpIHx8IChhdHRbNF0gIT0gJ3MnKSkKKwkJICAgIHhtbFNBWDJBdHRyaWJ1dGVJbnRlcm5hbChjdHh0LCBhdHQsIHZhbHVlLCBOVUxMKTsKKworCQkvKgorCQkgKiBOZXh0IG9uZXMKKwkJICovCisJCWF0dCA9IGF0dHNbaSsrXTsKKwkJdmFsdWUgPSBhdHRzW2krK107CisJICAgIH0KKwl9CisgICAgfQorCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICAvKgorICAgICAqIElmIGl0J3MgdGhlIERvY3VtZW50IHJvb3QsIGZpbmlzaCB0aGUgRFREIHZhbGlkYXRpb24gYW5kCisgICAgICogY2hlY2sgdGhlIGRvY3VtZW50IHJvb3QgZWxlbWVudCBmb3IgdmFsaWRpdHkKKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPnZhbGlkYXRlKSAmJiAoY3R4dC0+dmN0eHQuZmluaXNoRHRkID09IFhNTF9DVFhUX0ZJTklTSF9EVERfMCkpIHsKKwlpbnQgY2hrOworCisJY2hrID0geG1sVmFsaWRhdGVEdGRGaW5hbCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jKTsKKwlpZiAoY2hrIDw9IDApCisJICAgIGN0eHQtPnZhbGlkID0gMDsKKwlpZiAoY2hrIDwgMCkKKwkgICAgY3R4dC0+d2VsbEZvcm1lZCA9IDA7CisJY3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVSb290KCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MpOworCWN0eHQtPnZjdHh0LmZpbmlzaER0ZCA9IFhNTF9DVFhUX0ZJTklTSF9EVERfMTsKKyAgICB9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKworICAgIGlmIChwcmVmaXggIT0gTlVMTCkKKwl4bWxGcmVlKHByZWZpeCk7CisKK30KKworLyoqCisgKiB4bWxTQVgyRW5kRWxlbWVudDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLwordm9pZAoreG1sU0FYMkVuZEVsZW1lbnQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpuYW1lIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxQYXJzZXJOb2RlSW5mbyBub2RlX2luZm87CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybjsKKyAgICBjdXIgPSBjdHh0LT5ub2RlOworI2lmZGVmIERFQlVHX1NBWAorICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiU0FYLnhtbFNBWDJFbmRFbGVtZW50KE5VTEwpXG4iKTsKKyAgICBlbHNlCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJTQVgueG1sU0FYMkVuZEVsZW1lbnQoJXMpXG4iLCBuYW1lKTsKKyNlbmRpZgorICAgIAorICAgIC8qIENhcHR1cmUgZW5kIHBvc2l0aW9uIGFuZCBhZGQgbm9kZSAqLworICAgIGlmIChjdXIgIT0gTlVMTCAmJiBjdHh0LT5yZWNvcmRfaW5mbykgeworICAgICAgbm9kZV9pbmZvLmVuZF9wb3MgPSBjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2U7CisgICAgICBub2RlX2luZm8uZW5kX2xpbmUgPSBjdHh0LT5pbnB1dC0+bGluZTsKKyAgICAgIG5vZGVfaW5mby5ub2RlID0gY3VyOworICAgICAgeG1sUGFyc2VyQWRkTm9kZUluZm8oY3R4dCwgJm5vZGVfaW5mbyk7CisgICAgfQorICAgIGN0eHQtPm5vZGVtZW0gPSAtMTsKKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKGN0eHQtPnZhbGlkYXRlICYmIGN0eHQtPndlbGxGb3JtZWQgJiYKKyAgICAgICAgY3R4dC0+bXlEb2MgJiYgY3R4dC0+bXlEb2MtPmludFN1YnNldCkKKyAgICAgICAgY3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVPbmVFbGVtZW50KCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MsCisJCQkJCSAgICAgY3VyKTsKKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworCisgICAgCisgICAgLyoKKyAgICAgKiBlbmQgb2YgcGFyc2luZyBvZiB0aGlzIG5vZGUuCisgICAgICovCisjaWZkZWYgREVCVUdfU0FYX1RSRUUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInBvcHBpbmcoJXMpXG4iLCBjdXItPm5hbWUpOworI2VuZGlmCisgICAgbm9kZVBvcChjdHh0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEIHx8IExJQlhNTF9IVE1MX0VOQUJMRSAqLworCisvKgorICogeG1sU0FYMlRleHROb2RlOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBzdHI6ICB0aGUgaW5wdXQgc3RyaW5nCisgKiBAbGVuOiB0aGUgc3RyaW5nIGxlbmd0aAorICogCisgKiBSZW1vdmUgdGhlIGVudGl0aWVzIGZyb20gYW4gYXR0cmlidXRlIHZhbHVlCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBOVUxMIGlmIG5vdCBuZWVkZWQgb3IgZXJyb3IKKyAqLworc3RhdGljIHhtbE5vZGVQdHIKK3htbFNBWDJUZXh0Tm9kZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKnN0ciwgaW50IGxlbikgeworICAgIHhtbE5vZGVQdHIgcmV0OworICAgIGNvbnN0IHhtbENoYXIgKmludGVybiA9IE5VTEw7CisKKyAgICAvKgorICAgICAqIEFsbG9jYXRlCisgICAgICovCisgICAgaWYgKGN0eHQtPmZyZWVFbGVtcyAhPSBOVUxMKSB7CisJcmV0ID0gY3R4dC0+ZnJlZUVsZW1zOworCWN0eHQtPmZyZWVFbGVtcyA9IHJldC0+bmV4dDsKKwljdHh0LT5mcmVlRWxlbXNOci0tOworICAgIH0gZWxzZSB7CisJcmV0ID0gKHhtbE5vZGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTm9kZSkpOworICAgIH0KKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sRXJyTWVtb3J5KGN0eHQsICJ4bWxTQVgyQ2hhcmFjdGVycyIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICAvKgorICAgICAqIGludGVybiB0aGUgZm9ybWF0dGluZyBibGFua3MgZm91bmQgYmV0d2VlbiB0YWdzLCBvciB0aGUKKyAgICAgKiB2ZXJ5IHNob3J0IHN0cmluZ3MKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+ZGljdE5hbWVzKSB7CisgICAgICAgIHhtbENoYXIgY3VyID0gc3RyW2xlbl07CisKKwlpZiAoKGxlbiA8IChpbnQpICgyICogc2l6ZW9mKHZvaWQgKikpKSAmJgorCSAgICAoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9DT01QQUNUKSkgeworCSAgICAvKiBzdG9yZSB0aGUgc3RyaW5nIGluIHRoZSBub2RlIG92ZXJyaXRoaW5nIHByb3BlcnRpZXMgYW5kIG5zRGVmICovCisJICAgIHhtbENoYXIgKnRtcCA9ICh4bWxDaGFyICopICYocmV0LT5wcm9wZXJ0aWVzKTsKKwkgICAgbWVtY3B5KHRtcCwgc3RyLCBsZW4pOworCSAgICB0bXBbbGVuXSA9IDA7CisJICAgIGludGVybiA9IHRtcDsKKwl9IGVsc2UgaWYgKChsZW4gPD0gMykgJiYgKChjdXIgPT0gJyInKSB8fCAoY3VyID09ICdcJycpIHx8CisJICAgICgoY3VyID09ICc8JykgJiYgKHN0cltsZW4gKyAxXSAhPSAnIScpKSkpIHsKKwkgICAgaW50ZXJuID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBzdHIsIGxlbik7CisJfSBlbHNlIGlmIChJU19CTEFOS19DSCgqc3RyKSAmJiAobGVuIDwgNjApICYmIChjdXIgPT0gJzwnKSAmJgorCSAgICAgICAgICAgKHN0cltsZW4gKyAxXSAhPSAnIScpKSB7CisJICAgIGludCBpOworCisJICAgIGZvciAoaSA9IDE7aSA8IGxlbjtpKyspIHsKKwkJaWYgKCFJU19CTEFOS19DSChzdHJbaV0pKSBnb3RvIHNraXA7CisJICAgIH0KKwkgICAgaW50ZXJuID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBzdHIsIGxlbik7CisJfQorICAgIH0KK3NraXA6CisgICAgcmV0LT50eXBlID0gWE1MX1RFWFRfTk9ERTsKKworICAgIHJldC0+bmFtZSA9IHhtbFN0cmluZ1RleHQ7CisgICAgaWYgKGludGVybiA9PSBOVUxMKSB7CisJcmV0LT5jb250ZW50ID0geG1sU3RybmR1cChzdHIsIGxlbik7CisJaWYgKHJldC0+Y29udGVudCA9PSBOVUxMKSB7CisJICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJUZXh0Tm9kZSIpOworCSAgICB4bWxGcmVlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfSBlbHNlCisJcmV0LT5jb250ZW50ID0gKHhtbENoYXIgKikgaW50ZXJuOworCisgICAgaWYgKGN0eHQtPmlucHV0ICE9IE5VTEwpCisgICAgICAgIHJldC0+bGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworCisgICAgaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwl4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUocmV0KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisvKgorICogeG1sU0FYMkRlY29kZUF0dHJFbnRpdGllczoKKyAqIEBjdHh0OiAgdGhlIHBhcnNlciBjb250ZXh0CisgKiBAc3RyOiAgdGhlIGlucHV0IHN0cmluZworICogQGxlbjogdGhlIHN0cmluZyBsZW5ndGgKKyAqIAorICogUmVtb3ZlIHRoZSBlbnRpdGllcyBmcm9tIGFuIGF0dHJpYnV0ZSB2YWx1ZQorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgb3IgTlVMTCBpZiBub3QgbmVlZGVkIG9yIGVycm9yCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbFNBWDJEZWNvZGVBdHRyRW50aXRpZXMoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpzdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmVuZCkgeworICAgIGNvbnN0IHhtbENoYXIgKmluOworICAgIHhtbENoYXIgKnJldDsKKworICAgIGluID0gc3RyOworICAgIHdoaWxlIChpbiA8IGVuZCkKKyAgICAgICAgaWYgKCppbisrID09ICcmJykKKwkgICAgZ290byBkZWNvZGU7CisgICAgcmV0dXJuKE5VTEwpOworZGVjb2RlOgorICAgIGN0eHQtPmRlcHRoKys7CisgICAgcmV0ID0geG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMoY3R4dCwgc3RyLCBlbmQgLSBzdHIsCisJCQkJICAgICBYTUxfU1VCU1RJVFVURV9SRUYsIDAsMCwwKTsKKyAgICBjdHh0LT5kZXB0aC0tOworICAgIHJldHVybihyZXQpOworfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisKKy8qKgorICogeG1sU0FYMkF0dHJpYnV0ZU5zOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGxvY2FsbmFtZTogIHRoZSBsb2NhbCBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqIEBwcmVmaXg6ICB0aGUgYXR0cmlidXRlIG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlCisgKiBAVVJJOiAgdGhlIGF0dHJpYnV0ZSBuYW1lc3BhY2UgbmFtZSBpZiBhdmFpbGFibGUKKyAqIEB2YWx1ZTogIFN0YXJ0IG9mIHRoZSBhdHRyaWJ1dGUgdmFsdWUKKyAqIEB2YWx1ZWVuZDogZW5kIG9mIHRoZSBhdHRyaWJ1dGUgdmFsdWUKKyAqCisgKiBIYW5kbGUgYW4gYXR0cmlidXRlIHRoYXQgaGFzIGJlZW4gcmVhZCBieSB0aGUgcGFyc2VyLgorICogVGhlIGRlZmF1bHQgaGFuZGxpbmcgaXMgdG8gY29udmVydCB0aGUgYXR0cmlidXRlIGludG8gYW4KKyAqIERPTSBzdWJ0cmVlIGFuZCBwYXN0IGl0IGluIGEgbmV3IHhtbEF0dHIgZWxlbWVudCBhZGRlZCB0bworICogdGhlIGVsZW1lbnQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTQVgyQXR0cmlidXRlTnMoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBsb2NhbG5hbWUsCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHByZWZpeCwKKwkJICAgY29uc3QgeG1sQ2hhciAqIHZhbHVlLAorCQkgICBjb25zdCB4bWxDaGFyICogdmFsdWVlbmQpCit7CisgICAgeG1sQXR0clB0ciByZXQ7CisgICAgeG1sTnNQdHIgbmFtZXNwYWNlID0gTlVMTDsKKyAgICB4bWxDaGFyICpkdXAgPSBOVUxMOworCisgICAgLyoKKyAgICAgKiBOb3RlOiBpZiBwcmVmaXggPT0gTlVMTCwgdGhlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlIGRlZmF1bHQgbmFtZXNwYWNlCisgICAgICovCisgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorCW5hbWVzcGFjZSA9IHhtbFNlYXJjaE5zKGN0eHQtPm15RG9jLCBjdHh0LT5ub2RlLCBwcmVmaXgpOworCisgICAgLyoKKyAgICAgKiBhbGxvY2F0ZSB0aGUgbm9kZQorICAgICAqLworICAgIGlmIChjdHh0LT5mcmVlQXR0cnMgIT0gTlVMTCkgeworICAgICAgICByZXQgPSBjdHh0LT5mcmVlQXR0cnM7CisJY3R4dC0+ZnJlZUF0dHJzID0gcmV0LT5uZXh0OworCWN0eHQtPmZyZWVBdHRyc05yLS07CisJbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbEF0dHIpKTsKKwlyZXQtPnR5cGUgPSBYTUxfQVRUUklCVVRFX05PREU7CisKKwlyZXQtPnBhcmVudCA9IGN0eHQtPm5vZGU7IAorCXJldC0+ZG9jID0gY3R4dC0+bXlEb2M7CisJcmV0LT5ucyA9IG5hbWVzcGFjZTsKKworCWlmIChjdHh0LT5kaWN0TmFtZXMpCisJICAgIHJldC0+bmFtZSA9IGxvY2FsbmFtZTsKKwllbHNlCisJICAgIHJldC0+bmFtZSA9IHhtbFN0cmR1cChsb2NhbG5hbWUpOworCisgICAgICAgIC8qIGxpbmsgYXQgdGhlIGVuZCB0byBwcmVzZXJ2IG9yZGVyLCBUT0RPIHNwZWVkIHVwIHdpdGggYSBsYXN0ICovCisJaWYgKGN0eHQtPm5vZGUtPnByb3BlcnRpZXMgPT0gTlVMTCkgeworCSAgICBjdHh0LT5ub2RlLT5wcm9wZXJ0aWVzID0gcmV0OworCX0gZWxzZSB7CisJICAgIHhtbEF0dHJQdHIgcHJldiA9IGN0eHQtPm5vZGUtPnByb3BlcnRpZXM7CisKKwkgICAgd2hpbGUgKHByZXYtPm5leHQgIT0gTlVMTCkgcHJldiA9IHByZXYtPm5leHQ7CisJICAgIHByZXYtPm5leHQgPSByZXQ7CisJICAgIHJldC0+cHJldiA9IHByZXY7CisJfQorCisJaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwkgICAgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKXJldCk7CisgICAgfSBlbHNlIHsKKwlpZiAoY3R4dC0+ZGljdE5hbWVzKQorCSAgICByZXQgPSB4bWxOZXdOc1Byb3BFYXROYW1lKGN0eHQtPm5vZGUsIG5hbWVzcGFjZSwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbENoYXIgKikgbG9jYWxuYW1lLCBOVUxMKTsKKwllbHNlCisJICAgIHJldCA9IHhtbE5ld05zUHJvcChjdHh0LT5ub2RlLCBuYW1lc3BhY2UsIGxvY2FsbmFtZSwgTlVMTCk7CisJaWYgKHJldCA9PSBOVUxMKSB7CisJICAgIHhtbEVyck1lbW9yeShjdHh0LCAieG1sU0FYMkF0dHJpYnV0ZU5zIik7CisJICAgIHJldHVybjsKKwl9CisgICAgfQorCisgICAgaWYgKChjdHh0LT5yZXBsYWNlRW50aXRpZXMgPT0gMCkgJiYgKCFjdHh0LT5odG1sKSkgeworCXhtbE5vZGVQdHIgdG1wOworCisJLyoKKwkgKiBXZSBrbm93IHRoYXQgaWYgdGhlcmUgaXMgYW4gZW50aXR5IHJlZmVyZW5jZSwgdGhlbgorCSAqIHRoZSBzdHJpbmcgaGFzIGJlZW4gZHVwJ2VkIGFuZCB0ZXJtaW5hdGVzIHdpdGggMAorCSAqIG90aGVyd2lzZSB3aXRoICcgb3IgIgorCSAqLworCWlmICgqdmFsdWVlbmQgIT0gMCkgeworCSAgICB0bXAgPSB4bWxTQVgyVGV4dE5vZGUoY3R4dCwgdmFsdWUsIHZhbHVlZW5kIC0gdmFsdWUpOworCSAgICByZXQtPmNoaWxkcmVuID0gdG1wOworCSAgICByZXQtPmxhc3QgPSB0bXA7CisJICAgIGlmICh0bXAgIT0gTlVMTCkgeworCQl0bXAtPmRvYyA9IHJldC0+ZG9jOworCQl0bXAtPnBhcmVudCA9ICh4bWxOb2RlUHRyKSByZXQ7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICByZXQtPmNoaWxkcmVuID0geG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QoY3R4dC0+bXlEb2MsIHZhbHVlLAorCQkJCQkJICAgIHZhbHVlZW5kIC0gdmFsdWUpOworCSAgICB0bXAgPSByZXQtPmNoaWxkcmVuOworCSAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKwkgICAgICAgIHRtcC0+ZG9jID0gcmV0LT5kb2M7CisJCXRtcC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIHJldDsKKwkJaWYgKHRtcC0+bmV4dCA9PSBOVUxMKQorCQkgICAgcmV0LT5sYXN0ID0gdG1wOworCQl0bXAgPSB0bXAtPm5leHQ7CisJICAgIH0KKwl9CisgICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBOVUxMKSB7CisJeG1sTm9kZVB0ciB0bXA7CisKKwl0bXAgPSB4bWxTQVgyVGV4dE5vZGUoY3R4dCwgdmFsdWUsIHZhbHVlZW5kIC0gdmFsdWUpOworCXJldC0+Y2hpbGRyZW4gPSB0bXA7CisJcmV0LT5sYXN0ID0gdG1wOworCWlmICh0bXAgIT0gTlVMTCkgeworCSAgICB0bXAtPmRvYyA9IHJldC0+ZG9jOworCSAgICB0bXAtPnBhcmVudCA9ICh4bWxOb2RlUHRyKSByZXQ7CisJfQorICAgIH0KKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKCghY3R4dC0+aHRtbCkgJiYgY3R4dC0+dmFsaWRhdGUgJiYgY3R4dC0+d2VsbEZvcm1lZCAmJgorICAgICAgICBjdHh0LT5teURvYyAmJiBjdHh0LT5teURvYy0+aW50U3Vic2V0KSB7CisJLyoKKwkgKiBJZiB3ZSBkb24ndCBzdWJzdGl0dXRlIGVudGl0aWVzLCB0aGUgdmFsaWRhdGlvbiBzaG91bGQgYmUKKwkgKiBkb25lIG9uIGEgdmFsdWUgd2l0aCByZXBsYWNlZCBlbnRpdGllcyBhbnl3YXkuCisJICovCisgICAgICAgIGlmICghY3R4dC0+cmVwbGFjZUVudGl0aWVzKSB7CisJICAgIGR1cCA9IHhtbFNBWDJEZWNvZGVBdHRyRW50aXRpZXMoY3R4dCwgdmFsdWUsIHZhbHVlZW5kKTsKKwkgICAgaWYgKGR1cCA9PSBOVUxMKSB7CisJICAgICAgICBpZiAoKnZhbHVlZW5kID09IDApIHsKKwkJICAgIGN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlT25lQXR0cmlidXRlKCZjdHh0LT52Y3R4dCwKKwkJCQkgICAgY3R4dC0+bXlEb2MsIGN0eHQtPm5vZGUsIHJldCwgdmFsdWUpOworCQl9IGVsc2UgeworCQkgICAgLyoKKwkJICAgICAqIFRoYXQgc2hvdWxkIGFscmVhZHkgYmUgbm9ybWFsaXplZC4KKwkJICAgICAqIGNoZWFwZXIgdG8gZmluYWxseSBhbGxvY2F0ZSBoZXJlIHRoYW4gZHVwbGljYXRlCisJCSAgICAgKiBlbnRyeSBwb2ludHMgaW4gdGhlIGZ1bGwgdmFsaWRhdGlvbiBjb2RlCisJCSAgICAgKi8KKwkJICAgIGR1cCA9IHhtbFN0cm5kdXAodmFsdWUsIHZhbHVlZW5kIC0gdmFsdWUpOworCisJCSAgICBjdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSgmY3R4dC0+dmN0eHQsCisJCQkJICAgIGN0eHQtPm15RG9jLCBjdHh0LT5ub2RlLCByZXQsIGR1cCk7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIC8qCisJCSAqIGR1cCBub3cgY29udGFpbnMgYSBzdHJpbmcgb2YgdGhlIGZsYXR0ZW5lZCBhdHRyaWJ1dGUKKwkJICogY29udGVudCB3aXRoIGVudGl0aWVzIHN1YnN0aXR1ZWQuIENoZWNrIGlmIHdlIG5lZWQgdG8KKwkJICogYXBwbHkgYW4gZXh0cmEgbGF5ZXIgb2Ygbm9ybWFsaXphdGlvbi4KKwkJICogSXQgbmVlZCB0byBiZSBkb25lIHR3aWNlIC4uLiBpdCdzIGFuIGV4dHJhIGJ1cmRlbiByZWxhdGVkCisJCSAqIHRvIHRoZSBhYmlsaXR5IHRvIGtlZXAgcmVmZXJlbmNlcyBpbiBhdHRyaWJ1dGVzCisJCSAqLworCQlpZiAoY3R4dC0+YXR0c1NwZWNpYWwgIT0gTlVMTCkgeworCQkgICAgeG1sQ2hhciAqbnZhbG5vcm07CisJCSAgICB4bWxDaGFyIGZuWzUwXTsKKwkJICAgIHhtbENoYXIgKmZ1bGxuYW1lOworCQkgICAgCisJCSAgICBmdWxsbmFtZSA9IHhtbEJ1aWxkUU5hbWUobG9jYWxuYW1lLCBwcmVmaXgsIGZuLCA1MCk7CisJCSAgICBpZiAoZnVsbG5hbWUgIT0gTlVMTCkgeworCQkJY3R4dC0+dmN0eHQudmFsaWQgPSAxOworCQkgICAgICAgIG52YWxub3JtID0geG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUoCisJCQkgICAgICAgICAgICAgICAgICZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MsCisJCQkJCSBjdHh0LT5ub2RlLCBmdWxsbmFtZSwgZHVwKTsKKwkJCWlmIChjdHh0LT52Y3R4dC52YWxpZCAhPSAxKQorCQkJICAgIGN0eHQtPnZhbGlkID0gMDsKKworCQkJaWYgKChmdWxsbmFtZSAhPSBmbikgJiYgKGZ1bGxuYW1lICE9IGxvY2FsbmFtZSkpCisJCQkgICAgeG1sRnJlZShmdWxsbmFtZSk7CisJCQlpZiAobnZhbG5vcm0gIT0gTlVMTCkgeworCQkJICAgIHhtbEZyZWUoZHVwKTsKKwkJCSAgICBkdXAgPSBudmFsbm9ybTsKKwkJCX0KKwkJICAgIH0KKwkJfQorCisJCWN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlT25lQXR0cmlidXRlKCZjdHh0LT52Y3R4dCwKKwkJCSAgICAgICAgY3R4dC0+bXlEb2MsIGN0eHQtPm5vZGUsIHJldCwgZHVwKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIC8qCisJICAgICAqIGlmIGVudGl0aWVzIGFscmVhZHkgaGF2ZSBiZWVuIHN1YnN0aXR1ZWQsIHRoZW4KKwkgICAgICogdGhlIGF0dHJpYnV0ZSBhcyBwYXNzZWQgaXMgYWxyZWFkeSBub3JtYWxpemVkCisJICAgICAqLworCSAgICBkdXAgPSB4bWxTdHJuZHVwKHZhbHVlLCB2YWx1ZWVuZCAtIHZhbHVlKTsKKworCSAgICBjdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSgmY3R4dC0+dmN0eHQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5teURvYywgY3R4dC0+bm9kZSwgcmV0LCBkdXApOworCX0KKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworICAgICAgICAgICBpZiAoKChjdHh0LT5sb2Fkc3Vic2V0ICYgWE1MX1NLSVBfSURTKSA9PSAwKSAmJgorCSAgICAgICAoKChjdHh0LT5yZXBsYWNlRW50aXRpZXMgPT0gMCkgJiYgKGN0eHQtPmV4dGVybmFsICE9IDIpKSB8fAorCSAgICAgICAgKChjdHh0LT5yZXBsYWNlRW50aXRpZXMgIT0gMCkgJiYgKGN0eHQtPmluU3Vic2V0ID09IDApKSkpIHsKKyAgICAgICAgLyoKKwkgKiB3aGVuIHZhbGlkYXRpbmcsIHRoZSBJRCByZWdpc3RyYXRpb24gaXMgZG9uZSBhdCB0aGUgYXR0cmlidXRlCisJICogdmFsaWRhdGlvbiBsZXZlbC4gT3RoZXJ3aXNlIHdlIGhhdmUgdG8gZG8gc3BlY2lmaWMgaGFuZGxpbmcgaGVyZS4KKwkgKi8KKyAgICAgICAgaWYgKChwcmVmaXggPT0gY3R4dC0+c3RyX3htbCkgJiYKKwkgICAgICAgICAgIChsb2NhbG5hbWVbMF0gPT0gJ2knKSAmJiAobG9jYWxuYW1lWzFdID09ICdkJykgJiYKKwkJICAgKGxvY2FsbmFtZVsyXSA9PSAwKSkgeworCSAgICAvKgorCSAgICAgKiBBZGQgdGhlIHhtbDppZCB2YWx1ZQorCSAgICAgKgorCSAgICAgKiBPcGVuIGlzc3VlOiBub3JtYWxpemF0aW9uIG9mIHRoZSB2YWx1ZS4KKwkgICAgICovCisJICAgIGlmIChkdXAgPT0gTlVMTCkKKwkgICAgICAgIGR1cCA9IHhtbFN0cm5kdXAodmFsdWUsIHZhbHVlZW5kIC0gdmFsdWUpOworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisJICAgIGlmICh4bWxWYWxpZGF0ZU5DTmFtZShkdXAsIDEpICE9IDApIHsKKwkgICAgICAgIHhtbEVyclZhbGlkKGN0eHQsIFhNTF9EVERfWE1MSURfVkFMVUUsCisJCSAgICAgICJ4bWw6aWQgOiBhdHRyaWJ1dGUgdmFsdWUgJXMgaXMgbm90IGFuIE5DTmFtZVxuIiwKKwkJCSAgICAoY29uc3QgY2hhciAqKSBkdXAsIE5VTEwpOworCSAgICB9CisjZW5kaWYKKwkgICAgeG1sQWRkSUQoJmN0eHQtPnZjdHh0LCBjdHh0LT5teURvYywgZHVwLCByZXQpOworCX0gZWxzZSBpZiAoeG1sSXNJRChjdHh0LT5teURvYywgY3R4dC0+bm9kZSwgcmV0KSkgeworCSAgICAvKiBtaWdodCBiZSB3b3J0aCBkdXBsaWNhdGUgZW50cnkgcG9pbnRzIGFuZCBub3QgY29weSAqLworCSAgICBpZiAoZHVwID09IE5VTEwpCisJICAgICAgICBkdXAgPSB4bWxTdHJuZHVwKHZhbHVlLCB2YWx1ZWVuZCAtIHZhbHVlKTsKKwkgICAgeG1sQWRkSUQoJmN0eHQtPnZjdHh0LCBjdHh0LT5teURvYywgZHVwLCByZXQpOworCX0gZWxzZSBpZiAoeG1sSXNSZWYoY3R4dC0+bXlEb2MsIGN0eHQtPm5vZGUsIHJldCkpIHsKKwkgICAgaWYgKGR1cCA9PSBOVUxMKQorCSAgICAgICAgZHVwID0geG1sU3RybmR1cCh2YWx1ZSwgdmFsdWVlbmQgLSB2YWx1ZSk7CisJICAgIHhtbEFkZFJlZigmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jLCBkdXAsIHJldCk7CisJfQorICAgIH0KKyAgICBpZiAoZHVwICE9IE5VTEwpCisJeG1sRnJlZShkdXApOworfQorCisvKioKKyAqIHhtbFNBWDJTdGFydEVsZW1lbnROczoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbG9jYWxuYW1lOiAgdGhlIGxvY2FsIG5hbWUgb2YgdGhlIGVsZW1lbnQKKyAqIEBwcmVmaXg6ICB0aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZQorICogQFVSSTogIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZQorICogQG5iX25hbWVzcGFjZXM6ICBudW1iZXIgb2YgbmFtZXNwYWNlIGRlZmluaXRpb25zIG9uIHRoYXQgbm9kZQorICogQG5hbWVzcGFjZXM6ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBwcmVmaXgvVVJJIHBhaXJzIG5hbWVzcGFjZSBkZWZpbml0aW9ucworICogQG5iX2F0dHJpYnV0ZXM6ICB0aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgb24gdGhhdCBub2RlCisgKiBAbmJfZGVmYXVsdGVkOiAgdGhlIG51bWJlciBvZiBkZWZhdWx0ZWQgYXR0cmlidXRlcy4KKyAqIEBhdHRyaWJ1dGVzOiAgcG9pbnRlciB0byB0aGUgYXJyYXkgb2YgKGxvY2FsbmFtZS9wcmVmaXgvVVJJL3ZhbHVlL2VuZCkKKyAqICAgICAgICAgICAgICAgYXR0cmlidXRlIHZhbHVlcy4KKyAqCisgKiBTQVgyIGNhbGxiYWNrIHdoZW4gYW4gZWxlbWVudCBzdGFydCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLgorICogSXQgcHJvdmlkZXMgdGhlIG5hbWVzcGFjZSBpbmZvcm1hdGlvbnMgZm9yIHRoZSBlbGVtZW50LCBhcyB3ZWxsIGFzCisgKiB0aGUgbmV3IG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgb24gdGhlIGVsZW1lbnQuCisgKi8KK3ZvaWQKK3htbFNBWDJTdGFydEVsZW1lbnROcyh2b2lkICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbG9jYWxuYW1lLAorCQkgICAgICBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCSAgICAgIGNvbnN0IHhtbENoYXIgKlVSSSwKKwkJICAgICAgaW50IG5iX25hbWVzcGFjZXMsCisJCSAgICAgIGNvbnN0IHhtbENoYXIgKipuYW1lc3BhY2VzLAorCQkgICAgICBpbnQgbmJfYXR0cmlidXRlcywKKwkJICAgICAgaW50IG5iX2RlZmF1bHRlZCwKKwkJICAgICAgY29uc3QgeG1sQ2hhciAqKmF0dHJpYnV0ZXMpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxOb2RlUHRyIHJldDsKKyAgICB4bWxOb2RlUHRyIHBhcmVudDsKKyAgICB4bWxOc1B0ciBsYXN0ID0gTlVMTCwgbnM7CisgICAgY29uc3QgeG1sQ2hhciAqdXJpLCAqcHJlZjsKKyAgICBpbnQgaSwgajsKKworICAgIGlmIChjdHggPT0gTlVMTCkgcmV0dXJuOworICAgIHBhcmVudCA9IGN0eHQtPm5vZGU7CisgICAgLyoKKyAgICAgKiBGaXJzdCBjaGVjayBvbiB2YWxpZGl0eToKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+dmFsaWRhdGUgJiYgKGN0eHQtPm15RG9jLT5leHRTdWJzZXQgPT0gTlVMTCkgJiYgCisgICAgICAgICgoY3R4dC0+bXlEb2MtPmludFN1YnNldCA9PSBOVUxMKSB8fAorCSAoKGN0eHQtPm15RG9jLT5pbnRTdWJzZXQtPm5vdGF0aW9ucyA9PSBOVUxMKSAmJiAKKwkgIChjdHh0LT5teURvYy0+aW50U3Vic2V0LT5lbGVtZW50cyA9PSBOVUxMKSAmJgorCSAgKGN0eHQtPm15RG9jLT5pbnRTdWJzZXQtPmF0dHJpYnV0ZXMgPT0gTlVMTCkgJiYgCisJICAoY3R4dC0+bXlEb2MtPmludFN1YnNldC0+ZW50aXRpZXMgPT0gTlVMTCkpKSkgeworCXhtbEVyclZhbGlkKGN0eHQsIFhNTF9FUlJfTk9fRFRELAorCSAgIlZhbGlkYXRpb24gZmFpbGVkOiBubyBEVEQgZm91bmQgISIsIE5VTEwsIE5VTEwpOworCWN0eHQtPnZhbGlkYXRlID0gMDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGFsbG9jYXRlIHRoZSBub2RlCisgICAgICovCisgICAgaWYgKGN0eHQtPmZyZWVFbGVtcyAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IGN0eHQtPmZyZWVFbGVtczsKKwljdHh0LT5mcmVlRWxlbXMgPSByZXQtPm5leHQ7CisJY3R4dC0+ZnJlZUVsZW1zTnItLTsKKwltZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sTm9kZSkpOworCXJldC0+dHlwZSA9IFhNTF9FTEVNRU5UX05PREU7CisKKwlpZiAoY3R4dC0+ZGljdE5hbWVzKQorCSAgICByZXQtPm5hbWUgPSBsb2NhbG5hbWU7CisJZWxzZSB7CisJICAgIHJldC0+bmFtZSA9IHhtbFN0cmR1cChsb2NhbG5hbWUpOworCSAgICBpZiAocmV0LT5uYW1lID09IE5VTEwpIHsKKwkgICAgICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJTdGFydEVsZW1lbnROcyIpOworCQlyZXR1cm47CisJICAgIH0KKwl9CisJaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwkgICAgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKHJldCk7CisgICAgfSBlbHNlIHsKKwlpZiAoY3R4dC0+ZGljdE5hbWVzKQorCSAgICByZXQgPSB4bWxOZXdEb2NOb2RlRWF0TmFtZShjdHh0LT5teURvYywgTlVMTCwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxDaGFyICopIGxvY2FsbmFtZSwgTlVMTCk7CisJZWxzZQorCSAgICByZXQgPSB4bWxOZXdEb2NOb2RlKGN0eHQtPm15RG9jLCBOVUxMLCBsb2NhbG5hbWUsIE5VTEwpOworCWlmIChyZXQgPT0gTlVMTCkgeworCSAgICB4bWxTQVgyRXJyTWVtb3J5KGN0eHQsICJ4bWxTQVgyU3RhcnRFbGVtZW50TnMiKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9CisgICAgaWYgKGN0eHQtPmxpbmVudW1iZXJzKSB7CisJaWYgKGN0eHQtPmlucHV0ICE9IE5VTEwpIHsKKwkgICAgaWYgKGN0eHQtPmlucHV0LT5saW5lIDwgNjU1MzUpCisJCXJldC0+bGluZSA9IChzaG9ydCkgY3R4dC0+aW5wdXQtPmxpbmU7CisJICAgIGVsc2UKKwkgICAgICAgIHJldC0+bGluZSA9IDY1NTM1OworCX0KKyAgICB9CisKKyAgICBpZiAoKGN0eHQtPm15RG9jLT5jaGlsZHJlbiA9PSBOVUxMKSB8fCAocGFyZW50ID09IE5VTEwpKSB7CisgICAgICAgIHhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBjdHh0LT5teURvYywgKHhtbE5vZGVQdHIpIHJldCk7CisgICAgfQorICAgIC8qCisgICAgICogQnVpbGQgdGhlIG5hbWVzcGFjZSBsaXN0CisgICAgICovCisgICAgZm9yIChpID0gMCxqID0gMDtqIDwgbmJfbmFtZXNwYWNlcztqKyspIHsKKyAgICAgICAgcHJlZiA9IG5hbWVzcGFjZXNbaSsrXTsKKwl1cmkgPSBuYW1lc3BhY2VzW2krK107CisJbnMgPSB4bWxOZXdOcyhOVUxMLCB1cmksIHByZWYpOworCWlmIChucyAhPSBOVUxMKSB7CisJICAgIGlmIChsYXN0ID09IE5VTEwpIHsKKwkgICAgICAgIHJldC0+bnNEZWYgPSBsYXN0ID0gbnM7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBsYXN0LT5uZXh0ID0gbnM7CisJCWxhc3QgPSBuczsKKwkgICAgfQorCSAgICBpZiAoKFVSSSAhPSBOVUxMKSAmJiAocHJlZml4ID09IHByZWYpKQorCQlyZXQtPm5zID0gbnM7CisJfSBlbHNlIHsKKwkgICAgeG1sU0FYMkVyck1lbW9yeShjdHh0LCAieG1sU0FYMlN0YXJ0RWxlbWVudE5zIik7CisJICAgIHJldHVybjsKKwl9CisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKwlpZiAoKCFjdHh0LT5odG1sKSAmJiBjdHh0LT52YWxpZGF0ZSAmJiBjdHh0LT53ZWxsRm9ybWVkICYmCisJICAgIGN0eHQtPm15RG9jICYmIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQpIHsKKwkgICAgY3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UoJmN0eHQtPnZjdHh0LCBjdHh0LT5teURvYywKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LCBwcmVmaXgsIG5zLCB1cmkpOworCX0KKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworICAgIH0KKyAgICBjdHh0LT5ub2RlbWVtID0gLTE7CisKKyAgICAvKgorICAgICAqIFdlIGFyZSBwYXJzaW5nIGEgbmV3IG5vZGUuCisgICAgICovCisgICAgbm9kZVB1c2goY3R4dCwgcmV0KTsKKworICAgIC8qCisgICAgICogTGluayB0aGUgY2hpbGQgZWxlbWVudAorICAgICAqLworICAgIGlmIChwYXJlbnQgIT0gTlVMTCkgeworICAgICAgICBpZiAocGFyZW50LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgeG1sQWRkQ2hpbGQocGFyZW50LCByZXQpOworCX0gZWxzZSB7CisJICAgIHhtbEFkZFNpYmxpbmcocGFyZW50LCByZXQpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEluc2VydCB0aGUgZGVmYXVsdGVkIGF0dHJpYnV0ZXMgZnJvbSB0aGUgRFREIG9ubHkgaWYgcmVxdWVzdGVkOgorICAgICAqLworICAgIGlmICgobmJfZGVmYXVsdGVkICE9IDApICYmCisgICAgICAgICgoY3R4dC0+bG9hZHN1YnNldCAmIFhNTF9DT01QTEVURV9BVFRSUykgPT0gMCkpCisJbmJfYXR0cmlidXRlcyAtPSBuYl9kZWZhdWx0ZWQ7CisKKyAgICAvKgorICAgICAqIFNlYXJjaCB0aGUgbmFtZXNwYWNlIGlmIGl0IHdhc24ndCBhbHJlYWR5IGZvdW5kCisgICAgICogTm90ZSB0aGF0LCBpZiBwcmVmaXggaXMgTlVMTCwgdGhpcyBzZWFyY2hlcyBmb3IgdGhlIGRlZmF1bHQgTnMKKyAgICAgKi8KKyAgICBpZiAoKFVSSSAhPSBOVUxMKSAmJiAocmV0LT5ucyA9PSBOVUxMKSkgeworICAgICAgICByZXQtPm5zID0geG1sU2VhcmNoTnMoY3R4dC0+bXlEb2MsIHBhcmVudCwgcHJlZml4KTsKKwlpZiAoKHJldC0+bnMgPT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKHByZWZpeCwgQkFEX0NBU1QgInhtbCIpKSkgeworCSAgICByZXQtPm5zID0geG1sU2VhcmNoTnMoY3R4dC0+bXlEb2MsIHJldCwgcHJlZml4KTsKKwl9CisJaWYgKHJldC0+bnMgPT0gTlVMTCkgeworCSAgICBucyA9IHhtbE5ld05zKHJldCwgTlVMTCwgcHJlZml4KTsKKwkgICAgaWYgKG5zID09IE5VTEwpIHsKKworCSAgICAgICAgeG1sU0FYMkVyck1lbW9yeShjdHh0LCAieG1sU0FYMlN0YXJ0RWxlbWVudE5zIik7CisJCXJldHVybjsKKwkgICAgfQorICAgICAgICAgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbE5zV2Fybk1zZyhjdHh0LCBYTUxfTlNfRVJSX1VOREVGSU5FRF9OQU1FU1BBQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOYW1lc3BhY2UgcHJlZml4ICVzIHdhcyBub3QgZm91bmRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCwgTlVMTCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeG1sTnNXYXJuTXNnKGN0eHQsIFhNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5hbWVzcGFjZSBkZWZhdWx0IHByZWZpeCB3YXMgbm90IGZvdW5kXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBwcm9jZXNzIGFsbCB0aGUgb3RoZXIgYXR0cmlidXRlcworICAgICAqLworICAgIGlmIChuYl9hdHRyaWJ1dGVzID4gMCkgeworICAgICAgICBmb3IgKGogPSAwLGkgPSAwO2kgPCBuYl9hdHRyaWJ1dGVzO2krKyxqKz01KSB7CisJICAgIHhtbFNBWDJBdHRyaWJ1dGVOcyhjdHh0LCBhdHRyaWJ1dGVzW2pdLCBhdHRyaWJ1dGVzW2orMV0sCisJICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW2orM10sIGF0dHJpYnV0ZXNbais0XSk7CisJfQorICAgIH0KKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgLyoKKyAgICAgKiBJZiBpdCdzIHRoZSBEb2N1bWVudCByb290LCBmaW5pc2ggdGhlIERURCB2YWxpZGF0aW9uIGFuZAorICAgICAqIGNoZWNrIHRoZSBkb2N1bWVudCByb290IGVsZW1lbnQgZm9yIHZhbGlkaXR5CisgICAgICovCisgICAgaWYgKChjdHh0LT52YWxpZGF0ZSkgJiYgKGN0eHQtPnZjdHh0LmZpbmlzaER0ZCA9PSBYTUxfQ1RYVF9GSU5JU0hfRFREXzApKSB7CisJaW50IGNoazsKKworCWNoayA9IHhtbFZhbGlkYXRlRHRkRmluYWwoJmN0eHQtPnZjdHh0LCBjdHh0LT5teURvYyk7CisJaWYgKGNoayA8PSAwKQorCSAgICBjdHh0LT52YWxpZCA9IDA7CisJaWYgKGNoayA8IDApCisJICAgIGN0eHQtPndlbGxGb3JtZWQgPSAwOworCWN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlUm9vdCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jKTsKKwljdHh0LT52Y3R4dC5maW5pc2hEdGQgPSBYTUxfQ1RYVF9GSU5JU0hfRFREXzE7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCit9CisKKy8qKgorICogeG1sU0FYMkVuZEVsZW1lbnROczoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbG9jYWxuYW1lOiAgdGhlIGxvY2FsIG5hbWUgb2YgdGhlIGVsZW1lbnQKKyAqIEBwcmVmaXg6ICB0aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZQorICogQFVSSTogIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZQorICoKKyAqIFNBWDIgY2FsbGJhY2sgd2hlbiBhbiBlbGVtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLgorICogSXQgcHJvdmlkZXMgdGhlIG5hbWVzcGFjZSBpbmZvcm1hdGlvbnMgZm9yIHRoZSBlbGVtZW50LgorICovCit2b2lkCit4bWxTQVgyRW5kRWxlbWVudE5zKHZvaWQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGxvY2FsbmFtZSBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4IEFUVFJJQlVURV9VTlVTRUQsCisJCSAgICBjb25zdCB4bWxDaGFyICogVVJJIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxQYXJzZXJOb2RlSW5mbyBub2RlX2luZm87CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybjsKKyAgICBjdXIgPSBjdHh0LT5ub2RlOworICAgIC8qIENhcHR1cmUgZW5kIHBvc2l0aW9uIGFuZCBhZGQgbm9kZSAqLworICAgIGlmICgoY3R4dC0+cmVjb3JkX2luZm8pICYmIChjdXIgIT0gTlVMTCkpIHsKKyAgICAgICAgbm9kZV9pbmZvLmVuZF9wb3MgPSBjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2U7CisgICAgICAgIG5vZGVfaW5mby5lbmRfbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworICAgICAgICBub2RlX2luZm8ubm9kZSA9IGN1cjsKKyAgICAgICAgeG1sUGFyc2VyQWRkTm9kZUluZm8oY3R4dCwgJm5vZGVfaW5mbyk7CisgICAgfQorICAgIGN0eHQtPm5vZGVtZW0gPSAtMTsKKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKGN0eHQtPnZhbGlkYXRlICYmIGN0eHQtPndlbGxGb3JtZWQgJiYKKyAgICAgICAgY3R4dC0+bXlEb2MgJiYgY3R4dC0+bXlEb2MtPmludFN1YnNldCkKKyAgICAgICAgY3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVPbmVFbGVtZW50KCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MsIGN1cik7CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKworICAgIC8qCisgICAgICogZW5kIG9mIHBhcnNpbmcgb2YgdGhpcyBub2RlLgorICAgICAqLworICAgIG5vZGVQb3AoY3R4dCk7Cit9CisKKy8qKgorICogeG1sU0FYMlJlZmVyZW5jZToKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgVGhlIGVudGl0eSBuYW1lCisgKgorICogY2FsbGVkIHdoZW4gYW4gZW50aXR5IHhtbFNBWDJSZWZlcmVuY2UgaXMgZGV0ZWN0ZWQuIAorICovCit2b2lkCit4bWxTQVgyUmVmZXJlbmNlKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbE5vZGVQdHIgcmV0OworCisgICAgaWYgKGN0eCA9PSBOVUxMKSByZXR1cm47CisjaWZkZWYgREVCVUdfU0FYCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJTQVgueG1sU0FYMlJlZmVyZW5jZSglcylcbiIsIG5hbWUpOworI2VuZGlmCisgICAgaWYgKG5hbWVbMF0gPT0gJyMnKQorCXJldCA9IHhtbE5ld0NoYXJSZWYoY3R4dC0+bXlEb2MsIG5hbWUpOworICAgIGVsc2UKKwlyZXQgPSB4bWxOZXdSZWZlcmVuY2UoY3R4dC0+bXlEb2MsIG5hbWUpOworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJhZGQgeG1sU0FYMlJlZmVyZW5jZSAlcyB0byAlcyBcbiIsIG5hbWUsIGN0eHQtPm5vZGUtPm5hbWUpOworI2VuZGlmCisgICAgaWYgKHhtbEFkZENoaWxkKGN0eHQtPm5vZGUsIHJldCkgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlTm9kZShyZXQpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTQVgyQ2hhcmFjdGVyczoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIHJlY2VpdmluZyBzb21lIGNoYXJzIGZyb20gdGhlIHBhcnNlci4KKyAqLwordm9pZAoreG1sU0FYMkNoYXJhY3RlcnModm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpjaCwgaW50IGxlbikKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbE5vZGVQdHIgbGFzdENoaWxkOworCisgICAgaWYgKGN0eCA9PSBOVUxMKSByZXR1cm47CisjaWZkZWYgREVCVUdfU0FYCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJTQVgueG1sU0FYMkNoYXJhY3RlcnMoJS4zMHMsICVkKVxuIiwgY2gsIGxlbik7CisjZW5kaWYKKyAgICAvKgorICAgICAqIEhhbmRsZSB0aGUgZGF0YSBpZiBhbnkuIElmIHRoZXJlIGlzIG5vIGNoaWxkCisgICAgICogYWRkIGl0IGFzIGNvbnRlbnQsIG90aGVyd2lzZSBpZiB0aGUgbGFzdCBjaGlsZCBpcyB0ZXh0LAorICAgICAqIGNvbmNhdGVuYXRlIGl0LCBlbHNlIGNyZWF0ZSBhIG5ldyBub2RlIG9mIHR5cGUgdGV4dC4KKyAgICAgKi8KKworICAgIGlmIChjdHh0LT5ub2RlID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19TQVhfVFJFRQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiYWRkIGNoYXJzOiBjdHh0LT5ub2RlID09IE5VTEwgIVxuIik7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBsYXN0Q2hpbGQgPSBjdHh0LT5ub2RlLT5sYXN0OworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJhZGQgY2hhcnMgdG8gJXMgXG4iLCBjdHh0LT5ub2RlLT5uYW1lKTsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBIZXJlIHdlIG5lZWRlZCBhbiBhY2NlbGVyYXRvciBtZWNoYW5pc20gaW4gY2FzZSBvZiB2ZXJ5IGxhcmdlCisgICAgICogZWxlbWVudHMuIFVzZSBhbiBhdHRyaWJ1dGUgaW4gdGhlIHN0cnVjdHVyZSAhISEKKyAgICAgKi8KKyAgICBpZiAobGFzdENoaWxkID09IE5VTEwpIHsKKyAgICAgICAgbGFzdENoaWxkID0geG1sU0FYMlRleHROb2RlKGN0eHQsIGNoLCBsZW4pOworCWlmIChsYXN0Q2hpbGQgIT0gTlVMTCkgeworCSAgICBjdHh0LT5ub2RlLT5jaGlsZHJlbiA9IGxhc3RDaGlsZDsKKwkgICAgY3R4dC0+bm9kZS0+bGFzdCA9IGxhc3RDaGlsZDsKKwkgICAgbGFzdENoaWxkLT5wYXJlbnQgPSBjdHh0LT5ub2RlOworCSAgICBsYXN0Q2hpbGQtPmRvYyA9IGN0eHQtPm5vZGUtPmRvYzsKKwkgICAgY3R4dC0+bm9kZWxlbiA9IGxlbjsKKwkgICAgY3R4dC0+bm9kZW1lbSA9IGxlbiArIDE7CisJfSBlbHNlIHsKKwkgICAgeG1sU0FYMkVyck1lbW9yeShjdHh0LCAieG1sU0FYMkNoYXJhY3RlcnMiKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9IGVsc2UgeworCWludCBjb2FsZXNjZVRleHQgPSAobGFzdENoaWxkICE9IE5VTEwpICYmCisJICAgIChsYXN0Q2hpbGQtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgJiYKKwkgICAgKGxhc3RDaGlsZC0+bmFtZSA9PSB4bWxTdHJpbmdUZXh0KTsKKwlpZiAoKGNvYWxlc2NlVGV4dCkgJiYgKGN0eHQtPm5vZGVtZW0gIT0gMCkpIHsKKwkgICAgLyoKKwkgICAgICogVGhlIHdob2xlIHBvaW50IG9mIG1haW50YWluaW5nIG5vZGVsZW4gYW5kIG5vZGVtZW0sCisJICAgICAqIHhtbFRleHRDb25jYXQgaXMgdG9vIGNvc3RseSwgaS5lLiBjb21wdXRlIGxlbmd0aCwKKwkgICAgICogcmVhbGxvY2F0ZSBhIG5ldyBidWZmZXIsIG1vdmUgZGF0YSwgYXBwZW5kIGNoLiBIZXJlCisJICAgICAqIFdlIHRyeSB0byBtaW5pbWF6ZSByZWFsbG9jKCkgdXNlcyBhbmQgYXZvaWQgY29weWluZworCSAgICAgKiBhbmQgcmVjb21wdXRpbmcgbGVuZ3RoIG92ZXIgYW5kIG92ZXIuCisJICAgICAqLworCSAgICBpZiAobGFzdENoaWxkLT5jb250ZW50ID09ICh4bWxDaGFyICopJihsYXN0Q2hpbGQtPnByb3BlcnRpZXMpKSB7CisJCWxhc3RDaGlsZC0+Y29udGVudCA9IHhtbFN0cmR1cChsYXN0Q2hpbGQtPmNvbnRlbnQpOworCQlsYXN0Q2hpbGQtPnByb3BlcnRpZXMgPSBOVUxMOworCSAgICB9IGVsc2UgaWYgKChjdHh0LT5ub2RlbWVtID09IGN0eHQtPm5vZGVsZW4gKyAxKSAmJgorCSAgICAgICAgICAgICAgICh4bWxEaWN0T3ducyhjdHh0LT5kaWN0LCBsYXN0Q2hpbGQtPmNvbnRlbnQpKSkgeworCQlsYXN0Q2hpbGQtPmNvbnRlbnQgPSB4bWxTdHJkdXAobGFzdENoaWxkLT5jb250ZW50KTsKKwkgICAgfQorICAgICAgICAgICAgaWYgKCgoc2l6ZV90KWN0eHQtPm5vZGVsZW4gKyAoc2l6ZV90KWxlbiA+IFhNTF9NQVhfVEVYVF9MRU5HVEgpICYmCisgICAgICAgICAgICAgICAgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpID09IDApKSB7CisgICAgICAgICAgICAgICAgeG1sU0FYMkVyck1lbW9yeShjdHh0LCAieG1sU0FYMkNoYXJhY3RlcnM6IGh1Z2UgdGV4dCBub2RlIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCSAgICBpZiAoKHNpemVfdCljdHh0LT5ub2RlbGVuID4gU0laRV9UX01BWCAtIChzaXplX3QpbGVuIHx8IAorCSAgICAgICAgKHNpemVfdCljdHh0LT5ub2RlbWVtICsgKHNpemVfdClsZW4gPiBTSVpFX1RfTUFYIC8gMikgeworICAgICAgICAgICAgICAgIHhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJDaGFyYWN0ZXJzIG92ZXJmbG93IHByZXZlbnRlZCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKwkgICAgfQorCSAgICBpZiAoY3R4dC0+bm9kZWxlbiArIGxlbiA+PSBjdHh0LT5ub2RlbWVtKSB7CisJCXhtbENoYXIgKm5ld2J1ZjsKKwkJc2l6ZV90IHNpemU7CisKKwkJc2l6ZSA9IGN0eHQtPm5vZGVtZW0gKyBsZW47CisJCXNpemUgKj0gMjsKKyAgICAgICAgICAgICAgICBuZXdidWYgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGxhc3RDaGlsZC0+Y29udGVudCxzaXplKTsKKwkJaWYgKG5ld2J1ZiA9PSBOVUxMKSB7CisJCSAgICB4bWxTQVgyRXJyTWVtb3J5KGN0eHQsICJ4bWxTQVgyQ2hhcmFjdGVycyIpOworCQkgICAgcmV0dXJuOworCQl9CisJCWN0eHQtPm5vZGVtZW0gPSBzaXplOworCQlsYXN0Q2hpbGQtPmNvbnRlbnQgPSBuZXdidWY7CisJICAgIH0KKwkgICAgbWVtY3B5KCZsYXN0Q2hpbGQtPmNvbnRlbnRbY3R4dC0+bm9kZWxlbl0sIGNoLCBsZW4pOworCSAgICBjdHh0LT5ub2RlbGVuICs9IGxlbjsKKwkgICAgbGFzdENoaWxkLT5jb250ZW50W2N0eHQtPm5vZGVsZW5dID0gMDsKKwl9IGVsc2UgaWYgKGNvYWxlc2NlVGV4dCkgeworCSAgICBpZiAoeG1sVGV4dENvbmNhdChsYXN0Q2hpbGQsIGNoLCBsZW4pKSB7CisJCXhtbFNBWDJFcnJNZW1vcnkoY3R4dCwgInhtbFNBWDJDaGFyYWN0ZXJzIik7CisJICAgIH0KKwkgICAgaWYgKGN0eHQtPm5vZGUtPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkJY3R4dC0+bm9kZWxlbiA9IHhtbFN0cmxlbihsYXN0Q2hpbGQtPmNvbnRlbnQpOworCQljdHh0LT5ub2RlbWVtID0gY3R4dC0+bm9kZWxlbiArIDE7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICAvKiBNaXhlZCBjb250ZW50LCBmaXJzdCB0aW1lICovCisJICAgIGxhc3RDaGlsZCA9IHhtbFNBWDJUZXh0Tm9kZShjdHh0LCBjaCwgbGVuKTsKKwkgICAgaWYgKGxhc3RDaGlsZCAhPSBOVUxMKSB7CisJCXhtbEFkZENoaWxkKGN0eHQtPm5vZGUsIGxhc3RDaGlsZCk7CisJCWlmIChjdHh0LT5ub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJCSAgICBjdHh0LT5ub2RlbGVuID0gbGVuOworCQkgICAgY3R4dC0+bm9kZW1lbSA9IGxlbiArIDE7CisJCX0KKwkgICAgfQorCX0KKyAgICB9Cit9CisKKy8qKgorICogeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAY2g6ICBhIHhtbENoYXIgc3RyaW5nCisgKiBAbGVuOiB0aGUgbnVtYmVyIG9mIHhtbENoYXIKKyAqCisgKiByZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLgorICogVU5VU0VEOiBieSBkZWZhdWx0IHRoZSBET00gYnVpbGRpbmcgd2lsbCB1c2UgeG1sU0FYMkNoYXJhY3RlcnMKKyAqLwordm9pZAoreG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2Uodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKmNoIEFUVFJJQlVURV9VTlVTRUQsIGludCBsZW4gQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICAvKiB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OyAqLworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlKCUuMzBzLCAlZClcbiIsIGNoLCBsZW4pOworI2VuZGlmCit9CisKKy8qKgorICogeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbjoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEB0YXJnZXQ6ICB0aGUgdGFyZ2V0IG5hbWUKKyAqIEBkYXRhOiB0aGUgUEkgZGF0YSdzCisgKgorICogQSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGhhcyBiZWVuIHBhcnNlZC4KKyAqLwordm9pZAoreG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbih2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpkYXRhKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgeG1sTm9kZVB0ciByZXQ7CisgICAgeG1sTm9kZVB0ciBwYXJlbnQ7CisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybjsKKyAgICBwYXJlbnQgPSBjdHh0LT5ub2RlOworI2lmZGVmIERFQlVHX1NBWAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiU0FYLnhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJXMsICVzKVxuIiwgdGFyZ2V0LCBkYXRhKTsKKyNlbmRpZgorCisgICAgcmV0ID0geG1sTmV3RG9jUEkoY3R4dC0+bXlEb2MsIHRhcmdldCwgZGF0YSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm47CisKKyAgICBpZiAoY3R4dC0+bGluZW51bWJlcnMpIHsKKwlpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgeworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmxpbmUgPCA2NTUzNSkKKwkJcmV0LT5saW5lID0gKHNob3J0KSBjdHh0LT5pbnB1dC0+bGluZTsKKwkgICAgZWxzZQorCSAgICAgICAgcmV0LT5saW5lID0gNjU1MzU7CisJfQorICAgIH0KKyAgICBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMSkgeworCXhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBjdHh0LT5teURvYy0+aW50U3Vic2V0LCByZXQpOworCXJldHVybjsKKyAgICB9IGVsc2UgaWYgKGN0eHQtPmluU3Vic2V0ID09IDIpIHsKKwl4bWxBZGRDaGlsZCgoeG1sTm9kZVB0cikgY3R4dC0+bXlEb2MtPmV4dFN1YnNldCwgcmV0KTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmICgoY3R4dC0+bXlEb2MtPmNoaWxkcmVuID09IE5VTEwpIHx8IChwYXJlbnQgPT0gTlVMTCkpIHsKKyNpZmRlZiBERUJVR19TQVhfVFJFRQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJTZXR0aW5nIFBJICVzIGFzIHJvb3RcbiIsIHRhcmdldCk7CisjZW5kaWYKKyAgICAgICAgeG1sQWRkQ2hpbGQoKHhtbE5vZGVQdHIpIGN0eHQtPm15RG9jLCAoeG1sTm9kZVB0cikgcmV0KTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChwYXJlbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJhZGRpbmcgUEkgJXMgY2hpbGQgdG8gJXNcbiIsIHRhcmdldCwgcGFyZW50LT5uYW1lKTsKKyNlbmRpZgorCXhtbEFkZENoaWxkKHBhcmVudCwgcmV0KTsKKyAgICB9IGVsc2UgeworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJhZGRpbmcgUEkgJXMgc2libGluZyB0byAiLCB0YXJnZXQpOworCXhtbERlYnVnRHVtcE9uZU5vZGUoc3RkZXJyLCBwYXJlbnQsIDApOworI2VuZGlmCisJeG1sQWRkU2libGluZyhwYXJlbnQsIHJldCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNBWDJDb21tZW50OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQHZhbHVlOiAgdGhlIHhtbFNBWDJDb21tZW50IGNvbnRlbnQKKyAqCisgKiBBIHhtbFNBWDJDb21tZW50IGhhcyBiZWVuIHBhcnNlZC4KKyAqLwordm9pZAoreG1sU0FYMkNvbW1lbnQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICp2YWx1ZSkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbE5vZGVQdHIgcmV0OworICAgIHhtbE5vZGVQdHIgcGFyZW50OworCisgICAgaWYgKGN0eCA9PSBOVUxMKSByZXR1cm47CisgICAgcGFyZW50ID0gY3R4dC0+bm9kZTsKKyNpZmRlZiBERUJVR19TQVgKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlNBWC54bWxTQVgyQ29tbWVudCglcylcbiIsIHZhbHVlKTsKKyNlbmRpZgorICAgIHJldCA9IHhtbE5ld0RvY0NvbW1lbnQoY3R4dC0+bXlEb2MsIHZhbHVlKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAoY3R4dC0+bGluZW51bWJlcnMpIHsKKwlpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgeworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmxpbmUgPCA2NTUzNSkKKwkJcmV0LT5saW5lID0gKHNob3J0KSBjdHh0LT5pbnB1dC0+bGluZTsKKwkgICAgZWxzZQorCSAgICAgICAgcmV0LT5saW5lID0gNjU1MzU7CisJfQorICAgIH0KKworICAgIGlmIChjdHh0LT5pblN1YnNldCA9PSAxKSB7CisJeG1sQWRkQ2hpbGQoKHhtbE5vZGVQdHIpIGN0eHQtPm15RG9jLT5pbnRTdWJzZXQsIHJldCk7CisJcmV0dXJuOworICAgIH0gZWxzZSBpZiAoY3R4dC0+aW5TdWJzZXQgPT0gMikgeworCXhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBjdHh0LT5teURvYy0+ZXh0U3Vic2V0LCByZXQpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKChjdHh0LT5teURvYy0+Y2hpbGRyZW4gPT0gTlVMTCkgfHwgKHBhcmVudCA9PSBOVUxMKSkgeworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlNldHRpbmcgeG1sU0FYMkNvbW1lbnQgYXMgcm9vdFxuIik7CisjZW5kaWYKKyAgICAgICAgeG1sQWRkQ2hpbGQoKHhtbE5vZGVQdHIpIGN0eHQtPm15RG9jLCAoeG1sTm9kZVB0cikgcmV0KTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChwYXJlbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJhZGRpbmcgeG1sU0FYMkNvbW1lbnQgY2hpbGQgdG8gJXNcbiIsIHBhcmVudC0+bmFtZSk7CisjZW5kaWYKKwl4bWxBZGRDaGlsZChwYXJlbnQsIHJldCk7CisgICAgfSBlbHNlIHsKKyNpZmRlZiBERUJVR19TQVhfVFJFRQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiYWRkaW5nIHhtbFNBWDJDb21tZW50IHNpYmxpbmcgdG8gIik7CisJeG1sRGVidWdEdW1wT25lTm9kZShzdGRlcnIsIHBhcmVudCwgMCk7CisjZW5kaWYKKwl4bWxBZGRTaWJsaW5nKHBhcmVudCwgcmV0KTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU0FYMkNEYXRhQmxvY2s6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAdmFsdWU6ICBUaGUgcGNkYXRhIGNvbnRlbnQKKyAqIEBsZW46ICB0aGUgYmxvY2sgbGVuZ3RoCisgKgorICogY2FsbGVkIHdoZW4gYSBwY2RhdGEgYmxvY2sgaGFzIGJlZW4gcGFyc2VkCisgKi8KK3ZvaWQKK3htbFNBWDJDRGF0YUJsb2NrKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqdmFsdWUsIGludCBsZW4pCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxOb2RlUHRyIHJldCwgbGFzdENoaWxkOworCisgICAgaWYgKGN0eCA9PSBOVUxMKSByZXR1cm47CisjaWZkZWYgREVCVUdfU0FYCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJTQVgucGNkYXRhKCUuMTBzLCAlZClcbiIsIHZhbHVlLCBsZW4pOworI2VuZGlmCisgICAgbGFzdENoaWxkID0geG1sR2V0TGFzdENoaWxkKGN0eHQtPm5vZGUpOworI2lmZGVmIERFQlVHX1NBWF9UUkVFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJhZGQgY2hhcnMgdG8gJXMgXG4iLCBjdHh0LT5ub2RlLT5uYW1lKTsKKyNlbmRpZgorICAgIGlmICgobGFzdENoaWxkICE9IE5VTEwpICYmCisgICAgICAgIChsYXN0Q2hpbGQtPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpIHsKKwl4bWxUZXh0Q29uY2F0KGxhc3RDaGlsZCwgdmFsdWUsIGxlbik7CisgICAgfSBlbHNlIHsKKwlyZXQgPSB4bWxOZXdDRGF0YUJsb2NrKGN0eHQtPm15RG9jLCB2YWx1ZSwgbGVuKTsKKwl4bWxBZGRDaGlsZChjdHh0LT5ub2RlLCByZXQpOworICAgIH0KK30KKworc3RhdGljIGludCB4bWxTQVgyRGVmYXVsdFZlcnNpb25WYWx1ZSA9IDI7CisKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisvKioKKyAqIHhtbFNBWERlZmF1bHRWZXJzaW9uOgorICogQHZlcnNpb246ICB0aGUgdmVyc2lvbiwgMSBvciAyCisgKgorICogU2V0IHRoZSBkZWZhdWx0IHZlcnNpb24gb2YgU0FYIHVzZWQgZ2xvYmFsbHkgYnkgdGhlIGxpYnJhcnkuCisgKiBCeSBkZWZhdWx0LCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gdGhlIGRlZmF1bHQgaXMgc2V0IHRvIDIuCisgKiBOb3RlIHRoYXQgaXQgaXMgZ2VuZXJhbGx5IGEgYmV0dGVyIGNvZGluZyBzdHlsZSB0byB1c2UKKyAqIHhtbFNBWFZlcnNpb24oKSB0byBzZXQgdXAgdGhlIHZlcnNpb24gZXhwbGljaXRseSBmb3IgYSBnaXZlbgorICogcGFyc2luZyBjb250ZXh0LgorICoKKyAqIFJldHVybnMgdGhlIHByZXZpb3VzIHZhbHVlIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxTQVhEZWZhdWx0VmVyc2lvbihpbnQgdmVyc2lvbikKK3sKKyAgICBpbnQgcmV0ID0geG1sU0FYMkRlZmF1bHRWZXJzaW9uVmFsdWU7CisKKyAgICBpZiAoKHZlcnNpb24gIT0gMSkgJiYgKHZlcnNpb24gIT0gMikpCisgICAgICAgIHJldHVybigtMSk7CisgICAgeG1sU0FYMkRlZmF1bHRWZXJzaW9uVmFsdWUgPSB2ZXJzaW9uOworICAgIHJldHVybihyZXQpOworfQorI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxTQVhWZXJzaW9uOgorICogQGhkbHI6ICB0aGUgU0FYIGhhbmRsZXIKKyAqIEB2ZXJzaW9uOiAgdGhlIHZlcnNpb24sIDEgb3IgMgorICoKKyAqIEluaXRpYWxpemUgdGhlIGRlZmF1bHQgWE1MIFNBWCBoYW5kbGVyIGFjY29yZGluZyB0byB0aGUgdmVyc2lvbgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sU0FYVmVyc2lvbih4bWxTQVhIYW5kbGVyICpoZGxyLCBpbnQgdmVyc2lvbikKK3sKKyAgICBpZiAoaGRsciA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmICh2ZXJzaW9uID09IDIpIHsKKwloZGxyLT5zdGFydEVsZW1lbnQgPSBOVUxMOworCWhkbHItPmVuZEVsZW1lbnQgPSBOVUxMOworCWhkbHItPnN0YXJ0RWxlbWVudE5zID0geG1sU0FYMlN0YXJ0RWxlbWVudE5zOworCWhkbHItPmVuZEVsZW1lbnROcyA9IHhtbFNBWDJFbmRFbGVtZW50TnM7CisJaGRsci0+c2Vycm9yID0gTlVMTDsKKwloZGxyLT5pbml0aWFsaXplZCA9IFhNTF9TQVgyX01BR0lDOworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICB9IGVsc2UgaWYgKHZlcnNpb24gPT0gMSkgeworCWhkbHItPnN0YXJ0RWxlbWVudCA9IHhtbFNBWDJTdGFydEVsZW1lbnQ7CisJaGRsci0+ZW5kRWxlbWVudCA9IHhtbFNBWDJFbmRFbGVtZW50OworCWhkbHItPmluaXRpYWxpemVkID0gMTsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisgICAgfSBlbHNlCisgICAgICAgIHJldHVybigtMSk7CisgICAgaGRsci0+aW50ZXJuYWxTdWJzZXQgPSB4bWxTQVgySW50ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+ZXh0ZXJuYWxTdWJzZXQgPSB4bWxTQVgyRXh0ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+aXNTdGFuZGFsb25lID0geG1sU0FYMklzU3RhbmRhbG9uZTsKKyAgICBoZGxyLT5oYXNJbnRlcm5hbFN1YnNldCA9IHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDsKKyAgICBoZGxyLT5oYXNFeHRlcm5hbFN1YnNldCA9IHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDsKKyAgICBoZGxyLT5yZXNvbHZlRW50aXR5ID0geG1sU0FYMlJlc29sdmVFbnRpdHk7CisgICAgaGRsci0+Z2V0RW50aXR5ID0geG1sU0FYMkdldEVudGl0eTsKKyAgICBoZGxyLT5nZXRQYXJhbWV0ZXJFbnRpdHkgPSB4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5OworICAgIGhkbHItPmVudGl0eURlY2wgPSB4bWxTQVgyRW50aXR5RGVjbDsKKyAgICBoZGxyLT5hdHRyaWJ1dGVEZWNsID0geG1sU0FYMkF0dHJpYnV0ZURlY2w7CisgICAgaGRsci0+ZWxlbWVudERlY2wgPSB4bWxTQVgyRWxlbWVudERlY2w7CisgICAgaGRsci0+bm90YXRpb25EZWNsID0geG1sU0FYMk5vdGF0aW9uRGVjbDsKKyAgICBoZGxyLT51bnBhcnNlZEVudGl0eURlY2wgPSB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsOworICAgIGhkbHItPnNldERvY3VtZW50TG9jYXRvciA9IHhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I7CisgICAgaGRsci0+c3RhcnREb2N1bWVudCA9IHhtbFNBWDJTdGFydERvY3VtZW50OworICAgIGhkbHItPmVuZERvY3VtZW50ID0geG1sU0FYMkVuZERvY3VtZW50OworICAgIGhkbHItPnJlZmVyZW5jZSA9IHhtbFNBWDJSZWZlcmVuY2U7CisgICAgaGRsci0+Y2hhcmFjdGVycyA9IHhtbFNBWDJDaGFyYWN0ZXJzOworICAgIGhkbHItPmNkYXRhQmxvY2sgPSB4bWxTQVgyQ0RhdGFCbG9jazsKKyAgICBoZGxyLT5pZ25vcmFibGVXaGl0ZXNwYWNlID0geG1sU0FYMkNoYXJhY3RlcnM7CisgICAgaGRsci0+cHJvY2Vzc2luZ0luc3RydWN0aW9uID0geG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKKyAgICBoZGxyLT5jb21tZW50ID0geG1sU0FYMkNvbW1lbnQ7CisgICAgaGRsci0+d2FybmluZyA9IHhtbFBhcnNlcldhcm5pbmc7CisgICAgaGRsci0+ZXJyb3IgPSB4bWxQYXJzZXJFcnJvcjsKKyAgICBoZGxyLT5mYXRhbEVycm9yID0geG1sUGFyc2VyRXJyb3I7CisKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjoKKyAqIEBoZGxyOiAgdGhlIFNBWCBoYW5kbGVyCisgKiBAd2FybmluZzogIGZsYWcgaWYgbm9uLXplcm8gc2V0cyB0aGUgaGFuZGxlciB3YXJuaW5nIHByb2NlZHVyZQorICoKKyAqIEluaXRpYWxpemUgdGhlIGRlZmF1bHQgWE1MIFNBWDIgaGFuZGxlcgorICovCit2b2lkCit4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyKHhtbFNBWEhhbmRsZXIgKmhkbHIsIGludCB3YXJuaW5nKQoreworICAgIGlmICgoaGRsciA9PSBOVUxMKSB8fCAoaGRsci0+aW5pdGlhbGl6ZWQgIT0gMCkpCisJcmV0dXJuOworCisgICAgeG1sU0FYVmVyc2lvbihoZGxyLCB4bWxTQVgyRGVmYXVsdFZlcnNpb25WYWx1ZSk7CisgICAgaWYgKHdhcm5pbmcgPT0gMCkKKwloZGxyLT53YXJuaW5nID0gTlVMTDsKKyAgICBlbHNlCisJaGRsci0+d2FybmluZyA9IHhtbFBhcnNlcldhcm5pbmc7Cit9CisKKy8qKgorICogeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0OgorICoKKyAqIEluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYMiBoYW5kbGVyCisgKi8KK3ZvaWQKK3htbERlZmF1bHRTQVhIYW5kbGVySW5pdCh2b2lkKQoreworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICB4bWxTQVhWZXJzaW9uKCh4bWxTQVhIYW5kbGVyUHRyKSAmeG1sRGVmYXVsdFNBWEhhbmRsZXIsIDEpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KK30KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKworLyoqCisgKiB4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcjoKKyAqIEBoZGxyOiAgdGhlIFNBWCBoYW5kbGVyCisgKgorICogSW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBIVE1MIFNBWDIgaGFuZGxlcgorICovCit2b2lkCit4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcih4bWxTQVhIYW5kbGVyICpoZGxyKQoreworICAgIGlmICgoaGRsciA9PSBOVUxMKSB8fCAoaGRsci0+aW5pdGlhbGl6ZWQgIT0gMCkpCisJcmV0dXJuOworCisgICAgaGRsci0+aW50ZXJuYWxTdWJzZXQgPSB4bWxTQVgySW50ZXJuYWxTdWJzZXQ7CisgICAgaGRsci0+ZXh0ZXJuYWxTdWJzZXQgPSBOVUxMOworICAgIGhkbHItPmlzU3RhbmRhbG9uZSA9IE5VTEw7CisgICAgaGRsci0+aGFzSW50ZXJuYWxTdWJzZXQgPSBOVUxMOworICAgIGhkbHItPmhhc0V4dGVybmFsU3Vic2V0ID0gTlVMTDsKKyAgICBoZGxyLT5yZXNvbHZlRW50aXR5ID0gTlVMTDsKKyAgICBoZGxyLT5nZXRFbnRpdHkgPSB4bWxTQVgyR2V0RW50aXR5OworICAgIGhkbHItPmdldFBhcmFtZXRlckVudGl0eSA9IE5VTEw7CisgICAgaGRsci0+ZW50aXR5RGVjbCA9IE5VTEw7CisgICAgaGRsci0+YXR0cmlidXRlRGVjbCA9IE5VTEw7CisgICAgaGRsci0+ZWxlbWVudERlY2wgPSBOVUxMOworICAgIGhkbHItPm5vdGF0aW9uRGVjbCA9IE5VTEw7CisgICAgaGRsci0+dW5wYXJzZWRFbnRpdHlEZWNsID0gTlVMTDsKKyAgICBoZGxyLT5zZXREb2N1bWVudExvY2F0b3IgPSB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yOworICAgIGhkbHItPnN0YXJ0RG9jdW1lbnQgPSB4bWxTQVgyU3RhcnREb2N1bWVudDsKKyAgICBoZGxyLT5lbmREb2N1bWVudCA9IHhtbFNBWDJFbmREb2N1bWVudDsKKyAgICBoZGxyLT5zdGFydEVsZW1lbnQgPSB4bWxTQVgyU3RhcnRFbGVtZW50OworICAgIGhkbHItPmVuZEVsZW1lbnQgPSB4bWxTQVgyRW5kRWxlbWVudDsKKyAgICBoZGxyLT5yZWZlcmVuY2UgPSBOVUxMOworICAgIGhkbHItPmNoYXJhY3RlcnMgPSB4bWxTQVgyQ2hhcmFjdGVyczsKKyAgICBoZGxyLT5jZGF0YUJsb2NrID0geG1sU0FYMkNEYXRhQmxvY2s7CisgICAgaGRsci0+aWdub3JhYmxlV2hpdGVzcGFjZSA9IHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlOworICAgIGhkbHItPnByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CisgICAgaGRsci0+Y29tbWVudCA9IHhtbFNBWDJDb21tZW50OworICAgIGhkbHItPndhcm5pbmcgPSB4bWxQYXJzZXJXYXJuaW5nOworICAgIGhkbHItPmVycm9yID0geG1sUGFyc2VyRXJyb3I7CisgICAgaGRsci0+ZmF0YWxFcnJvciA9IHhtbFBhcnNlckVycm9yOworCisgICAgaGRsci0+aW5pdGlhbGl6ZWQgPSAxOworfQorCisvKioKKyAqIGh0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQ6CisgKgorICogSW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBTQVggaGFuZGxlcgorICovCit2b2lkCitodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KHZvaWQpCit7CisgICAgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIoKHhtbFNBWEhhbmRsZXJQdHIpICZodG1sRGVmYXVsdFNBWEhhbmRsZXIpOworfQorCisjZW5kaWYgLyogTElCWE1MX0hUTUxfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCisvKioKKyAqIHhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyOgorICogQGhkbHI6ICB0aGUgU0FYIGhhbmRsZXIKKyAqCisgKiBJbml0aWFsaXplIHRoZSBkZWZhdWx0IERvY0Jvb2sgU0FYMiBoYW5kbGVyCisgKi8KK3ZvaWQKK3htbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyKHhtbFNBWEhhbmRsZXIgKmhkbHIpCit7CisgICAgaWYgKChoZGxyID09IE5VTEwpIHx8IChoZGxyLT5pbml0aWFsaXplZCAhPSAwKSkKKwlyZXR1cm47CisKKyAgICBoZGxyLT5pbnRlcm5hbFN1YnNldCA9IHhtbFNBWDJJbnRlcm5hbFN1YnNldDsKKyAgICBoZGxyLT5leHRlcm5hbFN1YnNldCA9IE5VTEw7CisgICAgaGRsci0+aXNTdGFuZGFsb25lID0geG1sU0FYMklzU3RhbmRhbG9uZTsKKyAgICBoZGxyLT5oYXNJbnRlcm5hbFN1YnNldCA9IHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDsKKyAgICBoZGxyLT5oYXNFeHRlcm5hbFN1YnNldCA9IHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDsKKyAgICBoZGxyLT5yZXNvbHZlRW50aXR5ID0geG1sU0FYMlJlc29sdmVFbnRpdHk7CisgICAgaGRsci0+Z2V0RW50aXR5ID0geG1sU0FYMkdldEVudGl0eTsKKyAgICBoZGxyLT5nZXRQYXJhbWV0ZXJFbnRpdHkgPSBOVUxMOworICAgIGhkbHItPmVudGl0eURlY2wgPSB4bWxTQVgyRW50aXR5RGVjbDsKKyAgICBoZGxyLT5hdHRyaWJ1dGVEZWNsID0gTlVMTDsKKyAgICBoZGxyLT5lbGVtZW50RGVjbCA9IE5VTEw7CisgICAgaGRsci0+bm90YXRpb25EZWNsID0gTlVMTDsKKyAgICBoZGxyLT51bnBhcnNlZEVudGl0eURlY2wgPSBOVUxMOworICAgIGhkbHItPnNldERvY3VtZW50TG9jYXRvciA9IHhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I7CisgICAgaGRsci0+c3RhcnREb2N1bWVudCA9IHhtbFNBWDJTdGFydERvY3VtZW50OworICAgIGhkbHItPmVuZERvY3VtZW50ID0geG1sU0FYMkVuZERvY3VtZW50OworICAgIGhkbHItPnN0YXJ0RWxlbWVudCA9IHhtbFNBWDJTdGFydEVsZW1lbnQ7CisgICAgaGRsci0+ZW5kRWxlbWVudCA9IHhtbFNBWDJFbmRFbGVtZW50OworICAgIGhkbHItPnJlZmVyZW5jZSA9IHhtbFNBWDJSZWZlcmVuY2U7CisgICAgaGRsci0+Y2hhcmFjdGVycyA9IHhtbFNBWDJDaGFyYWN0ZXJzOworICAgIGhkbHItPmNkYXRhQmxvY2sgPSBOVUxMOworICAgIGhkbHItPmlnbm9yYWJsZVdoaXRlc3BhY2UgPSB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZTsKKyAgICBoZGxyLT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gPSBOVUxMOworICAgIGhkbHItPmNvbW1lbnQgPSB4bWxTQVgyQ29tbWVudDsKKyAgICBoZGxyLT53YXJuaW5nID0geG1sUGFyc2VyV2FybmluZzsKKyAgICBoZGxyLT5lcnJvciA9IHhtbFBhcnNlckVycm9yOworICAgIGhkbHItPmZhdGFsRXJyb3IgPSB4bWxQYXJzZXJFcnJvcjsKKworICAgIGhkbHItPmluaXRpYWxpemVkID0gMTsKK30KKworLyoqCisgKiBkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0OgorICoKKyAqIEluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYIGhhbmRsZXIKKyAqLwordm9pZAorZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCh2b2lkKQoreworICAgIHhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyKCh4bWxTQVhIYW5kbGVyUHRyKSAmZG9jYkRlZmF1bHRTQVhIYW5kbGVyKTsKK30KKworI2VuZGlmIC8qIExJQlhNTF9ET0NCX0VOQUJMRUQgKi8KKyNkZWZpbmUgYm90dG9tX1NBWDIKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L1RPRE8gYi9saWJ4bWwyLTIuNy43L1RPRE8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWMzMjIyNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvVE9ETwpAQCAtMCwwICsxLDI3OCBAQAorMTI0OTA3IEhUTUwgcGFyc2UgYnVmZmVyIHByb2JsZW0gd2hlbiBwYXJzaW5nIGxhcnNlIGluLW1lbW9yeSBkb2NzCisxMjQxMTAgRFREIHZhbGlkYXRpb24gJiYgd3JvbmcgbmFtZXNwYWNlCisxMjM1NjQgeG1sbGludCAtLWh0bWwgLS1mb3JtYXQKKworICAgICAgICAgICBUT0RPIGZvciB0aGUgWE1MIHBhcnNlciBhbmQgc3R1ZmY6CisJICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgICAkSWQkCisKKyAgICB0aGlzIHRlbmQgdG8gYmUgb3V0ZGF0ZWQgOi1cIC4uLgorCitET0NTOgorPT09PT0KKworLSB1c2UgY2FzZSBvZiB1c2luZyBYSW5jbHVkZSB0byBsb2FkIGZvciBleGFtcGxlIGEgZGVzY3JpcHRpb24uCisgIG9yZGVyIGRvY3VtZW50ICsgcHJvZHVjdCBiYXNlIC0oWFNMVCktPiBxdW90ZSB3aXRoIFhJbmNsdWRlcyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgSFRNTCBvdXRwdXQgd2l0aCBkZXNjcmlwdGlvbiBvZiBwYXJ0cyA8LS0tKFhTTFQpLS0KKworVE9ETzoKKz09PT09CistIFhJbmNsdWRlIGF0IHRoZSBTQVggbGV2ZWwgKGxpYlNSVkcpCistIGZpeCB0aGUgQyBjb2RlIHByb3RvdHlwZSB0byBicmluZyBiYWNrIGRvYy9saWJ4bWwtdW5kb2N1bWVudGVkLnR4dAorICB0byBhIHJlYXNvbmFibGUgbGV2ZWwKKy0gQ29tcHV0YXRpb24gb2YgYmFzZSB3aGVuIEhUVFAgcmVkaXJlY3Qgb2NjdXJzLCBtaWdodCBhZmZlY3QgSFRUUAorICBpbnRlcmZhY2VzLgorLSBDb21wdXRhdGlvbiBvZiBiYXNlIGluIFhJbmNsdWRlLiBSZWxhdGl2aXphdGlvbiBvZiBVUklzLgorLSBsaXN0aW5nIGFsbCBhdHRyaWJ1dGVzIGluIGEgbm9kZS4KKy0gQmV0dGVyIGNoZWNraW5nIG9mIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcyBUQUcgMTIzNAorLSBHbyB0aHJvdWdoIGVycmF0YXMgYW5kIGRvIHRoZSBjbGVhbnVwLgorICBodHRwOi8vd3d3LnczLm9yZy9YTUwveG1sLTE5OTgwMjEwLWVycmF0YSAuLi4gc3RhcnRlZCAuLi4KKy0gamFtZXNoIHN1Z2dlc3Rpb246IFNBWCBsaWtlIGZ1bmN0aW9ucyB0byBzYXZlIGEgZG9jdW1lbnQgaWUuIGNhbGwgYQorICBmdW5jdGlvbiB0byBvcGVuIGEgbmV3IGVsZW1lbnQgd2l0aCBnaXZlbiBhdHRyaWJ1dGVzLCB3cml0ZSBjaGFyYWN0ZXIKKyAgZGF0YSwgY2xvc2UgbGFzdCBlbGVtZW50LCBldGMKKyAgKyBpbnZlcnN0ZWQgU0FYLCBpbml0aWFsIHBhdGNoIGluIEFwcmlsIDIwMDIgYXJjaGl2ZXMuCistIGh0bWxQYXJzZURvYyBoYXMgcGFyYW1ldGVyIGVuY29kaW5nIHdoaWNoIGlzIG5vdCB1c2VkLgorICBGdW5jdGlvbiBodG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCBpZ25vcmUgaXQuCistIGZpeCByZWFsbG9jKCkgdXNhZ2UuCistIFN0cmljdGVuIHRoZSBVVEY4IGNvbmZvcm1hbmNlIChNYXJ0aW4gRHVlcnN0KToKKyAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNi91dGYtOC10ZXN0Ly4KKyAgVGhlIGJhZCBmaWxlcyBhcmUgaW4gaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNi91dGYtOC13cm9uZy8uCistIHhtbDppZCBub3JtYWxpemVkIHZhbHVlCisKK1RPRE86Cis9PT09PQorCistIG1vdmUgYWxsIHN0cmluZyBtYW5pcHVsYXRpb24gZnVuY3Rpb25zICh4bWxTdHJkdXAsIHhtbFN0cmxlbiwgZXRjLikgdG8KKyAgZ2xvYmFsLmMuIEJqb3JuIG5vdGVkIHRoYXQgdGhlIGZvbGxvd2luZyBmaWxlcyBkZXBlbmRzIG9uIHBhcnNlci5vIHNvbGVseQorICBiZWNhdXNlIG9mIHRoZXNlIHN0cmluZyBmdW5jdGlvbnM6IGVudGl0aWVzLm8sIGdsb2JhbC5vLCBoYXNoLm8sIHRyZWUubywKKyAgeG1sSU8ubywgYW5kIHhwYXRoLm8uCisKKy0gT3B0aW1pemF0aW9uIG9mIHRhZyBzdHJpbmdzIGFsbG9jYXRpb24gPworCistIG1haW50YWluIGNvaGVyZW5jeSBvZiBuYW1lc3BhY2Ugd2hlbiBkb2luZyBjdXQnbiBwYXN0ZSBvcGVyYXRpb25zCisgID0+IHRoZSBmdW5jdGlvbnMgYXJlIGNvZGVkLCBidXQgbmVlZCB0ZXN0aW5nCisKKy0gZnVuY3Rpb24gdG8gcmVidWlsZCB0aGUgSUQgdGFibGUKKy0gZnVuY3Rpb25zIHRvIHJlYnVpbGQgdGhlIERURCBoYXNoIHRhYmxlcyAoYWZ0ZXIgRFREIGNoYW5nZXMpLgorICAgCisKK0VYVEVOU0lPTlM6Cis9PT09PT09PT09PQorCistIFRvb2xzIHRvIHByb2R1Y2UgbWFuIHBhZ2VzIGZyb20gdGhlIFNHTUwgZG9jcy4KKworLSBBZGQgWHBvaW50ZXIgcmVjb2duaXRpb24vQVBJCisKKy0gQWRkIFhsaW5rIHJlY29nbml0aW9uL0FQSQorICA9PiBzdGFydGVkIGFkZGluZyBhbiB4bGluay5bY2hdIHdpdGggYSB1bmlmaWVkIEFQSSBmb3IgWE1MIGFuZCBIVE1MLgorICAgICBpdCdzIGNyYXAgOi0oCisKKy0gSW1wbGVtZW50IFhTY2hlbWFzCisgID0+IFJlYWxseSBuZWVkIHRvIGJlIGRvbmUgPGdyaW4vPgorICAtIGRhdGF0eXBlIGFyZSBjb21wbGV0ZSwgYnV0IHN0cnVjdHVyZSBzdXBwb3J0IGlzIHZlcnkgbGltaXRlZC4KKworLSBleHRlbmQgdGhlIHNoZWxsIHdpdGg6CisgICAtIGVkaXQKKyAgIC0gbG9hZC9zYXZlCisgICAtIG12ICh5dW0sIHl1bSwgYnV0IGl0J3MgaGFyZGVyIGJlY2F1c2UgZGlyZWN0b3JpZXMgYXJlIG9yZGVyZWQgaW4KKyAgICAgb3VyIGNhc2UsIG12dXAgYW5kIG12ZG93biB3b3VsZCBiZSByZXF1aXJlZCkKKworCitEb25lOgorPT09PT0KKworLSBBZGQgSFRNTCB2YWxpZGF0aW9uIHVzaW5nIHRoZSBYSFRNTCBEVEQKKyAgLSBwcm9ibGVtOiBkbyB3ZSB3YW50IHRvIGtlZXAgYW5kIG1haW50YWluIHRoZSBjb2RlIGZvciBoYW5kbGluZworICAgIERURC9TeXN0ZW0gSUQgY2FjaGUgZGlyZWN0bHkgaW4gbGlieG1sID8KKyAgPT4gbm90IHJlYWxseSBkb25lIHRoYXQgd2F5LCBidXQgdGhlcmUgYXJlIG5ldyBBUElzIHRvIGNoZWNrIGVsZW1lbnRzCisgICAgIG9yIGF0dHJpYnV0ZXMuIE90aGVyd2lzZSBYSFRNTCB2YWxpZGF0aW9uIGRpcmVjdGx5IC4uLgorCistIFhNTCBTY2hlbWFzIGRhdGF0eXBlcyBleGNlcHQgQmFzZTY0IGFuZCBCaW5IZXgKKworLSBSZWxheCBORyB2YWxpZGF0aW9uCisKKy0gWG1sVGV4dFJlYWRlciBzdHJlYW1pbmcgQVBJICsgdmFsaWRhdGlvbgorCistIEFkZCBhIERURCBjYWNoZSBwcmVmaWxsZWQgd2l0aCB4aHRtbCBEVERzIGFuZCBlbnRpdGllcyBhbmQgYSBwcm9ncmFtIHRvCisgIG1hbmFnZSB0aGVtIC0+IGxpa2UgdGhlIC91c3IvYmluL2luc3RhbGwtY2F0YWxvZyBmcm9tIFNHTUwKKyAgcmlnaHQgcGxhY2Ugc2VlbXMgJGRhdGFkaXIveG1sZHRkcworICBNYXliZSB0aGlzIGlzIGJldHRlciBsZWZ0IHRvIHVzZXIgYXBwcworICA9PiB1c2UgYSBjYXRhbG9nIGluc3RlYWQgLCBhbmQgeGh0bWwxLWR0ZCBwYWNrYWdlCisKKy0gQWRkIG91dHB1dCB0byBYSFRNTAorICA9PiBYTUwgc2VyaWFsaXplciBhdXRvbWF0aWNhbGx5IHJlY29nbml6ZSB0aGUgRFRkIGFuZCBhcHBseSB0aGUgc3BlY2lmaWMKKyAgICAgcnVsZXMuCisKKy0gRml4IG91dHB1dCBvZiA8dHN0IHZhbD0ieCYjeEE7eSIvPgorCistIGNvbXBsaWFuY2UgdG8gWE1MLU5hbWVzcGFjZSBjaGVja2luZywgc2VlIHNlY3Rpb24gNiBvZgorICBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLW5hbWVzLworCistIENvcnJlY3Qgc3RhbmRhbG9uZSBjaGVja2luZy9lbWl0dGluZyAoaGFyZCkKKyAgMi45IFN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb24KKworLSBJbXBsZW1lbnQgT0FTSVMgWE1MIENhdGFsb2cgc3VwcG9ydAorICBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5LworCistIEdldCBPQVNJUyB0ZXN0c3VpdGUgdG8gYSBtb3JlIGZyaWVuZGx5IHJlc3VsdCwgY2hlY2sgYWxsIHRoZSByZXN1bHRzCisgIG9uY2Ugc3RhYmxlLiB0aGUgY2hlY2steG1sLXRlc3Qtc3VpdGUucHkgc2NyaXB0IGRvZXMgdGhpcworCistIEltcGxlbWVudCBYU0xUCisgID0+IGxpYnhzbHQKKworLSBGaW5pc2ggWFBhdGgKKyAgPT4gYXR0cmlidXRlcyBhZGRyZXNzaW5nIHRyb3VibGVzCisgID0+IGRlZmF1bHRlZCBhdHRyaWJ1dGVzIGhhbmRsaW5nCisgID0+IG5hbWVzcGFjZSBheGlzID8KKyAgZG9uZSBhcyBYU0xUIGdvdCBkZWJ1Z2dlZAorCistIGJ1ZyByZXBvcnRlZCBieSBNaWNoYWVsIE1lYWxsaW4gb24gdmFsaWRhdGlvbiBwcm9ibGVtcworICA9PiBBY3R1YWxseSBtZWFucyBJIG5lZWQgdG8gYWRkIHN1cHBvcnQgKGFuZCB3YXJuKSBmb3Igbm9uLWRldGVybWluaXN0aWMKKyAgICAgY29udGVudCBtb2RlbC4KKy0gSGFuZGxlIHVuZGVmaW5lZCBuYW1lc3BhY2VzIGluIGVudGl0eSBjb250ZW50cyBiZXR0ZXIgLi4uIGF0IGxlYXN0CisgIGlzc3VlIGEgd2FybmluZworLSBET00gbmVlZHMKKyAgaW50IHhtbFBydW5lUHJvcCh4bWxOb2RlUHRyIG5vZGUsIHhtbEF0dHRyUHRyIGF0dHIpOworICA9PiBkb25lIGl0J3MgYWN0dWFsbHkgeG1sUmVtb3ZlUHJvcCB4bWxVbnNldFByb3AgeG1sVW5zZXROc1Byb3AKKworLSBIVE1MOiBoYW5kbGluZyBvZiBTY3JpcHQgYW5kIHN0eWxlIGRhdGEgZWxlbWVudHMsIG5lZWQgc3BlY2lhbCBjb2RlIGluCisgIHRoZSBwYXJzZXIgYW5kIHNhdmluZyBmdW5jdGlvbnMgKGhhbmRsaW5nIG9mIDwgPiAiICcgLi4uKToKKyAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvdHlwZXMuaHRtbCN0eXBlLXNjcmlwdAorICBBdHRyaWJ1dGVzIGFyZSBubyBwcm9ibGVtcyBzaW5jZSBlbnRpdGllcyBhcmUgYWNjZXB0ZWQuCistIERPTSBuZWVkcworICB4bWxBdHRyUHRyIHhtbE5ld0RvY1Byb3AoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqdmFsdWUpCistIHByb2JsZW0gd2hlbiBwYXJzaW5nIGhyZWZzIHdpdGggJiB3aXRoIHRoZSBIVE1MIHBhcnNlciAoSVJDIGFjKQorLSBJZiB0aGUgaW50ZXJuYWwgZW5jb2RpbmcgaXMgbm90IFVURjggc2F2aW5nIHRvIGEgZ2l2ZW4gZW5jb2RpbmcgZG9lc24ndAorICB3b3JrID0+IGZpeCB0byBmb3JjZSBVVEY4IGVuY29kaW5nIC4uLgorICBkb25lLCBhZGRlZCBkb2N1bWVudGF0aW9uIHRvbworLSBBZGQgYW4gQVNDSUkgSS9PIGVuY29kZXIgKGFzY2lpVG9VVEY4IGFuZCBVVEY4VG9hc2NpaSkKKy0gSXNzdWUgd2FybmluZyB3aGVuIHVzaW5nIG5vbi1hYnNvbHV0ZSBuYW1lc3BhY2VzIFVSSS4KKy0gdGhlIGh0bWwgcGFyc2VyIHNob3VsZCBhZGQgPGhlYWQ+IGFuZCA8Ym9keT4gaWYgdGhleSBkb24ndCBleGlzdAorICBzdGFydGVkLCBub3QgZmluaXNoZWQuCisgIERvbmUsIHRoZSBhdXRvbWF0aWMgY2xvc2luZyBpcyBhZGRlZCBhbmQgMyB0ZXN0Y2FzZXMgd2VyZSBpbnNlcnRlZAorLSBDb21tYW5kIHRvIGZvcmNlIHRoZSBwYXJzZXIgdG8gc3RvcCBwYXJzaW5nIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIGZpbGUuCisgIHhtbFN0b3BQYXJzZXIoKSBzaG91bGQgYWxsb3cgdGhpcywgbW9zdGx5IHVudGVzdGVkCistIHN1cHBvcnQgZm9yIEhUTUwgZW1wdHkgYXR0cmlidXRlcyBsaWtlIDxociBub3NoYWRlPgorLSBwbHVnZ2VkIGljb252KCkgaW4gZm9yIHN1cHBvcnQgb2YgYSBsYXJnZSBzZXQgb2YgZW5jb2RpbmdzLgorLSB4bWxTd2l0Y2hUb0VuY29kaW5nKCkgcmV3cml0ZSBkb25lCistIFVSSSBjaGVja2luZ3MgKG5vIGZyYWdtZW50cykgcmZjMjM5Ni50eHQKKy0gQWRkZWQgYSBjbGVhbiBtZWNoYW5pc20gZm9yIG92ZXJsb2FkIG9yIGFkZGVkIGlucHV0IG1ldGhvZHM6CisgIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MoKQorLSBkeW5hbWljYWxseSBhZGFwdCB0aGUgYWxsb2MgZW50cnkgcG9pbnQgdG8gdXNlIGdfYWxsb2MoKS9nX2ZyZWUoKQorICBpZiB0aGUgcHJvZ3JhbW1lciB3YW50cyBpdDogCisgICAgLSB1c2UgeG1sTWVtU2V0dXAoKSB0byByZXNldCB0aGUgcm91dGluZXMgdXNlZC4KKy0gQ2hlY2sgYXR0cmlidXRlIG5vcm1hbGl6YXRpb24gZXNwZWNpYWxseSB4bWxHZXRQcm9wKCkKKy0gVmFsaWRpdHkgY2hlY2tpbmcgcHJvYmxlbXMgZm9yIE5PVEFUSU9OUyBhdHRyaWJ1dGVzCistIFZhbGlkaXR5IGNoZWNraW5nIHByb2JsZW1zIGZvciBFTlRJVFkgRU5USVRJRVMgYXR0cmlidXRlcworLSBQYXJzaW5nIG9mIGEgd2VsbCBiYWxhbmNlZCBjaHVuayB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkoKQorLSBVUkkgbW9kdWxlOiB2YWxpZGF0aW9uLCBiYXNlLCBldGMgLi4uIHNlZSB1cmkuW2NoXQorLSB0dXJuIHRlc3RlciBpbnRvIGEgZ2VuZXJpYyBwcm9ncmFtIHhtbGxpbnQgaW5zdGFsbGVkIHdpdGggbGlieG1sCistIGV4dGVuZCB2YWxpZGl0eSBjaGVja3MgdG8gZ28gdGhyb3VnaCBlbnRpdGllcyBjb250ZW50IGluc3RlYWQgb2YKKyAganVzdCBsYWJlbGxpbmcgdGhlbSBQQ0RBVEEKKy0gU2F2ZSBEdGRzIHVzaW5nIHRoZSBjaGlsZHJlbiBsaXN0IGluc3RlYWQgb2YgZHVtcGluZyB0aGUgdGFibGVzLAorICBvcmRlciBpcyBwcmVzZXJ2ZWQgYXMgd2VsbCBhcyBjb21tZW50cyBhbmQgUElzCistIFdyb3RlIGEgbm90aWNlIG9mIGNoYW5nZXMgcmVxdWlyZXMgdG8gZ28gZnJvbSAxLnggdG8gMi54CistIG1ha2Ugc3VyZSB0aGF0IGFsbCBTQVggY2FsbGJhY2tzIGFyZSBkaXNhYmxlZCBpZiBhIFdGIGVycm9yIGlzIGRldGVjdGVkCistIGNoZWNraW5nL2hhbmRsaW5nIG9mIG5ld2xpbmUgbm9ybWFsaXphdGlvbgorICBodHRwOi8vbG9jYWxob3N0L3d3dy54bWwuY29tL2F4bWwvdGFyZ2V0Lmh0bWwjc2VjLWxpbmUtZW5kcworLSBjb3JyZWN0IGNoZWNraW5nIG9mICcmJyAnJScgb24gZW50aXRpZXMgY29udGVudC4KKy0gY2hlY2tpbmcgb2YgUEUvTmVzdGluZyBvbiBlbnRpdGllcyBkZWNsYXJhdGlvbgorLSBjaGVja2luZy9oYW5kbGluZyBvZiB4bWw6c3BhY2UKKyAgIC0gY2hlY2tpbmcgZG9uZS4KKyAgIC0gaGFuZGxpbmcgZG9uZSwgbm90IHdlbGwgdGVzdGVkCistIExhbmd1YWdlIGlkZW50aWZpY2F0aW9uIGNvZGUsIHByb2R1Y3Rpb25zIFszM10gdG8gWzM4XQorICA9PiBkb25lLCB0aGUgY2hlY2sgaGFzIGJlZW4gYWRkZWQgYW5kIHJlcG9ydCBXRm5lc3MgZXJyb3JzCistIENvbmRpdGlvbmFsIHNlY3Rpb25zIGluIERURHMgWzYxXSB0byBbNjVdCisgID0+IHNob3VsZCB0aGlzIGNyYXAgYmUgcmVhbGx5IGltcGxlbWVudGVkID8/PworICA9PiBZZXAgT0FTSVMgdGVzdHN1aXRlIHVzZXMgdGhlbQorLSBBbGxvdyBwYXJzZWQgZW50aXRpZXMgZGVmaW5lZCBpbiB0aGUgaW50ZXJuYWwgc3Vic2V0IHRvIG92ZXJyaWRlCisgIHRoZSBvbmVzIGRlZmluZWQgaW4gdGhlIGV4dGVybmFsIHN1YnNldCAoRHREIGN1c3RvbWl6YXRpb24pLgorICA9PiBUaGlzIG1lYW4gdGhhdCB0aGUgZW50aXR5IGNvbnRlbnQgc2hvdWxkIGJlIGNvbXB1dGVkIG9ubHkgYXQKKyAgICAgdXNlIHRpbWUsIGkuZS4ga2VlcCB0aGUgb3JpZyBzdHJpbmcgb25seSBhdCBwYXJzZSB0aW1lIGFuZCBleHBhbmQKKyAgICAgb25seSB3aGVuIHJlZmVyZW5jZWQgZnJvbSB0aGUgZXh0ZXJuYWwgc3Vic2V0IDotKAorICAgICBOZWVkZWQgZm9yIGNvbXBsZXRlIHVzZSBvZiBtb3N0IERURCBmcm9tIEV2ZSBNYWxlcgorLSBBZGQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgYWxsIFdGQyBlcnJvcnMKKyAgPT4gZGlkIHNvbWUgaW4gdGVzdC9XRkMKKyAgPT4gYWRkZWQgT0FTSVMgdGVzdHN1aXRlIHJvdXRpbmVzCisgICAgIGh0dHA6Ly94bWxzb2Z0Lm9yZy9jb25mL3Jlc3VsdC5odG1sCisKKy0gSTE4TjogaHR0cDovL3dhcC50cm9uZGhlaW0uY29tL3ZhZXIvaW5kZXgucGh0bWwgaXMgbm90IFhNTCBhbmQgYWNjZXB0ZWQKKyAgYnkgdGhlIFhNTCBwYXJzZXIsIFVURi04IHNob3VsZCBiZSBjaGVja2VkIHdoZW4gdGhlcmUgaXMgbm8gImVuY29kaW5nIgorICBkZWNsYXJlZCAhCistIFN1cHBvcnQgZm9yIFVURi04IGFuZCBVVEYtMTYgZW5jb2RpbmcKKyAgPT4gYWRkZWQgc29tZSBjb252ZXJ0aW9uIHJvdXRpbmVzIHByb3ZpZGVkIGJ5IE1hcnRpbiBEdXJzdAorICAgICBwYXRjaGVkIHRoZW0sIGdvdCBmaXhlcyBmcm9tIEBAQAorICAgICBJIHBsYW4gdG8ga2VlcCBldmVyeXRoaW5nIGludGVybmFsbHkgYXMgVVRGLTggKG9yIElTTy1MYXRpbi1YKQorICAgICB0aGlzIGlzIHNsaWdodGx5IG1vcmUgY29zdGx5IGJ1dCBtb3JlIGNvbXBhY3QsIGFuZCByZWNlbnQgcHJvY2Vzc29ycworICAgICBlZmZpY2llbmN5IGlzIGNhY2hlIHJlbGF0ZWQuIFRoZSBrZXkgZm9yIGdvb2QgcGVyZm9ybWFuY2VzIGlzIGtlZXBpbmcKKyAgICAgdGhlIGRhdGEgc2V0IHNtYWxsLCBzbyB3aWxsIEkuCisgID0+IHRoZSBuZXcgcHJvZ3Jlc3NpdmUgcmVhZGluZyByb3V0aW5lcyBjYWxsIHRoZSBkZXRlY3Rpb24gY29kZQorICAgICBpcyBlbmFibGVkLCB0ZXN0ZWQgdGhlIElTTy0+VVRGLTggc3R1ZmYKKy0gRXh0ZXJuYWwgZW50aXRpZXMgbG9hZGluZzogCisgICAtIGFsbG93IG92ZXJyaWRlIGJ5IGNsaWVudCBjb2RlCisgICAtIG1ha2Ugc3VyZSBpdCBpcyBhbGxlZCBmb3IgYWxsIGV4dGVybmFsIGVudGl0aWVzIHJlZmVyZW5jZWQKKyAgRG9uZSwgY2xpZW50IGNvZGUgc2hvdWxkIHVzZSB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpIHRvIHNldAorICB0aGUgZGVmYXVsdCBsb2FkaW5nIHJvdXRpbmUuIEl0IHdpbGwgYmUgY2FsbGVkIGVhY2ggdGltZSBhbiBleHRlcm5hbAorICBlbnRpdHkgZW50aXR5IHJlc29sdXRpb24gaXMgdHJpZ2dlcmVkLgorLSBtYWludGFpbiBJRCBjb2hlcmVuY3kgd2hlbiByZW1vdmluZy9jaGFuZ2luZyBhdHRyaWJ1dGVzCisgIFRoZSBmdW5jdGlvbiB1c2VkIHRvIGRlYWxsb2NhdGUgYXR0cmlidXRlcyBub3cgY2hlY2sgZm9yIGl0IGJlaW5nIGFuCisgIElEIGFuZCByZW1vdmVzIGl0IGZyb20gdGhlIHRhYmxlLgorLSBwdXNoIG1vZGUgcGFyc2luZyBpLmUuIG5vbi1ibG9ja2luZyBzdGF0ZSBiYXNlZCBwYXJzZXIKKyAgZG9uZSwgYm90aCBmb3IgWE1MIGFuZCBIVE1MIHBhcnNlcnMuIFVzZSB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCgpCisgIGFuZCB4bWxQYXJzZUNodW5rKCkgYW5kIGh0bWwgY291bnRlcnBhcnRzLgorICBUaGUgdGVzdGVyIHByb2dyYW0gbm93IGhhcyBhIC0tcHVzaCBvcHRpb24gdG8gc2VsZWN0IHRoYXQgcGFyc2VyIAorICBmcm9udC1lbmQuIERvdXBsaWNhdGVkIHRlc3RzIHRvIHVzZSBib3RoIGFuZCBjaGVjayByZXN1bHRzIGFyZSBzaW1pbGFyLgorCistIE1vc3Qgb2YgWFBhdGgsIHN0aWxsIHNlZSBzb21lIHRyb3VibGVzIGFuZCBvY2Nhc2lvbm5hbCBtZW1sZWFrcy4KKy0gYW4gWE1MIHNoZWxsLCBhbGxvd2luZyB0byB0cmF2ZXJzZS9tYW5pcHVsYXRlIGFuIFhNTCBkb2N1bWVudCB3aXRoCisgIGEgc2hlbGwgbGlrZSBpbnRlcmZhY2UsIGFuZCB1c2luZyBYUGF0aCBmb3IgdGhlIGFubWluZyBzeW50YXgKKyAgLSB1c2Ugb2YgcmVhZGxpbmUgYW5kIGhpc3RvcnkgYWRkZWQgd2hlbiBhdmFpbGFibGUKKyAgLSB0aGUgc2hlbGwgaW50ZXJmYWNlIGhhcyBiZWVuIGNsZWFubHkgc2VwYXJhdGVkIGFuZCBtb3ZlZCB0byBkZWJ1Z1hNTC5jCistIEhUTUwgcGFyc2VyLCBzaG91bGQgYmUgZmFpcmx5IHN0YWJsZSBub3cKKy0gQVBJIHRvIHNlYXJjaCB0aGUgbGFuZyBvZiBhbiBhdHRyaWJ1dGUKKy0gQ29sbGVjdCBJRHMgYXQgcGFyc2luZyBhbmQgbWFpbnRhaW4gYSB0YWJsZS4gCisgICBQQk06IG1haW50YWluIHRoZSB0YWJsZSBjb2hlcmVuY3kKKyAgIFBCTTogaG93IHRvIGRldGVjdCBJRCB0eXBlcyBpbiBhYnNlbmNlIG9mIER0RCAhCistIFVzZSBpdCBmb3IgWFBhdGggSUQgc3VwcG9ydAorLSBBZGQgdmFsaWRpdHkgY2hlY2tpbmcKKyAgU2hvdWxkIGJlIGZpbmlzaGVkIG5vdyAhCistIEFkZCByZWdyZXNzaW9uIHRlc3RzIHdpdGggZW50aXR5IHN1YnN0aXR1dGlvbnMKKworLSBFeHRlcm5hbCBQYXJzZWQgZW50aXRpZXMsIGVpdGhlciBYTUwgb3IgZXh0ZXJuYWwgU3Vic2V0IFs3OF0gYW5kIFs3OV0KKyAgcGFyc2luZyB0aGUgeG1sbGFuZyBEdEQgbm93IHdvcmtzLCBzbyBpdCBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IKKyAgbW9zdCBjYXNlcyAhCisKKy0gcHJvZ3Jlc3NpdmUgcmVhZGluZy4gVGhlIGVudGl0eSBzdXBwb3J0IGlzIGEgZmlyc3Qgc3RlcCB0b3dhcmQKKyAgYXNidHJhY3Rpb24gb2YgYW4gaW5wdXQgc3RyZWFtLiBBIGxhcmdlIHBhcnQgb2YgdGhlIGNvbnRleHQgaXMgc3RpbGwKKyAgbG9jYXRlZCBvbiB0aGUgc3RhY2ssIG1vdmluZyB0byBhIHN0YXRlIG1hY2hpbmUgYW5kIHB1dHRpbmcgZXZlcnl0aW5nCisgIGluIHRoZSBwYXJzaW5nIGNvbnRleHQgc2hvdWxkIHByb3ZpZGUgYW4gYWRlcXVhdGUgc29sdXRpb24uCisgID0+IFJhdGhlciB0aGFuIHByb2dyZXNzaXZlIHBhcnNpbmcsIGdpdmUgbW9yZSBwb3dlciB0byB0aGUgU0FYLWxpa2UKKyAgICAgaW50ZXJmYWNlLiBDdXJyZW50bHkgdGhlIERPTS1saWtlIHJlcHJlc2VudGF0aW9uIGlzIGJ1aWx0IGJ1dAorICAgICA9PiBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZGVmaW5lIHRoYXQgb25seSBhcyBhIHNldCBvZiBTQVggY2FsbGJhY2tzCisJYW5kIHJlbW92ZSB0aGUgdHJlZSBjcmVhdGlvbiBmcm9tIHRoZSBwYXJzZXIgY29kZS4KKwlET05FCisKKy0gRE9NIHN1cHBvcnQsIGluc3RlYWQgb2YgdXNpbmcgYSBwcm9wcmlldGFyeSBpbiBtZW1vcnkKKyAgZm9ybWF0IGZvciB0aGUgZG9jdW1lbnQgcmVwcmVzZW50YXRpb24sIHRoZSBwYXJzZXIgc2hvdWxkCisgIGNhbGwgYSBET00gQVBJIHRvIGFjdHVhbGx5IGJ1aWxkIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQuCisgIFRoZW4gdGhlIHBhcnNlciBiZWNvbWVzIGluZGVwZW5kZW50IG9mIHRoZSBpbi1tZW1vcnkKKyAgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRvY3VtZW50LiBFdmVuIGJldHRlciB1c2luZyBSUEMncworICB0aGUgcGFyc2VyIGNhbiBhY3R1YWxseSBidWlsZCB0aGUgZG9jdW1lbnQgaW4gYW5vdGhlcgorICBwcm9ncmFtLgorICA9PiBXb3JrIHN0YXJ0ZWQsIG5vdyB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gaXMgYnkgZGVmYXVsdAorICAgICB2ZXJ5IG5lYXIgYSBkaXJlY3QgRE9NIGltcGxlbWVudGF0aW9uLiBUaGUgRE9NIGdsdWUgaXMgaW1wbGVtZW50ZWQKKyAgICAgYXMgYSBzZXBhcmF0ZSBtb2R1bGUuIFNlZSB0aGUgR05PTUUgZ2RvbWUgbW9kdWxlLgorCistIEMrKyBzdXBwb3J0IDogSm9obiBFaHJlc21hbiA8amVocmVzbWFAZHNnLmhhcnZhcmQuZWR1PgorLSBVcGRhdGVkIGNvZGUgdG8gZm9sbG93IG1vcmUgcmVjZW50IHNwZWNzLCBhZGRlZCBjb21wYXRpYmlsaXR5IGZsYWcKKy0gQmV0dGVyIGVycm9yIGhhbmRsaW5nLCB1c2UgYSBkZWRpY2F0ZWQsIG92ZXJyaWRhYmxlIGVycm9yCisgIGhhbmRsaW5nIGZ1bmN0aW9uLgorLSBTdXBwb3J0IGZvciBDREFUQS4KKy0gS2VlcCB0cmFjayBvZiBsaW5lIG51bWJlcnMgZm9yIGJldHRlciBlcnJvciByZXBvcnRpbmcuCistIFN1cHBvcnQgZm9yIFBJIChTQVggb25lKS4KKy0gU3VwcG9ydCBmb3IgQ29tbWVudHMgKGJhZCwgc2hvdWxkIGJlIGluIEFTQVAsIHRoZXkgYXJlIHBhcnNlZAorICBidXQgbm90IHN0b3JlZCksIHNob3VsZCBiZSBjb25maWd1cmFibGUuCistIEltcHJvdmUgdGhlIHN1cHBvcnQgb2YgZW50aXRpZXMgb24gc2F2ZSAoK1NBWCkuCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvVE9ET19TQ0hFTUFTIGIvbGlieG1sMi0yLjcuNy9UT0RPX1NDSEVNQVMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ1YTRlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvVE9ET19TQ0hFTUFTCkBAIC0wLDAgKzEsMzEgQEAKKy0gaW1wbGVtZW50IGNvdW50ZWQgdHJhbnNpdGlvbnMgYXQgdGhlIGF1dG9tYXRhIGxldmVsCisKKy0gVW5pY29kZToKKyAgKyB1cGdyYWRlIHRvIDMuMgorICArIGltcHJvdmUgdGhlIHB5dGhvbiBzY3JpcHQgdG8gZ2VuZXJhdGUgYmV0dGVyIHRlc3QKKyAgICBleHByZXNzaW9ucyB0byBjaGVjayB0aGUgbGlzdCBvZiByYW5nZXMuCisKKy0gSW1wbGVtZW50IHRoZSBpbnRlcmZhY2UgYXQgdGhlIFNBWCBsZXZlbAorCistIEltcGxlbWVudCB0aGUgbWlzc2luZyBwYXJ0cyBpbiB0aGUgU3RydWN0dXJlIHBhcnQKKyAgICsgYWxsIGNvbnRlbnQgbW9kZWwKKyAgICsgZW51bWVyYXRpb25zCisgICArIGNvdW50bGVzcyBvdGhlcnMgYy5mLiB0aGUgVE9ETyBzY2F0dGVyZWQgaW4gdGhlIGNvZGUKKworLSBDb21wbGV0ZSB0aGUgQnVpbHQtSW4gZGF0YXR5cGUgY29sbGVjdGlvbnMgYW5kIEZhY2V0cyBpbXBsZW1lbnRhdGlvbnMKKworLSBSZWdyZXNzaW9uIHRlc3RzIGJhc2VkIG9uCisgICsgdGhlIHByaW1lcjoKKyAgICBodHRwOi8vd3d3LnczLm9yZy9UUi94bWxzY2hlbWEtMC8KKyAgKyB0aGUgU2NoZW1hcyBUZXN0IENvbGxlY3Rpb246CisgICAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNS94bWxzY2hlbWEtdGVzdC1jb2xsZWN0aW9uLworICArIGFyY2hpdmVzIG9mIHRoZSBzY2hlbWFzLWRldiBsaXN0CisKKy0gSW50ZWdyaXR5IGNvbnN0cmFpbnRzOgorICArIHdoYXQncyB0aGF0ID8gSG93IG5lZWQgdG8gcmVhZCBhYm91dCBpdAorCistICJmb3JtYWwiIGNoZWNraW5nLCBpLmUuIGdvIHRocm91Z2ggdGhlIGZ1bGwgU3RydWN0dXJlIHNwZWMgYW5kCisgIGJpbmQgY29kZSBhbmQgYXNzb2NpYXRlZCBwYXJ0cyBvZiB0aGUgU2NoZW1hcyBzcGVjCisKKy0gZ28gdGhvdWdoIHRoZSBlcnJhdGFzCisgIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDUveG1sc2NoZW1hLWVycmF0YQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9WeFdvcmtzL01ha2VmaWxlIGIvbGlieG1sMi0yLjcuNy9WeFdvcmtzL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExZjY5MDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L1Z4V29ya3MvTWFrZWZpbGUKQEAgLTAsMCArMSw2OCBAQAorIyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIyMNCisjIy0tIEZpbGVuYW1lOiBNYWtlZmlsZQ0KKyMjDQorIyMtLSAkRGF0ZTogMjAwOC8wMi8yMyAwMjo1NjoxNyAkDQorIyMtLSAkUmV2aXNpb246IDEuMiAkDQorIyMtLSAkTmFtZTogICQNCisjIw0KKyMjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KK05BTUUgPSB4bWwyDQorVE9PTF9GQU1JTFk9Z251DQorDQoraW5jbHVkZSAkKFdJTkRfVVNSKS90b29sL2dudS9tYWtlLiQoVlhDUFUpDQorDQorRkxBR1MgPSAtV2FsbCAtZyAtSXNyYyAtSXNyYy9pbmNsdWRlIC1EX1JFRU5UUkFOVD0xDQorI0ZMQUdTID0gLVdhbGwgLU8yIC1Jc3JjIC1Jc3JjL2luY2x1ZGUgLURfUkVFTlRSQU5UPTENCisNCitGTEFHUyArPSAkKERFRklORV9DQykgJChDQ19BUkNIX1NQRUMpIC1NRCAtTVAgLURfVlhfQ1BVPV9WWF8kKENQVSkgLURfVlhfVE9PTF9GQU1JTFk9Z251IC1EX1ZYX1RPT0w9JChUT09MKQ0KK2lmZXEgKCQoVlhUWVBFKSxSVFApDQorRkxBR1MgKz0gLW1ydHAgLWZwaWMgLUkkKFdJTkRfVVNSKS9oIC1JJChXSU5EX1VTUikvaC93cm4vY29yZWlwDQorZWxzZQ0KK0ZMQUdTICs9IC1EX1dSU19LRVJORUwgLUkkKFdJTkRfQkFTRSkvdGFyZ2V0L2ggLUkkKFdJTkRfQkFTRSkvdGFyZ2V0L2gvd3JuL2NvcmVpcA0KK2VuZGlmDQorDQoraWZlcSAoJChWWFRZUEUpLFJUUCkNCitpZmVxICgkKENQVSksU0gzMikNCitMSUJfTERGTEFHUyArPSAtTCQoV0lORF9VU1IpL2xpYi9zaC9TSDMyL2NvbW1vbmxlL1BJQw0KK2Vsc2UNCitMSUJfTERGTEFHUyArPSAkKExEX0xJTktfUEFUSF9BVEVORCkgJChMRF9QQVJUSUFMX0xBU1RfRkxBR1MpDQorZW5kaWYNCitlbmRpZg0KKw0KK09CSlMgPQljMTRuLm8gY2F0YWxvZy5vIGNodmFsaWQubyBcDQorCQlkZWJ1Z1hNTC5vIGRpY3QubyBET0NCcGFyc2VyLm8gXA0KKwkJZW5jb2RpbmcubyBlbnRpdGllcy5vIGVycm9yLm8gXA0KKwkJZ2xvYmFscy5vIFwNCisJCWhhc2gubyBcDQorCQlsZWdhY3kubyBsaXN0Lm8gXA0KKwkJcGFyc2VyLm8gcGFyc2VySW50ZXJuYWxzLm8gcGF0dGVybi5vIFwNCisJCXJlbGF4bmcubyBcDQorCQlTQVgyLm8gU0FYLm8gc2NoZW1hdHJvbi5vIFwNCisJCXRocmVhZHMubyB0cmVlLm8gXA0KKwkJdXJpLm8gXA0KKwkJdmFsaWQubyBcDQorCQl4aW5jbHVkZS5vIHhsaW5rLm8geG1sY2F0YWxvZy5vIHhtbElPLm8gXA0KKwkJeG1sbWVtb3J5Lm8geG1sbW9kdWxlLm8geG1scmVhZGVyLm8geG1scmVnZXhwLm8gXA0KKwkJeG1sc2F2ZS5vIHhtbHNjaGVtYXMubyB4bWxzY2hlbWFzdHlwZXMubyB4bWxzdHJpbmcubyBcDQorCQl4bWx1bmljb2RlLm8geG1sd3JpdGVyLm8geHBhdGgubyB4cG9pbnRlci5vDQorDQorYWxsIDogbGliJChOQU1FKS5zbw0KKw0KK2luaXQgOiANCisJbWtkaXIgLXAgb2Jqcw0KKwkNCisuUEhPTlkgOiBsaWIkKE5BTUUpLnNvDQorCQ0KK2xpYiQoTkFNRSkuc28gOiBpbml0ICQocGF0c3Vic3QgJS5vLCBvYmpzLyUubywgJChPQkpTKSkNCisJJChDQykgJChGTEFHUykgJChMSUJfTERGTEFHUykgLXNoYXJlZCAtbyAkQCAkKHBhdHN1YnN0ICUubywgb2Jqcy8lLm8sICQoT0JKUykpDQorCQ0KKyhOQU1FKS5vdXQgOiBpbml0ICQocGF0c3Vic3QgJS5vLCBvYmpzLyUubywgJChPQkpTKSkNCisJJChDQykgJChGTEFHUykgLW8gJEAgJChwYXRzdWJzdCAlLm8sIG9ianMvJS5vLCAkKE9CSlMpKQ0KKw0KK29ianMvJS5vOiBzcmMvJS5jDQorCSAkKENDKSAkKEZMQUdTKSAtbyAkQCAtYyAkPA0KKwkNCitjbGVhbjoNCisJcm0gLWZSICouc28gb2Jqcw0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvVnhXb3Jrcy9SRUFETUUgYi9saWJ4bWwyLTIuNy43L1Z4V29ya3MvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3NTY2NzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L1Z4V29ya3MvUkVBRE1FCkBAIC0wLDAgKzEsODYgQEAKKyAgICAgICAgICAgICBsaWJ4bWwyIG9uIFZ4V29ya3MgNi40KworCitIZXJlIGFyZSBteSBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIG9uIFZ4V29ya3MuLi4uIEkgYW0gdmVyeSBhc2hhbWVkIG9mCitob3cgSSBkaWQgdGhpcyBiZWNhdXNlIGl0IGlzIGEgY29tcGxldGUgaGFjaywgYnV0IGl0IHdvcmtzIGdyZWF0LCBzbyBJCitjYW4ndCBjb21wbGFpbiB0b28gbXVjaC4KKworR2VuZXJhbCBJbmZvcm1hdGlvbgorCisxLiBUaGUgb25seSB3YXkgdG8gYnVpbGQgZm9yIFZ4V29ya3MgaXMgdG8gY3Jvc3MgY29tcGlsZSBmcm9tIGEgd2luZG93cyBvcgorbGludXggc3lzdGVtLiAgV2UgdXNlIGEgUmVkSGF0IDUuMSB3b3Jrc3RhdGlvbiBzeXN0ZW0gYXMgb3VyIGJ1aWxkCitlbnZpcm9ubWVudC4KKworMi4gVnhXb3JrcyA2LlggaGFzIHR3byBtYWluIHR5cGVzIG9mIGV4ZWN1dGFibGUsIERLTXMgKGR5bmFtaWMga2VybmVsCittb2R1bGVzKSwgYW5kIFJUUHMgKHJlYWwtdGltZSBwcm9jZXNzZXMpLiAgS2VybmVsIG1vZHVsZXMgYXJlIHRoZSBicmVhZAorYW5kIGJ1dHRlciBvZiBWeFdvcmtzLCBidXQgdGhleSBsb29rIG5vdGhpbmcgbGlrZSBwcm9jZXNzZXMvdGhyZWFkcyBpbgorbm9ybWFsIFVOSVgvV2luZG93cyBzeXN0ZW1zLiAgUlRQcyBhcmUgbW9yZSBsaWtlIHByb2Nlc3NlcyB0aGF0IGhhdmUKK21lbW9yeSBwcm90ZWN0aW9uLCB0aHJlYWRzLCBldGMuICBWeFdvcmtzIDYuWCBhbHNvIGludHJvZHVjZXMgc29tZSBsZXZlbAorb2YgUE9TSVggY29uZm9ybWFuY2UgdG8gdGhlaXIgZW52aXJvbm1lbnQuICBUaGUgUE9TSVggY29uZm9ybWFuY2Ugd2FzIHRoZQora2V5IGZvciB1cyB0byBiZSBhYmxlIHRvIHBvcnQgbGlieG1sMi4gIFdlIHN1cHBvcnQgYWNjZXNzaW5nIGxpYnhtbDIgZnJvbQorYm90aCBES01zIGFuZCBSVFBzLgorCiszLiBUaGVyZSBhcmUgMiBjb21waWxlcnMgZm9yIFZ4V29ya3MsIHRoZSBXaW5kUml2ZXIgY29tcGlsZXIsIGFuZCBhIHBvcnQKK29mIHRoZSBHTlUgdG9vbGNoYWluLCB3ZSBoYXZlIG9ubHkgdGVzdGVkIGFuZCBidWlsdCB3aXRoIHRoZSBHTlUKK3Rvb2xjaGFpbi4KKworSG93IFRvIEJ1aWxkCisKKzEuIFJ1biB0aGUgY29uZmlndXJlIG9uIHlvdXIgbmF0aXZlIGxpbnV4IHN5c3RlbSAodGhpcyBpcyB0aGUgY2hlZXN5CitoYWNrKS4gIFNpbmNlIHRoZSBWeFdvcmtzIEdOVSB0b29sY2hhaW4gaXMgdmVyeSBjbG9zZSBpbiB2ZXJzaW9uIHRvIHRoZQorb25lIGluIHJlZCBoYXQsIGl0IGdlbmVyYXRlcyBhIGdvb2QgY29uZmlnLmggZmlsZS4gIFdlIGNvbmZpZ3VyZWQgbGlieG1sMgord2l0aCB0aGUgZm9sbG93aW5nIHRvIGtlZXAgdGhlIHNpemUgZG93biwgKGJ1dCB3ZSBoYXZlIGRvbmUgYmFzaWMgdGVzdGluZword2l0aCBldmVyeXRoaW5nIGNvbXBpbGVkIGluKS4KKworLi9jb25maWd1cmUgLS13aXRoLW1pbmltdW0gLS13aXRoLXJlYWRlciAtLXdpdGgtd3JpdGVyIC0td2l0aC1yZWdleHBzCistLXdpdGgtdGhyZWFkcyAtLXdpdGgtdGhyZWFkLWFsbG9jCisKKzIuIFJlbmFtZSB0aGUgbGlieG1sMiBmb2xkZXIgdG8gInNyYyIuICBUaGlzIHN0ZXAgaXMgcmVxdWlyZWQgZm9yIG91cgorcmVwbGFjZW1lbnQgbWFrZWZpbGUgdG8gd29yay4KKworMy4gUnVuIHRoZSByZXBsYWNlbWVudCBtYWtlZmlsZS4gIEkgd3JvdGUgYSBuZXcgbWFrZWZpbGUgdGhhdCBzZXRzIGFsbCB0aGUKK3Byb3BlciB2eHdvcmtzIGRlZmluZXMgYW5kIHVzZXMgdGhlIGNvcnJlY3QgY29tcGlsZXJzLiAgVGhlIHR3byBkZWZpbmVzIG9uCit0aGUgbWFrZSBjb21tYW5kIGxpbmUgYXJlIHRvIHRlbGwgaXQgd2hpY2ggVnhXb3JrcyBUYXJnZXQgKFNIMy4yIGxpdHRsZQorZW5kaWFuKSwgYW5kIHRoZSBleGVjdXRhYmxlIHR5cGUuICBXZSBoYXZlIHRlc3RlZCB0aGlzIGNvZGUgb24gUEVOVElVTTJnbnUKK2FuZCBTSDMyZ251bGUuCisKK1RoaXMgbWFrZWZpbGUgY3JlYXRlcyBhIHNoYXJlZCBsaWJyYXJ5IHRoYXQgcnVucyBvbiBWeFdvcmtzOiAobGlieG1sMi5zbykKK21ha2UgLWYgTWFrZWZpbGUudnh3b3JrcyBjbGVhbiBhbGwgVlhDUFU9U0gzMmdudWxlIFZYVFlQRT1SVFAKKworVGhpcyBtYWtlZmlsZSBjcmVhdGVzIGEga2VybmVsIG1vZHVsZSB0aGF0IHJ1bnMgb24gVnhXb3JrczogKHhtbDIub3V0KQorbWFrZSAtZiBNYWtlZmlsZS52eHdvcmtzIGNsZWFuIGFsbCBWWENQVT1TSDMyZ251bGUgVlhUWVBFPURLTQorCitJbXBvcnRhbnQgTm90ZXMKKworMS4gVGhlcmUgYXJlIHNldmVyYWwgd2F5cyB0aGF0IHRoaXMgcHJvY2VzcyBjb3VsZCBiZSBpbXByb3ZlZCwgYnV0IGF0IHRoZQorZW5kIG9mIHRoZSBkYXksIHdlIG1ha2UgcHJvZHVjdHMsIG5vdCBwb3J0IGxpYnJhcmllcywgc28gd2UgZGlkIGEgbWVldHMKK21pbmltdW0gZm9yIG91ciBuZWVkcy4KKworMi4gVnhXb3JrcyBpcyB0aGUgZGV2aWwsIGdpdmUgbWUgZW1iZWRkZWQgbGludXggZXZlcnkgZGF5LgorCiszLiBObyBtYXR0ZXIgd2hhdCBJIHRyaWVkLCBJIGNvdWxkbid0IGdldCB0aGUgY29uZmlndXJlIHRvIHBpY2sgdXAgdGhlCitWeFdvcmtzIHRvb2xjaGFpbiwgYW5kIGluIG15IGludmVzdGlnYXRpb24sIGl0IGhhcyBzb21ldGhpbmcgdG8gZG8gd2l0aAorYXV0b21ha2UvYXV0b2NvbmYsIG5vdCBhbnkgaW5kaXZpZHVhbCBwYWNrYWdlLiAgVnhXb3JrcyBkb2Vzbid0IHBsYXkgYnkKK3RoZSBub3JtYWwgcnVsZXMgZm9yIGJ1aWxkaW5nIHRvb2xjaGFpbnMuCisKKzQuIFRoZSBQSUMgZmxhZyBpbiBWeFdvcmtzIChlc3BlY2lhbGx5IGZvciBTSCBwcm9jZXNzb3JzKSBpcyB2ZXJ5CitpbXBvcnRhbnQsIGFuZCB2ZXJ5IHRyb3VibGVzb21lLiAgT24gbGludXgsIHlvdSBjYW4gbGliZXJhbGx5IHVzZSB0aGUgUElDCitmbGFnIHdoZW4gY29tcGlsaW5nIGFuZCB0aGUgY29tcGlsZXIvbGlua2VyIHdpbGwgaWdub3JlIGl0IGFzIG5lZWRlZCwgb24KK1Z4V29ya3MgaWYgbXVzdCBhbHdheXMgYmUgb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMsIGFuZCBhbHdheXMgYmUgb2ZmIGZvcgorc3RhdGljIGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMuCisKKzUuIElmIGFueW9uZSB3YW50cyB0byB3b3JrIG9uIGEgYmV0dGVyIHdheSB0byBkbyB0aGUgYnVpbGQgb2YgbGlieG1sMiBmb3IKK1Z4V29ya3MsIEknbSBoYXBweSB0byBoZWxwIGFzIG11Y2ggYXMgSSBjYW4sIGJ1dCBJJ20gbm90IGxvb2tpbmcgdG8KK3N1cHBvcnQgaXQgbXlzZWxmLgorCitBdHRhY2hlZCBGaWxlcworCisxLiBUbyB1c2UgbXkgTWFrZWZpbGUgZm9yIHZ4d29ya3MsIHlvdSBzaG91bGQgZW50ZXIgdGhlIHZ4d29ya3MKK2Vudmlyb25tZW50ICgvb3B0L3dpbmRyaXZlci93cmVudi5saW51eCAtcCB2eHdvcmtzLTYuNCBmb3IgbWUpLgorMi4gUnVuOiBidWlsZC5zaCBsaWJ4bWwyLTIuNi4zMiBTSDMyZ251bGUgUlRQICh3aGVyZSB5b3UgaGF2ZQorbGlieG1sMi0yLjYuMzIudGFyLmd6IGFuZCB0aGUgTWFrZWZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBzY3JpcHQKK2ZpbGUpLgorCitUaGFua3MsCisKK0ppbSBXZXJ0IEpyLgorSldlcnRASUxTVGVjaG5vbG9neS5jb20KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvVnhXb3Jrcy9idWlsZC5zaCBiL2xpYnhtbDItMi43LjcvVnhXb3Jrcy9idWlsZC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTk1MDYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9WeFdvcmtzL2J1aWxkLnNoCkBAIC0wLDAgKzEsODUgQEAKK0xJQlhNTDI9JDENCitUQVJHRVRDUFU9JDINCitUQVJHRVRUWVBFPSQzDQorDQoraWYgWyAteiAiJDIiIF07IHRoZW4NCisJVEFSR0VUQ1BVPVNJTVBFTlRJVU1nbnUNCitmaQ0KKw0KK2lmIFsgLXogIiQzIiBdOyB0aGVuDQorCVRBUkdFVFRZUEU9UlRQDQorZmkNCisNCitlY2hvICJMSUJYTUwyIFZlcnNpb246ICAgICAke0xJQlhNTDJ9Ig0KK2VjaG8gIkxJQlhNTDIgVGFyZ2V0IENQVTogICR7VEFSR0VUQ1BVfSINCitlY2hvICJMSUJYTUwyIFRhcmdldCBUeXBlOiAke1RBUkdFVFRZUEV9Ig0KKw0KK3JtIC1mUiBzcmMNCit0YXIgeHZ6ZiAke0xJQlhNTDJ9LnRhci5neg0KK212ICR7TElCWE1MMn0gc3JjDQorY2Qgc3JjDQorDQorLi9jb25maWd1cmUgLS13aXRoLW1pbmltdW0gLS13aXRoLXJlYWRlciAtLXdpdGgtd3JpdGVyIC0td2l0aC1yZWdleHBzIC0td2l0aC10aHJlYWRzIC0td2l0aC10aHJlYWQtYWxsb2MNCisNCitmaW5kIC4gLW5hbWUgJyouaW4nIC1leGVjIHJtIC1mUiB7fSArDQorZmluZCAuIC1uYW1lICcqLmFtJyAtZXhlYyBybSAtZlIge30gKw0KK3JtIC1mUiAqLm00DQorcm0gLWZSICoucGMNCitybSAtZlIgKi5wbA0KK3JtIC1mUiAqLnB5DQorcm0gLWZSICouc3BlYw0KK3JtIC1mUiAuZGVwcw0KK3JtIC1mUiBBVVRIT1JTDQorcm0gLWZSIGJha2VmaWxlDQorcm0gLWZSIENoYW5nZUxvZw0KK3JtIC1mUiBjb25maWcuZ3Vlc3MNCitybSAtZlIgY29uZmlnLmxvZw0KK3JtIC1mUiBjb25maWcuc3RhdHVzDQorcm0gLWZSIGNvbmZpZy5zdHViDQorcm0gLWZSIGNvbmZpZy5zdWINCitybSAtZlIgY29uZmlndXJlDQorcm0gLWZSIENPUFlJTkcNCitybSAtZlIgQ29weXJpZ2h0DQorcm0gLWZSIGRlcGNvbXANCitybSAtZlIgZG9jDQorcm0gLWZSIGV4YW1wbGUNCitybSAtZlIgSU5TVEFMTA0KK3JtIC1mUiBpbnN0YWxsLXNoDQorcm0gLWZSIGxpYnhtbC4zDQorcm0gLWZSIGx0bWFpbi5zaA0KK3JtIC1mUiBNYWtlZmlsZQ0KK3JtIC1mUiBNYWtlZmlsZS50ZXN0cw0KK3JtIC1mUiBtYWNvcw0KK3JtIC1mUiBta2luc3RhbGxkaXJzDQorcm0gLWZSIG1pc3NpbmcNCitybSAtZlIgbmFub2Z0cC5jDQorcm0gLWZSIG5hbm9odHRwLmMNCitybSAtZlIgTkVXUw0KK3JtIC1mUiBweXRob24NCitybSAtZlIgUkVBRE1FDQorcm0gLWZSIFJFQURNRS50ZXN0cw0KK3JtIC1mUiByZWdyZXNzaW9ucy54bWwNCitybSAtZlIgcmVzdWx0DQorcm0gLWZSIHJ1bnN1aXRlLmMNCitybSAtZlIgcnVudGVzdC5jDQorcm0gLWZSIHRlc3QNCitybSAtZlIgdGVzdCouYw0KK3JtIC1mUiBUT0RPKg0KK3JtIC1mUiB0cmlvKg0KK3JtIC1mUiB2bXMNCitybSAtZlIgd2luMzINCitybSAtZlIgeG1sMioNCitybSAtZlIgeG1sbGludC5jDQorcm0gLWZSIHhzdGMNCisNCitjZCAuLg0KKw0KK21ha2UgY2xlYW4gYWxsIFZYQ1BVPSR7VEFSR0VUQ1BVfSBWWFRZUEU9JHtUQVJHRVRUWVBFfQ0KKw0KK2lmIFsgIiR7VEFSR0VUVFlQRX0iID0gIlJUUCIgXTsgdGhlbg0KKwljcCBsaWJ4bWwyLnNvIC4uLy4uL2xpYi8uDQorZWxzZQ0KKwljcCB4bWwyLm91dCAuLi8uLi9iaW4vLg0KK2ZpDQorDQorY3AgLVIgc3JjL2luY2x1ZGUvbGlieG1sIC4uLy4uL2luY2x1ZGUvLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvYWNjb25maWcuaCBiL2xpYnhtbDItMi43LjcvYWNjb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWRjZjFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9hY2NvbmZpZy5oCkBAIC0wLDAgKzEsMTYgQEAKKyN1bmRlZiBQQUNLQUdFCisjdW5kZWYgVkVSU0lPTgorI3VuZGVmIEhBVkVfTElCWgorI3VuZGVmIEhBVkVfTElCTQorI3VuZGVmIEhBVkVfSVNJTkYKKyN1bmRlZiBIQVZFX0lTTkFOCisjdW5kZWYgSEFWRV9MSUJISVNUT1JZCisjdW5kZWYgSEFWRV9MSUJSRUFETElORQorI3VuZGVmIEhBVkVfTElCUFRIUkVBRAorI3VuZGVmIEhBVkVfUFRIUkVBRF9ICisKKy8qIERlZmluZSBpZiBJUFY2IHN1cHBvcnQgaXMgdGhlcmUgKi8KKyN1bmRlZiBTVVBQT1JUX0lQNgorCisvKiBEZWZpbmUgaWYgZ2V0YWRkcmluZm8gaXMgdGhlcmUgKi8KKyN1bmRlZiBIQVZFX0dFVEFERFJJTkZPCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2FjaW5jbHVkZS5tNCBiL2xpYnhtbDItMi43LjcvYWNpbmNsdWRlLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmZjY3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2FjaW5jbHVkZS5tNApAQCAtMCwwICsxLDI4IEBACitkbmwgTGlrZSBBQ19UUllfRVZBTCBidXQgYWxzbyBlcnJvcnMgb3V0IGlmIHRoZSBjb21waWxlciBnZW5lcmF0ZXMKK2RubCBfYW55XyBvdXRwdXQuIFNvbWUgY29tcGlsZXJzIG1pZ2h0IGlzc3VlIHdhcm5pbmdzIHdoaWNoIHdlIHdhbnQKK2RubCB0byBjYXRjaC4KK0FDX0RFRlVOKFtBQ19UUllfRVZBTDJdLAorW3sgKGV2YWwgZWNobyBjb25maWd1cmU6X19vbGluZV9fOiBcIlskXSQxXCIpIDE+JkFDX0ZEX0NDOyBkbmwKKyhldmFsIFskXSQxKSAyPiZBQ19GRF9DQzsgX291dD1gZXZhbCBbJF0kMSAyPiYxYCAmJiB0ZXN0ICJ4JF9vdXQiID0geDsgfV0pCisKK2RubCBMaWtlIEFDX1RSWV9DT01QSUxFIGJ1dCBjYWxscyBBQ19UUllfRVZBTDIgaW5zdGVhZCBvZiBBQ19UUllfRVZBTAorQUNfREVGVU4oW0FDX1RSWV9DT01QSUxFMl0sCitbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgorWyNdbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSIKKyNpbmNsdWRlICJjb25mZGVmcy5oIgorWyQxXQoraW50IG1haW4odm9pZCkgeworWyQyXQorOyByZXR1cm4gMDsgfQorRU9GCitpZiBBQ19UUllfRVZBTDIoYWNfY29tcGlsZSk7IHRoZW4KKyAgaWZlbHNlKFskM10sICwgOiwgW3JtIC1yZiBjb25mdGVzdCoKKyAgJDNdKQorZWxzZQorICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mQUNfRkRfQ0MKKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiZBQ19GRF9DQworaWZlbHNlKFskNF0sICwgLCBbICBybSAtcmYgY29uZnRlc3QqCisgICQ0CitdKWRubAorZmkKK3JtIC1mIGNvbmZ0ZXN0Kl0pCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2FjbG9jYWwubTQgYi9saWJ4bWwyLTIuNy43L2FjbG9jYWwubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEyZDA4NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvYWNsb2NhbC5tNApAQCAtMCwwICsxLDk5NSBAQAorIyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTEuMSAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAorIyAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKKyAgW200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAorbTRfaWYobTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pLCBbMi42M10sLAorW200X3dhcm5pbmcoW3RoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGZvciBhdXRvY29uZiAyLjYzLgorWW91IGhhdmUgYW5vdGhlciB2ZXJzaW9uIG9mIGF1dG9jb25mLiAgSXQgbWF5IHdvcmssIGJ1dCBpcyBub3QgZ3VhcmFudGVlZCB0by4KK0lmIHlvdSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgYnVpbGQgc3lzdGVtIGVudGlyZWx5LgorVG8gZG8gc28sIHVzZSB0aGUgcHJvY2VkdXJlIGRvY3VtZW50ZWQgYnkgdGhlIHBhY2thZ2UsIHR5cGljYWxseSBgYXV0b3JlY29uZicuXSldKQorCisjIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBBTV9BVVRPTUFLRV9WRVJTSU9OKFZFUlNJT04pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXV0b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVuCisjIGdlbmVyYXRlZCBmcm9tIHRoZSBtNCBmaWxlcyBhY2NvbXBhbnlpbmcgQXV0b21ha2UgWC5ZLgorIyAoVGhpcyBwcml2YXRlIG1hY3JvIHNob3VsZCBub3QgYmUgY2FsbGVkIG91dHNpZGUgdGhpcyBmaWxlLikKK0FDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwKK1thbV9fYXBpX3ZlcnNpb249JzEuMTEnCitkbmwgU29tZSB1c2VycyBmaW5kIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIG1pc3Rha2UgaXQgZm9yIGEgd2F5IHRvCitkbmwgcmVxdWlyZSBzb21lIG1pbmltdW0gdmVyc2lvbi4gIFBvaW50IHRoZW0gdG8gdGhlIHJpZ2h0IG1hY3JvLgorbTRfaWYoWyQxXSwgWzEuMTEuMV0sIFtdLAorICAgICAgW0FDX0ZBVEFMKFtEbyBub3QgY2FsbCAkMCwgdXNlIEFNX0lOSVRfQVVUT01BS0UoWyQxXSkuXSldKWRubAorXSkKKworIyBfQU1fQVVUT0NPTkZfVkVSU0lPTihWRVJTSU9OKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBhY2xvY2FsIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGZpbmQgdGhlIEF1dG9jb25mIHZlcnNpb24uCisjIFRoaXMgaXMgYSBwcml2YXRlIG1hY3JvIHRvby4gIFVzaW5nIG00X2RlZmluZSBzaW1wbGlmaWVzCisjIHRoZSBsb2dpYyBpbiBhY2xvY2FsLCB3aGljaCBjYW4gc2ltcGx5IGlnbm9yZSB0aGlzIGRlZmluaXRpb24uCittNF9kZWZpbmUoW19BTV9BVVRPQ09ORl9WRVJTSU9OXSwgW10pCisKKyMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENhbGwgQU1fQVVUT01BS0VfVkVSU0lPTiBhbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBzbyB0aGV5IGNhbiBiZSB0cmFjZWQuCisjIFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQgYnkgQU1fSU5JVF9BVVRPTUFLRS4KK0FDX0RFRlVOKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OXSwKK1tBTV9BVVRPTUFLRV9WRVJTSU9OKFsxLjExLjFdKWRubAorbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKKyAgW200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAorX0FNX0FVVE9DT05GX1ZFUlNJT04obTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pKV0pCisKKyMgQU1fQVVYX0RJUl9FWFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgRm9yIHByb2plY3RzIHVzaW5nIEFDX0NPTkZJR19BVVhfRElSKFtmb29dKSwgQXV0b2NvbmYgc2V0cworIyAkYWNfYXV4X2RpciB0byBgJHNyY2Rpci9mb28nLiAgSW4gb3RoZXIgcHJvamVjdHMsIGl0IGlzIHNldCB0bworIyBgJHNyY2RpcicsIGAkc3JjZGlyLy4uJywgb3IgYCRzcmNkaXIvLi4vLi4nLgorIworIyBPZiBjb3Vyc2UsIEF1dG9tYWtlIG11c3QgaG9ub3IgdGhpcyB2YXJpYWJsZSB3aGVuZXZlciBpdCBjYWxscyBhCisjIHRvb2wgZnJvbSB0aGUgYXV4aWxpYXJ5IGRpcmVjdG9yeS4gIFRoZSBwcm9ibGVtIGlzIHRoYXQgJHNyY2RpciAoYW5kCisjIHRoZXJlZm9yZSAkYWNfYXV4X2RpciBhcyB3ZWxsKSBjYW4gYmUgZWl0aGVyIGFic29sdXRlIG9yIHJlbGF0aXZlLAorIyBkZXBlbmRpbmcgb24gaG93IGNvbmZpZ3VyZSBpcyBydW4uICBUaGlzIGlzIHByZXR0eSBhbm5veWluZywgc2luY2UKKyMgaXQgbWFrZXMgJGFjX2F1eF9kaXIgcXVpdGUgdW51c2FibGUgaW4gc3ViZGlyZWN0b3JpZXM6IGluIHRoZSB0b3AKKyMgc291cmNlIGRpcmVjdG9yeSwgYW55IGZvcm0gd2lsbCB3b3JrIGZpbmUsIGJ1dCBpbiBzdWJkaXJlY3RvcmllcyBhCisjIHJlbGF0aXZlIHBhdGggbmVlZHMgdG8gYmUgYWRqdXN0ZWQgZmlyc3QuCisjCisjICRhY19hdXhfZGlyL21pc3NpbmcKKyMgICAgZmFpbHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBpZiAkYWNfYXV4X2RpciBpcyByZWxhdGl2ZQorIyAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nCisjICAgIGZhaWxzIGlmICRhY19hdXhfZGlyIGlzIGFic29sdXRlLAorIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGluIGEgVlBBVEggYnVpbGQgd2l0aAorIyAgICAgICAgICBhIHJlbGF0aXZlICRhY19hdXhfZGlyCisjCisjIFRoZSByZWFzb24gb2YgdGhlIGxhdHRlciBmYWlsdXJlIGlzIHRoYXQgJHRvcF9zcmNkaXIgYW5kICRhY19hdXhfZGlyCisjIGFyZSBib3RoIHByZWZpeGVkIGJ5ICRzcmNkaXIuICBJbiBhbiBpbi1zb3VyY2UgYnVpbGQgdGhpcyBpcyB1c3VhbGx5CisjIGhhcm1sZXNzIGJlY2F1c2UgJHNyY2RpciBpcyBgLicsIGJ1dCB0aGluZ3Mgd2lsbCBicm9rZSB3aGVuIHlvdQorIyBzdGFydCBhIFZQQVRIIGJ1aWxkIG9yIHVzZSBhbiBhYnNvbHV0ZSAkc3JjZGlyLgorIworIyBTbyB3ZSBjb3VsZCB1c2Ugc29tZXRoaW5nIHNpbWlsYXIgdG8gJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlzc2luZywKKyMgaWZmIHdlIHN0cmlwIHRoZSBsZWFkaW5nICRzcmNkaXIgZnJvbSAkYWNfYXV4X2Rpci4gIFRoYXQgd291bGQgYmU6CisjICAgYW1fYXV4X2Rpcj0nXCQodG9wX3NyY2RpcikvJ2BleHByICIkYWNfYXV4X2RpciIgOiAiJHNyY2Rpci8vKlwoLipcKSJgCisjIGFuZCB0aGVuIHdlIHdvdWxkIGRlZmluZSAkTUlTU0lORyBhcworIyAgIE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgorIyBUaGlzIHdpbGwgd29yayBhcyBsb25nIGFzIE1JU1NJTkcgaXMgbm90IGNhbGxlZCBmcm9tIGNvbmZpZ3VyZSwgYmVjYXVzZQorIyB1bmZvcnR1bmF0ZWx5ICQodG9wX3NyY2RpcikgaGFzIG5vIG1lYW5pbmcgaW4gY29uZmlndXJlLgorIyBIb3dldmVyIHRoZXJlIGFyZSBvdGhlciB2YXJpYWJsZXMsIGxpa2UgQ0MsIHdoaWNoIGFyZSBvZnRlbiB1c2VkIGluCisjIGNvbmZpZ3VyZSwgYW5kIGNvdWxkIHRoZXJlZm9yZSBub3QgdXNlIHRoaXMgImZpeGVkIiAkYWNfYXV4X2Rpci4KKyMKKyMgQW5vdGhlciBzb2x1dGlvbiwgdXNlZCBoZXJlLCBpcyB0byBhbHdheXMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuCisjIGFic29sdXRlIFBBVEguICBUaGUgZHJhd2JhY2sgaXMgdGhhdCB1c2luZyBhYnNvbHV0ZSBwYXRocyBwcmV2ZW50IGEKKyMgY29uZmlndXJlZCB0cmVlIHRvIGJlIG1vdmVkIHdpdGhvdXQgcmVjb25maWd1cmF0aW9uLgorCitBQ19ERUZVTihbQU1fQVVYX0RJUl9FWFBBTkRdLAorW2RubCBSZWx5IG9uIGF1dG9jb25mIHRvIHNldCB1cCBDRFBBVEggcHJvcGVybHkuCitBQ19QUkVSRVEoWzIuNTBdKWRubAorIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorYW1fYXV4X2Rpcj1gY2QgJGFjX2F1eF9kaXIgJiYgcHdkYAorXSkKKworIyBBTV9DT05ESVRJT05BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOAorIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCA5CisKKyMgQU1fQ09ORElUSU9OQUwoTkFNRSwgU0hFTEwtQ09ORElUSU9OKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlZmluZSBhIGNvbmRpdGlvbmFsLgorQUNfREVGVU4oW0FNX0NPTkRJVElPTkFMXSwKK1tBQ19QUkVSRVEoMi41MilkbmwKKyBpZmVsc2UoWyQxXSwgW1RSVUVdLCAgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldLAorCVskMV0sIFtGQUxTRV0sIFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSlkbmwKK0FDX1NVQlNUKFskMV9UUlVFXSlkbmwKK0FDX1NVQlNUKFskMV9GQUxTRV0pZG5sCitfQU1fU1VCU1RfTk9UTUFLRShbJDFfVFJVRV0pZG5sCitfQU1fU1VCU1RfTk9UTUFLRShbJDFfRkFMU0VdKWRubAorbTRfZGVmaW5lKFtfQU1fQ09ORF9WQUxVRV8kMV0sIFskMl0pZG5sCitpZiAkMjsgdGhlbgorICAkMV9UUlVFPQorICAkMV9GQUxTRT0nIycKK2Vsc2UKKyAgJDFfVFJVRT0nIycKKyAgJDFfRkFMU0U9CitmaQorQUNfQ09ORklHX0NPTU1BTkRTX1BSRSgKK1tpZiB0ZXN0IC16ICIkeyQxX1RSVUV9IiAmJiB0ZXN0IC16ICIkeyQxX0ZBTFNFfSI7IHRoZW4KKyAgQUNfTVNHX0VSUk9SKFtbY29uZGl0aW9uYWwgIiQxIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5Ll1dKQorZmldKV0pCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDEwCisKKyMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCisjIHdyaXR0ZW4gaW4gY2xlYXIsIGluIHdoaWNoIGNhc2UgYXV0b21ha2UsIHdoZW4gcmVhZGluZyBhY2xvY2FsLm00LAorIyB3aWxsIHRoaW5rIGl0IHNlZXMgYSAqdXNlKiwgYW5kIHRoZXJlZm9yZSB3aWxsIHRyaWdnZXIgYWxsIGl0J3MKKyMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZworIyBDQyBldGMuIGluIHRoZSBNYWtlZmlsZSwgd2lsbCBhc2sgZm9yIGFuIEFDX1BST0dfQ0MgdXNlLi4uCisKKworIyBfQU1fREVQRU5ERU5DSUVTKE5BTUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgorIyBOQU1FIGlzICJDQyIsICJDWFgiLCAiR0NKIiwgb3IgIk9CSkMiLgorIyBXZSB0cnkgYSBmZXcgdGVjaG5pcXVlcyBhbmQgdXNlIHRoYXQgdG8gc2V0IGEgc2luZ2xlIGNhY2hlIHZhcmlhYmxlLgorIworIyBXZSBkb24ndCBBQ19SRVFVSVJFIHRoZSBjb3JyZXNwb25kaW5nIEFDX1BST0dfQ0Mgc2luY2UgdGhlIGxhdHRlciB3YXMKKyMgbW9kaWZpZWQgdG8gaW52b2tlIF9BTV9ERVBFTkRFTkNJRVMoQ0MpOyB3ZSB3b3VsZCBoYXZlIGEgY2lyY3VsYXIKKyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAorIyBqdXN0IHJlbHkgb24gQUNfUFJPR19DQy4KK0FDX0RFRlVOKFtfQU1fREVQRU5ERU5DSUVTXSwKK1tBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKK0FDX1JFUVVJUkUoW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSlkbmwKK0FDX1JFUVVJUkUoW0FNX01BS0VfSU5DTFVERV0pZG5sCitBQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAorCitpZmVsc2UoWyQxXSwgQ0MsICAgW2RlcGNjPSIkQ0MiICAgYW1fY29tcGlsZXJfbGlzdD1dLAorICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKKyAgICAgICBbJDFdLCBPQkpDLCBbZGVwY2M9IiRPQkpDIiBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAorICAgICAgIFskMV0sIFVQQywgIFtkZXBjYz0iJFVQQyIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKKyAgICAgICBbJDFdLCBHQ0osICBbZGVwY2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAorICAgICAgICAgICAgICAgICAgIFtkZXBjYz0iJCQxIiAgIGFtX2NvbXBpbGVyX2xpc3Q9XSkKKworQUNfQ0FDSEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwKKyAgICAgICAgICAgICAgIFthbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0sCitbaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgorICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCisgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCisgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKyAgIyBpbiBEJy4KKyAgbWtkaXIgY29uZnRlc3QuZGlyCisgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCisgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCisgIGNkIGNvbmZ0ZXN0LmRpcgorICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAorICAjIGRpcmVjdG9yeS4KKyAgbWtkaXIgc3ViCisKKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgorICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gWydzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9cMS9wJ10gPCAuL2RlcGNvbXBgCisgIGZpCisgIGFtX191bml2ZXJzYWw9ZmFsc2UKKyAgbTRfY2FzZShbJDFdLCBbQ0NdLAorICAgIFtjYXNlICIgJGRlcGNjICIgaW4gIygKKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKyAgICAgZXNhY10sCisgICAgW0NYWF0sCisgICAgW2Nhc2UgIiAkZGVwY2MgIiBpbiAjKAorICAgICAqXCAtYXJjaFwgKlwgLWFyY2hcICopIGFtX191bml2ZXJzYWw9dHJ1ZSA7OworICAgICBlc2FjXSkKKworICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgorICAgICMKKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCisgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCisgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCisgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCisgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAorICAgIGRvbmUKKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCisKKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQorICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAorICAgICMgdmVyc2lvbnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQgaW4gc3ViZGlycworICAgIGFtX19vYmo9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99CisgICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCisgICAgY2FzZSAkZGVwbW9kZSBpbgorICAgIGdjYykKKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCisgICAgICB0ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250aW51ZQorICAgICAgOzsKKyAgICBub3NpZGVlZmZlY3QpCisgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgorCWNvbnRpbnVlCisgICAgICBlbHNlCisJYnJlYWsKKyAgICAgIGZpCisgICAgICA7OworICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCisgICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0IGhhcworICAgICAgIyBub3QgcnVuIHlldC4gIFRoZXNlIGRlcG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwgYW5kCisgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgorICAgICAgYW1fX29iaj1jb25mdGVzdC4ke09CSkVYVC1vfQorICAgICAgYW1fX21pbnVzX29iaj0KKyAgICAgIDs7CisgICAgbm9uZSkgYnJlYWsgOzsKKyAgICBlc2FjCisgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCisgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0kYW1fX29iaiBcCisgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCisgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKyAgICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCisgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCisgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCisgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCisgICAgICAgIGJyZWFrCisgICAgICBmaQorICAgIGZpCisgIGRvbmUKKworICBjZCAuLgorICBybSAtcmYgY29uZnRlc3QuZGlyCitlbHNlCisgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKK2ZpCitdKQorQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCitBTV9DT05ESVRJT05BTChbYW1fX2Zhc3RkZXAkMV0sIFsKKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzNdKQorXSkKKworCisjIEFNX1NFVF9ERVBESVIKKyMgLS0tLS0tLS0tLS0tLQorIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KKyMgVGhpcyBtYWNybyBpcyBBQ19SRVFVSVJFZCBpbiBfQU1fREVQRU5ERU5DSUVTCitBQ19ERUZVTihbQU1fU0VUX0RFUERJUl0sCitbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKK0FDX1NVQlNUKFtERVBESVJdLCBbIiR7YW1fX2xlYWRpbmdfZG90fWRlcHMiXSlkbmwKK10pCisKKworIyBBTV9ERVBfVFJBQ0sKKyMgLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbQU1fREVQX1RSQUNLXSwKK1tBQ19BUkdfRU5BQkxFKGRlcGVuZGVuY3ktdHJhY2tpbmcsCitbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCisgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzXSkKK2lmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgorICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgorICBBTURFUEJBQ0tTTEFTSD0nXCcKK2ZpCitBTV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKK0FDX1NVQlNUKFtBTURFUEJBQ0tTTEFTSF0pZG5sCitfQU1fU1VCU1RfTk9UTUFLRShbQU1ERVBCQUNLU0xBU0hdKWRubAorXSkKKworIyBHZW5lcmF0ZSBjb2RlIHRvIHNldCB1cCBkZXBlbmRlbmN5IHRyYWNraW5nLiAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwOAorIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjc2VyaWFsIDUKKworIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKK1t7CisgICMgQXV0b2NvbmYgMi42MiBxdW90ZXMgLS1maWxlIGFyZ3VtZW50cyBmb3IgZXZhbCwgYnV0IG5vdCB3aGVuIGZpbGVzCisgICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhlIGV2YWwKKyAgIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCisgIGNhc2UgJENPTkZJR19GSUxFUyBpbgorICAqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVTIiA7OworICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKKyAgZXNhYworICBzaGlmdAorICBmb3IgbWYKKyAgZG8KKyAgICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgorICAgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCisgICAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KKyAgICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0CisgICAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisgICAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKKyAgICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgorICAgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisgICAgIyBsaW1pdCBvZiAyMDQ4LCBidXQgYWxsIHNlZCdzIHdlIGtub3cgaGF2ZSB1bmRlcnN0YW5kIGF0IGxlYXN0IDQwMDAuCisgICAgaWYgc2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgZGlycGFydD1gQVNfRElSTkFNRSgiJG1mIilgCisgICAgZWxzZQorICAgICAgY29udGludWUKKyAgICBmaQorICAgICMgRXh0cmFjdCB0aGUgZGVmaW5pdGlvbiBvZiBERVBESVIsIGFtX19pbmNsdWRlLCBhbmQgYW1fX3F1b3RlCisgICAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgorICAgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisgICAgdGVzdCAteiAiJERFUERJUiIgJiYgY29udGludWUKKyAgICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKKyAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKKyAgICBhbV9fcXVvdGU9YHNlZCAtbiAncy9eYW1fX3F1b3RlID0gLy9wJyA8ICIkbWYiYAorICAgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0CisgICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorICAgICMgRmluZCBhbGwgZGVwZW5kZW5jeSBvdXRwdXQgZmlsZXMsIHRoZXkgYXJlIGluY2x1ZGVkIGZpbGVzIHdpdGgKKyAgICAjICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKKyAgICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorICAgICMgZXhwYW5zaW9uLgorICAgIGZvciBmaWxlIGluIGBzZWQgLW4gIgorICAgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCisJIHNlZCAtZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdzL1wkVS8nIiRVIicvZydgOyBkbworICAgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCisgICAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKyAgICAgIGZkaXI9YEFTX0RJUk5BTUUoWyIkZmlsZSJdKWAKKyAgICAgIEFTX01LRElSX1AoWyRkaXJwYXJ0LyRmZGlyXSkKKyAgICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisgICAgICBlY2hvICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKKyAgICBkb25lCisgIGRvbmUKK30KK10pIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKworCisjIEFNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRoaXMgbWFjcm8gc2hvdWxkIG9ubHkgYmUgaW52b2tlZCBvbmNlIC0tIHVzZSB2aWEgQUNfUkVRVUlSRS4KKyMKKyMgVGhpcyBjb2RlIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFja2luZworIyBpcyBlbmFibGVkLiAgRklYTUUuICBUaGlzIGNyZWF0ZXMgZWFjaCBgLlAnIGZpbGUgdGhhdCB3ZSB3aWxsCisjIG5lZWQgaW4gb3JkZXIgdG8gYm9vdHN0cmFwIHRoZSBkZXBlbmRlbmN5IGhhbmRsaW5nIGNvZGUuCitBQ19ERUZVTihbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorW0FDX0NPTkZJR19DT01NQU5EUyhbZGVwZmlsZXNdLAorICAgICBbdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKKyAgICAgW0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4X2RpciJdKQorXSkKKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgOAorCisjIEFNX0NPTkZJR19IRUFERVIgaXMgb2Jzb2xldGUuICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBBQ19DT05GSUdfSEVBREVSUy4KK0FVX0RFRlVOKFtBTV9DT05GSUdfSEVBREVSXSwgW0FDX0NPTkZJR19IRUFERVJTKCRAKV0pCisKKyMgRG8gYWxsIHRoZSB3b3JrIGZvciBBdXRvbWFrZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCisjIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgMTYKKworIyBUaGlzIG1hY3JvIGFjdHVhbGx5IGRvZXMgdG9vIG11Y2guICBTb21lIGNoZWNrcyBhcmUgb25seSBuZWVkZWQgaWYKKyMgeW91ciBwYWNrYWdlIGRvZXMgY2VydGFpbiB0aGluZ3MuICBCdXQgdGhpcyBpc24ndCByZWFsbHkgYSBiaWcgZGVhbC4KKworIyBBTV9JTklUX0FVVE9NQUtFKFBBQ0tBR0UsIFZFUlNJT04sIFtOTy1ERUZJTkVdKQorIyBBTV9JTklUX0FVVE9NQUtFKFtPUFRJT05TXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGhlIGNhbGwgd2l0aCBQQUNLQUdFIGFuZCBWRVJTSU9OIGFyZ3VtZW50cyBpcyB0aGUgb2xkIHN0eWxlCisjIGNhbGwgKHByZSBhdXRvY29uZi0yLjUwKSwgd2hpY2ggaXMgYmVpbmcgcGhhc2VkIG91dC4gIFBBQ0tBR0UKKyMgYW5kIFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNzZWQgdG8gQUNfSU5JVCBhbmQgcmVtb3ZlZCBmcm9tCisjIHRoZSBjYWxsIHRvIEFNX0lOSVRfQVVUT01BS0UuCisjIFdlIHN1cHBvcnQgYm90aCBjYWxsIHN0eWxlcyBmb3IgdGhlIHRyYW5zaXRpb24uICBBZnRlcgorIyB0aGUgbmV4dCBBdXRvbWFrZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFrZSB0aGUgQUNfSU5JVAorIyBhcmd1bWVudHMgbWFuZGF0b3J5LCBhbmQgdGhlbiB3ZSBjYW4gZGVwZW5kIG9uIGEgbmV3IEF1dG9jb25mCisjIHJlbGVhc2UgYW5kIGRyb3AgdGhlIG9sZCBjYWxsIHN1cHBvcnQuCitBQ19ERUZVTihbQU1fSU5JVF9BVVRPTUFLRV0sCitbQUNfUFJFUkVRKFsyLjYyXSlkbmwKK2RubCBBdXRvY29uZiB3YW50cyB0byBkaXNhbGxvdyBBTV8gbmFtZXMuICBXZSBleHBsaWNpdGx5IGFsbG93CitkbmwgdGhlIG9uZXMgd2UgY2FyZSBhYm91dC4KK200X3BhdHRlcm5fYWxsb3coW15BTV9bQS1aXStGTEFHUyRdKWRubAorQUNfUkVRVUlSRShbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0pZG5sCitBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAoraWYgdGVzdCAiYGNkICRzcmNkaXIgJiYgcHdkYCIgIT0gImBwd2RgIjsgdGhlbgorICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAorICAjIGlzIG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCisgIEFDX1NVQlNUKFthbV9faXNyY10sIFsnIC1JJChzcmNkaXIpJ10pX0FNX1NVQlNUX05PVE1BS0UoW2FtX19pc3JjXSlkbmwKKyAgIyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCisgIGlmIHRlc3QgLWYgJHNyY2Rpci9jb25maWcuc3RhdHVzOyB0aGVuCisgICAgQUNfTVNHX0VSUk9SKFtzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuICJtYWtlIGRpc3RjbGVhbiIgdGhlcmUgZmlyc3RdKQorICBmaQorZmkKKworIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCitpZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgorICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCisgIGVsc2UKKyAgICBDWUdQQVRIX1c9ZWNobworICBmaQorZmkKK0FDX1NVQlNUKFtDWUdQQVRIX1ddKQorCisjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCitkbmwgRGlzdGluZ3Vpc2ggYmV0d2VlbiBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZSBjYWxscy4KK200X2lmdmFsKFskMl0sCitbbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1kZWZpbmVdKV0pZG5sCisgQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJDFdKWRubAorIEFDX1NVQlNUKFtWRVJTSU9OXSwgWyQyXSldLAorW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAorZG5sIERpYWdub3NlIG9sZC1zdHlsZSBBQ19JTklUIHdpdGggbmV3LXN0eWxlIEFNX0FVVE9NQUtFX0lOSVQuCittNF9pZihtNF9pZmRlZihbQUNfUEFDS0FHRV9OQU1FXSwgMSltNF9pZmRlZihbQUNfUEFDS0FHRV9WRVJTSU9OXSwgMSksIDExLCwKKyAgW200X2ZhdGFsKFtBQ19JTklUIHNob3VsZCBiZSBjYWxsZWQgd2l0aCBwYWNrYWdlIGFuZCB2ZXJzaW9uIGFyZ3VtZW50c10pXSlkbmwKKyBBQ19TVUJTVChbUEFDS0FHRV0sIFsnQUNfUEFDS0FHRV9UQVJOQU1FJ10pZG5sCisgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJ0FDX1BBQ0tBR0VfVkVSU0lPTiddKV0pZG5sCisKK19BTV9JRl9PUFRJT04oW25vLWRlZmluZV0sLAorW0FDX0RFRklORV9VTlFVT1RFRChQQUNLQUdFLCAiJFBBQ0tBR0UiLCBbTmFtZSBvZiBwYWNrYWdlXSkKKyBBQ19ERUZJTkVfVU5RVU9URUQoVkVSU0lPTiwgIiRWRVJTSU9OIiwgW1ZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2VdKV0pZG5sCisKKyMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVkcy4KK0FDX1JFUVVJUkUoW0FNX1NBTklUWV9DSEVDS10pZG5sCitBQ19SRVFVSVJFKFtBQ19BUkdfUFJPR1JBTV0pZG5sCitBTV9NSVNTSU5HX1BST0coQUNMT0NBTCwgYWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0pCitBTV9NSVNTSU5HX1BST0coQVVUT0NPTkYsIGF1dG9jb25mKQorQU1fTUlTU0lOR19QUk9HKEFVVE9NQUtFLCBhdXRvbWFrZS0ke2FtX19hcGlfdmVyc2lvbn0pCitBTV9NSVNTSU5HX1BST0coQVVUT0hFQURFUiwgYXV0b2hlYWRlcikKK0FNX01JU1NJTkdfUFJPRyhNQUtFSU5GTywgbWFrZWluZm8pCitBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RBTExfU0hdKWRubAorQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NUUklQXSlkbmwKK0FDX1JFUVVJUkUoW0FNX1BST0dfTUtESVJfUF0pZG5sCisjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgorIyBzb21lIHBsYXRmb3Jtcy4KK0FDX1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKK0FDX1JFUVVJUkUoW0FDX1BST0dfTUFLRV9TRVRdKWRubAorQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKK19BTV9JRl9PUFRJT04oW3Rhci11c3Rhcl0sIFtfQU1fUFJPR19UQVIoW3VzdGFyXSldLAorCSAgICAgIFtfQU1fSUZfT1BUSU9OKFt0YXItcGF4XSwgW19BTV9QUk9HX1RBUihbcGF4XSldLAorCQkJICAgICBbX0FNX1BST0dfVEFSKFt2N10pXSldKQorX0FNX0lGX09QVElPTihbbm8tZGVwZW5kZW5jaWVzXSwsCitbQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ0NdLAorCQkgIFtfQU1fREVQRU5ERU5DSUVTKENDKV0sCisJCSAgW2RlZmluZShbQUNfUFJPR19DQ10sCisJCQkgIGRlZm4oW0FDX1BST0dfQ0NdKVtfQU1fREVQRU5ERU5DSUVTKENDKV0pXSlkbmwKK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCisJCSAgW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0sCisJCSAgW2RlZmluZShbQUNfUFJPR19DWFhdLAorCQkJICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0pXSlkbmwKK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX09CSkNdLAorCQkgIFtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSwKKwkJICBbZGVmaW5lKFtBQ19QUk9HX09CSkNdLAorCQkJICBkZWZuKFtBQ19QUk9HX09CSkNdKVtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSldKWRubAorXSkKK19BTV9JRl9PUFRJT04oW3NpbGVudC1ydWxlc10sIFtBQ19SRVFVSVJFKFtBTV9TSUxFTlRfUlVMRVNdKV0pZG5sCitkbmwgVGhlIGBwYXJhbGxlbC10ZXN0cycgZHJpdmVyIG1heSBuZWVkIHRvIGtub3cgYWJvdXQgRVhFRVhULCBzbyBhZGQgdGhlCitkbmwgYGFtX19FWEVFWFQnIGNvbmRpdGlvbmFsIGlmIF9BTV9DT01QSUxFUl9FWEVFWFQgd2FzIHNlZW4uICBUaGlzIG1hY3JvCitkbmwgaXMgaG9va2VkIG9udG8gX0FDX0NPTVBJTEVSX0VYRUVYVCBlYXJseSwgc2VlIGJlbG93LgorQUNfQ09ORklHX0NPTU1BTkRTX1BSRShkbmwKK1ttNF9wcm92aWRlX2lmKFtfQU1fQ09NUElMRVJfRVhFRVhUXSwKKyAgW0FNX0NPTkRJVElPTkFMKFthbV9fRVhFRVhUXSwgW3Rlc3QgLW4gIiRFWEVFWFQiXSldKV0pZG5sCitdKQorCitkbmwgSG9vayBpbnRvIGBfQUNfQ09NUElMRVJfRVhFRVhUJyBlYXJseSB0byBsZWFybiBpdHMgZXhwYW5zaW9uLiAgRG8gbm90CitkbmwgYWRkIHRoZSBjb25kaXRpb25hbCByaWdodCBoZXJlLCBhcyBfQUNfQ09NUElMRVJfRVhFRVhUIG1heSBiZSBmdXJ0aGVyCitkbmwgbWFuZ2xlZCBieSBBdXRvY29uZiBhbmQgcnVuIGluIGEgc2hlbGwgY29uZGl0aW9uYWwgc3RhdGVtZW50LgorbTRfZGVmaW5lKFtfQUNfQ09NUElMRVJfRVhFRVhUXSwKK200X2RlZm4oW19BQ19DT01QSUxFUl9FWEVFWFRdKVttNF9wcm92aWRlKFtfQU1fQ09NUElMRVJfRVhFRVhUXSldKQorCisKKyMgV2hlbiBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2UgbXVzdCB1cGRhdGUgdGhlIHN0YW1wLWggZmlsZS4KKyMgVGhpcyBmaWxlIHJlc2lkZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBjb25maWcgaGVhZGVyCisjIHRoYXQgaXMgZ2VuZXJhdGVkLiAgVGhlIHN0YW1wIGZpbGVzIGFyZSBudW1iZXJlZCB0byBoYXZlIGRpZmZlcmVudCBuYW1lcy4KKworIyBBdXRvY29uZiBjYWxscyBfQUNfQU1fQ09ORklHX0hFQURFUl9IT09LICh3aGVuIGRlZmluZWQpIGluIHRoZQorIyBsb29wIHdoZXJlIGNvbmZpZy5zdGF0dXMgY3JlYXRlcyB0aGUgaGVhZGVycywgc28gd2UgY2FuIGdlbmVyYXRlCisjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KK0FDX0RFRlVOKFtfQUNfQU1fQ09ORklHX0hFQURFUl9IT09LXSwKK1sjIENvbXB1dGUgJDEncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCitfYW1fYXJnPSQxCitfYW1fc3RhbXBfY291bnQ9MQorZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCisgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKyAgICAkX2FtX2FyZyB8ICRfYW1fYXJnOiogKQorICAgICAgYnJlYWsgOzsKKyAgICAqICkKKyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKKyAgZXNhYworZG9uZQorZWNobyAidGltZXN0YW1wIGZvciAkX2FtX2FyZyIgPmBBU19ESVJOQU1FKFsiJF9hbV9hcmciXSlgL3N0YW1wLWhbXSRfYW1fc3RhbXBfY291bnRdKQorCisjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBBTV9QUk9HX0lOU1RBTExfU0gKKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlZmluZSAkaW5zdGFsbF9zaC4KK0FDX0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU0hdLAorW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5EXSlkbmwKK2lmIHRlc3QgeCIke2luc3RhbGxfc2h9IiAhPSB4c2V0OyB0aGVuCisgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKyAgKlwgKiB8ICpcCSopCisgICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICckYW1fYXV4X2Rpci9pbnN0YWxsLXNoJyIgOzsKKyAgKikKKyAgICBpbnN0YWxsX3NoPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvaW5zdGFsbC1zaCIKKyAgZXNhYworZmkKK0FDX1NVQlNUKGluc3RhbGxfc2gpXSkKKworIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDIKKworIyBDaGVjayB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGZpbGUtc3lzdGVtIHN1cHBvcnRzIGZpbGVuYW1lcworIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3IgaW5zdGFuY2UgTVMtRE9TIGRvZXNuJ3QuCitBQ19ERUZVTihbQU1fU0VUX0xFQURJTkdfRE9UXSwKK1tybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAorbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAoraWYgdGVzdCAtZCAudHN0OyB0aGVuCisgIGFtX19sZWFkaW5nX2RvdD0uCitlbHNlCisgIGFtX19sZWFkaW5nX2RvdD1fCitmaQorcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorQUNfU1VCU1QoW2FtX19sZWFkaW5nX2RvdF0pXSkKKworIyBDaGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMgaW5jbHVkZXMuCSAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDQKKworIyBBTV9NQUtFX0lOQ0xVREUoKQorIyAtLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayB0byBzZWUgaG93IG1ha2UgdHJlYXRzIGluY2x1ZGVzLgorQUNfREVGVU4oW0FNX01BS0VfSU5DTFVERV0sCitbYW1fbWFrZT0ke01BS0UtbWFrZX0KK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKK2FtX19kb2l0OgorCUBlY2hvIHRoaXMgaXMgdGhlIGFtX19kb2l0IHRhcmdldAorLlBIT05ZOiBhbV9fZG9pdAorRU5ECisjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2VdKQorYW1fX2luY2x1ZGU9IiMiCithbV9fcXVvdGU9CitfYW1fcmVzdWx0PW5vbmUKKyMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGluY2x1ZGUuCitlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCisjIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJvbSBgbWFrZScuCitjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAorKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCisgIGFtX19pbmNsdWRlPWluY2x1ZGUKKyAgYW1fX3F1b3RlPQorICBfYW1fcmVzdWx0PUdOVQorICA7OworZXNhYworIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCitpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCisgICBlY2hvICcuaW5jbHVkZSAiY29uZmluYyInID4gY29uZm1mCisgICBjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAorICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCisgICAgIGFtX19pbmNsdWRlPS5pbmNsdWRlCisgICAgIGFtX19xdW90ZT0iXCIiCisgICAgIF9hbV9yZXN1bHQ9QlNECisgICAgIDs7CisgICBlc2FjCitmaQorQUNfU1VCU1QoW2FtX19pbmNsdWRlXSkKK0FDX1NVQlNUKFthbV9fcXVvdGVdKQorQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQorcm0gLWYgY29uZmluYyBjb25mbWYKK10pCisKKyMgRmFrZSB0aGUgZXhpc3RlbmNlIG9mIHByb2dyYW1zIHRoYXQgR05VIG1haW50YWluZXJzIHVzZS4gIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgNgorCisjIEFNX01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtBTV9NSVNTSU5HX1BST0ddLAorW0FDX1JFUVVJUkUoW0FNX01JU1NJTkdfSEFTX1JVTl0pCiskMT0keyQxLSIke2FtX21pc3NpbmdfcnVufSQyIn0KK0FDX1NVQlNUKCQxKV0pCisKKworIyBBTV9NSVNTSU5HX0hBU19SVU4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlZmluZSBNSVNTSU5HIGlmIG5vdCBkZWZpbmVkIHNvIGZhciBhbmQgdGVzdCBpZiBpdCBzdXBwb3J0cyAtLXJ1bi4KKyMgSWYgaXQgZG9lcywgc2V0IGFtX21pc3NpbmdfcnVuIHRvIHVzZSBpdCwgb3RoZXJ3aXNlLCB0byBub3RoaW5nLgorQUNfREVGVU4oW0FNX01JU1NJTkdfSEFTX1JVTl0sCitbQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAorQUNfUkVRVUlSRV9BVVhfRklMRShbbWlzc2luZ10pZG5sCitpZiB0ZXN0IHgiJHtNSVNTSU5HK3NldH0iICE9IHhzZXQ7IHRoZW4KKyAgY2FzZSAkYW1fYXV4X2RpciBpbgorICAqXCAqIHwgKlwJKikKKyAgICBNSVNTSU5HPSJcJHtTSEVMTH0gXCIkYW1fYXV4X2Rpci9taXNzaW5nXCIiIDs7CisgICopCisgICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciIDs7CisgIGVzYWMKK2ZpCisjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCisgIGFtX21pc3NpbmdfcnVuPSIkTUlTU0lORyAtLXJ1biAiCitlbHNlCisgIGFtX21pc3NpbmdfcnVuPQorICBBQ19NU0dfV0FSTihbYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmddKQorZmkKK10pCisKKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIEFNX1BST0dfTUtESVJfUAorIyAtLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgZm9yIGBta2RpciAtcCcuCitBQ19ERUZVTihbQU1fUFJPR19NS0RJUl9QXSwKK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorQUNfUkVRVUlSRShbQUNfUFJPR19NS0RJUl9QXSlkbmwKK2RubCBBdXRvbWFrZSAxLjggdG8gMS45LjYgdXNlZCB0byBkZWZpbmUgbWtkaXJfcC4gIFdlIG5vdyB1c2UgTUtESVJfUCwKK2RubCB3aGlsZSBrZWVwaW5nIGEgZGVmaW5pdGlvbiBvZiBta2Rpcl9wIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorZG5sIEBNS0RJUl9QQCBpcyBtYWdpYzogQUNfT1VUUFVUIGFkanVzdHMgaXRzIHZhbHVlIGZvciBlYWNoIE1ha2VmaWxlLgorZG5sIEhvd2V2ZXIgd2UgY2Fubm90IGRlZmluZSBta2Rpcl9wIGFzICQoTUtESVJfUCkgZm9yIHRoZSBzYWtlIG9mCitkbmwgTWFrZWZpbGUuaW5zIHRoYXQgZG8gbm90IGRlZmluZSBNS0RJUl9QLCBzbyB3ZSBkbyBvdXIgb3duCitkbmwgYWRqdXN0bWVudCB1c2luZyB0b3BfYnVpbGRkaXIgKHdoaWNoIGlzIGRlZmluZWQgbW9yZSBvZnRlbiB0aGFuCitkbmwgTUtESVJfUCkuCitBQ19TVUJTVChbbWtkaXJfcF0sIFsiJE1LRElSX1AiXSlkbmwKK2Nhc2UgJG1rZGlyX3AgaW4KKyAgW1tcXC8kXV0qIHwgPzpbW1xcL11dKikgOzsKKyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRkaXIpLyRta2Rpcl9wIiA7OworZXNhYworXSkKKworIyBIZWxwZXIgZnVuY3Rpb25zIGZvciBvcHRpb24gaGFuZGxpbmcuICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgNAorCisjIF9BTV9NQU5HTEVfT1BUSU9OKE5BTUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbX0FNX01BTkdMRV9PUFRJT05dLAorW1tfQU1fT1BUSU9OX11tNF9icGF0c3Vic3QoJDEsIFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCisKKyMgX0FNX1NFVF9PUFRJT04oTkFNRSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNldCBvcHRpb24gTkFNRS4gIFByZXNlbnRseSB0aGF0IG9ubHkgbWVhbnMgZGVmaW5pbmcgYSBmbGFnIGZvciB0aGlzIG9wdGlvbi4KK0FDX0RFRlVOKFtfQU1fU0VUX09QVElPTl0sCitbbTRfZGVmaW5lKF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCAxKV0pCisKKyMgX0FNX1NFVF9PUFRJT05TKE9QVElPTlMpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgT1BUSU9OUyBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIEF1dG9tYWtlIG9wdGlvbnMuCitBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05TXSwKK1ttNF9mb3JlYWNoX3coW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCisKKyMgX0FNX0lGX09QVElPTihPUFRJT04sIElGLVNFVCwgW0lGLU5PVC1TRVRdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgorQUNfREVGVU4oW19BTV9JRl9PUFRJT05dLAorW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0pCisKKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1LCAyMDA2CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDUKKworQUNfREVGVU4oW0FNX0NfUFJPVE9UWVBFU10sCitbQUNfUkVRVUlSRShbQUNfQ19QUk9UT1RZUEVTXSkKK2lmIHRlc3QgIiRhY19jdl9wcm9nX2NjX3N0ZGMiICE9IG5vOyB0aGVuCisgIFU9IEFOU0kyS05SPQorZWxzZQorICBVPV8gQU5TSTJLTlI9Li9hbnNpMmtucgorZmkKKyMgRW5zdXJlIHNvbWUgY2hlY2tzIG5lZWRlZCBieSBhbnNpMmtuciBpdHNlbGYuCitBQ19SRVFVSVJFKFtBQ19IRUFERVJfU1REQ10pCitBQ19DSEVDS19IRUFERVJTKFtzdHJpbmcuaF0pCitBQ19TVUJTVChbVV0pZG5sCitBQ19TVUJTVChbQU5TSTJLTlJdKWRubAorX0FNX1NVQlNUX05PVE1BS0UoW0FOU0kyS05SXSlkbmwKK10pCisKK0FVX0RFRlVOKFtmcF9DX1BST1RPVFlQRVNdLCBbQU1fQ19QUk9UT1RZUEVTXSkKKworIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNSwgMjAwOAorIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCA1CisKKyMgQU1fU0FOSVRZX0NIRUNLCisjIC0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW0FNX1NBTklUWV9DSEVDS10sCitbQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmVdKQorIyBKdXN0IGluIGNhc2UKK3NsZWVwIDEKK2VjaG8gdGltZXN0YW1wID4gY29uZnRlc3QuZmlsZQorIyBSZWplY3QgdW5zYWZlIGNoYXJhY3RlcnMgaW4gJHNyY2RpciBvciB0aGUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkKKyMgbmFtZS4gIEFjY2VwdCBzcGFjZSBhbmQgdGFiIG9ubHkgaW4gdGhlIGxhdHRlci4KK2FtX2xmPScKKycKK2Nhc2UgYHB3ZGAgaW4KKyAgKltbXFxcIlwjXCRcJlwnXGAkYW1fbGZdXSopCisgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZV0pOzsKK2VzYWMKK2Nhc2UgJHNyY2RpciBpbgorICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9sZlwgXAldXSopCisgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUgc3JjZGlyIHZhbHVlOiBgJHNyY2RpciddKTs7Citlc2FjCisKKyMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQorIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcworIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKKyMgZGlyZWN0b3J5KS4KK2lmICgKKyAgIHNldCBYIGBscyAtTHQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKyAgIGlmIHRlc3QgIiRbKl0iID0gIlgiOyB0aGVuCisgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorICAgICAgc2V0IFggYGxzIC10ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZWAKKyAgIGZpCisgICBybSAtZiBjb25mdGVzdC5maWxlCisgICBpZiB0ZXN0ICIkWypdIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisgICAgICAmJiB0ZXN0ICIkWypdIiAhPSAiWCBjb25mdGVzdC5maWxlICRzcmNkaXIvY29uZmlndXJlIjsgdGhlbgorCisgICAgICAjIElmIG5laXRoZXIgbWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhpcyBjYW4gaGFwcGVuCisgICAgICAjIGlmLCBmb3IgaW5zdGFuY2UsIENPTkZJR19TSEVMTCBpcyBiYXNoIGFuZCBpdCBpbmhlcml0cyBhCisgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5CisgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBub3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCisgICAgICBBQ19NU0dfRVJST1IoW2xzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnRdKQorICAgZmkKKworICAgdGVzdCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCisgICApCit0aGVuCisgICAjIE9rLgorICAgOgorZWxzZQorICAgQUNfTVNHX0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrXSkKK2ZpCitBQ19NU0dfUkVTVUxUKHllcyldKQorCisjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBBTV9QUk9HX0lOU1RBTExfU1RSSVAKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE9uZSBpc3N1ZSB3aXRoIHZlbmRvciBgaW5zdGFsbCcgKGV2ZW4gR05VKSBpcyB0aGF0IHlvdSBjYW4ndAorIyBzcGVjaWZ5IHRoZSBwcm9ncmFtIHVzZWQgdG8gc3RyaXAgYmluYXJpZXMuICBUaGlzIGlzIGVzcGVjaWFsbHkKKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5nIGVudmlyb25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAKKyMgaXMgdW5saWtlbHkgdG8gaGFuZGxlIHRoZSBob3N0J3MgYmluYXJpZXMuCisjIEZvcnR1bmF0ZWx5IGluc3RhbGwtc2ggd2lsbCBob25vciBhIFNUUklQUFJPRyB2YXJpYWJsZSwgc28gd2UKKyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNoIGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQorIyBTVFJJUFBST0cgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIFNUUklQIHZhcmlhYmxlIChzZXQgYnkgdGhlIHVzZXIpLgorQUNfREVGVU4oW0FNX1BST0dfSU5TVEFMTF9TVFJJUF0sCitbQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKKyMgSW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgorIyBydW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcuICBIb3dldmVyIGBzdHJpcCcgbWlnaHQgbm90IGJlIHRoZSByaWdodAorIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQorIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KK2RubCBEb24ndCB0ZXN0IGZvciAkY3Jvc3NfY29tcGlsaW5nID0geWVzLCBiZWNhdXNlIGl0IG1pZ2h0IGJlIGBtYXliZScuCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgorICBBQ19DSEVDS19UT09MKFtTVFJJUF0sIFtzdHJpcF0sIDopCitmaQorSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKK0FDX1NVQlNUKFtJTlNUQUxMX1NUUklQX1BST0dSQU1dKV0pCisKKyMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCAyCisKKyMgX0FNX1NVQlNUX05PVE1BS0UoVkFSSUFCTEUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBQcmV2ZW50IEF1dG9tYWtlIGZyb20gb3V0cHV0dGluZyBWQVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCisjIFRoaXMgbWFjcm8gaXMgdHJhY2VkIGJ5IEF1dG9tYWtlLgorQUNfREVGVU4oW19BTV9TVUJTVF9OT1RNQUtFXSkKKworIyBBTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHVibGljIHNpc3RlciBvZiBfQU1fU1VCU1RfTk9UTUFLRS4KK0FDX0RFRlVOKFtBTV9TVUJTVF9OT1RNQUtFXSwgW19BTV9TVUJTVF9OT1RNQUtFKCRAKV0pCisKKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDIKKworIyBfQU1fUFJPR19UQVIoRk9STUFUKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgorIyBGT1JNQVQgc2hvdWxkIGJlIG9uZSBvZiBgdjcnLCBgdXN0YXInLCBvciBgcGF4Jy4KKyMKKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKKyMgd3JpdGluZyB0byBzdGRvdXQgYSBGT1JNQVQtdGFyYmFsbCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkKKyMgJHRhcmRpci4KKyMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIKKyMKKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAorIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgorIyAgICAgJChhbV9fdW50YXIpIDwgcmVzdWx0LnRhcgorQUNfREVGVU4oW19BTV9QUk9HX1RBUl0sCitbIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorQU1fTUlTU0lOR19QUk9HKFtBTVRBUl0sIFt0YXJdKQorbTRfaWYoWyQxXSwgW3Y3XSwKKyAgICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCisgICAgIFttNF9jYXNlKFskMV0sIFt1c3Rhcl0sLCBbcGF4XSwsCisgICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93biB0YXIgZm9ybWF0XSldKQorQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQorIyBMb29wIG92ZXIgYWxsIGtub3duIG1ldGhvZHMgdG8gY3JlYXRlIGEgdGFyIGFyY2hpdmUgdW50aWwgb25lIHdvcmtzLgorX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQxXSwgW3VzdGFyXSwgW3BsYWludGFyXSkgcGF4IGNwaW8gbm9uZScKK19hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9CisjIERvIG5vdCBmb2xkIHRoZSBhYm92ZSB0d28gbGluZSBpbnRvIG9uZSwgYmVjYXVzZSBUcnU2NCBzaCBhbmQKKyMgU29sYXJpcyBzaCB3aWxsIG5vdCBncm9rIHNwYWNlcyBpbiB0aGUgcmhzIG9mIGAtJy4KK2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCitkbworICBjYXNlICRfYW1fdG9vbCBpbgorICBnbnV0YXIpCisgICAgZm9yIF9hbV90YXIgaW4gdGFyIGdudXRhciBndGFyOworICAgIGRvCisgICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhaworICAgIGRvbmUKKyAgICBhbV9fdGFyPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9pZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiQkdGFyZGlyIicKKyAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKKyAgICBhbV9fdW50YXI9IiRfYW1fdGFyIC14ZiAtIgorICAgIDs7CisgIHBsYWludGFyKQorICAgICMgTXVzdCBza2lwIEdOVSB0YXI6IGlmIGl0IGRvZXMgbm90IHN1cHBvcnQgLS1mb3JtYXQ9IGl0IGRvZXNuJ3QgY3JlYXRlCisgICAgIyB1c3RhciB0YXJiYWxsIGVpdGhlci4KKyAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCisgICAgYW1fX3Rhcj0ndGFyIGNoZiAtICIkJHRhcmRpciInCisgICAgYW1fX3Rhcl89J3RhciBjaGYgLSAiJHRhcmRpciInCisgICAgYW1fX3VudGFyPSd0YXIgeGYgLScKKyAgICA7OworICBwYXgpCisgICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCisgICAgYW1fX3Rhcl89J3BheCAtTCAteCAkMSAtdyAiJHRhcmRpciInCisgICAgYW1fX3VudGFyPSdwYXggLXInCisgICAgOzsKKyAgY3BpbykKKyAgICBhbV9fdGFyPSdmaW5kICIkJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKKyAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKKyAgICBhbV9fdW50YXI9J2NwaW8gLWkgLUggJDEgLWQnCisgICAgOzsKKyAgbm9uZSkKKyAgICBhbV9fdGFyPWZhbHNlCisgICAgYW1fX3Rhcl89ZmFsc2UKKyAgICBhbV9fdW50YXI9ZmFsc2UKKyAgICA7OworICBlc2FjCisKKyAgIyBJZiB0aGUgdmFsdWUgd2FzIGNhY2hlZCwgc3RvcCBub3cuICBXZSBqdXN0IHdhbnRlZCB0byBoYXZlIGFtX190YXIKKyAgIyBhbmQgYW1fX3VudGFyIHNldC4KKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCisKKyAgIyB0YXIvdW50YXIgYSBkdW1teSBkaXJlY3RvcnksIGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtzCisgIHJtIC1yZiBjb25mdGVzdC5kaXIKKyAgbWtkaXIgY29uZnRlc3QuZGlyCisgIGVjaG8gR3JlcE1lID4gY29uZnRlc3QuZGlyL2ZpbGUKKyAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LnRhcjsgdGhlbgorICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCisgICAgZ3JlcCBHcmVwTWUgY29uZnRlc3QuZGlyL2ZpbGUgPi9kZXYvbnVsbCAyPiYxICYmIGJyZWFrCisgIGZpCitkb25lCitybSAtcmYgY29uZnRlc3QuZGlyCisKK0FDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKK0FDX01TR19SRVNVTFQoWyRhbV9jdl9wcm9nX3Rhcl8kMV0pXSkKK0FDX1NVQlNUKFthbV9fdGFyXSkKK0FDX1NVQlNUKFthbV9fdW50YXJdKQorXSkgIyBfQU1fUFJPR19UQVIKKworbTRfaW5jbHVkZShbbTQvbGlidG9vbC5tNF0pCittNF9pbmNsdWRlKFttNC9sdG9wdGlvbnMubTRdKQorbTRfaW5jbHVkZShbbTQvbHRzdWdhci5tNF0pCittNF9pbmNsdWRlKFttNC9sdHZlcnNpb24ubTRdKQorbTRfaW5jbHVkZShbbTQvbHR+b2Jzb2xldGUubTRdKQorbTRfaW5jbHVkZShbYWNpbmNsdWRlLm00XSkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvYmFrZWZpbGUvQmFrZWZpbGVzLmJrZ2VuIGIvbGlieG1sMi0yLjcuNy9iYWtlZmlsZS9CYWtlZmlsZXMuYmtnZW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM0MmRlMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvYmFrZWZpbGUvQmFrZWZpbGVzLmJrZ2VuCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4NCis8IS0tICRJZCQgLS0+DQorDQorPGJha2VmaWxlLWdlbj4NCisgICAgDQorICAgIDxkaXNhYmxlLWZvcm1hdHM+Z251LGRtYXJzLGNieF91bml4LGNidWlsZGVyeDwvZGlzYWJsZS1mb3JtYXRzPg0KKyAgICA8aW5wdXQ+bGlieG1sMi5ia2w8L2lucHV0Pg0KKw0KKyAgICA8IS0tIExpc3Qgb2Ygb3V0cHV0IGZvcm1hdHMgdG8gZ2VuZXJhdGU6IC0tPg0KKyAgICA8YWRkLWZvcm1hdHM+DQorICAgICAgICBib3JsYW5kLGRtYXJzLG1pbmd3LG1zdmMsbXN2YzZwcmosd2F0Y29tLGNidWlsZGVyeCxjYnhfdW5peCxnbnUNCisgICAgPC9hZGQtZm9ybWF0cz4NCisNCisNCis8L2Jha2VmaWxlLWdlbj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2Jha2VmaWxlL1JlYWRtZS50eHQgYi9saWJ4bWwyLTIuNy43L2Jha2VmaWxlL1JlYWRtZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThhOWNhOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvYmFrZWZpbGUvUmVhZG1lLnR4dApAQCAtMCwwICsxLDkyIEBACisNCisgTElCWE1MMiBidWlsZCBzeXN0ZW0gZm9yIFdpbjMyIFJFQURNRQ0KKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorIEluIHRoaXMgZm9sZGVyIGFyZSBzdG9yZWQgYWxsIHRoZSBmaWxlcyByZXF1aXJlZCB0byBjb21waWxlIExJQlhNTDIgd2l0aCB3aW4zMiBjb21waWxlcnMuDQorIEJha2VmaWxlIChodHRwOi8vYmFrZWZpbGUuc291cmNlZm9yZ2UubmV0KSBpcyB1c2VkIGFzIG1ha2VmaWxlIGdlbmVyYXRvci4NCisNCisgU3VwcG9ydGVkIG1ha2VmaWxlczoNCisgLSBtYWtlZmlsZS52YyAgICAgZm9yIE1pY3Jvc29mdCBOTUFLRQ0KKyAtIG1ha2VmaWxlLmJjYyAgICBmb3IgQm9ybGFuZCBNQUtFDQorIC0gbWFrZWZpbGUud2F0ICAgIGZvciBPcGVuV2F0Y29tIE1BS0UNCisgLSBtYWtlZmlsZS5nY2MgICAgZm9yIE1pbkdXIE1JTkdXMzItTUFLRQ0KKyAtIGFsbCBEU1AgJiBEU1cgICBmb3IgTWljcm9zb2Z0IFZpc3VhbEMrKyA2LjAgKGNhbiBiZSB1c2VkIGFsc28gd2l0aCBWUy5ORVQgQUZBSUspDQorDQorIFRoaXMgcmVhZG1lIGlzIG9yZ2FuaXplZCBhczoNCisgICAxLjAgSE9XVE8gY29tcGlsZSBMSUJYTUwyIHVzaW5nIG1ha2VmaWxlcyAgICAgPC0tIGZvciB1c2VycyB3aG8gd2FudCB0byBidWlsZCB0aGUgbGlicmFyeSB1c2luZyAqY29tbWFuZC1saW5lKg0KKyAgIDEuMSBIT1dUTyBjb21waWxlIExJQlhNTDIgdXNpbmcgYW4gSURFICAgICAgICA8LS0gZm9yIHVzZXJzIHdobyB3YW50IHRvIGJ1aWxkIHRoZSBsaWJyYXJ5IHVzaW5nIGFuICpJREUqDQorICAgMS4yIEhPV1RPIHJlZ2VuZXJhdGUgbWFrZWZpbGVzIGZvciBMSUJYTUwyICAgIDwtLSBmb3IgbGlieG1sMiBtYW50YWluZXJzL2RldmVsb3BlcnMvYWR2YW5jZWQgdXNlcnMNCisNCisgSWYgeW91IGp1c3Qgd2FudCB0byBjb21waWxlIHRoZSBsaWJyYXJ5IChhbmQgdGhlIHRlc3QgcHJvZ3JhbXMpIHlvdSBzaG91bGQgZGVmaW5pdGVseSBhdm9pZCB0aGUNCisgc2VjdGlvbiAxLjEgYW5kIGZvY3VzIG9uIHRoZSAxLjAuDQorIA0KKw0KKw0KKw0KKw0KKw0KKyAxLjAgSE9XVE8gY29tcGlsZSBMSUJYTUwyIHVzaW5nIG1ha2VmaWxlcw0KKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyANCisgQ2hvb3NlIHlvdXIgcHJlZmVycmVkIGNvbXBpbGVyIGFtb25nIHRob3NlIGFjdHVhbGx5IHN1cHBvcnRlZCAoc2VlIGFib3ZlKSBhbmQgdGhlbiBydW4NCisgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXljb21waWxlcm1ha2UgLWZtYWtlZmlsZS5tYWtlZmlsZWV4dCBbb3B0aW9uc10NCisNCisgZm9yIGEgZnVsbCBsaXN0IG9mIHRoZSBhdmFpbGFibGUgb3B0aW9ucyB5b3Ugc2hvdWxkIG9wZW4gd2l0aCBhIG5vdGVwYWQgKG9yIHNvbWV0aGluZyBsaWtlIHRoYXQpDQorIHRoZSBtYWtlZmlsZSB5b3Ugd2FudCB0byB1c2U7IGF0IHRoZSBiZWdpbm5pbmcgeW91IHNob3VsZCBzZWUgYSBzZWN0aW9uIHdoaWNoIHN0YXJ0cyBhczoNCisNCisgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyAgICAgIyBUaGVzZSBhcmUgY29uZmlndXJhYmxlIG9wdGlvbnM6DQorICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCisgaGVyZSB5b3UgY2FuIGZpbmQgYWxsIHRoZSBvcHRpb25zIGFjdHVhbGx5IHVzZWQgYnkgdGhhdCBtYWtlZmlsZS4gDQorIFRoZXkgY2FuIGJlIGN1c3RvbWl6ZWQgd2hlbiBydW5uaW5nIHRoZSBtYWtlZmlsZSB3cml0aW5nIHNvbWV0aGluZyBsaWtlOg0KKw0KKyBubWFrZSAtZm1ha2VmaWxlLnZjIEJVSUxEPXJlbGVhc2UNCisgbWluZ3czMi1tYWtlIC1mbWFrZWZpbGUuZ2NjIEJVSUxEPWRlYnVnIElDT05WX0RJUj1jOlxteWljb252DQorDQorIG9yIHRoZXkgY2FuIGJlIHBlcm1hbmVudGx5IGNoYW5nZWQgbW9kaWZ5aW5nIHRoZSBtYWtlZmlsZS4NCisgVGhhdCdzIGFsbDogZm9yIGFueSBwcm9ibGVtL2NvbXBpbGUtZXJyb3Ivc3VnZ2VzdGlvbiwgd3JpdGUgdG8gDQorIGZybUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQgd2l0aCB0aGUgd29yZCAibGlieG1sMiIgaW4gdGhlIHN1YmplY3QuDQorDQorDQorDQorDQorDQorIDEuMSBIT1dUTyBjb21waWxlIExJQlhNTDIgdXNpbmcgYW4gSURFDQorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIA0KKyBBY3R1YWxseSBvbmx5IHRoZSBNaWNyb3NvZnQgVmlzdWFsQysrIDYuMCBwcm9qZWN0IGZpbGVzIGFyZSBnZW5lcmF0ZWQuDQorIEluIGZ1dHVyZSBvdGhlciBJbnRlZ3JhdGVkIERldmVsb3BtZW50IEVudmlyb25tZW50cyAoSURFcykgd2lsbCBiZSBzdXBwb3J0ZWQgYXMgd2VsbC4NCisgDQorIFdpdGggTVNWQysrIDYuMCwgeW91IHNob3VsZCBvcGVuIHRoZSBEU1cgZmlsZSBhbmQgdGhlbiBzZXQgYXMgdGhlIGFjdGl2ZSBwcm9qZWN0IHRoZQ0KKyAibGlieG1sMiIgcHJvamVjdCwgaWYgeW91IHdhbnQgdG8gYnVpbGQgdGhlIGxpYnJhcnkgb3Igb25lIG9mIHRoZSB0ZXN0IHByb2plY3RzIGlmIHlvdQ0KKyB3YW50IHRvIHJ1biB0aGVtLg0KKyBVc2luZyB0aGUgY29tbWFuZCAiQnVpbGQtPlNldCBBY3RpdmUgQ29uZmlndXJhdGlvbiIgeW91IGNhbiBjaG9vc2Ugb25lIG9mIHRoZSBwcmVkZWZpbmVkDQorIGNvbmZpZ3VyYXRpb24uDQorDQorDQorDQorDQorDQorIDEuMiBIT1dUTyByZWdlbmVyYXRlIG1ha2VmaWxlcyBmb3IgTElCWE1MMg0KKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgDQorIEJlIHN1cmUgdG8gaGF2ZSBpbnN0YWxsZWQgQmFrZWZpbGUgKGh0dHA6Ly9iYWtlZmlsZS5zb3VyY2Vmb3JnZS5uZXQpLg0KKyBKdXN0IHJ1biB0aGUgImJha2VmaWxlX2dlbiIgY29tbWFuZCBpbnNpZGUgdGhlIGZvbGRlciBjb250YWluaW5nIHRoZSAibGlieG1sMi5ia2wiIGZpbGUuDQorIE5PVEU6IGlmIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgdGhlIG1ha2VmaWxlcywgeW91IGNhbiB1c2UgdGhlICJiYWtlZmlsZV9nZW4gLWMiIGNvbW1hbmQuDQorIA0KKyBUaGUgdGVtcGxhdGUgZmlsZXMgdXNlZCB0byBnZW5lcmF0ZSBhbGwgbWFrZWZpbGVzIGFyZSBvbmx5IHR3bzoNCisgLSBsaWJ4bWwyLmJrbCAgICAgICh0aGUgbWFpbiBvbmUpDQorIC0gQmFrZWZpbGVzLmJrZ2VuDQorIEFsbCB0aGUgb3RoZXIgZmlsZXMgY2FuIGJlIGRpbmFtaWNhbGx5IHJlZ2VuZXJhdGVkLg0KKw0KKw0KKw0KKw0KKw0KKyBJZiB5b3UgaGF2ZSBwcm9ibGVtcyB3aXRoIHRoZSBjb21waWxhdGlvbiBvZiBMSUJYTUwyIHVuZGVyIHdpbmRvd3MgKHVzaW5nIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGNvbXBpbGVyKQ0KKyBwbGVhc2Ugd3JpdGUgdG86DQorDQorICAgICBGcmFuY2VzY28gTW9udG9yc2kgPGZybUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+DQorDQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9iYWtlZmlsZS9saWJ4bWwyLmJrbCBiL2xpYnhtbDItMi43LjcvYmFrZWZpbGUvbGlieG1sMi5ia2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMxNDQ2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvYmFrZWZpbGUvbGlieG1sMi5ia2wKQEAgLTAsMCArMSw3NDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4NCisNCis8IS0tIEF1dGhvcjogRnJhbmNlc2NvIE1vbnRvcnNpIDxmcm1AdXNlcnMuc291cmNlZm9yZ2UubmV0PiAgICAgICAgIC0tPg0KKzwhLS0gRGF0ZTogMzAvOC8yMDA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorPCEtLSBMYXN0IHJldmlzaW9uOiAyNi8xLzIwMDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisNCisNCis8IS0tICAgICAgICAgICAgICAgICAgICBMSUJYTUwyIEJBS0VGSUxFICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKzwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorPCEtLSAgICBUaGUgYmFrZWZpbGUgdXNlZCB0byBidWlsZCB0aGUgbGlicmFyeSBhbmQgdGhlIHRlc3QgICAgICAgICAtLT4NCis8IS0tICAgIHByb2dyYW1zLiBUaGUgbWFrZWZpbGVzIG91dHB1dCBpcyBwdXQ6ICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKzwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorPCEtLSAgICAtIGluIHRoZSAuLlxMSUIgZm9sZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCis8IS0tICAgIC0gaW4gdGhlIC4uXEJJTiBmb2xkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKzwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorDQorPG1ha2VmaWxlPg0KKw0KKyAgICA8dXNpbmcgbW9kdWxlPSJkYXRhZmlsZXMiLz4NCisgICAgPHJlcXVpcmVzIHZlcnNpb249IjAuMS41Ii8+DQorICAgIA0KKw0KKyAgICA8IS0tIFRoaXMgaXMgYSBiYWtlZmlsZSwgdGhhdCBpcywgYSBnZW5lcmljIHRlbXBsYXRlIHVzZWQgdG8gICAgLS0+DQorICAgIDwhLS0gZ2VuZXJhdGUgbWFrZWZpbGVzIEFMTCBzdXBwb3J0ZWQgY29tcGlsZXJzLiAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSBUbyB1c2UgdGhpcyBwcm9qZWN0IGZpbGUgeW91IG5lZWQgQmFrZWZpbGUgaW5zdGFsbGVkLiAgICAgIC0tPg0KKyAgICA8IS0tIFdpdGggdGhlIGNvbW1hbmQgImJha2VmaWxlX2dlbiIgeW91IGNhbiByZWdlbiBhbGwgdGhlICAgICAgLS0+DQorICAgIDwhLS0gbWFrZWZpbGVzIGFuZCBwcm9qZWN0IGZpbGVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSBTZWUgaHR0cDovL2Jha2VmaWxlLnNvdXJjZWZvcmdlLm5ldCBmb3IgbW9yZSBpbmZvLiAgICAgICAgIC0tPg0KKw0KKw0KKwk8IS0tDQorCSBUaGlzIGZpbGUgaXMgZGl2aWRlZCBpbjoNCisJCS0gZ2VuZXJpYyBvcHRpb25zDQorCQktIGdlbmVyaWMgdmFyaWFibGVzDQorCQktIGxpYnhtbDIgb3B0aW9ucw0KKwkJLSBsaWJ4bWwyIHZhcmlhYmxlcw0KKwkJLSBhYm91dCBjb25maWcuaCBjcmVhdGlvbg0KKwkJLSB0ZW1wbGF0ZXMNCisJCS0gbGlieG1sMiBsaWJyYXJ5IHRhcmdldA0KKwkJLSBsaWJ4bWwyIHRlc3QgcHJvZ3JhbSB0YXJnZXRzDQorCS0tPg0KKw0KKw0KKw0KKyAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgR0VORVJJQyBPUFRJT05TICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKw0KKyAgICAgDQorICAgIDwhLS0gICAgVGhpcyBpcyBhIHN0YW5kYXJkIG9wdGlvbiB0aGF0IGRldGVybWluZXMgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICB3aGV0aGVyIHRoZSB1c2VyIHdhbnRzIHRvIGJ1aWxkIHRoaXMgbGlicmFyeSBhcyAgICAgICAgIC0tPg0KKyAgICA8IS0tICAgIGEgZGxsIG9yIGFzIGEgc3RhdGljIGxpYnJhcnkuICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDxvcHRpb24gbmFtZT0iU0hBUkVEIj4NCisgICAgICAgIDx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8dmFsdWVzLWRlc2NyaXB0aW9uPixETEw8L3ZhbHVlcy1kZXNjcmlwdGlvbj4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjA8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+SWYgc2V0IHRvIHplcm8gYSBTVEFUSUMgbGlieG1sIGxpYnJhcnkgd2lsbCBiZSBidWlsdDwvZGVzY3JpcHRpb24+DQorICAgIDwvb3B0aW9uPg0KKw0KKyAgICA8IS0tIENvbmZpZ3VyYXRpb24gZm9yIGJ1aWxkaW5nIHRoZSBiYWtlZmlsZSB3aXRoICAgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gdW5pY29kZSBzdHJpbmdzIG9yIG5vdCAodW5pY29kZSBvciBhbnNpKS4gICAgICAgICAgICAgICAgICAtLT4NCisgICAgPG9wdGlvbiBuYW1lPSJVTklDT0RFIj4NCisgICAgICAgIDx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8dmFsdWVzLWRlc2NyaXB0aW9uPixVbmljb2RlPC92YWx1ZXMtZGVzY3JpcHRpb24+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4wPC9kZWZhdWx0LXZhbHVlPiAgICAgICAgDQorICAgICAgICA8ZGVzY3JpcHRpb24+Q29tcGlsZSBVbmljb2RlIGJ1aWxkPzwvZGVzY3JpcHRpb24+DQorICAgIDwvb3B0aW9uPg0KKw0KKw0KKyAgICA8IS0tIFRoZXJlIGFyZSBzZXZlcmFsIG9wdGlvbnMgdGhhdCBkZWFsIHdpdGggYnVpbGQgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gdHlwZXMuIEZpcnN0LCB0aGVyZSdzIHRoaXMgb25lLCBCVUlMRC4gICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tIEJVSUxEIGRldGVybWluZXMgd2hldGhlciBvciBub3Qgd2Ugd2FudCB0byBidWlsZCAgICAgICAgICAgLS0+DQorICAgIDwhLS0gaW4gcmVsZWFzZSBvciBkZWJ1ZyBtb2RlLiAgTm90ZSB0aGF0IGluIHByYWN0aWNlICAgICAgICAgICAtLT4NCisgICAgPCEtLSB0aGlzIG1lYW5zIG1vZGlmeWluZyB0aGUgb3B0aW1pemUgdGFnLCB3aGljaCBieSAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tIGRlZmF1bHQgaXMgc2V0IHRvIG9mZi4gIEluIHRoaXMgY2FzZSBkZWJ1ZyBtZWFucyAgICAgICAgICAgLS0+DQorICAgIDwhLS0gb2ZmIChubyBvcHRpbWl6YXRpb25zKSwgYW5kIHJlbGVhc2UgbWVhbnMgc3BlZWQgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAoZmFzdCB3aXRoIGlubGluaW5nKS4gIFRoZXJlIGlzIGFsc28gYSBzaXplIG9wdGlvbiAgICAgICAgIC0tPg0KKyAgICA8IS0tIHRoYXQgaXMgbm90IGFkZHJlc3NlZCBpbiB0aGlzIGV4YW1wbGUgYmFrZWZpbGUuICAgICAgICAgICAgLS0+DQorICAgIDxvcHRpb24gbmFtZT0iQlVJTEQiPg0KKyAgICAgICAgPHZhbHVlcz5kZWJ1ZyxyZWxlYXNlPC92YWx1ZXM+DQorICAgICAgICA8dmFsdWVzLWRlc2NyaXB0aW9uPkRlYnVnLFJlbGVhc2U8L3ZhbHVlcy1kZXNjcmlwdGlvbj4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPnJlbGVhc2U8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+DQorICAgICAgICAgICAgVHlwZSBvZiBjb21waWxlZCBiaW5hcmllcw0KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorDQorDQorDQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgR0VORVJJQyBWQVJJQUJMRVMgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorDQorICAgIDwhLS0gICAgU2V0IHRoZSBJU0RMTCB2YXJpYWJsZSwgc28gdGhhdCB3ZSBjYW4gdXNlIGl0ICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICBpbnNpZGUgYW4gaWYgc3RhdGVtZW50IGxhdGVyIG9uIChvcHRpb25zIG5vdCAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tICAgIGFsbG93ZWQgaW4gaWYgc3RhdGVtZW50cykuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDxzZXQgdmFyPSJJU0RMTCIgY29uZD0iU0hBUkVEPT0nMSciPjE8L3NldD4NCisgICAgPHNldCB2YXI9IklTRExMIiBjb25kPSJTSEFSRUQ9PScwJyI+MDwvc2V0Pg0KKw0KKyAgICA8IS0tICAgIFRoZSB1bmljb2RlIGRlZmluZSB3ZSB3YW50LiAgQnkgZGVmYXVsdCBiYWtlZmlsZSAgICAgICAgLS0+DQorICAgIDwhLS0gICAgbWFrZXMgdmFyaWFibGVzIGFuIGVtcHR5IHN0cmluZywgc28gaWYgdW5pY29kZSAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICBpcyBub3QgZGVmaW5lZCAkKFVOSUNPREVfREVGSU5FKSB3b3VsZCBleHBhbmQgICAgICAgICAgIC0tPg0KKyAgICA8IS0tICAgIHRvIG5vdGhpbmcgKGxpdGVyYWxseSkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDxzZXQgdmFyPSJVTklDT0RFX0RFRklORSI+DQorICAgICAgICA8aWYgY29uZD0iRk9STUFUIT0nYXV0b2NvbmYnIGFuZCBVTklDT0RFPT0nMSciPl9VTklDT0RFPC9pZj4NCisgICAgPC9zZXQ+ICAgIA0KKyAgICANCisgICAgPCEtLSAgICBUaGUgZGVidWcgZGVmaW5lIHdlIG5lZWQgd2l0aCB3aW4zMiBjb21waWxlcnMgICAgICAgICAgIC0tPiAgICANCisgICAgPCEtLSAgICAob24gTGludXgsIHRoZSB3eC1jb25maWcgcHJvZ3JhbSBpcyB1c2VkKS4gICAgICAgICAgICAgIC0tPiAgICANCisgICAgPHNldCB2YXI9IkRFQlVHX0RFRklORSI+ICAgICAgICANCisgICAgICAgIDxpZiBjb25kPSJGT1JNQVQhPSdhdXRvY29uZicgYW5kIEJVSUxEPT0nZGVidWcnIj4NCisgICAgICAgICAgICBfX1dYREVCVUdfXw0KKyAgICAgICAgPC9pZj4gICAgDQorICAgIDwvc2V0Pg0KKw0KKyAgICA8IS0tICAgIFZhbHVlIHdlIHdpbGwgdXNlIGxhdGVyIG9uIGZvciB0aGUgZGVidWctaW5mbyAgICAgICAgICAgLS0+DQorICAgIDwhLS0gICAgdGFnIGluc2lkZSBvdXIgdGVtcGxhdGVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPHNldCB2YXI9IkRFQlVHSU5GTyI+DQorICAgICAgICA8aWYgY29uZD0iQlVJTEQ9PSdkZWJ1ZyciPm9uPC9pZj4NCisgICAgICAgIDxpZiBjb25kPSJCVUlMRD09J3JlbGVhc2UnIj5vZmY8L2lmPg0KKyAgICA8L3NldD4NCisNCisgICAgPCEtLSAgICBWYWx1ZSB3ZSB3aWxsIHVzZSBsYXRlciBvbiBmb3IgdGhlIGRlYnVnLXJ1bnRpbWUgICAgICAgIC0tPg0KKyAgICA8IS0tICAgIHRhZyBpbnNpZGUgb3VyIHRlbXBsYXRlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDxzZXQgdmFyPSJERUJVR1JVTlRJTUUiPg0KKyAgICAgICAgPGlmIGNvbmQ9IkJVSUxEPT0nZGVidWcnIj5vbjwvaWY+DQorICAgICAgICA8aWYgY29uZD0iQlVJTEQ9PSdyZWxlYXNlJyI+b2ZmPC9pZj4NCisgICAgPC9zZXQ+DQorDQorICAgIDwhLS0gICAgVmFsdWUgZm9yIG9wdGltaXplIHRhZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPHNldCB2YXI9Ik9QVElNSVpFRkxBRyI+DQorICAgICAgICA8aWYgY29uZD0iQlVJTEQ9PSdkZWJ1ZyciPm9mZjwvaWY+DQorICAgICAgICA8aWYgY29uZD0iQlVJTEQ9PSdyZWxlYXNlJyI+c3BlZWQ8L2lmPg0KKyAgICA8L3NldD4NCisNCisgICAgPCEtLSBMZXZlbCBvZiB3YXJuaW5ncy4gIEhlcmUgd2UgbWF4IGl0IG91dCBpbiBkZWJ1ZyAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tIG1vZGUsIGFuZCB0dXJuIHRoZW0gb2ZmIGluIHJlbGVhc2UgbW9kZS4gICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDxzZXQgdmFyPSJXQVJOSU5HUyI+DQorICAgICAgICA8aWYgY29uZD0iQlVJTEQ9PSdkZWJ1ZyciPm1heDwvaWY+DQorICAgICAgICA8aWYgY29uZD0iQlVJTEQ9PSdyZWxlYXNlJyI+bm88L2lmPg0KKyAgICA8L3NldD4NCisNCisgICAgPCEtLSBTZXQgTVlDUFBGTEFHUyBhcyBlbXB0eTsgbWF5YmUgaXQgd2lsbCBiZSBmaWxsZWQgbGF0ZXIuLi4gIC0tPg0KKyAgICA8c2V0IHZhcj0iTVlDUFBGTEFHUyI+PC9zZXQ+DQorICAgIDxpZiBjb25kPSJGT1JNQVQ9PSdtaW5ndycgb3IgRk9STUFUPT0nYXV0b2NvbmYnIj4NCisNCisgICAgICAgIDwhLS0gV2l0aCBHQ0MsIHNldHRpbmdzIHdhcm5pbmdzIHRvIE1BWCB3b3VsZCBmb3JjZSAgICAgICAgIC0tPg0KKyAgICAgICAgPCEtLSBCYWtlZmlsZSB0byBjYWxsIEdDQyB3aXRoICItVyAtV2FsbCIgd2hpY2ggZ2VuZXJhdGVzICAgLS0+DQorICAgICAgICA8IS0tIGEgKmxvdCogb2Ygd2FybmluZ3MgYWJvdXQgd3hXaWRnZXRzIGhlYWRlcnMuLi4gICAgICAgICAtLT4NCisgICAgICAgIDwhLS0gdGhpcyBpcyB3aHkgIi1XIC1XYWxsIiBpcyBoZXJlIHJlcGxhY2VkIGJ5ICItV2FsbCIuICAgIC0tPg0KKyAgICAgICAgPHNldCB2YXI9IldBUk5JTkdTIj5kZWZhdWx0PC9zZXQ+DQorICAgICAgICA8c2V0IHZhcj0iTVlDUFBGTEFHUyI+LVdhbGw8L3NldD4NCisgICAgPC9pZj4NCisgICAgDQorICAgIA0KKyAgICANCisgIA0KKw0KKw0KKyAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgTElCWE1MMiBPUFRJT05TICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tIE5vdGUgIzE6IG5vdCBhbGwgb2YgdGhlbSBhcmUgdXNlZCBieSB3aW4zMiBtYWtlZmlsZXMgICAgICAgLS0+DQorCTwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisJPCEtLSBOb3RlICMyOiBzaW5jZSBhbGwgY29tYmluYXRpb25zIG9mIG5vbi1wYXRoIG9wdGlvbnMgYXJlICAgIC0tPg0KKwk8IS0tICAgICAgICAgIHRyYW5zbGF0ZWQgaW50byBkaWZmZXJlbnQgJ2NvbmZpZ3VyYXRpb25zJyBieSAgICAgLS0+DQorCTwhLS0gICAgICAgICAgQmFrZWZpbGUgd2hlbiB1c2luZyB0aGUgTVNWQzZQUkogb3V0cHV0LCB3ZSBtdXN0ICAtLT4NCisJPCEtLSAgICAgICAgICBhdm9pZCB0byBjcmVhdGUgYSAxMCBNQiBsaWJ4bWwyLmRzcCBmaWxlIGZvcmNpbmcgIC0tPg0KKwk8IS0tICAgICAgICAgIHNvbWUgb3B0aW9ucyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4uLiB0aGlzICAgICAgLS0+DQorCTwhLS0gICAgICAgICAgYmVoYXZpb3VyIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSAgICAgICAgICAgICAgICAtLT4NCisJPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIEZVTExfT1BUSU9OU19TVVBQT1JUICAgICAgICAgICAgICAgIC0tPg0KKwk8IS0tICAgICAgICAgIHZhcmlhYmxlIGRlZmluZWQgYmVsb3cuLi4gICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIA0KKwk8c2V0IHZhcj0iRlVMTF9PUFRJT05TX1NVUFBPUlQiPg0KKwkJPGlmIGNvbmQ9IkZPUk1BVD09J21zdmM2cHJqJyI+MDwvaWY+DQorCQk8aWYgY29uZD0iRk9STUFUIT0nbXN2YzZwcmonIj4xPC9pZj4NCisJPC9zZXQ+DQorDQorICAgIDxvcHRpb24gbmFtZT0iSUNPTlZfRElSIiBjYXRlZ29yeT0icGF0aCI+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT5jOlxpY29udjwvZGVmYXVsdC12YWx1ZT4NCisgICAgICAgIDxkZXNjcmlwdGlvbj5UaGUgaWNvbnYgbGlicmFyeSBtYWluIGZvbGRlcjwvZGVzY3JpcHRpb24+DQorICAgIDwvb3B0aW9uPg0KKw0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfVFJJTyI+DQorICAgIAk8dmFsdWVzPjAsMTwvdmFsdWVzPg0KKyAgICAgICAgPGRlZmF1bHQtdmFsdWU+MDwvZGVmYXVsdC12YWx1ZT4NCisgICAgICAgIDxkZXNjcmlwdGlvbj5FbmFibGUgVFJJTyBzdHJpbmcgbWFuaXB1bGF0b3I8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisNCisJPCEtLSBzZWUgdGhlIG5vdGUgIzIgLS0+DQorCTxpZiBjb25kPSJGVUxMX09QVElPTlNfU1VQUE9SVD09JzAnIj4NCisJCTxzZXQgdmFyPSJXSVRIX1RIUkVBRFMiPm5hdGl2ZTwvc2V0Pg0KKwk8L2lmPg0KKwk8aWYgY29uZD0iRlVMTF9PUFRJT05TX1NVUFBPUlQ9PScxJyI+DQorCQk8b3B0aW9uIG5hbWU9IldJVEhfVEhSRUFEUyI+DQorICAgIAkJPHZhbHVlcz5ubyxjdGxzLG5hdGl2ZSxwb3NpeDwvdmFsdWVzPg0KKwkJCTxkZWZhdWx0LXZhbHVlPm5hdGl2ZTwvZGVmYXVsdC12YWx1ZT4NCisJCQk8ZGVzY3JpcHRpb24+RW5hYmxlIHRocmVhZCBzYWZldHk8L2Rlc2NyaXB0aW9uPg0KKwkJPC9vcHRpb24+DQorICAgIDwvaWY+DQorDQorICAgIDxvcHRpb24gbmFtZT0iV0lUSF9GVFAiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIEZUUCBjbGllbnQ8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisNCisgICAgPG9wdGlvbiBuYW1lPSJXSVRIX0hUVFAiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIEhUVFAgY2xpZW50PC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorDQorICAgIDxvcHRpb24gbmFtZT0iV0lUSF9DMTROIj4NCisgICAgCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4xPC9kZWZhdWx0LXZhbHVlPg0KKyAgICAgICAgPGRlc2NyaXB0aW9uPkVuYWJsZSBDMTROIHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisNCisgICAgPG9wdGlvbiBuYW1lPSJXSVRIX0NBVEFMT0ciPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIGNhdGFsb2cgc3VwcG9ydDwvZGVzY3JpcHRpb24+DQorICAgIDwvb3B0aW9uPg0KKw0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfRE9DQiI+DQorICAgIAk8dmFsdWVzPjAsMTwvdmFsdWVzPg0KKyAgICAgICAgPGRlZmF1bHQtdmFsdWU+MTwvZGVmYXVsdC12YWx1ZT4NCisgICAgICAgIDxkZXNjcmlwdGlvbj5FbmFibGUgRG9jQm9vayBzdXBwb3J0PC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfWFBBVEgiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIFhQYXRoIHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisJDQorICAgIDxvcHRpb24gbmFtZT0iV0lUSF9YUFRSIj4NCisgICAgCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4xPC9kZWZhdWx0LXZhbHVlPg0KKyAgICAgICAgPGRlc2NyaXB0aW9uPkVuYWJsZSBYUG9pbnRlciBzdXBwb3J0PC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfWElOQ0xVREUiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIFhJbmNsdWRlIHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisJDQorCTwhLS0gc2VlIHRoZSBub3RlICMyIC0tPg0KKwk8aWYgY29uZD0iRlVMTF9PUFRJT05TX1NVUFBPUlQ9PScwJyI+DQorCQk8c2V0IHZhcj0iV0lUSF9JQ09OViI+MTwvc2V0Pg0KKwk8L2lmPg0KKwk8aWYgY29uZD0iRlVMTF9PUFRJT05TX1NVUFBPUlQ9PScxJyI+DQorCQk8b3B0aW9uIG5hbWU9IldJVEhfSUNPTlYiPg0KKyAgICAJCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorCQkJPGRlZmF1bHQtdmFsdWU+MTwvZGVmYXVsdC12YWx1ZT4NCisJCQk8ZGVzY3JpcHRpb24+RW5hYmxlIGljb252IHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKwkJPC9vcHRpb24+DQorCTwvaWY+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfSVNPODg1OVgiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjA8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIGlzbzg4NTl4IHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisJDQorCTwhLS0gc2VlIHRoZSBub3RlICMyIC0tPg0KKwk8aWYgY29uZD0iRlVMTF9PUFRJT05TX1NVUFBPUlQ9PScwJyI+DQorCQk8c2V0IHZhcj0iV0lUSF9aTElCIj4wPC9zZXQ+DQorCTwvaWY+DQorCTxpZiBjb25kPSJGVUxMX09QVElPTlNfU1VQUE9SVD09JzEnIj4NCisJCTxvcHRpb24gbmFtZT0iV0lUSF9aTElCIj4NCisgICAgCQk8dmFsdWVzPjAsMTwvdmFsdWVzPg0KKwkJCTxkZWZhdWx0LXZhbHVlPjA8L2RlZmF1bHQtdmFsdWU+DQorCQkJPGRlc2NyaXB0aW9uPkVuYWJsZSBaTElCIHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKwkJPC9vcHRpb24+DQorCTwvaWY+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfUkVHRVhQUyI+DQorICAgIAk8dmFsdWVzPjAsMTwvdmFsdWVzPg0KKyAgICAgICAgPGRlZmF1bHQtdmFsdWU+MTwvZGVmYXVsdC12YWx1ZT4NCisgICAgICAgIDxkZXNjcmlwdGlvbj5FbmFibGUgcmVndWxhciBleHByZXNzaW9uczwvZGVzY3JpcHRpb24+DQorICAgIDwvb3B0aW9uPg0KKwkNCisgICAgPG9wdGlvbiBuYW1lPSJXSVRIX1RSRUUiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIHRyZWUgYXBpPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfUkVBREVSIj4NCisgICAgCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4xPC9kZWZhdWx0LXZhbHVlPg0KKyAgICAgICAgPGRlc2NyaXB0aW9uPkVuYWJsZSB4bWxSZWFkZXIgYXBpPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfV1JJVEVSIj4NCisgICAgCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4xPC9kZWZhdWx0LXZhbHVlPg0KKyAgICAgICAgPGRlc2NyaXB0aW9uPkVuYWJsZSB4bWxXcml0ZXIgYXBpPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfV0FMS0VSIj4NCisgICAgCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4xPC9kZWZhdWx0LXZhbHVlPg0KKyAgICAgICAgPGRlc2NyaXB0aW9uPkVuYWJsZSB4bWxEb2NXYWxrZXIgYXBpPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+ICAgIA0KKwkNCisgICAgPG9wdGlvbiBuYW1lPSJXSVRIX1BBVFRFUk4iPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIHhtbFBhdHRlcm4gYXBpPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfUFVTSCI+DQorICAgIAk8dmFsdWVzPjAsMTwvdmFsdWVzPg0KKyAgICAgICAgPGRlZmF1bHQtdmFsdWU+MTwvZGVmYXVsdC12YWx1ZT4NCisgICAgICAgIDxkZXNjcmlwdGlvbj5FbmFibGUgcHVzaCBhcGk8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisJDQorICAgIDxvcHRpb24gbmFtZT0iV0lUSF9WQUxJRCI+DQorICAgIAk8dmFsdWVzPjAsMTwvdmFsdWVzPg0KKyAgICAgICAgPGRlZmF1bHQtdmFsdWU+MTwvZGVmYXVsdC12YWx1ZT4NCisgICAgICAgIDxkZXNjcmlwdGlvbj5FbmFibGUgRFREIHZhbGlkYXRpb24gc3VwcG9ydDwvZGVzY3JpcHRpb24+DQorICAgIDwvb3B0aW9uPg0KKwkNCisgICAgPG9wdGlvbiBuYW1lPSJXSVRIX1NBWDEiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIFNBWDEgYXBpPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+ICAgIA0KKyAgICAgICAgICAgICAgICAJDQorICAgIDxvcHRpb24gbmFtZT0iV0lUSF9TQ0hFTUFTIj4NCisgICAgCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4xPC9kZWZhdWx0LXZhbHVlPg0KKyAgICAgICAgPGRlc2NyaXB0aW9uPkVuYWJsZSBYTUwgU2NoZW1hIHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4NCisJDQorICAgIDxvcHRpb24gbmFtZT0iV0lUSF9MRUdBQ1kiPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjE8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+RW5hYmxlIGRlcHJlY2F0ZWQgQVBJczwvZGVzY3JpcHRpb24+DQorICAgIDwvb3B0aW9uPiAgICANCisgICAgICAgICAgICAgICAgCQ0KKyAgICA8b3B0aW9uIG5hbWU9IldJVEhfT1VUUFVUIj4NCisgICAgCTx2YWx1ZXM+MCwxPC92YWx1ZXM+DQorICAgICAgICA8ZGVmYXVsdC12YWx1ZT4xPC9kZWZhdWx0LXZhbHVlPg0KKyAgICAgICAgPGRlc2NyaXB0aW9uPkVuYWJsZSBzZXJpYWxpemF0aW9uIHN1cHBvcnQ8L2Rlc2NyaXB0aW9uPg0KKyAgICA8L29wdGlvbj4JCQkJCQ0KKyAgICAgICAgICAgICAgICAJDQorICAgIDxvcHRpb24gbmFtZT0iV0lUSF9QWVRIT04iPg0KKyAgICAJPHZhbHVlcz4wLDE8L3ZhbHVlcz4NCisgICAgICAgIDxkZWZhdWx0LXZhbHVlPjA8L2RlZmF1bHQtdmFsdWU+DQorICAgICAgICA8ZGVzY3JpcHRpb24+QnVpbGQgUHl0aG9uIGJpbmRpbmdzPC9kZXNjcmlwdGlvbj4NCisgICAgPC9vcHRpb24+DQorDQorDQorIA0KKw0KKyAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgIExJQlhNTDIgVkFSSUFCTEVTICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPiAgIA0KKw0KKyAgICA8IS0tIFB1dCBhbGwgdGhlIG9iamVjdHMgZmlsZXMgZ2VuZXJhdGVkIGJ5ICAgICAgICAgLS0+DQorICAgIDwhLS0gdGhlIGNvbXBpbGF0aW9uIGluIGEgc3ViZm9sZGVyIG9mIEJVSUxEICAgICAgICAtLT4NCisgICAgPHNldCB2YXI9IkJVSUxERElSIj4kKEZPUk1BVCk8L3NldD4NCisgICAgDQorICAgIDwhLS0gVGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gMSB3aGVuIHRoZSBjdXJyZW50IG91dHB1dCB3cml0ZXIgc3VwcG9ydHMgLS0+DQorICAgCTwhLS0gdGhlIF9fREVGSU5FX0FSRyB2YXJpYWJsZS4gT3RoZXJ3aXNlIGl0J3Mgc2V0IHRvIHplcm8uIC0tPg0KKyAgIAk8c2V0IHZhcj0iSEFTX0RFRklORV9BUkciPg0KKyAgIAkJPGlmIGNvbmQ9IkZPUk1BVCE9J21zdmM2cHJqJyI+MTwvaWY+DQorICAgCQk8aWYgY29uZD0iRk9STUFUPT0nbXN2YzZwcmonIj4wPC9pZj4gICAJCQ0KKyAgIAk8L3NldD4NCisNCisJPCEtLSBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgbGlieG1sMiAtLT4NCisJPHNldCB2YXI9IlhNTEJBU0VESVIiPi4uPC9zZXQ+DQorCQ0KKwk8IS0tIFRoZSBkaXJlY3Rvcnkgd2hlcmUgbGlieG1sMicgdGVzdHMgd2lsbCBiZSBwdXQgLS0+DQorCTxzZXQgdmFyPSJYTUxURVNURElSIj4kKFhNTEJBU0VESVIpJChESVJTRVApYmluPC9zZXQ+DQorCQ0KKwk8c2V0IHZhcj0iTElCWE1MX01BSk9SX1ZFUlNJT04iPjI8L3NldD4NCisJPHNldCB2YXI9IkxJQlhNTF9NSU5PUl9WRVJTSU9OIj42PC9zZXQ+DQorCTxzZXQgdmFyPSJMSUJYTUxfTUlDUk9fVkVSU0lPTiI+MTY8L3NldD4NCisJDQorCTwhLS0gc29tZSBkZWZpbmVzIHJlbGF0ZWQgdG8gdGhyZWFkcyAtLT4NCisJPHNldCB2YXI9IlRIUkVBRFNfREVGIj4NCisJCTxpZiBjb25kPSJIQVNfREVGSU5FX0FSRz09JzEnIGFuZCBXSVRIX1RIUkVBRFM9PSduYXRpdmUnIj4NCisJCQkkKF9fREVGSU5FX0FSRylfUkVFTlRSQU5UICQoX19ERUZJTkVfQVJHKUhBVkVfV0lOMzJfVEhSRUFEUw0KKwkJPC9pZj4NCisJCTxpZiBjb25kPSJIQVNfREVGSU5FX0FSRz09JzEnIGFuZCBXSVRIX1RIUkVBRFM9PSdjdGxzJyI+DQorCQkJJChfX0RFRklORV9BUkcpX1JFRU5UUkFOVCAkKF9fREVGSU5FX0FSRylIQVZFX1dJTjMyX1RIUkVBRFMgJChfX0RFRklORV9BUkcpSEFWRV9DT01QSUxFUl9UTFMNCisJCTwvaWY+DQorCQk8aWYgY29uZD0iSEFTX0RFRklORV9BUkc9PScxJyBhbmQgV0lUSF9USFJFQURTPT0ncG9zaXgnIj4NCisJCQkkKF9fREVGSU5FX0FSRylfUkVFTlRSQU5UICQoX19ERUZJTkVfQVJHKUhBVkVfUFRIUkVBRF9IDQorCQk8L2lmPg0KKwk8L3NldD4NCisJPGlmIGNvbmQ9IkZPUk1BVD09J2JvcmxhbmQnIj4NCisJCTxzZXQgdmFyPSJUSFJFQURTX0RFRiI+DQorCQkJPGlmIGNvbmQ9IldJVEhfVEhSRUFEUz09J25hdGl2ZSciPiQoVEhSRUFEU19ERUYpICQoX19ERUZJTkVfQVJHKV9fTVRfXzwvaWY+DQorCQkJPGlmIGNvbmQ9IldJVEhfVEhSRUFEUz09J2N0bHMnIj4kKFRIUkVBRFNfREVGKSAkKF9fREVGSU5FX0FSRylfX01UX188L2lmPg0KKwkJCTxpZiBjb25kPSJXSVRIX1RIUkVBRFM9PSdwb3NpeCciPiQoVEhSRUFEU19ERUYpICQoX19ERUZJTkVfQVJHKV9fTVRfXzwvaWY+DQorCQk8L3NldD4NCisJPC9pZj4JDQorCQ0KKwkNCisJPCEtLSBzb21lIG90aGVyIGNvbmRpdGlvbmFsIGRlZmluZXMgLS0+DQorCTxzZXQgdmFyPSJaTElCX0RFRiI+PGlmIGNvbmQ9IldJVEhfWkxJQj09JzEnIj5IQVZFX1pMSUJfSDwvaWY+PC9zZXQ+DQorCTxzZXQgdmFyPSJERUJVR19ERUYiPjxpZiBjb25kPSJCVUlMRD09J2RlYnVnJyI+X0RFQlVHPC9pZj48L3NldD4NCisJPHNldCB2YXI9IkRFQlVHX0RFRiI+PGlmIGNvbmQ9IkJVSUxEPT0ncmVsZWFzZSciPk5ERUJVRzwvaWY+PC9zZXQ+DQorCQ0KKwk8IS0tIHRoaXMgaXMgdmVyeSB2ZXJ5IGltcG9ydGFudCB3aGVuIGNvbXBpbGluZyB3aXRoIE1JTkdXOiB3aXRob3V0IHRoaXMgbGluZSwNCisJdGhlIHRlc3QgcHJvZ3JhbXMgKGFuZCBhbGwgdGhlIHByb2dyYW1zIGJ1aWx0IHdpdGggbGlieG1sMiB3aGljaCB1c2UgeG1sRnJlZSkNCisJd29uJ3QgYnVpbGQgYmVjYXVzZSBvZiAidW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gX194bWxGcmVlIiAtLT4NCisJPHNldCB2YXI9IlNUQVRJQ19ERUYiPjxpZiBjb25kPSJTSEFSRUQ9PScwJyI+TElCWE1MX1NUQVRJQzwvaWY+PC9zZXQ+DQorCQ0KKwk8IS0tIHNvbWUgY29uZGl0aW9uYWwgbGlicmFyaWVzIGRlcGVuZGVuY2llcyAtLT4NCisJPHNldCB2YXI9IklDT05WX0xJQiI+PGlmIGNvbmQ9IldJVEhfSUNPTlY9PScxJyI+aWNvbnY8L2lmPjwvc2V0Pg0KKwk8c2V0IHZhcj0iV1NPQ0szMl9MSUIiPjxpZiBjb25kPSJXSVRIX1RIUkVBRFM9PSduYXRpdmUnIj53c29jazMyPC9pZj48L3NldD4NCisJPHNldCB2YXI9IlpMSUJfTElCIj48aWYgY29uZD0iV0lUSF9aTElCPT0nMSciPnpkbGw8L2lmPjwvc2V0Pg0KKwk8c2V0IHZhcj0iUE9TSVhfTElCIj48aWYgY29uZD0iV0lUSF9USFJFQURTPT0ncG9zaXgnIj5wdGhyZWFkVkM8L2lmPjwvc2V0Pg0KKwkNCisJPHNldCB2YXI9IlhNTElOQ0xVREVESVIiPiQoWE1MQkFTRURJUikkKERJUlNFUClpbmNsdWRlJChESVJTRVApbGlieG1sJChESVJTRVApPC9zZXQ+DQorDQorICANCisNCisgDQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICAgICAgICAgICAgIEFCT1VUIENPTkZJRy5IIEhFQURFUiBDUkVBVElPTiAgICAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+ICAgDQorICAgIA0KKyAgICA8c2V0IHZhcj0iQ09ORklHX1NSQ05BTUUiPndpbjMyY29uZmlnLmg8L3NldD4NCisgICAgPHNldCB2YXI9IkNPTkZJR19EU1ROQU1FIj5jb25maWcuaDwvc2V0Pg0KKyAgICANCisJPGlmIGNvbmQ9IkZPUk1BVCE9J21zdmM2cHJqJyBhbmQgRk9STUFUIT0nYXV0b2NvbmYnIGFuZCBGT1JNQVQhPSdnbnUnIj4NCisJCTxjb3B5LWZpbGUtdG8tZmlsZSBpZD0ic2V0dXAiPg0KKwkJCTwhLS0gT24gd2luMzIgd2UgbmVlZCB0byBtYW51YWxseSBjb3B5IGEgZGVmYXVsdCBjb25maWcuaCBmaWxlIC0tPg0KKwkJCTwhLS0gZnJvbSB0aGUgaW5jbHVkZS9tYy9tc3cgZm9sZGVyIHRvIGluY2x1ZGUvbWMJCQkgICAtLT4NCisJCQk8c3JjPi4uL2luY2x1ZGUvJChDT05GSUdfU1JDTkFNRSk8L3NyYz4NCisJCQk8ZHN0Pi4uLyQoQ09ORklHX0RTVE5BTUUpPC9kc3Q+DQorCQkJPGRlcGVuZGVuY3ktb2Y+YWxsPC9kZXBlbmRlbmN5LW9mPg0KKw0KKwkJCTwhLS0gV2l0aCBhdXRvY29uZiwgd2Ugd2lsbCB1c2UgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgdG8gdHJhbnNsYXRlIC0tPg0KKwkJCTwhLS0gaW5jbHVkZS9tYy9jb25maWcuaC5pbiB0byBpbmNsdWRlL21jL2NvbmZpZy5oIGFuZCB0aHVzIHdlIGRvIC0tPg0KKwkJCTwhLS0gbm90IG5lZWQgdG8gZG8gYW55dGhpbmcgaGVyZS4uLgkJCQkJCQkgIC0tPg0KKwkJPC9jb3B5LWZpbGUtdG8tZmlsZT4NCisJPC9pZj4NCisgICAgDQorCTxpZiBjb25kPSJGT1JNQVQhPSdtc3ZjNnByaiciPg0KKwkgICAgDQorCQk8bWtkaXIgaWQ9InNldHVwbGliZGlyIj48ZGlyPiQoWE1MQkFTRURJUikkKERJUlNFUClsaWI8L2Rpcj48L21rZGlyPg0KKwkJPG1rZGlyIGlkPSJzZXR1cGJpbmRpciI+PGRpcj4kKFhNTEJBU0VESVIpJChESVJTRVApYmluPC9kaXI+PC9ta2Rpcj4NCisJCQkNCisJICAgIDwhLS0gQ3JlYXRlcyBhbGwgb3V0cHV0IGZvbGRlcnMgLS0+CQ0KKwkgICAgPHBob255IGlkPSJzZXR1cGRpcnMiPg0KKwkJCTxkZXBlbmRlbmN5LW9mPmFsbDwvZGVwZW5kZW5jeS1vZj4JICAgIA0KKwkgICAgCTxkZXBlbmRzPnNldHVwbGliZGlyPC9kZXBlbmRzPg0KKwkgICAgCTxkZXBlbmRzPnNldHVwYmluZGlyPC9kZXBlbmRzPg0KKwkgICAgPC9waG9ueT4NCisJPC9pZj4NCisNCisgICAgPCEtLSBUaGlzIGRlZmluZXMgYSB0YWcgd2hpY2ggaW5jbHVkZXMgaGVhZGVycyBvbiBNU1ZDICAgICAgICAgIC0tPg0KKyAgICA8IS0tIE5vdGUgdGhhdCAkKHZhbHVlKSBpcyBzdHVjayBpbiB0aGVyZSBieSBiYWtlZmlsZSwgICAgICAgICAgLS0+DQorICAgIDwhLS0gYW5kIGlzIHRoZSB2YWx1ZSBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCB0YWcuICAgICAgICAtLT4NCisgICAgPGRlZmluZS10YWcgbmFtZT0iaGVhZGVycyIgcnVsZXM9ImRsbCxsaWIsZXhlIj4NCisgICAgICAgIDxpZiBjb25kPSJGT1JNQVQ9PSdtc3ZjNnByaiciPg0KKyAgICAgICAgICAgIDxtc3ZjLXByb2plY3QtZmlsZXM+DQorICAgICAgICAgICAgICAgICQodmFsdWUpDQorICAgICAgICAgICAgPC9tc3ZjLXByb2plY3QtZmlsZXM+DQorICAgICAgICA8L2lmPg0KKyAgICA8L2RlZmluZS10YWc+DQorICAgIAkJDQorCTwhLS0gQ3JlYXRlcyB0aGUgZm9sbG93aW5nIGN1c3RvbSBidWlsZCBydWxlIGZvciBNU1ZDNlBSSiBmaWxlOg0KKwkgICAgIGNvcGllcyAuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmggaW50byAuLlxjb25maWcuaA0KKwkgICAgIE5PVEU6IHRoaXMgdGFnIG11c3QgYmUgdXNlZCBiZWZvcmUgdGhlIDxzb3VyY2VzPiB0YWcgaWYgeW91IHdhbnQgdGhhdCB0aGUgY29uZmlndXJhdGlvbg0KKwkgICAgICAgICAgIGZpbGUgd2lsbCBiZSBjcmVhdGVkIGJlZm9yZSBhbnkgb3RoZXIgc291cmNlIGZpbGUgaXMgY29tcGlsZWQuLi4gLS0+DQorICAgIDxkZWZpbmUtdGFnIG5hbWU9Im1zdmMtY29weS1zZXR1cC1oIiBydWxlcz0iZGxsLGxpYixhY3Rpb24iPg0KKyAgICAgICAgPGlmIGNvbmQ9IkZPUk1BVD09J21zdmM2cHJqJyI+DQorCSAgICAgICAgPGhlYWRlcnM+JChYTUxCQVNFRElSKVxpbmNsdWRlXCQoQ09ORklHX1NSQ05BTUUpPC9oZWFkZXJzPg0KKwkgICAgICAgIDxzZXQgdmFyPSJfX3N1YmRpciI+JCh2YWx1ZSk8L3NldD4NCisgICAgICAgICAgICA8c2V0IHZhcj0iX2N1c3RvbV9idWlsZF9maWxlcyIgYXBwZW5kPSIxIj4kKFhNTEJBU0VESVIpXGluY2x1ZGVcJChDT05GSUdfU1JDTkFNRSk8L3NldD4NCisgICAgICAgICAgICA8c2V0IHZhcj0iX2N1c3RvbV9idWlsZF9fX19pbmNsdWRlX3dpbjMyY29uZmlnX2giPg0KK0NyZWF0aW5nIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgLi5cJChDT05GSUdfRFNUTkFNRSkgZnJvbSAuLlxpbmNsdWRlXCQoQ09ORklHX1NSQ05BTUUpDQorSW5wdXRQYXRoPS4uXGluY2x1ZGVcJChDT05GSUdfU1JDTkFNRSkNCisNCisiLi5cJChDT05GSUdfRFNUTkFNRSkiIDogJChET0xMQVIpKFNPVVJDRSkgIiQoRE9MTEFSKShJTlRESVIpIiAiJChET0xMQVIpKE9VVERJUikiDQorJChUQUIpY29weSAiJChET0xMQVIpKElucHV0UGF0aCkiIC4uXCQoQ09ORklHX0RTVE5BTUUpDQorICAgICAgICAgICAgPC9zZXQ+DQorICAgICAgICA8L2lmPg0KKyAgICA8L2RlZmluZS10YWc+DQorDQorIA0KKw0KKw0KKw0KKyAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgIFRFTVBMQVRFUyAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPiAgIA0KKw0KKwk8IS0tIFRoZSBiYXNpYyB0ZW1wbGF0ZTogdXNlZCBieSBhbGwgdGhlIHRhcmdldHMgLS0+DQorICAgIDx0ZW1wbGF0ZSBpZD0iYmFzZSI+DQorICAgICAgICA8aWYgY29uZD0iRk9STUFUPT0nbWluZ3cnIj4gICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgIDxkZWZpbmU+SEFWRV9XMzJBUElfSDwvZGVmaW5lPg0KKyAgICAgICAgICAgIDxsZGZsYWdzPi1tdGhyZWFkczwvbGRmbGFncz4NCisgICAgICAgIDwvaWY+DQorDQorICAgICAgICA8Y3h4ZmxhZ3M+JChNWUNQUEZMQUdTKTwvY3h4ZmxhZ3M+DQorICAgICAgICA8d2FybmluZ3M+JChXQVJOSU5HUyk8L3dhcm5pbmdzPg0KKyAgICAgICAgPGRlZmluZT4kKFVOSUNPREVfREVGSU5FKTwvZGVmaW5lPg0KKyAgICAgICAgPG9wdGltaXplPiQoT1BUSU1JWkVGTEFHKTwvb3B0aW1pemU+DQorICAgICAgICA8ZGVidWctaW5mbz4kKERFQlVHSU5GTyk8L2RlYnVnLWluZm8+DQorICAgICAgICA8ZGVidWctcnVudGltZS1saWJzPiQoREVCVUdSVU5USU1FKTwvZGVidWctcnVudGltZS1saWJzPg0KKwk8L3RlbXBsYXRlPg0KKwkNCisJPCEtLSBUaGUgdGVtcGxhdGUgdXNlZCBib3RoIGJ5IHRoZSBsaWJyYXJ5IGFuZCBieSB0aGUgdGVzdCBwcm9ncmFtcyAtLT4NCisgICAgPHRlbXBsYXRlIGlkPSJ4bWwyIiB0ZW1wbGF0ZT0iYmFzZSI+DQorICAgIA0KKyAgICAgICAgPCEtLSAtSSAmIC1MIGVxdWl2YWxlbnRzIC0tPg0KKyAgICAgICAgPGluY2x1ZGU+JChYTUxCQVNFRElSKSQoRElSU0VQKWluY2x1ZGU8L2luY2x1ZGU+DQorICAgICAgICA8aW5jbHVkZT4kKElDT05WX0RJUikkKERJUlNFUClpbmNsdWRlPC9pbmNsdWRlPg0KKyAgICAgICAgPGxpYi1wYXRoPiQoSUNPTlZfRElSKSQoRElSU0VQKWxpYjwvbGliLXBhdGg+ICAgIA0KKyAgICAgICAgDQorCQk8IS0tIHNvbWUgY29uZGl0aW9uYWwgZGVmaW5lIGZsYWdzIC0tPg0KKyAgICAgICAgPGNmbGFncz4kKFRIUkVBRFNfREVGKTwvY2ZsYWdzPg0KKwkJPGRlZmluZT4kKFpMSUJfREVGKTwvZGVmaW5lPg0KKwkJPGRlZmluZT4kKERFQlVHX0RFRik8L2RlZmluZT4NCisJCTxkZWZpbmU+JChTVEFUSUNfREVGKTwvZGVmaW5lPg0KKwkNCisJCTxpZiBjb25kPSJIQVNfREVGSU5FX0FSRz09JzAnIj4NCisJCQ0KKwkJCTwhLS0gd2UgYXJlIHByb2JhYmx5IHVzaW5nIGFuIElERSBvdXRwdXQ6IGRlZmF1bHRzIHRvIFdJVEhfVEhSRUFEUz09J25hdGl2ZScgLS0+DQorCQkJPGRlZmluZT5fUkVFTlRSQU5UPC9kZWZpbmU+DQorCQkJPGRlZmluZT5IQVZFX1dJTjMyX1RIUkVBRFM8L2RlZmluZT4NCisJCTwvaWY+DQorDQorCQkNCisJCTwhLS0gdGhlc2UgbXVzdCBhbHdheXMgYmUgZGVmaW5lZCBvbiB3aW4zMiAtLT4NCisJCTxkZWZpbmU+V0lOMzI8L2RlZmluZT4JCQ0KKwkJPGRlZmluZT5fV0lORE9XUzwvZGVmaW5lPg0KKwkJPGRlZmluZT5fTUJDUzwvZGVmaW5lPg0KKw0KKwkJPGlmIGNvbmQ9IkZPUk1BVD09J2JvcmxhbmQnIj4NCisJCQk8ZGVmaW5lPl9OT19WQ0w8L2RlZmluZT4NCisJCQk8ZGVmaW5lPkVJTFNFUT0yPC9kZWZpbmU+DQorCQk8L2lmPg0KKyAgICA8L3RlbXBsYXRlPg0KKyAgICANCisJPCEtLSBUaGUgdGVtcGxhdGUgdXNlZCBieSBsaWJ4bWwyIHRlc3QgcHJvZ3JhbXMgLS0+DQorCTx0ZW1wbGF0ZSBpZD0ieG1sMnRlc3QiIHRlbXBsYXRlPSJ4bWwyIj4NCisgICAgICAgIDxkaXJuYW1lPiQoWE1MVEVTVERJUik8L2Rpcm5hbWU+DQorICAgICAgICA8YXBwLXR5cGU+Y29uc29sZTwvYXBwLXR5cGU+ICAgICAgICANCisNCisgICAgICAgIDxsaWJyYXJ5PmxpYnhtbDI8L2xpYnJhcnk+DQorCQkNCisgICAgICAgIDxzeXMtbGliPiQoSUNPTlZfTElCKTwvc3lzLWxpYj4NCisgICAgICAgIDxzeXMtbGliPiQoV1NPQ0szMl9MSUIpPC9zeXMtbGliPg0KKwkJPHN5cy1saWI+JChaTElCX0xJQik8L3N5cy1saWI+IA0KKyAgICAgICAgPHN5cy1saWI+JChQT1NJWF9MSUIpPC9zeXMtbGliPg0KKwk8L3RlbXBsYXRlPg0KKw0KKw0KKw0KKw0KKyANCisNCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tICAgICAgICAgICAgICAgICAgTElCWE1MMiBMSUJSQVJZIFRBUkdFVCAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4gIA0KKyAgICANCisgICAgPGxpYiBpZD0ibGlieG1sMiIgdGVtcGxhdGU9InhtbDIiPg0KKyAgICAJDQorICAgIAk8IS0tIHRoaXMgaXMgdXNlZnVsIG9ubHkgd2hlbiB1c2luZyBNU1ZDNlBSSiAtLT4NCisgICAgCTxpZiBjb25kPSJGT1JNQVQ9PSdtc3ZjNnByaiciPg0KKyAgICAJCTxtc3ZjLWNvcHktc2V0dXAtaC8+DQorICAgIAkJPG1zdmMtZmlsZS1ncm91cD5Db25maWcgaGVhZGVyczoqY29uZmlnLmg8L21zdmMtZmlsZS1ncm91cD4NCisgICAgCTwvaWY+DQorICAgIAk8aWYgY29uZD0iRk9STUFUIT0nbXN2YzZwcmonIj4NCisJICAgIAk8ZGVwZW5kcz5zZXR1cDwvZGVwZW5kcz4NCisgICAgCQk8ZGVwZW5kcz5zZXR1cGxpYmRpcjwvZGVwZW5kcz4NCisgICAgCTwvaWY+DQorICAgIAkgICAgDQorICAgIAk8IS0tIG91dHB1dCBmb2xkZXIgLS0+DQorICAgICAgICA8ZGlybmFtZT4kKFhNTEJBU0VESVIpJChESVJTRVApbGliPC9kaXJuYW1lPg0KKwkJDQorCQk8IS0tIFRoZSBvdXRwdXQgbmFtZSBtdXN0IGJlICJsaWJ4bWwyLmxpYiIgd2l0aCBhbGwgY29tcGlsZXJzLg0KKwkJICAgICBTaW5jZSBtaW5ndyBmb3JtYXQgYXV0b2FkZHMgdGhlICJsaWIiIHByZWZpeCB0byB0aGUgbGlicmFyeQ0KKwkJCSBuYW1lLCB3ZSBtdXN0IGludGVyY2VwdCB0aGF0IGNhc2UgdG8gYXZvaWQgdG8gZ2V0ICJsaWJsaWJ4bWwyLmEiIC0tPg0KKwkJPGlmIGNvbmQ9IkZPUk1BVCE9J21pbmd3JyI+DQorCSAgICAgICAgPGxpYm5hbWU+bGlieG1sMjwvbGlibmFtZT4NCisJCTwvaWY+DQorCQk8aWYgY29uZD0iRk9STUFUPT0nbWluZ3cnIj4NCisJICAgICAgICA8bGlibmFtZT54bWwyPC9saWJuYW1lPg0KKwkJPC9pZj4NCisJCSAgICAgICAgDQorICAgICAgICA8IS0tIHRoZSBsaXN0IG9mIHNvdXJjZSBmaWxlcyB0byBjb21waWxlIC0tPiAgICAgICAgICAgIA0KKyAgICAgICAgPHNvdXJjZXM+DQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKWMxNG4uYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCljYXRhbG9nLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApY2h2YWxpZC5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKWRlYnVnWE1MLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApZGljdC5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKURPQ0JwYXJzZXIuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCllbmNvZGluZy5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKWVudGl0aWVzLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApZXJyb3IuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUClnbG9iYWxzLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApaGFzaC5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKUhUTUxwYXJzZXIuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUClIVE1MdHJlZS5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKWxlZ2FjeS5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKWxpc3QuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCluYW5vZnRwLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApbmFub2h0dHAuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUClwYXJzZXIuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUClwYXJzZXJJbnRlcm5hbHMuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUClwYXR0ZXJuLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApcmVsYXhuZy5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKVNBWDIuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUClTQVguYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCl0aHJlYWRzLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApdHJlZS5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKXVyaS5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKXZhbGlkLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApeGluY2x1ZGUuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCl4bGluay5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKXhtbElPLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApeG1sbWVtb3J5LmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApeG1scmVhZGVyLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApeG1scmVnZXhwLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApeG1sc2F2ZS5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKXhtbHNjaGVtYXMuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCl4bWxzY2hlbWFzdHlwZXMuYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCl4bWx1bmljb2RlLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApeG1sd3JpdGVyLmMNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApeHBhdGguYw0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCl4cG9pbnRlci5jDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKXhtbHN0cmluZy5jDQorICAgICAgICA8L3NvdXJjZXM+DQorICAgICAgICANCisgICAgICAgIDwhLS0gdGhlIGxpc3Qgb2YgaGVhZGVyIGZpbGVzIChmb3IgSURFIHByb2plY3RzKSAtLT4NCisgICAgICAgIDxoZWFkZXJzPg0KKwkJCSQoWE1MSU5DTFVERURJUiljMTRuLmgNCisJCQkkKFhNTElOQ0xVREVESVIpY2F0YWxvZy5oDQorCQkJJChYTUxJTkNMVURFRElSKWNodmFsaWQuaA0KKwkJCSQoWE1MSU5DTFVERURJUilkZWJ1Z1hNTC5oDQorCQkJJChYTUxJTkNMVURFRElSKWRpY3QuaA0KKwkJCSQoWE1MSU5DTFVERURJUilET0NCcGFyc2VyLmgNCisJCQkkKFhNTElOQ0xVREVESVIpZW5jb2RpbmcuaA0KKwkJCSQoWE1MSU5DTFVERURJUillbnRpdGllcy5oDQorCQkJJChYTUxJTkNMVURFRElSKWdsb2JhbHMuaA0KKwkJCSQoWE1MSU5DTFVERURJUiloYXNoLmgNCisJCQkkKFhNTElOQ0xVREVESVIpSFRNTHBhcnNlci5oDQorCQkJJChYTUxJTkNMVURFRElSKUhUTUx0cmVlLmgNCisJCQkkKFhNTElOQ0xVREVESVIpbGlzdC5oDQorCQkJJChYTUxJTkNMVURFRElSKW5hbm9mdHAuaA0KKwkJCSQoWE1MSU5DTFVERURJUiluYW5vaHR0cC5oDQorCQkJJChYTUxJTkNMVURFRElSKXBhcnNlci5oDQorCQkJJChYTUxJTkNMVURFRElSKXBhcnNlckludGVybmFscy5oDQorCQkJJChYTUxJTkNMVURFRElSKXBhdHRlcm4uaA0KKwkJCSQoWE1MSU5DTFVERURJUilyZWxheG5nLmgNCisJCQkkKFhNTElOQ0xVREVESVIpU0FYLmgNCisJCQkkKFhNTElOQ0xVREVESVIpU0FYMi5oDQorCQkJJChYTUxJTkNMVURFRElSKXNjaGVtYXNJbnRlcm5hbHMuaA0KKwkJCSQoWE1MSU5DTFVERURJUil0aHJlYWRzLmgNCisJCQkkKFhNTElOQ0xVREVESVIpdHJlZS5oDQorCQkJJChYTUxJTkNMVURFRElSKXVyaS5oDQorCQkJJChYTUxJTkNMVURFRElSKXZhbGlkLmgNCisJCQkkKFhNTElOQ0xVREVESVIpeGluY2x1ZGUuaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bGluay5oDQorCQkJJChYTUxJTkNMVURFRElSKXhtbGF1dG9tYXRhLmgNCisJCQkkKFhNTElOQ0xVREVESVIpeG1sZXJyb3IuaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bWxleHBvcnRzLmgNCisJCQkkKFhNTElOQ0xVREVESVIpeG1sSU8uaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bWxtZW1vcnkuaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bWxtb2R1bGUuaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bWxyZWFkZXIuaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bWxyZWdleHAuaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bWxzYXZlLmgNCisJCQkkKFhNTElOQ0xVREVESVIpeG1sc2NoZW1hcy5oDQorCQkJJChYTUxJTkNMVURFRElSKXhtbHNjaGVtYXN0eXBlcy5oDQorCQkJJChYTUxJTkNMVURFRElSKXhtbHN0cmluZy5oDQorCQkJJChYTUxJTkNMVURFRElSKXhtbHVuaWNvZGUuaA0KKwkJCSQoWE1MSU5DTFVERURJUil4bWx2ZXJzaW9uLmgJCQkNCisJCQkkKFhNTElOQ0xVREVESVIpeG1sd3JpdGVyLmgNCisJCQkkKFhNTElOQ0xVREVESVIpeHBhdGguaA0KKwkJCSQoWE1MSU5DTFVERURJUil4cGF0aEludGVybmFscy5oDQorCQkJJChYTUxJTkNMVURFRElSKXhwb2ludGVyLmgNCisJCTwvaGVhZGVycz4NCisNCisJCTwhLS0gdGhlc2Ugb25lcyBhcmUgbm90IGluc2lkZSB0aGUgaW5jbHVkZS9saWJ4bWwgZm9sZGVyIC0tPg0KKwkJPGhlYWRlcnM+DQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKWxpYnhtbC5oDQorCQkJJChYTUxCQVNFRElSKSQoRElSU0VQKXRyaW9kZWYuaA0KKwkJCSQoWE1MQkFTRURJUikkKERJUlNFUCl0cmlvbmFuLmgNCisJCQkkKFhNTEJBU0VESVIpJChESVJTRVApaW5jbHVkZSQoRElSU0VQKXdzb2NrY29tcGF0LmgJCQkNCisgICAgICAgPC9oZWFkZXJzPg0KKyAgICA8L2xpYj4NCisNCisNCisNCisgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KKyAgICA8IS0tICAgICAgICAgICAgICAgTElCWE1MMiB0ZXN0IHByb2dyYW1zICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCisJDQorCTxzZXQgdmFyPSJCVUlMRF9BTExfVEVTVFMiPg0KKw0KKwkJPCEtLSB3aGVuIHVzaW5nIGZ1bGwgb3B0aW9ucyBzdXBwb3J0IHdpdGggTVNWQzZQUkogd2Ugc2hvdWxkDQorCQkgICAgIGF2b2lkIHRvIGNyZWF0ZSBhbGwgdGhlIERTUCBmaWxlcyByZXF1aXJlZCBmb3IgdGhlIHRlc3QNCisJCQkgcHJvZ3JhbXM6IHRoZXkgd291bGQgdGFrZSBhIF9sb3RfIG9mIHNwYWNlICEhIC0tPg0KKwkJPGlmIGNvbmQ9IkZPUk1BVD09J21zdmM2cHJqJyBhbmQgRlVMTF9PUFRJT05TX1NVUFBPUlQ9PScxJyI+MDwvaWY+DQorDQorCQk8IS0tIHdoZW4gY3JlYXRpbmcgYSBtYWtlZmlsZSBvciB1c2luZyBNU1ZDNlBSSiB3aXRoIGxpbWl0ZWQNCisJCSAgICAgb3B0aW9ucyBzdXBwb3J0LCB0aGVuIHdlIGNhbiBidWlsZCBhbGwgdGhlIHRlc3RzIHNhZmVseSAtLT4NCisJCTxpZiBjb25kPSJGT1JNQVQhPSdtc3ZjNnByaicgb3IgRlVMTF9PUFRJT05TX1NVUFBPUlQ9PScwJyI+MTwvaWY+DQorDQorCTwvc2V0Pg0KKw0KKyAgICA8aWYgY29uZD0iQlVJTERfQUxMX1RFU1RTPT0nMSciPg0KKw0KKwkJPGV4ZSBpZD0idGVzdEF1dG9tYXRhIiB0ZW1wbGF0ZT0ieG1sMnRlc3QiPjxzb3VyY2VzPiQoWE1MQkFTRURJUikkKERJUlNFUCl0ZXN0QXV0b21hdGEuYzwvc291cmNlcz48L2V4ZT4NCisJCTxleGUgaWQ9InRlc3RDMTROIiB0ZW1wbGF0ZT0ieG1sMnRlc3QiPjxzb3VyY2VzPiQoWE1MQkFTRURJUikkKERJUlNFUCl0ZXN0QzE0Ti5jPC9zb3VyY2VzPjwvZXhlPg0KKwkJPGV4ZSBpZD0idGVzdEhUTUwiIHRlbXBsYXRlPSJ4bWwydGVzdCI+PHNvdXJjZXM+JChYTUxCQVNFRElSKSQoRElSU0VQKXRlc3RIVE1MLmM8L3NvdXJjZXM+PC9leGU+DQorCQk8ZXhlIGlkPSJ0ZXN0UmVhZGVyIiB0ZW1wbGF0ZT0ieG1sMnRlc3QiPjxzb3VyY2VzPiQoWE1MQkFTRURJUikkKERJUlNFUCl0ZXN0UmVhZGVyLmM8L3NvdXJjZXM+PC9leGU+DQorCQk8ZXhlIGlkPSJ0ZXN0UmVnZXhwIiB0ZW1wbGF0ZT0ieG1sMnRlc3QiPjxzb3VyY2VzPiQoWE1MQkFTRURJUikkKERJUlNFUCl0ZXN0UmVnZXhwLmM8L3NvdXJjZXM+PC9leGU+DQorCQk8ZXhlIGlkPSJ0ZXN0UmVsYXgiIHRlbXBsYXRlPSJ4bWwydGVzdCI+PHNvdXJjZXM+JChYTUxCQVNFRElSKSQoRElSU0VQKXRlc3RSZWxheC5jPC9zb3VyY2VzPjwvZXhlPg0KKwkJPGV4ZSBpZD0idGVzdFNheCIgdGVtcGxhdGU9InhtbDJ0ZXN0Ij48c291cmNlcz4kKFhNTEJBU0VESVIpJChESVJTRVApdGVzdFNheC5jPC9zb3VyY2VzPjwvZXhlPg0KKwkJPGV4ZSBpZD0idGVzdFNjaGVtYXMiIHRlbXBsYXRlPSJ4bWwydGVzdCI+PHNvdXJjZXM+JChYTUxCQVNFRElSKSQoRElSU0VQKXRlc3RTY2hlbWFzLmM8L3NvdXJjZXM+PC9leGU+DQorCQk8ZXhlIGlkPSJ0ZXN0VVJJIiB0ZW1wbGF0ZT0ieG1sMnRlc3QiPjxzb3VyY2VzPiQoWE1MQkFTRURJUikkKERJUlNFUCl0ZXN0VVJJLmM8L3NvdXJjZXM+PC9leGU+DQorCQk8ZXhlIGlkPSJ0ZXN0WFBhdGgiIHRlbXBsYXRlPSJ4bWwydGVzdCI+PHNvdXJjZXM+JChYTUxCQVNFRElSKSQoRElSU0VQKXRlc3RYUGF0aC5jPC9zb3VyY2VzPjwvZXhlPg0KKwkJPGV4ZSBpZD0ieG1sbGludCIgdGVtcGxhdGU9InhtbDJ0ZXN0Ij48c291cmNlcz4kKFhNTEJBU0VESVIpJChESVJTRVApeG1sbGludC5jPC9zb3VyY2VzPjwvZXhlPg0KKw0KKwkJPGlmIGNvbmQ9IkZPUk1BVD09J2F1dG9jb25mJyI+DQorCQkJPGV4ZSBpZD0idGVzdGRzbyIgdGVtcGxhdGU9InhtbDJ0ZXN0Ij48c291cmNlcz4kKFhNTEJBU0VESVIpJChESVJTRVApdGVzdGRzby5jPC9zb3VyY2VzPjwvZXhlPg0KKwkJPC9pZj4NCisNCisJPCEtLSBGSVhNRToNCisJCTxleGUgaWQ9InRlc3RNb2R1bGUiIHRlbXBsYXRlPSJ4bWwydGVzdCI+PHNvdXJjZXM+JChYTUxCQVNFRElSKSQoRElSU0VQKXRlc3RNb2R1bGUuYzwvc291cmNlcz48L2V4ZT4NCisNCisJCTxpZiBjb25kPSJXSVRIX1RIUkVBRFM9PSdwb3NpeCciPg0KKwkJCTxleGUgaWQ9InRlc3RUaHJlYWRzIiB0ZW1wbGF0ZT0ieG1sMnRlc3QiPjxzb3VyY2VzPiQoWE1MQkFTRURJUikkKERJUlNFUCl0ZXN0VGhyZWFkcy5jPC9zb3VyY2VzPjwvZXhlPg0KKwkJPC9pZj4NCisJCTxpZiBjb25kPSJXSVRIX1RIUkVBRFM9PSdjdGxzJyBvciBXSVRIX1RIUkVBRFM9PSduYXRpdmUnIj4NCisJCQk8ZXhlIGlkPSJ0ZXN0VGhyZWFkc1dpbjMyIiB0ZW1wbGF0ZT0ieG1sMnRlc3QiPjxzb3VyY2VzPiQoWE1MQkFTRURJUikkKERJUlNFUCl0ZXN0VGhyZWFkc1dpbjMyLmM8L3NvdXJjZXM+PC9leGU+DQorCQk8L2lmPg0KKwktLT4NCisJPC9pZj4NCisNCis8L21ha2VmaWxlPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvYzE0bi5jIGIvbGlieG1sMi0yLjcuNy9jMTRuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWMzY2FkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvYzE0bi5jCkBAIC0wLDAgKzEsMjIzNSBAQAorLyoKKyAqICJDYW5vbmljYWwgWE1MIiBpbXBsZW1lbnRhdGlvbiAKKyAqIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuCisgKiAKKyAqICJFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24iIGltcGxlbWVudGF0aW9uCisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKiAKKyAqIEF1dGhvcjogQWxla3NleSBTYW5pbiA8YWxla3NleUBhbGVrc2V5LmNvbT4KKyAqLworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKyNpZmRlZiBMSUJYTUxfQzE0Tl9FTkFCTEVECisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aEludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC9jMTRuLmg+CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVNvbWUgZGVjbGFyYXRpb24gYmV0dGVyIGxlZnQgcHJpdmF0ZSBBVE0JCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxDMTROX0JFRk9SRV9ET0NVTUVOVF9FTEVNRU5UID0gMCwKKyAgICBYTUxDMTROX0lOU0lERV9ET0NVTUVOVF9FTEVNRU5UID0gMSwKKyAgICBYTUxDMTROX0FGVEVSX0RPQ1VNRU5UX0VMRU1FTlQgPSAyCit9IHhtbEMxNE5Qb3NpdGlvbjsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbEMxNE5WaXNpYmxlTnNTdGFjayB7CisgICAgaW50IG5zQ3VyRW5kOyAgICAgICAgICAgLyogbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBzZXQgKi8KKyAgICBpbnQgbnNQcmV2U3RhcnQ7ICAgICAgICAvKiB0aGUgYmVnZ2lubmluZyBvZiB0aGUgc3RhY2sgZm9yIHByZXZpb3VzIHZpc2libGUgbm9kZSAqLworICAgIGludCBuc1ByZXZFbmQ7ICAgICAgICAgIC8qIHRoZSBlbmQgb2YgdGhlIHN0YWNrIGZvciBwcmV2aW91cyB2aXNpYmxlIG5vZGUgKi8KKyAgICBpbnQgbnNNYXg7ICAgICAgICAgICAgICAvKiBzaXplIG9mIHRoZSBhcnJheSBhcyBhbGxvY2F0ZWQgKi8KKyAgICB4bWxOc1B0ciAJKm5zVGFiOwkgICAgLyogYXJyYXkgb2YgbnMgaW4gbm8gcGFydGljdWxhciBvcmRlciAqLwkgICAgICAKKyAgICB4bWxOb2RlUHRyCSpub2RlVGFiOyAgIC8qIGFycmF5IG9mIG5vZGVzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgKi8KK30geG1sQzE0TlZpc2libGVOc1N0YWNrLCAqeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyOworCit0eXBlZGVmIHN0cnVjdCBfeG1sQzE0TkN0eCB7CisgICAgLyogaW5wdXQgcGFyYW1ldGVycyAqLworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrIGlzX3Zpc2libGVfY2FsbGJhY2s7CisgICAgdm9pZCogdXNlcl9kYXRhOyAgICAKKyAgICBpbnQgd2l0aF9jb21tZW50czsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOworCisgICAgLyogcG9zaXRpb24gaW4gdGhlIFhNTCBkb2N1bWVudCAqLworICAgIHhtbEMxNE5Qb3NpdGlvbiBwb3M7CisgICAgaW50IHBhcmVudF9pc19kb2M7CisgICAgeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIG5zX3JlbmRlcmVkOworICAgIAorICAgIC8qIEMxNE4gbW9kZSAqLworICAgIHhtbEMxNE5Nb2RlIG1vZGU7CisKKyAgICAvKiBleGNsdXNpdmUgY2Fub25pY2FsaXphdGlvbiAqLworICAgIHhtbENoYXIgKippbmNsdXNpdmVfbnNfcHJlZml4ZXM7CisKKyAgICAvKiBlcnJvciBudW1iZXIgKi8KKyAgICBpbnQgZXJyb3I7Cit9IHhtbEMxNE5DdHgsICp4bWxDMTROQ3R4UHRyOworCitzdGF0aWMgeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyCXhtbEMxNE5WaXNpYmxlTnNTdGFja0NyZWF0ZQkodm9pZCk7CitzdGF0aWMgdm9pZCAgICAgeG1sQzE0TlZpc2libGVOc1N0YWNrRGVzdHJveQkoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1cik7CitzdGF0aWMgdm9pZCAgICAgeG1sQzE0TlZpc2libGVOc1N0YWNrQWRkCSAgICAoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTnNQdHIgbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKTsKK3N0YXRpYyB2b2lkIAkJCXhtbEMxNE5WaXNpYmxlTnNTdGFja1NhdmUJKHhtbEMxNE5WaXNpYmxlTnNTdGFja1B0ciBjdXIsCisJCQkJCQkJCSB4bWxDMTROVmlzaWJsZU5zU3RhY2tQdHIgc3RhdGUpOworc3RhdGljIHZvaWQgCQkJeG1sQzE0TlZpc2libGVOc1N0YWNrUmVzdG9yZQkoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwKKwkJCQkJCQkJIHhtbEMxNE5WaXNpYmxlTnNTdGFja1B0ciBzdGF0ZSk7CitzdGF0aWMgdm9pZCAJCQl4bWxDMTROVmlzaWJsZU5zU3RhY2tTaGlmdAkoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1cik7CitzdGF0aWMgaW50CQkJeG1sQzE0TlZpc2libGVOc1N0YWNrRmluZAkoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgCisJCQkJCQkJCSB4bWxOc1B0ciBucyk7CitzdGF0aWMgaW50CQkJeG1sRXhjQzE0TlZpc2libGVOc1N0YWNrRmluZAkoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgCisJCQkJCQkJCSB4bWxOc1B0ciBucywKKwkJCQkJCQkJIHhtbEMxNE5DdHhQdHIgY3R4KTsKKworc3RhdGljIGludAkJCXhtbEMxNE5Jc05vZGVJbk5vZGVzZXQJCSh4bWxOb2RlU2V0UHRyIG5vZGVzLAorCQkJCQkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCQkJCQkgeG1sTm9kZVB0ciBwYXJlbnQpOworCisKKworc3RhdGljIGludCB4bWxDMTROUHJvY2Vzc05vZGUoeG1sQzE0TkN0eFB0ciBjdHgsIHhtbE5vZGVQdHIgY3VyKTsKK3N0YXRpYyBpbnQgeG1sQzE0TlByb2Nlc3NOb2RlTGlzdCh4bWxDMTROQ3R4UHRyIGN0eCwgeG1sTm9kZVB0ciBjdXIpOwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxDMTROX05PUk1BTElaRV9BVFRSID0gMCwKKyAgICBYTUxDMTROX05PUk1BTElaRV9DT01NRU5UID0gMSwKKyAgICBYTUxDMTROX05PUk1BTElaRV9QSSA9IDIsCisgICAgWE1MQzE0Tl9OT1JNQUxJWkVfVEVYVCA9IDMKK30geG1sQzE0Tk5vcm1hbGl6YXRpb25Nb2RlOworCitzdGF0aWMgeG1sQ2hhciAqeG1sQzExTk5vcm1hbGl6ZVN0cmluZyhjb25zdCB4bWxDaGFyICogaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDMTROTm9ybWFsaXphdGlvbk1vZGUgbW9kZSk7CisKKyNkZWZpbmUgCXhtbEMxMU5Ob3JtYWxpemVBdHRyKCBhICkgXAorICAgIHhtbEMxMU5Ob3JtYWxpemVTdHJpbmcoKGEpLCBYTUxDMTROX05PUk1BTElaRV9BVFRSKQorI2RlZmluZSAJeG1sQzExTk5vcm1hbGl6ZUNvbW1lbnQoIGEgKSBcCisgICAgeG1sQzExTk5vcm1hbGl6ZVN0cmluZygoYSksIFhNTEMxNE5fTk9STUFMSVpFX0NPTU1FTlQpCisjZGVmaW5lIAl4bWxDMTFOTm9ybWFsaXplUEkoIGEgKQlcCisgICAgeG1sQzExTk5vcm1hbGl6ZVN0cmluZygoYSksIFhNTEMxNE5fTk9STUFMSVpFX1BJKQorI2RlZmluZSAJeG1sQzExTk5vcm1hbGl6ZVRleHQoIGEgKSBcCisgICAgeG1sQzExTk5vcm1hbGl6ZVN0cmluZygoYSksIFhNTEMxNE5fTk9STUFMSVpFX1RFWFQpCisKKyNkZWZpbmUgCXhtbEMxNE5Jc1Zpc2libGUoIGN0eCwgbm9kZSwgcGFyZW50ICkgXAorICAgICAoKChjdHgpLT5pc192aXNpYmxlX2NhbGxiYWNrICE9IE5VTEwpID8gXAorCShjdHgpLT5pc192aXNpYmxlX2NhbGxiYWNrKChjdHgpLT51c2VyX2RhdGEsIFwKKwkJKHhtbE5vZGVQdHIpKG5vZGUpLCAoeG1sTm9kZVB0cikocGFyZW50KSkgOiAxKQorCisjZGVmaW5lIAl4bWxDMTROSXNFeGNsdXNpdmUoIGN0eCApIFwKKyAgICAoIChjdHgpLT5tb2RlID09IFhNTF9DMTROX0VYQ0xVU0lWRV8xXzAgKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJU29tZSBmYWN0b3JpemVkIGVycm9yIHJvdXRpbmVzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxDMTRORXJyTWVtb3J5OgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIG1lbW9yeSBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sQzE0TkVyck1lbW9yeShjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgWE1MX0ZST01fQzE0TiwKKwkJICAgIFhNTF9FUlJfTk9fTUVNT1JZLCBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLCBleHRyYSwKKwkJICAgIE5VTEwsIE5VTEwsIDAsIDAsCisJCSAgICAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIDogJXNcbiIsIGV4dHJhKTsKK30KKworLyoqCisgKiB4bWxDMTRORXJyUGFyYW06CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSByZWRlZmluaXRpb24gb2YgcGFyYW0gZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbEMxNE5FcnJQYXJhbShjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgWE1MX0ZST01fQzE0TiwKKwkJICAgIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsIGV4dHJhLAorCQkgICAgTlVMTCwgTlVMTCwgMCwgMCwKKwkJICAgICJJbnZhbGlkIHBhcmFtZXRlciA6ICVzXG4iLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sQzE0TkVyckludGVybmFsOgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIGludGVybmFsIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxDMTRORXJySW50ZXJuYWwoY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFhNTF9GUk9NX0MxNE4sCisJCSAgICBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLCBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLCBleHRyYSwKKwkJICAgIE5VTEwsIE5VTEwsIDAsIDAsCisJCSAgICAiSW50ZXJuYWwgZXJyb3IgOiAlc1xuIiwgZXh0cmEpOworfQorCisvKioKKyAqIHhtbEMxNE5FcnJJbnZhbGlkTm9kZToKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhIHJlZGVmaW5pdGlvbiBvZiBpbnZhbGlkIG5vZGUgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbEMxNE5FcnJJbnZhbGlkTm9kZShjb25zdCBjaGFyICpub2RlX3R5cGUsIGNvbnN0IGNoYXIgKmV4dHJhKQoreworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9DMTROLAorCQkgICAgWE1MX0MxNE5fSU5WQUxJRF9OT0RFLCBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLCBleHRyYSwKKwkJICAgIE5VTEwsIE5VTEwsIDAsIDAsCisJCSAgICAiTm9kZSAlcyBpcyBpbnZhbGlkIGhlcmUgOiAlc1xuIiwgbm9kZV90eXBlLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sQzE0TkVyclVua25vd25Ob2RlOgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIHVua25vd24gbm9kZSBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sQzE0TkVyclVua25vd25Ob2RlKGludCBub2RlX3R5cGUsIGNvbnN0IGNoYXIgKmV4dHJhKQoreworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9DMTROLAorCQkgICAgWE1MX0MxNE5fVU5LTk9XX05PREUsIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsIGV4dHJhLAorCQkgICAgTlVMTCwgTlVMTCwgMCwgMCwKKwkJICAgICJVbmtub3duIG5vZGUgdHlwZSAlZCBmb3VuZCA6ICVzXG4iLCBub2RlX3R5cGUsIGV4dHJhKTsKK30KKworLyoqCisgKiB4bWxDMTRORXJyUmVsYXRpdmVOYW1lc3BhY2U6CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSByZWRlZmluaXRpb24gb2YgcmVsYXRpdmUgbmFtZXNwYWNlIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxDMTRORXJyUmVsYXRpdmVOYW1lc3BhY2UoY29uc3QgY2hhciAqbnNfdXJpKQoreworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9DMTROLAorCQkgICAgWE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFLCBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLCBOVUxMLAorCQkgICAgTlVMTCwgTlVMTCwgMCwgMCwKKwkJICAgICJSZWxhdGl2ZSBuYW1lc3BhY2UgVVIgaXMgaW52YWxpZCBoZXJlIDogJXNcbiIsIG5zX3VyaSk7Cit9CisKKworCisvKioKKyAqIHhtbEMxNE5FcnI6CisgKiBAY3R4dDogIGEgQzE0TiBldmFsdWF0aW9uIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIGNvbnRleHQgbm9kZQorICogQGVycm9yOiAgdGhlIGVyb3JyIGNvZGUKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZQorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIGF0dHJpYnV0ZSBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sQzE0TkVycih4bWxDMTROQ3R4UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSwgaW50IGVycm9yLAorICAgICAgICAgICBjb25zdCBjaGFyICogbXNnKQoreworICAgIGlmIChjdHh0ICE9IE5VTEwpCisgICAgICAgIGN0eHQtPmVycm9yID0gZXJyb3I7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsCisJCSAgICBjdHh0LCBub2RlLCBYTUxfRlJPTV9DMTROLCBlcnJvciwKKwkJICAgIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsCisJCSAgICBOVUxMLCBOVUxMLCBOVUxMLCAwLCAwLCAiJXMiLCBtc2cpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlUaGUgaW1wbGVtZW50YXRpb24gaW50ZXJuYWxzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgWE1MX05BTUVTUEFDRVNfREVGQVVMVAkJMTYKKworc3RhdGljIGludAkJCQoreG1sQzE0TklzTm9kZUluTm9kZXNldCh4bWxOb2RlU2V0UHRyIG5vZGVzLCB4bWxOb2RlUHRyIG5vZGUsIHhtbE5vZGVQdHIgcGFyZW50KSB7CisgICAgaWYoKG5vZGVzICE9IE5VTEwpICYmIChub2RlICE9IE5VTEwpKSB7CisJaWYobm9kZS0+dHlwZSAhPSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwkgICAgcmV0dXJuKHhtbFhQYXRoTm9kZVNldENvbnRhaW5zKG5vZGVzLCBub2RlKSk7CisJfSBlbHNlIHsKKwkgICAgeG1sTnMgbnM7CisJICAgIAorCSAgICBtZW1jcHkoJm5zLCBub2RlLCBzaXplb2YobnMpKTsgCisJICAgIAorCSAgICAvKiB0aGlzIGlzIGEgbGlieG1sIGhhY2shIGNoZWNrIHhwYXRoLmMgZm9yIGRldGFpbHMgKi8KKwkgICAgaWYoKHBhcmVudCAhPSBOVUxMKSAmJiAocGFyZW50LT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkpIHsKKwkJbnMubmV4dCA9ICh4bWxOc1B0cilwYXJlbnQtPnBhcmVudDsKKwkgICAgfSBlbHNlIHsKKwkJbnMubmV4dCA9ICh4bWxOc1B0cilwYXJlbnQ7IAorCSAgICB9CisKKwkgICAgLyogCisJICAgICAqIElmIHRoZSBpbnB1dCBpcyBhbiBYUGF0aCBub2RlLXNldCwgdGhlbiB0aGUgbm9kZS1zZXQgbXVzdCBleHBsaWNpdGx5IAorCSAgICAgKiBjb250YWluIGV2ZXJ5IG5vZGUgdG8gYmUgcmVuZGVyZWQgdG8gdGhlIGNhbm9uaWNhbCBmb3JtLgorCSAgICAgKi8KKwkgICAgcmV0dXJuKHhtbFhQYXRoTm9kZVNldENvbnRhaW5zKG5vZGVzLCAoeG1sTm9kZVB0cikmbnMpKTsKKwl9CisgICAgfQorICAgIHJldHVybigxKTsKK30KKworc3RhdGljIHhtbEMxNE5WaXNpYmxlTnNTdGFja1B0cgoreG1sQzE0TlZpc2libGVOc1N0YWNrQ3JlYXRlKHZvaWQpIHsKKyAgICB4bWxDMTROVmlzaWJsZU5zU3RhY2tQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbEMxNE5WaXNpYmxlTnNTdGFja1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxDMTROVmlzaWJsZU5zU3RhY2spKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyck1lbW9yeSgiY3JlYXRpbmcgbmFtZXNwYWNlcyBzdGFjayIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxDMTROVmlzaWJsZU5zU3RhY2spKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHZvaWQKK3htbEMxNE5WaXNpYmxlTnNTdGFja0Rlc3Ryb3koeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1cikgeworICAgIGlmKGN1ciA9PSBOVUxMKSB7CisgICAgICAgIHhtbEMxNE5FcnJQYXJhbSgiZGVzdHJveWluZyBuYW1lc3BhY2VzIHN0YWNrIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYoY3VyLT5uc1RhYiAhPSBOVUxMKSB7CisJbWVtc2V0KGN1ci0+bnNUYWIsIDAsIGN1ci0+bnNNYXggKiBzaXplb2YoeG1sTnNQdHIpKTsKKwl4bWxGcmVlKGN1ci0+bnNUYWIpOworICAgIH0KKyAgICBpZihjdXItPm5vZGVUYWIgIT0gTlVMTCkgeworCW1lbXNldChjdXItPm5vZGVUYWIsIDAsIGN1ci0+bnNNYXggKiBzaXplb2YoeG1sTm9kZVB0cikpOworCXhtbEZyZWUoY3VyLT5ub2RlVGFiKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbEMxNE5WaXNpYmxlTnNTdGFjaykpOworICAgIHhtbEZyZWUoY3VyKTsKKyAgICAKK30KKworc3RhdGljIHZvaWQgCit4bWxDMTROVmlzaWJsZU5zU3RhY2tBZGQoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgeG1sTnNQdHIgbnMsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGlmKChjdXIgPT0gTlVMTCkgfHwgCisgICAgICAgKChjdXItPm5zVGFiID09IE5VTEwpICYmIChjdXItPm5vZGVUYWIgIT0gTlVMTCkpIHx8CisgICAgICAgKChjdXItPm5zVGFiICE9IE5VTEwpICYmIChjdXItPm5vZGVUYWIgPT0gTlVMTCkpKSB7CisgICAgICAgIHhtbEMxNE5FcnJQYXJhbSgiYWRkaW5nIG5hbWVzcGFjZSB0byBzdGFjayIpOworCXJldHVybjsKKyAgICB9CisKKyAgICBpZiAoKGN1ci0+bnNUYWIgPT0gTlVMTCkgJiYgKGN1ci0+bm9kZVRhYiA9PSBOVUxMKSkgeworICAgICAgICBjdXItPm5zVGFiID0gKHhtbE5zUHRyKikgeG1sTWFsbG9jKFhNTF9OQU1FU1BBQ0VTX0RFRkFVTFQgKiBzaXplb2YoeG1sTnNQdHIpKTsKKyAgICAgICAgY3VyLT5ub2RlVGFiID0gKHhtbE5vZGVQdHIqKSB4bWxNYWxsb2MoWE1MX05BTUVTUEFDRVNfREVGQVVMVCAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisJaWYgKChjdXItPm5zVGFiID09IE5VTEwpIHx8IChjdXItPm5vZGVUYWIgPT0gTlVMTCkpIHsKKwkgICAgeG1sQzE0TkVyck1lbW9yeSgiYWRkaW5nIG5vZGUgdG8gc3RhY2siKTsKKwkgICAgcmV0dXJuOworCX0KKwltZW1zZXQoY3VyLT5uc1RhYiwgMCAsIFhNTF9OQU1FU1BBQ0VTX0RFRkFVTFQgKiBzaXplb2YoeG1sTnNQdHIpKTsKKwltZW1zZXQoY3VyLT5ub2RlVGFiLCAwICwgWE1MX05BTUVTUEFDRVNfREVGQVVMVCAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisgICAgICAgIGN1ci0+bnNNYXggPSBYTUxfTkFNRVNQQUNFU19ERUZBVUxUOworICAgIH0gZWxzZSBpZihjdXItPm5zTWF4ID09IGN1ci0+bnNDdXJFbmQpIHsKKwl2b2lkICp0bXA7CQorCWludCB0bXBTaXplOworCQorCXRtcFNpemUgPSAyICogY3VyLT5uc01heDsKKwl0bXAgPSB4bWxSZWFsbG9jKGN1ci0+bnNUYWIsIHRtcFNpemUgKiBzaXplb2YoeG1sTnNQdHIpKTsKKwlpZiAodG1wID09IE5VTEwpIHsKKwkgICAgeG1sQzE0TkVyck1lbW9yeSgiYWRkaW5nIG5vZGUgdG8gc3RhY2siKTsKKwkgICAgcmV0dXJuOworCX0KKwljdXItPm5zVGFiID0gKHhtbE5zUHRyKil0bXA7CisKKwl0bXAgPSB4bWxSZWFsbG9jKGN1ci0+bm9kZVRhYiwgdG1wU2l6ZSAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisJaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIHhtbEMxNE5FcnJNZW1vcnkoImFkZGluZyBub2RlIHRvIHN0YWNrIik7CisJICAgIHJldHVybjsKKwl9CisJY3VyLT5ub2RlVGFiID0gKHhtbE5vZGVQdHIqKXRtcDsKKworCWN1ci0+bnNNYXggPSB0bXBTaXplOworICAgIH0KKyAgICBjdXItPm5zVGFiW2N1ci0+bnNDdXJFbmRdID0gbnM7CisgICAgY3VyLT5ub2RlVGFiW2N1ci0+bnNDdXJFbmRdID0gbm9kZTsKKworICAgICsrY3VyLT5uc0N1ckVuZDsKK30KKworc3RhdGljIHZvaWQKK3htbEMxNE5WaXNpYmxlTnNTdGFja1NhdmUoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIHN0YXRlKSB7CisgICAgaWYoKGN1ciA9PSBOVUxMKSB8fCAoc3RhdGUgPT0gTlVMTCkpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJzYXZpbmcgbmFtZXNwYWNlcyBzdGFjayIpOworCXJldHVybjsKKyAgICB9CisgICAgCisgICAgc3RhdGUtPm5zQ3VyRW5kID0gY3VyLT5uc0N1ckVuZDsKKyAgICBzdGF0ZS0+bnNQcmV2U3RhcnQgPSBjdXItPm5zUHJldlN0YXJ0OworICAgIHN0YXRlLT5uc1ByZXZFbmQgPSBjdXItPm5zUHJldkVuZDsKK30KKworc3RhdGljIHZvaWQKK3htbEMxNE5WaXNpYmxlTnNTdGFja1Jlc3RvcmUoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIHN0YXRlKSB7CisgICAgaWYoKGN1ciA9PSBOVUxMKSB8fCAoc3RhdGUgPT0gTlVMTCkpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJyZXN0b3JpbmcgbmFtZXNwYWNlcyBzdGFjayIpOworCXJldHVybjsKKyAgICB9CisgICAgY3VyLT5uc0N1ckVuZCA9IHN0YXRlLT5uc0N1ckVuZDsKKyAgICBjdXItPm5zUHJldlN0YXJ0ID0gc3RhdGUtPm5zUHJldlN0YXJ0OworICAgIGN1ci0+bnNQcmV2RW5kID0gc3RhdGUtPm5zUHJldkVuZDsKK30KKworc3RhdGljIHZvaWQgCit4bWxDMTROVmlzaWJsZU5zU3RhY2tTaGlmdCh4bWxDMTROVmlzaWJsZU5zU3RhY2tQdHIgY3VyKSB7CisgICAgaWYoY3VyID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJzaGlmdGluZyBuYW1lc3BhY2VzIHN0YWNrIik7CisJcmV0dXJuOworICAgIH0KKyAgICBjdXItPm5zUHJldlN0YXJ0ID0gY3VyLT5uc1ByZXZFbmQ7CisgICAgY3VyLT5uc1ByZXZFbmQgPSBjdXItPm5zQ3VyRW5kOworfQorCitzdGF0aWMgaW50Cit4bWxDMTROU3RyRXF1YWwoY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikgeworICAgIGlmIChzdHIxID09IHN0cjIpIHJldHVybigxKTsKKyAgICBpZiAoc3RyMSA9PSBOVUxMKSByZXR1cm4oKCpzdHIyKSA9PSAnXDAnKTsKKyAgICBpZiAoc3RyMiA9PSBOVUxMKSByZXR1cm4oKCpzdHIxKSA9PSAnXDAnKTsKKyAgICBkbyB7CisJaWYgKCpzdHIxKysgIT0gKnN0cjIpIHJldHVybigwKTsKKyAgICB9IHdoaWxlICgqc3RyMisrKTsKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sQzE0TlZpc2libGVOc1N0YWNrRmluZDoKKyAqIEBjdHg6CQl0aGUgQzE0TiBjb250ZXh0IAorICogQG5zOgkJCXRoZSBuYW1lc3BhY2UgdG8gY2hlY2sKKyAqCisgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbmFtZXNwYWNlIHdhcyBhbHJlYWR5IHJlbmRlcmVkIG9yIG5vdAorICoKKyAqIFJldHVybnMgMSBpZiB3ZSBhbHJlYWR5IHdyb3RlIHRoaXMgbmFtZXNwYWNlIG9yIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbEMxNE5WaXNpYmxlTnNTdGFja0ZpbmQoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgeG1sTnNQdHIgbnMpCit7CisgICAgaW50IGk7CisgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4OworICAgIGNvbnN0IHhtbENoYXIgKmhyZWY7CisgICAgaW50IGhhc19lbXB0eV9uczsKKyAgICAgICAgCisgICAgaWYoY3VyID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJzZWFyY2hpbmcgbmFtZXNwYWNlcyBzdGFjayAoYzE0bikiKTsKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGlmIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSB4bWxucz0iIiBpcyBub3QgZGVmaW5lZCB5ZXQgdGhlbiAKKyAgICAgKiB3ZSBkbyBub3Qgd2FudCB0byBwcmludCBpdCBvdXQKKyAgICAgKi8KKyAgICBwcmVmaXggPSAoKG5zID09IE5VTEwpIHx8IChucy0+cHJlZml4ID09IE5VTEwpKSA/IEJBRF9DQVNUICIiIDogbnMtPnByZWZpeDsKKyAgICBocmVmID0gKChucyA9PSBOVUxMKSB8fCAobnMtPmhyZWYgPT0gTlVMTCkpID8gQkFEX0NBU1QgIiIgOiBucy0+aHJlZjsKKyAgICBoYXNfZW1wdHlfbnMgPSAoeG1sQzE0TlN0ckVxdWFsKHByZWZpeCwgTlVMTCkgJiYgeG1sQzE0TlN0ckVxdWFsKGhyZWYsIE5VTEwpKTsKKworICAgIGlmIChjdXItPm5zVGFiICE9IE5VTEwpIHsKKwlpbnQgc3RhcnQgPSAoaGFzX2VtcHR5X25zKSA/IDAgOiBjdXItPm5zUHJldlN0YXJ0OworICAgICAgICBmb3IgKGkgPSBjdXItPm5zQ3VyRW5kIC0gMTsgaSA+PSBzdGFydDsgLS1pKSB7CisgICAgICAgICAgICB4bWxOc1B0ciBuczEgPSBjdXItPm5zVGFiW2ldOworCSAgICAKKwkgICAgaWYoeG1sQzE0TlN0ckVxdWFsKHByZWZpeCwgKG5zMSAhPSBOVUxMKSA/IG5zMS0+cHJlZml4IDogTlVMTCkpIHsKKwkJcmV0dXJuKHhtbEMxNE5TdHJFcXVhbChocmVmLCAobnMxICE9IE5VTEwpID8gbnMxLT5ocmVmIDogTlVMTCkpOworCSAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuKGhhc19lbXB0eV9ucyk7Cit9CisKK3N0YXRpYyBpbnQJCQkKK3htbEV4Y0MxNE5WaXNpYmxlTnNTdGFja0ZpbmQoeG1sQzE0TlZpc2libGVOc1N0YWNrUHRyIGN1ciwgeG1sTnNQdHIgbnMsIHhtbEMxNE5DdHhQdHIgY3R4KSB7CisgICAgaW50IGk7CisgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4OworICAgIGNvbnN0IHhtbENoYXIgKmhyZWY7CisgICAgaW50IGhhc19lbXB0eV9uczsKKyAgICAgICAgCisgICAgaWYoY3VyID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJzZWFyY2hpbmcgbmFtZXNwYWNlcyBzdGFjayAoZXhjIGMxNG4pIik7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBpZiB0aGUgZGVmYXVsdCBuYW1lc3BhY2UgeG1sbnM9IiIgaXMgbm90IGRlZmluZWQgeWV0IHRoZW4gCisgICAgICogd2UgZG8gbm90IHdhbnQgdG8gcHJpbnQgaXQgb3V0CisgICAgICovCisgICAgcHJlZml4ID0gKChucyA9PSBOVUxMKSB8fCAobnMtPnByZWZpeCA9PSBOVUxMKSkgPyBCQURfQ0FTVCAiIiA6IG5zLT5wcmVmaXg7CisgICAgaHJlZiA9ICgobnMgPT0gTlVMTCkgfHwgKG5zLT5ocmVmID09IE5VTEwpKSA/IEJBRF9DQVNUICIiIDogbnMtPmhyZWY7CisgICAgaGFzX2VtcHR5X25zID0gKHhtbEMxNE5TdHJFcXVhbChwcmVmaXgsIE5VTEwpICYmIHhtbEMxNE5TdHJFcXVhbChocmVmLCBOVUxMKSk7CisKKyAgICBpZiAoY3VyLT5uc1RhYiAhPSBOVUxMKSB7CisJaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgZm9yIChpID0gY3VyLT5uc0N1ckVuZCAtIDE7IGkgPj0gc3RhcnQ7IC0taSkgeworICAgICAgICAgICAgeG1sTnNQdHIgbnMxID0gY3VyLT5uc1RhYltpXTsKKwkgICAgCisJICAgIGlmKHhtbEMxNE5TdHJFcXVhbChwcmVmaXgsIChuczEgIT0gTlVMTCkgPyBuczEtPnByZWZpeCA6IE5VTEwpKSB7CisJCWlmKHhtbEMxNE5TdHJFcXVhbChocmVmLCAobnMxICE9IE5VTEwpID8gbnMxLT5ocmVmIDogTlVMTCkpIHsKKwkgICAgCSAgICByZXR1cm4oeG1sQzE0TklzVmlzaWJsZShjdHgsIG5zMSwgY3VyLT5ub2RlVGFiW2ldKSk7CisJCX0gZWxzZSB7CisJCSAgICByZXR1cm4oMCk7CisJCX0KKwkgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybihoYXNfZW1wdHlfbnMpOworfQorCisKKworCisvKioKKyAqIHhtbEMxNE5Jc1htbE5zOgorICogQG5zOiAJCXRoZSBuYW1lc3BhY2UgdG8gY2hlY2sKKyAqICAJCQorICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIG5hbWVzcGFjZSBpcyBhIGRlZmF1bHQgInhtbDoiIG5hbWVzcGFjZQorICogd2l0aCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiCisgKgorICogUmV0dXJucyAxIGlmIHRoZSBub2RlIGlzIGRlZmF1bHQgb3IgMCBvdGhlcndpc2UKKyAqLworCisvKiB0b2RvOiBtYWtlIGl0IGEgZGVmaW5lPyAqLworc3RhdGljIGludAoreG1sQzE0TklzWG1sTnMoeG1sTnNQdHIgbnMpCit7CisgICAgcmV0dXJuICgobnMgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICh4bWxTdHJFcXVhbChucy0+cHJlZml4LCBCQURfQ0FTVCAieG1sIikpICYmCisgICAgICAgICAgICAoeG1sU3RyRXF1YWwobnMtPmhyZWYsIFhNTF9YTUxfTkFNRVNQQUNFKSkpOworfQorCisKKy8qKgorICogeG1sQzE0Tk5zQ29tcGFyZToKKyAqIEBuczE6CQl0aGUgcG9pbnRlciB0byBmaXJzdCBuYW1lc3BhY2UKKyAqIEBuczI6IAkJdGhlIHBvaW50ZXIgdG8gc2Vjb25kIG5hbWVzcGFjZQorICoKKyAqIENvbXBhcmVzIHRoZSBuYW1lc3BhY2VzIGJ5IG5hbWVzIChwcmVmaXhlcykuCisgKgorICogUmV0dXJucyAtMSBpZiBuczEgPCBuczIsIDAgaWYgbnMxID09IG5zMiBvciAxIGlmIG5zMSA+IG5zMi4KKyAqLworc3RhdGljIGludAoreG1sQzE0Tk5zQ29tcGFyZSh4bWxOc1B0ciBuczEsIHhtbE5zUHRyIG5zMikKK3sKKyAgICBpZiAobnMxID09IG5zMikKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICBpZiAobnMxID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChuczIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgxKTsKKworICAgIHJldHVybiAoeG1sU3RyY21wKG5zMS0+cHJlZml4LCBuczItPnByZWZpeCkpOworfQorCisKKy8qKgorICogeG1sQzE0TlByaW50TmFtZXNwYWNlczoKKyAqIEBuczoJCQl0aGUgcG9pbnRlciB0byBuYW1lc3BhY2UKKyAqIEBjdHg6IAkJdGhlIEMxNE4gY29udGV4dAorICoKKyAqIFByaW50cyB0aGUgZ2l2ZW4gbmFtZXNwYWNlIHRvIHRoZSBvdXRwdXQgYnVmZmVyIGZyb20gQzE0TiBjb250ZXh0LgorICoKKyAqIFJldHVybnMgMSBvbiBzdWNjZXNzIG9yIDAgb24gZmFpbC4KKyAqLworc3RhdGljIGludAoreG1sQzE0TlByaW50TmFtZXNwYWNlcyhjb25zdCB4bWxOc1B0ciBucywgeG1sQzE0TkN0eFB0ciBjdHgpCit7CisKKyAgICBpZiAoKG5zID09IE5VTEwpIHx8IChjdHggPT0gTlVMTCkpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJ3cml0aW5nIG5hbWVzcGFjZXMiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKG5zLT5wcmVmaXggIT0gTlVMTCkgeworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIiB4bWxuczoiKTsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsIChjb25zdCBjaGFyICopIG5zLT5wcmVmaXgpOworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIj1cIiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiIHhtbG5zPVwiIik7CisgICAgfQorICAgIGlmKG5zLT5ocmVmICE9IE5VTEwpIHsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgKGNvbnN0IGNoYXIgKikgbnMtPmhyZWYpOworICAgIH0KKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIlwiIik7CisgICAgcmV0dXJuICgxKTsKK30KKworLyoqCisgKiB4bWxDMTROUHJvY2Vzc05hbWVzcGFjZXNBeGlzOgorICogQGN0eDogCQl0aGUgQzE0TiBjb250ZXh0CisgKiBAbm9kZToJCXRoZSBjdXJyZW50IG5vZGUKKyAqCisgKiBQcmludHMgb3V0IGNhbm9uaWNhbCBuYW1lc3BhY2UgYXhpcyBvZiB0aGUgY3VycmVudCBub2RlIHRvIHRoZQorICogYnVmZmVyIGZyb20gQzE0TiBjb250ZXh0IGFzIGZvbGxvd3MgCisgKgorICogQ2Fub25pY2FsIFhNTCB2IDEuMCAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4pCisgKgorICogTmFtZXNwYWNlIEF4aXMKKyAqIENvbnNpZGVyIGEgbGlzdCBMIGNvbnRhaW5pbmcgb25seSBuYW1lc3BhY2Ugbm9kZXMgaW4gdGhlIAorICogYXhpcyBhbmQgaW4gdGhlIG5vZGUtc2V0IGluIGxleGljb2dyYXBoaWMgb3JkZXIgKGFzY2VuZGluZykuIFRvIGJlZ2luIAorICogcHJvY2Vzc2luZyBMLCBpZiB0aGUgZmlyc3Qgbm9kZSBpcyBub3QgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIG5vZGUgKGEgbm9kZSAKKyAqIHdpdGggbm8gbmFtZXNwYWNlIFVSSSBhbmQgbm8gbG9jYWwgbmFtZSksIHRoZW4gZ2VuZXJhdGUgYSBzcGFjZSBmb2xsb3dlZCAKKyAqIGJ5IHhtbG5zPSIiIGlmIGFuZCBvbmx5IGlmIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICogICAgLSB0aGUgZWxlbWVudCBFIHRoYXQgb3ducyB0aGUgYXhpcyBpcyBpbiB0aGUgbm9kZS1zZXQKKyAqICAgIC0gVGhlIG5lYXJlc3QgYW5jZXN0b3IgZWxlbWVudCBvZiBFIGluIHRoZSBub2RlLXNldCBoYXMgYSBkZWZhdWx0IAorICoJICAgIG5hbWVzcGFjZSBub2RlIGluIHRoZSBub2RlLXNldCAoZGVmYXVsdCBuYW1lc3BhY2Ugbm9kZXMgYWx3YXlzIAorICogICAgICBoYXZlIG5vbi1lbXB0eSB2YWx1ZXMgaW4gWFBhdGgpCisgKiBUaGUgbGF0dGVyIGNvbmRpdGlvbiBlbGltaW5hdGVzIHVubmVjZXNzYXJ5IG9jY3VycmVuY2VzIG9mIHhtbG5zPSIiIGluIAorICogdGhlIGNhbm9uaWNhbCBmb3JtIHNpbmNlIGFuIGVsZW1lbnQgb25seSByZWNlaXZlcyBhbiB4bWxucz0iIiBpZiBpdHMgCisgKiBkZWZhdWx0IG5hbWVzcGFjZSBpcyBlbXB0eSBhbmQgaWYgaXQgaGFzIGFuIGltbWVkaWF0ZSBwYXJlbnQgaW4gdGhlIAorICogY2Fub25pY2FsIGZvcm0gdGhhdCBoYXMgYSBub24tZW1wdHkgZGVmYXVsdCBuYW1lc3BhY2UuIFRvIGZpbmlzaCAKKyAqIHByb2Nlc3NpbmcgIEwsIHNpbXBseSBwcm9jZXNzIGV2ZXJ5IG5hbWVzcGFjZSBub2RlIGluIEwsIGV4Y2VwdCBvbWl0IAorICogbmFtZXNwYWNlIG5vZGUgd2l0aCBsb2NhbCBuYW1lIHhtbCwgd2hpY2ggZGVmaW5lcyB0aGUgeG1sIHByZWZpeCwgCisgKiBpZiBpdHMgc3RyaW5nIHZhbHVlIGlzIGh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZS4KKyAqCisgKiBFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24gdiAxLjAgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bikKKyAqIENhbm9uaWNhbCBYTUwgYXBwbGllZCB0byBhIGRvY3VtZW50IHN1YnNldCByZXF1aXJlcyB0aGUgc2VhcmNoIG9mIHRoZSAKKyAqIGFuY2VzdG9yIG5vZGVzIG9mIGVhY2ggb3JwaGFuIGVsZW1lbnQgbm9kZSBmb3IgYXR0cmlidXRlcyBpbiB0aGUgeG1sIAorICogbmFtZXNwYWNlLCBzdWNoIGFzIHhtbDpsYW5nIGFuZCB4bWw6c3BhY2UuIFRoZXNlIGFyZSBjb3BpZWQgaW50byB0aGUgCisgKiBlbGVtZW50IG5vZGUgZXhjZXB0IGlmIGEgZGVjbGFyYXRpb24gb2YgdGhlIHNhbWUgYXR0cmlidXRlIGlzIGFscmVhZHkgCisgKiBpbiB0aGUgYXR0cmlidXRlIGF4aXMgb2YgdGhlIGVsZW1lbnQgKHdoZXRoZXIgb3Igbm90IGl0IGlzIGluY2x1ZGVkIGluIAorICogdGhlIGRvY3VtZW50IHN1YnNldCkuIFRoaXMgc2VhcmNoIGFuZCBjb3B5aW5nIGFyZSBvbWl0dGVkIGZyb20gdGhlIAorICogRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uIG1ldGhvZC4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtMSBvbiBmYWlsLgorICovCitzdGF0aWMgaW50Cit4bWxDMTROUHJvY2Vzc05hbWVzcGFjZXNBeGlzKHhtbEMxNE5DdHhQdHIgY3R4LCB4bWxOb2RlUHRyIGN1ciwgaW50IHZpc2libGUpCit7CisgICAgeG1sTm9kZVB0ciBuOworICAgIHhtbE5zUHRyIG5zLCB0bXA7CisgICAgeG1sTGlzdFB0ciBsaXN0OworICAgIGludCBhbHJlYWR5X3JlbmRlcmVkOworICAgIGludCBoYXNfZW1wdHlfbnMgPSAwOworICAgIAorICAgIGlmICgoY3R4ID09IE5VTEwpIHx8IChjdXIgPT0gTlVMTCkgfHwgKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSkgeworICAgICAgICB4bWxDMTRORXJyUGFyYW0oInByb2Nlc3NpbmcgbmFtZXNwYWNlcyBheGlzIChjMTRuKSIpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENyZWF0ZSBhIHNvcnRlZCBsaXN0IHRvIHN0b3JlIGVsZW1lbnQgbmFtZXNwYWNlcworICAgICAqLworICAgIGxpc3QgPSB4bWxMaXN0Q3JlYXRlKE5VTEwsICh4bWxMaXN0RGF0YUNvbXBhcmUpIHhtbEMxNE5Oc0NvbXBhcmUpOworICAgIGlmIChsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyckludGVybmFsKCJjcmVhdGluZyBuYW1lc3BhY2VzIGxpc3QgKGMxNG4pIik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKworICAgIC8qIGNoZWNrIGFsbCBuYW1lc3BhY2VzICovCisgICAgZm9yKG4gPSBjdXI7IG4gIT0gTlVMTDsgbiA9IG4tPnBhcmVudCkgeworCWZvcihucyA9IG4tPm5zRGVmOyBucyAhPSBOVUxMOyBucyA9IG5zLT5uZXh0KSB7CisJICAgIHRtcCA9IHhtbFNlYXJjaE5zKGN1ci0+ZG9jLCBjdXIsIG5zLT5wcmVmaXgpOworCSAgICAKKwkgICAgaWYoKHRtcCA9PSBucykgJiYgIXhtbEMxNE5Jc1htbE5zKG5zKSAmJiB4bWxDMTROSXNWaXNpYmxlKGN0eCwgbnMsIGN1cikpIHsKKwkJYWxyZWFkeV9yZW5kZXJlZCA9IHhtbEMxNE5WaXNpYmxlTnNTdGFja0ZpbmQoY3R4LT5uc19yZW5kZXJlZCwgbnMpOworCQlpZih2aXNpYmxlKSB7CisgICAgICAgIAkgICAgeG1sQzE0TlZpc2libGVOc1N0YWNrQWRkKGN0eC0+bnNfcmVuZGVyZWQsIG5zLCBjdXIpOworCQl9CisJCWlmKCFhbHJlYWR5X3JlbmRlcmVkKSB7CisJCSAgICB4bWxMaXN0SW5zZXJ0KGxpc3QsIG5zKTsgCisJCX0KKyAgICAJCWlmKHhtbFN0cmxlbihucy0+cHJlZml4KSA9PSAwKSB7CisJCSAgICBoYXNfZW1wdHlfbnMgPSAxOworCQl9CisJICAgIH0KKwl9CisgICAgfQorCQorICAgIC8qKgorICAgICAqIGlmIHRoZSBmaXJzdCBub2RlIGlzIG5vdCB0aGUgZGVmYXVsdCBuYW1lc3BhY2Ugbm9kZSAoYSBub2RlIHdpdGggbm8gCisgICAgICogbmFtZXNwYWNlIFVSSSBhbmQgbm8gbG9jYWwgbmFtZSksIHRoZW4gZ2VuZXJhdGUgYSBzcGFjZSBmb2xsb3dlZCBieSAKKyAgICAgKiB4bWxucz0iIiBpZiBhbmQgb25seSBpZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAgICAgKiAgLSB0aGUgZWxlbWVudCBFIHRoYXQgb3ducyB0aGUgYXhpcyBpcyBpbiB0aGUgbm9kZS1zZXQKKyAgICAgKiAgLSB0aGUgbmVhcmVzdCBhbmNlc3RvciBlbGVtZW50IG9mIEUgaW4gdGhlIG5vZGUtc2V0IGhhcyBhIGRlZmF1bHQgCisgICAgICogICAgIG5hbWVzcGFjZSBub2RlIGluIHRoZSBub2RlLXNldCAoZGVmYXVsdCBuYW1lc3BhY2Ugbm9kZXMgYWx3YXlzIAorICAgICAqICAgICBoYXZlIG5vbi1lbXB0eSB2YWx1ZXMgaW4gWFBhdGgpCisgICAgICovCisgICAgaWYodmlzaWJsZSAmJiAhaGFzX2VtcHR5X25zKSB7CisgICAgICAgIHN0YXRpYyB4bWxOcyBuc19kZWZhdWx0OworCisgICAgICAgIG1lbXNldCgmbnNfZGVmYXVsdCwgMCwgc2l6ZW9mKG5zX2RlZmF1bHQpKTsKKyAgICAgICAgaWYoIXhtbEMxNE5WaXNpYmxlTnNTdGFja0ZpbmQoY3R4LT5uc19yZW5kZXJlZCwgJm5zX2RlZmF1bHQpKSB7CisgICAgCSAgICB4bWxDMTROUHJpbnROYW1lc3BhY2VzKCZuc19kZWZhdWx0LCBjdHgpOworCX0KKyAgICB9CisJCisgICAgCisgICAgLyogCisgICAgICogcHJpbnQgb3V0IGFsbCBlbGVtZW50cyBmcm9tIGxpc3QgCisgICAgICovCisgICAgeG1sTGlzdFdhbGsobGlzdCwgKHhtbExpc3RXYWxrZXIpIHhtbEMxNE5QcmludE5hbWVzcGFjZXMsIChjb25zdCB2b2lkICopIGN0eCk7CisKKyAgICAvKiAKKyAgICAgKiBDbGVhbnVwCisgICAgICovCisgICAgeG1sTGlzdERlbGV0ZShsaXN0KTsKKyAgICByZXR1cm4gKDApOworfQorCisKKy8qKgorICogeG1sRXhjQzE0TlByb2Nlc3NOYW1lc3BhY2VzQXhpczoKKyAqIEBjdHg6IAkJdGhlIEMxNE4gY29udGV4dAorICogQG5vZGU6CQl0aGUgY3VycmVudCBub2RlCisgKgorICogUHJpbnRzIG91dCBleGNsdXNpdmUgY2Fub25pY2FsIG5hbWVzcGFjZSBheGlzIG9mIHRoZSBjdXJyZW50IG5vZGUgdG8gdGhlCisgKiBidWZmZXIgZnJvbSBDMTROIGNvbnRleHQgYXMgZm9sbG93cyAKKyAqCisgKiBFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24KKyAqIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bgorICoKKyAqIElmIHRoZSBlbGVtZW50IG5vZGUgaXMgaW4gdGhlIFhQYXRoIHN1YnNldCB0aGVuIG91dHB1dCB0aGUgbm9kZSBpbiAKKyAqIGFjY29yZGFuY2Ugd2l0aCBDYW5vbmljYWwgWE1MIGV4Y2VwdCBmb3IgbmFtZXNwYWNlIG5vZGVzIHdoaWNoIGFyZSAKKyAqIHJlbmRlcmVkIGFzIGZvbGxvd3M6CisgKgorICogMS4gUmVuZGVyIGVhY2ggbmFtZXNwYWNlIG5vZGUgaWZmOgorICogICAgKiBpdCBpcyB2aXNpYmx5IHV0aWxpemVkIGJ5IHRoZSBpbW1lZGlhdGUgcGFyZW50IGVsZW1lbnQgb3Igb25lIG9mIAorICogICAgICBpdHMgYXR0cmlidXRlcywgb3IgaXMgcHJlc2VudCBpbiBJbmNsdXNpdmVOYW1lc3BhY2VzIFByZWZpeExpc3QsIGFuZAorICogICAgKiBpdHMgcHJlZml4IGFuZCB2YWx1ZSBkbyBub3QgYXBwZWFyIGluIG5zX3JlbmRlcmVkLiBuc19yZW5kZXJlZCBpcyAKKyAqICAgICAgb2J0YWluZWQgYnkgcG9wcGluZyB0aGUgc3RhdGUgc3RhY2sgaW4gb3JkZXIgdG8gb2J0YWluIGEgbGlzdCBvZiAKKyAqICAgICAgcHJlZml4ZXMgYW5kIHRoZWlyIHZhbHVlcyB3aGljaCBoYXZlIGFscmVhZHkgYmVlbiByZW5kZXJlZCBieSAKKyAqICAgICAgYW4gb3V0cHV0IGFuY2VzdG9yIG9mIHRoZSBuYW1lc3BhY2Ugbm9kZSdzIHBhcmVudCBlbGVtZW50LgorICogMi4gQXBwZW5kIHRoZSByZW5kZXJlZCBuYW1lc3BhY2Ugbm9kZSB0byB0aGUgbGlzdCBuc19yZW5kZXJlZCBvZiBuYW1lc3BhY2UgCisgKiBub2RlcyByZW5kZXJlZCBieSBvdXRwdXQgYW5jZXN0b3JzLiBQdXNoIG5zX3JlbmRlcmVkIG9uIHN0YXRlIHN0YWNrIGFuZCAKKyAqIHJlY3Vyc2UuCisgKiAzLiBBZnRlciB0aGUgcmVjdXJzaW9uIHJldHVybnMsIHBvcCB0aGVzdGF0ZSBzdGFjay4KKyAqCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgLTEgb24gZmFpbC4KKyAqLworc3RhdGljIGludAoreG1sRXhjQzE0TlByb2Nlc3NOYW1lc3BhY2VzQXhpcyh4bWxDMTROQ3R4UHRyIGN0eCwgeG1sTm9kZVB0ciBjdXIsIGludCB2aXNpYmxlKQoreworICAgIHhtbE5zUHRyIG5zOworICAgIHhtbExpc3RQdHIgbGlzdDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgaW50IGFscmVhZHlfcmVuZGVyZWQ7CisgICAgaW50IGhhc19lbXB0eV9ucyA9IDA7CisgICAgaW50IGhhc192aXNpYmx5X3V0aWxpemVkX2VtcHR5X25zID0gMDsKKyAgICBpbnQgaGFzX2VtcHR5X25zX2luX2luY2x1c2l2ZV9saXN0ID0gMDsKKyAgICAgICAgCisgICAgaWYgKChjdHggPT0gTlVMTCkgfHwgKGN1ciA9PSBOVUxMKSB8fCAoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgIHhtbEMxNE5FcnJQYXJhbSgicHJvY2Vzc2luZyBuYW1lc3BhY2VzIGF4aXMgKGV4YyBjMTRuKSIpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICBpZigheG1sQzE0TklzRXhjbHVzaXZlKGN0eCkpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJwcm9jZXNzaW5nIG5hbWVzcGFjZXMgYXhpcyAoZXhjIGMxNG4pIik7CisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgfQorCisgICAgLyoKKyAgICAgKiBDcmVhdGUgYSBzb3J0ZWQgbGlzdCB0byBzdG9yZSBlbGVtZW50IG5hbWVzcGFjZXMKKyAgICAgKi8KKyAgICBsaXN0ID0geG1sTGlzdENyZWF0ZShOVUxMLCAoeG1sTGlzdERhdGFDb21wYXJlKSB4bWxDMTROTnNDb21wYXJlKTsKKyAgICBpZiAobGlzdCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgiY3JlYXRpbmcgbmFtZXNwYWNlcyBsaXN0IChleGMgYzE0bikiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgLyogCisgICAgICogcHJvY2VzcyBpbmNsdXNpdmUgbmFtZXNwYWNlczoKKyAgICAgKiBBbGwgbmFtZXNwYWNlIG5vZGVzIGFwcGVhcmluZyBvbiBpbmNsdXNpdmUgbnMgbGlzdCBhcmUgCisgICAgICogaGFuZGxlZCBhcyBwcm92aWRlZCBpbiBDYW5vbmljYWwgWE1MCisgICAgICovCisgICAgaWYoY3R4LT5pbmNsdXNpdmVfbnNfcHJlZml4ZXMgIT0gTlVMTCkgeworCXhtbENoYXIgKnByZWZpeDsgCisJaW50IGk7CisJCisJZm9yIChpID0gMDsgY3R4LT5pbmNsdXNpdmVfbnNfcHJlZml4ZXNbaV0gIT0gTlVMTDsgKytpKSB7CisJICAgIHByZWZpeCA9IGN0eC0+aW5jbHVzaXZlX25zX3ByZWZpeGVzW2ldOworCSAgICAvKgorCSAgICAgKiBTcGVjaWFsIHZhbHVlcyBmb3IgbmFtZXNwYWNlIHdpdGggZW1wdHkgcHJlZml4CisJICAgICAqLworICAgICAgICAgICAgaWYgKHhtbFN0ckVxdWFsKHByZWZpeCwgQkFEX0NBU1QgIiNkZWZhdWx0IikKKyAgICAgICAgICAgICAgICB8fCB4bWxTdHJFcXVhbChwcmVmaXgsIEJBRF9DQVNUICIiKSkgeworICAgICAgICAgICAgICAgIHByZWZpeCA9IE5VTEw7CisJCWhhc19lbXB0eV9uc19pbl9pbmNsdXNpdmVfbGlzdCA9IDE7CisgICAgICAgICAgICB9CisJCisJICAgIG5zID0geG1sU2VhcmNoTnMoY3VyLT5kb2MsIGN1ciwgcHJlZml4KTsJICAgIAorCSAgICBpZigobnMgIT0gTlVMTCkgJiYgIXhtbEMxNE5Jc1htbE5zKG5zKSAmJiB4bWxDMTROSXNWaXNpYmxlKGN0eCwgbnMsIGN1cikpIHsKKwkJYWxyZWFkeV9yZW5kZXJlZCA9IHhtbEMxNE5WaXNpYmxlTnNTdGFja0ZpbmQoY3R4LT5uc19yZW5kZXJlZCwgbnMpOworCQlpZih2aXNpYmxlKSB7CisgICAgCSAgICAJICAgIHhtbEMxNE5WaXNpYmxlTnNTdGFja0FkZChjdHgtPm5zX3JlbmRlcmVkLCBucywgY3VyKTsKKwkJfQorCQlpZighYWxyZWFkeV9yZW5kZXJlZCkgeworCSAgICAJICAgIHhtbExpc3RJbnNlcnQobGlzdCwgbnMpOyAKKwkJfQorICAgIAkJaWYoeG1sU3RybGVuKG5zLT5wcmVmaXgpID09IDApIHsKKwkJICAgIGhhc19lbXB0eV9ucyA9IDE7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisgICAgCisgICAgLyogYWRkIG5vZGUgbmFtZXNwYWNlICovCisgICAgaWYoY3VyLT5ucyAhPSBOVUxMKSB7CisJbnMgPSBjdXItPm5zOworICAgIH0gZWxzZSB7CisgICAgICAgIG5zID0geG1sU2VhcmNoTnMoY3VyLT5kb2MsIGN1ciwgTlVMTCk7CisJaGFzX3Zpc2libHlfdXRpbGl6ZWRfZW1wdHlfbnMgPSAxOworICAgIH0KKyAgICBpZigobnMgIT0gTlVMTCkgJiYgIXhtbEMxNE5Jc1htbE5zKG5zKSkgeworCWlmKHZpc2libGUgJiYgeG1sQzE0TklzVmlzaWJsZShjdHgsIG5zLCBjdXIpKSB7IAorCSAgICBpZigheG1sRXhjQzE0TlZpc2libGVOc1N0YWNrRmluZChjdHgtPm5zX3JlbmRlcmVkLCBucywgY3R4KSkgeworCQl4bWxMaXN0SW5zZXJ0KGxpc3QsIG5zKTsKKwkgICAgfQorCX0KKwlpZih2aXNpYmxlKSB7CisgICAgCSAgICB4bWxDMTROVmlzaWJsZU5zU3RhY2tBZGQoY3R4LT5uc19yZW5kZXJlZCwgbnMsIGN1cik7IAorCX0KKwlpZih4bWxTdHJsZW4obnMtPnByZWZpeCkgPT0gMCkgeworCSAgICBoYXNfZW1wdHlfbnMgPSAxOworCX0KKyAgICB9CisgICAgCisgICAgICAgIAorICAgIC8qIGFkZCBhdHRyaWJ1dGVzICovCisgICAgZm9yKGF0dHIgPSBjdXItPnByb3BlcnRpZXM7IGF0dHIgIT0gTlVMTDsgYXR0ciA9IGF0dHItPm5leHQpIHsKKyAgICAgICAgLyogCisgICAgICAgICAqIHdlIG5lZWQgdG8gY2hlY2sgdGhhdCBhdHRyaWJ1dGUgaXMgdmlzaWJsZSBhbmQgaGFzIG5vbgorICAgICAgICAgKiBkZWZhdWx0IG5hbWVzcGFjZSAoWE1MIE5hbWVzcGFjZXM6ICJkZWZhdWx0IG5hbWVzcGFjZXMgCisgICAgCSAqIGRvIG5vdCBhcHBseSBkaXJlY3RseSB0byBhdHRyaWJ1dGVzIikJIAorICAgICAgICAgKi8KKwlpZigoYXR0ci0+bnMgIT0gTlVMTCkgJiYgIXhtbEMxNE5Jc1htbE5zKGF0dHItPm5zKSAmJiB4bWxDMTROSXNWaXNpYmxlKGN0eCwgYXR0ciwgY3VyKSkgeworCSAgICBhbHJlYWR5X3JlbmRlcmVkID0geG1sRXhjQzE0TlZpc2libGVOc1N0YWNrRmluZChjdHgtPm5zX3JlbmRlcmVkLCBhdHRyLT5ucywgY3R4KTsKKwkgICAgeG1sQzE0TlZpc2libGVOc1N0YWNrQWRkKGN0eC0+bnNfcmVuZGVyZWQsIGF0dHItPm5zLCBjdXIpOyAKKwkgICAgaWYoIWFscmVhZHlfcmVuZGVyZWQgJiYgdmlzaWJsZSkgeworCQl4bWxMaXN0SW5zZXJ0KGxpc3QsIGF0dHItPm5zKTsgCisJICAgIH0KKwkgICAgaWYoeG1sU3RybGVuKGF0dHItPm5zLT5wcmVmaXgpID09IDApIHsKKwkJaGFzX2VtcHR5X25zID0gMTsKKwkgICAgfQorCX0gZWxzZSBpZigoYXR0ci0+bnMgIT0gTlVMTCkgJiYgKHhtbFN0cmxlbihhdHRyLT5ucy0+cHJlZml4KSA9PSAwKSAmJiAoeG1sU3RybGVuKGF0dHItPm5zLT5ocmVmKSA9PSAwKSkgeworCSAgICBoYXNfdmlzaWJseV91dGlsaXplZF9lbXB0eV9ucyA9IDE7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogUHJvY2VzcyB4bWxucz0iIgorICAgICAqLworICAgIGlmKHZpc2libGUgJiYgaGFzX3Zpc2libHlfdXRpbGl6ZWRfZW1wdHlfbnMgJiYgCisJICAgICFoYXNfZW1wdHlfbnMgJiYgIWhhc19lbXB0eV9uc19pbl9pbmNsdXNpdmVfbGlzdCkgeworICAgICAgICBzdGF0aWMgeG1sTnMgbnNfZGVmYXVsdDsKKworICAgICAgICBtZW1zZXQoJm5zX2RlZmF1bHQsIDAsIHNpemVvZihuc19kZWZhdWx0KSk7CisJCisgICAgICAgIGFscmVhZHlfcmVuZGVyZWQgPSB4bWxFeGNDMTROVmlzaWJsZU5zU3RhY2tGaW5kKGN0eC0+bnNfcmVuZGVyZWQsICZuc19kZWZhdWx0LCBjdHgpOworCWlmKCFhbHJlYWR5X3JlbmRlcmVkKSB7CisgICAgCSAgICB4bWxDMTROUHJpbnROYW1lc3BhY2VzKCZuc19kZWZhdWx0LCBjdHgpOworCX0KKyAgICB9IGVsc2UgaWYodmlzaWJsZSAmJiAhaGFzX2VtcHR5X25zICYmIGhhc19lbXB0eV9uc19pbl9pbmNsdXNpdmVfbGlzdCkgeworICAgICAgICBzdGF0aWMgeG1sTnMgbnNfZGVmYXVsdDsKKworICAgICAgICBtZW1zZXQoJm5zX2RlZmF1bHQsIDAsIHNpemVvZihuc19kZWZhdWx0KSk7CisgICAgICAgIGlmKCF4bWxDMTROVmlzaWJsZU5zU3RhY2tGaW5kKGN0eC0+bnNfcmVuZGVyZWQsICZuc19kZWZhdWx0KSkgeworICAgIAkgICAgeG1sQzE0TlByaW50TmFtZXNwYWNlcygmbnNfZGVmYXVsdCwgY3R4KTsKKwl9CisgICAgfQorCisgICAgCisKKyAgICAvKiAKKyAgICAgKiBwcmludCBvdXQgYWxsIGVsZW1lbnRzIGZyb20gbGlzdCAKKyAgICAgKi8KKyAgICB4bWxMaXN0V2FsayhsaXN0LCAoeG1sTGlzdFdhbGtlcikgeG1sQzE0TlByaW50TmFtZXNwYWNlcywgKGNvbnN0IHZvaWQgKikgY3R4KTsKKworICAgIC8qIAorICAgICAqIENsZWFudXAKKyAgICAgKi8KKyAgICB4bWxMaXN0RGVsZXRlKGxpc3QpOworICAgIHJldHVybiAoMCk7Cit9CisKKworLyoqCisgKiB4bWxDMTROSXNYbWxBdHRyOgorICogQGF0dHI6IAkJdGhlIGF0dHIgdG8gY2hlY2sKKyAqICAJCQorICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGF0dHJpYnV0ZSBpcyBhIGRlZmF1bHQgInhtbDoiIG5hbWVzcGFjZQorICogd2l0aCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiCisgKgorICogUmV0dXJucyAxIGlmIHRoZSBub2RlIGlzIGRlZmF1bHQgb3IgMCBvdGhlcndpc2UKKyAqLworCisvKiB0b2RvOiBtYWtlIGl0IGEgZGVmaW5lPyAqLworc3RhdGljIGludAoreG1sQzE0TklzWG1sQXR0cih4bWxBdHRyUHRyIGF0dHIpCit7CisgICAgcmV0dXJuICgoYXR0ci0+bnMgIT0gTlVMTCkgJiYgCisgICAgICAgICAgICh4bWxDMTROSXNYbWxOcyhhdHRyLT5ucykgIT0gMCkpOworfQorCisKKy8qKgorICogeG1sQzE0TkF0dHJzQ29tcGFyZToKKyAqIEBhdHRyMToJCXRoZSBwb2ludGVyIHRscyBvIGZpcnN0IGF0dHIKKyAqIEBhdHRyMjogCQl0aGUgcG9pbnRlciB0byBzZWNvbmQgYXR0cgorICoKKyAqIFByaW50cyB0aGUgZ2l2ZW4gYXR0cmlidXRlIHRvIHRoZSBvdXRwdXQgYnVmZmVyIGZyb20gQzE0TiBjb250ZXh0LgorICoKKyAqIFJldHVybnMgLTEgaWYgYXR0cjEgPCBhdHRyMiwgMCBpZiBhdHRyMSA9PSBhdHRyMiBvciAxIGlmIGF0dHIxID4gYXR0cjIuCisgKi8KK3N0YXRpYyBpbnQKK3htbEMxNE5BdHRyc0NvbXBhcmUoeG1sQXR0clB0ciBhdHRyMSwgeG1sQXR0clB0ciBhdHRyMikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIC8qCisgICAgICogU2ltcGxlIGNhc2VzCisgICAgICovCisgICAgaWYgKGF0dHIxID09IGF0dHIyKQorICAgICAgICByZXR1cm4gKDApOworICAgIGlmIChhdHRyMSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBpZiAoYXR0cjIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICBpZiAoYXR0cjEtPm5zID09IGF0dHIyLT5ucykgeworICAgICAgICByZXR1cm4gKHhtbFN0cmNtcChhdHRyMS0+bmFtZSwgYXR0cjItPm5hbWUpKTsKKyAgICB9CisKKyAgICAvKiAKKyAgICAgKiBBdHRyaWJ1dGVzIGluIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBhcmUgZmlyc3QKKyAgICAgKiBiZWNhdXNlIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBpcyBub3QgYXBwbGllZCB0bworICAgICAqIHVucXVhbGlmaWVkIGF0dHJpYnV0ZXMKKyAgICAgKi8KKyAgICBpZiAoYXR0cjEtPm5zID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChhdHRyMi0+bnMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICBpZiAoYXR0cjEtPm5zLT5wcmVmaXggPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgaWYgKGF0dHIyLT5ucy0+cHJlZml4ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoMSk7CisKKyAgICByZXQgPSB4bWxTdHJjbXAoYXR0cjEtPm5zLT5ocmVmLCBhdHRyMi0+bnMtPmhyZWYpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXQgPSB4bWxTdHJjbXAoYXR0cjEtPm5hbWUsIGF0dHIyLT5uYW1lKTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisKKy8qKgorICogeG1sQzE0TlByaW50QXR0cnM6CisgKiBAYXR0cjoJCXRoZSBwb2ludGVyIHRvIGF0dHIKKyAqIEBjdHg6IAkJdGhlIEMxNE4gY29udGV4dAorICoKKyAqIFByaW50cyBvdXQgY2Fub25pY2FsIGF0dHJpYnV0ZSB1cnJlbnQgbm9kZSB0byB0aGUKKyAqIGJ1ZmZlciBmcm9tIEMxNE4gY29udGV4dCBhcyBmb2xsb3dzIAorICoKKyAqIENhbm9uaWNhbCBYTUwgdiAxLjAgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuKQorICoKKyAqIFJldHVybnMgMSBvbiBzdWNjZXNzIG9yIDAgb24gZmFpbC4KKyAqLworc3RhdGljIGludAoreG1sQzE0TlByaW50QXR0cnMoY29uc3QgeG1sQXR0clB0ciBhdHRyLCB4bWxDMTROQ3R4UHRyIGN0eCkKK3sKKyAgICB4bWxDaGFyICp2YWx1ZTsKKyAgICB4bWxDaGFyICpidWZmZXI7CisKKyAgICBpZiAoKGF0dHIgPT0gTlVMTCkgfHwgKGN0eCA9PSBOVUxMKSkgeworICAgICAgICB4bWxDMTRORXJyUGFyYW0oIndyaXRpbmcgYXR0cmlidXRlcyIpOworICAgICAgICByZXR1cm4gKDApOworICAgIH0KKworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiICIpOworICAgIGlmIChhdHRyLT5ucyAhPSBOVUxMICYmIHhtbFN0cmxlbihhdHRyLT5ucy0+cHJlZml4KSA+IDApIHsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIGF0dHItPm5zLT5wcmVmaXgpOworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIjoiKTsKKyAgICB9CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsIChjb25zdCBjaGFyICopIGF0dHItPm5hbWUpOworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiPVwiIik7CisKKyAgICB2YWx1ZSA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGN0eC0+ZG9jLCBhdHRyLT5jaGlsZHJlbiwgMSk7CisgICAgLyogdG9kbzogc2hvdWxkIHdlIGxvZyBhbiBlcnJvciBpZiB2YWx1ZT09TlVMTCA/ICovCisgICAgaWYgKHZhbHVlICE9IE5VTEwpIHsKKyAgICAgICAgYnVmZmVyID0geG1sQzExTk5vcm1hbGl6ZUF0dHIodmFsdWUpOworICAgICAgICB4bWxGcmVlKHZhbHVlKTsKKyAgICAgICAgaWYgKGJ1ZmZlciAhPSBOVUxMKSB7CisgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgKGNvbnN0IGNoYXIgKikgYnVmZmVyKTsKKyAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgibm9ybWFsaXppbmcgYXR0cmlidXRlcyBheGlzIik7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9CisgICAgfQorICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiXCIiKTsKKyAgICByZXR1cm4gKDEpOworfQorCisvKioKKyAqIHhtbEMxNE5GaW5kSGlkZGVuUGFyZW50QXR0cjoKKyAqCisgKiBGaW5kcyBhbiBhdHRyaWJ1dGUgaW4gYSBoaWRkZW4gcGFyZW50IG5vZGUuCisgKiAKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBhdHRyaWJ1dGUgbm9kZSAoaWYgZm91bmQpIG9yIE5VTEwgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgeG1sQXR0clB0cgoreG1sQzE0TkZpbmRIaWRkZW5QYXJlbnRBdHRyKHhtbEMxNE5DdHhQdHIgY3R4LCB4bWxOb2RlUHRyIGN1ciwgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGNvbnN0IHhtbENoYXIgKiBucykKK3sKKyAgICB4bWxBdHRyUHRyIHJlczsKKyAgICB3aGlsZSgoY3VyICE9IE5VTEwpICYmICgheG1sQzE0TklzVmlzaWJsZShjdHgsIGN1ciwgY3VyLT5wYXJlbnQpKSkgeworICAgICAgICByZXMgPSB4bWxIYXNOc1Byb3AoY3VyLCBuYW1lLCBucyk7CisgICAgICAgIGlmKHJlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICB9CisKKyAgICAgICAgY3VyID0gY3VyLT5wYXJlbnQ7CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKKy8qKgorICogeG1sQzE0TkZpeHVwQmFzZUF0dHI6CisgKgorICogRml4ZXMgdXAgdGhlIHhtbDpiYXNlIGF0dHJpYnV0ZQorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgYXR0cmlidXRlIG9yIE5VTEwKKyAqLworc3RhdGljIHhtbEF0dHJQdHIKK3htbEMxNE5GaXh1cEJhc2VBdHRyKHhtbEMxNE5DdHhQdHIgY3R4LCB4bWxBdHRyUHRyIHhtbF9iYXNlX2F0dHIpCit7ICAgIAorICAgIHhtbENoYXIgKiByZXMgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICB4bWxDaGFyICogdG1wX3N0cjsKKyAgICB4bWxDaGFyICogdG1wX3N0cjI7CisgICAgaW50IHRtcF9zdHJfbGVuOworCisgICAgaWYgKChjdHggPT0gTlVMTCkgfHwgKHhtbF9iYXNlX2F0dHIgPT0gTlVMTCkgfHwgKHhtbF9iYXNlX2F0dHItPnBhcmVudCA9PSBOVUxMKSkgeworICAgICAgICB4bWxDMTRORXJyUGFyYW0oInByb2Nlc3NpbmcgeG1sOmJhc2UgYXR0cmlidXRlIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyogc3RhcnQgZnJvbSBjdXJyZW50IHZhbHVlICovCisgICAgcmVzID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoY3R4LT5kb2MsIHhtbF9iYXNlX2F0dHItPmNoaWxkcmVuLCAxKTsKKyAgICBpZihyZXMgPT0gTlVMTCkgeworICAgICAgICB4bWxDMTRORXJySW50ZXJuYWwoInByb2Nlc3NpbmcgeG1sOmJhc2UgYXR0cmlidXRlIC0gY2FuJ3QgZ2V0IGF0dHIgdmFsdWUiKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICAvKiBnbyB1cCB0aGUgc3RhY2sgdW50aWwgd2UgZmluZCBhIG5vZGUgdGhhdCB3ZSByZW5kZXJlZCBhbHJlYWR5ICovCisgICAgY3VyID0geG1sX2Jhc2VfYXR0ci0+cGFyZW50LT5wYXJlbnQ7CisgICAgd2hpbGUoKGN1ciAhPSBOVUxMKSAmJiAoIXhtbEMxNE5Jc1Zpc2libGUoY3R4LCBjdXIsIGN1ci0+cGFyZW50KSkpIHsKKyAgICAgICAgYXR0ciA9IHhtbEhhc05zUHJvcChjdXIsIEJBRF9DQVNUICJiYXNlIiwgWE1MX1hNTF9OQU1FU1BBQ0UpOworICAgICAgICBpZihhdHRyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qIGdldCBhdHRyIHZhbHVlICovCisgICAgICAgICAgICB0bXBfc3RyID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoY3R4LT5kb2MsIGF0dHItPmNoaWxkcmVuLCAxKTsKKyAgICAgICAgICAgIGlmKHRtcF9zdHIgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbEZyZWUocmVzKTsKKworICAgICAgICAgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgicHJvY2Vzc2luZyB4bWw6YmFzZSBhdHRyaWJ1dGUgLSBjYW4ndCBnZXQgYXR0ciB2YWx1ZSIpOworICAgICAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgICAgICB9IAorCisgICAgICAgICAgICAvKiB3ZSBuZWVkIHRvIGFkZCAnLycgaWYgb3VyIGN1cnJlbnQgYmFzZSB1cmkgZW5kcyB3aXRoICcuLicgb3IgJy4nIAorICAgICAgICAgICAgdG8gZW5zdXJlIHRoYXQgd2UgYXJlIGZvcmNlZCB0byBnbyAidXAiIGFsbCB0aGUgdGltZSAqLworICAgICAgICAgICAgdG1wX3N0cl9sZW4gPSB4bWxTdHJsZW4odG1wX3N0cik7CisgICAgICAgICAgICBpZih0bXBfc3RyX2xlbiA+IDEgJiYgdG1wX3N0clt0bXBfc3RyX2xlbiAtIDJdID09ICcuJykgeworICAgICAgICAgICAgICAgIHRtcF9zdHIyID0geG1sU3RyY2F0KHRtcF9zdHIsIEJBRF9DQVNUICIvIik7CisgICAgICAgICAgICAgICAgaWYodG1wX3N0cjIgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHRtcF9zdHIpOworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJlcyk7CisKKyAgICAgICAgICAgICAgICAgICAgeG1sQzE0TkVyckludGVybmFsKCJwcm9jZXNzaW5nIHhtbDpiYXNlIGF0dHJpYnV0ZSAtIGNhbid0IG1vZGlmeSB1cmkiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0bXBfc3RyID0gdG1wX3N0cjI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGJ1aWxkIHVyaSAqLworICAgICAgICAgICAgdG1wX3N0cjIgPSB4bWxCdWlsZFVSSShyZXMsIHRtcF9zdHIpOyAKKyAgICAgICAgICAgIGlmKHRtcF9zdHIyID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxGcmVlKHRtcF9zdHIpOworICAgICAgICAgICAgICAgIHhtbEZyZWUocmVzKTsKKworICAgICAgICAgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgicHJvY2Vzc2luZyB4bWw6YmFzZSBhdHRyaWJ1dGUgLSBjYW4ndCBjb25zdHJ1Y3QgdXJpIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogY2xlYW51cCBhbmQgc2V0IHRoZSBuZXcgcmVzICovCisgICAgICAgICAgICB4bWxGcmVlKHRtcF9zdHIpOworICAgICAgICAgICAgeG1sRnJlZShyZXMpOworICAgICAgICAgICAgcmVzID0gdG1wX3N0cjI7CisgICAgICAgIH0KKworICAgICAgICAvKiBuZXh0ICovCisgICAgICAgIGN1ciA9IGN1ci0+cGFyZW50OworICAgIH0KKworICAgIC8qIGNoZWNrIGlmIHJlc3VsdCB1cmkgaXMgZW1wdHkgb3Igbm90ICovCisgICAgaWYoKHJlcyA9PSBOVUxMKSB8fCB4bWxTdHJFcXVhbChyZXMsIEJBRF9DQVNUICIiKSkgeworICAgICAgICB4bWxGcmVlKHJlcyk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyogY3JlYXRlIGFuZCByZXR1cm4gdGhlIG5ldyBhdHRyaWJ1dGUgbm9kZSAqLworICAgIGF0dHIgPSB4bWxOZXdOc1Byb3AoTlVMTCwgeG1sX2Jhc2VfYXR0ci0+bnMsIEJBRF9DQVNUICJiYXNlIiwgcmVzKTsKKyAgICBpZihhdHRyID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShyZXMpOworCisgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgicHJvY2Vzc2luZyB4bWw6YmFzZSBhdHRyaWJ1dGUgLSBjYW4ndCBjb25zdHJ1Y3QgYXR0cmlidXRlIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorIAorICAgIC8qIGRvbmUgKi8KKyAgICB4bWxGcmVlKHJlcyk7CisgICAgcmV0dXJuIChhdHRyKTsKK30KKworLyoqCisgKiB4bWxDMTROUHJvY2Vzc0F0dHJzQXhpczoKKyAqIEBjdHg6IAkJdGhlIEMxNE4gY29udGV4dAorICogQGN1cjoJCXRoZSBjdXJyZW50IG5vZGUKKyAqIEBwYXJlbnRfdmlzaWJsZToJdGhlIHZpc2liaWxpdHkgb2YgcGFyZW50IG5vZGUKKyAqIEBhbGxfcGFyZW50c192aXNpYmxlOiB0aGUgdmlzaWJpbGl0eSBvZiBhbGwgcGFyZW50IG5vZGVzCisgKgorICogUHJpbnRzIG91dCBjYW5vbmljYWwgYXR0cmlidXRlIGF4aXMgb2YgdGhlIGN1cnJlbnQgbm9kZSB0byB0aGUKKyAqIGJ1ZmZlciBmcm9tIEMxNE4gY29udGV4dCBhcyBmb2xsb3dzIAorICoKKyAqIENhbm9uaWNhbCBYTUwgdiAxLjAgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuKQorICoKKyAqIEF0dHJpYnV0ZSBBeGlzIAorICogSW4gbGV4aWNvZ3JhcGhpYyBvcmRlciAoYXNjZW5kaW5nKSwgcHJvY2VzcyBlYWNoIG5vZGUgdGhhdCAKKyAqIGlzIGluIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlIGF4aXMgYW5kIGluIHRoZSBub2RlLXNldC4KKyAqIAorICogVGhlIHByb2Nlc3Npbmcgb2YgYW4gZWxlbWVudCBub2RlIEUgTVVTVCBiZSBtb2RpZmllZCBzbGlnaHRseSAKKyAqIHdoZW4gYW4gWFBhdGggbm9kZS1zZXQgaXMgZ2l2ZW4gYXMgaW5wdXQgYW5kIHRoZSBlbGVtZW50J3MgCisgKiBwYXJlbnQgaXMgb21pdHRlZCBmcm9tIHRoZSBub2RlLXNldC4KKyAqCisgKgorICogRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uIHYgMS4wIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pCisgKgorICogQ2Fub25pY2FsIFhNTCBhcHBsaWVkIHRvIGEgZG9jdW1lbnQgc3Vic2V0IHJlcXVpcmVzIHRoZSBzZWFyY2ggb2YgdGhlIAorICogYW5jZXN0b3Igbm9kZXMgb2YgZWFjaCBvcnBoYW4gZWxlbWVudCBub2RlIGZvciBhdHRyaWJ1dGVzIGluIHRoZSB4bWwgCisgKiBuYW1lc3BhY2UsIHN1Y2ggYXMgeG1sOmxhbmcgYW5kIHhtbDpzcGFjZS4gVGhlc2UgYXJlIGNvcGllZCBpbnRvIHRoZSAKKyAqIGVsZW1lbnQgbm9kZSBleGNlcHQgaWYgYSBkZWNsYXJhdGlvbiBvZiB0aGUgc2FtZSBhdHRyaWJ1dGUgaXMgYWxyZWFkeSAKKyAqIGluIHRoZSBhdHRyaWJ1dGUgYXhpcyBvZiB0aGUgZWxlbWVudCAod2hldGhlciBvciBub3QgaXQgaXMgaW5jbHVkZWQgaW4gCisgKiB0aGUgZG9jdW1lbnQgc3Vic2V0KS4gVGhpcyBzZWFyY2ggYW5kIGNvcHlpbmcgYXJlIG9taXR0ZWQgZnJvbSB0aGUgCisgKiBFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24gbWV0aG9kLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIC0xIG9uIGZhaWwuCisgKi8KK3N0YXRpYyBpbnQKK3htbEMxNE5Qcm9jZXNzQXR0cnNBeGlzKHhtbEMxNE5DdHhQdHIgY3R4LCB4bWxOb2RlUHRyIGN1ciwgaW50IHBhcmVudF92aXNpYmxlKQoreworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICB4bWxMaXN0UHRyIGxpc3Q7ICAgIAorICAgIHhtbEF0dHJQdHIgYXR0cnNfdG9fZGVsZXRlID0gTlVMTDsKKyAgICAKKyAgICAvKiBzcGVjaWFsIHByb2Nlc3NpbmcgZm9yIDEuMSBzcGVjICovCisgICAgeG1sQXR0clB0ciB4bWxfYmFzZV9hdHRyID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIHhtbF9sYW5nX2F0dHIgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgeG1sX3NwYWNlX2F0dHIgPSBOVUxMOworCisgICAgaWYgKChjdHggPT0gTlVMTCkgfHwgKGN1ciA9PSBOVUxMKSB8fCAoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgIHhtbEMxNE5FcnJQYXJhbSgicHJvY2Vzc2luZyBhdHRyaWJ1dGVzIGF4aXMiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDcmVhdGUgYSBzb3J0ZWQgbGlzdCB0byBzdG9yZSBlbGVtZW50IGF0dHJpYnV0ZXMKKyAgICAgKi8KKyAgICBsaXN0ID0geG1sTGlzdENyZWF0ZShOVUxMLCAoeG1sTGlzdERhdGFDb21wYXJlKSB4bWxDMTROQXR0cnNDb21wYXJlKTsKKyAgICBpZiAobGlzdCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgiY3JlYXRpbmcgYXR0cmlidXRlcyBsaXN0Iik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKworICAgIHN3aXRjaChjdHgtPm1vZGUpIHsKKyAgICBjYXNlIFhNTF9DMTROXzFfMDoKKyAgICAgICAgLyogVGhlIHByb2Nlc3Npbmcgb2YgYW4gZWxlbWVudCBub2RlIEUgTVVTVCBiZSBtb2RpZmllZCBzbGlnaHRseSB3aGVuIGFuIFhQYXRoIG5vZGUtc2V0IGlzIAorICAgICAgICAgKiBnaXZlbiBhcyBpbnB1dCBhbmQgdGhlIGVsZW1lbnQncyBwYXJlbnQgaXMgb21pdHRlZCBmcm9tIHRoZSBub2RlLXNldC4gVGhlIG1ldGhvZCBmb3IgcHJvY2Vzc2luZyAKKyAgICAgICAgICogdGhlIGF0dHJpYnV0ZSBheGlzIG9mIGFuIGVsZW1lbnQgRSBpbiB0aGUgbm9kZS1zZXQgaXMgZW5oYW5jZWQuIEFsbCBlbGVtZW50IG5vZGVzIGFsb25nIEUncyAKKyAgICAgICAgICogYW5jZXN0b3IgYXhpcyBhcmUgZXhhbWluZWQgZm9yIG5lYXJlc3Qgb2NjdXJyZW5jZXMgb2YgYXR0cmlidXRlcyBpbiB0aGUgeG1sIG5hbWVzcGFjZSwgc3VjaCAKKyAgICAgICAgICogYXMgeG1sOmxhbmcgYW5kIHhtbDpzcGFjZSAod2hldGhlciBvciBub3QgdGhleSBhcmUgaW4gdGhlIG5vZGUtc2V0KS4gRnJvbSB0aGlzIGxpc3Qgb2YgYXR0cmlidXRlcywgCisgICAgICAgICAqIHJlbW92ZSBhbnkgdGhhdCBhcmUgaW4gRSdzIGF0dHJpYnV0ZSBheGlzICh3aGV0aGVyIG9yIG5vdCB0aGV5IGFyZSBpbiB0aGUgbm9kZS1zZXQpLiBUaGVuLCAKKyAgICAgICAgICogbGV4aWNvZ3JhcGhpY2FsbHkgbWVyZ2UgdGhpcyBhdHRyaWJ1dGUgbGlzdCB3aXRoIHRoZSBub2RlcyBvZiBFJ3MgYXR0cmlidXRlIGF4aXMgdGhhdCBhcmUgaW4gCisgICAgICAgICAqIHRoZSBub2RlLXNldC4gVGhlIHJlc3VsdCBvZiB2aXNpdGluZyB0aGUgYXR0cmlidXRlIGF4aXMgaXMgY29tcHV0ZWQgYnkgcHJvY2Vzc2luZyB0aGUgYXR0cmlidXRlIAorICAgICAgICAgKiBub2RlcyBpbiB0aGlzIG1lcmdlZCBhdHRyaWJ1dGUgbGlzdC4gCisgICAgICAgICAqLworICAgIAorICAgICAgICAvKiAKKyAgICAgICAgICogQWRkIGFsbCB2aXNpYmxlIGF0dHJpYnV0ZXMgZnJvbSBjdXJyZW50IG5vZGUuIAorICAgICAgICAgKi8KKyAgICAgICAgYXR0ciA9IGN1ci0+cHJvcGVydGllczsKKyAgICAgICAgd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworICAgICAgICAgICAgLyogY2hlY2sgdGhhdCBhdHRyaWJ1dGUgaXMgdmlzaWJsZSAqLworICAgICAgICAgICAgaWYgKHhtbEMxNE5Jc1Zpc2libGUoY3R4LCBhdHRyLCBjdXIpKSB7CisgICAgICAgICAgICAgICAgeG1sTGlzdEluc2VydChsaXN0LCBhdHRyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF0dHIgPSBhdHRyLT5uZXh0OworICAgICAgICB9CisKKyAgICAgICAgLyogCisgICAgICAgICAqIEhhbmRsZSB4bWwgYXR0cmlidXRlcworICAgICAgICAgKi8KKyAgICAgICAgaWYgKHBhcmVudF92aXNpYmxlICYmIChjdXItPnBhcmVudCAhPSBOVUxMKSAmJiAKKyAgICAgICAgICAgICgheG1sQzE0TklzVmlzaWJsZShjdHgsIGN1ci0+cGFyZW50LCBjdXItPnBhcmVudC0+cGFyZW50KSkpIAorICAgICAgICB7CisgICAgICAgICAgICB4bWxOb2RlUHRyIHRtcDsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIElmIFhQYXRoIG5vZGUtc2V0IGlzIG5vdCBzcGVjaWZpZWQgdGhlbiB0aGUgcGFyZW50IGlzIGFsd2F5cyAKKyAgICAgICAgICAgICAqIHZpc2libGUhCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRtcCA9IGN1ci0+cGFyZW50OworICAgICAgICAgICAgd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgYXR0ciA9IHRtcC0+cHJvcGVydGllczsKKyAgICAgICAgICAgICAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh4bWxDMTROSXNYbWxBdHRyKGF0dHIpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4bWxMaXN0U2VhcmNoKGxpc3QsIGF0dHIpID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxMaXN0SW5zZXJ0KGxpc3QsIGF0dHIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGF0dHIgPSBhdHRyLT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0bXAgPSB0bXAtPnBhcmVudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIGRvbmUgKi8KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYTUxfQzE0Tl9FWENMVVNJVkVfMV8wOgorICAgICAgICAvKiBhdHRyaWJ1dGVzIGluIHRoZSBYTUwgbmFtZXNwYWNlLCBzdWNoIGFzIHhtbDpsYW5nIGFuZCB4bWw6c3BhY2UgCisgICAgICAgICAqIGFyZSBub3QgaW1wb3J0ZWQgaW50byBvcnBoYW4gbm9kZXMgb2YgdGhlIGRvY3VtZW50IHN1YnNldCAKKyAgICAgICAgICovCisKKyAgICAgICAgLyogCisgICAgICAgICAqIEFkZCBhbGwgdmlzaWJsZSBhdHRyaWJ1dGVzIGZyb20gY3VycmVudCBub2RlLiAKKyAgICAgICAgICovCisgICAgICAgIGF0dHIgPSBjdXItPnByb3BlcnRpZXM7CisgICAgICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qIGNoZWNrIHRoYXQgYXR0cmlidXRlIGlzIHZpc2libGUgKi8KKyAgICAgICAgICAgIGlmICh4bWxDMTROSXNWaXNpYmxlKGN0eCwgYXR0ciwgY3VyKSkgeworICAgICAgICAgICAgICAgIHhtbExpc3RJbnNlcnQobGlzdCwgYXR0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhdHRyID0gYXR0ci0+bmV4dDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGRvIG5vdGhpbmcgc3BlY2lhbCBmb3IgeG1sIGF0dHJpYnV0ZXMgKi8KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYTUxfQzE0Tl8xXzE6CisgICAgICAgIC8qIFRoZSBwcm9jZXNzaW5nIG9mIGFuIGVsZW1lbnQgbm9kZSBFIE1VU1QgYmUgbW9kaWZpZWQgc2xpZ2h0bHkgd2hlbiBhbiBYUGF0aCBub2RlLXNldCBpcyAKKyAgICAgICAgICogZ2l2ZW4gYXMgaW5wdXQgYW5kIHNvbWUgb2YgdGhlIGVsZW1lbnQncyBhbmNlc3RvcnMgYXJlIG9taXR0ZWQgZnJvbSB0aGUgbm9kZS1zZXQuIAorICAgICAgICAgKgorICAgICAgICAgKiBTaW1wbGUgaW5oZXJpdGFibGUgYXR0cmlidXRlcyBhcmUgYXR0cmlidXRlcyB0aGF0IGhhdmUgYSB2YWx1ZSB0aGF0IHJlcXVpcmVzIGF0IG1vc3QgYSBzaW1wbGUgCisgICAgICAgICAqIHJlZGVjbGFyYXRpb24uIFRoaXMgcmVkZWNsYXJhdGlvbiBpcyBkb25lIGJ5IHN1cHBseWluZyBhIG5ldyB2YWx1ZSBpbiB0aGUgY2hpbGQgYXhpcy4gVGhlIAorICAgICAgICAgKiByZWRlY2xhcmF0aW9uIG9mIGEgc2ltcGxlIGluaGVyaXRhYmxlIGF0dHJpYnV0ZSBBIGNvbnRhaW5lZCBpbiBvbmUgb2YgRSdzIGFuY2VzdG9ycyBpcyBkb25lIAorICAgICAgICAgKiBieSBzdXBwbHlpbmcgYSB2YWx1ZSB0byBhbiBhdHRyaWJ1dGUgQWUgaW5zaWRlIEUgd2l0aCB0aGUgc2FtZSBuYW1lLiBTaW1wbGUgaW5oZXJpdGFibGUgYXR0cmlidXRlcyAKKyAgICAgICAgICogYXJlIHhtbDpsYW5nIGFuZCB4bWw6c3BhY2UuCisgICAgICAgICAqIAorICAgICAgICAgKiBUaGUgbWV0aG9kIGZvciBwcm9jZXNzaW5nIHRoZSBhdHRyaWJ1dGUgYXhpcyBvZiBhbiBlbGVtZW50IEUgaW4gdGhlIG5vZGUtc2V0IGlzIGhlbmNlIGVuaGFuY2VkLiAKKyAgICAgICAgICogQWxsIGVsZW1lbnQgbm9kZXMgYWxvbmcgRSdzIGFuY2VzdG9yIGF4aXMgYXJlIGV4YW1pbmVkIGZvciB0aGUgbmVhcmVzdCBvY2N1cnJlbmNlcyBvZiBzaW1wbGUgCisgICAgICAgICAqIGluaGVyaXRhYmxlIGF0dHJpYnV0ZXMgaW4gdGhlIHhtbCBuYW1lc3BhY2UsIHN1Y2ggYXMgeG1sOmxhbmcgYW5kIHhtbDpzcGFjZSAod2hldGhlciBvciBub3QgdGhleSAKKyAgICAgICAgICogYXJlIGluIHRoZSBub2RlLXNldCkuIEZyb20gdGhpcyBsaXN0IG9mIGF0dHJpYnV0ZXMsIGFueSBzaW1wbGUgaW5oZXJpdGFibGUgYXR0cmlidXRlcyB0aGF0IGFyZSAKKyAgICAgICAgICogYWxyZWFkeSBpbiBFJ3MgYXR0cmlidXRlIGF4aXMgKHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlIGluIHRoZSBub2RlLXNldCkgYXJlIHJlbW92ZWQuIFRoZW4sIAorICAgICAgICAgKiBsZXhpY29ncmFwaGljYWxseSBtZXJnZSB0aGlzIGF0dHJpYnV0ZSBsaXN0IHdpdGggdGhlIG5vZGVzIG9mIEUncyBhdHRyaWJ1dGUgYXhpcyB0aGF0IGFyZSBpbiAKKyAgICAgICAgICogdGhlIG5vZGUtc2V0LiBUaGUgcmVzdWx0IG9mIHZpc2l0aW5nIHRoZSBhdHRyaWJ1dGUgYXhpcyBpcyBjb21wdXRlZCBieSBwcm9jZXNzaW5nIHRoZSBhdHRyaWJ1dGUgCisgICAgICAgICAqIG5vZGVzIGluIHRoaXMgbWVyZ2VkIGF0dHJpYnV0ZSBsaXN0LgorICAgICAgICAgKiAKKyAgICAgICAgICogVGhlIHhtbDppZCBhdHRyaWJ1dGUgaXMgbm90IGEgc2ltcGxlIGluaGVyaXRhYmxlIGF0dHJpYnV0ZSBhbmQgbm8gcHJvY2Vzc2luZyBvZiB0aGVzZSBhdHRyaWJ1dGVzIGlzIAorICAgICAgICAgKiBwZXJmb3JtZWQuCisgICAgICAgICAqIAorICAgICAgICAgKiBUaGUgeG1sOmJhc2UgYXR0cmlidXRlIGlzIG5vdCBhIHNpbXBsZSBpbmhlcml0YWJsZSBhdHRyaWJ1dGUgYW5kIHJlcXVpcmVzIHNwZWNpYWwgcHJvY2Vzc2luZyBiZXlvbmQgCisgICAgICAgICAqIGEgc2ltcGxlIHJlZGVjbGFyYXRpb24uCisgICAgICAgICAqIAorICAgICAgICAgKiBBdHRyaWJ1dGVzIGluIHRoZSBYTUwgbmFtZXNwYWNlIG90aGVyIHRoYW4geG1sOmJhc2UsIHhtbDppZCwgeG1sOmxhbmcsIGFuZCB4bWw6c3BhY2UgTVVTVCBiZSBwcm9jZXNzZWQgCisgICAgICAgICAqIGFzIG9yZGluYXJ5IGF0dHJpYnV0ZXMuCisgICAgICAgICAqLworCisgICAgICAgIC8qIAorICAgICAgICAgKiBBZGQgYWxsIHZpc2libGUgYXR0cmlidXRlcyBmcm9tIGN1cnJlbnQgbm9kZS4gCisgICAgICAgICAqLworICAgICAgICBhdHRyID0gY3VyLT5wcm9wZXJ0aWVzOworICAgICAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisgICAgICAgICAgICAvKiBzcGVjaWFsIHByb2Nlc3NpbmcgZm9yIFhNTCBhdHRyaWJ1dGUga2lrcyBpbiBvbmx5IHdoZW4gd2UgaGF2ZSBpbnZpc2libGUgcGFyZW50cyAqLworICAgICAgICAgICAgaWYgKCghcGFyZW50X3Zpc2libGUpIHx8ICh4bWxDMTROSXNYbWxBdHRyKGF0dHIpID09IDApKSB7CisgICAgICAgICAgICAgICAgLyogY2hlY2sgdGhhdCBhdHRyaWJ1dGUgaXMgdmlzaWJsZSAqLworICAgICAgICAgICAgICAgIGlmICh4bWxDMTROSXNWaXNpYmxlKGN0eCwgYXR0ciwgY3VyKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxMaXN0SW5zZXJ0KGxpc3QsIGF0dHIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IG1hdGNoZWQgPSAwOworCisgICAgICAgICAgICAgICAgLyogY2hlY2sgZm9yIHNpbXBsZSBpbmhlcml0YW5jZSBhdHRyaWJ1dGVzICovCisgICAgICAgICAgICAgICAgaWYoKCFtYXRjaGVkKSAmJiAoeG1sX2xhbmdfYXR0ciA9PSBOVUxMKSAmJiB4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibGFuZyIpKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbF9sYW5nX2F0dHIgPSBhdHRyOworICAgICAgICAgICAgICAgICAgICBtYXRjaGVkID0gMTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGlmKCghbWF0Y2hlZCkgJiYgKHhtbF9zcGFjZV9hdHRyID09IE5VTEwpICYmIHhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJzcGFjZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbF9zcGFjZV9hdHRyID0gYXR0cjsKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZCA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogY2hlY2sgZm9yIGJhc2UgYXR0ciAqLworICAgICAgICAgICAgICAgIGlmKCghbWF0Y2hlZCkgJiYgKHhtbF9iYXNlX2F0dHIgPT0gTlVMTCkgJiYgeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImJhc2UiKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxfYmFzZV9hdHRyID0gYXR0cjsKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZCA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogb3RoZXJ3aXNlLCBpdCBpcyBhIG5vcm1hbCBhdHRyaWJ1dGUsIHNvIGp1c3QgY2hlY2sgaWYgaXQgaXMgdmlzaWJsZSAqLworICAgICAgICAgICAgICAgIGlmKCghbWF0Y2hlZCkgJiYgeG1sQzE0TklzVmlzaWJsZShjdHgsIGF0dHIsIGN1cikpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sTGlzdEluc2VydChsaXN0LCBhdHRyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgICAgIC8qIG1vdmUgdG8gdGhlIG5leHQgb25lICovCisgICAgICAgICAgICBhdHRyID0gYXR0ci0+bmV4dDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIC8qIHNwZWNpYWwgcHJvY2Vzc2luZyBmb3IgWE1MIGF0dHJpYnV0ZSBraWtzIGluIG9ubHkgd2hlbiB3ZSBoYXZlIGludmlzaWJsZSBwYXJlbnRzICovCisgICAgICAgIGlmICgocGFyZW50X3Zpc2libGUpKSB7CisKKyAgICAgICAgICAgIC8qIHNpbXBsZSBpbmhlcml0YW5jZSBhdHRyaWJ1dGVzIC0gY29weSAqLworICAgICAgICAgICAgaWYoeG1sX2xhbmdfYXR0ciA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sX2xhbmdfYXR0ciA9IHhtbEMxNE5GaW5kSGlkZGVuUGFyZW50QXR0cihjdHgsIGN1ci0+cGFyZW50LCBCQURfQ0FTVCAibGFuZyIsIFhNTF9YTUxfTkFNRVNQQUNFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHhtbF9sYW5nX2F0dHIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbExpc3RJbnNlcnQobGlzdCwgeG1sX2xhbmdfYXR0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZih4bWxfc3BhY2VfYXR0ciA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sX3NwYWNlX2F0dHIgPSB4bWxDMTRORmluZEhpZGRlblBhcmVudEF0dHIoY3R4LCBjdXItPnBhcmVudCwgQkFEX0NBU1QgInNwYWNlIiwgWE1MX1hNTF9OQU1FU1BBQ0UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoeG1sX3NwYWNlX2F0dHIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbExpc3RJbnNlcnQobGlzdCwgeG1sX3NwYWNlX2F0dHIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBiYXNlIHVyaSBhdHRyaWJ1dGUgLSBmaXggdXAgKi8KKyAgICAgICAgICAgIGlmKHhtbF9iYXNlX2F0dHIgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIC8qIGlmIHdlIGRvbid0IGhhdmUgYmFzZSB1cmkgYXR0cmlidXRlLCBjaGVjayBpZiB3ZSBoYXZlIGEgImhpZGRlbiIgb25lIGFib3ZlICovCisgICAgICAgICAgICAgICAgeG1sX2Jhc2VfYXR0ciA9IHhtbEMxNE5GaW5kSGlkZGVuUGFyZW50QXR0cihjdHgsIGN1ci0+cGFyZW50LCBCQURfQ0FTVCAiYmFzZSIsIFhNTF9YTUxfTkFNRVNQQUNFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHhtbF9iYXNlX2F0dHIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbF9iYXNlX2F0dHIgPSB4bWxDMTRORml4dXBCYXNlQXR0cihjdHgsIHhtbF9iYXNlX2F0dHIpOworICAgICAgICAgICAgICAgIGlmKHhtbF9iYXNlX2F0dHIgIT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHhtbExpc3RJbnNlcnQobGlzdCwgeG1sX2Jhc2VfYXR0cik7CisKKyAgICAgICAgICAgICAgICAgICAgLyogbm90ZSB0aGF0IHdlIE1VU1QgZGVsZXRlIHJldHVybmVkIGF0dHIgbm9kZSBvdXJzZWx2ZXMhICovCisgICAgICAgICAgICAgICAgICAgIHhtbF9iYXNlX2F0dHItPm5leHQgPSBhdHRyc190b19kZWxldGU7CisgICAgICAgICAgICAgICAgICAgIGF0dHJzX3RvX2RlbGV0ZSA9IHhtbF9iYXNlX2F0dHI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogZG9uZSAqLworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvKiAKKyAgICAgKiBwcmludCBvdXQgYWxsIGVsZW1lbnRzIGZyb20gbGlzdCAKKyAgICAgKi8KKyAgICB4bWxMaXN0V2FsayhsaXN0LCAoeG1sTGlzdFdhbGtlcikgeG1sQzE0TlByaW50QXR0cnMsIChjb25zdCB2b2lkICopIGN0eCk7CisKKyAgICAvKiAKKyAgICAgKiBDbGVhbnVwCisgICAgICovCisgICAgeG1sRnJlZVByb3BMaXN0KGF0dHJzX3RvX2RlbGV0ZSk7CisgICAgeG1sTGlzdERlbGV0ZShsaXN0KTsKKyAgICByZXR1cm4gKDApOworfQorCisvKiogCisgKiB4bWxDMTROQ2hlY2tGb3JSZWxhdGl2ZU5hbWVzcGFjZXM6CisgKiBAY3R4OgkJdGhlIEMxNE4gY29udGV4dAorICogQGN1cjoJCXRoZSBjdXJyZW50IGVsZW1lbnQgbm9kZQorICoKKyAqIENoZWNrcyB0aGF0IGN1cnJlbnQgZWxlbWVudCBub2RlIGhhcyBubyByZWxhdGl2ZSBuYW1lc3BhY2VzIGRlZmluZWQKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIG5vZGUgaGFzIG5vIHJlbGF0aXZlIG5hbWVzcGFjZXMgb3IgLTEgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxDMTROQ2hlY2tGb3JSZWxhdGl2ZU5hbWVzcGFjZXMoeG1sQzE0TkN0eFB0ciBjdHgsIHhtbE5vZGVQdHIgY3VyKQoreworICAgIHhtbE5zUHRyIG5zOworCisgICAgaWYgKChjdHggPT0gTlVMTCkgfHwgKGN1ciA9PSBOVUxMKSB8fCAoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgIHhtbEMxNE5FcnJQYXJhbSgiY2hlY2tpbmcgZm9yIHJlbGF0aXZlIG5hbWVzcGFjZXMiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgbnMgPSBjdXItPm5zRGVmOworICAgIHdoaWxlIChucyAhPSBOVUxMKSB7CisgICAgICAgIGlmICh4bWxTdHJsZW4obnMtPmhyZWYpID4gMCkgeworICAgICAgICAgICAgeG1sVVJJUHRyIHVyaTsKKworICAgICAgICAgICAgdXJpID0geG1sUGFyc2VVUkkoKGNvbnN0IGNoYXIgKikgbnMtPmhyZWYpOworICAgICAgICAgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sQzE0TkVyckludGVybmFsKCJwYXJzaW5nIG5hbWVzcGFjZSB1cmkiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKikgdXJpLT5zY2hlbWUpID09IDApIHsKKyAgICAgICAgICAgICAgICB4bWxDMTRORXJyUmVsYXRpdmVOYW1lc3BhY2UodXJpLT5zY2hlbWUpOworICAgICAgICAgICAgICAgIHhtbEZyZWVVUkkodXJpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoeG1sU3RyY2FzZWNtcCgoY29uc3QgeG1sQ2hhciAqKSB1cmktPnNjaGVtZSwgQkFEX0NBU1QgInVybiIpICE9IDApCisgICAgICAgICAgICAgICAgJiYgKHhtbFN0cmNhc2VjbXAoKGNvbnN0IHhtbENoYXIgKikgdXJpLT5zY2hlbWUsIEJBRF9DQVNUICJkYXYiKSAhPTApCisgICAgICAgICAgICAgICAgJiYgKHhtbFN0cmxlbigoY29uc3QgeG1sQ2hhciAqKSB1cmktPnNlcnZlcikgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICB4bWxDMTRORXJyUmVsYXRpdmVOYW1lc3BhY2UodXJpLT5zY2hlbWUpOworICAgICAgICAgICAgICAgIHhtbEZyZWVVUkkodXJpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhtbEZyZWVVUkkodXJpKTsKKyAgICAgICAgfQorICAgICAgICBucyA9IG5zLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbEMxNE5Qcm9jZXNzRWxlbWVudE5vZGU6CisgKiBAY3R4OiAJCXRoZSBwb2ludGVyIHRvIEMxNE4gY29udGV4dCBvYmplY3QKKyAqIEBjdXI6CQl0aGUgbm9kZSB0byBwcm9jZXNzCisgKiBAdmlzaWJsZTogICAgdGhpcyBub2RlIGlzIHZpc2libGUKKyAqIEBhbGxfcGFyZW50c192aXNpYmxlOiB3aGV0aGVyIGFsbCB0aGUgcGFyZW50cyBvZiB0aGlzIG5vZGUgYXJlIHZpc2libGUKKyAqICAJCQorICogQ2Fub25pY2FsIFhNTCB2IDEuMCAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4pCisgKgorICogRWxlbWVudCBOb2RlcworICogSWYgdGhlIGVsZW1lbnQgaXMgbm90IGluIHRoZSBub2RlLXNldCwgdGhlbiB0aGUgcmVzdWx0IGlzIG9idGFpbmVkIAorICogYnkgcHJvY2Vzc2luZyB0aGUgbmFtZXNwYWNlIGF4aXMsIHRoZW4gdGhlIGF0dHJpYnV0ZSBheGlzLCB0aGVuIAorICogcHJvY2Vzc2luZyB0aGUgY2hpbGQgbm9kZXMgb2YgdGhlIGVsZW1lbnQgdGhhdCBhcmUgaW4gdGhlIG5vZGUtc2V0IAorICogKGluIGRvY3VtZW50IG9yZGVyKS4gSWYgdGhlIGVsZW1lbnQgaXMgaW4gdGhlIG5vZGUtc2V0LCB0aGVuIHRoZSByZXN1bHQgCisgKiBpcyBhbiBvcGVuIGFuZ2xlIGJyYWNrZXQgKDwpLCB0aGUgZWxlbWVudCBRTmFtZSwgdGhlIHJlc3VsdCBvZiAKKyAqIHByb2Nlc3NpbmcgdGhlIG5hbWVzcGFjZSBheGlzLCB0aGUgcmVzdWx0IG9mIHByb2Nlc3NpbmcgdGhlIGF0dHJpYnV0ZSAKKyAqIGF4aXMsIGEgY2xvc2UgYW5nbGUgYnJhY2tldCAoPiksIHRoZSByZXN1bHQgb2YgcHJvY2Vzc2luZyB0aGUgY2hpbGQgCisgKiBub2RlcyBvZiB0aGUgZWxlbWVudCB0aGF0IGFyZSBpbiB0aGUgbm9kZS1zZXQgKGluIGRvY3VtZW50IG9yZGVyKSwgYW4gCisgKiBvcGVuIGFuZ2xlIGJyYWNrZXQsIGEgZm9yd2FyZCBzbGFzaCAoLyksIHRoZSBlbGVtZW50IFFOYW1lLCBhbmQgYSBjbG9zZSAKKyAqIGFuZ2xlIGJyYWNrZXQuCisgKgorICogUmV0dXJucyBub24tbmVnYXRpdmUgdmFsdWUgb24gc3VjY2VzcyBvciBuZWdhdGl2ZSB2YWx1ZSBvbiBmYWlsCisgKi8KK3N0YXRpYyBpbnQKK3htbEMxNE5Qcm9jZXNzRWxlbWVudE5vZGUoeG1sQzE0TkN0eFB0ciBjdHgsIHhtbE5vZGVQdHIgY3VyLCBpbnQgdmlzaWJsZSkKK3sKKyAgICBpbnQgcmV0OworICAgIHhtbEMxNE5WaXNpYmxlTnNTdGFjayBzdGF0ZTsKKyAgICBpbnQgcGFyZW50X2lzX2RvYyA9IDA7CisKKyAgICBpZiAoKGN0eCA9PSBOVUxMKSB8fCAoY3VyID09IE5VTEwpIHx8IChjdXItPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJwcm9jZXNzaW5nIGVsZW1lbnQgbm9kZSIpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICAvKiAKKyAgICAgKiBDaGVjayByZWxhdGl2ZSByZWxhdGl2ZSBuYW1lc3BhY2VzOgorICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiBYTUwgY2Fub25pY2FsaXphdGlvbiBNVVNUIHJlcG9ydCBhbiBvcGVyYXRpb24KKyAgICAgKiBmYWlsdXJlIG9uIGRvY3VtZW50cyBjb250YWluaW5nIHJlbGF0aXZlIG5hbWVzcGFjZSBVUklzLgorICAgICAqLworICAgIGlmICh4bWxDMTROQ2hlY2tGb3JSZWxhdGl2ZU5hbWVzcGFjZXMoY3R4LCBjdXIpIDwgMCkgeworICAgICAgICB4bWxDMTRORXJySW50ZXJuYWwoImNoZWNraW5nIGZvciByZWxhdGl2ZSBuYW1lc3BhY2VzIik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKworCisgICAgLyogCisgICAgICogU2F2ZSBuc19yZW5kZXJlZCBzdGFjayBwb3NpdGlvbgorICAgICAqLworICAgIG1lbXNldCgmc3RhdGUsIDAsIHNpemVvZihzdGF0ZSkpOworICAgIHhtbEMxNE5WaXNpYmxlTnNTdGFja1NhdmUoY3R4LT5uc19yZW5kZXJlZCwgJnN0YXRlKTsKKworICAgIGlmICh2aXNpYmxlKSB7CQorICAgICAgICBpZiAoY3R4LT5wYXJlbnRfaXNfZG9jKSB7CisJICAgIC8qIHNhdmUgdGhpcyBmbGFnIGludG8gdGhlIHN0YWNrICovCisJICAgIHBhcmVudF9pc19kb2MgPSBjdHgtPnBhcmVudF9pc19kb2M7CisJICAgIGN0eC0+cGFyZW50X2lzX2RvYyA9IDA7CisgICAgICAgICAgICBjdHgtPnBvcyA9IFhNTEMxNE5fSU5TSURFX0RPQ1VNRU5UX0VMRU1FTlQ7CisgICAgICAgIH0KKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsICI8Iik7CisKKyAgICAgICAgaWYgKChjdXItPm5zICE9IE5VTEwpICYmICh4bWxTdHJsZW4oY3VyLT5ucy0+cHJlZml4KSA+IDApKSB7CisgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIGN1ci0+bnMtPnByZWZpeCk7CisgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIjoiKTsKKyAgICAgICAgfQorICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgKGNvbnN0IGNoYXIgKikgY3VyLT5uYW1lKTsKKyAgICB9CisKKyAgICBpZiAoIXhtbEMxNE5Jc0V4Y2x1c2l2ZShjdHgpKSB7CisgICAgICAgIHJldCA9IHhtbEMxNE5Qcm9jZXNzTmFtZXNwYWNlc0F4aXMoY3R4LCBjdXIsIHZpc2libGUpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IHhtbEV4Y0MxNE5Qcm9jZXNzTmFtZXNwYWNlc0F4aXMoY3R4LCBjdXIsIHZpc2libGUpOworICAgIH0KKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICB4bWxDMTRORXJySW50ZXJuYWwoInByb2Nlc3NpbmcgbmFtZXNwYWNlcyBheGlzIik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICAvKiB0b2RvOiBzaG91bGRuJ3QgdGhpcyBnbyB0byAidmlzaWJsZSBvbmx5Ij8gKi8KKyAgICBpZih2aXNpYmxlKSB7CisJeG1sQzE0TlZpc2libGVOc1N0YWNrU2hpZnQoY3R4LT5uc19yZW5kZXJlZCk7CisgICAgfQorICAgIAorICAgIHJldCA9IHhtbEMxNE5Qcm9jZXNzQXR0cnNBeGlzKGN0eCwgY3VyLCB2aXNpYmxlKTsKKyAgICBpZiAocmV0IDwgMCkgeworCXhtbEMxNE5FcnJJbnRlcm5hbCgicHJvY2Vzc2luZyBhdHRyaWJ1dGVzIGF4aXMiKTsKKyAgICAJcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgaWYgKHZpc2libGUpIHsgCisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiPiIpOworICAgIH0KKyAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IHhtbEMxNE5Qcm9jZXNzTm9kZUxpc3QoY3R4LCBjdXItPmNoaWxkcmVuKTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgicHJvY2Vzc2luZyBjaGlsZHJlbnMgbGlzdCIpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsICI8LyIpOworICAgICAgICBpZiAoKGN1ci0+bnMgIT0gTlVMTCkgJiYgKHhtbFN0cmxlbihjdXItPm5zLT5wcmVmaXgpID4gMCkpIHsKKyAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgY3VyLT5ucy0+cHJlZml4KTsKKyAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiOiIpOworICAgICAgICB9CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAoY29uc3QgY2hhciAqKSBjdXItPm5hbWUpOworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIj4iKTsKKyAgICAgICAgaWYgKHBhcmVudF9pc19kb2MpIHsKKwkgICAgLyogcmVzdG9yZSB0aGlzIGZsYWcgZnJvbSB0aGUgc3RhY2sgZm9yIG5leHQgbm9kZSAqLworICAgICAgICAgICAgY3R4LT5wYXJlbnRfaXNfZG9jID0gcGFyZW50X2lzX2RvYzsKKwkgICAgY3R4LT5wb3MgPSBYTUxDMTROX0FGVEVSX0RPQ1VNRU5UX0VMRU1FTlQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiAKKyAgICAgKiBSZXN0b3JlIG5zX3JlbmRlcmVkIHN0YWNrIHBvc2l0aW9uCisgICAgICovCisgICAgeG1sQzE0TlZpc2libGVOc1N0YWNrUmVzdG9yZShjdHgtPm5zX3JlbmRlcmVkLCAmc3RhdGUpOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sQzE0TlByb2Nlc3NOb2RlOgorICogQGN0eDogCQl0aGUgcG9pbnRlciB0byBDMTROIGNvbnRleHQgb2JqZWN0CisgKiBAY3VyOgkJdGhlIG5vZGUgdG8gcHJvY2VzcworICogIAkJCisgKiBQcm9jZXNzZXMgdGhlIGdpdmVuIG5vZGUKKyAqCisgKiBSZXR1cm5zIG5vbi1uZWdhdGl2ZSB2YWx1ZSBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWwKKyAqLworc3RhdGljIGludAoreG1sQzE0TlByb2Nlc3NOb2RlKHhtbEMxNE5DdHhQdHIgY3R4LCB4bWxOb2RlUHRyIGN1cikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgdmlzaWJsZTsKKworICAgIGlmICgoY3R4ID09IE5VTEwpIHx8IChjdXIgPT0gTlVMTCkpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJwcm9jZXNzaW5nIG5vZGUiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgdmlzaWJsZSA9IHhtbEMxNE5Jc1Zpc2libGUoY3R4LCBjdXIsIGN1ci0+cGFyZW50KTsKKyAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSB4bWxDMTROUHJvY2Vzc0VsZW1lbnROb2RlKGN0eCwgY3VyLCB2aXNpYmxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUZXh0IE5vZGVzCisgICAgICAgICAgICAgKiB0aGUgc3RyaW5nIHZhbHVlLCBleGNlcHQgYWxsIGFtcGVyc2FuZHMgYXJlIHJlcGxhY2VkIAorICAgICAgICAgICAgICogYnkgJmFtcDssIGFsbCBvcGVuIGFuZ2xlIGJyYWNrZXRzICg8KSBhcmUgcmVwbGFjZWQgYnkgJmx0OywgYWxsIGNsb3NpbmcgCisgICAgICAgICAgICAgKiBhbmdsZSBicmFja2V0cyAoPikgYXJlIHJlcGxhY2VkIGJ5ICZndDssIGFuZCBhbGwgI3hEIGNoYXJhY3RlcnMgYXJlIAorICAgICAgICAgICAgICogcmVwbGFjZWQgYnkgJiN4RDsuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qIGNkYXRhIHNlY3Rpb25zIGFyZSBwcm9jZXNzZWQgYXMgdGV4dCBub2RlcyAqLworICAgICAgICAgICAgLyogdG9kbzogdmVyaWZ5IHRoYXQgY2RhdGEgc2VjdGlvbnMgYXJlIGluY2x1ZGVkIGluIFhQYXRoIG5vZGVzIHNldCAqLworICAgICAgICAgICAgaWYgKCh2aXNpYmxlKSAmJiAoY3VyLT5jb250ZW50ICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgeG1sQ2hhciAqYnVmZmVyOworCisgICAgICAgICAgICAgICAgYnVmZmVyID0geG1sQzExTk5vcm1hbGl6ZVRleHQoY3VyLT5jb250ZW50KTsKKyAgICAgICAgICAgICAgICBpZiAoYnVmZmVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB4bWxDMTRORXJySW50ZXJuYWwoIm5vcm1hbGl6aW5nIHRleHQgbm9kZSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKyAgICAgICAgICAgIC8qIAorICAgICAgICAgICAgICogUHJvY2Vzc2luZyBJbnN0cnVjdGlvbiAoUEkpIE5vZGVzLSAKKyAgICAgICAgICAgICAqIFRoZSBvcGVuaW5nIFBJIHN5bWJvbCAoPD8pLCB0aGUgUEkgdGFyZ2V0IG5hbWUgb2YgdGhlIG5vZGUsIAorICAgICAgICAgICAgICogYSBsZWFkaW5nIHNwYWNlIGFuZCB0aGUgc3RyaW5nIHZhbHVlIGlmIGl0IGlzIG5vdCBlbXB0eSwgYW5kIAorICAgICAgICAgICAgICogdGhlIGNsb3NpbmcgUEkgc3ltYm9sICg/PikuIElmIHRoZSBzdHJpbmcgdmFsdWUgaXMgZW1wdHksIAorICAgICAgICAgICAgICogdGhlbiB0aGUgbGVhZGluZyBzcGFjZSBpcyBub3QgYWRkZWQuIEFsc28sIGEgdHJhaWxpbmcgI3hBIGlzIAorICAgICAgICAgICAgICogcmVuZGVyZWQgYWZ0ZXIgdGhlIGNsb3NpbmcgUEkgc3ltYm9sIGZvciBQSSBjaGlsZHJlbiBvZiB0aGUgCisgICAgICAgICAgICAgKiByb290IG5vZGUgd2l0aCBhIGxlc3NlciBkb2N1bWVudCBvcmRlciB0aGFuIHRoZSBkb2N1bWVudCAKKyAgICAgICAgICAgICAqIGVsZW1lbnQsIGFuZCBhIGxlYWRpbmcgI3hBIGlzIHJlbmRlcmVkIGJlZm9yZSB0aGUgb3BlbmluZyBQSSAKKyAgICAgICAgICAgICAqIHN5bWJvbCBvZiBQSSBjaGlsZHJlbiBvZiB0aGUgcm9vdCBub2RlIHdpdGggYSBncmVhdGVyIGRvY3VtZW50IAorICAgICAgICAgICAgICogb3JkZXIgdGhhbiB0aGUgZG9jdW1lbnQgZWxlbWVudC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoY3R4LT5wb3MgPT0gWE1MQzE0Tl9BRlRFUl9ET0NVTUVOVF9FTEVNRU5UKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiXHgwQTw/Iik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsICI8PyIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIGN1ci0+bmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKChjdXItPmNvbnRlbnQgIT0gTlVMTCkgJiYgKCooY3VyLT5jb250ZW50KSAhPSAnXDAnKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICpidWZmZXI7CisKKyAgICAgICAgICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsICIgIik7CisKKyAgICAgICAgICAgICAgICAgICAgLyogdG9kbzogZG8gd2UgbmVlZCB0byBub3JtYWxpemUgcGk/ICovCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHhtbEMxMU5Ob3JtYWxpemVQSShjdXItPmNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoYnVmZmVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgibm9ybWFsaXppbmcgcGkgbm9kZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY3R4LT5wb3MgPT0gWE1MQzE0Tl9CRUZPUkVfRE9DVU1FTlRfRUxFTUVOVCkgeworICAgICAgICAgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIj8+XHgwQSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiPz4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIENvbW1lbnQgTm9kZXMKKyAgICAgICAgICAgICAqIE5vdGhpbmcgaWYgZ2VuZXJhdGluZyBjYW5vbmljYWwgWE1MIHdpdGhvdXQgIGNvbW1lbnRzLiBGb3IgCisgICAgICAgICAgICAgKiBjYW5vbmljYWwgWE1MIHdpdGggY29tbWVudHMsIGdlbmVyYXRlIHRoZSBvcGVuaW5nIGNvbW1lbnQgCisgICAgICAgICAgICAgKiBzeW1ib2wgKDwhLS0pLCB0aGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBub2RlLCBhbmQgdGhlIAorICAgICAgICAgICAgICogY2xvc2luZyBjb21tZW50IHN5bWJvbCAoLS0+KS4gQWxzbywgYSB0cmFpbGluZyAjeEEgaXMgcmVuZGVyZWQgCisgICAgICAgICAgICAgKiBhZnRlciB0aGUgY2xvc2luZyBjb21tZW50IHN5bWJvbCBmb3IgY29tbWVudCBjaGlsZHJlbiBvZiB0aGUgCisgICAgICAgICAgICAgKiByb290IG5vZGUgd2l0aCBhIGxlc3NlciBkb2N1bWVudCBvcmRlciB0aGFuIHRoZSBkb2N1bWVudCAKKyAgICAgICAgICAgICAqIGVsZW1lbnQsIGFuZCBhIGxlYWRpbmcgI3hBIGlzIHJlbmRlcmVkIGJlZm9yZSB0aGUgb3BlbmluZyAKKyAgICAgICAgICAgICAqIGNvbW1lbnQgc3ltYm9sIG9mIGNvbW1lbnQgY2hpbGRyZW4gb2YgdGhlIHJvb3Qgbm9kZSB3aXRoIGEgCisgICAgICAgICAgICAgKiBncmVhdGVyIGRvY3VtZW50IG9yZGVyIHRoYW4gdGhlIGRvY3VtZW50IGVsZW1lbnQuIChDb21tZW50IAorICAgICAgICAgICAgICogY2hpbGRyZW4gb2YgdGhlIHJvb3Qgbm9kZSByZXByZXNlbnQgY29tbWVudHMgb3V0c2lkZSBvZiB0aGUgCisgICAgICAgICAgICAgKiB0b3AtbGV2ZWwgZG9jdW1lbnQgZWxlbWVudCBhbmQgb3V0c2lkZSBvZiB0aGUgZG9jdW1lbnQgdHlwZSAKKyAgICAgICAgICAgICAqIGRlY2xhcmF0aW9uKS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHZpc2libGUgJiYgY3R4LT53aXRoX2NvbW1lbnRzKSB7CisgICAgICAgICAgICAgICAgaWYgKGN0eC0+cG9zID09IFhNTEMxNE5fQUZURVJfRE9DVU1FTlRfRUxFTUVOVCkgeworICAgICAgICAgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhjdHgtPmJ1ZiwgIlx4MEE8IS0tIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoY3R4LT5idWYsICI8IS0tIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGN1ci0+Y29udGVudCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKmJ1ZmZlcjsKKworICAgICAgICAgICAgICAgICAgICAvKiB0b2RvOiBkbyB3ZSBuZWVkIHRvIG5vcm1hbGl6ZSBjb21tZW50PyAqLworICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSB4bWxDMTFOTm9ybWFsaXplQ29tbWVudChjdXItPmNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoYnVmZmVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgibm9ybWFsaXppbmcgY29tbWVudCBub2RlIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChjdHgtPnBvcyA9PSBYTUxDMTROX0JFRk9SRV9ET0NVTUVOVF9FTEVNRU5UKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiLS0+XHgwQSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGN0eC0+YnVmLCAiLS0+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERTogICAvKiBzaG91bGQgYmUgcHJvY2Vzc2VkIGFzIGRvY3VtZW50PyAqLworI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKyAgICAgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOiAgIC8qIHNob3VsZCBiZSBwcm9jZXNzZWQgYXMgZG9jdW1lbnQ/ICovCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERTogICAvKiBzaG91bGQgYmUgcHJvY2Vzc2VkIGFzIGRvY3VtZW50PyAqLworI2VuZGlmCisgICAgICAgICAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgY3R4LT5wb3MgPSBYTUxDMTROX0JFRk9SRV9ET0NVTUVOVF9FTEVNRU5UOworICAgICAgICAgICAgICAgIGN0eC0+cGFyZW50X2lzX2RvYyA9IDE7CisgICAgICAgICAgICAgICAgcmV0ID0geG1sQzE0TlByb2Nlc3NOb2RlTGlzdChjdHgsIGN1ci0+Y2hpbGRyZW4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisgICAgICAgICAgICB4bWxDMTRORXJySW52YWxpZE5vZGUoIlhNTF9BVFRSSUJVVEVfTk9ERSIsICJwcm9jZXNzaW5nIG5vZGUiKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKyAgICAgICAgICAgIHhtbEMxNE5FcnJJbnZhbGlkTm9kZSgiWE1MX05BTUVTUEFDRV9ERUNMIiwgInByb2Nlc3Npbmcgbm9kZSIpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgICAgIHhtbEMxNE5FcnJJbnZhbGlkTm9kZSgiWE1MX0VOVElUWV9SRUZfTk9ERSIsICJwcm9jZXNzaW5nIG5vZGUiKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKyAgICAgICAgICAgIHhtbEMxNE5FcnJJbnZhbGlkTm9kZSgiWE1MX0VOVElUWV9OT0RFIiwgInByb2Nlc3Npbmcgbm9kZSIpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICAgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKyNlbmRpZgorICAgICAgICAgICAgLyogCisgICAgICAgICAgICAgKiBzaG91bGQgYmUgaWdub3JlZCBhY2NvcmRpbmcgdG8gIlczQyBDYW5vbmljYWwgWE1MIiAKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB4bWxDMTRORXJyVW5rbm93bk5vZGUoY3VyLT50eXBlLCAicHJvY2Vzc2luZyBub2RlIik7CisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sQzE0TlByb2Nlc3NOb2RlTGlzdDoKKyAqIEBjdHg6IAkJdGhlIHBvaW50ZXIgdG8gQzE0TiBjb250ZXh0IG9iamVjdAorICogQGN1cjoJCXRoZSBub2RlIHRvIHN0YXJ0IGZyb20KKyAqICAJCQorICogUHJvY2Vzc2VzIGFsbCBub2RlcyBpbiB0aGUgcm93IHN0YXJ0aW5nIGZyb20gY3VyLgorICoKKyAqIFJldHVybnMgbm9uLW5lZ2F0aXZlIHZhbHVlIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgdmFsdWUgb24gZmFpbAorICovCitzdGF0aWMgaW50Cit4bWxDMTROUHJvY2Vzc05vZGVMaXN0KHhtbEMxNE5DdHhQdHIgY3R4LCB4bWxOb2RlUHRyIGN1cikKK3sKKyAgICBpbnQgcmV0OworCisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEMxNE5FcnJQYXJhbSgicHJvY2Vzc2luZyBub2RlIGxpc3QiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgZm9yIChyZXQgPSAwOyBjdXIgIT0gTlVMTCAmJiByZXQgPj0gMDsgY3VyID0gY3VyLT5uZXh0KSB7CisgICAgICAgIHJldCA9IHhtbEMxNE5Qcm9jZXNzTm9kZShjdHgsIGN1cik7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworCisvKioKKyAqIHhtbEMxNE5GcmVlQ3R4OgorICogQGN0eDogdGhlIHBvaW50ZXIgdG8gQzE0TiBjb250ZXh0IG9iamVjdAorICogCQkKKyAqIENsZWFudXBzIHRoZSBDMTROIGNvbnRleHQgb2JqZWN0LgorICovCisKK3N0YXRpYyB2b2lkCit4bWxDMTRORnJlZUN0eCh4bWxDMTROQ3R4UHRyIGN0eCkKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJmcmVlaW5nIGNvbnRleHQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjdHgtPm5zX3JlbmRlcmVkICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TlZpc2libGVOc1N0YWNrRGVzdHJveShjdHgtPm5zX3JlbmRlcmVkKTsKKyAgICB9CisgICAgeG1sRnJlZShjdHgpOworfQorCisvKioKKyAqIHhtbEMxNE5OZXdDdHg6CisgKiBAZG9jOiAJCXRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbgorICogQGlzX3Zpc2libGVfY2FsbGJhY2s6dGhlIGZ1bmN0aW9uIHRvIHVzZSB0byBkZXRlcm1pbmUgaXMgbm9kZSB2aXNpYmxlIAorICoJCQlvciBub3QKKyAqIEB1c2VyX2RhdGE6IAkJdGhlIGZpcnN0IHBhcmFtZXRlciBmb3IgQGlzX3Zpc2libGVfY2FsbGJhY2sgZnVuY3Rpb24KKyAqCQkJKGluIG1vc3QgY2FzZXMsIGl0IGlzIG5vZGVzIHNldCkKKyAqIEBtb2RlOiAgIHRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpCisgKiBAaW5jbHVzaXZlX25zX3ByZWZpeGUgdGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyAKKyAqCQkJZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubworICoJCQlpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgYCAKKyAqCQkJY2Fub25pY2FsaXphdGlvbikKKyAqIEB3aXRoX2NvbW1lbnRzOiAJaW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKQorICogQGJ1ZjogCQl0aGUgb3V0cHV0IGJ1ZmZlciB0byBzdG9yZSBjYW5vbmljYWwgWE1MOyB0aGlzIAorICoJCQlidWZmZXIgTVVTVCBoYXZlIGVuY29kZXI9PU5VTEwgYmVjYXVzZSBDMTROIHJlcXVpcmVzCisgKgkJCVVURi04IG91dHB1dAorICogIAkJCisgKiBDcmVhdGVzIG5ldyBDMTROIGNvbnRleHQgb2JqZWN0IHRvIHN0b3JlIEMxNE4gcGFyYW1ldGVycy4KKyAqCisgKiBSZXR1cm5zIHBvaW50ZXIgdG8gbmV3bHkgY3JlYXRlZCBvYmplY3QgKHN1Y2Nlc3MpIG9yIE5VTEwgKGZhaWwpCisgKi8KK3N0YXRpYyB4bWxDMTROQ3R4UHRyCit4bWxDMTROTmV3Q3R4KHhtbERvY1B0ciBkb2MsICAKKwkgICAgICB4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2sgaXNfdmlzaWJsZV9jYWxsYmFjaywgdm9pZCogdXNlcl9kYXRhLAorICAgICAgICAgICAgICB4bWxDMTROTW9kZSBtb2RlLCB4bWxDaGFyICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlcywKKyAgICAgICAgICAgICAgaW50IHdpdGhfY29tbWVudHMsIHhtbE91dHB1dEJ1ZmZlclB0ciBidWYpCit7CisgICAgeG1sQzE0TkN0eFB0ciBjdHggPSBOVUxMOworCisgICAgaWYgKChkb2MgPT0gTlVMTCkgfHwgKGJ1ZiA9PSBOVUxMKSkgeworICAgICAgICB4bWxDMTRORXJyUGFyYW0oImNyZWF0aW5nIG5ldyBjb250ZXh0Iik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiAgVmFsaWRhdGUgdGhlIGVuY29kaW5nIG91dHB1dCBidWZmZXIgZW5jb2RpbmcKKyAgICAgKi8KKyAgICBpZiAoYnVmLT5lbmNvZGVyICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVycihjdHgsICh4bWxOb2RlUHRyKSBkb2MsIFhNTF9DMTROX1JFUVVJUkVTX1VURjgsCisieG1sQzE0Tk5ld0N0eDogb3V0cHV0IGJ1ZmZlciBlbmNvZGVyICE9IE5VTEwgYnV0IEMxNE4gcmVxdWlyZXMgVVRGOCBvdXRwdXRcbiIpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogIFZhbGlkYXRlIHRoZSBYTUwgZG9jdW1lbnQgZW5jb2RpbmcgdmFsdWUsIGlmIHByb3ZpZGVkLgorICAgICAqLworICAgIGlmIChkb2MtPmNoYXJzZXQgIT0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCkgeworICAgICAgICB4bWxDMTRORXJyKGN0eCwgKHhtbE5vZGVQdHIpIGRvYywgWE1MX0MxNE5fUkVRVUlSRVNfVVRGOCwKKwkJICAgInhtbEMxNE5OZXdDdHg6IHNvdXJjZSBkb2N1bWVudCBub3QgaW4gVVRGOFxuIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyB4bWxDMTROQ3R4UHRyIGFuZCBmaWxsIHRoZSBmaWVsZHMuCisgICAgICovCisgICAgY3R4ID0gKHhtbEMxNE5DdHhQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sQzE0TkN0eCkpOworICAgIGlmIChjdHggPT0gTlVMTCkgeworCXhtbEMxNE5FcnJNZW1vcnkoImNyZWF0aW5nIGNvbnRleHQiKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKHhtbEMxNE5DdHgpKTsKKworICAgIC8qCisgICAgICogaW5pdGlhbGl6ZSBDMTROIGNvbnRleHQKKyAgICAgKi8KKyAgICBjdHgtPmRvYyA9IGRvYzsKKyAgICBjdHgtPndpdGhfY29tbWVudHMgPSB3aXRoX2NvbW1lbnRzOworICAgIGN0eC0+aXNfdmlzaWJsZV9jYWxsYmFjayA9IGlzX3Zpc2libGVfY2FsbGJhY2s7CisgICAgY3R4LT51c2VyX2RhdGEgPSB1c2VyX2RhdGE7CisgICAgY3R4LT5idWYgPSBidWY7CisgICAgY3R4LT5wYXJlbnRfaXNfZG9jID0gMTsKKyAgICBjdHgtPnBvcyA9IFhNTEMxNE5fQkVGT1JFX0RPQ1VNRU5UX0VMRU1FTlQ7CisgICAgY3R4LT5uc19yZW5kZXJlZCA9IHhtbEMxNE5WaXNpYmxlTnNTdGFja0NyZWF0ZSgpOworCisgICAgaWYoY3R4LT5uc19yZW5kZXJlZCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEMxNE5FcnIoY3R4LCAoeG1sTm9kZVB0cikgZG9jLCBYTUxfQzE0Tl9DUkVBVEVfU1RBQ0ssCisJCSAgICJ4bWxDMTROTmV3Q3R4OiB4bWxDMTROVmlzaWJsZU5zU3RhY2tDcmVhdGUgZmFpbGVkXG4iKTsKKwl4bWxDMTRORnJlZUN0eChjdHgpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogU2V0ICJtb2RlIiBmbGFnIGFuZCByZW1lbWJlciBsaXN0IG9mIGluY2x1c2V2ZSBwcmVmaXhlcworICAgICAqIGZvciBleGNsdXNpdmUgYzE0bgorICAgICAqLworICAgIGN0eC0+bW9kZSA9IG1vZGU7CisgICAgaWYoeG1sQzE0TklzRXhjbHVzaXZlKGN0eCkpIHsKKyAgICAgICAgY3R4LT5pbmNsdXNpdmVfbnNfcHJlZml4ZXMgPSBpbmNsdXNpdmVfbnNfcHJlZml4ZXM7CisgICAgfQorICAgIHJldHVybiAoY3R4KTsKK30KKworLyoqCisgKiB4bWxDMTRORXhlY3V0ZToKKyAqIEBkb2M6IAkJdGhlIFhNTCBkb2N1bWVudCBmb3IgY2Fub25pemF0aW9uCisgKiBAaXNfdmlzaWJsZV9jYWxsYmFjazp0aGUgZnVuY3Rpb24gdG8gdXNlIHRvIGRldGVybWluZSBpcyBub2RlIHZpc2libGUgCisgKgkJCW9yIG5vdAorICogQHVzZXJfZGF0YTogCQl0aGUgZmlyc3QgcGFyYW1ldGVyIGZvciBAaXNfdmlzaWJsZV9jYWxsYmFjayBmdW5jdGlvbgorICoJCQkoaW4gbW9zdCBjYXNlcywgaXQgaXMgbm9kZXMgc2V0KQorICogQG1vZGU6CXRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpCisgKiBAaW5jbHVzaXZlX25zX3ByZWZpeGVzOiB0aGUgbGlzdCBvZiBpbmNsdXNpdmUgbmFtZXNwYWNlIHByZWZpeGVzIAorICoJCQllbmRlZCB3aXRoIGEgTlVMTCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vCisgKgkJCWluY2x1c2l2ZSBuYW1lc3BhY2VzIChvbmx5IGZvciBleGNsdXNpdmUgCisgKgkJCWNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKQorICogQHdpdGhfY29tbWVudHM6IAlpbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90ICg9PTApCisgKiBAYnVmOiAJCXRoZSBvdXRwdXQgYnVmZmVyIHRvIHN0b3JlIGNhbm9uaWNhbCBYTUw7IHRoaXMgCisgKgkJCWJ1ZmZlciBNVVNUIGhhdmUgZW5jb2Rlcj09TlVMTCBiZWNhdXNlIEMxNE4gcmVxdWlyZXMKKyAqCQkJVVRGLTggb3V0cHV0CisgKiAgCQkKKyAqIER1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gdGhlIHByb3ZpZGVkIGJ1ZmZlci4KKyAqIEZvciBkZXRhaWxzIHNlZSAiQ2Fub25pY2FsIFhNTCIgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuKSBvcgorICogIkV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbiIgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bikKKyAqCisgKiBSZXR1cm5zIG5vbi1uZWdhdGl2ZSB2YWx1ZSBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgdmFsdWUgb24gZmFpbCAgCisgKi8KK2ludCAJCQoreG1sQzE0TkV4ZWN1dGUoeG1sRG9jUHRyIGRvYywgeG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrIGlzX3Zpc2libGVfY2FsbGJhY2ssCisJIHZvaWQqIHVzZXJfZGF0YSwgaW50IG1vZGUsIHhtbENoYXIgKippbmNsdXNpdmVfbnNfcHJlZml4ZXMsCisJIGludCB3aXRoX2NvbW1lbnRzLCB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmKSB7CisKKyAgICB4bWxDMTROQ3R4UHRyIGN0eDsKKyAgICB4bWxDMTROTW9kZSBjMTRuX21vZGUgPSBYTUxfQzE0Tl8xXzA7CisgICAgaW50IHJldDsKKworICAgIGlmICgoYnVmID09IE5VTEwpIHx8IChkb2MgPT0gTlVMTCkpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJleGVjdXRpbmcgYzE0biIpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICAvKiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgd2UgaGF2ZSB0byBoYXZlICJtb2RlIiBhcyAiaW50IiAKKyAgICAgICBhbmQgaGVyZSB3ZSBjaGVjayB0aGF0IHVzZXIgZ2l2ZXMgdmFsaWQgdmFsdWUgKi8KKyAgICBzd2l0Y2gobW9kZSkgeworICAgIGNhc2UgWE1MX0MxNE5fMV8wOgorICAgIGNhc2UgWE1MX0MxNE5fRVhDTFVTSVZFXzFfMDoKKyAgICBjYXNlIFhNTF9DMTROXzFfMTogCisgICAgICAgICBjMTRuX21vZGUgPSAoeG1sQzE0Tk1vZGUpbW9kZTsKKyAgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6ICAgICAgIAorICAgICAgICB4bWxDMTRORXJyUGFyYW0oImludmFsaWQgbW9kZSBmb3IgZXhlY3V0aW5nIGMxNG4iKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiAgVmFsaWRhdGUgdGhlIGVuY29kaW5nIG91dHB1dCBidWZmZXIgZW5jb2RpbmcKKyAgICAgKi8KKyAgICBpZiAoYnVmLT5lbmNvZGVyICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVycihOVUxMLCAoeG1sTm9kZVB0cikgZG9jLCBYTUxfQzE0Tl9SRVFVSVJFU19VVEY4LAorInhtbEMxNE5FeGVjdXRlOiBvdXRwdXQgYnVmZmVyIGVuY29kZXIgIT0gTlVMTCBidXQgQzE0TiByZXF1aXJlcyBVVEY4IG91dHB1dFxuIik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKworICAgIGN0eCA9IHhtbEMxNE5OZXdDdHgoZG9jLCBpc192aXNpYmxlX2NhbGxiYWNrLCB1c2VyX2RhdGEsIAorCSAgICAgICAgICAgIGMxNG5fbW9kZSwgaW5jbHVzaXZlX25zX3ByZWZpeGVzLAorICAgICAgICAgICAgICAgICAgICB3aXRoX2NvbW1lbnRzLCBidWYpOworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICB4bWxDMTRORXJyKE5VTEwsICh4bWxOb2RlUHRyKSBkb2MsIFhNTF9DMTROX0NSRUFURV9DVFhULAorCQkgICAieG1sQzE0TkV4ZWN1dGU6IHVuYWJsZSB0byBjcmVhdGUgQzE0TiBjb250ZXh0XG4iKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisKKworICAgIC8qICAKKyAgICAgKiBSb290IE5vZGUKKyAgICAgKiBUaGUgcm9vdCBub2RlIGlzIHRoZSBwYXJlbnQgb2YgdGhlIHRvcC1sZXZlbCBkb2N1bWVudCBlbGVtZW50LiBUaGUgCisgICAgICogcmVzdWx0IG9mIHByb2Nlc3NpbmcgZWFjaCBvZiBpdHMgY2hpbGQgbm9kZXMgdGhhdCBpcyBpbiB0aGUgbm9kZS1zZXQgCisgICAgICogaW4gZG9jdW1lbnQgb3JkZXIuIFRoZSByb290IG5vZGUgZG9lcyBub3QgZ2VuZXJhdGUgYSBieXRlIG9yZGVyIG1hcmssIAorICAgICAqIFhNTCBkZWNsYXJhdGlvbiwgbm9yIGFueXRoaW5nIGZyb20gd2l0aGluIHRoZSBkb2N1bWVudCB0eXBlIAorICAgICAqIGRlY2xhcmF0aW9uLgorICAgICAqLworICAgIGlmIChkb2MtPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgcmV0ID0geG1sQzE0TlByb2Nlc3NOb2RlTGlzdChjdHgsIGRvYy0+Y2hpbGRyZW4pOworICAgICAgICBpZiAocmV0IDwgMCkgeworICAgICAgICAgICAgeG1sQzE0TkVyckludGVybmFsKCJwcm9jZXNzaW5nIGRvY3MgY2hpbGRyZW4gbGlzdCIpOworICAgICAgICAgICAgeG1sQzE0TkZyZWVDdHgoY3R4KTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGbHVzaCBidWZmZXIgdG8gZ2V0IG51bWJlciBvZiBieXRlcyB3cml0dGVuCisgICAgICovCisgICAgcmV0ID0geG1sT3V0cHV0QnVmZmVyRmx1c2goYnVmKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICB4bWxDMTRORXJySW50ZXJuYWwoImZsdXNoaW5nIG91dHB1dCBidWZmZXIiKTsKKyAgICAgICAgeG1sQzE0TkZyZWVDdHgoY3R4KTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgLyogCisgICAgICogQ2xlYW51cAorICAgICAqLworICAgIHhtbEMxNE5GcmVlQ3R4KGN0eCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbEMxNE5Eb2NTYXZlVG86CisgKiBAZG9jOiAJCXRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbgorICogQG5vZGVzOiAJCXRoZSBub2RlcyBzZXQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaXplZCBpbWFnZQorICogICAgICAJCW9yIE5VTEwgaWYgYWxsIGRvY3VtZW50IG5vZGVzIHNob3VsZCBiZSBpbmNsdWRlZAorICogQG1vZGU6CQl0aGUgYzE0biBtb2RlIChzZWUgQHhtbEMxNE5Nb2RlKQorICogQGluY2x1c2l2ZV9uc19wcmVmaXhlczogdGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyAKKyAqCQkJZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubworICoJCQlpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgZXhjbHVzaXZlIAorICoJCQljYW5vbmljYWxpemF0aW9uLCBpZ25vcmVkIG90aGVyd2lzZSkKKyAqIEB3aXRoX2NvbW1lbnRzOiAJaW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKQorICogQGJ1ZjogCQl0aGUgb3V0cHV0IGJ1ZmZlciB0byBzdG9yZSBjYW5vbmljYWwgWE1MOyB0aGlzIAorICoJCQlidWZmZXIgTVVTVCBoYXZlIGVuY29kZXI9PU5VTEwgYmVjYXVzZSBDMTROIHJlcXVpcmVzCisgKgkJCVVURi04IG91dHB1dAorICogIAkJCisgKiBEdW1wcyB0aGUgY2Fub25pemVkIGltYWdlIG9mIGdpdmVuIFhNTCBkb2N1bWVudCBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIuCisgKiBGb3IgZGV0YWlscyBzZWUgIkNhbm9uaWNhbCBYTUwiIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bikgb3IKKyAqICJFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24iIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pCisgKgorICogUmV0dXJucyBub24tbmVnYXRpdmUgdmFsdWUgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWwgIAorICovCitpbnQKK3htbEMxNE5Eb2NTYXZlVG8oeG1sRG9jUHRyIGRvYywgeG1sTm9kZVNldFB0ciBub2RlcywKKyAgICAgICAgICAgICAgICAgaW50IG1vZGUsIHhtbENoYXIgKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLAorICAgICAgICAgICAgICAgICBpbnQgd2l0aF9jb21tZW50cywgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZikgeworICAgIHJldHVybih4bWxDMTRORXhlY3V0ZShkb2MsIAorCQkJKHhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjayl4bWxDMTROSXNOb2RlSW5Ob2Rlc2V0LAorCQkJbm9kZXMsCisJCQltb2RlLAorCQkJaW5jbHVzaXZlX25zX3ByZWZpeGVzLAorCQkJd2l0aF9jb21tZW50cywKKwkJCWJ1ZikpOworfQorCisKKy8qKgorICogeG1sQzE0TkRvY0R1bXBNZW1vcnk6CisgKiBAZG9jOiAJCXRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbgorICogQG5vZGVzOiAJCXRoZSBub2RlcyBzZXQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaXplZCBpbWFnZQorICogICAgICAJCW9yIE5VTEwgaWYgYWxsIGRvY3VtZW50IG5vZGVzIHNob3VsZCBiZSBpbmNsdWRlZAorICogQG1vZGU6CQl0aGUgYzE0biBtb2RlIChzZWUgQHhtbEMxNE5Nb2RlKQorICogQGluY2x1c2l2ZV9uc19wcmVmaXhlczogdGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyAKKyAqCQkJZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubworICoJCQlpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgZXhjbHVzaXZlIAorICoJCQljYW5vbmljYWxpemF0aW9uLCBpZ25vcmVkIG90aGVyd2lzZSkKKyAqIEB3aXRoX2NvbW1lbnRzOiAJaW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKQorICogQGRvY190eHRfcHRyOiAJdGhlIG1lbW9yeSBwb2ludGVyIGZvciBhbGxvY2F0ZWQgY2Fub25pY2FsIFhNTCB0ZXh0OworICoJCQl0aGUgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb25zIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nCisgKgkJCXhtbEZyZWUoKSB0byBmcmVlIGFsbG9jYXRlZCBtZW1vcnkgCisgKiAgCQkKKyAqIER1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gbWVtb3J5LgorICogRm9yIGRldGFpbHMgc2VlICJDYW5vbmljYWwgWE1MIiAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4pIG9yCisgKiAiRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uIiAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWV4Yy1jMTRuKQorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBmYWlsICAKKyAqLworaW50Cit4bWxDMTRORG9jRHVtcE1lbW9yeSh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlU2V0UHRyIG5vZGVzLAorICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsIHhtbENoYXIgKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLAorICAgICAgICAgICAgICAgICAgICAgaW50IHdpdGhfY29tbWVudHMsIHhtbENoYXIgKiogZG9jX3R4dF9wdHIpCit7CisgICAgaW50IHJldDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOworCisgICAgaWYgKGRvY190eHRfcHRyID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyclBhcmFtKCJkdW1waW5nIGRvYyB0byBtZW1vcnkiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgKmRvY190eHRfcHRyID0gTlVMTDsKKworICAgIC8qCisgICAgICogY3JlYXRlIG1lbW9yeSBidWZmZXIgd2l0aCBVVEY4IChkZWZhdWx0KSBlbmNvZGluZyAKKyAgICAgKi8KKyAgICBidWYgPSB4bWxBbGxvY091dHB1dEJ1ZmZlcihOVUxMKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyAgICAgICAgeG1sQzE0TkVyck1lbW9yeSgiY3JlYXRpbmcgb3V0cHV0IGJ1ZmZlciIpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGNhbm9uaXplIGRvY3VtZW50IGFuZCB3cml0ZSB0byBidWZmZXIKKyAgICAgKi8KKyAgICByZXQgPSB4bWxDMTRORG9jU2F2ZVRvKGRvYywgbm9kZXMsIG1vZGUsIGluY2x1c2l2ZV9uc19wcmVmaXhlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhfY29tbWVudHMsIGJ1Zik7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgeG1sQzE0TkVyckludGVybmFsKCJzYXZpbmcgZG9jIHRvIG91dHB1dCBidWZmZXIiKTsKKyAgICAgICAgKHZvaWQpIHhtbE91dHB1dEJ1ZmZlckNsb3NlKGJ1Zik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKworICAgIHJldCA9IGJ1Zi0+YnVmZmVyLT51c2U7CisgICAgaWYgKHJldCA+IDApIHsKKyAgICAgICAgKmRvY190eHRfcHRyID0geG1sU3RybmR1cChidWYtPmJ1ZmZlci0+Y29udGVudCwgcmV0KTsKKyAgICB9CisgICAgKHZvaWQpIHhtbE91dHB1dEJ1ZmZlckNsb3NlKGJ1Zik7CisKKyAgICBpZiAoKCpkb2NfdHh0X3B0ciA9PSBOVUxMKSAmJiAocmV0ID4gMCkpIHsKKyAgICAgICAgeG1sQzE0TkVyck1lbW9yeSgiY29waW5nIGNhbm9uaWNhbml6ZWQgZG9jdW1lbnQiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxDMTRORG9jU2F2ZToKKyAqIEBkb2M6IAkJdGhlIFhNTCBkb2N1bWVudCBmb3IgY2Fub25pemF0aW9uCisgKiBAbm9kZXM6IAkJdGhlIG5vZGVzIHNldCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgY2Fub25pemVkIGltYWdlCisgKiAgICAgIAkJb3IgTlVMTCBpZiBhbGwgZG9jdW1lbnQgbm9kZXMgc2hvdWxkIGJlIGluY2x1ZGVkCisgKiBAbW9kZToJCXRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpCisgKiBAaW5jbHVzaXZlX25zX3ByZWZpeGVzOiB0aGUgbGlzdCBvZiBpbmNsdXNpdmUgbmFtZXNwYWNlIHByZWZpeGVzIAorICoJCQllbmRlZCB3aXRoIGEgTlVMTCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vCisgKgkJCWluY2x1c2l2ZSBuYW1lc3BhY2VzIChvbmx5IGZvciBleGNsdXNpdmUgCisgKgkJCWNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKQorICogQHdpdGhfY29tbWVudHM6IAlpbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90ICg9PTApCisgKiBAZmlsZW5hbWU6IAkJdGhlIGZpbGVuYW1lIHRvIHN0b3JlIGNhbm9uaWNhbCBYTUwgaW1hZ2UKKyAqIEBjb21wcmVzc2lvbjoJdGhlIGNvbXByZXNzaW9uIGxldmVsICh6bGliIHJlcXVyZWQpOiAKKyAqCQkJCS0xIC0gbGlieG1sIGRlZmF1bHQsCisgKgkJCQkgMCAtIHVuY29tcHJlc3NlZCwgCisgKgkJCQk+MCAtIGNvbXByZXNzaW9uIGxldmVsCisgKiAgCQkKKyAqIER1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gdGhlIGZpbGUuCisgKiBGb3IgZGV0YWlscyBzZWUgIkNhbm9uaWNhbCBYTUwiIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bikgb3IKKyAqICJFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24iIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWwgIAorICovCitpbnQKK3htbEMxNE5Eb2NTYXZlKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVTZXRQdHIgbm9kZXMsCisgICAgICAgICAgICAgICBpbnQgbW9kZSwgeG1sQ2hhciAqKiBpbmNsdXNpdmVfbnNfcHJlZml4ZXMsCisgICAgICAgICAgICAgICBpbnQgd2l0aF9jb21tZW50cywgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBjb21wcmVzc2lvbikKK3sKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOworICAgIGludCByZXQ7CisKKyAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkgeworICAgICAgICB4bWxDMTRORXJyUGFyYW0oInNhdmluZyBkb2MiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorI2lmZGVmIEhBVkVfWkxJQl9ICisgICAgaWYgKGNvbXByZXNzaW9uIDwgMCkKKyAgICAgICAgY29tcHJlc3Npb24gPSB4bWxHZXRDb21wcmVzc01vZGUoKTsKKyNlbmRpZgorCisgICAgLyogCisgICAgICogc2F2ZSB0aGUgY29udGVudCB0byBhIHRlbXAgYnVmZmVyLCB1c2UgZGVmYXVsdCBVVEY4IGVuY29kaW5nLgorICAgICAqLworICAgIGJ1ZiA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKGZpbGVuYW1lLCBOVUxMLCBjb21wcmVzc2lvbik7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisgICAgICAgIHhtbEMxNE5FcnJJbnRlcm5hbCgiY3JlYXRpbmcgdGVtcG9yYXJ5IGZpbGVuYW1lIik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogY2Fub25pemUgZG9jdW1lbnQgYW5kIHdyaXRlIHRvIGJ1ZmZlcgorICAgICAqLworICAgIHJldCA9IHhtbEMxNE5Eb2NTYXZlVG8oZG9jLCBub2RlcywgbW9kZSwgaW5jbHVzaXZlX25zX3ByZWZpeGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aF9jb21tZW50cywgYnVmKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICB4bWxDMTRORXJySW50ZXJuYWwoImNhbm5pY2FuaXplIGRvY3VtZW50IHRvIGJ1ZmZlciIpOworICAgICAgICAodm9pZCkgeG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgLyogCisgICAgICogZ2V0IHRoZSBudW1iZXJzIG9mIGJ5dGVzIHdyaXR0ZW4gCisgICAgICovCisgICAgcmV0ID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKworCisvKgorICogTWFjcm8gdXNlZCB0byBncm93IHRoZSBjdXJyZW50IGJ1ZmZlci4KKyAqLworI2RlZmluZSBncm93QnVmZmVyUmVlbnRyYW50KCkgewkJCQkJCVwKKyAgICBidWZmZXJfc2l6ZSAqPSAyOwkJCQkJCQlcCisgICAgYnVmZmVyID0gKHhtbENoYXIgKikJCQkJCQlcCisgICAgCQl4bWxSZWFsbG9jKGJ1ZmZlciwgYnVmZmVyX3NpemUgKiBzaXplb2YoeG1sQ2hhcikpOwlcCisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CQkJCQkJXAorCXhtbEMxNE5FcnJNZW1vcnkoImdyb3dpbmcgYnVmZmVyIik7CQkJCVwKKwlyZXR1cm4oTlVMTCk7CQkJCQkJCVwKKyAgICB9CQkJCQkJCQkJXAorfQorCisvKiogCisgKiB4bWxDMTFOTm9ybWFsaXplU3RyaW5nOgorICogQGlucHV0OgkJdGhlIGlucHV0IHN0cmluZworICogQG1vZGU6CQl0aGUgbm9ybWFsaXphdGlvbiBtb2RlIChhdHRyaWJ1dGUsIGNvbW1lbnQsIFBJIG9yIHRleHQpCisgKgorICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSBjYW5vbmljYWwgKG5vcm1hbGl6ZWQpIGZvcm1hdC4gVGhlIGNvZGUgaXMgc3RvbGVuCisgKiBmcm9tIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCkuIEFkZGVkIG5vcm1hbGl6YXRpb24gb2YgXHgwOSwgXHgwYSwgXHgwQQorICogYW5kIHRoZSBAbW9kZSBwYXJhbWV0ZXIKKyAqCisgKiBSZXR1cm5zIGEgbm9ybWFsaXplZCBzdHJpbmcgKGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyB4bWxGcmVlKCkpCisgKiBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VycworICovCitzdGF0aWMgeG1sQ2hhciAqCit4bWxDMTFOTm9ybWFsaXplU3RyaW5nKGNvbnN0IHhtbENoYXIgKiBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sQzE0Tk5vcm1hbGl6YXRpb25Nb2RlIG1vZGUpCit7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gaW5wdXQ7CisgICAgeG1sQ2hhciAqYnVmZmVyID0gTlVMTDsKKyAgICB4bWxDaGFyICpvdXQgPSBOVUxMOworICAgIGludCBidWZmZXJfc2l6ZSA9IDA7CisKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIC8qCisgICAgICogYWxsb2NhdGUgYW4gdHJhbnNsYXRpb24gYnVmZmVyLgorICAgICAqLworICAgIGJ1ZmZlcl9zaXplID0gMTAwMDsKKyAgICBidWZmZXIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoYnVmZmVyX3NpemUgKiBzaXplb2YoeG1sQ2hhcikpOworICAgIGlmIChidWZmZXIgPT0gTlVMTCkgeworCXhtbEMxNE5FcnJNZW1vcnkoImFsbG9jYXRpbmcgYnVmZmVyIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG91dCA9IGJ1ZmZlcjsKKworICAgIHdoaWxlICgqY3VyICE9ICdcMCcpIHsKKyAgICAgICAgaWYgKChvdXQgLSBidWZmZXIpID4gKGJ1ZmZlcl9zaXplIC0gMTApKSB7CisgICAgICAgICAgICBpbnQgaW5keCA9IG91dCAtIGJ1ZmZlcjsKKworICAgICAgICAgICAgZ3Jvd0J1ZmZlclJlZW50cmFudCgpOworICAgICAgICAgICAgb3V0ID0gJmJ1ZmZlcltpbmR4XTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgoKmN1ciA9PSAnPCcpICYmICgobW9kZSA9PSBYTUxDMTROX05PUk1BTElaRV9BVFRSKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgPT0gWE1MQzE0Tl9OT1JNQUxJWkVfVEVYVCkpKSB7CisgICAgICAgICAgICAqb3V0KysgPSAnJic7CisgICAgICAgICAgICAqb3V0KysgPSAnbCc7CisgICAgICAgICAgICAqb3V0KysgPSAndCc7CisgICAgICAgICAgICAqb3V0KysgPSAnOyc7CisgICAgICAgIH0gZWxzZSBpZiAoKCpjdXIgPT0gJz4nKSAmJiAobW9kZSA9PSBYTUxDMTROX05PUk1BTElaRV9URVhUKSkgeworICAgICAgICAgICAgKm91dCsrID0gJyYnOworICAgICAgICAgICAgKm91dCsrID0gJ2cnOworICAgICAgICAgICAgKm91dCsrID0gJ3QnOworICAgICAgICAgICAgKm91dCsrID0gJzsnOworICAgICAgICB9IGVsc2UgaWYgKCgqY3VyID09ICcmJykgJiYgKChtb2RlID09IFhNTEMxNE5fTk9STUFMSVpFX0FUVFIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgPT0gWE1MQzE0Tl9OT1JNQUxJWkVfVEVYVCkpKSB7CisgICAgICAgICAgICAqb3V0KysgPSAnJic7CisgICAgICAgICAgICAqb3V0KysgPSAnYSc7CisgICAgICAgICAgICAqb3V0KysgPSAnbSc7CisgICAgICAgICAgICAqb3V0KysgPSAncCc7CisgICAgICAgICAgICAqb3V0KysgPSAnOyc7CisgICAgICAgIH0gZWxzZSBpZiAoKCpjdXIgPT0gJyInKSAmJiAobW9kZSA9PSBYTUxDMTROX05PUk1BTElaRV9BVFRSKSkgeworICAgICAgICAgICAgKm91dCsrID0gJyYnOworICAgICAgICAgICAgKm91dCsrID0gJ3EnOworICAgICAgICAgICAgKm91dCsrID0gJ3UnOworICAgICAgICAgICAgKm91dCsrID0gJ28nOworICAgICAgICAgICAgKm91dCsrID0gJ3QnOworICAgICAgICAgICAgKm91dCsrID0gJzsnOworICAgICAgICB9IGVsc2UgaWYgKCgqY3VyID09ICdceDA5JykgJiYgKG1vZGUgPT0gWE1MQzE0Tl9OT1JNQUxJWkVfQVRUUikpIHsKKyAgICAgICAgICAgICpvdXQrKyA9ICcmJzsKKyAgICAgICAgICAgICpvdXQrKyA9ICcjJzsKKyAgICAgICAgICAgICpvdXQrKyA9ICd4JzsKKyAgICAgICAgICAgICpvdXQrKyA9ICc5JzsKKyAgICAgICAgICAgICpvdXQrKyA9ICc7JzsKKyAgICAgICAgfSBlbHNlIGlmICgoKmN1ciA9PSAnXHgwQScpICYmIChtb2RlID09IFhNTEMxNE5fTk9STUFMSVpFX0FUVFIpKSB7CisgICAgICAgICAgICAqb3V0KysgPSAnJic7CisgICAgICAgICAgICAqb3V0KysgPSAnIyc7CisgICAgICAgICAgICAqb3V0KysgPSAneCc7CisgICAgICAgICAgICAqb3V0KysgPSAnQSc7CisgICAgICAgICAgICAqb3V0KysgPSAnOyc7CisgICAgICAgIH0gZWxzZSBpZiAoKCpjdXIgPT0gJ1x4MEQnKSAmJiAoKG1vZGUgPT0gWE1MQzE0Tl9OT1JNQUxJWkVfQVRUUikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSA9PSBYTUxDMTROX05PUk1BTElaRV9URVhUKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlID09IFhNTEMxNE5fTk9STUFMSVpFX0NPTU1FTlQpIHx8CisJCQkJCShtb2RlID09IFhNTEMxNE5fTk9STUFMSVpFX1BJKSkpIHsKKyAgICAgICAgICAgICpvdXQrKyA9ICcmJzsKKyAgICAgICAgICAgICpvdXQrKyA9ICcjJzsKKyAgICAgICAgICAgICpvdXQrKyA9ICd4JzsKKyAgICAgICAgICAgICpvdXQrKyA9ICdEJzsKKyAgICAgICAgICAgICpvdXQrKyA9ICc7JzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBXb3JrcyBiZWNhdXNlIG9uIFVURi04LCBhbGwgZXh0ZW5kZWQgc2VxdWVuY2VzIGNhbm5vdAorICAgICAgICAgICAgICogcmVzdWx0IGluIGJ5dGVzIGluIHRoZSBBU0NJSSByYW5nZS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgKm91dCsrID0gKmN1cjsKKyAgICAgICAgfQorICAgICAgICBjdXIrKzsKKyAgICB9CisgICAgKm91dCA9IDA7CisgICAgcmV0dXJuIChidWZmZXIpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2RlZmluZSBib3R0b21fYzE0bgorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfQzE0Tl9FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NhdGFsb2cuYyBiL2xpYnhtbDItMi43LjcvY2F0YWxvZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmODRiN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NhdGFsb2cuYwpAQCAtMCwwICsxLDM4MjQgQEAKKy8qKgorICogY2F0YWxvZy5jOiBzZXQgb2YgZ2VuZXJpYyBDYXRhbG9nIHJlbGF0ZWQgcm91dGluZXMgCisgKgorICogUmVmZXJlbmNlOiAgU0dNTCBPcGVuIFRlY2huaWNhbCBSZXNvbHV0aW9uIFRSOTQwMToxOTk3LgorICogICAgICAgICAgICAgaHR0cDovL3d3dy5qY2xhcmsuY29tL3NwL2NhdGFsb2cuaHRtCisgKgorICogICAgICAgICAgICAgWE1MIENhdGFsb2dzIFdvcmtpbmcgRHJhZnQgMDYgQXVndXN0IDIwMDEKKyAqICAgICAgICAgICAgIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy0yMDAxLTA4LTA2Lmh0bWwKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsLlZlaWxsYXJkQGltYWcuZnIKKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0ZDTlRMX0gKKyNpbmNsdWRlIDxmY250bC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9oYXNoLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvY2F0YWxvZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC90aHJlYWRzLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworI2RlZmluZSBNQVhfREVMRUdBVEUJNTAKKyNkZWZpbmUgTUFYX0NBVEFMX0RFUFRICTUwCisKKyNpZmRlZiBfV0lOMzIKKyMgZGVmaW5lIFBBVEhfU0VBUEFSQVRPUiAnOycKKyNlbHNlCisjIGRlZmluZSBQQVRIX1NFQVBBUkFUT1IgJzonCisjZW5kaWYKKworLyoqCisgKiBUT0RPOgorICoKKyAqIG1hY3JvIHRvIGZsYWcgdW5pbXBsZW1lbnRlZCBibG9ja3MKKyAqIFhNTF9DQVRBTE9HX1BSRUZFUiB1c2VyIGVudiB0byBzZWxlY3QgYmV0d2VlbiBzeXN0ZW0vcHVibGljIHByZWZlcmVkCisgKiBvcHRpb24uIEMuZi4gUmljaGFyZCBUb2JpbiA8cmljaGFyZEBjb2dzY2kuZWQuYWMudWs+CisgKj4gSnVzdCBGWUksIEkgYW0gdXNpbmcgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgWE1MX0NBVEFMT0dfUFJFRkVSIHdpdGgKKyAqPiB2YWx1ZXMgInN5c3RlbSIgYW5kICJwdWJsaWMiLiAgSSBoYXZlIG1hZGUgdGhlIGRlZmF1bHQgYmUgInN5c3RlbSIgdG8KKyAqPiBtYXRjaCB5b3Vycy4KKyAqLworI2RlZmluZSBUT0RPIAkJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJVbmltcGxlbWVudGVkIGJsb2NrIGF0ICVzOiVkXG4iLAkJCQlcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworCisjZGVmaW5lIFhNTF9VUk5fUFVCSUQgInVybjpwdWJsaWNpZDoiCisjZGVmaW5lIFhNTF9DQVRBTF9CUkVBSyAoKHhtbENoYXIgKikgLTEpCisjaWZuZGVmIFhNTF9YTUxfREVGQVVMVF9DQVRBTE9HCisjZGVmaW5lIFhNTF9YTUxfREVGQVVMVF9DQVRBTE9HICJmaWxlOi8vL2V0Yy94bWwvY2F0YWxvZyIKKyNlbmRpZgorI2lmbmRlZiBYTUxfU0dNTF9ERUZBVUxUX0NBVEFMT0cKKyNkZWZpbmUgWE1MX1NHTUxfREVGQVVMVF9DQVRBTE9HICJmaWxlOi8vL2V0Yy9zZ21sL2NhdGFsb2ciCisjZW5kaWYKKworI2lmIGRlZmluZWQoX1dJTjMyKSAmJiBkZWZpbmVkKF9NU0NfVkVSKQorI3VuZGVmIFhNTF9YTUxfREVGQVVMVF9DQVRBTE9HCitzdGF0aWMgY2hhciBYTUxfWE1MX0RFRkFVTFRfQ0FUQUxPR1syNTZdID0gImZpbGU6Ly8vZXRjL3htbC9jYXRhbG9nIjsKKyNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisvKiBXaW5kb3dzIENFIGRvbid0IGhhdmUgYSBBIHZhcmlhbnQgKi8KKyNkZWZpbmUgR2V0TW9kdWxlSGFuZGxlQSBHZXRNb2R1bGVIYW5kbGUKKyNkZWZpbmUgR2V0TW9kdWxlRmlsZU5hbWVBIEdldE1vZHVsZUZpbGVOYW1lCisjZWxzZQordm9pZCogX19zdGRjYWxsIEdldE1vZHVsZUhhbmRsZUEoY29uc3QgY2hhciopOwordW5zaWduZWQgbG9uZyBfX3N0ZGNhbGwgR2V0TW9kdWxlRmlsZU5hbWVBKHZvaWQqLCBjaGFyKiwgdW5zaWduZWQgbG9uZyk7CisjZW5kaWYKKyNlbmRpZgorCitzdGF0aWMgeG1sQ2hhciAqeG1sQ2F0YWxvZ05vcm1hbGl6ZVB1YmxpYyhjb25zdCB4bWxDaGFyICpwdWJJRCk7CitzdGF0aWMgaW50IHhtbEV4cGFuZENhdGFsb2coeG1sQ2F0YWxvZ1B0ciBjYXRhbCwgY29uc3QgY2hhciAqZmlsZW5hbWUpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJVHlwZXMsIGFsbCBwcml2YXRlCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfQ0FUQV9SRU1PVkVEID0gLTEsCisgICAgWE1MX0NBVEFfTk9ORSA9IDAsCisgICAgWE1MX0NBVEFfQ0FUQUxPRywKKyAgICBYTUxfQ0FUQV9CUk9LRU5fQ0FUQUxPRywKKyAgICBYTUxfQ0FUQV9ORVhUX0NBVEFMT0csCisgICAgWE1MX0NBVEFfR1JPVVAsCisgICAgWE1MX0NBVEFfUFVCTElDLAorICAgIFhNTF9DQVRBX1NZU1RFTSwKKyAgICBYTUxfQ0FUQV9SRVdSSVRFX1NZU1RFTSwKKyAgICBYTUxfQ0FUQV9ERUxFR0FURV9QVUJMSUMsCisgICAgWE1MX0NBVEFfREVMRUdBVEVfU1lTVEVNLAorICAgIFhNTF9DQVRBX1VSSSwKKyAgICBYTUxfQ0FUQV9SRVdSSVRFX1VSSSwKKyAgICBYTUxfQ0FUQV9ERUxFR0FURV9VUkksCisgICAgU0dNTF9DQVRBX1NZU1RFTSwKKyAgICBTR01MX0NBVEFfUFVCTElDLAorICAgIFNHTUxfQ0FUQV9FTlRJVFksCisgICAgU0dNTF9DQVRBX1BFTlRJVFksCisgICAgU0dNTF9DQVRBX0RPQ1RZUEUsCisgICAgU0dNTF9DQVRBX0xJTktUWVBFLAorICAgIFNHTUxfQ0FUQV9OT1RBVElPTiwKKyAgICBTR01MX0NBVEFfREVMRUdBVEUsCisgICAgU0dNTF9DQVRBX0JBU0UsCisgICAgU0dNTF9DQVRBX0NBVEFMT0csCisgICAgU0dNTF9DQVRBX0RPQ1VNRU5ULAorICAgIFNHTUxfQ0FUQV9TR01MREVDTAorfSB4bWxDYXRhbG9nRW50cnlUeXBlOworCit0eXBlZGVmIHN0cnVjdCBfeG1sQ2F0YWxvZ0VudHJ5IHhtbENhdGFsb2dFbnRyeTsKK3R5cGVkZWYgeG1sQ2F0YWxvZ0VudHJ5ICp4bWxDYXRhbG9nRW50cnlQdHI7CitzdHJ1Y3QgX3htbENhdGFsb2dFbnRyeSB7CisgICAgc3RydWN0IF94bWxDYXRhbG9nRW50cnkgKm5leHQ7CisgICAgc3RydWN0IF94bWxDYXRhbG9nRW50cnkgKnBhcmVudDsKKyAgICBzdHJ1Y3QgX3htbENhdGFsb2dFbnRyeSAqY2hpbGRyZW47CisgICAgeG1sQ2F0YWxvZ0VudHJ5VHlwZSB0eXBlOworICAgIHhtbENoYXIgKm5hbWU7CisgICAgeG1sQ2hhciAqdmFsdWU7CisgICAgeG1sQ2hhciAqVVJMOyAgLyogVGhlIGV4cGFuZGVkIFVSTCB1c2luZyB0aGUgYmFzZSAqLworICAgIHhtbENhdGFsb2dQcmVmZXIgcHJlZmVyOworICAgIGludCBkZWFsbG9jOworICAgIGludCBkZXB0aDsKKyAgICBzdHJ1Y3QgX3htbENhdGFsb2dFbnRyeSAqZ3JvdXA7Cit9OworCit0eXBlZGVmIGVudW0geworICAgIFhNTF9YTUxfQ0FUQUxPR19UWVBFID0gMSwKKyAgICBYTUxfU0dNTF9DQVRBTE9HX1RZUEUKK30geG1sQ2F0YWxvZ1R5cGU7CisKKyNkZWZpbmUgWE1MX01BWF9TR01MX0NBVEFfREVQVEggMTAKK3N0cnVjdCBfeG1sQ2F0YWxvZyB7CisgICAgeG1sQ2F0YWxvZ1R5cGUgdHlwZTsJLyogZWl0aGVyIFhNTCBvciBTR01MICovCisKKyAgICAvKgorICAgICAqIFNHTUwgQ2F0YWxvZ3MgYXJlIHN0b3JlZCBhcyBhIHNpbXBsZSBoYXNoIHRhYmxlIG9mIGNhdGFsb2cgZW50cmllcworICAgICAqIENhdGFsb2cgc3RhY2sgdG8gY2hlY2sgYWdhaW5zdCBvdmVyZmxvd3Mgd2hlbiBidWlsZGluZyB0aGUKKyAgICAgKiBTR01MIGNhdGFsb2cKKyAgICAgKi8KKyAgICBjaGFyICpjYXRhbFRhYltYTUxfTUFYX1NHTUxfQ0FUQV9ERVBUSF07CS8qIHN0YWNrIG9mIGNhdGFscyAqLworICAgIGludCAgICAgICAgICBjYXRhbE5yOwkvKiBOdW1iZXIgb2YgY3VycmVudCBjYXRhbCBzdHJlYW1zICovCisgICAgaW50ICAgICAgICAgIGNhdGFsTWF4OwkvKiBNYXggbnVtYmVyIG9mIGNhdGFsIHN0cmVhbXMgKi8KKyAgICB4bWxIYXNoVGFibGVQdHIgc2dtbDsKKworICAgIC8qCisgICAgICogWE1MIENhdGFsb2dzIGFyZSBzdG9yZWQgYXMgYSB0cmVlIG9mIENhdGFsb2cgZW50cmllcworICAgICAqLworICAgIHhtbENhdGFsb2dQcmVmZXIgcHJlZmVyOworICAgIHhtbENhdGFsb2dFbnRyeVB0ciB4bWw7Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJR2xvYmFsIHZhcmlhYmxlcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBUaG9zZSBhcmUgcHJlZmVyZW5jZXMKKyAqLworc3RhdGljIGludCB4bWxEZWJ1Z0NhdGFsb2dzID0gMDsgICAvKiB1c2VkIGZvciBkZWJ1Z2dpbmcgKi8KK3N0YXRpYyB4bWxDYXRhbG9nQWxsb3cgeG1sQ2F0YWxvZ0RlZmF1bHRBbGxvdyA9IFhNTF9DQVRBX0FMTE9XX0FMTDsKK3N0YXRpYyB4bWxDYXRhbG9nUHJlZmVyIHhtbENhdGFsb2dEZWZhdWx0UHJlZmVyID0gWE1MX0NBVEFfUFJFRkVSX1BVQkxJQzsKKworLyoKKyAqIEhhc2ggdGFibGUgY29udGFpbmluZyBhbGwgdGhlIHRyZWVzIG9mIFhNTCBjYXRhbG9ncyBwYXJzZWQgYnkKKyAqIHRoZSBhcHBsaWNhdGlvbi4KKyAqLworc3RhdGljIHhtbEhhc2hUYWJsZVB0ciB4bWxDYXRhbG9nWE1MRmlsZXMgPSBOVUxMOworCisvKgorICogVGhlIGRlZmF1bHQgY2F0YWxvZyBpbiB1c2UgYnkgdGhlIGFwcGxpY2F0aW9uCisgKi8KK3N0YXRpYyB4bWxDYXRhbG9nUHRyIHhtbERlZmF1bHRDYXRhbG9nID0gTlVMTDsKKworLyoKKyAqIEEgbXV0ZXggZm9yIG1vZGlmeWluZyB0aGUgc2hhcmVkIGdsb2JhbCBjYXRhbG9nKHMpCisgKiB4bWxEZWZhdWx0Q2F0YWxvZyB0cmVlLgorICogSXQgYWxzbyBwcm90ZWN0cyB4bWxDYXRhbG9nWE1MRmlsZXMKKyAqIFRoZSBjb3JlIG9mIHRoaXMgcmVhZGVycy93cml0ZXIgc2NoZW1lIGlzIGluIHhtbEZldGNoWE1MQ2F0YWxvZ0ZpbGUoKQorICovCitzdGF0aWMgeG1sUk11dGV4UHRyIHhtbENhdGFsb2dNdXRleCA9IE5VTEw7CisKKy8qCisgKiBXaGV0aGVyIHRoZSBjYXRhbG9nIHN1cHBvcnQgd2FzIGluaXRpYWxpemVkLgorICovCitzdGF0aWMgaW50IHhtbENhdGFsb2dJbml0aWFsaXplZCA9IDA7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQkJQ2F0YWxvZyBlcnJvciBoYW5kbGVycwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sQ2F0YWxvZ0Vyck1lbW9yeToKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGNvbmRpdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sQ2F0YWxvZ0Vyck1lbW9yeShjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgWE1MX0ZST01fQ0FUQUxPRywKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9OT19NRU1PUlksIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsCisJCSAgICBleHRyYSwgTlVMTCwgTlVMTCwgMCwgMCwKKwkJICAgICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQgOiAlc1xuIiwgZXh0cmEpOworfQorCisvKioKKyAqIHhtbENhdGFsb2dFcnI6CisgKiBAY2F0YWw6IHRoZSBDYXRhbG9nIGVudHJ5CisgKiBAbm9kZTogdGhlIGNvbnRleHQgbm9kZQorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSBjYXRhbG9nIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxDYXRhbG9nRXJyKHhtbENhdGFsb2dFbnRyeVB0ciBjYXRhbCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIsCisJICAgICAgIGNvbnN0IHhtbENoYXIgKnN0cjMpCit7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGNhdGFsLCBub2RlLCBYTUxfRlJPTV9DQVRBTE9HLAorICAgICAgICAgICAgICAgICAgICBlcnJvciwgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKwkJICAgIChjb25zdCBjaGFyICopIHN0cjEsIChjb25zdCBjaGFyICopIHN0cjIsCisJCSAgICAoY29uc3QgY2hhciAqKSBzdHIzLCAwLCAwLAorCQkgICAgbXNnLCBzdHIxLCBzdHIyLCBzdHIzKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJQWxsb2NhdGlvbiBhbmQgRnJlZWluZwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sTmV3Q2F0YWxvZ0VudHJ5OgorICogQHR5cGU6ICB0eXBlIG9mIGVudHJ5CisgKiBAbmFtZTogIG5hbWUgb2YgdGhlIGVudHJ5CisgKiBAdmFsdWU6ICB2YWx1ZSBvZiB0aGUgZW50cnkKKyAqIEBwcmVmZXI6ICB0aGUgUFVCTElDIHZzLiBTWVNURU0gY3VycmVudCBwcmVmZXJlbmNlIHZhbHVlCisgKiBAZ3JvdXA6ICBmb3IgbWVtYmVycyBvZiBhIGdyb3VwLCB0aGUgZ3JvdXAgZW50cnkgCisgKgorICogY3JlYXRlIGEgbmV3IENhdGFsb2cgZW50cnksIHRoaXMgdHlwZSBpcyBzaGFyZWQgYm90aCBieSBYTUwgYW5kIAorICogU0dNTCBjYXRhbG9ncywgYnV0IHRoZSBhY2NlcHRhYmxlIHR5cGVzIHZhbHVlcyBkaWZmZXJzLgorICoKKyAqIFJldHVybnMgdGhlIHhtbENhdGFsb2dFbnRyeVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbENhdGFsb2dFbnRyeVB0cgoreG1sTmV3Q2F0YWxvZ0VudHJ5KHhtbENhdGFsb2dFbnRyeVR5cGUgdHlwZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwgY29uc3QgeG1sQ2hhciAqVVJMLCB4bWxDYXRhbG9nUHJlZmVyIHByZWZlciwKKwkgICB4bWxDYXRhbG9nRW50cnlQdHIgZ3JvdXApIHsKKyAgICB4bWxDYXRhbG9nRW50cnlQdHIgcmV0OworICAgIHhtbENoYXIgKm5vcm1pZCA9IE5VTEw7CisKKyAgICByZXQgPSAoeG1sQ2F0YWxvZ0VudHJ5UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbENhdGFsb2dFbnRyeSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxDYXRhbG9nRXJyTWVtb3J5KCJhbGxvY2F0aW5nIGNhdGFsb2cgZW50cnkiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldC0+bmV4dCA9IE5VTEw7CisgICAgcmV0LT5wYXJlbnQgPSBOVUxMOworICAgIHJldC0+Y2hpbGRyZW4gPSBOVUxMOworICAgIHJldC0+dHlwZSA9IHR5cGU7CisgICAgaWYgKHR5cGUgPT0gWE1MX0NBVEFfUFVCTElDIHx8IHR5cGUgPT0gWE1MX0NBVEFfREVMRUdBVEVfUFVCTElDKSB7CisgICAgICAgIG5vcm1pZCA9IHhtbENhdGFsb2dOb3JtYWxpemVQdWJsaWMobmFtZSk7CisgICAgICAgIGlmIChub3JtaWQgIT0gTlVMTCkKKyAgICAgICAgICAgIG5hbWUgPSAoKm5vcm1pZCAhPSAwID8gbm9ybWlkIDogTlVMTCk7CisgICAgfQorICAgIGlmIChuYW1lICE9IE5VTEwpCisJcmV0LT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworICAgIGVsc2UKKwlyZXQtPm5hbWUgPSBOVUxMOworICAgIGlmIChub3JtaWQgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShub3JtaWQpOworICAgIGlmICh2YWx1ZSAhPSBOVUxMKQorCXJldC0+dmFsdWUgPSB4bWxTdHJkdXAodmFsdWUpOworICAgIGVsc2UKKwlyZXQtPnZhbHVlID0gTlVMTDsKKyAgICBpZiAoVVJMID09IE5VTEwpCisJVVJMID0gdmFsdWU7CisgICAgaWYgKFVSTCAhPSBOVUxMKQorCXJldC0+VVJMID0geG1sU3RyZHVwKFVSTCk7CisgICAgZWxzZQorCXJldC0+VVJMID0gTlVMTDsKKyAgICByZXQtPnByZWZlciA9IHByZWZlcjsKKyAgICByZXQtPmRlYWxsb2MgPSAwOworICAgIHJldC0+ZGVwdGggPSAwOworICAgIHJldC0+Z3JvdXAgPSBncm91cDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHZvaWQKK3htbEZyZWVDYXRhbG9nRW50cnlMaXN0KHhtbENhdGFsb2dFbnRyeVB0ciByZXQpOworCisvKioKKyAqIHhtbEZyZWVDYXRhbG9nRW50cnk6CisgKiBAcmV0OiAgYSBDYXRhbG9nIGVudHJ5CisgKgorICogRnJlZSB0aGUgbWVtb3J5IGFsbG9jYXRlZCB0byBhIENhdGFsb2cgZW50cnkKKyAqLworc3RhdGljIHZvaWQKK3htbEZyZWVDYXRhbG9nRW50cnkoeG1sQ2F0YWxvZ0VudHJ5UHRyIHJldCkgeworICAgIGlmIChyZXQgPT0gTlVMTCkKKwlyZXR1cm47CisgICAgLyoKKyAgICAgKiBFbnRyaWVzIHN0b3JlZCBpbiB0aGUgZmlsZSBoYXNoIG11c3QgYmUgZGVhbGxvY2F0ZWQKKyAgICAgKiBvbmx5IGJ5IHRoZSBmaWxlIGhhc2ggY2xlYW5lciAhCisgICAgICovCisgICAgaWYgKHJldC0+ZGVhbGxvYyA9PSAxKQorCXJldHVybjsKKworICAgIGlmICh4bWxEZWJ1Z0NhdGFsb2dzKSB7CisJaWYgKHJldC0+bmFtZSAhPSBOVUxMKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJGcmVlIGNhdGFsb2cgZW50cnkgJXNcbiIsIHJldC0+bmFtZSk7CisJZWxzZSBpZiAocmV0LT52YWx1ZSAhPSBOVUxMKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJGcmVlIGNhdGFsb2cgZW50cnkgJXNcbiIsIHJldC0+dmFsdWUpOworCWVsc2UKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiRnJlZSBjYXRhbG9nIGVudHJ5XG4iKTsKKyAgICB9CisKKyAgICBpZiAocmV0LT5uYW1lICE9IE5VTEwpCisJeG1sRnJlZShyZXQtPm5hbWUpOworICAgIGlmIChyZXQtPnZhbHVlICE9IE5VTEwpCisJeG1sRnJlZShyZXQtPnZhbHVlKTsKKyAgICBpZiAocmV0LT5VUkwgIT0gTlVMTCkKKwl4bWxGcmVlKHJldC0+VVJMKTsKKyAgICB4bWxGcmVlKHJldCk7Cit9CisKKy8qKgorICogeG1sRnJlZUNhdGFsb2dFbnRyeUxpc3Q6CisgKiBAcmV0OiAgYSBDYXRhbG9nIGVudHJ5IGxpc3QKKyAqCisgKiBGcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIHRvIGEgZnVsbCBjaGFpbmVkIGxpc3Qgb2YgQ2F0YWxvZyBlbnRyaWVzCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGcmVlQ2F0YWxvZ0VudHJ5TGlzdCh4bWxDYXRhbG9nRW50cnlQdHIgcmV0KSB7CisgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIG5leHQ7CisKKyAgICB3aGlsZSAocmV0ICE9IE5VTEwpIHsKKwluZXh0ID0gcmV0LT5uZXh0OworCXhtbEZyZWVDYXRhbG9nRW50cnkocmV0KTsKKwlyZXQgPSBuZXh0OworICAgIH0KK30KKworLyoqCisgKiB4bWxGcmVlQ2F0YWxvZ0hhc2hFbnRyeUxpc3Q6CisgKiBAcmV0OiAgYSBDYXRhbG9nIGVudHJ5IGxpc3QKKyAqCisgKiBGcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIHRvIGxpc3Qgb2YgQ2F0YWxvZyBlbnRyaWVzIGZyb20gdGhlCisgKiBjYXRhbG9nIGZpbGUgaGFzaC4KKyAqLworc3RhdGljIHZvaWQKK3htbEZyZWVDYXRhbG9nSGFzaEVudHJ5TGlzdCh4bWxDYXRhbG9nRW50cnlQdHIgY2F0YWwpIHsKKyAgICB4bWxDYXRhbG9nRW50cnlQdHIgY2hpbGRyZW4sIG5leHQ7CisKKyAgICBpZiAoY2F0YWwgPT0gTlVMTCkKKwlyZXR1cm47CisKKyAgICBjaGlsZHJlbiA9IGNhdGFsLT5jaGlsZHJlbjsKKyAgICB3aGlsZSAoY2hpbGRyZW4gIT0gTlVMTCkgeworCW5leHQgPSBjaGlsZHJlbi0+bmV4dDsKKwljaGlsZHJlbi0+ZGVhbGxvYyA9IDA7CisJY2hpbGRyZW4tPmNoaWxkcmVuID0gTlVMTDsKKwl4bWxGcmVlQ2F0YWxvZ0VudHJ5KGNoaWxkcmVuKTsKKwljaGlsZHJlbiA9IG5leHQ7CisgICAgfQorICAgIGNhdGFsLT5kZWFsbG9jID0gMDsKKyAgICB4bWxGcmVlQ2F0YWxvZ0VudHJ5KGNhdGFsKTsKK30KKworLyoqCisgKiB4bWxDcmVhdGVOZXdDYXRhbG9nOgorICogQHR5cGU6ICB0eXBlIG9mIGNhdGFsb2cKKyAqIEBwcmVmZXI6ICB0aGUgUFVCTElDIHZzLiBTWVNURU0gY3VycmVudCBwcmVmZXJlbmNlIHZhbHVlCisgKgorICogY3JlYXRlIGEgbmV3IENhdGFsb2csIHRoaXMgdHlwZSBpcyBzaGFyZWQgYm90aCBieSBYTUwgYW5kIAorICogU0dNTCBjYXRhbG9ncywgYnV0IHRoZSBhY2NlcHRhYmxlIHR5cGVzIHZhbHVlcyBkaWZmZXJzLgorICoKKyAqIFJldHVybnMgdGhlIHhtbENhdGFsb2dQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxDYXRhbG9nUHRyCit4bWxDcmVhdGVOZXdDYXRhbG9nKHhtbENhdGFsb2dUeXBlIHR5cGUsIHhtbENhdGFsb2dQcmVmZXIgcHJlZmVyKSB7CisgICAgeG1sQ2F0YWxvZ1B0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sQ2F0YWxvZ1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxDYXRhbG9nKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbENhdGFsb2dFcnJNZW1vcnkoImFsbG9jYXRpbmcgY2F0YWxvZyIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbENhdGFsb2cpKTsKKyAgICByZXQtPnR5cGUgPSB0eXBlOworICAgIHJldC0+Y2F0YWxOciA9IDA7CisgICAgcmV0LT5jYXRhbE1heCA9IFhNTF9NQVhfU0dNTF9DQVRBX0RFUFRIOworICAgIHJldC0+cHJlZmVyID0gcHJlZmVyOworICAgIGlmIChyZXQtPnR5cGUgPT0gWE1MX1NHTUxfQ0FUQUxPR19UWVBFKQorCXJldC0+c2dtbCA9IHhtbEhhc2hDcmVhdGUoMTApOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEZyZWVDYXRhbG9nOgorICogQGNhdGFsOiAgYSBDYXRhbG9nCisgKgorICogRnJlZSB0aGUgbWVtb3J5IGFsbG9jYXRlZCB0byBhIENhdGFsb2cKKyAqLwordm9pZAoreG1sRnJlZUNhdGFsb2coeG1sQ2F0YWxvZ1B0ciBjYXRhbCkgeworICAgIGlmIChjYXRhbCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBpZiAoY2F0YWwtPnhtbCAhPSBOVUxMKQorCXhtbEZyZWVDYXRhbG9nRW50cnlMaXN0KGNhdGFsLT54bWwpOworICAgIGlmIChjYXRhbC0+c2dtbCAhPSBOVUxMKQorCXhtbEhhc2hGcmVlKGNhdGFsLT5zZ21sLAorCQkoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxGcmVlQ2F0YWxvZ0VudHJ5KTsKKyAgICB4bWxGcmVlKGNhdGFsKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVNlcmlhbGl6aW5nIENhdGFsb2dzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxDYXRhbG9nRHVtcEVudHJ5OgorICogQGVudHJ5OiAgdGhlIGNhdGFsb2cgZW50cnkKKyAqIEBvdXQ6ICB0aGUgZmlsZS4KKyAqCisgKiBTZXJpYWxpemUgYW4gU0dNTCBDYXRhbG9nIGVudHJ5CisgKi8KK3N0YXRpYyB2b2lkCit4bWxDYXRhbG9nRHVtcEVudHJ5KHhtbENhdGFsb2dFbnRyeVB0ciBlbnRyeSwgRklMRSAqb3V0KSB7CisgICAgaWYgKChlbnRyeSA9PSBOVUxMKSB8fCAob3V0ID09IE5VTEwpKQorCXJldHVybjsKKyAgICBzd2l0Y2ggKGVudHJ5LT50eXBlKSB7CisJY2FzZSBTR01MX0NBVEFfRU5USVRZOgorCSAgICBmcHJpbnRmKG91dCwgIkVOVElUWSAiKTsgYnJlYWs7CisJY2FzZSBTR01MX0NBVEFfUEVOVElUWToKKwkgICAgZnByaW50ZihvdXQsICJFTlRJVFkgJSUiKTsgYnJlYWs7CisJY2FzZSBTR01MX0NBVEFfRE9DVFlQRToKKwkgICAgZnByaW50ZihvdXQsICJET0NUWVBFICIpOyBicmVhazsKKwljYXNlIFNHTUxfQ0FUQV9MSU5LVFlQRToKKwkgICAgZnByaW50ZihvdXQsICJMSU5LVFlQRSAiKTsgYnJlYWs7CisJY2FzZSBTR01MX0NBVEFfTk9UQVRJT046CisJICAgIGZwcmludGYob3V0LCAiTk9UQVRJT04gIik7IGJyZWFrOworCWNhc2UgU0dNTF9DQVRBX1BVQkxJQzoKKwkgICAgZnByaW50ZihvdXQsICJQVUJMSUMgIik7IGJyZWFrOworCWNhc2UgU0dNTF9DQVRBX1NZU1RFTToKKwkgICAgZnByaW50ZihvdXQsICJTWVNURU0gIik7IGJyZWFrOworCWNhc2UgU0dNTF9DQVRBX0RFTEVHQVRFOgorCSAgICBmcHJpbnRmKG91dCwgIkRFTEVHQVRFICIpOyBicmVhazsKKwljYXNlIFNHTUxfQ0FUQV9CQVNFOgorCSAgICBmcHJpbnRmKG91dCwgIkJBU0UgIik7IGJyZWFrOworCWNhc2UgU0dNTF9DQVRBX0NBVEFMT0c6CisJICAgIGZwcmludGYob3V0LCAiQ0FUQUxPRyAiKTsgYnJlYWs7CisJY2FzZSBTR01MX0NBVEFfRE9DVU1FTlQ6CisJICAgIGZwcmludGYob3V0LCAiRE9DVU1FTlQgIik7IGJyZWFrOworCWNhc2UgU0dNTF9DQVRBX1NHTUxERUNMOgorCSAgICBmcHJpbnRmKG91dCwgIlNHTUxERUNMICIpOyBicmVhazsKKwlkZWZhdWx0OgorCSAgICByZXR1cm47CisgICAgfQorICAgIHN3aXRjaCAoZW50cnktPnR5cGUpIHsKKwljYXNlIFNHTUxfQ0FUQV9FTlRJVFk6CisJY2FzZSBTR01MX0NBVEFfUEVOVElUWToKKwljYXNlIFNHTUxfQ0FUQV9ET0NUWVBFOgorCWNhc2UgU0dNTF9DQVRBX0xJTktUWVBFOgorCWNhc2UgU0dNTF9DQVRBX05PVEFUSU9OOgorCSAgICBmcHJpbnRmKG91dCwgIiVzIiwgKGNvbnN0IGNoYXIgKikgZW50cnktPm5hbWUpOyBicmVhazsKKwljYXNlIFNHTUxfQ0FUQV9QVUJMSUM6CisJY2FzZSBTR01MX0NBVEFfU1lTVEVNOgorCWNhc2UgU0dNTF9DQVRBX1NHTUxERUNMOgorCWNhc2UgU0dNTF9DQVRBX0RPQ1VNRU5UOgorCWNhc2UgU0dNTF9DQVRBX0NBVEFMT0c6CisJY2FzZSBTR01MX0NBVEFfQkFTRToKKwljYXNlIFNHTUxfQ0FUQV9ERUxFR0FURToKKwkgICAgZnByaW50ZihvdXQsICJcIiVzXCIiLCBlbnRyeS0+bmFtZSk7IGJyZWFrOworCWRlZmF1bHQ6CisJICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGVudHJ5LT50eXBlKSB7CisJY2FzZSBTR01MX0NBVEFfRU5USVRZOgorCWNhc2UgU0dNTF9DQVRBX1BFTlRJVFk6CisJY2FzZSBTR01MX0NBVEFfRE9DVFlQRToKKwljYXNlIFNHTUxfQ0FUQV9MSU5LVFlQRToKKwljYXNlIFNHTUxfQ0FUQV9OT1RBVElPTjoKKwljYXNlIFNHTUxfQ0FUQV9QVUJMSUM6CisJY2FzZSBTR01MX0NBVEFfU1lTVEVNOgorCWNhc2UgU0dNTF9DQVRBX0RFTEVHQVRFOgorCSAgICBmcHJpbnRmKG91dCwgIiBcIiVzXCIiLCBlbnRyeS0+dmFsdWUpOyBicmVhazsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICB9CisgICAgZnByaW50ZihvdXQsICJcbiIpOworfQorCisvKioKKyAqIHhtbER1bXBYTUxDYXRhbG9nTm9kZToKKyAqIEBjYXRhbDogIHRvcCBjYXRhbG9nIGVudHJ5CisgKiBAY2F0YWxvZzogcG9pbnRlciB0byB0aGUgeG1sIHRyZWUKKyAqIEBkb2M6IHRoZSBjb250YWluaW5nIGRvY3VtZW50CisgKiBAbnM6IHRoZSBjdXJyZW50IG5hbWVzcGFjZQorICogQGNncm91cDogZ3JvdXAgbm9kZSBmb3IgZ3JvdXAgbWVtYmVycworICoKKyAqIFNlcmlhbGl6ZXMgYSBDYXRhbG9nIGVudHJ5LCBjYWxsZWQgYnkgeG1sRHVtcFhNTENhdGFsb2cgYW5kIHJlY3Vyc2l2ZWx5CisgKiBmb3IgZ3JvdXAgZW50cmllcworICovCitzdGF0aWMgdm9pZCB4bWxEdW1wWE1MQ2F0YWxvZ05vZGUoeG1sQ2F0YWxvZ0VudHJ5UHRyIGNhdGFsLCB4bWxOb2RlUHRyIGNhdGFsb2csCisJCSAgICB4bWxEb2NQdHIgZG9jLCB4bWxOc1B0ciBucywgeG1sQ2F0YWxvZ0VudHJ5UHRyIGNncm91cCkgeworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICB4bWxDYXRhbG9nRW50cnlQdHIgY3VyOworICAgIC8qCisgICAgICogYWRkIGFsbCB0aGUgY2F0YWxvZyBlbnRyaWVzCisgICAgICovCisgICAgY3VyID0gY2F0YWw7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmIChjdXItPmdyb3VwID09IGNncm91cCkgeworCSAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworCSAgICAgICAgY2FzZSBYTUxfQ0FUQV9SRU1PVkVEOgorCQkgICAgYnJlYWs7CisJICAgICAgICBjYXNlIFhNTF9DQVRBX0JST0tFTl9DQVRBTE9HOgorCSAgICAgICAgY2FzZSBYTUxfQ0FUQV9DQVRBTE9HOgorCQkgICAgaWYgKGN1ciA9PSBjYXRhbCkgeworCQkJY3VyID0gY3VyLT5jaGlsZHJlbjsKKwkJICAgICAgICBjb250aW51ZTsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9DQVRBX05FWFRfQ0FUQUxPRzoKKwkJICAgIG5vZGUgPSB4bWxOZXdEb2NOb2RlKGRvYywgbnMsIEJBRF9DQVNUICJuZXh0Q2F0YWxvZyIsIE5VTEwpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAiY2F0YWxvZyIsIGN1ci0+dmFsdWUpOworCQkgICAgeG1sQWRkQ2hpbGQoY2F0YWxvZywgbm9kZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCQljYXNlIFhNTF9DQVRBX05PTkU6CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfQ0FUQV9HUk9VUDoKKwkJICAgIG5vZGUgPSB4bWxOZXdEb2NOb2RlKGRvYywgbnMsIEJBRF9DQVNUICJncm91cCIsIE5VTEwpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAiaWQiLCBjdXItPm5hbWUpOworCQkgICAgaWYgKGN1ci0+dmFsdWUgIT0gTlVMTCkgeworCQkgICAgICAgIHhtbE5zUHRyIHhuczsKKwkJCXhucyA9IHhtbFNlYXJjaE5zQnlIcmVmKGRvYywgbm9kZSwgWE1MX1hNTF9OQU1FU1BBQ0UpOworCQkJaWYgKHhucyAhPSBOVUxMKQorCQkJICAgIHhtbFNldE5zUHJvcChub2RlLCB4bnMsIEJBRF9DQVNUICJiYXNlIiwKKwkJCSAgICAJCSBjdXItPnZhbHVlKTsKKwkJICAgIH0KKwkJICAgIHN3aXRjaCAoY3VyLT5wcmVmZXIpIHsKKwkJCWNhc2UgWE1MX0NBVEFfUFJFRkVSX05PTkU6CisJCSAgICAgICAgICAgIGJyZWFrOworCQkJY2FzZSBYTUxfQ0FUQV9QUkVGRVJfUFVCTElDOgorCQkgICAgICAgICAgICB4bWxTZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJwcmVmZXIiLCBCQURfQ0FTVCAicHVibGljIik7CisJCQkgICAgYnJlYWs7CisJCQljYXNlIFhNTF9DQVRBX1BSRUZFUl9TWVNURU06CisJCSAgICAgICAgICAgIHhtbFNldFByb3Aobm9kZSwgQkFEX0NBU1QgInByZWZlciIsIEJBRF9DQVNUICJzeXN0ZW0iKTsKKwkJCSAgICBicmVhazsKKwkJICAgIH0KKwkJICAgIHhtbER1bXBYTUxDYXRhbG9nTm9kZShjdXItPm5leHQsIG5vZGUsIGRvYywgbnMsIGN1cik7CisJCSAgICB4bWxBZGRDaGlsZChjYXRhbG9nLCBub2RlKTsKKwkgICAgICAgICAgICBicmVhazsKKwkJY2FzZSBYTUxfQ0FUQV9QVUJMSUM6CisJCSAgICBub2RlID0geG1sTmV3RG9jTm9kZShkb2MsIG5zLCBCQURfQ0FTVCAicHVibGljIiwgTlVMTCk7CisJCSAgICB4bWxTZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJwdWJsaWNJZCIsIGN1ci0+bmFtZSk7CisJCSAgICB4bWxTZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJ1cmkiLCBjdXItPnZhbHVlKTsKKwkJICAgIHhtbEFkZENoaWxkKGNhdGFsb2csIG5vZGUpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0NBVEFfU1lTVEVNOgorCQkgICAgbm9kZSA9IHhtbE5ld0RvY05vZGUoZG9jLCBucywgQkFEX0NBU1QgInN5c3RlbSIsIE5VTEwpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAic3lzdGVtSWQiLCBjdXItPm5hbWUpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAidXJpIiwgY3VyLT52YWx1ZSk7CisJCSAgICB4bWxBZGRDaGlsZChjYXRhbG9nLCBub2RlKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9DQVRBX1JFV1JJVEVfU1lTVEVNOgorCQkgICAgbm9kZSA9IHhtbE5ld0RvY05vZGUoZG9jLCBucywgQkFEX0NBU1QgInJld3JpdGVTeXN0ZW0iLCBOVUxMKTsKKwkJICAgIHhtbFNldFByb3Aobm9kZSwgQkFEX0NBU1QgInN5c3RlbUlkU3RhcnRTdHJpbmciLCBjdXItPm5hbWUpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAicmV3cml0ZVByZWZpeCIsIGN1ci0+dmFsdWUpOworCQkgICAgeG1sQWRkQ2hpbGQoY2F0YWxvZywgbm9kZSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfQ0FUQV9ERUxFR0FURV9QVUJMSUM6CisJCSAgICBub2RlID0geG1sTmV3RG9jTm9kZShkb2MsIG5zLCBCQURfQ0FTVCAiZGVsZWdhdGVQdWJsaWMiLCBOVUxMKTsKKwkJICAgIHhtbFNldFByb3Aobm9kZSwgQkFEX0NBU1QgInB1YmxpY0lkU3RhcnRTdHJpbmciLCBjdXItPm5hbWUpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAiY2F0YWxvZyIsIGN1ci0+dmFsdWUpOworCQkgICAgeG1sQWRkQ2hpbGQoY2F0YWxvZywgbm9kZSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfQ0FUQV9ERUxFR0FURV9TWVNURU06CisJCSAgICBub2RlID0geG1sTmV3RG9jTm9kZShkb2MsIG5zLCBCQURfQ0FTVCAiZGVsZWdhdGVTeXN0ZW0iLCBOVUxMKTsKKwkJICAgIHhtbFNldFByb3Aobm9kZSwgQkFEX0NBU1QgInN5c3RlbUlkU3RhcnRTdHJpbmciLCBjdXItPm5hbWUpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAiY2F0YWxvZyIsIGN1ci0+dmFsdWUpOworCQkgICAgeG1sQWRkQ2hpbGQoY2F0YWxvZywgbm9kZSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfQ0FUQV9VUkk6CisJCSAgICBub2RlID0geG1sTmV3RG9jTm9kZShkb2MsIG5zLCBCQURfQ0FTVCAidXJpIiwgTlVMTCk7CisJCSAgICB4bWxTZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJuYW1lIiwgY3VyLT5uYW1lKTsKKwkJICAgIHhtbFNldFByb3Aobm9kZSwgQkFEX0NBU1QgInVyaSIsIGN1ci0+dmFsdWUpOworCQkgICAgeG1sQWRkQ2hpbGQoY2F0YWxvZywgbm9kZSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfQ0FUQV9SRVdSSVRFX1VSSToKKwkJICAgIG5vZGUgPSB4bWxOZXdEb2NOb2RlKGRvYywgbnMsIEJBRF9DQVNUICJyZXdyaXRlVVJJIiwgTlVMTCk7CisJCSAgICB4bWxTZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJ1cmlTdGFydFN0cmluZyIsIGN1ci0+bmFtZSk7CisJCSAgICB4bWxTZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJyZXdyaXRlUHJlZml4IiwgY3VyLT52YWx1ZSk7CisJCSAgICB4bWxBZGRDaGlsZChjYXRhbG9nLCBub2RlKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9DQVRBX0RFTEVHQVRFX1VSSToKKwkJICAgIG5vZGUgPSB4bWxOZXdEb2NOb2RlKGRvYywgbnMsIEJBRF9DQVNUICJkZWxlZ2F0ZVVSSSIsIE5VTEwpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAidXJpU3RhcnRTdHJpbmciLCBjdXItPm5hbWUpOworCQkgICAgeG1sU2V0UHJvcChub2RlLCBCQURfQ0FTVCAiY2F0YWxvZyIsIGN1ci0+dmFsdWUpOworCQkgICAgeG1sQWRkQ2hpbGQoY2F0YWxvZywgbm9kZSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBTR01MX0NBVEFfU1lTVEVNOgorCQljYXNlIFNHTUxfQ0FUQV9QVUJMSUM6CisJCWNhc2UgU0dNTF9DQVRBX0VOVElUWToKKwkJY2FzZSBTR01MX0NBVEFfUEVOVElUWToKKwkJY2FzZSBTR01MX0NBVEFfRE9DVFlQRToKKwkJY2FzZSBTR01MX0NBVEFfTElOS1RZUEU6CisJCWNhc2UgU0dNTF9DQVRBX05PVEFUSU9OOgorCQljYXNlIFNHTUxfQ0FUQV9ERUxFR0FURToKKwkJY2FzZSBTR01MX0NBVEFfQkFTRToKKwkJY2FzZSBTR01MX0NBVEFfQ0FUQUxPRzoKKwkJY2FzZSBTR01MX0NBVEFfRE9DVU1FTlQ6CisJCWNhc2UgU0dNTF9DQVRBX1NHTUxERUNMOgorCQkgICAgYnJlYWs7CisJICAgIH0KKyAgICAgICAgfQorCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK3htbER1bXBYTUxDYXRhbG9nKEZJTEUgKm91dCwgeG1sQ2F0YWxvZ0VudHJ5UHRyIGNhdGFsKSB7CisgICAgaW50IHJldDsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbE5zUHRyIG5zOworICAgIHhtbER0ZFB0ciBkdGQ7CisgICAgeG1sTm9kZVB0ciBjYXRhbG9nOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7CisKKyAgICAvKgorICAgICAqIFJlYnVpbGQgYSBjYXRhbG9nCisgICAgICovCisgICAgZG9jID0geG1sTmV3RG9jKE5VTEwpOworICAgIGlmIChkb2MgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGR0ZCA9IHhtbE5ld0R0ZChkb2MsIEJBRF9DQVNUICJjYXRhbG9nIiwKKwkgICAgICAgQkFEX0NBU1QgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iLAorQkFEX0NBU1QgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiKTsKKworICAgIHhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBkb2MsICh4bWxOb2RlUHRyKSBkdGQpOworCisgICAgbnMgPSB4bWxOZXdOcyhOVUxMLCBYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFLCBOVUxMKTsKKyAgICBpZiAobnMgPT0gTlVMTCkgeworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBjYXRhbG9nID0geG1sTmV3RG9jTm9kZShkb2MsIG5zLCBCQURfQ0FTVCAiY2F0YWxvZyIsIE5VTEwpOworICAgIGlmIChjYXRhbG9nID09IE5VTEwpIHsKKwl4bWxGcmVlTnMobnMpOworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBjYXRhbG9nLT5uc0RlZiA9IG5zOworICAgIHhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBkb2MsIGNhdGFsb2cpOworCisgICAgeG1sRHVtcFhNTENhdGFsb2dOb2RlKGNhdGFsLCBjYXRhbG9nLCBkb2MsIG5zLCBOVUxMKTsKKyAgICAKKyAgICAvKgorICAgICAqIHJlc2VyaWFsaXplIGl0CisgICAgICovCisgICAgYnVmID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZShvdXQsIE5VTEwpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICByZXQgPSB4bWxTYXZlRm9ybWF0RmlsZVRvKGJ1ZiwgZG9jLCBOVUxMLCAxKTsKKworICAgIC8qCisgICAgICogRnJlZSBpdAorICAgICAqLworICAgIHhtbEZyZWVEb2MoZG9jKTsKKworICAgIHJldHVybihyZXQpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJQ29udmVydGluZyBTR01MIENhdGFsb2dzIHRvIFhNTAkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxDYXRhbG9nQ29udmVydEVudHJ5OgorICogQGVudHJ5OiAgdGhlIGVudHJ5CisgKiBAY2F0YWw6ICBwb2ludGVyIHRvIHRoZSBjYXRhbG9nIGJlaW5nIGNvbnZlcnRlZAorICoKKyAqIENvbnZlcnQgb25lIGVudHJ5IGZyb20gdGhlIGNhdGFsb2cKKyAqLworc3RhdGljIHZvaWQKK3htbENhdGFsb2dDb252ZXJ0RW50cnkoeG1sQ2F0YWxvZ0VudHJ5UHRyIGVudHJ5LCB4bWxDYXRhbG9nUHRyIGNhdGFsKSB7CisgICAgaWYgKChlbnRyeSA9PSBOVUxMKSB8fCAoY2F0YWwgPT0gTlVMTCkgfHwgKGNhdGFsLT5zZ21sID09IE5VTEwpIHx8CisJKGNhdGFsLT54bWwgPT0gTlVMTCkpCisJcmV0dXJuOworICAgIHN3aXRjaCAoZW50cnktPnR5cGUpIHsKKwljYXNlIFNHTUxfQ0FUQV9FTlRJVFk6CisJICAgIGVudHJ5LT50eXBlID0gWE1MX0NBVEFfUFVCTElDOworCSAgICBicmVhazsKKwljYXNlIFNHTUxfQ0FUQV9QRU5USVRZOgorCSAgICBlbnRyeS0+dHlwZSA9IFhNTF9DQVRBX1BVQkxJQzsKKwkgICAgYnJlYWs7CisJY2FzZSBTR01MX0NBVEFfRE9DVFlQRToKKwkgICAgZW50cnktPnR5cGUgPSBYTUxfQ0FUQV9QVUJMSUM7CisJICAgIGJyZWFrOworCWNhc2UgU0dNTF9DQVRBX0xJTktUWVBFOgorCSAgICBlbnRyeS0+dHlwZSA9IFhNTF9DQVRBX1BVQkxJQzsKKwkgICAgYnJlYWs7CisJY2FzZSBTR01MX0NBVEFfTk9UQVRJT046CisJICAgIGVudHJ5LT50eXBlID0gWE1MX0NBVEFfUFVCTElDOworCSAgICBicmVhazsKKwljYXNlIFNHTUxfQ0FUQV9QVUJMSUM6CisJICAgIGVudHJ5LT50eXBlID0gWE1MX0NBVEFfUFVCTElDOworCSAgICBicmVhazsKKwljYXNlIFNHTUxfQ0FUQV9TWVNURU06CisJICAgIGVudHJ5LT50eXBlID0gWE1MX0NBVEFfU1lTVEVNOworCSAgICBicmVhazsKKwljYXNlIFNHTUxfQ0FUQV9ERUxFR0FURToKKwkgICAgZW50cnktPnR5cGUgPSBYTUxfQ0FUQV9ERUxFR0FURV9QVUJMSUM7CisJICAgIGJyZWFrOworCWNhc2UgU0dNTF9DQVRBX0NBVEFMT0c6CisJICAgIGVudHJ5LT50eXBlID0gWE1MX0NBVEFfQ0FUQUxPRzsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgeG1sSGFzaFJlbW92ZUVudHJ5KGNhdGFsLT5zZ21sLCBlbnRyeS0+bmFtZSwKKwkJICAgICAgICAgICAgICAgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sRnJlZUNhdGFsb2dFbnRyeSk7CisJICAgIHJldHVybjsKKyAgICB9CisgICAgLyoKKyAgICAgKiBDb252ZXJzaW9uIHN1Y2Nlc3NmdWwsIHJlbW92ZSBmcm9tIHRoZSBTR01MIGNhdGFsb2cKKyAgICAgKiBhbmQgYWRkIGl0IHRvIHRoZSBkZWZhdWx0IFhNTCBvbmUKKyAgICAgKi8KKyAgICB4bWxIYXNoUmVtb3ZlRW50cnkoY2F0YWwtPnNnbWwsIGVudHJ5LT5uYW1lLCBOVUxMKTsKKyAgICBlbnRyeS0+cGFyZW50ID0gY2F0YWwtPnhtbDsKKyAgICBlbnRyeS0+bmV4dCA9IE5VTEw7CisgICAgaWYgKGNhdGFsLT54bWwtPmNoaWxkcmVuID09IE5VTEwpCisJY2F0YWwtPnhtbC0+Y2hpbGRyZW4gPSBlbnRyeTsKKyAgICBlbHNlIHsKKwl4bWxDYXRhbG9nRW50cnlQdHIgcHJldjsKKworCXByZXYgPSBjYXRhbC0+eG1sLT5jaGlsZHJlbjsKKwl3aGlsZSAocHJldi0+bmV4dCAhPSBOVUxMKQorCSAgICBwcmV2ID0gcHJldi0+bmV4dDsKKwlwcmV2LT5uZXh0ID0gZW50cnk7CisgICAgfQorfQorCisvKioKKyAqIHhtbENvbnZlcnRTR01MQ2F0YWxvZzoKKyAqIEBjYXRhbDogdGhlIGNhdGFsb2cKKyAqCisgKiBDb252ZXJ0IGFsbCB0aGUgU0dNTCBjYXRhbG9nIGVudHJpZXMgYXMgWE1MIG9uZXMKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZW50cmllcyBjb252ZXJ0ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sQ29udmVydFNHTUxDYXRhbG9nKHhtbENhdGFsb2dQdHIgY2F0YWwpIHsKKworICAgIGlmICgoY2F0YWwgPT0gTlVMTCkgfHwgKGNhdGFsLT50eXBlICE9IFhNTF9TR01MX0NBVEFMT0dfVFlQRSkpCisJcmV0dXJuKC0xKTsKKworICAgIGlmICh4bWxEZWJ1Z0NhdGFsb2dzKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJDb252ZXJ0aW5nIFNHTUwgY2F0YWxvZyB0byBYTUxcbiIpOworICAgIH0KKyAgICB4bWxIYXNoU2NhbihjYXRhbC0+c2dtbCwKKwkJKHhtbEhhc2hTY2FubmVyKSB4bWxDYXRhbG9nQ29udmVydEVudHJ5LAorCQkmY2F0YWwpOworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUhlbHBlciBmdW5jdGlvbgkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbENhdGFsb2dVbldyYXBVUk46CisgKiBAdXJuOiAgYW4gInVybjpwdWJsaWNpZDoiIHRvIHVud3JhcAorICoKKyAqIEV4cGFuZCB0aGUgVVJOIGludG8gdGhlIGVxdWl2YWxlbnQgUHVibGljIElkZW50aWZpZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgaWRlbnRpZmllciBvciBOVUxMLCB0aGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQKKyAqICAgICAgICAgYnkgdGhlIGNhbGxlci4KKyAqLworc3RhdGljIHhtbENoYXIgKgoreG1sQ2F0YWxvZ1VuV3JhcFVSTihjb25zdCB4bWxDaGFyICp1cm4pIHsKKyAgICB4bWxDaGFyIHJlc3VsdFsyMDAwXTsKKyAgICB1bnNpZ25lZCBpbnQgaSA9IDA7CisKKyAgICBpZiAoeG1sU3RybmNtcCh1cm4sIEJBRF9DQVNUIFhNTF9VUk5fUFVCSUQsIHNpemVvZihYTUxfVVJOX1BVQklEKSAtIDEpKQorCXJldHVybihOVUxMKTsKKyAgICB1cm4gKz0gc2l6ZW9mKFhNTF9VUk5fUFVCSUQpIC0gMTsKKyAgICAKKyAgICB3aGlsZSAoKnVybiAhPSAwKSB7CisJaWYgKGkgPiBzaXplb2YocmVzdWx0KSAtIDQpCisJICAgIGJyZWFrOworCWlmICgqdXJuID09ICcrJykgeworCSAgICByZXN1bHRbaSsrXSA9ICcgJzsKKwkgICAgdXJuKys7CisJfSBlbHNlIGlmICgqdXJuID09ICc6JykgeworCSAgICByZXN1bHRbaSsrXSA9ICcvJzsKKwkgICAgcmVzdWx0W2krK10gPSAnLyc7CisJICAgIHVybisrOworCX0gZWxzZSBpZiAoKnVybiA9PSAnOycpIHsKKwkgICAgcmVzdWx0W2krK10gPSAnOic7CisJICAgIHJlc3VsdFtpKytdID0gJzonOworCSAgICB1cm4rKzsKKwl9IGVsc2UgaWYgKCp1cm4gPT0gJyUnKSB7CisJICAgIGlmICgodXJuWzFdID09ICcyJykgJiYgKHVyblsyXSA9PSAnQicpKQorCQlyZXN1bHRbaSsrXSA9ICcrJzsKKwkgICAgZWxzZSBpZiAoKHVyblsxXSA9PSAnMycpICYmICh1cm5bMl0gPT0gJ0EnKSkKKwkJcmVzdWx0W2krK10gPSAnOic7CisJICAgIGVsc2UgaWYgKCh1cm5bMV0gPT0gJzInKSAmJiAodXJuWzJdID09ICdGJykpCisJCXJlc3VsdFtpKytdID0gJy8nOworCSAgICBlbHNlIGlmICgodXJuWzFdID09ICczJykgJiYgKHVyblsyXSA9PSAnQicpKQorCQlyZXN1bHRbaSsrXSA9ICc7JzsKKwkgICAgZWxzZSBpZiAoKHVyblsxXSA9PSAnMicpICYmICh1cm5bMl0gPT0gJzcnKSkKKwkJcmVzdWx0W2krK10gPSAnXCcnOworCSAgICBlbHNlIGlmICgodXJuWzFdID09ICczJykgJiYgKHVyblsyXSA9PSAnRicpKQorCQlyZXN1bHRbaSsrXSA9ICc/JzsKKwkgICAgZWxzZSBpZiAoKHVyblsxXSA9PSAnMicpICYmICh1cm5bMl0gPT0gJzMnKSkKKwkJcmVzdWx0W2krK10gPSAnIyc7CisJICAgIGVsc2UgaWYgKCh1cm5bMV0gPT0gJzInKSAmJiAodXJuWzJdID09ICc1JykpCisJCXJlc3VsdFtpKytdID0gJyUnOworCSAgICBlbHNlIHsKKwkJcmVzdWx0W2krK10gPSAqdXJuOworCQl1cm4rKzsKKwkJY29udGludWU7CisJICAgIH0KKwkgICAgdXJuICs9IDM7CisJfSBlbHNlIHsKKwkgICAgcmVzdWx0W2krK10gPSAqdXJuOworCSAgICB1cm4rKzsKKwl9CisgICAgfQorICAgIHJlc3VsdFtpXSA9IDA7CisKKyAgICByZXR1cm4oeG1sU3RyZHVwKHJlc3VsdCkpOworfQorCisvKioKKyAqIHhtbFBhcnNlQ2F0YWxvZ0ZpbGU6CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUKKyAqCisgKiBwYXJzZSBhbiBYTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBJdCdzIGxpa2UgeG1sUGFyc2VGaWxlKCkKKyAqIGV4Y2VwdCBpdCBieXBhc3MgYWxsIGNhdGFsb2cgbG9va3Vwcy4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworCit4bWxEb2NQdHIKK3htbFBhcnNlQ2F0YWxvZ0ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxEb2NQdHIgcmV0OworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICBjaGFyICpkaXJlY3RvcnkgPSBOVUxMOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0U3RyZWFtOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGJ1ZjsKKworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKwlpZiAoeG1sRGVmYXVsdFNBWEhhbmRsZXIuZXJyb3IgIT0gTlVMTCkgeworCSAgICB4bWxEZWZhdWx0U0FYSGFuZGxlci5lcnJvcihOVUxMLCAib3V0IG9mIG1lbW9yeVxuIik7CisJfQorI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGJ1ZiA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoZmlsZW5hbWUsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpbnB1dFN0cmVhbSA9IHhtbE5ld0lucHV0U3RyZWFtKGN0eHQpOworICAgIGlmIChpbnB1dFN0cmVhbSA9PSBOVUxMKSB7CisJeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlucHV0U3RyZWFtLT5maWxlbmFtZSA9IChjaGFyICopIHhtbENhbm9uaWNQYXRoKChjb25zdCB4bWxDaGFyICopZmlsZW5hbWUpOworICAgIGlucHV0U3RyZWFtLT5idWYgPSBidWY7CisgICAgaW5wdXRTdHJlYW0tPmJhc2UgPSBpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXRTdHJlYW0tPmN1ciA9IGlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICBpbnB1dFN0cmVhbS0+ZW5kID0gCisJJmlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPnVzZV07CisKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXRTdHJlYW0pOworICAgIGlmICgoY3R4dC0+ZGlyZWN0b3J5ID09IE5VTEwpICYmIChkaXJlY3RvcnkgPT0gTlVMTCkpCisgICAgICAgIGRpcmVjdG9yeSA9IHhtbFBhcnNlckdldERpcmVjdG9yeShmaWxlbmFtZSk7CisgICAgaWYgKChjdHh0LT5kaXJlY3RvcnkgPT0gTlVMTCkgJiYgKGRpcmVjdG9yeSAhPSBOVUxMKSkKKyAgICAgICAgY3R4dC0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OworICAgIGN0eHQtPnZhbGlkID0gMDsKKyAgICBjdHh0LT52YWxpZGF0ZSA9IDA7CisgICAgY3R4dC0+bG9hZHN1YnNldCA9IDA7CisgICAgY3R4dC0+cGVkYW50aWMgPSAwOworICAgIGN0eHQtPmRpY3ROYW1lcyA9IDE7CisKKyAgICB4bWxQYXJzZURvY3VtZW50KGN0eHQpOworCisgICAgaWYgKGN0eHQtPndlbGxGb3JtZWQpCisJcmV0ID0gY3R4dC0+bXlEb2M7CisgICAgZWxzZSB7CisgICAgICAgIHJldCA9IE5VTEw7CisgICAgICAgIHhtbEZyZWVEb2MoY3R4dC0+bXlEb2MpOworICAgICAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIAorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbExvYWRGaWxlQ29udGVudDoKKyAqIEBmaWxlbmFtZTogIGEgZmlsZSBwYXRoCisgKgorICogTG9hZCBhIGZpbGUgY29udGVudCBpbnRvIG1lbW9yeS4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgMCB0ZXJtaW5hdGVkIHN0cmluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbENoYXIgKgoreG1sTG9hZEZpbGVDb250ZW50KGNvbnN0IGNoYXIgKmZpbGVuYW1lKQoreworI2lmZGVmIEhBVkVfU1RBVAorICAgIGludCBmZDsKKyNlbHNlCisgICAgRklMRSAqZmQ7CisjZW5kaWYKKyAgICBpbnQgbGVuOworICAgIGxvbmcgc2l6ZTsKKworI2lmZGVmIEhBVkVfU1RBVAorICAgIHN0cnVjdCBzdGF0IGluZm87CisjZW5kaWYKKyAgICB4bWxDaGFyICpjb250ZW50OworCisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyNpZmRlZiBIQVZFX1NUQVQKKyAgICBpZiAoc3RhdChmaWxlbmFtZSwgJmluZm8pIDwgMCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9TVEFUCisgICAgaWYgKChmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRPTkxZKSkgPCAwKQorI2Vsc2UKKyAgICBpZiAoKGZkID0gZm9wZW4oZmlsZW5hbWUsICJyYiIpKSA9PSBOVUxMKQorI2VuZGlmCisgICAgeworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyNpZmRlZiBIQVZFX1NUQVQKKyAgICBzaXplID0gaW5mby5zdF9zaXplOworI2Vsc2UKKyAgICBpZiAoZnNlZWsoZmQsIDAsIFNFRUtfRU5EKSB8fCAoc2l6ZSA9IGZ0ZWxsKGZkKSkgPT0gRU9GIHx8IGZzZWVrKGZkLCAwLCBTRUVLX1NFVCkpIHsgICAgICAgIC8qIEZpbGUgb3BlcmF0aW9ucyBkZW5pZWQ/IG9rLCBqdXN0IGNsb3NlIGFuZCByZXR1cm4gZmFpbHVyZSAqLworICAgICAgICBmY2xvc2UoZmQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyNlbmRpZgorICAgIGNvbnRlbnQgPSB4bWxNYWxsb2NBdG9taWMoc2l6ZSArIDEwKTsKKyAgICBpZiAoY29udGVudCA9PSBOVUxMKSB7CisgICAgICAgIHhtbENhdGFsb2dFcnJNZW1vcnkoImFsbG9jYXRpbmcgY2F0YWxvZyBkYXRhIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorI2lmZGVmIEhBVkVfU1RBVAorICAgIGxlbiA9IHJlYWQoZmQsIGNvbnRlbnQsIHNpemUpOworI2Vsc2UKKyAgICBsZW4gPSBmcmVhZChjb250ZW50LCAxLCBzaXplLCBmZCk7CisjZW5kaWYKKyAgICBpZiAobGVuIDwgMCkgeworICAgICAgICB4bWxGcmVlKGNvbnRlbnQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyNpZmRlZiBIQVZFX1NUQVQKKyAgICBjbG9zZShmZCk7CisjZWxzZQorICAgIGZjbG9zZShmZCk7CisjZW5kaWYKKyAgICBjb250ZW50W2xlbl0gPSAwOworCisgICAgcmV0dXJuKGNvbnRlbnQpOworfQorCisvKioKKyAqIHhtbENhdGFsb2dOb3JtYWxpemVQdWJsaWM6CisgKiBAcHViSUQ6ICB0aGUgcHVibGljIElEIHN0cmluZworICoKKyAqICBOb3JtYWxpemVzIHRoZSBQdWJsaWMgSWRlbnRpZmllcgorICoKKyAqIEltcGxlbWVudHMgNi4yLiBQdWJsaWMgSWRlbnRpZmllciBOb3JtYWxpemF0aW9uCisgKiBmcm9tIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy0yMDAxLTA4LTA2Lmh0bWwKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc3RyaW5nIG9yIE5VTEwsIHRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZAorICogICAgICAgICBieSB0aGUgY2FsbGVyLgorICovCitzdGF0aWMgeG1sQ2hhciAqCit4bWxDYXRhbG9nTm9ybWFsaXplUHVibGljKGNvbnN0IHhtbENoYXIgKnB1YklEKQoreworICAgIGludCBvayA9IDE7CisgICAgaW50IHdoaXRlOworICAgIGNvbnN0IHhtbENoYXIgKnA7CisgICAgeG1sQ2hhciAqcmV0OworICAgIHhtbENoYXIgKnE7CisKKyAgICBpZiAocHViSUQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgd2hpdGUgPSAxOworICAgIGZvciAocCA9IHB1YklEOypwICE9IDAgJiYgb2s7cCsrKSB7CisgICAgICAgIGlmICgheG1sSXNCbGFua19jaCgqcCkpCisgICAgICAgICAgICB3aGl0ZSA9IDA7CisgICAgICAgIGVsc2UgaWYgKCpwID09IDB4MjAgJiYgIXdoaXRlKQorICAgICAgICAgICAgd2hpdGUgPSAxOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvayA9IDA7CisgICAgfQorICAgIGlmIChvayAmJiAhd2hpdGUpCS8qIGlzIG5vcm1hbGl6ZWQgKi8KKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0geG1sU3RyZHVwKHB1YklEKTsKKyAgICBxID0gcmV0OworICAgIHdoaXRlID0gMDsKKyAgICBmb3IgKHAgPSBwdWJJRDsqcCAhPSAwO3ArKykgeworICAgICAgICBpZiAoeG1sSXNCbGFua19jaCgqcCkpIHsKKyAgICAgICAgICAgIGlmIChxICE9IHJldCkKKyAgICAgICAgICAgICAgICB3aGl0ZSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAod2hpdGUpIHsKKyAgICAgICAgICAgICAgICAqKHErKykgPSAweDIwOworICAgICAgICAgICAgICAgIHdoaXRlID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICoocSsrKSA9ICpwOworICAgICAgICB9CisgICAgfQorICAgICpxID0gMDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVRoZSBYTUwgQ2F0YWxvZyBwYXJzZXIJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgeG1sQ2F0YWxvZ0VudHJ5UHRyCit4bWxQYXJzZVhNTENhdGFsb2dGaWxlKHhtbENhdGFsb2dQcmVmZXIgcHJlZmVyLCBjb25zdCB4bWxDaGFyICpmaWxlbmFtZSk7CitzdGF0aWMgdm9pZAoreG1sUGFyc2VYTUxDYXRhbG9nTm9kZUxpc3QoeG1sTm9kZVB0ciBjdXIsIHhtbENhdGFsb2dQcmVmZXIgcHJlZmVyLAorCSAgICAgICAgICAgICAgICAgICB4bWxDYXRhbG9nRW50cnlQdHIgcGFyZW50LCB4bWxDYXRhbG9nRW50cnlQdHIgY2dyb3VwKTsKK3N0YXRpYyB4bWxDaGFyICoKK3htbENhdGFsb2dMaXN0WE1MUmVzb2x2ZSh4bWxDYXRhbG9nRW50cnlQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKnB1YklELAorCSAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3lzSUQpOworc3RhdGljIHhtbENoYXIgKgoreG1sQ2F0YWxvZ0xpc3RYTUxSZXNvbHZlVVJJKHhtbENhdGFsb2dFbnRyeVB0ciBjYXRhbCwgY29uc3QgeG1sQ2hhciAqVVJJKTsKKworCisvKioKKyAqIHhtbEdldFhNTENhdGFsb2dFbnRyeVR5cGU6CisgKiBAbmFtZTogIHRoZSBuYW1lCisgKgorICogbG9va3VwIHRoZSBpbnRlcm5hbCB0eXBlIGFzc29jaWF0ZWQgdG8gYW4gWE1MIGNhdGFsb2cgZW50cnkgbmFtZQorICoKKyAqIFJldHVybnMgdGhlIHR5cGUgYXNzb2NpYXRlZCB3aXRoIHRoYXQgbmFtZQorICovCitzdGF0aWMgeG1sQ2F0YWxvZ0VudHJ5VHlwZQoreG1sR2V0WE1MQ2F0YWxvZ0VudHJ5VHlwZShjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sQ2F0YWxvZ0VudHJ5VHlwZSB0eXBlID0gWE1MX0NBVEFfTk9ORTsKKyAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgInN5c3RlbSIpKQorCXR5cGUgPSBYTUxfQ0FUQV9TWVNURU07CisgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgInB1YmxpYyIpKQorCXR5cGUgPSBYTUxfQ0FUQV9QVUJMSUM7CisgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgInJld3JpdGVTeXN0ZW0iKSkKKwl0eXBlID0gWE1MX0NBVEFfUkVXUklURV9TWVNURU07CisgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgImRlbGVnYXRlUHVibGljIikpCisJdHlwZSA9IFhNTF9DQVRBX0RFTEVHQVRFX1BVQkxJQzsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiZGVsZWdhdGVTeXN0ZW0iKSkKKwl0eXBlID0gWE1MX0NBVEFfREVMRUdBVEVfU1lTVEVNOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJ1cmkiKSkKKwl0eXBlID0gWE1MX0NBVEFfVVJJOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJyZXdyaXRlVVJJIikpCisJdHlwZSA9IFhNTF9DQVRBX1JFV1JJVEVfVVJJOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJkZWxlZ2F0ZVVSSSIpKQorCXR5cGUgPSBYTUxfQ0FUQV9ERUxFR0FURV9VUkk7CisgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgIm5leHRDYXRhbG9nIikpCisJdHlwZSA9IFhNTF9DQVRBX05FWFRfQ0FUQUxPRzsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiY2F0YWxvZyIpKQorCXR5cGUgPSBYTUxfQ0FUQV9DQVRBTE9HOworICAgIHJldHVybih0eXBlKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVhNTENhdGFsb2dPbmVOb2RlOgorICogQGN1cjogIHRoZSBYTUwgbm9kZQorICogQHR5cGU6ICB0aGUgdHlwZSBvZiBDYXRhbG9nIGVudHJ5CisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBub2RlCisgKiBAYXR0ck5hbWU6ICB0aGUgYXR0cmlidXRlIGhvbGRpbmcgdGhlIHZhbHVlCisgKiBAdXJpQXR0ck5hbWU6ICB0aGUgYXR0cmlidXRlIGhvbGRpbmcgdGhlIFVSSS1SZWZlcmVuY2UKKyAqIEBwcmVmZXI6ICB0aGUgUFVCTElDIHZzLiBTWVNURU0gY3VycmVudCBwcmVmZXJlbmNlIHZhbHVlCisgKiBAY2dyb3VwOiAgdGhlIGdyb3VwIHdoaWNoIGluY2x1ZGVzIHRoaXMgbm9kZQorICoKKyAqIEZpbmlzaGVzIHRoZSBleGFtaW5hdGlvbiBvZiBhbiBYTUwgdHJlZSBub2RlIG9mIGEgY2F0YWxvZyBhbmQgYnVpbGQKKyAqIGEgQ2F0YWxvZyBlbnRyeSBmcm9tIGl0LgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBDYXRhbG9nIGVudHJ5IG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sQ2F0YWxvZ0VudHJ5UHRyCit4bWxQYXJzZVhNTENhdGFsb2dPbmVOb2RlKHhtbE5vZGVQdHIgY3VyLCB4bWxDYXRhbG9nRW50cnlUeXBlIHR5cGUsCisJCQkgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKmF0dHJOYW1lLAorCQkJICBjb25zdCB4bWxDaGFyICp1cmlBdHRyTmFtZSwgeG1sQ2F0YWxvZ1ByZWZlciBwcmVmZXIsCisJCQkgIHhtbENhdGFsb2dFbnRyeVB0ciBjZ3JvdXApIHsKKyAgICBpbnQgb2sgPSAxOworICAgIHhtbENoYXIgKnVyaVZhbHVlOworICAgIHhtbENoYXIgKm5hbWVWYWx1ZSA9IE5VTEw7CisgICAgeG1sQ2hhciAqYmFzZSA9IE5VTEw7CisgICAgeG1sQ2hhciAqVVJMID0gTlVMTDsKKyAgICB4bWxDYXRhbG9nRW50cnlQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmIChhdHRyTmFtZSAhPSBOVUxMKSB7CisJbmFtZVZhbHVlID0geG1sR2V0UHJvcChjdXIsIGF0dHJOYW1lKTsKKwlpZiAobmFtZVZhbHVlID09IE5VTEwpIHsKKwkgICAgeG1sQ2F0YWxvZ0VycihyZXQsIGN1ciwgWE1MX0NBVEFMT0dfTUlTU0lOR19BVFRSLAorCQkJICAiJXMgZW50cnkgbGFja3MgJyVzJ1xuIiwgbmFtZSwgYXR0ck5hbWUsIE5VTEwpOworCSAgICBvayA9IDA7CisJfQorICAgIH0KKyAgICB1cmlWYWx1ZSA9IHhtbEdldFByb3AoY3VyLCB1cmlBdHRyTmFtZSk7CisgICAgaWYgKHVyaVZhbHVlID09IE5VTEwpIHsKKwl4bWxDYXRhbG9nRXJyKHJldCwgY3VyLCBYTUxfQ0FUQUxPR19NSVNTSU5HX0FUVFIsCisJCSIlcyBlbnRyeSBsYWNrcyAnJXMnXG4iLCBuYW1lLCB1cmlBdHRyTmFtZSwgTlVMTCk7CisJb2sgPSAwOworICAgIH0KKyAgICBpZiAoIW9rKSB7CisJaWYgKG5hbWVWYWx1ZSAhPSBOVUxMKQorCSAgICB4bWxGcmVlKG5hbWVWYWx1ZSk7CisJaWYgKHVyaVZhbHVlICE9IE5VTEwpCisJICAgIHhtbEZyZWUodXJpVmFsdWUpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBiYXNlID0geG1sTm9kZUdldEJhc2UoY3VyLT5kb2MsIGN1cik7CisgICAgVVJMID0geG1sQnVpbGRVUkkodXJpVmFsdWUsIGJhc2UpOworICAgIGlmIChVUkwgIT0gTlVMTCkgeworCWlmICh4bWxEZWJ1Z0NhdGFsb2dzID4gMSkgeworCSAgICBpZiAobmFtZVZhbHVlICE9IE5VTEwpCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkZvdW5kICVzOiAnJXMnICclcydcbiIsIG5hbWUsIG5hbWVWYWx1ZSwgVVJMKTsKKwkgICAgZWxzZQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJGb3VuZCAlczogJyVzJ1xuIiwgbmFtZSwgVVJMKTsKKwl9CisJcmV0ID0geG1sTmV3Q2F0YWxvZ0VudHJ5KHR5cGUsIG5hbWVWYWx1ZSwgdXJpVmFsdWUsIFVSTCwgcHJlZmVyLCBjZ3JvdXApOworICAgIH0gZWxzZSB7CisJeG1sQ2F0YWxvZ0VycihyZXQsIGN1ciwgWE1MX0NBVEFMT0dfRU5UUllfQlJPS0VOLAorCQkiJXMgZW50cnkgJyVzJyBicm9rZW4gPzogJXNcbiIsIG5hbWUsIHVyaUF0dHJOYW1lLCB1cmlWYWx1ZSk7CisgICAgfQorICAgIGlmIChuYW1lVmFsdWUgIT0gTlVMTCkKKwl4bWxGcmVlKG5hbWVWYWx1ZSk7CisgICAgaWYgKHVyaVZhbHVlICE9IE5VTEwpCisJeG1sRnJlZSh1cmlWYWx1ZSk7CisgICAgaWYgKGJhc2UgIT0gTlVMTCkKKwl4bWxGcmVlKGJhc2UpOworICAgIGlmIChVUkwgIT0gTlVMTCkKKwl4bWxGcmVlKFVSTCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VYTUxDYXRhbG9nTm9kZToKKyAqIEBjdXI6ICB0aGUgWE1MIG5vZGUKKyAqIEBwcmVmZXI6ICB0aGUgUFVCTElDIHZzLiBTWVNURU0gY3VycmVudCBwcmVmZXJlbmNlIHZhbHVlCisgKiBAcGFyZW50OiAgdGhlIHBhcmVudCBDYXRhbG9nIGVudHJ5CisgKiBAY2dyb3VwOiAgdGhlIGdyb3VwIHdoaWNoIGluY2x1ZGVzIHRoaXMgbm9kZQorICoKKyAqIEV4YW1pbmVzIGFuIFhNTCB0cmVlIG5vZGUgb2YgYSBjYXRhbG9nIGFuZCBidWlsZAorICogYSBDYXRhbG9nIGVudHJ5IGZyb20gaXQgYWRkaW5nIGl0IHRvIGl0cyBwYXJlbnQuIFRoZSBleGFtaW5hdGlvbiBjYW4KKyAqIGJlIHJlY3Vyc2l2ZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFBhcnNlWE1MQ2F0YWxvZ05vZGUoeG1sTm9kZVB0ciBjdXIsIHhtbENhdGFsb2dQcmVmZXIgcHJlZmVyLAorCSAgICAgICAgICAgICAgIHhtbENhdGFsb2dFbnRyeVB0ciBwYXJlbnQsIHhtbENhdGFsb2dFbnRyeVB0ciBjZ3JvdXApCit7CisgICAgeG1sQ2hhciAqYmFzZSA9IE5VTEw7CisgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIGVudHJ5ID0gTlVMTDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJncm91cCIpKSB7CisgICAgICAgIHhtbENoYXIgKnByb3A7CisJeG1sQ2F0YWxvZ1ByZWZlciBwcmVmID0gWE1MX0NBVEFfUFJFRkVSX05PTkU7CisKKyAgICAgICAgcHJvcCA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAicHJlZmVyIik7CisgICAgICAgIGlmIChwcm9wICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmICh4bWxTdHJFcXVhbChwcm9wLCBCQURfQ0FTVCAic3lzdGVtIikpIHsKKyAgICAgICAgICAgICAgICBwcmVmZXIgPSBYTUxfQ0FUQV9QUkVGRVJfU1lTVEVNOworICAgICAgICAgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChwcm9wLCBCQURfQ0FTVCAicHVibGljIikpIHsKKyAgICAgICAgICAgICAgICBwcmVmZXIgPSBYTUxfQ0FUQV9QUkVGRVJfUFVCTElDOworICAgICAgICAgICAgfSBlbHNlIHsKKwkJeG1sQ2F0YWxvZ0VycihwYXJlbnQsIGN1ciwgWE1MX0NBVEFMT0dfUFJFRkVSX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgdmFsdWUgZm9yIHByZWZlcjogJyVzJ1xuIiwKKwkJCSAgICAgIHByb3AsIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeG1sRnJlZShwcm9wKTsKKwkgICAgcHJlZiA9IHByZWZlcjsKKyAgICAgICAgfQorCXByb3AgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgImlkIik7CisJYmFzZSA9IHhtbEdldE5zUHJvcChjdXIsIEJBRF9DQVNUICJiYXNlIiwgWE1MX1hNTF9OQU1FU1BBQ0UpOworCWVudHJ5ID0geG1sTmV3Q2F0YWxvZ0VudHJ5KFhNTF9DQVRBX0dST1VQLCBwcm9wLCBiYXNlLCBOVUxMLCBwcmVmLCBjZ3JvdXApOworCXhtbEZyZWUocHJvcCk7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJwdWJsaWMiKSkgeworCWVudHJ5ID0geG1sUGFyc2VYTUxDYXRhbG9nT25lTm9kZShjdXIsIFhNTF9DQVRBX1BVQkxJQywKKwkJQkFEX0NBU1QgInB1YmxpYyIsIEJBRF9DQVNUICJwdWJsaWNJZCIsIEJBRF9DQVNUICJ1cmkiLCBwcmVmZXIsIGNncm91cCk7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJzeXN0ZW0iKSkgeworCWVudHJ5ID0geG1sUGFyc2VYTUxDYXRhbG9nT25lTm9kZShjdXIsIFhNTF9DQVRBX1NZU1RFTSwKKwkJQkFEX0NBU1QgInN5c3RlbSIsIEJBRF9DQVNUICJzeXN0ZW1JZCIsIEJBRF9DQVNUICJ1cmkiLCBwcmVmZXIsIGNncm91cCk7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJyZXdyaXRlU3lzdGVtIikpIHsKKwllbnRyeSA9IHhtbFBhcnNlWE1MQ2F0YWxvZ09uZU5vZGUoY3VyLCBYTUxfQ0FUQV9SRVdSSVRFX1NZU1RFTSwKKwkJQkFEX0NBU1QgInJld3JpdGVTeXN0ZW0iLCBCQURfQ0FTVCAic3lzdGVtSWRTdGFydFN0cmluZyIsCisJCUJBRF9DQVNUICJyZXdyaXRlUHJlZml4IiwgcHJlZmVyLCBjZ3JvdXApOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAiZGVsZWdhdGVQdWJsaWMiKSkgeworCWVudHJ5ID0geG1sUGFyc2VYTUxDYXRhbG9nT25lTm9kZShjdXIsIFhNTF9DQVRBX0RFTEVHQVRFX1BVQkxJQywKKwkJQkFEX0NBU1QgImRlbGVnYXRlUHVibGljIiwgQkFEX0NBU1QgInB1YmxpY0lkU3RhcnRTdHJpbmciLAorCQlCQURfQ0FTVCAiY2F0YWxvZyIsIHByZWZlciwgY2dyb3VwKTsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgImRlbGVnYXRlU3lzdGVtIikpIHsKKwllbnRyeSA9IHhtbFBhcnNlWE1MQ2F0YWxvZ09uZU5vZGUoY3VyLCBYTUxfQ0FUQV9ERUxFR0FURV9TWVNURU0sCisJCUJBRF9DQVNUICJkZWxlZ2F0ZVN5c3RlbSIsIEJBRF9DQVNUICJzeXN0ZW1JZFN0YXJ0U3RyaW5nIiwKKwkJQkFEX0NBU1QgImNhdGFsb2ciLCBwcmVmZXIsIGNncm91cCk7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJ1cmkiKSkgeworCWVudHJ5ID0geG1sUGFyc2VYTUxDYXRhbG9nT25lTm9kZShjdXIsIFhNTF9DQVRBX1VSSSwKKwkJQkFEX0NBU1QgInVyaSIsIEJBRF9DQVNUICJuYW1lIiwKKwkJQkFEX0NBU1QgInVyaSIsIHByZWZlciwgY2dyb3VwKTsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgInJld3JpdGVVUkkiKSkgeworCWVudHJ5ID0geG1sUGFyc2VYTUxDYXRhbG9nT25lTm9kZShjdXIsIFhNTF9DQVRBX1JFV1JJVEVfVVJJLAorCQlCQURfQ0FTVCAicmV3cml0ZVVSSSIsIEJBRF9DQVNUICJ1cmlTdGFydFN0cmluZyIsCisJCUJBRF9DQVNUICJyZXdyaXRlUHJlZml4IiwgcHJlZmVyLCBjZ3JvdXApOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAiZGVsZWdhdGVVUkkiKSkgeworCWVudHJ5ID0geG1sUGFyc2VYTUxDYXRhbG9nT25lTm9kZShjdXIsIFhNTF9DQVRBX0RFTEVHQVRFX1VSSSwKKwkJQkFEX0NBU1QgImRlbGVnYXRlVVJJIiwgQkFEX0NBU1QgInVyaVN0YXJ0U3RyaW5nIiwKKwkJQkFEX0NBU1QgImNhdGFsb2ciLCBwcmVmZXIsIGNncm91cCk7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJuZXh0Q2F0YWxvZyIpKSB7CisJZW50cnkgPSB4bWxQYXJzZVhNTENhdGFsb2dPbmVOb2RlKGN1ciwgWE1MX0NBVEFfTkVYVF9DQVRBTE9HLAorCQlCQURfQ0FTVCAibmV4dENhdGFsb2ciLCBOVUxMLAorCQlCQURfQ0FTVCAiY2F0YWxvZyIsIHByZWZlciwgY2dyb3VwKTsKKyAgICB9CisgICAgaWYgKGVudHJ5ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHBhcmVudCAhPSBOVUxMKSB7CisJICAgIGVudHJ5LT5wYXJlbnQgPSBwYXJlbnQ7CisJICAgIGlmIChwYXJlbnQtPmNoaWxkcmVuID09IE5VTEwpCisJCXBhcmVudC0+Y2hpbGRyZW4gPSBlbnRyeTsKKwkgICAgZWxzZSB7CisJCXhtbENhdGFsb2dFbnRyeVB0ciBwcmV2OworCisJCXByZXYgPSBwYXJlbnQtPmNoaWxkcmVuOworCQl3aGlsZSAocHJldi0+bmV4dCAhPSBOVUxMKQorCQkgICAgcHJldiA9IHByZXYtPm5leHQ7CisJCXByZXYtPm5leHQgPSBlbnRyeTsKKwkgICAgfQorCX0KKwlpZiAoZW50cnktPnR5cGUgPT0gWE1MX0NBVEFfR1JPVVApIHsKKwkgICAgLyoKKwkgICAgICogUmVjdXJzZSB0byBwcm9wYWdhdGUgcHJlZmVyIHRvIHRoZSBzdWJ0cmVlCisJICAgICAqICh4bWw6YmFzZSBoYW5kbGluZyBpcyBhdXRvbWF0ZWQpCisJICAgICAqLworICAgICAgICAgICAgeG1sUGFyc2VYTUxDYXRhbG9nTm9kZUxpc3QoY3VyLT5jaGlsZHJlbiwgcHJlZmVyLCBwYXJlbnQsIGVudHJ5KTsKKwl9CisgICAgfQorICAgIGlmIChiYXNlICE9IE5VTEwpCisJeG1sRnJlZShiYXNlKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVhNTENhdGFsb2dOb2RlTGlzdDoKKyAqIEBjdXI6ICB0aGUgWE1MIG5vZGUgbGlzdCBvZiBzaWJsaW5ncworICogQHByZWZlcjogIHRoZSBQVUJMSUMgdnMuIFNZU1RFTSBjdXJyZW50IHByZWZlcmVuY2UgdmFsdWUKKyAqIEBwYXJlbnQ6ICB0aGUgcGFyZW50IENhdGFsb2cgZW50cnkKKyAqIEBjZ3JvdXA6ICB0aGUgZ3JvdXAgd2hpY2ggaW5jbHVkZXMgdGhpcyBsaXN0CisgKgorICogRXhhbWluZXMgYSBsaXN0IG9mIFhNTCBzaWJsaW5nIG5vZGVzIG9mIGEgY2F0YWxvZyBhbmQgYnVpbGQKKyAqIGEgbGlzdCBvZiBDYXRhbG9nIGVudHJ5IGZyb20gaXQgYWRkaW5nIGl0IHRvIHRoZSBwYXJlbnQuCisgKiBUaGUgZXhhbWluYXRpb24gd2lsbCByZWN1cnNlIHRvIGV4YW1pbmUgbm9kZSBzdWJ0cmVlcy4KKyAqLworc3RhdGljIHZvaWQKK3htbFBhcnNlWE1MQ2F0YWxvZ05vZGVMaXN0KHhtbE5vZGVQdHIgY3VyLCB4bWxDYXRhbG9nUHJlZmVyIHByZWZlciwKKwkgICAgICAgICAgICAgICAgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIHBhcmVudCwgeG1sQ2F0YWxvZ0VudHJ5UHRyIGNncm91cCkgeworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCWlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJiAoY3VyLT5ucy0+aHJlZiAhPSBOVUxMKSAmJgorCSAgICAoeG1sU3RyRXF1YWwoY3VyLT5ucy0+aHJlZiwgWE1MX0NBVEFMT0dTX05BTUVTUEFDRSkpKSB7CisJICAgIHhtbFBhcnNlWE1MQ2F0YWxvZ05vZGUoY3VyLCBwcmVmZXIsIHBhcmVudCwgY2dyb3VwKTsKKwl9CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICAvKiBUT0RPOiBzb3J0IHRoZSBsaXN0IGFjY29yZGluZyB0byBSRVdSSVRFIGxlbmd0aHMgYW5kIHByZWZlciB2YWx1ZSAqLworfQorCisvKioKKyAqIHhtbFBhcnNlWE1MQ2F0YWxvZ0ZpbGU6CisgKiBAcHJlZmVyOiAgdGhlIFBVQkxJQyB2cy4gU1lTVEVNIGN1cnJlbnQgcHJlZmVyZW5jZSB2YWx1ZQorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lIGZvciB0aGUgY2F0YWxvZworICoKKyAqIFBhcnNlcyB0aGUgY2F0YWxvZyBmaWxlIHRvIGV4dHJhY3QgdGhlIFhNTCB0cmVlIGFuZCB0aGVuIGFuYWx5emUgdGhlCisgKiB0cmVlIHRvIGJ1aWxkIGEgbGlzdCBvZiBDYXRhbG9nIGVudHJpZXMgY29ycmVzcG9uZGluZyB0byB0aGlzIGNhdGFsb2cKKyAqIAorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIENhdGFsb2cgZW50cmllcyBsaXN0CisgKi8KK3N0YXRpYyB4bWxDYXRhbG9nRW50cnlQdHIKK3htbFBhcnNlWE1MQ2F0YWxvZ0ZpbGUoeG1sQ2F0YWxvZ1ByZWZlciBwcmVmZXIsIGNvbnN0IHhtbENoYXIgKmZpbGVuYW1lKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxDaGFyICpwcm9wOworICAgIHhtbENhdGFsb2dFbnRyeVB0ciBwYXJlbnQgPSBOVUxMOworCisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIGRvYyA9IHhtbFBhcnNlQ2F0YWxvZ0ZpbGUoKGNvbnN0IGNoYXIgKikgZmlsZW5hbWUpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworCWlmICh4bWxEZWJ1Z0NhdGFsb2dzKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJGYWlsZWQgdG8gcGFyc2UgY2F0YWxvZyAlc1xuIiwgZmlsZW5hbWUpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIiVkIFBhcnNpbmcgY2F0YWxvZyAlc1xuIiwgeG1sR2V0VGhyZWFkSWQoKSwgZmlsZW5hbWUpOworCisgICAgY3VyID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAoKGN1ciAhPSBOVUxMKSAmJiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAiY2F0YWxvZyIpKSAmJgorCShjdXItPm5zICE9IE5VTEwpICYmIChjdXItPm5zLT5ocmVmICE9IE5VTEwpICYmCisJKHhtbFN0ckVxdWFsKGN1ci0+bnMtPmhyZWYsIFhNTF9DQVRBTE9HU19OQU1FU1BBQ0UpKSkgeworCisJcGFyZW50ID0geG1sTmV3Q2F0YWxvZ0VudHJ5KFhNTF9DQVRBX0NBVEFMT0csIE5VTEwsCisJCQkJICAgIChjb25zdCB4bWxDaGFyICopZmlsZW5hbWUsIE5VTEwsIHByZWZlciwgTlVMTCk7CisgICAgICAgIGlmIChwYXJlbnQgPT0gTlVMTCkgeworCSAgICB4bWxGcmVlRG9jKGRvYyk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisKKwlwcm9wID0geG1sR2V0UHJvcChjdXIsIEJBRF9DQVNUICJwcmVmZXIiKTsKKwlpZiAocHJvcCAhPSBOVUxMKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChwcm9wLCBCQURfQ0FTVCAic3lzdGVtIikpIHsKKwkJcHJlZmVyID0gWE1MX0NBVEFfUFJFRkVSX1NZU1RFTTsKKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChwcm9wLCBCQURfQ0FTVCAicHVibGljIikpIHsKKwkJcHJlZmVyID0gWE1MX0NBVEFfUFJFRkVSX1BVQkxJQzsKKwkgICAgfSBlbHNlIHsKKwkJeG1sQ2F0YWxvZ0VycihOVUxMLCBjdXIsIFhNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRSwKKwkJCSAgICAgICJJbnZhbGlkIHZhbHVlIGZvciBwcmVmZXI6ICclcydcbiIsCisJCQkgICAgICBwcm9wLCBOVUxMLCBOVUxMKTsKKwkgICAgfQorCSAgICB4bWxGcmVlKHByb3ApOworCX0KKwljdXIgPSBjdXItPmNoaWxkcmVuOworCXhtbFBhcnNlWE1MQ2F0YWxvZ05vZGVMaXN0KGN1ciwgcHJlZmVyLCBwYXJlbnQsIE5VTEwpOworICAgIH0gZWxzZSB7CisJeG1sQ2F0YWxvZ0VycihOVUxMLCAoeG1sTm9kZVB0cikgZG9jLCBYTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRywKKwkJICAgICAgIkZpbGUgJXMgaXMgbm90IGFuIFhNTCBDYXRhbG9nXG4iLAorCQkgICAgICBmaWxlbmFtZSwgTlVMTCwgTlVMTCk7CisJeG1sRnJlZURvYyhkb2MpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgeG1sRnJlZURvYyhkb2MpOworICAgIHJldHVybihwYXJlbnQpOworfQorCisvKioKKyAqIHhtbEZldGNoWE1MQ2F0YWxvZ0ZpbGU6CisgKiBAY2F0YWw6ICBhbiBleGlzdGluZyBidXQgaW5jb21wbGV0ZSBjYXRhbG9nIGVudHJ5CisgKgorICogRmV0Y2ggYW5kIHBhcnNlIHRoZSBzdWJjYXRhbG9nIHJlZmVyZW5jZWQgYnkgYW4gZW50cnkKKyAqIAorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbEZldGNoWE1MQ2F0YWxvZ0ZpbGUoeG1sQ2F0YWxvZ0VudHJ5UHRyIGNhdGFsKSB7CisgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIGRvYzsKKworICAgIGlmIChjYXRhbCA9PSBOVUxMKSAKKwlyZXR1cm4oLTEpOworICAgIGlmIChjYXRhbC0+VVJMID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoY2F0YWwtPmNoaWxkcmVuICE9IE5VTEwpCisJcmV0dXJuKC0xKTsKKworICAgIC8qCisgICAgICogbG9jayB0aGUgd2hvbGUgY2F0YWxvZyBmb3IgbW9kaWZpY2F0aW9uCisgICAgICovCisgICAgeG1sUk11dGV4TG9jayh4bWxDYXRhbG9nTXV0ZXgpOworICAgIGlmIChjYXRhbC0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCS8qIE9rYXkgc29tZW9uZSBlbHNlIGRpZCBpdCBpbiB0aGUgbWVhbnRpbWUgKi8KKwl4bWxSTXV0ZXhVbmxvY2soeG1sQ2F0YWxvZ011dGV4KTsKKwlyZXR1cm4oMCk7CisgICAgfQorCisgICAgaWYgKHhtbENhdGFsb2dYTUxGaWxlcyAhPSBOVUxMKSB7CisJZG9jID0gKHhtbENhdGFsb2dFbnRyeVB0cikKKwkgICAgeG1sSGFzaExvb2t1cCh4bWxDYXRhbG9nWE1MRmlsZXMsIGNhdGFsLT5VUkwpOworCWlmIChkb2MgIT0gTlVMTCkgeworCSAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiRm91bmQgJXMgaW4gZmlsZSBoYXNoXG4iLCBjYXRhbC0+VVJMKTsKKworCSAgICBpZiAoY2F0YWwtPnR5cGUgPT0gWE1MX0NBVEFfQ0FUQUxPRykKKwkJY2F0YWwtPmNoaWxkcmVuID0gZG9jLT5jaGlsZHJlbjsKKwkgICAgZWxzZQorCQljYXRhbC0+Y2hpbGRyZW4gPSBkb2M7CisJICAgIGNhdGFsLT5kZWFsbG9jID0gMDsKKwkgICAgeG1sUk11dGV4VW5sb2NrKHhtbENhdGFsb2dNdXRleCk7CisJICAgIHJldHVybigwKTsKKwl9CisJaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiJXMgbm90IGZvdW5kIGluIGZpbGUgaGFzaFxuIiwgY2F0YWwtPlVSTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGZXRjaCBhbmQgcGFyc2UuIE5vdGUgdGhhdCB4bWxQYXJzZVhNTENhdGFsb2dGaWxlIGRvZXMgbm90CisgICAgICogdXNlIHRoZSBleGlzdGluZyBjYXRhbG9nLCB0aGVyZSBpcyBubyByZWN1cnNpb24gYWxsb3dlZCBhdAorICAgICAqIHRoYXQgbGV2ZWwuCisgICAgICovCisgICAgZG9jID0geG1sUGFyc2VYTUxDYXRhbG9nRmlsZShjYXRhbC0+cHJlZmVyLCBjYXRhbC0+VVJMKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKwljYXRhbC0+dHlwZSA9IFhNTF9DQVRBX0JST0tFTl9DQVRBTE9HOworCXhtbFJNdXRleFVubG9jayh4bWxDYXRhbG9nTXV0ZXgpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgaWYgKGNhdGFsLT50eXBlID09IFhNTF9DQVRBX0NBVEFMT0cpCisJY2F0YWwtPmNoaWxkcmVuID0gZG9jLT5jaGlsZHJlbjsKKyAgICBlbHNlCisJY2F0YWwtPmNoaWxkcmVuID0gZG9jOworCisgICAgZG9jLT5kZWFsbG9jID0gMTsKKworICAgIGlmICh4bWxDYXRhbG9nWE1MRmlsZXMgPT0gTlVMTCkKKwl4bWxDYXRhbG9nWE1MRmlsZXMgPSB4bWxIYXNoQ3JlYXRlKDEwKTsKKyAgICBpZiAoeG1sQ2F0YWxvZ1hNTEZpbGVzICE9IE5VTEwpIHsKKwlpZiAoeG1sRGVidWdDYXRhbG9ncykKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSIlcyBhZGRlZCB0byBmaWxlIGhhc2hcbiIsIGNhdGFsLT5VUkwpOworCXhtbEhhc2hBZGRFbnRyeSh4bWxDYXRhbG9nWE1MRmlsZXMsIGNhdGFsLT5VUkwsIGRvYyk7CisgICAgfQorICAgIHhtbFJNdXRleFVubG9jayh4bWxDYXRhbG9nTXV0ZXgpOworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVhNTCBDYXRhbG9nIGhhbmRsaW5nCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxBZGRYTUxDYXRhbG9nOgorICogQGNhdGFsOiAgdG9wIG9mIGFuIFhNTCBjYXRhbG9nCisgKiBAdHlwZTogIHRoZSB0eXBlIG9mIHJlY29yZCB0byBhZGQgdG8gdGhlIGNhdGFsb2cKKyAqIEBvcmlnOiAgdGhlIHN5c3RlbSwgcHVibGljIG9yIHByZWZpeCB0byBtYXRjaCAob3IgTlVMTCkKKyAqIEByZXBsYWNlOiAgdGhlIHJlcGxhY2VtZW50IHZhbHVlIGZvciB0aGUgbWF0Y2gKKyAqCisgKiBBZGQgYW4gZW50cnkgaW4gdGhlIFhNTCBjYXRhbG9nLCBpdCBtYXkgb3ZlcndyaXRlIGV4aXN0aW5nIGJ1dAorICogZGlmZmVyZW50IGVudHJpZXMuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxBZGRYTUxDYXRhbG9nKHhtbENhdGFsb2dFbnRyeVB0ciBjYXRhbCwgY29uc3QgeG1sQ2hhciAqdHlwZSwKKwkgICAgICBjb25zdCB4bWxDaGFyICpvcmlnLCBjb25zdCB4bWxDaGFyICpyZXBsYWNlKSB7CisgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIGN1cjsKKyAgICB4bWxDYXRhbG9nRW50cnlUeXBlIHR5cDsKKyAgICBpbnQgZG9yZWdpc3RlciA9IDA7CisKKyAgICBpZiAoKGNhdGFsID09IE5VTEwpIHx8IAorCSgoY2F0YWwtPnR5cGUgIT0gWE1MX0NBVEFfQ0FUQUxPRykgJiYKKwkgKGNhdGFsLT50eXBlICE9IFhNTF9DQVRBX0JST0tFTl9DQVRBTE9HKSkpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoY2F0YWwtPmNoaWxkcmVuID09IE5VTEwpIHsKKwl4bWxGZXRjaFhNTENhdGFsb2dGaWxlKGNhdGFsKTsKKyAgICB9CisgICAgaWYgKGNhdGFsLT5jaGlsZHJlbiA9PSBOVUxMKQorCWRvcmVnaXN0ZXIgPSAxOworCisgICAgdHlwID0geG1sR2V0WE1MQ2F0YWxvZ0VudHJ5VHlwZSh0eXBlKTsKKyAgICBpZiAodHlwID09IFhNTF9DQVRBX05PTkUpIHsKKwlpZiAoeG1sRGVidWdDYXRhbG9ncykKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiRmFpbGVkIHRvIGFkZCB1bmtub3duIGVsZW1lbnQgJXMgdG8gY2F0YWxvZ1xuIiwgdHlwZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBjdXIgPSBjYXRhbC0+Y2hpbGRyZW47CisgICAgLyoKKyAgICAgKiBNaWdodCBiZSBhIHNpbXBsZSAidXBkYXRlIGluIHBsYWNlIgorICAgICAqLworICAgIGlmIChjdXIgIT0gTlVMTCkgeworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICBpZiAoKG9yaWcgIT0gTlVMTCkgJiYgKGN1ci0+dHlwZSA9PSB0eXApICYmCisJCSh4bWxTdHJFcXVhbChvcmlnLCBjdXItPm5hbWUpKSkgeworCQlpZiAoeG1sRGVidWdDYXRhbG9ncykKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJVcGRhdGluZyBlbGVtZW50ICVzIHRvIGNhdGFsb2dcbiIsIHR5cGUpOworCQlpZiAoY3VyLT52YWx1ZSAhPSBOVUxMKQorCQkgICAgeG1sRnJlZShjdXItPnZhbHVlKTsKKwkJaWYgKGN1ci0+VVJMICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKGN1ci0+VVJMKTsKKwkJY3VyLT52YWx1ZSA9IHhtbFN0cmR1cChyZXBsYWNlKTsKKwkJY3VyLT5VUkwgPSB4bWxTdHJkdXAocmVwbGFjZSk7CisJCXJldHVybigwKTsKKwkgICAgfQorCSAgICBpZiAoY3VyLT5uZXh0ID09IE5VTEwpCisJCWJyZWFrOworCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorICAgIH0KKyAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkFkZGluZyBlbGVtZW50ICVzIHRvIGNhdGFsb2dcbiIsIHR5cGUpOworICAgIGlmIChjdXIgPT0gTlVMTCkKKwljYXRhbC0+Y2hpbGRyZW4gPSB4bWxOZXdDYXRhbG9nRW50cnkodHlwLCBvcmlnLCByZXBsYWNlLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGNhdGFsLT5wcmVmZXIsIE5VTEwpOworICAgIGVsc2UKKwljdXItPm5leHQgPSB4bWxOZXdDYXRhbG9nRW50cnkodHlwLCBvcmlnLCByZXBsYWNlLAorCQkgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGNhdGFsLT5wcmVmZXIsIE5VTEwpOworICAgIGlmIChkb3JlZ2lzdGVyKSB7CisgICAgICAgIGNhdGFsLT50eXBlID0gWE1MX0NBVEFfQ0FUQUxPRzsKKwljdXIgPSB4bWxIYXNoTG9va3VwKHhtbENhdGFsb2dYTUxGaWxlcywgY2F0YWwtPlVSTCk7CisJaWYgKGN1ciAhPSBOVUxMKQorCSAgICBjdXItPmNoaWxkcmVuID0gY2F0YWwtPmNoaWxkcmVuOworICAgIH0KKworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxEZWxYTUxDYXRhbG9nOgorICogQGNhdGFsOiAgdG9wIG9mIGFuIFhNTCBjYXRhbG9nCisgKiBAdmFsdWU6ICB0aGUgdmFsdWUgdG8gcmVtb3ZlIGZyb20gdGhlIGNhdGFsb2cKKyAqCisgKiBSZW1vdmUgZW50cmllcyBpbiB0aGUgWE1MIGNhdGFsb2cgd2hlcmUgdGhlIHZhbHVlIG9yIHRoZSBVUkkKKyAqIGlzIGVxdWFsIHRvIEB2YWx1ZQorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHJlbW92ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbERlbFhNTENhdGFsb2coeG1sQ2F0YWxvZ0VudHJ5UHRyIGNhdGFsLCBjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIHhtbENhdGFsb2dFbnRyeVB0ciBjdXI7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoKGNhdGFsID09IE5VTEwpIHx8IAorCSgoY2F0YWwtPnR5cGUgIT0gWE1MX0NBVEFfQ0FUQUxPRykgJiYKKwkgKGNhdGFsLT50eXBlICE9IFhNTF9DQVRBX0JST0tFTl9DQVRBTE9HKSkpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChjYXRhbC0+Y2hpbGRyZW4gPT0gTlVMTCkgeworCXhtbEZldGNoWE1MQ2F0YWxvZ0ZpbGUoY2F0YWwpOworICAgIH0KKworICAgIC8qCisgICAgICogU2NhbiB0aGUgY2hpbGRyZW4KKyAgICAgKi8KKyAgICBjdXIgPSBjYXRhbC0+Y2hpbGRyZW47CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJaWYgKCgoY3VyLT5uYW1lICE9IE5VTEwpICYmICh4bWxTdHJFcXVhbCh2YWx1ZSwgY3VyLT5uYW1lKSkpIHx8CisJICAgICh4bWxTdHJFcXVhbCh2YWx1ZSwgY3VyLT52YWx1ZSkpKSB7CisJICAgIGlmICh4bWxEZWJ1Z0NhdGFsb2dzKSB7CisJCWlmIChjdXItPm5hbWUgIT0gTlVMTCkKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJSZW1vdmluZyBlbGVtZW50ICVzIGZyb20gY2F0YWxvZ1xuIiwgY3VyLT5uYW1lKTsKKwkJZWxzZQorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIlJlbW92aW5nIGVsZW1lbnQgJXMgZnJvbSBjYXRhbG9nXG4iLCBjdXItPnZhbHVlKTsKKwkgICAgfQorCSAgICBjdXItPnR5cGUgPSBYTUxfQ0FUQV9SRU1PVkVEOworCX0KKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbENhdGFsb2dYTUxSZXNvbHZlOgorICogQGNhdGFsOiAgYSBjYXRhbG9nIGxpc3QKKyAqIEBwdWJJRDogIHRoZSBwdWJsaWMgSUQgc3RyaW5nCisgKiBAc3lzSUQ6ICB0aGUgc3lzdGVtIElEIHN0cmluZworICoKKyAqIERvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gRXh0ZXJuYWwgSWRlbnRpZmllciBmb3IgYQorICogbGlzdCBvZiBjYXRhbG9nIGVudHJpZXMuCisgKgorICogSW1wbGVtZW50cyAob3IgdHJpZXMgdG8pIDcuMS4gRXh0ZXJuYWwgSWRlbnRpZmllciBSZXNvbHV0aW9uCisgKiBmcm9tIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy0yMDAxLTA4LTA2Lmh0bWwKKyAqCisgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbENhdGFsb2dYTUxSZXNvbHZlKHhtbENhdGFsb2dFbnRyeVB0ciBjYXRhbCwgY29uc3QgeG1sQ2hhciAqcHViSUQsCisJICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpzeXNJRCkgeworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIGN1cjsKKyAgICBpbnQgaGF2ZURlbGVnYXRlID0gMDsKKyAgICBpbnQgaGF2ZU5leHQgPSAwOworCisgICAgLyoKKyAgICAgKiBwcm90ZWN0aW9uIGFnYWluc3QgbG9vcHMKKyAgICAgKi8KKyAgICBpZiAoY2F0YWwtPmRlcHRoID4gTUFYX0NBVEFMX0RFUFRIKSB7CisJeG1sQ2F0YWxvZ0VycihjYXRhbCwgTlVMTCwgWE1MX0NBVEFMT0dfUkVDVVJTSU9OLAorCQkgICAgICAiRGV0ZWN0ZWQgcmVjdXJzaW9uIGluIGNhdGFsb2cgJXNcbiIsCisJCSAgICAgIGNhdGFsLT5uYW1lLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGNhdGFsLT5kZXB0aCsrOworCisgICAgLyoKKyAgICAgKiBGaXJzdCB0cmllcyBzdGVwcyAyLyAzLyA0LyBpZiBhIHN5c3RlbSBJRCBpcyBwcm92aWRlZC4KKyAgICAgKi8KKyAgICBpZiAoc3lzSUQgIT0gTlVMTCkgeworCXhtbENhdGFsb2dFbnRyeVB0ciByZXdyaXRlID0gTlVMTDsKKwlpbnQgbGVucmV3cml0ZSA9IDAsIGxlbjsKKwljdXIgPSBjYXRhbDsKKwloYXZlRGVsZWdhdGUgPSAwOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworCQljYXNlIFhNTF9DQVRBX1NZU1RFTToKKwkJICAgIGlmICh4bWxTdHJFcXVhbChzeXNJRCwgY3VyLT5uYW1lKSkgeworCQkJaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJICAgICJGb3VuZCBzeXN0ZW0gbWF0Y2ggJXMsIHVzaW5nICVzXG4iLAorCQkJCSAgICAgICAgICAgIGN1ci0+bmFtZSwgY3VyLT5VUkwpOworCQkJY2F0YWwtPmRlcHRoLS07CisJCQlyZXR1cm4oeG1sU3RyZHVwKGN1ci0+VVJMKSk7CisJCSAgICB9CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfQ0FUQV9SRVdSSVRFX1NZU1RFTToKKwkJICAgIGxlbiA9IHhtbFN0cmxlbihjdXItPm5hbWUpOworCQkgICAgaWYgKChsZW4gPiBsZW5yZXdyaXRlKSAmJgorCQkJKCF4bWxTdHJuY21wKHN5c0lELCBjdXItPm5hbWUsIGxlbikpKSB7CisJCQlsZW5yZXdyaXRlID0gbGVuOworCQkJcmV3cml0ZSA9IGN1cjsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9DQVRBX0RFTEVHQVRFX1NZU1RFTToKKwkJICAgIGlmICgheG1sU3RybmNtcChzeXNJRCwgY3VyLT5uYW1lLCB4bWxTdHJsZW4oY3VyLT5uYW1lKSkpCisJCQloYXZlRGVsZWdhdGUrKzsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9DQVRBX05FWFRfQ0FUQUxPRzoKKwkJICAgIGhhdmVOZXh0Kys7CisJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJICAgIGJyZWFrOworCSAgICB9CisJICAgIGN1ciA9IGN1ci0+bmV4dDsKKwl9CisJaWYgKHJld3JpdGUgIT0gTlVMTCkgeworCSAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiVXNpbmcgcmV3cml0aW5nIHJ1bGUgJXNcbiIsIHJld3JpdGUtPm5hbWUpOworCSAgICByZXQgPSB4bWxTdHJkdXAocmV3cml0ZS0+VVJMKTsKKwkgICAgaWYgKHJldCAhPSBOVUxMKQorCQlyZXQgPSB4bWxTdHJjYXQocmV0LCAmc3lzSURbbGVucmV3cml0ZV0pOworCSAgICBjYXRhbC0+ZGVwdGgtLTsKKwkgICAgcmV0dXJuKHJldCk7CisJfQorCWlmIChoYXZlRGVsZWdhdGUpIHsKKwkgICAgY29uc3QgeG1sQ2hhciAqZGVsZWdhdGVzW01BWF9ERUxFR0FURV07CisJICAgIGludCBuYkxpc3QgPSAwLCBpOworCisJICAgIC8qCisJICAgICAqIEFzc3VtZSB0aGUgZW50cmllcyBoYXZlIGJlZW4gc29ydGVkIGJ5IGRlY3JlYXNpbmcgc3Vic3RyaW5nCisJICAgICAqIG1hdGNoZXMgd2hlbiB0aGUgbGlzdCB3YXMgcHJvZHVjZWQuCisJICAgICAqLworCSAgICBjdXIgPSBjYXRhbDsKKwkgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCWlmICgoY3VyLT50eXBlID09IFhNTF9DQVRBX0RFTEVHQVRFX1NZU1RFTSkgJiYKKwkJICAgICgheG1sU3RybmNtcChzeXNJRCwgY3VyLT5uYW1lLCB4bWxTdHJsZW4oY3VyLT5uYW1lKSkpKSB7CisJCSAgICBmb3IgKGkgPSAwO2kgPCBuYkxpc3Q7aSsrKQorCQkJaWYgKHhtbFN0ckVxdWFsKGN1ci0+VVJMLCBkZWxlZ2F0ZXNbaV0pKQorCQkJICAgIGJyZWFrOworCQkgICAgaWYgKGkgPCBuYkxpc3QpIHsKKwkJCWN1ciA9IGN1ci0+bmV4dDsKKwkJCWNvbnRpbnVlOworCQkgICAgfQorCQkgICAgaWYgKG5iTGlzdCA8IE1BWF9ERUxFR0FURSkKKwkJCWRlbGVnYXRlc1tuYkxpc3QrK10gPSBjdXItPlVSTDsKKworCQkgICAgaWYgKGN1ci0+Y2hpbGRyZW4gPT0gTlVMTCkgeworCQkJeG1sRmV0Y2hYTUxDYXRhbG9nRmlsZShjdXIpOworCQkgICAgfQorCQkgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCQkJaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJICAgICJUcnlpbmcgc3lzdGVtIGRlbGVnYXRlICVzXG4iLCBjdXItPlVSTCk7CisJCQlyZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoCisJCQkJY3VyLT5jaGlsZHJlbiwgTlVMTCwgc3lzSUQpOworCQkJaWYgKHJldCAhPSBOVUxMKSB7CisJCQkgICAgY2F0YWwtPmRlcHRoLS07CisJCQkgICAgcmV0dXJuKHJldCk7CisJCQl9CisJCSAgICB9CisJCX0KKwkJY3VyID0gY3VyLT5uZXh0OworCSAgICB9CisJICAgIC8qCisJICAgICAqIEFwcGx5IHRoZSBjdXQgYWxnb3JpdGhtIGV4cGxhaW5lZCBpbiA0LworCSAgICAgKi8KKwkgICAgY2F0YWwtPmRlcHRoLS07CisJICAgIHJldHVybihYTUxfQ0FUQUxfQlJFQUspOworCX0KKyAgICB9CisgICAgLyoKKyAgICAgKiBUaGVuIHRyaWVzIDUvIDYvIGlmIGEgcHVibGljIElEIGlzIHByb3ZpZGVkCisgICAgICovCisgICAgaWYgKHB1YklEICE9IE5VTEwpIHsKKwljdXIgPSBjYXRhbDsKKwloYXZlRGVsZWdhdGUgPSAwOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworCQljYXNlIFhNTF9DQVRBX1BVQkxJQzoKKwkJICAgIGlmICh4bWxTdHJFcXVhbChwdWJJRCwgY3VyLT5uYW1lKSkgeworCQkJaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJICAgICJGb3VuZCBwdWJsaWMgbWF0Y2ggJXNcbiIsIGN1ci0+bmFtZSk7CisJCQljYXRhbC0+ZGVwdGgtLTsKKwkJCXJldHVybih4bWxTdHJkdXAoY3VyLT5VUkwpKTsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9DQVRBX0RFTEVHQVRFX1BVQkxJQzoKKwkJICAgIGlmICgheG1sU3RybmNtcChwdWJJRCwgY3VyLT5uYW1lLCB4bWxTdHJsZW4oY3VyLT5uYW1lKSkgJiYKKwkJCShjdXItPnByZWZlciA9PSBYTUxfQ0FUQV9QUkVGRVJfUFVCTElDKSkKKwkJCWhhdmVEZWxlZ2F0ZSsrOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0NBVEFfTkVYVF9DQVRBTE9HOgorCQkgICAgaWYgKHN5c0lEID09IE5VTEwpCisJCQloYXZlTmV4dCsrOworCQkgICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCSAgICBicmVhazsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorCWlmIChoYXZlRGVsZWdhdGUpIHsKKwkgICAgY29uc3QgeG1sQ2hhciAqZGVsZWdhdGVzW01BWF9ERUxFR0FURV07CisJICAgIGludCBuYkxpc3QgPSAwLCBpOworCisJICAgIC8qCisJICAgICAqIEFzc3VtZSB0aGUgZW50cmllcyBoYXZlIGJlZW4gc29ydGVkIGJ5IGRlY3JlYXNpbmcgc3Vic3RyaW5nCisJICAgICAqIG1hdGNoZXMgd2hlbiB0aGUgbGlzdCB3YXMgcHJvZHVjZWQuCisJICAgICAqLworCSAgICBjdXIgPSBjYXRhbDsKKwkgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCWlmICgoY3VyLT50eXBlID09IFhNTF9DQVRBX0RFTEVHQVRFX1BVQkxJQykgJiYKKwkJICAgIChjdXItPnByZWZlciA9PSBYTUxfQ0FUQV9QUkVGRVJfUFVCTElDKSAmJgorCQkgICAgKCF4bWxTdHJuY21wKHB1YklELCBjdXItPm5hbWUsIHhtbFN0cmxlbihjdXItPm5hbWUpKSkpIHsKKworCQkgICAgZm9yIChpID0gMDtpIDwgbmJMaXN0O2krKykKKwkJCWlmICh4bWxTdHJFcXVhbChjdXItPlVSTCwgZGVsZWdhdGVzW2ldKSkKKwkJCSAgICBicmVhazsKKwkJICAgIGlmIChpIDwgbmJMaXN0KSB7CisJCQljdXIgPSBjdXItPm5leHQ7CisJCQljb250aW51ZTsKKwkJICAgIH0KKwkJICAgIGlmIChuYkxpc3QgPCBNQVhfREVMRUdBVEUpCisJCQlkZWxlZ2F0ZXNbbmJMaXN0KytdID0gY3VyLT5VUkw7CisJCQkgICAgCisJCSAgICBpZiAoY3VyLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisJCQl4bWxGZXRjaFhNTENhdGFsb2dGaWxlKGN1cik7CisJCSAgICB9CisJCSAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJCQlpZiAoeG1sRGVidWdDYXRhbG9ncykKKwkJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkgICAgIlRyeWluZyBwdWJsaWMgZGVsZWdhdGUgJXNcbiIsIGN1ci0+VVJMKTsKKwkJCXJldCA9IHhtbENhdGFsb2dMaXN0WE1MUmVzb2x2ZSgKKwkJCQljdXItPmNoaWxkcmVuLCBwdWJJRCwgTlVMTCk7CisJCQlpZiAocmV0ICE9IE5VTEwpIHsKKwkJCSAgICBjYXRhbC0+ZGVwdGgtLTsKKwkJCSAgICByZXR1cm4ocmV0KTsKKwkJCX0KKwkJICAgIH0KKwkJfQorCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKwkgICAgLyoKKwkgICAgICogQXBwbHkgdGhlIGN1dCBhbGdvcml0aG0gZXhwbGFpbmVkIGluIDQvCisJICAgICAqLworCSAgICBjYXRhbC0+ZGVwdGgtLTsKKwkgICAgcmV0dXJuKFhNTF9DQVRBTF9CUkVBSyk7CisJfQorICAgIH0KKyAgICBpZiAoaGF2ZU5leHQpIHsKKwljdXIgPSBjYXRhbDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfQ0FUQV9ORVhUX0NBVEFMT0cpIHsKKwkJaWYgKGN1ci0+Y2hpbGRyZW4gPT0gTlVMTCkgeworCQkgICAgeG1sRmV0Y2hYTUxDYXRhbG9nRmlsZShjdXIpOworCQl9CisJCWlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkJICAgIHJldCA9IHhtbENhdGFsb2dMaXN0WE1MUmVzb2x2ZShjdXItPmNoaWxkcmVuLCBwdWJJRCwgc3lzSUQpOworCQkgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJCQljYXRhbC0+ZGVwdGgtLTsKKwkJCXJldHVybihyZXQpOworCQkgICAgfSBlbHNlIGlmIChjYXRhbC0+ZGVwdGggPiBNQVhfQ0FUQUxfREVQVEgpIHsKKwkJICAgICAgICByZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorICAgIH0KKworICAgIGNhdGFsLT5kZXB0aC0tOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxDYXRhbG9nWE1MUmVzb2x2ZVVSSToKKyAqIEBjYXRhbDogIGEgY2F0YWxvZyBsaXN0CisgKiBAVVJJOiAgdGhlIFVSSQorICogQHN5c0lEOiAgdGhlIHN5c3RlbSBJRCBzdHJpbmcKKyAqCisgKiBEbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIEV4dGVybmFsIElkZW50aWZpZXIgZm9yIGEKKyAqIGxpc3Qgb2YgY2F0YWxvZyBlbnRyaWVzLgorICoKKyAqIEltcGxlbWVudHMgKG9yIHRyaWVzIHRvKSA3LjIuMi4gVVJJIFJlc29sdXRpb24KKyAqIGZyb20gaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLTIwMDEtMDgtMDYuaHRtbAorICoKKyAqIFJldHVybnMgdGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQKKyAqLworc3RhdGljIHhtbENoYXIgKgoreG1sQ2F0YWxvZ1hNTFJlc29sdmVVUkkoeG1sQ2F0YWxvZ0VudHJ5UHRyIGNhdGFsLCBjb25zdCB4bWxDaGFyICpVUkkpIHsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIHhtbENhdGFsb2dFbnRyeVB0ciBjdXI7CisgICAgaW50IGhhdmVEZWxlZ2F0ZSA9IDA7CisgICAgaW50IGhhdmVOZXh0ID0gMDsKKyAgICB4bWxDYXRhbG9nRW50cnlQdHIgcmV3cml0ZSA9IE5VTEw7CisgICAgaW50IGxlbnJld3JpdGUgPSAwLCBsZW47CisKKyAgICBpZiAoY2F0YWwgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBpZiAoVVJJID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKGNhdGFsLT5kZXB0aCA+IE1BWF9DQVRBTF9ERVBUSCkgeworCXhtbENhdGFsb2dFcnIoY2F0YWwsIE5VTEwsIFhNTF9DQVRBTE9HX1JFQ1VSU0lPTiwKKwkJICAgICAgIkRldGVjdGVkIHJlY3Vyc2lvbiBpbiBjYXRhbG9nICVzXG4iLAorCQkgICAgICBjYXRhbC0+bmFtZSwgTlVMTCwgTlVMTCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogRmlyc3QgdHJpZXMgc3RlcHMgMi8gMy8gNC8gaWYgYSBzeXN0ZW0gSUQgaXMgcHJvdmlkZWQuCisgICAgICovCisgICAgY3VyID0gY2F0YWw7CisgICAgaGF2ZURlbGVnYXRlID0gMDsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlzd2l0Y2ggKGN1ci0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9DQVRBX1VSSToKKwkJaWYgKHhtbFN0ckVxdWFsKFVSSSwgY3VyLT5uYW1lKSkgeworCQkgICAgaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkiRm91bmQgVVJJIG1hdGNoICVzXG4iLCBjdXItPm5hbWUpOworCQkgICAgcmV0dXJuKHhtbFN0cmR1cChjdXItPlVSTCkpOworCQl9CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9DQVRBX1JFV1JJVEVfVVJJOgorCQlsZW4gPSB4bWxTdHJsZW4oY3VyLT5uYW1lKTsKKwkJaWYgKChsZW4gPiBsZW5yZXdyaXRlKSAmJgorCQkgICAgKCF4bWxTdHJuY21wKFVSSSwgY3VyLT5uYW1lLCBsZW4pKSkgeworCQkgICAgbGVucmV3cml0ZSA9IGxlbjsKKwkJICAgIHJld3JpdGUgPSBjdXI7CisJCX0KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0NBVEFfREVMRUdBVEVfVVJJOgorCQlpZiAoIXhtbFN0cm5jbXAoVVJJLCBjdXItPm5hbWUsIHhtbFN0cmxlbihjdXItPm5hbWUpKSkKKwkJICAgIGhhdmVEZWxlZ2F0ZSsrOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfQ0FUQV9ORVhUX0NBVEFMT0c6CisJCWhhdmVOZXh0Kys7CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBpZiAocmV3cml0ZSAhPSBOVUxMKSB7CisJaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlVzaW5nIHJld3JpdGluZyBydWxlICVzXG4iLCByZXdyaXRlLT5uYW1lKTsKKwlyZXQgPSB4bWxTdHJkdXAocmV3cml0ZS0+VVJMKTsKKwlpZiAocmV0ICE9IE5VTEwpCisJICAgIHJldCA9IHhtbFN0cmNhdChyZXQsICZVUklbbGVucmV3cml0ZV0pOworCXJldHVybihyZXQpOworICAgIH0KKyAgICBpZiAoaGF2ZURlbGVnYXRlKSB7CisJY29uc3QgeG1sQ2hhciAqZGVsZWdhdGVzW01BWF9ERUxFR0FURV07CisJaW50IG5iTGlzdCA9IDAsIGk7CisKKwkvKgorCSAqIEFzc3VtZSB0aGUgZW50cmllcyBoYXZlIGJlZW4gc29ydGVkIGJ5IGRlY3JlYXNpbmcgc3Vic3RyaW5nCisJICogbWF0Y2hlcyB3aGVuIHRoZSBsaXN0IHdhcyBwcm9kdWNlZC4KKwkgKi8KKwljdXIgPSBjYXRhbDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKCgoY3VyLT50eXBlID09IFhNTF9DQVRBX0RFTEVHQVRFX1NZU1RFTSkgfHwKKwkgICAgICAgICAoY3VyLT50eXBlID09IFhNTF9DQVRBX0RFTEVHQVRFX1VSSSkpICYmCisJCSgheG1sU3RybmNtcChVUkksIGN1ci0+bmFtZSwgeG1sU3RybGVuKGN1ci0+bmFtZSkpKSkgeworCQlmb3IgKGkgPSAwO2kgPCBuYkxpc3Q7aSsrKQorCQkgICAgaWYgKHhtbFN0ckVxdWFsKGN1ci0+VVJMLCBkZWxlZ2F0ZXNbaV0pKQorCQkJYnJlYWs7CisJCWlmIChpIDwgbmJMaXN0KSB7CisJCSAgICBjdXIgPSBjdXItPm5leHQ7CisJCSAgICBjb250aW51ZTsKKwkJfQorCQlpZiAobmJMaXN0IDwgTUFYX0RFTEVHQVRFKQorCQkgICAgZGVsZWdhdGVzW25iTGlzdCsrXSA9IGN1ci0+VVJMOworCisJCWlmIChjdXItPmNoaWxkcmVuID09IE5VTEwpIHsKKwkJICAgIHhtbEZldGNoWE1MQ2F0YWxvZ0ZpbGUoY3VyKTsKKwkJfQorCQlpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJCSAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJUcnlpbmcgVVJJIGRlbGVnYXRlICVzXG4iLCBjdXItPlVSTCk7CisJCSAgICByZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmVVUkkoCisJCQkgICAgY3VyLT5jaGlsZHJlbiwgVVJJKTsKKwkJICAgIGlmIChyZXQgIT0gTlVMTCkKKwkJCXJldHVybihyZXQpOworCQl9CisJICAgIH0KKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKwkvKgorCSAqIEFwcGx5IHRoZSBjdXQgYWxnb3JpdGhtIGV4cGxhaW5lZCBpbiA0LworCSAqLworCXJldHVybihYTUxfQ0FUQUxfQlJFQUspOworICAgIH0KKyAgICBpZiAoaGF2ZU5leHQpIHsKKwljdXIgPSBjYXRhbDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfQ0FUQV9ORVhUX0NBVEFMT0cpIHsKKwkJaWYgKGN1ci0+Y2hpbGRyZW4gPT0gTlVMTCkgeworCQkgICAgeG1sRmV0Y2hYTUxDYXRhbG9nRmlsZShjdXIpOworCQl9CisJCWlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkJICAgIHJldCA9IHhtbENhdGFsb2dMaXN0WE1MUmVzb2x2ZVVSSShjdXItPmNoaWxkcmVuLCBVUkkpOworCQkgICAgaWYgKHJldCAhPSBOVUxMKQorCQkJcmV0dXJuKHJldCk7CisJCX0KKwkgICAgfQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorICAgIH0KKworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmU6CisgKiBAY2F0YWw6ICBhIGNhdGFsb2cgbGlzdAorICogQHB1YklEOiAgdGhlIHB1YmxpYyBJRCBzdHJpbmcKKyAqIEBzeXNJRDogIHRoZSBzeXN0ZW0gSUQgc3RyaW5nCisgKgorICogRG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBFeHRlcm5hbCBJZGVudGlmaWVyIGZvciBhCisgKiBsaXN0IG9mIGNhdGFsb2dzCisgKgorICogSW1wbGVtZW50cyAob3IgdHJpZXMgdG8pIDcuMS4gRXh0ZXJuYWwgSWRlbnRpZmllciBSZXNvbHV0aW9uCisgKiBmcm9tIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy0yMDAxLTA4LTA2Lmh0bWwKKyAqCisgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbENhdGFsb2dMaXN0WE1MUmVzb2x2ZSh4bWxDYXRhbG9nRW50cnlQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKnB1YklELAorCSAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3lzSUQpIHsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIHhtbENoYXIgKnVybklEID0gTlVMTDsKKyAgICB4bWxDaGFyICpub3JtaWQ7CisgICAgCisgICAgaWYgKGNhdGFsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoKHB1YklEID09IE5VTEwpICYmIChzeXNJRCA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBub3JtaWQgPSB4bWxDYXRhbG9nTm9ybWFsaXplUHVibGljKHB1YklEKTsKKyAgICBpZiAobm9ybWlkICE9IE5VTEwpCisgICAgICAgIHB1YklEID0gKCpub3JtaWQgIT0gMCA/IG5vcm1pZCA6IE5VTEwpOworICAgIAorICAgIGlmICgheG1sU3RybmNtcChwdWJJRCwgQkFEX0NBU1QgWE1MX1VSTl9QVUJJRCwgc2l6ZW9mKFhNTF9VUk5fUFVCSUQpIC0gMSkpIHsKKwl1cm5JRCA9IHhtbENhdGFsb2dVbldyYXBVUk4ocHViSUQpOworCWlmICh4bWxEZWJ1Z0NhdGFsb2dzKSB7CisJICAgIGlmICh1cm5JRCA9PSBOVUxMKQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQdWJsaWMgVVJOIElEICVzIGV4cGFuZGVkIHRvIE5VTExcbiIsIHB1YklEKTsKKwkgICAgZWxzZQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQdWJsaWMgVVJOIElEIGV4cGFuZGVkIHRvICVzXG4iLCB1cm5JRCk7CisJfQorCXJldCA9IHhtbENhdGFsb2dMaXN0WE1MUmVzb2x2ZShjYXRhbCwgdXJuSUQsIHN5c0lEKTsKKwlpZiAodXJuSUQgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSh1cm5JRCk7CisJaWYgKG5vcm1pZCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKG5vcm1pZCk7CisJcmV0dXJuKHJldCk7CisgICAgfQorICAgIGlmICgheG1sU3RybmNtcChzeXNJRCwgQkFEX0NBU1QgWE1MX1VSTl9QVUJJRCwgc2l6ZW9mKFhNTF9VUk5fUFVCSUQpIC0gMSkpIHsKKwl1cm5JRCA9IHhtbENhdGFsb2dVbldyYXBVUk4oc3lzSUQpOworCWlmICh4bWxEZWJ1Z0NhdGFsb2dzKSB7CisJICAgIGlmICh1cm5JRCA9PSBOVUxMKQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJTeXN0ZW0gVVJOIElEICVzIGV4cGFuZGVkIHRvIE5VTExcbiIsIHN5c0lEKTsKKwkgICAgZWxzZQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJTeXN0ZW0gVVJOIElEIGV4cGFuZGVkIHRvICVzXG4iLCB1cm5JRCk7CisJfQorCWlmIChwdWJJRCA9PSBOVUxMKQorCSAgICByZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoY2F0YWwsIHVybklELCBOVUxMKTsKKwllbHNlIGlmICh4bWxTdHJFcXVhbChwdWJJRCwgdXJuSUQpKQorCSAgICByZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoY2F0YWwsIHB1YklELCBOVUxMKTsKKwllbHNlIHsKKwkgICAgcmV0ID0geG1sQ2F0YWxvZ0xpc3RYTUxSZXNvbHZlKGNhdGFsLCBwdWJJRCwgdXJuSUQpOworCX0KKwlpZiAodXJuSUQgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSh1cm5JRCk7CisJaWYgKG5vcm1pZCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKG5vcm1pZCk7CisJcmV0dXJuKHJldCk7CisgICAgfQorICAgIHdoaWxlIChjYXRhbCAhPSBOVUxMKSB7CisJaWYgKGNhdGFsLT50eXBlID09IFhNTF9DQVRBX0NBVEFMT0cpIHsKKwkgICAgaWYgKGNhdGFsLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisJCXhtbEZldGNoWE1MQ2F0YWxvZ0ZpbGUoY2F0YWwpOworCSAgICB9CisJICAgIGlmIChjYXRhbC0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCQlyZXQgPSB4bWxDYXRhbG9nWE1MUmVzb2x2ZShjYXRhbC0+Y2hpbGRyZW4sIHB1YklELCBzeXNJRCk7CisJCWlmIChyZXQgIT0gTlVMTCkgeworCQkgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoY2F0YWwtPmNoaWxkcmVuICE9IE5VTEwpICYmCisJCSAgICAgICAgICAgKGNhdGFsLT5jaGlsZHJlbi0+ZGVwdGggPiBNQVhfQ0FUQUxfREVQVEgpKSB7CisJICAgICAgICAgICAgcmV0ID0gTlVMTDsKKwkJICAgIGJyZWFrOworCSAgICAgICAgfQorCSAgICB9CisJfQorCWNhdGFsID0gY2F0YWwtPm5leHQ7CisgICAgfQorICAgIGlmIChub3JtaWQgIT0gTlVMTCkKKwl4bWxGcmVlKG5vcm1pZCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ0xpc3RYTUxSZXNvbHZlVVJJOgorICogQGNhdGFsOiAgYSBjYXRhbG9nIGxpc3QKKyAqIEBVUkk6ICB0aGUgVVJJCisgKgorICogRG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBVUkkgZm9yIGEgbGlzdCBvZiBjYXRhbG9ncworICoKKyAqIEltcGxlbWVudHMgKG9yIHRyaWVzIHRvKSA3LjIuIFVSSSBSZXNvbHV0aW9uCisgKiBmcm9tIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy0yMDAxLTA4LTA2Lmh0bWwKKyAqCisgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbENhdGFsb2dMaXN0WE1MUmVzb2x2ZVVSSSh4bWxDYXRhbG9nRW50cnlQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKlVSSSkgeworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisgICAgeG1sQ2hhciAqdXJuSUQgPSBOVUxMOworICAgIAorICAgIGlmIChjYXRhbCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKFVSSSA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIGlmICgheG1sU3RybmNtcChVUkksIEJBRF9DQVNUIFhNTF9VUk5fUFVCSUQsIHNpemVvZihYTUxfVVJOX1BVQklEKSAtIDEpKSB7CisJdXJuSUQgPSB4bWxDYXRhbG9nVW5XcmFwVVJOKFVSSSk7CisJaWYgKHhtbERlYnVnQ2F0YWxvZ3MpIHsKKwkgICAgaWYgKHVybklEID09IE5VTEwpCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlVSTiBJRCAlcyBleHBhbmRlZCB0byBOVUxMXG4iLCBVUkkpOworCSAgICBlbHNlCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlVSTiBJRCBleHBhbmRlZCB0byAlc1xuIiwgdXJuSUQpOworCX0KKwlyZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoY2F0YWwsIHVybklELCBOVUxMKTsKKwlpZiAodXJuSUQgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSh1cm5JRCk7CisJcmV0dXJuKHJldCk7CisgICAgfQorICAgIHdoaWxlIChjYXRhbCAhPSBOVUxMKSB7CisJaWYgKGNhdGFsLT50eXBlID09IFhNTF9DQVRBX0NBVEFMT0cpIHsKKwkgICAgaWYgKGNhdGFsLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisJCXhtbEZldGNoWE1MQ2F0YWxvZ0ZpbGUoY2F0YWwpOworCSAgICB9CisJICAgIGlmIChjYXRhbC0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCQlyZXQgPSB4bWxDYXRhbG9nWE1MUmVzb2x2ZVVSSShjYXRhbC0+Y2hpbGRyZW4sIFVSSSk7CisJCWlmIChyZXQgIT0gTlVMTCkKKwkJICAgIHJldHVybihyZXQpOworCSAgICB9CisJfQorCWNhdGFsID0gY2F0YWwtPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJVGhlIFNHTUwgQ2F0YWxvZyBwYXJzZXIJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKyNkZWZpbmUgUkFXICpjdXIKKyNkZWZpbmUgTkVYVCBjdXIrKzsKKyNkZWZpbmUgU0tJUCh4KSBjdXIgKz0geDsKKworI2RlZmluZSBTS0lQX0JMQU5LUyB3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIE5FWFQ7CisKKy8qKgorICogeG1sUGFyc2VTR01MQ2F0YWxvZ0NvbW1lbnQ6CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgY2hhcmFjdGVyCisgKgorICogU2tpcCBhIGNvbW1lbnQgaW4gYW4gU0dNTCBjYXRhbG9nCisgKgorICogUmV0dXJucyBuZXcgY3VycmVudCBjaGFyYWN0ZXIKKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VTR01MQ2F0YWxvZ0NvbW1lbnQoY29uc3QgeG1sQ2hhciAqY3VyKSB7CisgICAgaWYgKChjdXJbMF0gIT0gJy0nKSB8fCAoY3VyWzFdICE9ICctJykpIAorCXJldHVybihjdXIpOworICAgIFNLSVAoMik7CisgICAgd2hpbGUgKChjdXJbMF0gIT0gMCkgJiYgKChjdXJbMF0gIT0gJy0nKSB8fCAoKGN1clsxXSAhPSAnLScpKSkpCisJTkVYVDsKKyAgICBpZiAoY3VyWzBdID09IDApIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihjdXIgKyAyKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVNHTUxDYXRhbG9nUHViaWQ6CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgY2hhcmFjdGVyCisgKiBAaWQ6ICB0aGUgcmV0dXJuIGxvY2F0aW9uCisgKgorICogUGFyc2UgYW4gU0dNTCBjYXRhbG9nIElECisgKgorICogUmV0dXJucyBuZXcgY3VycmVudCBjaGFyYWN0ZXIgYW5kIHN0b3JlIHRoZSB2YWx1ZSBpbiBAaWQKKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VTR01MQ2F0YWxvZ1B1YmlkKGNvbnN0IHhtbENoYXIgKmN1ciwgeG1sQ2hhciAqKmlkKSB7CisgICAgeG1sQ2hhciAqYnVmID0gTlVMTCwgKnRtcDsKKyAgICBpbnQgbGVuID0gMDsKKyAgICBpbnQgc2l6ZSA9IDUwOworICAgIHhtbENoYXIgc3RvcDsKKyAgICBpbnQgY291bnQgPSAwOworCisgICAgKmlkID0gTlVMTDsKKworICAgIGlmIChSQVcgPT0gJyInKSB7CisgICAgICAgIE5FWFQ7CisJc3RvcCA9ICciJzsKKyAgICB9IGVsc2UgaWYgKFJBVyA9PSAnXCcnKSB7CisgICAgICAgIE5FWFQ7CisJc3RvcCA9ICdcJyc7CisgICAgfSBlbHNlIHsKKwlzdG9wID0gJyAnOworICAgIH0KKyAgICBidWYgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisgICAgICAgIHhtbENhdGFsb2dFcnJNZW1vcnkoImFsbG9jYXRpbmcgcHVibGljIElEIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICB3aGlsZSAoSVNfUFVCSURDSEFSX0NIKCpjdXIpIHx8ICgqY3VyID09ICc/JykpIHsKKwlpZiAoKCpjdXIgPT0gc3RvcCkgJiYgKHN0b3AgIT0gJyAnKSkKKwkgICAgYnJlYWs7CisJaWYgKChzdG9wID09ICcgJykgJiYgKElTX0JMQU5LX0NIKCpjdXIpKSkKKwkgICAgYnJlYWs7CisJaWYgKGxlbiArIDEgPj0gc2l6ZSkgeworCSAgICBzaXplICo9IDI7CisJICAgIHRtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLCBzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCXhtbENhdGFsb2dFcnJNZW1vcnkoImFsbG9jYXRpbmcgcHVibGljIElEIik7CisJCXhtbEZyZWUoYnVmKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGJ1ZiA9IHRtcDsKKwl9CisJYnVmW2xlbisrXSA9ICpjdXI7CisJY291bnQrKzsKKwlORVhUOworICAgIH0KKyAgICBidWZbbGVuXSA9IDA7CisgICAgaWYgKHN0b3AgPT0gJyAnKSB7CisJaWYgKCFJU19CTEFOS19DSCgqY3VyKSkgeworCSAgICB4bWxGcmVlKGJ1Zik7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfSBlbHNlIHsKKwlpZiAoKmN1ciAhPSBzdG9wKSB7CisJICAgIHhtbEZyZWUoYnVmKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKwlORVhUOworICAgIH0KKyAgICAqaWQgPSBidWY7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sUGFyc2VTR01MQ2F0YWxvZ05hbWU6CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgY2hhcmFjdGVyCisgKiBAbmFtZTogIHRoZSByZXR1cm4gbG9jYXRpb24KKyAqCisgKiBQYXJzZSBhbiBTR01MIGNhdGFsb2cgbmFtZQorICoKKyAqIFJldHVybnMgbmV3IGN1cnJlbnQgY2hhcmFjdGVyIGFuZCBzdG9yZSB0aGUgdmFsdWUgaW4gQG5hbWUKKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VTR01MQ2F0YWxvZ05hbWUoY29uc3QgeG1sQ2hhciAqY3VyLCB4bWxDaGFyICoqbmFtZSkgeworICAgIHhtbENoYXIgYnVmW1hNTF9NQVhfTkFNRUxFTiArIDVdOworICAgIGludCBsZW4gPSAwOworICAgIGludCBjOworCisgICAgKm5hbWUgPSBOVUxMOworCisgICAgLyoKKyAgICAgKiBIYW5kbGVyIGZvciBtb3JlIGNvbXBsZXggY2FzZXMKKyAgICAgKi8KKyAgICBjID0gKmN1cjsKKyAgICBpZiAoKCFJU19MRVRURVIoYykgJiYgKGMgIT0gJ18nKSAmJiAoYyAhPSAnOicpKSkgeworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICB3aGlsZSAoKChJU19MRVRURVIoYykpIHx8IChJU19ESUdJVChjKSkgfHwKKyAgICAgICAgICAgIChjID09ICcuJykgfHwgKGMgPT0gJy0nKSB8fAorCSAgICAoYyA9PSAnXycpIHx8IChjID09ICc6JykpKSB7CisJYnVmW2xlbisrXSA9IGM7CisJY3VyKys7CisJYyA9ICpjdXI7CisJaWYgKGxlbiA+PSBYTUxfTUFYX05BTUVMRU4pCisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgKm5hbWUgPSB4bWxTdHJuZHVwKGJ1ZiwgbGVuKTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxHZXRTR01MQ2F0YWxvZ0VudHJ5VHlwZToKKyAqIEBuYW1lOiAgdGhlIGVudHJ5IG5hbWUKKyAqCisgKiBHZXQgdGhlIENhdGFsb2cgZW50cnkgdHlwZSBmb3IgYSBnaXZlbiBTR01MIENhdGFsb2cgbmFtZQorICoKKyAqIFJldHVybnMgQ2F0YWxvZyBlbnRyeSB0eXBlCisgKi8KK3N0YXRpYyB4bWxDYXRhbG9nRW50cnlUeXBlCit4bWxHZXRTR01MQ2F0YWxvZ0VudHJ5VHlwZShjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sQ2F0YWxvZ0VudHJ5VHlwZSB0eXBlID0gWE1MX0NBVEFfTk9ORTsKKyAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgIlNZU1RFTSIpKQorCXR5cGUgPSBTR01MX0NBVEFfU1lTVEVNOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJQVUJMSUMiKSkKKwl0eXBlID0gU0dNTF9DQVRBX1BVQkxJQzsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiREVMRUdBVEUiKSkKKwl0eXBlID0gU0dNTF9DQVRBX0RFTEVHQVRFOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJFTlRJVFkiKSkKKwl0eXBlID0gU0dNTF9DQVRBX0VOVElUWTsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiRE9DVFlQRSIpKQorCXR5cGUgPSBTR01MX0NBVEFfRE9DVFlQRTsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiTElOS1RZUEUiKSkKKwl0eXBlID0gU0dNTF9DQVRBX0xJTktUWVBFOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJOT1RBVElPTiIpKQorCXR5cGUgPSBTR01MX0NBVEFfTk9UQVRJT047CisgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgIlNHTUxERUNMIikpCisJdHlwZSA9IFNHTUxfQ0FUQV9TR01MREVDTDsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiRE9DVU1FTlQiKSkKKwl0eXBlID0gU0dNTF9DQVRBX0RPQ1VNRU5UOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJDQVRBTE9HIikpCisJdHlwZSA9IFNHTUxfQ0FUQV9DQVRBTE9HOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJCQVNFIikpCisJdHlwZSA9IFNHTUxfQ0FUQV9CQVNFOworICAgIHJldHVybih0eXBlKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVNHTUxDYXRhbG9nOgorICogQGNhdGFsOiAgdGhlIFNHTUwgQ2F0YWxvZworICogQHZhbHVlOiAgdGhlIGNvbnRlbnQgb2YgdGhlIFNHTUwgQ2F0YWxvZyBzZXJpYWxpemF0aW9uCisgKiBAZmlsZTogIHRoZSBmaWxlcGF0aCBmb3IgdGhlIGNhdGFsb2cKKyAqIEBzdXBlcjogIHNob3VsZCB0aGlzIGJlIGhhbmRsZWQgYXMgYSBTdXBlciBDYXRhbG9nIGluIHdoaWNoIGNhc2UKKyAqICAgICAgICAgIHBhcnNpbmcgaXMgbm90IHJlY3Vyc2l2ZQorICoKKyAqIFBhcnNlIGFuIFNHTUwgY2F0YWxvZyBjb250ZW50IGFuZCBmaWxsIHVwIHRoZSBAY2F0YWwgaGFzaCB0YWJsZSB3aXRoCisgKiB0aGUgbmV3IGVudHJpZXMgZm91bmQuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sUGFyc2VTR01MQ2F0YWxvZyh4bWxDYXRhbG9nUHRyIGNhdGFsLCBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlLCBpbnQgc3VwZXIpIHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIgPSB2YWx1ZTsKKyAgICB4bWxDaGFyICpiYXNlID0gTlVMTDsKKyAgICBpbnQgcmVzOworCisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKGZpbGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgYmFzZSA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBmaWxlKTsKKworICAgIHdoaWxlICgoY3VyICE9IE5VTEwpICYmIChjdXJbMF0gIT0gMCkpIHsKKwlTS0lQX0JMQU5LUzsKKwlpZiAoY3VyWzBdID09IDApCisJICAgIGJyZWFrOworCWlmICgoY3VyWzBdID09ICctJykgJiYgKGN1clsxXSA9PSAnLScpKSB7CisJICAgIGN1ciA9IHhtbFBhcnNlU0dNTENhdGFsb2dDb21tZW50KGN1cik7CisJICAgIGlmIChjdXIgPT0gTlVMTCkgeworCQkvKiBlcnJvciAqLworCQlicmVhazsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIHhtbENoYXIgKnN5c2lkID0gTlVMTDsKKwkgICAgeG1sQ2hhciAqbmFtZSA9IE5VTEw7CisJICAgIHhtbENhdGFsb2dFbnRyeVR5cGUgdHlwZSA9IFhNTF9DQVRBX05PTkU7CisKKwkgICAgY3VyID0geG1sUGFyc2VTR01MQ2F0YWxvZ05hbWUoY3VyLCAmbmFtZSk7CisJICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwkJLyogZXJyb3IgKi8KKwkJYnJlYWs7CisJICAgIH0KKwkgICAgaWYgKCFJU19CTEFOS19DSCgqY3VyKSkgeworCQkvKiBlcnJvciAqLworCQlicmVhazsKKwkgICAgfQorCSAgICBTS0lQX0JMQU5LUzsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJTWVNURU0iKSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU0dNTF9DQVRBX1NZU1RFTTsKKwkgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgIlBVQkxJQyIpKQorICAgICAgICAgICAgICAgIHR5cGUgPSBTR01MX0NBVEFfUFVCTElDOworCSAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiREVMRUdBVEUiKSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU0dNTF9DQVRBX0RFTEVHQVRFOworCSAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiRU5USVRZIikpCisgICAgICAgICAgICAgICAgdHlwZSA9IFNHTUxfQ0FUQV9FTlRJVFk7CisJICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJET0NUWVBFIikpCisgICAgICAgICAgICAgICAgdHlwZSA9IFNHTUxfQ0FUQV9ET0NUWVBFOworCSAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiTElOS1RZUEUiKSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU0dNTF9DQVRBX0xJTktUWVBFOworCSAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiTk9UQVRJT04iKSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU0dNTF9DQVRBX05PVEFUSU9OOworCSAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiU0dNTERFQ0wiKSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU0dNTF9DQVRBX1NHTUxERUNMOworCSAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiRE9DVU1FTlQiKSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU0dNTF9DQVRBX0RPQ1VNRU5UOworCSAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiQ0FUQUxPRyIpKQorICAgICAgICAgICAgICAgIHR5cGUgPSBTR01MX0NBVEFfQ0FUQUxPRzsKKwkgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgIkJBU0UiKSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU0dNTF9DQVRBX0JBU0U7CisJICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopICJPVkVSUklERSIpKSB7CisJCXhtbEZyZWUobmFtZSk7CisJCWN1ciA9IHhtbFBhcnNlU0dNTENhdGFsb2dOYW1lKGN1ciwgJm5hbWUpOworCQlpZiAobmFtZSA9PSBOVUxMKSB7CisJCSAgICAvKiBlcnJvciAqLworCQkgICAgYnJlYWs7CisJCX0KKwkJeG1sRnJlZShuYW1lKTsKKwkJY29udGludWU7CisJICAgIH0KKwkgICAgeG1sRnJlZShuYW1lKTsKKwkgICAgbmFtZSA9IE5VTEw7CisKKwkgICAgc3dpdGNoKHR5cGUpIHsKKwkJY2FzZSBTR01MX0NBVEFfRU5USVRZOgorCQkgICAgaWYgKCpjdXIgPT0gJyUnKQorCQkJdHlwZSA9IFNHTUxfQ0FUQV9QRU5USVRZOworCQljYXNlIFNHTUxfQ0FUQV9QRU5USVRZOgorCQljYXNlIFNHTUxfQ0FUQV9ET0NUWVBFOgorCQljYXNlIFNHTUxfQ0FUQV9MSU5LVFlQRToKKwkJY2FzZSBTR01MX0NBVEFfTk9UQVRJT046CisJCSAgICBjdXIgPSB4bWxQYXJzZVNHTUxDYXRhbG9nTmFtZShjdXIsICZuYW1lKTsKKwkJICAgIGlmIChjdXIgPT0gTlVMTCkgeworCQkJLyogZXJyb3IgKi8KKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgaWYgKCFJU19CTEFOS19DSCgqY3VyKSkgeworCQkJLyogZXJyb3IgKi8KKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgU0tJUF9CTEFOS1M7CisJCSAgICBjdXIgPSB4bWxQYXJzZVNHTUxDYXRhbG9nUHViaWQoY3VyLCAmc3lzaWQpOworCQkgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJCQkvKiBlcnJvciAqLworCQkJYnJlYWs7CisJCSAgICB9CisJCSAgICBicmVhazsKKwkJY2FzZSBTR01MX0NBVEFfUFVCTElDOgorCQljYXNlIFNHTUxfQ0FUQV9TWVNURU06CisJCWNhc2UgU0dNTF9DQVRBX0RFTEVHQVRFOgorCQkgICAgY3VyID0geG1sUGFyc2VTR01MQ2F0YWxvZ1B1YmlkKGN1ciwgJm5hbWUpOworCQkgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJCQkvKiBlcnJvciAqLworCQkJYnJlYWs7CisJCSAgICB9CisJCSAgICBpZiAodHlwZSAhPSBTR01MX0NBVEFfU1lTVEVNKSB7CisJCSAgICAgICAgeG1sQ2hhciAqbm9ybWlkOworCisJCSAgICAgICAgbm9ybWlkID0geG1sQ2F0YWxvZ05vcm1hbGl6ZVB1YmxpYyhuYW1lKTsKKwkJICAgICAgICBpZiAobm9ybWlkICE9IE5VTEwpIHsKKwkJICAgICAgICAgICAgaWYgKG5hbWUgIT0gTlVMTCkKKwkJICAgICAgICAgICAgICAgIHhtbEZyZWUobmFtZSk7CisJCSAgICAgICAgICAgIGlmICgqbm9ybWlkICE9IDApCisJCSAgICAgICAgICAgICAgICBuYW1lID0gbm9ybWlkOworCQkgICAgICAgICAgICBlbHNlIHsKKwkJICAgICAgICAgICAgICAgIHhtbEZyZWUobm9ybWlkKTsKKwkJICAgICAgICAgICAgICAgIG5hbWUgPSBOVUxMOworCQkgICAgICAgICAgICB9CisJCSAgICAgICAgfQorCQkgICAgfQorCQkgICAgaWYgKCFJU19CTEFOS19DSCgqY3VyKSkgeworCQkJLyogZXJyb3IgKi8KKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgU0tJUF9CTEFOS1M7CisJCSAgICBjdXIgPSB4bWxQYXJzZVNHTUxDYXRhbG9nUHViaWQoY3VyLCAmc3lzaWQpOworCQkgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJCQkvKiBlcnJvciAqLworCQkJYnJlYWs7CisJCSAgICB9CisJCSAgICBicmVhazsKKwkJY2FzZSBTR01MX0NBVEFfQkFTRToKKwkJY2FzZSBTR01MX0NBVEFfQ0FUQUxPRzoKKwkJY2FzZSBTR01MX0NBVEFfRE9DVU1FTlQ6CisJCWNhc2UgU0dNTF9DQVRBX1NHTUxERUNMOgorCQkgICAgY3VyID0geG1sUGFyc2VTR01MQ2F0YWxvZ1B1YmlkKGN1ciwgJnN5c2lkKTsKKwkJICAgIGlmIChjdXIgPT0gTlVMTCkgeworCQkJLyogZXJyb3IgKi8KKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCSAgICBicmVhazsKKwkgICAgfQorCSAgICBpZiAoY3VyID09IE5VTEwpIHsKKwkJaWYgKG5hbWUgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUobmFtZSk7CisJCWlmIChzeXNpZCAhPSBOVUxMKQorCQkgICAgeG1sRnJlZShzeXNpZCk7CisJCWJyZWFrOworCSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gU0dNTF9DQVRBX0JBU0UpIHsKKwkJaWYgKGJhc2UgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUoYmFzZSk7CisJCWJhc2UgPSB4bWxTdHJkdXAoc3lzaWQpOworCSAgICB9IGVsc2UgaWYgKCh0eXBlID09IFNHTUxfQ0FUQV9QVUJMSUMpIHx8CisJCSAgICAgICAodHlwZSA9PSBTR01MX0NBVEFfU1lTVEVNKSkgeworCQl4bWxDaGFyICpmaWxlbmFtZTsKKworCQlmaWxlbmFtZSA9IHhtbEJ1aWxkVVJJKHN5c2lkLCBiYXNlKTsKKwkJaWYgKGZpbGVuYW1lICE9IE5VTEwpIHsKKwkJICAgIHhtbENhdGFsb2dFbnRyeVB0ciBlbnRyeTsKKworCQkgICAgZW50cnkgPSB4bWxOZXdDYXRhbG9nRW50cnkodHlwZSwgbmFtZSwgZmlsZW5hbWUsCisJCQkgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIFhNTF9DQVRBX1BSRUZFUl9OT05FLCBOVUxMKTsKKwkJICAgIHJlcyA9IHhtbEhhc2hBZGRFbnRyeShjYXRhbC0+c2dtbCwgbmFtZSwgZW50cnkpOworCQkgICAgaWYgKHJlcyA8IDApIHsKKwkJCXhtbEZyZWVDYXRhbG9nRW50cnkoZW50cnkpOworCQkgICAgfQorCQkgICAgeG1sRnJlZShmaWxlbmFtZSk7CisJCX0KKworCSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gU0dNTF9DQVRBX0NBVEFMT0cpIHsKKwkJaWYgKHN1cGVyKSB7CisJCSAgICB4bWxDYXRhbG9nRW50cnlQdHIgZW50cnk7CisKKwkJICAgIGVudHJ5ID0geG1sTmV3Q2F0YWxvZ0VudHJ5KHR5cGUsIHN5c2lkLCBOVUxMLCBOVUxMLAorCQkJICAgICAgICAgICAgICAgICAgICAgICBYTUxfQ0FUQV9QUkVGRVJfTk9ORSwgTlVMTCk7CisJCSAgICByZXMgPSB4bWxIYXNoQWRkRW50cnkoY2F0YWwtPnNnbWwsIHN5c2lkLCBlbnRyeSk7CisJCSAgICBpZiAocmVzIDwgMCkgeworCQkJeG1sRnJlZUNhdGFsb2dFbnRyeShlbnRyeSk7CisJCSAgICB9CisJCX0gZWxzZSB7CisJCSAgICB4bWxDaGFyICpmaWxlbmFtZTsKKworCQkgICAgZmlsZW5hbWUgPSB4bWxCdWlsZFVSSShzeXNpZCwgYmFzZSk7CisJCSAgICBpZiAoZmlsZW5hbWUgIT0gTlVMTCkgeworCQkJeG1sRXhwYW5kQ2F0YWxvZyhjYXRhbCwgKGNvbnN0IGNoYXIgKilmaWxlbmFtZSk7CisJCQl4bWxGcmVlKGZpbGVuYW1lKTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJICAgIC8qCisJICAgICAqIGRyb3AgYW55dGhpbmcgZWxzZSB3ZSB3b24ndCBoYW5kbGUgaXQKKwkgICAgICovCisJICAgIGlmIChuYW1lICE9IE5VTEwpCisJCXhtbEZyZWUobmFtZSk7CisJICAgIGlmIChzeXNpZCAhPSBOVUxMKQorCQl4bWxGcmVlKHN5c2lkKTsKKwl9CisgICAgfQorICAgIGlmIChiYXNlICE9IE5VTEwpCisJeG1sRnJlZShiYXNlKTsKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlTR01MIENhdGFsb2cgaGFuZGxpbmcJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbENhdGFsb2dHZXRTR01MUHVibGljOgorICogQGNhdGFsOiAgYW4gU0dNTCBjYXRhbG9nIGhhc2gKKyAqIEBwdWJJRDogIHRoZSBwdWJsaWMgSUQgc3RyaW5nCisgKgorICogVHJ5IHRvIGxvb2t1cCB0aGUgY2F0YWxvZyBsb2NhbCByZWZlcmVuY2UgYXNzb2NpYXRlZCB0byBhIHB1YmxpYyBJRAorICoKKyAqIFJldHVybnMgdGhlIGxvY2FsIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxDYXRhbG9nR2V0U0dNTFB1YmxpYyh4bWxIYXNoVGFibGVQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKnB1YklEKSB7CisgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIGVudHJ5OworICAgIHhtbENoYXIgKm5vcm1pZDsKKworICAgIGlmIChjYXRhbCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIG5vcm1pZCA9IHhtbENhdGFsb2dOb3JtYWxpemVQdWJsaWMocHViSUQpOworICAgIGlmIChub3JtaWQgIT0gTlVMTCkKKyAgICAgICAgcHViSUQgPSAoKm5vcm1pZCAhPSAwID8gbm9ybWlkIDogTlVMTCk7CisKKyAgICBlbnRyeSA9ICh4bWxDYXRhbG9nRW50cnlQdHIpIHhtbEhhc2hMb29rdXAoY2F0YWwsIHB1YklEKTsKKyAgICBpZiAoZW50cnkgPT0gTlVMTCkgeworCWlmIChub3JtaWQgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShub3JtaWQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGVudHJ5LT50eXBlID09IFNHTUxfQ0FUQV9QVUJMSUMpIHsKKwlpZiAobm9ybWlkICE9IE5VTEwpCisJICAgIHhtbEZyZWUobm9ybWlkKTsKKwlyZXR1cm4oZW50cnktPlVSTCk7CisgICAgfQorICAgIGlmIChub3JtaWQgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShub3JtaWQpOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxDYXRhbG9nR2V0U0dNTFN5c3RlbToKKyAqIEBjYXRhbDogIGFuIFNHTUwgY2F0YWxvZyBoYXNoCisgKiBAc3lzSUQ6ICB0aGUgc3lzdGVtIElEIHN0cmluZworICoKKyAqIFRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgbG9jYWwgcmVmZXJlbmNlIGZvciBhIHN5c3RlbSBJRAorICoKKyAqIFJldHVybnMgdGhlIGxvY2FsIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxDYXRhbG9nR2V0U0dNTFN5c3RlbSh4bWxIYXNoVGFibGVQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKnN5c0lEKSB7CisgICAgeG1sQ2F0YWxvZ0VudHJ5UHRyIGVudHJ5OworCisgICAgaWYgKGNhdGFsID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgZW50cnkgPSAoeG1sQ2F0YWxvZ0VudHJ5UHRyKSB4bWxIYXNoTG9va3VwKGNhdGFsLCBzeXNJRCk7CisgICAgaWYgKGVudHJ5ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChlbnRyeS0+dHlwZSA9PSBTR01MX0NBVEFfU1lTVEVNKQorCXJldHVybihlbnRyeS0+VVJMKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ1NHTUxSZXNvbHZlOgorICogQGNhdGFsOiAgdGhlIFNHTUwgY2F0YWxvZworICogQHB1YklEOiAgdGhlIHB1YmxpYyBJRCBzdHJpbmcKKyAqIEBzeXNJRDogIHRoZSBzeXN0ZW0gSUQgc3RyaW5nCisgKgorICogRG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBFeHRlcm5hbCBJZGVudGlmaWVyCisgKgorICogUmV0dXJucyB0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZAorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxDYXRhbG9nU0dNTFJlc29sdmUoeG1sQ2F0YWxvZ1B0ciBjYXRhbCwgY29uc3QgeG1sQ2hhciAqcHViSUQsCisJICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpzeXNJRCkgeworICAgIGNvbnN0IHhtbENoYXIgKnJldCA9IE5VTEw7CisKKyAgICBpZiAoY2F0YWwtPnNnbWwgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBpZiAocHViSUQgIT0gTlVMTCkKKwlyZXQgPSB4bWxDYXRhbG9nR2V0U0dNTFB1YmxpYyhjYXRhbC0+c2dtbCwgcHViSUQpOworICAgIGlmIChyZXQgIT0gTlVMTCkKKwlyZXR1cm4ocmV0KTsKKyAgICBpZiAoc3lzSUQgIT0gTlVMTCkKKwlyZXQgPSB4bWxDYXRhbG9nR2V0U0dNTFN5c3RlbShjYXRhbC0+c2dtbCwgc3lzSUQpOworICAgIGlmIChyZXQgIT0gTlVMTCkKKwlyZXR1cm4ocmV0KTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlTcGVjaWZpYyBQdWJsaWMgaW50ZXJmYWNlcwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzoKKyAqIEBmaWxlbmFtZTogIGEgZmlsZSBwYXRoCisgKgorICogTG9hZCBhbiBTR01MIHN1cGVyIGNhdGFsb2cuIEl0IHdvbid0IGV4cGFuZCBDQVRBTE9HIG9yIERFTEVHQVRFCisgKiByZWZlcmVuY2VzLiBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciBtYW5pcHVsYXRpbmcgU0dNTCBTdXBlciBDYXRhbG9ncworICogbGlrZSBhZGRpbmcgYW5kIHJlbW92aW5nIENBVEFMT0cgb3IgREVMRUdBVEUgZW50cmllcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBjYXRhbG9nIHBhcnNlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sQ2F0YWxvZ1B0cgoreG1sTG9hZFNHTUxTdXBlckNhdGFsb2coY29uc3QgY2hhciAqZmlsZW5hbWUpCit7CisgICAgeG1sQ2hhciAqY29udGVudDsKKyAgICB4bWxDYXRhbG9nUHRyIGNhdGFsOworICAgIGludCByZXQ7CisKKyAgICBjb250ZW50ID0geG1sTG9hZEZpbGVDb250ZW50KGZpbGVuYW1lKTsKKyAgICBpZiAoY29udGVudCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICBjYXRhbCA9IHhtbENyZWF0ZU5ld0NhdGFsb2coWE1MX1NHTUxfQ0FUQUxPR19UWVBFLCB4bWxDYXRhbG9nRGVmYXVsdFByZWZlcik7CisgICAgaWYgKGNhdGFsID09IE5VTEwpIHsKKwl4bWxGcmVlKGNvbnRlbnQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICByZXQgPSB4bWxQYXJzZVNHTUxDYXRhbG9nKGNhdGFsLCBjb250ZW50LCBmaWxlbmFtZSwgMSk7CisgICAgeG1sRnJlZShjb250ZW50KTsKKyAgICBpZiAocmV0IDwgMCkgeworCXhtbEZyZWVDYXRhbG9nKGNhdGFsKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybiAoY2F0YWwpOworfQorCisvKioKKyAqIHhtbExvYWRBQ2F0YWxvZzoKKyAqIEBmaWxlbmFtZTogIGEgZmlsZSBwYXRoCisgKgorICogTG9hZCB0aGUgY2F0YWxvZyBhbmQgYnVpbGQgdGhlIGFzc29jaWF0ZWQgZGF0YSBzdHJ1Y3R1cmVzLgorICogVGhpcyBjYW4gYmUgZWl0aGVyIGFuIFhNTCBDYXRhbG9nIG9yIGFuIFNHTUwgQ2F0YWxvZworICogSXQgd2lsbCByZWN1cnNlIGluIFNHTUwgQ0FUQUxPRyBlbnRyaWVzLiBPbiB0aGUgb3RoZXIgaGFuZCBYTUwKKyAqIENhdGFsb2dzIGFyZSBub3QgaGFuZGxlZCByZWN1cnNpdmVseS4KKyAqCisgKiBSZXR1cm5zIHRoZSBjYXRhbG9nIHBhcnNlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sQ2F0YWxvZ1B0cgoreG1sTG9hZEFDYXRhbG9nKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQoreworICAgIHhtbENoYXIgKmNvbnRlbnQ7CisgICAgeG1sQ2hhciAqZmlyc3Q7CisgICAgeG1sQ2F0YWxvZ1B0ciBjYXRhbDsKKyAgICBpbnQgcmV0OworCisgICAgY29udGVudCA9IHhtbExvYWRGaWxlQ29udGVudChmaWxlbmFtZSk7CisgICAgaWYgKGNvbnRlbnQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisKKyAgICBmaXJzdCA9IGNvbnRlbnQ7CisgICAKKyAgICB3aGlsZSAoKCpmaXJzdCAhPSAwKSAmJiAoKmZpcnN0ICE9ICctJykgJiYgKCpmaXJzdCAhPSAnPCcpICYmCisJICAgKCEoKCgqZmlyc3QgPj0gJ0EnKSAmJiAoKmZpcnN0IDw9ICdaJykpIHx8CisJICAgICAgKCgqZmlyc3QgPj0gJ2EnKSAmJiAoKmZpcnN0IDw9ICd6JykpKSkpCisJZmlyc3QrKzsKKworICAgIGlmICgqZmlyc3QgIT0gJzwnKSB7CisJY2F0YWwgPSB4bWxDcmVhdGVOZXdDYXRhbG9nKFhNTF9TR01MX0NBVEFMT0dfVFlQRSwgeG1sQ2F0YWxvZ0RlZmF1bHRQcmVmZXIpOworCWlmIChjYXRhbCA9PSBOVUxMKSB7CisJICAgIHhtbEZyZWUoY29udGVudCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgICAgIHJldCA9IHhtbFBhcnNlU0dNTENhdGFsb2coY2F0YWwsIGNvbnRlbnQsIGZpbGVuYW1lLCAwKTsKKwlpZiAocmV0IDwgMCkgeworCSAgICB4bWxGcmVlQ2F0YWxvZyhjYXRhbCk7CisJICAgIHhtbEZyZWUoY29udGVudCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfSBlbHNlIHsKKwljYXRhbCA9IHhtbENyZWF0ZU5ld0NhdGFsb2coWE1MX1hNTF9DQVRBTE9HX1RZUEUsIHhtbENhdGFsb2dEZWZhdWx0UHJlZmVyKTsKKwlpZiAoY2F0YWwgPT0gTlVMTCkgeworCSAgICB4bWxGcmVlKGNvbnRlbnQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgICAgICBjYXRhbC0+eG1sID0geG1sTmV3Q2F0YWxvZ0VudHJ5KFhNTF9DQVRBX0NBVEFMT0csIE5VTEwsCisJCSAgICAgICBOVUxMLCBCQURfQ0FTVCBmaWxlbmFtZSwgeG1sQ2F0YWxvZ0RlZmF1bHRQcmVmZXIsIE5VTEwpOworICAgIH0KKyAgICB4bWxGcmVlKGNvbnRlbnQpOworICAgIHJldHVybiAoY2F0YWwpOworfQorCisvKioKKyAqIHhtbEV4cGFuZENhdGFsb2c6CisgKiBAY2F0YWw6ICBhIGNhdGFsb2cKKyAqIEBmaWxlbmFtZTogIGEgZmlsZSBwYXRoCisgKgorICogTG9hZCB0aGUgY2F0YWxvZyBhbmQgZXhwYW5kIHRoZSBleGlzdGluZyBjYXRhbCBzdHJ1Y3R1cmUuCisgKiBUaGlzIGNhbiBiZSBlaXRoZXIgYW4gWE1MIENhdGFsb2cgb3IgYW4gU0dNTCBDYXRhbG9nCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxFeHBhbmRDYXRhbG9nKHhtbENhdGFsb2dQdHIgY2F0YWwsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQoreworICAgIGludCByZXQ7CisKKyAgICBpZiAoKGNhdGFsID09IE5VTEwpIHx8IChmaWxlbmFtZSA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworCisKKyAgICBpZiAoY2F0YWwtPnR5cGUgPT0gWE1MX1NHTUxfQ0FUQUxPR19UWVBFKSB7CisJeG1sQ2hhciAqY29udGVudDsKKworCWNvbnRlbnQgPSB4bWxMb2FkRmlsZUNvbnRlbnQoZmlsZW5hbWUpOworCWlmIChjb250ZW50ID09IE5VTEwpCisJICAgIHJldHVybigtMSk7CisKKyAgICAgICAgcmV0ID0geG1sUGFyc2VTR01MQ2F0YWxvZyhjYXRhbCwgY29udGVudCwgZmlsZW5hbWUsIDApOworCWlmIChyZXQgPCAwKSB7CisJICAgIHhtbEZyZWUoY29udGVudCk7CisJICAgIHJldHVybigtMSk7CisJfQorCXhtbEZyZWUoY29udGVudCk7CisgICAgfSBlbHNlIHsKKwl4bWxDYXRhbG9nRW50cnlQdHIgdG1wLCBjdXI7CisJdG1wID0geG1sTmV3Q2F0YWxvZ0VudHJ5KFhNTF9DQVRBX0NBVEFMT0csIE5VTEwsCisJCSAgICAgICBOVUxMLCBCQURfQ0FTVCBmaWxlbmFtZSwgeG1sQ2F0YWxvZ0RlZmF1bHRQcmVmZXIsIE5VTEwpOworCisJY3VyID0gY2F0YWwtPnhtbDsKKwlpZiAoY3VyID09IE5VTEwpIHsKKwkgICAgY2F0YWwtPnhtbCA9IHRtcDsKKwl9IGVsc2UgeworCSAgICB3aGlsZSAoY3VyLT5uZXh0ICE9IE5VTEwpIGN1ciA9IGN1ci0+bmV4dDsKKwkgICAgY3VyLT5uZXh0ID0gdG1wOworCX0KKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW06CisgKiBAY2F0YWw6ICBhIENhdGFsb2cKKyAqIEBzeXNJRDogIHRoZSBzeXN0ZW0gSUQgc3RyaW5nCisgKgorICogVHJ5IHRvIGxvb2t1cCB0aGUgY2F0YWxvZyByZXNvdXJjZSBmb3IgYSBzeXN0ZW0gSUQKKyAqCisgKiBSZXR1cm5zIHRoZSByZXNvdXJjZSBpZiBmb3VuZCBvciBOVUxMIG90aGVyd2lzZSwgdGhlIHZhbHVlIHJldHVybmVkCisgKiAgICAgIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0oeG1sQ2F0YWxvZ1B0ciBjYXRhbCwgY29uc3QgeG1sQ2hhciAqc3lzSUQpIHsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworCisgICAgaWYgKChzeXNJRCA9PSBOVUxMKSB8fCAoY2F0YWwgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIAorICAgIGlmICh4bWxEZWJ1Z0NhdGFsb2dzKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiUmVzb2x2ZSBzeXNJRCAlc1xuIiwgc3lzSUQpOworCisgICAgaWYgKGNhdGFsLT50eXBlID09IFhNTF9YTUxfQ0FUQUxPR19UWVBFKSB7CisJcmV0ID0geG1sQ2F0YWxvZ0xpc3RYTUxSZXNvbHZlKGNhdGFsLT54bWwsIE5VTEwsIHN5c0lEKTsKKwlpZiAocmV0ID09IFhNTF9DQVRBTF9CUkVBSykKKwkgICAgcmV0ID0gTlVMTDsKKyAgICB9IGVsc2UgeworCWNvbnN0IHhtbENoYXIgKnNnbWw7CisKKwlzZ21sID0geG1sQ2F0YWxvZ0dldFNHTUxTeXN0ZW0oY2F0YWwtPnNnbWwsIHN5c0lEKTsKKwlpZiAoc2dtbCAhPSBOVUxMKQorCSAgICByZXQgPSB4bWxTdHJkdXAoc2dtbCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYzoKKyAqIEBjYXRhbDogIGEgQ2F0YWxvZworICogQHB1YklEOiAgdGhlIHB1YmxpYyBJRCBzdHJpbmcKKyAqCisgKiBUcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIGxvY2FsIHJlZmVyZW5jZSBhc3NvY2lhdGVkIHRvIGEgcHVibGljIElEIGluIHRoYXQgY2F0YWxvZworICoKKyAqIFJldHVybnMgdGhlIGxvY2FsIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLCB0aGUgdmFsdWUgcmV0dXJuZWQKKyAqICAgICAgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLgorICovCit4bWxDaGFyICoKK3htbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYyh4bWxDYXRhbG9nUHRyIGNhdGFsLCBjb25zdCB4bWxDaGFyICpwdWJJRCkgeworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisKKyAgICBpZiAoKHB1YklEID09IE5VTEwpIHx8IChjYXRhbCA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgCisgICAgaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJSZXNvbHZlIHB1YklEICVzXG4iLCBwdWJJRCk7CisKKyAgICBpZiAoY2F0YWwtPnR5cGUgPT0gWE1MX1hNTF9DQVRBTE9HX1RZUEUpIHsKKwlyZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoY2F0YWwtPnhtbCwgcHViSUQsIE5VTEwpOworCWlmIChyZXQgPT0gWE1MX0NBVEFMX0JSRUFLKQorCSAgICByZXQgPSBOVUxMOworICAgIH0gZWxzZSB7CisJY29uc3QgeG1sQ2hhciAqc2dtbDsKKworCXNnbWwgPSB4bWxDYXRhbG9nR2V0U0dNTFB1YmxpYyhjYXRhbC0+c2dtbCwgcHViSUQpOworCWlmIChzZ21sICE9IE5VTEwpCisJICAgIHJldCA9IHhtbFN0cmR1cChzZ21sKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQUNhdGFsb2dSZXNvbHZlOgorICogQGNhdGFsOiAgYSBDYXRhbG9nCisgKiBAcHViSUQ6ICB0aGUgcHVibGljIElEIHN0cmluZworICogQHN5c0lEOiAgdGhlIHN5c3RlbSBJRCBzdHJpbmcKKyAqCisgKiBEbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIEV4dGVybmFsIElkZW50aWZpZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kLCBpdCBtdXN0IGJlIGZyZWVkCisgKiAgICAgIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sQUNhdGFsb2dSZXNvbHZlKHhtbENhdGFsb2dQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKiBwdWJJRCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3lzSUQpCit7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKworICAgIGlmICgoKHB1YklEID09IE5VTEwpICYmIChzeXNJRCA9PSBOVUxMKSkgfHwgKGNhdGFsID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgaWYgKHhtbERlYnVnQ2F0YWxvZ3MpIHsKKyAgICAgICAgIGlmICgocHViSUQgIT0gTlVMTCkgJiYgKHN5c0lEICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXNvbHZlOiBwdWJJRCAlcyBzeXNJRCAlc1xuIiwgcHViSUQsIHN5c0lEKTsKKyAgICAgICAgIH0gZWxzZSBpZiAocHViSUQgIT0gTlVMTCkgeworICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVzb2x2ZTogcHViSUQgJXNcbiIsIHB1YklEKTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXNvbHZlOiBzeXNJRCAlc1xuIiwgc3lzSUQpOworICAgICAgICAgfQorICAgIH0KKworICAgIGlmIChjYXRhbC0+dHlwZSA9PSBYTUxfWE1MX0NBVEFMT0dfVFlQRSkgeworICAgICAgICByZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoY2F0YWwtPnhtbCwgcHViSUQsIHN5c0lEKTsKKwlpZiAocmV0ID09IFhNTF9DQVRBTF9CUkVBSykKKwkgICAgcmV0ID0gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25zdCB4bWxDaGFyICpzZ21sOworCisgICAgICAgIHNnbWwgPSB4bWxDYXRhbG9nU0dNTFJlc29sdmUoY2F0YWwsIHB1YklELCBzeXNJRCk7CisgICAgICAgIGlmIChzZ21sICE9IE5VTEwpCisgICAgICAgICAgICByZXQgPSB4bWxTdHJkdXAoc2dtbCk7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxBQ2F0YWxvZ1Jlc29sdmVVUkk6CisgKiBAY2F0YWw6ICBhIENhdGFsb2cKKyAqIEBVUkk6ICB0aGUgVVJJCisgKgorICogRG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBVUkkKKyAqCisgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kLCBpdCBtdXN0IGJlIGZyZWVkCisgKiAgICAgIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sQUNhdGFsb2dSZXNvbHZlVVJJKHhtbENhdGFsb2dQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKlVSSSkgeworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisKKyAgICBpZiAoKFVSSSA9PSBOVUxMKSB8fCAoY2F0YWwgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJSZXNvbHZlIFVSSSAlc1xuIiwgVVJJKTsKKworICAgIGlmIChjYXRhbC0+dHlwZSA9PSBYTUxfWE1MX0NBVEFMT0dfVFlQRSkgeworCXJldCA9IHhtbENhdGFsb2dMaXN0WE1MUmVzb2x2ZVVSSShjYXRhbC0+eG1sLCBVUkkpOworCWlmIChyZXQgPT0gWE1MX0NBVEFMX0JSRUFLKQorCSAgICByZXQgPSBOVUxMOworICAgIH0gZWxzZSB7CisJY29uc3QgeG1sQ2hhciAqc2dtbDsKKworCXNnbWwgPSB4bWxDYXRhbG9nU0dNTFJlc29sdmUoY2F0YWwsIE5VTEwsIFVSSSk7CisJaWYgKHNnbWwgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldCA9IHhtbFN0cmR1cChzZ21sKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sQUNhdGFsb2dEdW1wOgorICogQGNhdGFsOiAgYSBDYXRhbG9nCisgKiBAb3V0OiAgdGhlIGZpbGUuCisgKgorICogRHVtcCB0aGUgZ2l2ZW4gY2F0YWxvZyB0byB0aGUgZ2l2ZW4gZmlsZS4KKyAqLwordm9pZAoreG1sQUNhdGFsb2dEdW1wKHhtbENhdGFsb2dQdHIgY2F0YWwsIEZJTEUgKm91dCkgeworICAgIGlmICgob3V0ID09IE5VTEwpIHx8IChjYXRhbCA9PSBOVUxMKSkKKwlyZXR1cm47CisKKyAgICBpZiAoY2F0YWwtPnR5cGUgPT0gWE1MX1hNTF9DQVRBTE9HX1RZUEUpIHsKKwl4bWxEdW1wWE1MQ2F0YWxvZyhvdXQsIGNhdGFsLT54bWwpOworICAgIH0gZWxzZSB7CisJeG1sSGFzaFNjYW4oY2F0YWwtPnNnbWwsCisJCSAgICAoeG1sSGFzaFNjYW5uZXIpIHhtbENhdGFsb2dEdW1wRW50cnksIG91dCk7CisgICAgfSAKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxBQ2F0YWxvZ0FkZDoKKyAqIEBjYXRhbDogIGEgQ2F0YWxvZworICogQHR5cGU6ICB0aGUgdHlwZSBvZiByZWNvcmQgdG8gYWRkIHRvIHRoZSBjYXRhbG9nCisgKiBAb3JpZzogIHRoZSBzeXN0ZW0sIHB1YmxpYyBvciBwcmVmaXggdG8gbWF0Y2ggCisgKiBAcmVwbGFjZTogIHRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIG1hdGNoCisgKgorICogQWRkIGFuIGVudHJ5IGluIHRoZSBjYXRhbG9nLCBpdCBtYXkgb3ZlcndyaXRlIGV4aXN0aW5nIGJ1dAorICogZGlmZmVyZW50IGVudHJpZXMuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZQorICovCitpbnQKK3htbEFDYXRhbG9nQWRkKHhtbENhdGFsb2dQdHIgY2F0YWwsIGNvbnN0IHhtbENoYXIgKiB0eXBlLAorICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogb3JpZywgY29uc3QgeG1sQ2hhciAqIHJlcGxhY2UpCit7CisgICAgaW50IHJlcyA9IC0xOworCisgICAgaWYgKGNhdGFsID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKworICAgIGlmIChjYXRhbC0+dHlwZSA9PSBYTUxfWE1MX0NBVEFMT0dfVFlQRSkgeworICAgICAgICByZXMgPSB4bWxBZGRYTUxDYXRhbG9nKGNhdGFsLT54bWwsIHR5cGUsIG9yaWcsIHJlcGxhY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbENhdGFsb2dFbnRyeVR5cGUgY2F0dHlwZTsKKworICAgICAgICBjYXR0eXBlID0geG1sR2V0U0dNTENhdGFsb2dFbnRyeVR5cGUodHlwZSk7CisgICAgICAgIGlmIChjYXR0eXBlICE9IFhNTF9DQVRBX05PTkUpIHsKKyAgICAgICAgICAgIHhtbENhdGFsb2dFbnRyeVB0ciBlbnRyeTsKKworICAgICAgICAgICAgZW50cnkgPSB4bWxOZXdDYXRhbG9nRW50cnkoY2F0dHlwZSwgb3JpZywgcmVwbGFjZSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9DQVRBX1BSRUZFUl9OT05FLCBOVUxMKTsKKwkgICAgaWYgKGNhdGFsLT5zZ21sID09IE5VTEwpCisJCWNhdGFsLT5zZ21sID0geG1sSGFzaENyZWF0ZSgxMCk7CisgICAgICAgICAgICByZXMgPSB4bWxIYXNoQWRkRW50cnkoY2F0YWwtPnNnbWwsIG9yaWcsIGVudHJ5KTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKHJlcyk7Cit9CisKKy8qKgorICogeG1sQUNhdGFsb2dSZW1vdmU6CisgKiBAY2F0YWw6ICBhIENhdGFsb2cKKyAqIEB2YWx1ZTogIHRoZSB2YWx1ZSB0byByZW1vdmUKKyAqCisgKiBSZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgY2F0YWxvZworICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHJlbW92ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sQUNhdGFsb2dSZW1vdmUoeG1sQ2F0YWxvZ1B0ciBjYXRhbCwgY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICBpbnQgcmVzID0gLTE7CisKKyAgICBpZiAoKGNhdGFsID09IE5VTEwpIHx8ICh2YWx1ZSA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKGNhdGFsLT50eXBlID09IFhNTF9YTUxfQ0FUQUxPR19UWVBFKSB7CisJcmVzID0geG1sRGVsWE1MQ2F0YWxvZyhjYXRhbC0+eG1sLCB2YWx1ZSk7CisgICAgfSBlbHNlIHsKKwlyZXMgPSB4bWxIYXNoUmVtb3ZlRW50cnkoY2F0YWwtPnNnbWwsIHZhbHVlLAorCQkoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxGcmVlQ2F0YWxvZ0VudHJ5KTsKKwlpZiAocmVzID09IDApCisJICAgIHJlcyA9IDE7CisgICAgfSAKKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqCisgKiB4bWxOZXdDYXRhbG9nOgorICogQHNnbWw6ICBzaG91bGQgdGhpcyBjcmVhdGUgYW4gU0dNTCBjYXRhbG9nCisgKgorICogY3JlYXRlIGEgbmV3IENhdGFsb2cuCisgKgorICogUmV0dXJucyB0aGUgeG1sQ2F0YWxvZ1B0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sQ2F0YWxvZ1B0cgoreG1sTmV3Q2F0YWxvZyhpbnQgc2dtbCkgeworICAgIHhtbENhdGFsb2dQdHIgY2F0YWwgPSBOVUxMOworCisgICAgaWYgKHNnbWwpIHsKKwljYXRhbCA9IHhtbENyZWF0ZU5ld0NhdGFsb2coWE1MX1NHTUxfQ0FUQUxPR19UWVBFLAorCQkgICAgICAgICAgICAgICAgICAgIHhtbENhdGFsb2dEZWZhdWx0UHJlZmVyKTsKKyAgICAgICAgaWYgKChjYXRhbCAhPSBOVUxMKSAmJiAoY2F0YWwtPnNnbWwgPT0gTlVMTCkpCisJICAgIGNhdGFsLT5zZ21sID0geG1sSGFzaENyZWF0ZSgxMCk7CisgICAgfSBlbHNlCisJY2F0YWwgPSB4bWxDcmVhdGVOZXdDYXRhbG9nKFhNTF9YTUxfQ0FUQUxPR19UWVBFLAorCQkgICAgICAgICAgICAgICAgICAgIHhtbENhdGFsb2dEZWZhdWx0UHJlZmVyKTsKKyAgICByZXR1cm4oY2F0YWwpOworfQorCisvKioKKyAqIHhtbENhdGFsb2dJc0VtcHR5OgorICogQGNhdGFsOiAgc2hvdWxkIHRoaXMgY3JlYXRlIGFuIFNHTUwgY2F0YWxvZworICoKKyAqIENoZWNrIGlzIGEgY2F0YWxvZyBpcyBlbXB0eQorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgY2F0YWxvZyBpcyBlbXB0eSwgMCBpZiBub3QsIGFtZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbENhdGFsb2dJc0VtcHR5KHhtbENhdGFsb2dQdHIgY2F0YWwpIHsKKyAgICBpZiAoY2F0YWwgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKGNhdGFsLT50eXBlID09IFhNTF9YTUxfQ0FUQUxPR19UWVBFKSB7CisJaWYgKGNhdGFsLT54bWwgPT0gTlVMTCkKKwkgICAgcmV0dXJuKDEpOworCWlmICgoY2F0YWwtPnhtbC0+dHlwZSAhPSBYTUxfQ0FUQV9DQVRBTE9HKSAmJgorCSAgICAoY2F0YWwtPnhtbC0+dHlwZSAhPSBYTUxfQ0FUQV9CUk9LRU5fQ0FUQUxPRykpCisJICAgIHJldHVybigtMSk7CisJaWYgKGNhdGFsLT54bWwtPmNoaWxkcmVuID09IE5VTEwpCisJICAgIHJldHVybigxKTsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0gZWxzZSB7CisJaW50IHJlczsKKworCWlmIChjYXRhbC0+c2dtbCA9PSBOVUxMKQorCSAgICByZXR1cm4oMSk7CisJcmVzID0geG1sSGFzaFNpemUoY2F0YWwtPnNnbWwpOworCWlmIChyZXMgPT0gMCkKKwkgICAgcmV0dXJuKDEpOworCWlmIChyZXMgPCAwKQorCSAgICByZXR1cm4oLTEpOworICAgIH0gCisgICAgcmV0dXJuKDApOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqICAgUHVibGljIGludGVyZmFjZXMgbWFuaXB1bGF0aW5nIHRoZSBnbG9iYWwgc2hhcmVkIGRlZmF1bHQgY2F0YWxvZwkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sSW5pdGlhbGl6ZUNhdGFsb2dEYXRhOgorICoKKyAqIERvIHRoZSBjYXRhbG9nIGluaXRpYWxpemF0aW9uIG9ubHkgb2YgZ2xvYmFsIGRhdGEsIGRvZXNuJ3QgdHJ5IHRvIGxvYWQKKyAqIGFueSBjYXRhbG9nIGFjdHVhbGx5LgorICogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUsIGNhdGFsb2cgaW5pdGlhbGl6YXRpb24gc2hvdWxkCisgKiBwcmVmZXJhYmx5IGJlIGRvbmUgb25jZSBhdCBzdGFydHVwCisgKi8KK3N0YXRpYyB2b2lkCit4bWxJbml0aWFsaXplQ2F0YWxvZ0RhdGEodm9pZCkgeworICAgIGlmICh4bWxDYXRhbG9nSW5pdGlhbGl6ZWQgIT0gMCkKKwlyZXR1cm47CisKKyAgICBpZiAoZ2V0ZW52KCJYTUxfREVCVUdfQ0FUQUxPRyIpKSAKKwl4bWxEZWJ1Z0NhdGFsb2dzID0gMTsKKyAgICB4bWxDYXRhbG9nTXV0ZXggPSB4bWxOZXdSTXV0ZXgoKTsKKworICAgIHhtbENhdGFsb2dJbml0aWFsaXplZCA9IDE7Cit9CisvKioKKyAqIHhtbEluaXRpYWxpemVDYXRhbG9nOgorICoKKyAqIERvIHRoZSBjYXRhbG9nIGluaXRpYWxpemF0aW9uLgorICogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUsIGNhdGFsb2cgaW5pdGlhbGl6YXRpb24gc2hvdWxkCisgKiBwcmVmZXJhYmx5IGJlIGRvbmUgb25jZSBhdCBzdGFydHVwCisgKi8KK3ZvaWQKK3htbEluaXRpYWxpemVDYXRhbG9nKHZvaWQpIHsKKyAgICBpZiAoeG1sQ2F0YWxvZ0luaXRpYWxpemVkICE9IDApCisJcmV0dXJuOworCisgICAgeG1sSW5pdGlhbGl6ZUNhdGFsb2dEYXRhKCk7CisgICAgeG1sUk11dGV4TG9jayh4bWxDYXRhbG9nTXV0ZXgpOworCisgICAgaWYgKGdldGVudigiWE1MX0RFQlVHX0NBVEFMT0ciKSkgCisJeG1sRGVidWdDYXRhbG9ncyA9IDE7CisKKyAgICBpZiAoeG1sRGVmYXVsdENhdGFsb2cgPT0gTlVMTCkgeworCWNvbnN0IGNoYXIgKmNhdGFsb2dzOworCWNoYXIgKnBhdGg7CisJY29uc3QgY2hhciAqY3VyLCAqcGF0aHM7CisJeG1sQ2F0YWxvZ1B0ciBjYXRhbDsKKwl4bWxDYXRhbG9nRW50cnlQdHIgKm5leHRlbnQ7CisKKwljYXRhbG9ncyA9IChjb25zdCBjaGFyICopIGdldGVudigiWE1MX0NBVEFMT0dfRklMRVMiKTsKKwlpZiAoY2F0YWxvZ3MgPT0gTlVMTCkKKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgZGVmaW5lZChfTVNDX1ZFUikKKyAgICB7CisJCXZvaWQqIGhtb2R1bGU7CisJCWhtb2R1bGUgPSBHZXRNb2R1bGVIYW5kbGVBKCJsaWJ4bWwyLmRsbCIpOworCQlpZiAoaG1vZHVsZSA9PSBOVUxMKQorCQkJaG1vZHVsZSA9IEdldE1vZHVsZUhhbmRsZUEoTlVMTCk7CisJCWlmIChobW9kdWxlICE9IE5VTEwpIHsKKwkJCWNoYXIgYnVmWzI1Nl07CisJCQl1bnNpZ25lZCBsb25nIGxlbiA9IEdldE1vZHVsZUZpbGVOYW1lQShobW9kdWxlLCBidWYsIDI1NSk7CisJCQlpZiAobGVuICE9IDApIHsKKwkJCQljaGFyKiBwID0gJihidWZbbGVuXSk7CisJCQkJd2hpbGUgKCpwICE9ICdcXCcgJiYgcCA+IGJ1ZikgCisJCQkJCXAtLTsKKwkJCQlpZiAocCAhPSBidWYpIHsKKwkJCQkJeG1sQ2hhciogdXJpOworCQkJCQlzdHJuY3B5KHAsICJcXC4uXFxldGNcXGNhdGFsb2ciLCAyNTUgLSAocCAtIGJ1ZikpOworCQkJCQl1cmkgPSB4bWxDYW5vbmljUGF0aChidWYpOworCQkJCQlpZiAodXJpICE9IE5VTEwpIHsKKwkJCQkJCXN0cm5jcHkoWE1MX1hNTF9ERUZBVUxUX0NBVEFMT0csIHVyaSwgMjU1KTsKKwkJCQkJCXhtbEZyZWUodXJpKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJfQorCQljYXRhbG9ncyA9IFhNTF9YTUxfREVGQVVMVF9DQVRBTE9HOworICAgIH0KKyNlbHNlCisJICAgIGNhdGFsb2dzID0gWE1MX1hNTF9ERUZBVUxUX0NBVEFMT0c7CisjZW5kaWYKKworCWNhdGFsID0geG1sQ3JlYXRlTmV3Q2F0YWxvZyhYTUxfWE1MX0NBVEFMT0dfVFlQRSwgCisJCXhtbENhdGFsb2dEZWZhdWx0UHJlZmVyKTsKKwlpZiAoY2F0YWwgIT0gTlVMTCkgeworCSAgICAvKiB0aGUgWE1MX0NBVEFMT0dfRklMRVMgZW52dmFyIGlzIGFsbG93ZWQgdG8gY29udGFpbiBhIAorCSAgICAgICBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBlbnRyaWVzLiAqLworCSAgICBjdXIgPSBjYXRhbG9nczsKKwkgICAgbmV4dGVudCA9ICZjYXRhbC0+eG1sOworCSAgICB3aGlsZSAoKmN1ciAhPSAnXDAnKSB7CisJCXdoaWxlICh4bWxJc0JsYW5rX2NoKCpjdXIpKSAKKwkJICAgIGN1cisrOworCQlpZiAoKmN1ciAhPSAwKSB7CisJCSAgICBwYXRocyA9IGN1cjsKKwkJICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAoIXhtbElzQmxhbmtfY2goKmN1cikpKQorCQkJY3VyKys7CisJCSAgICBwYXRoID0gKGNoYXIgKikgeG1sU3RybmR1cCgoY29uc3QgeG1sQ2hhciAqKXBhdGhzLCBjdXIgLSBwYXRocyk7CisJCSAgICBpZiAocGF0aCAhPSBOVUxMKSB7CisJCQkqbmV4dGVudCA9IHhtbE5ld0NhdGFsb2dFbnRyeShYTUxfQ0FUQV9DQVRBTE9HLCBOVUxMLAorCQkJCU5VTEwsIEJBRF9DQVNUIHBhdGgsIHhtbENhdGFsb2dEZWZhdWx0UHJlZmVyLCBOVUxMKTsKKwkJCWlmICgqbmV4dGVudCAhPSBOVUxMKQorCQkJICAgIG5leHRlbnQgPSAmKCgqbmV4dGVudCktPm5leHQpOworCQkJeG1sRnJlZShwYXRoKTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJICAgIHhtbERlZmF1bHRDYXRhbG9nID0gY2F0YWw7CisJfQorICAgIH0KKworICAgIHhtbFJNdXRleFVubG9jayh4bWxDYXRhbG9nTXV0ZXgpOworfQorCisKKy8qKgorICogeG1sTG9hZENhdGFsb2c6CisgKiBAZmlsZW5hbWU6ICBhIGZpbGUgcGF0aAorICoKKyAqIExvYWQgdGhlIGNhdGFsb2cgYW5kIG1ha2VzIGl0cyBkZWZpbml0aW9ucyBlZmZlY3RpdmUgZm9yIHRoZSBkZWZhdWx0CisgKiBleHRlcm5hbCBlbnRpdHkgbG9hZGVyLiBJdCB3aWxsIHJlY3Vyc2UgaW4gU0dNTCBDQVRBTE9HIGVudHJpZXMuCisgKiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgY2F0YWxvZyBpbml0aWFsaXphdGlvbiBzaG91bGQKKyAqIHByZWZlcmFibHkgYmUgZG9uZSBvbmNlIGF0IHN0YXJ0dXAKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxMb2FkQ2F0YWxvZyhjb25zdCBjaGFyICpmaWxlbmFtZSkKK3sKKyAgICBpbnQgcmV0OworICAgIHhtbENhdGFsb2dQdHIgY2F0YWw7CisKKyAgICBpZiAoIXhtbENhdGFsb2dJbml0aWFsaXplZCkKKwl4bWxJbml0aWFsaXplQ2F0YWxvZ0RhdGEoKTsKKworICAgIHhtbFJNdXRleExvY2soeG1sQ2F0YWxvZ011dGV4KTsKKworICAgIGlmICh4bWxEZWZhdWx0Q2F0YWxvZyA9PSBOVUxMKSB7CisJY2F0YWwgPSB4bWxMb2FkQUNhdGFsb2coZmlsZW5hbWUpOworCWlmIChjYXRhbCA9PSBOVUxMKSB7CisJICAgIHhtbFJNdXRleFVubG9jayh4bWxDYXRhbG9nTXV0ZXgpOworCSAgICByZXR1cm4oLTEpOworCX0KKworCXhtbERlZmF1bHRDYXRhbG9nID0gY2F0YWw7CisJeG1sUk11dGV4VW5sb2NrKHhtbENhdGFsb2dNdXRleCk7CisJcmV0dXJuKDApOworICAgIH0KKworICAgIHJldCA9IHhtbEV4cGFuZENhdGFsb2coeG1sRGVmYXVsdENhdGFsb2csIGZpbGVuYW1lKTsKKyAgICB4bWxSTXV0ZXhVbmxvY2soeG1sQ2F0YWxvZ011dGV4KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxMb2FkQ2F0YWxvZ3M6CisgKiBAcGF0aHNzOiAgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHNlcGFyYXRlZCBieSBhIGNvbG9uIG9yIGEgc3BhY2UuCisgKgorICogTG9hZCB0aGUgY2F0YWxvZ3MgYW5kIG1ha2VzIHRoZWlyIGRlZmluaXRpb25zIGVmZmVjdGl2ZSBmb3IgdGhlIGRlZmF1bHQKKyAqIGV4dGVybmFsIGVudGl0eSBsb2FkZXIuCisgKiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgY2F0YWxvZyBpbml0aWFsaXphdGlvbiBzaG91bGQKKyAqIHByZWZlcmFibHkgYmUgZG9uZSBvbmNlIGF0IHN0YXJ0dXAKKyAqLwordm9pZAoreG1sTG9hZENhdGFsb2dzKGNvbnN0IGNoYXIgKnBhdGhzcykgeworICAgIGNvbnN0IGNoYXIgKmN1cjsKKyAgICBjb25zdCBjaGFyICpwYXRoczsKKyAgICB4bWxDaGFyICpwYXRoOworI2lmZGVmIF9XSU4zMgorICAgIGludCBpLCBpTGVuOworI2VuZGlmCisKKyAgICBpZiAocGF0aHNzID09IE5VTEwpCisJcmV0dXJuOworCisgICAgY3VyID0gcGF0aHNzOworICAgIHdoaWxlICgqY3VyICE9IDApIHsKKwl3aGlsZSAoeG1sSXNCbGFua19jaCgqY3VyKSkgY3VyKys7CisJaWYgKCpjdXIgIT0gMCkgeworCSAgICBwYXRocyA9IGN1cjsKKwkgICAgd2hpbGUgKCgqY3VyICE9IDApICYmICgqY3VyICE9IFBBVEhfU0VBUEFSQVRPUikgJiYgKCF4bWxJc0JsYW5rX2NoKCpjdXIpKSkKKwkJY3VyKys7CisJICAgIHBhdGggPSB4bWxTdHJuZHVwKChjb25zdCB4bWxDaGFyICopcGF0aHMsIGN1ciAtIHBhdGhzKTsKKyNpZmRlZiBfV0lOMzIKKyAgICAgICAgaUxlbiA9IHN0cmxlbihwYXRoKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgaUxlbjsgaSsrKSB7CisgICAgICAgICAgICBpZihwYXRoW2ldID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBwYXRoW2ldID0gJy8nOworICAgICAgICAgICAgfQorICAgICAgICB9CisjZW5kaWYKKwkgICAgaWYgKHBhdGggIT0gTlVMTCkgeworCQl4bWxMb2FkQ2F0YWxvZygoY29uc3QgY2hhciAqKSBwYXRoKTsKKwkJeG1sRnJlZShwYXRoKTsKKwkgICAgfQorCX0KKwl3aGlsZSAoKmN1ciA9PSBQQVRIX1NFQVBBUkFUT1IpCisJICAgIGN1cisrOworICAgIH0KK30KKworLyoqCisgKiB4bWxDYXRhbG9nQ2xlYW51cDoKKyAqCisgKiBGcmVlIHVwIGFsbCB0aGUgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCBjYXRhbG9ncworICovCit2b2lkCit4bWxDYXRhbG9nQ2xlYW51cCh2b2lkKSB7CisgICAgaWYgKHhtbENhdGFsb2dJbml0aWFsaXplZCA9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICB4bWxSTXV0ZXhMb2NrKHhtbENhdGFsb2dNdXRleCk7CisgICAgaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJDYXRhbG9ncyBjbGVhbnVwXG4iKTsKKyAgICBpZiAoeG1sQ2F0YWxvZ1hNTEZpbGVzICE9IE5VTEwpCisJeG1sSGFzaEZyZWUoeG1sQ2F0YWxvZ1hNTEZpbGVzLCAKKwkJICAgICh4bWxIYXNoRGVhbGxvY2F0b3IpeG1sRnJlZUNhdGFsb2dIYXNoRW50cnlMaXN0KTsKKyAgICB4bWxDYXRhbG9nWE1MRmlsZXMgPSBOVUxMOworICAgIGlmICh4bWxEZWZhdWx0Q2F0YWxvZyAhPSBOVUxMKQorCXhtbEZyZWVDYXRhbG9nKHhtbERlZmF1bHRDYXRhbG9nKTsKKyAgICB4bWxEZWZhdWx0Q2F0YWxvZyA9IE5VTEw7CisgICAgeG1sRGVidWdDYXRhbG9ncyA9IDA7CisgICAgeG1sQ2F0YWxvZ0luaXRpYWxpemVkID0gMDsKKyAgICB4bWxSTXV0ZXhVbmxvY2soeG1sQ2F0YWxvZ011dGV4KTsKKyAgICB4bWxGcmVlUk11dGV4KHhtbENhdGFsb2dNdXRleCk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW06CisgKiBAc3lzSUQ6ICB0aGUgc3lzdGVtIElEIHN0cmluZworICoKKyAqIFRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgcmVzb3VyY2UgZm9yIGEgc3lzdGVtIElECisgKgorICogUmV0dXJucyB0aGUgcmVzb3VyY2UgaWYgZm91bmQgb3IgTlVMTCBvdGhlcndpc2UsIHRoZSB2YWx1ZSByZXR1cm5lZAorICogICAgICBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0oY29uc3QgeG1sQ2hhciAqc3lzSUQpIHsKKyAgICB4bWxDaGFyICpyZXQ7CisKKyAgICBpZiAoIXhtbENhdGFsb2dJbml0aWFsaXplZCkKKwl4bWxJbml0aWFsaXplQ2F0YWxvZygpOworCisgICAgcmV0ID0geG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtKHhtbERlZmF1bHRDYXRhbG9nLCBzeXNJRCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWM6CisgKiBAcHViSUQ6ICB0aGUgcHVibGljIElEIHN0cmluZworICoKKyAqIFRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgcmVmZXJlbmNlIGFzc29jaWF0ZWQgdG8gYSBwdWJsaWMgSUQKKyAqCisgKiBSZXR1cm5zIHRoZSByZXNvdXJjZSBpZiBmb3VuZCBvciBOVUxMIG90aGVyd2lzZSwgdGhlIHZhbHVlIHJldHVybmVkCisgKiAgICAgIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyhjb25zdCB4bWxDaGFyICpwdWJJRCkgeworICAgIHhtbENoYXIgKnJldDsKKworICAgIGlmICgheG1sQ2F0YWxvZ0luaXRpYWxpemVkKQorCXhtbEluaXRpYWxpemVDYXRhbG9nKCk7CisKKyAgICByZXQgPSB4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMoeG1sRGVmYXVsdENhdGFsb2csIHB1YklEKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxDYXRhbG9nUmVzb2x2ZToKKyAqIEBwdWJJRDogIHRoZSBwdWJsaWMgSUQgc3RyaW5nCisgKiBAc3lzSUQ6ICB0aGUgc3lzdGVtIElEIHN0cmluZworICoKKyAqIERvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gRXh0ZXJuYWwgSWRlbnRpZmllcgorICoKKyAqIFJldHVybnMgdGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQKKyAqICAgICAgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxDYXRhbG9nUmVzb2x2ZShjb25zdCB4bWxDaGFyICpwdWJJRCwgY29uc3QgeG1sQ2hhciAqc3lzSUQpIHsKKyAgICB4bWxDaGFyICpyZXQ7CisKKyAgICBpZiAoIXhtbENhdGFsb2dJbml0aWFsaXplZCkKKwl4bWxJbml0aWFsaXplQ2F0YWxvZygpOworCisgICAgcmV0ID0geG1sQUNhdGFsb2dSZXNvbHZlKHhtbERlZmF1bHRDYXRhbG9nLCBwdWJJRCwgc3lzSUQpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbENhdGFsb2dSZXNvbHZlVVJJOgorICogQFVSSTogIHRoZSBVUkkKKyAqCisgKiBEbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIFVSSQorICoKKyAqIFJldHVybnMgdGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQKKyAqICAgICAgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxDYXRhbG9nUmVzb2x2ZVVSSShjb25zdCB4bWxDaGFyICpVUkkpIHsKKyAgICB4bWxDaGFyICpyZXQ7CisKKyAgICBpZiAoIXhtbENhdGFsb2dJbml0aWFsaXplZCkKKwl4bWxJbml0aWFsaXplQ2F0YWxvZygpOworCisgICAgcmV0ID0geG1sQUNhdGFsb2dSZXNvbHZlVVJJKHhtbERlZmF1bHRDYXRhbG9nLCBVUkkpOworICAgIHJldHVybihyZXQpOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbENhdGFsb2dEdW1wOgorICogQG91dDogIHRoZSBmaWxlLgorICoKKyAqIER1bXAgYWxsIHRoZSBnbG9iYWwgY2F0YWxvZyBjb250ZW50IHRvIHRoZSBnaXZlbiBmaWxlLgorICovCit2b2lkCit4bWxDYXRhbG9nRHVtcChGSUxFICpvdXQpIHsKKyAgICBpZiAob3V0ID09IE5VTEwpCisJcmV0dXJuOworCisgICAgaWYgKCF4bWxDYXRhbG9nSW5pdGlhbGl6ZWQpCisJeG1sSW5pdGlhbGl6ZUNhdGFsb2coKTsKKworICAgIHhtbEFDYXRhbG9nRHVtcCh4bWxEZWZhdWx0Q2F0YWxvZywgb3V0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxDYXRhbG9nQWRkOgorICogQHR5cGU6ICB0aGUgdHlwZSBvZiByZWNvcmQgdG8gYWRkIHRvIHRoZSBjYXRhbG9nCisgKiBAb3JpZzogIHRoZSBzeXN0ZW0sIHB1YmxpYyBvciBwcmVmaXggdG8gbWF0Y2ggCisgKiBAcmVwbGFjZTogIHRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIG1hdGNoCisgKgorICogQWRkIGFuIGVudHJ5IGluIHRoZSBjYXRhbG9nLCBpdCBtYXkgb3ZlcndyaXRlIGV4aXN0aW5nIGJ1dAorICogZGlmZmVyZW50IGVudHJpZXMuCisgKiBJZiBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBjYXRhbG9nIHJvdXRpbmUsIGFsbG93cyB0byBvdmVycmlkZSB0aGUKKyAqIGRlZmF1bHQgc2hhcmVkIGNhdGFsb2cgcHV0IGluIHBsYWNlIGJ5IHhtbEluaXRpYWxpemVDYXRhbG9nKCk7CisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZQorICovCitpbnQKK3htbENhdGFsb2dBZGQoY29uc3QgeG1sQ2hhciAqdHlwZSwgY29uc3QgeG1sQ2hhciAqb3JpZywgY29uc3QgeG1sQ2hhciAqcmVwbGFjZSkgeworICAgIGludCByZXMgPSAtMTsKKworICAgIGlmICgheG1sQ2F0YWxvZ0luaXRpYWxpemVkKQorCXhtbEluaXRpYWxpemVDYXRhbG9nRGF0YSgpOworCisgICAgeG1sUk11dGV4TG9jayh4bWxDYXRhbG9nTXV0ZXgpOworICAgIC8qCisgICAgICogU3BlY2lmaWMgY2FzZSB3aGVyZSBvbmUgd2FudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBjYXRhbG9nCisgICAgICogcHV0IGluIHBsYWNlIGJ5IHhtbEluaXRpYWxpemVDYXRhbG9nKCk7CisgICAgICovCisgICAgaWYgKCh4bWxEZWZhdWx0Q2F0YWxvZyA9PSBOVUxMKSAmJgorCSh4bWxTdHJFcXVhbCh0eXBlLCBCQURfQ0FTVCAiY2F0YWxvZyIpKSkgeworCXhtbERlZmF1bHRDYXRhbG9nID0geG1sQ3JlYXRlTmV3Q2F0YWxvZyhYTUxfWE1MX0NBVEFMT0dfVFlQRSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDYXRhbG9nRGVmYXVsdFByZWZlcik7CisJeG1sRGVmYXVsdENhdGFsb2ctPnhtbCA9IHhtbE5ld0NhdGFsb2dFbnRyeShYTUxfQ0FUQV9DQVRBTE9HLCBOVUxMLAorCQkJCSAgICBvcmlnLCBOVUxMLCAgeG1sQ2F0YWxvZ0RlZmF1bHRQcmVmZXIsIE5VTEwpOworCisJeG1sUk11dGV4VW5sb2NrKHhtbENhdGFsb2dNdXRleCk7CisJcmV0dXJuKDApOworICAgIH0gCisKKyAgICByZXMgPSB4bWxBQ2F0YWxvZ0FkZCh4bWxEZWZhdWx0Q2F0YWxvZywgdHlwZSwgb3JpZywgcmVwbGFjZSk7CisgICAgeG1sUk11dGV4VW5sb2NrKHhtbENhdGFsb2dNdXRleCk7CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ1JlbW92ZToKKyAqIEB2YWx1ZTogIHRoZSB2YWx1ZSB0byByZW1vdmUKKyAqCisgKiBSZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgY2F0YWxvZworICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHJlbW92ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sQ2F0YWxvZ1JlbW92ZShjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIGludCByZXM7CisKKyAgICBpZiAoIXhtbENhdGFsb2dJbml0aWFsaXplZCkKKwl4bWxJbml0aWFsaXplQ2F0YWxvZygpOworCisgICAgeG1sUk11dGV4TG9jayh4bWxDYXRhbG9nTXV0ZXgpOworICAgIHJlcyA9IHhtbEFDYXRhbG9nUmVtb3ZlKHhtbERlZmF1bHRDYXRhbG9nLCB2YWx1ZSk7CisgICAgeG1sUk11dGV4VW5sb2NrKHhtbENhdGFsb2dNdXRleCk7CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ0NvbnZlcnQ6CisgKgorICogQ29udmVydCBhbGwgdGhlIFNHTUwgY2F0YWxvZyBlbnRyaWVzIGFzIFhNTCBvbmVzCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgY29udmVydGVkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZQorICovCitpbnQKK3htbENhdGFsb2dDb252ZXJ0KHZvaWQpIHsKKyAgICBpbnQgcmVzID0gLTE7CisKKyAgICBpZiAoIXhtbENhdGFsb2dJbml0aWFsaXplZCkKKwl4bWxJbml0aWFsaXplQ2F0YWxvZygpOworCisgICAgeG1sUk11dGV4TG9jayh4bWxDYXRhbG9nTXV0ZXgpOworICAgIHJlcyA9IHhtbENvbnZlcnRTR01MQ2F0YWxvZyh4bWxEZWZhdWx0Q2F0YWxvZyk7CisgICAgeG1sUk11dGV4VW5sb2NrKHhtbENhdGFsb2dNdXRleCk7CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJUHVibGljIGludGVyZmFjZSBtYW5pcHVsYXRpbmcgdGhlIGNvbW1vbiBwcmVmZXJlbmNlcwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbENhdGFsb2dHZXREZWZhdWx0czoKKyAqCisgKiBVc2VkIHRvIGdldCB0aGUgdXNlciBwcmVmZXJlbmNlIHcuci50LiB0byB3aGF0IGNhdGFsb2dzIHNob3VsZAorICogYmUgYWNjZXB0ZWQKKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHhtbENhdGFsb2dBbGxvdyB2YWx1ZQorICovCit4bWxDYXRhbG9nQWxsb3cKK3htbENhdGFsb2dHZXREZWZhdWx0cyh2b2lkKSB7CisgICAgcmV0dXJuKHhtbENhdGFsb2dEZWZhdWx0QWxsb3cpOworfQorCisvKioKKyAqIHhtbENhdGFsb2dTZXREZWZhdWx0czoKKyAqIEBhbGxvdzogIHdoYXQgY2F0YWxvZ3Mgc2hvdWxkIGJlIGFjY2VwdGVkCisgKgorICogVXNlZCB0byBzZXQgdGhlIHVzZXIgcHJlZmVyZW5jZSB3LnIudC4gdG8gd2hhdCBjYXRhbG9ncyBzaG91bGQKKyAqIGJlIGFjY2VwdGVkCisgKi8KK3ZvaWQKK3htbENhdGFsb2dTZXREZWZhdWx0cyh4bWxDYXRhbG9nQWxsb3cgYWxsb3cpIHsKKyAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykgeworCXN3aXRjaCAoYWxsb3cpIHsKKwkgICAgY2FzZSBYTUxfQ0FUQV9BTExPV19OT05FOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJEaXNhYmxpbmcgY2F0YWxvZyB1c2FnZVxuIik7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9DQVRBX0FMTE9XX0dMT0JBTDoKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiQWxsb3dpbmcgb25seSBnbG9iYWwgY2F0YWxvZ3NcbiIpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfQ0FUQV9BTExPV19ET0NVTUVOVDoKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiQWxsb3dpbmcgb25seSBjYXRhbG9ncyBmcm9tIHRoZSBkb2N1bWVudFxuIik7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9DQVRBX0FMTE9XX0FMTDoKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiQWxsb3dpbmcgYWxsIGNhdGFsb2dzXG4iKTsKKwkJYnJlYWs7CisJfQorICAgIH0KKyAgICB4bWxDYXRhbG9nRGVmYXVsdEFsbG93ID0gYWxsb3c7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI6CisgKiBAcHJlZmVyOiAgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSBmb3IgZGVsZWdhdGlvbgorICoKKyAqIEFsbG93cyB0byBzZXQgdGhlIHByZWZlcmVuY2UgYmV0d2VlbiBwdWJsaWMgYW5kIHN5c3RlbSBmb3IgZGVsZXRpb24KKyAqIGluIFhNTCBDYXRhbG9nIHJlc29sdXRpb24uIEMuZi4gc2VjdGlvbiA0LjEuMSBvZiB0aGUgc3BlYworICogVmFsdWVzIGFjY2VwdGVkIGFyZSBYTUxfQ0FUQV9QUkVGRVJfUFVCTElDIG9yIFhNTF9DQVRBX1BSRUZFUl9TWVNURU0KKyAqCisgKiBSZXR1cm5zIHRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwcmVmZXJlbmNlIGZvciBkZWxlZ2F0aW9uCisgKi8KK3htbENhdGFsb2dQcmVmZXIKK3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyKHhtbENhdGFsb2dQcmVmZXIgcHJlZmVyKSB7CisgICAgeG1sQ2F0YWxvZ1ByZWZlciByZXQgPSB4bWxDYXRhbG9nRGVmYXVsdFByZWZlcjsKKworICAgIGlmIChwcmVmZXIgPT0gWE1MX0NBVEFfUFJFRkVSX05PTkUpCisJcmV0dXJuKHJldCk7CisKKyAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykgeworCXN3aXRjaCAocHJlZmVyKSB7CisJICAgIGNhc2UgWE1MX0NBVEFfUFJFRkVSX1BVQkxJQzoKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiU2V0dGluZyBjYXRhbG9nIHByZWZlcmVuY2UgdG8gUFVCTElDXG4iKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0NBVEFfUFJFRkVSX1NZU1RFTToKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiU2V0dGluZyBjYXRhbG9nIHByZWZlcmVuY2UgdG8gU1lTVEVNXG4iKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0NBVEFfUFJFRkVSX05PTkU6CisJCWJyZWFrOworCX0KKyAgICB9CisgICAgeG1sQ2F0YWxvZ0RlZmF1bHRQcmVmZXIgPSBwcmVmZXI7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ1NldERlYnVnOgorICogQGxldmVsOiAgdGhlIGRlYnVnIGxldmVsIG9mIGNhdGFsb2dzIHJlcXVpcmVkCisgKgorICogVXNlZCB0byBzZXQgdGhlIGRlYnVnIGxldmVsIGZvciBjYXRhbG9nIG9wZXJhdGlvbiwgMCBkaXNhYmxlCisgKiBkZWJ1Z2dpbmcsIDEgZW5hYmxlIGl0CisgKgorICogUmV0dXJucyB0aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGNhdGFsb2cgZGVidWdnaW5nIGxldmVsCisgKi8KK2ludAoreG1sQ2F0YWxvZ1NldERlYnVnKGludCBsZXZlbCkgeworICAgIGludCByZXQgPSB4bWxEZWJ1Z0NhdGFsb2dzOworCisgICAgaWYgKGxldmVsIDw9IDApCisgICAgICAgIHhtbERlYnVnQ2F0YWxvZ3MgPSAwOworICAgIGVsc2UKKwl4bWxEZWJ1Z0NhdGFsb2dzID0gbGV2ZWw7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogICBNaW5pbWFsIGludGVyZmFjZXMgdXNlZCBmb3IgcGVyLWRvY3VtZW50IGNhdGFsb2dzIGJ5IHRoZSBwYXJzZXIJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbENhdGFsb2dGcmVlTG9jYWw6CisgKiBAY2F0YWxvZ3M6ICBhIGRvY3VtZW50J3MgbGlzdCBvZiBjYXRhbG9ncworICoKKyAqIEZyZWUgdXAgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHRvIHRoZSBjYXRhbG9nIGxpc3QKKyAqLwordm9pZAoreG1sQ2F0YWxvZ0ZyZWVMb2NhbCh2b2lkICpjYXRhbG9ncykgeworICAgIHhtbENhdGFsb2dFbnRyeVB0ciBjYXRhbDsKKworICAgIGlmICgheG1sQ2F0YWxvZ0luaXRpYWxpemVkKQorCXhtbEluaXRpYWxpemVDYXRhbG9nKCk7CisKKyAgICBjYXRhbCA9ICh4bWxDYXRhbG9nRW50cnlQdHIpIGNhdGFsb2dzOworICAgIGlmIChjYXRhbCAhPSBOVUxMKQorCXhtbEZyZWVDYXRhbG9nRW50cnlMaXN0KGNhdGFsKTsKK30KKworCisvKioKKyAqIHhtbENhdGFsb2dBZGRMb2NhbDoKKyAqIEBjYXRhbG9nczogIGEgZG9jdW1lbnQncyBsaXN0IG9mIGNhdGFsb2dzCisgKiBAVVJMOiAgdGhlIFVSTCB0byBhIG5ldyBsb2NhbCBjYXRhbG9nCisgKgorICogQWRkIHRoZSBuZXcgZW50cnkgdG8gdGhlIGNhdGFsb2cgbGlzdAorICoKKyAqIFJldHVybnMgdGhlIHVwZGF0ZWQgbGlzdAorICovCit2b2lkICoJCit4bWxDYXRhbG9nQWRkTG9jYWwodm9pZCAqY2F0YWxvZ3MsIGNvbnN0IHhtbENoYXIgKlVSTCkgeworICAgIHhtbENhdGFsb2dFbnRyeVB0ciBjYXRhbCwgYWRkOworCisgICAgaWYgKCF4bWxDYXRhbG9nSW5pdGlhbGl6ZWQpCisJeG1sSW5pdGlhbGl6ZUNhdGFsb2coKTsKKworICAgIGlmIChVUkwgPT0gTlVMTCkKKwlyZXR1cm4oY2F0YWxvZ3MpOworCisgICAgaWYgKHhtbERlYnVnQ2F0YWxvZ3MpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJBZGRpbmcgZG9jdW1lbnQgY2F0YWxvZyAlc1xuIiwgVVJMKTsKKworICAgIGFkZCA9IHhtbE5ld0NhdGFsb2dFbnRyeShYTUxfQ0FUQV9DQVRBTE9HLCBOVUxMLCBVUkwsIE5VTEwsCisJICAgICAgICAgICAgICAgICAgICAgeG1sQ2F0YWxvZ0RlZmF1bHRQcmVmZXIsIE5VTEwpOworICAgIGlmIChhZGQgPT0gTlVMTCkKKwlyZXR1cm4oY2F0YWxvZ3MpOworCisgICAgY2F0YWwgPSAoeG1sQ2F0YWxvZ0VudHJ5UHRyKSBjYXRhbG9nczsKKyAgICBpZiAoY2F0YWwgPT0gTlVMTCkgCisJcmV0dXJuKCh2b2lkICopIGFkZCk7CisKKyAgICB3aGlsZSAoY2F0YWwtPm5leHQgIT0gTlVMTCkKKwljYXRhbCA9IGNhdGFsLT5uZXh0OworICAgIGNhdGFsLT5uZXh0ID0gYWRkOworICAgIHJldHVybihjYXRhbG9ncyk7Cit9CisKKy8qKgorICogeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZToKKyAqIEBjYXRhbG9nczogIGEgZG9jdW1lbnQncyBsaXN0IG9mIGNhdGFsb2dzCisgKiBAcHViSUQ6ICB0aGUgcHVibGljIElEIHN0cmluZworICogQHN5c0lEOiAgdGhlIHN5c3RlbSBJRCBzdHJpbmcKKyAqCisgKiBEbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIEV4dGVybmFsIElkZW50aWZpZXIgdXNpbmcgYSAKKyAqIGRvY3VtZW50J3MgcHJpdmF0ZSBjYXRhbG9nIGxpc3QKKyAqCisgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kLCBpdCBtdXN0IGJlIGZyZWVkCisgKiAgICAgIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSh2b2lkICpjYXRhbG9ncywgY29uc3QgeG1sQ2hhciAqcHViSUQsCisJICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3lzSUQpIHsKKyAgICB4bWxDYXRhbG9nRW50cnlQdHIgY2F0YWw7CisgICAgeG1sQ2hhciAqcmV0OworCisgICAgaWYgKCF4bWxDYXRhbG9nSW5pdGlhbGl6ZWQpCisJeG1sSW5pdGlhbGl6ZUNhdGFsb2coKTsKKworICAgIGlmICgocHViSUQgPT0gTlVMTCkgJiYgKHN5c0lEID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKworICAgIGlmICh4bWxEZWJ1Z0NhdGFsb2dzKSB7CisgICAgICAgIGlmICgocHViSUQgIT0gTlVMTCkgJiYgKHN5c0lEICE9IE5VTEwpKSB7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgUmVzb2x2ZTogcHViSUQgJXMgc3lzSUQgJXNcbiIsIHB1YklELCBzeXNJRCk7CisgICAgICAgIH0gZWxzZSBpZiAocHViSUQgIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxvY2FsIFJlc29sdmU6IHB1YklEICVzXG4iLCBwdWJJRCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgUmVzb2x2ZTogc3lzSUQgJXNcbiIsIHN5c0lEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNhdGFsID0gKHhtbENhdGFsb2dFbnRyeVB0cikgY2F0YWxvZ3M7CisgICAgaWYgKGNhdGFsID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldCA9IHhtbENhdGFsb2dMaXN0WE1MUmVzb2x2ZShjYXRhbCwgcHViSUQsIHN5c0lEKTsKKyAgICBpZiAoKHJldCAhPSBOVUxMKSAmJiAocmV0ICE9IFhNTF9DQVRBTF9CUkVBSykpCisJcmV0dXJuKHJldCk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkk6CisgKiBAY2F0YWxvZ3M6ICBhIGRvY3VtZW50J3MgbGlzdCBvZiBjYXRhbG9ncworICogQFVSSTogIHRoZSBVUkkKKyAqCisgKiBEbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIFVSSSB1c2luZyBhIAorICogZG9jdW1lbnQncyBwcml2YXRlIGNhdGFsb2cgbGlzdAorICoKKyAqIFJldHVybnMgdGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQKKyAqICAgICAgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJKHZvaWQgKmNhdGFsb2dzLCBjb25zdCB4bWxDaGFyICpVUkkpIHsKKyAgICB4bWxDYXRhbG9nRW50cnlQdHIgY2F0YWw7CisgICAgeG1sQ2hhciAqcmV0OworCisgICAgaWYgKCF4bWxDYXRhbG9nSW5pdGlhbGl6ZWQpCisJeG1sSW5pdGlhbGl6ZUNhdGFsb2coKTsKKworICAgIGlmIChVUkkgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBpZiAoeG1sRGVidWdDYXRhbG9ncykKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlJlc29sdmUgVVJJICVzXG4iLCBVUkkpOworCisgICAgY2F0YWwgPSAoeG1sQ2F0YWxvZ0VudHJ5UHRyKSBjYXRhbG9nczsKKyAgICBpZiAoY2F0YWwgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgcmV0ID0geG1sQ2F0YWxvZ0xpc3RYTUxSZXNvbHZlVVJJKGNhdGFsLCBVUkkpOworICAgIGlmICgocmV0ICE9IE5VTEwpICYmIChyZXQgIT0gWE1MX0NBVEFMX0JSRUFLKSkKKwlyZXR1cm4ocmV0KTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlEZXByZWNhdGVkIGludGVyZmFjZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxDYXRhbG9nR2V0U3lzdGVtOgorICogQHN5c0lEOiAgdGhlIHN5c3RlbSBJRCBzdHJpbmcKKyAqCisgKiBUcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIHJlZmVyZW5jZSBhc3NvY2lhdGVkIHRvIGEgc3lzdGVtIElECisgKiBERVBSRUNBVEVELCB1c2UgeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0oKQorICoKKyAqIFJldHVybnMgdGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLgorICovCitjb25zdCB4bWxDaGFyICoKK3htbENhdGFsb2dHZXRTeXN0ZW0oY29uc3QgeG1sQ2hhciAqc3lzSUQpIHsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgc3RhdGljIHhtbENoYXIgcmVzdWx0WzEwMDBdOworICAgIHN0YXRpYyBpbnQgbXNnID0gMDsKKworICAgIGlmICgheG1sQ2F0YWxvZ0luaXRpYWxpemVkKQorCXhtbEluaXRpYWxpemVDYXRhbG9nKCk7CisKKyAgICBpZiAobXNnID09IDApIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlVzZSBvZiBkZXByZWNhdGVkIHhtbENhdGFsb2dHZXRTeXN0ZW0oKSBjYWxsXG4iKTsKKwltc2crKzsKKyAgICB9CisKKyAgICBpZiAoc3lzSUQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgCisgICAgLyoKKyAgICAgKiBDaGVjayBmaXJzdCB0aGUgWE1MIGNhdGFsb2dzCisgICAgICovCisgICAgaWYgKHhtbERlZmF1bHRDYXRhbG9nICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoeG1sRGVmYXVsdENhdGFsb2ctPnhtbCwgTlVMTCwgc3lzSUQpOworCWlmICgocmV0ICE9IE5VTEwpICYmIChyZXQgIT0gWE1MX0NBVEFMX0JSRUFLKSkgeworCSAgICBzbnByaW50ZigoY2hhciAqKSByZXN1bHQsIHNpemVvZihyZXN1bHQpIC0gMSwgIiVzIiwgKGNoYXIgKikgcmV0KTsKKwkgICAgcmVzdWx0W3NpemVvZihyZXN1bHQpIC0gMV0gPSAwOworCSAgICByZXR1cm4ocmVzdWx0KTsKKwl9CisgICAgfQorCisgICAgaWYgKHhtbERlZmF1bHRDYXRhbG9nICE9IE5VTEwpCisJcmV0dXJuKHhtbENhdGFsb2dHZXRTR01MU3lzdGVtKHhtbERlZmF1bHRDYXRhbG9nLT5zZ21sLCBzeXNJRCkpOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxDYXRhbG9nR2V0UHVibGljOgorICogQHB1YklEOiAgdGhlIHB1YmxpYyBJRCBzdHJpbmcKKyAqCisgKiBUcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIHJlZmVyZW5jZSBhc3NvY2lhdGVkIHRvIGEgcHVibGljIElECisgKiBERVBSRUNBVEVELCB1c2UgeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMoKQorICoKKyAqIFJldHVybnMgdGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLgorICovCitjb25zdCB4bWxDaGFyICoKK3htbENhdGFsb2dHZXRQdWJsaWMoY29uc3QgeG1sQ2hhciAqcHViSUQpIHsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgc3RhdGljIHhtbENoYXIgcmVzdWx0WzEwMDBdOworICAgIHN0YXRpYyBpbnQgbXNnID0gMDsKKworICAgIGlmICgheG1sQ2F0YWxvZ0luaXRpYWxpemVkKQorCXhtbEluaXRpYWxpemVDYXRhbG9nKCk7CisKKyAgICBpZiAobXNnID09IDApIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlVzZSBvZiBkZXByZWNhdGVkIHhtbENhdGFsb2dHZXRQdWJsaWMoKSBjYWxsXG4iKTsKKwltc2crKzsKKyAgICB9CisKKyAgICBpZiAocHViSUQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgCisgICAgLyoKKyAgICAgKiBDaGVjayBmaXJzdCB0aGUgWE1MIGNhdGFsb2dzCisgICAgICovCisgICAgaWYgKHhtbERlZmF1bHRDYXRhbG9nICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxDYXRhbG9nTGlzdFhNTFJlc29sdmUoeG1sRGVmYXVsdENhdGFsb2ctPnhtbCwgcHViSUQsIE5VTEwpOworCWlmICgocmV0ICE9IE5VTEwpICYmIChyZXQgIT0gWE1MX0NBVEFMX0JSRUFLKSkgeworCSAgICBzbnByaW50ZigoY2hhciAqKSByZXN1bHQsIHNpemVvZihyZXN1bHQpIC0gMSwgIiVzIiwgKGNoYXIgKikgcmV0KTsKKwkgICAgcmVzdWx0W3NpemVvZihyZXN1bHQpIC0gMV0gPSAwOworCSAgICByZXR1cm4ocmVzdWx0KTsKKwl9CisgICAgfQorCisgICAgaWYgKHhtbERlZmF1bHRDYXRhbG9nICE9IE5VTEwpCisJcmV0dXJuKHhtbENhdGFsb2dHZXRTR01MUHVibGljKHhtbERlZmF1bHRDYXRhbG9nLT5zZ21sLCBwdWJJRCkpOworICAgIHJldHVybihOVUxMKTsKK30KKworI2RlZmluZSBib3R0b21fY2F0YWxvZworI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZS5weSBiL2xpYnhtbDItMi43LjcvY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0YTVhNjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NoZWNrLXJlbGF4bmctdGVzdC1zdWl0ZS5weQpAQCAtMCwwICsxLDM5NCBAQAorIyEvdXNyL2Jpbi9weXRob24KK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCitpbXBvcnQgb3MKK2ltcG9ydCBzdHJpbmcKK2ltcG9ydCBTdHJpbmdJTworc3lzLnBhdGguaW5zZXJ0KDAsICJweXRob24iKQoraW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKK2RlYnVnID0gMAordmVyYm9zZSA9IDAKK3F1aWV0ID0gMQorCisjCisjIHRoZSB0ZXN0c3VpdGUgZGVzY3JpcHRpb24KKyMKK0NPTkY9b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICJ0ZXN0L3JlbGF4bmcvT0FTSVMvc3BlY3Rlc3QueG1sIikKK0xPRz0iY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlLmxvZyIKK1JFUz0icmVsYXhuZy10ZXN0LXJlc3VsdHMueG1sIgorCitsb2cgPSBvcGVuKExPRywgInciKQorbmJfc2NoZW1hc190ZXN0cyA9IDAKK25iX3NjaGVtYXNfc3VjY2VzcyA9IDAKK25iX3NjaGVtYXNfZmFpbGVkID0gMAorbmJfaW5zdGFuY2VzX3Rlc3RzID0gMAorbmJfaW5zdGFuY2VzX3N1Y2Nlc3MgPSAwCituYl9pbnN0YW5jZXNfZmFpbGVkID0gMAorCitsaWJ4bWwyLmxpbmVOdW1iZXJzRGVmYXVsdCgxKQorIworIyBFcnJvciBhbmQgd2Fybm5nIGNhbGxiYWNrcworIworZGVmIGNhbGxiYWNrKGN0eCwgc3RyKToKKyAgICBnbG9iYWwgbG9nCisgICAgbG9nLndyaXRlKCIlcyVzIiAlIChjdHgsIHN0cikpCisKK2xpYnhtbDIucmVnaXN0ZXJFcnJvckhhbmRsZXIoY2FsbGJhY2ssICIiKQorCisjCisjIFJlc29sdmVyIGNhbGxiYWNrCisjCityZXNvdXJjZXMgPSB7fQorZGVmIHJlc29sdmVyKFVSTCwgSUQsIGN0eHQpOgorICAgIGdsb2JhbCByZXNvdXJjZXMKKworICAgIGlmIHN0cmluZy5maW5kKFVSTCwgJyMnKSAhPSAtMToKKyAgICAgICAgVVJMID0gVVJMWzA6c3RyaW5nLmZpbmQoVVJMLCAnIycpXQorICAgIGlmIHJlc291cmNlcy5oYXNfa2V5KFVSTCk6CisgICAgICAgIHJldHVybihTdHJpbmdJTy5TdHJpbmdJTyhyZXNvdXJjZXNbVVJMXSkpCisgICAgbG9nLndyaXRlKCJSZXNvbHZlciBmYWlsdXJlOiBhc2tlZCAlc1xuIiAlIChVUkwpKQorICAgIGxvZy53cml0ZSgicmVzb3VyY2VzOiAlc1xuIiAlIChyZXNvdXJjZXMpKQorICAgIHJldHVybiBOb25lCisKKyMKKyMgTG9hZCB0aGUgcHJldmlvdXMgcmVzdWx0cworIworI3Jlc3VsdHMgPSB7fQorI3ByZXZpb3VzID0ge30KKyMKKyN0cnk6CisjICAgIHJlcyA9IGxpYnhtbDIucGFyc2VGaWxlKFJFUykKKyNleGNlcHQ6CisjICAgIGxvZy53cml0ZSgiQ291bGQgbm90IHBhcnNlICVzIiAlIChSRVMpKQorICAgIAorIworIyBoYW5kbGUgYSB2YWxpZCBpbnN0YW5jZQorIworZGVmIGhhbmRsZV92YWxpZChub2RlLCBzY2hlbWEpOgorICAgIGdsb2JhbCBsb2cKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX2ZhaWxlZAorCisgICAgaW5zdGFuY2UgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICBpbnN0YW5jZSA9IGluc3RhbmNlICsgY2hpbGQuc2VyaWFsaXplKCkKKwljaGlsZCA9IGNoaWxkLm5leHQKKworICAgIHRyeToKKwlkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorCisgICAgaWYgZG9jID09IE5vbmU6CisgICAgICAgIGxvZy53cml0ZSgiXG5GYWlsZWQgdG8gcGFyc2UgY29ycmVjdCBpbnN0YW5jZTpcbi0tLS0tXG4iKQorCWxvZy53cml0ZShpbnN0YW5jZSkKKyAgICAgICAgbG9nLndyaXRlKCJcbi0tLS0tXG4iKQorCW5iX2luc3RhbmNlc19mYWlsZWQgPSBuYl9pbnN0YW5jZXNfZmFpbGVkICsgMQorCXJldHVybgorCisgICAgdHJ5OgorICAgICAgICBjdHh0ID0gc2NoZW1hLnJlbGF4TkdOZXdWYWxpZEN0eHQoKQorCXJldCA9IGRvYy5yZWxheE5HVmFsaWRhdGVEb2MoY3R4dCkKKyAgICBleGNlcHQ6CisgICAgICAgIHJldCA9IC0xCisgICAgaWYgcmV0ICE9IDA6CisgICAgICAgIGxvZy53cml0ZSgiXG5GYWlsZWQgdG8gdmFsaWRhdGUgY29ycmVjdCBpbnN0YW5jZTpcbi0tLS0tXG4iKQorCWxvZy53cml0ZShpbnN0YW5jZSkKKyAgICAgICAgbG9nLndyaXRlKCJcbi0tLS0tXG4iKQorCW5iX2luc3RhbmNlc19mYWlsZWQgPSBuYl9pbnN0YW5jZXNfZmFpbGVkICsgMQorICAgIGVsc2U6CisJbmJfaW5zdGFuY2VzX3N1Y2Nlc3MgPSBuYl9pbnN0YW5jZXNfc3VjY2VzcyArIDEKKyAgICBkb2MuZnJlZURvYygpCisKKyMKKyMgaGFuZGxlIGFuIGludmFsaWQgaW5zdGFuY2UKKyMKK2RlZiBoYW5kbGVfaW52YWxpZChub2RlLCBzY2hlbWEpOgorICAgIGdsb2JhbCBsb2cKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX2ZhaWxlZAorCisgICAgaW5zdGFuY2UgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICBpbnN0YW5jZSA9IGluc3RhbmNlICsgY2hpbGQuc2VyaWFsaXplKCkKKwljaGlsZCA9IGNoaWxkLm5leHQKKworICAgIHRyeToKKwlkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorCisgICAgaWYgZG9jID09IE5vbmU6CisgICAgICAgIGxvZy53cml0ZSgiXG5TdHJhbmdlOiBmYWlsZWQgdG8gcGFyc2UgaW5jb3JyZWN0IGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJcmV0dXJuCisKKyAgICB0cnk6CisgICAgICAgIGN0eHQgPSBzY2hlbWEucmVsYXhOR05ld1ZhbGlkQ3R4dCgpCisJcmV0ID0gZG9jLnJlbGF4TkdWYWxpZGF0ZURvYyhjdHh0KQorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0ID0gLTEKKyAgICBpZiByZXQgPT0gMDoKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byBkZXRlY3QgdmFsaWRhdGlvbiBwcm9ibGVtIGluIGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQgKyAxCisgICAgZWxzZToKKwluYl9pbnN0YW5jZXNfc3VjY2VzcyA9IG5iX2luc3RhbmNlc19zdWNjZXNzICsgMQorICAgIGRvYy5mcmVlRG9jKCkKKworIworIyBoYW5kbGUgYW4gaW5jb3JyZWN0IHRlc3QKKyMKK2RlZiBoYW5kbGVfY29ycmVjdChub2RlKToKKyAgICBnbG9iYWwgbG9nCisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfc3VjY2VzcworICAgIGdsb2JhbCBuYl9zY2hlbWFzX2ZhaWxlZAorCisgICAgc2NoZW1hID0gIiIKKyAgICBjaGlsZCA9IG5vZGUuY2hpbGRyZW4KKyAgICB3aGlsZSBjaGlsZCAhPSBOb25lOgorICAgICAgICBpZiBjaGlsZC50eXBlICE9ICd0ZXh0JzoKKwkgICAgc2NoZW1hID0gc2NoZW1hICsgY2hpbGQuc2VyaWFsaXplKCkKKwljaGlsZCA9IGNoaWxkLm5leHQKKworICAgIHRyeToKKwlybmdwID0gbGlieG1sMi5yZWxheE5HTmV3TWVtUGFyc2VyQ3R4dChzY2hlbWEsIGxlbihzY2hlbWEpKQorCXJuZ3MgPSBybmdwLnJlbGF4TkdQYXJzZSgpCisgICAgZXhjZXB0OgorICAgICAgICBybmdzID0gTm9uZQorICAgIGlmIHJuZ3MgPT0gTm9uZToKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byBjb21waWxlIGNvcnJlY3Qgc2NoZW1hOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKHNjaGVtYSkKKyAgICAgICAgbG9nLndyaXRlKCJcbi0tLS0tXG4iKQorCW5iX3NjaGVtYXNfZmFpbGVkID0gbmJfc2NoZW1hc19mYWlsZWQgKyAxCisgICAgZWxzZToKKwluYl9zY2hlbWFzX3N1Y2Nlc3MgPSBuYl9zY2hlbWFzX3N1Y2Nlc3MgKyAxCisgICAgcmV0dXJuIHJuZ3MKKyAgICAgICAgCitkZWYgaGFuZGxlX2luY29ycmVjdChub2RlKToKKyAgICBnbG9iYWwgbG9nCisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfc3VjY2VzcworICAgIGdsb2JhbCBuYl9zY2hlbWFzX2ZhaWxlZAorCisgICAgc2NoZW1hID0gIiIKKyAgICBjaGlsZCA9IG5vZGUuY2hpbGRyZW4KKyAgICB3aGlsZSBjaGlsZCAhPSBOb25lOgorICAgICAgICBpZiBjaGlsZC50eXBlICE9ICd0ZXh0JzoKKwkgICAgc2NoZW1hID0gc2NoZW1hICsgY2hpbGQuc2VyaWFsaXplKCkKKwljaGlsZCA9IGNoaWxkLm5leHQKKworICAgIHRyeToKKwlybmdwID0gbGlieG1sMi5yZWxheE5HTmV3TWVtUGFyc2VyQ3R4dChzY2hlbWEsIGxlbihzY2hlbWEpKQorCXJuZ3MgPSBybmdwLnJlbGF4TkdQYXJzZSgpCisgICAgZXhjZXB0OgorICAgICAgICBybmdzID0gTm9uZQorICAgIGlmIHJuZ3MgIT0gTm9uZToKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byBkZXRlY3Qgc2NoZW1hIGVycm9yIGluOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKHNjaGVtYSkKKyAgICAgICAgbG9nLndyaXRlKCJcbi0tLS0tXG4iKQorCW5iX3NjaGVtYXNfZmFpbGVkID0gbmJfc2NoZW1hc19mYWlsZWQgKyAxCisgICAgZWxzZToKKyMJbG9nLndyaXRlKCJcblN1Y2Nlc3MgZGV0ZWN0aW5nIHNjaGVtYSBlcnJvciBpbjpcbi0tLS0tXG4iKQorIwlsb2cud3JpdGUoc2NoZW1hKQorIwlsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfc2NoZW1hc19zdWNjZXNzID0gbmJfc2NoZW1hc19zdWNjZXNzICsgMQorICAgIHJldHVybiBOb25lCisKKyMKKyMgcmVzb3VyY2UgaGFuZGxpbmc6IGtlZXAgYSBkaWN0aW9uYXJ5IG9mIFVSTC0+c3RyaW5nIG1hcHBpbmdzCisjCitkZWYgaGFuZGxlX3Jlc291cmNlKG5vZGUsIGRpcik6CisgICAgZ2xvYmFsIHJlc291cmNlcworCisgICAgdHJ5OgorCW5hbWUgPSBub2RlLnByb3AoJ25hbWUnKQorICAgIGV4Y2VwdDoKKyAgICAgICAgbmFtZSA9IE5vbmUKKworICAgIGlmIG5hbWUgPT0gTm9uZSBvciBuYW1lID09ICcnOgorICAgICAgICBsb2cud3JpdGUoInJlc291cmNlIGhhcyBubyBuYW1lIikKKwlyZXR1cm47CisgICAgICAgIAorICAgIGlmIGRpciAhPSBOb25lOgorIyAgICAgICAgbmFtZSA9IGxpYnhtbDIuYnVpbGRVUkkobmFtZSwgZGlyKQorICAgICAgICBuYW1lID0gZGlyICsgJy8nICsgbmFtZQorCisgICAgcmVzID0gIiIKKyAgICBjaGlsZCA9IG5vZGUuY2hpbGRyZW4KKyAgICB3aGlsZSBjaGlsZCAhPSBOb25lOgorICAgICAgICBpZiBjaGlsZC50eXBlICE9ICd0ZXh0JzoKKwkgICAgcmVzID0gcmVzICsgY2hpbGQuc2VyaWFsaXplKCkKKwljaGlsZCA9IGNoaWxkLm5leHQKKyAgICByZXNvdXJjZXNbbmFtZV0gPSByZXMKKworIworIyBkaXIgaGFuZGxpbmc6IHBzZXVkbyBkaXJlY3RvcnkgcmVzb3VyY2VzCisjCitkZWYgaGFuZGxlX2Rpcihub2RlLCBkaXIpOgorICAgIHRyeToKKwluYW1lID0gbm9kZS5wcm9wKCduYW1lJykKKyAgICBleGNlcHQ6CisgICAgICAgIG5hbWUgPSBOb25lCisKKyAgICBpZiBuYW1lID09IE5vbmUgb3IgbmFtZSA9PSAnJzoKKyAgICAgICAgbG9nLndyaXRlKCJyZXNvdXJjZSBoYXMgbm8gbmFtZSIpCisJcmV0dXJuOworICAgICAgICAKKyAgICBpZiBkaXIgIT0gTm9uZToKKyMgICAgICAgIG5hbWUgPSBsaWJ4bWwyLmJ1aWxkVVJJKG5hbWUsIGRpcikKKyAgICAgICAgbmFtZSA9IGRpciArICcvJyArIG5hbWUKKworICAgIGRpcnMgPSBub2RlLnhwYXRoRXZhbCgnZGlyJykKKyAgICBmb3IgZGlyIGluIGRpcnM6CisgICAgICAgIGhhbmRsZV9kaXIoZGlyLCBuYW1lKQorICAgIHJlcyA9IG5vZGUueHBhdGhFdmFsKCdyZXNvdXJjZScpCisgICAgZm9yIHIgaW4gcmVzOgorICAgICAgICBoYW5kbGVfcmVzb3VyY2UociwgbmFtZSkKKworIworIyBoYW5kbGUgYSB0ZXN0Q2FzZSBlbGVtZW50CisjCitkZWYgaGFuZGxlX3Rlc3RDYXNlKG5vZGUpOgorICAgIGdsb2JhbCBuYl9zY2hlbWFzX3Rlc3RzCisgICAgZ2xvYmFsIG5iX2luc3RhbmNlc190ZXN0cworICAgIGdsb2JhbCByZXNvdXJjZXMKKworICAgIHNlY3Rpb25zID0gbm9kZS54cGF0aEV2YWwoJ3N0cmluZyhzZWN0aW9uKScpCisgICAgbG9nLndyaXRlKCJcbiAgICA9PT09PT09PSB0ZXN0ICVkIGxpbmUgJWQgc2VjdGlvbiAlcyA9PT09PT09PT09XG4iICUgKAorCisgICAgICAgICAgICAgIG5iX3NjaGVtYXNfdGVzdHMsIG5vZGUubGluZU5vKCksIHNlY3Rpb25zKSkKKyAgICByZXNvdXJjZXMgPSB7fQorICAgIGlmIGRlYnVnOgorICAgICAgICBwcmludCAidGVzdCAlZCBsaW5lICVkIiAlIChuYl9zY2hlbWFzX3Rlc3RzLCBub2RlLmxpbmVObygpKQorCisgICAgZGlycyA9IG5vZGUueHBhdGhFdmFsKCdkaXInKQorICAgIGZvciBkaXIgaW4gZGlyczoKKyAgICAgICAgaGFuZGxlX2RpcihkaXIsIE5vbmUpCisgICAgcmVzID0gbm9kZS54cGF0aEV2YWwoJ3Jlc291cmNlJykKKyAgICBmb3IgciBpbiByZXM6CisgICAgICAgIGhhbmRsZV9yZXNvdXJjZShyLCBOb25lKQorCisgICAgdHN0cyA9IG5vZGUueHBhdGhFdmFsKCdpbmNvcnJlY3QnKQorICAgIGlmIHRzdHMgIT0gW106CisgICAgICAgIGlmIGxlbih0c3RzKSAhPSAxOgorCSAgICBwcmludCAid2FybmluZyB0ZXN0IGxpbmUgJWQgaGFzIG1vcmUgdGhhbiBvbmUgPGluY29ycmVjdD4gZXhhbXBsZSIgJShub2RlLmxpbmVObygpKQorCXNjaGVtYSA9IGhhbmRsZV9pbmNvcnJlY3QodHN0c1swXSkKKyAgICBlbHNlOgorICAgICAgICB0c3RzID0gbm9kZS54cGF0aEV2YWwoJ2NvcnJlY3QnKQorCWlmIHRzdHMgIT0gW106CisJICAgIGlmIGxlbih0c3RzKSAhPSAxOgorCQlwcmludCAid2FybmluZyB0ZXN0IGxpbmUgJWQgaGFzIG1vcmUgdGhhbiBvbmUgPGNvcnJlY3Q+IGV4YW1wbGUiJSAobm9kZS5saW5lTm8oKSkKKwkgICAgc2NoZW1hID0gaGFuZGxlX2NvcnJlY3QodHN0c1swXSkKKwllbHNlOgorCSAgICBwcmludCAid2FybmluZyA8dGVzdENhc2U+IGxpbmUgJWQgaGFzIG5vIDxjb3JyZWN0PiBub3IgPGluY29ycmVjdD4gY2hpbGQiICUgKG5vZGUubGluZU5vKCkpCisKKyAgICBuYl9zY2hlbWFzX3Rlc3RzID0gbmJfc2NoZW1hc190ZXN0cyArIDE7CisgICAgCisgICAgdmFsaWRzID0gbm9kZS54cGF0aEV2YWwoJ3ZhbGlkJykKKyAgICBpbnZhbGlkcyA9IG5vZGUueHBhdGhFdmFsKCdpbnZhbGlkJykKKyAgICBuYl9pbnN0YW5jZXNfdGVzdHMgPSBuYl9pbnN0YW5jZXNfdGVzdHMgKyBsZW4odmFsaWRzKSArIGxlbihpbnZhbGlkcykKKyAgICBpZiBzY2hlbWEgIT0gTm9uZToKKyAgICAgICAgZm9yIHZhbGlkIGluIHZhbGlkczoKKwkgICAgaGFuZGxlX3ZhbGlkKHZhbGlkLCBzY2hlbWEpCisgICAgICAgIGZvciBpbnZhbGlkIGluIGludmFsaWRzOgorCSAgICBoYW5kbGVfaW52YWxpZChpbnZhbGlkLCBzY2hlbWEpCisKKworIworIyBoYW5kbGUgYSB0ZXN0U3VpdGUgZWxlbWVudAorIworZGVmIGhhbmRsZV90ZXN0U3VpdGUobm9kZSwgbGV2ZWwgPSAwKToKKyAgICBnbG9iYWwgbmJfc2NoZW1hc190ZXN0cywgbmJfc2NoZW1hc19zdWNjZXNzLCBuYl9zY2hlbWFzX2ZhaWxlZAorICAgIGdsb2JhbCBuYl9pbnN0YW5jZXNfdGVzdHMsIG5iX2luc3RhbmNlc19zdWNjZXNzLCBuYl9pbnN0YW5jZXNfZmFpbGVkCisgICAgZ2xvYmFsIHF1aWV0CisgICAgaWYgbGV2ZWwgPj0gMToKKwlvbGRfc2NoZW1hc190ZXN0cyA9IG5iX3NjaGVtYXNfdGVzdHMKKwlvbGRfc2NoZW1hc19zdWNjZXNzID0gbmJfc2NoZW1hc19zdWNjZXNzCisJb2xkX3NjaGVtYXNfZmFpbGVkID0gbmJfc2NoZW1hc19mYWlsZWQKKwlvbGRfaW5zdGFuY2VzX3Rlc3RzID0gbmJfaW5zdGFuY2VzX3Rlc3RzCisJb2xkX2luc3RhbmNlc19zdWNjZXNzID0gbmJfaW5zdGFuY2VzX3N1Y2Nlc3MKKwlvbGRfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQKKworICAgIGRvY3MgPSBub2RlLnhwYXRoRXZhbCgnZG9jdW1lbnRhdGlvbicpCisgICAgYXV0aG9ycyA9IG5vZGUueHBhdGhFdmFsKCdhdXRob3InKQorICAgIGlmIGRvY3MgIT0gW106CisgICAgICAgIG1zZyA9ICIiCisgICAgICAgIGZvciBkb2MgaW4gZG9jczoKKwkgICAgbXNnID0gbXNnICsgZG9jLmNvbnRlbnQgKyAiICIKKwlpZiBhdXRob3JzICE9IFtdOgorCSAgICBtc2cgPSBtc2cgKyAid3JpdHRlbiBieSAiCisJICAgIGZvciBhdXRob3IgaW4gYXV0aG9yczoKKwkgICAgICAgIG1zZyA9IG1zZyArIGF1dGhvci5jb250ZW50ICsgIiAiCisJaWYgcXVpZXQgPT0gMDoKKwkgICAgcHJpbnQgbXNnCisgICAgc2VjdGlvbnMgPSBub2RlLnhwYXRoRXZhbCgnc2VjdGlvbicpCisgICAgaWYgc2VjdGlvbnMgIT0gW10gYW5kIGxldmVsIDw9IDA6CisgICAgICAgIG1zZyA9ICIiCisgICAgICAgIGZvciBzZWN0aW9uIGluIHNlY3Rpb25zOgorCSAgICBtc2cgPSBtc2cgKyBzZWN0aW9uLmNvbnRlbnQgKyAiICIKKwlpZiBxdWlldCA9PSAwOgorCSAgICBwcmludCAiVGVzdHMgZm9yIHNlY3Rpb24gJXMiICUgKG1zZykKKyAgICBmb3IgdGVzdCBpbiBub2RlLnhwYXRoRXZhbCgndGVzdENhc2UnKToKKyAgICAgICAgaGFuZGxlX3Rlc3RDYXNlKHRlc3QpCisgICAgZm9yIHRlc3QgaW4gbm9kZS54cGF0aEV2YWwoJ3Rlc3RTdWl0ZScpOgorICAgICAgICBoYW5kbGVfdGVzdFN1aXRlKHRlc3QsIGxldmVsICsgMSkKKwkgICAgICAgIAorCisgICAgaWYgdmVyYm9zZSBhbmQgbGV2ZWwgPj0gMSBhbmQgc2VjdGlvbnMgIT0gW106CisgICAgICAgIG1zZyA9ICIiCisgICAgICAgIGZvciBzZWN0aW9uIGluIHNlY3Rpb25zOgorCSAgICBtc2cgPSBtc2cgKyBzZWN0aW9uLmNvbnRlbnQgKyAiICIKKyAgICAgICAgcHJpbnQgIlJlc3VsdCBvZiB0ZXN0cyBmb3Igc2VjdGlvbiAlcyIgJSAobXNnKQorICAgICAgICBpZiBuYl9zY2hlbWFzX3Rlc3RzICE9IG9sZF9zY2hlbWFzX3Rlc3RzOgorCSAgICBwcmludCAiZm91bmQgJWQgdGVzdCBzY2hlbWFzOiAlZCBzdWNjZXNzICVkIGZhaWx1cmVzIiAlICgKKwkJICBuYl9zY2hlbWFzX3Rlc3RzIC0gb2xkX3NjaGVtYXNfdGVzdHMsCisJCSAgbmJfc2NoZW1hc19zdWNjZXNzIC0gb2xkX3NjaGVtYXNfc3VjY2VzcywKKwkJICBuYl9zY2hlbWFzX2ZhaWxlZCAtIG9sZF9zY2hlbWFzX2ZhaWxlZCkKKwlpZiBuYl9pbnN0YW5jZXNfdGVzdHMgIT0gb2xkX2luc3RhbmNlc190ZXN0czoKKwkgICAgcHJpbnQgImZvdW5kICVkIHRlc3QgaW5zdGFuY2VzOiAlZCBzdWNjZXNzICVkIGZhaWx1cmVzIiAlICgKKwkJICBuYl9pbnN0YW5jZXNfdGVzdHMgLSBvbGRfaW5zdGFuY2VzX3Rlc3RzLAorCQkgIG5iX2luc3RhbmNlc19zdWNjZXNzIC0gb2xkX2luc3RhbmNlc19zdWNjZXNzLAorCQkgIG5iX2luc3RhbmNlc19mYWlsZWQgLSBvbGRfaW5zdGFuY2VzX2ZhaWxlZCkKKyMKKyMgUGFyc2UgdGhlIGNvbmYgZmlsZQorIworbGlieG1sMi5zdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0KDEpOwordGVzdHN1aXRlID0gbGlieG1sMi5wYXJzZUZpbGUoQ09ORikKK2xpYnhtbDIuc2V0RW50aXR5TG9hZGVyKHJlc29sdmVyKQorcm9vdCA9IHRlc3RzdWl0ZS5nZXRSb290RWxlbWVudCgpCitpZiByb290Lm5hbWUgIT0gJ3Rlc3RTdWl0ZSc6CisgICAgcHJpbnQgIiVzIGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIHRlc3RTdWl0ZSBlbGVtZW50LCBhYm9ydGluZyIgJSAoQ09ORikKKyAgICBzeXMuZXhpdCgxKQoraWYgcXVpZXQgPT0gMDoKKyAgICBwcmludCAiUnVubmluZyBSZWxheCBORyB0ZXN0c3VpdGUiCitoYW5kbGVfdGVzdFN1aXRlKHJvb3QpCisKK2lmIHF1aWV0ID09IDA6CisgICAgcHJpbnQgIlxuVE9UQUw6XG4iCitpZiBxdWlldCA9PSAwIG9yIG5iX3NjaGVtYXNfZmFpbGVkICE9IDA6CisgICAgcHJpbnQgImZvdW5kICVkIHRlc3Qgc2NoZW1hczogJWQgc3VjY2VzcyAlZCBmYWlsdXJlcyIgJSAoCisgICAgICBuYl9zY2hlbWFzX3Rlc3RzLCBuYl9zY2hlbWFzX3N1Y2Nlc3MsIG5iX3NjaGVtYXNfZmFpbGVkKQoraWYgcXVpZXQgPT0gMCBvciBuYl9pbnN0YW5jZXNfZmFpbGVkICE9IDA6CisgICAgcHJpbnQgImZvdW5kICVkIHRlc3QgaW5zdGFuY2VzOiAlZCBzdWNjZXNzICVkIGZhaWx1cmVzIiAlICgKKyAgICAgIG5iX2luc3RhbmNlc190ZXN0cywgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MsIG5iX2luc3RhbmNlc19mYWlsZWQpCisKK3Rlc3RzdWl0ZS5mcmVlRG9jKCkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIucmVsYXhOR0NsZWFudXBUeXBlcygpCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIGlmIHF1aWV0ID09IDA6CisJcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlMi5weSBiL2xpYnhtbDItMi43LjcvY2hlY2stcmVsYXhuZy10ZXN0LXN1aXRlMi5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NjE4ZGI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9jaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUyLnB5CkBAIC0wLDAgKzEsNDE4IEBACisjIS91c3IvYmluL3B5dGhvbgoraW1wb3J0IHN5cworaW1wb3J0IHRpbWUKK2ltcG9ydCBvcworaW1wb3J0IHN0cmluZworaW1wb3J0IFN0cmluZ0lPCitzeXMucGF0aC5pbnNlcnQoMCwgInB5dGhvbiIpCitpbXBvcnQgbGlieG1sMgorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorZGVidWcgPSAwCitxdWlldCA9IDEKKworIworIyB0aGUgdGVzdHN1aXRlIGRlc2NyaXB0aW9uCisjCitDT05GPW9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAidGVzdC9yZWxheG5nL3Rlc3RzdWl0ZS54bWwiKQorTE9HPSJjaGVjay1yZWxheG5nLXRlc3Qtc3VpdGUyLmxvZyIKKworbG9nID0gb3BlbihMT0csICJ3IikKK25iX3NjaGVtYXNfdGVzdHMgPSAwCituYl9zY2hlbWFzX3N1Y2Nlc3MgPSAwCituYl9zY2hlbWFzX2ZhaWxlZCA9IDAKK25iX2luc3RhbmNlc190ZXN0cyA9IDAKK25iX2luc3RhbmNlc19zdWNjZXNzID0gMAorbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IDAKKworbGlieG1sMi5saW5lTnVtYmVyc0RlZmF1bHQoMSkKKyMKKyMgUmVzb2x2ZXIgY2FsbGJhY2sKKyMKK3Jlc291cmNlcyA9IHt9CitkZWYgcmVzb2x2ZXIoVVJMLCBJRCwgY3R4dCk6CisgICAgZ2xvYmFsIHJlc291cmNlcworCisgICAgaWYgcmVzb3VyY2VzLmhhc19rZXkoVVJMKToKKyAgICAgICAgcmV0dXJuKFN0cmluZ0lPLlN0cmluZ0lPKHJlc291cmNlc1tVUkxdKSkKKyAgICBsb2cud3JpdGUoIlJlc29sdmVyIGZhaWx1cmU6IGFza2VkICVzXG4iICUgKFVSTCkpCisgICAgbG9nLndyaXRlKCJyZXNvdXJjZXM6ICVzXG4iICUgKHJlc291cmNlcykpCisgICAgcmV0dXJuIE5vbmUKKworIworIyBMb2FkIHRoZSBwcmV2aW91cyByZXN1bHRzCisjCisjcmVzdWx0cyA9IHt9CisjcHJldmlvdXMgPSB7fQorIworI3RyeToKKyMgICAgcmVzID0gbGlieG1sMi5wYXJzZUZpbGUoUkVTKQorI2V4Y2VwdDoKKyMgICAgbG9nLndyaXRlKCJDb3VsZCBub3QgcGFyc2UgJXMiICUgKFJFUykpCisgICAgCisjCisjIGhhbmRsZSBhIHZhbGlkIGluc3RhbmNlCisjCitkZWYgaGFuZGxlX3ZhbGlkKG5vZGUsIHNjaGVtYSk6CisgICAgZ2xvYmFsIGxvZworICAgIGdsb2JhbCBuYl9pbnN0YW5jZXNfc3VjY2VzcworICAgIGdsb2JhbCBuYl9pbnN0YW5jZXNfZmFpbGVkCisKKyAgICBpbnN0YW5jZSA9IG5vZGUucHJvcCgiZHRkIikKKyAgICBpZiBpbnN0YW5jZSA9PSBOb25lOgorICAgICAgICBpbnN0YW5jZSA9ICIiCisgICAgY2hpbGQgPSBub2RlLmNoaWxkcmVuCisgICAgd2hpbGUgY2hpbGQgIT0gTm9uZToKKyAgICAgICAgaWYgY2hpbGQudHlwZSAhPSAndGV4dCc6CisJICAgIGluc3RhbmNlID0gaW5zdGFuY2UgKyBjaGlsZC5zZXJpYWxpemUoKQorCWNoaWxkID0gY2hpbGQubmV4dAorCisjICAgIG1lbSA9IGxpYnhtbDIuZGVidWdNZW1vcnkoMSk7CisgICAgdHJ5OgorCWRvYyA9IGxpYnhtbDIucGFyc2VEb2MoaW5zdGFuY2UpCisgICAgZXhjZXB0OgorICAgICAgICBkb2MgPSBOb25lCisKKyAgICBpZiBkb2MgPT0gTm9uZToKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byBwYXJzZSBjb3JyZWN0IGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQgKyAxCisJcmV0dXJuCisKKyAgICBpZiBkZWJ1ZzoKKyAgICAgICAgcHJpbnQgImluc3RhbmNlIGxpbmUgJWQiICUgKG5vZGUubGluZU5vKCkpCisgICAgICAgCisgICAgdHJ5OgorICAgICAgICBjdHh0ID0gc2NoZW1hLnJlbGF4TkdOZXdWYWxpZEN0eHQoKQorCXJldCA9IGRvYy5yZWxheE5HVmFsaWRhdGVEb2MoY3R4dCkKKwlkZWwgY3R4dAorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0ID0gLTEKKworICAgIGRvYy5mcmVlRG9jKCkKKyMgICAgaWYgbWVtICE9IGxpYnhtbDIuZGVidWdNZW1vcnkoMSk6CisjCXByaW50ICJ2YWxpZGF0aW5nIGluc3RhbmNlICVkIGxpbmUgJWQgbGVha3MiICUgKAorIwkJICBuYl9pbnN0YW5jZXNfdGVzdHMsIG5vZGUubGluZU5vKCkpCisKKyAgICBpZiByZXQgIT0gMDoKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byB2YWxpZGF0ZSBjb3JyZWN0IGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQgKyAxCisgICAgZWxzZToKKwluYl9pbnN0YW5jZXNfc3VjY2VzcyA9IG5iX2luc3RhbmNlc19zdWNjZXNzICsgMQorCisjCisjIGhhbmRsZSBhbiBpbnZhbGlkIGluc3RhbmNlCisjCitkZWYgaGFuZGxlX2ludmFsaWQobm9kZSwgc2NoZW1hKToKKyAgICBnbG9iYWwgbG9nCisgICAgZ2xvYmFsIG5iX2luc3RhbmNlc19zdWNjZXNzCisgICAgZ2xvYmFsIG5iX2luc3RhbmNlc19mYWlsZWQKKworICAgIGluc3RhbmNlID0gbm9kZS5wcm9wKCJkdGQiKQorICAgIGlmIGluc3RhbmNlID09IE5vbmU6CisgICAgICAgIGluc3RhbmNlID0gIiIKKyAgICBjaGlsZCA9IG5vZGUuY2hpbGRyZW4KKyAgICB3aGlsZSBjaGlsZCAhPSBOb25lOgorICAgICAgICBpZiBjaGlsZC50eXBlICE9ICd0ZXh0JzoKKwkgICAgaW5zdGFuY2UgPSBpbnN0YW5jZSArIGNoaWxkLnNlcmlhbGl6ZSgpCisJY2hpbGQgPSBjaGlsZC5uZXh0CisKKyMgICAgbWVtID0gbGlieG1sMi5kZWJ1Z01lbW9yeSgxKTsKKworICAgIHRyeToKKwlkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorCisgICAgaWYgZG9jID09IE5vbmU6CisgICAgICAgIGxvZy53cml0ZSgiXG5TdHJhbmdlOiBmYWlsZWQgdG8gcGFyc2UgaW5jb3JyZWN0IGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJcmV0dXJuCisKKyAgICBpZiBkZWJ1ZzoKKyAgICAgICAgcHJpbnQgImluc3RhbmNlIGxpbmUgJWQiICUgKG5vZGUubGluZU5vKCkpCisgICAgICAgCisgICAgdHJ5OgorICAgICAgICBjdHh0ID0gc2NoZW1hLnJlbGF4TkdOZXdWYWxpZEN0eHQoKQorCXJldCA9IGRvYy5yZWxheE5HVmFsaWRhdGVEb2MoY3R4dCkKKwlkZWwgY3R4dAorCisgICAgZXhjZXB0OgorICAgICAgICByZXQgPSAtMQorCisgICAgZG9jLmZyZWVEb2MoKQorIyAgICBtZW0yID0gbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorIyAgICBpZiBtZW0gIT0gbWVtMjoKKyMJcHJpbnQgInZhbGlkYXRpbmcgaW5zdGFuY2UgJWQgbGluZSAlZCBsZWFrcyAlZCBieXRlcyIgJSAoCisjCQkgIG5iX2luc3RhbmNlc190ZXN0cywgbm9kZS5saW5lTm8oKSwgbWVtMiAtIG1lbSkKKyAgICAKKyAgICBpZiByZXQgPT0gMDoKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byBkZXRlY3QgdmFsaWRhdGlvbiBwcm9ibGVtIGluIGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQgKyAxCisgICAgZWxzZToKKwluYl9pbnN0YW5jZXNfc3VjY2VzcyA9IG5iX2luc3RhbmNlc19zdWNjZXNzICsgMQorCisjCisjIGhhbmRsZSBhbiBpbmNvcnJlY3QgdGVzdAorIworZGVmIGhhbmRsZV9jb3JyZWN0KG5vZGUpOgorICAgIGdsb2JhbCBsb2cKKyAgICBnbG9iYWwgbmJfc2NoZW1hc19zdWNjZXNzCisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfZmFpbGVkCisKKyAgICBzY2hlbWEgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICBzY2hlbWEgPSBzY2hlbWEgKyBjaGlsZC5zZXJpYWxpemUoKQorCWNoaWxkID0gY2hpbGQubmV4dAorCisgICAgdHJ5OgorCXJuZ3AgPSBsaWJ4bWwyLnJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYSwgbGVuKHNjaGVtYSkpCisJcm5ncyA9IHJuZ3AucmVsYXhOR1BhcnNlKCkKKyAgICBleGNlcHQ6CisgICAgICAgIHJuZ3MgPSBOb25lCisgICAgaWYgcm5ncyA9PSBOb25lOgorICAgICAgICBsb2cud3JpdGUoIlxuRmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdCBzY2hlbWE6XG4tLS0tLVxuIikKKwlsb2cud3JpdGUoc2NoZW1hKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfc2NoZW1hc19mYWlsZWQgPSBuYl9zY2hlbWFzX2ZhaWxlZCArIDEKKyAgICBlbHNlOgorCW5iX3NjaGVtYXNfc3VjY2VzcyA9IG5iX3NjaGVtYXNfc3VjY2VzcyArIDEKKyAgICByZXR1cm4gcm5ncworICAgICAgICAKK2RlZiBoYW5kbGVfaW5jb3JyZWN0KG5vZGUpOgorICAgIGdsb2JhbCBsb2cKKyAgICBnbG9iYWwgbmJfc2NoZW1hc19zdWNjZXNzCisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfZmFpbGVkCisKKyAgICBzY2hlbWEgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICBzY2hlbWEgPSBzY2hlbWEgKyBjaGlsZC5zZXJpYWxpemUoKQorCWNoaWxkID0gY2hpbGQubmV4dAorCisgICAgdHJ5OgorCXJuZ3AgPSBsaWJ4bWwyLnJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYSwgbGVuKHNjaGVtYSkpCisJcm5ncyA9IHJuZ3AucmVsYXhOR1BhcnNlKCkKKyAgICBleGNlcHQ6CisgICAgICAgIHJuZ3MgPSBOb25lCisgICAgaWYgcm5ncyAhPSBOb25lOgorICAgICAgICBsb2cud3JpdGUoIlxuRmFpbGVkIHRvIGRldGVjdCBzY2hlbWEgZXJyb3IgaW46XG4tLS0tLVxuIikKKwlsb2cud3JpdGUoc2NoZW1hKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfc2NoZW1hc19mYWlsZWQgPSBuYl9zY2hlbWFzX2ZhaWxlZCArIDEKKyAgICBlbHNlOgorIwlsb2cud3JpdGUoIlxuU3VjY2VzcyBkZXRlY3Rpbmcgc2NoZW1hIGVycm9yIGluOlxuLS0tLS1cbiIpCisjCWxvZy53cml0ZShzY2hlbWEpCisjCWxvZy53cml0ZSgiXG4tLS0tLVxuIikKKwluYl9zY2hlbWFzX3N1Y2Nlc3MgPSBuYl9zY2hlbWFzX3N1Y2Nlc3MgKyAxCisgICAgcmV0dXJuIE5vbmUKKworIworIyByZXNvdXJjZSBoYW5kbGluZzoga2VlcCBhIGRpY3Rpb25hcnkgb2YgVVJMLT5zdHJpbmcgbWFwcGluZ3MKKyMKK2RlZiBoYW5kbGVfcmVzb3VyY2Uobm9kZSwgZGlyKToKKyAgICBnbG9iYWwgcmVzb3VyY2VzCisKKyAgICB0cnk6CisJbmFtZSA9IG5vZGUucHJvcCgnbmFtZScpCisgICAgZXhjZXB0OgorICAgICAgICBuYW1lID0gTm9uZQorCisgICAgaWYgbmFtZSA9PSBOb25lIG9yIG5hbWUgPT0gJyc6CisgICAgICAgIGxvZy53cml0ZSgicmVzb3VyY2UgaGFzIG5vIG5hbWUiKQorCXJldHVybjsKKyAgICAgICAgCisgICAgaWYgZGlyICE9IE5vbmU6CisjICAgICAgICBuYW1lID0gbGlieG1sMi5idWlsZFVSSShuYW1lLCBkaXIpCisgICAgICAgIG5hbWUgPSBkaXIgKyAnLycgKyBuYW1lCisKKyAgICByZXMgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICByZXMgPSByZXMgKyBjaGlsZC5zZXJpYWxpemUoKQorCWNoaWxkID0gY2hpbGQubmV4dAorICAgIHJlc291cmNlc1tuYW1lXSA9IHJlcworCisjCisjIGRpciBoYW5kbGluZzogcHNldWRvIGRpcmVjdG9yeSByZXNvdXJjZXMKKyMKK2RlZiBoYW5kbGVfZGlyKG5vZGUsIGRpcik6CisgICAgdHJ5OgorCW5hbWUgPSBub2RlLnByb3AoJ25hbWUnKQorICAgIGV4Y2VwdDoKKyAgICAgICAgbmFtZSA9IE5vbmUKKworICAgIGlmIG5hbWUgPT0gTm9uZSBvciBuYW1lID09ICcnOgorICAgICAgICBsb2cud3JpdGUoInJlc291cmNlIGhhcyBubyBuYW1lIikKKwlyZXR1cm47CisgICAgICAgIAorICAgIGlmIGRpciAhPSBOb25lOgorIyAgICAgICAgbmFtZSA9IGxpYnhtbDIuYnVpbGRVUkkobmFtZSwgZGlyKQorICAgICAgICBuYW1lID0gZGlyICsgJy8nICsgbmFtZQorCisgICAgZGlycyA9IG5vZGUueHBhdGhFdmFsKCdkaXInKQorICAgIGZvciBkaXIgaW4gZGlyczoKKyAgICAgICAgaGFuZGxlX2RpcihkaXIsIG5hbWUpCisgICAgcmVzID0gbm9kZS54cGF0aEV2YWwoJ3Jlc291cmNlJykKKyAgICBmb3IgciBpbiByZXM6CisgICAgICAgIGhhbmRsZV9yZXNvdXJjZShyLCBuYW1lKQorCisjCisjIGhhbmRsZSBhIHRlc3RDYXNlIGVsZW1lbnQKKyMKK2RlZiBoYW5kbGVfdGVzdENhc2Uobm9kZSk6CisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfdGVzdHMKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX3Rlc3RzCisgICAgZ2xvYmFsIHJlc291cmNlcworCisgICAgc2VjdGlvbnMgPSBub2RlLnhwYXRoRXZhbCgnc3RyaW5nKHNlY3Rpb24pJykKKyAgICBsb2cud3JpdGUoIlxuICAgID09PT09PT09IHRlc3QgJWQgbGluZSAlZCBzZWN0aW9uICVzID09PT09PT09PT1cbiIgJSAoCisKKyAgICAgICAgICAgICAgbmJfc2NoZW1hc190ZXN0cywgbm9kZS5saW5lTm8oKSwgc2VjdGlvbnMpKQorICAgIHJlc291cmNlcyA9IHt9CisgICAgaWYgZGVidWc6CisgICAgICAgIHByaW50ICJ0ZXN0ICVkIGxpbmUgJWQiICUgKG5iX3NjaGVtYXNfdGVzdHMsIG5vZGUubGluZU5vKCkpCisKKyAgICBkaXJzID0gbm9kZS54cGF0aEV2YWwoJ2RpcicpCisgICAgZm9yIGRpciBpbiBkaXJzOgorICAgICAgICBoYW5kbGVfZGlyKGRpciwgTm9uZSkKKyAgICByZXMgPSBub2RlLnhwYXRoRXZhbCgncmVzb3VyY2UnKQorICAgIGZvciByIGluIHJlczoKKyAgICAgICAgaGFuZGxlX3Jlc291cmNlKHIsIE5vbmUpCisKKyAgICB0c3RzID0gbm9kZS54cGF0aEV2YWwoJ2luY29ycmVjdCcpCisgICAgaWYgdHN0cyAhPSBbXToKKyAgICAgICAgaWYgbGVuKHRzdHMpICE9IDE6CisJICAgIHByaW50ICJ3YXJuaW5nIHRlc3QgbGluZSAlZCBoYXMgbW9yZSB0aGFuIG9uZSA8aW5jb3JyZWN0PiBleGFtcGxlIiAlKG5vZGUubGluZU5vKCkpCisJc2NoZW1hID0gaGFuZGxlX2luY29ycmVjdCh0c3RzWzBdKQorICAgIGVsc2U6CisgICAgICAgIHRzdHMgPSBub2RlLnhwYXRoRXZhbCgnY29ycmVjdCcpCisJaWYgdHN0cyAhPSBbXToKKwkgICAgaWYgbGVuKHRzdHMpICE9IDE6CisJCXByaW50ICJ3YXJuaW5nIHRlc3QgbGluZSAlZCBoYXMgbW9yZSB0aGFuIG9uZSA8Y29ycmVjdD4gZXhhbXBsZSIlIChub2RlLmxpbmVObygpKQorCSAgICBzY2hlbWEgPSBoYW5kbGVfY29ycmVjdCh0c3RzWzBdKQorCWVsc2U6CisJICAgIHByaW50ICJ3YXJuaW5nIDx0ZXN0Q2FzZT4gbGluZSAlZCBoYXMgbm8gPGNvcnJlY3Q+IG5vciA8aW5jb3JyZWN0PiBjaGlsZCIgJSAobm9kZS5saW5lTm8oKSkKKworICAgIG5iX3NjaGVtYXNfdGVzdHMgPSBuYl9zY2hlbWFzX3Rlc3RzICsgMTsKKyAgICAKKyAgICB2YWxpZHMgPSBub2RlLnhwYXRoRXZhbCgndmFsaWQnKQorICAgIGludmFsaWRzID0gbm9kZS54cGF0aEV2YWwoJ2ludmFsaWQnKQorICAgIG5iX2luc3RhbmNlc190ZXN0cyA9IG5iX2luc3RhbmNlc190ZXN0cyArIGxlbih2YWxpZHMpICsgbGVuKGludmFsaWRzKQorICAgIGlmIHNjaGVtYSAhPSBOb25lOgorICAgICAgICBmb3IgdmFsaWQgaW4gdmFsaWRzOgorCSAgICBoYW5kbGVfdmFsaWQodmFsaWQsIHNjaGVtYSkKKyAgICAgICAgZm9yIGludmFsaWQgaW4gaW52YWxpZHM6CisJICAgIGhhbmRsZV9pbnZhbGlkKGludmFsaWQsIHNjaGVtYSkKKworCisjCisjIGhhbmRsZSBhIHRlc3RTdWl0ZSBlbGVtZW50CisjCitkZWYgaGFuZGxlX3Rlc3RTdWl0ZShub2RlLCBsZXZlbCA9IDApOgorICAgIGdsb2JhbCBuYl9zY2hlbWFzX3Rlc3RzLCBuYl9zY2hlbWFzX3N1Y2Nlc3MsIG5iX3NjaGVtYXNfZmFpbGVkCisgICAgZ2xvYmFsIG5iX2luc3RhbmNlc190ZXN0cywgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MsIG5iX2luc3RhbmNlc19mYWlsZWQKKyAgICBpZiBsZXZlbCA+PSAxOgorCW9sZF9zY2hlbWFzX3Rlc3RzID0gbmJfc2NoZW1hc190ZXN0cworCW9sZF9zY2hlbWFzX3N1Y2Nlc3MgPSBuYl9zY2hlbWFzX3N1Y2Nlc3MKKwlvbGRfc2NoZW1hc19mYWlsZWQgPSBuYl9zY2hlbWFzX2ZhaWxlZAorCW9sZF9pbnN0YW5jZXNfdGVzdHMgPSBuYl9pbnN0YW5jZXNfdGVzdHMKKwlvbGRfaW5zdGFuY2VzX3N1Y2Nlc3MgPSBuYl9pbnN0YW5jZXNfc3VjY2VzcworCW9sZF9pbnN0YW5jZXNfZmFpbGVkID0gbmJfaW5zdGFuY2VzX2ZhaWxlZAorCisgICAgZG9jcyA9IG5vZGUueHBhdGhFdmFsKCdkb2N1bWVudGF0aW9uJykKKyAgICBhdXRob3JzID0gbm9kZS54cGF0aEV2YWwoJ2F1dGhvcicpCisgICAgaWYgZG9jcyAhPSBbXToKKyAgICAgICAgbXNnID0gIiIKKyAgICAgICAgZm9yIGRvYyBpbiBkb2NzOgorCSAgICBtc2cgPSBtc2cgKyBkb2MuY29udGVudCArICIgIgorCWlmIGF1dGhvcnMgIT0gW106CisJICAgIG1zZyA9IG1zZyArICJ3cml0dGVuIGJ5ICIKKwkgICAgZm9yIGF1dGhvciBpbiBhdXRob3JzOgorCSAgICAgICAgbXNnID0gbXNnICsgYXV0aG9yLmNvbnRlbnQgKyAiICIKKwlpZiBxdWlldCA9PSAwOgorCSAgICBwcmludCBtc2cKKyAgICBzZWN0aW9ucyA9IG5vZGUueHBhdGhFdmFsKCdzZWN0aW9uJykKKyAgICBpZiBzZWN0aW9ucyAhPSBbXSBhbmQgbGV2ZWwgPD0gMDoKKyAgICAgICAgbXNnID0gIiIKKyAgICAgICAgZm9yIHNlY3Rpb24gaW4gc2VjdGlvbnM6CisJICAgIG1zZyA9IG1zZyArIHNlY3Rpb24uY29udGVudCArICIgIgorCWlmIHF1aWV0ID09IDA6CisJICAgIHByaW50ICJUZXN0cyBmb3Igc2VjdGlvbiAlcyIgJSAobXNnKQorICAgIGZvciB0ZXN0IGluIG5vZGUueHBhdGhFdmFsKCd0ZXN0Q2FzZScpOgorICAgICAgICBoYW5kbGVfdGVzdENhc2UodGVzdCkKKyAgICBmb3IgdGVzdCBpbiBub2RlLnhwYXRoRXZhbCgndGVzdFN1aXRlJyk6CisgICAgICAgIGhhbmRsZV90ZXN0U3VpdGUodGVzdCwgbGV2ZWwgKyAxKQorCSAgICAgICAgCisKKyAgICBpZiBsZXZlbCA+PSAxIGFuZCBzZWN0aW9ucyAhPSBbXToKKyAgICAgICAgbXNnID0gIiIKKyAgICAgICAgZm9yIHNlY3Rpb24gaW4gc2VjdGlvbnM6CisJICAgIG1zZyA9IG1zZyArIHNlY3Rpb24uY29udGVudCArICIgIgorICAgICAgICBwcmludCAiUmVzdWx0IG9mIHRlc3RzIGZvciBzZWN0aW9uICVzIiAlIChtc2cpCisgICAgICAgIGlmIG5iX3NjaGVtYXNfdGVzdHMgIT0gb2xkX3NjaGVtYXNfdGVzdHM6CisJICAgIHByaW50ICJmb3VuZCAlZCB0ZXN0IHNjaGVtYXM6ICVkIHN1Y2Nlc3MgJWQgZmFpbHVyZXMiICUgKAorCQkgIG5iX3NjaGVtYXNfdGVzdHMgLSBvbGRfc2NoZW1hc190ZXN0cywKKwkJICBuYl9zY2hlbWFzX3N1Y2Nlc3MgLSBvbGRfc2NoZW1hc19zdWNjZXNzLAorCQkgIG5iX3NjaGVtYXNfZmFpbGVkIC0gb2xkX3NjaGVtYXNfZmFpbGVkKQorCWlmIG5iX2luc3RhbmNlc190ZXN0cyAhPSBvbGRfaW5zdGFuY2VzX3Rlc3RzOgorCSAgICBwcmludCAiZm91bmQgJWQgdGVzdCBpbnN0YW5jZXM6ICVkIHN1Y2Nlc3MgJWQgZmFpbHVyZXMiICUgKAorCQkgIG5iX2luc3RhbmNlc190ZXN0cyAtIG9sZF9pbnN0YW5jZXNfdGVzdHMsCisJCSAgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MgLSBvbGRfaW5zdGFuY2VzX3N1Y2Nlc3MsCisJCSAgbmJfaW5zdGFuY2VzX2ZhaWxlZCAtIG9sZF9pbnN0YW5jZXNfZmFpbGVkKQorIworIyBQYXJzZSB0aGUgY29uZiBmaWxlCisjCitsaWJ4bWwyLnN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQoMSk7Cit0ZXN0c3VpdGUgPSBsaWJ4bWwyLnBhcnNlRmlsZShDT05GKQorCisjCisjIEVycm9yIGFuZCB3YXJubmcgY2FsbGJhY2tzCisjCitkZWYgY2FsbGJhY2soY3R4LCBzdHIpOgorICAgIGdsb2JhbCBsb2cKKyAgICBsb2cud3JpdGUoIiVzJXMiICUgKGN0eCwgc3RyKSkKKworbGlieG1sMi5yZWdpc3RlckVycm9ySGFuZGxlcihjYWxsYmFjaywgIiIpCisKK2xpYnhtbDIuc2V0RW50aXR5TG9hZGVyKHJlc29sdmVyKQorcm9vdCA9IHRlc3RzdWl0ZS5nZXRSb290RWxlbWVudCgpCitpZiByb290Lm5hbWUgIT0gJ3Rlc3RTdWl0ZSc6CisgICAgcHJpbnQgIiVzIGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIHRlc3RTdWl0ZSBlbGVtZW50LCBhYm9ydGluZyIgJSAoQ09ORikKKyAgICBzeXMuZXhpdCgxKQoraWYgcXVpZXQgPT0gMDoKKyAgICBwcmludCAiUnVubmluZyBSZWxheCBORyB0ZXN0c3VpdGUiCitoYW5kbGVfdGVzdFN1aXRlKHJvb3QpCisKK2lmIHF1aWV0ID09IDA6CisgICAgcHJpbnQgIlxuVE9UQUw6XG4iCitpZiBxdWlldCA9PSAwIG9yIG5iX3NjaGVtYXNfZmFpbGVkICE9IDA6CisgICAgcHJpbnQgImZvdW5kICVkIHRlc3Qgc2NoZW1hczogJWQgc3VjY2VzcyAlZCBmYWlsdXJlcyIgJSAoCisgICAgICBuYl9zY2hlbWFzX3Rlc3RzLCBuYl9zY2hlbWFzX3N1Y2Nlc3MsIG5iX3NjaGVtYXNfZmFpbGVkKQoraWYgcXVpZXQgPT0gMCBvciBuYl9pbnN0YW5jZXNfZmFpbGVkICE9IDA6CisgICAgcHJpbnQgImZvdW5kICVkIHRlc3QgaW5zdGFuY2VzOiAlZCBzdWNjZXNzICVkIGZhaWx1cmVzIiAlICgKKyAgICAgIG5iX2luc3RhbmNlc190ZXN0cywgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MsIG5iX2luc3RhbmNlc19mYWlsZWQpCisKKwordGVzdHN1aXRlLmZyZWVEb2MoKQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5yZWxheE5HQ2xlYW51cFR5cGVzKCkKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgaWYgcXVpZXQgPT0gMDoKKwlwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9jaGVjay14aW5jbHVkZS10ZXN0LXN1aXRlLnB5IGIvbGlieG1sMi0yLjcuNy9jaGVjay14aW5jbHVkZS10ZXN0LXN1aXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0NzAwMTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NoZWNrLXhpbmNsdWRlLXRlc3Qtc3VpdGUucHkKQEAgLTAsMCArMSwyMjEgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQoraW1wb3J0IG9zCitpbXBvcnQgc3RyaW5nCitzeXMucGF0aC5pbnNlcnQoMCwgInB5dGhvbiIpCitpbXBvcnQgbGlieG1sMgorCisjCisjIHRoZSB0ZXN0c3VpdGUgZGVzY3JpcHRpb24KKyMKK0RJUj0ieGluY2x1ZGUtdGVzdC1zdWl0ZSIKK0NPTkY9InRlc3RkZXNjci54bWwiCitMT0c9ImNoZWNrLXhpbmNsdWRlLXRlc3Qtc3VpdGUubG9nIgorCitsb2cgPSBvcGVuKExPRywgInciKQorCitvcy5jaGRpcihESVIpCisKK3Rlc3RfbnIgPSAwCit0ZXN0X3N1Y2NlZWQgPSAwCit0ZXN0X2ZhaWxlZCA9IDAKK3Rlc3RfZXJyb3IgPSAwCisjCisjIEVycm9yIGFuZCB3YXJuaW5nIGhhbmRsZXJzCisjCitlcnJvcl9uciA9IDAKK2Vycm9yX21zZyA9ICcnCisKK2RlZiBlcnJvckhhbmRsZXIoY3R4LCBzdHIpOgorICAgIGdsb2JhbCBlcnJvcl9ucgorICAgIGdsb2JhbCBlcnJvcl9tc2cKKworICAgIGlmIHN0cmluZy5maW5kKHN0ciwgImVycm9yOiIpID49IDA6CisJZXJyb3JfbnIgPSBlcnJvcl9uciArIDEKKyAgICBpZiBsZW4oZXJyb3JfbXNnKSA8IDMwMDoKKyAgICAgICAgaWYgbGVuKGVycm9yX21zZykgPT0gMCBvciBlcnJvcl9tc2dbLTFdID09ICdcbic6CisJICAgIGVycm9yX21zZyA9IGVycm9yX21zZyArICIgICA+PiIgKyBzdHIKKwllbHNlOgorCSAgICBlcnJvcl9tc2cgPSBlcnJvcl9tc2cgKyBzdHIKKworbGlieG1sMi5yZWdpc3RlckVycm9ySGFuZGxlcihlcnJvckhhbmRsZXIsIE5vbmUpCisKK2RlZiB0ZXN0WEluY2x1ZGUoZmlsZW5hbWUsIGlkKToKKyAgICBnbG9iYWwgZXJyb3JfbnIKKyAgICBnbG9iYWwgZXJyb3JfbXNnCisgICAgZ2xvYmFsIGxvZworCisgICAgZXJyb3JfbnIgPSAwCisgICAgZXJyb3JfbXNnID0gJycKKworICAgIHByaW50ICJ0ZXN0WEluY2x1ZGUoJXMsICVzKSIgJSAoZmlsZW5hbWUsIGlkKQorICAgIHJldHVybiAxCisKK2RlZiBydW5UZXN0KHRlc3QsIGJhc2VkaXIpOgorICAgIGdsb2JhbCB0ZXN0X25yCisgICAgZ2xvYmFsIHRlc3RfZmFpbGVkCisgICAgZ2xvYmFsIHRlc3RfZXJyb3IKKyAgICBnbG9iYWwgdGVzdF9zdWNjZWVkCisgICAgZ2xvYmFsIGVycm9yX21zZworICAgIGdsb2JhbCBsb2cKKworICAgIGZhdGFsX2Vycm9yID0gMAorICAgIHVyaSA9IHRlc3QucHJvcCgnaHJlZicpCisgICAgaWQgPSB0ZXN0LnByb3AoJ2lkJykKKyAgICB0eXBlID0gdGVzdC5wcm9wKCd0eXBlJykKKyAgICBpZiB1cmkgPT0gTm9uZToKKyAgICAgICAgcHJpbnQgIlRlc3Qgd2l0aG91dCBJRDoiLCB1cmkKKwlyZXR1cm4gLTEKKyAgICBpZiBpZCA9PSBOb25lOgorICAgICAgICBwcmludCAiVGVzdCB3aXRob3V0IFVSSToiLCBpZAorCXJldHVybiAtMQorICAgIGlmIHR5cGUgPT0gTm9uZToKKyAgICAgICAgcHJpbnQgIlRlc3Qgd2l0aG91dCBVUkk6IiwgaWQKKwlyZXR1cm4gLTEKKyAgICBpZiBiYXNlZGlyICE9IE5vbmU6CisJVVJJID0gYmFzZWRpciArICIvIiArIHVyaQorICAgIGVsc2U6CisgICAgICAgIFVSSSA9IHVyaQorICAgIGlmIG9zLmFjY2VzcyhVUkksIG9zLlJfT0spID09IDA6CisgICAgICAgIHByaW50ICJUZXN0ICVzIG1pc3Npbmc6IGJhc2UgJXMgdXJpICVzIiAlIChVUkksIGJhc2VkaXIsIHVyaSkKKwlyZXR1cm4gLTEKKworICAgIGV4cGVjdGVkID0gTm9uZQorICAgIG91dHB1dGZpbGUgPSBOb25lCisgICAgZGlmZiA9IE5vbmUKKyAgICBpZiB0eXBlICE9ICdlcnJvcic6CisJb3V0cHV0ID0gdGVzdC54cGF0aEV2YWwoJ3N0cmluZyhvdXRwdXQpJykKKwlpZiBvdXRwdXQgPT0gJ05vIG91dHB1dCBmaWxlLic6CisJICAgIG91dHB1dCA9IE5vbmUKKwlpZiBvdXRwdXQgPT0gJyc6CisJICAgIG91dHB1dCA9IE5vbmUKKwlpZiBvdXRwdXQgIT0gTm9uZToKKwkgICAgaWYgYmFzZWRpciAhPSBOb25lOgorCQlvdXRwdXQgPSBiYXNlZGlyICsgIi8iICsgb3V0cHV0CisJICAgIGlmIG9zLmFjY2VzcyhvdXRwdXQsIG9zLlJfT0spID09IDA6CisJCXByaW50ICJSZXN1bHQgZm9yICVzIG1pc3Npbmc6ICVzIiAlIChpZCwgb3V0cHV0KQorCQlvdXRwdXQgPSBOb25lCisJICAgIGVsc2U6CisJCXRyeToKKwkJICAgIGYgPSBvcGVuKG91dHB1dCkKKwkJICAgIGV4cGVjdGVkID0gZi5yZWFkKCkKKwkJICAgIG91dHB1dGZpbGUgPSBvdXRwdXQKKwkJZXhjZXB0OgorCQkgICAgcHJpbnQgIlJlc3VsdCBmb3IgJXMgdW5yZWFkYWJsZTogJXMiICUgKGlkLCBvdXRwdXQpCisKKyAgICB0cnk6CisgICAgICAgICMgcHJpbnQgInRlc3RpbmcgJXMiICUgKFVSSSkKKwlkb2MgPSBsaWJ4bWwyLnBhcnNlRmlsZShVUkkpCisgICAgZXhjZXB0OgorICAgICAgICBkb2MgPSBOb25lCisgICAgaWYgZG9jICE9IE5vbmU6CisgICAgICAgIHJlcyA9IGRvYy54aW5jbHVkZVByb2Nlc3MoKQorCWlmIHJlcyA+PSAwIGFuZCBleHBlY3RlZCAhPSBOb25lOgorCSAgICByZXN1bHQgPSBkb2Muc2VyaWFsaXplKCkKKwkgICAgaWYgcmVzdWx0ICE9IGV4cGVjdGVkOgorCSAgICAgICAgcHJpbnQgIlJlc3VsdCBmb3IgJXMgZGlmZmVycyIgJSAoaWQpCisJCW9wZW4oInhpbmNsdWRlLnJlcyIsICJ3Iikud3JpdGUocmVzdWx0KQorCQlkaWZmID0gb3MucG9wZW4oImRpZmYgJXMgeGluY2x1ZGUucmVzIiAlIG91dHB1dGZpbGUpLnJlYWQoKQorCisJZG9jLmZyZWVEb2MoKQorICAgIGVsc2U6CisgICAgICAgIHByaW50ICJGYWlsZWQgdG8gcGFyc2UgJXMiICUgKFVSSSkKKwlyZXMgPSAtMQorCisgICAgCisKKyAgICB0ZXN0X25yID0gdGVzdF9uciArIDEKKyAgICBpZiB0eXBlID09ICdzdWNjZXNzJzoKKwlpZiByZXMgPiAwOgorCSAgICB0ZXN0X3N1Y2NlZWQgPSB0ZXN0X3N1Y2NlZWQgKyAxCisJZWxpZiByZXMgPT0gMDoKKwkgICAgdGVzdF9mYWlsZWQgPSB0ZXN0X2ZhaWxlZCArIDEKKwkgICAgcHJpbnQgIlRlc3QgJXM6IG5vIHN1YnN0aXR1dGlvbiBkb25lID8/PyIgJSAoaWQpCisJZWxpZiByZXMgPCAwOgorCSAgICB0ZXN0X2Vycm9yID0gdGVzdF9lcnJvciArIDEKKwkgICAgcHJpbnQgIlRlc3QgJXM6IGZhaWxlZCB2YWxpZCBYSW5jbHVkZSBwcm9jZXNzaW5nIiAlIChpZCkKKyAgICBlbGlmIHR5cGUgPT0gJ2Vycm9yJzoKKwlpZiByZXMgPiAwOgorCSAgICB0ZXN0X2Vycm9yID0gdGVzdF9lcnJvciArIDEKKwkgICAgcHJpbnQgIlRlc3QgJXM6IGZhaWxlZCB0byBkZXRlY3QgaW52YWxpZCBYSW5jbHVkZSBwcm9jZXNzaW5nIiAlIChpZCkKKwllbGlmIHJlcyA9PSAwOgorCSAgICB0ZXN0X2ZhaWxlZCA9IHRlc3RfZmFpbGVkICsgMQorCSAgICBwcmludCAiVGVzdCAlczogSW52YWxpZCBidXQgbm8gc3Vic3RpdHV0aW9uIGRvbmUiICUgKGlkKQorCWVsaWYgcmVzIDwgMDoKKwkgICAgdGVzdF9zdWNjZWVkID0gdGVzdF9zdWNjZWVkICsgMQorICAgIGVsaWYgdHlwZSA9PSAnb3B0aW9uYWwnOgorCWlmIHJlcyA+IDA6CisJICAgIHRlc3Rfc3VjY2VlZCA9IHRlc3Rfc3VjY2VlZCArIDEKKwllbHNlOgorCSAgICBwcmludCAiVGVzdCAlczogZmFpbGVkIG9wdGlvbmFsIHRlc3QiICUgKGlkKQorCisgICAgIyBMb2cgdGhlIG9udGV4dAorICAgIGlmIHJlcyAhPSAxOgorCWxvZy53cml0ZSgiVGVzdCBJRCAlc1xuIiAlIChpZCkpCisJbG9nLndyaXRlKCIgICBGaWxlOiAlc1xuIiAlIChVUkkpKQorCWNvbnRlbnQgPSBzdHJpbmcuc3RyaXAodGVzdC5jb250ZW50KQorCXdoaWxlIGNvbnRlbnRbLTFdID09ICdcbic6CisJICAgIGNvbnRlbnQgPSBjb250ZW50WzA6LTFdCisJbG9nLndyaXRlKCIgICAlczolc1xuXG4iICUgKHR5cGUsIGNvbnRlbnQpKQorCWlmIGVycm9yX21zZyAhPSAnJzoKKwkgICAgbG9nLndyaXRlKCIgICAtLS0tXG4lcyAgIC0tLS1cbiIgJSAoZXJyb3JfbXNnKSkKKwkgICAgZXJyb3JfbXNnID0gJycKKwlsb2cud3JpdGUoIlxuIikKKyAgICBpZiBkaWZmICE9IE5vbmU6CisgICAgICAgIGxvZy53cml0ZSgiZGlmZiBmcm9tIHRlc3QgJXM6XG4iICUoaWQpKQorCWxvZy53cml0ZSgiICAgLS0tLS0tLS0tLS1cbiVzXG4gICAtLS0tLS0tLS0tLVxuIiAlIChkaWZmKSk7CisKKyAgICByZXR1cm4gMAorCSAgICAKKworZGVmIHJ1blRlc3RDYXNlcyhjYXNlKToKKyAgICBjcmVhdG9yID0gY2FzZS5wcm9wKCdjcmVhdG9yJykKKyAgICBpZiBjcmVhdG9yICE9IE5vbmU6CisJcHJpbnQgIj0+IiwgY3JlYXRvcgorICAgIGJhc2UgPSBjYXNlLmdldEJhc2UoTm9uZSkKKyAgICBiYXNlZGlyID0gY2FzZS5wcm9wKCdiYXNlZGlyJykKKyAgICBpZiBiYXNlZGlyICE9IE5vbmU6CisJYmFzZSA9IGxpYnhtbDIuYnVpbGRVUkkoYmFzZWRpciwgYmFzZSkKKyAgICB0ZXN0ID0gY2FzZS5jaGlsZHJlbgorICAgIHdoaWxlIHRlc3QgIT0gTm9uZToKKyAgICAgICAgaWYgdGVzdC5uYW1lID09ICd0ZXN0Y2FzZSc6CisJICAgIHJ1blRlc3QodGVzdCwgYmFzZSkKKwlpZiB0ZXN0Lm5hbWUgPT0gJ3Rlc3RjYXNlcyc6CisJICAgIHJ1blRlc3RDYXNlcyh0ZXN0KQorICAgICAgICB0ZXN0ID0gdGVzdC5uZXh0CisgICAgICAgIAorY29uZiA9IGxpYnhtbDIucGFyc2VGaWxlKENPTkYpCitpZiBjb25mID09IE5vbmU6CisgICAgcHJpbnQgIlVuYWJsZSB0byBsb2FkICVzIiAlIENPTkYKKyAgICBzeXMuZXhpdCgxKQorCit0ZXN0c3VpdGUgPSBjb25mLmdldFJvb3RFbGVtZW50KCkKK2lmIHRlc3RzdWl0ZS5uYW1lICE9ICd0ZXN0c3VpdGUnOgorICAgIHByaW50ICJFeHBlY3RpbmcgVEVTVFNVSVRFIHJvb3QgZWxlbWVudDogYWJvcnRpbmciCisgICAgc3lzLmV4aXQoMSkKKworcHJvZmlsZSA9IHRlc3RzdWl0ZS5wcm9wKCdQUk9GSUxFJykKK2lmIHByb2ZpbGUgIT0gTm9uZToKKyAgICBwcmludCBwcm9maWxlCisKK3N0YXJ0ID0gdGltZS50aW1lKCkKKworY2FzZSA9IHRlc3RzdWl0ZS5jaGlsZHJlbgord2hpbGUgY2FzZSAhPSBOb25lOgorICAgIGlmIGNhc2UubmFtZSA9PSAndGVzdGNhc2VzJzoKKwlvbGRfdGVzdF9uciA9IHRlc3RfbnIKKwlvbGRfdGVzdF9zdWNjZWVkID0gdGVzdF9zdWNjZWVkCisJb2xkX3Rlc3RfZmFpbGVkID0gdGVzdF9mYWlsZWQKKwlvbGRfdGVzdF9lcnJvciA9IHRlc3RfZXJyb3IKKyAgICAgICAgcnVuVGVzdENhc2VzKGNhc2UpCisJcHJpbnQgIiAgIFJhbiAlZCB0ZXN0czogJWQgc3VjZWVkZWQsICVkIGZhaWxlZCBhbmQgJWQgZ2VuZXJhdGVkIGFuIGVycm9yIiAlICgKKwkgICAgICAgdGVzdF9uciAtIG9sZF90ZXN0X25yLCB0ZXN0X3N1Y2NlZWQgLSBvbGRfdGVzdF9zdWNjZWVkLAorCSAgICAgICB0ZXN0X2ZhaWxlZCAtIG9sZF90ZXN0X2ZhaWxlZCwgdGVzdF9lcnJvciAtIG9sZF90ZXN0X2Vycm9yKQorICAgIGNhc2UgPSBjYXNlLm5leHQKKworY29uZi5mcmVlRG9jKCkKK2xvZy5jbG9zZSgpCisKK3ByaW50ICJSYW4gJWQgdGVzdHM6ICVkIHN1Y2VlZGVkLCAlZCBmYWlsZWQgYW5kICVkIGdlbmVyYXRlZCBhbiBlcnJvciBpbiAlLjJmIHMuIiAlICgKKyAgICAgIHRlc3RfbnIsIHRlc3Rfc3VjY2VlZCwgdGVzdF9mYWlsZWQsIHRlc3RfZXJyb3IsIHRpbWUudGltZSgpIC0gc3RhcnQpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NoZWNrLXhtbC10ZXN0LXN1aXRlLnB5IGIvbGlieG1sMi0yLjcuNy9jaGVjay14bWwtdGVzdC1zdWl0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZGUwN2IxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9jaGVjay14bWwtdGVzdC1zdWl0ZS5weQpAQCAtMCwwICsxLDQwOSBAQAorIyEvdXNyL2Jpbi9weXRob24KK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCitpbXBvcnQgb3MKK2ltcG9ydCBzdHJpbmcKK3N5cy5wYXRoLmluc2VydCgwLCAicHl0aG9uIikKK2ltcG9ydCBsaWJ4bWwyCisKK3Rlc3RfbnIgPSAwCit0ZXN0X3N1Y2NlZWQgPSAwCit0ZXN0X2ZhaWxlZCA9IDAKK3Rlc3RfZXJyb3IgPSAwCisKKyMKKyMgdGhlIHRlc3RzdWl0ZSBkZXNjcmlwdGlvbgorIworQ09ORj0ieG1sLXRlc3Qtc3VpdGUveG1sY29uZi94bWxjb25mLnhtbCIKK0xPRz0iY2hlY2steG1sLXRlc3Qtc3VpdGUubG9nIgorCitsb2cgPSBvcGVuKExPRywgInciKQorCisjCisjIEVycm9yIGFuZCB3YXJuaW5nIGhhbmRsZXJzCisjCitlcnJvcl9uciA9IDAKK2Vycm9yX21zZyA9ICcnCitkZWYgZXJyb3JIYW5kbGVyKGN0eCwgc3RyKToKKyAgICBnbG9iYWwgZXJyb3JfbnIKKyAgICBnbG9iYWwgZXJyb3JfbXNnCisKKyAgICBlcnJvcl9uciA9IGVycm9yX25yICsgMQorICAgIGlmIGxlbihlcnJvcl9tc2cpIDwgMzAwOgorICAgICAgICBpZiBsZW4oZXJyb3JfbXNnKSA9PSAwIG9yIGVycm9yX21zZ1stMV0gPT0gJ1xuJzoKKwkgICAgZXJyb3JfbXNnID0gZXJyb3JfbXNnICsgIiAgID4+IiArIHN0cgorCWVsc2U6CisJICAgIGVycm9yX21zZyA9IGVycm9yX21zZyArIHN0cgorCitsaWJ4bWwyLnJlZ2lzdGVyRXJyb3JIYW5kbGVyKGVycm9ySGFuZGxlciwgTm9uZSkKKworI3dhcm5pbmdfbnIgPSAwCisjd2FybmluZyA9ICcnCisjZGVmIHdhcm5pbmdIYW5kbGVyKGN0eCwgc3RyKToKKyMgICAgZ2xvYmFsIHdhcm5pbmdfbnIKKyMgICAgZ2xvYmFsIHdhcm5pbmcKKyMKKyMgICAgd2FybmluZ19uciA9IHdhcm5pbmdfbnIgKyAxCisjICAgIHdhcm5pbmcgPSB3YXJuaW5nICsgc3RyCisjCisjbGlieG1sMi5yZWdpc3Rlcldhcm5pbmdIYW5kbGVyKHdhcm5pbmdIYW5kbGVyLCBOb25lKQorCisjCisjIFVzZWQgdG8gbG9hZCB0aGUgWE1MIHRlc3RzdWl0ZSBkZXNjcmlwdGlvbgorIworZGVmIGxvYWROb2VudERvYyhmaWxlbmFtZSk6CisgICAgY3R4dCA9IGxpYnhtbDIuY3JlYXRlRmlsZVBhcnNlckN0eHQoZmlsZW5hbWUpCisgICAgaWYgY3R4dCA9PSBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIGN0eHQucmVwbGFjZUVudGl0aWVzKDEpCisgICAgY3R4dC5wYXJzZURvY3VtZW50KCkKKyAgICB0cnk6CisJZG9jID0gY3R4dC5kb2MoKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorICAgIGlmIGN0eHQud2VsbEZvcm1lZCgpICE9IDE6CisgICAgICAgIGRvYy5mcmVlRG9jKCkKKwlyZXR1cm4gTm9uZQorICAgIHJldHVybiBkb2MKKworIworIyBUaGUgY29uZm9ybWFuY2UgdGVzdGluZyByb3V0aW5lcworIworCitkZWYgdGVzdE5vdFdmKGZpbGVuYW1lLCBpZCk6CisgICAgZ2xvYmFsIGVycm9yX25yCisgICAgZ2xvYmFsIGVycm9yX21zZworICAgIGdsb2JhbCBsb2cKKworICAgIGVycm9yX25yID0gMAorICAgIGVycm9yX21zZyA9ICcnCisKKyAgICBjdHh0ID0gbGlieG1sMi5jcmVhdGVGaWxlUGFyc2VyQ3R4dChmaWxlbmFtZSkKKyAgICBpZiBjdHh0ID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIHJldCA9IGN0eHQucGFyc2VEb2N1bWVudCgpCisKKyAgICB0cnk6CisJZG9jID0gY3R4dC5kb2MoKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorICAgIGlmIGRvYyAhPSBOb25lOgorCWRvYy5mcmVlRG9jKCkKKyAgICBpZiByZXQgPT0gMCBvciBjdHh0LndlbGxGb3JtZWQoKSAhPSAwOgorICAgICAgICBwcmludCAiJXM6IGVycm9yOiBXZWxsIEZvcm1lZG5lc3MgZXJyb3Igbm90IGRldGVjdGVkIiAlIChpZCkKKwlsb2cud3JpdGUoIiVzOiBlcnJvcjogV2VsbCBGb3JtZWRuZXNzIGVycm9yIG5vdCBkZXRlY3RlZFxuIiAlIChpZCkpCisJcmV0dXJuIDAKKyAgICByZXR1cm4gMQorCitkZWYgdGVzdE5vdFdmRW50KGZpbGVuYW1lLCBpZCk6CisgICAgZ2xvYmFsIGVycm9yX25yCisgICAgZ2xvYmFsIGVycm9yX21zZworICAgIGdsb2JhbCBsb2cKKworICAgIGVycm9yX25yID0gMAorICAgIGVycm9yX21zZyA9ICcnCisKKyAgICBjdHh0ID0gbGlieG1sMi5jcmVhdGVGaWxlUGFyc2VyQ3R4dChmaWxlbmFtZSkKKyAgICBpZiBjdHh0ID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGN0eHQucmVwbGFjZUVudGl0aWVzKDEpCisgICAgcmV0ID0gY3R4dC5wYXJzZURvY3VtZW50KCkKKworICAgIHRyeToKKwlkb2MgPSBjdHh0LmRvYygpCisgICAgZXhjZXB0OgorICAgICAgICBkb2MgPSBOb25lCisgICAgaWYgZG9jICE9IE5vbmU6CisJZG9jLmZyZWVEb2MoKQorICAgIGlmIHJldCA9PSAwIG9yIGN0eHQud2VsbEZvcm1lZCgpICE9IDA6CisgICAgICAgIHByaW50ICIlczogZXJyb3I6IFdlbGwgRm9ybWVkbmVzcyBlcnJvciBub3QgZGV0ZWN0ZWQiICUgKGlkKQorCWxvZy53cml0ZSgiJXM6IGVycm9yOiBXZWxsIEZvcm1lZG5lc3MgZXJyb3Igbm90IGRldGVjdGVkXG4iICUgKGlkKSkKKwlyZXR1cm4gMAorICAgIHJldHVybiAxCisKK2RlZiB0ZXN0Tm90V2ZFbnREdGQoZmlsZW5hbWUsIGlkKToKKyAgICBnbG9iYWwgZXJyb3JfbnIKKyAgICBnbG9iYWwgZXJyb3JfbXNnCisgICAgZ2xvYmFsIGxvZworCisgICAgZXJyb3JfbnIgPSAwCisgICAgZXJyb3JfbXNnID0gJycKKworICAgIGN0eHQgPSBsaWJ4bWwyLmNyZWF0ZUZpbGVQYXJzZXJDdHh0KGZpbGVuYW1lKQorICAgIGlmIGN0eHQgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgY3R4dC5yZXBsYWNlRW50aXRpZXMoMSkKKyAgICBjdHh0LmxvYWRTdWJzZXQoMSkKKyAgICByZXQgPSBjdHh0LnBhcnNlRG9jdW1lbnQoKQorCisgICAgdHJ5OgorCWRvYyA9IGN0eHQuZG9jKCkKKyAgICBleGNlcHQ6CisgICAgICAgIGRvYyA9IE5vbmUKKyAgICBpZiBkb2MgIT0gTm9uZToKKwlkb2MuZnJlZURvYygpCisgICAgaWYgcmV0ID09IDAgb3IgY3R4dC53ZWxsRm9ybWVkKCkgIT0gMDoKKyAgICAgICAgcHJpbnQgIiVzOiBlcnJvcjogV2VsbCBGb3JtZWRuZXNzIGVycm9yIG5vdCBkZXRlY3RlZCIgJSAoaWQpCisJbG9nLndyaXRlKCIlczogZXJyb3I6IFdlbGwgRm9ybWVkbmVzcyBlcnJvciBub3QgZGV0ZWN0ZWRcbiIgJSAoaWQpKQorCXJldHVybiAwCisgICAgcmV0dXJuIDEKKworZGVmIHRlc3RXZkVudER0ZChmaWxlbmFtZSwgaWQpOgorICAgIGdsb2JhbCBlcnJvcl9ucgorICAgIGdsb2JhbCBlcnJvcl9tc2cKKyAgICBnbG9iYWwgbG9nCisKKyAgICBlcnJvcl9uciA9IDAKKyAgICBlcnJvcl9tc2cgPSAnJworCisgICAgY3R4dCA9IGxpYnhtbDIuY3JlYXRlRmlsZVBhcnNlckN0eHQoZmlsZW5hbWUpCisgICAgaWYgY3R4dCA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBjdHh0LnJlcGxhY2VFbnRpdGllcygxKQorICAgIGN0eHQubG9hZFN1YnNldCgxKQorICAgIHJldCA9IGN0eHQucGFyc2VEb2N1bWVudCgpCisKKyAgICB0cnk6CisJZG9jID0gY3R4dC5kb2MoKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorICAgIGlmIGRvYyA9PSBOb25lIG9yIHJldCAhPSAwIG9yIGN0eHQud2VsbEZvcm1lZCgpID09IDA6CisgICAgICAgIHByaW50ICIlczogZXJyb3I6IHdyb25nbHkgZmFpbGVkIHRvIHBhcnNlIHRoZSBkb2N1bWVudCIgJSAoaWQpCisJbG9nLndyaXRlKCIlczogZXJyb3I6IHdyb25nbHkgZmFpbGVkIHRvIHBhcnNlIHRoZSBkb2N1bWVudFxuIiAlIChpZCkpCisJaWYgZG9jICE9IE5vbmU6CisJICAgIGRvYy5mcmVlRG9jKCkKKwlyZXR1cm4gMAorICAgIGlmIGVycm9yX25yICE9IDA6CisgICAgICAgIHByaW50ICIlczogd2FybmluZzogV0YgZG9jdW1lbnQgZ2VuZXJhdGVkIGFuIGVycm9yIG1zZyIgJSAoaWQpCisJbG9nLndyaXRlKCIlczogZXJyb3I6IFdGIGRvY3VtZW50IGdlbmVyYXRlZCBhbiBlcnJvciBtc2dcbiIgJSAoaWQpKQorCWRvYy5mcmVlRG9jKCkKKwlyZXR1cm4gMgorICAgIGRvYy5mcmVlRG9jKCkKKyAgICByZXR1cm4gMQorCitkZWYgdGVzdEVycm9yKGZpbGVuYW1lLCBpZCk6CisgICAgZ2xvYmFsIGVycm9yX25yCisgICAgZ2xvYmFsIGVycm9yX21zZworICAgIGdsb2JhbCBsb2cKKworICAgIGVycm9yX25yID0gMAorICAgIGVycm9yX21zZyA9ICcnCisKKyAgICBjdHh0ID0gbGlieG1sMi5jcmVhdGVGaWxlUGFyc2VyQ3R4dChmaWxlbmFtZSkKKyAgICBpZiBjdHh0ID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGN0eHQucmVwbGFjZUVudGl0aWVzKDEpCisgICAgY3R4dC5sb2FkU3Vic2V0KDEpCisgICAgcmV0ID0gY3R4dC5wYXJzZURvY3VtZW50KCkKKworICAgIHRyeToKKwlkb2MgPSBjdHh0LmRvYygpCisgICAgZXhjZXB0OgorICAgICAgICBkb2MgPSBOb25lCisgICAgaWYgZG9jICE9IE5vbmU6CisJZG9jLmZyZWVEb2MoKQorICAgIGlmIGN0eHQud2VsbEZvcm1lZCgpID09IDA6CisgICAgICAgIHByaW50ICIlczogd2FybmluZzogZmFpbGVkIHRvIHBhcnNlIHRoZSBkb2N1bWVudCBidXQgYWNjZXB0ZWQiICUgKGlkKQorCWxvZy53cml0ZSgiJXM6IHdhcm5pbmc6IGZhaWxlZCB0byBwYXJzZSB0aGUgZG9jdW1lbnQgYnV0IGFjY2VwdGVcbiIgJSAoaWQpKQorCXJldHVybiAyCisgICAgaWYgZXJyb3JfbnIgIT0gMDoKKyAgICAgICAgcHJpbnQgIiVzOiB3YXJuaW5nOiBXRiBkb2N1bWVudCBnZW5lcmF0ZWQgYW4gZXJyb3IgbXNnIiAlIChpZCkKKwlsb2cud3JpdGUoIiVzOiBlcnJvcjogV0YgZG9jdW1lbnQgZ2VuZXJhdGVkIGFuIGVycm9yIG1zZ1xuIiAlIChpZCkpCisJcmV0dXJuIDIKKyAgICByZXR1cm4gMQorCitkZWYgdGVzdEludmFsaWQoZmlsZW5hbWUsIGlkKToKKyAgICBnbG9iYWwgZXJyb3JfbnIKKyAgICBnbG9iYWwgZXJyb3JfbXNnCisgICAgZ2xvYmFsIGxvZworCisgICAgZXJyb3JfbnIgPSAwCisgICAgZXJyb3JfbXNnID0gJycKKworICAgIGN0eHQgPSBsaWJ4bWwyLmNyZWF0ZUZpbGVQYXJzZXJDdHh0KGZpbGVuYW1lKQorICAgIGlmIGN0eHQgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgY3R4dC52YWxpZGF0ZSgxKQorICAgIHJldCA9IGN0eHQucGFyc2VEb2N1bWVudCgpCisKKyAgICB0cnk6CisJZG9jID0gY3R4dC5kb2MoKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorICAgIHZhbGlkID0gY3R4dC5pc1ZhbGlkKCkKKyAgICBpZiBkb2MgPT0gTm9uZToKKyAgICAgICAgcHJpbnQgIiVzOiBlcnJvcjogd3JvbmdseSBmYWlsZWQgdG8gcGFyc2UgdGhlIGRvY3VtZW50IiAlIChpZCkKKwlsb2cud3JpdGUoIiVzOiBlcnJvcjogd3JvbmdseSBmYWlsZWQgdG8gcGFyc2UgdGhlIGRvY3VtZW50XG4iICUgKGlkKSkKKwlyZXR1cm4gMAorICAgIGlmIHZhbGlkID09IDE6CisgICAgICAgIHByaW50ICIlczogZXJyb3I6IFZhbGlkaXR5IGVycm9yIG5vdCBkZXRlY3RlZCIgJSAoaWQpCisJbG9nLndyaXRlKCIlczogZXJyb3I6IFZhbGlkaXR5IGVycm9yIG5vdCBkZXRlY3RlZFxuIiAlIChpZCkpCisJZG9jLmZyZWVEb2MoKQorCXJldHVybiAwCisgICAgaWYgZXJyb3JfbnIgPT0gMDoKKyAgICAgICAgcHJpbnQgIiVzOiB3YXJuaW5nOiBWYWxpZGl0eSBlcnJvciBub3QgcmVwb3J0ZWQiICUgKGlkKQorCWxvZy53cml0ZSgiJXM6IHdhcm5pbmc6IFZhbGlkaXR5IGVycm9yIG5vdCByZXBvcnRlZFxuIiAlIChpZCkpCisJZG9jLmZyZWVEb2MoKQorCXJldHVybiAyCisgICAgICAgIAorICAgIGRvYy5mcmVlRG9jKCkKKyAgICByZXR1cm4gMQorCitkZWYgdGVzdFZhbGlkKGZpbGVuYW1lLCBpZCk6CisgICAgZ2xvYmFsIGVycm9yX25yCisgICAgZ2xvYmFsIGVycm9yX21zZworCisgICAgZXJyb3JfbnIgPSAwCisgICAgZXJyb3JfbXNnID0gJycKKworICAgIGN0eHQgPSBsaWJ4bWwyLmNyZWF0ZUZpbGVQYXJzZXJDdHh0KGZpbGVuYW1lKQorICAgIGlmIGN0eHQgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgY3R4dC52YWxpZGF0ZSgxKQorICAgIGN0eHQucGFyc2VEb2N1bWVudCgpCisKKyAgICB0cnk6CisJZG9jID0gY3R4dC5kb2MoKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorICAgIHZhbGlkID0gY3R4dC5pc1ZhbGlkKCkKKyAgICBpZiBkb2MgPT0gTm9uZToKKyAgICAgICAgcHJpbnQgIiVzOiBlcnJvcjogd3JvbmdseSBmYWlsZWQgdG8gcGFyc2UgdGhlIGRvY3VtZW50IiAlIChpZCkKKwlsb2cud3JpdGUoIiVzOiBlcnJvcjogd3JvbmdseSBmYWlsZWQgdG8gcGFyc2UgdGhlIGRvY3VtZW50XG4iICUgKGlkKSkKKwlyZXR1cm4gMAorICAgIGlmIHZhbGlkICE9IDE6CisgICAgICAgIHByaW50ICIlczogZXJyb3I6IFZhbGlkaXR5IGNoZWNrIGZhaWxlZCIgJSAoaWQpCisJbG9nLndyaXRlKCIlczogZXJyb3I6IFZhbGlkaXR5IGNoZWNrIGZhaWxlZFxuIiAlIChpZCkpCisJZG9jLmZyZWVEb2MoKQorCXJldHVybiAwCisgICAgaWYgZXJyb3JfbnIgIT0gMCBvciB2YWxpZCAhPSAxOgorICAgICAgICBwcmludCAiJXM6IHdhcm5pbmc6IHZhbGlkIGRvY3VtZW50IHJlcG9ydGVkIGFuIGVycm9yIiAlIChpZCkKKwlsb2cud3JpdGUoIiVzOiB3YXJuaW5nOiB2YWxpZCBkb2N1bWVudCByZXBvcnRlZCBhbiBlcnJvclxuIiAlIChpZCkpCisJZG9jLmZyZWVEb2MoKQorCXJldHVybiAyCisgICAgZG9jLmZyZWVEb2MoKQorICAgIHJldHVybiAxCisKK2RlZiBydW5UZXN0KHRlc3QpOgorICAgIGdsb2JhbCB0ZXN0X25yCisgICAgZ2xvYmFsIHRlc3Rfc3VjY2VlZAorICAgIGdsb2JhbCB0ZXN0X2ZhaWxlZAorICAgIGdsb2JhbCBlcnJvcl9tc2cKKyAgICBnbG9iYWwgbG9nCisKKyAgICB1cmkgPSB0ZXN0LnByb3AoJ1VSSScpCisgICAgaWQgPSB0ZXN0LnByb3AoJ0lEJykKKyAgICBpZiB1cmkgPT0gTm9uZToKKyAgICAgICAgcHJpbnQgIlRlc3Qgd2l0aG91dCBJRDoiLCB1cmkKKwlyZXR1cm4gLTEKKyAgICBpZiBpZCA9PSBOb25lOgorICAgICAgICBwcmludCAiVGVzdCB3aXRob3V0IFVSSToiLCBpZAorCXJldHVybiAtMQorICAgIGJhc2UgPSB0ZXN0LmdldEJhc2UoTm9uZSkKKyAgICBVUkkgPSBsaWJ4bWwyLmJ1aWxkVVJJKHVyaSwgYmFzZSkKKyAgICBpZiBvcy5hY2Nlc3MoVVJJLCBvcy5SX09LKSA9PSAwOgorICAgICAgICBwcmludCAiVGVzdCAlcyBtaXNzaW5nOiBiYXNlICVzIHVyaSAlcyIgJSAoVVJJLCBiYXNlLCB1cmkpCisJcmV0dXJuIC0xCisgICAgdHlwZSA9IHRlc3QucHJvcCgnVFlQRScpCisgICAgaWYgdHlwZSA9PSBOb25lOgorICAgICAgICBwcmludCAiVGVzdCAlcyBtaXNzaW5nIFRZUEUiICUgKGlkKQorCXJldHVybiAtMQorCisgICAgZXh0cmEgPSBOb25lCisgICAgaWYgdHlwZSA9PSAiaW52YWxpZCI6CisgICAgICAgIHJlcyA9IHRlc3RJbnZhbGlkKFVSSSwgaWQpCisgICAgZWxpZiB0eXBlID09ICJ2YWxpZCI6CisgICAgICAgIHJlcyA9IHRlc3RWYWxpZChVUkksIGlkKQorICAgIGVsaWYgdHlwZSA9PSAibm90LXdmIjoKKyAgICAgICAgZXh0cmEgPSAgdGVzdC5wcm9wKCdFTlRJVElFUycpCisJIyBwcmludCBVUkkKKwkjaWYgZXh0cmEgPT0gTm9uZToKKwkjICAgIHJlcyA9IHRlc3ROb3RXZkVudER0ZChVUkksIGlkKQorIAkjZWxpZiBleHRyYSA9PSAnbm9uZSc6CisJIyAgICByZXMgPSB0ZXN0Tm90V2YoVVJJLCBpZCkKKwkjZWxpZiBleHRyYSA9PSAnZ2VuZXJhbCc6CisJIyAgICByZXMgPSB0ZXN0Tm90V2ZFbnQoVVJJLCBpZCkKKwkjZWxpZiBleHRyYSA9PSAnYm90aCcgb3IgZXh0cmEgPT0gJ3BhcmFtZXRlcic6CisJcmVzID0gdGVzdE5vdFdmRW50RHRkKFVSSSwgaWQpCisJI2Vsc2U6CisJIyAgICBwcmludCAiVW5rbm93IHZhbHVlICVzIGZvciBhbiBFTlRJVElFUyB0ZXN0IHZhbHVlIiAlIChleHRyYSkKKwkjICAgIHJldHVybiAtMQorICAgIGVsaWYgdHlwZSA9PSAiZXJyb3IiOgorCXJlcyA9IHRlc3RFcnJvcihVUkksIGlkKQorICAgIGVsc2U6CisgICAgICAgICMgVE9ETyBza2lwcGVkIGZvciBub3cKKwlyZXR1cm4gLTEKKworICAgIHRlc3RfbnIgPSB0ZXN0X25yICsgMQorICAgIGlmIHJlcyA+IDA6CisJdGVzdF9zdWNjZWVkID0gdGVzdF9zdWNjZWVkICsgMQorICAgIGVsaWYgcmVzID09IDA6CisJdGVzdF9mYWlsZWQgPSB0ZXN0X2ZhaWxlZCArIDEKKyAgICBlbGlmIHJlcyA8IDA6CisJdGVzdF9lcnJvciA9IHRlc3RfZXJyb3IgKyAxCisKKyAgICAjIExvZyB0aGUgb250ZXh0CisgICAgaWYgcmVzICE9IDE6CisJbG9nLndyaXRlKCIgICBGaWxlOiAlc1xuIiAlIChVUkkpKQorCWNvbnRlbnQgPSBzdHJpbmcuc3RyaXAodGVzdC5jb250ZW50KQorCXdoaWxlIGNvbnRlbnRbLTFdID09ICdcbic6CisJICAgIGNvbnRlbnQgPSBjb250ZW50WzA6LTFdCisJaWYgZXh0cmEgIT0gTm9uZToKKwkgICAgbG9nLndyaXRlKCIgICAlczolczolc1xuIiAlICh0eXBlLCBleHRyYSwgY29udGVudCkpCisJZWxzZToKKwkgICAgbG9nLndyaXRlKCIgICAlczolc1xuXG4iICUgKHR5cGUsIGNvbnRlbnQpKQorCWlmIGVycm9yX21zZyAhPSAnJzoKKwkgICAgbG9nLndyaXRlKCIgICAtLS0tXG4lcyAgIC0tLS1cbiIgJSAoZXJyb3JfbXNnKSkKKwkgICAgZXJyb3JfbXNnID0gJycKKwlsb2cud3JpdGUoIlxuIikKKworICAgIHJldHVybiAwCisJICAgIAorCitkZWYgcnVuVGVzdENhc2VzKGNhc2UpOgorICAgIHByb2ZpbGUgPSBjYXNlLnByb3AoJ1BST0ZJTEUnKQorICAgIGlmIHByb2ZpbGUgIT0gTm9uZSBhbmQgXAorICAgICAgIHN0cmluZy5maW5kKHByb2ZpbGUsICJJQk0gWE1MIENvbmZvcm1hbmNlIFRlc3QgU3VpdGUgLSBQcm9kdWN0aW9uIikgPCAwOgorCXByaW50ICI9PiIsIHByb2ZpbGUKKyAgICB0ZXN0ID0gY2FzZS5jaGlsZHJlbgorICAgIHdoaWxlIHRlc3QgIT0gTm9uZToKKyAgICAgICAgaWYgdGVzdC5uYW1lID09ICdURVNUJzoKKwkgICAgcnVuVGVzdCh0ZXN0KQorCWlmIHRlc3QubmFtZSA9PSAnVEVTVENBU0VTJzoKKwkgICAgcnVuVGVzdENhc2VzKHRlc3QpCisgICAgICAgIHRlc3QgPSB0ZXN0Lm5leHQKKyAgICAgICAgCitjb25mID0gbG9hZE5vZW50RG9jKENPTkYpCitpZiBjb25mID09IE5vbmU6CisgICAgcHJpbnQgIlVuYWJsZSB0byBsb2FkICVzIiAlIENPTkYKKyAgICBzeXMuZXhpdCgxKQorCit0ZXN0c3VpdGUgPSBjb25mLmdldFJvb3RFbGVtZW50KCkKK2lmIHRlc3RzdWl0ZS5uYW1lICE9ICdURVNUU1VJVEUnOgorICAgIHByaW50ICJFeHBlY3RpbmcgVEVTVFNVSVRFIHJvb3QgZWxlbWVudDogYWJvcnRpbmciCisgICAgc3lzLmV4aXQoMSkKKworcHJvZmlsZSA9IHRlc3RzdWl0ZS5wcm9wKCdQUk9GSUxFJykKK2lmIHByb2ZpbGUgIT0gTm9uZToKKyAgICBwcmludCBwcm9maWxlCisKK3N0YXJ0ID0gdGltZS50aW1lKCkKKworY2FzZSA9IHRlc3RzdWl0ZS5jaGlsZHJlbgord2hpbGUgY2FzZSAhPSBOb25lOgorICAgIGlmIGNhc2UubmFtZSA9PSAnVEVTVENBU0VTJzoKKwlvbGRfdGVzdF9uciA9IHRlc3RfbnIKKwlvbGRfdGVzdF9zdWNjZWVkID0gdGVzdF9zdWNjZWVkCisJb2xkX3Rlc3RfZmFpbGVkID0gdGVzdF9mYWlsZWQKKwlvbGRfdGVzdF9lcnJvciA9IHRlc3RfZXJyb3IKKyAgICAgICAgcnVuVGVzdENhc2VzKGNhc2UpCisJcHJpbnQgIiAgIFJhbiAlZCB0ZXN0czogJWQgc3VjZWVkZWQsICVkIGZhaWxlZCBhbmQgJWQgZ2VuZXJhdGVkIGFuIGVycm9yIiAlICgKKwkgICAgICAgdGVzdF9uciAtIG9sZF90ZXN0X25yLCB0ZXN0X3N1Y2NlZWQgLSBvbGRfdGVzdF9zdWNjZWVkLAorCSAgICAgICB0ZXN0X2ZhaWxlZCAtIG9sZF90ZXN0X2ZhaWxlZCwgdGVzdF9lcnJvciAtIG9sZF90ZXN0X2Vycm9yKQorICAgIGNhc2UgPSBjYXNlLm5leHQKKworY29uZi5mcmVlRG9jKCkKK2xvZy5jbG9zZSgpCisKK3ByaW50ICJSYW4gJWQgdGVzdHM6ICVkIHN1Y2VlZGVkLCAlZCBmYWlsZWQgYW5kICVkIGdlbmVyYXRlZCBhbiBlcnJvciBpbiAlLjJmIHMuIiAlICgKKyAgICAgIHRlc3RfbnIsIHRlc3Rfc3VjY2VlZCwgdGVzdF9mYWlsZWQsIHRlc3RfZXJyb3IsIHRpbWUudGltZSgpIC0gc3RhcnQpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NoZWNrLXhzZGRhdGEtdGVzdC1zdWl0ZS5weSBiL2xpYnhtbDItMi43LjcvY2hlY2steHNkZGF0YS10ZXN0LXN1aXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5NDYxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NoZWNrLXhzZGRhdGEtdGVzdC1zdWl0ZS5weQpAQCAtMCwwICsxLDQyMCBAQAorIyEvdXNyL2Jpbi9weXRob24KK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCitpbXBvcnQgb3MKK2ltcG9ydCBzdHJpbmcKK2ltcG9ydCBTdHJpbmdJTworc3lzLnBhdGguaW5zZXJ0KDAsICJweXRob24iKQoraW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKK2RlYnVnID0gMAordmVyYm9zZSA9IDAKK3F1aWV0ID0gMQorCisjCisjIHRoZSB0ZXN0c3VpdGUgZGVzY3JpcHRpb24KKyMKK0NPTkY9b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICJ0ZXN0L3hzZHRlc3QveHNkdGVzdHN1aXRlLnhtbCIpCitMT0c9ImNoZWNrLXhzZGRhdGEtdGVzdC1zdWl0ZS5sb2ciCisKK2xvZyA9IG9wZW4oTE9HLCAidyIpCituYl9zY2hlbWFzX3Rlc3RzID0gMAorbmJfc2NoZW1hc19zdWNjZXNzID0gMAorbmJfc2NoZW1hc19mYWlsZWQgPSAwCituYl9pbnN0YW5jZXNfdGVzdHMgPSAwCituYl9pbnN0YW5jZXNfc3VjY2VzcyA9IDAKK25iX2luc3RhbmNlc19mYWlsZWQgPSAwCisKK2xpYnhtbDIubGluZU51bWJlcnNEZWZhdWx0KDEpCisjCisjIEVycm9yIGFuZCB3YXJubmcgY2FsbGJhY2tzCisjCitkZWYgY2FsbGJhY2soY3R4LCBzdHIpOgorICAgIGdsb2JhbCBsb2cKKyAgICBsb2cud3JpdGUoIiVzJXMiICUgKGN0eCwgc3RyKSkKKworbGlieG1sMi5yZWdpc3RlckVycm9ySGFuZGxlcihjYWxsYmFjaywgIiIpCisKKyMKKyMgUmVzb2x2ZXIgY2FsbGJhY2sKKyMKK3Jlc291cmNlcyA9IHt9CitkZWYgcmVzb2x2ZXIoVVJMLCBJRCwgY3R4dCk6CisgICAgZ2xvYmFsIHJlc291cmNlcworCisgICAgaWYgcmVzb3VyY2VzLmhhc19rZXkoVVJMKToKKyAgICAgICAgcmV0dXJuKFN0cmluZ0lPLlN0cmluZ0lPKHJlc291cmNlc1tVUkxdKSkKKyAgICBsb2cud3JpdGUoIlJlc29sdmVyIGZhaWx1cmU6IGFza2VkICVzXG4iICUgKFVSTCkpCisgICAgbG9nLndyaXRlKCJyZXNvdXJjZXM6ICVzXG4iICUgKHJlc291cmNlcykpCisgICAgcmV0dXJuIE5vbmUKKworIworIyBoYW5kbGUgYSB2YWxpZCBpbnN0YW5jZQorIworZGVmIGhhbmRsZV92YWxpZChub2RlLCBzY2hlbWEpOgorICAgIGdsb2JhbCBsb2cKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX2ZhaWxlZAorCisgICAgaW5zdGFuY2UgPSBub2RlLnByb3AoImR0ZCIpCisgICAgaWYgaW5zdGFuY2UgPT0gTm9uZToKKyAgICAgICAgaW5zdGFuY2UgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICBpbnN0YW5jZSA9IGluc3RhbmNlICsgY2hpbGQuc2VyaWFsaXplKCkKKwljaGlsZCA9IGNoaWxkLm5leHQKKworICAgIG1lbSA9IGxpYnhtbDIuZGVidWdNZW1vcnkoMSk7CisgICAgdHJ5OgorCWRvYyA9IGxpYnhtbDIucGFyc2VEb2MoaW5zdGFuY2UpCisgICAgZXhjZXB0OgorICAgICAgICBkb2MgPSBOb25lCisKKyAgICBpZiBkb2MgPT0gTm9uZToKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byBwYXJzZSBjb3JyZWN0IGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQgKyAxCisJcmV0dXJuCisKKyAgICBpZiBkZWJ1ZzoKKyAgICAgICAgcHJpbnQgImluc3RhbmNlIGxpbmUgJWQiICUgKG5vZGUubGluZU5vKCkpCisgICAgICAgCisgICAgdHJ5OgorICAgICAgICBjdHh0ID0gc2NoZW1hLnJlbGF4TkdOZXdWYWxpZEN0eHQoKQorCXJldCA9IGRvYy5yZWxheE5HVmFsaWRhdGVEb2MoY3R4dCkKKwlkZWwgY3R4dAorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0ID0gLTEKKworICAgIGRvYy5mcmVlRG9jKCkKKyAgICBpZiBtZW0gIT0gbGlieG1sMi5kZWJ1Z01lbW9yeSgxKToKKwlwcmludCAidmFsaWRhdGluZyBpbnN0YW5jZSAlZCBsaW5lICVkIGxlYWtzIiAlICgKKwkJICBuYl9pbnN0YW5jZXNfdGVzdHMsIG5vZGUubGluZU5vKCkpCisKKyAgICBpZiByZXQgIT0gMDoKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byB2YWxpZGF0ZSBjb3JyZWN0IGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQgKyAxCisgICAgZWxzZToKKwluYl9pbnN0YW5jZXNfc3VjY2VzcyA9IG5iX2luc3RhbmNlc19zdWNjZXNzICsgMQorCisjCisjIGhhbmRsZSBhbiBpbnZhbGlkIGluc3RhbmNlCisjCitkZWYgaGFuZGxlX2ludmFsaWQobm9kZSwgc2NoZW1hKToKKyAgICBnbG9iYWwgbG9nCisgICAgZ2xvYmFsIG5iX2luc3RhbmNlc19zdWNjZXNzCisgICAgZ2xvYmFsIG5iX2luc3RhbmNlc19mYWlsZWQKKworICAgIGluc3RhbmNlID0gbm9kZS5wcm9wKCJkdGQiKQorICAgIGlmIGluc3RhbmNlID09IE5vbmU6CisgICAgICAgIGluc3RhbmNlID0gIiIKKyAgICBjaGlsZCA9IG5vZGUuY2hpbGRyZW4KKyAgICB3aGlsZSBjaGlsZCAhPSBOb25lOgorICAgICAgICBpZiBjaGlsZC50eXBlICE9ICd0ZXh0JzoKKwkgICAgaW5zdGFuY2UgPSBpbnN0YW5jZSArIGNoaWxkLnNlcmlhbGl6ZSgpCisJY2hpbGQgPSBjaGlsZC5uZXh0CisKKyMgICAgbWVtID0gbGlieG1sMi5kZWJ1Z01lbW9yeSgxKTsKKworICAgIHRyeToKKwlkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorCisgICAgaWYgZG9jID09IE5vbmU6CisgICAgICAgIGxvZy53cml0ZSgiXG5TdHJhbmdlOiBmYWlsZWQgdG8gcGFyc2UgaW5jb3JyZWN0IGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJcmV0dXJuCisKKyAgICBpZiBkZWJ1ZzoKKyAgICAgICAgcHJpbnQgImluc3RhbmNlIGxpbmUgJWQiICUgKG5vZGUubGluZU5vKCkpCisgICAgICAgCisgICAgdHJ5OgorICAgICAgICBjdHh0ID0gc2NoZW1hLnJlbGF4TkdOZXdWYWxpZEN0eHQoKQorCXJldCA9IGRvYy5yZWxheE5HVmFsaWRhdGVEb2MoY3R4dCkKKwlkZWwgY3R4dAorCisgICAgZXhjZXB0OgorICAgICAgICByZXQgPSAtMQorCisgICAgZG9jLmZyZWVEb2MoKQorIyAgICBpZiBtZW0gIT0gbGlieG1sMi5kZWJ1Z01lbW9yeSgxKToKKyMJcHJpbnQgInZhbGlkYXRpbmcgaW5zdGFuY2UgJWQgbGluZSAlZCBsZWFrcyIgJSAoCisjCQkgIG5iX2luc3RhbmNlc190ZXN0cywgbm9kZS5saW5lTm8oKSkKKyAgICAKKyAgICBpZiByZXQgPT0gMDoKKyAgICAgICAgbG9nLndyaXRlKCJcbkZhaWxlZCB0byBkZXRlY3QgdmFsaWRhdGlvbiBwcm9ibGVtIGluIGluc3RhbmNlOlxuLS0tLS1cbiIpCisJbG9nLndyaXRlKGluc3RhbmNlKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfaW5zdGFuY2VzX2ZhaWxlZCA9IG5iX2luc3RhbmNlc19mYWlsZWQgKyAxCisgICAgZWxzZToKKwluYl9pbnN0YW5jZXNfc3VjY2VzcyA9IG5iX2luc3RhbmNlc19zdWNjZXNzICsgMQorCisjCisjIGhhbmRsZSBhbiBpbmNvcnJlY3QgdGVzdAorIworZGVmIGhhbmRsZV9jb3JyZWN0KG5vZGUpOgorICAgIGdsb2JhbCBsb2cKKyAgICBnbG9iYWwgbmJfc2NoZW1hc19zdWNjZXNzCisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfZmFpbGVkCisKKyAgICBzY2hlbWEgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICBzY2hlbWEgPSBzY2hlbWEgKyBjaGlsZC5zZXJpYWxpemUoKQorCWNoaWxkID0gY2hpbGQubmV4dAorCisgICAgdHJ5OgorCXJuZ3AgPSBsaWJ4bWwyLnJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYSwgbGVuKHNjaGVtYSkpCisJcm5ncyA9IHJuZ3AucmVsYXhOR1BhcnNlKCkKKyAgICBleGNlcHQ6CisgICAgICAgIHJuZ3MgPSBOb25lCisgICAgaWYgcm5ncyA9PSBOb25lOgorICAgICAgICBsb2cud3JpdGUoIlxuRmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdCBzY2hlbWE6XG4tLS0tLVxuIikKKwlsb2cud3JpdGUoc2NoZW1hKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfc2NoZW1hc19mYWlsZWQgPSBuYl9zY2hlbWFzX2ZhaWxlZCArIDEKKyAgICBlbHNlOgorCW5iX3NjaGVtYXNfc3VjY2VzcyA9IG5iX3NjaGVtYXNfc3VjY2VzcyArIDEKKyAgICByZXR1cm4gcm5ncworICAgICAgICAKK2RlZiBoYW5kbGVfaW5jb3JyZWN0KG5vZGUpOgorICAgIGdsb2JhbCBsb2cKKyAgICBnbG9iYWwgbmJfc2NoZW1hc19zdWNjZXNzCisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfZmFpbGVkCisKKyAgICBzY2hlbWEgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICBzY2hlbWEgPSBzY2hlbWEgKyBjaGlsZC5zZXJpYWxpemUoKQorCWNoaWxkID0gY2hpbGQubmV4dAorCisgICAgdHJ5OgorCXJuZ3AgPSBsaWJ4bWwyLnJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYSwgbGVuKHNjaGVtYSkpCisJcm5ncyA9IHJuZ3AucmVsYXhOR1BhcnNlKCkKKyAgICBleGNlcHQ6CisgICAgICAgIHJuZ3MgPSBOb25lCisgICAgaWYgcm5ncyAhPSBOb25lOgorICAgICAgICBsb2cud3JpdGUoIlxuRmFpbGVkIHRvIGRldGVjdCBzY2hlbWEgZXJyb3IgaW46XG4tLS0tLVxuIikKKwlsb2cud3JpdGUoc2NoZW1hKQorICAgICAgICBsb2cud3JpdGUoIlxuLS0tLS1cbiIpCisJbmJfc2NoZW1hc19mYWlsZWQgPSBuYl9zY2hlbWFzX2ZhaWxlZCArIDEKKyAgICBlbHNlOgorIwlsb2cud3JpdGUoIlxuU3VjY2VzcyBkZXRlY3Rpbmcgc2NoZW1hIGVycm9yIGluOlxuLS0tLS1cbiIpCisjCWxvZy53cml0ZShzY2hlbWEpCisjCWxvZy53cml0ZSgiXG4tLS0tLVxuIikKKwluYl9zY2hlbWFzX3N1Y2Nlc3MgPSBuYl9zY2hlbWFzX3N1Y2Nlc3MgKyAxCisgICAgcmV0dXJuIE5vbmUKKworIworIyByZXNvdXJjZSBoYW5kbGluZzoga2VlcCBhIGRpY3Rpb25hcnkgb2YgVVJMLT5zdHJpbmcgbWFwcGluZ3MKKyMKK2RlZiBoYW5kbGVfcmVzb3VyY2Uobm9kZSwgZGlyKToKKyAgICBnbG9iYWwgcmVzb3VyY2VzCisKKyAgICB0cnk6CisJbmFtZSA9IG5vZGUucHJvcCgnbmFtZScpCisgICAgZXhjZXB0OgorICAgICAgICBuYW1lID0gTm9uZQorCisgICAgaWYgbmFtZSA9PSBOb25lIG9yIG5hbWUgPT0gJyc6CisgICAgICAgIGxvZy53cml0ZSgicmVzb3VyY2UgaGFzIG5vIG5hbWUiKQorCXJldHVybjsKKyAgICAgICAgCisgICAgaWYgZGlyICE9IE5vbmU6CisjICAgICAgICBuYW1lID0gbGlieG1sMi5idWlsZFVSSShuYW1lLCBkaXIpCisgICAgICAgIG5hbWUgPSBkaXIgKyAnLycgKyBuYW1lCisKKyAgICByZXMgPSAiIgorICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbgorICAgIHdoaWxlIGNoaWxkICE9IE5vbmU6CisgICAgICAgIGlmIGNoaWxkLnR5cGUgIT0gJ3RleHQnOgorCSAgICByZXMgPSByZXMgKyBjaGlsZC5zZXJpYWxpemUoKQorCWNoaWxkID0gY2hpbGQubmV4dAorICAgIHJlc291cmNlc1tuYW1lXSA9IHJlcworCisjCisjIGRpciBoYW5kbGluZzogcHNldWRvIGRpcmVjdG9yeSByZXNvdXJjZXMKKyMKK2RlZiBoYW5kbGVfZGlyKG5vZGUsIGRpcik6CisgICAgdHJ5OgorCW5hbWUgPSBub2RlLnByb3AoJ25hbWUnKQorICAgIGV4Y2VwdDoKKyAgICAgICAgbmFtZSA9IE5vbmUKKworICAgIGlmIG5hbWUgPT0gTm9uZSBvciBuYW1lID09ICcnOgorICAgICAgICBsb2cud3JpdGUoInJlc291cmNlIGhhcyBubyBuYW1lIikKKwlyZXR1cm47CisgICAgICAgIAorICAgIGlmIGRpciAhPSBOb25lOgorIyAgICAgICAgbmFtZSA9IGxpYnhtbDIuYnVpbGRVUkkobmFtZSwgZGlyKQorICAgICAgICBuYW1lID0gZGlyICsgJy8nICsgbmFtZQorCisgICAgZGlycyA9IG5vZGUueHBhdGhFdmFsKCdkaXInKQorICAgIGZvciBkaXIgaW4gZGlyczoKKyAgICAgICAgaGFuZGxlX2RpcihkaXIsIG5hbWUpCisgICAgcmVzID0gbm9kZS54cGF0aEV2YWwoJ3Jlc291cmNlJykKKyAgICBmb3IgciBpbiByZXM6CisgICAgICAgIGhhbmRsZV9yZXNvdXJjZShyLCBuYW1lKQorCisjCisjIGhhbmRsZSBhIHRlc3RDYXNlIGVsZW1lbnQKKyMKK2RlZiBoYW5kbGVfdGVzdENhc2Uobm9kZSk6CisgICAgZ2xvYmFsIG5iX3NjaGVtYXNfdGVzdHMKKyAgICBnbG9iYWwgbmJfaW5zdGFuY2VzX3Rlc3RzCisgICAgZ2xvYmFsIHJlc291cmNlcworCisgICAgc2VjdGlvbnMgPSBub2RlLnhwYXRoRXZhbCgnc3RyaW5nKHNlY3Rpb24pJykKKyAgICBsb2cud3JpdGUoIlxuICAgID09PT09PT09IHRlc3QgJWQgbGluZSAlZCBzZWN0aW9uICVzID09PT09PT09PT1cbiIgJSAoCisKKyAgICAgICAgICAgICAgbmJfc2NoZW1hc190ZXN0cywgbm9kZS5saW5lTm8oKSwgc2VjdGlvbnMpKQorICAgIHJlc291cmNlcyA9IHt9CisgICAgaWYgZGVidWc6CisgICAgICAgIHByaW50ICJ0ZXN0ICVkIGxpbmUgJWQiICUgKG5iX3NjaGVtYXNfdGVzdHMsIG5vZGUubGluZU5vKCkpCisKKyAgICBkaXJzID0gbm9kZS54cGF0aEV2YWwoJ2RpcicpCisgICAgZm9yIGRpciBpbiBkaXJzOgorICAgICAgICBoYW5kbGVfZGlyKGRpciwgTm9uZSkKKyAgICByZXMgPSBub2RlLnhwYXRoRXZhbCgncmVzb3VyY2UnKQorICAgIGZvciByIGluIHJlczoKKyAgICAgICAgaGFuZGxlX3Jlc291cmNlKHIsIE5vbmUpCisKKyAgICB0c3RzID0gbm9kZS54cGF0aEV2YWwoJ2luY29ycmVjdCcpCisgICAgaWYgdHN0cyAhPSBbXToKKyAgICAgICAgaWYgbGVuKHRzdHMpICE9IDE6CisJICAgIHByaW50ICJ3YXJuaW5nIHRlc3QgbGluZSAlZCBoYXMgbW9yZSB0aGFuIG9uZSA8aW5jb3JyZWN0PiBleGFtcGxlIiAlKG5vZGUubGluZU5vKCkpCisJc2NoZW1hID0gaGFuZGxlX2luY29ycmVjdCh0c3RzWzBdKQorICAgIGVsc2U6CisgICAgICAgIHRzdHMgPSBub2RlLnhwYXRoRXZhbCgnY29ycmVjdCcpCisJaWYgdHN0cyAhPSBbXToKKwkgICAgaWYgbGVuKHRzdHMpICE9IDE6CisJCXByaW50ICJ3YXJuaW5nIHRlc3QgbGluZSAlZCBoYXMgbW9yZSB0aGFuIG9uZSA8Y29ycmVjdD4gZXhhbXBsZSIlIChub2RlLmxpbmVObygpKQorCSAgICBzY2hlbWEgPSBoYW5kbGVfY29ycmVjdCh0c3RzWzBdKQorCWVsc2U6CisJICAgIHByaW50ICJ3YXJuaW5nIDx0ZXN0Q2FzZT4gbGluZSAlZCBoYXMgbm8gPGNvcnJlY3Q+IG5vciA8aW5jb3JyZWN0PiBjaGlsZCIgJSAobm9kZS5saW5lTm8oKSkKKworICAgIG5iX3NjaGVtYXNfdGVzdHMgPSBuYl9zY2hlbWFzX3Rlc3RzICsgMTsKKyAgICAKKyAgICB2YWxpZHMgPSBub2RlLnhwYXRoRXZhbCgndmFsaWQnKQorICAgIGludmFsaWRzID0gbm9kZS54cGF0aEV2YWwoJ2ludmFsaWQnKQorICAgIG5iX2luc3RhbmNlc190ZXN0cyA9IG5iX2luc3RhbmNlc190ZXN0cyArIGxlbih2YWxpZHMpICsgbGVuKGludmFsaWRzKQorICAgIGlmIHNjaGVtYSAhPSBOb25lOgorICAgICAgICBmb3IgdmFsaWQgaW4gdmFsaWRzOgorCSAgICBoYW5kbGVfdmFsaWQodmFsaWQsIHNjaGVtYSkKKyAgICAgICAgZm9yIGludmFsaWQgaW4gaW52YWxpZHM6CisJICAgIGhhbmRsZV9pbnZhbGlkKGludmFsaWQsIHNjaGVtYSkKKworCisjCisjIGhhbmRsZSBhIHRlc3RTdWl0ZSBlbGVtZW50CisjCitkZWYgaGFuZGxlX3Rlc3RTdWl0ZShub2RlLCBsZXZlbCA9IDApOgorICAgIGdsb2JhbCBuYl9zY2hlbWFzX3Rlc3RzLCBuYl9zY2hlbWFzX3N1Y2Nlc3MsIG5iX3NjaGVtYXNfZmFpbGVkCisgICAgZ2xvYmFsIG5iX2luc3RhbmNlc190ZXN0cywgbmJfaW5zdGFuY2VzX3N1Y2Nlc3MsIG5iX2luc3RhbmNlc19mYWlsZWQKKyAgICBpZiB2ZXJib3NlIGFuZCBsZXZlbCA+PSAwOgorCW9sZF9zY2hlbWFzX3Rlc3RzID0gbmJfc2NoZW1hc190ZXN0cworCW9sZF9zY2hlbWFzX3N1Y2Nlc3MgPSBuYl9zY2hlbWFzX3N1Y2Nlc3MKKwlvbGRfc2NoZW1hc19mYWlsZWQgPSBuYl9zY2hlbWFzX2ZhaWxlZAorCW9sZF9pbnN0YW5jZXNfdGVzdHMgPSBuYl9pbnN0YW5jZXNfdGVzdHMKKwlvbGRfaW5zdGFuY2VzX3N1Y2Nlc3MgPSBuYl9pbnN0YW5jZXNfc3VjY2VzcworCW9sZF9pbnN0YW5jZXNfZmFpbGVkID0gbmJfaW5zdGFuY2VzX2ZhaWxlZAorCisgICAgZG9jcyA9IG5vZGUueHBhdGhFdmFsKCdkb2N1bWVudGF0aW9uJykKKyAgICBhdXRob3JzID0gbm9kZS54cGF0aEV2YWwoJ2F1dGhvcicpCisgICAgaWYgZG9jcyAhPSBbXToKKyAgICAgICAgbXNnID0gIiIKKyAgICAgICAgZm9yIGRvYyBpbiBkb2NzOgorCSAgICBtc2cgPSBtc2cgKyBkb2MuY29udGVudCArICIgIgorCWlmIGF1dGhvcnMgIT0gW106CisJICAgIG1zZyA9IG1zZyArICJ3cml0dGVuIGJ5ICIKKwkgICAgZm9yIGF1dGhvciBpbiBhdXRob3JzOgorCSAgICAgICAgbXNnID0gbXNnICsgYXV0aG9yLmNvbnRlbnQgKyAiICIKKwlpZiBxdWlldCA9PSAwOgorCSAgICBwcmludCBtc2cKKyAgICBzZWN0aW9ucyA9IG5vZGUueHBhdGhFdmFsKCdzZWN0aW9uJykKKyAgICBpZiB2ZXJib3NlIGFuZCBzZWN0aW9ucyAhPSBbXSBhbmQgbGV2ZWwgPD0gMDoKKyAgICAgICAgbXNnID0gIiIKKyAgICAgICAgZm9yIHNlY3Rpb24gaW4gc2VjdGlvbnM6CisJICAgIG1zZyA9IG1zZyArIHNlY3Rpb24uY29udGVudCArICIgIgorCWlmIHF1aWV0ID09IDA6CisJICAgIHByaW50ICJUZXN0cyBmb3Igc2VjdGlvbiAlcyIgJSAobXNnKQorICAgIGZvciB0ZXN0IGluIG5vZGUueHBhdGhFdmFsKCd0ZXN0Q2FzZScpOgorICAgICAgICBoYW5kbGVfdGVzdENhc2UodGVzdCkKKyAgICBmb3IgdGVzdCBpbiBub2RlLnhwYXRoRXZhbCgndGVzdFN1aXRlJyk6CisgICAgICAgIGhhbmRsZV90ZXN0U3VpdGUodGVzdCwgbGV2ZWwgKyAxKQorCSAgICAgICAgCisKKyAgICBpZiB2ZXJib3NlIGFuZCBsZXZlbCA+PSAwIDoKKyAgICAgICAgaWYgc2VjdGlvbnMgIT0gW106CisJICAgIG1zZyA9ICIiCisJICAgIGZvciBzZWN0aW9uIGluIHNlY3Rpb25zOgorCQltc2cgPSBtc2cgKyBzZWN0aW9uLmNvbnRlbnQgKyAiICIKKwkgICAgcHJpbnQgIlJlc3VsdCBvZiB0ZXN0cyBmb3Igc2VjdGlvbiAlcyIgJSAobXNnKQorCWVsaWYgZG9jcyAhPSBbXToKKwkgICAgbXNnID0gIiIKKwkgICAgZm9yIGRvYyBpbiBkb2NzOgorCSAgICAgICAgbXNnID0gbXNnICsgZG9jLmNvbnRlbnQgKyAiICIKKwkgICAgcHJpbnQgIlJlc3VsdCBvZiB0ZXN0cyBmb3IgJXMiICUgKG1zZykKKworICAgICAgICBpZiBuYl9zY2hlbWFzX3Rlc3RzICE9IG9sZF9zY2hlbWFzX3Rlc3RzOgorCSAgICBwcmludCAiZm91bmQgJWQgdGVzdCBzY2hlbWFzOiAlZCBzdWNjZXNzICVkIGZhaWx1cmVzIiAlICgKKwkJICBuYl9zY2hlbWFzX3Rlc3RzIC0gb2xkX3NjaGVtYXNfdGVzdHMsCisJCSAgbmJfc2NoZW1hc19zdWNjZXNzIC0gb2xkX3NjaGVtYXNfc3VjY2VzcywKKwkJICBuYl9zY2hlbWFzX2ZhaWxlZCAtIG9sZF9zY2hlbWFzX2ZhaWxlZCkKKwlpZiBuYl9pbnN0YW5jZXNfdGVzdHMgIT0gb2xkX2luc3RhbmNlc190ZXN0czoKKwkgICAgcHJpbnQgImZvdW5kICVkIHRlc3QgaW5zdGFuY2VzOiAlZCBzdWNjZXNzICVkIGZhaWx1cmVzIiAlICgKKwkJICBuYl9pbnN0YW5jZXNfdGVzdHMgLSBvbGRfaW5zdGFuY2VzX3Rlc3RzLAorCQkgIG5iX2luc3RhbmNlc19zdWNjZXNzIC0gb2xkX2luc3RhbmNlc19zdWNjZXNzLAorCQkgIG5iX2luc3RhbmNlc19mYWlsZWQgLSBvbGRfaW5zdGFuY2VzX2ZhaWxlZCkKKyMKKyMgUGFyc2UgdGhlIGNvbmYgZmlsZQorIworbGlieG1sMi5zdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0KDEpOwordGVzdHN1aXRlID0gbGlieG1sMi5wYXJzZUZpbGUoQ09ORikKKworIworIyBFcnJvciBhbmQgd2Fybm5nIGNhbGxiYWNrcworIworZGVmIGNhbGxiYWNrKGN0eCwgc3RyKToKKyAgICBnbG9iYWwgbG9nCisgICAgbG9nLndyaXRlKCIlcyVzIiAlIChjdHgsIHN0cikpCisKK2xpYnhtbDIucmVnaXN0ZXJFcnJvckhhbmRsZXIoY2FsbGJhY2ssICIiKQorCitsaWJ4bWwyLnNldEVudGl0eUxvYWRlcihyZXNvbHZlcikKK3Jvb3QgPSB0ZXN0c3VpdGUuZ2V0Um9vdEVsZW1lbnQoKQoraWYgcm9vdC5uYW1lICE9ICd0ZXN0U3VpdGUnOgorICAgIHByaW50ICIlcyBkb2Vzbid0IHN0YXJ0IHdpdGggYSB0ZXN0U3VpdGUgZWxlbWVudCwgYWJvcnRpbmciICUgKENPTkYpCisgICAgc3lzLmV4aXQoMSkKK2lmIHF1aWV0ID09IDA6CisgICAgcHJpbnQgIlJ1bm5pbmcgUmVsYXggTkcgdGVzdHN1aXRlIgoraGFuZGxlX3Rlc3RTdWl0ZShyb290KQorCitpZiBxdWlldCA9PSAwIG9yIG5iX3NjaGVtYXNfZmFpbGVkICE9IDA6CisgICAgcHJpbnQgIlxuVE9UQUw6XG5mb3VuZCAlZCB0ZXN0IHNjaGVtYXM6ICVkIHN1Y2Nlc3MgJWQgZmFpbHVyZXMiICUgKAorICAgICAgbmJfc2NoZW1hc190ZXN0cywgbmJfc2NoZW1hc19zdWNjZXNzLCBuYl9zY2hlbWFzX2ZhaWxlZCkKK2lmIHF1aWV0ID09IDAgb3IgbmJfaW5zdGFuY2VzX2ZhaWxlZCAhPSAwOgorICAgIHByaW50ICJmb3VuZCAlZCB0ZXN0IGluc3RhbmNlczogJWQgc3VjY2VzcyAlZCBmYWlsdXJlcyIgJSAoCisgICAgICBuYl9pbnN0YW5jZXNfdGVzdHMsIG5iX2luc3RhbmNlc19zdWNjZXNzLCBuYl9pbnN0YW5jZXNfZmFpbGVkKQorCit0ZXN0c3VpdGUuZnJlZURvYygpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLnJlbGF4TkdDbGVhbnVwVHlwZXMoKQorbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBpZiBxdWlldCA9PSAwOgorCXByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NodmFsaWQuYyBiL2xpYnhtbDItMi43LjcvY2h2YWxpZC5jCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAwZGQ5NjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NodmFsaWQuYwpAQCAtMCwwICsxLDMzNiBAQAorLyoKKyAqIGNodmFsaWQuYzoJdGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgY2hhcmFjdGVyIHJhbmdlCisgKgkJdmFsaWRhdGlvbiBBUElzCisgKgorICogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGN2cyBzb3VyY2UKKyAqIGRlZmluaXRpb24gZmlsZXMgdXNpbmcgdGhlIGdlbkNoUmFuZ2VzLnB5IFB5dGhvbiBzY3JpcHQKKyAqCisgKiBHZW5lcmF0aW9uIGRhdGU6IE1vbiBNYXIgMjcgMTE6MDk6NDggMjAwNgorICogU291cmNlczogY2h2YWxpZC5kZWYKKyAqIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisjaW5jbHVkZSA8bGlieG1sL2NodmFsaWQuaD4KKworLyoKKyAqIFRoZSBpbml0aWFsIHRhYmxlcyAoe2Z1bmNfbmFtZX1fdGFiKSBhcmUgdXNlZCB0byB2YWxpZGF0ZSB3aGV0aGVyIGEKKyAqIHNpbmdsZS1ieXRlIGNoYXJhY3RlciBpcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBncm91cC4gIEVhY2ggdGFibGUKKyAqIGNvbnRhaW5zIDI1NiBieXRlcywgd2l0aCBlYWNoIGJ5dGUgcmVwcmVzZW50aW5nIG9uZSBvZiB0aGUgMjU2CisgKiBwb3NzaWJsZSBjaGFyYWN0ZXJzLiAgSWYgdGhlIHRhYmxlIGJ5dGUgaXMgc2V0LCB0aGUgY2hhcmFjdGVyIGlzCisgKiBhbGxvd2VkLgorICoKKyAqLworY29uc3QgdW5zaWduZWQgY2hhciB4bWxJc1B1YmlkQ2hhcl90YWJbMjU2XSA9IHsKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLAorICAgIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMSwKKyAgICAweDAxLCAweDAxLCAweDAwLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLAorICAgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsCisgICAgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwKKyAgICAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLAorICAgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCisgICAgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwKKyAgICAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLAorICAgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwIH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxJc0Jhc2VDaGFyX3NybmdbXSA9IHsgezB4MTAwLCAweDEzMX0sIAorICAgIHsweDEzNCwgMHgxM2V9LCB7MHgxNDEsIDB4MTQ4fSwgezB4MTRhLCAweDE3ZX0sIHsweDE4MCwgMHgxYzN9LCAKKyAgICB7MHgxY2QsIDB4MWYwfSwgezB4MWY0LCAweDFmNX0sIHsweDFmYSwgMHgyMTd9LCB7MHgyNTAsIDB4MmE4fSwgCisgICAgezB4MmJiLCAweDJjMX0sIHsweDM4NiwgMHgzODZ9LCB7MHgzODgsIDB4MzhhfSwgezB4MzhjLCAweDM4Y30sIAorICAgIHsweDM4ZSwgMHgzYTF9LCB7MHgzYTMsIDB4M2NlfSwgezB4M2QwLCAweDNkNn0sIHsweDNkYSwgMHgzZGF9LCAKKyAgICB7MHgzZGMsIDB4M2RjfSwgezB4M2RlLCAweDNkZX0sIHsweDNlMCwgMHgzZTB9LCB7MHgzZTIsIDB4M2YzfSwgCisgICAgezB4NDAxLCAweDQwY30sIHsweDQwZSwgMHg0NGZ9LCB7MHg0NTEsIDB4NDVjfSwgezB4NDVlLCAweDQ4MX0sIAorICAgIHsweDQ5MCwgMHg0YzR9LCB7MHg0YzcsIDB4NGM4fSwgezB4NGNiLCAweDRjY30sIHsweDRkMCwgMHg0ZWJ9LCAKKyAgICB7MHg0ZWUsIDB4NGY1fSwgezB4NGY4LCAweDRmOX0sIHsweDUzMSwgMHg1NTZ9LCB7MHg1NTksIDB4NTU5fSwgCisgICAgezB4NTYxLCAweDU4Nn0sIHsweDVkMCwgMHg1ZWF9LCB7MHg1ZjAsIDB4NWYyfSwgezB4NjIxLCAweDYzYX0sIAorICAgIHsweDY0MSwgMHg2NGF9LCB7MHg2NzEsIDB4NmI3fSwgezB4NmJhLCAweDZiZX0sIHsweDZjMCwgMHg2Y2V9LCAKKyAgICB7MHg2ZDAsIDB4NmQzfSwgezB4NmQ1LCAweDZkNX0sIHsweDZlNSwgMHg2ZTZ9LCB7MHg5MDUsIDB4OTM5fSwgCisgICAgezB4OTNkLCAweDkzZH0sIHsweDk1OCwgMHg5NjF9LCB7MHg5ODUsIDB4OThjfSwgezB4OThmLCAweDk5MH0sIAorICAgIHsweDk5MywgMHg5YTh9LCB7MHg5YWEsIDB4OWIwfSwgezB4OWIyLCAweDliMn0sIHsweDliNiwgMHg5Yjl9LCAKKyAgICB7MHg5ZGMsIDB4OWRkfSwgezB4OWRmLCAweDllMX0sIHsweDlmMCwgMHg5ZjF9LCB7MHhhMDUsIDB4YTBhfSwgCisgICAgezB4YTBmLCAweGExMH0sIHsweGExMywgMHhhMjh9LCB7MHhhMmEsIDB4YTMwfSwgezB4YTMyLCAweGEzM30sIAorICAgIHsweGEzNSwgMHhhMzZ9LCB7MHhhMzgsIDB4YTM5fSwgezB4YTU5LCAweGE1Y30sIHsweGE1ZSwgMHhhNWV9LCAKKyAgICB7MHhhNzIsIDB4YTc0fSwgezB4YTg1LCAweGE4Yn0sIHsweGE4ZCwgMHhhOGR9LCB7MHhhOGYsIDB4YTkxfSwgCisgICAgezB4YTkzLCAweGFhOH0sIHsweGFhYSwgMHhhYjB9LCB7MHhhYjIsIDB4YWIzfSwgezB4YWI1LCAweGFiOX0sIAorICAgIHsweGFiZCwgMHhhYmR9LCB7MHhhZTAsIDB4YWUwfSwgezB4YjA1LCAweGIwY30sIHsweGIwZiwgMHhiMTB9LCAKKyAgICB7MHhiMTMsIDB4YjI4fSwgezB4YjJhLCAweGIzMH0sIHsweGIzMiwgMHhiMzN9LCB7MHhiMzYsIDB4YjM5fSwgCisgICAgezB4YjNkLCAweGIzZH0sIHsweGI1YywgMHhiNWR9LCB7MHhiNWYsIDB4YjYxfSwgezB4Yjg1LCAweGI4YX0sIAorICAgIHsweGI4ZSwgMHhiOTB9LCB7MHhiOTIsIDB4Yjk1fSwgezB4Yjk5LCAweGI5YX0sIHsweGI5YywgMHhiOWN9LCAKKyAgICB7MHhiOWUsIDB4YjlmfSwgezB4YmEzLCAweGJhNH0sIHsweGJhOCwgMHhiYWF9LCB7MHhiYWUsIDB4YmI1fSwgCisgICAgezB4YmI3LCAweGJiOX0sIHsweGMwNSwgMHhjMGN9LCB7MHhjMGUsIDB4YzEwfSwgezB4YzEyLCAweGMyOH0sIAorICAgIHsweGMyYSwgMHhjMzN9LCB7MHhjMzUsIDB4YzM5fSwgezB4YzYwLCAweGM2MX0sIHsweGM4NSwgMHhjOGN9LCAKKyAgICB7MHhjOGUsIDB4YzkwfSwgezB4YzkyLCAweGNhOH0sIHsweGNhYSwgMHhjYjN9LCB7MHhjYjUsIDB4Y2I5fSwgCisgICAgezB4Y2RlLCAweGNkZX0sIHsweGNlMCwgMHhjZTF9LCB7MHhkMDUsIDB4ZDBjfSwgezB4ZDBlLCAweGQxMH0sIAorICAgIHsweGQxMiwgMHhkMjh9LCB7MHhkMmEsIDB4ZDM5fSwgezB4ZDYwLCAweGQ2MX0sIHsweGUwMSwgMHhlMmV9LCAKKyAgICB7MHhlMzAsIDB4ZTMwfSwgezB4ZTMyLCAweGUzM30sIHsweGU0MCwgMHhlNDV9LCB7MHhlODEsIDB4ZTgyfSwgCisgICAgezB4ZTg0LCAweGU4NH0sIHsweGU4NywgMHhlODh9LCB7MHhlOGEsIDB4ZThhfSwgezB4ZThkLCAweGU4ZH0sIAorICAgIHsweGU5NCwgMHhlOTd9LCB7MHhlOTksIDB4ZTlmfSwgezB4ZWExLCAweGVhM30sIHsweGVhNSwgMHhlYTV9LCAKKyAgICB7MHhlYTcsIDB4ZWE3fSwgezB4ZWFhLCAweGVhYn0sIHsweGVhZCwgMHhlYWV9LCB7MHhlYjAsIDB4ZWIwfSwgCisgICAgezB4ZWIyLCAweGViM30sIHsweGViZCwgMHhlYmR9LCB7MHhlYzAsIDB4ZWM0fSwgezB4ZjQwLCAweGY0N30sIAorICAgIHsweGY0OSwgMHhmNjl9LCB7MHgxMGEwLCAweDEwYzV9LCB7MHgxMGQwLCAweDEwZjZ9LCB7MHgxMTAwLCAweDExMDB9LCAKKyAgICB7MHgxMTAyLCAweDExMDN9LCB7MHgxMTA1LCAweDExMDd9LCB7MHgxMTA5LCAweDExMDl9LCB7MHgxMTBiLCAweDExMGN9LCAKKyAgICB7MHgxMTBlLCAweDExMTJ9LCB7MHgxMTNjLCAweDExM2N9LCB7MHgxMTNlLCAweDExM2V9LCB7MHgxMTQwLCAweDExNDB9LCAKKyAgICB7MHgxMTRjLCAweDExNGN9LCB7MHgxMTRlLCAweDExNGV9LCB7MHgxMTUwLCAweDExNTB9LCB7MHgxMTU0LCAweDExNTV9LCAKKyAgICB7MHgxMTU5LCAweDExNTl9LCB7MHgxMTVmLCAweDExNjF9LCB7MHgxMTYzLCAweDExNjN9LCB7MHgxMTY1LCAweDExNjV9LCAKKyAgICB7MHgxMTY3LCAweDExNjd9LCB7MHgxMTY5LCAweDExNjl9LCB7MHgxMTZkLCAweDExNmV9LCB7MHgxMTcyLCAweDExNzN9LCAKKyAgICB7MHgxMTc1LCAweDExNzV9LCB7MHgxMTllLCAweDExOWV9LCB7MHgxMWE4LCAweDExYTh9LCB7MHgxMWFiLCAweDExYWJ9LCAKKyAgICB7MHgxMWFlLCAweDExYWZ9LCB7MHgxMWI3LCAweDExYjh9LCB7MHgxMWJhLCAweDExYmF9LCB7MHgxMWJjLCAweDExYzJ9LCAKKyAgICB7MHgxMWViLCAweDExZWJ9LCB7MHgxMWYwLCAweDExZjB9LCB7MHgxMWY5LCAweDExZjl9LCB7MHgxZTAwLCAweDFlOWJ9LCAKKyAgICB7MHgxZWEwLCAweDFlZjl9LCB7MHgxZjAwLCAweDFmMTV9LCB7MHgxZjE4LCAweDFmMWR9LCB7MHgxZjIwLCAweDFmNDV9LCAKKyAgICB7MHgxZjQ4LCAweDFmNGR9LCB7MHgxZjUwLCAweDFmNTd9LCB7MHgxZjU5LCAweDFmNTl9LCB7MHgxZjViLCAweDFmNWJ9LCAKKyAgICB7MHgxZjVkLCAweDFmNWR9LCB7MHgxZjVmLCAweDFmN2R9LCB7MHgxZjgwLCAweDFmYjR9LCB7MHgxZmI2LCAweDFmYmN9LCAKKyAgICB7MHgxZmJlLCAweDFmYmV9LCB7MHgxZmMyLCAweDFmYzR9LCB7MHgxZmM2LCAweDFmY2N9LCB7MHgxZmQwLCAweDFmZDN9LCAKKyAgICB7MHgxZmQ2LCAweDFmZGJ9LCB7MHgxZmUwLCAweDFmZWN9LCB7MHgxZmYyLCAweDFmZjR9LCB7MHgxZmY2LCAweDFmZmN9LCAKKyAgICB7MHgyMTI2LCAweDIxMjZ9LCB7MHgyMTJhLCAweDIxMmJ9LCB7MHgyMTJlLCAweDIxMmV9LCB7MHgyMTgwLCAweDIxODJ9LCAKKyAgICB7MHgzMDQxLCAweDMwOTR9LCB7MHgzMGExLCAweDMwZmF9LCB7MHgzMTA1LCAweDMxMmN9LCB7MHhhYzAwLCAweGQ3YTN9fTsKK2NvbnN0IHhtbENoUmFuZ2VHcm91cCB4bWxJc0Jhc2VDaGFyR3JvdXAgPQorCXsxOTcsIDAsIHhtbElzQmFzZUNoYXJfc3JuZywgKHhtbENoTFJhbmdlUHRyKTB9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sSXNDaGFyX3NybmdbXSA9IHsgezB4MTAwLCAweGQ3ZmZ9LCAKKyAgICB7MHhlMDAwLCAweGZmZmR9fTsKK3N0YXRpYyBjb25zdCB4bWxDaExSYW5nZSB4bWxJc0NoYXJfbHJuZ1tdID0geyB7MHgxMDAwMCwgMHgxMGZmZmZ9fTsKK2NvbnN0IHhtbENoUmFuZ2VHcm91cCB4bWxJc0NoYXJHcm91cCA9CisJezIsIDEsIHhtbElzQ2hhcl9zcm5nLCB4bWxJc0NoYXJfbHJuZ307CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxJc0NvbWJpbmluZ19zcm5nW10gPSB7IHsweDMwMCwgMHgzNDV9LCAKKyAgICB7MHgzNjAsIDB4MzYxfSwgezB4NDgzLCAweDQ4Nn0sIHsweDU5MSwgMHg1YTF9LCB7MHg1YTMsIDB4NWI5fSwgCisgICAgezB4NWJiLCAweDViZH0sIHsweDViZiwgMHg1YmZ9LCB7MHg1YzEsIDB4NWMyfSwgezB4NWM0LCAweDVjNH0sIAorICAgIHsweDY0YiwgMHg2NTJ9LCB7MHg2NzAsIDB4NjcwfSwgezB4NmQ2LCAweDZkY30sIHsweDZkZCwgMHg2ZGZ9LCAKKyAgICB7MHg2ZTAsIDB4NmU0fSwgezB4NmU3LCAweDZlOH0sIHsweDZlYSwgMHg2ZWR9LCB7MHg5MDEsIDB4OTAzfSwgCisgICAgezB4OTNjLCAweDkzY30sIHsweDkzZSwgMHg5NGN9LCB7MHg5NGQsIDB4OTRkfSwgezB4OTUxLCAweDk1NH0sIAorICAgIHsweDk2MiwgMHg5NjN9LCB7MHg5ODEsIDB4OTgzfSwgezB4OWJjLCAweDliY30sIHsweDliZSwgMHg5YmV9LCAKKyAgICB7MHg5YmYsIDB4OWJmfSwgezB4OWMwLCAweDljNH0sIHsweDljNywgMHg5Yzh9LCB7MHg5Y2IsIDB4OWNkfSwgCisgICAgezB4OWQ3LCAweDlkN30sIHsweDllMiwgMHg5ZTN9LCB7MHhhMDIsIDB4YTAyfSwgezB4YTNjLCAweGEzY30sIAorICAgIHsweGEzZSwgMHhhM2V9LCB7MHhhM2YsIDB4YTNmfSwgezB4YTQwLCAweGE0Mn0sIHsweGE0NywgMHhhNDh9LCAKKyAgICB7MHhhNGIsIDB4YTRkfSwgezB4YTcwLCAweGE3MX0sIHsweGE4MSwgMHhhODN9LCB7MHhhYmMsIDB4YWJjfSwgCisgICAgezB4YWJlLCAweGFjNX0sIHsweGFjNywgMHhhYzl9LCB7MHhhY2IsIDB4YWNkfSwgezB4YjAxLCAweGIwM30sIAorICAgIHsweGIzYywgMHhiM2N9LCB7MHhiM2UsIDB4YjQzfSwgezB4YjQ3LCAweGI0OH0sIHsweGI0YiwgMHhiNGR9LCAKKyAgICB7MHhiNTYsIDB4YjU3fSwgezB4YjgyLCAweGI4M30sIHsweGJiZSwgMHhiYzJ9LCB7MHhiYzYsIDB4YmM4fSwgCisgICAgezB4YmNhLCAweGJjZH0sIHsweGJkNywgMHhiZDd9LCB7MHhjMDEsIDB4YzAzfSwgezB4YzNlLCAweGM0NH0sIAorICAgIHsweGM0NiwgMHhjNDh9LCB7MHhjNGEsIDB4YzRkfSwgezB4YzU1LCAweGM1Nn0sIHsweGM4MiwgMHhjODN9LCAKKyAgICB7MHhjYmUsIDB4Y2M0fSwgezB4Y2M2LCAweGNjOH0sIHsweGNjYSwgMHhjY2R9LCB7MHhjZDUsIDB4Y2Q2fSwgCisgICAgezB4ZDAyLCAweGQwM30sIHsweGQzZSwgMHhkNDN9LCB7MHhkNDYsIDB4ZDQ4fSwgezB4ZDRhLCAweGQ0ZH0sIAorICAgIHsweGQ1NywgMHhkNTd9LCB7MHhlMzEsIDB4ZTMxfSwgezB4ZTM0LCAweGUzYX0sIHsweGU0NywgMHhlNGV9LCAKKyAgICB7MHhlYjEsIDB4ZWIxfSwgezB4ZWI0LCAweGViOX0sIHsweGViYiwgMHhlYmN9LCB7MHhlYzgsIDB4ZWNkfSwgCisgICAgezB4ZjE4LCAweGYxOX0sIHsweGYzNSwgMHhmMzV9LCB7MHhmMzcsIDB4ZjM3fSwgezB4ZjM5LCAweGYzOX0sIAorICAgIHsweGYzZSwgMHhmM2V9LCB7MHhmM2YsIDB4ZjNmfSwgezB4ZjcxLCAweGY4NH0sIHsweGY4NiwgMHhmOGJ9LCAKKyAgICB7MHhmOTAsIDB4Zjk1fSwgezB4Zjk3LCAweGY5N30sIHsweGY5OSwgMHhmYWR9LCB7MHhmYjEsIDB4ZmI3fSwgCisgICAgezB4ZmI5LCAweGZiOX0sIHsweDIwZDAsIDB4MjBkY30sIHsweDIwZTEsIDB4MjBlMX0sIHsweDMwMmEsIDB4MzAyZn0sIAorICAgIHsweDMwOTksIDB4MzA5OX0sIHsweDMwOWEsIDB4MzA5YX19OworY29uc3QgeG1sQ2hSYW5nZUdyb3VwIHhtbElzQ29tYmluaW5nR3JvdXAgPQorCXs5NSwgMCwgeG1sSXNDb21iaW5pbmdfc3JuZywgKHhtbENoTFJhbmdlUHRyKTB9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sSXNEaWdpdF9zcm5nW10gPSB7IHsweDY2MCwgMHg2Njl9LCAKKyAgICB7MHg2ZjAsIDB4NmY5fSwgezB4OTY2LCAweDk2Zn0sIHsweDllNiwgMHg5ZWZ9LCB7MHhhNjYsIDB4YTZmfSwgCisgICAgezB4YWU2LCAweGFlZn0sIHsweGI2NiwgMHhiNmZ9LCB7MHhiZTcsIDB4YmVmfSwgezB4YzY2LCAweGM2Zn0sIAorICAgIHsweGNlNiwgMHhjZWZ9LCB7MHhkNjYsIDB4ZDZmfSwgezB4ZTUwLCAweGU1OX0sIHsweGVkMCwgMHhlZDl9LCAKKyAgICB7MHhmMjAsIDB4ZjI5fX07Citjb25zdCB4bWxDaFJhbmdlR3JvdXAgeG1sSXNEaWdpdEdyb3VwID0KKwl7MTQsIDAsIHhtbElzRGlnaXRfc3JuZywgKHhtbENoTFJhbmdlUHRyKTB9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sSXNFeHRlbmRlcl9zcm5nW10gPSB7IHsweDJkMCwgMHgyZDB9LCAKKyAgICB7MHgyZDEsIDB4MmQxfSwgezB4Mzg3LCAweDM4N30sIHsweDY0MCwgMHg2NDB9LCB7MHhlNDYsIDB4ZTQ2fSwgCisgICAgezB4ZWM2LCAweGVjNn0sIHsweDMwMDUsIDB4MzAwNX0sIHsweDMwMzEsIDB4MzAzNX0sIHsweDMwOWQsIDB4MzA5ZX0sIAorICAgIHsweDMwZmMsIDB4MzBmZX19OworY29uc3QgeG1sQ2hSYW5nZUdyb3VwIHhtbElzRXh0ZW5kZXJHcm91cCA9CisJezEwLCAwLCB4bWxJc0V4dGVuZGVyX3NybmcsICh4bWxDaExSYW5nZVB0cikwfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbElzSWRlb2dyYXBoaWNfc3JuZ1tdID0geyB7MHgzMDA3LCAweDMwMDd9LCAKKyAgICB7MHgzMDIxLCAweDMwMjl9LCB7MHg0ZTAwLCAweDlmYTV9fTsKK2NvbnN0IHhtbENoUmFuZ2VHcm91cCB4bWxJc0lkZW9ncmFwaGljR3JvdXAgPQorCXszLCAwLCB4bWxJc0lkZW9ncmFwaGljX3NybmcsICh4bWxDaExSYW5nZVB0cikwfTsKKworCisvKioKKyAqIHhtbENoYXJJblJhbmdlOgorICogQHZhbDogY2hhcmFjdGVyIHRvIGJlIHZhbGlkYXRlZAorICogQHJwdHI6IHBvaW50ZXIgdG8gcmFuZ2UgdG8gYmUgdXNlZCB0byB2YWxpZGF0ZQorICoKKyAqIERvZXMgYSBiaW5hcnkgc2VhcmNoIG9mIHRoZSByYW5nZSB0YWJsZSB0byBkZXRlcm1pbmUgaWYgY2hhcgorICogaXMgdmFsaWQKKyAqCisgKiBSZXR1cm5zOiB0cnVlIGlmIGNoYXJhY3RlciB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sQ2hhckluUmFuZ2UgKHVuc2lnbmVkIGludCB2YWwsIGNvbnN0IHhtbENoUmFuZ2VHcm91cCAqcnB0cikgeworICAgIGludCBsb3csIGhpZ2gsIG1pZDsKKyAgICBjb25zdCB4bWxDaFNSYW5nZSAqc3B0cjsKKyAgICBjb25zdCB4bWxDaExSYW5nZSAqbHB0cjsKKworICAgIGlmIChycHRyID09IE5VTEwpIHJldHVybigwKTsKKyAgICBpZiAodmFsIDwgMHgxMDAwMCkgewkvKiBpcyB2YWwgaW4gJ3Nob3J0JyBvciAnbG9uZycgIGFycmF5PyAqLworCWlmIChycHRyLT5uYlNob3J0UmFuZ2UgPT0gMCkKKwkgICAgcmV0dXJuIDA7CisJbG93ID0gMDsKKwloaWdoID0gcnB0ci0+bmJTaG9ydFJhbmdlIC0gMTsKKwlzcHRyID0gcnB0ci0+c2hvcnRSYW5nZTsKKwl3aGlsZSAobG93IDw9IGhpZ2gpIHsKKwkgICAgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKKwkgICAgaWYgKCh1bnNpZ25lZCBzaG9ydCkgdmFsIDwgc3B0clttaWRdLmxvdykgeworCQloaWdoID0gbWlkIC0gMTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGlmICgodW5zaWduZWQgc2hvcnQpIHZhbCA+IHNwdHJbbWlkXS5oaWdoKSB7CisJCSAgICBsb3cgPSBtaWQgKyAxOworCQl9IGVsc2UgeworCQkgICAgcmV0dXJuIDE7CisJCX0KKwkgICAgfQorCX0KKyAgICB9IGVsc2UgeworCWlmIChycHRyLT5uYkxvbmdSYW5nZSA9PSAwKSB7CisJICAgIHJldHVybiAwOworCX0KKwlsb3cgPSAwOworCWhpZ2ggPSBycHRyLT5uYkxvbmdSYW5nZSAtIDE7CisJbHB0ciA9IHJwdHItPmxvbmdSYW5nZTsKKwl3aGlsZSAobG93IDw9IGhpZ2gpIHsKKwkgICAgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKKwkgICAgaWYgKHZhbCA8IGxwdHJbbWlkXS5sb3cpIHsKKwkJaGlnaCA9IG1pZCAtIDE7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBpZiAodmFsID4gbHB0clttaWRdLmhpZ2gpIHsKKwkJICAgIGxvdyA9IG1pZCArIDE7CisJCX0gZWxzZSB7CisJCSAgICByZXR1cm4gMTsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworCisvKioKKyAqIHhtbElzQmFzZUNoYXI6CisgKiBAY2g6ICBjaGFyYWN0ZXIgdG8gdmFsaWRhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuCisgKiBVc2UgeG1sSXNCYXNlQ2hhcl9jaCBvciB4bWxJc0Jhc2VDaGFyUSBpbnN0ZWFkCisgKgorICogUmV0dXJucyB0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UKKyAqLworaW50Cit4bWxJc0Jhc2VDaGFyKHVuc2lnbmVkIGludCBjaCkgeworICAgIHJldHVybih4bWxJc0Jhc2VDaGFyUShjaCkpOworfQorCisKKy8qKgorICogeG1sSXNCbGFuazoKKyAqIEBjaDogIGNoYXJhY3RlciB0byB2YWxpZGF0ZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4KKyAqIFVzZSB4bWxJc0JsYW5rX2NoIG9yIHhtbElzQmxhbmtRIGluc3RlYWQKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgYXJndW1lbnQgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICovCitpbnQKK3htbElzQmxhbmsodW5zaWduZWQgaW50IGNoKSB7CisgICAgcmV0dXJuKHhtbElzQmxhbmtRKGNoKSk7Cit9CisKKworLyoqCisgKiB4bWxJc0NoYXI6CisgKiBAY2g6ICBjaGFyYWN0ZXIgdG8gdmFsaWRhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuCisgKiBVc2UgeG1sSXNDaGFyX2NoIG9yIHhtbElzQ2hhclEgaW5zdGVhZAorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sSXNDaGFyKHVuc2lnbmVkIGludCBjaCkgeworICAgIHJldHVybih4bWxJc0NoYXJRKGNoKSk7Cit9CisKKworLyoqCisgKiB4bWxJc0NvbWJpbmluZzoKKyAqIEBjaDogIGNoYXJhY3RlciB0byB2YWxpZGF0ZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4KKyAqIFVzZSB4bWxJc0NvbWJpbmluZ1EgaW5zdGVhZAorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sSXNDb21iaW5pbmcodW5zaWduZWQgaW50IGNoKSB7CisgICAgcmV0dXJuKHhtbElzQ29tYmluaW5nUShjaCkpOworfQorCisKKy8qKgorICogeG1sSXNEaWdpdDoKKyAqIEBjaDogIGNoYXJhY3RlciB0byB2YWxpZGF0ZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4KKyAqIFVzZSB4bWxJc0RpZ2l0X2NoIG9yIHhtbElzRGlnaXRRIGluc3RlYWQKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgYXJndW1lbnQgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICovCitpbnQKK3htbElzRGlnaXQodW5zaWduZWQgaW50IGNoKSB7CisgICAgcmV0dXJuKHhtbElzRGlnaXRRKGNoKSk7Cit9CisKKworLyoqCisgKiB4bWxJc0V4dGVuZGVyOgorICogQGNoOiAgY2hhcmFjdGVyIHRvIHZhbGlkYXRlCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELgorICogVXNlIHhtbElzRXh0ZW5kZXJfY2ggb3IgeG1sSXNFeHRlbmRlclEgaW5zdGVhZAorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sSXNFeHRlbmRlcih1bnNpZ25lZCBpbnQgY2gpIHsKKyAgICByZXR1cm4oeG1sSXNFeHRlbmRlclEoY2gpKTsKK30KKworCisvKioKKyAqIHhtbElzSWRlb2dyYXBoaWM6CisgKiBAY2g6ICBjaGFyYWN0ZXIgdG8gdmFsaWRhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuCisgKiBVc2UgeG1sSXNJZGVvZ3JhcGhpY1EgaW5zdGVhZAorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sSXNJZGVvZ3JhcGhpYyh1bnNpZ25lZCBpbnQgY2gpIHsKKyAgICByZXR1cm4oeG1sSXNJZGVvZ3JhcGhpY1EoY2gpKTsKK30KKworCisvKioKKyAqIHhtbElzUHViaWRDaGFyOgorICogQGNoOiAgY2hhcmFjdGVyIHRvIHZhbGlkYXRlCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELgorICogVXNlIHhtbElzUHViaWRDaGFyX2NoIG9yIHhtbElzUHViaWRDaGFyUSBpbnN0ZWFkCisgKgorICogUmV0dXJucyB0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UKKyAqLworaW50Cit4bWxJc1B1YmlkQ2hhcih1bnNpZ25lZCBpbnQgY2gpIHsKKyAgICByZXR1cm4oeG1sSXNQdWJpZENoYXJRKGNoKSk7Cit9CisKKyNkZWZpbmUgYm90dG9tX2NodmFsaWQKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NvbmZpZy5ndWVzcyBiL2xpYnhtbDItMi43LjcvY29uZmlnLmd1ZXNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjODRjNjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NvbmZpZy5ndWVzcwpAQCAtMCwwICsxLDE1MDEgQEAKKyMhIC9iaW4vc2gKKyMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOQorIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCit0aW1lc3RhbXA9JzIwMDktMTEtMjAnCisKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKyMgMDIxMTAtMTMwMSwgVVNBLgorIworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKKworIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuICBQbGVhc2Ugc2VuZCBwYXRjaGVzIChjb250ZXh0CisjIGRpZmYgZm9ybWF0KSB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gYW5kIGluY2x1ZGUgYSBDaGFuZ2VMb2cKKyMgZW50cnkuCisjCisjIFRoaXMgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIgdG8KKyMgY29uZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCisjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgorIworIyBZb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBzY3JpcHQgZnJvbToKKyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECisKK21lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAorCit1c2FnZT0iXAorVXNhZ2U6ICQwIFtPUFRJT05dCisKK091dHB1dCB0aGUgY29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4KKworT3BlcmF0aW9uIG1vZGVzOgorICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKyAgLXQsIC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24sIHRoZW4gZXhpdAorICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorCitSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uIgorCit2ZXJzaW9uPSJcCitHTlUgY29uZmlnLmd1ZXNzICgkdGltZXN0YW1wKQorCitPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuCitDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCisyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTword2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorCitoZWxwPSIKK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKworIyBQYXJzZSBjb21tYW5kIGxpbmUKK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworICBjYXNlICQxIGluCisgICAgLS10aW1lLXN0YW1wIHwgLS10aW1lKiB8IC10ICkKKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKKyAgICAtLXZlcnNpb24gfCAtdiApCisgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworICAgIC0taGVscCB8IC0taCogfCAtaCApCisgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OworICAgIC0tICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgIHNoaWZ0OyBicmVhayA7OworICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKyAgICAgICBicmVhayA7OworICAgIC0qICkKKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgorICAgICAgIGV4aXQgMSA7OworICAgICogKQorICAgICAgIGJyZWFrIDs7CisgIGVzYWMKK2RvbmUKKworaWYgdGVzdCAkIyAhPSAwOyB0aGVuCisgIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorICBleGl0IDEKK2ZpCisKK3RyYXAgJ2V4aXQgMScgMSAyIDE1CisKKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkgdGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKKyMgdGVtcG9yYXJ5IGZpbGVzIHRvIGJlIGNyZWF0ZWQgYW5kLCBhcyB5b3UgY2FuIHNlZSBiZWxvdywgaXQgaXMgYQorIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgorCisjIEhpc3RvcmljYWxseSwgYENDX0ZPUl9CVUlMRCcgdXNlZCB0byBiZSBuYW1lZCBgSE9TVF9DQycuIFdlIHN0aWxsCisjIHVzZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJlY2F0ZWQuCisKKyMgUG9ydGFibGUgdG1wIGRpcmVjdG9yeSBjcmVhdGlvbiBpbnNwaXJlZCBieSB0aGUgQXV0b2NvbmYgdGVhbS4KKworc2V0X2NjX2Zvcl9idWlsZD0nCit0cmFwICJleGl0Y29kZT1cJD87IChybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbCkgJiYgZXhpdCBcJGV4aXRjb2RlIiAwIDsKK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7Cis6ICR7VE1QRElSPS90bXB9IDsKKyB7IHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgIiRUTVBESVIvY2dYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIgOyB9IHx8CisgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9jZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKKyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKKyB7IGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gJFRNUERJUiIgPiYyIDsgZXhpdCAxIDsgfSA7CitkdW1teT0kdG1wL2R1bW15IDsKK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teSIgOworY2FzZSAkQ0NfRk9SX0JVSUxELCRIT1NUX0NDLCRDQyBpbgorICwsKSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOworCWZvciBjIGluIGNjIGdjYyBjODkgYzk5IDsgZG8KKwkgIGlmICgkYyAtYyAtbyAkZHVtbXkubyAkZHVtbXkuYykgPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJyZWFrIDsKKwkgIGZpIDsKKwlkb25lIDsKKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4IDsgdGhlbgorCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKKwlmaQorCTs7CisgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKKyAsKiwqKSAgQ0NfRk9SX0JVSUxEPSRIT1NUX0NDIDs7Citlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycKKworIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQoraWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKwlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKK2ZpCisKK1VOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5rbm93bgorVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCitVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgorVU5BTUVfVkVSU0lPTj1gKHVuYW1lIC12KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCisKKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KKworY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgorICAgICo6TmV0QlNEOio6KikKKwkjIE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgorCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rhb3V0KiwKKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQorCSMgc3dpdGNoZWQgdG8gRUxGLCAqLSotbmV0YnNkKiB3b3VsZCBzZWxlY3QgdGhlIG9sZAorCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKKwkjIG9iamVjdCBmaWxlIGZvcm1hdC4KKwkjCisJIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCisJIyBwb3J0aW9uIG9mIHRoZSBuYW1lLiAgV2UgYWx3YXlzIHNldCBpdCB0byAidW5rbm93biIuCisJc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgorCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAorCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd24pYAorCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OworCSAgICBhcm0qKSBtYWNoaW5lPWFybS11bmtub3duIDs7CisJICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3duIDs7CisJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKKwkgICAgc2g1ZWwpIG1hY2hpbmU9c2g1bGUtdW5rbm93biA7OworCSAgICAqKSBtYWNoaW5lPSR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duIDs7CisJZXNhYworCSMgVGhlIE9wZXJhdGluZyBTeXN0ZW0gaW5jbHVkaW5nIG9iamVjdCBmb3JtYXQsIGlmIGl0IGhhcyBzd2l0Y2hlZAorCSMgdG8gRUxGIHJlY2VudGx5LCBvciB3aWxsIGluIHRoZSBmdXR1cmUuCisJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgorCSAgICBhcm0qfGkzODZ8bTY4a3xuczMya3xzaDMqfHNwYXJjfHZheCkKKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorCQkJfCBncmVwIC1xIF9fRUxGX18KKwkJdGhlbgorCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgorCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/CisJCSAgICBvcz1uZXRic2QKKwkJZWxzZQorCQkgICAgb3M9bmV0YnNkZWxmCisJCWZpCisJCTs7CisJICAgICopCisJICAgICAgICBvcz1uZXRic2QKKwkJOzsKKwllc2FjCisJIyBUaGUgT1MgcmVsZWFzZQorCSMgRGViaWFuIEdOVS9OZXRCU0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCisJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAorCSMga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24sIHNvIGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKKwkjIHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgorCSAgICBEZWJpYW4qKQorCQlyZWxlYXNlPSctZ251JworCQk7OworCSAgICAqKQorCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stX10uKi9cLi8nYAorCQk7OworCWVzYWMKKwkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKKwkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCisJZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0iCisJZXhpdCA7OworICAgICo6T3BlbkJTRDoqOiopCisJVU5BTUVfTUFDSElORV9BUkNIPWBhcmNoIHwgc2VkICdzL09wZW5CU0QuLy8nYAorCWVjaG8gJHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpla2tvQlNEOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1la2tvYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOlNvbGlkQlNEOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xpZGJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgbWFjcHBjOk1pckJTRDoqOiopCisJZWNobyBwb3dlcnBjLXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOk1pckJTRDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBhbHBoYTpPU0YxOio6KikKKwljYXNlICRVTkFNRV9SRUxFQVNFIGluCisJKjQuMCkKKwkJVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDN9J2AKKwkJOzsKKwkqNS4qKQorCSAgICAgICAgVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9J2AKKwkJOzsKKwllc2FjCisJIyBBY2NvcmRpbmcgdG8gQ29tcGFxLCAvdXNyL3NiaW4vcHNyaW5mbyBoYXMgYmVlbiBhdmFpbGFibGUgb24KKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNpbmNlIDE5OTUuICBJIGhvcGUgdGhhdAorCSMgY292ZXJzIG1vc3Qgc3lzdGVtcyBydW5uaW5nIHRvZGF5LiAgVGhpcyBjb2RlIHBpcGVzIHRoZSBDUFUKKwkjIHR5cGVzIHRocm91Z2ggaGVhZCAtbiAxLCBzbyB3ZSBvbmx5IGRldGVjdCB0aGUgdHlwZSBvZiBDUFUgMC4KKwlBTFBIQV9DUFVfVFlQRT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwoLipcKSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCisJY2FzZSAiJEFMUEhBX0NQVV9UWVBFIiBpbgorCSAgICAiRVY0ICgyMTA2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKwkgICAgIkVWNC41ICgyMTA2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKwkgICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworCSAgICAiRVY1ICgyMTE2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKKwkgICAgIkVWNS42ICgyMTE2NEEpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjU2IiA7OworCSAgICAiRVY1LjYgKDIxMTY0UEMpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NiIgOzsKKwkgICAgIkVWNS43ICgyMTE2NFBDKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTciIDs7CisJICAgICJFVjYgKDIxMjY0KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2IiA7OworCSAgICAiRVY2LjcgKDIxMjY0QSkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjciIDs7CisJICAgICJFVjYuOENCICgyMTI2NEMpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworCSAgICAiRVY2LjhBTCAoMjEyNjRCKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7CisJICAgICJFVjYuOUEgKDIxMjY0L0VWNjlBKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OSIgOzsKKwkgICAgIkVWNyAoMjEzNjQpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjciIDs7CisJICAgICJFVjcuOSAoMjEzNjRBKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY3OSIgOzsKKwllc2FjCisJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVyc2lvbi4KKwkjIEEgVm4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgdmVyc2lvbi4KKwkjIEEgVG4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgZmllbGQgdGVzdCB2ZXJzaW9uLgorCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgorCSMgMS4yIHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtb3NmYGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9eW1BWVFhdLy8nIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAorCWV4aXQgOzsKKyAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQorCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KKwkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQKKwkjIG9mIHRoZSBzcGVjaWZpYyBBbHBoYSBtb2RlbD8KKwllY2hvIGFscGhhLXBjLWludGVyaXgKKwlleGl0IDs7CisgICAgMjEwNjQ6V2luZG93c19OVDo1MDozKQorCWVjaG8gYWxwaGEtZGVjLXdpbm50My41CisJZXhpdCA7OworICAgIEFtaWdhKjpVTklYX1N5c3RlbV9WOjQuMDoqKQorCWVjaG8gbTY4ay11bmtub3duLXN5c3Y0CisJZXhpdCA7OworICAgICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcworCWV4aXQgOzsKKyAgICAqOltNbV1vcnBoW09vXVtTc106KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1vcnBob3MKKwlleGl0IDs7CisgICAgKjpPUy8zOTA6KjoqKQorCWVjaG8gaTM3MC1pYm0tb3BlbmVkaXRpb24KKwlleGl0IDs7CisgICAgKjp6L1ZNOio6KikKKwllY2hvIHMzOTAtaWJtLXp2bW9lCisJZXhpdCA7OworICAgICo6T1M0MDA6KjoqKQorICAgICAgICBlY2hvIHBvd2VycGMtaWJtLW9zNDAwCisJZXhpdCA7OworICAgIGFybTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6KikKKwllY2hvIGFybS1hY29ybi1yaXNjaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIGFybTpyaXNjb3M6KjoqfGFybTpSSVNDT1M6KjoqKQorCWVjaG8gYXJtLXVua25vd24tcmlzY29zCisJZXhpdCA7OworICAgIFNSMj8wMTpISS1VWC9NUFA6KjoqIHwgU1I4MDAwOkhJLVVYL01QUDoqOiopCisJZWNobyBocHBhMS4xLWhpdGFjaGktaGl1eG1wcAorCWV4aXQgOzsKKyAgICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKKwkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgorCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KKwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKKwllbHNlCisJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAorCWZpCisJZXhpdCA7OworICAgIE5JTEUqOio6KjpkY29zeCkKKwllY2hvIHB5cmFtaWQtcHlyYW1pZC1zdnI0CisJZXhpdCA7OworICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQorCWVjaG8gc3BhcmMtaWNsLW54NgorCWV4aXQgOzsKKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCisJY2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCisJICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDc7IGV4aXQgOzsKKwllc2FjIDs7CisgICAgczM5MHg6U3VuT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNEg6U3VuT1M6NS4qOiopCisJZWNobyBzcGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgOzsKKyAgICBpODZwYzpBdXJvcmFVWDo1Lio6KiB8IGk4NnhlbjpBdXJvcmFVWDo1Lio6KikKKwllY2hvIGkzODYtcGMtYXVyb3JhdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9TOjUuKjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlTVU5fQVJDSD0iaTM4NiIKKwkjIElmIHRoZXJlIGlzIGEgY29tcGlsZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1iaXQgb2JqZWN0cy4KKwkjIE5vdGUgdGhhdCB0aGUgU3VuIGNjIGRvZXMgbm90IHR1cm4gX19MUDY0X18gaW50byAxIGxpa2UgZ2NjIGRvZXMuCisJIyBUaGlzIHRlc3Qgd29ya3MgZm9yIGJvdGggY29tcGlsZXJzLgorCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorCSAgICBpZiAoZWNobyAnI2lmZGVmIF9fYW1kNjQnOyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAorCQkoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAorCQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAorCSAgICB0aGVuCisJCVNVTl9BUkNIPSJ4ODZfNjQiCisJICAgIGZpCisJZmkKKwllY2hvICR7U1VOX0FSQ0h9LXBjLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisJZXhpdCA7OworICAgIHN1bjQqOlN1bk9TOjYqOiopCisJIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBjYW5vbmljYWxpemUKKwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAorCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCisJZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNCo6U3VuT1M6KjoqKQorCWNhc2UgImAvdXNyL2Jpbi9hcmNoIC1rYCIgaW4KKwkgICAgU2VyaWVzKnxTNCopCisJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAorCQk7OworCWVzYWMKKwkjIEphcGFuZXNlIExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCisJZWNobyBzcGFyYy1zdW4tc3Vub3NgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vJ2AKKwlleGl0IDs7CisgICAgc3VuMyo6U3VuT1M6KjoqKQorCWVjaG8gbTY4ay1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIHN1bio6Kjo0LjJCU0Q6KikKKwlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90ZCB8IGF3ayAne3ByaW50IHN1YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAorCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KKwkgICAgc3VuMykKKwkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKwkJOzsKKwkgICAgc3VuNCkKKwkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJCTs7CisJZXNhYworCWV4aXQgOzsKKyAgICBhdXNocDpTdW5PUzoqOiopCisJZWNobyBzcGFyYy1hdXNwZXgtc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCisgICAgIyBjYW4gYmUgdmlydHVhbGx5IGV2ZXJ5dGhpbmcgKGV2ZXJ5dGhpbmcgd2hpY2ggaXMgbm90CisgICAgIyAiYXRhcmlzdCIgb3IgImF0YXJpc3RlIiBhdCBsZWFzdCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgorICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBvdmVyICJGcmVlTWlOVCIKKyAgICAjIHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiAibWludCIgKG9yICJmcmVlbWludCIpLiAgRmluYWxseQorICAgICMgdGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0gd2hpY2ggaXMgYWN0dWFsbHkgbm90CisgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCisgICAgIyBiZSBubyBwcm9ibGVtLgorICAgIGF0YXJpc3RbZV06Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorICAgICAgICBleGl0IDs7CisgICAgKmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZhbGNvbio6Km1pbnQ6KjoqIHwgKmZhbGNvbio6KlRPUzoqOiopCisgICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCisgICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQorICAgICAgICBleGl0IDs7CisgICAgaGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KKyAgICAgICAgZXhpdCA7OworICAgICo6Kk1pTlQ6KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNFfQorICAgICAgICBleGl0IDs7CisgICAgbTY4azptYWNodGVuOio6KikKKwllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgcG93ZXJwYzptYWNodGVuOio6KikKKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgUklTQyo6TWFjaDoqOiopCisJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMworCWV4aXQgOzsKKyAgICBSSVNDKjpVTFRSSVg6KjoqKQorCWVjaG8gbWlwcy1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBWQVgqOlVMVFJJWCo6KjoqKQorCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIDIwMjA6Q0xJWDoqOiogfCAyNDMwOkNMSVg6KjoqKQorCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29zKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworI2lmZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KKwlpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworI2Vsc2UKKwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsgeworI2VuZGlmCisJI2lmIGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAoTUlQU0VCKQorCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCisJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzeXN2XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7CisJI2VuZGlmCisJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc3N2cjRcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKwkjZW5kaWYKKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc2JzZFxuIiwgYXJndlsxXSk7IGV4aXQgKDApOworCSNlbmRpZgorCSNlbmRpZgorCSAgZXhpdCAoLTEpOworCX0KK0VPRgorCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmCisJICBkdW1teWFyZz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3AnYCAmJgorCSAgU1lTVEVNX05BTUU9YCRkdW1teSAkZHVtbXlhcmdgICYmCisJICAgIHsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorCWVjaG8gbWlwcy1taXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgTW90b3JvbGE6UG93ZXJNQVhfT1M6KjoqKQorCWVjaG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAorCWV4aXQgOzsKKyAgICBNb3Rvcm9sYToqOjQuMzpQTDgtKikKKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisJZXhpdCA7OworICAgIE5pZ2h0X0hhd2s6KjoqOlBvd2VyTUFYX09TIHwgU3luZXJneTpQb3dlck1BWF9PUzoqOiopCisJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorCWV4aXQgOzsKKyAgICBOaWdodF9IYXdrOlBvd2VyX1VOSVg6KjoqKQorCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJ1bml4CisJZXhpdCA7OworICAgIG04OGs6Q1gvVVg6Nyo6KikKKwllY2hvIG04OGstaGFycmlzLWN4dXg3CisJZXhpdCA7OworICAgIG04OGs6Kjo0KjpSNCopCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3Y0CisJZXhpdCA7OworICAgIG04OGs6KjozKjpSMyopCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisJZXhpdCA7OworICAgIEFWaWlPTjpkZ3V4Oio6KikKKyAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKKwlpZiBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTAwIF0gfHwgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODExMCBdCisJdGhlbgorCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKKwkgICAgICAgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSB4IF0KKwkgICAgdGhlbgorCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KKwkgICAgZWxzZQorCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KKwkgICAgZmkKKwllbHNlCisJICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQorCWZpCisgCWV4aXQgOzsKKyAgICBNODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQorCWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCisJZXhpdCA7OworICAgIE04OCo6KjpSMyo6KikKKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisJZXhpdCA7OworICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQorCWVjaG8gbTg4ay10ZWt0cm9uaXgtc3lzdjMKKwlleGl0IDs7CisgICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKKwllY2hvIG02OGstdGVrdHJvbml4LWJzZAorCWV4aXQgOzsKKyAgICAqOklSSVgqOio6KikKKwllY2hvIG1pcHMtc2dpLWlyaXhgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vZydgCisJZXhpdCA7OworICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KKwllY2hvIHJvbXAtaWJtLWFpeCAgICAgIyB1bmFtZSAtbSBnaXZlcyBhbiA4IGhleC1jb2RlIENQVSBpZAorCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcKKyAgICBpKjg2OkFJWDoqOiopCisJZWNobyBpMzg2LWlibS1haXgKKwlleGl0IDs7CisgICAgaWE2NDpBSVg6KjoqKQorCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorCWVsc2UKKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKwlmaQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQorCWV4aXQgOzsKKyAgICAqOkFJWDoyOjMpCisJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+CisKKwkJbWFpbigpCisJCQl7CisJCQlpZiAoIV9fcG93ZXJfcGMoKSkKKwkJCQlleGl0KDEpOworCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKKwkJCWV4aXQoMCk7CisJCQl9CitFT0YKKwkJaWYgJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAKKwkJdGhlbgorCQkJZWNobyAiJFNZU1RFTV9OQU1FIgorCQllbHNlCisJCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKKwkJZmkKKwllbGlmIGdyZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKKwllbHNlCisJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIKKwlmaQorCWV4aXQgOzsKKyAgICAqOkFJWDoqOls0NTZdKQorCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBwcm9jZXNzb3IgLVMgYXZhaWxhYmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAorCWlmIC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBncmVwICcgUE9XRVInID4vZGV2L251bGwgMj4mMTsgdGhlbgorCQlJQk1fQVJDSD1yczYwMDAKKwllbHNlCisJCUlCTV9BUkNIPXBvd2VycGMKKwlmaQorCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorCWVsc2UKKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKwlmaQorCWVjaG8gJHtJQk1fQVJDSH0taWJtLWFpeCR7SUJNX1JFVn0KKwlleGl0IDs7CisgICAgKjpBSVg6KjoqKQorCWVjaG8gcnM2MDAwLWlibS1haXgKKwlleGl0IDs7CisgICAgaWJtcnQ6NC40QlNEOip8cm9tcC1pYm06QlNEOiopCisJZWNobyByb21wLWlibS1ic2Q0LjQKKwlleGl0IDs7CisgICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQKKwllY2hvIHJvbXAtaWJtLWJzZCR7VU5BTUVfUkVMRUFTRX0gICAjIDQuMyB3aXRoIHVuYW1lIGFkZGVkIHRvCisJZXhpdCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXBvcnQ6IHJvbXAtaWJtIEJTRCA0LjMKKyAgICAqOkJPU1g6KjoqKQorCWVjaG8gcnM2MDAwLWJ1bGwtYm9zeAorCWV4aXQgOzsKKyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQorCWVjaG8gbTY4ay1idWxsLXN5c3YzCisJZXhpdCA7OworICAgIDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6KikKKwllY2hvIG02OGstaHAtYnNkCisJZXhpdCA7OworICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4qOiopCisJZWNobyBtNjhrLWhwLWJzZDQuNAorCWV4aXQgOzsKKyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCisJSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7CisJICAgIDkwMDAvWzM0XT8/ICkgICAgICAgICBIUF9BUkNIPW02OGsgOzsKKwkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCisJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCisJCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19DUFVfVkVSU0lPTiAyPi9kZXYvbnVsbGAKKyAgICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgorICAgICAgICAgICAgICAgICAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFfMAorICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQorICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OworCQkJICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEwLjIwCisgICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7CisgICAgICAgICAgICAgICAgICAgIGVzYWMKKwkJZmkKKwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCisJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8nIDw8IEVPRiA+JGR1bW15LmMKKworICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQorICAgICAgICAgICAgICAjaW5jbHVkZSA8c3RkbGliLmg+CisgICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KKworICAgICAgICAgICAgICBpbnQgbWFpbiAoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKyAgICAgICAgICAgICAgICAgIGxvbmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsKKyAgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOworCisgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkKKyAgICAgICAgICAgICAgCXsKKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOworICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7CisgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgorICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQorICAgICAgICAgICAgICAJCXsKKyAgICAgICAgICAgICAgCQljYXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7CisgICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOworICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOworICAgICAgICAgICAgICAJCX0gYnJlYWs7CisgICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCisgICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisgICAgICAgICAgICAgIAl9CisgICAgICAgICAgICAgICAgICBleGl0ICgwKTsKKyAgICAgICAgICAgICAgfQorRU9GCisJCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAorCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQorCQlmaSA7OworCWVzYWMKKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KKwl0aGVuCisJICAgIGV2YWwgJHNldF9jY19mb3JfYnVpbGQKKworCSAgICAjIGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5kIGEgY29tcGlsZXIgZ2VuZXJhdGluZworCSAgICAjIDMyLWJpdCBjb2RlLiAgaHBwYTY0LWhwLWhwdXgqIGhhcyB0aGUgc2FtZSBrZXJuZWwgYW5kIGEgY29tcGlsZXIKKwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAgR05VIGFuZCBIUCB1c2UgZGlmZmVyZW50IG5vbWVuY2xhdHVyZToKKwkgICAgIworCSAgICAjICQgQ0NfRk9SX0JVSUxEPWNjIC4vY29uZmlnLmd1ZXNzCisJICAgICMgPT4gaHBwYTIuMHctaHAtaHB1eDExLjIzCisJICAgICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtEQTIuMHciIC4vY29uZmlnLmd1ZXNzCisJICAgICMgPT4gaHBwYTY0LWhwLWhwdXgxMS4yMworCisJICAgIGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwKKwkJZ3JlcCAtcSBfX0xQNjRfXworCSAgICB0aGVuCisJCUhQX0FSQ0g9ImhwcGEyLjB3IgorCSAgICBlbHNlCisJCUhQX0FSQ0g9ImhwcGE2NCIKKwkgICAgZmkKKwlmaQorCWVjaG8gJHtIUF9BUkNIfS1ocC1ocHV4JHtIUFVYX1JFVn0KKwlleGl0IDs7CisgICAgaWE2NDpIUC1VWDoqOiopCisJSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisJZWNobyBpYTY0LWhwLWhwdXgke0hQVVhfUkVWfQorCWV4aXQgOzsKKyAgICAzMDUwKjpISS1VWDoqOiopCisJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJI2luY2x1ZGUgPHVuaXN0ZC5oPgorCWludAorCW1haW4gKCkKKwl7CisJICBsb25nIGNwdSA9IHN5c2NvbmYgKF9TQ19DUFVfVkVSU0lPTik7CisJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVzZSBDUFVfSVNfSFBfTUM2OEsgZXJyb25lb3VzbHkgcmV0dXJucworCSAgICAgdHJ1ZSBmb3IgQ1BVX1BBX1JJU0MxXzAuICBDUFVfSVNfUEFfUklTQyByZXR1cm5zIGNvcnJlY3QKKwkgICAgIHJlc3VsdHMsIGhvd2V2ZXIuICAqLworCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQorCSAgICB7CisJICAgICAgc3dpdGNoIChjcHUpCisJCXsKKwkJICBjYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisJCSAgY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworCQkgIGNhc2UgQ1BVX1BBX1JJU0MyXzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKwkJICBkZWZhdWx0OiBwdXRzICgiaHBwYS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisJCX0KKwkgICAgfQorCSAgZWxzZSBpZiAoQ1BVX0lTX0hQX01DNjhLIChjcHUpKQorCSAgICBwdXRzICgibTY4ay1oaXRhY2hpLWhpdXh3ZTIiKTsKKwkgIGVsc2UgcHV0cyAoInVua25vd24taGl0YWNoaS1oaXV4d2UyIik7CisJICBleGl0ICgwKTsKKwl9CitFT0YKKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgorCQl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KKwllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCisJZXhpdCA7OworICAgIDkwMDAvNz8/OjQuM2JzZDoqOiogfCA5MDAwLzg/Wzc5XTo0LjNic2Q6KjoqICkKKwllY2hvIGhwcGExLjEtaHAtYnNkCisJZXhpdCA7OworICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCisJZWNobyBocHBhMS4wLWhwLWJzZAorCWV4aXQgOzsKKyAgICAqOT8/KjpNUEUvaVg6KjoqIHwgKjMwMDAqOk1QRS9pWDoqOiopCisJZWNobyBocHBhMS4wLWhwLW1wZWl4CisJZXhpdCA7OworICAgIGhwNz8/Ok9TRjE6KjoqIHwgaHA4P1s3OV06T1NGMToqOiogKQorCWVjaG8gaHBwYTEuMS1ocC1vc2YKKwlleGl0IDs7CisgICAgaHA4Pz86T1NGMToqOiopCisJZWNobyBocHBhMS4wLWhwLW9zZgorCWV4aXQgOzsKKyAgICBpKjg2Ok9TRjE6KjoqKQorCWlmIFsgLXggL3Vzci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMW1rCisJZWxzZQorCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxCisJZmkKKwlleGl0IDs7CisgICAgcGFyaXNjKjpMaXRlcyo6KjoqKQorCWVjaG8gaHBwYTEuMS1ocC1saXRlcworCWV4aXQgOzsKKyAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQorCWVjaG8gYzEtY29udmV4LWJzZAorICAgICAgICBleGl0IDs7CisgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikKKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorCWZpCisgICAgICAgIGV4aXQgOzsKKyAgICBDMzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCisJZWNobyBjMzQtY29udmV4LWJzZAorICAgICAgICBleGl0IDs7CisgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQorCWVjaG8gYzM4LWNvbnZleC1ic2QKKyAgICAgICAgZXhpdCA7OworICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCisJZWNobyBjNC1jb252ZXgtYnNkCisgICAgICAgIGV4aXQgOzsKKyAgICBDUkFZKlktTVA6KjoqOiopCisJZWNobyB5bXAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAorCXwgc2VkIC1lICdzL0NSQVkuKlwoW0EtWl05MFwpL1wxLycgXAorCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKKwkgICAgICAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgIENSQVkqVFM6KjoqOiopCisJZWNobyB0OTAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgQ1JBWSpUM0U6KjoqOiopCisJZWNobyBhbHBoYWV2NS1jcmF5LXVuaWNvc21rJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgIENSQVkqU1YxOio6KjoqKQorCWVjaG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgICo6VU5JQ09TL21wOio6KikKKwllY2hvIGNyYXludi1jcmF5LXVuaWNvc21wJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCA7OworICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQorCUZVSklUU1VfUFJPQz1gdW5hbWUgLW0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCisgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKKyAgICAgICAgZWNobyAiJHtGVUpJVFNVX1BST0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKKyAgICAgICAgZXhpdCA7OworICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAorICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAorICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisJZXhpdCA7OworICAgIGkqODY6QlNELzM4NjoqOiogfCBpKjg2OkJTRC9PUzoqOiogfCAqOkFzY2VuZFwgRW1iZWRkZWQvT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBzcGFyYyo6QlNEL09TOio6KikKKwllY2hvIHNwYXJjLXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpCU0QvT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6RnJlZUJTRDoqOiopCisJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCisJICAgIHBjOTgpCisJCWVjaG8gaTM4Ni11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisJICAgIGFtZDY0KQorCQllY2hvIHg4Nl82NC11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisJICAgICopCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisJZXNhYworCWV4aXQgOzsKKyAgICBpKjpDWUdXSU4qOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWN5Z3dpbgorCWV4aXQgOzsKKyAgICAqOk1JTkdXKjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1taW5ndzMyCisJZXhpdCA7OworICAgIGkqOndpbmRvd3MzMio6KikKKyAgICAJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0aGlzIHN5c3RlbS4KKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LW1pbmd3MzIKKwlleGl0IDs7CisgICAgaSo6UFcqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXB3MzIKKwlleGl0IDs7CisgICAgKjpJbnRlcml4KjoqKQorICAgIAljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KKwkgICAgeDg2KQorCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKwkJZXhpdCA7OworCSAgICBhdXRoZW50aWNhbWQgfCBnZW51aW5laW50ZWwgfCBFTTY0VCkKKwkJZWNobyB4ODZfNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorCQlleGl0IDs7CisJICAgIElBNjQpCisJCWVjaG8gaWE2NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisJCWV4aXQgOzsKKwllc2FjIDs7CisgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1XTg2OldpbmRvd3NfOTg6KiB8IFszNDVdODY6V2luZG93c19OVDoqKQorCWVjaG8gaSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCisJZXhpdCA7OworICAgIDg2NjQ6V2luZG93c19OVDoqKQorCWVjaG8geDg2XzY0LXBjLW1rcworCWV4aXQgOzsKKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/CisJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/CisJZWNobyBpNTg2LXBjLWludGVyaXgKKwlleGl0IDs7CisgICAgaSo6VVdJTio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtdXdpbgorCWV4aXQgOzsKKyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKKwllY2hvIHg4Nl82NC11bmtub3duLWN5Z3dpbgorCWV4aXQgOzsKKyAgICBwKjpDWUdXSU4qOiopCisJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1jeWd3aW4KKwlleGl0IDs7CisgICAgcHJlcCo6U3VuT1M6NS4qOiopCisJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgOzsKKyAgICAqOkdOVToqOiopCisJIyB0aGUgR05VIHN5c3RlbQorCWVjaG8gYGVjaG8gJHtVTkFNRV9NQUNISU5FfXxzZWQgLWUgJ3MsWy0vXS4qJCwsJ2AtdW5rbm93bi1nbnVgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncywvLiokLCwnYAorCWV4aXQgOzsKKyAgICAqOkdOVS8qOio6KikKKwkjIG90aGVyIHN5c3RlbXMgd2l0aCBHTlUgbGliYyBhbmQgdXNlcmxhbmQKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQorCWV4aXQgOzsKKyAgICBpKjg2Ok1pbml4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKKwlleGl0IDs7CisgICAgYWxwaGE6TGludXg6KjoqKQorCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9gIGluCisJICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7OworCSAgRVY1NikgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjU2IDs7CisJICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisJICBFVjYpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OworCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7CisJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKKyAgICAgICAgZXNhYworCW9iamR1bXAgLS1wcml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgLXEgbGQuc28uMQorCWlmIHRlc3QgIiQ/IiA9IDAgOyB0aGVuIExJQkM9ImxpYmMxIiA7IGVsc2UgTElCQz0iIiA7IGZpCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251JHtMSUJDfQorCWV4aXQgOzsKKyAgICBhcm0qOkxpbnV4Oio6KikKKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJaWYgZWNobyBfX0FSTV9FQUJJX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorCSAgICB8IGdyZXAgLXEgX19BUk1fRUFCSV9fCisJdGhlbgorCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwllbHNlCisJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmkKKwlmaQorCWV4aXQgOzsKKyAgICBhdnIzMio6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBjcmlzOkxpbnV4Oio6KikKKwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKKwlleGl0IDs7CisgICAgY3Jpc3YzMjpMaW51eDoqOiopCisJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251CisJZXhpdCA7OworICAgIGZydjpMaW51eDoqOiopCisgICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIGkqODY6TGludXg6KjoqKQorCUxJQkM9Z251CisJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJI2lmZGVmIF9fZGlldGxpYmNfXworCUxJQkM9ZGlldGxpYmMKKwkjZW5kaWYKK0VPRgorCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeTElCQydgCisJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IgorCWV4aXQgOzsKKyAgICBpYTY0OkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgbTMycio6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBtNjgqOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgbWlwczpMaW51eDoqOiogfCBtaXBzNjQ6TGludXg6KjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSN1bmRlZiBDUFUKKwkjdW5kZWYgJHtVTkFNRV9NQUNISU5FfQorCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9ZWwKKwkjaWYgZGVmaW5lZChfX01JUFNFTF9fKSB8fCBkZWZpbmVkKF9fTUlQU0VMKSB8fCBkZWZpbmVkKF9NSVBTRUwpIHx8IGRlZmluZWQoTUlQU0VMKQorCUNQVT0ke1VOQU1FX01BQ0hJTkV9ZWwKKwkjZWxzZQorCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCisJQ1BVPSR7VU5BTUVfTUFDSElORX0KKwkjZWxzZQorCUNQVT0KKwkjZW5kaWYKKwkjZW5kaWYKK0VPRgorCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeQ1BVJ2AKKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQorCTs7CisgICAgb3IzMjpMaW51eDoqOiopCisJZWNobyBvcjMyLXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHBhZHJlOkxpbnV4Oio6KikKKwllY2hvIHNwYXJjLXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCisJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgcGFyaXNjOkxpbnV4Oio6KiB8IGhwcGE6TGludXg6KjoqKQorCSMgTG9vayBmb3IgQ1BVIGxldmVsCisJY2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9udWxsIHwgY3V0IC1kJyAnIC1mMmAgaW4KKwkgIFBBNyopIGVjaG8gaHBwYTEuMS11bmtub3duLWxpbnV4LWdudSA7OworCSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24tbGludXgtZ251IDs7CisJICAqKSAgICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsKKwllc2FjCisJZXhpdCA7OworICAgIHBwYzY0OkxpbnV4Oio6KikKKwllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBwcGM6TGludXg6KjoqKQorCWVjaG8gcG93ZXJwYy11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBzMzkwOkxpbnV4Oio6KiB8IHMzOTB4OkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWxpbnV4CisJZXhpdCA7OworICAgIHNoNjQqOkxpbnV4Oio6KikKKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHNoKjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHNwYXJjOkxpbnV4Oio6KiB8IHNwYXJjNjQ6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICB2YXg6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtbGludXgtZ251CisJZXhpdCA7OworICAgIHg4Nl82NDpMaW51eDoqOiopCisJZWNobyB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgeHRlbnNhKjpMaW51eDoqOiopCisgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQorCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNvcnJlY3RseSwgd2l0aCBEWU5JWC9wdHggaW4gdGhlcmUuCisJIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUgaW4gYm90aAorCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCisJZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKKwlleGl0IDs7CisgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKKyAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBvZmZzaG9vdCBvZiBTVlI0LCBidXQgaXQgaGFzIGl0cyBvd24gdmVyc2lvbgorICAgICAgICAjIG51bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCisgICAgICAgICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKKwkjIEkganVzdCBoYXZlIHRvIGhvcGUuICAtLSBybXMuCisgICAgICAgICMgVXNlIHN5c3Y0LjJ1dy4uLiBzbyB0aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059CisJZXhpdCA7OworICAgIGkqODY6T1MvMjoqOiopCisJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNvbXBhdGliaWxpdHkKKwkjIGlzIHByb2JhYmx5IGluc3RhbGxlZC4KKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtb3MyLWVteAorCWV4aXQgOzsKKyAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKKwlleGl0IDs7CisgICAgaSo4NjphdGhlb3M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWF0aGVvcworCWV4aXQgOzsKKyAgICBpKjg2OnN5bGxhYmxlOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lsbGFibGUKKwlleGl0IDs7CisgICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5bnhPUzo0LlswMl0qOiopCisJZWNobyBpMzg2LXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBpKjg2OipET1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc2Rvc2RqZ3BwCisJZXhpdCA7OworICAgIGkqODY6Kjo0Lio6KiB8IGkqODY6U1lTVEVNX1Y6NC4qOiopCisJVU5BTUVfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgJ3MvXC9NUCQvLydgCisJaWYgZ3JlcCBOb3ZlbGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bml2ZWwtc3lzdiR7VU5BTUVfUkVMfQorCWVsc2UKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KKwlmaQorCWV4aXQgOzsKKyAgICBpKjg2Oio6NTpbNjc4XSopCisgICAgCSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgorCWNhc2UgYC9iaW4vdW5hbWUgLVggfCBncmVwICJeTWFjaGluZSJgIGluCisJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OworCSAgICAqUGVudGl1bSkJICAgICBVTkFNRV9NQUNISU5FPWk1ODYgOzsKKwkgICAgKlBlbnQqfCpDZWxlcm9uKSBVTkFNRV9NQUNISU5FPWk2ODYgOzsKKwllc2FjCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0ke1VOQU1FX1NZU1RFTX0ke1VOQU1FX1ZFUlNJT059CisJZXhpdCA7OworICAgIGkqODY6KjozLjI6KikKKwlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCisJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKKwllbGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KKwkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAorCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAorCWVsc2UKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorCWZpCisJZXhpdCA7OworICAgIHBjOio6KjoqKQorCSMgTGVmdCBoZXJlIGZvciBjb21wYXRpYmlsaXR5OgorICAgICAgICAjIHVuYW1lIC1tIHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91dAorICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpNTg2LgorCSMgTm90ZTogd2hhdGV2ZXIgdGhpcyBpcywgaXQgTVVTVCBiZSB0aGUgc2FtZSBhcyB3aGF0IGNvbmZpZy5zdWIKKwkjIHByaW50cyBmb3IgdGhlICJkamdwcCIgaG9zdCwgb3IgZWxzZSBHREIgY29uZmlndXJ5IHdpbGwgZGVjaWRlIHRoYXQKKwkjIHRoaXMgaXMgYSBjcm9zcy1idWlsZC4KKwllY2hvIGk1ODYtcGMtbXNkb3NkamdwcAorICAgICAgICBleGl0IDs7CisgICAgSW50ZWw6TWFjaDozKjoqKQorCWVjaG8gaTM4Ni1wYy1tYWNoMworCWV4aXQgOzsKKyAgICBwYXJhZ29uOio6KjoqKQorCWVjaG8gaTg2MC1pbnRlbC1vc2YxCisJZXhpdCA7OworICAgIGk4NjA6Kjo0Lio6KikgIyBpODYwLVNWUjQKKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorCSAgZWNobyBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAorCWVsc2UgIyBBZGQgb3RoZXIgaTg2MC1TVlI0IHZlbmRvcnMgYmVsb3cgYXMgdGhleSBhcmUgZGlzY292ZXJlZC4KKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0CisJZmkKKwlleGl0IDs7CisgICAgbWluaSo6Q1RJWDpTWVMqNToqKQorCSMgIm1pbmlmcmFtZSIKKwllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKKwlleGl0IDs7CisgICAgbWM2OGs6VU5JWDpTWVNURU01OjMuNTFtKQorCWVjaG8gbTY4ay1jb252ZXJnZW50LXN5c3YKKwlleGl0IDs7CisgICAgTTY4MD8wOkQtTklYOjUuMzoqKQorCWVjaG8gbTY4ay1kaWFiLWRuaXgKKwlleGl0IDs7CisgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKKwl0ZXN0IC1yIC9zeXNWNjggJiYgeyBlY2hvICdtNjhrLW1vdG9yb2xhLXN5c3YnOyBleGl0OyB9IDs7CisgICAgM1szNDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjApCisJT1NfUkVMPScnCisJdGVzdCAtciAvZXRjLy5yZWxpZCBcCisJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKwkgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9CisJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisJICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OworICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQorICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKyAgICAgICAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsKKyAgICBOQ1IqOio6NC4yOiogfCBNUFJBUyo6Kjo0LjI6KikKKwlPU19SRUw9Jy4zJworCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAorCSAgICAmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAorCSAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAorCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgcHRlcm9uID4vZGV2L251bGwgXAorCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OworICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9WOjQuKjoqKQorCWVjaG8gbTY4ay1hdGFyaS1zeXN2NAorCWV4aXQgOzsKKyAgICBUU1VOQU1JOkx5bnhPUzoyLio6KikKKwllY2hvIHNwYXJjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICByczYwMDA6THlueE9TOjIuKjoqKQorCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBQb3dlclBDOkx5bnhPUzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9TOjQuWzAyXSo6KikKKwllY2hvIHBvd2VycGMtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisJZWNobyBtaXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCisJZWNobyBtaXBzLXNuaS1zeXN2NAorCWV4aXQgOzsKKyAgICBSTSo6U0lOSVgtKjoqOiopCisJZWNobyBtaXBzLXNuaS1zeXN2NAorCWV4aXQgOzsKKyAgICAqOlNJTklYLSo6KjoqKQorCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0aGVuCisJCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2L251bGxgCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zbmktc3lzdjQKKwllbHNlCisJCWVjaG8gbnMzMmstc25pLXN5c3YKKwlmaQorCWV4aXQgOzsKKyAgICBQRU5USVVNOio6NC4wKjoqKSAjIFVuaXN5cyBgQ2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAorICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKyAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAorICAgICAgICBleGl0IDs7CisgICAgKjpVTklYX1N5c3RlbV9WOjQqOkZUWCopCisJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNAb3Blbm1hcmtldC5jb20+LgorCSMgSG93IGFib3V0IGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIHN0cmF0dXMgYXJjaGl0ZWN0dXJlcz8gLWRqbQorCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXN5c3Y0CisJZXhpdCA7OworICAgICo6KjoqOkZUWCopCisJIyBGcm9tIHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisJZWNobyBpODYwLXN0cmF0dXMtc3lzdjQKKwlleGl0IDs7CisgICAgaSo4NjpWT1M6KjoqKQorCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zdHJhdHVzLXZvcworCWV4aXQgOzsKKyAgICAqOlZPUzoqOiopCisJIyBGcm9tIFBhdWwuR3JlZW5Ac3RyYXR1cy5jb20uCisJZWNobyBocHBhMS4xLXN0cmF0dXMtdm9zCisJZXhpdCA7OworICAgIG1jNjgqOkEvVVg6KjoqKQorCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIG5ld3MqOk5FV1MtT1M6Nio6KikKKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2CisJZXhpdCA7OworICAgIFJbMzRdMDAwOipTeXN0ZW1fVio6KjoqIHwgUjQwMDA6VU5JWF9TWVNWOio6KiB8IFIqMDAwOlVOSVhfU1Y6KjoqKQorCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgorCSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNFfQorCWVsc2UKKwkgICAgICAgIGVjaG8gbWlwcy11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisJZmkKKyAgICAgICAgZXhpdCA7OworICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KKwllY2hvIHBvd2VycGMtYmUtYmVvcworCWV4aXQgOzsKKyAgICBCZU1hYzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9uZSwgUFBDIG9ubHkuCisJZWNobyBwb3dlcnBjLWFwcGxlLWJlb3MKKwlleGl0IDs7CisgICAgQmVQQzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKwllY2hvIGk1ODYtcGMtYmVvcworCWV4aXQgOzsKKyAgICBCZVBDOkhhaWt1Oio6KikJIyBIYWlrdSBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCisJZWNobyBpNTg2LXBjLWhhaWt1CisJZXhpdCA7OworICAgIFNYLTQ6U1VQRVItVVg6KjoqKQorCWVjaG8gc3g0LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBTWC01OlNVUEVSLVVYOio6KikKKwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgU1gtNjpTVVBFUi1VWDoqOiopCisJZWNobyBzeDYtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIFNYLTc6U1VQRVItVVg6KjoqKQorCWVjaG8gc3g3LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBTWC04OlNVUEVSLVVYOio6KikKKwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgU1gtOFI6U1VQRVItVVg6KjoqKQorCWVjaG8gc3g4ci1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgUG93ZXIqOlJoYXBzb2R5Oio6KikKKwllY2hvIHBvd2VycGMtYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6UmhhcHNvZHk6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpEYXJ3aW46KjoqKQorCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCisJY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCisJICAgIGkzODYpCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCisJCSAgaWYgKGVjaG8gJyNpZmRlZiBfX0xQNjRfXyc7IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlmJykgfCBcCisJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfCBcCisJCSAgICAgIGdyZXAgSVNfNjRCSVRfQVJDSCA+L2Rldi9udWxsCisJCSAgdGhlbgorCQkgICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKKwkJICBmaQorCQlmaSA7OworCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OworCWVzYWMKKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS1hcHBsZS1kYXJ3aW4ke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQorCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgCisJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhlbgorCQlVTkFNRV9QUk9DRVNTT1I9aTM4NgorCQlVTkFNRV9NQUNISU5FPXBjCisJZmkKKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50by1xbngke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6UU5YOio6NCopCisJZWNobyBpMzg2LXBjLXFueAorCWV4aXQgOzsKKyAgICBOU0UtPzpOT05TVE9QX0tFUk5FTDoqOiopCisJZWNobyBuc2UtdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6Tm9uU3RvcC1VWDoqOiopCisJZWNobyBtaXBzLWNvbXBhcS1ub25zdG9wdXgKKwlleGl0IDs7CisgICAgQlMyMDAwOlBPU0lYKjoqOiopCisJZWNobyBiczIwMDAtc2llbWVucy1zeXN2CisJZXhpdCA7OworICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6UGxhbjk6KjoqKQorCSMgInVuYW1lIC1tIiBpcyBub3QgY29uc2lzdGVudCwgc28gdXNlICRjcHV0eXBlIGluc3RlYWQuIDM4NgorCSMgaXMgY29udmVydGVkIHRvIGkzODYgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgeDg2CisJIyBvcGVyYXRpbmcgc3lzdGVtcy4KKwlpZiB0ZXN0ICIkY3B1dHlwZSIgPSAiMzg2IjsgdGhlbgorCSAgICBVTkFNRV9NQUNISU5FPWkzODYKKwllbHNlCisJICAgIFVOQU1FX01BQ0hJTkU9IiRjcHV0eXBlIgorCWZpCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKKwlleGl0IDs7CisgICAgKjpUT1BTLTEwOio6KikKKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCisJZXhpdCA7OworICAgICo6VEVORVg6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAorCWV4aXQgOzsKKyAgICBLUzEwOlRPUFMtMjA6KjoqIHwgS0wxMDpUT1BTLTIwOio6KiB8IFRZUEU0OlRPUFMtMjA6KjoqKQorCWVjaG8gcGRwMTAtZGVjLXRvcHMyMAorCWV4aXQgOzsKKyAgICBYS0wtMTpUT1BTLTIwOio6KiB8IFRZUEU1OlRPUFMtMjA6KjoqKQorCWVjaG8gcGRwMTAteGtsLXRvcHMyMAorCWV4aXQgOzsKKyAgICAqOlRPUFMtMjA6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKKwlleGl0IDs7CisgICAgKjpJVFM6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi1pdHMKKwlleGl0IDs7CisgICAgU0VJOio6KjpTRUlVWCkKKyAgICAgICAgZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpEcmFnb25GbHk6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKKwlleGl0IDs7CisgICAgKjoqVk1TOio6KikKKyAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgorCSAgICBBKikgZWNobyBhbHBoYS1kZWMtdm1zIDsgZXhpdCA7OworCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7CisJICAgIFYqKSBlY2hvIHZheC1kZWMtdm1zIDsgZXhpdCA7OworCWVzYWMgOzsKKyAgICAqOlhFTklYOio6U3lzVikKKwllY2hvIGkzODYtcGMteGVuaXgKKwlleGl0IDs7CisgICAgaSo4Njpza3lvczoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNreW9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfWAgfCBzZWQgLWUgJ3MvIC4qJC8vJworCWV4aXQgOzsKKyAgICBpKjg2OnJkb3M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1yZG9zCisJZXhpdCA7OworICAgIGkqODY6QVJPUzoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWFyb3MKKwlleGl0IDs7Citlc2FjCisKKyNlY2hvICcoTm8gdW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4mMgorI2VjaG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgMT4mMgorCitldmFsICRzZXRfY2NfZm9yX2J1aWxkCitjYXQgPiRkdW1teS5jIDw8RU9GCisjaWZkZWYgX1NFUVVFTlRfCisjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorI2VuZGlmCittYWluICgpCit7CisjaWYgZGVmaW5lZCAoc29ueSkKKyNpZiBkZWZpbmVkIChNSVBTRUIpCisgIC8qIEJGRCB3YW50cyAiYnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQgc2hvdWxkIGJlIGNoYW5nZWQsCisgICAgIEkgZG9uJ3Qga25vdy4uLi4gICovCisgIHByaW50ZiAoIm1pcHMtc29ueS1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbHNlCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisgIHByaW50ZiAoIm02OGstc29ueS1uZXdzb3Mlc1xuIiwKKyNpZmRlZiBORVdTT1M0CisgICAgICAgICAgIjQiCisjZWxzZQorCSAgIiIKKyNlbmRpZgorICAgICAgICAgKTsgZXhpdCAoMCk7CisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoX19hcm0pICYmIGRlZmluZWQgKF9fYWNvcm4pICYmIGRlZmluZWQgKF9fdW5peCkKKyAgcHJpbnRmICgiYXJtLWFjb3JuLXJpc2NpeFxuIik7IGV4aXQgKDApOworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChocDMwMCkgJiYgIWRlZmluZWQgKGhwdXgpCisgIHByaW50ZiAoIm02OGstaHAtYnNkXG4iKTsgZXhpdCAoMCk7CisjZW5kaWYKKworI2lmIGRlZmluZWQgKE5lWFQpCisjaWYgIWRlZmluZWQgKF9fQVJDSElURUNUVVJFX18pCisjZGVmaW5lIF9fQVJDSElURUNUVVJFX18gIm02OGsiCisjZW5kaWYKKyAgaW50IHZlcnNpb247CisgIHZlcnNpb249YChob3N0aW5mbyB8IHNlZCAtbiAncy8uKk5lWFQgTWFjaCBcKFswLTldKlwpLiovXDEvcCcpIDI+L2Rldi9udWxsYDsKKyAgaWYgKHZlcnNpb24gPCA0KQorICAgIHByaW50ZiAoIiVzLW5leHQtbmV4dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7CisgIGVsc2UKKyAgICBwcmludGYgKCIlcy1uZXh0LW9wZW5zdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24pOworICBleGl0ICgwKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoTVVMVElNQVgpIHx8IGRlZmluZWQgKG4xNikKKyNpZiBkZWZpbmVkIChVTUFYVikKKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLXN5c3ZcbiIpOyBleGl0ICgwKTsKKyNlbHNlCisjaWYgZGVmaW5lZCAoQ01VKQorICBwcmludGYgKCJuczMyay1lbmNvcmUtbWFjaFxuIik7IGV4aXQgKDApOworI2Vsc2UKKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLWJzZFxuIik7IGV4aXQgKDApOworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoX18zODZCU0RfXykKKyAgcHJpbnRmICgiaTM4Ni1wYy1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoc2VxdWVudCkKKyNpZiBkZWZpbmVkIChpMzg2KQorICBwcmludGYgKCJpMzg2LXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorI2lmIGRlZmluZWQgKG5zMzIwMDApCisgIHByaW50ZiAoIm5zMzJrLXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfU0VRVUVOVF8pCisgICAgc3RydWN0IHV0c25hbWUgdW47CisKKyAgICB1bmFtZSgmdW4pOworCisgICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYyIiwgMikgPT0gMCkgeworCXByaW50ZiAoImkzODYtc2VxdWVudC1wdHgyXG4iKTsgZXhpdCAoMCk7CisgICAgfQorICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMSIsIDIpID09IDApIHsgLyogWFhYIGlzIFYxIGNvcnJlY3Q/ICovCisJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDFcbiIpOyBleGl0ICgwKTsKKyAgICB9CisgICAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eFxuIik7IGV4aXQgKDApOworCisjZW5kaWYKKworI2lmIGRlZmluZWQgKHZheCkKKyMgaWYgIWRlZmluZWQgKHVsdHJpeCkKKyMgIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgorIyAgaWYgZGVmaW5lZCAoQlNEKQorIyAgIGlmIEJTRCA9PSA0MworICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNcbiIpOyBleGl0ICgwKTsKKyMgICBlbHNlCisjICAgIGlmIEJTRCA9PSAxOTkwMDYKKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zcmVub1xuIik7IGV4aXQgKDApOworIyAgICBlbHNlCisgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOworIyAgICBlbmRpZgorIyAgIGVuZGlmCisjICBlbHNlCisgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIpOyBleGl0ICgwKTsKKyMgIGVuZGlmCisjIGVsc2UKKyAgICBwcmludGYgKCJ2YXgtZGVjLXVsdHJpeFxuIik7IGV4aXQgKDApOworIyBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChhbGxpYW50KSAmJiBkZWZpbmVkIChpODYwKQorICBwcmludGYgKCJpODYwLWFsbGlhbnQtYnNkXG4iKTsgZXhpdCAoMCk7CisjZW5kaWYKKworICBleGl0ICgxKTsKK30KK0VPRgorCiskQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgorCXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorCisjIEFwb2xsb3MgcHV0IHRoZSBzeXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJvbm1lbnQuCisKK3Rlc3QgLWQgL3Vzci9hcG9sbG8gJiYgeyBlY2hvICR7SVNQfS1hcG9sbG8tJHtTWVNUWVBFfTsgZXhpdDsgfQorCisjIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUgdW5hbWUgY2FuIHVzZSBnZXRzeXNpbmZvKDEpCisKK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCit0aGVuCisgICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KKyAgICBjMSopCisJZWNobyBjMS1jb252ZXgtYnNkCisJZXhpdCA7OworICAgIGMyKikKKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorCWZpCisJZXhpdCA7OworICAgIGMzNCopCisJZWNobyBjMzQtY29udmV4LWJzZAorCWV4aXQgOzsKKyAgICBjMzgqKQorCWVjaG8gYzM4LWNvbnZleC1ic2QKKwlleGl0IDs7CisgICAgYzQqKQorCWVjaG8gYzQtY29udmV4LWJzZAorCWV4aXQgOzsKKyAgICBlc2FjCitmaQorCitjYXQgPiYyIDw8RU9GCiskMDogdW5hYmxlIHRvIGd1ZXNzIHN5c3RlbSB0eXBlCisKK1RoaXMgc2NyaXB0LCBsYXN0IG1vZGlmaWVkICR0aW1lc3RhbXAsIGhhcyBmYWlsZWQgdG8gcmVjb2duaXplCit0aGUgb3BlcmF0aW5nIHN5c3RlbSB5b3UgYXJlIHVzaW5nLiBJdCBpcyBhZHZpc2VkIHRoYXQgeW91Citkb3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBzY3JpcHRzIGZyb20KKworICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKK2FuZAorICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECisKK0lmIHRoZSB2ZXJzaW9uIHlvdSBydW4gKCQwKSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUsIHBsZWFzZQorc2VuZCB0aGUgZm9sbG93aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWlnaHQgYmUKK3BlcnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgbmVlZGVkCitpbmZvcm1hdGlvbiB0byBoYW5kbGUgeW91ciBzeXN0ZW0uCisKK2NvbmZpZy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0YW1wCisKK3VuYW1lIC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAordW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCit1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorCisvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxsYAorL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsYAorCitob3N0aW5mbyAgICAgICAgICAgICAgID0gYChob3N0aW5mbykgMj4vZGV2L251bGxgCisvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAKKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsYAorL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9hcmNoKSAyPi9kZXYvbnVsbGAKKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsYAorL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxgCisKK1VOQU1FX01BQ0hJTkUgPSAke1VOQU1FX01BQ0hJTkV9CitVTkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxFQVNFfQorVU5BTUVfU1lTVEVNICA9ICR7VU5BTUVfU1lTVEVNfQorVU5BTUVfVkVSU0lPTiA9ICR7VU5BTUVfVkVSU0lPTn0KK0VPRgorCitleGl0IDEKKworIyBMb2NhbCB2YXJpYWJsZXM6CisjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgorIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisjIHRpbWUtc3RhbXAtZW5kOiAiJyIKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9jb25maWcuaC5pbiBiL2xpYnhtbDItMi43LjcvY29uZmlnLmguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY0NWM2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvY29uZmlnLmguaW4KQEAgLTAsMCArMSwzMDggQEAKKy8qIGNvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmluIGJ5IGF1dG9oZWFkZXIuICAqLworI3VuZGVmIFBBQ0tBR0UKKyN1bmRlZiBWRVJTSU9OCisjdW5kZWYgSEFWRV9MSUJaCisjdW5kZWYgSEFWRV9MSUJNCisjdW5kZWYgSEFWRV9JU0lORgorI3VuZGVmIEhBVkVfSVNOQU4KKyN1bmRlZiBIQVZFX0xJQkhJU1RPUlkKKyN1bmRlZiBIQVZFX0xJQlJFQURMSU5FCisjdW5kZWYgSEFWRV9MSUJQVEhSRUFECisjdW5kZWYgSEFWRV9QVEhSRUFEX0gKKworLyogRGVmaW5lIGlmIElQVjYgc3VwcG9ydCBpcyB0aGVyZSAqLworI3VuZGVmIFNVUFBPUlRfSVA2CisKKy8qIERlZmluZSBpZiBnZXRhZGRyaW5mbyBpcyB0aGVyZSAqLworI3VuZGVmIEhBVkVfR0VUQUREUklORk8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhbnNpZGVjbC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0FOU0lERUNMX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhcnBhL2luZXQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9BUlBBX0lORVRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFycGEvbmFtZXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0FSUEFfTkFNRVNFUl9ICisKKy8qIFdoZXRoZXIgc3RydWN0IHNvY2thZGRyOjpfX3NzX2ZhbWlseSBleGlzdHMgKi8KKyN1bmRlZiBIQVZFX0JST0tFTl9TU19GQU1JTFkKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjbGFzcycgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9DTEFTUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGN0eXBlLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfQ1RZUEVfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0RJUkVOVF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGxmY24uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9ETEZDTl9ICisKKy8qIEhhdmUgZGxvcGVuIGJhc2VkIGRzbyAqLworI3VuZGVmIEhBVkVfRExPUEVOCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGwuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9ETF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZXJybm8uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9FUlJOT19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9GQ05UTF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmluaXRlJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZJTklURQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZsb2F0Lmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfRkxPQVRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZwY2xhc3MnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlBDTEFTUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZwcmludGYnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlBSSU5URgorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZwX2NsYXNzJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZQX0NMQVNTCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZnBfY2xhc3MuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9GUF9DTEFTU19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZnRpbWUnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlRJTUUKKworLyogRGVmaW5lIGlmIGdldGFkZHJpbmZvIGlzIHRoZXJlICovCisjdW5kZWYgSEFWRV9HRVRBRERSSU5GTworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHRpbWVvZmRheScgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9HRVRUSU1FT0ZEQVkKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpZWVlZnAuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9JRUVFRlBfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmguaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9JTlRUWVBFU19IX0gKKworLyogRGVmaW5lIGlmIGlzaW5mIGlzIHRoZXJlICovCisjdW5kZWYgSEFWRV9JU0lORgorCisvKiBEZWZpbmUgaWYgaXNuYW4gaXMgdGhlcmUgKi8KKyN1bmRlZiBIQVZFX0lTTkFOCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaXNuYW5kJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0lTTkFORAorCisvKiBEZWZpbmUgaWYgaGlzdG9yeSBsaWJyYXJ5IGlzIHRoZXJlICgtbGhpc3RvcnkpICovCisjdW5kZWYgSEFWRV9MSUJISVNUT1JZCisKKy8qIERlZmluZSBpZiBwdGhyZWFkIGxpYnJhcnkgaXMgdGhlcmUgKC1scHRocmVhZCkgKi8KKyN1bmRlZiBIQVZFX0xJQlBUSFJFQUQKKworLyogRGVmaW5lIGlmIHJlYWRsaW5lIGxpYnJhcnkgaXMgdGhlcmUgKC1scmVhZGxpbmUpICovCisjdW5kZWYgSEFWRV9MSUJSRUFETElORQorCisvKiBIYXZlIGNvbXByZXNzaW9uIGxpYnJhcnkgKi8KKyN1bmRlZiBIQVZFX0xJQloKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHMuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9MSU1JVFNfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxvY2FsdGltZScgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9MT0NBTFRJTUUKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9NQUxMT0NfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hdGguaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9NQVRIX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9NRU1PUllfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5hbi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX05BTl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuICovCisjdW5kZWYgSEFWRV9ORElSX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRkYi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX05FVERCX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1BPTExfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByaW50ZicgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9QUklOVEYKKworLyogRGVmaW5lIGlmIDxwdGhyZWFkLmg+IGlzIHRoZXJlICovCisjdW5kZWYgSEFWRV9QVEhSRUFEX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxyZXNvbHYuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9SRVNPTFZfSAorCisvKiBIYXZlIHNobF9sb2FkIGJhc2VkIGRzbyAqLworI3VuZGVmIEhBVkVfU0hMTE9BRAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ25hbCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TSUdOQUwKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzaWduYWwuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TSUdOQUxfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNucHJpbnRmJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NOUFJJTlRGCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3ByaW50ZicgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TUFJJTlRGCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3NjYW5mJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NTQ0FORgorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0YXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU1RBVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGFyZy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NUREFSR19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1RESU5UX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TVERMSUJfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmR1cCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TVFJEVVAKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJlcnJvcicgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TVFJFUlJPUgorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmZ0aW1lJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NUUkZUSU1FCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NUUklOR1NfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NUUklOR19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybmR1cCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TVFJORFVQCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCisgICAqLworI3VuZGVmIEhBVkVfU1lTX0RJUl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21tYW4uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfTU1BTl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgorICAgKi8KKyN1bmRlZiBIQVZFX1NZU19ORElSX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1NFTEVDVF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tldC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19TT0NLRVRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lYi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19USU1FQl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWUuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfVElNRV9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1RZUEVTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx0aW1lLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfVElNRV9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfVU5JU1REX0gKKworLyogV2hldGhlciB2YV9jb3B5KCkgaXMgYXZhaWxhYmxlICovCisjdW5kZWYgSEFWRV9WQV9DT1BZCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdmZwcmludGYnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfVkZQUklOVEYKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB2c25wcmludGYnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfVlNOUFJJTlRGCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdnNwcmludGYnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfVlNQUklOVEYKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx6bGliLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfWkxJQl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgX3N0YXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfX1NUQVQKKworLyogV2hldGhlciBfX3ZhX2NvcHkoKSBpcyBhdmFpbGFibGUgKi8KKyN1bmRlZiBIQVZFX19fVkFfQ09QWQorCisvKiBEZWZpbmUgYXMgY29uc3QgaWYgdGhlIGRlY2xhcmF0aW9uIG9mIGljb252KCkgbmVlZHMgY29uc3QuICovCisjdW5kZWYgSUNPTlZfQ09OU1QKKworLyogRGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5zdGFsbGVkIGxpYnJhcmllcy4KKyAgICovCisjdW5kZWYgTFRfT0JKRElSCisKKy8qIE5hbWUgb2YgcGFja2FnZSAqLworI3VuZGVmIFBBQ0tBR0UKKworLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCisjdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKKworLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworI3VuZGVmIFBBQ0tBR0VfTkFNRQorCisvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCisjdW5kZWYgUEFDS0FHRV9TVFJJTkcKKworLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQorCisvKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgorCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgQyBjb21waWxlciBzdXBwb3J0cyBmdW5jdGlvbiBwcm90b3R5cGVzLiAqLworI3VuZGVmIFBST1RPVFlQRVMKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCisjdW5kZWYgU1REQ19IRUFERVJTCisKKy8qIFN1cHBvcnQgZm9yIElQdjYgKi8KKyN1bmRlZiBTVVBQT1JUX0lQNgorCisvKiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCisjdW5kZWYgVkVSU0lPTgorCisvKiBEZXRlcm1pbmUgd2hhdCBzb2NrZXQgbGVuZ3RoIChzb2NrbGVuX3QpIGRhdGEgdHlwZSBpcyAqLworI3VuZGVmIFhNTF9TT0NLTEVOX1QKKworLyogVXNpbmcgdGhlIFdpbjMyIFNvY2tldCBpbXBsZW1lbnRhdGlvbiAqLworI3VuZGVmIF9XSU5TT0NLQVBJXworCisvKiBEZWZpbmUgbGlrZSBQUk9UT1RZUEVTOyB0aGlzIGNhbiBiZSB1c2VkIGJ5IHN5c3RlbSBoZWFkZXJzLiAqLworI3VuZGVmIF9fUFJPVE9UWVBFUworCisvKiBXaW4zMiBTdGQgQyBuYW1lIG1hbmdsaW5nIHdvcmstYXJvdW5kICovCisjdW5kZWYgc25wcmludGYKKworLyogc3NfZmFtaWx5IGlzIG5vdCBkZWZpbmVkIGhlcmUsIHVzZSBfX3NzX2ZhbWlseSBpbnN0ZWFkICovCisjdW5kZWYgc3NfZmFtaWx5CisKKy8qIFdpbjMyIFN0ZCBDIG5hbWUgbWFuZ2xpbmcgd29yay1hcm91bmQgKi8KKyN1bmRlZiB2c25wcmludGYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvY29uZmlnLnN1YiBiL2xpYnhtbDItMi43LjcvY29uZmlnLnN1YgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYTU1YTUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9jb25maWcuc3ViCkBAIC0wLDAgKzEsMTcwNSBAQAorIyEgL2Jpbi9zaAorIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91dGluZSBzY3JpcHQuCisjICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAorIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkKKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwordGltZXN0YW1wPScyMDA5LTExLTIwJworCisjIFRoaXMgZmlsZSBpcyAoaW4gcHJpbmNpcGxlKSBjb21tb24gdG8gQUxMIEdOVSBzb2Z0d2FyZS4KKyMgVGhlIHByZXNlbmNlIG9mIGEgbWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBTT01FIEdOVSBzb2Z0d2FyZQorIyBjYW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGltcGx5IEFMTCBHTlUgc29mdHdhcmUgY2FuLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorIyAwMjExMC0xMzAxLCBVU0EuCisjCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworCisjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAorIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBHTlUgQ2hhbmdlTG9nIGVudHJ5LgorIworIyBDb25maWd1cmF0aW9uIHN1YnJvdXRpbmUgdG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gdHlwZS4KKyMgU3VwcGx5IHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiB0eXBlIGFzIGFuIGFyZ3VtZW50LgorIyBJZiBpdCBpcyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUgMS4KKyMgT3RoZXJ3aXNlLCB3ZSBwcmludCB0aGUgY2Fub25pY2FsIGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KKworIyBZb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBzY3JpcHQgZnJvbToKKyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5zdWI7aGI9SEVBRAorCisjIFRoaXMgZmlsZSBpcyBzdXBwb3NlZCB0byBiZSB0aGUgc2FtZSBmb3IgYWxsIEdOVSBwYWNrYWdlcworIyBhbmQgcmVjb2duaXplIGFsbCB0aGUgQ1BVIHR5cGVzLCBzeXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKKyMgdGhhdCBhcmUgbWVhbmluZ2Z1bCB3aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KKyMgRWFjaCBwYWNrYWdlIGlzIHJlc3BvbnNpYmxlIGZvciByZXBvcnRpbmcgd2hpY2ggdmFsaWQgY29uZmlndXJhdGlvbnMKKyMgaXQgZG9lcyBub3Qgc3VwcG9ydC4gIFRoZSB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoCisjIGEgZmFpbHVyZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmlndXJhdGlvbiBmcm9tIGEgbWVhbmluZ2xlc3MKKyMgY29uZmlndXJhdGlvbi4KKworIyBUaGUgZ29hbCBvZiB0aGlzIGZpbGUgaXMgdG8gbWFwIGFsbCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9mIGEgZ2l2ZW4KKyMgbWFjaGluZSBzcGVjaWZpY2F0aW9uIGludG8gYSBzaW5nbGUgc3BlY2lmaWNhdGlvbiBpbiB0aGUgZm9ybToKKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KKyMgb3IgaW4gc29tZSBjYXNlcywgdGhlIG5ld2VyIGZvdXItcGFydCBmb3JtOgorIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJBVElOR19TWVNURU0KKyMgSXQgaXMgd3JvbmcgdG8gZWNobyBhbnkgb3RoZXIgdHlwZSBvZiBzcGVjaWZpY2F0aW9uLgorCittZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKKwordXNhZ2U9IlwKK1VzYWdlOiAkMCBbT1BUSU9OXSBDUFUtTUZSLU9QU1lTCisgICAgICAgJDAgW09QVElPTl0gQUxJQVMKKworQ2Fub25pY2FsaXplIGEgY29uZmlndXJhdGlvbiBuYW1lLgorCitPcGVyYXRpb24gbW9kZXM6CisgIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0CisgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisKK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCisKK3ZlcnNpb249IlwKK0dOVSBjb25maWcuc3ViICgkdGltZXN0YW1wKQorCitDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCisyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTword2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorCitoZWxwPSIKK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKworIyBQYXJzZSBjb21tYW5kIGxpbmUKK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworICBjYXNlICQxIGluCisgICAgLS10aW1lLXN0YW1wIHwgLS10aW1lKiB8IC10ICkKKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKKyAgICAtLXZlcnNpb24gfCAtdiApCisgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworICAgIC0taGVscCB8IC0taCogfCAtaCApCisgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OworICAgIC0tICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgIHNoaWZ0OyBicmVhayA7OworICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKyAgICAgICBicmVhayA7OworICAgIC0qICkKKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiCisgICAgICAgZXhpdCAxIDs7CisKKyAgICAqbG9jYWwqKQorICAgICAgICMgRmlyc3QgcGFzcyB0aHJvdWdoIGFueSBsb2NhbCBtYWNoaW5lIHR5cGVzLgorICAgICAgIGVjaG8gJDEKKyAgICAgICBleGl0IDs7CisKKyAgICAqICkKKyAgICAgICBicmVhayA7OworICBlc2FjCitkb25lCisKK2Nhc2UgJCMgaW4KKyAwKSBlY2hvICIkbWU6IG1pc3NpbmcgYXJndW1lbnQkaGVscCIgPiYyCisgICAgZXhpdCAxOzsKKyAxKSA7OworICopIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorICAgIGV4aXQgMTs7Citlc2FjCisKKyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KKyMgSGVyZSB3ZSBtdXN0IHJlY29nbml6ZSBhbGwgdGhlIHZhbGlkIEtFUk5FTC1PUyBjb21iaW5hdGlvbnMuCittYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKK2Nhc2UgJG1heWJlX29zIGluCisgIG50by1xbngqIHwgbGludXgtZ251KiB8IGxpbnV4LWRpZXRsaWJjIHwgbGludXgtbmV3bGliKiB8IGxpbnV4LXVjbGliYyogfCBcCisgIHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IGtmcmVlYnNkKi1nbnUqIHwga25ldGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwKKyAga29wZW5zb2xhcmlzKi1nbnUqIHwgXAorICBzdG9ybS1jaGFvcyogfCBvczItZW14KiB8IHJ0bWstbm92YSopCisgICAgb3M9LSRtYXliZV9vcworICAgIGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wxLydgCisgICAgOzsKKyAgKikKKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCisgICAgaWYgWyAkYmFzaWNfbWFjaGluZSAhPSAkMSBdCisgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNlZCAncy8uKi0vLS8nYAorICAgIGVsc2Ugb3M9OyBmaQorICAgIDs7Citlc2FjCisKKyMjIyBMZXQncyByZWNvZ25pemUgY29tbW9uIG1hY2hpbmVzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcyBzbworIyMjIHRoYXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMxMDAgd29yay4gIFdlIGFsc28KKyMjIyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywgc28gd2UKKyMjIyBjYW4gcHJvdmlkZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0ZW1zIGJlbG93LgorY2FzZSAkb3MgaW4KKwktc3VuKm9zKikKKwkJIyBQcmV2ZW50IGZvbGxvd2luZyBjbGF1c2UgZnJvbSBoYW5kbGluZyB0aGlzIGludmFsaWQgaW5wdXQuCisJCTs7CisJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwKKwktYXR0KiB8IC03MzAwKiB8IC0zMzAwKiB8IC1kZWx0YSogfCAtbW90b3JvbGEqIHwgLXN1blsyMzRdKiB8IFwKKwktdW5pY29tKiB8IC1pYm0qIHwgLW5leHQgfCAtaHAgfCAtaXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwgXAorCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCisJLWNbMTIzXSogfCAtY29udmV4KiB8IC1zdW4gfCAtY3JkcyB8IC1vbXJvbiogfCAtZGcgfCAtdWx0cmEgfCAtdHRpKiB8IFwKKwktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVsIHwgLWdvdWxkIHwgLWNibSB8IC1ucyB8IC1tYXNzY29tcCB8IFwKKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5IHwgLW1pY3JvYmxhemUpCisJCW9zPQorCQliYXNpY19tYWNoaW5lPSQxCisJCTs7CisgICAgICAgIC1ibHVlZ2VuZSopCisJICAgICAgICBvcz0tY25rCisJCTs7CisJLXNpbSB8IC1jaXNjbyB8IC1va2kgfCAtd2VjIHwgLXdpbmJvbmQpCisJCW9zPQorCQliYXNpY19tYWNoaW5lPSQxCisJCTs7CisJLXNjb3V0KQorCQk7OworCS13cnMpCisJCW9zPS12eHdvcmtzCisJCWJhc2ljX21hY2hpbmU9JDEKKwkJOzsKKwktY2hvcnVzb3MqKQorCQlvcz0tY2hvcnVzb3MKKwkJYmFzaWNfbWFjaGluZT0kMQorCQk7OworIAktY2hvcnVzcmRiKQorIAkJb3M9LWNob3J1c3JkYgorCQliYXNpY19tYWNoaW5lPSQxCisgCQk7OworCS1oaXV4KikKKwkJb3M9LWhpdXh3ZTIKKwkJOzsKKwktc2NvNikKKwkJb3M9LXNjbzV2NgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbzUpCisJCW9zPS1zY28zLjJ2NQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbzQpCisJCW9zPS1zY28zLjJ2NAorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbzMuMi5bNC05XSopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY28zLjJ2WzQtOV0qKQorCQkjIERvbid0IGZvcmdldCB2ZXJzaW9uIGlmIGl0IGlzIDMuMnY0IG9yIG5ld2VyLgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbzV2NiopCisJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktc2NvKikKKwkJb3M9LXNjbzMuMnYyCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktdWRrKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1pc2MpCisJCW9zPS1pc2MyLjIKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1jbGl4KikKKwkJYmFzaWNfbWFjaGluZT1jbGlwcGVyLWludGVyZ3JhcGgKKwkJOzsKKwktaXNjKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1seW54KikKKwkJb3M9LWx5bnhvcworCQk7OworCS1wdHgqKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXNlcXVlbnQvJ2AKKwkJOzsKKwktd2luZG93c250KikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzL3dpbmRvd3NudC93aW5udC8nYAorCQk7OworCS1wc29zKikKKwkJb3M9LXBzb3MKKwkJOzsKKwktbWludCB8IC1taW50WzAtOV0qKQorCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKKwkJb3M9LW1pbnQKKwkJOzsKK2VzYWMKKworIyBEZWNvZGUgYWxpYXNlcyBmb3IgY2VydGFpbiBDUFUtQ09NUEFOWSBjb21iaW5hdGlvbnMuCitjYXNlICRiYXNpY19tYWNoaW5lIGluCisJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KKwkjIFNvbWUgYXJlIG9taXR0ZWQgaGVyZSBiZWNhdXNlIHRoZXkgaGF2ZSBzcGVjaWFsIG1lYW5pbmdzIGJlbG93LgorCTE3NTBhIHwgNTgwIFwKKwl8IGEyOWsgXAorCXwgYWxwaGEgfCBhbHBoYWV2WzQtOF0gfCBhbHBoYWV2NTYgfCBhbHBoYWV2Nls3OF0gfCBhbHBoYXBjYTVbNjddIFwKKwl8IGFscGhhNjQgfCBhbHBoYTY0ZXZbNC04XSB8IGFscGhhNjRldjU2IHwgYWxwaGE2NGV2Nls3OF0gfCBhbHBoYTY0cGNhNVs2N10gXAorCXwgYW0zM18yLjAgXAorCXwgYXJjIHwgYXJtIHwgYXJtW2JsXWUgfCBhcm1lW2xiXSB8IGFybXZbMjM0NV0gfCBhcm12WzM0NV1bbGJdIHwgYXZyIHwgYXZyMzIgXAorCXwgYmZpbiBcCisJfCBjNHggfCBjbGlwcGVyIFwKKwl8IGQxMHYgfCBkMzB2IHwgZGx4IHwgZHNwMTZ4eCBcCisJfCBmaWRvIHwgZnIzMCB8IGZydiBcCisJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAorCXwgaTM3MCB8IGk4NjAgfCBpOTYwIHwgaWE2NCBcCisJfCBpcDJrIHwgaXEyMDAwIFwKKwl8IGxtMzIgXAorCXwgbTMyYyB8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayBcCisJfCBtYXhxIHwgbWIgfCBtaWNyb2JsYXplIHwgbWNvcmUgfCBtZXAgfCBtZXRhZyBcCisJfCBtaXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKKwl8IG1pcHMxNiBcCisJfCBtaXBzNjQgfCBtaXBzNjRlbCBcCisJfCBtaXBzNjRvY3Rlb24gfCBtaXBzNjRvY3Rlb25lbCBcCisJfCBtaXBzNjRvcmlvbiB8IG1pcHM2NG9yaW9uZWwgXAorCXwgbWlwczY0cjU5MDAgfCBtaXBzNjRyNTkwMGVsIFwKKwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCisJfCBtaXBzNjR2cjQxMDAgfCBtaXBzNjR2cjQxMDBlbCBcCisJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCisJfCBtaXBzNjR2cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCisJfCBtaXBzNjR2cjU5MDAgfCBtaXBzNjR2cjU5MDBlbCBcCisJfCBtaXBzaXNhMzIgfCBtaXBzaXNhMzJlbCBcCisJfCBtaXBzaXNhMzJyMiB8IG1pcHNpc2EzMnIyZWwgXAorCXwgbWlwc2lzYTY0IHwgbWlwc2lzYTY0ZWwgXAorCXwgbWlwc2lzYTY0cjIgfCBtaXBzaXNhNjRyMmVsIFwKKwl8IG1pcHNpc2E2NHNiMSB8IG1pcHNpc2E2NHNiMWVsIFwKKwl8IG1pcHNpc2E2NHNyNzFrIHwgbWlwc2lzYTY0c3I3MWtlbCBcCisJfCBtaXBzdHgzOSB8IG1pcHN0eDM5ZWwgXAorCXwgbW4xMDIwMCB8IG1uMTAzMDAgXAorCXwgbW94aWUgXAorCXwgbXQgXAorCXwgbXNwNDMwIFwKKwl8IG5pb3MgfCBuaW9zMiBcCisJfCBuczE2ayB8IG5zMzJrIFwKKwl8IG9yMzIgXAorCXwgcGRwMTAgfCBwZHAxMSB8IHBqIHwgcGpsIFwKKwl8IHBvd2VycGMgfCBwb3dlcnBjNjQgfCBwb3dlcnBjNjRsZSB8IHBvd2VycGNsZSB8IHBwY2JlIFwKKwl8IHB5cmFtaWQgXAorCXwgcnggXAorCXwgc2NvcmUgXAorCXwgc2ggfCBzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIgfCBzaFsyM11lIHwgc2hbMzRdZWIgfCBzaGViIHwgc2hiZSB8IHNobGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKKwl8IHNoNjQgfCBzaDY0bGUgXAorCXwgc3BhcmMgfCBzcGFyYzY0IHwgc3BhcmM2NGIgfCBzcGFyYzY0diB8IHNwYXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgXAorCXwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2IFwKKwl8IHNwdSB8IHN0cm9uZ2FybSBcCisJfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAorCXwgdWJpY29tMzIgXAorCXwgdjg1MCB8IHY4NTBlIFwKKwl8IHdlMzJrIFwKKwl8IHg4NiB8IHhjMTZ4IHwgeHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAorCXwgejhrIHwgejgwKQorCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKwkJOzsKKwltNjgxMSB8IG02OGhjMTEgfCBtNjgxMiB8IG02OGhjMTIgfCBwaWNvY2hpcCkKKwkJIyBNb3Rvcm9sYSA2OEhDMTEvMTIuCisJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorCQlvcz0tbm9uZQorCQk7OworCW04ODExMCB8IG02ODBbMTIzNDZdMCB8IG02ODM/MiB8IG02ODM2MCB8IG01MjAwIHwgdjcwIHwgdzY1IHwgejhrKQorCQk7OworCW1zMSkKKwkJYmFzaWNfbWFjaGluZT1tdC11bmtub3duCisJCTs7CisKKwkjIFdlIHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJworCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAorCSMgKDIpIHRoZSB3b3JkICJ1bmtub3duIiB0ZW5kcyB0byBjb25mdXNlIGJlZ2lubmluZyB1c2Vycy4KKwlpKjg2IHwgeDg2XzY0KQorCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYworCSAgOzsKKwkjIE9iamVjdCBpZiBtb3JlIHRoYW4gb25lIGNvbXBhbnkgbmFtZSB3b3JkLgorCSotKi0qKQorCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKKwkJZXhpdCAxCisJCTs7CisJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNvbXBhbnkgbmFtZS4KKwk1ODAtKiBcCisJfCBhMjlrLSogXAorCXwgYWxwaGEtKiB8IGFscGhhZXZbNC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCisJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAorCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCisJfCBhcm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKKwl8IGF2ci0qIHwgYXZyMzItKiBcCisJfCBiZmluLSogfCBiczIwMDAtKiBcCisJfCBjWzEyM10qIHwgYzMwLSogfCBbY2p0XTkwLSogfCBjNHgtKiB8IGM1NHgtKiB8IGM1NXgtKiB8IGM2eC0qIFwKKwl8IGNsaXBwZXItKiB8IGNyYXludi0qIHwgY3lkcmEtKiBcCisJfCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCisJfCBlbHhzaS0qIFwKKwl8IGYzMFswMV0tKiB8IGY3MDAtKiB8IGZpZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwKKwl8IGg4MzAwLSogfCBoODUwMC0qIFwKKwl8IGhwcGEtKiB8IGhwcGExLlswMV0tKiB8IGhwcGEyLjAtKiB8IGhwcGEyLjBbbnddLSogfCBocHBhNjQtKiBcCisJfCBpKjg2LSogfCBpODYwLSogfCBpOTYwLSogfCBpYTY0LSogXAorCXwgaXAyay0qIHwgaXEyMDAwLSogXAorCXwgbG0zMi0qIFwKKwl8IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJsZS0qIFwKKwl8IG02ODAwMC0qIHwgbTY4MFswMTIzNDZdMC0qIHwgbTY4MzYwLSogfCBtNjgzPzItKiB8IG02OGstKiBcCisJfCBtODgxMTAtKiB8IG04OGstKiB8IG1heHEtKiB8IG1jb3JlLSogfCBtZXRhZy0qIHwgbWljcm9ibGF6ZS0qIFwKKwl8IG1pcHMtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwKKwl8IG1pcHMxNi0qIFwKKwl8IG1pcHM2NC0qIHwgbWlwczY0ZWwtKiBcCisJfCBtaXBzNjRvY3Rlb24tKiB8IG1pcHM2NG9jdGVvbmVsLSogXAorCXwgbWlwczY0b3Jpb24tKiB8IG1pcHM2NG9yaW9uZWwtKiBcCisJfCBtaXBzNjRyNTkwMC0qIHwgbWlwczY0cjU5MDBlbC0qIFwKKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVsLSogXAorCXwgbWlwczY0dnI0MTAwLSogfCBtaXBzNjR2cjQxMDBlbC0qIFwKKwl8IG1pcHM2NHZyNDMwMC0qIHwgbWlwczY0dnI0MzAwZWwtKiBcCisJfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAorCXwgbWlwczY0dnI1OTAwLSogfCBtaXBzNjR2cjU5MDBlbC0qIFwKKwl8IG1pcHNpc2EzMi0qIHwgbWlwc2lzYTMyZWwtKiBcCisJfCBtaXBzaXNhMzJyMi0qIHwgbWlwc2lzYTMycjJlbC0qIFwKKwl8IG1pcHNpc2E2NC0qIHwgbWlwc2lzYTY0ZWwtKiBcCisJfCBtaXBzaXNhNjRyMi0qIHwgbWlwc2lzYTY0cjJlbC0qIFwKKwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCisJfCBtaXBzaXNhNjRzcjcxay0qIHwgbWlwc2lzYTY0c3I3MWtlbC0qIFwKKwl8IG1pcHN0eDM5LSogfCBtaXBzdHgzOWVsLSogXAorCXwgbW1peC0qIFwKKwl8IG10LSogXAorCXwgbXNwNDMwLSogXAorCXwgbmlvcy0qIHwgbmlvczItKiBcCisJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKKwl8IG9yaW9uLSogXAorCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCisJfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSogXAorCXwgcHlyYW1pZC0qIFwKKwl8IHJvbXAtKiB8IHJzNjAwMC0qIHwgcngtKiBcCisJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzI0XWEtKiB8IHNoWzI0XWFlYi0qIHwgc2hbMjNdZS0qIHwgc2hbMzRdZWItKiB8IHNoZWItKiB8IHNoYmUtKiBcCisJfCBzaGxlLSogfCBzaFsxMjM0XWxlLSogfCBzaDNlbGUtKiB8IHNoNjQtKiB8IHNoNjRsZS0qIFwKKwl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0qIFwKKwl8IHNwYXJjbGl0ZS0qIFwKKwl8IHNwYXJjdjgtKiB8IHNwYXJjdjktKiB8IHNwYXJjdjliLSogfCBzcGFyY3Y5di0qIHwgc3Ryb25nYXJtLSogfCBzdjEtKiB8IHN4Py0qIFwKKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKKwl8IHRpYzMwLSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0qIHwgdGlsZS0qIFwKKwl8IHRyb24tKiBcCisJfCB1Ymljb20zMi0qIFwKKwl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgtKiBcCisJfCB3ZTMyay0qIFwKKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAorCXwgeHN0b3JteTE2LSogfCB4dGVuc2EqLSogXAorCXwgeW1wLSogXAorCXwgejhrLSogfCB6ODAtKikKKwkJOzsKKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1lLCB3aXRoIGdsb2IgbWF0Y2guCisJeHRlbnNhKikKKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCisJCTs7CisJIyBSZWNvZ25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQgYWxpYXNlcyB3aGljaCBzdGFuZAorCSMgZm9yIGEgQ1BVIHR5cGUgYW5kIGEgY29tcGFueSBhbmQgc29tZXRpbWVzIGV2ZW4gYW4gT1MuCisJMzg2YnNkKQorCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorCQlvcz0tYnNkCisJCTs7CisJM2IxIHwgNzMwMCB8IDczMDAtYXR0IHwgYXR0LTczMDAgfCBwYzczMDAgfCBzYWZhcmkgfCB1bml4cGMpCisJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWF0dAorCQk7OworCTNiKikKKwkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKKwkJOzsKKwlhMjlraGlmKQorCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisJCW9zPS11ZGkKKwkJOzsKKyAgICAJYWJhY3VzKQorCQliYXNpY19tYWNoaW5lPWFiYWN1cy11bmtub3duCisJCTs7CisJYWRvYmU2OGspCisJCWJhc2ljX21hY2hpbmU9bTY4MDEwLWFkb2JlCisJCW9zPS1zY291dAorCQk7OworCWFsbGlhbnQgfCBmeDgwKQorCQliYXNpY19tYWNoaW5lPWZ4ODAtYWxsaWFudAorCQk7OworCWFsdG9zIHwgYWx0b3MzMDY4KQorCQliYXNpY19tYWNoaW5lPW02OGstYWx0b3MKKwkJOzsKKwlhbTI5aykKKwkJYmFzaWNfbWFjaGluZT1hMjlrLW5vbmUKKwkJb3M9LWJzZAorCQk7OworCWFtZDY0KQorCQliYXNpY19tYWNoaW5lPXg4Nl82NC1wYworCQk7OworCWFtZDY0LSopCisJCWJhc2ljX21hY2hpbmU9eDg2XzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJYW1kYWhsKQorCQliYXNpY19tYWNoaW5lPTU4MC1hbWRhaGwKKwkJb3M9LXN5c3YKKwkJOzsKKwlhbWlnYSB8IGFtaWdhLSopCisJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisJCTs7CisJYW1pZ2FvcyB8IGFtaWdhZG9zKQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQlvcz0tYW1pZ2FvcworCQk7OworCWFtaWdhdW5peCB8IGFtaXgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisJCW9zPS1zeXN2NAorCQk7OworCWFwb2xsbzY4KQorCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCisJCW9zPS1zeXN2CisJCTs7CisJYXBvbGxvNjhic2QpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KKwkJb3M9LWJzZAorCQk7OworCWFyb3MpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworCQlvcz0tYXJvcworCQk7OworCWF1eCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCisJCW9zPS1hdXgKKwkJOzsKKwliYWxhbmNlKQorCQliYXNpY19tYWNoaW5lPW5zMzJrLXNlcXVlbnQKKwkJb3M9LWR5bml4CisJCTs7CisJYmxhY2tmaW4pCisJCWJhc2ljX21hY2hpbmU9YmZpbi11bmtub3duCisJCW9zPS1saW51eAorCQk7OworCWJsYWNrZmluLSopCisJCWJhc2ljX21hY2hpbmU9YmZpbi1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQlvcz0tbGludXgKKwkJOzsKKwlibHVlZ2VuZSopCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1pYm0KKwkJb3M9LWNuaworCQk7OworCWM5MCkKKwkJYmFzaWNfbWFjaGluZT1jOTAtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisgICAgICAgIGNlZ2NjKQorCQliYXNpY19tYWNoaW5lPWFybS11bmtub3duCisJCW9zPS1jZWdjYworCQk7OworCWNvbnZleC1jMSkKKwkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKKwkJb3M9LWJzZAorCQk7OworCWNvbnZleC1jMikKKwkJYmFzaWNfbWFjaGluZT1jMi1jb252ZXgKKwkJb3M9LWJzZAorCQk7OworCWNvbnZleC1jMzIpCisJCWJhc2ljX21hY2hpbmU9YzMyLWNvbnZleAorCQlvcz0tYnNkCisJCTs7CisJY29udmV4LWMzNCkKKwkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljb252ZXgtYzM4KQorCQliYXNpY19tYWNoaW5lPWMzOC1jb252ZXgKKwkJb3M9LWJzZAorCQk7OworCWNyYXkgfCBqOTApCisJCWJhc2ljX21hY2hpbmU9ajkwLWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworCWNyYXludikKKwkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQorCQlvcz0tdW5pY29zbXAKKwkJOzsKKwljcjE2KQorCQliYXNpY19tYWNoaW5lPWNyMTYtdW5rbm93bgorCQlvcz0tZWxmCisJCTs7CisJY3JkcyB8IHVub3MpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1jcmRzCisJCTs7CisJY3Jpc3YzMiB8IGNyaXN2MzItKiB8IGV0cmF4ZnMqKQorCQliYXNpY19tYWNoaW5lPWNyaXN2MzItYXhpcworCQk7OworCWNyaXMgfCBjcmlzLSogfCBldHJheCopCisJCWJhc2ljX21hY2hpbmU9Y3Jpcy1heGlzCisJCTs7CisJY3J4KQorCQliYXNpY19tYWNoaW5lPWNyeC11bmtub3duCisJCW9zPS1lbGYKKwkJOzsKKwlkYTMwIHwgZGEzMC0qKQorCQliYXNpY19tYWNoaW5lPW02OGstZGEzMAorCQk7OworCWRlY3N0YXRpb24gfCBkZWNzdGF0aW9uLTMxMDAgfCBwbWF4IHwgcG1heC0qIHwgcG1pbiB8IGRlYzMxMDAgfCBkZWNzdGF0bikKKwkJYmFzaWNfbWFjaGluZT1taXBzLWRlYworCQk7OworCWRlY3N5c3RlbTEwKiB8IGRlYzEwKikKKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKKwkJb3M9LXRvcHMxMAorCQk7OworCWRlY3N5c3RlbTIwKiB8IGRlYzIwKikKKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKKwkJb3M9LXRvcHMyMAorCQk7OworCWRlbHRhIHwgMzMwMCB8IG1vdG9yb2xhLTMzMDAgfCBtb3Rvcm9sYS1kZWx0YSBcCisJICAgICAgfCAzMzAwLW1vdG9yb2xhIHwgZGVsdGEtbW90b3JvbGEpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1tb3Rvcm9sYQorCQk7OworCWRlbHRhODgpCisJCWJhc2ljX21hY2hpbmU9bTg4ay1tb3Rvcm9sYQorCQlvcz0tc3lzdjMKKwkJOzsKKwlkaWNvcykKKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisJCW9zPS1kaWNvcworCQk7OworCWRqZ3BwKQorCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKKwkJb3M9LW1zZG9zZGpncHAKKwkJOzsKKwlkcHgyMCB8IGRweDIwLSopCisJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKKwkJb3M9LWJvc3gKKwkJOzsKKwlkcHgyKiB8IGRweDIqLWJ1bGwpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisJCW9zPS1zeXN2MworCQk7OworCWVibW9uMjlrKQorCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisJCW9zPS1lYm1vbgorCQk7OworCWVseHNpKQorCQliYXNpY19tYWNoaW5lPWVseHNpLWVseHNpCisJCW9zPS1ic2QKKwkJOzsKKwllbmNvcmUgfCB1bWF4IHwgbW1heCkKKwkJYmFzaWNfbWFjaGluZT1uczMyay1lbmNvcmUKKwkJOzsKKwllczE4MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBPU0UpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1lcmljc3NvbgorCQlvcz0tb3NlCisJCTs7CisJZngyODAwKQorCQliYXNpY19tYWNoaW5lPWk4NjAtYWxsaWFudAorCQk7OworCWdlbml4KQorCQliYXNpY19tYWNoaW5lPW5zMzJrLW5zCisJCTs7CisJZ21pY3JvKQorCQliYXNpY19tYWNoaW5lPXRyb24tZ21pY3JvCisJCW9zPS1zeXN2CisJCTs7CisJZ28zMikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisJCW9zPS1nbzMyCisJCTs7CisJaDMwNTByKiB8IGhpdXgqKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQorCQlvcz0taGl1eHdlMgorCQk7OworCWg4MzAwaG1zKQorCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKKwkJb3M9LWhtcworCQk7OworCWg4MzAweHJheSkKKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisJCW9zPS14cmF5CisJCTs7CisJaDg1MDBobXMpCisJCWJhc2ljX21hY2hpbmU9aDg1MDAtaGl0YWNoaQorCQlvcz0taG1zCisJCTs7CisJaGFycmlzKQorCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCisJCW9zPS1zeXN2MworCQk7OworCWhwMzAwLSopCisJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorCQk7OworCWhwMzAwYnNkKQorCQliYXNpY19tYWNoaW5lPW02OGstaHAKKwkJb3M9LWJzZAorCQk7OworCWhwMzAwaHB1eCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisJCW9zPS1ocHV4CisJCTs7CisJaHAzazlbMC05XVswLTldIHwgaHA5WzAtOV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisJCTs7CisJaHA5azJbMC05XVswLTldIHwgaHA5azMxWzAtOV0pCisJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWhwCisJCTs7CisJaHA5azNbMi05XVswLTldKQorCQliYXNpY19tYWNoaW5lPW02OGstaHAKKwkJOzsKKwlocDlrNlswLTldWzAtOV0gfCBocDZbMC05XVswLTldKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKKwkJOzsKKwlocDlrN1swLTc5XVswLTldIHwgaHA3WzAtNzldWzAtOV0pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorCQk7OworCWhwOWs3OFswLTldIHwgaHA3OFswLTldKQorCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1ocAorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJOzsKKwlocDlrOFs2N10xIHwgaHA4WzY3XTEgfCBocDlrODBbMjRdIHwgaHA4MFsyNF0gfCBocDlrOFs3OF05IHwgaHA4Wzc4XTkgfCBocDlrODkzIHwgaHA4OTMpCisJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorCQk7OworCWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJOzsKKwlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKKwkJOzsKKwlocHBhLW5leHQpCisJCW9zPS1uZXh0c3RlcDMKKwkJOzsKKwlocHBhb3NmKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJb3M9LW9zZgorCQk7OworCWhwcHJvKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJb3M9LXByb2VsZgorCQk7OworCWkzNzAtaWJtKiB8IGlibSopCisJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKwkJOzsKKyMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVhbnMuICBTaG91bGQgdGhpcyBiZSBzeXN2My4yPworCWkqODZ2MzIpCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorCQlvcz0tc3lzdjMyCisJCTs7CisJaSo4NnY0KikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisJCW9zPS1zeXN2NAorCQk7OworCWkqODZ2KQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKwkJb3M9LXN5c3YKKwkJOzsKKwlpKjg2c29sMikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisJCW9zPS1zb2xhcmlzMgorCQk7OworCWkzODZtYWNoKQorCQliYXNpY19tYWNoaW5lPWkzODYtbWFjaAorCQlvcz0tbWFjaAorCQk7OworCWkzODYtdnN0YSB8IHZzdGEpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisJCW9zPS12c3RhCisJCTs7CisJaXJpcyB8IGlyaXM0ZCkKKwkJYmFzaWNfbWFjaGluZT1taXBzLXNnaQorCQljYXNlICRvcyBpbgorCQkgICAgLWlyaXgqKQorCQkJOzsKKwkJICAgICopCisJCQlvcz0taXJpeDQKKwkJCTs7CisJCWVzYWMKKwkJOzsKKwlpc2k2OCB8IGlzaSkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQorCQlvcz0tc3lzdgorCQk7OworCW02OGtub21tdSkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KKwkJb3M9LWxpbnV4CisJCTs7CisJbTY4a25vbW11LSopCisJCWJhc2ljX21hY2hpbmU9bTY4ay1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQlvcz0tbGludXgKKwkJOzsKKwltODhrLW9tcm9uKikKKwkJYmFzaWNfbWFjaGluZT1tODhrLW9tcm9uCisJCTs7CisJbWFnbnVtIHwgbTMyMzApCisJCWJhc2ljX21hY2hpbmU9bWlwcy1taXBzCisJCW9zPS1zeXN2CisJCTs7CisJbWVybGluKQorCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0ZWsKKwkJb3M9LXN5c3YKKwkJOzsKKyAgICAgICAgbWljcm9ibGF6ZSkKKwkJYmFzaWNfbWFjaGluZT1taWNyb2JsYXplLXhpbGlueAorCQk7OworCW1pbmd3MzIpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworCQlvcz0tbWluZ3czMgorCQk7OworCW1pbmd3MzJjZSkKKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgorCQlvcz0tbWluZ3czMmNlCisJCTs7CisJbWluaWZyYW1lKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1jb252ZXJnZW50CisJCTs7CisJKm1pbnQgfCAtbWludFswLTldKiB8ICpNaU5UIHwgKk1pTlRbMC05XSopCisJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQorCQlvcz0tbWludAorCQk7OworCW1pcHMzKi0qKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYAorCQk7OworCW1pcHMzKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AtdW5rbm93bgorCQk7OworCW1vbml0b3IpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKKwkJb3M9LWNvZmYKKwkJOzsKKwltb3JwaG9zKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgorCQlvcz0tbW9ycGhvcworCQk7OworCW1zZG9zKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LW1zZG9zCisJCTs7CisJbXMxLSopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMxLS9tdC0vJ2AKKwkJOzsKKwltdnMpCisJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKwkJb3M9LW12cworCQk7OworCW5jcjMwMDApCisJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKKwkJb3M9LXN5c3Y0CisJCTs7CisJbmV0YnNkMzg2KQorCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorCQlvcz0tbmV0YnNkCisJCTs7CisJbmV0d2luZGVyKQorCQliYXNpY19tYWNoaW5lPWFybXY0bC1yZWJlbAorCQlvcz0tbGludXgKKwkJOzsKKwluZXdzIHwgbmV3czcwMCB8IG5ld3M4MDAgfCBuZXdzOTAwKQorCQliYXNpY19tYWNoaW5lPW02OGstc29ueQorCQlvcz0tbmV3c29zCisJCTs7CisJbmV3czEwMDApCisJCWJhc2ljX21hY2hpbmU9bTY4MDMwLXNvbnkKKwkJb3M9LW5ld3NvcworCQk7OworCW5ld3MtMzYwMCB8IHJpc2MtbmV3cykKKwkJYmFzaWNfbWFjaGluZT1taXBzLXNvbnkKKwkJb3M9LW5ld3NvcworCQk7OworCW5lY3Y3MCkKKwkJYmFzaWNfbWFjaGluZT12NzAtbmVjCisJCW9zPS1zeXN2CisJCTs7CisJbmV4dCB8IG0qLW5leHQgKQorCQliYXNpY19tYWNoaW5lPW02OGstbmV4dAorCQljYXNlICRvcyBpbgorCQkgICAgLW5leHRzdGVwKiApCisJCQk7OworCQkgICAgLW5zMiopCisJCSAgICAgIG9zPS1uZXh0c3RlcDIKKwkJCTs7CisJCSAgICAqKQorCQkgICAgICBvcz0tbmV4dHN0ZXAzCisJCQk7OworCQllc2FjCisJCTs7CisJbmgzMDAwKQorCQliYXNpY19tYWNoaW5lPW02OGstaGFycmlzCisJCW9zPS1jeHV4CisJCTs7CisJbmhbNDVdMDAwKQorCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCisJCW9zPS1jeHV4CisJCTs7CisJbmluZHk5NjApCisJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorCQlvcz0tbmluZHkKKwkJOzsKKwltb245NjApCisJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorCQlvcz0tbW9uOTYwCisJCTs7CisJbm9uc3RvcHV4KQorCQliYXNpY19tYWNoaW5lPW1pcHMtY29tcGFxCisJCW9zPS1ub25zdG9wdXgKKwkJOzsKKwlucDEpCisJCWJhc2ljX21hY2hpbmU9bnAxLWdvdWxkCisJCTs7CisJbnNyLXRhbmRlbSkKKwkJYmFzaWNfbWFjaGluZT1uc3ItdGFuZGVtCisJCTs7CisJb3A1MG4tKiB8IG9wNjBjLSopCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKwkJb3M9LXByb2VsZgorCQk7OworCW9wZW5yaXNjIHwgb3BlbnJpc2MtKikKKwkJYmFzaWNfbWFjaGluZT1vcjMyLXVua25vd24KKwkJOzsKKwlvczQwMCkKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQorCQlvcz0tb3M0MDAKKwkJOzsKKwlPU0U2ODAwMCB8IG9zZTY4MDAwKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgorCQlvcz0tb3NlCisJCTs7CisJb3M2OGspCisJCWJhc2ljX21hY2hpbmU9bTY4ay1ub25lCisJCW9zPS1vczY4aworCQk7OworCXBhLWhpdGFjaGkpCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCisJCW9zPS1oaXV4d2UyCisJCTs7CisJcGFyYWdvbikKKwkJYmFzaWNfbWFjaGluZT1pODYwLWludGVsCisJCW9zPS1vc2YKKwkJOzsKKwlwYXJpc2MpCisJCWJhc2ljX21hY2hpbmU9aHBwYS11bmtub3duCisJCW9zPS1saW51eAorCQk7OworCXBhcmlzYy0qKQorCQliYXNpY19tYWNoaW5lPWhwcGEtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJb3M9LWxpbnV4CisJCTs7CisJcGJkKQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXR0aQorCQk7OworCXBiYikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQorCQk7OworCXBjNTMyIHwgcGM1MzItKikKKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgorCQk7OworCXBjOTgpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworCQk7OworCXBjOTgtKikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcGVudGl1bSB8IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQorCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKKwkJOzsKKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworCQk7OworCXBlbnRpdW1paSB8IHBlbnRpdW0yIHwgcGVudGl1bWlpaSB8IHBlbnRpdW0zKQorCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKwkJOzsKKwlwZW50aXVtNCkKKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCisJCTs7CisJcGVudGl1bS0qIHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQorCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRpdW0zLSopCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBlbnRpdW00LSopCisJCWJhc2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBuKQorCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCisJCTs7CisJcG93ZXIpCWJhc2ljX21hY2hpbmU9cG93ZXItaWJtCisJCTs7CisJcHBjKQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgorCQk7OworCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93bgorCQk7OworCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KKwkJOzsKKwlwcGM2NC0qKSBiYXNpY19tYWNoaW5lPXBvd2VycGM2NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtdW5rbm93bgorCQk7OworCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcHMyKQorCQliYXNpY19tYWNoaW5lPWkzODYtaWJtCisJCTs7CisJcHczMikKKwkJYmFzaWNfbWFjaGluZT1pNTg2LXVua25vd24KKwkJb3M9LXB3MzIKKwkJOzsKKwlyZG9zKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LXJkb3MKKwkJOzsKKwlyb202OGspCisJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKKwkJb3M9LWNvZmYKKwkJOzsKKwlybVs0Nl0wMCkKKwkJYmFzaWNfbWFjaGluZT1taXBzLXNpZW1lbnMKKwkJOzsKKwlydHBjIHwgcnRwYy0qKQorCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCisJCTs7CisJczM5MCB8IHMzOTAtKikKKwkJYmFzaWNfbWFjaGluZT1zMzkwLWlibQorCQk7OworCXMzOTB4IHwgczM5MHgtKikKKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKwkJOzsKKwlzYTI5MjAwKQorCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisJCW9zPS11ZGkKKwkJOzsKKwlzYjEpCisJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KKwkJOzsKKwlzYjFlbCkKKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCisJCTs7CisJc2RlKQorCQliYXNpY19tYWNoaW5lPW1pcHNpc2EzMi1zZGUKKwkJb3M9LWVsZgorCQk7OworCXNlaSkKKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQorCQlvcz0tc2VpdXgKKwkJOzsKKwlzZXF1ZW50KQorCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAorCQk7OworCXNoKQorCQliYXNpY19tYWNoaW5lPXNoLWhpdGFjaGkKKwkJb3M9LWhtcworCQk7OworCXNoNWVsKQorCQliYXNpY19tYWNoaW5lPXNoNWxlLXVua25vd24KKwkJOzsKKwlzaDY0KQorCQliYXNpY19tYWNoaW5lPXNoNjQtdW5rbm93bgorCQk7OworCXNwYXJjbGl0ZS13cnMgfCBzaW1zby13cnMpCisJCWJhc2ljX21hY2hpbmU9c3BhcmNsaXRlLXdycworCQlvcz0tdnh3b3JrcworCQk7OworCXNwczcpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisJCW9zPS1zeXN2MgorCQk7OworCXNwdXIpCisJCWJhc2ljX21hY2hpbmU9c3B1ci11bmtub3duCisJCTs7CisJc3QyMDAwKQorCQliYXNpY19tYWNoaW5lPW02OGstdGFuZGVtCisJCTs7CisJc3RyYXR1cykKKwkJYmFzaWNfbWFjaGluZT1pODYwLXN0cmF0dXMKKwkJb3M9LXN5c3Y0CisJCTs7CisJc3VuMikKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisJCTs7CisJc3VuMm9zMykKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisJCW9zPS1zdW5vczMKKwkJOzsKKwlzdW4yb3M0KQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KKwkJb3M9LXN1bm9zNAorCQk7OworCXN1bjNvczMpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKwkJb3M9LXN1bm9zMworCQk7OworCXN1bjNvczQpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKwkJb3M9LXN1bm9zNAorCQk7OworCXN1bjRvczMpCisJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisJCW9zPS1zdW5vczMKKwkJOzsKKwlzdW40b3M0KQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQlvcz0tc3Vub3M0CisJCTs7CisJc3VuNHNvbDIpCisJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisJCW9zPS1zb2xhcmlzMgorCQk7OworCXN1bjMgfCBzdW4zLSopCisJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKwkJOzsKKwlzdW40KQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQk7OworCXN1bjM4NiB8IHN1bjM4NmkgfCByb2FkcnVubmVyKQorCQliYXNpY19tYWNoaW5lPWkzODYtc3VuCisJCTs7CisJc3YxKQorCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwlzeW1tZXRyeSkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKKwkJb3M9LWR5bml4CisJCTs7CisJdDNlKQorCQliYXNpY19tYWNoaW5lPWFscGhhZXY1LWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworCXQ5MCkKKwkJYmFzaWNfbWFjaGluZT10OTAtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisJdGljNTR4IHwgYzU0eCopCisJCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25vd24KKwkJb3M9LWNvZmYKKwkJOzsKKwl0aWM1NXggfCBjNTV4KikKKwkJYmFzaWNfbWFjaGluZT10aWM1NXgtdW5rbm93bgorCQlvcz0tY29mZgorCQk7OworCXRpYzZ4IHwgYzZ4KikKKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCisJCW9zPS1jb2ZmCisJCTs7CisJdGlsZSopCisJCWJhc2ljX21hY2hpbmU9dGlsZS11bmtub3duCisJCW9zPS1saW51eC1nbnUKKwkJOzsKKwl0eDM5KQorCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5LXVua25vd24KKwkJOzsKKwl0eDM5ZWwpCisJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzllbC11bmtub3duCisJCTs7CisJdG9hZDEpCisJCWJhc2ljX21hY2hpbmU9cGRwMTAteGtsCisJCW9zPS10b3BzMjAKKwkJOzsKKwl0b3dlciB8IHRvd2VyLTMyKQorCQliYXNpY19tYWNoaW5lPW02OGstbmNyCisJCTs7CisJdHBmKQorCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQorCQlvcz0tdHBmCisJCTs7CisJdWRpMjlrKQorCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisJCW9zPS11ZGkKKwkJOzsKKwl1bHRyYTMpCisJCWJhc2ljX21hY2hpbmU9YTI5ay1ueXUKKwkJb3M9LXN5bTEKKwkJOzsKKwl2ODEwIHwgbmVjdjgxMCkKKwkJYmFzaWNfbWFjaGluZT12ODEwLW5lYworCQlvcz0tbm9uZQorCQk7OworCXZheHYpCisJCWJhc2ljX21hY2hpbmU9dmF4LWRlYworCQlvcz0tc3lzdgorCQk7OworCXZtcykKKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisJCW9zPS12bXMKKwkJOzsKKwl2cHAqfHZ4fHZ4LSopCisJCWJhc2ljX21hY2hpbmU9ZjMwMS1mdWppdHN1CisJCTs7CisJdnh3b3Jrczk2MCkKKwkJYmFzaWNfbWFjaGluZT1pOTYwLXdycworCQlvcz0tdnh3b3JrcworCQk7OworCXZ4d29ya3M2OCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXdycworCQlvcz0tdnh3b3JrcworCQk7OworCXZ4d29ya3MyOWspCisJCWJhc2ljX21hY2hpbmU9YTI5ay13cnMKKwkJb3M9LXZ4d29ya3MKKwkJOzsKKwl3NjUqKQorCQliYXNpY19tYWNoaW5lPXc2NS13ZGMKKwkJb3M9LW5vbmUKKwkJOzsKKwl3ODlrLSopCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS13aW5ib25kCisJCW9zPS1wcm9lbGYKKwkJOzsKKwl4Ym94KQorCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKwkJb3M9LW1pbmd3MzIKKwkJOzsKKwl4cHMgfCB4cHMxMDApCisJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAorCQk7OworCXltcCkKKwkJYmFzaWNfbWFjaGluZT15bXAtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisJejhrLSotY29mZikKKwkJYmFzaWNfbWFjaGluZT16OGstdW5rbm93bgorCQlvcz0tc2ltCisJCTs7CisJejgwLSotY29mZikKKwkJYmFzaWNfbWFjaGluZT16ODAtdW5rbm93bgorCQlvcz0tc2ltCisJCTs7CisJbm9uZSkKKwkJYmFzaWNfbWFjaGluZT1ub25lLW5vbmUKKwkJb3M9LW5vbmUKKwkJOzsKKworIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBtYW51ZmFjdHVyZXIgb2YgY2VydGFpbiBDUFUgdHlwZXMuICBJdCBpcyBpbgorIyBzb21lIGNhc2VzIHRoZSBvbmx5IG1hbnVmYWN0dXJlciwgaW4gb3RoZXJzLCBpdCBpcyB0aGUgbW9zdCBwb3B1bGFyLgorCXc4OWspCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS13aW5ib25kCisJCTs7CisJb3A1MG4pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKwkJOzsKKwlvcDYwYykKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQorCQk7OworCXJvbXApCisJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KKwkJOzsKKwltbWl4KQorCQliYXNpY19tYWNoaW5lPW1taXgta251dGgKKwkJOzsKKwlyczYwMDApCisJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWlibQorCQk7OworCXZheCkKKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisJCTs7CisJcGRwMTApCisJCSMgdGhlcmUgYXJlIG1hbnkgY2xvbmVzLCBzbyBERUMgaXMgbm90IGEgc2FmZSBiZXQKKwkJYmFzaWNfbWFjaGluZT1wZHAxMC11bmtub3duCisJCTs7CisJcGRwMTEpCisJCWJhc2ljX21hY2hpbmU9cGRwMTEtZGVjCisJCTs7CisJd2UzMmspCisJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisJCTs7CisJc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjRdYWViIHwgc2hbMzRdZWIgfCBzaFsxMjM0XWxlIHwgc2hbMjNdZWxlKQorCQliYXNpY19tYWNoaW5lPXNoLXVua25vd24KKwkJOzsKKwlzcGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFyY3Y5dikKKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKwkJOzsKKwljeWRyYSkKKwkJYmFzaWNfbWFjaGluZT1jeWRyYS1jeWRyb21lCisJCTs7CisJb3Jpb24pCisJCWJhc2ljX21hY2hpbmU9b3Jpb24taGlnaGxldmVsCisJCTs7CisJb3Jpb24xMDUpCisJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1oaWdobGV2ZWwKKwkJOzsKKwltYWMgfCBtcHcgfCBtYWMtbXB3KQorCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKKwkJOzsKKwlwbWFjIHwgcG1hYy1tcHcpCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1hcHBsZQorCQk7OworCSotdW5rbm93bikKKwkJIyBNYWtlIHN1cmUgdG8gbWF0Y2ggYW4gYWxyZWFkeS1jYW5vbmljYWxpemVkIG1hY2hpbmUgbmFtZS4KKwkJOzsKKwkqKQorCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKKwkJZXhpdCAxCisJCTs7Citlc2FjCisKKyMgSGVyZSB3ZSBjYW5vbmljYWxpemUgY2VydGFpbiBhbGlhc2VzIGZvciBtYW51ZmFjdHVyZXJzLgorY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorCSotZGlnaXRhbCopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvZGlnaXRhbC4qL2RlYy8nYAorCQk7OworCSotY29tbW9kb3JlKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9jb21tb2RvcmUuKi9jYm0vJ2AKKwkJOzsKKwkqKQorCQk7OworZXNhYworCisjIERlY29kZSBtYW51ZmFjdHVyZXItc3BlY2lmaWMgYWxpYXNlcyBmb3IgY2VydGFpbiBvcGVyYXRpbmcgc3lzdGVtcy4KKworaWYgWyB4IiRvcyIgIT0geCIiIF0KK3RoZW4KK2Nhc2UgJG9zIGluCisgICAgICAgICMgRmlyc3QgbWF0Y2ggc29tZSBzeXN0ZW0gdHlwZSBhbGlhc2VzCisgICAgICAgICMgdGhhdCBtaWdodCBnZXQgY29uZnVzZWQgd2l0aCB2YWxpZCBzeXN0ZW0gdHlwZXMuCisJIyAtc29sYXJpcyogaXMgYSBiYXNpYyBzeXN0ZW0gdHlwZSwgd2l0aCB0aGlzIG9uZSBleGNlcHRpb24uCisgICAgICAgIC1hdXJvcmF1eCkKKwkgICAgICAgIG9zPS1hdXJvcmF1eAorCQk7OworCS1zb2xhcmlzMSB8IC1zb2xhcmlzMS4qKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c29sYXJpczF8c3Vub3M0fCdgCisJCTs7CisJLXNvbGFyaXMpCisJCW9zPS1zb2xhcmlzMgorCQk7OworCS1zdnI0KikKKwkJb3M9LXN5c3Y0CisJCTs7CisJLXVuaXh3YXJlKikKKwkJb3M9LXN5c3Y0LjJ1dworCQk7OworCS1nbnUvbGludXgqKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8Z251L2xpbnV4fGxpbnV4LWdudXwnYAorCQk7OworCSMgRmlyc3QgYWNjZXB0IHRoZSBiYXNpYyBzeXN0ZW0gdHlwZXMuCisJIyBUaGUgcG9ydGFibGUgc3lzdGVtcyBjb21lcyBmaXJzdC4KKwkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgorCSMgLXN5c3YqIGlzIG5vdCBoZXJlIGJlY2F1c2UgaXQgY29tZXMgbGF0ZXIsIGFmdGVyIHN5c3ZyNC4KKwktZ251KiB8IC1ic2QqIHwgLW1hY2gqIHwgLW1pbml4KiB8IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4KiBcCisJICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtY25rKiB8IC1zdW5vcyB8IC1zdW5vc1szNF0qXAorCSAgICAgIHwgLWhwdXgqIHwgLXVub3MqIHwgLW9zZiogfCAtbHVuYSogfCAtZGd1eCogfCAtYXVyb3JhdXgqIHwgLXNvbGFyaXMqIFwKKwkgICAgICB8IC1zeW0qIHwgLWtvcGVuc29sYXJpcyogXAorCSAgICAgIHwgLWFtaWdhb3MqIHwgLWFtaWdhZG9zKiB8IC1tc2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAorCSAgICAgIHwgLWFvcyogfCAtYXJvcyogXAorCSAgICAgIHwgLW5pbmR5KiB8IC12eHNpbSogfCAtdnh3b3JrcyogfCAtZWJtb24qIHwgLWhtcyogfCAtbXZzKiBcCisJICAgICAgfCAtY2xpeCogfCAtcmlzY29zKiB8IC11bmlwbHVzKiB8IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCisJICAgICAgfCAtaGl1eCogfCAtMzg2YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwgLW5ldGJzZCogXAorCSAgICAgIHwgLW9wZW5ic2QqIHwgLXNvbGlkYnNkKiBcCisJICAgICAgfCAtZWtrb2JzZCogfCAta2ZyZWVic2QqIHwgLWZyZWVic2QqIHwgLXJpc2NpeCogfCAtbHlueG9zKiBcCisJICAgICAgfCAtYm9zeCogfCAtbmV4dHN0ZXAqIHwgLWN4dXgqIHwgLWFvdXQqIHwgLWVsZiogfCAtb2FiaSogXAorCSAgICAgIHwgLXB0eCogfCAtY29mZiogfCAtZWNvZmYqIHwgLXdpbm50KiB8IC1kb21haW4qIHwgLXZzdGEqIFwKKwkgICAgICB8IC11ZGkqIHwgLWVhYmkqIHwgLWxpdGVzKiB8IC1pZWVlKiB8IC1nbzMyKiB8IC1hdXgqIFwKKwkgICAgICB8IC1jaG9ydXNvcyogfCAtY2hvcnVzcmRiKiB8IC1jZWdjYyogXAorCSAgICAgIHwgLWN5Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwKKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LW5ld2xpYiogfCAtbGludXgtdWNsaWJjKiBcCisJICAgICAgfCAtdXhwdiogfCAtYmVvcyogfCAtbXBlaXgqIHwgLXVkayogXAorCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwgLWRhcndpbiogfCAtb3BlbmVkKiBcCisJICAgICAgfCAtb3BlbnN0ZXAqIHwgLW9za2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCisJICAgICAgfCAtc3Rvcm0tY2hhb3MqIHwgLXRvcHMxMCogfCAtdGVuZXgqIHwgLXRvcHMyMCogfCAtaXRzKiBcCisJICAgICAgfCAtb3MyKiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAorCSAgICAgIHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsqIHwgLXJ0bWstbm92YSogfCAtd2luZGlzcyogXAorCSAgICAgIHwgLXBvd2VybWF4KiB8IC1kbml4KiB8IC1ueDYgfCAtbng3IHwgLXNlaSogfCAtZHJhZ29uZmx5KiBcCisJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10b3BwZXJzKiB8IC1kcm9wcyogfCAtZXMqKQorCSMgUmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKwkJOzsKKwktcW54KikKKwkJY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorCQkgICAgeDg2LSogfCBpKjg2LSopCisJCQk7OworCQkgICAgKikKKwkJCW9zPS1udG8kb3MKKwkJCTs7CisJCWVzYWMKKwkJOzsKKwktbnRvLXFueCopCisJCTs7CisJLW50byopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xudG98bnRvLXFueHwnYAorCQk7OworCS1zaW0gfCAtZXMxODAwKiB8IC1obXMqIHwgLXhyYXkgfCAtb3M2OGsqIHwgLW5vbmUqIHwgLXY4OHIqIFwKKwkgICAgICB8IC13aW5kb3dzKiB8IC1vc3ggfCAtYWJ1ZyB8IC1uZXR3YXJlKiB8IC1vczkqIHwgLWJlb3MqIHwgLWhhaWt1KiBcCisJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdzKikKKwkJOzsKKwktbWFjKikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNvc3wnYAorCQk7OworCS1saW51eC1kaWV0bGliYykKKwkJb3M9LWxpbnV4LWRpZXRsaWJjCisJCTs7CisJLWxpbnV4KikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4LWdudXwnYAorCQk7OworCS1zdW5vczUqKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdgCisJCTs7CisJLXN1bm9zNiopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKKwkJOzsKKwktb3BlbmVkKikKKwkJb3M9LW9wZW5lZGl0aW9uCisJCTs7CisgICAgICAgIC1vczQwMCopCisJCW9zPS1vczQwMAorCQk7OworCS13aW5jZSopCisJCW9zPS13aW5jZQorCQk7OworCS1vc2Zyb3NlKikKKwkJb3M9LW9zZnJvc2UKKwkJOzsKKwktb3NmKikKKwkJb3M9LW9zZgorCQk7OworCS11dGVrKikKKwkJb3M9LWJzZAorCQk7OworCS1keW5peCopCisJCW9zPS1ic2QKKwkJOzsKKwktYWNpcyopCisJCW9zPS1hb3MKKwkJOzsKKwktYXRoZW9zKikKKwkJb3M9LWF0aGVvcworCQk7OworCS1zeWxsYWJsZSopCisJCW9zPS1zeWxsYWJsZQorCQk7OworCS0zODZic2QpCisJCW9zPS1ic2QKKwkJOzsKKwktY3RpeCogfCAtdXRzKikKKwkJb3M9LXN5c3YKKwkJOzsKKwktbm92YSopCisJCW9zPS1ydG1rLW5vdmEKKwkJOzsKKwktbnMyICkKKwkJb3M9LW5leHRzdGVwMgorCQk7OworCS1uc2sqKQorCQlvcz0tbnNrCisJCTs7CisJIyBQcmVzZXJ2ZSB0aGUgdmVyc2lvbiBudW1iZXIgb2Ygc2luaXg1LgorCS1zaW5peDUuKikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNpbml4fHN5c3Z8J2AKKwkJOzsKKwktc2luaXgqKQorCQlvcz0tc3lzdjQKKwkJOzsKKyAgICAgICAgLXRwZiopCisJCW9zPS10cGYKKwkJOzsKKwktdHJpdG9uKikKKwkJb3M9LXN5c3YzCisJCTs7CisJLW9zcyopCisJCW9zPS1zeXN2MworCQk7OworCS1zdnI0KQorCQlvcz0tc3lzdjQKKwkJOzsKKwktc3ZyMykKKwkJb3M9LXN5c3YzCisJCTs7CisJLXN5c3ZyNCkKKwkJb3M9LXN5c3Y0CisJCTs7CisJIyBUaGlzIG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgorCS1zeXN2KikKKwkJOzsKKwktb3NlKikKKwkJb3M9LW9zZQorCQk7OworCS1lczE4MDAqKQorCQlvcz0tb3NlCisJCTs7CisJLXhlbml4KQorCQlvcz0teGVuaXgKKwkJOzsKKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorCQlvcz0tbWludAorCQk7OworCS1hcm9zKikKKwkJb3M9LWFyb3MKKwkJOzsKKwkta2FvcyopCisJCW9zPS1rYW9zCisJCTs7CisJLXp2bW9lKQorCQlvcz0tenZtb2UKKwkJOzsKKwktZGljb3MqKQorCQlvcz0tZGljb3MKKwkJOzsKKwktbm9uZSkKKwkJOzsKKwkqKQorCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KKwkJb3M9YGVjaG8gJG9zIHwgc2VkICdzL1teLV0qLS8vJ2AKKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBzeXN0ZW0gXGAkb3NcJyBub3QgcmVjb2duaXplZCAxPiYyCisJCWV4aXQgMQorCQk7OworZXNhYworZWxzZQorCisjIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgY29tZSB3aXRoIHZhcmlvdXMgbWFjaGluZXMuCisjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgorIyBtYWNoaW5lIG9yIHB1dCBhbm90aGVyIHdheSwgdGhlIG1vc3QgcG9wdWxhciBvcyBwcm92aWRlZCB3aXRoIHRoZSBtYWNoaW5lLgorCisjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChzYXksCisjICItc3VuIiksIHRoZW4geW91IGhhdmUgdG8gdGVsbCB0aGUgY2FzZSBzdGF0ZW1lbnQgdXAgdG93YXJkcyB0aGUgdG9wCisjIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZyBzeXN0ZW0uICBPdGhlcndpc2UsIGNvZGUgYWJvdmUKKyMgd2lsbCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZworIyBzeXN0ZW0sIGFuZCB3ZSdsbCBuZXZlciBnZXQgdG8gdGhpcyBwb2ludC4KKworY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorICAgICAgICBzY29yZS0qKQorCQlvcz0tZWxmCisJCTs7CisgICAgICAgIHNwdS0qKQorCQlvcz0tZWxmCisJCTs7CisJKi1hY29ybikKKwkJb3M9LXJpc2NpeDEuMgorCQk7OworCWFybSotcmViZWwpCisJCW9zPS1saW51eAorCQk7OworCWFybSotc2VtaSkKKwkJb3M9LWFvdXQKKwkJOzsKKyAgICAgICAgYzR4LSogfCB0aWM0eC0qKQorICAgICAgICAJb3M9LWNvZmYKKwkJOzsKKwkjIFRoaXMgbXVzdCBjb21lIGJlZm9yZSB0aGUgKi1kZWMgZW50cnkuCisJcGRwMTAtKikKKwkJb3M9LXRvcHMyMAorCQk7OworCXBkcDExLSopCisJCW9zPS1ub25lCisJCTs7CisJKi1kZWMgfCB2YXgtKikKKwkJb3M9LXVsdHJpeDQuMgorCQk7OworCW02OCotYXBvbGxvKQorCQlvcz0tZG9tYWluCisJCTs7CisJaTM4Ni1zdW4pCisJCW9zPS1zdW5vczQuMC4yCisJCTs7CisJbTY4MDAwLXN1bikKKwkJb3M9LXN1bm9zMworCQkjIFRoaXMgYWxzbyBleGlzdHMgaW4gdGhlIGNvbmZpZ3VyZSBwcm9ncmFtLCBidXQgd2FzIG5vdCB0aGUKKwkJIyBkZWZhdWx0LgorCQkjIG9zPS1zdW5vczQKKwkJOzsKKwltNjgqLWNpc2NvKQorCQlvcz0tYW91dAorCQk7OworICAgICAgICBtZXAtKikKKwkJb3M9LWVsZgorCQk7OworCW1pcHMqLWNpc2NvKQorCQlvcz0tZWxmCisJCTs7CisJbWlwcyotKikKKwkJb3M9LWVsZgorCQk7OworCW9yMzItKikKKwkJb3M9LWNvZmYKKwkJOzsKKwkqLXR0aSkJIyBtdXN0IGJlIGJlZm9yZSBzcGFyYyBlbnRyeSBvciB3ZSBnZXQgdGhlIHdyb25nIG9zLgorCQlvcz0tc3lzdjMKKwkJOzsKKwlzcGFyYy0qIHwgKi1zdW4pCisJCW9zPS1zdW5vczQuMS4xCisJCTs7CisJKi1iZSkKKwkJb3M9LWJlb3MKKwkJOzsKKwkqLWhhaWt1KQorCQlvcz0taGFpa3UKKwkJOzsKKwkqLWlibSkKKwkJb3M9LWFpeAorCQk7OworICAgIAkqLWtudXRoKQorCQlvcz0tbW1peHdhcmUKKwkJOzsKKwkqLXdlYykKKwkJb3M9LXByb2VsZgorCQk7OworCSotd2luYm9uZCkKKwkJb3M9LXByb2VsZgorCQk7OworCSotb2tpKQorCQlvcz0tcHJvZWxmCisJCTs7CisJKi1ocCkKKwkJb3M9LWhwdXgKKwkJOzsKKwkqLWhpdGFjaGkpCisJCW9zPS1oaXV4CisJCTs7CisJaTg2MC0qIHwgKi1hdHQgfCAqLW5jciB8ICotYWx0b3MgfCAqLW1vdG9yb2xhIHwgKi1jb252ZXJnZW50KQorCQlvcz0tc3lzdgorCQk7OworCSotY2JtKQorCQlvcz0tYW1pZ2FvcworCQk7OworCSotZGcpCisJCW9zPS1kZ3V4CisJCTs7CisJKi1kb2xwaGluKQorCQlvcz0tc3lzdjMKKwkJOzsKKwltNjhrLWNjdXIpCisJCW9zPS1ydHUKKwkJOzsKKwltODhrLW9tcm9uKikKKwkJb3M9LWx1bmEKKwkJOzsKKwkqLW5leHQgKQorCQlvcz0tbmV4dHN0ZXAKKwkJOzsKKwkqLXNlcXVlbnQpCisJCW9zPS1wdHgKKwkJOzsKKwkqLWNyZHMpCisJCW9zPS11bm9zCisJCTs7CisJKi1ucykKKwkJb3M9LWdlbml4CisJCTs7CisJaTM3MC0qKQorCQlvcz0tbXZzCisJCTs7CisJKi1uZXh0KQorCQlvcz0tbmV4dHN0ZXAzCisJCTs7CisJKi1nb3VsZCkKKwkJb3M9LXN5c3YKKwkJOzsKKwkqLWhpZ2hsZXZlbCkKKwkJb3M9LWJzZAorCQk7OworCSotZW5jb3JlKQorCQlvcz0tYnNkCisJCTs7CisJKi1zZ2kpCisJCW9zPS1pcml4CisJCTs7CisJKi1zaWVtZW5zKQorCQlvcz0tc3lzdjQKKwkJOzsKKwkqLW1hc3Njb21wKQorCQlvcz0tcnR1CisJCTs7CisJZjMwWzAxXS1mdWppdHN1IHwgZjcwMC1mdWppdHN1KQorCQlvcz0tdXhwdgorCQk7OworCSotcm9tNjhrKQorCQlvcz0tY29mZgorCQk7OworCSotKmJ1ZykKKwkJb3M9LWNvZmYKKwkJOzsKKwkqLWFwcGxlKQorCQlvcz0tbWFjb3MKKwkJOzsKKwkqLWF0YXJpKikKKwkJb3M9LW1pbnQKKwkJOzsKKwkqKQorCQlvcz0tbm9uZQorCQk7OworZXNhYworZmkKKworIyBIZXJlIHdlIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBrbm93IHRoZSBvcywgYW5kIHRoZSBDUFUgdHlwZSwgYnV0IG5vdCB0aGUKKyMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCit2ZW5kb3I9dW5rbm93bgorY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorCSotdW5rbm93bikKKwkJY2FzZSAkb3MgaW4KKwkJCS1yaXNjaXgqKQorCQkJCXZlbmRvcj1hY29ybgorCQkJCTs7CisJCQktc3Vub3MqKQorCQkJCXZlbmRvcj1zdW4KKwkJCQk7OworCQkJLWNuayp8LWFpeCopCisJCQkJdmVuZG9yPWlibQorCQkJCTs7CisJCQktYmVvcyopCisJCQkJdmVuZG9yPWJlCisJCQkJOzsKKwkJCS1ocHV4KikKKwkJCQl2ZW5kb3I9aHAKKwkJCQk7OworCQkJLW1wZWl4KikKKwkJCQl2ZW5kb3I9aHAKKwkJCQk7OworCQkJLWhpdXgqKQorCQkJCXZlbmRvcj1oaXRhY2hpCisJCQkJOzsKKwkJCS11bm9zKikKKwkJCQl2ZW5kb3I9Y3JkcworCQkJCTs7CisJCQktZGd1eCopCisJCQkJdmVuZG9yPWRnCisJCQkJOzsKKwkJCS1sdW5hKikKKwkJCQl2ZW5kb3I9b21yb24KKwkJCQk7OworCQkJLWdlbml4KikKKwkJCQl2ZW5kb3I9bnMKKwkJCQk7OworCQkJLW12cyogfCAtb3BlbmVkKikKKwkJCQl2ZW5kb3I9aWJtCisJCQkJOzsKKwkJCS1vczQwMCopCisJCQkJdmVuZG9yPWlibQorCQkJCTs7CisJCQktcHR4KikKKwkJCQl2ZW5kb3I9c2VxdWVudAorCQkJCTs7CisJCQktdHBmKikKKwkJCQl2ZW5kb3I9aWJtCisJCQkJOzsKKwkJCS12eHNpbSogfCAtdnh3b3JrcyogfCAtd2luZGlzcyopCisJCQkJdmVuZG9yPXdycworCQkJCTs7CisJCQktYXV4KikKKwkJCQl2ZW5kb3I9YXBwbGUKKwkJCQk7OworCQkJLWhtcyopCisJCQkJdmVuZG9yPWhpdGFjaGkKKwkJCQk7OworCQkJLW1wdyogfCAtbWFjb3MqKQorCQkJCXZlbmRvcj1hcHBsZQorCQkJCTs7CisJCQktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorCQkJCXZlbmRvcj1hdGFyaQorCQkJCTs7CisJCQktdm9zKikKKwkJCQl2ZW5kb3I9c3RyYXR1cworCQkJCTs7CisJCWVzYWMKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAKKwkJOzsKK2VzYWMKKworZWNobyAkYmFzaWNfbWFjaGluZSRvcworZXhpdAorCisjIExvY2FsIHZhcmlhYmxlczoKKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKKyMgdGltZS1zdGFtcC1lbmQ6ICInIgorIyBFbmQ6CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NvbmZpZ3VyZSBiL2xpYnhtbDItMi43LjcvY29uZmlndXJlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFkMWM1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NvbmZpZ3VyZQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2NvbmZpZ3VyZS5pbiBiL2xpYnhtbDItMi43LjcvY29uZmlndXJlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3YzExY2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2NvbmZpZ3VyZS5pbgpAQCAtMCwwICsxLDE0NjIgQEAKK2RubCBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0LgorQUNfSU5JVChlbnRpdGllcy5jKQorQU1fQ09ORklHX0hFQURFUihjb25maWcuaCkKK0FDX0NPTkZJR19NQUNST19ESVIoW200XSkKK0FDX0NBTk9OSUNBTF9IT1NUCisKK0xJQlhNTF9NQUpPUl9WRVJTSU9OPTIKK0xJQlhNTF9NSU5PUl9WRVJTSU9OPTcKK0xJQlhNTF9NSUNST19WRVJTSU9OPTcKK0xJQlhNTF9NSUNST19WRVJTSU9OX1NVRkZJWD0KK0xJQlhNTF9WRVJTSU9OPSRMSUJYTUxfTUFKT1JfVkVSU0lPTi4kTElCWE1MX01JTk9SX1ZFUlNJT04uJExJQlhNTF9NSUNST19WRVJTSU9OJExJQlhNTF9NSUNST19WRVJTSU9OX1NVRkZJWAorTElCWE1MX1ZFUlNJT05fSU5GTz1gZXhwciAkTElCWE1MX01BSk9SX1ZFUlNJT04gKyAkTElCWE1MX01JTk9SX1ZFUlNJT05gOiRMSUJYTUxfTUlDUk9fVkVSU0lPTjokTElCWE1MX01JTk9SX1ZFUlNJT04KKworTElCWE1MX1ZFUlNJT05fTlVNQkVSPWBleHByICRMSUJYTUxfTUFKT1JfVkVSU0lPTiBcKiAxMDAwMCArICRMSUJYTUxfTUlOT1JfVkVSU0lPTiBcKiAxMDAgKyAkTElCWE1MX01JQ1JPX1ZFUlNJT05gCisKK2lmIHRlc3QgLWYgQ1ZTL0VudHJpZXMgOyB0aGVuCisgIGV4dHJhPWBncmVwIENoYW5nZUxvZyBDVlMvRW50cmllcyB8IGdyZXAgLXYgTElCWE1MIHwgc2VkIC1lIHNcJS9DaGFuZ2VMb2cvMVwuJSUgLWUgc1wlLy4qJCUlYAorICBlY2hvIGV4dHJhPSRleHRyYQorICBpZiB0ZXN0ICIkZXh0cmEiICE9ICIiCisgIHRoZW4KKyAgICAgIExJQlhNTF9WRVJTSU9OX0VYVFJBPSItQ1ZTJGV4dHJhIgorICBmaQorZWxzZSBpZiB0ZXN0IC1kIC5zdm4gOyB0aGVuCisgIGV4dHJhPWBzdm4gaW5mbyB8IGdyZXAgUmV2aXNpb24gfCBzZWQgJ3MrUmV2aXNpb246ICsrJ2AKKyAgZWNobyBleHRyYT0kZXh0cmEKKyAgaWYgdGVzdCAiJGV4dHJhIiAhPSAiIgorICB0aGVuCisgICAgICBMSUJYTUxfVkVSU0lPTl9FWFRSQT0iLVNWTiRleHRyYSIKKyAgZmkKK2Vsc2UgaWYgdGVzdCAtZCAuZ2l0IDsgdGhlbgorICBleHRyYT1gZ2l0IGRlc2NyaWJlIHwgc2VkICdzK0xJQlhNTFtbMC05Ll1dKi0rKydgCisgIGVjaG8gZXh0cmE9JGV4dHJhCisgIGlmIHRlc3QgIiRleHRyYSIgIT0gIiIKKyAgdGhlbgorICAgICAgTElCWE1MX1ZFUlNJT05fRVhUUkE9Ii1HSVQkZXh0cmEiCisgIGZpCitmaQorZmkKK2ZpCitBQ19TVUJTVChMSUJYTUxfTUFKT1JfVkVSU0lPTikKK0FDX1NVQlNUKExJQlhNTF9NSU5PUl9WRVJTSU9OKQorQUNfU1VCU1QoTElCWE1MX01JQ1JPX1ZFUlNJT04pCitBQ19TVUJTVChMSUJYTUxfVkVSU0lPTikKK0FDX1NVQlNUKExJQlhNTF9WRVJTSU9OX0lORk8pCitBQ19TVUJTVChMSUJYTUxfVkVSU0lPTl9OVU1CRVIpCitBQ19TVUJTVChMSUJYTUxfVkVSU0lPTl9FWFRSQSkKKworVkVSU0lPTj0ke0xJQlhNTF9WRVJTSU9OfQorCitBTV9JTklUX0FVVE9NQUtFKGxpYnhtbDIsICRWRVJTSU9OKQorCitkbmwgQ2hlY2tzIGZvciBwcm9ncmFtcy4KK0FDX1BST0dfQ0MKK0FDX1BST0dfSU5TVEFMTAorQUNfUFJPR19DUFAKK0FDX1BBVEhfUFJPRyhSTSwgcm0sIC9iaW4vcm0pCitBQ19QQVRIX1BST0coTVYsIG12LCAvYmluL212KQorQUNfUEFUSF9QUk9HKFRBUiwgdGFyLCAvYmluL3RhcikKK0FDX1BBVEhfUFJPRyhQRVJMLCBwZXJsLCAvdXNyL2Jpbi9wZXJsKQorQUNfUEFUSF9QUk9HKFdHRVQsIHdnZXQsIC91c3IvYmluL3dnZXQpCitBQ19QQVRIX1BST0coWE1MTElOVCwgeG1sbGludCwgL3Vzci9iaW4veG1sbGludCkKK0FDX1BBVEhfUFJPRyhYU0xUUFJPQywgeHNsdHByb2MsIC91c3IvYmluL3hzbHRwcm9jKQorCitkbmwgTWFrZSBzdXJlIHdlIGhhdmUgYW4gQU5TSSBjb21waWxlcgorQU1fQ19QUk9UT1RZUEVTCit0ZXN0ICJ4JFUiICE9ICJ4IiAmJiBBQ19NU0dfRVJST1IoQ29tcGlsZXIgbm90IEFOU0kgY29tcGxpYW50KQorCitBQ19MSUJUT09MX1dJTjMyX0RMTAorQU1fUFJPR19MSUJUT09MCisKK2RubAorZG5sIGlmIHRoZSBzeXN0ZW0gc3VwcG9ydCBsaW5rZXIgdmVyc2lvbiBzY3JpcHRzIGZvciBzeW1ib2wgdmVyc2lvbmluZworZG5sIHRoZW4gYWRkIGl0CitkbmwKK1ZFUlNJT05fU0NSSVBUX0ZMQUdTPQorIyBsdF9jdl9wcm9nX2dudV9sZCBpcyBmcm9tIGxpYnRvb2wgMi4rCitpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCisgIFZFUlNJT05fU0NSSVBUX0ZMQUdTPS1XbCwtLXZlcnNpb24tc2NyaXB0PQorZWxzZQorICBjYXNlICRob3N0IGluCisgICotKi1zdW5vcyopIFZFUlNJT05fU0NSSVBUX0ZMQUdTPSItV2wsLU0gLVdsLCI7OworICBlc2FjCitmaQorQUNfU1VCU1QoVkVSU0lPTl9TQ1JJUFRfRkxBR1MpCitBTV9DT05ESVRJT05BTChbVVNFX1ZFUlNJT05fU0NSSVBUXSwgW3Rlc3QgLW4gIiRWRVJTSU9OX1NDUklQVF9GTEFHUyJdKQorCitkbmwKK2RubCBXZSBwcm9jZXNzIHRoZSBBQ19BUkdfV0lUSCBmaXJzdCBzbyB0aGF0IGxhdGVyIHdlIGNhbiBtb2RpZnkKK2RubCBzb21lIG9mIHRoZW0gdG8gdHJ5IHRvIHByZXZlbnQgaW1wb3NzaWJsZSBjb21iaW5hdGlvbnMuICBUaGlzCitkbmwgYWxzbyBhbGxvd3MgdXAgc28gYWxwaGFiZXRpemUgdGhlIGNob2ljZXMKK2RubAorCitkbmwKK2RubCB6bGliIG9wdGlvbiBtaWdodCBjaGFuZ2UgZmxhZ3MsIHNvIHdlIHNhdmUgdGhlbSBpbml0aWFsbHkKK2RubAorX2NwcGZsYWdzPSIke0NQUEZMQUdTfSIKK19sZGZsYWdzPSIke0xERkxBR1N9IgorCitBQ19BUkdfV0lUSChjMTRuLAorWyAgLS13aXRoLWMxNG4gICAgICAgICAgICAgYWRkIHRoZSBDYW5vbmljYWxpemF0aW9uIHN1cHBvcnQgKG9uKV0pCitBQ19BUkdfV0lUSChjYXRhbG9nLAorWyAgLS13aXRoLWNhdGFsb2cgICAgICAgICAgYWRkIHRoZSBDYXRhbG9nIHN1cHBvcnQgKG9uKV0pCitBQ19BUkdfV0lUSChkZWJ1ZywKK1sgIC0td2l0aC1kZWJ1ZyAgICAgICAgICAgIGFkZCB0aGUgZGVidWdnaW5nIG1vZHVsZSAob24pXSkKK0FDX0FSR19XSVRIKGRvY2Jvb2ssCitbICAtLXdpdGgtZG9jYm9vayAgICAgICAgICBhZGQgRG9jYm9vayBTR01MIHN1cHBvcnQgKG9uKV0pCitBQ19BUkdfV0lUSChmZXhjZXB0aW9ucywKK1sgIC0td2l0aC1mZXhjZXB0aW9ucyAgICAgIGFkZCBHQ0MgZmxhZyAtZmV4Y2VwdGlvbnMgZm9yIEMrKyBleGNlcHRpb25zIChvZmYpXSkKK0FDX0FSR19XSVRIKGZ0cCwKK1sgIC0td2l0aC1mdHAgICAgICAgICAgICAgIGFkZCB0aGUgRlRQIHN1cHBvcnQgKG9uKV0pCitBQ19BUkdfV0lUSChoaXN0b3J5LAorWyAgLS13aXRoLWhpc3RvcnkgICAgICAgICAgYWRkIGhpc3Rvcnkgc3VwcG9ydCB0byB4bWxsaW50IHNoZWxsKG9mZildKQorQUNfQVJHX1dJVEgoaHRtbCwKK1sgIC0td2l0aC1odG1sICAgICAgICAgICAgIGFkZCB0aGUgSFRNTCBzdXBwb3J0IChvbildKQorZG5sIFNwZWNpZmljIGRpciBmb3IgSFRNTCBvdXRwdXQgPworQUNfQVJHX1dJVEgoaHRtbC1kaXIsIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtaHRtbC1kaXI9cGF0aF0sCisgICAgICAgICAgICBbcGF0aCB0byBiYXNlIGh0bWwgZGlyZWN0b3J5LCBkZWZhdWx0ICRkYXRhZGlyL2RvYy9odG1sXSksCisgICAgICAgICAgICBbSFRNTF9ESVI9JHdpdGh2YWxdLCBbSFRNTF9ESVI9JyQoZGF0YWRpcikvZG9jJ10pCisKK0FDX0FSR19XSVRIKGh0bWwtc3ViZGlyLCBBQ19IRUxQX1NUUklORyhbLS13aXRoLWh0bWwtc3ViZGlyPXBhdGhdLAorICAgICAgICAgICAgW2RpcmVjdG9yeSB1c2VkIHVuZGVyIGh0bWwtZGlyLCBkZWZhdWx0ICRQQUNLQUdFLSRWRVJTSU9OL2h0bWxdKSwKKyAgICAgICAgICAgIFt0ZXN0ICJ4JHdpdGh2YWwiICE9ICJ4IiAmJiBIVE1MX0RJUj0iJEhUTUxfRElSLyR3aXRodmFsIl0sCisgICAgICAgICAgICBbSFRNTF9ESVI9IiRIVE1MX0RJUi9cJChQQUNLQUdFKS1cJChWRVJTSU9OKS9odG1sIl0pCitBQ19TVUJTVChIVE1MX0RJUikKK0FDX0FSR19XSVRIKGh0dHAsCitbICAtLXdpdGgtaHR0cCAgICAgICAgICAgICBhZGQgdGhlIEhUVFAgc3VwcG9ydCAob24pXSkKK0FDX0FSR19XSVRIKGljb252LAorWyAgLS13aXRoLWljb252W1s9RElSXV0gICAgICBhZGQgSUNPTlYgc3VwcG9ydCAob24pXSkKK0FDX0FSR19XSVRIKGlzbzg4NTl4LAorWyAgLS13aXRoLWlzbzg4NTl4ICAgICAgICAgYWRkIElTTzg4NTlYIHN1cHBvcnQgaWYgbm8gaWNvbnYgKG9uKV0pCitBQ19BUkdfV0lUSChsZWdhY3ksCitbICAtLXdpdGgtbGVnYWN5ICAgICAgICAgICBhZGQgZGVwcmVjYXRlZCBBUElzIGZvciBjb21wYXRpYmlsaXR5IChvbildKQorQUNfQVJHX1dJVEgobWVtX2RlYnVnLAorWyAgLS13aXRoLW1lbS1kZWJ1ZyAgICAgICAgYWRkIHRoZSBtZW1vcnkgZGVidWdnaW5nIG1vZHVsZSAob2ZmKV0pCitBQ19BUkdfV0lUSChtaW5pbXVtLAorWyAgLS13aXRoLW1pbmltdW0gICAgICAgICAgYnVpbGQgYSBtaW5pbWFsbHkgc2l6ZWQgbGlicmFyeSAob2ZmKV0pCitBQ19BUkdfV0lUSChvdXRwdXQsCitbICAtLXdpdGgtb3V0cHV0ICAgICAgICAgICBhZGQgdGhlIHNlcmlhbGl6YXRpb24gc3VwcG9ydCAob24pXSkKK0FDX0FSR19XSVRIKHBhdHRlcm4sCitbICAtLXdpdGgtcGF0dGVybiAgICAgICAgICBhZGQgdGhlIHhtbFBhdHRlcm4gc2VsZWN0aW9uIGludGVyZmFjZSAob24pXSkKK0FDX0FSR19XSVRIKHB1c2gsCitbICAtLXdpdGgtcHVzaCAgICAgICAgICAgICBhZGQgdGhlIFBVU0ggcGFyc2VyIGludGVyZmFjZXMgKG9uKV0pCitBQ19BUkdfV0lUSChweXRob24sCitbICAtLXdpdGgtcHl0aG9uW1s9RElSXV0gICAgIGJ1aWxkIFB5dGhvbiBiaW5kaW5ncyBpZiBmb3VuZF0pCitBQ19BUkdfV0lUSChyZWFkZXIsCitbICAtLXdpdGgtcmVhZGVyICAgICAgICAgICBhZGQgdGhlIHhtbFJlYWRlciBwYXJzaW5nIGludGVyZmFjZSAob24pXSkKK0FDX0FSR19XSVRIKHJlYWRsaW5lLAorWyAgLS13aXRoLXJlYWRsaW5lPURJUiAgICAgdXNlIHJlYWRsaW5lIGluIERJUl0sWworICBpZiB0ZXN0ICIkd2l0aHZhbCIgIT0gIm5vIiAtYSAiJHdpdGh2YWwiICE9ICJ5ZXMiOyB0aGVuCisgICAgUkRMX0RJUj0kd2l0aHZhbAorICAgIENQUEZMQUdTPSIke0NQUEZMQUdTfSAtSSR3aXRodmFsL2luY2x1ZGUiCisgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtTCR3aXRodmFsL2xpYiIKKyAgZmkKK10pCitBQ19BUkdfV0lUSChyZWdleHBzLAorWyAgLS13aXRoLXJlZ2V4cHMgICAgICAgICAgYWRkIFJlZ3VsYXIgRXhwcmVzc2lvbnMgc3VwcG9ydCAob24pXSkKK0FDX0FSR19XSVRIKHJ1bl9kZWJ1ZywKK1sgIC0td2l0aC1ydW4tZGVidWcgICAgICAgIGFkZCB0aGUgcnVudGltZSBkZWJ1Z2dpbmcgbW9kdWxlIChvZmYpXSkKK0FDX0FSR19XSVRIKHNheDEsCitbICAtLXdpdGgtc2F4MSAgICAgICAgICAgICBhZGQgdGhlIG9sZGVyIFNBWDEgaW50ZXJmYWNlIChvbildKQorQUNfQVJHX1dJVEgoc2NoZW1hcywKK1sgIC0td2l0aC1zY2hlbWFzICAgICAgICAgIGFkZCBSZWxheC1ORyBhbmQgU2NoZW1hcyBzdXBwb3J0IChvbildKQorQUNfQVJHX1dJVEgoc2NoZW1hdHJvbiwKK1sgIC0td2l0aC1zY2hlbWF0cm9uICAgICAgIGFkZCBTY2hlbWF0cm9uIHN1cHBvcnQgKG9uKV0pCitBQ19BUkdfV0lUSCh0aHJlYWRzLAorWyAgLS13aXRoLXRocmVhZHMgICAgICAgICAgYWRkIG11bHRpdGhyZWFkIHN1cHBvcnQob24pXSkKK0FDX0FSR19XSVRIKHRocmVhZC1hbGxvYywKK1sgIC0td2l0aC10aHJlYWQtYWxsb2MgICAgIGFkZCBwZXItdGhyZWFkIG1lbW9yeShvZmYpXSkKK0FDX0FSR19XSVRIKHRyZWUsCitbICAtLXdpdGgtdHJlZSAgICAgICAgICAgICBhZGQgdGhlIERPTSBsaWtlIHRyZWUgbWFuaXB1bGF0aW9uIEFQSXMgKG9uKV0pCitBQ19BUkdfV0lUSCh2YWxpZCwKK1sgIC0td2l0aC12YWxpZCAgICAgICAgICAgIGFkZCB0aGUgRFREIHZhbGlkYXRpb24gc3VwcG9ydCAob24pXSkKK0FDX0FSR19XSVRIKHdyaXRlciwKK1sgIC0td2l0aC13cml0ZXIgICAgICAgICAgIGFkZCB0aGUgeG1sV3JpdGVyIHNhdmluZyBpbnRlcmZhY2UgKG9uKV0pCitBQ19BUkdfV0lUSCh4aW5jbHVkZSwKK1sgIC0td2l0aC14aW5jbHVkZSAgICAgICAgIGFkZCB0aGUgWEluY2x1ZGUgc3VwcG9ydCAob24pXSkKK0FDX0FSR19XSVRIKHhwYXRoLAorWyAgLS13aXRoLXhwYXRoICAgICAgICAgICAgYWRkIHRoZSBYUEFUSCBzdXBwb3J0IChvbildKQorQUNfQVJHX1dJVEgoeHB0ciwKK1sgIC0td2l0aC14cHRyICAgICAgICAgICAgIGFkZCB0aGUgWFBvaW50ZXIgc3VwcG9ydCAob24pXSkKK0FDX0FSR19XSVRIKG1vZHVsZXMsCitbICAtLXdpdGgtbW9kdWxlcyAgICAgICAgICBhZGQgdGhlIGR5bmFtaWMgbW9kdWxlcyBzdXBwb3J0IChvbildKQorQUNfQVJHX1dJVEgoemxpYiwKK1sgIC0td2l0aC16bGliW1s9RElSXV0gICAgICAgdXNlIGxpYnogaW4gRElSXSxbCisgIGlmIHRlc3QgIiR3aXRodmFsIiAhPSAibm8iIC1hICIkd2l0aHZhbCIgIT0gInllcyI7IHRoZW4KKyAgICBaX0RJUj0kd2l0aHZhbAorICAgIENQUEZMQUdTPSIke0NQUEZMQUdTfSAtSSR3aXRodmFsL2luY2x1ZGUiCisgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtTCR3aXRodmFsL2xpYiIKKyAgZmkKK10pCitBQ19BUkdfV0lUSChjb3ZlcmFnZSwKK1sgIC0td2l0aC1jb3ZlcmFnZSAgICAgICAgIGJ1aWxkIGZvciBjb2RlIGNvdmVyYWdlIHdpdGggR0NDIChvZmYpXSkKKworQUNfQVJHX0VOQUJMRShyZWJ1aWxkLWRvY3MsCitbICAtLWVuYWJsZS1yZWJ1aWxkLWRvY3NbWz15ZXMvbm9dXSAgcmVidWlsZCBzb21lIGdlbmVyYXRlZCBkb2NzIFtbZGVmYXVsdD15ZXNdXV0pCitBTV9DT05ESVRJT05BTChbUkVCVUlMRF9ET0NTXSwgW3Rlc3QgIiRlbmFibGVfcmVidWlsZF9kb2NzIiA9ICJubyJdKQorCitkbmwKK2RubCBoYXJkIGRlcGVuZGFuY2llcyBvbiBvcHRpb25zCitkbmwKK2lmIHRlc3QgIiR3aXRoX3NjaGVtYXMiID0gInllcyIKK3RoZW4KKyAgICB3aXRoX3BhdHRlcm49eWVzCisgICAgd2l0aF9yZWdleHBzPXllcworZmkKK2lmIHRlc3QgIiR3aXRoX3NjaGVtYXRyb24iID0gInllcyIKK3RoZW4KKyAgICB3aXRoX3BhdHRlcm49eWVzCisgICAgd2l0aF94cGF0aD15ZXMKK2ZpCitpZiB0ZXN0ICIkd2l0aF9yZWFkZXIiID0gInllcyIKK3RoZW4KKyAgICB3aXRoX3B1c2g9eWVzCitmaQoraWYgdGVzdCAiJHdpdGhfeHB0ciIgPSAieWVzIgordGhlbgorICAgIHdpdGhfeHBhdGg9eWVzCitmaQorZG5sCitkbmwgb3B0aW9uIHRvIGJ1aWxkIGEgbWluaW1hbCBsaWJ4bWwyIGxpYnJhcnkKK2RubAoraWYgdGVzdCAiJHdpdGhfbWluaW11bSIgPSAieWVzIgordGhlbgorICAgIGVjaG8gIkNvbmZpZ3VyaW5nIGZvciBhIG1pbmltYWwgbGlicmFyeSIKKyAgICBpZiB0ZXN0ICIkd2l0aF9jMTRuIiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF9jMTRuPW5vCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF9jYXRhbG9nIiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF9jYXRhbG9nPW5vCisgICAgZmkKKyAgICBlY2hvIFNvIGZhciBzbyBnb29kIQorICAgIGlmIHRlc3QgIiR3aXRoX2RlYnVnIiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF9kZWJ1Zz1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfZG9jYm9vayIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfZG9jYm9vaz1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfZmV4Y2VwdGlvbnMiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX2ZleGNlcHRpb25zPW5vCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF9mdHAiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX2Z0cD1ubyAKKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX2hpc3RvcnkiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX2hpc3Rvcnk9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX2h0bWwiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX2h0bWw9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX2h0dHAiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX2h0dHA9bm8gCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF9pY29udiIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfaWNvbnY9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX2lzbzg4NTl4IiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF9pc284ODU5eD1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfbGVnYWN5IiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF9sZWdhY3k9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX21lbV9kZWJ1ZyIgPSAiIgorICAgIHRoZW4gCisgICAgICB3aXRoX21lbV9kZWJ1Zz1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfb3V0cHV0IiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF9vdXRwdXQ9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX3BhdHRlcm4iID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3BhdHRlcm49bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX3B1c2giID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3B1c2g9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX3B5dGhvbiIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfcHl0aG9uPW5vCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF9yZWFkZXIiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3JlYWRlcj1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfcmVhZGxpbmUiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3JlYWRsaW5lPW5vCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF9yZWdleHBzIiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF9yZWdleHBzPW5vCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF9ydW5fZGVidWciID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3J1bl9kZWJ1Zz1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfc2F4MSIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfc2F4MT1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfc2NoZW1hcyIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfc2NoZW1hcz1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfc2NoZW1hdHJvbiIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfc2NoZW1hdHJvbj1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfdGhyZWFkcyIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfdGhyZWFkcz1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfdGhyZWFkX2FsbG9jIiA9ICIiCisgICAgdGhlbgorICAgICAgd2l0aF90aHJlYWRfYWxsb2M9bm8KKyAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfdHJlZSIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfdHJlZT1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfdmFsaWQiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3ZhbGlkPW5vCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF93cml0ZXIiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3dyaXRlcj1ubworICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfeGluY2x1ZGUiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3hpbmNsdWRlPW5vCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkd2l0aF94cGF0aCIgPSAiIgorICAgIHRoZW4KKyAgICAgIHdpdGhfeHBhdGg9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX3hwdHIiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3hwdHI9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX3psaWIiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX3psaWI9bm8KKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX21vZHVsZXMiID0gIiIKKyAgICB0aGVuCisgICAgICB3aXRoX21vZHVsZXM9bm8KKyAgICBmaQorZmkKKworZWNobyBDaGVja2luZyB6bGliCisKK2RubCBDaGVja3MgZm9yIHpsaWIgbGlicmFyeS4KKworV0lUSF9aTElCPTAKK2lmIHRlc3QgIiR3aXRoX3psaWIiID0gIm5vIjsgdGhlbgorICAgIGVjaG8gIkRpc2FibGluZyBjb21wcmVzc2lvbiBzdXBwb3J0IgorZWxzZQorICAgIEFDX0NIRUNLX0hFQURFUlMoemxpYi5oLAorCUFDX0NIRUNLX0xJQih6LCBnenJlYWQsWworCSAgICBBQ19ERUZJTkUoW0hBVkVfTElCWl0sIFsxXSwgW0hhdmUgY29tcHJlc3Npb24gbGlicmFyeV0pCisJICAgIFdJVEhfWkxJQj0xCisJICAgIGlmIHRlc3QgIngke1pfRElSfSIgIT0gIngiOyB0aGVuCisJCVpfQ0ZMQUdTPSItSSR7Wl9ESVJ9L2luY2x1ZGUiCisJCVpfTElCUz0iLUwke1pfRElSfS9saWIgLWx6IgorCQlbY2FzZSAke2hvc3R9IGluCisJCSAgICAqLSotc29sYXJpcyopCisJCQlaX0xJQlM9Ii1MJHtaX0RJUn0vbGliIC1SJHtaX0RJUn0vbGliIC1seiIKKwkJCTs7CisJCWVzYWNdCisJICAgIGVsc2UKKwkJWl9MSUJTPSItbHoiCisJICAgIGZpXSkpCitmaQorCitBQ19TVUJTVChaX0NGTEFHUykKK0FDX1NVQlNUKFpfTElCUykKK0FDX1NVQlNUKFdJVEhfWkxJQikKKworQ1BQRkxBR1M9JHtfY3BwZmxhZ3N9CitMREZMQUdTPSR7X2xkZmxhZ3N9CisKK2VjaG8gQ2hlY2tpbmcgaGVhZGVycworCitkbmwgQ2hlY2tzIGZvciBoZWFkZXIgZmlsZXMuCitBQ19IRUFERVJfRElSRU5UCitBQ19IRUFERVJfU1REQworQUNfQ0hFQ0tfSEVBREVSUyhbZmNudGwuaF0pCitBQ19DSEVDS19IRUFERVJTKFt1bmlzdGQuaF0pCitBQ19DSEVDS19IRUFERVJTKFtjdHlwZS5oXSkKK0FDX0NIRUNLX0hFQURFUlMoW2RpcmVudC5oXSkKK0FDX0NIRUNLX0hFQURFUlMoW2Vycm5vLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbbWFsbG9jLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbc3RkYXJnLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbc3lzL3N0YXQuaF0pCitBQ19DSEVDS19IRUFERVJTKFtzeXMvdHlwZXMuaF0pCitBQ19DSEVDS19IRUFERVJTKFtzdGRpbnQuaF0pCitBQ19DSEVDS19IRUFERVJTKFtpbnR0eXBlcy5oLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbdGltZS5oXSkKK0FDX0NIRUNLX0hFQURFUlMoW2Fuc2lkZWNsLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbaWVlZWZwLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbbmFuLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbbWF0aC5oXSkKK0FDX0NIRUNLX0hFQURFUlMoW2xpbWl0cy5oXSkKK0FDX0NIRUNLX0hFQURFUlMoW2ZwX2NsYXNzLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbZmxvYXQuaF0pCitBQ19DSEVDS19IRUFERVJTKFtzdGRsaWIuaF0pCitBQ19DSEVDS19IRUFERVJTKFtzeXMvc29ja2V0LmhdLCBbXSwgW10sCitbI2lmIEhBVkVfU1lTX1RZUEVTX0gKKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjIGVuZGlmCitdKQorQUNfQ0hFQ0tfSEVBREVSUyhbbmV0aW5ldC9pbi5oXSwgW10sIFtdLAorWyNpZiBIQVZFX1NZU19UWVBFU19ICisjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorIyBlbmRpZgorXSkKK0FDX0NIRUNLX0hFQURFUlMoW2FycGEvaW5ldC5oXSwgW10sIFtdLAorWyNpZiBIQVZFX1NZU19UWVBFU19ICisjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorIyBlbmRpZgorI2lmIEhBVkVfQVJQQV9JTkVUX0gKKyMgaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisjIGVuZGlmCitdKQorQUNfQ0hFQ0tfSEVBREVSUyhbbmV0ZGIuaF0pCitBQ19DSEVDS19IRUFERVJTKFtzeXMvdGltZS5oXSkKK0FDX0NIRUNLX0hFQURFUlMoW3N5cy9zZWxlY3QuaF0pCitBQ19DSEVDS19IRUFERVJTKFtwb2xsLmhdKQorQUNfQ0hFQ0tfSEVBREVSUyhbc3lzL21tYW4uaF0pCitBQ19DSEVDS19IRUFERVJTKFtzeXMvdGltZWIuaF0pCitBQ19DSEVDS19IRUFERVJTKFtzaWduYWwuaF0pCitBQ19DSEVDS19IRUFERVJTKFthcnBhL25hbWVzZXIuaF0sIFtdLCBbXSwKK1sjaWYgSEFWRV9TWVNfVFlQRVNfSAorIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyMgZW5kaWYKK10pCitBQ19DSEVDS19IRUFERVJTKFtyZXNvbHYuaF0sIFtdLCBbXSwKK1sjaWYgSEFWRV9TWVNfVFlQRVNfSAorIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyMgZW5kaWYKKyNpZiBIQVZFX05FVElORVRfSU5fSAorIyBpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjIGVuZGlmCisjaWYgSEFWRV9BUlBBX05BTUVTRVJfSAorIyBpbmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKyMgZW5kaWYKK10pCitBQ19DSEVDS19IRUFERVJTKFtkbC5oXSkKK0FDX0NIRUNLX0hFQURFUlMoW2RsZmNuLmhdKQorCisKK2VjaG8gQ2hlY2tpbmcgbGlicmFyaWVzCisKK2RubCBDaGVja3MgZm9yIGxpYnJhcnkgZnVuY3Rpb25zLgorQUNfRlVOQ19TVFJGVElNRQorQUNfQ0hFQ0tfRlVOQ1Moc3RyZHVwIHN0cm5kdXAgc3RyZXJyb3IpCitBQ19DSEVDS19GVU5DUyhmaW5pdGUgaXNuYW5kIGZwX2NsYXNzIGNsYXNzIGZwY2xhc3MpCitBQ19DSEVDS19GVU5DUyhzdHJmdGltZSBsb2NhbHRpbWUgZ2V0dGltZW9mZGF5IGZ0aW1lKQorQUNfQ0hFQ0tfRlVOQ1Moc3RhdCBfc3RhdCBzaWduYWwpCisKK2RubCBDaGVja2luZyB0aGUgc3RhbmRhcmQgc3RyaW5nIGZ1bmN0aW9ucyBhdmFpbGFiaWxpdHkKK0FDX0NIRUNLX0ZVTkNTKHByaW50ZiBzcHJpbnRmIGZwcmludGYgc25wcmludGYgdmZwcmludGYgdnNwcmludGYgdnNucHJpbnRmIHNzY2FuZiwsCisgICAgICAgICAgICAgICBORUVEX1RSSU89MSkKKworZG5sIENoZWNraW5nIGZvciB2YV9jb3B5IGF2YWlsYWJpbGl0eQorQUNfTVNHX0NIRUNLSU5HKFtmb3IgdmFfY29weV0pCitBQ19UUllfTElOSyhbI2luY2x1ZGUgPHN0ZGFyZy5oPgordmFfbGlzdCBhcDEsYXAyO10sIFt2YV9jb3B5KGFwMSxhcDIpO10sCitoYXZlX3ZhX2NvcHk9eWVzLAoraGF2ZV92YV9jb3B5PW5vKQorQUNfTVNHX1JFU1VMVCgkaGF2ZV92YV9jb3B5KQoraWYgdGVzdCB4IiRoYXZlX3ZhX2NvcHkiID0geCJ5ZXMiOyB0aGVuCisgICAgQUNfREVGSU5FKEhBVkVfVkFfQ09QWSwxLFtXaGV0aGVyIHZhX2NvcHkoKSBpcyBhdmFpbGFibGVdKQorZWxzZQorICAgIEFDX01TR19DSEVDS0lORyhbZm9yIF9fdmFfY29weV0pCisgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzdGRhcmcuaD4KKyAgICB2YV9saXN0IGFwMSxhcDI7XSwgW19fdmFfY29weShhcDEsYXAyKTtdLAorICAgIGhhdmVfX192YV9jb3B5PXllcywKKyAgICBoYXZlX19fdmFfY29weT1ubykKKyAgICBBQ19NU0dfUkVTVUxUKCRoYXZlX19fdmFfY29weSkKKyAgICBpZiB0ZXN0IHgiJGhhdmVfX192YV9jb3B5IiA9IHgieWVzIjsgdGhlbgorICAgICAgICBBQ19ERUZJTkUoSEFWRV9fX1ZBX0NPUFksMSxbV2hldGhlciBfX3ZhX2NvcHkoKSBpcyBhdmFpbGFibGVdKQorICAgIGZpCitmaQorCitkbmwgQ2hlY2tzIGZvciBpbmV0IGxpYnJhcmllczoKK0FDX1NFQVJDSF9MSUJTKGdldGhvc3RlbnQsIFtuc2xdKQorQUNfU0VBUkNIX0xJQlMoc2V0c29ja29wdCwgW3NvY2tldCBuZXQgbmV0d29ya10pCitBQ19TRUFSQ0hfTElCUyhjb25uZWN0LCBbaW5ldF0pCisKK2RubCBEZXRlcm1pbmUgd2hhdCBzb2NrZXQgbGVuZ3RoIChzb2NrbGVuX3QpIGRhdGEgdHlwZSBpcworQUNfTVNHX0NIRUNLSU5HKFtmb3IgdHlwZSBvZiBzb2NrZXQgbGVuZ3RoIChzb2NrbGVuX3QpXSkKK0FDX1RSWV9DT01QSUxFMihbCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPl0sWworKHZvaWQpZ2V0c29ja29wdCAoMSwgMSwgMSwgTlVMTCwgKHNvY2tsZW5fdCAqKU5VTEwpXSxbCisgIEFDX01TR19SRVNVTFQoc29ja2xlbl90ICopCisgIFhNTF9TT0NLTEVOX1Q9c29ja2xlbl90XSxbCisgIEFDX1RSWV9DT01QSUxFMihbCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPl0sWworKHZvaWQpZ2V0c29ja29wdCAoMSwgMSwgMSwgTlVMTCwgKHNpemVfdCAqKU5VTEwpXSxbCisgICAgQUNfTVNHX1JFU1VMVChzaXplX3QgKikKKyAgICBYTUxfU09DS0xFTl9UPXNpemVfdF0sWworICAgIEFDX1RSWV9DT01QSUxFMihbCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPl0sWworKHZvaWQpZ2V0c29ja29wdCAoMSwgMSwgMSwgTlVMTCwgKGludCAqKU5VTEwpXSxbCisgICAgICBBQ19NU0dfUkVTVUxUKGludCAqKQorICAgICAgWE1MX1NPQ0tMRU5fVD1pbnRdLFsKKyAgICAgIEFDX01TR19XQVJOKGNvdWxkIG5vdCBkZXRlcm1pbmUpCisgICAgICBYTUxfU09DS0xFTl9UPSJpbnQiXSldKV0pCitBQ19ERUZJTkVfVU5RVU9URUQoWE1MX1NPQ0tMRU5fVCwgJFhNTF9TT0NLTEVOX1QsIFtEZXRlcm1pbmUgd2hhdCBzb2NrZXQgbGVuZ3RoIChzb2NrbGVuX3QpIGRhdGEgdHlwZSBpc10pCisKK2RubCAqKioqKioqKioqKioqKioqKioqKioqKkNoZWNraW5nIGZvciBhdmFpbGFiaWxpdHkgb2YgSVB2NioqKioqKioqKioqKioqKioqKioKKworQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBJUHY2XSkKK0FDX0FSR19FTkFCTEUoaXB2NiwgWyAgLS1lbmFibGUtaXB2NltbPXllcy9ub11dICBlbmFibGVzIGNvbXBpbGF0aW9uIG9mIElQdjYgY29kZSBbW2RlZmF1bHQ9eWVzXV1dLCwgZW5hYmxlX2lwdjY9eWVzKQoraWYgdGVzdCAiJHdpdGhfbWluaW11bSIgPSAieWVzIgordGhlbgorICAgIGVuYWJsZV9pcHY2PW5vCitmaQoraWYgdGVzdCAkZW5hYmxlX2lwdjYgPSB5ZXM7IHRoZW4KKyAgaGF2ZV9pcHY2PW5vCisgIEFDX1RSWV9DT01QSUxFKFsKKyAgICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgICAgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyAgICBdLCBbCisgICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2Ugc3M7CisgICAgc29ja2V0KEFGX0lORVQ2LCBTT0NLX1NUUkVBTSwgMCkKKyAgICBdLAorICAgIGhhdmVfaXB2Nj15ZXMsCisgICAgaGF2ZV9pcHY2PW5vCisgICkKKyAgQUNfTVNHX1JFU1VMVCgkaGF2ZV9pcHY2KQorCisgIGlmIHRlc3QgJGhhdmVfaXB2NiA9IHllczsgdGhlbgorICAgIEFDX0RFRklORShbU1VQUE9SVF9JUDZdLCBbXSwgW1N1cHBvcnQgZm9yIElQdjZdKQorICAgIGhhdmVfYnJva2VuX3NzX2ZhbWlseT1ubworCisgICAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgIGRubCBvbiBzb21lIHBsYXRmb3JtcyAobGlrZSBBSVggNUwpLCB0aGUgc3RydWN0dXJlIHNvY2thZGRyIGRvZXNuJ3QgaGF2ZQorICAgIGRubCBhIHNzX2ZhbWlseSBtZW1iZXIsIGJ1dCByYXRoZXIgX19zc19mYW1pbHkuIExldCdzIGRldGVjdCB0aGF0CisgICAgZG5sIGFuZCBkZWZpbmUgdGhlIEhBVkVfQlJPS0VOX1NTX0ZBTUlMWSB3aGVuIHdlIGFyZSBvbiBvbmUgb2YgdGhlc2UKKyAgICBkbmwgcGxhdGZvcm1zLiAgSG93ZXZlciwgd2Ugc2hvdWxkIG9ubHkgZG8gdGhpcyBpZiBzc19mYW1pbHkgaXMgbm90CisgICAgZG5sIHByZXNlbnQuCisgICAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgQUNfTVNHX0NIRUNLSU5HKFtzdHJ1Y3Qgc29ja2FkZHI6OnNzX2ZhbWlseV0pCisgICAgQUNfVFJZX0NPTVBJTEUoWworICAgICAgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorICAgICAgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyAgICAgIF0sIFsKKyAgICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIHNzIDsKKyAgICAgIHNzLnNzX2ZhbWlseSA9IDAgOworICAgICAgXSwKKyAgICAgIGhhdmVfc3NfZmFtaWx5PXllcywKKyAgICAgIGhhdmVfc3NfZmFtaWx5PW5vCisgICAgKQorICAgIEFDX01TR19SRVNVTFQoJGhhdmVfc3NfZmFtaWx5KQorICAgIGlmIHRlc3QgeCRoYXZlX3NzX2ZhbWlseSA9IHhubyA7IHRoZW4KKyAgICAgIEFDX01TR19DSEVDS0lORyhbYnJva2VuIHN0cnVjdCBzb2NrYWRkcjo6c3NfZmFtaWx5XSkKKyAgICAgIEFDX1RSWV9DT01QSUxFKFsKKyAgICAgICAgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorICAgICAgICAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorICAgICAgICBdLCBbCisgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIHNzIDsKKyAgICAgICAgc3MuX19zc19mYW1pbHkgPSAwIDsKKyAgICAgICAgXSwKKyAgICAgICAgaGF2ZV9icm9rZW5fc3NfZmFtaWx5PXllcywKKyAgICAgICAgaGF2ZV9icm9rZW5fc3NfZmFtaWx5PW5vCisgICAgICApCisgICAgICBBQ19NU0dfUkVTVUxUKCRoYXZlX2Jyb2tlbl9zc19mYW1pbHkpCisgICAgICBpZiB0ZXN0IHgkaGF2ZV9icm9rZW5fc3NfZmFtaWx5ID0geHllcyA7IHRoZW4KKyAgICAgICAgQUNfREVGSU5FKEhBVkVfQlJPS0VOX1NTX0ZBTUlMWSwgW10sCisJICBbV2hldGhlciBzdHJ1Y3Qgc29ja2FkZHI6Ol9fc3NfZmFtaWx5IGV4aXN0c10pIAorICAgICAgICBBQ19ERUZJTkUoc3NfZmFtaWx5LCBfX3NzX2ZhbWlseSwKKwkgIFtzc19mYW1pbHkgaXMgbm90IGRlZmluZWQgaGVyZSwgdXNlIF9fc3NfZmFtaWx5IGluc3RlYWRdKQorICAgICAgZWxzZQorICAgICAgICBBQ19NU0dfV0FSTihzc19mYW1pbHkgYW5kIF9fc3NfZmFtaWx5IG5vdCBmb3VuZCkKKyAgICAgIGZpCisgICAgZmkKKworICAgIGhhdmVfZ2V0YWRkcmluZm89bm8KKyAgICBBQ19DSEVDS19GVU5DKGdldGFkZHJpbmZvLCBoYXZlX2dldGFkZHJpbmZvPXllcykKKyAgICBpZiB0ZXN0ICRoYXZlX2dldGFkZHJpbmZvICE9IHllczsgdGhlbgorICAgICAgZm9yIGxpYiBpbiBic2Qgc29ja2V0IGluZXQ7IGRvCisgICAgICAgIEFDX0NIRUNLX0xJQigkbGliLCBnZXRhZGRyaW5mbywgW0xJQlM9IiRMSUJTIC1sJGxpYiI7aGF2ZV9nZXRhZGRyaW5mbz15ZXM7YnJlYWtdKQorICAgICAgZG9uZQorICAgIGZpCisKKyAgICBpZiB0ZXN0ICRoYXZlX2dldGFkZHJpbmZvID0geWVzOyB0aGVuCisgICAgICBBQ19ERUZJTkUoW0hBVkVfR0VUQUREUklORk9dLCBbXSwgW0RlZmluZSBpZiBnZXRhZGRyaW5mbyBpcyB0aGVyZV0pCisgICAgZmkKKyAgZmkKK2ZpIAorCitkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqRW5kIElQdjYgY2hlY2tzKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK2RubCBDaGVja3MgZm9yIGlzbmFuIGluIGxpYm0gaWYgbm90IGluIGxpYmMKK0FDX0NIRUNLX0ZVTkMoaXNuYW4sIEFDX0RFRklORShbSEFWRV9JU05BTl0sW10sIFtEZWZpbmUgaWYgaXNuYW4gaXMgdGhlcmVdKSAsIEFDX0NIRUNLX0xJQihtLCBpc25hbiwKKyAgW0FDX0RFRklORShbSEFWRV9JU05BTl0sW10sIFtEZWZpbmUgaWYgaXNuYW4gaXMgdGhlcmVdKV0pKQorCitBQ19DSEVDS19GVU5DKGlzaW5mLCBBQ19ERUZJTkUoW0hBVkVfSVNJTkZdLCBbXSwgW0RlZmluZSBpZiBpc2luZiBpcyB0aGVyZV0pICwgQUNfQ0hFQ0tfTElCKG0sIGlzaW5mLAorICBbQUNfREVGSU5FKFtIQVZFX0lTSU5GXSwgW10sIFtEZWZpbmUgaWYgaXNpbmYgaXMgdGhlcmVdKV0pKQorCitYTUxfTElCRElSPSctTCR7bGliZGlyfScKK1hNTF9JTkNMVURFRElSPSctSSR7aW5jbHVkZWRpcn0vbGlieG1sMicKKworZG5sCitkbmwgRXh0cmEgZmxhZ3MKK2RubAorWE1MX0NGTEFHUz0iIgorUkRMX0xJQlM9IiIKKworZG5sCitkbmwgV29ya2Fyb3VuZCBmb3IgbmF0aXZlIGNvbXBpbGVycworZG5sICBIUCAgOiBodHRwOi8vYnVncy5nbm9tZS5vcmcvZGIvMzEvMzE2My5odG1sCitkbmwgIERFQyA6IEVuYWJsZSBOYU4vSW5mCitkbmwKK2lmIHRlc3QgIiR7R0NDfSIgIT0gInllcyIgOyB0aGVuCisgICAgY2FzZSAiJHtob3N0fSIgaW4KKyAgICAgICAgICBocHBhKi0qLWhwdXgqICkKKwkgICAgICAgQ0ZMQUdTPSIke0NGTEFHU30gLVdwLC1IMzAwMDAiCisJICAgICAgIDs7CisgICAgICAgICAgKi1kZWMtb3NmKiApCisgICAgICAgICAgICAgICBDRkxBR1M9IiR7Q0ZMQUdTfSAtaWVlZSIKKyAgICAgICAgICAgICAgIDs7CisJICBhbHBoYSotKi1saW51eCogKQorCSAgICAgICBDRkxBR1M9IiR7Q0ZMQUdTfSAtaWVlZSIKKwkgICAgICAgOzsKKyAgICBlc2FjCitlbHNlCisgICAgaWYgdGVzdCAiJHdpdGhfZmV4Y2VwdGlvbnMiID0gInllcyIKKyAgICB0aGVuCisgICAgICAgICMKKwkjIE5vdCBhY3RpdmF0ZWQgYnkgZGVmYXVsdCBiZWNhdXNlIHRoaXMgaW5mbGF0ZXMgdGhlIGNvZGUgc2l6ZQorCSMgVXNlZCB0byBhbGxvdyBwcm9wYWdhdGlvbiBvZiBDKysgZXhjZXB0aW9ucyB0aHJvdWdoIHRoZSBsaWJyYXJ5CisJIworCUNGTEFHUz0iJHtDRkxBR1N9IC1mZXhjZXB0aW9ucyIKKyAgICBmaQorICAgICAgIAorICAgIENGTEFHUz0iJHtDRkxBR1N9IC1wZWRhbnRpYyAtVyAtV2Zvcm1hdCAtV3VudXNlZCAtV2ltcGxpY2l0IC1XcmV0dXJuLXR5cGUgLVdzd2l0Y2ggLVdjb21tZW50IC1XdHJpZ3JhcGhzIC1XZm9ybWF0IC1XY2hhci1zdWJzY3JpcHRzIC1XdW5pbml0aWFsaXplZCAtV3BhcmVudGhlc2VzIC1Xc2hhZG93IC1XcG9pbnRlci1hcml0aCAtV2Nhc3QtYWxpZ24gLVd3cml0ZS1zdHJpbmdzIC1XYWdncmVnYXRlLXJldHVybiAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbmVzdGVkLWV4dGVybnMgLVdpbmxpbmUgLVdyZWR1bmRhbnQtZGVjbHMiIAorICAgIGNhc2UgIiR7aG9zdH0iIGluCisgICAgICAgICAgYWxwaGEqLSotbGludXgqICkKKwkgICAgICAgQ0ZMQUdTPSIke0NGTEFHU30gLW1pZWVlIgorCSAgICAgICA7OworCSAgYWxwaGEqLSotb3NmKiApCisJICAgICAgIENGTEFHUz0iJHtDRkxBR1N9IC1taWVlZSIKKwkgICAgICAgOzsKKyAgICBlc2FjCitmaQorY2FzZSAke2hvc3R9IGluCisgICAgKi0qLXNvbGFyaXMqKQorICAgICAgICBYTUxfTElCRElSPSIke1hNTF9MSUJESVJ9IC1SJHtsaWJkaXJ9IgorICAgICAgICA7OworICAgIGhwcGEqLWhwLW1wZWl4KQorICAgICAgICBORUVEX1RSSU89MQorCTs7CisgICAgKi0qLW1pbmd3KiB8ICotKi1jeWd3aW4qIHwgKi0qLW1zdmMqICkKKyAgICAgICAgIyBJZiB0aGUgaG9zdCBpcyBXaW5kb3dzLCBhbmQgc2hhcmVkIGxpYnJhcmllcyBhcmUgZGlzYWJsZWQsIHdlCisgICAgICAgICMgbmVlZCB0byBhZGQgLURMSUJYTUxfU1RBVElDIHRvIENGTEFHUyBpbiBvcmRlciBmb3IgbGlua2luZyB0bworICAgICAgICAjIHdvcmsgcHJvcGVybHkgKHdpdGhvdXQgaXQsIHhtbGV4cG9ydHMuaCB3b3VsZCBmb3JjZSB0aGUgdXNlIG9mCisgICAgICAgICMgRExMIGltcG9ydHMsIHdoaWNoIG9idmlvdXNseSBhcmVuJ3QgcHJlc2VudCBpbiBhIHN0YXRpYworICAgICAgICAjIGxpYnJhcnkpLgorICAgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9zaGFyZWQiID0gInhubyI7IHRoZW4KKyAgICAgICAgICAgIFhNTF9DRkxBR1M9IiRYTUxfQ0ZMQUdTIC1ETElCWE1MX1NUQVRJQyIKKyAgICAgICAgICAgIENGTEFHUz0iJENGTEFHUyAtRExJQlhNTF9TVEFUSUMiCisgICAgICAgIGZpCisgICAgICAgIDs7Citlc2FjCisKKworZG5sCitkbmwgY2hlY2sgZm9yIHB5dGhvbgorZG5sCisKK1BZVEhPTl9WRVJTSU9OPQorUFlUSE9OX0lOQ0xVREVTPQorUFlUSE9OX1NJVEVfUEFDS0FHRVM9CitQWVRIT05fVEVTVFM9CitweXRob25kaXI9CitpZiB0ZXN0ICIkd2l0aF9weXRob24iICE9ICJubyIgOyB0aGVuCisgICAgaWYgdGVzdCAteCAiJHdpdGhfcHl0aG9uL2Jpbi9weXRob24iCisgICAgdGhlbgorICAgICAgICBlY2hvIEZvdW5kIHB5dGhvbiBpbiAkd2l0aF9weXRob24vYmluL3B5dGhvbgorICAgICAgICBQWVRIT049IiR3aXRoX3B5dGhvbi9iaW4vcHl0aG9uIgorICAgIGVsc2UKKwlpZiB0ZXN0IC14ICIkd2l0aF9weXRob24iCisJdGhlbgorCSAgICBlY2hvIEZvdW5kIHB5dGhvbiBpbiAkd2l0aF9weXRob24KKwkgICAgUFlUSE9OPSIkd2l0aF9weXRob24iCisJZWxzZQorCSAgICBpZiB0ZXN0IC14ICIkUFlUSE9OIgorCSAgICB0aGVuCisJICAgICAgICBlY2hvIEZvdW5kIHB5dGhvbiBpbiBlbnZpcm9ubWVudCBQWVRIT049JFBZVEhPTgorCQl3aXRoX3B5dGhvbj1gJFBZVEhPTiAtYyAiaW1wb3J0IHN5czsgcHJpbnQgc3lzLmV4ZWNfcHJlZml4ImAKKwkgICAgZWxzZQorCQlBQ19QQVRIX1BST0coUFlUSE9OLCBweXRob24gcHl0aG9uMi42IHB5dGhvbjIuNSBweXRob24yLjQgcHl0aG9uMi4zIHB5dGhvbjIuMiBweXRob24yLjEgcHl0aG9uMi4wIHB5dGhvbjEuNiBweXRob24xLjUpCisJICAgIGZpCisJZmkKKyAgICBmaQorICAgIGlmIHRlc3QgIiRQWVRIT04iICE9ICIiCisgICAgdGhlbgorICAgICAgICBQWVRIT05fVkVSU0lPTj1gJFBZVEhPTiAtYyAiaW1wb3J0IHN5czsgcHJpbnQgc3lzLnZlcnNpb25bWzA6M11dImAKKwllY2hvIEZvdW5kIFB5dGhvbiB2ZXJzaW9uICRQWVRIT05fVkVSU0lPTgorICAgIGZpCisgICAgaWYgdGVzdCAiJFBZVEhPTl9WRVJTSU9OIiAhPSAiIgorICAgIHRoZW4KKwlpZiB0ZXN0IC1yICR3aXRoX3B5dGhvbi9pbmNsdWRlL3B5dGhvbiRQWVRIT05fVkVSU0lPTi9QeXRob24uaCAtYSBcCisJICAgLWQgJHdpdGhfcHl0aG9uL2xpYi9weXRob24kUFlUSE9OX1ZFUlNJT04vc2l0ZS1wYWNrYWdlcworCXRoZW4KKwkgICAgUFlUSE9OX0lOQ0xVREVTPSR3aXRoX3B5dGhvbi9pbmNsdWRlL3B5dGhvbiRQWVRIT05fVkVSU0lPTgorCSAgICBQWVRIT05fU0lURV9QQUNLQUdFUz0kbGliZGlyL3B5dGhvbiRQWVRIT05fVkVSU0lPTi9zaXRlLXBhY2thZ2VzCisJZWxzZQorCSAgICBpZiB0ZXN0IC1yICRwcmVmaXgvaW5jbHVkZS9weXRob24kUFlUSE9OX1ZFUlNJT04vUHl0aG9uLmgKKwkgICAgdGhlbgorCSAgICAgICAgUFlUSE9OX0lOQ0xVREVTPSRwcmVmaXgvaW5jbHVkZS9weXRob24kUFlUSE9OX1ZFUlNJT04KKwkgICAgICAgIFBZVEhPTl9TSVRFX1BBQ0tBR0VTPSRsaWJkaXIvcHl0aG9uJFBZVEhPTl9WRVJTSU9OL3NpdGUtcGFja2FnZXMKKwkgICAgZWxzZQorCQlpZiB0ZXN0IC1yIC91c3IvaW5jbHVkZS9weXRob24kUFlUSE9OX1ZFUlNJT04vUHl0aG9uLmgKKwkJdGhlbgorCQkgICAgUFlUSE9OX0lOQ0xVREVTPS91c3IvaW5jbHVkZS9weXRob24kUFlUSE9OX1ZFUlNJT04KKwkgICAgICAgICAgICBQWVRIT05fU0lURV9QQUNLQUdFUz0kbGliZGlyL3B5dGhvbiRQWVRIT05fVkVSU0lPTi9zaXRlLXBhY2thZ2VzCisJCWVsc2UKKwkJICAgIGVjaG8gY291bGQgbm90IGZpbmQgcHl0aG9uJFBZVEhPTl9WRVJTSU9OL1B5dGhvbi5oCisJCWZpCisJICAgIGZpCisJICAgIGlmIHRlc3QgISAtZCAiJFBZVEhPTl9TSVRFX1BBQ0tBR0VTIgorCSAgICB0aGVuCisJCSAgICBQWVRIT05fU0lURV9QQUNLQUdFUz1gJFBZVEhPTiAtYyAiZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZzsgcHJpbnQgc3lzY29uZmlnLmdldF9weXRob25fbGliKCkiYAorCSAgICBmaQorCWZpCisJUFlUSE9OX0xJQlM9YHB5dGhvbiRQWVRIT05fVkVSU0lPTi1jb25maWcgLS1sZGZsYWdzYAorICAgIGZpCisgICAgaWYgdGVzdCAiJHdpdGhfcHl0aG9uIiAhPSAiIgorICAgIHRoZW4KKyAgICAgICAgcHl0aG9uZGlyPSckKFBZVEhPTl9TSVRFX1BBQ0tBR0VTKScKKyAgICBlbHNlCisgICAgICAgIHB5dGhvbmRpcj0nJChsaWJkaXIpL3B5dGhvbiQoUFlUSE9OX1ZFUlNJT04pL3NpdGUtcGFja2FnZXMnCisgICAgZmkKK2Vsc2UKKyAgICBQWVRIT049CitmaQorQU1fQ09ORElUSU9OQUwoV0lUSF9QWVRIT04sIHRlc3QgIiRQWVRIT05fSU5DTFVERVMiICE9ICIiKQoraWYgdGVzdCAiJFBZVEhPTl9JTkNMVURFUyIgIT0gIiIKK3RoZW4KKyAgICBQWVRIT05fU1VCRElSPXB5dGhvbgorZWxzZQorICAgIFBZVEhPTl9TVUJESVI9CitmaQorQUNfU1VCU1QocHl0aG9uZGlyKQorQUNfU1VCU1QoUFlUSE9OX1NVQkRJUikKK0FDX1NVQlNUKFBZVEhPTl9MSUJTKQorCitkbmwgY2hlY2sgZm9yIGRzbyBzdXBwb3J0CitXSVRIX01PRFVMRVM9MAorVEVTVF9NT0RVTEVTPQorCitpZiB0ZXN0ICIkd2l0aF9tb2R1bGVzIiAhPSAibm8iIDsgdGhlbgorIGNhc2UgIiRob3N0IiBpbgorICAqLSotY3lnd2luKikKKyAgTU9EVUxFX0VYVEVOU0lPTj0iLmRsbCIKKyAgQUNfQ0hFQ0tfTElCKGN5Z3dpbiwgZGxvcGVuLCBbCisgICAgV0lUSF9NT0RVTEVTPTEKKyAgICBNT0RVTEVfUExBVEZPUk1fTElCUz0KKyAgICBBQ19ERUZJTkUoW0hBVkVfRExPUEVOXSwgW10sIFtIYXZlIGRsb3BlbiBiYXNlZCBkc29dKQorICBdKQorICA7OworICAqLSotbWluZ3cqKQorICBNT0RVTEVfRVhURU5TSU9OPSIuZGxsIgorICBXSVRIX01PRFVMRVM9MQorICA7OworICAqKQorICBBQ19DSEVDS19GVU5DKHNobF9sb2FkLCBsaWJ4bWxfaGF2ZV9zaGxfbG9hZD15ZXMsIFsKKyAgICBBQ19DSEVDS19MSUIoZGxkLCBzaGxfbG9hZCwgWworICAgICAgTU9EVUxFX1BMQVRGT1JNX0xJQlM9Ii1sZGxkIgorICAgICAgbGlieG1sX2hhdmVfc2hsX2xvYWQ9eWVzXSwgWworICAgICAgQUNfQ0hFQ0tfRlVOQyhkbG9wZW4sIGxpYnhtbF9oYXZlX2Rsb3Blbj15ZXMsIFsKKyAgICAgICAgQUNfQ0hFQ0tfTElCKGRsLCBkbG9wZW4sIFsKKyAgICAgICAgICBNT0RVTEVfUExBVEZPUk1fTElCUz0iLWxkbCIKKyAgICAgICAgICBsaWJ4bWxfaGF2ZV9kbG9wZW49eWVzXSldKV0pXSkKKworICBpZiB0ZXN0ICIke2xpYnhtbF9oYXZlX3NobF9sb2FkfSIgPSAieWVzIjsgdGhlbgorICAgIE1PRFVMRV9FWFRFTlNJT049Ii5zbCIKKyAgICBXSVRIX01PRFVMRVM9MQorICAgIEFDX0RFRklORShbSEFWRV9TSExMT0FEXSwgW10sIFtIYXZlIHNobF9sb2FkIGJhc2VkIGRzb10pCisgIGZpCisgCisgIGlmIHRlc3QgIiR7bGlieG1sX2hhdmVfZGxvcGVufSIgPSAieWVzIjsgdGhlbgorICAgIGNhc2UgIiR7aG9zdH0iIGluCisgICAgICAqLSotaHB1eCogKQorCU1PRFVMRV9FWFRFTlNJT049Ii5zbCIKKwk7OworICAgICAgKiApCisJTU9EVUxFX0VYVEVOU0lPTj0iLnNvIgorCTs7CisgICAgZXNhYworCisgICAgV0lUSF9NT0RVTEVTPTEKKyAgICBBQ19ERUZJTkUoW0hBVkVfRExPUEVOXSwgW10sIFtIYXZlIGRsb3BlbiBiYXNlZCBkc29dKQorICBmaQorIDs7CisgZXNhYworZmkKKworaWYgdGVzdCAiJHtXSVRIX01PRFVMRVN9IiA9ICIxIjsgdGhlbgorICBURVNUX01PRFVMRVM9Ik1vZHVsZVRlc3RzIgorZmkgIAorCitBQ19TVUJTVChXSVRIX01PRFVMRVMpCitBQ19TVUJTVChNT0RVTEVfUExBVEZPUk1fTElCUykKK0FDX1NVQlNUKE1PRFVMRV9FWFRFTlNJT04pCitBQ19TVUJTVChURVNUX01PRFVMRVMpCisKK2RubAorZG5sIFRlc3RlciBtYWtlcyB1c2Ugb2YgcmVhZGxpbmUgaWYgcHJlc2VudAorZG5sCisKK2RubAorZG5sIHNwZWNpZmljIHRlc3RzIHRvIHNldHVwIERWIGFuZCBCaWxsJ3MgZGV2ZWwgZW52aXJvbm1lbnRzIHdpdGggZGVidWcgZXRjIC4uLgorZG5sICgtV3VucmVhY2hhYmxlLWNvZGUpCitkbmwKK2lmIFtbICIke0xPR05BTUV9IiA9ICJ2ZWlsbGFyZCIgLWEgImBwd2RgIiA9ICIvdS92ZWlsbGFyZC9YTUwiIF1dIHx8IFwKKyAgIFtbICIke0xPR05BTUV9IiA9ICJ2ZWlsbGFyZCIgLWEgImBwd2RgIiA9ICIvaG9tZS92ZWlsbGFyZC9saWJ4bWwyIiBdXSB8fCBcCisgICBbWyAiJHtMT0dOQU1FfSIgPSAiYmlsbCIgLWEgImBwd2RgIiA9ICIvaG9tZS9iaWxsL2dub21lc3ZuL2xpYnhtbDIiIF1dCisgICB0aGVuCisgICAgaWYgdGVzdCAiJHdpdGhfbWluaW11bSIgIT0gInllcyIKKyAgICB0aGVuCisJaWYgdGVzdCAiJHt3aXRoX21lbV9kZWJ1Z30iID0gIiIgOyB0aGVuCisJICAgIGVjaG8gQWN0aXZhdGluZyBtZW1vcnkgZGVidWdnaW5nCisJICAgIHdpdGhfbWVtX2RlYnVnPSJ5ZXMiCisJICAgIHdpdGhfcnVuX2RlYnVnPSJ5ZXMiCisJZmkKKwlpZiB0ZXN0ICIke3dpdGhfZG9jYm9va30iID0gIiIgOyB0aGVuCisJICAgIHdpdGhfZG9jYm9vaz0ieWVzIgorCWZpCisgICAgZmkKKyAgICBpZiB0ZXN0ICIke0dDQ30iID0gInllcyIgOyB0aGVuCisgICAgQ0ZMQUdTPSItZyAtTyAtcGVkYW50aWMgLVcgLVdmb3JtYXQgLVd1bnVzZWQgLVdpbXBsaWNpdCAtV3JldHVybi10eXBlIC1Xc3dpdGNoIC1XY29tbWVudCAtV3RyaWdyYXBocyAtV2Zvcm1hdCAtV2NoYXItc3Vic2NyaXB0cyAtV3VuaW5pdGlhbGl6ZWQgLVdwYXJlbnRoZXNlcyAtV3NoYWRvdyAtV3BvaW50ZXItYXJpdGggLVdjYXN0LWFsaWduIC1Xd3JpdGUtc3RyaW5ncyAtV2FnZ3JlZ2F0ZS1yZXR1cm4gLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcyAtV25lc3RlZC1leHRlcm5zIC1XaW5saW5lIC1XcmVkdW5kYW50LWRlY2xzIC1XYWxsIgorICAgIGZpCisgICAgU1RBVElDX0JJTkFSSUVTPSItc3RhdGljIgorZG5sIC1XY2FzdC1xdWFsIC1hbnNpCitlbHNlCisgICAgU1RBVElDX0JJTkFSSUVTPQorZmkKK0FDX1NVQlNUKFNUQVRJQ19CSU5BUklFUykKKworZG5sCitkbmwgQ2hlY2sgZm9yIHRyaW8gc3RyaW5nIGZ1bmN0aW9ucworZG5sCisKK2lmIHRlc3QgIiR7TkVFRF9UUklPfSIgPSAiMSIgOyB0aGVuCisgICAgZWNobyBBZGRpbmcgdHJpbyBsaWJyYXJ5IGZvciBzdHJpbmcgZnVuY3Rpb25zCisgICAgV0lUSF9UUklPPTEKK2Vsc2UgICAgCisgICAgV0lUSF9UUklPPTAKK2ZpCitBTV9DT05ESVRJT05BTChXSVRIX1RSSU9fU09VUkNFUywgdGVzdCAiJHtORUVEX1RSSU99IiA9ICIxIikKK0FDX1NVQlNUKFdJVEhfVFJJTykKKworZG5sCitkbmwgQWxsb3cgdG8gZW5hYmxlL2Rpc2FibGUgdmFyaW91cyBwaWVjZXMKK2RubAorZWNobyBDaGVja2luZyBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cworCitkbmwKK2RubCBUaHJlYWQtcmVsYXRlZCBzdHVmZgorZG5sCitUSFJFQURfTElCUz0iIgorQkFTRV9USFJFQURfTElCUz0iIgorV0lUSF9USFJFQURTPTAKK1RIUkVBRF9DRkxBR1M9IiIKK1RFU1RfVEhSRUFEUz0iIgorVEhSRUFEU19XMzI9IiIKKworaWYgdGVzdCAiJHdpdGhfdGhyZWFkcyIgPSAibm8iIDsgdGhlbgorICAgIGVjaG8gRGlzYWJsaW5nIG11bHRpdGhyZWFkZWQgc3VwcG9ydAorZWxzZQorICAgIGVjaG8gRW5hYmxpbmcgbXVsdGl0aHJlYWRlZCBzdXBwb3J0CisgICAgZG5sIFVzZSBwdGhyZWFkIGJ5IGRlZmF1bHQKKyAgICBpZiB0ZXN0ICIkd2l0aF90aHJlYWRzIiA9ICJwdGhyZWFkIiB8fCB0ZXN0ICIkd2l0aF90aHJlYWRzIiA9ICIiIHx8IHRlc3QgIiR3aXRoX3RocmVhZHMiID0gInllcyIgOyB0aGVuCisgICAgICAgIEFDX0NIRUNLX0hFQURFUihwdGhyZWFkLmgsCisJICAgIEFDX0NIRUNLX0xJQihwdGhyZWFkLCBwdGhyZWFkX2pvaW4sWworCSAgICAgICBUSFJFQURfTElCUz0iLWxwdGhyZWFkIgorCSAgICAgICBBQ19ERUZJTkUoW0hBVkVfTElCUFRIUkVBRF0sIFtdLCBbRGVmaW5lIGlmIHB0aHJlYWQgbGlicmFyeSBpcyB0aGVyZSAoLWxwdGhyZWFkKV0pCisJICAgICAgIEFDX0RFRklORShbSEFWRV9QVEhSRUFEX0hdLCBbXSwgW0RlZmluZSBpZiA8cHRocmVhZC5oPiBpcyB0aGVyZV0pCisJICAgICAgIFdJVEhfVEhSRUFEUz0iMSJdKSkKKyAgICBmaQorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgICAqbWluZ3czMiopIGlmIHRlc3QgIiRUSFJFQURfTElCUyIgIT0gIi1scHRocmVhZCI7IHRoZW4KKyAgICAgICAgICAgICAgIFdJVEhfVEhSRUFEUz0iMSIKKyAgICAgICAgICAgICAgIFRIUkVBRFNfVzMyPSJXaW4zMiIKKwkgICAgICAgVEhSRUFEX0NGTEFHUz0iJFRIUkVBRF9DRkxBR1MgLURIQVZFX1dJTjMyX1RIUkVBRFMiCisgICAgICAgICAgIGZpCisgICAgICAgOzsKKyAgICAgICAqY3lnd2luKikgVEhSRUFEX0xJQlM9IiIKKyAgICAgICA7OworICAgICAgICpiZW9zKikgV0lUSF9USFJFQURTPSIxIgorCSAgIFRIUkVBRF9DRkxBR1M9IiRUSFJFQURfQ0ZMQUdTIC1ESEFWRV9CRU9TX1RIUkVBRFMiCisgICAgICAgOzsKKyAgICAgICAqbGludXgqKQorICAgICAgICAgICBpZiB0ZXN0ICIke0dDQ30iID0gInllcyIgOyB0aGVuCisJICAgICAgIEdDQ19WRVJTSU9OPWAke0NDfSAtLXZlcnNpb24gfCBoZWFkIC0xIHwgYXdrICd7cHJpbnQgJDN9J2AKKwkgICAgICAgR0NDX01BSk9SPWBlY2hvICR7R0NDX1ZFUlNJT059IHwgc2VkICdzK1wuLiorKydgCisJICAgICAgIEdDQ19NRURJVU09YGVjaG8gJHtHQ0NfVkVSU0lPTn0gfCBzZWQgJ3MrW1swLTldXSpcLisrJyB8IHNlZCAncytcLi4qKysnYAorCSAgICAgICBpZiB0ZXN0ICIke1RIUkVBRF9MSUJTfSIgPSAiLWxwdGhyZWFkIiA7IHRoZW4KKwkgICAgICAgICAgIGlmIGV4cHIgJHtHQ0NfTUVESVVNfSBcPiAyIFwmICR7R0NDX01BSk9SfSA9IDMgPiAvZGV2L251bGwKKwkJICAgdGhlbgorCQkgICAgICAgVEhSRUFEX0xJQlM9IiIKKwkJICAgICAgIEJBU0VfVEhSRUFEX0xJQlM9Ii1scHRocmVhZCIKKwkJICAgZWxzZQorCQkgICBpZiBleHByICR7R0NDX01BSk9SfSBcPiAzID4gL2Rldi9udWxsCisJCSAgIHRoZW4KKwkJICAgICAgIFRIUkVBRF9MSUJTPSIiCisJCSAgICAgICBCQVNFX1RIUkVBRF9MSUJTPSItbHB0aHJlYWQiCisJCSAgIGVsc2UKKwkJICAgICAgIGVjaG8gb2xkIEdDQyBkaXNhYmxpbmcgd2VhayBzeW1ib2xzIGZvciBwdGhyZWFkCisJCSAgIGZpCisJCSAgIGZpCisJICAgICAgIGZpCisJICAgZmkKKyAgICAgICA7OworICAgIGVzYWMKKyAgICBpZiB0ZXN0ICIkV0lUSF9USFJFQURTIiA9ICIxIiA7IHRoZW4KKwlUSFJFQURfQ0ZMQUdTPSIkVEhSRUFEX0NGTEFHUyAtRF9SRUVOVFJBTlQiCisJVEVTVF9USFJFQURTPSJUaHJlYWR0ZXN0cyIKKyAgICBmaQorZmkKK2lmIHRlc3QgIiR3aXRoX3RocmVhZF9hbGxvYyIgPSAieWVzIiAtYSAiJFdJVEhfVEhSRUFEUyIgPSAiMSIgOyB0aGVuCisgICAgVEhSRUFEX0NGTEFHUz0iJFRIUkVBRF9DRkxBR1MgLURMSUJYTUxfVEhSRUFEX0FMTE9DX0VOQUJMRUQiCitmaQorCitBQ19TVUJTVChUSFJFQURfTElCUykKK0FDX1NVQlNUKEJBU0VfVEhSRUFEX0xJQlMpCitBQ19TVUJTVChXSVRIX1RIUkVBRFMpCitBQ19TVUJTVChUSFJFQURfQ0ZMQUdTKQorQUNfU1VCU1QoVEVTVF9USFJFQURTKQorQUNfU1VCU1QoVEhSRUFEU19XMzIpCisKK2RubAorZG5sIHhtbGxpbnQgc2hlbGwgaGlzdG9yeQorZG5sCitpZiB0ZXN0ICIkd2l0aF9oaXN0b3J5IiA9ICJ5ZXMiIDsgdGhlbgorICAgIGVjaG8gRW5hYmxpbmcgeG1sbGludCBzaGVsbCBoaXN0b3J5CisgICAgZG5sIGNoZWNrIGZvciB0ZXJtaW5hbCBsaWJyYXJ5LiB0aGlzIGlzIGEgdmVyeSBjb29sIHNvbHV0aW9uCisgICAgZG5sIGZyb20gb2N0YXZlJ3MgY29uZmlndXJlLmluCisgICAgdW5zZXQgdGNhcAorICAgIGZvciB0ZXJtbGliIGluIG5jdXJzZXMgY3Vyc2VzIHRlcm1jYXAgdGVybWluZm8gdGVybWxpYjsgZG8KKwlBQ19DSEVDS19MSUIoJHt0ZXJtbGlifSwgdHB1dHMsIFt0Y2FwPSItbCR0ZXJtbGliIl0pCisJdGVzdCAtbiAiJHRjYXAiICYmIGJyZWFrCisgICAgZG9uZQorCisgICAgQUNfQ0hFQ0tfSEVBREVSKHJlYWRsaW5lL2hpc3RvcnkuaCwKKwlBQ19DSEVDS19MSUIoaGlzdG9yeSwgYXBwZW5kX2hpc3RvcnksWworCSAgIFJETF9MSUJTPSItbGhpc3RvcnkiCisJICAgQUNfREVGSU5FKFtIQVZFX0xJQkhJU1RPUlldLCBbXSwgW0RlZmluZSBpZiBoaXN0b3J5IGxpYnJhcnkgaXMgdGhlcmUgKC1saGlzdG9yeSldKV0pKQorICAgIEFDX0NIRUNLX0hFQURFUihyZWFkbGluZS9yZWFkbGluZS5oLAorCUFDX0NIRUNLX0xJQihyZWFkbGluZSwgcmVhZGxpbmUsWworCSAgIFJETF9MSUJTPSItbHJlYWRsaW5lICRSRExfTElCUyAkdGNhcCIKKwkgICBBQ19ERUZJTkUoW0hBVkVfTElCUkVBRExJTkVdLCBbXSwgW0RlZmluZSBpZiByZWFkbGluZSBsaWJyYXJ5IGlzIHRoZXJlICgtbHJlYWRsaW5lKV0pXSwgLCAkdGNhcCkpCisgICAgaWYgdGVzdCAtbiAiJFJETF9ESVIiIC1hIC1uICIkUkRMX0xJQlMiOyB0aGVuCisJQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSR7UkRMX0RJUn0vaW5jbHVkZSIKKwlSRExfTElCUz0iLUwke1JETF9ESVJ9L2xpYiAkUkRMX0xJQlMiCisgICAgZmkKK2ZpCisKK2RubAorZG5sIFRyZWUgZnVuY3Rpb25zCitkbmwKK2lmIHRlc3QgIiR3aXRoX3RyZWUiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvIERpc2FibGluZyBET00gbGlrZSB0cmVlIG1hbmlwdWxhdGlvbiBBUElzCisgICAgV0lUSF9UUkVFPTAKK2Vsc2UgICAgCisgICAgV0lUSF9UUkVFPTEKK2ZpCitBQ19TVUJTVChXSVRIX1RSRUUpCisKK2lmIHRlc3QgIiR3aXRoX2Z0cCIgPSAibm8iIDsgdGhlbgorICAgIGVjaG8gRGlzYWJsaW5nIEZUUCBzdXBwb3J0CisgICAgV0lUSF9GVFA9MAorICAgIEZUUF9PQko9CitlbHNlICAgIAorICAgIFdJVEhfRlRQPTEKKyAgICBGVFBfT0JKPW5hbm9mdHAubworZmkKK0FDX1NVQlNUKFdJVEhfRlRQKQorQUNfU1VCU1QoRlRQX09CSikKKworaWYgdGVzdCAiJHdpdGhfaHR0cCIgPSAibm8iIDsgdGhlbgorICAgIGVjaG8gRGlzYWJsaW5nIEhUVFAgc3VwcG9ydAorICAgIFdJVEhfSFRUUD0wCisgICAgSFRUUF9PQko9CitlbHNlICAgIAorICAgIFdJVEhfSFRUUD0xCisgICAgSFRUUF9PQko9bmFub2h0dHAubworZmkKK0FDX1NVQlNUKFdJVEhfSFRUUCkKK0FDX1NVQlNUKEhUVFBfT0JKKQorCitpZiB0ZXN0ICIkd2l0aF9sZWdhY3kiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvIERpc2FibGluZyBkZXByZWNhdGVkIEFQSXMKKyAgICBXSVRIX0xFR0FDWT0wCitlbHNlICAgIAorICAgIFdJVEhfTEVHQUNZPTEKK2ZpCitBQ19TVUJTVChXSVRIX0xFR0FDWSkKKworaWYgdGVzdCAiJHdpdGhfcmVhZGVyIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgdGhlIHhtbFJlYWRlciBwYXJzaW5nIGludGVyZmFjZQorICAgIFdJVEhfUkVBREVSPTAKKyAgICBSRUFERVJfVEVTVD0KK2Vsc2UgICAgCisgICAgV0lUSF9SRUFERVI9MQorICAgIFJFQURFUl9URVNUPVJlYWRlcnRlc3RzCisgICAgaWYgdGVzdCAiJHdpdGhfcHVzaCIgPSAibm8iIDsgdGhlbgorICAgICAgICBlY2hvIHhtbFJlYWRlciByZXF1aXJlcyBQdXNoIGludGVyZmFjZSAtIGVuYWJsaW5nIGl0CisJd2l0aF9wdXNoPXllcworICAgIGZpCitmaQorQUNfU1VCU1QoV0lUSF9SRUFERVIpCitBQ19TVUJTVChSRUFERVJfVEVTVCkKKworaWYgdGVzdCAiJHdpdGhfd3JpdGVyIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgdGhlIHhtbFdyaXRlciBzYXZpbmcgaW50ZXJmYWNlCisgICAgV0lUSF9XUklURVI9MAorIyAgICBXUklURVJfVEVTVD0KK2Vsc2UgICAgCisgICAgV0lUSF9XUklURVI9MQorIyAgICBXUklURVJfVEVTVD1Xcml0ZXJ0ZXN0cworICAgIGlmIHRlc3QgIiR3aXRoX3B1c2giID0gIm5vIiA7IHRoZW4KKyAgICAgICAgZWNobyB4bWxXcml0ZXIgcmVxdWlyZXMgUHVzaCBpbnRlcmZhY2UgLSBlbmFibGluZyBpdAorCXdpdGhfcHVzaD15ZXMKKyAgICBmaQorICAgIGlmIHRlc3QgIiR3aXRoX291dHB1dCIgPSAibm8iIDsgdGhlbgorICAgICAgICBlY2hvIHhtbFdyaXRlciByZXF1aXJlcyBPdXRwdXQgaW50ZXJmYWNlIC0gZW5hYmxpbmcgaXQKKwl3aXRoX291dHB1dD15ZXMKKyAgICBmaQorZmkKK0FDX1NVQlNUKFdJVEhfV1JJVEVSKQorI0FDX1NVQlNUKFdSSVRFUl9URVNUKQorCitpZiB0ZXN0ICIkd2l0aF9wYXR0ZXJuIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgdGhlIHhtbFBhdHRlcm4gcGFyc2luZyBpbnRlcmZhY2UKKyAgICBXSVRIX1BBVFRFUk49MAorICAgIFRFU1RfUEFUVEVSTj0KK2Vsc2UgICAgCisgICAgV0lUSF9QQVRURVJOPTEKKyAgICBURVNUX1BBVFRFUk49UGF0dGVybnRlc3RzCitmaQorQUNfU1VCU1QoV0lUSF9QQVRURVJOKQorQUNfU1VCU1QoVEVTVF9QQVRURVJOKQorCitpZiB0ZXN0ICIkd2l0aF9zYXgxIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgdGhlIG9sZGVyIFNBWDEgaW50ZXJmYWNlCisgICAgV0lUSF9TQVgxPTAKKyAgICBURVNUX1NBWD0KK2Vsc2UgICAgCisgICAgV0lUSF9TQVgxPTEKKyAgICBURVNUX1NBWD1TQVh0ZXN0cworZmkKK0FDX1NVQlNUKFdJVEhfU0FYMSkKK0FDX1NVQlNUKFRFU1RfU0FYKQorCitpZiB0ZXN0ICIkd2l0aF9wdXNoIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgdGhlIFBVU0ggcGFyc2VyIGludGVyZmFjZXMKKyAgICBXSVRIX1BVU0g9MAorICAgIFRFU1RfUFVTSD0KK2Vsc2UgICAgCisgICAgV0lUSF9QVVNIPTEKKyAgICBURVNUX1BVU0g9IlhNTFB1c2h0ZXN0cyIKK2ZpCitBQ19TVUJTVChXSVRIX1BVU0gpCitBQ19TVUJTVChURVNUX1BVU0gpCisKK2lmIHRlc3QgIiR3aXRoX2h0bWwiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvIERpc2FibGluZyBIVE1MIHN1cHBvcnQKKyAgICBXSVRIX0hUTUw9MAorICAgIEhUTUxfT0JKPQorICAgIFRFU1RfSFRNTD0KK2Vsc2UgICAgCisgICAgV0lUSF9IVE1MPTEKKyAgICBIVE1MX09CSj0iSFRNTHBhcnNlci5vIEhUTUx0cmVlLm8iCisgICAgVEVTVF9IVE1MPUhUTUx0ZXN0cworICAgIGlmIHRlc3QgIiR3aXRoX3B1c2giICE9ICJubyIgOyB0aGVuCisgICAgICAgIFRFU1RfUEhUTUw9SFRNTFB1c2h0ZXN0cworICAgIGVsc2UKKyAgICAgICAgVEVTVF9QSFRNTD0KKyAgICBmaQorZmkKK0FDX1NVQlNUKFdJVEhfSFRNTCkKK0FDX1NVQlNUKEhUTUxfT0JKKQorQUNfU1VCU1QoVEVTVF9IVE1MKQorQUNfU1VCU1QoVEVTVF9QSFRNTCkKKworaWYgdGVzdCAiJHdpdGhfdmFsaWQiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvIERpc2FibGluZyBEVEQgdmFsaWRhdGlvbiBzdXBwb3J0CisgICAgV0lUSF9WQUxJRD0wCisgICAgVEVTVF9WQUxJRD0KKyAgICBURVNUX1ZUSU1FPQorZWxzZSAgICAKKyAgICBXSVRIX1ZBTElEPTEKKyAgICBURVNUX1ZBTElEPVZhbGlkdGVzdHMKKyAgICBURVNUX1ZUSU1FPVZUaW1pbmd0ZXN0cworZmkKK0FDX1NVQlNUKFdJVEhfVkFMSUQpCitBQ19TVUJTVChURVNUX1ZBTElEKQorQUNfU1VCU1QoVEVTVF9WVElNRSkKKworaWYgdGVzdCAiJHdpdGhfY2F0YWxvZyIgPSAibm8iIDsgdGhlbgorICAgIGVjaG8gRGlzYWJsaW5nIENhdGFsb2cgc3VwcG9ydAorICAgIFdJVEhfQ0FUQUxPRz0wCisgICAgQ0FUQUxPR19PQko9CisgICAgVEVTVF9DQVRBTE9HPQorZWxzZSAgICAKKyAgICBXSVRIX0NBVEFMT0c9MQorICAgIENBVEFMT0dfT0JKPSJjYXRhbG9nLm8iCisgICAgVEVTVF9DQVRBTE9HPUNhdGF0ZXN0cworZmkKK0FDX1NVQlNUKFdJVEhfQ0FUQUxPRykKK0FDX1NVQlNUKENBVEFMT0dfT0JKKQorQUNfU1VCU1QoVEVTVF9DQVRBTE9HKQorCitpZiB0ZXN0ICIkd2l0aF9kb2Nib29rIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgRG9jYm9vayBzdXBwb3J0CisgICAgV0lUSF9ET0NCPTAKKyAgICBET0NCX09CSj0KK2Vsc2UgICAgCisgICAgV0lUSF9ET0NCPTEKKyAgICBET0NCX09CSj0iRE9DQnBhcnNlci5vIgorZmkKK0FDX1NVQlNUKFdJVEhfRE9DQikKK0FDX1NVQlNUKERPQ0JfT0JKKQorCisKK2lmIHRlc3QgIiR3aXRoX3hwdHIiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvIERpc2FibGluZyBYUG9pbnRlciBzdXBwb3J0CisgICAgV0lUSF9YUFRSPTAKKyAgICBYUFRSX09CSj0KKyAgICBURVNUX1hQVFI9CitlbHNlICAgIAorICAgIFdJVEhfWFBUUj0xCisgICAgWFBUUl9PQko9eHBvaW50ZXIubworICAgIFRFU1RfWFBUUj1YUHRydGVzdHMKKyAgICBpZiB0ZXN0ICIkd2l0aF94cGF0aCIgPSAibm8iIDsgdGhlbgorICAgICAgICBlY2hvIFhQb2ludGVyIHJlcXVpcmVzIFhQYXRoIHN1cHBvcnQgLSBlbmFibGluZyBpdAorCXdpdGhfeHBhdGg9eWVzCisgICAgZmkKK2ZpCitBQ19TVUJTVChXSVRIX1hQVFIpCitBQ19TVUJTVChYUFRSX09CSikKK0FDX1NVQlNUKFRFU1RfWFBUUikKKworaWYgdGVzdCAiJHdpdGhfYzE0biIgPSAibm8iIDsgdGhlbgorICAgIGVjaG8gRGlzYWJsaW5nIEMxNE4gc3VwcG9ydAorICAgIFdJVEhfQzE0Tj0wCisgICAgQzE0Tl9PQko9CisgICAgVEVTVF9DMTROPQorZWxzZSAgICAKKyAgICBXSVRIX0MxNE49MQorICAgIEMxNE5fT0JKPSJjMTRuLmMiCisgICAgVEVTVF9DMTROPUMxNE50ZXN0cworICAgIGlmIHRlc3QgIiR3aXRoX3hwYXRoIiA9ICJubyIgOyB0aGVuCisgICAgICAgIGVjaG8gQzE0TiByZXF1aXJlcyBYUGF0aCBzdXBwb3J0IC0gZW5hYmxpbmcgaXQKKwl3aXRoX3hwYXRoPXllcworICAgIGZpCitmaQorQUNfU1VCU1QoV0lUSF9DMTROKQorQUNfU1VCU1QoQzE0Tl9PQkopCitBQ19TVUJTVChURVNUX0MxNE4pCisKK2lmIHRlc3QgIiR3aXRoX3hpbmNsdWRlIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgWEluY2x1ZGUgc3VwcG9ydAorICAgIFdJVEhfWElOQ0xVREU9MAorICAgIFhJTkNMVURFX09CSj0KKyAgICB3aXRoX3hpbmNsdWRlPSJubyIKKyAgICBURVNUX1hJTkNMVURFPQorZWxzZSAgICAKKyAgICBXSVRIX1hJTkNMVURFPTEKKyAgICBYSU5DTFVERV9PQko9eGluY2x1ZGUubworICAgIFRFU1RfWElOQ0xVREU9WEluY2x1ZGV0ZXN0cworICAgIGlmIHRlc3QgIiR3aXRoX3hwYXRoIiA9ICJubyIgOyB0aGVuCisgICAgICAgIGVjaG8gWEluY2x1ZGUgcmVxdWlyZXMgWFBhdGggc3VwcG9ydCAtIGVuYWJsaW5nIGl0CisJd2l0aF94cGF0aD15ZXMKKyAgICBmaQorZmkKK0FDX1NVQlNUKFdJVEhfWElOQ0xVREUpCitBQ19TVUJTVChYSU5DTFVERV9PQkopCitBQ19TVUJTVChURVNUX1hJTkNMVURFKQorCitpZiB0ZXN0ICIkd2l0aF94cGF0aCIgPSAibm8iIDsgdGhlbgorICAgIGVjaG8gRGlzYWJsaW5nIFhQQVRIIHN1cHBvcnQKKyAgICBXSVRIX1hQQVRIPTAKKyAgICBYUEFUSF9PQko9CisgICAgVEVTVF9YUEFUSD0KK2Vsc2UgICAgCisgICAgV0lUSF9YUEFUSD0xCisgICAgWFBBVEhfT0JKPXhwYXRoLm8KKyAgICBURVNUX1hQQVRIPVhQYXRodGVzdHMKK2ZpCitBQ19TVUJTVChXSVRIX1hQQVRIKQorQUNfU1VCU1QoWFBBVEhfT0JKKQorQUNfU1VCU1QoVEVTVF9YUEFUSCkKKworZG5sCitkbmwgb3V0cHV0IGZ1bmN0aW9ucworZG5sCitpZiB0ZXN0ICIkd2l0aF9vdXRwdXQiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvIERpc2FibGluZyBzZXJpYWxpemF0aW9uL3NhdmluZyBzdXBwb3J0CisgICAgV0lUSF9PVVRQVVQ9MAorZWxzZSAgICAKKyAgICBXSVRIX09VVFBVVD0xCitmaQorQUNfU1VCU1QoV0lUSF9PVVRQVVQpCisKK1dJVEhfSUNPTlY9MAoraWYgdGVzdCAiJHdpdGhfaWNvbnYiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvIERpc2FibGluZyBJQ09OViBzdXBwb3J0CitlbHNlCisgICAgaWYgdGVzdCAiJHdpdGhfaWNvbnYiICE9ICJ5ZXMiIC1hICIkd2l0aF9pY29udiIgIT0gIiIgOyB0aGVuCisJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9IC1JJHdpdGhfaWNvbnYvaW5jbHVkZSIKKwkjIEV4cG9ydCB0aGlzIHNpbmNlIG91ciBoZWFkZXJzIGluY2x1ZGUgaWNvbnYuaAorCVhNTF9JTkNMVURFRElSPSIke1hNTF9JTkNMVURFRElSfSAtSSR3aXRoX2ljb252L2luY2x1ZGUiCisJSUNPTlZfTElCUz0iLUwkd2l0aF9pY29udi9saWIiCisgICAgZmkKKworICAgIEFDX0NIRUNLX0hFQURFUihpY29udi5oLAorCUFDX01TR19DSEVDS0lORyhmb3IgaWNvbnYpCisJQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29udi5oPl0sWworaWNvbnZfdCBjZCA9IGljb252X29wZW4gKCIiLCIiKTsKK2ljb252IChjZCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7XSxbCisJICAgIEFDX01TR19SRVNVTFQoeWVzKQorCSAgICBXSVRIX0lDT05WPTFdLFsKKwkgICAgQUNfTVNHX1JFU1VMVChubykKKwkgICAgQUNfTVNHX0NIRUNLSU5HKGZvciBpY29udiBpbiAtbGljb252KQorCisJICAgIF9sZGZsYWdzPSIke0xERkxBR1N9IgorCSAgICBfbGlicz0iJHtMSUJTfSIKKwkgICAgTERGTEFHUz0iJHtMREZMQUdTfSAke0lDT05WX0xJQlN9IgorCSAgICBMSUJTPSIke0xJQlN9IC1saWNvbnYiCisKKwkgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29udi5oPl0sWworaWNvbnZfdCBjZCA9IGljb252X29wZW4gKCIiLCIiKTsKK2ljb252IChjZCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7XSxbCisJCUFDX01TR19SRVNVTFQoeWVzKQorCQlXSVRIX0lDT05WPTEKKwkJSUNPTlZfTElCUz0iJHtJQ09OVl9MSUJTfSAtbGljb252IgorCQlMSUJTPSIke19saWJzfSIKKwkJTERGTEFHUz0iJHtfbGRmbGFnc30iXSxbCisJCUFDX01TR19SRVNVTFQobm8pCisJCUxJQlM9IiR7X2xpYnN9IgorCQlMREZMQUdTPSIke19sZGZsYWdzfSJdKV0pKQorCisJaWYgdGVzdCAiJFdJVEhfSUNPTlYiID0gIjEiIDsgdGhlbgorCQlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBpY29udiBkZWNsYXJhdGlvbl0pCisJCUFDX0NBQ0hFX1ZBTCh4bWxfY3ZfaWNvbnZfYXJnMiwgWworCQkJQUNfVFJZX0NPTVBJTEUoWyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29udi5oPgorZXh0ZXJuCisjaWZkZWYgX19jcGx1c3BsdXMKKyJDIgorI2VuZGlmCisjaWYgZGVmaW5lZChfX1NURENfXykgfHwgZGVmaW5lZChfX2NwbHVzcGx1cykKK3NpemVfdCBpY29udiAoaWNvbnZfdCBjZCwgY2hhciAqICppbmJ1Ziwgc2l6ZV90ICppbmJ5dGVzbGVmdCwgY2hhciAqICpvdXRidWYsIHNpemVfdCAqb3V0Ynl0ZXNsZWZ0KTsKKyNlbHNlCitzaXplX3QgaWNvbnYoKTsKKyNlbmRpZgorXSwgW10sIHhtbF9jdl9pY29udl9hcmcyPSIiLCB4bWxfY3ZfaWNvbnZfYXJnMj0iY29uc3QiKV0pCisKKwkJeG1sX2N2X2ljb252X2RlY2w9ImV4dGVybiBzaXplX3QgaWNvbnYgKGljb252X3QgY2QsICR4bWxfY3ZfaWNvbnZfYXJnMiBjaGFyICogKmluYnVmLCBzaXplX3QgKmluYnl0ZXNsZWZ0LCBjaGFyICogKm91dGJ1Ziwgc2l6ZV90ICpvdXRieXRlc2xlZnQpOyIKKwkJQUNfTVNHX1JFU1VMVChbJHt4bWxfeHh4Oi0KKwl9JHhtbF9jdl9pY29udl9kZWNsXSkKKwkJQUNfREVGSU5FX1VOUVVPVEVEKElDT05WX0NPTlNULCAkeG1sX2N2X2ljb252X2FyZzIsCisJCQlbRGVmaW5lIGFzIGNvbnN0IGlmIHRoZSBkZWNsYXJhdGlvbiBvZiBpY29udigpIG5lZWRzIGNvbnN0Ll0pCisJZmkKK2ZpCitjYXNlICIkaG9zdCIgaW4KKwkqbWluZ3cqKSBNX0xJQlM9IiIKKwk7OworCSpiZW9zKikgTV9MSUJTPSIiCisJOzsKKyAgICAgICAgKmhhaWt1KikgTV9MSUJTPSIiCisgICAgICAgIDs7CisJKikgTV9MSUJTPSItbG0iCisJOzsKK2VzYWMKK1hNTF9MSUJTPSItbHhtbDIgJFpfTElCUyAkVEhSRUFEX0xJQlMgJElDT05WX0xJQlMgJE1fTElCUyAkTElCUyIKK1hNTF9MSUJUT09MTElCUz0ibGlieG1sMi5sYSIKK0FDX1NVQlNUKFdJVEhfSUNPTlYpCisKK1dJVEhfSVNPODg1OVg9MQoraWYgdGVzdCAiJFdJVEhfSUNPTlYiICE9ICIxIiA7IHRoZW4KK2lmIHRlc3QgIiR3aXRoX2lzbzg4NTl4IiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgSVNPODg1OVggc3VwcG9ydAorICAgIFdJVEhfSVNPODg1OVg9MAorZmkKK2ZpCitBQ19TVUJTVChXSVRIX0lTTzg4NTlYKQorCitpZiB0ZXN0ICIkd2l0aF9zY2hlbWF0cm9uIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyAiRGlzYWJsaW5nIFNjaGVtYXRyb24gc3VwcG9ydCIKKyAgICBXSVRIX1NDSEVNQVRST049MAorICAgIFRFU1RfU0NIRU1BVFJPTj0KK2Vsc2UgICAgCisgICAgZWNobyAiRW5hYmxlZCBTY2hlbWF0cm9uIHN1cHBvcnQiCisgICAgV0lUSF9TQ0hFTUFUUk9OPTEKKyAgICBURVNUX1NDSEVNQVRST049IlNjaGVtYXRyb250ZXN0cyIKKyAgICB3aXRoX3hwYXRoPXllcworICAgIHdpdGhfcGF0dGVybj15ZXMKK2ZpCitBQ19TVUJTVChXSVRIX1NDSEVNQVRST04pCitBQ19TVUJTVChURVNUX1NDSEVNQVRST04pCisKK2lmIHRlc3QgIiR3aXRoX3NjaGVtYXMiID0gIm5vIiA7IHRoZW4KKyAgICBlY2hvICJEaXNhYmxpbmcgU2NoZW1hcy9SZWxheC1ORyBzdXBwb3J0IgorICAgIFdJVEhfU0NIRU1BUz0wCisgICAgVEVTVF9TQ0hFTUFTPQorZWxzZSAgICAKKyAgICBlY2hvICJFbmFibGVkIFNjaGVtYXMvUmVsYXgtTkcgc3VwcG9ydCIKKyAgICBXSVRIX1NDSEVNQVM9MQorICAgIFRFU1RfU0NIRU1BUz0iU2NoZW1hc3Rlc3RzIFJlbGF4dGVzdHMiCisgICAgaWYgdGVzdCAiJFBZVEhPTl9JTkNMVURFUyIgIT0gIiIgOyB0aGVuCisgICAgICAgIFBZVEhPTl9URVNUUz0iJFBZVEhPTl9URVNUUyBSZWxheE5HUHl0aG9uVGVzdHMgU2NoZW1hc1B5dGhvblRlc3RzIgorICAgIGZpCisgICAgd2l0aF9yZWdleHBzPXllcworZmkKK0FDX1NVQlNUKFdJVEhfU0NIRU1BUykKK0FDX1NVQlNUKFRFU1RfU0NIRU1BUykKKworaWYgdGVzdCAiJHdpdGhfcmVnZXhwcyIgPSAibm8iIDsgdGhlbgorICAgIGVjaG8gRGlzYWJsaW5nIFJlZ2V4cHMgc3VwcG9ydAorICAgIFdJVEhfUkVHRVhQUz0wCisgICAgVEVTVF9SRUdFWFBTPQorZWxzZSAgICAKKyAgICBXSVRIX1JFR0VYUFM9MQorICAgIFRFU1RfUkVHRVhQUz0iUmVnZXhwdGVzdHMgQXV0b21hdGF0ZXN0cyIKK2ZpCitBQ19TVUJTVChXSVRIX1JFR0VYUFMpCitBQ19TVUJTVChURVNUX1JFR0VYUFMpCisKK2lmIHRlc3QgIiR3aXRoX2RlYnVnIiA9ICJubyIgOyB0aGVuCisgICAgZWNobyBEaXNhYmxpbmcgREVCVUcgc3VwcG9ydAorICAgIFdJVEhfREVCVUc9MAorICAgIERFQlVHX09CSj0KKyAgICBURVNUX0RFQlVHPQorZWxzZSAgICAKKyAgICBXSVRIX0RFQlVHPTEKKyAgICBERUJVR19PQko9ZGVidWdYTUwubworICAgIFRFU1RfREVCVUc9U2NyaXB0dGVzdHMKK2ZpCitBQ19TVUJTVChXSVRIX0RFQlVHKQorQUNfU1VCU1QoREVCVUdfT0JKKQorQUNfU1VCU1QoVEVTVF9ERUJVRykKKworaWYgdGVzdCAiJHdpdGhfbWVtX2RlYnVnIiA9ICJ5ZXMiIDsgdGhlbgorICAgIGlmIHRlc3QgIiR3aXRoX3RocmVhZF9hbGxvYyIgPSAieWVzIiA7IHRoZW4KKyAgICAgICAgZWNobyBEaXNhYmxpbmcgbWVtb3J5IGRlYnVnIC0gY2Fubm90IHVzZSBtZW0tZGVidWcgd2l0aCB0aHJlYWQtYWxsb2MhCisJV0lUSF9NRU1fREVCVUc9MAorICAgIGVsc2UKKyAgICAgICAgZWNobyBFbmFibGluZyBtZW1vcnkgZGVidWcgc3VwcG9ydAorICAgICAgICBXSVRIX01FTV9ERUJVRz0xCisgICAgZmkKK2Vsc2UgICAgCisgICAgV0lUSF9NRU1fREVCVUc9MAorZmkKK0FDX1NVQlNUKFdJVEhfTUVNX0RFQlVHKQorCitpZiB0ZXN0ICIkd2l0aF9ydW5fZGVidWciID0gInllcyIgOyB0aGVuCisgICAgZWNobyBFbmFibGluZyBydW50aW1lIGRlYnVnIHN1cHBvcnQKKyAgICBXSVRIX1JVTl9ERUJVRz0xCitlbHNlICAgIAorICAgIFdJVEhfUlVOX0RFQlVHPTAKK2ZpCitBQ19TVUJTVChXSVRIX1JVTl9ERUJVRykKKworV0lOMzJfRVhUUkFfTElCQUREPQorV0lOMzJfRVhUUkFfTERGTEFHUz0KK0NZR1dJTl9FWFRSQV9MREZMQUdTPQorQ1lHV0lOX0VYVFJBX1BZVEhPTl9MSUJBREQ9CitjYXNlICIkaG9zdCIgaW4KKyAqLSotbWluZ3cqKQorIENQUEZMQUdTPSIkQ1BQRkxBR1MgLURXSU4zMiIKKyBXSU4zMl9FWFRSQV9MSUJBREQ9Ii1sd3MyXzMyIgorIFdJTjMyX0VYVFJBX0xERkxBR1M9Ii1uby11bmRlZmluZWQiCisgQUNfREVGSU5FKFtfV0lOU09DS0FQSV9dLDEsW1VzaW5nIHRoZSBXaW4zMiBTb2NrZXQgaW1wbGVtZW50YXRpb25dKQorIEFDX0RFRklORShbc25wcmludGZdLFtfc25wcmludGZdLFtXaW4zMiBTdGQgQyBuYW1lIG1hbmdsaW5nIHdvcmstYXJvdW5kXSkKKyBBQ19ERUZJTkUoW3ZzbnByaW50Zl0sW192c25wcmludGZdLFtXaW4zMiBTdGQgQyBuYW1lIG1hbmdsaW5nIHdvcmstYXJvdW5kXSkKKyA7OworICotKi1jeWd3aW4qKQorIENZR1dJTl9FWFRSQV9MREZMQUdTPSItbm8tdW5kZWZpbmVkIgorIGlmIHRlc3QgIiR7UFlUSE9OfSIgIT0gIiIKKyB0aGVuCisgICBDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFERD0iLUwvdXNyL2xpYi9weXRob24ke1BZVEhPTl9WRVJTSU9OfS9jb25maWcgLWxweXRob24ke1BZVEhPTl9WRVJTSU9OfSIKKyBmaQorIDs7Citlc2FjCitBQ19TVUJTVChXSU4zMl9FWFRSQV9MSUJBREQpCitBQ19TVUJTVChXSU4zMl9FWFRSQV9MREZMQUdTKQorQUNfU1VCU1QoQ1lHV0lOX0VYVFJBX0xERkxBR1MpCitBQ19TVUJTVChDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFERCkKKworaWYgdGVzdCAiJHdpdGhfY292ZXJhZ2UiID0gInllcyIgLWEgIiR7R0NDfSIgPSAieWVzIgordGhlbgorICAgIGVjaG8gRW5hYmxpbmcgY29kZSBjb3ZlcmFnZSBmb3IgR0NDCisgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1mcHJvZmlsZS1hcmNzIC1mdGVzdC1jb3ZlcmFnZSIKKyAgICBMREZMQUdTPSIkTERGTEFHUyAtZnByb2ZpbGUtYXJjcyAtZnRlc3QtY292ZXJhZ2UiCitlbHNlCisgICAgZWNobyBEaXNhYmxpbmcgY29kZSBjb3ZlcmFnZSBmb3IgR0NDCitmaQorCitBQ19TVUJTVChDUFBGTEFHUykKK0FDX1NVQlNUKENGTEFHUykKK0FDX1NVQlNUKExERkxBR1MpCitBQ19TVUJTVChYTUxfQ0ZMQUdTKQorCitBQ19TVUJTVChYTUxfTElCRElSKQorQUNfU1VCU1QoWE1MX0xJQlMpCitBQ19TVUJTVChYTUxfTElCVE9PTExJQlMpCitBQ19TVUJTVChJQ09OVl9MSUJTKQorQUNfU1VCU1QoWE1MX0lOQ0xVREVESVIpCitBQ19TVUJTVChIVE1MX0RJUikKK0FDX1NVQlNUKEhBVkVfSVNOQU4pCitBQ19TVUJTVChIQVZFX0lTSU5GKQorQUNfU1VCU1QoUFlUSE9OKQorQUNfU1VCU1QoUFlUSE9OX1ZFUlNJT04pCitBQ19TVUJTVChQWVRIT05fSU5DTFVERVMpCitBQ19TVUJTVChQWVRIT05fU0lURV9QQUNLQUdFUykKKworQUNfU1VCU1QoTV9MSUJTKQorQUNfU1VCU1QoUkRMX0xJQlMpCisKK2RubCBmb3IgdGhlIHNwZWMgZmlsZQorUkVMREFURT1gZGF0ZSArJyVhICViICVlICVZJ2AKK0FDX1NVQlNUKFJFTERBVEUpCitBQ19TVUJTVChQWVRIT05fVEVTVFMpCisKK3JtIC1mIENPUFlJTkcuTElCIENPUFlJTkcKK2xuIC1zIENvcHlyaWdodCBDT1BZSU5HCisKKyMga2VlcCBvbiBvbmUgbGluZSBmb3IgY3lnd2luIGMuZi4gIzEzMDg5NgorQUNfT1VUUFVUKGxpYnhtbDIuc3BlYzpsaWJ4bWwuc3BlYy5pbiBNYWtlZmlsZSBpbmNsdWRlL01ha2VmaWxlIGluY2x1ZGUvbGlieG1sL01ha2VmaWxlIGRvYy9NYWtlZmlsZSBkb2MvZXhhbXBsZXMvTWFrZWZpbGUgZG9jL2RldmhlbHAvTWFrZWZpbGUgZXhhbXBsZS9NYWtlZmlsZSBweXRob24vTWFrZWZpbGUgcHl0aG9uL3Rlc3RzL01ha2VmaWxlIHhzdGMvTWFrZWZpbGUgaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oIHhtbDItY29uZmlnIGxpYnhtbC0yLjAucGMgbGlieG1sLTIuMC11bmluc3RhbGxlZC5wYyBweXRob24vc2V0dXAucHkpCisKK2NobW9kICt4IHhtbDItY29uZmlnIHB5dGhvbi9zZXR1cC5weQorZWNobyBEb25lIGNvbmZpZ3VyaW5nCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RiZ2VuLnBsIGIvbGlieG1sMi0yLjcuNy9kYmdlbi5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMzgzZDZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kYmdlbi5wbApAQCAtMCwwICsxLDQzIEBACisjIS91c3IvYmluL3BlcmwKKworJHNpemUgPSBzaGlmdDsKKworaWYgKCRzaXplIGVxICIiKSAKK3sKKyAgICBkaWUgInVzYWdlOiAgZGJnZW4ucGwgW3NpemVdXG4iOworfQorCitAZmlyc3RuYW1lcyA9ICgiQWwiLCAiQm9iIiwgIkNoYXJsZXMiLCAiRGF2aWQiLCAiRWdvbiIsICJGYXJib29kIiwgCisgICAgICAgICAgICAgICAiR2VvcmdlIiwgIkhhbmsiLCAiSW5raSIsICJKYW1lcyIpOworQGxhc3RuYW1lcyA9ICgiQXJhbm93IiwgIkJhcmtlciIsICJDb3JzZXR0aSIsICJEZXJzaG93aXR6IiwgIkVuZ2xlbWFuIiwgCisgICAgICAgICAgICAgICJGcmFua2xpbiIsICJHcmljZSIsICJIYXZlcmZvcmQiLCAiSWx2ZWRzb24iLCAiSm9uZXMiKTsKK0BzdGF0ZXMgPSAoIkFMIiwgIkFLIiwgIkFaIiwgIkFSIiwgIkNBIiwgIkNPIiwgIkNUIiwgIkRFIiwgIkZMIiwgIkdBIiwgCisgICAgICAgICAgICJISSIsICJJRCIsICJJTCIsICJJTiIsICJJQSIsICJLUyIsICJLWSIsICJMQSIsICJNRSIsICJNRCIsIAorICAgICAgICAgICAiTUEiLCAiTUkiLCAiTU4iLCAiTVMiLCAiTU8iLCAiTVQiLCAiTkUiLCAiTlYiLCAiTkgiLCAiTkoiLCAKKyAgICAgICAgICAgIk5NIiwgIk5ZIiwgIk5DIiwgIk5EIiwgIk9IIiwgIk9LIiwgIk9SIiwgIlBBIiwgIlJJIiwgIlNDIiwgCisgICAgICAgICAgICJTRCIsICJUTiIsICJUWCIsICJVVCIsICJWVCIsICJWQSIsICJXQSIsICJXViIsICJXSSIsICJXWSIpOworCitwcmludCAiPD94bWwgdmVyc2lvbj1cIjEuMFwiPz5cbiI7CitwcmludCAiXG4iOworcHJpbnQgIjx0YWJsZT5cbiI7CisKK2ZvciAoJGk9MDsgJGk8JHNpemU7ICRpKyspCit7CisgICAgJGZpcnN0ID0gJGZpcnN0bmFtZXMgWyRpICUgMTBdOworICAgICRsYXN0ID0gJGxhc3RuYW1lcyBbKCRpIC8gMTApICUgMTBdOworICAgICRzdGF0ZSA9ICRzdGF0ZXMgWygkaSAvIDEwMCkgJSA1MF07CisgICAgJHppcCA9IDIyMDAwICsgJGkgLyA1MDAwOworCisgICAgcHJpbnRmICIgIDxyb3c+XG4iOworICAgIHByaW50ZiAiICAgIDxpZD4lMDRkPC9pZD5cbiIsICRpOworICAgIHByaW50ZiAiICAgIDxmaXJzdG5hbWU+JGZpcnN0PC9maXJzdG5hbWU+XG4iLCAkaTsKKyAgICBwcmludGYgIiAgICA8bGFzdG5hbWU+JGxhc3Q8L2xhc3RuYW1lPlxuIiwgJGk7CisgICAgcHJpbnRmICIgICAgPHN0cmVldD4lZCBBbnkgU3QuPC9zdHJlZXQ+XG4iLCAoJGkgJSAxMDApICsgMTsKKyAgICBwcmludGYgIiAgICA8Y2l0eT5Bbnl0b3duPC9jaXR5PlxuIjsKKyAgICBwcmludGYgIiAgICA8c3RhdGU+JHN0YXRlPC9zdGF0ZT5cbiI7CisgICAgcHJpbnRmICIgICAgPHppcD4lZDwvemlwPlxuIiwgJHppcDsKKyAgICBwcmludGYgIiAgPC9yb3c+XG4iOworfQorCitwcmludCAiPC90YWJsZT5cbiI7CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZGJnZW5hdHRyLnBsIGIvbGlieG1sMi0yLjcuNy9kYmdlbmF0dHIucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGNlMTFjZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZGJnZW5hdHRyLnBsCkBAIC0wLDAgKzEsNDIgQEAKKyMhL3Vzci9iaW4vcGVybAorCiskc2l6ZSA9IHNoaWZ0OworCitpZiAoJHNpemUgZXEgIiIpIAoreworICAgIGRpZSAidXNhZ2U6ICBkYmdlbi5wbCBbc2l6ZV1cbiI7Cit9CisKK0BmaXJzdG5hbWVzID0gKCJBbCIsICJCb2IiLCAiQ2hhcmxlcyIsICJEYXZpZCIsICJFZ29uIiwgIkZhcmJvb2QiLCAKKyAgICAgICAgICAgICAgICJHZW9yZ2UiLCAiSGFuayIsICJJbmtpIiwgIkphbWVzIik7CitAbGFzdG5hbWVzID0gKCJBcmFub3ciLCAiQmFya2VyIiwgIkNvcnNldHRpIiwgIkRlcnNob3dpdHoiLCAiRW5nbGVtYW4iLCAKKyAgICAgICAgICAgICAgIkZyYW5rbGluIiwgIkdyaWNlIiwgIkhhdmVyZm9yZCIsICJJbHZlZHNvbiIsICJKb25lcyIpOworQHN0YXRlcyA9ICgiQUwiLCAiQUsiLCAiQVoiLCAiQVIiLCAiQ0EiLCAiQ08iLCAiQ1QiLCAiREUiLCAiRkwiLCAiR0EiLCAKKyAgICAgICAgICAgIkhJIiwgIklEIiwgIklMIiwgIklOIiwgIklBIiwgIktTIiwgIktZIiwgIkxBIiwgIk1FIiwgIk1EIiwgCisgICAgICAgICAgICJNQSIsICJNSSIsICJNTiIsICJNUyIsICJNTyIsICJNVCIsICJORSIsICJOViIsICJOSCIsICJOSiIsIAorICAgICAgICAgICAiTk0iLCAiTlkiLCAiTkMiLCAiTkQiLCAiT0giLCAiT0siLCAiT1IiLCAiUEEiLCAiUkkiLCAiU0MiLCAKKyAgICAgICAgICAgIlNEIiwgIlROIiwgIlRYIiwgIlVUIiwgIlZUIiwgIlZBIiwgIldBIiwgIldWIiwgIldJIiwgIldZIik7CisKK3ByaW50ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCI/PlxuIjsKK3ByaW50ICJcbiI7CitwcmludCAiPHRhYmxlPlxuIjsKKworZm9yICgkaT0wOyAkaTwkc2l6ZTsgJGkrKykKK3sKKyAgICAkZmlyc3QgPSAkZmlyc3RuYW1lcyBbJGkgJSAxMF07CisgICAgJGxhc3QgPSAkbGFzdG5hbWVzIFsoJGkgLyAxMCkgJSAxMF07CisgICAgJHN0YXRlID0gJHN0YXRlcyBbKCRpIC8gMTAwKSAlIDUwXTsKKyAgICAkemlwID0gMjIwMDAgKyAkaSAvIDUwMDA7CisKKyAgICBwcmludGYgIiAgPHJvd1xuIjsKKyAgICBwcmludGYgIiAgICBpZD0nJTA0ZCdcbiIsICRpOworICAgIHByaW50ZiAiICAgIGZpcnN0bmFtZT0nJGZpcnN0J1xuIiwgJGk7CisgICAgcHJpbnRmICIgICAgbGFzdG5hbWU9JyRsYXN0J1xuIiwgJGk7CisgICAgcHJpbnRmICIgICAgc3RyZWV0PSclZCBBbnkgU3QuJ1xuIiwgKCRpICUgMTAwKSArIDE7CisgICAgcHJpbnRmICIgICAgY2l0eT0nQW55dG93bidcbiI7CisgICAgcHJpbnRmICIgICAgc3RhdGU9JyRzdGF0ZSdcbiI7CisgICAgcHJpbnRmICIgICAgemlwPSclZCcvPlxuIiwgJHppcDsKK30KKworcHJpbnQgIjwvdGFibGU+XG4iOworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RlYnVnWE1MLmMgYi9saWJ4bWwyLTIuNy43L2RlYnVnWE1MLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE1ODg5YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZGVidWdYTUwuYwpAQCAtMCwwICsxLDMyNjMgQEAKKy8qCisgKiBkZWJ1Z1hNTC5jIDogVGhpcyBpcyBhIHNldCBvZiByb3V0aW5lcyB1c2VkIGZvciBkZWJ1Z2dpbmcgdGhlIHRyZWUKKyAqICAgICAgICAgICAgICBwcm9kdWNlZCBieSB0aGUgWE1MIHBhcnNlci4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RSSU5HX0gKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3ZhbGlkLmg+CisjaW5jbHVkZSA8bGlieG1sL2RlYnVnWE1MLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUx0cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUxwYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aEludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKyNlbmRpZgorCisjZGVmaW5lIERVTVBfVEVYVF9UWVBFIDEKKwordHlwZWRlZiBzdHJ1Y3QgX3htbERlYnVnQ3R4dCB4bWxEZWJ1Z0N0eHQ7Cit0eXBlZGVmIHhtbERlYnVnQ3R4dCAqeG1sRGVidWdDdHh0UHRyOworc3RydWN0IF94bWxEZWJ1Z0N0eHQgeworICAgIEZJTEUgKm91dHB1dDsgICAgICAgICAgICAgICAvKiB0aGUgb3V0cHV0IGZpbGUgKi8KKyAgICBjaGFyIHNoaWZ0WzEwMV07ICAgICAgICAgICAgLyogdXNlZCBmb3IgaW5kZW50aW5nICovCisgICAgaW50IGRlcHRoOyAgICAgICAgICAgICAgICAgIC8qIGN1cnJlbnQgZGVwdGggKi8KKyAgICB4bWxEb2NQdHIgZG9jOyAgICAgICAgICAgICAgLyogY3VycmVudCBkb2N1bWVudCAqLworICAgIHhtbE5vZGVQdHIgbm9kZTsJCS8qIGN1cnJlbnQgbm9kZSAqLworICAgIHhtbERpY3RQdHIgZGljdDsJCS8qIHRoZSBkb2MgZGljdGlvbm5hcnkgKi8KKyAgICBpbnQgY2hlY2s7ICAgICAgICAgICAgICAgICAgLyogZG8ganVzdCBjaGVja2luZ3MgKi8KKyAgICBpbnQgZXJyb3JzOyAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGVycm9ycyBmb3VuZCAqLworICAgIGludCBub2RpY3Q7CQkJLyogaWYgdGhlIGRvY3VtZW50IGhhcyBubyBkaWN0aW9ubmFyeSAqLworICAgIGludCBvcHRpb25zOwkJLyogb3B0aW9ucyAqLworfTsKKworc3RhdGljIHZvaWQgeG1sQ3R4dER1bXBOb2RlTGlzdCh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKTsKKworc3RhdGljIHZvaWQKK3htbEN0eHREdW1wSW5pdEN0eHQoeG1sRGVidWdDdHh0UHRyIGN0eHQpCit7CisgICAgaW50IGk7CisKKyAgICBjdHh0LT5kZXB0aCA9IDA7CisgICAgY3R4dC0+Y2hlY2sgPSAwOworICAgIGN0eHQtPmVycm9ycyA9IDA7CisgICAgY3R4dC0+b3V0cHV0ID0gc3Rkb3V0OworICAgIGN0eHQtPmRvYyA9IE5VTEw7CisgICAgY3R4dC0+bm9kZSA9IE5VTEw7CisgICAgY3R4dC0+ZGljdCA9IE5VTEw7CisgICAgY3R4dC0+bm9kaWN0ID0gMDsKKyAgICBjdHh0LT5vcHRpb25zID0gMDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgMTAwOyBpKyspCisgICAgICAgIGN0eHQtPnNoaWZ0W2ldID0gJyAnOworICAgIGN0eHQtPnNoaWZ0WzEwMF0gPSAwOworfQorCitzdGF0aWMgdm9pZAoreG1sQ3R4dER1bXBDbGVhbkN0eHQoeG1sRGVidWdDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAvKiByZW1vdmUgdGhlIEFUVFJJQlVURV9VTlVTRUQgd2hlbiB0aGlzIGlzIGFkZGVkICovCit9CisKKy8qKgorICogeG1sTnNDaGVja1Njb3BlOgorICogQG5vZGU6IHRoZSBub2RlCisgKiBAbnM6IHRoZSBuYW1lc3BhY2Ugbm9kZQorICoKKyAqIENoZWNrIHRoYXQgYSBnaXZlbiBuYW1lc3BhY2UgaXMgaW4gc2NvcGUgb24gYSBub2RlLgorICoKKyAqIFJldHVybnMgMSBpZiBpbiBzY29wZSwgLTEgaW4gY2FzZSBvZiBhcmd1bWVudCBlcnJvciwgCisgKiAgICAgICAgIC0yIGlmIHRoZSBuYW1lc3BhY2UgaXMgbm90IGluIHNjb3BlLCBhbmQgLTMgaWYgbm90IG9uCisgKiAgICAgICAgIGFuIGFuY2VzdG9yIG5vZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbE5zQ2hlY2tTY29wZSh4bWxOb2RlUHRyIG5vZGUsIHhtbE5zUHRyIG5zKQoreworICAgIHhtbE5zUHRyIGN1cjsKKworICAgIGlmICgobm9kZSA9PSBOVUxMKSB8fCAobnMgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICBpZiAoKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfQVRUUklCVVRFX05PREUpICYmCisJKG5vZGUtPnR5cGUgIT0gWE1MX0RPQ1VNRU5UX05PREUpICYmCisJKG5vZGUtPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9YSU5DTFVERV9TVEFSVCkpCisJcmV0dXJuKC0yKTsKKworICAgIHdoaWxlICgobm9kZSAhPSBOVUxMKSAmJgorICAgICAgICAgICAoKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisJICAgIChub2RlLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkpKSB7CisJaWYgKChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJICAgIChub2RlLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkpIHsKKwkgICAgY3VyID0gbm9kZS0+bnNEZWY7CisJICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICAgICAgaWYgKGN1ciA9PSBucykKKwkJICAgIHJldHVybigxKTsKKwkJaWYgKHhtbFN0ckVxdWFsKGN1ci0+cHJlZml4LCBucy0+cHJlZml4KSkKKwkJICAgIHJldHVybigtMik7CisJCWN1ciA9IGN1ci0+bmV4dDsKKwkgICAgfQorCX0KKwlub2RlID0gbm9kZS0+cGFyZW50OworICAgIH0KKyAgICAvKiB0aGUgeG1sIG5hbWVzcGFjZSBtYXkgYmUgZGVjbGFyZWQgb24gdGhlIGRvY3VtZW50IG5vZGUgKi8KKyAgICBpZiAoKG5vZGUgIT0gTlVMTCkgJiYKKyAgICAgICAgKChub2RlLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorCSAobm9kZS0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkpIHsKKwkgeG1sTnNQdHIgb2xkTnMgPSAoKHhtbERvY1B0cikgbm9kZSktPm9sZE5zOworCSBpZiAob2xkTnMgPT0gbnMpCisJICAgICByZXR1cm4oMSk7CisgICAgfQorICAgIHJldHVybigtMyk7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcFNwYWNlcyh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dC0+Y2hlY2spCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKGN0eHQtPm91dHB1dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGVwdGggPiAwKSkgeworICAgICAgICBpZiAoY3R4dC0+ZGVwdGggPCA1MCkKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiJXMiLCAmY3R4dC0+c2hpZnRbMTAwIC0gMiAqIGN0eHQtPmRlcHRoXSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiJXMiLCBjdHh0LT5zaGlmdCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbERlYnVnRXJyOgorICogQGN0eHQ6ICBhIGRlYnVnIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBjb2RlCisgKgorICogSGFuZGxlIGEgZGVidWcgZXJyb3IuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxEZWJ1Z0Vycih4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgaW50IGVycm9yLCBjb25zdCBjaGFyICptc2cpCit7CisgICAgY3R4dC0+ZXJyb3JzKys7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsCisJCSAgICBOVUxMLCBjdHh0LT5ub2RlLCBYTUxfRlJPTV9DSEVDSywKKwkJICAgIGVycm9yLCBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorCQkgICAgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMCwKKwkJICAgICIlcyIsIG1zZyk7Cit9CitzdGF0aWMgdm9pZAoreG1sRGVidWdFcnIyKHhtbERlYnVnQ3R4dFB0ciBjdHh0LCBpbnQgZXJyb3IsIGNvbnN0IGNoYXIgKm1zZywgaW50IGV4dHJhKQoreworICAgIGN0eHQtPmVycm9ycysrOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLAorCQkgICAgTlVMTCwgY3R4dC0+bm9kZSwgWE1MX0ZST01fQ0hFQ0ssCisJCSAgICBlcnJvciwgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKwkJICAgIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDAsCisJCSAgICBtc2csIGV4dHJhKTsKK30KK3N0YXRpYyB2b2lkCit4bWxEZWJ1Z0VycjMoeG1sRGVidWdDdHh0UHRyIGN0eHQsIGludCBlcnJvciwgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBjdHh0LT5lcnJvcnMrKzsKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwKKwkJICAgIE5VTEwsIGN0eHQtPm5vZGUsIFhNTF9GUk9NX0NIRUNLLAorCQkgICAgZXJyb3IsIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsCisJCSAgICBOVUxMLCBOVUxMLCBOVUxMLCAwLCAwLAorCQkgICAgbXNnLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sQ3R4dE5zQ2hlY2tTY29wZToKKyAqIEBjdHh0OiB0aGUgZGVidWdnaW5nIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgbm9kZQorICogQG5zOiB0aGUgbmFtZXNwYWNlIG5vZGUKKyAqCisgKiBSZXBvcnQgaWYgYSBnaXZlbiBuYW1lc3BhY2UgaXMgaXMgbm90IGluIHNjb3BlLgorICovCitzdGF0aWMgdm9pZAoreG1sQ3R4dE5zQ2hlY2tTY29wZSh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCB4bWxOc1B0ciBucykKK3sKKyAgICBpbnQgcmV0OworCisgICAgcmV0ID0geG1sTnNDaGVja1Njb3BlKG5vZGUsIG5zKTsKKyAgICBpZiAocmV0ID09IC0yKSB7CisgICAgICAgIGlmIChucy0+cHJlZml4ID09IE5VTEwpCisJICAgIHhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OU19TQ09QRSwKKwkJCSJSZWZlcmVuY2UgdG8gZGVmYXVsdCBuYW1lc3BhY2Ugbm90IGluIHNjb3BlXG4iKTsKKwllbHNlCisJICAgIHhtbERlYnVnRXJyMyhjdHh0LCBYTUxfQ0hFQ0tfTlNfU0NPUEUsCisJCQkgIlJlZmVyZW5jZSB0byBuYW1lc3BhY2UgJyVzJyBub3QgaW4gc2NvcGVcbiIsCisJCQkgKGNoYXIgKikgbnMtPnByZWZpeCk7CisgICAgfQorICAgIGlmIChyZXQgPT0gLTMpIHsKKyAgICAgICAgaWYgKG5zLT5wcmVmaXggPT0gTlVMTCkKKwkgICAgeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX05TX0FOQ0VTVE9SLAorCQkJIlJlZmVyZW5jZSB0byBkZWZhdWx0IG5hbWVzcGFjZSBub3Qgb24gYW5jZXN0b3JcbiIpOworCWVsc2UKKwkgICAgeG1sRGVidWdFcnIzKGN0eHQsIFhNTF9DSEVDS19OU19BTkNFU1RPUiwKKwkJCSAiUmVmZXJlbmNlIHRvIG5hbWVzcGFjZSAnJXMnIG5vdCBvbiBhbmNlc3RvclxuIiwKKwkJCSAoY2hhciAqKSBucy0+cHJlZml4KTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sQ3R4dENoZWNrU3RyaW5nOgorICogQGN0eHQ6IHRoZSBkZWJ1ZyBjb250ZXh0CisgKiBAc3RyOiB0aGUgc3RyaW5nCisgKgorICogRG8gZGVidWdnaW5nIG9uIHRoZSBzdHJpbmcsIGN1cnJlbnRseSBpdCBqdXN0IGNoZWNrcyB0aGUgVVRGLTggY29udGVudAorICovCitzdGF0aWMgdm9pZAoreG1sQ3R4dENoZWNrU3RyaW5nKHhtbERlYnVnQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICogc3RyKQoreworICAgIGlmIChzdHIgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChjdHh0LT5jaGVjaykgeworICAgICAgICBpZiAoIXhtbENoZWNrVVRGOChzdHIpKSB7CisJICAgIHhtbERlYnVnRXJyMyhjdHh0LCBYTUxfQ0hFQ0tfTk9UX1VURjgsCisJCQkgIlN0cmluZyBpcyBub3QgVVRGLTggJXMiLCAoY29uc3QgY2hhciAqKSBzdHIpOworCX0KKyAgICB9Cit9CisKKy8qKgorICogeG1sQ3R4dENoZWNrTmFtZToKKyAqIEBjdHh0OiB0aGUgZGVidWcgY29udGV4dAorICogQG5hbWU6IHRoZSBuYW1lCisgKgorICogRG8gZGVidWdnaW5nIG9uIHRoZSBuYW1lLCBmb3IgZXhhbXBsZSB0aGUgZGljdGlvbm5hcnkgc3RhdHVzIGFuZAorICogY29uZm9ybWFuY2UgdG8gdGhlIE5hbWUgcHJvZHVjdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK3htbEN0eHRDaGVja05hbWUoeG1sRGVidWdDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKiBuYW1lKQoreworICAgIGlmIChjdHh0LT5jaGVjaykgeworCWlmIChuYW1lID09IE5VTEwpIHsKKwkgICAgeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX05PX05BTUUsICJOYW1lIGlzIE5VTEwiKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICAgICAgaWYgKHhtbFZhbGlkYXRlTmFtZShuYW1lLCAwKSkgeworCSAgICB4bWxEZWJ1Z0VycjMoY3R4dCwgWE1MX0NIRUNLX05PVF9OQ05BTUUsCisJCQkgIk5hbWUgaXMgbm90IGFuIE5DTmFtZSAnJXMnIiwgKGNvbnN0IGNoYXIgKikgbmFtZSk7CisJfQorCWlmICgoY3R4dC0+ZGljdCAhPSBOVUxMKSAmJgorCSAgICAoIXhtbERpY3RPd25zKGN0eHQtPmRpY3QsIG5hbWUpKSAmJgorICAgICAgICAgICAgKChjdHh0LT5kb2MgPT0gTlVMTCkgfHwKKyAgICAgICAgICAgICAoKGN0eHQtPmRvYy0+cGFyc2VGbGFncyAmIChYTUxfUEFSU0VfU0FYMSB8IFhNTF9QQVJTRV9OT0RJQ1QpKSA9PSAwKSkpIHsKKwkgICAgeG1sRGVidWdFcnIzKGN0eHQsIFhNTF9DSEVDS19PVVRTSURFX0RJQ1QsCisJCQkgIk5hbWUgaXMgbm90IGZyb20gdGhlIGRvY3VtZW50IGRpY3Rpb25uYXJ5ICclcyciLAorCQkJIChjb25zdCBjaGFyICopIG5hbWUpOworCX0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxDdHh0R2VuZXJpY05vZGVDaGVjayh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisKKyAgICBkb2MgPSBub2RlLT5kb2M7CisKKyAgICBpZiAobm9kZS0+cGFyZW50ID09IE5VTEwpCisgICAgICAgIHhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT19QQVJFTlQsCisJICAgICAgICAgICAgIk5vZGUgaGFzIG5vIHBhcmVudFxuIik7CisgICAgaWYgKG5vZGUtPmRvYyA9PSBOVUxMKSB7CisgICAgICAgIHhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT19ET0MsCisJICAgICAgICAgICAgIk5vZGUgaGFzIG5vIGRvY1xuIik7CisgICAgICAgIGRpY3QgPSBOVUxMOworICAgIH0gZWxzZSB7CisJZGljdCA9IGRvYy0+ZGljdDsKKwlpZiAoKGRpY3QgPT0gTlVMTCkgJiYgKGN0eHQtPm5vZGljdCA9PSAwKSkgeworI2lmIDAKKyAgICAgICAgICAgIC8qIGRlc2FjdGl2YXRlZCByaWdodCBub3cgYXMgaXQgcmFpc2VzIHRvbyBtYW55IGVycm9ycyAqLworCSAgICBpZiAoZG9jLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKQorCQl4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfTk9fRElDVCwKKwkJCSAgICAiRG9jdW1lbnQgaGFzIG5vIGRpY3Rpb25uYXJ5XG4iKTsKKyNlbmRpZgorCSAgICBjdHh0LT5ub2RpY3QgPSAxOworCX0KKwlpZiAoY3R4dC0+ZG9jID09IE5VTEwpCisJICAgIGN0eHQtPmRvYyA9IGRvYzsKKworCWlmIChjdHh0LT5kaWN0ID09IE5VTEwpIHsKKwkgICAgY3R4dC0+ZGljdCA9IGRpY3Q7CisJfQorICAgIH0KKyAgICBpZiAoKG5vZGUtPnBhcmVudCAhPSBOVUxMKSAmJiAobm9kZS0+ZG9jICE9IG5vZGUtPnBhcmVudC0+ZG9jKSAmJgorICAgICAgICAoIXhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJwc2V1ZG9yb290IikpKQorICAgICAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfV1JPTkdfRE9DLAorCSAgICAgICAgICAgICJOb2RlIGRvYyBkaWZmZXJzIGZyb20gcGFyZW50J3Mgb25lXG4iKTsKKyAgICBpZiAobm9kZS0+cHJldiA9PSBOVUxMKSB7CisgICAgICAgIGlmIChub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCSAgICBpZiAoKG5vZGUtPnBhcmVudCAhPSBOVUxMKSAmJgorCSAgICAgICAgKG5vZGUgIT0gKHhtbE5vZGVQdHIpIG5vZGUtPnBhcmVudC0+cHJvcGVydGllcykpCisJCXhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT19QUkVWLAorICAgICAgICAgICAgICAgICAgICAiQXR0ciBoYXMgbm8gcHJldiBhbmQgbm90IGZpcnN0IG9mIGF0dHIgbGlzdFxuIik7CisJICAgICAgICAKKyAgICAgICAgfSBlbHNlIGlmICgobm9kZS0+cGFyZW50ICE9IE5VTEwpICYmIChub2RlLT5wYXJlbnQtPmNoaWxkcmVuICE9IG5vZGUpKQorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfTk9fUFJFViwKKyAgICAgICAgICAgICAgICAgICAgIk5vZGUgaGFzIG5vIHByZXYgYW5kIG5vdCBmaXJzdCBvZiBwYXJlbnQgbGlzdFxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG5vZGUtPnByZXYtPm5leHQgIT0gbm9kZSkKKwkgICAgeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX1dST05HX1BSRVYsCisgICAgICAgICAgICAgICAgICAgICAgICAiTm9kZSBwcmV2LT5uZXh0IDogYmFjayBsaW5rIHdyb25nXG4iKTsKKyAgICB9CisgICAgaWYgKG5vZGUtPm5leHQgPT0gTlVMTCkgeworCWlmICgobm9kZS0+cGFyZW50ICE9IE5VTEwpICYmIChub2RlLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkgJiYKKwkgICAgKG5vZGUtPnBhcmVudC0+bGFzdCAhPSBub2RlKSAmJgorCSAgICAobm9kZS0+cGFyZW50LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKQorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfTk9fTkVYVCwKKyAgICAgICAgICAgICAgICAgICAgIk5vZGUgaGFzIG5vIG5leHQgYW5kIG5vdCBsYXN0IG9mIHBhcmVudCBsaXN0XG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobm9kZS0+bmV4dC0+cHJldiAhPSBub2RlKQorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfV1JPTkdfTkVYVCwKKyAgICAgICAgICAgICAgICAgICAgIk5vZGUgbmV4dC0+cHJldiA6IGZvcndhcmQgbGluayB3cm9uZ1xuIik7CisgICAgICAgIGlmIChub2RlLT5uZXh0LT5wYXJlbnQgIT0gbm9kZS0+cGFyZW50KQorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfV1JPTkdfUEFSRU5ULAorICAgICAgICAgICAgICAgICAgICAiTm9kZSBuZXh0LT5wcmV2IDogZm9yd2FyZCBsaW5rIHdyb25nXG4iKTsKKyAgICB9CisgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworICAgICAgICB4bWxOc1B0ciBuczsKKworCW5zID0gbm9kZS0+bnNEZWY7CisJd2hpbGUgKG5zICE9IE5VTEwpIHsKKwkgICAgeG1sQ3R4dE5zQ2hlY2tTY29wZShjdHh0LCBub2RlLCBucyk7CisJICAgIG5zID0gbnMtPm5leHQ7CisJfQorCWlmIChub2RlLT5ucyAhPSBOVUxMKQorCSAgICB4bWxDdHh0TnNDaGVja1Njb3BlKGN0eHQsIG5vZGUsIG5vZGUtPm5zKTsKKyAgICB9IGVsc2UgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJaWYgKG5vZGUtPm5zICE9IE5VTEwpCisJICAgIHhtbEN0eHROc0NoZWNrU2NvcGUoY3R4dCwgbm9kZSwgbm9kZS0+bnMpOworICAgIH0KKworICAgIGlmICgobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9ERUNMKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfREVDTCkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfRFREX05PREUpICYmCisJKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfREVDTCkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9ET0NVTUVOVF9OT0RFKSkgeworCWlmIChub2RlLT5jb250ZW50ICE9IE5VTEwpCisJICAgIHhtbEN0eHRDaGVja1N0cmluZyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSBub2RlLT5jb250ZW50KTsKKyAgICB9CisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJICAgIHhtbEN0eHRDaGVja05hbWUoY3R4dCwgbm9kZS0+bmFtZSk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisJICAgIGlmICgobm9kZS0+bmFtZSA9PSB4bWxTdHJpbmdUZXh0KSB8fAorCSAgICAgICAgKG5vZGUtPm5hbWUgPT0geG1sU3RyaW5nVGV4dE5vZW5jKSkKKwkJYnJlYWs7CisJICAgIC8qIHNvbWUgY2FzZSBvZiBlbnRpdHkgc3Vic3RpdHV0aW9uIGNhbiBsZWFkIHRvIHRoaXMgKi8KKwkgICAgaWYgKChjdHh0LT5kaWN0ICE9IE5VTEwpICYmCisJICAgICAgICAobm9kZS0+bmFtZSA9PSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJuYmt0ZXh0IiwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3KSkpCisJCWJyZWFrOworCisJICAgIHhtbERlYnVnRXJyMyhjdHh0LCBYTUxfQ0hFQ0tfV1JPTkdfTkFNRSwKKwkJCSAiVGV4dCBub2RlIGhhcyB3cm9uZyBuYW1lICclcyciLAorCQkJIChjb25zdCBjaGFyICopIG5vZGUtPm5hbWUpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICBpZiAobm9kZS0+bmFtZSA9PSB4bWxTdHJpbmdDb21tZW50KQorCQlicmVhazsKKwkgICAgeG1sRGVidWdFcnIzKGN0eHQsIFhNTF9DSEVDS19XUk9OR19OQU1FLAorCQkJICJDb21tZW50IG5vZGUgaGFzIHdyb25nIG5hbWUgJyVzJyIsCisJCQkgKGNvbnN0IGNoYXIgKikgbm9kZS0+bmFtZSk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorCSAgICB4bWxDdHh0Q2hlY2tOYW1lKGN0eHQsIG5vZGUtPm5hbWUpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCSAgICBpZiAobm9kZS0+bmFtZSA9PSBOVUxMKQorCQlicmVhazsKKwkgICAgeG1sRGVidWdFcnIzKGN0eHQsIFhNTF9DSEVDS19OQU1FX05PVF9OVUxMLAorCQkJICJDRGF0YSBzZWN0aW9uIGhhcyBub24gTlVMTCBuYW1lICclcyciLAorCQkJIChjb25zdCBjaGFyICopIG5vZGUtPm5hbWUpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorCSAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcFN0cmluZyh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqIHN0cikKK3sKKyAgICBpbnQgaTsKKworICAgIGlmIChjdHh0LT5jaGVjaykgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8qIFRPRE86IGNoZWNrIFVURjggY29udGVudCBvZiB0aGUgc3RyaW5nICovCisgICAgaWYgKHN0ciA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiKE5VTEwpIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IDQwOyBpKyspCisgICAgICAgIGlmIChzdHJbaV0gPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZWxzZSBpZiAoSVNfQkxBTktfQ0goc3RyW2ldKSkKKyAgICAgICAgICAgIGZwdXRjKCcgJywgY3R4dC0+b3V0cHV0KTsKKyAgICAgICAgZWxzZSBpZiAoc3RyW2ldID49IDB4ODApCisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiMlWCIsIHN0cltpXSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZwdXRjKHN0cltpXSwgY3R4dC0+b3V0cHV0KTsKKyAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIi4uLiIpOworfQorCitzdGF0aWMgdm9pZAoreG1sQ3R4dER1bXBEdGROb2RlKHhtbERlYnVnQ3R4dFB0ciBjdHh0LCB4bWxEdGRQdHIgZHRkKQoreworICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworCisgICAgaWYgKGR0ZCA9PSBOVUxMKSB7CisgICAgICAgIGlmICghY3R4dC0+Y2hlY2spCisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkRURCBub2RlIGlzIE5VTExcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGR0ZC0+dHlwZSAhPSBYTUxfRFREX05PREUpIHsKKwl4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfTk9UX0RURCwKKwkgICAgICAgICAgICAiTm9kZSBpcyBub3QgYSBEVEQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgIGlmIChkdGQtPm5hbWUgIT0gTlVMTCkKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiRFREKCVzKSIsIChjaGFyICopIGR0ZC0+bmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiRFREIik7CisgICAgICAgIGlmIChkdGQtPkV4dGVybmFsSUQgIT0gTlVMTCkKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiLCBQVUJMSUMgJXMiLCAoY2hhciAqKSBkdGQtPkV4dGVybmFsSUQpOworICAgICAgICBpZiAoZHRkLT5TeXN0ZW1JRCAhPSBOVUxMKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIsIFNZU1RFTSAlcyIsIChjaGFyICopIGR0ZC0+U3lzdGVtSUQpOworICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlxuIik7CisgICAgfQorICAgIC8qCisgICAgICogRG8gYSBiaXQgb2YgY2hlY2tpbmcKKyAgICAgKi8KKyAgICB4bWxDdHh0R2VuZXJpY05vZGVDaGVjayhjdHh0LCAoeG1sTm9kZVB0cikgZHRkKTsKK30KKworc3RhdGljIHZvaWQKK3htbEN0eHREdW1wQXR0ckRlY2woeG1sRGVidWdDdHh0UHRyIGN0eHQsIHhtbEF0dHJpYnV0ZVB0ciBhdHRyKQoreworICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworCisgICAgaWYgKGF0dHIgPT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJBdHRyaWJ1dGUgZGVjbGFyYXRpb24gaXMgTlVMTFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGF0dHItPnR5cGUgIT0gWE1MX0FUVFJJQlVURV9ERUNMKSB7CisJeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX05PVF9BVFRSX0RFQ0wsCisJICAgICAgICAgICAgIk5vZGUgaXMgbm90IGFuIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChhdHRyLT5uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiQVRUUkRFQ0woJXMpIiwgKGNoYXIgKikgYXR0ci0+bmFtZSk7CisgICAgfSBlbHNlCisJeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX05PX05BTUUsCisJICAgICAgICAgICAgIk5vZGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGhhcyBubyBuYW1lIik7CisgICAgaWYgKGF0dHItPmVsZW0gIT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgZm9yICVzIiwgKGNoYXIgKikgYXR0ci0+ZWxlbSk7CisgICAgfSBlbHNlCisJeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX05PX0VMRU0sCisJICAgICAgICAgICAgIk5vZGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGhhcyBubyBlbGVtZW50IG5hbWUiKTsKKyAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgIHN3aXRjaCAoYXR0ci0+YXR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9DREFUQToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiBDREFUQSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0lEOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIElEIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfSURSRUY6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgSURSRUYiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9JRFJFRlM6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgSURSRUZTIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfRU5USVRZOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIEVOVElUWSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0VOVElUSUVTOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIEVOVElUSUVTIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk1UT0tFTjoKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiBOTVRPS0VOIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk1UT0tFTlM6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgTk1UT0tFTlMiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTjoKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiBFTlVNRVJBVElPTiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PVEFUSU9OOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIE5PVEFUSU9OICIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChhdHRyLT50cmVlICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGludCBpbmR4OworICAgICAgICAgICAgeG1sRW51bWVyYXRpb25QdHIgY3VyID0gYXR0ci0+dHJlZTsKKworICAgICAgICAgICAgZm9yIChpbmR4ID0gMDsgaW5keCA8IDU7IGluZHgrKykgeworICAgICAgICAgICAgICAgIGlmIChpbmR4ICE9IDApCisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAifCVzIiwgKGNoYXIgKikgY3VyLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiICglcyIsIChjaGFyICopIGN1ci0+bmFtZSk7CisgICAgICAgICAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIpIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIuLi4pIik7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChhdHRyLT5kZWYpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT05FOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX1JFUVVJUkVEOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIFJFUVVJUkVEIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfSU1QTElFRDoKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiBJTVBMSUVEIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfRklYRUQ6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgRklYRUQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXR0ci0+ZGVmYXVsdFZhbHVlICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXCIiKTsKKyAgICAgICAgICAgIHhtbEN0eHREdW1wU3RyaW5nKGN0eHQsIGF0dHItPmRlZmF1bHRWYWx1ZSk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlwiIik7CisgICAgICAgIH0KKyAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcbiIpOworICAgIH0KKworICAgIC8qCisgICAgICogRG8gYSBiaXQgb2YgY2hlY2tpbmcKKyAgICAgKi8KKyAgICB4bWxDdHh0R2VuZXJpY05vZGVDaGVjayhjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcEVsZW1EZWNsKHhtbERlYnVnQ3R4dFB0ciBjdHh0LCB4bWxFbGVtZW50UHRyIGVsZW0pCit7CisgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisKKyAgICBpZiAoZWxlbSA9PSBOVUxMKSB7CisgICAgICAgIGlmICghY3R4dC0+Y2hlY2spCisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVsZW1lbnQgZGVjbGFyYXRpb24gaXMgTlVMTFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGVsZW0tPnR5cGUgIT0gWE1MX0VMRU1FTlRfREVDTCkgeworCXhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT1RfRUxFTV9ERUNMLAorCSAgICAgICAgICAgICJOb2RlIGlzIG5vdCBhbiBlbGVtZW50IGRlY2xhcmF0aW9uIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGVsZW0tPm5hbWUgIT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVMRU1ERUNMKCIpOworICAgICAgICAgICAgeG1sQ3R4dER1bXBTdHJpbmcoY3R4dCwgZWxlbS0+bmFtZSk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIikiKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorCXhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT19OQU1FLAorCSAgICAgICAgICAgICJFbGVtZW50IGRlY2xhcmF0aW9uIGhhcyBubyBuYW1lIik7CisgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICBzd2l0Y2ggKGVsZW0tPmV0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiLCBVTkRFRklORUQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfVFlQRV9FTVBUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiwgRU1QVFkiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfVFlQRV9BTlk6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIsIEFOWSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9UWVBFX01JWEVEOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiLCBNSVhFRCAiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiLCBNSVhFRCAiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGVsZW0tPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKGVsZW0tPmNvbnRlbnQgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgIGNoYXIgYnVmWzUwMDFdOworCisgICAgICAgICAgICBidWZbMF0gPSAwOworICAgICAgICAgICAgeG1sU25wcmludGZFbGVtZW50Q29udGVudChidWYsIDUwMDAsIGVsZW0tPmNvbnRlbnQsIDEpOworICAgICAgICAgICAgYnVmWzUwMDBdID0gMDsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiJXMiLCBidWYpOworICAgICAgICB9CisgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXG4iKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIERvIGEgYml0IG9mIGNoZWNraW5nCisgICAgICovCisgICAgeG1sQ3R4dEdlbmVyaWNOb2RlQ2hlY2soY3R4dCwgKHhtbE5vZGVQdHIpIGVsZW0pOworfQorCitzdGF0aWMgdm9pZAoreG1sQ3R4dER1bXBFbnRpdHlEZWNsKHhtbERlYnVnQ3R4dFB0ciBjdHh0LCB4bWxFbnRpdHlQdHIgZW50KQoreworICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworCisgICAgaWYgKGVudCA9PSBOVUxMKSB7CisgICAgICAgIGlmICghY3R4dC0+Y2hlY2spCisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVudGl0eSBkZWNsYXJhdGlvbiBpcyBOVUxMXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZW50LT50eXBlICE9IFhNTF9FTlRJVFlfREVDTCkgeworCXhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT1RfRU5USVRZX0RFQ0wsCisJICAgICAgICAgICAgIk5vZGUgaXMgbm90IGFuIGVudGl0eSBkZWNsYXJhdGlvbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChlbnQtPm5hbWUgIT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVOVElUWURFQ0woIik7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBlbnQtPm5hbWUpOworICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIpIik7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKwl4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfTk9fTkFNRSwKKwkgICAgICAgICAgICAiRW50aXR5IGRlY2xhcmF0aW9uIGhhcyBubyBuYW1lIik7CisgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICBzd2l0Y2ggKGVudC0+ZXR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiLCBpbnRlcm5hbFxuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFk6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIsIGV4dGVybmFsIHBhcnNlZFxuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiwgdW5wYXJzZWRcbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiwgcGFyYW1ldGVyXG4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIsIGV4dGVybmFsIHBhcmFtZXRlclxuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiwgcHJlZGVmaW5lZFxuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVudC0+RXh0ZXJuYWxJRCkgeworICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiBFeHRlcm5hbElEPSVzXG4iLAorICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSBlbnQtPkV4dGVybmFsSUQpOworICAgICAgICB9CisgICAgICAgIGlmIChlbnQtPlN5c3RlbUlEKSB7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIFN5c3RlbUlEPSVzXG4iLAorICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSBlbnQtPlN5c3RlbUlEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW50LT5VUkkgIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiBVUkk9JXNcbiIsIChjaGFyICopIGVudC0+VVJJKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW50LT5jb250ZW50KSB7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIGNvbnRlbnQ9Iik7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBlbnQtPmNvbnRlbnQpOworICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBEbyBhIGJpdCBvZiBjaGVja2luZworICAgICAqLworICAgIHhtbEN0eHRHZW5lcmljTm9kZUNoZWNrKGN0eHQsICh4bWxOb2RlUHRyKSBlbnQpOworfQorCitzdGF0aWMgdm9pZAoreG1sQ3R4dER1bXBOYW1lc3BhY2UoeG1sRGVidWdDdHh0UHRyIGN0eHQsIHhtbE5zUHRyIG5zKQoreworICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworCisgICAgaWYgKG5zID09IE5VTEwpIHsKKyAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAibmFtZXNwYWNlIG5vZGUgaXMgTlVMTFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG5zLT50eXBlICE9IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCXhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT1RfTlNfREVDTCwKKwkgICAgICAgICAgICAiTm9kZSBpcyBub3QgYSBuYW1lc3BhY2UgZGVjbGFyYXRpb24iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobnMtPmhyZWYgPT0gTlVMTCkgeworICAgICAgICBpZiAobnMtPnByZWZpeCAhPSBOVUxMKQorCSAgICB4bWxEZWJ1Z0VycjMoY3R4dCwgWE1MX0NIRUNLX05PX0hSRUYsCisgICAgICAgICAgICAgICAgICAgICJJbmNvbXBsZXRlIG5hbWVzcGFjZSAlcyBocmVmPU5VTExcbiIsCisgICAgICAgICAgICAgICAgICAgIChjaGFyICopIG5zLT5wcmVmaXgpOworICAgICAgICBlbHNlCisJICAgIHhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT19IUkVGLAorICAgICAgICAgICAgICAgICAgICAiSW5jb21wbGV0ZSBkZWZhdWx0IG5hbWVzcGFjZSBocmVmPU5VTExcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgIGlmIChucy0+cHJlZml4ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJuYW1lc3BhY2UgJXMgaHJlZj0iLAorICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgbnMtPnByZWZpeCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJkZWZhdWx0IG5hbWVzcGFjZSBocmVmPSIpOworCisgICAgICAgICAgICB4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBucy0+aHJlZik7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlxuIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcE5hbWVzcGFjZUxpc3QoeG1sRGVidWdDdHh0UHRyIGN0eHQsIHhtbE5zUHRyIG5zKQoreworICAgIHdoaWxlIChucyAhPSBOVUxMKSB7CisgICAgICAgIHhtbEN0eHREdW1wTmFtZXNwYWNlKGN0eHQsIG5zKTsKKyAgICAgICAgbnMgPSBucy0+bmV4dDsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcEVudGl0eSh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgeG1sRW50aXR5UHRyIGVudCkKK3sKKyAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKworICAgIGlmIChlbnQgPT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFbnRpdHkgaXMgTlVMTFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICBzd2l0Y2ggKGVudC0+ZXR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiSU5URVJOQUxfR0VORVJBTF9FTlRJVFkgIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFk6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFkgIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZICIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIklOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFkgIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZOgorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWSAiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFTlRJVFlfJWQgISAiLCAoaW50KSBlbnQtPmV0eXBlKTsKKyAgICAgICAgfQorICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiVzXG4iLCBlbnQtPm5hbWUpOworICAgICAgICBpZiAoZW50LT5FeHRlcm5hbElEKSB7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiRXh0ZXJuYWxJRD0lc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgZW50LT5FeHRlcm5hbElEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW50LT5TeXN0ZW1JRCkgeworICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlN5c3RlbUlEPSVzXG4iLCAoY2hhciAqKSBlbnQtPlN5c3RlbUlEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW50LT5VUkkpIHsKKyAgICAgICAgICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJVUkk9JXNcbiIsIChjaGFyICopIGVudC0+VVJJKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW50LT5jb250ZW50KSB7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiY29udGVudD0iKTsKKyAgICAgICAgICAgIHhtbEN0eHREdW1wU3RyaW5nKGN0eHQsIGVudC0+Y29udGVudCk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlxuIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogeG1sQ3R4dER1bXBBdHRyOgorICogQG91dHB1dDogIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQKKyAqIEBhdHRyOiAgdGhlIGF0dHJpYnV0ZQorICogQGRlcHRoOiAgdGhlIGluZGVudGF0aW9uIGxldmVsLgorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgYXR0cmlidXRlCisgKi8KK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcEF0dHIoeG1sRGVidWdDdHh0UHRyIGN0eHQsIHhtbEF0dHJQdHIgYXR0cikKK3sKKyAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKworICAgIGlmIChhdHRyID09IE5VTEwpIHsKKyAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiQXR0ciBpcyBOVUxMIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkFUVFJJQlVURSAiKTsKKwl4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBhdHRyLT5uYW1lKTsKKyAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcbiIpOworICAgICAgICBpZiAoYXR0ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgY3R4dC0+ZGVwdGgrKzsKKyAgICAgICAgICAgIHhtbEN0eHREdW1wTm9kZUxpc3QoY3R4dCwgYXR0ci0+Y2hpbGRyZW4pOworICAgICAgICAgICAgY3R4dC0+ZGVwdGgtLTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoYXR0ci0+bmFtZSA9PSBOVUxMKQorCXhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19OT19OQU1FLAorCSAgICAgICAgICAgICJBdHRyaWJ1dGUgaGFzIG5vIG5hbWUiKTsKKworICAgIC8qCisgICAgICogRG8gYSBiaXQgb2YgY2hlY2tpbmcKKyAgICAgKi8KKyAgICB4bWxDdHh0R2VuZXJpY05vZGVDaGVjayhjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7Cit9CisKKy8qKgorICogeG1sQ3R4dER1bXBBdHRyTGlzdDoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAYXR0cjogIHRoZSBhdHRyaWJ1dGUgbGlzdAorICogQGRlcHRoOiAgdGhlIGluZGVudGF0aW9uIGxldmVsLgorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgYXR0cmlidXRlIGxpc3QKKyAqLworc3RhdGljIHZvaWQKK3htbEN0eHREdW1wQXR0ckxpc3QoeG1sRGVidWdDdHh0UHRyIGN0eHQsIHhtbEF0dHJQdHIgYXR0cikKK3sKKyAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisgICAgICAgIHhtbEN0eHREdW1wQXR0cihjdHh0LCBhdHRyKTsKKyAgICAgICAgYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbEN0eHREdW1wT25lTm9kZToKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAbm9kZTogIHRoZSBub2RlCisgKiBAZGVwdGg6ICB0aGUgaW5kZW50YXRpb24gbGV2ZWwuCisgKgorICogRHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBlbGVtZW50IG5vZGUsIGl0IGlzIG5vdCByZWN1cnNpdmUKKyAqLworc3RhdGljIHZvaWQKK3htbEN0eHREdW1wT25lTm9kZSh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGlmIChub2RlID09IE5VTEwpIHsKKyAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIm5vZGUgaXMgTlVMTFxuIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjdHh0LT5ub2RlID0gbm9kZTsKKworICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFTEVNRU5UICIpOworICAgICAgICAgICAgICAgIGlmICgobm9kZS0+bnMgIT0gTlVMTCkgJiYgKG5vZGUtPm5zLT5wcmVmaXggIT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sQ3R4dER1bXBTdHJpbmcoY3R4dCwgbm9kZS0+bnMtPnByZWZpeCk7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiOiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBub2RlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisgICAgICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFcnJvciwgQVRUUklCVVRFIGZvdW5kIGhlcmVcbiIpOworICAgICAgICAgICAgeG1sQ3R4dEdlbmVyaWNOb2RlQ2hlY2soY3R4dCwgbm9kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+bmFtZSA9PSAoY29uc3QgeG1sQ2hhciAqKSB4bWxTdHJpbmdUZXh0Tm9lbmMpCisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiVEVYVCBubyBlbmMiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiVEVYVCIpOworCQlpZiAoY3R4dC0+b3B0aW9ucyAmIERVTVBfVEVYVF9UWVBFKSB7CisJCSAgICBpZiAobm9kZS0+Y29udGVudCA9PSAoeG1sQ2hhciAqKSAmKG5vZGUtPnByb3BlcnRpZXMpKQorCQkJZnByaW50ZihjdHh0LT5vdXRwdXQsICIgY29tcGFjdFxuIik7CisJCSAgICBlbHNlIGlmICh4bWxEaWN0T3ducyhjdHh0LT5kaWN0LCBub2RlLT5jb250ZW50KSA9PSAxKQorCQkJZnByaW50ZihjdHh0LT5vdXRwdXQsICIgaW50ZXJuZWRcbiIpOworCQkgICAgZWxzZQorCQkJZnByaW50ZihjdHh0LT5vdXRwdXQsICJcbiIpOworCQl9IGVsc2UKKwkJICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJDREFUQV9TRUNUSU9OXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFTlRJVFlfUkVGKCVzKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICAgICAgICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiRU5USVRZXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICAgICAgICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiUEkgJXNcbiIsIChjaGFyICopIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkNPTU1FTlRcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiRXJyb3IsIERPQ1VNRU5UIGZvdW5kIGhlcmVcbiIpOworICAgICAgICAgICAgeG1sQ3R4dEdlbmVyaWNOb2RlQ2hlY2soY3R4dCwgbm9kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkRPQ1VNRU5UX1RZUEVcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkRPQ1VNRU5UX0ZSQUdcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisgICAgICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKSB7CisgICAgICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJOT1RBVElPTlxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRFREX05PREU6CisgICAgICAgICAgICB4bWxDdHh0RHVtcER0ZE5vZGUoY3R4dCwgKHhtbER0ZFB0cikgbm9kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKyAgICAgICAgICAgIHhtbEN0eHREdW1wRWxlbURlY2woY3R4dCwgKHhtbEVsZW1lbnRQdHIpIG5vZGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgICAgIHhtbEN0eHREdW1wQXR0ckRlY2woY3R4dCwgKHhtbEF0dHJpYnV0ZVB0cikgbm9kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorICAgICAgICAgICAgeG1sQ3R4dER1bXBFbnRpdHlEZWNsKGN0eHQsICh4bWxFbnRpdHlQdHIpIG5vZGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKyAgICAgICAgICAgIHhtbEN0eHREdW1wTmFtZXNwYWNlKGN0eHQsICh4bWxOc1B0cikgbm9kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICAgICAgICAgIHhtbEN0eHREdW1wU3BhY2VzKGN0eHQpOworICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiSU5DTFVERSBTVEFSVFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIklOQ0xVREUgRU5EXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spCisgICAgICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisJICAgIHhtbERlYnVnRXJyMihjdHh0LCBYTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFLAorCSAgICAgICAgICAgICAgICAiVW5rbm93biBub2RlIHR5cGUgJWRcbiIsIG5vZGUtPnR5cGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobm9kZS0+ZG9jID09IE5VTEwpIHsKKyAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgIH0KKyAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJQQk06IGRvYyA9PSBOVUxMICEhIVxuIik7CisgICAgfQorICAgIGN0eHQtPmRlcHRoKys7CisgICAgaWYgKChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmIChub2RlLT5uc0RlZiAhPSBOVUxMKSkKKyAgICAgICAgeG1sQ3R4dER1bXBOYW1lc3BhY2VMaXN0KGN0eHQsIG5vZGUtPm5zRGVmKTsKKyAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKG5vZGUtPnByb3BlcnRpZXMgIT0gTlVMTCkpCisgICAgICAgIHhtbEN0eHREdW1wQXR0ckxpc3QoY3R4dCwgbm9kZS0+cHJvcGVydGllcyk7CisgICAgaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgeworICAgICAgICBpZiAoKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKG5vZGUtPmNvbnRlbnQgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgICAgICAgICB4bWxDdHh0RHVtcFNwYWNlcyhjdHh0KTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgImNvbnRlbnQ9Iik7CisgICAgICAgICAgICAgICAgeG1sQ3R4dER1bXBTdHJpbmcoY3R4dCwgbm9kZS0+Y29udGVudCk7CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sRW50aXR5UHRyIGVudDsKKworICAgICAgICBlbnQgPSB4bWxHZXREb2NFbnRpdHkobm9kZS0+ZG9jLCBub2RlLT5uYW1lKTsKKyAgICAgICAgaWYgKGVudCAhPSBOVUxMKQorICAgICAgICAgICAgeG1sQ3R4dER1bXBFbnRpdHkoY3R4dCwgZW50KTsKKyAgICB9CisgICAgY3R4dC0+ZGVwdGgtLTsKKworICAgIC8qCisgICAgICogRG8gYSBiaXQgb2YgY2hlY2tpbmcKKyAgICAgKi8KKyAgICB4bWxDdHh0R2VuZXJpY05vZGVDaGVjayhjdHh0LCBub2RlKTsKK30KKworLyoqCisgKiB4bWxDdHh0RHVtcE5vZGU6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQG5vZGU6ICB0aGUgbm9kZQorICogQGRlcHRoOiAgdGhlIGluZGVudGF0aW9uIGxldmVsLgorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgZWxlbWVudCBub2RlLCBpdCBpcyByZWN1cnNpdmUKKyAqLworc3RhdGljIHZvaWQKK3htbEN0eHREdW1wTm9kZSh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGlmIChub2RlID09IE5VTEwpIHsKKyAgICAgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICAgICAgeG1sQ3R4dER1bXBTcGFjZXMoY3R4dCk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIm5vZGUgaXMgTlVMTFxuIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB4bWxDdHh0RHVtcE9uZU5vZGUoY3R4dCwgbm9kZSk7CisgICAgaWYgKChub2RlLT50eXBlICE9IFhNTF9OQU1FU1BBQ0VfREVDTCkgJiYgCisgICAgICAgIChub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSAmJiAobm9kZS0+dHlwZSAhPSBYTUxfRU5USVRZX1JFRl9OT0RFKSkgeworICAgICAgICBjdHh0LT5kZXB0aCsrOworICAgICAgICB4bWxDdHh0RHVtcE5vZGVMaXN0KGN0eHQsIG5vZGUtPmNoaWxkcmVuKTsKKyAgICAgICAgY3R4dC0+ZGVwdGgtLTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sQ3R4dER1bXBOb2RlTGlzdDoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAbm9kZTogIHRoZSBub2RlIGxpc3QKKyAqIEBkZXB0aDogIHRoZSBpbmRlbnRhdGlvbiBsZXZlbC4KKyAqCisgKiBEdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGxpc3Qgb2YgZWxlbWVudCBub2RlLCBpdCBpcyByZWN1cnNpdmUKKyAqLworc3RhdGljIHZvaWQKK3htbEN0eHREdW1wTm9kZUxpc3QoeG1sRGVidWdDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB3aGlsZSAobm9kZSAhPSBOVUxMKSB7CisgICAgICAgIHhtbEN0eHREdW1wTm9kZShjdHh0LCBub2RlKTsKKyAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAoreG1sQ3R4dER1bXBEb2NIZWFkKHhtbERlYnVnQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jKQoreworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJET0NVTUVOVCA9PSBOVUxMICFcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGN0eHQtPm5vZGUgPSAoeG1sTm9kZVB0cikgZG9jOworCisgICAgc3dpdGNoIChkb2MtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfRk9VTkRfRUxFTUVOVCwKKwkgICAgICAgICAgICAgICAgIk1pc3BsYWNlZCBFTEVNRU5UIG5vZGVcbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfRk9VTkRfQVRUUklCVVRFLAorCSAgICAgICAgICAgICAgICAiTWlzcGxhY2VkIEFUVFJJQlVURSBub2RlXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisJICAgIHhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19GT1VORF9URVhULAorCSAgICAgICAgICAgICAgICAiTWlzcGxhY2VkIFRFWFQgbm9kZVxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfRk9VTkRfQ0RBVEEsCisJICAgICAgICAgICAgICAgICJNaXNwbGFjZWQgQ0RBVEEgbm9kZVxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZUkVGLAorCSAgICAgICAgICAgICAgICAiTWlzcGxhY2VkIEVOVElUWVJFRiBub2RlXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKwkgICAgeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX0ZPVU5EX0VOVElUWSwKKwkgICAgICAgICAgICAgICAgIk1pc3BsYWNlZCBFTlRJVFkgbm9kZVxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKwkgICAgeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX0ZPVU5EX1BJLAorCSAgICAgICAgICAgICAgICAiTWlzcGxhY2VkIFBJIG5vZGVcbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkgICAgeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX0ZPVU5EX0NPTU1FTlQsCisJICAgICAgICAgICAgICAgICJNaXNwbGFjZWQgQ09NTUVOVCBub2RlXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorCSAgICBpZiAoIWN0eHQtPmNoZWNrKQorCQlmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkRPQ1VNRU5UXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisJICAgIGlmICghY3R4dC0+Y2hlY2spCisJCWZwcmludGYoY3R4dC0+b3V0cHV0LCAiSFRNTCBET0NVTUVOVFxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorCSAgICB4bWxEZWJ1Z0VycihjdHh0LCBYTUxfQ0hFQ0tfRk9VTkRfRE9DVFlQRSwKKwkgICAgICAgICAgICAgICAgIk1pc3BsYWNlZCBET0NUWVBFIG5vZGVcbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkgICAgeG1sRGVidWdFcnIoY3R4dCwgWE1MX0NIRUNLX0ZPVU5EX0ZSQUdNRU5ULAorCSAgICAgICAgICAgICAgICAiTWlzcGxhY2VkIEZSQUdNRU5UIG5vZGVcbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJICAgIHhtbERlYnVnRXJyKGN0eHQsIFhNTF9DSEVDS19GT1VORF9OT1RBVElPTiwKKwkgICAgICAgICAgICAgICAgIk1pc3BsYWNlZCBOT1RBVElPTiBub2RlXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorCSAgICB4bWxEZWJ1Z0VycjIoY3R4dCwgWE1MX0NIRUNLX1VOS05PV05fTk9ERSwKKwkgICAgICAgICAgICAgICAgIlVua25vd24gbm9kZSB0eXBlICVkXG4iLCBkb2MtPnR5cGUpOworICAgIH0KK30KKworLyoqCisgKiB4bWxDdHh0RHVtcERvY3VtZW50SGVhZDoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKgorICogRHVtcHMgZGVidWcgaW5mb3JtYXRpb24gY25jZXJuaW5nIHRoZSBkb2N1bWVudCwgbm90IHJlY3Vyc2l2ZQorICovCitzdGF0aWMgdm9pZAoreG1sQ3R4dER1bXBEb2N1bWVudEhlYWQoeG1sRGVidWdDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MpCit7CisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm47CisgICAgeG1sQ3R4dER1bXBEb2NIZWFkKGN0eHQsIGRvYyk7CisgICAgaWYgKCFjdHh0LT5jaGVjaykgeworICAgICAgICBpZiAoZG9jLT5uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAibmFtZT0iKTsKKyAgICAgICAgICAgIHhtbEN0eHREdW1wU3RyaW5nKGN0eHQsIEJBRF9DQVNUIGRvYy0+bmFtZSk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvYy0+dmVyc2lvbiAhPSBOVUxMKSB7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgInZlcnNpb249Iik7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBkb2MtPnZlcnNpb24pOworICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChkb2MtPmVuY29kaW5nICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiZW5jb2Rpbmc9Iik7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBkb2MtPmVuY29kaW5nKTsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZG9jLT5VUkwgIT0gTlVMTCkgeworICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJVUkw9Iik7CisgICAgICAgICAgICB4bWxDdHh0RHVtcFN0cmluZyhjdHh0LCBkb2MtPlVSTCk7CisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRvYy0+c3RhbmRhbG9uZSkKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAic3RhbmRhbG9uZT10cnVlXG4iKTsKKyAgICB9CisgICAgaWYgKGRvYy0+b2xkTnMgIT0gTlVMTCkKKyAgICAgICAgeG1sQ3R4dER1bXBOYW1lc3BhY2VMaXN0KGN0eHQsIGRvYy0+b2xkTnMpOworfQorCisvKioKKyAqIHhtbEN0eHREdW1wRG9jdW1lbnQ6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgZG9jdW1lbnQsIGl0J3MgcmVjdXJzaXZlCisgKi8KK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcERvY3VtZW50KHhtbERlYnVnQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jKQoreworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJET0NVTUVOVCA9PSBOVUxMICFcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHhtbEN0eHREdW1wRG9jdW1lbnRIZWFkKGN0eHQsIGRvYyk7CisgICAgaWYgKCgoZG9jLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorICAgICAgICAgKGRvYy0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkKKyAgICAgICAgJiYgKGRvYy0+Y2hpbGRyZW4gIT0gTlVMTCkpIHsKKyAgICAgICAgY3R4dC0+ZGVwdGgrKzsKKyAgICAgICAgeG1sQ3R4dER1bXBOb2RlTGlzdChjdHh0LCBkb2MtPmNoaWxkcmVuKTsKKyAgICAgICAgY3R4dC0+ZGVwdGgtLTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxDdHh0RHVtcEVudGl0eUNhbGxiYWNrKHhtbEVudGl0eVB0ciBjdXIsIHhtbERlYnVnQ3R4dFB0ciBjdHh0KQoreworICAgIGlmIChjdXIgPT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFbnRpdHkgaXMgTlVMTCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghY3R4dC0+Y2hlY2spIHsKKyAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIlcyA6ICIsIChjaGFyICopIGN1ci0+bmFtZSk7CisgICAgICAgIHN3aXRjaCAoY3VyLT5ldHlwZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFk6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJJTlRFUk5BTCBHRU5FUkFMLCAiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVYVEVSTkFMIFBBUlNFRCwgIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVYVEVSTkFMIFVOUEFSU0VELCAiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJJTlRFUk5BTCBQQVJBTUVURVIsICIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWToKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVYVEVSTkFMIFBBUkFNRVRFUiwgIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorCQl4bWxEZWJ1Z0VycjIoY3R4dCwgWE1MX0NIRUNLX0VOVElUWV9UWVBFLAorCQkJICAgICAiVW5rbm93biBlbnRpdHkgdHlwZSAlZFxuIiwgY3VyLT5ldHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN1ci0+RXh0ZXJuYWxJRCAhPSBOVUxMKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJJRCBcIiVzXCIiLCAoY2hhciAqKSBjdXItPkV4dGVybmFsSUQpOworICAgICAgICBpZiAoY3VyLT5TeXN0ZW1JRCAhPSBOVUxMKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJTWVNURU0gXCIlc1wiIiwgKGNoYXIgKikgY3VyLT5TeXN0ZW1JRCk7CisgICAgICAgIGlmIChjdXItPm9yaWcgIT0gTlVMTCkKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXG4gb3JpZyBcIiVzXCIiLCAoY2hhciAqKSBjdXItPm9yaWcpOworICAgICAgICBpZiAoKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5jb250ZW50ICE9IE5VTEwpKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcbiBjb250ZW50IFwiJXNcIiIsCisgICAgICAgICAgICAgICAgICAgIChjaGFyICopIGN1ci0+Y29udGVudCk7CisgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXG4iKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sQ3R4dER1bXBFbnRpdGllczoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKgorICogRHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIGFsbCB0aGUgZW50aXRpZXMgaW4gdXNlIGJ5IHRoZSBkb2N1bWVudAorICovCitzdGF0aWMgdm9pZAoreG1sQ3R4dER1bXBFbnRpdGllcyh4bWxEZWJ1Z0N0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYykKK3sKKyAgICBpZiAoZG9jID09IE5VTEwpIHJldHVybjsKKyAgICB4bWxDdHh0RHVtcERvY0hlYWQoY3R4dCwgZG9jKTsKKyAgICBpZiAoKGRvYy0+aW50U3Vic2V0ICE9IE5VTEwpICYmIChkb2MtPmludFN1YnNldC0+ZW50aXRpZXMgIT0gTlVMTCkpIHsKKyAgICAgICAgeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZSA9ICh4bWxFbnRpdGllc1RhYmxlUHRyKQorICAgICAgICAgICAgZG9jLT5pbnRTdWJzZXQtPmVudGl0aWVzOworCisgICAgICAgIGlmICghY3R4dC0+Y2hlY2spCisgICAgICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkVudGl0aWVzIGluIGludGVybmFsIHN1YnNldFxuIik7CisgICAgICAgIHhtbEhhc2hTY2FuKHRhYmxlLCAoeG1sSGFzaFNjYW5uZXIpIHhtbEN0eHREdW1wRW50aXR5Q2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgIGN0eHQpOworICAgIH0gZWxzZQorICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIk5vIGVudGl0aWVzIGluIGludGVybmFsIHN1YnNldFxuIik7CisgICAgaWYgKChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQtPmVudGl0aWVzICE9IE5VTEwpKSB7CisgICAgICAgIHhtbEVudGl0aWVzVGFibGVQdHIgdGFibGUgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikKKyAgICAgICAgICAgIGRvYy0+ZXh0U3Vic2V0LT5lbnRpdGllczsKKworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJFbnRpdGllcyBpbiBleHRlcm5hbCBzdWJzZXRcbiIpOworICAgICAgICB4bWxIYXNoU2Nhbih0YWJsZSwgKHhtbEhhc2hTY2FubmVyKSB4bWxDdHh0RHVtcEVudGl0eUNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICBjdHh0KTsKKyAgICB9IGVsc2UgaWYgKCFjdHh0LT5jaGVjaykKKyAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJObyBlbnRpdGllcyBpbiBleHRlcm5hbCBzdWJzZXRcbiIpOworfQorCisvKioKKyAqIHhtbEN0eHREdW1wRFREOgorICogQG91dHB1dDogIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQKKyAqIEBkdGQ6ICB0aGUgRFRECisgKgorICogRHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBEVEQKKyAqLworc3RhdGljIHZvaWQKK3htbEN0eHREdW1wRFREKHhtbERlYnVnQ3R4dFB0ciBjdHh0LCB4bWxEdGRQdHIgZHRkKQoreworICAgIGlmIChkdGQgPT0gTlVMTCkgeworICAgICAgICBpZiAoIWN0eHQtPmNoZWNrKQorICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJEVEQgaXMgTlVMTFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgeG1sQ3R4dER1bXBEdGROb2RlKGN0eHQsIGR0ZCk7CisgICAgaWYgKGR0ZC0+Y2hpbGRyZW4gPT0gTlVMTCkKKyAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgICAgRFREIGlzIGVtcHR5XG4iKTsKKyAgICBlbHNlIHsKKyAgICAgICAgY3R4dC0+ZGVwdGgrKzsKKyAgICAgICAgeG1sQ3R4dER1bXBOb2RlTGlzdChjdHh0LCBkdGQtPmNoaWxkcmVuKTsKKyAgICAgICAgY3R4dC0+ZGVwdGgtLTsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlQdWJsaWMgZW50cnkgcG9pbnRzIGZvciBkdW1wCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbERlYnVnRHVtcFN0cmluZzoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAc3RyOiAgdGhlIHN0cmluZworICoKKyAqIER1bXBzIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgc3RyaW5nLCBzaG9ydGVuIGl0IGlmIG5lY2Vzc2FyeQorICovCit2b2lkCit4bWxEZWJ1Z0R1bXBTdHJpbmcoRklMRSAqIG91dHB1dCwgY29uc3QgeG1sQ2hhciAqIHN0cikKK3sKKyAgICBpbnQgaTsKKworICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKwlvdXRwdXQgPSBzdGRvdXQ7CisgICAgaWYgKHN0ciA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiKE5VTEwpIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IDQwOyBpKyspCisgICAgICAgIGlmIChzdHJbaV0gPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZWxzZSBpZiAoSVNfQkxBTktfQ0goc3RyW2ldKSkKKyAgICAgICAgICAgIGZwdXRjKCcgJywgb3V0cHV0KTsKKyAgICAgICAgZWxzZSBpZiAoc3RyW2ldID49IDB4ODApCisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIiMlWCIsIHN0cltpXSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZwdXRjKHN0cltpXSwgb3V0cHV0KTsKKyAgICBmcHJpbnRmKG91dHB1dCwgIi4uLiIpOworfQorCisvKioKKyAqIHhtbERlYnVnRHVtcEF0dHI6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQGF0dHI6ICB0aGUgYXR0cmlidXRlCisgKiBAZGVwdGg6ICB0aGUgaW5kZW50YXRpb24gbGV2ZWwuCisgKgorICogRHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUKKyAqLwordm9pZAoreG1sRGVidWdEdW1wQXR0cihGSUxFICpvdXRwdXQsIHhtbEF0dHJQdHIgYXR0ciwgaW50IGRlcHRoKSB7CisgICAgeG1sRGVidWdDdHh0IGN0eHQ7CisKKyAgICBpZiAob3V0cHV0ID09IE5VTEwpIHJldHVybjsKKyAgICB4bWxDdHh0RHVtcEluaXRDdHh0KCZjdHh0KTsKKyAgICBjdHh0Lm91dHB1dCA9IG91dHB1dDsKKyAgICBjdHh0LmRlcHRoID0gZGVwdGg7CisgICAgeG1sQ3R4dER1bXBBdHRyKCZjdHh0LCBhdHRyKTsKKyAgICB4bWxDdHh0RHVtcENsZWFuQ3R4dCgmY3R4dCk7Cit9CisKKworLyoqCisgKiB4bWxEZWJ1Z0R1bXBFbnRpdGllczoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKgorICogRHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIGFsbCB0aGUgZW50aXRpZXMgaW4gdXNlIGJ5IHRoZSBkb2N1bWVudAorICovCit2b2lkCit4bWxEZWJ1Z0R1bXBFbnRpdGllcyhGSUxFICogb3V0cHV0LCB4bWxEb2NQdHIgZG9jKQoreworICAgIHhtbERlYnVnQ3R4dCBjdHh0OworCisgICAgaWYgKG91dHB1dCA9PSBOVUxMKSByZXR1cm47CisgICAgeG1sQ3R4dER1bXBJbml0Q3R4dCgmY3R4dCk7CisgICAgY3R4dC5vdXRwdXQgPSBvdXRwdXQ7CisgICAgeG1sQ3R4dER1bXBFbnRpdGllcygmY3R4dCwgZG9jKTsKKyAgICB4bWxDdHh0RHVtcENsZWFuQ3R4dCgmY3R4dCk7Cit9CisKKy8qKgorICogeG1sRGVidWdEdW1wQXR0ckxpc3Q6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQGF0dHI6ICB0aGUgYXR0cmlidXRlIGxpc3QKKyAqIEBkZXB0aDogIHRoZSBpbmRlbnRhdGlvbiBsZXZlbC4KKyAqCisgKiBEdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGF0dHJpYnV0ZSBsaXN0CisgKi8KK3ZvaWQKK3htbERlYnVnRHVtcEF0dHJMaXN0KEZJTEUgKiBvdXRwdXQsIHhtbEF0dHJQdHIgYXR0ciwgaW50IGRlcHRoKQoreworICAgIHhtbERlYnVnQ3R4dCBjdHh0OworCisgICAgaWYgKG91dHB1dCA9PSBOVUxMKSByZXR1cm47CisgICAgeG1sQ3R4dER1bXBJbml0Q3R4dCgmY3R4dCk7CisgICAgY3R4dC5vdXRwdXQgPSBvdXRwdXQ7CisgICAgY3R4dC5kZXB0aCA9IGRlcHRoOworICAgIHhtbEN0eHREdW1wQXR0ckxpc3QoJmN0eHQsIGF0dHIpOworICAgIHhtbEN0eHREdW1wQ2xlYW5DdHh0KCZjdHh0KTsKK30KKworLyoqCisgKiB4bWxEZWJ1Z0R1bXBPbmVOb2RlOgorICogQG91dHB1dDogIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBkZXB0aDogIHRoZSBpbmRlbnRhdGlvbiBsZXZlbC4KKyAqCisgKiBEdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGVsZW1lbnQgbm9kZSwgaXQgaXMgbm90IHJlY3Vyc2l2ZQorICovCit2b2lkCit4bWxEZWJ1Z0R1bXBPbmVOb2RlKEZJTEUgKiBvdXRwdXQsIHhtbE5vZGVQdHIgbm9kZSwgaW50IGRlcHRoKQoreworICAgIHhtbERlYnVnQ3R4dCBjdHh0OworCisgICAgaWYgKG91dHB1dCA9PSBOVUxMKSByZXR1cm47CisgICAgeG1sQ3R4dER1bXBJbml0Q3R4dCgmY3R4dCk7CisgICAgY3R4dC5vdXRwdXQgPSBvdXRwdXQ7CisgICAgY3R4dC5kZXB0aCA9IGRlcHRoOworICAgIHhtbEN0eHREdW1wT25lTm9kZSgmY3R4dCwgbm9kZSk7CisgICAgeG1sQ3R4dER1bXBDbGVhbkN0eHQoJmN0eHQpOworfQorCisvKioKKyAqIHhtbERlYnVnRHVtcE5vZGU6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQG5vZGU6ICB0aGUgbm9kZQorICogQGRlcHRoOiAgdGhlIGluZGVudGF0aW9uIGxldmVsLgorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgZWxlbWVudCBub2RlLCBpdCBpcyByZWN1cnNpdmUKKyAqLwordm9pZAoreG1sRGVidWdEdW1wTm9kZShGSUxFICogb3V0cHV0LCB4bWxOb2RlUHRyIG5vZGUsIGludCBkZXB0aCkKK3sKKyAgICB4bWxEZWJ1Z0N0eHQgY3R4dDsKKworICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKwlvdXRwdXQgPSBzdGRvdXQ7CisgICAgeG1sQ3R4dER1bXBJbml0Q3R4dCgmY3R4dCk7CisgICAgY3R4dC5vdXRwdXQgPSBvdXRwdXQ7CisgICAgY3R4dC5kZXB0aCA9IGRlcHRoOworICAgIHhtbEN0eHREdW1wTm9kZSgmY3R4dCwgbm9kZSk7CisgICAgeG1sQ3R4dER1bXBDbGVhbkN0eHQoJmN0eHQpOworfQorCisvKioKKyAqIHhtbERlYnVnRHVtcE5vZGVMaXN0OgorICogQG91dHB1dDogIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQKKyAqIEBub2RlOiAgdGhlIG5vZGUgbGlzdAorICogQGRlcHRoOiAgdGhlIGluZGVudGF0aW9uIGxldmVsLgorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgbGlzdCBvZiBlbGVtZW50IG5vZGUsIGl0IGlzIHJlY3Vyc2l2ZQorICovCit2b2lkCit4bWxEZWJ1Z0R1bXBOb2RlTGlzdChGSUxFICogb3V0cHV0LCB4bWxOb2RlUHRyIG5vZGUsIGludCBkZXB0aCkKK3sKKyAgICB4bWxEZWJ1Z0N0eHQgY3R4dDsKKworICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKwlvdXRwdXQgPSBzdGRvdXQ7CisgICAgeG1sQ3R4dER1bXBJbml0Q3R4dCgmY3R4dCk7CisgICAgY3R4dC5vdXRwdXQgPSBvdXRwdXQ7CisgICAgY3R4dC5kZXB0aCA9IGRlcHRoOworICAgIHhtbEN0eHREdW1wTm9kZUxpc3QoJmN0eHQsIG5vZGUpOworICAgIHhtbEN0eHREdW1wQ2xlYW5DdHh0KCZjdHh0KTsKK30KKworLyoqCisgKiB4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQ6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGNuY2VybmluZyB0aGUgZG9jdW1lbnQsIG5vdCByZWN1cnNpdmUKKyAqLwordm9pZAoreG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkKEZJTEUgKiBvdXRwdXQsIHhtbERvY1B0ciBkb2MpCit7CisgICAgeG1sRGVidWdDdHh0IGN0eHQ7CisKKyAgICBpZiAob3V0cHV0ID09IE5VTEwpCisJb3V0cHV0ID0gc3Rkb3V0OworICAgIHhtbEN0eHREdW1wSW5pdEN0eHQoJmN0eHQpOworICAgIGN0eHQub3B0aW9ucyB8PSBEVU1QX1RFWFRfVFlQRTsKKyAgICBjdHh0Lm91dHB1dCA9IG91dHB1dDsKKyAgICB4bWxDdHh0RHVtcERvY3VtZW50SGVhZCgmY3R4dCwgZG9jKTsKKyAgICB4bWxDdHh0RHVtcENsZWFuQ3R4dCgmY3R4dCk7Cit9CisKKy8qKgorICogeG1sRGVidWdEdW1wRG9jdW1lbnQ6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICoKKyAqIER1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgZG9jdW1lbnQsIGl0J3MgcmVjdXJzaXZlCisgKi8KK3ZvaWQKK3htbERlYnVnRHVtcERvY3VtZW50KEZJTEUgKiBvdXRwdXQsIHhtbERvY1B0ciBkb2MpCit7CisgICAgeG1sRGVidWdDdHh0IGN0eHQ7CisKKyAgICBpZiAob3V0cHV0ID09IE5VTEwpCisJb3V0cHV0ID0gc3Rkb3V0OworICAgIHhtbEN0eHREdW1wSW5pdEN0eHQoJmN0eHQpOworICAgIGN0eHQub3B0aW9ucyB8PSBEVU1QX1RFWFRfVFlQRTsKKyAgICBjdHh0Lm91dHB1dCA9IG91dHB1dDsKKyAgICB4bWxDdHh0RHVtcERvY3VtZW50KCZjdHh0LCBkb2MpOworICAgIHhtbEN0eHREdW1wQ2xlYW5DdHh0KCZjdHh0KTsKK30KKworLyoqCisgKiB4bWxEZWJ1Z0R1bXBEVEQ6CisgKiBAb3V0cHV0OiAgdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dAorICogQGR0ZDogIHRoZSBEVEQKKyAqCisgKiBEdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIERURAorICovCit2b2lkCit4bWxEZWJ1Z0R1bXBEVEQoRklMRSAqIG91dHB1dCwgeG1sRHRkUHRyIGR0ZCkKK3sKKyAgICB4bWxEZWJ1Z0N0eHQgY3R4dDsKKworICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKwlvdXRwdXQgPSBzdGRvdXQ7CisgICAgeG1sQ3R4dER1bXBJbml0Q3R4dCgmY3R4dCk7CisgICAgY3R4dC5vcHRpb25zIHw9IERVTVBfVEVYVF9UWVBFOworICAgIGN0eHQub3V0cHV0ID0gb3V0cHV0OworICAgIHhtbEN0eHREdW1wRFREKCZjdHh0LCBkdGQpOworICAgIHhtbEN0eHREdW1wQ2xlYW5DdHh0KCZjdHh0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVB1YmxpYyBlbnRyeSBwb2ludHMgZm9yIGNoZWNraW5ncwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbERlYnVnQ2hlY2tEb2N1bWVudDoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKgorICogQ2hlY2sgdGhlIGRvY3VtZW50IGZvciBwb3RlbnRpYWwgY29udGVudCBwcm9ibGVtcywgYW5kIG91dHB1dAorICogdGhlIGVycm9ycyB0byBAb3V0cHV0CisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVycm9ycyBmb3VuZAorICovCitpbnQKK3htbERlYnVnQ2hlY2tEb2N1bWVudChGSUxFICogb3V0cHV0LCB4bWxEb2NQdHIgZG9jKQoreworICAgIHhtbERlYnVnQ3R4dCBjdHh0OworCisgICAgaWYgKG91dHB1dCA9PSBOVUxMKQorCW91dHB1dCA9IHN0ZG91dDsKKyAgICB4bWxDdHh0RHVtcEluaXRDdHh0KCZjdHh0KTsKKyAgICBjdHh0Lm91dHB1dCA9IG91dHB1dDsKKyAgICBjdHh0LmNoZWNrID0gMTsKKyAgICB4bWxDdHh0RHVtcERvY3VtZW50KCZjdHh0LCBkb2MpOworICAgIHhtbEN0eHREdW1wQ2xlYW5DdHh0KCZjdHh0KTsKKyAgICByZXR1cm4oY3R4dC5lcnJvcnMpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJSGVscGVycyBmb3IgU2hlbGwJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbExzQ291bnROb2RlOgorICogQG5vZGU6ICB0aGUgbm9kZSB0byBjb3VudAorICoKKyAqIENvdW50IHRoZSBjaGlsZHJlbiBvZiBAbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gb2YgQG5vZGUuCisgKi8KK2ludAoreG1sTHNDb3VudE5vZGUoeG1sTm9kZVB0ciBub2RlKSB7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sTm9kZVB0ciBsaXN0ID0gTlVMTDsKKyAgICAKKyAgICBpZiAobm9kZSA9PSBOVUxMKQorCXJldHVybigwKTsKKworICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworCWNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwkgICAgbGlzdCA9IG5vZGUtPmNoaWxkcmVuOworCSAgICBicmVhazsKKwljYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorCWNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisJICAgIGxpc3QgPSAoKHhtbERvY1B0cikgbm9kZSktPmNoaWxkcmVuOworCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgbGlzdCA9ICgoeG1sQXR0clB0cikgbm9kZSktPmNoaWxkcmVuOworCSAgICBicmVhazsKKwljYXNlIFhNTF9URVhUX05PREU6CisJY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCWNhc2UgWE1MX1BJX05PREU6CisJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICBpZiAobm9kZS0+Y29udGVudCAhPSBOVUxMKSB7CisJCXJldCA9IHhtbFN0cmxlbihub2RlLT5jb250ZW50KTsKKyAgICAgICAgICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCWNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKwljYXNlIFhNTF9FTlRJVFlfTk9ERToKKwljYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJY2FzZSBYTUxfTk9UQVRJT05fTk9ERToKKwljYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisJY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorCSAgICByZXQgPSAxOworCSAgICBicmVhazsKKyAgICB9CisgICAgZm9yICg7bGlzdCAhPSBOVUxMO3JldCsrKSAKKyAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sTHNPbmVOb2RlOgorICogQG91dHB1dDogIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQKKyAqIEBub2RlOiAgdGhlIG5vZGUgdG8gZHVtcAorICoKKyAqIER1bXAgdG8gQG91dHB1dCB0aGUgdHlwZSBhbmQgbmFtZSBvZiBAbm9kZS4KKyAqLwordm9pZAoreG1sTHNPbmVOb2RlKEZJTEUgKm91dHB1dCwgeG1sTm9kZVB0ciBub2RlKSB7CisgICAgaWYgKG91dHB1dCA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKG5vZGUgPT0gTlVMTCkgeworCWZwcmludGYob3V0cHV0LCAiTlVMTFxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICBzd2l0Y2ggKG5vZGUtPnR5cGUpIHsKKwljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIGZwcmludGYob3V0cHV0LCAiLSIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgZnByaW50ZihvdXRwdXQsICJhIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgZnByaW50ZihvdXRwdXQsICJ0Iik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkgICAgZnByaW50ZihvdXRwdXQsICJDIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkgICAgZnByaW50ZihvdXRwdXQsICJlIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VOVElUWV9OT0RFOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIkUiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfUElfTk9ERToKKwkgICAgZnByaW50ZihvdXRwdXQsICJwIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkgICAgZnByaW50ZihvdXRwdXQsICJjIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisJICAgIGZwcmludGYob3V0cHV0LCAiZCIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisJICAgIGZwcmludGYob3V0cHV0LCAiaCIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisJICAgIGZwcmludGYob3V0cHV0LCAiVCIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJICAgIGZwcmludGYob3V0cHV0LCAiRiIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIk4iKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJICAgIGZwcmludGYob3V0cHV0LCAibiIpOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICBmcHJpbnRmKG91dHB1dCwgIj8iKTsKKyAgICB9CisgICAgaWYgKG5vZGUtPnR5cGUgIT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJaWYgKG5vZGUtPnByb3BlcnRpZXMgIT0gTlVMTCkKKwkgICAgZnByaW50ZihvdXRwdXQsICJhIik7CisJZWxzZQkKKwkgICAgZnByaW50ZihvdXRwdXQsICItIik7CisJaWYgKG5vZGUtPm5zRGVmICE9IE5VTEwpIAorCSAgICBmcHJpbnRmKG91dHB1dCwgIm4iKTsKKwllbHNlCQorCSAgICBmcHJpbnRmKG91dHB1dCwgIi0iKTsKKyAgICB9CisKKyAgICBmcHJpbnRmKG91dHB1dCwgIiAlOGQgIiwgeG1sTHNDb3VudE5vZGUobm9kZSkpOworCisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisJY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCSAgICBpZiAobm9kZS0+bmFtZSAhPSBOVUxMKQorCQlmcHJpbnRmKG91dHB1dCwgIiVzIiwgKGNvbnN0IGNoYXIgKikgbm9kZS0+bmFtZSk7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICBpZiAobm9kZS0+bmFtZSAhPSBOVUxMKQorCQlmcHJpbnRmKG91dHB1dCwgIiVzIiwgKGNvbnN0IGNoYXIgKikgbm9kZS0+bmFtZSk7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgaWYgKG5vZGUtPmNvbnRlbnQgIT0gTlVMTCkgeworCQl4bWxEZWJ1Z0R1bXBTdHJpbmcob3V0cHV0LCBub2RlLT5jb250ZW50KTsKKyAgICAgICAgICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCSAgICBicmVhazsKKwljYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJICAgIGlmIChub2RlLT5uYW1lICE9IE5VTEwpCisJCWZwcmludGYob3V0cHV0LCAiJXMiLCAoY29uc3QgY2hhciAqKSBub2RlLT5uYW1lKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRU5USVRZX05PREU6CisJICAgIGlmIChub2RlLT5uYW1lICE9IE5VTEwpCisJCWZwcmludGYob3V0cHV0LCAiJXMiLCAoY29uc3QgY2hhciAqKSBub2RlLT5uYW1lKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfUElfTk9ERToKKwkgICAgaWYgKG5vZGUtPm5hbWUgIT0gTlVMTCkKKwkJZnByaW50ZihvdXRwdXQsICIlcyIsIChjb25zdCBjaGFyICopIG5vZGUtPm5hbWUpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9DT01NRU5UX05PREU6CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorCSAgICBicmVhazsKKwljYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJICAgIGJyZWFrOworCWNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJICAgIGJyZWFrOworCWNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOiB7CisJICAgIHhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSBub2RlOworCisJICAgIGlmIChucy0+cHJlZml4ID09IE5VTEwpCisJCWZwcmludGYob3V0cHV0LCAiZGVmYXVsdCAtPiAlcyIsIChjaGFyICopbnMtPmhyZWYpOworCSAgICBlbHNlCisJCWZwcmludGYob3V0cHV0LCAiJXMgLT4gJXMiLCAoY2hhciAqKW5zLT5wcmVmaXgsCisJCQkoY2hhciAqKW5zLT5ocmVmKTsKKwkgICAgYnJlYWs7CisJfQorCWRlZmF1bHQ6CisJICAgIGlmIChub2RlLT5uYW1lICE9IE5VTEwpCisJCWZwcmludGYob3V0cHV0LCAiJXMiLCAoY29uc3QgY2hhciAqKSBub2RlLT5uYW1lKTsKKyAgICB9CisgICAgZnByaW50ZihvdXRwdXQsICJcbiIpOworfQorCisvKioKKyAqIHhtbEJvb2xUb1RleHQ6CisgKiBAYm9vbHZhbDogYSBib29sIHRvIHR1cm4gaW50byB0ZXh0CisgKgorICogQ29udmVuaWVudCB3YXkgdG8gdHVybiBib29sIGludG8gdGV4dCAKKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBlaXRoZXIgIlRydWUiIG9yICJGYWxzZSIKKyAqLworY29uc3QgY2hhciAqCit4bWxCb29sVG9UZXh0KGludCBib29sdmFsKQoreworICAgIGlmIChib29sdmFsKQorICAgICAgICByZXR1cm4oIlRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybigiRmFsc2UiKTsKK30KKworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCSoKKyAqCSAJVGhlIFhNTCBzaGVsbCByZWxhdGVkIGZ1bmN0aW9ucwkJCSoKKyAqCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisKKy8qCisgKiBUT0RPOiBJbXByb3ZlbWVudC9jbGVhbnVwcyBmb3IgdGhlIFhNTCBzaGVsbAorICogICAgIC0gYWxsb3cgdG8gc2hlbGwgb3V0IGFuIGVkaXRvciBvbiBhIHN1YnBhcnQKKyAqICAgICAtIGNsZWFudXAgZnVuY3Rpb24gcmVnaXN0cmF0aW9ucyAod2l0aCBoZWxwKSBhbmQgY2FsbGluZworICogICAgIC0gcHJvdmlkZSByZWdpc3RyYXRpb24gcm91dGluZXMKKyAqLworCisvKioKKyAqIHhtbFNoZWxsUHJpbnRYUGF0aEVycm9yOgorICogQGVycm9yVHlwZTogdmFsaWQgeHBhdGggZXJyb3IgaWQKKyAqIEBhcmc6IHRoZSBhcmd1bWVudCB0aGF0IGNhdXNlIHhwYXRoIHRvIGZhaWwKKyAqCisgKiBQcmludCB0aGUgeHBhdGggZXJyb3IgdG8gbGlieG1sIGRlZmF1bHQgZXJyb3IgY2hhbm5lbAorICovCit2b2lkCit4bWxTaGVsbFByaW50WFBhdGhFcnJvcihpbnQgZXJyb3JUeXBlLCBjb25zdCBjaGFyICphcmcpCit7CisgICAgY29uc3QgY2hhciAqZGVmYXVsdF9hcmcgPSAiUmVzdWx0IjsKKworICAgIGlmICghYXJnKQorICAgICAgICBhcmcgPSBkZWZhdWx0X2FyZzsKKworICAgIHN3aXRjaCAoZXJyb3JUeXBlKSB7CisgICAgICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzOiBubyBzdWNoIG5vZGVcbiIsIGFyZyk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBCb29sZWFuXG4iLCBhcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfTlVNQkVSOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgbnVtYmVyXG4iLCBhcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfU1RSSU5HOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgc3RyaW5nXG4iLCBhcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfUE9JTlQ6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBwb2ludFxuIiwgYXJnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX1JBTkdFOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgcmFuZ2VcbiIsIGFyZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhIHJhbmdlXG4iLCBhcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfVVNFUlM6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgdXNlci1kZWZpbmVkXG4iLCBhcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfWFNMVF9UUkVFOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGFuIFhTTFQgdmFsdWUgdHJlZVxuIiwgYXJnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyNpZiAwCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICJUcnkgY2FzdGluZyB0aGUgcmVzdWx0IHN0cmluZyBmdW5jdGlvbiAoeHBhdGggYnVpbHRpbilcbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZyk7CisjZW5kaWYKK30KKworCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbFNoZWxsUHJpbnROb2RlQ3R4dDoKKyAqIEBjdHh0IDogYSBub24tbnVsbCBzaGVsbCBjb250ZXh0CisgKiBAbm9kZSA6IGEgbm9uLW51bGwgbm9kZSB0byBwcmludCB0byB0aGUgb3V0cHV0IEZJTEUKKyAqCisgKiBQcmludCBub2RlIHRvIHRoZSBvdXRwdXQgRklMRQorICovCitzdGF0aWMgdm9pZAoreG1sU2hlbGxQcmludE5vZGVDdHh0KHhtbFNoZWxsQ3R4dFB0ciBjdHh0LHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICBGSUxFICpmcDsKKworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChjdHh0ID09IE5VTEwpCisJZnAgPSBzdGRvdXQ7CisgICAgZWxzZQorCWZwID0gY3R4dC0+b3V0cHV0OworCisgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpCisgICAgICAgIHhtbERvY0R1bXAoZnAsICh4bWxEb2NQdHIpIG5vZGUpOworICAgIGVsc2UgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKQorICAgICAgICB4bWxEZWJ1Z0R1bXBBdHRyTGlzdChmcCwgKHhtbEF0dHJQdHIpIG5vZGUsIDApOworICAgIGVsc2UKKyAgICAgICAgeG1sRWxlbUR1bXAoZnAsIG5vZGUtPmRvYywgbm9kZSk7CisKKyAgICBmcHJpbnRmKGZwLCAiXG4iKTsKK30KKworLyoqCisgKiB4bWxTaGVsbFByaW50Tm9kZToKKyAqIEBub2RlIDogYSBub24tbnVsbCBub2RlIHRvIHByaW50IHRvIHRoZSBvdXRwdXQgRklMRQorICoKKyAqIFByaW50IG5vZGUgdG8gdGhlIG91dHB1dCBGSUxFCisgKi8KK3ZvaWQKK3htbFNoZWxsUHJpbnROb2RlKHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxTaGVsbFByaW50Tm9kZUN0eHQoTlVMTCwgbm9kZSk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKgorICogeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Q3R4dDoKKyAqIEBjdHh0OiBhIHZhbGlkIHNoZWxsIGNvbnRleHQKKyAqIEBsaXN0OiBhIHZhbGlkIHJlc3VsdCBnZW5lcmF0ZWQgYnkgYW4geHBhdGggZXZhbHVhdGlvbgorICoKKyAqIFByaW50cyByZXN1bHQgdG8gdGhlIG91dHB1dCBGSUxFCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTaGVsbFByaW50WFBhdGhSZXN1bHRDdHh0KHhtbFNoZWxsQ3R4dFB0ciBjdHh0LHhtbFhQYXRoT2JqZWN0UHRyIGxpc3QpCit7CisgICAgaWYgKCFjdHh0KQorICAgICAgIHJldHVybjsKKworICAgIGlmIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgc3dpdGNoIChsaXN0LT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFhQQVRIX05PREVTRVQ6eworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgICAgICAgICAgICAgICAgICBpbnQgaW5keDsKKworICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC0+bm9kZXNldHZhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmR4ID0gMDsgaW5keCA8IGxpc3QtPm5vZGVzZXR2YWwtPm5vZGVOcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keCsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2hlbGxQcmludE5vZGVDdHh0KGN0eHQsCisJCQkJICAgIGxpc3QtPm5vZGVzZXR2YWwtPm5vZGVUYWJbaW5keF0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtcHR5IG5vZGUgc2V0XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyNlbHNlCisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkgICAgIk5vZGUgc2V0XG4iKTsKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJcyBhIEJvb2xlYW46JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEJvb2xUb1RleHQobGlzdC0+Ym9vbHZhbCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJcyBhIG51bWJlcjolMGdcbiIsIGxpc3QtPmZsb2F0dmFsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWFBBVEhfU1RSSU5HOgorICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSXMgYSBzdHJpbmc6JXNcbiIsIGxpc3QtPnN0cmluZ3ZhbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgeG1sU2hlbGxQcmludFhQYXRoRXJyb3IobGlzdC0+dHlwZSwgTlVMTCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0OgorICogQGxpc3Q6IGEgdmFsaWQgcmVzdWx0IGdlbmVyYXRlZCBieSBhbiB4cGF0aCBldmFsdWF0aW9uCisgKgorICogUHJpbnRzIHJlc3VsdCB0byB0aGUgb3V0cHV0IEZJTEUKKyAqLwordm9pZAoreG1sU2hlbGxQcmludFhQYXRoUmVzdWx0KHhtbFhQYXRoT2JqZWN0UHRyIGxpc3QpCit7CisgICAgeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Q3R4dChOVUxMLCBsaXN0KTsKK30KKworLyoqCisgKiB4bWxTaGVsbExpc3Q6CisgKiBAY3R4dDogIHRoZSBzaGVsbCBjb250ZXh0CisgKiBAYXJnOiAgdW51c2VkCisgKiBAbm9kZTogIGEgbm9kZQorICogQG5vZGUyOiAgdW51c2VkCisgKgorICogSW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJscyIKKyAqIERvZXMgYW4gVW5peCBsaWtlIGxpc3Rpbmcgb2YgdGhlIGdpdmVuIG5vZGUgKGxpa2UgYSBkaXJlY3RvcnkpCisgKgorICogUmV0dXJucyAwCisgKi8KK2ludAoreG1sU2hlbGxMaXN0KHhtbFNoZWxsQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgIGNoYXIgKmFyZyBBVFRSSUJVVEVfVU5VU0VELCB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGlmICghY3R4dCkKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSB7CisJZnByaW50ZihjdHh0LT5vdXRwdXQsICJOVUxMXG4iKTsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHx8CisgICAgICAgIChub2RlLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSB7CisgICAgICAgIGN1ciA9ICgoeG1sRG9jUHRyKSBub2RlKS0+Y2hpbGRyZW47CisgICAgfSBlbHNlIGlmIChub2RlLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworICAgICAgICB4bWxMc09uZU5vZGUoY3R4dC0+b3V0cHV0LCBub2RlKTsKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICB9IGVsc2UgaWYgKG5vZGUtPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgY3VyID0gbm9kZS0+Y2hpbGRyZW47CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sTHNPbmVOb2RlKGN0eHQtPm91dHB1dCwgbm9kZSk7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICB4bWxMc09uZU5vZGUoY3R4dC0+b3V0cHV0LCBjdXIpOworICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2hlbGxCYXNlOgorICogQGN0eHQ6ICB0aGUgc2hlbGwgY29udGV4dAorICogQGFyZzogIHVudXNlZAorICogQG5vZGU6ICBhIG5vZGUKKyAqIEBub2RlMjogIHVudXNlZAorICoKKyAqIEltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAiYmFzZSIKKyAqIGR1bXBzIHRoZSBjdXJyZW50IFhNTCBiYXNlIG9mIHRoZSBub2RlCisgKgorICogUmV0dXJucyAwCisgKi8KK2ludAoreG1sU2hlbGxCYXNlKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgIGNoYXIgKmFyZyBBVFRSSUJVVEVfVU5VU0VELCB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbENoYXIgKmJhc2U7CisgICAgaWYgKCFjdHh0KQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSB7CisJZnByaW50ZihjdHh0LT5vdXRwdXQsICJOVUxMXG4iKTsKKwlyZXR1cm4gKDApOworICAgIH0gICAgCisKKyAgICBiYXNlID0geG1sTm9kZUdldEJhc2Uobm9kZS0+ZG9jLCBub2RlKTsKKworICAgIGlmIChiYXNlID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgTm8gYmFzZSBmb3VuZCAhISFcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiJXNcbiIsIGJhc2UpOworICAgICAgICB4bWxGcmVlKGJhc2UpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoqCisgKiB4bWxTaGVsbFNldEJhc2U6CisgKiBAY3R4dDogIHRoZSBzaGVsbCBjb250ZXh0CisgKiBAYXJnOiAgdGhlIG5ldyBiYXNlCisgKiBAbm9kZTogIGEgbm9kZQorICogQG5vZGUyOiAgdW51c2VkCisgKgorICogSW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJzZXRiYXNlIgorICogY2hhbmdlIHRoZSBjdXJyZW50IFhNTCBiYXNlIG9mIHRoZSBub2RlCisgKgorICogUmV0dXJucyAwCisgKi8KK3N0YXRpYyBpbnQKK3htbFNoZWxsU2V0QmFzZSh4bWxTaGVsbEN0eHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgIGNoYXIgKmFyZyBBVFRSSUJVVEVfVU5VU0VELCB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbE5vZGVTZXRCYXNlKG5vZGUsICh4bWxDaGFyKikgYXJnKTsKKyAgICByZXR1cm4gKDApOworfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorLyoqCisgKiB4bWxTaGVsbFJlZ2lzdGVyTmFtZXNwYWNlOgorICogQGN0eHQ6ICB0aGUgc2hlbGwgY29udGV4dAorICogQGFyZzogIGEgc3RyaW5nIGluIHByZWZpeD1uc3VyaSBmb3JtYXQKKyAqIEBub2RlOiAgdW51c2VkCisgKiBAbm9kZTI6ICB1bnVzZWQKKyAqCisgKiBJbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gInNldG5zIgorICogcmVnaXN0ZXIvdW5yZWdpc3RlciBhIHByZWZpeD1uYW1lc3BhY2UgcGFpcgorICogb24gdGhlIFhQYXRoIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNoZWxsUmVnaXN0ZXJOYW1lc3BhY2UoeG1sU2hlbGxDdHh0UHRyIGN0eHQsIGNoYXIgKmFyZywKKyAgICAgIHhtbE5vZGVQdHIgbm9kZSBBVFRSSUJVVEVfVU5VU0VELCB4bWxOb2RlUHRyIG5vZGUyIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sQ2hhciogbnNMaXN0RHVwOworICAgIHhtbENoYXIqIHByZWZpeDsKKyAgICB4bWxDaGFyKiBocmVmOworICAgIHhtbENoYXIqIG5leHQ7CisKKyAgICBuc0xpc3REdXAgPSB4bWxTdHJkdXAoKHhtbENoYXIgKikgYXJnKTsKKyAgICBuZXh0ID0gbnNMaXN0RHVwOworICAgIHdoaWxlKG5leHQgIT0gTlVMTCkgeworCS8qIHNraXAgc3BhY2VzICovCisJLyp3aGlsZSgoKm5leHQpID09ICcgJykgbmV4dCsrOyovCisJaWYoKCpuZXh0KSA9PSAnXDAnKSBicmVhazsKKworCS8qIGZpbmQgcHJlZml4ICovCisJcHJlZml4ID0gbmV4dDsKKwluZXh0ID0gKHhtbENoYXIqKXhtbFN0cmNocihuZXh0LCAnPScpOworCWlmKG5leHQgPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgInNldG5zOiBwcmVmaXg9W25zdXJpXSByZXF1aXJlZFxuIik7CisJICAgIHhtbEZyZWUobnNMaXN0RHVwKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJKihuZXh0KyspID0gJ1wwJzsKKworCS8qIGZpbmQgaHJlZiAqLworCWhyZWYgPSBuZXh0OworCW5leHQgPSAoeG1sQ2hhciopeG1sU3RyY2hyKG5leHQsICcgJyk7CisJaWYobmV4dCAhPSBOVUxMKSB7CisJICAgICoobmV4dCsrKSA9ICdcMCc7CisJfQorCisJLyogZG8gcmVnaXN0ZXIgbmFtZXNwYWNlICovCisJaWYoeG1sWFBhdGhSZWdpc3Rlck5zKGN0eHQtPnBjdHh0LCBwcmVmaXgsIGhyZWYpICE9IDApIHsKKwkgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsIkVycm9yOiB1bmFibGUgdG8gcmVnaXN0ZXIgTlMgd2l0aCBwcmVmaXg9XCIlc1wiIGFuZCBocmVmPVwiJXNcIlxuIiwgcHJlZml4LCBocmVmKTsKKwkgICAgeG1sRnJlZShuc0xpc3REdXApOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9CisKKyAgICB4bWxGcmVlKG5zTGlzdER1cCk7CisgICAgcmV0dXJuKDApOworfQorLyoqCisgKiB4bWxTaGVsbFJlZ2lzdGVyUm9vdE5hbWVzcGFjZXM6CisgKiBAY3R4dDogIHRoZSBzaGVsbCBjb250ZXh0CisgKiBAYXJnOiAgdW51c2VkCisgKiBAbm9kZTogIHRoZSByb290IGVsZW1lbnQKKyAqIEBub2RlMjogIHVudXNlZAorICoKKyAqIEltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAic2V0cm9vdG5zIgorICogd2hpY2ggcmVnaXN0ZXJzIGFsbCBuYW1lc3BhY2VzIGRlY2xhcmF0aW9ucyBmb3VuZCBvbiB0aGUgcm9vdCBlbGVtZW50LgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIGFuZCBhIG5lZ2F0aXZlIHZhbHVlIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGludAoreG1sU2hlbGxSZWdpc3RlclJvb3ROYW1lc3BhY2VzKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LCBjaGFyICphcmcgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgIHhtbE5vZGVQdHIgcm9vdCwgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbE5zUHRyIG5zOworCisgICAgaWYgKChyb290ID09IE5VTEwpIHx8IChyb290LT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpIHx8CisgICAgICAgIChyb290LT5uc0RlZiA9PSBOVUxMKSB8fCAoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+cGN0eHQgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBucyA9IHJvb3QtPm5zRGVmOworICAgIHdoaWxlIChucyAhPSBOVUxMKSB7CisgICAgICAgIGlmIChucy0+cHJlZml4ID09IE5VTEwpCisJICAgIHhtbFhQYXRoUmVnaXN0ZXJOcyhjdHh0LT5wY3R4dCwgQkFEX0NBU1QgImRlZmF1bHRucyIsIG5zLT5ocmVmKTsKKwllbHNlCisJICAgIHhtbFhQYXRoUmVnaXN0ZXJOcyhjdHh0LT5wY3R4dCwgbnMtPnByZWZpeCwgbnMtPmhyZWYpOworICAgICAgICBucyA9IG5zLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYKKworLyoqCisgKiB4bWxTaGVsbEdyZXA6CisgKiBAY3R4dDogIHRoZSBzaGVsbCBjb250ZXh0CisgKiBAYXJnOiAgdGhlIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gdG8gZmluZAorICogQG5vZGU6ICBhIG5vZGUKKyAqIEBub2RlMjogIHVudXNlZAorICoKKyAqIEltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAiZ3JlcCIKKyAqIGR1bXBzIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgbm9kZSAobmFtZXNwYWNlLCBhdHRyaWJ1dGVzLCBjb250ZW50KS4KKyAqCisgKiBSZXR1cm5zIDAKKyAqLworc3RhdGljIGludAoreG1sU2hlbGxHcmVwKHhtbFNoZWxsQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICBjaGFyICphcmcsIHhtbE5vZGVQdHIgbm9kZSwgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGlmICghY3R4dCkKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICBpZiAobm9kZSA9PSBOVUxMKQorCXJldHVybiAoMCk7CisgICAgaWYgKGFyZyA9PSBOVUxMKQorCXJldHVybiAoMCk7CisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisgICAgaWYgKCh4bWxTdHJjaHIoKHhtbENoYXIgKikgYXJnLCAnPycpKSB8fAorCSh4bWxTdHJjaHIoKHhtbENoYXIgKikgYXJnLCAnKicpKSB8fAorCSh4bWxTdHJjaHIoKHhtbENoYXIgKikgYXJnLCAnLicpKSB8fAorCSh4bWxTdHJjaHIoKHhtbENoYXIgKikgYXJnLCAnWycpKSkgeworICAgIH0KKyNlbmRpZgorICAgIHdoaWxlIChub2RlICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0NPTU1FTlRfTk9ERSkgeworCSAgICBpZiAoeG1sU3Ryc3RyKG5vZGUtPmNvbnRlbnQsICh4bWxDaGFyICopIGFyZykpIHsKKworCQlmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiVzIDogIiwgeG1sR2V0Tm9kZVBhdGgobm9kZSkpOworICAgICAgICAgICAgICAgIHhtbFNoZWxsTGlzdChjdHh0LCBOVUxMLCBub2RlLCBOVUxMKTsKKwkgICAgfQorICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworCSAgICBpZiAoeG1sU3Ryc3RyKG5vZGUtPmNvbnRlbnQsICh4bWxDaGFyICopIGFyZykpIHsKKworCQlmcHJpbnRmKGN0eHQtPm91dHB1dCwgIiVzIDogIiwgeG1sR2V0Tm9kZVBhdGgobm9kZS0+cGFyZW50KSk7CisgICAgICAgICAgICAgICAgeG1sU2hlbGxMaXN0KGN0eHQsIE5VTEwsIG5vZGUtPnBhcmVudCwgTlVMTCk7CisJICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEJyb3dzZSB0aGUgZnVsbCBzdWJ0cmVlLCBkZWVwIGZpcnN0CisgICAgICAgICAqLworCisgICAgICAgIGlmICgobm9kZS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSB7CisgICAgICAgICAgICBub2RlID0gKCh4bWxEb2NQdHIpIG5vZGUpLT5jaGlsZHJlbjsKKyAgICAgICAgfSBlbHNlIGlmICgobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAmJiAobm9kZS0+dHlwZSAhPSBYTUxfRU5USVRZX1JFRl9OT0RFKSkgeworICAgICAgICAgICAgLyogZGVlcCBmaXJzdCAqLworICAgICAgICAgICAgbm9kZSA9IG5vZGUtPmNoaWxkcmVuOworICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPm5leHQgIT0gTlVMTCkgeworICAgICAgICAgICAgLyogdGhlbiBzaWJsaW5ncyAqLworICAgICAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBnbyB1cCB0byBwYXJlbnRzLT5uZXh0IGlmIG5lZWRlZCAqLworICAgICAgICAgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5wYXJlbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLT5uZXh0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPnBhcmVudCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisJfQorICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNoZWxsRGlyOgorICogQGN0eHQ6ICB0aGUgc2hlbGwgY29udGV4dAorICogQGFyZzogIHVudXNlZAorICogQG5vZGU6ICBhIG5vZGUKKyAqIEBub2RlMjogIHVudXNlZAorICoKKyAqIEltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAiZGlyIgorICogZHVtcHMgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBub2RlIChuYW1lc3BhY2UsIGF0dHJpYnV0ZXMsIGNvbnRlbnQpLgorICoKKyAqIFJldHVybnMgMAorICovCitpbnQKK3htbFNoZWxsRGlyKHhtbFNoZWxsQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICBjaGFyICphcmcgQVRUUklCVVRFX1VOVVNFRCwgeG1sTm9kZVB0ciBub2RlLAorICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGlmICghY3R4dCkKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSB7CisJZnByaW50ZihjdHh0LT5vdXRwdXQsICJOVUxMXG4iKTsKKwlyZXR1cm4gKDApOworICAgIH0gICAgCisgICAgaWYgKChub2RlLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorICAgICAgICAobm9kZS0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworICAgICAgICB4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQoY3R4dC0+b3V0cHV0LCAoeG1sRG9jUHRyKSBub2RlKTsKKyAgICB9IGVsc2UgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisgICAgICAgIHhtbERlYnVnRHVtcEF0dHIoY3R4dC0+b3V0cHV0LCAoeG1sQXR0clB0cikgbm9kZSwgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sRGVidWdEdW1wT25lTm9kZShjdHh0LT5vdXRwdXQsIG5vZGUsIDApOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNoZWxsU2V0Q29udGVudDoKKyAqIEBjdHh0OiAgdGhlIHNoZWxsIGNvbnRleHQKKyAqIEB2YWx1ZTogIHRoZSBjb250ZW50IGFzIGEgc3RyaW5nCisgKiBAbm9kZTogIGEgbm9kZQorICogQG5vZGUyOiAgdW51c2VkCisgKgorICogSW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJkaXIiCisgKiBkdW1wcyBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIG5vZGUgKG5hbWVzcGFjZSwgYXR0cmlidXRlcywgY29udGVudCkuCisgKgorICogUmV0dXJucyAwCisgKi8KK3N0YXRpYyBpbnQKK3htbFNoZWxsU2V0Q29udGVudCh4bWxTaGVsbEN0eHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgY2hhciAqdmFsdWUsIHhtbE5vZGVQdHIgbm9kZSwKKyAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZTIgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICB4bWxOb2RlUHRyIHJlc3VsdHM7CisgICAgeG1sUGFyc2VyRXJyb3JzIHJldDsKKworICAgIGlmICghY3R4dCkKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSB7CisJZnByaW50ZihjdHh0LT5vdXRwdXQsICJOVUxMXG4iKTsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIk5VTExcbiIpOworCXJldHVybiAoMCk7CisgICAgfQorCisgICAgcmV0ID0geG1sUGFyc2VJbk5vZGVDb250ZXh0KG5vZGUsIHZhbHVlLCBzdHJsZW4odmFsdWUpLCAwLCAmcmVzdWx0cyk7CisgICAgaWYgKHJldCA9PSBYTUxfRVJSX09LKSB7CisJaWYgKG5vZGUtPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZU5vZGVMaXN0KG5vZGUtPmNoaWxkcmVuKTsKKwkgICAgbm9kZS0+Y2hpbGRyZW4gPSBOVUxMOworCSAgICBub2RlLT5sYXN0ID0gTlVMTDsKKwl9CisJeG1sQWRkQ2hpbGRMaXN0KG5vZGUsIHJlc3VsdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiZmFpbGVkIHRvIHBhcnNlIGNvbnRlbnRcbiIpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorLyoqCisgKiB4bWxTaGVsbFJOR1ZhbGlkYXRlOgorICogQGN0eHQ6ICB0aGUgc2hlbGwgY29udGV4dAorICogQHNjaGVtYXM6ICB0aGUgcGF0aCB0byB0aGUgUmVsYXgtTkcgc2NoZW1hcworICogQG5vZGU6ICBhIG5vZGUKKyAqIEBub2RlMjogIHVudXNlZAorICoKKyAqIEltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAicmVsYXhuZyIKKyAqIHZhbGlkYXRpbmcgdGhlIGluc3RhbmNlIGFnYWluc3QgYSBSZWxheC1ORyBzY2hlbWFzCisgKgorICogUmV0dXJucyAwCisgKi8KK3N0YXRpYyBpbnQKK3htbFNoZWxsUk5HVmFsaWRhdGUoeG1sU2hlbGxDdHh0UHRyIHNjdHh0LCBjaGFyICpzY2hlbWFzLAorICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlIEFUVFJJQlVURV9VTlVTRUQsCisJICAgIHhtbE5vZGVQdHIgbm9kZTIgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICB4bWxSZWxheE5HUHRyIHJlbGF4bmdzY2hlbWFzOworICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciB2Y3R4dDsKKyAgICBpbnQgcmV0OworCisgICAgY3R4dCA9IHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0KHNjaGVtYXMpOworICAgIHhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMoY3R4dCwKKwkgICAgKHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYykgZnByaW50ZiwKKwkgICAgKHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jKSBmcHJpbnRmLAorCSAgICBzdGRlcnIpOworICAgIHJlbGF4bmdzY2hlbWFzID0geG1sUmVsYXhOR1BhcnNlKGN0eHQpOworICAgIHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICBpZiAocmVsYXhuZ3NjaGVtYXMgPT0gTlVMTCkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiUmVsYXgtTkcgc2NoZW1hICVzIGZhaWxlZCB0byBjb21waWxlXG4iLCBzY2hlbWFzKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB2Y3R4dCA9IHhtbFJlbGF4TkdOZXdWYWxpZEN0eHQocmVsYXhuZ3NjaGVtYXMpOworICAgIHhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyh2Y3R4dCwKKwkgICAgKHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYykgZnByaW50ZiwKKwkgICAgKHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jKSBmcHJpbnRmLAorCSAgICBzdGRlcnIpOworICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZURvYyh2Y3R4dCwgc2N0eHQtPmRvYyk7CisgICAgaWYgKHJldCA9PSAwKSB7CisJZnByaW50ZihzdGRlcnIsICIlcyB2YWxpZGF0ZXNcbiIsIHNjdHh0LT5maWxlbmFtZSk7CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisJZnByaW50ZihzdGRlcnIsICIlcyBmYWlscyB0byB2YWxpZGF0ZVxuIiwgc2N0eHQtPmZpbGVuYW1lKTsKKyAgICB9IGVsc2UgeworCWZwcmludGYoc3RkZXJyLCAiJXMgdmFsaWRhdGlvbiBnZW5lcmF0ZWQgYW4gaW50ZXJuYWwgZXJyb3JcbiIsCisJICAgICAgIHNjdHh0LT5maWxlbmFtZSk7CisgICAgfQorICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KHZjdHh0KTsKKyAgICBpZiAocmVsYXhuZ3NjaGVtYXMgIT0gTlVMTCkKKwl4bWxSZWxheE5HRnJlZShyZWxheG5nc2NoZW1hcyk7CisgICAgcmV0dXJuKDApOworfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sU2hlbGxDYXQ6CisgKiBAY3R4dDogIHRoZSBzaGVsbCBjb250ZXh0CisgKiBAYXJnOiAgdW51c2VkCisgKiBAbm9kZTogIGEgbm9kZQorICogQG5vZGUyOiAgdW51c2VkCisgKgorICogSW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJjYXQiCisgKiBkdW1wcyB0aGUgc2VyaWFsaXphdGlvbiBub2RlIGNvbnRlbnQgKFhNTCBvciBIVE1MKS4KKyAqCisgKiBSZXR1cm5zIDAKKyAqLworaW50Cit4bWxTaGVsbENhdCh4bWxTaGVsbEN0eHRQdHIgY3R4dCwgY2hhciAqYXJnIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUsIHhtbE5vZGVQdHIgbm9kZTIgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBpZiAoIWN0eHQpCisgICAgICAgIHJldHVybiAoMCk7CisgICAgaWYgKG5vZGUgPT0gTlVMTCkgeworCWZwcmludGYoY3R4dC0+b3V0cHV0LCAiTlVMTFxuIik7CisJcmV0dXJuICgwKTsKKyAgICB9ICAgIAorICAgIGlmIChjdHh0LT5kb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICAgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkKKyAgICAgICAgICAgIGh0bWxEb2NEdW1wKGN0eHQtPm91dHB1dCwgKGh0bWxEb2NQdHIpIG5vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBodG1sTm9kZUR1bXBGaWxlKGN0eHQtPm91dHB1dCwgY3R4dC0+ZG9jLCBub2RlKTsKKyNlbHNlCisgICAgICAgIGlmIChub2RlLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKQorICAgICAgICAgICAgeG1sRG9jRHVtcChjdHh0LT5vdXRwdXQsICh4bWxEb2NQdHIpIG5vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB4bWxFbGVtRHVtcChjdHh0LT5vdXRwdXQsIGN0eHQtPmRvYywgbm9kZSk7CisjZW5kaWYgLyogTElCWE1MX0hUTUxfRU5BQkxFRCAqLworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChub2RlLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKQorICAgICAgICAgICAgeG1sRG9jRHVtcChjdHh0LT5vdXRwdXQsICh4bWxEb2NQdHIpIG5vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB4bWxFbGVtRHVtcChjdHh0LT5vdXRwdXQsIGN0eHQtPmRvYywgbm9kZSk7CisgICAgfQorICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXG4iKTsKKyAgICByZXR1cm4gKDApOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbFNoZWxsTG9hZDoKKyAqIEBjdHh0OiAgdGhlIHNoZWxsIGNvbnRleHQKKyAqIEBmaWxlbmFtZTogIHRoZSBmaWxlIG5hbWUKKyAqIEBub2RlOiAgdW51c2VkCisgKiBAbm9kZTI6ICB1bnVzZWQKKyAqCisgKiBJbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gImxvYWQiCisgKiBsb2FkcyBhIG5ldyBkb2N1bWVudCBzcGVjaWZpZWQgYnkgdGhlIGZpbGVuYW1lCisgKgorICogUmV0dXJucyAwIG9yIC0xIGlmIGxvYWRpbmcgZmFpbGVkCisgKi8KK2ludAoreG1sU2hlbGxMb2FkKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUyIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICBpbnQgaHRtbCA9IDA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGZpbGVuYW1lID09IE5VTEwpKSByZXR1cm4oLTEpOworICAgIGlmIChjdHh0LT5kb2MgIT0gTlVMTCkKKyAgICAgICAgaHRtbCA9IChjdHh0LT5kb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSk7CisKKyAgICBpZiAoaHRtbCkgeworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICAgICAgZG9jID0gaHRtbFBhcnNlRmlsZShmaWxlbmFtZSwgTlVMTCk7CisjZWxzZQorICAgICAgICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIkhUTUwgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIpOworICAgICAgICBkb2MgPSBOVUxMOworI2VuZGlmIC8qIExJQlhNTF9IVE1MX0VOQUJMRUQgKi8KKyAgICB9IGVsc2UgeworICAgICAgICBkb2MgPSB4bWxSZWFkRmlsZShmaWxlbmFtZSxOVUxMLDApOworICAgIH0KKyAgICBpZiAoZG9jICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGN0eHQtPmxvYWRlZCA9PSAxKSB7CisgICAgICAgICAgICB4bWxGcmVlRG9jKGN0eHQtPmRvYyk7CisgICAgICAgIH0KKyAgICAgICAgY3R4dC0+bG9hZGVkID0gMTsKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgICAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eHQtPnBjdHh0KTsKKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworICAgICAgICB4bWxGcmVlKGN0eHQtPmZpbGVuYW1lKTsKKyAgICAgICAgY3R4dC0+ZG9jID0gZG9jOworICAgICAgICBjdHh0LT5ub2RlID0gKHhtbE5vZGVQdHIpIGRvYzsKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgICAgICBjdHh0LT5wY3R4dCA9IHhtbFhQYXRoTmV3Q29udGV4dChkb2MpOworI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisgICAgICAgIGN0eHQtPmZpbGVuYW1lID0gKGNoYXIgKikgeG1sQ2Fub25pY1BhdGgoKHhtbENoYXIgKikgZmlsZW5hbWUpOworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICByZXR1cm4gKDApOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbFNoZWxsV3JpdGU6CisgKiBAY3R4dDogIHRoZSBzaGVsbCBjb250ZXh0CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZSBuYW1lCisgKiBAbm9kZTogIGEgbm9kZSBpbiB0aGUgdHJlZQorICogQG5vZGUyOiAgdW51c2VkCisgKgorICogSW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJ3cml0ZSIKKyAqIFdyaXRlIHRoZSBjdXJyZW50IG5vZGUgdG8gdGhlIGZpbGVuYW1lLCBpdCBzYXZlcyB0aGUgc2VyaWFsaXphdGlvbgorICogb2YgdGhlIHN1YnRyZWUgdW5kZXIgdGhlIEBub2RlIHNwZWNpZmllZAorICoKKyAqIFJldHVybnMgMCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sU2hlbGxXcml0ZSh4bWxTaGVsbEN0eHRQdHIgY3R4dCwgY2hhciAqZmlsZW5hbWUsIHhtbE5vZGVQdHIgbm9kZSwKKyAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGlmIChub2RlID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmICgoZmlsZW5hbWUgPT0gTlVMTCkgfHwgKGZpbGVuYW1lWzBdID09IDApKSB7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyNpZmRlZiBXX09LCisgICAgaWYgKGFjY2VzcygoY2hhciAqKSBmaWxlbmFtZSwgV19PSykpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IHdyaXRlIHRvICVzXG4iLCBmaWxlbmFtZSk7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyNlbmRpZgorICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgaWYgKHhtbFNhdmVGaWxlKChjaGFyICopIGZpbGVuYW1lLCBjdHh0LT5kb2MpIDwgLTEpIHsKKyAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byB3cml0ZSB0byAlc1xuIiwgZmlsZW5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgICAgICAgICBpZiAoaHRtbFNhdmVGaWxlKChjaGFyICopIGZpbGVuYW1lLCBjdHh0LT5kb2MpIDwgMCkgeworICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHdyaXRlIHRvICVzXG4iLCBmaWxlbmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICB9CisjZWxzZQorICAgICAgICAgICAgaWYgKHhtbFNhdmVGaWxlKChjaGFyICopIGZpbGVuYW1lLCBjdHh0LT5kb2MpIDwgLTEpIHsKKyAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byB3cml0ZSB0byAlc1xuIiwgZmlsZW5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgfQorI2VuZGlmIC8qIExJQlhNTF9IVE1MX0VOQUJMRUQgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OnsKKyAgICAgICAgICAgICAgICBGSUxFICpmOworCisgICAgICAgICAgICAgICAgZiA9IGZvcGVuKChjaGFyICopIGZpbGVuYW1lLCAidyIpOworICAgICAgICAgICAgICAgIGlmIChmID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHdyaXRlIHRvICVzXG4iLCBmaWxlbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB4bWxFbGVtRHVtcChmLCBjdHh0LT5kb2MsIG5vZGUpOworICAgICAgICAgICAgICAgIGZjbG9zZShmKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTaGVsbFNhdmU6CisgKiBAY3R4dDogIHRoZSBzaGVsbCBjb250ZXh0CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZSBuYW1lIChvcHRpb25hbCkKKyAqIEBub2RlOiAgdW51c2VkCisgKiBAbm9kZTI6ICB1bnVzZWQKKyAqCisgKiBJbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gInNhdmUiCisgKiBXcml0ZSB0aGUgY3VycmVudCBkb2N1bWVudCB0byB0aGUgZmlsZW5hbWUsIG9yIGl0J3Mgb3JpZ2luYWwgbmFtZQorICoKKyAqIFJldHVybnMgMCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sU2hlbGxTYXZlKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUyIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5kb2MgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmICgoZmlsZW5hbWUgPT0gTlVMTCkgfHwgKGZpbGVuYW1lWzBdID09IDApKQorICAgICAgICBmaWxlbmFtZSA9IGN0eHQtPmZpbGVuYW1lOworICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyNpZmRlZiBXX09LCisgICAgaWYgKGFjY2VzcygoY2hhciAqKSBmaWxlbmFtZSwgV19PSykpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IHNhdmUgdG8gJXNcbiIsIGZpbGVuYW1lKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorI2VuZGlmCisgICAgc3dpdGNoIChjdHh0LT5kb2MtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmICh4bWxTYXZlRmlsZSgoY2hhciAqKSBmaWxlbmFtZSwgY3R4dC0+ZG9jKSA8IDApIHsKKyAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzYXZlIHRvICVzXG4iLCBmaWxlbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICAgICAgICAgIGlmIChodG1sU2F2ZUZpbGUoKGNoYXIgKikgZmlsZW5hbWUsIGN0eHQtPmRvYykgPCAwKSB7CisgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gc2F2ZSB0byAlc1xuIiwgZmlsZW5hbWUpOworICAgICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgICAgIGlmICh4bWxTYXZlRmlsZSgoY2hhciAqKSBmaWxlbmFtZSwgY3R4dC0+ZG9jKSA8IDApIHsKKyAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzYXZlIHRvICVzXG4iLCBmaWxlbmFtZSk7CisgICAgICAgICAgICB9CisjZW5kaWYgLyogTElCWE1MX0hUTUxfRU5BQkxFRCAqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIlRvIHNhdmUgdG8gc3VicGFydHMgb2YgYSBkb2N1bWVudCB1c2UgdGhlICd3cml0ZScgY29tbWFuZFxuIik7CisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKy8qKgorICogeG1sU2hlbGxWYWxpZGF0ZToKKyAqIEBjdHh0OiAgdGhlIHNoZWxsIGNvbnRleHQKKyAqIEBkdGQ6ICB0aGUgRFREIFVSSSAob3B0aW9uYWwpCisgKiBAbm9kZTogIHVudXNlZAorICogQG5vZGUyOiAgdW51c2VkCisgKgorICogSW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJ2YWxpZGF0ZSIKKyAqIFZhbGlkYXRlIHRoZSBkb2N1bWVudCwgaWYgYSBEVEQgcGF0aCBpcyBwcm92aWRlZCwgdGhlbiB0aGUgdmFsaWRhdGlvbgorICogaXMgZG9uZSBhZ2FpbnN0IHRoZSBnaXZlbiBEVEQuCisgKgorICogUmV0dXJucyAwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxTaGVsbFZhbGlkYXRlKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LCBjaGFyICpkdGQsCisgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUyIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sVmFsaWRDdHh0IHZjdHh0OworICAgIGludCByZXMgPSAtMTsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+ZG9jID09IE5VTEwpKSByZXR1cm4oLTEpOworICAgIHZjdHh0LnVzZXJEYXRhID0gc3RkZXJyOworICAgIHZjdHh0LmVycm9yID0gKHhtbFZhbGlkaXR5RXJyb3JGdW5jKSBmcHJpbnRmOworICAgIHZjdHh0Lndhcm5pbmcgPSAoeG1sVmFsaWRpdHlXYXJuaW5nRnVuYykgZnByaW50ZjsKKworICAgIGlmICgoZHRkID09IE5VTEwpIHx8IChkdGRbMF0gPT0gMCkpIHsKKyAgICAgICAgcmVzID0geG1sVmFsaWRhdGVEb2N1bWVudCgmdmN0eHQsIGN0eHQtPmRvYyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sRHRkUHRyIHN1YnNldDsKKworICAgICAgICBzdWJzZXQgPSB4bWxQYXJzZURURChOVUxMLCAoeG1sQ2hhciAqKSBkdGQpOworICAgICAgICBpZiAoc3Vic2V0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHJlcyA9IHhtbFZhbGlkYXRlRHRkKCZ2Y3R4dCwgY3R4dC0+ZG9jLCBzdWJzZXQpOworCisgICAgICAgICAgICB4bWxGcmVlRHRkKHN1YnNldCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIChyZXMpOworfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisKKy8qKgorICogeG1sU2hlbGxEdToKKyAqIEBjdHh0OiAgdGhlIHNoZWxsIGNvbnRleHQKKyAqIEBhcmc6ICB1bnVzZWQKKyAqIEB0cmVlOiAgYSBub2RlIGRlZmluaW5nIGEgc3VidHJlZQorICogQG5vZGUyOiAgdW51c2VkCisgKgorICogSW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJkdSIKKyAqIHNob3cgdGhlIHN0cnVjdHVyZSBvZiB0aGUgc3VidHJlZSB1bmRlciBub2RlIEB0cmVlCisgKiBJZiBAdHJlZSBpcyBudWxsLCB0aGUgY29tbWFuZCB3b3JrcyBvbiB0aGUgY3VycmVudCBub2RlLgorICoKKyAqIFJldHVybnMgMCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sU2hlbGxEdSh4bWxTaGVsbEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgY2hhciAqYXJnIEFUVFJJQlVURV9VTlVTRUQsIHhtbE5vZGVQdHIgdHJlZSwKKyAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpbnQgaW5kZW50ID0gMCwgaTsKKworICAgIGlmICghY3R4dCkKKwlyZXR1cm4gKC0xKTsKKworICAgIGlmICh0cmVlID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIG5vZGUgPSB0cmVlOworICAgIHdoaWxlIChub2RlICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChub2RlLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorICAgICAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpIHsKKyAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiL1xuIik7CisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5kZW50OyBpKyspCisgICAgICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIgICIpOworICAgICAgICAgICAgZnByaW50ZihjdHh0LT5vdXRwdXQsICIlc1xuIiwgbm9kZS0+bmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBCcm93c2UgdGhlIGZ1bGwgc3VidHJlZSwgZGVlcCBmaXJzdAorICAgICAgICAgKi8KKworICAgICAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHx8CisgICAgICAgICAgICAobm9kZS0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworICAgICAgICAgICAgbm9kZSA9ICgoeG1sRG9jUHRyKSBub2RlKS0+Y2hpbGRyZW47CisgICAgICAgIH0gZWxzZSBpZiAoKG5vZGUtPmNoaWxkcmVuICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgJiYgKG5vZGUtPnR5cGUgIT0gWE1MX0VOVElUWV9SRUZfTk9ERSkpIHsKKyAgICAgICAgICAgIC8qIGRlZXAgZmlyc3QgKi8KKyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5jaGlsZHJlbjsKKyAgICAgICAgICAgIGluZGVudCsrOworICAgICAgICB9IGVsc2UgaWYgKChub2RlICE9IHRyZWUpICYmIChub2RlLT5uZXh0ICE9IE5VTEwpKSB7CisgICAgICAgICAgICAvKiB0aGVuIHNpYmxpbmdzICovCisgICAgICAgICAgICBub2RlID0gbm9kZS0+bmV4dDsKKyAgICAgICAgfSBlbHNlIGlmIChub2RlICE9IHRyZWUpIHsKKyAgICAgICAgICAgIC8qIGdvIHVwIHRvIHBhcmVudHMtPm5leHQgaWYgbmVlZGVkICovCisgICAgICAgICAgICB3aGlsZSAobm9kZSAhPSB0cmVlKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPnBhcmVudCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgIGluZGVudC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKG5vZGUgIT0gdHJlZSkgJiYgKG5vZGUtPm5leHQgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+cGFyZW50ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobm9kZSA9PSB0cmVlKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBleGl0IGNvbmRpdGlvbiAqLworICAgICAgICAgICAgaWYgKG5vZGUgPT0gdHJlZSkKKyAgICAgICAgICAgICAgICBub2RlID0gTlVMTDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBub2RlID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTaGVsbFB3ZDoKKyAqIEBjdHh0OiAgdGhlIHNoZWxsIGNvbnRleHQKKyAqIEBidWZmZXI6ICB0aGUgb3V0cHV0IGJ1ZmZlcgorICogQG5vZGU6ICBhIG5vZGUgCisgKiBAbm9kZTI6ICB1bnVzZWQKKyAqCisgKiBJbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gInB3ZCIKKyAqIFNob3cgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSByb290IHRvIHRoZSBub2RlLCBpZiBuZWVkZWQgYnVpbGRpbmcKKyAqIHRodW1ibGVycyB3aGVuIHNpbWlsYXIgZWxlbWVudHMgZXhpc3RzIGF0IGEgZ2l2ZW4gYW5jZXN0b3IgbGV2ZWwuCisgKiBUaGUgb3V0cHV0IGlzIGNvbXBhdGlibGUgd2l0aCBYUGF0aCBjb21tYW5kcy4KKyAqCisgKiBSZXR1cm5zIDAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFNoZWxsUHdkKHhtbFNoZWxsQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsIGNoYXIgKmJ1ZmZlciwKKyAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwgeG1sTm9kZVB0ciBub2RlMiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbENoYXIgKnBhdGg7CisKKyAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKGJ1ZmZlciA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBwYXRoID0geG1sR2V0Tm9kZVBhdGgobm9kZSk7CisgICAgaWYgKHBhdGggPT0gTlVMTCkKKwlyZXR1cm4gKC0xKTsKKworICAgIC8qCisgICAgICogVGhpcyB0ZXN0IHByZXZlbnRzIGJ1ZmZlciBvdmVyZmxvdywgYmVjYXVzZSB0aGlzIHJvdXRpbmUKKyAgICAgKiBpcyBvbmx5IGNhbGxlZCBieSB4bWxTaGVsbCwgaW4gd2hpY2ggdGhlIHNlY29uZCBhcmd1bWVudCBpcworICAgICAqIDUwMCBjaGFycyBsb25nLgorICAgICAqIEl0IGlzIGEgZGlydHkgaGFjayBiZWZvcmUgYSBjbGVhbmVyIHNvbHV0aW9uIGlzIGZvdW5kLgorICAgICAqIERvY3VtZW50YXRpb24gc2hvdWxkIG1lbnRpb24gdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50IG11c3QKKyAgICAgKiBiZSBhdCBsZWFzdCA1MDAgY2hhcnMgbG9uZywgYW5kIGNvdWxkIGJlIHN0cmlwcGVkIGlmIHRvbyBsb25nLgorICAgICAqLworICAgIHNucHJpbnRmKGJ1ZmZlciwgNDk5LCAiJXMiLCBwYXRoKTsKKyAgICBidWZmZXJbNDk5XSA9ICcwJzsKKyAgICB4bWxGcmVlKHBhdGgpOworCisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTaGVsbDoKKyAqIEBkb2M6ICB0aGUgaW5pdGlhbCBkb2N1bWVudAorICogQGZpbGVuYW1lOiAgdGhlIG91dHB1dCBidWZmZXIKKyAqIEBpbnB1dDogIHRoZSBsaW5lIHJlYWRpbmcgZnVuY3Rpb24KKyAqIEBvdXRwdXQ6ICB0aGUgb3V0cHV0IEZJTEUqLCBkZWZhdWx0cyB0byBzdGRvdXQgaWYgTlVMTAorICoKKyAqIEltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCAKKyAqIFRoaXMgYWxsb3cgdG8gbG9hZCwgdmFsaWRhdGUsIHZpZXcsIG1vZGlmeSBhbmQgc2F2ZSBhIGRvY3VtZW50CisgKiB1c2luZyBhIGVudmlyb25tZW50IHNpbWlsYXIgdG8gYSBVTklYIGNvbW1hbmRsaW5lLgorICovCit2b2lkCit4bWxTaGVsbCh4bWxEb2NQdHIgZG9jLCBjaGFyICpmaWxlbmFtZSwgeG1sU2hlbGxSZWFkbGluZUZ1bmMgaW5wdXQsCisgICAgICAgICBGSUxFICogb3V0cHV0KQoreworICAgIGNoYXIgcHJvbXB0WzUwMF0gPSAiLyA+ICI7CisgICAgY2hhciAqY21kbGluZSA9IE5VTEwsICpjdXI7CisgICAgY2hhciBjb21tYW5kWzEwMF07CisgICAgY2hhciBhcmdbNDAwXTsKKyAgICBpbnQgaTsKKyAgICB4bWxTaGVsbEN0eHRQdHIgY3R4dDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBsaXN0OworCisgICAgaWYgKGRvYyA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKyAgICAgICAgb3V0cHV0ID0gc3Rkb3V0OworICAgIGN0eHQgPSAoeG1sU2hlbGxDdHh0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNoZWxsQ3R4dCkpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdHh0LT5sb2FkZWQgPSAwOworICAgIGN0eHQtPmRvYyA9IGRvYzsKKyAgICBjdHh0LT5pbnB1dCA9IGlucHV0OworICAgIGN0eHQtPm91dHB1dCA9IG91dHB1dDsKKyAgICBjdHh0LT5maWxlbmFtZSA9IChjaGFyICopIHhtbFN0cmR1cCgoeG1sQ2hhciAqKSBmaWxlbmFtZSk7CisgICAgY3R4dC0+bm9kZSA9ICh4bWxOb2RlUHRyKSBjdHh0LT5kb2M7CisKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgIGN0eHQtPnBjdHh0ID0geG1sWFBhdGhOZXdDb250ZXh0KGN0eHQtPmRvYyk7CisgICAgaWYgKGN0eHQtPnBjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShjdHh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmIChjdHh0LT5ub2RlID09ICh4bWxOb2RlUHRyKSBjdHh0LT5kb2MpCisgICAgICAgICAgICBzbnByaW50Zihwcm9tcHQsIHNpemVvZihwcm9tcHQpLCAiJXMgPiAiLCAiLyIpOworICAgICAgICBlbHNlIGlmICgoY3R4dC0+bm9kZSAhPSBOVUxMKSAmJiAoY3R4dC0+bm9kZS0+bmFtZSkpCisgICAgICAgICAgICBzbnByaW50Zihwcm9tcHQsIHNpemVvZihwcm9tcHQpLCAiJXMgPiAiLCBjdHh0LT5ub2RlLT5uYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc25wcmludGYocHJvbXB0LCBzaXplb2YocHJvbXB0KSwgIj8gPiAiKTsKKyAgICAgICAgcHJvbXB0W3NpemVvZihwcm9tcHQpIC0gMV0gPSAwOworCisgICAgICAgIC8qCisgICAgICAgICAqIEdldCBhIG5ldyBjb21tYW5kIGxpbmUKKyAgICAgICAgICovCisgICAgICAgIGNtZGxpbmUgPSBjdHh0LT5pbnB1dChwcm9tcHQpOworICAgICAgICBpZiAoY21kbGluZSA9PSBOVUxMKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogUGFyc2UgdGhlIGNvbW1hbmQgaXRzZWxmCisgICAgICAgICAqLworICAgICAgICBjdXIgPSBjbWRsaW5lOworICAgICAgICB3aGlsZSAoKCpjdXIgPT0gJyAnKSB8fCAoKmN1ciA9PSAnXHQnKSkKKyAgICAgICAgICAgIGN1cisrOworICAgICAgICBpID0gMDsKKyAgICAgICAgd2hpbGUgKCgqY3VyICE9ICcgJykgJiYgKCpjdXIgIT0gJ1x0JykgJiYKKyAgICAgICAgICAgICAgICgqY3VyICE9ICdcbicpICYmICgqY3VyICE9ICdccicpKSB7CisgICAgICAgICAgICBpZiAoKmN1ciA9PSAwKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY29tbWFuZFtpKytdID0gKmN1cisrOworICAgICAgICB9CisgICAgICAgIGNvbW1hbmRbaV0gPSAwOworICAgICAgICBpZiAoaSA9PSAwKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogUGFyc2UgdGhlIGFyZ3VtZW50CisgICAgICAgICAqLworICAgICAgICB3aGlsZSAoKCpjdXIgPT0gJyAnKSB8fCAoKmN1ciA9PSAnXHQnKSkKKyAgICAgICAgICAgIGN1cisrOworICAgICAgICBpID0gMDsKKyAgICAgICAgd2hpbGUgKCgqY3VyICE9ICdcbicpICYmICgqY3VyICE9ICdccicpICYmICgqY3VyICE9IDApKSB7CisgICAgICAgICAgICBpZiAoKmN1ciA9PSAwKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgYXJnW2krK10gPSAqY3VyKys7CisgICAgICAgIH0KKyAgICAgICAgYXJnW2ldID0gMDsKKworICAgICAgICAvKgorICAgICAgICAgKiBzdGFydCBpbnRlcnByZXRpbmcgdGhlIGNvbW1hbmQKKyAgICAgICAgICovCisgICAgICAgIGlmICghc3RyY21wKGNvbW1hbmQsICJleGl0IikpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKCFzdHJjbXAoY29tbWFuZCwgInF1aXQiKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAoIXN0cmNtcChjb21tYW5kLCAiYnllIikpCisgICAgICAgICAgICBicmVhazsKKwkJaWYgKCFzdHJjbXAoY29tbWFuZCwgImhlbHAiKSkgeworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRiYXNlICAgICAgICAgZGlzcGxheSBYTUwgYmFzZSBvZiB0aGUgbm9kZVxuIik7CisJCSAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcdHNldGJhc2UgVVJJICBjaGFuZ2UgdGhlIFhNTCBiYXNlIG9mIHRoZSBub2RlXG4iKTsKKwkJICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlx0YnllICAgICAgICAgIGxlYXZlIHNoZWxsXG4iKTsKKwkJICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlx0Y2F0IFtub2RlXSAgIGRpc3BsYXkgbm9kZSBvciBjdXJyZW50IG5vZGVcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRjZCBbcGF0aF0gICAgY2hhbmdlIGRpcmVjdG9yeSB0byBwYXRoIG9yIHRvIHJvb3RcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRkaXIgW3BhdGhdICAgZHVtcHMgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBub2RlIChuYW1lc3BhY2UsIGF0dHJpYnV0ZXMsIGNvbnRlbnQpXG4iKTsKKwkJICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlx0ZHUgW3BhdGhdICAgIHNob3cgdGhlIHN0cnVjdHVyZSBvZiB0aGUgc3VidHJlZSB1bmRlciBwYXRoIG9yIHRoZSBjdXJyZW50IG5vZGVcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRleGl0ICAgICAgICAgbGVhdmUgc2hlbGxcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRoZWxwICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHBcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRmcmVlICAgICAgICAgZGlzcGxheSBtZW1vcnkgdXNhZ2VcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRsb2FkIFtuYW1lXSAgbG9hZCBhIG5ldyBkb2N1bWVudCB3aXRoIG5hbWVcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRscyBbcGF0aF0gICAgbGlzdCBjb250ZW50cyBvZiBwYXRoIG9yIHRoZSBjdXJyZW50IGRpcmVjdG9yeVxuIik7CisJCSAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcdHNldCB4bWxfZnJhZ21lbnQgcmVwbGFjZSB0aGUgY3VycmVudCBub2RlIGNvbnRlbnQgd2l0aCB0aGUgZnJhZ21lbnQgcGFyc2VkIGluIGNvbnRleHRcbiIpOworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisJCSAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcdHhwYXRoIGV4cHIgICBldmFsdWF0ZSB0aGUgWFBhdGggZXhwcmVzc2lvbiBpbiB0aGF0IGNvbnRleHQgYW5kIHByaW50IHRoZSByZXN1bHRcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRzZXRucyBuc3JlZyAgcmVnaXN0ZXIgYSBuYW1lc3BhY2UgdG8gYSBwcmVmaXggaW4gdGhlIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dFxuIik7CisJCSAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcdCAgICAgICAgICAgICBmb3JtYXQgZm9yIG5zcmVnIGlzOiBwcmVmaXg9W25zdXJpXSAoaS5lLiBwcmVmaXg9IHVuc2V0cyBhIHByZWZpeClcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRzZXRyb290bnMgICAgcmVnaXN0ZXIgYWxsIG5hbWVzcGFjZSBmb3VuZCBvbiB0aGUgcm9vdCBlbGVtZW50XG4iKTsKKwkJICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlx0ICAgICAgICAgICAgIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBpZiBhbnkgdXNlcyAnZGVmYXVsdG5zJyBwcmVmaXhcbiIpOworI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisJCSAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcdHB3ZCAgICAgICAgICBkaXNwbGF5IGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRxdWl0ICAgICAgICAgbGVhdmUgc2hlbGxcbiIpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHRzYXZlIFtuYW1lXSAgc2F2ZSB0aGlzIGRvY3VtZW50IHRvIG5hbWUgb3IgdGhlIG9yaWdpbmFsIG5hbWVcbiIpOworCQkgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiXHR3cml0ZSBbbmFtZV0gd3JpdGUgdGhlIGN1cnJlbnQgbm9kZSB0byB0aGUgZmlsZW5hbWVcbiIpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisJCSAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcdHZhbGlkYXRlICAgICBjaGVjayB0aGUgZG9jdW1lbnQgZm9yIGVycm9yc1xuIik7CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisJCSAgZnByaW50ZihjdHh0LT5vdXRwdXQsICJcdHJlbGF4bmcgcm5nICB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYWdhaXNudCB0aGUgUmVsYXgtTkcgc2NoZW1hc1xuIik7CisjZW5kaWYKKwkJICBmcHJpbnRmKGN0eHQtPm91dHB1dCwgIlx0Z3JlcCBzdHJpbmcgIHNlYXJjaCBmb3IgYSBzdHJpbmcgaW4gdGhlIHN1YnRyZWVcbiIpOworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjb21tYW5kLCAidmFsaWRhdGUiKSkgeworICAgICAgICAgICAgeG1sU2hlbGxWYWxpZGF0ZShjdHh0LCBhcmcsIE5VTEwsIE5VTEwpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjb21tYW5kLCAibG9hZCIpKSB7CisgICAgICAgICAgICB4bWxTaGVsbExvYWQoY3R4dCwgYXJnLCBOVUxMLCBOVUxMKTsKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjb21tYW5kLCAicmVsYXhuZyIpKSB7CisgICAgICAgICAgICB4bWxTaGVsbFJOR1ZhbGlkYXRlKGN0eHQsIGFyZywgTlVMTCwgTlVMTCk7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJzYXZlIikpIHsKKyAgICAgICAgICAgIHhtbFNoZWxsU2F2ZShjdHh0LCBhcmcsIE5VTEwsIE5VTEwpOworICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgIndyaXRlIikpIHsKKwkgICAgaWYgKChhcmcgPT0gTlVMTCkgfHwgKGFyZ1swXSA9PSAwKSkKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiV3JpdGUgY29tbWFuZCByZXF1aXJlcyBhIGZpbGVuYW1lIGFyZ3VtZW50XG4iKTsKKwkgICAgZWxzZQorCQl4bWxTaGVsbFdyaXRlKGN0eHQsIGFyZywgTlVMTCwgTlVMTCk7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjb21tYW5kLCAiZ3JlcCIpKSB7CisgICAgICAgICAgICB4bWxTaGVsbEdyZXAoY3R4dCwgYXJnLCBjdHh0LT5ub2RlLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJmcmVlIikpIHsKKyAgICAgICAgICAgIGlmIChhcmdbMF0gPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbE1lbVNob3coY3R4dC0+b3V0cHV0LCAwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IDA7CisKKyAgICAgICAgICAgICAgICBzc2NhbmYoYXJnLCAiJWQiLCAmbGVuKTsKKyAgICAgICAgICAgICAgICB4bWxNZW1TaG93KGN0eHQtPm91dHB1dCwgbGVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJwd2QiKSkgeworICAgICAgICAgICAgY2hhciBkaXJbNTAwXTsKKworICAgICAgICAgICAgaWYgKCF4bWxTaGVsbFB3ZChjdHh0LCBkaXIsIGN0eHQtPm5vZGUsIE5VTEwpKQorICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiJXNcbiIsIGRpcik7CisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjb21tYW5kLCAiZHUiKSkgeworICAgICAgICAgICAgeG1sU2hlbGxEdShjdHh0LCBOVUxMLCBjdHh0LT5ub2RlLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJiYXNlIikpIHsKKyAgICAgICAgICAgIHhtbFNoZWxsQmFzZShjdHh0LCBOVUxMLCBjdHh0LT5ub2RlLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJzZXQiKSkgeworCSAgICB4bWxTaGVsbFNldENvbnRlbnQoY3R4dCwgYXJnLCBjdHh0LT5ub2RlLCBOVUxMKTsKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgInNldG5zIikpIHsKKyAgICAgICAgICAgIGlmIChhcmdbMF0gPT0gMCkgeworCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkic2V0bnM6IHByZWZpeD1bbnN1cmldIHJlcXVpcmVkXG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgeG1sU2hlbGxSZWdpc3Rlck5hbWVzcGFjZShjdHh0LCBhcmcsIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgInNldHJvb3RucyIpKSB7CisJICAgIHhtbE5vZGVQdHIgcm9vdDsKKworCSAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoY3R4dC0+ZG9jKTsKKwkgICAgeG1sU2hlbGxSZWdpc3RlclJvb3ROYW1lc3BhY2VzKGN0eHQsIE5VTEwsIHJvb3QsIE5VTEwpOworICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgInhwYXRoIikpIHsKKyAgICAgICAgICAgIGlmIChhcmdbMF0gPT0gMCkgeworCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieHBhdGg6IGV4cHJlc3Npb24gcmVxdWlyZWRcbiIpOworCSAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGN0eHQtPnBjdHh0LT5ub2RlID0gY3R4dC0+bm9kZTsKKyAgICAgICAgICAgICAgICBsaXN0ID0geG1sWFBhdGhFdmFsKCh4bWxDaGFyICopIGFyZywgY3R4dC0+cGN0eHQpOworCQl4bWxYUGF0aERlYnVnRHVtcE9iamVjdChjdHh0LT5vdXRwdXQsIGxpc3QsIDApOworCQl4bWxYUGF0aEZyZWVPYmplY3QobGlzdCk7CisJICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJzZXRiYXNlIikpIHsKKyAgICAgICAgICAgIHhtbFNoZWxsU2V0QmFzZShjdHh0LCBhcmcsIGN0eHQtPm5vZGUsIE5VTEwpOworI2VuZGlmCisgICAgICAgIH0gZWxzZSBpZiAoKCFzdHJjbXAoY29tbWFuZCwgImxzIikpIHx8ICghc3RyY21wKGNvbW1hbmQsICJkaXIiKSkpIHsKKyAgICAgICAgICAgIGludCBkaXIgPSAoIXN0cmNtcChjb21tYW5kLCAiZGlyIikpOworCisgICAgICAgICAgICBpZiAoYXJnWzBdID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoZGlyKQorICAgICAgICAgICAgICAgICAgICB4bWxTaGVsbERpcihjdHh0LCBOVUxMLCBjdHh0LT5ub2RlLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHhtbFNoZWxsTGlzdChjdHh0LCBOVUxMLCBjdHh0LT5ub2RlLCBOVUxMKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY3R4dC0+cGN0eHQtPm5vZGUgPSBjdHh0LT5ub2RlOworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisgICAgICAgICAgICAgICAgY3R4dC0+cGN0eHQtPm5vZGUgPSBjdHh0LT5ub2RlOworICAgICAgICAgICAgICAgIGxpc3QgPSB4bWxYUGF0aEV2YWwoKHhtbENoYXIgKikgYXJnLCBjdHh0LT5wY3R4dCk7CisjZWxzZQorICAgICAgICAgICAgICAgIGxpc3QgPSBOVUxMOworI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisgICAgICAgICAgICAgICAgaWYgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxpc3QtPnR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXM6IG5vIHN1Y2ggbm9kZVxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfTk9ERVNFVDp7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmR4OworCisJCQkJaWYgKGxpc3QtPm5vZGVzZXR2YWwgPT0gTlVMTCkKKwkJCQkgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmR4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmR4IDwgbGlzdC0+bm9kZXNldHZhbC0+bm9kZU5yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZHgrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTaGVsbERpcihjdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPm5vZGVzZXR2YWwtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVUYWJbaW5keF0sIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNoZWxsTGlzdChjdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LT5ub2Rlc2V0dmFsLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZVRhYltpbmR4XSwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBCb29sZWFuXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhIG51bWJlclxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfU1RSSU5HOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBzdHJpbmdcbiIsIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFhQQVRIX1BPSU5UOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBwb2ludFxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfUkFOR0U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhIHJhbmdlXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgcmFuZ2VcbiIsIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFhQQVRIX1VTRVJTOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgdXNlci1kZWZpbmVkXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhbiBYU0xUIHZhbHVlIHRyZWVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aEZyZWVPYmplY3QobGlzdCk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlczogbm8gc3VjaCBub2RlXG4iLCBhcmcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdHh0LT5wY3R4dC0+bm9kZSA9IE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjb21tYW5kLCAiY2QiKSkgeworICAgICAgICAgICAgaWYgKGFyZ1swXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgY3R4dC0+bm9kZSA9ICh4bWxOb2RlUHRyKSBjdHh0LT5kb2M7CisgICAgICAgICAgICB9IGVsc2UgeworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisgICAgICAgICAgICAgICAgY3R4dC0+cGN0eHQtPm5vZGUgPSBjdHh0LT5ub2RlOworICAgICAgICAgICAgICAgIGxpc3QgPSB4bWxYUGF0aEV2YWwoKHhtbENoYXIgKikgYXJnLCBjdHh0LT5wY3R4dCk7CisjZWxzZQorICAgICAgICAgICAgICAgIGxpc3QgPSBOVUxMOworI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisgICAgICAgICAgICAgICAgaWYgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxpc3QtPnR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXM6IG5vIHN1Y2ggbm9kZVxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfTk9ERVNFVDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC0+bm9kZXNldHZhbCAhPSBOVUxMKSB7CisJCQkJaWYgKGxpc3QtPm5vZGVzZXR2YWwtPm5vZGVOciA9PSAxKSB7CisJCQkJICAgIGN0eHQtPm5vZGUgPSBsaXN0LT5ub2Rlc2V0dmFsLT5ub2RlVGFiWzBdOworCQkJCSAgICBpZiAoKGN0eHQtPm5vZGUgIT0gTlVMTCkgJiYKKwkJCQkgICAgICAgIChjdHh0LT5ub2RlLT50eXBlID09CisJCQkJCSBYTUxfTkFNRVNQQUNFX0RFQ0wpKSB7CisJCQkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCQkJICAgICJjYW5ub3QgY2QgdG8gbmFtZXNwYWNlXG4iKTsKKwkJCQkJY3R4dC0+bm9kZSA9IE5VTEw7CisJCQkJICAgIH0KKwkJCQl9IGVsc2UKKwkJCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJCQkgICAgIiVzIGlzIGEgJWQgTm9kZSBTZXRcbiIsCisJCQkJCQkgICAgYXJnLAorCQkJCQkJICAgIGxpc3QtPm5vZGVzZXR2YWwtPm5vZGVOcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGFuIGVtcHR5IE5vZGUgU2V0XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfQk9PTEVBTjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgQm9vbGVhblxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfTlVNQkVSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBudW1iZXJcbiIsIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFhQQVRIX1NUUklORzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgc3RyaW5nXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9QT0lOVDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgcG9pbnRcbiIsIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFhQQVRIX1JBTkdFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSByYW5nZVxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhIHJhbmdlXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9VU0VSUzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIHVzZXItZGVmaW5lZFxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfWFNMVF9UUkVFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYW4gWFNMVCB2YWx1ZSB0cmVlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKyAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhGcmVlT2JqZWN0KGxpc3QpOworI2VuZGlmCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXM6IG5vIHN1Y2ggbm9kZVxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3R4dC0+cGN0eHQtPm5vZGUgPSBOVUxMOworICAgICAgICAgICAgfQorI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgImNhdCIpKSB7CisgICAgICAgICAgICBpZiAoYXJnWzBdID09IDApIHsKKyAgICAgICAgICAgICAgICB4bWxTaGVsbENhdChjdHh0LCBOVUxMLCBjdHh0LT5ub2RlLCBOVUxMKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY3R4dC0+cGN0eHQtPm5vZGUgPSBjdHh0LT5ub2RlOworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisgICAgICAgICAgICAgICAgY3R4dC0+cGN0eHQtPm5vZGUgPSBjdHh0LT5ub2RlOworICAgICAgICAgICAgICAgIGxpc3QgPSB4bWxYUGF0aEV2YWwoKHhtbENoYXIgKikgYXJnLCBjdHh0LT5wY3R4dCk7CisjZWxzZQorICAgICAgICAgICAgICAgIGxpc3QgPSBOVUxMOworI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisgICAgICAgICAgICAgICAgaWYgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxpc3QtPnR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXM6IG5vIHN1Y2ggbm9kZVxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfTk9ERVNFVDp7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmR4OworCisJCQkJaWYgKGxpc3QtPm5vZGVzZXR2YWwgPT0gTlVMTCkKKwkJCQkgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmR4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmR4IDwgbGlzdC0+bm9kZXNldHZhbC0+bm9kZU5yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZHgrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoY3R4dC0+b3V0cHV0LCAiIC0tLS0tLS1cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2hlbGxDYXQoY3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPm5vZGVzZXR2YWwtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZVRhYltpbmR4XSwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBCb29sZWFuXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhIG51bWJlclxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfU1RSSU5HOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBzdHJpbmdcbiIsIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFhQQVRIX1BPSU5UOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgYSBwb2ludFxuIiwgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWFBBVEhfUkFOR0U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhIHJhbmdlXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGlzIGEgcmFuZ2VcbiIsIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFhQQVRIX1VTRVJTOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgaXMgdXNlci1kZWZpbmVkXG4iLCBhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyBpcyBhbiBYU0xUIHZhbHVlIHRyZWVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aEZyZWVPYmplY3QobGlzdCk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlczogbm8gc3VjaCBub2RlXG4iLCBhcmcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdHh0LT5wY3R4dC0+bm9kZSA9IE5VTEw7CisgICAgICAgICAgICB9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biBjb21tYW5kICVzXG4iLCBjb21tYW5kKTsKKyAgICAgICAgfQorICAgICAgICBmcmVlKGNtZGxpbmUpOyAgICAgICAgICAvKiBub3QgeG1sRnJlZSBoZXJlICEgKi8KKwljbWRsaW5lID0gTlVMTDsKKyAgICB9CisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKyAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eHQtPnBjdHh0KTsKKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworICAgIGlmIChjdHh0LT5sb2FkZWQpIHsKKyAgICAgICAgeG1sRnJlZURvYyhjdHh0LT5kb2MpOworICAgIH0KKyAgICBpZiAoY3R4dC0+ZmlsZW5hbWUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShjdHh0LT5maWxlbmFtZSk7CisgICAgeG1sRnJlZShjdHh0KTsKKyAgICBpZiAoY21kbGluZSAhPSBOVUxMKQorICAgICAgICBmcmVlKGNtZGxpbmUpOyAgICAgICAgICAvKiBub3QgeG1sRnJlZSBoZXJlICEgKi8KK30KKworI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisjZGVmaW5lIGJvdHRvbV9kZWJ1Z1hNTAorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfREVCVUdfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kZXBjb21wIGIvbGlieG1sMi0yLjcuNy9kZXBjb21wCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRmOGVlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RlcGNvbXAKQEAgLTAsMCArMSw2MzAgQEAKKyMhIC9iaW4vc2gKKyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cworCitzY3JpcHR2ZXJzaW9uPTIwMDktMDQtMjguMjE7ICMgVVRDCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEZyZWUKKyMgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyMgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKKyMgT3JpZ2luYWxseSB3cml0dGVuIGJ5IEFsZXhhbmRyZSBPbGl2YSA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+LgorCitjYXNlICQxIGluCisgICcnKQorICAgICBlY2hvICIkMDogTm8gY29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCisgICAgIGV4aXQgMTsKKyAgICAgOzsKKyAgLWggfCAtLWgqKQorICAgIGNhdCA8PFxFT0YKK1VzYWdlOiBkZXBjb21wIFstLWhlbHBdIFstLXZlcnNpb25dIFBST0dSQU0gW0FSR1NdCisKK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNvbXBpbGUgYSBmaWxlLCBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcworYXMgc2lkZS1lZmZlY3RzLgorCitFbnZpcm9ubWVudCB2YXJpYWJsZXM6CisgIGRlcG1vZGUgICAgIERlcGVuZGVuY3kgdHJhY2tpbmcgbW9kZS4KKyAgc291cmNlICAgICAgU291cmNlIGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycuCisgIG9iamVjdCAgICAgIE9iamVjdCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMgQVJHUycuCisgIERFUERJUiAgICAgIGRpcmVjdG9yeSB3aGVyZSB0byBzdG9yZSBkZXBlbmRlbmNpZXMuCisgIGRlcGZpbGUgICAgIERlcGVuZGVuY3kgZmlsZSB0byBvdXRwdXQuCisgIHRtcGRlcGZpbGUgIFRlbXBvcmFyeSBmaWxlIHRvIHVzZSB3aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMuCisgIGxpYnRvb2wgICAgIFdoZXRoZXIgbGlidG9vbCBpcyB1c2VkICh5ZXMvbm8pLgorCitSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LgorRU9GCisgICAgZXhpdCAkPworICAgIDs7CisgIC12IHwgLS12KikKKyAgICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgorICAgIGV4aXQgJD8KKyAgICA7OworZXNhYworCitpZiB0ZXN0IC16ICIkZGVwbW9kZSIgfHwgdGVzdCAteiAiJHNvdXJjZSIgfHwgdGVzdCAteiAiJG9iamVjdCI7IHRoZW4KKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCisgIGV4aXQgMQorZmkKKworIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9iYXIubyBvciBzdWIvYmFyLm9iaiBnbyBpbnRvIHN1Yi8uZGVwcy9iYXIuUG8uCitkZXBmaWxlPSR7ZGVwZmlsZS1gZWNobyAiJG9iamVjdCIgfAorICBzZWQgJ3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScvJnw7c3xcLlwoW14uXSpcKSR8LlBcMXw7c3xQb2JqJHxQb3wnYH0KK3RtcGRlcGZpbGU9JHt0bXBkZXBmaWxlLWBlY2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5UXDEvJ2B9CisKK3JtIC1mICIkdG1wZGVwZmlsZSIKKworIyBTb21lIG1vZGVzIHdvcmsganVzdCBsaWtlIG90aGVyIG1vZGVzLCBidXQgdXNlIGRpZmZlcmVudCBmbGFncy4gIFdlCisjIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAorIyB0byBtYWtlIGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQgd2UgKmNhbm5vdCogdXNlIGEgY2FzZQorIyBoZXJlLCBiZWNhdXNlIHRoaXMgZmlsZSBjYW4gb25seSBjb250YWluIG9uZSBjYXNlIHN0YXRlbWVudC4KK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCisgICMgSFAgY29tcGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgorICBnY2NmbGFnPS1NCisgIGRlcG1vZGU9Z2NjCitmaQorCitpZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0aCBhIGRpZmZlcmVudCBhcmd1bWVudC4KKyAgIGRhc2htZmxhZz0teE0KKyAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQKK2ZpCisKK2N5Z3BhdGhfdT0iY3lncGF0aCAtdSAtZiAtIgoraWYgdGVzdCAiJGRlcG1vZGUiID0gbXN2Y21zeXM7IHRoZW4KKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgbXN2aXN1YWxjcHAgYnV0IHcvbyBjeWdwYXRoIHRyYW5zbGF0aW9uLgorICAgIyBKdXN0IGNvbnZlcnQgdGhlIGJhY2tzbGFzaC1lc2NhcGVkIGJhY2tzbGFzaGVzIHRvIHNpbmdsZSBmb3J3YXJkCisgICAjIHNsYXNoZXMgdG8gc2F0aXNmeSBkZXBlbmQubTQKKyAgIGN5Z3BhdGhfdT0ic2VkIHMsXFxcXFxcXFwsLyxnIgorICAgZGVwbW9kZT1tc3Zpc3VhbGNwcAorZmkKKworY2FzZSAiJGRlcG1vZGUiIGluCitnY2MzKQorIyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5IHRyYWNraW5nIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQKKyMjIHdlIHdhbnQuICBZYXkhICBOb3RlOiBmb3Igc29tZSByZWFzb24gbGlidG9vbCAxLjQgZG9lc24ndCBsaWtlCisjIyBpdCBpZiAtTUQgLU1QIGNvbWVzIGFmdGVyIHRoZSAtTUYgc3R1ZmYuICBIbW0uCisjIyBVbmZvcnR1bmF0ZWx5LCBGcmVlQlNEIGM4OSBhY2NlcHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMgdXBvbgorIyMgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCBvcmRlcjsgc28gYWRkIHRoZSBmbGFncyB3aGVyZSB0aGV5CisjIyBhcHBlYXIgaW4gZGVwZW5kMi5hbS4gIE5vdGUgdGhhdCB0aGUgc2xvd2Rvd24gaW5jdXJyZWQgaGVyZQorIyMgYWZmZWN0cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERFUCUgc2hvcnRjdXRzIHRoaXMuCisgIGZvciBhcmcKKyAgZG8KKyAgICBjYXNlICRhcmcgaW4KKyAgICAtYykgc2V0IGZub3JkICIkQCIgLU1UICIkb2JqZWN0IiAtTUQgLU1QIC1NRiAiJHRtcGRlcGZpbGUiICIkYXJnIiA7OworICAgICopICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIgOzsKKyAgICBlc2FjCisgICAgc2hpZnQgIyBmbm9yZAorICAgIHNoaWZ0ICMgJGFyZworICBkb25lCisgICIkQCIKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIG12ICIkdG1wZGVwZmlsZSIgIiRkZXBmaWxlIgorICA7OworCitnY2MpCisjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncworIyMgd2h5IHdlIHBpY2sgdGhpcyByYXRoZXIgb2JzY3VyZSBtZXRob2Q6CisjIyAtIERvbid0IHdhbnQgdG8gdXNlIC1NRCBiZWNhdXNlIHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAorIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5LgorIyMgICAoV2UgbWlnaHQgZW5kIHVwIGRvaW5nIHRoaXMgYW55d2F5IHRvIHN1cHBvcnQgb3RoZXIgY29tcGlsZXJzLikKKyMjIC0gVGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFyaWFibGUgbWFrZXMgZ2NjIGFjdCBsaWtlCisjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KKyMjIC0gVXNpbmcgLU0gZGlyZWN0bHkgbWVhbnMgcnVubmluZyB0aGUgY29tcGlsZXIgdHdpY2UgKGV2ZW4gd29yc2UKKyMjICAgdGhhbiByZW5hbWluZykuCisgIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgorICAgIGdjY2ZsYWc9LU1ELAorICBmaQorICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIHJtIC1mICIkZGVwZmlsZSIKKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egorIyMgVGhlIHNlY29uZCAtZSBleHByZXNzaW9uIGhhbmRsZXMgRE9TLXN0eWxlIGZpbGUgbmFtZXMgd2l0aCBkcml2ZSBsZXR0ZXJzLgorICBzZWQgLWUgJ3MvXlteOl0qOiAvIC8nIFwKKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKyMjIFRoaXMgbmV4dCBwaWVjZSBvZiBtYWdpYyBhdm9pZHMgdGhlIGBkZWxldGVkIGhlYWRlciBmaWxlJyBwcm9ibGVtLgorIyMgVGhlIHByb2JsZW0gaXMgdGhhdCB3aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5QIGZpbGUKKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcworIyMgdHlwaWNhbGx5IG5vIHdheSB0byByZWJ1aWxkIHRoZSBoZWFkZXIpLiAgV2UgYXZvaWQgdGhpcyBieSBhZGRpbmcKKyMjIGR1bW15IGRlcGVuZGVuY2llcyBmb3IgZWFjaCBoZWFkZXIgZmlsZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KKyMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5LgorICB0ciAnICcgJworJyA8ICIkdG1wZGVwZmlsZSIgfAorIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5CisjIyB0aGF0IHRoZSBzcGFjZSBtZWFucyBzb21ldGhpbmcsIHdlIGFkZCBhIHNwYWNlIHRvIHRoZSBvdXRwdXQgYXMKKyMjIHdlbGwuCisjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCitocCkKKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5CisgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1biwKKyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKyAgZXhpdCAxCisgIDs7CisKK3NnaSkKKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKKyAgZWxzZQorICAgICIkQCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKKyAgZmkKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIHJtIC1mICIkZGVwZmlsZSIKKworICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKKyAgICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorCisgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQorICAgICMgY2xldmVyIGFuZCByZXBsYWNlIHRoaXMgd2l0aCBzZWQgY29kZSwgYXMgSVJJWCBzZWQgd29uJ3QgaGFuZGxlCisgICAgIyBsaW5lcyB3aXRoIG1vcmUgdGhhbiBhIGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCisgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKKyAgICAjIHRoZSBJUklYIGNjIGFkZHMgY29tbWVudHMgbGlrZSBgIzpmZWMnIHRvIHRoZSBlbmQgb2YgdGhlCisgICAgIyBkZXBlbmRlbmN5IGxpbmUuCisgICAgdHIgJyAnICcKKycgPCAiJHRtcGRlcGZpbGUiIFwKKyAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgfCBcCisgICAgdHIgJworJyAnICcgPj4gIiRkZXBmaWxlIgorICAgIGVjaG8gPj4gIiRkZXBmaWxlIgorCisgICAgIyBUaGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkgZW50cnkgZm9yIGVhY2ggaGVhZGVyIGZpbGUuCisgICAgdHIgJyAnICcKKycgPCAiJHRtcGRlcGZpbGUiIFwKKyAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyAtZSAncy8kLzovJyBcCisgICA+PiAiJGRlcGZpbGUiCisgIGVsc2UKKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAorICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCisgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKyAgZmkKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCithaXgpCisgICMgVGhlIEMgZm9yIEFJWCBDb21waWxlciB1c2VzIC1NIGFuZCBvdXRwdXRzIHRoZSBkZXBlbmRlbmNpZXMKKyAgIyBpbiBhIC51IGZpbGUuICBJbiBvbGRlciB2ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUKKyAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQorICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGluZm9ybWF0aW9uLgorICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJlY3RvcnkgaW4gYm90aCBjYXNlcy4KKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKyAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9CisgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKKyAgICB0bXBkZXBmaWxlMj0kYmFzZS51CisgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLnUKKyAgICAiJEAiIC1XYywtTQorICBlbHNlCisgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKKyAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UudQorICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS51CisgICAgIiRAIiAtTQorICBmaQorICBzdGF0PSQ/CisKKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisgIGVsc2UKKyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorICAgIGV4aXQgJHN0YXQKKyAgZmkKKworICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorICBkbworICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworICBkb25lCisgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgorICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgorICAgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCisgICAgIyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgorICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgorICAgIHNlZCAtZSAncyxeLipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorICBlbHNlCisgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKKyAgICAjIHN0b3JlIGEgZHVtbXkgY29tbWVudCBsaW5lLCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgorICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisgIGZpCisgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgOzsKKworaWNjKQorICAjIEludGVsJ3MgQyBjb21waWxlciB1bmRlcnN0YW5kcyBgLU1EIC1NRiBmaWxlJy4gIEhvd2V2ZXIgb24KKyAgIyAgICBpY2MgLU1EIC1NRiBmb28uZCAtYyAtbyBzdWIvZm9vLm8gc3ViL2Zvby5jCisgICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0aCBzb21ldGhpbmcgbGlrZQorICAjICAgIGZvby5vOiBzdWIvZm9vLmMKKyAgIyAgICBmb28ubzogc3ViL2Zvby5oCisgICMgd2hpY2ggaXMgd3JvbmcuICBXZSB3YW50OgorICAjICAgIHN1Yi9mb28ubzogc3ViL2Zvby5jCisgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmgKKyAgIyAgICBzdWIvZm9vLmM6CisgICMgICAgc3ViL2Zvby5oOgorICAjIElDQyA3LjEgd2lsbCBvdXRwdXQKKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIHN1Yi9mb28uaAorICAjIGFuZCB3aWxsIHdyYXAgbG9uZyBsaW5lcyB1c2luZyBcIDoKKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIC4uLiBcCisgICMgICAgIHN1Yi9mb28uaCAuLi4gXAorICAjICAgICAuLi4KKworICAiJEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxlIgorICBzdGF0PSQ/CisgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorICBlbHNlCisgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICAgIGV4aXQgJHN0YXQKKyAgZmkKKyAgcm0gLWYgIiRkZXBmaWxlIgorICAjIEVhY2ggbGluZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJywKKyAgIyBvciBgZm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRlcDQuaCBcJy4KKyAgIyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KKyAgIyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgorICBzZWQgInMsXlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgICMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KKyAgIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorICBzZWQgJ3MsXlteOl0qOiBcKC4qXCkkLFwxLDtzL15cXCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZpbGUiIHwKKyAgICBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCitocDIpCisgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRvZXMgbm90IHdvcmsgd2l0aCBhQ0MgKEMrKykgYW5kIEhQJ3MgaWE2NAorICAjIGNvbXBpbGVycywgd2hpY2ggaGF2ZSBpbnRlZ3JhdGVkIHByZXByb2Nlc3NvcnMuICBUaGUgY29ycmVjdCBvcHRpb24KKyAgIyB0byB1c2Ugd2l0aCB0aGVzZSBpcyArTWFrZWQ7IGl0IHdyaXRlcyBkZXBlbmRlbmNpZXMgdG8gYSBmaWxlIG5hbWVkCisgICMgJ2Zvby5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZpbGUsIHdoZXJldmVyIHRoYXQKKyAgIyBoYXBwZW5zIHRvIGJlLgorICAjIE11Y2ggb2YgdGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB0cnU2NCBjYXNlOyBzZWUgY29tbWVudHMgdGhlcmUuCisgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCisgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCisgICAgdG1wZGVwZmlsZTI9JGRpci5saWJzLyRiYXNlLmQKKyAgICAiJEAiIC1XYywrTWFrZWQKKyAgZWxzZQorICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCisgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKKyAgICAiJEAiICtNYWtlZAorICBmaQorICBzdGF0PSQ/CisgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorICBlbHNlCisgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCisgICAgIGV4aXQgJHN0YXQKKyAgZmkKKworICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIgorICBkbworICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworICBkb25lCisgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgorICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorICAgICMgQWRkIGBkZXBlbmRlbnQuaDonIGxpbmVzLgorICAgIHNlZCAtbmUgJzIsJHsKKwkgICAgICAgcy9eICovLworCSAgICAgICBzLyBcXCokLy8KKwkgICAgICAgcy8kLzovCisJICAgICAgIHAKKwkgICAgIH0nICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorICBlbHNlCisgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKyAgZmkKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUyIgorICA7OworCit0cnU2NCkKKyAgICMgVGhlIFRydTY0IGNvbXBpbGVyIHVzZXMgLU1EIHRvIGdlbmVyYXRlIGRlcGVuZGVuY2llcyBhcyBhIHNpZGUKKyAgICMgZWZmZWN0LiAgYGNjIC1NRCAtbyBmb28ubyAuLi4nIHB1dHMgdGhlIGRlcGVuZGVuY2llcyBpbnRvIGBmb28uby5kJy4KKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKKyAgICMgZGVwZW5kZW5jaWVzIGluIGBmb28uZCcgaW5zdGVhZCwgc28gd2UgY2hlY2sgZm9yIHRoYXQgdG9vLgorICAgIyBTdWJkaXJlY3RvcmllcyBhcmUgcmVzcGVjdGVkLgorICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKyAgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorICAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAorCisgICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKyAgICAgICMgV2l0aCBUcnU2NCBjYywgc2hhcmVkIG9iamVjdHMgY2FuIGFsc28gYmUgdXNlZCB0byBtYWtlIGEKKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmllcyB0bworICAgICAgIyBoYW5kbGUgYm90aCBzaGFyZWQgYW5kIHN0YXRpYyBsaWJyYXJpZXMgaW4gYSBzaW5nbGUgY29tcGlsYXRpb24uCisgICAgICAjIFdpdGggbGlidG9vbCAxLjQsIGRlcGVuZGVuY2llcyB3ZXJlIG91dHB1dCBpbiAkZGlyLmxpYnMvJGJhc2UubG8uZC4KKyAgICAgICMKKyAgICAgICMgV2l0aCBsaWJ0b29sIDEuNSB0aGlzIGV4Y2VwdGlvbiB3YXMgcmVtb3ZlZCwgYW5kIGxpYnRvb2wgbm93CisgICAgICAjIGdlbmVyYXRlcyAyIHNlcGFyYXRlIG9iamVjdHMgZm9yIHRoZSAyIGxpYnJhcmllcy4gIFRoZXNlIHR3bworICAgICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAorICAgICAgIyBpbiAkZGlyJGJhc2Uuby5kLiAgV2UgaGF2ZSB0byBjaGVjayBmb3IgYm90aCBmaWxlcywgYmVjYXVzZQorICAgICAgIyBvbmUgb2YgdGhlIHR3byBjb21waWxhdGlvbnMgY2FuIGJlIGRpc2FibGVkLiAgV2Ugc2hvdWxkIHByZWZlcgorICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKKyAgICAgICMgYXV0b21hdGljYWxseSBjbGVhbmVkIHdoZW4gLmxpYnMvIGlzIGRlbGV0ZWQsIHdoaWxlIGlnbm9yaW5nCisgICAgICAjIHRoZSBmb3JtZXIgd291bGQgY2F1c2UgYSBkaXN0Y2xlYW5jaGVjayBwYW5pYy4KKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAorICAgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLm8uZCAgICAgICAgICAjIGxpYnRvb2wgMS41CisgICAgICB0bXBkZXBmaWxlMz0kZGlyLmxpYnMvJGJhc2Uuby5kICAgICMgbGlidG9vbCAxLjUKKyAgICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0CisgICAgICAiJEAiIC1XYywtTUQKKyAgIGVsc2UKKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCisgICAgICB0bXBkZXBmaWxlMz0kZGlyJGJhc2UuZAorICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKKyAgICAgICIkQCIgLU1ECisgICBmaQorCisgICBzdGF0PSQ/CisgICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgIGVsc2UKKyAgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCisgICAgICBleGl0ICRzdGF0CisgICBmaQorCisgICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgorICAgZG8KKyAgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCisgICBkb25lCisgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKyAgICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgICAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10uCisgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKyAgIGVsc2UKKyAgICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisgICBmaQorICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICAgOzsKKworI25vc2lkZWVmZmVjdCkKKyAgIyBUaGlzIGNvbW1lbnQgYWJvdmUgaXMgdXNlZCBieSBhdXRvbWFrZSB0byB0ZWxsIHNpZGUtZWZmZWN0CisgICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCisKK2Rhc2htc3Rkb3V0KQorICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dCwgcmVnYXJkbGVzcyBvZiAtby4KKyAgIiRAIiB8fCBleGl0ICQ/CisKKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKyAgICAgIHNoaWZ0CisgICAgZG9uZQorICAgIHNoaWZ0CisgIGZpCisKKyAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgorICBJRlM9IiAiCisgIGZvciBhcmcKKyAgZG8KKyAgICBjYXNlICRhcmcgaW4KKyAgICAtbykKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgICRvYmplY3QpCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAqKQorICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciCisgICAgICBzaGlmdCAjIGZub3JkCisgICAgICBzaGlmdCAjICRhcmcKKyAgICAgIDs7CisgICAgZXNhYworICBkb25lCisKKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCisgICMgUmVxdWlyZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBiZWZvcmUgc2VhcmNoaW5nIGZvciBgOicKKyAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBUaGlzIGlzIHRvIGNvcGUgd2l0aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgorICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgorICAiJEAiICRkYXNobWZsYWcgfAorICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1bXjpdKlw6WyAgICBdKjonIiRvYmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgorICBybSAtZiAiJGRlcGZpbGUiCisgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgIHRyICcgJyAnCisnIDwgIiR0bXBkZXBmaWxlIiB8IFwKKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiCisgIDs7CisKK2Rhc2hYbXN0ZG91dCkKKyAgIyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBlbmQubTQuICBJdCBpcyBuZXZlciBhY3R1YWxseQorICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KKyAgZXhpdCAxCisgIDs7CisKK21ha2VkZXBlbmQpCisgICIkQCIgfHwgZXhpdCAkPworICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCisgICAgICBzaGlmdAorICAgIGRvbmUKKyAgICBzaGlmdAorICBmaQorICAjIFggbWFrZWRlcGVuZAorICBzaGlmdAorICBjbGVhcmVkPW5vIGVhdD1ubworICBmb3IgYXJnCisgIGRvCisgICAgY2FzZSAkY2xlYXJlZCBpbgorICAgIG5vKQorICAgICAgc2V0ICIiOyBzaGlmdAorICAgICAgY2xlYXJlZD15ZXMgOzsKKyAgICBlc2FjCisgICAgaWYgdGVzdCAkZWF0ID0geWVzOyB0aGVuCisgICAgICBlYXQ9bm8KKyAgICAgIGNvbnRpbnVlCisgICAgZmkKKyAgICBjYXNlICIkYXJnIiBpbgorICAgIC1EKnwtSSopCisgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7CisgICAgIyBTdHJpcCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1vdmUKKyAgICAjIHRoZSBvYmplY3QgdG9vLCBvdGhlcndpc2UgbWFrZWRlcGVuZCB3aWxsIHBhcnNlIGl0IGFzIGEgc291cmNlIGZpbGUuCisgICAgLWFyY2gpCisgICAgICBlYXQ9eWVzIDs7CisgICAgLSp8JG9iamVjdCkKKyAgICAgIDs7CisgICAgKikKKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKKyAgICBlc2FjCisgIGRvbmUKKyAgb2JqX3N1ZmZpeD1gZWNobyAiJG9iamVjdCIgfCBzZWQgJ3MvXi4qXC4vLi8nYAorICB0b3VjaCAiJHRtcGRlcGZpbGUiCisgICR7TUFLRURFUEVORC1tYWtlZGVwZW5kfSAtbyIkb2JqX3N1ZmZpeCIgLWYiJHRtcGRlcGZpbGUiICIkQCIKKyAgcm0gLWYgIiRkZXBmaWxlIgorICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorICBzZWQgJzEsMmQnICIkdG1wZGVwZmlsZSIgfCB0ciAnICcgJworJyB8IFwKKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIuYmFrCisgIDs7CisKK2NwcCkKKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCisgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQuCisgICIkQCIgfHwgZXhpdCAkPworCisgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCisgICAgICBzaGlmdAorICAgIGRvbmUKKyAgICBzaGlmdAorICBmaQorCisgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KKyAgSUZTPSIgIgorICBmb3IgYXJnCisgIGRvCisgICAgY2FzZSAkYXJnIGluCisgICAgLW8pCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAkb2JqZWN0KQorICAgICAgc2hpZnQKKyAgICAgIDs7CisgICAgKikKKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgorICAgICAgc2hpZnQgIyBmbm9yZAorICAgICAgc2hpZnQgIyAkYXJnCisgICAgICA7OworICAgIGVzYWMKKyAgZG9uZQorCisgICIkQCIgLUUgfAorICAgIHNlZCAtbiAtZSAnL14jIFswLTldWzAtOV0qICJcKFteIl0qXCkiLiovIHM6OiBcMSBcXDpwJyBcCisgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIHwKKyAgICBzZWQgJyQgczogXFwkOjonID4gIiR0bXBkZXBmaWxlIgorICBybSAtZiAiJGRlcGZpbGUiCisgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorICBzZWQgPCAiJHRtcGRlcGZpbGUiICcvXiQvZDtzL14gLy87cy8gXFwkLy87cy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiCisgIDs7CisKK21zdmlzdWFsY3BwKQorICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKyAgIiRAIiB8fCBleGl0ICQ/CisKKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKyAgICAgIHNoaWZ0CisgICAgZG9uZQorICAgIHNoaWZ0CisgIGZpCisKKyAgSUZTPSIgIgorICBmb3IgYXJnCisgIGRvCisgICAgY2FzZSAiJGFyZyIgaW4KKyAgICAtbykKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgICRvYmplY3QpCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikKKwlzZXQgZm5vcmQgIiRAIgorCXNoaWZ0CisJc2hpZnQKKwk7OworICAgICopCisJc2V0IGZub3JkICIkQCIgIiRhcmciCisJc2hpZnQKKwlzaGlmdAorCTs7CisgICAgZXNhYworICBkb25lCisgICIkQCIgLUUgMj4vZGV2L251bGwgfAorICBzZWQgLW4gJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIvIHM6OlwxOnAnIHwgJGN5Z3BhdGhfdSB8IHNvcnQgLXUgPiAiJHRtcGRlcGZpbGUiCisgIHJtIC1mICIkZGVwZmlsZSIKKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAtbiAtZSAncyUgJVxcICVnJyAtZSAnL15cKC4qXCkkLyBzOjoJXDEgXFw6cCcgPj4gIiRkZXBmaWxlIgorICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCisgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUgJ3MlICVcXCAlZycgLWUgJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCisgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgOzsKKworbXN2Y21zeXMpCisgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBieQorICAjIGxvb2tpbmcgYXQgdGhlIHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBuZXZlciBiZSBydW4sCisgICMgc2luY2UgaXQgaXMgY2hlY2tlZCBmb3IgYWJvdmUuCisgIGV4aXQgMQorICA7OworCitub25lKQorICBleGVjICIkQCIKKyAgOzsKKworKikKKyAgZWNobyAiVW5rbm93biBkZXBtb2RlICRkZXBtb2RlIiAxPiYyCisgIGV4aXQgMQorICA7OworZXNhYworCitleGl0IDAKKworIyBMb2NhbCBWYXJpYWJsZXM6CisjIG1vZGU6IHNoZWxsLXNjcmlwdAorIyBzaC1pbmRlbnRhdGlvbjogMgorIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCisjIEVuZDoKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZGljdC5jIGIvbGlieG1sMi0yLjcuNy9kaWN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VmZjIzMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZGljdC5jCkBAIC0wLDAgKzEsMTEwMCBAQAorLyoKKyAqIGRpY3QuYzogZGljdGlvbmFyeSBvZiByZXVzYWJsZSBzdHJpbmdzLCBqdXN0IHVzZWQgdG8gYXZvaWQgYWxsb2NhdGlvbgorICogICAgICAgICBhbmQgZnJlZWluZyBvcGVyYXRpb25zLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMyBEYW5pZWwgVmVpbGxhcmQuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBXSVRIT1VUIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVElCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBUSEUgQVVUSE9SUyBBTkQKKyAqIENPTlRSSUJVVE9SUyBBQ0NFUFQgTk8gUkVTUE9OU0lCSUxJVFkgSU4gQU5ZIENPTkNFSVZBQkxFIE1BTk5FUi4KKyAqCisgKiBBdXRob3I6IGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaWZkZWYgSEFWRV9TVERJTlRfSAorI2luY2x1ZGUgPHN0ZGludC5oPgorI2Vsc2UKKyNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2VsaWYgZGVmaW5lZChXSU4zMikKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQzMiB1aW50MzJfdDsKKyNlbmRpZgorI2VuZGlmCisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGljdC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorCisvKiAjZGVmaW5lIERFQlVHX0dST1cgKi8KKy8qICNkZWZpbmUgRElDVF9ERUJVR19QQVRURVJOUyAqLworCisjZGVmaW5lIE1BWF9IQVNIX0xFTiAzCisjZGVmaW5lIE1JTl9ESUNUX1NJWkUgMTI4CisjZGVmaW5lIE1BWF9ESUNUX0hBU0ggOCAqIDIwNDgKKyNkZWZpbmUgV0lUSF9CSUdfS0VZCisKKyNpZmRlZiBXSVRIX0JJR19LRVkKKyNkZWZpbmUgeG1sRGljdENvbXB1dGVLZXkoZGljdCwgbmFtZSwgbGVuKQkJCVwKKyAgICAoKChkaWN0KS0+c2l6ZSA9PSBNSU5fRElDVF9TSVpFKSA/CQkJCVwKKyAgICAgeG1sRGljdENvbXB1dGVGYXN0S2V5KG5hbWUsIGxlbikgOgkJCQlcCisgICAgIHhtbERpY3RDb21wdXRlQmlnS2V5KG5hbWUsIGxlbikpCisKKyNkZWZpbmUgeG1sRGljdENvbXB1dGVRS2V5KGRpY3QsIHByZWZpeCwgcGxlbiwgbmFtZSwgbGVuKQlcCisgICAgKCgocHJlZml4KSA9PSBOVUxMKSA/CQkJCQlcCisgICAgICAoeG1sRGljdENvbXB1dGVLZXkoZGljdCwgbmFtZSwgbGVuKSkgOgkJCVwKKyAgICAgICgoKGRpY3QpLT5zaXplID09IE1JTl9ESUNUX1NJWkUpID8JCQlcCisgICAgICAgeG1sRGljdENvbXB1dGVGYXN0UUtleShwcmVmaXgsIHBsZW4sIG5hbWUsIGxlbikgOglcCisgICAgICAgeG1sRGljdENvbXB1dGVCaWdRS2V5KHByZWZpeCwgcGxlbiwgbmFtZSwgbGVuKSkpCisKKyNlbHNlIC8qICFXSVRIX0JJR19LRVkgKi8KKyNkZWZpbmUgeG1sRGljdENvbXB1dGVLZXkoZGljdCwgbmFtZSwgbGVuKQkJCVwKKyAgICAgICAgeG1sRGljdENvbXB1dGVGYXN0S2V5KG5hbWUsIGxlbikKKyNkZWZpbmUgeG1sRGljdENvbXB1dGVRS2V5KGRpY3QsIHByZWZpeCwgcGxlbiwgbmFtZSwgbGVuKQlcCisgICAgICAgIHhtbERpY3RDb21wdXRlRmFzdFFLZXkocHJlZml4LCBwbGVuLCBuYW1lLCBsZW4pCisjZW5kaWYgLyogV0lUSF9CSUdfS0VZICovCisKKy8qCisgKiBBbiBlbnRyeSBpbiB0aGUgZGljdGlvbm5hcnkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbERpY3RFbnRyeSB4bWxEaWN0RW50cnk7Cit0eXBlZGVmIHhtbERpY3RFbnRyeSAqeG1sRGljdEVudHJ5UHRyOworc3RydWN0IF94bWxEaWN0RW50cnkgeworICAgIHN0cnVjdCBfeG1sRGljdEVudHJ5ICpuZXh0OworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgaW50IGxlbjsKKyAgICBpbnQgdmFsaWQ7CisgICAgdW5zaWduZWQgbG9uZyBva2V5OworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbERpY3RTdHJpbmdzIHhtbERpY3RTdHJpbmdzOwordHlwZWRlZiB4bWxEaWN0U3RyaW5ncyAqeG1sRGljdFN0cmluZ3NQdHI7CitzdHJ1Y3QgX3htbERpY3RTdHJpbmdzIHsKKyAgICB4bWxEaWN0U3RyaW5nc1B0ciBuZXh0OworICAgIHhtbENoYXIgKmZyZWU7CisgICAgeG1sQ2hhciAqZW5kOworICAgIGludCBzaXplOworICAgIGludCBuYlN0cmluZ3M7CisgICAgeG1sQ2hhciBhcnJheVsxXTsKK307CisvKgorICogVGhlIGVudGlyZSBkaWN0aW9ubmFyeQorICovCitzdHJ1Y3QgX3htbERpY3QgeworICAgIGludCByZWZfY291bnRlcjsKKworICAgIHN0cnVjdCBfeG1sRGljdEVudHJ5ICpkaWN0OworICAgIGludCBzaXplOworICAgIGludCBuYkVsZW1zOworICAgIHhtbERpY3RTdHJpbmdzUHRyIHN0cmluZ3M7CisKKyAgICBzdHJ1Y3QgX3htbERpY3QgKnN1YmRpY3Q7Cit9OworCisvKgorICogQSBtdXRleCBmb3IgbW9kaWZ5aW5nIHRoZSByZWZlcmVuY2UgY291bnRlciBmb3Igc2hhcmVkCisgKiBkaWN0aW9uYXJpZXMuCisgKi8KK3N0YXRpYyB4bWxSTXV0ZXhQdHIgeG1sRGljdE11dGV4ID0gTlVMTDsKKworLyoKKyAqIFdoZXRoZXIgdGhlIGRpY3Rpb25hcnkgbXV0ZXggd2FzIGluaXRpYWxpemVkLgorICovCitzdGF0aWMgaW50IHhtbERpY3RJbml0aWFsaXplZCA9IDA7CisKKy8qKgorICogeG1sSW5pdGlhbGl6ZURpY3Q6CisgKgorICogRG8gdGhlIGRpY3Rpb25hcnkgbXV0ZXggaW5pdGlhbGl6YXRpb24uCisgKiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgaW5pdGlhbGl6YXRpb24gc2hvdWxkCisgKiBwcmVmZXJhYmx5IGJlIGRvbmUgb25jZSBhdCBzdGFydHVwCisgKi8KK3N0YXRpYyBpbnQgeG1sSW5pdGlhbGl6ZURpY3Qodm9pZCkgeworICAgIGlmICh4bWxEaWN0SW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybigxKTsKKworICAgIGlmICgoeG1sRGljdE11dGV4ID0geG1sTmV3Uk11dGV4KCkpID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKworICAgIHhtbERpY3RJbml0aWFsaXplZCA9IDE7CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbERpY3RDbGVhbnVwOgorICoKKyAqIEZyZWUgdGhlIGRpY3Rpb25hcnkgbXV0ZXguCisgKi8KK3ZvaWQKK3htbERpY3RDbGVhbnVwKHZvaWQpIHsKKyAgICBpZiAoIXhtbERpY3RJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgeG1sRnJlZVJNdXRleCh4bWxEaWN0TXV0ZXgpOworCisgICAgeG1sRGljdEluaXRpYWxpemVkID0gMDsKK30KKworLyoKKyAqIHhtbERpY3RBZGRTdHJpbmc6CisgKiBAZGljdDogdGhlIGRpY3Rpb25uYXJ5CisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkCisgKgorICogQWRkIHRoZSBzdHJpbmcgdG8gdGhlIGFycmF5W3NdCisgKgorICogUmV0dXJucyB0aGUgcG9pbnRlciBvZiB0aGUgbG9jYWwgc3RyaW5nLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbERpY3RBZGRTdHJpbmcoeG1sRGljdFB0ciBkaWN0LCBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgbmFtZWxlbikgeworICAgIHhtbERpY3RTdHJpbmdzUHRyIHBvb2w7CisgICAgY29uc3QgeG1sQ2hhciAqcmV0OworICAgIGludCBzaXplID0gMDsgLyogKyBzaXplb2YoX3htbERpY3RTdHJpbmdzKSA9PSAxMDI0ICovCisKKyNpZmRlZiBESUNUX0RFQlVHX1BBVFRFUk5TCisgICAgZnByaW50ZihzdGRlcnIsICItIik7CisjZW5kaWYKKyAgICBwb29sID0gZGljdC0+c3RyaW5nczsKKyAgICB3aGlsZSAocG9vbCAhPSBOVUxMKSB7CisJaWYgKHBvb2wtPmVuZCAtIHBvb2wtPmZyZWUgPiBuYW1lbGVuKQorCSAgICBnb3RvIGZvdW5kX3Bvb2w7CisJaWYgKHBvb2wtPnNpemUgPiBzaXplKSBzaXplID0gcG9vbC0+c2l6ZTsKKwlwb29sID0gcG9vbC0+bmV4dDsKKyAgICB9CisgICAgLyoKKyAgICAgKiBOb3QgZm91bmQsIG5lZWQgdG8gYWxsb2NhdGUKKyAgICAgKi8KKyAgICBpZiAocG9vbCA9PSBOVUxMKSB7CisgICAgICAgIGlmIChzaXplID09IDApIHNpemUgPSAxMDAwOworCWVsc2Ugc2l6ZSAqPSA0OyAvKiBleHBvbmVudGlhbCBncm93dGggKi8KKyAgICAgICAgaWYgKHNpemUgPCA0ICogbmFtZWxlbikgCisJICAgIHNpemUgPSA0ICogbmFtZWxlbjsgLyoganVzdCBpbiBjYXNlICEgKi8KKwlwb29sID0gKHhtbERpY3RTdHJpbmdzUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbERpY3RTdHJpbmdzKSArIHNpemUpOworCWlmIChwb29sID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKwlwb29sLT5zaXplID0gc2l6ZTsKKwlwb29sLT5uYlN0cmluZ3MgPSAwOworCXBvb2wtPmZyZWUgPSAmcG9vbC0+YXJyYXlbMF07CisJcG9vbC0+ZW5kID0gJnBvb2wtPmFycmF5W3NpemVdOworCXBvb2wtPm5leHQgPSBkaWN0LT5zdHJpbmdzOworCWRpY3QtPnN0cmluZ3MgPSBwb29sOworI2lmZGVmIERJQ1RfREVCVUdfUEFUVEVSTlMKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIrIik7CisjZW5kaWYKKyAgICB9Citmb3VuZF9wb29sOgorICAgIHJldCA9IHBvb2wtPmZyZWU7CisgICAgbWVtY3B5KHBvb2wtPmZyZWUsIG5hbWUsIG5hbWVsZW4pOworICAgIHBvb2wtPmZyZWUgKz0gbmFtZWxlbjsKKyAgICAqKHBvb2wtPmZyZWUrKykgPSAwOworICAgIHBvb2wtPm5iU3RyaW5ncysrOworICAgIHJldHVybihyZXQpOworfQorCisvKgorICogeG1sRGljdEFkZFFTdHJpbmc6CisgKiBAZGljdDogdGhlIGRpY3Rpb25uYXJ5CisgKiBAcHJlZml4OiB0aGUgcHJlZml4IG9mIHRoZSB1c2VyZGF0YQorICogQHBsZW46IHRoZSBwcmVmaXggbGVuZ3RoCisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkCisgKgorICogQWRkIHRoZSBRTmFtZSB0byB0aGUgYXJyYXlbc10KKyAqCisgKiBSZXR1cm5zIHRoZSBwb2ludGVyIG9mIHRoZSBsb2NhbCBzdHJpbmcsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sRGljdEFkZFFTdHJpbmcoeG1sRGljdFB0ciBkaWN0LCBjb25zdCB4bWxDaGFyICpwcmVmaXgsIGludCBwbGVuLAorICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgbmFtZWxlbikKK3sKKyAgICB4bWxEaWN0U3RyaW5nc1B0ciBwb29sOworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKyAgICBpbnQgc2l6ZSA9IDA7IC8qICsgc2l6ZW9mKF94bWxEaWN0U3RyaW5ncykgPT0gMTAyNCAqLworCisgICAgaWYgKHByZWZpeCA9PSBOVUxMKSByZXR1cm4oeG1sRGljdEFkZFN0cmluZyhkaWN0LCBuYW1lLCBuYW1lbGVuKSk7CisKKyNpZmRlZiBESUNUX0RFQlVHX1BBVFRFUk5TCisgICAgZnByaW50ZihzdGRlcnIsICI9Iik7CisjZW5kaWYKKyAgICBwb29sID0gZGljdC0+c3RyaW5nczsKKyAgICB3aGlsZSAocG9vbCAhPSBOVUxMKSB7CisJaWYgKHBvb2wtPmVuZCAtIHBvb2wtPmZyZWUgPiBuYW1lbGVuICsgcGxlbiArIDEpCisJICAgIGdvdG8gZm91bmRfcG9vbDsKKwlpZiAocG9vbC0+c2l6ZSA+IHNpemUpIHNpemUgPSBwb29sLT5zaXplOworCXBvb2wgPSBwb29sLT5uZXh0OworICAgIH0KKyAgICAvKgorICAgICAqIE5vdCBmb3VuZCwgbmVlZCB0byBhbGxvY2F0ZQorICAgICAqLworICAgIGlmIChwb29sID09IE5VTEwpIHsKKyAgICAgICAgaWYgKHNpemUgPT0gMCkgc2l6ZSA9IDEwMDA7CisJZWxzZSBzaXplICo9IDQ7IC8qIGV4cG9uZW50aWFsIGdyb3d0aCAqLworICAgICAgICBpZiAoc2l6ZSA8IDQgKiAobmFtZWxlbiArIHBsZW4gKyAxKSkKKwkgICAgc2l6ZSA9IDQgKiAobmFtZWxlbiArIHBsZW4gKyAxKTsgLyoganVzdCBpbiBjYXNlICEgKi8KKwlwb29sID0gKHhtbERpY3RTdHJpbmdzUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbERpY3RTdHJpbmdzKSArIHNpemUpOworCWlmIChwb29sID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKwlwb29sLT5zaXplID0gc2l6ZTsKKwlwb29sLT5uYlN0cmluZ3MgPSAwOworCXBvb2wtPmZyZWUgPSAmcG9vbC0+YXJyYXlbMF07CisJcG9vbC0+ZW5kID0gJnBvb2wtPmFycmF5W3NpemVdOworCXBvb2wtPm5leHQgPSBkaWN0LT5zdHJpbmdzOworCWRpY3QtPnN0cmluZ3MgPSBwb29sOworI2lmZGVmIERJQ1RfREVCVUdfUEFUVEVSTlMKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIrIik7CisjZW5kaWYKKyAgICB9Citmb3VuZF9wb29sOgorICAgIHJldCA9IHBvb2wtPmZyZWU7CisgICAgbWVtY3B5KHBvb2wtPmZyZWUsIHByZWZpeCwgcGxlbik7CisgICAgcG9vbC0+ZnJlZSArPSBwbGVuOworICAgICoocG9vbC0+ZnJlZSsrKSA9ICc6JzsKKyAgICBtZW1jcHkocG9vbC0+ZnJlZSwgbmFtZSwgbmFtZWxlbik7CisgICAgcG9vbC0+ZnJlZSArPSBuYW1lbGVuOworICAgICoocG9vbC0+ZnJlZSsrKSA9IDA7CisgICAgcG9vbC0+bmJTdHJpbmdzKys7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZmRlZiBXSVRIX0JJR19LRVkKKy8qCisgKiB4bWxEaWN0Q29tcHV0ZUJpZ0tleToKKyAqCisgKiBDYWxjdWxhdGUgYSBoYXNoIGtleSB1c2luZyBhIGdvb2QgaGFzaCBmdW5jdGlvbiB0aGF0IHdvcmtzIHdlbGwgZm9yCisgKiBsYXJnZXIgaGFzaCB0YWJsZSBzaXplcy4KKyAqCisgKiBIYXNoIGZ1bmN0aW9uIGJ5ICJPbmUtYXQtYS1UaW1lIEhhc2giIHNlZQorICogaHR0cDovL2J1cnRsZWJ1cnRsZS5uZXQvYm9iL2hhc2gvZG9vYnMuaHRtbAorICovCisKK3N0YXRpYyB1aW50MzJfdAoreG1sRGljdENvbXB1dGVCaWdLZXkoY29uc3QgeG1sQ2hhciogZGF0YSwgaW50IG5hbWVsZW4pIHsKKyAgICB1aW50MzJfdCBoYXNoOworICAgIGludCBpOworCisgICAgaWYgKG5hbWVsZW4gPD0gMCB8fCBkYXRhID09IE5VTEwpIHJldHVybigwKTsKKworICAgIGhhc2ggPSAwOworCisgICAgZm9yIChpID0gMDtpIDwgbmFtZWxlbjsgaSsrKSB7CisgICAgICAgIGhhc2ggKz0gZGF0YVtpXTsKKwloYXNoICs9IChoYXNoIDw8IDEwKTsKKwloYXNoIF49IChoYXNoID4+IDYpOworICAgIH0KKyAgICBoYXNoICs9IChoYXNoIDw8IDMpOworICAgIGhhc2ggXj0gKGhhc2ggPj4gMTEpOworICAgIGhhc2ggKz0gKGhhc2ggPDwgMTUpOworCisgICAgcmV0dXJuIGhhc2g7Cit9CisKKy8qCisgKiB4bWxEaWN0Q29tcHV0ZUJpZ1FLZXk6CisgKgorICogQ2FsY3VsYXRlIGEgaGFzaCBrZXkgZm9yIHR3byBzdHJpbmdzIHVzaW5nIGEgZ29vZCBoYXNoIGZ1bmN0aW9uCisgKiB0aGF0IHdvcmtzIHdlbGwgZm9yIGxhcmdlciBoYXNoIHRhYmxlIHNpemVzLgorICoKKyAqIEhhc2ggZnVuY3Rpb24gYnkgIk9uZS1hdC1hLVRpbWUgSGFzaCIgc2VlCisgKiBodHRwOi8vYnVydGxlYnVydGxlLm5ldC9ib2IvaGFzaC9kb29icy5odG1sCisgKgorICogTmVpdGhlciBvZiB0aGUgdHdvIHN0cmluZ3MgbXVzdCBiZSBOVUxMLgorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZworeG1sRGljdENvbXB1dGVCaWdRS2V5KGNvbnN0IHhtbENoYXIgKnByZWZpeCwgaW50IHBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IGxlbikKK3sKKyAgICB1aW50MzJfdCBoYXNoOworICAgIGludCBpOworCisgICAgaGFzaCA9IDA7CisKKyAgICBmb3IgKGkgPSAwO2kgPCBwbGVuOyBpKyspIHsKKyAgICAgICAgaGFzaCArPSBwcmVmaXhbaV07CisJaGFzaCArPSAoaGFzaCA8PCAxMCk7CisJaGFzaCBePSAoaGFzaCA+PiA2KTsKKyAgICB9CisgICAgaGFzaCArPSAnOic7CisgICAgaGFzaCArPSAoaGFzaCA8PCAxMCk7CisgICAgaGFzaCBePSAoaGFzaCA+PiA2KTsKKworICAgIGZvciAoaSA9IDA7aSA8IGxlbjsgaSsrKSB7CisgICAgICAgIGhhc2ggKz0gbmFtZVtpXTsKKwloYXNoICs9IChoYXNoIDw8IDEwKTsKKwloYXNoIF49IChoYXNoID4+IDYpOworICAgIH0KKyAgICBoYXNoICs9IChoYXNoIDw8IDMpOworICAgIGhhc2ggXj0gKGhhc2ggPj4gMTEpOworICAgIGhhc2ggKz0gKGhhc2ggPDwgMTUpOworCisgICAgcmV0dXJuIGhhc2g7Cit9CisjZW5kaWYgLyogV0lUSF9CSUdfS0VZICovCisKKy8qCisgKiB4bWxEaWN0Q29tcHV0ZUZhc3RLZXk6CisgKgorICogQ2FsY3VsYXRlIGEgaGFzaCBrZXkgdXNpbmcgYSBmYXN0IGhhc2ggZnVuY3Rpb24gdGhhdCB3b3JrcyB3ZWxsCisgKiBmb3IgbG93IGhhc2ggdGFibGUgZmlsbC4KKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcKK3htbERpY3RDb21wdXRlRmFzdEtleShjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgbmFtZWxlbikgeworICAgIHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAwTDsKKworICAgIGlmIChuYW1lID09IE5VTEwpIHJldHVybigwKTsKKyAgICB2YWx1ZSA9ICpuYW1lOworICAgIHZhbHVlIDw8PSA1OworICAgIGlmIChuYW1lbGVuID4gMTApIHsKKyAgICAgICAgdmFsdWUgKz0gbmFtZVtuYW1lbGVuIC0gMV07CisgICAgICAgIG5hbWVsZW4gPSAxMDsKKyAgICB9CisgICAgc3dpdGNoIChuYW1lbGVuKSB7CisgICAgICAgIGNhc2UgMTA6IHZhbHVlICs9IG5hbWVbOV07CisgICAgICAgIGNhc2UgOTogdmFsdWUgKz0gbmFtZVs4XTsKKyAgICAgICAgY2FzZSA4OiB2YWx1ZSArPSBuYW1lWzddOworICAgICAgICBjYXNlIDc6IHZhbHVlICs9IG5hbWVbNl07CisgICAgICAgIGNhc2UgNjogdmFsdWUgKz0gbmFtZVs1XTsKKyAgICAgICAgY2FzZSA1OiB2YWx1ZSArPSBuYW1lWzRdOworICAgICAgICBjYXNlIDQ6IHZhbHVlICs9IG5hbWVbM107CisgICAgICAgIGNhc2UgMzogdmFsdWUgKz0gbmFtZVsyXTsKKyAgICAgICAgY2FzZSAyOiB2YWx1ZSArPSBuYW1lWzFdOworICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICB9CisgICAgcmV0dXJuKHZhbHVlKTsKK30KKworLyoKKyAqIHhtbERpY3RDb21wdXRlRmFzdFFLZXk6CisgKgorICogQ2FsY3VsYXRlIGEgaGFzaCBrZXkgZm9yIHR3byBzdHJpbmdzIHVzaW5nIGEgZmFzdCBoYXNoIGZ1bmN0aW9uCisgKiB0aGF0IHdvcmtzIHdlbGwgZm9yIGxvdyBoYXNoIHRhYmxlIGZpbGwuCisgKgorICogTmVpdGhlciBvZiB0aGUgdHdvIHN0cmluZ3MgbXVzdCBiZSBOVUxMLgorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZworeG1sRGljdENvbXB1dGVGYXN0UUtleShjb25zdCB4bWxDaGFyICpwcmVmaXgsIGludCBwbGVuLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgbGVuKQoreworICAgIHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAwTDsKKworICAgIGlmIChwbGVuID09IDApCisJdmFsdWUgKz0gMzAgKiAodW5zaWduZWQgbG9uZykgJzonOworICAgIGVsc2UKKwl2YWx1ZSArPSAzMCAqICgqcHJlZml4KTsKKworICAgIGlmIChsZW4gPiAxMCkgeworICAgICAgICB2YWx1ZSArPSBuYW1lW2xlbiAtIChwbGVuICsgMSArIDEpXTsKKyAgICAgICAgbGVuID0gMTA7CisJaWYgKHBsZW4gPiAxMCkKKwkgICAgcGxlbiA9IDEwOworICAgIH0KKyAgICBzd2l0Y2ggKHBsZW4pIHsKKyAgICAgICAgY2FzZSAxMDogdmFsdWUgKz0gcHJlZml4WzldOworICAgICAgICBjYXNlIDk6IHZhbHVlICs9IHByZWZpeFs4XTsKKyAgICAgICAgY2FzZSA4OiB2YWx1ZSArPSBwcmVmaXhbN107CisgICAgICAgIGNhc2UgNzogdmFsdWUgKz0gcHJlZml4WzZdOworICAgICAgICBjYXNlIDY6IHZhbHVlICs9IHByZWZpeFs1XTsKKyAgICAgICAgY2FzZSA1OiB2YWx1ZSArPSBwcmVmaXhbNF07CisgICAgICAgIGNhc2UgNDogdmFsdWUgKz0gcHJlZml4WzNdOworICAgICAgICBjYXNlIDM6IHZhbHVlICs9IHByZWZpeFsyXTsKKyAgICAgICAgY2FzZSAyOiB2YWx1ZSArPSBwcmVmaXhbMV07CisgICAgICAgIGNhc2UgMTogdmFsdWUgKz0gcHJlZml4WzBdOworICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICB9CisgICAgbGVuIC09IHBsZW47CisgICAgaWYgKGxlbiA+IDApIHsKKyAgICAgICAgdmFsdWUgKz0gKHVuc2lnbmVkIGxvbmcpICc6JzsKKwlsZW4tLTsKKyAgICB9CisgICAgc3dpdGNoIChsZW4pIHsKKyAgICAgICAgY2FzZSAxMDogdmFsdWUgKz0gbmFtZVs5XTsKKyAgICAgICAgY2FzZSA5OiB2YWx1ZSArPSBuYW1lWzhdOworICAgICAgICBjYXNlIDg6IHZhbHVlICs9IG5hbWVbN107CisgICAgICAgIGNhc2UgNzogdmFsdWUgKz0gbmFtZVs2XTsKKyAgICAgICAgY2FzZSA2OiB2YWx1ZSArPSBuYW1lWzVdOworICAgICAgICBjYXNlIDU6IHZhbHVlICs9IG5hbWVbNF07CisgICAgICAgIGNhc2UgNDogdmFsdWUgKz0gbmFtZVszXTsKKyAgICAgICAgY2FzZSAzOiB2YWx1ZSArPSBuYW1lWzJdOworICAgICAgICBjYXNlIDI6IHZhbHVlICs9IG5hbWVbMV07CisgICAgICAgIGNhc2UgMTogdmFsdWUgKz0gbmFtZVswXTsKKyAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgfQorICAgIHJldHVybih2YWx1ZSk7Cit9CisKKy8qKgorICogeG1sRGljdENyZWF0ZToKKyAqCisgKiBDcmVhdGUgYSBuZXcgZGljdGlvbmFyeQorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC4KKyAqLworeG1sRGljdFB0cgoreG1sRGljdENyZWF0ZSh2b2lkKSB7CisgICAgeG1sRGljdFB0ciBkaWN0OworCisgICAgaWYgKCF4bWxEaWN0SW5pdGlhbGl6ZWQpCisgICAgICAgIGlmICgheG1sSW5pdGlhbGl6ZURpY3QoKSkKKyAgICAgICAgICAgIHJldHVybihOVUxMKTsKKworI2lmZGVmIERJQ1RfREVCVUdfUEFUVEVSTlMKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkMiKTsKKyNlbmRpZgorCisgICAgZGljdCA9IHhtbE1hbGxvYyhzaXplb2YoeG1sRGljdCkpOworICAgIGlmIChkaWN0KSB7CisgICAgICAgIGRpY3QtPnJlZl9jb3VudGVyID0gMTsKKworICAgICAgICBkaWN0LT5zaXplID0gTUlOX0RJQ1RfU0laRTsKKwlkaWN0LT5uYkVsZW1zID0gMDsKKyAgICAgICAgZGljdC0+ZGljdCA9IHhtbE1hbGxvYyhNSU5fRElDVF9TSVpFICogc2l6ZW9mKHhtbERpY3RFbnRyeSkpOworCWRpY3QtPnN0cmluZ3MgPSBOVUxMOworCWRpY3QtPnN1YmRpY3QgPSBOVUxMOworICAgICAgICBpZiAoZGljdC0+ZGljdCkgeworCSAgICBtZW1zZXQoZGljdC0+ZGljdCwgMCwgTUlOX0RJQ1RfU0laRSAqIHNpemVvZih4bWxEaWN0RW50cnkpKTsKKwkgICAgcmV0dXJuKGRpY3QpOworICAgICAgICB9CisgICAgICAgIHhtbEZyZWUoZGljdCk7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxEaWN0Q3JlYXRlU3ViOgorICogQHN1YjogYW4gZXhpc3RpbmcgZGljdGlvbm5hcnkKKyAqCisgKiBDcmVhdGUgYSBuZXcgZGljdGlvbmFyeSwgaW5oZXJpdGluZyBzdHJpbmdzIGZyb20gdGhlIHJlYWQtb25seQorICogZGljdGlvbm5hcnkgQHN1Yi4gT24gbG9va3VwLCBzdHJpbmdzIGFyZSBmaXJzdCBzZWFyY2hlZCBpbiB0aGUKKyAqIG5ldyBkaWN0aW9ubmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZQorICogbmV3IGRpY3Rpb25uYXJ5LgorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC4KKyAqLworeG1sRGljdFB0cgoreG1sRGljdENyZWF0ZVN1Yih4bWxEaWN0UHRyIHN1YikgeworICAgIHhtbERpY3RQdHIgZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKworICAgIGlmICgoZGljdCAhPSBOVUxMKSAmJiAoc3ViICE9IE5VTEwpKSB7CisjaWZkZWYgRElDVF9ERUJVR19QQVRURVJOUworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlIiKTsKKyNlbmRpZgorICAgICAgICBkaWN0LT5zdWJkaWN0ID0gc3ViOworCXhtbERpY3RSZWZlcmVuY2UoZGljdC0+c3ViZGljdCk7CisgICAgfQorICAgIHJldHVybihkaWN0KTsKK30KKworLyoqCisgKiB4bWxEaWN0UmVmZXJlbmNlOgorICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICoKKyAqIEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50ZXIgb2YgYSBkaWN0aW9uYXJ5CisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbERpY3RSZWZlcmVuY2UoeG1sRGljdFB0ciBkaWN0KSB7CisgICAgaWYgKCF4bWxEaWN0SW5pdGlhbGl6ZWQpCisgICAgICAgIGlmICgheG1sSW5pdGlhbGl6ZURpY3QoKSkKKyAgICAgICAgICAgIHJldHVybigtMSk7CisKKyAgICBpZiAoZGljdCA9PSBOVUxMKSByZXR1cm4gLTE7CisgICAgeG1sUk11dGV4TG9jayh4bWxEaWN0TXV0ZXgpOworICAgIGRpY3QtPnJlZl9jb3VudGVyKys7CisgICAgeG1sUk11dGV4VW5sb2NrKHhtbERpY3RNdXRleCk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbERpY3RHcm93OgorICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICogQHNpemU6IHRoZSBuZXcgc2l6ZSBvZiB0aGUgZGljdGlvbm5hcnkKKyAqCisgKiByZXNpemUgdGhlIGRpY3Rpb25uYXJ5CisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBmYWlsdXJlCisgKi8KK3N0YXRpYyBpbnQKK3htbERpY3RHcm93KHhtbERpY3RQdHIgZGljdCwgaW50IHNpemUpIHsKKyAgICB1bnNpZ25lZCBsb25nIGtleSwgb2tleTsKKyAgICBpbnQgb2xkc2l6ZSwgaTsKKyAgICB4bWxEaWN0RW50cnlQdHIgaXRlciwgbmV4dDsKKyAgICBzdHJ1Y3QgX3htbERpY3RFbnRyeSAqb2xkZGljdDsKKyNpZmRlZiBERUJVR19HUk9XCisgICAgdW5zaWduZWQgbG9uZyBuYkVsZW0gPSAwOworI2VuZGlmCisgICAgaW50IHJldCA9IDA7CisgICAgaW50IGtlZXBfa2V5cyA9IDE7CisKKyAgICBpZiAoZGljdCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHNpemUgPCA4KQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChzaXplID4gOCAqIDIwNDgpCisJcmV0dXJuKC0xKTsKKworI2lmZGVmIERJQ1RfREVCVUdfUEFUVEVSTlMKKyAgICBmcHJpbnRmKHN0ZGVyciwgIioiKTsKKyNlbmRpZgorCisgICAgb2xkc2l6ZSA9IGRpY3QtPnNpemU7CisgICAgb2xkZGljdCA9IGRpY3QtPmRpY3Q7CisgICAgaWYgKG9sZGRpY3QgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBpZiAob2xkc2l6ZSA9PSBNSU5fRElDVF9TSVpFKQorICAgICAgICBrZWVwX2tleXMgPSAwOworCisgICAgZGljdC0+ZGljdCA9IHhtbE1hbGxvYyhzaXplICogc2l6ZW9mKHhtbERpY3RFbnRyeSkpOworICAgIGlmIChkaWN0LT5kaWN0ID09IE5VTEwpIHsKKwlkaWN0LT5kaWN0ID0gb2xkZGljdDsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBtZW1zZXQoZGljdC0+ZGljdCwgMCwgc2l6ZSAqIHNpemVvZih4bWxEaWN0RW50cnkpKTsKKyAgICBkaWN0LT5zaXplID0gc2l6ZTsKKworICAgIC8qCUlmIHRoZSB0d28gbG9vcHMgYXJlIG1lcmdlZCwgdGhlcmUgd291bGQgYmUgc2l0dWF0aW9ucyB3aGVyZQorCWEgbmV3IGVudHJ5IG5lZWRzIHRvIGFsbG9jYXRlZCBhbmQgZGF0YSBjb3BpZWQgaW50byBpdCBmcm9tCisJdGhlIG1haW4gZGljdC4gSXQgaXMgbmljZXIgdG8gcnVuIHRocm91Z2ggdGhlIGFycmF5IHR3aWNlLCBmaXJzdAorCWNvcHlpbmcgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgbWFpbiBhcnJheSAobGVzcyBwcm9iYWJpbGl0eSBvZgorCWFsbG9jYXRlKSBhbmQgdGhlbiB0aGUgcmVzdCwgc28gd2Ugb25seSBmcmVlIGluIHRoZSBzZWNvbmQgbG9vcC4KKyAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBvbGRzaXplOyBpKyspIHsKKwlpZiAob2xkZGljdFtpXS52YWxpZCA9PSAwKQorCSAgICBjb250aW51ZTsKKworCWlmIChrZWVwX2tleXMpCisJICAgIG9rZXkgPSBvbGRkaWN0W2ldLm9rZXk7CisJZWxzZQorCSAgICBva2V5ID0geG1sRGljdENvbXB1dGVLZXkoZGljdCwgb2xkZGljdFtpXS5uYW1lLCBvbGRkaWN0W2ldLmxlbik7CisJa2V5ID0gb2tleSAlIGRpY3QtPnNpemU7CisKKwlpZiAoZGljdC0+ZGljdFtrZXldLnZhbGlkID09IDApIHsKKwkgICAgbWVtY3B5KCYoZGljdC0+ZGljdFtrZXldKSwgJihvbGRkaWN0W2ldKSwgc2l6ZW9mKHhtbERpY3RFbnRyeSkpOworCSAgICBkaWN0LT5kaWN0W2tleV0ubmV4dCA9IE5VTEw7CisJICAgIGRpY3QtPmRpY3Rba2V5XS5va2V5ID0gb2tleTsKKwl9IGVsc2UgeworCSAgICB4bWxEaWN0RW50cnlQdHIgZW50cnk7CisKKwkgICAgZW50cnkgPSB4bWxNYWxsb2Moc2l6ZW9mKHhtbERpY3RFbnRyeSkpOworCSAgICBpZiAoZW50cnkgIT0gTlVMTCkgeworCQllbnRyeS0+bmFtZSA9IG9sZGRpY3RbaV0ubmFtZTsKKwkJZW50cnktPmxlbiA9IG9sZGRpY3RbaV0ubGVuOworCQllbnRyeS0+b2tleSA9IG9rZXk7CisJCWVudHJ5LT5uZXh0ID0gZGljdC0+ZGljdFtrZXldLm5leHQ7CisJCWVudHJ5LT52YWxpZCA9IDE7CisJCWRpY3QtPmRpY3Rba2V5XS5uZXh0ID0gZW50cnk7CisJICAgIH0gZWxzZSB7CisJICAgICAgICAvKgorCQkgKiB3ZSBkb24ndCBoYXZlIG11Y2ggd2F5cyB0byBhbGVydCBmcm9tIGhlcmVpCisJCSAqIHJlc3VsdCBpcyBsb29zaW5nIGFuIGVudHJ5IGFuZCB1bmljaXR5IGdhcmFudGVlCisJCSAqLworCSAgICAgICAgcmV0ID0gLTE7CisJICAgIH0KKwl9CisjaWZkZWYgREVCVUdfR1JPVworCW5iRWxlbSsrOworI2VuZGlmCisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG9sZHNpemU7IGkrKykgeworCWl0ZXIgPSBvbGRkaWN0W2ldLm5leHQ7CisJd2hpbGUgKGl0ZXIpIHsKKwkgICAgbmV4dCA9IGl0ZXItPm5leHQ7CisKKwkgICAgLyoKKwkgICAgICogcHV0IGJhY2sgdGhlIGVudHJ5IGluIHRoZSBuZXcgZGljdAorCSAgICAgKi8KKworCSAgICBpZiAoa2VlcF9rZXlzKQorCQlva2V5ID0gaXRlci0+b2tleTsKKwkgICAgZWxzZQorCQlva2V5ID0geG1sRGljdENvbXB1dGVLZXkoZGljdCwgaXRlci0+bmFtZSwgaXRlci0+bGVuKTsKKwkgICAga2V5ID0gb2tleSAlIGRpY3QtPnNpemU7CisJICAgIGlmIChkaWN0LT5kaWN0W2tleV0udmFsaWQgPT0gMCkgeworCQltZW1jcHkoJihkaWN0LT5kaWN0W2tleV0pLCBpdGVyLCBzaXplb2YoeG1sRGljdEVudHJ5KSk7CisJCWRpY3QtPmRpY3Rba2V5XS5uZXh0ID0gTlVMTDsKKwkJZGljdC0+ZGljdFtrZXldLnZhbGlkID0gMTsKKwkJZGljdC0+ZGljdFtrZXldLm9rZXkgPSBva2V5OworCQl4bWxGcmVlKGl0ZXIpOworCSAgICB9IGVsc2UgeworCQlpdGVyLT5uZXh0ID0gZGljdC0+ZGljdFtrZXldLm5leHQ7CisJCWl0ZXItPm9rZXkgPSBva2V5OworCQlkaWN0LT5kaWN0W2tleV0ubmV4dCA9IGl0ZXI7CisJICAgIH0KKworI2lmZGVmIERFQlVHX0dST1cKKwkgICAgbmJFbGVtKys7CisjZW5kaWYKKworCSAgICBpdGVyID0gbmV4dDsKKwl9CisgICAgfQorCisgICAgeG1sRnJlZShvbGRkaWN0KTsKKworI2lmZGVmIERFQlVHX0dST1cKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgInhtbERpY3RHcm93IDogZnJvbSAlZCB0byAlZCwgJWQgZWxlbXNcbiIsIG9sZHNpemUsIHNpemUsIG5iRWxlbSk7CisjZW5kaWYKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbERpY3RGcmVlOgorICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICoKKyAqIEZyZWUgdGhlIGhhc2ggQGRpY3QgYW5kIGl0cyBjb250ZW50cy4gVGhlIHVzZXJkYXRhIGlzCisgKiBkZWFsbG9jYXRlZCB3aXRoIEBmIGlmIHByb3ZpZGVkLgorICovCit2b2lkCit4bWxEaWN0RnJlZSh4bWxEaWN0UHRyIGRpY3QpIHsKKyAgICBpbnQgaTsKKyAgICB4bWxEaWN0RW50cnlQdHIgaXRlcjsKKyAgICB4bWxEaWN0RW50cnlQdHIgbmV4dDsKKyAgICBpbnQgaW5zaWRlX2RpY3QgPSAwOworICAgIHhtbERpY3RTdHJpbmdzUHRyIHBvb2wsIG5leHRwOworCisgICAgaWYgKGRpY3QgPT0gTlVMTCkKKwlyZXR1cm47CisKKyAgICBpZiAoIXhtbERpY3RJbml0aWFsaXplZCkKKyAgICAgICAgaWYgKCF4bWxJbml0aWFsaXplRGljdCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgLyogZGVjcmVtZW50IHRoZSBjb3VudGVyLCBpdCBtYXkgYmUgc2hhcmVkIGJ5IGEgcGFyc2VyIGFuZCBkb2NzICovCisgICAgeG1sUk11dGV4TG9jayh4bWxEaWN0TXV0ZXgpOworICAgIGRpY3QtPnJlZl9jb3VudGVyLS07CisgICAgaWYgKGRpY3QtPnJlZl9jb3VudGVyID4gMCkgeworICAgICAgICB4bWxSTXV0ZXhVbmxvY2soeG1sRGljdE11dGV4KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHhtbFJNdXRleFVubG9jayh4bWxEaWN0TXV0ZXgpOworCisgICAgaWYgKGRpY3QtPnN1YmRpY3QgIT0gTlVMTCkgeworICAgICAgICB4bWxEaWN0RnJlZShkaWN0LT5zdWJkaWN0KTsKKyAgICB9CisKKyAgICBpZiAoZGljdC0+ZGljdCkgeworCWZvcihpID0gMDsgKChpIDwgZGljdC0+c2l6ZSkgJiYgKGRpY3QtPm5iRWxlbXMgPiAwKSk7IGkrKykgeworCSAgICBpdGVyID0gJihkaWN0LT5kaWN0W2ldKTsKKwkgICAgaWYgKGl0ZXItPnZhbGlkID09IDApCisJCWNvbnRpbnVlOworCSAgICBpbnNpZGVfZGljdCA9IDE7CisJICAgIHdoaWxlIChpdGVyKSB7CisJCW5leHQgPSBpdGVyLT5uZXh0OworCQlpZiAoIWluc2lkZV9kaWN0KQorCQkgICAgeG1sRnJlZShpdGVyKTsKKwkJZGljdC0+bmJFbGVtcy0tOworCQlpbnNpZGVfZGljdCA9IDA7CisJCWl0ZXIgPSBuZXh0OworCSAgICB9CisJfQorCXhtbEZyZWUoZGljdC0+ZGljdCk7CisgICAgfQorICAgIHBvb2wgPSBkaWN0LT5zdHJpbmdzOworICAgIHdoaWxlIChwb29sICE9IE5VTEwpIHsKKyAgICAgICAgbmV4dHAgPSBwb29sLT5uZXh0OworCXhtbEZyZWUocG9vbCk7CisJcG9vbCA9IG5leHRwOworICAgIH0KKyAgICB4bWxGcmVlKGRpY3QpOworfQorCisvKioKKyAqIHhtbERpY3RMb29rdXA6CisgKiBAZGljdDogdGhlIGRpY3Rpb25uYXJ5CisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkCisgKgorICogQWRkIHRoZSBAbmFtZSB0byB0aGUgZGljdGlvbm5hcnkgQGRpY3QgaWYgbm90IHByZXNlbnQuCisgKgorICogUmV0dXJucyB0aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgbmFtZSBvciBOVUxMIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3IKKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxEaWN0TG9va3VwKHhtbERpY3RQdHIgZGljdCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IGxlbikgeworICAgIHVuc2lnbmVkIGxvbmcga2V5LCBva2V5LCBuYmkgPSAwOworICAgIHhtbERpY3RFbnRyeVB0ciBlbnRyeTsKKyAgICB4bWxEaWN0RW50cnlQdHIgaW5zZXJ0OworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKworICAgIGlmICgoZGljdCA9PSBOVUxMKSB8fCAobmFtZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBpZiAobGVuIDwgMCkKKyAgICAgICAgbGVuID0gc3RybGVuKChjb25zdCBjaGFyICopIG5hbWUpOworCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgZHVwbGljYXRlIGFuZCBpbnNlcnRpb24gbG9jYXRpb24uCisgICAgICovCisgICAgb2tleSA9IHhtbERpY3RDb21wdXRlS2V5KGRpY3QsIG5hbWUsIGxlbik7CisgICAga2V5ID0gb2tleSAlIGRpY3QtPnNpemU7CisgICAgaWYgKGRpY3QtPmRpY3Rba2V5XS52YWxpZCA9PSAwKSB7CisJaW5zZXJ0ID0gTlVMTDsKKyAgICB9IGVsc2UgeworCWZvciAoaW5zZXJ0ID0gJihkaWN0LT5kaWN0W2tleV0pOyBpbnNlcnQtPm5leHQgIT0gTlVMTDsKKwkgICAgIGluc2VydCA9IGluc2VydC0+bmV4dCkgeworI2lmZGVmIF9fR05VQ19fCisJICAgIGlmICgoaW5zZXJ0LT5va2V5ID09IG9rZXkpICYmIChpbnNlcnQtPmxlbiA9PSBsZW4pKSB7CisJCWlmICghbWVtY21wKGluc2VydC0+bmFtZSwgbmFtZSwgbGVuKSkKKwkJICAgIHJldHVybihpbnNlcnQtPm5hbWUpOworCSAgICB9CisjZWxzZQorCSAgICBpZiAoKGluc2VydC0+b2tleSA9PSBva2V5KSAmJiAoaW5zZXJ0LT5sZW4gPT0gbGVuKSAmJgorCSAgICAgICAgKCF4bWxTdHJuY21wKGluc2VydC0+bmFtZSwgbmFtZSwgbGVuKSkpCisJCXJldHVybihpbnNlcnQtPm5hbWUpOworI2VuZGlmCisJICAgIG5iaSsrOworCX0KKyNpZmRlZiBfX0dOVUNfXworCWlmICgoaW5zZXJ0LT5va2V5ID09IG9rZXkpICYmIChpbnNlcnQtPmxlbiA9PSBsZW4pKSB7CisJICAgIGlmICghbWVtY21wKGluc2VydC0+bmFtZSwgbmFtZSwgbGVuKSkKKwkJcmV0dXJuKGluc2VydC0+bmFtZSk7CisJfQorI2Vsc2UKKwlpZiAoKGluc2VydC0+b2tleSA9PSBva2V5KSAmJiAoaW5zZXJ0LT5sZW4gPT0gbGVuKSAmJgorCSAgICAoIXhtbFN0cm5jbXAoaW5zZXJ0LT5uYW1lLCBuYW1lLCBsZW4pKSkKKwkgICAgcmV0dXJuKGluc2VydC0+bmFtZSk7CisjZW5kaWYKKyAgICB9CisKKyAgICBpZiAoZGljdC0+c3ViZGljdCkgeworICAgICAgICB1bnNpZ25lZCBsb25nIHNrZXk7CisKKyAgICAgICAgLyogd2UgY2Fubm90IGFsd2F5cyByZXVzZSB0aGUgc2FtZSBva2V5IGZvciB0aGUgc3ViZGljdCAqLworICAgICAgICBpZiAoKChkaWN0LT5zaXplID09IE1JTl9ESUNUX1NJWkUpICYmCisJICAgICAoZGljdC0+c3ViZGljdC0+c2l6ZSAhPSBNSU5fRElDVF9TSVpFKSkgfHwKKyAgICAgICAgICAgICgoZGljdC0+c2l6ZSAhPSBNSU5fRElDVF9TSVpFKSAmJgorCSAgICAgKGRpY3QtPnN1YmRpY3QtPnNpemUgPT0gTUlOX0RJQ1RfU0laRSkpKQorCSAgICBza2V5ID0geG1sRGljdENvbXB1dGVLZXkoZGljdC0+c3ViZGljdCwgbmFtZSwgbGVuKTsKKwllbHNlCisJICAgIHNrZXkgPSBva2V5OworCisJa2V5ID0gc2tleSAlIGRpY3QtPnN1YmRpY3QtPnNpemU7CisJaWYgKGRpY3QtPnN1YmRpY3QtPmRpY3Rba2V5XS52YWxpZCAhPSAwKSB7CisJICAgIHhtbERpY3RFbnRyeVB0ciB0bXA7CisKKwkgICAgZm9yICh0bXAgPSAmKGRpY3QtPnN1YmRpY3QtPmRpY3Rba2V5XSk7IHRtcC0+bmV4dCAhPSBOVUxMOworCQkgdG1wID0gdG1wLT5uZXh0KSB7CisjaWZkZWYgX19HTlVDX18KKwkJaWYgKCh0bXAtPm9rZXkgPT0gc2tleSkgJiYgKHRtcC0+bGVuID09IGxlbikpIHsKKwkJICAgIGlmICghbWVtY21wKHRtcC0+bmFtZSwgbmFtZSwgbGVuKSkKKwkJCXJldHVybih0bXAtPm5hbWUpOworCQl9CisjZWxzZQorCQlpZiAoKHRtcC0+b2tleSA9PSBza2V5KSAmJiAodG1wLT5sZW4gPT0gbGVuKSAmJgorCQkgICAgKCF4bWxTdHJuY21wKHRtcC0+bmFtZSwgbmFtZSwgbGVuKSkpCisJCSAgICByZXR1cm4odG1wLT5uYW1lKTsKKyNlbmRpZgorCQluYmkrKzsKKwkgICAgfQorI2lmZGVmIF9fR05VQ19fCisJICAgIGlmICgodG1wLT5va2V5ID09IHNrZXkpICYmICh0bXAtPmxlbiA9PSBsZW4pKSB7CisJCWlmICghbWVtY21wKHRtcC0+bmFtZSwgbmFtZSwgbGVuKSkKKwkJICAgIHJldHVybih0bXAtPm5hbWUpOworCSAgICB9CisjZWxzZQorCSAgICBpZiAoKHRtcC0+b2tleSA9PSBza2V5KSAmJiAodG1wLT5sZW4gPT0gbGVuKSAmJgorCQkoIXhtbFN0cm5jbXAodG1wLT5uYW1lLCBuYW1lLCBsZW4pKSkKKwkJcmV0dXJuKHRtcC0+bmFtZSk7CisjZW5kaWYKKwl9CisJa2V5ID0gb2tleSAlIGRpY3QtPnNpemU7CisgICAgfQorCisgICAgcmV0ID0geG1sRGljdEFkZFN0cmluZyhkaWN0LCBuYW1lLCBsZW4pOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGlmIChpbnNlcnQgPT0gTlVMTCkgeworCWVudHJ5ID0gJihkaWN0LT5kaWN0W2tleV0pOworICAgIH0gZWxzZSB7CisJZW50cnkgPSB4bWxNYWxsb2Moc2l6ZW9mKHhtbERpY3RFbnRyeSkpOworCWlmIChlbnRyeSA9PSBOVUxMKQorCSAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBlbnRyeS0+bmFtZSA9IHJldDsKKyAgICBlbnRyeS0+bGVuID0gbGVuOworICAgIGVudHJ5LT5uZXh0ID0gTlVMTDsKKyAgICBlbnRyeS0+dmFsaWQgPSAxOworICAgIGVudHJ5LT5va2V5ID0gb2tleTsKKworCisgICAgaWYgKGluc2VydCAhPSBOVUxMKSAKKwlpbnNlcnQtPm5leHQgPSBlbnRyeTsKKworICAgIGRpY3QtPm5iRWxlbXMrKzsKKworICAgIGlmICgobmJpID4gTUFYX0hBU0hfTEVOKSAmJgorICAgICAgICAoZGljdC0+c2l6ZSA8PSAoKE1BWF9ESUNUX0hBU0ggLyAyKSAvIE1BWF9IQVNIX0xFTikpKSB7CisJaWYgKHhtbERpY3RHcm93KGRpY3QsIE1BWF9IQVNIX0xFTiAqIDIgKiBkaWN0LT5zaXplKSAhPSAwKQorCSAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIC8qIE5vdGUgdGhhdCBlbnRyeSBtYXkgaGF2ZSBiZWVuIGZyZWVkIGF0IHRoaXMgcG9pbnQgYnkgeG1sRGljdEdyb3cgKi8KKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbERpY3RFeGlzdHM6CisgKiBAZGljdDogdGhlIGRpY3Rpb25uYXJ5CisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkCisgKgorICogQ2hlY2sgaWYgdGhlIEBuYW1lIGV4aXN0cyBpbiB0aGUgZGljdGlvbm5hcnkgQGRpY3QuCisgKgorICogUmV0dXJucyB0aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgbmFtZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4KKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxEaWN0RXhpc3RzKHhtbERpY3RQdHIgZGljdCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IGxlbikgeworICAgIHVuc2lnbmVkIGxvbmcga2V5LCBva2V5LCBuYmkgPSAwOworICAgIHhtbERpY3RFbnRyeVB0ciBpbnNlcnQ7CisKKyAgICBpZiAoKGRpY3QgPT0gTlVMTCkgfHwgKG5hbWUgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKGxlbiA8IDApCisgICAgICAgIGxlbiA9IHN0cmxlbigoY29uc3QgY2hhciAqKSBuYW1lKTsKKworICAgIC8qCisgICAgICogQ2hlY2sgZm9yIGR1cGxpY2F0ZSBhbmQgaW5zZXJ0aW9uIGxvY2F0aW9uLgorICAgICAqLworICAgIG9rZXkgPSB4bWxEaWN0Q29tcHV0ZUtleShkaWN0LCBuYW1lLCBsZW4pOworICAgIGtleSA9IG9rZXkgJSBkaWN0LT5zaXplOworICAgIGlmIChkaWN0LT5kaWN0W2tleV0udmFsaWQgPT0gMCkgeworCWluc2VydCA9IE5VTEw7CisgICAgfSBlbHNlIHsKKwlmb3IgKGluc2VydCA9ICYoZGljdC0+ZGljdFtrZXldKTsgaW5zZXJ0LT5uZXh0ICE9IE5VTEw7CisJICAgICBpbnNlcnQgPSBpbnNlcnQtPm5leHQpIHsKKyNpZmRlZiBfX0dOVUNfXworCSAgICBpZiAoKGluc2VydC0+b2tleSA9PSBva2V5KSAmJiAoaW5zZXJ0LT5sZW4gPT0gbGVuKSkgeworCQlpZiAoIW1lbWNtcChpbnNlcnQtPm5hbWUsIG5hbWUsIGxlbikpCisJCSAgICByZXR1cm4oaW5zZXJ0LT5uYW1lKTsKKwkgICAgfQorI2Vsc2UKKwkgICAgaWYgKChpbnNlcnQtPm9rZXkgPT0gb2tleSkgJiYgKGluc2VydC0+bGVuID09IGxlbikgJiYKKwkgICAgICAgICgheG1sU3RybmNtcChpbnNlcnQtPm5hbWUsIG5hbWUsIGxlbikpKQorCQlyZXR1cm4oaW5zZXJ0LT5uYW1lKTsKKyNlbmRpZgorCSAgICBuYmkrKzsKKwl9CisjaWZkZWYgX19HTlVDX18KKwlpZiAoKGluc2VydC0+b2tleSA9PSBva2V5KSAmJiAoaW5zZXJ0LT5sZW4gPT0gbGVuKSkgeworCSAgICBpZiAoIW1lbWNtcChpbnNlcnQtPm5hbWUsIG5hbWUsIGxlbikpCisJCXJldHVybihpbnNlcnQtPm5hbWUpOworCX0KKyNlbHNlCisJaWYgKChpbnNlcnQtPm9rZXkgPT0gb2tleSkgJiYgKGluc2VydC0+bGVuID09IGxlbikgJiYKKwkgICAgKCF4bWxTdHJuY21wKGluc2VydC0+bmFtZSwgbmFtZSwgbGVuKSkpCisJICAgIHJldHVybihpbnNlcnQtPm5hbWUpOworI2VuZGlmCisgICAgfQorCisgICAgaWYgKGRpY3QtPnN1YmRpY3QpIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBza2V5OworCisgICAgICAgIC8qIHdlIGNhbm5vdCBhbHdheXMgcmV1c2UgdGhlIHNhbWUgb2tleSBmb3IgdGhlIHN1YmRpY3QgKi8KKyAgICAgICAgaWYgKCgoZGljdC0+c2l6ZSA9PSBNSU5fRElDVF9TSVpFKSAmJgorCSAgICAgKGRpY3QtPnN1YmRpY3QtPnNpemUgIT0gTUlOX0RJQ1RfU0laRSkpIHx8CisgICAgICAgICAgICAoKGRpY3QtPnNpemUgIT0gTUlOX0RJQ1RfU0laRSkgJiYKKwkgICAgIChkaWN0LT5zdWJkaWN0LT5zaXplID09IE1JTl9ESUNUX1NJWkUpKSkKKwkgICAgc2tleSA9IHhtbERpY3RDb21wdXRlS2V5KGRpY3QtPnN1YmRpY3QsIG5hbWUsIGxlbik7CisJZWxzZQorCSAgICBza2V5ID0gb2tleTsKKworCWtleSA9IHNrZXkgJSBkaWN0LT5zdWJkaWN0LT5zaXplOworCWlmIChkaWN0LT5zdWJkaWN0LT5kaWN0W2tleV0udmFsaWQgIT0gMCkgeworCSAgICB4bWxEaWN0RW50cnlQdHIgdG1wOworCisJICAgIGZvciAodG1wID0gJihkaWN0LT5zdWJkaWN0LT5kaWN0W2tleV0pOyB0bXAtPm5leHQgIT0gTlVMTDsKKwkJIHRtcCA9IHRtcC0+bmV4dCkgeworI2lmZGVmIF9fR05VQ19fCisJCWlmICgodG1wLT5va2V5ID09IHNrZXkpICYmICh0bXAtPmxlbiA9PSBsZW4pKSB7CisJCSAgICBpZiAoIW1lbWNtcCh0bXAtPm5hbWUsIG5hbWUsIGxlbikpCisJCQlyZXR1cm4odG1wLT5uYW1lKTsKKwkJfQorI2Vsc2UKKwkJaWYgKCh0bXAtPm9rZXkgPT0gc2tleSkgJiYgKHRtcC0+bGVuID09IGxlbikgJiYKKwkJICAgICgheG1sU3RybmNtcCh0bXAtPm5hbWUsIG5hbWUsIGxlbikpKQorCQkgICAgcmV0dXJuKHRtcC0+bmFtZSk7CisjZW5kaWYKKwkJbmJpKys7CisJICAgIH0KKyNpZmRlZiBfX0dOVUNfXworCSAgICBpZiAoKHRtcC0+b2tleSA9PSBza2V5KSAmJiAodG1wLT5sZW4gPT0gbGVuKSkgeworCQlpZiAoIW1lbWNtcCh0bXAtPm5hbWUsIG5hbWUsIGxlbikpCisJCSAgICByZXR1cm4odG1wLT5uYW1lKTsKKwkgICAgfQorI2Vsc2UKKwkgICAgaWYgKCh0bXAtPm9rZXkgPT0gc2tleSkgJiYgKHRtcC0+bGVuID09IGxlbikgJiYKKwkJKCF4bWxTdHJuY21wKHRtcC0+bmFtZSwgbmFtZSwgbGVuKSkpCisJCXJldHVybih0bXAtPm5hbWUpOworI2VuZGlmCisJfQorICAgIH0KKworICAgIC8qIG5vdCBmb3VuZCAqLworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxEaWN0UUxvb2t1cDoKKyAqIEBkaWN0OiB0aGUgZGljdGlvbm5hcnkKKyAqIEBwcmVmaXg6IHRoZSBwcmVmaXgKKyAqIEBuYW1lOiB0aGUgbmFtZQorICoKKyAqIEFkZCB0aGUgUU5hbWUgQHByZWZpeDpAbmFtZSB0byB0aGUgaGFzaCBAZGljdCBpZiBub3QgcHJlc2VudC4KKyAqCisgKiBSZXR1cm5zIHRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBRTmFtZSBvciBOVUxMIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3IKKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxEaWN0UUxvb2t1cCh4bWxEaWN0UHRyIGRpY3QsIGNvbnN0IHhtbENoYXIgKnByZWZpeCwgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHVuc2lnbmVkIGxvbmcgb2tleSwga2V5LCBuYmkgPSAwOworICAgIHhtbERpY3RFbnRyeVB0ciBlbnRyeTsKKyAgICB4bWxEaWN0RW50cnlQdHIgaW5zZXJ0OworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKyAgICBpbnQgbGVuLCBwbGVuLCBsOworCisgICAgaWYgKChkaWN0ID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisgICAgICAgIHJldHVybih4bWxEaWN0TG9va3VwKGRpY3QsIG5hbWUsIC0xKSk7CisKKyAgICBsID0gbGVuID0gc3RybGVuKChjb25zdCBjaGFyICopIG5hbWUpOworICAgIHBsZW4gPSBzdHJsZW4oKGNvbnN0IGNoYXIgKikgcHJlZml4KTsKKyAgICBsZW4gKz0gMSArIHBsZW47CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGluc2VydGlvbiBsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBva2V5ID0geG1sRGljdENvbXB1dGVRS2V5KGRpY3QsIHByZWZpeCwgcGxlbiwgbmFtZSwgbCk7CisgICAga2V5ID0gb2tleSAlIGRpY3QtPnNpemU7CisgICAgaWYgKGRpY3QtPmRpY3Rba2V5XS52YWxpZCA9PSAwKSB7CisJaW5zZXJ0ID0gTlVMTDsKKyAgICB9IGVsc2UgeworCWZvciAoaW5zZXJ0ID0gJihkaWN0LT5kaWN0W2tleV0pOyBpbnNlcnQtPm5leHQgIT0gTlVMTDsKKwkgICAgIGluc2VydCA9IGluc2VydC0+bmV4dCkgeworCSAgICBpZiAoKGluc2VydC0+b2tleSA9PSBva2V5KSAmJiAoaW5zZXJ0LT5sZW4gPT0gbGVuKSAmJgorCSAgICAgICAgKHhtbFN0clFFcXVhbChwcmVmaXgsIG5hbWUsIGluc2VydC0+bmFtZSkpKQorCQlyZXR1cm4oaW5zZXJ0LT5uYW1lKTsKKwkgICAgbmJpKys7CisJfQorCWlmICgoaW5zZXJ0LT5va2V5ID09IG9rZXkpICYmIChpbnNlcnQtPmxlbiA9PSBsZW4pICYmCisJICAgICh4bWxTdHJRRXF1YWwocHJlZml4LCBuYW1lLCBpbnNlcnQtPm5hbWUpKSkKKwkgICAgcmV0dXJuKGluc2VydC0+bmFtZSk7CisgICAgfQorCisgICAgaWYgKGRpY3QtPnN1YmRpY3QpIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBza2V5OworCisgICAgICAgIC8qIHdlIGNhbm5vdCBhbHdheXMgcmV1c2UgdGhlIHNhbWUgb2tleSBmb3IgdGhlIHN1YmRpY3QgKi8KKyAgICAgICAgaWYgKCgoZGljdC0+c2l6ZSA9PSBNSU5fRElDVF9TSVpFKSAmJgorCSAgICAgKGRpY3QtPnN1YmRpY3QtPnNpemUgIT0gTUlOX0RJQ1RfU0laRSkpIHx8CisgICAgICAgICAgICAoKGRpY3QtPnNpemUgIT0gTUlOX0RJQ1RfU0laRSkgJiYKKwkgICAgIChkaWN0LT5zdWJkaWN0LT5zaXplID09IE1JTl9ESUNUX1NJWkUpKSkKKwkgICAgc2tleSA9IHhtbERpY3RDb21wdXRlUUtleShkaWN0LT5zdWJkaWN0LCBwcmVmaXgsIHBsZW4sIG5hbWUsIGwpOworCWVsc2UKKwkgICAgc2tleSA9IG9rZXk7CisKKwlrZXkgPSBza2V5ICUgZGljdC0+c3ViZGljdC0+c2l6ZTsKKwlpZiAoZGljdC0+c3ViZGljdC0+ZGljdFtrZXldLnZhbGlkICE9IDApIHsKKwkgICAgeG1sRGljdEVudHJ5UHRyIHRtcDsKKwkgICAgZm9yICh0bXAgPSAmKGRpY3QtPnN1YmRpY3QtPmRpY3Rba2V5XSk7IHRtcC0+bmV4dCAhPSBOVUxMOworCQkgdG1wID0gdG1wLT5uZXh0KSB7CisJCWlmICgodG1wLT5va2V5ID09IHNrZXkpICYmICh0bXAtPmxlbiA9PSBsZW4pICYmCisJCSAgICAoeG1sU3RyUUVxdWFsKHByZWZpeCwgbmFtZSwgdG1wLT5uYW1lKSkpCisJCSAgICByZXR1cm4odG1wLT5uYW1lKTsKKwkJbmJpKys7CisJICAgIH0KKwkgICAgaWYgKCh0bXAtPm9rZXkgPT0gc2tleSkgJiYgKHRtcC0+bGVuID09IGxlbikgJiYKKwkJKHhtbFN0clFFcXVhbChwcmVmaXgsIG5hbWUsIHRtcC0+bmFtZSkpKQorCQlyZXR1cm4odG1wLT5uYW1lKTsKKwl9CisJa2V5ID0gb2tleSAlIGRpY3QtPnNpemU7CisgICAgfQorCisgICAgcmV0ID0geG1sRGljdEFkZFFTdHJpbmcoZGljdCwgcHJlZml4LCBwbGVuLCBuYW1lLCBsKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoaW5zZXJ0ID09IE5VTEwpIHsKKwllbnRyeSA9ICYoZGljdC0+ZGljdFtrZXldKTsKKyAgICB9IGVsc2UgeworCWVudHJ5ID0geG1sTWFsbG9jKHNpemVvZih4bWxEaWN0RW50cnkpKTsKKwlpZiAoZW50cnkgPT0gTlVMTCkKKwkgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgZW50cnktPm5hbWUgPSByZXQ7CisgICAgZW50cnktPmxlbiA9IGxlbjsKKyAgICBlbnRyeS0+bmV4dCA9IE5VTEw7CisgICAgZW50cnktPnZhbGlkID0gMTsKKyAgICBlbnRyeS0+b2tleSA9IG9rZXk7CisKKyAgICBpZiAoaW5zZXJ0ICE9IE5VTEwpIAorCWluc2VydC0+bmV4dCA9IGVudHJ5OworCisgICAgZGljdC0+bmJFbGVtcysrOworCisgICAgaWYgKChuYmkgPiBNQVhfSEFTSF9MRU4pICYmCisgICAgICAgIChkaWN0LT5zaXplIDw9ICgoTUFYX0RJQ1RfSEFTSCAvIDIpIC8gTUFYX0hBU0hfTEVOKSkpCisJeG1sRGljdEdyb3coZGljdCwgTUFYX0hBU0hfTEVOICogMiAqIGRpY3QtPnNpemUpOworICAgIC8qIE5vdGUgdGhhdCBlbnRyeSBtYXkgaGF2ZSBiZWVuIGZyZWVkIGF0IHRoaXMgcG9pbnQgYnkgeG1sRGljdEdyb3cgKi8KKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbERpY3RPd25zOgorICogQGRpY3Q6IHRoZSBkaWN0aW9ubmFyeQorICogQHN0cjogdGhlIHN0cmluZworICoKKyAqIGNoZWNrIGlmIGEgc3RyaW5nIGlzIG93bmVkIGJ5IHRoZSBkaXNjdGlvbmFyeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlLCAwIGlmIGZhbHNlIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKiAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sRGljdE93bnMoeG1sRGljdFB0ciBkaWN0LCBjb25zdCB4bWxDaGFyICpzdHIpIHsKKyAgICB4bWxEaWN0U3RyaW5nc1B0ciBwb29sOworCisgICAgaWYgKChkaWN0ID09IE5VTEwpIHx8IChzdHIgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBwb29sID0gZGljdC0+c3RyaW5nczsKKyAgICB3aGlsZSAocG9vbCAhPSBOVUxMKSB7CisgICAgICAgIGlmICgoc3RyID49ICZwb29sLT5hcnJheVswXSkgJiYgKHN0ciA8PSBwb29sLT5mcmVlKSkKKwkgICAgcmV0dXJuKDEpOworCXBvb2wgPSBwb29sLT5uZXh0OworICAgIH0KKyAgICBpZiAoZGljdC0+c3ViZGljdCkKKyAgICAgICAgcmV0dXJuKHhtbERpY3RPd25zKGRpY3QtPnN1YmRpY3QsIHN0cikpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxEaWN0U2l6ZToKKyAqIEBkaWN0OiB0aGUgZGljdGlvbm5hcnkKKyAqCisgKiBRdWVyeSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluc3RhbGxlZCBpbiB0aGUgaGFzaCBAZGljdC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGRpY3Rpb25uYXJ5IG9yCisgKiAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sRGljdFNpemUoeG1sRGljdFB0ciBkaWN0KSB7CisgICAgaWYgKGRpY3QgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChkaWN0LT5zdWJkaWN0KQorICAgICAgICByZXR1cm4oZGljdC0+bmJFbGVtcyArIGRpY3QtPnN1YmRpY3QtPm5iRWxlbXMpOworICAgIHJldHVybihkaWN0LT5uYkVsZW1zKTsKK30KKworCisjZGVmaW5lIGJvdHRvbV9kaWN0CisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmswLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTE2YzM1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmswLmh0bWwKQEAgLTAsMCArMSwyOTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+QVBJIEFscGhhYmV0aWMgSW5kZXggQS1CIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BUEkgQWxwaGFiZXRpYyBJbmRleCBBLUIgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxoMj5MZXR0ZXIgQTo8L2gyPjxkbD48ZHQ+QS1aPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5BLVphLXo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVuY05hbWUiPnhtbFBhcnNlRW5jTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkEtWmEtejAtOTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5jTmFtZSI+eG1sUGFyc2VFbmNOYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+QUJDPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+QUJJPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNfeG1sRXJyb3IiPl94bWxFcnJvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkFMTDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdBbGxUcmFucyI+eG1sQXV0b21hdGFOZXdBbGxUcmFuczwvYT48YnIgLz4KKzwvZGQ+PGR0PkFOWTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNNaXhlZEVsZW1lbnQiPnhtbElzTWl4ZWRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+QVBJczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfTEVHQUNZX0VOQUJMRUQiPkxJQlhNTF9MRUdBQ1lfRU5BQkxFRDwvYT48YnIgLz4KKzwvZGQ+PGR0PkFSUkFZPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybGVuIj54bWxTdHJsZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3Ryc2l6ZSI+eG1sVVRGOFN0cnNpemU8L2E+PGJyIC8+Cis8L2RkPjxkdD5BU0NJSTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNVVEY4VG9IdG1sIj5VVEY4VG9IdG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JFbmNvZGVFbnRpdGllcyI+ZG9jYkVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxBZGRFbmNvZGluZ0FsaWFzIj54bWxBZGRFbmNvZGluZ0FsaWFzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxEZWxFbmNvZGluZ0FsaWFzIj54bWxEZWxFbmNvZGluZ0FsaWFzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldEVuY29kaW5nQWxpYXMiPnhtbEdldEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkFUVExJU1Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Ij54bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PkFUVFJJQlVURTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRDaGlsZCI+eG1sQWRkQ2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkTmV4dFNpYmxpbmciPnhtbEFkZE5leHRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFByZXZTaWJsaW5nIj54bWxBZGRQcmV2U2libGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkFic29sdXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+QWNjZXNzb3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxUeXBlIj54bWxTY2hlbWFHZXRWYWxUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4iPnhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyI+eG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0TmV4dCI+eG1sU2NoZW1hVmFsdWVHZXROZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+QWN0aXZhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPC9kZD48ZHQ+QWN0dWFsbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVDwvYT48YnIgLz4KKzwvZGQ+PGR0PkFkZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ0FkZCI+eG1sQUNhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGQiPnhtbEFkZENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkTGlzdCI+eG1sQWRkQ2hpbGRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkU2libGluZyI+eG1sQWRkU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGQiPnhtbEJ1ZmZlckFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGRIZWFkIj54bWxCdWZmZXJBZGRIZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZExvY2FsIj54bWxDYXRhbG9nQWRkTG9jYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdExvb2t1cCI+eG1sRGljdExvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UUxvb2t1cCI+eG1sRGljdFFMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5Ij54bWxIYXNoQWRkRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MiI+eG1sSGFzaEFkZEVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkzIj54bWxIYXNoQWRkRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeSI+eG1sSGFzaFVwZGF0ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MyI+eG1sSGFzaFVwZGF0ZUVudHJ5MzwvYT48YnIgLz4KKzwvZGQ+PGR0PkFkZGl0aW9uYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxDbGVhbnVwR2xvYmFscyI+eG1sQ2xlYW51cEdsb2JhbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5pdEdsb2JhbHMiPnhtbEluaXRHbG9iYWxzPC9hPjxiciAvPgorPC9kZD48ZHQ+QWVnZWFuTnVtYmVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMiPnhtbFVDU0lzQWVnZWFuTnVtYmVyczwvYT48YnIgLz4KKzwvZGQ+PGR0PkFsbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlIj5feG1sU2NoZW1hVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0Ij54bWxOYW5vRlRQR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBMaXN0Ij54bWxOYW5vRlRQTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiPnhtbFRleHRXcml0ZXJFbmREb2N1bWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PkFsbG9jYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOZXdQYXJzZXJDdHh0Ij5odG1sTmV3UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTmV3Q3R4dCI+eG1sTmFub0ZUUE5ld0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbE5ld0RvY0VsZW1lbnRDb250ZW50Ij54bWxOZXdEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RWxlbWVudENvbnRlbnQiPnhtbE5ld0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTmV3UGFyc2VyQ3R4dCI+eG1sTmV3UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3VmFsaWRDdHh0Ij54bWxOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdGYWNldCI+eG1sU2NoZW1hTmV3RmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlIj54bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSI+eG1sU2NoZW1hTmV3UU5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkFsbG9jYXRlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwTmV3Q3R4dCI+eG1sRE9NV3JhcE5ld0N0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5BbGxvd3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+QWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zIj54bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtczwvYT48YnIgLz4KKzwvZGQ+PGR0PkFsc288L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlIj54bWxQYXJzZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+QWx3YXlzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ09NQklOSU5HX0NIIj5JU19DT01CSU5JTkdfQ0g8L2E+PGJyIC8+Cis8L2RkPjxkdD5BcHBlbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ0NhdCI+eG1sQnVmZmVyQ0NhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDYXQiPnhtbEJ1ZmZlckNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudCI+eG1sTm9kZUFkZENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnRMZW4iPnhtbE5vZGVBZGRDb250ZW50TGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+QXBwZW5kaXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBDb21waWxlIj54bWxSZWdleHBDb21waWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+QXBwZW5kczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlQXBwZW5kIj54bWxTY2hlbWFWYWx1ZUFwcGVuZDwvYT48YnIgLz4KKzwvZGQ+PGR0PkFwcGxpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRVc2VPcHRpb25zIj5odG1sQ3R4dFVzZU9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0VXNlT3B0aW9ucyI+eG1sQ3R4dFVzZU9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxOb3JtYWxpemVVUklQYXRoIj54bWxOb3JtYWxpemVVUklQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiI+eG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW48L2E+PGJyIC8+Cis8L2RkPjxkdD5BcHBseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZX1NUUklDVCI+WE1MX1NDSEVNQVNfQU5ZX1NUUklDVDwvYT48YnIgLz4KKzwvZGQ+PGR0PkFyYWJpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0FyYWJpYyI+eG1sVUNTSXNBcmFiaWM8L2E+PGJyIC8+Cis8L2RkPjxkdD5BcmFiaWNQcmVzZW50YXRpb25Gb3Jtcy1BPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBIj54bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQTwvYT48YnIgLz4KKzwvZGQ+PGR0PkFyYWJpY1ByZXNlbnRhdGlvbkZvcm1zLUI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IiPnhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCPC9hPjxiciAvPgorPC9kZD48ZHQ+QXJtZW5pYW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBcm1lbmlhbiI+eG1sVUNTSXNBcm1lbmlhbjwvYT48YnIgLz4KKzwvZGQ+PGR0PkFycmF5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+QXJyb3dzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQXJyb3dzIj54bWxVQ1NJc0Fycm93czwvYT48YnIgLz4KKzwvZGQ+PGR0PkFzc29jaWF0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXROcyI+eG1sU2V0TnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5BdHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPC9kZD48ZHQ+QXR0RGVmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCI+eG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkF0dFR5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsIj54bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5BdHRWYWx1ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbGVtZW50Ij5odG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlIj54bWxQYXJzZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5BdHRsaXN0RGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlTGlzdERlY2wiPnhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkF0dHJpYnV0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0cmlidXRlIj5feG1sQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbGVtZW50Ij5odG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCI+eG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySXNEZWZhdWx0Ij54bWxUZXh0UmVhZGVySXNEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQiPnhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+QXR0cmlidXRlLVZhbHVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkF0dHJpYnV0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25UeXBlIj54bWxQYXJzZU5vdGF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PkF1dG9tYXRpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQiPmRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VGaWxlIj5kb2NiUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZUZpbGUiPmRvY2JTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQiPmh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VGaWxlIj5odG1sUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZUZpbGUiPmh0bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0Ij54bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQiPnhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VGaWxlIj54bWxQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWNvdmVyRmlsZSI+eG1sUmVjb3ZlckZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGUiPnhtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFVzZXJQYXJzZUZpbGUiPnhtbFNBWFVzZXJQYXJzZUZpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5BdXRvbWF0aWNhbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmFzZUNoYXJRIj54bWxJc0Jhc2VDaGFyUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyX2NoIj54bWxJc0Jhc2VDaGFyX2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmxhbmtRIj54bWxJc0JsYW5rUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rX2NoIj54bWxJc0JsYW5rX2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ2hhclEiPnhtbElzQ2hhclE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyX2NoIj54bWxJc0NoYXJfY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDb21iaW5pbmdRIj54bWxJc0NvbWJpbmluZ1E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNEaWdpdFEiPnhtbElzRGlnaXRRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXRfY2giPnhtbElzRGlnaXRfY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNFeHRlbmRlclEiPnhtbElzRXh0ZW5kZXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJfY2giPnhtbElzRXh0ZW5kZXJfY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpY1EiPnhtbElzSWRlb2dyYXBoaWNRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyUSI+eG1sSXNQdWJpZENoYXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyX2NoIj54bWxJc1B1YmlkQ2hhcl9jaDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIEI6PC9oMj48ZGw+PGR0PkJBU0U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPC9kZD48ZHQ+QkFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+Qk9NPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5CYWxhbmNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRW50aXR5Ij54bWxQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VFbnRpdHkiPnhtbFNBWFBhcnNlRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+QmFzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlIj5feG1sU2NoZW1hVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5CYXNlQ2hhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0JBU0VDSEFSIj5JU19CQVNFQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0xFVFRFUiI+SVNfTEVUVEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sSXNMZXR0ZXIiPnhtbElzTGV0dGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+QmFzZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc0luZiI+eG1sWFBhdGhJc0luZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT48YnIgLz4KKzwvZGQ+PGR0PkJhc2ljTGF0aW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCYXNpY0xhdGluIj54bWxVQ1NJc0Jhc2ljTGF0aW48L2E+PGJyIC8+Cis8L2RkPjxkdD5CYXNpY2FsbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkIj54bWxWYWxpZGF0ZUR0ZDwvYT48YnIgLz4KKzwvZGQ+PGR0PkJlZm9yZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5CZWhhdmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ0hBUl9DSCI+SVNfQ0hBUl9DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0RJR0lUX0NIIj5JU19ESUdJVF9DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSX0NIIj5JU19FWFRFTkRFUl9DSDwvYT48YnIgLz4KKzwvZGQ+PGR0PkJlaGF2aW91cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0JMQU5LX0NIIj5JU19CTEFOS19DSDwvYT48YnIgLz4KKzwvZGQ+PGR0PkJlbmdhbGk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCZW5nYWxpIj54bWxVQ1NJc0JlbmdhbGk8L2E+PGJyIC8+Cis8L2RkPjxkdD5CZXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkJpbkhleDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJpbkhleCI+eG1sVGV4dFdyaXRlcldyaXRlQmluSGV4PC9hPjxiciAvPgorPC9kZD48ZHQ+Qml0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0NPTVBMRVRFX0FUVFJTIj5YTUxfQ09NUExFVEVfQVRUUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVURUNUX0lEUyI+WE1MX0RFVEVDVF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzwvZGQ+PGR0PkJsb2NrRWxlbWVudHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCbG9ja0VsZW1lbnRzIj54bWxVQ1NJc0Jsb2NrRWxlbWVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5CbG9ja3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdG9wUGFyc2VyIj54bWxTdG9wUGFyc2VyPC9hPjxiciAvPgorPC9kZD48ZHQ+Qm9wb21vZm88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCb3BvbW9mbyI+eG1sVUNTSXNCb3BvbW9mbzwvYT48YnIgLz4KKzwvZGQ+PGR0PkJvcG9tb2ZvRXh0ZW5kZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkIj54bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Cb3RoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfQk9USCI+WE1MX1NVQlNUSVRVVEVfQk9USDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5Cb3hEcmF3aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQm94RHJhd2luZyI+eG1sVUNTSXNCb3hEcmF3aW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+QnJhaWxsZVBhdHRlcm5zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQnJhaWxsZVBhdHRlcm5zIj54bWxVQ1NJc0JyYWlsbGVQYXR0ZXJuczwvYT48YnIgLz4KKzwvZGQ+PGR0PkJyem96b3dza2k8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFN0cmluZ0Rlcml2ZSI+eG1sRXhwU3RyaW5nRGVyaXZlPC9hPjxiciAvPgorPC9kZD48ZHQ+QnVmZmVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSU9QYXJzZURURCI+eG1sSU9QYXJzZURURDwvYT48YnIgLz4KKzwvZGQ+PGR0PkJ1Z3M6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5CdWhpZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0J1aGlkIj54bWxVQ1NJc0J1aGlkPC9hPjxiciAvPgorPC9kZD48ZHQ+QnVpbGQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlBdHRyaWJ1dGVUYWJsZSI+eG1sQ29weUF0dHJpYnV0ZVRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQiPnhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRDb250ZW50Ij54bWxDb3B5RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbGVtZW50VGFibGUiPnhtbENvcHlFbGVtZW50VGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENvcHlFbnRpdGllc1RhYmxlIj54bWxDb3B5RW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weU5vdGF0aW9uVGFibGUiPnhtbENvcHlOb3RhdGlvblRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vZGVQYXRoIj54bWxHZXROb2RlUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdOZXdFeGVjQ3R4dCI+eG1sUmVnTmV3RXhlY0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQnVpbGRDb250ZW50TW9kZWwiPnhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iPnhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PkJ1aWxkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWlsZFFOYW1lIj54bWxCdWlsZFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkJ1dDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+Qnl6YW50aW5lTXVzaWNhbFN5bWJvbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scyI+eG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9sczwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTFhZjNlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxLmh0bWwKQEAgLTAsMCArMSwzODIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+QVBJIEFscGhhYmV0aWMgSW5kZXggQy1DIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BUEkgQWxwaGFiZXRpYyBJbmRleCBDLUMgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxoMj5MZXR0ZXIgQzo8L2gyPjxkbD48ZHQ+QzE0TjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT48YnIgLz4KKzwvZGQ+PGR0PkNBVEFMT0c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZEFDYXRhbG9nIj54bWxMb2FkQUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkNEQVRBPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1BSRVNFUlZFX05PREUiPkhUTUxfUFJFU0VSVkVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NEYXRhQmxvY2siPnhtbE5ld0NEYXRhQmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGUiPnhtbE5ld0RvY05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNEU2VjdCI+eG1sUGFyc2VDRFNlY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJEYXRhIj54bWxQYXJzZUNoYXJEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZENEQVRBIj54bWxUZXh0V3JpdGVyRW5kQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSI+eG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+Q0RFbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNEU2VjdCI+eG1sUGFyc2VDRFNlY3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5DRFNlY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNEU2VjdCI+eG1sUGFyc2VDRFNlY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbnRlbnQiPnhtbFBhcnNlQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Q0RTdGFydDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ0RTZWN0Ij54bWxQYXJzZUNEU2VjdDwvYT48YnIgLz4KKzwvZGQ+PGR0PkNEYXRhPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDRFNlY3QiPnhtbFBhcnNlQ0RTZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5DSktDb21wYXRpYmlsaXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+Q0pLQ29tcGF0aWJpbGl0eUZvcm1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zIj54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtczwvYT48YnIgLz4KKzwvZGQ+PGR0PkNKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMiPnhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5DSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQiPnhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+Q0pLUmFkaWNhbHNTdXBwbGVtZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50Ij54bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PkNKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbiI+eG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5DSktVbmlmaWVkSWRlb2dyYXBoczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzIj54bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzPC9hPjxiciAvPgorPC9kZD48ZHQ+Q0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BIj54bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQiI+eG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkI8L2E+PGJyIC8+Cis8L2RkPjxkdD5DVlM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1ZFUlNJT05fRVhUUkEiPkxJQlhNTF9WRVJTSU9OX0VYVFJBPC9hPjxiciAvPgorPC9kZD48ZHQ+Q1dEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDd2QiPnhtbE5hbm9GVFBDd2Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5DYWNoZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PkNhbGw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNodG1sSW5pdEF1dG9DbG9zZSI+aHRtbEluaXRBdXRvQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0UGFyc2VyIj54bWxJbml0UGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzwvZGQ+PGR0PkNhbGxiYWNrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZXh0ZXJuYWxTdWJzZXQiPmV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXh0ZXJuYWxTdWJzZXRTQVhGdW5jIj5leHRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbnRlcm5hbFN1YnNldCI+aW50ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpbnRlcm5hbFN1YnNldFNBWEZ1bmMiPmludGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEVudGl0eVJlZmVyZW5jZUZ1bmMiPnhtbEVudGl0eVJlZmVyZW5jZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENvcGllciI+eG1sSGFzaENvcGllcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siPnhtbElucHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRPcGVuQ2FsbGJhY2siPnhtbElucHV0T3BlbkNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERhdGFDb21wYXJlIj54bWxMaXN0RGF0YUNvbXBhcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERlYWxsb2NhdG9yIj54bWxMaXN0RGVhbGxvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFdhbGtlciI+eG1sTGlzdFdhbGtlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0T3BlbkNhbGxiYWNrIj54bWxPdXRwdXRPcGVuQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkV4dGVybmFsU3Vic2V0Ij54bWxTQVgyRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkludGVybmFsU3Vic2V0Ij54bWxTQVgySW50ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PkNhbGxiYWNrOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PkNhbGxlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2NkYXRhQmxvY2tTQVhGdW5jIj5jZGF0YUJsb2NrU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2VuZERvY3VtZW50U0FYRnVuYyI+ZW5kRG9jdW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW5kRWxlbWVudFNBWEZ1bmMiPmVuZEVsZW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RG9jdW1lbnRTQVhGdW5jIj5zdGFydERvY3VtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudFNBWEZ1bmMiPnN0YXJ0RWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5DYWxsaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzPC9hPjxiciAvPgorPC9kZD48ZHQ+Q2Fub25pY2FsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5DYW5vbmljYWxpemF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9DMTROX0VOQUJMRUQiPkxJQlhNTF9DMTROX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNhcmw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGUiPnhtbFVSSUVzY2FwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNhdGFsb2c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0NBVEFMT0dfRU5BQkxFRCI+TElCWE1MX0NBVEFMT0dfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQUxPR19QSSI+WE1MX0NBVEFMT0dfUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dBZGQiPnhtbEFDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nRHVtcCI+eG1sQUNhdGFsb2dEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVtb3ZlIj54bWxBQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmUiPnhtbEFDYXRhbG9nUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPnhtbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iPnhtbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkiPnhtbEFDYXRhbG9nUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciI+eG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sRnJlZUNhdGFsb2ciPnhtbEZyZWVDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRBQ2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbE5ld0NhdGFsb2ciPnhtbE5ld0NhdGFsb2c8L2E+PGJyIC8+Cis8L2RkPjxkdD5DYXRhbG9nczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFIj5YTUxfQ0FUQUxPR1NfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRBQ2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkNoYW5nZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldEZlYXR1cmUiPnhtbFNldEZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5DaGFuZ2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+Q2hhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0JZVEVfQ0hBUiI+SVNfQllURV9DSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ0hBUiI+SVNfQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ0RTZWN0Ij54bWxQYXJzZUNEU2VjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ2hhclJlZiI+eG1sUGFyc2VDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb21tZW50Ij54bWxQYXJzZUNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJIj54bWxQYXJzZVBJPC9hPjxiciAvPgorPC9kZD48ZHQ+Q2hhckRhdGE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJEYXRhIj54bWxQYXJzZUNoYXJEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb250ZW50Ij54bWxQYXJzZUNvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PkNoYXJSZWY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlQ2hhclJlZiI+aHRtbFBhcnNlQ2hhclJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJSZWYiPnhtbFBhcnNlQ2hhclJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUmVmZXJlbmNlIj54bWxQYXJzZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0RlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+Q2hhcmFjdGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeUVuYyI+eG1sRG9jRHVtcE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sUGFyc2VDaGFyRW5jb2RpbmciPnhtbFBhcnNlQ2hhckVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyUmVmIj54bWxQYXJzZUNoYXJSZWY8L2E+PGJyIC8+Cis8L2RkPjxkdD5DaGFyYWN0ZXJzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyUmVmIj54bWxQYXJzZUNoYXJSZWY8L2E+PGJyIC8+Cis8L2RkPjxkdD5DaGVja2E8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5DaGVja3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF0dHJBbGxvd2VkIj5odG1sQXR0ckFsbG93ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSI+aHRtbEVsZW1lbnRBbGxvd2VkSGVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyI+aHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRTdGF0dXNIZXJlIj5odG1sRWxlbWVudFN0YXR1c0hlcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QiPnhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSXNCbGFua05vZGUiPnhtbElzQmxhbmtOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRJc0VtcHR5Ij54bWxYUGF0aE5vZGVTZXRJc0VtcHR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0YWNrSXNFeHRlcm5hbCI+eG1sWFBhdGhTdGFja0lzRXh0ZXJuYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5DaGVyb2tlZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NoZXJva2VlIj54bWxVQ1NJc0NoZXJva2VlPC9hPjxiciAvPgorPC9kZD48ZHQ+Q2hpbGRyZW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5DaHVuazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VDaHVuayI+ZG9jYlBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlQ2h1bmsiPmh0bWxQYXJzZUNodW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDaHVuayI+eG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Q2xlYW51cDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2xlYW51cENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiPnhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEN0eHRSZXNldExhc3RFcnJvciI+eG1sQ3R4dFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbGVhbnVwIj54bWxOYW5vRlRQQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDbGVhbnVwIj54bWxOYW5vSFRUUENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0NsZWFudXBUeXBlcyI+eG1sUmVsYXhOR0NsZWFudXBUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUmVzZXRFcnJvciI+eG1sUmVzZXRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUmVzZXRMYXN0RXJyb3IiPnhtbFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2xlYW51cFR5cGVzIj54bWxTY2hlbWFDbGVhbnVwVHlwZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlVmFsdWUiPnhtbFNjaGVtYUZyZWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwIj54bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwIj54bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwPC9hPjxiciAvPgorPC9kZD48ZHQ+Q2xlYXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhck5vZGVJbmZvU2VxIj54bWxDbGVhck5vZGVJbmZvU2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYXJQYXJzZXJDdHh0Ij54bWxDbGVhclBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBvcElucHV0Q2FsbGJhY2tzIj54bWxQb3BJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzwvZGQ+PGR0PkNsZWFyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldHVwUGFyc2VyRm9yQnVmZmVyIj54bWxTZXR1cFBhcnNlckZvckJ1ZmZlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkNsb3NlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGaWxlQ2xvc2UiPnhtbEZpbGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBDbG9zZSI+eG1sSU9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQQ2xvc2UiPnhtbElPSFRUUENsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbG9zZSI+eG1sTmFub0ZUUENsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24iPnhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUNsb3NlIj54bWxTYXZlQ2xvc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5DbG9zZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ2xvc2UiPnhtbFRleHRSZWFkZXJDbG9zZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvbWJpbmluZ0NoYXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DT01CSU5JTkciPklTX0NPTUJJTklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZSI+eG1sUGFyc2VOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2Nhbk5hbWUiPnhtbFNjYW5OYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBhcnNlTkNOYW1lIj54bWxYUGF0aFBhcnNlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBhcnNlTmFtZSI+eG1sWFBhdGhQYXJzZU5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db21iaW5pbmdEaWFjcml0aWNhbE1hcmtzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcyI+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzPC9hPjxiciAvPgorPC9kZD48ZHQ+Q29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyI+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvbWJpbmluZ0hhbGZNYXJrczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrcyI+eG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db21iaW5pbmdNYXJrc2ZvclN5bWJvbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMiPnhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzPC9hPjxiciAvPgorPC9kZD48ZHQ+Q29tbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ29tbWVudCI+eG1sUGFyc2VDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb250ZW50Ij54bWxQYXJzZUNvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNaXNjIj54bWxQYXJzZU1pc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db21wYXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxQYXJzZUNoYXJFbmNvZGluZyI+eG1sUGFyc2VDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb21wYXJlVmFsdWVzIj54bWxTY2hlbWFDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwIj54bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ21wTm9kZXMiPnhtbFhQYXRoQ21wTm9kZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db21waWxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUNvbXBpbGUiPnhtbEF1dG9tYXRhQ29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuY29tcGlsZSI+eG1sUGF0dGVybmNvbXBpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZSI+eG1sWFBhdGhDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEN0eHRDb21waWxlIj54bWxYUGF0aEN0eHRDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvbXByZXNzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUZpbGUiPmRvY2JQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRmlsZSI+ZG9jYlNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUZpbGUiPmh0bWxQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRmlsZSI+aHRtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQiPnhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVVUkxQYXJzZXJDdHh0Ij54bWxDcmVhdGVVUkxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUZpbGUiPnhtbFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZSI+eG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPnhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYVXNlclBhcnNlRmlsZSI+eG1sU0FYVXNlclBhcnNlRmlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvbXB1dGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+Q29uY2F0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFRleHRDb25jYXQiPnhtbFRleHRDb25jYXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db25zdHJ1Y3RzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ2Fub25pY1BhdGgiPnhtbENhbm9uaWNQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGF0aFRvVVJJIj54bWxQYXRoVG9VUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db250ZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIj54bWxOb2RlR2V0QmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvbnRlbnQtVHlwZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBGZXRjaCI+eG1sTmFub0hUVFBGZXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2QiPnhtbE5hbm9IVFRQTWV0aG9kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW4iPnhtbE5hbm9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuUmVkaXIiPnhtbE5hbm9IVFRQT3BlblJlZGlyPC9hPjxiciAvPgorPC9kZD48ZHQ+Q29udHJhcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvbnRyb2xQaWN0dXJlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NvbnRyb2xQaWN0dXJlcyI+eG1sVUNTSXNDb250cm9sUGljdHVyZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db252ZW5pZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxCb29sVG9UZXh0Ij54bWxCb29sVG9UZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Q29udmVydDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQ29udmVydCI+eG1sQ2F0YWxvZ0NvbnZlcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ29udmVydFNHTUxDYXRhbG9nIj54bWxDb252ZXJ0U0dNTENhdGFsb2c8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db252ZXJ0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyIj54bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyI+eG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuIj54bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nIj54bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVUb051bWJlciI+eG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmciPnhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIj54bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nIj54bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuIj54bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyIj54bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9Cb29sZWFuIj54bWxYUGF0aENhc3RUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFRvTnVtYmVyIj54bWxYUGF0aENhc3RUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9TdHJpbmciPnhtbFhQYXRoQ2FzdFRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRCb29sZWFuIj54bWxYUGF0aENvbnZlcnRCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnROdW1iZXIiPnhtbFhQYXRoQ29udmVydE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0U3RyaW5nIj54bWxYUGF0aENvbnZlcnRTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5Db3BpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb3B5VmFsdWUiPnhtbFNjaGVtYUNvcHlWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvcHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbnVtZXJhdGlvbiI+eG1sQ29weUVudW1lcmF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPC9kZD48ZHQ+Q29ycmVjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRDb21wcmVzc01vZGUiPnhtbFNldENvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXREb2NDb21wcmVzc01vZGUiPnhtbFNldERvY0NvbXByZXNzTW9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvdWxkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlIj5feG1sU2NoZW1hVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkNvdW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxMc0NvdW50Tm9kZSI+eG1sTHNDb3VudE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5DcmVhdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jIj5odG1sTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jTm9EdEQiPmh0bWxOZXdEb2NOb0R0RDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZURvY1BhcnNlckN0eHQiPnhtbENyZWF0ZURvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdDdHh0Ij54bWxFeHBOZXdDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvYyI+eG1sTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZU5ld0NvbnRleHQiPnhtbFhJbmNsdWRlTmV3Q29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+Q3JlYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q0RhdGFCbG9jayI+eG1sTmV3Q0RhdGFCbG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGFyUmVmIj54bWxOZXdDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDb21tZW50Ij54bWxOZXdDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY0NvbW1lbnQiPnhtbE5ld0RvY0NvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jRnJhZ21lbnQiPnhtbE5ld0RvY0ZyYWdtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGUiPnhtbE5ld0RvY05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1BJIj54bWxOZXdEb2NQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NSYXdOb2RlIj54bWxOZXdEb2NSYXdOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1RleHQiPnhtbE5ld0RvY1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jVGV4dExlbiI+eG1sTmV3RG9jVGV4dExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEdGQiPnhtbE5ld0R0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdHbG9iYWxOcyI+eG1sTmV3R2xvYmFsTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Tm9kZSI+eG1sTmV3Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOb2RlRWF0TmFtZSI+eG1sTmV3Tm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3TnMiPnhtbE5ld05zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1BJIj54bWxOZXdQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdSZWZlcmVuY2UiPnhtbE5ld1JlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Ij54bWxOZXdUZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRMZW4iPnhtbE5ld1RleHRMZW48L2E+PGJyIC8+Cis8L2RkPjxkdD5DdXJyZW5jeVN5bWJvbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMiPnhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzPC9hPjxiciAvPgorPC9kZD48ZHQ+Q3VycmVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Q3VycmVudGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldENvbm5lY3Rpb24iPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBJbml0Ij54bWxOYW5vRlRQSW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBJbml0Ij54bWxOYW5vSFRUUEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmciPnhtbFRleHRSZWFkZXJOZXh0U2libGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkN1dDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5DeXByaW90U3lsbGFiYXJ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeSI+eG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5PC9hPjxiciAvPgorPC9kZD48ZHQ+Q3lyaWxsaWM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDeXJpbGxpYyI+eG1sVUNTSXNDeXJpbGxpYzwvYT48YnIgLz4KKzwvZGQ+PGR0PkN5cmlsbGljU3VwcGxlbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudCI+eG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTAuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2MxMWEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxMC5odG1sCkBAIC0wLDAgKzEsNjUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IFotYSBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggWi1hIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIFo6PC9oMj48ZGw+PGR0PlpMSUI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0Ij5kb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRmlsZSI+ZG9jYlBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VGaWxlIj5kb2NiU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRmlsZSI+aHRtbFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij54bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZVVSTFBhcnNlckN0eHQiPnhtbENyZWF0ZVVSTFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Q29tcHJlc3NNb2RlIj54bWxHZXRDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0RG9jQ29tcHJlc3NNb2RlIj54bWxHZXREb2NDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRmlsZSI+eG1sUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckZpbGUiPnhtbFJlY292ZXJGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhVc2VyUGFyc2VGaWxlIj54bWxTQVhVc2VyUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldERvY0NvbXByZXNzTW9kZSI+eG1sU2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+WmxpYjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfWkxJQl9FTkFCTEVEIj5MSUJYTUxfWkxJQl9FTkFCTEVEPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgYTo8L2gyPjxkbD48ZHQ+YS16PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGVTdHIiPnhtbFVSSUVzY2FwZVN0cjwvYT48YnIgLz4KKzwvZGQ+PGR0PmEtekEtWjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0FTQ0lJX0xFVFRFUiI+SVNfQVNDSUlfTEVUVEVSPC9hPjxiciAvPgorPC9kZD48ZHQ+YS16QS1aMC05PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfUFVCSURDSEFSIj5JU19QVUJJRENIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD5hQGI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFByb3h5Ij54bWxOYW5vRlRQUHJveHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5hYmM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24iPnhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5hYmMtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEVudGl0eVJlZmVyZW5jZUZ1bmMiPnhtbEVudGl0eVJlZmVyZW5jZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPjxiciAvPgorPC9kZD48ZHQ+YWJvdXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcFN0cmluZyI+eG1sRGVidWdEdW1wU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbERpciI+eG1sU2hlbGxEaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4iPnhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFib3ZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5hYnNlbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQiPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVCI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFic29sdXRlVVJJPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUkkiPnhtbFBhcnNlVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+YWJzdGFpbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPC9kZD48ZHQ+YWJzdHJhY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVCI+WE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUIj5YTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUPC9hPjxiciAvPgorPC9kZD48ZHQ+YWNjZXB0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTWF4VG9rZW4iPnhtbEV4cE1heFRva2VuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vTnNQcm9wIj54bWxHZXROb05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNNaXhlZEVsZW1lbnQiPnhtbElzTWl4ZWRFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+YWNjZXB0YWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNOZXh0VmFsdWVzIj54bWxSZWdFeGVjTmV4dFZhbHVlczwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjY2VwdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQllURV9DSEFSIj5JU19CWVRFX0NIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iPnhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YWNjZXB0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iPnhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YWNjZXB0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cElzTmlsbGFibGUiPnhtbEV4cElzTmlsbGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBTdWJzdW1lIj54bWxFeHBTdWJzdW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+YWNjZXNzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1HZXQiPnhtbEdjTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld011dGV4Ij54bWxOZXdNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdSTXV0ZXgiPnhtbE5ld1JNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0Ij54bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+YWNjZXNzZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjY2Vzc2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjY2V4cHRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFN1YnN1bWUiPnhtbEV4cFN1YnN1bWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5hY2NvbW1vZGF0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJSZXNpemUiPnhtbEJ1ZmZlclJlc2l6ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjY29yZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkVVJJIj54bWxCdWlsZFVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYVmVyc2lvbiI+eG1sU0FYVmVyc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+YWNjb3JkaW5nbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5hY2NvdW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5hY3F1aXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiI+eG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2giPnhtbFN0cmVhbVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaEF0dHIiPnhtbFN0cmVhbVB1c2hBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5hY3RpdmF0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjdGl2YXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI0RFQlVHX01FTU9SWSI+REVCVUdfTUVNT1JZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdOZWdUcmFucyI+eG1sQXV0b21hdGFOZXdOZWdUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIiPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSI+eG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIj54bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlIj54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0Ij54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFNjaGVtYSI+eG1sVGV4dFJlYWRlclNldFNjaGVtYTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjdGl2YXRlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+YWN0aXZhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRMaW5lTm8iPnhtbEdldExpbmVObzwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjdHVhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbEdldFVURjhDaGFyIj54bWxHZXRVVEY4Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlTm9kZVNldCI+eG1sWFBhdGhGcmVlTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckZyZWVMb2NhdGlvblNldCI+eG1sWFB0ckZyZWVMb2NhdGlvblNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFjdHVhbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzZXREb2N1bWVudExvY2F0b3IiPnNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEFkZEVuY29kaW5nQWxpYXMiPnhtbEFkZEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbERlbEVuY29kaW5nQWxpYXMiPnhtbERlbEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldEVuY29kaW5nQWxpYXMiPnhtbEdldEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yIj54bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nQ3VycmVudENoYXIiPnhtbFN0cmluZ0N1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPcmRlckRvY0VsZW1zIj54bWxYUGF0aE9yZGVyRG9jRWxlbXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5hY3R1YXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzwvZGQ+PGR0PmFkZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ0FkZCI+eG1sQUNhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkIj54bWxCdWZmZXJBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkSGVhZCI+eG1sQnVmZmVyQWRkSGVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDYXQiPnhtbEJ1ZmZlckNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZUNIQVIiPnhtbEJ1ZmZlcldyaXRlQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZUNoYXIiPnhtbEJ1ZmZlcldyaXRlQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyI+eG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHVzaEJhY2siPnhtbExpc3RQdXNoQmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHVzaEZyb250Ij54bWxMaXN0UHVzaEZyb250PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEFkZFZhbHVlcyI+eG1sWFBhdGhBZGRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZCI+eG1sWFBhdGhOb2RlU2V0QWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRBZGROcyI+eG1sWFBhdGhOb2RlU2V0QWRkTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSI+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRBZGQiPnhtbFhQdHJMb2NhdGlvblNldEFkZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFkZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNhdHRyaWJ1dGVTQVhGdW5jIj5hdHRyaWJ1dGVTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0Ij5odG1sRG9jQ29udGVudER1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0Ij5odG1sRG9jRHVtcE1lbW9yeUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wIj5odG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGUiPmh0bWxOb2RlRHVtcEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQiPmh0bWxOb2RlRHVtcEZpbGVGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCI+aHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBPdXRwdXQiPmh0bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbFNhdmVGaWxlRW5jIj5odG1sU2F2ZUZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTYXZlRmlsZUZvcm1hdCI+aHRtbFNhdmVGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkIj54bWxBZGRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGROZXh0U2libGluZyI+eG1sQWRkTmV4dFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkUHJldlNpYmxpbmciPnhtbEFkZFByZXZTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcEZvcm1hdE1lbW9yeSI+eG1sRG9jRHVtcEZvcm1hdE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0Zvcm1hdER1bXAiPnhtbERvY0Zvcm1hdER1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZUVuYyI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhdCI+eG1sU3RyY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhdCI+eG1sU3RybmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZGRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZGRpdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkiPnhtbEhhc2hBZGRFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkyIj54bWxIYXNoQWRkRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTMiPnhtbEhhc2hBZGRFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5Ij54bWxIYXNoVXBkYXRlRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MiI+eG1sSGFzaFVwZGF0ZUVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkzIj54bWxIYXNoVXBkYXRlRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YWRkaXRpb25hbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPC9kZD48ZHQ+YWRkaXRpb25hbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVdhbnRzQW55Tm9kZSI+eG1sU3RyZWFtV2FudHNBbnlOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+YWRkcmVzczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVN5bWJvbCI+eG1sTW9kdWxlU3ltYm9sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckRvYyI+eG1sTmV3VGV4dFdyaXRlckRvYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmFkZHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3QWxsVHJhbnMiPnhtbEF1dG9tYXRhTmV3QWxsVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdFcHNpbG9uIj54bWxBdXRvbWF0YU5ld0Vwc2lsb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlQ0hBUiI+eG1sQnVmZmVyV3JpdGVDSEFSPC9hPjxiciAvPgorPC9kZD48ZHQ+YWRlcXVhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZGphY2VudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRDaGlsZCI+eG1sQWRkQ2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGRMaXN0Ij54bWxBZGRDaGlsZExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkUHJldlNpYmxpbmciPnhtbEFkZFByZXZTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFNpYmxpbmciPnhtbEFkZFNpYmxpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZmZlY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZmZpbGlhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRWxlbWVudCI+X3htbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZnJhaWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzwvZGQ+PGR0PmFmdGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZSI+eG1sTmFub0ZUUENoZWNrUmVzcG9uc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEZyZWVDdHh0Ij54bWxOYW5vRlRQRnJlZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldFJlc3BvbnNlIj54bWxOYW5vRlRQR2V0UmVzcG9uc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlVG8iPnhtbFNhdmVGaWxlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YWdhaW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZ2FpbnN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9URVNUX1ZFUlNJT04iPkxJQlhNTF9URVNUX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjaGVja05hbWVzcGFjZSI+Y2hlY2tOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjeG1sQ2hlY2tWZXJzaW9uIj54bWxDaGVja1ZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBDb21waWxlIj54bWxSZWdleHBDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwRXhlYyI+eG1sUmVnZXhwRXhlYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGF0ZURvYyI+eG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFZhbGlkYXRlIj54bWxTaGVsbFZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZCI+eG1sVmFsaWRhdGVEdGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5hZ2dyZWdhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUJ1ZkdldENvbnRlbnQiPnhtbE5vZGVCdWZHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRDb250ZW50Ij54bWxOb2RlR2V0Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFsZ2VicmFpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPjxiciAvPgorPC9kZD48ZHQ+YWxpYXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEFkZEVuY29kaW5nQWxpYXMiPnhtbEFkZEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbERlbEVuY29kaW5nQWxpYXMiPnhtbERlbEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldEVuY29kaW5nQWxpYXMiPnhtbEdldEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbGlhc2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyI+eG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlczwvYT48YnIgLz4KKzwvZGQ+PGR0PmFsaWFzaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnNCeUhyZWYiPnhtbFNlYXJjaE5zQnlIcmVmPC9hPjxiciAvPgorPC9kZD48ZHQ+YWxsb2NhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJHcm93Ij54bWxCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1aWxkUU5hbWUiPnhtbEJ1aWxkUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NBdG9taWNMb2MiPnhtbE1hbGxvY0F0b21pY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0xvYyI+eG1sTWFsbG9jTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtTWFsbG9jIj54bWxNZW1NYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1SZWFsbG9jIj54bWxNZW1SZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld011dGV4Ij54bWxOZXdNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdSTXV0ZXgiPnhtbE5ld1JNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NMb2MiPnhtbFJlYWxsb2NMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0Q29weSI+eG1sWFBhdGhPYmplY3RDb3B5PC9hPjxiciAvPgorPC9kZD48ZHQ+YWxsb2NhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTmV3UGFyc2VyQ3R4dCI+aHRtbE5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jQXRvbWljTG9jIj54bWxNYWxsb2NBdG9taWNMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NMb2MiPnhtbE1hbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbU1hbGxvYyI+eG1sTWVtTWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtUmVhbGxvYyI+eG1sTWVtUmVhbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVN0cmR1cExvYyI+eG1sTWVtU3RyZHVwTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5U3RyZHVwIj54bWxNZW1vcnlTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxOb3JtYWxpemVVUklQYXRoIj54bWxOb3JtYWxpemVVUklQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0xvYyI+eG1sUmVhbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFsbG9jYXRpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1HZXQiPnhtbEdjTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0RGVhbGxvY2F0ZSI+eG1sUGFyc2VySW5wdXREZWFsbG9jYXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+YWxsb2NhdG9yPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FUVFJfQUxMT0NfU0laRSI+TElCWE1MX0FUVFJfQUxMT0NfU0laRTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFsbG9jYXRvcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+YWxsb3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUIj5YTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0Ij5kb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF0dHJBbGxvd2VkIj5odG1sQXR0ckFsbG93ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVZlcnNpb25OdW0iPnhtbFBhcnNlVmVyc2lvbk51bTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0Ij54bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFZhbGlkYXRlTkNOYW1lIj54bWxWYWxpZGF0ZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5NVG9rZW4iPnhtbFZhbGlkYXRlTk1Ub2tlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5hbWUiPnhtbFZhbGlkYXRlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZVFOYW1lIj54bWxWYWxpZGF0ZVFOYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+YWxsb3dhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2tpcEJsYW5rQ2hhcnMiPnhtbFNraXBCbGFua0NoYXJzPC9hPjxiciAvPgorPC9kZD48ZHQ+YWxsb3dlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9NQVhfVEVYVF9MRU5HVEgiPlhNTF9NQVhfVEVYVF9MRU5HVEg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudCI+X3htbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVdpbGRjYXJkIj5feG1sU2NoZW1hV2lsZGNhcmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSI+aHRtbEVsZW1lbnRBbGxvd2VkSGVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyI+aHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxJc0xldHRlciI+eG1sSXNMZXR0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnQiPnhtbE5vZGVBZGRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50TGVuIj54bWxOb2RlQWRkQ29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcCI+eG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXBPdXRwdXQiPnhtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iPnhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5hbGxvd2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50RG9jIj54bWxUZXh0UmVhZGVyQ3VycmVudERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50Tm9kZSI+eG1sVGV4dFJlYWRlckN1cnJlbnROb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+YWxsb3dzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdXRvQ2xvc2VUYWciPmh0bWxBdXRvQ2xvc2VUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkIj54bWxDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSYXciPnhtbFBhcnNlVVJJUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nIj54bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbHJlYWR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkTmV4dFNpYmxpbmciPnhtbEFkZE5leHRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFByZXZTaWJsaW5nIj54bWxBZGRQcmV2U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRTaWJsaW5nIj54bWxBZGRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sUGFyc2VDaGFyRW5jb2RpbmciPnhtbFBhcnNlQ2hhckVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZXBsYWNlTm9kZSI+eG1sUmVwbGFjZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSI+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRBZGQiPnhtbFhQdHJMb2NhdGlvblNldEFkZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFsc288L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrSFRUUElucHV0Ij54bWxDaGVja0hUVFBJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzUHJvcCI+eG1sSGFzUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUHJveHkiPnhtbE5hbm9GVFBQcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmUiPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4iPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRXZhbE51bWJlciI+eG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+YWx0ZXJuYXRpdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVEQiPnhtbFRleHRXcml0ZXJTdGFydERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURURCI+eG1sVGV4dFdyaXRlcldyaXRlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzIj54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24iPnhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREPC9hPjxiciAvPgorPC9kZD48ZHQ+YWx3YXlzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSU5QVVRfQ0hVTksiPklOUFVUX0NIVU5LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCI+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFtZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nSXNFbXB0eSI+eG1sQ2F0YWxvZ0lzRW1wdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbW91bnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJTlBVVF9DSFVOSyI+SU5QVVRfQ0hVTks8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxQYXJzZXJJbnB1dEJ1ZmZlciI+X3htbFBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtVXNlZCI+eG1sTWVtVXNlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkPC9hPjxiciAvPgorPC9kZD48ZHQ+YW1wPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbXBlcnNhbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbmFseXNpczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjX3htbFZhbGlkQ3R4dCI+X3htbFZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFuYWx5emU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSSI+eG1sUGFyc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSVJhdyI+eG1sUGFyc2VVUklSYXc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSVJlZmVyZW5jZSI+eG1sUGFyc2VVUklSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbmFseXplZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPC9kZD48ZHQ+YW5jZXN0b3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldExhbmciPnhtbE5vZGVHZXRMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExhbmdGdW5jdGlvbiI+eG1sWFBhdGhMYW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFuY2VzdG9yLW9yLXNlbGY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFuY2VzdG9yczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3IiPnhtbFhQYXRoTmV4dEFuY2VzdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiI+eG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+YW5jaG9yZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzTnNQcm9wIj54bWxIYXNOc1Byb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbmdsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ2hhckRhdGEiPnhtbFBhcnNlQ2hhckRhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbm5vdGF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFBbm5vdCI+X3htbFNjaGVtYUFubm90PC9hPjxiciAvPgorPC9kZD48ZHQ+YW5vdGhlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siPnhtbElucHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmFueVNpbXBsZVR5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5hbnlVUkk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+YW55bW9yZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX0xBWCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZQVRUUl9TS0lQIj5YTUxfU0NIRU1BU19BTllBVFRSX1NLSVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1QiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fTlNERUZBVUxUIj5YTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTlNEZWYiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxOZXdFbnRpdHkiPnhtbE5ld0VudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFueXdheTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJEb2MiPnhtbFJlY292ZXJEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWNvdmVyRmlsZSI+eG1sUmVjb3ZlckZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWNvdmVyTWVtb3J5Ij54bWxSZWNvdmVyTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCI+eG1sVmFsaWRhdGVOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5hcGFydDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwb3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGVhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+YXBwZWFyaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFZhbGlkYXRlUG9wRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sVmFsaWRhdGVQdXNoRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGVhcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCNfeG1sVVJJIj5feG1sVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5hcHBlbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDb3B5Q2hhciI+eG1sQ29weUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDb3B5Q2hhck11bHRpQnl0ZSI+eG1sQ29weUNoYXJNdWx0aUJ5dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+YXBwZW5kZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVBcHBlbmQiPnhtbFNjaGVtYVZhbHVlQXBwZW5kPC9hPjxiciAvPgorPC9kZD48ZHQ+YXBwZW5kaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGVuZGl4PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxEZXRlY3RDaGFyRW5jb2RpbmciPnhtbERldGVjdENoYXJFbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGxpY2FibGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGUiPnhtbENvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0NvcHlOb2RlIj54bWxEb2NDb3B5Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGxpY2F0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxBdHRyIj5feG1sQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0cmlidXRlIj5feG1sQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbER0ZCI+X3htbER0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudCI+X3htbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vZGUiPl94bWxOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOcyI+X3htbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCN4bWxDaGVja1ZlcnNpb24iPnhtbENoZWNrVmVyc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTGluZU51bWJlcnNEZWZhdWx0Ij54bWxMaW5lTnVtYmVyc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5hcHBsaWNhdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5hcHBsaWVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3B5Ij54bWxIYXNoQ29weTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbiI+eG1sSGFzaFNjYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsIj54bWxIYXNoU2NhbkZ1bGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGxpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlV2FsayI+eG1sTGlzdFJldmVyc2VXYWxrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0iPnhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVJvb3QiPnhtbFZhbGlkYXRlUm9vdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcGx5aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zTGlzdCI+eG1sR2V0TnNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFwcHJvcHJpYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrSFRUUElucHV0Ij54bWxDaGVja0hUVFBJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmVmZXJlbmNlIj54bWxQYXJzZVVSSVJlZmVyZW5jZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmFyY3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPC9kZD48ZHQ+YXJlYTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyI+eG1sTWFsbG9jQXRvbWljTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jTG9jIj54bWxNYWxsb2NMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1NYWxsb2MiPnhtbE1lbU1hbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVJlYWxsb2MiPnhtbE1lbVJlYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0xvYyI+eG1sUmVhbGxvY0xvYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmFyZWFzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1HZXQiPnhtbEdjTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUJsb2NrcyI+eG1sTWVtQmxvY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyI+eG1sTWVtU2hvdzwvYT48YnIgLz4KKzwvZGQ+PGR0PmFyZ3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NIRUNLX0FSSVRZIj5DSEVDS19BUklUWTwvYT48YnIgLz4KKzxhIGhyZWY9IiI+eDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJSYW5nZVRvRnVuY3Rpb24iPnhtbFhQdHJSYW5nZVRvRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5hcm91bmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZpbGVPcGVuIj54bWxGaWxlT3BlbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmFycmF5czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmFycnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHVzaCI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoPC9hPjxiciAvPgorPC9kZD48ZHQ+YXNrZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVJlZmVyZW5jZSI+eG1sUGFyc2VSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5hc3N1bWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmR1cCI+eG1sU3RyZHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+YXNzdW1lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoZWNrVVRGOCI+eG1sQ2hlY2tVVEY4PC9hPjxiciAvPgorPC9kZD48ZHQ+YXNzdW1lczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5hc3N1bWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZpbGVUbyI+eG1sU2F2ZUZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZVRvIj54bWxTYXZlRm9ybWF0RmlsZVRvPC9hPjxiciAvPgorPC9kZD48ZHQ+YXNzdXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPC9kZD48ZHQ+YXRvbTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0F0b20iPnhtbEV4cE5ld0F0b208L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF0b21pYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtU2V0dXAiPnhtbEdjTWVtU2V0dXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdHRhY2hlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdHRlbXB0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJNZW1vcnkiPnhtbFJlY292ZXJNZW1vcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdHRlbXB0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF0dHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxJRCI+X3htbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxSZWYiPl94bWxSZWY8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdHRyaWJ1dGUtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF0dHJpYnV0ZS1saXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzwvZGQ+PGR0PmF0dHJpYnV0ZS1ub2RlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzwvZGQ+PGR0PmF0dHJpYnV0ZS1ub2RlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1XYW50c0FueU5vZGUiPnhtbFN0cmVhbVdhbnRzQW55Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF0dHJpYnV0ZUZvcm1EZWZhdWx0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSIj5YTUxfU0NIRU1BU19RVUFMSUZfQVRUUjwvYT48YnIgLz4KKzwvZGQ+PGR0PmF1Z21lbnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VEb2N1bWVudCI+ZG9jYlBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRG9jdW1lbnQiPmh0bWxQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VEb2N1bWVudCI+eG1sUGFyc2VEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0UGFyc2VkRW50Ij54bWxQYXJzZUV4dFBhcnNlZEVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxUZXh0TWVyZ2UiPnhtbFRleHRNZXJnZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF1dGFyazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdXRoZW50aWNhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBBdXRoSGVhZGVyIj54bWxOYW5vSFRUUEF1dGhIZWFkZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdXRob3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPC9kZD48ZHQ+YXV0aG9yaXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjX3htbFVSSSI+X3htbFVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF1dGhvcml6ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+YXV0bzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSGFuZGxlT21pdHRlZEVsZW0iPmh0bWxIYW5kbGVPbWl0dGVkRWxlbTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF1dG8tcmVwYWlyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdXRvY2xvc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmF1dG9jbG9zZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmF1dG9nZW5lcmF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+YXV0b21hdGljYWxseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0TmV3Ij54bWxTdHJuY2F0TmV3PC9hPjxiciAvPgorPC9kZD48ZHQ+YXV0b21hdG9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlIj5feG1sU2NoZW1hVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmF1dG9yZWZlcmVuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmF2b2lkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5hdm9pZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0Ij54bWxUZXh0UmVhZGVyTmV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+YXdhcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxMS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3Nzg2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazExLmh0bWwKQEAgLTAsMCArMSwzMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+QVBJIEFscGhhYmV0aWMgSW5kZXggYi1iIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BUEkgQWxwaGFiZXRpYyBJbmRleCBiLWIgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxoMj5MZXR0ZXIgYjo8L2gyPjxkbD48ZHQ+YmFjazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZEVsZW1lbnRDb3VudCI+eG1sQ2hpbGRFbGVtZW50Q291bnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZpcnN0RWxlbWVudENoaWxkIj54bWxGaXJzdEVsZW1lbnRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxMYXN0RWxlbWVudENoaWxkIj54bWxMYXN0RWxlbWVudENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXQiPnhtbE5hbm9GVFBHZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUExpc3QiPnhtbE5hbm9GVFBMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5leHRFbGVtZW50U2libGluZyI+eG1sTmV4dEVsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0R1bXAiPnhtbFJlbGF4TkdEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmJhZGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5iYWhhdmlvdXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5iYWxhbmNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+YmFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YmFzZTY0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0Ij54bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5iYXNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRDb21wcmVzc01vZGUiPnhtbEdldENvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXREb2NDb21wcmVzc01vZGUiPnhtbEdldERvY0NvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb2RlUGF0aCI+eG1sR2V0Tm9kZVBhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSI+eG1sTmV3RW50aXR5SW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdJbnB1dEZyb21GaWxlIj54bWxOZXdJbnB1dEZyb21GaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0iPnhtbE5ld1N0cmluZ0lucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUkkiPnhtbFBhcnNlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSZWZlcmVuY2UiPnhtbFBhcnNlVVJJUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdWYWxpZEN0eHQiPnhtbFJlbGF4TkdOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3VmFsaWRDdHh0Ij54bWxTY2hlbWFOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1ZyI+eG1sU2NoZW1hU0FYUGx1ZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhVbnBsdWciPnhtbFNjaGVtYVNBWFVucGx1ZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSI+eG1sU2NoZW1hVmFsaWRhdGVTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRDb21wcmVzc01vZGUiPnhtbFNldENvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXREb2NDb21wcmVzc01vZGUiPnhtbFNldERvY0NvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhdCI+eG1sU3RyY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyZHVwIj54bWxTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJzdWIiPnhtbFN0cnN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+YmFzaWNhbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0U3lzdGVtSWQiPmdldFN5c3RlbUlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc01peGVkRWxlbWVudCI+eG1sSXNNaXhlZEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFN5c3RlbUlkIj54bWxTQVgyR2V0U3lzdGVtSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPC9kZD48ZHQ+YmFzaXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+YmVhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+YmVjb21lczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkQXR0cmlidXRlRGVjbCI+eG1sQWRkQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmJlZm9yZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxJbml0QXV0b0Nsb3NlIj5odG1sSW5pdEF1dG9DbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRMaW5lTm8iPnhtbEdldExpbmVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEluaXRQYXJzZXIiPnhtbEluaXRQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1TZXR1cCI+eG1sTWVtU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSI+eG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIj54bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlIj54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0Ij54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AiPnhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFNjaGVtYSI+eG1sVGV4dFJlYWRlclNldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YmVnaW5uaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFkZEhlYWQiPnhtbEJ1ZmZlckFkZEhlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyU2hyaW5rIj54bWxCdWZmZXJTaHJpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxCeXRlQ29uc3VtZWQiPnhtbEJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0SW5zZXJ0Ij54bWxMaXN0SW5zZXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdXNoRnJvbnQiPnhtbExpc3RQdXNoRnJvbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdDdXJyZW50Q2hhciI+eG1sU3RyaW5nQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIj54bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PmJlZ2luczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJOb2RlSW5mbyI+X3htbFBhcnNlck5vZGVJbmZvPC9hPjxiciAvPgorPC9kZD48ZHQ+YmVoYXZlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0xFVFRFUl9DSCI+SVNfTEVUVEVSX0NIPC9hPjxiciAvPgorPC9kZD48ZHQ+YmVoYXZpb3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRG9jIj5odG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+YmVoYXZpb3VyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXAiPmh0bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZSI+aHRtbE5vZGVEdW1wRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCI+aHRtbE5vZGVEdW1wRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0Ij5odG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcE91dHB1dCI+aHRtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtRHVtcCI+eG1sRWxlbUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5vZGUiPnhtbEZyZWVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOb2RlTGlzdCI+eG1sRnJlZU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcE91dHB1dCI+eG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVHZXRTcGFjZVByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3Ryc2l6ZSI+eG1sVVRGOFN0cnNpemU8L2E+PGJyIC8+Cis8L2RkPjxkdD5iZWxvdzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPC9kZD48ZHQ+YmV0dGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9ybWFsaXplV2luZG93c1BhdGgiPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhVc2VyUGFyc2VNZW1vcnkiPnhtbFNBWFVzZXJQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzwvZGQ+PGR0PmJldHdlZW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbURpc3BsYXlMYXN0Ij54bWxNZW1EaXNwbGF5TGFzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUXVvdGVkU3RyaW5nIj54bWxQYXJzZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaWZmZXJlbmNlIj54bWxYUGF0aERpZmZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5iZXlvbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5iaW5hcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hhckluUmFuZ2UiPnhtbENoYXJJblJhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllcyI+eG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVF1b3RlZFN0cmluZyI+eG1sUGFyc2VRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQiPnhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJpbkhleCI+eG1sVGV4dFdyaXRlcldyaXRlQmluSGV4PC9hPjxiciAvPgorPC9kZD48ZHQ+YmluZGluZ3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYSI+X3htbFNjaGVtYTwvYT48YnIgLz4KKzwvZGQ+PGR0PmJpdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmJsYW5rczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNraXBCbGFua0NoYXJzIj54bWxTa2lwQmxhbmtDaGFyczwvYT48YnIgLz4KKzwvZGQ+PGR0PmJsb2M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+YmxvY2tEZWZhdWx0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OIj5YTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTjwvYT48YnIgLz4KKzwvZGQ+PGR0PmJsb2NrZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+YmxvY2tpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFJlYWQiPnhtbE5hbm9GVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFJlYWQiPnhtbE5hbm9IVFRQUmVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmJsb2NrczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0FYMl9NQUdJQyI+WE1MX1NBWDJfTUFHSUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyIj5pbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlciI+aW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXR4bWxEZWZhdWx0U0FYSGFuZGxlciI+aW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtQmxvY2tzIj54bWxNZW1CbG9ja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5RHVtcCI+eG1sTWVtb3J5RHVtcDwvYT48YnIgLz4KKzwvZGQ+PGR0PmJvZHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5ib29rMTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5ib29sPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxCb29sVG9UZXh0Ij54bWxCb29sVG9UZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Ym90aDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJGcmVlIj54bWxCdWZmZXJGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbG9zZSI+eG1sTmFub0ZUUENsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIj54bWxOb2RlR2V0QmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJFcXVhbCI+eG1sU3RyRXF1YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEludGVyc2VjdGlvbiI+eG1sWFBhdGhJbnRlcnNlY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5ib3VuZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIj54bWxFeHBOZXdSYW5nZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmJvdW5kYXJpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPC9kZD48ZHQ+Ym91bmRhcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX1RFWFRfTEVOR1RIIj5YTUxfTUFYX1RFWFRfTEVOR1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5icmFja2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzwvZGQ+PGR0PmJyYW5jaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmJyZWFrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNfeG1sRXJyb3IiPl94bWxFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTGluZU51bWJlcnNEZWZhdWx0Ij54bWxMaW5lTnVtYmVyc0RlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5icmVha2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+YnJlYWtzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPC9kZD48ZHQ+YnJva2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjWE1MX0NBU1RfRlBUUiI+WE1MX0NBU1RfRlBUUjwvYT48YnIgLz4KKzwvZGQ+PGR0PmJyb2tlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iPnhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+YnVmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlVG8iPnhtbFNhdmVGaWxlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT48YnIgLz4KKzwvZGQ+PGR0PmJ1ZmZlcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxBbGxvY091dHB1dEJ1ZmZlciI+eG1sQWxsb2NPdXRwdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIiPnhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sRnJlZVBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDbG9zZSI+eG1sT3V0cHV0QnVmZmVyQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8iPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJGbHVzaCI+eG1sT3V0cHV0QnVmZmVyRmx1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlIj54bWxPdXRwdXRCdWZmZXJXcml0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyI+eG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHVzaCI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQiPnhtbFBhcnNlcklucHV0QnVmZmVyUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5idWlsZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEPC9hPjxiciAvPgorPC9kZD48ZHQ+YnVpbGRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX1RFWFRfTEVOR1RIIj5YTUxfTUFYX1RFWFRfTEVOR1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZURvYyI+ZG9jYlNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZUZpbGUiPmRvY2JTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRmlsZSI+aHRtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2UiPmlnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyI+aWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFVSSSI+eG1sQnVpbGRVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UiPnhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VFbnRpdHkiPnhtbFNBWFBhcnNlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5idWlsZHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBDb21waWxlIj54bWxSZWdleHBDb21waWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+YnVpbHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIj54bWxQYXJzZUVudW1lcmF0ZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGlvblR5cGUiPnhtbFBhcnNlRW51bWVyYXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUkkiPnhtbFBhcnNlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSYXciPnhtbFBhcnNlVVJJUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZSI+eG1sUmVsYXhOR1BhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlIj54bWxTY2hlbWFQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2UiPnhtbFNjaGVtYXRyb25QYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+YnVpbHQtaW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0Ij54bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzwvZGQ+PGR0PmJ1aWx0aW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRSI+WE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jIj5pbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5idW5jaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmJ5cGFzczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxQYXJzZUNhdGFsb2dGaWxlIj54bWxQYXJzZUNhdGFsb2dGaWxlPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazEyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNjMTcwMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTIuaHRtbApAQCAtMCwwICsxLDkxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBjLWMgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IGMtYyBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBjOjwvaDI+PGRsPjxkdD5jMTRuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYWNoZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2FjaGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYWNoaW5nOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2FsY3VsYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXROZXciPnhtbFN0cm5jYXROZXc8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYWxjdWxhdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFNpemUiPnhtbFVURjhTaXplPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2FsbGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0ZpbGVuYW1lIj54bWxDaGVja0ZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TGluZU5vIj54bWxHZXRMaW5lTm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQWRkVmFsdWVzIj54bWxYUGF0aEFkZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXZWYWx1ZXMiPnhtbFhQYXRoRGl2VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE1vZFZhbHVlcyI+eG1sWFBhdGhNb2RWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTXVsdFZhbHVlcyI+eG1sWFBhdGhNdWx0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YlZhbHVlcyI+eG1sWFBhdGhTdWJWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFsdWVGbGlwU2lnbiI+eG1sWFBhdGhWYWx1ZUZsaXBTaWduPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2FsbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rTm9kZURldGVjdEZ1bmMiPnhsaW5rTm9kZURldGVjdEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1ZyI+eG1sU2NoZW1hU0FYUGx1ZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhbWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQb3BJbnB1dCI+eG1sUG9wSW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYW5ub3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJOcyI+eG1sWFBhdGhSZWdpc3Rlck5zPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2Fub25pYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhbm9uaWNhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdOYW1lIj54bWxHZXRDaGFyRW5jb2RpbmdOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhbm9uaWNhbGl6YXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhbm9uaWNhbGl6ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE5vcm1hbGl6ZVdpbmRvd3NQYXRoIj54bWxOb3JtYWxpemVXaW5kb3dzUGF0aDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhbm9uaXphdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2Fub25pemVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXBhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXJhY3RlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlIj54bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhcmRpbmFsaXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2FycmllZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NQcm9wIj54bWxOZXdEb2NQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcCI+eG1sTmV3TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcEVhdE5hbWUiPnhtbE5ld05zUHJvcEVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3UHJvcCI+eG1sTmV3UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQnVmR2V0Q29udGVudCI+eG1sTm9kZUJ1ZkdldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldENvbnRlbnQiPnhtbE5vZGVHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZUdldFNwYWNlUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnNQcm9wIj54bWxTZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0UHJvcCI+eG1sU2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbnNldE5zUHJvcCI+eG1sVW5zZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5zZXRQcm9wIj54bWxVbnNldFByb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXJyaWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXJyeWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayI+eGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua1NpbXBsZUxpbmtGdW5rIj54bGlua1NpbXBsZUxpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc0lEIj54bWxJc0lEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc1JlZiI+eG1sSXNSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zIj54bWxOZXdOczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhc2UtaWdub3Jpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXNlc3RyIj54bWxTdHJjYXNlc3RyPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2FzZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjQkFEX0NBU1QiPkJBRF9DQVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX0JPT0xFQU4iPkNBU1RfVE9fQk9PTEVBTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0FTVF9UT19OVU1CRVIiPkNBU1RfVE9fTlVNQkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX1NUUklORyI+Q0FTVF9UT19TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEZ1bmMiPnhtbFhQYXRoQ29udmVydEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXN0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ2F0Ij54bWxTaGVsbENhdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhdGFsb2dzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGRMb2NhbCI+eG1sQ2F0YWxvZ0FkZExvY2FsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dDbGVhbnVwIj54bWxDYXRhbG9nQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRnJlZUxvY2FsIj54bWxDYXRhbG9nRnJlZUxvY2FsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ0dldERlZmF1bHRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dMb2NhbFJlc29sdmUiPnhtbENhdGFsb2dMb2NhbFJlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVidWciPnhtbENhdGFsb2dTZXREZWJ1ZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVmYXVsdHMiPnhtbENhdGFsb2dTZXREZWZhdWx0czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZ3MiPnhtbExvYWRDYXRhbG9nczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhdGVnb3J5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Ij54bWxVQ1NJc0NhdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNhdXNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50WFBhdGhFcnJvciI+eG1sU2hlbGxQcmludFhQYXRoRXJyb3I8L2E+PGJyIC8+Cis8L2RkPjxkdD5jYXV0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjX3htbFVSSSI+X3htbFVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNkYXRhLXNlY3Rpb24tPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1XYW50c0FueU5vZGUiPnhtbFN0cmVhbVdhbnRzQW55Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNlaWxpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIj54bWxYUGF0aENlaWxpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNlcnRhaW5seTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaGFpbmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOc0xpc3QiPnhtbEZyZWVOc0xpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaGFuZ2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTZXRNZXRhRW5jb2RpbmciPmh0bWxTZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEN0eHRSZXNldExhc3RFcnJvciI+eG1sQ3R4dFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDd2QiPnhtbE5hbm9GVFBDd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFJlc2V0TGFzdEVycm9yIj54bWxSZXNldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIj54bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQiPnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hFbmNvZGluZyI+eG1sU3dpdGNoRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hJbnB1dEVuY29kaW5nIj54bWxTd2l0Y2hJbnB1dEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3dpdGNoVG9FbmNvZGluZyI+eG1sU3dpdGNoVG9FbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoYW5nZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldEJhc2UiPnhtbE5vZGVTZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRMYW5nIj54bWxOb2RlU2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0TmFtZSI+eG1sTm9kZVNldE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVTZXRTcGFjZVByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AiPnhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaGFuZ2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNsb3NlIj54bWxUZXh0UmVhZGVyQ2xvc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaGFuZ2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQiPnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaGFubmVsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGaWxlQ2xvc2UiPnhtbEZpbGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZVJlYWQiPnhtbEZpbGVSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0ZUUENsb3NlIj54bWxJT0ZUUENsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0ZUUE9wZW4iPnhtbElPRlRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBSZWFkIj54bWxJT0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUENsb3NlIj54bWxJT0hUVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlbiI+eG1sSU9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQUmVhZCI+eG1sSU9IVFRQUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ2xvc2UiPnhtbE91dHB1dEJ1ZmZlckNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJGbHVzaCI+eG1sT3V0cHV0QnVmZmVyRmx1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHJpbnRYUGF0aEVycm9yIj54bWxTaGVsbFByaW50WFBhdGhFcnJvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoYXJhY3RlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlIj5pZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmMiPmlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyVlByaW50ZiI+eG1sU3RyVlByaW50ZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZVN0ciI+eG1sVVJJRXNjYXBlU3RyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cmxlbiI+eG1sVVRGOFN0cmxlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbiI+eG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbiI+eG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoYXJlbmNvZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoYXJzPz88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4iPnhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoYXJzZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIiPnhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVJT1BhcnNlckN0eHQiPnhtbENyZWF0ZUlPUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbElPUGFyc2VEVEQiPnhtbElPUGFyc2VEVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxOZXdJT0lucHV0U3RyZWFtIj54bWxOZXdJT0lucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoZWNrZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZUdldFNwYWNlUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnNQcm9wIj54bWxTZXROc1Byb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaGVja2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkVVJJIj54bWxCdWlsZFVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUZyZWUiPnhtbE1lbUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RybGVuIj54bWxVVEY4U3RybGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2hlY2tpbmdzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoZWNrczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEIj5YTUxfU0NIRU1BU19UWVBFX01BUktFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXV0b0Nsb3NlVGFnIj5odG1sQXV0b0Nsb3NlVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxJc0F1dG9DbG9zZWQiPmh0bWxJc0F1dG9DbG9zZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0ZpbGVuYW1lIj54bWxDaGVja0ZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0hUVFBJbnB1dCI+eG1sQ2hlY2tIVFRQSW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQSW5pdCI+eG1sTmFub0ZUUEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQSW5pdCI+eG1sTmFub0hUVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldENvbnRhaW5zIj54bWxYUGF0aE5vZGVTZXRDb250YWluczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoaWxkLTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0ciI+X3htbEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRHRkIj5feG1sRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb2RlIj5feG1sTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoaWxkcmVuczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNoaWxkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sTm9kZSI+X3htbE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzTWl4ZWRFbGVtZW50Ij54bWxJc01peGVkRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaG9pY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2hvaWNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5jaG9pY2VzOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNodW5rPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUNodW5rIj5kb2NiUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VDaHVuayI+aHRtbFBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDaHVuayI+eG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRW50aXR5Ij54bWxQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRW50aXR5Ij54bWxTQVhQYXJzZUVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNpcmN1bGFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUiI+WE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX01BUktFRCI+WE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jbGVhbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jbGVhbmx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0hUVFBJbnB1dCI+eG1sQ2hlY2tIVFRQSW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jbGVhbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNsZWFudXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sQ2xlYW51cEdsb2JhbHMiPnhtbENsZWFudXBHbG9iYWxzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENsZWFudXAiPnhtbE5hbm9GVFBDbGVhbnVwPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2xlYXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdE1lcmdlIj54bWxMaXN0TWVyZ2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5jbGVhcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENsZWFudXBJbnB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzIj54bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2xpZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+Y2xvbmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNsb25lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2xvc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRJTyI+aHRtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZElPIj5odG1sUmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jQ2xvc2VGdW5jIj54bWxDaGFyRW5jQ2xvc2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlSU9QYXJzZXJDdHh0Ij54bWxDcmVhdGVJT1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZElPIj54bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUNsb3NlIj54bWxNb2R1bGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ2xvc2UiPnhtbE91dHB1dEJ1ZmZlckNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dENsb3NlQ2FsbGJhY2siPnhtbE91dHB1dENsb3NlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWFkSU8iPnhtbFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvcklPIj54bWxSZWFkZXJGb3JJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0lPIj54bWxSZWFkZXJOZXdJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ2xvc2UiPnhtbFRleHRSZWFkZXJDbG9zZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNsb3NlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmQiPnhtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVDbG9zZSI+eG1sTW9kdWxlQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZkIj54bWxSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiPnhtbFRleHRXcml0ZXJFbmREb2N1bWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNsb3NlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDbG9zZSI+eG1sTmFub0hUVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBTYXZlIj54bWxOYW5vSFRUUFNhdmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jbG9zZXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5leHRFbGVtZW50U2libGluZyI+eG1sTmV4dEVsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIj54bWxYUGF0aENlaWxpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGbG9vckZ1bmN0aW9uIj54bWxYUGF0aEZsb29yRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUm91bmRGdW5jdGlvbiI+eG1sWFBhdGhSb3VuZEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+Y2xvc2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxJbml0QXV0b0Nsb3NlIj5odG1sSW5pdEF1dG9DbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQRnJlZUN0eHQiPnhtbE5hbm9GVFBGcmVlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPC9kZD48ZHQ+Y25jZXJuaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQiPnhtbERlYnVnRHVtcERvY3VtZW50SGVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5jb2xsYXBzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFIj5YTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0U8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb2xsZWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE9wZW5XIj54bWxJT0hUVFBPcGVuVzwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbGxlY3RlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtU2V0dXAiPnhtbEdjTWVtU2V0dXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb2xvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZ3MiPnhtbExvYWRDYXRhbG9nczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbHVtbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRDb2x1bW5OdW1iZXIiPmdldENvbHVtbk51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0Q29sdW1uTnVtYmVyIj54bWxTQVgyR2V0Q29sdW1uTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlciI+eG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFN5c3RlbUlkIj54bWxTQVgyR2V0U3lzdGVtSWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21iaW5pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DT01CSU5JTkdfQ0giPklTX0NPTUJJTklOR19DSDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaCI+eG1sU3RyZWFtUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoQXR0ciI+eG1sU3RyZWFtUHVzaEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZENvbW1lbnQiPnhtbFRleHRXcml0ZXJFbmRDb21tZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzTm9kZSI+eG1sWEluY2x1ZGVQcm9jZXNzTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbW1hbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwRGF0YUNhbGxiYWNrIj5mdHBEYXRhQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UiPnhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRSZXNwb25zZSI+eG1sTmFub0ZUUEdldFJlc3BvbnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBRdWl0Ij54bWxOYW5vRlRQUXVpdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxEdSI+eG1sU2hlbGxEdTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbW1hbmRsaW5lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbCI+eG1sU2hlbGw8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21tYW5kczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9DT01NRU5UX05PREUiPkhUTUxfQ09NTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2NvbW1lbnRTQVhGdW5jIj5jb21tZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDb21tZW50Ij54bWxOZXdDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY0NvbW1lbnQiPnhtbE5ld0RvY0NvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydENvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJc05vZGVUeXBlIj54bWxYUGF0aElzTm9kZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21tZW50LTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21tZW50czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0dldFJvb3RFbGVtZW50Ij54bWxEb2NHZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbW1vZGl0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbW1vbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEdGQiPl94bWxEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vZGUiPl94bWxOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxGcmVlUGF0dGVybiI+eG1sRnJlZVBhdHRlcm48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sRnJlZVBhdHRlcm5MaXN0Ij54bWxGcmVlUGF0dGVybkxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZUNvbXBFeHByIj54bWxYUGF0aEZyZWVDb21wRXhwcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBhcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERhdGFDb21wYXJlIj54bWxMaXN0RGF0YUNvbXBhcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4Q2hhcmNtcCI+eG1sVVRGOENoYXJjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGFyZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGFyZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4Q2hhcmNtcCI+eG1sVVRGOENoYXJjbXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21wYXJpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGFyaXNvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbjMiPnhtbEhhc2hTY2FuMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RDcmVhdGUiPnhtbExpc3RDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhc2VjbXAiPnhtbFN0cmNhc2VjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjbXAiPnhtbFN0cmNtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXNlY21wIj54bWxTdHJuY2FzZWNtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jbXAiPnhtbFN0cm5jbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGFyaXNvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmciPnhtbFRleHRSZWFkZXJDb25zdFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBhdGliaWxpdHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0xFR0FDWV9FTkFCTEVEIj5MSUJYTUxfTEVHQUNZX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRWxlbWVudCI+aHRtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZHJlbk5vZGUiPnhtbENoaWxkcmVuTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENvcHlDaGFyIj54bWxDb3B5Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ29tbWVudCI+eG1sUGFyc2VDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VRdW90ZWRTdHJpbmciPnhtbFBhcnNlUXVvdGVkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJvb3ROb2RlIj54bWxSb290Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBhdGlibGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1RFU1RfVkVSU0lPTiI+TElCWE1MX1RFU1RfVkVSU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGlsYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1ZFUlNJT05fRVhUUkEiPkxJQlhNTF9WRVJTSU9OX0VYVFJBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYTUxfWFBBVEhfQ0hFQ0tOUyI+WE1MX1hQQVRIX0NIRUNLTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGUiPnhtbFhQYXRoQ29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDdHh0Q29tcGlsZSI+eG1sWFBhdGhDdHh0Q29tcGlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBpbGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGlsZS10aW1lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUZpbGUiPmRvY2JQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRmlsZSI+ZG9jYlNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUZpbGUiPmh0bWxQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRmlsZSI+aHRtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQiPnhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVVUkxQYXJzZXJDdHh0Ij54bWxDcmVhdGVVUkxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUZpbGUiPnhtbFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZSI+eG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPnhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGlsZWQtaW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENsZWFudXBJbnB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzIj54bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQb3BJbnB1dENhbGxiYWNrcyI+eG1sUG9wSW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21waWxpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGxlbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyIj54bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21wbGV0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9DT01QTEVURV9BVFRSUyI+WE1MX0NPTVBMRVRFX0FUVFJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFIj5YTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmUiPnhtbEFDYXRhbG9nUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkiPnhtbEFDYXRhbG9nUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dMb2NhbFJlc29sdmVVUkkiPnhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmUiPnhtbENhdGFsb2dSZXNvbHZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlVVJJIj54bWxDYXRhbG9nUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBsZXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21wbGV0ZWx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIj54bWxOb2RlR2V0QmFzZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBsZXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcGxleFR5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVCI+WE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX09XTkVEX0FUVFJfV0lMRENBUkQiPlhNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBsaWNhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXBvbmVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21wb25lbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWEiPl94bWxTY2hlbWE8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb21wb3VuZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlTm9kZVNldCI+eG1sWFBhdGhGcmVlTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckZyZWVMb2NhdGlvblNldCI+eG1sWFB0ckZyZWVMb2NhdGlvblNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXByZXNzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckRvYyI+eG1sTmV3VGV4dFdyaXRlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlck1lbW9yeSI+eG1sTmV3VGV4dFdyaXRlck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIj54bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJUcmVlIj54bWxOZXdUZXh0V3JpdGVyVHJlZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXByZXNzZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxQYXJzZXJJbnB1dEJ1ZmZlciI+X3htbFBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUZpbGUiPmRvY2JQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRmlsZSI+ZG9jYlNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUZpbGUiPmh0bWxQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRmlsZSI+aHRtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQiPnhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVVUkxQYXJzZXJDdHh0Ij54bWxDcmVhdGVVUkxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUZpbGUiPnhtbFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZSI+eG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPnhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYVXNlclBhcnNlRmlsZSI+eG1sU0FYVXNlclBhcnNlRmlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXByZXNzaW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldENvbXByZXNzTW9kZSI+eG1sR2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldERvY0NvbXByZXNzTW9kZSI+eG1sR2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBPcGVuVyI+eG1sSU9IVFRQT3Blblc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyTWVtb3J5Ij54bWxOZXdUZXh0V3JpdGVyTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIiPnhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZpbGUiPnhtbFNhdmVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRDb21wcmVzc01vZGUiPnhtbFNldENvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXREb2NDb21wcmVzc01vZGUiPnhtbFNldERvY0NvbXByZXNzTW9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXByaXNpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSW50ZXJzZWN0aW9uIj54bWxYUGF0aEludGVyc2VjdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXB1dGF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXB1dGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RybGVuIj54bWxVVEY4U3RybGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29tcHV0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUiPlhNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQnl0ZUNvbnN1bWVkIj54bWxCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVBcHBlbmQiPnhtbFNjaGVtYVZhbHVlQXBwZW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4iPnhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyI+eG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0TmV4dCI+eG1sU2NoZW1hVmFsdWVHZXROZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbXB1dGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbmNhdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb25jYXRGdW5jdGlvbiI+eG1sWFBhdGhDb25jYXRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbmNhdGVuYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhdCI+eG1sU3RyY2F0PC9hPjxiciAvPgorPC9kZD48ZHQ+Y29uY2F0ZW5hdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb25jYXRGdW5jdGlvbiI+eG1sWFBhdGhDb25jYXRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbmRpdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbmRpdGlvbmFsU2VjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxTdWJzZXQiPnhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25maWd1cmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjREVCVUdfTUVNT1JZX0xPQ0FUSU9OIj5ERUJVR19NRU1PUllfTE9DQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0MxNE5fRU5BQkxFRCI+TElCWE1MX0MxNE5fRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfQ0FUQUxPR19FTkFCTEVEIj5MSUJYTUxfQ0FUQUxPR19FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9ERUJVR19FTkFCTEVEIj5MSUJYTUxfREVCVUdfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfREVCVUdfUlVOVElNRSI+TElCWE1MX0RFQlVHX1JVTlRJTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RPQ0JfRU5BQkxFRCI+TElCWE1MX0RPQ0JfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfRlRQX0VOQUJMRUQiPkxJQlhNTF9GVFBfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfSFRNTF9FTkFCTEVEIj5MSUJYTUxfSFRNTF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9IVFRQX0VOQUJMRUQiPkxJQlhNTF9IVFRQX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX09VVFBVVF9FTkFCTEVEIj5MSUJYTUxfT1VUUFVUX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1BBVFRFUk5fRU5BQkxFRCI+TElCWE1MX1BBVFRFUk5fRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfUFVTSF9FTkFCTEVEIj5MSUJYTUxfUFVTSF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9SRUFERVJfRU5BQkxFRCI+TElCWE1MX1JFQURFUl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQVgxX0VOQUJMRUQiPkxJQlhNTF9TQVgxX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1RIUkVBRF9FTkFCTEVEIj5MSUJYTUxfVEhSRUFEX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1RSRUVfRU5BQkxFRCI+TElCWE1MX1RSRUVfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVkFMSURfRU5BQkxFRCI+TElCWE1MX1ZBTElEX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1dSSVRFUl9FTkFCTEVEIj5MSUJYTUxfV1JJVEVSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1hJTkNMVURFX0VOQUJMRUQiPkxJQlhNTF9YSU5DTFVERV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9YUEFUSF9FTkFCTEVEIj5MSUJYTUxfWFBBVEhfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfWFBUUl9FTkFCTEVEIj5MSUJYTUxfWFBUUl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI1dJVEhPVVRfVFJJTyI+V0lUSE9VVF9UUklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI1dJVEhfVFJJTyI+V0lUSF9UUklPPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29uZm9ybWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cENvbXBpbGUiPnhtbFJlZ2V4cENvbXBpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25mb3JtczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUiPnhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0iPnhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSI+eG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5DTmFtZSI+eG1sVmFsaWRhdGVOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOTVRva2VuIj54bWxWYWxpZGF0ZU5NVG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOYW1lIj54bWxWYWxpZGF0ZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVRTmFtZSI+eG1sVmFsaWRhdGVRTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbmp1bmN0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0Ij54bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25uZWN0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbG9zZSI+eG1sTmFub0ZUUENsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24iPnhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENvbm5lY3QiPnhtbE5hbm9GVFBDb25uZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0VG8iPnhtbE5hbm9GVFBDb25uZWN0VG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEZyZWVDdHh0Ij54bWxOYW5vRlRQRnJlZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldENvbm5lY3Rpb24iPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRTb2NrZXQiPnhtbE5hbm9GVFBHZXRTb2NrZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFJlYWQiPnhtbE5hbm9GVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBVcGRhdGVVUkwiPnhtbE5hbm9GVFBVcGRhdGVVUkw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQ2xvc2UiPnhtbE5hbm9IVFRQQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kIj54bWxOYW5vSFRUUE1ldGhvZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2RSZWRpciI+eG1sTmFub0hUVFBNZXRob2RSZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuIj54bWxOYW5vSFRUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlblJlZGlyIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZWFkIj54bWxOYW5vSFRUUFJlYWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25uZWN0b3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29ub25pY2FsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29uc2VxdWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25zaWRlcmF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnNpZGVyZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25zaXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3RvciI+eG1sWFBhdGhOZXh0QW5jZXN0b3I8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25zdGFudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9TQVgyX01BR0lDIj5YTUxfU0FYMl9NQUdJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29uc3RyYWludDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hQXR0cmlidXRlIj5feG1sU2NoZW1hQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFFbGVtZW50Ij5feG1sU2NoZW1hRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hV2lsZGNhcmQiPl94bWxTY2hlbWFXaWxkY2FyZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hV2lsZGNhcmROcyI+X3htbFNjaGVtYVdpbGRjYXJkTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25EZWNsIj54bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnN0cmFpbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRCI+WE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnN0cnVjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25zdHJ1Y3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxDYW5vbmljUGF0aCI+eG1sQ2Fub25pY1BhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXRoVG9VUkkiPnhtbFBhdGhUb1VSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnN0cnVjdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb25zdW1lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNVVEY4VG9IdG1sIj5VVEY4VG9IdG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNVVEY4VG9pc29sYXQxIj5VVEY4VG9pc29sYXQxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxQYXJzZXJJbnB1dEJ1ZmZlciI+X3htbFBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JFbmNvZGVFbnRpdGllcyI+ZG9jYkVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNpc29sYXQxVG9VVEY4Ij5pc29sYXQxVG9VVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld09yIj54bWxFeHBOZXdPcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIj54bWxFeHBOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1NlcSI+eG1sRXhwTmV3U2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQiPnhtbFBhcnNlcklucHV0QnVmZmVyUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUiPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdRTmFtZVZhbHVlIj54bWxTY2hlbWFOZXdRTmFtZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUiPnhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29uc3VtaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb250YWluPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0Ij54bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFOZXdQYXJzZXJDdHh0Ij54bWxTY2hlbWFOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZyI+eG1sWFBhdGhMZWFkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTGVhZGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlTGVhZGluZyI+eG1sWFBhdGhOb2RlTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmciPnhtbFhQYXRoTm9kZVRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nIj54bWxYUGF0aFRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj54bWxYUGF0aFRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29udGFpbmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJsZW4iPnhtbFN0cmxlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXN0aW5jdCI+eG1sWFBhdGhEaXN0aW5jdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXN0aW5jdFNvcnRlZCI+eG1sWFBhdGhEaXN0aW5jdFNvcnRlZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnRhaW5zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUyI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50Ij54bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24iPnhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3IiPnhtbFhQYXRoTmV4dEFuY2VzdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiI+eG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dENoaWxkIj54bWxYUGF0aE5leHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudCI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dE5hbWVzcGFjZSI+eG1sWFBhdGhOZXh0TmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQYXJlbnQiPnhtbFhQYXRoTmV4dFBhcmVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiPnhtbFhQYXRoTmV4dFNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldENvbnRhaW5zIj54bWxYUGF0aE5vZGVTZXRDb250YWluczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbnRleHQiPnhtbFhQdHJOZXdDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Y29udGVudDo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbnRlbnQiPnhtbFBhcnNlQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFcXVhbFZhbHVlcyI+eG1sWFBhdGhFcXVhbFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb3RFcXVhbFZhbHVlcyI+eG1sWFBhdGhOb3RFcXVhbFZhbHVlczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnRlbnRUeXBlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIj54bWxOYW5vSFRUUEZldGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiI+eG1sTmFub0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb250ZW50czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0RnJlZSI+eG1sRGljdEZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEZyZWUiPnhtbEhhc2hGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTGluZU51bWJlcnNEZWZhdWx0Ij54bWxMaW5lTnVtYmVyc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0U3RyaW5nIj54bWxOb2RlTGlzdEdldFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldHVwUGFyc2VyRm9yQnVmZmVyIj54bWxTZXR1cFBhcnNlckZvckJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFeHBhbmQiPnhtbFRleHRSZWFkZXJFeHBhbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIj54bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCI+eG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkU3RyaW5nIj54bWxUZXh0UmVhZGVyUmVhZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMiPnhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb250ZW50c3BlYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudERlY2wiPnhtbFBhcnNlRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb250ZXh0PzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnRleHRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Y29udGV4dHVhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzIj54bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFBhcnNlckVycm9ycyI+eG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFBhcnNlckVycm9ycyI+eG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29udGludWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnRyYWludDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRWxlbWVudCI+X3htbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb250cmFyeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXRMaXN0Ij54bWxYUGF0aEZyZWVOb2RlU2V0TGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnRyYXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50Ij54bWxOb2RlQWRkQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudExlbiI+eG1sTm9kZUFkZENvbnRlbnRMZW48L2E+PGJyIC8+Cis8L2RkPjxkdD5jb250cm9sPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2UiPnhtbE5hbm9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ29ubmVjdCI+eG1sTmFub0ZUUENvbm5lY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENvbm5lY3RUbyI+eG1sTmFub0ZUUENvbm5lY3RUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb252ZW5pZW50bHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb252ZXJzaW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhUeXBlIj5feG1sWFBhdGhUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVuY29kaW5nRGVjbCI+eG1sUGFyc2VFbmNvZGluZ0RlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEZ1bmMiPnhtbFhQYXRoQ29udmVydEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wQm9vbGVhbiI+eG1sWFBhdGhQb3BCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcEV4dGVybmFsIj54bWxYUGF0aFBvcEV4dGVybmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcE5vZGVTZXQiPnhtbFhQYXRoUG9wTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOdW1iZXIiPnhtbFhQYXRoUG9wTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcFN0cmluZyI+eG1sWFBhdGhQb3BTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb252ZXJzaW9uczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjX3htbE91dHB1dEJ1ZmZlciI+X3htbE91dHB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjX3htbFBhcnNlcklucHV0QnVmZmVyIj5feG1sUGFyc2VySW5wdXRCdWZmZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb252ZXJ0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZVNBWEZ1bmMiPmF0dHJpYnV0ZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZVNwZWNpYWxDaGFycyI+eG1sRW5jb2RlU3BlY2lhbENoYXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEFkZFZhbHVlcyI+eG1sWFBhdGhBZGRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGl2VmFsdWVzIj54bWxYUGF0aERpdlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNb2RWYWx1ZXMiPnhtbFhQYXRoTW9kVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE11bHRWYWx1ZXMiPnhtbFhQYXRoTXVsdFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJWYWx1ZXMiPnhtbFhQYXRoU3ViVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFZhbHVlRmxpcFNpZ24iPnhtbFhQYXRoVmFsdWVGbGlwU2lnbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvbnZlcnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQ29udmVydCI+eG1sQ2F0YWxvZ0NvbnZlcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ29udmVydFNHTUxDYXRhbG9nIj54bWxDb252ZXJ0U0dNTENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWxQcmVkaWNhdGUiPnhtbFhQYXRoRXZhbFByZWRpY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCI+eG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJZEZ1bmN0aW9uIj54bWxYUGF0aElkRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5jb252ZXJ0ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEFsbG9jT3V0cHV0QnVmZmVyIj54bWxBbGxvY091dHB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZkIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29udmVydGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZUVuYyI+eG1sU2F2ZUZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+Y29udmVydHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIj54bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvcGllZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb3B5VmFsdWUiPnhtbFNjaGVtYUNvcHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29waWVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3B5Ij54bWxIYXNoQ29weTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvcHlpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyR3JvdyI+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93PC9hPjxiciAvPgorPC9kZD48ZHQ+Y29ycmVjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPC9kZD48ZHQ+Y29ycmVjdGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb3JyZXBvbmRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvcnJlc3BvbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSXNYSFRNTCI+eG1sSXNYSFRNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRW50aXR5Ij54bWxQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRW50aXR5Ij54bWxTQVhQYXJzZUVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvcnJlc3BvbmRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldERvY0VudGl0eSI+eG1sR2V0RG9jRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXREdGRFbnRpdHkiPnhtbEdldER0ZEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0UGFyYW1ldGVyRW50aXR5Ij54bWxHZXRQYXJhbWV0ZXJFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFByb3AiPnhtbFNldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24iPnhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5jb3N0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQnl0ZUNvbnN1bWVkIj54bWxCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb3N0bHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX05BTUVMRU4iPlhNTF9NQVhfTkFNRUxFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPC9kZD48ZHQ+Y291bGQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxCeXRlQ29uc3VtZWQiPnhtbEJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlQ2xvc2UiPnhtbE1vZHVsZUNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZCI+eG1sVmFsaWRhdGVEdGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb3VudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBMaXN0Q2FsbGJhY2siPmZ0cExpc3RDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZEVsZW1lbnRDb3VudCI+eG1sQ2hpbGRFbGVtZW50Q291bnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBSZWYiPnhtbEV4cFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sTHNDb3VudE5vZGUiPnhtbExzQ291bnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVEb2MiPnhtbFNhdmVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGF0ZURvYyI+eG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50Ij54bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ291bnRGdW5jdGlvbiI+eG1sWFBhdGhDb3VudEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+Y291bnRlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXIiPnhtbEF1dG9tYXRhTmV3Q291bnRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RSZWZlcmVuY2UiPnhtbERpY3RSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5jb3VudGVycGFydHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvdXJzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIj54bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmNvdmVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNyYXNoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5jcmVhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlIj54bWxCdWZmZXJDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU2l6ZSI+eG1sQnVmZmVyQ3JlYXRlU2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nSXNFbXB0eSI+eG1sQ2F0YWxvZ0lzRW1wdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENyZWF0ZUVudGl0aWVzVGFibGUiPnhtbENyZWF0ZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENyZWF0ZUVudW1lcmF0aW9uIj54bWxDcmVhdGVFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxOZXdDYXRhbG9nIj54bWxOZXdDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0R0ZCI+eG1sTmV3RHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zIj54bWxOZXdOczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNyZWF0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3QWxsVHJhbnMiPnhtbEF1dG9tYXRhTmV3QWxsVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdFcHNpbG9uIj54bWxBdXRvbWF0YU5ld0Vwc2lsb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ3JlYXRlVVJJIj54bWxDcmVhdGVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0TmV3Ij54bWxTdHJuY2F0TmV3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jcmVhdGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPC9kZD48ZHQ+Y3JlYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE9wZW5XIj54bWxJT0hUVFBPcGVuVzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOcyI+eG1sTmV3TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sUmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmNyb3NzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzwvZGQ+PGR0PmNyb3NzZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8L2RkPjxkdD5jc2hlbWE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5jdHJpbzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc0luZiI+eG1sWFBhdGhJc0luZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT48YnIgLz4KKzwvZGQ+PGR0PmN0eHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzwvZGQ+PGR0PmN0eHQtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JGcmVlUGFyc2VyQ3R4dCI+ZG9jYkZyZWVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxGcmVlUGFyc2VyQ3R4dCI+aHRtbEZyZWVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sRnJlZVBhcnNlckN0eHQiPnhtbEZyZWVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUG9wSW5wdXQiPnhtbFBvcElucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmN1cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmN1cmVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT48YnIgLz4KKzwvZGQ+PGR0PmN1cnJlbnRseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUyI+WE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1CbG9ja3MiPnhtbE1lbUJsb2NrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtVXNlZCI+eG1sTWVtVXNlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmlsZSI+eG1sU2NoZW1hVmFsaWRhdGVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5jdXN0b208L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVTZXRBdHRyRXNjYXBlIj54bWxTYXZlU2V0QXR0ckVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlU2V0RXNjYXBlIj54bWxTYXZlU2V0RXNjYXBlPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazEzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazEzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY5MzQ2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTMuaHRtbApAQCAtMCwwICsxLDY2MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBkLWQgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IGQtZCBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBkOjwvaDI+PGRsPjxkdD5kYW5nZXJvdXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRhdGEtdHlwZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvcHlWYWx1ZSI+eG1sU2NoZW1hQ29weVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGF0YXR5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kYXk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD5kYXk6bWludXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI2Z0cExpc3RDYWxsYmFjayI+ZnRwTGlzdENhbGxiYWNrPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGUtY291cGxlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVhY3RpdmF0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSI+eG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIj54bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlIj54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0Ij54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFNjaGVtYSI+eG1sVGV4dFJlYWRlclNldFNjaGVtYTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlYWxsb2NhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VySW5wdXQiPl94bWxQYXJzZXJJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERlYWxsb2NhdG9yIj54bWxMaXN0RGVhbGxvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlTm9kZVNldExpc3QiPnhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVhbGxvY2F0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdEZyZWUiPnhtbERpY3RGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZVNwZWNpYWxDaGFycyI+eG1sRW5jb2RlU3BlY2lhbENoYXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEZyZWUiPnhtbEhhc2hGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlciI+eG1sTmV3VGV4dFdyaXRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNOZXh0VmFsdWVzIj54bWxSZWdFeGVjTmV4dFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFNhdmVVcmkiPnhtbFNhdmVVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpIj54bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmciPnhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3ROYW1lIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgiPnhtbFRleHRSZWFkZXJDb25zdFByZWZpeDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFN0cmluZyI+eG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUiPnhtbFRleHRSZWFkZXJDb25zdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbiI+eG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcyI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZSI+eG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwiPnhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sIj54bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRTdHJpbmciPnhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFNjaGVtYSI+eG1sVGV4dFJlYWRlclNldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJWYWx1ZSI+eG1sVGV4dFJlYWRlclZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVhbGxvY2F0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZW1vdmVBbGwiPnhtbExpc3RSZW1vdmVBbGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUZpcnN0Ij54bWxMaXN0UmVtb3ZlRmlyc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUxhc3QiPnhtbExpc3RSZW1vdmVMYXN0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVhbGxvY2F0b3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEZyZWUiPnhtbEhhc2hGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIj54bWxIYXNoVXBkYXRlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENyZWF0ZSI+eG1sTGlzdENyZWF0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlYnVnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlYnVnIj54bWxDYXRhbG9nU2V0RGVidWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEF0dHIiPnhtbERlYnVnRHVtcEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEF0dHJMaXN0Ij54bWxEZWJ1Z0R1bXBBdHRyTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRFREIj54bWxEZWJ1Z0R1bXBEVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERvY3VtZW50Ij54bWxEZWJ1Z0R1bXBEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkIj54bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEVudGl0aWVzIj54bWxEZWJ1Z0R1bXBFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wTm9kZSI+eG1sRGVidWdEdW1wTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wTm9kZUxpc3QiPnhtbERlYnVnRHVtcE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBPbmVOb2RlIj54bWxEZWJ1Z0R1bXBPbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHJpbnQiPnhtbFJlZ2V4cFByaW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Ij54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVidWdnaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjREVCVUdfTUVNT1JZX0xPQ0FUSU9OIj5ERUJVR19NRU1PUllfTE9DQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RFQlVHX1JVTlRJTUUiPkxJQlhNTF9ERUJVR19SVU5USU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWJ1ZyI+eG1sQ2F0YWxvZ1NldERlYnVnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERlYnVnRHVtcE9iamVjdCI+eG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWNpbWFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQiPlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkQXR0cmlidXRlRGVjbCI+eG1sQWRkQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RG9jRWxlbWVudENvbnRlbnQiPnhtbE5ld0RvY0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdFbGVtZW50Q29udGVudCI+eG1sTmV3RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWNsYXJhdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlQ2hhclJlZiI+aHRtbFBhcnNlQ2hhclJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMiPnN0YXJ0RWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJSZWYiPnhtbFBhcnNlQ2hhclJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5RGVjbCI+eG1sUGFyc2VFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlWYWx1ZSI+eG1sUGFyc2VFbnRpdHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxTdWJzZXQiPnhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnROcyI+eG1sU0FYMlN0YXJ0RWxlbWVudE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCI+eG1sVmFsaWRhdGVOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlY2xhcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyI+eG1sU2VhcmNoTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWNsYXJlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudCI+X3htbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5RGVjbCI+eG1sUGFyc2VFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTdGFuZGFsb25lIj54bWxUZXh0UmVhZGVyU3RhbmRhbG9uZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVjbGFyaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXRJRCI+eG1sR2V0SUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWNvZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsIj54bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWZhdWx0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfQ09NUExFVEVfQVRUUlMiPlhNTF9DT01QTEVURV9BVFRSUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMiPnN0YXJ0RWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudE5zIj54bWxTQVgyU3RhcnRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySXNEZWZhdWx0Ij54bWxUZXh0UmVhZGVySXNEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVmYXVsdGV4dGVybmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVmYXVsdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIj54bWxTaGVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbiI+eG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbiI+eG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbiI+eG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlZmluZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI0RFQlVHX01FTU9SWSI+REVCVUdfTUVNT1JZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxIYW5kbGVFbnRpdHkiPnhtbEhhbmRsZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWZpbmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI1dJVEhPVVRfVFJJTyI+V0lUSE9VVF9UUklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI1dJVEhfVFJJTyI+V0lUSF9UUklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zTGlzdCI+eG1sR2V0TnNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sSGFuZGxlRW50aXR5Ij54bWxIYW5kbGVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbE5ld0VudGl0eSI+eG1sTmV3RW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zIj54bWxOZXdOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlIj54bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyI+eG1sU2VhcmNoTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnNCeUhyZWYiPnhtbFNlYXJjaE5zQnlIcmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlcklzRGVmYXVsdCI+eG1sVGV4dFJlYWRlcklzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlZmluaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9GQUxMQkFDSyI+WElOQ0xVREVfRkFMTEJBQ0s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX0hSRUYiPlhJTkNMVURFX0hSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX05PREUiPlhJTkNMVURFX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX05TIj5YSU5DTFVERV9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfT0xEX05TIj5YSU5DTFVERV9PTERfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX1BBUlNFIj5YSU5DTFVERV9QQVJTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfUEFSU0VfRU5DT0RJTkciPlhJTkNMVURFX1BBUlNFX0VOQ09ESU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9URVhUIj5YSU5DTFVERV9QQVJTRV9URVhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9YTUwiPlhJTkNMVURFX1BBUlNFX1hNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfUEFSU0VfWFBPSU5URVIiPlhJTkNMVURFX1BBUlNFX1hQT0lOVEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXRJRCI+eG1sR2V0SUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbER1Ij54bWxTaGVsbER1PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpIj54bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVmaW5pdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vZGUiPl94bWxOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50TnNTQVgyRnVuYyI+c3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyI+eG1sTG9hZENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2dzIj54bWxMb2FkQ2F0YWxvZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnROcyI+eG1sU0FYMlN0YXJ0RWxlbWVudE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVmczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFFbGVtZW50Ij5feG1sU2NoZW1hRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlbGF5ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlIj54bWxPdXRwdXRCdWZmZXJXcml0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyI+eG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWxlZ2F0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlbGV0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQRGVsZSI+eG1sTmFub0ZUUERlbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZWxldGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciI+eG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXBlbmRhbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlcGVuZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNSZWYiPnhtbElzUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3REYXRhQ29tcGFyZSI+eG1sTGlzdERhdGFDb21wYXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VSZWZlcmVuY2UiPnhtbFBhcnNlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVxdWFsVmFsdWVzIj54bWxYUGF0aEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExhbmdGdW5jdGlvbiI+eG1sWFBhdGhMYW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm90RXF1YWxWYWx1ZXMiPnhtbFhQYXRoTm90RXF1YWxWYWx1ZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXByZWNhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9MRUdBQ1lfRU5BQkxFRCI+TElCWE1MX0xFR0FDWV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCNfeG1sVVJJIj5feG1sVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50QWxsb3dlZEhlcmUiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRTdGF0dXNIZXJlIj5odG1sRWxlbWVudFN0YXR1c0hlcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENyZWF0ZUVudGl0aWVzVGFibGUiPnhtbENyZWF0ZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlcHRoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NYXhEZXB0aCI+eG1sUGF0dGVybk1heERlcHRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NaW5EZXB0aCI+eG1sUGF0dGVybk1pbkRlcHRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckRlcHRoIj54bWxUZXh0UmVhZGVyRGVwdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXJlZ2lzdHJhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlcml2YXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFN0cmluZ0Rlcml2ZSI+eG1sRXhwU3RyaW5nRGVyaXZlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFNjaGVtYSI+eG1sVGV4dFJlYWRlclNldFNjaGVtYTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlc2FjdGl2YXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJTZXRTY2hlbWE8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXNjZW5kPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXNjZW5kYW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50Ij54bWxYUGF0aE5leHREZXNjZW5kYW50PC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVzY2VuZGFudC1vci1zZWxmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmIj54bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVzY2VuZGFudHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dERlc2NlbmRhbnQiPnhtbFhQYXRoTmV4dERlc2NlbmRhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGYiPnhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVzY3JpYmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVdhbnRzQW55Tm9kZSI+eG1sU3RyZWFtV2FudHNBbnlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudCI+eG1sVmFsaWRhdGVEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRWxlbWVudERlY2wiPnhtbFZhbGlkYXRlRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25EZWNsIj54bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVJvb3QiPnhtbFZhbGlkYXRlUm9vdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlc2NyaWJpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jIj5kb2NiUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRmlsZSI+ZG9jYlBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VEb2MiPmRvY2JTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VGaWxlIj5kb2NiU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRG9jIj5odG1sUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRmlsZSI+aHRtbFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlc2NyaXB0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbnRpdHlEZXNjIj5faHRtbEVudGl0eURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQiPnhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRDb250ZW50Ij54bWxDb3B5RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZEF0dHJEZXNjIj54bWxHZXREdGRBdHRyRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkRWxlbWVudERlc2MiPnhtbEdldER0ZEVsZW1lbnREZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGROb3RhdGlvbkRlc2MiPnhtbEdldER0ZE5vdGF0aW9uRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUF0dHJEZXNjIj54bWxHZXREdGRRQXR0ckRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZFFFbGVtZW50RGVzYyI+eG1sR2V0RHRkUUVsZW1lbnREZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc01peGVkRWxlbWVudCI+eG1sSXNNaXhlZEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldExhbmciPnhtbE5vZGVTZXRMYW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVzY3JpcHRvcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRGZCI+aHRtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRGZCI+aHRtbFJlYWRGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmQiPnhtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyI+eG1sTWVtU2hvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZkIj54bWxSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvRmQiPnhtbFNhdmVUb0ZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0lPIj54bWxTYXZlVG9JTzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlc2lnbmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVzaXJlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJSZXNpemUiPnhtbEJ1ZmZlclJlc2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlblciPnhtbElPSFRUUE9wZW5XPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cmxvYyI+eG1sVVRGOFN0cmxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJwb3MiPnhtbFVURjhTdHJwb3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXN0aW5hdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE9wZW5XIj54bWxJT0hUVFBPcGVuVzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSVVuZXNjYXBlU3RyaW5nIj54bWxVUklVbmVzY2FwZVN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRlc3Ryb3k8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXN0cm95ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGQiPnhtbEFkZENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXR1cCI+eG1sVGV4dFJlYWRlclNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGVzdHJ1Y3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXRhaWxzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXRlY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rSXNMaW5rIj54bGlua0lzTGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE1hdGNoQ2FsbGJhY2siPnhtbE91dHB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNJbmYiPnhtbFhQYXRoSXNJbmY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNOYU4iPnhtbFhQYXRoSXNOYU48L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXRlY3RlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfRVJST1IiPkNIRUNLX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDSEVDS19FUlJPUjAiPkNIRUNLX0VSUk9SMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2VuZERvY3VtZW50Ij5lbmREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2VuZERvY3VtZW50U0FYRnVuYyI+ZW5kRG9jdW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZW5kRWxlbWVudCI+ZW5kRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2VuZEVsZW1lbnROc1NBWDJGdW5jIj5lbmRFbGVtZW50TnNTQVgyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2VuZEVsZW1lbnRTQVhGdW5jIj5lbmRFbGVtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMiPnN0YXJ0RWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZERvY3VtZW50Ij54bWxTQVgyRW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnQiPnhtbFNBWDJFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFbmRFbGVtZW50TnMiPnhtbFNBWDJFbmRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlJlZmVyZW5jZSI+eG1sU0FYMlJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50TnMiPnhtbFNBWDJTdGFydEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFJc1ZhbGlkIj54bWxTY2hlbWFJc1ZhbGlkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGV0ZWN0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rR2V0RGVmYXVsdERldGVjdCI+eGxpbmtHZXREZWZhdWx0RGV0ZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua05vZGVEZXRlY3RGdW5jIj54bGlua05vZGVEZXRlY3RGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua1NldERlZmF1bHREZXRlY3QiPnhsaW5rU2V0RGVmYXVsdERldGVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5kZXRlcm1pbmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoYXJJblJhbmdlIj54bWxDaGFySW5SYW5nZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRldGVybWluZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRldGVybWluaXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QiPnhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cElzRGV0ZXJtaW5pc3QiPnhtbFJlZ2V4cElzRGV0ZXJtaW5pc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaWN0aW9uYXJ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RDbGVhbnVwIj54bWxEaWN0Q2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Q3JlYXRlIj54bWxEaWN0Q3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RDcmVhdGVTdWIiPnhtbERpY3RDcmVhdGVTdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFJlZmVyZW5jZSI+eG1sRGljdFJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ3JlYXRlRGljdCI+eG1sSGFzaENyZWF0ZURpY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2giPnhtbFN0cmVhbVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaEF0dHIiPnhtbFN0cmVhbVB1c2hBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpY3Rpb25uYXJ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RDcmVhdGUiPnhtbERpY3RDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZVN1YiI+eG1sRGljdENyZWF0ZVN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0RXhpc3RzIj54bWxEaWN0RXhpc3RzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RGcmVlIj54bWxEaWN0RnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0TG9va3VwIj54bWxEaWN0TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RPd25zIj54bWxEaWN0T3duczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UUxvb2t1cCI+eG1sRGljdFFMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFJlZmVyZW5jZSI+eG1sRGljdFJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0U2l6ZSI+eG1sRGljdFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdDdHh0Ij54bWxFeHBOZXdDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVCI+WE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTdGFuZGFsb25lIj54bWxUZXh0UmVhZGVyU3RhbmRhbG9uZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpZmZlcmVuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlmZmVyZW5jZSI+eG1sWFBhdGhEaWZmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlmZmVyZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxCdWZmZXIiPl94bWxCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dBZGQiPnhtbEFDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1aWxkUU5hbWUiPnhtbEJ1aWxkUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZEVsZW1lbnRDb3VudCI+eG1sQ2hpbGRFbGVtZW50Q291bnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRmlyc3RFbGVtZW50Q2hpbGQiPnhtbEZpcnN0RWxlbWVudENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV4dEVsZW1lbnRTaWJsaW5nIj54bWxOZXh0RWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJFcXVhbCI+eG1sU3RyRXF1YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJRRXF1YWwiPnhtbFN0clFFcXVhbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpZmZlcmVudGlhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlmZmVyZW50bHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlmZmVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sTmV3RW50aXR5Ij54bWxOZXdFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaWdpdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpZ2l0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxEaXIiPnhtbFNoZWxsRGlyPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlyZWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50QWxsb3dlZEhlcmUiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50U3RhdHVzSGVyZSI+aHRtbEVsZW1lbnRTdGF0dXNIZXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXJlY3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYiPnhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBdHRyaWJ1dGUiPnhtbFhQYXRoTmV4dEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Q2hpbGQiPnhtbFhQYXRoTmV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50Ij54bWxYUGF0aE5leHREZXNjZW5kYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmIj54bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRGb2xsb3dpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0TmFtZXNwYWNlIj54bWxYUGF0aE5leHROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFBhcmVudCI+eG1sWFBhdGhOZXh0UGFyZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0U2VsZiI+eG1sWFBhdGhOZXh0U2VsZjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpcmVjdGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVCdWZHZXRDb250ZW50Ij54bWxOb2RlQnVmR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0Q29udGVudCI+eG1sTm9kZUdldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxOb3JtYWxpemVVUklQYXRoIj54bWxOb3JtYWxpemVVUklQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciPnhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbiI+eG1sWFBhdGhDb252ZXJ0Qm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0TnVtYmVyIj54bWxYUGF0aENvbnZlcnROdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydFN0cmluZyI+eG1sWFBhdGhDb252ZXJ0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3Q29udGV4dCI+eG1sWFB0ck5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXJlY3RvcmllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZ3MiPnhtbExvYWRDYXRhbG9nczwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpcmVjdG9yeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0ZpbGVuYW1lIj54bWxDaGVja0ZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDd2QiPnhtbE5hbm9GVFBDd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUERlbGUiPnhtbE5hbm9GVFBEZWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJHZXREaXJlY3RvcnkiPnhtbFBhcnNlckdldERpcmVjdG9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMaXN0Ij54bWxTaGVsbExpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXNhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWJ1ZyI+eG1sQ2F0YWxvZ1NldERlYnVnPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlzYWJsZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjWE1MX0NBU1RfRlBUUiI+WE1MX0NBU1RfRlBUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpc2FibGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXNhYmxpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXNhbGxvd2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpc2NhcmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpc2NhcmRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpc2NhcmRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXNjb25uZWN0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3U3RhdGUiPnhtbEF1dG9tYXRhTmV3U3RhdGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXNjb3ZlcmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaEVuY29kaW5nIj54bWxTd2l0Y2hFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaElucHV0RW5jb2RpbmciPnhtbFN3aXRjaElucHV0RW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hUb0VuY29kaW5nIj54bWxTd2l0Y2hUb0VuY29kaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlzY3Rpb25hcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdE93bnMiPnhtbERpY3RPd25zPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlzcGxheTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2Vycm9yU0FYRnVuYyI+ZXJyb3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZmF0YWxFcnJvclNBWEZ1bmMiPmZhdGFsRXJyb3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjd2FybmluZ1NBWEZ1bmMiPndhcm5pbmdTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyI+eG1sTWVtU2hvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3IiPnhtbFBhcnNlckVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eUVycm9yIj54bWxQYXJzZXJWYWxpZGl0eUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmciPnhtbFBhcnNlclZhbGlkaXR5V2FybmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyV2FybmluZyI+eG1sUGFyc2VyV2FybmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRpc3RpbmN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0Ij54bWxYUGF0aERpc3RpbmN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0U29ydGVkIj54bWxYUGF0aERpc3RpbmN0U29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZGlzdGluZ3Vpc2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5kaXY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGl2VmFsdWVzIj54bWxYUGF0aERpdlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmRvYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCI+aHRtbE5vZGVEdW1wRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckRvYyI+eG1sTmV3VGV4dFdyaXRlckRvYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRvYy08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0dldFJvb3RFbGVtZW50Ij54bWxEb2NHZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyVHJlZSI+eG1sTmV3VGV4dFdyaXRlclRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZG9jczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5kb2N0eXBlZGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZURvY3VtZW50Ij54bWxQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+ZG9jdW1lbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzwvZGQ+PGR0PmRvZXNuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSI+aHRtbEVsZW1lbnRBbGxvd2VkSGVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENyZWF0ZUVudGl0aWVzVGFibGUiPnhtbENyZWF0ZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5vZGUiPnhtbEZyZWVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEdldFRocmVhZElkIj54bWxHZXRUaHJlYWRJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRSZWFkIj54bWxQYXJzZXJJbnB1dFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1hdGNoIj54bWxQYXR0ZXJuTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVtb3ZlUHJvcCI+eG1sUmVtb3ZlUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsZW4iPnhtbFVURjhTdHJsZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciPnhtbFhQYXRoTm9kZUxlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nIj54bWxYUGF0aE5vZGVUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nIj54bWxYUGF0aFRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj54bWxYUGF0aFRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZG9pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0NhbGxiYWNrcyI+eG1sUmVnRXhlY0NhbGxiYWNrczwvYT48YnIgLz4KKzwvZGQ+PGR0PmRvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllfTEFYIj5YTUxfU0NIRU1BU19BTllfTEFYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ2hpbGRFbGVtZW50Q291bnQiPnhtbENoaWxkRWxlbWVudENvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRmlyc3RFbGVtZW50Q2hpbGQiPnhtbEZpcnN0RWxlbWVudENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV4dEVsZW1lbnRTaWJsaW5nIj54bWxOZXh0RWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCI+eG1sWFBhdGhGcmVlTm9kZVNldExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEZyZWVOcyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9hPjxiciAvPgorPC9kZD48ZHQ+ZG90Z251PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kb3VibGU8L2R0PjxkZD48YSBocmVmPSIiPnZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyI+eG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzSW5mIj54bWxYUGF0aElzSW5mPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzTmFOIj54bWxYUGF0aElzTmFOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld0Zsb2F0Ij54bWxYUGF0aE5ld0Zsb2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRDcmVhdGUiPnhtbFhQYXRoTm9kZVNldENyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5OdW1iZXIiPnhtbFhQYXRoUmV0dXJuTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlIj54bWxYUHRyTG9jYXRpb25TZXRDcmVhdGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5kb3VibGUtaHlwaGVuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb21tZW50Ij54bWxQYXJzZUNvbW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5kb3VibGUtcXVvdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRvdWJsZXF1b3RlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUXVvdGVkU3RyaW5nIj54bWxQYXJzZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRvdWJ0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5kb3duPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmRyYWZ0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9PTERfTlMiPlhJTkNMVURFX09MRF9OUzwvYT48YnIgLz4KKzwvZGQ+PGR0PmRyb3A8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZpbGVSZWFkIj54bWxGaWxlUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBSZWFkIj54bWxJT0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUFJlYWQiPnhtbElPSFRUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVF1b3RlZFN0cmluZyI+eG1sUGFyc2VRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmR0ZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5ld0RvYyI+aHRtbE5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5ld0RvY05vRHREIj5odG1sTmV3RG9jTm9EdEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weUR0ZCI+eG1sQ29weUR0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZHRkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmR1bXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkIj54bWxCdWZmZXJBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ0NhdCI+eG1sQnVmZmVyQ0NhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJEdW1wIj54bWxCdWZmZXJEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclNocmluayI+eG1sQnVmZmVyU2hyaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wQXR0cmlidXRlRGVjbCI+eG1sRHVtcEF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBBdHRyaWJ1dGVUYWJsZSI+eG1sRHVtcEF0dHJpYnV0ZVRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wRWxlbWVudERlY2wiPnhtbER1bXBFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcEVsZW1lbnRUYWJsZSI+eG1sRHVtcEVsZW1lbnRUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRHVtcEVudGl0aWVzVGFibGUiPnhtbER1bXBFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxEdW1wRW50aXR5RGVjbCI+eG1sRHVtcEVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBOb3RhdGlvbkRlY2wiPnhtbER1bXBOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBOb3RhdGlvblRhYmxlIj54bWxEdW1wTm90YXRpb25UYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sTHNPbmVOb2RlIj54bWxMc09uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5TGFzdCI+eG1sTWVtRGlzcGxheUxhc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1TaG93Ij54bWxNZW1TaG93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Ij54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERlYnVnRHVtcE9iamVjdCI+eG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5kdW1waW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZHVtcHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQmFzZSI+eG1sU2hlbGxCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENhdCI+eG1sU2hlbGxDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRGlyIj54bWxTaGVsbERpcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmR1cGxpY2F0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+ZHVwbGljYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEZyZWVOcyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9hPjxiciAvPgorPC9kZD48ZHQ+ZHVwbGljYXRlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvcHlWYWx1ZSI+eG1sU2NoZW1hQ29weVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZHVyYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZHVyaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWERlZmF1bHRWZXJzaW9uIj54bWxTQVhEZWZhdWx0VmVyc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFJc1ZhbGlkIj54bWxTY2hlbWFJc1ZhbGlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIj54bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZHluYW1pYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfTU9EVUxFX0VYVEVOU0lPTiI+TElCWE1MX01PRFVMRV9FWFRFTlNJT048L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTQuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjE5NGEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxNC5odG1sCkBAIC0wLDAgKzEsNDYzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IGUtZSBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggZS1lIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIGU6PC9oMj48ZGw+PGR0PmVhY2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENvcHkiPnhtbEhhc2hDb3B5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuIj54bWxIYXNoU2NhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbjMiPnhtbEhhc2hTY2FuMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwiPnhtbEhhc2hTY2FuRnVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmVkaXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDaGVja0xhbmd1YWdlSUQiPnhtbENoZWNrTGFuZ3VhZ2VJRDwvYT48YnIgLz4KKzwvZGQ+PGR0PmVmZmVjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZWZmZWN0aXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9nIj54bWxMb2FkQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZ3MiPnhtbExvYWRDYXRhbG9nczwvYT48YnIgLz4KKzwvZGQ+PGR0PmVmZmljaWVuY3k8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+ZWl0aGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxCb29sVG9UZXh0Ij54bWxCb29sVG9UZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRBQ2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVCdWZHZXRDb250ZW50Ij54bWxOb2RlQnVmR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0Q29udGVudCI+eG1sTm9kZUdldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIj54bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmVpdGhlcjo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmVsZW08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbGVtLTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRE9NV3JhcEN0eHQiPl94bWxET01XcmFwQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmVsZW1lbnQtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPcmRlckRvY0VsZW1zIj54bWxYUGF0aE9yZGVyRG9jRWxlbXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbGVtZW50LW5vZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2giPnhtbFN0cmVhbVB1c2g8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbGVtZW50LW5vZGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbGVtZW50Rm9ybURlZmF1bHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0iPlhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNPC9hPjxiciAvPgorPC9kZD48ZHQ+ZWxlbWVudGRlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbGVtZW50czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFIj5YTUxfQ0FUQUxPR1NfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0NPTVBMRVRFX0FUVFJTIj5YTUxfQ09NUExFVEVfQVRUUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUIj5YTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbER0ZCI+X3htbER0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudEFsbG93ZWRIZXJlIj5odG1sRWxlbWVudEFsbG93ZWRIZXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RTaXplIj54bWxEaWN0U2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxGcmVlUGF0dGVybkxpc3QiPnhtbEZyZWVQYXR0ZXJuTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2l6ZSI+eG1sSGFzaFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0TWVyZ2UiPnhtbExpc3RNZXJnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZSI+eG1sTGlzdFJldmVyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNpemUiPnhtbExpc3RTaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RTb3J0Ij54bWxMaXN0U29ydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERvY3VtZW50Ij54bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSWRGdW5jdGlvbiI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzwvZGQ+PGR0PmVsc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjVVRGOFRvSHRtbCI+VVRGOFRvSHRtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW5jb2RlRW50aXRpZXMiPmh0bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjaXNvbGF0MVRvVVRGOCI+aXNvbGF0MVRvVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbWJlZGRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjWE1MX0NUWFRfRklOSVNIX0RURF8wIj5YTUxfQ1RYVF9GSU5JU0hfRFREXzA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI1hNTF9DVFhUX0ZJTklTSF9EVERfMSI+WE1MX0NUWFRfRklOSVNIX0RURF8xPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW1pdHRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmVtcHR5LWVsZW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5hYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWJ1ZyI+eG1sQ2F0YWxvZ1NldERlYnVnPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5hYmxlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZSI+eG1sU2F2ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGUiPnhtbFNhdmVGb3JtYXRGaWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5hYmxlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5hYmxpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCI+eG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5jPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5jYXBzdWxhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyRnJlZSI+eG1sQnVmZmVyRnJlZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmVuY2Fwc3VsYXRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iPnhtbE5ld0lPSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmNsb3NlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclF1b3RlQ2hhciI+eG1sVGV4dFJlYWRlclF1b3RlQ2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmVuY29kZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCI+eG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4Ij54bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXg8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmNvZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCNfeG1sT3V0cHV0QnVmZmVyIj5feG1sT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxQYXJzZXJJbnB1dEJ1ZmZlciI+X3htbFBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2F0Ij54bWxTdHJjYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJkdXAiPnhtbFN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCI+eG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4Ij54bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RybGVuIj54bWxVVEY4U3RybGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnNpemUiPnhtbFVURjhTdHJzaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnN1YiI+eG1sVVRGOFN0cnN1YjwvYT48YnIgLz4KKzwvZGQ+PGR0PmVuY29kZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxPdXRwdXRCdWZmZXIiPl94bWxPdXRwdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxQYXJzZXJJbnB1dEJ1ZmZlciI+X3htbFBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmNvZGVyPT1OVUxMPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5jb25kaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jQ2xvc2VGdW5jIj54bWxDaGFyRW5jQ2xvc2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jRmlyc3RMaW5lIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmNvdW50ZXJlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5jb3VudGVyaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmQtdGFnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmQtdXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVJlZmVyZW5jZSI+eG1sUGFyc2VSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzwvZGQ+PGR0PmVuZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIj54bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZSI+eG1sWFB0ck5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0Ij54bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiPnhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZXMiPnhtbFhQdHJOZXdSYW5nZU5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUiPnhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnRzIj54bWxYUHRyTmV3UmFuZ2VQb2ludHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlck5vZGVJbmZvIj5feG1sUGFyc2VyTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQ2xvc2UiPnhtbE5hbm9IVFRQQ2xvc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmdpbmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQXhpc0Z1bmMiPnhtbFhQYXRoQXhpc0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmVuZ2xvYmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3Vic3VtZSI+eG1sRXhwU3Vic3VtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sU25wcmludGZFbGVtZW50Q29udGVudCI+eG1sU25wcmludGZFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sU3ByaW50ZkVsZW1lbnRDb250ZW50Ij54bWxTcHJpbnRmRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbmhhbmNlbWVudHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW5vdWdoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1aWxkUU5hbWUiPnhtbEJ1aWxkUU5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbnN1cmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGVMaXN0Ij54bWxDb3B5Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbnN1cmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmVuc3VyaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmVudGlyZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzIj54bWxDbGVhbnVwSW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENsZWFudXBPdXRwdXRDYWxsYmFja3MiPnhtbENsZWFudXBPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbnRpdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+ZW50aXRpZXM6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbnRwcm9jPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbnRyaWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nQWRkIj54bWxBQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1JlbW92ZSI+eG1sQUNhdGFsb2dSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQ29udmVydCI+eG1sQ2F0YWxvZ0NvbnZlcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1JlbW92ZSI+eG1sQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDb252ZXJ0U0dNTENhdGFsb2ciPnhtbENvbnZlcnRTR01MQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MyI+eG1sSGFzaEFkZEVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQUNhdGFsb2ciPnhtbExvYWRBQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyI+eG1sTG9hZENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyI+eG1sTWVtU2hvdzwvYT48YnIgLz4KKzwvZGQ+PGR0PmVudHJ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nQWRkIj54bWxBQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1JlbW92ZSI+eG1sQUNhdGFsb2dSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkTG9jYWwiPnhtbENhdGFsb2dBZGRMb2NhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVtb3ZlIj54bWxDYXRhbG9nUmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeSI+eG1sSGFzaFVwZGF0ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MyI+eG1sSGFzaFVwZGF0ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0UmVtb3ZlIj54bWxYUGF0aE5vZGVTZXRSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldFJlbW92ZSI+eG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW51bWVyYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZURlY2wiPmF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNhdHRyaWJ1dGVEZWNsU0FYRnVuYyI+YXR0cmlidXRlRGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkF0dHJpYnV0ZURlY2wiPnhtbFNBWDJBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+ZW51bWVyYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEF0dHJpYnV0ZSI+X3htbEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkQXR0cmlidXRlRGVjbCI+eG1sQWRkQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVudW1lcmF0aW9uIj54bWxDb3B5RW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENyZWF0ZUVudW1lcmF0aW9uIj54bWxDcmVhdGVFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVudW1lcmF0aW9uIj54bWxGcmVlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRlZFR5cGUiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGlvblR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5lbnZpcm9ubWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUHJveHkiPnhtbE5hbm9GVFBQcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIj54bWxTaGVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJbml0Ij54bWxYUGF0aEluaXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5lcHNpbG9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdFcHNpbG9uIj54bWxBdXRvbWF0YU5ld0Vwc2lsb248L2E+PGJyIC8+Cis8L2RkPjxkdD5lcXVhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRDaGlsZCI+eG1sQWRkQ2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkTmV4dFNpYmxpbmciPnhtbEFkZE5leHRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFByZXZTaWJsaW5nIj54bWxBZGRQcmV2U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clFFcXVhbCI+eG1sU3RyUUVxdWFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOYW1lIj54bWxUZXh0UmVhZGVyTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXF1YWxWYWx1ZXMiPnhtbFhQYXRoRXF1YWxWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb3RFcXVhbFZhbHVlcyI+eG1sWFBhdGhOb3RFcXVhbFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uIj54bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5lcXVhbGl0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3REYXRhQ29tcGFyZSI+eG1sTGlzdERhdGFDb21wYXJlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXF1aXZhbGVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyI+eG1sTWFsbG9jQXRvbWljTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jTG9jIj54bWxNYWxsb2NMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1GcmVlIj54bWxNZW1GcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtTWFsbG9jIj54bWxNZW1NYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1SZWFsbG9jIj54bWxNZW1SZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU3RyZHVwTG9jIj54bWxNZW1TdHJkdXBMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1vcnlTdHJkdXAiPnhtbE1lbW9yeVN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRTdHJpbmciPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0xvYyI+eG1sUmVhbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJwb3MiPnhtbFVURjhTdHJwb3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFRvU3RyaW5nIj54bWxYUGF0aENhc3RUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbiI+eG1sWFBhdGhDb252ZXJ0Qm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0TnVtYmVyIj54bWxYUGF0aENvbnZlcnROdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydFN0cmluZyI+eG1sWFBhdGhDb252ZXJ0U3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXJycm9yPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBOZXdDdHh0Ij54bWxET01XcmFwTmV3Q3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmVzY2FwZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW5jb2RlRW50aXRpZXMiPmh0bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlU3RyIj54bWxVUklFc2NhcGVTdHI8L2E+PGJyIC8+Cis8L2RkPjxkdD5lc2NhcGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlIj54bWxOZXdEb2NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGVFYXROYW1lIj54bWxOZXdEb2NOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDRFNlY3QiPnhtbFBhcnNlQ0RTZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFNhdmVVcmkiPnhtbFNhdmVVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGUiPnhtbFVSSUVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZVN0ciI+eG1sVVJJRXNjYXBlU3RyPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXNjYXBlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlU3RyIj54bWxVUklFc2NhcGVTdHI8L2E+PGJyIC8+Cis8L2RkPjxkdD5lc2NhcGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVTZXRBdHRyRXNjYXBlIj54bWxTYXZlU2V0QXR0ckVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlU2V0RXNjYXBlIj54bWxTYXZlU2V0RXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXNwZWNpYWxseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmVzdGFibGlzaGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBVcGRhdGVVUkwiPnhtbE5hbm9GVFBVcGRhdGVVUkw8L2E+PGJyIC8+Cis8L2RkPjxkdD5ldGM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUZhY2V0Ij5feG1sU2NoZW1hRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jR2V0Um9vdEVsZW1lbnQiPnhtbERvY0dldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1NldFJvb3RFbGVtZW50Ij54bWxEb2NTZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZXZhbHVhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbEV4cHIiPnhtbFhQYXRoRXZhbEV4cHI8L2E+PGJyIC8+Cis8L2RkPjxkdD5ldmFsdWF0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuIj54bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsUHJlZGljYXRlIj54bWxYUGF0aEV2YWxQcmVkaWNhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQiPnhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmV2YWx1YXRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZXZhbHVhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoRnVuY3QiPl94bWxYUGF0aEZ1bmN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij5feG1sWFBhdGhQYXJzZXJDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVBvcCI+dmFsdWVQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3ZhbHVlUHVzaCI+dmFsdWVQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnTmV3RXhlY0N0eHQiPnhtbFJlZ05ld0V4ZWNDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQiPnhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21waWxlZEV2YWwiPnhtbFhQYXRoQ29tcGlsZWRFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWwiPnhtbFhQYXRoRXZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsRXhwcmVzc2lvbiI+eG1sWFBhdGhFdmFsRXhwcmVzc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsRnVuYyI+eG1sWFBhdGhFdmFsRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsUHJlZGljYXRlIj54bWxYUGF0aEV2YWxQcmVkaWNhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQiPnhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWwiPnhtbFhQdHJFdmFsPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXZhdWxhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0ZyZWVFeGVjQ3R4dCI+eG1sUmVnRnJlZUV4ZWNDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZXZlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3T3IiPnhtbEV4cE5ld09yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3U2VxIj54bWxFeHBOZXdTZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCI+eG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJvdW5kRnVuY3Rpb24iPnhtbFhQYXRoUm91bmRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmV2ZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYVW5wbHVnIj54bWxTY2hlbWFTQVhVbnBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXZlbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZURvYyI+aHRtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIj54bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvYT48YnIgLz4KKzwvZGQ+PGR0PmV2ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0TmJDb25zIj54bWxFeHBDdHh0TmJDb25zPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXZlcnl3aGVyZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGFjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGFtaW5lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGFtcGxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nIj54bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXhhbXBsZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXhjZXB0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld05lZ1RyYW5zIj54bWxBdXRvbWF0YU5ld05lZ1RyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vTnNQcm9wIj54bWxHZXROb05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sUGFyc2VDYXRhbG9nRmlsZSI+eG1sUGFyc2VDYXRhbG9nRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXhjZXB0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlU3RyIj54bWxVUklFc2NhcGVTdHI8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGNsdWRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSIj5JU19DSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRGb2xsb3dpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGNsdXNpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4Y2x1c2lvbnM6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXhjbHVzaXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGVjdXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFDb21waWxlIj54bWxBdXRvbWF0YUNvbXBpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGVjdXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZzIiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4aXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSGFzRmVhdHVyZSI+eG1sSGFzRmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0QWRkIj54bWxYUHRyTG9jYXRpb25TZXRBZGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5leGlzdGVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXhpc3RzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RFeGlzdHMiPnhtbERpY3RFeGlzdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHdkIj54bWxTaGVsbFB3ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFhtbExhbmciPnhtbFRleHRSZWFkZXJDb25zdFhtbExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyWG1sTGFuZyI+eG1sVGV4dFJlYWRlclhtbExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25EZWNsIj54bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4aXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4cGFuZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZyI+eG1sTG9hZFNHTUxTdXBlckNhdGFsb2c8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHBhbmRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24iPnhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5leHBlY3RlZDwvZHQ+PGRkPjxhIGhyZWY9IiI+eDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0Ij54bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFOZXdQYXJzZXJDdHh0Ij54bWxTY2hlbWFOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHBsaWNpdGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWERlZmF1bHRWZXJzaW9uIj54bWxTQVhEZWZhdWx0VmVyc2lvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4cGxvcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXhwb3Npbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZCI+eG1sVGV4dFJlYWRlclJlYWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHByZXNzaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGF0aFRvVVJJIj54bWxQYXRoVG9VUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHByZXNzaW9uczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfRVhQUl9FTkFCTEVEIj5MSUJYTUxfRVhQUl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9SRUdFWFBfRU5BQkxFRCI+TElCWE1MX1JFR0VYUF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdDdHh0Ij54bWxFeHBOZXdDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3Vic3VtZSI+eG1sRXhwU3Vic3VtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4c2xTZXRzRGlzdGluY3RTb3J0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHNsU2V0c0xlYWRpbmdTb3J0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZyI+eG1sWFBhdGhMZWFkaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXhzbFNldHNOb2RlTGVhZGluZ1NvcnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlTGVhZGluZyI+eG1sWFBhdGhOb2RlTGVhZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4dDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4dFBhcnNlZEVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRW50aXR5Ij54bWxQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0UGFyc2VkRW50Ij54bWxQYXJzZUV4dFBhcnNlZEVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUVudGl0eSI+eG1sU0FYUGFyc2VFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHRTdWJzZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsU3Vic2V0Ij54bWxQYXJzZUV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZXh0U3Vic2V0RGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxTdWJzZXQiPnhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHRlbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0Ij54bWxTdHJuY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuIj54bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXh0ZW5kZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5leHRlbnNpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT048L2E+PGJyIC8+Cis8L2RkPjxkdD5leHRlbnNpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFNBWEhhbmRsZXIiPl94bWxTQVhIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+ZXh0ZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmV4dHJhY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0dFVF9DT05URU5UIj5YTUxfR0VUX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0dFVF9MSU5FIj5YTUxfR0VUX0xJTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ29udGVudCI+eG1sQnVmZmVyQ29udGVudDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxNS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYjQ0MzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazE1Lmh0bWwKQEAgLTAsMCArMSw0NDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+QVBJIEFscGhhYmV0aWMgSW5kZXggZi1mIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BUEkgQWxwaGFiZXRpYyBJbmRleCBmLWYgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxoMj5MZXR0ZXIgZjo8L2gyPjxkbD48ZHQ+ZlRQPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0VG8iPnhtbE5hbm9GVFBDb25uZWN0VG88L2E+PGJyIC8+Cis8L2RkPjxkdD5mYWNldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUiPlhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0UiPlhNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRkFDRVRfVU5LTk9XTiI+WE1MX1NDSEVNQVNfRkFDRVRfVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRmFjZXRMaW5rIj5feG1sU2NoZW1hRmFjZXRMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUZyZWVGYWNldCI+eG1sU2NoZW1hRnJlZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmciPnhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0Ij54bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PmZhY2V0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRSI+WE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTIj5YTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQiPlhNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlIj5feG1sU2NoZW1hVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNoZWNrRmFjZXQiPnhtbFNjaGVtYUNoZWNrRmFjZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5mYWNpbGl0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHROYkNvbnMiPnhtbEV4cEN0eHROYkNvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0TmJOb2RlcyI+eG1sRXhwQ3R4dE5iTm9kZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5mYWlsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHJpbnRYUGF0aEVycm9yIj54bWxTaGVsbFByaW50WFBhdGhFcnJvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmZhaWxlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENvbm5lY3RUbyI+eG1sTmFub0ZUUENvbm5lY3RUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ3dkIj54bWxOYW5vRlRQQ3dkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBEZWxlIj54bWxOYW5vRlRQRGVsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlSUQiPnhtbFJlbW92ZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxSZW1vdmVSZWYiPnhtbFJlbW92ZVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMb2FkIj54bWxTaGVsbExvYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2VzcyI+eG1sWEluY2x1ZGVQcm9jZXNzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5mYWlsczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNVVEY4VG9IdG1sIj5VVEY4VG9IdG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNVVEY4VG9pc29sYXQxIj5VVEY4VG9pc29sYXQxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxDYW5vbmljUGF0aCI+eG1sQ2Fub25pY1BhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNGaXJzdExpbmUiPnhtbENoYXJFbmNGaXJzdExpbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNJbkZ1bmMiPnhtbENoYXJFbmNJbkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2hlY2tGaWxlbmFtZSI+eG1sQ2hlY2tGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU9wZW4iPnhtbEZpbGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGF0aFRvVVJJIj54bWxQYXRoVG9VUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5mYWxsYmFjazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfRkFMTEJBQ0siPlhJTkNMVURFX0ZBTExCQUNLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZURvYyI+ZG9jYlNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZUZpbGUiPmRvY2JTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRG9jIj5odG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRmlsZSI+aHRtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU9wZW4iPnhtbEZpbGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VFbnRpdHkiPnhtbFNBWFBhcnNlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZmF0YWxFcnJvclNBWEZ1bmMiPmZhdGFsRXJyb3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUlzVmFsaWQiPnhtbFNjaGVtYUlzVmFsaWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5mYXNoaW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPC9kZD48ZHQ+ZmFzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxJbml0QXV0b0Nsb3NlIj5odG1sSW5pdEF1dG9DbG9zZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZhc3RlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVN0YXR1cyI+aHRtbE5vZGVTdGF0dXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJFcXVhbCI+eG1sU3RyRXF1YWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5mYXRhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2ZhdGFsRXJyb3JTQVhGdW5jIj5mYXRhbEVycm9yU0FYRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmZhdGFsRXJyb3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5mYXZvcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RWxlbWVudENvbnRlbnQiPnhtbE5ld0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+ZmVhdHVyZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9NQVhfVEVYVF9MRU5HVEgiPlhNTF9NQVhfVEVYVF9MRU5HVEg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRGZWF0dXJlIj54bWxHZXRGZWF0dXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxIYXNGZWF0dXJlIj54bWxIYXNGZWF0dXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0RmVhdHVyZSI+eG1sU2V0RmVhdHVyZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZlYXR1cmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5mZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxOZXdUZXh0UmVhZGVyIj54bWxOZXdUZXh0UmVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIj54bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVdhbnRzQW55Tm9kZSI+eG1sU3RyZWFtV2FudHNBbnlOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmVlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXR1cCI+eG1sVGV4dFJlYWRlclNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmV0Y2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldFNvY2tldCI+eG1sTmFub0ZUUEdldFNvY2tldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQT3BlbiI+eG1sTmFub0ZUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRmV0Y2giPnhtbE5hbm9IVFRQRmV0Y2g8L2E+PGJyIC8+Cis8L2RkPjxkdD5mZXRjaGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJwb3MiPnhtbFVURjhTdHJwb3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5maWVsZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9DT01QTEVURV9BVFRSUyI+WE1MX0NPTVBMRVRFX0FUVFJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxfQ1RYVF9GSU5JU0hfRFREXzAiPlhNTF9DVFhUX0ZJTklTSF9EVERfMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjWE1MX0NUWFRfRklOSVNIX0RURF8xIj5YTUxfQ1RYVF9GSU5JU0hfRFREXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVURUNUX0lEUyI+WE1MX0RFVEVDVF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1pc2MiPnhtbFBhcnNlTWlzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmllbGRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NBWDJfTUFHSUMiPlhNTF9TQVgyX01BR0lDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sU0FYSGFuZGxlciI+X3htbFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSVJlZmVyZW5jZSI+eG1sUGFyc2VVUklSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5maWxlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTGlzdCI+eG1sTmFub0ZUUExpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5maWxlc3lzdGVtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZEZpbGUiPmh0bWxDdHh0UmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRGaWxlIj5odG1sUmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxDYW5vbmljUGF0aCI+eG1sQ2Fub25pY1BhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZEZpbGUiPnhtbEN0eHRSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZpbGUiPnhtbFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRmlsZSI+eG1sUmVhZGVyRm9yRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0ZpbGUiPnhtbFJlYWRlck5ld0ZpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5maWxsZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRGZWF0dXJlc0xpc3QiPnhtbEdldEZlYXR1cmVzTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmZpbGxzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSZWZlcmVuY2UiPnhtbFBhcnNlVVJJUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmlsdGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5jb2RpbmdEZWNsIj54bWxQYXJzZUVuY29kaW5nRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmZpbmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfREVGQVVMVCI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1QiPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04iPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU2V0RmluYWxTdGF0ZSI+eG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmciPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmcyIj54bWxSZWdFeGVjUHVzaFN0cmluZzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCI+eG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmluYWxEZWZhdWx0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1QiPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfVU5JT04iPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfVU5JT048L2E+PGJyIC8+Cis8L2RkPjxkdD5maW5kPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEdldFRocmVhZElkIj54bWxHZXRUaHJlYWRJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxJc1hIVE1MIj54bWxJc1hIVE1MPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmluZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQU2NhblByb3h5Ij54bWxOYW5vRlRQU2NhblByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBVcGRhdGVVUkwiPnhtbE5hbm9GVFBVcGRhdGVVUkw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZpbmRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+PGJyIC8+Cis8L2RkPjxkdD5maW5pc2hEdGQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI1hNTF9DVFhUX0ZJTklTSF9EVERfMCI+WE1MX0NUWFRfRklOSVNIX0RURF8wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxfQ1RYVF9GSU5JU0hfRFREXzEiPlhNTF9DVFhUX0ZJTklTSF9EVERfMTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZpbmlzaGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNraXBCbGFua0NoYXJzIj54bWxTa2lwQmxhbmtDaGFyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50RG9jIj54bWxUZXh0UmVhZGVyQ3VycmVudERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVzZXJ2ZSI+eG1sVGV4dFJlYWRlclByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzwvZGQ+PGR0PmZpbmlzaGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmluaXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmlyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmlzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEVudGl0eVJlZmVyZW5jZUZ1bmMiPnhtbEVudGl0eVJlZmVyZW5jZUZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5maXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNGaXJzdExpbmUiPnhtbENoYXJFbmNGaXJzdExpbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNJbkZ1bmMiPnhtbENoYXJFbmNJbkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmZpeGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfRklYRUQiPlhNTF9TQ0hFTUFTX0FUVFJfRklYRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9GSVhFRCI+WE1MX1NDSEVNQVNfRUxFTV9GSVhFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+Zml4dXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIj5YTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzE8L2E+PGJyIC8+Cis8L2RkPjxkdD5mbGFnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIiPlhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTZXRNZXRhRW5jb2RpbmciPmh0bWxTZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlcklzVmFsaWQiPnhtbFRleHRSZWFkZXJJc1ZhbGlkPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmxhZ2dlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sR2V0TWV0YUVuY29kaW5nIj5odG1sR2V0TWV0YUVuY29kaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+ZmxhZ3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvckRvYyI+eG1sUmVhZGVyRm9yRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRmQiPnhtbFJlYWRlckZvckZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRmlsZSI+eG1sUmVhZGVyRm9yRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvcklPIj54bWxSZWFkZXJGb3JJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvck1lbW9yeSI+eG1sUmVhZGVyRm9yTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RG9jIj54bWxSZWFkZXJOZXdEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGaWxlIj54bWxSZWFkZXJOZXdGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3SU8iPnhtbFJlYWRlck5ld0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3TWVtb3J5Ij54bWxSZWFkZXJOZXdNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhQYXJzZXJTZXRGbGFnIj54bWxSZWxheFBhcnNlclNldEZsYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlU2V0RmxhZ3MiPnhtbFhJbmNsdWRlU2V0RmxhZ3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5mbGF0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0dldE5vZGVMaXN0Ij54bWxTdHJpbmdHZXROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTdHJpbmdMZW5HZXROb2RlTGlzdCI+eG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5mbG9vcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGbG9vckZ1bmN0aW9uIj54bWxYUGF0aEZsb29yRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5mbG93PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2Nhbk5hbWUiPnhtbFNjYW5OYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYVW5wbHVnIj54bWxTY2hlbWFTQVhVbnBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPC9kZD48ZHQ+Zmx1c2hlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREb2N1bWVudCI+eG1sVGV4dFdyaXRlckVuZERvY3VtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+Zmx1c2hlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ2xvc2UiPnhtbE91dHB1dEJ1ZmZlckNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJGbHVzaCI+eG1sT3V0cHV0QnVmZmVyRmx1c2g8L2E+PGJyIC8+Cis8L2RkPjxkdD5mb2xsb3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nIj54bWxYUGF0aE5vZGVUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nIj54bWxYUGF0aFRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj54bWxYUGF0aFRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+Zm9sbG93aW5nLXNpYmxpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5mb2xsb3dzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmZvbGxvd3M6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24iPnhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+Zm9uY3Rpb25uYWxpdGllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE1hdGNoQ2FsbGJhY2siPnhtbE91dHB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD5mb3I6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+Zm9yYmlkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYTUxfWFBBVEhfTk9WQVIiPlhNTF9YUEFUSF9OT1ZBUjwvYT48YnIgLz4KKzwvZGQ+PGR0PmZvcmNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+Zm9yY2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PmZvcm08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jIj5kb2NiUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRmlsZSI+ZG9jYlBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VEb2MiPmRvY2JTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VGaWxlIj5kb2NiU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRG9jIj5odG1sUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRmlsZSI+aHRtbFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+Zm9ybWFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9FWFBSX0VOQUJMRUQiPkxJQlhNTF9FWFBSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5mb3JtYXR0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmZvcm1hdHRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCI+aHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCI+aHRtbERvY0R1bXBNZW1vcnlGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcCI+aHRtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlIj5odG1sTm9kZUR1bXBGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiPmh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wT3V0cHV0Ij5odG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTYXZlRmlsZUVuYyI+aHRtbFNhdmVGaWxlRW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2F2ZUZpbGVGb3JtYXQiPmh0bWxTYXZlRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRm9ybWF0RHVtcCI+eG1sRG9jRm9ybWF0RHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcCI+eG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXBPdXRwdXQiPnhtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZUVuYyI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyVlByaW50ZiI+eG1sU3RyVlByaW50ZjwvYT48YnIgLz4KKzwvZGQ+PGR0PmZvcm1lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZvcndhcmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPC9kZD48ZHQ+ZnB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCNYTUxfQ0FTVF9GUFRSIj5YTUxfQ0FTVF9GUFRSPC9hPjxiciAvPgorPC9kZD48ZHQ+ZnJhZ21lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCNfeG1sVVJJIj5feG1sVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY0ZyYWdtZW50Ij54bWxOZXdEb2NGcmFnbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFB1c2hJbnB1dCI+eG1sUHVzaElucHV0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZnJhZ21lbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSYXciPnhtbFBhcnNlVVJJUmF3PC9hPjxiciAvPgorPC9kZD48ZHQ+ZnJlZWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0RGVhbGxvY2F0ZSI+eG1sUGFyc2VySW5wdXREZWFsbG9jYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGF0aFRvVVJJIj54bWxQYXRoVG9VUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5mcmVlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJGcmVlIj54bWxCdWZmZXJGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5mcm9udDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5DTmFtZSI+eG1sVmFsaWRhdGVOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOTVRva2VuIj54bWxWYWxpZGF0ZU5NVG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOYW1lIj54bWxWYWxpZGF0ZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVRTmFtZSI+eG1sVmFsaWRhdGVRTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZyb250LWVuZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0Nsb3NlRnVuYyI+eG1sQ2hhckVuY0Nsb3NlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0luRnVuYyI+eG1sQ2hhckVuY0luRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+ZnRwOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQT3BlbiI+eG1sTmFub0ZUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFNjYW5Qcm94eSI+eG1sTmFub0ZUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZ0cF9wcm94eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUHJveHkiPnhtbE5hbm9GVFBQcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZ0cF9wcm94eV9wYXNzd29yZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUHJveHkiPnhtbE5hbm9GVFBQcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZ0cF9wcm94eV91c2VyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPjxiciAvPgorPC9kZD48ZHQ+ZnVsbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoUGFyc2VyQ29udGV4dCI+X3htbFhQYXRoUGFyc2VyQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXR0ckFsbG93ZWQiPmh0bWxBdHRyQWxsb3dlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZURvYyI+eG1sU2F2ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXhwYW5kIj54bWxUZXh0UmVhZGVyRXhwYW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJVW5lc2NhcGVTdHJpbmciPnhtbFVSSVVuZXNjYXBlU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cmxlbiI+eG1sVVRGOFN0cmxlbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmZ1bGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZURvYyI+eG1sU2F2ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVHJlZSI+eG1sU2F2ZVRyZWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5mdW5jPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+ZnVuY3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5mdW5jdGlvbjo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlmZmVyZW5jZSI+eG1sWFBhdGhEaWZmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0Ij54bWxYUGF0aERpc3RpbmN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0U29ydGVkIj54bWxYUGF0aERpc3RpbmN0U29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEhhc1NhbWVOb2RlcyI+eG1sWFBhdGhIYXNTYW1lTm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSW50ZXJzZWN0aW9uIj54bWxYUGF0aEludGVyc2VjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nIj54bWxYUGF0aExlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nIj54bWxYUGF0aE5vZGVMZWFkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIj54bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZyI+eG1sWFBhdGhOb2RlVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIj54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZyI+eG1sWFBhdGhUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmZ1bmN0aW9uYWxpdHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgiPnhtbFhQYXRoTm9kZVNldEdldExlbmd0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0SXRlbSI+eG1sWFBhdGhOb2RlU2V0SXRlbTwvYT48YnIgLz4KKzwvZGQ+PGR0PmZ1bmN0aW9uczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRJTyI+aHRtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRJTyI+aHRtbFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZElPIj54bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1HZXQiPnhtbEdjTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZElPIj54bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JJTyI+eG1sUmVhZGVyRm9ySU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdJTyI+eG1sUmVhZGVyTmV3SU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDbWQiPnhtbFNoZWxsQ21kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3dpdGNoRW5jb2RpbmciPnhtbFN3aXRjaEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3dpdGNoSW5wdXRFbmNvZGluZyI+eG1sU3dpdGNoSW5wdXRFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaFRvRW5jb2RpbmciPnhtbFN3aXRjaFRvRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMiPnhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwPC9hPjxiciAvPgorPC9kZD48ZHQ+ZnVydGhlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdG9wUGFyc2VyIj54bWxTdG9wUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlU2V0RmxhZ3MiPnhtbFhJbmNsdWRlU2V0RmxhZ3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5mdXR1cmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERPTVdyYXBDdHh0Ij5feG1sRE9NV3JhcEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGaWxlIj54bWxTY2hlbWFWYWxpZGF0ZUZpbGU8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTYuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTJkOTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxNi5odG1sCkBAIC0wLDAgKzEsMzY0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IGctaCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggZy1oIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIGc6PC9oMj48ZGw+PGR0PmdEYXk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+Z01vbnRoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmdNb250aERheTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5nWWVhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5nWWVhck1vbnRoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmdhcmFudGVlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmdhcmJhZ2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+Z2NjPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8L2RkPjxkdD5nY2M0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8L2RkPjxkdD5nZW5DaFJhbmdlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyUSI+eG1sSXNCYXNlQ2hhclE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhcl9jaCI+eG1sSXNCYXNlQ2hhcl9jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rUSI+eG1sSXNCbGFua1E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFua19jaCI+eG1sSXNCbGFua19jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJRIj54bWxJc0NoYXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ2hhcl9jaCI+eG1sSXNDaGFyX2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ29tYmluaW5nUSI+eG1sSXNDb21iaW5pbmdRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXRRIj54bWxJc0RpZ2l0UTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0X2NoIj54bWxJc0RpZ2l0X2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJRIj54bWxJc0V4dGVuZGVyUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0V4dGVuZGVyX2NoIj54bWxJc0V4dGVuZGVyX2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzSWRlb2dyYXBoaWNRIj54bWxJc0lkZW9ncmFwaGljUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhclEiPnhtbElzUHViaWRDaGFyUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhcl9jaCI+eG1sSXNQdWJpZENoYXJfY2g8L2E+PGJyIC8+Cis8L2RkPjxkdD5nZW5lcmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfQk9USCI+WE1MX1NVQlNUSVRVVEVfQk9USDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9TVUJTVElUVVRFX1JFRiI+WE1MX1NVQlNUSVRVVEVfUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jRmlyc3RMaW5lIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jSW5GdW5jIj54bWxDaGFyRW5jSW5GdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dFBhcnNlZEVudCI+eG1sUGFyc2VFeHRQYXJzZWRFbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+Z2VuZXJhbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWERlZmF1bHRWZXJzaW9uIj54bWxTQVhEZWZhdWx0VmVyc2lvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmdlbmVyYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeUVuYyI+eG1sRG9jRHVtcE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkiPnhtbEhhc2hBZGRFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkyIj54bWxIYXNoQWRkRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTMiPnhtbEhhc2hBZGRFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMb2FkRXh0ZXJuYWxFbnRpdHkiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPC9kZD48ZHQ+Z2VuZXJhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeUVuYyI+eG1sRG9jRHVtcE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyUSI+eG1sSXNCYXNlQ2hhclE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhcl9jaCI+eG1sSXNCYXNlQ2hhcl9jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rUSI+eG1sSXNCbGFua1E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFua19jaCI+eG1sSXNCbGFua19jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJRIj54bWxJc0NoYXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ2hhcl9jaCI+eG1sSXNDaGFyX2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ29tYmluaW5nUSI+eG1sSXNDb21iaW5pbmdRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXRRIj54bWxJc0RpZ2l0UTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0X2NoIj54bWxJc0RpZ2l0X2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJRIj54bWxJc0V4dGVuZGVyUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0V4dGVuZGVyX2NoIj54bWxJc0V4dGVuZGVyX2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzSWRlb2dyYXBoaWNRIj54bWxJc0lkZW9ncmFwaGljUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhclEiPnhtbElzUHViaWRDaGFyUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhcl9jaCI+eG1sSXNQdWJpZENoYXJfY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQiPnhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc0RlZmF1bHQiPnhtbFRleHRSZWFkZXJJc0RlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5nZW5lcmF0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBFeGVjIj54bWxSZWdleHBFeGVjPC9hPjxiciAvPgorPC9kZD48ZHQ+Z2VuZXJhdGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBNZW1vcnlFbmMiPnhtbERvY0R1bXBNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzwvZGQ+PGR0PmdlbmVyaWM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI2luaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYyI+aW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENtZCI+eG1sU2hlbGxDbWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUmVhZGxpbmVGdW5jIj54bWxTaGVsbFJlYWRsaW5lRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmdldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxTQVhIYW5kbGVyIj5feG1sU0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxTQVhIYW5kbGVyVjEiPl94bWxTQVhIYW5kbGVyVjE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyTGVuZ3RoIj54bWxCdWZmZXJMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Q29tcHJlc3NNb2RlIj54bWxHZXRDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0RG9jQ29tcHJlc3NNb2RlIj54bWxHZXREb2NDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Tm9Oc1Byb3AiPnhtbEdldE5vTnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zUHJvcCI+eG1sR2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldFByb3AiPnhtbEdldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBJbml0Ij54bWxOYW5vRlRQSW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdQSSI+eG1sTmV3UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50RG9jIj54bWxUZXh0UmVhZGVyQ3VycmVudERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50Tm9kZSI+eG1sVGV4dFJlYWRlckN1cnJlbnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AiPnhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+Z2lmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmdpdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VySW5wdXQiPl94bWxQYXJzZXJJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZCI+eG1sVmFsaWRhdGVEdGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5naXZlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3IiPnhtbFBhcnNlckVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eUVycm9yIj54bWxQYXJzZXJWYWxpZGl0eUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmciPnhtbFBhcnNlclZhbGlkaXR5V2FybmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyV2FybmluZyI+eG1sUGFyc2VyV2FybmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmdpdmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2MiPnhtbE5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbk51bSI+eG1sUGFyc2VWZXJzaW9uTnVtPC9hPjxiciAvPgorPC9kZD48ZHQ+Z2xvYmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMIj5YTUxfU0NIRU1BU19FTEVNX0dMT0JBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0dMT0JBTCI+WE1MX1NDSEVNQVNfVFlQRV9HTE9CQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5zIj5feG1sTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnbG9iYWxOYW1lc3BhY2UiPmdsb2JhbE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRHVtcCI+eG1sQ2F0YWxvZ0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxDdHh0UmVzZXRMYXN0RXJyb3IiPnhtbEN0eHRSZXNldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQiPnhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVTcGVjaWFsQ2hhcnMiPnhtbEVuY29kZVNwZWNpYWxDaGFyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRHbG9iYWxTdGF0ZSI+eG1sR2V0R2xvYmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEdldExhc3RFcnJvciI+eG1sR2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbEluaXRpYWxpemVHbG9iYWxTdGF0ZSI+eG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxSZXNldExhc3RFcnJvciI+eG1sUmVzZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8L2RkPjxkdD5nbG9iYWxseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5nbnU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9kZVR5cGUiPnhtbFRleHRSZWFkZXJOb2RlVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pmdvb2Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+Z3JhZnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5UHJvcCI+eG1sQ29weVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weVByb3BMaXN0Ij54bWxDb3B5UHJvcExpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5ncmFtbWFyOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+Z3JlYXRlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRmxvb3JGdW5jdGlvbiI+eG1sWFBhdGhGbG9vckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+Z3JlYXRlci10aGFuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPC9kZD48ZHQ+Z3JvdXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQiPlhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hQXR0cmlidXRlR3JvdXAiPl94bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRWxlbWVudCI+X3htbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD5ncm91cHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+Z3JvdzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5ncm93czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZUNIQVIiPnhtbEJ1ZmZlcldyaXRlQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZUNoYXIiPnhtbEJ1ZmZlcldyaXRlQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyI+eG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5ndWVzczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgaDo8L2gyPjxkbD48ZHQ+aGFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0dsb2JhbE5zIj54bWxOZXdHbG9iYWxOczwvYT48YnIgLz4KKzwvZGQ+PGR0PmhhbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZEFDYXRhbG9nIj54bWxMb2FkQUNhdGFsb2c8L2E+PGJyIC8+Cis8L2RkPjxkdD5oYW5kbGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRBQ2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlIj54bWxQYXJzZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+aGFuZGxlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rU2V0RGVmYXVsdEhhbmRsZXIiPnhsaW5rU2V0RGVmYXVsdEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyI+eG1sQ2xlYW51cENoYXJFbmNvZGluZ0hhbmRsZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciI+eG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmhhbmRsZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZpbGVUbyI+eG1sU2F2ZUZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZVRvIj54bWxTYXZlRm9ybWF0RmlsZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFVuc2V0UHJvcCI+eG1sVW5zZXRQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmhhbmRsaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iPlhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZVNBWEZ1bmMiPmF0dHJpYnV0ZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEhhbmRsZU9taXR0ZWRFbGVtIj5odG1sSGFuZGxlT21pdHRlZEVsZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ2hpbGRFbGVtZW50Q291bnQiPnhtbENoaWxkRWxlbWVudENvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZpcnN0RWxlbWVudENoaWxkIj54bWxGaXJzdEVsZW1lbnRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEhhbmRsZUVudGl0eSI+eG1sSGFuZGxlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIj54bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VRTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXh0RWxlbWVudFNpYmxpbmciPnhtbE5leHRFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUHJldmlvdXNFbGVtZW50U2libGluZyI+eG1sUHJldmlvdXNFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ij54bWxSZWdOZXdFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcEJvb2xlYW4iPnhtbFhQYXRoUG9wQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BFeHRlcm5hbCI+eG1sWFBhdGhQb3BFeHRlcm5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOb2RlU2V0Ij54bWxYUGF0aFBvcE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wTnVtYmVyIj54bWxYUGF0aFBvcE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BTdHJpbmciPnhtbFhQYXRoUG9wU3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+aGFyZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPC9kZD48ZHQ+aGFzLXNhbWUtbm9kZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSGFzU2FtZU5vZGVzIj54bWxYUGF0aEhhc1NhbWVOb2RlczwvYT48YnIgLz4KKzwvZGQ+PGR0PmhheXN0YWNrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZXN0ciI+eG1sU3RyY2FzZXN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN0ciI+eG1sU3Ryc3RyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3ViIj54bWxTdHJzdWI8L2E+PGJyIC8+Cis8L2RkPjxkdD5oZWFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRCI+WE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+aGVhZGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEF1dGhIZWFkZXIiPnhtbE5hbm9IVFRQQXV0aEhlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoIj54bWxOYW5vSFRUUENvbnRlbnRMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVkaXIiPnhtbE5hbm9IVFRQUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVRleHREZWNsIj54bWxQYXJzZVRleHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VYTUxEZWNsIj54bWxQYXJzZVhNTERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5oZWFkZXJzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEVuY29kaW5nIj54bWxOYW5vSFRUUEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWltZVR5cGUiPnhtbE5hbm9IVFRQTWltZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5oZWFkaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+aGVscGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIiPlhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD5oZXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzwvZGQ+PGR0PmhldXJpc3RpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+aGV1cmlzdGljOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNSZWYiPnhtbElzUmVmPC9hPjxiciAvPgorPC9kZD48ZHQ+aGV4PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlU3RyIj54bWxVUklFc2NhcGVTdHI8L2E+PGJyIC8+Cis8L2RkPjxkdD5oaWVyYXJjaHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+aGlnaGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUVsZW1lbnQiPmh0bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnQiPnhtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmhvbGQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckRvYyI+eG1sTmV3VGV4dFdyaXRlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIj54bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5ob2xkaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxBdHRyaWJ1dGUiPl94bWxBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbElEIj5feG1sSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbFJlZiI+X3htbFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkSUQiPnhtbEFkZElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRSZWYiPnhtbEFkZFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3AiPnhtbE5ld05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3BFYXROYW1lIj54bWxOZXdOc1Byb3BFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1Byb3AiPnhtbE5ld1Byb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5ob2xkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyI+eG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5ob3N0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFVwZGF0ZVVSTCI+eG1sTmFub0ZUUFVwZGF0ZVVSTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBTY2FuUHJveHkiPnhtbE5hbm9IVFRQU2NhblByb3h5PC9hPjxiciAvPgorPC9kZD48ZHQ+aG9zdGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jTG9va3VwRnVuYyI+eG1sWFBhdGhGdW5jTG9va3VwRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkTnMiPnhtbFhQYXRoTm9kZVNldEFkZE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5ob3N0bmFtZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQSW5pdCI+eG1sTmFub0ZUUEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFVwZGF0ZVVSTCI+eG1sTmFub0ZUUFVwZGF0ZVVSTDwvYT48YnIgLz4KKzwvZGQ+PGR0PmhvdXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD5ob3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI194bWxFcnJvciI+X3htbEVycm9yPC9hPjxiciAvPgorPC9kZD48ZHQ+aHJlZjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfSFJFRiI+WElOQ0xVREVfSFJFRjwvYT48YnIgLz4KKzwvZGQ+PGR0PmhyZWY9PU5VTEw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3TnMiPnhtbE5ld05zPC9hPjxiciAvPgorPC9kZD48ZHQ+aHJlZnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT48YnIgLz4KKzwvZGQ+PGR0Pmh0bWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5odG1sQXR0ckFsbG93ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPC9kZD48ZHQ+aHRtbEVsZW1EZXNjUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxUYWdMb29rdXAiPmh0bWxUYWdMb29rdXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5odG1sRWxlbWVudEFsbG93ZWRIZXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzwvZGQ+PGR0Pmh0bWxFbGVtZW50U3RhdHVzSGVyZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVN0YXR1cyI+aHRtbE5vZGVTdGF0dXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5odG1sRW50aXR5RGVzY1B0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5TG9va3VwIj5odG1sRW50aXR5TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUVudGl0eVJlZiI+aHRtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPC9kZD48ZHQ+aHRtbE5vZGVQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPC9kZD48ZHQ+aHRtbFBhcnNlckN0eHRQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5ld1BhcnNlckN0eHQiPmh0bWxOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+aHRtbFBhcnNlck9wdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWREb2MiPmh0bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRGZCI+aHRtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRmlsZSI+aHRtbEN0eHRSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRJTyI+aHRtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkTWVtb3J5Ij5odG1sQ3R4dFJlYWRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRVc2VPcHRpb25zIj5odG1sQ3R4dFVzZU9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWREb2MiPmh0bWxSZWFkRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkRmQiPmh0bWxSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRGaWxlIj5odG1sUmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRJTyI+aHRtbFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZE1lbW9yeSI+aHRtbFJlYWRNZW1vcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD5odG1sU3RhcnRDbG9zZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXV0b0Nsb3NlVGFnIj5odG1sQXV0b0Nsb3NlVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxJc0F1dG9DbG9zZWQiPmh0bWxJc0F1dG9DbG9zZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5odG1sU3RhcnRDbG9zZUluZGV4PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPC9kZD48ZHQ+aHR0cDo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX05TIj5YSU5DTFVERV9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfT0xEX05TIj5YSU5DTFVERV9PTERfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRTeXN0ZW1JZCI+Z2V0U3lzdGVtSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldENoYXJFbmNvZGluZ05hbWUiPnhtbEdldENoYXJFbmNvZGluZ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJHZXRTeXN0ZW1JZCI+eG1sU0FYMkdldFN5c3RlbUlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNJbmYiPnhtbFhQYXRoSXNJbmY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNOYU4iPnhtbFhQYXRoSXNOYU48L2E+PGJyIC8+Cis8L2RkPjxkdD5odW1hbi1yZWFkYWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTcuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDI0ZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxNy5odG1sCkBAIC0wLDAgKzEsNTY0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IGktaSBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggaS1pIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIGk6PC9oMj48ZGw+PGR0Pmljb252PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9JQ09OVl9FTkFCTEVEIj5MSUJYTUxfSUNPTlZfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfSVNPODg1OVhfRU5BQkxFRCI+TElCWE1MX0lTTzg4NTlYX0VOQUJMRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5pZGVudGlmeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+aWRlbnRpdHktY29uc3RyYWludDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFFbGVtZW50Ij5feG1sU2NoZW1hRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0Pmlnbm9yYWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2UiPmlnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyI+aWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSXNCbGFua05vZGUiPnhtbElzQmxhbmtOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlIj54bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pmlnbm9yYWJsZVdoaXRlc3BhY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5pZ25vcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5pZ25vcmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZVN0ciI+eG1sVVJJRXNjYXBlU3RyPC9hPjxiciAvPgorPC9kZD48ZHQ+aW1hZ2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmltYnJpY2F0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcE91dHB1dCI+eG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbWc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+aW1tZWRpYXRlbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjeG1sQ2hlY2tWZXJzaW9uIj54bWxDaGVja1ZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlIj54bWxPdXRwdXRCdWZmZXJXcml0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyI+eG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5pbW11dGFibGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU3RhdGljIj54bWxCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmltcGxlbWVudGF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuYyI+eG1sWFBhdGhSZWdpc3RlckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jTlMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jTlM8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbXBsZW1lbnRhdGlvbi1kZWZpbmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHROYW1lc3BhY2UiPnhtbFhQYXRoTmV4dE5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmltcGxlbWVudGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX0NPTU1FTlRfTk9ERSI+SFRNTF9DT01NRU5UX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfRU5USVRZX1JFRl9OT0RFIj5IVE1MX0VOVElUWV9SRUZfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9QSV9OT0RFIj5IVE1MX1BJX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfUFJFU0VSVkVfTk9ERSI+SFRNTF9QUkVTRVJWRV9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1RFWFRfTk9ERSI+SFRNTF9URVhUX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcGVuIj54bWxNb2R1bGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVEb2MiPnhtbFNhdmVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29weVZhbHVlIj54bWxTY2hlbWFDb3B5VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmciPnhtbFRleHRSZWFkZXJOZXh0U2libGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmltcGxpY2l0bHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSXNBdXRvQ2xvc2VkIj5odG1sSXNBdXRvQ2xvc2VkPC9hPjxiciAvPgorPC9kZD48ZHQ+aW1wbGllZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+aW1wb3NzaWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW1wcm92ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+aW4tPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciPnhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvYT48YnIgLz4KKzwvZGQ+PGR0PmluLWV4dGVuc288L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5RHVtcCI+eG1sTWVtb3J5RHVtcDwvYT48YnIgLz4KKzwvZGQ+PGR0PmluLW1lbW9yeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZURvYyI+ZG9jYlBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZURvYyI+ZG9jYlNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWREb2MiPmh0bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRNZW1vcnkiPmh0bWxDdHh0UmVhZE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2MiPmh0bWxQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZERvYyI+aHRtbFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRNZW1vcnkiPmh0bWxSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZURvYyI+aHRtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQiPnhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZERvYyI+eG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZE1lbW9yeSI+eG1sQ3R4dFJlYWRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZURvYyI+eG1sUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZU1lbW9yeSI+eG1sUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWFkRG9jIj54bWxSZWFkRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZE1lbW9yeSI+eG1sUmVhZE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvckRvYyI+eG1sUmVhZGVyRm9yRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yTWVtb3J5Ij54bWxSZWFkZXJGb3JNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdEb2MiPnhtbFJlYWRlck5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld01lbW9yeSI+eG1sUmVhZGVyTmV3TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJNZW1vcnkiPnhtbFJlY292ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYVXNlclBhcnNlTWVtb3J5Ij54bWxTQVhVc2VyUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmNhc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENsb3NlIj54bWxOYW5vRlRQQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbiI+eG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ3dkIj54bWxOYW5vRlRQQ3dkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBEZWxlIj54bWxOYW5vRlRQRGVsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0Ij54bWxOYW5vRlRQR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRDb25uZWN0aW9uIj54bWxOYW5vRlRQR2V0Q29ubmVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTGlzdCI+eG1sTmFub0ZUUExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRmV0Y2giPnhtbE5hbm9IVFRQRmV0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2F2ZSI+eG1sTmFub0hUVFBTYXZlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5jbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmNsdWRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9OT0RFIj5YSU5DTFVERV9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjeG1sQ2hlY2tWZXJzaW9uIj54bWxDaGVja1ZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdE1lcmdlIj54bWxMaXN0TWVyZ2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmNsdWRlOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmNsdWRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrIj54bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeSI+eG1sRG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlRG9jIj54bWxGcmVlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgiPnhtbE5hbm9IVFRQQ29udGVudExlbmd0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25UeXBlIj54bWxQYXJzZU5vdGF0aW9uVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmluY2x1ZGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWEiPl94bWxTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENsZWFudXBJbnB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzIj54bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQb3BJbnB1dENhbGxiYWNrcyI+eG1sUG9wSW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVNldEZsYWdzIj54bWxYSW5jbHVkZVNldEZsYWdzPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5jbHVkaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TIj5YTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlU0FYRnVuYyI+YXR0cmlidXRlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBMaXN0Q2FsbGJhY2siPmZ0cExpc3RDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3N0YXJ0RWxlbWVudCI+c3RhcnRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50U0FYRnVuYyI+c3RhcnRFbGVtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50Ij54bWxTQVgyU3RhcnRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCI+eG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwiPnhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmNsdXNpdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmluY3JlYXNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmNyZW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFuczwvYT48YnIgLz4KKzwvZGQ+PGR0PmluY3JlbWVudGFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzwvZGQ+PGR0PmluZGVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTZXRJbmRlbnQiPnhtbFRleHRXcml0ZXJTZXRJbmRlbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmRlbnRhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ciI+eG1sRGVidWdEdW1wQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ckxpc3QiPnhtbERlYnVnRHVtcEF0dHJMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlIj54bWxEZWJ1Z0R1bXBOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlTGlzdCI+eG1sRGVidWdEdW1wTm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE9uZU5vZGUiPnhtbERlYnVnRHVtcE9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU2V0SW5kZW50Ij54bWxUZXh0V3JpdGVyU2V0SW5kZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZyI+eG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciI+eG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QiPnhtbFhQYXRoRGVidWdEdW1wT2JqZWN0PC9hPjxiciAvPgorPC9kZD48ZHQ+aW5kZW50YXRpb24/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclNldEluZGVudCI+eG1sVGV4dFdyaXRlclNldEluZGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PmluZGVudGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmluZGVudGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRm9ybWF0RHVtcCI+eG1sRG9jRm9ybWF0RHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcCI+eG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXBPdXRwdXQiPnhtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZUVuYyI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmRlcGVuZGVudGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldFByb3AiPnhtbEdldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmRleDwvZHQ+PGRkPjxhIGhyZWY9IiI+aW5kZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFB1c2giPmlucHV0UHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25hbWVQdXNoIj5uYW1lUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25vZGVQdXNoIj5ub2RlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiPnhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUHVzaElucHV0Ij54bWxQdXNoSW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJzdWIiPnhtbFN0cnN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQiPnhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRSZW1vdmUiPnhtbFhQYXRoTm9kZVNldFJlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlIj54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZSI+eG1sWFB0ck5ld1JhbmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5kaWNhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FUVFJfQUxMT0NfU0laRSI+TElCWE1MX0FUVFJfQUxMT0NfU0laRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfQVRUUl9GT1JNQVQiPkxJQlhNTF9BVFRSX0ZPUk1BVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nIj54bWxSZWdFeGVjUHVzaFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nMiI+eG1sUmVnRXhlY1B1c2hTdHJpbmcyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJVW5lc2NhcGVTdHJpbmciPnhtbFVSSVVuZXNjYXBlU3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5kaWNhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIj54bWxOYW5vSFRUUEZldGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiI+eG1sTmFub0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaCI+eG1sU3RyZWFtUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoQXR0ciI+eG1sU3RyZWFtUHVzaEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5kaWNhdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFIj5YTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfSU5WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEIj5YTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUmVhZCI+eG1sTmFub0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFNjYW5Qcm94eSI+eG1sTmFub0ZUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgiPnhtbE5hbm9IVFRQQ29udGVudExlbmd0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZWFkIj54bWxOYW5vSFRUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PmluZGljYXRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJEYXRhIj54bWxQYXJzZUNoYXJEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiPnhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENtZCI+eG1sU2hlbGxDbWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iPnhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5kaWNhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUmVhZCI+eG1sTmFub0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVhZCI+eG1sTmFub0hUVFBSZWFkPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5kaWNhdGl2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0PmluZGljYXRvcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VDaHVuayI+ZG9jYlBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlQ2h1bmsiPmh0bWxQYXJzZUNodW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDaHVuayI+eG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzwvZGQ+PGR0PmluZGlyZWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5kaXJlY3RseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlIj54bWxQYXJzZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmZpbml0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5maW5pdHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIj54bWxYUGF0aENlaWxpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGbG9vckZ1bmN0aW9uIj54bWxYUGF0aEZsb29yRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmZvPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYXJOb2RlSW5mb1NlcSI+eG1sQ2xlYXJOb2RlSW5mb1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdE5vZGVJbmZvU2VxIj54bWxJbml0Tm9kZUluZm9TZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NBdG9taWNMb2MiPnhtbE1hbGxvY0F0b21pY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0xvYyI+eG1sTWFsbG9jTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtTWFsbG9jIj54bWxNZW1NYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1SZWFsbG9jIj54bWxNZW1SZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU3RyZHVwTG9jIj54bWxNZW1TdHJkdXBMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1vcnlTdHJkdXAiPnhtbE1lbW9yeVN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTGlzdCI+eG1sTmFub0ZUUExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJBZGROb2RlSW5mbyI+eG1sUGFyc2VyQWRkTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm8iPnhtbFBhcnNlckZpbmROb2RlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mb0luZGV4Ij54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NMb2MiPnhtbFJlYWxsb2NMb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmZvcm1hdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVkVSU0lPTl9FWFRSQSI+TElCWE1MX1ZFUlNJT05fRVhUUkE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI194bWxFcnJvciI+X3htbEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBBdHRyIj54bWxEZWJ1Z0R1bXBBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBBdHRyTGlzdCI+eG1sRGVidWdEdW1wQXR0ckxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERURCI+eG1sRGVidWdEdW1wRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudCI+eG1sRGVidWdEdW1wRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERvY3VtZW50SGVhZCI+eG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBFbnRpdGllcyI+eG1sRGVidWdEdW1wRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE5vZGUiPnhtbERlYnVnRHVtcE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE5vZGVMaXN0Ij54bWxEZWJ1Z0R1bXBOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wT25lTm9kZSI+eG1sRGVidWdEdW1wT25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIj54bWxOYW5vSFRUUEZldGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiI+eG1sTmFub0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxOZXdUZXh0UmVhZGVyIj54bWxOZXdUZXh0UmVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPcmRlckRvY0VsZW1zIj54bWxYUGF0aE9yZGVyRG9jRWxlbXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmZvcm1hdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEF0dHIiPl94bWxBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vZGUiPl94bWxOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW5kRWxlbWVudE5zU0FYMkZ1bmMiPmVuZEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50TnNTQVgyRnVuYyI+c3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wU3RyaW5nIj54bWxEZWJ1Z0R1bXBTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFcnJNZW1vcnkiPnhtbEVyck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xlYW51cCI+eG1sTmFub0ZUUENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEluaXQiPnhtbE5hbm9GVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQSW5pdCI+eG1sTmFub0hUVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclByaW50RmlsZUluZm8iPnhtbFBhcnNlclByaW50RmlsZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhQYXJzZXJTZXRGbGFnIj54bWxSZWxheFBhcnNlclNldEZsYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnROcyI+eG1sU0FYMkVuZEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50TnMiPnhtbFNBWDJTdGFydEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMiPnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbERpciI+eG1sU2hlbGxEaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc05vZGUiPnhtbFhJbmNsdWRlUHJvY2Vzc05vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmZvcm1hdGl2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmZvczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmluaGVyaXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QXR0cmlidXRlIj54bWxYUGF0aE5leHRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmhlcml0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RDcmVhdGVTdWIiPnhtbERpY3RDcmVhdGVTdWI8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmhlcml0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGlsZCI+eG1sTmV3Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbml0aWFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUF0dHJpYnV0ZSI+X3htbFNjaGVtYUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFHZXRJbml0U3RhdGUiPnhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZVNpemUiPnhtbEJ1ZmZlckNyZWF0ZVNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0Tm9kZUluZm9TZXEiPnhtbEluaXROb2RlSW5mb1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVJlYWxsb2MiPnhtbE1lbVJlYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1TdHJkdXBMb2MiPnhtbE1lbVN0cmR1cExvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbW9yeVN0cmR1cCI+eG1sTWVtb3J5U3RyZHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0xvYyI+eG1sUmVhbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRBZGQiPnhtbFhQYXRoTm9kZVNldEFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkTnMiPnhtbFhQYXRoTm9kZVNldEFkZE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUiPnhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0Q3JlYXRlIj54bWxYUGF0aE5vZGVTZXRDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRSZW1vdmUiPnhtbFhQYXRoTm9kZVNldFJlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0QWRkIj54bWxYUHRyTG9jYXRpb25TZXRBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldENyZWF0ZSI+eG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXREZWwiPnhtbFhQdHJMb2NhdGlvblNldERlbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlIj54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbml0aWFsaXNhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxJbml0R2xvYmFscyI+eG1sSW5pdEdsb2JhbHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbml0aWFsaXphdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxJbml0aWFsaXplQ2F0YWxvZyI+eG1sSW5pdGlhbGl6ZUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyI+eG1sTG9hZENhdGFsb2dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWERlZmF1bHRWZXJzaW9uIj54bWxTQVhEZWZhdWx0VmVyc2lvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmluaXRpYWxpemU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfQ09NUExFVEVfQVRUUlMiPlhNTF9DT01QTEVURV9BVFRSUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9ERVRFQ1RfSURTIj5YTUxfREVURUNUX0lEUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9TS0lQX0lEUyI+WE1MX1NLSVBfSURTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jTm9EdEQiPmh0bWxOZXdEb2NOb0R0RDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTmV3UGFyc2VyQ3R4dCI+aHRtbE5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENyZWF0ZUVudGl0aWVzVGFibGUiPnhtbENyZWF0ZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENyZWF0ZUVudW1lcmF0aW9uIj54bWxDcmVhdGVFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxJbml0VGhyZWFkcyI+eG1sSW5pdFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlIj54bWxJbml0aWFsaXplR2xvYmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUE5ld0N0eHQiPnhtbE5hbm9GVFBOZXdDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld1BhcnNlckN0eHQiPnhtbE5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldCI+eG1sWFBhdGhOZXdOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld05vZGVTZXRMaXN0Ij54bWxYUGF0aE5ld05vZGVTZXRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1ZhbHVlVHJlZSI+eG1sWFBhdGhOZXdWYWx1ZVRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQiPnhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIj54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlczwvYT48YnIgLz4KKzwvZGQ+PGR0PmluaXRpYWxpemVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NBWDJfTUFHSUMiPlhNTF9TQVgyX01BR0lDPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5pdGlhbGl6ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcE5ld0N0eHQiPnhtbERPTVdyYXBOZXdDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+aW5pdGlhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PmluaXRpYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbnRleHQiPnhtbFhQdHJOZXdDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+aW5saW5lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbmxpbmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbnB1dHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbnNlbnNpdGl2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sUGFyc2VDaGFyRW5jb2RpbmciPnhtbFBhcnNlQ2hhckVuY29kaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5zZXJ0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0Pmluc2VydGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkU2libGluZyI+eG1sQWRkU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZXBsYWNlTm9kZSI+eG1sUmVwbGFjZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5zZXJ0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxIYW5kbGVPbWl0dGVkRWxlbSI+aHRtbEhhbmRsZU9taXR0ZWRFbGVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0Pmluc3BlY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGVidWdEdW1wT2JqZWN0Ij54bWxYUGF0aERlYnVnRHVtcE9iamVjdDwvYT48YnIgLz4KKzwvZGQ+PGR0Pmluc3RhY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jIj54bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbnN0YWxsZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFNpemUiPnhtbERpY3RTaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTaXplIj54bWxIYXNoU2l6ZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pmluc3RhbmNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2UiPnhtbFJlbGF4TkdQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZSI+eG1sU2NoZW1hUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlIj54bWxTY2hlbWF0cm9uUGFyc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbnN0ZWFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwiPlhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGQiPnhtbEFkZENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbGVtZW50Q29udGVudCI+eG1sQ29weUVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1NldFJvb3RFbGVtZW50Ij54bWxEb2NTZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVsZW1lbnRDb250ZW50Ij54bWxGcmVlRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhciI+eG1sSXNCYXNlQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rIj54bWxJc0JsYW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ2hhciI+eG1sSXNDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ29tYmluaW5nIj54bWxJc0NvbWJpbmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0Ij54bWxJc0RpZ2l0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXIiPnhtbElzRXh0ZW5kZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpYyI+eG1sSXNJZGVvZ3JhcGhpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhciI+eG1sSXNQdWJpZENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MiPnhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZURvYyI+eG1sU2F2ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVHJlZSI+eG1sU2F2ZVRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIj54bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW5zdHJ1Y3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfUElfTk9ERSI+SFRNTF9QSV9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcHJvY2Vzc2luZ0luc3RydWN0aW9uIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1BJIj54bWxOZXdEb2NQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdQSSI+eG1sTmV3UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbiI+eG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pmluc3VmZmljaWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+aW50YWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSYXciPnhtbFBhcnNlVVJJUmF3PC9hPjxiciAvPgorPC9kZD48ZHQ+aW50ZWdlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXNlY21wIj54bWxTdHJjYXNlY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY21wIj54bWxTdHJjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2FzZWNtcCI+eG1sU3RybmNhc2VjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY21wIj54bWxTdHJuY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENlaWxpbmdGdW5jdGlvbiI+eG1sWFBhdGhDZWlsaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRmxvb3JGdW5jdGlvbiI+eG1sWFBhdGhGbG9vckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJvdW5kRnVuY3Rpb24iPnhtbFhQYXRoUm91bmRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmludGVuZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUiPnhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW50ZW5zaXZlbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+aW50ZXJhY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsSUQiPnhtbFBhcnNlRXh0ZXJuYWxJRDwvYT48YnIgLz4KKzwvZGQ+PGR0PmludGVyZmFjZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfUEFUVEVSTl9FTkFCTEVEIj5MSUJYTUxfUEFUVEVSTl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9SRUFERVJfRU5BQkxFRCI+TElCWE1MX1JFQURFUl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQVgxX0VOQUJMRUQiPkxJQlhNTF9TQVgxX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1dSSVRFUl9FTkFCTEVEIj5MSUJYTUxfV1JJVEVSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jdW1lbnQiPmRvY2JQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZURvY3VtZW50Ij5odG1sUGFyc2VEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRG9jdW1lbnQiPnhtbFBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVJlZmVyZW5jZSI+eG1sUGFyc2VSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmludGVyZmFjZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQiPkxJQlhNTF9BVVRPTUFUQV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9FWFBSX0VOQUJMRUQiPkxJQlhNTF9FWFBSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX01PRFVMRVNfRU5BQkxFRCI+TElCWE1MX01PRFVMRVNfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfUFVTSF9FTkFCTEVEIj5MSUJYTUxfUFVTSF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9SRUdFWFBfRU5BQkxFRCI+TElCWE1MX1JFR0VYUF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQ0hFTUFTX0VOQUJMRUQiPkxJQlhNTF9TQ0hFTUFTX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCI+TElCWE1MX1NDSEVNQVRST05fRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVU5JQ09ERV9FTkFCTEVEIj5MSUJYTUxfVU5JQ09ERV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUiPnhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOU0RlZiI+eG1sTmFtZXNwYWNlUGFyc2VOU0RlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiPnhtbE5hbWVzcGFjZVBhcnNlUU5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbnRlcm48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmciPnhtbFRleHRSZWFkZXJDb25zdFN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmludGVybmFsbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmciPnhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3Q3R4dCI+eG1sRXhwTmV3Q3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFJlbW92ZUlEIj54bWxSZW1vdmVJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlUmVmIj54bWxSZW1vdmVSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGaWxlIj54bWxTY2hlbWFWYWxpZGF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmludGVybmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFN0cmluZyI+eG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+aW50ZXJuaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlOb2RlTGlzdCI+eG1sQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1BJIj54bWxOZXdQSTwvYT48YnIgLz4KKzwvZGQ+PGR0PmludGVyb3BlcmFiaWxpdHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+aW50ZXJwcmVzdGF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+aW50ZXJwcmV0ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQXhpc0Z1bmMiPnhtbFhQYXRoQXhpc0Z1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbnRlcnNlY3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSW50ZXJzZWN0aW9uIj54bWxYUGF0aEludGVyc2VjdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmludmFsaWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEIj5YTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPjxiciAvPgorPC9kZD48ZHQ+aW52aXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5pbnZva2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRMaW5lTm8iPnhtbEdldExpbmVObzwvYT48YnIgLz4KKzwvZGQ+PGR0PmlzaW5mPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzSW5mIj54bWxYUGF0aElzSW5mPC9hPjxiciAvPgorPC9kZD48ZHQ+aXNuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmlzbmFuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzTmFOIj54bWxYUGF0aElzTmFOPC9hPjxiciAvPgorPC9kZD48ZHQ+aXNzdWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzwvZGQ+PGR0Pmlzc3VlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPC9kZD48ZHQ+aXRlbTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFIj5YTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEIj5YTUxfU0NIRU1BU19UWVBFX01BUktFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkiPnhtbEhhc2hSZW1vdmVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkyIj54bWxIYXNoUmVtb3ZlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTMiPnhtbEhhc2hSZW1vdmVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5Ij54bWxIYXNoVXBkYXRlRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MiI+eG1sSGFzaFVwZGF0ZUVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkzIj54bWxIYXNoVXBkYXRlRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBEZWxlIj54bWxOYW5vRlRQRGVsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlIj54bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0SXRlbSI+eG1sWFBhdGhOb2RlU2V0SXRlbTwvYT48YnIgLz4KKzwvZGQ+PGR0Pml0ZW1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVB1c2giPnZhbHVlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ29weSI+eG1sSGFzaENvcHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEZyZWUiPnhtbEhhc2hGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuIj54bWxIYXNoU2NhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbjMiPnhtbEhhc2hTY2FuMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwiPnhtbEhhc2hTY2FuRnVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5pdHNlbGY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jRmlyc3RMaW5lIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiPnhtbFhQYXRoTmV4dFNlbGY8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTguaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMTguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWZhZDVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxOC5odG1sCkBAIC0wLDAgKzEsNDQ1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IGotbCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggai1sIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIGo6PC9oMj48ZGw+PGR0Pmp1c3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERPTVdyYXBDdHh0Ij5feG1sRE9NV3JhcEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTZXRNZXRhRW5jb2RpbmciPmh0bWxTZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFBvcCI+aW5wdXRQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNuYW1lUG9wIj5uYW1lUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVBvcCI+bm9kZVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjdmFsdWVQb3AiPnZhbHVlUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbnVtZXJhdGlvbiI+eG1sQ29weUVudW1lcmF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxDcmVhdGVFbnRpdGllc1RhYmxlIj54bWxDcmVhdGVFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDcmVhdGVFbnVtZXJhdGlvbiI+eG1sQ3JlYXRlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEhhbmRsZUVudGl0eSI+eG1sSGFuZGxlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBJbml0Ij54bWxOYW5vRlRQSW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBJbml0Ij54bWxOYW5vSFRUUEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFNucHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIj54bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5ld0NvbnRleHQiPnhtbFhQYXRoTmV3Q29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0Ij54bWxYUGF0aE5ld1BhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiPnhtbFhQYXRoTmV4dFNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIGs6PC9oMj48ZGw+PGR0PmtlZXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0R3JvdyI+eG1sUGFyc2VySW5wdXRHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCI+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVzZXJ2ZSI+eG1sVGV4dFJlYWRlclByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0TmFtZXNwYWNlIj54bWxYUGF0aE5leHROYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5rZWVwczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5rZXB0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdXRvQ2xvc2VUYWciPmh0bWxBdXRvQ2xvc2VUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbGVtZW50Ij5odG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzwvZGQ+PGR0PmtleXdvcmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+a2lsbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCN4bWxDaGVja1ZlcnNpb24iPnhtbENoZWNrVmVyc2lvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmtpbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIj5feG1sU2NoZW1hQXR0cmlidXRlR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUVsZW1lbnQiPl94bWxTY2hlbWFFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFGYWNldCI+X3htbFNjaGVtYUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFOb3RhdGlvbiI+X3htbFNjaGVtYU5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlIj5feG1sU2NoZW1hVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hV2lsZGNhcmQiPl94bWxTY2hlbWFXaWxkY2FyZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pmtub3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCNCQURfQ0FTVCI+QkFEX0NBU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pmtub3dsZWRnZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXR0ckFsbG93ZWQiPmh0bWxBdHRyQWxsb3dlZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pmtub3duPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIiPnhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVJT1BhcnNlckN0eHQiPnhtbENyZWF0ZUlPUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbElPUGFyc2VEVEQiPnhtbElPUGFyc2VEVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxOZXdJT0lucHV0U3RyZWFtIj54bWxOZXdJT0lucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgbDo8L2gyPjxkbD48ZHQ+bGFiZWxlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0UGFyc2VkRW50Ij54bWxQYXJzZUV4dFBhcnNlZEVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5sYWNrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyI+eG1sTWFsbG9jQXRvbWljTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jTG9jIj54bWxNYWxsb2NMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1NYWxsb2MiPnhtbE1lbU1hbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVJlYWxsb2MiPnhtbE1lbVJlYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jTG9jIj54bWxSZWFsbG9jTG9jPC9hPjxiciAvPgorPC9kZD48ZHQ+bGFuZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0TGFuZyI+eG1sTm9kZUdldExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxhbmd1YWdlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0TGFuZyI+eG1sTm9kZVNldExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxhbmd1YWdlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3Vic3VtZSI+eG1sRXhwU3Vic3VtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxhcmdlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5sYXJnZXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZsb29yRnVuY3Rpb24iPnhtbFhQYXRoRmxvb3JGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmxhdGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeSI+eG1sSGFzaEFkZEVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTIiPnhtbEhhc2hBZGRFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MyI+eG1sSGFzaEFkZEVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIj54bWxIYXNoVXBkYXRlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbE5ld0VudGl0eSI+eG1sTmV3RW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxhdGVzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZXR1cm5Db2RlIj54bWxOYW5vSFRUUFJldHVybkNvZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5sYXllcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZHJlbk5vZGUiPnhtbENoaWxkcmVuTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEluaXRNZW1vcnkiPnhtbEluaXRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENsZWFudXAiPnhtbE5hbm9GVFBDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBJbml0Ij54bWxOYW5vRlRQSW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDbGVhbnVwIj54bWxOYW5vSFRUUENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQSW5pdCI+eG1sTmFub0hUVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJvb3ROb2RlIj54bWxSb290Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZVRvIj54bWxTYXZlRmlsZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlVG8iPnhtbFNhdmVGb3JtYXRGaWxlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1ZyI+eG1sU2NoZW1hU0FYUGx1ZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhVbnBsdWciPnhtbFNjaGVtYVNBWFVucGx1ZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmxlYWRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uVHlwZSI+eG1sUGFyc2VOb3RhdGlvblR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nIj54bWxYUGF0aExlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nIj54bWxYUGF0aE5vZGVMZWFkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIj54bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIj54bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bGVhazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPC9kZD48ZHQ+bGVhc3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbERldGVjdENoYXJFbmNvZGluZyI+eG1sRGV0ZWN0Q2hhckVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bGVmdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld09yIj54bWxFeHBOZXdPcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1NlcSI+eG1sRXhwTmV3U2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmxlZ2FjeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVN0YXR1cyI+aHRtbE5vZGVTdGF0dXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5sZW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkIj54bWxCdWZmZXJBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkSGVhZCI+eG1sQnVmZmVyQWRkSGVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXJTdHJuZHVwIj54bWxDaGFyU3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFN0cmluZ0Rlcml2ZSI+eG1sRXhwU3RyaW5nRGVyaXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jVGV4dExlbiI+eG1sTmV3RG9jVGV4dExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0TGVuIj54bWxOZXdUZXh0TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUzIj54bWxTcGxpdFFOYW1lMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXQiPnhtbFN0cm5jYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0TmV3Ij54bWxTdHJuY2F0TmV3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmR1cCI+eG1sU3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJuZHVwIj54bWxVVEY4U3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxlbmdodDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldExhbmd1YWdlIj54bWxFeHBHZXRMYW5ndWFnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldFN0YXJ0Ij54bWxFeHBHZXRTdGFydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0F0b20iPnhtbEV4cE5ld0F0b208L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIj54bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTMiPnhtbFNwbGl0UU5hbWUzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5sZW5ndGgtMTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0SXRlbSI+eG1sWFBhdGhOb2RlU2V0SXRlbTwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxlc3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9GaWxlbmFtZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIj54bWxYUGF0aENlaWxpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5sZXNzLXRoYW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5sZXZlbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMIj5YTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWJ1ZyI+eG1sQ2F0YWxvZ1NldERlYnVnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sQ2xlYW51cE1lbW9yeSI+eG1sQ2xlYW51cE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ciI+eG1sRGVidWdEdW1wQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ckxpc3QiPnhtbERlYnVnRHVtcEF0dHJMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlIj54bWxEZWJ1Z0R1bXBOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlTGlzdCI+eG1sRGVidWdEdW1wTm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE9uZU5vZGUiPnhtbERlYnVnRHVtcE9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXAiPnhtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wT3V0cHV0Ij54bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbk51bSI+eG1sUGFyc2VWZXJzaW9uTnVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUG9wIj54bWxTdHJlYW1Qb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIiPnhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGVidWdEdW1wT2JqZWN0Ij54bWxYUGF0aERlYnVnRHVtcE9iamVjdDwvYT48YnIgLz4KKzwvZGQ+PGR0PmxleGljYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSI+eG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5DTmFtZSI+eG1sVmFsaWRhdGVOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOTVRva2VuIj54bWxWYWxpZGF0ZU5NVG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOYW1lIj54bWxWYWxpZGF0ZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVRTmFtZSI+eG1sVmFsaWRhdGVRTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpYjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCN4bWxDaGVja1ZlcnNpb24iPnhtbENoZWNrVmVyc2lvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpYmM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCNERUJVR19NRU1PUlkiPkRFQlVHX01FTU9SWTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpYnJhcmllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfTU9EVUxFX0VYVEVOU0lPTiI+TElCWE1MX01PRFVMRV9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HSW5pdFR5cGVzIj54bWxSZWxheE5HSW5pdFR5cGVzPC9hPjxiciAvPgorPC9kZD48ZHQ+bGlicmFyeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYSI+X3htbFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbENsZWFudXBNZW1vcnkiPnhtbENsZWFudXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sSW5pdFRocmVhZHMiPnhtbEluaXRUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbEluaXRpYWxpemVHbG9iYWxTdGF0ZSI+eG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbExvY2tMaWJyYXJ5Ij54bWxMb2NrTGlicmFyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUZyZWUiPnhtbE1vZHVsZUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcGVuIj54bWxNb2R1bGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0NsZWFudXBUeXBlcyI+eG1sUmVsYXhOR0NsZWFudXBUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDbGVhbnVwVHlwZXMiPnhtbFNjaGVtYUNsZWFudXBUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUZyZWVWYWx1ZSI+eG1sU2NoZW1hRnJlZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSW5pdFR5cGVzIj54bWxTY2hlbWFJbml0VHlwZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sVW5sb2NrTGlicmFyeSI+eG1sVW5sb2NrTGlicmFyeTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpYnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5saWJ4bWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCNERUJVR19NRU1PUlkiPkRFQlVHX01FTU9SWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVEVTVF9WRVJTSU9OIj5MSUJYTUxfVEVTVF9WRVJTSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtU2V0dXAiPnhtbEdjTWVtU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1TZXR1cCI+eG1sTWVtU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MiPnhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50WFBhdGhFcnJvciI+eG1sU2hlbGxQcmludFhQYXRoRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEZyZWVOcyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9hPjxiciAvPgorPC9kZD48ZHQ+bGlieG1sMTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZHJlbk5vZGUiPnhtbENoaWxkcmVuTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSb290Tm9kZSI+eG1sUm9vdE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5saWJ4bWwyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sRnJlZU11dGV4Ij54bWxGcmVlTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sSW5pdFRocmVhZHMiPnhtbEluaXRUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbExvY2tMaWJyYXJ5Ij54bWxMb2NrTGlicmFyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleExvY2siPnhtbE11dGV4TG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFVubG9jayI+eG1sTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3TXV0ZXgiPnhtbE5ld011dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleExvY2siPnhtbFJNdXRleExvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4VW5sb2NrIj54bWxSTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sVW5sb2NrTGlicmFyeSI+eG1sVW5sb2NrTGlicmFyeTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpZmV0aW1lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sQnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dE5iQ29ucyI+eG1sRXhwQ3R4dE5iQ29uczwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxpa2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSX0NIIj5JU19DSEFSX0NIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVRfQ0giPklTX0RJR0lUX0NIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVJfQ0giPklTX0VYVEVOREVSX0NIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfTEVUVEVSX0NIIj5JU19MRVRURVJfQ0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FUVFJfRk9STUFUIj5MSUJYTUxfQVRUUl9GT1JNQVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RPVFRFRF9WRVJTSU9OIj5MSUJYTUxfRE9UVEVEX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1RSRUVfRU5BQkxFRCI+TElCWE1MX1RSRUVfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQU2NhblByb3h5Ij54bWxOYW5vRlRQU2NhblByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sUGFyc2VDYXRhbG9nRmlsZSI+eG1sUGFyc2VDYXRhbG9nRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMaXN0Ij54bWxTaGVsbExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxpa2VseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5saW1pdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0ZpcnN0TGluZSI+eG1sQ2hhckVuY0ZpcnN0TGluZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuTWF4RGVwdGgiPnhtbFBhdHRlcm5NYXhEZXB0aDwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpbWl0YXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX1RFWFRfTEVOR1RIIj5YTUxfTUFYX1RFWFRfTEVOR1RIPC9hPjxiciAvPgorPC9kZD48ZHQ+bGltaXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+bGluZWFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlMb29rdXAiPmh0bWxFbnRpdHlMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eVZhbHVlTG9va3VwIj5odG1sRW50aXR5VmFsdWVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpbmtlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hQXR0cmlidXRlTGluayI+X3htbFNjaGVtYUF0dHJpYnV0ZUxpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUZhY2V0TGluayI+X3htbFNjaGVtYUZhY2V0TGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZUxpbmsiPl94bWxTY2hlbWFUeXBlTGluazwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxpbmtpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rSXNMaW5rIj54bGlua0lzTGluazwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpbmtzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI2Z0cExpc3RDYWxsYmFjayI+ZnRwTGlzdENhbGxiYWNrPC9hPjxiciAvPgorPC9kZD48ZHQ+bGlzdGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTGlzdCI+eG1sTmFub0ZUUExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTGlzdCI+eG1sU2hlbGxMaXN0PC9hPjxiciAvPgorPC9kZD48ZHQ+bGlzdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfQ09NUExFVEVfQVRUUlMiPlhNTF9DT01QTEVURV9BVFRSUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PmxpdGVyYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQdWJpZExpdGVyYWwiPnhtbFBhcnNlUHViaWRMaXRlcmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+bG9hZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbExvYWRFeHRlcm5hbEVudGl0eSI+eG1sTG9hZEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIj54bWxOYW5vSFRUUEZldGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiI+eG1sTmFub0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbCI+eG1sU2hlbGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTG9hZCI+eG1sU2hlbGxMb2FkPC9hPjxiciAvPgorPC9kZD48ZHQ+bG9hZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+bG9hZGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyI+eG1sTG9hZENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2dzIj54bWxMb2FkQ2F0YWxvZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlJlc29sdmVFbnRpdHkiPnhtbFNBWDJSZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+bG9hZGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmxvYWRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc0lEIj54bWxJc0lEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMb2FkIj54bWxTaGVsbExvYWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5sb2FkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMb2FkIj54bWxTaGVsbExvYWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5sb2Fkc3Vic2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0NPTVBMRVRFX0FUVFJTIj5YTUxfQ09NUExFVEVfQVRUUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVURUNUX0lEUyI+WE1MX0RFVEVDVF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzwvZGQ+PGR0PmxvY2FsLW5hbWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24iPnhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5sb2NhbG5hbWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnROcyI+eG1sU0FYMlN0YXJ0RWxlbWVudE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUUVxdWFsIj54bWxTdHJRRXF1YWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5sb2NhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEZlYXR1cmUiPnhtbEdldEZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRmV0Y2giPnhtbE5hbm9IVFRQRmV0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiI+eG1sTmFub0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0RmVhdHVyZSI+eG1sU2V0RmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsb2MiPnhtbFVURjhTdHJsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldEFkZCI+eG1sWFB0ckxvY2F0aW9uU2V0QWRkPC9hPjxiciAvPgorPC9kZD48ZHQ+bG9jYXRpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCNfeG1sTG9jYXRpb25TZXQiPl94bWxMb2NhdGlvblNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PmxvY2F0b3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzZXREb2N1bWVudExvY2F0b3IiPnNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTZXREb2N1bWVudExvY2F0b3IiPnhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PmxvY2F0b3JzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+PGJyIC8+Cis8L2RkPjxkdD5sb2NrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbExvY2tMaWJyYXJ5Ij54bWxMb2NrTGlicmFyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleExvY2siPnhtbE11dGV4TG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdSTXV0ZXgiPnhtbE5ld1JNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXhMb2NrIj54bWxSTXV0ZXhMb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFVubG9ja0xpYnJhcnkiPnhtbFVubG9ja0xpYnJhcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD5sb2dnaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jQXRvbWljTG9jIj54bWxNYWxsb2NBdG9taWNMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NMb2MiPnhtbE1hbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbU1hbGxvYyI+eG1sTWVtTWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtUmVhbGxvYyI+eG1sTWVtUmVhbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVN0cmR1cExvYyI+eG1sTWVtU3RyZHVwTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5U3RyZHVwIj54bWxNZW1vcnlTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jTG9jIj54bWxSZWFsbG9jTG9jPC9hPjxiciAvPgorPC9kZD48ZHQ+bG9uZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0JBU0VDSEFSIj5JU19CQVNFQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NPTUJJTklORyI+SVNfQ09NQklOSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVQiPklTX0RJR0lUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxEZXRlY3RDaGFyRW5jb2RpbmciPnhtbERldGVjdENoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mb0luZGV4Ij54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nIj54bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZzwvYT48YnIgLz4KKzwvZGQ+PGR0PmxvbmdlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9NQVhfTkFNRUxFTiI+WE1MX01BWF9OQU1FTEVOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24iPnhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5sb29rLWFoZWFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+bG9va2FoZWFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxvb2tlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbE5vZGVTZXQiPl94bWxOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5Gcm9tUm9vdCI+eG1sUGF0dGVybkZyb21Sb290PC9hPjxiciAvPgorPC9kZD48ZHQ+bG9va3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Tm9Oc1Byb3AiPnhtbEdldE5vTnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zUHJvcCI+eG1sR2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldFByb3AiPnhtbEdldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzTnNQcm9wIj54bWxIYXNOc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzUHJvcCI+eG1sSGFzUHJvcDwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxvb2t1cHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVURUNUX0lEUyI+WE1MX0RFVEVDVF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sUGFyc2VDYXRhbG9nRmlsZSI+eG1sUGFyc2VDYXRhbG9nRmlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxvb3A8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+bG9vcHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5sb3NzbGVzczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pmxvd2VyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+bG93ZXJjYXNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxUYWdMb29rdXAiPmh0bWxUYWdMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzUmVmIj54bWxJc1JlZjwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxOS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsxOS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNjQ1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazE5Lmh0bWwKQEAgLTAsMCArMSwzNjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+QVBJIEFscGhhYmV0aWMgSW5kZXggbS1tIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BUEkgQWxwaGFiZXRpYyBJbmRleCBtLW0gZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxoMj5MZXR0ZXIgbTo8L2gyPjxkbD48ZHQ+bWFjaGluZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2hlY2tGaWxlbmFtZSI+eG1sQ2hlY2tGaWxlbmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hY3JvPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlIj54bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uIj54bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5tYWRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9JU084ODU5WF9FTkFCTEVEIj5MSUJYTUxfSVNPODg1OVhfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYWluPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbElzTWFpblRocmVhZCI+eG1sSXNNYWluVGhyZWFkPC9hPjxiciAvPgorPC9kZD48ZHQ+bWFpbnRhaW5lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlSUQiPnhtbFJlbW92ZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxSZW1vdmVSZWYiPnhtbFJlbW92ZVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPjxiciAvPgorPC9kZD48ZHQ+bWFqb3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYWtlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxDcmVhdGVFbnRpdGllc1RhYmxlIj54bWxDcmVhdGVFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGUiPnhtbE5ld05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUNsb3NlIj54bWxTYXZlQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUZsdXNoIj54bWxTYXZlRmx1c2g8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYWtlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyI+eG1sTG9hZENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2dzIj54bWxMb2FkQ2F0YWxvZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXhwYW5kIj54bWxUZXh0UmVhZGVyRXhwYW5kPC9hPjxiciAvPgorPC9kZD48ZHQ+bWFsbG9jPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1HZXQiPnhtbEdjTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyI+eG1sTWFsbG9jQXRvbWljTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0xvYyI+eG1sTWFsbG9jTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtR2V0Ij54bWxNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1NYWxsb2MiPnhtbE1lbU1hbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hbGxvY0F0b21pY0Z1bmM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+bWFuYWdlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlQ2hhciI+eG1sQnVmZmVyV3JpdGVDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hbmFnZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVDSEFSIj54bWxCdWZmZXJXcml0ZUNIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYW5kYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEdldFRocmVhZElkIj54bWxHZXRUaHJlYWRJZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hbmlwdWxhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPC9kZD48ZHQ+bWFuaXB1bGF0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3Q3R4dCI+eG1sRXhwTmV3Q3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZyI+eG1sTG9hZFNHTUxTdXBlckNhdGFsb2c8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYW5pcHVsYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1RSRUVfRU5BQkxFRCI+TElCWE1MX1RSRUVfRU5BQkxFRDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hbnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VySW5wdXQiPl94bWxQYXJzZXJJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRE9NV3JhcEN0eHQiPl94bWxET01XcmFwQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hcHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIj54bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRG9jVHlwZSI+eG1sVGV4dFdyaXRlcldyaXRlRG9jVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbiI+eG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bWFyazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhdCI+eG1sU3RyY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyZHVwIj54bWxTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUXVvdGVDaGFyIj54bWxUZXh0UmVhZGVyUXVvdGVDaGFyPC9hPjxiciAvPgorPC9kZD48ZHQ+bWFya2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQiPlhNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYXJrZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYXJraW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hcmtzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hcmt1cDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCI+eG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwiPnhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYXJrdXBkZWNsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEb2NUeXBlRGVjbCI+eG1sUGFyc2VEb2NUeXBlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxTdWJzZXQiPnhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hc2tlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tYXRjaGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1hdGNoZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NIRUNLX0FSSVRZIj5DSEVDS19BUklUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU1hdGNoIj54bWxGaWxlTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPRlRQTWF0Y2giPnhtbElPRlRQTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE1hdGNoIj54bWxJT0hUVFBNYXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0UGFyc2VkRW50Ij54bWxQYXJzZUV4dFBhcnNlZEVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1hdGNoIj54bWxQYXR0ZXJuTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBFeGVjIj54bWxSZWdleHBFeGVjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPjxiciAvPgorPC9kZD48ZHQ+bWF0Y2hpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZpbGVNYXRjaCI+eG1sRmlsZU1hdGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGaWxlT3BlbiI+eG1sRmlsZU9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBNYXRjaCI+eG1sSU9GVFBNYXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBPcGVuIj54bWxJT0ZUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE1hdGNoIj54bWxJT0hUVFBNYXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlbiI+eG1sSU9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ij54bWxSZWdOZXdFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1heDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoUGFyc2VyQ29udGV4dCI+X3htbFhQYXRoUGFyc2VyQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRDb21wcmVzc01vZGUiPnhtbEdldENvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXREb2NDb21wcmVzc01vZGUiPnhtbEdldERvY0NvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldERvY0NvbXByZXNzTW9kZSI+eG1sU2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhc2VjbXAiPnhtbFN0cm5jYXNlY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNtcCI+eG1sU3RybmNtcDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1heExlbmd0aDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1heGltYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlciI+eG1sQXV0b21hdGFOZXdDb3VudGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+bWF4aW11bTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE1heFRva2VuIj54bWxFeHBNYXhUb2tlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0N0eHQiPnhtbEV4cE5ld0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1heERlcHRoIj54bWxQYXR0ZXJuTWF4RGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1heWJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFFbGVtZW50Ij5feG1sU2NoZW1hRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1lYW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1pbkRlcHRoIj54bWxQYXR0ZXJuTWluRGVwdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5tZWFuczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIj54bWxFeHBOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5tZWNoYW5pc208L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwIj54bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5tZWNoYW5pc21zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIj54bWxOb2RlR2V0QmFzZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1lZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+bWVtYmVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPnhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSI+eG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5tZW1iZXItdHlwZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+bWVtbzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1lbW9yeWxpc3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5RHVtcCI+eG1sTWVtb3J5RHVtcDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1lcmdlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxUZXh0TWVyZ2UiPnhtbFRleHRNZXJnZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1lcmdpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGQiPnhtbEFkZENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkTGlzdCI+eG1sQWRkQ2hpbGRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkU2libGluZyI+eG1sQWRkU2libGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1lc3NhZ2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN3YXJuaW5nU0FYRnVuYyI+d2FybmluZ1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9yIj54bWxQYXJzZXJFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyVmFsaWRpdHlFcnJvciI+eG1sUGFyc2VyVmFsaWRpdHlFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nIj54bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlcldhcm5pbmciPnhtbFBhcnNlcldhcm5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tZXRob2Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEJ1ZmZlciI+X3htbEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2QiPnhtbE5hbm9IVFRQTWV0aG9kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNsb3NlIj54bWxUZXh0UmVhZGVyQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+bWlnaHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5taWdyYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllcyI+eG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5taW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5taW5MZW5ndGg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5taW5pbWFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXIiPnhtbEF1dG9tYXRhTmV3Q291bnRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1pbmltdW08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckdyb3ciPnhtbEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUmVzaXplIj54bWxCdWZmZXJSZXNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1pbkRlcHRoIj54bWxQYXR0ZXJuTWluRGVwdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5taW51czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1pbnV0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBMaXN0Q2FsbGJhY2siPmZ0cExpc3RDYWxsYmFjazwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1pc2M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1pc2xlYWRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1pc3Npbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5taXhlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX01JWEVEIj5YTUxfU0NIRU1BU19UWVBFX01JWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+bWl4ZWQtY29udGVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5tbWFwPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tb2Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTW9kVmFsdWVzIj54bWxYUGF0aE1vZFZhbHVlczwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1vZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEJ1ZmZlciI+X3htbEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldENvbXByZXNzTW9kZSI+eG1sR2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRDb25uZWN0aW9uIj54bWxOYW5vRlRQR2V0Q29ubmVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUmVmZXJlbmNlIj54bWxQYXJzZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHVzaCI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+bW9kZWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIj54bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsPC9hPjxiciAvPgorPC9kZD48ZHQ+bW9kaWZpZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU3RhdGljIj54bWxCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnQiPnhtbE5vZGVBZGRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50TGVuIj54bWxOb2RlQWRkQ29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+bW9kaWZpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+bW9kaWZ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbCI+eG1sU2hlbGw8L2E+PGJyIC8+Cis8L2RkPjxkdD5tb2R1bGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RFQlVHX0VOQUJMRUQiPkxJQlhNTF9ERUJVR19FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9NT0RVTEVTX0VOQUJMRUQiPkxJQlhNTF9NT0RVTEVTX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0TWF0Y2hDYWxsYmFjayI+eG1sSW5wdXRNYXRjaENhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlQ2xvc2UiPnhtbE1vZHVsZUNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlRnJlZSI+eG1sTW9kdWxlRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZU9wZW4iPnhtbE1vZHVsZU9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVTeW1ib2wiPnhtbE1vZHVsZVN5bWJvbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1vZHVsZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX01PRFVMRV9FWFRFTlNJT04iPkxJQlhNTF9NT0RVTEVfRVhURU5TSU9OPC9hPjxiciAvPgorPC9kZD48ZHQ+bW9tZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5tb250aDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBMaXN0Q2FsbGJhY2siPmZ0cExpc3RDYWxsYmFjazwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1vcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX05BTUVMRU4iPlhNTF9NQVhfTkFNRUxFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldExhbmd1YWdlIj54bWxFeHBHZXRMYW5ndWFnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldFN0YXJ0Ij54bWxFeHBHZXRTdGFydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyRXF1YWwiPnhtbFN0ckVxdWFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0Ij54bWxUZXh0UmVhZGVyTmV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWQiPnhtbFRleHRSZWFkZXJSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZSI+eG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1vcmVvdmVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPC9kZD48ZHQ+bW9zdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRGZWF0dXJlc0xpc3QiPnhtbEdldEZlYXR1cmVzTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1vdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm1vdmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQiPnhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+bXVjaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tdWx0aS10aHJlYWRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm11bHRpLXRocmVhZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxDbGVhbnVwR2xvYmFscyI+eG1sQ2xlYW51cEdsb2JhbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5pdEdsb2JhbHMiPnhtbEluaXRHbG9iYWxzPC9hPjxiciAvPgorPC9kZD48ZHQ+bXVsdGlwbGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdDdXJyZW50Q2hhciI+eG1sU3RyaW5nQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5tdWx0aXBseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNdWx0VmFsdWVzIj54bWxYUGF0aE11bHRWYWx1ZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5tdWx0aXRocmVhZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0UGFyc2VyIj54bWxJbml0UGFyc2VyPC9hPjxiciAvPgorPC9kZD48ZHQ+bXV0ZXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENsZWFudXAiPnhtbERpY3RDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVNdXRleCI+eG1sRnJlZU11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVSTXV0ZXgiPnhtbEZyZWVSTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhMb2NrIj54bWxNdXRleExvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhVbmxvY2siPnhtbE11dGV4VW5sb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld011dGV4Ij54bWxOZXdNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdSTXV0ZXgiPnhtbE5ld1JNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXhMb2NrIj54bWxSTXV0ZXhMb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFVubG9jayI+eG1sUk11dGV4VW5sb2NrPC9hPjxiciAvPgorPC9kZD48ZHQ+bXlEb2M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkZyZWVQYXJzZXJDdHh0Ij5kb2NiRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEZyZWVQYXJzZXJDdHh0Ij5odG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxGcmVlUGFyc2VyQ3R4dCI+eG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5teXByb3h5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm15cHJveHk6MzEyODwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQU2NhblByb3h5Ij54bWxOYW5vRlRQU2NhblByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMi5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY2NDU2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMi5odG1sCkBAIC0wLDAgKzEsNDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IEQtRSBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggRC1FIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIEQ6PC9oMj48ZGw+PGR0PkRFQlVHX01FTU9SWTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI0RFQlVHX01FTU9SWSI+REVCVUdfTUVNT1JZPC9hPjxiciAvPgorPC9kZD48ZHQ+REVCVUdfTUVNT1JZX0ZSRUVEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8L2RkPjxkdD5ERUJVR19NRU1PUllfTE9DQVRJT048L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCNERUJVR19NRU1PUlkiPkRFQlVHX01FTU9SWTwvYT48YnIgLz4KKzwvZGQ+PGR0PkRFTEU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUERlbGUiPnhtbE5hbm9GVFBEZWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+REVMRUdBVEU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPjxiciAvPgorPC9kZD48ZHQ+REVNTzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFB1YmxpY0lkIj5nZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0UHVibGljSWQiPnhtbFNBWDJHZXRQdWJsaWNJZDwvYT48YnIgLz4KKzwvZGQ+PGR0PkRFUFJFQ0FURUQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjaGVja05hbWVzcGFjZSI+Y2hlY2tOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXROYW1lc3BhY2UiPmdldE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dsb2JhbE5hbWVzcGFjZSI+Z2xvYmFsTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjbmFtZXNwYWNlRGVjbCI+bmFtZXNwYWNlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3NldERvY3VtZW50TG9jYXRvciI+c2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0TmFtZXNwYWNlIj5zZXROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldFB1YmxpYyI+eG1sQ2F0YWxvZ0dldFB1YmxpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0U3lzdGVtIj54bWxDYXRhbG9nR2V0U3lzdGVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmFzZUNoYXIiPnhtbElzQmFzZUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFuayI+eG1sSXNCbGFuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXIiPnhtbElzQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZyI+eG1sSXNDb21iaW5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNEaWdpdCI+eG1sSXNEaWdpdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0V4dGVuZGVyIj54bWxJc0V4dGVuZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzSWRlb2dyYXBoaWMiPnhtbElzSWRlb2dyYXBoaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXIiPnhtbElzUHViaWRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0dsb2JhbE5zIj54bWxOZXdHbG9iYWxOczwvYT48YnIgLz4KKzwvZGQ+PGR0PkRPQ1RZUEU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURvY1R5cGVEZWNsIj54bWxQYXJzZURvY1R5cGVEZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+RE9NLXdyYXBwZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEZyZWVDdHh0Ij54bWxET01XcmFwRnJlZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcE5ld0N0eHQiPnhtbERPTVdyYXBOZXdDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+RFREczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9DT01QTEVURV9BVFRSUyI+WE1MX0NPTVBMRVRFX0FUVFJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+RGF0YTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ0RTZWN0Ij54bWxQYXJzZUNEU2VjdDwvYT48YnIgLz4KKzwvZGQ+PGR0PkRhdGF0eXBlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwQ29tcGlsZSI+eG1sUmVnZXhwQ29tcGlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkRhdGF0eXBlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlIj54bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkRlYWxsb2NhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVBdHRyaWJ1dGVUYWJsZSI+eG1sRnJlZUF0dHJpYnV0ZVRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlRWxlbWVudFRhYmxlIj54bWxGcmVlRWxlbWVudFRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxGcmVlRW50aXRpZXNUYWJsZSI+eG1sRnJlZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVJRFRhYmxlIj54bWxGcmVlSURUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZU5vdGF0aW9uVGFibGUiPnhtbEZyZWVOb3RhdGlvblRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlUmVmVGFibGUiPnhtbEZyZWVSZWZUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbEZyZWVUZXh0UmVhZGVyIj54bWxGcmVlVGV4dFJlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbEZyZWVUZXh0V3JpdGVyIj54bWxGcmVlVGV4dFdyaXRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZSI+eG1sUmVsYXhOR0ZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hRnJlZSI+eG1sU2NoZW1hRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUZyZWVGYWNldCI+eG1sU2NoZW1hRnJlZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZyZWVUeXBlIj54bWxTY2hlbWFGcmVlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uRnJlZSI+eG1sU2NoZW1hdHJvbkZyZWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5EZWFsbG9jYXRlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGcmVlV2lsZGNhcmQiPnhtbFNjaGVtYUZyZWVXaWxkY2FyZDwvYT48YnIgLz4KKzwvZGQ+PGR0PkRlYnVnZ2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfREVCVUdfRU5BQkxFRCI+TElCWE1MX0RFQlVHX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0TmJDb25zIj54bWxFeHBDdHh0TmJDb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dE5iTm9kZXMiPnhtbEV4cEN0eHROYk5vZGVzPC9hPjxiciAvPgorPC9kZD48ZHQ+RGVjbGFyYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkRlY2xhcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25Vc2UiPnhtbFZhbGlkYXRlTm90YXRpb25Vc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5EZWZhdWx0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sSGFuZGxlRW50aXR5Ij54bWxIYW5kbGVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkRlZmF1bHREZWNsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCI+eG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5EZWxldGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3REZWxldGUiPnhtbExpc3REZWxldGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5EZXB0aDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjX3htbFZhbGlkQ3R4dCI+X3htbFZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PkRlcmVmZXJlbmNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRnJlZSI+eG1sRXhwRnJlZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkRlcmVnaXN0ZXJOb2RlRnVuYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PkRlc2VyZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEZXNlcmV0Ij54bWxVQ1NJc0Rlc2VyZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5EZXRlcm1pbmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxJc0Jvb2xlYW5BdHRyIj5odG1sSXNCb29sZWFuQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNSZWYiPnhtbElzUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmciPnhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbiI+eG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSI+eG1sVGV4dFJlYWRlclN0YW5kYWxvbmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5EZXZhbmFnYXJpPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzRGV2YW5hZ2FyaSI+eG1sVUNTSXNEZXZhbmFnYXJpPC9hPjxiciAvPgorPC9kZD48ZHQ+RGlmZmVyZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkRpZ2l0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVQiPklTX0RJR0lUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUiPnhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lIj54bWxQYXJzZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOQ05hbWUiPnhtbFhQYXRoUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkRpZ2l0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyIj54bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5EaWdpdHM/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkRpbmdiYXRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzRGluZ2JhdHMiPnhtbFVDU0lzRGluZ2JhdHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5EaXNwbGF5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN3YXJuaW5nU0FYRnVuYyI+d2FybmluZ1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9yIj54bWxQYXJzZXJFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyVmFsaWRpdHlFcnJvciI+eG1sUGFyc2VyVmFsaWRpdHlFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nIj54bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlcldhcm5pbmciPnhtbFBhcnNlcldhcm5pbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5EaXNwbGF5czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dCI+eG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyI+eG1sUGFyc2VyUHJpbnRGaWxlSW5mbzwvYT48YnIgLz4KKzwvZGQ+PGR0PkRvY0Jvb2s8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0Ij5kb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyIj5pbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkRvY2Jvb2s8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RPQ0JfRU5BQkxFRCI+TElCWE1MX0RPQ0JfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VGaWxlIj5kb2NiUGFyc2VGaWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+RG9jdW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYyI+eG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5RW5jIj54bWxEb2NEdW1wTWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIj54bWxOb2RlR2V0QmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZU5ld0NvbnRleHQiPnhtbFhJbmNsdWRlTmV3Q29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PkRvZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNoYXNFeHRlcm5hbFN1YnNldCI+aGFzRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2hhc0ludGVybmFsU3Vic2V0Ij5oYXNJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2hhc0ludGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoYXJJblJhbmdlIj54bWxDaGFySW5SYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMaXN0Ij54bWxTaGVsbExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5Eb3VnbGFzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5EcmFmdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkR0RDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkQXR0ckRlc2MiPnhtbEdldER0ZEF0dHJEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRFbGVtZW50RGVzYyI+eG1sR2V0RHRkRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZE5vdGF0aW9uRGVzYyI+eG1sR2V0RHRkTm90YXRpb25EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUVsZW1lbnREZXNjIj54bWxHZXREdGRRRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkIj54bWxWYWxpZGF0ZUR0ZDwvYT48YnIgLz4KKzwvZGQ+PGR0PkR0RHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rSXNMaW5rIj54bGlua0lzTGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNNaXhlZEVsZW1lbnQiPnhtbElzTWl4ZWRFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+RHRkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PkR1bXBzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckR1bXAiPnhtbEJ1ZmZlckR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ciI+eG1sRGVidWdEdW1wQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ckxpc3QiPnhtbERlYnVnRHVtcEF0dHJMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEVEQiPnhtbERlYnVnRHVtcERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRG9jdW1lbnQiPnhtbERlYnVnRHVtcERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQiPnhtbERlYnVnRHVtcERvY3VtZW50SGVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRW50aXRpZXMiPnhtbERlYnVnRHVtcEVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlIj54bWxEZWJ1Z0R1bXBOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlTGlzdCI+eG1sRGVidWdEdW1wTm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE9uZU5vZGUiPnhtbERlYnVnRHVtcE9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcFN0cmluZyI+eG1sRGVidWdEdW1wU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByIj54bWxYUGF0aERlYnVnRHVtcENvbXBFeHByPC9hPjxiciAvPgorPC9kZD48ZHQ+RHVwbGljYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeSI+eG1sSGFzaEFkZEVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTIiPnhtbEhhc2hBZGRFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MyI+eG1sSGFzaEFkZEVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RHVwIj54bWxMaXN0RHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIEU6PC9oMj48ZGw+PGR0PkVMRU1FTlQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEVsZW1lbnRDb250ZW50Ij5feG1sRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5FTVBUWTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkVOVElUSUVTPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5FTlRJVFk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRW50aXR5UmVmIj5odG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5VmFsdWUiPnhtbFBhcnNlRW50aXR5VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5FTlRJVFlfUkVGPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVCdWZHZXRDb250ZW50Ij54bWxOb2RlQnVmR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0Q29udGVudCI+eG1sTm9kZUdldENvbnRlbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5FTlRJVFlfUkVGczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGlsZCI+eG1sTmV3Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0U3RyaW5nIj54bWxOb2RlTGlzdEdldFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTdHJpbmdHZXROb2RlTGlzdCI+eG1sU3RyaW5nR2V0Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0xlbkdldE5vZGVMaXN0PC9hPjxiciAvPgorPC9kZD48ZHQ+RVRhZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbGVtZW50Ij5odG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVuZFRhZyI+eG1sUGFyc2VFbmRUYWc8L2E+PGJyIC8+Cis8L2RkPjxkdD5FWFNMVDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaWZmZXJlbmNlIj54bWxYUGF0aERpZmZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3RTb3J0ZWQiPnhtbFhQYXRoRGlzdGluY3RTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSGFzU2FtZU5vZGVzIj54bWxYUGF0aEhhc1NhbWVOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJbnRlcnNlY3Rpb24iPnhtbFhQYXRoSW50ZXJzZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciPnhtbFhQYXRoTm9kZUxlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nIj54bWxYUGF0aE5vZGVUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nIj54bWxYUGF0aFRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj54bWxYUGF0aFRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+RWxlbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0cmlidXRlIj5feG1sQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbGVtZW50Ij5feG1sRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudENvbnRlbnQiPl94bWxFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVN0YXR1cyI+aHRtbE5vZGVTdGF0dXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRmlyc3RFbGVtZW50Q2hpbGQiPnhtbEZpcnN0RWxlbWVudENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnQiPnhtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkU3RyaW5nIj54bWxUZXh0UmVhZGVyUmVhZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPC9kZD48ZHQ+RWxlbWVudFRhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxUYWdMb29rdXAiPmh0bWxUYWdMb29rdXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbXB0aWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVtcHR5Tm9kZVNldCI+eG1sWFBhdGhFbXB0eU5vZGVTZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbXB0eUVsZW1UYWc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRWxlbWVudCI+aHRtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudCI+eG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkVtcHR5RWxlbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbmNOYW1lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmNOYW1lIj54bWxQYXJzZUVuY05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVuY29kaW5nRGVjbCI+eG1sUGFyc2VFbmNvZGluZ0RlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbmNhcHN1bGF0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIj54bWxOb2RlR2V0QmFzZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkVuY2xvc2VkQWxwaGFudW1lcmljczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcyI+eG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMiPnhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzPC9hPjxiciAvPgorPC9kZD48ZHQ+RW5jb2Rpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxHZXRNZXRhRW5jb2RpbmciPmh0bWxHZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldENoYXJFbmNvZGluZ05hbWUiPnhtbEdldENoYXJFbmNvZGluZ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PkVuY29kaW5nRGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5jb2RpbmdEZWNsIj54bWxQYXJzZUVuY29kaW5nRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVGV4dERlY2wiPnhtbFBhcnNlVGV4dERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbmNvZGluZ0RlY2w/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VYTUxEZWNsIj54bWxQYXJzZVhNTERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRHRkIj5feG1sRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb2RlIj5feG1sTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZENEQVRBIj54bWxUZXh0V3JpdGVyRW5kQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kQ29tbWVudCI+eG1sVGV4dFdyaXRlckVuZENvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRFREIj54bWxUZXh0V3JpdGVyRW5kRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSI+eG1sVGV4dFdyaXRlckVuZERUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREb2N1bWVudCI+eG1sVGV4dFdyaXRlckVuZERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZFBJIj54bWxUZXh0V3JpdGVyRW5kUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PkVuZC1vZi1MaW5lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPC9kZD48ZHQ+RW5zdXJlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbnRpdGllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sUGFyc2VDaGFyRW5jb2RpbmciPnhtbFBhcnNlQ2hhckVuY29kaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+RW50aXRpZXNUYWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5TG9va3VwIj5odG1sRW50aXR5TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPjxiciAvPgorPC9kZD48ZHQ+RW50aXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3RW50aXR5SW5wdXRTdHJlYW0iPnhtbE5ld0VudGl0eUlucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVCdWZHZXRDb250ZW50Ij54bWxOb2RlQnVmR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldENvbnRlbnQiPnhtbE5vZGVHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+RW50aXR5RGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5RGVjbCI+eG1sUGFyc2VFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbnRpdHlEZWY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eURlY2wiPnhtbFBhcnNlRW50aXR5RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkVudGl0eVJlZjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUmVmZXJlbmNlIj54bWxQYXJzZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0RlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+RW50aXR5UmVmZXJlbmNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZSI+eG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkVudGl0eVZhbHVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVZhbHVlIj54bWxQYXJzZUVudGl0eVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+RW51bWVyYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRlZFR5cGUiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5FbnVtZXJhdGVkVHlwZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGVkVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGVkVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkVudW1lcmF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbnVtZXJhdGlvbiI+X3htbEVudW1lcmF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGVkVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRpb25UeXBlIj54bWxQYXJzZUVudW1lcmF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5FcXVhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clFFcXVhbCI+eG1sU3RyUUVxdWFsPC9hPjxiciAvPgorPC9kZD48ZHQ+RXNjYXBpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGUiPnhtbFVSSUVzY2FwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkV0aGlvcGljPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzRXRoaW9waWMiPnhtbFVDU0lzRXRoaW9waWM8L2E+PGJyIC8+Cis8L2RkPjxkdD5FdmFsdWF0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21waWxlZEV2YWwiPnhtbFhQYXRoQ29tcGlsZWRFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWwiPnhtbFhQYXRoRXZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsRXhwcmVzc2lvbiI+eG1sWFBhdGhFdmFsRXhwcmVzc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsUHJlZGljYXRlIj54bWxYUGF0aEV2YWxQcmVkaWNhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQiPnhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsIj54bWxYUHRyRXZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSI+eG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkV2YWx1YXRlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0Ij54bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5FdmVyeXRoaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yIj5zZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIj5zZXREb2N1bWVudExvY2F0b3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTZXREb2N1bWVudExvY2F0b3IiPnhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8L2RkPjxkdD5FeGFtaW5lczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5FeGNsdXNpdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkV4aXN0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxBZGRFbmNvZGluZ0FsaWFzIj54bWxBZGRFbmNvZGluZ0FsaWFzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIj54bWxIYXNoVXBkYXRlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8L2RkPjxkdD5FeHA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+RXhwZXJpbWVudGFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzwvZGQ+PGR0PkV4cHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIj54bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+RXhwcmVzc2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PkV4cHJlc3Npb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+RXh0ZW5kZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUiI+SVNfRVhURU5ERVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWUiPnhtbFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQYXJzZU5DTmFtZSI+eG1sWFBhdGhQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQYXJzZU5hbWUiPnhtbFhQYXRoUGFyc2VOYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+RXh0ZXJuYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbER0ZCI+X3htbER0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmUiPnhtbEFDYXRhbG9nUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlIj54bWxDYXRhbG9nUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlIj54bWxQYXJzZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRFREIj54bWxQYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEVEQiPnhtbFNBWFBhcnNlRFREPC9hPjxiciAvPgorPC9kZD48ZHQ+RXh0ZXJuYWxJRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eURlY2wiPnhtbFBhcnNlRW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvbkRlY2wiPnhtbFBhcnNlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+RXh0cmFjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNOZXh0VmFsdWVzIj54bWxSZWdFeGVjTmV4dFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nIj54bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN1YiI+eG1sU3Ryc3ViPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazIwLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM5ZGEwZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjAuaHRtbApAQCAtMCwwICsxLDMzMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBuLW4gZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IG4tbiBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBuOjwvaDI+PGRsPjxkdD5uYW1lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQWRkRW5jb2RpbmdBbGlhcyI+eG1sQWRkRW5jb2RpbmdBbGlhczwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5hbWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYSI+X3htbFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxJbml0QXV0b0Nsb3NlIj5odG1sSW5pdEF1dG9DbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEZlYXR1cmVzTGlzdCI+eG1sR2V0RmVhdHVyZXNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeSI+eG1sSGFzaEFkZEVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuMyI+eG1sSGFzaFNjYW4zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuRnVsbDMiPnhtbEhhc2hTY2FuRnVsbDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uVHlwZSI+eG1sUGFyc2VOb3RhdGlvblR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iPnhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+bmFtZXNwYWNlLWJpbmRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0UHJvcCI+eG1sU2V0UHJvcDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5hbWVzcGFjZS11cmk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24iPnhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5uYW1lc3BhY2U6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9OUyI+WElOQ0xVREVfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX09MRF9OUyI+WElOQ0xVREVfT0xEX05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5hbWVzcGFjZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hNTF9YUEFUSF9DSEVDS05TIj5YTUxfWFBBVEhfQ0hFQ0tOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hV2lsZGNhcmQiPl94bWxTY2hlbWFXaWxkY2FyZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlEb2MiPnhtbENvcHlEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGUiPnhtbENvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiI+eG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0NvcHlOb2RlIj54bWxEb2NDb3B5Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTnNMaXN0Ij54bWxGcmVlTnNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldFByb3AiPnhtbEdldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5uYW1pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ2hpbGRyZW5Ob2RlIj54bWxDaGlsZHJlbk5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUm9vdE5vZGUiPnhtbFJvb3ROb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+bmJCeXRlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbURpc3BsYXlMYXN0Ij54bWxNZW1EaXNwbGF5TGFzdDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5idmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+bmNuYW1lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1aWxkUU5hbWUiPnhtbEJ1aWxkUU5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5uZGF0YTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5lYXJlc3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldExhbmciPnhtbE5vZGVHZXRMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMYW5nRnVuY3Rpb24iPnhtbFhQYXRoTGFuZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bmVhcmx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPnhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSI+eG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5lY2Vzc2FyeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wU3RyaW5nIj54bWxEZWJ1Z0R1bXBTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5uZWVkZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eUxvb2t1cCI+aHRtbEVudGl0eUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5VmFsdWVMb29rdXAiPmh0bWxFbnRpdHlWYWx1ZUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZyI+eG1sTG9hZFNHTUxTdXBlckNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbE5ld0VudGl0eSI+eG1sTmV3RW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGVFYXROYW1lIj54bWxOZXdOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHdkIj54bWxTaGVsbFB3ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXQiPnhtbFN0cm5jYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BCb29sZWFuIj54bWxYUGF0aFBvcEJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wRXh0ZXJuYWwiPnhtbFhQYXRoUG9wRXh0ZXJuYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wTm9kZVNldCI+eG1sWFBhdGhQb3BOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcE51bWJlciI+eG1sWFBhdGhQb3BOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wU3RyaW5nIj54bWxYUGF0aFBvcFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5lZWRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+bmVlZGxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZXN0ciI+eG1sU3RyY2FzZXN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN0ciI+eG1sU3Ryc3RyPC9hPjxiciAvPgorPC9kZD48ZHQ+bmVlZHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEZyZWVOcyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9hPjxiciAvPgorPC9kZD48ZHQ+bmVnYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hV2lsZGNhcmQiPl94bWxTY2hlbWFXaWxkY2FyZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5lZ2F0aXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZzIiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cEV4ZWMiPnhtbFJlZ2V4cEV4ZWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBJc0RldGVybWluaXN0Ij54bWxSZWdleHBJc0RldGVybWluaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENtZCI+eG1sU2hlbGxDbWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIj54bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24iPnhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5laXRoZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzTnNQcm9wIj54bWxIYXNOc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzUHJvcCI+eG1sSGFzUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIj54bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCI+eG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24iPnhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbXBhcmVWYWx1ZXMiPnhtbFhQYXRoQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5lc3RlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5ldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc0luZiI+eG1sWFBhdGhJc0luZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5ldHdvcms8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRmlsZSI+aHRtbEN0eHRSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZEZpbGUiPmh0bWxSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmlsZSI+eG1sQ3R4dFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZpbGUiPnhtbFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRmlsZSI+eG1sUmVhZGVyRm9yRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0ZpbGUiPnhtbFJlYWRlck5ld0ZpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5uaWNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5pbGxhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEUiPlhNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBJc05pbGxhYmxlIj54bWxFeHBJc05pbGxhYmxlPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9kPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vZGUtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub2RlLXNldD88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24iPnhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24iPnhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5ub2RlSW5mb3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub2RlbGlzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub2RlczE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlmZmVyZW5jZSI+eG1sWFBhdGhEaWZmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9kZXMyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpZmZlcmVuY2UiPnhtbFhQYXRoRGlmZmVyZW5jZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vZGVzZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEZyZWVOcyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9kZXNldHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldE1lcmdlIj54bWxYUGF0aE5vZGVTZXRNZXJnZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX0xBWCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGlsZCI+eG1sTmV3Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQmFzZVVyaSI+eG1sVGV4dFJlYWRlckJhc2VVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyTG9jYWxOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmFtZSI+eG1sVGV4dFJlYWRlck5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpIj54bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZWZpeCI+eG1sVGV4dFJlYWRlclByZWZpeDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJYbWxMYW5nIj54bWxUZXh0UmVhZGVyWG1sTGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQYXJzZU5DTmFtZSI+eG1sWFBhdGhQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vbi1DREFUQTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vbi1OVUxMPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUVudGl0eVJlZiI+aHRtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlWYWx1ZSI+eG1sUGFyc2VFbnRpdHlWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vbi1VVEYtODwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9uLWJsYW5rPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vbi1kZXRlcm1pbmlzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjX3htbFZhbGlkQ3R4dCI+X3htbFZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vbi1lbXB0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24iPnhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9uLWZpbmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmciPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmcyIj54bWxSZWdFeGVjUHVzaFN0cmluZzI8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub24tbmVnYXRpdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub24tbm9ybWF0aXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxEZXRlY3RDaGFyRW5jb2RpbmciPnhtbERldGVjdENoYXJFbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vbi1udWxsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50Tm9kZSI+eG1sU2hlbGxQcmludE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub24tcmVjdXJzaXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+bm9uLXN0YXRlbGVzczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9uLXZhbGlkYXRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9uLXplcm88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxJc0xldHRlciI+eG1sSXNMZXR0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24iPnhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9uZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0TmFtZXNwYWNlIj5nZXROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TGFzdENoaWxkIj54bWxHZXRMYXN0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmciPnhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWx1ZUdldE5leHQiPnhtbFNjaGVtYVZhbHVlR2V0TmV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFhtbExhbmciPnhtbFRleHRSZWFkZXJDb25zdFhtbExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyWG1sTGFuZyI+eG1sVGV4dFJlYWRlclhtbExhbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU3RhdGljIj54bWxCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVpbGRRTmFtZSI+eG1sQnVpbGRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIj54bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCI+eG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24iPnhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9ybWFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub3JtYWxpemF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sTm9ybWFsaXplVVJJUGF0aCI+eG1sTm9ybWFsaXplVVJJUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub3JtYWxpemF0aW9uOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vcm1hbGl6YXRpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iPnhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+bm9ybWFsaXplPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIj54bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vcm1hbGl6ZS1zcGFjZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbiI+eG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vcm1hbGl6ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQiPlhNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5ub3JtYWxpemluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vcm1hbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOcyI+X3htbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iIj5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub3RhdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbER0ZCI+X3htbER0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5vdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbExvYWRFeHRlcm5hbEVudGl0eSI+eG1sTG9hZEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+bm90aWNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5ub3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjWE1MX0NBU1RfRlBUUiI+WE1MX0NBU1RfRlBUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFFbGVtZW50Ij5feG1sU2NoZW1hRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2Nhbk5hbWUiPnhtbFNjYW5OYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+bnMtYmluZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRQcm9wIj54bWxTZXRQcm9wPC9hPjxiciAvPgorPC9kZD48ZHQ+bnMtZGVjbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5zLXJlZmVyZW5jZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm5zRGVmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5udWxsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuMyI+eG1sSGFzaFNjYW4zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuRnVsbDMiPnhtbEhhc2hTY2FuRnVsbDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiPnhtbFNoZWxsRHU8L2E+PGJyIC8+Cis8L2RkPjxkdD5udWxsLXRlcm1pbmF0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzwvZGQ+PGR0Pm51bWJlcjo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1ZFUlNJT04iPkxJQlhNTF9WRVJTSU9OPC9hPjxiciAvPgorPC9kZD48ZHQ+bnVtYmVyPzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm51bWJlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTaXplIj54bWxVVEY4U2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhBZGRWYWx1ZXMiPnhtbFhQYXRoQWRkVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbXBhcmVWYWx1ZXMiPnhtbFhQYXRoQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXZWYWx1ZXMiPnhtbFhQYXRoRGl2VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE1vZFZhbHVlcyI+eG1sWFBhdGhNb2RWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTXVsdFZhbHVlcyI+eG1sWFBhdGhNdWx0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSb3VuZEZ1bmN0aW9uIj54bWxYUGF0aFJvdW5kRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3ViVmFsdWVzIj54bWxYUGF0aFN1YlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIj54bWxYUGF0aFZhbHVlRmxpcFNpZ248L2E+PGJyIC8+Cis8L2RkPjxkdD5udW1lcmljPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEFkZFZhbHVlcyI+eG1sWFBhdGhBZGRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGl2VmFsdWVzIj54bWxYUGF0aERpdlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNb2RWYWx1ZXMiPnhtbFhQYXRoTW9kVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE11bHRWYWx1ZXMiPnhtbFhQYXRoTXVsdFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJWYWx1ZXMiPnhtbFhQYXRoU3ViVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFZhbHVlRmxpcFNpZ24iPnhtbFhQYXRoVmFsdWVGbGlwU2lnbjwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyMS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMTRjOGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazIxLmh0bWwKQEAgLTAsMCArMSwzOTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+QVBJIEFscGhhYmV0aWMgSW5kZXggby1vIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BUEkgQWxwaGFiZXRpYyBJbmRleCBvLW8gZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxoMj5MZXR0ZXIgbzo8L2gyPjxkbD48ZHQ+b2JqZWN0PzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOdW1iZXJGdW5jdGlvbiI+eG1sWFBhdGhOdW1iZXJGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9iamVjdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGl2VmFsdWVzIj54bWxYUGF0aERpdlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFcXVhbFZhbHVlcyI+eG1sWFBhdGhFcXVhbFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlTm9kZVNldExpc3QiPnhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIj54bWxYUGF0aE5vdEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+b2JqZWN0czo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQWRkVmFsdWVzIj54bWxYUGF0aEFkZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTW9kVmFsdWVzIj54bWxYUGF0aE1vZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNdWx0VmFsdWVzIj54bWxYUGF0aE11bHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3ViVmFsdWVzIj54bWxYUGF0aFN1YlZhbHVlczwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9ibGlnYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9ic29sZXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCI+eG1sTm9ybWFsaXplV2luZG93c1BhdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5vYnNvbGV0ZTo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTCI+WE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9jY3VwaWVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ2Fub25pY1BhdGgiPnhtbENhbm9uaWNQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGF0aFRvVVJJIj54bWxQYXRoVG9VUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5vY2N1cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb21tZW50Ij54bWxQYXJzZUNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9jY3VyZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEN0eHRHZXRMYXN0RXJyb3IiPnhtbEN0eHRHZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZSI+eG1sRGljdENyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Q3JlYXRlU3ViIj54bWxEaWN0Q3JlYXRlU3ViPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxHZXRMYXN0RXJyb3IiPnhtbEdldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ3JlYXRlIj54bWxIYXNoQ3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDcmVhdGVEaWN0Ij54bWxIYXNoQ3JlYXRlRGljdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmVtb3ZlRmlyc3QiPnhtbExpc3RSZW1vdmVGaXJzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmVtb3ZlTGFzdCI+eG1sTGlzdFJlbW92ZUxhc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+b2NjdXJlbmNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8L2RkPjxkdD5vY2N1cnJlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVN0cmR1cExvYyI+eG1sTWVtU3RyZHVwTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5U3RyZHVwIj54bWxNZW1vcnlTdHJkdXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5vY2N1cnJlbmNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZXN0ciI+eG1sU3RyY2FzZXN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNociI+eG1sU3RyY2hyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3RyIj54bWxTdHJzdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJzdWIiPnhtbFN0cnN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5vY2N1cnJlbmNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbiI+eG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9jY3VyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbE5vcm1hbGl6ZVVSSVBhdGgiPnhtbE5vcm1hbGl6ZVVSSVBhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJQcmludGYiPnhtbFN0clByaW50ZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clZQcmludGYiPnhtbFN0clZQcmludGY8L2E+PGJyIC8+Cis8L2RkPjxkdD5vY3RldHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjVVRGOFRvSHRtbCI+VVRGOFRvSHRtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW5jb2RlRW50aXRpZXMiPmh0bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjaXNvbGF0MVRvVVRGOCI+aXNvbGF0MVRvVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5vZjo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5vZmY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Tm9Oc1Byb3AiPnhtbEdldE5vTnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zUHJvcCI+eG1sR2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldFByb3AiPnhtbEdldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzTnNQcm9wIj54bWxIYXNOc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzUHJvcCI+eG1sSGFzUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbExpbmVOdW1iZXJzRGVmYXVsdCI+eG1sTGluZU51bWJlcnNEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5va2F5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+b2xkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnbG9iYWxOYW1lc3BhY2UiPmdsb2JhbE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0Q29weSI+eG1sTGlzdENvcHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVwbGFjZU5vZGUiPnhtbFJlcGxhY2VOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRCb29sZWFuIj54bWxYUGF0aENvbnZlcnRCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnROdW1iZXIiPnhtbFhQYXRoQ29udmVydE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0U3RyaW5nIj54bWxYUGF0aENvbnZlcnRTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5vbGROczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+b2xkZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1NBWDFfRU5BQkxFRCI+TElCWE1MX1NBWDFfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9taXR0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEhhbmRsZU9taXR0ZWRFbGVtIj5odG1sSGFuZGxlT21pdHRlZEVsZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24iPnhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24iPnhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5vbmNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdFBhcnNlciI+eG1sSW5pdFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxJbml0aWFsaXplQ2F0YWxvZyI+eG1sSW5pdGlhbGl6ZUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyI+eG1sTG9hZENhdGFsb2dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEkiPnhtbFBhcnNlUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnREb2MiPnhtbFRleHRSZWFkZXJDdXJyZW50RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlIj54bWxUZXh0UmVhZGVyUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIj54bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5vbmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0NPTVBMRVRFX0FUVFJTIj5YTUxfQ09NUExFVEVfQVRUUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dDb252ZXJ0Ij54bWxDYXRhbG9nQ29udmVydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDb252ZXJ0U0dNTENhdGFsb2ciPnhtbENvbnZlcnRTR01MQ2F0YWxvZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9ub255bW91czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPC9kZD48ZHQ+b250bzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaCI+eG1sU3RyZWFtUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoQXR0ciI+eG1sU3RyZWFtUHVzaEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+b3BhcXVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWEiPl94bWxTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCNfeG1sVVJJIj5feG1sVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+b3BlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRGZCI+aHRtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wIj5odG1sRG9jRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZEZkIj5odG1sUmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRGZCI+eG1sQ3R4dFJlYWRGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wIj54bWxEb2NEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0Zvcm1hdER1bXAiPnhtbERvY0Zvcm1hdER1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPRlRQT3BlbiI+eG1sSU9GVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBPcGVuIj54bWxJT0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE9wZW5DYWxsYmFjayI+eG1sSW5wdXRPcGVuQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENvbm5lY3QiPnhtbE5hbm9GVFBDb25uZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0VG8iPnhtbE5hbm9GVFBDb25uZWN0VG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldENvbm5lY3Rpb24iPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiI+eG1sTmFub0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE9wZW5DYWxsYmFjayI+eG1sT3V0cHV0T3BlbkNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZkIj54bWxSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiPnhtbFRleHRXcml0ZXJFbmREb2N1bWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9wZW5pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydEVsZW1lbnQiPnN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudFNBWEZ1bmMiPnN0YXJ0RWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnQiPnhtbFNBWDJTdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5vcGVyYW5kczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhBZGRWYWx1ZXMiPnhtbFhQYXRoQWRkVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpdlZhbHVlcyI+eG1sWFBhdGhEaXZWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTW9kVmFsdWVzIj54bWxYUGF0aE1vZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNdWx0VmFsdWVzIj54bWxYUGF0aE11bHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3ViVmFsdWVzIj54bWxYUGF0aFN1YlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIj54bWxYUGF0aFZhbHVlRmxpcFNpZ248L2E+PGJyIC8+Cis8L2RkPjxkdD5vcGVyYXRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyR3JvdyI+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2giPnhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9wZXJhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlYnVnIj54bWxDYXRhbG9nU2V0RGVidWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3T3IiPnhtbEV4cE5ld09yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3U2VxIj54bWxFeHBOZXdTZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZSI+eG1sVGV4dFJlYWRlckNvbnN0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQWRkVmFsdWVzIj54bWxYUGF0aEFkZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEJvb2xlYW4iPnhtbFhQYXRoQ29udmVydEJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydE51bWJlciI+eG1sWFBhdGhDb252ZXJ0TnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRTdHJpbmciPnhtbFhQYXRoQ29udmVydFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXZWYWx1ZXMiPnhtbFhQYXRoRGl2VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVxdWFsVmFsdWVzIj54bWxYUGF0aEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE1vZFZhbHVlcyI+eG1sWFBhdGhNb2RWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTXVsdFZhbHVlcyI+eG1sWFBhdGhNdWx0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIj54bWxYUGF0aE5vdEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YlZhbHVlcyI+eG1sWFBhdGhTdWJWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFsdWVGbGlwU2lnbiI+eG1sWFBhdGhWYWx1ZUZsaXBTaWduPC9hPjxiciAvPgorPC9kZD48ZHQ+b3BlcmF0aW9uczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRE9NV3JhcEN0eHQiPl94bWxET01XcmFwQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVDbG9zZSI+eG1sTW9kdWxlQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVGcmVlIj54bWxNb2R1bGVGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9wZXJhdG9yPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbXBhcmVWYWx1ZXMiPnhtbFhQYXRoQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzwvZGQ+PGR0Pm9wZXJhdG9yczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhBZGRWYWx1ZXMiPnhtbFhQYXRoQWRkVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpdlZhbHVlcyI+eG1sWFBhdGhEaXZWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTW9kVmFsdWVzIj54bWxYUGF0aE1vZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNdWx0VmFsdWVzIj54bWxYUGF0aE11bHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3ViVmFsdWVzIj54bWxYUGF0aFN1YlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIj54bWxYUGF0aFZhbHVlRmxpcFNpZ248L2E+PGJyIC8+Cis8L2RkPjxkdD5vcHBvc2l0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5vcHRpbWl6ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSI+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9hPjxiciAvPgorPC9kZD48ZHQ+b3B0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9URVhUX0xFTkdUSCI+WE1MX01BWF9URVhUX0xFTkdUSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExpbmVObyI+eG1sR2V0TGluZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMiPnhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5vcHRpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0VXNlT3B0aW9ucyI+aHRtbEN0eHRVc2VPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFVzZU9wdGlvbnMiPnhtbEN0eHRVc2VPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZU9wZW4iPnhtbE1vZHVsZU9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvQnVmZmVyIj54bWxTYXZlVG9CdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvRmQiPnhtbFNhdmVUb0ZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZpbGVuYW1lIj54bWxTYXZlVG9GaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIj54bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZpbGUiPnhtbFNjaGVtYVZhbGlkYXRlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0dXAiPnhtbFRleHRSZWFkZXJTZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+b3JkZXJlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0QXBwZW5kIj54bWxMaXN0QXBwZW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RJbnNlcnQiPnhtbExpc3RJbnNlcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+b3JkZXJpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERhdGFDb21wYXJlIj54bWxMaXN0RGF0YUNvbXBhcmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5vcmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX05TIj5YSU5DTFVERV9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfT0xEX05TIj5YSU5DTFVERV9PTERfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5vcmllbnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+b3JpZ2luPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+b3JpZ2luYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUVsZW1lbnQiPl94bWxTY2hlbWFFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFGYWNldCI+X3htbFNjaGVtYUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sQ29weUVycm9yIj54bWxDb3B5RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldEVuY29kaW5nQWxpYXMiPnhtbEdldEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdE1lcmdlIj54bWxMaXN0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVZhbHVlIj54bWxQYXJzZUVudGl0eVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSYXciPnhtbFBhcnNlVVJJUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYVW5wbHVnIj54bWxTY2hlbWFTQVhVbnBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsU2F2ZSI+eG1sU2hlbGxTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2F0Ij54bWxTdHJjYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0Ij54bWxTdHJuY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhdE5ldyI+eG1sU3RybmNhdE5ldzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RDb3B5Ij54bWxYUGF0aE9iamVjdENvcHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5vdGhlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUyI+WE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSXNBdXRvQ2xvc2VkIj5odG1sSXNBdXRvQ2xvc2VkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdOZWdUcmFucyI+eG1sQXV0b21hdGFOZXdOZWdUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkIj54bWxDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQUNhdGFsb2ciPnhtbExvYWRBQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlIj54bWxQYXJzZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZFN0cmluZyI+eG1sVGV4dFJlYWRlclJlYWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbiI+eG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pm91cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3NldERvY3VtZW50TG9jYXRvciI+c2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyI+c2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yIj54bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPC9kZD48ZHQ+b3V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbExvY2tMaWJyYXJ5Ij54bWxMb2NrTGlicmFyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRW50aXR5Ij54bWxQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRW50aXR5Ij54bWxTQVhQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIj54bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0SXRlbSI+eG1sWFBhdGhOb2RlU2V0SXRlbTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm91dC1vZjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5vdXRwdXQ/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckRvYyI+eG1sTmV3VGV4dFdyaXRlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlck1lbW9yeSI+eG1sTmV3VGV4dFdyaXRlck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIj54bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJUcmVlIj54bWxOZXdUZXh0V3JpdGVyVHJlZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm91dHNpZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPC9kZD48ZHQ+b3ZlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHROYkNvbnMiPnhtbEV4cEN0eHROYkNvbnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5vdmVyZmxvdzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPC9kZD48ZHQ+b3ZlcnJpZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX1RFWFRfTEVOR1RIIj5YTUxfTUFYX1RFWFRfTEVOR1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkIj54bWxDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0Pm92ZXJ3cml0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ0FkZCI+eG1sQUNhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pm92ZXJ3cml0dGVuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxBZGRFbmNvZGluZ0FsaWFzIj54bWxBZGRFbmNvZGluZ0FsaWFzPC9hPjxiciAvPgorPC9kZD48ZHQ+b3duPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbENsZWFudXBNZW1vcnkiPnhtbENsZWFudXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlJlc29sdmVFbnRpdHkiPnhtbFNBWDJSZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+b3duZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhclBhcnNlckN0eHQiPnhtbENsZWFyUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0T3ducyI+eG1sRGljdE93bnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5vd25lcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBMaXN0Q2FsbGJhY2siPmZ0cExpc3RDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5vd25lcnNoaXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZEF0dHJpYnV0ZURlY2wiPnhtbEFkZEF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5vd25pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlEb2NFbGVtZW50Q29udGVudCI+eG1sQ29weURvY0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQiPnhtbEZyZWVEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NGcmFnbWVudCI+eG1sTmV3RG9jRnJhZ21lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5vd25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCI+WE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazIyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazIyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk1YmFjMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjIuaHRtbApAQCAtMCwwICsxLDU4MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBwLXAgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IHAtcCBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBwOjwvaDI+PGRsPjxkdD5wYWlyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3N0YXJ0RWxlbWVudCI+c3RhcnRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50TnNTQVgyRnVuYyI+c3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudFNBWEZ1bmMiPnN0YXJ0RWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudCI+eG1sU0FYMlN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50TnMiPnhtbFNBWDJTdGFydEVsZW1lbnROczwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhcmFtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEdGQiPl94bWxEdGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wYXJhbWV0ZXItZW50aXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+cGFyYW1ldGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNBVFRSSUJVVEVfVU5VU0VEIj5BVFRSSUJVVEVfVU5VU0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN3YXJuaW5nU0FYRnVuYyI+d2FybmluZ1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvciI+eG1sUGFyc2VyRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5RXJyb3IiPnhtbFBhcnNlclZhbGlkaXR5RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5V2FybmluZyI+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJXYXJuaW5nIj54bWxQYXJzZXJXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUHJpbnRmIj54bWxTdHJQcmludGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEZ1bmMiPnhtbFhQYXRoRXZhbEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5wYXJlbnQtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb2RlIj5feG1sTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhcmVudGhlc2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhcmVudGhlc2lzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Ij54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNwcmludGZFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhcmVudGhlc2l6ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+cGFyZW50czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyI+eG1sU2VhcmNoTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnNCeUhyZWYiPnhtbFNlYXJjaE5zQnlIcmVmPC9hPjxiciAvPgorPC9kZD48ZHQ+cGFydGlhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhcnRpY3VsYXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxOb2RlU2V0Ij5feG1sTm9kZVNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhc3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhQYXJzZXJTZXRGbGFnIj54bWxSZWxheFBhcnNlclNldEZsYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+cGFzc2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDSEVDS19BUklUWSI+Q0hFQ0tfQVJJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuIj54bWxIYXNoU2NhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbjMiPnhtbEhhc2hTY2FuMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwiPnhtbEhhc2hTY2FuRnVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlV2FsayI+eG1sTGlzdFJldmVyc2VXYWxrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0Ij54bWxOYW5vRlRQR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBMaXN0Ij54bWxOYW5vRlRQTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWxGdW5jIj54bWxYUGF0aEV2YWxGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEludGVyc2VjdGlvbiI+eG1sWFBhdGhJbnRlcnNlY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5wYXNzaXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRDb25uZWN0aW9uIj54bWxOYW5vRlRQR2V0Q29ubmVjdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhc3N3b3JkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPjxiciAvPgorPC9kZD48ZHQ+cGFzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlU0FYRnVuYyI+YXR0cmlidXRlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5wYXN0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5wYXRoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjX3htbFVSSSI+X3htbFVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2hlY2tGaWxlbmFtZSI+eG1sQ2hlY2tGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb2RlUGF0aCI+eG1sR2V0Tm9kZVBhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZEFDYXRhbG9nIj54bWxMb2FkQUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZU9wZW4iPnhtbE1vZHVsZU9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldFNvY2tldCI+eG1sTmFub0ZUUEdldFNvY2tldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sTm9ybWFsaXplVVJJUGF0aCI+eG1sTm9ybWFsaXplVVJJUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9ybWFsaXplV2luZG93c1BhdGgiPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJHZXREaXJlY3RvcnkiPnhtbFBhcnNlckdldERpcmVjdG9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsVmFsaWRhdGUiPnhtbFNoZWxsVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIj54bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlIj54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wYXR0ZXJuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEIj5YTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuRnJvbVJvb3QiPnhtbFBhdHRlcm5Gcm9tUm9vdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCI+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1hdGNoIj54bWxQYXR0ZXJuTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1heERlcHRoIj54bWxQYXR0ZXJuTWF4RGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1pbkRlcHRoIj54bWxQYXR0ZXJuTWluRGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblN0cmVhbWFibGUiPnhtbFBhdHRlcm5TdHJlYW1hYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVdhbnRzQW55Tm9kZSI+eG1sU3RyZWFtV2FudHNBbnlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzwvZGQ+PGR0PnBhdHRlcm5zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFGYWNldCI+X3htbFNjaGVtYUZhY2V0PC9hPjxiciAvPgorPC9kZD48ZHQ+cGNkYXRhPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY2RhdGFCbG9jayI+Y2RhdGFCbG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2NkYXRhQmxvY2tTQVhGdW5jIj5jZGF0YUJsb2NrU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQ0RhdGFCbG9jayI+eG1sU0FYMkNEYXRhQmxvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD5wZWRhbnRpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCI+eG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+cGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxHZXRMYXN0RXJyb3IiPnhtbEdldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIj54bWxWYWxpZGF0ZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wZXJmb3JtYW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wZXJmb3JtZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPC9kZD48ZHQ+cGVydGFpbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NUZXh0TGVuIj54bWxOZXdEb2NUZXh0TGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+cGVydGFpbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnBoYXNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnTmV3RXhlY0N0eHQiPnhtbFJlZ05ld0V4ZWNDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+cGljMTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5waWVjZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGlsZCI+eG1sTmV3Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnQiPnhtbE5vZGVTZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50TGVuIj54bWxOb2RlU2V0Q29udGVudExlbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnBpZWNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzwvZGQ+PGR0PnBsYWNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbENvcHlFcnJvciI+eG1sQ29weUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1HZXQiPnhtbEdjTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtR2V0Ij54bWxNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVwbGFjZU5vZGUiPnhtbFJlcGxhY2VOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+cGxhY2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUHJpbnRmIj54bWxTdHJQcmludGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPjxiciAvPgorPC9kZD48ZHQ+cGxhdGZvcm1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEdldFRocmVhZElkIj54bWxHZXRUaHJlYWRJZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnBsdWc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnBsdWdpbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPC9kZD48ZHQ+cGx1Z2luczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPC9kZD48ZHQ+cGx1czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNVVEY4VG9IdG1sIj5VVEY4VG9IdG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JFbmNvZGVFbnRpdGllcyI+ZG9jYkVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+cG5ldGxpYi1kb2M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9kZVR5cGUiPnhtbFRleHRSZWFkZXJOb2RlVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnBvaW50ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQb3BJbnB1dCI+eG1sUG9wSW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wb2ludGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0R3JvdyI+eG1sUGFyc2VySW5wdXRHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRSZWFkIj54bWxQYXJzZXJJbnB1dFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYVW5wbHVnIj54bWxTY2hlbWFTQVhVbnBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+cG9pbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI194bWxDaFJhbmdlR3JvdXAiPl94bWxDaFJhbmdlR3JvdXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5wb3A8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQb3BJbnB1dCI+eG1sUG9wSW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wb3BwZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5wb3BzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2tpcEJsYW5rQ2hhcnMiPnhtbFNraXBCbGFua0NoYXJzPC9hPjxiciAvPgorPC9kZD48ZHQ+cG9ydDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI194bWxVUkkiPl94bWxVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENvbm5lY3RUbyI+eG1sTmFub0ZUUENvbm5lY3RUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUHJveHkiPnhtbE5hbm9GVFBQcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQU2NhblByb3h5Ij54bWxOYW5vRlRQU2NhblByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBVcGRhdGVVUkwiPnhtbE5hbm9GVFBVcGRhdGVVUkw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnBvcnRhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzSW5mIj54bWxYUGF0aElzSW5mPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzTmFOIj54bWxYUGF0aElzTmFOPC9hPjxiciAvPgorPC9kZD48ZHQ+cG9zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnN1YiI+eG1sVVRGOFN0cnN1YjwvYT48YnIgLz4KKzwvZGQ+PGR0PnBvc2l0aW9uOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnBvc2l0aW9uZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZFN0cmluZyI+eG1sVGV4dFJlYWRlclJlYWRTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5wb3NpdGlvbm5lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUiPnhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wb3NpdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3Ryc3ViIj54bWxVVEY4U3Ryc3ViPC9hPjxiciAvPgorPC9kZD48ZHQ+cG9zc2libGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGVMaXN0Ij54bWxDb3B5Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0Ij54bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNOZXh0VmFsdWVzIj54bWxSZWdFeGVjTmV4dFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPjxiciAvPgorPC9kZD48ZHQ+cG9zc2libHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jR2V0Um9vdEVsZW1lbnQiPnhtbERvY0dldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1NldFJvb3RFbGVtZW50Ij54bWxEb2NTZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxJc0JsYW5rTm9kZSI+eG1sSXNCbGFua05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZpbGVuYW1lIj54bWxTYXZlVG9GaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnBvc3Rlcmlvcmk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnMiPnhtbFNldE5zPC9hPjxiciAvPgorPC9kZD48ZHQ+cG90ZW50aWFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQiPnhtbERlYnVnQ2hlY2tEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiI+eG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnBvdGVudGlhbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjX3htbFVSSSI+X3htbFVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnByYWN0aWNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VWZXJzaW9uTnVtIj54bWxQYXJzZVZlcnNpb25OdW08L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmUtaW50ZXJuZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmVhbGxvY2F0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVpbGRRTmFtZSI+eG1sQnVpbGRRTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnByZWNlZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciPnhtbFhQYXRoTm9kZUxlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmVjZWRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnByZWNlZGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlY2VkaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij5feG1sWFBhdGhQYXJzZXJDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnByZWNlZGluZy1zaWJsaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlY2lzZWx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlY29tcGlsZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aFBhcnNlckNvbnRleHQiPl94bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkZyb21Sb290Ij54bWxQYXR0ZXJuRnJvbVJvb3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkdldFN0cmVhbUN0eHQiPnhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NYXRjaCI+eG1sUGF0dGVybk1hdGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NYXhEZXB0aCI+eG1sUGF0dGVybk1heERlcHRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NaW5EZXB0aCI+eG1sUGF0dGVybk1pbkRlcHRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5TdHJlYW1hYmxlIj54bWxQYXR0ZXJuU3RyZWFtYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ij54bWxSZWdOZXdFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3VmFsaWRDdHh0Ij54bWxSZWxheE5HTmV3VmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hTmV3VmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQiPnhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSI+eG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByIj54bWxYUGF0aERlYnVnRHVtcENvbXBFeHByPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlY29tcHV0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb3B5VmFsdWUiPnhtbFNjaGVtYUNvcHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AiPnhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzwvZGQ+PGR0PnByZWRlZmluZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hNTF9OQU1FU1BBQ0UiPlhNTF9YTUxfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzIj54bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZVNwZWNpYWxDaGFycyI+eG1sRW5jb2RlU3BlY2lhbENoYXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXREb2NFbnRpdHkiPnhtbEdldERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0UHJlZGVmaW5lZEVudGl0eSI+eG1sR2V0UHJlZGVmaW5lZEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllcyI+eG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUmVmZXJlbmNlIj54bWxQYXJzZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmVkaWNhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIj54bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlZmVyYWJseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxJbml0aWFsaXplQ2F0YWxvZyI+eG1sSW5pdGlhbGl6ZUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyI+eG1sTG9hZENhdGFsb2dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1BJIj54bWxOZXdQSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnByZWZlcmVuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlZml4ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlcGFyaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnByZXBhcnNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld1dhbGtlciI+eG1sUmVhZGVyTmV3V2Fsa2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyV2Fsa2VyIj54bWxSZWFkZXJXYWxrZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlcGVuZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmVzZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sQnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RMb29rdXAiPnhtbERpY3RMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFFMb29rdXAiPnhtbERpY3RRTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zIj54bWxOZXdOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFZhbHVlIj54bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJWYWx1ZSI+eG1sVGV4dFJlYWRlclZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZCI+eG1sVmFsaWRhdGVEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlc2VydmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUiPlhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZVNldFNwYWNlUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dEdyb3ciPnhtbFBhcnNlcklucHV0R3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0UmVhZCI+eG1sUGFyc2VySW5wdXRSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlIj54bWxUZXh0UmVhZGVyUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIj54bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJlc2VydmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1BSRVNFUlZFX05PREUiPkhUTUxfUFJFU0VSVkVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmVzZXJ2aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZVNldFNwYWNlUHJlc2VydmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmV2PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PnByZXZlbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmV2aW91czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0ciI+X3htbEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEF0dHJpYnV0ZSI+X3htbEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEdGQiPl94bWxEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEVsZW1lbnQiPl94bWxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb2RlIj5feG1sTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSGFuZGxlT21pdHRlZEVsZW0iPmh0bWxIYW5kbGVPbWl0dGVkRWxlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbGVtZW50Ij5odG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFByZXZTaWJsaW5nIj54bWxBZGRQcmV2U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVidWciPnhtbENhdGFsb2dTZXREZWJ1ZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciI+eG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCI+eG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQdXNoSW5wdXQiPnhtbFB1c2hJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJpbWl0aXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkUiPlhNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEZ1bmMiPnhtbFhQYXRoQ29udmVydEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmludDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludE5vZGUiPnhtbFNoZWxsUHJpbnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Ij54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNwcmludGZFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnByaW50ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcCI+aHRtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlIj5odG1sTm9kZUR1bXBGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiPmh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wT3V0cHV0Ij5odG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRWxlbUR1bXAiPnhtbEVsZW1EdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcE91dHB1dCI+eG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcmlvcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldHVwUGFyc2VyRm9yQnVmZmVyIj54bWxTZXR1cFBhcnNlckZvckJ1ZmZlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnByaXZhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4UGFyc2VyU2V0RmxhZyI+eG1sUmVsYXhQYXJzZXJTZXRGbGFnPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvYmxlbTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIj54bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzdWIiPnhtbFVURjhTdHJzdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUG9wRWxlbWVudCI+eG1sVmFsaWRhdGVQb3BFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9ibGVtczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJSZXNpemUiPnhtbEJ1ZmZlclJlc2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdDaGVja0RvY3VtZW50Ij54bWxEZWJ1Z0NoZWNrRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMb2FkRXh0ZXJuYWxFbnRpdHkiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvY2VkdXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0eG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2Nlc3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUiPnhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2tpcEJsYW5rQ2hhcnMiPnhtbFNraXBCbGFua0NoYXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0RlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9jZXNzZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydERvY3VtZW50Ij5zdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnREb2N1bWVudFNBWEZ1bmMiPnN0YXJ0RG9jdW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc3RhcnRFbGVtZW50Ij5zdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnRTQVhGdW5jIj5zdGFydEVsZW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnREb2N1bWVudCI+eG1sU0FYMlN0YXJ0RG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudCI+eG1sU0FYMlN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvY2Vzc2luZy1pbnN0cnVjdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJc05vZGVUeXBlIj54bWxYUGF0aElzTm9kZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9jZXNzaW5nLWluc3RydWN0aW9uLW5vZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1ub2RlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1XYW50c0FueU5vZGUiPnhtbFN0cmVhbVdhbnRzQW55Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2Nlc3NvcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2NncmVzc2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2R1Y2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0xlbkdldE5vZGVMaXN0Ij54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2R1Y2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvZHVjaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9kdWN0aW9uOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvZHVjdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDaGVja0xhbmd1YWdlSUQiPnhtbENoZWNrTGFuZ3VhZ2VJRDwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2dyYW08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2dyYW1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdFBhcnNlciI+eG1sSW5pdFBhcnNlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2dyZXNzZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdOZXdFeGVjQ3R4dCI+eG1sUmVnTmV3RXhlY0N0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9ncmVzc2l2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZkIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdOZXdFeGVjQ3R4dCI+eG1sUmVnTmV3RXhlY0N0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9oaWJpdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQiPlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9qZWN0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc0luZiI+eG1sWFBhdGhJc0luZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb2xvZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRG9jdW1lbnQiPnhtbFBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9tcHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUmVhZGxpbmVGdW5jIj54bWxTaGVsbFJlYWRsaW5lRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb3BlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb3Blcmx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb3BlcnRpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vZGUiPl94bWxOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkIj54bWxBZGRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGROZXh0U2libGluZyI+eG1sQWRkTmV4dFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkUHJldlNpYmxpbmciPnhtbEFkZFByZXZTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlOb2RlIj54bWxDb3B5Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NDb3B5Tm9kZSI+eG1sRG9jQ29weU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZCI+eG1sVGV4dFJlYWRlclJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm9wZXJ0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0ciI+X3htbEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbER0ZCI+X3htbER0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRDaGlsZCI+eG1sQWRkQ2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZVByb3BMaXN0Ij54bWxGcmVlUHJvcExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUHJvcCI+eG1sTmV3RG9jUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3AiPnhtbE5ld05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3BFYXROYW1lIj54bWxOZXdOc1Byb3BFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1Byb3AiPnhtbE5ld1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlckdldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm90b2NvbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xlYW51cCI+eG1sTmFub0ZUUENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEluaXQiPnhtbE5hbm9GVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFVwZGF0ZVVSTCI+eG1sTmFub0ZUUFVwZGF0ZVVSTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDbGVhbnVwIj54bWxOYW5vSFRUUENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQSW5pdCI+eG1sTmFub0hUVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5wcm90b3R5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtOb2RlRGV0ZWN0RnVuYyI+eGxpbmtOb2RlRGV0ZWN0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb3ZlbmFuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvdmlkZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRm9ybWF0RHVtcCI+eG1sRG9jRm9ybWF0RHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXAiPnhtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wT3V0cHV0Ij54bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZSI+eG1sU2F2ZUZvcm1hdEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVFbmMiPnhtbFNhdmVGb3JtYXRGaWxlRW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIj54bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsb2MiPnhtbFVURjhTdHJsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RycG9zIj54bWxVVEY4U3RycG9zPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvdmlkZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50TnNTQVgyRnVuYyI+ZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQnl0ZUNvbnN1bWVkIj54bWxCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0TmJDb25zIj54bWxFeHBDdHh0TmJDb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dE5iTm9kZXMiPnhtbEV4cEN0eHROYk5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFbmRFbGVtZW50TnMiPnhtbFNBWDJFbmRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudE5zIj54bWxTQVgyU3RhcnRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIj54bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvdmlkaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSU5QVVRfQ0hVTksiPklOUFVUX0NIVU5LPC9hPjxiciAvPgorPC9kZD48ZHQ+cHJvdm9rZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb3hpbWl0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnByb3h5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbGVhbnVwIj54bWxOYW5vRlRQQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQSW5pdCI+eG1sTmFub0ZUUEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFByb3h5Ij54bWxOYW5vRlRQUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFNjYW5Qcm94eSI+eG1sTmFub0ZUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBJbml0Ij54bWxOYW5vSFRUUEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2NhblByb3h5Ij54bWxOYW5vSFRUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnBydW5lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlcGxhY2VOb2RlIj54bWxSZXBsYWNlTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnB0aHJlYWRfdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wdGhyZWFkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wdWJsaWNJRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPC9kZD48ZHQ+cHVsbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8L2RkPjxkdD5wdXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDRFNlY3QiPnhtbFBhcnNlQ0RTZWN0PC9hPjxiciAvPgorPC9kZD48ZHQ+cHVycG9zZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGVidWdEdW1wT2JqZWN0Ij54bWxYUGF0aERlYnVnRHVtcE9iamVjdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnB1c2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1BVU0hfRU5BQkxFRCI+TElCWE1MX1BVU0hfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZXNldFB1c2giPnhtbEN0eHRSZXNldFB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHVzaCI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVBvcCI+eG1sU3RyZWFtUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWxFeHByIj54bWxYUGF0aEV2YWxFeHByPC9hPjxiciAvPgorPC9kZD48ZHQ+cHVzaGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1XYW50c0FueU5vZGUiPnhtbFN0cmVhbVdhbnRzQW55Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnB1c2hpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+cHV0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5wdXRhdGl2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoZWNrVVRGOCI+eG1sQ2hlY2tVVEY4PC9hPjxiciAvPgorPC9kZD48ZHQ+cHdkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjNkOThjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyMy5odG1sCkBAIC0wLDAgKzEsNjU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IHEtciBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggcS1yIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIHE6PC9oMj48ZGw+PGR0PnF1YWxpZmllZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19RVUFMSUZfQVRUUiI+WE1MX1NDSEVNQVNfUVVBTElGX0FUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0iPlhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiPnhtbE5hbWVzcGFjZVBhcnNlUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3ROYW1lIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmFtZSI+eG1sVGV4dFJlYWRlck5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUG9wRWxlbWVudCI+eG1sVmFsaWRhdGVQb3BFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hFbGVtZW50Ij54bWxWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBhcnNlTkNOYW1lIj54bWxYUGF0aFBhcnNlTkNOYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+cXVlcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCNfeG1sVVJJIj5feG1sVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+cXVvdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+cXVvdGF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclF1b3RlQ2hhciI+eG1sVGV4dFJlYWRlclF1b3RlQ2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnF1b3RlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JFbmNvZGVFbnRpdGllcyI+ZG9jYkVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnF1b3RlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyI+eG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5xdW90ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVF1b3RlZFN0cmluZyI+eG1sUGFyc2VRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyPkxldHRlciByOjwvaDI+PGRsPjxkdD5yYWlzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjWFBfRVJST1IiPlhQX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNYUF9FUlJPUjAiPlhQX0VSUk9SMDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJhaXNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrSFRUUElucHV0Ij54bWxDaGVja0hUVFBJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENoZWNrRXJyb3IiPnhtbFhQYXRoQ2hlY2tFcnJvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJhbmdlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQllURV9DSEFSIj5JU19CWVRFX0NIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGQiPnhtbEJ1ZmZlckFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGRIZWFkIj54bWxCdWZmZXJBZGRIZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoYXJJblJhbmdlIj54bWxDaGFySW5SYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIj54bWxFeHBOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIj54bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0SXRlbSI+eG1sWFBhdGhOb2RlU2V0SXRlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0QWRkIj54bWxYUHRyTG9jYXRpb25TZXRBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldERlbCI+eG1sWFB0ckxvY2F0aW9uU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUiPnhtbFhQdHJMb2NhdGlvblNldFJlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIj54bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIj54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlIj54bWxYUHRyTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QiPnhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZU5vZGVQb2ludCI+eG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlcyI+eG1sWFB0ck5ld1JhbmdlTm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZVBvaW50Tm9kZSI+eG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VQb2ludHMiPnhtbFhQdHJOZXdSYW5nZVBvaW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PnJhbmdlLXRvPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uIj54bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+cmFuZ2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI194bWxDaFJhbmdlR3JvdXAiPl94bWxDaFJhbmdlR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJGcmVlTG9jYXRpb25TZXQiPnhtbFhQdHJGcmVlTG9jYXRpb25TZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldE1lcmdlIj54bWxYUHRyTG9jYXRpb25TZXRNZXJnZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJhbmdlc2V0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UiPnhtbFhQdHJMb2NhdGlvblNldE1lcmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmF0aGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCI+eG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJhdGlvPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldERvY0NvbXByZXNzTW9kZSI+eG1sR2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldERvY0NvbXByZXNzTW9kZSI+eG1sU2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yYXc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxQYXJzZXJJbnB1dEJ1ZmZlciI+X3htbFBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUiPnhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOU0RlZiI+eG1sTmFtZXNwYWNlUGFyc2VOU0RlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiPnhtbE5hbWVzcGFjZVBhcnNlUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnQiPnhtbE5vZGVBZGRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50TGVuIj54bWxOb2RlQWRkQ29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ0RTZWN0Ij54bWxQYXJzZUNEU2VjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVJhdyI+eG1sVGV4dFdyaXRlcldyaXRlUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdzwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlLWVudHJhbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTG9ja0xpYnJhcnkiPnhtbExvY2tMaWJyYXJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFVubG9ja0xpYnJhcnkiPnhtbFVubG9ja0xpYnJhcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWFjaGFibGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1heERlcHRoIj54bWxQYXR0ZXJuTWF4RGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1pbkRlcHRoIj54bWxQYXR0ZXJuTWluRGVwdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWFjaGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmciPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmcyIj54bWxSZWdFeGVjUHVzaFN0cmluZzI8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWFkLW9ubHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZVN1YiI+eG1sRGljdENyZWF0ZVN1YjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlYWRhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyRXF1YWwiPnhtbFN0ckVxdWFsPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVhZGVyLTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWFkaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIj54bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVhZHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJTlBVVF9DSFVOSyI+SU5QVVRfQ0hVTks8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVhbGxvYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQnVmZmVyIj5feG1sQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1HZXQiPnhtbEdjTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtUmVhbGxvYyI+eG1sTWVtUmVhbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NMb2MiPnhtbFJlYWxsb2NMb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWFsbG9jYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXQiPnhtbFN0cm5jYXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWFsbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfQ09NTUVOVF9OT0RFIj5IVE1MX0NPTU1FTlRfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9FTlRJVFlfUkVGX05PREUiPkhUTUxfRU5USVRZX1JFRl9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1BJX05PREUiPkhUTUxfUElfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9QUkVTRVJWRV9OT0RFIj5IVE1MX1BSRVNFUlZFX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfVEVYVF9OT0RFIj5IVE1MX1RFWFRfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5TG9va3VwIj5odG1sRW50aXR5TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQ3JlYXRlRW50aXRpZXNUYWJsZSI+eG1sQ3JlYXRlRW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlYXNvbmFibGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVjZWl2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cER1bXAiPnhtbEV4cER1bXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWNlaXZlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBEYXRhQ2FsbGJhY2siPmZ0cERhdGFDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZXR1cm5Db2RlIj54bWxOYW5vSFRUUFJldHVybkNvZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWNlaXZlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVjZWl2aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2UiPmlnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsSUQiPnhtbFBhcnNlRXh0ZXJuYWxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQ2hhcmFjdGVycyI+eG1sU0FYMkNoYXJhY3RlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UiPnhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlY2xhaW08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVNdXRleCI+eG1sRnJlZU11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVSTXV0ZXgiPnhtbEZyZWVSTXV0ZXg8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWNvZ25pemVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxQYXJzZUNoYXJFbmNvZGluZyI+eG1sUGFyc2VDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWNvbW1lbmRhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWNvbW1lbmRhdGlvbjo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIj54bWxWYWxpZGF0ZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCI+eG1sVmFsaWRhdGVOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVSb290Ij54bWxWYWxpZGF0ZVJvb3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWNvbXB1dGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFkZCI+eG1sQnVmZmVyQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFkZEhlYWQiPnhtbEJ1ZmZlckFkZEhlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdEV4aXN0cyI+eG1sRGljdEV4aXN0czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0TG9va3VwIj54bWxEaWN0TG9va3VwPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVjb25jaWxpYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlY29yZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ0FkZCI+eG1sQUNhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckFkZE5vZGVJbmZvIj54bWxQYXJzZXJBZGROb2RlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mb0luZGV4Ij54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlY292ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVjb3Zlcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGUiPnhtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5Ij54bWxTQVhQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWN1cnNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRBQ2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9nIj54bWxMb2FkQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyI+eG1sU2VhcmNoTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPC9kZD48ZHQ+cmVjdXJzaXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXAiPmh0bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZSI+aHRtbE5vZGVEdW1wRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCI+aHRtbE5vZGVEdW1wRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0Ij5odG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcE91dHB1dCI+aHRtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUVsZW1lbnQiPmh0bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weURvYyI+eG1sQ29weURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVudW1lcmF0aW9uIj54bWxDb3B5RW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGUiPnhtbENvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlOb2RlTGlzdCI+eG1sQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudCI+eG1sRGVidWdEdW1wRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERvY3VtZW50SGVhZCI+eG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlIj54bWxEZWJ1Z0R1bXBOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlTGlzdCI+eG1sRGVidWdEdW1wTm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE9uZU5vZGUiPnhtbERlYnVnRHVtcE9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGUiPnhtbERvY0NvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0NvcHlOb2RlTGlzdCI+eG1sRG9jQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1EdW1wIj54bWxFbGVtRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVudW1lcmF0aW9uIj54bWxGcmVlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5vZGUiPnhtbEZyZWVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOb2RlTGlzdCI+eG1sRnJlZU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcE91dHB1dCI+eG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnQiPnhtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWN1cnNpdmVseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQUNhdGFsb2ciPnhtbExvYWRBQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWRlY2xhcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZGVmaW5lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfUkVERUZJTkVEIj5YTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZGVmaW5pdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEVyck1lbW9yeSI+eG1sRXJyTWVtb3J5PC9hPjxiciAvPgorPC9kZD48ZHQ+cmVkaXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWRpcmVjdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVkaXIiPnhtbE5hbm9IVFRQUmVkaXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWRpcmVjdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2hlY2tIVFRQSW5wdXQiPnhtbENoZWNrSFRUUElucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFJlZGlyIj54bWxOYW5vSFRUUFJlZGlyPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVlbnRyYW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZVNwZWNpYWxDaGFycyI+eG1sRW5jb2RlU3BlY2lhbENoYXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVSTXV0ZXgiPnhtbEZyZWVSTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0UGFyc2VyIj54bWxJbml0UGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleExvY2siPnhtbFJNdXRleExvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4VW5sb2NrIj54bWxSTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRCI+WE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRSZWYiPnhtbEFkZFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZVJlZlRhYmxlIj54bWxGcmVlUmVmVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hhclJlZiI+eG1sTmV3Q2hhclJlZjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZmVyZW5jZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlua0dldERhdGEiPnhtbExpbmtHZXREYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZmVyZW5jaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXREb2NFbnRpdHkiPnhtbEdldERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0RHRkRW50aXR5Ij54bWxHZXREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldFBhcmFtZXRlckVudGl0eSI+eG1sR2V0UGFyYW1ldGVyRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+cmVmZXJyZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJSZWYiPnhtbFBhcnNlQ2hhclJlZjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZnJlc2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZnVzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOcyI+eG1sTmV3TnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWdleDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRmFjZXQiPl94bWxTY2hlbWFGYWNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZ2V4cDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudCI+X3htbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmciPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmcyIj54bWxSZWdFeGVjUHVzaFN0cmluZzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdGcmVlUmVnZXhwIj54bWxSZWdGcmVlUmVnZXhwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnTmV3RXhlY0N0eHQiPnhtbFJlZ05ld0V4ZWNDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHJpbnQiPnhtbFJlZ2V4cFByaW50PC9hPjxiciAvPgorPC9kZD48ZHQ+cmVnZXhwczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZ2lzdGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZ2lzdGVyZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEN0eHRHZXRMYXN0RXJyb3IiPnhtbEN0eHRHZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEN0eHRSZXNldExhc3RFcnJvciI+eG1sQ3R4dFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEdldExhc3RFcnJvciI+eG1sR2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQb3BJbnB1dENhbGxiYWNrcyI+eG1sUG9wSW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIj54bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUmVzZXRMYXN0RXJyb3IiPnhtbFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAiPnhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlZ2lzdGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWdpc3RyYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sUmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVndWxhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfUkVHRVhQX0VOQUJMRUQiPkxJQlhNTF9SRUdFWFBfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdGcmVlRXhlY0N0eHQiPnhtbFJlZ0ZyZWVFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ij54bWxSZWdOZXdFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cENvbXBpbGUiPnhtbFJlZ2V4cENvbXBpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBFeGVjIj54bWxSZWdleHBFeGVjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwSXNEZXRlcm1pbmlzdCI+eG1sUmVnZXhwSXNEZXRlcm1pbmlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFByaW50Ij54bWxSZWdleHBQcmludDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWluaXRpYWxpemU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhck5vZGVJbmZvU2VxIj54bWxDbGVhck5vZGVJbmZvU2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYXJQYXJzZXJDdHh0Ij54bWxDbGVhclBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWxhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9VTklDT0RFX0VOQUJMRUQiPkxJQlhNTF9VTklDT0RFX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFRhZ0xvb2t1cCI+aHRtbFRhZ0xvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEluaXRUaHJlYWRzIj54bWxJbml0VGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDbG9zZSI+eG1sTmFub0hUVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVsYXRpb25zaGlwczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVsYXRpdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQnl0ZUNvbnN1bWVkIj54bWxCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIj54bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsb2MiPnhtbFVURjhTdHJsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3Ryc3ViIj54bWxVVEY4U3Ryc3ViPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVsYXRpdmUtcmVmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSYXciPnhtbFBhcnNlVVJJUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSZWZlcmVuY2UiPnhtbFBhcnNlVVJJUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVsYXRpdmVVUkk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSSI+eG1sUGFyc2VVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWxlYXNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYXJOb2RlSW5mb1NlcSI+eG1sQ2xlYXJOb2RlSW5mb1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFyUGFyc2VyQ3R4dCI+eG1sQ2xlYXJQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3T3IiPnhtbEV4cE5ld09yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3U2VxIj54bWxFeHBOZXdTZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sVW5sb2NrTGlicmFyeSI+eG1sVW5sb2NrTGlicmFyeTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlbGVhc2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNsb3NlIj54bWxUZXh0UmVhZGVyQ2xvc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWxpYWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9GaWxlbmFtZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZWx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVtYWluZGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlbWFpbmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVtYXBwZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZW1vdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEN3ZCI+eG1sTmFub0ZUUEN3ZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlbW92YWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5Ij54bWxIYXNoUmVtb3ZlRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MiI+eG1sSGFzaFJlbW92ZUVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkzIj54bWxIYXNoUmVtb3ZlRW50cnkzPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVtb3ZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVtb3ZlIj54bWxBQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJTaHJpbmsiPnhtbEJ1ZmZlclNocmluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVtb3ZlIj54bWxDYXRhbG9nUmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1NldFJvb3RFbGVtZW50Ij54bWxEb2NTZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldFJlbW92ZSI+eG1sWFBhdGhOb2RlU2V0UmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUiPnhtbFhQdHJMb2NhdGlvblNldFJlbW92ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlbW92ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFBvcCI+aW5wdXRQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNuYW1lUG9wIj5uYW1lUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVBvcCI+bm9kZVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjdmFsdWVQb3AiPnZhbHVlUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVtb3ZlIj54bWxBQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJTaHJpbmsiPnhtbEJ1ZmZlclNocmluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVtb3ZlIj54bWxDYXRhbG9nUmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQiPnhtbEZyZWVEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVsZW1lbnRDb250ZW50Ij54bWxGcmVlRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxIYW5kbGVFbnRpdHkiPnhtbEhhbmRsZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkiPnhtbEhhc2hSZW1vdmVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkyIj54bWxIYXNoUmVtb3ZlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTMiPnhtbEhhc2hSZW1vdmVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5Ij54bWxIYXNoVXBkYXRlRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MiI+eG1sSGFzaFVwZGF0ZUVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkzIj54bWxIYXNoVXBkYXRlRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0dsb2JhbE5zIj54bWxOZXdHbG9iYWxOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUXVvdGVkU3RyaW5nIj54bWxQYXJzZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbiI+eG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlbW92ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJJbnB1dFNocmluayI+eG1sUGFyc2VySW5wdXRTaHJpbms8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZW1vdmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZyI+eG1sTG9hZFNHTUxTdXBlckNhdGFsb2c8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZW5hbWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI194bWxFcnJvciI+X3htbEVycm9yPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVwZWF0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVwZWF0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXBldGl0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVwbGFjZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFIj5YTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFIj5YTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRTdHJpbmciPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlcGxhY2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeSI+eG1sSGFzaFVwZGF0ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MyI+eG1sSGFzaFVwZGF0ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVwbGFjZW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dBZGQiPnhtbEFDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlIj54bWxQYXJzZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlcGxhY2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXBsYWNpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlU3BlY2lhbENoYXJzIj54bWxFbmNvZGVTcGVjaWFsQ2hhcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXBvcnRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJTlBVVF9DSFVOSyI+SU5QVVRfQ0hVTks8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXBvcnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXByPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXByZXNlbnRhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVwcmVzZW50YXRpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlcHJlc2VudGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlcHJlc2VudGVkOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVwcmVzZW50aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtQmxvY2tzIj54bWxNZW1CbG9ja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1Vc2VkIj54bWxNZW1Vc2VkPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVxdWVzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlblciPnhtbElPSFRUUE9wZW5XPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiI+eG1sTmFub0hUVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW5SZWRpciI+eG1sTmFub0hUVFBPcGVuUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmV0dXJuQ29kZSI+eG1sTmFub0hUVFBSZXR1cm5Db2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVxdWVzdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiI+eG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSGFzRmVhdHVyZSI+eG1sSGFzRmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVxdWVzdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MiPnhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXF1aXJlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRCI+WE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlcXVpcmVkQXR0cnMiPmh0bWxSZXF1aXJlZEF0dHJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWJ1ZyI+eG1sQ2F0YWxvZ1NldERlYnVnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmciPnhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UiPnhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVxdWlyZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRMaW5lTm8iPnhtbEdldExpbmVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXF1cmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc2VydmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlU3RyIj54bWxVUklFc2NhcGVTdHI8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jIj5pbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZEZkIj54bWxDdHh0UmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRCYXNlIj54bWxOb2RlU2V0QmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0TmFtZSI+eG1sTm9kZVNldE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVTZXRTcGFjZVByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZkIj54bWxSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnNQcm9wIj54bWxTZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0UHJvcCI+eG1sU2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNpZGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyI+eG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJYbWxMYW5nIj54bWxUZXh0UmVhZGVyWG1sTGFuZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc2l6ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJSZXNpemUiPnhtbEJ1ZmZlclJlc2l6ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc29sdXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVzb2x2ZSI+eG1sQUNhdGFsb2dSZXNvbHZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVzb2x2ZVVSSSI+eG1sQUNhdGFsb2dSZXNvbHZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dMb2NhbFJlc29sdmUiPnhtbENhdGFsb2dMb2NhbFJlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZSI+eG1sQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmVVUkkiPnhtbENhdGFsb2dSZXNvbHZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNvbHZlRW50aXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc29sdmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9SRVNPTFZFRCI+WE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9SRVNPTFZFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiPnhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNvbHZlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc291cmNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFyUGFyc2VyQ3R4dCI+eG1sQ2xlYXJQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVNdXRleCI+eG1sRnJlZU11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVSTXV0ZXgiPnhtbEZyZWVSTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxGcmVlVGV4dFJlYWRlciI+eG1sRnJlZVRleHRSZWFkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxGcmVlVGV4dFdyaXRlciI+eG1sRnJlZVRleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNsb3NlIj54bWxPdXRwdXRCdWZmZXJDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQiPnhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCI+eG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQiPnhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUZyZWVWYWxpZEN0eHQiPnhtbFNjaGVtYUZyZWVWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQiPnhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNsb3NlIj54bWxUZXh0UmVhZGVyQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlU2V0RmxhZ3MiPnhtbFhJbmNsdWRlU2V0RmxhZ3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNwPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNwZWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3RyaW5nRGVyaXZlIj54bWxFeHBTdHJpbmdEZXJpdmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNwZWN0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc3BvbnNhYmlsaXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxOZXdFbnRpdHkiPnhtbE5ld0VudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc3BvbnNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDaGVja1Jlc3BvbnNlIj54bWxOYW5vRlRQQ2hlY2tSZXNwb25zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0UmVzcG9uc2UiPnhtbE5hbm9GVFBHZXRSZXNwb25zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoIj54bWxOYW5vSFRUUENvbnRlbnRMZW5ndGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXNwb25zaWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxDYW5vbmljUGF0aCI+eG1sQ2Fub25pY1BhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXRoVG9VUkkiPnhtbFBhdGhUb1VSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc3RvcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFVucGx1ZyI+eG1sU2NoZW1hU0FYVW5wbHVnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciI+eG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJlc3RyaWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXN0cmljdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPC9kZD48ZHQ+cmVzdWx0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFcXVhbFZhbHVlcyI+eG1sWFBhdGhFcXVhbFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb3RFcXVhbFZhbHVlcyI+eG1sWFBhdGhOb3RFcXVhbFZhbHVlczwvYT48YnIgLz4KKzwvZGQ+PGR0PnJldFZhbHVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnJldHJpZXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEdldEdsb2JhbFN0YXRlIj54bWxHZXRHbG9iYWxTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0Ij54bWxOYW5vRlRQR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRTb2NrZXQiPnhtbE5hbm9GVFBHZXRTb2NrZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXRyaWV2ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5Ij54bWxIYXNoQWRkRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MiI+eG1sSGFzaEFkZEVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkzIj54bWxIYXNoQWRkRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeSI+eG1sSGFzaFVwZGF0ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MyI+eG1sSGFzaFVwZGF0ZUVudHJ5MzwvYT48YnIgLz4KKzwvZGQ+PGR0PnJldHJ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PnJldHVybmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnJldXNhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnJldXNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nIj54bWxSZWdFeGVjUHVzaFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nMiI+eG1sUmVnRXhlY1B1c2hTdHJpbmcyPC9hPjxiciAvPgorPC9kZD48ZHQ+cmV1c2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXVzZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRG9jIj5odG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRmQiPmh0bWxDdHh0UmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZEZpbGUiPmh0bWxDdHh0UmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkSU8iPmh0bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZE1lbW9yeSI+aHRtbEN0eHRSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWREb2MiPnhtbEN0eHRSZWFkRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRGZCI+eG1sQ3R4dFJlYWRGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmlsZSI+eG1sQ3R4dFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRJTyI+eG1sQ3R4dFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkTWVtb3J5Ij54bWxDdHh0UmVhZE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0RvYyI+eG1sUmVhZGVyTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RmQiPnhtbFJlYWRlck5ld0ZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RmlsZSI+eG1sUmVhZGVyTmV3RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0lPIj54bWxSZWFkZXJOZXdJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld01lbW9yeSI+eG1sUmVhZGVyTmV3TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3V2Fsa2VyIj54bWxSZWFkZXJOZXdXYWxrZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5yZXVzaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+cmV2ZXJzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVNlYXJjaCI+eG1sTGlzdFJldmVyc2VTZWFyY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJldmVyc2VXYWxrIj54bWxMaXN0UmV2ZXJzZVdhbGs8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYiPnhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnJld3JpdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+cmlnaHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2hlY2tGaWxlbmFtZSI+eG1sQ2hlY2tGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld09yIj54bWxFeHBOZXdPcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1NlcSI+eG1sRXhwTmV3U2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRMaXN0RG9jIj54bWxTZXRMaXN0RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFRyZWVEb2MiPnhtbFNldFRyZWVEb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5yb2xlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua1NpbXBsZUxpbmtGdW5rIj54bGlua1NpbXBsZUxpbmtGdW5rPC9hPjxiciAvPgorPC9kZD48ZHQ+cm9sZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT48YnIgLz4KKzwvZGQ+PGR0PnJvbGxiYWNrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2Nhbk5hbWUiPnhtbFNjYW5OYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+cm9vdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2V4dGVybmFsU3Vic2V0Ij5leHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2V4dGVybmFsU3Vic2V0U0FYRnVuYyI+ZXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW50ZXJuYWxTdWJzZXQiPmludGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaW50ZXJuYWxTdWJzZXRTQVhGdW5jIj5pbnRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jR2V0Um9vdEVsZW1lbnQiPnhtbERvY0dldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1NldFJvb3RFbGVtZW50Ij54bWxEb2NTZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkZyb21Sb290Ij54bWxQYXR0ZXJuRnJvbVJvb3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkV4dGVybmFsU3Vic2V0Ij54bWxTQVgyRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkludGVybmFsU3Vic2V0Ij54bWxTQVgySW50ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHdkIj54bWxTaGVsbFB3ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1ZhbHVlVHJlZSI+eG1sWFBhdGhOZXdWYWx1ZVRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUm9vdCI+eG1sWFBhdGhSb290PC9hPjxiciAvPgorPC9kZD48ZHQ+cm91bmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUm91bmRGdW5jdGlvbiI+eG1sWFBhdGhSb3VuZEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+cm91dGluZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRG9jIj5kb2NiU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRmlsZSI+ZG9jYlNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VFbnRpdHkiPnhtbFNBWFBhcnNlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYVXNlclBhcnNlRmlsZSI+eG1sU0FYVXNlclBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFVzZXJQYXJzZU1lbW9yeSI+eG1sU0FYVXNlclBhcnNlTWVtb3J5PC9hPjxiciAvPgorPC9kZD48ZHQ+cnVsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+PGJyIC8+Cis8L2RkPjxkdD5ydWxlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCNYTUxfQ0FTVF9GUFRSIj5YTUxfQ0FTVF9GUFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUIj5YTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllfU1RSSUNUIj5YTUxfU0NIRU1BU19BTllfU1RSSUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+cnVuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQnl0ZUNvbnN1bWVkIj54bWxCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5ydW5uaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+cnVudGltZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfREVCVUdfUlVOVElNRSI+TElCWE1MX0RFQlVHX1JVTlRJTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX05BTUVMRU4iPlhNTF9NQVhfTkFNRUxFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbURpc3BsYXlMYXN0Ij54bWxNZW1EaXNwbGF5TGFzdDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyNC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMTA0NWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazI0Lmh0bWwKQEAgLTAsMCArMSw5NjkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+QVBJIEFscGhhYmV0aWMgSW5kZXggcy1zIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BUEkgQWxwaGFiZXRpYyBJbmRleCBzLXMgZm9yIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDIgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkEtQjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMS5odG1sIj5DLUM8L2E+Cis8YSBocmVmPSJBUEljaHVuazIuaHRtbCI+RC1FPC9hPgorPGEgaHJlZj0iQVBJY2h1bmszLmh0bWwiPkYtSTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNC5odG1sIj5KLU48L2E+Cis8YSBocmVmPSJBUEljaHVuazUuaHRtbCI+Ty1QPC9hPgorPGEgaHJlZj0iQVBJY2h1bms2Lmh0bWwiPlEtUjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNy5odG1sIj5TLVM8L2E+Cis8YSBocmVmPSJBUEljaHVuazguaHRtbCI+VC1VPC9hPgorPGEgaHJlZj0iQVBJY2h1bms5Lmh0bWwiPlYtWTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTAuaHRtbCI+Wi1hPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMS5odG1sIj5iLWI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEyLmh0bWwiPmMtYzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTMuaHRtbCI+ZC1kPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNC5odG1sIj5lLWU8L2E+Cis8YSBocmVmPSJBUEljaHVuazE1Lmh0bWwiPmYtZjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTYuaHRtbCI+Zy1oPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNy5odG1sIj5pLWk8L2E+Cis8YSBocmVmPSJBUEljaHVuazE4Lmh0bWwiPmotbDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTkuaHRtbCI+bS1tPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMC5odG1sIj5uLW48L2E+Cis8YSBocmVmPSJBUEljaHVuazIxLmh0bWwiPm8tbzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjIuaHRtbCI+cC1wPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMy5odG1sIj5xLXI8L2E+Cis8YSBocmVmPSJBUEljaHVuazI0Lmh0bWwiPnMtczwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjUuaHRtbCI+dC10PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNi5odG1sIj51LXY8L2E+Cis8YSBocmVmPSJBUEljaHVuazI3Lmh0bWwiPnctdzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjguaHRtbCI+eC14PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOS5odG1sIj55LXo8L2E+Cis8L2gyPjxoMj5MZXR0ZXIgczo8L2gyPjxkbD48ZHQ+czM5MDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCNYTUxfQ0FTVF9GUFRSIj5YTUxfQ0FTVF9GUFRSPC9hPjxiciAvPgorPC9kZD48ZHQ+c2FmZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI0JBRF9DQVNUIj5CQURfQ0FTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxJbml0aWFsaXplQ2F0YWxvZyI+eG1sSW5pdGlhbGl6ZUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyI+eG1sTG9hZENhdGFsb2dzPC9hPjxiciAvPgorPC9kZD48ZHQ+c2FmZXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9URVhUX0xFTkdUSCI+WE1MX01BWF9URVhUX0xFTkdUSDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNhbWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfQ09NTUVOVF9OT0RFIj5IVE1MX0NPTU1FTlRfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9FTlRJVFlfUkVGX05PREUiPkhUTUxfRU5USVRZX1JFRl9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1BJX05PREUiPkhUTUxfUElfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9QUkVTRVJWRV9OT0RFIj5IVE1MX1BSRVNFUlZFX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfVEVYVF9OT0RFIj5IVE1MX1RFWFRfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0JMQU5LX0NIIj5JU19CTEFOS19DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NoZWNrTmFtZXNwYWNlIj5jaGVja05hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlcGxhY2VOb2RlIj54bWxSZXBsYWNlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXROZXciPnhtbFN0cm5jYXROZXc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ21wTm9kZXMiPnhtbFhQYXRoQ21wTm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSWRGdW5jdGlvbiI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExhbmdGdW5jdGlvbiI+eG1sWFBhdGhMYW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIj54bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+c2F2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCI+aHRtbE5vZGVEdW1wRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIj54bWxOYW5vSFRUUEZldGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFNhdmUiPnhtbFNoZWxsU2F2ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNhdmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRmV0Y2giPnhtbE5hbm9IVFRQRmV0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2F2ZSI+eG1sTmFub0hUVFBTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlRW5jIj54bWxTYXZlRm9ybWF0RmlsZUVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnNhdmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBSZWFkIj54bWxOYW5vRlRQUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZWFkIj54bWxOYW5vSFRUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2F2ZSI+eG1sTmFub0hUVFBTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFdyaXRlIj54bWxTaGVsbFdyaXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+c2F2aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9PVVRQVVRfRU5BQkxFRCI+TElCWE1MX09VVFBVVF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9XUklURVJfRU5BQkxFRCI+TElCWE1MX1dSSVRFUl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ2xvc2UiPnhtbFNhdmVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlRG9jIj54bWxTYXZlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVGbHVzaCI+eG1sU2F2ZUZsdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVTZXRBdHRyRXNjYXBlIj54bWxTYXZlU2V0QXR0ckVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlU2V0RXNjYXBlIj54bWxTYXZlU2V0RXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0J1ZmZlciI+eG1sU2F2ZVRvQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZkIj54bWxTYXZlVG9GZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9GaWxlbmFtZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvSU8iPnhtbFNhdmVUb0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNheDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VEb2MiPmRvY2JTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VGaWxlIj5kb2NiU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZURvYyI+aHRtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZUZpbGUiPmh0bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUVudGl0eSI+eG1sU0FYUGFyc2VFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGUiPnhtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5Ij54bWxTQVhQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5zYXk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5zYXlzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb21tZW50Ij54bWxQYXJzZUNvbW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY2FuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlMb29rdXAiPmh0bWxFbnRpdHlMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eVZhbHVlTG9va3VwIj5odG1sRW50aXR5VmFsdWVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRXZhbE51bWJlciI+eG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+c2Nhbm5lcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbiI+eG1sSGFzaFNjYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsIj54bWxIYXNoU2NhbkZ1bGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY2FubmluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY2Fubm5lcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY2hlbWFzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0Ij54bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZyI+eG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxUeXBlIj54bWxTY2hlbWFHZXRWYWxUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld01lbVBhcnNlckN0eHQiPnhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVEb2MiPnhtbFNjaGVtYVZhbGlkYXRlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmlsZSI+eG1sU2NoZW1hVmFsaWRhdGVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIj54bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY2hlbWF0cm9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGF0ZURvYyI+eG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9hPjxiciAvPgorPC9kZD48ZHQ+c2NoZW1lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjX3htbFVSSSI+X3htbFVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY2hlbWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxQYXJzZUNoYXJFbmNvZGluZyI+eG1sUGFyc2VDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY29wZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnNQcm9wIj54bWxTZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0UHJvcCI+eG1sU2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFhtbExhbmciPnhtbFRleHRSZWFkZXJDb25zdFhtbExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIj54bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclhtbExhbmciPnhtbFRleHRSZWFkZXJYbWxMYW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+c2NvcGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdHbG9iYWxOcyI+eG1sTmV3R2xvYmFsTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zY3JpcHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzU2NyaXB0QXR0cmlidXRlIj5odG1sSXNTY3JpcHRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZWFyY2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUiI+WE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQXhpcyI+X3htbFhQYXRoQXhpczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaGFySW5SYW5nZSI+eG1sQ2hhckluUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZEF0dHJEZXNjIj54bWxHZXREdGRBdHRyRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkRWxlbWVudERlc2MiPnhtbEdldER0ZEVsZW1lbnREZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGROb3RhdGlvbkRlc2MiPnhtbEdldER0ZE5vdGF0aW9uRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUF0dHJEZXNjIj54bWxHZXREdGRRQXR0ckRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZFFFbGVtZW50RGVzYyI+eG1sR2V0RHRkUUVsZW1lbnREZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlU2VhcmNoIj54bWxMaXN0UmV2ZXJzZVNlYXJjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0U2VhcmNoIj54bWxMaXN0U2VhcmNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhc2VzdHIiPnhtbFN0cmNhc2VzdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjaHIiPnhtbFN0cmNocjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN0ciI+eG1sU3Ryc3RyPC9hPjxiciAvPgorPC9kZD48ZHQ+c2VhcmNoZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZVN1YiI+eG1sRGljdENyZWF0ZVN1YjwvYT48YnIgLz4KKzwvZGQ+PGR0PnNlY3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfUFJFU0VSVkVfTk9ERSI+SFRNTF9QUkVTRVJWRV9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ2hhckRhdGEiPnhtbFBhcnNlQ2hhckRhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmRDREFUQSI+eG1sVGV4dFdyaXRlckVuZENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEiPnhtbFRleHRXcml0ZXJTdGFydENEQVRBPC9hPjxiciAvPgorPC9kZD48ZHQ+c2VjdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPC9kZD48ZHQ+c2VlbXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIj54bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VRTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+c2VsZWN0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9QQVRURVJOX0VOQUJMRUQiPkxJQlhNTF9QQVRURVJOX0VOQUJMRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZWxlY3RzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnNlbGY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiPnhtbFhQYXRoTmV4dFNlbGY8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZW1hbnRpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdOZWdUcmFucyI+eG1sQXV0b21hdGFOZXdOZWdUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0RnJlZU5zIj54bWxYUGF0aE5vZGVTZXRGcmVlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZW1hbnRpY3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNlbnNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxDcmVhdGVFbnRpdGllc1RhYmxlIj54bWxDcmVhdGVFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPC9kZD48ZHQ+c2VwYXJhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyI+eG1sTG9hZENhdGFsb2dzPC9hPjxiciAvPgorPC9kZD48ZHQ+c2VwYXJhdGVseTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNlcTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXF1ZW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRmFjZXQiPl94bWxTY2hlbWFGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFyTm9kZUluZm9TZXEiPnhtbENsZWFyTm9kZUluZm9TZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbEdldFVURjhDaGFyIj54bWxHZXRVVEY4Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEluaXROb2RlSW5mb1NlcSI+eG1sSW5pdE5vZGVJbmZvU2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyQWRkTm9kZUluZm8iPnhtbFBhcnNlckFkZE5vZGVJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiPnhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cmxlbiI+eG1sVVRGOFN0cmxlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzdWIiPnhtbFVURjhTdHJzdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSWRGdW5jdGlvbiI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+c2VxdWVuY2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXF1cW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cElzTmlsbGFibGUiPnhtbEV4cElzTmlsbGFibGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXJpYWxpemF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9PVVRQVVRfRU5BQkxFRCI+TElCWE1MX09VVFBVVF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0J1ZmZlciI+eG1sU2F2ZVRvQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZkIj54bWxTYXZlVG9GZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9GaWxlbmFtZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvSU8iPnhtbFNhdmVUb0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENhdCI+eG1sU2hlbGxDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsV3JpdGUiPnhtbFNoZWxsV3JpdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUG9wRWxlbWVudCI+eG1sVmFsaWRhdGVQb3BFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hFbGVtZW50Ij54bWxWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+c2VyaWFsaXppbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvQnVmZmVyIj54bWxTYXZlVG9CdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvRmQiPnhtbFNhdmVUb0ZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZpbGVuYW1lIj54bWxTYXZlVG9GaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXJ2ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCNfeG1sVVJJIj5feG1sVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDaGVja1Jlc3BvbnNlIj54bWxOYW5vRlRQQ2hlY2tSZXNwb25zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uIj54bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0VG8iPnhtbE5hbm9GVFBDb25uZWN0VG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEN3ZCI+eG1sTmFub0ZUUEN3ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQRGVsZSI+eG1sTmFub0ZUUERlbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldCI+eG1sTmFub0ZUUEdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbiI+eG1sTmFub0ZUUEdldENvbm5lY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldFJlc3BvbnNlIj54bWxOYW5vRlRQR2V0UmVzcG9uc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldFNvY2tldCI+eG1sTmFub0ZUUEdldFNvY2tldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTGlzdCI+eG1sTmFub0ZUUExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFF1aXQiPnhtbE5hbm9GVFBRdWl0PC9hPjxiciAvPgorPC9kZD48ZHQ+c2V0OmRpZmZlcmVuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlmZmVyZW5jZSI+eG1sWFBhdGhEaWZmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+c2V0OmRpc3RpbmN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0Ij54bWxYUGF0aERpc3RpbmN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0U29ydGVkIj54bWxYUGF0aERpc3RpbmN0U29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+c2V0Omhhcy1zYW1lLW5vZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSGFzU2FtZU5vZGVzIj54bWxYUGF0aEhhc1NhbWVOb2RlczwvYT48YnIgLz4KKzwvZGQ+PGR0PnNldDppbnRlcnNlY3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSW50ZXJzZWN0aW9uIj54bWxYUGF0aEludGVyc2VjdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnNldDpsZWFkaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciPnhtbFhQYXRoTm9kZUxlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXQ6dHJhaWxpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nIj54bWxYUGF0aE5vZGVUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nIj54bWxYUGF0aFRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj54bWxYUGF0aFRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+c2V0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXR4bWxEZWZhdWx0U0FYSGFuZGxlciI+aW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIiPnhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlmZmVyZW5jZSI+eG1sWFBhdGhEaWZmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEludGVyc2VjdGlvbiI+eG1sWFBhdGhJbnRlcnNlY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXR0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXR1cHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVuY29kaW5nRGVjbCI+eG1sUGFyc2VFbmNvZGluZ0RlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZXZlcml0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFcnJvckZ1bmMiPnhtbFRleHRSZWFkZXJFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zZ21sc291cmNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0U3lzdGVtSWQiPmdldFN5c3RlbUlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJHZXRTeXN0ZW1JZCI+eG1sU0FYMkdldFN5c3RlbUlkPC9hPjxiciAvPgorPC9kZD48ZHQ+c2hhZG93ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvYT48YnIgLz4KKzwvZGQ+PGR0PnNoYWxsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+c2hhcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9NT0RVTEVfRVhURU5TSU9OIj5MSUJYTUxfTU9EVUxFX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkIj54bWxDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlRnJlZSI+eG1sTW9kdWxlRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZU9wZW4iPnhtbE1vZHVsZU9wZW48L2E+PGJyIC8+Cis8L2RkPjxkdD5zaGFyZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSGFzU2FtZU5vZGVzIj54bWxYUGF0aEhhc1NhbWVOb2RlczwvYT48YnIgLz4KKzwvZGQ+PGR0PnNoZWxsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIj54bWxTaGVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxCYXNlIj54bWxTaGVsbEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ2F0Ij54bWxTaGVsbENhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDbWQiPnhtbFNoZWxsQ21kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbERpciI+eG1sU2hlbGxEaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiPnhtbFNoZWxsRHU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTGlzdCI+eG1sU2hlbGxMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbExvYWQiPnhtbFNoZWxsTG9hZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFJlYWRsaW5lRnVuYyI+eG1sU2hlbGxSZWFkbGluZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsU2F2ZSI+eG1sU2hlbGxTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFZhbGlkYXRlIj54bWxTaGVsbFZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFdyaXRlIj54bWxTaGVsbFdyaXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+c2hvcnRlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wU3RyaW5nIj54bWxEZWJ1Z0R1bXBTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5zaG9ydGhhbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgiPnhtbFRleHRSZWFkZXJDb25zdFByZWZpeDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVmaXgiPnhtbFRleHRSZWFkZXJQcmVmaXg8L2E+PGJyIC8+Cis8L2RkPjxkdD5zaG93PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9WRVJTSU9OX0VYVFJBIj5MSUJYTUxfVkVSU0lPTl9FWFRSQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyI+eG1sTWVtU2hvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRTdHJpbmciPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbER1Ij54bWxTaGVsbER1PC9hPjxiciAvPgorPC9kZD48ZHQ+c2hvd248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD5zaWJsaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxBdHRyIj5feG1sQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0cmlidXRlIj5feG1sQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbER0ZCI+X3htbER0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudCI+X3htbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vZGUiPl94bWxOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV4dEVsZW1lbnRTaWJsaW5nIj54bWxOZXh0RWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUHJldmlvdXNFbGVtZW50U2libGluZyI+eG1sUHJldmlvdXNFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlQXBwZW5kIj54bWxTY2hlbWFWYWx1ZUFwcGVuZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0TmV4dCI+eG1sU2NoZW1hVmFsdWVHZXROZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+c2libGluZ3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkU2libGluZyI+eG1sQWRkU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTm9kZUxpc3QiPnhtbEZyZWVOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlUHJvcExpc3QiPnhtbEZyZWVQcm9wTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnNpZ248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zaWduYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjQVRUUklCVVRFX1VOVVNFRCI+QVRUUklCVVRFX1VOVVNFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNpZ25hdHVyZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDbWQiPnhtbFNoZWxsQ21kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFJlYWRsaW5lRnVuYyI+eG1sU2hlbGxSZWFkbGluZUZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zaWduczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNpbWlsYXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Tm9Oc1Byb3AiPnhtbEdldE5vTnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zIj54bWxOZXdOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIj54bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTm9kZVNldEl0ZW0iPnhtbFhQYXRoTm9kZVNldEl0ZW08L2E+PGJyIC8+Cis8L2RkPjxkdD5zaW1wbGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVCI+WE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rU2ltcGxlTGlua0Z1bmsiPnhsaW5rU2ltcGxlTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQiPnhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVNdXRleCI+eG1sRnJlZU11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyIj54bWxIYXNoU2Nhbm5lcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNSZWYiPnhtbElzUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE11dGV4TG9jayI+eG1sTXV0ZXhMb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE11dGV4VW5sb2NrIj54bWxNdXRleFVubG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdNdXRleCI+eG1sTmV3TXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNpbXBsZVR5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9MSVNUIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQyI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVCI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT048L2E+PGJyIC8+Cis8L2RkPjxkdD5zaW1wbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zaW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZEVsZW1lbnRDb3VudCI+eG1sQ2hpbGRFbGVtZW50Q291bnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGaXJzdEVsZW1lbnRDaGlsZCI+eG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTGFzdEVsZW1lbnRDaGlsZCI+eG1sTGFzdEVsZW1lbnRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXh0RWxlbWVudFNpYmxpbmciPnhtbE5leHRFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+c2luZ2xlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVRfQ0giPklTX0RJR0lUX0NIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9URVhUX0xFTkdUSCI+WE1MX01BWF9URVhUX0xFTkdUSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIj54bWxWYWxpZGF0ZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCI+eG1sVmFsaWRhdGVOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdOb2RlU2V0Ij54bWxYUGF0aE5ld05vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb2xsYXBzZWRSYW5nZSI+eG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zaW5nbGUtYnl0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVJfQ0giPklTX0NIQVJfQ0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUl9DSCI+SVNfRVhURU5ERVJfQ0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19QVUJJRENIQVJfQ0giPklTX1BVQklEQ0hBUl9DSDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNpdGUxPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNpdGUyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNpemVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNraXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTa2lwQmxhbmtDaGFycyI+eG1sU2tpcEJsYW5rQ2hhcnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5za2lwcGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTa2lwQmxhbmtDaGFycyI+eG1sU2tpcEJsYW5rQ2hhcnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zbG90PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5zbG90czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+c21hbGxlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSVVuZXNjYXBlU3RyaW5nIj54bWxVUklVbmVzY2FwZVN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnNtYWxsZXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENlaWxpbmdGdW5jdGlvbiI+eG1sWFBhdGhDZWlsaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zb2NrZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrRmlsZW5hbWUiPnhtbENoZWNrRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldFNvY2tldCI+eG1sTmFub0ZUUEdldFNvY2tldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNvZnR3YXJlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9URVNUX1ZFUlNJT04iPkxJQlhNTF9URVNUX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9kZVR5cGUiPnhtbFRleHRSZWFkZXJOb2RlVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNvbHV0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCI+eG1sTm9ybWFsaXplV2luZG93c1BhdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5zb21lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NLSVBfSURTIj5YTUxfU0tJUF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjY2hhcmFjdGVyc1NBWEZ1bmMiPmNoYXJhY3RlcnNTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZSI+aWdub3JhYmxlV2hpdGVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtU2V0dXAiPnhtbEdjTWVtU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sR2V0VGhyZWFkSWQiPnhtbEdldFRocmVhZElkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sSGFuZGxlRW50aXR5Ij54bWxIYW5kbGVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1TZXR1cCI+eG1sTWVtU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQ2hhcmFjdGVycyI+eG1sU0FYMkNoYXJhY3RlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UiPnhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AiPnhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2VzcyI+eG1sWEluY2x1ZGVQcm9jZXNzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNvbWV0aW1lczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5zb21ld2hhdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnNvcnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckFkZE5vZGVJbmZvIj54bWxQYXJzZXJBZGROb2RlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mb0luZGV4Ij54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXN0aW5jdCI+eG1sWFBhdGhEaXN0aW5jdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXN0aW5jdFNvcnRlZCI+eG1sWFBhdGhEaXN0aW5jdFNvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nIj54bWxYUGF0aExlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nIj54bWxYUGF0aE5vZGVMZWFkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIj54bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZyI+eG1sWFBhdGhOb2RlVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIj54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZyI+eG1sWFBhdGhUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNvdXJjZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoQ29udGV4dCI+X3htbFhQYXRoQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRJTyI+aHRtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxHZXRNZXRhRW5jb2RpbmciPmh0bWxHZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRJTyI+aHRtbFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrRmlsZW5hbWUiPnhtbENoZWNrRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbENvcHlFcnJvciI+eG1sQ29weUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRJTyI+eG1sQ3R4dFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbE5ld1RleHRSZWFkZXIiPnhtbE5ld1RleHRSZWFkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZElPIj54bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JJTyI+eG1sUmVhZGVyRm9ySU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdJTyI+eG1sUmVhZGVyTmV3SU88L2E+PGJyIC8+Cis8L2RkPjxkdD5zb3VyY2VEb2M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+c291cmNlZm9yZ2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNJbmYiPnhtbFhQYXRoSXNJbmY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNOYU4iPnhtbFhQYXRoSXNOYU48L2E+PGJyIC8+Cis8L2RkPjxkdD5zcGFjZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCI+aHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jQ29udGVudER1bXBPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQiPmh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiPmh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wT3V0cHV0Ij5odG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTYXZlRmlsZUVuYyI+aHRtbFNhdmVGaWxlRW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2F2ZUZpbGVGb3JtYXQiPmh0bWxTYXZlRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRm9ybWF0RHVtcCI+eG1sRG9jRm9ybWF0RHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZUVuYyI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5DTmFtZSI+eG1sVmFsaWRhdGVOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOTVRva2VuIj54bWxWYWxpZGF0ZU5NVG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOYW1lIj54bWxWYWxpZGF0ZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVRTmFtZSI+eG1sVmFsaWRhdGVRTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnNwYW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdDdXJyZW50Q2hhciI+eG1sU3RyaW5nQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5zcGVjPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZEVsZW1lbnRDb3VudCI+eG1sQ2hpbGRFbGVtZW50Q291bnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRmlyc3RFbGVtZW50Q2hpbGQiPnhtbEZpcnN0RWxlbWVudENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV4dEVsZW1lbnRTaWJsaW5nIj54bWxOZXh0RWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIj54bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+c3BlYzo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CQVNFQ0hBUiI+SVNfQkFTRUNIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOSyI+SVNfQkxBTks8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CWVRFX0NIQVIiPklTX0JZVEVfQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DT01CSU5JTkciPklTX0NPTUJJTklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0RJR0lUIj5JU19ESUdJVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0lERU9HUkFQSElDIj5JU19JREVPR1JBUEhJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0xFVFRFUiI+SVNfTEVUVEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfUFVCSURDSEFSIj5JU19QVUJJRENIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD5zcGVjaWFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NLSVBfSURTIj5YTUxfU0tJUF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hNTF9JRCI+WE1MX1hNTF9JRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfWE1MX05BTUVTUEFDRSI+WE1MX1hNTF9OQU1FU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGUiPnhtbE5ld0RvY05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50Ij54bWxOb2RlQWRkQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudExlbiI+eG1sTm9kZUFkZENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnQiPnhtbE5vZGVTZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50TGVuIj54bWxOb2RlU2V0Q29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVJhd0xlbiI+eG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+c3BlY2lhbGl6ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERPTVdyYXBDdHh0Ij5feG1sRE9NV3JhcEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+c3BlY2lmaWM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFMT0dfUEkiPlhNTF9DQVRBTE9HX1BJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0Ij54bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5zcGVjaWZpY2F0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9YTUxfTkFNRVNQQUNFIj5YTUxfWE1MX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zcGVjaWZpY2F0aW9uczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnNwZWNpZnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUIj5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIj54bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclN0YW5kYWxvbmUiPnhtbFRleHRSZWFkZXJTdGFuZGFsb25lPC9hPjxiciAvPgorPC9kZD48ZHQ+c3BlY2lmeWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyI+eG1sTWFsbG9jQXRvbWljTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jTG9jIj54bWxNYWxsb2NMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1NYWxsb2MiPnhtbE1lbU1hbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVJlYWxsb2MiPnhtbE1lbVJlYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jTG9jIj54bWxSZWFsbG9jTG9jPC9hPjxiciAvPgorPC9kZD48ZHQ+c3BlZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPjxiciAvPgorPC9kZD48ZHQ+c3BlZWR1cDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFN0cmluZyI+eG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+c3BsaXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSWRGdW5jdGlvbiI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhY2tlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoUGFyc2VyQ29udGV4dCI+X3htbFhQYXRoUGFyc2VyQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFB1c2hJbnB1dCI+eG1sUHVzaElucHV0PC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhZ2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIj5YTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzE8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdGFtcHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhbmRhbG9uZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpc1N0YW5kYWxvbmUiPmlzU3RhbmRhbG9uZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySXNTdGFuZGFsb25lIj54bWxTQVgySXNTdGFuZGFsb25lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclN0YW5kYWxvbmUiPnhtbFRleHRSZWFkZXJTdGFuZGFsb25lPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhbmRhbG9uZT08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdGFuZGFsb25lPzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2lzU3RhbmRhbG9uZVNBWEZ1bmMiPmlzU3RhbmRhbG9uZVNBWEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdGFuZGFyZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VEb2N1bWVudCI+ZG9jYlBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRG9jdW1lbnQiPmh0bWxQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VEb2N1bWVudCI+eG1sUGFyc2VEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0YXJ0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydERvY3VtZW50Ij5zdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnREb2N1bWVudFNBWEZ1bmMiPnN0YXJ0RG9jdW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50TnNTQVgyRnVuYyI+c3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldFN0YXJ0Ij54bWxFeHBHZXRTdGFydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydERvY3VtZW50Ij54bWxTQVgyU3RhcnREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50TnMiPnhtbFNBWDJTdGFydEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIj54bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hFbGVtZW50Ij54bWxWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZSI+eG1sWFB0ck5ld1JhbmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhcnQtdGFnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhcnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0YXJ0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3RXBzaWxvbiI+eG1sQXV0b21hdGFOZXdFcHNpbG9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld05lZ1RyYW5zIj54bWxBdXRvbWF0YU5ld05lZ1RyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24iPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoYXJSZWYiPnhtbE5ld0NoYXJSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyVHJlZSI+eG1sTmV3VGV4dFdyaXRlclRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCI+eG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIj54bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZSI+eG1sWFB0ck5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0Ij54bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiPnhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZXMiPnhtbFhQdHJOZXdSYW5nZU5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUiPnhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnRzIj54bWxYUHRyTmV3UmFuZ2VQb2ludHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdGFydHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uIj54bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0YXJ0cy13aXRoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbiI+eG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdGFydHVwPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yIj5zZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIj5zZXREb2N1bWVudExvY2F0b3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEluaXRpYWxpemVDYXRhbG9nIj54bWxJbml0aWFsaXplQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyI+eG1sTG9hZENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2dzIj54bWxMb2FkQ2F0YWxvZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciI+eG1sU0FYMlNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0YXNoZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQXV0aEhlYWRlciI+eG1sTmFub0hUVFBBdXRoSGVhZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2hlY2tGaWxlbmFtZSI+eG1sQ2hlY2tGaWxlbmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0YXRlZnVsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+c3RhdGljPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0YXR1czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc1ZhbGlkIj54bWxUZXh0UmVhZGVySXNWYWxpZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTdGFuZGFsb25lIj54bWxUZXh0UmVhZGVyU3RhbmRhbG9uZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0ZGVycjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0ZGluPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+c3Rkb3V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2F2ZUZpbGUiPmh0bWxTYXZlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlIj54bWxTYXZlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZSI+eG1sU2F2ZUZvcm1hdEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIj54bWxTaGVsbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0ZXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBTdHJpbmdEZXJpdmUiPnhtbEV4cFN0cmluZ0Rlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0ZXBzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sTm9ybWFsaXplVVJJUGF0aCI+eG1sTm9ybWFsaXplVVJJUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdGlsbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlRnJlZSI+eG1sTW9kdWxlRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdG9wPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdG9wczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdG9yYWdlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnNpemUiPnhtbFVURjhTdHJzaXplPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RvcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjVVRGOFRvSHRtbCI+VVRGOFRvSHRtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW5jb2RlRW50aXRpZXMiPmh0bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjaXNvbGF0MVRvVVRGOCI+aXNvbGF0MVRvVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0TGFuZ3VhZ2UiPnhtbEV4cEdldExhbmd1YWdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZSI+eG1sR2V0RmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlIj54bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmciPnhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlWYWx1ZSI+eG1sUGFyc2VFbnRpdHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiI+eG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdG9yZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyR3JvdyI+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2giPnhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGQiPnhtbEJ1ZmZlckFkZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cmNhc2VjbXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXNlY21wIj54bWxTdHJjYXNlY21wPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RyY2F0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2F0Ij54bWxTdHJjYXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJjaHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjaHIiPnhtbFN0cmNocjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cmNtcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNtcCI+eG1sU3RyY21wPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RyZHVwPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhclN0cmR1cCI+eG1sQ2hhclN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtU2V0dXAiPnhtbEdjTWVtU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1HZXQiPnhtbE1lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVN0cmR1cExvYyI+eG1sTWVtU3RyZHVwTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5U3RyZHVwIj54bWxNZW1vcnlTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJkdXAiPnhtbFN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJlYW1hYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5TdHJlYW1hYmxlIj54bWxQYXR0ZXJuU3RyZWFtYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZpbGUiPnhtbFNjaGVtYVZhbGlkYXRlRmlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cmVhbWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCI+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJlYW1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2tpcEJsYW5rQ2hhcnMiPnhtbFNraXBCbGFua0NoYXJzPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RyaWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUIj5YTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllfU1RSSUNUIj5YTUxfU0NIRU1BU19BTllfU1RSSUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RyaW5nLS10aGF0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sTm9ybWFsaXplVVJJUGF0aCI+eG1sTm9ybWFsaXplVVJJUGF0aDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cmluZy1sZW5ndGg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJpbmc/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIj54bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+c3RyaW5naTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJpbmdzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RDcmVhdGVTdWIiPnhtbERpY3RDcmVhdGVTdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRMYW5ndWFnZSI+eG1sRXhwR2V0TGFuZ3VhZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRTdGFydCI+eG1sRXhwR2V0U3RhcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRGZWF0dXJlc0xpc3QiPnhtbEdldEZlYXR1cmVzTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuY29tcGlsZSI+eG1sUGF0dGVybmNvbXBpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBDb21waWxlIj54bWxSZWdleHBDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyRXF1YWwiPnhtbFN0ckVxdWFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2giPnhtbFN0cmVhbVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaEF0dHIiPnhtbFN0cmVhbVB1c2hBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXROZXciPnhtbFN0cm5jYXROZXc8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJpcHBpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJuY2FzZWNtcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXNlY21wIj54bWxTdHJuY2FzZWNtcDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cm5jYXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0Ij54bWxTdHJuY2F0PC9hPjxiciAvPgorPC9kZD48ZHQ+c3RybmNtcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jbXAiPnhtbFN0cm5jbXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJuZHVwPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhclN0cm5kdXAiPnhtbENoYXJTdHJuZHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmR1cCI+eG1sU3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJuZHVwIj54bWxVVEY4U3RybmR1cDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cnN0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhc2VzdHIiPnhtbFN0cmNhc2VzdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJzdHIiPnhtbFN0cnN0cjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cnVjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxGcmVlTXV0ZXgiPnhtbEZyZWVNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEZyZWVVUkkiPnhtbEZyZWVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3TXV0ZXgiPnhtbE5ld011dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvIj54bWxQYXJzZXJGaW5kTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJblR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlIj54bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSI+eG1sU2NoZW1hTmV3UU5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN0cnVjdHVyZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMiPnhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHJ1Y3R1cmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVEb2MiPnhtbEZyZWVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5zIj54bWxGcmVlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5zTGlzdCI+eG1sRnJlZU5zTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQUNhdGFsb2ciPnhtbExvYWRBQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdSTXV0ZXgiPnhtbE5ld1JNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0ZyZWVFeGVjQ3R4dCI+eG1sUmVnRnJlZUV4ZWNDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+c3RydXR1cmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlIj54bWxSZWxheE5HUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2UiPnhtbFNjaGVtYVBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZSI+eG1sU2NoZW1hdHJvblBhcnNlPC9hPjxiciAvPgorPC9kZD48ZHQ+c3R1ZmY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdHlsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1Yi1lbGVtZW50czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+c3ViZWxlbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEZWZhdWx0U3ViZWxlbWVudCI+aHRtbERlZmF1bHRTdWJlbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdEb2NFbGVtZW50Q29udGVudCI+eG1sTmV3RG9jRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbE5ld0VsZW1lbnRDb250ZW50Ij54bWxOZXdFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1YmVsZW1lbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJleHByZXNzaW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBTdWJzdW1lIj54bWxFeHBTdWJzdW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+c3ViZXhwcmVzc2lvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJqZWN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+c3VibGFuZ3VhZ2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1Ym1pdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MiPnhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJzZXF1ZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBPcGVuVyI+eG1sSU9IVFRQT3Blblc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJzZXQ/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jIj5oYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJzZXRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXRQYXJhbWV0ZXJFbnRpdHkiPnhtbEdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1YnN0aXR1aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1YnN0aXR1dGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+c3Vic3RpdHV0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9CT1RIIj5YTUxfU1VCU1RJVFVURV9CT1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfTk9ORSI+WE1MX1NVQlNUSVRVVEVfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9TVUJTVElUVVRFX1BFUkVGIj5YTUxfU1VCU1RJVFVURV9QRVJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9TVUJTVElUVVRFX1JFRiI+WE1MX1NVQlNUSVRVVEVfUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVCdWZHZXRDb250ZW50Ij54bWxOb2RlQnVmR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0Q29udGVudCI+eG1sTm9kZUdldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVZhbHVlIj54bWxQYXJzZUVudGl0eVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+c3Vic3RpdHV0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCI+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1YnN0aXR1dGlvbkdyb3VwPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJzdGl0dXRpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzIj54bWxYSW5jbHVkZVByb2Nlc3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc05vZGUiPnhtbFhJbmNsdWRlUHJvY2Vzc05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWUiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhPC9hPjxiciAvPgorPC9kZD48ZHQ+c3Vic3RpdHV0aW9uczo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9CTE9DS19SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT048L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJzdHJpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnQiPnhtbE5vZGVBZGRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50TGVuIj54bWxOb2RlQWRkQ29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN1YiI+eG1sU3Ryc3ViPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnN1YiI+eG1sVVRGOFN0cnN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJzdHJpbmctYWZ0ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+c3Vic3RyaW5nLWJlZm9yZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1YnRyYWN0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YlZhbHVlcyI+eG1sWFBhdGhTdWJWYWx1ZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWJ0cmVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNhdHRyaWJ1dGVTQVhGdW5jIj5hdHRyaWJ1dGVTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQiPnhtbEZyZWVEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVsZW1lbnRDb250ZW50Ij54bWxGcmVlRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVHJlZSI+eG1sU2F2ZVRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiPnhtbFNoZWxsRHU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsV3JpdGUiPnhtbFNoZWxsV3JpdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXhwYW5kIj54bWxUZXh0UmVhZGVyRXhwYW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5leHQiPnhtbFRleHRSZWFkZXJOZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nIj54bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRWxlbWVudCI+eG1sVmFsaWRhdGVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnczwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1Y2NlZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+c3VjY2VlZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5Ij54bWxIYXNoQWRkRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MiI+eG1sSGFzaEFkZEVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkzIj54bWxIYXNoQWRkRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIj54bWxIYXNoVXBkYXRlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVBcHBlbmQiPnhtbFNjaGVtYVZhbHVlQXBwZW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbXBhcmVWYWx1ZXMiPnhtbFhQYXRoQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPjxiciAvPgorPC9kZD48ZHQ+c3VjY2VlZHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrRmlsZW5hbWUiPnhtbENoZWNrRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWNjZXNzZnVsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nQWRkIj54bWxBQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1JlbW92ZSI+eG1sQUNhdGFsb2dSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkIj54bWxCdWZmZXJBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkSGVhZCI+eG1sQnVmZmVyQWRkSGVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDQ2F0Ij54bWxCdWZmZXJDQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNhdCI+eG1sQnVmZmVyQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0NvbnZlcnQiPnhtbENhdGFsb2dDb252ZXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZW1vdmUiPnhtbENhdGFsb2dSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ29udmVydFNHTUxDYXRhbG9nIj54bWxDb252ZXJ0U0dNTENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TGluZU5vIj54bWxHZXRMaW5lTm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB1c2hCYWNrIj54bWxMaXN0UHVzaEJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB1c2hGcm9udCI+eG1sTGlzdFB1c2hGcm9udDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlU2V0QXR0ckVzY2FwZSI+eG1sU2F2ZVNldEF0dHJFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVNldEVzY2FwZSI+eG1sU2F2ZVNldEVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbnNldE5zUHJvcCI+eG1sVW5zZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5zZXRQcm9wIj54bWxVbnNldFByb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWNjZXNzZnVsbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmV4dCI+eG1sVGV4dFJlYWRlck5leHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmciPnhtbFRleHRSZWFkZXJOZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkIj54bWxUZXh0UmVhZGVyUmVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1Y2Nlc3Npb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPC9kZD48ZHQ+c3VjY2Vzc2l2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWNoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFByb3AiPnhtbFNldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMYW5nRnVuY3Rpb24iPnhtbFhQYXRoTGFuZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRGcmVlTnMiPnhtbFhQYXRoTm9kZVNldEZyZWVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSb3VuZEZ1bmN0aW9uIj54bWxYUGF0aFJvdW5kRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWZmaXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX01PRFVMRV9FWFRFTlNJT04iPkxJQlhNTF9NT0RVTEVfRVhURU5TSU9OPC9hPjxiciAvPgorPC9kZD48ZHQ+c3VnZ2VzdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdWl0YWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iPnhtbE5ld0lPSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwQ29tcGlsZSI+eG1sUmVnZXhwQ29tcGlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1bTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdW1GdW5jdGlvbiI+eG1sWFBhdGhTdW1GdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1cGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1cGVyLXN0cmljdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoZWNrVVRGOCI+eG1sQ2hlY2tVVEY4PC9hPjxiciAvPgorPC9kZD48ZHQ+c3VwcGxpZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldFJlZnMiPnhtbEdldFJlZnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5zdXBwb3J0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldENvbm5lY3Rpb24iPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50Ij54bWxOb2RlQWRkQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudExlbiI+eG1sTm9kZUFkZENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5zdXBwb3NlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNNaXhlZEVsZW1lbnQiPnhtbElzTWl4ZWRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlIj54bWxOZXdEb2NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGVFYXROYW1lIj54bWxOZXdEb2NOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudCI+eG1sTm9kZUFkZENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnRMZW4iPnhtbE5vZGVBZGRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmR1cCI+eG1sU3RyZHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+c3VyZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ2xvc2UiPnhtbFNhdmVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlRmx1c2giPnhtbFNhdmVGbHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUiPnhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnN1cnByaXNpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+c3Vycm9nYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ0hBUiI+SVNfQ0hBUjwvYT48YnIgLz4KKzwvZGQ+PGR0PnN3aXRjaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUmVmZXJlbmNlIj54bWxQYXJzZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFB1c2hJbnB1dCI+eG1sUHVzaElucHV0PC9hPjxiciAvPgorPC9kZD48ZHQ+c3ltYm9sPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlU3ltYm9sIj54bWxNb2R1bGVTeW1ib2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5zeW5jaHJvbml6aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld011dGV4Ij54bWxOZXdNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdSTXV0ZXgiPnhtbE5ld1JNdXRleDwvYT48YnIgLz4KKzwvZGQ+PGR0PnN5bnRheDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+c3lzdGVtYXRpY2FsbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzSUQiPnhtbElzSUQ8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDZiNTBlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyNS5odG1sCkBAIC0wLDAgKzEsNDQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IHQtdCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggdC10IGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIHQ6PC9oMj48ZGw+PGR0PnRhZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdXRvQ2xvc2VUYWciPmh0bWxBdXRvQ2xvc2VUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sVGFnTG9va3VwIj5odG1sVGFnTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc3RhcnRFbGVtZW50Ij5zdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnRTQVhGdW5jIj5zdGFydEVsZW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXROYW1lIj54bWxOb2RlU2V0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5kVGFnIj54bWxQYXJzZUVuZFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudCI+eG1sU0FYMlN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCI+eG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+dGFnZ2VkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaXNTdGFuZGFsb25lIj5pc1N0YW5kYWxvbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpc1N0YW5kYWxvbmVTQVhGdW5jIj5pc1N0YW5kYWxvbmVTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcCI+eG1sTmV3TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcEVhdE5hbWUiPnhtbE5ld05zUHJvcEVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMklzU3RhbmRhbG9uZSI+eG1sU0FYMklzU3RhbmRhbG9uZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnRhZ3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbEdldE1ldGFFbmNvZGluZyI+aHRtbEdldE1ldGFFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSGFuZGxlT21pdHRlZEVsZW0iPmh0bWxIYW5kbGVPbWl0dGVkRWxlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxJbml0QXV0b0Nsb3NlIj5odG1sSW5pdEF1dG9DbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSXNBdXRvQ2xvc2VkIj5odG1sSXNBdXRvQ2xvc2VkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2V0TWV0YUVuY29kaW5nIj5odG1sU2V0TWV0YUVuY29kaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+dGFrZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxMb2NrTGlicmFyeSI+eG1sTG9ja0xpYnJhcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD50YWtlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD50YWtlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPC9kZD48ZHQ+dGF0a2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8L2RkPjxkdD50ZWxsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0NPTVBMRVRFX0FUVFJTIj5YTUxfQ09NUExFVEVfQVRUUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVURUNUX0lEUyI+WE1MX0RFVEVDVF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVsbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmUiPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4iPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm48L2E+PGJyIC8+Cis8L2RkPjxkdD50ZW1wb3Jhcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI194bWxWYWxpZEN0eHQiPl94bWxWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE9wZW5XIj54bWxJT0hUVFBPcGVuVzwvYT48YnIgLz4KKzwvZGQ+PGR0PnRlcm1pbmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVybWluYWxzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVybWluYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWREb2MiPmh0bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZERvYyI+aHRtbFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydEVsZW1lbnQiPnN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudFNBWEZ1bmMiPnN0YXJ0RWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ0NhdCI+eG1sQnVmZmVyQ0NhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDYXQiPnhtbEJ1ZmZlckNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRG9jIj54bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5Ij54bWxEb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zTGlzdCI+eG1sR2V0TnNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlYWREb2MiPnhtbFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JEb2MiPnhtbFJlYWRlckZvckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0RvYyI+eG1sUmVhZGVyTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnQiPnhtbFNBWDJTdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVybWluYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmR1cCI+eG1sU3RyZHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVybXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVxdWFsVmFsdWVzIj54bWxYUGF0aEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIj54bWxYUGF0aE5vdEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVzdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+dGVzdGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cENvbXBpbGUiPnhtbFJlZ2V4cENvbXBpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD50ZXh0LTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD50ZXh0LW5vZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSXNCbGFua05vZGUiPnhtbElzQmxhbmtOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+dGV4dERlY2w/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbFN1YnNldCI+eG1sUGFyc2VFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnRoZWlyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQiPnhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyI+eG1sTG9hZENhdGFsb2dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQWRkVmFsdWVzIj54bWxYUGF0aEFkZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXZWYWx1ZXMiPnhtbFhQYXRoRGl2VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNb2RWYWx1ZXMiPnhtbFhQYXRoTW9kVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE11bHRWYWx1ZXMiPnhtbFhQYXRoTXVsdFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJWYWx1ZXMiPnhtbFhQYXRoU3ViVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFZhbHVlRmxpcFNpZ24iPnhtbFhQYXRoVmFsdWVGbGlwU2lnbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnRoZW08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRMYW5ndWFnZSI+eG1sRXhwR2V0TGFuZ3VhZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRTdGFydCI+eG1sRXhwR2V0U3RhcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUmVhZCI+eG1sTmFub0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVhZCI+eG1sTmFub0hUVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+dGhlc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoZWNrVVRGOCI+eG1sQ2hlY2tVVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+dGhleTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyRXF1YWwiPnhtbFN0ckVxdWFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUUVxdWFsIj54bWxTdHJRRXF1YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmR1cCI+eG1sU3RyZHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+dGhpcmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MyI+eG1sSGFzaEFkZEVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMyI+eG1sSGFzaExvb2t1cDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFFMb29rdXAzIj54bWxIYXNoUUxvb2t1cDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbjMiPnhtbEhhc2hTY2FuMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24iPnhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD50aGlzPzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD50aG9zZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnRob3VnaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5Ij54bWxEb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+dGhyZWFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9USFJFQURfRU5BQkxFRCI+TElCWE1MX1RIUkVBRF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sR2V0R2xvYmFsU3RhdGUiPnhtbEdldEdsb2JhbFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxHZXRMYXN0RXJyb3IiPnhtbEdldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sSW5pdFRocmVhZHMiPnhtbEluaXRUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEluaXRpYWxpemVDYXRhbG9nIj54bWxJbml0aWFsaXplQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxJc01haW5UaHJlYWQiPnhtbElzTWFpblRocmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyI+eG1sTG9hZENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2dzIj54bWxMb2FkQ2F0YWxvZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD50aHJvdWdoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbE5vcm1hbGl6ZVVSSVBhdGgiPnhtbE5vcm1hbGl6ZVVSSVBhdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD50aHVtYmxlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHdkIj54bWxTaGVsbFB3ZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnRodXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3RvciI+eG1sWFBhdGhOZXh0QW5jZXN0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvYT48YnIgLz4KKzwvZGQ+PGR0PnRpbWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnRpdGxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua1NpbXBsZUxpbmtGdW5rIj54bGlua1NpbXBsZUxpbmtGdW5rPC9hPjxiciAvPgorPC9kZD48ZHQ+dGl0bGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+PGJyIC8+Cis8L2RkPjxkdD50b2RvOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8L2RkPjxkdD50b2tlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sRnJlZU11dGV4Ij54bWxGcmVlTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhMb2NrIj54bWxNdXRleExvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhVbmxvY2siPnhtbE11dGV4VW5sb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld011dGV4Ij54bWxOZXdNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZzIiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjwvYT48YnIgLz4KKzwvZGQ+PGR0PnRva2VuX3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3Uk11dGV4Ij54bWxOZXdSTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4TG9jayI+eG1sUk11dGV4TG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXhVbmxvY2siPnhtbFJNdXRleFVubG9jazwvYT48YnIgLz4KKzwvZGQ+PGR0PnRva2VuczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldExhbmd1YWdlIj54bWxFeHBHZXRMYW5ndWFnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldFN0YXJ0Ij54bWxFeHBHZXRTdGFydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRpb25UeXBlIj54bWxQYXJzZUVudW1lcmF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJZEZ1bmN0aW9uIj54bWxYUGF0aElkRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD50b288L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCNERUJVR19NRU1PUlkiPkRFQlVHX01FTU9SWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wIj5odG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGUiPmh0bWxOb2RlRHVtcEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQiPmh0bWxOb2RlRHVtcEZpbGVGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCI+aHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBPdXRwdXQiPmh0bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1EdW1wIj54bWxFbGVtRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTm9kZSI+eG1sRnJlZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5vZGVMaXN0Ij54bWxGcmVlTm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZVByb3AiPnhtbEZyZWVQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVQcm9wTGlzdCI+eG1sRnJlZVByb3BMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXREb2NFbnRpdHkiPnhtbEdldERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcCI+eG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXBPdXRwdXQiPnhtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZW1vdmVQcm9wIj54bWxSZW1vdmVQcm9wPC9hPjxiciAvPgorPC9kZD48ZHQ+dG9wPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX0JPT0xFQU4iPkNBU1RfVE9fQk9PTEVBTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0FTVF9UT19OVU1CRVIiPkNBU1RfVE9fTlVNQkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX1NUUklORyI+Q0FTVF9UT19TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NIRUNLX1RZUEUiPkNIRUNLX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NIRUNLX1RZUEUwIj5DSEVDS19UWVBFMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMIj5YTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaW5wdXRQb3AiPmlucHV0UG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaW5wdXRQdXNoIj5pbnB1dFB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNuYW1lUG9wIj5uYW1lUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbmFtZVB1c2giPm5hbWVQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVBvcCI+bm9kZVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25vZGVQdXNoIj5ub2RlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjdmFsdWVQb3AiPnZhbHVlUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVB1c2giPnZhbHVlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTlNEZWYiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQb3BJbnB1dENhbGxiYWNrcyI+eG1sUG9wSW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQdXNoSW5wdXQiPnhtbFB1c2hJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFRyZWVEb2MiPnhtbFNldFRyZWVEb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD50b3RhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjX3htbE91dHB1dEJ1ZmZlciI+X3htbE91dHB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEZlYXR1cmVzTGlzdCI+eG1sR2V0RmVhdHVyZXNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnN1YiI+eG1sVVRGOFN0cnN1YjwvYT48YnIgLz4KKzwvZGQ+PGR0PnRvdWNoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+dHJhY2s8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+dHJhY2tpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclByaW50RmlsZUNvbnRleHQiPnhtbFBhcnNlclByaW50RmlsZUNvbnRleHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmFpbGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmciPnhtbFhQYXRoTm9kZVRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhaWxpbmciPnhtbFhQYXRoVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmFuY29kaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlVG8iPnhtbFNhdmVGaWxlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT48YnIgLz4KKzwvZGQ+PGR0PnRyYW5zYWN0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNhdmUiPnhtbE5hbm9IVFRQU2F2ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnRyYW5zY29kaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNGaXJzdExpbmUiPnhtbENoYXJFbmNGaXJzdExpbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNJbkZ1bmMiPnhtbENoYXJFbmNJbkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlIj54bWxPdXRwdXRCdWZmZXJXcml0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyI+eG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyR3JvdyI+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2giPnhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmFuc2ZlcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQSSI+eG1sUGFyc2VQSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnRyYW5zZm9ybWF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jQ2xvc2VGdW5jIj54bWxDaGFyRW5jQ2xvc2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jRmlyc3RMaW5lIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jSW5GdW5jIj54bWxDaGFyRW5jSW5GdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmFuc2Zvcm1lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRHVtcFRyZWUiPnhtbFJlbGF4TkdEdW1wVHJlZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnRyYW5zaXRpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+dHJhbnNsYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+dHJhbnNsYXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmFuc21pdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2Vycm9yU0FYRnVuYyI+ZXJyb3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZmF0YWxFcnJvclNBWEZ1bmMiPmZhdGFsRXJyb3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjd2FybmluZ1NBWEZ1bmMiPndhcm5pbmdTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvciI+eG1sUGFyc2VyRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5RXJyb3IiPnhtbFBhcnNlclZhbGlkaXR5RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5V2FybmluZyI+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJXYXJuaW5nIj54bWxQYXJzZXJXYXJuaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+dHJhbnNwb3J0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbG9zZSI+eG1sTmFub0ZUUENsb3NlPC9hPjxiciAvPgorPC9kZD48ZHQ+dHJhdmVyc2FsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENoaWxkRWxlbWVudENvdW50Ij54bWxDaGlsZEVsZW1lbnRDb3VudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGaXJzdEVsZW1lbnRDaGlsZCI+eG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTGFzdEVsZW1lbnRDaGlsZCI+eG1sTGFzdEVsZW1lbnRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXh0RWxlbWVudFNpYmxpbmciPnhtbE5leHRFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIj54bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3RvciI+eG1sWFBhdGhOZXh0QW5jZXN0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QXR0cmlidXRlIj54bWxYUGF0aE5leHRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dENoaWxkIj54bWxYUGF0aE5leHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudCI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dE5hbWVzcGFjZSI+eG1sWFBhdGhOZXh0TmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQYXJlbnQiPnhtbFhQYXRoTmV4dFBhcmVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiPnhtbFhQYXRoTmV4dFNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnRyYXZlcnNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+dHJlYW1pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmVhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnRyaWVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJNZW1vcnkiPnhtbFJlY292ZXJNZW1vcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lOUFVUX0NIVU5LIj5JTlBVVF9DSFVOSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUmVhZCI+eG1sTmFub0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVhZCI+eG1sTmFub0hUVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGUiPnhtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5Ij54bWxTQVhQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD50cmlvPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI1dJVEhPVVRfVFJJTyI+V0lUSE9VVF9UUklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI1dJVEhfVFJJTyI+V0lUSF9UUklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzSW5mIj54bWxYUGF0aElzSW5mPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzTmFOIj54bWxYUGF0aElzTmFOPC9hPjxiciAvPgorPC9kZD48ZHQ+dHJvdWJsZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VySW5wdXQiPl94bWxQYXJzZXJJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyI+eG1sU2VhcmNoTnM8L2E+PGJyIC8+Cis8L2RkPjxkdD50cnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NBU1RfVE9fQk9PTEVBTiI+Q0FTVF9UT19CT09MRUFOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX05VTUJFUiI+Q0FTVF9UT19OVU1CRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NBU1RfVE9fU1RSSU5HIj5DQVNUX1RPX1NUUklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNVVEY4VG9IdG1sIj5VVEY4VG9IdG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNVVEY4VG9pc29sYXQxIj5VVEY4VG9pc29sYXQxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JFbmNvZGVFbnRpdGllcyI+ZG9jYkVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNpc29sYXQxVG9VVEY4Ij5pc29sYXQxVG9VVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGaWxlT3BlbiI+eG1sRmlsZU9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRmV0Y2giPnhtbE5hbm9IVFRQRmV0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kIj54bWxOYW5vSFRUUE1ldGhvZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2RSZWRpciI+eG1sTmFub0hUVFBNZXRob2RSZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuIj54bWxOYW5vSFRUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlblJlZGlyIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0UmVhZCI+eG1sUGFyc2VySW5wdXRSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVJvb3QiPnhtbFZhbGlkYXRlUm9vdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnR0cmlidXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZSI+eG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnR1bmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnR1cGxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTIiPnhtbEhhc2hBZGRFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MyI+eG1sSGFzaEFkZEVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMiI+eG1sSGFzaExvb2t1cDI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaExvb2t1cDMiPnhtbEhhc2hMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMiI+eG1sSGFzaFFMb29rdXAyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMyI+eG1sSGFzaFFMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbjMiPnhtbEhhc2hTY2FuMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MyI+eG1sSGFzaFVwZGF0ZUVudHJ5MzwvYT48YnIgLz4KKzwvZGQ+PGR0PnR1cGxlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkyIj54bWxIYXNoQWRkRW50cnkyPC9hPjxiciAvPgorPC9kZD48ZHQ+dHVybjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sQm9vbFRvVGV4dCI+eG1sQm9vbFRvVGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnR1cm5lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTGluZU51bWJlcnNEZWZhdWx0Ij54bWxMaW5lTnVtYmVyc0RlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD50d288L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5TGFzdCI+eG1sTWVtRGlzcGxheUxhc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0TmV3Ij54bWxTdHJuY2F0TmV3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFRleHRNZXJnZSI+eG1sVGV4dE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOENoYXJjbXAiPnhtbFVURjhDaGFyY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENtcE5vZGVzIj54bWxYUGF0aENtcE5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpZmZlcmVuY2UiPnhtbFhQYXRoRGlmZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJvdW5kRnVuY3Rpb24iPnhtbFhQYXRoUm91bmRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UiPnhtbFhQdHJMb2NhdGlvblNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD50d28tY2hhcmFjdGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPC9kZD48ZHQ+dHlwZTo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+dHlwZWZpeGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD50eXBlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVdhbnRzQW55Tm9kZSI+eG1sU3RyZWFtV2FudHNBbnlOb2RlPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazI2Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazI2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZlNDEwYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjYuaHRtbApAQCAtMCwwICsxLDMyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCB1LXYgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IHUtdiBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciB1OjwvaDI+PGRsPjxkdD51Z2x5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlMb29rdXAiPmh0bWxFbnRpdHlMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eVZhbHVlTG9va3VwIj5odG1sRW50aXR5VmFsdWVMb29rdXA8L2E+PGJyIC8+Cis8L2RkPjxkdD51bmFyeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIj54bWxYUGF0aFZhbHVlRmxpcFNpZ248L2E+PGJyIC8+Cis8L2RkPjxkdD51bmNsZWFuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjX3htbFVSSSI+X3htbFVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnVuY29tcHJlc3NlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Q29tcHJlc3NNb2RlIj54bWxHZXRDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0RG9jQ29tcHJlc3NNb2RlIj54bWxHZXREb2NDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0Q29tcHJlc3NNb2RlIj54bWxTZXRDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0RG9jQ29tcHJlc3NNb2RlIj54bWxTZXREb2NDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD51bmRlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFRyZWVEb2MiPnhtbFNldFRyZWVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiPnhtbFNoZWxsRHU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsV3JpdGUiPnhtbFNoZWxsV3JpdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRWxlbWVudCI+eG1sVmFsaWRhdGVFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+dW5kZXJseWluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDbG9zZSI+eG1sVGV4dFJlYWRlckNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIj54bWxUZXh0UmVhZGVyQ3VycmVudE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD51bmRlcnN0YW5kPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPC9kZD48ZHQ+dW5lc2NhcGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD51bmVzY2FwZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZpbGVPcGVuIj54bWxGaWxlT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudCI+eG1sTm9kZUFkZENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnRMZW4iPnhtbE5vZGVBZGRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJVW5lc2NhcGVTdHJpbmciPnhtbFVSSVVuZXNjYXBlU3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+dW5lc2NhcGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzwvZGQ+PGR0PnVuaWNvZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eVZhbHVlTG9va3VwIj5odG1sRW50aXR5VmFsdWVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxJc0xldHRlciI+eG1sSXNMZXR0ZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD51bmltcGxlbWVudGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0VXNlT3B0aW9ucyI+aHRtbEN0eHRVc2VPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFVzZU9wdGlvbnMiPnhtbEN0eHRVc2VPcHRpb25zPC9hPjxiciAvPgorPC9kZD48ZHQ+dW5pb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUMiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnVuaXF1ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWEiPl94bWxTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRMYW5ndWFnZSI+eG1sRXhwR2V0TGFuZ3VhZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRTdGFydCI+eG1sRXhwR2V0U3RhcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSWRGdW5jdGlvbiI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+dW5pcXVlbHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnVuaXF1ZW5lc3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnVuaXRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnN1YiI+eG1sVVRGOFN0cnN1YjwvYT48YnIgLz4KKzwvZGQ+PGR0PnVua25vd248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZQVRUUl9TS0lQIj5YTUxfU0NIRU1BU19BTllBVFRSX1NLSVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWV9TS0lQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iPlhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRVc2VPcHRpb25zIj5odG1sQ3R4dFVzZU9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0VXNlT3B0aW9ucyI+eG1sQ3R4dFVzZU9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxIYXNGZWF0dXJlIj54bWxIYXNGZWF0dXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmxvY2siPnhtbFVDU0lzQmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXQiPnhtbFVDU0lzQ2F0PC9hPjxiciAvPgorPC9kZD48ZHQ+dW5sZXNzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZURvYyI+aHRtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZUZpbGUiPmh0bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHROYW1lc3BhY2UiPnhtbFhQYXRoTmV4dE5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnVubGlrZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnVubGluazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTm9kZSI+eG1sRnJlZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD51bmxpbmtlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGROZXh0U2libGluZyI+eG1sQWRkTmV4dFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkUHJldlNpYmxpbmciPnhtbEFkZFByZXZTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFNpYmxpbmciPnhtbEFkZFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbE5ld0VudGl0eSI+eG1sTmV3RW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlcGxhY2VOb2RlIj54bWxSZXBsYWNlTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnVubG9hZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUNsb3NlIj54bWxNb2R1bGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUZyZWUiPnhtbE1vZHVsZUZyZWU8L2E+PGJyIC8+Cis8L2RkPjxkdD51bmxvYWRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUNsb3NlIj54bWxNb2R1bGVDbG9zZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnVubG9jazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFVubG9jayI+eG1sTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4VW5sb2NrIj54bWxSTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD51bnBhcnNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3VucGFyc2VkRW50aXR5RGVjbCI+dW5wYXJzZWRFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyI+dW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbExvYWRFeHRlcm5hbEVudGl0eSI+eG1sTG9hZEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsIj54bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+dW5wbHVnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8L2RkPjxkdD51bnByZWRpY3RhYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+PGJyIC8+Cis8L2RkPjxkdD51bnByZWRpY3RpYWJsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD51bnJlZ2lzdGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2xlYW51cENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jIj54bWxYUGF0aFJlZ2lzdGVyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckZ1bmNOUyI+eG1sWFBhdGhSZWdpc3RlckZ1bmNOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3Rlck5zIj54bWxYUGF0aFJlZ2lzdGVyTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZSI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlM8L2E+PGJyIC8+Cis8L2RkPjxkdD51bnNhZmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFNwcmludGZFbGVtZW50Q29udGVudCI+eG1sU3ByaW50ZkVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+dW5zaWduZWQ8L2R0PjxkZD48YSBocmVmPSIiPmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD51bnN1cHBvcnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD51bnRpbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXhwYW5kIj54bWxUZXh0UmVhZGVyRXhwYW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFNjaGVtYSI+eG1sVGV4dFJlYWRlclNldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnVudXNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNBVFRSSUJVVEVfVU5VU0VEIj5BVFRSSUJVVEVfVU5VU0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFNBWEhhbmRsZXIiPl94bWxTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFNBWEhhbmRsZXJWMSI+X3htbFNBWEhhbmRsZXJWMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGaWxlIj54bWxTY2hlbWFWYWxpZGF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQmFzZSI+eG1sU2hlbGxCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENhdCI+eG1sU2hlbGxDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRGlyIj54bWxTaGVsbERpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxEdSI+eG1sU2hlbGxEdTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMaXN0Ij54bWxTaGVsbExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTG9hZCI+eG1sU2hlbGxMb2FkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsU2F2ZSI+eG1sU2hlbGxTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFZhbGlkYXRlIj54bWxTaGVsbFZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFdyaXRlIj54bWxTaGVsbFdyaXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+dXBkYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0hUVFBJbnB1dCI+eG1sQ2hlY2tIVFRQSW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFVwZGF0ZVVSTCI+eG1sTmFub0ZUUFVwZGF0ZVVSTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRMaXN0RG9jIj54bWxTZXRMaXN0RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFRyZWVEb2MiPnhtbFNldFRyZWVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTMiPnhtbFNwbGl0UU5hbWUzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD51cGRhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGRMb2NhbCI+eG1sQ2F0YWxvZ0FkZExvY2FsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3BsaXRRTmFtZSI+eG1sU3BsaXRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMiI+eG1sU3BsaXRRTmFtZTI8L2E+PGJyIC8+Cis8L2RkPjxkdD51cG9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY2hlY2tOYW1lc3BhY2UiPmNoZWNrTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua05vZGVEZXRlY3RGdW5jIj54bGlua05vZGVEZXRlY3RGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+dXBwZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzUmVmIj54bWxJc1JlZjwvYT48YnIgLz4KKzwvZGQ+PGR0PnVyaTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9ybWFsaXplV2luZG93c1BhdGgiPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9hPjxiciAvPgorPC9kZD48ZHQ+dXNhZ2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+dXNlZDo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVGQVVMVF9WRVJTSU9OIj5YTUxfREVGQVVMVF9WRVJTSU9OPC9hPjxiciAvPgorPC9kZD48ZHQ+dXNlZD88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUF0dHJpYnV0ZSI+X3htbFNjaGVtYUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRWxlbWVudCI+X3htbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD51c2VmdWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8L2RkPjxkdD51c2VsZXNzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yIj5zZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIj5zZXREb2N1bWVudExvY2F0b3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTZXREb2N1bWVudExvY2F0b3IiPnhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8L2RkPjxkdD51c2VyRGF0YTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+dXNlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYSI+X3htbFNjaGVtYTwvYT48YnIgLz4KKzwvZGQ+PGR0PnVzZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPC9kZD48ZHQ+dXN1YWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD51c3VhbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9NT0RVTEVfRVhURU5TSU9OIj5MSUJYTUxfTU9EVUxFX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9IiI+YzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+dXRmODwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0ZpcnN0TGluZSI+eG1sQ2hhckVuY0ZpcnN0TGluZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0luRnVuYyI+eG1sQ2hhckVuY0luRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgdjo8L2gyPjxkbD48ZHQ+dmFsMTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UiPnhtbFhQdHJMb2NhdGlvblNldE1lcmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+dmFsZ3JpbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzwvZGQ+PGR0PnZhbGlkYXRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaGFySW5SYW5nZSI+eG1sQ2hhckluUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8L2RkPjxkdD52YWxpZGF0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFZhbGlkYXRlTkNOYW1lIj54bWxWYWxpZGF0ZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5NVG9rZW4iPnhtbFZhbGlkYXRlTk1Ub2tlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5hbWUiPnhtbFZhbGlkYXRlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZVFOYW1lIj54bWxWYWxpZGF0ZVFOYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+dmFsaWRhdGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0ciI+X3htbEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEVsZW1lbnQiPl94bWxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnZhbGlkaXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eUVycm9yIj54bWxQYXJzZXJWYWxpZGl0eUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmciPnhtbFBhcnNlclZhbGlkaXR5V2FybmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc1ZhbGlkIj54bWxUZXh0UmVhZGVySXNWYWxpZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25EZWNsIj54bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+dmFsdWU6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8L2RkPjxkdD52YWx1ZXM6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldERvY0NvbXByZXNzTW9kZSI+eG1sU2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD52YXJhZ3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD52YXJhcmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnZhcmlhYmxlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWE1MX1hQQVRIX05PVkFSIj5YTUxfWFBBVEhfTk9WQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFByb3h5Ij54bWxOYW5vRlRQUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwIj54bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwPC9hPjxiciAvPgorPC9kZD48ZHQ+dmFyaWFudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD52YXJpZXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQyI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVCI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT048L2E+PGJyIC8+Cis8L2RkPjxkdD52YXJpb3VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+dmVyc2lvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRWxlbWVudCI+aHRtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnZlcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jRmlyc3RMaW5lIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8L2RkPjxkdD52aWE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRmV0Y2giPnhtbE5hbm9IVFRQRmV0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kIj54bWxOYW5vSFRUUE1ldGhvZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2RSZWRpciI+eG1sTmFub0hUVFBNZXRob2RSZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuIj54bWxOYW5vSFRUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlblJlZGlyIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnZpZXc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIj54bWxTaGVsbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnZpb2xhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8L2RkPjxkdD52aXNpYmxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT48YnIgLz4KKzwvZGQ+PGR0PnZvaWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjWE1MX0NBU1RfRlBUUiI+WE1MX0NBU1RfRlBUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjcuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDQyNjBkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyNy5odG1sCkBAIC0wLDAgKzEsMzM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IHctdyBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggdy13IGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIHc6PC9oMj48ZGw+PGR0PndhbGtlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVdhbGsiPnhtbExpc3RSZXZlcnNlV2FsazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0V2FsayI+eG1sTGlzdFdhbGs8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFdhbGtlciI+eG1sTGlzdFdhbGtlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PndhbGtpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aFBhcnNlckNvbnRleHQiPl94bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFdhbGtlciI+eG1sTGlzdFdhbGtlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PndhbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNGaXJzdExpbmUiPnhtbENoYXJFbmNGaXJzdExpbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNJbkZ1bmMiPnhtbENoYXJFbmNJbkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+d2FybjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCN4bWxDaGVja1ZlcnNpb24iPnhtbENoZWNrVmVyc2lvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pndhcm5pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjWE1MX0NBU1RfRlBUUiI+WE1MX0NBU1RfRlBUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjX3htbFZhbGlkQ3R4dCI+X3htbFZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXR4bWxEZWZhdWx0U0FYSGFuZGxlciI+aW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjd2FybmluZ1NBWEZ1bmMiPndhcm5pbmdTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllcyI+eG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5V2FybmluZyI+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJXYXJuaW5nIj54bWxQYXJzZXJXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiPnhtbFNjaGVtYUdldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMiPnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlciI+eG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD53YXJuaW5nczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCI+eG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciI+eG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PndheTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9DT01NRU5UX05PREUiPkhUTUxfQ09NTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX0VOVElUWV9SRUZfTk9ERSI+SFRNTF9FTlRJVFlfUkVGX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfUElfTk9ERSI+SFRNTF9QSV9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1BSRVNFUlZFX05PREUiPkhUTUxfUFJFU0VSVkVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9URVhUX05PREUiPkhUTUxfVEVYVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbEJvb2xUb1RleHQiPnhtbEJvb2xUb1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPjxiciAvPgorPC9kZD48ZHQ+d2F5czo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+d2VsbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50TnNTQVgyRnVuYyI+c3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnROcyI+eG1sU0FYMlN0YXJ0RWxlbWVudE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUiPnhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+d2VsbC1iYWxhbmNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+d2VsbC1mb3JtZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dFBhcnNlZEVudCI+eG1sUGFyc2VFeHRQYXJzZWRFbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD53ZWxsLWZvcm1lZG5lc3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEN0eHRSZXNldExhc3RFcnJvciI+eG1sQ3R4dFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxSZXNldExhc3RFcnJvciI+eG1sUmVzZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8L2RkPjxkdD53ZWxsZm9ybWVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUZpbGUiPnhtbFBhcnNlRmlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PndlcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDaGVja0xhbmd1YWdlSUQiPnhtbENoZWNrTGFuZ3VhZ2VJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNob3ciPnhtbE1lbVNob3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hSXNWYWxpZCI+eG1sU2NoZW1hSXNWYWxpZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzIj54bWxYSW5jbHVkZVByb2Nlc3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc05vZGUiPnhtbFhJbmNsdWRlUHJvY2Vzc05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWUiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhPC9hPjxiciAvPgorPC9kZD48ZHQ+d2V0aGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sTm9kZVNldCI+X3htbE5vZGVTZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD53aGF0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ0dldERlZmF1bHRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVJhd0xlbiI+eG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+d2hlcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5UHJvcCI+eG1sQ29weVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weVByb3BMaXN0Ij54bWxDb3B5UHJvcExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldExhbmd1YWdlIj54bWxFeHBHZXRMYW5ndWFnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldFN0YXJ0Ij54bWxFeHBHZXRTdGFydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZVJlYWQiPnhtbEZpbGVSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0ZUUFJlYWQiPnhtbElPRlRQUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQUmVhZCI+eG1sSU9IVFRQUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBGZXRjaCI+eG1sTmFub0hUVFBGZXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBTYXZlIj54bWxOYW5vSFRUUFNhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3TnMiPnhtbE5ld05zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+d2hpbGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycyI+eG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIj54bWxQYXJzZUVudW1lcmF0ZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGlvblR5cGUiPnhtbFBhcnNlRW51bWVyYXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5leHQiPnhtbFRleHRSZWFkZXJOZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nIj54bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+d2hpdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb2xsYXBzZVN0cmluZyI+eG1sU2NoZW1hQ29sbGFwc2VTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD53aGl0ZXNwYWNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElzQmxhbmtOb2RlIj54bWxJc0JsYW5rTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AiPnhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJZEZ1bmN0aW9uIj54bWxYUGF0aElkRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD53aGl0ZXNwYWNlLWZhY2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFIj5YTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRTwvYT48YnIgLz4KKzwvZGQ+PGR0PndoaXRlc3BhY2Utc2VwYXJhdGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PndoaXRlc3BhY2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZSI+aWdub3JhYmxlV2hpdGVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSI+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD53aG9sZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZURvY0VsZW1lbnRDb250ZW50Ij54bWxGcmVlRG9jRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVFbGVtZW50Q29udGVudCI+eG1sRnJlZUVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+d2hvc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZSI+eG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PndpZXJkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PndpbGRjYXJkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCI+WE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFIj5YTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGcmVlV2lsZGNhcmQiPnhtbFNjaGVtYUZyZWVXaWxkY2FyZDwvYT48YnIgLz4KKzwvZGQ+PGR0PndpbGRjYXJkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllfTEFYIj5YTUxfU0NIRU1BU19BTllfTEFYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9TVFJJQ1QiPlhNTF9TQ0hFTUFTX0FOWV9TVFJJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRCI+WE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRDwvYT48YnIgLz4KKzwvZGQ+PGR0PndpdGhfbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxOb2RlU2V0Ij5feG1sTm9kZVNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PndpdGhpbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjX3htbFZhbGlkQ3R4dCI+X3htbFZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY0NvbW1lbnQiPnhtbE5ld0RvY0NvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUmF3Tm9kZSI+eG1sTmV3RG9jUmF3Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NUZXh0Ij54bWxOZXdEb2NUZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIj54bWxOb2RlR2V0QmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ2hhckRhdGEiPnhtbFBhcnNlQ2hhckRhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlSW5Ob2RlQ29udGV4dCI+eG1sUGFyc2VJbk5vZGVDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm8iPnhtbFBhcnNlckZpbmROb2RlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dCI+eG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29weVZhbHVlIj54bWxTY2hlbWFDb3B5VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyI+eG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJYbWxMYW5nIj54bWxUZXh0UmVhZGVyWG1sTGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCI+eG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4Ij54bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEludGVyc2VjdGlvbiI+eG1sWFBhdGhJbnRlcnNlY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD53aXRob3V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbnRpdHlEZWNsIj5lbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jTm9EdEQiPmh0bWxOZXdEb2NOb0R0RDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0dsb2JhbE5zIj54bWxOZXdHbG9iYWxOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVudGl0eURlY2wiPnhtbFNBWDJFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2Nhbk5hbWUiPnhtbFNjYW5OYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUzIj54bWxTcGxpdFFOYW1lMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD53b248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU3RhdGljIj54bWxCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PndvcmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzwvZGQ+PGR0PndvcmRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIj54bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+d29yazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblN0cmVhbWFibGUiPnhtbFBhdHRlcm5TdHJlYW1hYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlbW92ZVByb3AiPnhtbFJlbW92ZVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGUiPnhtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5Ij54bWxTQVhQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD53b3JrZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEN3ZCI+eG1sTmFub0ZUUEN3ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQRGVsZSI+eG1sTmFub0ZUUERlbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD53b3JrczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxEdSI+eG1sU2hlbGxEdTwvYT48YnIgLz4KKzwvZGQ+PGR0PndvcnJ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9MQVgiPlhNTF9TQ0hFTUFTX0FOWV9MQVg8L2E+PGJyIC8+Cis8L2RkPjxkdD53b3J0aHdoaWxlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PndvdWxkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNfeG1sRXJyb3IiPl94bWxFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXV0b0Nsb3NlVGFnIj5odG1sQXV0b0Nsb3NlVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PndyYXBwZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIj54bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PndyYXBzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzwvZGQ+PGR0PndyaXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGaWxlUmVhZCI+eG1sRmlsZVJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBSZWFkIj54bWxJT0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUFJlYWQiPnhtbElPSFRUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsV3JpdGUiPnhtbFNoZWxsV3JpdGU8L2E+PGJyIC8+Cis8L2RkPjxkdD53cml0ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxGcmVlVGV4dFdyaXRlciI+eG1sRnJlZVRleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIiPnhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyPC9hPjxiciAvPgorPC9kZD48ZHQ+d3JpdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PndyaXRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PndydDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD53d3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX05TIj5YSU5DTFVERV9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfT0xEX05TIj5YSU5DTFVERV9PTERfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRTeXN0ZW1JZCI+Z2V0U3lzdGVtSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY0R1bXBNZW1vcnkiPnhtbEMxNE5Eb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJHZXRTeXN0ZW1JZCI+eG1sU0FYMkdldFN5c3RlbUlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjguaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjk0MmRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bmsyOC5odG1sCkBAIC0wLDAgKzEsNTU2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IHgteCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggeC14IGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIHg6PC9oMj48ZGw+PGR0PngwMEI3PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVIiPklTX0VYVEVOREVSPC9hPjxiciAvPgorPC9kZD48ZHQ+eDAyRDA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUiI+SVNfRVhURU5ERVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54MDJEMTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzwvZGQ+PGR0PngwMzg3PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVIiPklTX0VYVEVOREVSPC9hPjxiciAvPgorPC9kZD48ZHQ+eDA2NDA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUiI+SVNfRVhURU5ERVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54MEU0NjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzwvZGQ+PGR0PngwRUM2PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVIiPklTX0VYVEVOREVSPC9hPjxiciAvPgorPC9kZD48ZHQ+eDEwMDAwLTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54MTBGRkZGPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ0hBUiI+SVNfQ0hBUjwvYT48YnIgLz4KKzwvZGQ+PGR0PngyMDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0JMQU5LIj5JU19CTEFOSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0JZVEVfQ0hBUiI+SVNfQllURV9DSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfUFVCSURDSEFSIj5JU19QVUJJRENIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lIj54bWxQYXJzZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5tdG9rZW4iPnhtbFBhcnNlTm10b2tlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+eDIwLTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54MzAwNTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzwvZGQ+PGR0PngzMDA3PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfSURFT0dSQVBISUMiPklTX0lERU9HUkFQSElDPC9hPjxiciAvPgorPC9kZD48ZHQ+eDMwMjEtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfSURFT0dSQVBISUMiPklTX0lERU9HUkFQSElDPC9hPjxiciAvPgorPC9kZD48ZHQ+eDMwMjk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19JREVPR1JBUEhJQyI+SVNfSURFT0dSQVBISUM8L2E+PGJyIC8+Cis8L2RkPjxkdD54MzAzMS08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUiI+SVNfRVhURU5ERVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54MzAzNTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzwvZGQ+PGR0PngzMDlELTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzwvZGQ+PGR0PngzMDlFPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVIiPklTX0VYVEVOREVSPC9hPjxiciAvPgorPC9kZD48ZHQ+eDMwRkMtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVIiPklTX0VYVEVOREVSPC9hPjxiciAvPgorPC9kZD48ZHQ+eDMwRkU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUiI+SVNfRVhURU5ERVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54NEUwMC08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19JREVPR1JBUEhJQyI+SVNfSURFT0dSQVBISUM8L2E+PGJyIC8+Cis8L2RkPjxkdD54OUZBNTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0lERU9HUkFQSElDIj5JU19JREVPR1JBUEhJQzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhEN0ZGPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ0hBUiI+SVNfQ0hBUjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhFMDAwLTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54RkZGRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD54bGluazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtHZXREZWZhdWx0RGV0ZWN0Ij54bGlua0dldERlZmF1bHREZXRlY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rR2V0RGVmYXVsdEhhbmRsZXIiPnhsaW5rR2V0RGVmYXVsdEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rU2V0RGVmYXVsdERldGVjdCI+eGxpbmtTZXREZWZhdWx0RGV0ZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua1NldERlZmF1bHRIYW5kbGVyIj54bGlua1NldERlZmF1bHRIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+eGxpbmtIYW5kbGVyUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0dldERlZmF1bHRIYW5kbGVyIj54bGlua0dldERlZmF1bHRIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+eGxpbmtUeXBlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWwtYzE0bjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sLWV4Yy1jMTRuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWwtbmFtZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbDo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hNTF9OQU1FU1BBQ0UiPlhNTF9YTUxfTkFNRVNQQUNFPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sOmJhc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldEJhc2UiPnhtbE5vZGVTZXRCYXNlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sOmlkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9YTUxfSUQiPlhNTF9YTUxfSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWw6bGFuZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayI+eGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0TGFuZyI+eG1sTm9kZVNldExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nIj54bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclhtbExhbmciPnhtbFRleHRSZWFkZXJYbWxMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExhbmdGdW5jdGlvbiI+eG1sWFBhdGhMYW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD54bWw6c3BhY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVHZXRTcGFjZVByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEFkZERvY0VudGl0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sTmV3RW50aXR5Ij54bWxOZXdFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxBdHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNhdHRyaWJ1dGVTQVhGdW5jIj5hdHRyaWJ1dGVTQVhGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQXR0clB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5UHJvcCI+eG1sQ29weVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weVByb3BMaXN0Ij54bWxDb3B5UHJvcExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldElEIj54bWxHZXRJRDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEF0dHJpYnV0ZVB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkQXR0ckRlc2MiPnhtbEdldER0ZEF0dHJEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEF0dHJpYnV0ZVRhYmxlUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5QXR0cmlidXRlVGFibGUiPnhtbENvcHlBdHRyaWJ1dGVUYWJsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEJ1ZmZlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0ZpcnN0TGluZSI+eG1sQ2hhckVuY0ZpcnN0TGluZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0luRnVuYyI+eG1sQ2hhckVuY0luRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEJ1ZmZlclB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJNZW1vcnkiPnhtbE5ld1RleHRXcml0ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQnVpbGRVUkk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQnl0ZXNDb25zdW1lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQiPnhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxDYXRhbG9nQWxsb3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxDYXRhbG9nUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbE5ld0NhdGFsb2ciPnhtbE5ld0NhdGFsb2c8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0UHVibGljIj54bWxDYXRhbG9nR2V0UHVibGljPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldFN5c3RlbSI+eG1sQ2F0YWxvZ0dldFN5c3RlbTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbENoYXJFbmNvZGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQ2hhckVuY29kaW5nSGFuZGxlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbENoYXJzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVDSEFSIj54bWxCdWZmZXJXcml0ZUNIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dEdyb3ciPnhtbFBhcnNlcklucHV0R3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0UmVhZCI+eG1sUGFyc2VySW5wdXRSZWFkPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQ2xlYW51cFBhcnNlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxDbGVhbnVwVGhyZWFkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxDb3B5RG9jRWxlbWVudENvbnRlbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbGVtZW50Q29udGVudCI+eG1sQ29weUVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sQ3JlYXRlSW50U3Vic2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0R0ZCI+eG1sTmV3RHRkPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRE9NV3JhcEN0eHRQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcE5ld0N0eHQiPnhtbERPTVdyYXBOZXdDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRGVmYXVsdFNBWExvY2F0b3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzZXREb2N1bWVudExvY2F0b3IiPnNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciI+eG1sU0FYMlNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbERvYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sTnMiPl94bWxOczwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbERvY0NvcHlOb2RlTGlzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5Tm9kZUxpc3QiPnhtbENvcHlOb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbERvY05ld1BJPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1BJIj54bWxOZXdQSTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbERvY1Byb3BlcnRpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbERvY1B0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckRvYyI+eG1sTmV3VGV4dFdyaXRlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJUcmVlIj54bWxOZXdUZXh0V3JpdGVyVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50RG9jIj54bWxUZXh0UmVhZGVyQ3VycmVudERvYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbER0ZFB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RHRkIj54bWxDb3B5RHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSU9QYXJzZURURCI+eG1sSU9QYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRFREIj54bWxQYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRFREIj54bWxTQVhQYXJzZURURDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEVsZW1lbnRDb250ZW50UHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQiPnhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRDb250ZW50Ij54bWxDb3B5RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEVsZW1lbnRQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZEVsZW1lbnREZXNjIj54bWxHZXREdGRFbGVtZW50RGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUVsZW1lbnREZXNjIj54bWxHZXREdGRRRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxFbGVtZW50VGFibGVQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbGVtZW50VGFibGUiPnhtbENvcHlFbGVtZW50VGFibGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxFbmNvZGVFbnRpdGllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlIj54bWxOZXdEb2NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGVFYXROYW1lIj54bWxOZXdEb2NOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRW5jb2RlU3BlY2lhbENoYXJzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxFbnRpdGllc1RhYmxlUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxDb3B5RW50aXRpZXNUYWJsZSI+eG1sQ29weUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENyZWF0ZUVudGl0aWVzVGFibGUiPnhtbENyZWF0ZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxFbnRpdHlQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRFbnRpdHkiPmdldEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2dldEVudGl0eVNBWEZ1bmMiPmdldEVudGl0eVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHkiPmdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2dldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMiPmdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSI+eG1sTmV3RW50aXR5SW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldEVudGl0eSI+eG1sU0FYMkdldEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5Ij54bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRW51bWVyYXRpb25QdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbnVtZXJhdGlvbiI+eG1sQ29weUVudW1lcmF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDcmVhdGVFbnVtZXJhdGlvbiI+eG1sQ3JlYXRlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxFeHBGcmVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3T3IiPnhtbEV4cE5ld09yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3U2VxIj54bWxFeHBOZXdTZXE8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxFeHBSZWY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRmlsZU9wZW5fcmVhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU9wZW4iPnhtbEZpbGVPcGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRnJlZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcEZvcm1hdE1lbW9yeSI+eG1sRG9jRHVtcEZvcm1hdE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBNZW1vcnkiPnhtbERvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeUVuYyI+eG1sRG9jRHVtcE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldENvbnRlbnQiPnhtbE5vZGVHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRTdHJpbmciPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclZhbHVlIj54bWxUZXh0UmVhZGVyVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFRvU3RyaW5nIj54bWxYUGF0aENhc3RUb1N0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEZyZWVEb2M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxGcmVlRG9jRWxlbWVudENvbnRlbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVFbGVtZW50Q29udGVudCI+eG1sRnJlZUVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRnJlZU11dGV4PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVNdXRleCI+eG1sRnJlZU11dGV4PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sRnJlZVN0cmVhbUN0eHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkdldFN0cmVhbUN0eHQiPnhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sR2V0R2xvYmFsU3RhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sR2V0R2xvYmFsU3RhdGUiPnhtbEdldEdsb2JhbFN0YXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sR2V0Tm9Oc1Byb3A8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEdldE5zUHJvcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sR2V0UHJvcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxHZXRUaHJlYWRJZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxIYXNoVGFibGVQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENyZWF0ZSI+eG1sSGFzaENyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ3JlYXRlRGljdCI+eG1sSGFzaENyZWF0ZURpY3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJRFB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkSUQiPnhtbEFkZElEPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sSW5kZW50VHJlZU91dHB1dDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRm9ybWF0RHVtcCI+eG1sRG9jRm9ybWF0RHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcCI+eG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXBPdXRwdXQiPnhtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZUVuYyI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJbml0UGFyc2VyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEluaXRUaHJlYWRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEluaXRUaHJlYWRzIj54bWxJbml0VGhyZWFkczwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEluaXRpYWxpemVDYXRhbG9nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJbml0aWFsaXplR2xvYmFsU3RhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlIj54bWxJbml0aWFsaXplR2xvYmFsU3RhdGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJbnB1dE9wZW5DYWxsYmFjazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElucHV0UmVhZENhbGxiYWNrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sSXNCYXNlQ2hhclE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhciI+eG1sSXNCYXNlQ2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElzQmFzZUNoYXJfY2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhciI+eG1sSXNCYXNlQ2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElzQmxhbmtOb2RlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sSXNCbGFua1E8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFuayI+eG1sSXNCbGFuazwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElzQmxhbmtfY2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFuayI+eG1sSXNCbGFuazwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElzQ2hhclE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyIj54bWxJc0NoYXI8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJc0NoYXJfY2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyIj54bWxJc0NoYXI8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJc0NvbWJpbmluZ1E8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDb21iaW5pbmciPnhtbElzQ29tYmluaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sSXNEaWdpdFE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNEaWdpdCI+eG1sSXNEaWdpdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElzRGlnaXRfY2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNEaWdpdCI+eG1sSXNEaWdpdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElzRXh0ZW5kZXJRPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXIiPnhtbElzRXh0ZW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJc0V4dGVuZGVyX2NoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXIiPnhtbElzRXh0ZW5kZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxJc0lkZW9ncmFwaGljUTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0lkZW9ncmFwaGljIj54bWxJc0lkZW9ncmFwaGljPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sSXNNYWluVGhyZWFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbElzTWFpblRocmVhZCI+eG1sSXNNYWluVGhyZWFkPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sSXNQdWJpZENoYXJRPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyIj54bWxJc1B1YmlkQ2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbElzUHViaWRDaGFyX2NoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyIj54bWxJc1B1YmlkQ2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbEtlZXBCbGFua3NEZWZhdWx0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnkiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYyI+eG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NGb3JtYXREdW1wIj54bWxEb2NGb3JtYXREdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcE91dHB1dCI+eG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGUiPnhtbFNhdmVGb3JtYXRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlRW5jIj54bWxTYXZlRm9ybWF0RmlsZUVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRMaW5lTm8iPnhtbEdldExpbmVObzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbExpc3RXYWxrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0NPTVBMRVRFX0FUVFJTIj5YTUxfQ09NUExFVEVfQVRUUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVURUNUX0lEUyI+WE1MX0RFVEVDVF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbExvY2F0aW9uU2V0UHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRnJlZUxvY2F0aW9uU2V0Ij54bWxYUHRyRnJlZUxvY2F0aW9uU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUiPnhtbFhQdHJMb2NhdGlvblNldENyZWF0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbExvY2tMaWJyYXJ5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbExvY2tMaWJyYXJ5Ij54bWxMb2NrTGlicmFyeTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbE1vZHVsZU9wdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZU9wZW4iPnhtbE1vZHVsZU9wZW48L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxNdXRleExvY2s8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhMb2NrIj54bWxNdXRleExvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxNdXRleFVubG9jazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFVubG9jayI+eG1sTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOYW5vRlRQR2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI2Z0cERhdGFDYWxsYmFjayI+ZnRwRGF0YUNhbGxiYWNrPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sTmFub0ZUUExpc3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOZXdDaGlsZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbE5ld0RvY0VsZW1lbnRDb250ZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdFbGVtZW50Q29udGVudCI+eG1sTmV3RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOZXdEb2NSYXdOb2RlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGUiPnhtbE5ld0RvY05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sTmV3TXV0ZXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3TXV0ZXgiPnhtbE5ld011dGV4PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sTmV3Tm9kZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOb2RlRWF0TmFtZSI+eG1sTmV3Tm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOZXdUZXh0Q2hpbGQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sTmV3VGV4dFdyaXRlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyRG9jIj54bWxOZXdUZXh0V3JpdGVyRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lIj54bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyTWVtb3J5Ij54bWxOZXdUZXh0V3JpdGVyTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIiPnhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclRyZWUiPnhtbE5ld1RleHRXcml0ZXJUcmVlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sTm9kZVB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5Tm9kZSI+eG1sQ29weU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGVMaXN0Ij54bWxDb3B5Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGUiPnhtbERvY0NvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0NvcHlOb2RlTGlzdCI+eG1sRG9jQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0dldFJvb3RFbGVtZW50Ij54bWxEb2NHZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJUcmVlIj54bWxOZXdUZXh0V3JpdGVyVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50Tm9kZSI+eG1sVGV4dFJlYWRlckN1cnJlbnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlIj54bWxUZXh0UmVhZGVyUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZCI+eG1sWFBhdGhOb2RlU2V0QWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUiPnhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0Q3JlYXRlIj54bWxYUGF0aE5vZGVTZXRDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRJdGVtIj54bWxYUGF0aE5vZGVTZXRJdGVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyQnVpbGROb2RlTGlzdCI+eG1sWFB0ckJ1aWxkTm9kZUxpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOb2RlU2V0Q29udGVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudCI+eG1sTm9kZUFkZENvbnRlbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOb2RlU2V0Q29udGVudExlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudExlbiI+eG1sTm9kZUFkZENvbnRlbnRMZW48L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOb2RlU2V0UHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVOb2RlU2V0Ij54bWxYUGF0aEZyZWVOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRDcmVhdGUiPnhtbFhQYXRoTm9kZVNldENyZWF0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbE5vZGVUeXBlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOb3RhdGlvblB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkTm90YXRpb25EZXNjIj54bWxHZXREdGROb3RhdGlvbkRlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOb3RhdGlvblRhYmxlUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5Tm90YXRpb25UYWJsZSI+eG1sQ29weU5vdGF0aW9uVGFibGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxOczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb24iPnhtbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbE5zUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0TmFtZXNwYWNlIj5nZXROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5hbWVzcGFjZSI+eG1sQ29weU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5TmFtZXNwYWNlTGlzdCI+eG1sQ29weU5hbWVzcGFjZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIj54bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNMaXN0Ij54bWxHZXROc0xpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxPdXRwdXRCdWZmZXJDbG9zZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZVRvIj54bWxTYXZlRmlsZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlVG8iPnhtbFNhdmVGb3JtYXRGaWxlVG88L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxPdXRwdXRCdWZmZXJQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sT3V0cHV0T3BlbkNhbGxiYWNrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQYXJzZUF0dFZhbHVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFBhcnNlQ2h1bms8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VFbGVtZW50RGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFBhcnNlRXh0ZXJuYWxJRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFBhcnNlRmlsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxQYXJzZUNhdGFsb2dGaWxlIj54bWxQYXJzZUNhdGFsb2dGaWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VOYW1lc3BhY2U6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VVUkk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGUiPnhtbFVSSUVzY2FwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFBhcnNlckN0eHQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI1hNTF9DVFhUX0ZJTklTSF9EVERfMCI+WE1MX0NUWFRfRklOSVNIX0RURF8wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxfQ1RYVF9GSU5JU0hfRFREXzEiPlhNTF9DVFhUX0ZJTklTSF9EVERfMTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFBhcnNlckN0eHRQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxOZXdQYXJzZXJDdHh0Ij54bWxOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIiPnhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VyRXJyb3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI194bWxFcnJvciI+X3htbEVycm9yPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VyRXJyb3JzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUNodW5rIj5kb2NiUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VDaHVuayI+aHRtbFBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUNodW5rIj54bWxQYXJzZUNodW5rPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCI+eG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXg8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbE5ld1RleHRSZWFkZXIiPnhtbE5ld1RleHRSZWFkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXR1cCI+eG1sVGV4dFJlYWRlclNldHVwPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VySW5wdXRQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRnJlZUlucHV0U3RyZWFtIj54bWxGcmVlSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMb2FkRXh0ZXJuYWxFbnRpdHkiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dCI+eG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyI+eG1sUGFyc2VyUHJpbnRGaWxlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQYXJzZXJOb2RlSW5mbzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mbyI+eG1sUGFyc2VyRmluZE5vZGVJbmZvPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUGFyc2VyUHJvcGVydGllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFBhdHRlcm48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1BBVFRFUk5fRU5BQkxFRCI+TElCWE1MX1BBVFRFUk5fRU5BQkxFRDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFBhdHRlcm5GbGFnczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuY29tcGlsZSI+eG1sUGF0dGVybmNvbXBpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuU3RyZWFtYWJsZSI+eG1sUGF0dGVyblN0cmVhbWFibGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQYXR0ZXJuY29tcGlsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQb3BJbnB1dDo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQb3BJbnB1dCI+eG1sUG9wSW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxQdXNoSW5wdXQ6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUHVzaElucHV0Ij54bWxQdXNoSW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxSRnJlZU11dGV4PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVSTXV0ZXgiPnhtbEZyZWVSTXV0ZXg8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxSTXV0ZXhMb2NrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleExvY2siPnhtbFJNdXRleExvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxSTXV0ZXhVbmxvY2s8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4VW5sb2NrIj54bWxSTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxSTmV3TXV0ZXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3Uk11dGV4Ij54bWxOZXdSTXV0ZXg8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxSZWFkZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1JFQURFUl9FTkFCTEVEIj5MSUJYTUxfUkVBREVSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxSZWZQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZFJlZiI+eG1sQWRkUmVmPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sUmVsYXhOR1BhcnNlckZsYWc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhQYXJzZXJTZXRGbGFnIj54bWxSZWxheFBhcnNlclNldEZsYWc8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTQVgyQXR0cmlidXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTQVgyQXR0cmlidXRlRGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZURlY2wiPmF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTQVgyQ0RhdGFCbG9jazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NkYXRhQmxvY2siPmNkYXRhQmxvY2s8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTQVgyQ2hhcmFjdGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UiPnhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sU0FYMkNvbW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJDb21tZW50Ij54bWxTQVgyQ29tbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJFbGVtZW50RGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2VsZW1lbnREZWNsIj5lbGVtZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJFbmREb2N1bWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2VuZERvY3VtZW50Ij5lbmREb2N1bWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJFbmRFbGVtZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZW5kRWxlbWVudCI+ZW5kRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJFbnRpdHlEZWNsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZW50aXR5RGVjbCI+ZW50aXR5RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJFeHRlcm5hbFN1YnNldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2V4dGVybmFsU3Vic2V0Ij5leHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJHZXRDb2x1bW5OdW1iZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRDb2x1bW5OdW1iZXIiPmdldENvbHVtbk51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJHZXRFbnRpdHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRFbnRpdHkiPmdldEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJHZXRMaW5lTnVtYmVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0TGluZU51bWJlciI+Z2V0TGluZU51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHkiPmdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJHZXRQdWJsaWNJZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFB1YmxpY0lkIj5nZXRQdWJsaWNJZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJHZXRTeXN0ZW1JZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2hhc0V4dGVybmFsU3Vic2V0Ij5oYXNFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2hhc0ludGVybmFsU3Vic2V0Ij5oYXNJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZSI+aWdub3JhYmxlV2hpdGVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlciI+aW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlciI+aW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJJbnRlcm5hbFN1YnNldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2ludGVybmFsU3Vic2V0Ij5pbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJJc1N0YW5kYWxvbmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpc1N0YW5kYWxvbmUiPmlzU3RhbmRhbG9uZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJOb3RhdGlvbkRlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNub3RhdGlvbkRlY2wiPm5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iPnByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJSZWZlcmVuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVmZXJlbmNlIj54bWxTQVgyUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJTdGFydERvY3VtZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc3RhcnREb2N1bWVudCI+c3RhcnREb2N1bWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJTdGFydEVsZW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydEVsZW1lbnQiPnN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCN1bnBhcnNlZEVudGl0eURlY2wiPnVucGFyc2VkRW50aXR5RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWEhhbmRsZXJQdHI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1ZyI+eG1sU2NoZW1hU0FYUGx1ZzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNBWFZlcnNpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYRGVmYXVsdFZlcnNpb24iPnhtbFNBWERlZmF1bHRWZXJzaW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sU2F2ZU9wdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvQnVmZmVyIj54bWxTYXZlVG9CdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvRmQiPnhtbFNhdmVUb0ZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZpbGVuYW1lIj54bWxTYXZlVG9GaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTY2hlbWFTQVhQbHVnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFVucGx1ZyI+eG1sU2NoZW1hU0FYVW5wbHVnPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sU2NoZW1hVmFsVHlwZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFZhbFR5cGUiPnhtbFNjaGVtYUdldFZhbFR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTY2hlbWFWYWxpZE9wdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMiPnhtbFNjaGVtYVNldFZhbGlkT3B0aW9uczwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNjaGVtYXRyb25WYWxpZE9wdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNwcmludGZFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFN0cmNtcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFN0cmR1cDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOb2RlIj54bWxOZXdOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sU3RyZWFtUHVzaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFN0cmluZ0dldE5vZGVMaXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFN0cm5jYXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0TmV3Ij54bWxTdHJuY2F0TmV3PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sU3RybmNtcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhDaGFyY21wIj54bWxVVEY4Q2hhcmNtcDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFRleHRSZWFkZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxOZXdUZXh0UmVhZGVyIj54bWxOZXdUZXh0UmVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIj54bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdEb2MiPnhtbFJlYWRlck5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0ZkIj54bWxSZWFkZXJOZXdGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0ZpbGUiPnhtbFJlYWRlck5ld0ZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdJTyI+eG1sUmVhZGVyTmV3SU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdNZW1vcnkiPnhtbFJlYWRlck5ld01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld1dhbGtlciI+eG1sUmVhZGVyTmV3V2Fsa2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnREb2MiPnhtbFRleHRSZWFkZXJDdXJyZW50RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIj54bWxUZXh0UmVhZGVyQ3VycmVudE5vZGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxUZXh0UmVhZGVyQ3VycmVudERvYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVzZXJ2ZSI+eG1sVGV4dFJlYWRlclByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFRleHRSZWFkZXJMb2NhdG9yUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFRleHRSZWFkZXJSZWFkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckV4cGFuZCI+eG1sVGV4dFJlYWRlckV4cGFuZDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFRleHRXcml0ZXJXcml0ZURURDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURvY1R5cGUiPnhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxUZXh0V3JpdGVyV3JpdGVQSTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbiI+eG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sVVJJPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ3JlYXRlVVJJIj54bWxDcmVhdGVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxGcmVlVVJJIj54bWxGcmVlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUHJpbnRVUkkiPnhtbFByaW50VVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sU2F2ZVVyaSI+eG1sU2F2ZVVyaTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFVSSUVzY2FwZVN0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sVVJJRnJvbVBhdGg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE5vcm1hbGl6ZVdpbmRvd3NQYXRoIj54bWxOb3JtYWxpemVXaW5kb3dzUGF0aDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFVSSVB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFVubGlua05vZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jU2V0Um9vdEVsZW1lbnQiPnhtbERvY1NldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOb2RlIj54bWxGcmVlTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFVubG9ja0xpYnJhcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sVW5sb2NrTGlicmFyeSI+eG1sVW5sb2NrTGlicmFyeTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFZhbGlkQ3R4dFB0cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxXcml0ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1dSSVRFUl9FTkFCTEVEIj5MSUJYTUxfV1JJVEVSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxYUGF0aENoZWNrRXJyb3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wQm9vbGVhbiI+eG1sWFBhdGhQb3BCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcEV4dGVybmFsIj54bWxYUGF0aFBvcEV4dGVybmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcE5vZGVTZXQiPnhtbFhQYXRoUG9wTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOdW1iZXIiPnhtbFhQYXRoUG9wTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcFN0cmluZyI+eG1sWFBhdGhQb3BTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxYUGF0aENvbXBFeHByUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGUiPnhtbFhQYXRoQ29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDdHh0Q29tcGlsZSI+eG1sWFBhdGhDdHh0Q29tcGlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFhQYXRoQ29udGV4dDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlQ29udGV4dCI+eG1sWFBhdGhGcmVlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOZXdDb250ZXh0Ij54bWxYUGF0aE5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFhQYXRoRXJyb3I8L2R0PjxkZD48YSBocmVmPSIiPmVycjwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFhQYXRoRXZhbFByZWRpY2F0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSI+eG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFhQYXRoRnJlZU9iamVjdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlTm9kZVNldExpc3QiPnhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sWFBhdGhGdW5jdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGdW5jdGlvbkxvb2t1cCI+eG1sWFBhdGhGdW5jdGlvbkxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TIj54bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlM8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmciPnhtbFhQYXRoTm9kZVRyYWlsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sWFBhdGhPYmplY3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFhQYXRoT2JqZWN0UHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGVkRXZhbCI+eG1sWFBhdGhDb21waWxlZEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbCI+eG1sWFBhdGhFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWxFeHByZXNzaW9uIj54bWxYUGF0aEV2YWxFeHByZXNzaW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCI+eG1sWFBhdGhGcmVlTm9kZVNldExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU9iamVjdCI+eG1sWFBhdGhGcmVlT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld0Jvb2xlYW4iPnhtbFhQYXRoTmV3Qm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdDU3RyaW5nIj54bWxYUGF0aE5ld0NTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3RmxvYXQiPnhtbFhQYXRoTmV3RmxvYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldCI+eG1sWFBhdGhOZXdOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld05vZGVTZXRMaXN0Ij54bWxYUGF0aE5ld05vZGVTZXRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1N0cmluZyI+eG1sWFBhdGhOZXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3VmFsdWVUcmVlIj54bWxYUGF0aE5ld1ZhbHVlVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhXcmFwTm9kZVNldCI+eG1sWFBhdGhXcmFwTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWwiPnhtbFhQdHJFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRBZGQiPnhtbFhQdHJMb2NhdGlvblNldEFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlIj54bWxYUHRyTG9jYXRpb25TZXRDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldERlbCI+eG1sWFB0ckxvY2F0aW9uU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UiPnhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMiPnhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2UiPnhtbFhQdHJOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCI+eG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50Ij54bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZU5vZGVzIj54bWxYUHRyTmV3UmFuZ2VOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIj54bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZVBvaW50cyI+eG1sWFB0ck5ld1JhbmdlUG9pbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyV3JhcExvY2F0aW9uU2V0Ij54bWxYUHRyV3JhcExvY2F0aW9uU2V0PC9hPjxiciAvPgorPC9kZD48ZHQ+eG1sWFBhdGhQYXJzZXJDb250ZXh0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0Ij54bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQiPnhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhaWxpbmciPnhtbFhQYXRoVHJhaWxpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxuczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTlNEZWYiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWxuczo/Pz88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD54bWx0ZXh0UmVhZGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRG9jIj54bWxSZWFkZXJGb3JEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JJTyI+eG1sUmVhZGVyRm9ySU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JNZW1vcnkiPnhtbFJlYWRlckZvck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0RvYyI+eG1sUmVhZGVyTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RmQiPnhtbFJlYWRlck5ld0ZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3SU8iPnhtbFJlYWRlck5ld0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3TWVtb3J5Ij54bWxSZWFkZXJOZXdNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdXYWxrZXIiPnhtbFJlYWRlck5ld1dhbGtlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlcldhbGtlciI+eG1sUmVhZGVyV2Fsa2VyPC9hPjxiciAvPgorPC9kZD48ZHQ+eHBhdGg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHJpbnRYUGF0aEVycm9yIj54bWxTaGVsbFByaW50WFBhdGhFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Ij54bWxTaGVsbFByaW50WFBhdGhSZXN1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD54cG9pbnRlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfUEFSU0VfWFBPSU5URVIiPlhJTkNMVURFX1BBUlNFX1hQT0lOVEVSPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazI5Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazI5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JjNWU5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMjkuaHRtbApAQCAtMCwwICsxLDEzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCB5LXogZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IHkteiBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciB5OjwvaDI+PGRsPjxkdD55ZWFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI2Z0cExpc3RDYWxsYmFjayI+ZnRwTGlzdENhbGxiYWNrPC9hPjxiciAvPgorPC9kZD48ZHQ+eWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0TWF0Y2hDYWxsYmFjayI+eG1sSW5wdXRNYXRjaENhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElzQmxhbmtOb2RlIj54bWxJc0JsYW5rTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNNaXhlZEVsZW1lbnQiPnhtbElzTWl4ZWRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVJc1RleHQiPnhtbE5vZGVJc1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE1hdGNoQ2FsbGJhY2siPnhtbE91dHB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwSXNEZXRlcm1pbmlzdCI+eG1sUmVnZXhwSXNEZXRlcm1pbmlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERvY3VtZW50Ij54bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PnlldDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcGVuIj54bWxNb2R1bGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVEb2MiPnhtbFNhdmVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PnlvdTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJblR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPC9kZD48ZHQ+eW91cjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgejo8L2gyPjxkbD48ZHQ+emVybzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VDaHVuayI+ZG9jYlBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRG9jIj5odG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlQ2h1bmsiPmh0bWxQYXJzZUNodW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkRG9jIj5odG1sUmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDQ2F0Ij54bWxCdWZmZXJDQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNhdCI+eG1sQnVmZmVyQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQnl0ZUNvbnN1bWVkIj54bWxCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weURvYyI+eG1sQ29weURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRG9jIj54bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5Ij54bWxEb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSGFzRmVhdHVyZSI+eG1sSGFzRmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyI+eG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUNodW5rIj54bWxQYXJzZUNodW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZERvYyI+eG1sUmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvckRvYyI+eG1sUmVhZGVyRm9yRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RG9jIj54bWxSZWFkZXJOZXdEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3ViIj54bWxTdHJzdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIj54bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pnplcm8tYmFzZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vPC9hPjxiciAvPgorPC9kZD48ZHQ+emVyb3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD56bGliPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlOGNiMzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazMuaHRtbApAQCAtMCwwICsxLDM0NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBGLUkgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IEYtSSBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBGOjwvaDI+PGRsPjxkdD5GQUxTRTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PkZGRkU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSIj5JU19DSEFSPC9hPjxiciAvPgorPC9kZD48ZHQ+RkZGRjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8L2RkPjxkdD5GSVhFRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkZSRUU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+RmFjZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlRmFjZXQiPnhtbFNjaGVtYUZyZWVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld0ZhY2V0Ij54bWxTY2hlbWFOZXdGYWNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PkZhbHNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxCb29sVG9UZXh0Ij54bWxCb29sVG9UZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+RmV0Y2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldCI+eG1sTmFub0ZUUEdldDwvYT48YnIgLz4KKzwvZGQ+PGR0PkZpbGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+RmlsbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUJ1ZkdldENvbnRlbnQiPnhtbE5vZGVCdWZHZXRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+RmluZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldExhbmd1YWdlIj54bWxFeHBHZXRMYW5ndWFnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldFN0YXJ0Ij54bWxFeHBHZXRTdGFydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0UmVmcyI+eG1sR2V0UmVmczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwIj54bWxIYXNoTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hMb29rdXAyIj54bWxIYXNoTG9va3VwMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMyI+eG1sSGFzaExvb2t1cDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFFMb29rdXAiPnhtbEhhc2hRTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMiI+eG1sSGFzaFFMb29rdXAyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMyI+eG1sSGFzaFFMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mbyI+eG1sUGFyc2VyRmluZE5vZGVJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiPnhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4PC9hPjxiciAvPgorPC9kZD48ZHQ+RmluZHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ2hpbGRFbGVtZW50Q291bnQiPnhtbENoaWxkRWxlbWVudENvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwSXNOaWxsYWJsZSI+eG1sRXhwSXNOaWxsYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGaXJzdEVsZW1lbnRDaGlsZCI+eG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTGFzdEVsZW1lbnRDaGlsZCI+eG1sTGFzdEVsZW1lbnRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXh0RWxlbWVudFNpYmxpbmciPnhtbE5leHRFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIj54bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+Rmlyc3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIj5YTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5GaXhlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+RmxvYXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRXZhbE51bWJlciI+eG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+Rmx1c2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUZsdXNoIj54bWxTYXZlRmx1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRmx1c2giPnhtbFRleHRXcml0ZXJGbHVzaDwvYT48YnIgLz4KKzwvZGQ+PGR0PkZvcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxDdHh0UmVzZXRMYXN0RXJyb3IiPnhtbEN0eHRSZXNldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ29tbWVudCI+eG1sUGFyc2VDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUmVzZXRMYXN0RXJyb3IiPnhtbFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbiI+eG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PkZvcm08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFVSSSI+eG1sQnVpbGRVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5Gb3JtYXRpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NDb250ZW50RHVtcE91dHB1dCI+aHRtbERvY0NvbnRlbnREdW1wT3V0cHV0PC9hPjxiciAvPgorPC9kZD48ZHQ+Rm9ybWF0czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyVlByaW50ZiI+eG1sU3RyVlByaW50ZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhlcnJvciI+eG1sWFBhdGhlcnJvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkZvcm1lZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJEb2MiPnhtbFJlY292ZXJEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWNvdmVyRmlsZSI+eG1sUmVjb3ZlckZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWNvdmVyTWVtb3J5Ij54bWxSZWNvdmVyTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPC9kZD48ZHQ+RnJhZ21lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jRnJhZ21lbnQiPnhtbE5ld0RvY0ZyYWdtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+RnJhbWVzZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzwvZGQ+PGR0PkZyZWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckZyZWUiPnhtbEJ1ZmZlckZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEZyZWVDdHh0Ij54bWxET01XcmFwRnJlZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEZyZWVDdHh0Ij54bWxOYW5vRlRQRnJlZUN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Gcm9udC1lbmQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNGaXJzdExpbmUiPnhtbENoYXJFbmNGaXJzdExpbmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5GdW5jdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDb250ZW50Ij54bWxCdWZmZXJDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckxlbmd0aCI+eG1sQnVmZmVyTGVuZ3RoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwIj54bWxYUGF0aEZ1bmN0aW9uTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIEc6PC9oMj48ZGw+PGR0PkdDQzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNBVFRSSUJVVEVfVU5VU0VEIj5BVFRSSUJVVEVfVU5VU0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9BVFRSX0FMTE9DX1NJWkUiPkxJQlhNTF9BVFRSX0FMTE9DX1NJWkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FUVFJfRk9STUFUIj5MSUJYTUxfQVRUUl9GT1JNQVQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5HRURlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eURlY2wiPnhtbFBhcnNlRW50aXR5RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkdFVDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBGZXRjaCI+eG1sTmFub0hUVFBGZXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuIj54bWxOYW5vSFRUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlblJlZGlyIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkdlbmVyYWxQdW5jdHVhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbiI+eG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5HZW5lcmljPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jQ2xvc2VGdW5jIj54bWxDaGFyRW5jQ2xvc2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jSW5GdW5jIj54bWxDaGFyRW5jSW5GdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5HZW9tZXRyaWNTaGFwZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMiPnhtbFVDU0lzR2VvbWV0cmljU2hhcGVzPC9hPjxiciAvPgorPC9kZD48ZHQ+R2VvcmdpYW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHZW9yZ2lhbiI+eG1sVUNTSXNHZW9yZ2lhbjwvYT48YnIgLz4KKzwvZGQ+PGR0PkdldHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIj54bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+R2l2ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJblR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5HbG9iYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzwvZGQ+PGR0PkdvdGhpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dvdGhpYyI+eG1sVUNTSXNHb3RoaWM8L2E+PGJyIC8+Cis8L2RkPjxkdD5HcmVlazwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dyZWVrIj54bWxVQ1NJc0dyZWVrPC9hPjxiciAvPgorPC9kZD48ZHQ+R3JlZWtFeHRlbmRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQiPnhtbFVDU0lzR3JlZWtFeHRlbmRlZDwvYT48YnIgLz4KKzwvZGQ+PGR0PkdyZWVrYW5kQ29wdGljPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3JlZWthbmRDb3B0aWMiPnhtbFVDU0lzR3JlZWthbmRDb3B0aWM8L2E+PGJyIC8+Cis8L2RkPjxkdD5Hcm91cDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+R3JvdzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJHcm93Ij54bWxCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciPnhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvYT48YnIgLz4KKzwvZGQ+PGR0Pkd1ZXNzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxEZXRlY3RDaGFyRW5jb2RpbmciPnhtbERldGVjdENoYXJFbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pkd1amFyYXRpPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3VqYXJhdGkiPnhtbFVDU0lzR3VqYXJhdGk8L2E+PGJyIC8+Cis8L2RkPjxkdD5HdXJtdWtoaTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0d1cm11a2hpIj54bWxVQ1NJc0d1cm11a2hpPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgSDo8L2gyPjxkbD48ZHQ+SFRNTF9ERVBSRUNBVEVEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50U3RhdHVzSGVyZSI+aHRtbEVsZW1lbnRTdGF0dXNIZXJlPC9hPjxiciAvPgorPC9kZD48ZHQ+SFRNTF9JTlZBTElEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50U3RhdHVzSGVyZSI+aHRtbEVsZW1lbnRTdGF0dXNIZXJlPC9hPjxiciAvPgorPC9kZD48ZHQ+SFRNTF9OQTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVN0YXR1cyI+aHRtbE5vZGVTdGF0dXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5IVE1MX1JFUVVJUkVEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPjxiciAvPgorPC9kZD48ZHQ+SFRNTF9WQUxJRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXR0ckFsbG93ZWQiPmh0bWxBdHRyQWxsb3dlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudFN0YXR1c0hlcmUiPmh0bWxFbGVtZW50U3RhdHVzSGVyZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkhhY2tpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkhhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMiPnhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5IYW5kbGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZVNBWEZ1bmMiPmF0dHJpYnV0ZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFcnJNZW1vcnkiPnhtbEVyck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFcnIiPnhtbFhQYXRoRXJyPC9hPjxiciAvPgorPC9kZD48ZHQ+SGFuZGxpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDdXJyZW50Q2hhciI+eG1sQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5IYW5ndWxDb21wYXRpYmlsaXR5SmFtbzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vIj54bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vPC9hPjxiciAvPgorPC9kZD48ZHQ+SGFuZ3VsSmFtbzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bEphbW8iPnhtbFVDU0lzSGFuZ3VsSmFtbzwvYT48YnIgLz4KKzwvZGQ+PGR0Pkhhbmd1bFN5bGxhYmxlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcyI+eG1sVUNTSXNIYW5ndWxTeWxsYWJsZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5IYW51bm9vPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGFudW5vbyI+eG1sVUNTSXNIYW51bm9vPC9hPjxiciAvPgorPC9kZD48ZHQ+SGFzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPjxiciAvPgorPC9kZD48ZHQ+SGFzaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEdGQiPl94bWxEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5IZWJyZXc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIZWJyZXciPnhtbFVDU0lzSGVicmV3PC9hPjxiciAvPgorPC9kZD48ZHQ+SGVuY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uRGVjbCI+eG1sUGFyc2VOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5IaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMiPnhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzPC9hPjxiciAvPgorPC9kZD48ZHQ+SGlnaFN1cnJvZ2F0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIaWdoU3Vycm9nYXRlcyI+eG1sVUNTSXNIaWdoU3Vycm9nYXRlczwvYT48YnIgLz4KKzwvZGQ+PGR0PkhpcmFnYW5hPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGlyYWdhbmEiPnhtbFVDU0lzSGlyYWdhbmE8L2E+PGJyIC8+Cis8L2RkPjxkdD5IbW08L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbiI+eG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW48L2E+PGJyIC8+Cis8L2RkPjxkdD5Ib2xkczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ib3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VySW5wdXQiPl94bWxQYXJzZXJJbnB1dDwvYT48YnIgLz4KKzwvZGQ+PGR0Pkhvd2V2ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkZyZWVQYXJzZXJDdHh0Ij5kb2NiRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEZyZWVQYXJzZXJDdHh0Ij5odG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxGcmVlUGFyc2VyQ3R4dCI+eG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgSTo8L2gyPjxkbD48ZHQ+STE4TjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjX3htbE91dHB1dEJ1ZmZlciI+X3htbE91dHB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjX3htbFBhcnNlcklucHV0QnVmZmVyIj5feG1sUGFyc2VySW5wdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlIj54bWxPdXRwdXRCdWZmZXJXcml0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyI+eG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyR3JvdyI+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2giPnhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5JRFJFRjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkIj54bWxWYWxpZGF0ZUR0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+SURSRUZTPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCI+eG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsPC9hPjxiciAvPgorPC9kZD48ZHQ+SURSRUZzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5JRHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSWRGdW5jdGlvbiI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+SUVFRTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5JTVBMSUVEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+SVBBRXh0ZW5zaW9uczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0lQQUV4dGVuc2lvbnMiPnhtbFVDU0lzSVBBRXh0ZW5zaW9uczwvYT48YnIgLz4KKzwvZGQ+PGR0PklTTzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCNYTUxfQ0FTVF9GUFRSIj5YTUxfQ0FTVF9GUFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNpc29sYXQxVG9VVEY4Ij5pc29sYXQxVG9VVEY4PC9hPjxiciAvPgorPC9kZD48ZHQ+SVNPLTg4NTktPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9JU084ODU5WF9FTkFCTEVEIj5MSUJYTUxfSVNPODg1OVhfRU5BQkxFRDwvYT48YnIgLz4KKzwvZGQ+PGR0PklTTy1MYXRpbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PklTTzYzOUNvZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDaGVja0xhbmd1YWdlSUQiPnhtbENoZWNrTGFuZ3VhZ2VJRDwvYT48YnIgLz4KKzwvZGQ+PGR0PklTT0xhdGluPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCNfeG1sT3V0cHV0QnVmZmVyIj5feG1sT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+SVNfQkxBTks8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOS19DSCI+SVNfQkxBTktfQ0g8L2E+PGJyIC8+Cis8L2RkPjxkdD5JU19DSEFSPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ0hBUl9DSCI+SVNfQ0hBUl9DSDwvYT48YnIgLz4KKzwvZGQ+PGR0PklTX0RJR0lUPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVRfQ0giPklTX0RJR0lUX0NIPC9hPjxiciAvPgorPC9kZD48ZHQ+SVNfRVhURU5ERVI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUl9DSCI+SVNfRVhURU5ERVJfQ0g8L2E+PGJyIC8+Cis8L2RkPjxkdD5JU19MRVRURVI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19MRVRURVJfQ0giPklTX0xFVFRFUl9DSDwvYT48YnIgLz4KKzwvZGQ+PGR0PklTX1BVQklEQ0hBUjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX1BVQklEQ0hBUl9DSCI+SVNfUFVCSURDSEFSX0NIPC9hPjxiciAvPgorPC9kZD48ZHQ+SWFuYUNvZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDaGVja0xhbmd1YWdlSUQiPnhtbENoZWNrTGFuZ3VhZ2VJRDwvYT48YnIgLz4KKzwvZGQ+PGR0PklkZW50aWZpZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlIj54bWxBQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZSI+eG1sQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5JZGVudGlmaWVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9NQVhfTkFNRUxFTiI+WE1MX01BWF9OQU1FTEVOPC9hPjxiciAvPgorPC9kZD48ZHQ+SWRlb2dyYXBoaWM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19JREVPR1JBUEhJQyI+SVNfSURFT0dSQVBISUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19MRVRURVIiPklTX0xFVFRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbElzTGV0dGVyIj54bWxJc0xldHRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PklkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMiPnhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5JZ25vcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVgiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYPC9hPjxiciAvPgorPC9kZD48ZHQ+SWdub3JlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENvcHlDaGFyIj54bWxDb3B5Q2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkltcGxlbWVudHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIj54bWxTaGVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxCYXNlIj54bWxTaGVsbEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ2F0Ij54bWxTaGVsbENhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxEaXIiPnhtbFNoZWxsRGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbER1Ij54bWxTaGVsbER1PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbExpc3QiPnhtbFNoZWxsTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMb2FkIj54bWxTaGVsbExvYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHdkIj54bWxTaGVsbFB3ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxTYXZlIj54bWxTaGVsbFNhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsVmFsaWRhdGUiPnhtbFNoZWxsVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsV3JpdGUiPnhtbFNoZWxsV3JpdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlmZmVyZW5jZSI+eG1sWFBhdGhEaWZmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0Ij54bWxYUGF0aERpc3RpbmN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0U29ydGVkIj54bWxYUGF0aERpc3RpbmN0U29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEhhc1NhbWVOb2RlcyI+eG1sWFBhdGhIYXNTYW1lTm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSW50ZXJzZWN0aW9uIj54bWxYUGF0aEludGVyc2VjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nIj54bWxYUGF0aExlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nIj54bWxYUGF0aE5vZGVMZWFkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIj54bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRJdGVtIj54bWxYUGF0aE5vZGVTZXRJdGVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZyI+eG1sWFBhdGhOb2RlVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIj54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZyI+eG1sWFBhdGhUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzwvZGQ+PGR0PkluY2x1ZGVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+SW5jcmVhc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBSZWYiPnhtbEV4cFJlZjwvYT48YnIgLz4KKzwvZGQ+PGR0PkluY3JlbWVudDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UmVmZXJlbmNlIj54bWxEaWN0UmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+SW5kaWNhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBNYXhUb2tlbiI+eG1sRXhwTWF4VG9rZW48L2E+PGJyIC8+Cis8L2RkPjxkdD5JbmRpY2F0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVdpbGRjYXJkIj5feG1sU2NoZW1hV2lsZGNhcmQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5JbmZpbml0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0PkluaXRpYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhR2V0SW5pdFN0YXRlIj54bWxBdXRvbWF0YUdldEluaXRTdGF0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkluaXRpYWxpemF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdFBhcnNlciI+eG1sSW5pdFBhcnNlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PkluaXRpYWxpemU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCI+ZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCNodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ij5odG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlciI+aW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXRodG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQiPnhtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxJbml0TWVtb3J5Ij54bWxJbml0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdE5vZGVJbmZvU2VxIj54bWxJbml0Tm9kZUluZm9TZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0UGFyc2VyQ3R4dCI+eG1sSW5pdFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEluaXQiPnhtbE5hbm9GVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQSW5pdCI+eG1sTmFub0hUVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIiPnhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWFZlcnNpb24iPnhtbFNBWFZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFJbml0VHlwZXMiPnhtbFNjaGVtYUluaXRUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJbml0Ij54bWxYUGF0aEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUm9vdCI+eG1sWFBhdGhSb290PC9hPjxiciAvPgorPC9kZD48ZHQ+SW5pdGlhbGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCI+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PkluaXRpYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRTb2NrZXQiPnhtbE5hbm9GVFBHZXRTb2NrZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Jbml0aWxpemU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0luaXRUeXBlcyI+eG1sUmVsYXhOR0luaXRUeXBlczwvYT48YnIgLz4KKzwvZGQ+PGR0PklucHV0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSU9QYXJzZURURCI+eG1sSU9QYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0TWF0Y2hDYWxsYmFjayI+eG1sSW5wdXRNYXRjaENhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE9wZW5DYWxsYmFjayI+eG1sSW5wdXRPcGVuQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iPnhtbE5ld0lPSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8L2RkPjxkdD5JbnNlcnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEFwcGVuZCI+eG1sTGlzdEFwcGVuZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0SW5zZXJ0Ij54bWxMaXN0SW5zZXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyQWRkTm9kZUluZm8iPnhtbFBhcnNlckFkZE5vZGVJbmZvPC9hPjxiciAvPgorPC9kZD48ZHQ+SW5zdHJ1Y3Rpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJIj54bWxQYXJzZVBJPC9hPjxiciAvPgorPC9kZD48ZHQ+SW5zdHVjdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQUxPR19QSSI+WE1MX0NBVEFMT0dfUEk8L2E+PGJyIC8+Cis8L2RkPjxkdD5JbnRlbmRlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sU25wcmludGZFbGVtZW50Q29udGVudCI+eG1sU25wcmludGZFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PkludGVybmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxET01XcmFwQ3R4dCI+X3htbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rNC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bms0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWEyMjIyZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rNC5odG1sCkBAIC0wLDAgKzEsMzQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IEotTiBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggSi1OIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIEo6PC9oMj48ZGw+PGR0PkphbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+SmF2YTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoZWNrVVRGOCI+eG1sQ2hlY2tVVEY4PC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgSzo8L2gyPjxkbD48ZHQ+S2FuYnVuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2FuYnVuIj54bWxVQ1NJc0thbmJ1bjwvYT48YnIgLz4KKzwvZGQ+PGR0Pkthbmd4aVJhZGljYWxzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2FuZ3hpUmFkaWNhbHMiPnhtbFVDU0lzS2FuZ3hpUmFkaWNhbHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5LYW5uYWRhPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2FubmFkYSI+eG1sVUNTSXNLYW5uYWRhPC9hPjxiciAvPgorPC9kZD48ZHQ+S2F0YWthbmE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNLYXRha2FuYSI+eG1sVUNTSXNLYXRha2FuYTwvYT48YnIgLz4KKzwvZGQ+PGR0PkthdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMiPnhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5LaG1lcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0tobWVyIj54bWxVQ1NJc0tobWVyPC9hPjxiciAvPgorPC9kZD48ZHQ+S2htZXJTeW1ib2xzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2htZXJTeW1ib2xzIj54bWxVQ1NJc0tobWVyU3ltYm9sczwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIEw6PC9oMj48ZGw+PGR0Pkxhbmdjb2RlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5MYW5ndWFnZUlEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5MYW88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYW8iPnhtbFVDU0lzTGFvPC9hPjxiciAvPgorPC9kZD48ZHQ+TGFzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PkxhdGluPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNVVEY4VG9pc29sYXQxIj5VVEY4VG9pc29sYXQxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNpc29sYXQxVG9VVEY4Ij5pc29sYXQxVG9VVEY4PC9hPjxiciAvPgorPC9kZD48ZHQ+TGF0aW4tMVN1cHBsZW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50Ij54bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5MYXRpbkV4dGVuZGVkLUE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYXRpbkV4dGVuZGVkQSI+eG1sVUNTSXNMYXRpbkV4dGVuZGVkQTwvYT48YnIgLz4KKzwvZGQ+PGR0PkxhdGluRXh0ZW5kZWQtQjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRCPC9hPjxiciAvPgorPC9kZD48ZHQ+TGF0aW5FeHRlbmRlZEFkZGl0aW9uYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCI+eG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkxlZ2FsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyUmVmIj54bWxQYXJzZUNoYXJSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pkxlbmd0aDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBNZW1vcnlFbmMiPnhtbERvY0R1bXBNZW1vcnlFbmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5MZXR0ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19MRVRURVIiPklTX0xFVFRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbElzTGV0dGVyIj54bWxJc0xldHRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZSI+eG1sUGFyc2VOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2Nhbk5hbWUiPnhtbFNjYW5OYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBhcnNlTkNOYW1lIj54bWxYUGF0aFBhcnNlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBhcnNlTmFtZSI+eG1sWFBhdGhQYXJzZU5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5MZXR0ZXJsaWtlU3ltYm9sczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzIj54bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzPC9hPjxiciAvPgorPC9kZD48ZHQ+TGlrZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPcmRlckRvY0VsZW1zIj54bWxYUGF0aE9yZGVyRG9jRWxlbXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5MaW1idTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbWJ1Ij54bWxVQ1NJc0xpbWJ1PC9hPjxiciAvPgorPC9kZD48ZHQ+TGluZWFyQklkZW9ncmFtczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiPnhtbFVDU0lzTGluZWFyQklkZW9ncmFtczwvYT48YnIgLz4KKzwvZGQ+PGR0PkxpbmVhckJTeWxsYWJhcnk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5Ij54bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnk8L2E+PGJyIC8+Cis8L2RkPjxkdD5MaXN0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbGVtZW50Ij5feG1sRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PkxpdGVyYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN5c3RlbUxpdGVyYWwiPnhtbFBhcnNlU3lzdGVtTGl0ZXJhbDwvYT48YnIgLz4KKzwvZGQ+PGR0PkxvYWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJT1BhcnNlRFREIj54bWxJT1BhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRBQ2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9nIj54bWxMb2FkQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZ3MiPnhtbExvYWRDYXRhbG9nczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbExvYWRFeHRlcm5hbEVudGl0eSI+eG1sTG9hZEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRFREIj54bWxQYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRFREIj54bWxTQVhQYXJzZURURDwvYT48YnIgLz4KKzwvZGQ+PGR0PkxvY2FsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCNfeG1sT3V0cHV0QnVmZmVyIj5feG1sT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCNfeG1sUGFyc2VySW5wdXRCdWZmZXIiPl94bWxQYXJzZXJJbnB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5Mb2NhbFBhcnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3BsaXRRTmFtZSI+eG1sU3BsaXRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMiI+eG1sU3BsaXRRTmFtZTI8L2E+PGJyIC8+Cis8L2RkPjxkdD5Mb2NhdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsIj54bWxYUHRyRXZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSI+eG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PkxvY2F0aW9uU2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRnJlZUxvY2F0aW9uU2V0Ij54bWxYUHRyRnJlZUxvY2F0aW9uU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRBZGQiPnhtbFhQdHJMb2NhdGlvblNldEFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0RGVsIj54bWxYUHRyTG9jYXRpb25TZXREZWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldE1lcmdlIj54bWxYUHRyTG9jYXRpb25TZXRNZXJnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlIj54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQiPnhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIj54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0cldyYXBMb2NhdGlvblNldCI+eG1sWFB0cldyYXBMb2NhdGlvblNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PkxvY2F0b3I8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzZXREb2N1bWVudExvY2F0b3IiPnNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciI+eG1sU0FYMlNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzwvZGQ+PGR0Pkxvb2t1cDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5TG9va3VwIj5odG1sRW50aXR5TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxUYWdMb29rdXAiPmh0bWxUYWdMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldEVuY29kaW5nQWxpYXMiPnhtbEdldEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVTeW1ib2wiPnhtbE1vZHVsZVN5bWJvbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlIj54bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pkxvb3NlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5Mb3dTdXJyb2dhdGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTG93U3Vycm9nYXRlcyI+eG1sVUNTSXNMb3dTdXJyb2dhdGVzPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgTTo8L2gyPjxkbD48ZHQ+TUVUQTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbFNldE1ldGFFbmNvZGluZyI+aHRtbFNldE1ldGFFbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1PRElGSUVSPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5NVUxUPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbGVtZW50Q29udGVudCI+X3htbEVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+TVVTVDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIj54bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1ha2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUiPnhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1hbGF5YWxhbTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01hbGF5YWxhbSI+eG1sVUNTSXNNYWxheWFsYW08L2E+PGJyIC8+Cis8L2RkPjxkdD5NYXBzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENoaWxkcmVuTm9kZSI+eG1sQ2hpbGRyZW5Ob2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJvb3ROb2RlIj54bWxSb290Tm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1hcmtzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRSI+WE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX01BUktFRCI+WE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5NYXJrdXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsU3Vic2V0Ij54bWxQYXJzZUV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5NYXRjaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudCI+eG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+TWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9sczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMiPnhtbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9sczwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1hdGhlbWF0aWNhbE9wZXJhdG9yczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9ycyI+eG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5NYXg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI194bWxWYWxpZEN0eHQiPl94bWxWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5NYXhpbXVtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9URVhUX0xFTkdUSCI+WE1MX01BWF9URVhUX0xFTkdUSDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1heTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+TWVtb3J5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeUVuYyI+eG1sRG9jRHVtcE1lbW9yeUVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1lcmdlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFRleHRNZXJnZSI+eG1sVGV4dE1lcmdlPC9hPjxiciAvPgorPC9kZD48ZHQ+TWVyZ2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRNZXJnZSI+eG1sWFBhdGhOb2RlU2V0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldE1lcmdlIj54bWxYUHRyTG9jYXRpb25TZXRNZXJnZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1ldGE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxHZXRNZXRhRW5jb2RpbmciPmh0bWxHZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTZXRNZXRhRW5jb2RpbmciPmh0bWxTZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5NZXRob2Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+TWltZS1UeXBlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1pbWVUeXBlIj54bWxOYW5vSFRUUE1pbWVUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+TWluaW1hbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1pc2M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZURvY3VtZW50Ij54bWxQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNaXNjIj54bWxQYXJzZU1pc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5NaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9scy1BPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzLUI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IiPnhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCPC9hPjxiciAvPgorPC9kZD48ZHQ+TWlzY2VsbGFuZW91c1N5bWJvbHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scyI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sczwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3MiPnhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5NaXNjZWxsYW5lb3VzVGVjaG5pY2FsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsPC9hPjxiciAvPgorPC9kZD48ZHQ+TWl4ZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzTWl4ZWRFbGVtZW50Ij54bWxJc01peGVkRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+TW9uZ29saWFuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTW9uZ29saWFuIj54bWxVQ1NJc01vbmdvbGlhbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1vcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5Nb3ZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RDb3B5Ij54bWxMaXN0Q29weTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk1vdmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zIj54bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCI+eG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlIj54bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkIj54bWxUZXh0UmVhZGVyUmVhZDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk11c2ljYWxTeW1ib2xzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTXVzaWNhbFN5bWJvbHMiPnhtbFVDU0lzTXVzaWNhbFN5bWJvbHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5NeWFubWFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTXlhbm1hciI+eG1sVUNTSXNNeWFubWFyPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgTjo8L2gyPjxkbD48ZHQ+TkFNRTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRFREIj54bWxQYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRFREIj54bWxTQVhQYXJzZURURDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5DTmFtZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTlNEZWYiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3BsaXRRTmFtZSI+eG1sU3BsaXRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMiI+eG1sU3BsaXRRTmFtZTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOQ05hbWUiPnhtbFZhbGlkYXRlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBhcnNlTkNOYW1lIj54bWxYUGF0aFBhcnNlTkNOYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+TkNOYW1lQ2hhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQYXJzZU5DTmFtZSI+eG1sWFBhdGhQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5EQVRBPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5ORGF0YURlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eURlY2wiPnhtbFBhcnNlRW50aXR5RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5EYXRhRGVjbD88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eURlY2wiPnhtbFBhcnNlRW50aXR5RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5NVE9LRU48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5NVE9LRU5TPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5OTVRva2VuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFZhbGlkYXRlTk1Ub2tlbiI+eG1sVmFsaWRhdGVOTVRva2VuPC9hPjxiciAvPgorPC9kZD48ZHQ+Tk9UQVRJT048L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIj54bWxQYXJzZUVudW1lcmF0ZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUiPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5OT1RFPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRGZCI+eG1sQ3R4dFJlYWRGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvbkRlY2wiPnhtbFBhcnNlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZkIj54bWxSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5OT1RFOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJJbnB1dCI+X3htbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2V0TWV0YUVuY29kaW5nIj5odG1sU2V0TWV0YUVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldFByb3AiPnhtbEdldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycyI+eG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlIj54bWxOZXdEb2NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGVFYXROYW1lIj54bWxOZXdEb2NOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnQiPnhtbE5vZGVBZGRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50TGVuIj54bWxOb2RlQWRkQ29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2giPnhtbFN0cmVhbVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaEF0dHIiPnhtbFN0cmVhbVB1c2hBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDdXJyZW50RG9jIj54bWxUZXh0UmVhZGVyQ3VycmVudERvYzwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5SSzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+TlNEZWY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIj54bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9hPjxiciAvPgorPC9kZD48ZHQ+TmFOPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbiI+eG1sWFBhdGhCb29sZWFuRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNOYU4iPnhtbFhQYXRoSXNOYU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5OYW1lQ2hhcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZSI+eG1sUGFyc2VOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VObXRva2VuIj54bWxQYXJzZU5tdG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5hbWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWUiPnhtbFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOYW1lc1ZhbHVlIj54bWxWYWxpZGF0ZU5hbWVzVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5OYW1lc3BhY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hNTF9OQU1FU1BBQ0UiPlhNTF9YTUxfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbGVtZW50Q29udGVudCI+X3htbEVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0dsb2JhbE5zIj54bWxOZXdHbG9iYWxOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOcyI+eG1sTmV3TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEZyZWVOcyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyQnVpbGROb2RlTGlzdCI+eG1sWFB0ckJ1aWxkTm9kZUxpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5OYW5lc3BhY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5OZWVkZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5OZXN0aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5ldzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPC9kZD48ZHQ+Tm10b2tlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGlvblR5cGUiPnhtbFBhcnNlRW51bWVyYXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VObXRva2VuIj54bWxQYXJzZU5tdG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm10b2tlblZhbHVlIj54bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5tdG9rZW5zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5tdG9rZW4iPnhtbFBhcnNlTm10b2tlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIj54bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob2RlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldCI+eG1sWFBhdGhOZXdOb2RlU2V0PC9hPjxiciAvPgorPC9kZD48ZHQ+Tm9kZUluZm88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob2RlTGlzdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIj54bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTm9kZVNldEl0ZW0iPnhtbFhQYXRoTm9kZVNldEl0ZW08L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob2RlUHRyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld05vZGVTZXQiPnhtbFhQYXRoTmV3Tm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdWYWx1ZVRyZWUiPnhtbFhQYXRoTmV3VmFsdWVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBOb2RlU2V0Ij54bWxYUGF0aFdyYXBOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob2RlU2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVOb2RlU2V0Ij54bWxYUGF0aEZyZWVOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld05vZGVTZXQiPnhtbFhQYXRoTmV3Tm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdOb2RlU2V0TGlzdCI+eG1sWFBhdGhOZXdOb2RlU2V0TGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkIj54bWxYUGF0aE5vZGVTZXRBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZE5zIj54bWxYUGF0aE5vZGVTZXRBZGROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlIj54bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRNZXJnZSI+eG1sWFBhdGhOb2RlU2V0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldFJlbW92ZSI+eG1sWFBhdGhOb2RlU2V0UmVtb3ZlPC9hPjxiciAvPgorPC9kZD48ZHQ+Tm9kZVNldExpc3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXRMaXN0Ij54bWxYUGF0aEZyZWVOb2RlU2V0TGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5vZGVUeXBlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElzTm9kZVR5cGUiPnhtbFhQYXRoSXNOb2RlVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5vZGVzZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldExpc3QiPnhtbFhQYXRoTmV3Tm9kZVNldExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcE5vZGVTZXQiPnhtbFhQYXRoV3JhcE5vZGVTZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob24tc3RhdGljPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBPcGVuVyI+eG1sSU9IVFRQT3Blblc8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob3JtYWxpemF0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sTm9ybWFsaXplVVJJUGF0aCI+eG1sTm9ybWFsaXplVVJJUGF0aDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5vcm1hbGl6YXRpb246PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5vdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRWxlbWVudCI+X3htbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob3RhTnVtYmVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aElzTmFOIj54bWxYUGF0aElzTmFOPC9hPjxiciAvPgorPC9kZD48ZHQ+Tm90YXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vdGF0aW9uIj5feG1sTm90YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eURlY2wiPnhtbFBhcnNlRW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25UeXBlIj54bWxQYXJzZU5vdGF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvblVzZSI+eG1sVmFsaWRhdGVOb3RhdGlvblVzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob3RhdGlvbkRlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk5vdGF0aW9uVHlwZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRlZFR5cGUiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uVHlwZSI+eG1sUGFyc2VOb3RhdGlvblR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ob3RlOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2ZhdGFsRXJyb3JTQVhGdW5jIj5mYXRhbEVycm9yU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldER0ZEVudGl0eSI+eG1sR2V0RHRkRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25UeXBlIj54bWxQYXJzZU5vdGF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3Ryc3ViIj54bWxVVEY4U3Ryc3ViPC9hPjxiciAvPgorPC9kZD48ZHQ+TnVtYmVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pk51bWJlckZvcm1zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTnVtYmVyRm9ybXMiPnhtbFVDU0lzTnVtYmVyRm9ybXM8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rNS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bms1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAzYWM5YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rNS5odG1sCkBAIC0wLDAgKzEsMjkxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IE8tUCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggTy1QIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIE86PC9oMj48ZGw+PGR0Pk9CU09MRVRFOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEhhbmRsZUVudGl0eSI+eG1sSGFuZGxlRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+T05DRTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudENvbnRlbnQiPl94bWxFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk9QVDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudENvbnRlbnQiPl94bWxFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0Pk9VVDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2QiPnhtbE5hbm9IVFRQTWV0aG9kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+T1VUOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXBNZW1vcnkiPmh0bWxEb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCI+aHRtbERvY0R1bXBNZW1vcnlGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcEZvcm1hdE1lbW9yeSI+eG1sRG9jRHVtcEZvcm1hdE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5Ij54bWxEb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPC9kZD48ZHQ+T2Jzb2xldGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVgiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9TS0lQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUIj5YTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYSI+X3htbFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRWxlbWVudCI+X3htbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUZhY2V0Ij5feG1sU2NoZW1hRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+T2J0YWluPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjwvYT48YnIgLz4KKzwvZGQ+PGR0Pk9naGFtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzT2doYW0iPnhtbFVDU0lzT2doYW08L2E+PGJyIC8+Cis8L2RkPjxkdD5PbGRJdGFsaWM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPbGRJdGFsaWMiPnhtbFVDU0lzT2xkSXRhbGljPC9hPjxiciAvPgorPC9kZD48ZHQ+T25lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSU5QVVRfQ0hVTksiPklOUFVUX0NIVU5LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIj54bWxWYWxpZGF0ZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+T3BlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlblciPnhtbElPSFRUUE9wZW5XPC9hPjxiciAvPgorPC9kZD48ZHQ+T3BlbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcGVuIj54bWxNb2R1bGVPcGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+T3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uIj54bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbjwvYT48YnIgLz4KKzwvZGQ+PGR0Pk9wdGlvbmFsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5Pcml5YTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc09yaXlhIj54bWxVQ1NJc09yaXlhPC9hPjxiciAvPgorPC9kZD48ZHQ+T3NtYW55YTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc09zbWFueWEiPnhtbFVDU0lzT3NtYW55YTwvYT48YnIgLz4KKzwvZGQ+PGR0Pk90aGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5PdGhlcndpc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaCI+eG1sU3RyZWFtUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoQXR0ciI+eG1sU3RyZWFtUHVzaEF0dHI8L2E+PGJyIC8+Cis8L2RkPjxkdD5PdXRwdXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dENsb3NlQ2FsbGJhY2siPnhtbE91dHB1dENsb3NlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE1hdGNoQ2FsbGJhY2siPnhtbE91dHB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE9wZW5DYWxsYmFjayI+eG1sT3V0cHV0T3BlbkNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIj54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9hPjxiciAvPgorPC9kZD48ZHQ+T3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+T3ZlcnJpZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgUDo8L2gyPjxkbD48ZHQ+UDMyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5QQ0RBVEE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbGVtRGVzYyI+X2h0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudENvbnRlbnQiPl94bWxFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5QRURlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eURlY2wiPnhtbFBhcnNlRW50aXR5RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlBFRGVmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5QRVJlZmVyZW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVZhbHVlIj54bWxQYXJzZUVudGl0eVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbFN1YnNldCI+eG1sUGFyc2VFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzwvZGQ+PGR0PlBFczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+UElUYXJnZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJIj54bWxQYXJzZVBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQSVRhcmdldCI+eG1sUGFyc2VQSVRhcmdldDwvYT48YnIgLz4KKzwvZGQ+PGR0PlBJczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NHZXRSb290RWxlbWVudCI+eG1sRG9jR2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jU2V0Um9vdEVsZW1lbnQiPnhtbERvY1NldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+UExVUzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudENvbnRlbnQiPl94bWxFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PlBPU1Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE9wZW5XIj54bWxJT0hUVFBPcGVuVzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrczwvYT48YnIgLz4KKzwvZGQ+PGR0PlBTVkk8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEF0dHIiPl94bWxBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbE5vZGUiPl94bWxOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+UFVCTElDPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEdGQiPl94bWxEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0Ij54bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENyZWF0ZUludFN1YnNldCI+eG1sQ3JlYXRlSW50U3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uRGVjbCI+eG1sUGFyc2VOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5QVVQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MiPnhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3M8L2E+PGJyIC8+Cis8L2RkPjxkdD5QYXJhbWV0ZXI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5QYXJhbWV0ZXItZW50aXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlBhcnNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUNodW5rIj5kb2NiUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VDaHVuayI+aHRtbFBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRG9jIj5odG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNEU2VjdCI+eG1sUGFyc2VDRFNlY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUNodW5rIj54bWxQYXJzZUNodW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb250ZW50Ij54bWxQYXJzZUNvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVF1b3RlZFN0cmluZyI+eG1sUGFyc2VRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSSI+eG1sUGFyc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSVJhdyI+eG1sUGFyc2VVUklSYXc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSVJlZmVyZW5jZSI+eG1sUGFyc2VVUklSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0xlbkdldE5vZGVMaXN0Ij54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFdmFsRXhwciI+eG1sWFBhdGhFdmFsRXhwcjwvYT48YnIgLz4KKzwvZGQ+PGR0PlBhcnNlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5UmVmIj54bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+UGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+UGFyc2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwQ29tcGlsZSI+eG1sUmVnZXhwQ29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUiPnhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5QYXJzaW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+UGFydDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cENvbXBpbGUiPnhtbFJlZ2V4cENvbXBpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5QYXRoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vZGVQYXRoIj54bWxHZXROb2RlUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsIj54bWxYUHRyRXZhbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlBlb3BsZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+UGhvbmV0aWNFeHRlbnNpb25zPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zIj54bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9uczwvYT48YnIgLz4KKzwvZGQ+PGR0PlBsZWFzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9ybWFsaXplV2luZG93c1BhdGgiPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9hPjxiciAvPgorPC9kZD48ZHQ+UGx1ZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPjxiciAvPgorPC9kZD48ZHQ+UG9pbnRlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoZWNrVVRGOCI+eG1sQ2hlY2tVVEY4PC9hPjxiciAvPgorPC9kZD48ZHQ+UG9pbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VQb2ludHMiPnhtbFhQdHJOZXdSYW5nZVBvaW50czwvYT48YnIgLz4KKzwvZGQ+PGR0PlBvcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFZhbGlkYXRlUG9wRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PlBvcHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFBvcCI+aW5wdXRQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNuYW1lUG9wIj5uYW1lUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVBvcCI+bm9kZVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjdmFsdWVQb3AiPnZhbHVlUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcEJvb2xlYW4iPnhtbFhQYXRoUG9wQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BFeHRlcm5hbCI+eG1sWFBhdGhQb3BFeHRlcm5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOb2RlU2V0Ij54bWxYUGF0aFBvcE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wTnVtYmVyIj54bWxYUGF0aFBvcE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BTdHJpbmciPnhtbFhQYXRoUG9wU3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+UG9zaXRpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyTm9kZUluZm8iPl94bWxQYXJzZXJOb2RlSW5mbzwvYT48YnIgLz4KKzwvZGQ+PGR0PlBvc3NpYmlsaXR5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPC9kZD48ZHQ+UHJlY29tcGlsZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZWRFdmFsIj54bWxYUGF0aENvbXBpbGVkRXZhbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlByZWRpY2F0ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsUHJlZGljYXRlIj54bWxYUGF0aEV2YWxQcmVkaWNhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQiPnhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUiPnhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5QcmVkaWNhdGVFeHByPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWxQcmVkaWNhdGUiPnhtbFhQYXRoRXZhbFByZWRpY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCI+eG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSI+eG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlByZWZpeDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiPnhtbE5hbWVzcGFjZVBhcnNlUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdE5hbWUiPnhtbFRleHRSZWFkZXJDb25zdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmFtZSI+eG1sVGV4dFJlYWRlck5hbWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5QcmVmaXhEZWY8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIj54bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9hPjxiciAvPgorPC9kZD48ZHQ+UHJpbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQcmludCI+eG1sUmVnZXhwUHJpbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHJpbnROb2RlIj54bWxTaGVsbFByaW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludFhQYXRoRXJyb3IiPnhtbFNoZWxsUHJpbnRYUGF0aEVycm9yPC9hPjxiciAvPgorPC9kZD48ZHQ+UHJpbnRzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUHJpbnRVUkkiPnhtbFByaW50VVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQiPnhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdDwvYT48YnIgLz4KKzwvZGQ+PGR0PlByaXZhdGVVc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNQcml2YXRlVXNlIj54bWxVQ1NJc1ByaXZhdGVVc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5Qcml2YXRlVXNlQXJlYTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhIj54bWxVQ1NJc1ByaXZhdGVVc2VBcmVhPC9hPjxiciAvPgorPC9kZD48ZHQ+UHJvY2Vzc2luZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQUxPR19QSSI+WE1MX0NBVEFMT0dfUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJIj54bWxQYXJzZVBJPC9hPjxiciAvPgorPC9kZD48ZHQ+UHJvZHVjdGlvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsSUQiPnhtbFBhcnNlRXh0ZXJuYWxJRDwvYT48YnIgLz4KKzwvZGQ+PGR0PlByb3BlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNYXJrdXBEZWNsIj54bWxQYXJzZU1hcmt1cERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5Qcm90b3R5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvYT48YnIgLz4KKzwvZGQ+PGR0PlByb3ZpZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRDb2x1bW5OdW1iZXIiPmdldENvbHVtbk51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldExpbmVOdW1iZXIiPmdldExpbmVOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldENvbHVtbk51bWJlciI+eG1sU0FYMkdldENvbHVtbk51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0TGluZU51bWJlciI+eG1sU0FYMkdldExpbmVOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyPC9hPjxiciAvPgorPC9kZD48ZHQ+UHJvdmlkZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRQdWJsaWNJZCI+Z2V0UHVibGljSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRTeXN0ZW1JZCI+Z2V0U3lzdGVtSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1CbG9ja3MiPnhtbE1lbUJsb2NrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtVXNlZCI+eG1sTWVtVXNlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoIj54bWxOYW5vSFRUUENvbnRlbnRMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRW5jb2RpbmciPnhtbE5hbm9IVFRQRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWltZVR5cGUiPnhtbE5hbm9IVFRQTWltZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVkaXIiPnhtbE5hbm9IVFRQUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFB1YmxpY0lkIj54bWxTQVgyR2V0UHVibGljSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFN5c3RlbUlkIj54bWxTQVgyR2V0U3lzdGVtSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQiPnhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFZhbHVlIj54bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcyI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclZhbHVlIj54bWxUZXh0UmVhZGVyVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNJbmYiPnhtbFhQYXRoSXNJbmY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoSXNOYU4iPnhtbFhQYXRoSXNOYU48L2E+PGJyIC8+Cis8L2RkPjxkdD5Qcm94eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQU2NhblByb3h5Ij54bWxOYW5vRlRQU2NhblByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5Qcm94eS1BdXRoZW50aWNhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQXV0aEhlYWRlciI+eG1sTmFub0hUVFBBdXRoSGVhZGVyPC9hPjxiciAvPgorPC9kZD48ZHQ+UHViaWRDaGFyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfUFVCSURDSEFSIj5JU19QVUJJRENIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVB1YmlkTGl0ZXJhbCI+eG1sUGFyc2VQdWJpZExpdGVyYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5QdWJpZExpdGVyYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsSUQiPnhtbFBhcnNlRXh0ZXJuYWxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUHViaWRMaXRlcmFsIj54bWxQYXJzZVB1YmlkTGl0ZXJhbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlB1YmxpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sTm90YXRpb24iPl94bWxOb3RhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbExvYWRFeHRlcm5hbEVudGl0eSI+eG1sTG9hZEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5QdWJsaWNJRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvbkRlY2wiPnhtbFBhcnNlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+UHVzaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZzIiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaCI+eG1sU3RyZWFtUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoQXR0ciI+eG1sU3RyZWFtUHVzaEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaE5vZGUiPnhtbFN0cmVhbVB1c2hOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hFbGVtZW50Ij54bWxWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+UHVzaGVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaW5wdXRQdXNoIj5pbnB1dFB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNuYW1lUHVzaCI+bmFtZVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNub2RlUHVzaCI+bm9kZVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3ZhbHVlUHVzaCI+dmFsdWVQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkJvb2xlYW4iPnhtbFhQYXRoUmV0dXJuQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQiPnhtbFhQYXRoUmV0dXJuRW1wdHlOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nIj54bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkV4dGVybmFsIj54bWxYUGF0aFJldHVybkV4dGVybmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkZhbHNlIj54bWxYUGF0aFJldHVybkZhbHNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybk5vZGVTZXQiPnhtbFhQYXRoUmV0dXJuTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5OdW1iZXIiPnhtbFhQYXRoUmV0dXJuTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVyblN0cmluZyI+eG1sWFBhdGhSZXR1cm5TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuVHJ1ZSI+eG1sWFBhdGhSZXR1cm5UcnVlPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazYuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5Y2Y5NTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazYuaHRtbApAQCAtMCwwICsxLDI4NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBRLVIgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IFEtUiBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBROjwvaDI+PGRsPjxkdD5RTmFtZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWlsZFFOYW1lIj54bWxCdWlsZFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RRTG9va3VwIj54bWxEaWN0UUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cCI+eG1sSGFzaFFMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmRUYWciPnhtbFBhcnNlRW5kVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdRTmFtZVZhbHVlIj54bWxTY2hlbWFOZXdRTmFtZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFByb3AiPnhtbFNldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJRRXF1YWwiPnhtbFN0clFFcXVhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZVFOYW1lIj54bWxWYWxpZGF0ZVFOYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+UU5hbWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFFMb29rdXAyIj54bWxIYXNoUUxvb2t1cDI8L2E+PGJyIC8+Cis8L2RkPjxkdD5RVUlUPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBRdWl0Ij54bWxOYW5vRlRQUXVpdDwvYT48YnIgLz4KKzwvZGQ+PGR0PlF1YWxpZmllZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+PGJyIC8+Cis8L2RkPjxkdD5RdWVyeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0U2l6ZSI+eG1sRGljdFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNpemUiPnhtbEhhc2hTaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVdhbnRzQW55Tm9kZSI+eG1sU3RyZWFtV2FudHNBbnlOb2RlPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgUjo8L2gyPjxkbD48ZHQ+UkVDPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQkFTRUNIQVIiPklTX0JBU0VDSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ09NQklOSU5HIj5JU19DT01CSU5JTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19ESUdJVCI+SVNfRElHSVQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5SRUMteG1sPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdOYW1lIj54bWxHZXRDaGFyRW5jb2RpbmdOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5SRUZzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0RFVEVDVF9JRFMiPlhNTF9ERVRFQ1RfSURTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NLSVBfSURTIj5YTUxfU0tJUF9JRFM8L2E+PGJyIC8+Cis8L2RkPjxkdD5SRVFVSVJFRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlJGQzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkVVJJIj54bWxCdWlsZFVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxOb3JtYWxpemVVUklQYXRoIj54bWxOb3JtYWxpemVVUklQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUkkiPnhtbFBhcnNlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUGFyc2VVUklSZWZlcmVuY2UiPnhtbFBhcnNlVVJJUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+UkZDMjM5NjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSUVzY2FwZSI+eG1sVVJJRXNjYXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+UmFpc2VzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFNldEFyaXR5RXJyb3IiPnhtbFhQYXRoU2V0QXJpdHlFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTZXRFcnJvciI+eG1sWFBhdGhTZXRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTZXRUeXBlRXJyb3IiPnhtbFhQYXRoU2V0VHlwZUVycm9yPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVhZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZVJlYWQiPnhtbEZpbGVSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZSI+eG1sR2V0RmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbEdldFVURjhDaGFyIj54bWxHZXRVVEY4Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBSZWFkIj54bWxJT0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUFJlYWQiPnhtbElPSFRUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUJ1ZkdldENvbnRlbnQiPnhtbE5vZGVCdWZHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRDb250ZW50Ij54bWxOb2RlR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFZhbHVlIj54bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVhZGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlIj54bWxUZXh0UmVhZGVyUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIj54bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVhZGVyczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVhZHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFeHBhbmQiPnhtbFRleHRSZWFkZXJFeHBhbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIj54bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCI+eG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkU3RyaW5nIj54bWxUZXh0UmVhZGVyUmVhZFN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudCI+eG1sVmFsaWRhdGVEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZWNlaXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yIj5zZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIj5zZXREb2N1bWVudExvY2F0b3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yIj54bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVjZWl2aW5nPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjY2hhcmFjdGVyc1NBWEZ1bmMiPmNoYXJhY3RlcnNTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmMiPmlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVjdXJzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZWN1cnNpb248L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBFUmVmZXJlbmNlIj54bWxQYXJzZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVmPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxSZWYiPl94bWxSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZFJlZiI+eG1sQWRkUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlUmVmVGFibGUiPnhtbEZyZWVSZWZUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNSZWYiPnhtbElzUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxSZW1vdmVSZWYiPnhtbFJlbW92ZVJlZjwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlZmVyZW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VDaGFyUmVmIj5odG1sUGFyc2VDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ2hhclJlZiI+eG1sUGFyc2VDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb250ZW50Ij54bWxQYXJzZUNvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVZhbHVlIj54bWxQYXJzZUVudGl0eVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVJlZmVyZW5jZSI+eG1sUGFyc2VSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlZmVyZW5jZTo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9kZVR5cGUiPnhtbFRleHRSZWFkZXJOb2RlVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlZmVyZW5jZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFVSSSI+eG1sQnVpbGRVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVmbGVjdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfUVVBTElGX0FUVFIiPlhNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNIj5YTUxfU0NIRU1BU19RVUFMSUZfRUxFTTwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlZnJlc2g8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUNvbXBpbGUiPnhtbEF1dG9tYXRhQ29tcGlsZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlZ2lzdGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRBdHRyaWJ1dGVEZWNsIj54bWxBZGRBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxBZGREb2NFbnRpdHkiPnhtbEFkZERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQWRkRHRkRW50aXR5Ij54bWxBZGREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZEVsZW1lbnREZWNsIj54bWxBZGRFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkSUQiPnhtbEFkZElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGROb3RhdGlvbkRlY2wiPnhtbEFkZE5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkUmVmIj54bWxBZGRSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuYyI+eG1sWFBhdGhSZWdpc3RlckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jTlMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJOcyI+eG1sWFBhdGhSZWdpc3Rlck5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TPC9hPjxiciAvPgorPC9kZD48ZHQ+UmVnaXN0ZXJOb2RlRnVuYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxSZWdpc3Rlck5vZGVEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+UmVnaXN0ZXJzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxBZGRFbmNvZGluZ0FsaWFzIj54bWxBZGRFbmNvZGluZ0FsaWFzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxSZWdpc3Rlck5vZGVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zIj54bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cCI+eG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZWxhdGl2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkVVJJIj54bWxCdWlsZFVSSTwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlbGF4LU5HPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlIj54bWxSZWxheE5HUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVEb2MiPnhtbFJlbGF4TkdWYWxpZGF0ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZWxheE5HPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFFbGVtZW50Ij5feG1sU2NoZW1hRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HQ2xlYW51cFR5cGVzIj54bWxSZWxheE5HQ2xlYW51cFR5cGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdEdW1wIj54bWxSZWxheE5HRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRHVtcFRyZWUiPnhtbFJlbGF4TkdEdW1wVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZSI+eG1sUmVsYXhOR0ZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZSI+eG1sUmVsYXhOR1BhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIj54bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4UGFyc2VyU2V0RmxhZyI+eG1sUmVsYXhQYXJzZXJTZXRGbGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlbGF4TkdzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0Ij54bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdWYWxpZEN0eHQiPnhtbFJlbGF4TkdOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZW1vdmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZW1vdmUiPnhtbEFDYXRhbG9nUmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclNocmluayI+eG1sQnVmZmVyU2hyaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZW1vdmUiPnhtbENhdGFsb2dSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENsZWFyIj54bWxMaXN0Q2xlYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUFsbCI+eG1sTGlzdFJlbW92ZUFsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmVtb3ZlRmlyc3QiPnhtbExpc3RSZW1vdmVGaXJzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmVtb3ZlTGFzdCI+eG1sTGlzdFJlbW92ZUxhc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlSUQiPnhtbFJlbW92ZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxSZW1vdmVSZWYiPnhtbFJlbW92ZVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbnNldE5zUHJvcCI+eG1sVW5zZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5zZXRQcm9wIj54bWxVbnNldFByb3A8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZW1vdmVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RQb3BCYWNrIj54bWxMaXN0UG9wQmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UG9wRnJvbnQiPnhtbExpc3RQb3BGcm9udDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0RGVsIj54bWxYUGF0aE5vZGVTZXREZWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldFJlbW92ZSI+eG1sWFBhdGhOb2RlU2V0UmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXREZWwiPnhtbFhQdHJMb2NhdGlvblNldERlbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlIj54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZXBsYWNlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+PGJyIC8+Cis8L2RkPjxkdD5SZXBsYWNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIj54bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlcXVpcmVkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF0dHJBbGxvd2VkIj5odG1sQXR0ckFsbG93ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PlJlc2V0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVzZXQiPmh0bWxDdHh0UmVzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVzZXQiPnhtbEN0eHRSZXNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZXNldFB1c2giPnhtbEN0eHRSZXNldFB1c2g8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZXNpemU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUmVzaXplIj54bWxCdWZmZXJSZXNpemU8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZXNvbHZlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiPnhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZXNvbHZpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFVSSSI+eG1sQnVpbGRVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZXRyaWV2ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySXNWYWxpZCI+eG1sVGV4dFJlYWRlcklzVmFsaWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5SZXR1cm48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NIRUNLX1RZUEUwIj5DSEVDS19UWVBFMDwvYT48YnIgLz4KKzwvZGQ+PGR0PlJldHVybnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERlZmF1bHRTdWJlbGVtZW50Ij5odG1sRGVmYXVsdFN1YmVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZXF1aXJlZEF0dHJzIj5odG1sUmVxdWlyZWRBdHRyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0RG9jRW50aXR5Ij54bWxHZXREb2NFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldER0ZEVudGl0eSI+eG1sR2V0RHRkRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXRQYXJhbWV0ZXJFbnRpdHkiPnhtbEdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlua0dldERhdGEiPnhtbExpbmtHZXREYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENoZWNrRXJyb3IiPnhtbFhQYXRoQ2hlY2tFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXRDb250ZXh0Tm9kZSI+eG1sWFBhdGhHZXRDb250ZXh0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXREb2N1bWVudCI+eG1sWFBhdGhHZXREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXRFcnJvciI+eG1sWFBhdGhHZXRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIj54bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTm9kZVNldElzRW1wdHkiPnhtbFhQYXRoTm9kZVNldElzRW1wdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTm9kZVNldEl0ZW0iPnhtbFhQYXRoTm9kZVNldEl0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RhY2tJc0V4dGVybmFsIj54bWxYUGF0aFN0YWNrSXNFeHRlcm5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdGFja0lzTm9kZVNldCI+eG1sWFBhdGhTdGFja0lzTm9kZVNldDwvYT48YnIgLz4KKzwvZGQ+PGR0PlJldHVybnM6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPC9kZD48ZHQ+UmV2ZXJzZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZSI+eG1sTGlzdFJldmVyc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5Sb290PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEb2NUeXBlRGVjbCI+eG1sUGFyc2VEb2NUeXBlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVSb290Ij54bWxWYWxpZGF0ZVJvb3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5SdW5pYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1J1bmljIj54bWxVQ1NJc1J1bmljPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazcuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNWYxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazcuaHRtbApAQCAtMCwwICsxLDMyNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBTLVMgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IFMtUyBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBTOjwvaDI+PGRsPjxkdD5TQVgxPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQVgxX0VOQUJMRUQiPkxJQlhNTF9TQVgxX0VOQUJMRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5TQVgyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NBWDJfTUFHSUMiPlhNTF9TQVgyX01BR0lDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW5kRWxlbWVudE5zU0FYMkZ1bmMiPmVuZEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlciI+aW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXRodG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMiPnN0YXJ0RWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ij54bWxEZWZhdWx0U0FYSGFuZGxlckluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnROcyI+eG1sU0FYMkVuZEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudE5zIj54bWxTQVgyU3RhcnRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPC9kZD48ZHQ+U0FYOjpzdWJzdGl0dXRlRW50aXRpZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0PC9hPjxiciAvPgorPC9kZD48ZHQ+U0REZWNsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+U0REZWNsPzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlWE1MRGVjbCI+eG1sUGFyc2VYTUxEZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+U0VRPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbGVtZW50Q29udGVudCI+X3htbEVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+U0dNTDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfRE9DQl9FTkFCTEVEIj5MSUJYTUxfRE9DQl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JFbmNvZGVFbnRpdGllcyI+ZG9jYkVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JGcmVlUGFyc2VyQ3R4dCI+ZG9jYkZyZWVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZURvYyI+ZG9jYlBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZURvY3VtZW50Ij5kb2NiUGFyc2VEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VGaWxlIj5kb2NiUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZURvYyI+ZG9jYlNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZUZpbGUiPmRvY2JTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0NvbnZlcnQiPnhtbENhdGFsb2dDb252ZXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dJc0VtcHR5Ij54bWxDYXRhbG9nSXNFbXB0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDb252ZXJ0U0dNTENhdGFsb2ciPnhtbENvbnZlcnRTR01MQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQUNhdGFsb2ciPnhtbExvYWRBQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyI+eG1sTG9hZENhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbE5ld0NhdGFsb2ciPnhtbE5ld0NhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PlNHTUxTT1VSQ0U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRQdWJsaWNJZCI+Z2V0UHVibGljSWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFB1YmxpY0lkIj54bWxTQVgyR2V0UHVibGljSWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5TSVRFPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPjxiciAvPgorPC9kZD48ZHQ+U1RhZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbGVtZW50Ij5odG1sUGFyc2VFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPC9kZD48ZHQ+U1lTVEVNPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEdGQiPl94bWxEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyQ3R4dCI+X3htbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNleHRlcm5hbFN1YnNldCI+ZXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNleHRlcm5hbFN1YnNldFNBWEZ1bmMiPmV4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2ludGVybmFsU3Vic2V0Ij5pbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2ludGVybmFsU3Vic2V0U0FYRnVuYyI+aW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uRGVjbCI+eG1sUGFyc2VOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkV4dGVybmFsU3Vic2V0Ij54bWxTQVgyRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkludGVybmFsU3Vic2V0Ij54bWxTQVgySW50ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5TYW1lPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfUFVCSURDSEFSX0NIIj5JU19QVUJJRENIQVJfQ0g8L2E+PGJyIC8+Cis8L2RkPjxkdD5TYXZlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxDb3B5RXJyb3IiPnhtbENvcHlFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlRG9jIj54bWxTYXZlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFNhdmVVcmkiPnhtbFNhdmVVcmk8L2E+PGJyIC8+Cis8L2RkPjxkdD5TY2FuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3B5Ij54bWxIYXNoQ29weTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbiI+eG1sSGFzaFNjYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsIj54bWxIYXNoU2NhbkZ1bGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzwvZGQ+PGR0PlNjaGVtYTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFEdW1wIj54bWxTY2hlbWFEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUZyZWUiPnhtbFNjaGVtYUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlRmFjZXQiPnhtbFNjaGVtYUZyZWVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGcmVlVHlwZSI+eG1sU2NoZW1hRnJlZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlIj54bWxTY2hlbWFQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJTZXRTY2hlbWE8L2E+PGJyIC8+Cis8L2RkPjxkdD5TY2hlbWFzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQ0hFTUFTX0VOQUJMRUQiPkxJQlhNTF9TQ0hFTUFTX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBDb21waWxlIj54bWxSZWdleHBDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdDbGVhbnVwVHlwZXMiPnhtbFJlbGF4TkdDbGVhbnVwVHlwZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDbGVhbnVwVHlwZXMiPnhtbFNjaGVtYUNsZWFudXBUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUZyZWVWYWx1ZSI+eG1sU2NoZW1hRnJlZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSW5pdFR5cGVzIj54bWxTY2hlbWFJbml0VHlwZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0Ij54bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3VmFsaWRDdHh0Ij54bWxTY2hlbWFOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5TY2hlbWF0cm9uPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQiPkxJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbkZyZWUiPnhtbFNjaGVtYXRyb25GcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZSI+eG1sU2NoZW1hdHJvblBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMiPnhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+U2NoZW1hdHJvbnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PlNjcmlwdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSXNTY3JpcHRBdHRyaWJ1dGUiPmh0bWxJc1NjcmlwdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlNlYXJjaDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRBdHRyRGVzYyI+eG1sR2V0RHRkQXR0ckRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZEVsZW1lbnREZXNjIj54bWxHZXREdGRFbGVtZW50RGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkTm90YXRpb25EZXNjIj54bWxHZXREdGROb3RhdGlvbkRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZFFBdHRyRGVzYyI+eG1sR2V0RHRkUUF0dHJEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRRWxlbWVudERlc2MiPnhtbEdldER0ZFFFbGVtZW50RGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0SUQiPnhtbEdldElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExhc3RDaGlsZCI+eG1sR2V0TGFzdENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vTnNQcm9wIj54bWxHZXROb05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROc0xpc3QiPnhtbEdldE5zTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROc1Byb3AiPnhtbEdldE5zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEhhc05zUHJvcCI+eG1sSGFzTnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEhhc1Byb3AiPnhtbEhhc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzTWl4ZWRFbGVtZW50Ij54bWxJc01peGVkRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVNlYXJjaCI+eG1sTGlzdFJldmVyc2VTZWFyY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNlYXJjaCI+eG1sTGlzdFNlYXJjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyI+eG1sU2VhcmNoTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnNCeUhyZWYiPnhtbFNlYXJjaE5zQnlIcmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwIj54bWxYUGF0aEZ1bmN0aW9uTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOc0xvb2t1cCI+eG1sWFBhdGhOc0xvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cCI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwTlM8L2E+PGJyIC8+Cis8L2RkPjxkdD5TZWFyY2hlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldExhbmciPnhtbE5vZGVHZXRMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlNlY29uZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPC9kZD48ZHQ+U2VjdGlvbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbE5vcm1hbGl6ZVVSSVBhdGgiPnhtbE5vcm1hbGl6ZVVSSVBhdGg8L2E+PGJyIC8+Cis8L2RkPjxkdD5TZWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpbmtHZXREYXRhIj54bWxMaW5rR2V0RGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQiPnhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5TZW1pPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4UGFyc2VyU2V0RmxhZyI+eG1sUmVsYXhQYXJzZXJTZXRGbGFnPC9hPjxiciAvPgorPC9kZD48ZHQ+U2VuZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUXVpdCI+eG1sTmFub0ZUUFF1aXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5TZXJpYWxpemU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQiPnhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRHVtcCI+eG1sRXhwRHVtcDwvYT48YnIgLz4KKzwvZGQ+PGR0PlNldHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTZXRNZXRhRW5jb2RpbmciPmh0bWxTZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMiPnhtbFNjaGVtYVNldFZhbGlkT3B0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaWZmZXJlbmNlIj54bWxYUGF0aERpZmZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3RTb3J0ZWQiPnhtbFhQYXRoRGlzdGluY3RTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSGFzU2FtZU5vZGVzIj54bWxYUGF0aEhhc1NhbWVOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJbnRlcnNlY3Rpb24iPnhtbFhQYXRoSW50ZXJzZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciPnhtbFhQYXRoTm9kZUxlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nIj54bWxYUGF0aE5vZGVUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nIj54bWxYUGF0aFRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj54bWxYUGF0aFRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPC9kZD48ZHQ+U2V0dXA8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFByb3h5Ij54bWxOYW5vRlRQUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdEb2MiPnhtbFJlYWRlck5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0ZkIj54bWxSZWFkZXJOZXdGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0lPIj54bWxSZWFkZXJOZXdJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld01lbW9yeSI+eG1sUmVhZGVyTmV3TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3V2Fsa2VyIj54bWxSZWFkZXJOZXdXYWxrZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciI+eG1sU2V0dXBQYXJzZXJGb3JCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0dXAiPnhtbFRleHRSZWFkZXJTZXR1cDwvYT48YnIgLz4KKzwvZGQ+PGR0PlNoYXZpYW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTaGF2aWFuIj54bWxVQ1NJc1NoYXZpYW48L2E+PGJyIC8+Cis8L2RkPjxkdD5TaGVsbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxSZWFkbGluZUZ1bmMiPnhtbFNoZWxsUmVhZGxpbmVGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+U2hlbWE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlIj54bWxSZWxheE5HUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2UiPnhtbFNjaGVtYVBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZSI+eG1sU2NoZW1hdHJvblBhcnNlPC9hPjxiciAvPgorPC9kZD48ZHQ+U2hvdWxkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQU2NhblByb3h5Ij54bWxOYW5vRlRQU2NhblByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJFcXVhbCI+eG1sU3RyRXF1YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0xlbkdldE5vZGVMaXN0Ij54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PlNob3c8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHdkIj54bWxTaGVsbFB3ZDwvYT48YnIgLz4KKzwvZGQ+PGR0PlNpZ25hdHVyZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEZyZWVGdW5jIj54bWxGcmVlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZUZ1bmMiPnhtbFJlZ2lzdGVyTm9kZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+U2ltaWxhcmx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPC9kZD48ZHQ+U2ltcGx5PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ3JlYXRlVVJJIj54bWxDcmVhdGVVUkk8L2E+PGJyIC8+Cis8L2RkPjxkdD5TaW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhdCI+eG1sU3RyY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyZHVwIj54bWxTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5TaW5oYWxhPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU2luaGFsYSI+eG1sVUNTSXNTaW5oYWxhPC9hPjxiciAvPgorPC9kZD48ZHQ+U2tpcDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllfU0tJUCI+WE1MX1NDSEVNQVNfQU5ZX1NLSVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXh0Q2hhciI+eG1sTmV4dENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0Ij54bWxUZXh0UmVhZGVyTmV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+U2tpcHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNNT1ZFVE9fRU5EVEFHIj5NT1ZFVE9fRU5EVEFHPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjTU9WRVRPX1NUQVJUVEFHIj5NT1ZFVE9fU1RBUlRUQUc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNTS0lQX0VPTCI+U0tJUF9FT0w8L2E+PGJyIC8+Cis8L2RkPjxkdD5TbWFsbEZvcm1WYXJpYW50czwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzIj54bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzPC9hPjxiciAvPgorPC9kZD48ZHQ+U29tZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNfaHRtbEVsZW1EZXNjIj5faHRtbEVsZW1EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5Tb3J0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RTb3J0Ij54bWxMaXN0U29ydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0U29ydCI+eG1sWFBhdGhOb2RlU2V0U29ydDwvYT48YnIgLz4KKzwvZGQ+PGR0PlNwYWNpbmdNb2RpZmllckxldHRlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzIj54bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5TcGVjPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzwvZGQ+PGR0PlNwZWNpYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI1hNTF9DVFhUX0ZJTklTSF9EVERfMCI+WE1MX0NUWFRfRklOSVNIX0RURF8wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxfQ1RYVF9GSU5JU0hfRFREXzEiPlhNTF9DVFhUX0ZJTklTSF9EVERfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9TQVgyX01BR0lDIj5YTUxfU0FYMl9NQUdJQzwvYT48YnIgLz4KKzwvZGQ+PGR0PlNwZWNpYWxzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3BlY2lhbHMiPnhtbFVDU0lzU3BlY2lhbHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5TcGVlZDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PlN0YW5kYWxvbmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCI+eG1sUGFyc2VTRERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlN0YXJ0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBPcGVuIj54bWxOYW5vRlRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZSI+eG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEiPnhtbFRleHRXcml0ZXJTdGFydENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERURCI+eG1sVGV4dFdyaXRlclN0YXJ0RFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkiPnhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERvY3VtZW50Ij54bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydFBJIj54bWxUZXh0V3JpdGVyU3RhcnRQSTwvYT48YnIgLz4KKzwvZGQ+PGR0PlN0cmluZ1R5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlN0cmluZ3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5TdWJjb2RlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5TdWJzZXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlN1cGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzwvZGQ+PGR0PlN1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzIj54bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5TdXBwbGVtZW50YWxBcnJvd3MtQTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EiPnhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQTwvYT48YnIgLz4KKzwvZGQ+PGR0PlN1cHBsZW1lbnRhbEFycm93cy1CPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQiI+eG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCPC9hPjxiciAvPgorPC9kZD48ZHQ+U3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzIj54bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9yczwvYT48YnIgLz4KKzwvZGQ+PGR0PlN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1BPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBPC9hPjxiciAvPgorPC9kZD48ZHQ+U3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhLUI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCIj54bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUI8L2E+PGJyIC8+Cis8L2RkPjxkdD5TeXJpYWM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTeXJpYWMiPnhtbFVDU0lzU3lyaWFjPC9hPjxiciAvPgorPC9kZD48ZHQ+U3lzdGVtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb3RhdGlvbiI+X3htbE5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb2RlVHlwZSI+eG1sVGV4dFJlYWRlck5vZGVUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+U3lzdGVtTGl0ZXJhbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTlNEZWYiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsSUQiPnhtbFBhcnNlRXh0ZXJuYWxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3lzdGVtTGl0ZXJhbCI+eG1sUGFyc2VTeXN0ZW1MaXRlcmFsPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazguaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNGIwODkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUEljaHVuazguaHRtbApAQCAtMCwwICsxLDMwMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BUEkgQWxwaGFiZXRpYyBJbmRleCBULVUgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkFQSSBBbHBoYWJldGljIEluZGV4IFQtVSBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QS1CPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxLmh0bWwiPkMtQzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMi5odG1sIj5ELUU8L2E+Cis8YSBocmVmPSJBUEljaHVuazMuaHRtbCI+Ri1JPC9hPgorPGEgaHJlZj0iQVBJY2h1bms0Lmh0bWwiPkotTjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNS5odG1sIj5PLVA8L2E+Cis8YSBocmVmPSJBUEljaHVuazYuaHRtbCI+US1SPC9hPgorPGEgaHJlZj0iQVBJY2h1bms3Lmh0bWwiPlMtUzwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOC5odG1sIj5ULVU8L2E+Cis8YSBocmVmPSJBUEljaHVuazkuaHRtbCI+Vi1ZPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMC5odG1sIj5aLWE8L2E+Cis8YSBocmVmPSJBUEljaHVuazExLmh0bWwiPmItYjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTIuaHRtbCI+Yy1jPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMy5odG1sIj5kLWQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazE0Lmh0bWwiPmUtZTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTUuaHRtbCI+Zi1mPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNi5odG1sIj5nLWg8L2E+Cis8YSBocmVmPSJBUEljaHVuazE3Lmh0bWwiPmktaTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTguaHRtbCI+ai1sPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOS5odG1sIj5tLW08L2E+Cis8YSBocmVmPSJBUEljaHVuazIwLmh0bWwiPm4tbjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjEuaHRtbCI+by1vPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMi5odG1sIj5wLXA8L2E+Cis8YSBocmVmPSJBUEljaHVuazIzLmh0bWwiPnEtcjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjQuaHRtbCI+cy1zPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNS5odG1sIj50LXQ8L2E+Cis8YSBocmVmPSJBUEljaHVuazI2Lmh0bWwiPnUtdjwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjcuaHRtbCI+dy13PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyOC5odG1sIj54LXg8L2E+Cis8YSBocmVmPSJBUEljaHVuazI5Lmh0bWwiPnktejwvYT4KKzwvaDI+PGgyPkxldHRlciBUOjwvaDI+PGRsPjxkdD5URVhUPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkIj54bWxBZGRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRDaGlsZExpc3QiPnhtbEFkZENoaWxkTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkU2libGluZyI+eG1sQWRkU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQnVmR2V0Q29udGVudCI+eG1sTm9kZUJ1ZkdldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldENvbnRlbnQiPnhtbE5vZGVHZXRDb250ZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+VEVYVHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0xlbkdldE5vZGVMaXN0Ij54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvYT48YnIgLz4KKzwvZGQ+PGR0PlRPRE88L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+VE9ETzo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5TG9va3VwIj5odG1sRW50aXR5TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZU9wZW4iPnhtbE1vZHVsZU9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIj54bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VRTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJNZW1vcnkiPnhtbE5ld1RleHRXcml0ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUXVvdGVkU3RyaW5nIj54bWxQYXJzZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZSI+eG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciPnhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlRG9jIj54bWxTYXZlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4iPnhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QXR0cmlidXRlIj54bWxYUGF0aE5leHRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5UUlVFPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Ij54bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPC9kZD48ZHQ+VGFnYWxvZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhZ2Fsb2ciPnhtbFVDU0lzVGFnYWxvZzwvYT48YnIgLz4KKzwvZGQ+PGR0PlRhZ2JhbndhPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFnYmFud2EiPnhtbFVDU0lzVGFnYmFud2E8L2E+PGJyIC8+Cis8L2RkPjxkdD5UYWdzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFncyI+eG1sVUNTSXNUYWdzPC9hPjxiciAvPgorPC9kZD48ZHQ+VGFpTGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNUYWlMZSI+eG1sVUNTSXNUYWlMZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlRhaVh1YW5KaW5nU3ltYm9sczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9scyI+eG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHM8L2E+PGJyIC8+Cis8L2RkPjxkdD5UYWtlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+VGFrZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5UYW1pbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhbWlsIj54bWxVQ1NJc1RhbWlsPC9hPjxiciAvPgorPC9kZD48ZHQ+VGVsdWd1PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGVsdWd1Ij54bWxVQ1NJc1RlbHVndTwvYT48YnIgLz4KKzwvZGQ+PGR0PlRlc3Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1hdGNoIj54bWxQYXR0ZXJuTWF0Y2g8L2E+PGJyIC8+Cis8L2RkPjxkdD5UZXh0PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVJc1RleHQiPnhtbE5vZGVJc1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlIj54bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRTdHJpbmciPnhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9hPjxiciAvPgorPC9kZD48ZHQ+VGV4dERlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVRleHREZWNsIj54bWxQYXJzZVRleHREZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+VGV4dERlY2w/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFbnRpdHkiPnhtbFBhcnNlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRQYXJzZWRFbnQiPnhtbFBhcnNlRXh0UGFyc2VkRW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRW50aXR5Ij54bWxTQVhQYXJzZUVudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PlRoYWFuYTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RoYWFuYSI+eG1sVUNTSXNUaGFhbmE8L2E+PGJyIC8+Cis8L2RkPjxkdD5UaGFpPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGhhaSI+eG1sVUNTSXNUaGFpPC9hPjxiciAvPgorPC9kZD48ZHQ+VGhhdDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdBbGxUcmFucyI+eG1sQXV0b21hdGFOZXdBbGxUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlRoZW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+VGhlcmU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlRob3NlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+VGh1czo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5UaWJldGFuPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGliZXRhbiI+eG1sVUNTSXNUaWJldGFuPC9hPjxiciAvPgorPC9kZD48ZHQ+VG9rZW48L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVObXRva2VuVmFsdWUiPnhtbFZhbGlkYXRlTm10b2tlblZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUiPnhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5Ub2tlbml6ZWRUeXBlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5UcmF2ZXJzYWw8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYiPnhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBdHRyaWJ1dGUiPnhtbFhQYXRoTmV4dEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Q2hpbGQiPnhtbFhQYXRoTmV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50Ij54bWxYUGF0aE5leHREZXNjZW5kYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmIj54bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRGb2xsb3dpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0TmFtZXNwYWNlIj54bWxYUGF0aE5leHROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFBhcmVudCI+eG1sWFBhdGhOZXh0UGFyZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0U2VsZiI+eG1sWFBhdGhOZXh0U2VsZjwvYT48YnIgLz4KKzwvZGQ+PGR0PlRyZWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3VmFsdWVUcmVlIj54bWxYUGF0aE5ld1ZhbHVlVHJlZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlRyZWU6LTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlRyaWNrZXJ5OjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlRyaWVzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0Ij54bWxOYW5vRlRQQ29ubmVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ29ubmVjdFRvIj54bWxOYW5vRlRQQ29ubmVjdFRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDd2QiPnhtbE5hbm9GVFBDd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUERlbGUiPnhtbE5hbm9GVFBEZWxlPC9hPjxiciAvPgorPC9kZD48ZHQ+VHJ1ZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sQm9vbFRvVGV4dCI+eG1sQm9vbFRvVGV4dDwvYT48YnIgLz4KKzwvZGQ+PGR0PlRyeTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPnhtbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iPnhtbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0UHVibGljIj54bWxDYXRhbG9nR2V0UHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXRTeXN0ZW0iPnhtbENhdGFsb2dHZXRTeXN0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPnhtbENhdGFsb2dSZXNvbHZlUHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxJc1hIVE1MIj54bWxJc1hIVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRDb25uZWN0aW9uIj54bWxOYW5vRlRQR2V0Q29ubmVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRG9jdW1lbnQiPnhtbFZhbGlkYXRlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkIj54bWxWYWxpZGF0ZUR0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50Ij54bWxWYWxpZGF0ZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRWxlbWVudERlY2wiPnhtbFZhbGlkYXRlRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25EZWNsIj54bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVJvb3QiPnhtbFZhbGlkYXRlUm9vdDwvYT48YnIgLz4KKzwvZGQ+PGR0PlR5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURvY1R5cGVEZWNsIj54bWxQYXJzZURvY1R5cGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZyZWVUeXBlIj54bWxTY2hlbWFGcmVlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPC9kZD48ZHQ+VHlwZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIFU6PC9oMj48ZGw+PGR0PlVDUzQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4Q2hhcmNtcCI+eG1sVVRGOENoYXJjbXA8L2E+PGJyIC8+Cis8L2RkPjxkdD5VTklDT0RFPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRW50aXR5RGVzYyI+X2h0bWxFbnRpdHlEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iIj5jPC9hPjxiciAvPgorPC9kZD48ZHQ+VU5JWDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPC9kZD48ZHQ+VU5VU0VEOjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2UiPmlnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyI+aWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UiPnhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPC9kZD48ZHQ+VVJJLXJlZmVyZW5jZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmVmZXJlbmNlIj54bWxQYXJzZVVSSVJlZmVyZW5jZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlVSTjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dsb2JhbE5hbWVzcGFjZSI+Z2xvYmFsTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjbmFtZXNwYWNlRGVjbCI+bmFtZXNwYWNlRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlVTRVI8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFByb3h5Ij54bWxOYW5vRlRQUHJveHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5VVEYxNjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY091dEZ1bmMiPnhtbENoYXJFbmNPdXRGdW5jPC9hPjxiciAvPgorPC9kZD48ZHQ+VVRGNDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5VVEY4PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxCdWZmZXIiPl94bWxCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSIiPnA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbEdldFVURjhDaGFyIj54bWxHZXRVVEY4Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNwbGl0UU5hbWUiPnhtbFNwbGl0UU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4Q2hhcmNtcCI+eG1sVVRGOENoYXJjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U2l6ZSI+eG1sVVRGOFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RybGVuIj54bWxVVEY4U3RybGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cmxvYyI+eG1sVVRGOFN0cmxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJuZHVwIj54bWxVVEY4U3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJwb3MiPnhtbFVURjhTdHJwb3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3Ryc2l6ZSI+eG1sVVRGOFN0cnNpemU8L2E+PGJyIC8+Cis8L2RkPjxkdD5VZ2FyaXRpYzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1VnYXJpdGljIj54bWxVQ1NJc1VnYXJpdGljPC9hPjxiciAvPgorPC9kZD48ZHQ+VW5lc2NhcGluZzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSVVuZXNjYXBlU3RyaW5nIj54bWxVUklVbmVzY2FwZVN0cmluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PlVuaWNvZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSIj5JU19DSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9VTklDT0RFX0VOQUJMRUQiPkxJQlhNTF9VTklDT0RFX0VOQUJMRUQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5VbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyI+eG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzPC9hPjxiciAvPgorPC9kZD48ZHQ+VW5pcXVlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRWxlbWVudERlY2wiPnhtbFZhbGlkYXRlRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSWRGdW5jdGlvbiI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9hPjxiciAvPgorPC9kZD48ZHQ+VW5peDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMaXN0Ij54bWxTaGVsbExpc3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5Vbmxpbms8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVtb3ZlUHJvcCI+eG1sUmVtb3ZlUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZXBsYWNlTm9kZSI+eG1sUmVwbGFjZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5saW5rTm9kZSI+eG1sVW5saW5rTm9kZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlVubGlua3M8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+VW5wbHVnPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFVucGx1ZyI+eG1sU2NoZW1hU0FYVW5wbHVnPC9hPjxiciAvPgorPC9kZD48ZHQ+VW5yZWdpc3RlcnM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENsZWFudXBFbmNvZGluZ0FsaWFzZXMiPnhtbENsZWFudXBFbmNvZGluZ0FsaWFzZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbERlbEVuY29kaW5nQWxpYXMiPnhtbERlbEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5VcGRhdGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFVwZGF0ZVVSTCI+eG1sTmFub0ZUUFVwZGF0ZVVSTDwvYT48YnIgLz4KKzwvZGQ+PGR0PlVwZ3JhZGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5Vc2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfQ09NUExFVEVfQVRUUlMiPlhNTF9DT01QTEVURV9BVFRSUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9ERVRFQ1RfSURTIj5YTUxfREVURUNUX0lEUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRE9NV3JhcEN0eHQiPl94bWxET01XcmFwQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJDdHh0Ij5feG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5Tm9kZUxpc3QiPnhtbENvcHlOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmFzZUNoYXIiPnhtbElzQmFzZUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFuayI+eG1sSXNCbGFuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXIiPnhtbElzQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZyI+eG1sSXNDb21iaW5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNEaWdpdCI+eG1sSXNEaWdpdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0V4dGVuZGVyIj54bWxJc0V4dGVuZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzSWRlb2dyYXBoaWMiPnhtbElzSWRlb2dyYXBoaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXIiPnhtbElzUHViaWRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGUiPnhtbE5ld0RvY05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGVFYXROYW1lIj54bWxOZXdOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdQSSI+eG1sTmV3UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkdldFN0cmVhbUN0eHQiPnhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJTZXRTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlVzZWQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZX0xBWCI+WE1MX1NDSEVNQVNfQU5ZX0xBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllfU1RSSUNUIj5YTUxfU0NIRU1BU19BTllfU1RSSUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQiPlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZSI+X3htbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlYnVnIj54bWxDYXRhbG9nU2V0RGVidWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRzIj54bWxDYXRhbG9nU2V0RGVmYXVsdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2Nhbk5hbWUiPnhtbFNjYW5OYW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+VXNlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8L2RkPjxkdD5Vc2VyQ29kZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPC9kZD48ZHQ+VXNlczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOb2RlIj54bWxOZXdOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rOS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY2h1bms5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYyMzA4NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNodW5rOS5odG1sCkBAIC0wLDAgKzEsMjcyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkFQSSBBbHBoYWJldGljIEluZGV4IFYtWSBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+QVBJIEFscGhhYmV0aWMgSW5kZXggVi1ZIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48aDI+TGV0dGVyIFY6PC9oMj48ZGw+PGR0PlZhbGlkPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PlZhbGlkYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9MQVgiPlhNTF9TQ0hFTUFTX0FOWV9MQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRG9jIj54bWxSZWxheE5HVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRG9jIj54bWxTY2hlbWFWYWxpZGF0ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSI+eG1sU2NoZW1hVmFsaWRhdGVTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jIj54bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsVmFsaWRhdGUiPnhtbFNoZWxsVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTmFtZVZhbHVlIj54bWxWYWxpZGF0ZU5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOYW1lc1ZhbHVlIj54bWxWYWxpZGF0ZU5hbWVzVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm10b2tlblZhbHVlIj54bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIj54bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25Vc2UiPnhtbFZhbGlkYXRlTm90YXRpb25Vc2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5WYWxpZGl0eTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+VmFsdWU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1ZhbHVlVHJlZSI+eG1sWFBhdGhOZXdWYWx1ZVRyZWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5WYWx1ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGlvblR5cGUiPnhtbFBhcnNlRW51bWVyYXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPC9kZD48ZHQ+VmFyaWFibGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoVmFyaWFibGVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBOUyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TPC9hPjxiciAvPgorPC9kZD48ZHQ+VmFyaWF0aW9uU2VsZWN0b3JzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzIj54bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yczwvYT48YnIgLz4KKzwvZGQ+PGR0PlZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50Ij54bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5WZXJzaW9uSW5mbzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbkluZm8iPnhtbFBhcnNlVmVyc2lvbkluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVhNTERlY2wiPnhtbFBhcnNlWE1MRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlZlcnNpb25JbmZvPzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVGV4dERlY2wiPnhtbFBhcnNlVGV4dERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5WZXJzaW9uTnVtPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VWZXJzaW9uSW5mbyI+eG1sUGFyc2VWZXJzaW9uSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbk51bSI+eG1sUGFyc2VWZXJzaW9uTnVtPC9hPjxiciAvPgorPC9kZD48L2RsPjxoMj5MZXR0ZXIgVzo8L2gyPjxkbD48ZHQ+VzNDPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENoaWxkRWxlbWVudENvdW50Ij54bWxDaGlsZEVsZW1lbnRDb3VudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGaXJzdEVsZW1lbnRDaGlsZCI+eG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTGFzdEVsZW1lbnRDaGlsZCI+eG1sTGFzdEVsZW1lbnRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXh0RWxlbWVudFNpYmxpbmciPnhtbE5leHRFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIj54bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlIj54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0Ij54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0PC9hPjxiciAvPgorPC9kZD48ZHQ+V0FSTklORzo8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIj54bWxDbGVhbnVwVGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5XRkM6PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyUmVmIj54bWxQYXJzZUNoYXJSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN0YXJ0VGFnIj54bWxQYXJzZVN0YXJ0VGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5XV1ctQXV0aGVudGljYXRlPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEF1dGhIZWFkZXIiPnhtbE5hbm9IVFRQQXV0aEhlYWRlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PldYUzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRWxlbWVudCI+X3htbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5XYWxrPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlV2FsayI+eG1sTGlzdFJldmVyc2VXYWxrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT48YnIgLz4KKzwvZGQ+PGR0Pldhcm5pbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZpbGVUbyI+eG1sU2F2ZUZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZVRvIj54bWxTYXZlRm9ybWF0RmlsZVRvPC9hPjxiciAvPgorPC9kZD48ZHQ+V2FzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5XZWxsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFbnRpdHkiPnhtbFBhcnNlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWNvdmVyRG9jIj54bWxSZWNvdmVyRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckZpbGUiPnhtbFJlY292ZXJGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3Zlck1lbW9yeSI+eG1sUmVjb3Zlck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRG9jIj54bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRW50aXR5Ij54bWxTQVhQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZSI+eG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPnhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VNZW1vcnkiPnhtbFNBWFBhcnNlTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSI+eG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YTwvYT48YnIgLz4KKzwvZGQ+PGR0PldoYXQ8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI194bWxFcnJvciI+X3htbEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjbm90YXRpb25EZWNsIj5ub3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNub3RhdGlvbkRlY2xTQVhGdW5jIj5ub3RhdGlvbkRlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjdW5wYXJzZWRFbnRpdHlEZWNsIj51bnBhcnNlZEVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN1bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jIj51bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMk5vdGF0aW9uRGVjbCI+eG1sU0FYMk5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsIj54bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsPC9hPjxiciAvPgorPC9kZD48ZHQ+V2hlbjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEhhbmRsZUVudGl0eSI+eG1sSGFuZGxlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbXBhcmVWYWx1ZXMiPnhtbFhQYXRoQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJZEZ1bmN0aW9uIj54bWxYUGF0aElkRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5XaGVyZXZlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzwvZGQ+PGR0PldoaXRlc3BhY2U8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5XaWxsPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlIj54bWxTYXZlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZSI+eG1sU2F2ZUZvcm1hdEZpbGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5XaXRoPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmRUYWciPnhtbFBhcnNlRW5kVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzwvZGQ+PGR0Pldvcmtpbmc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWVzcGFjZSI+eG1sUGFyc2VOYW1lc3BhY2U8L2E+PGJyIC8+Cis8L2RkPjxkdD5XcmFwPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBOb2RlU2V0Ij54bWxYUGF0aFdyYXBOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyV3JhcExvY2F0aW9uU2V0Ij54bWxYUHRyV3JhcExvY2F0aW9uU2V0PC9hPjxiciAvPgorPC9kZD48ZHQ+V3JhcHBlcjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU9wZW4iPnhtbEZpbGVPcGVuPC9hPjxiciAvPgorPC9kZD48ZHQ+V3JhcHM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcENTdHJpbmciPnhtbFhQYXRoV3JhcENTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcEV4dGVybmFsIj54bWxYUGF0aFdyYXBFeHRlcm5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhXcmFwU3RyaW5nIj54bWxYUGF0aFdyYXBTdHJpbmc8L2E+PGJyIC8+Cis8L2RkPjxkdD5Xcml0ZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudDwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIFg6PC9oMj48ZGw+PGR0PlhIVE1MPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElzWEhUTUwiPnhtbElzWEhUTUw8L2E+PGJyIC8+Cis8L2RkPjxkdD5YSW5jbHVkZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCI+TElCWE1MX1hJTkNMVURFX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX05TIj5YSU5DTFVERV9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfT0xEX05TIj5YSU5DTFVERV9PTERfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVGcmVlQ29udGV4dCI+eG1sWEluY2x1ZGVGcmVlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVOZXdDb250ZXh0Ij54bWxYSW5jbHVkZU5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2VzcyI+eG1sWEluY2x1ZGVQcm9jZXNzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVTZXRGbGFncyI+eG1sWEluY2x1ZGVTZXRGbGFnczwvYT48YnIgLz4KKzwvZGQ+PGR0PlhJbmNsdWRlPzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPC9kZD48ZHQ+WExJTktfVFlQRV9OT05FPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUwtMTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIj54bWxWYWxpZGF0ZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCI+eG1sVmFsaWRhdGVOb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVSb290Ij54bWxWYWxpZGF0ZVJvb3Q8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUwtU2NoZW1hPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFZhbGlkRXJyb3JzIj54bWxTY2hlbWFHZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTERlY2w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVhNTERlY2wiPnhtbFBhcnNlWE1MRGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTERlY2w/PC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VEb2N1bWVudCI+eG1sUGFyc2VEb2N1bWVudDwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTFNjaGVtYTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9BVFRSSUJVVEVfREVDTDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sQXR0cmlidXRlIj5feG1sQXR0cmlidXRlPC9hPjxiciAvPgorPC9kZD48ZHQ+WE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRlZFR5cGUiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfQVRUUklCVVRFX0ZJWEVEPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9BVFRSSUJVVEVfSU1QTElFRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfQVRUUklCVVRFX05PREU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEF0dHIiPl94bWxBdHRyPC9hPjxiciAvPgorPC9kZD48ZHQ+WE1MX0FUVFJJQlVURV9OT05FPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9BVFRSSUJVVEVfTk9UQVRJT048L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIj54bWxQYXJzZUVudW1lcmF0ZWRUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+WE1MX0FUVFJJQlVURV9SRVFVSVJFRDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiPnhtbFBhcnNlRGVmYXVsdERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPC9kZD48ZHQ+WE1MX0NBU1RfRlBUUjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCNYTUxfQ0FTVF9GUFRSIj5YTUxfQ0FTVF9GUFRSPC9hPjxiciAvPgorPC9kZD48ZHQ+WE1MX0NBVEFfUFJFRkVSX1BVQkxJQzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciI+eG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfQ0FUQV9QUkVGRVJfU1lTVEVNPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9DSEFSX0VOQ09ESU5HXzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9DSEFSX0VOQ09ESU5HX05PTkU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9ET0NVTUVOVF9OT0RFPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEb2MiPl94bWxEb2M8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfRFREX05PREU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbER0ZCI+X3htbER0ZDwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9FTEVNRU5UX0RFQ0w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEVsZW1lbnQiPl94bWxFbGVtZW50PC9hPjxiciAvPgorPC9kZD48ZHQ+WE1MX0VMRU1FTlRfVFlQRV94eHg8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfRU5USVRZX0RFQ0w8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI194bWxFbnRpdHkiPl94bWxFbnRpdHk8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfRVJSX09LPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfUEFSU0VfSFVHRTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9NQVhfVEVYVF9MRU5HVEgiPlhNTF9NQVhfVEVYVF9MRU5HVEg8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfU0NIRU1BU19FTEVNX0dMT0JBTDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMIj5YTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMPC9hPjxiciAvPgorPC9kZD48ZHQ+WE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUZhY2V0Ij5feG1sU2NoZW1hRmFjZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfU0NIRU1BU19TVFJJTkc8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8L2RkPjxkdD5YTUxfU1VCU1RJVFVURV9QRVJFRjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF9TVUJTVElUVVRFX1JFRjwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNTF94eHhfeXl5X0VOVElUWTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQWRkRG9jRW50aXR5Ij54bWxBZGREb2NFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEFkZER0ZEVudGl0eSI+eG1sQWRkRHRkRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxOZXdFbnRpdHkiPnhtbE5ld0VudGl0eTwvYT48YnIgLz4KKzwvZGQ+PGR0PlhNbC1TY2hlbWE8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8L2RkPjxkdD5YUEFUSDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlQ29tcEV4cHIiPnhtbFhQYXRoRnJlZUNvbXBFeHByPC9hPjxiciAvPgorPC9kZD48ZHQ+WFBBVEhfSU5WQUxJRF9BUklUWTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTZXRBcml0eUVycm9yIj54bWxYUGF0aFNldEFyaXR5RXJyb3I8L2E+PGJyIC8+Cis8L2RkPjxkdD5YUEFUSF9JTlZBTElEX1RZUEU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU2V0VHlwZUVycm9yIj54bWxYUGF0aFNldFR5cGVFcnJvcjwvYT48YnIgLz4KKzwvZGQ+PGR0PlhQb2ludGVyPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9YUFRSX0VOQUJMRUQiPkxJQlhNTF9YUFRSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aFBhcnNlckNvbnRleHQiPl94bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWwiPnhtbFhQdHJFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIj54bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3Q29udGV4dCI+eG1sWFB0ck5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJSYW5nZVRvRnVuY3Rpb24iPnhtbFhQdHJSYW5nZVRvRnVuY3Rpb248L2E+PGJyIC8+Cis8L2RkPjxkdD5YU0Q8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPC9kZD48ZHQ+WFNMVDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sTm9kZSI+X3htbE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sRnJlZVBhdHRlcm4iPnhtbEZyZWVQYXR0ZXJuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbEZyZWVQYXR0ZXJuTGlzdCI+eG1sRnJlZVBhdHRlcm5MaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1ZhbHVlVHJlZSI+eG1sWFBhdGhOZXdWYWx1ZVRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RhY2tJc05vZGVTZXQiPnhtbFhQYXRoU3RhY2tJc05vZGVTZXQ8L2E+PGJyIC8+Cis8L2RkPjxkdD5YaW5jbHVkZTwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfTlMiPlhJTkNMVURFX05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9PTERfTlMiPlhJTkNMVURFX09MRF9OUzwvYT48YnIgLz4KKzwvZGQ+PGR0PlhtbDwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb2RlVHlwZSI+eG1sVGV4dFJlYWRlck5vZGVUeXBlPC9hPjxiciAvPgorPC9kZD48ZHQ+WG1sTm9kZVR5cGU8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9kZVR5cGUiPnhtbFRleHRSZWFkZXJOb2RlVHlwZTwvYT48YnIgLz4KKzwvZGQ+PC9kbD48aDI+TGV0dGVyIFk6PC9oMj48ZGw+PGR0PllFUzwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVN0YXR1cyI+aHRtbE5vZGVTdGF0dXM8L2E+PGJyIC8+Cis8L2RkPjxkdD5ZaVJhZGljYWxzPC9kdD48ZGQ+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzWWlSYWRpY2FscyI+eG1sVUNTSXNZaVJhZGljYWxzPC9hPjxiciAvPgorPC9kZD48ZHQ+WWlTeWxsYWJsZXM8L2R0PjxkZD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNZaVN5bGxhYmxlcyI+eG1sVUNTSXNZaVN5bGxhYmxlczwvYT48YnIgLz4KKzwvZGQ+PGR0PllpamluZ0hleGFncmFtU3ltYm9sczwvZHQ+PGRkPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scyI+eG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHM8L2E+PGJyIC8+Cis8L2RkPjwvZGw+PGgyIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BLUI8L2E+Cis8YSBocmVmPSJBUEljaHVuazEuaHRtbCI+Qy1DPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyLmh0bWwiPkQtRTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMy5odG1sIj5GLUk8L2E+Cis8YSBocmVmPSJBUEljaHVuazQuaHRtbCI+Si1OPC9hPgorPGEgaHJlZj0iQVBJY2h1bms1Lmh0bWwiPk8tUDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rNi5odG1sIj5RLVI8L2E+Cis8YSBocmVmPSJBUEljaHVuazcuaHRtbCI+Uy1TPC9hPgorPGEgaHJlZj0iQVBJY2h1bms4Lmh0bWwiPlQtVTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rOS5odG1sIj5WLVk8L2E+Cis8YSBocmVmPSJBUEljaHVuazEwLmh0bWwiPlotYTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTEuaHRtbCI+Yi1iPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxMi5odG1sIj5jLWM8L2E+Cis8YSBocmVmPSJBUEljaHVuazEzLmh0bWwiPmQtZDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTQuaHRtbCI+ZS1lPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxNS5odG1sIj5mLWY8L2E+Cis8YSBocmVmPSJBUEljaHVuazE2Lmh0bWwiPmctaDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMTcuaHRtbCI+aS1pPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsxOC5odG1sIj5qLWw8L2E+Cis8YSBocmVmPSJBUEljaHVuazE5Lmh0bWwiPm0tbTwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjAuaHRtbCI+bi1uPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyMS5odG1sIj5vLW88L2E+Cis8YSBocmVmPSJBUEljaHVuazIyLmh0bWwiPnAtcDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjMuaHRtbCI+cS1yPC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNC5odG1sIj5zLXM8L2E+Cis8YSBocmVmPSJBUEljaHVuazI1Lmh0bWwiPnQtdDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjYuaHRtbCI+dS12PC9hPgorPGEgaHJlZj0iQVBJY2h1bmsyNy5odG1sIj53LXc8L2E+Cis8YSBocmVmPSJBUEljaHVuazI4Lmh0bWwiPngteDwvYT4KKzxhIGhyZWY9IkFQSWNodW5rMjkuaHRtbCI+eS16PC9hPgorPC9oMj48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSWNvbnN0cnVjdG9ycy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJY29uc3RydWN0b3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY3YWQxZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWNvbnN0cnVjdG9ycy5odG1sCkBAIC0wLDAgKzEsNTgyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkxpc3Qgb2YgY29uc3RydWN0b3JzIGZvciBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5MaXN0IG9mIGNvbnN0cnVjdG9ycyBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMj5UeXBlIGNvbnN0IGh0bWxFbGVtRGVzYyAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxUYWdMb29rdXAiPmh0bWxUYWdMb29rdXA8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3QgaHRtbEVudGl0eURlc2MgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5TG9va3VwIj5odG1sRW50aXR5TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUVudGl0eVJlZiI+aHRtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IHhtbENoYXIgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFB1YmxpY0lkIj5nZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbEdldE1ldGFFbmNvZGluZyI+aHRtbEdldE1ldGFFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25hbWVQb3AiPm5hbWVQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ29udGVudCI+eG1sQnVmZmVyQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0UHVibGljIj54bWxDYXRhbG9nR2V0UHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXRTeXN0ZW0iPnhtbENhdGFsb2dHZXRTeXN0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdEV4aXN0cyI+eG1sRGljdEV4aXN0czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0TG9va3VwIj54bWxEaWN0TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RRTG9va3VwIj54bWxEaWN0UUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmNvZGluZ0RlY2wiPnhtbFBhcnNlRW5jb2RpbmdEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lIj54bWxQYXJzZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJVGFyZ2V0Ij54bWxQYXJzZVBJVGFyZ2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0UHVibGljSWQiPnhtbFNBWDJHZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmciPnhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTMiPnhtbFNwbGl0UU5hbWUzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZXN0ciI+eG1sU3RyY2FzZXN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNociI+eG1sU3RyY2hyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3RyIj54bWxTdHJzdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpIj54bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmciPnhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3ROYW1lIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgiPnhtbFRleHRSZWFkZXJDb25zdFByZWZpeDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFN0cmluZyI+eG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUiPnhtbFRleHRSZWFkZXJDb25zdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyI+eG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24iPnhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RycG9zIj54bWxVVEY4U3RycG9zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5zTG9va3VwIj54bWxYUGF0aE5zTG9va3VwPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm8iPnhtbFBhcnNlckZpbmROb2RlSW5mbzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBkb2NiRG9jUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZURvYyI+ZG9jYlBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUZpbGUiPmRvY2JQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRG9jIj5kb2NiU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRmlsZSI+ZG9jYlNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBkb2NiUGFyc2VyQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQiPmRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBkb3VibGU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlciI+eG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyIj54bWxYUGF0aENhc3ROb2RlVG9OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyIj54bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdFRvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcE51bWJlciI+eG1sWFBhdGhQb3BOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRXZhbE51bWJlciI+eG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGh0bWxEb2NQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRG9jIj5odG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRmQiPmh0bWxDdHh0UmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZEZpbGUiPmh0bWxDdHh0UmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkSU8iPmh0bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZE1lbW9yeSI+aHRtbEN0eHRSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jIj5odG1sTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jTm9EdEQiPmh0bWxOZXdEb2NOb0R0RDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2MiPmh0bWxQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VGaWxlIj5odG1sUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkRG9jIj5odG1sUmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZEZkIj5odG1sUmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkRmlsZSI+aHRtbFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkSU8iPmh0bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRNZW1vcnkiPmh0bWxSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZURvYyI+aHRtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZUZpbGUiPmh0bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgaHRtbFBhcnNlckN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQiPmh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCI+aHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5ld1BhcnNlckN0eHQiPmh0bWxOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGh0bWxTdGF0dXM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF0dHJBbGxvd2VkIj5odG1sQXR0ckFsbG93ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRTdGF0dXNIZXJlIj5odG1sRWxlbWVudFN0YXR1c0hlcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGxvbmc6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxCeXRlQ29uc3VtZWQiPnhtbEJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRMaW5lTm8iPnhtbEdldExpbmVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlRG9jIj54bWxTYXZlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQiPnhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHVuc2lnbmVkIGxvbmc6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ2hpbGRFbGVtZW50Q291bnQiPnhtbENoaWxkRWxlbWVudENvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiPnhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmciPnhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHZvaWQgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkTG9jYWwiPnhtbENhdGFsb2dBZGRMb2NhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU9wZW4iPnhtbEZpbGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3BpZXIiPnhtbEhhc2hDb3BpZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaExvb2t1cCI+eG1sSGFzaExvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMiI+eG1sSGFzaExvb2t1cDI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaExvb2t1cDMiPnhtbEhhc2hMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwIj54bWxIYXNoUUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDIiPnhtbEhhc2hRTG9va3VwMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDMiPnhtbEhhc2hRTG9va3VwMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBPcGVuIj54bWxJT0ZUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE9wZW4iPnhtbElPSFRUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE9wZW5XIj54bWxJT0hUVFBPcGVuVzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRPcGVuQ2FsbGJhY2siPnhtbElucHV0T3BlbkNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpbmtHZXREYXRhIj54bWxMaW5rR2V0RGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVNlYXJjaCI+eG1sTGlzdFJldmVyc2VTZWFyY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNlYXJjaCI+eG1sTGlzdFNlYXJjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyI+eG1sTWFsbG9jQXRvbWljTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0xvYyI+eG1sTWFsbG9jTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtTWFsbG9jIj54bWxNZW1NYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1SZWFsbG9jIj54bWxNZW1SZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0VG8iPnhtbE5hbm9GVFBDb25uZWN0VG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUE5ld0N0eHQiPnhtbE5hbm9GVFBOZXdDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBPcGVuIj54bWxOYW5vRlRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2QiPnhtbE5hbm9IVFRQTWV0aG9kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW4iPnhtbE5hbm9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuUmVkaXIiPnhtbE5hbm9IVFRQT3BlblJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRPcGVuQ2FsbGJhY2siPnhtbE91dHB1dE9wZW5DYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NMb2MiPnhtbFJlYWxsb2NMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wRXh0ZXJuYWwiPnhtbFhQYXRoUG9wRXh0ZXJuYWw8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeGxpbmtIYW5kbGVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0dldERlZmF1bHRIYW5kbGVyIj54bGlua0dldERlZmF1bHRIYW5kbGVyPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhsaW5rTm9kZURldGVjdEZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rR2V0RGVmYXVsdERldGVjdCI+eGxpbmtHZXREZWZhdWx0RGV0ZWN0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhsaW5rVHlwZTo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEF0dHJQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weVByb3AiPnhtbENvcHlQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlQcm9wTGlzdCI+eG1sQ29weVByb3BMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXRJRCI+eG1sR2V0SUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzTnNQcm9wIj54bWxIYXNOc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzUHJvcCI+eG1sSGFzUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NQcm9wIj54bWxOZXdEb2NQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcCI+eG1sTmV3TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcEVhdE5hbWUiPnhtbE5ld05zUHJvcEVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3UHJvcCI+eG1sTmV3UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXROc1Byb3AiPnhtbFNldE5zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRQcm9wIj54bWxTZXRQcm9wPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEF0dHJpYnV0ZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkQXR0cmlidXRlRGVjbCI+eG1sQWRkQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkQXR0ckRlc2MiPnhtbEdldER0ZEF0dHJEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxBdHRyaWJ1dGVUYWJsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUF0dHJpYnV0ZVRhYmxlIj54bWxDb3B5QXR0cmlidXRlVGFibGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQXV0b21hdGFQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbE5ld0F1dG9tYXRhIj54bWxOZXdBdXRvbWF0YTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxBdXRvbWF0YVN0YXRlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUdldEluaXRTdGF0ZSI+eG1sQXV0b21hdGFHZXRJbml0U3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3QWxsVHJhbnMiPnhtbEF1dG9tYXRhTmV3QWxsVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdFcHNpbG9uIj54bWxBdXRvbWF0YU5ld0Vwc2lsb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3U3RhdGUiPnhtbEF1dG9tYXRhTmV3U3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZSI+eG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQnVmZmVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZSI+eG1sQnVmZmVyQ3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZVNpemUiPnhtbEJ1ZmZlckNyZWF0ZVNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU3RhdGljIj54bWxCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2F0YWxvZ0FsbG93OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ0dldERlZmF1bHRzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbENhdGFsb2dQcmVmZXI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbENhdGFsb2dQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZEFDYXRhbG9nIj54bWxMb2FkQUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbE5ld0NhdGFsb2ciPnhtbE5ld0NhdGFsb2c8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2hhcjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBvcElucHV0Ij54bWxQb3BJbnB1dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxDaGFyICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlIj54bWxBQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljIj54bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlVVJJIj54bWxBQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVpbGRRTmFtZSI+eG1sQnVpbGRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFVSSSI+eG1sQnVpbGRVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxDYW5vbmljUGF0aCI+eG1sQ2Fub25pY1BhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlIj54bWxDYXRhbG9nUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyI+eG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iPnhtbENhdGFsb2dSZXNvbHZlU3lzdGVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlVVJJIj54bWxDYXRhbG9nUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXJTdHJkdXAiPnhtbENoYXJTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyU3RybmR1cCI+eG1sQ2hhclN0cm5kdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyI+eG1sRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlU3BlY2lhbENoYXJzIj54bWxFbmNvZGVTcGVjaWFsQ2hhcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Tm9Oc1Byb3AiPnhtbEdldE5vTnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vZGVQYXRoIj54bWxHZXROb2RlUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROc1Byb3AiPnhtbEdldE5zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUiPnhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOU0RlZiI+eG1sTmFtZXNwYWNlUGFyc2VOU0RlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiPnhtbE5hbWVzcGFjZVBhcnNlUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRDb250ZW50Ij54bWxOb2RlR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0TGFuZyI+eG1sTm9kZUdldExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0U3RyaW5nIj54bWxOb2RlTGlzdEdldFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9ybWFsaXplV2luZG93c1BhdGgiPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5jTmFtZSI+eG1sUGFyc2VFbmNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlWYWx1ZSI+eG1sUGFyc2VFbnRpdHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VObXRva2VuIj54bWxQYXJzZU5tdG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVB1YmlkTGl0ZXJhbCI+eG1sUGFyc2VQdWJpZExpdGVyYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVF1b3RlZFN0cmluZyI+eG1sUGFyc2VRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVN5c3RlbUxpdGVyYWwiPnhtbFBhcnNlU3lzdGVtTGl0ZXJhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbkluZm8iPnhtbFBhcnNlVmVyc2lvbkluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVZlcnNpb25OdW0iPnhtbFBhcnNlVmVyc2lvbk51bTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sU2F2ZVVyaSI+eG1sU2F2ZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIj54bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNwbGl0UU5hbWUiPnhtbFNwbGl0UU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTIiPnhtbFNwbGl0UU5hbWUyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2F0Ij54bWxTdHJjYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJkdXAiPnhtbFN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXQiPnhtbFN0cm5jYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0TmV3Ij54bWxTdHJuY2F0TmV3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmR1cCI+eG1sU3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN1YiI+eG1sU3Ryc3ViPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJhc2VVcmkiPnhtbFRleHRSZWFkZXJCYXNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyTG9jYWxOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIj54bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5hbWUiPnhtbFRleHRSZWFkZXJOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVmaXgiPnhtbFRleHRSZWFkZXJQcmVmaXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIj54bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCI+eG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkU3RyaW5nIj54bWxUZXh0UmVhZGVyUmVhZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJWYWx1ZSI+eG1sVGV4dFJlYWRlclZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclhtbExhbmciPnhtbFRleHRSZWFkZXJYbWxMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGVTdHIiPnhtbFVSSUVzY2FwZVN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJuZHVwIj54bWxVVEY4U3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzdWIiPnhtbFVURjhTdHJzdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nIj54bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZyI+eG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmciPnhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmciPnhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3RUb1N0cmluZyI+eG1sWFBhdGhDYXN0VG9TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOQ05hbWUiPnhtbFhQYXRoUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BTdHJpbmciPnhtbFhQYXRoUG9wU3RyaW5nPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbENoYXJFbmNvZGluZzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRE9NV3JhcEN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcE5ld0N0eHQiPnhtbERPTVdyYXBOZXdDdHh0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbERlcmVnaXN0ZXJOb2RlRnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxEaWN0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RDcmVhdGUiPnhtbERpY3RDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZVN1YiI+eG1sRGljdENyZWF0ZVN1YjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxEb2NQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weURvYyI+eG1sQ29weURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRG9jIj54bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmQiPnhtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZEZpbGUiPnhtbEN0eHRSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkSU8iPnhtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZE1lbW9yeSI+eG1sQ3R4dFJlYWRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jIj54bWxOZXdEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sUGFyc2VDYXRhbG9nRmlsZSI+eG1sUGFyc2VDYXRhbG9nRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRG9jIj54bWxQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRW50aXR5Ij54bWxQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRmlsZSI+eG1sUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VNZW1vcnkiPnhtbFBhcnNlTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZERvYyI+eG1sUmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlYWRGZCI+eG1sUmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZpbGUiPnhtbFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZElPIj54bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWFkTWVtb3J5Ij54bWxSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJNZW1vcnkiPnhtbFJlY292ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUVudGl0eSI+eG1sU0FYUGFyc2VFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGUiPnhtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5Ij54bWxTQVhQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRHRkUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlEdGQiPnhtbENvcHlEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ3JlYXRlSW50U3Vic2V0Ij54bWxDcmVhdGVJbnRTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0SW50U3Vic2V0Ij54bWxHZXRJbnRTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJT1BhcnNlRFREIj54bWxJT1BhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0R0ZCI+eG1sTmV3RHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VEVEQiPnhtbFBhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEVEQiPnhtbFNBWFBhcnNlRFREPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEVsZW1lbnRDb250ZW50UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQiPnhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRDb250ZW50Ij54bWxDb3B5RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbE5ld0RvY0VsZW1lbnRDb250ZW50Ij54bWxOZXdEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RWxlbWVudENvbnRlbnQiPnhtbE5ld0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRWxlbWVudFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkRWxlbWVudERlY2wiPnhtbEFkZEVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRFbGVtZW50RGVzYyI+eG1sR2V0RHRkRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZFFFbGVtZW50RGVzYyI+eG1sR2V0RHRkUUVsZW1lbnREZXNjPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEVsZW1lbnRUYWJsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRUYWJsZSI+eG1sQ29weUVsZW1lbnRUYWJsZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxFbnRpdGllc1RhYmxlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxDb3B5RW50aXRpZXNUYWJsZSI+eG1sQ29weUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENyZWF0ZUVudGl0aWVzVGFibGUiPnhtbENyZWF0ZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRW50aXR5UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0RW50aXR5Ij5nZXRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNnZXRFbnRpdHlTQVhGdW5jIj5nZXRFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0UGFyYW1ldGVyRW50aXR5Ij5nZXRQYXJhbWV0ZXJFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIj5nZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxBZGREb2NFbnRpdHkiPnhtbEFkZERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQWRkRHRkRW50aXR5Ij54bWxBZGREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldERvY0VudGl0eSI+eG1sR2V0RG9jRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXREdGRFbnRpdHkiPnhtbEdldER0ZEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0UGFyYW1ldGVyRW50aXR5Ij54bWxHZXRQYXJhbWV0ZXJFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldFByZWRlZmluZWRFbnRpdHkiPnhtbEdldFByZWRlZmluZWRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbE5ld0VudGl0eSI+eG1sTmV3RW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJHZXRFbnRpdHkiPnhtbFNBWDJHZXRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSI+eG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxFbnVtZXJhdGlvblB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVudW1lcmF0aW9uIj54bWxDb3B5RW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENyZWF0ZUVudW1lcmF0aW9uIj54bWxDcmVhdGVFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRpb25UeXBlIj54bWxQYXJzZUVudW1lcmF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm90YXRpb25UeXBlIj54bWxQYXJzZU5vdGF0aW9uVHlwZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxFcnJvclB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sQ3R4dEdldExhc3RFcnJvciI+eG1sQ3R4dEdldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2V0TGFzdEVycm9yIj54bWxHZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRXhwQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0N0eHQiPnhtbEV4cE5ld0N0eHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRXhwTm9kZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3QXRvbSI+eG1sRXhwTmV3QXRvbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld09yIj54bWxFeHBOZXdPcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIj54bWxFeHBOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1NlcSI+eG1sRXhwTmV3U2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3RyaW5nRGVyaXZlIj54bWxFeHBTdHJpbmdEZXJpdmU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sR2xvYmFsU3RhdGVQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sR2V0R2xvYmFsU3RhdGUiPnhtbEdldEdsb2JhbFN0YXRlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEhhc2hUYWJsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ29weSI+eG1sSGFzaENvcHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENyZWF0ZSI+eG1sSGFzaENyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ3JlYXRlRGljdCI+eG1sSGFzaENyZWF0ZURpY3Q8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sSURQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZElEIj54bWxBZGRJRDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxMaW5rUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RFbmQiPnhtbExpc3RFbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEZyb250Ij54bWxMaXN0RnJvbnQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTGlzdFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0UmVmcyI+eG1sR2V0UmVmczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0Q3JlYXRlIj54bWxMaXN0Q3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3REdXAiPnhtbExpc3REdXA8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTG9jYXRpb25TZXRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldENyZWF0ZSI+eG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTW9kdWxlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlT3BlbiI+eG1sTW9kdWxlT3BlbjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxNdXRleFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxOZXdNdXRleCI+eG1sTmV3TXV0ZXg8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTm9kZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25vZGVQb3AiPm5vZGVQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGQiPnhtbEFkZENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkTGlzdCI+eG1sQWRkQ2hpbGRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkU2libGluZyI+eG1sQWRkU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5Tm9kZSI+eG1sQ29weU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGVMaXN0Ij54bWxDb3B5Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGUiPnhtbERvY0NvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0NvcHlOb2RlTGlzdCI+eG1sRG9jQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0dldFJvb3RFbGVtZW50Ij54bWxEb2NHZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRmlyc3RFbGVtZW50Q2hpbGQiPnhtbEZpcnN0RWxlbWVudENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExhc3RDaGlsZCI+eG1sR2V0TGFzdENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q0RhdGFCbG9jayI+eG1sTmV3Q0RhdGFCbG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGFyUmVmIj54bWxOZXdDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDb21tZW50Ij54bWxOZXdDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY0NvbW1lbnQiPnhtbE5ld0RvY0NvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jRnJhZ21lbnQiPnhtbE5ld0RvY0ZyYWdtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGUiPnhtbE5ld0RvY05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1BJIj54bWxOZXdEb2NQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NSYXdOb2RlIj54bWxOZXdEb2NSYXdOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1RleHQiPnhtbE5ld0RvY1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jVGV4dExlbiI+eG1sTmV3RG9jVGV4dExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOb2RlIj54bWxOZXdOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGVFYXROYW1lIj54bWxOZXdOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdQSSI+eG1sTmV3UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3UmVmZXJlbmNlIj54bWxOZXdSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dCI+eG1sTmV3VGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0TGVuIj54bWxOZXdUZXh0TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5leHRFbGVtZW50U2libGluZyI+eG1sTmV4dEVsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVwbGFjZU5vZGUiPnhtbFJlcGxhY2VOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0dldE5vZGVMaXN0Ij54bWxTdHJpbmdHZXROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTdHJpbmdMZW5HZXROb2RlTGlzdCI+eG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVGV4dE1lcmdlIj54bWxUZXh0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiPnhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFeHBhbmQiPnhtbFRleHRSZWFkZXJFeHBhbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmUiPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3IiPnhtbFhQYXRoTmV4dEFuY2VzdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiI+eG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEF0dHJpYnV0ZSI+eG1sWFBhdGhOZXh0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRDaGlsZCI+eG1sWFBhdGhOZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dERlc2NlbmRhbnQiPnhtbFhQYXRoTmV4dERlc2NlbmRhbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGYiPnhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHROYW1lc3BhY2UiPnhtbFhQYXRoTmV4dE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UGFyZW50Ij54bWxYUGF0aE5leHRQYXJlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRTZWxmIj54bWxYUGF0aE5leHRTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyQnVpbGROb2RlTGlzdCI+eG1sWFB0ckJ1aWxkTm9kZUxpc3Q8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTm9kZVNldFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaWZmZXJlbmNlIj54bWxYUGF0aERpZmZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3RTb3J0ZWQiPnhtbFhQYXRoRGlzdGluY3RTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSW50ZXJzZWN0aW9uIj54bWxYUGF0aEludGVyc2VjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nIj54bWxYUGF0aExlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nIj54bWxYUGF0aE5vZGVMZWFkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIj54bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRDcmVhdGUiPnhtbFhQYXRoTm9kZVNldENyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZyI+eG1sWFBhdGhOb2RlVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIj54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOb2RlU2V0Ij54bWxYUGF0aFBvcE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhaWxpbmciPnhtbFhQYXRoVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTm90YXRpb25QdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZE5vdGF0aW9uRGVjbCI+eG1sQWRkTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGROb3RhdGlvbkRlc2MiPnhtbEdldER0ZE5vdGF0aW9uRGVzYzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxOb3RhdGlvblRhYmxlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5Tm90YXRpb25UYWJsZSI+eG1sQ29weU5vdGF0aW9uVGFibGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTnNQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXROYW1lc3BhY2UiPmdldE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5TmFtZXNwYWNlIj54bWxDb3B5TmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlOYW1lc3BhY2VMaXN0Ij54bWxDb3B5TmFtZXNwYWNlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb24iPnhtbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdHbG9iYWxOcyI+eG1sTmV3R2xvYmFsTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3TnMiPnhtbE5ld05zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTnNQdHIgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROc0xpc3QiPnhtbEdldE5zTGlzdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sT3V0cHV0QnVmZmVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxBbGxvY091dHB1dEJ1ZmZlciI+eG1sQWxsb2NPdXRwdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8iPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFBhcnNlckN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVEb2NQYXJzZXJDdHh0Ij54bWxDcmVhdGVEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij54bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZUlPUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlSU9QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCI+eG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZVVSTFBhcnNlckN0eHQiPnhtbENyZWF0ZVVSTFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxOZXdQYXJzZXJDdHh0Ij54bWxOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQiPnhtbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUGFyc2VyRXJyb3JzOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUGFyc2VySW5wdXRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFBvcCI+aW5wdXRQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0hUVFBJbnB1dCI+eG1sQ2hlY2tIVFRQSW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMb2FkRXh0ZXJuYWxFbnRpdHkiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5ld0VudGl0eUlucHV0U3RyZWFtIj54bWxOZXdFbnRpdHlJbnB1dFN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iPnhtbE5ld0lPSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdJbnB1dEZyb21GaWxlIj54bWxOZXdJbnB1dEZyb21GaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3SW5wdXRTdHJlYW0iPnhtbE5ld0lucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0iPnhtbE5ld1N0cmluZ0lucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxQYXR0ZXJuUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSTXV0ZXhQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3Uk11dGV4Ij54bWxOZXdSTXV0ZXg8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUmVmUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRSZWYiPnhtbEFkZFJlZjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWdFeGVjQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ij54bWxSZWdOZXdFeGVjQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWdleHBQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwQ29tcGlsZSI+eG1sUmVnZXhwQ29tcGlsZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWdpc3Rlck5vZGVGdW5jOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdQYXJzZXJDdHh0Ij54bWxSZWxheE5HTmV3UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWxheE5HUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZSI+eG1sUmVsYXhOR1BhcnNlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCI+eG1sUmVsYXhOR05ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTYXZlQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9CdWZmZXIiPnhtbFNhdmVUb0J1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9GZCI+eG1sU2F2ZVRvRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvRmlsZW5hbWUiPnhtbFNhdmVUb0ZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0lPIj54bWxTYXZlVG9JTzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTY2hlbWFGYWNldFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld0ZhY2V0Ij54bWxTY2hlbWFOZXdGYWNldDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFOZXdQYXJzZXJDdHh0Ij54bWxTY2hlbWFOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZSI+eG1sU2NoZW1hUGFyc2U8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hU0FYUGx1Z1B0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVR5cGVQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJblR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZSI+eG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hVmFsUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29weVZhbHVlIj54bWxTY2hlbWFDb3B5VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlIj54bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSI+eG1sU2NoZW1hTmV3UU5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0TmV4dCI+eG1sU2NoZW1hVmFsdWVHZXROZXh0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVZhbFR5cGU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxUeXBlIj54bWxTY2hlbWFHZXRWYWxUeXBlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVZhbGlkQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFOZXdWYWxpZEN0eHQiPnhtbFNjaGVtYU5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTY2hlbWF0cm9uUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZSI+eG1sU2NoZW1hdHJvblBhcnNlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTdHJlYW1DdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5HZXRTdHJlYW1DdHh0Ij54bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxUZXh0UmVhZGVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sTmV3VGV4dFJlYWRlciI+eG1sTmV3VGV4dFJlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbE5ld1RleHRSZWFkZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRG9jIj54bWxSZWFkZXJGb3JEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGaWxlIj54bWxSZWFkZXJGb3JGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9ySU8iPnhtbFJlYWRlckZvcklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yTWVtb3J5Ij54bWxSZWFkZXJGb3JNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJXYWxrZXIiPnhtbFJlYWRlcldhbGtlcjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxUZXh0V3JpdGVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlciI+eG1sTmV3VGV4dFdyaXRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJEb2MiPnhtbE5ld1RleHRXcml0ZXJEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUiPnhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJNZW1vcnkiPnhtbE5ld1RleHRXcml0ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyVHJlZSI+eG1sTmV3VGV4dFdyaXRlclRyZWU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sVVJJUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ3JlYXRlVVJJIj54bWxDcmVhdGVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSSI+eG1sUGFyc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQYXJzZVVSSVJhdyI+eG1sUGFyc2VVUklSYXc8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sVmFsaWRDdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdWYWxpZEN0eHQiPnhtbE5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxYSW5jbHVkZUN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlTmV3Q29udGV4dCI+eG1sWEluY2x1ZGVOZXdDb250ZXh0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhQYXRoQ29tcEV4cHJQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZSI+eG1sWFBhdGhDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEN0eHRDb21waWxlIj54bWxYUGF0aEN0eHRDb21waWxlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhQYXRoQ29udGV4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOZXdDb250ZXh0Ij54bWxYUGF0aE5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxYUGF0aEZ1bmN0aW9uOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIj54bWxYUGF0aEZ1bmNMb29rdXBGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwIj54bWxYUGF0aEZ1bmN0aW9uTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxYUGF0aE9iamVjdFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjdmFsdWVQb3AiPnZhbHVlUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGVkRXZhbCI+eG1sWFBhdGhDb21waWxlZEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEJvb2xlYW4iPnhtbFhQYXRoQ29udmVydEJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydE51bWJlciI+eG1sWFBhdGhDb252ZXJ0TnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRTdHJpbmciPnhtbFhQYXRoQ29udmVydFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEV4cHJlc3Npb24iPnhtbFhQYXRoRXZhbEV4cHJlc3Npb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Qm9vbGVhbiI+eG1sWFBhdGhOZXdCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld0NTdHJpbmciPnhtbFhQYXRoTmV3Q1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdGbG9hdCI+eG1sWFBhdGhOZXdGbG9hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdOb2RlU2V0Ij54bWxYUGF0aE5ld05vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldExpc3QiPnhtbFhQYXRoTmV3Tm9kZVNldExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3U3RyaW5nIj54bWxYUGF0aE5ld1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdWYWx1ZVRyZWUiPnhtbFhQYXRoTmV3VmFsdWVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdENvcHkiPnhtbFhQYXRoT2JqZWN0Q29weTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cCI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhXcmFwQ1N0cmluZyI+eG1sWFBhdGhXcmFwQ1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhXcmFwRXh0ZXJuYWwiPnhtbFhQYXRoV3JhcEV4dGVybmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBOb2RlU2V0Ij54bWxYUGF0aFdyYXBOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBTdHJpbmciPnhtbFhQYXRoV3JhcFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWwiPnhtbFhQdHJFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UiPnhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMiPnhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2UiPnhtbFhQdHJOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCI+eG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50Ij54bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZU5vZGVzIj54bWxYUHRyTmV3UmFuZ2VOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIj54bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZVBvaW50cyI+eG1sWFB0ck5ld1JhbmdlUG9pbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyV3JhcExvY2F0aW9uU2V0Ij54bWxYUHRyV3JhcExvY2F0aW9uU2V0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0Ij54bWxYUGF0aE5ld1BhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUElmaWxlcy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJZmlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2FjN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJZmlsZXMuaHRtbApAQCAtMCwwICsxLDM1NDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+TGlzdCBvZiBTeW1ib2xzIHBlciBNb2R1bGUgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkxpc3Qgb2YgU3ltYm9scyBwZXIgTW9kdWxlIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyPjxhIG5hbWU9IkRPQ0JwYXJzZXIiIGlkPSJET0NCcGFyc2VyIj5Nb2R1bGUgRE9DQnBhcnNlcjwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0Ij5kb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0Ij5kb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRnJlZVBhcnNlckN0eHQiPmRvY2JGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VDaHVuayI+ZG9jYlBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jIj5kb2NiUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jdW1lbnQiPmRvY2JQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUZpbGUiPmRvY2JQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHQiPmRvY2JQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VySW5wdXQiPmRvY2JQYXJzZXJJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VySW5wdXRQdHIiPmRvY2JQYXJzZXJJbnB1dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlciI+ZG9jYlNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZURvYyI+ZG9jYlNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZUZpbGUiPmRvY2JTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9IkhUTUxwYXJzZXIiIGlkPSJIVE1McGFyc2VyIj5Nb2R1bGUgSFRNTHBhcnNlcjwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjSFRNTF9ERVBSRUNBVEVEIj5IVE1MX0RFUFJFQ0FURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjSFRNTF9JTlZBTElEIj5IVE1MX0lOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjSFRNTF9OQSI+SFRNTF9OQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX0NPTVBBQ1QiPkhUTUxfUEFSU0VfQ09NUEFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PQkxBTktTIj5IVE1MX1BBUlNFX05PQkxBTktTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfTk9FUlJPUiI+SFRNTF9QQVJTRV9OT0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfTk9JTVBMSUVEIj5IVE1MX1BBUlNFX05PSU1QTElFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PTkVUIj5IVE1MX1BBUlNFX05PTkVUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfTk9XQVJOSU5HIj5IVE1MX1BBUlNFX05PV0FSTklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX1BFREFOVElDIj5IVE1MX1BBUlNFX1BFREFOVElDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfUkVDT1ZFUiI+SFRNTF9QQVJTRV9SRUNPVkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUkVRVUlSRUQiPkhUTUxfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjSFRNTF9WQUxJRCI+SFRNTF9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNVVEY4VG9IdG1sIj5VVEY4VG9IdG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbnRpdHlEZXNjIj5faHRtbEVudGl0eURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF0dHJBbGxvd2VkIj5odG1sQXR0ckFsbG93ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCI+aHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRG9jIj5odG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRmQiPmh0bWxDdHh0UmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZEZpbGUiPmh0bWxDdHh0UmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkSU8iPmh0bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZE1lbW9yeSI+aHRtbEN0eHRSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVzZXQiPmh0bWxDdHh0UmVzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRVc2VPcHRpb25zIj5odG1sQ3R4dFVzZU9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERlZmF1bHRTdWJlbGVtZW50Ij5odG1sRGVmYXVsdFN1YmVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2NQdHIiPmh0bWxFbGVtRGVzY1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudEFsbG93ZWRIZXJlIj5odG1sRWxlbWVudEFsbG93ZWRIZXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjIj5odG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudFN0YXR1c0hlcmUiPmh0bWxFbGVtZW50U3RhdHVzSGVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW5jb2RlRW50aXRpZXMiPmh0bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5RGVzYyI+aHRtbEVudGl0eURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2NQdHIiPmh0bWxFbnRpdHlEZXNjUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlMb29rdXAiPmh0bWxFbnRpdHlMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eVZhbHVlTG9va3VwIj5odG1sRW50aXR5VmFsdWVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEZyZWVQYXJzZXJDdHh0Ij5odG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEhhbmRsZU9taXR0ZWRFbGVtIj5odG1sSGFuZGxlT21pdHRlZEVsZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSXNTY3JpcHRBdHRyaWJ1dGUiPmh0bWxJc1NjcmlwdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTmV3UGFyc2VyQ3R4dCI+aHRtbE5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VDaGFyUmVmIj5odG1sUGFyc2VDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUNodW5rIj5odG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2MiPmh0bWxQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2N1bWVudCI+aHRtbFBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRWxlbWVudCI+aHRtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VGaWxlIj5odG1sUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0Ij5odG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlcklucHV0Ij5odG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlcklucHV0UHRyIj5odG1sUGFyc2VySW5wdXRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlck5vZGVJbmZvIj5odG1sUGFyc2VyTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlck9wdGlvbiI+aHRtbFBhcnNlck9wdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZERvYyI+aHRtbFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRGZCI+aHRtbFJlYWRGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZEZpbGUiPmh0bWxSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZElPIj5odG1sUmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkTWVtb3J5Ij5odG1sUmVhZE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVxdWlyZWRBdHRycyI+aHRtbFJlcXVpcmVkQXR0cnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWEhhbmRsZXIiPmh0bWxTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhIYW5kbGVyUHRyIj5odG1sU0FYSGFuZGxlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTdGF0dXMiPmh0bWxTdGF0dXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFRhZ0xvb2t1cCI+aHRtbFRhZ0xvb2t1cDwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0iSFRNTHRyZWUiIGlkPSJIVE1MdHJlZSI+TW9kdWxlIEhUTUx0cmVlPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9DT01NRU5UX05PREUiPkhUTUxfQ09NTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX0VOVElUWV9SRUZfTk9ERSI+SFRNTF9FTlRJVFlfUkVGX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI0hUTUxfUElfTk9ERSI+SFRNTF9QSV9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1BSRVNFUlZFX05PREUiPkhUTUxfUFJFU0VSVkVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9URVhUX05PREUiPkhUTUxfVEVYVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0Ij5odG1sRG9jQ29udGVudER1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wIj5odG1sRG9jRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXBNZW1vcnkiPmh0bWxEb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCI+aHRtbERvY0R1bXBNZW1vcnlGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxHZXRNZXRhRW5jb2RpbmciPmh0bWxHZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxJc0Jvb2xlYW5BdHRyIj5odG1sSXNCb29sZWFuQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5ld0RvYyI+aHRtbE5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5ld0RvY05vRHREIj5odG1sTmV3RG9jTm9EdEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcCI+aHRtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlIj5odG1sTm9kZUR1bXBGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiPmh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wT3V0cHV0Ij5odG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTYXZlRmlsZSI+aHRtbFNhdmVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2F2ZUZpbGVFbmMiPmh0bWxTYXZlRmlsZUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbFNhdmVGaWxlRm9ybWF0Ij5odG1sU2F2ZUZpbGVGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTZXRNZXRhRW5jb2RpbmciPmh0bWxTZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9IlNBWCIgaWQ9IlNBWCI+TW9kdWxlIFNBWDwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZURlY2wiPmF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjZGF0YUJsb2NrIj5jZGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NoZWNrTmFtZXNwYWNlIj5jaGVja05hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbGVtZW50RGVjbCI+ZWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbmREb2N1bWVudCI+ZW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbmRFbGVtZW50Ij5lbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZW50aXR5RGVjbCI+ZW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2V4dGVybmFsU3Vic2V0Ij5leHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldENvbHVtbk51bWJlciI+Z2V0Q29sdW1uTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0RW50aXR5Ij5nZXRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRMaW5lTnVtYmVyIj5nZXRMaW5lTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0TmFtZXNwYWNlIj5nZXROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHkiPmdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFB1YmxpY0lkIj5nZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dsb2JhbE5hbWVzcGFjZSI+Z2xvYmFsTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaGFzRXh0ZXJuYWxTdWJzZXQiPmhhc0V4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaGFzSW50ZXJuYWxTdWJzZXQiPmhhc0ludGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZSI+aWdub3JhYmxlV2hpdGVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXIiPmluaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0eG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbnRlcm5hbFN1YnNldCI+aW50ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpc1N0YW5kYWxvbmUiPmlzU3RhbmRhbG9uZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI25hbWVzcGFjZURlY2wiPm5hbWVzcGFjZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNub3RhdGlvbkRlY2wiPm5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3Byb2Nlc3NpbmdJbnN0cnVjdGlvbiI+cHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yIj5zZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzZXROYW1lc3BhY2UiPnNldE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3N0YXJ0RG9jdW1lbnQiPnN0YXJ0RG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydEVsZW1lbnQiPnN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3VucGFyc2VkRW50aXR5RGVjbCI+dW5wYXJzZWRFbnRpdHlEZWNsPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJTQVgyIiBpZD0iU0FYMiI+TW9kdWxlIFNBWDI8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI2RvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQiPmRvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCI+aHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQiPnhtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQXR0cmlidXRlRGVjbCI+eG1sU0FYMkF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkNEYXRhQmxvY2siPnhtbFNBWDJDRGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJDaGFyYWN0ZXJzIj54bWxTQVgyQ2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQ29tbWVudCI+eG1sU0FYMkNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVsZW1lbnREZWNsIj54bWxTQVgyRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZERvY3VtZW50Ij54bWxTQVgyRW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnQiPnhtbFNBWDJFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFbmRFbGVtZW50TnMiPnhtbFNBWDJFbmRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVudGl0eURlY2wiPnhtbFNBWDJFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFeHRlcm5hbFN1YnNldCI+eG1sU0FYMkV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJHZXRDb2x1bW5OdW1iZXIiPnhtbFNBWDJHZXRDb2x1bW5OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldEVudGl0eSI+eG1sU0FYMkdldEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0TGluZU51bWJlciI+eG1sU0FYMkdldExpbmVOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSI+eG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0UHVibGljSWQiPnhtbFNBWDJHZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSI+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIiPnhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJbnRlcm5hbFN1YnNldCI+eG1sU0FYMkludGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJc1N0YW5kYWxvbmUiPnhtbFNBWDJJc1N0YW5kYWxvbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMk5vdGF0aW9uRGVjbCI+eG1sU0FYMk5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uIj54bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZWZlcmVuY2UiPnhtbFNBWDJSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlJlc29sdmVFbnRpdHkiPnhtbFNBWDJSZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTZXREb2N1bWVudExvY2F0b3IiPnhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RG9jdW1lbnQiPnhtbFNBWDJTdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnQiPnhtbFNBWDJTdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudE5zIj54bWxTQVgyU3RhcnRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCI+eG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYVmVyc2lvbiI+eG1sU0FYVmVyc2lvbjwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0iYzE0biIgaWQ9ImMxNG4iPk1vZHVsZSBjMTRuPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCNYTUxfQzE0Tl8xXzAiPlhNTF9DMTROXzFfMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCNYTUxfQzE0Tl8xXzEiPlhNTF9DMTROXzFfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCNYTUxfQzE0Tl9FWENMVVNJVkVfMV8wIj5YTUxfQzE0Tl9FWENMVVNJVkVfMV8wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrIj54bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0Tk1vZGUiPnhtbEMxNE5Nb2RlPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJjYXRhbG9nIiBpZD0iY2F0YWxvZyI+TW9kdWxlIGNhdGFsb2c8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBTE9HU19OQU1FU1BBQ0UiPlhNTF9DQVRBTE9HU19OQU1FU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFMT0dfUEkiPlhNTF9DQVRBTE9HX1BJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX0FMTE9XX0FMTCI+WE1MX0NBVEFfQUxMT1dfQUxMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX0FMTE9XX0RPQ1VNRU5UIj5YTUxfQ0FUQV9BTExPV19ET0NVTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQV9BTExPV19HTE9CQUwiPlhNTF9DQVRBX0FMTE9XX0dMT0JBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQV9BTExPV19OT05FIj5YTUxfQ0FUQV9BTExPV19OT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX1BSRUZFUl9OT05FIj5YTUxfQ0FUQV9QUkVGRVJfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQV9QUkVGRVJfUFVCTElDIj5YTUxfQ0FUQV9QUkVGRVJfUFVCTElDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX1BSRUZFUl9TWVNURU0iPlhNTF9DQVRBX1BSRUZFUl9TWVNURU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dBZGQiPnhtbEFDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nRHVtcCI+eG1sQUNhdGFsb2dEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVtb3ZlIj54bWxBQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmUiPnhtbEFDYXRhbG9nUmVzb2x2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPnhtbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iPnhtbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkiPnhtbEFDYXRhbG9nUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nIj54bWxDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZExvY2FsIj54bWxDYXRhbG9nQWRkTG9jYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FsbG93Ij54bWxDYXRhbG9nQWxsb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0NsZWFudXAiPnhtbENhdGFsb2dDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dDb252ZXJ0Ij54bWxDYXRhbG9nQ29udmVydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRHVtcCI+eG1sQ2F0YWxvZ0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0ZyZWVMb2NhbCI+eG1sQ2F0YWxvZ0ZyZWVMb2NhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0RGVmYXVsdHMiPnhtbENhdGFsb2dHZXREZWZhdWx0czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0UHVibGljIj54bWxDYXRhbG9nR2V0UHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXRTeXN0ZW0iPnhtbENhdGFsb2dHZXRTeXN0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0lzRW1wdHkiPnhtbENhdGFsb2dJc0VtcHR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dMb2NhbFJlc29sdmUiPnhtbENhdGFsb2dMb2NhbFJlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHJlZmVyIj54bWxDYXRhbG9nUHJlZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1JlbW92ZSI+eG1sQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZSI+eG1sQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPnhtbENhdGFsb2dSZXNvbHZlUHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlYnVnIj54bWxDYXRhbG9nU2V0RGVidWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENvbnZlcnRTR01MQ2F0YWxvZyI+eG1sQ29udmVydFNHTUxDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEZyZWVDYXRhbG9nIj54bWxGcmVlQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxJbml0aWFsaXplQ2F0YWxvZyI+eG1sSW5pdGlhbGl6ZUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZEFDYXRhbG9nIj54bWxMb2FkQUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyI+eG1sTG9hZENhdGFsb2dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRTR01MU3VwZXJDYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxOZXdDYXRhbG9nIj54bWxOZXdDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbFBhcnNlQ2F0YWxvZ0ZpbGUiPnhtbFBhcnNlQ2F0YWxvZ0ZpbGU8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9ImNodmFsaWQiIGlkPSJjaHZhbGlkIj5Nb2R1bGUgY2h2YWxpZDwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjX3htbENoTFJhbmdlIj5feG1sQ2hMUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjX3htbENoUmFuZ2VHcm91cCI+X3htbENoUmFuZ2VHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCNfeG1sQ2hTUmFuZ2UiPl94bWxDaFNSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaExSYW5nZSI+eG1sQ2hMUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hMUmFuZ2VQdHIiPnhtbENoTFJhbmdlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cCI+eG1sQ2hSYW5nZUdyb3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cFB0ciI+eG1sQ2hSYW5nZUdyb3VwUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoU1JhbmdlIj54bWxDaFNSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaFNSYW5nZVB0ciI+eG1sQ2hTUmFuZ2VQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hhckluUmFuZ2UiPnhtbENoYXJJblJhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmFzZUNoYXIiPnhtbElzQmFzZUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhckdyb3VwIj54bWxJc0Jhc2VDaGFyR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhclEiPnhtbElzQmFzZUNoYXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmFzZUNoYXJfY2giPnhtbElzQmFzZUNoYXJfY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFuayI+eG1sSXNCbGFuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rUSI+eG1sSXNCbGFua1E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFua19jaCI+eG1sSXNCbGFua19jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXIiPnhtbElzQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJHcm91cCI+eG1sSXNDaGFyR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyUSI+eG1sSXNDaGFyUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJfY2giPnhtbElzQ2hhcl9jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZyI+eG1sSXNDb21iaW5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDb21iaW5pbmdHcm91cCI+eG1sSXNDb21iaW5pbmdHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZ1EiPnhtbElzQ29tYmluaW5nUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0Ij54bWxJc0RpZ2l0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXRHcm91cCI+eG1sSXNEaWdpdEdyb3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXRRIj54bWxJc0RpZ2l0UTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0X2NoIj54bWxJc0RpZ2l0X2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXIiPnhtbElzRXh0ZW5kZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNFeHRlbmRlckdyb3VwIj54bWxJc0V4dGVuZGVyR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNFeHRlbmRlclEiPnhtbElzRXh0ZW5kZXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJfY2giPnhtbElzRXh0ZW5kZXJfY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpYyI+eG1sSXNJZGVvZ3JhcGhpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0lkZW9ncmFwaGljR3JvdXAiPnhtbElzSWRlb2dyYXBoaWNHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0lkZW9ncmFwaGljUSI+eG1sSXNJZGVvZ3JhcGhpY1E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXIiPnhtbElzUHViaWRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyUSI+eG1sSXNQdWJpZENoYXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyX2NoIj54bWxJc1B1YmlkQ2hhcl9jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhcl90YWIiPnhtbElzUHViaWRDaGFyX3RhYjwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0iZGVidWdYTUwiIGlkPSJkZWJ1Z1hNTCI+TW9kdWxlIGRlYnVnWE1MPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjX3htbFNoZWxsQ3R4dCI+X3htbFNoZWxsQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sQm9vbFRvVGV4dCI+eG1sQm9vbFRvVGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdDaGVja0RvY3VtZW50Ij54bWxEZWJ1Z0NoZWNrRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEF0dHIiPnhtbERlYnVnRHVtcEF0dHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEF0dHJMaXN0Ij54bWxEZWJ1Z0R1bXBBdHRyTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRFREIj54bWxEZWJ1Z0R1bXBEVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERvY3VtZW50Ij54bWxEZWJ1Z0R1bXBEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkIj54bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEVudGl0aWVzIj54bWxEZWJ1Z0R1bXBFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wTm9kZSI+eG1sRGVidWdEdW1wTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wTm9kZUxpc3QiPnhtbERlYnVnRHVtcE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBPbmVOb2RlIj54bWxEZWJ1Z0R1bXBPbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBTdHJpbmciPnhtbERlYnVnRHVtcFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sTHNDb3VudE5vZGUiPnhtbExzQ291bnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxMc09uZU5vZGUiPnhtbExzT25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEJhc2UiPnhtbFNoZWxsQmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDYXQiPnhtbFNoZWxsQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENtZCI+eG1sU2hlbGxDbWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dCI+eG1sU2hlbGxDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxEaXIiPnhtbFNoZWxsRGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbER1Ij54bWxTaGVsbER1PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbExpc3QiPnhtbFNoZWxsTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMb2FkIj54bWxTaGVsbExvYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHJpbnROb2RlIj54bWxTaGVsbFByaW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludFhQYXRoRXJyb3IiPnhtbFNoZWxsUHJpbnRYUGF0aEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQiPnhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFJlYWRsaW5lRnVuYyI+eG1sU2hlbGxSZWFkbGluZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsU2F2ZSI+eG1sU2hlbGxTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFZhbGlkYXRlIj54bWxTaGVsbFZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFdyaXRlIj54bWxTaGVsbFdyaXRlPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJkaWN0IiBpZD0iZGljdCI+TW9kdWxlIGRpY3Q8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3QiPnhtbERpY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENsZWFudXAiPnhtbERpY3RDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RDcmVhdGUiPnhtbERpY3RDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZVN1YiI+eG1sRGljdENyZWF0ZVN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0RXhpc3RzIj54bWxEaWN0RXhpc3RzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RGcmVlIj54bWxEaWN0RnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0TG9va3VwIj54bWxEaWN0TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RPd25zIj54bWxEaWN0T3duczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RRTG9va3VwIj54bWxEaWN0UUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UmVmZXJlbmNlIj54bWxEaWN0UmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RTaXplIj54bWxEaWN0U2l6ZTwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0iZW5jb2RpbmciIGlkPSJlbmNvZGluZyI+TW9kdWxlIGVuY29kaW5nPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfMjAyMl9KUCI+WE1MX0NIQVJfRU5DT0RJTkdfMjAyMl9KUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8xIj5YTUxfQ0hBUl9FTkNPRElOR184ODU5XzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMiI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzMiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV80Ij5YTUxfQ0hBUl9FTkNPRElOR184ODU5XzQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNSI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV81PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzYiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV83Ij5YTUxfQ0hBUl9FTkNPRElOR184ODU5Xzc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOCI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV84PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzkiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfQVNDSUkiPlhNTF9DSEFSX0VOQ09ESU5HX0FTQ0lJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19FQkNESUMiPlhNTF9DSEFSX0VOQ09ESU5HX0VCQ0RJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfRVJST1IiPlhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19FVUNfSlAiPlhNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSI+WE1MX0NIQVJfRU5DT0RJTkdfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfU0hJRlRfSklTIj5YTUxfQ0hBUl9FTkNPRElOR19TSElGVF9KSVM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VDUzIiPlhNTF9DSEFSX0VOQ09ESU5HX1VDUzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VDUzRCRSI+WE1MX0NIQVJfRU5DT0RJTkdfVUNTNEJFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19VQ1M0TEUiPlhNTF9DSEFSX0VOQ09ESU5HX1VDUzRMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzIxNDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VDUzRfMzQxMiI+WE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8zNDEyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19VVEYxNkJFIj5YTUxfQ0hBUl9FTkNPRElOR19VVEYxNkJFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19VVEYxNkxFIj5YTUxfQ0hBUl9FTkNPRElOR19VVEYxNkxFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19VVEY4Ij5YTUxfQ0hBUl9FTkNPRElOR19VVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNfeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+X3htbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEFkZEVuY29kaW5nQWxpYXMiPnhtbEFkZEVuY29kaW5nQWxpYXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNDbG9zZUZ1bmMiPnhtbENoYXJFbmNDbG9zZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNGaXJzdExpbmUiPnhtbENoYXJFbmNGaXJzdExpbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNJbkZ1bmMiPnhtbENoYXJFbmNJbkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyI+eG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGVsRW5jb2RpbmdBbGlhcyI+eG1sRGVsRW5jb2RpbmdBbGlhczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sR2V0RW5jb2RpbmdBbGlhcyI+eG1sR2V0RW5jb2RpbmdBbGlhczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9ImVudGl0aWVzIiBpZD0iZW50aXRpZXMiPk1vZHVsZSBlbnRpdGllczwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI1hNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFkiPlhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI1hNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWSI+WE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWSI+WE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI1hNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWSI+WE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWSI+WE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI1hNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSI+WE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNfeG1sRW50aXR5Ij5feG1sRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxBZGREb2NFbnRpdHkiPnhtbEFkZERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQWRkRHRkRW50aXR5Ij54bWxBZGREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiPnhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENvcHlFbnRpdGllc1RhYmxlIj54bWxDb3B5RW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQ3JlYXRlRW50aXRpZXNUYWJsZSI+eG1sQ3JlYXRlRW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRHVtcEVudGl0aWVzVGFibGUiPnhtbER1bXBFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxEdW1wRW50aXR5RGVjbCI+eG1sRHVtcEVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQiPnhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVTcGVjaWFsQ2hhcnMiPnhtbEVuY29kZVNwZWNpYWxDaGFyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW50aXRpZXNUYWJsZSI+eG1sRW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW50aXRpZXNUYWJsZVB0ciI+eG1sRW50aXRpZXNUYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW50aXR5VHlwZSI+eG1sRW50aXR5VHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRnJlZUVudGl0aWVzVGFibGUiPnhtbEZyZWVFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXREb2NFbnRpdHkiPnhtbEdldERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0RHRkRW50aXR5Ij54bWxHZXREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldFBhcmFtZXRlckVudGl0eSI+eG1sR2V0UGFyYW1ldGVyRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXRQcmVkZWZpbmVkRW50aXR5Ij54bWxHZXRQcmVkZWZpbmVkRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzIj54bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxOZXdFbnRpdHkiPnhtbE5ld0VudGl0eTwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0iZ2xvYmFscyIgaWQ9Imdsb2JhbHMiPk1vZHVsZSBnbG9iYWxzPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCNfeG1sR2xvYmFsU3RhdGUiPl94bWxHbG9iYWxTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCNkb2NiRGVmYXVsdFNBWEhhbmRsZXIiPmRvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCNodG1sRGVmYXVsdFNBWEhhbmRsZXIiPmh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCNvbGRYTUxXRGNvbXBhdGliaWxpdHkiPm9sZFhNTFdEY29tcGF0aWJpbGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxCdWZmZXJBbGxvY1NjaGVtZSI+eG1sQnVmZmVyQWxsb2NTY2hlbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sQ2xlYW51cEdsb2JhbHMiPnhtbENsZWFudXBHbG9iYWxzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbERlZmF1bHRCdWZmZXJTaXplIj54bWxEZWZhdWx0QnVmZmVyU2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZWZhdWx0U0FYSGFuZGxlciI+eG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sRGVmYXVsdFNBWExvY2F0b3IiPnhtbERlZmF1bHRTQVhMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlIj54bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUiPnhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxGcmVlIj54bWxGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbEdlbmVyaWNFcnJvciI+eG1sR2VuZXJpY0Vycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbEdlbmVyaWNFcnJvckNvbnRleHQiPnhtbEdlbmVyaWNFcnJvckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUiPnhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbEdsb2JhbFN0YXRlIj54bWxHbG9iYWxTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxHbG9iYWxTdGF0ZVB0ciI+eG1sR2xvYmFsU3RhdGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5kZW50VHJlZU91dHB1dCI+eG1sSW5kZW50VHJlZU91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxJbml0R2xvYmFscyI+eG1sSW5pdEdsb2JhbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlIj54bWxJbml0aWFsaXplR2xvYmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZSI+eG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxMYXN0RXJyb3IiPnhtbExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSI+eG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSI+eG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxNYWxsb2MiPnhtbE1hbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxNYWxsb2NBdG9taWMiPnhtbE1hbGxvY0F0b21pYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxNZW1TdHJkdXAiPnhtbE1lbVN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlckRlYnVnRW50aXRpZXMiPnhtbFBhcnNlckRlYnVnRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJWZXJzaW9uIj54bWxQYXJzZXJWZXJzaW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlIj54bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWFsbG9jIj54bWxSZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlIj54bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxTYXZlTm9FbXB0eVRhZ3MiPnhtbFNhdmVOb0VtcHR5VGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3IiPnhtbFN0cnVjdHVyZWRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0Ij54bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSI+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lIj54bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZSI+eG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmRGVyZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUiPnhtbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZkluZGVudFRyZWVPdXRwdXQiPnhtbFRockRlZkluZGVudFRyZWVPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzIj54bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MiPnhtbFRockRlZlNhdmVOb0VtcHR5VGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmVHJlZUluZGVudFN0cmluZyI+eG1sVGhyRGVmVHJlZUluZGVudFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUcmVlSW5kZW50U3RyaW5nIj54bWxUcmVlSW5kZW50U3RyaW5nPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJoYXNoIiBpZD0iaGFzaCI+TW9kdWxlIGhhc2g8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5Ij54bWxIYXNoQWRkRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MiI+eG1sSGFzaEFkZEVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkzIj54bWxIYXNoQWRkRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3BpZXIiPnhtbEhhc2hDb3BpZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENvcHkiPnhtbEhhc2hDb3B5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDcmVhdGUiPnhtbEhhc2hDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENyZWF0ZURpY3QiPnhtbEhhc2hDcmVhdGVEaWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hGcmVlIj54bWxIYXNoRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwIj54bWxIYXNoTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hMb29rdXAyIj54bWxIYXNoTG9va3VwMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMyI+eG1sSGFzaExvb2t1cDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFFMb29rdXAiPnhtbEhhc2hRTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMiI+eG1sSGFzaFFMb29rdXAyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMyI+eG1sSGFzaFFMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbiI+eG1sSGFzaFNjYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsIj54bWxIYXNoU2NhbkZ1bGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNpemUiPnhtbEhhc2hTaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZSI+eG1sSGFzaFRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeSI+eG1sSGFzaFVwZGF0ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MyI+eG1sSGFzaFVwZGF0ZUVudHJ5MzwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0ibGlzdCIgaWQ9Imxpc3QiPk1vZHVsZSBsaXN0PC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaW5rIj54bWxMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpbmtHZXREYXRhIj54bWxMaW5rR2V0RGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaW5rUHRyIj54bWxMaW5rUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3QiPnhtbExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEFwcGVuZCI+eG1sTGlzdEFwcGVuZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0Q2xlYXIiPnhtbExpc3RDbGVhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0Q29weSI+eG1sTGlzdENvcHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENyZWF0ZSI+eG1sTGlzdENyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RGF0YUNvbXBhcmUiPnhtbExpc3REYXRhQ29tcGFyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RGVhbGxvY2F0b3IiPnhtbExpc3REZWFsbG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RGVsZXRlIj54bWxMaXN0RGVsZXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3REdXAiPnhtbExpc3REdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEVtcHR5Ij54bWxMaXN0RW1wdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEVuZCI+eG1sTGlzdEVuZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RnJvbnQiPnhtbExpc3RGcm9udDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0SW5zZXJ0Ij54bWxMaXN0SW5zZXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RNZXJnZSI+eG1sTGlzdE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RQb3BCYWNrIj54bWxMaXN0UG9wQmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UG9wRnJvbnQiPnhtbExpc3RQb3BGcm9udDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdXNoQmFjayI+eG1sTGlzdFB1c2hCYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdXNoRnJvbnQiPnhtbExpc3RQdXNoRnJvbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUFsbCI+eG1sTGlzdFJlbW92ZUFsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmVtb3ZlRmlyc3QiPnhtbExpc3RSZW1vdmVGaXJzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmVtb3ZlTGFzdCI+eG1sTGlzdFJlbW92ZUxhc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJldmVyc2UiPnhtbExpc3RSZXZlcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlU2VhcmNoIj54bWxMaXN0UmV2ZXJzZVNlYXJjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVdhbGsiPnhtbExpc3RSZXZlcnNlV2FsazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0U2VhcmNoIj54bWxMaXN0U2VhcmNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RTaXplIj54bWxMaXN0U2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0U29ydCI+eG1sTGlzdFNvcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFdhbGsiPnhtbExpc3RXYWxrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9Im5hbm9mdHAiIGlkPSJuYW5vZnRwIj5Nb2R1bGUgbmFub2Z0cDwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwRGF0YUNhbGxiYWNrIj5mdHBEYXRhQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UiPnhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbGVhbnVwIj54bWxOYW5vRlRQQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2UiPnhtbE5hbm9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uIj54bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0Ij54bWxOYW5vRlRQQ29ubmVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ29ubmVjdFRvIj54bWxOYW5vRlRQQ29ubmVjdFRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDd2QiPnhtbE5hbm9GVFBDd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUERlbGUiPnhtbE5hbm9GVFBEZWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBGcmVlQ3R4dCI+eG1sTmFub0ZUUEZyZWVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXQiPnhtbE5hbm9GVFBHZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldENvbm5lY3Rpb24iPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRSZXNwb25zZSI+eG1sTmFub0ZUUEdldFJlc3BvbnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRTb2NrZXQiPnhtbE5hbm9GVFBHZXRTb2NrZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEluaXQiPnhtbE5hbm9GVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBMaXN0Ij54bWxOYW5vRlRQTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTmV3Q3R4dCI+eG1sTmFub0ZUUE5ld0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUE9wZW4iPnhtbE5hbm9GVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBRdWl0Ij54bWxOYW5vRlRQUXVpdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUmVhZCI+eG1sTmFub0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFNjYW5Qcm94eSI+eG1sTmFub0ZUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJuYW5vaHR0cCIgaWQ9Im5hbm9odHRwIj5Nb2R1bGUgbmFub2h0dHA8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEF1dGhIZWFkZXIiPnhtbE5hbm9IVFRQQXV0aEhlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDbGVhbnVwIj54bWxOYW5vSFRUUENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQ2xvc2UiPnhtbE5hbm9IVFRQQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQ29udGVudExlbmd0aCI+eG1sTmFub0hUVFBDb250ZW50TGVuZ3RoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEVuY29kaW5nIj54bWxOYW5vSFRUUEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIj54bWxOYW5vSFRUUEZldGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEluaXQiPnhtbE5hbm9IVFRQSW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2QiPnhtbE5hbm9IVFRQTWV0aG9kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1pbWVUeXBlIj54bWxOYW5vSFRUUE1pbWVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW4iPnhtbE5hbm9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuUmVkaXIiPnhtbE5hbm9IVFRQT3BlblJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFJlYWQiPnhtbE5hbm9IVFRQUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZWRpciI+eG1sTmFub0hUVFBSZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZXR1cm5Db2RlIj54bWxOYW5vSFRUUFJldHVybkNvZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2F2ZSI+eG1sTmFub0hUVFBTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InBhcnNlciIgaWQ9InBhcnNlciI+TW9kdWxlIHBhcnNlcjwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfQ09NUExFVEVfQVRUUlMiPlhNTF9DT01QTEVURV9BVFRSUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9ERUZBVUxUX1ZFUlNJT04iPlhNTF9ERUZBVUxUX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVURUNUX0lEUyI+WE1MX0RFVEVDVF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRSI+WE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0NEQVRBX1NFQ1RJT04iPlhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfQ09NTUVOVCI+WE1MX1BBUlNFUl9DT01NRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9DT05URU5UIj5YTUxfUEFSU0VSX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0RURCI+WE1MX1BBUlNFUl9EVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0VORF9UQUciPlhNTF9QQVJTRVJfRU5EX1RBRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfRU5USVRZX0RFQ0wiPlhNTF9QQVJTRVJfRU5USVRZX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0VOVElUWV9WQUxVRSI+WE1MX1BBUlNFUl9FTlRJVFlfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0VPRiI+WE1MX1BBUlNFUl9FT0Y8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0VQSUxPRyI+WE1MX1BBUlNFUl9FUElMT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0lHTk9SRSI+WE1MX1BBUlNFUl9JR05PUkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX01JU0MiPlhNTF9QQVJTRVJfTUlTQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfUEkiPlhNTF9QQVJTRVJfUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX1BST0xPRyI+WE1MX1BBUlNFUl9QUk9MT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMIj5YTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9TVEFSVCI+WE1MX1BBUlNFUl9TVEFSVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfU1RBUlRfVEFHIj5YTUxfUEFSU0VSX1NUQVJUX1RBRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfU1lTVEVNX0xJVEVSQUwiPlhNTF9QQVJTRVJfU1lTVEVNX0xJVEVSQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfQ09NUEFDVCI+WE1MX1BBUlNFX0NPTVBBQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfRE9NIj5YTUxfUEFSU0VfRE9NPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX0RUREFUVFIiPlhNTF9QQVJTRV9EVERBVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX0RURExPQUQiPlhNTF9QQVJTRV9EVERMT0FEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX0RURFZBTElEIj5YTUxfUEFSU0VfRFREVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfSFVHRSI+WE1MX1BBUlNFX0hVR0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9CQVNFRklYIj5YTUxfUEFSU0VfTk9CQVNFRklYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX05PQkxBTktTIj5YTUxfUEFSU0VfTk9CTEFOS1M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9DREFUQSI+WE1MX1BBUlNFX05PQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9ESUNUIj5YTUxfUEFSU0VfTk9ESUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX05PRU5UIj5YTUxfUEFSU0VfTk9FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9FUlJPUiI+WE1MX1BBUlNFX05PRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9ORVQiPlhNTF9QQVJTRV9OT05FVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT1dBUk5JTkciPlhNTF9QQVJTRV9OT1dBUk5JTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9YSU5DTk9ERSI+WE1MX1BBUlNFX05PWElOQ05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTlNDTEVBTiI+WE1MX1BBUlNFX05TQ0xFQU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfT0xEMTAiPlhNTF9QQVJTRV9PTEQxMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9PTERTQVgiPlhNTF9QQVJTRV9PTERTQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfUEVEQU5USUMiPlhNTF9QQVJTRV9QRURBTlRJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9QVVNIX0RPTSI+WE1MX1BBUlNFX1BVU0hfRE9NPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1BVU0hfU0FYIj5YTUxfUEFSU0VfUFVTSF9TQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfUkVBREVSIj5YTUxfUEFSU0VfUkVBREVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1JFQ09WRVIiPlhNTF9QQVJTRV9SRUNPVkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1NBWCI+WE1MX1BBUlNFX1NBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9TQVgxIj5YTUxfUEFSU0VfU0FYMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9VTktOT1dOIj5YTUxfUEFSU0VfVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9YSU5DTFVERSI+WE1MX1BBUlNFX1hJTkNMVURFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NBWDJfTUFHSUMiPlhNTF9TQVgyX01BR0lDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1NLSVBfSURTIj5YTUxfU0tJUF9JRFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9BVVRPTUFUQSI+WE1MX1dJVEhfQVVUT01BVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9DMTROIj5YTUxfV0lUSF9DMTROPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfQ0FUQUxPRyI+WE1MX1dJVEhfQ0FUQUxPRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0RFQlVHIj5YTUxfV0lUSF9ERUJVRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0RFQlVHX01FTSI+WE1MX1dJVEhfREVCVUdfTUVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfREVCVUdfUlVOIj5YTUxfV0lUSF9ERUJVR19SVU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9FWFBSIj5YTUxfV0lUSF9FWFBSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfRlRQIj5YTUxfV0lUSF9GVFA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9IVE1MIj5YTUxfV0lUSF9IVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfSFRUUCI+WE1MX1dJVEhfSFRUUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0lDT05WIj5YTUxfV0lUSF9JQ09OVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0lTTzg4NTlYIj5YTUxfV0lUSF9JU084ODU5WDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0xFR0FDWSI+WE1MX1dJVEhfTEVHQUNZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfTU9EVUxFUyI+WE1MX1dJVEhfTU9EVUxFUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX05PTkUiPlhNTF9XSVRIX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9PVVRQVVQiPlhNTF9XSVRIX09VVFBVVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1BBVFRFUk4iPlhNTF9XSVRIX1BBVFRFUk48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9QVVNIIj5YTUxfV0lUSF9QVVNIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfUkVBREVSIj5YTUxfV0lUSF9SRUFERVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9SRUdFWFAiPlhNTF9XSVRIX1JFR0VYUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1NBWDEiPlhNTF9XSVRIX1NBWDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9TQ0hFTUFTIj5YTUxfV0lUSF9TQ0hFTUFTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfU0NIRU1BVFJPTiI+WE1MX1dJVEhfU0NIRU1BVFJPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1RIUkVBRCI+WE1MX1dJVEhfVEhSRUFEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfVFJFRSI+WE1MX1dJVEhfVFJFRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1VOSUNPREUiPlhNTF9XSVRIX1VOSUNPREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9WQUxJRCI+WE1MX1dJVEhfVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9XUklURVIiPlhNTF9XSVRIX1dSSVRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1hJTkNMVURFIj5YTUxfV0lUSF9YSU5DTFVERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1hQQVRIIj5YTUxfV0lUSF9YUEFUSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1hQVFIiPlhNTF9XSVRIX1hQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9aTElCIj5YTUxfV0lUSF9aTElCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyTm9kZUluZm8iPl94bWxQYXJzZXJOb2RlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxQYXJzZXJOb2RlSW5mb1NlcSI+X3htbFBhcnNlck5vZGVJbmZvU2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFNBWEhhbmRsZXIiPl94bWxTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFNBWEhhbmRsZXJWMSI+X3htbFNBWEhhbmRsZXJWMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxTQVhMb2NhdG9yIj5feG1sU0FYTG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZURlY2xTQVhGdW5jIj5hdHRyaWJ1dGVEZWNsU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZVNBWEZ1bmMiPmF0dHJpYnV0ZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNjZGF0YUJsb2NrU0FYRnVuYyI+Y2RhdGFCbG9ja1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNjaGFyYWN0ZXJzU0FYRnVuYyI+Y2hhcmFjdGVyc1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNjb21tZW50U0FYRnVuYyI+Y29tbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbGVtZW50RGVjbFNBWEZ1bmMiPmVsZW1lbnREZWNsU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2VuZERvY3VtZW50U0FYRnVuYyI+ZW5kRG9jdW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW5kRWxlbWVudE5zU0FYMkZ1bmMiPmVuZEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW5kRWxlbWVudFNBWEZ1bmMiPmVuZEVsZW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNleHRlcm5hbFN1YnNldFNBWEZ1bmMiPmV4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2ZhdGFsRXJyb3JTQVhGdW5jIj5mYXRhbEVycm9yU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2dldEVudGl0eVNBWEZ1bmMiPmdldEVudGl0eVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIj5nZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jIj5oYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0ludGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2ludGVybmFsU3Vic2V0U0FYRnVuYyI+aW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaXNTdGFuZGFsb25lU0FYRnVuYyI+aXNTdGFuZGFsb25lU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI25vdGF0aW9uRGVjbFNBWEZ1bmMiPm5vdGF0aW9uRGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydERvY3VtZW50U0FYRnVuYyI+c3RhcnREb2N1bWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50U0FYRnVuYyI+c3RhcnRFbGVtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3VucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMiPnVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN3YXJuaW5nU0FYRnVuYyI+d2FybmluZ1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxCeXRlQ29uc3VtZWQiPnhtbEJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDbGVhck5vZGVJbmZvU2VxIj54bWxDbGVhck5vZGVJbmZvU2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYXJQYXJzZXJDdHh0Ij54bWxDbGVhclBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVEb2NQYXJzZXJDdHh0Ij54bWxDcmVhdGVEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlSU9QYXJzZXJDdHh0Ij54bWxDcmVhdGVJT1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZERvYyI+eG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZEZkIj54bWxDdHh0UmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRGaWxlIj54bWxDdHh0UmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZElPIj54bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRNZW1vcnkiPnhtbEN0eHRSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlc2V0Ij54bWxDdHh0UmVzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVzZXRQdXNoIj54bWxDdHh0UmVzZXRQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFVzZU9wdGlvbnMiPnhtbEN0eHRVc2VPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sRmVhdHVyZSI+eG1sRmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEZyZWVQYXJzZXJDdHh0Ij54bWxGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEZlYXR1cmUiPnhtbEdldEZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRGZWF0dXJlc0xpc3QiPnhtbEdldEZlYXR1cmVzTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJT1BhcnNlRFREIj54bWxJT1BhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdE5vZGVJbmZvU2VxIj54bWxJbml0Tm9kZUluZm9TZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0UGFyc2VyIj54bWxJbml0UGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdFBhcnNlckN0eHQiPnhtbEluaXRQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTGluZU51bWJlcnNEZWZhdWx0Ij54bWxMaW5lTnVtYmVyc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMb2FkRXh0ZXJuYWxFbnRpdHkiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iPnhtbE5ld0lPSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxOZXdQYXJzZXJDdHh0Ij54bWxOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDaHVuayI+eG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRFREIj54bWxQYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRG9jIj54bWxQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRG9jdW1lbnQiPnhtbFBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUVudGl0eSI+eG1sUGFyc2VFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dFBhcnNlZEVudCI+eG1sUGFyc2VFeHRQYXJzZWRFbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VGaWxlIj54bWxQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlTWVtb3J5Ij54bWxQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckFkZE5vZGVJbmZvIj54bWxQYXJzZXJBZGROb2RlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mbyI+eG1sUGFyc2VyRmluZE5vZGVJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiPnhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXREZWFsbG9jYXRlIj54bWxQYXJzZXJJbnB1dERlYWxsb2NhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dEdyb3ciPnhtbFBhcnNlcklucHV0R3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0UmVhZCI+eG1sUGFyc2VySW5wdXRSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRTdGF0ZSI+eG1sUGFyc2VySW5wdXRTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck1vZGUiPnhtbFBhcnNlck1vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mbyI+eG1sUGFyc2VyTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1B0ciI+eG1sUGFyc2VyTm9kZUluZm9QdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcSI+eG1sUGFyc2VyTm9kZUluZm9TZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciI+eG1sUGFyc2VyTm9kZUluZm9TZXFQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCI+eG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZERvYyI+eG1sUmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlYWRGZCI+eG1sUmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZpbGUiPnhtbFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZElPIj54bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWFkTWVtb3J5Ij54bWxSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJNZW1vcnkiPnhtbFJlY292ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMVB0ciI+eG1sU0FYSGFuZGxlclYxUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEVEQiPnhtbFNBWFBhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VFbnRpdHkiPnhtbFNBWFBhcnNlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYVXNlclBhcnNlRmlsZSI+eG1sU0FYVXNlclBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFVzZXJQYXJzZU1lbW9yeSI+eG1sU0FYVXNlclBhcnNlTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0RmVhdHVyZSI+eG1sU2V0RmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldHVwUGFyc2VyRm9yQnVmZmVyIj54bWxTZXR1cFBhcnNlckZvckJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFN0b3BQYXJzZXIiPnhtbFN0b3BQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0PC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJwYXJzZXJJbnRlcm5hbHMiIGlkPSJwYXJzZXJJbnRlcm5hbHMiPk1vZHVsZSBwYXJzZXJJbnRlcm5hbHM8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSU5QVVRfQ0hVTksiPklOUFVUX0NIVU5LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQVNDSUlfRElHSVQiPklTX0FTQ0lJX0RJR0lUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQVNDSUlfTEVUVEVSIj5JU19BU0NJSV9MRVRURVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CQVNFQ0hBUiI+SVNfQkFTRUNIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOSyI+SVNfQkxBTks8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOS19DSCI+SVNfQkxBTktfQ0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CWVRFX0NIQVIiPklTX0JZVEVfQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSX0NIIj5JU19DSEFSX0NIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ09NQklOSU5HIj5JU19DT01CSU5JTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DT01CSU5JTkdfQ0giPklTX0NPTUJJTklOR19DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0RJR0lUIj5JU19ESUdJVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0RJR0lUX0NIIj5JU19ESUdJVF9DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSX0NIIj5JU19FWFRFTkRFUl9DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0lERU9HUkFQSElDIj5JU19JREVPR1JBUEhJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0xFVFRFUiI+SVNfTEVUVEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfTEVUVEVSX0NIIj5JU19MRVRURVJfQ0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19QVUJJRENIQVIiPklTX1BVQklEQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX1BVQklEQ0hBUl9DSCI+SVNfUFVCSURDSEFSX0NIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjTU9WRVRPX0VORFRBRyI+TU9WRVRPX0VORFRBRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI01PVkVUT19TVEFSVFRBRyI+TU9WRVRPX1NUQVJUVEFHPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjU0tJUF9FT0wiPlNLSVBfRU9MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9OQU1FTEVOIj5YTUxfTUFYX05BTUVMRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfTUFYX1RFWFRfTEVOR1RIIj5YTUxfTUFYX1RFWFRfTEVOR1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfQk9USCI+WE1MX1NVQlNUSVRVVEVfQk9USDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9TVUJTVElUVVRFX05PTkUiPlhNTF9TVUJTVElUVVRFX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9QRVJFRiI+WE1MX1NVQlNUSVRVVEVfUEVSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaW5wdXRQb3AiPmlucHV0UG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaW5wdXRQdXNoIj5pbnB1dFB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNuYW1lUG9wIj5uYW1lUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbmFtZVB1c2giPm5hbWVQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVBvcCI+bm9kZVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25vZGVQdXNoIj5ub2RlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ29weUNoYXIiPnhtbENvcHlDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ29weUNoYXJNdWx0aUJ5dGUiPnhtbENvcHlDaGFyTXVsdGlCeXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij54bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQiPnhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVVUkxQYXJzZXJDdHh0Ij54bWxDcmVhdGVVUkxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEVyck1lbW9yeSI+eG1sRXJyTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRnJlZUlucHV0U3RyZWFtIj54bWxGcmVlSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxIYW5kbGVFbnRpdHkiPnhtbEhhbmRsZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbElzTGV0dGVyIj54bWxJc0xldHRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTlNEZWYiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3RW50aXR5SW5wdXRTdHJlYW0iPnhtbE5ld0VudGl0eUlucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3SW5wdXRGcm9tRmlsZSI+eG1sTmV3SW5wdXRGcm9tRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5ld0lucHV0U3RyZWFtIj54bWxOZXdJbnB1dFN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5ld1N0cmluZ0lucHV0U3RyZWFtIj54bWxOZXdTdHJpbmdJbnB1dFN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5leHRDaGFyIj54bWxOZXh0Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0VmFsdWUiPnhtbFBhcnNlQXR0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsIj54bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIj54bWxQYXJzZUF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNEU2VjdCI+eG1sUGFyc2VDRFNlY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJEYXRhIj54bWxQYXJzZUNoYXJEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyUmVmIj54bWxQYXJzZUNoYXJSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ29udGVudCI+eG1sUGFyc2VDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnQiPnhtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5jTmFtZSI+eG1sUGFyc2VFbmNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmNvZGluZ0RlY2wiPnhtbFBhcnNlRW5jb2RpbmdEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmRUYWciPnhtbFBhcnNlRW5kVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVZhbHVlIj54bWxQYXJzZUVudGl0eVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGVkVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRpb25UeXBlIj54bWxQYXJzZUVudW1lcmF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbFN1YnNldCI+eG1sUGFyc2VFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNaXNjIj54bWxQYXJzZU1pc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWUiPnhtbFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm10b2tlbiI+eG1sUGFyc2VObXRva2VuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvbkRlY2wiPnhtbFBhcnNlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEkiPnhtbFBhcnNlUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJVGFyZ2V0Ij54bWxQYXJzZVBJVGFyZ2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQdWJpZExpdGVyYWwiPnhtbFBhcnNlUHViaWRMaXRlcmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VRdW90ZWRTdHJpbmciPnhtbFBhcnNlUXVvdGVkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VSZWZlcmVuY2UiPnhtbFBhcnNlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3lzdGVtTGl0ZXJhbCI+eG1sUGFyc2VTeXN0ZW1MaXRlcmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VUZXh0RGVjbCI+eG1sUGFyc2VUZXh0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbkluZm8iPnhtbFBhcnNlVmVyc2lvbkluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVZlcnNpb25OdW0iPnhtbFBhcnNlVmVyc2lvbk51bTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlWE1MRGVjbCI+eG1sUGFyc2VYTUxEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJJbnB1dFNocmluayI+eG1sUGFyc2VySW5wdXRTaHJpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJNYXhEZXB0aCI+eG1sUGFyc2VyTWF4RGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQb3BJbnB1dCI+eG1sUG9wSW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQdXNoSW5wdXQiPnhtbFB1c2hJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMiPnhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTa2lwQmxhbmtDaGFycyI+eG1sU2tpcEJsYW5rQ2hhcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nQ29tbWVudCI+eG1sU3RyaW5nQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0N1cnJlbnRDaGFyIj54bWxTdHJpbmdDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ1RleHQiPnhtbFN0cmluZ1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdUZXh0Tm9lbmMiPnhtbFN0cmluZ1RleHROb2VuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaEVuY29kaW5nIj54bWxTd2l0Y2hFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaElucHV0RW5jb2RpbmciPnhtbFN3aXRjaElucHV0RW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hUb0VuY29kaW5nIj54bWxTd2l0Y2hUb0VuY29kaW5nPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJwYXR0ZXJuIiBpZD0icGF0dGVybiI+TW9kdWxlIHBhdHRlcm48L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI1hNTF9QQVRURVJOX0RFRkFVTFQiPlhNTF9QQVRURVJOX0RFRkFVTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjWE1MX1BBVFRFUk5fWFBBVEgiPlhNTF9QQVRURVJOX1hQQVRIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI1hNTF9QQVRURVJOX1hTRklFTEQiPlhNTF9QQVRURVJOX1hTRklFTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjWE1MX1BBVFRFUk5fWFNTRUwiPlhNTF9QQVRURVJOX1hTU0VMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbEZyZWVQYXR0ZXJuIj54bWxGcmVlUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxGcmVlUGF0dGVybkxpc3QiPnhtbEZyZWVQYXR0ZXJuTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxGcmVlU3RyZWFtQ3R4dCI+eG1sRnJlZVN0cmVhbUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybiI+eG1sUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuRmxhZ3MiPnhtbFBhdHRlcm5GbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuRnJvbVJvb3QiPnhtbFBhdHRlcm5Gcm9tUm9vdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCI+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1hdGNoIj54bWxQYXR0ZXJuTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1heERlcHRoIj54bWxQYXR0ZXJuTWF4RGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1pbkRlcHRoIj54bWxQYXR0ZXJuTWluRGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuU3RyZWFtYWJsZSI+eG1sUGF0dGVyblN0cmVhbWFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHQiPnhtbFN0cmVhbUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dFB0ciI+eG1sU3RyZWFtQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1Qb3AiPnhtbFN0cmVhbVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InJlbGF4bmciIGlkPSJyZWxheG5nIj5Nb2R1bGUgcmVsYXhuZzwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdQX0NSTkciPlhNTF9SRUxBWE5HUF9DUk5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HUF9GUkVFX0RPQyI+WE1MX1JFTEFYTkdQX0ZSRUVfRE9DPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HUF9OT05FIj5YTUxfUkVMQVhOR1BfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUkVYVFJBTlMiPlhNTF9SRUxBWE5HX0VSUl9BVFRSRVhUUkFOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUk5BTUUiPlhNTF9SRUxBWE5HX0VSUl9BVFRSTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUk5PTlMiPlhNTF9SRUxBWE5HX0VSUl9BVFRSTk9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUlZBTElEIj5YTUxfUkVMQVhOR19FUlJfQVRUUlZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9BVFRSV1JPTkdOUyI+WE1MX1JFTEFYTkdfRVJSX0FUVFJXUk9OR05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9DT05URU5UVkFMSUQiPlhNTF9SRUxBWE5HX0VSUl9DT05URU5UVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0RBVEFFTEVNIj5YTUxfUkVMQVhOR19FUlJfREFUQUVMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0RBVEFUWVBFIj5YTUxfUkVMQVhOR19FUlJfREFUQVRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0RVUElEIj5YTUxfUkVMQVhOR19FUlJfRFVQSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TIj5YTUxfUkVMQVhOR19FUlJfRUxFTUVYVFJBTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1OQU1FIj5YTUxfUkVMQVhOR19FUlJfRUxFTU5BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1OT05TIj5YTUxfUkVMQVhOR19FUlJfRUxFTU5PTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWSI+WE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HIj5YTUxfUkVMQVhOR19FUlJfRUxFTVdST05HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkdOUyI+WE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQiPlhNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQSI+WE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfSU5URVJFWFRSQSI+WE1MX1JFTEFYTkdfRVJSX0lOVEVSRVhUUkE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVEVSTkFMIj5YTUxfUkVMQVhOR19FUlJfSU5URVJOQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVEVSTk9EQVRBIj5YTUxfUkVMQVhOR19FUlJfSU5URVJOT0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVEVSU0VRIj5YTUxfUkVMQVhOR19FUlJfSU5URVJTRVE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVkFMSURBVFRSIj5YTUxfUkVMQVhOR19FUlJfSU5WQUxJREFUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xBQ0tEQVRBIj5YTUxfUkVMQVhOR19FUlJfTEFDS0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xJU1QiPlhNTF9SRUxBWE5HX0VSUl9MSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9MSVNURUxFTSI+WE1MX1JFTEFYTkdfRVJSX0xJU1RFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9MSVNURU1QVFkiPlhNTF9SRUxBWE5HX0VSUl9MSVNURU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQSI+WE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTUVNT1JZIj5YTUxfUkVMQVhOR19FUlJfTUVNT1JZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9OT0RFRklORSI+WE1MX1JFTEFYTkdfRVJSX05PREVGSU5FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9OT0VMRU0iPlhNTF9SRUxBWE5HX0VSUl9OT0VMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX05PR1JBTU1BUiI+WE1MX1JFTEFYTkdfRVJSX05PR1JBTU1BUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTk9TVEFURSI+WE1MX1JFTEFYTkdfRVJSX05PU1RBVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX05PVEVMRU0iPlhNTF9SRUxBWE5HX0VSUl9OT1RFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9URVhUV1JPTkciPlhNTF9SRUxBWE5HX0VSUl9URVhUV1JPTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX1RZUEUiPlhNTF9SRUxBWE5HX0VSUl9UWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9UWVBFQ01QIj5YTUxfUkVMQVhOR19FUlJfVFlQRUNNUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfVFlQRVZBTCI+WE1MX1JFTEFYTkdfRVJSX1RZUEVWQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX1ZBTEVMRU0iPlhNTF9SRUxBWE5HX0VSUl9WQUxFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9WQUxVRSI+WE1MX1JFTEFYTkdfRVJSX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX09LIj5YTUxfUkVMQVhOR19PSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HIj54bWxSZWxheE5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdDbGVhbnVwVHlwZXMiPnhtbFJlbGF4TkdDbGVhbnVwVHlwZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0R1bXAiPnhtbFJlbGF4TkdEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdEdW1wVHJlZSI+eG1sUmVsYXhOR0R1bXBUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdGcmVlIj54bWxSZWxheE5HRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQiPnhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCI+eG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR0dldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdHZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HSW5pdFR5cGVzIj54bWxSZWxheE5HSW5pdFR5cGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0Ij54bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdWYWxpZEN0eHQiPnhtbFJlbGF4TkdOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlIj54bWxSZWxheE5HUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHQiPnhtbFJlbGF4TkdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyRmxhZyI+eG1sUmVsYXhOR1BhcnNlckZsYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzIj54bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHQiPnhtbFJlbGF4TkdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRFcnIiPnhtbFJlbGF4TkdWYWxpZEVycjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVEb2MiPnhtbFJlbGF4TkdWYWxpZGF0ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4UGFyc2VyU2V0RmxhZyI+eG1sUmVsYXhQYXJzZXJTZXRGbGFnPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJzY2hlbWFzSW50ZXJuYWxzIiBpZD0ic2NoZW1hc0ludGVybmFscyI+TW9kdWxlIHNjaGVtYXNJbnRlcm5hbHM8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYIj5YTUxfU0NIRU1BU19BTllBVFRSX0xBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSI+WE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllUWVBFIj5YTUxfU0NIRU1BU19BTllUWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWVVSSSI+WE1MX1NDSEVNQVNfQU5ZVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9MQVgiPlhNTF9TQ0hFTUFTX0FOWV9MQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWV9TS0lQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9TVFJJQ1QiPlhNTF9TQ0hFTUFTX0FOWV9TVFJJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfRklYRUQiPlhNTF9TQ0hFTUFTX0FUVFJfRklYRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9OU0RFRkFVTFQiPlhNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlkiPlhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9TVUJTVElUVVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQk9PTEVBTiI+WE1MX1NDSEVNQVNfQk9PTEVBTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CWVRFIj5YTUxfU0NIRU1BU19CWVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0RBVEUiPlhNTF9TQ0hFTUFTX0RBVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfREFURVRJTUUiPlhNTF9TQ0hFTUFTX0RBVEVUSU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0RFQ0lNQUwiPlhNTF9TQ0hFTUFTX0RFQ0lNQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRE9VQkxFIj5YTUxfU0NIRU1BU19ET1VCTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRFVSQVRJT04iPlhNTF9TQ0hFTUFTX0RVUkFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1QiPlhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQiPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSIj5YTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJWEVEIj5YTUxfU0NIRU1BU19FTEVNX0ZJWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMIj5YTUxfU0NIRU1BU19FTEVNX0dMT0JBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQiPlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEUiPlhNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQiPlhNTF9TQ0hFTUFTX0VMRU1fTlNERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fUkVGIj5YTUxfU0NIRU1BU19FTEVNX1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQiPlhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMIj5YTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VOVElUSUVTIj5YTUxfU0NIRU1BU19FTlRJVElFUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTlRJVFkiPlhNTF9TQ0hFTUFTX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUiPlhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0UiPlhNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRkFDRVRfVU5LTk9XTiI+WE1MX1NDSEVNQVNfRkFDRVRfVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZMT0FUIj5YTUxfU0NIRU1BU19GTE9BVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HREFZIj5YTUxfU0NIRU1BU19HREFZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0dNT05USCI+WE1MX1NDSEVNQVNfR01PTlRIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0dNT05USERBWSI+WE1MX1NDSEVNQVNfR01PTlRIREFZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0dZRUFSIj5YTUxfU0NIRU1BU19HWUVBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HWUVBUk1PTlRIIj5YTUxfU0NIRU1BU19HWUVBUk1PTlRIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0hFWEJJTkFSWSI+WE1MX1NDSEVNQVNfSEVYQklOQVJZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0lEIj5YTUxfU0NIRU1BU19JRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JRFJFRiI+WE1MX1NDSEVNQVNfSURSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfSURSRUZTIj5YTUxfU0NIRU1BU19JRFJFRlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlMiPlhNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0lOVCI+WE1MX1NDSEVNQVNfSU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0lOVEVHRVIiPlhNTF9TQ0hFTUFTX0lOVEVHRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTEFOR1VBR0UiPlhNTF9TQ0hFTUFTX0xBTkdVQUdFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0xPTkciPlhNTF9TQ0hFTUFTX0xPTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTkFNRSI+WE1MX1NDSEVNQVNfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OQ05BTUUiPlhNTF9TQ0hFTUFTX05DTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OSU5URUdFUiI+WE1MX1NDSEVNQVNfTklOVEVHRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTk1UT0tFTiI+WE1MX1NDSEVNQVNfTk1UT0tFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OTVRPS0VOUyI+WE1MX1NDSEVNQVNfTk1UT0tFTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTk5JTlRFR0VSIj5YTUxfU0NIRU1BU19OTklOVEVHRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTk9STVNUUklORyI+WE1MX1NDSEVNQVNfTk9STVNUUklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OT1RBVElPTiI+WE1MX1NDSEVNQVNfTk9UQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTlBJTlRFR0VSIj5YTUxfU0NIRU1BU19OUElOVEVHRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfUElOVEVHRVIiPlhNTF9TQ0hFTUFTX1BJTlRFR0VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1FOQU1FIj5YTUxfU0NIRU1BU19RTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19RVUFMSUZfQVRUUiI+WE1MX1NDSEVNQVNfUVVBTElGX0FUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0iPlhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1NIT1JUIj5YTUxfU0NIRU1BU19TSE9SVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19TVFJJTkciPlhNTF9TQ0hFTUFTX1NUUklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19USU1FIj5YTUxfU0NIRU1BU19USU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RPS0VOIj5YTUxfU0NIRU1BU19UT0tFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUIj5YTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVCI+WE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkUiPlhNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUiPlhNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfREVGQVVMVCI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1QiPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04iPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIj5YTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwiPlhNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUyI+WE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfSU5WQUxJRCI+WE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQiPlhNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTUlYRUQiPlhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQiPlhNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCI+WE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfUkVERUZJTkVEIj5YTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUMiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1QiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTiI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFIj5YTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19VQllURSI+WE1MX1NDSEVNQVNfVUJZVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVUlOVCI+WE1MX1NDSEVNQVNfVUlOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19VTE9ORyI+WE1MX1NDSEVNQVNfVUxPTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVU5LTk9XTiI+WE1MX1NDSEVNQVNfVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19VU0hPUlQiPlhNTF9TQ0hFTUFTX1VTSE9SVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURSI+WE1MX1NDSEVNQVNfV0lMRENBUkRfQ09NUExFVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9DT05URU5UX0FOWSI+WE1MX1NDSEVNQV9DT05URU5UX0FOWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUMiPlhNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFMiPlhNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkiPlhNTF9TQ0hFTUFfQ09OVEVOVF9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQiPlhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRURfT1JfRUxFTUVOVFMiPlhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRF9PUl9FTEVNRU5UUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFIj5YTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9VTktOT1dOIj5YTUxfU0NIRU1BX0NPTlRFTlRfVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQiI+WE1MX1NDSEVNQV9FWFRSQV9BVFRSX1VTRV9QUk9ISUI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRiI+WE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OIj5YTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFMiPlhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEgiPlhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFIj5YTUxfU0NIRU1BX0ZBQ0VUX01BWEVYQ0xVU0lWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRSI+WE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEgiPlhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfTUlORVhDTFVTSVZFIj5YTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRSI+WE1MX1NDSEVNQV9GQUNFVF9NSU5JTkNMVVNJVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEgiPlhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTiI+WE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFMiPlhNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFIj5YTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0FMTCI+WE1MX1NDSEVNQV9UWVBFX0FMTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQU5ZIj5YTUxfU0NIRU1BX1RZUEVfQU5ZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFIj5YTUxfU0NIRU1BX1RZUEVfQU5ZX0FUVFJJQlVURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUCI+WE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQkFTSUMiPlhNTF9TQ0hFTUFfVFlQRV9CQVNJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFIj5YTUxfU0NIRU1BX1RZUEVfQ0hPSUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9DT01QTEVYIj5YTUxfU0NIRU1BX1RZUEVfQ09NUExFWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UIj5YTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UIj5YTUxfU0NIRU1BX1RZUEVfRUxFTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfRVhURU5TSU9OIj5YTUxfU0NIRU1BX1RZUEVfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9GQUNFVCI+WE1MX1NDSEVNQV9UWVBFX0ZBQ0VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9HUk9VUCI+WE1MX1NDSEVNQV9UWVBFX0dST1VQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9JRENfS0VZIj5YTUxfU0NIRU1BX1RZUEVfSURDX0tFWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRiI+WE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0lEQ19VTklRVUUiPlhNTF9TQ0hFTUFfVFlQRV9JRENfVU5JUVVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9MSVNUIj5YTUxfU0NIRU1BX1RZUEVfTElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfTk9UQVRJT04iPlhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfUEFSVElDTEUiPlhNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UiPlhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfU0lNUExFIj5YTUxfU0NIRU1BX1RZUEVfU0lNUExFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVCI+WE1MX1NDSEVNQV9UWVBFX1NJTVBMRV9DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9VTklPTiI+WE1MX1NDSEVNQV9UWVBFX1VOSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9VUiI+WE1MX1NDSEVNQV9UWVBFX1VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWEiPl94bWxTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUFubm90Ij5feG1sU2NoZW1hQW5ub3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUF0dHJpYnV0ZSI+X3htbFNjaGVtYUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hQXR0cmlidXRlR3JvdXAiPl94bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hQXR0cmlidXRlTGluayI+X3htbFNjaGVtYUF0dHJpYnV0ZUxpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUVsZW1lbnQiPl94bWxTY2hlbWFFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFGYWNldCI+X3htbFNjaGVtYUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFGYWNldExpbmsiPl94bWxTY2hlbWFGYWNldExpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYU5vdGF0aW9uIj5feG1sU2NoZW1hTm90YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYVR5cGUiPl94bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlTGluayI+X3htbFNjaGVtYVR5cGVMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFXaWxkY2FyZCI+X3htbFNjaGVtYVdpbGRjYXJkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFXaWxkY2FyZE5zIj5feG1sU2NoZW1hV2lsZGNhcmROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdCI+eG1sU2NoZW1hQW5ub3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQW5ub3RQdHIiPnhtbFNjaGVtYUFubm90UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZSI+eG1sU2NoZW1hQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIj54bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciI+eG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlTGluayI+eG1sU2NoZW1hQXR0cmlidXRlTGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyIj54bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZVB0ciI+eG1sU2NoZW1hQXR0cmlidXRlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUNvbnRlbnRUeXBlIj54bWxTY2hlbWFDb250ZW50VHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFFbGVtZW50Ij54bWxTY2hlbWFFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUVsZW1lbnRQdHIiPnhtbFNjaGVtYUVsZW1lbnRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXQiPnhtbFNjaGVtYUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0TGluayI+eG1sU2NoZW1hRmFjZXRMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0TGlua1B0ciI+eG1sU2NoZW1hRmFjZXRMaW5rUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGcmVlVHlwZSI+eG1sU2NoZW1hRnJlZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRnJlZVdpbGRjYXJkIj54bWxTY2hlbWFGcmVlV2lsZGNhcmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hTm90YXRpb24iPnhtbFNjaGVtYU5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYU5vdGF0aW9uUHRyIj54bWxTY2hlbWFOb3RhdGlvblB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlIj54bWxTY2hlbWFUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVMaW5rIj54bWxTY2hlbWFUeXBlTGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlTGlua1B0ciI+eG1sU2NoZW1hVHlwZUxpbmtQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsIj54bWxTY2hlbWFWYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZCI+eG1sU2NoZW1hV2lsZGNhcmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmROcyI+eG1sU2NoZW1hV2lsZGNhcmROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIj54bWxTY2hlbWFXaWxkY2FyZE5zUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkUHRyIj54bWxTY2hlbWFXaWxkY2FyZFB0cjwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0ic2NoZW1hdHJvbiIgaWQ9InNjaGVtYXRyb24iPk1vZHVsZSBzY2hlbWF0cm9uPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCNYTUxfU0NIRU1BVFJPTl9PVVRfQlVGRkVSIj5YTUxfU0NIRU1BVFJPTl9PVVRfQlVGRkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9FUlJPUiI+WE1MX1NDSEVNQVRST05fT1VUX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9GSUxFIj5YTUxfU0NIRU1BVFJPTl9PVVRfRklMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCNYTUxfU0NIRU1BVFJPTl9PVVRfSU8iPlhNTF9TQ0hFTUFUUk9OX09VVF9JTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCNYTUxfU0NIRU1BVFJPTl9PVVRfUVVJRVQiPlhNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCNYTUxfU0NIRU1BVFJPTl9PVVRfVEVYVCI+WE1MX1NDSEVNQVRST05fT1VUX1RFWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjWE1MX1NDSEVNQVRST05fT1VUX1hNTCI+WE1MX1NDSEVNQVRST05fT1VUX1hNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uIj54bWxTY2hlbWF0cm9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25GcmVlIj54bWxTY2hlbWF0cm9uRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2UiPnhtbFNjaGVtYXRyb25QYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucyI+eG1sU2NoZW1hdHJvblZhbGlkT3B0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MiPnhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InRocmVhZHMiIGlkPSJ0aHJlYWRzIj5Nb2R1bGUgdGhyZWFkczwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbERsbE1haW4iPnhtbERsbE1haW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sRnJlZU11dGV4Ij54bWxGcmVlTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sRnJlZVJNdXRleCI+eG1sRnJlZVJNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxHZXRHbG9iYWxTdGF0ZSI+eG1sR2V0R2xvYmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sR2V0VGhyZWFkSWQiPnhtbEdldFRocmVhZElkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEluaXRUaHJlYWRzIj54bWxJbml0VGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxJc01haW5UaHJlYWQiPnhtbElzTWFpblRocmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxMb2NrTGlicmFyeSI+eG1sTG9ja0xpYnJhcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXgiPnhtbE11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE11dGV4TG9jayI+eG1sTXV0ZXhMb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE11dGV4UHRyIj54bWxNdXRleFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFVubG9jayI+eG1sTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3TXV0ZXgiPnhtbE5ld011dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld1JNdXRleCI+eG1sTmV3Uk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleCI+eG1sUk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleExvY2siPnhtbFJNdXRleExvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4UHRyIj54bWxSTXV0ZXhQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4VW5sb2NrIj54bWxSTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sVW5sb2NrTGlicmFyeSI+eG1sVW5sb2NrTGlicmFyeTwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0idHJlZSIgaWQ9InRyZWUiPk1vZHVsZSB0cmVlPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNCQVNFX0JVRkZFUl9TSVpFIj5CQVNFX0JVRkZFUl9TSVpFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfQ0RBVEEiPlhNTF9BVFRSSUJVVEVfQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9ERUNMIj5YTUxfQVRUUklCVVRFX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9FTlRJVElFUyI+WE1MX0FUVFJJQlVURV9FTlRJVElFUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0VOVElUWSI+WE1MX0FUVFJJQlVURV9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTiI+WE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0ZJWEVEIj5YTUxfQVRUUklCVVRFX0ZJWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfSUQiPlhNTF9BVFRSSUJVVEVfSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9JRFJFRiI+WE1MX0FUVFJJQlVURV9JRFJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0lEUkVGUyI+WE1MX0FUVFJJQlVURV9JRFJFRlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9JTVBMSUVEIj5YTUxfQVRUUklCVVRFX0lNUExJRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9OTVRPS0VOIj5YTUxfQVRUUklCVVRFX05NVE9LRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9OTVRPS0VOUyI+WE1MX0FUVFJJQlVURV9OTVRPS0VOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX05PREUiPlhNTF9BVFRSSUJVVEVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX05PTkUiPlhNTF9BVFRSSUJVVEVfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX05PVEFUSU9OIj5YTUxfQVRUUklCVVRFX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfUkVRVUlSRUQiPlhNTF9BVFRSSUJVVEVfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVCI+WE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0VYQUNUIj5YTUxfQlVGRkVSX0FMTE9DX0VYQUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFIj5YTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0lPIj5YTUxfQlVGRkVSX0FMTE9DX0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9DREFUQV9TRUNUSU9OX05PREUiPlhNTF9DREFUQV9TRUNUSU9OX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0NPTU1FTlRfTk9ERSI+WE1MX0NPTU1FTlRfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRE9DQl9ET0NVTUVOVF9OT0RFIj5YTUxfRE9DQl9ET0NVTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NVTUVOVF9GUkFHX05PREUiPlhNTF9ET0NVTUVOVF9GUkFHX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ1VNRU5UX05PREUiPlhNTF9ET0NVTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NVTUVOVF9UWVBFX05PREUiPlhNTF9ET0NVTUVOVF9UWVBFX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ19EVERWQUxJRCI+WE1MX0RPQ19EVERWQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRE9DX0hUTUwiPlhNTF9ET0NfSFRNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRE9DX0lOVEVSTkFMIj5YTUxfRE9DX0lOVEVSTkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NfTlNWQUxJRCI+WE1MX0RPQ19OU1ZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NfT0xEMTAiPlhNTF9ET0NfT0xEMTA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ19VU0VSQlVJTFQiPlhNTF9ET0NfVVNFUkJVSUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NfV0VMTEZPUk1FRCI+WE1MX0RPQ19XRUxMRk9STUVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NfWElOQ0xVREUiPlhNTF9ET0NfWElOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RURF9OT0RFIj5YTUxfRFREX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UIj5YTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUIj5YTUxfRUxFTUVOVF9DT05URU5UX01VTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFIj5YTUxfRUxFTUVOVF9DT05URU5UX09OQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQiPlhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX0NPTlRFTlRfT1IiPlhNTF9FTEVNRU5UX0NPTlRFTlRfT1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEiPlhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX0NPTlRFTlRfUExVUyI+WE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX0NPTlRFTlRfU0VRIj5YTUxfRUxFTUVOVF9DT05URU5UX1NFUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9ERUNMIj5YTUxfRUxFTUVOVF9ERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX05PREUiPlhNTF9FTEVNRU5UX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfVFlQRV9BTlkiPlhNTF9FTEVNRU5UX1RZUEVfQU5ZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVCI+WE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX1RZUEVfRU1QVFkiPlhNTF9FTEVNRU5UX1RZUEVfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfVFlQRV9NSVhFRCI+WE1MX0VMRU1FTlRfVFlQRV9NSVhFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9UWVBFX1VOREVGSU5FRCI+WE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VOVElUWV9ERUNMIj5YTUxfRU5USVRZX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VOVElUWV9OT0RFIj5YTUxfRU5USVRZX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VOVElUWV9SRUZfTk9ERSI+WE1MX0VOVElUWV9SRUZfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfR0VUX0NPTlRFTlQiPlhNTF9HRVRfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfR0VUX0xJTkUiPlhNTF9HRVRfTElORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfSFRNTF9ET0NVTUVOVF9OT0RFIj5YTUxfSFRNTF9ET0NVTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9MT0NBTF9OQU1FU1BBQ0UiPlhNTF9MT0NBTF9OQU1FU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX05BTUVTUEFDRV9ERUNMIj5YTUxfTkFNRVNQQUNFX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX05PVEFUSU9OX05PREUiPlhNTF9OT1RBVElPTl9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9QSV9OT0RFIj5YTUxfUElfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfVEVYVF9OT0RFIj5YTUxfVEVYVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9YSU5DTFVERV9FTkQiPlhNTF9YSU5DTFVERV9FTkQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hJTkNMVURFX1NUQVJUIj5YTUxfWElOQ0xVREVfU1RBUlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hNTF9JRCI+WE1MX1hNTF9JRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfWE1MX05BTUVTUEFDRSI+WE1MX1hNTF9OQU1FU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEF0dHIiPl94bWxBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxBdHRyaWJ1dGUiPl94bWxBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEJ1ZmZlciI+X3htbEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRE9NV3JhcEN0eHQiPl94bWxET01XcmFwQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRG9jIj5feG1sRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxEdGQiPl94bWxEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEVsZW1lbnQiPl94bWxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbGVtZW50Q29udGVudCI+X3htbEVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbnVtZXJhdGlvbiI+X3htbEVudW1lcmF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxJRCI+X3htbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb2RlIj5feG1sTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sTm90YXRpb24iPl94bWxOb3RhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sTnMiPl94bWxOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sUmVmIj5feG1sUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkIj54bWxBZGRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRDaGlsZExpc3QiPnhtbEFkZENoaWxkTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGROZXh0U2libGluZyI+eG1sQWRkTmV4dFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkUHJldlNpYmxpbmciPnhtbEFkZFByZXZTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFNpYmxpbmciPnhtbEFkZFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQXR0ciI+eG1sQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEF0dHJTZXJpYWxpemVUeHRDb250ZW50Ij54bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGUiPnhtbEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVEZWZhdWx0Ij54bWxBdHRyaWJ1dGVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVR5cGUiPnhtbEF0dHJpYnV0ZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyIj54bWxCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkIj54bWxCdWZmZXJBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkSGVhZCI+eG1sQnVmZmVyQWRkSGVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNDYXQiPnhtbEJ1ZmZlckNDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ2F0Ij54bWxCdWZmZXJDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ29udGVudCI+eG1sQnVmZmVyQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGUiPnhtbEJ1ZmZlckNyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTaXplIj54bWxCdWZmZXJDcmVhdGVTaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sQnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckR1bXAiPnhtbEJ1ZmZlckR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyRW1wdHkiPnhtbEJ1ZmZlckVtcHR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckZyZWUiPnhtbEJ1ZmZlckZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyR3JvdyI+eG1sQnVmZmVyR3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJMZW5ndGgiPnhtbEJ1ZmZlckxlbmd0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJSZXNpemUiPnhtbEJ1ZmZlclJlc2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclNocmluayI+eG1sQnVmZmVyU2hyaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlQ0hBUiI+eG1sQnVmZmVyV3JpdGVDSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlQ2hhciI+eG1sQnVmZmVyV3JpdGVDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWlsZFFOYW1lIj54bWxCdWlsZFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENoaWxkRWxlbWVudENvdW50Ij54bWxDaGlsZEVsZW1lbnRDb3VudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDaGlsZHJlbk5vZGUiPnhtbENoaWxkcmVuTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlEdGQiPnhtbENvcHlEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5hbWVzcGFjZSI+eG1sQ29weU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5TmFtZXNwYWNlTGlzdCI+eG1sQ29weU5hbWVzcGFjZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGUiPnhtbENvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlOb2RlTGlzdCI+eG1sQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlQcm9wIj54bWxDb3B5UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5UHJvcExpc3QiPnhtbENvcHlQcm9wTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDcmVhdGVJbnRTdWJzZXQiPnhtbENyZWF0ZUludFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb24iPnhtbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHQiPnhtbERPTVdyYXBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwRnJlZUN0eHQiPnhtbERPTVdyYXBGcmVlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwTmV3Q3R4dCI+eG1sRE9NV3JhcE5ld0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2MiPnhtbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NDb3B5Tm9kZSI+eG1sRG9jQ29weU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGVMaXN0Ij54bWxEb2NDb3B5Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcCI+eG1sRG9jRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeSI+eG1sRG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5RW5jIj54bWxEb2NEdW1wTWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0Zvcm1hdER1bXAiPnhtbERvY0Zvcm1hdER1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jR2V0Um9vdEVsZW1lbnQiPnhtbERvY0dldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1Byb3BlcnRpZXMiPnhtbERvY1Byb3BlcnRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jU2V0Um9vdEVsZW1lbnQiPnhtbERvY1NldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbER0ZCI+eG1sRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1EdW1wIj54bWxFbGVtRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Ij54bWxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50Ij54bWxFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudE9jY3VyIj54bWxFbGVtZW50Q29udGVudE9jY3VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZVZhbCI+eG1sRWxlbWVudFR5cGVWYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5Ij54bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRW51bWVyYXRpb24iPnhtbEVudW1lcmF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGaXJzdEVsZW1lbnRDaGlsZCI+eG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZURvYyI+eG1sRnJlZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlRHRkIj54bWxGcmVlRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOb2RlIj54bWxGcmVlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTm9kZUxpc3QiPnhtbEZyZWVOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTnMiPnhtbEZyZWVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTnNMaXN0Ij54bWxGcmVlTnNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVQcm9wIj54bWxGcmVlUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlUHJvcExpc3QiPnhtbEZyZWVQcm9wTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldENvbXByZXNzTW9kZSI+eG1sR2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldERvY0NvbXByZXNzTW9kZSI+eG1sR2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldEludFN1YnNldCI+eG1sR2V0SW50U3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExhc3RDaGlsZCI+eG1sR2V0TGFzdENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExpbmVObyI+eG1sR2V0TGluZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vTnNQcm9wIj54bWxHZXROb05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb2RlUGF0aCI+eG1sR2V0Tm9kZVBhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNMaXN0Ij54bWxHZXROc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElEIj54bWxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxJRFB0ciI+eG1sSURQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSXNCbGFua05vZGUiPnhtbElzQmxhbmtOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElzWEhUTUwiPnhtbElzWEhUTUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTGFzdEVsZW1lbnRDaGlsZCI+eG1sTGFzdEVsZW1lbnRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDRGF0YUJsb2NrIj54bWxOZXdDRGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoYXJSZWYiPnhtbE5ld0NoYXJSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NvbW1lbnQiPnhtbE5ld0NvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jIj54bWxOZXdEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jQ29tbWVudCI+eG1sTmV3RG9jQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NGcmFnbWVudCI+eG1sTmV3RG9jRnJhZ21lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUEkiPnhtbE5ld0RvY1BJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1Byb3AiPnhtbE5ld0RvY1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUmF3Tm9kZSI+eG1sTmV3RG9jUmF3Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NUZXh0Ij54bWxOZXdEb2NUZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1RleHRMZW4iPnhtbE5ld0RvY1RleHRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RHRkIj54bWxOZXdEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGUiPnhtbE5ld05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Tm9kZUVhdE5hbWUiPnhtbE5ld05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zIj54bWxOZXdOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3AiPnhtbE5ld05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3BFYXROYW1lIj54bWxOZXdOc1Byb3BFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1BJIj54bWxOZXdQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdQcm9wIj54bWxOZXdQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1JlZmVyZW5jZSI+eG1sTmV3UmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHQiPnhtbE5ld1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dExlbiI+eG1sTmV3VGV4dExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXh0RWxlbWVudFNpYmxpbmciPnhtbE5leHRFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlIj54bWxOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50Ij54bWxOb2RlQWRkQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudExlbiI+eG1sTm9kZUFkZENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUJ1ZkdldENvbnRlbnQiPnhtbE5vZGVCdWZHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcE91dHB1dCI+eG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRDb250ZW50Ij54bWxOb2RlR2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0TGFuZyI+eG1sTm9kZUdldExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVHZXRTcGFjZVByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVJc1RleHQiPnhtbE5vZGVJc1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0U3RyaW5nIj54bWxOb2RlTGlzdEdldFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRCYXNlIj54bWxOb2RlU2V0QmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRMYW5nIj54bWxOb2RlU2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0TmFtZSI+eG1sTm9kZVNldE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVTZXRTcGFjZVByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vdGF0aW9uIj54bWxOb3RhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTnMiPnhtbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOc1R5cGUiPnhtbE5zVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXIiPnhtbE91dHB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0Ij54bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlZiI+eG1sUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlZlB0ciI+eG1sUmVmUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlbW92ZVByb3AiPnhtbFJlbW92ZVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVwbGFjZU5vZGUiPnhtbFJlcGxhY2VOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJvb3ROb2RlIj54bWxSb290Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU0FYTG9jYXRvciI+eG1sU0FYTG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTQVhMb2NhdG9yUHRyIj54bWxTQVhMb2NhdG9yUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlIj54bWxTYXZlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZUVuYyI+eG1sU2F2ZUZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZpbGVUbyI+eG1sU2F2ZUZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZSI+eG1sU2F2ZUZvcm1hdEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVFbmMiPnhtbFNhdmVGb3JtYXRGaWxlRW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlVG8iPnhtbFNhdmVGb3JtYXRGaWxlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zQnlIcmVmIj54bWxTZWFyY2hOc0J5SHJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldERvY0NvbXByZXNzTW9kZSI+eG1sU2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldExpc3REb2MiPnhtbFNldExpc3REb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnMiPnhtbFNldE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldE5zUHJvcCI+eG1sU2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFByb3AiPnhtbFNldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0VHJlZURvYyI+eG1sU2V0VHJlZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMiI+eG1sU3BsaXRRTmFtZTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTMiPnhtbFNwbGl0UU5hbWUzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0dldE5vZGVMaXN0Ij54bWxTdHJpbmdHZXROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTdHJpbmdMZW5HZXROb2RlTGlzdCI+eG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVGV4dENvbmNhdCI+eG1sVGV4dENvbmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxUZXh0TWVyZ2UiPnhtbFRleHRNZXJnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbmxpbmtOb2RlIj54bWxVbmxpbmtOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFVuc2V0TnNQcm9wIj54bWxVbnNldE5zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbnNldFByb3AiPnhtbFVuc2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5DTmFtZSI+eG1sVmFsaWRhdGVOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOTVRva2VuIj54bWxWYWxpZGF0ZU5NVG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOYW1lIj54bWxWYWxpZGF0ZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVRTmFtZSI+eG1sVmFsaWRhdGVRTmFtZTwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0idXJpIiBpZD0idXJpIj5Nb2R1bGUgdXJpPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI194bWxVUkkiPl94bWxVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFJlbGF0aXZlVVJJIj54bWxCdWlsZFJlbGF0aXZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ2Fub25pY1BhdGgiPnhtbENhbm9uaWNQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQ3JlYXRlVVJJIj54bWxDcmVhdGVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxGcmVlVVJJIj54bWxGcmVlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sTm9ybWFsaXplVVJJUGF0aCI+eG1sTm9ybWFsaXplVVJJUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmVmZXJlbmNlIj54bWxQYXJzZVVSSVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sUHJpbnRVUkkiPnhtbFByaW50VVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sU2F2ZVVyaSI+eG1sU2F2ZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGVTdHIiPnhtbFVSSUVzY2FwZVN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJVW5lc2NhcGVTdHJpbmciPnhtbFVSSVVuZXNjYXBlU3RyaW5nPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJ2YWxpZCIgaWQ9InZhbGlkIj5Nb2R1bGUgdmFsaWQ8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxfQ1RYVF9GSU5JU0hfRFREXzAiPlhNTF9DVFhUX0ZJTklTSF9EVERfMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjWE1MX0NUWFRfRklOSVNIX0RURF8xIj5YTUxfQ1RYVF9GSU5JU0hfRFREXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI194bWxWYWxpZEN0eHQiPl94bWxWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZEF0dHJpYnV0ZURlY2wiPnhtbEFkZEF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZEVsZW1lbnREZWNsIj54bWxBZGRFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkSUQiPnhtbEFkZElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGROb3RhdGlvbkRlY2wiPnhtbEFkZE5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkUmVmIj54bWxBZGRSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlIj54bWxBdHRyaWJ1dGVUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQXR0cmlidXRlVGFibGVQdHIiPnhtbEF0dHJpYnV0ZVRhYmxlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5QXR0cmlidXRlVGFibGUiPnhtbENvcHlBdHRyaWJ1dGVUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weURvY0VsZW1lbnRDb250ZW50Ij54bWxDb3B5RG9jRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlFbGVtZW50Q29udGVudCI+eG1sQ29weUVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RWxlbWVudFRhYmxlIj54bWxDb3B5RWxlbWVudFRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RW51bWVyYXRpb24iPnhtbENvcHlFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weU5vdGF0aW9uVGFibGUiPnhtbENvcHlOb3RhdGlvblRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDcmVhdGVFbnVtZXJhdGlvbiI+eG1sQ3JlYXRlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBBdHRyaWJ1dGVEZWNsIj54bWxEdW1wQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcEF0dHJpYnV0ZVRhYmxlIj54bWxEdW1wQXR0cmlidXRlVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBFbGVtZW50RGVjbCI+eG1sRHVtcEVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wRWxlbWVudFRhYmxlIj54bWxEdW1wRWxlbWVudFRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wTm90YXRpb25EZWNsIj54bWxEdW1wTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wTm90YXRpb25UYWJsZSI+eG1sRHVtcE5vdGF0aW9uVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZSI+eG1sRWxlbWVudFRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUF0dHJpYnV0ZVRhYmxlIj54bWxGcmVlQXR0cmlidXRlVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVEb2NFbGVtZW50Q29udGVudCI+eG1sRnJlZURvY0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlRWxlbWVudENvbnRlbnQiPnhtbEZyZWVFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVsZW1lbnRUYWJsZSI+eG1sRnJlZUVsZW1lbnRUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVudW1lcmF0aW9uIj54bWxGcmVlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVJRFRhYmxlIj54bWxGcmVlSURUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZU5vdGF0aW9uVGFibGUiPnhtbEZyZWVOb3RhdGlvblRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlUmVmVGFibGUiPnhtbEZyZWVSZWZUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZVZhbGlkQ3R4dCI+eG1sRnJlZVZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkQXR0ckRlc2MiPnhtbEdldER0ZEF0dHJEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRFbGVtZW50RGVzYyI+eG1sR2V0RHRkRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZE5vdGF0aW9uRGVzYyI+eG1sR2V0RHRkTm90YXRpb25EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUVsZW1lbnREZXNjIj54bWxHZXREdGRRRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldElEIj54bWxHZXRJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0UmVmcyI+eG1sR2V0UmVmczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSURUYWJsZSI+eG1sSURUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSURUYWJsZVB0ciI+eG1sSURUYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNNaXhlZEVsZW1lbnQiPnhtbElzTWl4ZWRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc1JlZiI+eG1sSXNSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbE5ld0RvY0VsZW1lbnRDb250ZW50Ij54bWxOZXdEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RWxlbWVudENvbnRlbnQiPnhtbE5ld0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdWYWxpZEN0eHQiPnhtbE5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZSI+eG1sTm90YXRpb25UYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZVB0ciI+eG1sTm90YXRpb25UYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVmVGFibGUiPnhtbFJlZlRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxSZWZUYWJsZVB0ciI+eG1sUmVmVGFibGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFJlbW92ZUlEIj54bWxSZW1vdmVJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlUmVmIj54bWxSZW1vdmVSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFNucHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFNwcmludGZFbGVtZW50Q29udGVudCI+eG1sU3ByaW50ZkVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIj54bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHQiPnhtbFZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiI+eG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkU3RhdGUiPnhtbFZhbGlkU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkU3RhdGVQdHIiPnhtbFZhbGlkU3RhdGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnQiPnhtbFZhbGlkYXRlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOYW1lVmFsdWUiPnhtbFZhbGlkYXRlTmFtZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5hbWVzVmFsdWUiPnhtbFZhbGlkYXRlTmFtZXNWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVObXRva2VuVmFsdWUiPnhtbFZhbGlkYXRlTm10b2tlblZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUiPnhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlIj54bWxWYWxpZGF0ZU5vdGF0aW9uVXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUG9wRWxlbWVudCI+eG1sVmFsaWRhdGVQb3BFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhpbmNsdWRlIiBpZD0ieGluY2x1ZGUiPk1vZHVsZSB4aW5jbHVkZTwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX0ZBTExCQUNLIj5YSU5DTFVERV9GQUxMQkFDSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfSFJFRiI+WElOQ0xVREVfSFJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfTk9ERSI+WElOQ0xVREVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfTlMiPlhJTkNMVURFX05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9PTERfTlMiPlhJTkNMVURFX09MRF9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfUEFSU0UiPlhJTkNMVURFX1BBUlNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9FTkNPRElORyI+WElOQ0xVREVfUEFSU0VfRU5DT0RJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX1BBUlNFX1RFWFQiPlhJTkNMVURFX1BBUlNFX1RFWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX1BBUlNFX1hNTCI+WElOQ0xVREVfUEFSU0VfWE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9YUE9JTlRFUiI+WElOQ0xVREVfUEFSU0VfWFBPSU5URVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dCI+eG1sWEluY2x1ZGVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVGcmVlQ29udGV4dCI+eG1sWEluY2x1ZGVGcmVlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVOZXdDb250ZXh0Ij54bWxYSW5jbHVkZU5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2VzcyI+eG1sWEluY2x1ZGVQcm9jZXNzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVTZXRGbGFncyI+eG1sWEluY2x1ZGVTZXRGbGFnczwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0ieGxpbmsiIGlkPSJ4bGluayI+TW9kdWxlIHhsaW5rPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjWExJTktfQUNUVUFURV9BVVRPIj5YTElOS19BQ1RVQVRFX0FVVE88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI1hMSU5LX0FDVFVBVEVfTk9ORSI+WExJTktfQUNUVUFURV9OT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19BQ1RVQVRFX09OUkVRVUVTVCI+WExJTktfQUNUVUFURV9PTlJFUVVFU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI1hMSU5LX1NIT1dfRU1CRUQiPlhMSU5LX1NIT1dfRU1CRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI1hMSU5LX1NIT1dfTkVXIj5YTElOS19TSE9XX05FVzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjWExJTktfU0hPV19OT05FIj5YTElOS19TSE9XX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI1hMSU5LX1NIT1dfUkVQTEFDRSI+WExJTktfU0hPV19SRVBMQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19UWVBFX0VYVEVOREVEIj5YTElOS19UWVBFX0VYVEVOREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19UWVBFX0VYVEVOREVEX1NFVCI+WExJTktfVFlQRV9FWFRFTkRFRF9TRVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI1hMSU5LX1RZUEVfTk9ORSI+WExJTktfVFlQRV9OT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19UWVBFX1NJTVBMRSI+WExJTktfVFlQRV9TSU1QTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI194bGlua0hhbmRsZXIiPl94bGlua0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rQWN0dWF0ZSI+eGxpbmtBY3R1YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rR2V0RGVmYXVsdERldGVjdCI+eGxpbmtHZXREZWZhdWx0RGV0ZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0dldERlZmF1bHRIYW5kbGVyIj54bGlua0dldERlZmF1bHRIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0hSZWYiPnhsaW5rSFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtIYW5kbGVyIj54bGlua0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rSGFuZGxlclB0ciI+eGxpbmtIYW5kbGVyUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rTm9kZURldGVjdEZ1bmMiPnhsaW5rTm9kZURldGVjdEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua1NldERlZmF1bHREZXRlY3QiPnhsaW5rU2V0RGVmYXVsdERldGVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTZXREZWZhdWx0SGFuZGxlciI+eGxpbmtTZXREZWZhdWx0SGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaG93Ij54bGlua1Nob3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rU2ltcGxlTGlua0Z1bmsiPnhsaW5rU2ltcGxlTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rVGl0bGUiPnhsaW5rVGl0bGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rVHlwZSI+eGxpbmtUeXBlPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJ4bWxJTyIgaWQ9InhtbElPIj5Nb2R1bGUgeG1sSU88L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCNfeG1sT3V0cHV0QnVmZmVyIj5feG1sT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCNfeG1sUGFyc2VySW5wdXRCdWZmZXIiPl94bWxQYXJzZXJJbnB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQWxsb2NPdXRwdXRCdWZmZXIiPnhtbEFsbG9jT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyIj54bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0ZpbGVuYW1lIj54bWxDaGVja0ZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDaGVja0hUVFBJbnB1dCI+eG1sQ2hlY2tIVFRQSW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENsZWFudXBJbnB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzIj54bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGaWxlQ2xvc2UiPnhtbEZpbGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU1hdGNoIj54bWxGaWxlTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZpbGVPcGVuIj54bWxGaWxlT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZVJlYWQiPnhtbEZpbGVSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIiPnhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBDbG9zZSI+eG1sSU9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBNYXRjaCI+eG1sSU9GVFBNYXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBPcGVuIj54bWxJT0ZUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPRlRQUmVhZCI+eG1sSU9GVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBDbG9zZSI+eG1sSU9IVFRQQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE1hdGNoIj54bWxJT0hUVFBNYXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlbiI+eG1sSU9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlblciPnhtbElPSFRUUE9wZW5XPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBSZWFkIj54bWxJT0hUVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0T3BlbkNhbGxiYWNrIj54bWxJbnB1dE9wZW5DYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCI+eG1sTm9ybWFsaXplV2luZG93c1BhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNsb3NlIj54bWxPdXRwdXRCdWZmZXJDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZkIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckZsdXNoIj54bWxPdXRwdXRCdWZmZXJGbHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0T3BlbkNhbGxiYWNrIj54bWxPdXRwdXRPcGVuQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlckdldERpcmVjdG9yeSI+eG1sUGFyc2VyR2V0RGlyZWN0b3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyR3JvdyI+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2giPnhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBvcElucHV0Q2FsbGJhY2tzIj54bWxQb3BJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJ4bWxhdXRvbWF0YSIgaWQ9InhtbGF1dG9tYXRhIj5Nb2R1bGUgeG1sYXV0b21hdGE8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YSI+eG1sQXV0b21hdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUdldEluaXRTdGF0ZSI+eG1sQXV0b21hdGFHZXRJbml0U3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhSXNEZXRlcm1pbmlzdCI+eG1sQXV0b21hdGFJc0RldGVybWluaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXIiPnhtbEF1dG9tYXRhTmV3Q291bnRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0Vwc2lsb24iPnhtbEF1dG9tYXRhTmV3RXBzaWxvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdOZWdUcmFucyI+eG1sQXV0b21hdGFOZXdOZWdUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdTdGF0ZSI+eG1sQXV0b21hdGFOZXdTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIiPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlIj54bWxBdXRvbWF0YVNldEZpbmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGUiPnhtbEF1dG9tYXRhU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEZyZWVBdXRvbWF0YSI+eG1sRnJlZUF1dG9tYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxOZXdBdXRvbWF0YSI+eG1sTmV3QXV0b21hdGE8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbGVycm9yIiBpZD0ieG1sZXJyb3IiPk1vZHVsZSB4bWxlcnJvcjwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DMTROX0NSRUFURV9DVFhUIj5YTUxfQzE0Tl9DUkVBVEVfQ1RYVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0MxNE5fQ1JFQVRFX1NUQUNLIj5YTUxfQzE0Tl9DUkVBVEVfU1RBQ0s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DMTROX0lOVkFMSURfTk9ERSI+WE1MX0MxNE5fSU5WQUxJRF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQzE0Tl9SRUxBVElWRV9OQU1FU1BBQ0UiPlhNTF9DMTROX1JFTEFUSVZFX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0MxNE5fUkVRVUlSRVNfVVRGOCI+WE1MX0MxNE5fUkVRVUlSRVNfVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0MxNE5fVU5LTk9XX05PREUiPlhNTF9DMTROX1VOS05PV19OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0FUQUxPR19FTlRSWV9CUk9LRU4iPlhNTF9DQVRBTE9HX0VOVFJZX0JST0tFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NBVEFMT0dfTUlTU0lOR19BVFRSIj5YTUxfQ0FUQUxPR19NSVNTSU5HX0FUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DQVRBTE9HX05PVF9DQVRBTE9HIj5YTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NBVEFMT0dfUFJFRkVSX1ZBTFVFIj5YTUxfQ0FUQUxPR19QUkVGRVJfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DQVRBTE9HX1JFQ1VSU0lPTiI+WE1MX0NBVEFMT0dfUkVDVVJTSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfIj5YTUxfQ0hFQ0tfPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRU5USVRZX1RZUEUiPlhNTF9DSEVDS19FTlRJVFlfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0FUVFJJQlVURSI+WE1MX0NIRUNLX0ZPVU5EX0FUVFJJQlVURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0NEQVRBIj5YTUxfQ0hFQ0tfRk9VTkRfQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9DT01NRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfQ09NTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0RPQ1RZUEUiPlhNTF9DSEVDS19GT1VORF9ET0NUWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfRUxFTUVOVCI+WE1MX0NIRUNLX0ZPVU5EX0VMRU1FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9FTlRJVFkiPlhNTF9DSEVDS19GT1VORF9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9FTlRJVFlSRUYiPlhNTF9DSEVDS19GT1VORF9FTlRJVFlSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9GUkFHTUVOVCI+WE1MX0NIRUNLX0ZPVU5EX0ZSQUdNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfTk9UQVRJT04iPlhNTF9DSEVDS19GT1VORF9OT1RBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX1BJIj5YTUxfQ0hFQ0tfRk9VTkRfUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9URVhUIj5YTUxfQ0hFQ0tfRk9VTkRfVEVYVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05BTUVfTk9UX05VTEwiPlhNTF9DSEVDS19OQU1FX05PVF9OVUxMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX0FUVFIiPlhNTF9DSEVDS19OT1RfQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9BVFRSX0RFQ0wiPlhNTF9DSEVDS19OT1RfQVRUUl9ERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX0RURCI+WE1MX0NIRUNLX05PVF9EVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT1RfRUxFTV9ERUNMIj5YTUxfQ0hFQ0tfTk9UX0VMRU1fREVDTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9FTlRJVFlfREVDTCI+WE1MX0NIRUNLX05PVF9FTlRJVFlfREVDTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9OQ05BTUUiPlhNTF9DSEVDS19OT1RfTkNOQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX05TX0RFQ0wiPlhNTF9DSEVDS19OT1RfTlNfREVDTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9VVEY4Ij5YTUxfQ0hFQ0tfTk9UX1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19ESUNUIj5YTUxfQ0hFQ0tfTk9fRElDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PX0RPQyI+WE1MX0NIRUNLX05PX0RPQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PX0VMRU0iPlhNTF9DSEVDS19OT19FTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fSFJFRiI+WE1MX0NIRUNLX05PX0hSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19OQU1FIj5YTUxfQ0hFQ0tfTk9fTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PX05FWFQiPlhNTF9DSEVDS19OT19ORVhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fUEFSRU5UIj5YTUxfQ0hFQ0tfTk9fUEFSRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fUFJFViI+WE1MX0NIRUNLX05PX1BSRVY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OU19BTkNFU1RPUiI+WE1MX0NIRUNLX05TX0FOQ0VTVE9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTlNfU0NPUEUiPlhNTF9DSEVDS19OU19TQ09QRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX09VVFNJREVfRElDVCI+WE1MX0NIRUNLX09VVFNJREVfRElDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1VOS05PV05fTk9ERSI+WE1MX0NIRUNLX1VOS05PV05fTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1dST05HX0RPQyI+WE1MX0NIRUNLX1dST05HX0RPQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1dST05HX05BTUUiPlhNTF9DSEVDS19XUk9OR19OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfV1JPTkdfTkVYVCI+WE1MX0NIRUNLX1dST05HX05FWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19XUk9OR19QQVJFTlQiPlhNTF9DSEVDS19XUk9OR19QQVJFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19XUk9OR19QUkVWIj5YTUxfQ0hFQ0tfV1JPTkdfUFJFVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1giPlhNTF9DSEVDS19YPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0FUVFJJQlVURV9ERUZBVUxUIj5YTUxfRFREX0FUVFJJQlVURV9ERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0FUVFJJQlVURV9SRURFRklORUQiPlhNTF9EVERfQVRUUklCVVRFX1JFREVGSU5FRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9BVFRSSUJVVEVfVkFMVUUiPlhNTF9EVERfQVRUUklCVVRFX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0NPTlRFTlRfRVJST1IiPlhNTF9EVERfQ09OVEVOVF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9DT05URU5UX01PREVMIj5YTUxfRFREX0NPTlRFTlRfTU9ERUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfQ09OVEVOVF9OT1RfREVURVJNSU5JU1QiPlhNTF9EVERfQ09OVEVOVF9OT1RfREVURVJNSU5JU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfRElGRkVSRU5UX1BSRUZJWCI+WE1MX0RURF9ESUZGRVJFTlRfUFJFRklYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0RVUF9UT0tFTiI+WE1MX0RURF9EVVBfVE9LRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfRUxFTV9ERUZBVUxUX05BTUVTUEFDRSI+WE1MX0RURF9FTEVNX0RFRkFVTFRfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0VMRU1fTkFNRVNQQUNFIj5YTUxfRFREX0VMRU1fTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0VMRU1fUkVERUZJTkVEIj5YTUxfRFREX0VMRU1fUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0VNUFRZX05PVEFUSU9OIj5YTUxfRFREX0VNUFRZX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0VOVElUWV9UWVBFIj5YTUxfRFREX0VOVElUWV9UWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0lEX0ZJWEVEIj5YTUxfRFREX0lEX0ZJWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0lEX1JFREVGSU5FRCI+WE1MX0RURF9JRF9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfSURfU1VCU0VUIj5YTUxfRFREX0lEX1NVQlNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9JTlZBTElEX0NISUxEIj5YTUxfRFREX0lOVkFMSURfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfSU5WQUxJRF9ERUZBVUxUIj5YTUxfRFREX0lOVkFMSURfREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9MT0FEX0VSUk9SIj5YTUxfRFREX0xPQURfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTUlTU0lOR19BVFRSSUJVVEUiPlhNTF9EVERfTUlTU0lOR19BVFRSSUJVVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTUlYRURfQ09SUlVQVCI+WE1MX0RURF9NSVhFRF9DT1JSVVBUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX01VTFRJUExFX0lEIj5YTUxfRFREX01VTFRJUExFX0lEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PVEFUSU9OX1JFREVGSU5FRCI+WE1MX0RURF9OT1RBVElPTl9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9UQVRJT05fVkFMVUUiPlhNTF9EVERfTk9UQVRJT05fVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9UX0VNUFRZIj5YTUxfRFREX05PVF9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT1RfUENEQVRBIj5YTUxfRFREX05PVF9QQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9UX1NUQU5EQUxPTkUiPlhNTF9EVERfTk9UX1NUQU5EQUxPTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9fRE9DIj5YTUxfRFREX05PX0RPQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT19EVEQiPlhNTF9EVERfTk9fRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PX0VMRU1fTkFNRSI+WE1MX0RURF9OT19FTEVNX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9fUFJFRklYIj5YTUxfRFREX05PX1BSRUZJWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT19ST09UIj5YTUxfRFREX05PX1JPT1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfUk9PVF9OQU1FIj5YTUxfRFREX1JPT1RfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9TVEFOREFMT05FX0RFRkFVTFRFRCI+WE1MX0RURF9TVEFOREFMT05FX0RFRkFVTFRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9TVEFOREFMT05FX1dISVRFX1NQQUNFIj5YTUxfRFREX1NUQU5EQUxPTkVfV0hJVEVfU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfVU5LTk9XTl9BVFRSSUJVVEUiPlhNTF9EVERfVU5LTk9XTl9BVFRSSUJVVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfVU5LTk9XTl9FTEVNIj5YTUxfRFREX1VOS05PV05fRUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9VTktOT1dOX0VOVElUWSI+WE1MX0RURF9VTktOT1dOX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9VTktOT1dOX0lEIj5YTUxfRFREX1VOS05PV05fSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfVU5LTk9XTl9OT1RBVElPTiI+WE1MX0RURF9VTktOT1dOX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX1hNTElEX1RZUEUiPlhNTF9EVERfWE1MSURfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9YTUxJRF9WQUxVRSI+WE1MX0RURF9YTUxJRF9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9BVFRMSVNUX05PVF9TVEFSVEVEIj5YTUxfRVJSX0FUVExJU1RfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUUklCVVRFX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9BVFRSSUJVVEVfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRCI+WE1MX0VSUl9BVFRSSUJVVEVfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUUklCVVRFX1JFREVGSU5FRCI+WE1MX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0FUVFJJQlVURV9XSVRIT1VUX1ZBTFVFIj5YTUxfRVJSX0FUVFJJQlVURV9XSVRIT1VUX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0NEQVRBX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9DREFUQV9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9BVF9FT0YiPlhNTF9FUlJfQ0hBUlJFRl9BVF9FT0Y8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9JTl9EVEQiPlhNTF9FUlJfQ0hBUlJFRl9JTl9EVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9JTl9FUElMT0ciPlhNTF9FUlJfQ0hBUlJFRl9JTl9FUElMT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0ciPlhNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ09ORFNFQ19JTlZBTElEIj5YTUxfRVJSX0NPTkRTRUNfSU5WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRCI+WE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX05PVF9TVEFSVEVEIj5YTUxfRVJSX0NPTkRTRUNfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQiPlhNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRE9DVU1FTlRfRU1QVFkiPlhNTF9FUlJfRE9DVU1FTlRfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRE9DVU1FTlRfRU5EIj5YTUxfRVJSX0RPQ1VNRU5UX0VORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9ET0NVTUVOVF9TVEFSVCI+WE1MX0VSUl9ET0NVTUVOVF9TVEFSVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVEIj5YTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOQ09ESU5HX05BTUUiPlhNTF9FUlJfRU5DT0RJTkdfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlSRUZfQVRfRU9GIj5YTUxfRVJSX0VOVElUWVJFRl9BVF9FT0Y8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX0lOX0RURCI+WE1MX0VSUl9FTlRJVFlSRUZfSU5fRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWVJFRl9JTl9FUElMT0ciPlhNTF9FUlJfRU5USVRZUkVGX0lOX0VQSUxPRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HIj5YTUxfRVJSX0VOVElUWVJFRl9JTl9QUk9MT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX05PX05BTUUiPlhNTF9FUlJfRU5USVRZUkVGX05PX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORyI+WE1MX0VSUl9FTlRJVFlSRUZfU0VNSUNPTF9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWV9CT1VOREFSWSI+WE1MX0VSUl9FTlRJVFlfQk9VTkRBUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX0NIQVJfRVJST1IiPlhNTF9FUlJfRU5USVRZX0NIQVJfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMIj5YTUxfRVJSX0VOVElUWV9JU19FWFRFUk5BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSIj5YTUxfRVJSX0VOVElUWV9JU19QQVJBTUVURVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX0xPT1AiPlhNTF9FUlJfRU5USVRZX0xPT1A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9FTlRJVFlfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWV9OT1RfU1RBUlRFRCI+WE1MX0VSUl9FTlRJVFlfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX1BFX0lOVEVSTkFMIj5YTUxfRVJSX0VOVElUWV9QRV9JTlRFUk5BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlfUFJPQ0VTU0lORyI+WE1MX0VSUl9FTlRJVFlfUFJPQ0VTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FUVVBTF9SRVFVSVJFRCI+WE1MX0VSUl9FUVVBTF9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FUlJPUiI+WE1MX0VSUl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FWFRSQV9DT05URU5UIj5YTUxfRVJSX0VYVFJBX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRVhUX0VOVElUWV9TVEFOREFMT05FIj5YTUxfRVJSX0VYVF9FTlRJVFlfU1RBTkRBTE9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FWFRfU1VCU0VUX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9FWFRfU1VCU0VUX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9GQVRBTCI+WE1MX0VSUl9GQVRBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9HVF9SRVFVSVJFRCI+WE1MX0VSUl9HVF9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVCI+WE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiI+WE1MX0VSUl9JTlRFUk5BTF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9JTlZBTElEX0NIQVIiPlhNTF9FUlJfSU5WQUxJRF9DSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0lOVkFMSURfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0NIQVJSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0RFQ19DSEFSUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkciPlhNTF9FUlJfSU5WQUxJRF9FTkNPRElORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGIj5YTUxfRVJSX0lOVkFMSURfSEVYX0NIQVJSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfSU5WQUxJRF9VUkkiPlhNTF9FUlJfSU5WQUxJRF9VUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTElURVJBTF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfTElURVJBTF9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCI+WE1MX0VSUl9MSVRFUkFMX05PVF9TVEFSVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0xUU0xBU0hfUkVRVUlSRUQiPlhNTF9FUlJfTFRTTEFTSF9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9MVF9JTl9BVFRSSUJVVEUiPlhNTF9FUlJfTFRfSU5fQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0xUX1JFUVVJUkVEIj5YTUxfRVJSX0xUX1JFUVVJUkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQiPlhNTF9FUlJfTUlTUExBQ0VEX0NEQVRBX0VORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9NSVNTSU5HX0VOQ09ESU5HIj5YTUxfRVJSX01JU1NJTkdfRU5DT0RJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTUlYRURfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX01JWEVEX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRCI+WE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OQU1FX1JFUVVJUkVEIj5YTUxfRVJSX05BTUVfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRCI+WE1MX0VSUl9OTVRPS0VOX1JFUVVJUkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PTkUiPlhNTF9FUlJfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT1RBVElPTl9OT1RfRklOSVNIRUQiPlhNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVEIj5YTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PVEFUSU9OX1BST0NFU1NJTkciPlhNTF9FUlJfTk9UQVRJT05fUFJPQ0VTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT1RfU1RBTkRBTE9ORSI+WE1MX0VSUl9OT1RfU1RBTkRBTE9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRCI+WE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT19EVEQiPlhNTF9FUlJfTk9fRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PX01FTU9SWSI+WE1MX0VSUl9OT19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTlNfREVDTF9FUlJPUiI+WE1MX0VSUl9OU19ERUNMX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX09LIj5YTUxfRVJSX09LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BDREFUQV9SRVFVSVJFRCI+WE1MX0VSUl9QQ0RBVEFfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUEVSRUZfQVRfRU9GIj5YTUxfRVJSX1BFUkVGX0FUX0VPRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9QRVJFRl9JTl9FUElMT0ciPlhNTF9FUlJfUEVSRUZfSU5fRVBJTE9HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQiPlhNTF9FUlJfUEVSRUZfSU5fSU5UX1NVQlNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9QRVJFRl9JTl9QUk9MT0ciPlhNTF9FUlJfUEVSRUZfSU5fUFJPTE9HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX05PX05BTUUiPlhNTF9FUlJfUEVSRUZfTk9fTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9QRVJFRl9TRU1JQ09MX01JU1NJTkciPlhNTF9FUlJfUEVSRUZfU0VNSUNPTF9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BJX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9QSV9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUElfTk9UX1NUQVJURUQiPlhNTF9FUlJfUElfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUFVCSURfUkVRVUlSRUQiPlhNTF9FUlJfUFVCSURfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUkVTRVJWRURfWE1MX05BTUUiPlhNTF9FUlJfUkVTRVJWRURfWE1MX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfU0VQQVJBVE9SX1JFUVVJUkVEIj5YTUxfRVJSX1NFUEFSQVRPUl9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCI+WE1MX0VSUl9TUEFDRV9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFIj5YTUxfRVJSX1NUQU5EQUxPTkVfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQiPlhNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfU1RSSU5HX05PVF9TVEFSVEVEIj5YTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCI+WE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX1RBR19OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFkiPlhNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5LTk9XTl9FTkNPRElORyI+WE1MX0VSUl9VTktOT1dOX0VOQ09ESU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1VOS05PV05fVkVSU0lPTiI+WE1MX0VSUl9VTktOT1dOX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5QQVJTRURfRU5USVRZIj5YTUxfRVJSX1VOUEFSU0VEX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORyI+WE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9VUklfRlJBR01FTlQiPlhNTF9FUlJfVVJJX0ZSQUdNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1VSSV9SRVFVSVJFRCI+WE1MX0VSUl9VUklfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVkFMVUVfUkVRVUlSRUQiPlhNTF9FUlJfVkFMVUVfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCI+WE1MX0VSUl9WRVJTSU9OX01JU01BVENIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1ZFUlNJT05fTUlTU0lORyI+WE1MX0VSUl9WRVJTSU9OX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfV0FSTklORyI+WE1MX0VSUl9XQVJOSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1hNTERFQ0xfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX1hNTERFQ0xfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQiPlhNTF9FUlJfWE1MREVDTF9OT1RfU1RBUlRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fQzE0TiI+WE1MX0ZST01fQzE0TjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fQ0FUQUxPRyI+WE1MX0ZST01fQ0FUQUxPRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fQ0hFQ0siPlhNTF9GUk9NX0NIRUNLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9EQVRBVFlQRSI+WE1MX0ZST01fREFUQVRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX0RURCI+WE1MX0ZST01fRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9GVFAiPlhNTF9GUk9NX0ZUUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fSFRNTCI+WE1MX0ZST01fSFRNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fSFRUUCI+WE1MX0ZST01fSFRUUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fSTE4TiI+WE1MX0ZST01fSTE4TjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fSU8iPlhNTF9GUk9NX0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9NRU1PUlkiPlhNTF9GUk9NX01FTU9SWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fTU9EVUxFIj5YTUxfRlJPTV9NT0RVTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX05BTUVTUEFDRSI+WE1MX0ZST01fTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9OT05FIj5YTUxfRlJPTV9OT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9PVVRQVVQiPlhNTF9GUk9NX09VVFBVVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fUEFSU0VSIj5YTUxfRlJPTV9QQVJTRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1JFR0VYUCI+WE1MX0ZST01fUkVHRVhQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9SRUxBWE5HUCI+WE1MX0ZST01fUkVMQVhOR1A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1JFTEFYTkdWIj5YTUxfRlJPTV9SRUxBWE5HVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fU0NIRU1BU1AiPlhNTF9GUk9NX1NDSEVNQVNQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9TQ0hFTUFTViI+WE1MX0ZST01fU0NIRU1BU1Y8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1NDSEVNQVRST05WIj5YTUxfRlJPTV9TQ0hFTUFUUk9OVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fVFJFRSI+WE1MX0ZST01fVFJFRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fVkFMSUQiPlhNTF9GUk9NX1ZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9XUklURVIiPlhNTF9GUk9NX1dSSVRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fWElOQ0xVREUiPlhNTF9GUk9NX1hJTkNMVURFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9YUEFUSCI+WE1MX0ZST01fWFBBVEg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1hQT0lOVEVSIj5YTUxfRlJPTV9YUE9JTlRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fWFNMVCI+WE1MX0ZST01fWFNMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZUUF9BQ0NOVCI+WE1MX0ZUUF9BQ0NOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZUUF9FUFNWX0FOU1dFUiI+WE1MX0ZUUF9FUFNWX0FOU1dFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZUUF9QQVNWX0FOU1dFUiI+WE1MX0ZUUF9QQVNWX0FOU1dFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZUUF9VUkxfU1lOVEFYIj5YTUxfRlRQX1VSTF9TWU5UQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9IVE1MX1NUUlVDVVJFX0VSUk9SIj5YTUxfSFRNTF9TVFJVQ1VSRV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0hUTUxfVU5LTk9XTl9UQUciPlhNTF9IVE1MX1VOS05PV05fVEFHPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSFRUUF9VTktOT1dOX0hPU1QiPlhNTF9IVFRQX1VOS05PV05fSE9TVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0hUVFBfVVJMX1NZTlRBWCI+WE1MX0hUVFBfVVJMX1NZTlRBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0hUVFBfVVNFX0lQIj5YTUxfSFRUUF9VU0VfSVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JMThOX0NPTlZfRkFJTEVEIj5YTUxfSTE4Tl9DT05WX0ZBSUxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0kxOE5fRVhDRVNTX0hBTkRMRVIiPlhNTF9JMThOX0VYQ0VTU19IQU5ETEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSTE4Tl9OT19IQU5ETEVSIj5YTUxfSTE4Tl9OT19IQU5ETEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSTE4Tl9OT19OQU1FIj5YTUxfSTE4Tl9OT19OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSTE4Tl9OT19PVVRQVVQiPlhNTF9JMThOX05PX09VVFBVVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0JVRkZFUl9GVUxMIj5YTUxfSU9fQlVGRkVSX0ZVTEw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQUNDRVMiPlhNTF9JT19FQUNDRVM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQUREUklOVVNFIj5YTUxfSU9fRUFERFJJTlVTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VBRk5PU1VQUE9SVCI+WE1MX0lPX0VBRk5PU1VQUE9SVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VBR0FJTiI+WE1MX0lPX0VBR0FJTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VBTFJFQURZIj5YTUxfSU9fRUFMUkVBRFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQkFERiI+WE1MX0lPX0VCQURGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUJBRE1TRyI+WE1MX0lPX0VCQURNU0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQlVTWSI+WE1MX0lPX0VCVVNZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUNBTkNFTEVEIj5YTUxfSU9fRUNBTkNFTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUNISUxEIj5YTUxfSU9fRUNISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUNPTk5SRUZVU0VEIj5YTUxfSU9fRUNPTk5SRUZVU0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRURFQURMSyI+WE1MX0lPX0VERUFETEs8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FRE9NIj5YTUxfSU9fRURPTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VFWElTVCI+WE1MX0lPX0VFWElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VGQVVMVCI+WE1MX0lPX0VGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VGQklHIj5YTUxfSU9fRUZCSUc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FSU5QUk9HUkVTUyI+WE1MX0lPX0VJTlBST0dSRVNTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUlOVFIiPlhNTF9JT19FSU5UUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VJTlZBTCI+WE1MX0lPX0VJTlZBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VJTyI+WE1MX0lPX0VJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VJU0NPTk4iPlhNTF9JT19FSVNDT05OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUlTRElSIj5YTUxfSU9fRUlTRElSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU1GSUxFIj5YTUxfSU9fRU1GSUxFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU1MSU5LIj5YTUxfSU9fRU1MSU5LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU1TR1NJWkUiPlhNTF9JT19FTVNHU0laRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOQU1FVE9PTE9ORyI+WE1MX0lPX0VOQU1FVE9PTE9ORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOQ09ERVIiPlhNTF9JT19FTkNPREVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5FVFVOUkVBQ0giPlhNTF9JT19FTkVUVU5SRUFDSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VORklMRSI+WE1MX0lPX0VORklMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT0RFViI+WE1MX0lPX0VOT0RFVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT0VOVCI+WE1MX0lPX0VOT0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT0VYRUMiPlhNTF9JT19FTk9FWEVDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PTENLIj5YTUxfSU9fRU5PTENLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PTUVNIj5YTUxfSU9fRU5PTUVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PU1BDIj5YTUxfSU9fRU5PU1BDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PU1lTIj5YTUxfSU9fRU5PU1lTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PVERJUiI+WE1MX0lPX0VOT1RESVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9URU1QVFkiPlhNTF9JT19FTk9URU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9UU09DSyI+WE1MX0lPX0VOT1RTT0NLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PVFNVUCI+WE1MX0lPX0VOT1RTVVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9UVFkiPlhNTF9JT19FTk9UVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTlhJTyI+WE1MX0lPX0VOWElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVBFUk0iPlhNTF9JT19FUEVSTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VQSVBFIj5YTUxfSU9fRVBJUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FUkFOR0UiPlhNTF9JT19FUkFOR0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FUk9GUyI+WE1MX0lPX0VST0ZTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVNQSVBFIj5YTUxfSU9fRVNQSVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVNSQ0giPlhNTF9JT19FU1JDSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VUSU1FRE9VVCI+WE1MX0lPX0VUSU1FRE9VVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VYREVWIj5YTUxfSU9fRVhERVY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19GTFVTSCI+WE1MX0lPX0ZMVVNIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fTE9BRF9FUlJPUiI+WE1MX0lPX0xPQURfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19ORVRXT1JLX0FUVEVNUFQiPlhNTF9JT19ORVRXT1JLX0FUVEVNUFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19OT19JTlBVVCI+WE1MX0lPX05PX0lOUFVUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fVU5LTk9XTiI+WE1MX0lPX1VOS05PV048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19XUklURSI+WE1MX0lPX1dSSVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfTU9EVUxFX0NMT1NFIj5YTUxfTU9EVUxFX0NMT1NFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfTU9EVUxFX09QRU4iPlhNTF9NT0RVTEVfT1BFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX05TX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEIj5YTUxfTlNfRVJSX0FUVFJJQlVURV9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9OU19FUlJfQ09MT04iPlhNTF9OU19FUlJfQ09MT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9OU19FUlJfRU1QVFkiPlhNTF9OU19FUlJfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9OU19FUlJfUU5BTUUiPlhNTF9OU19FUlJfUU5BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSI+WE1MX05TX0VSUl9VTkRFRklORURfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UiPlhNTF9OU19FUlJfWE1MX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SIj5YTUxfUkVHRVhQX0NPTVBJTEVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUiI+WE1MX1JOR1BfQU5ZTkFNRV9BVFRSX0FOQ0VTVE9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfQ0hJTERSRU4iPlhNTF9STkdQX0FUVFJJQlVURV9DSElMRFJFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfQVRUUklCVVRFX0NPTlRFTlQiPlhNTF9STkdQX0FUVFJJQlVURV9DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfRU1QVFkiPlhNTF9STkdQX0FUVFJJQlVURV9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfQVRUUklCVVRFX05PT1AiPlhNTF9STkdQX0FUVFJJQlVURV9OT09QPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSX0NPTkZMSUNUIj5YTUxfUk5HUF9BVFRSX0NPTkZMSUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9DSE9JQ0VfQ09OVEVOVCI+WE1MX1JOR1BfQ0hPSUNFX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0NIT0lDRV9FTVBUWSI+WE1MX1JOR1BfQ0hPSUNFX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9DUkVBVEVfRkFJTFVSRSI+WE1MX1JOR1BfQ1JFQVRFX0ZBSUxVUkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0RBVEFfQ09OVEVOVCI+WE1MX1JOR1BfREFUQV9DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9ERUZJTkVfQ1JFQVRFX0ZBSUxFRCI+WE1MX1JOR1BfREVGSU5FX0NSRUFURV9GQUlMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRklORV9FTVBUWSI+WE1MX1JOR1BfREVGSU5FX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9ERUZJTkVfTUlTU0lORyI+WE1MX1JOR1BfREVGSU5FX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRklORV9OQU1FX01JU1NJTkciPlhNTF9STkdQX0RFRklORV9OQU1FX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRl9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUiPlhNTF9STkdQX0RFRl9DSE9JQ0VfQU5EX0lOVEVSTEVBVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VMRU1FTlRfQ09OVEVOVCI+WE1MX1JOR1BfRUxFTUVOVF9DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTEVNRU5UX0VNUFRZIj5YTUxfUk5HUF9FTEVNRU5UX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTEVNRU5UX05BTUUiPlhNTF9STkdQX0VMRU1FTlRfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRUxFTUVOVF9OT19DT05URU5UIj5YTUxfUk5HUF9FTEVNRU5UX05PX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VMRU1fQ09OVEVOVF9FTVBUWSI+WE1MX1JOR1BfRUxFTV9DT05URU5UX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1IiPlhNTF9STkdQX0VMRU1fQ09OVEVOVF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNUIj5YTUxfUk5HUF9FTEVNX1RFWFRfQ09ORkxJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VNUFRZIj5YTUxfUk5HUF9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRU1QVFlfQ09OU1RSVUNUIj5YTUxfUk5HUF9FTVBUWV9DT05TVFJVQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VNUFRZX0NPTlRFTlQiPlhNTF9STkdQX0VNUFRZX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VNUFRZX05PVF9FTVBUWSI+WE1MX1JOR1BfRU1QVFlfTk9UX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FUlJPUl9UWVBFX0xJQiI+WE1MX1JOR1BfRVJST1JfVFlQRV9MSUI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9FTVBUWSI+WE1MX1JOR1BfRVhDRVBUX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FWENFUFRfTUlTU0lORyI+WE1MX1JOR1BfRVhDRVBUX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9NVUxUSVBMRSI+WE1MX1JOR1BfRVhDRVBUX01VTFRJUExFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FWENFUFRfTk9fQ09OVEVOVCI+WE1MX1JOR1BfRVhDRVBUX05PX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYVEVSTkFMUkVGX0VNVFBZIj5YTUxfUk5HUF9FWFRFUk5BTFJFRl9FTVRQWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRVhURVJOQUxSRUZfUkVDVVJTRSI+WE1MX1JOR1BfRVhURVJOQUxSRUZfUkVDVVJTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRVhURVJOQUxfUkVGX0ZBSUxVUkUiPlhNTF9STkdQX0VYVEVSTkFMX1JFRl9GQUlMVVJFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFIj5YTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9GT1JFSUdOX0VMRU1FTlQiPlhNTF9STkdQX0ZPUkVJR05fRUxFTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfR1JBTU1BUl9DT05URU5UIj5YTUxfUk5HUF9HUkFNTUFSX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0dSQU1NQVJfRU1QVFkiPlhNTF9STkdQX0dSQU1NQVJfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0dSQU1NQVJfTUlTU0lORyI+WE1MX1JOR1BfR1JBTU1BUl9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9HUkFNTUFSX05PX1NUQVJUIj5YTUxfUk5HUF9HUkFNTUFSX05PX1NUQVJUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNUIj5YTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9IUkVGX0VSUk9SIj5YTUxfUk5HUF9IUkVGX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTkNMVURFX0VNUFRZIj5YTUxfUk5HUF9JTkNMVURFX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUiPlhNTF9STkdQX0lOQ0xVREVfRkFJTFVSRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5DTFVERV9SRUNVUlNFIj5YTUxfUk5HUF9JTkNMVURFX1JFQ1VSU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVEVSTEVBVkVfQUREIj5YTUxfUk5HUF9JTlRFUkxFQVZFX0FERDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5URVJMRUFWRV9DUkVBVEVfRkFJTEVEIj5YTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVEVSTEVBVkVfRU1QVFkiPlhNTF9STkdQX0lOVEVSTEVBVkVfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVEVSTEVBVkVfTk9fQ09OVEVOVCI+WE1MX1JOR1BfSU5URVJMRUFWRV9OT19DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FIj5YTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTlZBTElEX1VSSSI+WE1MX1JOR1BfSU5WQUxJRF9VUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVkFMSURfVkFMVUUiPlhNTF9STkdQX0lOVkFMSURfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX01JU1NJTkdfSFJFRiI+WE1MX1JOR1BfTUlTU0lOR19IUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9OQU1FX01JU1NJTkciPlhNTF9STkdQX05BTUVfTUlTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfTkVFRF9DT01CSU5FIj5YTUxfUk5HUF9ORUVEX0NPTUJJTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX05PVEFMTE9XRURfTk9UX0VNUFRZIj5YTUxfUk5HUF9OT1RBTExPV0VEX05PVF9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfTlNOQU1FX0FUVFJfQU5DRVNUT1IiPlhNTF9STkdQX05TTkFNRV9BVFRSX0FOQ0VTVE9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9OU05BTUVfTk9fTlMiPlhNTF9STkdQX05TTkFNRV9OT19OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSQU1fRk9SQklEREVOIj5YTUxfUk5HUF9QQVJBTV9GT1JCSURERU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORyI+WE1MX1JOR1BfUEFSQU1fTkFNRV9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVJFTlRSRUZfQ1JFQVRFX0ZBSUxFRCI+WE1MX1JOR1BfUEFSRU5UUkVGX0NSRUFURV9GQUlMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkVOVFJFRl9OQU1FX0lOVkFMSUQiPlhNTF9STkdQX1BBUkVOVFJFRl9OQU1FX0lOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkVOVFJFRl9OT1RfRU1QVFkiPlhNTF9STkdQX1BBUkVOVFJFRl9OT1RfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkVOVFJFRl9OT19OQU1FIj5YTUxfUk5HUF9QQVJFTlRSRUZfTk9fTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSRU5UUkVGX05PX1BBUkVOVCI+WE1MX1JOR1BfUEFSRU5UUkVGX05PX1BBUkVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSU0VfRVJST1IiPlhNTF9STkdQX1BBUlNFX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfQU5ZTkFNRV9FWENFUFRfQU5ZTkFNRSI+WE1MX1JOR1BfUEFUX0FOWU5BTUVfRVhDRVBUX0FOWU5BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9BVFRSX0FUVFIiPlhNTF9STkdQX1BBVF9BVFRSX0FUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9BVFRSX0VMRU0iPlhNTF9STkdQX1BBVF9BVFRSX0VMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9BVFRSIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VMRU0iPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRU1QVFkiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfR1JPVVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfSU5URVJMRUFWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0xJU1QiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9MSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfT05FTU9SRSI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX09ORU1PUkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUYiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhUIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfVEVYVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0xJU1RfQVRUUiI+WE1MX1JOR1BfUEFUX0xJU1RfQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0xJU1RfRUxFTSI+WE1MX1JOR1BfUEFUX0xJU1RfRUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0xJU1RfSU5URVJMRUFWRSI+WE1MX1JOR1BfUEFUX0xJU1RfSU5URVJMRUFWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0xJU1RfTElTVCI+WE1MX1JOR1BfUEFUX0xJU1RfTElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0xJU1RfUkVGIj5YTUxfUk5HUF9QQVRfTElTVF9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9MSVNUX1RFWFQiPlhNTF9STkdQX1BBVF9MSVNUX1RFWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX0FOWU5BTUUiPlhNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX0FOWU5BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX05TTkFNRSI+WE1MX1JOR1BfUEFUX05TTkFNRV9FWENFUFRfTlNOQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfT05FTU9SRV9HUk9VUF9BVFRSIj5YTUxfUk5HUF9QQVRfT05FTU9SRV9HUk9VUF9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfT05FTU9SRV9JTlRFUkxFQVZFX0FUVFIiPlhNTF9STkdQX1BBVF9PTkVNT1JFX0lOVEVSTEVBVkVfQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX1NUQVJUX0FUVFIiPlhNTF9STkdQX1BBVF9TVEFSVF9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfREFUQSI+WE1MX1JOR1BfUEFUX1NUQVJUX0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9FTVBUWSI+WE1MX1JOR1BfUEFUX1NUQVJUX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAiPlhNTF9STkdQX1BBVF9TVEFSVF9HUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX1NUQVJUX0lOVEVSTEVBVkUiPlhNTF9STkdQX1BBVF9TVEFSVF9JTlRFUkxFQVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfTElTVCI+WE1MX1JOR1BfUEFUX1NUQVJUX0xJU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9PTkVNT1JFIj5YTUxfUk5HUF9QQVRfU1RBUlRfT05FTU9SRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX1NUQVJUX1RFWFQiPlhNTF9STkdQX1BBVF9TVEFSVF9URVhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfVkFMVUUiPlhNTF9STkdQX1BBVF9TVEFSVF9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRCI+WE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQiPlhNTF9STkdQX1JFRl9DUkVBVEVfRkFJTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfQ1lDTEUiPlhNTF9STkdQX1JFRl9DWUNMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRCI+WE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUkVGX05PVF9FTVBUWSI+WE1MX1JOR1BfUkVGX05PVF9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUkVGX05PX0RFRiI+WE1MX1JOR1BfUkVGX05PX0RFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUkVGX05PX05BTUUiPlhNTF9STkdQX1JFRl9OT19OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9TVEFSVF9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUiPlhNTF9STkdQX1NUQVJUX0NIT0lDRV9BTkRfSU5URVJMRUFWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfU1RBUlRfQ09OVEVOVCI+WE1MX1JOR1BfU1RBUlRfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfU1RBUlRfRU1QVFkiPlhNTF9STkdQX1NUQVJUX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9TVEFSVF9NSVNTSU5HIj5YTUxfUk5HUF9TVEFSVF9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9URVhUX0VYUEVDVEVEIj5YTUxfUk5HUF9URVhUX0VYUEVDVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9URVhUX0hBU19DSElMRCI+WE1MX1JOR1BfVEVYVF9IQVNfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1RZUEVfTUlTU0lORyI+WE1MX1JOR1BfVFlQRV9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9UWVBFX05PVF9GT1VORCI+WE1MX1JOR1BfVFlQRV9OT1RfRk9VTkQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1RZUEVfVkFMVUUiPlhNTF9STkdQX1RZUEVfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1VOS05PV05fQVRUUklCVVRFIj5YTUxfUk5HUF9VTktOT1dOX0FUVFJJQlVURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FIj5YTUxfUk5HUF9VTktOT1dOX0NPTUJJTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1VOS05PV05fQ09OU1RSVUNUIj5YTUxfUk5HUF9VTktOT1dOX0NPTlNUUlVDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVU5LTk9XTl9UWVBFX0xJQiI+WE1MX1JOR1BfVU5LTk9XTl9UWVBFX0xJQjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVVJJX0ZSQUdNRU5UIj5YTUxfUk5HUF9VUklfRlJBR01FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1VSSV9OT1RfQUJTT0xVVEUiPlhNTF9STkdQX1VSSV9OT1RfQUJTT0xVVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1ZBTFVFX0VNUFRZIj5YTUxfUk5HUF9WQUxVRV9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVkFMVUVfTk9fQ09OVEVOVCI+WE1MX1JOR1BfVkFMVUVfTk9fQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfWE1MTlNfTkFNRSI+WE1MX1JOR1BfWE1MTlNfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfWE1MX05TIj5YTUxfUk5HUF9YTUxfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQVZFX0NIQVJfSU5WQUxJRCI+WE1MX1NBVkVfQ0hBUl9JTlZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0FWRV9OT1RfVVRGOCI+WE1MX1NBVkVfTk9UX1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQVZFX05PX0RPQ1RZUEUiPlhNTF9TQVZFX05PX0RPQ1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQVZFX1VOS05PV05fRU5DT0RJTkciPlhNTF9TQVZFX1VOS05PV05fRU5DT0RJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1QiPlhNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FUVFJGT1JNREVGQVVMVF9WQUxVRSI+WE1MX1NDSEVNQVBfQVRUUkZPUk1ERUZBVUxUX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9BVFRSR1JQX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfQVRUUkdSUF9OT05BTUVfTk9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FUVFJfTk9OQU1FX05PUkVGIj5YTUxfU0NIRU1BUF9BVFRSX05PTkFNRV9OT1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVCI+WE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzMiPlhNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT01QTEVYVFlQRV9OT05BTUVfTk9SRUYiPlhNTF9TQ0hFTUFQX0NPTVBMRVhUWVBFX05PTkFNRV9OT1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX0FMTF9MSU1JVEVEIj5YTUxfU0NIRU1BUF9DT1NfQUxMX0xJTUlURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSI+WE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzIiPlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8zIj5YTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8yIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMyI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzQiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl81Ij5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMV8yIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8zIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNCI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl80PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzUiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMSI+WE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8xIj5YTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8xIj5YTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzIiPlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMyI+WE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzQiPlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF81Ij5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NWQ19TSU1QTEVfVFlQRSI+WE1MX1NDSEVNQVBfQ1ZDX1NJTVBMRV9UWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DX1BST1BTX0NPUlJFQ1QiPlhNTF9TQ0hFTUFQX0NfUFJPUFNfQ09SUkVDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVGX0FORF9QUkVGSVgiPlhNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzEiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMSI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMiI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMyI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzIiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzMiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzEiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMiI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8zIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRUxFTUZPUk1ERUZBVUxUX1ZBTFVFIj5YTUxfU0NIRU1BUF9FTEVNRk9STURFRkFVTFRfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VMRU1fREVGQVVMVF9GSVhFRCI+WE1MX1NDSEVNQVBfRUxFTV9ERUZBVUxUX0ZJWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FTEVNX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfRUxFTV9OT05BTUVfTk9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VYVEVOU0lPTl9OT19CQVNFIj5YTUxfU0NIRU1BUF9FWFRFTlNJT05fTk9fQkFTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfMyI+WE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF80Ij5YTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzUiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF81PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNiI+WE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0ZBQ0VUX05PX1ZBTFVFIj5YTUxfU0NIRU1BUF9GQUNFVF9OT19WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRkFJTEVEX0JVSUxEX0lNUE9SVCI+WE1MX1NDSEVNQVBfRkFJTEVEX0JVSUxEX0lNUE9SVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRkFJTEVEX0xPQUQiPlhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9GQUlMRURfUEFSU0UiPlhNTF9TQ0hFTUFQX0ZBSUxFRF9QQVJTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfR1JPVVBfTk9OQU1FX05PUkVGIj5YTUxfU0NIRU1BUF9HUk9VUF9OT05BTUVfTk9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lNUE9SVF9OQU1FU1BBQ0VfTk9UX1VSSSI+WE1MX1NDSEVNQVBfSU1QT1JUX05BTUVTUEFDRV9OT1RfVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTVBPUlRfUkVERUZJTkVfTlNOQU1FIj5YTUxfU0NIRU1BUF9JTVBPUlRfUkVERUZJTkVfTlNOQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTVBPUlRfU0NIRU1BX05PVF9VUkkiPlhNTF9TQ0hFTUFQX0lNUE9SVF9TQ0hFTUFfTk9UX1VSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9UX1VSSSI+WE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9UX1VSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9fVVJJIj5YTUxfU0NIRU1BUF9JTkNMVURFX1NDSEVNQV9OT19VUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVEVSTkFMIj5YTUxfU0NIRU1BUF9JTlRFUk5BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5URVJTRUNUSU9OX05PVF9FWFBSRVNTSUJMRSI+WE1MX1NDSEVNQVBfSU5URVJTRUNUSU9OX05PVF9FWFBSRVNTSUJMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0NPTUJJTkFUSU9OIj5YTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfQ09NQklOQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT04iPlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9OQU1FIj5YTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX1VTRSI+WE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX1VTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9CT09MRUFOIj5YTUxfU0NIRU1BUF9JTlZBTElEX0JPT0xFQU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfRU5VTSI+WE1MX1NDSEVNQVBfSU5WQUxJRF9FTlVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUIj5YTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFIj5YTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX01BWE9DQ1VSUyI+WE1MX1NDSEVNQVBfSU5WQUxJRF9NQVhPQ0NVUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfTUlOT0NDVVJTIj5YTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9SRUZfQU5EX1NVQlRZUEUiPlhNTF9TQ0hFTUFQX0lOVkFMSURfUkVGX0FORF9TVUJUWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX1dISVRFX1NQQUNFIj5YTUxfU0NIRU1BUF9JTlZBTElEX1dISVRFX1NQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTUdfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX01JU1NJTkdfU0lNUExFVFlQRV9DSElMRCI+WE1MX1NDSEVNQVBfTUlTU0lOR19TSU1QTEVUWVBFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9OT0FUVFJfTk9SRUYiPlhNTF9TQ0hFTUFQX05PQVRUUl9OT1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9ST09UIj5YTUxfU0NIRU1BUF9OT1JPT1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVEFUSU9OX05PX05BTUUiPlhNTF9TQ0hFTUFQX05PVEFUSU9OX05PX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVEhJTkdfVE9fUEFSU0UiPlhNTF9TQ0hFTUFQX05PVEhJTkdfVE9fUEFSU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVFlQRV9OT1JFRiI+WE1MX1NDSEVNQVBfTk9UWVBFX05PUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQyI+WE1MX1NDSEVNQVBfTk9UX0RFVEVSTUlOSVNUSUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX05PVF9TQ0hFTUE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PX1hNTE5TIj5YTUxfU0NIRU1BUF9OT19YTUxOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9fWFNJIj5YTUxfU0NIRU1BUF9OT19YU0k8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1BSRUZJWF9VTkRFRklORUQiPlhNTF9TQ0hFTUFQX1BSRUZJWF9VTkRFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xIj5YTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMSI+WE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMiI+WE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVDVVJTSVZFIj5YTUxfU0NIRU1BUF9SRUNVUlNJVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSIj5YTUxfU0NIRU1BUF9SRURFRklORURfQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFJHUk9VUCI+WE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFJHUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX0VMRU1FTlQiPlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9FTEVNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRURFRklORURfR1JPVVAiPlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9HUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX05PVEFUSU9OIj5YTUxfU0NIRU1BUF9SRURFRklORURfTk9UQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9UWVBFIj5YTUxfU0NIRU1BUF9SRURFRklORURfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVGX0FORF9DT05URU5UIj5YTUxfU0NIRU1BUF9SRUZfQU5EX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFRl9BTkRfU1VCVFlQRSI+WE1MX1NDSEVNQVBfUkVGX0FORF9TVUJUWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRUdFWFBfSU5WQUxJRCI+WE1MX1NDSEVNQVBfUkVHRVhQX0lOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFU1RSSUNUSU9OX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfUkVTVFJJQ1RJT05fTk9OQU1FX05PUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCI+WE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkciPlhNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VEIj5YTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU0lNUExFVFlQRV9OT05BTUUiPlhNTF9TQ0hFTUFQX1NJTVBMRVRZUEVfTk9OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzEiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8yIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18xIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8zXzIiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzQiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8xIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMiI+WE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzMiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0NUXzEiPlhNTF9TQ0hFTUFQX1NSQ19DVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8xIj5YTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzEiPlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8yIj5YTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzMiPlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlQiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8xIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8xXzIiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzIiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzEiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMiI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18xIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzIiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU5DTFVERSI+WE1MX1NDSEVNQVBfU1JDX0lOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEUiPlhNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19SRURFRklORSI+WE1MX1NDSEVNQVBfU1JDX1JFREVGSU5FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSI+WE1MX1NDSEVNQVBfU1JDX1JFU09MVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19SRVNUUklDVElPTl9CQVNFX09SX1NJTVBMRVRZUEUiPlhNTF9TQ0hFTUFQX1NSQ19SRVNUUklDVElPTl9CQVNFX09SX1NJTVBMRVRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8xIj5YTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzIiPlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMyI+WE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV80Ij5YTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX1VOSU9OX01FTUJFUlRZUEVTX09SX1NJTVBMRVRZUEVTIj5YTUxfU0NIRU1BUF9TUkNfVU5JT05fTUVNQkVSVFlQRVNfT1JfU0lNUExFVFlQRVM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMSI+WE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEUiPlhNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1RZUEVfQU5EX1NVQlRZUEUiPlhNTF9TQ0hFTUFQX1RZUEVfQU5EX1NVQlRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOSU9OX05PVF9FWFBSRVNTSUJMRSI+WE1MX1NDSEVNQVBfVU5JT05fTk9UX0VYUFJFU1NJQkxFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0FMTF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9BTExfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQU5ZQVRUUklCVVRFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FOWUFUVFJJQlVURV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSR1JQX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJHUlBfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQVRUUklCVVRFX0dST1VQIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJJQlVURV9HUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQkFTRV9UWVBFIj5YTUxfU0NIRU1BUF9VTktOT1dOX0JBU0VfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9DSE9JQ0VfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fQ0hPSUNFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhDT05URU5UX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhDT05URU5UX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0VMRU1fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fRUxFTV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9FWFRFTlNJT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fRVhURU5TSU9OX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX1RZUEUiPlhNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9HUk9VUF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9HUk9VUF9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9JTVBPUlRfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fSU1QT1JUX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0lOQ0xVREVfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fSU5DTFVERV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9MSVNUX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0xJU1RfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fTUVNQkVSX1RZUEUiPlhNTF9TQ0hFTUFQX1VOS05PV05fTUVNQkVSX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fUFJFRklYIj5YTUxfU0NIRU1BUF9VTktOT1dOX1BSRUZJWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9SRUYiPlhNTF9TQ0hFTUFQX1VOS05PV05fUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1JFU1RSSUNUSU9OX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX1JFU1RSSUNUSU9OX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1NDSEVNQVNfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fU0NIRU1BU19DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9TRVFVRU5DRV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9TRVFVRU5DRV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVDT05URU5UX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRUNPTlRFTlRfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFVFlQRV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVUWVBFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1RZUEUiPlhNTF9TQ0hFTUFQX1VOS05PV05fVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9VTklPTl9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9VTklPTl9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1BPSU5UTEVTU19QUk9IIj5YTUxfU0NIRU1BUF9XQVJOX0FUVFJfUE9JTlRMRVNTX1BST0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1dBUk5fQVRUUl9SRURFQ0xfUFJPSCI+WE1MX1NDSEVNQVBfV0FSTl9BVFRSX1JFREVDTF9QUk9IPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9XQVJOX1NLSVBfU0NIRU1BIj5YTUxfU0NIRU1BUF9XQVJOX1NLSVBfU0NIRU1BPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9XQVJOX1VOTE9DQVRFRF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX1dBUk5fVU5MT0NBVEVEX1NDSEVNQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVIiPlhNTF9TQ0hFTUFQX1dJTERDQVJEX0lOVkFMSURfTlNfTUVNQkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVFJPTlZfQVNTRVJUIj5YTUxfU0NIRU1BVFJPTlZfQVNTRVJUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVFJPTlZfUkVQT1JUIj5YTUxfU0NIRU1BVFJPTlZfUkVQT1JUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9BVFRSSU5WQUxJRCI+WE1MX1NDSEVNQVZfQVRUUklOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0FUVFJVTktOT1dOIj5YTUxfU0NIRU1BVl9BVFRSVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ09OU1RSVUNUIj5YTUxfU0NIRU1BVl9DT05TVFJVQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMSI+WE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzIiPlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8zIj5YTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfNCI+WE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV80PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQVUiPlhNTF9TQ0hFTUFWX0NWQ19BVTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzIiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMyI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl80Ij5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzEiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8yIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzQiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzEiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzVfMiI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSI+WE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzIiPlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8zIj5YTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzIiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzRfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzMiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMiI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfNiI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF82PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzciPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfRU5VTUVSQVRJT05fVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19GQUNFVF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX0ZBQ0VUX1ZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19GUkFDVElPTkRJR0lUU19WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0lEQyI+WE1MX1NDSEVNQVZfQ1ZDX0lEQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01BWEVYQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWEVYQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01JTkVYQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTkVYQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01JTklOQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTklOQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1BBVFRFUk5fVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19QQVRURVJOX1ZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19UT1RBTERJR0lUU19WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMSI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMiI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzEiPlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMiI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19XSUxEQ0FSRCI+WE1MX1NDSEVNQVZfQ1ZDX1dJTERDQVJEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9ET0NVTUVOVF9FTEVNRU5UX01JU1NJTkciPlhNTF9TQ0hFTUFWX0RPQ1VNRU5UX0VMRU1FTlRfTUlTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfRUxFTUNPTlQiPlhNTF9TQ0hFTUFWX0VMRU1DT05UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQiPlhNTF9TQ0hFTUFWX0VMRU1FTlRfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfRVhUUkFDT05URU5UIj5YTUxfU0NIRU1BVl9FWFRSQUNPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0ZBQ0VUIj5YTUxfU0NIRU1BVl9GQUNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfSEFWRURFRkFVTFQiPlhNTF9TQ0hFTUFWX0hBVkVERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9JTlRFUk5BTCI+WE1MX1NDSEVNQVZfSU5URVJOQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0lOVkFMSURBVFRSIj5YTUxfU0NIRU1BVl9JTlZBTElEQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfSU5WQUxJREVMRU0iPlhNTF9TQ0hFTUFWX0lOVkFMSURFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9JU0FCU1RSQUNUIj5YTUxfU0NIRU1BVl9JU0FCU1RSQUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9NSVNDIj5YTUxfU0NIRU1BVl9NSVNDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9NSVNTSU5HIj5YTUxfU0NIRU1BVl9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1JPTExCQUNLIj5YTUxfU0NIRU1BVl9OT1JPTExCQUNLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1JPT1QiPlhNTF9TQ0hFTUFWX05PUk9PVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UREVURVJNSU5JU1QiPlhNTF9TQ0hFTUFWX05PVERFVEVSTUlOSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1RFTVBUWSI+WE1MX1NDSEVNQVZfTk9URU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX05PVE5JTExBQkxFIj5YTUxfU0NIRU1BVl9OT1ROSUxMQUJMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UU0lNUExFIj5YTUxfU0NIRU1BVl9OT1RTSU1QTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX05PVFRPUExFVkVMIj5YTUxfU0NIRU1BVl9OT1RUT1BMRVZFTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UWVBFIj5YTUxfU0NIRU1BVl9OT1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX1VOREVDTEFSRURFTEVNIj5YTUxfU0NIRU1BVl9VTkRFQ0xBUkVERUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfVkFMVUUiPlhNTF9TQ0hFTUFWX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9XUk9OR0VMRU0iPlhNTF9TQ0hFTUFWX1dST05HRUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1RSRUVfSU5WQUxJRF9ERUMiPlhNTF9UUkVFX0lOVkFMSURfREVDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfVFJFRV9JTlZBTElEX0hFWCI+WE1MX1RSRUVfSU5WQUxJRF9IRVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9UUkVFX05PVF9VVEY4Ij5YTUxfVFJFRV9OT1RfVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1RSRUVfVU5URVJNSU5BVEVEX0VOVElUWSI+WE1MX1RSRUVfVU5URVJNSU5BVEVEX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9DQVRBTE9HX1BJIj5YTUxfV0FSX0NBVEFMT0dfUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9XQVJfRU5USVRZX1JFREVGSU5FRCI+WE1MX1dBUl9FTlRJVFlfUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfV0FSX0xBTkdfVkFMVUUiPlhNTF9XQVJfTEFOR19WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9OU19DT0xVTU4iPlhNTF9XQVJfTlNfQ09MVU1OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfV0FSX05TX1VSSSI+WE1MX1dBUl9OU19VUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9XQVJfTlNfVVJJX1JFTEFUSVZFIj5YTUxfV0FSX05TX1VSSV9SRUxBVElWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9TUEFDRV9WQUxVRSI+WE1MX1dBUl9TUEFDRV9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWSI+WE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9VTktOT1dOX1ZFUlNJT04iPlhNTF9XQVJfVU5LTk9XTl9WRVJTSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEIj5YTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfREVQUkVDQVRFRF9OUyI+WE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9FTlRJVFlfREVGX01JU01BVENIIj5YTUxfWElOQ0xVREVfRU5USVRZX0RFRl9NSVNNQVRDSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0ZBTExCQUNLU19JTl9JTkNMVURFIj5YTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9GQUxMQkFDS19OT1RfSU5fSU5DTFVERSI+WE1MX1hJTkNMVURFX0ZBTExCQUNLX05PVF9JTl9JTkNMVURFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfRlJBR01FTlRfSUQiPlhNTF9YSU5DTFVERV9GUkFHTUVOVF9JRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0hSRUZfVVJJIj5YTUxfWElOQ0xVREVfSFJFRl9VUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9JTkNMVURFX0lOX0lOQ0xVREUiPlhNTF9YSU5DTFVERV9JTkNMVURFX0lOX0lOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9JTlZBTElEX0NIQVIiPlhNTF9YSU5DTFVERV9JTlZBTElEX0NIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9NVUxUSVBMRV9ST09UIj5YTUxfWElOQ0xVREVfTVVMVElQTEVfUk9PVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX05PX0ZBTExCQUNLIj5YTUxfWElOQ0xVREVfTk9fRkFMTEJBQ0s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9OT19IUkVGIj5YTUxfWElOQ0xVREVfTk9fSFJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX1BBUlNFX1ZBTFVFIj5YTUxfWElOQ0xVREVfUEFSU0VfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9SRUNVUlNJT04iPlhNTF9YSU5DTFVERV9SRUNVUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9URVhUX0RPQ1VNRU5UIj5YTUxfWElOQ0xVREVfVEVYVF9ET0NVTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX1RFWFRfRlJBR01FTlQiPlhNTF9YSU5DTFVERV9URVhUX0ZSQUdNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfVU5LTk9XTl9FTkNPRElORyI+WE1MX1hJTkNMVURFX1VOS05PV05fRU5DT0RJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9YUFRSX0ZBSUxFRCI+WE1MX1hJTkNMVURFX1hQVFJfRkFJTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfWFBUUl9SRVNVTFQiPlhNTF9YSU5DTFVERV9YUFRSX1JFU1VMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0VOQ09ESU5HX0VSUk9SIj5YTUxfWFBBVEhfRU5DT0RJTkdfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9FWFBSRVNTSU9OX09LIj5YTUxfWFBBVEhfRVhQUkVTU0lPTl9PSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0VYUFJfRVJST1IiPlhNTF9YUEFUSF9FWFBSX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfSU5WQUxJRF9BUklUWSI+WE1MX1hQQVRIX0lOVkFMSURfQVJJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9JTlZBTElEX0NIQVJfRVJST1IiPlhNTF9YUEFUSF9JTlZBTElEX0NIQVJfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iPlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9JTlZBTElEX0NUWFRfU0laRSI+WE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9TSVpFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5EIj5YTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5EPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IiPlhNTF9YUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0lOVkFMSURfVFlQRSI+WE1MX1hQQVRIX0lOVkFMSURfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX01FTU9SWV9FUlJPUiI+WE1MX1hQQVRIX01FTU9SWV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX05VTUJFUl9FUlJPUiI+WE1MX1hQQVRIX05VTUJFUl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX1NUQVJUX0xJVEVSQUxfRVJST1IiPlhNTF9YUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfVU5DTE9TRURfRVJST1IiPlhNTF9YUEFUSF9VTkNMT1NFRF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiI+WE1MX1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SIj5YTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1IiPlhNTF9YUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiPlhNTF9YUEFUSF9VTktOT1dOX0ZVTkNfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IiPlhNTF9YUEFUSF9WQVJJQUJMRV9SRUZfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUFRSX0NISUxEU0VRX1NUQVJUIj5YTUxfWFBUUl9DSElMRFNFUV9TVEFSVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQVFJfRVZBTF9GQUlMRUQiPlhNTF9YUFRSX0VWQUxfRkFJTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBUUl9FWFRSQV9PQkpFQ1RTIj5YTUxfWFBUUl9FWFRSQV9PQkpFQ1RTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBUUl9SRVNPVVJDRV9FUlJPUiI+WE1MX1hQVFJfUkVTT1VSQ0VfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUFRSX1NVQl9SRVNPVVJDRV9FUlJPUiI+WE1MX1hQVFJfU1VCX1JFU09VUkNFX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBUUl9TWU5UQVhfRVJST1IiPlhNTF9YUFRSX1NZTlRBWF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQVFJfVU5LTk9XTl9TQ0hFTUUiPlhNTF9YUFRSX1VOS05PV05fU0NIRU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNfeG1sRXJyb3IiPl94bWxFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jIj5pbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbENvcHlFcnJvciI+eG1sQ29weUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxDdHh0R2V0TGFzdEVycm9yIj54bWxDdHh0R2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxDdHh0UmVzZXRMYXN0RXJyb3IiPnhtbEN0eHRSZXNldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sRXJyb3IiPnhtbEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxFcnJvckRvbWFpbiI+eG1sRXJyb3JEb21haW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yTGV2ZWwiPnhtbEVycm9yTGV2ZWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2V0TGFzdEVycm9yIj54bWxHZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9yIj54bWxQYXJzZXJFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3JzIj54bWxQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclByaW50RmlsZUNvbnRleHQiPnhtbFBhcnNlclByaW50RmlsZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclByaW50RmlsZUluZm8iPnhtbFBhcnNlclByaW50RmlsZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5RXJyb3IiPnhtbFBhcnNlclZhbGlkaXR5RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5V2FybmluZyI+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJXYXJuaW5nIj54bWxQYXJzZXJXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxSZXNldEVycm9yIj54bWxSZXNldEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxSZXNldExhc3RFcnJvciI+eG1sUmVzZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbGV4cG9ydHMiIGlkPSJ4bWxleHBvcnRzIj5Nb2R1bGUgeG1sZXhwb3J0czwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxleHBvcnRzLmh0bWwjTElCWE1MX0RMTF9JTVBPUlQiPkxJQlhNTF9ETExfSU1QT1JUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sI1hNTENBTEwiPlhNTENBTEw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxleHBvcnRzLmh0bWwjWE1MQ0RFQ0wiPlhNTENERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sI1hNTFBVQkZVTiI+WE1MUFVCRlVOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sI1hNTFBVQlZBUiI+WE1MUFVCVkFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sI19SRUVOVFJBTlQiPl9SRUVOVFJBTlQ8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbG1lbW9yeSIgaWQ9InhtbG1lbW9yeSI+TW9kdWxlIHhtbG1lbW9yeTwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCNERUJVR19NRU1PUlkiPkRFQlVHX01FTU9SWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbENsZWFudXBNZW1vcnkiPnhtbENsZWFudXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sSW5pdE1lbW9yeSI+eG1sSW5pdE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxNYWxsb2MiPnhtbE1hbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxNYWxsb2NBdG9taWMiPnhtbE1hbGxvY0F0b21pYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyI+eG1sTWFsbG9jQXRvbWljTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0xvYyI+eG1sTWFsbG9jTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtQmxvY2tzIj54bWxNZW1CbG9ja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRnJlZSI+eG1sTWVtRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtTWFsbG9jIj54bWxNZW1NYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1SZWFsbG9jIj54bWxNZW1SZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyI+eG1sTWVtU2hvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxNZW1TdHJkdXAiPnhtbE1lbVN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVN0cmR1cExvYyI+eG1sTWVtU3RyZHVwTG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtVXNlZCI+eG1sTWVtVXNlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbW9yeUR1bXAiPnhtbE1lbW9yeUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1vcnlTdHJkdXAiPnhtbE1lbW9yeVN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWFsbG9jIj54bWxSZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0xvYyI+eG1sUmVhbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbG1vZHVsZSIgaWQ9InhtbG1vZHVsZSI+TW9kdWxlIHhtbG1vZHVsZTwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCNYTUxfTU9EVUxFX0xBWlkiPlhNTF9NT0RVTEVfTEFaWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI1hNTF9NT0RVTEVfTE9DQUwiPlhNTF9NT0RVTEVfTE9DQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGUiPnhtbE1vZHVsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUNsb3NlIj54bWxNb2R1bGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUZyZWUiPnhtbE1vZHVsZUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcGVuIj54bWxNb2R1bGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlT3B0aW9uIj54bWxNb2R1bGVPcHRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVN5bWJvbCI+eG1sTW9kdWxlU3ltYm9sPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJ4bWxyZWFkZXIiIGlkPSJ4bWxyZWFkZXIiPk1vZHVsZSB4bWxyZWFkZXI8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9ERUZBVUxUQVRUUlMiPlhNTF9QQVJTRVJfREVGQVVMVEFUVFJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9MT0FERFREIj5YTUxfUEFSU0VSX0xPQUREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUEFSU0VSX1NFVkVSSVRZX0VSUk9SIj5YTUxfUEFSU0VSX1NFVkVSSVRZX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9FUlJPUiI+WE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfV0FSTklORyI+WE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9TRVZFUklUWV9XQVJOSU5HIj5YTUxfUEFSU0VSX1NFVkVSSVRZX1dBUk5JTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUEFSU0VSX1NVQlNUX0VOVElUSUVTIj5YTUxfUEFSU0VSX1NVQlNUX0VOVElUSUVTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9WQUxJREFURSI+WE1MX1BBUlNFUl9WQUxJREFURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9BVFRSSUJVVEUiPlhNTF9SRUFERVJfVFlQRV9BVFRSSUJVVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfQ0RBVEEiPlhNTF9SRUFERVJfVFlQRV9DREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9DT01NRU5UIj5YTUxfUkVBREVSX1RZUEVfQ09NTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9ET0NVTUVOVCI+WE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX0ZSQUdNRU5UIj5YTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfVFlQRSI+WE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfRUxFTUVOVCI+WE1MX1JFQURFUl9UWVBFX0VMRU1FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfRU5EX0VMRU1FTlQiPlhNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9FTkRfRU5USVRZIj5YTUxfUkVBREVSX1RZUEVfRU5EX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9FTlRJVFkiPlhNTF9SRUFERVJfVFlQRV9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfRU5USVRZX1JFRkVSRU5DRSI+WE1MX1JFQURFUl9UWVBFX0VOVElUWV9SRUZFUkVOQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfTk9ORSI+WE1MX1JFQURFUl9UWVBFX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfTk9UQVRJT04iPlhNTF9SRUFERVJfVFlQRV9OT1RBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIj5YTUxfUkVBREVSX1RZUEVfUFJPQ0VTU0lOR19JTlNUUlVDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9TSUdOSUZJQ0FOVF9XSElURVNQQUNFIj5YTUxfUkVBREVSX1RZUEVfU0lHTklGSUNBTlRfV0hJVEVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9URVhUIj5YTUxfUkVBREVSX1RZUEVfVEVYVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9XSElURVNQQUNFIj5YTUxfUkVBREVSX1RZUEVfV0hJVEVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9YTUxfREVDTEFSQVRJT04iPlhNTF9SRUFERVJfVFlQRV9YTUxfREVDTEFSQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0NMT1NFRCI+WE1MX1RFWFRSRUFERVJfTU9ERV9DTE9TRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0VPRiI+WE1MX1RFWFRSRUFERVJfTU9ERV9FT0Y8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SIj5YTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMIj5YTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFIj5YTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1RFWFRSRUFERVJfTU9ERV9SRUFESU5HIj5YTUxfVEVYVFJFQURFUl9NT0RFX1JFQURJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxGcmVlVGV4dFJlYWRlciI+eG1sRnJlZVRleHRSZWFkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxOZXdUZXh0UmVhZGVyIj54bWxOZXdUZXh0UmVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIj54bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxQYXJzZXJQcm9wZXJ0aWVzIj54bWxQYXJzZXJQcm9wZXJ0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUGFyc2VyU2V2ZXJpdGllcyI+eG1sUGFyc2VyU2V2ZXJpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvckRvYyI+eG1sUmVhZGVyRm9yRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRmQiPnhtbFJlYWRlckZvckZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRmlsZSI+eG1sUmVhZGVyRm9yRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvcklPIj54bWxSZWFkZXJGb3JJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvck1lbW9yeSI+eG1sUmVhZGVyRm9yTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RG9jIj54bWxSZWFkZXJOZXdEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGaWxlIj54bWxSZWFkZXJOZXdGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3SU8iPnhtbFJlYWRlck5ld0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3TWVtb3J5Ij54bWxSZWFkZXJOZXdNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdXYWxrZXIiPnhtbFJlYWRlck5ld1dhbGtlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlclR5cGVzIj54bWxSZWFkZXJUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlcldhbGtlciI+eG1sUmVhZGVyV2Fsa2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlciI+eG1sVGV4dFJlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCI+eG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJhc2VVcmkiPnhtbFRleHRSZWFkZXJCYXNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDbG9zZSI+eG1sVGV4dFJlYWRlckNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaSI+eG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdEVuY29kaW5nIj54bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4Ij54bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmciPnhtbFRleHRSZWFkZXJDb25zdFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFZhbHVlIj54bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFhtbExhbmciPnhtbFRleHRSZWFkZXJDb25zdFhtbExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uIj54bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnREb2MiPnhtbFRleHRSZWFkZXJDdXJyZW50RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIj54bWxUZXh0UmVhZGVyQ3VycmVudE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRGVwdGgiPnhtbFRleHRSZWFkZXJEZXB0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFcnJvckZ1bmMiPnhtbFRleHRSZWFkZXJFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXhwYW5kIj54bWxUZXh0UmVhZGVyRXhwYW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlciI+eG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyI+eG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySGFzVmFsdWUiPnhtbFRleHRSZWFkZXJIYXNWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc0RlZmF1bHQiPnhtbFRleHRSZWFkZXJJc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQiPnhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySXNWYWxpZCI+eG1sVGV4dFJlYWRlcklzVmFsaWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyTG9jYWxOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhdG9yUHRyIj54bWxUZXh0UmVhZGVyTG9jYXRvclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiPnhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW9kZSI+eG1sVGV4dFJlYWRlck1vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlIj54bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vIj54bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMiPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50Ij54bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5hbWUiPnhtbFRleHRSZWFkZXJOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0Ij54bWxUZXh0UmVhZGVyTmV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlZml4Ij54bWxUZXh0UmVhZGVyUHJlZml4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlIj54bWxUZXh0UmVhZGVyUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIj54bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJRdW90ZUNoYXIiPnhtbFRleHRSZWFkZXJRdW90ZUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZCI+eG1sVGV4dFJlYWRlclJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlIj54bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCI+eG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwiPnhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIj54bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRTdHJpbmciPnhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldHVwIj54bWxUZXh0UmVhZGVyU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSI+eG1sVGV4dFJlYWRlclN0YW5kYWxvbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyVmFsdWUiPnhtbFRleHRSZWFkZXJWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJYbWxMYW5nIj54bWxUZXh0UmVhZGVyWG1sTGFuZzwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0ieG1scmVnZXhwIiBpZD0ieG1scmVnZXhwIj5Nb2R1bGUgeG1scmVnZXhwPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI1hNTF9FWFBfQVRPTSI+WE1MX0VYUF9BVE9NPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjWE1MX0VYUF9DT1VOVCI+WE1MX0VYUF9DT1VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI1hNTF9FWFBfRU1QVFkiPlhNTF9FWFBfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCNYTUxfRVhQX0ZPUkJJRCI+WE1MX0VYUF9GT1JCSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCNYTUxfRVhQX09SIj5YTUxfRVhQX09SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjWE1MX0VYUF9TRVEiPlhNTF9FWFBfU0VRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjZW1wdHlFeHAiPmVtcHR5RXhwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjZm9yYmlkZGVuRXhwIj5mb3JiaWRkZW5FeHA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0Ij54bWxFeHBDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dE5iQ29ucyI+eG1sRXhwQ3R4dE5iQ29uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHROYk5vZGVzIj54bWxFeHBDdHh0TmJOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBEdW1wIj54bWxFeHBEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBGcmVlIj54bWxFeHBGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRnJlZUN0eHQiPnhtbEV4cEZyZWVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0TGFuZ3VhZ2UiPnhtbEV4cEdldExhbmd1YWdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwSXNOaWxsYWJsZSI+eG1sRXhwSXNOaWxsYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE1heFRva2VuIj54bWxFeHBNYXhUb2tlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0F0b20iPnhtbEV4cE5ld0F0b208L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdDdHh0Ij54bWxFeHBOZXdDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3T3IiPnhtbEV4cE5ld09yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3U2VxIj54bWxFeHBOZXdTZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlIj54bWxFeHBOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVUeXBlIj54bWxFeHBOb2RlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFBhcnNlIj54bWxFeHBQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFJlZiI+eG1sRXhwUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3RyaW5nRGVyaXZlIj54bWxFeHBTdHJpbmdEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBTdWJzdW1lIj54bWxFeHBTdWJzdW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0NhbGxiYWNrcyI+eG1sUmVnRXhlY0NhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0Ij54bWxSZWdFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNOZXh0VmFsdWVzIj54bWxSZWdFeGVjTmV4dFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nIj54bWxSZWdFeGVjUHVzaFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nMiI+eG1sUmVnRXhlY1B1c2hTdHJpbmcyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRnJlZUV4ZWNDdHh0Ij54bWxSZWdGcmVlRXhlY0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdGcmVlUmVnZXhwIj54bWxSZWdGcmVlUmVnZXhwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnTmV3RXhlY0N0eHQiPnhtbFJlZ05ld0V4ZWNDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwIj54bWxSZWdleHA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBDb21waWxlIj54bWxSZWdleHBDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwRXhlYyI+eG1sUmVnZXhwRXhlYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cElzRGV0ZXJtaW5pc3QiPnhtbFJlZ2V4cElzRGV0ZXJtaW5pc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQcmludCI+eG1sUmVnZXhwUHJpbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0ieG1sc2F2ZSIgaWQ9InhtbHNhdmUiPk1vZHVsZSB4bWxzYXZlPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCNYTUxfU0FWRV9BU19IVE1MIj5YTUxfU0FWRV9BU19IVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI1hNTF9TQVZFX0FTX1hNTCI+WE1MX1NBVkVfQVNfWE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI1hNTF9TQVZFX0ZPUk1BVCI+WE1MX1NBVkVfRk9STUFUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI1hNTF9TQVZFX05PX0RFQ0wiPlhNTF9TQVZFX05PX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjWE1MX1NBVkVfTk9fRU1QVFkiPlhNTF9TQVZFX05PX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI1hNTF9TQVZFX05PX1hIVE1MIj5YTUxfU0FWRV9OT19YSFRNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCNYTUxfU0FWRV9YSFRNTCI+WE1MX1NBVkVfWEhUTUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUNsb3NlIj54bWxTYXZlQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHQiPnhtbFNhdmVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlRG9jIj54bWxTYXZlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVGbHVzaCI+eG1sU2F2ZUZsdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVPcHRpb24iPnhtbFNhdmVPcHRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVNldEF0dHJFc2NhcGUiPnhtbFNhdmVTZXRBdHRyRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVTZXRFc2NhcGUiPnhtbFNhdmVTZXRFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvQnVmZmVyIj54bWxTYXZlVG9CdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvRmQiPnhtbFNhdmVUb0ZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZpbGVuYW1lIj54bWxTYXZlVG9GaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJ4bWxzY2hlbWFzIiBpZD0ieG1sc2NoZW1hcyI+TW9kdWxlIHhtbHNjaGVtYXM8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl8iPlhNTF9TQ0hFTUFTX0VSUl88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX0FUVFJJTlZBTElEIj5YTUxfU0NIRU1BU19FUlJfQVRUUklOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX0FUVFJVTktOT1dOIj5YTUxfU0NIRU1BU19FUlJfQVRUUlVOS05PV048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX0NPTlNUUlVDVCI+WE1MX1NDSEVNQVNfRVJSX0NPTlNUUlVDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfRUxFTUNPTlQiPlhNTF9TQ0hFTUFTX0VSUl9FTEVNQ09OVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfRVhUUkFDT05URU5UIj5YTUxfU0NIRU1BU19FUlJfRVhUUkFDT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9GQUNFVCI+WE1MX1NDSEVNQVNfRVJSX0ZBQ0VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9IQVZFREVGQVVMVCI+WE1MX1NDSEVNQVNfRVJSX0hBVkVERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9JTlRFUk5BTCI+WE1MX1NDSEVNQVNfRVJSX0lOVEVSTkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9JTlZBTElEQVRUUiI+WE1MX1NDSEVNQVNfRVJSX0lOVkFMSURBVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9JTlZBTElERUxFTSI+WE1MX1NDSEVNQVNfRVJSX0lOVkFMSURFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9JU0FCU1RSQUNUIj5YTUxfU0NIRU1BU19FUlJfSVNBQlNUUkFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfTUlTU0lORyI+WE1MX1NDSEVNQVNfRVJSX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PUk9MTEJBQ0siPlhNTF9TQ0hFTUFTX0VSUl9OT1JPTExCQUNLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1JPT1QiPlhNTF9TQ0hFTUFTX0VSUl9OT1JPT1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PVERFVEVSTUlOSVNUIj5YTUxfU0NIRU1BU19FUlJfTk9UREVURVJNSU5JU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PVEVNUFRZIj5YTUxfU0NIRU1BU19FUlJfTk9URU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PVE5JTExBQkxFIj5YTUxfU0NIRU1BU19FUlJfTk9UTklMTEFCTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PVFNJTVBMRSI+WE1MX1NDSEVNQVNfRVJSX05PVFNJTVBMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfTk9UVE9QTEVWRUwiPlhNTF9TQ0hFTUFTX0VSUl9OT1RUT1BMRVZFTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfTk9UWVBFIj5YTUxfU0NIRU1BU19FUlJfTk9UWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9PSyI+WE1MX1NDSEVNQVNfRVJSX09LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9VTkRFQ0xBUkVERUxFTSI+WE1MX1NDSEVNQVNfRVJSX1VOREVDTEFSRURFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9WQUxVRSI+WE1MX1NDSEVNQVNfRVJSX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9XUk9OR0VMRU0iPlhNTF9TQ0hFTUFTX0VSUl9XUk9OR0VMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX1hYWCI+WE1MX1NDSEVNQVNfRVJSX1hYWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BX1ZBTF9WQ19JX0NSRUFURSI+WE1MX1NDSEVNQV9WQUxfVkNfSV9DUkVBVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hIj54bWxTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hRHVtcCI+eG1sU2NoZW1hRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFGcmVlIj54bWxTY2hlbWFGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUZyZWVQYXJzZXJDdHh0Ij54bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFGcmVlVmFsaWRDdHh0Ij54bWxTY2hlbWFGcmVlVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFBhcnNlckVycm9ycyI+eG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFZhbGlkRXJyb3JzIj54bWxTY2hlbWFHZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFJc1ZhbGlkIj54bWxTY2hlbWFJc1ZhbGlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFOZXdQYXJzZXJDdHh0Ij54bWxTY2hlbWFOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hTmV3VmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlIj54bWxTY2hlbWFQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0Ij54bWxTY2hlbWFQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1ZyI+eG1sU2NoZW1hU0FYUGx1ZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnUHRyIj54bWxTY2hlbWFTQVhQbHVnUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiPnhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYVW5wbHVnIj54bWxTY2hlbWFTQVhVbnBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIj54bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0Ij54bWxTY2hlbWFWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0Ij54bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkRXJyb3IiPnhtbFNjaGVtYVZhbGlkRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRPcHRpb24iPnhtbFNjaGVtYVZhbGlkT3B0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRG9jIj54bWxTY2hlbWFWYWxpZGF0ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZpbGUiPnhtbFNjaGVtYVZhbGlkYXRlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSI+eG1sU2NoZW1hVmFsaWRhdGVTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbHNjaGVtYXN0eXBlcyIgaWQ9InhtbHNjaGVtYXN0eXBlcyI+TW9kdWxlIHhtbHNjaGVtYXN0eXBlczwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCNYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UiPlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI1hNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRSI+WE1MX1NDSEVNQV9XSElURVNQQUNFX1BSRVNFUlZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjWE1MX1NDSEVNQV9XSElURVNQQUNFX1JFUExBQ0UiPlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04iPlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNsZWFudXBUeXBlcyI+eG1sU2NoZW1hQ2xlYW51cFR5cGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmciPnhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29tcGFyZVZhbHVlcyI+eG1sU2NoZW1hQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcCI+eG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29weVZhbHVlIj54bWxTY2hlbWFDb3B5VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlRmFjZXQiPnhtbFNjaGVtYUZyZWVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUZyZWVWYWx1ZSI+eG1sU2NoZW1hRnJlZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmciPnhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0VmFsVHlwZSI+eG1sU2NoZW1hR2V0VmFsVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUluaXRUeXBlcyI+eG1sU2NoZW1hSW5pdFR5cGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0Ij54bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdGYWNldCI+eG1sU2NoZW1hTmV3RmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlIj54bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSI+eG1sU2NoZW1hTmV3UU5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSI+eG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlQXBwZW5kIj54bWxTY2hlbWFWYWx1ZUFwcGVuZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuIj54bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmciPnhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWx1ZUdldE5leHQiPnhtbFNjaGVtYVZhbHVlR2V0TmV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIj54bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbHN0cmluZyIgaWQ9InhtbHN0cmluZyI+TW9kdWxlIHhtbHN0cmluZzwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCNCQURfQ0FTVCI+QkFEX0NBU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhclN0cmR1cCI+eG1sQ2hhclN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXJTdHJuZHVwIj54bWxDaGFyU3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoZWNrVVRGOCI+eG1sQ2hlY2tVVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sR2V0VVRGOENoYXIiPnhtbEdldFVURjhDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyRXF1YWwiPnhtbFN0ckVxdWFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUHJpbnRmIj54bWxTdHJQcmludGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJRRXF1YWwiPnhtbFN0clFFcXVhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clZQcmludGYiPnhtbFN0clZQcmludGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXNlY21wIj54bWxTdHJjYXNlY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZXN0ciI+eG1sU3RyY2FzZXN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhdCI+eG1sU3RyY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2hyIj54bWxTdHJjaHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjbXAiPnhtbFN0cmNtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmR1cCI+eG1sU3RyZHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybGVuIj54bWxTdHJsZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2FzZWNtcCI+eG1sU3RybmNhc2VjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0Ij54bWxTdHJuY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhdE5ldyI+eG1sU3RybmNhdE5ldzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jbXAiPnhtbFN0cm5jbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuZHVwIj54bWxTdHJuZHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3RyIj54bWxTdHJzdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJzdWIiPnhtbFN0cnN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhDaGFyY21wIj54bWxVVEY4Q2hhcmNtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTaXplIj54bWxVVEY4U2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsZW4iPnhtbFVURjhTdHJsZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RybG9jIj54bWxVVEY4U3RybG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cm5kdXAiPnhtbFVURjhTdHJuZHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnBvcyI+eG1sVVRGOFN0cnBvczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzdWIiPnhtbFVURjhTdHJzdWI8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbHVuaWNvZGUiIGlkPSJ4bWx1bmljb2RlIj5Nb2R1bGUgeG1sdW5pY29kZTwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBZWdlYW5OdW1iZXJzIj54bWxVQ1NJc0FlZ2Vhbk51bWJlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMiPnhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQXJhYmljIj54bWxVQ1NJc0FyYWJpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQSI+eG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IiPnhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQXJtZW5pYW4iPnhtbFVDU0lzQXJtZW5pYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBcnJvd3MiPnhtbFVDU0lzQXJyb3dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmFzaWNMYXRpbiI+eG1sVUNTSXNCYXNpY0xhdGluPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmVuZ2FsaSI+eG1sVUNTSXNCZW5nYWxpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmxvY2siPnhtbFVDU0lzQmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCbG9ja0VsZW1lbnRzIj54bWxVQ1NJc0Jsb2NrRWxlbWVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCb3BvbW9mbyI+eG1sVUNTSXNCb3BvbW9mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQiPnhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JveERyYXdpbmciPnhtbFVDU0lzQm94RHJhd2luZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJucyI+eG1sVUNTSXNCcmFpbGxlUGF0dGVybnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCdWhpZCI+eG1sVUNTSXNCdWhpZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzIj54bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zIj54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIj54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50Ij54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudCI+eG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24iPnhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CIj54bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdCI+eG1sVUNTSXNDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDIj54bWxVQ1NJc0NhdEM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDYyI+eG1sVUNTSXNDYXRDYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdENmIj54bWxVQ1NJc0NhdENmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Q28iPnhtbFVDU0lzQ2F0Q288L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDcyI+eG1sVUNTSXNDYXRDczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdEwiPnhtbFVDU0lzQ2F0TDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdExsIj54bWxVQ1NJc0NhdExsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0TG0iPnhtbFVDU0lzQ2F0TG08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRMbyI+eG1sVUNTSXNDYXRMbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdEx0Ij54bWxVQ1NJc0NhdEx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0THUiPnhtbFVDU0lzQ2F0THU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRNIj54bWxVQ1NJc0NhdE08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRNYyI+eG1sVUNTSXNDYXRNYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdE1lIj54bWxVQ1NJc0NhdE1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0TW4iPnhtbFVDU0lzQ2F0TW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXROIj54bWxVQ1NJc0NhdE48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXROZCI+eG1sVUNTSXNDYXROZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdE5sIj54bWxVQ1NJc0NhdE5sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Tm8iPnhtbFVDU0lzQ2F0Tm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQIj54bWxVQ1NJc0NhdFA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQYyI+eG1sVUNTSXNDYXRQYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFBkIj54bWxVQ1NJc0NhdFBkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0UGUiPnhtbFVDU0lzQ2F0UGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQZiI+eG1sVUNTSXNDYXRQZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFBpIj54bWxVQ1NJc0NhdFBpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0UG8iPnhtbFVDU0lzQ2F0UG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQcyI+eG1sVUNTSXNDYXRQczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFMiPnhtbFVDU0lzQ2F0UzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFNjIj54bWxVQ1NJc0NhdFNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0U2siPnhtbFVDU0lzQ2F0U2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRTbSI+eG1sVUNTSXNDYXRTbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFNvIj54bWxVQ1NJc0NhdFNvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0WiI+eG1sVUNTSXNDYXRaPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0WmwiPnhtbFVDU0lzQ2F0Wmw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRacCI+eG1sVUNTSXNDYXRacDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFpzIj54bWxVQ1NJc0NhdFpzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2hlcm9rZWUiPnhtbFVDU0lzQ2hlcm9rZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIj54bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyI+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrcyI+eG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMiPnhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ29udHJvbFBpY3R1cmVzIj54bWxVQ1NJc0NvbnRyb2xQaWN0dXJlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0N1cnJlbmN5U3ltYm9scyI+eG1sVUNTSXNDdXJyZW5jeVN5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5Ij54bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDeXJpbGxpYyI+eG1sVUNTSXNDeXJpbGxpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudCI+eG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEZXNlcmV0Ij54bWxVQ1NJc0Rlc2VyZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEZXZhbmFnYXJpIj54bWxVQ1NJc0RldmFuYWdhcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEaW5nYmF0cyI+eG1sVUNTSXNEaW5nYmF0czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcyI+eG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMiPnhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzRXRoaW9waWMiPnhtbFVDU0lzRXRoaW9waWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24iPnhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR2VvbWV0cmljU2hhcGVzIj54bWxVQ1NJc0dlb21ldHJpY1NoYXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dlb3JnaWFuIj54bWxVQ1NJc0dlb3JnaWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR290aGljIj54bWxVQ1NJc0dvdGhpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dyZWVrIj54bWxVQ1NJc0dyZWVrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3JlZWtFeHRlbmRlZCI+eG1sVUNTSXNHcmVla0V4dGVuZGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3JlZWthbmRDb3B0aWMiPnhtbFVDU0lzR3JlZWthbmRDb3B0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHdWphcmF0aSI+eG1sVUNTSXNHdWphcmF0aTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0d1cm11a2hpIj54bWxVQ1NJc0d1cm11a2hpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMiPnhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyI+eG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bEphbW8iPnhtbFVDU0lzSGFuZ3VsSmFtbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcyI+eG1sVUNTSXNIYW5ndWxTeWxsYWJsZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIYW51bm9vIj54bWxVQ1NJc0hhbnVub288L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIZWJyZXciPnhtbFVDU0lzSGVicmV3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIj54bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzIj54bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGlyYWdhbmEiPnhtbFVDU0lzSGlyYWdhbmE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNJUEFFeHRlbnNpb25zIj54bWxVQ1NJc0lQQUV4dGVuc2lvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyI+eG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thbmJ1biI+eG1sVUNTSXNLYW5idW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNLYW5neGlSYWRpY2FscyI+eG1sVUNTSXNLYW5neGlSYWRpY2FsczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thbm5hZGEiPnhtbFVDU0lzS2FubmFkYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thdGFrYW5hIj54bWxVQ1NJc0thdGFrYW5hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMiPnhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNLaG1lciI+eG1sVUNTSXNLaG1lcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0tobWVyU3ltYm9scyI+eG1sVUNTSXNLaG1lclN5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYW8iPnhtbFVDU0lzTGFvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudCI+eG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGF0aW5FeHRlbmRlZEEiPnhtbFVDU0lzTGF0aW5FeHRlbmRlZEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCI+eG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMiPnhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMaW1idSI+eG1sVUNTSXNMaW1idTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiPnhtbFVDU0lzTGluZWFyQklkZW9ncmFtczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkiPnhtbFVDU0lzTGluZWFyQlN5bGxhYmFyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMiPnhtbFVDU0lzTG93U3Vycm9nYXRlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01hbGF5YWxhbSI+eG1sVUNTSXNNYWxheWFsYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIj54bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMiPnhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQiI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scyI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTW9uZ29saWFuIj54bWxVQ1NJc01vbmdvbGlhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc011c2ljYWxTeW1ib2xzIj54bWxVQ1NJc011c2ljYWxTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTXlhbm1hciI+eG1sVUNTSXNNeWFubWFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTnVtYmVyRm9ybXMiPnhtbFVDU0lzTnVtYmVyRm9ybXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPZ2hhbSI+eG1sVUNTSXNPZ2hhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc09sZEl0YWxpYyI+eG1sVUNTSXNPbGRJdGFsaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24iPnhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzT3JpeWEiPnhtbFVDU0lzT3JpeWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPc21hbnlhIj54bWxVQ1NJc09zbWFueWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMiPnhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzUHJpdmF0ZVVzZSI+eG1sVUNTSXNQcml2YXRlVXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzUHJpdmF0ZVVzZUFyZWEiPnhtbFVDU0lzUHJpdmF0ZVVzZUFyZWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNSdW5pYyI+eG1sVUNTSXNSdW5pYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NoYXZpYW4iPnhtbFVDU0lzU2hhdmlhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NpbmhhbGEiPnhtbFVDU0lzU2luaGFsYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzIj54bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyI+eG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3BlY2lhbHMiPnhtbFVDU0lzU3BlY2lhbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzIj54bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBIj54bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCIj54bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMiPnhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQiI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3lyaWFjIj54bWxVQ1NJc1N5cmlhYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhZ2Fsb2ciPnhtbFVDU0lzVGFnYWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhZ2JhbndhIj54bWxVQ1NJc1RhZ2JhbndhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFncyI+eG1sVUNTSXNUYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFpTGUiPnhtbFVDU0lzVGFpTGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMiPnhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFtaWwiPnhtbFVDU0lzVGFtaWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNUZWx1Z3UiPnhtbFVDU0lzVGVsdWd1PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGhhYW5hIj54bWxVQ1NJc1RoYWFuYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RoYWkiPnhtbFVDU0lzVGhhaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RpYmV0YW4iPnhtbFVDU0lzVGliZXRhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1VnYXJpdGljIj54bWxVQ1NJc1VnYXJpdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyI+eG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzIj54bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQiPnhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1lpUmFkaWNhbHMiPnhtbFVDU0lzWWlSYWRpY2FsczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1lpU3lsbGFibGVzIj54bWxVQ1NJc1lpU3lsbGFibGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzIj54bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9sczwvYT48YnIgLz4KKzwvcD48aDI+PGEgbmFtZT0ieG1sdmVyc2lvbiIgaWQ9InhtbHZlcnNpb24iPk1vZHVsZSB4bWx2ZXJzaW9uPC9hPjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNBVFRSSUJVVEVfVU5VU0VEIj5BVFRSSUJVVEVfVU5VU0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0RFQlVHX01FTU9SWV9MT0NBVElPTiI+REVCVUdfTUVNT1JZX0xPQ0FUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9BVFRSX0FMTE9DX1NJWkUiPkxJQlhNTF9BVFRSX0FMTE9DX1NJWkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FUVFJfRk9STUFUIj5MSUJYTUxfQVRUUl9GT1JNQVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQiPkxJQlhNTF9BVVRPTUFUQV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9DMTROX0VOQUJMRUQiPkxJQlhNTF9DMTROX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0NBVEFMT0dfRU5BQkxFRCI+TElCWE1MX0NBVEFMT0dfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfREVCVUdfRU5BQkxFRCI+TElCWE1MX0RFQlVHX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RFQlVHX1JVTlRJTUUiPkxJQlhNTF9ERUJVR19SVU5USU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9ET0NCX0VOQUJMRUQiPkxJQlhNTF9ET0NCX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RPVFRFRF9WRVJTSU9OIj5MSUJYTUxfRE9UVEVEX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0VYUFJfRU5BQkxFRCI+TElCWE1MX0VYUFJfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfRlRQX0VOQUJMRUQiPkxJQlhNTF9GVFBfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfSFRNTF9FTkFCTEVEIj5MSUJYTUxfSFRNTF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9IVFRQX0VOQUJMRUQiPkxJQlhNTF9IVFRQX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0lDT05WX0VOQUJMRUQiPkxJQlhNTF9JQ09OVl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9JU084ODU5WF9FTkFCTEVEIj5MSUJYTUxfSVNPODg1OVhfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfTEVHQUNZX0VOQUJMRUQiPkxJQlhNTF9MRUdBQ1lfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfTU9EVUxFU19FTkFCTEVEIj5MSUJYTUxfTU9EVUxFU19FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9NT0RVTEVfRVhURU5TSU9OIj5MSUJYTUxfTU9EVUxFX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfT1VUUFVUX0VOQUJMRUQiPkxJQlhNTF9PVVRQVVRfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfUEFUVEVSTl9FTkFCTEVEIj5MSUJYTUxfUEFUVEVSTl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9QVVNIX0VOQUJMRUQiPkxJQlhNTF9QVVNIX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1JFQURFUl9FTkFCTEVEIj5MSUJYTUxfUkVBREVSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1JFR0VYUF9FTkFCTEVEIj5MSUJYTUxfUkVHRVhQX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1NBWDFfRU5BQkxFRCI+TElCWE1MX1NBWDFfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfU0NIRU1BU19FTkFCTEVEIj5MSUJYTUxfU0NIRU1BU19FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQiPkxJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1RFU1RfVkVSU0lPTiI+TElCWE1MX1RFU1RfVkVSU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVEhSRUFEX0VOQUJMRUQiPkxJQlhNTF9USFJFQURfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVFJFRV9FTkFCTEVEIj5MSUJYTUxfVFJFRV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9VTklDT0RFX0VOQUJMRUQiPkxJQlhNTF9VTklDT0RFX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1ZBTElEX0VOQUJMRUQiPkxJQlhNTF9WQUxJRF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9WRVJTSU9OIj5MSUJYTUxfVkVSU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVkVSU0lPTl9FWFRSQSI+TElCWE1MX1ZFUlNJT05fRVhUUkE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1ZFUlNJT05fU1RSSU5HIj5MSUJYTUxfVkVSU0lPTl9TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1dSSVRFUl9FTkFCTEVEIj5MSUJYTUxfV1JJVEVSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1hJTkNMVURFX0VOQUJMRUQiPkxJQlhNTF9YSU5DTFVERV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9YUEFUSF9FTkFCTEVEIj5MSUJYTUxfWFBBVEhfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfWFBUUl9FTkFCTEVEIj5MSUJYTUxfWFBUUl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9aTElCX0VOQUJMRUQiPkxJQlhNTF9aTElCX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjV0lUSE9VVF9UUklPIj5XSVRIT1VUX1RSSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjV0lUSF9UUklPIj5XSVRIX1RSSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjeG1sQ2hlY2tWZXJzaW9uIj54bWxDaGVja1ZlcnNpb248L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhtbHdyaXRlciIgaWQ9InhtbHdyaXRlciI+TW9kdWxlIHhtbHdyaXRlcjwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxGcmVlVGV4dFdyaXRlciI+eG1sRnJlZVRleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlckRvYyI+eG1sTmV3VGV4dFdyaXRlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlck1lbW9yeSI+eG1sTmV3VGV4dFdyaXRlck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIj54bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJUcmVlIj54bWxOZXdUZXh0V3JpdGVyVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXIiPnhtbFRleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZENEQVRBIj54bWxUZXh0V3JpdGVyRW5kQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kQ29tbWVudCI+eG1sVGV4dFdyaXRlckVuZENvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRFREIj54bWxUZXh0V3JpdGVyRW5kRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSI+eG1sVGV4dFdyaXRlckVuZERUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREb2N1bWVudCI+eG1sVGV4dFdyaXRlckVuZERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZFBJIj54bWxUZXh0V3JpdGVyRW5kUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRmx1c2giPnhtbFRleHRXcml0ZXJGbHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCI+eG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTZXRJbmRlbnQiPnhtbFRleHRXcml0ZXJTZXRJbmRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIj54bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSI+eG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50Ij54bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFREIj54bWxUZXh0V3JpdGVyU3RhcnREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0UEkiPnhtbFRleHRXcml0ZXJTdGFydFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQiPnhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJpbkhleCI+eG1sVGV4dFdyaXRlcldyaXRlQmluSGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEiPnhtbFRleHRXcml0ZXJXcml0ZUNEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURURCI+eG1sVGV4dFdyaXRlcldyaXRlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMiPnhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiI+eG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlIj54bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVQSSI+eG1sVGV4dFdyaXRlcldyaXRlUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iPnhtbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVJhdyI+eG1sVGV4dFdyaXRlcldyaXRlUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIj54bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8L3A+PGgyPjxhIG5hbWU9InhwYXRoIiBpZD0ieHBhdGgiPk1vZHVsZSB4cGF0aDwvYT46PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hNTF9YUEFUSF9DSEVDS05TIj5YTUxfWFBBVEhfQ0hFQ0tOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWE1MX1hQQVRIX05PVkFSIj5YTUxfWFBBVEhfTk9WQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX0JPT0xFQU4iPlhQQVRIX0JPT0xFQU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX0VOQ09ESU5HX0VSUk9SIj5YUEFUSF9FTkNPRElOR19FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfRVhQUkVTU0lPTl9PSyI+WFBBVEhfRVhQUkVTU0lPTl9PSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfRVhQUl9FUlJPUiI+WFBBVEhfRVhQUl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9BUklUWSI+WFBBVEhfSU5WQUxJRF9BUklUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIj5YUEFUSF9JTlZBTElEX0NIQVJfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX0lOVkFMSURfQ1RYVCI+WFBBVEhfSU5WQUxJRF9DVFhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iPlhQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9DVFhUX1NJWkUiPlhQQVRIX0lOVkFMSURfQ1RYVF9TSVpFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX09QRVJBTkQiPlhQQVRIX0lOVkFMSURfT1BFUkFORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IiPlhQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX1RZUEUiPlhQQVRIX0lOVkFMSURfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfTE9DQVRJT05TRVQiPlhQQVRIX0xPQ0FUSU9OU0VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9NRU1PUllfRVJST1IiPlhQQVRIX01FTU9SWV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfTk9ERVNFVCI+WFBBVEhfTk9ERVNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfTlVNQkVSIj5YUEFUSF9OVU1CRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX05VTUJFUl9FUlJPUiI+WFBBVEhfTlVNQkVSX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9QT0lOVCI+WFBBVEhfUE9JTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1JBTkdFIj5YUEFUSF9SQU5HRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiI+WFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfU1RSSU5HIj5YUEFUSF9TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1VOQ0xPU0VEX0VSUk9SIj5YUEFUSF9VTkNMT1NFRF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfVU5ERUZJTkVEIj5YUEFUSF9VTkRFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiI+WFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUiI+WFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiI+WFBBVEhfVU5GSU5JU0hFRF9MSVRFUkFMX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiPlhQQVRIX1VOS05PV05fRlVOQ19FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfVVNFUlMiPlhQQVRIX1VTRVJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IiPlhQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfWFNMVF9UUkVFIj5YUEFUSF9YU0xUX1RSRUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQVFJfUkVTT1VSQ0VfRVJST1IiPlhQVFJfUkVTT1VSQ0VfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQVFJfU1VCX1JFU09VUkNFX0VSUk9SIj5YUFRSX1NVQl9SRVNPVVJDRV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBUUl9TWU5UQVhfRVJST1IiPlhQVFJfU1lOVEFYX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sTm9kZVNldCI+X3htbE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aEF4aXMiPl94bWxYUGF0aEF4aXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aENvbnRleHQiPl94bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aEZ1bmN0Ij5feG1sWFBhdGhGdW5jdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbFhQYXRoT2JqZWN0Ij5feG1sWFBhdGhPYmplY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aFBhcnNlckNvbnRleHQiPl94bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aFR5cGUiPl94bWxYUGF0aFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aFZhcmlhYmxlIj5feG1sWFBhdGhWYXJpYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldCI+eG1sTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzIj54bWxYUGF0aEF4aXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQXhpc0Z1bmMiPnhtbFhQYXRoQXhpc0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQXhpc1B0ciI+eG1sWFBhdGhBeGlzUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIiPnhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nIj54bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlciI+eG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmciPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyIj54bWxYUGF0aENhc3ROb2RlVG9OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyI+eG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmciPnhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIiPnhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3RUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdFRvQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdFRvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3RUb1N0cmluZyI+eG1sWFBhdGhDYXN0VG9TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ21wTm9kZXMiPnhtbFhQYXRoQ21wTm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHIiPnhtbFhQYXRoQ29tcEV4cHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZSI+eG1sWFBhdGhDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGVkRXZhbCI+eG1sWFBhdGhDb21waWxlZEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuIj54bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEJvb2xlYW4iPnhtbFhQYXRoQ29udmVydEJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEZ1bmMiPnhtbFhQYXRoQ29udmVydEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydE51bWJlciI+eG1sWFBhdGhDb252ZXJ0TnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRTdHJpbmciPnhtbFhQYXRoQ29udmVydFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDdHh0Q29tcGlsZSI+eG1sWFBhdGhDdHh0Q29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFcnJvciI+eG1sWFBhdGhFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEV4cHJlc3Npb24iPnhtbFhQYXRoRXZhbEV4cHJlc3Npb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEZ1bmMiPnhtbFhQYXRoRXZhbEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVDb21wRXhwciI+eG1sWFBhdGhGcmVlQ29tcEV4cHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZUNvbnRleHQiPnhtbFhQYXRoRnJlZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXQiPnhtbFhQYXRoRnJlZU5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXRMaXN0Ij54bWxYUGF0aEZyZWVOb2RlU2V0TGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlT2JqZWN0Ij54bWxYUGF0aEZyZWVPYmplY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY1B0ciI+eG1sWFBhdGhGdW5jUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0Ij54bWxYUGF0aEZ1bmN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEluaXQiPnhtbFhQYXRoSW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc0luZiI+eG1sWFBhdGhJc0luZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOQU4iPnhtbFhQYXRoTkFOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5JTkYiPnhtbFhQYXRoTklORjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOZXdDb250ZXh0Ij54bWxYUGF0aE5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTm9kZVNldENyZWF0ZSI+eG1sWFBhdGhOb2RlU2V0Q3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgiPnhtbFhQYXRoTm9kZVNldEdldExlbmd0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0SXNFbXB0eSI+eG1sWFBhdGhOb2RlU2V0SXNFbXB0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0SXRlbSI+eG1sWFBhdGhOb2RlU2V0SXRlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3QiPnhtbFhQYXRoT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdENvcHkiPnhtbFhQYXRoT2JqZWN0Q29weTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFR5cGUiPnhtbFhQYXRoT2JqZWN0VHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPcmRlckRvY0VsZW1zIj54bWxYUGF0aE9yZGVyRG9jRWxlbXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUElORiI+eG1sWFBhdGhQSU5GPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHQiPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoVHlwZSI+eG1sWFBhdGhUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFR5cGVQdHIiPnhtbFhQYXRoVHlwZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZSI+eG1sWFBhdGhWYXJpYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFZhcmlhYmxlUHRyIj54bWxYUGF0aFZhcmlhYmxlUHRyPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJ4cGF0aEludGVybmFscyIgaWQ9InhwYXRoSW50ZXJuYWxzIj5Nb2R1bGUgeHBhdGhJbnRlcm5hbHM8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX0JPT0xFQU4iPkNBU1RfVE9fQk9PTEVBTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0FTVF9UT19OVU1CRVIiPkNBU1RfVE9fTlVNQkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX1NUUklORyI+Q0FTVF9UT19TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NIRUNLX0FSSVRZIj5DSEVDS19BUklUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfRVJST1IiPkNIRUNLX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDSEVDS19FUlJPUjAiPkNIRUNLX0VSUk9SMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfVFlQRSI+Q0hFQ0tfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfVFlQRTAiPkNIRUNLX1RZUEUwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNYUF9FUlJPUiI+WFBfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI1hQX0VSUk9SMCI+WFBfRVJST1IwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVBvcCI+dmFsdWVQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3ZhbHVlUHVzaCI+dmFsdWVQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEFkZFZhbHVlcyI+eG1sWFBhdGhBZGRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIj54bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24iPnhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENoZWNrRXJyb3IiPnhtbFhQYXRoQ2hlY2tFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29uY2F0RnVuY3Rpb24iPnhtbFhQYXRoQ29uY2F0RnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbiI+eG1sWFBhdGhDb250YWluc0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvdW50RnVuY3Rpb24iPnhtbFhQYXRoQ291bnRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciI+eG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QiPnhtbFhQYXRoRGVidWdEdW1wT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpZmZlcmVuY2UiPnhtbFhQYXRoRGlmZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXN0aW5jdCI+eG1sWFBhdGhEaXN0aW5jdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXN0aW5jdFNvcnRlZCI+eG1sWFBhdGhEaXN0aW5jdFNvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXZWYWx1ZXMiPnhtbFhQYXRoRGl2VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVtcHR5Tm9kZVNldCI+eG1sWFBhdGhFbXB0eU5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXF1YWxWYWx1ZXMiPnhtbFhQYXRoRXF1YWxWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXJyIj54bWxYUGF0aEVycjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFdmFsRXhwciI+eG1sWFBhdGhFdmFsRXhwcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCI+eG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGYWxzZUZ1bmN0aW9uIj54bWxYUGF0aEZhbHNlRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRmxvb3JGdW5jdGlvbiI+eG1sWFBhdGhGbG9vckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0Ij54bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwIj54bWxYUGF0aEZ1bmN0aW9uTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXRDb250ZXh0Tm9kZSI+eG1sWFBhdGhHZXRDb250ZXh0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXREb2N1bWVudCI+eG1sWFBhdGhHZXREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXRFcnJvciI+eG1sWFBhdGhHZXRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhIYXNTYW1lTm9kZXMiPnhtbFhQYXRoSGFzU2FtZU5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJbnRlcnNlY3Rpb24iPnhtbFhQYXRoSW50ZXJzZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElzTm9kZVR5cGUiPnhtbFhQYXRoSXNOb2RlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMYW5nRnVuY3Rpb24iPnhtbFhQYXRoTGFuZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExhc3RGdW5jdGlvbiI+eG1sWFBhdGhMYXN0RnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGVhZGluZyI+eG1sWFBhdGhMZWFkaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTGVhZGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbiI+eG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNb2RWYWx1ZXMiPnhtbFhQYXRoTW9kVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE11bHRWYWx1ZXMiPnhtbFhQYXRoTXVsdFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbiI+eG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdCb29sZWFuIj54bWxYUGF0aE5ld0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Q1N0cmluZyI+eG1sWFBhdGhOZXdDU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld0Zsb2F0Ij54bWxYUGF0aE5ld0Zsb2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld05vZGVTZXQiPnhtbFhQYXRoTmV3Tm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdOb2RlU2V0TGlzdCI+eG1sWFBhdGhOZXdOb2RlU2V0TGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0Ij54bWxYUGF0aE5ld1BhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3U3RyaW5nIj54bWxYUGF0aE5ld1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdWYWx1ZVRyZWUiPnhtbFhQYXRoTmV3VmFsdWVUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3RvciI+eG1sWFBhdGhOZXh0QW5jZXN0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QXR0cmlidXRlIj54bWxYUGF0aE5leHRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dENoaWxkIj54bWxYUGF0aE5leHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudCI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dE5hbWVzcGFjZSI+eG1sWFBhdGhOZXh0TmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQYXJlbnQiPnhtbFhQYXRoTmV4dFBhcmVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiPnhtbFhQYXRoTmV4dFNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciPnhtbFhQYXRoTm9kZUxlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZCI+eG1sWFBhdGhOb2RlU2V0QWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRBZGROcyI+eG1sWFBhdGhOb2RlU2V0QWRkTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSI+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRDb250YWlucyI+eG1sWFBhdGhOb2RlU2V0Q29udGFpbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRGcmVlTnMiPnhtbFhQYXRoTm9kZVNldEZyZWVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRSZW1vdmUiPnhtbFhQYXRoTm9kZVNldFJlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0U29ydCI+eG1sWFBhdGhOb2RlU2V0U29ydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmciPnhtbFhQYXRoTm9kZVRyYWlsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm90RXF1YWxWYWx1ZXMiPnhtbFhQYXRoTm90RXF1YWxWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm90RnVuY3Rpb24iPnhtbFhQYXRoTm90RnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTnNMb29rdXAiPnhtbFhQYXRoTnNMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTnVtYmVyRnVuY3Rpb24iPnhtbFhQYXRoTnVtYmVyRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOQ05hbWUiPnhtbFhQYXRoUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BCb29sZWFuIj54bWxYUGF0aFBvcEJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wRXh0ZXJuYWwiPnhtbFhQYXRoUG9wRXh0ZXJuYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wTm9kZVNldCI+eG1sWFBhdGhQb3BOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcE51bWJlciI+eG1sWFBhdGhQb3BOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wU3RyaW5nIj54bWxYUGF0aFBvcFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uIj54bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMiPnhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jIj54bWxYUGF0aFJlZ2lzdGVyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIj54bWxYUGF0aFJlZ2lzdGVyRnVuY05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyTnMiPnhtbFhQYXRoUmVnaXN0ZXJOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAiPnhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5Cb29sZWFuIj54bWxYUGF0aFJldHVybkJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuRW1wdHlOb2RlU2V0Ij54bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5FbXB0eVN0cmluZyI+eG1sWFBhdGhSZXR1cm5FbXB0eVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5FeHRlcm5hbCI+eG1sWFBhdGhSZXR1cm5FeHRlcm5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5GYWxzZSI+eG1sWFBhdGhSZXR1cm5GYWxzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5Ob2RlU2V0Ij54bWxYUGF0aFJldHVybk5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuTnVtYmVyIj54bWxYUGF0aFJldHVybk51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5TdHJpbmciPnhtbFhQYXRoUmV0dXJuU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVyblRydWUiPnhtbFhQYXRoUmV0dXJuVHJ1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSb290Ij54bWxYUGF0aFJvb3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUm91bmRGdW5jdGlvbiI+eG1sWFBhdGhSb3VuZEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFNldEFyaXR5RXJyb3IiPnhtbFhQYXRoU2V0QXJpdHlFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTZXRFcnJvciI+eG1sWFBhdGhTZXRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTZXRUeXBlRXJyb3IiPnhtbFhQYXRoU2V0VHlwZUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0YWNrSXNFeHRlcm5hbCI+eG1sWFBhdGhTdGFja0lzRXh0ZXJuYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RhY2tJc05vZGVTZXQiPnhtbFhQYXRoU3RhY2tJc05vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uIj54bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyIj54bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3ViVmFsdWVzIj54bWxYUGF0aFN1YlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3VtRnVuY3Rpb24iPnhtbFhQYXRoU3VtRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhaWxpbmciPnhtbFhQYXRoVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24iPnhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVHJ1ZUZ1bmN0aW9uIj54bWxYUGF0aFRydWVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIj54bWxYUGF0aFZhbHVlRmxpcFNpZ248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoVmFyaWFibGVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBOUyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBDU3RyaW5nIj54bWxYUGF0aFdyYXBDU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBFeHRlcm5hbCI+eG1sWFBhdGhXcmFwRXh0ZXJuYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcE5vZGVTZXQiPnhtbFhQYXRoV3JhcE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcFN0cmluZyI+eG1sWFBhdGhXcmFwU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aGVycm9yIj54bWxYUGF0aGVycm9yPC9hPjxiciAvPgorPC9wPjxoMj48YSBuYW1lPSJ4cG9pbnRlciIgaWQ9Inhwb2ludGVyIj5Nb2R1bGUgeHBvaW50ZXI8L2E+OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCNfeG1sTG9jYXRpb25TZXQiPl94bWxMb2NhdGlvblNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXQiPnhtbExvY2F0aW9uU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWwiPnhtbFhQdHJFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIj54bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRnJlZUxvY2F0aW9uU2V0Ij54bWxYUHRyRnJlZUxvY2F0aW9uU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRBZGQiPnhtbFhQdHJMb2NhdGlvblNldEFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlIj54bWxYUHRyTG9jYXRpb25TZXRDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldERlbCI+eG1sWFB0ckxvY2F0aW9uU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldFJlbW92ZSI+eG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UiPnhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbnRleHQiPnhtbFhQdHJOZXdDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0Ij54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZSI+eG1sWFB0ck5ld1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0Ij54bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiPnhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZXMiPnhtbFhQdHJOZXdSYW5nZU5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUiPnhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnRzIj54bWxYUHRyTmV3UmFuZ2VQb2ludHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJSYW5nZVRvRnVuY3Rpb24iPnhtbFhQdHJSYW5nZVRvRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJXcmFwTG9jYXRpb25TZXQiPnhtbFhQdHJXcmFwTG9jYXRpb25TZXQ8L2E+PGJyIC8+Cis8L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9BUElmdW5jdGlvbnMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSWZ1bmN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMDVmYjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9BUElmdW5jdGlvbnMuaHRtbApAQCAtMCwwICsxLDIzMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+TGlzdCBvZiBmdW5jdGlvbiBtYW5pcHVsYXRpbmcgdHlwZXMgaW4gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+TGlzdCBvZiBmdW5jdGlvbiBtYW5pcHVsYXRpbmcgdHlwZXMgaW4gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMj5UeXBlIC4uLjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2Vycm9yU0FYRnVuYyI+ZXJyb3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZmF0YWxFcnJvclNBWEZ1bmMiPmZhdGFsRXJyb3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjd2FybmluZ1NBWEZ1bmMiPndhcm5pbmdTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvciI+eG1sUGFyc2VyRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5RXJyb3IiPnhtbFBhcnNlclZhbGlkaXR5RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5V2FybmluZyI+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJXYXJuaW5nIj54bWxQYXJzZXJXYXJuaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJQcmludGYiPnhtbFN0clByaW50ZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgRklMRSAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jRHVtcCI+aHRtbERvY0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGUiPmh0bWxOb2RlRHVtcEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQiPmh0bWxOb2RlRHVtcEZpbGVGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dEdW1wIj54bWxBQ2F0YWxvZ0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyRHVtcCI+eG1sQnVmZmVyRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRHVtcCI+eG1sQ2F0YWxvZ0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnQ2hlY2tEb2N1bWVudCI+eG1sRGVidWdDaGVja0RvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBBdHRyIj54bWxEZWJ1Z0R1bXBBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBBdHRyTGlzdCI+eG1sRGVidWdEdW1wQXR0ckxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERURCI+eG1sRGVidWdEdW1wRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudCI+eG1sRGVidWdEdW1wRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERvY3VtZW50SGVhZCI+eG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBFbnRpdGllcyI+eG1sRGVidWdEdW1wRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE5vZGUiPnhtbERlYnVnRHVtcE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE5vZGVMaXN0Ij54bWxEZWJ1Z0R1bXBOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wT25lTm9kZSI+eG1sRGVidWdEdW1wT25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wU3RyaW5nIj54bWxEZWJ1Z0R1bXBTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcCI+eG1sRG9jRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NGb3JtYXREdW1wIj54bWxEb2NGb3JtYXREdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1EdW1wIj54bWxFbGVtRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sTHNPbmVOb2RlIj54bWxMc09uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyI+eG1sTWVtU2hvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQcmludFVSSSI+eG1sUHJpbnRVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQcmludCI+eG1sUmVnZXhwUHJpbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0R1bXAiPnhtbFJlbGF4TkdEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdEdW1wVHJlZSI+eG1sUmVsYXhOR0R1bXBUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUR1bXAiPnhtbFNjaGVtYUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIj54bWxTaGVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciI+eG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QiPnhtbFhQYXRoRGVidWdEdW1wT2JqZWN0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNoYXIgKio6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQRmV0Y2giPnhtbE5hbm9IVFRQRmV0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kIj54bWxOYW5vSFRUUE1ldGhvZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2RSZWRpciI+eG1sTmFub0hUVFBNZXRob2RSZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuIj54bWxOYW5vSFRUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlblJlZGlyIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjaGFyIGNvbnN0ICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0TWF0Y2hDYWxsYmFjayI+eG1sSW5wdXRNYXRjaENhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE9wZW5DYWxsYmFjayI+eG1sSW5wdXRPcGVuQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE1hdGNoQ2FsbGJhY2siPnhtbE91dHB1dE1hdGNoQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE9wZW5DYWxsYmFjayI+eG1sT3V0cHV0T3BlbkNhbGxiYWNrPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IGNoYXIgKio6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRGZWF0dXJlc0xpc3QiPnhtbEdldEZlYXR1cmVzTGlzdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjb25zdCBodG1sRWxlbURlc2MgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXR0ckFsbG93ZWQiPmh0bWxBdHRyQWxsb3dlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudEFsbG93ZWRIZXJlIj5odG1sRWxlbWVudEFsbG93ZWRIZXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50U3RhdHVzSGVyZSI+aHRtbEVsZW1lbnRTdGF0dXNIZXJlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IGh0bWxOb2RlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjb25zdCB1bnNpZ25lZCBjaGFyICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjVVRGOFRvSHRtbCI+VVRGOFRvSHRtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW5jb2RlRW50aXRpZXMiPmh0bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjaXNvbGF0MVRvVVRGOCI+aXNvbGF0MVRvVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiPnhtbENoZWNrVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3Qgdm9pZCAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3REYXRhQ29tcGFyZSI+eG1sTGlzdERhdGFDb21wYXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlV2FsayI+eG1sTGlzdFJldmVyc2VXYWxrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0V2Fsa2VyIj54bWxMaXN0V2Fsa2VyPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IHhsaW5rSFJlZjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjb25zdCB4bGlua0hSZWYgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayI+eGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IHhsaW5rUm9sZTo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjb25zdCB4bGlua1JvbGUgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayI+eGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IHhsaW5rVGl0bGU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rU2ltcGxlTGlua0Z1bmsiPnhsaW5rU2ltcGxlTGlua0Z1bms8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3QgeGxpbmtUaXRsZSAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3QgeG1sQnVmZmVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNvbnRlbnQiPnhtbEJ1ZmZlckNvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyTGVuZ3RoIj54bWxCdWZmZXJMZW5ndGg8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3QgeG1sQ2hSYW5nZUdyb3VwICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hhckluUmFuZ2UiPnhtbENoYXJJblJhbmdlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGNvbnN0IHhtbENoYXIgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlRGVjbCI+YXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZURlY2xTQVhGdW5jIj5hdHRyaWJ1dGVEZWNsU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZVNBWEZ1bmMiPmF0dHJpYnV0ZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjZGF0YUJsb2NrIj5jZGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjY2RhdGFCbG9ja1NBWEZ1bmMiPmNkYXRhQmxvY2tTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2NoYXJhY3RlcnNTQVhGdW5jIj5jaGFyYWN0ZXJzU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNjb21tZW50U0FYRnVuYyI+Y29tbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbGVtZW50RGVjbCI+ZWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbGVtZW50RGVjbFNBWEZ1bmMiPmVsZW1lbnREZWNsU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2VuZEVsZW1lbnQiPmVuZEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50TnNTQVgyRnVuYyI+ZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50U0FYRnVuYyI+ZW5kRWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbnRpdHlEZWNsIj5lbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZXh0ZXJuYWxTdWJzZXQiPmV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXh0ZXJuYWxTdWJzZXRTQVhGdW5jIj5leHRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRFbnRpdHkiPmdldEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2dldEVudGl0eVNBWEZ1bmMiPmdldEVudGl0eVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHkiPmdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2dldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMiPmdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnbG9iYWxOYW1lc3BhY2UiPmdsb2JhbE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXR0ckFsbG93ZWQiPmh0bWxBdHRyQWxsb3dlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXV0b0Nsb3NlVGFnIj5odG1sQXV0b0Nsb3NlVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZERvYyI+aHRtbEN0eHRSZWFkRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50QWxsb3dlZEhlcmUiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eUxvb2t1cCI+aHRtbEVudGl0eUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbElzQm9vbGVhbkF0dHIiPmh0bWxJc0Jvb2xlYW5BdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxJc1NjcmlwdEF0dHJpYnV0ZSI+aHRtbElzU2NyaXB0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jIj5odG1sTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jTm9EdEQiPmh0bWxOZXdEb2NOb0R0RDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZERvYyI+aHRtbFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTZXRNZXRhRW5jb2RpbmciPmh0bWxTZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFRhZ0xvb2t1cCI+aHRtbFRhZ0xvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2UiPmlnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyI+aWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbnRlcm5hbFN1YnNldCI+aW50ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpbnRlcm5hbFN1YnNldFNBWEZ1bmMiPmludGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25hbWVQdXNoIj5uYW1lUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI25hbWVzcGFjZURlY2wiPm5hbWVzcGFjZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNub3RhdGlvbkRlY2wiPm5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI25vdGF0aW9uRGVjbFNBWEZ1bmMiPm5vdGF0aW9uRGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iPnByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Byb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMiPnByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3JlZmVyZW5jZVNBWEZ1bmMiPnJlZmVyZW5jZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNyZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0TmFtZXNwYWNlIj5zZXROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydEVsZW1lbnQiPnN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMiPnN0YXJ0RWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnRTQVhGdW5jIj5zdGFydEVsZW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjdW5wYXJzZWRFbnRpdHlEZWNsIj51bnBhcnNlZEVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN1bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jIj51bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nQWRkIj54bWxBQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1JlbW92ZSI+eG1sQUNhdGFsb2dSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlIj54bWxBQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljIj54bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlVVJJIj54bWxBQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZEF0dHJpYnV0ZURlY2wiPnhtbEFkZEF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEFkZERvY0VudGl0eSI+eG1sQWRkRG9jRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxBZGREdGRFbnRpdHkiPnhtbEFkZER0ZEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkRWxlbWVudERlY2wiPnhtbEFkZEVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRJRCI+eG1sQWRkSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZE5vdGF0aW9uRGVjbCI+eG1sQWRkTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRSZWYiPnhtbEFkZFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCI+eG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld05lZ1RyYW5zIj54bWxBdXRvbWF0YU5ld05lZ1RyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMiI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24iPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGQiPnhtbEJ1ZmZlckFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGRIZWFkIj54bWxCdWZmZXJBZGRIZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNhdCI+eG1sQnVmZmVyQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlQ0hBUiI+eG1sQnVmZmVyV3JpdGVDSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWlsZFFOYW1lIj54bWxCdWlsZFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkVVJJIj54bWxCdWlsZFVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkIj54bWxDYXRhbG9nQWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGRMb2NhbCI+eG1sQ2F0YWxvZ0FkZExvY2FsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXRQdWJsaWMiPnhtbENhdGFsb2dHZXRQdWJsaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldFN5c3RlbSI+eG1sQ2F0YWxvZ0dldFN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dMb2NhbFJlc29sdmVVUkkiPnhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1JlbW92ZSI+eG1sQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZSI+eG1sQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPnhtbENhdGFsb2dSZXNvbHZlUHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDaGVja0xhbmd1YWdlSUQiPnhtbENoZWNrTGFuZ3VhZ2VJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZURvY1BhcnNlckN0eHQiPnhtbENyZWF0ZURvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0Ij54bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDcmVhdGVFbnVtZXJhdGlvbiI+eG1sQ3JlYXRlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ3JlYXRlSW50U3Vic2V0Ij54bWxDcmVhdGVJbnRTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZERvYyI+eG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIj54bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcFN0cmluZyI+eG1sRGVidWdEdW1wU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RFeGlzdHMiPnhtbERpY3RFeGlzdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdExvb2t1cCI+eG1sRGljdExvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0T3ducyI+eG1sRGljdE93bnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFFMb29rdXAiPnhtbERpY3RRTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllcyI+eG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlU3BlY2lhbENoYXJzIj54bWxFbmNvZGVTcGVjaWFsQ2hhcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdBdG9tIj54bWxFeHBOZXdBdG9tPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3RyaW5nRGVyaXZlIj54bWxFeHBTdHJpbmdEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldERvY0VudGl0eSI+eG1sR2V0RG9jRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRBdHRyRGVzYyI+eG1sR2V0RHRkQXR0ckRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZEVsZW1lbnREZXNjIj54bWxHZXREdGRFbGVtZW50RGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0RHRkRW50aXR5Ij54bWxHZXREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZE5vdGF0aW9uRGVzYyI+eG1sR2V0RHRkTm90YXRpb25EZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUVsZW1lbnREZXNjIj54bWxHZXREdGRRRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldElEIj54bWxHZXRJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldFBhcmFtZXRlckVudGl0eSI+eG1sR2V0UGFyYW1ldGVyRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXRQcmVkZWZpbmVkRW50aXR5Ij54bWxHZXRQcmVkZWZpbmVkRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldFByb3AiPnhtbEdldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldFJlZnMiPnhtbEdldFJlZnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzTnNQcm9wIj54bWxIYXNOc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSGFzUHJvcCI+eG1sSGFzUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkiPnhtbEhhc2hBZGRFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkyIj54bWxIYXNoQWRkRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTMiPnhtbEhhc2hBZGRFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaExvb2t1cCI+eG1sSGFzaExvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMiI+eG1sSGFzaExvb2t1cDI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaExvb2t1cDMiPnhtbEhhc2hMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwIj54bWxIYXNoUUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDIiPnhtbEhhc2hRTG9va3VwMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDMiPnhtbEhhc2hRTG9va3VwMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkiPnhtbEhhc2hSZW1vdmVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkyIj54bWxIYXNoUmVtb3ZlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTMiPnhtbEhhc2hSZW1vdmVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lckZ1bGwiPnhtbEhhc2hTY2FubmVyRnVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIj54bWxIYXNoVXBkYXRlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzTWl4ZWRFbGVtZW50Ij54bWxJc01peGVkRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxJc1hIVE1MIj54bWxJc1hIVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NEYXRhQmxvY2siPnhtbE5ld0NEYXRhQmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hhclJlZiI+eG1sTmV3Q2hhclJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGlsZCI+eG1sTmV3Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q29tbWVudCI+eG1sTmV3Q29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2MiPnhtbE5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NDb21tZW50Ij54bWxOZXdEb2NDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdEb2NFbGVtZW50Q29udGVudCI+eG1sTmV3RG9jRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUEkiPnhtbE5ld0RvY1BJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1Byb3AiPnhtbE5ld0RvY1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUmF3Tm9kZSI+eG1sTmV3RG9jUmF3Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NUZXh0Ij54bWxOZXdEb2NUZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1RleHRMZW4iPnhtbE5ld0RvY1RleHRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RHRkIj54bWxOZXdEdGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbE5ld0VsZW1lbnRDb250ZW50Ij54bWxOZXdFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sTmV3RW50aXR5Ij54bWxOZXdFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGUiPnhtbE5ld05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3TnMiPnhtbE5ld05zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcCI+eG1sTmV3TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcEVhdE5hbWUiPnhtbE5ld05zUHJvcEVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3UEkiPnhtbE5ld1BJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1Byb3AiPnhtbE5ld1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3UmVmZXJlbmNlIj54bWxOZXdSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSI+eG1sTmV3U3RyaW5nSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dCI+eG1sTmV3VGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0TGVuIj54bWxOZXdUZXh0TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50Ij54bWxOb2RlQWRkQ29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudExlbiI+eG1sTm9kZUFkZENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldEJhc2UiPnhtbE5vZGVTZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldExhbmciPnhtbE5vZGVTZXRMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXROYW1lIj54bWxOb2RlU2V0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sTm9ybWFsaXplV2luZG93c1BhdGgiPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZURURCI+eG1sUGFyc2VEVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZURvYyI+eG1sUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbFN1YnNldCI+eG1sUGFyc2VFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlYWREb2MiPnhtbFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JEb2MiPnhtbFJlYWRlckZvckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0RvYyI+eG1sUmVhZGVyTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZzIiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cENvbXBpbGUiPnhtbFJlZ2V4cENvbXBpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBFeGVjIj54bWxSZWdleHBFeGVjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJBdHRyaWJ1dGVEZWNsIj54bWxTQVgyQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQ0RhdGFCbG9jayI+eG1sU0FYMkNEYXRhQmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkNoYXJhY3RlcnMiPnhtbFNBWDJDaGFyYWN0ZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJDb21tZW50Ij54bWxTQVgyQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyRWxlbWVudERlY2wiPnhtbFNBWDJFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyRW5kRWxlbWVudCI+eG1sU0FYMkVuZEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnROcyI+eG1sU0FYMkVuZEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyRW50aXR5RGVjbCI+eG1sU0FYMkVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkV4dGVybmFsU3Vic2V0Ij54bWxTQVgyRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldEVudGl0eSI+eG1sU0FYMkdldEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5Ij54bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlIj54bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySW50ZXJuYWxTdWJzZXQiPnhtbFNBWDJJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyTm90YXRpb25EZWNsIj54bWxTQVgyTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iPnhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlJlZmVyZW5jZSI+eG1sU0FYMlJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudCI+eG1sU0FYMlN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50TnMiPnhtbFNBWDJTdGFydEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsIj54bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEVEQiPnhtbFNBWFBhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUiPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdRTmFtZVZhbHVlIj54bWxTY2hlbWFOZXdRTmFtZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUiPnhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUiPnhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0iPnhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UiPnhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnNQcm9wIj54bWxTZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0UHJvcCI+eG1sU2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldHVwUGFyc2VyRm9yQnVmZmVyIj54bWxTZXR1cFBhcnNlckZvckJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNwbGl0UU5hbWUiPnhtbFNwbGl0UU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTIiPnhtbFNwbGl0UU5hbWUyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUzIj54bWxTcGxpdFFOYW1lMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUUVxdWFsIj54bWxTdHJRRXF1YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZWNtcCI+eG1sU3RyY2FzZWNtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhc2VzdHIiPnhtbFN0cmNhc2VzdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNociI+eG1sU3RyY2hyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY21wIj54bWxTdHJjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJkdXAiPnhtbFN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hBdHRyIj54bWxTdHJlYW1QdXNoQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdDdXJyZW50Q2hhciI+eG1sU3RyaW5nQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0xlbkdldE5vZGVMaXN0Ij54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmxlbiI+eG1sU3RybGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhc2VjbXAiPnhtbFN0cm5jYXNlY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhdCI+eG1sU3RybmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXROZXciPnhtbFN0cm5jYXROZXc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY21wIj54bWxTdHJuY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmR1cCI+eG1sU3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN0ciI+eG1sU3Ryc3RyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3ViIj54bWxTdHJzdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVGV4dENvbmNhdCI+eG1sVGV4dENvbmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFN0cmluZyI+eG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcyI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZSI+eG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMiPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4iPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIj54bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVEQiPnhtbFRleHRXcml0ZXJTdGFydERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Ij54bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50Ij54bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TIj54bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRQSSI+eG1sVGV4dFdyaXRlclN0YXJ0UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TIj54bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUNEQVRBIj54bWxUZXh0V3JpdGVyV3JpdGVDREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVEQiPnhtbFRleHRXcml0ZXJXcml0ZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzIj54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24iPnhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUEkiPnhtbFRleHRXcml0ZXJXcml0ZVBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUmF3Ij54bWxUZXh0V3JpdGVyV3JpdGVSYXc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4iPnhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVN0cmluZyI+eG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGVTdHIiPnhtbFVSSUVzY2FwZVN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhDaGFyY21wIj54bWxVVEY4Q2hhcmNtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTaXplIj54bWxVVEY4U2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsZW4iPnhtbFVURjhTdHJsZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RybG9jIj54bWxVVEY4U3RybG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cm5kdXAiPnhtbFVURjhTdHJuZHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnBvcyI+eG1sVVRGOFN0cnBvczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzdWIiPnhtbFVURjhTdHJzdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5zZXROc1Byb3AiPnhtbFVuc2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFVuc2V0UHJvcCI+eG1sVW5zZXRQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOQ05hbWUiPnhtbFZhbGlkYXRlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFZhbGlkYXRlTk1Ub2tlbiI+eG1sVmFsaWRhdGVOTVRva2VuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFZhbGlkYXRlTmFtZSI+eG1sVmFsaWRhdGVOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5hbWVWYWx1ZSI+eG1sVmFsaWRhdGVOYW1lVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTmFtZXNWYWx1ZSI+eG1sVmFsaWRhdGVOYW1lc1ZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZSI+eG1sVmFsaWRhdGVObXRva2VuVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm10b2tlbnNWYWx1ZSI+eG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlIj54bWxWYWxpZGF0ZU5vdGF0aW9uVXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVQb3BFbGVtZW50Ij54bWxWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUHVzaENEYXRhIj54bWxWYWxpZGF0ZVB1c2hDRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sVmFsaWRhdGVQdXNoRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZVFOYW1lIj54bWxWYWxpZGF0ZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIiPnhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGUiPnhtbFhQYXRoQ29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDdHh0Q29tcGlsZSI+eG1sWFBhdGhDdHh0Q29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEV4cHJlc3Npb24iPnhtbFhQYXRoRXZhbEV4cHJlc3Npb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRnVuY3Rpb25Mb29rdXAiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRnVuY3Rpb25Mb29rdXBOUyI+eG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElzTm9kZVR5cGUiPnhtbFhQYXRoSXNOb2RlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0Ij54bWxYUGF0aE5ld1BhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3U3RyaW5nIj54bWxYUGF0aE5ld1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOc0xvb2t1cCI+eG1sWFBhdGhOc0xvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckZ1bmMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIj54bWxYUGF0aFJlZ2lzdGVyRnVuY05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyTnMiPnhtbFhQYXRoUmVnaXN0ZXJOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyIj54bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoVmFyaWFibGVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsIj54bWxYUHRyRXZhbDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjb25zdCB4bWxDaGFyICoqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUVudGl0eVJlZiI+aHRtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc3RhcnRFbGVtZW50Ij5zdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50U0FYRnVuYyI+c3RhcnRFbGVtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayI+eGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0TGFuZ3VhZ2UiPnhtbEV4cEdldExhbmd1YWdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50Ij54bWxTQVgyU3RhcnRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnROcyI+eG1sU0FYMlN0YXJ0RWxlbWVudE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiI+eG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3QgeG1sTGlzdFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0Q29weSI+eG1sTGlzdENvcHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdER1cCI+eG1sTGlzdER1cDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjb25zdCB4bWxOb2RlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlOb2RlIj54bWxDb3B5Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5Tm9kZUxpc3QiPnhtbENvcHlOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NDb3B5Tm9kZSI+eG1sRG9jQ29weU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGVMaXN0Ij54bWxEb2NDb3B5Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm8iPnhtbFBhcnNlckZpbmROb2RlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlckZpbmROb2RlSW5mb0luZGV4Ij54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBjb25zdCB4bWxQYXJzZXJDdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvIj54bWxQYXJzZXJGaW5kTm9kZUluZm88L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3QgeG1sUGFyc2VyTm9kZUluZm9QdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJBZGROb2RlSW5mbyI+eG1sUGFyc2VyQWRkTm9kZUluZm88L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgY29uc3QgeG1sUGFyc2VyTm9kZUluZm9TZXFQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCI+eG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXg8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgZG9jYlBhcnNlckN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkZyZWVQYXJzZXJDdHh0Ij5kb2NiRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlQ2h1bmsiPmRvY2JQYXJzZUNodW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZURvY3VtZW50Ij5kb2NiUGFyc2VEb2N1bWVudDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBkb2NiU0FYSGFuZGxlclB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VEb2MiPmRvY2JTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VGaWxlIj5kb2NiU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGRvdWJsZTo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIj54bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nIj54bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc0luZiI+eG1sWFBhdGhJc0luZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdGbG9hdCI+eG1sWFBhdGhOZXdGbG9hdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBmdHBEYXRhQ2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldCI+eG1sTmFub0ZUUEdldDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBmdHBMaXN0Q2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUExpc3QiPnhtbE5hbm9GVFBMaXN0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGh0bWxEb2NQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbEdldE1ldGFFbmNvZGluZyI+aHRtbEdldE1ldGFFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sSXNBdXRvQ2xvc2VkIj5odG1sSXNBdXRvQ2xvc2VkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2V0TWV0YUVuY29kaW5nIj5odG1sU2V0TWV0YUVuY29kaW5nPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGh0bWxOb2RlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxBdXRvQ2xvc2VUYWciPmh0bWxBdXRvQ2xvc2VUYWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBodG1sUGFyc2VyQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWREb2MiPmh0bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRGZCI+aHRtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRmlsZSI+aHRtbEN0eHRSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRJTyI+aHRtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkTWVtb3J5Ij5odG1sQ3R4dFJlYWRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZXNldCI+aHRtbEN0eHRSZXNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFVzZU9wdGlvbnMiPmh0bWxDdHh0VXNlT3B0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRnJlZVBhcnNlckN0eHQiPmh0bWxGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VDaGFyUmVmIj5odG1sUGFyc2VDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUNodW5rIj5odG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2N1bWVudCI+aHRtbFBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRWxlbWVudCI+aHRtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSBodG1sU0FYSGFuZGxlclB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGludCAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wTWVtb3J5Ij5odG1sRG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQiPmh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNpc29sYXQxVG9VVEY4Ij5pc29sYXQxVG9VVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeSI+eG1sRG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5RW5jIj54bWxEb2NEdW1wTWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTMiPnhtbFNwbGl0UU5hbWUzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nQ3VycmVudENoYXIiPnhtbFN0cmluZ0N1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuIj54bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIGxvbmc6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5TGFzdCI+eG1sTWVtRGlzcGxheUxhc3Q8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgc2l6ZV90OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZVNpemUiPnhtbEJ1ZmZlckNyZWF0ZVNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU3RhdGljIj54bWxCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NBdG9taWNMb2MiPnhtbE1hbGxvY0F0b21pY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NMb2MiPnhtbE1hbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbU1hbGxvYyI+eG1sTWVtTWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtUmVhbGxvYyI+eG1sTWVtUmVhbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NMb2MiPnhtbFJlYWxsb2NMb2M8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgdW5zaWduZWQgY2hhciAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI1VURjhUb0h0bWwiPlVURjhUb0h0bWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIj5kb2NiRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIj5odG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHVuc2lnbmVkIGludDo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5VmFsdWVMb29rdXAiPmh0bWxFbnRpdHlWYWx1ZUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJHcm93Ij54bWxCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclJlc2l6ZSI+eG1sQnVmZmVyUmVzaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclNocmluayI+eG1sQnVmZmVyU2hyaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoYXJJblJhbmdlIj54bWxDaGFySW5SYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyIj54bWxJc0Jhc2VDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmxhbmsiPnhtbElzQmxhbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyIj54bWxJc0NoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDb21iaW5pbmciPnhtbElzQ29tYmluaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXQiPnhtbElzRGlnaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNFeHRlbmRlciI+eG1sSXNFeHRlbmRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0lkZW9ncmFwaGljIj54bWxJc0lkZW9ncmFwaGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyIj54bWxJc1B1YmlkQ2hhcjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB1bnNpZ25lZCBsb25nOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI2Z0cExpc3RDYWxsYmFjayI+ZnRwTGlzdENhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbERsbE1haW4iPnhtbERsbE1haW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB1bnNpZ25lZCBsb25nICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB2YV9saXN0OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyVlByaW50ZiI+eG1sU3RyVlByaW50ZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgdm9pZCAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGVEZWNsIj5hdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlRGVjbFNBWEZ1bmMiPmF0dHJpYnV0ZURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlU0FYRnVuYyI+YXR0cmlidXRlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NkYXRhQmxvY2siPmNkYXRhQmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNjZGF0YUJsb2NrU0FYRnVuYyI+Y2RhdGFCbG9ja1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjY2hhcmFjdGVyc1NBWEZ1bmMiPmNoYXJhY3RlcnNTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY2hlY2tOYW1lc3BhY2UiPmNoZWNrTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2NvbW1lbnRTQVhGdW5jIj5jb21tZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VEb2MiPmRvY2JTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VGaWxlIj5kb2NiU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZWxlbWVudERlY2wiPmVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZWxlbWVudERlY2xTQVhGdW5jIj5lbGVtZW50RGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbmREb2N1bWVudCI+ZW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmREb2N1bWVudFNBWEZ1bmMiPmVuZERvY3VtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2VuZEVsZW1lbnQiPmVuZEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50TnNTQVgyRnVuYyI+ZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50U0FYRnVuYyI+ZW5kRWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbnRpdHlEZWNsIj5lbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNleHRlcm5hbFN1YnNldCI+ZXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNleHRlcm5hbFN1YnNldFNBWEZ1bmMiPmV4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2ZhdGFsRXJyb3JTQVhGdW5jIj5mYXRhbEVycm9yU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBEYXRhQ2FsbGJhY2siPmZ0cERhdGFDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBMaXN0Q2FsbGJhY2siPmZ0cExpc3RDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldENvbHVtbk51bWJlciI+Z2V0Q29sdW1uTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0RW50aXR5Ij5nZXRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNnZXRFbnRpdHlTQVhGdW5jIj5nZXRFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0TGluZU51bWJlciI+Z2V0TGluZU51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldE5hbWVzcGFjZSI+Z2V0TmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0UGFyYW1ldGVyRW50aXR5Ij5nZXRQYXJhbWV0ZXJFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIj5nZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0UHVibGljSWQiPmdldFB1YmxpY0lkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2V0U3lzdGVtSWQiPmdldFN5c3RlbUlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZ2xvYmFsTmFtZXNwYWNlIj5nbG9iYWxOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNoYXNFeHRlcm5hbFN1YnNldCI+aGFzRXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2hhc0ludGVybmFsU3Vic2V0Ij5oYXNJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2hhc0ludGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZElPIj5odG1sQ3R4dFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZElPIj5odG1sUmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZURvYyI+aHRtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhQYXJzZUZpbGUiPmh0bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlIj5pZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmMiPmlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW50ZXJuYWxTdWJzZXQiPmludGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaW50ZXJuYWxTdWJzZXRTQVhGdW5jIj5pbnRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpc1N0YW5kYWxvbmUiPmlzU3RhbmRhbG9uZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2lzU3RhbmRhbG9uZVNBWEZ1bmMiPmlzU3RhbmRhbG9uZVNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNuYW1lc3BhY2VEZWNsIj5uYW1lc3BhY2VEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjbm90YXRpb25EZWNsIj5ub3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNub3RhdGlvbkRlY2xTQVhGdW5jIj5ub3RhdGlvbkRlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcHJvY2Vzc2luZ0luc3RydWN0aW9uIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNyZWZlcmVuY2VTQVhGdW5jIj5yZWZlcmVuY2VTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3NldERvY3VtZW50TG9jYXRvciI+c2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyI+c2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3NldE5hbWVzcGFjZSI+c2V0TmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc3RhcnREb2N1bWVudCI+c3RhcnREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RG9jdW1lbnRTQVhGdW5jIj5zdGFydERvY3VtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3N0YXJ0RWxlbWVudCI+c3RhcnRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50TnNTQVgyRnVuYyI+c3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudFNBWEZ1bmMiPnN0YXJ0RWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCN1bnBhcnNlZEVudGl0eURlY2wiPnVucGFyc2VkRW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3VucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMiPnVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN3YXJuaW5nU0FYRnVuYyI+d2FybmluZ1NBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtOb2RlRGV0ZWN0RnVuYyI+eGxpbmtOb2RlRGV0ZWN0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sQnVmZmVyQ3JlYXRlU3RhdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWRkTG9jYWwiPnhtbENhdGFsb2dBZGRMb2NhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRnJlZUxvY2FsIj54bWxDYXRhbG9nRnJlZUxvY2FsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dMb2NhbFJlc29sdmUiPnhtbENhdGFsb2dMb2NhbFJlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZUlPUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlSU9QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxDdHh0R2V0TGFzdEVycm9yIj54bWxDdHh0R2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRJTyI+eG1sQ3R4dFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sQ3R4dFJlc2V0TGFzdEVycm9yIj54bWxDdHh0UmVzZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sRGxsTWFpbiI+eG1sRGxsTWFpbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZUNsb3NlIj54bWxGaWxlQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZpbGVSZWFkIj54bWxGaWxlUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEZyZWVGdW5jIj54bWxGcmVlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEZlYXR1cmUiPnhtbEdldEZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5Ij54bWxIYXNoQWRkRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MiI+eG1sSGFzaEFkZEVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkzIj54bWxIYXNoQWRkRW50cnkzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3BpZXIiPnhtbEhhc2hDb3BpZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4iPnhtbEhhc2hTY2FuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuMyI+eG1sSGFzaFNjYW4zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuRnVsbCI+eG1sSGFzaFNjYW5GdWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuRnVsbDMiPnhtbEhhc2hTY2FuRnVsbDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXIiPnhtbEhhc2hTY2FubmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeSI+eG1sSGFzaFVwZGF0ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MyI+eG1sSGFzaFVwZGF0ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBDbG9zZSI+eG1sSU9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBSZWFkIj54bWxJT0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUENsb3NlIj54bWxJT0hUVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQUmVhZCI+eG1sSU9IVFRQUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0QXBwZW5kIj54bWxMaXN0QXBwZW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RJbnNlcnQiPnhtbExpc3RJbnNlcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB1c2hCYWNrIj54bWxMaXN0UHVzaEJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB1c2hGcm9udCI+eG1sTGlzdFB1c2hGcm9udDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmVtb3ZlQWxsIj54bWxMaXN0UmVtb3ZlQWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZW1vdmVGaXJzdCI+eG1sTGlzdFJlbW92ZUZpcnN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZW1vdmVMYXN0Ij54bWxMaXN0UmVtb3ZlTGFzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVNlYXJjaCI+eG1sTGlzdFJldmVyc2VTZWFyY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNlYXJjaCI+eG1sTGlzdFNlYXJjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUZyZWUiPnhtbE1lbUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1SZWFsbG9jIj54bWxNZW1SZWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDaGVja1Jlc3BvbnNlIj54bWxOYW5vRlRQQ2hlY2tSZXNwb25zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2UiPnhtbE5hbm9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uIj54bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0Ij54bWxOYW5vRlRQQ29ubmVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ3dkIj54bWxOYW5vRlRQQ3dkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBEZWxlIj54bWxOYW5vRlRQRGVsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQRnJlZUN0eHQiPnhtbE5hbm9GVFBGcmVlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0Ij54bWxOYW5vRlRQR2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRDb25uZWN0aW9uIj54bWxOYW5vRlRQR2V0Q29ubmVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0UmVzcG9uc2UiPnhtbE5hbm9GVFBHZXRSZXNwb25zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQR2V0U29ja2V0Ij54bWxOYW5vRlRQR2V0U29ja2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBMaXN0Ij54bWxOYW5vRlRQTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUXVpdCI+eG1sTmFub0ZUUFF1aXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFJlYWQiPnhtbE5hbm9GVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBVcGRhdGVVUkwiPnhtbE5hbm9GVFBVcGRhdGVVUkw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQXV0aEhlYWRlciI+eG1sTmFub0hUVFBBdXRoSGVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUENsb3NlIj54bWxOYW5vSFRUUENsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgiPnhtbE5hbm9IVFRQQ29udGVudExlbmd0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBFbmNvZGluZyI+eG1sTmFub0hUVFBFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNaW1lVHlwZSI+eG1sTmFub0hUVFBNaW1lVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZWFkIj54bWxOYW5vSFRUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVkaXIiPnhtbE5hbm9IVFRQUmVkaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmV0dXJuQ29kZSI+eG1sTmFub0hUVFBSZXR1cm5Db2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNhdmUiPnhtbE5hbm9IVFRQU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8iPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIj54bWxPdXRwdXRDbG9zZUNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIj54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3IiPnhtbFBhcnNlckVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eUVycm9yIj54bWxQYXJzZXJWYWxpZGl0eUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmciPnhtbFBhcnNlclZhbGlkaXR5V2FybmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyV2FybmluZyI+eG1sUGFyc2VyV2FybmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlYWRJTyI+eG1sUmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9ySU8iPnhtbFJlYWRlckZvcklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3SU8iPnhtbFJlYWRlck5ld0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0xvYyI+eG1sUmVhbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZzIiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ij54bWxSZWdOZXdFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzIj54bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQXR0cmlidXRlRGVjbCI+eG1sU0FYMkF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkNEYXRhQmxvY2siPnhtbFNBWDJDRGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJDaGFyYWN0ZXJzIj54bWxTQVgyQ2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQ29tbWVudCI+eG1sU0FYMkNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVsZW1lbnREZWNsIj54bWxTQVgyRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZERvY3VtZW50Ij54bWxTQVgyRW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnQiPnhtbFNBWDJFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFbmRFbGVtZW50TnMiPnhtbFNBWDJFbmRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVudGl0eURlY2wiPnhtbFNBWDJFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFeHRlcm5hbFN1YnNldCI+eG1sU0FYMkV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJHZXRDb2x1bW5OdW1iZXIiPnhtbFNBWDJHZXRDb2x1bW5OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldEVudGl0eSI+eG1sU0FYMkdldEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0TGluZU51bWJlciI+eG1sU0FYMkdldExpbmVOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSI+eG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0UHVibGljSWQiPnhtbFNBWDJHZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSI+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkludGVybmFsU3Vic2V0Ij54bWxTQVgySW50ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMklzU3RhbmRhbG9uZSI+eG1sU0FYMklzU3RhbmRhbG9uZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyTm90YXRpb25EZWNsIj54bWxTQVgyTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iPnhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlJlZmVyZW5jZSI+eG1sU0FYMlJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUmVzb2x2ZUVudGl0eSI+eG1sU0FYMlJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciI+eG1sU0FYMlNldERvY3VtZW50TG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnREb2N1bWVudCI+eG1sU0FYMlN0YXJ0RG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudCI+eG1sU0FYMlN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU3RhcnRFbGVtZW50TnMiPnhtbFNBWDJTdGFydEVsZW1lbnROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsIj54bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPnhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSI+eG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFVzZXJQYXJzZUZpbGUiPnhtbFNBWFVzZXJQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhVc2VyUGFyc2VNZW1vcnkiPnhtbFNBWFVzZXJQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMiPnhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0RmVhdHVyZSI+eG1sU2V0RmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFcnJvckZ1bmMiPnhtbFRleHRSZWFkZXJFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEiPnhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jTG9va3VwRnVuYyI+eG1sWFBhdGhGdW5jTG9va3VwRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBFeHRlcm5hbCI+eG1sWFBhdGhXcmFwRXh0ZXJuYWw8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgdm9pZCAqKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVN5bWJvbCI+eG1sTW9kdWxlU3ltYm9sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMiPnhtbFNjaGVtYUdldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhsaW5rQWN0dWF0ZSAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bGlua0hhbmRsZXJQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rU2V0RGVmYXVsdEhhbmRsZXIiPnhsaW5rU2V0RGVmYXVsdEhhbmRsZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeGxpbmtOb2RlRGV0ZWN0RnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTZXREZWZhdWx0RGV0ZWN0Ij54bGlua1NldERlZmF1bHREZXRlY3Q8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeGxpbmtTaG93ICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEF0dHJQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZElEIj54bWxBZGRJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkUmVmIj54bWxBZGRSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQiPnhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlQcm9wIj54bWxDb3B5UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5UHJvcExpc3QiPnhtbENvcHlQcm9wTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ciI+eG1sRGVidWdEdW1wQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ckxpc3QiPnhtbERlYnVnRHVtcEF0dHJMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVQcm9wIj54bWxGcmVlUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlUHJvcExpc3QiPnhtbEZyZWVQcm9wTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNSZWYiPnhtbElzUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxSZW1vdmVJRCI+eG1sUmVtb3ZlSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVtb3ZlUHJvcCI+eG1sUmVtb3ZlUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlUmVmIj54bWxSZW1vdmVSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxBdHRyaWJ1dGVEZWZhdWx0OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRBdHRyaWJ1dGVEZWNsIj54bWxBZGRBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEF0dHJpYnV0ZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcEF0dHJpYnV0ZURlY2wiPnhtbER1bXBBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxBdHRyaWJ1dGVUYWJsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUF0dHJpYnV0ZVRhYmxlIj54bWxDb3B5QXR0cmlidXRlVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBBdHRyaWJ1dGVUYWJsZSI+eG1sRHVtcEF0dHJpYnV0ZVRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlQXR0cmlidXRlVGFibGUiPnhtbEZyZWVBdHRyaWJ1dGVUYWJsZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxBdHRyaWJ1dGVUeXBlOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRBdHRyaWJ1dGVEZWNsIj54bWxBZGRBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEF1dG9tYXRhUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUNvbXBpbGUiPnhtbEF1dG9tYXRhQ29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFHZXRJbml0U3RhdGUiPnhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QiPnhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdBbGxUcmFucyI+eG1sQXV0b21hdGFOZXdBbGxUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVyIj54bWxBdXRvbWF0YU5ld0NvdW50ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdFcHNpbG9uIj54bWxBdXRvbWF0YU5ld0Vwc2lsb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiPnhtbEF1dG9tYXRhTmV3TmVnVHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3U3RhdGUiPnhtbEF1dG9tYXRhTmV3U3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUiPnhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sRnJlZUF1dG9tYXRhIj54bWxGcmVlQXV0b21hdGE8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQXV0b21hdGFTdGF0ZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdBbGxUcmFucyI+eG1sQXV0b21hdGFOZXdBbGxUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zIj54bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0Vwc2lsb24iPnhtbEF1dG9tYXRhTmV3RXBzaWxvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdOZWdUcmFucyI+eG1sQXV0b21hdGFOZXdOZWdUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIiPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU2V0RmluYWxTdGF0ZSI+eG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lIj54bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxCdWZmZXJQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcCI+aHRtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEF0dHJTZXJpYWxpemVUeHRDb250ZW50Ij54bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGQiPnhtbEJ1ZmZlckFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGRIZWFkIj54bWxCdWZmZXJBZGRIZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNDYXQiPnhtbEJ1ZmZlckNDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ2F0Ij54bWxCdWZmZXJDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyRHVtcCI+eG1sQnVmZmVyRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJFbXB0eSI+eG1sQnVmZmVyRW1wdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyRnJlZSI+eG1sQnVmZmVyRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJHcm93Ij54bWxCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclJlc2l6ZSI+eG1sQnVmZmVyUmVzaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyU2hyaW5rIj54bWxCdWZmZXJTaHJpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVDSEFSIj54bWxCdWZmZXJXcml0ZUNIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVDaGFyIj54bWxCdWZmZXJXcml0ZUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmciPnhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jRmlyc3RMaW5lIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jSW5GdW5jIj54bWxDaGFyRW5jSW5GdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBBdHRyaWJ1dGVEZWNsIj54bWxEdW1wQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcEF0dHJpYnV0ZVRhYmxlIj54bWxEdW1wQXR0cmlidXRlVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBFbGVtZW50RGVjbCI+eG1sRHVtcEVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wRWxlbWVudFRhYmxlIj54bWxEdW1wRWxlbWVudFRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxEdW1wRW50aXRpZXNUYWJsZSI+eG1sRHVtcEVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbER1bXBFbnRpdHlEZWNsIj54bWxEdW1wRW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcE5vdGF0aW9uRGVjbCI+eG1sRHVtcE5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcE5vdGF0aW9uVGFibGUiPnhtbER1bXBOb3RhdGlvblRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRHVtcCI+eG1sRXhwRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJNZW1vcnkiPnhtbE5ld1RleHRXcml0ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUJ1ZkdldENvbnRlbnQiPnhtbE5vZGVCdWZHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvQnVmZmVyIj54bWxTYXZlVG9CdWZmZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxDYXRhbG9nQWxsb3c6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRzIj54bWxDYXRhbG9nU2V0RGVmYXVsdHM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2F0YWxvZ1ByZWZlcjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciI+eG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2F0YWxvZ1B0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ0FkZCI+eG1sQUNhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dEdW1wIj54bWxBQ2F0YWxvZ0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZW1vdmUiPnhtbEFDYXRhbG9nUmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVzb2x2ZSI+eG1sQUNhdGFsb2dSZXNvbHZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYyI+eG1sQUNhdGFsb2dSZXNvbHZlUHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbSI+eG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nUmVzb2x2ZVVSSSI+eG1sQUNhdGFsb2dSZXNvbHZlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dJc0VtcHR5Ij54bWxDYXRhbG9nSXNFbXB0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDb252ZXJ0U0dNTENhdGFsb2ciPnhtbENvbnZlcnRTR01MQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxGcmVlQ2F0YWxvZyI+eG1sRnJlZUNhdGFsb2c8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2hhcjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNociI+eG1sU3RyY2hyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0RlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbENoYXIgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NoZWNrTmFtZXNwYWNlIj5jaGVja05hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VEb2MiPmRvY2JQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VEb2MiPmRvY2JTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2VudGl0eURlY2wiPmVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbnRpdHlEZWNsU0FYRnVuYyI+ZW50aXR5RGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRG9jIj5odG1sUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRG9jIj5odG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVpbGRRTmFtZSI+eG1sQnVpbGRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENvcHlDaGFyIj54bWxDb3B5Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENvcHlDaGFyTXVsdGlCeXRlIj54bWxDb3B5Q2hhck11bHRpQnl0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ29waWVyIj54bWxIYXNoQ29waWVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyIj54bWxIYXNoU2Nhbm5lcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Tm9kZUVhdE5hbWUiPnhtbE5ld05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zUHJvcEVhdE5hbWUiPnhtbE5ld05zUHJvcEVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyRW50aXR5RGVjbCI+eG1sU0FYMkVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJQcmludGYiPnhtbFN0clByaW50ZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clZQcmludGYiPnhtbFN0clZQcmludGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXQiPnhtbFN0cm5jYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcFN0cmluZyI+eG1sWFBhdGhXcmFwU3RyaW5nPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbENoYXIgKio6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wTWVtb3J5Ij5odG1sRG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQiPmh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcEZvcm1hdE1lbW9yeSI+eG1sRG9jRHVtcEZvcm1hdE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBNZW1vcnkiPnhtbERvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeUVuYyI+eG1sRG9jRHVtcE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiPnhtbE5hbWVzcGFjZVBhcnNlUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSI+eG1sUGFyc2VBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlWYWx1ZSI+eG1sUGFyc2VFbnRpdHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0VyckluZm8iPnhtbFJlZ0V4ZWNFcnJJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3BsaXRRTmFtZSI+eG1sU3BsaXRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMiI+eG1sU3BsaXRRTmFtZTI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2hhckVuY29kaW5nOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyIj54bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlSU9QYXJzZXJDdHh0Ij54bWxDcmVhdGVJT1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbEdldENoYXJFbmNvZGluZ05hbWUiPnhtbEdldENoYXJFbmNvZGluZ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJT1BhcnNlRFREIj54bWxJT1BhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTmV3SU9JbnB1dFN0cmVhbSI+eG1sTmV3SU9JbnB1dFN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSI+eG1sU2NoZW1hVmFsaWRhdGVTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hFbmNvZGluZyI+eG1sU3dpdGNoRW5jb2Rpbmc8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2hhckVuY29kaW5nSGFuZGxlciAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jQ2xvc2VGdW5jIj54bWxDaGFyRW5jQ2xvc2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jRmlyc3RMaW5lIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jSW5GdW5jIj54bWxDaGFyRW5jSW5GdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jT3V0RnVuYyI+eG1sQ2hhckVuY091dEZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQWxsb2NPdXRwdXRCdWZmZXIiPnhtbEFsbG9jT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hJbnB1dEVuY29kaW5nIj54bWxTd2l0Y2hJbnB1dEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3dpdGNoVG9FbmNvZGluZyI+eG1sU3dpdGNoVG9FbmNvZGluZzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVTZXRBdHRyRXNjYXBlIj54bWxTYXZlU2V0QXR0ckVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlU2V0RXNjYXBlIj54bWxTYXZlU2V0RXNjYXBlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbERPTVdyYXBDdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiI+eG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwRnJlZUN0eHQiPnhtbERPTVdyYXBGcmVlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbERlcmVnaXN0ZXJOb2RlRnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxEaWN0ICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbERpY3RQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZVN1YiI+eG1sRGljdENyZWF0ZVN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0RXhpc3RzIj54bWxEaWN0RXhpc3RzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RGcmVlIj54bWxEaWN0RnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0TG9va3VwIj54bWxEaWN0TG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RPd25zIj54bWxEaWN0T3duczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UUxvb2t1cCI+eG1sRGljdFFMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFJlZmVyZW5jZSI+eG1sRGljdFJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0U2l6ZSI+eG1sRGljdFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdDdHh0Ij54bWxFeHBOZXdDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDcmVhdGVEaWN0Ij54bWxIYXNoQ3JlYXRlRGljdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxEb2NQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCI+aHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jQ29udGVudER1bXBPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXAiPmh0bWxEb2NEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jRHVtcE1lbW9yeSI+aHRtbERvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0Ij5odG1sRG9jRHVtcE1lbW9yeUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wIj5odG1sTm9kZUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGUiPmh0bWxOb2RlRHVtcEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQiPmh0bWxOb2RlRHVtcEZpbGVGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCI+aHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBPdXRwdXQiPmh0bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbFNhdmVGaWxlIj5odG1sU2F2ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTYXZlRmlsZUVuYyI+aHRtbFNhdmVGaWxlRW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2F2ZUZpbGVGb3JtYXQiPmh0bWxTYXZlRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxBZGREb2NFbnRpdHkiPnhtbEFkZERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQWRkRHRkRW50aXR5Ij54bWxBZGREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZElEIj54bWxBZGRJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkUmVmIj54bWxBZGRSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQiPnhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZSI+eG1sQzE0TkRvY1NhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyI+eG1sQzE0TkRvY1NhdmVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weURvYyI+eG1sQ29weURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weURvY0VsZW1lbnRDb250ZW50Ij54bWxDb3B5RG9jRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ3JlYXRlSW50U3Vic2V0Ij54bWxDcmVhdGVJbnRTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdDaGVja0RvY3VtZW50Ij54bWxEZWJ1Z0NoZWNrRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcERvY3VtZW50Ij54bWxEZWJ1Z0R1bXBEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkIj54bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEVudGl0aWVzIj54bWxEZWJ1Z0R1bXBFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NDb3B5Tm9kZSI+eG1sRG9jQ29weU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGVMaXN0Ij54bWxEb2NDb3B5Tm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcCI+eG1sRG9jRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeSI+eG1sRG9jRHVtcE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5RW5jIj54bWxEb2NEdW1wTWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0Zvcm1hdER1bXAiPnhtbERvY0Zvcm1hdER1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jR2V0Um9vdEVsZW1lbnQiPnhtbERvY0dldFJvb3RFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1NldFJvb3RFbGVtZW50Ij54bWxEb2NTZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtRHVtcCI+eG1sRWxlbUR1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQiPnhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVTcGVjaWFsQ2hhcnMiPnhtbEVuY29kZVNwZWNpYWxDaGFyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlRG9jIj54bWxGcmVlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQiPnhtbEZyZWVEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXREb2NDb21wcmVzc01vZGUiPnhtbEdldERvY0NvbXByZXNzTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0RG9jRW50aXR5Ij54bWxHZXREb2NFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldER0ZEVudGl0eSI+eG1sR2V0RHRkRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXRJRCI+eG1sR2V0SUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0SW50U3Vic2V0Ij54bWxHZXRJbnRTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNMaXN0Ij54bWxHZXROc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldFBhcmFtZXRlckVudGl0eSI+eG1sR2V0UGFyYW1ldGVyRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXRSZWZzIj54bWxHZXRSZWZzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc0lEIj54bWxJc0lEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc01peGVkRWxlbWVudCI+eG1sSXNNaXhlZEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzUmVmIj54bWxJc1JlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDRGF0YUJsb2NrIj54bWxOZXdDRGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0NoYXJSZWYiPnhtbE5ld0NoYXJSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jQ29tbWVudCI+eG1sTmV3RG9jQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RG9jRWxlbWVudENvbnRlbnQiPnhtbE5ld0RvY0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY0ZyYWdtZW50Ij54bWxOZXdEb2NGcmFnbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlIj54bWxOZXdEb2NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGVFYXROYW1lIj54bWxOZXdEb2NOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NQSSI+eG1sTmV3RG9jUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUHJvcCI+eG1sTmV3RG9jUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NSYXdOb2RlIj54bWxOZXdEb2NSYXdOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1RleHQiPnhtbE5ld0RvY1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jVGV4dExlbiI+eG1sTmV3RG9jVGV4dExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEdGQiPnhtbE5ld0R0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sTmV3RW50aXR5Ij54bWxOZXdFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1JlZmVyZW5jZSI+eG1sTmV3UmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclRyZWUiPnhtbE5ld1RleHRXcml0ZXJUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wIj54bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlRHVtcE91dHB1dCI+eG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldEJhc2UiPnhtbE5vZGVHZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3V2Fsa2VyIj54bWxSZWFkZXJOZXdXYWxrZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJXYWxrZXIiPnhtbFJlYWRlcldhbGtlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZURvYyI+eG1sUmVsYXhOR1ZhbGlkYXRlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlSUQiPnhtbFJlbW92ZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxSZW1vdmVSZWYiPnhtbFJlbW92ZVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlRG9jIj54bWxTYXZlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlIj54bWxTYXZlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZUVuYyI+eG1sU2F2ZUZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZpbGVUbyI+eG1sU2F2ZUZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZSI+eG1sU2F2ZUZvcm1hdEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVFbmMiPnhtbFNhdmVGb3JtYXRGaWxlRW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlVG8iPnhtbFNhdmVGb3JtYXRGaWxlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZURvYyI+eG1sU2NoZW1hVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGF0ZURvYyI+eG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0RG9jQ29tcHJlc3NNb2RlIj54bWxTZXREb2NDb21wcmVzc01vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TGlzdERvYyI+eG1sU2V0TGlzdERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRUcmVlRG9jIj54bWxTZXRUcmVlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbCI+eG1sU2hlbGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0xlbkdldE5vZGVMaXN0Ij54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudCI+eG1sVmFsaWRhdGVEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkIj54bWxWYWxpZGF0ZUR0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCI+eG1sVmFsaWRhdGVEdGRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50Ij54bWxWYWxpZGF0ZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRWxlbWVudERlY2wiPnhtbFZhbGlkYXRlRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25EZWNsIj54bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvblVzZSI+eG1sVmFsaWRhdGVOb3RhdGlvblVzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFZhbGlkYXRlUG9wRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sVmFsaWRhdGVQdXNoRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVSb290Ij54bWxWYWxpZGF0ZVJvb3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlTmV3Q29udGV4dCI+eG1sWEluY2x1ZGVOZXdDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3MiPnhtbFhJbmNsdWRlUHJvY2VzczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEiPnhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOZXdDb250ZXh0Ij54bWxYUGF0aE5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3Q29udGV4dCI+eG1sWFB0ck5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRG9jUHRyICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyRG9jIj54bWxOZXdUZXh0V3JpdGVyRG9jPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbER0ZFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkQXR0cmlidXRlRGVjbCI+eG1sQWRkQXR0cmlidXRlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkRWxlbWVudERlY2wiPnhtbEFkZEVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGROb3RhdGlvbkRlY2wiPnhtbEFkZE5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RHRkIj54bWxDb3B5RHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEVEQiPnhtbERlYnVnRHVtcERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlRHRkIj54bWxGcmVlRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRBdHRyRGVzYyI+eG1sR2V0RHRkQXR0ckRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZEVsZW1lbnREZXNjIj54bWxHZXREdGRFbGVtZW50RGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkTm90YXRpb25EZXNjIj54bWxHZXREdGROb3RhdGlvbkRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZFFBdHRyRGVzYyI+eG1sR2V0RHRkUUF0dHJEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRRRWxlbWVudERlc2MiPnhtbEdldER0ZFFFbGVtZW50RGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEVsZW1lbnRDb250ZW50ICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iPnhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW48L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRWxlbWVudENvbnRlbnRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbGVtZW50RGVjbCI+ZWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbGVtZW50RGVjbFNBWEZ1bmMiPmVsZW1lbnREZWNsU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkRWxlbWVudERlY2wiPnhtbEFkZEVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQiPnhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRDb250ZW50Ij54bWxDb3B5RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVEb2NFbGVtZW50Q29udGVudCI+eG1sRnJlZURvY0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlRWxlbWVudENvbnRlbnQiPnhtbEZyZWVFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyRWxlbWVudERlY2wiPnhtbFNBWDJFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sU25wcmludGZFbGVtZW50Q29udGVudCI+eG1sU25wcmludGZFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sU3ByaW50ZkVsZW1lbnRDb250ZW50Ij54bWxTcHJpbnRmRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRWxlbWVudENvbnRlbnRQdHIgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxFbGVtZW50Q29udGVudFR5cGU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbE5ld0RvY0VsZW1lbnRDb250ZW50Ij54bWxOZXdEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RWxlbWVudENvbnRlbnQiPnhtbE5ld0VsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEVsZW1lbnRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBFbGVtZW50RGVjbCI+eG1sRHVtcEVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIj54bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIj54bWxWYWxpZGF0ZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEVsZW1lbnRUYWJsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRUYWJsZSI+eG1sQ29weUVsZW1lbnRUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcEVsZW1lbnRUYWJsZSI+eG1sRHVtcEVsZW1lbnRUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVsZW1lbnRUYWJsZSI+eG1sRnJlZUVsZW1lbnRUYWJsZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxFbGVtZW50VHlwZVZhbDo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkRWxlbWVudERlY2wiPnhtbEFkZEVsZW1lbnREZWNsPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEVudGl0aWVzVGFibGVQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENvcHlFbnRpdGllc1RhYmxlIj54bWxDb3B5RW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRHVtcEVudGl0aWVzVGFibGUiPnhtbER1bXBFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxGcmVlRW50aXRpZXNUYWJsZSI+eG1sRnJlZUVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRW50aXR5UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxEdW1wRW50aXR5RGVjbCI+eG1sRHVtcEVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sSGFuZGxlRW50aXR5Ij54bWxIYW5kbGVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSI+eG1sTmV3RW50aXR5SW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRW50aXR5UmVmZXJlbmNlRnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMiPnhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRW51bWVyYXRpb25QdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGVEZWNsIj5hdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlRGVjbFNBWEZ1bmMiPmF0dHJpYnV0ZURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRBdHRyaWJ1dGVEZWNsIj54bWxBZGRBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RW51bWVyYXRpb24iPnhtbENvcHlFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVudW1lcmF0aW9uIj54bWxGcmVlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkF0dHJpYnV0ZURlY2wiPnhtbFNBWDJBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEVudW1lcmF0aW9uUHRyICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRlZFR5cGUiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRXJyb3JQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbENvcHlFcnJvciI+eG1sQ29weUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxSZXNldEVycm9yIj54bWxSZXNldEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEV4cEN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0TmJDb25zIj54bWxFeHBDdHh0TmJDb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dE5iTm9kZXMiPnhtbEV4cEN0eHROYk5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBGcmVlIj54bWxFeHBGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRnJlZUN0eHQiPnhtbEV4cEZyZWVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0TGFuZ3VhZ2UiPnhtbEV4cEdldExhbmd1YWdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3QXRvbSI+eG1sRXhwTmV3QXRvbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld09yIj54bWxFeHBOZXdPcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIj54bWxFeHBOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1NlcSI+eG1sRXhwTmV3U2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwU3RyaW5nRGVyaXZlIj54bWxFeHBTdHJpbmdEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBTdWJzdW1lIj54bWxFeHBTdWJzdW1lPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEV4cE5vZGVQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBEdW1wIj54bWxFeHBEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwRXhwRGVyaXZlIj54bWxFeHBFeHBEZXJpdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBGcmVlIj54bWxFeHBGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0TGFuZ3VhZ2UiPnhtbEV4cEdldExhbmd1YWdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwSXNOaWxsYWJsZSI+eG1sRXhwSXNOaWxsYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE1heFRva2VuIj54bWxFeHBNYXhUb2tlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld09yIj54bWxFeHBOZXdPcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIj54bWxFeHBOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1NlcSI+eG1sRXhwTmV3U2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUmVmIj54bWxFeHBSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBTdHJpbmdEZXJpdmUiPnhtbEV4cFN0cmluZ0Rlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFN1YnN1bWUiPnhtbEV4cFN1YnN1bWU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRmVhdHVyZTo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sRnJlZUZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEZyZWVGdW5jICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1HZXQiPnhtbE1lbUdldDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxHZW5lcmljRXJyb3JGdW5jOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIj54bWxTZXRHZW5lcmljRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sR2VuZXJpY0Vycm9yRnVuYyAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMiPmluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxHbG9iYWxTdGF0ZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUiPnhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxIYXNoQ29waWVyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3B5Ij54bWxIYXNoQ29weTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxIYXNoRGVhbGxvY2F0b3I6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEZyZWUiPnhtbEhhc2hGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIj54bWxIYXNoVXBkYXRlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sSGFzaFNjYW5uZXI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4iPnhtbEhhc2hTY2FuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuMyI+eG1sSGFzaFNjYW4zPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEhhc2hTY2FubmVyRnVsbDo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwiPnhtbEhhc2hTY2FuRnVsbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbEhhc2hUYWJsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkiPnhtbEhhc2hBZGRFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQWRkRW50cnkyIj54bWxIYXNoQWRkRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTMiPnhtbEhhc2hBZGRFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENvcHkiPnhtbEhhc2hDb3B5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hGcmVlIj54bWxIYXNoRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwIj54bWxIYXNoTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hMb29rdXAyIj54bWxIYXNoTG9va3VwMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMyI+eG1sSGFzaExvb2t1cDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFFMb29rdXAiPnhtbEhhc2hRTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMiI+eG1sSGFzaFFMb29rdXAyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwMyI+eG1sSGFzaFFMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTIiPnhtbEhhc2hSZW1vdmVFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MyI+eG1sSGFzaFJlbW92ZUVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2NhbiI+eG1sSGFzaFNjYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4zIj54bWxIYXNoU2NhbjM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsIj54bWxIYXNoU2NhbkZ1bGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5GdWxsMyI+eG1sSGFzaFNjYW5GdWxsMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2l6ZSI+eG1sSGFzaFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5Ij54bWxIYXNoVXBkYXRlRW50cnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFVwZGF0ZUVudHJ5MiI+eG1sSGFzaFVwZGF0ZUVudHJ5MjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkzIj54bWxIYXNoVXBkYXRlRW50cnkzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbElEVGFibGVQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVJRFRhYmxlIj54bWxGcmVlSURUYWJsZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxJbnB1dENsb3NlQ2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkSU8iPmh0bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkSU8iPmh0bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVJT1BhcnNlckN0eHQiPnhtbENyZWF0ZUlPUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkSU8iPnhtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWFkSU8iPnhtbFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvcklPIj54bWxSZWFkZXJGb3JJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0lPIj54bWxSZWFkZXJOZXdJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxJbnB1dE1hdGNoQ2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sSW5wdXRPcGVuQ2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sSW5wdXRSZWFkQ2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkSU8iPmh0bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkSU8iPmh0bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVJT1BhcnNlckN0eHQiPnhtbENyZWF0ZUlPUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkSU8iPnhtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWFkSU8iPnhtbFJlYWRJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvcklPIj54bWxSZWFkZXJGb3JJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0lPIj54bWxSZWFkZXJOZXdJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxMaW5rUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpbmtHZXREYXRhIj54bWxMaW5rR2V0RGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RGVhbGxvY2F0b3IiPnhtbExpc3REZWFsbG9jYXRvcjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxMaXN0RGF0YUNvbXBhcmU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENyZWF0ZSI+eG1sTGlzdENyZWF0ZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxMaXN0RGVhbGxvY2F0b3I6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENyZWF0ZSI+eG1sTGlzdENyZWF0ZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxMaXN0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RBcHBlbmQiPnhtbExpc3RBcHBlbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENsZWFyIj54bWxMaXN0Q2xlYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENvcHkiPnhtbExpc3RDb3B5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3REZWxldGUiPnhtbExpc3REZWxldGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEVtcHR5Ij54bWxMaXN0RW1wdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEVuZCI+eG1sTGlzdEVuZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RnJvbnQiPnhtbExpc3RGcm9udDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0SW5zZXJ0Ij54bWxMaXN0SW5zZXJ0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RNZXJnZSI+eG1sTGlzdE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RQb3BCYWNrIj54bWxMaXN0UG9wQmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UG9wRnJvbnQiPnhtbExpc3RQb3BGcm9udDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHVzaEJhY2siPnhtbExpc3RQdXNoQmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHVzaEZyb250Ij54bWxMaXN0UHVzaEZyb250PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZW1vdmVBbGwiPnhtbExpc3RSZW1vdmVBbGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUZpcnN0Ij54bWxMaXN0UmVtb3ZlRmlyc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUxhc3QiPnhtbExpc3RSZW1vdmVMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlIj54bWxMaXN0UmV2ZXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVNlYXJjaCI+eG1sTGlzdFJldmVyc2VTZWFyY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJldmVyc2VXYWxrIj54bWxMaXN0UmV2ZXJzZVdhbGs8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNlYXJjaCI+eG1sTGlzdFNlYXJjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0U2l6ZSI+eG1sTGlzdFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNvcnQiPnhtbExpc3RTb3J0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxMaXN0V2Fsa2VyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlV2FsayI+eG1sTGlzdFJldmVyc2VXYWxrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxMb2NhdGlvblNldFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckZyZWVMb2NhdGlvblNldCI+eG1sWFB0ckZyZWVMb2NhdGlvblNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0QWRkIj54bWxYUHRyTG9jYXRpb25TZXRBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldERlbCI+eG1sWFB0ckxvY2F0aW9uU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldFJlbW92ZSI+eG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyV3JhcExvY2F0aW9uU2V0Ij54bWxYUHRyV3JhcExvY2F0aW9uU2V0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbE1hbGxvY0Z1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbE1hbGxvY0Z1bmMgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbE1vZHVsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUNsb3NlIj54bWxNb2R1bGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUZyZWUiPnhtbE1vZHVsZUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVTeW1ib2wiPnhtbE1vZHVsZVN5bWJvbDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxNdXRleFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxGcmVlTXV0ZXgiPnhtbEZyZWVNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleExvY2siPnhtbE11dGV4TG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFVubG9jayI+eG1sTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTm9kZSAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxOb2RlUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXAiPmh0bWxOb2RlRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZSI+aHRtbE5vZGVEdW1wRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCI+aHRtbE5vZGVEdW1wRmlsZUZvcm1hdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0Ij5odG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcE91dHB1dCI+aHRtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVB1c2giPm5vZGVQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rSXNMaW5rIj54bGlua0lzTGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtOb2RlRGV0ZWN0RnVuYyI+eGxpbmtOb2RlRGV0ZWN0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRDaGlsZCI+eG1sQWRkQ2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGRMaXN0Ij54bWxBZGRDaGlsZExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkTmV4dFNpYmxpbmciPnhtbEFkZE5leHRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZFByZXZTaWJsaW5nIj54bWxBZGRQcmV2U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRTaWJsaW5nIj54bWxBZGRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Jc1Zpc2libGVDYWxsYmFjayI+eG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENoaWxkRWxlbWVudENvdW50Ij54bWxDaGlsZEVsZW1lbnRDb3VudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5UHJvcCI+eG1sQ29weVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weVByb3BMaXN0Ij54bWxDb3B5UHJvcExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIj54bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFkb3B0Tm9kZSI+eG1sRE9NV3JhcEFkb3B0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ2xvbmVOb2RlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE5vZGUiPnhtbERlYnVnRHVtcE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE5vZGVMaXN0Ij54bWxEZWJ1Z0R1bXBOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wT25lTm9kZSI+eG1sRGVidWdEdW1wT25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRWxlbUR1bXAiPnhtbEVsZW1EdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGaXJzdEVsZW1lbnRDaGlsZCI+eG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5vZGUiPnhtbEZyZWVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOb2RlTGlzdCI+eG1sRnJlZU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExhc3RDaGlsZCI+eG1sR2V0TGFzdENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExpbmVObyI+eG1sR2V0TGluZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5vTnNQcm9wIj54bWxHZXROb05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb2RlUGF0aCI+eG1sR2V0Tm9kZVBhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNMaXN0Ij54bWxHZXROc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIj54bWxHZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElzQmxhbmtOb2RlIj54bWxJc0JsYW5rTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNJRCI+eG1sSXNJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSXNSZWYiPnhtbElzUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbExzQ291bnROb2RlIj54bWxMc0NvdW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sTHNPbmVOb2RlIj54bWxMc09uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05zIj54bWxOZXdOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3AiPnhtbE5ld05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3BFYXROYW1lIj54bWxOZXdOc1Byb3BFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1Byb3AiPnhtbE5ld1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dENoaWxkIj54bWxOZXdUZXh0Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyVHJlZSI+eG1sTmV3VGV4dFdyaXRlclRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV4dEVsZW1lbnRTaWJsaW5nIj54bWxOZXh0RWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnQiPnhtbE5vZGVBZGRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50TGVuIj54bWxOb2RlQWRkQ29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQnVmR2V0Q29udGVudCI+eG1sTm9kZUJ1ZkdldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXAiPnhtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wT3V0cHV0Ij54bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldENvbnRlbnQiPnhtbE5vZGVHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZUdldFNwYWNlUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUlzVGV4dCI+eG1sTm9kZUlzVGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRTdHJpbmciPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRCYXNlIj54bWxOb2RlU2V0QmFzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRMYW5nIj54bWxOb2RlU2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0TmFtZSI+eG1sTm9kZVNldE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVTZXRTcGFjZVByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1hdGNoIj54bWxQYXR0ZXJuTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUHJldmlvdXNFbGVtZW50U2libGluZyI+eG1sUHJldmlvdXNFbGVtZW50U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxSZWNvbmNpbGlhdGVOcyI+eG1sUmVjb25jaWxpYXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVwbGFjZU5vZGUiPnhtbFJlcGxhY2VOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyI+eG1sU2VhcmNoTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnNCeUhyZWYiPnhtbFNlYXJjaE5zQnlIcmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldExpc3REb2MiPnhtbFNldExpc3REb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnMiPnhtbFNldE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldE5zUHJvcCI+eG1sU2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldFByb3AiPnhtbFNldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0VHJlZURvYyI+eG1sU2V0VHJlZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxCYXNlIj54bWxTaGVsbEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ2F0Ij54bWxTaGVsbENhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDbWQiPnhtbFNoZWxsQ21kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbERpciI+eG1sU2hlbGxEaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiPnhtbFNoZWxsRHU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTGlzdCI+eG1sU2hlbGxMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbExvYWQiPnhtbFNoZWxsTG9hZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludE5vZGUiPnhtbFNoZWxsUHJpbnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsU2F2ZSI+eG1sU2hlbGxTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFZhbGlkYXRlIj54bWxTaGVsbFZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFdyaXRlIj54bWxTaGVsbFdyaXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFRleHRDb25jYXQiPnhtbFRleHRDb25jYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVGV4dE1lcmdlIj54bWxUZXh0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5saW5rTm9kZSI+eG1sVW5saW5rTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbnNldE5zUHJvcCI+eG1sVW5zZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5zZXRQcm9wIj54bWxVbnNldFByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50Ij54bWxWYWxpZGF0ZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lQXR0cmlidXRlIj54bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVQb3BFbGVtZW50Ij54bWxWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc05vZGUiPnhtbFhJbmNsdWRlUHJvY2Vzc05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWUiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXIiPnhtbFhQYXRoQ2FzdE5vZGVUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nIj54bWxYUGF0aENhc3ROb2RlVG9TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ21wTm9kZXMiPnhtbFhQYXRoQ21wTm9kZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldCI+eG1sWFBhdGhOZXdOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1ZhbHVlVHJlZSI+eG1sWFBhdGhOZXdWYWx1ZVRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYiPnhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBdHRyaWJ1dGUiPnhtbFhQYXRoTmV4dEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Q2hpbGQiPnhtbFhQYXRoTmV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50Ij54bWxYUGF0aE5leHREZXNjZW5kYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmIj54bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRGb2xsb3dpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0TmFtZXNwYWNlIj54bWxYUGF0aE5leHROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFBhcmVudCI+eG1sWFBhdGhOZXh0UGFyZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0U2VsZiI+eG1sWFBhdGhOZXh0U2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlTGVhZGluZyI+eG1sWFBhdGhOb2RlTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkIj54bWxYUGF0aE5vZGVTZXRBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZE5zIj54bWxYUGF0aE5vZGVTZXRBZGROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlIj54bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldENvbnRhaW5zIj54bWxYUGF0aE5vZGVTZXRDb250YWluczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0Q3JlYXRlIj54bWxYUGF0aE5vZGVTZXRDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZyI+eG1sWFBhdGhOb2RlVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIj54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIj54bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMiPnhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2UiPnhtbFhQdHJOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCI+eG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50Ij54bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZU5vZGVzIj54bWxYUHRyTmV3UmFuZ2VOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIj54bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTm9kZVB0ciAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDbG9uZU5vZGUiPnhtbERPTVdyYXBDbG9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTm9kZVNldFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlciI+eG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmciPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaWZmZXJlbmNlIj54bWxYUGF0aERpZmZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3RTb3J0ZWQiPnhtbFhQYXRoRGlzdGluY3RTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXQiPnhtbFhQYXRoRnJlZU5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSGFzU2FtZU5vZGVzIj54bWxYUGF0aEhhc1NhbWVOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJbnRlcnNlY3Rpb24iPnhtbFhQYXRoSW50ZXJzZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldExpc3QiPnhtbFhQYXRoTmV3Tm9kZVNldExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciPnhtbFhQYXRoTm9kZUxlYWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZCI+eG1sWFBhdGhOb2RlU2V0QWRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRBZGROcyI+eG1sWFBhdGhOb2RlU2V0QWRkTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSI+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRDb250YWlucyI+eG1sWFBhdGhOb2RlU2V0Q29udGFpbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRNZXJnZSI+eG1sWFBhdGhOb2RlU2V0TWVyZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldFJlbW92ZSI+eG1sWFBhdGhOb2RlU2V0UmVtb3ZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRTb3J0Ij54bWxYUGF0aE5vZGVTZXRTb3J0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZyI+eG1sWFBhdGhOb2RlVHJhaWxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIj54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZyI+eG1sWFBhdGhUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhXcmFwTm9kZVNldCI+eG1sWFBhdGhXcmFwTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxOb3RhdGlvblB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcE5vdGF0aW9uRGVjbCI+eG1sRHVtcE5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbE5vdGF0aW9uVGFibGVQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENvcHlOb3RhdGlvblRhYmxlIj54bWxDb3B5Tm90YXRpb25UYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcE5vdGF0aW9uVGFibGUiPnhtbER1bXBOb3RhdGlvblRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlTm90YXRpb25UYWJsZSI+eG1sRnJlZU5vdGF0aW9uVGFibGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sTnNQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5hbWVzcGFjZSI+eG1sQ29weU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5TmFtZXNwYWNlTGlzdCI+eG1sQ29weU5hbWVzcGFjZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5zIj54bWxGcmVlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZU5zTGlzdCI+eG1sRnJlZU5zTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGlsZCI+eG1sTmV3Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZSI+eG1sTmV3RG9jTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NOb2RlRWF0TmFtZSI+eG1sTmV3RG9jTm9kZUVhdE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jUmF3Tm9kZSI+eG1sTmV3RG9jUmF3Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOb2RlIj54bWxOZXdOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGVFYXROYW1lIj54bWxOZXdOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3AiPnhtbE5ld05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3BFYXROYW1lIj54bWxOZXdOc1Byb3BFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldE5zIj54bWxTZXROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXROc1Byb3AiPnhtbFNldE5zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbnNldE5zUHJvcCI+eG1sVW5zZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lTmFtZXNwYWNlIj54bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkTnMiPnhtbFhQYXRoTm9kZVNldEFkZE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRGcmVlTnMiPnhtbFhQYXRoTm9kZVNldEZyZWVOczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sT3V0cHV0QnVmZmVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0Ij5odG1sRG9jQ29udGVudER1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCI+aHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBPdXRwdXQiPmh0bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXBPdXRwdXQiPnhtbE5vZGVEdW1wT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDbG9zZSI+eG1sT3V0cHV0QnVmZmVyQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckZsdXNoIj54bWxPdXRwdXRCdWZmZXJGbHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZVRvIj54bWxTYXZlRmlsZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlVG8iPnhtbFNhdmVGb3JtYXRGaWxlVG88L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sT3V0cHV0Q2xvc2VDYWxsYmFjazo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8iPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvSU8iPnhtbFNhdmVUb0lPPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbE91dHB1dE1hdGNoQ2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIj54bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxPdXRwdXRPcGVuQ2FsbGJhY2s6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIj54bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxPdXRwdXRXcml0ZUNhbGxiYWNrOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIj54bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUGFyc2VyQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2lucHV0UG9wIj5pbnB1dFBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2lucHV0UHVzaCI+aW5wdXRQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbmFtZVBvcCI+bmFtZVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25hbWVQdXNoIj5uYW1lUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25vZGVQb3AiPm5vZGVQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNub2RlUHVzaCI+bm9kZVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxCeXRlQ29uc3VtZWQiPnhtbEJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2hlY2tIVFRQSW5wdXQiPnhtbENoZWNrSFRUUElucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYXJQYXJzZXJDdHh0Ij54bWxDbGVhclBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZERvYyI+eG1sQ3R4dFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZEZkIj54bWxDdHh0UmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRGaWxlIj54bWxDdHh0UmVhZEZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZElPIj54bWxDdHh0UmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRNZW1vcnkiPnhtbEN0eHRSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFJlc2V0Ij54bWxDdHh0UmVzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVzZXRQdXNoIj54bWxDdHh0UmVzZXRQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFVzZU9wdGlvbnMiPnhtbEN0eHRVc2VPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRXJyTWVtb3J5Ij54bWxFcnJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxGcmVlUGFyc2VyQ3R4dCI+eG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxHZXRGZWF0dXJlIj54bWxHZXRGZWF0dXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sSGFuZGxlRW50aXR5Ij54bWxIYW5kbGVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0UGFyc2VyQ3R4dCI+eG1sSW5pdFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMb2FkRXh0ZXJuYWxFbnRpdHkiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIj54bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTlNEZWYiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3RW50aXR5SW5wdXRTdHJlYW0iPnhtbE5ld0VudGl0eUlucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTmV3SU9JbnB1dFN0cmVhbSI+eG1sTmV3SU9JbnB1dFN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5ld0lucHV0RnJvbUZpbGUiPnhtbE5ld0lucHV0RnJvbUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdJbnB1dFN0cmVhbSI+eG1sTmV3SW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSI+eG1sTmV3U3RyaW5nSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXh0Q2hhciI+eG1sTmV4dENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCI+eG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDRFNlY3QiPnhtbFBhcnNlQ0RTZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSI+eG1sUGFyc2VDaGFyRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ2hhclJlZiI+eG1sUGFyc2VDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDaHVuayI+eG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ29tbWVudCI+eG1sUGFyc2VDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDb250ZW50Ij54bWxQYXJzZUNvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEb2NUeXBlRGVjbCI+eG1sUGFyc2VEb2NUeXBlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRG9jdW1lbnQiPnhtbFBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnQiPnhtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5jTmFtZSI+eG1sUGFyc2VFbmNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmNvZGluZ0RlY2wiPnhtbFBhcnNlRW5jb2RpbmdEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmRUYWciPnhtbFBhcnNlRW5kVGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVZhbHVlIj54bWxQYXJzZUVudGl0eVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnVtZXJhdGVkVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRpb25UeXBlIj54bWxQYXJzZUVudW1lcmF0aW9uVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRXh0UGFyc2VkRW50Ij54bWxQYXJzZUV4dFBhcnNlZEVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbFN1YnNldCI+eG1sUGFyc2VFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNaXNjIj54bWxQYXJzZU1pc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWUiPnhtbFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm10b2tlbiI+eG1sUGFyc2VObXRva2VuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvbkRlY2wiPnhtbFBhcnNlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEkiPnhtbFBhcnNlUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJVGFyZ2V0Ij54bWxQYXJzZVBJVGFyZ2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQdWJpZExpdGVyYWwiPnhtbFBhcnNlUHViaWRMaXRlcmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VRdW90ZWRTdHJpbmciPnhtbFBhcnNlUXVvdGVkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VSZWZlcmVuY2UiPnhtbFBhcnNlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3lzdGVtTGl0ZXJhbCI+eG1sUGFyc2VTeXN0ZW1MaXRlcmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VUZXh0RGVjbCI+eG1sUGFyc2VUZXh0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbkluZm8iPnhtbFBhcnNlVmVyc2lvbkluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVZlcnNpb25OdW0iPnhtbFBhcnNlVmVyc2lvbk51bTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlWE1MRGVjbCI+eG1sUGFyc2VYTUxEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyQWRkTm9kZUluZm8iPnhtbFBhcnNlckFkZE5vZGVJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQb3BJbnB1dCI+eG1sUG9wSW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQdXNoSW5wdXQiPnhtbFB1c2hJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldEZlYXR1cmUiPnhtbFNldEZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciI+eG1sU2V0dXBQYXJzZXJGb3JCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTa2lwQmxhbmtDaGFycyI+eG1sU2tpcEJsYW5rQ2hhcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU3RvcFBhcnNlciI+eG1sU3RvcFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0N1cnJlbnRDaGFyIj54bWxTdHJpbmdDdXJyZW50Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaEVuY29kaW5nIj54bWxTd2l0Y2hFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaElucHV0RW5jb2RpbmciPnhtbFN3aXRjaElucHV0RW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hUb0VuY29kaW5nIj54bWxTd2l0Y2hUb0VuY29kaW5nPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sRnJlZVBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSU9QYXJzZURURCI+eG1sSU9QYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iPnhtbE5ld0lPSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxOZXdUZXh0UmVhZGVyIj54bWxOZXdUZXh0UmVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciPnhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIj54bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXR1cCI+eG1sVGV4dFJlYWRlclNldHVwPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFBhcnNlcklucHV0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjaW5wdXRQdXNoIj5pbnB1dFB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrSFRUUElucHV0Ij54bWxDaGVja0hUVFBJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEZyZWVJbnB1dFN0cmVhbSI+eG1sRnJlZUlucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlcklucHV0U2hyaW5rIj54bWxQYXJzZXJJbnB1dFNocmluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dCI+eG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyI+eG1sUGFyc2VyUHJpbnRGaWxlSW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFB1c2hJbnB1dCI+eG1sUHVzaElucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3dpdGNoSW5wdXRFbmNvZGluZyI+eG1sU3dpdGNoSW5wdXRFbmNvZGluZzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxQYXJzZXJOb2RlSW5mb1NlcVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFyTm9kZUluZm9TZXEiPnhtbENsZWFyTm9kZUluZm9TZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0Tm9kZUluZm9TZXEiPnhtbEluaXROb2RlSW5mb1NlcTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxQYXJzZXJTZXZlcml0aWVzOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckVycm9yRnVuYyI+eG1sVGV4dFJlYWRlckVycm9yRnVuYzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxQYXR0ZXJuUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbEZyZWVQYXR0ZXJuIj54bWxGcmVlUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxGcmVlUGF0dGVybkxpc3QiPnhtbEZyZWVQYXR0ZXJuTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuRnJvbVJvb3QiPnhtbFBhdHRlcm5Gcm9tUm9vdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCI+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1hdGNoIj54bWxQYXR0ZXJuTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1heERlcHRoIj54bWxQYXR0ZXJuTWF4RGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybk1pbkRlcHRoIj54bWxQYXR0ZXJuTWluRGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblN0cmVhbWFibGUiPnhtbFBhdHRlcm5TdHJlYW1hYmxlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJNdXRleFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxGcmVlUk11dGV4Ij54bWxGcmVlUk11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleExvY2siPnhtbFJNdXRleExvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4VW5sb2NrIj54bWxSTXV0ZXhVbmxvY2s8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUmVhbGxvY0Z1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJlYWxsb2NGdW5jICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1HZXQiPnhtbE1lbUdldDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWZUYWJsZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZVJlZlRhYmxlIj54bWxGcmVlUmVmVGFibGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUmVnRXhlY0NhbGxiYWNrczo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ij54bWxSZWdOZXdFeGVjQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWdFeGVjQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZzIiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0ZyZWVFeGVjQ3R4dCI+eG1sUmVnRnJlZUV4ZWNDdHh0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJlZ2V4cFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0ZyZWVSZWdleHAiPnhtbFJlZ0ZyZWVSZWdleHA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdOZXdFeGVjQ3R4dCI+eG1sUmVnTmV3RXhlY0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBFeGVjIj54bWxSZWdleHBFeGVjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwSXNEZXRlcm1pbmlzdCI+eG1sUmVnZXhwSXNEZXRlcm1pbmlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFByaW50Ij54bWxSZWdleHBQcmludDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWdpc3Rlck5vZGVGdW5jOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQiPnhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzIj54bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZSI+eG1sUmVsYXhOR1BhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4UGFyc2VyU2V0RmxhZyI+eG1sUmVsYXhQYXJzZXJTZXRGbGFnPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJlbGF4TkdQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0R1bXAiPnhtbFJlbGF4TkdEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdEdW1wVHJlZSI+eG1sUmVsYXhOR0R1bXBUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdGcmVlIj54bWxSZWxheE5HRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3VmFsaWRDdHh0Ij54bWxSZWxheE5HTmV3VmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQiPnhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRWYWxpZEVycm9ycyI+eG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRWYWxpZEVycm9ycyI+eG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRG9jIj54bWxSZWxheE5HVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIj54bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzIj54bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRWYWxpZEVycm9ycyI+eG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU0FYSGFuZGxlciAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIiPnhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIiPnhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhWZXJzaW9uIj54bWxTQVhWZXJzaW9uPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNBWEhhbmRsZXJQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDcmVhdGVJT1BhcnNlckN0eHQiPnhtbENyZWF0ZUlPUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbElPUGFyc2VEVEQiPnhtbElPUGFyc2VEVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEVEQiPnhtbFNBWFBhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VFbnRpdHkiPnhtbFNBWFBhcnNlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYVXNlclBhcnNlRmlsZSI+eG1sU0FYVXNlclBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFVzZXJQYXJzZU1lbW9yeSI+eG1sU0FYVXNlclBhcnNlTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIj54bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTQVhIYW5kbGVyUHRyICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1ZyI+eG1sU2NoZW1hU0FYUGx1ZzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTQVhIYW5kbGVyVjEgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXIiPmluaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0eG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU0FYTG9jYXRvclB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3NldERvY3VtZW50TG9jYXRvciI+c2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyI+c2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yIj54bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNhdmVDdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDbG9zZSI+eG1sU2F2ZUNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVEb2MiPnhtbFNhdmVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUZsdXNoIj54bWxTYXZlRmx1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVNldEF0dHJFc2NhcGUiPnhtbFNhdmVTZXRBdHRyRXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVTZXRFc2NhcGUiPnhtbFNhdmVTZXRFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYUZhY2V0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUZyZWVGYWNldCI+eG1sU2NoZW1hRnJlZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmciPnhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNoZWNrRmFjZXQiPnhtbFNjaGVtYUNoZWNrRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQiPnhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFBhcnNlckVycm9ycyI+eG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlIj54bWxTY2hlbWFQYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMiPnhtbFNjaGVtYVNldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFEdW1wIj54bWxTY2hlbWFEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUZyZWUiPnhtbFNjaGVtYUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3VmFsaWRDdHh0Ij54bWxTY2hlbWFOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVNBWFBsdWdQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYVW5wbHVnIj54bWxTY2hlbWFTQVhVbnBsdWc8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hVHlwZVB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNoZWNrRmFjZXQiPnhtbFNjaGVtYUNoZWNrRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRnJlZVR5cGUiPnhtbFNjaGVtYUZyZWVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0Ij54bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGU8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hVmFsUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29tcGFyZVZhbHVlcyI+eG1sU2NoZW1hQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcCI+eG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29weVZhbHVlIj54bWxTY2hlbWFDb3B5VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlVmFsdWUiPnhtbFNjaGVtYUZyZWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AiPnhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFZhbFR5cGUiPnhtbFNjaGVtYUdldFZhbFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWx1ZUFwcGVuZCI+eG1sU2NoZW1hVmFsdWVBcHBlbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbiI+eG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nIj54bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXROZXh0Ij54bWxTY2hlbWFWYWx1ZUdldE5leHQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hVmFsUHRyICo6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVZhbFR5cGU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJblR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNjaGVtYVZhbGlkQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFGcmVlVmFsaWRDdHh0Ij54bWxTY2hlbWFGcmVlVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFZhbGlkRXJyb3JzIj54bWxTY2hlbWFHZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFJc1ZhbGlkIj54bWxTY2hlbWFJc1ZhbGlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMiPnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFZhbGlkT3B0aW9ucyI+eG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMiPnhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZURvYyI+eG1sU2NoZW1hVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGaWxlIj54bWxTY2hlbWFWYWxpZGF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMiPnhtbFNjaGVtYVNldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiPnhtbFNjaGVtYUdldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMiPnhtbFNjaGVtYVNldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyAqOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFBhcnNlckVycm9ycyI+eG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUdldFZhbGlkRXJyb3JzIj54bWxTY2hlbWFHZXRWYWxpZEVycm9yczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwIj54bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AiPnhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hV2lsZGNhcmRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRnJlZVdpbGRjYXJkIj54bWxTY2hlbWFGcmVlV2lsZGNhcmQ8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlIj54bWxTY2hlbWF0cm9uUGFyc2U8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sU2NoZW1hdHJvblB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uRnJlZSI+eG1sU2NoZW1hdHJvbkZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGF0ZURvYyI+eG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFNoZWxsQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxCYXNlIj54bWxTaGVsbEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ2F0Ij54bWxTaGVsbENhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDbWQiPnhtbFNoZWxsQ21kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbERpciI+eG1sU2hlbGxEaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiPnhtbFNoZWxsRHU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTGlzdCI+eG1sU2hlbGxMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbExvYWQiPnhtbFNoZWxsTG9hZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiPnhtbFNoZWxsUHdkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFNhdmUiPnhtbFNoZWxsU2F2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxWYWxpZGF0ZSI+eG1sU2hlbGxWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxXcml0ZSI+eG1sU2hlbGxXcml0ZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTaGVsbFJlYWRsaW5lRnVuYzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGwiPnhtbFNoZWxsPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFN0cmR1cEZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxHY01lbVNldHVwIj54bWxHY01lbVNldHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFN0cmR1cEZ1bmMgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUdldCI+eG1sTWVtR2V0PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFN0cmVhbUN0eHRQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sRnJlZVN0cmVhbUN0eHQiPnhtbEZyZWVTdHJlYW1DdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVBvcCI+eG1sU3RyZWFtUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2giPnhtbFN0cmVhbVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaEF0dHIiPnhtbFN0cmVhbVB1c2hBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1XYW50c0FueU5vZGUiPnhtbFN0cmVhbVdhbnRzQW55Tm9kZTwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiPnhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFRleHRSZWFkZXJFcnJvckZ1bmM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFRleHRSZWFkZXJFcnJvckZ1bmMgKjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHI6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxUZXh0UmVhZGVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sRnJlZVRleHRSZWFkZXIiPnhtbEZyZWVUZXh0UmVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RG9jIj54bWxSZWFkZXJOZXdEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGaWxlIj54bWxSZWFkZXJOZXdGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3SU8iPnhtbFJlYWRlck5ld0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3TWVtb3J5Ij54bWxSZWFkZXJOZXdNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdXYWxrZXIiPnhtbFJlYWRlck5ld1dhbGtlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCI+eG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJhc2VVcmkiPnhtbFRleHRSZWFkZXJCYXNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDbG9zZSI+eG1sVGV4dFJlYWRlckNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaSI+eG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdEVuY29kaW5nIj54bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4Ij54bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmciPnhtbFRleHRSZWFkZXJDb25zdFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFZhbHVlIj54bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFhtbExhbmciPnhtbFRleHRSZWFkZXJDb25zdFhtbExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uIj54bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnREb2MiPnhtbFRleHRSZWFkZXJDdXJyZW50RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIj54bWxUZXh0UmVhZGVyQ3VycmVudE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRGVwdGgiPnhtbFRleHRSZWFkZXJEZXB0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFeHBhbmQiPnhtbFRleHRSZWFkZXJFeHBhbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMiPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AiPnhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzIj54bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJIYXNWYWx1ZSI+eG1sVGV4dFJlYWRlckhhc1ZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlcklzRGVmYXVsdCI+eG1sVGV4dFJlYWRlcklzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCI+eG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCI+eG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc1ZhbGlkIj54bWxUZXh0UmVhZGVySXNWYWxpZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhbE5hbWUiPnhtbFRleHRSZWFkZXJMb2NhbE5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIj54bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zIj54bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCI+eG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlIj54bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOYW1lIj54bWxUZXh0UmVhZGVyTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkiPnhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmV4dCI+eG1sVGV4dFJlYWRlck5leHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmciPnhtbFRleHRSZWFkZXJOZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOb2RlVHlwZSI+eG1sVGV4dFJlYWRlck5vZGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iPnhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZWZpeCI+eG1sVGV4dFJlYWRlclByZWZpeDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQcmVzZXJ2ZSI+eG1sVGV4dFJlYWRlclByZXNlcnZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJRdW90ZUNoYXIiPnhtbFRleHRSZWFkZXJRdW90ZUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZCI+eG1sVGV4dFJlYWRlclJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlIj54bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCI+eG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwiPnhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIj54bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRTdHJpbmciPnhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldHVwIj54bWxUZXh0UmVhZGVyU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSI+eG1sVGV4dFJlYWRlclN0YW5kYWxvbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyVmFsdWUiPnhtbFRleHRSZWFkZXJWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJYbWxMYW5nIj54bWxUZXh0UmVhZGVyWG1sTGFuZzwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxUZXh0V3JpdGVyUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sRnJlZVRleHRXcml0ZXIiPnhtbEZyZWVUZXh0V3JpdGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSI+eG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmRDREFUQSI+eG1sVGV4dFdyaXRlckVuZENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZENvbW1lbnQiPnhtbFRleHRXcml0ZXJFbmRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERURCI+eG1sVGV4dFdyaXRlckVuZERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREVERFbnRpdHkiPnhtbFRleHRXcml0ZXJFbmREVERFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiPnhtbFRleHRXcml0ZXJFbmREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmRFbGVtZW50Ij54bWxUZXh0V3JpdGVyRW5kRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmRQSSI+eG1sVGV4dFdyaXRlckVuZFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckZsdXNoIj54bWxUZXh0V3JpdGVyRmx1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTZXRJbmRlbnQiPnhtbFRleHRXcml0ZXJTZXRJbmRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIj54bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSI+eG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50Ij54bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFREIj54bWxUZXh0V3JpdGVyU3RhcnREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0UEkiPnhtbFRleHRXcml0ZXJTdGFydFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQiPnhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJpbkhleCI+eG1sVGV4dFdyaXRlcldyaXRlQmluSGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEiPnhtbFRleHRXcml0ZXJXcml0ZUNEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURURCI+eG1sVGV4dFdyaXRlcldyaXRlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMiPnhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiI+eG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TIj54bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVBJIj54bWxUZXh0V3JpdGVyV3JpdGVQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVJhdyI+eG1sVGV4dFdyaXRlcldyaXRlUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIj54bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sVVJJUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sRnJlZVVSSSI+eG1sRnJlZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmVmZXJlbmNlIj54bWxQYXJzZVVSSVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFByaW50VVJJIj54bWxQcmludFVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFNhdmVVcmkiPnhtbFNhdmVVcmk8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sVmFsaWRDdHh0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRBdHRyaWJ1dGVEZWNsIj54bWxBZGRBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRFbGVtZW50RGVjbCI+eG1sQWRkRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZElEIj54bWxBZGRJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkTm90YXRpb25EZWNsIj54bWxBZGROb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZFJlZiI+eG1sQWRkUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxGcmVlVmFsaWRDdHh0Ij54bWxGcmVlVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIj54bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnQiPnhtbFZhbGlkYXRlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlIj54bWxWYWxpZGF0ZU5vdGF0aW9uVXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUG9wRWxlbWVudCI+eG1sVmFsaWRhdGVQb3BFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhJbmNsdWRlQ3R4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVGcmVlQ29udGV4dCI+eG1sWEluY2x1ZGVGcmVlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzTm9kZSI+eG1sWEluY2x1ZGVQcm9jZXNzTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVTZXRGbGFncyI+eG1sWEluY2x1ZGVTZXRGbGFnczwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxYUGF0aENvbXBFeHByUHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGVkRXZhbCI+eG1sWFBhdGhDb21waWxlZEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuIj54bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciI+eG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlQ29tcEV4cHIiPnhtbFhQYXRoRnJlZUNvbXBFeHByPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhQYXRoQ29udGV4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21waWxlZEV2YWwiPnhtbFhQYXRoQ29tcGlsZWRFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiI+eG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDdHh0Q29tcGlsZSI+eG1sWFBhdGhDdHh0Q29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEV4cHJlc3Npb24iPnhtbFhQYXRoRXZhbEV4cHJlc3Npb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVDb250ZXh0Ij54bWxYUGF0aEZyZWVDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwIj54bWxYUGF0aEZ1bmN0aW9uTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0Ij54bWxYUGF0aE5ld1BhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTnNMb29rdXAiPnhtbFhQYXRoTnNMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMiPnhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jIj54bWxYUGF0aFJlZ2lzdGVyRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIj54bWxYUGF0aFJlZ2lzdGVyRnVuY05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyTnMiPnhtbFhQYXRoUmVnaXN0ZXJOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAiPnhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cCI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsIj54bWxYUHRyRXZhbDwvYT48YnIgLz4KKzwvcD48aDI+VHlwZSB4bWxYUGF0aEZ1bmNMb29rdXBGdW5jOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cCI+eG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXA8L2E+PGJyIC8+Cis8L3A+PGgyPlR5cGUgeG1sWFBhdGhGdW5jdGlvbjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckZ1bmMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIj54bWxYUGF0aFJlZ2lzdGVyRnVuY05TPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhQYXRoT2JqZWN0UHRyOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVB1c2giPnZhbHVlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Ij54bWxTaGVsbFByaW50WFBhdGhSZXN1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQXhpc0Z1bmMiPnhtbFhQYXRoQXhpc0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFRvQm9vbGVhbiI+eG1sWFBhdGhDYXN0VG9Cb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3RUb051bWJlciI+eG1sWFBhdGhDYXN0VG9OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFRvU3RyaW5nIj54bWxYUGF0aENhc3RUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbiI+eG1sWFBhdGhDb252ZXJ0Qm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0RnVuYyI+eG1sWFBhdGhDb252ZXJ0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0TnVtYmVyIj54bWxYUGF0aENvbnZlcnROdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydFN0cmluZyI+eG1sWFBhdGhDb252ZXJ0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERlYnVnRHVtcE9iamVjdCI+eG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbFByZWRpY2F0ZSI+eG1sWFBhdGhFdmFsUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCI+eG1sWFBhdGhGcmVlTm9kZVNldExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU9iamVjdCI+eG1sWFBhdGhGcmVlT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdENvcHkiPnhtbFhQYXRoT2JqZWN0Q29weTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckJ1aWxkTm9kZUxpc3QiPnhtbFhQdHJCdWlsZE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRBZGQiPnhtbFhQdHJMb2NhdGlvblNldEFkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlIj54bWxYUHRyTG9jYXRpb25TZXRDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldERlbCI+eG1sWFB0ckxvY2F0aW9uU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0Ij54bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiPnhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIj54bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZVBvaW50cyI+eG1sWFB0ck5ld1JhbmdlUG9pbnRzPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjdmFsdWVQb3AiPnZhbHVlUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVB1c2giPnZhbHVlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhBZGRWYWx1ZXMiPnhtbFhQYXRoQWRkVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNGdW5jIj54bWxYUGF0aEF4aXNGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbiI+eG1sWFBhdGhCb29sZWFuRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIj54bWxYUGF0aENlaWxpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29uY2F0RnVuY3Rpb24iPnhtbFhQYXRoQ29uY2F0RnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbiI+eG1sWFBhdGhDb250YWluc0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvdW50RnVuY3Rpb24iPnhtbFhQYXRoQ291bnRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXZWYWx1ZXMiPnhtbFhQYXRoRGl2VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVxdWFsVmFsdWVzIj54bWxYUGF0aEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVyciI+eG1sWFBhdGhFcnI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbEV4cHIiPnhtbFhQYXRoRXZhbEV4cHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEZ1bmMiPnhtbFhQYXRoRXZhbEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQiPnhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRmFsc2VGdW5jdGlvbiI+eG1sWFBhdGhGYWxzZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZsb29yRnVuY3Rpb24iPnhtbFhQYXRoRmxvb3JGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dCI+eG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJZEZ1bmN0aW9uIj54bWxYUGF0aElkRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMYXN0RnVuY3Rpb24iPnhtbFhQYXRoTGFzdEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uIj54bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE1vZFZhbHVlcyI+eG1sWFBhdGhNb2RWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTXVsdFZhbHVlcyI+eG1sWFBhdGhNdWx0VmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uIj54bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3RvciI+eG1sWFBhdGhOZXh0QW5jZXN0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QXR0cmlidXRlIj54bWxYUGF0aE5leHRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dENoaWxkIj54bWxYUGF0aE5leHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudCI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dE5hbWVzcGFjZSI+eG1sWFBhdGhOZXh0TmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQYXJlbnQiPnhtbFhQYXRoTmV4dFBhcmVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiPnhtbFhQYXRoTmV4dFNlbGY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm90RXF1YWxWYWx1ZXMiPnhtbFhQYXRoTm90RXF1YWxWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm90RnVuY3Rpb24iPnhtbFhQYXRoTm90RnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTnVtYmVyRnVuY3Rpb24iPnhtbFhQYXRoTnVtYmVyRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOQ05hbWUiPnhtbFhQYXRoUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BCb29sZWFuIj54bWxYUGF0aFBvcEJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wRXh0ZXJuYWwiPnhtbFhQYXRoUG9wRXh0ZXJuYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wTm9kZVNldCI+eG1sWFBhdGhQb3BOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcE51bWJlciI+eG1sWFBhdGhQb3BOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wU3RyaW5nIj54bWxYUGF0aFBvcFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uIj54bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUm9vdCI+eG1sWFBhdGhSb290PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJvdW5kRnVuY3Rpb24iPnhtbFhQYXRoUm91bmRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24iPnhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YlZhbHVlcyI+eG1sWFBhdGhTdWJWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1bUZ1bmN0aW9uIj54bWxYUGF0aFN1bUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIj54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRydWVGdW5jdGlvbiI+eG1sWFBhdGhUcnVlRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFsdWVGbGlwU2lnbiI+eG1sWFBhdGhWYWx1ZUZsaXBTaWduPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aGVycm9yIj54bWxYUGF0aGVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIj54bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uIj54bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uPC9hPjxiciAvPgorPC9wPjxoMj5UeXBlIHhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cDwvYT48YnIgLz4KKzwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0FQSXN5bWJvbHMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0FQSXN5bWJvbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc4NDM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvQVBJc3ltYm9scy5odG1sCkBAIC0wLDAgKzEsMzU0MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5BbHBoYWJldGljIExpc3Qgb2YgU3ltYm9scyBpbiBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BbHBoYWJldGljIExpc3Qgb2YgU3ltYm9scyBpbiBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyPkxldHRlciBBOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0FUVFJJQlVURV9VTlVTRUQiPkFUVFJJQlVURV9VTlVTRUQ8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBCOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjQkFEX0NBU1QiPkJBRF9DQVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI0JBU0VfQlVGRkVSX1NJWkUiPkJBU0VfQlVGRkVSX1NJWkU8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBDOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX0JPT0xFQU4iPkNBU1RfVE9fQk9PTEVBTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0FTVF9UT19OVU1CRVIiPkNBU1RfVE9fTlVNQkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDQVNUX1RPX1NUUklORyI+Q0FTVF9UT19TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI0NIRUNLX0FSSVRZIj5DSEVDS19BUklUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfRVJST1IiPkNIRUNLX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNDSEVDS19FUlJPUjAiPkNIRUNLX0VSUk9SMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfVFlQRSI+Q0hFQ0tfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfVFlQRTAiPkNIRUNLX1RZUEUwPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgRDo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI0RFQlVHX01FTU9SWSI+REVCVUdfTUVNT1JZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0RFQlVHX01FTU9SWV9MT0NBVElPTiI+REVCVUdfTUVNT1JZX0xPQ0FUSU9OPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgSDo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9DT01NRU5UX05PREUiPkhUTUxfQ09NTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfREVQUkVDQVRFRCI+SFRNTF9ERVBSRUNBVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX0VOVElUWV9SRUZfTk9ERSI+SFRNTF9FTlRJVFlfUkVGX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjSFRNTF9JTlZBTElEIj5IVE1MX0lOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjSFRNTF9OQSI+SFRNTF9OQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX0NPTVBBQ1QiPkhUTUxfUEFSU0VfQ09NUEFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PQkxBTktTIj5IVE1MX1BBUlNFX05PQkxBTktTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfTk9FUlJPUiI+SFRNTF9QQVJTRV9OT0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfTk9JTVBMSUVEIj5IVE1MX1BBUlNFX05PSU1QTElFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PTkVUIj5IVE1MX1BBUlNFX05PTkVUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfTk9XQVJOSU5HIj5IVE1MX1BBUlNFX05PV0FSTklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX1BFREFOVElDIj5IVE1MX1BBUlNFX1BFREFOVElDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfUkVDT1ZFUiI+SFRNTF9QQVJTRV9SRUNPVkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNIVE1MX1BJX05PREUiPkhUTUxfUElfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9QUkVTRVJWRV9OT0RFIj5IVE1MX1BSRVNFUlZFX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjSFRNTF9SRVFVSVJFRCI+SFRNTF9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjSFRNTF9URVhUX05PREUiPkhUTUxfVEVYVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfVkFMSUQiPkhUTUxfVkFMSUQ8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBJOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSU5QVVRfQ0hVTksiPklOUFVUX0NIVU5LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQVNDSUlfRElHSVQiPklTX0FTQ0lJX0RJR0lUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQVNDSUlfTEVUVEVSIj5JU19BU0NJSV9MRVRURVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CQVNFQ0hBUiI+SVNfQkFTRUNIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOSyI+SVNfQkxBTks8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOS19DSCI+SVNfQkxBTktfQ0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CWVRFX0NIQVIiPklTX0JZVEVfQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSX0NIIj5JU19DSEFSX0NIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ09NQklOSU5HIj5JU19DT01CSU5JTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DT01CSU5JTkdfQ0giPklTX0NPTUJJTklOR19DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0RJR0lUIj5JU19ESUdJVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0RJR0lUX0NIIj5JU19ESUdJVF9DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSX0NIIj5JU19FWFRFTkRFUl9DSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0lERU9HUkFQSElDIj5JU19JREVPR1JBUEhJQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0xFVFRFUiI+SVNfTEVUVEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfTEVUVEVSX0NIIj5JU19MRVRURVJfQ0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19QVUJJRENIQVIiPklTX1BVQklEQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX1BVQklEQ0hBUl9DSCI+SVNfUFVCSURDSEFSX0NIPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgTDo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfQVRUUl9BTExPQ19TSVpFIj5MSUJYTUxfQVRUUl9BTExPQ19TSVpFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9BVFRSX0ZPUk1BVCI+TElCWE1MX0FUVFJfRk9STUFUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9BVVRPTUFUQV9FTkFCTEVEIj5MSUJYTUxfQVVUT01BVEFfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfQzE0Tl9FTkFCTEVEIj5MSUJYTUxfQzE0Tl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9DQVRBTE9HX0VOQUJMRUQiPkxJQlhNTF9DQVRBTE9HX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RFQlVHX0VOQUJMRUQiPkxJQlhNTF9ERUJVR19FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9ERUJVR19SVU5USU1FIj5MSUJYTUxfREVCVUdfUlVOVElNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGV4cG9ydHMuaHRtbCNMSUJYTUxfRExMX0lNUE9SVCI+TElCWE1MX0RMTF9JTVBPUlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RPQ0JfRU5BQkxFRCI+TElCWE1MX0RPQ0JfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfRE9UVEVEX1ZFUlNJT04iPkxJQlhNTF9ET1RURURfVkVSU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfRVhQUl9FTkFCTEVEIj5MSUJYTUxfRVhQUl9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9GVFBfRU5BQkxFRCI+TElCWE1MX0ZUUF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9IVE1MX0VOQUJMRUQiPkxJQlhNTF9IVE1MX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0hUVFBfRU5BQkxFRCI+TElCWE1MX0hUVFBfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfSUNPTlZfRU5BQkxFRCI+TElCWE1MX0lDT05WX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQiPkxJQlhNTF9JU084ODU5WF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9MRUdBQ1lfRU5BQkxFRCI+TElCWE1MX0xFR0FDWV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9NT0RVTEVTX0VOQUJMRUQiPkxJQlhNTF9NT0RVTEVTX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX01PRFVMRV9FWFRFTlNJT04iPkxJQlhNTF9NT0RVTEVfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9PVVRQVVRfRU5BQkxFRCI+TElCWE1MX09VVFBVVF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9QQVRURVJOX0VOQUJMRUQiPkxJQlhNTF9QQVRURVJOX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1BVU0hfRU5BQkxFRCI+TElCWE1MX1BVU0hfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfUkVBREVSX0VOQUJMRUQiPkxJQlhNTF9SRUFERVJfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfUkVHRVhQX0VOQUJMRUQiPkxJQlhNTF9SRUdFWFBfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfU0FYMV9FTkFCTEVEIj5MSUJYTUxfU0FYMV9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQ0hFTUFTX0VOQUJMRUQiPkxJQlhNTF9TQ0hFTUFTX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCI+TElCWE1MX1NDSEVNQVRST05fRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVEVTVF9WRVJTSU9OIj5MSUJYTUxfVEVTVF9WRVJTSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9USFJFQURfRU5BQkxFRCI+TElCWE1MX1RIUkVBRF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9UUkVFX0VOQUJMRUQiPkxJQlhNTF9UUkVFX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1VOSUNPREVfRU5BQkxFRCI+TElCWE1MX1VOSUNPREVfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVkFMSURfRU5BQkxFRCI+TElCWE1MX1ZBTElEX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1ZFUlNJT04iPkxJQlhNTF9WRVJTSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9WRVJTSU9OX0VYVFJBIj5MSUJYTUxfVkVSU0lPTl9FWFRSQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVkVSU0lPTl9TVFJJTkciPkxJQlhNTF9WRVJTSU9OX1NUUklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfV1JJVEVSX0VOQUJMRUQiPkxJQlhNTF9XUklURVJfRU5BQkxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCI+TElCWE1MX1hJTkNMVURFX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1hQQVRIX0VOQUJMRUQiPkxJQlhNTF9YUEFUSF9FTkFCTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9YUFRSX0VOQUJMRUQiPkxJQlhNTF9YUFRSX0VOQUJMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1pMSUJfRU5BQkxFRCI+TElCWE1MX1pMSUJfRU5BQkxFRDwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIE06PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNNT1ZFVE9fRU5EVEFHIj5NT1ZFVE9fRU5EVEFHPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjTU9WRVRPX1NUQVJUVEFHIj5NT1ZFVE9fU1RBUlRUQUc8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBTOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjU0tJUF9FT0wiPlNLSVBfRU9MPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgVTo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNVVEY4VG9IdG1sIj5VVEY4VG9IdG1sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNVVEY4VG9pc29sYXQxIj5VVEY4VG9pc29sYXQxPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgVzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNXSVRIT1VUX1RSSU8iPldJVEhPVVRfVFJJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHZlcnNpb24uaHRtbCNXSVRIX1RSSU8iPldJVEhfVFJJTzwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIFg6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX0ZBTExCQUNLIj5YSU5DTFVERV9GQUxMQkFDSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfSFJFRiI+WElOQ0xVREVfSFJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfTk9ERSI+WElOQ0xVREVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfTlMiPlhJTkNMVURFX05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9PTERfTlMiPlhJTkNMVURFX09MRF9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfUEFSU0UiPlhJTkNMVURFX1BBUlNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9FTkNPRElORyI+WElOQ0xVREVfUEFSU0VfRU5DT0RJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX1BBUlNFX1RFWFQiPlhJTkNMVURFX1BBUlNFX1RFWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI1hJTkNMVURFX1BBUlNFX1hNTCI+WElOQ0xVREVfUEFSU0VfWE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9YUE9JTlRFUiI+WElOQ0xVREVfUEFSU0VfWFBPSU5URVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI1hMSU5LX0FDVFVBVEVfQVVUTyI+WExJTktfQUNUVUFURV9BVVRPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19BQ1RVQVRFX05PTkUiPlhMSU5LX0FDVFVBVEVfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjWExJTktfQUNUVUFURV9PTlJFUVVFU1QiPlhMSU5LX0FDVFVBVEVfT05SRVFVRVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19TSE9XX0VNQkVEIj5YTElOS19TSE9XX0VNQkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19TSE9XX05FVyI+WExJTktfU0hPV19ORVc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI1hMSU5LX1NIT1dfTk9ORSI+WExJTktfU0hPV19OT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19TSE9XX1JFUExBQ0UiPlhMSU5LX1NIT1dfUkVQTEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjWExJTktfVFlQRV9FWFRFTkRFRCI+WExJTktfVFlQRV9FWFRFTkRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjWExJTktfVFlQRV9FWFRFTkRFRF9TRVQiPlhMSU5LX1RZUEVfRVhURU5ERURfU0VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCNYTElOS19UWVBFX05PTkUiPlhMSU5LX1RZUEVfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjWExJTktfVFlQRV9TSU1QTEUiPlhMSU5LX1RZUEVfU0lNUExFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sI1hNTENBTEwiPlhNTENBTEw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxleHBvcnRzLmh0bWwjWE1MQ0RFQ0wiPlhNTENERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sI1hNTFBVQkZVTiI+WE1MUFVCRlVOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sI1hNTFBVQlZBUiI+WE1MUFVCVkFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfQ0RBVEEiPlhNTF9BVFRSSUJVVEVfQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9ERUNMIj5YTUxfQVRUUklCVVRFX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9FTlRJVElFUyI+WE1MX0FUVFJJQlVURV9FTlRJVElFUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0VOVElUWSI+WE1MX0FUVFJJQlVURV9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTiI+WE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0ZJWEVEIj5YTUxfQVRUUklCVVRFX0ZJWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfSUQiPlhNTF9BVFRSSUJVVEVfSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9JRFJFRiI+WE1MX0FUVFJJQlVURV9JRFJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0lEUkVGUyI+WE1MX0FUVFJJQlVURV9JRFJFRlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9JTVBMSUVEIj5YTUxfQVRUUklCVVRFX0lNUExJRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9OTVRPS0VOIj5YTUxfQVRUUklCVVRFX05NVE9LRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9OTVRPS0VOUyI+WE1MX0FUVFJJQlVURV9OTVRPS0VOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX05PREUiPlhNTF9BVFRSSUJVVEVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX05PTkUiPlhNTF9BVFRSSUJVVEVfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX05PVEFUSU9OIj5YTUxfQVRUUklCVVRFX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfUkVRVUlSRUQiPlhNTF9BVFRSSUJVVEVfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVCI+WE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0VYQUNUIj5YTUxfQlVGRkVSX0FMTE9DX0VYQUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFIj5YTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0lPIj5YTUxfQlVGRkVSX0FMTE9DX0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI1hNTF9DMTROXzFfMCI+WE1MX0MxNE5fMV8wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI1hNTF9DMTROXzFfMSI+WE1MX0MxNE5fMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQzE0Tl9DUkVBVEVfQ1RYVCI+WE1MX0MxNE5fQ1JFQVRFX0NUWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DMTROX0NSRUFURV9TVEFDSyI+WE1MX0MxNE5fQ1JFQVRFX1NUQUNLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI1hNTF9DMTROX0VYQ0xVU0lWRV8xXzAiPlhNTF9DMTROX0VYQ0xVU0lWRV8xXzA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DMTROX0lOVkFMSURfTk9ERSI+WE1MX0MxNE5fSU5WQUxJRF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQzE0Tl9SRUxBVElWRV9OQU1FU1BBQ0UiPlhNTF9DMTROX1JFTEFUSVZFX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0MxNE5fUkVRVUlSRVNfVVRGOCI+WE1MX0MxNE5fUkVRVUlSRVNfVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0MxNE5fVU5LTk9XX05PREUiPlhNTF9DMTROX1VOS05PV19OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFMT0dTX05BTUVTUEFDRSI+WE1MX0NBVEFMT0dTX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NBVEFMT0dfRU5UUllfQlJPS0VOIj5YTUxfQ0FUQUxPR19FTlRSWV9CUk9LRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DQVRBTE9HX01JU1NJTkdfQVRUUiI+WE1MX0NBVEFMT0dfTUlTU0lOR19BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRyI+WE1MX0NBVEFMT0dfTk9UX0NBVEFMT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFMT0dfUEkiPlhNTF9DQVRBTE9HX1BJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0FUQUxPR19QUkVGRVJfVkFMVUUiPlhNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NBVEFMT0dfUkVDVVJTSU9OIj5YTUxfQ0FUQUxPR19SRUNVUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFfQUxMT1dfQUxMIj5YTUxfQ0FUQV9BTExPV19BTEw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFfQUxMT1dfRE9DVU1FTlQiPlhNTF9DQVRBX0FMTE9XX0RPQ1VNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX0FMTE9XX0dMT0JBTCI+WE1MX0NBVEFfQUxMT1dfR0xPQkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX0FMTE9XX05PTkUiPlhNTF9DQVRBX0FMTE9XX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFfUFJFRkVSX05PTkUiPlhNTF9DQVRBX1BSRUZFUl9OT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX1BSRUZFUl9QVUJMSUMiPlhNTF9DQVRBX1BSRUZFUl9QVUJMSUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjWE1MX0NBVEFfUFJFRkVSX1NZU1RFTSI+WE1MX0NBVEFfUFJFRkVSX1NZU1RFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfQ0RBVEFfU0VDVElPTl9OT0RFIj5YTUxfQ0RBVEFfU0VDVElPTl9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQIj5YTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzEiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yIj5YTUxfQ0hBUl9FTkNPRElOR184ODU5XzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMyI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzQiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV81Ij5YTUxfQ0hBUl9FTkNPRElOR184ODU5XzU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNiI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV82PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzciPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV84Ij5YTUxfQ0hBUl9FTkNPRElOR184ODU5Xzg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOSI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV85PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19BU0NJSSI+WE1MX0NIQVJfRU5DT0RJTkdfQVNDSUk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX0VCQ0RJQyI+WE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19FUlJPUiI+WE1MX0NIQVJfRU5DT0RJTkdfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUCI+WE1MX0NIQVJfRU5DT0RJTkdfRVVDX0pQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19OT05FIj5YTUxfQ0hBUl9FTkNPRElOR19OT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19TSElGVF9KSVMiPlhNTF9DSEFSX0VOQ09ESU5HX1NISUZUX0pJUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfVUNTMiI+WE1MX0NIQVJfRU5DT0RJTkdfVUNTMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfVUNTNEJFIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VDUzRMRSI+WE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzIxNDMiPlhNTF9DSEFSX0VOQ09ESU5HX1VDUzRfMjE0MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8zNDEyIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkUiPlhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEUiPlhNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VURjgiPlhNTF9DSEFSX0VOQ09ESU5HX1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS18iPlhNTF9DSEVDS188L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19FTlRJVFlfVFlQRSI+WE1MX0NIRUNLX0VOVElUWV9UWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfQVRUUklCVVRFIj5YTUxfQ0hFQ0tfRk9VTkRfQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfQ0RBVEEiPlhNTF9DSEVDS19GT1VORF9DREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0NPTU1FTlQiPlhNTF9DSEVDS19GT1VORF9DT01NRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfRE9DVFlQRSI+WE1MX0NIRUNLX0ZPVU5EX0RPQ1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9FTEVNRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfRUxFTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0VOVElUWSI+WE1MX0NIRUNLX0ZPVU5EX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRiI+WE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0ZSQUdNRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfRlJBR01FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9OT1RBVElPTiI+WE1MX0NIRUNLX0ZPVU5EX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfUEkiPlhNTF9DSEVDS19GT1VORF9QSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX1RFWFQiPlhNTF9DSEVDS19GT1VORF9URVhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTkFNRV9OT1RfTlVMTCI+WE1MX0NIRUNLX05BTUVfTk9UX05VTEw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT1RfQVRUUiI+WE1MX0NIRUNLX05PVF9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX0FUVFJfREVDTCI+WE1MX0NIRUNLX05PVF9BVFRSX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT1RfRFREIj5YTUxfQ0hFQ0tfTk9UX0RURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9FTEVNX0RFQ0wiPlhNTF9DSEVDS19OT1RfRUxFTV9ERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMIj5YTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX05DTkFNRSI+WE1MX0NIRUNLX05PVF9OQ05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT1RfTlNfREVDTCI+WE1MX0NIRUNLX05PVF9OU19ERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX1VURjgiPlhNTF9DSEVDS19OT1RfVVRGODwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PX0RJQ1QiPlhNTF9DSEVDS19OT19ESUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fRE9DIj5YTUxfQ0hFQ0tfTk9fRE9DPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fRUxFTSI+WE1MX0NIRUNLX05PX0VMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19IUkVGIj5YTUxfQ0hFQ0tfTk9fSFJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PX05BTUUiPlhNTF9DSEVDS19OT19OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fTkVYVCI+WE1MX0NIRUNLX05PX05FWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19QQVJFTlQiPlhNTF9DSEVDS19OT19QQVJFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19QUkVWIj5YTUxfQ0hFQ0tfTk9fUFJFVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05TX0FOQ0VTVE9SIj5YTUxfQ0hFQ0tfTlNfQU5DRVNUT1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OU19TQ09QRSI+WE1MX0NIRUNLX05TX1NDT1BFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfT1VUU0lERV9ESUNUIj5YTUxfQ0hFQ0tfT1VUU0lERV9ESUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFIj5YTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfV1JPTkdfRE9DIj5YTUxfQ0hFQ0tfV1JPTkdfRE9DPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfV1JPTkdfTkFNRSI+WE1MX0NIRUNLX1dST05HX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9DSEVDS19XUk9OR19ORVhUIj5YTUxfQ0hFQ0tfV1JPTkdfTkVYVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1dST05HX1BBUkVOVCI+WE1MX0NIRUNLX1dST05HX1BBUkVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1dST05HX1BSRVYiPlhNTF9DSEVDS19XUk9OR19QUkVWPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfWCI+WE1MX0NIRUNLX1g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0NPTU1FTlRfTk9ERSI+WE1MX0NPTU1FTlRfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9DT01QTEVURV9BVFRSUyI+WE1MX0NPTVBMRVRFX0FUVFJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNYTUxfQ1RYVF9GSU5JU0hfRFREXzAiPlhNTF9DVFhUX0ZJTklTSF9EVERfMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjWE1MX0NUWFRfRklOSVNIX0RURF8xIj5YTUxfQ1RYVF9GSU5JU0hfRFREXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfREVGQVVMVF9WRVJTSU9OIj5YTUxfREVGQVVMVF9WRVJTSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX0RFVEVDVF9JRFMiPlhNTF9ERVRFQ1RfSURTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NCX0RPQ1VNRU5UX05PREUiPlhNTF9ET0NCX0RPQ1VNRU5UX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERSI+WE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRE9DVU1FTlRfTk9ERSI+WE1MX0RPQ1VNRU5UX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERSI+WE1MX0RPQ1VNRU5UX1RZUEVfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRE9DX0RURFZBTElEIj5YTUxfRE9DX0RURFZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NfSFRNTCI+WE1MX0RPQ19IVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9ET0NfSU5URVJOQUwiPlhNTF9ET0NfSU5URVJOQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ19OU1ZBTElEIj5YTUxfRE9DX05TVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ19PTEQxMCI+WE1MX0RPQ19PTEQxMDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRE9DX1VTRVJCVUlMVCI+WE1MX0RPQ19VU0VSQlVJTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ19XRUxMRk9STUVEIj5YTUxfRE9DX1dFTExGT1JNRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0RPQ19YSU5DTFVERSI+WE1MX0RPQ19YSU5DTFVERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9BVFRSSUJVVEVfREVGQVVMVCI+WE1MX0RURF9BVFRSSUJVVEVfREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9BVFRSSUJVVEVfUkVERUZJTkVEIj5YTUxfRFREX0FUVFJJQlVURV9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfQVRUUklCVVRFX1ZBTFVFIj5YTUxfRFREX0FUVFJJQlVURV9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9DT05URU5UX0VSUk9SIj5YTUxfRFREX0NPTlRFTlRfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfQ09OVEVOVF9NT0RFTCI+WE1MX0RURF9DT05URU5UX01PREVMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUIj5YTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0RJRkZFUkVOVF9QUkVGSVgiPlhNTF9EVERfRElGRkVSRU5UX1BSRUZJWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9EVVBfVE9LRU4iPlhNTF9EVERfRFVQX1RPS0VOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0VMRU1fREVGQVVMVF9OQU1FU1BBQ0UiPlhNTF9EVERfRUxFTV9ERUZBVUxUX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9FTEVNX05BTUVTUEFDRSI+WE1MX0RURF9FTEVNX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9FTEVNX1JFREVGSU5FRCI+WE1MX0RURF9FTEVNX1JFREVGSU5FRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9FTVBUWV9OT1RBVElPTiI+WE1MX0RURF9FTVBUWV9OT1RBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9FTlRJVFlfVFlQRSI+WE1MX0RURF9FTlRJVFlfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9JRF9GSVhFRCI+WE1MX0RURF9JRF9GSVhFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9JRF9SRURFRklORUQiPlhNTF9EVERfSURfUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0lEX1NVQlNFVCI+WE1MX0RURF9JRF9TVUJTRVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfSU5WQUxJRF9DSElMRCI+WE1MX0RURF9JTlZBTElEX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX0lOVkFMSURfREVGQVVMVCI+WE1MX0RURF9JTlZBTElEX0RFRkFVTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTE9BRF9FUlJPUiI+WE1MX0RURF9MT0FEX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX01JU1NJTkdfQVRUUklCVVRFIj5YTUxfRFREX01JU1NJTkdfQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX01JWEVEX0NPUlJVUFQiPlhNTF9EVERfTUlYRURfQ09SUlVQVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9NVUxUSVBMRV9JRCI+WE1MX0RURF9NVUxUSVBMRV9JRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRFREX05PREUiPlhNTF9EVERfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT1RBVElPTl9SRURFRklORUQiPlhNTF9EVERfTk9UQVRJT05fUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PVEFUSU9OX1ZBTFVFIj5YTUxfRFREX05PVEFUSU9OX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PVF9FTVBUWSI+WE1MX0RURF9OT1RfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9UX1BDREFUQSI+WE1MX0RURF9OT1RfUENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PVF9TVEFOREFMT05FIj5YTUxfRFREX05PVF9TVEFOREFMT05FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PX0RPQyI+WE1MX0RURF9OT19ET0M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9fRFREIj5YTUxfRFREX05PX0RURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT19FTEVNX05BTUUiPlhNTF9EVERfTk9fRUxFTV9OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PX1BSRUZJWCI+WE1MX0RURF9OT19QUkVGSVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfTk9fUk9PVCI+WE1MX0RURF9OT19ST09UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX1JPT1RfTkFNRSI+WE1MX0RURF9ST09UX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQiPlhNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRSI+WE1MX0RURF9TVEFOREFMT05FX1dISVRFX1NQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX1VOS05PV05fQVRUUklCVVRFIj5YTUxfRFREX1VOS05PV05fQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX1VOS05PV05fRUxFTSI+WE1MX0RURF9VTktOT1dOX0VMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfVU5LTk9XTl9FTlRJVFkiPlhNTF9EVERfVU5LTk9XTl9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfVU5LTk9XTl9JRCI+WE1MX0RURF9VTktOT1dOX0lEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRFREX1VOS05PV05fTk9UQVRJT04iPlhNTF9EVERfVU5LTk9XTl9OT1RBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0RURF9YTUxJRF9UWVBFIj5YTUxfRFREX1hNTElEX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9EVERfWE1MSURfVkFMVUUiPlhNTF9EVERfWE1MSURfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UIj5YTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUIj5YTUxfRUxFTUVOVF9DT05URU5UX01VTFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFIj5YTUxfRUxFTUVOVF9DT05URU5UX09OQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQiPlhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX0NPTlRFTlRfT1IiPlhNTF9FTEVNRU5UX0NPTlRFTlRfT1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEiPlhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX0NPTlRFTlRfUExVUyI+WE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX0NPTlRFTlRfU0VRIj5YTUxfRUxFTUVOVF9DT05URU5UX1NFUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9ERUNMIj5YTUxfRUxFTUVOVF9ERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX05PREUiPlhNTF9FTEVNRU5UX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfVFlQRV9BTlkiPlhNTF9FTEVNRU5UX1RZUEVfQU5ZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVCI+WE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9FTEVNRU5UX1RZUEVfRU1QVFkiPlhNTF9FTEVNRU5UX1RZUEVfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VMRU1FTlRfVFlQRV9NSVhFRCI+WE1MX0VMRU1FTlRfVFlQRV9NSVhFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9UWVBFX1VOREVGSU5FRCI+WE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VOVElUWV9ERUNMIj5YTUxfRU5USVRZX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VOVElUWV9OT0RFIj5YTUxfRU5USVRZX05PREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0VOVElUWV9SRUZfTk9ERSI+WE1MX0VOVElUWV9SRUZfTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9BVFRMSVNUX05PVF9TVEFSVEVEIj5YTUxfRVJSX0FUVExJU1RfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUUklCVVRFX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9BVFRSSUJVVEVfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRCI+WE1MX0VSUl9BVFRSSUJVVEVfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUUklCVVRFX1JFREVGSU5FRCI+WE1MX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0FUVFJJQlVURV9XSVRIT1VUX1ZBTFVFIj5YTUxfRVJSX0FUVFJJQlVURV9XSVRIT1VUX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0NEQVRBX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9DREFUQV9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9BVF9FT0YiPlhNTF9FUlJfQ0hBUlJFRl9BVF9FT0Y8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9JTl9EVEQiPlhNTF9FUlJfQ0hBUlJFRl9JTl9EVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9JTl9FUElMT0ciPlhNTF9FUlJfQ0hBUlJFRl9JTl9FUElMT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0ciPlhNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfQ09ORFNFQ19JTlZBTElEIj5YTUxfRVJSX0NPTkRTRUNfSU5WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRCI+WE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX05PVF9TVEFSVEVEIj5YTUxfRVJSX0NPTkRTRUNfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQiPlhNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRE9DVU1FTlRfRU1QVFkiPlhNTF9FUlJfRE9DVU1FTlRfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRE9DVU1FTlRfRU5EIj5YTUxfRVJSX0RPQ1VNRU5UX0VORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9ET0NVTUVOVF9TVEFSVCI+WE1MX0VSUl9ET0NVTUVOVF9TVEFSVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVEIj5YTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOQ09ESU5HX05BTUUiPlhNTF9FUlJfRU5DT0RJTkdfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlSRUZfQVRfRU9GIj5YTUxfRVJSX0VOVElUWVJFRl9BVF9FT0Y8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX0lOX0RURCI+WE1MX0VSUl9FTlRJVFlSRUZfSU5fRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWVJFRl9JTl9FUElMT0ciPlhNTF9FUlJfRU5USVRZUkVGX0lOX0VQSUxPRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HIj5YTUxfRVJSX0VOVElUWVJFRl9JTl9QUk9MT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX05PX05BTUUiPlhNTF9FUlJfRU5USVRZUkVGX05PX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORyI+WE1MX0VSUl9FTlRJVFlSRUZfU0VNSUNPTF9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWV9CT1VOREFSWSI+WE1MX0VSUl9FTlRJVFlfQk9VTkRBUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX0NIQVJfRVJST1IiPlhNTF9FUlJfRU5USVRZX0NIQVJfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMIj5YTUxfRVJSX0VOVElUWV9JU19FWFRFUk5BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSIj5YTUxfRVJSX0VOVElUWV9JU19QQVJBTUVURVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX0xPT1AiPlhNTF9FUlJfRU5USVRZX0xPT1A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9FTlRJVFlfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWV9OT1RfU1RBUlRFRCI+WE1MX0VSUl9FTlRJVFlfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX1BFX0lOVEVSTkFMIj5YTUxfRVJSX0VOVElUWV9QRV9JTlRFUk5BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlfUFJPQ0VTU0lORyI+WE1MX0VSUl9FTlRJVFlfUFJPQ0VTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FUVVBTF9SRVFVSVJFRCI+WE1MX0VSUl9FUVVBTF9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FUlJPUiI+WE1MX0VSUl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FWFRSQV9DT05URU5UIj5YTUxfRVJSX0VYVFJBX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfRVhUX0VOVElUWV9TVEFOREFMT05FIj5YTUxfRVJSX0VYVF9FTlRJVFlfU1RBTkRBTE9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FWFRfU1VCU0VUX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9FWFRfU1VCU0VUX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9GQVRBTCI+WE1MX0VSUl9GQVRBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9HVF9SRVFVSVJFRCI+WE1MX0VSUl9HVF9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVCI+WE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiI+WE1MX0VSUl9JTlRFUk5BTF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9JTlZBTElEX0NIQVIiPlhNTF9FUlJfSU5WQUxJRF9DSEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0lOVkFMSURfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0NIQVJSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0RFQ19DSEFSUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkciPlhNTF9FUlJfSU5WQUxJRF9FTkNPRElORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGIj5YTUxfRVJSX0lOVkFMSURfSEVYX0NIQVJSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfSU5WQUxJRF9VUkkiPlhNTF9FUlJfSU5WQUxJRF9VUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTElURVJBTF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfTElURVJBTF9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCI+WE1MX0VSUl9MSVRFUkFMX05PVF9TVEFSVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0xUU0xBU0hfUkVRVUlSRUQiPlhNTF9FUlJfTFRTTEFTSF9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9MVF9JTl9BVFRSSUJVVEUiPlhNTF9FUlJfTFRfSU5fQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0xUX1JFUVVJUkVEIj5YTUxfRVJSX0xUX1JFUVVJUkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQiPlhNTF9FUlJfTUlTUExBQ0VEX0NEQVRBX0VORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9NSVNTSU5HX0VOQ09ESU5HIj5YTUxfRVJSX01JU1NJTkdfRU5DT0RJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTUlYRURfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX01JWEVEX05PVF9GSU5JU0hFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRCI+WE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OQU1FX1JFUVVJUkVEIj5YTUxfRVJSX05BTUVfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRCI+WE1MX0VSUl9OTVRPS0VOX1JFUVVJUkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PTkUiPlhNTF9FUlJfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT1RBVElPTl9OT1RfRklOSVNIRUQiPlhNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVEIj5YTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PVEFUSU9OX1BST0NFU1NJTkciPlhNTF9FUlJfTk9UQVRJT05fUFJPQ0VTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT1RfU1RBTkRBTE9ORSI+WE1MX0VSUl9OT1RfU1RBTkRBTE9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRCI+WE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT19EVEQiPlhNTF9FUlJfTk9fRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PX01FTU9SWSI+WE1MX0VSUl9OT19NRU1PUlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfTlNfREVDTF9FUlJPUiI+WE1MX0VSUl9OU19ERUNMX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX09LIj5YTUxfRVJSX09LPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BDREFUQV9SRVFVSVJFRCI+WE1MX0VSUl9QQ0RBVEFfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUEVSRUZfQVRfRU9GIj5YTUxfRVJSX1BFUkVGX0FUX0VPRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9QRVJFRl9JTl9FUElMT0ciPlhNTF9FUlJfUEVSRUZfSU5fRVBJTE9HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQiPlhNTF9FUlJfUEVSRUZfSU5fSU5UX1NVQlNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9QRVJFRl9JTl9QUk9MT0ciPlhNTF9FUlJfUEVSRUZfSU5fUFJPTE9HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX05PX05BTUUiPlhNTF9FUlJfUEVSRUZfTk9fTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9QRVJFRl9TRU1JQ09MX01JU1NJTkciPlhNTF9FUlJfUEVSRUZfU0VNSUNPTF9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BJX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9QSV9OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUElfTk9UX1NUQVJURUQiPlhNTF9FUlJfUElfTk9UX1NUQVJURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUFVCSURfUkVRVUlSRUQiPlhNTF9FUlJfUFVCSURfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfUkVTRVJWRURfWE1MX05BTUUiPlhNTF9FUlJfUkVTRVJWRURfWE1MX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfU0VQQVJBVE9SX1JFUVVJUkVEIj5YTUxfRVJSX1NFUEFSQVRPUl9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCI+WE1MX0VSUl9TUEFDRV9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFIj5YTUxfRVJSX1NUQU5EQUxPTkVfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQiPlhNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfU1RSSU5HX05PVF9TVEFSVEVEIj5YTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCI+WE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX1RBR19OT1RfRklOSVNIRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFkiPlhNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5LTk9XTl9FTkNPRElORyI+WE1MX0VSUl9VTktOT1dOX0VOQ09ESU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1VOS05PV05fVkVSU0lPTiI+WE1MX0VSUl9VTktOT1dOX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5QQVJTRURfRU5USVRZIj5YTUxfRVJSX1VOUEFSU0VEX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORyI+WE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9VUklfRlJBR01FTlQiPlhNTF9FUlJfVVJJX0ZSQUdNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1VSSV9SRVFVSVJFRCI+WE1MX0VSUl9VUklfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVkFMVUVfUkVRVUlSRUQiPlhNTF9FUlJfVkFMVUVfUkVRVUlSRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCI+WE1MX0VSUl9WRVJTSU9OX01JU01BVENIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1ZFUlNJT05fTUlTU0lORyI+WE1MX0VSUl9WRVJTSU9OX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9FUlJfV0FSTklORyI+WE1MX0VSUl9XQVJOSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1hNTERFQ0xfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX1hNTERFQ0xfTk9UX0ZJTklTSEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQiPlhNTF9FUlJfWE1MREVDTF9OT1RfU1RBUlRFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI1hNTF9FWFBfQVRPTSI+WE1MX0VYUF9BVE9NPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjWE1MX0VYUF9DT1VOVCI+WE1MX0VYUF9DT1VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI1hNTF9FWFBfRU1QVFkiPlhNTF9FWFBfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCNYTUxfRVhQX0ZPUkJJRCI+WE1MX0VYUF9GT1JCSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCNYTUxfRVhQX09SIj5YTUxfRVhQX09SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjWE1MX0VYUF9TRVEiPlhNTF9FWFBfU0VRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZIj5YTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFkiPlhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFkiPlhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9DMTROIj5YTUxfRlJPTV9DMTROPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9DQVRBTE9HIj5YTUxfRlJPTV9DQVRBTE9HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9DSEVDSyI+WE1MX0ZST01fQ0hFQ0s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX0RBVEFUWVBFIj5YTUxfRlJPTV9EQVRBVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fRFREIj5YTUxfRlJPTV9EVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX0ZUUCI+WE1MX0ZST01fRlRQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9IVE1MIj5YTUxfRlJPTV9IVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9IVFRQIj5YTUxfRlJPTV9IVFRQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9JMThOIj5YTUxfRlJPTV9JMThOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9JTyI+WE1MX0ZST01fSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX01FTU9SWSI+WE1MX0ZST01fTUVNT1JZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9NT0RVTEUiPlhNTF9GUk9NX01PRFVMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fTkFNRVNQQUNFIj5YTUxfRlJPTV9OQU1FU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX05PTkUiPlhNTF9GUk9NX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX09VVFBVVCI+WE1MX0ZST01fT1VUUFVUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9QQVJTRVIiPlhNTF9GUk9NX1BBUlNFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fUkVHRVhQIj5YTUxfRlJPTV9SRUdFWFA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1JFTEFYTkdQIj5YTUxfRlJPTV9SRUxBWE5HUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fUkVMQVhOR1YiPlhNTF9GUk9NX1JFTEFYTkdWPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9TQ0hFTUFTUCI+WE1MX0ZST01fU0NIRU1BU1A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1NDSEVNQVNWIj5YTUxfRlJPTV9TQ0hFTUFTVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fU0NIRU1BVFJPTlYiPlhNTF9GUk9NX1NDSEVNQVRST05WPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9UUkVFIj5YTUxfRlJPTV9UUkVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9WQUxJRCI+WE1MX0ZST01fVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1dSSVRFUiI+WE1MX0ZST01fV1JJVEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9YSU5DTFVERSI+WE1MX0ZST01fWElOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9GUk9NX1hQQVRIIj5YTUxfRlJPTV9YUEFUSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fWFBPSU5URVIiPlhNTF9GUk9NX1hQT0lOVEVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9YU0xUIj5YTUxfRlJPTV9YU0xUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlRQX0FDQ05UIj5YTUxfRlRQX0FDQ05UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlRQX0VQU1ZfQU5TV0VSIj5YTUxfRlRQX0VQU1ZfQU5TV0VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlRQX1BBU1ZfQU5TV0VSIj5YTUxfRlRQX1BBU1ZfQU5TV0VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRlRQX1VSTF9TWU5UQVgiPlhNTF9GVFBfVVJMX1NZTlRBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfR0VUX0NPTlRFTlQiPlhNTF9HRVRfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfR0VUX0xJTkUiPlhNTF9HRVRfTElORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfSFRNTF9ET0NVTUVOVF9OT0RFIj5YTUxfSFRNTF9ET0NVTUVOVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSFRNTF9TVFJVQ1VSRV9FUlJPUiI+WE1MX0hUTUxfU1RSVUNVUkVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9IVE1MX1VOS05PV05fVEFHIj5YTUxfSFRNTF9VTktOT1dOX1RBRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0hUVFBfVU5LTk9XTl9IT1NUIj5YTUxfSFRUUF9VTktOT1dOX0hPU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9IVFRQX1VSTF9TWU5UQVgiPlhNTF9IVFRQX1VSTF9TWU5UQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9IVFRQX1VTRV9JUCI+WE1MX0hUVFBfVVNFX0lQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSTE4Tl9DT05WX0ZBSUxFRCI+WE1MX0kxOE5fQ09OVl9GQUlMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JMThOX0VYQ0VTU19IQU5ETEVSIj5YTUxfSTE4Tl9FWENFU1NfSEFORExFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0kxOE5fTk9fSEFORExFUiI+WE1MX0kxOE5fTk9fSEFORExFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0kxOE5fTk9fTkFNRSI+WE1MX0kxOE5fTk9fTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0kxOE5fTk9fT1VUUFVUIj5YTUxfSTE4Tl9OT19PVVRQVVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI1hNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWSI+WE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCNYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWSI+WE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI1hNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSI+WE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fQlVGRkVSX0ZVTEwiPlhNTF9JT19CVUZGRVJfRlVMTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VBQ0NFUyI+WE1MX0lPX0VBQ0NFUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VBRERSSU5VU0UiPlhNTF9JT19FQUREUklOVVNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUFGTk9TVVBQT1JUIj5YTUxfSU9fRUFGTk9TVVBQT1JUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUFHQUlOIj5YTUxfSU9fRUFHQUlOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUFMUkVBRFkiPlhNTF9JT19FQUxSRUFEWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VCQURGIj5YTUxfSU9fRUJBREY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQkFETVNHIj5YTUxfSU9fRUJBRE1TRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VCVVNZIj5YTUxfSU9fRUJVU1k8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQ0FOQ0VMRUQiPlhNTF9JT19FQ0FOQ0VMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQ0hJTEQiPlhNTF9JT19FQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FQ09OTlJFRlVTRUQiPlhNTF9JT19FQ09OTlJFRlVTRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FREVBRExLIj5YTUxfSU9fRURFQURMSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VET00iPlhNTF9JT19FRE9NPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUVYSVNUIj5YTUxfSU9fRUVYSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUZBVUxUIj5YTUxfSU9fRUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUZCSUciPlhNTF9JT19FRkJJRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VJTlBST0dSRVNTIj5YTUxfSU9fRUlOUFJPR1JFU1M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FSU5UUiI+WE1MX0lPX0VJTlRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUlOVkFMIj5YTUxfSU9fRUlOVkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUlPIj5YTUxfSU9fRUlPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUlTQ09OTiI+WE1MX0lPX0VJU0NPTk48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FSVNESVIiPlhNTF9JT19FSVNESVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTUZJTEUiPlhNTF9JT19FTUZJTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTUxJTksiPlhNTF9JT19FTUxJTks8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTVNHU0laRSI+WE1MX0lPX0VNU0dTSVpFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5BTUVUT09MT05HIj5YTUxfSU9fRU5BTUVUT09MT05HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5DT0RFUiI+WE1MX0lPX0VOQ09ERVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTkVUVU5SRUFDSCI+WE1MX0lPX0VORVRVTlJFQUNIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5GSUxFIj5YTUxfSU9fRU5GSUxFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PREVWIj5YTUxfSU9fRU5PREVWPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PRU5UIj5YTUxfSU9fRU5PRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PRVhFQyI+WE1MX0lPX0VOT0VYRUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9MQ0siPlhNTF9JT19FTk9MQ0s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9NRU0iPlhNTF9JT19FTk9NRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9TUEMiPlhNTF9JT19FTk9TUEM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9TWVMiPlhNTF9JT19FTk9TWVM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9URElSIj5YTUxfSU9fRU5PVERJUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT1RFTVBUWSI+WE1MX0lPX0VOT1RFTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT1RTT0NLIj5YTUxfSU9fRU5PVFNPQ0s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FTk9UU1VQIj5YTUxfSU9fRU5PVFNVUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT1RUWSI+WE1MX0lPX0VOT1RUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOWElPIj5YTUxfSU9fRU5YSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FUEVSTSI+WE1MX0lPX0VQRVJNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVBJUEUiPlhNTF9JT19FUElQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VSQU5HRSI+WE1MX0lPX0VSQU5HRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VST0ZTIj5YTUxfSU9fRVJPRlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FU1BJUEUiPlhNTF9JT19FU1BJUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19FU1JDSCI+WE1MX0lPX0VTUkNIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVRJTUVET1VUIj5YTUxfSU9fRVRJTUVET1VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVhERVYiPlhNTF9JT19FWERFVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX0ZMVVNIIj5YTUxfSU9fRkxVU0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19MT0FEX0VSUk9SIj5YTUxfSU9fTE9BRF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX05FVFdPUktfQVRURU1QVCI+WE1MX0lPX05FVFdPUktfQVRURU1QVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX05PX0lOUFVUIj5YTUxfSU9fTk9fSU5QVVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9JT19VTktOT1dOIj5YTUxfSU9fVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX0lPX1dSSVRFIj5YTUxfSU9fV1JJVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX0xPQ0FMX05BTUVTUEFDRSI+WE1MX0xPQ0FMX05BTUVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9NQVhfTkFNRUxFTiI+WE1MX01BWF9OQU1FTEVOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9URVhUX0xFTkdUSCI+WE1MX01BWF9URVhUX0xFTkdUSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX01PRFVMRV9DTE9TRSI+WE1MX01PRFVMRV9DTE9TRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI1hNTF9NT0RVTEVfTEFaWSI+WE1MX01PRFVMRV9MQVpZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjWE1MX01PRFVMRV9MT0NBTCI+WE1MX01PRFVMRV9MT0NBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX01PRFVMRV9PUEVOIj5YTUxfTU9EVUxFX09QRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX05BTUVTUEFDRV9ERUNMIj5YTUxfTkFNRVNQQUNFX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX05PVEFUSU9OX05PREUiPlhNTF9OT1RBVElPTl9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfTlNfRVJSX0FUVFJJQlVURV9SRURFRklORUQiPlhNTF9OU19FUlJfQVRUUklCVVRFX1JFREVGSU5FRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX05TX0VSUl9DT0xPTiI+WE1MX05TX0VSUl9DT0xPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX05TX0VSUl9FTVBUWSI+WE1MX05TX0VSUl9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX05TX0VSUl9RTkFNRSI+WE1MX05TX0VSUl9RTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX05TX0VSUl9VTkRFRklORURfTkFNRVNQQUNFIj5YTUxfTlNfRVJSX1VOREVGSU5FRF9OQU1FU1BBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9OU19FUlJfWE1MX05BTUVTUEFDRSI+WE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUUiPlhNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OIj5YTUxfUEFSU0VSX0NEQVRBX1NFQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0NPTU1FTlQiPlhNTF9QQVJTRVJfQ09NTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfQ09OVEVOVCI+WE1MX1BBUlNFUl9DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9ERUZBVUxUQVRUUlMiPlhNTF9QQVJTRVJfREVGQVVMVEFUVFJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9EVEQiPlhNTF9QQVJTRVJfRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9FTkRfVEFHIj5YTUxfUEFSU0VSX0VORF9UQUc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0VOVElUWV9ERUNMIj5YTUxfUEFSU0VSX0VOVElUWV9ERUNMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUUiPlhNTF9QQVJTRVJfRU5USVRZX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9FT0YiPlhNTF9QQVJTRVJfRU9GPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9FUElMT0ciPlhNTF9QQVJTRVJfRVBJTE9HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9JR05PUkUiPlhNTF9QQVJTRVJfSUdOT1JFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9MT0FERFREIj5YTUxfUEFSU0VSX0xPQUREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX01JU0MiPlhNTF9QQVJTRVJfTUlTQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfUEkiPlhNTF9QQVJTRVJfUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX1BST0xPRyI+WE1MX1BBUlNFUl9QUk9MT0c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMIj5YTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUiI+WE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfRVJST1IiPlhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX1dBUk5JTkciPlhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfV0FSTklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9QQVJTRVJfU0VWRVJJVFlfV0FSTklORyI+WE1MX1BBUlNFUl9TRVZFUklUWV9XQVJOSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9TVEFSVCI+WE1MX1BBUlNFUl9TVEFSVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfU1RBUlRfVEFHIj5YTUxfUEFSU0VSX1NUQVJUX1RBRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVMiPlhNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMIj5YTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9WQUxJREFURSI+WE1MX1BBUlNFUl9WQUxJREFURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9DT01QQUNUIj5YTUxfUEFSU0VfQ09NUEFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9ET00iPlhNTF9QQVJTRV9ET008L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfRFREQVRUUiI+WE1MX1BBUlNFX0RUREFUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfRFRETE9BRCI+WE1MX1BBUlNFX0RURExPQUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfRFREVkFMSUQiPlhNTF9QQVJTRV9EVERWQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9IVUdFIj5YTUxfUEFSU0VfSFVHRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT0JBU0VGSVgiPlhNTF9QQVJTRV9OT0JBU0VGSVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9CTEFOS1MiPlhNTF9QQVJTRV9OT0JMQU5LUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT0NEQVRBIj5YTUxfUEFSU0VfTk9DREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT0RJQ1QiPlhNTF9QQVJTRV9OT0RJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9FTlQiPlhNTF9QQVJTRV9OT0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT0VSUk9SIj5YTUxfUEFSU0VfTk9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT05FVCI+WE1MX1BBUlNFX05PTkVUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX05PV0FSTklORyI+WE1MX1BBUlNFX05PV0FSTklORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT1hJTkNOT0RFIj5YTUxfUEFSU0VfTk9YSU5DTk9ERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OU0NMRUFOIj5YTUxfUEFSU0VfTlNDTEVBTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9PTEQxMCI+WE1MX1BBUlNFX09MRDEwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX09MRFNBWCI+WE1MX1BBUlNFX09MRFNBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9QRURBTlRJQyI+WE1MX1BBUlNFX1BFREFOVElDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1BVU0hfRE9NIj5YTUxfUEFSU0VfUFVTSF9ET008L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfUFVTSF9TQVgiPlhNTF9QQVJTRV9QVVNIX1NBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9QQVJTRV9SRUFERVIiPlhNTF9QQVJTRV9SRUFERVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfUkVDT1ZFUiI+WE1MX1BBUlNFX1JFQ09WRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfU0FYIj5YTUxfUEFSU0VfU0FYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1NBWDEiPlhNTF9QQVJTRV9TQVgxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1VOS05PV04iPlhNTF9QQVJTRV9VTktOT1dOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1hJTkNMVURFIj5YTUxfUEFSU0VfWElOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjWE1MX1BBVFRFUk5fREVGQVVMVCI+WE1MX1BBVFRFUk5fREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCNYTUxfUEFUVEVSTl9YUEFUSCI+WE1MX1BBVFRFUk5fWFBBVEg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjWE1MX1BBVFRFUk5fWFNGSUVMRCI+WE1MX1BBVFRFUk5fWFNGSUVMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCNYTUxfUEFUVEVSTl9YU1NFTCI+WE1MX1BBVFRFUk5fWFNTRUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1BJX05PREUiPlhNTF9QSV9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0FUVFJJQlVURSI+WE1MX1JFQURFUl9UWVBFX0FUVFJJQlVURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9DREFUQSI+WE1MX1JFQURFUl9UWVBFX0NEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQiPlhNTF9SRUFERVJfVFlQRV9DT01NRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UIj5YTUxfUkVBREVSX1RZUEVfRE9DVU1FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQiPlhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9GUkFHTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9UWVBFIj5YTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9FTEVNRU5UIj5YTUxfUkVBREVSX1RZUEVfRUxFTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVCI+WE1MX1JFQURFUl9UWVBFX0VORF9FTEVNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFkiPlhNTF9SRUFERVJfVFlQRV9FTkRfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0VOVElUWSI+WE1MX1JFQURFUl9UWVBFX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFIj5YTUxfUkVBREVSX1RZUEVfRU5USVRZX1JFRkVSRU5DRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9OT05FIj5YTUxfUkVBREVSX1RZUEVfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9OT1RBVElPTiI+WE1MX1JFQURFUl9UWVBFX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iPlhNTF9SRUFERVJfVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1NJR05JRklDQU5UX1dISVRFU1BBQ0UiPlhNTF9SRUFERVJfVFlQRV9TSUdOSUZJQ0FOVF9XSElURVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1RFWFQiPlhNTF9SRUFERVJfVFlQRV9URVhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1dISVRFU1BBQ0UiPlhNTF9SRUFERVJfVFlQRV9XSElURVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTiI+WE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SIj5YTUxfUkVHRVhQX0NPTVBJTEVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdQX0NSTkciPlhNTF9SRUxBWE5HUF9DUk5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HUF9GUkVFX0RPQyI+WE1MX1JFTEFYTkdQX0ZSRUVfRE9DPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HUF9OT05FIj5YTUxfUkVMQVhOR1BfTk9ORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUkVYVFJBTlMiPlhNTF9SRUxBWE5HX0VSUl9BVFRSRVhUUkFOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUk5BTUUiPlhNTF9SRUxBWE5HX0VSUl9BVFRSTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUk5PTlMiPlhNTF9SRUxBWE5HX0VSUl9BVFRSTk9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUlZBTElEIj5YTUxfUkVMQVhOR19FUlJfQVRUUlZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9BVFRSV1JPTkdOUyI+WE1MX1JFTEFYTkdfRVJSX0FUVFJXUk9OR05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9DT05URU5UVkFMSUQiPlhNTF9SRUxBWE5HX0VSUl9DT05URU5UVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0RBVEFFTEVNIj5YTUxfUkVMQVhOR19FUlJfREFUQUVMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0RBVEFUWVBFIj5YTUxfUkVMQVhOR19FUlJfREFUQVRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0RVUElEIj5YTUxfUkVMQVhOR19FUlJfRFVQSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TIj5YTUxfUkVMQVhOR19FUlJfRUxFTUVYVFJBTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1OQU1FIj5YTUxfUkVMQVhOR19FUlJfRUxFTU5BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1OT05TIj5YTUxfUkVMQVhOR19FUlJfRUxFTU5PTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWSI+WE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HIj5YTUxfUkVMQVhOR19FUlJfRUxFTVdST05HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkdOUyI+WE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQiPlhNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQSI+WE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfSU5URVJFWFRSQSI+WE1MX1JFTEFYTkdfRVJSX0lOVEVSRVhUUkE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVEVSTkFMIj5YTUxfUkVMQVhOR19FUlJfSU5URVJOQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVEVSTk9EQVRBIj5YTUxfUkVMQVhOR19FUlJfSU5URVJOT0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVEVSU0VRIj5YTUxfUkVMQVhOR19FUlJfSU5URVJTRVE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0lOVkFMSURBVFRSIj5YTUxfUkVMQVhOR19FUlJfSU5WQUxJREFUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xBQ0tEQVRBIj5YTUxfUkVMQVhOR19FUlJfTEFDS0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xJU1QiPlhNTF9SRUxBWE5HX0VSUl9MSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9MSVNURUxFTSI+WE1MX1JFTEFYTkdfRVJSX0xJU1RFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9MSVNURU1QVFkiPlhNTF9SRUxBWE5HX0VSUl9MSVNURU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQSI+WE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTUVNT1JZIj5YTUxfUkVMQVhOR19FUlJfTUVNT1JZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9OT0RFRklORSI+WE1MX1JFTEFYTkdfRVJSX05PREVGSU5FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9OT0VMRU0iPlhNTF9SRUxBWE5HX0VSUl9OT0VMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX05PR1JBTU1BUiI+WE1MX1JFTEFYTkdfRVJSX05PR1JBTU1BUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTk9TVEFURSI+WE1MX1JFTEFYTkdfRVJSX05PU1RBVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX05PVEVMRU0iPlhNTF9SRUxBWE5HX0VSUl9OT1RFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9URVhUV1JPTkciPlhNTF9SRUxBWE5HX0VSUl9URVhUV1JPTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX1RZUEUiPlhNTF9SRUxBWE5HX0VSUl9UWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9UWVBFQ01QIj5YTUxfUkVMQVhOR19FUlJfVFlQRUNNUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfVFlQRVZBTCI+WE1MX1JFTEFYTkdfRVJSX1RZUEVWQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX1ZBTEVMRU0iPlhNTF9SRUxBWE5HX0VSUl9WQUxFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9WQUxVRSI+WE1MX1JFTEFYTkdfRVJSX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX09LIj5YTUxfUkVMQVhOR19PSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfQU5ZTkFNRV9BVFRSX0FOQ0VTVE9SIj5YTUxfUk5HUF9BTllOQU1FX0FUVFJfQU5DRVNUT1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0FUVFJJQlVURV9DSElMRFJFTiI+WE1MX1JOR1BfQVRUUklCVVRFX0NISUxEUkVOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfQ09OVEVOVCI+WE1MX1JOR1BfQVRUUklCVVRFX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0FUVFJJQlVURV9FTVBUWSI+WE1MX1JOR1BfQVRUUklCVVRFX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfTk9PUCI+WE1MX1JOR1BfQVRUUklCVVRFX05PT1A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0FUVFJfQ09ORkxJQ1QiPlhNTF9STkdQX0FUVFJfQ09ORkxJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0NIT0lDRV9DT05URU5UIj5YTUxfUk5HUF9DSE9JQ0VfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfQ0hPSUNFX0VNUFRZIj5YTUxfUk5HUF9DSE9JQ0VfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0NSRUFURV9GQUlMVVJFIj5YTUxfUk5HUF9DUkVBVEVfRkFJTFVSRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfREFUQV9DT05URU5UIj5YTUxfUk5HUF9EQVRBX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRklORV9DUkVBVEVfRkFJTEVEIj5YTUxfUk5HUF9ERUZJTkVfQ1JFQVRFX0ZBSUxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfREVGSU5FX0VNUFRZIj5YTUxfUk5HUF9ERUZJTkVfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRklORV9NSVNTSU5HIj5YTUxfUk5HUF9ERUZJTkVfTUlTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfREVGSU5FX05BTUVfTUlTU0lORyI+WE1MX1JOR1BfREVGSU5FX05BTUVfTUlTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfREVGX0NIT0lDRV9BTkRfSU5URVJMRUFWRSI+WE1MX1JOR1BfREVGX0NIT0lDRV9BTkRfSU5URVJMRUFWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRUxFTUVOVF9DT05URU5UIj5YTUxfUk5HUF9FTEVNRU5UX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VMRU1FTlRfRU1QVFkiPlhNTF9STkdQX0VMRU1FTlRfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VMRU1FTlRfTkFNRSI+WE1MX1JOR1BfRUxFTUVOVF9OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTEVNRU5UX05PX0NPTlRFTlQiPlhNTF9STkdQX0VMRU1FTlRfTk9fQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRUxFTV9DT05URU5UX0VNUFRZIj5YTUxfUk5HUF9FTEVNX0NPTlRFTlRfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VMRU1fQ09OVEVOVF9FUlJPUiI+WE1MX1JOR1BfRUxFTV9DT05URU5UX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTEVNX1RFWFRfQ09ORkxJQ1QiPlhNTF9STkdQX0VMRU1fVEVYVF9DT05GTElDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRU1QVFkiPlhNTF9STkdQX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTVBUWV9DT05TVFJVQ1QiPlhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRU1QVFlfQ09OVEVOVCI+WE1MX1JOR1BfRU1QVFlfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRU1QVFlfTk9UX0VNUFRZIj5YTUxfUk5HUF9FTVBUWV9OT1RfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VSUk9SX1RZUEVfTElCIj5YTUxfUk5HUF9FUlJPUl9UWVBFX0xJQjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRVhDRVBUX0VNUFRZIj5YTUxfUk5HUF9FWENFUFRfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9NSVNTSU5HIj5YTUxfUk5HUF9FWENFUFRfTUlTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRVhDRVBUX01VTFRJUExFIj5YTUxfUk5HUF9FWENFUFRfTVVMVElQTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9OT19DT05URU5UIj5YTUxfUk5HUF9FWENFUFRfTk9fQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRVhURVJOQUxSRUZfRU1UUFkiPlhNTF9STkdQX0VYVEVSTkFMUkVGX0VNVFBZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FWFRFUk5BTFJFRl9SRUNVUlNFIj5YTUxfUk5HUF9FWFRFUk5BTFJFRl9SRUNVUlNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FWFRFUk5BTF9SRUZfRkFJTFVSRSI+WE1MX1JOR1BfRVhURVJOQUxfUkVGX0ZBSUxVUkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0ZPUkJJRERFTl9BVFRSSUJVVEUiPlhNTF9STkdQX0ZPUkJJRERFTl9BVFRSSUJVVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0ZPUkVJR05fRUxFTUVOVCI+WE1MX1JOR1BfRk9SRUlHTl9FTEVNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9HUkFNTUFSX0NPTlRFTlQiPlhNTF9STkdQX0dSQU1NQVJfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfR1JBTU1BUl9FTVBUWSI+WE1MX1JOR1BfR1JBTU1BUl9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfR1JBTU1BUl9NSVNTSU5HIj5YTUxfUk5HUF9HUkFNTUFSX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0dSQU1NQVJfTk9fU1RBUlQiPlhNTF9STkdQX0dSQU1NQVJfTk9fU1RBUlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0dST1VQX0FUVFJfQ09ORkxJQ1QiPlhNTF9STkdQX0dST1VQX0FUVFJfQ09ORkxJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0hSRUZfRVJST1IiPlhNTF9STkdQX0hSRUZfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOQ0xVREVfRU1QVFkiPlhNTF9STkdQX0lOQ0xVREVfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOQ0xVREVfRkFJTFVSRSI+WE1MX1JOR1BfSU5DTFVERV9GQUlMVVJFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTkNMVURFX1JFQ1VSU0UiPlhNTF9STkdQX0lOQ0xVREVfUkVDVVJTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5URVJMRUFWRV9BREQiPlhNTF9STkdQX0lOVEVSTEVBVkVfQUREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQiPlhNTF9STkdQX0lOVEVSTEVBVkVfQ1JFQVRFX0ZBSUxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5URVJMRUFWRV9FTVBUWSI+WE1MX1JOR1BfSU5URVJMRUFWRV9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5URVJMRUFWRV9OT19DT05URU5UIj5YTUxfUk5HUF9JTlRFUkxFQVZFX05PX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVkFMSURfREVGSU5FX05BTUUiPlhNTF9STkdQX0lOVkFMSURfREVGSU5FX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVkFMSURfVVJJIj5YTUxfUk5HUF9JTlZBTElEX1VSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5WQUxJRF9WQUxVRSI+WE1MX1JOR1BfSU5WQUxJRF9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfTUlTU0lOR19IUkVGIj5YTUxfUk5HUF9NSVNTSU5HX0hSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX05BTUVfTUlTU0lORyI+WE1MX1JOR1BfTkFNRV9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9ORUVEX0NPTUJJTkUiPlhNTF9STkdQX05FRURfQ09NQklORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfTk9UQUxMT1dFRF9OT1RfRU1QVFkiPlhNTF9STkdQX05PVEFMTE9XRURfTk9UX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9OU05BTUVfQVRUUl9BTkNFU1RPUiI+WE1MX1JOR1BfTlNOQU1FX0FUVFJfQU5DRVNUT1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX05TTkFNRV9OT19OUyI+WE1MX1JOR1BfTlNOQU1FX05PX05TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVJBTV9GT1JCSURERU4iPlhNTF9STkdQX1BBUkFNX0ZPUkJJRERFTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSQU1fTkFNRV9NSVNTSU5HIj5YTUxfUk5HUF9QQVJBTV9OQU1FX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkVOVFJFRl9DUkVBVEVfRkFJTEVEIj5YTUxfUk5HUF9QQVJFTlRSRUZfQ1JFQVRFX0ZBSUxFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSRU5UUkVGX05BTUVfSU5WQUxJRCI+WE1MX1JOR1BfUEFSRU5UUkVGX05BTUVfSU5WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSRU5UUkVGX05PVF9FTVBUWSI+WE1MX1JOR1BfUEFSRU5UUkVGX05PVF9FTVBUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSRU5UUkVGX05PX05BTUUiPlhNTF9STkdQX1BBUkVOVFJFRl9OT19OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVJFTlRSRUZfTk9fUEFSRU5UIj5YTUxfUk5HUF9QQVJFTlRSRUZfTk9fUEFSRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVJTRV9FUlJPUiI+WE1MX1JOR1BfUEFSU0VfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9BTllOQU1FX0VYQ0VQVF9BTllOQU1FIj5YTUxfUk5HUF9QQVRfQU5ZTkFNRV9FWENFUFRfQU5ZTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0FUVFJfQVRUUiI+WE1MX1JOR1BfUEFUX0FUVFJfQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0FUVFJfRUxFTSI+WE1MX1JOR1BfUEFUX0FUVFJfRUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0FUVFIiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRUxFTSI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VMRU08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTVBUWSI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfR1JPVVAiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9HUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0lOVEVSTEVBVkUiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfTElTVCI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0xJU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9PTkVNT1JFIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfT05FTU9SRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1JFRiI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1RFWFQiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfTElTVF9BVFRSIj5YTUxfUk5HUF9QQVRfTElTVF9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfTElTVF9FTEVNIj5YTUxfUk5HUF9QQVRfTElTVF9FTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFIj5YTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfTElTVF9MSVNUIj5YTUxfUk5HUF9QQVRfTElTVF9MSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfTElTVF9SRUYiPlhNTF9STkdQX1BBVF9MSVNUX1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0xJU1RfVEVYVCI+WE1MX1JOR1BfUEFUX0xJU1RfVEVYVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX05TTkFNRV9FWENFUFRfQU5ZTkFNRSI+WE1MX1JOR1BfUEFUX05TTkFNRV9FWENFUFRfQU5ZTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX05TTkFNRV9FWENFUFRfTlNOQU1FIj5YTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9OU05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9PTkVNT1JFX0dST1VQX0FUVFIiPlhNTF9STkdQX1BBVF9PTkVNT1JFX0dST1VQX0FUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9PTkVNT1JFX0lOVEVSTEVBVkVfQVRUUiI+WE1MX1JOR1BfUEFUX09ORU1PUkVfSU5URVJMRUFWRV9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfQVRUUiI+WE1MX1JOR1BfUEFUX1NUQVJUX0FUVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9EQVRBIj5YTUxfUk5HUF9QQVRfU1RBUlRfREFUQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX1NUQVJUX0VNUFRZIj5YTUxfUk5HUF9QQVRfU1RBUlRfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9HUk9VUCI+WE1MX1JOR1BfUEFUX1NUQVJUX0dST1VQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfSU5URVJMRUFWRSI+WE1MX1JOR1BfUEFUX1NUQVJUX0lOVEVSTEVBVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9MSVNUIj5YTUxfUk5HUF9QQVRfU1RBUlRfTElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX1NUQVJUX09ORU1PUkUiPlhNTF9STkdQX1BBVF9TVEFSVF9PTkVNT1JFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfVEVYVCI+WE1MX1JOR1BfUEFUX1NUQVJUX1RFWFQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9WQUxVRSI+WE1MX1JOR1BfUEFUX1NUQVJUX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QUkVGSVhfVU5ERUZJTkVEIj5YTUxfUk5HUF9QUkVGSVhfVU5ERUZJTkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfQ1JFQVRFX0ZBSUxFRCI+WE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1JFRl9DWUNMRSI+WE1MX1JOR1BfUkVGX0NZQ0xFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfTkFNRV9JTlZBTElEIj5YTUxfUk5HUF9SRUZfTkFNRV9JTlZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfTk9UX0VNUFRZIj5YTUxfUk5HUF9SRUZfTk9UX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfTk9fREVGIj5YTUxfUk5HUF9SRUZfTk9fREVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfTk9fTkFNRSI+WE1MX1JOR1BfUkVGX05PX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1NUQVJUX0NIT0lDRV9BTkRfSU5URVJMRUFWRSI+WE1MX1JOR1BfU1RBUlRfQ0hPSUNFX0FORF9JTlRFUkxFQVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9TVEFSVF9DT05URU5UIj5YTUxfUk5HUF9TVEFSVF9DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9TVEFSVF9FTVBUWSI+WE1MX1JOR1BfU1RBUlRfRU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1NUQVJUX01JU1NJTkciPlhNTF9STkdQX1NUQVJUX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1RFWFRfRVhQRUNURUQiPlhNTF9STkdQX1RFWFRfRVhQRUNURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1RFWFRfSEFTX0NISUxEIj5YTUxfUk5HUF9URVhUX0hBU19DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVFlQRV9NSVNTSU5HIj5YTUxfUk5HUF9UWVBFX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9STkdQX1RZUEVfTk9UX0ZPVU5EIj5YTUxfUk5HUF9UWVBFX05PVF9GT1VORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVFlQRV9WQUxVRSI+WE1MX1JOR1BfVFlQRV9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVU5LTk9XTl9BVFRSSUJVVEUiPlhNTF9STkdQX1VOS05PV05fQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9VTktOT1dOX0NPTUJJTkUiPlhNTF9STkdQX1VOS05PV05fQ09NQklORTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVU5LTk9XTl9DT05TVFJVQ1QiPlhNTF9STkdQX1VOS05PV05fQ09OU1RSVUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9VTktOT1dOX1RZUEVfTElCIj5YTUxfUk5HUF9VTktOT1dOX1RZUEVfTElCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9VUklfRlJBR01FTlQiPlhNTF9STkdQX1VSSV9GUkFHTUVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVVJJX05PVF9BQlNPTFVURSI+WE1MX1JOR1BfVVJJX05PVF9BQlNPTFVURTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVkFMVUVfRU1QVFkiPlhNTF9STkdQX1ZBTFVFX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9WQUxVRV9OT19DT05URU5UIj5YTUxfUk5HUF9WQUxVRV9OT19DT05URU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9YTUxOU19OQU1FIj5YTUxfUk5HUF9YTUxOU19OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9YTUxfTlMiPlhNTF9STkdQX1hNTF9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCNYTUxfU0FWRV9BU19IVE1MIj5YTUxfU0FWRV9BU19IVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI1hNTF9TQVZFX0FTX1hNTCI+WE1MX1NBVkVfQVNfWE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0FWRV9DSEFSX0lOVkFMSUQiPlhNTF9TQVZFX0NIQVJfSU5WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCNYTUxfU0FWRV9GT1JNQVQiPlhNTF9TQVZFX0ZPUk1BVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NBVkVfTk9UX1VURjgiPlhNTF9TQVZFX05PVF9VVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI1hNTF9TQVZFX05PX0RFQ0wiPlhNTF9TQVZFX05PX0RFQ0w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQVZFX05PX0RPQ1RZUEUiPlhNTF9TQVZFX05PX0RPQ1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjWE1MX1NBVkVfTk9fRU1QVFkiPlhNTF9TQVZFX05PX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI1hNTF9TQVZFX05PX1hIVE1MIj5YTUxfU0FWRV9OT19YSFRNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NBVkVfVU5LTk9XTl9FTkNPRElORyI+WE1MX1NBVkVfVU5LTk9XTl9FTkNPRElORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCNYTUxfU0FWRV9YSFRNTCI+WE1MX1NBVkVfWEhUTUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfU0FYMl9NQUdJQyI+WE1MX1NBWDJfTUFHSUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1QiPlhNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FUVFJGT1JNREVGQVVMVF9WQUxVRSI+WE1MX1NDSEVNQVBfQVRUUkZPUk1ERUZBVUxUX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9BVFRSR1JQX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfQVRUUkdSUF9OT05BTUVfTk9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FUVFJfTk9OQU1FX05PUkVGIj5YTUxfU0NIRU1BUF9BVFRSX05PTkFNRV9OT1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVCI+WE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzMiPlhNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT01QTEVYVFlQRV9OT05BTUVfTk9SRUYiPlhNTF9TQ0hFTUFQX0NPTVBMRVhUWVBFX05PTkFNRV9OT1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX0FMTF9MSU1JVEVEIj5YTUxfU0NIRU1BUF9DT1NfQUxMX0xJTUlURUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSI+WE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzIiPlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8zIj5YTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8yIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMyI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzQiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl81Ij5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMV8yIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8zIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNCI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl80PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzUiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMSI+WE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8xIj5YTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8xIj5YTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzIiPlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMyI+WE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzQiPlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF81Ij5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NWQ19TSU1QTEVfVFlQRSI+WE1MX1NDSEVNQVBfQ1ZDX1NJTVBMRV9UWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DX1BST1BTX0NPUlJFQ1QiPlhNTF9TQ0hFTUFQX0NfUFJPUFNfQ09SUkVDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVGX0FORF9QUkVGSVgiPlhNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzEiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMSI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMiI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMyI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzIiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzMiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzEiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMiI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8zIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRUxFTUZPUk1ERUZBVUxUX1ZBTFVFIj5YTUxfU0NIRU1BUF9FTEVNRk9STURFRkFVTFRfVkFMVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VMRU1fREVGQVVMVF9GSVhFRCI+WE1MX1NDSEVNQVBfRUxFTV9ERUZBVUxUX0ZJWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FTEVNX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfRUxFTV9OT05BTUVfTk9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VYVEVOU0lPTl9OT19CQVNFIj5YTUxfU0NIRU1BUF9FWFRFTlNJT05fTk9fQkFTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfMyI+WE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF80Ij5YTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzUiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF81PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNiI+WE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0ZBQ0VUX05PX1ZBTFVFIj5YTUxfU0NIRU1BUF9GQUNFVF9OT19WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRkFJTEVEX0JVSUxEX0lNUE9SVCI+WE1MX1NDSEVNQVBfRkFJTEVEX0JVSUxEX0lNUE9SVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRkFJTEVEX0xPQUQiPlhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9GQUlMRURfUEFSU0UiPlhNTF9TQ0hFTUFQX0ZBSUxFRF9QQVJTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfR1JPVVBfTk9OQU1FX05PUkVGIj5YTUxfU0NIRU1BUF9HUk9VUF9OT05BTUVfTk9SRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lNUE9SVF9OQU1FU1BBQ0VfTk9UX1VSSSI+WE1MX1NDSEVNQVBfSU1QT1JUX05BTUVTUEFDRV9OT1RfVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTVBPUlRfUkVERUZJTkVfTlNOQU1FIj5YTUxfU0NIRU1BUF9JTVBPUlRfUkVERUZJTkVfTlNOQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTVBPUlRfU0NIRU1BX05PVF9VUkkiPlhNTF9TQ0hFTUFQX0lNUE9SVF9TQ0hFTUFfTk9UX1VSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9UX1VSSSI+WE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9UX1VSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9fVVJJIj5YTUxfU0NIRU1BUF9JTkNMVURFX1NDSEVNQV9OT19VUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVEVSTkFMIj5YTUxfU0NIRU1BUF9JTlRFUk5BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5URVJTRUNUSU9OX05PVF9FWFBSRVNTSUJMRSI+WE1MX1NDSEVNQVBfSU5URVJTRUNUSU9OX05PVF9FWFBSRVNTSUJMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0NPTUJJTkFUSU9OIj5YTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfQ09NQklOQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT04iPlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9OQU1FIj5YTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfTkFNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX1VTRSI+WE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX1VTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9CT09MRUFOIj5YTUxfU0NIRU1BUF9JTlZBTElEX0JPT0xFQU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfRU5VTSI+WE1MX1NDSEVNQVBfSU5WQUxJRF9FTlVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUIj5YTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFIj5YTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX01BWE9DQ1VSUyI+WE1MX1NDSEVNQVBfSU5WQUxJRF9NQVhPQ0NVUlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfTUlOT0NDVVJTIj5YTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9SRUZfQU5EX1NVQlRZUEUiPlhNTF9TQ0hFTUFQX0lOVkFMSURfUkVGX0FORF9TVUJUWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX1dISVRFX1NQQUNFIj5YTUxfU0NIRU1BUF9JTlZBTElEX1dISVRFX1NQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTUdfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX01JU1NJTkdfU0lNUExFVFlQRV9DSElMRCI+WE1MX1NDSEVNQVBfTUlTU0lOR19TSU1QTEVUWVBFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9OT0FUVFJfTk9SRUYiPlhNTF9TQ0hFTUFQX05PQVRUUl9OT1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9ST09UIj5YTUxfU0NIRU1BUF9OT1JPT1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVEFUSU9OX05PX05BTUUiPlhNTF9TQ0hFTUFQX05PVEFUSU9OX05PX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVEhJTkdfVE9fUEFSU0UiPlhNTF9TQ0hFTUFQX05PVEhJTkdfVE9fUEFSU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVFlQRV9OT1JFRiI+WE1MX1NDSEVNQVBfTk9UWVBFX05PUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQyI+WE1MX1NDSEVNQVBfTk9UX0RFVEVSTUlOSVNUSUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PVF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX05PVF9TQ0hFTUE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PX1hNTE5TIj5YTUxfU0NIRU1BUF9OT19YTUxOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9fWFNJIj5YTUxfU0NIRU1BUF9OT19YU0k8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1BSRUZJWF9VTkRFRklORUQiPlhNTF9TQ0hFTUFQX1BSRUZJWF9VTkRFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xIj5YTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMSI+WE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMiI+WE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVDVVJTSVZFIj5YTUxfU0NIRU1BUF9SRUNVUlNJVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSIj5YTUxfU0NIRU1BUF9SRURFRklORURfQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFJHUk9VUCI+WE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFJHUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX0VMRU1FTlQiPlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9FTEVNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRURFRklORURfR1JPVVAiPlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9HUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX05PVEFUSU9OIj5YTUxfU0NIRU1BUF9SRURFRklORURfTk9UQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9UWVBFIj5YTUxfU0NIRU1BUF9SRURFRklORURfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVGX0FORF9DT05URU5UIj5YTUxfU0NIRU1BUF9SRUZfQU5EX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFRl9BTkRfU1VCVFlQRSI+WE1MX1NDSEVNQVBfUkVGX0FORF9TVUJUWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRUdFWFBfSU5WQUxJRCI+WE1MX1NDSEVNQVBfUkVHRVhQX0lOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFU1RSSUNUSU9OX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfUkVTVFJJQ1RJT05fTk9OQU1FX05PUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCI+WE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkciPlhNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VEIj5YTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU0lNUExFVFlQRV9OT05BTUUiPlhNTF9TQ0hFTUFQX1NJTVBMRVRZUEVfTk9OQU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzEiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8yIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18xIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8zXzIiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzQiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8xIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMiI+WE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzMiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0NUXzEiPlhNTF9TQ0hFTUFQX1NSQ19DVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8xIj5YTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzEiPlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8yIj5YTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzMiPlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlQiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8xIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8xXzIiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzIiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzEiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMiI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18xIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzNfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzIiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU5DTFVERSI+WE1MX1NDSEVNQVBfU1JDX0lOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEUiPlhNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19SRURFRklORSI+WE1MX1NDSEVNQVBfU1JDX1JFREVGSU5FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSI+WE1MX1NDSEVNQVBfU1JDX1JFU09MVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19SRVNUUklDVElPTl9CQVNFX09SX1NJTVBMRVRZUEUiPlhNTF9TQ0hFTUFQX1NSQ19SRVNUUklDVElPTl9CQVNFX09SX1NJTVBMRVRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8xIj5YTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzIiPlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMyI+WE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV80Ij5YTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX1VOSU9OX01FTUJFUlRZUEVTX09SX1NJTVBMRVRZUEVTIj5YTUxfU0NIRU1BUF9TUkNfVU5JT05fTUVNQkVSVFlQRVNfT1JfU0lNUExFVFlQRVM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMSI+WE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEUiPlhNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1RZUEVfQU5EX1NVQlRZUEUiPlhNTF9TQ0hFTUFQX1RZUEVfQU5EX1NVQlRZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOSU9OX05PVF9FWFBSRVNTSUJMRSI+WE1MX1NDSEVNQVBfVU5JT05fTk9UX0VYUFJFU1NJQkxFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0FMTF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9BTExfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQU5ZQVRUUklCVVRFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FOWUFUVFJJQlVURV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSR1JQX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJHUlBfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQVRUUklCVVRFX0dST1VQIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJJQlVURV9HUk9VUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQkFTRV9UWVBFIj5YTUxfU0NIRU1BUF9VTktOT1dOX0JBU0VfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9DSE9JQ0VfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fQ0hPSUNFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhDT05URU5UX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhDT05URU5UX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0VMRU1fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fRUxFTV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9FWFRFTlNJT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fRVhURU5TSU9OX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX1RZUEUiPlhNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9HUk9VUF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9HUk9VUF9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9JTVBPUlRfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fSU1QT1JUX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0lOQ0xVREVfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fSU5DTFVERV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9MSVNUX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0xJU1RfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fTUVNQkVSX1RZUEUiPlhNTF9TQ0hFTUFQX1VOS05PV05fTUVNQkVSX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fUFJFRklYIj5YTUxfU0NIRU1BUF9VTktOT1dOX1BSRUZJWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9SRUYiPlhNTF9TQ0hFTUFQX1VOS05PV05fUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1JFU1RSSUNUSU9OX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX1JFU1RSSUNUSU9OX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1NDSEVNQVNfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fU0NIRU1BU19DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9TRVFVRU5DRV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9TRVFVRU5DRV9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVDT05URU5UX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRUNPTlRFTlRfQ0hJTEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFVFlQRV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVUWVBFX0NISUxEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1RZUEUiPlhNTF9TQ0hFTUFQX1VOS05PV05fVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9VTklPTl9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9VTklPTl9DSElMRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1BPSU5UTEVTU19QUk9IIj5YTUxfU0NIRU1BUF9XQVJOX0FUVFJfUE9JTlRMRVNTX1BST0g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1dBUk5fQVRUUl9SRURFQ0xfUFJPSCI+WE1MX1NDSEVNQVBfV0FSTl9BVFRSX1JFREVDTF9QUk9IPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9XQVJOX1NLSVBfU0NIRU1BIj5YTUxfU0NIRU1BUF9XQVJOX1NLSVBfU0NIRU1BPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9XQVJOX1VOTE9DQVRFRF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX1dBUk5fVU5MT0NBVEVEX1NDSEVNQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVIiPlhNTF9TQ0hFTUFQX1dJTERDQVJEX0lOVkFMSURfTlNfTUVNQkVSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYIj5YTUxfU0NIRU1BU19BTllBVFRSX0xBWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSI+WE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllUWVBFIj5YTUxfU0NIRU1BU19BTllUWVBFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWVVSSSI+WE1MX1NDSEVNQVNfQU5ZVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9MQVgiPlhNTF9TQ0hFTUFTX0FOWV9MQVg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWV9TS0lQPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9TVFJJQ1QiPlhNTF9TQ0hFTUFTX0FOWV9TVFJJQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfRklYRUQiPlhNTF9TQ0hFTUFTX0FUVFJfRklYRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUl9OU0RFRkFVTFQiPlhNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlkiPlhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9TVUJTVElUVVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQk9PTEVBTiI+WE1MX1NDSEVNQVNfQk9PTEVBTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19CWVRFIj5YTUxfU0NIRU1BU19CWVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0RBVEUiPlhNTF9TQ0hFTUFTX0RBVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfREFURVRJTUUiPlhNTF9TQ0hFTUFTX0RBVEVUSU1FPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0RFQ0lNQUwiPlhNTF9TQ0hFTUFTX0RFQ0lNQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRE9VQkxFIj5YTUxfU0NIRU1BU19ET1VCTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRFVSQVRJT04iPlhNTF9TQ0hFTUFTX0RVUkFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1QiPlhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQiPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSIj5YTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJWEVEIj5YTUxfU0NIRU1BU19FTEVNX0ZJWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMIj5YTUxfU0NIRU1BU19FTEVNX0dMT0JBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQiPlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEUiPlhNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQiPlhNTF9TQ0hFTUFTX0VMRU1fTlNERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fUkVGIj5YTUxfU0NIRU1BU19FTEVNX1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQiPlhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMIj5YTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VOVElUSUVTIj5YTUxfU0NIRU1BU19FTlRJVElFUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTlRJVFkiPlhNTF9TQ0hFTUFTX0VOVElUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfIj5YTUxfU0NIRU1BU19FUlJfPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9BVFRSSU5WQUxJRCI+WE1MX1NDSEVNQVNfRVJSX0FUVFJJTlZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9BVFRSVU5LTk9XTiI+WE1MX1NDSEVNQVNfRVJSX0FUVFJVTktOT1dOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9DT05TVFJVQ1QiPlhNTF9TQ0hFTUFTX0VSUl9DT05TVFJVQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX0VMRU1DT05UIj5YTUxfU0NIRU1BU19FUlJfRUxFTUNPTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX0VYVFJBQ09OVEVOVCI+WE1MX1NDSEVNQVNfRVJSX0VYVFJBQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfRkFDRVQiPlhNTF9TQ0hFTUFTX0VSUl9GQUNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSEFWRURFRkFVTFQiPlhNTF9TQ0hFTUFTX0VSUl9IQVZFREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSU5URVJOQUwiPlhNTF9TQ0hFTUFTX0VSUl9JTlRFUk5BTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSU5WQUxJREFUVFIiPlhNTF9TQ0hFTUFTX0VSUl9JTlZBTElEQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSU5WQUxJREVMRU0iPlhNTF9TQ0hFTUFTX0VSUl9JTlZBTElERUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSVNBQlNUUkFDVCI+WE1MX1NDSEVNQVNfRVJSX0lTQUJTVFJBQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX01JU1NJTkciPlhNTF9TQ0hFTUFTX0VSUl9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1JPTExCQUNLIj5YTUxfU0NIRU1BU19FUlJfTk9ST0xMQkFDSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfTk9ST09UIj5YTUxfU0NIRU1BU19FUlJfTk9ST09UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1RERVRFUk1JTklTVCI+WE1MX1NDSEVNQVNfRVJSX05PVERFVEVSTUlOSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1RFTVBUWSI+WE1MX1NDSEVNQVNfRVJSX05PVEVNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1ROSUxMQUJMRSI+WE1MX1NDSEVNQVNfRVJSX05PVE5JTExBQkxFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1RTSU1QTEUiPlhNTF9TQ0hFTUFTX0VSUl9OT1RTSU1QTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PVFRPUExFVkVMIj5YTUxfU0NIRU1BU19FUlJfTk9UVE9QTEVWRUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PVFlQRSI+WE1MX1NDSEVNQVNfRVJSX05PVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfT0siPlhNTF9TQ0hFTUFTX0VSUl9PSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfVU5ERUNMQVJFREVMRU0iPlhNTF9TQ0hFTUFTX0VSUl9VTkRFQ0xBUkVERUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfVkFMVUUiPlhNTF9TQ0hFTUFTX0VSUl9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfV1JPTkdFTEVNIj5YTUxfU0NIRU1BU19FUlJfV1JPTkdFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9YWFgiPlhNTF9TQ0hFTUFTX0VSUl9YWFg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0UiPlhNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFIj5YTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFIj5YTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iPlhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVCI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GTE9BVCI+WE1MX1NDSEVNQVNfRkxPQVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfR0RBWSI+WE1MX1NDSEVNQVNfR0RBWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HTU9OVEgiPlhNTF9TQ0hFTUFTX0dNT05USDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HTU9OVEhEQVkiPlhNTF9TQ0hFTUFTX0dNT05USERBWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HWUVBUiI+WE1MX1NDSEVNQVNfR1lFQVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfR1lFQVJNT05USCI+WE1MX1NDSEVNQVNfR1lFQVJNT05USDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19IRVhCSU5BUlkiPlhNTF9TQ0hFTUFTX0hFWEJJTkFSWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JRCI+WE1MX1NDSEVNQVNfSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfSURSRUYiPlhNTF9TQ0hFTUFTX0lEUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0lEUkVGUyI+WE1MX1NDSEVNQVNfSURSRUZTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TIj5YTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JTlQiPlhNTF9TQ0hFTUFTX0lOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JTlRFR0VSIj5YTUxfU0NIRU1BU19JTlRFR0VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0xBTkdVQUdFIj5YTUxfU0NIRU1BU19MQU5HVUFHRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19MT05HIj5YTUxfU0NIRU1BU19MT05HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX05BTUUiPlhNTF9TQ0hFTUFTX05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTkNOQU1FIj5YTUxfU0NIRU1BU19OQ05BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTklOVEVHRVIiPlhNTF9TQ0hFTUFTX05JTlRFR0VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX05NVE9LRU4iPlhNTF9TQ0hFTUFTX05NVE9LRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTk1UT0tFTlMiPlhNTF9TQ0hFTUFTX05NVE9LRU5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX05OSU5URUdFUiI+WE1MX1NDSEVNQVNfTk5JTlRFR0VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX05PUk1TVFJJTkciPlhNTF9TQ0hFTUFTX05PUk1TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTk9UQVRJT04iPlhNTF9TQ0hFTUFTX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX05QSU5URUdFUiI+WE1MX1NDSEVNQVNfTlBJTlRFR0VSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1BJTlRFR0VSIj5YTUxfU0NIRU1BU19QSU5URUdFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19RTkFNRSI+WE1MX1NDSEVNQVNfUU5BTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfUVVBTElGX0FUVFIiPlhNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNIj5YTUxfU0NIRU1BU19RVUFMSUZfRUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19TSE9SVCI+WE1MX1NDSEVNQVNfU0hPUlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfU1RSSU5HIj5YTUxfU0NIRU1BU19TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVElNRSI+WE1MX1NDSEVNQVNfVElNRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UT0tFTiI+WE1MX1NDSEVNQVNfVE9LRU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVCI+WE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFIj5YTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFIj5YTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfREVGQVVMVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9MSVNUIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklYVVBfMSI+WE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMIj5YTUxfU0NIRU1BU19UWVBFX0dMT0JBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFMiPlhNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfSU5WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEIj5YTUxfU0NIRU1BU19UWVBFX01BUktFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX01JWEVEIj5YTUxfU0NIRU1BU19UWVBFX01JWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEIj5YTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX09XTkVEX0FUVFJfV0lMRENBUkQiPlhNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRCI+WE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCI+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT04iPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0UiPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUiPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1JFUExBQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVUJZVEUiPlhNTF9TQ0hFTUFTX1VCWVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1VJTlQiPlhNTF9TQ0hFTUFTX1VJTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVUxPTkciPlhNTF9TQ0hFTUFTX1VMT05HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1VOS05PV04iPlhNTF9TQ0hFTUFTX1VOS05PV048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVVNIT1JUIj5YTUxfU0NIRU1BU19VU0hPUlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfV0lMRENBUkRfQ09NUExFVEUiPlhNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVFJPTlZfQVNTRVJUIj5YTUxfU0NIRU1BVFJPTlZfQVNTRVJUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVFJPTlZfUkVQT1JUIj5YTUxfU0NIRU1BVFJPTlZfUkVQT1JUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9CVUZGRVIiPlhNTF9TQ0hFTUFUUk9OX09VVF9CVUZGRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjWE1MX1NDSEVNQVRST05fT1VUX0VSUk9SIj5YTUxfU0NIRU1BVFJPTl9PVVRfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjWE1MX1NDSEVNQVRST05fT1VUX0ZJTEUiPlhNTF9TQ0hFTUFUUk9OX09VVF9GSUxFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9JTyI+WE1MX1NDSEVNQVRST05fT1VUX0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVCI+WE1MX1NDSEVNQVRST05fT1VUX1FVSUVUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9URVhUIj5YTUxfU0NIRU1BVFJPTl9PVVRfVEVYVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCNYTUxfU0NIRU1BVFJPTl9PVVRfWE1MIj5YTUxfU0NIRU1BVFJPTl9PVVRfWE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9BVFRSSU5WQUxJRCI+WE1MX1NDSEVNQVZfQVRUUklOVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0FUVFJVTktOT1dOIj5YTUxfU0NIRU1BVl9BVFRSVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ09OU1RSVUNUIj5YTUxfU0NIRU1BVl9DT05TVFJVQ1Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMSI+WE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzIiPlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8zIj5YTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfNCI+WE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV80PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQVUiPlhNTF9TQ0hFTUFWX0NWQ19BVTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzIiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMyI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl80Ij5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzEiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8yIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzQiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzEiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzVfMiI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSI+WE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzIiPlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8zIj5YTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzIiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzRfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzMiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMiI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfNiI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF82PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzciPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfRU5VTUVSQVRJT05fVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19GQUNFVF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX0ZBQ0VUX1ZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19GUkFDVElPTkRJR0lUU19WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0lEQyI+WE1MX1NDSEVNQVZfQ1ZDX0lEQzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01BWEVYQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWEVYQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01JTkVYQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTkVYQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01JTklOQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTklOQ0xVU0lWRV9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1BBVFRFUk5fVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19QQVRURVJOX1ZBTElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19UT1RBTERJR0lUU19WQUxJRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMSI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMiI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzEiPlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMiI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19XSUxEQ0FSRCI+WE1MX1NDSEVNQVZfQ1ZDX1dJTERDQVJEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9ET0NVTUVOVF9FTEVNRU5UX01JU1NJTkciPlhNTF9TQ0hFTUFWX0RPQ1VNRU5UX0VMRU1FTlRfTUlTU0lORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfRUxFTUNPTlQiPlhNTF9TQ0hFTUFWX0VMRU1DT05UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQiPlhNTF9TQ0hFTUFWX0VMRU1FTlRfQ09OVEVOVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfRVhUUkFDT05URU5UIj5YTUxfU0NIRU1BVl9FWFRSQUNPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0ZBQ0VUIj5YTUxfU0NIRU1BVl9GQUNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfSEFWRURFRkFVTFQiPlhNTF9TQ0hFTUFWX0hBVkVERUZBVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9JTlRFUk5BTCI+WE1MX1NDSEVNQVZfSU5URVJOQUw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0lOVkFMSURBVFRSIj5YTUxfU0NIRU1BVl9JTlZBTElEQVRUUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfSU5WQUxJREVMRU0iPlhNTF9TQ0hFTUFWX0lOVkFMSURFTEVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9JU0FCU1RSQUNUIj5YTUxfU0NIRU1BVl9JU0FCU1RSQUNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9NSVNDIj5YTUxfU0NIRU1BVl9NSVNDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9NSVNTSU5HIj5YTUxfU0NIRU1BVl9NSVNTSU5HPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1JPTExCQUNLIj5YTUxfU0NIRU1BVl9OT1JPTExCQUNLPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1JPT1QiPlhNTF9TQ0hFTUFWX05PUk9PVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UREVURVJNSU5JU1QiPlhNTF9TQ0hFTUFWX05PVERFVEVSTUlOSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1RFTVBUWSI+WE1MX1NDSEVNQVZfTk9URU1QVFk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX05PVE5JTExBQkxFIj5YTUxfU0NIRU1BVl9OT1ROSUxMQUJMRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UU0lNUExFIj5YTUxfU0NIRU1BVl9OT1RTSU1QTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX05PVFRPUExFVkVMIj5YTUxfU0NIRU1BVl9OT1RUT1BMRVZFTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UWVBFIj5YTUxfU0NIRU1BVl9OT1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX1VOREVDTEFSRURFTEVNIj5YTUxfU0NIRU1BVl9VTkRFQ0xBUkVERUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfVkFMVUUiPlhNTF9TQ0hFTUFWX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9XUk9OR0VMRU0iPlhNTF9TQ0hFTUFWX1dST05HRUxFTTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfQU5ZIj5YTUxfU0NIRU1BX0NPTlRFTlRfQU5ZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQyI+WE1MX1NDSEVNQV9DT05URU5UX0JBU0lDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUyI+WE1MX1NDSEVNQV9DT05URU5UX0VMRU1FTlRTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9FTVBUWSI+WE1MX1NDSEVNQV9DT05URU5UX0VNUFRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRCI+WE1MX1NDSEVNQV9DT05URU5UX01JWEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRF9PUl9FTEVNRU5UUyI+WE1MX1NDSEVNQV9DT05URU5UX01JWEVEX09SX0VMRU1FTlRTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEUiPlhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9DT05URU5UX1VOS05PV04iPlhNTF9TQ0hFTUFfQ09OVEVOVF9VTktOT1dOPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRVhUUkFfQVRUUl9VU0VfUFJPSElCIj5YTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGIj5YTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT04iPlhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUyI+WE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSCI+WE1MX1NDSEVNQV9GQUNFVF9MRU5HVEg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9NQVhFWENMVVNJVkUiPlhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfTUFYSU5DTFVTSVZFIj5YTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSCI+WE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkUiPlhNTF9TQ0hFTUFfRkFDRVRfTUlORVhDTFVTSVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFIj5YTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSCI+WE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOIj5YTUxfU0NIRU1BX0ZBQ0VUX1BBVFRFUk48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUyI+WE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0UiPlhNTF9TQ0hFTUFfRkFDRVRfV0hJVEVTUEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQUxMIj5YTUxfU0NIRU1BX1RZUEVfQUxMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9BTlkiPlhNTF9TQ0hFTUFfVFlQRV9BTlk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0FOWV9BVFRSSUJVVEUiPlhNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEUiPlhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURV9VU0UiPlhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9CQVNJQyI+WE1MX1NDSEVNQV9UWVBFX0JBU0lDPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9DSE9JQ0UiPlhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVgiPlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9DT01QTEVYX0NPTlRFTlQiPlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQiPlhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT04iPlhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0ZBQ0VUIj5YTUxfU0NIRU1BX1RZUEVfRkFDRVQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0dST1VQIj5YTUxfU0NIRU1BX1RZUEVfR1JPVVA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVkiPlhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGIj5YTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRSI+WE1MX1NDSEVNQV9UWVBFX0lEQ19VTklRVUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0xJU1QiPlhNTF9TQ0hFTUFfVFlQRV9MSVNUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTiI+WE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRSI+WE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTiI+WE1MX1NDSEVNQV9UWVBFX1JFU1RSSUNUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRSI+WE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9TSU1QTEUiPlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX1NJTVBMRV9DT05URU5UIj5YTUxfU0NIRU1BX1RZUEVfU0lNUExFX0NPTlRFTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX1VOSU9OIj5YTUxfU0NIRU1BX1RZUEVfVU5JT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX1VSIj5YTUxfU0NIRU1BX1RZUEVfVVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQV9WQUxfVkNfSV9DUkVBVEUiPlhNTF9TQ0hFTUFfVkFMX1ZDX0lfQ1JFQVRFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFIj5YTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCNYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkUiPlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI1hNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFIj5YTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI1hNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOIj5YTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9TS0lQX0lEUyI+WE1MX1NLSVBfSURTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfQk9USCI+WE1MX1NVQlNUSVRVVEVfQk9USDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI1hNTF9TVUJTVElUVVRFX05PTkUiPlhNTF9TVUJTVElUVVRFX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9QRVJFRiI+WE1MX1NVQlNUSVRVVEVfUEVSRUY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9URVhUUkVBREVSX01PREVfQ0xPU0VEIj5YTUxfVEVYVFJFQURFUl9NT0RFX0NMT1NFRDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9URVhUUkVBREVSX01PREVfRU9GIj5YTUxfVEVYVFJFQURFUl9NT0RFX0VPRjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9URVhUUkVBREVSX01PREVfRVJST1IiPlhNTF9URVhUUkVBREVSX01PREVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUwiPlhNTF9URVhUUkVBREVSX01PREVfSU5JVElBTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI1hNTF9URVhUUkVBREVSX01PREVfSU5URVJBQ1RJVkUiPlhNTF9URVhUUkVBREVSX01PREVfSU5URVJBQ1RJVkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX1JFQURJTkciPlhNTF9URVhUUkVBREVSX01PREVfUkVBRElORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfVEVYVF9OT0RFIj5YTUxfVEVYVF9OT0RFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfVFJFRV9JTlZBTElEX0RFQyI+WE1MX1RSRUVfSU5WQUxJRF9ERUM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9UUkVFX0lOVkFMSURfSEVYIj5YTUxfVFJFRV9JTlZBTElEX0hFWDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1RSRUVfTk9UX1VURjgiPlhNTF9UUkVFX05PVF9VVEY4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfVFJFRV9VTlRFUk1JTkFURURfRU5USVRZIj5YTUxfVFJFRV9VTlRFUk1JTkFURURfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfV0FSX0NBVEFMT0dfUEkiPlhNTF9XQVJfQ0FUQUxPR19QSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9FTlRJVFlfUkVERUZJTkVEIj5YTUxfV0FSX0VOVElUWV9SRURFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9XQVJfTEFOR19WQUxVRSI+WE1MX1dBUl9MQU5HX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfV0FSX05TX0NPTFVNTiI+WE1MX1dBUl9OU19DT0xVTU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9XQVJfTlNfVVJJIj5YTUxfV0FSX05TX1VSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9OU19VUklfUkVMQVRJVkUiPlhNTF9XQVJfTlNfVVJJX1JFTEFUSVZFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfV0FSX1NQQUNFX1ZBTFVFIj5YTUxfV0FSX1NQQUNFX1ZBTFVFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZIj5YTUxfV0FSX1VOREVDTEFSRURfRU5USVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfV0FSX1VOS05PV05fVkVSU0lPTiI+WE1MX1dBUl9VTktOT1dOX1ZFUlNJT048L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9BVVRPTUFUQSI+WE1MX1dJVEhfQVVUT01BVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9DMTROIj5YTUxfV0lUSF9DMTROPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfQ0FUQUxPRyI+WE1MX1dJVEhfQ0FUQUxPRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0RFQlVHIj5YTUxfV0lUSF9ERUJVRzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0RFQlVHX01FTSI+WE1MX1dJVEhfREVCVUdfTUVNPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfREVCVUdfUlVOIj5YTUxfV0lUSF9ERUJVR19SVU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9FWFBSIj5YTUxfV0lUSF9FWFBSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfRlRQIj5YTUxfV0lUSF9GVFA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9IVE1MIj5YTUxfV0lUSF9IVE1MPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfSFRUUCI+WE1MX1dJVEhfSFRUUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0lDT05WIj5YTUxfV0lUSF9JQ09OVjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0lTTzg4NTlYIj5YTUxfV0lUSF9JU084ODU5WDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX0xFR0FDWSI+WE1MX1dJVEhfTEVHQUNZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfTU9EVUxFUyI+WE1MX1dJVEhfTU9EVUxFUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX05PTkUiPlhNTF9XSVRIX05PTkU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9PVVRQVVQiPlhNTF9XSVRIX09VVFBVVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1BBVFRFUk4iPlhNTF9XSVRIX1BBVFRFUk48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9QVVNIIj5YTUxfV0lUSF9QVVNIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfUkVBREVSIj5YTUxfV0lUSF9SRUFERVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9SRUdFWFAiPlhNTF9XSVRIX1JFR0VYUDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1NBWDEiPlhNTF9XSVRIX1NBWDE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9TQ0hFTUFTIj5YTUxfV0lUSF9TQ0hFTUFTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfU0NIRU1BVFJPTiI+WE1MX1dJVEhfU0NIRU1BVFJPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1RIUkVBRCI+WE1MX1dJVEhfVEhSRUFEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjWE1MX1dJVEhfVFJFRSI+WE1MX1dJVEhfVFJFRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1VOSUNPREUiPlhNTF9XSVRIX1VOSUNPREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9WQUxJRCI+WE1MX1dJVEhfVkFMSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9XUklURVIiPlhNTF9XSVRIX1dSSVRFUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1hJTkNMVURFIj5YTUxfV0lUSF9YSU5DTFVERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1hQQVRIIj5YTUxfV0lUSF9YUEFUSDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTF9XSVRIX1hQVFIiPlhNTF9XSVRIX1hQVFI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxfV0lUSF9aTElCIj5YTUxfV0lUSF9aTElCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEIj5YTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfREVQUkVDQVRFRF9OUyI+WE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hJTkNMVURFX0VORCI+WE1MX1hJTkNMVURFX0VORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0VOVElUWV9ERUZfTUlTTUFUQ0giPlhNTF9YSU5DTFVERV9FTlRJVFlfREVGX01JU01BVENIPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUiPlhNTF9YSU5DTFVERV9GQUxMQkFDS1NfSU5fSU5DTFVERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0ZBTExCQUNLX05PVF9JTl9JTkNMVURFIj5YTUxfWElOQ0xVREVfRkFMTEJBQ0tfTk9UX0lOX0lOQ0xVREU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9GUkFHTUVOVF9JRCI+WE1MX1hJTkNMVURFX0ZSQUdNRU5UX0lEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfSFJFRl9VUkkiPlhNTF9YSU5DTFVERV9IUkVGX1VSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0lOQ0xVREVfSU5fSU5DTFVERSI+WE1MX1hJTkNMVURFX0lOQ0xVREVfSU5fSU5DTFVERTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0lOVkFMSURfQ0hBUiI+WE1MX1hJTkNMVURFX0lOVkFMSURfQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX01VTFRJUExFX1JPT1QiPlhNTF9YSU5DTFVERV9NVUxUSVBMRV9ST09UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfTk9fRkFMTEJBQ0siPlhNTF9YSU5DTFVERV9OT19GQUxMQkFDSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX05PX0hSRUYiPlhNTF9YSU5DTFVERV9OT19IUkVGPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUiPlhNTF9YSU5DTFVERV9QQVJTRV9WQUxVRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX1JFQ1VSU0lPTiI+WE1MX1hJTkNMVURFX1JFQ1VSU0lPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxfWElOQ0xVREVfU1RBUlQiPlhNTF9YSU5DTFVERV9TVEFSVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX1RFWFRfRE9DVU1FTlQiPlhNTF9YSU5DTFVERV9URVhUX0RPQ1VNRU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfVEVYVF9GUkFHTUVOVCI+WE1MX1hJTkNMVURFX1RFWFRfRlJBR01FTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9VTktOT1dOX0VOQ09ESU5HIj5YTUxfWElOQ0xVREVfVU5LTk9XTl9FTkNPRElORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX1hQVFJfRkFJTEVEIj5YTUxfWElOQ0xVREVfWFBUUl9GQUlMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9YUFRSX1JFU1VMVCI+WE1MX1hJTkNMVURFX1hQVFJfUkVTVUxUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTF9YTUxfSUQiPlhNTF9YTUxfSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MX1hNTF9OQU1FU1BBQ0UiPlhNTF9YTUxfTkFNRVNQQUNFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYTUxfWFBBVEhfQ0hFQ0tOUyI+WE1MX1hQQVRIX0NIRUNLTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9FTkNPRElOR19FUlJPUiI+WE1MX1hQQVRIX0VOQ09ESU5HX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSyI+WE1MX1hQQVRIX0VYUFJFU1NJT05fT0s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9FWFBSX0VSUk9SIj5YTUxfWFBBVEhfRVhQUl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0lOVkFMSURfQVJJVFkiPlhNTF9YUEFUSF9JTlZBTElEX0FSSVRZPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIj5YTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfSU5WQUxJRF9DVFhUX1BPU0lUSU9OIj5YTUxfWFBBVEhfSU5WQUxJRF9DVFhUX1BPU0lUSU9OPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfSU5WQUxJRF9DVFhUX1NJWkUiPlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfU0laRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0lOVkFMSURfT1BFUkFORCI+WE1MX1hQQVRIX0lOVkFMSURfT1BFUkFORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SIj5YTUxfWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9JTlZBTElEX1RZUEUiPlhNTF9YUEFUSF9JTlZBTElEX1RZUEU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9NRU1PUllfRVJST1IiPlhNTF9YUEFUSF9NRU1PUllfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hNTF9YUEFUSF9OT1ZBUiI+WE1MX1hQQVRIX05PVkFSPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfTlVNQkVSX0VSUk9SIj5YTUxfWFBBVEhfTlVNQkVSX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiI+WE1MX1hQQVRIX1NUQVJUX0xJVEVSQUxfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9VTkNMT1NFRF9FUlJPUiI+WE1MX1hQQVRIX1VOQ0xPU0VEX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SIj5YTUxfWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IiPlhNTF9YUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiI+WE1MX1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUiI+WE1MX1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUiI+WE1MX1hQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQVFJfQ0hJTERTRVFfU1RBUlQiPlhNTF9YUFRSX0NISUxEU0VRX1NUQVJUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBUUl9FVkFMX0ZBSUxFRCI+WE1MX1hQVFJfRVZBTF9GQUlMRUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUFRSX0VYVFJBX09CSkVDVFMiPlhNTF9YUFRSX0VYVFJBX09CSkVDVFM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUFRSX1JFU09VUkNFX0VSUk9SIj5YTUxfWFBUUl9SRVNPVVJDRV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjWE1MX1hQVFJfU1VCX1JFU09VUkNFX0VSUk9SIj5YTUxfWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI1hNTF9YUFRSX1NZTlRBWF9FUlJPUiI+WE1MX1hQVFJfU1lOVEFYX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfWFBUUl9VTktOT1dOX1NDSEVNRSI+WE1MX1hQVFJfVU5LTk9XTl9TQ0hFTUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX0JPT0xFQU4iPlhQQVRIX0JPT0xFQU48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX0VOQ09ESU5HX0VSUk9SIj5YUEFUSF9FTkNPRElOR19FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfRVhQUkVTU0lPTl9PSyI+WFBBVEhfRVhQUkVTU0lPTl9PSzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfRVhQUl9FUlJPUiI+WFBBVEhfRVhQUl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9BUklUWSI+WFBBVEhfSU5WQUxJRF9BUklUWTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIj5YUEFUSF9JTlZBTElEX0NIQVJfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX0lOVkFMSURfQ1RYVCI+WFBBVEhfSU5WQUxJRF9DVFhUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iPlhQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9DVFhUX1NJWkUiPlhQQVRIX0lOVkFMSURfQ1RYVF9TSVpFPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX09QRVJBTkQiPlhQQVRIX0lOVkFMSURfT1BFUkFORDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IiPlhQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX1RZUEUiPlhQQVRIX0lOVkFMSURfVFlQRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfTE9DQVRJT05TRVQiPlhQQVRIX0xPQ0FUSU9OU0VUPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9NRU1PUllfRVJST1IiPlhQQVRIX01FTU9SWV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfTk9ERVNFVCI+WFBBVEhfTk9ERVNFVDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfTlVNQkVSIj5YUEFUSF9OVU1CRVI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX05VTUJFUl9FUlJPUiI+WFBBVEhfTlVNQkVSX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9QT0lOVCI+WFBBVEhfUE9JTlQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1JBTkdFIj5YUEFUSF9SQU5HRTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiI+WFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfU1RSSU5HIj5YUEFUSF9TVFJJTkc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1VOQ0xPU0VEX0VSUk9SIj5YUEFUSF9VTkNMT1NFRF9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfVU5ERUZJTkVEIj5YUEFUSF9VTkRFRklORUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiI+WFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUiI+WFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiI+WFBBVEhfVU5GSU5JU0hFRF9MSVRFUkFMX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiPlhQQVRIX1VOS05PV05fRlVOQ19FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfVVNFUlMiPlhQQVRIX1VTRVJTPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNYUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IiPlhQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfWFNMVF9UUkVFIj5YUEFUSF9YU0xUX1RSRUU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQVFJfUkVTT1VSQ0VfRVJST1IiPlhQVFJfUkVTT1VSQ0VfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI1hQVFJfU1VCX1JFU09VUkNFX0VSUk9SIj5YUFRSX1NVQl9SRVNPVVJDRV9FUlJPUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjWFBUUl9TWU5UQVhfRVJST1IiPlhQVFJfU1lOVEFYX0VSUk9SPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCNYUF9FUlJPUiI+WFBfRVJST1I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI1hQX0VSUk9SMCI+WFBfRVJST1IwPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgXzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGV4cG9ydHMuaHRtbCNfUkVFTlRSQU5UIj5fUkVFTlRSQU5UPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI19odG1sRWxlbURlc2MiPl9odG1sRWxlbURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjX2h0bWxFbnRpdHlEZXNjIj5faHRtbEVudGl0eURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI194bGlua0hhbmRsZXIiPl94bGlua0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEF0dHIiPl94bWxBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxBdHRyaWJ1dGUiPl94bWxBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbEJ1ZmZlciI+X3htbEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCNfeG1sQ2hMUmFuZ2UiPl94bWxDaExSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCNfeG1sQ2hSYW5nZUdyb3VwIj5feG1sQ2hSYW5nZUdyb3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI194bWxDaFNSYW5nZSI+X3htbENoU1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNfeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+X3htbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERPTVdyYXBDdHh0Ij5feG1sRE9NV3JhcEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbERvYyI+X3htbERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRHRkIj5feG1sRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxFbGVtZW50Ij5feG1sRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRWxlbWVudENvbnRlbnQiPl94bWxFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjX3htbEVudGl0eSI+X3htbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sRW51bWVyYXRpb24iPl94bWxFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjX3htbEVycm9yIj5feG1sRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjX3htbEdsb2JhbFN0YXRlIj5feG1sR2xvYmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjX3htbElEIj5feG1sSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI194bWxMb2NhdGlvblNldCI+X3htbExvY2F0aW9uU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb2RlIj5feG1sTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjX3htbE5vZGVTZXQiPl94bWxOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOb3RhdGlvbiI+X3htbE5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI194bWxOcyI+X3htbE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCNfeG1sT3V0cHV0QnVmZmVyIj5feG1sT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlckN0eHQiPl94bWxQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlcklucHV0Ij5feG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI194bWxQYXJzZXJJbnB1dEJ1ZmZlciI+X3htbFBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFBhcnNlck5vZGVJbmZvIj5feG1sUGFyc2VyTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNfeG1sUGFyc2VyTm9kZUluZm9TZXEiPl94bWxQYXJzZXJOb2RlSW5mb1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCNfeG1sUmVmIj5feG1sUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFNBWEhhbmRsZXIiPl94bWxTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjX3htbFNBWEhhbmRsZXJWMSI+X3htbFNBWEhhbmRsZXJWMTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI194bWxTQVhMb2NhdG9yIj5feG1sU0FYTG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hIj5feG1sU2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFBbm5vdCI+X3htbFNjaGVtYUFubm90PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFBdHRyaWJ1dGUiPl94bWxTY2hlbWFBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIj5feG1sU2NoZW1hQXR0cmlidXRlR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjX3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsiPl94bWxTY2hlbWFBdHRyaWJ1dGVMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFFbGVtZW50Ij5feG1sU2NoZW1hRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRmFjZXQiPl94bWxTY2hlbWFGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hRmFjZXRMaW5rIj5feG1sU2NoZW1hRmFjZXRMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFOb3RhdGlvbiI+X3htbFNjaGVtYU5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI194bWxTY2hlbWFUeXBlIj5feG1sU2NoZW1hVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hVHlwZUxpbmsiPl94bWxTY2hlbWFUeXBlTGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hV2lsZGNhcmQiPl94bWxTY2hlbWFXaWxkY2FyZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNfeG1sU2NoZW1hV2lsZGNhcmROcyI+X3htbFNjaGVtYVdpbGRjYXJkTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI194bWxTaGVsbEN0eHQiPl94bWxTaGVsbEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCNfeG1sVVJJIj5feG1sVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCNfeG1sVmFsaWRDdHh0Ij5feG1sVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhBeGlzIj5feG1sWFBhdGhBeGlzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhDb250ZXh0Ij5feG1sWFBhdGhDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhGdW5jdCI+X3htbFhQYXRoRnVuY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI194bWxYUGF0aE9iamVjdCI+X3htbFhQYXRoT2JqZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij5feG1sWFBhdGhQYXJzZXJDb250ZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhUeXBlIj5feG1sWFBhdGhUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCNfeG1sWFBhdGhWYXJpYWJsZSI+X3htbFhQYXRoVmFyaWFibGU8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBhOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGVEZWNsIj5hdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlRGVjbFNBWEZ1bmMiPmF0dHJpYnV0ZURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlU0FYRnVuYyI+YXR0cmlidXRlU0FYRnVuYzwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIGM6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNjZGF0YUJsb2NrIj5jZGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjY2RhdGFCbG9ja1NBWEZ1bmMiPmNkYXRhQmxvY2tTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2NoYXJhY3RlcnNTQVhGdW5jIj5jaGFyYWN0ZXJzU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NoZWNrTmFtZXNwYWNlIj5jaGVja05hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNjb21tZW50U0FYRnVuYyI+Y29tbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBkOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI2RvY2JEZWZhdWx0U0FYSGFuZGxlciI+ZG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI2RvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQiPmRvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRnJlZVBhcnNlckN0eHQiPmRvY2JGcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VDaHVuayI+ZG9jYlBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jIj5kb2NiUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jdW1lbnQiPmRvY2JQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZUZpbGUiPmRvY2JQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHQiPmRvY2JQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VySW5wdXQiPmRvY2JQYXJzZXJJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VySW5wdXRQdHIiPmRvY2JQYXJzZXJJbnB1dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlciI+ZG9jYlNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZURvYyI+ZG9jYlNBWFBhcnNlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZUZpbGUiPmRvY2JTQVhQYXJzZUZpbGU8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBlOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjZWxlbWVudERlY2wiPmVsZW1lbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZWxlbWVudERlY2xTQVhGdW5jIj5lbGVtZW50RGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCNlbXB0eUV4cCI+ZW1wdHlFeHA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbmREb2N1bWVudCI+ZW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmREb2N1bWVudFNBWEZ1bmMiPmVuZERvY3VtZW50U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2VuZEVsZW1lbnQiPmVuZEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50TnNTQVgyRnVuYyI+ZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50U0FYRnVuYyI+ZW5kRWxlbWVudFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNlbnRpdHlEZWNsIj5lbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNleHRlcm5hbFN1YnNldCI+ZXh0ZXJuYWxTdWJzZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNleHRlcm5hbFN1YnNldFNBWEZ1bmMiPmV4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIGY6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCNmb3JiaWRkZW5FeHAiPmZvcmJpZGRlbkV4cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBEYXRhQ2FsbGJhY2siPmZ0cERhdGFDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCNmdHBMaXN0Q2FsbGJhY2siPmZ0cExpc3RDYWxsYmFjazwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIGc6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXRDb2x1bW5OdW1iZXIiPmdldENvbHVtbk51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldEVudGl0eSI+Z2V0RW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZ2V0RW50aXR5U0FYRnVuYyI+Z2V0RW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldExpbmVOdW1iZXIiPmdldExpbmVOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNnZXROYW1lc3BhY2UiPmdldE5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFBhcmFtZXRlckVudGl0eSI+Z2V0UGFyYW1ldGVyRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYyI+Z2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFB1YmxpY0lkIj5nZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2dsb2JhbE5hbWVzcGFjZSI+Z2xvYmFsTmFtZXNwYWNlPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgaDo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2hhc0V4dGVybmFsU3Vic2V0Ij5oYXNFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2hhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaGFzSW50ZXJuYWxTdWJzZXQiPmhhc0ludGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jIj5oYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF0dHJBbGxvd2VkIj5odG1sQXR0ckFsbG93ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWREb2MiPmh0bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRGZCI+aHRtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRmlsZSI+aHRtbEN0eHRSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRJTyI+aHRtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkTWVtb3J5Ij5odG1sQ3R4dFJlYWRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZXNldCI+aHRtbEN0eHRSZXNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFVzZU9wdGlvbnMiPmh0bWxDdHh0VXNlT3B0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCNodG1sRGVmYXVsdFNBWEhhbmRsZXIiPmh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCNodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ij5odG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEZWZhdWx0U3ViZWxlbWVudCI+aHRtbERlZmF1bHRTdWJlbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0Ij5odG1sRG9jQ29udGVudER1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wIj5odG1sRG9jRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXBNZW1vcnkiPmh0bWxEb2NEdW1wTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCI+aHRtbERvY0R1bXBNZW1vcnlGb3JtYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2NQdHIiPmh0bWxFbGVtRGVzY1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudEFsbG93ZWRIZXJlIj5odG1sRWxlbWVudEFsbG93ZWRIZXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjIj5odG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudFN0YXR1c0hlcmUiPmh0bWxFbGVtZW50U3RhdHVzSGVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW5jb2RlRW50aXRpZXMiPmh0bWxFbmNvZGVFbnRpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5RGVzYyI+aHRtbEVudGl0eURlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2NQdHIiPmh0bWxFbnRpdHlEZXNjUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlMb29rdXAiPmh0bWxFbnRpdHlMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eVZhbHVlTG9va3VwIj5odG1sRW50aXR5VmFsdWVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEZyZWVQYXJzZXJDdHh0Ij5odG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxHZXRNZXRhRW5jb2RpbmciPmh0bWxHZXRNZXRhRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEhhbmRsZU9taXR0ZWRFbGVtIj5odG1sSGFuZGxlT21pdHRlZEVsZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNodG1sSW5pdEF1dG9DbG9zZSI+aHRtbEluaXRBdXRvQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCI+aHRtbElzQXV0b0Nsb3NlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbElzQm9vbGVhbkF0dHIiPmh0bWxJc0Jvb2xlYW5BdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxJc1NjcmlwdEF0dHJpYnV0ZSI+aHRtbElzU2NyaXB0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jIj5odG1sTmV3RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jTm9EdEQiPmh0bWxOZXdEb2NOb0R0RDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTmV3UGFyc2VyQ3R4dCI+aHRtbE5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcCI+aHRtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlIj5odG1sTm9kZUR1bXBGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiPmh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wT3V0cHV0Ij5odG1sTm9kZUR1bXBPdXRwdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIj5odG1sTm9kZVN0YXR1czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VDaGFyUmVmIj5odG1sUGFyc2VDaGFyUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUNodW5rIj5odG1sUGFyc2VDaHVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2MiPmh0bWxQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2N1bWVudCI+aHRtbFBhcnNlRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRWxlbWVudCI+aHRtbFBhcnNlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VGaWxlIj5odG1sUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0Ij5odG1sUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlcklucHV0Ij5odG1sUGFyc2VySW5wdXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlcklucHV0UHRyIj5odG1sUGFyc2VySW5wdXRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlck5vZGVJbmZvIj5odG1sUGFyc2VyTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlck9wdGlvbiI+aHRtbFBhcnNlck9wdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZERvYyI+aHRtbFJlYWREb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRGZCI+aHRtbFJlYWRGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZEZpbGUiPmh0bWxSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZElPIj5odG1sUmVhZElPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkTWVtb3J5Ij5odG1sUmVhZE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVxdWlyZWRBdHRycyI+aHRtbFJlcXVpcmVkQXR0cnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWEhhbmRsZXIiPmh0bWxTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhIYW5kbGVyUHRyIj5odG1sU0FYSGFuZGxlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2F2ZUZpbGUiPmh0bWxTYXZlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLUhUTUx0cmVlLmh0bWwjaHRtbFNhdmVGaWxlRW5jIj5odG1sU2F2ZUZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sI2h0bWxTYXZlRmlsZUZvcm1hdCI+aHRtbFNhdmVGaWxlRm9ybWF0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbCNodG1sU2V0TWV0YUVuY29kaW5nIj5odG1sU2V0TWV0YUVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTdGF0dXMiPmh0bWxTdGF0dXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFRhZ0xvb2t1cCI+aHRtbFRhZ0xvb2t1cDwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIGk6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlIj5pZ25vcmFibGVXaGl0ZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmMiPmlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCNpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMiPmluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2luaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXIiPmluaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0eG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFBvcCI+aW5wdXRQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFB1c2giPmlucHV0UHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI2ludGVybmFsU3Vic2V0Ij5pbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI2ludGVybmFsU3Vic2V0U0FYRnVuYyI+aW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjaXNTdGFuZGFsb25lIj5pc1N0YW5kYWxvbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNpc1N0YW5kYWxvbmVTQVhGdW5jIj5pc1N0YW5kYWxvbmVTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCNpc29sYXQxVG9VVEY4Ij5pc29sYXQxVG9VVEY4PC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgbjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25hbWVQb3AiPm5hbWVQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNuYW1lUHVzaCI+bmFtZVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNuYW1lc3BhY2VEZWNsIj5uYW1lc3BhY2VEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVBvcCI+bm9kZVBvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI25vZGVQdXNoIj5ub2RlUHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI25vdGF0aW9uRGVjbCI+bm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjbm90YXRpb25EZWNsU0FYRnVuYyI+bm90YXRpb25EZWNsU0FYRnVuYzwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIG86PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjb2xkWE1MV0Rjb21wYXRpYmlsaXR5Ij5vbGRYTUxXRGNvbXBhdGliaWxpdHk8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBwOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjcHJvY2Vzc2luZ0luc3RydWN0aW9uIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgcjo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWC5odG1sI3Jlc29sdmVFbnRpdHkiPnJlc29sdmVFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNyZXNvbHZlRW50aXR5U0FYRnVuYyI+cmVzb2x2ZUVudGl0eVNBWEZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciBzOjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yIj5zZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIj5zZXREb2N1bWVudExvY2F0b3JTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc2V0TmFtZXNwYWNlIj5zZXROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCNzdGFydERvY3VtZW50Ij5zdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnREb2N1bWVudFNBWEZ1bmMiPnN0YXJ0RG9jdW1lbnRTQVhGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYLmh0bWwjc3RhcnRFbGVtZW50Ij5zdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50U0FYRnVuYyI+c3RhcnRFbGVtZW50U0FYRnVuYzwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIHU6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC1TQVguaHRtbCN1bnBhcnNlZEVudGl0eURlY2wiPnVucGFyc2VkRW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3VucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMiPnVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmM8L2E+PGJyIC8+Cis8L3A+PGgyPkxldHRlciB2OjwvaDI+PHA+PGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVBvcCI+dmFsdWVQb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3ZhbHVlUHVzaCI+dmFsdWVQdXNoPC9hPjxiciAvPgorPC9wPjxoMj5MZXR0ZXIgdzo8L2gyPjxwPjxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3dhcm5pbmdTQVhGdW5jIj53YXJuaW5nU0FYRnVuYzwvYT48YnIgLz4KKzwvcD48aDI+TGV0dGVyIHg6PC9oMj48cD48YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rQWN0dWF0ZSI+eGxpbmtBY3R1YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rR2V0RGVmYXVsdERldGVjdCI+eGxpbmtHZXREZWZhdWx0RGV0ZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0dldERlZmF1bHRIYW5kbGVyIj54bGlua0dldERlZmF1bHRIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0hSZWYiPnhsaW5rSFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtIYW5kbGVyIj54bGlua0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rSGFuZGxlclB0ciI+eGxpbmtIYW5kbGVyUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rTm9kZURldGVjdEZ1bmMiPnhsaW5rTm9kZURldGVjdEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGxpbmsuaHRtbCN4bGlua1NldERlZmF1bHREZXRlY3QiPnhsaW5rU2V0RGVmYXVsdERldGVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTZXREZWZhdWx0SGFuZGxlciI+eGxpbmtTZXREZWZhdWx0SGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhsaW5rLmh0bWwjeGxpbmtTaG93Ij54bGlua1Nob3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rU2ltcGxlTGlua0Z1bmsiPnhsaW5rU2ltcGxlTGlua0Z1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rVGl0bGUiPnhsaW5rVGl0bGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bGluay5odG1sI3hsaW5rVHlwZSI+eGxpbmtUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nQWRkIj54bWxBQ2F0YWxvZ0FkZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ0R1bXAiPnhtbEFDYXRhbG9nRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1JlbW92ZSI+eG1sQUNhdGFsb2dSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlIj54bWxBQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljIj54bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZXNvbHZlVVJJIj54bWxBQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZEF0dHJpYnV0ZURlY2wiPnhtbEFkZEF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkQ2hpbGQiPnhtbEFkZENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZENoaWxkTGlzdCI+eG1sQWRkQ2hpbGRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxBZGREb2NFbnRpdHkiPnhtbEFkZERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQWRkRHRkRW50aXR5Ij54bWxBZGREdGRFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEFkZEVsZW1lbnREZWNsIj54bWxBZGRFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQWRkRW5jb2RpbmdBbGlhcyI+eG1sQWRkRW5jb2RpbmdBbGlhczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkSUQiPnhtbEFkZElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEFkZE5leHRTaWJsaW5nIj54bWxBZGROZXh0U2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQWRkTm90YXRpb25EZWNsIj54bWxBZGROb3RhdGlvbkRlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQWRkUHJldlNpYmxpbmciPnhtbEFkZFByZXZTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBZGRSZWYiPnhtbEFkZFJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBZGRTaWJsaW5nIj54bWxBZGRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxBbGxvY091dHB1dEJ1ZmZlciI+eG1sQWxsb2NPdXRwdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIiPnhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQXR0ciI+eG1sQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEF0dHJTZXJpYWxpemVUeHRDb250ZW50Ij54bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGUiPnhtbEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVEZWZhdWx0Ij54bWxBdHRyaWJ1dGVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZSI+eG1sQXR0cmlidXRlVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVUeXBlIj54bWxBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YSI+eG1sQXV0b21hdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YUdldEluaXRTdGF0ZSI+eG1sQXV0b21hdGFHZXRJbml0U3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhSXNEZXRlcm1pbmlzdCI+eG1sQXV0b21hdGFJc0RldGVybWluaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXIiPnhtbEF1dG9tYXRhTmV3Q291bnRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0Vwc2lsb24iPnhtbEF1dG9tYXRhTmV3RXBzaWxvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdOZWdUcmFucyI+eG1sQXV0b21hdGFOZXdOZWdUcmFuczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdTdGF0ZSI+eG1sQXV0b21hdGFOZXdTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIiPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlIj54bWxBdXRvbWF0YVNldEZpbmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGUiPnhtbEF1dG9tYXRhU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbEJvb2xUb1RleHQiPnhtbEJvb2xUb1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyIj54bWxCdWZmZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkIj54bWxCdWZmZXJBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWRkSGVhZCI+eG1sQnVmZmVyQWRkSGVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxCdWZmZXJBbGxvY1NjaGVtZSI+eG1sQnVmZmVyQWxsb2NTY2hlbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDQ2F0Ij54bWxCdWZmZXJDQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNhdCI+eG1sQnVmZmVyQ2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckNvbnRlbnQiPnhtbEJ1ZmZlckNvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlIj54bWxCdWZmZXJDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU2l6ZSI+eG1sQnVmZmVyQ3JlYXRlU2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJEdW1wIj54bWxCdWZmZXJEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckVtcHR5Ij54bWxCdWZmZXJFbXB0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJGcmVlIj54bWxCdWZmZXJGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckdyb3ciPnhtbEJ1ZmZlckdyb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyTGVuZ3RoIj54bWxCdWZmZXJMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUmVzaXplIj54bWxCdWZmZXJSZXNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJTaHJpbmsiPnhtbEJ1ZmZlclNocmluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZUNIQVIiPnhtbEJ1ZmZlcldyaXRlQ0hBUjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZUNoYXIiPnhtbEJ1ZmZlcldyaXRlQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyI+eG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQnVpbGRRTmFtZSI+eG1sQnVpbGRRTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFVSSSI+eG1sQnVpbGRVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxCeXRlQ29uc3VtZWQiPnhtbEJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiPnhtbEMxNE5Eb2NTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiPnhtbEMxNE5FeGVjdXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Jc1Zpc2libGVDYWxsYmFjayI+eG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtYzE0bi5odG1sI3htbEMxNE5Nb2RlIj54bWxDMTROTW9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENhbm9uaWNQYXRoIj54bWxDYW5vbmljUGF0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nIj54bWxDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZExvY2FsIj54bWxDYXRhbG9nQWRkTG9jYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FsbG93Ij54bWxDYXRhbG9nQWxsb3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0NsZWFudXAiPnhtbENhdGFsb2dDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dDb252ZXJ0Ij54bWxDYXRhbG9nQ29udmVydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRHVtcCI+eG1sQ2F0YWxvZ0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0ZyZWVMb2NhbCI+eG1sQ2F0YWxvZ0ZyZWVMb2NhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0RGVmYXVsdHMiPnhtbENhdGFsb2dHZXREZWZhdWx0czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nR2V0UHVibGljIj54bWxDYXRhbG9nR2V0UHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXRTeXN0ZW0iPnhtbENhdGFsb2dHZXRTeXN0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0lzRW1wdHkiPnhtbENhdGFsb2dJc0VtcHR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dMb2NhbFJlc29sdmUiPnhtbENhdGFsb2dMb2NhbFJlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHJlZmVyIj54bWxDYXRhbG9nUHJlZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1JlbW92ZSI+eG1sQ2F0YWxvZ1JlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZSI+eG1sQ2F0YWxvZ1Jlc29sdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPnhtbENhdGFsb2dSZXNvbHZlUHVibGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlYnVnIj54bWxDYXRhbG9nU2V0RGVidWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoTFJhbmdlIj54bWxDaExSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaExSYW5nZVB0ciI+eG1sQ2hMUmFuZ2VQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hSYW5nZUdyb3VwIj54bWxDaFJhbmdlR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hSYW5nZUdyb3VwUHRyIj54bWxDaFJhbmdlR3JvdXBQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hTUmFuZ2UiPnhtbENoU1JhbmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoU1JhbmdlUHRyIj54bWxDaFNSYW5nZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNDbG9zZUZ1bmMiPnhtbENoYXJFbmNDbG9zZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNGaXJzdExpbmUiPnhtbENoYXJFbmNGaXJzdExpbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNJbkZ1bmMiPnhtbENoYXJFbmNJbkZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbENoYXJJblJhbmdlIj54bWxDaGFySW5SYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXJTdHJkdXAiPnhtbENoYXJTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyU3RybmR1cCI+eG1sQ2hhclN0cm5kdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrRmlsZW5hbWUiPnhtbENoZWNrRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENoZWNrSFRUUElucHV0Ij54bWxDaGVja0hUVFBJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENoZWNrTGFuZ3VhZ2VJRCI+eG1sQ2hlY2tMYW5ndWFnZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwjeG1sQ2hlY2tWZXJzaW9uIj54bWxDaGVja1ZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ2hpbGRFbGVtZW50Q291bnQiPnhtbENoaWxkRWxlbWVudENvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENoaWxkcmVuTm9kZSI+eG1sQ2hpbGRyZW5Ob2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyI+eG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxDbGVhbnVwR2xvYmFscyI+eG1sQ2xlYW51cEdsb2JhbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbENsZWFudXBJbnB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sQ2xlYW51cE1lbW9yeSI+eG1sQ2xlYW51cE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cE91dHB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiPnhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sQ2xlYW51cFRocmVhZHMiPnhtbENsZWFudXBUaHJlYWRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ2xlYXJOb2RlSW5mb1NlcSI+eG1sQ2xlYXJOb2RlSW5mb1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENsZWFyUGFyc2VyQ3R4dCI+eG1sQ2xlYXJQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbENvbnZlcnRTR01MQ2F0YWxvZyI+eG1sQ29udmVydFNHTUxDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5QXR0cmlidXRlVGFibGUiPnhtbENvcHlBdHRyaWJ1dGVUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENvcHlDaGFyIj54bWxDb3B5Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENvcHlDaGFyTXVsdGlCeXRlIj54bWxDb3B5Q2hhck11bHRpQnl0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQiPnhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5RHRkIj54bWxDb3B5RHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RWxlbWVudENvbnRlbnQiPnhtbENvcHlFbGVtZW50Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRUYWJsZSI+eG1sQ29weUVsZW1lbnRUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQ29weUVudGl0aWVzVGFibGUiPnhtbENvcHlFbnRpdGllc1RhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5RW51bWVyYXRpb24iPnhtbENvcHlFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sQ29weUVycm9yIj54bWxDb3B5RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5hbWVzcGFjZSI+eG1sQ29weU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxDb3B5TmFtZXNwYWNlTGlzdCI+eG1sQ29weU5hbWVzcGFjZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weU5vZGUiPnhtbENvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlOb2RlTGlzdCI+eG1sQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxDb3B5Tm90YXRpb25UYWJsZSI+eG1sQ29weU5vdGF0aW9uVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sQ29weVByb3AiPnhtbENvcHlQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENvcHlQcm9wTGlzdCI+eG1sQ29weVByb3BMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sQ3JlYXRlRW50aXRpZXNUYWJsZSI+eG1sQ3JlYXRlRW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQiPnhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbENyZWF0ZUVudW1lcmF0aW9uIj54bWxDcmVhdGVFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij54bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZUlPUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlSU9QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbENyZWF0ZUludFN1YnNldCI+eG1sQ3JlYXRlSW50U3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCI+eG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbENyZWF0ZVVSSSI+eG1sQ3JlYXRlVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sQ3R4dEdldExhc3RFcnJvciI+eG1sQ3R4dEdldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRG9jIj54bWxDdHh0UmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmQiPnhtbEN0eHRSZWFkRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZEZpbGUiPnhtbEN0eHRSZWFkRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEN0eHRSZWFkSU8iPnhtbEN0eHRSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZE1lbW9yeSI+eG1sQ3R4dFJlYWRNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVzZXQiPnhtbEN0eHRSZXNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sQ3R4dFJlc2V0TGFzdEVycm9yIj54bWxDdHh0UmVzZXRMYXN0RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxDdHh0UmVzZXRQdXNoIj54bWxDdHh0UmVzZXRQdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sQ3R4dFVzZU9wdGlvbnMiPnhtbEN0eHRVc2VPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiI+eG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dCI+eG1sRE9NV3JhcEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHRQdHIiPnhtbERPTVdyYXBDdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBGcmVlQ3R4dCI+eG1sRE9NV3JhcEZyZWVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBOZXdDdHh0Ij54bWxET01XcmFwTmV3Q3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQiPnhtbERlYnVnQ2hlY2tEb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ciI+eG1sRGVidWdEdW1wQXR0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wQXR0ckxpc3QiPnhtbERlYnVnRHVtcEF0dHJMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEVEQiPnhtbERlYnVnRHVtcERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRG9jdW1lbnQiPnhtbERlYnVnRHVtcERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQiPnhtbERlYnVnRHVtcERvY3VtZW50SGVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wRW50aXRpZXMiPnhtbERlYnVnRHVtcEVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlIj54bWxEZWJ1Z0R1bXBOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBOb2RlTGlzdCI+eG1sRGVidWdEdW1wTm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE9uZU5vZGUiPnhtbERlYnVnRHVtcE9uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcFN0cmluZyI+eG1sRGVidWdEdW1wU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRGVjb2RlRW50aXRpZXMiPnhtbERlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbERlZmF1bHRCdWZmZXJTaXplIj54bWxEZWZhdWx0QnVmZmVyU2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZWZhdWx0U0FYSGFuZGxlciI+eG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ij54bWxEZWZhdWx0U0FYSGFuZGxlckluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sRGVmYXVsdFNBWExvY2F0b3IiPnhtbERlZmF1bHRTQVhMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxEZWxFbmNvZGluZ0FsaWFzIj54bWxEZWxFbmNvZGluZ0FsaWFzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlIj54bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sRGV0ZWN0Q2hhckVuY29kaW5nIj54bWxEZXRlY3RDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdCI+eG1sRGljdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Q2xlYW51cCI+eG1sRGljdENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZSI+eG1sRGljdENyZWF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Q3JlYXRlU3ViIj54bWxEaWN0Q3JlYXRlU3ViPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RFeGlzdHMiPnhtbERpY3RFeGlzdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdEZyZWUiPnhtbERpY3RGcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RMb29rdXAiPnhtbERpY3RMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdE93bnMiPnhtbERpY3RPd25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFFMb29rdXAiPnhtbERpY3RRTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGljdC5odG1sI3htbERpY3RSZWZlcmVuY2UiPnhtbERpY3RSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFNpemUiPnhtbERpY3RTaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbERsbE1haW4iPnhtbERsbE1haW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIj54bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jIj54bWxEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGUiPnhtbERvY0NvcHlOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0NvcHlOb2RlTGlzdCI+eG1sRG9jQ29weU5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXAiPnhtbERvY0R1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcEZvcm1hdE1lbW9yeSI+eG1sRG9jRHVtcEZvcm1hdE1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0R1bXBNZW1vcnkiPnhtbERvY0R1bXBNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeUVuYyI+eG1sRG9jRHVtcE1lbW9yeUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NGb3JtYXREdW1wIj54bWxEb2NGb3JtYXREdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY0dldFJvb3RFbGVtZW50Ij54bWxEb2NHZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQcm9wZXJ0aWVzIj54bWxEb2NQcm9wZXJ0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbERvY1NldFJvb3RFbGVtZW50Ij54bWxEb2NTZXRSb290RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEdGQiPnhtbER0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcEF0dHJpYnV0ZURlY2wiPnhtbER1bXBBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wQXR0cmlidXRlVGFibGUiPnhtbER1bXBBdHRyaWJ1dGVUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRHVtcEVsZW1lbnREZWNsIj54bWxEdW1wRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbER1bXBFbGVtZW50VGFibGUiPnhtbER1bXBFbGVtZW50VGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbER1bXBFbnRpdGllc1RhYmxlIj54bWxEdW1wRW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRHVtcEVudGl0eURlY2wiPnhtbER1bXBFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wTm90YXRpb25EZWNsIj54bWxEdW1wTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxEdW1wTm90YXRpb25UYWJsZSI+eG1sRHVtcE5vdGF0aW9uVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRWxlbUR1bXAiPnhtbEVsZW1EdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnQiPnhtbEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnQiPnhtbEVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50T2NjdXIiPnhtbEVsZW1lbnRDb250ZW50T2NjdXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50VHlwZSI+eG1sRWxlbWVudENvbnRlbnRUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZSI+eG1sRWxlbWVudFRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZSI+eG1sRWxlbWVudFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGVWYWwiPnhtbEVsZW1lbnRUeXBlVmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllcyI+eG1sRW5jb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlU3BlY2lhbENoYXJzIj54bWxFbmNvZGVTcGVjaWFsQ2hhcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGUiPnhtbEVudGl0aWVzVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5Ij54bWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdHlUeXBlIj54bWxFbnRpdHlUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uIj54bWxFbnVtZXJhdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFcnJNZW1vcnkiPnhtbEVyck1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sRXJyb3IiPnhtbEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxFcnJvckRvbWFpbiI+eG1sRXJyb3JEb21haW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yTGV2ZWwiPnhtbEVycm9yTGV2ZWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHQiPnhtbEV4cEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0TmJDb25zIj54bWxFeHBDdHh0TmJDb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dE5iTm9kZXMiPnhtbEV4cEN0eHROYk5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cER1bXAiPnhtbEV4cER1bXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiPnhtbEV4cEV4cERlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEZyZWUiPnhtbEV4cEZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBGcmVlQ3R4dCI+eG1sRXhwRnJlZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRMYW5ndWFnZSI+eG1sRXhwR2V0TGFuZ3VhZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBHZXRTdGFydCI+eG1sRXhwR2V0U3RhcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBJc05pbGxhYmxlIj54bWxFeHBJc05pbGxhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTWF4VG9rZW4iPnhtbEV4cE1heFRva2VuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTmV3QXRvbSI+eG1sRXhwTmV3QXRvbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0N0eHQiPnhtbEV4cE5ld0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdPciI+eG1sRXhwTmV3T3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiPnhtbEV4cE5ld1NlcTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGUiPnhtbEV4cE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVR5cGUiPnhtbEV4cE5vZGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwUmVmIj54bWxFeHBSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBTdHJpbmdEZXJpdmUiPnhtbEV4cFN0cmluZ0Rlcml2ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cFN1YnN1bWUiPnhtbEV4cFN1YnN1bWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxGZWF0dXJlIj54bWxGZWF0dXJlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxGaWxlQ2xvc2UiPnhtbEZpbGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZU1hdGNoIj54bWxGaWxlTWF0Y2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZpbGVPcGVuIj54bWxGaWxlT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sRmlsZVJlYWQiPnhtbEZpbGVSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRmlyc3RFbGVtZW50Q2hpbGQiPnhtbEZpcnN0RWxlbWVudENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbEZyZWUiPnhtbEZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVBdHRyaWJ1dGVUYWJsZSI+eG1sRnJlZUF0dHJpYnV0ZVRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxGcmVlQXV0b21hdGEiPnhtbEZyZWVBdXRvbWF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxGcmVlQ2F0YWxvZyI+eG1sRnJlZUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZURvYyI+eG1sRnJlZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZURvY0VsZW1lbnRDb250ZW50Ij54bWxGcmVlRG9jRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZUR0ZCI+eG1sRnJlZUR0ZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVsZW1lbnRDb250ZW50Ij54bWxGcmVlRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVFbGVtZW50VGFibGUiPnhtbEZyZWVFbGVtZW50VGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEZyZWVFbnRpdGllc1RhYmxlIj54bWxGcmVlRW50aXRpZXNUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZUVudW1lcmF0aW9uIj54bWxGcmVlRW51bWVyYXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEZyZWVJRFRhYmxlIj54bWxGcmVlSURUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEZyZWVJbnB1dFN0cmVhbSI+eG1sRnJlZUlucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEZyZWVNdXRleCI+eG1sRnJlZU11dGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOb2RlIj54bWxGcmVlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlTm9kZUxpc3QiPnhtbEZyZWVOb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZU5vdGF0aW9uVGFibGUiPnhtbEZyZWVOb3RhdGlvblRhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOcyI+eG1sRnJlZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEZyZWVOc0xpc3QiPnhtbEZyZWVOc0xpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxGcmVlUGFyc2VyQ3R4dCI+eG1sRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sRnJlZVBhcnNlcklucHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbEZyZWVQYXR0ZXJuIj54bWxGcmVlUGF0dGVybjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxGcmVlUGF0dGVybkxpc3QiPnhtbEZyZWVQYXR0ZXJuTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxGcmVlUHJvcCI+eG1sRnJlZVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sRnJlZVByb3BMaXN0Ij54bWxGcmVlUHJvcExpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sRnJlZVJNdXRleCI+eG1sRnJlZVJNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZVJlZlRhYmxlIj54bWxGcmVlUmVmVGFibGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sRnJlZVN0cmVhbUN0eHQiPnhtbEZyZWVTdHJlYW1DdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sRnJlZVRleHRSZWFkZXIiPnhtbEZyZWVUZXh0UmVhZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sRnJlZVRleHRXcml0ZXIiPnhtbEZyZWVUZXh0V3JpdGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sRnJlZVVSSSI+eG1sRnJlZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sRnJlZVZhbGlkQ3R4dCI+eG1sRnJlZVZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtU2V0dXAiPnhtbEdjTWVtU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sR2VuZXJpY0Vycm9yIj54bWxHZW5lcmljRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sR2VuZXJpY0Vycm9yQ29udGV4dCI+eG1sR2VuZXJpY0Vycm9yQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdOYW1lIj54bWxHZXRDaGFyRW5jb2RpbmdOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldENvbXByZXNzTW9kZSI+eG1sR2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldERvY0NvbXByZXNzTW9kZSI+eG1sR2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXREb2NFbnRpdHkiPnhtbEdldERvY0VudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkQXR0ckRlc2MiPnhtbEdldER0ZEF0dHJEZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGRFbGVtZW50RGVzYyI+eG1sR2V0RHRkRWxlbWVudERlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEdldER0ZEVudGl0eSI+eG1sR2V0RHRkRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXREdGROb3RhdGlvbkRlc2MiPnhtbEdldER0ZE5vdGF0aW9uRGVzYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUF0dHJEZXNjIj54bWxHZXREdGRRQXR0ckRlc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbEdldER0ZFFFbGVtZW50RGVzYyI+eG1sR2V0RHRkUUVsZW1lbnREZXNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxHZXRFbmNvZGluZ0FsaWFzIj54bWxHZXRFbmNvZGluZ0FsaWFzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZSI+eG1sR2V0RmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEdldEZlYXR1cmVzTGlzdCI+eG1sR2V0RmVhdHVyZXNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEdldEdsb2JhbFN0YXRlIj54bWxHZXRHbG9iYWxTdGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sR2V0SUQiPnhtbEdldElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldEludFN1YnNldCI+eG1sR2V0SW50U3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldExhc3RDaGlsZCI+eG1sR2V0TGFzdENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxHZXRMYXN0RXJyb3IiPnhtbEdldExhc3RFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRMaW5lTm8iPnhtbEdldExpbmVObzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sR2V0Tm9kZVBhdGgiPnhtbEdldE5vZGVQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zTGlzdCI+eG1sR2V0TnNMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbEdldE5zUHJvcCI+eG1sR2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxHZXRQYXJhbWV0ZXJFbnRpdHkiPnhtbEdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwjeG1sR2V0UHJlZGVmaW5lZEVudGl0eSI+eG1sR2V0UHJlZGVmaW5lZEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxHZXRSZWZzIj54bWxHZXRSZWZzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEdldFRocmVhZElkIj54bWxHZXRUaHJlYWRJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbEdldFVURjhDaGFyIj54bWxHZXRVVEY4Q2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSI+eG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sR2xvYmFsU3RhdGUiPnhtbEdsb2JhbFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbEdsb2JhbFN0YXRlUHRyIj54bWxHbG9iYWxTdGF0ZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbEhhbmRsZUVudGl0eSI+eG1sSGFuZGxlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSGFzRmVhdHVyZSI+eG1sSGFzRmVhdHVyZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeSI+eG1sSGFzaEFkZEVudHJ5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTIiPnhtbEhhc2hBZGRFbnRyeTI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MyI+eG1sSGFzaEFkZEVudHJ5MzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ29waWVyIj54bWxIYXNoQ29waWVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDb3B5Ij54bWxIYXNoQ29weTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ3JlYXRlIj54bWxIYXNoQ3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hDcmVhdGVEaWN0Ij54bWxIYXNoQ3JlYXRlRGljdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRnJlZSI+eG1sSGFzaEZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaExvb2t1cCI+eG1sSGFzaExvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMiI+eG1sSGFzaExvb2t1cDI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaExvb2t1cDMiPnhtbEhhc2hMb29rdXAzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hRTG9va3VwIj54bWxIYXNoUUxvb2t1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDIiPnhtbEhhc2hRTG9va3VwMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDMiPnhtbEhhc2hRTG9va3VwMzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkiPnhtbEhhc2hSZW1vdmVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkyIj54bWxIYXNoUmVtb3ZlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hSZW1vdmVFbnRyeTMiPnhtbEhhc2hSZW1vdmVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW4iPnhtbEhhc2hTY2FuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuMyI+eG1sSGFzaFNjYW4zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuRnVsbCI+eG1sSGFzaFNjYW5GdWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FuRnVsbDMiPnhtbEhhc2hTY2FuRnVsbDM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXIiPnhtbEhhc2hTY2FubmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTaXplIj54bWxIYXNoU2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGUiPnhtbEhhc2hUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIj54bWxIYXNoVXBkYXRlRW50cnkyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiPnhtbEhhc2hVcGRhdGVFbnRyeTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSUQiPnhtbElEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElEUHRyIj54bWxJRFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSURUYWJsZSI+eG1sSURUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sSURUYWJsZVB0ciI+eG1sSURUYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBDbG9zZSI+eG1sSU9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBNYXRjaCI+eG1sSU9GVFBNYXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9GVFBPcGVuIj54bWxJT0ZUUE9wZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPRlRQUmVhZCI+eG1sSU9GVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBDbG9zZSI+eG1sSU9IVFRQQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElPSFRUUE1hdGNoIj54bWxJT0hUVFBNYXRjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlbiI+eG1sSU9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSU9IVFRQT3BlblciPnhtbElPSFRUUE9wZW5XPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJT0hUVFBSZWFkIj54bWxJT0hUVFBSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSU9QYXJzZURURCI+eG1sSU9QYXJzZURURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxJbmRlbnRUcmVlT3V0cHV0Ij54bWxJbmRlbnRUcmVlT3V0cHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxJbml0R2xvYmFscyI+eG1sSW5pdEdsb2JhbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxJbml0TWVtb3J5Ij54bWxJbml0TWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdE5vZGVJbmZvU2VxIj54bWxJbml0Tm9kZUluZm9TZXE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxJbml0UGFyc2VyIj54bWxJbml0UGFyc2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sSW5pdFBhcnNlckN0eHQiPnhtbEluaXRQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbEluaXRUaHJlYWRzIj54bWxJbml0VGhyZWFkczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxJbml0aWFsaXplQ2F0YWxvZyI+eG1sSW5pdGlhbGl6ZUNhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlIj54bWxJbml0aWFsaXplR2xvYmFsU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMiPnhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siPnhtbElucHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRPcGVuQ2FsbGJhY2siPnhtbElucHV0T3BlbkNhbGxiYWNrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhciI+eG1sSXNCYXNlQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyR3JvdXAiPnhtbElzQmFzZUNoYXJHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyUSI+eG1sSXNCYXNlQ2hhclE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhcl9jaCI+eG1sSXNCYXNlQ2hhcl9jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rIj54bWxJc0JsYW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbElzQmxhbmtOb2RlIj54bWxJc0JsYW5rTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rUSI+eG1sSXNCbGFua1E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFua19jaCI+eG1sSXNCbGFua19jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXIiPnhtbElzQ2hhcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJHcm91cCI+eG1sSXNDaGFyR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyUSI+eG1sSXNDaGFyUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJfY2giPnhtbElzQ2hhcl9jaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZyI+eG1sSXNDb21iaW5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNDb21iaW5pbmdHcm91cCI+eG1sSXNDb21iaW5pbmdHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZ1EiPnhtbElzQ29tYmluaW5nUTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0Ij54bWxJc0RpZ2l0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXRHcm91cCI+eG1sSXNEaWdpdEdyb3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRGlnaXRRIj54bWxJc0RpZ2l0UTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0X2NoIj54bWxJc0RpZ2l0X2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXIiPnhtbElzRXh0ZW5kZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNFeHRlbmRlckdyb3VwIj54bWxJc0V4dGVuZGVyR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNFeHRlbmRlclEiPnhtbElzRXh0ZW5kZXJRPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJfY2giPnhtbElzRXh0ZW5kZXJfY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzSUQiPnhtbElzSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpYyI+eG1sSXNJZGVvZ3JhcGhpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0lkZW9ncmFwaGljR3JvdXAiPnhtbElzSWRlb2dyYXBoaWNHcm91cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0lkZW9ncmFwaGljUSI+eG1sSXNJZGVvZ3JhcGhpY1E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxJc0xldHRlciI+eG1sSXNMZXR0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sSXNNYWluVGhyZWFkIj54bWxJc01haW5UaHJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbElzTWl4ZWRFbGVtZW50Ij54bWxJc01peGVkRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhciI+eG1sSXNQdWJpZENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXJRIj54bWxJc1B1YmlkQ2hhclE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXJfY2giPnhtbElzUHViaWRDaGFyX2NoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyX3RhYiI+eG1sSXNQdWJpZENoYXJfdGFiPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxJc1JlZiI+eG1sSXNSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sSXNYSFRNTCI+eG1sSXNYSFRNTDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlIj54bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sTGFzdEVycm9yIj54bWxMYXN0RXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSI+eG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGluayI+eG1sTGluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaW5rR2V0RGF0YSI+eG1sTGlua0dldERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlua1B0ciI+eG1sTGlua1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0Ij54bWxMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RBcHBlbmQiPnhtbExpc3RBcHBlbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENsZWFyIj54bWxMaXN0Q2xlYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdENvcHkiPnhtbExpc3RDb3B5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RDcmVhdGUiPnhtbExpc3RDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERhdGFDb21wYXJlIj54bWxMaXN0RGF0YUNvbXBhcmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERlYWxsb2NhdG9yIj54bWxMaXN0RGVhbGxvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdERlbGV0ZSI+eG1sTGlzdERlbGV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RHVwIj54bWxMaXN0RHVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RFbXB0eSI+eG1sTGlzdEVtcHR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RFbmQiPnhtbExpc3RFbmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEZyb250Ij54bWxMaXN0RnJvbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdEluc2VydCI+eG1sTGlzdEluc2VydDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0TWVyZ2UiPnhtbExpc3RNZXJnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UG9wQmFjayI+eG1sTGlzdFBvcEJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFBvcEZyb250Ij54bWxMaXN0UG9wRnJvbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHVzaEJhY2siPnhtbExpc3RQdXNoQmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHVzaEZyb250Ij54bWxMaXN0UHVzaEZyb250PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZW1vdmVBbGwiPnhtbExpc3RSZW1vdmVBbGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUZpcnN0Ij54bWxMaXN0UmVtb3ZlRmlyc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUxhc3QiPnhtbExpc3RSZW1vdmVMYXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RSZXZlcnNlIj54bWxMaXN0UmV2ZXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVNlYXJjaCI+eG1sTGlzdFJldmVyc2VTZWFyY2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFJldmVyc2VXYWxrIj54bWxMaXN0UmV2ZXJzZVdhbGs8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNlYXJjaCI+eG1sTGlzdFNlYXJjaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0U2l6ZSI+eG1sTGlzdFNpemU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFNvcnQiPnhtbExpc3RTb3J0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0V2Fsa2VyIj54bWxMaXN0V2Fsa2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRBQ2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9nIj54bWxMb2FkQ2F0YWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZ3MiPnhtbExvYWRDYXRhbG9nczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIj54bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sTG9hZEV4dGVybmFsRW50aXR5Ij54bWxMb2FkRXh0ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldCI+eG1sTG9jYXRpb25TZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxMb2NrTGlicmFyeSI+eG1sTG9ja0xpYnJhcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbExzQ291bnROb2RlIj54bWxMc0NvdW50Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sTHNPbmVOb2RlIj54bWxMc09uZU5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sTWFsbG9jIj54bWxNYWxsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sTWFsbG9jQXRvbWljIj54bWxNYWxsb2NBdG9taWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NBdG9taWNMb2MiPnhtbE1hbGxvY0F0b21pY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NMb2MiPnhtbE1hbGxvY0xvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUJsb2NrcyI+eG1sTWVtQmxvY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRGlzcGxheSI+eG1sTWVtRGlzcGxheTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbURpc3BsYXlMYXN0Ij54bWxNZW1EaXNwbGF5TGFzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbUZyZWUiPnhtbE1lbUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1HZXQiPnhtbE1lbUdldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbU1hbGxvYyI+eG1sTWVtTWFsbG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtUmVhbGxvYyI+eG1sTWVtUmVhbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVNob3ciPnhtbE1lbVNob3c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sTWVtU3RyZHVwIj54bWxNZW1TdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1TdHJkdXBMb2MiPnhtbE1lbVN0cmR1cExvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1lbVVzZWQiPnhtbE1lbVVzZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNZW1vcnlEdW1wIj54bWxNZW1vcnlEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWVtb3J5U3RyZHVwIj54bWxNZW1vcnlTdHJkdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGUiPnhtbE1vZHVsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUNsb3NlIj54bWxNb2R1bGVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUZyZWUiPnhtbE1vZHVsZUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcGVuIj54bWxNb2R1bGVPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlT3B0aW9uIj54bWxNb2R1bGVPcHRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVN5bWJvbCI+eG1sTW9kdWxlU3ltYm9sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE11dGV4Ij54bWxNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleExvY2siPnhtbE11dGV4TG9jazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhVbmxvY2siPnhtbE11dGV4VW5sb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUiPnhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOU0RlZiI+eG1sTmFtZXNwYWNlUGFyc2VOU0RlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiPnhtbE5hbWVzcGFjZVBhcnNlUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UiPnhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbGVhbnVwIj54bWxOYW5vRlRQQ2xlYW51cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2UiPnhtbE5hbm9GVFBDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uIj54bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDb25uZWN0Ij54bWxOYW5vRlRQQ29ubmVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ29ubmVjdFRvIj54bWxOYW5vRlRQQ29ubmVjdFRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDd2QiPnhtbE5hbm9GVFBDd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUERlbGUiPnhtbE5hbm9GVFBEZWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBGcmVlQ3R4dCI+eG1sTmFub0ZUUEZyZWVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXQiPnhtbE5hbm9GVFBHZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldENvbm5lY3Rpb24iPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRSZXNwb25zZSI+eG1sTmFub0ZUUEdldFJlc3BvbnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRTb2NrZXQiPnhtbE5hbm9GVFBHZXRTb2NrZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEluaXQiPnhtbE5hbm9GVFBJbml0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBMaXN0Ij54bWxOYW5vRlRQTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTmV3Q3R4dCI+eG1sTmFub0ZUUE5ld0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUE9wZW4iPnhtbE5hbm9GVFBPcGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2Z0cC5odG1sI3htbE5hbm9GVFBRdWl0Ij54bWxOYW5vRlRQUXVpdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUmVhZCI+eG1sTmFub0ZUUFJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFNjYW5Qcm94eSI+eG1sTmFub0ZUUFNjYW5Qcm94eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEF1dGhIZWFkZXIiPnhtbE5hbm9IVFRQQXV0aEhlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDbGVhbnVwIj54bWxOYW5vSFRUUENsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQ2xvc2UiPnhtbE5hbm9IVFRQQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQ29udGVudExlbmd0aCI+eG1sTmFub0hUVFBDb250ZW50TGVuZ3RoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEVuY29kaW5nIj54bWxOYW5vSFRUUEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIj54bWxOYW5vSFRUUEZldGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEluaXQiPnhtbE5hbm9IVFRQSW5pdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBNZXRob2QiPnhtbE5hbm9IVFRQTWV0aG9kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1pbWVUeXBlIj54bWxOYW5vSFRUUE1pbWVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE9wZW4iPnhtbE5hbm9IVFRQT3BlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBPcGVuUmVkaXIiPnhtbE5hbm9IVFRQT3BlblJlZGlyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFJlYWQiPnhtbE5hbm9IVFRQUmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZWRpciI+eG1sTmFub0hUVFBSZWRpcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZXR1cm5Db2RlIj54bWxOYW5vSFRUUFJldHVybkNvZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQU2F2ZSI+eG1sTmFub0hUVFBTYXZlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFNjYW5Qcm94eSI+eG1sTmFub0hUVFBTY2FuUHJveHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbE5ld0F1dG9tYXRhIj54bWxOZXdBdXRvbWF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDRGF0YUJsb2NrIj54bWxOZXdDRGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbE5ld0NhdGFsb2ciPnhtbE5ld0NhdGFsb2c8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q2hhclJlZiI+eG1sTmV3Q2hhclJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdDaGlsZCI+eG1sTmV3Q2hpbGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3Q29tbWVudCI+eG1sTmV3Q29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2MiPnhtbE5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NDb21tZW50Ij54bWxOZXdEb2NDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdEb2NFbGVtZW50Q29udGVudCI+eG1sTmV3RG9jRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jRnJhZ21lbnQiPnhtbE5ld0RvY0ZyYWdtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY05vZGUiPnhtbE5ld0RvY05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1BJIj54bWxOZXdEb2NQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NQcm9wIj54bWxOZXdEb2NQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0RvY1Jhd05vZGUiPnhtbE5ld0RvY1Jhd05vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3RG9jVGV4dCI+eG1sTmV3RG9jVGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdEb2NUZXh0TGVuIj54bWxOZXdEb2NUZXh0TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0R0ZCI+eG1sTmV3RHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxOZXdFbGVtZW50Q29udGVudCI+eG1sTmV3RWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1lbnRpdGllcy5odG1sI3htbE5ld0VudGl0eSI+eG1sTmV3RW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3RW50aXR5SW5wdXRTdHJlYW0iPnhtbE5ld0VudGl0eUlucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld0dsb2JhbE5zIj54bWxOZXdHbG9iYWxOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iPnhtbE5ld0lPSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdJbnB1dEZyb21GaWxlIj54bWxOZXdJbnB1dEZyb21GaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3SW5wdXRTdHJlYW0iPnhtbE5ld0lucHV0U3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbE5ld011dGV4Ij54bWxOZXdNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOb2RlIj54bWxOZXdOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld05vZGVFYXROYW1lIj54bWxOZXdOb2RlRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdOcyI+eG1sTmV3TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3TnNQcm9wIj54bWxOZXdOc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3TnNQcm9wRWF0TmFtZSI+eG1sTmV3TnNQcm9wRWF0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdQSSI+eG1sTmV3UEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxOZXdQYXJzZXJDdHh0Ij54bWxOZXdQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5ld1Byb3AiPnhtbE5ld1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10aHJlYWRzLmh0bWwjeG1sTmV3Uk11dGV4Ij54bWxOZXdSTXV0ZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3UmVmZXJlbmNlIj54bWxOZXdSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSI+eG1sTmV3U3RyaW5nSW5wdXRTdHJlYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTmV3VGV4dCI+eG1sTmV3VGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOZXdUZXh0TGVuIj54bWxOZXdUZXh0TGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sTmV3VGV4dFJlYWRlciI+eG1sTmV3VGV4dFJlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbE5ld1RleHRSZWFkZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlciI+eG1sTmV3VGV4dFdyaXRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJEb2MiPnhtbE5ld1RleHRXcml0ZXJEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUiPnhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJNZW1vcnkiPnhtbE5ld1RleHRXcml0ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyVHJlZSI+eG1sTmV3VGV4dFdyaXRlclRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbE5ld1ZhbGlkQ3R4dCI+eG1sTmV3VmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV4dENoYXIiPnhtbE5leHRDaGFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5leHRFbGVtZW50U2libGluZyI+eG1sTmV4dEVsZW1lbnRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGUiPnhtbE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnQiPnhtbE5vZGVBZGRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVBZGRDb250ZW50TGVuIj54bWxOb2RlQWRkQ29udGVudExlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlQnVmR2V0Q29udGVudCI+eG1sTm9kZUJ1ZkdldENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUR1bXAiPnhtbE5vZGVEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVEdW1wT3V0cHV0Ij54bWxOb2RlRHVtcE91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUdldENvbnRlbnQiPnhtbE5vZGVHZXRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZUdldFNwYWNlUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUlzVGV4dCI+eG1sTm9kZUlzVGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZUxpc3RHZXRTdHJpbmciPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXQiPnhtbE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldEJhc2UiPnhtbE5vZGVTZXRCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVNldExhbmciPnhtbE5vZGVTZXRMYW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vZGVTZXROYW1lIj54bWxOb2RlU2V0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZVNldFNwYWNlUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxOb3JtYWxpemVVUklQYXRoIj54bWxOb3JtYWxpemVVUklQYXRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCI+eG1sTm9ybWFsaXplV2luZG93c1BhdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTm90YXRpb24iPnhtbE5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5vdGF0aW9uUHRyIj54bWxOb3RhdGlvblB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZSI+eG1sTm90YXRpb25UYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZVB0ciI+eG1sTm90YXRpb25UYWJsZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxOcyI+eG1sTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE5zVHlwZSI+eG1sTnNUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDbG9zZSI+eG1sT3V0cHV0QnVmZmVyQ2xvc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckZsdXNoIj54bWxPdXRwdXRCdWZmZXJGbHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSI+eG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0T3BlbkNhbGxiYWNrIj54bWxPdXRwdXRPcGVuQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCI+eG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDRFNlY3QiPnhtbFBhcnNlQ0RTZWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sI3htbFBhcnNlQ2F0YWxvZ0ZpbGUiPnhtbFBhcnNlQ2F0YWxvZ0ZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJEYXRhIj54bWxQYXJzZUNoYXJEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxQYXJzZUNoYXJFbmNvZGluZyI+eG1sUGFyc2VDaGFyRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJSZWYiPnhtbFBhcnNlQ2hhclJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlQ2h1bmsiPnhtbFBhcnNlQ2h1bms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ29udGVudCI+eG1sUGFyc2VDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VEVEQiPnhtbFBhcnNlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRG9jIj54bWxQYXJzZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZURvY3VtZW50Ij54bWxQYXJzZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVuY05hbWUiPnhtbFBhcnNlRW5jTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5jb2RpbmdEZWNsIj54bWxQYXJzZUVuY29kaW5nRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW5kVGFnIj54bWxQYXJzZUVuZFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlRW50aXR5Ij54bWxQYXJzZUVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5RGVjbCI+eG1sUGFyc2VFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlSZWYiPnhtbFBhcnNlRW50aXR5UmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbnRpdHlWYWx1ZSI+eG1sUGFyc2VFbnRpdHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRlZFR5cGUiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGlvblR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dFBhcnNlZEVudCI+eG1sUGFyc2VFeHRQYXJzZWRFbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIj54bWxQYXJzZUV4dGVybmFsSUQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUV4dGVybmFsU3Vic2V0Ij54bWxQYXJzZUV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VGaWxlIj54bWxQYXJzZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VNZW1vcnkiPnhtbFBhcnNlTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNaXNjIj54bWxQYXJzZU1pc2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWUiPnhtbFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTmFtZXNwYWNlIj54bWxQYXJzZU5hbWVzcGFjZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm10b2tlbiI+eG1sUGFyc2VObXRva2VuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvbkRlY2wiPnhtbFBhcnNlTm90YXRpb25EZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOb3RhdGlvblR5cGUiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEkiPnhtbFBhcnNlUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJVGFyZ2V0Ij54bWxQYXJzZVBJVGFyZ2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQdWJpZExpdGVyYWwiPnhtbFBhcnNlUHViaWRMaXRlcmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VRdW90ZWRTdHJpbmciPnhtbFBhcnNlUXVvdGVkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VSZWZlcmVuY2UiPnhtbFBhcnNlUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3lzdGVtTGl0ZXJhbCI+eG1sUGFyc2VTeXN0ZW1MaXRlcmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VUZXh0RGVjbCI+eG1sUGFyc2VUZXh0RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJUmVmZXJlbmNlIj54bWxQYXJzZVVSSVJlZmVyZW5jZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVmVyc2lvbkluZm8iPnhtbFBhcnNlVmVyc2lvbkluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVZlcnNpb25OdW0iPnhtbFBhcnNlVmVyc2lvbk51bTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlWE1MRGVjbCI+eG1sUGFyc2VYTUxEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyQWRkTm9kZUluZm8iPnhtbFBhcnNlckFkZE5vZGVJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzIj54bWxQYXJzZXJEZWJ1Z0VudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvciI+eG1sUGFyc2VyRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9ycyI+eG1sUGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvIj54bWxQYXJzZXJGaW5kTm9kZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCI+eG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlckdldERpcmVjdG9yeSI+eG1sUGFyc2VyR2V0RGlyZWN0b3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyR3JvdyI+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCI+eG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXREZWFsbG9jYXRlIj54bWxQYXJzZXJJbnB1dERlYWxsb2NhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dEdyb3ciPnhtbFBhcnNlcklucHV0R3JvdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFJlYWQiPnhtbFBhcnNlcklucHV0UmVhZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlcklucHV0U2hyaW5rIj54bWxQYXJzZXJJbnB1dFNocmluazwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0U3RhdGUiPnhtbFBhcnNlcklucHV0U3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJNYXhEZXB0aCI+eG1sUGFyc2VyTWF4RGVwdGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJNb2RlIj54bWxQYXJzZXJNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9QdHIiPnhtbFBhcnNlck5vZGVJbmZvUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXEiPnhtbFBhcnNlck5vZGVJbmZvU2VxPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIiPnhtbFBhcnNlck5vZGVJbmZvU2VxUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclByaW50RmlsZUNvbnRleHQiPnhtbFBhcnNlclByaW50RmlsZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlclByaW50RmlsZUluZm8iPnhtbFBhcnNlclByaW50RmlsZUluZm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxQYXJzZXJQcm9wZXJ0aWVzIj54bWxQYXJzZXJQcm9wZXJ0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUGFyc2VyU2V2ZXJpdGllcyI+eG1sUGFyc2VyU2V2ZXJpdGllczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyVmFsaWRpdHlFcnJvciI+eG1sUGFyc2VyVmFsaWRpdHlFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nIj54bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VyVmVyc2lvbiI+eG1sUGFyc2VyVmVyc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyV2FybmluZyI+eG1sUGFyc2VyV2FybmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm4iPnhtbFBhdHRlcm48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkZsYWdzIj54bWxQYXR0ZXJuRmxhZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkZyb21Sb290Ij54bWxQYXR0ZXJuRnJvbVJvb3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkdldFN0cmVhbUN0eHQiPnhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NYXRjaCI+eG1sUGF0dGVybk1hdGNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NYXhEZXB0aCI+eG1sUGF0dGVybk1heERlcHRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5NaW5EZXB0aCI+eG1sUGF0dGVybk1pbkRlcHRoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblN0cmVhbWFibGUiPnhtbFBhdHRlcm5TdHJlYW1hYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCI+eG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlIj54bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBvcElucHV0Ij54bWxQb3BJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUG9wSW5wdXRDYWxsYmFja3MiPnhtbFBvcElucHV0Q2FsbGJhY2tzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxQcmludFVSSSI+eG1sUHJpbnRVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQdXNoSW5wdXQiPnhtbFB1c2hJbnB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXgiPnhtbFJNdXRleDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXhMb2NrIj54bWxSTXV0ZXhMb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFVubG9jayI+eG1sUk11dGV4VW5sb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZERvYyI+eG1sUmVhZERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlYWRGZCI+eG1sUmVhZEZkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZEZpbGUiPnhtbFJlYWRGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVhZElPIj54bWxSZWFkSU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxSZWFkTWVtb3J5Ij54bWxSZWFkTWVtb3J5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRG9jIj54bWxSZWFkZXJGb3JEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGZCI+eG1sUmVhZGVyRm9yRmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JGaWxlIj54bWxSZWFkZXJGb3JGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9ySU8iPnhtbFJlYWRlckZvcklPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yTWVtb3J5Ij54bWxSZWFkZXJGb3JNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdEb2MiPnhtbFJlYWRlck5ld0RvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0ZkIj54bWxSZWFkZXJOZXdGZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0ZpbGUiPnhtbFJlYWRlck5ld0ZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdJTyI+eG1sUmVhZGVyTmV3SU88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdNZW1vcnkiPnhtbFJlYWRlck5ld01lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld1dhbGtlciI+eG1sUmVhZGVyTmV3V2Fsa2VyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyVHlwZXMiPnhtbFJlYWRlclR5cGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyV2Fsa2VyIj54bWxSZWFkZXJXYWxrZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVhbGxvYyI+eG1sUmVhbGxvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NMb2MiPnhtbFJlYWxsb2NMb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFJlY292ZXJNZW1vcnkiPnhtbFJlY292ZXJNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVmIj54bWxSZWY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sUmVmUHRyIj54bWxSZWZQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFJlZlRhYmxlIj54bWxSZWZUYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVmVGFibGVQdHIiPnhtbFJlZlRhYmxlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0NhbGxiYWNrcyI+eG1sUmVnRXhlY0NhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0Ij54bWxSZWdFeGVjQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNFcnJJbmZvIj54bWxSZWdFeGVjRXJySW5mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNOZXh0VmFsdWVzIj54bWxSZWdFeGVjTmV4dFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nIj54bWxSZWdFeGVjUHVzaFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNQdXNoU3RyaW5nMiI+eG1sUmVnRXhlY1B1c2hTdHJpbmcyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRnJlZUV4ZWNDdHh0Ij54bWxSZWdGcmVlRXhlY0N0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdGcmVlUmVnZXhwIj54bWxSZWdGcmVlUmVnZXhwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnTmV3RXhlY0N0eHQiPnhtbFJlZ05ld0V4ZWNDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwIj54bWxSZWdleHA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBDb21waWxlIj54bWxSZWdleHBDb21waWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwRXhlYyI+eG1sUmVnZXhwRXhlYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cElzRGV0ZXJtaW5pc3QiPnhtbFJlZ2V4cElzRGV0ZXJtaW5pc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQcmludCI+eG1sUmVnZXhwUHJpbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MiPnhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxJTy5odG1sI3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sUmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sSU8uaHRtbCN4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhORyI+eG1sUmVsYXhORzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HQ2xlYW51cFR5cGVzIj54bWxSZWxheE5HQ2xlYW51cFR5cGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdEdW1wIj54bWxSZWxheE5HRHVtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRHVtcFRyZWUiPnhtbFJlbGF4TkdEdW1wVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZSI+eG1sUmVsYXhOR0ZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0Ij54bWxSZWxheE5HRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQiPnhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0luaXRUeXBlcyI+eG1sUmVsYXhOR0luaXRUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdQYXJzZXJDdHh0Ij54bWxSZWxheE5HTmV3UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3VmFsaWRDdHh0Ij54bWxSZWxheE5HTmV3VmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZSI+eG1sUmVsYXhOR1BhcnNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0Ij54bWxSZWxheE5HUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckZsYWciPnhtbFJlbGF4TkdQYXJzZXJGbGFnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0Ij54bWxSZWxheE5HVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkRXJyIj54bWxSZWxheE5HVmFsaWRFcnI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRG9jIj54bWxSZWxheE5HVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIj54bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheFBhcnNlclNldEZsYWciPnhtbFJlbGF4UGFyc2VyU2V0RmxhZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sUmVtb3ZlSUQiPnhtbFJlbW92ZUlEPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlbW92ZVByb3AiPnhtbFJlbW92ZVByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFJlbW92ZVJlZiI+eG1sUmVtb3ZlUmVmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJlcGxhY2VOb2RlIj54bWxSZXBsYWNlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUmVzZXRFcnJvciI+eG1sUmVzZXRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUmVzZXRMYXN0RXJyb3IiPnhtbFJlc2V0TGFzdEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFJvb3ROb2RlIj54bWxSb290Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQXR0cmlidXRlRGVjbCI+eG1sU0FYMkF0dHJpYnV0ZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkNEYXRhQmxvY2siPnhtbFNBWDJDRGF0YUJsb2NrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJDaGFyYWN0ZXJzIj54bWxTQVgyQ2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyQ29tbWVudCI+eG1sU0FYMkNvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVsZW1lbnREZWNsIj54bWxTQVgyRWxlbWVudERlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZERvY3VtZW50Ij54bWxTQVgyRW5kRG9jdW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnQiPnhtbFNBWDJFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFbmRFbGVtZW50TnMiPnhtbFNBWDJFbmRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkVudGl0eURlY2wiPnhtbFNBWDJFbnRpdHlEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJFeHRlcm5hbFN1YnNldCI+eG1sU0FYMkV4dGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJHZXRDb2x1bW5OdW1iZXIiPnhtbFNBWDJHZXRDb2x1bW5OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldEVudGl0eSI+eG1sU0FYMkdldEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0TGluZU51bWJlciI+eG1sU0FYMkdldExpbmVOdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSI+eG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0UHVibGljSWQiPnhtbFNBWDJHZXRQdWJsaWNJZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSI+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIiPnhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJbnRlcm5hbFN1YnNldCI+eG1sU0FYMkludGVybmFsU3Vic2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJJc1N0YW5kYWxvbmUiPnhtbFNBWDJJc1N0YW5kYWxvbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMk5vdGF0aW9uRGVjbCI+eG1sU0FYMk5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uIj54bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZWZlcmVuY2UiPnhtbFNBWDJSZWZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlJlc29sdmVFbnRpdHkiPnhtbFNBWDJSZXNvbHZlRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTZXREb2N1bWVudExvY2F0b3IiPnhtbFNBWDJTZXREb2N1bWVudExvY2F0b3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RG9jdW1lbnQiPnhtbFNBWDJTdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnQiPnhtbFNBWDJTdGFydEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudE5zIj54bWxTQVgyU3RhcnRFbGVtZW50TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCI+eG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjFQdHIiPnhtbFNBWEhhbmRsZXJWMVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTQVhMb2NhdG9yIj54bWxTQVhMb2NhdG9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURURCI+eG1sU0FYUGFyc2VEVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUVudGl0eSI+eG1sU0FYUGFyc2VFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUZpbGUiPnhtbFNBWFBhcnNlRmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5Ij54bWxTQVhQYXJzZU1lbW9yeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhVc2VyUGFyc2VGaWxlIj54bWxTQVhVc2VyUGFyc2VGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYVXNlclBhcnNlTWVtb3J5Ij54bWxTQVhVc2VyUGFyc2VNZW1vcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1TQVgyLmh0bWwjeG1sU0FYVmVyc2lvbiI+eG1sU0FYVmVyc2lvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ2xvc2UiPnhtbFNhdmVDbG9zZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dCI+eG1sU2F2ZUN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVEb2MiPnhtbFNhdmVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZpbGUiPnhtbFNhdmVGaWxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGaWxlRW5jIj54bWxTYXZlRmlsZUVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRmlsZVRvIj54bWxTYXZlRmlsZVRvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVGbHVzaCI+eG1sU2F2ZUZsdXNoPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZUVuYyI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxTYXZlTm9FbXB0eVRhZ3MiPnhtbFNhdmVOb0VtcHR5VGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlT3B0aW9uIj54bWxTYXZlT3B0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVTZXRBdHRyRXNjYXBlIj54bWxTYXZlU2V0QXR0ckVzY2FwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlU2V0RXNjYXBlIj54bWxTYXZlU2V0RXNjYXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0J1ZmZlciI+eG1sU2F2ZVRvQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZkIj54bWxTYXZlVG9GZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9GaWxlbmFtZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvSU8iPnhtbFNhdmVUb0lPPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFNhdmVVcmkiPnhtbFNhdmVVcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hIj54bWxTY2hlbWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQW5ub3QiPnhtbFNjaGVtYUFubm90PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90UHRyIj54bWxTY2hlbWFBbm5vdFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGUiPnhtbFNjaGVtYUF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCI+eG1sU2NoZW1hQXR0cmlidXRlR3JvdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsiPnhtbFNjaGVtYUF0dHJpYnV0ZUxpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlTGlua1B0ciI+eG1sU2NoZW1hQXR0cmlidXRlTGlua1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZVB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNoZWNrRmFjZXQiPnhtbFNjaGVtYUNoZWNrRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDbGVhbnVwVHlwZXMiPnhtbFNjaGVtYUNsZWFudXBUeXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbXBhcmVWYWx1ZXMiPnhtbFNjaGVtYUNvbXBhcmVWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AiPnhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFDb250ZW50VHlwZSI+eG1sU2NoZW1hQ29udGVudFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb3B5VmFsdWUiPnhtbFNjaGVtYUNvcHlWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFEdW1wIj54bWxTY2hlbWFEdW1wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUVsZW1lbnQiPnhtbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRWxlbWVudFB0ciI+eG1sU2NoZW1hRWxlbWVudFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldCI+eG1sU2NoZW1hRmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRMaW5rIj54bWxTY2hlbWFGYWNldExpbms8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRMaW5rUHRyIj54bWxTY2hlbWFGYWNldExpbmtQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUZyZWUiPnhtbFNjaGVtYUZyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlRmFjZXQiPnhtbFNjaGVtYUZyZWVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dCI+eG1sU2NoZW1hRnJlZVBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRnJlZVR5cGUiPnhtbFNjaGVtYUZyZWVUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUZyZWVWYWxpZEN0eHQiPnhtbFNjaGVtYUZyZWVWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlVmFsdWUiPnhtbFNjaGVtYUZyZWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGcmVlV2lsZGNhcmQiPnhtbFNjaGVtYUZyZWVXaWxkY2FyZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlIj54bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEJ1aWx0SW5UeXBlIj54bWxTY2hlbWFHZXRCdWlsdEluVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldENhbm9uVmFsdWUiPnhtbFNjaGVtYUdldENhbm9uVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AiPnhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nIj54bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiPnhtbFNjaGVtYUdldFBhcnNlckVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUdldFZhbFR5cGUiPnhtbFNjaGVtYUdldFZhbFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMiPnhtbFNjaGVtYUdldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSW5pdFR5cGVzIj54bWxTY2hlbWFJbml0VHlwZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQiPnhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFJc1ZhbGlkIj54bWxTY2hlbWFJc1ZhbGlkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdGYWNldCI+eG1sU2NoZW1hTmV3RmFjZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUiPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1FOYW1lVmFsdWUiPnhtbFNjaGVtYU5ld1FOYW1lVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3VmFsaWRDdHh0Ij54bWxTY2hlbWFOZXdWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hTm90YXRpb24iPnhtbFNjaGVtYU5vdGF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYU5vdGF0aW9uUHRyIj54bWxTY2hlbWFOb3RhdGlvblB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZSI+eG1sU2NoZW1hUGFyc2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dCI+eG1sU2NoZW1hUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWciPnhtbFNjaGVtYVNBWFBsdWc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1Z1B0ciI+eG1sU2NoZW1hU0FYUGx1Z1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnU3RydWN0Ij54bWxTY2hlbWFTQVhQbHVnU3RydWN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFVucGx1ZyI+eG1sU2NoZW1hU0FYVW5wbHVnPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFBhcnNlckVycm9ycyI+eG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiPnhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMiPnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFZhbGlkT3B0aW9ucyI+eG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGUiPnhtbFNjaGVtYVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZUxpbmsiPnhtbFNjaGVtYVR5cGVMaW5rPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVMaW5rUHRyIj54bWxTY2hlbWFUeXBlTGlua1B0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVUeXBlIj54bWxTY2hlbWFUeXBlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWwiPnhtbFNjaGVtYVZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dCI+eG1sU2NoZW1hVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMiPnhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEVycm9yIj54bWxTY2hlbWFWYWxpZEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkT3B0aW9uIj54bWxTY2hlbWFWYWxpZE9wdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZURvYyI+eG1sU2NoZW1hVmFsaWRhdGVEb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVGaWxlIj54bWxTY2hlbWFWYWxpZGF0ZUZpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVBcHBlbmQiPnhtbFNjaGVtYVZhbHVlQXBwZW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4iPnhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyI+eG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0TmV4dCI+eG1sU2NoZW1hVmFsdWVHZXROZXh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UiPnhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZCI+eG1sU2NoZW1hV2lsZGNhcmQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmROcyI+eG1sU2NoZW1hV2lsZGNhcmROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIj54bWxTY2hlbWFXaWxkY2FyZE5zUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkUHRyIj54bWxTY2hlbWFXaWxkY2FyZFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uIj54bWxTY2hlbWF0cm9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25GcmVlIj54bWxTY2hlbWF0cm9uRnJlZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2UiPnhtbFNjaGVtYXRyb25QYXJzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uVmFsaWRDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucyI+eG1sU2NoZW1hdHJvblZhbGlkT3B0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MiPnhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNlYXJjaE5zQnlIcmVmIj54bWxTZWFyY2hOc0J5SHJlZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNldERvY0NvbXByZXNzTW9kZSI+eG1sU2V0RG9jQ29tcHJlc3NNb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFNldEZlYXR1cmUiPnhtbFNldEZlYXR1cmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxlcnJvci5odG1sI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TGlzdERvYyI+eG1sU2V0TGlzdERvYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXROcyI+eG1sU2V0TnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0TnNQcm9wIj54bWxTZXROc1Byb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2V0UHJvcCI+eG1sU2V0UHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTZXRUcmVlRG9jIj54bWxTZXRUcmVlRG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU2V0dXBQYXJzZXJGb3JCdWZmZXIiPnhtbFNldHVwUGFyc2VyRm9yQnVmZmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbCI+eG1sU2hlbGw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQmFzZSI+eG1sU2hlbGxCYXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbENhdCI+eG1sU2hlbGxDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ21kIj54bWxTaGVsbENtZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0Ij54bWxTaGVsbEN0eHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbERpciI+eG1sU2hlbGxEaXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiPnhtbFNoZWxsRHU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTGlzdCI+eG1sU2hlbGxMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbExvYWQiPnhtbFNoZWxsTG9hZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludE5vZGUiPnhtbFNoZWxsUHJpbnROb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFByaW50WFBhdGhFcnJvciI+eG1sU2hlbGxQcmludFhQYXRoRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHJpbnRYUGF0aFJlc3VsdCI+eG1sU2hlbGxQcmludFhQYXRoUmVzdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUmVhZGxpbmVGdW5jIj54bWxTaGVsbFJlYWRsaW5lRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxTYXZlIj54bWxTaGVsbFNhdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsVmFsaWRhdGUiPnhtbFNoZWxsVmFsaWRhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsV3JpdGUiPnhtbFNoZWxsV3JpdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTa2lwQmxhbmtDaGFycyI+eG1sU2tpcEJsYW5rQ2hhcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFNucHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFNwcmludGZFbGVtZW50Q29udGVudCI+eG1sU3ByaW50ZkVsZW1lbnRDb250ZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwjeG1sU3RvcFBhcnNlciI+eG1sU3RvcFBhcnNlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyUUVxdWFsIj54bWxTdHJRRXF1YWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY2FzZWNtcCI+eG1sU3RyY2FzZWNtcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNhc2VzdHIiPnhtbFN0cmNhc2VzdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiPnhtbFN0cmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmNociI+eG1sU3RyY2hyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RyY21wIj54bWxTdHJjbXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJkdXAiPnhtbFN0cmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dCI+eG1sU3RyZWFtQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVBvcCI+eG1sU3RyZWFtUG9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2giPnhtbFN0cmVhbVB1c2g8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaEF0dHIiPnhtbFN0cmVhbVB1c2hBdHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1XYW50c0FueU5vZGUiPnhtbFN0cmVhbVdhbnRzQW55Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0NvbW1lbnQiPnhtbFN0cmluZ0NvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdDdXJyZW50Q2hhciI+eG1sU3RyaW5nQ3VycmVudENoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFN0cmluZ0xlbkdldE5vZGVMaXN0Ij54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ1RleHQiPnhtbFN0cmluZ1RleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdUZXh0Tm9lbmMiPnhtbFN0cmluZ1RleHROb2VuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cmxlbiI+eG1sU3RybGVuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhc2VjbXAiPnhtbFN0cm5jYXNlY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNhdCI+eG1sU3RybmNhdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXROZXciPnhtbFN0cm5jYXROZXc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY21wIj54bWxTdHJuY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3RybmR1cCI+eG1sU3RybmR1cDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFN0cnN0ciI+eG1sU3Ryc3RyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3ViIj54bWxTdHJzdWI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yIj54bWxTdHJ1Y3R1cmVkRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yQ29udGV4dCI+eG1sU3RydWN0dXJlZEVycm9yQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQiPnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlIj54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hFbmNvZGluZyI+eG1sU3dpdGNoRW5jb2Rpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hJbnB1dEVuY29kaW5nIj54bWxTd2l0Y2hJbnB1dEVuY29kaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3dpdGNoVG9FbmNvZGluZyI+eG1sU3dpdGNoVG9FbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxUZXh0Q29uY2F0Ij54bWxUZXh0Q29uY2F0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFRleHRNZXJnZSI+eG1sVGV4dE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlciI+eG1sVGV4dFJlYWRlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCI+eG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJhc2VVcmkiPnhtbFRleHRSZWFkZXJCYXNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDbG9zZSI+eG1sVGV4dFJlYWRlckNsb3NlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaSI+eG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdEVuY29kaW5nIj54bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0TmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4Ij54bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmciPnhtbFRleHRSZWFkZXJDb25zdFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFZhbHVlIj54bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdFhtbExhbmciPnhtbFRleHRSZWFkZXJDb25zdFhtbExhbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uIj54bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnREb2MiPnhtbFRleHRSZWFkZXJDdXJyZW50RG9jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIj54bWxUZXh0UmVhZGVyQ3VycmVudE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRGVwdGgiPnhtbFRleHRSZWFkZXJEZXB0aDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFcnJvckZ1bmMiPnhtbFRleHRSZWFkZXJFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXhwYW5kIj54bWxUZXh0UmVhZGVyRXhwYW5kPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlciI+eG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPnhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyI+eG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySGFzVmFsdWUiPnhtbFRleHRSZWFkZXJIYXNWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc0RlZmF1bHQiPnhtbFRleHRSZWFkZXJJc0RlZmF1bHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQiPnhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVySXNWYWxpZCI+eG1sVGV4dFJlYWRlcklzVmFsaWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyTG9jYWxOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhdG9yUHRyIj54bWxUZXh0UmVhZGVyTG9jYXRvclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiPnhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW9kZSI+eG1sVGV4dFJlYWRlck1vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlIj54bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vIj54bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMiPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50Ij54bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5hbWUiPnhtbFRleHRSZWFkZXJOYW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0Ij54bWxUZXh0UmVhZGVyTmV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlZml4Ij54bWxUZXh0UmVhZGVyUHJlZml4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclByZXNlcnZlIj54bWxUZXh0UmVhZGVyUHJlc2VydmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIj54bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJRdW90ZUNoYXIiPnhtbFRleHRSZWFkZXJRdW90ZUNoYXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZCI+eG1sVGV4dFJlYWRlclJlYWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlIj54bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCI+eG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwiPnhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIj54bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRTdHJpbmciPnhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldHVwIj54bWxUZXh0UmVhZGVyU2V0dXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSI+eG1sVGV4dFJlYWRlclN0YW5kYWxvbmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyVmFsdWUiPnhtbFRleHRSZWFkZXJWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJYbWxMYW5nIj54bWxUZXh0UmVhZGVyWG1sTGFuZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXIiPnhtbFRleHRXcml0ZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZENEQVRBIj54bWxUZXh0V3JpdGVyRW5kQ0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kQ29tbWVudCI+eG1sVGV4dFdyaXRlckVuZENvbW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRFREIj54bWxUZXh0V3JpdGVyRW5kRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSI+eG1sVGV4dFdyaXRlckVuZERUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREb2N1bWVudCI+eG1sVGV4dFdyaXRlckVuZERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZFBJIj54bWxUZXh0V3JpdGVyRW5kUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRmx1c2giPnhtbFRleHRXcml0ZXJGbHVzaDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCI+eG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTZXRJbmRlbnQiPnhtbFRleHRXcml0ZXJTZXRJbmRlbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIj54bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSI+eG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50Ij54bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFREIj54bWxUZXh0V3JpdGVyU3RhcnREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0UEkiPnhtbFRleHRXcml0ZXJTdGFydFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQiPnhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJpbkhleCI+eG1sVGV4dFdyaXRlcldyaXRlQmluSGV4PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEiPnhtbFRleHRXcml0ZXJXcml0ZUNEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURURCI+eG1sVGV4dFdyaXRlcldyaXRlRFREPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMiPnhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiI+eG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlIj54bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVQSSI+eG1sVGV4dFdyaXRlcldyaXRlUEk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iPnhtbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVJhdyI+eG1sVGV4dFdyaXRlcldyaXRlUmF3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIj54bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUiPnhtbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZkRlZmF1bHRCdWZmZXJTaXplIj54bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUiPnhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dCI+eG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMiPnhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlNhdmVOb0VtcHR5VGFncyI+eG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUiPnhtbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nIj54bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sI3htbFRyZWVJbmRlbnRTdHJpbmciPnhtbFRyZWVJbmRlbnRTdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBZWdlYW5OdW1iZXJzIj54bWxVQ1NJc0FlZ2Vhbk51bWJlcnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMiPnhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQXJhYmljIj54bWxVQ1NJc0FyYWJpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQSI+eG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IiPnhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQXJtZW5pYW4iPnhtbFVDU0lzQXJtZW5pYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBcnJvd3MiPnhtbFVDU0lzQXJyb3dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmFzaWNMYXRpbiI+eG1sVUNTSXNCYXNpY0xhdGluPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmVuZ2FsaSI+eG1sVUNTSXNCZW5nYWxpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmxvY2siPnhtbFVDU0lzQmxvY2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCbG9ja0VsZW1lbnRzIj54bWxVQ1NJc0Jsb2NrRWxlbWVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCb3BvbW9mbyI+eG1sVUNTSXNCb3BvbW9mbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQiPnhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JveERyYXdpbmciPnhtbFVDU0lzQm94RHJhd2luZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJucyI+eG1sVUNTSXNCcmFpbGxlUGF0dGVybnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCdWhpZCI+eG1sVUNTSXNCdWhpZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzIj54bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zIj54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIj54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50Ij54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudCI+eG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24iPnhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CIj54bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdCI+eG1sVUNTSXNDYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDIj54bWxVQ1NJc0NhdEM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDYyI+eG1sVUNTSXNDYXRDYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdENmIj54bWxVQ1NJc0NhdENmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Q28iPnhtbFVDU0lzQ2F0Q288L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDcyI+eG1sVUNTSXNDYXRDczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdEwiPnhtbFVDU0lzQ2F0TDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdExsIj54bWxVQ1NJc0NhdExsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0TG0iPnhtbFVDU0lzQ2F0TG08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRMbyI+eG1sVUNTSXNDYXRMbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdEx0Ij54bWxVQ1NJc0NhdEx0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0THUiPnhtbFVDU0lzQ2F0THU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRNIj54bWxVQ1NJc0NhdE08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRNYyI+eG1sVUNTSXNDYXRNYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdE1lIj54bWxVQ1NJc0NhdE1lPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0TW4iPnhtbFVDU0lzQ2F0TW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXROIj54bWxVQ1NJc0NhdE48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXROZCI+eG1sVUNTSXNDYXROZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdE5sIj54bWxVQ1NJc0NhdE5sPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Tm8iPnhtbFVDU0lzQ2F0Tm88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQIj54bWxVQ1NJc0NhdFA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQYyI+eG1sVUNTSXNDYXRQYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFBkIj54bWxVQ1NJc0NhdFBkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0UGUiPnhtbFVDU0lzQ2F0UGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQZiI+eG1sVUNTSXNDYXRQZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFBpIj54bWxVQ1NJc0NhdFBpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0UG8iPnhtbFVDU0lzQ2F0UG88L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQcyI+eG1sVUNTSXNDYXRQczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFMiPnhtbFVDU0lzQ2F0UzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFNjIj54bWxVQ1NJc0NhdFNjPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0U2siPnhtbFVDU0lzQ2F0U2s8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRTbSI+eG1sVUNTSXNDYXRTbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFNvIj54bWxVQ1NJc0NhdFNvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0WiI+eG1sVUNTSXNDYXRaPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0WmwiPnhtbFVDU0lzQ2F0Wmw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRacCI+eG1sVUNTSXNDYXRacDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFpzIj54bWxVQ1NJc0NhdFpzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2hlcm9rZWUiPnhtbFVDU0lzQ2hlcm9rZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIj54bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyI+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrcyI+eG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMiPnhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ29udHJvbFBpY3R1cmVzIj54bWxVQ1NJc0NvbnRyb2xQaWN0dXJlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0N1cnJlbmN5U3ltYm9scyI+eG1sVUNTSXNDdXJyZW5jeVN5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5Ij54bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDeXJpbGxpYyI+eG1sVUNTSXNDeXJpbGxpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudCI+eG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEZXNlcmV0Ij54bWxVQ1NJc0Rlc2VyZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEZXZhbmFnYXJpIj54bWxVQ1NJc0RldmFuYWdhcmk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEaW5nYmF0cyI+eG1sVUNTSXNEaW5nYmF0czwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcyI+eG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMiPnhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzRXRoaW9waWMiPnhtbFVDU0lzRXRoaW9waWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24iPnhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR2VvbWV0cmljU2hhcGVzIj54bWxVQ1NJc0dlb21ldHJpY1NoYXBlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dlb3JnaWFuIj54bWxVQ1NJc0dlb3JnaWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR290aGljIj54bWxVQ1NJc0dvdGhpYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dyZWVrIj54bWxVQ1NJc0dyZWVrPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3JlZWtFeHRlbmRlZCI+eG1sVUNTSXNHcmVla0V4dGVuZGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3JlZWthbmRDb3B0aWMiPnhtbFVDU0lzR3JlZWthbmRDb3B0aWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHdWphcmF0aSI+eG1sVUNTSXNHdWphcmF0aTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0d1cm11a2hpIj54bWxVQ1NJc0d1cm11a2hpPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMiPnhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyI+eG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bEphbW8iPnhtbFVDU0lzSGFuZ3VsSmFtbzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcyI+eG1sVUNTSXNIYW5ndWxTeWxsYWJsZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIYW51bm9vIj54bWxVQ1NJc0hhbnVub288L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIZWJyZXciPnhtbFVDU0lzSGVicmV3PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIj54bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzIj54bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGlyYWdhbmEiPnhtbFVDU0lzSGlyYWdhbmE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNJUEFFeHRlbnNpb25zIj54bWxVQ1NJc0lQQUV4dGVuc2lvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyI+eG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVyczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thbmJ1biI+eG1sVUNTSXNLYW5idW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNLYW5neGlSYWRpY2FscyI+eG1sVUNTSXNLYW5neGlSYWRpY2FsczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thbm5hZGEiPnhtbFVDU0lzS2FubmFkYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thdGFrYW5hIj54bWxVQ1NJc0thdGFrYW5hPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMiPnhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNLaG1lciI+eG1sVUNTSXNLaG1lcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0tobWVyU3ltYm9scyI+eG1sVUNTSXNLaG1lclN5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYW8iPnhtbFVDU0lzTGFvPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudCI+eG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGF0aW5FeHRlbmRlZEEiPnhtbFVDU0lzTGF0aW5FeHRlbmRlZEE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCI+eG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMiPnhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMaW1idSI+eG1sVUNTSXNMaW1idTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiPnhtbFVDU0lzTGluZWFyQklkZW9ncmFtczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkiPnhtbFVDU0lzTGluZWFyQlN5bGxhYmFyeTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMiPnhtbFVDU0lzTG93U3Vycm9nYXRlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01hbGF5YWxhbSI+eG1sVUNTSXNNYWxheWFsYW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIj54bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMiPnhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQiI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scyI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTW9uZ29saWFuIj54bWxVQ1NJc01vbmdvbGlhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc011c2ljYWxTeW1ib2xzIj54bWxVQ1NJc011c2ljYWxTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTXlhbm1hciI+eG1sVUNTSXNNeWFubWFyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTnVtYmVyRm9ybXMiPnhtbFVDU0lzTnVtYmVyRm9ybXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPZ2hhbSI+eG1sVUNTSXNPZ2hhbTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc09sZEl0YWxpYyI+eG1sVUNTSXNPbGRJdGFsaWM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24iPnhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzT3JpeWEiPnhtbFVDU0lzT3JpeWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPc21hbnlhIj54bWxVQ1NJc09zbWFueWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMiPnhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzUHJpdmF0ZVVzZSI+eG1sVUNTSXNQcml2YXRlVXNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzUHJpdmF0ZVVzZUFyZWEiPnhtbFVDU0lzUHJpdmF0ZVVzZUFyZWE8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNSdW5pYyI+eG1sVUNTSXNSdW5pYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NoYXZpYW4iPnhtbFVDU0lzU2hhdmlhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NpbmhhbGEiPnhtbFVDU0lzU2luaGFsYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzIj54bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyI+eG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3BlY2lhbHMiPnhtbFVDU0lzU3BlY2lhbHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzIj54bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBIj54bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0E8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCIj54bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMiPnhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQiI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3lyaWFjIj54bWxVQ1NJc1N5cmlhYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhZ2Fsb2ciPnhtbFVDU0lzVGFnYWxvZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhZ2JhbndhIj54bWxVQ1NJc1RhZ2JhbndhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFncyI+eG1sVUNTSXNUYWdzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFpTGUiPnhtbFVDU0lzVGFpTGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMiPnhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFtaWwiPnhtbFVDU0lzVGFtaWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNUZWx1Z3UiPnhtbFVDU0lzVGVsdWd1PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGhhYW5hIj54bWxVQ1NJc1RoYWFuYTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RoYWkiPnhtbFVDU0lzVGhhaTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RpYmV0YW4iPnhtbFVDU0lzVGliZXRhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1VnYXJpdGljIj54bWxVQ1NJc1VnYXJpdGljPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyI+eG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzIj54bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQiPnhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1lpUmFkaWNhbHMiPnhtbFVDU0lzWWlSYWRpY2FsczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1lpU3lsbGFibGVzIj54bWxVQ1NJc1lpU3lsbGFibGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sI3htbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzIj54bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9sczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGVTdHIiPnhtbFVSSUVzY2FwZVN0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdXJpLmh0bWwjeG1sVVJJVW5lc2NhcGVTdHJpbmciPnhtbFVSSVVuZXNjYXBlU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOENoYXJjbXAiPnhtbFVURjhDaGFyY21wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFNpemUiPnhtbFVURjhTaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cmxlbiI+eG1sVVRGOFN0cmxlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsb2MiPnhtbFVURjhTdHJsb2M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RybmR1cCI+eG1sVVRGOFN0cm5kdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RycG9zIj54bWxVVEY4U3RycG9zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnNpemUiPnhtbFVURjhTdHJzaXplPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnN1YiI+eG1sVVRGOFN0cnN1YjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxVbmxpbmtOb2RlIj54bWxVbmxpbmtOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdGhyZWFkcy5odG1sI3htbFVubG9ja0xpYnJhcnkiPnhtbFVubG9ja0xpYnJhcnk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVW5zZXROc1Byb3AiPnhtbFVuc2V0TnNQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFVuc2V0UHJvcCI+eG1sVW5zZXRQcm9wPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIj54bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHQiPnhtbFZhbGlkQ3R4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiI+eG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkU3RhdGUiPnhtbFZhbGlkU3RhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkU3RhdGVQdHIiPnhtbFZhbGlkU3RhdGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnQiPnhtbFZhbGlkYXRlRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZU5DTmFtZSI+eG1sVmFsaWRhdGVOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOTVRva2VuIj54bWxWYWxpZGF0ZU5NVG9rZW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sVmFsaWRhdGVOYW1lIj54bWxWYWxpZGF0ZU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTmFtZVZhbHVlIj54bWxWYWxpZGF0ZU5hbWVWYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOYW1lc1ZhbHVlIj54bWxWYWxpZGF0ZU5hbWVzVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm10b2tlblZhbHVlIj54bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIj54bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25EZWNsIj54bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvblVzZSI+eG1sVmFsaWRhdGVOb3RhdGlvblVzZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiPnhtbFZhbGlkYXRlT25lRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFZhbGlkYXRlUG9wRWxlbWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVQdXNoQ0RhdGEiPnhtbFZhbGlkYXRlUHVzaENEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hFbGVtZW50Ij54bWxWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFZhbGlkYXRlUU5hbWUiPnhtbFZhbGlkYXRlUU5hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dCI+eG1sWEluY2x1ZGVDdHh0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVGcmVlQ29udGV4dCI+eG1sWEluY2x1ZGVGcmVlQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVOZXdDb250ZXh0Ij54bWxYSW5jbHVkZU5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2VzcyI+eG1sWEluY2x1ZGVQcm9jZXNzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3M8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVTZXRGbGFncyI+eG1sWEluY2x1ZGVTZXRGbGFnczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhBZGRWYWx1ZXMiPnhtbFhQYXRoQWRkVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXMiPnhtbFhQYXRoQXhpczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzUHRyIj54bWxYUGF0aEF4aXNQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIj54bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyIj54bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyI+eG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuIj54bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nIj54bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVUb051bWJlciI+eG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmciPnhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIj54bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nIj54bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuIj54bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyIj54bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9Cb29sZWFuIj54bWxYUGF0aENhc3RUb0Jvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ2FzdFRvTnVtYmVyIj54bWxYUGF0aENhc3RUb051bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9TdHJpbmciPnhtbFhQYXRoQ2FzdFRvU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENlaWxpbmdGdW5jdGlvbiI+eG1sWFBhdGhDZWlsaW5nRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ2hlY2tFcnJvciI+eG1sWFBhdGhDaGVja0Vycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENtcE5vZGVzIj54bWxYUGF0aENtcE5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByIj54bWxYUGF0aENvbXBFeHByPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbXBhcmVWYWx1ZXMiPnhtbFhQYXRoQ29tcGFyZVZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21waWxlIj54bWxYUGF0aENvbXBpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZWRFdmFsIj54bWxYUGF0aENvbXBpbGVkRXZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW4iPnhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbmNhdEZ1bmN0aW9uIj54bWxYUGF0aENvbmNhdEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24iPnhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEJvb2xlYW4iPnhtbFhQYXRoQ29udmVydEJvb2xlYW48L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEZ1bmMiPnhtbFhQYXRoQ29udmVydEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydE51bWJlciI+eG1sWFBhdGhDb252ZXJ0TnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRTdHJpbmciPnhtbFhQYXRoQ29udmVydFN0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb3VudEZ1bmN0aW9uIj54bWxYUGF0aENvdW50RnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ3R4dENvbXBpbGUiPnhtbFhQYXRoQ3R4dENvbXBpbGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIiPnhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGVidWdEdW1wT2JqZWN0Ij54bWxYUGF0aERlYnVnRHVtcE9iamVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaWZmZXJlbmNlIj54bWxYUGF0aERpZmZlcmVuY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGlzdGluY3RTb3J0ZWQiPnhtbFhQYXRoRGlzdGluY3RTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRGl2VmFsdWVzIj54bWxYUGF0aERpdlZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFbXB0eU5vZGVTZXQiPnhtbFhQYXRoRW1wdHlOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVxdWFsVmFsdWVzIj54bWxYUGF0aEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVyciI+eG1sWFBhdGhFcnI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXJyb3IiPnhtbFhQYXRoRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbCI+eG1sWFBhdGhFdmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWxFeHByIj54bWxYUGF0aEV2YWxFeHByPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWxFeHByZXNzaW9uIj54bWxYUGF0aEV2YWxFeHByZXNzaW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWxGdW5jIj54bWxYUGF0aEV2YWxGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEV2YWxQcmVkaWNhdGUiPnhtbFhQYXRoRXZhbFByZWRpY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCI+eG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGYWxzZUZ1bmN0aW9uIj54bWxYUGF0aEZhbHNlRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRmxvb3JGdW5jdGlvbiI+eG1sWFBhdGhGbG9vckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVDb21wRXhwciI+eG1sWFBhdGhGcmVlQ29tcEV4cHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZUNvbnRleHQiPnhtbFhQYXRoRnJlZUNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXQiPnhtbFhQYXRoRnJlZU5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXRMaXN0Ij54bWxYUGF0aEZyZWVOb2RlU2V0TGlzdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlT2JqZWN0Ij54bWxYUGF0aEZyZWVPYmplY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRnJlZVBhcnNlckNvbnRleHQiPnhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY1B0ciI+eG1sWFBhdGhGdW5jUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0Ij54bWxYUGF0aEZ1bmN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwIj54bWxYUGF0aEZ1bmN0aW9uTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXRDb250ZXh0Tm9kZSI+eG1sWFBhdGhHZXRDb250ZXh0Tm9kZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXREb2N1bWVudCI+eG1sWFBhdGhHZXREb2N1bWVudDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhHZXRFcnJvciI+eG1sWFBhdGhHZXRFcnJvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhIYXNTYW1lTm9kZXMiPnhtbFhQYXRoSGFzU2FtZU5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iPnhtbFhQYXRoSWRGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJbml0Ij54bWxYUGF0aEluaXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoSW50ZXJzZWN0aW9uIj54bWxYUGF0aEludGVyc2VjdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc0luZiI+eG1sWFBhdGhJc0luZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJc05vZGVUeXBlIj54bWxYUGF0aElzTm9kZVR5cGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMYXN0RnVuY3Rpb24iPnhtbFhQYXRoTGFzdEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24iPnhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTW9kVmFsdWVzIj54bWxYUGF0aE1vZFZhbHVlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNdWx0VmFsdWVzIj54bWxYUGF0aE11bHRWYWx1ZXM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTkFOIj54bWxYUGF0aE5BTjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOSU5GIj54bWxYUGF0aE5JTkY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24iPnhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Qm9vbGVhbiI+eG1sWFBhdGhOZXdCb29sZWFuPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld0NTdHJpbmciPnhtbFhQYXRoTmV3Q1N0cmluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOZXdDb250ZXh0Ij54bWxYUGF0aE5ld0NvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3RmxvYXQiPnhtbFhQYXRoTmV3RmxvYXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldCI+eG1sWFBhdGhOZXdOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld05vZGVTZXRMaXN0Ij54bWxYUGF0aE5ld05vZGVTZXRMaXN0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQiPnhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdTdHJpbmciPnhtbFhQYXRoTmV3U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1ZhbHVlVHJlZSI+eG1sWFBhdGhOZXdWYWx1ZVRyZWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYiPnhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBdHRyaWJ1dGUiPnhtbFhQYXRoTmV4dEF0dHJpYnV0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Q2hpbGQiPnhtbFhQYXRoTmV4dENoaWxkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50Ij54bWxYUGF0aE5leHREZXNjZW5kYW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmIj54bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRGb2xsb3dpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0TmFtZXNwYWNlIj54bWxYUGF0aE5leHROYW1lc3BhY2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFBhcmVudCI+eG1sWFBhdGhOZXh0UGFyZW50PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0U2VsZiI+eG1sWFBhdGhOZXh0U2VsZjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlTGVhZGluZyI+eG1sWFBhdGhOb2RlTGVhZGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkIj54bWxYUGF0aE5vZGVTZXRBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldEFkZE5zIj54bWxYUGF0aE5vZGVTZXRBZGROczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlIj54bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldENvbnRhaW5zIj54bWxYUGF0aE5vZGVTZXRDb250YWluczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0Q3JlYXRlIj54bWxYUGF0aE5vZGVTZXRDcmVhdGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRGcmVlTnMiPnhtbFhQYXRoTm9kZVNldEZyZWVOczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIj54bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGg8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTm9kZVNldElzRW1wdHkiPnhtbFhQYXRoTm9kZVNldElzRW1wdHk8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoTm9kZVNldEl0ZW0iPnhtbFhQYXRoTm9kZVNldEl0ZW08L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldE1lcmdlIj54bWxYUGF0aE5vZGVTZXRNZXJnZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0UmVtb3ZlIj54bWxYUGF0aE5vZGVTZXRSZW1vdmU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldFNvcnQiPnhtbFhQYXRoTm9kZVNldFNvcnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nIj54bWxYUGF0aE5vZGVUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIj54bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIj54bWxYUGF0aE5vdEVxdWFsVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vdEZ1bmN0aW9uIj54bWxYUGF0aE5vdEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5zTG9va3VwIj54bWxYUGF0aE5zTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE51bWJlckZ1bmN0aW9uIj54bWxYUGF0aE51bWJlckZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdCI+eG1sWFBhdGhPYmplY3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0Q29weSI+eG1sWFBhdGhPYmplY3RDb3B5PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0VHlwZSI+eG1sWFBhdGhPYmplY3RUeXBlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQSU5GIj54bWxYUGF0aFBJTkY8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOQ05hbWUiPnhtbFhQYXRoUGFyc2VOQ05hbWU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij54bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcEJvb2xlYW4iPnhtbFhQYXRoUG9wQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BFeHRlcm5hbCI+eG1sWFBhdGhQb3BFeHRlcm5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOb2RlU2V0Ij54bWxYUGF0aFBvcE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wTnVtYmVyIj54bWxYUGF0aFBvcE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BTdHJpbmciPnhtbFhQYXRoUG9wU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24iPnhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucyI+eG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9uczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlckZ1bmMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cCI+eG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jTlMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jTlM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJOcyI+eG1sWFBhdGhSZWdpc3Rlck5zPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwIj54bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXA8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwIj54bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkJvb2xlYW4iPnhtbFhQYXRoUmV0dXJuQm9vbGVhbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQiPnhtbFhQYXRoUmV0dXJuRW1wdHlOb2RlU2V0PC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nIj54bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkV4dGVybmFsIj54bWxYUGF0aFJldHVybkV4dGVybmFsPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkZhbHNlIj54bWxYUGF0aFJldHVybkZhbHNlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybk5vZGVTZXQiPnhtbFhQYXRoUmV0dXJuTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5OdW1iZXIiPnhtbFhQYXRoUmV0dXJuTnVtYmVyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVyblN0cmluZyI+eG1sWFBhdGhSZXR1cm5TdHJpbmc8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuVHJ1ZSI+eG1sWFBhdGhSZXR1cm5UcnVlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJvb3QiPnhtbFhQYXRoUm9vdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSb3VuZEZ1bmN0aW9uIj54bWxYUGF0aFJvdW5kRnVuY3Rpb248L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU2V0QXJpdHlFcnJvciI+eG1sWFBhdGhTZXRBcml0eUVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFNldEVycm9yIj54bWxYUGF0aFNldEVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFNldFR5cGVFcnJvciI+eG1sWFBhdGhTZXRUeXBlRXJyb3I8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RhY2tJc0V4dGVybmFsIj54bWxYUGF0aFN0YWNrSXNFeHRlcm5hbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdGFja0lzTm9kZVNldCI+eG1sWFBhdGhTdGFja0lzTm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24iPnhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJWYWx1ZXMiPnhtbFhQYXRoU3ViVmFsdWVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdW1GdW5jdGlvbiI+eG1sWFBhdGhTdW1GdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZyI+eG1sWFBhdGhUcmFpbGluZzwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFpbGluZ1NvcnRlZCI+eG1sWFBhdGhUcmFpbGluZ1NvcnRlZDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbiI+eG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbjwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcnVlRnVuY3Rpb24iPnhtbFhQYXRoVHJ1ZUZ1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFR5cGUiPnhtbFhQYXRoVHlwZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhUeXBlUHRyIj54bWxYUGF0aFR5cGVQdHI8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFsdWVGbGlwU2lnbiI+eG1sWFBhdGhWYWx1ZUZsaXBTaWduPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFZhcmlhYmxlIj54bWxYUGF0aFZhcmlhYmxlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFZhcmlhYmxlTG9va3VwIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmM8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBOUyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFZhcmlhYmxlUHRyIj54bWxYUGF0aFZhcmlhYmxlUHRyPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBDU3RyaW5nIj54bWxYUGF0aFdyYXBDU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBFeHRlcm5hbCI+eG1sWFBhdGhXcmFwRXh0ZXJuYWw8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcE5vZGVTZXQiPnhtbFhQYXRoV3JhcE5vZGVTZXQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcFN0cmluZyI+eG1sWFBhdGhXcmFwU3RyaW5nPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aGVycm9yIj54bWxYUGF0aGVycm9yPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyQnVpbGROb2RlTGlzdCI+eG1sWFB0ckJ1aWxkTm9kZUxpc3Q8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsIj54bWxYUHRyRXZhbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSI+eG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckZyZWVMb2NhdGlvblNldCI+eG1sWFB0ckZyZWVMb2NhdGlvblNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0QWRkIj54bWxYUHRyTG9jYXRpb25TZXRBZGQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldENyZWF0ZSI+eG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXREZWwiPnhtbFhQdHJMb2NhdGlvblNldERlbDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UiPnhtbFhQdHJMb2NhdGlvblNldE1lcmdlPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUiPnhtbFhQdHJMb2NhdGlvblNldFJlbW92ZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIj54bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2U8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdDb250ZXh0Ij54bWxYUHRyTmV3Q29udGV4dDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCI+eG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMiPnhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2UiPnhtbFhQdHJOZXdSYW5nZTwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCI+eG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdDwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50Ij54bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQ8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZU5vZGVzIj54bWxYUHRyTmV3UmFuZ2VOb2RlczwvYT48YnIgLz4KKzxhIGhyZWY9Imh0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIj54bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGU8L2E+PGJyIC8+Cis8YSBocmVmPSJodG1sL2xpYnhtbC14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZVBvaW50cyI+eG1sWFB0ck5ld1JhbmdlUG9pbnRzPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uIj54bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uPC9hPjxiciAvPgorPGEgaHJlZj0iaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxYUHRyV3JhcExvY2F0aW9uU2V0Ij54bWxYUHRyV3JhcExvY2F0aW9uU2V0PC9hPjxiciAvPgorPC9wPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvQ2hhbmdlTG9nLnhzbCBiL2xpYnhtbDItMi43LjcvZG9jL0NoYW5nZUxvZy54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU2YzNhOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0NoYW5nZUxvZy54c2wKQEAgLTAsMCArMSwxMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLSB0aGlzIHN0eWxlc2hlZXQgYnVpbGRzIHRoZSBDaGFuZ2VMb2cuaHRtbCAtLT4KKzx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiCisgIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj4KKworICA8IS0tIEltcG9ydCB0aGUgcmVzdCBvZiB0aGUgc2l0ZSBzdHlsZXNoZWV0cyAtLT4KKyAgPHhzbDppbXBvcnQgaHJlZj0ic2l0ZS54c2wiLz4KKworICA8IS0tIEdlbmVyYXRlIFhIVE1MLTEuMCB0cmFuc2l0aW9uYWwgLS0+CisgIDx4c2w6b3V0cHV0IG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgaW5kZW50PSJ5ZXMiCisgICAgICBkb2N0eXBlLXB1YmxpYz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICBkb2N0eXBlLXN5c3RlbT0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCIvPgorCisgIDx4c2w6cGFyYW0gbmFtZT0ibW9kdWxlIj5saWJ4bWwyPC94c2w6cGFyYW0+CisKKyAgPCEtLSBUaGUgdGFibGUgb2YgY29udGVudCBmb3IgdGhlIEhUTUwgcGFnZSAtLT4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJtZW51X25hbWUiPkFQSSBNZW51PC94c2w6dmFyaWFibGU+CisgIDx4c2w6dmFyaWFibGUgbmFtZT0iZGV2ZWx0b2MiPgorICAgIDxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIKKyAgICAgICAgICBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij4KKyAgICAgIDxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiLz4KKyAgICAgIDxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iLz4KKyAgICA8L2Zvcm0+CisgICAgPHVsPjwhLS0gc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMWVtIiAtLT4KKyAgICAgIDxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIKKyAgICAgICAgICAgICBocmVmPSJ7JGhyZWZfYmFzZX1pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT4KKyAgICAgIDxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgCisgICAgICAgICAgICAgaHJlZj0ieyRocmVmX2Jhc2V9ZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPgorICAgICAgPGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiAKKyAgICAgICAgICAgICBocmVmPSJ7JGhyZWZfYmFzZX1odG1sL2luZGV4Lmh0bWwiPk1vZHVsZXMgSW5kZXg8L2E+PC9saT4KKyAgICAgIDxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgCisgICAgICAgICAgICAgaHJlZj0ieyRocmVmX2Jhc2V9ZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPgorICAgICAgPGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIgorICAgICAgICAgICAgIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJ7JGhyZWZfYmFzZX1ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+CisgICAgPC91bD4KKyAgPC94c2w6dmFyaWFibGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iYnVnIj4KKyAgICA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD17QG51bWJlcn0iPgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbnVtYmVyIi8+PC9hPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Iml0ZW0iPgorICAgIDxsaT48eHNsOmFwcGx5LXRlbXBsYXRlcy8+PC9saT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZW50cnkiPgorICAgIAorICAgIDxwPgorICAgIDxiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAd2hvIi8+PC9iPgorICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGRhdGUiLz4KKyAgICAgICA8eHNsOnRleHQ+IDwveHNsOnRleHQ+CisgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB0aW1lem9uZSIvPgorICAgIDx1bD4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iaXRlbSIvPgorICAgIDwvdWw+CisgICAgPC9wPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJsb2ciPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGl0bGUiPkNoYW5nZUxvZyBsYXN0IGVudHJpZXMgb2YgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRtb2R1bGUiLz48L3hzbDp2YXJpYWJsZT4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJPHhzbDplbGVtZW50IG5hbWU9InRpdGxlIj4KKwkgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz4KKwk8L3hzbDplbGVtZW50PgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGl0bGVib3giPgorCSAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiIHNlbGVjdD0iJHRpdGxlIi8+CisJICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRldmVsdG9jIi8+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisJCQkJICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImVudHJ5Ii8+CisJCQkJCTxwPjxhIGhyZWY9InskaHJlZl9iYXNlfWJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9ib2R5PgorICAgICAgPC9odG1sPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0RPTS5naWYgYi9saWJ4bWwyLTIuNy43L2RvYy9ET00uZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0NDg4MmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9ET00uZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL0RPTS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvRE9NLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFjZGRlNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0RPTS5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+RE9NIFByaW5jaXBsZXM8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkRPTSBQcmluY2lwbGVzPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvRE9NLyI+RE9NPC9hPiBzdGFuZHMgZm9yIHRoZSA8ZW0+RG9jdW1lbnQKK09iamVjdCBNb2RlbDwvZW0+OyB0aGlzIGlzIGFuIEFQSSBmb3IgYWNjZXNzaW5nIFhNTCBvciBIVE1MIHN0cnVjdHVyZWQKK2RvY3VtZW50cy4gTmF0aXZlIHN1cHBvcnQgZm9yIERPTSBpbiBHbm9tZSBpcyBvbiB0aGUgd2F5IChtb2R1bGUgZ25vbWUtZG9tKSwKK2FuZCB3aWxsIGJlIGJhc2VkIG9uIGdub21lLXhtbC4gVGhpcyB3aWxsIGJlIGEgZmFyIGNsZWFuZXIgaW50ZXJmYWNlIHRvCittYW5pcHVsYXRlIFhNTCBmaWxlcyB3aXRoaW4gR25vbWUgc2luY2UgaXQgd29uJ3QgZXhwb3NlIHRoZSBpbnRlcm5hbAorc3RydWN0dXJlLjwvcD48cD5UaGUgY3VycmVudCBET00gaW1wbGVtZW50YXRpb24gb24gdG9wIG9mIGxpYnhtbDIgaXMgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdm4uZ25vbWUub3JnL3ZpZXd2Yy9nZG9tZTIvdHJ1bmsvIj5nZG9tZTIgR25vbWUgbW9kdWxlPC9hPiwgdGhpcworaXMgYSBmdWxsIERPTSBpbnRlcmZhY2UsIHRoYW5rcyB0byBQYW9sbyBDYXNhcmluaSwgY2hlY2sgdGhlIDxhIGhyZWY9Imh0dHA6Ly9nZG9tZTIuY3MudW5pYm8uaXQvIj5HZG9tZTIgaG9tZXBhZ2U8L2E+IGZvciBtb3JlCitpbmZvcm1hdGlvbi48L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9GQVEuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL0ZBUS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MmIyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9GQVEuaHRtbApAQCAtMCwwICsxLDI4MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5GQVE8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkZBUTwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT48bGk+PGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPjxsaT48YSBocmVmPSJuZXdzLmh0bWwiPlJlbGVhc2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhNTGluZm8uaHRtbCI+WE1MPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+VGFibGUgb2YgQ29udGVudHM6PC9wPjx1bD48bGk+PGEgaHJlZj0iRkFRLmh0bWwjTGljZW5zZSI+TGljZW5zZShzKTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iRkFRLmh0bWwjSW5zdGFsbGF0aSI+SW5zdGFsbGF0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJGQVEuaHRtbCNDb21waWxhdGlvIj5Db21waWxhdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iRkFRLmh0bWwjRGV2ZWxvcGVyIj5EZXZlbG9wZXIgY29ybmVyPC9hPjwvbGk+Cis8L3VsPjxoMz48YSBuYW1lPSJMaWNlbnNlIiBpZD0iTGljZW5zZSI+TGljZW5zZTwvYT4ocyk8L2gzPjxvbD48bGk+PGVtPkxpY2Vuc2luZyBUZXJtcyBmb3IgbGlieG1sPC9lbT4KKyAgICA8cD5saWJ4bWwyIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLmh0bWwiPk1JVAorICAgIExpY2Vuc2U8L2E+OyBzZWUgdGhlIGZpbGUgQ29weXJpZ2h0IGluIHRoZSBkaXN0cmlidXRpb24gZm9yIHRoZSBwcmVjaXNlCisgICAgd29yZGluZzwvcD4KKyAgPC9saT4KKyAgPGxpPjxlbT5DYW4gSSBlbWJlZCBsaWJ4bWwyIGluIGEgcHJvcHJpZXRhcnkgYXBwbGljYXRpb24gPzwvZW0+CisgICAgPHA+WWVzLiBUaGUgTUlUIExpY2Vuc2UgYWxsb3dzIHlvdSB0byBrZWVwIHByb3ByaWV0YXJ5IHRoZSBjaGFuZ2VzIHlvdQorICAgIG1hZGUgdG8gbGlieG1sLCBidXQgaXQgd291bGQgYmUgZ3JhY2VmdWwgdG8gc2VuZC1iYWNrIGJ1ZyBmaXhlcyBhbmQKKyAgICBpbXByb3ZlbWVudHMgYXMgcGF0Y2hlcyBmb3IgcG9zc2libGUgaW5jb3Jwb3JhdGlvbiBpbiB0aGUgbWFpbgorICAgIGRldmVsb3BtZW50IHRyZWUuPC9wPgorICA8L2xpPgorPC9vbD48aDM+PGEgbmFtZT0iSW5zdGFsbGF0aSIgaWQ9Ikluc3RhbGxhdGkiPkluc3RhbGxhdGlvbjwvYT48L2gzPjxvbD48bGk+PHN0cm9uZz48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMCI+RG8gTm90IFVzZQorICAgIGxpYnhtbDE8L3NwYW4+PC9zdHJvbmc+LCB1c2UgbGlieG1sMjwvbGk+CisgIDxwPjwvcD4KKyAgPGxpPjxlbT5XaGVyZSBjYW4gSSBnZXQgbGlieG1sPC9lbT4gPworICAgIDxwPlRoZSBvcmlnaW5hbCBkaXN0cmlidXRpb24gY29tZXMgZnJvbSA8YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy9saWJ4bWwyLyI+eG1sc29mdC5vcmc8L2E+IG9yIDxhIGhyZWY9ImZ0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvbGlieG1sMi8yLjYvIj5nbm9tZS5vcmc8L2E+PC9wPgorICAgIDxwPk1vc3QgTGludXggYW5kIEJTRCBkaXN0cmlidXRpb25zIGluY2x1ZGUgbGlieG1sLCB0aGlzIGlzIHByb2JhYmx5IHRoZQorICAgIHNhZmVyIHdheSBmb3IgZW5kLXVzZXJzIHRvIHVzZSBsaWJ4bWwuPC9wPgorICAgIDxwPkRhdmlkIERvb2xpbiBwcm92aWRlcyBwcmVjb21waWxlZCBXaW5kb3dzIHZlcnNpb25zIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi8gICAgICAgICAiPmh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi88L2E+PC9wPgorICA8L2xpPgorICA8cD48L3A+CisgIDxsaT48ZW0+SSBzZWUgbGlieG1sIGFuZCBsaWJ4bWwyIHJlbGVhc2VzLCB3aGljaCBvbmUgc2hvdWxkIEkgaW5zdGFsbCA/PC9lbT4KKyAgICA8dWw+PGxpPklmIHlvdSBhcmUgbm90IGNvbnN0cmFpbmVkIGJ5IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXNzdWVzIHdpdGgKKyAgICAgICAgZXhpc3RpbmcgYXBwbGljYXRpb25zLCBpbnN0YWxsIGxpYnhtbDIgb25seTwvbGk+CisgICAgICA8bGk+SWYgeW91IGFyZSBub3QgZG9pbmcgZGV2ZWxvcG1lbnQsIHlvdSBjYW4gc2FmZWx5IGluc3RhbGwgYm90aC4KKyAgICAgICAgVXN1YWxseSB0aGUgcGFja2FnZXMgPGEgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwuaHRtbCI+bGlieG1sPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwyLmh0bWwiPmxpYnhtbDI8L2E+IGFyZQorICAgICAgICBjb21wYXRpYmxlICh0aGlzIGlzIG5vdCB0aGUgY2FzZSBmb3IgZGV2ZWxvcG1lbnQgcGFja2FnZXMpLjwvbGk+CisgICAgICA8bGk+SWYgeW91IGFyZSBhIGRldmVsb3BlciBhbmQgeW91ciBzeXN0ZW0gcHJvdmlkZXMgc2VwYXJhdGUgcGFja2FnaW5nCisgICAgICAgIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCB0aGUgZGV2ZWxvcG1lbnQgY29tcG9uZW50cywgaXQgaXMgcG9zc2libGUKKyAgICAgICAgdG8gaW5zdGFsbCBsaWJ4bWwgYW5kIGxpYnhtbDIsIGFuZCBhbHNvIDxhIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sLWRldmVsLmh0bWwiPmxpYnhtbC1kZXZlbDwvYT4KKyAgICAgICAgYW5kIDxhIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sMi1kZXZlbC5odG1sIj5saWJ4bWwyLWRldmVsPC9hPgorICAgICAgICB0b28gZm9yIGxpYnhtbDIgJmd0Oz0gMi4zLjA8L2xpPgorICAgICAgPGxpPklmIHlvdSBhcmUgZGV2ZWxvcGluZyBhIG5ldyBhcHBsaWNhdGlvbiwgcGxlYXNlIGRldmVsb3AgYWdhaW5zdAorICAgICAgICBsaWJ4bWwyKC1kZXZlbCk8L2xpPgorICAgIDwvdWw+PC9saT4KKyAgPGxpPjxlbT5JIGNhbid0IGluc3RhbGwgdGhlIGxpYnhtbCBwYWNrYWdlLCBpdCBjb25mbGljdHMgd2l0aCBsaWJ4bWwwPC9lbT4KKyAgICA8cD5Zb3UgcHJvYmFibHkgaGF2ZSBhbiBvbGQgbGlieG1sMCBwYWNrYWdlIHVzZWQgdG8gcHJvdmlkZSB0aGUgc2hhcmVkCisgICAgbGlicmFyeSBmb3IgbGlieG1sLnNvLjAsIHlvdSBjYW4gcHJvYmFibHkgc2FmZWx5IHJlbW92ZSBpdC4gVGhlIGxpYnhtbAorICAgIHBhY2thZ2VzIHByb3ZpZGVkIG9uIDxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvIj54bWxzb2Z0Lm9yZzwvYT4gcHJvdmlkZQorICAgIGxpYnhtbC5zby4wPC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgY2FuJ3QgaW5zdGFsbCB0aGUgbGlieG1sKDIpIFJQTSBwYWNrYWdlIGR1ZSB0byBmYWlsZWQKKyAgICBkZXBlbmRlbmNpZXM8L2VtPgorICAgIDxwPlRoZSBtb3N0IGdlbmVyaWMgc29sdXRpb24gaXMgdG8gcmUtZmV0Y2ggdGhlIGxhdGVzdCBzcmMucnBtICwgYW5kCisgICAgcmVidWlsZCBpdCBsb2NhbGx5IHdpdGg8L3A+CisgICAgPHA+PGNvZGU+cnBtIC0tcmVidWlsZCBsaWJ4bWwoMikteHh4LnNyYy5ycG08L2NvZGU+LjwvcD4KKyAgICA8cD5JZiBldmVyeXRoaW5nIGdvZXMgd2VsbCBpdCB3aWxsIGdlbmVyYXRlIHR3byBiaW5hcnkgcnBtIHBhY2thZ2VzIChvbmUKKyAgICBwcm92aWRpbmcgdGhlIHNoYXJlZCBsaWJzIGFuZCB4bWxsaW50LCBhbmQgdGhlIG90aGVyIG9uZSwgdGhlIC1kZXZlbAorICAgIHBhY2thZ2UsIHByb3ZpZGluZyBpbmNsdWRlcywgc3RhdGljIGxpYnJhcmllcyBhbmQgc2NyaXB0cyBuZWVkZWQgdG8gYnVpbGQKKyAgICBhcHBsaWNhdGlvbnMgd2l0aCBsaWJ4bWwoMikpIHRoYXQgeW91IGNhbiBpbnN0YWxsIGxvY2FsbHkuPC9wPgorICA8L2xpPgorPC9vbD48aDM+PGEgbmFtZT0iQ29tcGlsYXRpbyIgaWQ9IkNvbXBpbGF0aW8iPkNvbXBpbGF0aW9uPC9hPjwvaDM+PG9sPjxsaT48ZW0+V2hhdCBpcyB0aGUgcHJvY2VzcyB0byBjb21waWxlIGxpYnhtbDIgPzwvZW0+CisgICAgPHA+QXMgbW9zdCBVTklYIGxpYnJhcmllcyBsaWJ4bWwyIGZvbGxvd3MgdGhlICJzdGFuZGFyZCI6PC9wPgorICAgIDxwPjxjb2RlPmd1bnppcCAtYyB4eHgudGFyLmd6IHwgdGFyIHh2ZiAtPC9jb2RlPjwvcD4KKyAgICA8cD48Y29kZT5jZCBsaWJ4bWwteHh4eDwvY29kZT48L3A+CisgICAgPHA+PGNvZGU+Li9jb25maWd1cmUgLS1oZWxwPC9jb2RlPjwvcD4KKyAgICA8cD50byBzZWUgdGhlIG9wdGlvbnMsIHRoZW4gdGhlIGNvbXBpbGF0aW9uL2luc3RhbGxhdGlvbiBwcm9wZXI8L3A+CisgICAgPHA+PGNvZGU+Li9jb25maWd1cmUgW3Bvc3NpYmxlIG9wdGlvbnNdPC9jb2RlPjwvcD4KKyAgICA8cD48Y29kZT5tYWtlPC9jb2RlPjwvcD4KKyAgICA8cD48Y29kZT5tYWtlIGluc3RhbGw8L2NvZGU+PC9wPgorICAgIDxwPkF0IHRoYXQgcG9pbnQgeW91IG1heSBoYXZlIHRvIHJlcnVuIGxkY29uZmlnIG9yIGEgc2ltaWxhciB1dGlsaXR5IHRvCisgICAgdXBkYXRlIHlvdXIgbGlzdCBvZiBpbnN0YWxsZWQgc2hhcmVkIGxpYnMuPC9wPgorICA8L2xpPgorICA8bGk+PGVtPldoYXQgb3RoZXIgbGlicmFyaWVzIGFyZSBuZWVkZWQgdG8gY29tcGlsZS9pbnN0YWxsIGxpYnhtbDIgPzwvZW0+CisgICAgPHA+TGlieG1sMiBkb2VzIG5vdCByZXF1aXJlIGFueSBvdGhlciBsaWJyYXJ5LCB0aGUgbm9ybWFsIEMgQU5TSSBBUEkKKyAgICBzaG91bGQgYmUgc3VmZmljaWVudCAocGxlYXNlIHJlcG9ydCBhbnkgdmlvbGF0aW9uIHRvIHRoaXMgcnVsZSB5b3UgbWF5CisgICAgZmluZCkuPC9wPgorICAgIDxwPkhvd2V2ZXIgaWYgZm91bmQgYXQgY29uZmlndXJhdGlvbiB0aW1lIGxpYnhtbDIgd2lsbCBkZXRlY3QgYW5kIHVzZSB0aGUKKyAgICBmb2xsb3dpbmcgbGliczo8L3A+CisgICAgPHVsPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmluZm8temlwLm9yZy9wdWIvaW5mb3ppcC96bGliLyI+bGliejwvYT4gOiBhCisgICAgICAgIGhpZ2hseSBwb3J0YWJsZSBhbmQgYXZhaWxhYmxlIHdpZGVseSBjb21wcmVzc2lvbiBsaWJyYXJ5LjwvbGk+CisgICAgICA8bGk+aWNvbnY6IGEgcG93ZXJmdWwgY2hhcmFjdGVyIGVuY29kaW5nIGNvbnZlcnNpb24gbGlicmFyeS4gSXQgaXMKKyAgICAgICAgaW5jbHVkZWQgYnkgZGVmYXVsdCBpbiByZWNlbnQgZ2xpYmMgbGlicmFyaWVzLCBzbyBpdCBkb2Vzbid0IG5lZWQgdG8KKyAgICAgICAgYmUgaW5zdGFsbGVkIHNwZWNpZmljYWxseSBvbiBMaW51eC4gSXQgbm93IHNlZW1zIGEgPGEgaHJlZj0iaHR0cDovL3d3dy5vcGVubmMub3JnL29ubGluZXB1YnMvNzkwODc5OS94c2gvaWNvbnYuaHRtbCI+cGFydAorICAgICAgICBvZiB0aGUgb2ZmaWNpYWwgVU5JWDwvYT4gc3BlY2lmaWNhdGlvbi4gSGVyZSBpcyBvbmUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252LyI+aW1wbGVtZW50YXRpb24gb2YgdGhlCisgICAgICAgIGxpYnJhcnk8L2E+IHdoaWNoIHNvdXJjZSBjYW4gYmUgZm91bmQgPGEgaHJlZj0iZnRwOi8vZnRwLmlsb2cuZnIvcHViL1VzZXJzL2hhaWJsZS9nbnUvIj5oZXJlPC9hPi48L2xpPgorICAgIDwvdWw+PC9saT4KKyAgPHA+PC9wPgorICA8bGk+PGVtPk1ha2UgY2hlY2sgZmFpbHMgb24gc29tZSBwbGF0Zm9ybXM8L2VtPgorICAgIDxwPlNvbWV0aW1lcyB0aGUgcmVncmVzc2lvbiB0ZXN0cycgcmVzdWx0cyBkb24ndCBjb21wbGV0ZWx5IG1hdGNoIHRoZQorICAgIHZhbHVlIHByb2R1Y2VkIGJ5IHRoZSBwYXJzZXIsIGFuZCB0aGUgbWFrZWZpbGUgdXNlcyBkaWZmIHRvIHByaW50IHRoZQorICAgIGRlbHRhLiBPbiBzb21lIHBsYXRmb3JtcyB0aGUgZGlmZiByZXR1cm4gYnJlYWtzIHRoZSBjb21waWxhdGlvbiBwcm9jZXNzOworICAgIGlmIHRoZSBkaWZmIGlzIHNtYWxsIHRoaXMgaXMgcHJvYmFibHkgbm90IGEgc2VyaW91cyBwcm9ibGVtLjwvcD4KKyAgICA8cD5Tb21ldGltZXMgKGVzcGVjaWFsbHkgb24gU29sYXJpcykgbWFrZSBjaGVja3MgZmFpbCBkdWUgdG8gbGltaXRhdGlvbnMKKyAgICBpbiBtYWtlLiBUcnkgdXNpbmcgR05VLW1ha2UgaW5zdGVhZC48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+SSB1c2UgdGhlIFNWTiB2ZXJzaW9uIGFuZCB0aGVyZSBpcyBubyBjb25maWd1cmUgc2NyaXB0PC9lbT4KKyAgICA8cD5UaGUgY29uZmlndXJlIHNjcmlwdCAoYW5kIG90aGVyIE1ha2VmaWxlcykgYXJlIGdlbmVyYXRlZC4gVXNlIHRoZQorICAgIGF1dG9nZW4uc2ggc2NyaXB0IHRvIHJlZ2VuZXJhdGUgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgYW5kIE1ha2VmaWxlcywKKyAgICBsaWtlOjwvcD4KKyAgICA8cD48Y29kZT4uL2F1dG9nZW4uc2ggLS1wcmVmaXg9L3VzciAtLWRpc2FibGUtc2hhcmVkPC9jb2RlPjwvcD4KKyAgPC9saT4KKyAgPGxpPjxlbT5JIGhhdmUgdHJvdWJsZXMgd2hlbiBydW5uaW5nIG1ha2UgdGVzdHMgd2l0aCBnY2MtMy4wPC9lbT4KKyAgICA8cD5JdCBzZWVtcyB0aGUgaW5pdGlhbCByZWxlYXNlIG9mIGdjYy0zLjAgaGFzIGEgcHJvYmxlbSB3aXRoIHRoZQorICAgIG9wdGltaXplciB3aGljaCBtaXNjb21waWxlcyB0aGUgVVJJIG1vZHVsZS4gUGxlYXNlIHVzZSBhbm90aGVyCisgICAgY29tcGlsZXIuPC9wPgorICA8L2xpPgorPC9vbD48aDM+PGEgbmFtZT0iRGV2ZWxvcGVyIiBpZD0iRGV2ZWxvcGVyIj5EZXZlbG9wZXI8L2E+IGNvcm5lcjwvaDM+PG9sPjxsaT48ZW0+VHJvdWJsZXMgY29tcGlsaW5nIG9yIGxpbmtpbmcgcHJvZ3JhbXMgdXNpbmcgbGlieG1sMjwvZW0+CisgICAgPHA+VXN1YWxseSB0aGUgcHJvYmxlbSBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgZ2V0CisgICAgdGhlIHJpZ2h0IGNvbXBpbGF0aW9uIG9yIGxpbmtpbmcgZmxhZ3MuIFRoZXJlIGlzIGEgc21hbGwgc2hlbGwgc2NyaXB0CisgICAgPGNvZGU+eG1sMi1jb25maWc8L2NvZGU+IHdoaWNoIGlzIGluc3RhbGxlZCBhcyBwYXJ0IG9mIGxpYnhtbDIgdXN1YWwKKyAgICBpbnN0YWxsIHByb2Nlc3Mgd2hpY2ggcHJvdmlkZXMgdGhvc2UgZmxhZ3MuIFVzZTwvcD4KKyAgICA8cD48Y29kZT54bWwyLWNvbmZpZyAtLWNmbGFnczwvY29kZT48L3A+CisgICAgPHA+dG8gZ2V0IHRoZSBjb21waWxhdGlvbiBmbGFncyBhbmQ8L3A+CisgICAgPHA+PGNvZGU+eG1sMi1jb25maWcgLS1saWJzPC9jb2RlPjwvcD4KKyAgICA8cD50byBnZXQgdGhlIGxpbmtlciBmbGFncy4gVXN1YWxseSB0aGlzIGlzIGRvbmUgZGlyZWN0bHkgZnJvbSB0aGUKKyAgICBNYWtlZmlsZSBhczo8L3A+CisgICAgPHA+PGNvZGU+Q0ZMQUdTPWB4bWwyLWNvbmZpZyAtLWNmbGFnc2A8L2NvZGU+PC9wPgorICAgIDxwPjxjb2RlPkxJQlM9YHhtbDItY29uZmlnIC0tbGlic2A8L2NvZGU+PC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgd2FudCB0byBpbnN0YWxsIG15IG93biBjb3B5IG9mIGxpYnhtbDIgaW4gbXkgaG9tZSBkaXJlY3RvcnkgYW5kCisgICAgbGluayBteSBwcm9ncmFtcyBhZ2FpbnN0IGl0LCBidXQgaXQgZG9lc24ndCB3b3JrPC9lbT4KKyAgICA8cD5UaGVyZSBhcmUgbWFueSBkaWZmZXJlbnQgd2F5cyB0byBhY2NvbXBsaXNoIHRoaXMuICBIZXJlIGlzIG9uZSB3YXkgdG8KKyAgICBkbyB0aGlzIHVuZGVyIExpbnV4LiAgU3VwcG9zZSB5b3VyIGhvbWUgZGlyZWN0b3J5IGlzIDxjb2RlPi9ob21lL3VzZXIuCisgICAgPC9jb2RlPlRoZW46PC9wPgorICAgIDx1bD48bGk+Q3JlYXRlIGEgc3ViZGlyZWN0b3J5LCBsZXQncyBjYWxsIGl0IDxjb2RlPm15eG1sPC9jb2RlPjwvbGk+CisgICAgICA8bGk+dW5wYWNrIHRoZSBsaWJ4bWwyIGRpc3RyaWJ1dGlvbiBpbnRvIHRoYXQgc3ViZGlyZWN0b3J5PC9saT4KKyAgICAgIDxsaT5jaGRpciBpbnRvIHRoZSB1bnBhY2tlZCBkaXN0cmlidXRpb24KKyAgICAgICAgKDxjb2RlPi9ob21lL3VzZXIvbXl4bWwvbGlieG1sMiA8L2NvZGU+KTwvbGk+CisgICAgICA8bGk+Y29uZmlndXJlIHRoZSBsaWJyYXJ5IHVzaW5nIHRoZSAiPGNvZGU+LS1wcmVmaXg8L2NvZGU+IiBzd2l0Y2gsCisgICAgICAgIHNwZWNpZnlpbmcgYW4gaW5zdGFsbGF0aW9uIHN1YmRpcmVjdG9yeSBpbgorICAgICAgICA8Y29kZT4vaG9tZS91c2VyL215eG1sPC9jb2RlPiwgZS5nLgorICAgICAgICA8cD48Y29kZT4uL2NvbmZpZ3VyZSAtLXByZWZpeCAvaG9tZS91c2VyL215eG1sL3htbGluc3Q8L2NvZGU+IHtvdGhlcgorICAgICAgICBjb25maWd1cmF0aW9uIG9wdGlvbnN9PC9wPgorICAgICAgPC9saT4KKyAgICAgIDxsaT5ub3cgcnVuIDxjb2RlPm1ha2U8L2NvZGU+IGZvbGxvd2VkIGJ5IDxjb2RlPm1ha2UgaW5zdGFsbDwvY29kZT48L2xpPgorICAgICAgPGxpPkF0IHRoaXMgcG9pbnQsIHRoZSBpbnN0YWxsYXRpb24gc3ViZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBjb21wbGV0ZQorICAgICAgICAicHJpdmF0ZSIgaW5jbHVkZSBmaWxlcywgbGlicmFyeSBmaWxlcyBhbmQgYmluYXJ5IHByb2dyYW0gZmlsZXMgKGUuZy4KKyAgICAgICAgeG1sbGludCksIGxvY2F0ZWQgaW4KKyAgICAgICAgPHA+PGNvZGU+L2hvbWUvdXNlci9teXhtbC94bWxpbnN0L2xpYiwKKyAgICAgICAgL2hvbWUvdXNlci9teXhtbC94bWxpbnN0L2luY2x1ZGUgPC9jb2RlPiBhbmQgPGNvZGU+CisgICAgICAgIC9ob21lL3VzZXIvbXl4bWwveG1saW5zdC9iaW48L2NvZGU+PC9wPgorICAgICAgICByZXNwZWN0aXZlbHkuPC9saT4KKyAgICAgIDxsaT5JbiBvcmRlciB0byB1c2UgdGhpcyAicHJpdmF0ZSIgbGlicmFyeSwgeW91IHNob3VsZCBmaXJzdCBhZGQgaXQgdG8KKyAgICAgICAgdGhlIGJlZ2lubmluZyBvZiB5b3VyIGRlZmF1bHQgUEFUSCAoc28gdGhhdCB5b3VyIG93biBwcml2YXRlIHByb2dyYW0KKyAgICAgICAgZmlsZXMgc3VjaCBhcyB4bWxsaW50IHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgc3lzdGVtCisgICAgICAgIG9uZXMpLiAgVG8gZG8gdGhpcywgdGhlIEJhc2ggY29tbWFuZCB3b3VsZCBiZQorICAgICAgICA8cD48Y29kZT5leHBvcnQgUEFUSD0vaG9tZS91c2VyL215eG1sL3htbGluc3QvYmluOiRQQVRIPC9jb2RlPjwvcD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+Tm93IHN1cHBvc2UgeW91IGhhdmUgYSBwcm9ncmFtIDxjb2RlPnRlc3QxLmM8L2NvZGU+IHRoYXQgeW91IHdvdWxkCisgICAgICAgIGxpa2UgdG8gY29tcGlsZSB3aXRoIHlvdXIgInByaXZhdGUiIGxpYnJhcnkuICBTaW1wbHkgY29tcGlsZSBpdCB1c2luZworICAgICAgICB0aGUgY29tbWFuZAorICAgICAgICA8cD48Y29kZT5nY2MgYHhtbDItY29uZmlnIC0tY2ZsYWdzIC0tbGlic2AgLW8gdGVzdCB0ZXN0LmM8L2NvZGU+PC9wPgorICAgICAgICBOb3RlIHRoYXQsIGJlY2F1c2UgeW91ciBQQVRIIGhhcyBiZWVuIHNldCB3aXRoIDxjb2RlPgorICAgICAgICAvaG9tZS91c2VyL215eG1sL3htbGluc3QvYmluPC9jb2RlPiBhdCB0aGUgYmVnaW5uaW5nLCB0aGUgeG1sMi1jb25maWcKKyAgICAgICAgcHJvZ3JhbSB3aGljaCB5b3UganVzdCBpbnN0YWxsZWQgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIHN5c3RlbQorICAgICAgICBkZWZhdWx0IG9uZSwgYW5kIHRoaXMgd2lsbCA8ZW0+YXV0b21hdGljYWxseTwvZW0+IGdldCB0aGUgY29ycmVjdAorICAgICAgICBsaWJyYXJpZXMgbGlua2VkIHdpdGggeW91ciBwcm9ncmFtLjwvbGk+CisgICAgPC91bD48L2xpPgorCisgIDxwPjwvcD4KKyAgPGxpPjxlbT54bWxEb2NEdW1wKCkgZ2VuZXJhdGVzIG91dHB1dCBvbiBvbmUgbGluZS48L2VtPgorICAgIDxwPkxpYnhtbDIgd2lsbCBub3QgPHN0cm9uZz5pbnZlbnQ8L3N0cm9uZz4gc3BhY2VzIGluIHRoZSBjb250ZW50IG9mIGEKKyAgICBkb2N1bWVudCBzaW5jZSA8c3Ryb25nPmFsbCBzcGFjZXMgaW4gdGhlIGNvbnRlbnQgb2YgYSBkb2N1bWVudCBhcmUKKyAgICBzaWduaWZpY2FudDwvc3Ryb25nPi4gSWYgeW91IGJ1aWxkIGEgdHJlZSBmcm9tIHRoZSBBUEkgYW5kIHdhbnQKKyAgICBpbmRlbnRhdGlvbjo8L3A+CisgICAgPG9sPjxsaT50aGUgY29ycmVjdCB3YXkgaXMgdG8gZ2VuZXJhdGUgdGhvc2UgeW91cnNlbGYgdG9vLjwvbGk+CisgICAgICA8bGk+dGhlIGRhbmdlcm91cyB3YXkgaXMgdG8gYXNrIGxpYnhtbDIgdG8gYWRkIHRob3NlIGJsYW5rcyB0byB5b3VyCisgICAgICAgIGNvbnRlbnQgPHN0cm9uZz5tb2RpZnlpbmcgdGhlIGNvbnRlbnQgb2YgeW91ciBkb2N1bWVudCBpbiB0aGUKKyAgICAgICAgcHJvY2Vzczwvc3Ryb25nPi4gVGhlIHJlc3VsdCBtYXkgbm90IGJlIHdoYXQgeW91IGV4cGVjdC4gVGhlcmUgaXMKKyAgICAgICAgPHN0cm9uZz5OTzwvc3Ryb25nPiB3YXkgdG8gZ3VhcmFudGVlIHRoYXQgc3VjaCBhIG1vZGlmaWNhdGlvbiB3b24ndAorICAgICAgICBhZmZlY3Qgb3RoZXIgcGFydHMgb2YgdGhlIGNvbnRlbnQgb2YgeW91ciBkb2N1bWVudC4gU2VlIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQKKyAgICAgICAgKCk8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdHJlZS5odG1sI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZQorICAgICAgICAoKTwvYT48L2xpPgorICAgIDwvb2w+PC9saT4KKyAgPHA+PC9wPgorICA8bGk+PGVtPkV4dHJhIG5vZGVzIGluIHRoZSBkb2N1bWVudDo8L2VtPgorICAgIDxwPjxlbT5Gb3IgYW4gWE1MIGZpbGUgYXMgYmVsb3c6PC9lbT48L3A+CisgICAgPHByZT4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKKyZsdDtQTEFOIHhtbG5zPSJodHRwOi8vd3d3LmFyZ3VzLmNhL2F1dG90ZXN0LzEuMC8iJmd0OworJmx0O05PREUgQ29tbUZsYWc9IjAiLyZndDsKKyZsdDtOT0RFIENvbW1GbGFnPSIxIi8mZ3Q7CismbHQ7L1BMQU4mZ3Q7PC9wcmU+CisgICAgPHA+PGVtPmFmdGVyIHBhcnNpbmcgaXQgd2l0aCB0aGUgZnVuY3Rpb24KKyAgICBweG1sRG9jPXhtbFBhcnNlRmlsZSguLi4pOzwvZW0+PC9wPgorICAgIDxwPjxlbT5JIHdhbnQgdG8gdGhlIGdldCB0aGUgY29udGVudCBvZiB0aGUgZmlyc3Qgbm9kZSAobm9kZSB3aXRoIHRoZQorICAgIENvbW1GbGFnPSIwIik8L2VtPjwvcD4KKyAgICA8cD48ZW0+c28gSSBkaWQgaXQgYXMgZm9sbG93aW5nOzwvZW0+PC9wPgorICAgIDxwcmU+eG1sTm9kZVB0ciBwbm9kZTsKK3Bub2RlPXB4bWxEb2MtJmd0O2NoaWxkcmVuLSZndDtjaGlsZHJlbjs8L3ByZT4KKyAgICA8cD48ZW0+YnV0IGl0IGRvZXMgbm90IHdvcmsuIElmIEkgY2hhbmdlIGl0IHRvPC9lbT48L3A+CisgICAgPHByZT5wbm9kZT1weG1sRG9jLSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW4tJmd0O25leHQ7PC9wcmU+CisgICAgPHA+PGVtPnRoZW4gaXQgd29ya3MuICBDYW4gc29tZW9uZSBleHBsYWluIGl0IHRvIG1lLjwvZW0+PC9wPgorICAgIDxwPjwvcD4KKyAgICA8cD5JbiBYTUwgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50IGFyZSBzaWduaWZpY2FudAorICAgIDxzdHJvbmc+aW5jbHVkaW5nIGJsYW5rcyBhbmQgZm9ybWF0dGluZyBsaW5lIGJyZWFrczwvc3Ryb25nPi48L3A+CisgICAgPHA+VGhlIGV4dHJhIG5vZGVzIHlvdSBhcmUgd29uZGVyaW5nIGFib3V0IGFyZSBqdXN0IHRoYXQsIHRleHQgbm9kZXMgd2l0aAorICAgIHRoZSBmb3JtYXR0aW5nIHNwYWNlcyB3aGljaCBhcmUgcGFydCBvZiB0aGUgZG9jdW1lbnQgYnV0IHRoYXQgcGVvcGxlIHRlbmQKKyAgICB0byBmb3JnZXQuIFRoZXJlIGlzIGEgZnVuY3Rpb24gPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxLZWVwQmxhbmtzRGVmYXVsdAorICAgICgpPC9hPiAgdG8gcmVtb3ZlIHRob3NlIGF0IHBhcnNlIHRpbWUsIGJ1dCB0aGF0J3MgYW4gaGV1cmlzdGljLCBhbmQgaXRzCisgICAgdXNlIHNob3VsZCBiZSBsaW1pdGVkIHRvIGNhc2VzIHdoZXJlIHlvdSBhcmUgY2VydGFpbiB0aGVyZSBpcyBubworICAgIG1peGVkLWNvbnRlbnQgaW4gdGhlIGRvY3VtZW50LjwvcD4KKyAgPC9saT4KKyAgPGxpPjxlbT5JIGdldCBjb21waWxhdGlvbiBlcnJvcnMgb2YgZXhpc3RpbmcgY29kZSBsaWtlIHdoZW4gYWNjZXNzaW5nCisgICAgPHN0cm9uZz5yb290PC9zdHJvbmc+IG9yIDxzdHJvbmc+Y2hpbGQgZmllbGRzPC9zdHJvbmc+IG9mIG5vZGVzLjwvZW0+CisgICAgPHA+WW91IGFyZSBjb21waWxpbmcgY29kZSBkZXZlbG9wZWQgZm9yIGxpYnhtbCB2ZXJzaW9uIDEgYW5kIHVzaW5nIGEKKyAgICBsaWJ4bWwyIGRldmVsb3BtZW50IGVudmlyb25tZW50LiBFaXRoZXIgc3dpdGNoIGJhY2sgdG8gbGlieG1sIHYxIGRldmVsIG9yCisgICAgZXZlbiBiZXR0ZXIgZml4IHRoZSBjb2RlIHRvIGNvbXBpbGUgd2l0aCBsaWJ4bWwyIChvciBib3RoKSBieSA8YSBocmVmPSJ1cGdyYWRlLmh0bWwiPmZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zPC9hPi48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+SSBnZXQgY29tcGlsYXRpb24gZXJyb3JzIGFib3V0IG5vbiBleGlzdGluZworICAgIDxzdHJvbmc+eG1sUm9vdE5vZGU8L3N0cm9uZz4gb3IgPHN0cm9uZz54bWxDaGlsZHJlbk5vZGU8L3N0cm9uZz4KKyAgICBmaWVsZHMuPC9lbT4KKyAgICA8cD5UaGUgc291cmNlIGNvZGUgeW91IGFyZSB1c2luZyBoYXMgYmVlbiA8YSBocmVmPSJ1cGdyYWRlLmh0bWwiPnVwZ3JhZGVkPC9hPiB0byBiZSBhYmxlIHRvIGNvbXBpbGUgd2l0aCBib3RoIGxpYnhtbAorICAgIGFuZCBsaWJ4bWwyLCBidXQgeW91IG5lZWQgdG8gaW5zdGFsbCBhIG1vcmUgcmVjZW50IHZlcnNpb246CisgICAgbGlieG1sKC1kZXZlbCkgJmd0Oz0gMS44Ljggb3IgbGlieG1sMigtZGV2ZWwpICZndDs9IDIuMS4wPC9wPgorICA8L2xpPgorICA8bGk+PGVtPlJhbmRvbSBjcmFzaGVzIGluIHRocmVhZGVkIGFwcGxpY2F0aW9uczwvZW0+CisgICAgPHA+UmVhZCBhbmQgZm9sbG93IGFsbCBhZHZpY2VzIG9uIHRoZSA8YSBocmVmPSJ0aHJlYWRzLmh0bWwiPnRocmVhZAorICAgIHNhZmV0eTwvYT4gcGFnZSwgYW5kIG1ha2UgMTAwJSBzdXJlIHlvdSBuZXZlciBjYWxsIHhtbENsZWFudXBQYXJzZXIoKQorICAgIHdoaWxlIHRoZSBsaWJyYXJ5IG9yIGFuIFhNTCBkb2N1bWVudCBtaWdodCBzdGlsbCBiZSBpbiB1c2UgYnkgYW5vdGhlcgorICAgIHRocmVhZC48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+VGhlIGV4YW1wbGUgcHJvdmlkZWQgaW4gdGhlIHdlYiBwYWdlIGRvZXMgbm90IGNvbXBpbGUuPC9lbT4KKyAgICA8cD5JdCdzIGhhcmQgdG8gbWFpbnRhaW4gdGhlIGRvY3VtZW50YXRpb24gaW4gc3luYyB3aXRoIHRoZSBjb2RlCisgICAgJmx0O2dyaW4vJmd0OyAuLi48L3A+CisgICAgPHA+Q2hlY2sgdGhlIHByZXZpb3VzIHBvaW50cyAxLyBhbmQgMi8gcmFpc2VkIGJlZm9yZSwgYW5kIHBsZWFzZSBzZW5kCisgICAgcGF0Y2hlcy48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+V2hlcmUgY2FuIEkgZ2V0IG1vcmUgZXhhbXBsZXMgYW5kIGluZm9ybWF0aW9uIHRoYW4gcHJvdmlkZWQgb24gdGhlCisgICAgd2ViIHBhZ2U/PC9lbT4KKyAgICA8cD5JZGVhbGx5IGEgbGlieG1sMiBib29rIHdvdWxkIGJlIG5pY2UuIEkgaGF2ZSBubyBzdWNoIHBsYW4gLi4uIEJ1dCB5b3UKKyAgICBjYW46PC9wPgorICAgIDx1bD48bGk+Y2hlY2sgbW9yZSBkZWVwbHkgdGhlIDxhIGhyZWY9Imh0bWwvbGlieG1sLWxpYi5odG1sIj5leGlzdGluZworICAgICAgICBnZW5lcmF0ZWQgZG9jPC9hPjwvbGk+CisgICAgICA8bGk+aGF2ZSBhIGxvb2sgYXQgPGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCI+dGhlIHNldCBvZgorICAgICAgICBleGFtcGxlczwvYT4uPC9saT4KKyAgICAgIDxsaT5sb29rIGZvciBleGFtcGxlcyBvZiB1c2UgZm9yIGxpYnhtbDIgZnVuY3Rpb24gdXNpbmcgdGhlIEdub21lIGNvZGUKKyAgICAgICAgICBvciBieSBhc2tpbmcgb24gR29vZ2xlLjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3N2bi5nbm9tZS5vcmcvdmlld3ZjL2xpYnhtbDIvdHJ1bmsvIj5Ccm93c2UKKyAgICAgICAgdGhlIGxpYnhtbDIgc291cmNlPC9hPiAsIEkgdHJ5IHRvIHdyaXRlIGNvZGUgYXMgY2xlYW4gYW5kIGRvY3VtZW50ZWQKKyAgICAgICAgYXMgcG9zc2libGUsIHNvIGxvb2tpbmcgYXQgaXQgbWF5IGJlIGhlbHBmdWwuIEluIHBhcnRpY3VsYXIgdGhlIGNvZGUKKyAgICAgICAgb2YgPGEgaHJlZj0iaHR0cDovL3N2bi5nbm9tZS5vcmcvdmlld3ZjL2xpYnhtbDIvdHJ1bmsveG1sbGludC5jP3ZpZXc9bWFya3VwIj54bWxsaW50LmM8L2E+IGFuZCBvZiB0aGUgdmFyaW91cyB0ZXN0WFhYLmMgdGVzdCBwcm9ncmFtcyBzaG91bGQKKyAgICAgICAgcHJvdmlkZSBnb29kIGV4YW1wbGVzIG9mIGhvdyB0byBkbyB0aGluZ3Mgd2l0aCB0aGUgbGlicmFyeS48L2xpPgorICAgIDwvdWw+PC9saT4KKyAgPHA+PC9wPgorICA8bGk+PGVtPldoYXQgYWJvdXQgQysrID88L2VtPgorICAgIDxwPmxpYnhtbDIgaXMgd3JpdHRlbiBpbiBwdXJlIEMgaW4gb3JkZXIgdG8gYWxsb3cgZWFzeSByZXVzZSBvbiBhIG51bWJlcgorICAgIG9mIHBsYXRmb3JtcywgaW5jbHVkaW5nIGVtYmVkZGVkIHN5c3RlbXMuIEkgZG9uJ3QgaW50ZW5kIHRvIGNvbnZlcnQgdG8KKyAgICBDKysuPC9wPgorICAgIDxwPlRoZXJlIGlzIGhvd2V2ZXIgYSBDKysgd3JhcHBlciB3aGljaCBtYXkgZnVsZmlsbCB5b3VyIG5lZWRzOjwvcD4KKyAgICA8dWw+PGxpPmJ5IEFyaSBKb2huc29uICZsdDthcmlAYnRpZ2F0ZS5jb20mZ3Q7OgorICAgICAgICA8cD5XZWJzaXRlOiA8YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+aHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC88L2E+PC9wPgorICAgICAgICA8cD5Eb3dubG9hZDogPGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3Nob3dmaWxlcy5waHA/Z3JvdXBfaWQ9MTI5OTkiPmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9zaG93ZmlsZXMucGhwP2dyb3VwX2lkPTEyOTk5PC9hPjwvcD4KKyAgICAgIDwvbGk+CisgICAgPC91bD48L2xpPgorICA8bGk+PGVtPkhvdyB0byB2YWxpZGF0ZSBhIGRvY3VtZW50IGEgcG9zdGVyaW9yaSA/PC9lbT4KKyAgICA8cD5JdCBpcyBwb3NzaWJsZSB0byB2YWxpZGF0ZSBkb2N1bWVudHMgd2hpY2ggaGFkIG5vdCBiZWVuIHZhbGlkYXRlZCBhdAorICAgIGluaXRpYWwgcGFyc2luZyB0aW1lIG9yIGRvY3VtZW50cyB3aGljaCBoYXZlIGJlZW4gYnVpbHQgZnJvbSBzY3JhdGNoCisgICAgdXNpbmcgdGhlIEFQSS4gVXNlIHRoZSA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZCI+eG1sVmFsaWRhdGVEdGQoKTwvYT4KKyAgICBmdW5jdGlvbi4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzaW1wbHkgYWRkIGEgRFREIHRvIGFuIGV4aXN0aW5nCisgICAgZG9jdW1lbnQ6PC9wPgorICAgIDxwcmU+eG1sRG9jUHRyIGRvYzsgLyogeW91ciBleGlzdGluZyBkb2N1bWVudCAqLworeG1sRHRkUHRyIGR0ZCA9IHhtbFBhcnNlRFREKE5VTEwsIGZpbGVuYW1lX29mX2R0ZCk7IC8qIHBhcnNlIHRoZSBEVEQgKi8KKworICAgICAgICBkdGQtJmd0O25hbWUgPSB4bWxTdHJEdXAoKHhtbENoYXIqKSJyb290X25hbWUiKTsgLyogdXNlIHRoZSBnaXZlbiByb290ICovCisKKyAgICAgICAgZG9jLSZndDtpbnRTdWJzZXQgPSBkdGQ7CisgICAgICAgIGlmIChkb2MtJmd0O2NoaWxkcmVuID09IE5VTEwpIHhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKWRvYywgKHhtbE5vZGVQdHIpZHRkKTsKKyAgICAgICAgZWxzZSB4bWxBZGRQcmV2U2libGluZyhkb2MtJmd0O2NoaWxkcmVuLCAoeG1sTm9kZVB0cilkdGQpOworICAgICAgICAgIDwvcHJlPgorICA8L2xpPgorICA8bGk+PGVtPlNvIHdoYXQgaXMgdGhpcyBmdW5reSAieG1sQ2hhciIgdXNlZCBhbGwgdGhlIHRpbWU/PC9lbT4KKyAgICA8cD5JdCBpcyBhIG51bGwgdGVybWluYXRlZCBzZXF1ZW5jZSBvZiB1dGYtOCBjaGFyYWN0ZXJzLiBBbmQgb25seSB1dGYtOCEKKyAgICBZb3UgbmVlZCB0byBjb252ZXJ0IHN0cmluZ3MgZW5jb2RlZCBpbiBkaWZmZXJlbnQgd2F5cyB0byB1dGYtOCBiZWZvcmUKKyAgICBwYXNzaW5nIHRoZW0gdG8gdGhlIEFQSS4gIFRoaXMgY2FuIGJlIGFjY29tcGxpc2hlZCB3aXRoIHRoZSBpY29udiBsaWJyYXJ5CisgICAgZm9yIGluc3RhbmNlLjwvcD4KKyAgPC9saT4KKyAgPGxpPmV0YyAuLi48L2xpPgorPC9vbD48cD48L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYgYi9saWJ4bWwyLTIuNy43L2RvYy9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJkZWQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9MaWJ4bWwyLUxvZ28tOTB4MzQuZ2lmIGIvbGlieG1sMi0yLjcuNy9kb2MvTGlieG1sMi1Mb2dvLTkweDM0LmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTZmZmYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvTGlieG1sMi1Mb2dvLTkweDM0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9NYWtlZmlsZS5hbSBiL2xpYnhtbDItMi43LjcvZG9jL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmOGUwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDEyOSBAQAorIyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvbWFrZSB0byBwcm9kdWNlIE1ha2VmaWxlLmluCitTVUJESVJTPWRldmhlbHAgZXhhbXBsZXMKKworIyBUaGUgdG9wLWxldmVsIFNHTUwgZmlsZS4KK0RPQ19NQUlOX1hNTF9GSUxFPWdub21lLXhtbC54bWwKKworIyBUaGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBjb2RlIChpZiBpdCBjb250YWlucyBkb2N1bWVudGF0aW9uKS4KK0RPQ19TT1VSQ0VfRElSPS4uCisKKyMgQSBmaWxlIGluIHdpbjMyIGRlcGVuZHMgdXBvbiBvbmUgb2YgdGhlIGRvYyBmaWxlcworV0lOMzJfRElSPSQodG9wX3NyY2Rpcikvd2luMzIKKworUEFHRVM9IGFyY2hpdGVjdHVyZS5odG1sIGJ1Z3MuaHRtbCBjb250cmlicy5odG1sIGRvY3MuaHRtbCBET00uaHRtbCBcCisgICAgZG93bmxvYWRzLmh0bWwgZW50aXRpZXMuaHRtbCBleGFtcGxlLmh0bWwgaGVscC5odG1sIGluZGV4Lmh0bWwgXAorICAgIGludGVyZmFjZS5odG1sIGludHJvLmh0bWwgbGlicmFyeS5odG1sIG5hbWVzcGFjZXMuaHRtbCBuZXdzLmh0bWwgXAorICAgIHRyZWUuaHRtbCB4bWxkdGQuaHRtbCBYTUxpbmZvLmh0bWwgWFNMVC5odG1sCitBUElQQUdFUz1BUEljb25zdHJ1Y3RvcnMuaHRtbCBBUElmaWxlcy5odG1sIEFQSWZ1bmN0aW9ucy5odG1sIFwKKyAgICBBUElzeW1ib2xzLmh0bWwgQVBJY2h1bmswLmh0bWwKK0VYVFJBX0RJU1Q9eG1sY2F0YWxvZ19tYW4ueG1sIHR1dG9yaWFsLyouaHRtbCB0dXRvcmlhbC8qLmMgdHV0b3JpYWwvKi5wZGYgXAorICAgICAgICAgICB0dXRvcmlhbC9pbWFnZXMvKi5wbmcgdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLyoucG5nIFwKKwkgICBBUEkqLmh0bWwgKi4xICoueHNsICouaHRtbCAqLmdpZiB3M2MucG5nIGh0bWwvKi5odG1sIFwKKwkgICBodG1sLyoucG5nIGxpYnhtbDItYXBpLnhtbCBpbmRleC5weSBzZWFyY2gucGhwIFwKKwkgICBhcGlidWlsZC5weSBsaWJ4bWwyLnhzYSB4bWxsaW50LnhtbCB4bWxjYXRhbG9nX21hbi54bWwgXAorCSAgIFJFQURNRS5kb2NzIHN5bWJvbHMueG1sCisKKworbWFuX01BTlMgPSB4bWxsaW50LjEgeG1sY2F0YWxvZy4xCisKK2lmIFJFQlVJTERfRE9DUworYWxsOiB3ZWIgJCh0b3BfYnVpbGRkaXIpL05FV1MgbGlieG1sMi54c2EgJChtYW5fTUFOUykKK2Vsc2UKK2FsbDoKK2VuZGlmCisKK2FwaTogbGlieG1sMi1hcGkueG1sIGxpYnhtbDItcmVmcy54bWwgJChBUElQQUdFUykgJChzcmNkaXIpL2h0bWwvaW5kZXguaHRtbCAkKFdJTjMyX0RJUikvbGlieG1sMi5kZWYuc3JjIC4uL2VsZmdjY2hhY2suaCAkKHNyY2Rpcikvc2l0ZS54c2wKKword2ViOiAkKFBBR0VTKQorCisuLi9lbGZnY2NoYWNrLmg6ICQoc3JjZGlyKS9lbGZnY2NoYWNrLnhzbCAkKHNyY2RpcikvbGlieG1sMi1hcGkueG1sCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICBlY2hvICJSZWJ1aWxkaW5nIHRoZSBlbGZnY2NoYWNrLmggaGVhZGVyIiA7IFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgJChzcmNkaXIpL2VsZmdjY2hhY2sueHNsICQoc3JjZGlyKS9saWJ4bWwyLWFwaS54bWwgPiBlbGZnY2NoYWNrLmggOyBcCisJICBpZiBbICJgZGlmZiAtcSBlbGZnY2NoYWNrLmggLi4vZWxmZ2NjaGFjay5oYCIgXSA7IHRoZW4gXAorCSAgICBlY2hvICJ1cGRhdGluZyAuLi9lbGZnY2NoYWNrLmgiOyBcCisJICAgIGNwIGVsZmdjY2hhY2suaCAuLi9lbGZnY2NoYWNrLmg7IFwKKwkgIGZpIDsgcm0gLWYgZWxmZ2NjaGFjay5oIDsgIGZpICk7CisKKyQoUEFHRVMpOiB4bWwuaHRtbCBzaXRlLnhzbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyB0aGUgSFRNTCBXZWIgcGFnZXMgZnJvbSB4bWwuaHRtbCIgOyBcCisJICAkKFhTTFRQUk9DKSAtLW5vbmV0IC0taHRtbCAkKHRvcF9zcmNkaXIpL2RvYy9zaXRlLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy94bWwuaHRtbCA+IGluZGV4Lmh0bWwgOyBmaSApOworCS1AKGlmIFsgLXggJChYTUxMSU5UKSBdIDsgdGhlbiBcCisJICBlY2hvICJWYWxpZGF0aW5nIHRoZSBIVE1MIFdlYiBwYWdlcyIgOyBcCisJICAkKFhNTExJTlQpIC0tbm9uZXQgLS12YWxpZCAtLW5vb3V0ICQoUEFHRVMpIDsgZmkgKTsKKworJCh0b3BfYnVpbGRkaXIpL05FV1M6ICQodG9wX3NyY2RpcikvZG9jL25ld3MueHNsICQodG9wX3NyY2RpcikvZG9jL25ld3MuaHRtbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgJChYU0xUUFJPQykgLS1ub25ldCAkKHRvcF9zcmNkaXIpL2RvYy9uZXdzLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9uZXdzLmh0bWwgPiAkKHRvcF9idWlsZGRpcikvTkVXUyA7IGZpICk7CisKK2xpYnhtbDIueHNhOiAkKHRvcF9zcmNkaXIpL2RvYy94c2EueHNsICQodG9wX3NyY2RpcikvZG9jL25ld3MuaHRtbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyB0aGUgTkVXUyBmaWxlIiA7IFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgJCh0b3Bfc3JjZGlyKS9kb2MveHNhLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9uZXdzLmh0bWwgPiBsaWJ4bWwyLnhzYSA7IGZpICk7CisKKyQoQVBJUEFHRVMpOiBsaWJ4bWwyLWFwaS54bWwgbGlieG1sMi1yZWZzLnhtbCAkKHRvcF9zcmNkaXIpL2RvYy9zaXRlLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9hcGkueHNsCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICBlY2hvICJSZWJ1aWxkaW5nIHRoZSBIVE1MIEFQSSBwYWdlcyBmcm9tIGxpYnhtbDItcmVmcy54bWwiIDsgXAorCSAgJChYU0xUUFJPQykgLS1ub25ldCAtLWh0bWwgJCh0b3Bfc3JjZGlyKS9kb2MvYXBpLnhzbCBcCisJICAgICAgICAgICAgICAgICAgICAgJCh0b3Bfc3JjZGlyKS9kb2MveG1sLmh0bWwgOyBmaSApOworCS1AKGlmIFsgLXggJChYTUxMSU5UKSBdIDsgdGhlbiBcCisJICBlY2hvICJWYWxpZGF0aW5nIHRoZSBIVE1MIEFQSSBwYWdlcyIgOyBcCisJICAkKFhNTExJTlQpIC0tbm9uZXQgLS12YWxpZCAtLW5vb3V0IEFQSSouaHRtbCA7IGZpICk7CisKKyQoc3JjZGlyKS9odG1sL2luZGV4Lmh0bWw6IGxpYnhtbDItYXBpLnhtbCAkKHNyY2RpcikvbmV3YXBpLnhzbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyB0aGUgSFRNTCBwYWdlcyBmcm9tIHRoZSBYTUwgQVBJIiA7IFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgJChzcmNkaXIpL25ld2FwaS54c2wgbGlieG1sMi1hcGkueG1sIDsgZmkgKQorCS1AKGlmIFsgLXggJChYTUxMSU5UKSBdIDsgdGhlbiBcCisJICBlY2hvICJWYWxpZGF0aW5nIHRoZSByZXN1bHRpbmcgWEhUTUwgcGFnZXMiIDsgXAorCSAgJChYTUxMSU5UKSAtLW5vbmV0IC0tdmFsaWQgLS1ub291dCBodG1sLyouaHRtbCA7IGZpICk7CisKK3dpa2k6IGxpYnhtbDItYXBpLnhtbCAkKHNyY2Rpcikvd2lraS54c2wKKwktQChpZiBbIC14ICQoWFNMVFBST0MpIF0gOyB0aGVuIFwKKwkJZWNobyAiUmVidWlsZGluZyB0aGUgd2lraSBIVE1MIHBhZ2VzIGZyb20gdGhlIFhNTCBBUEkiIDsgXAorCQkkKFhTTFRQUk9DKSAtLW5vbmV0ICQoc3JjZGlyKS93aWtpLnhzbCBsaWJ4bWwyLWFwaS54bWw7IGZpICkKKworJChXSU4zMl9ESVIpL2xpYnhtbDIuZGVmLnNyYzogbGlieG1sMi1hcGkueG1sCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICAkKFhTTFRQUk9DKSAtbyAkKFdJTjMyX0RJUikvbGlieG1sMi5kZWYuc3JjIFwKKwkgIC0tbm9uZXQgJChXSU4zMl9ESVIpL2RlZmdlbi54c2wgbGlieG1sMi1hcGkueG1sIDsgZmkgKQorCitsaWJ4bWwyLWFwaS54bWwgbGlieG1sMi1yZWZzLnhtbCAuLi9saWJ4bWwyLnN5bXM6IGFwaWJ1aWxkLnB5IHN5bWJvbHMueG1sIHN5bXMueHNsIGNoZWNrYXBpc3ltLnhzbCAuLi9pbmNsdWRlL2xpYnhtbC8qLmggLi4vKi5jCisJLSguL2FwaWJ1aWxkLnB5KQorCSgkKFhTTFRQUk9DKSBjaGVja2FwaXN5bS54c2wgbGlieG1sMi1hcGkueG1sKQorCSgkKFhTTFRQUk9DKSAtbyAuLi9saWJ4bWwyLnN5bXMgc3ltcy54c2wgc3ltYm9scy54bWwpCisJLUAoY2QgLi4gOyAkKE1BS0UpIHJlYnVpbGRfdGVzdGFwaSkKKworCit4bWxsaW50LjE6IHhtbGxpbnQueG1sCisJLUAoJChYU0xUUFJPQykgLS1ub25ldCB4bWxsaW50LnhtbCkKKworeG1sY2F0YWxvZy4xOiB4bWxjYXRhbG9nX21hbi54bWwKKwktQCgkKFhTTFRQUk9DKSAtLW5vbmV0IHhtbGNhdGFsb2dfbWFuLnhtbCkKKworY2xlYW4tbG9jYWw6CisJcm0gLWYgKn4gKi5iYWsgKi5oaWVyYXJjaHkgKi5zaWduYWxzICotdW51c2VkLnR4dAorCittYWludGFpbmVyLWNsZWFuLWxvY2FsOiBjbGVhbi1sb2NhbAorCXJtIC1yZiBsaWJ4bWwtZGVjbC1saXN0LnR4dCBsaWJ4bWwtZGVjbC50eHQgCisKK3JlYnVpbGQ6IGFwaSBhbGwKKworaW5zdGFsbC1kYXRhLWxvY2FsOiAKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKEhUTUxfRElSKQorCS1ASU5TVEFMTEAgLW0gMDY0NCAkKHNyY2RpcikveG1sLmh0bWwgJChzcmNkaXIpL2VuY29kaW5nLmh0bWwgJChzcmNkaXIpL0ZBUS5odG1sICQoc3JjZGlyKS9zdHJ1Y3R1cmUuZ2lmICQoc3JjZGlyKS9ET00uZ2lmICQoc3JjZGlyKS9zbWFsbGZvb3Rvbmx5LmdpZiAkKHNyY2RpcikvcmVkaGF0LmdpZiAkKHNyY2RpcikvbGlieG1sLmdpZiAkKHNyY2RpcikvdzNjLnBuZyAkKHNyY2RpcikvTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmICQoc3JjZGlyKS9MaWJ4bWwyLUxvZ28tOTB4MzQuZ2lmICQoREVTVERJUikkKEhUTUxfRElSKQorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoSFRNTF9ESVIpL2h0bWwKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL2h0bWwvKi5odG1sICQoREVTVERJUikkKEhUTUxfRElSKS9odG1sCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS9odG1sLyoucG5nICQoREVTVERJUikkKEhUTUxfRElSKS9odG1sCisJJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJChIVE1MX0RJUikvdHV0b3JpYWwKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3R1dG9yaWFsLyouKiBcCisJCSQoREVTVERJUikkKEhUTUxfRElSKS90dXRvcmlhbAorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoSFRNTF9ESVIpL3R1dG9yaWFsL2ltYWdlcworCS1ASU5TVEFMTEAgLW0gMDY0NCAkKHNyY2RpcikvdHV0b3JpYWwvaW1hZ2VzLyouKiBcCisJCSQoREVTVERJUikkKEhUTUxfRElSKS90dXRvcmlhbC9pbWFnZXMKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKEhUTUxfRElSKS90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3R1dG9yaWFsL2ltYWdlcy9jYWxsb3V0cy8qLiogXAorCQkkKERFU1RESVIpJChIVE1MX0RJUikvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzCisKKy5QSE9OWSA6IGh0bWwgeG1sIHRlbXBsYXRlcyBzY2FuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9NYWtlZmlsZS5pbiBiL2xpYnhtbDItMi43LjcvZG9jL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OGZjODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDg2OCBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK3N1YmRpciA9IGRvYworRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmluCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCittYW4xZGlyID0gJChtYW5kaXIpL21hbjEKK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChtYW4xZGlyKSIKK05ST0ZGID0gbnJvZmYKK01BTlMgPSAkKG1hbl9NQU5TKQorUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKwlkaXN0ZGlyCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorYW1fX3JlbGF0aXZpemUgPSBcCisgIGRpcjA9YHB3ZGA7IFwKKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorICAgICAgZWxzZSBcCisgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICAgICAgICBlbHNlIFwKKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisgICAgICAgIGZpOyBcCisgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisgICAgICBmaTsgXAorICAgIGZpOyBcCisgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisgIGRvbmU7IFwKKyAgcmVsZGlyPSIkJGRpcjIiCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FSID0gQEFSQAorQVMgPSBAQVNACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JBU0VfVEhSRUFEX0xJQlMgPSBAQkFTRV9USFJFQURfTElCU0AKK0MxNE5fT0JKID0gQEMxNE5fT0JKQAorQ0FUQUxPR19PQkogPSBAQ0FUQUxPR19PQkpACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0NZR1dJTl9FWFRSQV9MREZMQUdTID0gQENZR1dJTl9FWFRSQV9MREZMQUdTQAorQ1lHV0lOX0VYVFJBX1BZVEhPTl9MSUJBREQgPSBAQ1lHV0lOX0VYVFJBX1BZVEhPTl9MSUJBRERACitERUJVR19PQkogPSBAREVCVUdfT0JKQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RMTFRPT0wgPSBARExMVE9PTEAKK0RPQ0JfT0JKID0gQERPQ0JfT0JKQAorRFNZTVVUSUwgPSBARFNZTVVUSUxACitEVU1QQklOID0gQERVTVBCSU5ACitFQ0hPX0MgPSBARUNIT19DQAorRUNIT19OID0gQEVDSE9fTkAKK0VDSE9fVCA9IEBFQ0hPX1RACitFR1JFUCA9IEBFR1JFUEAKK0VYRUVYVCA9IEBFWEVFWFRACitGR1JFUCA9IEBGR1JFUEAKK0ZUUF9PQkogPSBARlRQX09CSkAKK0dSRVAgPSBAR1JFUEAKK0hBVkVfSVNJTkYgPSBASEFWRV9JU0lORkAKK0hBVkVfSVNOQU4gPSBASEFWRV9JU05BTkAKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSFRNTF9PQkogPSBASFRNTF9PQkpACitIVFRQX09CSiA9IEBIVFRQX09CSkAKK0lDT05WX0xJQlMgPSBASUNPTlZfTElCU0AKK0lOU1RBTEwgPSBASU5TVEFMTEAKK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACitJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJYTUxfTUFKT1JfVkVSU0lPTiA9IEBMSUJYTUxfTUFKT1JfVkVSU0lPTkAKK0xJQlhNTF9NSUNST19WRVJTSU9OID0gQExJQlhNTF9NSUNST19WRVJTSU9OQAorTElCWE1MX01JTk9SX1ZFUlNJT04gPSBATElCWE1MX01JTk9SX1ZFUlNJT05ACitMSUJYTUxfVkVSU0lPTiA9IEBMSUJYTUxfVkVSU0lPTkAKK0xJQlhNTF9WRVJTSU9OX0VYVFJBID0gQExJQlhNTF9WRVJTSU9OX0VYVFJBQAorTElCWE1MX1ZFUlNJT05fSU5GTyA9IEBMSUJYTUxfVkVSU0lPTl9JTkZPQAorTElCWE1MX1ZFUlNJT05fTlVNQkVSID0gQExJQlhNTF9WRVJTSU9OX05VTUJFUkAKK0xJUE8gPSBATElQT0AKK0xOX1MgPSBATE5fU0AKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01PRFVMRV9FWFRFTlNJT04gPSBATU9EVUxFX0VYVEVOU0lPTkAKK01PRFVMRV9QTEFURk9STV9MSUJTID0gQE1PRFVMRV9QTEFURk9STV9MSUJTQAorTVYgPSBATVZACitNX0xJQlMgPSBATV9MSUJTQAorTk0gPSBATk1ACitOTUVESVQgPSBATk1FRElUQAorT0JKRFVNUCA9IEBPQkpEVU1QQAorT0JKRVhUID0gQE9CSkVYVEAKK09UT09MID0gQE9UT09MQAorT1RPT0w2NCA9IEBPVE9PTDY0QAorUEFDS0FHRSA9IEBQQUNLQUdFQAorUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorUEVSTCA9IEBQRVJMQAorUFlUSE9OID0gQFBZVEhPTkAKK1BZVEhPTl9JTkNMVURFUyA9IEBQWVRIT05fSU5DTFVERVNACitQWVRIT05fTElCUyA9IEBQWVRIT05fTElCU0AKK1BZVEhPTl9TSVRFX1BBQ0tBR0VTID0gQFBZVEhPTl9TSVRFX1BBQ0tBR0VTQAorUFlUSE9OX1NVQkRJUiA9IEBQWVRIT05fU1VCRElSQAorUFlUSE9OX1RFU1RTID0gQFBZVEhPTl9URVNUU0AKK1BZVEhPTl9WRVJTSU9OID0gQFBZVEhPTl9WRVJTSU9OQAorUkFOTElCID0gQFJBTkxJQkAKK1JETF9MSUJTID0gQFJETF9MSUJTQAorUkVBREVSX1RFU1QgPSBAUkVBREVSX1RFU1RACitSRUxEQVRFID0gQFJFTERBVEVACitSTSA9IEBSTUAKK1NFRCA9IEBTRURACitTRVRfTUFLRSA9IEBTRVRfTUFLRUAKK1NIRUxMID0gQFNIRUxMQAorU1RBVElDX0JJTkFSSUVTID0gQFNUQVRJQ19CSU5BUklFU0AKK1NUUklQID0gQFNUUklQQAorVEFSID0gQFRBUkAKK1RFU1RfQzE0TiA9IEBURVNUX0MxNE5ACitURVNUX0NBVEFMT0cgPSBAVEVTVF9DQVRBTE9HQAorVEVTVF9ERUJVRyA9IEBURVNUX0RFQlVHQAorVEVTVF9IVE1MID0gQFRFU1RfSFRNTEAKK1RFU1RfTU9EVUxFUyA9IEBURVNUX01PRFVMRVNACitURVNUX1BBVFRFUk4gPSBAVEVTVF9QQVRURVJOQAorVEVTVF9QSFRNTCA9IEBURVNUX1BIVE1MQAorVEVTVF9QVVNIID0gQFRFU1RfUFVTSEAKK1RFU1RfUkVHRVhQUyA9IEBURVNUX1JFR0VYUFNACitURVNUX1NBWCA9IEBURVNUX1NBWEAKK1RFU1RfU0NIRU1BUyA9IEBURVNUX1NDSEVNQVNACitURVNUX1NDSEVNQVRST04gPSBAVEVTVF9TQ0hFTUFUUk9OQAorVEVTVF9USFJFQURTID0gQFRFU1RfVEhSRUFEU0AKK1RFU1RfVkFMSUQgPSBAVEVTVF9WQUxJREAKK1RFU1RfVlRJTUUgPSBAVEVTVF9WVElNRUAKK1RFU1RfWElOQ0xVREUgPSBAVEVTVF9YSU5DTFVERUAKK1RFU1RfWFBBVEggPSBAVEVTVF9YUEFUSEAKK1RFU1RfWFBUUiA9IEBURVNUX1hQVFJACitUSFJFQURTX1czMiA9IEBUSFJFQURTX1czMkAKK1RIUkVBRF9DRkxBR1MgPSBAVEhSRUFEX0NGTEFHU0AKK1RIUkVBRF9MSUJTID0gQFRIUkVBRF9MSUJTQAorVSA9IEBVQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorVkVSU0lPTl9TQ1JJUFRfRkxBR1MgPSBAVkVSU0lPTl9TQ1JJUFRfRkxBR1NACitXR0VUID0gQFdHRVRACitXSU4zMl9FWFRSQV9MREZMQUdTID0gQFdJTjMyX0VYVFJBX0xERkxBR1NACitXSU4zMl9FWFRSQV9MSUJBREQgPSBAV0lOMzJfRVhUUkFfTElCQUREQAorV0lUSF9DMTROID0gQFdJVEhfQzE0TkAKK1dJVEhfQ0FUQUxPRyA9IEBXSVRIX0NBVEFMT0dACitXSVRIX0RFQlVHID0gQFdJVEhfREVCVUdACitXSVRIX0RPQ0IgPSBAV0lUSF9ET0NCQAorV0lUSF9GVFAgPSBAV0lUSF9GVFBACitXSVRIX0hUTUwgPSBAV0lUSF9IVE1MQAorV0lUSF9IVFRQID0gQFdJVEhfSFRUUEAKK1dJVEhfSUNPTlYgPSBAV0lUSF9JQ09OVkAKK1dJVEhfSVNPODg1OVggPSBAV0lUSF9JU084ODU5WEAKK1dJVEhfTEVHQUNZID0gQFdJVEhfTEVHQUNZQAorV0lUSF9NRU1fREVCVUcgPSBAV0lUSF9NRU1fREVCVUdACitXSVRIX01PRFVMRVMgPSBAV0lUSF9NT0RVTEVTQAorV0lUSF9PVVRQVVQgPSBAV0lUSF9PVVRQVVRACitXSVRIX1BBVFRFUk4gPSBAV0lUSF9QQVRURVJOQAorV0lUSF9QVVNIID0gQFdJVEhfUFVTSEAKK1dJVEhfUkVBREVSID0gQFdJVEhfUkVBREVSQAorV0lUSF9SRUdFWFBTID0gQFdJVEhfUkVHRVhQU0AKK1dJVEhfUlVOX0RFQlVHID0gQFdJVEhfUlVOX0RFQlVHQAorV0lUSF9TQVgxID0gQFdJVEhfU0FYMUAKK1dJVEhfU0NIRU1BUyA9IEBXSVRIX1NDSEVNQVNACitXSVRIX1NDSEVNQVRST04gPSBAV0lUSF9TQ0hFTUFUUk9OQAorV0lUSF9USFJFQURTID0gQFdJVEhfVEhSRUFEU0AKK1dJVEhfVFJFRSA9IEBXSVRIX1RSRUVACitXSVRIX1RSSU8gPSBAV0lUSF9UUklPQAorV0lUSF9WQUxJRCA9IEBXSVRIX1ZBTElEQAorV0lUSF9XUklURVIgPSBAV0lUSF9XUklURVJACitXSVRIX1hJTkNMVURFID0gQFdJVEhfWElOQ0xVREVACitXSVRIX1hQQVRIID0gQFdJVEhfWFBBVEhACitXSVRIX1hQVFIgPSBAV0lUSF9YUFRSQAorV0lUSF9aTElCID0gQFdJVEhfWkxJQkAKK1hJTkNMVURFX09CSiA9IEBYSU5DTFVERV9PQkpACitYTUxMSU5UID0gQFhNTExJTlRACitYTUxfQ0ZMQUdTID0gQFhNTF9DRkxBR1NACitYTUxfSU5DTFVERURJUiA9IEBYTUxfSU5DTFVERURJUkAKK1hNTF9MSUJESVIgPSBAWE1MX0xJQkRJUkAKK1hNTF9MSUJTID0gQFhNTF9MSUJTQAorWE1MX0xJQlRPT0xMSUJTID0gQFhNTF9MSUJUT09MTElCU0AKK1hQQVRIX09CSiA9IEBYUEFUSF9PQkpACitYUFRSX09CSiA9IEBYUFRSX09CSkAKK1hTTFRQUk9DID0gQFhTTFRQUk9DQAorWl9DRkxBR1MgPSBAWl9DRkxBR1NACitaX0xJQlMgPSBAWl9MSUJTQAorYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACitkb2NkaXIgPSBAZG9jZGlyQAorZHZpZGlyID0gQGR2aWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2h0bWxkaXIgPSBAaHRtbGRpckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorbHRfRUNITyA9IEBsdF9FQ0hPQAorbWFuZGlyID0gQG1hbmRpckAKK21rZGlyX3AgPSBAbWtkaXJfcEAKK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKK3BkZmRpciA9IEBwZGZkaXJACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorcHNkaXIgPSBAcHNkaXJACitweXRob25kaXIgPSBAcHl0aG9uZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACitTVUJESVJTID0gZGV2aGVscCBleGFtcGxlcworCisjIFRoZSB0b3AtbGV2ZWwgU0dNTCBmaWxlLgorRE9DX01BSU5fWE1MX0ZJTEUgPSBnbm9tZS14bWwueG1sCisKKyMgVGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBzb3VyY2UgY29kZSAoaWYgaXQgY29udGFpbnMgZG9jdW1lbnRhdGlvbikuCitET0NfU09VUkNFX0RJUiA9IC4uCisKKyMgQSBmaWxlIGluIHdpbjMyIGRlcGVuZHMgdXBvbiBvbmUgb2YgdGhlIGRvYyBmaWxlcworV0lOMzJfRElSID0gJCh0b3Bfc3JjZGlyKS93aW4zMgorUEFHRVMgPSBhcmNoaXRlY3R1cmUuaHRtbCBidWdzLmh0bWwgY29udHJpYnMuaHRtbCBkb2NzLmh0bWwgRE9NLmh0bWwgXAorICAgIGRvd25sb2Fkcy5odG1sIGVudGl0aWVzLmh0bWwgZXhhbXBsZS5odG1sIGhlbHAuaHRtbCBpbmRleC5odG1sIFwKKyAgICBpbnRlcmZhY2UuaHRtbCBpbnRyby5odG1sIGxpYnJhcnkuaHRtbCBuYW1lc3BhY2VzLmh0bWwgbmV3cy5odG1sIFwKKyAgICB0cmVlLmh0bWwgeG1sZHRkLmh0bWwgWE1MaW5mby5odG1sIFhTTFQuaHRtbAorCitBUElQQUdFUyA9IEFQSWNvbnN0cnVjdG9ycy5odG1sIEFQSWZpbGVzLmh0bWwgQVBJZnVuY3Rpb25zLmh0bWwgXAorICAgIEFQSXN5bWJvbHMuaHRtbCBBUEljaHVuazAuaHRtbAorCitFWFRSQV9ESVNUID0geG1sY2F0YWxvZ19tYW4ueG1sIHR1dG9yaWFsLyouaHRtbCB0dXRvcmlhbC8qLmMgdHV0b3JpYWwvKi5wZGYgXAorICAgICAgICAgICB0dXRvcmlhbC9pbWFnZXMvKi5wbmcgdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLyoucG5nIFwKKwkgICBBUEkqLmh0bWwgKi4xICoueHNsICouaHRtbCAqLmdpZiB3M2MucG5nIGh0bWwvKi5odG1sIFwKKwkgICBodG1sLyoucG5nIGxpYnhtbDItYXBpLnhtbCBpbmRleC5weSBzZWFyY2gucGhwIFwKKwkgICBhcGlidWlsZC5weSBsaWJ4bWwyLnhzYSB4bWxsaW50LnhtbCB4bWxjYXRhbG9nX21hbi54bWwgXAorCSAgIFJFQURNRS5kb2NzIHN5bWJvbHMueG1sCisKK21hbl9NQU5TID0geG1sbGludC4xIHhtbGNhdGFsb2cuMQorYWxsOiBhbGwtcmVjdXJzaXZlCisKKy5TVUZGSVhFUzoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgZG9jL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZ251IGRvYy9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLW1hbjE6ICQobWFuX01BTlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChtYW4xZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobWFuMWRpcikiCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuMWRpcikiIHx8IGV4aXQgMDsgXAorCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisJbDI9JyQobWFuX01BTlMpJzsgZm9yIGkgaW4gJCRsMjsgZG8gZWNobyAiJCRpIjsgZG9uZSB8IFwKKwkgIHNlZCAtbiAnL1wuMVthLXpdKiQkL3AnOyBcCisJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBcCisJZG9uZSB8IFwKKwlzZWQgLWUgJ247cywuKi8sLDtwO2g7cywuKlwuLCw7cyxeW14xXVswLTlhLXpdKiQkLDEsO3gnIFwKKwkgICAgICAtZSAncyxcLlswLTlhLXpdKiQkLCw7JCh0cmFuc2Zvcm0pO0c7cyxcbiwuLCcgfCBcCisJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisJbGlzdD07IHdoaWxlIHJlYWQgZmlsZSBiYXNlIGluc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkYmFzZSIgPSAiJCRpbnN0IjsgdGhlbiBsaXN0PSIkJGxpc3QgJCRmaWxlIjsgZWxzZSBcCisJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0IiB8fCBleGl0ICQkPzsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChtYW4xZGlyKSciOyBcCisJICAgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtYW4xZGlyKSIgfHwgZXhpdCAkJD87IH07IFwKKwlkb25lOyB9CisKK3VuaW5zdGFsbC1tYW4xOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9Jyc7IHRlc3QgLW4gIiQobWFuMWRpcikiIHx8IGV4aXQgMDsgXAorCWZpbGVzPWB7IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZTsgXAorCWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisJICBzZWQgLW4gJy9cLjFbYS16XSokJC9wJzsgXAorCX0gfCBzZWQgLWUgJ3MsLiovLCw7aDtzLC4qXC4sLDtzLF5bXjFdWzAtOWEtel0qJCQsMSw7eCcgXAorCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKwl0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKwkgIGVjaG8gIiAoIGNkICckKERFU1RESVIpJChtYW4xZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKworIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorCSAgY2FzZSAkJGYgaW4gXAorCSAgICAqPSogfCAtLVsha10qKTs7IFwKKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWRvdF9zZWVuPW5vOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKwkgICAgZG90X3NlZW49eWVzOyBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmU7IFwKKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorCiskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCWNhc2UgIiRAIiBpbiBcCisJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisJZXNhYzsgXAorCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCXJldj0iJCRyZXYgLiI7IFwKKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKwkgIGVsc2UgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorCSAgZmk7IFwKKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCit0YWdzLXJlY3Vyc2l2ZToKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorCWRvbmUKK2N0YWdzLXJlY3Vyc2l2ZToKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKwlkb25lCisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlzZXQgeDsgXAorCWhlcmU9YHB3ZGA7IFwKKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorCSAgZW1wdHlfZml4PS47IFwKKwllbHNlIFwKKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorCSAgZW1wdHlfZml4PTsgXAorCWZpOyBcCisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXNoaWZ0OyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisJICBlbHNlIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICQkdW5pcXVlOyBcCisJICBmaTsgXAorCWZpCitjdGFnczogQ1RBR1MKK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBsaXN0PSckKE1BTlMpJzsgaWYgdGVzdCAtbiAiJCRsaXN0IjsgdGhlbiBcCisJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICAgIGlmIHRlc3QgLWYgIiQkZCQkcCI7IHRoZW4gZWNobyAiJCRkJCRwIjsgZWxzZSA6OyBmaTsgZG9uZWA7IFwKKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorCSAgICBncmVwICdhYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UnICQkbGlzdCA+L2Rldi9udWxsOyB0aGVuIFwKKwkgICAgZWNobyAiZXJyb3I6IGZvdW5kIG1hbiBwYWdlcyBjb250YWluaW5nIHRoZSBcYG1pc3NpbmcgaGVscDJtYW4nIHJlcGxhY2VtZW50IHRleHQ6IiA+JjI7IFwKKwkgICAgZ3JlcCAtbCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKKwkgICAgZWNobyAiICAgICAgIHRvIGZpeCB0aGVtLCBpbnN0YWxsIGhlbHAybWFuLCByZW1vdmUgYW5kIHJlZ2VuZXJhdGUgdGhlIG1hbiBwYWdlczsiID4mMjsgXAorCSAgICBlY2hvICIgICAgICAgdHlwaWNhbGx5IFxgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB3aWxsIHJlbW92ZSB0aGVtIiA+JjI7IFwKKwkgICAgZXhpdCAxOyBcCisJICBlbHNlIDo7IGZpOyBcCisJZWxzZSA6OyBmaQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCisJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisJCWFtX19za2lwX21vZGVfZml4PTogXAorCSAgICAgICAgZGlzdGRpcikgXAorCSAgICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stcmVjdXJzaXZlCithbGwtYW06IE1ha2VmaWxlICQoTUFOUykKK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKK2luc3RhbGxkaXJzLWFtOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKG1hbjFkaXIpIjsgZG8gXAorCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorCWRvbmUKK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQordW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1sb2NhbCBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktcmVjdXJzaXZlCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1yZWN1cnNpdmUKKworaHRtbC1hbToKKworaW5mbzogaW5mby1yZWN1cnNpdmUKKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLWRhdGEtbG9jYWwgaW5zdGFsbC1tYW4KKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjogaW5zdGFsbC1tYW4xCisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgXAorCW1haW50YWluZXItY2xlYW4tbG9jYWwKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLXJlY3Vyc2l2ZQorCitwZGYtYW06CisKK3BzOiBwcy1yZWN1cnNpdmUKKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgorCit1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQorCisuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKworLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorCWNsZWFuLWxvY2FsIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kYXRhLWxvY2FsIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisJaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgXAorCW1haW50YWluZXItY2xlYW4tbG9jYWwgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMQorCisKK0BSRUJVSUxEX0RPQ1NfVFJVRUBhbGw6IHdlYiAkKHRvcF9idWlsZGRpcikvTkVXUyBsaWJ4bWwyLnhzYSAkKG1hbl9NQU5TKQorQFJFQlVJTERfRE9DU19GQUxTRUBhbGw6CisKK2FwaTogbGlieG1sMi1hcGkueG1sIGxpYnhtbDItcmVmcy54bWwgJChBUElQQUdFUykgJChzcmNkaXIpL2h0bWwvaW5kZXguaHRtbCAkKFdJTjMyX0RJUikvbGlieG1sMi5kZWYuc3JjIC4uL2VsZmdjY2hhY2suaCAkKHNyY2Rpcikvc2l0ZS54c2wKKword2ViOiAkKFBBR0VTKQorCisuLi9lbGZnY2NoYWNrLmg6ICQoc3JjZGlyKS9lbGZnY2NoYWNrLnhzbCAkKHNyY2RpcikvbGlieG1sMi1hcGkueG1sCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICBlY2hvICJSZWJ1aWxkaW5nIHRoZSBlbGZnY2NoYWNrLmggaGVhZGVyIiA7IFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgJChzcmNkaXIpL2VsZmdjY2hhY2sueHNsICQoc3JjZGlyKS9saWJ4bWwyLWFwaS54bWwgPiBlbGZnY2NoYWNrLmggOyBcCisJICBpZiBbICJgZGlmZiAtcSBlbGZnY2NoYWNrLmggLi4vZWxmZ2NjaGFjay5oYCIgXSA7IHRoZW4gXAorCSAgICBlY2hvICJ1cGRhdGluZyAuLi9lbGZnY2NoYWNrLmgiOyBcCisJICAgIGNwIGVsZmdjY2hhY2suaCAuLi9lbGZnY2NoYWNrLmg7IFwKKwkgIGZpIDsgcm0gLWYgZWxmZ2NjaGFjay5oIDsgIGZpICk7CisKKyQoUEFHRVMpOiB4bWwuaHRtbCBzaXRlLnhzbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyB0aGUgSFRNTCBXZWIgcGFnZXMgZnJvbSB4bWwuaHRtbCIgOyBcCisJICAkKFhTTFRQUk9DKSAtLW5vbmV0IC0taHRtbCAkKHRvcF9zcmNkaXIpL2RvYy9zaXRlLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy94bWwuaHRtbCA+IGluZGV4Lmh0bWwgOyBmaSApOworCS1AKGlmIFsgLXggJChYTUxMSU5UKSBdIDsgdGhlbiBcCisJICBlY2hvICJWYWxpZGF0aW5nIHRoZSBIVE1MIFdlYiBwYWdlcyIgOyBcCisJICAkKFhNTExJTlQpIC0tbm9uZXQgLS12YWxpZCAtLW5vb3V0ICQoUEFHRVMpIDsgZmkgKTsKKworJCh0b3BfYnVpbGRkaXIpL05FV1M6ICQodG9wX3NyY2RpcikvZG9jL25ld3MueHNsICQodG9wX3NyY2RpcikvZG9jL25ld3MuaHRtbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgJChYU0xUUFJPQykgLS1ub25ldCAkKHRvcF9zcmNkaXIpL2RvYy9uZXdzLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9uZXdzLmh0bWwgPiAkKHRvcF9idWlsZGRpcikvTkVXUyA7IGZpICk7CisKK2xpYnhtbDIueHNhOiAkKHRvcF9zcmNkaXIpL2RvYy94c2EueHNsICQodG9wX3NyY2RpcikvZG9jL25ld3MuaHRtbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyB0aGUgTkVXUyBmaWxlIiA7IFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgJCh0b3Bfc3JjZGlyKS9kb2MveHNhLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9uZXdzLmh0bWwgPiBsaWJ4bWwyLnhzYSA7IGZpICk7CisKKyQoQVBJUEFHRVMpOiBsaWJ4bWwyLWFwaS54bWwgbGlieG1sMi1yZWZzLnhtbCAkKHRvcF9zcmNkaXIpL2RvYy9zaXRlLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9hcGkueHNsCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICBlY2hvICJSZWJ1aWxkaW5nIHRoZSBIVE1MIEFQSSBwYWdlcyBmcm9tIGxpYnhtbDItcmVmcy54bWwiIDsgXAorCSAgJChYU0xUUFJPQykgLS1ub25ldCAtLWh0bWwgJCh0b3Bfc3JjZGlyKS9kb2MvYXBpLnhzbCBcCisJICAgICAgICAgICAgICAgICAgICAgJCh0b3Bfc3JjZGlyKS9kb2MveG1sLmh0bWwgOyBmaSApOworCS1AKGlmIFsgLXggJChYTUxMSU5UKSBdIDsgdGhlbiBcCisJICBlY2hvICJWYWxpZGF0aW5nIHRoZSBIVE1MIEFQSSBwYWdlcyIgOyBcCisJICAkKFhNTExJTlQpIC0tbm9uZXQgLS12YWxpZCAtLW5vb3V0IEFQSSouaHRtbCA7IGZpICk7CisKKyQoc3JjZGlyKS9odG1sL2luZGV4Lmh0bWw6IGxpYnhtbDItYXBpLnhtbCAkKHNyY2RpcikvbmV3YXBpLnhzbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyB0aGUgSFRNTCBwYWdlcyBmcm9tIHRoZSBYTUwgQVBJIiA7IFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgJChzcmNkaXIpL25ld2FwaS54c2wgbGlieG1sMi1hcGkueG1sIDsgZmkgKQorCS1AKGlmIFsgLXggJChYTUxMSU5UKSBdIDsgdGhlbiBcCisJICBlY2hvICJWYWxpZGF0aW5nIHRoZSByZXN1bHRpbmcgWEhUTUwgcGFnZXMiIDsgXAorCSAgJChYTUxMSU5UKSAtLW5vbmV0IC0tdmFsaWQgLS1ub291dCBodG1sLyouaHRtbCA7IGZpICk7CisKK3dpa2k6IGxpYnhtbDItYXBpLnhtbCAkKHNyY2Rpcikvd2lraS54c2wKKwktQChpZiBbIC14ICQoWFNMVFBST0MpIF0gOyB0aGVuIFwKKwkJZWNobyAiUmVidWlsZGluZyB0aGUgd2lraSBIVE1MIHBhZ2VzIGZyb20gdGhlIFhNTCBBUEkiIDsgXAorCQkkKFhTTFRQUk9DKSAtLW5vbmV0ICQoc3JjZGlyKS93aWtpLnhzbCBsaWJ4bWwyLWFwaS54bWw7IGZpICkKKworJChXSU4zMl9ESVIpL2xpYnhtbDIuZGVmLnNyYzogbGlieG1sMi1hcGkueG1sCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICAkKFhTTFRQUk9DKSAtbyAkKFdJTjMyX0RJUikvbGlieG1sMi5kZWYuc3JjIFwKKwkgIC0tbm9uZXQgJChXSU4zMl9ESVIpL2RlZmdlbi54c2wgbGlieG1sMi1hcGkueG1sIDsgZmkgKQorCitsaWJ4bWwyLWFwaS54bWwgbGlieG1sMi1yZWZzLnhtbCAuLi9saWJ4bWwyLnN5bXM6IGFwaWJ1aWxkLnB5IHN5bWJvbHMueG1sIHN5bXMueHNsIGNoZWNrYXBpc3ltLnhzbCAuLi9pbmNsdWRlL2xpYnhtbC8qLmggLi4vKi5jCisJLSguL2FwaWJ1aWxkLnB5KQorCSgkKFhTTFRQUk9DKSBjaGVja2FwaXN5bS54c2wgbGlieG1sMi1hcGkueG1sKQorCSgkKFhTTFRQUk9DKSAtbyAuLi9saWJ4bWwyLnN5bXMgc3ltcy54c2wgc3ltYm9scy54bWwpCisJLUAoY2QgLi4gOyAkKE1BS0UpIHJlYnVpbGRfdGVzdGFwaSkKKworeG1sbGludC4xOiB4bWxsaW50LnhtbAorCS1AKCQoWFNMVFBST0MpIC0tbm9uZXQgeG1sbGludC54bWwpCisKK3htbGNhdGFsb2cuMTogeG1sY2F0YWxvZ19tYW4ueG1sCisJLUAoJChYU0xUUFJPQykgLS1ub25ldCB4bWxjYXRhbG9nX21hbi54bWwpCisKK2NsZWFuLWxvY2FsOgorCXJtIC1mICp+ICouYmFrICouaGllcmFyY2h5ICouc2lnbmFscyAqLXVudXNlZC50eHQKKworbWFpbnRhaW5lci1jbGVhbi1sb2NhbDogY2xlYW4tbG9jYWwKKwlybSAtcmYgbGlieG1sLWRlY2wtbGlzdC50eHQgbGlieG1sLWRlY2wudHh0IAorCityZWJ1aWxkOiBhcGkgYWxsCisKK2luc3RhbGwtZGF0YS1sb2NhbDogCisJJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJChIVE1MX0RJUikKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3htbC5odG1sICQoc3JjZGlyKS9lbmNvZGluZy5odG1sICQoc3JjZGlyKS9GQVEuaHRtbCAkKHNyY2Rpcikvc3RydWN0dXJlLmdpZiAkKHNyY2RpcikvRE9NLmdpZiAkKHNyY2Rpcikvc21hbGxmb290b25seS5naWYgJChzcmNkaXIpL3JlZGhhdC5naWYgJChzcmNkaXIpL2xpYnhtbC5naWYgJChzcmNkaXIpL3czYy5wbmcgJChzcmNkaXIpL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiAkKHNyY2RpcikvTGlieG1sMi1Mb2dvLTkweDM0LmdpZiAkKERFU1RESVIpJChIVE1MX0RJUikKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKEhUTUxfRElSKS9odG1sCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS9odG1sLyouaHRtbCAkKERFU1RESVIpJChIVE1MX0RJUikvaHRtbAorCS1ASU5TVEFMTEAgLW0gMDY0NCAkKHNyY2RpcikvaHRtbC8qLnBuZyAkKERFU1RESVIpJChIVE1MX0RJUikvaHRtbAorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoSFRNTF9ESVIpL3R1dG9yaWFsCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS90dXRvcmlhbC8qLiogXAorCQkkKERFU1RESVIpJChIVE1MX0RJUikvdHV0b3JpYWwKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKEhUTUxfRElSKS90dXRvcmlhbC9pbWFnZXMKKwktQElOU1RBTExAIC1tIDA2NDQgJChzcmNkaXIpL3R1dG9yaWFsL2ltYWdlcy8qLiogXAorCQkkKERFU1RESVIpJChIVE1MX0RJUikvdHV0b3JpYWwvaW1hZ2VzCisJJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJChIVE1MX0RJUikvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvKi4qIFwKKwkJJChERVNURElSKSQoSFRNTF9ESVIpL3R1dG9yaWFsL2ltYWdlcy9jYWxsb3V0cworCisuUEhPTlkgOiBodG1sIHhtbCB0ZW1wbGF0ZXMgc2NhbgorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9SRUFETUUuZG9jcyBiL2xpYnhtbDItMi43LjcvZG9jL1JFQURNRS5kb2NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OWIzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9SRUFETUUuZG9jcwpAQCAtMCwwICsxLDI0IEBACisKKyAgICAgICAgICAgICAgICAgIFhNTCB0b29sa2l0IGZyb20gdGhlIEdOT01FIHByb2plY3QKKworRnVsbCBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBvbi1saW5lIGF0CisgICAgaHR0cDovL3htbHNvZnQub3JnLworCitUaGlzIGNvZGUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbmNlIHNlZSB0aGUgQ29weXJpZ2h0IGZpbGUuCisKK1RvIHJlcG9ydCBidWdzLCBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBhdDogCisgIGh0dHA6Ly94bWxzb2Z0Lm9yZy9idWdzLmh0bWwKKworQSBtYWlsaW5nLWxpc3QgeG1sQGdub21lLm9yZyBpcyBhdmFpbGFibGUsIHRvIHN1YnNjcmliZToKKyAgICBodHRwOi8vbWFpbC5nbm9tZS5vcmcvbWFpbG1hbi9saXN0aW5mby94bWwKKworVGhlIGxpc3QgYXJjaGl2ZSBpcyBhdDoKKyAgICBodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLworCitBbGwgdGVjaG5pY2FsIGFuc3dlcnMgYXNrZWQgcHJpdmF0ZWx5IHdpbGwgYmUgYXV0b21hdGljYWxseSBhbnN3ZXJlZCBvbgordGhlIGxpc3QgYW5kIGFyY2hpdmVkIGZvciBwdWJsaWMgYWNjZXNzIHVubGVzcyBwcmljYWN5IGlzIGV4cGxpY2l0ZWx5CityZXF1aXJlZCBhbmQganVzdGlmaWVkLgorCitEYW5pZWwgVmVpbGxhcmQKKworJElkJApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvWE1MaW5mby5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvWE1MaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkYTg1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9YTUxpbmZvLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5YTUw8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPlhNTDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT48bGk+PGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPjxsaT48YSBocmVmPSJuZXdzLmh0bWwiPlJlbGVhc2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhNTGluZm8uaHRtbCI+WE1MPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCI+WE1MIGlzIGEgc3RhbmRhcmQ8L2E+IGZvcgorbWFya3VwLWJhc2VkIHN0cnVjdHVyZWQgZG9jdW1lbnRzLiBIZXJlIGlzIDxhIG5hbWU9ImV4YW1wbGUiIGlkPSJleGFtcGxlIj5hbiBleGFtcGxlIFhNTAorZG9jdW1lbnQ8L2E+OjwvcD48cHJlPiZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0O0VYQU1QTEUgcHJvcDE9Imdub21lIGlzIGdyZWF0IiBwcm9wMj0iJmFtcDthbXA7IGxpbnV4IHRvbyImZ3Q7CisgICZsdDtoZWFkJmd0OworICAgJmx0O3RpdGxlJmd0O1dlbGNvbWUgdG8gR25vbWUmbHQ7L3RpdGxlJmd0OworICAmbHQ7L2hlYWQmZ3Q7CisgICZsdDtjaGFwdGVyJmd0OworICAgJmx0O3RpdGxlJmd0O1RoZSBMaW51eCBhZHZlbnR1cmUmbHQ7L3RpdGxlJmd0OworICAgJmx0O3AmZ3Q7YmxhIGJsYSBibGEgLi4uJmx0Oy9wJmd0OworICAgJmx0O2ltYWdlIGhyZWY9ImxpbnVzLmdpZiIvJmd0OworICAgJmx0O3AmZ3Q7Li4uJmx0Oy9wJmd0OworICAmbHQ7L2NoYXB0ZXImZ3Q7CismbHQ7L0VYQU1QTEUmZ3Q7PC9wcmU+PHA+VGhlIGZpcnN0IGxpbmUgc3BlY2lmaWVzIHRoYXQgaXQgaXMgYW4gWE1MIGRvY3VtZW50IGFuZCBnaXZlcyB1c2VmdWwKK2luZm9ybWF0aW9uIGFib3V0IGl0cyBlbmNvZGluZy4gIFRoZW4gdGhlIHJlc3Qgb2YgdGhlIGRvY3VtZW50IGlzIGEgdGV4dAorZm9ybWF0IHdob3NlIHN0cnVjdHVyZSBpcyBzcGVjaWZpZWQgYnkgdGFncyBiZXR3ZWVuIGJyYWNrZXRzLiA8c3Ryb25nPkVhY2gKK3RhZyBvcGVuZWQgaGFzIHRvIGJlIGNsb3NlZDwvc3Ryb25nPi4gWE1MIGlzIHBlZGFudGljIGFib3V0IHRoaXMuIEhvd2V2ZXIsIGlmCithIHRhZyBpcyBlbXB0eSAobm8gY29udGVudCksIGEgc2luZ2xlIHRhZyBjYW4gc2VydmUgYXMgYm90aCB0aGUgb3BlbmluZyBhbmQKK2Nsb3NpbmcgdGFnIGlmIGl0IGVuZHMgd2l0aCA8Y29kZT4vJmd0OzwvY29kZT4gcmF0aGVyIHRoYW4gd2l0aAorPGNvZGU+Jmd0OzwvY29kZT4uIE5vdGUgdGhhdCwgZm9yIGV4YW1wbGUsIHRoZSBpbWFnZSB0YWcgaGFzIG5vIGNvbnRlbnQgKGp1c3QKK2FuIGF0dHJpYnV0ZSkgYW5kIGlzIGNsb3NlZCBieSBlbmRpbmcgdGhlIHRhZyB3aXRoIDxjb2RlPi8mZ3Q7PC9jb2RlPi48L3A+PHA+WE1MIGNhbiBiZSBhcHBsaWVkIHN1Y2Nlc3NmdWxseSB0byBhIHdpZGUgcmFuZ2Ugb2YgdGFza3MsIHJhbmdpbmcgZnJvbQorbG9uZyB0ZXJtIHN0cnVjdHVyZWQgZG9jdW1lbnQgbWFpbnRlbmFuY2UgKHdoZXJlIGl0IGZvbGxvd3MgdGhlIHN0ZXBzIG9mCitTR01MKSB0byBzaW1wbGUgZGF0YSBlbmNvZGluZyBtZWNoYW5pc21zIGxpa2UgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdHRpbmcKKyhnbGFkZSksIHNwcmVhZHNoZWV0cyAoZ251bWVyaWMpLCBvciBldmVuIHNob3J0ZXIgbGl2ZWQgZG9jdW1lbnRzIHN1Y2ggYXMKK1dlYkRBViB3aGVyZSBpdCBpcyB1c2VkIHRvIGVuY29kZSByZW1vdGUgY2FsbHMgYmV0d2VlbiBhIGNsaWVudCBhbmQgYQorc2VydmVyLjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL1hTTFQuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL1hTTFQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2JhNTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvWFNMVC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+WFNMVDwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+WFNMVDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT48bGk+PGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPjxsaT48YSBocmVmPSJuZXdzLmh0bWwiPlJlbGVhc2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhNTGluZm8uaHRtbCI+WE1MPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+Q2hlY2sgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQiPnRoZSBzZXBhcmF0ZSBsaWJ4c2x0IHBhZ2U8L2E+PC9wPjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hzbHQiPlhTTCBUcmFuc2Zvcm1hdGlvbnM8L2E+LCAgaXMgYQorbGFuZ3VhZ2UgZm9yIHRyYW5zZm9ybWluZyBYTUwgZG9jdW1lbnRzIGludG8gb3RoZXIgWE1MIGRvY3VtZW50cyAob3IKK0hUTUwvdGV4dHVhbCBvdXRwdXQpLjwvcD48cD5BIHNlcGFyYXRlIGxpYnJhcnkgY2FsbGVkIGxpYnhzbHQgaXMgYXZhaWxhYmxlIGltcGxlbWVudGluZyBYU0xULTEuMCBmb3IKK2xpYnhtbDIuIFRoaXMgbW9kdWxlICJsaWJ4c2x0IiB0b28gY2FuIGJlIGZvdW5kIGluIHRoZSBHbm9tZSBTVk4gYmFzZS48L3A+PHA+WW91IGNhbiBjaGVjayB0aGUgcHJvZ3Jlc3NlcyBvbiB0aGUgbGlieHNsdCA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlbG9nPC9hPi48L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9hcGkueHNsIGIvbGlieG1sMi0yLjcuNy9kb2MvYXBpLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2ZiYjg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvYXBpLnhzbApAQCAtMCwwICsxLDM5NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIHRoaXMgc3R5bGVzaGVldCBidWlsZHMgdGhlIEFQSSouaHRtbCAsIGl0IHdvcmtzIGJhc2VkIG9uIGxpYnhtbDItcmVmcy54bWwKKyAgLS0+Cis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIgorICB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgeG1sbnM6ZXhzbD0iaHR0cDovL2V4c2x0Lm9yZy9jb21tb24iCisgIGV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJleHNsIgorICBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcz0iZXhzbCI+CisKKyAgPCEtLSBJbXBvcnQgdGhlIHJlc3Qgb2YgdGhlIHNpdGUgc3R5bGVzaGVldHMgLS0+CisgIDx4c2w6aW1wb3J0IGhyZWY9InNpdGUueHNsIi8+CisKKyAgPCEtLSBHZW5lcmF0ZSBYSFRNTC0xLjAgdHJhbnNpdGlvbmFsIC0tPgorICA8eHNsOm91dHB1dCBtZXRob2Q9InhtbCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiIGluZGVudD0ieWVzIgorICAgICAgZG9jdHlwZS1wdWJsaWM9Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICAgZG9jdHlwZS1zeXN0ZW09Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiLz4KKworICA8eHNsOnZhcmlhYmxlIG5hbWU9ImhyZWZfYmFzZSIgc2VsZWN0PSInJyIvPgorICA8eHNsOnZhcmlhYmxlIG5hbWU9ImFwaXJlZnMiIHNlbGVjdD0iZG9jdW1lbnQoJ2xpYnhtbDItcmVmcy54bWwnKSIvPgorICA8eHNsOnZhcmlhYmxlIG5hbWU9Im1vZHVsZSIgc2VsZWN0PSIkYXBpcmVmcy9hcGlyZWZzL0BuYW1lIi8+CisgIDx4c2w6a2V5IG5hbWU9InJlZmhyZWYiIG1hdGNoPSJyZWZlcmVuY2UiIHVzZT0iQG5hbWUiLz4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJyZWYiIG1vZGU9ImFuY2hvciI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImRvY3VtZW50KCdsaWJ4bWwyLXJlZnMueG1sJykiPgorCTxhIGhyZWY9IntrZXkoJ3JlZmhyZWYnLCAkbmFtZSkvQGhyZWZ9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+PGJyLz4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InR5cGUiIG1vZGU9InJlZmxpc3QiPgorICAgIDxoMj5UeXBlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjo8L2gyPgorICAgIDxwPgorICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9InJlZiI+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImFuY2hvciIgc2VsZWN0PSIuIi8+CisJPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmZvci1lYWNoPgorICAgIDwvcD4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImxldHRlciIgbW9kZT0icmVmbGlzdCI+CisgICAgPGgyPkxldHRlciA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz46PC9oMj4KKyAgICA8cD4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJyZWYiPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJhbmNob3IiIHNlbGVjdD0iLiIvPgorCTx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8L3A+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmaWxlIiBtb2RlPSJyZWZsaXN0Ij4KKyAgICA8aDI+PGEgbmFtZT0ie0BuYW1lfSI+TW9kdWxlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT46PC9oMj4KKyAgICA8cD4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJyZWYiPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJhbmNob3IiIHNlbGVjdD0iLiIvPgorCTx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8L3A+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJsZXR0ZXIiIG1vZGU9IndvcmRsaXN0Ij4KKyAgICA8aDI+TGV0dGVyIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjo8L2gyPgorICAgIDxkbD4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJ3b3JkIj4KKyAgICAgICAgPGR0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvZHQ+CisJPGRkPgorCTx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJyZWYiPgorCSAgPHhzbDphcHBseS10ZW1wbGF0ZXMgbW9kZT0iYW5jaG9yIiBzZWxlY3Q9Ii4iLz4KKwkgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisJPC94c2w6Zm9yLWVhY2g+CisJPC9kZD4KKyAgICAgIDwveHNsOmZvci1lYWNoPgorICAgIDwvZGw+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNvbnN0cnVjdG9ycyI+CisgICAgPHhzbDptZXNzYWdlPkdlbmVyYXRpbmcgQVBJIENvbnN0cnVjdG9yczwveHNsOm1lc3NhZ2U+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0aXRsZSI+TGlzdCBvZiBjb25zdHJ1Y3RvcnMgZm9yIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbW9kdWxlIi8+PC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCIgbWV0aG9kPSJ4bWwiIGVuY29kaW5nPSJJU08tODg1OS0xIgorICAgICAgZG9jdHlwZS1wdWJsaWM9Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICAgZG9jdHlwZS1zeXN0ZW09Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorICAgICAgPGh0bWw+CisgICAgICAgIDxoZWFkPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3R5bGUiLz4KKwk8eHNsOmVsZW1lbnQgbmFtZT0idGl0bGUiPgorCSAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0aXRsZSIvPgorCTwveHNsOmVsZW1lbnQ+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPgorICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJ0aXRsZWJveCI+CisJICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0aXRsZSIgc2VsZWN0PSIkdGl0bGUiLz4KKwkgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij4KKyAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij4KKyAgICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGV2ZWx0b2MiLz4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij4KKyAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj4KKwkJCQkgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9InJlZmxpc3QiIHNlbGVjdD0idHlwZSIvPgorCQkJCQk8cD48YSBocmVmPSJ7JGhyZWZfYmFzZX1idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICAgIDwvaHRtbD4KKyAgICA8L3hzbDpkb2N1bWVudD4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGVzIj4KKyAgICA8eHNsOm1lc3NhZ2U+R2VuZXJhdGluZyBBUEkgTGlzdCBvZiBzeW5ib2xzIHBlciBmaWxlPC94c2w6bWVzc2FnZT4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRpdGxlIj5MaXN0IG9mIFN5bWJvbHMgcGVyIE1vZHVsZSBmb3IgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRtb2R1bGUiLz48L3hzbDp2YXJpYWJsZT4KKyAgICA8eHNsOmRvY3VtZW50IGhyZWY9IkFQSWZpbGVzLmh0bWwiIG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJPHhzbDplbGVtZW50IG5hbWU9InRpdGxlIj4KKwkgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz4KKwk8L3hzbDplbGVtZW50PgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGl0bGVib3giPgorCSAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiIHNlbGVjdD0iJHRpdGxlIi8+CisJICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRldmVsdG9jIi8+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisJCQkJICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJyZWZsaXN0IiBzZWxlY3Q9ImZpbGUiLz4KKwkJCQkJPHA+PGEgaHJlZj0ieyRocmVmX2Jhc2V9YnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2JvZHk+CisgICAgICA8L2h0bWw+CisgICAgPC94c2w6ZG9jdW1lbnQ+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmdW5jdGlvbnMiPgorICAgIDx4c2w6bWVzc2FnZT5HZW5lcmF0aW5nIEFQSSBGdW5jdGlvbnMgYnkgVHlwZTwveHNsOm1lc3NhZ2U+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0aXRsZSI+TGlzdCBvZiBmdW5jdGlvbiBtYW5pcHVsYXRpbmcgdHlwZXMgaW4gPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRtb2R1bGUiLz48L3hzbDp2YXJpYWJsZT4KKyAgICA8eHNsOmRvY3VtZW50IGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIiBtZXRob2Q9InhtbCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiCisgICAgICBkb2N0eXBlLXB1YmxpYz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICBkb2N0eXBlLXN5c3RlbT0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisgICAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzdHlsZSIvPgorCTx4c2w6ZWxlbWVudCBuYW1lPSJ0aXRsZSI+CisJICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHRpdGxlIi8+CisJPC94c2w6ZWxlbWVudD4KKyAgICAgICAgPC9oZWFkPgorICAgICAgICA8Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+CisgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRpdGxlYm94Ij4KKwkgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRpdGxlIiBzZWxlY3Q9IiR0aXRsZSIvPgorCSAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkZXZlbHRvYyIvPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorCQkJCSAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgbW9kZT0icmVmbGlzdCIgc2VsZWN0PSJ0eXBlIi8+CisJCQkJCTxwPjxhIGhyZWY9InskaHJlZl9iYXNlfWJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9ib2R5PgorICAgICAgPC9odG1sPgorICAgIDwveHNsOmRvY3VtZW50PgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iYWxwaGEiPgorICAgIDx4c2w6bWVzc2FnZT5HZW5lcmF0aW5nIEFQSSBBbHBoYWJldGljIGxpc3Q8L3hzbDptZXNzYWdlPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGl0bGUiPkFscGhhYmV0aWMgTGlzdCBvZiBTeW1ib2xzIGluIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbW9kdWxlIi8+PC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJBUElzeW1ib2xzLmh0bWwiIG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJPHhzbDplbGVtZW50IG5hbWU9InRpdGxlIj4KKwkgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz4KKwk8L3hzbDplbGVtZW50PgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGl0bGVib3giPgorCSAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiIHNlbGVjdD0iJHRpdGxlIi8+CisJICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRldmVsdG9jIi8+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisJCQkJICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJyZWZsaXN0IiBzZWxlY3Q9ImxldHRlciIvPgorCQkJCQk8cD48YSBocmVmPSJ7JGhyZWZfYmFzZX1idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICAgIDwvaHRtbD4KKyAgICA8L3hzbDpkb2N1bWVudD4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbmFtZT0iYXBpY2h1bmtzIj4KKyAgICA8aDIgYWxpZ249ImNlbnRlciI+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii9hcGlyZWZzL2luZGV4L2NodW5rcy9jaHVuayI+CisgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ic3RhcnQiIHNlbGVjdD0iQHN0YXJ0Ii8+CisgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImVuZCIgc2VsZWN0PSJAZW5kIi8+CisgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsb2NrIiBzZWxlY3Q9ImNvbmNhdCgkc3RhcnQsICctJywgJGVuZCkiLz4KKyAgICAgIDxhIGhyZWY9IkFQSXskbmFtZX0uaHRtbCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRibG9jayIvPjwvYT4KKyAgICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgPC9oMj4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNodW5rIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InN0YXJ0IiBzZWxlY3Q9IkBzdGFydCIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZW5kIiBzZWxlY3Q9IkBlbmQiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsb2NrIiBzZWxlY3Q9ImNvbmNhdCgkc3RhcnQsICctJywgJGVuZCkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRhcmdldCIgc2VsZWN0PSIvYXBpcmVmcy9pbmRleC9jaHVua1tAbmFtZSA9ICRuYW1lXSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGl0bGUiPkFQSSBBbHBoYWJldGljIEluZGV4IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkYmxvY2siLz4gZm9yIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbW9kdWxlIi8+PC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJBUEl7JG5hbWV9Lmh0bWwiIG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJPHhzbDplbGVtZW50IG5hbWU9InRpdGxlIj4KKwkgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz4KKwk8L3hzbDplbGVtZW50PgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGl0bGVib3giPgorCSAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiIHNlbGVjdD0iJHRpdGxlIi8+CisJICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRldmVsdG9jIi8+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisJCQkJICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYXBpY2h1bmtzIi8+CisJCQkJICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJ3b3JkbGlzdCIKKwkJCQkJICAgICAgICAgICBzZWxlY3Q9IiR0YXJnZXQvbGV0dGVyIi8+CisJCQkJICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYXBpY2h1bmtzIi8+CisJCQkJCTxwPjxhIGhyZWY9InskaHJlZl9iYXNlfWJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9ib2R5PgorICAgICAgPC9odG1sPgorICAgIDwveHNsOmRvY3VtZW50PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJpbmRleCI+CisgICAgPHhzbDptZXNzYWdlPkdlbmVyYXRpbmcgQVBJIEluZGV4PC94c2w6bWVzc2FnZT4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImNodW5rcy9jaHVuayIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJhcGlyZWZzIj4KKyAgICA8eHNsOm1lc3NhZ2U+R2VuZXJhdGluZyBBUEkgQ3Jvc3MgUmVmZXJlbmNlczwveHNsOm1lc3NhZ2U+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJjb25zdHJ1Y3RvcnMiLz4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImZ1bmN0aW9ucyIvPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iYWxwaGEiLz4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImZpbGVzIi8+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJpbmRleCIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IiRhcGlyZWZzL2FwaXJlZnMiLz4KKyAgPC94c2w6dGVtcGxhdGU+CisKKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9hcGlidWlsZC5weSBiL2xpYnhtbDItMi43LjcvZG9jL2FwaWJ1aWxkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjViZmU2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9hcGlidWlsZC5weQpAQCAtMCwwICsxLDIxNDQgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CisjCisjIFRoaXMgaXMgdGhlIEFQSSBidWlsZGVyLCBpdCBwYXJzZXMgdGhlIEMgc291cmNlcyBhbmQgYnVpbGQgdGhlCisjIEFQSSBmb3JtYWwgZGVzY3JpcHRpb24gaW4gWE1MLgorIworIyBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisjCisjIGRhbmllbEB2ZWlsbGFyZC5jb20KKyMKK2ltcG9ydCBvcywgc3lzCitpbXBvcnQgc3RyaW5nCitpbXBvcnQgZ2xvYgorCitkZWJ1Zz0wCisjZGVidWdzeW09J2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jJworZGVidWdzeW09Tm9uZQorCisjCisjIEMgcGFyc2VyIGFuYWx5c2lzIGNvZGUKKyMKK2lnbm9yZWRfZmlsZXMgPSB7CisgICJ0cmlvIjogInRvbyBtYW55IG5vbiBzdGFuZGFyZCBtYWNyb3MiLAorICAidHJpby5jIjogInRvbyBtYW55IG5vbiBzdGFuZGFyZCBtYWNyb3MiLAorICAidHJpb25hbi5jIjogInRvbyBtYW55IG5vbiBzdGFuZGFyZCBtYWNyb3MiLAorICAidHJpb3N0ci5jIjogInRvbyBtYW55IG5vbiBzdGFuZGFyZCBtYWNyb3MiLAorICAiYWNjb25maWcuaCI6ICJnZW5lcmF0ZWQgcG9ydGFiaWxpdHkgbGF5ZXIiLAorICAiY29uZmlnLmgiOiAiZ2VuZXJhdGVkIHBvcnRhYmlsaXR5IGxheWVyIiwKKyAgImxpYnhtbC5oIjogImludGVybmFsIG9ubHkiLAorICAidGVzdE9PTS5jIjogIm91dCBvZiBtZW1vcnkgdGVzdGVyIiwKKyAgInRlc3RPT01saWIuaCI6ICJvdXQgb2YgbWVtb3J5IHRlc3RlciIsCisgICJ0ZXN0T09NbGliLmMiOiAib3V0IG9mIG1lbW9yeSB0ZXN0ZXIiLAorICAicm5ncGFyc2VyLmMiOiAibm90IHlldCBpbnRlZ3JhdGVkIiwKKyAgInJuZ3BhcnNlci5oIjogIm5vdCB5ZXQgaW50ZWdyYXRlZCIsCisgICJlbGZnY2NoYWNrLmgiOiAibm90IGEgbm9ybWFsIGhlYWRlciIsCisgICJ0ZXN0SFRNTC5jIjogInRlc3QgdG9vbCIsCisgICJ0ZXN0UmVhZGVyLmMiOiAidGVzdCB0b29sIiwKKyAgInRlc3RTY2hlbWFzLmMiOiAidGVzdCB0b29sIiwKKyAgInRlc3RYUGF0aC5jIjogInRlc3QgdG9vbCIsCisgICJ0ZXN0QXV0b21hdGEuYyI6ICJ0ZXN0IHRvb2wiLAorICAidGVzdE1vZHVsZS5jIjogInRlc3QgdG9vbCIsCisgICJ0ZXN0UmVnZXhwLmMiOiAidGVzdCB0b29sIiwKKyAgInRlc3RUaHJlYWRzLmMiOiAidGVzdCB0b29sIiwKKyAgInRlc3RDMTROLmMiOiAidGVzdCB0b29sIiwKKyAgInRlc3RSZWxheC5jIjogInRlc3QgdG9vbCIsCisgICJ0ZXN0VGhyZWFkc1dpbjMyLmMiOiAidGVzdCB0b29sIiwKKyAgInRlc3RTQVguYyI6ICJ0ZXN0IHRvb2wiLAorICAidGVzdFVSSS5jIjogInRlc3QgdG9vbCIsCisgICJ0ZXN0YXBpLmMiOiAiZ2VuZXJhdGVkIHJlZ3Jlc3Npb24gdGVzdHMiLAorICAicnVudGVzdC5jIjogInJlZ3Jlc3Npb24gdGVzdHMgcHJvZ3JhbSIsCisgICJydW5zdWl0ZS5jIjogInJlZ3Jlc3Npb24gdGVzdHMgcHJvZ3JhbSIsCisgICJ0c3QuYyI6ICJub3QgcGFydCBvZiB0aGUgbGlicmFyeSIsCisgICJ0ZXN0LmMiOiAibm90IHBhcnQgb2YgdGhlIGxpYnJhcnkiLAorICAidGVzdGRzby5jIjogInRlc3QgZm9yIGR5bmFtaWQgc2hhcmVkIGxpYnJhcmllcyIsCisgICJ0ZXN0cmVjdXJzZS5jIjogInRlc3QgZm9yIGVudGl0aWVzIHJlY3Vyc2lvbnMiLAorfQorCitpZ25vcmVkX3dvcmRzID0geworICAiV0lOQVBJIjogKDAsICJXaW5kb3dzIGtleXdvcmQiKSwKKyAgIkxJQlhNTF9ETExfSU1QT1JUIjogKDAsICJTcGVjaWFsIG1hY3JvIHRvIGZsYWcgZXh0ZXJuYWwga2V5d29yZHMiKSwKKyAgIlhNTFBVQlZBUiI6ICgwLCAiU3BlY2lhbCBtYWNybyBmb3IgZXh0ZXJuIHZhcnMgZm9yIHdpbjMyIiksCisgICJYU0xUUFVCVkFSIjogKDAsICJTcGVjaWFsIG1hY3JvIGZvciBleHRlcm4gdmFycyBmb3Igd2luMzIiKSwKKyAgIkVYU0xUUFVCVkFSIjogKDAsICJTcGVjaWFsIG1hY3JvIGZvciBleHRlcm4gdmFycyBmb3Igd2luMzIiKSwKKyAgIlhNTFBVQkZVTiI6ICgwLCAiU3BlY2lhbCBtYWNybyBmb3IgZXh0ZXJuIGZ1bmNzIGZvciB3aW4zMiIpLAorICAiWFNMVFBVQkZVTiI6ICgwLCAiU3BlY2lhbCBtYWNybyBmb3IgZXh0ZXJuIGZ1bmNzIGZvciB3aW4zMiIpLAorICAiRVhTTFRQVUJGVU4iOiAoMCwgIlNwZWNpYWwgbWFjcm8gZm9yIGV4dGVybiBmdW5jcyBmb3Igd2luMzIiKSwKKyAgIlhNTENBTEwiOiAoMCwgIlNwZWNpYWwgbWFjcm8gZm9yIHdpbjMyIGNhbGxzIiksCisgICJYU0xUQ0FMTCI6ICgwLCAiU3BlY2lhbCBtYWNybyBmb3Igd2luMzIgY2FsbHMiKSwKKyAgIlhNTENERUNMIjogKDAsICJTcGVjaWFsIG1hY3JvIGZvciB3aW4zMiBjYWxscyIpLAorICAiRVhTTFRDQUxMIjogKDAsICJTcGVjaWFsIG1hY3JvIGZvciB3aW4zMiBjYWxscyIpLAorICAiX19kZWNsc3BlYyI6ICgzLCAiV2luZG93cyBrZXl3b3JkIiksCisgICJfX3N0ZGNhbGwiOiAoMCwgIldpbmRvd3Mga2V5d29yZCIpLAorICAiQVRUUklCVVRFX1VOVVNFRCI6ICgwLCAibWFjcm8ga2V5d29yZCIpLAorICAiTElCRVhTTFRfUFVCTElDIjogKDAsICJtYWNybyBrZXl3b3JkIiksCisgICJYX0lOX1kiOiAoNSwgIm1hY3JvIGZ1bmN0aW9uIGJ1aWxkZXIiKSwKKyAgIkFUVFJJQlVURV9BTExPQ19TSVpFIjogKDMsICJtYWNybyBmb3IgZ2NjIGNoZWNraW5nIGV4dGVuc2lvbiIpLAorICAiQVRUUklCVVRFX1BSSU5URiI6ICg1LCAibWFjcm8gZm9yIGdjYyBwcmludGYgYXJncyBjaGVja2luZyBleHRlbnNpb24iKSwKKyAgIkxJQlhNTF9BVFRSX0ZPUk1BVCI6ICg1LCAibWFjcm8gZm9yIGdjYyBwcmludGYgYXJncyBjaGVja2luZyBleHRlbnNpb24iKSwKKyAgIkxJQlhNTF9BVFRSX0FMTE9DX1NJWkUiOiAoMywgIm1hY3JvIGZvciBnY2MgY2hlY2tpbmcgZXh0ZW5zaW9uIiksCit9CisKK2RlZiBlc2NhcGUocmF3KToKKyAgICByYXcgPSBzdHJpbmcucmVwbGFjZShyYXcsICcmJywgJyZhbXA7JykKKyAgICByYXcgPSBzdHJpbmcucmVwbGFjZShyYXcsICc8JywgJyZsdDsnKQorICAgIHJhdyA9IHN0cmluZy5yZXBsYWNlKHJhdywgJz4nLCAnJmd0OycpCisgICAgcmF3ID0gc3RyaW5nLnJlcGxhY2UocmF3LCAiJyIsICcmYXBvczsnKQorICAgIHJhdyA9IHN0cmluZy5yZXBsYWNlKHJhdywgJyInLCAnJnF1b3Q7JykKKyAgICByZXR1cm4gcmF3CisKK2RlZiB1bmlxKGl0ZW1zKToKKyAgICBkID0ge30KKyAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgZFtpdGVtXT0xCisgICAgcmV0dXJuIGQua2V5cygpCisKK2NsYXNzIGlkZW50aWZpZXI6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGhlYWRlcj1Ob25lLCBtb2R1bGU9Tm9uZSwgdHlwZT1Ob25lLCBsaW5lbm8gPSAwLAorICAgICAgICAgICAgICAgICBpbmZvPU5vbmUsIGV4dHJhPU5vbmUsIGNvbmRpdGlvbmFscyA9IE5vbmUpOgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisJc2VsZi5oZWFkZXIgPSBoZWFkZXIKKwlzZWxmLm1vZHVsZSA9IG1vZHVsZQorCXNlbGYudHlwZSA9IHR5cGUKKwlzZWxmLmluZm8gPSBpbmZvCisJc2VsZi5leHRyYSA9IGV4dHJhCisJc2VsZi5saW5lbm8gPSBsaW5lbm8KKwlzZWxmLnN0YXRpYyA9IDAKKwlpZiBjb25kaXRpb25hbHMgPT0gTm9uZSBvciBsZW4oY29uZGl0aW9uYWxzKSA9PSAwOgorCSAgICBzZWxmLmNvbmRpdGlvbmFscyA9IE5vbmUKKwllbHNlOgorCSAgICBzZWxmLmNvbmRpdGlvbmFscyA9IGNvbmRpdGlvbmFsc1s6XQorCWlmIHNlbGYubmFtZSA9PSBkZWJ1Z3N5bToKKwkgICAgcHJpbnQgIj0+IGRlZmluZSAlcyA6ICVzIiAlIChkZWJ1Z3N5bSwgKG1vZHVsZSwgdHlwZSwgaW5mbywKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYSwgY29uZGl0aW9uYWxzKSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgciA9ICIlcyAlczoiICUgKHNlbGYudHlwZSwgc2VsZi5uYW1lKQorCWlmIHNlbGYuc3RhdGljOgorCSAgICByID0gciArICIgc3RhdGljIgorCWlmIHNlbGYubW9kdWxlICE9IE5vbmU6CisJICAgIHIgPSByICsgIiBmcm9tICVzIiAlIChzZWxmLm1vZHVsZSkKKwlpZiBzZWxmLmluZm8gIT0gTm9uZToKKwkgICAgciA9IHIgKyAiICIgKyAgYHNlbGYuaW5mb2AKKwlpZiBzZWxmLmV4dHJhICE9IE5vbmU6CisJICAgIHIgPSByICsgIiAiICsgYHNlbGYuZXh0cmFgCisJaWYgc2VsZi5jb25kaXRpb25hbHMgIT0gTm9uZToKKwkgICAgciA9IHIgKyAiICIgKyBgc2VsZi5jb25kaXRpb25hbHNgCisJcmV0dXJuIHIKKworCisgICAgZGVmIHNldF9oZWFkZXIoc2VsZiwgaGVhZGVyKToKKyAgICAgICAgc2VsZi5oZWFkZXIgPSBoZWFkZXIKKyAgICBkZWYgc2V0X21vZHVsZShzZWxmLCBtb2R1bGUpOgorICAgICAgICBzZWxmLm1vZHVsZSA9IG1vZHVsZQorICAgIGRlZiBzZXRfdHlwZShzZWxmLCB0eXBlKToKKyAgICAgICAgc2VsZi50eXBlID0gdHlwZQorICAgIGRlZiBzZXRfaW5mbyhzZWxmLCBpbmZvKToKKyAgICAgICAgc2VsZi5pbmZvID0gaW5mbworICAgIGRlZiBzZXRfZXh0cmEoc2VsZiwgZXh0cmEpOgorICAgICAgICBzZWxmLmV4dHJhID0gZXh0cmEKKyAgICBkZWYgc2V0X2xpbmVubyhzZWxmLCBsaW5lbm8pOgorICAgICAgICBzZWxmLmxpbmVubyA9IGxpbmVubworICAgIGRlZiBzZXRfc3RhdGljKHNlbGYsIHN0YXRpYyk6CisgICAgICAgIHNlbGYuc3RhdGljID0gc3RhdGljCisgICAgZGVmIHNldF9jb25kaXRpb25hbHMoc2VsZiwgY29uZGl0aW9uYWxzKToKKwlpZiBjb25kaXRpb25hbHMgPT0gTm9uZSBvciBsZW4oY29uZGl0aW9uYWxzKSA9PSAwOgorCSAgICBzZWxmLmNvbmRpdGlvbmFscyA9IE5vbmUKKwllbHNlOgorCSAgICBzZWxmLmNvbmRpdGlvbmFscyA9IGNvbmRpdGlvbmFsc1s6XQorCisgICAgZGVmIGdldF9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5uYW1lCisgICAgZGVmIGdldF9oZWFkZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm1vZHVsZQorICAgIGRlZiBnZXRfbW9kdWxlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tb2R1bGUKKyAgICBkZWYgZ2V0X3R5cGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnR5cGUKKyAgICBkZWYgZ2V0X2luZm8oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmluZm8KKyAgICBkZWYgZ2V0X2xpbmVubyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubGluZW5vCisgICAgZGVmIGdldF9leHRyYShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZXh0cmEKKyAgICBkZWYgZ2V0X3N0YXRpYyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RhdGljCisgICAgZGVmIGdldF9jb25kaXRpb25hbHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmNvbmRpdGlvbmFscworCisgICAgZGVmIHVwZGF0ZShzZWxmLCBoZWFkZXIsIG1vZHVsZSwgdHlwZSA9IE5vbmUsIGluZm8gPSBOb25lLCBleHRyYT1Ob25lLAorICAgICAgICAgICAgICAgY29uZGl0aW9uYWxzPU5vbmUpOgorCWlmIHNlbGYubmFtZSA9PSBkZWJ1Z3N5bToKKwkgICAgcHJpbnQgIj0+IHVwZGF0ZSAlcyA6ICVzIiAlIChkZWJ1Z3N5bSwgKG1vZHVsZSwgdHlwZSwgaW5mbywKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYSwgY29uZGl0aW9uYWxzKSkKKyAgICAgICAgaWYgaGVhZGVyICE9IE5vbmUgYW5kIHNlbGYuaGVhZGVyID09IE5vbmU6CisJICAgIHNlbGYuc2V0X2hlYWRlcihtb2R1bGUpCisgICAgICAgIGlmIG1vZHVsZSAhPSBOb25lIGFuZCAoc2VsZi5tb2R1bGUgPT0gTm9uZSBvciBzZWxmLmhlYWRlciA9PSBzZWxmLm1vZHVsZSk6CisJICAgIHNlbGYuc2V0X21vZHVsZShtb2R1bGUpCisgICAgICAgIGlmIHR5cGUgIT0gTm9uZSBhbmQgc2VsZi50eXBlID09IE5vbmU6CisJICAgIHNlbGYuc2V0X3R5cGUodHlwZSkKKyAgICAgICAgaWYgaW5mbyAhPSBOb25lOgorCSAgICBzZWxmLnNldF9pbmZvKGluZm8pCisgICAgICAgIGlmIGV4dHJhICE9IE5vbmU6CisJICAgIHNlbGYuc2V0X2V4dHJhKGV4dHJhKQorICAgICAgICBpZiBjb25kaXRpb25hbHMgIT0gTm9uZToKKwkgICAgc2VsZi5zZXRfY29uZGl0aW9uYWxzKGNvbmRpdGlvbmFscykKKworY2xhc3MgaW5kZXg6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUgPSAibm9uYW1lIik6CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5pZGVudGlmaWVycyA9IHt9CisgICAgICAgIHNlbGYuZnVuY3Rpb25zID0ge30KKwlzZWxmLnZhcmlhYmxlcyA9IHt9CisJc2VsZi5pbmNsdWRlcyA9IHt9CisJc2VsZi5zdHJ1Y3RzID0ge30KKwlzZWxmLmVudW1zID0ge30KKwlzZWxmLnR5cGVkZWZzID0ge30KKwlzZWxmLm1hY3JvcyA9IHt9CisJc2VsZi5yZWZlcmVuY2VzID0ge30KKwlzZWxmLmluZm8gPSB7fQorCisgICAgZGVmIGFkZF9yZWYoc2VsZiwgbmFtZSwgaGVhZGVyLCBtb2R1bGUsIHN0YXRpYywgdHlwZSwgbGluZW5vLCBpbmZvPU5vbmUsIGV4dHJhPU5vbmUsIGNvbmRpdGlvbmFscyA9IE5vbmUpOgorICAgICAgICBpZiBuYW1lWzA6Ml0gPT0gJ19fJzoKKwkgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZCA9IE5vbmUKKyAgICAgICAgdHJ5OgorCSAgIGQgPSBzZWxmLmlkZW50aWZpZXJzW25hbWVdCisJICAgZC51cGRhdGUoaGVhZGVyLCBtb2R1bGUsIHR5cGUsIGxpbmVubywgaW5mbywgZXh0cmEsIGNvbmRpdGlvbmFscykKKwlleGNlcHQ6CisJICAgZCA9IGlkZW50aWZpZXIobmFtZSwgaGVhZGVyLCBtb2R1bGUsIHR5cGUsIGxpbmVubywgaW5mbywgZXh0cmEsIGNvbmRpdGlvbmFscykKKwkgICBzZWxmLmlkZW50aWZpZXJzW25hbWVdID0gZAorCisJaWYgZCAhPSBOb25lIGFuZCBzdGF0aWMgPT0gMToKKwkgICAgZC5zZXRfc3RhdGljKDEpCisKKwlpZiBkICE9IE5vbmUgYW5kIG5hbWUgIT0gTm9uZSBhbmQgdHlwZSAhPSBOb25lOgorCSAgICBzZWxmLnJlZmVyZW5jZXNbbmFtZV0gPSBkCisKKwlpZiBuYW1lID09IGRlYnVnc3ltOgorCSAgICBwcmludCAiTmV3IHJlZjogJXMiICUgKGQpCisKKwlyZXR1cm4gZAorCisgICAgZGVmIGFkZChzZWxmLCBuYW1lLCBoZWFkZXIsIG1vZHVsZSwgc3RhdGljLCB0eXBlLCBsaW5lbm8sIGluZm89Tm9uZSwgZXh0cmE9Tm9uZSwgY29uZGl0aW9uYWxzID0gTm9uZSk6CisgICAgICAgIGlmIG5hbWVbMDoyXSA9PSAnX18nOgorCSAgICByZXR1cm4gTm9uZQorICAgICAgICBkID0gTm9uZQorICAgICAgICB0cnk6CisJICAgZCA9IHNlbGYuaWRlbnRpZmllcnNbbmFtZV0KKwkgICBkLnVwZGF0ZShoZWFkZXIsIG1vZHVsZSwgdHlwZSwgbGluZW5vLCBpbmZvLCBleHRyYSwgY29uZGl0aW9uYWxzKQorCWV4Y2VwdDoKKwkgICBkID0gaWRlbnRpZmllcihuYW1lLCBoZWFkZXIsIG1vZHVsZSwgdHlwZSwgbGluZW5vLCBpbmZvLCBleHRyYSwgY29uZGl0aW9uYWxzKQorCSAgIHNlbGYuaWRlbnRpZmllcnNbbmFtZV0gPSBkCisKKwlpZiBkICE9IE5vbmUgYW5kIHN0YXRpYyA9PSAxOgorCSAgICBkLnNldF9zdGF0aWMoMSkKKworCWlmIGQgIT0gTm9uZSBhbmQgbmFtZSAhPSBOb25lIGFuZCB0eXBlICE9IE5vbmU6CisJICAgIGlmIHR5cGUgPT0gImZ1bmN0aW9uIjoKKwkgICAgICAgIHNlbGYuZnVuY3Rpb25zW25hbWVdID0gZAorCSAgICBlbGlmIHR5cGUgPT0gImZ1bmN0eXBlIjoKKwkgICAgICAgIHNlbGYuZnVuY3Rpb25zW25hbWVdID0gZAorCSAgICBlbGlmIHR5cGUgPT0gInZhcmlhYmxlIjoKKwkgICAgICAgIHNlbGYudmFyaWFibGVzW25hbWVdID0gZAorCSAgICBlbGlmIHR5cGUgPT0gImluY2x1ZGUiOgorCSAgICAgICAgc2VsZi5pbmNsdWRlc1tuYW1lXSA9IGQKKwkgICAgZWxpZiB0eXBlID09ICJzdHJ1Y3QiOgorCSAgICAgICAgc2VsZi5zdHJ1Y3RzW25hbWVdID0gZAorCSAgICBlbGlmIHR5cGUgPT0gImVudW0iOgorCSAgICAgICAgc2VsZi5lbnVtc1tuYW1lXSA9IGQKKwkgICAgZWxpZiB0eXBlID09ICJ0eXBlZGVmIjoKKwkgICAgICAgIHNlbGYudHlwZWRlZnNbbmFtZV0gPSBkCisJICAgIGVsaWYgdHlwZSA9PSAibWFjcm8iOgorCSAgICAgICAgc2VsZi5tYWNyb3NbbmFtZV0gPSBkCisJICAgIGVsc2U6CisJICAgICAgICBwcmludCAiVW5hYmxlIHRvIHJlZ2lzdGVyIHR5cGUgIiwgdHlwZQorCisJaWYgbmFtZSA9PSBkZWJ1Z3N5bToKKwkgICAgcHJpbnQgIk5ldyBzeW1ib2w6ICVzIiAlIChkKQorCisJcmV0dXJuIGQKKworICAgIGRlZiBtZXJnZShzZWxmLCBpZHgpOgorICAgICAgICBmb3IgaWQgaW4gaWR4LmZ1bmN0aW9ucy5rZXlzKCk6CisgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgIyBtYWNybyBtaWdodCBiZSB1c2VkIHRvIG92ZXJyaWRlIGZ1bmN0aW9ucyBvciB2YXJpYWJsZXMKKyAgICAgICAgICAgICAgIyBkZWZpbml0aW9ucworICAgICAgICAgICAgICAjCisJICAgICBpZiBzZWxmLm1hY3Jvcy5oYXNfa2V5KGlkKToKKwkgICAgICAgICBkZWwgc2VsZi5tYWNyb3NbaWRdCisJICAgICBpZiBzZWxmLmZ1bmN0aW9ucy5oYXNfa2V5KGlkKToKKwkgICAgICAgICBwcmludCAiZnVuY3Rpb24gJXMgZnJvbSAlcyByZWRlY2xhcmVkIGluICVzIiAlICgKKwkJICAgIGlkLCBzZWxmLmZ1bmN0aW9uc1tpZF0uaGVhZGVyLCBpZHguZnVuY3Rpb25zW2lkXS5oZWFkZXIpCisJICAgICBlbHNlOgorCSAgICAgICAgIHNlbGYuZnVuY3Rpb25zW2lkXSA9IGlkeC5mdW5jdGlvbnNbaWRdCisJCSBzZWxmLmlkZW50aWZpZXJzW2lkXSA9IGlkeC5mdW5jdGlvbnNbaWRdCisgICAgICAgIGZvciBpZCBpbiBpZHgudmFyaWFibGVzLmtleXMoKToKKyAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAjIG1hY3JvIG1pZ2h0IGJlIHVzZWQgdG8gb3ZlcnJpZGUgZnVuY3Rpb25zIG9yIHZhcmlhYmxlcworICAgICAgICAgICAgICAjIGRlZmluaXRpb25zCisgICAgICAgICAgICAgICMKKwkgICAgIGlmIHNlbGYubWFjcm9zLmhhc19rZXkoaWQpOgorCSAgICAgICAgIGRlbCBzZWxmLm1hY3Jvc1tpZF0KKwkgICAgIGlmIHNlbGYudmFyaWFibGVzLmhhc19rZXkoaWQpOgorCSAgICAgICAgIHByaW50ICJ2YXJpYWJsZSAlcyBmcm9tICVzIHJlZGVjbGFyZWQgaW4gJXMiICUgKAorCQkgICAgaWQsIHNlbGYudmFyaWFibGVzW2lkXS5oZWFkZXIsIGlkeC52YXJpYWJsZXNbaWRdLmhlYWRlcikKKwkgICAgIGVsc2U6CisJICAgICAgICAgc2VsZi52YXJpYWJsZXNbaWRdID0gaWR4LnZhcmlhYmxlc1tpZF0KKwkJIHNlbGYuaWRlbnRpZmllcnNbaWRdID0gaWR4LnZhcmlhYmxlc1tpZF0KKyAgICAgICAgZm9yIGlkIGluIGlkeC5zdHJ1Y3RzLmtleXMoKToKKwkgICAgIGlmIHNlbGYuc3RydWN0cy5oYXNfa2V5KGlkKToKKwkgICAgICAgICBwcmludCAic3RydWN0ICVzIGZyb20gJXMgcmVkZWNsYXJlZCBpbiAlcyIgJSAoCisJCSAgICBpZCwgc2VsZi5zdHJ1Y3RzW2lkXS5oZWFkZXIsIGlkeC5zdHJ1Y3RzW2lkXS5oZWFkZXIpCisJICAgICBlbHNlOgorCSAgICAgICAgIHNlbGYuc3RydWN0c1tpZF0gPSBpZHguc3RydWN0c1tpZF0KKwkJIHNlbGYuaWRlbnRpZmllcnNbaWRdID0gaWR4LnN0cnVjdHNbaWRdCisgICAgICAgIGZvciBpZCBpbiBpZHgudHlwZWRlZnMua2V5cygpOgorCSAgICAgaWYgc2VsZi50eXBlZGVmcy5oYXNfa2V5KGlkKToKKwkgICAgICAgICBwcmludCAidHlwZWRlZiAlcyBmcm9tICVzIHJlZGVjbGFyZWQgaW4gJXMiICUgKAorCQkgICAgaWQsIHNlbGYudHlwZWRlZnNbaWRdLmhlYWRlciwgaWR4LnR5cGVkZWZzW2lkXS5oZWFkZXIpCisJICAgICBlbHNlOgorCSAgICAgICAgIHNlbGYudHlwZWRlZnNbaWRdID0gaWR4LnR5cGVkZWZzW2lkXQorCQkgc2VsZi5pZGVudGlmaWVyc1tpZF0gPSBpZHgudHlwZWRlZnNbaWRdCisgICAgICAgIGZvciBpZCBpbiBpZHgubWFjcm9zLmtleXMoKToKKyAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAjIG1hY3JvIG1pZ2h0IGJlIHVzZWQgdG8gb3ZlcnJpZGUgZnVuY3Rpb25zIG9yIHZhcmlhYmxlcworICAgICAgICAgICAgICAjIGRlZmluaXRpb25zCisgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICBpZiBzZWxmLnZhcmlhYmxlcy5oYXNfa2V5KGlkKToKKyAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICBpZiBzZWxmLmZ1bmN0aW9ucy5oYXNfa2V5KGlkKToKKyAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICBpZiBzZWxmLmVudW1zLmhhc19rZXkoaWQpOgorICAgICAgICAgICAgICAgICBjb250aW51ZQorCSAgICAgaWYgc2VsZi5tYWNyb3MuaGFzX2tleShpZCk6CisJICAgICAgICAgcHJpbnQgIm1hY3JvICVzIGZyb20gJXMgcmVkZWNsYXJlZCBpbiAlcyIgJSAoCisJCSAgICBpZCwgc2VsZi5tYWNyb3NbaWRdLmhlYWRlciwgaWR4Lm1hY3Jvc1tpZF0uaGVhZGVyKQorCSAgICAgZWxzZToKKwkgICAgICAgICBzZWxmLm1hY3Jvc1tpZF0gPSBpZHgubWFjcm9zW2lkXQorCQkgc2VsZi5pZGVudGlmaWVyc1tpZF0gPSBpZHgubWFjcm9zW2lkXQorICAgICAgICBmb3IgaWQgaW4gaWR4LmVudW1zLmtleXMoKToKKwkgICAgIGlmIHNlbGYuZW51bXMuaGFzX2tleShpZCk6CisJICAgICAgICAgcHJpbnQgImVudW0gJXMgZnJvbSAlcyByZWRlY2xhcmVkIGluICVzIiAlICgKKwkJICAgIGlkLCBzZWxmLmVudW1zW2lkXS5oZWFkZXIsIGlkeC5lbnVtc1tpZF0uaGVhZGVyKQorCSAgICAgZWxzZToKKwkgICAgICAgICBzZWxmLmVudW1zW2lkXSA9IGlkeC5lbnVtc1tpZF0KKwkJIHNlbGYuaWRlbnRpZmllcnNbaWRdID0gaWR4LmVudW1zW2lkXQorCisgICAgZGVmIG1lcmdlX3B1YmxpYyhzZWxmLCBpZHgpOgorICAgICAgICBmb3IgaWQgaW4gaWR4LmZ1bmN0aW9ucy5rZXlzKCk6CisJICAgICBpZiBzZWxmLmZ1bmN0aW9ucy5oYXNfa2V5KGlkKToKKwkgICAgICAgICAjIGNoZWNrIHRoYXQgZnVuY3Rpb24gY29uZGl0aW9uIGFncmVlcyB3aXRoIGhlYWRlcgorCSAgICAgICAgIGlmIGlkeC5mdW5jdGlvbnNbaWRdLmNvbmRpdGlvbmFscyAhPSBcCisJCSAgICBzZWxmLmZ1bmN0aW9uc1tpZF0uY29uZGl0aW9uYWxzOgorCQkgICAgIHByaW50ICJIZWFkZXIgY29uZGl0aW9uIGRpZmZlcnMgZnJvbSBGdW5jdGlvbiBmb3IgJXM6IiBcCisJCSAgICAgICAgJSBpZAorCQkgICAgIHByaW50ICIgIEg6ICVzIiAlIHNlbGYuZnVuY3Rpb25zW2lkXS5jb25kaXRpb25hbHMKKwkJICAgICBwcmludCAiICBDOiAlcyIgJSBpZHguZnVuY3Rpb25zW2lkXS5jb25kaXRpb25hbHMKKwkgICAgICAgICB1cCA9IGlkeC5mdW5jdGlvbnNbaWRdCisJICAgICAgICAgc2VsZi5mdW5jdGlvbnNbaWRdLnVwZGF0ZShOb25lLCB1cC5tb2R1bGUsIHVwLnR5cGUsIHVwLmluZm8sIHVwLmV4dHJhKQorCSAjICAgICBlbHNlOgorCSAjICAgICAgICAgcHJpbnQgIkZ1bmN0aW9uICVzIGZyb20gJXMgaXMgbm90IGRlY2xhcmVkIGluIGhlYWRlcnMiICUgKAorCSAjCSAgICAgICAgaWQsIGlkeC5mdW5jdGlvbnNbaWRdLm1vZHVsZSkKKwkgIyBUT0RPOiBkbyB0aGUgc2FtZSBmb3IgdmFyaWFibGVzLgorCisgICAgZGVmIGFuYWx5emVfZGljdChzZWxmLCB0eXBlLCBkaWN0KToKKyAgICAgICAgY291bnQgPSAwCisJcHVibGljID0gMAorICAgICAgICBmb3IgbmFtZSBpbiBkaWN0LmtleXMoKToKKwkgICAgaWQgPSBkaWN0W25hbWVdCisJICAgIGNvdW50ID0gY291bnQgKyAxCisJICAgIGlmIGlkLnN0YXRpYyA9PSAwOgorCSAgICAgICAgcHVibGljID0gcHVibGljICsgMQorICAgICAgICBpZiBjb3VudCAhPSBwdWJsaWM6CisJICAgIHByaW50ICIgICVkICVzICwgJWQgcHVibGljIiAlIChjb3VudCwgdHlwZSwgcHVibGljKQorCWVsaWYgY291bnQgIT0gMDoKKwkgICAgcHJpbnQgIiAgJWQgcHVibGljICVzIiAlIChjb3VudCwgdHlwZSkKKworCisgICAgZGVmIGFuYWx5emUoc2VsZik6CisJc2VsZi5hbmFseXplX2RpY3QoImZ1bmN0aW9ucyIsIHNlbGYuZnVuY3Rpb25zKQorCXNlbGYuYW5hbHl6ZV9kaWN0KCJ2YXJpYWJsZXMiLCBzZWxmLnZhcmlhYmxlcykKKwlzZWxmLmFuYWx5emVfZGljdCgic3RydWN0cyIsIHNlbGYuc3RydWN0cykKKwlzZWxmLmFuYWx5emVfZGljdCgidHlwZWRlZnMiLCBzZWxmLnR5cGVkZWZzKQorCXNlbGYuYW5hbHl6ZV9kaWN0KCJtYWNyb3MiLCBzZWxmLm1hY3JvcykKKworY2xhc3MgQ0xleGVyOgorICAgICIiIkEgbGV4ZXIgZm9yIHRoZSBDIGxhbmd1YWdlLCB0b2tlbml6ZSB0aGUgaW5wdXQgYnkgcmVhZGluZyBhbmQKKyAgICAgICBhbmFseXppbmcgaXQgbGluZSBieSBsaW5lIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGlucHV0KToKKyAgICAgICAgc2VsZi5pbnB1dCA9IGlucHV0CisJc2VsZi50b2tlbnMgPSBbXQorCXNlbGYubGluZSA9ICIiCisJc2VsZi5saW5lbm8gPSAwCisKKyAgICBkZWYgZ2V0bGluZShzZWxmKToKKyAgICAgICAgbGluZSA9ICcnCisJd2hpbGUgbGluZSA9PSAnJzoKKwkgICAgbGluZSA9IHNlbGYuaW5wdXQucmVhZGxpbmUoKQorCSAgICBpZiBub3QgbGluZToKKwkJcmV0dXJuIE5vbmUKKwkgICAgc2VsZi5saW5lbm8gPSBzZWxmLmxpbmVubyArIDEKKwkgICAgbGluZSA9IHN0cmluZy5sc3RyaXAobGluZSkKKwkgICAgbGluZSA9IHN0cmluZy5yc3RyaXAobGluZSkKKwkgICAgaWYgbGluZSA9PSAnJzoKKwkgICAgICAgIGNvbnRpbnVlCisJICAgIHdoaWxlIGxpbmVbLTFdID09ICdcXCc6CisJICAgICAgICBsaW5lID0gbGluZVs6LTFdCisJCW4gPSBzZWxmLmlucHV0LnJlYWRsaW5lKCkKKwkJc2VsZi5saW5lbm8gPSBzZWxmLmxpbmVubyArIDEKKwkJbiA9IHN0cmluZy5sc3RyaXAobikKKwkJbiA9IHN0cmluZy5yc3RyaXAobikKKwkJaWYgbm90IG46CisJCSAgICBicmVhaworCQllbHNlOgorCQkgICAgbGluZSA9IGxpbmUgKyBuCisgICAgICAgIHJldHVybiBsaW5lCisKKyAgICBkZWYgZ2V0bGluZW5vKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5saW5lbm8KKworICAgIGRlZiBwdXNoKHNlbGYsIHRva2VuKToKKyAgICAgICAgc2VsZi50b2tlbnMuaW5zZXJ0KDAsIHRva2VuKTsKKworICAgIGRlZiBkZWJ1ZyhzZWxmKToKKyAgICAgICAgcHJpbnQgIkxhc3QgdG9rZW46ICIsIHNlbGYubGFzdAorCXByaW50ICJUb2tlbiBxdWV1ZTogIiwgc2VsZi50b2tlbnMKKwlwcmludCAiTGluZSAlZCBlbmQ6ICIgJSAoc2VsZi5saW5lbm8pLCBzZWxmLmxpbmUKKworICAgIGRlZiB0b2tlbihzZWxmKToKKyAgICAgICAgd2hpbGUgc2VsZi50b2tlbnMgPT0gW106CisJICAgIGlmIHNlbGYubGluZSA9PSAiIjoKKwkJbGluZSA9IHNlbGYuZ2V0bGluZSgpCisJICAgIGVsc2U6CisJICAgICAgICBsaW5lID0gc2VsZi5saW5lCisJCXNlbGYubGluZSA9ICIiCisJICAgIGlmIGxpbmUgPT0gTm9uZToKKwkgICAgICAgIHJldHVybiBOb25lCisKKwkgICAgaWYgbGluZVswXSA9PSAnIyc6CisJICAgICAgICBzZWxmLnRva2VucyA9IG1hcCgobGFtYmRhIHg6ICgncHJlcHJvYycsIHgpKSwKKwkJICAgICAgICAgICAgICAgICAgc3RyaW5nLnNwbGl0KGxpbmUpKQorCQlicmVhazsKKwkgICAgbCA9IGxlbihsaW5lKQorCSAgICBpZiBsaW5lWzBdID09ICciJyBvciBsaW5lWzBdID09ICInIjoKKwkgICAgICAgIGVuZCA9IGxpbmVbMF0KKwkgICAgICAgIGxpbmUgPSBsaW5lWzE6XQorCQlmb3VuZCA9IDAKKwkJdG9rID0gIiIKKwkJd2hpbGUgZm91bmQgPT0gMDoKKwkJICAgIGkgPSAwCisJCSAgICBsID0gbGVuKGxpbmUpCisJCSAgICB3aGlsZSBpIDwgbDoKKwkJCWlmIGxpbmVbaV0gPT0gZW5kOgorCQkJICAgIHNlbGYubGluZSA9IGxpbmVbaSsxOl0KKwkJCSAgICBsaW5lID0gbGluZVs6aV0KKwkJCSAgICBsID0gaQorCQkJICAgIGZvdW5kID0gMQorCQkJICAgIGJyZWFrCisJCQlpZiBsaW5lW2ldID09ICdcXCc6CisJCQkgICAgaSA9IGkgKyAxCisJCQlpID0gaSArIDEKKwkJICAgIHRvayA9IHRvayArIGxpbmUKKwkJICAgIGlmIGZvdW5kID09IDA6CisJCSAgICAgICAgbGluZSA9IHNlbGYuZ2V0bGluZSgpCisJCQlpZiBsaW5lID09IE5vbmU6CisJCQkgICAgcmV0dXJuIE5vbmUKKwkJc2VsZi5sYXN0ID0gKCdzdHJpbmcnLCB0b2spCisJCXJldHVybiBzZWxmLmxhc3QKKworCSAgICBpZiBsID49IDIgYW5kIGxpbmVbMF0gPT0gJy8nIGFuZCBsaW5lWzFdID09ICcqJzoKKwkgICAgICAgIGxpbmUgPSBsaW5lWzI6XQorCQlmb3VuZCA9IDAKKwkJdG9rID0gIiIKKwkJd2hpbGUgZm91bmQgPT0gMDoKKwkJICAgIGkgPSAwCisJCSAgICBsID0gbGVuKGxpbmUpCisJCSAgICB3aGlsZSBpIDwgbDoKKwkJCWlmIGxpbmVbaV0gPT0gJyonIGFuZCBpKzEgPCBsIGFuZCBsaW5lW2krMV0gPT0gJy8nOgorCQkJICAgIHNlbGYubGluZSA9IGxpbmVbaSsyOl0KKwkJCSAgICBsaW5lID0gbGluZVs6aS0xXQorCQkJICAgIGwgPSBpCisJCQkgICAgZm91bmQgPSAxCisJCQkgICAgYnJlYWsKKwkJCWkgPSBpICsgMQorCSAgICAgICAgICAgIGlmIHRvayAhPSAiIjoKKwkJICAgICAgICB0b2sgPSB0b2sgKyAiXG4iCisJCSAgICB0b2sgPSB0b2sgKyBsaW5lCisJCSAgICBpZiBmb3VuZCA9PSAwOgorCQkgICAgICAgIGxpbmUgPSBzZWxmLmdldGxpbmUoKQorCQkJaWYgbGluZSA9PSBOb25lOgorCQkJICAgIHJldHVybiBOb25lCisJCXNlbGYubGFzdCA9ICgnY29tbWVudCcsIHRvaykKKwkJcmV0dXJuIHNlbGYubGFzdAorCSAgICBpZiBsID49IDIgYW5kIGxpbmVbMF0gPT0gJy8nIGFuZCBsaW5lWzFdID09ICcvJzoKKwkgICAgICAgIGxpbmUgPSBsaW5lWzI6XQorCQlzZWxmLmxhc3QgPSAoJ2NvbW1lbnQnLCBsaW5lKQorCQlyZXR1cm4gc2VsZi5sYXN0CisJICAgIGkgPSAwCisJICAgIHdoaWxlIGkgPCBsOgorCSAgICAgICAgaWYgbGluZVtpXSA9PSAnLycgYW5kIGkrMSA8IGwgYW5kIGxpbmVbaSsxXSA9PSAnLyc6CisJCSAgICBzZWxmLmxpbmUgPSBsaW5lW2k6XQorCQkgICAgbGluZSA9IGxpbmVbOmldCisJCSAgICBicmVhaworCSAgICAgICAgaWYgbGluZVtpXSA9PSAnLycgYW5kIGkrMSA8IGwgYW5kIGxpbmVbaSsxXSA9PSAnKic6CisJCSAgICBzZWxmLmxpbmUgPSBsaW5lW2k6XQorCQkgICAgbGluZSA9IGxpbmVbOmldCisJCSAgICBicmVhaworCQlpZiBsaW5lW2ldID09ICciJyBvciBsaW5lW2ldID09ICInIjoKKwkJICAgIHNlbGYubGluZSA9IGxpbmVbaTpdCisJCSAgICBsaW5lID0gbGluZVs6aV0KKwkJICAgIGJyZWFrCisJCWkgPSBpICsgMQorCSAgICBsID0gbGVuKGxpbmUpCisJICAgIGkgPSAwCisJICAgIHdoaWxlIGkgPCBsOgorCSAgICAgICAgaWYgbGluZVtpXSA9PSAnICcgb3IgbGluZVtpXSA9PSAnXHQnOgorCQkgICAgaSA9IGkgKyAxCisJCSAgICBjb250aW51ZQorCQlvID0gb3JkKGxpbmVbaV0pCisJCWlmIChvID49IDk3IGFuZCBvIDw9IDEyMikgb3IgKG8gPj0gNjUgYW5kIG8gPD0gOTApIG9yIFwKKwkJICAgKG8gPj0gNDggYW5kIG8gPD0gNTcpOgorCQkgICAgcyA9IGkKKwkJICAgIHdoaWxlIGkgPCBsOgorCQkJbyA9IG9yZChsaW5lW2ldKQorCQkJaWYgKG8gPj0gOTcgYW5kIG8gPD0gMTIyKSBvciAobyA+PSA2NSBhbmQgbyA8PSA5MCkgb3IgXAorCQkJICAgKG8gPj0gNDggYW5kIG8gPD0gNTcpIG9yIHN0cmluZy5maW5kKAorCQkJICAgICAgICIgXHQoKXt9OjssKy0qLyUmIXxbXT0+PCIsIGxpbmVbaV0pID09IC0xOgorCQkJICAgIGkgPSBpICsgMQorCQkJZWxzZToKKwkJCSAgICBicmVhaworCQkgICAgc2VsZi50b2tlbnMuYXBwZW5kKCgnbmFtZScsIGxpbmVbczppXSkpCisJCSAgICBjb250aW51ZQorCQlpZiBzdHJpbmcuZmluZCgiKCl7fTo7LFtdIiwgbGluZVtpXSkgIT0gLTE6CisjICAgICAgICAgICAgICAgICBpZiBsaW5lW2ldID09ICcoJyBvciBsaW5lW2ldID09ICcpJyBvciBsaW5lW2ldID09ICd7JyBvciBcCisjCQkgICAgbGluZVtpXSA9PSAnfScgb3IgbGluZVtpXSA9PSAnOicgb3IgbGluZVtpXSA9PSAnOycgb3IgXAorIwkJICAgIGxpbmVbaV0gPT0gJywnIG9yIGxpbmVbaV0gPT0gJ1snIG9yIGxpbmVbaV0gPT0gJ10nOgorCQkgICAgc2VsZi50b2tlbnMuYXBwZW5kKCgnc2VwJywgbGluZVtpXSkpCisJCSAgICBpID0gaSArIDEKKwkJICAgIGNvbnRpbnVlCisJCWlmIHN0cmluZy5maW5kKCIrLSo+PD0vJSYhfC4iLCBsaW5lW2ldKSAhPSAtMToKKyMgICAgICAgICAgICAgICAgIGlmIGxpbmVbaV0gPT0gJysnIG9yIGxpbmVbaV0gPT0gJy0nIG9yIGxpbmVbaV0gPT0gJyonIG9yIFwKKyMJCSAgICBsaW5lW2ldID09ICc+JyBvciBsaW5lW2ldID09ICc8JyBvciBsaW5lW2ldID09ICc9JyBvciBcCisjCQkgICAgbGluZVtpXSA9PSAnLycgb3IgbGluZVtpXSA9PSAnJScgb3IgbGluZVtpXSA9PSAnJicgb3IgXAorIwkJICAgIGxpbmVbaV0gPT0gJyEnIG9yIGxpbmVbaV0gPT0gJ3wnIG9yIGxpbmVbaV0gPT0gJy4nOgorCQkgICAgaWYgbGluZVtpXSA9PSAnLicgYW5kICBpICsgMiA8IGwgYW5kIFwKKwkJICAgICAgIGxpbmVbaSsxXSA9PSAnLicgYW5kIGxpbmVbaSsyXSA9PSAnLic6CisJCQlzZWxmLnRva2Vucy5hcHBlbmQoKCduYW1lJywgJy4uLicpKQorCQkJaSA9IGkgKyAzCisJCQljb250aW51ZQorCisJCSAgICBqID0gaSArIDEKKwkJICAgIGlmIGogPCBsIGFuZCAoCisJCSAgICAgICBzdHJpbmcuZmluZCgiKy0qPjw9LyUmIXwiLCBsaW5lW2pdKSAhPSAtMSk6CisjCQkgICAgICAgIGxpbmVbal0gPT0gJysnIG9yIGxpbmVbal0gPT0gJy0nIG9yIGxpbmVbal0gPT0gJyonIG9yIFwKKyMJCQlsaW5lW2pdID09ICc+JyBvciBsaW5lW2pdID09ICc8JyBvciBsaW5lW2pdID09ICc9JyBvciBcCisjCQkJbGluZVtqXSA9PSAnLycgb3IgbGluZVtqXSA9PSAnJScgb3IgbGluZVtqXSA9PSAnJicgb3IgXAorIwkJCWxpbmVbal0gPT0gJyEnIG9yIGxpbmVbal0gPT0gJ3wnKToKKwkJCXNlbGYudG9rZW5zLmFwcGVuZCgoJ29wJywgbGluZVtpOmorMV0pKQorCQkJaSA9IGogKyAxCisJCSAgICBlbHNlOgorCQkJc2VsZi50b2tlbnMuYXBwZW5kKCgnb3AnLCBsaW5lW2ldKSkKKwkJCWkgPSBpICsgMQorCQkgICAgY29udGludWUKKwkJcyA9IGkKKwkJd2hpbGUgaSA8IGw6CisJCSAgICBvID0gb3JkKGxpbmVbaV0pCisJCSAgICBpZiAobyA+PSA5NyBhbmQgbyA8PSAxMjIpIG9yIChvID49IDY1IGFuZCBvIDw9IDkwKSBvciBcCisJCSAgICAgICAobyA+PSA0OCBhbmQgbyA8PSA1Nykgb3IgKAorCQkgICAgICAgIHN0cmluZy5maW5kKCIgXHQoKXt9OjssKy0qLyUmIXxbXT0+PCIsIGxpbmVbaV0pID09IC0xKToKKyMJCSAgICAgICAgIGxpbmVbaV0gIT0gJyAnIGFuZCBsaW5lW2ldICE9ICdcdCcgYW5kCisjCQkJIGxpbmVbaV0gIT0gJygnIGFuZCBsaW5lW2ldICE9ICcpJyBhbmQKKyMJCQkgbGluZVtpXSAhPSAneycgIGFuZCBsaW5lW2ldICE9ICd9JyBhbmQKKyMJCQkgbGluZVtpXSAhPSAnOicgYW5kIGxpbmVbaV0gIT0gJzsnIGFuZAorIwkJCSBsaW5lW2ldICE9ICcsJyBhbmQgbGluZVtpXSAhPSAnKycgYW5kCisjCQkJIGxpbmVbaV0gIT0gJy0nIGFuZCBsaW5lW2ldICE9ICcqJyBhbmQKKyMJCQkgbGluZVtpXSAhPSAnLycgYW5kIGxpbmVbaV0gIT0gJyUnIGFuZAorIwkJCSBsaW5lW2ldICE9ICcmJyBhbmQgbGluZVtpXSAhPSAnIScgYW5kCisjCQkJIGxpbmVbaV0gIT0gJ3wnIGFuZCBsaW5lW2ldICE9ICdbJyBhbmQKKyMJCQkgbGluZVtpXSAhPSAnXScgYW5kIGxpbmVbaV0gIT0gJz0nIGFuZAorIwkJCSBsaW5lW2ldICE9ICcqJyBhbmQgbGluZVtpXSAhPSAnPicgYW5kCisjCQkJIGxpbmVbaV0gIT0gJzwnKToKKwkJCWkgPSBpICsgMQorCQkgICAgZWxzZToKKwkJICAgICAgICBicmVhaworCQlzZWxmLnRva2Vucy5hcHBlbmQoKCduYW1lJywgbGluZVtzOmldKSkKKworCXRvayA9IHNlbGYudG9rZW5zWzBdCisJc2VsZi50b2tlbnMgPSBzZWxmLnRva2Vuc1sxOl0KKwlzZWxmLmxhc3QgPSB0b2sKKwlyZXR1cm4gdG9rCisKK2NsYXNzIENQYXJzZXI6CisgICAgIiIiVGhlIEMgbW9kdWxlIHBhcnNlciIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgaWR4ID0gTm9uZSk6CisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQorCWlmIGxlbihmaWxlbmFtZSkgPiAyIGFuZCBmaWxlbmFtZVstMjpdID09ICcuaCc6CisJICAgIHNlbGYuaXNfaGVhZGVyID0gMQorCWVsc2U6CisJICAgIHNlbGYuaXNfaGVhZGVyID0gMAorICAgICAgICBzZWxmLmlucHV0ID0gb3BlbihmaWxlbmFtZSkKKwlzZWxmLmxleGVyID0gQ0xleGVyKHNlbGYuaW5wdXQpCisJaWYgaWR4ID09IE5vbmU6CisJICAgIHNlbGYuaW5kZXggPSBpbmRleCgpCisJZWxzZToKKwkgICAgc2VsZi5pbmRleCA9IGlkeAorCXNlbGYudG9wX2NvbW1lbnQgPSAiIgorCXNlbGYubGFzdF9jb21tZW50ID0gIiIKKwlzZWxmLmNvbW1lbnQgPSBOb25lCisJc2VsZi5jb2xsZWN0X3JlZiA9IDAKKwlzZWxmLm5vX2Vycm9yID0gMAorCXNlbGYuY29uZGl0aW9uYWxzID0gW10KKwlzZWxmLmRlZmluZXMgPSBbXQorCisgICAgZGVmIGNvbGxlY3RfcmVmZXJlbmNlcyhzZWxmKToKKyAgICAgICAgc2VsZi5jb2xsZWN0X3JlZiA9IDEKKworICAgIGRlZiBzdG9wX2Vycm9yKHNlbGYpOgorICAgICAgICBzZWxmLm5vX2Vycm9yID0gMQorCisgICAgZGVmIHN0YXJ0X2Vycm9yKHNlbGYpOgorICAgICAgICBzZWxmLm5vX2Vycm9yID0gMAorCisgICAgZGVmIGxpbmVubyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubGV4ZXIuZ2V0bGluZW5vKCkKKworICAgIGRlZiBpbmRleF9hZGQoc2VsZiwgbmFtZSwgbW9kdWxlLCBzdGF0aWMsIHR5cGUsIGluZm89Tm9uZSwgZXh0cmEgPSBOb25lKToKKwlpZiBzZWxmLmlzX2hlYWRlciA9PSAxOgorCSAgICBzZWxmLmluZGV4LmFkZChuYW1lLCBtb2R1bGUsIG1vZHVsZSwgc3RhdGljLCB0eXBlLCBzZWxmLmxpbmVubygpLAorCQkJICAgaW5mbywgZXh0cmEsIHNlbGYuY29uZGl0aW9uYWxzKQorCWVsc2U6CisJICAgIHNlbGYuaW5kZXguYWRkKG5hbWUsIE5vbmUsIG1vZHVsZSwgc3RhdGljLCB0eXBlLCBzZWxmLmxpbmVubygpLAorCQkJICAgaW5mbywgZXh0cmEsIHNlbGYuY29uZGl0aW9uYWxzKQorCisgICAgZGVmIGluZGV4X2FkZF9yZWYoc2VsZiwgbmFtZSwgbW9kdWxlLCBzdGF0aWMsIHR5cGUsIGluZm89Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICBleHRyYSA9IE5vbmUpOgorCWlmIHNlbGYuaXNfaGVhZGVyID09IDE6CisJICAgIHNlbGYuaW5kZXguYWRkX3JlZihuYW1lLCBtb2R1bGUsIG1vZHVsZSwgc3RhdGljLCB0eXBlLAorCSAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5saW5lbm8oKSwgaW5mbywgZXh0cmEsIHNlbGYuY29uZGl0aW9uYWxzKQorCWVsc2U6CisJICAgIHNlbGYuaW5kZXguYWRkX3JlZihuYW1lLCBOb25lLCBtb2R1bGUsIHN0YXRpYywgdHlwZSwgc2VsZi5saW5lbm8oKSwKKwkJCSAgICAgICBpbmZvLCBleHRyYSwgc2VsZi5jb25kaXRpb25hbHMpCisKKyAgICBkZWYgd2FybmluZyhzZWxmLCBtc2cpOgorICAgICAgICBpZiBzZWxmLm5vX2Vycm9yOgorCSAgICByZXR1cm4KKwlwcmludCBtc2cKKworICAgIGRlZiBlcnJvcihzZWxmLCBtc2csIHRva2VuPS0xKToKKyAgICAgICAgaWYgc2VsZi5ub19lcnJvcjoKKwkgICAgcmV0dXJuCisKKyAgICAgICAgcHJpbnQgIlBhcnNlIEVycm9yOiAiICsgbXNnCisJaWYgdG9rZW4gIT0gLTE6CisJICAgIHByaW50ICJHb3QgdG9rZW4gIiwgdG9rZW4KKwlzZWxmLmxleGVyLmRlYnVnKCkKKwlzeXMuZXhpdCgxKQorCisgICAgZGVmIGRlYnVnKHNlbGYsIG1zZywgdG9rZW49LTEpOgorICAgICAgICBwcmludCAiRGVidWc6ICIgKyBtc2cKKwlpZiB0b2tlbiAhPSAtMToKKwkgICAgcHJpbnQgIkdvdCB0b2tlbiAiLCB0b2tlbgorCXNlbGYubGV4ZXIuZGVidWcoKQorCisgICAgZGVmIHBhcnNlVG9wQ29tbWVudChzZWxmLCBjb21tZW50KToKKwlyZXMgPSB7fQorCWxpbmVzID0gc3RyaW5nLnNwbGl0KGNvbW1lbnQsICJcbiIpCisJaXRlbSA9IE5vbmUKKwlmb3IgbGluZSBpbiBsaW5lczoKKwkgICAgd2hpbGUgbGluZSAhPSAiIiBhbmQgKGxpbmVbMF0gPT0gJyAnIG9yIGxpbmVbMF0gPT0gJ1x0Jyk6CisJCWxpbmUgPSBsaW5lWzE6XQorCSAgICB3aGlsZSBsaW5lICE9ICIiIGFuZCBsaW5lWzBdID09ICcqJzoKKwkJbGluZSA9IGxpbmVbMTpdCisJICAgIHdoaWxlIGxpbmUgIT0gIiIgYW5kIChsaW5lWzBdID09ICcgJyBvciBsaW5lWzBdID09ICdcdCcpOgorCQlsaW5lID0gbGluZVsxOl0KKwkgICAgdHJ5OgorCQkoaXQsIGxpbmUpID0gc3RyaW5nLnNwbGl0KGxpbmUsICI6IiwgMSkKKwkJaXRlbSA9IGl0CisJCXdoaWxlIGxpbmUgIT0gIiIgYW5kIChsaW5lWzBdID09ICcgJyBvciBsaW5lWzBdID09ICdcdCcpOgorCQkgICAgbGluZSA9IGxpbmVbMTpdCisJCWlmIHJlcy5oYXNfa2V5KGl0ZW0pOgorCQkgICAgcmVzW2l0ZW1dID0gcmVzW2l0ZW1dICsgIiAiICsgbGluZQorCQllbHNlOgorCQkgICAgcmVzW2l0ZW1dID0gbGluZQorCSAgICBleGNlcHQ6CisJCWlmIGl0ZW0gIT0gTm9uZToKKwkJICAgIGlmIHJlcy5oYXNfa2V5KGl0ZW0pOgorCQkJcmVzW2l0ZW1dID0gcmVzW2l0ZW1dICsgIiAiICsgbGluZQorCQkgICAgZWxzZToKKwkJCXJlc1tpdGVtXSA9IGxpbmUKKwlzZWxmLmluZGV4LmluZm8gPSByZXMKKworICAgIGRlZiBwYXJzZUNvbW1lbnQoc2VsZiwgdG9rZW4pOgorICAgICAgICBpZiBzZWxmLnRvcF9jb21tZW50ID09ICIiOgorCSAgICBzZWxmLnRvcF9jb21tZW50ID0gdG9rZW5bMV0KKwlpZiBzZWxmLmNvbW1lbnQgPT0gTm9uZSBvciB0b2tlblsxXVswXSA9PSAnKic6CisJICAgIHNlbGYuY29tbWVudCA9IHRva2VuWzFdOworCWVsc2U6CisJICAgIHNlbGYuY29tbWVudCA9IHNlbGYuY29tbWVudCArIHRva2VuWzFdCisJdG9rZW4gPSBzZWxmLmxleGVyLnRva2VuKCkKKworICAgICAgICBpZiBzdHJpbmcuZmluZChzZWxmLmNvbW1lbnQsICJET0NfRElTQUJMRSIpICE9IC0xOgorCSAgICBzZWxmLnN0b3BfZXJyb3IoKQorCisgICAgICAgIGlmIHN0cmluZy5maW5kKHNlbGYuY29tbWVudCwgIkRPQ19FTkFCTEUiKSAhPSAtMToKKwkgICAgc2VsZi5zdGFydF9lcnJvcigpCisKKwlyZXR1cm4gdG9rZW4KKworICAgICMKKyAgICAjIFBhcnNlIGEgY29tbWVudCBibG9jayBhc3NvY2lhdGUgdG8gYSB0eXBlZGVmCisgICAgIworICAgIGRlZiBwYXJzZVR5cGVDb21tZW50KHNlbGYsIG5hbWUsIHF1aWV0ID0gMCk6CisgICAgICAgIGlmIG5hbWVbMDoyXSA9PSAnX18nOgorCSAgICBxdWlldCA9IDEKKworICAgICAgICBhcmdzID0gW10KKwlkZXNjID0gIiIKKworICAgICAgICBpZiBzZWxmLmNvbW1lbnQgPT0gTm9uZToKKwkgICAgaWYgbm90IHF1aWV0OgorCQlzZWxmLndhcm5pbmcoIk1pc3NpbmcgY29tbWVudCBmb3IgdHlwZSAlcyIgJSAobmFtZSkpCisJICAgIHJldHVybigoYXJncywgZGVzYykpCisgICAgICAgIGlmIHNlbGYuY29tbWVudFswXSAhPSAnKic6CisJICAgIGlmIG5vdCBxdWlldDoKKwkJc2VsZi53YXJuaW5nKCJNaXNzaW5nICogaW4gdHlwZSBjb21tZW50IGZvciAlcyIgJSAobmFtZSkpCisJICAgIHJldHVybigoYXJncywgZGVzYykpCisJbGluZXMgPSBzdHJpbmcuc3BsaXQoc2VsZi5jb21tZW50LCAnXG4nKQorCWlmIGxpbmVzWzBdID09ICcqJzoKKwkgICAgZGVsIGxpbmVzWzBdCisJaWYgbGluZXNbMF0gIT0gIiogJXM6IiAlIChuYW1lKToKKwkgICAgaWYgbm90IHF1aWV0OgorCQlzZWxmLndhcm5pbmcoIk1pc2Zvcm1hdHRlZCB0eXBlIGNvbW1lbnQgZm9yICVzIiAlIChuYW1lKSkKKwkJc2VsZi53YXJuaW5nKCIgIEV4cGVjdGluZyAnKiAlczonIGdvdCAnJXMnIiAlIChuYW1lLCBsaW5lc1swXSkpCisJICAgIHJldHVybigoYXJncywgZGVzYykpCisJZGVsIGxpbmVzWzBdCisJd2hpbGUgbGVuKGxpbmVzKSA+IDAgYW5kIGxpbmVzWzBdID09ICcqJzoKKwkgICAgZGVsIGxpbmVzWzBdCisJZGVzYyA9ICIiCisJd2hpbGUgbGVuKGxpbmVzKSA+IDA6CisJICAgIGwgPSBsaW5lc1swXQorCSAgICB3aGlsZSBsZW4obCkgPiAwIGFuZCBsWzBdID09ICcqJzoKKwkgICAgICAgIGwgPSBsWzE6XQorCSAgICBsID0gc3RyaW5nLnN0cmlwKGwpCisJICAgIGRlc2MgPSBkZXNjICsgIiAiICsgbAorCSAgICBkZWwgbGluZXNbMF0KKworCWRlc2MgPSBzdHJpbmcuc3RyaXAoZGVzYykKKworCWlmIHF1aWV0ID09IDA6CisJICAgIGlmIGRlc2MgPT0gIiI6CisJICAgICAgICBzZWxmLndhcm5pbmcoIlR5cGUgY29tbWVudCBmb3IgJXMgbGFjayBkZXNjcmlwdGlvbiBvZiB0aGUgbWFjcm8iICUgKG5hbWUpKQorCisJcmV0dXJuKGRlc2MpCisgICAgIworICAgICMgUGFyc2UgYSBjb21tZW50IGJsb2NrIGFzc29jaWF0ZSB0byBhIG1hY3JvCisgICAgIworICAgIGRlZiBwYXJzZU1hY3JvQ29tbWVudChzZWxmLCBuYW1lLCBxdWlldCA9IDApOgorICAgICAgICBpZiBuYW1lWzA6Ml0gPT0gJ19fJzoKKwkgICAgcXVpZXQgPSAxCisKKyAgICAgICAgYXJncyA9IFtdCisJZGVzYyA9ICIiCisKKyAgICAgICAgaWYgc2VsZi5jb21tZW50ID09IE5vbmU6CisJICAgIGlmIG5vdCBxdWlldDoKKwkJc2VsZi53YXJuaW5nKCJNaXNzaW5nIGNvbW1lbnQgZm9yIG1hY3JvICVzIiAlIChuYW1lKSkKKwkgICAgcmV0dXJuKChhcmdzLCBkZXNjKSkKKyAgICAgICAgaWYgc2VsZi5jb21tZW50WzBdICE9ICcqJzoKKwkgICAgaWYgbm90IHF1aWV0OgorCQlzZWxmLndhcm5pbmcoIk1pc3NpbmcgKiBpbiBtYWNybyBjb21tZW50IGZvciAlcyIgJSAobmFtZSkpCisJICAgIHJldHVybigoYXJncywgZGVzYykpCisJbGluZXMgPSBzdHJpbmcuc3BsaXQoc2VsZi5jb21tZW50LCAnXG4nKQorCWlmIGxpbmVzWzBdID09ICcqJzoKKwkgICAgZGVsIGxpbmVzWzBdCisJaWYgbGluZXNbMF0gIT0gIiogJXM6IiAlIChuYW1lKToKKwkgICAgaWYgbm90IHF1aWV0OgorCQlzZWxmLndhcm5pbmcoIk1pc2Zvcm1hdHRlZCBtYWNybyBjb21tZW50IGZvciAlcyIgJSAobmFtZSkpCisJCXNlbGYud2FybmluZygiICBFeHBlY3RpbmcgJyogJXM6JyBnb3QgJyVzJyIgJSAobmFtZSwgbGluZXNbMF0pKQorCSAgICByZXR1cm4oKGFyZ3MsIGRlc2MpKQorCWRlbCBsaW5lc1swXQorCXdoaWxlIGxpbmVzWzBdID09ICcqJzoKKwkgICAgZGVsIGxpbmVzWzBdCisJd2hpbGUgbGVuKGxpbmVzKSA+IDAgYW5kIGxpbmVzWzBdWzA6M10gPT0gJyogQCc6CisJICAgIGwgPSBsaW5lc1swXVszOl0KKwkgICAgdHJ5OgorCSAgICAgICAgKGFyZywgZGVzYykgPSBzdHJpbmcuc3BsaXQobCwgJzonLCAxKQorCQlkZXNjPXN0cmluZy5zdHJpcChkZXNjKQorCQlhcmc9c3RyaW5nLnN0cmlwKGFyZykKKyAgICAgICAgICAgIGV4Y2VwdDoKKwkJaWYgbm90IHF1aWV0OgorCQkgICAgc2VsZi53YXJuaW5nKCJNaXNmb3JtYXR0ZWQgbWFjcm8gY29tbWVudCBmb3IgJXMiICUgKG5hbWUpKQorCQkgICAgc2VsZi53YXJuaW5nKCIgIHByb2JsZW0gd2l0aCAnJXMnIiAlIChsaW5lc1swXSkpCisJCWRlbCBsaW5lc1swXQorCQljb250aW51ZQorCSAgICBkZWwgbGluZXNbMF0KKwkgICAgbCA9IHN0cmluZy5zdHJpcChsaW5lc1swXSkKKwkgICAgd2hpbGUgbGVuKGwpID4gMiBhbmQgbFswOjNdICE9ICcqIEAnOgorCSAgICAgICAgd2hpbGUgbFswXSA9PSAnKic6CisJCSAgICBsID0gbFsxOl0KKwkJZGVzYyA9IGRlc2MgKyAnICcgKyBzdHJpbmcuc3RyaXAobCkKKwkJZGVsIGxpbmVzWzBdCisJCWlmIGxlbihsaW5lcykgPT0gMDoKKwkJICAgIGJyZWFrCisJCWwgPSBsaW5lc1swXQorICAgICAgICAgICAgYXJncy5hcHBlbmQoKGFyZywgZGVzYykpCisJd2hpbGUgbGVuKGxpbmVzKSA+IDAgYW5kIGxpbmVzWzBdID09ICcqJzoKKwkgICAgZGVsIGxpbmVzWzBdCisJZGVzYyA9ICIiCisJd2hpbGUgbGVuKGxpbmVzKSA+IDA6CisJICAgIGwgPSBsaW5lc1swXQorCSAgICB3aGlsZSBsZW4obCkgPiAwIGFuZCBsWzBdID09ICcqJzoKKwkgICAgICAgIGwgPSBsWzE6XQorCSAgICBsID0gc3RyaW5nLnN0cmlwKGwpCisJICAgIGRlc2MgPSBkZXNjICsgIiAiICsgbAorCSAgICBkZWwgbGluZXNbMF0KKworCWRlc2MgPSBzdHJpbmcuc3RyaXAoZGVzYykKKworCWlmIHF1aWV0ID09IDA6CisJICAgIGlmIGRlc2MgPT0gIiI6CisJICAgICAgICBzZWxmLndhcm5pbmcoIk1hY3JvIGNvbW1lbnQgZm9yICVzIGxhY2sgZGVzY3JpcHRpb24gb2YgdGhlIG1hY3JvIiAlIChuYW1lKSkKKworCXJldHVybigoYXJncywgZGVzYykpCisKKyAgICAgIworICAgICAjIFBhcnNlIGEgY29tbWVudCBibG9jayBhbmQgbWVyZ2UgdGhlIGluZm9ybWF0aW9ucyBmb3VuZCBpbiB0aGUKKyAgICAgIyBwYXJhbWV0ZXJzIGRlc2NyaXB0aW9ucywgZmluYWxseSByZXR1cm5zIGEgYmxvY2sgYXMgY29tcGxldGUKKyAgICAgIyBhcyBwb3NzaWJsZQorICAgICAjCisgICAgZGVmIG1lcmdlRnVuY3Rpb25Db21tZW50KHNlbGYsIG5hbWUsIGRlc2NyaXB0aW9uLCBxdWlldCA9IDApOgorICAgICAgICBpZiBuYW1lID09ICdtYWluJzoKKwkgICAgcXVpZXQgPSAxCisgICAgICAgIGlmIG5hbWVbMDoyXSA9PSAnX18nOgorCSAgICBxdWlldCA9IDEKKworCShyZXQsIGFyZ3MpID0gZGVzY3JpcHRpb24KKwlkZXNjID0gIiIKKwlyZXRkZXNjID0gIiIKKworICAgICAgICBpZiBzZWxmLmNvbW1lbnQgPT0gTm9uZToKKwkgICAgaWYgbm90IHF1aWV0OgorCQlzZWxmLndhcm5pbmcoIk1pc3NpbmcgY29tbWVudCBmb3IgZnVuY3Rpb24gJXMiICUgKG5hbWUpKQorCSAgICByZXR1cm4oKChyZXRbMF0sIHJldGRlc2MpLCBhcmdzLCBkZXNjKSkKKyAgICAgICAgaWYgc2VsZi5jb21tZW50WzBdICE9ICcqJzoKKwkgICAgaWYgbm90IHF1aWV0OgorCQlzZWxmLndhcm5pbmcoIk1pc3NpbmcgKiBpbiBmdW5jdGlvbiBjb21tZW50IGZvciAlcyIgJSAobmFtZSkpCisJICAgIHJldHVybigoKHJldFswXSwgcmV0ZGVzYyksIGFyZ3MsIGRlc2MpKQorCWxpbmVzID0gc3RyaW5nLnNwbGl0KHNlbGYuY29tbWVudCwgJ1xuJykKKwlpZiBsaW5lc1swXSA9PSAnKic6CisJICAgIGRlbCBsaW5lc1swXQorCWlmIGxpbmVzWzBdICE9ICIqICVzOiIgJSAobmFtZSk6CisJICAgIGlmIG5vdCBxdWlldDoKKwkJc2VsZi53YXJuaW5nKCJNaXNmb3JtYXR0ZWQgZnVuY3Rpb24gY29tbWVudCBmb3IgJXMiICUgKG5hbWUpKQorCQlzZWxmLndhcm5pbmcoIiAgRXhwZWN0aW5nICcqICVzOicgZ290ICclcyciICUgKG5hbWUsIGxpbmVzWzBdKSkKKwkgICAgcmV0dXJuKCgocmV0WzBdLCByZXRkZXNjKSwgYXJncywgZGVzYykpCisJZGVsIGxpbmVzWzBdCisJd2hpbGUgbGluZXNbMF0gPT0gJyonOgorCSAgICBkZWwgbGluZXNbMF0KKwluYmFyZ3MgPSBsZW4oYXJncykKKwl3aGlsZSBsZW4obGluZXMpID4gMCBhbmQgbGluZXNbMF1bMDozXSA9PSAnKiBAJzoKKwkgICAgbCA9IGxpbmVzWzBdWzM6XQorCSAgICB0cnk6CisJICAgICAgICAoYXJnLCBkZXNjKSA9IHN0cmluZy5zcGxpdChsLCAnOicsIDEpCisJCWRlc2M9c3RyaW5nLnN0cmlwKGRlc2MpCisJCWFyZz1zdHJpbmcuc3RyaXAoYXJnKQorICAgICAgICAgICAgZXhjZXB0OgorCQlpZiBub3QgcXVpZXQ6CisJCSAgICBzZWxmLndhcm5pbmcoIk1pc2Zvcm1hdHRlZCBmdW5jdGlvbiBjb21tZW50IGZvciAlcyIgJSAobmFtZSkpCisJCSAgICBzZWxmLndhcm5pbmcoIiAgcHJvYmxlbSB3aXRoICclcyciICUgKGxpbmVzWzBdKSkKKwkJZGVsIGxpbmVzWzBdCisJCWNvbnRpbnVlCisJICAgIGRlbCBsaW5lc1swXQorCSAgICBsID0gc3RyaW5nLnN0cmlwKGxpbmVzWzBdKQorCSAgICB3aGlsZSBsZW4obCkgPiAyIGFuZCBsWzA6M10gIT0gJyogQCc6CisJICAgICAgICB3aGlsZSBsWzBdID09ICcqJzoKKwkJICAgIGwgPSBsWzE6XQorCQlkZXNjID0gZGVzYyArICcgJyArIHN0cmluZy5zdHJpcChsKQorCQlkZWwgbGluZXNbMF0KKwkJaWYgbGVuKGxpbmVzKSA9PSAwOgorCQkgICAgYnJlYWsKKwkJbCA9IGxpbmVzWzBdCisJICAgIGkgPSAwCisJICAgIHdoaWxlIGkgPCBuYmFyZ3M6CisJICAgICAgICBpZiBhcmdzW2ldWzFdID09IGFyZzoKKwkJICAgIGFyZ3NbaV0gPSAoYXJnc1tpXVswXSwgYXJnLCBkZXNjKQorCQkgICAgYnJlYWs7CisJCWkgPSBpICsgMQorCSAgICBpZiBpID49IG5iYXJnczoKKwkJaWYgbm90IHF1aWV0OgorCQkgICAgc2VsZi53YXJuaW5nKCJVbmFibGUgdG8gZmluZCBhcmcgJXMgZnJvbSBmdW5jdGlvbiBjb21tZW50IGZvciAlcyIgJSAoCisJCSAgICAgICBhcmcsIG5hbWUpKQorCXdoaWxlIGxlbihsaW5lcykgPiAwIGFuZCBsaW5lc1swXSA9PSAnKic6CisJICAgIGRlbCBsaW5lc1swXQorCWRlc2MgPSAiIgorCXdoaWxlIGxlbihsaW5lcykgPiAwOgorCSAgICBsID0gbGluZXNbMF0KKwkgICAgd2hpbGUgbGVuKGwpID4gMCBhbmQgbFswXSA9PSAnKic6CisJICAgICAgICBsID0gbFsxOl0KKwkgICAgbCA9IHN0cmluZy5zdHJpcChsKQorCSAgICBpZiBsZW4obCkgPj0gNiBhbmQgIGxbMDo2XSA9PSAicmV0dXJuIiBvciBsWzA6Nl0gPT0gIlJldHVybiI6CisJICAgICAgICB0cnk6CisJCSAgICBsID0gc3RyaW5nLnNwbGl0KGwsICcgJywgMSlbMV0KKwkJZXhjZXB0OgorCQkgICAgbCA9ICIiCisJCXJldGRlc2MgPSBzdHJpbmcuc3RyaXAobCkKKwkJZGVsIGxpbmVzWzBdCisJCXdoaWxlIGxlbihsaW5lcykgPiAwOgorCQkgICAgbCA9IGxpbmVzWzBdCisJCSAgICB3aGlsZSBsZW4obCkgPiAwIGFuZCBsWzBdID09ICcqJzoKKwkJCWwgPSBsWzE6XQorCQkgICAgbCA9IHN0cmluZy5zdHJpcChsKQorCQkgICAgcmV0ZGVzYyA9IHJldGRlc2MgKyAiICIgKyBsCisJCSAgICBkZWwgbGluZXNbMF0KKwkgICAgZWxzZToKKwkgICAgICAgIGRlc2MgPSBkZXNjICsgIiAiICsgbAorCQlkZWwgbGluZXNbMF0KKworCXJldGRlc2MgPSBzdHJpbmcuc3RyaXAocmV0ZGVzYykKKwlkZXNjID0gc3RyaW5nLnN0cmlwKGRlc2MpCisKKwlpZiBxdWlldCA9PSAwOgorCSAgICAgIworCSAgICAgIyByZXBvcnQgbWlzc2luZyBjb21tZW50cworCSAgICAgIworCSAgICBpID0gMAorCSAgICB3aGlsZSBpIDwgbmJhcmdzOgorCSAgICAgICAgaWYgYXJnc1tpXVsyXSA9PSBOb25lIGFuZCBhcmdzW2ldWzBdICE9ICJ2b2lkIiBhbmQgXAorCQkgICAoKGFyZ3NbaV1bMV0gIT0gTm9uZSkgb3IgKGFyZ3NbaV1bMV0gPT0gJycpKToKKwkJICAgIHNlbGYud2FybmluZygiRnVuY3Rpb24gY29tbWVudCBmb3IgJXMgbGFja3MgZGVzY3JpcHRpb24gb2YgYXJnICVzIiAlIChuYW1lLCBhcmdzW2ldWzFdKSkKKwkJaSA9IGkgKyAxCisJICAgIGlmIHJldGRlc2MgPT0gIiIgYW5kIHJldFswXSAhPSAidm9pZCI6CisJCXNlbGYud2FybmluZygiRnVuY3Rpb24gY29tbWVudCBmb3IgJXMgbGFja3MgZGVzY3JpcHRpb24gb2YgcmV0dXJuIHZhbHVlIiAlIChuYW1lKSkKKwkgICAgaWYgZGVzYyA9PSAiIjoKKwkgICAgICAgIHNlbGYud2FybmluZygiRnVuY3Rpb24gY29tbWVudCBmb3IgJXMgbGFja3MgZGVzY3JpcHRpb24gb2YgdGhlIGZ1bmN0aW9uIiAlIChuYW1lKSkKKworCXJldHVybigoKHJldFswXSwgcmV0ZGVzYyksIGFyZ3MsIGRlc2MpKQorCisgICAgZGVmIHBhcnNlUHJlcHJvYyhzZWxmLCB0b2tlbik6CisJaWYgZGVidWc6CisJICAgIHByaW50ICI9PiBwcmVwcm9jICIsIHRva2VuLCBzZWxmLmxleGVyLnRva2VucworICAgICAgICBuYW1lID0gdG9rZW5bMV0KKwlpZiBuYW1lID09ICIjaW5jbHVkZSI6CisJICAgIHRva2VuID0gc2VsZi5sZXhlci50b2tlbigpCisJICAgIGlmIHRva2VuID09IE5vbmU6CisJICAgICAgICByZXR1cm4gTm9uZQorCSAgICBpZiB0b2tlblswXSA9PSAncHJlcHJvYyc6CisJCXNlbGYuaW5kZXhfYWRkKHRva2VuWzFdLCBzZWxmLmZpbGVuYW1lLCBub3Qgc2VsZi5pc19oZWFkZXIsCisJCSAgICAgICAgICAgICAgICAiaW5jbHVkZSIpCisJCXJldHVybiBzZWxmLmxleGVyLnRva2VuKCkKKwkgICAgcmV0dXJuIHRva2VuCisJaWYgbmFtZSA9PSAiI2RlZmluZSI6CisJICAgIHRva2VuID0gc2VsZi5sZXhlci50b2tlbigpCisJICAgIGlmIHRva2VuID09IE5vbmU6CisJICAgICAgICByZXR1cm4gTm9uZQorCSAgICBpZiB0b2tlblswXSA9PSAncHJlcHJvYyc6CisJICAgICAgICAgIyBUT0RPIG1hY3JvcyB3aXRoIGFyZ3VtZW50cworCQluYW1lID0gdG9rZW5bMV0KKwkgICAgICAgIGxzdCA9IFtdCisJCXRva2VuID0gc2VsZi5sZXhlci50b2tlbigpCisJCXdoaWxlIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICdwcmVwcm9jJyBhbmQgXAorCQkgICAgICB0b2tlblsxXVswXSAhPSAnIyc6CisJCSAgICBsc3QuYXBwZW5kKHRva2VuWzFdKQorCQkgICAgdG9rZW4gPSBzZWxmLmxleGVyLnRva2VuKCkKKyAgICAgICAgICAgICAgICB0cnk6CisJCSAgICBuYW1lID0gc3RyaW5nLnNwbGl0KG5hbWUsICcoJykgWzBdCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgaW5mbyA9IHNlbGYucGFyc2VNYWNyb0NvbW1lbnQobmFtZSwgbm90IHNlbGYuaXNfaGVhZGVyKQorCQlzZWxmLmluZGV4X2FkZChuYW1lLCBzZWxmLmZpbGVuYW1lLCBub3Qgc2VsZi5pc19oZWFkZXIsCisJCSAgICAgICAgICAgICAgICAibWFjcm8iLCBpbmZvKQorCQlyZXR1cm4gdG9rZW4KKworCSMKKwkjIFByb2Nlc3Npbmcgb2YgY29uZGl0aW9uYWxzIG1vZGlmaWVkIGJ5IEJpbGwgMS8xLzA1CisJIworCSMgV2UgcHJvY2VzcyBjb25kaXRpb25hbHMgKGkuZS4gdG9rZW5zIGZyb20gI2lmZGVmLCAjaWZuZGVmLAorCSMgI2lmLCAjZWxzZSBhbmQgI2VuZGlmKSBmb3IgaGVhZGVycyBhbmQgbWFpbmxpbmUgY29kZSwKKwkjIHN0b3JlIHRoZSBvbmVzIGZyb20gdGhlIGhlYWRlciBpbiBsaWJ4bWwyLWFwaS54bWwsIGFuZCBsYXRlcgorCSMgKGluIHRoZSByb3V0aW5lIG1lcmdlX3B1YmxpYykgdmVyaWZ5IHRoYXQgdGhlIHR3byAoaGVhZGVyIGFuZAorCSMgbWFpbmxpbmUgY29kZSkgYWdyZWUuCisJIworCSMgVGhlcmUgaXMgYSBzbWFsbCBwcm9ibGVtIHdpdGggcHJvY2Vzc2luZyB0aGUgaGVhZGVycy4gU29tZSBvZgorCSMgdGhlIHZhcmlhYmxlcyBhcmUgbm90IGNvbmNlcm5lZCB3aXRoIGVuYWJsaW5nIC8gZGlzYWJsaW5nIG9mCisJIyBsaWJyYXJ5IGZ1bmN0aW9ucyAoZS5nLiAnX19YTUxfUEFSU0VSX0hfXycpLCBhbmQgd2UgZG9uJ3Qgd2FudAorCSMgdGhlbSB0byBiZSBpbmNsdWRlZCBpbiBsaWJ4bWwyLWFwaS54bWwsIG9yIGludm9sdmVkIGluCisJIyB0aGUgY2hlY2sgYmV0d2VlbiB0aGUgaGVhZGVyIGFuZCB0aGUgbWFpbmxpbmUgY29kZS4gIFRvCisJIyBhY2NvbXBsaXNoIHRoaXMsIHdlIGlnbm9yZSBhbnkgY29uZGl0aW9uYWwgd2hpY2ggZG9lc24ndCBpbmNsdWRlCisJIyB0aGUgc3RyaW5nICdFTkFCTEVEJworCSMKKwlpZiBuYW1lID09ICIjaWZkZWYiOgorCSAgICBhcHN0ciA9IHNlbGYubGV4ZXIudG9rZW5zWzBdWzFdCisJICAgIHRyeToKKwkgICAgICAgIHNlbGYuZGVmaW5lcy5hcHBlbmQoYXBzdHIpCisJCWlmIHN0cmluZy5maW5kKGFwc3RyLCAnRU5BQkxFRCcpICE9IC0xOgorCQkgICAgc2VsZi5jb25kaXRpb25hbHMuYXBwZW5kKCJkZWZpbmVkKCVzKSIgJSBhcHN0cikKKwkgICAgZXhjZXB0OgorCSAgICAgICAgcGFzcworCWVsaWYgbmFtZSA9PSAiI2lmbmRlZiI6CisJICAgIGFwc3RyID0gc2VsZi5sZXhlci50b2tlbnNbMF1bMV0KKwkgICAgdHJ5OgorCSAgICAgICAgc2VsZi5kZWZpbmVzLmFwcGVuZChhcHN0cikKKwkJaWYgc3RyaW5nLmZpbmQoYXBzdHIsICdFTkFCTEVEJykgIT0gLTE6CisJCSAgICBzZWxmLmNvbmRpdGlvbmFscy5hcHBlbmQoIiFkZWZpbmVkKCVzKSIgJSBhcHN0cikKKwkgICAgZXhjZXB0OgorCSAgICAgICAgcGFzcworCWVsaWYgbmFtZSA9PSAiI2lmIjoKKwkgICAgYXBzdHIgPSAiIgorCSAgICBmb3IgdG9rIGluIHNlbGYubGV4ZXIudG9rZW5zOgorCSAgICAgICAgaWYgYXBzdHIgIT0gIiI6CisJCSAgICBhcHN0ciA9IGFwc3RyICsgIiAiCisJICAgICAgICBhcHN0ciA9IGFwc3RyICsgdG9rWzFdCisJICAgIHRyeToKKwkgICAgICAgIHNlbGYuZGVmaW5lcy5hcHBlbmQoYXBzdHIpCisJCWlmIHN0cmluZy5maW5kKGFwc3RyLCAnRU5BQkxFRCcpICE9IC0xOgorCQkgICAgc2VsZi5jb25kaXRpb25hbHMuYXBwZW5kKGFwc3RyKQorCSAgICBleGNlcHQ6CisJICAgICAgICBwYXNzCisJZWxpZiBuYW1lID09ICIjZWxzZSI6CisJICAgIGlmIHNlbGYuY29uZGl0aW9uYWxzICE9IFtdIGFuZCBcCisJICAgICAgIHN0cmluZy5maW5kKHNlbGYuZGVmaW5lc1stMV0sICdFTkFCTEVEJykgIT0gLTE6CisJICAgICAgICBzZWxmLmNvbmRpdGlvbmFsc1stMV0gPSAiISglcykiICUgc2VsZi5jb25kaXRpb25hbHNbLTFdCisJZWxpZiBuYW1lID09ICIjZW5kaWYiOgorCSAgICBpZiBzZWxmLmNvbmRpdGlvbmFscyAhPSBbXSBhbmQgXAorCSAgICAgICBzdHJpbmcuZmluZChzZWxmLmRlZmluZXNbLTFdLCAnRU5BQkxFRCcpICE9IC0xOgorCSAgICAgICAgc2VsZi5jb25kaXRpb25hbHMgPSBzZWxmLmNvbmRpdGlvbmFsc1s6LTFdCisJICAgIHNlbGYuZGVmaW5lcyA9IHNlbGYuZGVmaW5lc1s6LTFdCisJdG9rZW4gPSBzZWxmLmxleGVyLnRva2VuKCkKKwl3aGlsZSB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAncHJlcHJvYycgYW5kIFwKKwkgICAgdG9rZW5bMV1bMF0gIT0gJyMnOgorCSAgICB0b2tlbiA9IHNlbGYubGV4ZXIudG9rZW4oKQorCXJldHVybiB0b2tlbgorCisgICAgICMKKyAgICAgIyB0b2tlbiBhY3F1aXNpdGlvbiBvbiB0b3Agb2YgdGhlIGxleGVyLCBpdCBoYW5kbGUgaW50ZXJuYWxseQorICAgICAjIHByZXByb2Nlc3NvciBhbmQgY29tbWVudHMgc2luY2UgdGhleSBhcmUgbG9naWNhbGx5IG5vdCBwYXJ0IG9mCisgICAgICMgdGhlIHByb2dyYW0gc3RydWN0dXJlLgorICAgICAjCisgICAgZGVmIHRva2VuKHNlbGYpOgorICAgICAgICBnbG9iYWwgaWdub3JlZF93b3JkcworCisgICAgICAgIHRva2VuID0gc2VsZi5sZXhlci50b2tlbigpCisJd2hpbGUgdG9rZW4gIT0gTm9uZToKKwkgICAgaWYgdG9rZW5bMF0gPT0gJ2NvbW1lbnQnOgorCQl0b2tlbiA9IHNlbGYucGFyc2VDb21tZW50KHRva2VuKQorCQljb250aW51ZQorCSAgICBlbGlmIHRva2VuWzBdID09ICdwcmVwcm9jJzoKKwkJdG9rZW4gPSBzZWxmLnBhcnNlUHJlcHJvYyh0b2tlbikKKwkJY29udGludWUKKwkgICAgZWxpZiB0b2tlblswXSA9PSAibmFtZSIgYW5kIHRva2VuWzFdID09ICJfX2NvbnN0IjoKKwkgICAgICAgIHRva2VuID0gKCJuYW1lIiwgImNvbnN0IikKKwkJcmV0dXJuIHRva2VuCisJICAgIGVsaWYgdG9rZW5bMF0gPT0gIm5hbWUiIGFuZCB0b2tlblsxXSA9PSAiX19hdHRyaWJ1dGUiOgorCQl0b2tlbiA9IHNlbGYubGV4ZXIudG9rZW4oKQorCQl3aGlsZSB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblsxXSAhPSAiOyI6CisJCSAgICB0b2tlbiA9IHNlbGYubGV4ZXIudG9rZW4oKQorCQlyZXR1cm4gdG9rZW4KKwkgICAgZWxpZiB0b2tlblswXSA9PSAibmFtZSIgYW5kIGlnbm9yZWRfd29yZHMuaGFzX2tleSh0b2tlblsxXSk6CisJICAgICAgICAobiwgaW5mbykgPSBpZ25vcmVkX3dvcmRzW3Rva2VuWzFdXQorCQlpID0gMAorCQl3aGlsZSBpIDwgbjoKKwkJICAgIHRva2VuID0gc2VsZi5sZXhlci50b2tlbigpCisJCSAgICBpID0gaSArIDEKKwkJdG9rZW4gPSBzZWxmLmxleGVyLnRva2VuKCkKKwkJY29udGludWUKKwkgICAgZWxzZToKKwkgICAgICAgIGlmIGRlYnVnOgorCQkgICAgcHJpbnQgIj0+ICIsIHRva2VuCisJICAgICAgICByZXR1cm4gdG9rZW4KKwlyZXR1cm4gTm9uZQorCisgICAgICMKKyAgICAgIyBQYXJzZSBhIHR5cGVkZWYsIGl0IHJlY29yZHMgdGhlIHR5cGUgYW5kIGl0cyBuYW1lLgorICAgICAjCisgICAgZGVmIHBhcnNlVHlwZWRlZihzZWxmLCB0b2tlbik6CisgICAgICAgIGlmIHRva2VuID09IE5vbmU6CisJICAgIHJldHVybiBOb25lCisJdG9rZW4gPSBzZWxmLnBhcnNlVHlwZSh0b2tlbikKKwlpZiB0b2tlbiA9PSBOb25lOgorCSAgICBzZWxmLmVycm9yKCJwYXJzaW5nIHR5cGVkZWYiKQorCSAgICByZXR1cm4gTm9uZQorCWJhc2VfdHlwZSA9IHNlbGYudHlwZQorCXR5cGUgPSBiYXNlX3R5cGUKKwkgI3NlbGYuZGVidWcoImVuZCB0eXBlZGVmIHR5cGUiLCB0b2tlbikKKwl3aGlsZSB0b2tlbiAhPSBOb25lOgorCSAgICBpZiB0b2tlblswXSA9PSAibmFtZSI6CisJCW5hbWUgPSB0b2tlblsxXQorCQlzaWduYXR1cmUgPSBzZWxmLnNpZ25hdHVyZQorCQlpZiBzaWduYXR1cmUgIT0gTm9uZToKKwkJICAgIHR5cGUgPSBzdHJpbmcuc3BsaXQodHlwZSwgJygnKVswXQorCQkgICAgZCA9IHNlbGYubWVyZ2VGdW5jdGlvbkNvbW1lbnQobmFtZSwKKwkJCSAgICAoKHR5cGUsIE5vbmUpLCBzaWduYXR1cmUpLCAxKQorCQkgICAgc2VsZi5pbmRleF9hZGQobmFtZSwgc2VsZi5maWxlbmFtZSwgbm90IHNlbGYuaXNfaGVhZGVyLAorCQkJCSAgICAiZnVuY3R5cGUiLCBkKQorCQllbHNlOgorCQkgICAgaWYgYmFzZV90eXBlID09ICJzdHJ1Y3QiOgorCQkJc2VsZi5pbmRleF9hZGQobmFtZSwgc2VsZi5maWxlbmFtZSwgbm90IHNlbGYuaXNfaGVhZGVyLAorCQkJCQkic3RydWN0IiwgdHlwZSkKKwkJCWJhc2VfdHlwZSA9ICJzdHJ1Y3QgIiArIG5hbWUKKwkgICAgICAgICAgICBlbHNlOgorCQkJIyBUT0RPIHJlcG9ydCBtaXNzaW5nIG9yIG1pc2Zvcm1hdHRlZCBjb21tZW50cworCQkJaW5mbyA9IHNlbGYucGFyc2VUeXBlQ29tbWVudChuYW1lLCAxKQorCQkJc2VsZi5pbmRleF9hZGQobmFtZSwgc2VsZi5maWxlbmFtZSwgbm90IHNlbGYuaXNfaGVhZGVyLAorCQkgICAgICAgICAgICAgICAgICAgICJ0eXBlZGVmIiwgdHlwZSwgaW5mbykKKwkJdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkgICAgZWxzZToKKwkJc2VsZi5lcnJvcigicGFyc2luZyB0eXBlZGVmOiBleHBlY3RpbmcgYSBuYW1lIikKKwkJcmV0dXJuIHRva2VuCisJICAgICAjc2VsZi5kZWJ1ZygiZW5kIHR5cGVkZWYiLCB0b2tlbikKKwkgICAgaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gJ3NlcCcgYW5kIHRva2VuWzFdID09ICcsJzoKKwkgICAgICAgIHR5cGUgPSBiYXNlX3R5cGUKKwkgICAgICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCXdoaWxlIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJvcCI6CisJCSAgICB0eXBlID0gdHlwZSArIHRva2VuWzFdCisJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCSAgICBlbGlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICdzZXAnIGFuZCB0b2tlblsxXSA9PSAnOyc6CisJICAgICAgICBicmVhazsKKwkgICAgZWxpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAnbmFtZSc6CisJICAgICAgICB0eXBlID0gYmFzZV90eXBlCisJICAgICAgICBjb250aW51ZTsKKwkgICAgZWxzZToKKwkJc2VsZi5lcnJvcigicGFyc2luZyB0eXBlZGVmOiBleHBlY3RpbmcgJzsnIiwgdG9rZW4pCisJCXJldHVybiB0b2tlbgorCXRva2VuID0gc2VsZi50b2tlbigpCisJcmV0dXJuIHRva2VuCisKKyAgICAgIworICAgICAjIFBhcnNlIGEgQyBjb2RlIGJsb2NrLCB1c2VkIGZvciBmdW5jdGlvbnMgaXQgcGFyc2UgdGlsbAorICAgICAjIHRoZSBiYWxhbmNpbmcgfSBpbmNsdWRlZAorICAgICAjCisgICAgZGVmIHBhcnNlQmxvY2soc2VsZiwgdG9rZW4pOgorICAgICAgICB3aGlsZSB0b2tlbiAhPSBOb25lOgorCSAgICBpZiB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gInsiOgorCSAgICAgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJdG9rZW4gPSBzZWxmLnBhcnNlQmxvY2sodG9rZW4pCisJICAgIGVsaWYgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICJ9IjoKKwkgICAgICAgIHNlbGYuY29tbWVudCA9IE5vbmUKKwkgICAgICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCXJldHVybiB0b2tlbgorCSAgICBlbHNlOgorCSAgICAgICAgaWYgc2VsZi5jb2xsZWN0X3JlZiA9PSAxOgorCQkgICAgb2xkdG9rID0gdG9rZW4KKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCSAgICBpZiBvbGR0b2tbMF0gPT0gIm5hbWUiIGFuZCBvbGR0b2tbMV1bMDozXSA9PSAieG1sIjoKKwkJICAgICAgICBpZiB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gIigiOgorCQkJICAgIHNlbGYuaW5kZXhfYWRkX3JlZihvbGR0b2tbMV0sIHNlbGYuZmlsZW5hbWUsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAwLCAiZnVuY3Rpb24iKQorCQkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCQllbGlmIHRva2VuWzBdID09ICJuYW1lIjoKKwkJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkJICAgIGlmIHRva2VuWzBdID09ICJzZXAiIGFuZCAodG9rZW5bMV0gPT0gIjsiIG9yCisJCQkgICAgICAgdG9rZW5bMV0gPT0gIiwiIG9yIHRva2VuWzFdID09ICI9Iik6CisJCQkJc2VsZi5pbmRleF9hZGRfcmVmKG9sZHRva1sxXSwgc2VsZi5maWxlbmFtZSwKKwkJCQkJCSAgICAwLCAidHlwZSIpCisJCSAgICBlbGlmIG9sZHRva1swXSA9PSAibmFtZSIgYW5kIG9sZHRva1sxXVswOjRdID09ICJYTUxfIjoKKwkJCXNlbGYuaW5kZXhfYWRkX3JlZihvbGR0b2tbMV0sIHNlbGYuZmlsZW5hbWUsCisJCQkJCSAgICAwLCAidHlwZWRlZiIpCisJCSAgICBlbGlmIG9sZHRva1swXSA9PSAibmFtZSIgYW5kIG9sZHRva1sxXVswOjddID09ICJMSUJYTUxfIjoKKwkJCXNlbGYuaW5kZXhfYWRkX3JlZihvbGR0b2tbMV0sIHNlbGYuZmlsZW5hbWUsCisJCQkJCSAgICAwLCAidHlwZWRlZiIpCisKKwkJZWxzZToKKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJcmV0dXJuIHRva2VuCisKKyAgICAgIworICAgICAjIFBhcnNlIGEgQyBzdHJ1Y3QgZGVmaW5pdGlvbiB0aWxsIHRoZSBiYWxhbmNpbmcgfQorICAgICAjCisgICAgZGVmIHBhcnNlU3RydWN0KHNlbGYsIHRva2VuKToKKyAgICAgICAgZmllbGRzID0gW10KKwkgI3NlbGYuZGVidWcoInN0YXJ0IHBhcnNlU3RydWN0IiwgdG9rZW4pCisgICAgICAgIHdoaWxlIHRva2VuICE9IE5vbmU6CisJICAgIGlmIHRva2VuWzBdID09ICJzZXAiIGFuZCB0b2tlblsxXSA9PSAieyI6CisJICAgICAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQl0b2tlbiA9IHNlbGYucGFyc2VUeXBlQmxvY2sodG9rZW4pCisJICAgIGVsaWYgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICJ9IjoKKwkJc2VsZi5zdHJ1Y3RfZmllbGRzID0gZmllbGRzCisJCSAjc2VsZi5kZWJ1ZygiZW5kIHBhcnNlU3RydWN0IiwgdG9rZW4pCisJCSAjcHJpbnQgZmllbGRzCisJICAgICAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQlyZXR1cm4gdG9rZW4KKwkgICAgZWxzZToKKwkgICAgICAgIGJhc2VfdHlwZSA9IHNlbGYudHlwZQorCQkgI3NlbGYuZGVidWcoImJlZm9yZSBwYXJzZVR5cGUiLCB0b2tlbikKKwkJdG9rZW4gPSBzZWxmLnBhcnNlVHlwZSh0b2tlbikKKwkJICNzZWxmLmRlYnVnKCJhZnRlciBwYXJzZVR5cGUiLCB0b2tlbikKKwkJaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gIm5hbWUiOgorCQkgICAgZm5hbWUgPSB0b2tlblsxXQorCQkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJICAgIGlmIHRva2VuWzBdID09ICJzZXAiIGFuZCB0b2tlblsxXSA9PSAiOyI6CisJCSAgICAgICAgc2VsZi5jb21tZW50ID0gTm9uZQorCQkgICAgICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCQlmaWVsZHMuYXBwZW5kKChzZWxmLnR5cGUsIGZuYW1lLCBzZWxmLmNvbW1lbnQpKQorCQkJc2VsZi5jb21tZW50ID0gTm9uZQorCQkgICAgZWxzZToKKwkJICAgICAgICBzZWxmLmVycm9yKCJwYXJzZVN0cnVjdDogZXhwZWN0aW5nIDsiLCB0b2tlbikKKwkJZWxpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gInsiOgorCQkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJICAgIHRva2VuID0gc2VsZi5wYXJzZVR5cGVCbG9jayh0b2tlbikKKwkJICAgIGlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJuYW1lIjoKKwkJCXRva2VuID0gc2VsZi50b2tlbigpCisJCSAgICBpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gIjsiOgorCQkJdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJICAgIGVsc2U6CisJCSAgICAgICAgc2VsZi5lcnJvcigicGFyc2VTdHJ1Y3Q6IGV4cGVjdGluZyA7IiwgdG9rZW4pCisJCWVsc2U6CisJCSAgICBzZWxmLmVycm9yKCJwYXJzZVN0cnVjdDogbmFtZSIsIHRva2VuKQorCQkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJc2VsZi50eXBlID0gYmFzZV90eXBlOworICAgICAgICBzZWxmLnN0cnVjdF9maWVsZHMgPSBmaWVsZHMKKwkgI3NlbGYuZGVidWcoImVuZCBwYXJzZVN0cnVjdCIsIHRva2VuKQorCSAjcHJpbnQgZmllbGRzCisJcmV0dXJuIHRva2VuCisKKyAgICAgIworICAgICAjIFBhcnNlIGEgQyBlbnVtIGJsb2NrLCBwYXJzZSB0aWxsIHRoZSBiYWxhbmNpbmcgfQorICAgICAjCisgICAgZGVmIHBhcnNlRW51bUJsb2NrKHNlbGYsIHRva2VuKToKKyAgICAgICAgc2VsZi5lbnVtcyA9IFtdCisJbmFtZSA9IE5vbmUKKwlzZWxmLmNvbW1lbnQgPSBOb25lCisJY29tbWVudCA9ICIiCisJdmFsdWUgPSAiMCIKKyAgICAgICAgd2hpbGUgdG9rZW4gIT0gTm9uZToKKwkgICAgaWYgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICJ7IjoKKwkgICAgICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCXRva2VuID0gc2VsZi5wYXJzZVR5cGVCbG9jayh0b2tlbikKKwkgICAgZWxpZiB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gIn0iOgorCQlpZiBuYW1lICE9IE5vbmU6CisJCSAgICBpZiBzZWxmLmNvbW1lbnQgIT0gTm9uZToKKwkJCWNvbW1lbnQgPSBzZWxmLmNvbW1lbnQKKwkJCXNlbGYuY29tbWVudCA9IE5vbmUKKwkJICAgIHNlbGYuZW51bXMuYXBwZW5kKChuYW1lLCB2YWx1ZSwgY29tbWVudCkpCisJICAgICAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQlyZXR1cm4gdG9rZW4KKwkgICAgZWxpZiB0b2tlblswXSA9PSAibmFtZSI6CisJCSAgICBpZiBuYW1lICE9IE5vbmU6CisJCQlpZiBzZWxmLmNvbW1lbnQgIT0gTm9uZToKKwkJCSAgICBjb21tZW50ID0gc3RyaW5nLnN0cmlwKHNlbGYuY29tbWVudCkKKwkJCSAgICBzZWxmLmNvbW1lbnQgPSBOb25lCisJCQlzZWxmLmVudW1zLmFwcGVuZCgobmFtZSwgdmFsdWUsIGNvbW1lbnQpKQorCQkgICAgbmFtZSA9IHRva2VuWzFdCisJCSAgICBjb21tZW50ID0gIiIKKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCSAgICBpZiB0b2tlblswXSA9PSAib3AiIGFuZCB0b2tlblsxXVswXSA9PSAiPSI6CisJCSAgICAgICAgdmFsdWUgPSAiIgorCQkgICAgICAgIGlmIGxlbih0b2tlblsxXSkgPiAxOgorCQkJICAgIHZhbHVlID0gdG9rZW5bMV1bMTpdCisJCSAgICAgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJICAgICAgICB3aGlsZSB0b2tlblswXSAhPSAic2VwIiBvciAodG9rZW5bMV0gIT0gJywnIGFuZAorCQkJICAgICAgdG9rZW5bMV0gIT0gJ30nKToKKwkJCSAgICB2YWx1ZSA9IHZhbHVlICsgdG9rZW5bMV0KKwkJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkgICAgZWxzZToKKwkJICAgICAgICB0cnk6CisJCQkgICAgdmFsdWUgPSAiJWQiICUgKGludCh2YWx1ZSkgKyAxKQorCQkJZXhjZXB0OgorCQkJICAgIHNlbGYud2FybmluZygiRmFpbGVkIHRvIGNvbXB1dGUgdmFsdWUgb2YgZW51bSAlcyIgJSAobmFtZSkpCisJCQkgICAgdmFsdWU9IiIKKwkJICAgIGlmIHRva2VuWzBdID09ICJzZXAiIGFuZCB0b2tlblsxXSA9PSAiLCI6CisJCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCSAgICBlbHNlOgorCSAgICAgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwlyZXR1cm4gdG9rZW4KKworICAgICAjCisgICAgICMgUGFyc2UgYSBDIGRlZmluaXRpb24gYmxvY2ssIHVzZWQgZm9yIHN0cnVjdHMgaXQgcGFyc2UgdGlsbAorICAgICAjIHRoZSBiYWxhbmNpbmcgfQorICAgICAjCisgICAgZGVmIHBhcnNlVHlwZUJsb2NrKHNlbGYsIHRva2VuKToKKyAgICAgICAgd2hpbGUgdG9rZW4gIT0gTm9uZToKKwkgICAgaWYgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICJ7IjoKKwkgICAgICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCXRva2VuID0gc2VsZi5wYXJzZVR5cGVCbG9jayh0b2tlbikKKwkgICAgZWxpZiB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gIn0iOgorCSAgICAgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJcmV0dXJuIHRva2VuCisJICAgIGVsc2U6CisJICAgICAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCXJldHVybiB0b2tlbgorCisgICAgICMKKyAgICAgIyBQYXJzZSBhIHR5cGU6IHRoZSBmYWN0IHRoYXQgdGhlIHR5cGUgbmFtZSBjYW4gZWl0aGVyIG9jY3VyIGFmdGVyCisgICAgICMgICAgdGhlIGRlZmluaXRpb24gb3Igd2l0aGluIHRoZSBkZWZpbml0aW9uIG1ha2VzIGl0IGEgbGl0dGxlIGhhcmRlcgorICAgICAjICAgIGlmIGluc2lkZSwgdGhlIG5hbWUgdG9rZW4gaXMgcHVzaGVkIGJhY2sgYmVmb3JlIHJldHVybmluZworICAgICAjCisgICAgZGVmIHBhcnNlVHlwZShzZWxmLCB0b2tlbik6CisgICAgICAgIHNlbGYudHlwZSA9ICIiCisJc2VsZi5zdHJ1Y3RfZmllbGRzID0gW10KKyAgICAgICAgc2VsZi5zaWduYXR1cmUgPSBOb25lCisJaWYgdG9rZW4gPT0gTm9uZToKKwkgICAgcmV0dXJuIHRva2VuCisKKwl3aGlsZSB0b2tlblswXSA9PSAibmFtZSIgYW5kICgKKwkgICAgICB0b2tlblsxXSA9PSAiY29uc3QiIG9yIFwKKwkgICAgICB0b2tlblsxXSA9PSAidW5zaWduZWQiIG9yIFwKKwkgICAgICB0b2tlblsxXSA9PSAic2lnbmVkIik6CisJICAgIGlmIHNlbGYudHlwZSA9PSAiIjoKKwkgICAgICAgIHNlbGYudHlwZSA9IHRva2VuWzFdCisJICAgIGVsc2U6CisJICAgICAgICBzZWxmLnR5cGUgPSBzZWxmLnR5cGUgKyAiICIgKyB0b2tlblsxXQorCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCisgICAgICAgIGlmIHRva2VuWzBdID09ICJuYW1lIiBhbmQgKHRva2VuWzFdID09ICJsb25nIiBvciB0b2tlblsxXSA9PSAic2hvcnQiKToKKwkgICAgaWYgc2VsZi50eXBlID09ICIiOgorCSAgICAgICAgc2VsZi50eXBlID0gdG9rZW5bMV0KKwkgICAgZWxzZToKKwkgICAgICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArICIgIiArIHRva2VuWzFdCisJICAgIGlmIHRva2VuWzBdID09ICJuYW1lIiBhbmQgdG9rZW5bMV0gPT0gImludCI6CisJCWlmIHNlbGYudHlwZSA9PSAiIjoKKwkJICAgIHNlbGYudHlwZSA9IHRtcFsxXQorCQllbHNlOgorCQkgICAgc2VsZi50eXBlID0gc2VsZi50eXBlICsgIiAiICsgdG1wWzFdCisKKyAgICAgICAgZWxpZiB0b2tlblswXSA9PSAibmFtZSIgYW5kIHRva2VuWzFdID09ICJzdHJ1Y3QiOgorCSAgICBpZiBzZWxmLnR5cGUgPT0gIiI6CisJICAgICAgICBzZWxmLnR5cGUgPSB0b2tlblsxXQorCSAgICBlbHNlOgorCSAgICAgICAgc2VsZi50eXBlID0gc2VsZi50eXBlICsgIiAiICsgdG9rZW5bMV0KKwkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkgICAgbmFtZXRvayA9IE5vbmUKKwkgICAgaWYgdG9rZW5bMF0gPT0gIm5hbWUiOgorCSAgICAgICAgbmFtZXRvayA9IHRva2VuCisJCXRva2VuID0gc2VsZi50b2tlbigpCisJICAgIGlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJzZXAiIGFuZCB0b2tlblsxXSA9PSAieyI6CisJCXRva2VuID0gc2VsZi50b2tlbigpCisJCXRva2VuID0gc2VsZi5wYXJzZVN0cnVjdCh0b2tlbikKKwkgICAgZWxpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAib3AiIGFuZCB0b2tlblsxXSA9PSAiKiI6CisJICAgICAgICBzZWxmLnR5cGUgPSBzZWxmLnR5cGUgKyAiICIgKyBuYW1ldG9rWzFdICsgIiAqIgorCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCQl3aGlsZSB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAib3AiIGFuZCB0b2tlblsxXSA9PSAiKiI6CisJCSAgICBzZWxmLnR5cGUgPSBzZWxmLnR5cGUgKyAiICoiCisJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQlpZiB0b2tlblswXSA9PSAibmFtZSI6CisJCSAgICBuYW1ldG9rID0gdG9rZW4KKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCWVsc2U6CisJCSAgICBzZWxmLmVycm9yKCJzdHJ1Y3QgOiBleHBlY3RpbmcgbmFtZSIsIHRva2VuKQorCQkgICAgcmV0dXJuIHRva2VuCisJICAgIGVsaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gIm5hbWUiIGFuZCBuYW1ldG9rICE9IE5vbmU6CisJICAgICAgICBzZWxmLnR5cGUgPSBzZWxmLnR5cGUgKyAiICIgKyBuYW1ldG9rWzFdCisJCXJldHVybiB0b2tlbgorCisJICAgIGlmIG5hbWV0b2sgIT0gTm9uZToKKwkJc2VsZi5sZXhlci5wdXNoKHRva2VuKQorCQl0b2tlbiA9IG5hbWV0b2sKKwkgICAgcmV0dXJuIHRva2VuCisKKyAgICAgICAgZWxpZiB0b2tlblswXSA9PSAibmFtZSIgYW5kIHRva2VuWzFdID09ICJlbnVtIjoKKwkgICAgaWYgc2VsZi50eXBlID09ICIiOgorCSAgICAgICAgc2VsZi50eXBlID0gdG9rZW5bMV0KKwkgICAgZWxzZToKKwkgICAgICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArICIgIiArIHRva2VuWzFdCisJICAgIHNlbGYuZW51bXMgPSBbXQorCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCSAgICBpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gInsiOgorCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCQl0b2tlbiA9IHNlbGYucGFyc2VFbnVtQmxvY2sodG9rZW4pCisJICAgIGVsc2U6CisJCXNlbGYuZXJyb3IoInBhcnNpbmcgZW51bTogZXhwZWN0aW5nICd7JyIsIHRva2VuKQorCSAgICBlbnVtX3R5cGUgPSBOb25lCisJICAgIGlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdICE9ICJuYW1lIjoKKwkgICAgICAgIHNlbGYubGV4ZXIucHVzaCh0b2tlbikKKwkgICAgICAgIHRva2VuID0gKCJuYW1lIiwgImVudW0iKQorCSAgICBlbHNlOgorCSAgICAgICAgZW51bV90eXBlID0gdG9rZW5bMV0KKwkgICAgZm9yIGVudW0gaW4gc2VsZi5lbnVtczoKKwkJc2VsZi5pbmRleF9hZGQoZW51bVswXSwgc2VsZi5maWxlbmFtZSwKKwkJCSAgICAgICBub3Qgc2VsZi5pc19oZWFkZXIsICJlbnVtIiwKKwkJCSAgICAgICAoZW51bVsxXSwgZW51bVsyXSwgZW51bV90eXBlKSkKKwkgICAgcmV0dXJuIHRva2VuCisKKwllbGlmIHRva2VuWzBdID09ICJuYW1lIjoKKwkgICAgaWYgc2VsZi50eXBlID09ICIiOgorCSAgICAgICAgc2VsZi50eXBlID0gdG9rZW5bMV0KKwkgICAgZWxzZToKKwkgICAgICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArICIgIiArIHRva2VuWzFdCisJZWxzZToKKwkgICAgc2VsZi5lcnJvcigicGFyc2luZyB0eXBlICVzOiBleHBlY3RpbmcgYSBuYW1lIiAlIChzZWxmLnR5cGUpLAorCSAgICAgICAgICAgICAgIHRva2VuKQorCSAgICByZXR1cm4gdG9rZW4KKwl0b2tlbiA9IHNlbGYudG9rZW4oKQorICAgICAgICB3aGlsZSB0b2tlbiAhPSBOb25lIGFuZCAodG9rZW5bMF0gPT0gIm9wIiBvcgorCSAgICAgIHRva2VuWzBdID09ICJuYW1lIiBhbmQgdG9rZW5bMV0gPT0gImNvbnN0Iik6CisJICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArICIgIiArIHRva2VuWzFdCisJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisKKwkgIworCSAjIGlmIHRoZXJlIGlzIGEgcGFyZW50aGVzaXMgaGVyZSwgdGhpcyBtZWFucyBhIGZ1bmN0aW9uIHR5cGUKKwkgIworCWlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJzZXAiIGFuZCB0b2tlblsxXSA9PSAnKCc6CisJICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArIHRva2VuWzFdCisJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJICAgIHdoaWxlIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJvcCIgYW5kIHRva2VuWzFdID09ICcqJzoKKwkgICAgICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArIHRva2VuWzFdCisJCXRva2VuID0gc2VsZi50b2tlbigpCisJICAgIGlmIHRva2VuID09IE5vbmUgb3IgdG9rZW5bMF0gIT0gIm5hbWUiIDoKKwkJc2VsZi5lcnJvcigicGFyc2luZyBmdW5jdGlvbiB0eXBlLCBuYW1lIGV4cGVjdGVkIiwgdG9rZW4pOworCSAgICAgICAgcmV0dXJuIHRva2VuCisJICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArIHRva2VuWzFdCisJICAgIG5hbWV0b2sgPSB0b2tlbgorCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCSAgICBpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gJyknOgorCQlzZWxmLnR5cGUgPSBzZWxmLnR5cGUgKyB0b2tlblsxXQorCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCQlpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gJygnOgorCQkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJICAgIHR5cGUgPSBzZWxmLnR5cGU7CisJCSAgICB0b2tlbiA9IHNlbGYucGFyc2VTaWduYXR1cmUodG9rZW4pOworCQkgICAgc2VsZi50eXBlID0gdHlwZTsKKwkJZWxzZToKKwkJICAgIHNlbGYuZXJyb3IoInBhcnNpbmcgZnVuY3Rpb24gdHlwZSwgJygnIGV4cGVjdGVkIiwgdG9rZW4pOworCQkgICAgcmV0dXJuIHRva2VuCisJICAgIGVsc2U6CisJICAgICAgICBzZWxmLmVycm9yKCJwYXJzaW5nIGZ1bmN0aW9uIHR5cGUsICcpJyBleHBlY3RlZCIsIHRva2VuKTsKKwkJcmV0dXJuIHRva2VuCisJICAgIHNlbGYubGV4ZXIucHVzaCh0b2tlbikKKwkgICAgdG9rZW4gPSBuYW1ldG9rCisJICAgIHJldHVybiB0b2tlbgorCisgICAgICAgICAjCisJICMgZG8gc29tZSBsb29rYWhlYWQgZm9yIGFycmF5cworCSAjCisJaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gIm5hbWUiOgorCSAgICBuYW1ldG9rID0gdG9rZW4KKwkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkgICAgaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICdbJzoKKwkgICAgICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArIG5hbWV0b2tbMV0KKwkJd2hpbGUgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICdbJzoKKwkJICAgIHNlbGYudHlwZSA9IHNlbGYudHlwZSArIHRva2VuWzFdCisJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkgICAgd2hpbGUgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gIT0gJ3NlcCcgYW5kIFwKKwkJICAgICAgICAgIHRva2VuWzFdICE9ICddJyBhbmQgdG9rZW5bMV0gIT0gJzsnOgorCQkJc2VsZi50eXBlID0gc2VsZi50eXBlICsgdG9rZW5bMV0KKwkJCXRva2VuID0gc2VsZi50b2tlbigpCisJCWlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICdzZXAnIGFuZCB0b2tlblsxXSA9PSAnXSc6CisJCSAgICBzZWxmLnR5cGUgPSBzZWxmLnR5cGUgKyB0b2tlblsxXQorCQkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJZWxzZToKKwkJICAgIHNlbGYuZXJyb3IoInBhcnNpbmcgYXJyYXkgdHlwZSwgJ10nIGV4cGVjdGVkIiwgdG9rZW4pOworCQkgICAgcmV0dXJuIHRva2VuCisJICAgIGVsaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICc6JzoKKwkgICAgICAgICAjIHJlbW92ZSA6MTIgaW4gY2FzZSBpdCdzIGEgbGltaXRlZCBpbnQgc2l6ZQorCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCSAgICBzZWxmLmxleGVyLnB1c2godG9rZW4pCisJICAgIHRva2VuID0gbmFtZXRvaworCisJcmV0dXJuIHRva2VuCisKKyAgICAgIworICAgICAjIFBhcnNlIGEgc2lnbmF0dXJlOiAnKCcgaGFzIGJlZW4gcGFyc2VkIGFuZCB3ZSBzY2FuIHRoZSB0eXBlIGRlZmluaXRpb24KKyAgICAgIyAgICB1cCB0byB0aGUgJyknIGluY2x1ZGVkCisgICAgZGVmIHBhcnNlU2lnbmF0dXJlKHNlbGYsIHRva2VuKToKKyAgICAgICAgc2lnbmF0dXJlID0gW10KKwlpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gJyknOgorCSAgICBzZWxmLnNpZ25hdHVyZSA9IFtdCisJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJICAgIHJldHVybiB0b2tlbgorCXdoaWxlIHRva2VuICE9IE5vbmU6CisJICAgIHRva2VuID0gc2VsZi5wYXJzZVR5cGUodG9rZW4pCisJICAgIGlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJuYW1lIjoKKwkgICAgICAgIHNpZ25hdHVyZS5hcHBlbmQoKHNlbGYudHlwZSwgdG9rZW5bMV0sIE5vbmUpKQorCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCSAgICBlbGlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJzZXAiIGFuZCB0b2tlblsxXSA9PSAnLCc6CisJCXRva2VuID0gc2VsZi50b2tlbigpCisJCWNvbnRpbnVlCisJICAgIGVsaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gInNlcCIgYW5kIHRva2VuWzFdID09ICcpJzoKKwkgICAgICAgICAjIG9ubHkgdGhlIHR5cGUgd2FzIHByb3ZpZGVkCisJCWlmIHNlbGYudHlwZSA9PSAiLi4uIjoKKwkJICAgIHNpZ25hdHVyZS5hcHBlbmQoKHNlbGYudHlwZSwgIi4uLiIsIE5vbmUpKQorCQllbHNlOgorCQkgICAgc2lnbmF0dXJlLmFwcGVuZCgoc2VsZi50eXBlLCBOb25lLCBOb25lKSkKKwkgICAgaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gInNlcCI6CisJICAgICAgICBpZiB0b2tlblsxXSA9PSAnLCc6CisJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkgICAgY29udGludWUKKwkJZWxpZiB0b2tlblsxXSA9PSAnKSc6CisJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkgICAgYnJlYWsKKwlzZWxmLnNpZ25hdHVyZSA9IHNpZ25hdHVyZQorCXJldHVybiB0b2tlbgorCisgICAgICMKKyAgICAgIyBQYXJzZSBhIGdsb2JhbCBkZWZpbml0aW9uLCBiZSBpdCBhIHR5cGUsIHZhcmlhYmxlIG9yIGZ1bmN0aW9uCisgICAgICMgdGhlIGV4dGVybiAiQyIgYmxvY2tzIGFyZSBhIGJpdCBuYXN0eSBhbmQgcmVxdWlyZSBpdCB0byByZWN1cnNlLgorICAgICAjCisgICAgZGVmIHBhcnNlR2xvYmFsKHNlbGYsIHRva2VuKToKKyAgICAgICAgc3RhdGljID0gMAorICAgICAgICBpZiB0b2tlblsxXSA9PSAnZXh0ZXJuJzoKKwkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkgICAgaWYgdG9rZW4gPT0gTm9uZToKKwkgICAgICAgIHJldHVybiB0b2tlbgorCSAgICBpZiB0b2tlblswXSA9PSAnc3RyaW5nJzoKKwkgICAgICAgIGlmIHRva2VuWzFdID09ICdDJzoKKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCSAgICBpZiB0b2tlbiA9PSBOb25lOgorCQkJcmV0dXJuIHRva2VuCisJCSAgICBpZiB0b2tlblswXSA9PSAnc2VwJyBhbmQgdG9rZW5bMV0gPT0gInsiOgorCQkgICAgICAgIHRva2VuID0gc2VsZi50b2tlbigpCisjCQkJIHByaW50ICdFbnRlcmluZyBleHRlcm4gIkMgbGluZSAnLCBzZWxmLmxpbmVubygpCisJCQl3aGlsZSB0b2tlbiAhPSBOb25lIGFuZCAodG9rZW5bMF0gIT0gJ3NlcCcgb3IKKwkJCSAgICAgIHRva2VuWzFdICE9ICJ9Iik6CisJCQkgICAgaWYgdG9rZW5bMF0gPT0gJ25hbWUnOgorCQkJCXRva2VuID0gc2VsZi5wYXJzZUdsb2JhbCh0b2tlbikKKwkJCSAgICBlbHNlOgorCQkJCXNlbGYuZXJyb3IoCisJCQkJICJ0b2tlbiAlcyAlcyB1bmV4cGVjdGVkIGF0IHRoZSB0b3AgbGV2ZWwiICUgKAorCQkJCQl0b2tlblswXSwgdG9rZW5bMV0pKQorCQkJCXRva2VuID0gc2VsZi5wYXJzZUdsb2JhbCh0b2tlbikKKyMJCQkgcHJpbnQgJ0V4aXRpbmcgZXh0ZXJuICJDIiBsaW5lJywgc2VsZi5saW5lbm8oKQorCQkJdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJCXJldHVybiB0b2tlbgorCQllbHNlOgorCQkgICAgcmV0dXJuIHRva2VuCisJZWxpZiB0b2tlblsxXSA9PSAnc3RhdGljJzoKKwkgICAgc3RhdGljID0gMQorCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCSAgICBpZiB0b2tlbiA9PSBOb25lIG9yICB0b2tlblswXSAhPSAnbmFtZSc6CisJICAgICAgICByZXR1cm4gdG9rZW4KKworCWlmIHRva2VuWzFdID09ICd0eXBlZGVmJzoKKwkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkgICAgcmV0dXJuIHNlbGYucGFyc2VUeXBlZGVmKHRva2VuKQorCWVsc2U6CisJICAgIHRva2VuID0gc2VsZi5wYXJzZVR5cGUodG9rZW4pCisJICAgIHR5cGVfb3JpZyA9IHNlbGYudHlwZQorCWlmIHRva2VuID09IE5vbmUgb3IgdG9rZW5bMF0gIT0gIm5hbWUiOgorCSAgICByZXR1cm4gdG9rZW4KKwl0eXBlID0gdHlwZV9vcmlnCisJc2VsZi5uYW1lID0gdG9rZW5bMV0KKwl0b2tlbiA9IHNlbGYudG9rZW4oKQorCXdoaWxlIHRva2VuICE9IE5vbmUgYW5kICh0b2tlblswXSA9PSAic2VwIiBvciB0b2tlblswXSA9PSAib3AiKToKKwkgICAgaWYgdG9rZW5bMF0gPT0gInNlcCI6CisJCWlmIHRva2VuWzFdID09ICJbIjoKKwkJICAgIHR5cGUgPSB0eXBlICsgdG9rZW5bMV0KKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCSAgICB3aGlsZSB0b2tlbiAhPSBOb25lIGFuZCAodG9rZW5bMF0gIT0gInNlcCIgb3IgXAorCQkgICAgICAgICAgdG9rZW5bMV0gIT0gIjsiKToKKwkJCXR5cGUgPSB0eXBlICsgdG9rZW5bMV0KKwkJCXRva2VuID0gc2VsZi50b2tlbigpCisKKwkgICAgaWYgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gIm9wIiBhbmQgdG9rZW5bMV0gPT0gIj0iOgorCQkgIworCQkgIyBTa2lwIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgdmFyaWFibGUKKwkJICMKKwkJdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJaWYgdG9rZW5bMF0gPT0gJ3NlcCcgYW5kIHRva2VuWzFdID09ICd7JzoKKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCSAgICB0b2tlbiA9IHNlbGYucGFyc2VCbG9jayh0b2tlbikKKwkJZWxzZToKKwkJICAgIHNlbGYuY29tbWVudCA9IE5vbmUKKwkJICAgIHdoaWxlIHRva2VuICE9IE5vbmUgYW5kICh0b2tlblswXSAhPSAic2VwIiBvciBcCisJCQkgICh0b2tlblsxXSAhPSAnOycgYW5kIHRva2VuWzFdICE9ICcsJykpOgorCQkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCXNlbGYuY29tbWVudCA9IE5vbmUKKwkJaWYgdG9rZW4gPT0gTm9uZSBvciB0b2tlblswXSAhPSAic2VwIiBvciAodG9rZW5bMV0gIT0gJzsnIGFuZAorCQkgICB0b2tlblsxXSAhPSAnLCcpOgorCQkgICAgc2VsZi5lcnJvcigibWlzc2luZyAnOycgb3IgJywnIGFmdGVyIHZhbHVlIikKKworCSAgICBpZiB0b2tlbiAhPSBOb25lIGFuZCB0b2tlblswXSA9PSAic2VwIjoKKwkJaWYgdG9rZW5bMV0gPT0gIjsiOgorCQkgICAgc2VsZi5jb21tZW50ID0gTm9uZQorCQkgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJICAgIGlmIHR5cGUgPT0gInN0cnVjdCI6CisJCSAgICAgICAgc2VsZi5pbmRleF9hZGQoc2VsZi5uYW1lLCBzZWxmLmZpbGVuYW1lLAorCQkJICAgICBub3Qgc2VsZi5pc19oZWFkZXIsICJzdHJ1Y3QiLCBzZWxmLnN0cnVjdF9maWVsZHMpCisJCSAgICBlbHNlOgorCQkJc2VsZi5pbmRleF9hZGQoc2VsZi5uYW1lLCBzZWxmLmZpbGVuYW1lLAorCQkJICAgICBub3Qgc2VsZi5pc19oZWFkZXIsICJ2YXJpYWJsZSIsIHR5cGUpCisJCSAgICBicmVhaworCQllbGlmIHRva2VuWzFdID09ICIoIjoKKwkJICAgIHRva2VuID0gc2VsZi50b2tlbigpCisJCSAgICB0b2tlbiA9IHNlbGYucGFyc2VTaWduYXR1cmUodG9rZW4pCisJCSAgICBpZiB0b2tlbiA9PSBOb25lOgorCQkJcmV0dXJuIE5vbmUKKwkJICAgIGlmIHRva2VuWzBdID09ICJzZXAiIGFuZCB0b2tlblsxXSA9PSAiOyI6CisJCSAgICAgICAgZCA9IHNlbGYubWVyZ2VGdW5jdGlvbkNvbW1lbnQoc2VsZi5uYW1lLAorCQkJCSgodHlwZSwgTm9uZSksIHNlbGYuc2lnbmF0dXJlKSwgMSkKKwkJCXNlbGYuaW5kZXhfYWRkKHNlbGYubmFtZSwgc2VsZi5maWxlbmFtZSwgc3RhdGljLAorCQkJICAgICAgICAgICAgICAgICJmdW5jdGlvbiIsIGQpCisJCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkgICAgZWxpZiB0b2tlblswXSA9PSAic2VwIiBhbmQgdG9rZW5bMV0gPT0gInsiOgorCQkgICAgICAgIGQgPSBzZWxmLm1lcmdlRnVuY3Rpb25Db21tZW50KHNlbGYubmFtZSwKKwkJCQkoKHR5cGUsIE5vbmUpLCBzZWxmLnNpZ25hdHVyZSksIHN0YXRpYykKKwkJCXNlbGYuaW5kZXhfYWRkKHNlbGYubmFtZSwgc2VsZi5maWxlbmFtZSwgc3RhdGljLAorCQkJICAgICAgICAgICAgICAgICJmdW5jdGlvbiIsIGQpCisJCQl0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkJdG9rZW4gPSBzZWxmLnBhcnNlQmxvY2sodG9rZW4pOworCQllbGlmIHRva2VuWzFdID09ICcsJzoKKwkJICAgIHNlbGYuY29tbWVudCA9IE5vbmUKKwkJICAgIHNlbGYuaW5kZXhfYWRkKHNlbGYubmFtZSwgc2VsZi5maWxlbmFtZSwgc3RhdGljLAorCQkgICAgICAgICAgICAgICAgICAgICJ2YXJpYWJsZSIsIHR5cGUpCisJCSAgICB0eXBlID0gdHlwZV9vcmlnCisJCSAgICB0b2tlbiA9IHNlbGYudG9rZW4oKQorCQkgICAgd2hpbGUgdG9rZW4gIT0gTm9uZSBhbmQgdG9rZW5bMF0gPT0gInNlcCI6CisJCSAgICAgICAgdHlwZSA9IHR5cGUgKyB0b2tlblsxXQorCQkJdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJICAgIGlmIHRva2VuICE9IE5vbmUgYW5kIHRva2VuWzBdID09ICJuYW1lIjoKKwkJICAgICAgICBzZWxmLm5hbWUgPSB0b2tlblsxXQorCQkJdG9rZW4gPSBzZWxmLnRva2VuKCkKKwkJZWxzZToKKwkJICAgIGJyZWFrCisKKwlyZXR1cm4gdG9rZW4KKworICAgIGRlZiBwYXJzZShzZWxmKToKKyAgICAgICAgc2VsZi53YXJuaW5nKCJQYXJzaW5nICVzIiAlIChzZWxmLmZpbGVuYW1lKSkKKyAgICAgICAgdG9rZW4gPSBzZWxmLnRva2VuKCkKKwl3aGlsZSB0b2tlbiAhPSBOb25lOgorICAgICAgICAgICAgaWYgdG9rZW5bMF0gPT0gJ25hbWUnOgorCSAgICAgICAgdG9rZW4gPSBzZWxmLnBhcnNlR2xvYmFsKHRva2VuKQorICAgICAgICAgICAgZWxzZToKKwkgICAgICAgIHNlbGYuZXJyb3IoInRva2VuICVzICVzIHVuZXhwZWN0ZWQgYXQgdGhlIHRvcCBsZXZlbCIgJSAoCisJCSAgICAgICB0b2tlblswXSwgdG9rZW5bMV0pKQorCQl0b2tlbiA9IHNlbGYucGFyc2VHbG9iYWwodG9rZW4pCisJCXJldHVybgorCXNlbGYucGFyc2VUb3BDb21tZW50KHNlbGYudG9wX2NvbW1lbnQpCisgICAgICAgIHJldHVybiBzZWxmLmluZGV4CisKKworY2xhc3MgZG9jQnVpbGRlcjoKKyAgICAiIiJBIGRvY3VtZW50YXRpb24gYnVpbGRlciIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBkaXJlY3Rvcmllcz1bJy4nXSwgZXhjbHVkZXM9W10pOgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYuZGlyZWN0b3JpZXMgPSBkaXJlY3RvcmllcworCXNlbGYuZXhjbHVkZXMgPSBleGNsdWRlcyArIGlnbm9yZWRfZmlsZXMua2V5cygpCisJc2VsZi5tb2R1bGVzID0ge30KKwlzZWxmLmhlYWRlcnMgPSB7fQorCXNlbGYuaWR4ID0gaW5kZXgoKQorICAgICAgICBzZWxmLnhyZWYgPSB7fQorCXNlbGYuaW5kZXggPSB7fQorCWlmIG5hbWUgPT0gJ2xpYnhtbDInOgorCSAgICBzZWxmLmJhc2VuYW1lID0gJ2xpYnhtbCcKKwllbHNlOgorCSAgICBzZWxmLmJhc2VuYW1lID0gbmFtZQorCisgICAgZGVmIGluZGV4U3RyaW5nKHNlbGYsIGlkLCBzdHIpOgorCWlmIHN0ciA9PSBOb25lOgorCSAgICByZXR1cm4KKwlzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICInIiwgJyAnKQorCXN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgJyInLCAnICcpCisJc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiLyIsICcgJykKKwlzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICcqJywgJyAnKQorCXN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIlsiLCAnICcpCisJc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiXSIsICcgJykKKwlzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICIoIiwgJyAnKQorCXN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIikiLCAnICcpCisJc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiPCIsICcgJykKKwlzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICc+JywgJyAnKQorCXN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIiYiLCAnICcpCisJc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAnIycsICcgJykKKwlzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICIsIiwgJyAnKQorCXN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgJy4nLCAnICcpCisJc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAnOycsICcgJykKKwl0b2tlbnMgPSBzdHJpbmcuc3BsaXQoc3RyKQorCWZvciB0b2tlbiBpbiB0b2tlbnM6CisJICAgIHRyeToKKwkJYyA9IHRva2VuWzBdCisJCWlmIHN0cmluZy5maW5kKHN0cmluZy5sZXR0ZXJzLCBjKSA8IDA6CisJCSAgICBwYXNzCisJCWVsaWYgbGVuKHRva2VuKSA8IDM6CisJCSAgICBwYXNzCisJCWVsc2U6CisJCSAgICBsb3dlciA9IHN0cmluZy5sb3dlcih0b2tlbikKKwkJICAgICMgVE9ETzogZ2VuZXJhbGl6ZSB0aGlzIGEgYml0CisJCSAgICBpZiBsb3dlciA9PSAnYW5kJyBvciBsb3dlciA9PSAndGhlJzoKKwkJCXBhc3MKKwkJICAgIGVsaWYgc2VsZi54cmVmLmhhc19rZXkodG9rZW4pOgorCQkJc2VsZi54cmVmW3Rva2VuXS5hcHBlbmQoaWQpCisJCSAgICBlbHNlOgorCQkJc2VsZi54cmVmW3Rva2VuXSA9IFtpZF0KKwkgICAgZXhjZXB0OgorCQlwYXNzCisKKyAgICBkZWYgYW5hbHl6ZShzZWxmKToKKyAgICAgICAgcHJpbnQgIlByb2plY3QgJXMgOiAlZCBoZWFkZXJzLCAlZCBtb2R1bGVzIiAlIChzZWxmLm5hbWUsIGxlbihzZWxmLmhlYWRlcnMua2V5cygpKSwgbGVuKHNlbGYubW9kdWxlcy5rZXlzKCkpKQorCXNlbGYuaWR4LmFuYWx5emUoKQorCisgICAgZGVmIHNjYW5IZWFkZXJzKHNlbGYpOgorCWZvciBoZWFkZXIgaW4gc2VsZi5oZWFkZXJzLmtleXMoKToKKwkgICAgcGFyc2VyID0gQ1BhcnNlcihoZWFkZXIpCisJICAgIGlkeCA9IHBhcnNlci5wYXJzZSgpCisJICAgIHNlbGYuaGVhZGVyc1toZWFkZXJdID0gaWR4OworCSAgICBzZWxmLmlkeC5tZXJnZShpZHgpCisKKyAgICBkZWYgc2Nhbk1vZHVsZXMoc2VsZik6CisJZm9yIG1vZHVsZSBpbiBzZWxmLm1vZHVsZXMua2V5cygpOgorCSAgICBwYXJzZXIgPSBDUGFyc2VyKG1vZHVsZSkKKwkgICAgaWR4ID0gcGFyc2VyLnBhcnNlKCkKKwkgICAgIyBpZHguYW5hbHl6ZSgpCisJICAgIHNlbGYubW9kdWxlc1ttb2R1bGVdID0gaWR4CisJICAgIHNlbGYuaWR4Lm1lcmdlX3B1YmxpYyhpZHgpCisKKyAgICBkZWYgc2NhbihzZWxmKToKKyAgICAgICAgZm9yIGRpcmVjdG9yeSBpbiBzZWxmLmRpcmVjdG9yaWVzOgorCSAgICBmaWxlcyA9IGdsb2IuZ2xvYihkaXJlY3RvcnkgKyAiLyouYyIpCisJICAgIGZvciBmaWxlIGluIGZpbGVzOgorCSAgICAgICAgc2tpcCA9IDAKKwkJZm9yIGV4Y2wgaW4gc2VsZi5leGNsdWRlczoKKwkJICAgIGlmIHN0cmluZy5maW5kKGZpbGUsIGV4Y2wpICE9IC0xOgorCQkgICAgICAgIHNraXAgPSAxOworCQkJYnJlYWsKKwkJaWYgc2tpcCA9PSAwOgorCQkgICAgc2VsZi5tb2R1bGVzW2ZpbGVdID0gTm9uZTsKKwkgICAgZmlsZXMgPSBnbG9iLmdsb2IoZGlyZWN0b3J5ICsgIi8qLmgiKQorCSAgICBmb3IgZmlsZSBpbiBmaWxlczoKKwkgICAgICAgIHNraXAgPSAwCisJCWZvciBleGNsIGluIHNlbGYuZXhjbHVkZXM6CisJCSAgICBpZiBzdHJpbmcuZmluZChmaWxlLCBleGNsKSAhPSAtMToKKwkJICAgICAgICBza2lwID0gMTsKKwkJCWJyZWFrCisJCWlmIHNraXAgPT0gMDoKKwkJICAgIHNlbGYuaGVhZGVyc1tmaWxlXSA9IE5vbmU7CisJc2VsZi5zY2FuSGVhZGVycygpCisJc2VsZi5zY2FuTW9kdWxlcygpCisKKyAgICBkZWYgbW9kdWxlbmFtZV9maWxlKHNlbGYsIGZpbGUpOgorICAgICAgICBtb2R1bGUgPSBvcy5wYXRoLmJhc2VuYW1lKGZpbGUpCisJaWYgbW9kdWxlWy0yOl0gPT0gJy5oJzoKKwkgICAgbW9kdWxlID0gbW9kdWxlWzotMl0KKwllbGlmIG1vZHVsZVstMjpdID09ICcuYyc6CisJICAgIG1vZHVsZSA9IG1vZHVsZVs6LTJdCisJcmV0dXJuIG1vZHVsZQorCisgICAgZGVmIHNlcmlhbGl6ZV9lbnVtKHNlbGYsIG91dHB1dCwgbmFtZSk6CisgICAgICAgIGlkID0gc2VsZi5pZHguZW51bXNbbmFtZV0KKyAgICAgICAgb3V0cHV0LndyaXRlKCIgICAgPGVudW0gbmFtZT0nJXMnIGZpbGU9JyVzJyIgJSAobmFtZSwKKwkgICAgICAgICAgICAgc2VsZi5tb2R1bGVuYW1lX2ZpbGUoaWQuaGVhZGVyKSkpCisJaWYgaWQuaW5mbyAhPSBOb25lOgorCSAgICBpbmZvID0gaWQuaW5mbworCSAgICBpZiBpbmZvWzBdICE9IE5vbmUgYW5kIGluZm9bMF0gIT0gJyc6CisJICAgICAgICB0cnk6CisJCSAgICB2YWwgPSBldmFsKGluZm9bMF0pCisJCWV4Y2VwdDoKKwkJICAgIHZhbCA9IGluZm9bMF0KKwkJb3V0cHV0LndyaXRlKCIgdmFsdWU9JyVzJyIgJSAodmFsKSk7CisJICAgIGlmIGluZm9bMl0gIT0gTm9uZSBhbmQgaW5mb1syXSAhPSAnJzoKKwkJb3V0cHV0LndyaXRlKCIgdHlwZT0nJXMnIiAlIGluZm9bMl0pOworCSAgICBpZiBpbmZvWzFdICE9IE5vbmUgYW5kIGluZm9bMV0gIT0gJyc6CisJCW91dHB1dC53cml0ZSgiIGluZm89JyVzJyIgJSBlc2NhcGUoaW5mb1sxXSkpOworICAgICAgICBvdXRwdXQud3JpdGUoIi8+XG4iKQorCisgICAgZGVmIHNlcmlhbGl6ZV9tYWNybyhzZWxmLCBvdXRwdXQsIG5hbWUpOgorICAgICAgICBpZCA9IHNlbGYuaWR4Lm1hY3Jvc1tuYW1lXQorICAgICAgICBvdXRwdXQud3JpdGUoIiAgICA8bWFjcm8gbmFtZT0nJXMnIGZpbGU9JyVzJz5cbiIgJSAobmFtZSwKKwkgICAgICAgICAgICAgc2VsZi5tb2R1bGVuYW1lX2ZpbGUoaWQuaGVhZGVyKSkpCisJaWYgaWQuaW5mbyAhPSBOb25lOgorICAgICAgICAgICAgdHJ5OgorCQkoYXJncywgZGVzYykgPSBpZC5pbmZvCisJCWlmIGRlc2MgIT0gTm9uZSBhbmQgZGVzYyAhPSAiIjoKKwkJICAgIG91dHB1dC53cml0ZSgiICAgICAgPGluZm8+JXM8L2luZm8+XG4iICUgKGVzY2FwZShkZXNjKSkpCisJCSAgICBzZWxmLmluZGV4U3RyaW5nKG5hbWUsIGRlc2MpCisJCWZvciBhcmcgaW4gYXJnczoKKwkJICAgIChuYW1lLCBkZXNjKSA9IGFyZworCQkgICAgaWYgZGVzYyAhPSBOb25lIGFuZCBkZXNjICE9ICIiOgorCQkJb3V0cHV0LndyaXRlKCIgICAgICA8YXJnIG5hbWU9JyVzJyBpbmZvPSclcycvPlxuIiAlICgKKwkJCQkgICAgIG5hbWUsIGVzY2FwZShkZXNjKSkpCisJCQlzZWxmLmluZGV4U3RyaW5nKG5hbWUsIGRlc2MpCisJCSAgICBlbHNlOgorCQkJb3V0cHV0LndyaXRlKCIgICAgICA8YXJnIG5hbWU9JyVzJy8+XG4iICUgKG5hbWUpKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgb3V0cHV0LndyaXRlKCIgICAgPC9tYWNybz5cbiIpCisKKyAgICBkZWYgc2VyaWFsaXplX3R5cGVkZWYoc2VsZiwgb3V0cHV0LCBuYW1lKToKKyAgICAgICAgaWQgPSBzZWxmLmlkeC50eXBlZGVmc1tuYW1lXQorCWlmIGlkLmluZm9bMDo3XSA9PSAnc3RydWN0ICc6CisJICAgIG91dHB1dC53cml0ZSgiICAgIDxzdHJ1Y3QgbmFtZT0nJXMnIGZpbGU9JyVzJyB0eXBlPSclcyciICUgKAorCSAgICAgICAgICAgICBuYW1lLCBzZWxmLm1vZHVsZW5hbWVfZmlsZShpZC5oZWFkZXIpLCBpZC5pbmZvKSkKKwkgICAgbmFtZSA9IGlkLmluZm9bNzpdCisJICAgIGlmIHNlbGYuaWR4LnN0cnVjdHMuaGFzX2tleShuYW1lKSBhbmQgKCBcCisJICAgICAgIHR5cGUoc2VsZi5pZHguc3RydWN0c1tuYW1lXS5pbmZvKSA9PSB0eXBlKCgpKSBvcgorCQl0eXBlKHNlbGYuaWR4LnN0cnVjdHNbbmFtZV0uaW5mbykgPT0gdHlwZShbXSkpOgorCSAgICAgICAgb3V0cHV0LndyaXRlKCI+XG4iKTsKKwkJdHJ5OgorCQkgICAgZm9yIGZpZWxkIGluIHNlbGYuaWR4LnN0cnVjdHNbbmFtZV0uaW5mbzoKKwkJCWRlc2MgPSBmaWVsZFsyXQorCQkJc2VsZi5pbmRleFN0cmluZyhuYW1lLCBkZXNjKQorCQkJaWYgZGVzYyA9PSBOb25lOgorCQkJICAgIGRlc2MgPSAnJworCQkJZWxzZToKKwkJCSAgICBkZXNjID0gZXNjYXBlKGRlc2MpCisJCQlvdXRwdXQud3JpdGUoIiAgICAgIDxmaWVsZCBuYW1lPSclcycgdHlwZT0nJXMnIGluZm89JyVzJy8+XG4iICUgKGZpZWxkWzFdICwgZmllbGRbMF0sIGRlc2MpKQorCQlleGNlcHQ6CisJCSAgICBwcmludCAiRmFpbGVkIHRvIHNlcmlhbGl6ZSBzdHJ1Y3QgJXMiICUgKG5hbWUpCisJCW91dHB1dC53cml0ZSgiICAgIDwvc3RydWN0PlxuIikKKwkgICAgZWxzZToKKwkgICAgICAgIG91dHB1dC53cml0ZSgiLz5cbiIpOworCWVsc2UgOgorCSAgICBvdXRwdXQud3JpdGUoIiAgICA8dHlwZWRlZiBuYW1lPSclcycgZmlsZT0nJXMnIHR5cGU9JyVzJyIgJSAoCisJICAgICAgICAgICAgICAgICBuYW1lLCBzZWxmLm1vZHVsZW5hbWVfZmlsZShpZC5oZWFkZXIpLCBpZC5pbmZvKSkKKyAgICAgICAgICAgIHRyeToKKwkJZGVzYyA9IGlkLmV4dHJhCisJCWlmIGRlc2MgIT0gTm9uZSBhbmQgZGVzYyAhPSAiIjoKKwkJICAgIG91dHB1dC53cml0ZSgiPlxuICAgICAgPGluZm8+JXM8L2luZm8+XG4iICUgKGVzY2FwZShkZXNjKSkpCisJCSAgICBvdXRwdXQud3JpdGUoIiAgICA8L3R5cGVkZWY+XG4iKQorCQllbHNlOgorCQkgICAgb3V0cHV0LndyaXRlKCIvPlxuIikKKwkgICAgZXhjZXB0OgorCQlvdXRwdXQud3JpdGUoIi8+XG4iKQorCisgICAgZGVmIHNlcmlhbGl6ZV92YXJpYWJsZShzZWxmLCBvdXRwdXQsIG5hbWUpOgorICAgICAgICBpZCA9IHNlbGYuaWR4LnZhcmlhYmxlc1tuYW1lXQorCWlmIGlkLmluZm8gIT0gTm9uZToKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgPHZhcmlhYmxlIG5hbWU9JyVzJyBmaWxlPSclcycgdHlwZT0nJXMnLz5cbiIgJSAoCisJCSAgICBuYW1lLCBzZWxmLm1vZHVsZW5hbWVfZmlsZShpZC5oZWFkZXIpLCBpZC5pbmZvKSkKKwllbHNlOgorCSAgICBvdXRwdXQud3JpdGUoIiAgICA8dmFyaWFibGUgbmFtZT0nJXMnIGZpbGU9JyVzJy8+XG4iICUgKAorCSAgICAgICAgICAgIG5hbWUsIHNlbGYubW9kdWxlbmFtZV9maWxlKGlkLmhlYWRlcikpKQorCisgICAgZGVmIHNlcmlhbGl6ZV9mdW5jdGlvbihzZWxmLCBvdXRwdXQsIG5hbWUpOgorICAgICAgICBpZCA9IHNlbGYuaWR4LmZ1bmN0aW9uc1tuYW1lXQorCWlmIG5hbWUgPT0gZGVidWdzeW06CisJICAgIHByaW50ICI9PiIsIGlkCisKKyAgICAgICAgb3V0cHV0LndyaXRlKCIgICAgPCVzIG5hbWU9JyVzJyBmaWxlPSclcycgbW9kdWxlPSclcyc+XG4iICUgKGlkLnR5cGUsCisJICAgICAgICAgICAgIG5hbWUsIHNlbGYubW9kdWxlbmFtZV9maWxlKGlkLmhlYWRlciksCisJCSAgICAgc2VsZi5tb2R1bGVuYW1lX2ZpbGUoaWQubW9kdWxlKSkpCisJIworCSMgUHJvY2Vzc2luZyBvZiBjb25kaXRpb25hbHMgbW9kaWZpZWQgYnkgQmlsbCAxLzEvMDUKKwkjCisJaWYgaWQuY29uZGl0aW9uYWxzICE9IE5vbmU6CisJICAgIGFwc3RyID0gIiIKKwkgICAgZm9yIGNvbmQgaW4gaWQuY29uZGl0aW9uYWxzOgorCSAgICAgICAgaWYgYXBzdHIgIT0gIiI6CisJCSAgICBhcHN0ciA9IGFwc3RyICsgIiAmYW1wOyZhbXA7ICIKKwkJYXBzdHIgPSBhcHN0ciArIGNvbmQKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgICA8Y29uZD4lczwvY29uZD5cbiIlIChhcHN0cikpOworCXRyeToKKwkgICAgKHJldCwgcGFyYW1zLCBkZXNjKSA9IGlkLmluZm8KKwkgICAgaWYgKGRlc2MgPT0gTm9uZSBvciBkZXNjID09ICcnKSBhbmQgXAorCSAgICAgICBuYW1lWzA6OV0gIT0gInhtbFRockRlZiIgYW5kIG5hbWUgIT0gInhtbERsbE1haW4iOgorCSAgICAgICAgcHJpbnQgIiVzICVzIGZyb20gJXMgaGFzIG5vIGRlc2NyaXB0aW9uIiAlIChpZC50eXBlLCBuYW1lLAorCQkgICAgICAgc2VsZi5tb2R1bGVuYW1lX2ZpbGUoaWQubW9kdWxlKSkKKworCSAgICBvdXRwdXQud3JpdGUoIiAgICAgIDxpbmZvPiVzPC9pbmZvPlxuIiAlIChlc2NhcGUoZGVzYykpKQorCSAgICBzZWxmLmluZGV4U3RyaW5nKG5hbWUsIGRlc2MpCisJICAgIGlmIHJldFswXSAhPSBOb25lOgorCSAgICAgICAgaWYgcmV0WzBdID09ICJ2b2lkIjoKKwkJICAgIG91dHB1dC53cml0ZSgiICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+XG4iKQorCQllbHNlOgorCQkgICAgb3V0cHV0LndyaXRlKCIgICAgICA8cmV0dXJuIHR5cGU9JyVzJyBpbmZvPSclcycvPlxuIiAlICgKKwkJCSAgICAgcmV0WzBdLCBlc2NhcGUocmV0WzFdKSkpCisJCSAgICBzZWxmLmluZGV4U3RyaW5nKG5hbWUsIHJldFsxXSkKKwkgICAgZm9yIHBhcmFtIGluIHBhcmFtczoKKwkgICAgICAgIGlmIHBhcmFtWzBdID09ICd2b2lkJzoKKwkJICAgIGNvbnRpbnVlCisJICAgICAgICBpZiBwYXJhbVsyXSA9PSBOb25lOgorCQkgICAgb3V0cHV0LndyaXRlKCIgICAgICA8YXJnIG5hbWU9JyVzJyB0eXBlPSclcycgaW5mbz0nJy8+XG4iICUgKHBhcmFtWzFdLCBwYXJhbVswXSkpCisJCWVsc2U6CisJCSAgICBvdXRwdXQud3JpdGUoIiAgICAgIDxhcmcgbmFtZT0nJXMnIHR5cGU9JyVzJyBpbmZvPSclcycvPlxuIiAlIChwYXJhbVsxXSwgcGFyYW1bMF0sIGVzY2FwZShwYXJhbVsyXSkpKQorCQkgICAgc2VsZi5pbmRleFN0cmluZyhuYW1lLCBwYXJhbVsyXSkKKwlleGNlcHQ6CisJICAgIHByaW50ICJGYWlsZWQgdG8gc2F2ZSBmdW5jdGlvbiAlcyBpbmZvOiAiICUgbmFtZSwgYGlkLmluZm9gCisgICAgICAgIG91dHB1dC53cml0ZSgiICAgIDwvJXM+XG4iICUgKGlkLnR5cGUpKQorCisgICAgZGVmIHNlcmlhbGl6ZV9leHBvcnRzKHNlbGYsIG91dHB1dCwgZmlsZSk6CisgICAgICAgIG1vZHVsZSA9IHNlbGYubW9kdWxlbmFtZV9maWxlKGZpbGUpCisJb3V0cHV0LndyaXRlKCIgICAgPGZpbGUgbmFtZT0nJXMnPlxuIiAlIChtb2R1bGUpKQorCWRpY3QgPSBzZWxmLmhlYWRlcnNbZmlsZV0KKwlpZiBkaWN0LmluZm8gIT0gTm9uZToKKwkgICAgZm9yIGRhdGEgaW4gKCdTdW1tYXJ5JywgJ0Rlc2NyaXB0aW9uJywgJ0F1dGhvcicpOgorCQl0cnk6CisJCSAgICBvdXRwdXQud3JpdGUoIiAgICAgPCVzPiVzPC8lcz5cbiIgJSAoCisJCSAgICAgICAgICAgICAgICAgc3RyaW5nLmxvd2VyKGRhdGEpLAorCQkJCSBlc2NhcGUoZGljdC5pbmZvW2RhdGFdKSwKKwkJCQkgc3RyaW5nLmxvd2VyKGRhdGEpKSkKKwkJZXhjZXB0OgorCQkgICAgcHJpbnQgIkhlYWRlciAlcyBsYWNrcyBhICVzIGRlc2NyaXB0aW9uIiAlIChtb2R1bGUsIGRhdGEpCisJICAgIGlmIGRpY3QuaW5mby5oYXNfa2V5KCdEZXNjcmlwdGlvbicpOgorCSAgICAgICAgZGVzYyA9IGRpY3QuaW5mb1snRGVzY3JpcHRpb24nXQorCQlpZiBzdHJpbmcuZmluZChkZXNjLCAiREVQUkVDQVRFRCIpICE9IC0xOgorCQkgICAgb3V0cHV0LndyaXRlKCIgICAgIDxkZXByZWNhdGVkLz5cbiIpCisKKyAgICAgICAgaWRzID0gZGljdC5tYWNyb3Mua2V5cygpCisJaWRzLnNvcnQoKQorCWZvciBpZCBpbiB1bmlxKGlkcyk6CisJICAgICMgTWFjcm9zIGFyZSBzb21ldGltZSB1c2VkIHRvIG1hc3F1ZXJhZGUgb3RoZXIgdHlwZXMuCisJICAgIGlmIGRpY3QuZnVuY3Rpb25zLmhhc19rZXkoaWQpOgorCSAgICAgICAgY29udGludWUKKwkgICAgaWYgZGljdC52YXJpYWJsZXMuaGFzX2tleShpZCk6CisJICAgICAgICBjb250aW51ZQorCSAgICBpZiBkaWN0LnR5cGVkZWZzLmhhc19rZXkoaWQpOgorCSAgICAgICAgY29udGludWUKKwkgICAgaWYgZGljdC5zdHJ1Y3RzLmhhc19rZXkoaWQpOgorCSAgICAgICAgY29udGludWUKKwkgICAgaWYgZGljdC5lbnVtcy5oYXNfa2V5KGlkKToKKwkgICAgICAgIGNvbnRpbnVlCisJICAgIG91dHB1dC53cml0ZSgiICAgICA8ZXhwb3J0cyBzeW1ib2w9JyVzJyB0eXBlPSdtYWNybycvPlxuIiAlIChpZCkpCisgICAgICAgIGlkcyA9IGRpY3QuZW51bXMua2V5cygpCisJaWRzLnNvcnQoKQorCWZvciBpZCBpbiB1bmlxKGlkcyk6CisJICAgIG91dHB1dC53cml0ZSgiICAgICA8ZXhwb3J0cyBzeW1ib2w9JyVzJyB0eXBlPSdlbnVtJy8+XG4iICUgKGlkKSkKKyAgICAgICAgaWRzID0gZGljdC50eXBlZGVmcy5rZXlzKCkKKwlpZHMuc29ydCgpCisJZm9yIGlkIGluIHVuaXEoaWRzKToKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgIDxleHBvcnRzIHN5bWJvbD0nJXMnIHR5cGU9J3R5cGVkZWYnLz5cbiIgJSAoaWQpKQorICAgICAgICBpZHMgPSBkaWN0LnN0cnVjdHMua2V5cygpCisJaWRzLnNvcnQoKQorCWZvciBpZCBpbiB1bmlxKGlkcyk6CisJICAgIG91dHB1dC53cml0ZSgiICAgICA8ZXhwb3J0cyBzeW1ib2w9JyVzJyB0eXBlPSdzdHJ1Y3QnLz5cbiIgJSAoaWQpKQorICAgICAgICBpZHMgPSBkaWN0LnZhcmlhYmxlcy5rZXlzKCkKKwlpZHMuc29ydCgpCisJZm9yIGlkIGluIHVuaXEoaWRzKToKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgIDxleHBvcnRzIHN5bWJvbD0nJXMnIHR5cGU9J3ZhcmlhYmxlJy8+XG4iICUgKGlkKSkKKyAgICAgICAgaWRzID0gZGljdC5mdW5jdGlvbnMua2V5cygpCisJaWRzLnNvcnQoKQorCWZvciBpZCBpbiB1bmlxKGlkcyk6CisJICAgIG91dHB1dC53cml0ZSgiICAgICA8ZXhwb3J0cyBzeW1ib2w9JyVzJyB0eXBlPSdmdW5jdGlvbicvPlxuIiAlIChpZCkpCisJb3V0cHV0LndyaXRlKCIgICAgPC9maWxlPlxuIikKKworICAgIGRlZiBzZXJpYWxpemVfeHJlZnNfZmlsZXMoc2VsZiwgb3V0cHV0KToKKyAgICAgICAgaGVhZGVycyA9IHNlbGYuaGVhZGVycy5rZXlzKCkKKyAgICAgICAgaGVhZGVycy5zb3J0KCkKKyAgICAgICAgZm9yIGZpbGUgaW4gaGVhZGVyczoKKwkgICAgbW9kdWxlID0gc2VsZi5tb2R1bGVuYW1lX2ZpbGUoZmlsZSkKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgPGZpbGUgbmFtZT0nJXMnPlxuIiAlIChtb2R1bGUpKQorCSAgICBkaWN0ID0gc2VsZi5oZWFkZXJzW2ZpbGVdCisJICAgIGlkcyA9IHVuaXEoZGljdC5mdW5jdGlvbnMua2V5cygpICsgZGljdC52YXJpYWJsZXMua2V5cygpICsgXAorCQkgIGRpY3QubWFjcm9zLmtleXMoKSArIGRpY3QudHlwZWRlZnMua2V5cygpICsgXAorCQkgIGRpY3Quc3RydWN0cy5rZXlzKCkgKyBkaWN0LmVudW1zLmtleXMoKSkKKwkgICAgaWRzLnNvcnQoKQorCSAgICBmb3IgaWQgaW4gaWRzOgorCQlvdXRwdXQud3JpdGUoIiAgICAgIDxyZWYgbmFtZT0nJXMnLz5cbiIgJSAoaWQpKQorCSAgICBvdXRwdXQud3JpdGUoIiAgICA8L2ZpbGU+XG4iKQorICAgICAgICBwYXNzCisKKyAgICBkZWYgc2VyaWFsaXplX3hyZWZzX2Z1bmN0aW9ucyhzZWxmLCBvdXRwdXQpOgorICAgICAgICBmdW5jcyA9IHt9CisJZm9yIG5hbWUgaW4gc2VsZi5pZHguZnVuY3Rpb25zLmtleXMoKToKKwkgICAgaWQgPSBzZWxmLmlkeC5mdW5jdGlvbnNbbmFtZV0KKwkgICAgdHJ5OgorCQkocmV0LCBwYXJhbXMsIGRlc2MpID0gaWQuaW5mbworCQlmb3IgcGFyYW0gaW4gcGFyYW1zOgorCQkgICAgaWYgcGFyYW1bMF0gPT0gJ3ZvaWQnOgorCQkJY29udGludWUKKwkJICAgIGlmIGZ1bmNzLmhhc19rZXkocGFyYW1bMF0pOgorCQkgICAgICAgIGZ1bmNzW3BhcmFtWzBdXS5hcHBlbmQobmFtZSkKKwkJICAgIGVsc2U6CisJCSAgICAgICAgZnVuY3NbcGFyYW1bMF1dID0gW25hbWVdCisJICAgIGV4Y2VwdDoKKwkgICAgICAgIHBhc3MKKwl0eXAgPSBmdW5jcy5rZXlzKCkKKwl0eXAuc29ydCgpCisJZm9yIHR5cGUgaW4gdHlwOgorCSAgICBpZiB0eXBlID09ICcnIG9yIHR5cGUgPT0gJ3ZvaWQnIG9yIHR5cGUgPT0gImludCIgb3IgXAorCSAgICAgICB0eXBlID09ICJjaGFyICoiIG9yIHR5cGUgPT0gImNvbnN0IGNoYXIgKiIgOgorCSAgICAgICAgY29udGludWUKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgPHR5cGUgbmFtZT0nJXMnPlxuIiAlICh0eXBlKSkKKwkgICAgaWRzID0gZnVuY3NbdHlwZV0KKwkgICAgaWRzLnNvcnQoKQorCSAgICBwaWQgPSAnJwkjIG5vdCBzdXJlIHdoeSB3ZSBoYXZlIGR1cHMsIGJ1dCBnZXQgcmlkIG9mIHRoZW0hCisJICAgIGZvciBpZCBpbiBpZHM6CisJICAgICAgICBpZiBpZCAhPSBwaWQ6CisJICAgICAgICAgICAgb3V0cHV0LndyaXRlKCIgICAgICA8cmVmIG5hbWU9JyVzJy8+XG4iICUgKGlkKSkKKwkJICAgIHBpZCA9IGlkCisJICAgIG91dHB1dC53cml0ZSgiICAgIDwvdHlwZT5cbiIpCisKKyAgICBkZWYgc2VyaWFsaXplX3hyZWZzX2NvbnN0cnVjdG9ycyhzZWxmLCBvdXRwdXQpOgorICAgICAgICBmdW5jcyA9IHt9CisJZm9yIG5hbWUgaW4gc2VsZi5pZHguZnVuY3Rpb25zLmtleXMoKToKKwkgICAgaWQgPSBzZWxmLmlkeC5mdW5jdGlvbnNbbmFtZV0KKwkgICAgdHJ5OgorCQkocmV0LCBwYXJhbXMsIGRlc2MpID0gaWQuaW5mbworCQlpZiByZXRbMF0gPT0gInZvaWQiOgorCQkgICAgY29udGludWUKKwkJaWYgZnVuY3MuaGFzX2tleShyZXRbMF0pOgorCQkgICAgZnVuY3NbcmV0WzBdXS5hcHBlbmQobmFtZSkKKwkJZWxzZToKKwkJICAgIGZ1bmNzW3JldFswXV0gPSBbbmFtZV0KKwkgICAgZXhjZXB0OgorCSAgICAgICAgcGFzcworCXR5cCA9IGZ1bmNzLmtleXMoKQorCXR5cC5zb3J0KCkKKwlmb3IgdHlwZSBpbiB0eXA6CisJICAgIGlmIHR5cGUgPT0gJycgb3IgdHlwZSA9PSAndm9pZCcgb3IgdHlwZSA9PSAiaW50IiBvciBcCisJICAgICAgIHR5cGUgPT0gImNoYXIgKiIgb3IgdHlwZSA9PSAiY29uc3QgY2hhciAqIiA6CisJICAgICAgICBjb250aW51ZQorCSAgICBvdXRwdXQud3JpdGUoIiAgICA8dHlwZSBuYW1lPSclcyc+XG4iICUgKHR5cGUpKQorCSAgICBpZHMgPSBmdW5jc1t0eXBlXQorCSAgICBpZHMuc29ydCgpCisJICAgIGZvciBpZCBpbiBpZHM6CisJICAgICAgICBvdXRwdXQud3JpdGUoIiAgICAgIDxyZWYgbmFtZT0nJXMnLz5cbiIgJSAoaWQpKQorCSAgICBvdXRwdXQud3JpdGUoIiAgICA8L3R5cGU+XG4iKQorCisgICAgZGVmIHNlcmlhbGl6ZV94cmVmc19hbHBoYShzZWxmLCBvdXRwdXQpOgorCWxldHRlciA9IE5vbmUKKwlpZHMgPSBzZWxmLmlkeC5pZGVudGlmaWVycy5rZXlzKCkKKwlpZHMuc29ydCgpCisJZm9yIGlkIGluIGlkczoKKwkgICAgaWYgaWRbMF0gIT0gbGV0dGVyOgorCQlpZiBsZXR0ZXIgIT0gTm9uZToKKwkJICAgIG91dHB1dC53cml0ZSgiICAgIDwvbGV0dGVyPlxuIikKKwkJbGV0dGVyID0gaWRbMF0KKwkJb3V0cHV0LndyaXRlKCIgICAgPGxldHRlciBuYW1lPSclcyc+XG4iICUgKGxldHRlcikpCisJICAgIG91dHB1dC53cml0ZSgiICAgICAgPHJlZiBuYW1lPSclcycvPlxuIiAlIChpZCkpCisJaWYgbGV0dGVyICE9IE5vbmU6CisJICAgIG91dHB1dC53cml0ZSgiICAgIDwvbGV0dGVyPlxuIikKKworICAgIGRlZiBzZXJpYWxpemVfeHJlZnNfcmVmZXJlbmNlcyhzZWxmLCBvdXRwdXQpOgorICAgICAgICB0eXAgPSBzZWxmLmlkeC5pZGVudGlmaWVycy5rZXlzKCkKKwl0eXAuc29ydCgpCisJZm9yIGlkIGluIHR5cDoKKwkgICAgaWRmID0gc2VsZi5pZHguaWRlbnRpZmllcnNbaWRdCisJICAgIG1vZHVsZSA9IGlkZi5oZWFkZXIKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgPHJlZmVyZW5jZSBuYW1lPSclcycgaHJlZj0nJXMnLz5cbiIgJSAoaWQsCisJICAgICAgICAgICAgICAgICAnaHRtbC8nICsgc2VsZi5iYXNlbmFtZSArICctJyArCisJCSAgICAgICAgIHNlbGYubW9kdWxlbmFtZV9maWxlKG1vZHVsZSkgKyAnLmh0bWwjJyArCisJCQkgaWQpKQorCisgICAgZGVmIHNlcmlhbGl6ZV94cmVmc19pbmRleChzZWxmLCBvdXRwdXQpOgorICAgICAgICBpbmRleCA9IHNlbGYueHJlZgorCXR5cCA9IGluZGV4LmtleXMoKQorCXR5cC5zb3J0KCkKKwlsZXR0ZXIgPSBOb25lCisJY291bnQgPSAwCisJY2h1bmsgPSAwCisJY2h1bmtzID0gW10KKwlmb3IgaWQgaW4gdHlwOgorCSAgICBpZiBsZW4oaW5kZXhbaWRdKSA+IDMwOgorCQljb250aW51ZQorCSAgICBpZiBpZFswXSAhPSBsZXR0ZXI6CisJCWlmIGxldHRlciA9PSBOb25lIG9yIGNvdW50ID4gMjAwOgorCQkgICAgaWYgbGV0dGVyICE9IE5vbmU6CisJCQlvdXRwdXQud3JpdGUoIiAgICAgIDwvbGV0dGVyPlxuIikKKwkJCW91dHB1dC53cml0ZSgiICAgIDwvY2h1bms+XG4iKQorCQkJY291bnQgPSAwCisJCQljaHVua3MuYXBwZW5kKFsiY2h1bmslcyIgJSAoY2h1bmsgLTEpLCBmaXJzdF9sZXR0ZXIsIGxldHRlcl0pCisJCSAgICBvdXRwdXQud3JpdGUoIiAgICA8Y2h1bmsgbmFtZT0nY2h1bmslcyc+XG4iICUgKGNodW5rKSkKKwkJICAgIGZpcnN0X2xldHRlciA9IGlkWzBdCisJCSAgICBjaHVuayA9IGNodW5rICsgMQorCQllbGlmIGxldHRlciAhPSBOb25lOgorCQkgICAgb3V0cHV0LndyaXRlKCIgICAgICA8L2xldHRlcj5cbiIpCisJCWxldHRlciA9IGlkWzBdCisJCW91dHB1dC53cml0ZSgiICAgICAgPGxldHRlciBuYW1lPSclcyc+XG4iICUgKGxldHRlcikpCisJICAgIG91dHB1dC53cml0ZSgiICAgICAgICA8d29yZCBuYW1lPSclcyc+XG4iICUgKGlkKSkKKwkgICAgdG9rZW5zID0gaW5kZXhbaWRdOworCSAgICB0b2tlbnMuc29ydCgpCisJICAgIHRvayA9IE5vbmUKKwkgICAgZm9yIHRva2VuIGluIHRva2VuczoKKwkJaWYgdG9rID09IHRva2VuOgorCQkgICAgY29udGludWUKKwkJdG9rID0gdG9rZW4KKwkJb3V0cHV0LndyaXRlKCIgICAgICAgICAgPHJlZiBuYW1lPSclcycvPlxuIiAlICh0b2tlbikpCisJCWNvdW50ID0gY291bnQgKyAxCisJICAgIG91dHB1dC53cml0ZSgiICAgICAgICA8L3dvcmQ+XG4iKQorCWlmIGxldHRlciAhPSBOb25lOgorCSAgICBvdXRwdXQud3JpdGUoIiAgICAgIDwvbGV0dGVyPlxuIikKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgPC9jaHVuaz5cbiIpCisJICAgIGlmIGNvdW50ICE9IDA6CisJICAgICAgICBjaHVua3MuYXBwZW5kKFsiY2h1bmslcyIgJSAoY2h1bmsgLTEpLCBmaXJzdF9sZXR0ZXIsIGxldHRlcl0pCisJICAgIG91dHB1dC53cml0ZSgiICAgIDxjaHVua3M+XG4iKQorCSAgICBmb3IgY2ggaW4gY2h1bmtzOgorCQlvdXRwdXQud3JpdGUoIiAgICAgIDxjaHVuayBuYW1lPSclcycgc3RhcnQ9JyVzJyBlbmQ9JyVzJy8+XG4iICUgKAorCQkJICAgICBjaFswXSwgY2hbMV0sIGNoWzJdKSkKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgPC9jaHVua3M+XG4iKQorCisgICAgZGVmIHNlcmlhbGl6ZV94cmVmcyhzZWxmLCBvdXRwdXQpOgorCW91dHB1dC53cml0ZSgiICA8cmVmZXJlbmNlcz5cbiIpCisJc2VsZi5zZXJpYWxpemVfeHJlZnNfcmVmZXJlbmNlcyhvdXRwdXQpCisJb3V0cHV0LndyaXRlKCIgIDwvcmVmZXJlbmNlcz5cbiIpCisJb3V0cHV0LndyaXRlKCIgIDxhbHBoYT5cbiIpCisJc2VsZi5zZXJpYWxpemVfeHJlZnNfYWxwaGEob3V0cHV0KQorCW91dHB1dC53cml0ZSgiICA8L2FscGhhPlxuIikKKwlvdXRwdXQud3JpdGUoIiAgPGNvbnN0cnVjdG9ycz5cbiIpCisJc2VsZi5zZXJpYWxpemVfeHJlZnNfY29uc3RydWN0b3JzKG91dHB1dCkKKwlvdXRwdXQud3JpdGUoIiAgPC9jb25zdHJ1Y3RvcnM+XG4iKQorCW91dHB1dC53cml0ZSgiICA8ZnVuY3Rpb25zPlxuIikKKwlzZWxmLnNlcmlhbGl6ZV94cmVmc19mdW5jdGlvbnMob3V0cHV0KQorCW91dHB1dC53cml0ZSgiICA8L2Z1bmN0aW9ucz5cbiIpCisJb3V0cHV0LndyaXRlKCIgIDxmaWxlcz5cbiIpCisJc2VsZi5zZXJpYWxpemVfeHJlZnNfZmlsZXMob3V0cHV0KQorCW91dHB1dC53cml0ZSgiICA8L2ZpbGVzPlxuIikKKwlvdXRwdXQud3JpdGUoIiAgPGluZGV4PlxuIikKKwlzZWxmLnNlcmlhbGl6ZV94cmVmc19pbmRleChvdXRwdXQpCisJb3V0cHV0LndyaXRlKCIgIDwvaW5kZXg+XG4iKQorCisgICAgZGVmIHNlcmlhbGl6ZShzZWxmKToKKyAgICAgICAgZmlsZW5hbWUgPSAiJXMtYXBpLnhtbCIgJSBzZWxmLm5hbWUKKyAgICAgICAgcHJpbnQgIlNhdmluZyBYTUwgZGVzY3JpcHRpb24gJXMiICUgKGZpbGVuYW1lKQorICAgICAgICBvdXRwdXQgPSBvcGVuKGZpbGVuYW1lLCAidyIpCisgICAgICAgIG91dHB1dC53cml0ZSgnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PlxuJykKKyAgICAgICAgb3V0cHV0LndyaXRlKCI8YXBpIG5hbWU9JyVzJz5cbiIgJSBzZWxmLm5hbWUpCisgICAgICAgIG91dHB1dC53cml0ZSgiICA8ZmlsZXM+XG4iKQorICAgICAgICBoZWFkZXJzID0gc2VsZi5oZWFkZXJzLmtleXMoKQorICAgICAgICBoZWFkZXJzLnNvcnQoKQorICAgICAgICBmb3IgZmlsZSBpbiBoZWFkZXJzOgorICAgICAgICAgICAgc2VsZi5zZXJpYWxpemVfZXhwb3J0cyhvdXRwdXQsIGZpbGUpCisgICAgICAgIG91dHB1dC53cml0ZSgiICA8L2ZpbGVzPlxuIikKKyAgICAgICAgb3V0cHV0LndyaXRlKCIgIDxzeW1ib2xzPlxuIikKKyAgICAgICAgbWFjcm9zID0gc2VsZi5pZHgubWFjcm9zLmtleXMoKQorICAgICAgICBtYWNyb3Muc29ydCgpCisgICAgICAgIGZvciBtYWNybyBpbiBtYWNyb3M6CisgICAgICAgICAgICBzZWxmLnNlcmlhbGl6ZV9tYWNybyhvdXRwdXQsIG1hY3JvKQorICAgICAgICBlbnVtcyA9IHNlbGYuaWR4LmVudW1zLmtleXMoKQorICAgICAgICBlbnVtcy5zb3J0KCkKKyAgICAgICAgZm9yIGVudW0gaW4gZW51bXM6CisgICAgICAgICAgICBzZWxmLnNlcmlhbGl6ZV9lbnVtKG91dHB1dCwgZW51bSkKKyAgICAgICAgdHlwZWRlZnMgPSBzZWxmLmlkeC50eXBlZGVmcy5rZXlzKCkKKyAgICAgICAgdHlwZWRlZnMuc29ydCgpCisgICAgICAgIGZvciB0eXBlZGVmIGluIHR5cGVkZWZzOgorICAgICAgICAgICAgc2VsZi5zZXJpYWxpemVfdHlwZWRlZihvdXRwdXQsIHR5cGVkZWYpCisgICAgICAgIHZhcmlhYmxlcyA9IHNlbGYuaWR4LnZhcmlhYmxlcy5rZXlzKCkKKyAgICAgICAgdmFyaWFibGVzLnNvcnQoKQorICAgICAgICBmb3IgdmFyaWFibGUgaW4gdmFyaWFibGVzOgorICAgICAgICAgICAgc2VsZi5zZXJpYWxpemVfdmFyaWFibGUob3V0cHV0LCB2YXJpYWJsZSkKKyAgICAgICAgZnVuY3Rpb25zID0gc2VsZi5pZHguZnVuY3Rpb25zLmtleXMoKQorICAgICAgICBmdW5jdGlvbnMuc29ydCgpCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CisgICAgICAgICAgICBzZWxmLnNlcmlhbGl6ZV9mdW5jdGlvbihvdXRwdXQsIGZ1bmN0aW9uKQorICAgICAgICBvdXRwdXQud3JpdGUoIiAgPC9zeW1ib2xzPlxuIikKKyAgICAgICAgb3V0cHV0LndyaXRlKCI8L2FwaT5cbiIpCisgICAgICAgIG91dHB1dC5jbG9zZSgpCisKKyAgICAgICAgZmlsZW5hbWUgPSAiJXMtcmVmcy54bWwiICUgc2VsZi5uYW1lCisgICAgICAgIHByaW50ICJTYXZpbmcgWE1MIENyb3NzIFJlZmVyZW5jZXMgJXMiICUgKGZpbGVuYW1lKQorICAgICAgICBvdXRwdXQgPSBvcGVuKGZpbGVuYW1lLCAidyIpCisgICAgICAgIG91dHB1dC53cml0ZSgnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PlxuJykKKyAgICAgICAgb3V0cHV0LndyaXRlKCI8YXBpcmVmcyBuYW1lPSclcyc+XG4iICUgc2VsZi5uYW1lKQorICAgICAgICBzZWxmLnNlcmlhbGl6ZV94cmVmcyhvdXRwdXQpCisgICAgICAgIG91dHB1dC53cml0ZSgiPC9hcGlyZWZzPlxuIikKKyAgICAgICAgb3V0cHV0LmNsb3NlKCkKKworCitkZWYgcmVidWlsZCgpOgorICAgIGJ1aWxkZXIgPSBOb25lCisgICAgaWYgZ2xvYi5nbG9iKCJwYXJzZXIuYyIpICE9IFtdIDoKKyAgICAgICAgcHJpbnQgIlJlYnVpbGRpbmcgQVBJIGRlc2NyaXB0aW9uIGZvciBsaWJ4bWwyIgorCWJ1aWxkZXIgPSBkb2NCdWlsZGVyKCJsaWJ4bWwyIiwgWyIuIiwgIi4iXSwKKwkgICAgICAgICAgICAgICAgICAgICBbInhtbHdpbjMydmVyc2lvbi5oIiwgInRzdC5jIl0pCisgICAgZWxpZiBnbG9iLmdsb2IoIi4uL3BhcnNlci5jIikgIT0gW10gOgorICAgICAgICBwcmludCAiUmVidWlsZGluZyBBUEkgZGVzY3JpcHRpb24gZm9yIGxpYnhtbDIiCisJYnVpbGRlciA9IGRvY0J1aWxkZXIoImxpYnhtbDIiLCBbIi4uIiwgIi4uL2luY2x1ZGUvbGlieG1sIl0sCisJICAgICAgICAgICAgICAgICAgICAgWyJ4bWx3aW4zMnZlcnNpb24uaCIsICJ0c3QuYyJdKQorICAgIGVsaWYgZ2xvYi5nbG9iKCIuLi9saWJ4c2x0L3RyYW5zZm9ybS5jIikgIT0gW10gOgorICAgICAgICBwcmludCAiUmVidWlsZGluZyBBUEkgZGVzY3JpcHRpb24gZm9yIGxpYnhzbHQiCisJYnVpbGRlciA9IGRvY0J1aWxkZXIoImxpYnhzbHQiLCBbIi4uL2xpYnhzbHQiXSwKKwkgICAgICAgICAgICAgICAgICAgICBbIndpbjMyY29uZmlnLmgiLCAibGlieHNsdC5oIiwgInRzdC5jIl0pCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQgInJlYnVpbGQoKSBmYWlsZWQsIHVuYWJsZSB0byBndWVzcyB0aGUgbW9kdWxlIgorCXJldHVybiBOb25lCisgICAgYnVpbGRlci5zY2FuKCkKKyAgICBidWlsZGVyLmFuYWx5emUoKQorICAgIGJ1aWxkZXIuc2VyaWFsaXplKCkKKyAgICBpZiBnbG9iLmdsb2IoIi4uL2xpYmV4c2x0L2V4c2x0LmMiKSAhPSBbXSA6CisgICAgICAgIGV4dHJhID0gZG9jQnVpbGRlcigibGliZXhzbHQiLCBbIi4uL2xpYmV4c2x0Il0sIFsibGliZXhzbHQuaCJdKQorCWV4dHJhLnNjYW4oKQorCWV4dHJhLmFuYWx5emUoKQorCWV4dHJhLnNlcmlhbGl6ZSgpCisgICAgcmV0dXJuIGJ1aWxkZXIKKworIworIyBmb3IgZGVidWdnaW5nIHRoZSBwYXJzZXIKKyMKK2RlZiBwYXJzZShmaWxlbmFtZSk6CisgICAgcGFyc2VyID0gQ1BhcnNlcihmaWxlbmFtZSkKKyAgICBpZHggPSBwYXJzZXIucGFyc2UoKQorICAgIHJldHVybiBpZHgKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBpZiBsZW4oc3lzLmFyZ3YpID4gMToKKyAgICAgICAgZGVidWcgPSAxCisgICAgICAgIHBhcnNlKHN5cy5hcmd2WzFdKQorICAgIGVsc2U6CisJcmVidWlsZCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9hcmNoaXRlY3R1cmUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2FyY2hpdGVjdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOWI1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9hcmNoaXRlY3R1cmUuaHRtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPkxpYnhtbDIgaXMgbWFkZSBvZiBtdWx0aXBsZSBjb21wb25lbnRzOyBzb21lIG9mIHRoZW0gYXJlIG9wdGlvbmFsLCBhbmQKK21vc3Qgb2YgdGhlIGJsb2NrIGludGVyZmFjZXMgYXJlIHB1YmxpYy4gVGhlIG1haW4gY29tcG9uZW50cyBhcmU6PC9wPjx1bD48bGk+YW4gSW5wdXQvT3V0cHV0IGxheWVyPC9saT4KKyAgPGxpPkZUUCBhbmQgSFRUUCBjbGllbnQgbGF5ZXJzIChvcHRpb25hbCk8L2xpPgorICA8bGk+YW4gSW50ZXJuYXRpb25hbGl6YXRpb24gbGF5ZXIgbWFuYWdpbmcgdGhlIGVuY29kaW5ncyBzdXBwb3J0PC9saT4KKyAgPGxpPmEgVVJJIG1vZHVsZTwvbGk+CisgIDxsaT50aGUgWE1MIHBhcnNlciBhbmQgaXRzIGJhc2ljIFNBWCBpbnRlcmZhY2U8L2xpPgorICA8bGk+YW4gSFRNTCBwYXJzZXIgdXNpbmcgdGhlIHNhbWUgU0FYIGludGVyZmFjZSAob3B0aW9uYWwpPC9saT4KKyAgPGxpPmEgU0FYIHRyZWUgbW9kdWxlIHRvIGJ1aWxkIGFuIGluLW1lbW9yeSBET00gcmVwcmVzZW50YXRpb248L2xpPgorICA8bGk+YSB0cmVlIG1vZHVsZSB0byBtYW5pcHVsYXRlIHRoZSBET00gcmVwcmVzZW50YXRpb248L2xpPgorICA8bGk+YSB2YWxpZGF0aW9uIG1vZHVsZSB1c2luZyB0aGUgRE9NIHJlcHJlc2VudGF0aW9uIChvcHRpb25hbCk8L2xpPgorICA8bGk+YW4gWFBhdGggbW9kdWxlIGZvciBnbG9iYWwgbG9va3VwIGluIGEgRE9NIHJlcHJlc2VudGF0aW9uCisgIChvcHRpb25hbCk8L2xpPgorICA8bGk+YSBkZWJ1ZyBtb2R1bGUgKG9wdGlvbmFsKTwvbGk+Cis8L3VsPjxwPkdyYXBoaWNhbGx5IHRoaXMgZ2l2ZXMgdGhlIGZvbGxvd2luZzo8L3A+PHA+PGltZyBzcmM9ImxpYnhtbC5naWYiIGFsdD0iYSBncmFwaGljYWwgdmlldyBvZiB0aGUgdmFyaW91cyIgLz48L3A+PHA+PC9wPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvYnVncy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvYnVncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkNDRkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9idWdzLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT48bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPjxsaT48YSBocmVmPSJkb2NzLmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPjxsaT48YSBocmVmPSJkb3dubG9hZHMuaHRtbCI+RG93bmxvYWRzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+UmVsZWFzZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iWE1MaW5mby5odG1sIj5YTUw8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT48bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+UmVjZW50IENoYW5nZXM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48cD5XZWxsLCBidWdzIG9yIG1pc3NpbmcgZmVhdHVyZXMgYXJlIGFsd2F5cyBwb3NzaWJsZSwgYW5kIEkgd2lsbCBtYWtlIGEKK3BvaW50IG9mIGZpeGluZyB0aGVtIGluIGEgdGltZWx5IGZhc2hpb24uIFRoZSBiZXN0IHdheSB0byByZXBvcnQgYSBidWcgaXMgdG8KK3VzZSB0aGUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkdub21lCitidWcgdHJhY2tpbmcgZGF0YWJhc2U8L2E+IChtYWtlIHN1cmUgdG8gdXNlIHRoZSAibGlieG1sMiIgbW9kdWxlIG5hbWUpLiBJCitsb29rIGF0IHJlcG9ydHMgdGhlcmUgcmVndWxhcmx5IGFuZCBpdCdzIGdvb2QgdG8gaGF2ZSBhIHJlbWluZGVyIHdoZW4gYSBidWcKK2lzIHN0aWxsIG9wZW4uIEJlIHN1cmUgdG8gc3BlY2lmeSB0aGF0IHRoZSBidWcgaXMgZm9yIHRoZSBwYWNrYWdlIGxpYnhtbDIuPC9wPjxwPkZvciBzbWFsbCBwcm9ibGVtcyB5b3UgY2FuIHRyeSB0byBnZXQgaGVscCBvbiBJUkMsIHRoZSAjeG1sIGNoYW5uZWwgb24KK2lyYy5nbm9tZS5vcmcgKHBvcnQgNjY2NykgdXN1YWxseSBoYXZlIGEgZmV3IHBlcnNvbiBzdWJzY3JpYmVkIHdoaWNoIG1heSBoZWxwCisoYnV0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSBhbmQgaWYgYSByZWFsIGlzc3VlIGlzIHJhaXNlZCBpdCBzaG91bGQgZ28gb24gdGhlCittYWlsaW5nLWxpc3QgZm9yIGFyY2hpdmFsKS48L3A+PHA+VGhlcmUgaXMgYWxzbyBhIG1haWxpbmctbGlzdCA8YSBocmVmPSJtYWlsdG86eG1sQGdub21lLm9yZyI+eG1sQGdub21lLm9yZzwvYT4gZm9yIGxpYnhtbCwgd2l0aCBhbiAgPGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPm9uLWxpbmUgYXJjaGl2ZTwvYT4gKDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcyI+b2xkPC9hPikuIFRvIHN1YnNjcmliZSB0byB0aGlzIGxpc3QsCitwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3htbCI+YXNzb2NpYXRlZCBXZWI8L2E+IHBhZ2UgYW5kCitmb2xsb3cgdGhlIGluc3RydWN0aW9ucy4gPHN0cm9uZz5EbyBub3Qgc2VuZCBjb2RlLCBJIHdvbid0IGRlYnVnIGl0PC9zdHJvbmc+CisoYnV0IHBhdGNoZXMgYXJlIHJlYWxseSBhcHByZWNpYXRlZCEpLjwvcD48cD5QbGVhc2Ugbm90ZSB0aGF0IHdpdGggdGhlIGN1cnJlbnQgYW1vdW50IG9mIHZpcnVzIGFuZCBTUEFNLCBzZW5kaW5nIG1haWwKK3RvIHRoZSBsaXN0IHdpdGhvdXQgYmVpbmcgc3Vic2NyaWJlZCB3b24ndCB3b3JrLiBUaGVyZSBpcyAqZmFyIHRvbyBtYW55Citib3VuY2VzKiAoaW4gdGhlIG9yZGVyIG9mIGEgdGhvdXNhbmQgYSBkYXkgISkgSSBjYW5ub3QgYXBwcm92ZSB0aGVtIG1hbnVhbGx5Cithbnltb3JlLiBJZiB5b3VyIG1haWwgdG8gdGhlIGxpc3QgYm91bmNlZCB3YWl0aW5nIGZvciBhZG1pbmlzdHJhdG9yIGFwcHJvdmFsLAoraXQgaXMgTE9TVCAhIFJlcG9zdCBpdCBhbmQgZml4IHRoZSBwcm9ibGVtIHRyaWdnZXJpbmcgdGhlIGVycm9yLiBBbHNvIHBsZWFzZQorbm90ZSB0aGF0IDxzcGFuIHN0eWxlPSJjb2xvcjogI0ZGMDAwMDsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiI+ZW1haWxzIHdpdGgKK2EgbGVnYWwgd2FybmluZyBhc2tpbmcgdG8gbm90IGNvcHkgb3IgcmVkaXN0cmlidXRlIGZyZWVseSB0aGUgaW5mb3JtYXRpb24KK3RoZXkgY29udGFpbjwvc3Bhbj4gYXJlIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFjY2VwdGFibGUgZm9yIHRoZSBtYWlsaW5nLWxpc3QsCitzdWNoIG1haWwgd2lsbCBhcyBtdWNoIGFzIHBvc3NpYmxlIGJlIGRpc2NhcmRlZCBhdXRvbWF0aWNhbGx5LCBhbmQgYXJlIGxlc3MKK2xpa2VseSB0byBiZSBhbnN3ZXJlZCBpZiB0aGV5IG1hZGUgaXQgdG8gdGhlIGxpc3QsIDxzdHJvbmc+RE8gTk9UPC9zdHJvbmc+Citwb3N0IHRvIHRoZSBsaXN0IGZyb20gYW4gZW1haWwgYWRkcmVzcyB3aGVyZSBzdWNoIGxlZ2FsIHJlcXVpcmVtZW50cyBhcmUKK2F1dG9tYXRpY2FsbHkgYWRkZWQsIGdldCBwcml2YXRlIHBheWluZyBzdXBwb3J0IGlmIHlvdSBjYW4ndCBzaGFyZQoraW5mb3JtYXRpb24uPC9wPjxwPkNoZWNrIHRoZSBmb2xsb3dpbmcgPHN0cm9uZz48c3BhbiBzdHlsZT0iY29sb3I6ICNGRjAwMDAiPmJlZm9yZQorcG9zdGluZzwvc3Bhbj48L3N0cm9uZz46PC9wPjx1bD48bGk+UmVhZCB0aGUgPGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT4gYW5kIDxhIGhyZWY9InNlYXJjaC5waHAiPnVzZSB0aGUKKyAgICBzZWFyY2ggZW5naW5lPC9hPiB0byBnZXQgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB5b3VyIHByb2JsZW0uPC9saT4KKyAgPGxpPk1ha2Ugc3VyZSB5b3UgYXJlIDxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvIj51c2luZyBhIHJlY2VudAorICAgIHZlcnNpb248L2E+LCBhbmQgdGhhdCB0aGUgcHJvYmxlbSBzdGlsbCBzaG93cyB1cCBpbiBhIHJlY2VudCB2ZXJzaW9uLjwvbGk+CisgIDxsaT5DaGVjayB0aGUgPGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPmxpc3QKKyAgICBhcmNoaXZlczwvYT4gdG8gc2VlIGlmIHRoZSBwcm9ibGVtIHdhcyByZXBvcnRlZCBhbHJlYWR5LiBJbiB0aGlzIGNhc2UKKyAgICB0aGVyZSBpcyBwcm9iYWJseSBhIGZpeCBhdmFpbGFibGUsIHNpbWlsYXJseSBjaGVjayB0aGUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPnJlZ2lzdGVyZWQKKyAgICBvcGVuIGJ1Z3M8L2E+LjwvbGk+CisgIDxsaT5NYWtlIHN1cmUgeW91IGNhbiByZXByb2R1Y2UgdGhlIGJ1ZyB3aXRoIHhtbGxpbnQgb3Igb25lIG9mIHRoZSB0ZXN0CisgICAgcHJvZ3JhbXMgZm91bmQgaW4gc291cmNlIGluIHRoZSBkaXN0cmlidXRpb24uPC9saT4KKyAgPGxpPlBsZWFzZSBzZW5kIHRoZSBjb21tYW5kIHNob3dpbmcgdGhlIGVycm9yIGFzIHdlbGwgYXMgdGhlIGlucHV0IChhcyBhbgorICAgIGF0dGFjaG1lbnQpPC9saT4KKzwvdWw+PHA+VGhlbiBzZW5kIHRoZSBidWcgd2l0aCBhc3NvY2lhdGVkIGluZm9ybWF0aW9uIHRvIHJlcHJvZHVjZSBpdCB0byB0aGUgPGEgaHJlZj0ibWFpbHRvOnhtbEBnbm9tZS5vcmciPnhtbEBnbm9tZS5vcmc8L2E+IGxpc3Q7IGlmIGl0J3MgcmVhbGx5IGxpYnhtbAorcmVsYXRlZCBJIHdpbGwgYXBwcm92ZSBpdC4gUGxlYXNlIGRvIG5vdCBzZW5kIG1haWwgdG8gbWUgZGlyZWN0bHksIGl0IG1ha2VzCit0aGluZ3MgcmVhbGx5IGhhcmQgdG8gdHJhY2sgYW5kIGluIHNvbWUgY2FzZXMgSSBhbSBub3QgdGhlIGJlc3QgcGVyc29uIHRvCithbnN3ZXIgYSBnaXZlbiBxdWVzdGlvbiwgYXNrIG9uIHRoZSBsaXN0LjwvcD48cD5UbyA8c3BhbiBzdHlsZT0iY29sb3I6ICNFNTAwMDAiPmJlIHJlYWxseSBjbGVhciBhYm91dCBzdXBwb3J0PC9zcGFuPjo8L3A+PHVsPjxsaT5TdXBwb3J0IG9yIGhlbHAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjRTUwMDAwIj5yZXF1ZXN0cyBNVVNUIGJlIHNlbnQgdG8KKyAgICB0aGUgbGlzdCBvciBvbiBidWd6aWxsYTwvc3Bhbj4gaW4gY2FzZSBvZiBwcm9ibGVtcywgc28gdGhhdCB0aGUgUXVlc3Rpb24KKyAgICBhbmQgQW5zd2VycyBjYW4gYmUgc2hhcmVkIHB1YmxpY2x5LiBGYWlsaW5nIHRvIGRvIHNvIGNhcnJpZXMgdGhlIGltcGxpY2l0CisgICAgbWVzc2FnZSAiSSB3YW50IGZyZWUgc3VwcG9ydCBidXQgSSBkb24ndCB3YW50IHRvIHNoYXJlIHRoZSBiZW5lZml0cyB3aXRoCisgICAgb3RoZXJzIiBhbmQgaXMgbm90IHdlbGNvbWUuIEkgd2lsbCBhdXRvbWF0aWNhbGx5IENhcmJvbi1Db3B5IHRoZQorICAgIHhtbEBnbm9tZS5vcmcgbWFpbGluZyBsaXN0IGZvciBhbnkgdGVjaG5pY2FsIHJlcGx5IG1hZGUgYWJvdXQgbGlieG1sMiBvcgorICAgIGxpYnhzbHQuPC9saT4KKyAgPGxpPlRoZXJlIGlzIDxzcGFuIHN0eWxlPSJjb2xvcjogI0U1MDAwMCI+bm8gZ3VhcmFudGVlIG9mIHN1cHBvcnQ8L3NwYW4+LiBJZgorICAgIHlvdXIgcXVlc3Rpb24gcmVtYWlucyB1bmFuc3dlcmVkIGFmdGVyIGEgd2VlaywgcmVwb3N0IGl0LCBtYWtpbmcgc3VyZSB5b3UKKyAgICBnYXZlIGFsbCB0aGUgZGV0YWlsIG5lZWRlZCBhbmQgdGhlIGluZm9ybWF0aW9uIHJlcXVlc3RlZC48L2xpPgorICA8bGk+RmFpbGluZyB0byBwcm92aWRlIGluZm9ybWF0aW9uIGFzIHJlcXVlc3RlZCBvciBkb3VibGUgY2hlY2tpbmcgZmlyc3QKKyAgICBmb3IgcHJpb3IgZmVlZGJhY2sgYWxzbyBjYXJyaWVzIHRoZSBpbXBsaWNpdCBtZXNzYWdlICJ0aGUgdGltZSBvZiB0aGUKKyAgICBsaWJyYXJ5IG1haW50YWluZXJzIGlzIGxlc3MgdmFsdWFibGUgdGhhbiBteSB0aW1lIiBhbmQgbWlnaHQgbm90IGJlCisgICAgd2VsY29tZS48L2xpPgorPC91bD48cD5PZiBjb3Vyc2UsIGJ1Z3MgcmVwb3J0ZWQgd2l0aCBhIHN1Z2dlc3RlZCBwYXRjaCBmb3IgZml4aW5nIHRoZW0gd2lsbAorcHJvYmFibHkgYmUgcHJvY2Vzc2VkIGZhc3RlciB0aGFuIHRob3NlIHdpdGhvdXQuPC9wPjxwPklmIHlvdSdyZSBsb29raW5nIGZvciBoZWxwLCBhIHF1aWNrIGxvb2sgYXQgPGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPnRoZSBsaXN0IGFyY2hpdmU8L2E+IG1heSBhY3R1YWxseQorcHJvdmlkZSB0aGUgYW5zd2VyLiBJIHVzdWFsbHkgc2VuZCBzb3VyY2Ugc2FtcGxlcyB3aGVuIGFuc3dlcmluZyBsaWJ4bWwyCit1c2FnZSBxdWVzdGlvbnMuIFRoZSA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9ib29rMS5odG1sIj5hdXRvLWdlbmVyYXRlZCBkb2N1bWVudGF0aW9uPC9hPiBpcworbm90IGFzIHBvbGlzaGVkIGFzIEkgd291bGQgbGlrZSAoaSBuZWVkIHRvIGxlYXJuIG1vcmUgYWJvdXQgRG9jQm9vayksIGJ1dAoraXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuPC9wPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvY2F0YWxvZy5naWYgYi9saWJ4bWwyLTIuNy43L2RvYy9jYXRhbG9nLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmUyYmQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvY2F0YWxvZy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvY2F0YWxvZy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvY2F0YWxvZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwMmJiYjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9jYXRhbG9nLmh0bWwKQEAgLTAsMCArMSwyNTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+Q2F0YWxvZyBzdXBwb3J0PC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5DYXRhbG9nIHN1cHBvcnQ8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPjxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvY3MuaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPjxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5SZWxlYXNlczwvYT48L2xpPjxsaT48YSBocmVmPSJYTUxpbmZvLmh0bWwiPlhNTDwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPjxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5SZWNlbnQgQ2hhbmdlczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPjxvbD48bGk+PGEgaHJlZj0iR2VuZXJhbDIiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNkZWZpbml0aW9uIj5UaGUgZGVmaW5pdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1NpbXBsZSI+VXNpbmcgY2F0YWxvZ3M8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNTb21lIj5Tb21lIGV4YW1wbGVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjcmVmZXJlbmNlIj5Ib3cgdG8gdHVuZSAgY2F0YWxvZyB1c2FnZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI3ZhbGlkYXRlIj5Ib3cgdG8gZGVidWcgY2F0YWxvZyBwcm9jZXNzaW5nPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjRGVjbGFyaW5nIj5Ib3cgdG8gY3JlYXRlIGFuZCBtYWludGFpbiBjYXRhbG9nczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2ltcGxlbWVudG8iPlRoZSBpbXBsZW1lbnRvciBjb3JuZXIgcXVpY2sgcmV2aWV3IG9mIHRoZQorICBBUEk8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNPdGhlciI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvbGk+Cis8L29sPjxoMz48YSBuYW1lPSJHZW5lcmFsMiIgaWQ9IkdlbmVyYWwyIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDM+PHA+V2hhdCBpcyBhIGNhdGFsb2c/IEJhc2ljYWxseSBpdCdzIGEgbG9va3VwIG1lY2hhbmlzbSB1c2VkIHdoZW4gYW4gZW50aXR5CisoYSBmaWxlIG9yIGEgcmVtb3RlIHJlc291cmNlKSByZWZlcmVuY2VzIGFub3RoZXIgZW50aXR5LiBUaGUgY2F0YWxvZyBsb29rdXAKK2lzIGluc2VydGVkIGJldHdlZW4gdGhlIG1vbWVudCB0aGUgcmVmZXJlbmNlIGlzIHJlY29nbml6ZWQgYnkgdGhlIHNvZnR3YXJlCisoWE1MIHBhcnNlciwgc3R5bGVzaGVldCBwcm9jZXNzaW5nLCBvciBldmVuIGltYWdlcyByZWZlcmVuY2VkIGZvciBpbmNsdXNpb24KK2luIGEgcmVuZGVyaW5nKSBhbmQgdGhlIHRpbWUgd2hlcmUgbG9hZGluZyB0aGF0IHJlc291cmNlIGlzIGFjdHVhbGx5CitzdGFydGVkLjwvcD48cD5JdCBpcyBiYXNpY2FsbHkgdXNlZCBmb3IgMyB0aGluZ3M6PC9wPjx1bD48bGk+bWFwcGluZyBmcm9tICJsb2dpY2FsIiBuYW1lcywgdGhlIHB1YmxpYyBpZGVudGlmaWVycyBhbmQgYSBtb3JlCisgICAgY29uY3JldGUgbmFtZSB1c2FibGUgZm9yIGRvd25sb2FkIChhbmQgVVJJKS4gRm9yIGV4YW1wbGUgaXQgY2FuIGFzc29jaWF0ZQorICAgIHRoZSBsb2dpY2FsIG5hbWUKKyAgICA8cD4iLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIjwvcD4KKyAgICA8cD5vZiB0aGUgRG9jQm9vayA0LjEuMiBYTUwgRFREIHdpdGggdGhlIGFjdHVhbCBVUkwgd2hlcmUgaXQgY2FuIGJlCisgICAgZG93bmxvYWRlZDwvcD4KKyAgICA8cD5odHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZDwvcD4KKyAgPC9saT4KKyAgPGxpPnJlbWFwcGluZyBmcm9tIGEgZ2l2ZW4gVVJMIHRvIGFub3RoZXIgb25lLCBsaWtlIGFuIEhUVFAgaW5kaXJlY3Rpb24KKyAgICBzYXlpbmcgdGhhdAorICAgIDxwPiJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlcy90ci54c2wiPC9wPgorICAgIDxwPnNob3VsZCByZWFsbHkgYmUgbG9va2VkIGF0PC9wPgorICAgIDxwPiJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlcy9lbnRpdHkvc3R5bGVzaGVldHMvYmFzZS90ci54c2wiPC9wPgorICA8L2xpPgorICA8bGk+cHJvdmlkaW5nIGEgbG9jYWwgY2FjaGUgbWVjaGFuaXNtIGFsbG93aW5nIHRvIGxvYWQgdGhlIGVudGl0aWVzCisgICAgYXNzb2NpYXRlZCB0byBwdWJsaWMgaWRlbnRpZmllcnMgb3IgcmVtb3RlIHJlc291cmNlcywgdGhpcyBpcyBhIHJlYWxseQorICAgIGltcG9ydGFudCBmZWF0dXJlIGZvciBhbnkgc2lnbmlmaWNhbnQgZGVwbG95bWVudCBvZiBYTUwgb3IgU0dNTCBzaW5jZSBpdAorICAgIGFsbG93cyB0byBhdm9pZCB0aGUgYWxlYXMgYW5kIGRlbGF5cyBhc3NvY2lhdGVkIHRvIGZldGNoaW5nIHJlbW90ZQorICAgIHJlc291cmNlcy48L2xpPgorPC91bD48aDM+PGEgbmFtZT0iZGVmaW5pdGlvbiIgaWQ9ImRlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uczwvYT48L2gzPjxwPkxpYnhtbCwgYXMgb2YgMi40LjMgaW1wbGVtZW50cyAyIGtpbmQgb2YgY2F0YWxvZ3M6PC9wPjx1bD48bGk+dGhlIG9sZGVyIFNHTUwgY2F0YWxvZ3MsIHRoZSBvZmZpY2lhbCBzcGVjIGlzICBTR01MIE9wZW4gVGVjaG5pY2FsCisgICAgUmVzb2x1dGlvbiBUUjk0MDE6MTk5NywgYnV0IGlzIGJldHRlciB1bmRlcnN0b29kIGJ5IHJlYWRpbmcgPGEgaHJlZj0iaHR0cDovL3d3dy5qY2xhcmsuY29tL3NwL2NhdGFsb2cuaHRtIj50aGUgU1AgQ2F0YWxvZyBwYWdlPC9hPiBmcm9tCisgICAgSmFtZXMgQ2xhcmsuIFRoaXMgaXMgcmVsYXRpdmVseSBvbGQgYW5kIG5vdCB0aGUgcHJlZmVycmVkIG1vZGUgb2YKKyAgICBvcGVyYXRpb24gb2YgbGlieG1sLjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3NwZWMuaHRtbCI+WE1MCisgICAgQ2F0YWxvZ3M8L2E+IGlzIGZhciBtb3JlIGZsZXhpYmxlLCBtb3JlIHJlY2VudCwgdXNlcyBhbiBYTUwgc3ludGF4IGFuZAorICAgIHNob3VsZCBzY2FsZSBxdWl0ZSBiZXR0ZXIuIFRoaXMgaXMgdGhlIGRlZmF1bHQgb3B0aW9uIG9mIGxpYnhtbC48L2xpPgorPC91bD48cD48L3A+PGgzPjxhIG5hbWU9IlNpbXBsZSIgaWQ9IlNpbXBsZSI+VXNpbmcgY2F0YWxvZzwvYT48L2gzPjxwPkluIGEgbm9ybWFsIGVudmlyb25tZW50IGxpYnhtbDIgd2lsbCBieSBkZWZhdWx0IGNoZWNrIHRoZSBwcmVzZW5jZSBvZiBhCitjYXRhbG9nIGluIC9ldGMveG1sL2NhdGFsb2csIGFuZCBhc3N1bWluZyBpdCBoYXMgYmVlbiBjb3JyZWN0bHkgcG9wdWxhdGVkLAordGhlIHByb2Nlc3NpbmcgaXMgY29tcGxldGVseSB0cmFuc3BhcmVudCB0byB0aGUgZG9jdW1lbnQgdXNlci4gVG8gdGFrZSBhCitjb25jcmV0ZSBleGFtcGxlLCBzdXBwb3NlIHlvdSBhcmUgYXV0aG9yaW5nIGEgRG9jQm9vayBkb2N1bWVudCwgdGhpcyBvbmUKK3N0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgRE9DVFlQRSBkZWZpbml0aW9uOjwvcD48cHJlPiZsdDs/eG1sIHZlcnNpb249JzEuMCc/Jmd0OworJmx0OyFET0NUWVBFIGJvb2sgUFVCTElDICItLy9Ob3JtYW4gV2Fsc2gvL0RURCBEb2NCayBYTUwgVjMuMS40Ly9FTiIKKyAgICAgICAgICAiaHR0cDovL253YWxzaC5jb20vZG9jYm9vay94bWwvMy4xLjQvZGIzeG1sLmR0ZCImZ3Q7PC9wcmU+PHA+V2hlbiB2YWxpZGF0aW5nIHRoZSBkb2N1bWVudCB3aXRoIGxpYnhtbCwgdGhlIGNhdGFsb2cgd2lsbCBiZQorYXV0b21hdGljYWxseSBjb25zdWx0ZWQgdG8gbG9va3VwIHRoZSBwdWJsaWMgaWRlbnRpZmllciAiLS8vTm9ybWFuIFdhbHNoLy9EVEQKK0RvY0JrIFhNTCBWMy4xLjQvL0VOIiBhbmQgdGhlIHN5c3RlbSBpZGVudGlmaWVyCisiaHR0cDovL253YWxzaC5jb20vZG9jYm9vay94bWwvMy4xLjQvZGIzeG1sLmR0ZCIsIGFuZCBpZiB0aGVzZSBlbnRpdGllcyBoYXZlCitiZWVuIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSBhbmQgdGhlIGNhdGFsb2dzIGFjdHVhbGx5IHBvaW50IHRvIHRoZW0sIGxpYnhtbAord2lsbCBmZXRjaCB0aGVtIGZyb20gdGhlIGxvY2FsIGRpc2suPC9wPjxwIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogUmVhbGx5IGRvbid0IHVzZSB0aGlzCitET0NUWVBFIGV4YW1wbGUgaXQncyBhIHJlYWxseSBvbGQgdmVyc2lvbiwgYnV0IGlzIGZpbmUgYXMgYW4gZXhhbXBsZS48L3A+PHA+TGlieG1sMiB3aWxsIGNoZWNrIHRoZSBjYXRhbG9nIGVhY2ggdGltZSB0aGF0IGl0IGlzIHJlcXVlc3RlZCB0byBsb2FkIGFuCitlbnRpdHksIHRoaXMgaW5jbHVkZXMgRFRELCBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMsIHN0eWxlc2hlZXRzLCBldGMgLi4uIElmCit5b3VyIHN5c3RlbSBpcyBjb3JyZWN0bHkgY29uZmlndXJlZCBhbGwgdGhlIGF1dGhvcmluZyBwaGFzZSBhbmQgcHJvY2Vzc2luZworc2hvdWxkIHVzZSBvbmx5IGxvY2FsIGZpbGVzLCBldmVuIGlmIHlvdXIgZG9jdW1lbnQgc3RheXMgcG9ydGFibGUgYmVjYXVzZSBpdAordXNlcyB0aGUgY2Fub25pY2FsIHB1YmxpYyBhbmQgc3lzdGVtIElELCByZWZlcmVuY2luZyB0aGUgcmVtb3RlIGRvY3VtZW50LjwvcD48aDM+PGEgbmFtZT0iU29tZSIgaWQ9IlNvbWUiPlNvbWUgZXhhbXBsZXM6PC9hPjwvaDM+PHA+SGVyZSBpcyBhIGNvdXBsZSBvZiBmcmFnbWVudHMgZnJvbSBYTUwgQ2F0YWxvZ3MgdXNlZCBpbiBsaWJ4bWwyIGVhcmx5CityZWdyZXNzaW9uIHRlc3RzIGluIDxjb2RlPnRlc3QvY2F0YWxvZ3M8L2NvZGU+IDo8L3A+PHByZT4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKKyZsdDshRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAKKyAgICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIgorICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OworJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciJmd0OworICAmbHQ7cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCisgICB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIi8mZ3Q7CisuLi48L3ByZT48cD5UaGlzIGlzIHRoZSBiZWdpbm5pbmcgb2YgYSBjYXRhbG9nIGZvciBEb2NCb29rIDQuMS4yLCBYTUwgQ2F0YWxvZ3MgYXJlCit3cml0dGVuIGluIFhNTCwgIHRoZXJlIGlzIGEgc3BlY2lmaWMgbmFtZXNwYWNlIGZvciBjYXRhbG9nIGVsZW1lbnRzCisidXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyIuIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGlzCitjYXRhbG9nIGlzIGEgPGNvZGU+cHVibGljPC9jb2RlPiBtYXBwaW5nIGl0IGFsbG93cyB0byBhc3NvY2lhdGUgYSBQdWJsaWMKK0lkZW50aWZpZXIgd2l0aCBhbiBVUkkuPC9wPjxwcmU+Li4uCisgICAgJmx0O3Jld3JpdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKKyAgICAgICAgICAgICAgICAgICByZXdyaXRlUHJlZml4PSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay8iLyZndDsKKy4uLjwvcHJlPjxwPkEgPGNvZGU+cmV3cml0ZVN5c3RlbTwvY29kZT4gaXMgYSB2ZXJ5IHBvd2VyZnVsIGluc3RydWN0aW9uLCBpdCBzYXlzIHRoYXQKK2FueSBVUkkgc3RhcnRpbmcgd2l0aCBhIGdpdmVuIHByZWZpeCBzaG91bGQgYmUgbG9va2VkIGF0IGFub3RoZXIgIFVSSQorY29uc3RydWN0ZWQgYnkgcmVwbGFjaW5nIHRoZSBwcmVmaXggd2l0aCBhbiBuZXcgb25lLiBJbiBlZmZlY3QgdGhpcyBhY3RzIGxpa2UKK2EgY2FjaGUgc3lzdGVtIGZvciBhIGZ1bGwgYXJlYSBvZiB0aGUgV2ViLiBJbiBwcmFjdGljZSBpdCBpcyBleHRyZW1lbHkgdXNlZnVsCit3aXRoIGEgZmlsZSBwcmVmaXggaWYgeW91IGhhdmUgaW5zdGFsbGVkIGEgY29weSBvZiB0aG9zZSByZXNvdXJjZXMgb24geW91cgorbG9jYWwgc3lzdGVtLjwvcD48cHJlPi4uLgorJmx0O2RlbGVnYXRlUHVibGljIHB1YmxpY0lkU3RhcnRTdHJpbmc9Ii0vL09BU0lTLy9EVEQgWE1MIENhdGFsb2cgLy8iCisgICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sIi8mZ3Q7CismbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0iLS8vT0FTSVMvL0VOVElUSUVTIERvY0Jvb2sgWE1MIgorICAgICAgICAgICAgICAgIGNhdGFsb2c9ImZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbCIvJmd0OworJmx0O2RlbGVnYXRlUHVibGljIHB1YmxpY0lkU3RhcnRTdHJpbmc9Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwiCisgICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sIi8mZ3Q7CismbHQ7ZGVsZWdhdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKKyZsdDtkZWxlZ2F0ZVVSSSB1cmlTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKKy4uLjwvcHJlPjxwPkRlbGVnYXRpb24gaXMgdGhlIGNvcmUgZmVhdHVyZXMgd2hpY2ggYWxsb3dzIHRvIGJ1aWxkIGEgdHJlZSBvZiBjYXRhbG9ncywKK2Vhc2llciB0byBtYWludGFpbiB0aGFuIGEgc2luZ2xlIGNhdGFsb2csIGJhc2VkIG9uIFB1YmxpYyBJZGVudGlmaWVyLCBTeXN0ZW0KK0lkZW50aWZpZXIgb3IgVVJJIHByZWZpeGVzIGl0IGluc3RydWN0cyB0aGUgY2F0YWxvZyBzb2Z0d2FyZSB0byBsb29rIHVwCitlbnRyaWVzIGluIGFub3RoZXIgcmVzb3VyY2UuIFRoaXMgZmVhdHVyZSBhbGxvdyB0byBidWlsZCBoaWVyYXJjaGllcyBvZgorY2F0YWxvZ3MsIHRoZSBzZXQgb2YgZW50cmllcyBwcmVzZW50ZWQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gcmVkaXJlY3QgdGhlCityZXNvbHV0aW9uIG9mIGFsbCBEb2NCb29rIHJlZmVyZW5jZXMgdG8gdGhlIHNwZWNpZmljIGNhdGFsb2cgaW4KKzxjb2RlPi91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sPC9jb2RlPiB0aGlzIG9uZSBpbiB0dXJuIGNvdWxkIGRlbGVnYXRlIGFsbAorcmVmZXJlbmNlcyBmb3IgRG9jQm9vayA0LjIuMSB0byBhIHNwZWNpZmljIGNhdGFsb2cgaW5zdGFsbGVkIGF0IHRoZSBzYW1lIHRpbWUKK2FzIHRoZSBEb2NCb29rIHJlc291cmNlcyBvbiB0aGUgbG9jYWwgbWFjaGluZS48L3A+PGgzPjxhIG5hbWU9InJlZmVyZW5jZSIgaWQ9InJlZmVyZW5jZSI+SG93IHRvIHR1bmUgY2F0YWxvZyB1c2FnZTo8L2E+PC9oMz48cD5UaGUgdXNlciBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IGNhdGFsb2cgYmVoYXZpb3VyIGJ5IHJlZGlyZWN0aW5nIHF1ZXJpZXMKK3RvIGl0cyBvd24gc2V0IG9mIGNhdGFsb2dzLCB0aGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCis8Y29kZT5YTUxfQ0FUQUxPR19GSUxFUzwvY29kZT4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSBsaXN0IG9mIGNhdGFsb2dzLCBhbgorZW1wdHkgb25lIHNob3VsZCBkZWFjdGl2YXRlIGxvYWRpbmcgdGhlIGRlZmF1bHQgPGNvZGU+L2V0Yy94bWwvY2F0YWxvZzwvY29kZT4KK2RlZmF1bHQgY2F0YWxvZzwvcD48aDM+PGEgbmFtZT0idmFsaWRhdGUiIGlkPSJ2YWxpZGF0ZSI+SG93IHRvIGRlYnVnIGNhdGFsb2cgcHJvY2Vzc2luZzo8L2E+PC9oMz48cD5TZXR0aW5nIHVwIHRoZSA8Y29kZT5YTUxfREVCVUdfQ0FUQUxPRzwvY29kZT4gZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbAorbWFrZSBsaWJ4bWwyIG91dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9yIGVhY2ggY2F0YWxvZyBvcGVyYXRpb25zLCBmb3IKK2V4YW1wbGU6PC9wPjxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IHhtbGxpbnQgLS1tZW1vcnkgLS1ub291dCB0ZXN0L2VudDIKK3dhcm5pbmc6IGZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSAidGl0bGUueG1sIgorb3JjaGlzOn4vWE1MIC0mZ3Q7IGV4cG9ydCBYTUxfREVCVUdfQ0FUQUxPRz0KK29yY2hpczp+L1hNTCAtJmd0OyB4bWxsaW50IC0tbWVtb3J5IC0tbm9vdXQgdGVzdC9lbnQyCitGYWlsZWQgdG8gcGFyc2UgY2F0YWxvZyAvZXRjL3htbC9jYXRhbG9nCitGYWlsZWQgdG8gcGFyc2UgY2F0YWxvZyAvZXRjL3htbC9jYXRhbG9nCit3YXJuaW5nOiBmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHkgInRpdGxlLnhtbCIKK0NhdGFsb2dzIGNsZWFudXAKK29yY2hpczp+L1hNTCAtJmd0OyA8L3ByZT48cD5UaGUgdGVzdC9lbnQyIHJlZmVyZW5jZXMgYW4gZW50aXR5LCBydW5uaW5nIHRoZSBwYXJzZXIgZnJvbSBtZW1vcnkgbWFrZXMKK3RoZSBiYXNlIFVSSSB1bmF2YWlsYWJsZSBhbmQgdGhlIHRoZSAidGl0bGUueG1sIiBlbnRpdHkgY2Fubm90IGJlIGxvYWRlZC4KK1NldHRpbmcgdXAgdGhlIGRlYnVnIGVudmlyb25tZW50IHZhcmlhYmxlIGFsbG93cyB0byBkZXRlY3QgdGhhdCBhbiBhdHRlbXB0IGlzCittYWRlIHRvIGxvYWQgdGhlIDxjb2RlPi9ldGMveG1sL2NhdGFsb2c8L2NvZGU+IGJ1dCBzaW5jZSBpdCdzIG5vdCBwcmVzZW50IHRoZQorcmVzb2x1dGlvbiBmYWlscy48L3A+PHA+QnV0IHRoZSBtb3N0IGFkdmFuY2VkIHdheSB0byBkZWJ1ZyBYTUwgY2F0YWxvZyBwcm9jZXNzaW5nIGlzIHRvIHVzZSB0aGUKKzxzdHJvbmc+eG1sY2F0YWxvZzwvc3Ryb25nPiBjb21tYW5kIHNoaXBwZWQgd2l0aCBsaWJ4bWwyLCBpdCBhbGxvd3MgdG8gbG9hZAorY2F0YWxvZ3MgYW5kIG1ha2UgcmVzb2x1dGlvbiBxdWVyaWVzIHRvIHNlZSB3aGF0IGlzIGdvaW5nIG9uLiBUaGlzIGlzIGFsc28KK3VzZWQgZm9yIHRoZSByZWdyZXNzaW9uIHRlc3RzOjwvcD48cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCBcCisgICAgICAgICAgICAgICAgICAgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKK2h0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+PHA+Rm9yIGRlYnVnZ2luZyB3aGF0IGlzIGdvaW5nIG9uLCBhZGRpbmcgb25lIC12IGZsYWdzIGluY3JlYXNlIHRoZSB2ZXJib3NpdHkKK2xldmVsIHRvIGluZGljYXRlIHRoZSBwcm9jZXNzaW5nIGRvbmUgKGFkZGluZyBhIHNlY29uZCBmbGFnIGFsc28gaW5kaWNhdGUKK3doYXQgZWxlbWVudHMgYXJlIHJlY29nbml6ZWQgYXQgcGFyc2luZyk6PC9wPjxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtdiB0ZXN0L2NhdGFsb2dzL2RvY2Jvb2sueG1sIFwKKyAgICAgICAgICAgICAgICAgICAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgorUGFyc2luZyBjYXRhbG9nIHRlc3QvY2F0YWxvZ3MvZG9jYm9vay54bWwncyBjb250ZW50CitGb3VuZCBwdWJsaWMgbWF0Y2ggLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOCitodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorQ2F0YWxvZ3MgY2xlYW51cAorb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPjxwPkEgc2hlbGwgaW50ZXJmYWNlIGlzIGFsc28gYXZhaWxhYmxlIHRvIGRlYnVnIGFuZCBwcm9jZXNzIG11bHRpcGxlIHF1ZXJpZXMKKyhhbmQgZm9yIHJlZ3Jlc3Npb24gdGVzdHMpOjwvcD48cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLXNoZWxsIHRlc3QvY2F0YWxvZ3MvZG9jYm9vay54bWwgXAorICAgICAgICAgICAgICAgICAgICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCismZ3Q7IGhlbHAgICAKK0NvbW1hbmRzIGF2YWlsYWJsZToKK3B1YmxpYyBQdWJsaWNJRDogbWFrZSBhIFBVQkxJQyBpZGVudGlmaWVyIGxvb2t1cAorc3lzdGVtIFN5c3RlbUlEOiBtYWtlIGEgU1lTVEVNIGlkZW50aWZpZXIgbG9va3VwCityZXNvbHZlIFB1YmxpY0lEIFN5c3RlbUlEOiBkbyBhIGZ1bGwgcmVzb2x2ZXIgbG9va3VwCithZGQgJ3R5cGUnICdvcmlnJyAncmVwbGFjZScgOiBhZGQgYW4gZW50cnkKK2RlbCAndmFsdWVzJyA6IHJlbW92ZSB2YWx1ZXMKK2R1bXA6IHByaW50IHRoZSBjdXJyZW50IGNhdGFsb2cgc3RhdGUKK2RlYnVnOiBpbmNyZWFzZSB0aGUgdmVyYm9zaXR5IGxldmVsCitxdWlldDogZGVjcmVhc2UgdGhlIHZlcmJvc2l0eSBsZXZlbAorZXhpdDogIHF1aXQgdGhlIHNoZWxsCismZ3Q7IHB1YmxpYyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgoraHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQKKyZndDsgcXVpdAorb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPjxwPlRoaXMgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIG1vc3QgZGVidWdnaW5nIHB1cnBvc2UsIHRoaXMgd2FzIGFjdHVhbGx5Cit1c2VkIGhlYXZpbHkgdG8gZGVidWcgdGhlIFhNTCBDYXRhbG9nIGltcGxlbWVudGF0aW9uIGl0c2VsZi48L3A+PGgzPjxhIG5hbWU9IkRlY2xhcmluZyIgaWQ9IkRlY2xhcmluZyI+SG93IHRvIGNyZWF0ZSBhbmQgbWFpbnRhaW48L2E+IGNhdGFsb2dzOjwvaDM+PHA+QmFzaWNhbGx5IFhNTCBDYXRhbG9ncyBhcmUgWE1MIGZpbGVzLCB5b3UgY2FuIGVpdGhlciB1c2UgWE1MIHRvb2xzIHRvCittYW5hZ2UgdGhlbSBvciB1c2UgIDxzdHJvbmc+eG1sY2F0YWxvZzwvc3Ryb25nPiBmb3IgdGhpcy4gVGhlIGJhc2ljIHN0ZXAgaXMKK3RvIGNyZWF0ZSBhIGNhdGFsb2cgdGhlIC1jcmVhdGUgb3B0aW9uIHByb3ZpZGUgdGhpcyBmYWNpbGl0eTo8L3A+PHByZT5vcmNoaXM6fi9YTUwgLSZndDsgLi94bWxjYXRhbG9nIC0tY3JlYXRlIHRzdC54bWwKKyZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0OyFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIgorICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OworJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciLyZndDsKK29yY2hpczp+L1hNTCAtJmd0OyA8L3ByZT48cD5CeSBkZWZhdWx0IHhtbGNhdGFsb2cgZG9lcyBub3Qgb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBjYXRhbG9nIGFuZCBzYXZlIHRoZQorcmVzdWx0IG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQsIHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgdGhlIC1ub291dAorb3B0aW9uLiBUaGUgPGNvZGU+LWFkZDwvY29kZT4gY29tbWFuZCBhbGxvd3MgdG8gYWRkIGVudHJpZXMgaW4gdGhlCitjYXRhbG9nOjwvcD48cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLS1ub291dCAtLWNyZWF0ZSAtLWFkZCAicHVibGljIiBcCisgICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iIFwKKyAgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQgdHN0LnhtbAorb3JjaGlzOn4vWE1MIC0mZ3Q7IGNhdCB0c3QueG1sCismbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKKyZsdDshRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiIgXAorICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCImZ3Q7CismbHQ7Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyImZ3Q7CismbHQ7cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCisgICAgICAgIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiLyZndDsKKyZsdDsvY2F0YWxvZyZndDsKK29yY2hpczp+L1hNTCAtJmd0OyA8L3ByZT48cD5UaGUgPGNvZGU+LWFkZDwvY29kZT4gb3B0aW9uIHdpbGwgYWx3YXlzIHRha2UgMyBwYXJhbWV0ZXJzIGV2ZW4gaWYgc29tZSBvZgordGhlIFhNTCBDYXRhbG9nIGNvbnN0cnVjdHMgKGxpa2UgbmV4dENhdGFsb2cpIHdpbGwgaGF2ZSBvbmx5IGEgc2luZ2xlCithcmd1bWVudCwganVzdCBwYXNzIGEgdGhpcmQgZW1wdHkgc3RyaW5nLCBpdCB3aWxsIGJlIGlnbm9yZWQuPC9wPjxwPlNpbWlsYXJseSB0aGUgPGNvZGU+LWRlbDwvY29kZT4gb3B0aW9uIHJlbW92ZSBtYXRjaGluZyBlbnRyaWVzIGZyb20gdGhlCitjYXRhbG9nOjwvcD48cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLS1kZWwgXAorICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiIHRzdC54bWwKKyZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0OyFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIgorICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3JlbGVhc2UvMS4wL2NhdGFsb2cuZHRkIiZndDsKKyZsdDtjYXRhbG9nIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nIi8mZ3Q7CitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+PHA+VGhlIGNhdGFsb2cgaXMgbm93IGVtcHR5LiBOb3RlIHRoYXQgdGhlIG1hdGNoaW5nIG9mIDxjb2RlPi1kZWw8L2NvZGU+IGlzCitleGFjdCBhbmQgd291bGQgaGF2ZSB3b3JrZWQgaW4gYSBzaW1pbGFyIGZhc2hpb24gd2l0aCB0aGUgUHVibGljIElECitzdHJpbmcuPC9wPjxwPlRoaXMgaXMgcnVkaW1lbnRhcnkgYnV0IHNob3VsZCBiZSBzdWZmaWNpZW50IHRvIG1hbmFnZSBhIG5vdCB0b28gY29tcGxleAorY2F0YWxvZyB0cmVlIG9mIHJlc291cmNlcy48L3A+PGgzPjxhIG5hbWU9ImltcGxlbWVudG8iIGlkPSJpbXBsZW1lbnRvIj5UaGUgaW1wbGVtZW50b3IgY29ybmVyIHF1aWNrIHJldmlldyBvZiB0aGUKK0FQSTo8L2E+PC9oMz48cD5GaXJzdCwgYW5kIGxpa2UgZm9yIGV2ZXJ5IG90aGVyIG1vZHVsZSBvZiBsaWJ4bWwsIHRoZXJlIGlzIGFuCithdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCA8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwiPkFQSSBwYWdlIGZvcgorY2F0YWxvZyBzdXBwb3J0PC9hPi48L3A+PHA+VGhlIGhlYWRlciBmb3IgdGhlIGNhdGFsb2cgaW50ZXJmYWNlcyBzaG91bGQgYmUgaW5jbHVkZWQgYXM6PC9wPjxwcmU+I2luY2x1ZGUgJmx0O2xpYnhtbC9jYXRhbG9nLmgmZ3Q7PC9wcmU+PHA+VGhlIEFQSSBpcyB2b2x1bnRhcmlseSBrZXB0IHZlcnkgc2ltcGxlLiBGaXJzdCBpdCBpcyBub3Qgb2J2aW91cyB0aGF0CithcHBsaWNhdGlvbnMgcmVhbGx5IG5lZWQgYWNjZXNzIHRvIGl0IHNpbmNlIGl0IGlzIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZgorbGlieG1sMiAoTm90ZTogaXQgaXMgcG9zc2libGUgdG8gY29tcGxldGVseSBvdmVycmlkZSBsaWJ4bWwyIGRlZmF1bHQgY2F0YWxvZworYnkgdXNpbmcgPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPiB0bworcGx1ZyBhbiBhcHBsaWNhdGlvbiBzcGVjaWZpYyByZXNvbHZlcikuPC9wPjxwPkJhc2ljYWxseSBsaWJ4bWwyIHN1cHBvcnQgMiBjYXRhbG9nIGxpc3RzOjwvcD48dWw+PGxpPnRoZSBkZWZhdWx0IG9uZSwgZ2xvYmFsIHNoYXJlZCBieSBhbGwgdGhlIGFwcGxpY2F0aW9uPC9saT4KKyAgPGxpPmEgcGVyLWRvY3VtZW50IGNhdGFsb2csIHRoaXMgb25lIGlzIGJ1aWx0IGlmIHRoZSBkb2N1bWVudCB1c2VzIHRoZQorICAgIDxjb2RlPm9hc2lzLXhtbC1jYXRhbG9nPC9jb2RlPiBQSXMgdG8gc3BlY2lmeSBpdHMgb3duIGNhdGFsb2cgbGlzdCwgaXQgaXMKKyAgICBhc3NvY2lhdGVkIHRvIHRoZSBwYXJzZXIgY29udGV4dCBhbmQgZGVzdHJveWVkIHdoZW4gdGhlIHBhcnNpbmcgY29udGV4dAorICAgIGlzIGRlc3Ryb3llZC48L2xpPgorPC91bD48cD50aGUgZG9jdW1lbnQgb25lIHdpbGwgYmUgdXNlZCBmaXJzdCBpZiBpdCBleGlzdHMuPC9wPjxoND5Jbml0aWFsaXphdGlvbiByb3V0aW5lczo8L2g0PjxwPnhtbEluaXRpYWxpemVDYXRhbG9nKCksIHhtbExvYWRDYXRhbG9nKCkgYW5kIHhtbExvYWRDYXRhbG9ncygpIHNob3VsZCBiZQordXNlZCBhdCBzdGFydHVwIHRvIGluaXRpYWxpemUgdGhlIGNhdGFsb2csIGlmIHRoZSBjYXRhbG9nIHNob3VsZCBiZQoraW5pdGlhbGl6ZWQgd2l0aCBzcGVjaWZpYyB2YWx1ZXMgeG1sTG9hZENhdGFsb2coKSAgb3IgeG1sTG9hZENhdGFsb2dzKCkKK3Nob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHhtbEluaXRpYWxpemVDYXRhbG9nKCkgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGRvIGEKK2RlZmF1bHQgaW5pdGlhbGl6YXRpb24gZmlyc3QuPC9wPjxwPlRoZSB4bWxDYXRhbG9nQWRkTG9jYWwoKSBjYWxsIGlzIHVzZWQgYnkgdGhlIHBhcnNlciB0byBncm93IHRoZSBkb2N1bWVudAorb3duIGNhdGFsb2cgbGlzdCBpZiBuZWVkZWQuPC9wPjxoND5QcmVmZXJlbmNlcyBzZXR1cDo8L2g0PjxwPlRoZSBYTUwgQ2F0YWxvZyBzcGVjIHJlcXVpcmVzIHRoZSBwb3NzaWJpbGl0eSB0byBzZWxlY3QgZGVmYXVsdAorcHJlZmVyZW5jZXMgYmV0d2VlbiAgcHVibGljIGFuZCBzeXN0ZW0gZGVsZWdhdGlvbiwKK3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyKCkgYWxsb3dzIHRoaXMsIHhtbENhdGFsb2dTZXREZWZhdWx0cygpIGFuZAoreG1sQ2F0YWxvZ0dldERlZmF1bHRzKCkgYWxsb3cgdG8gY29udHJvbCAgaWYgWE1MIENhdGFsb2dzIHJlc29sdXRpb24gc2hvdWxkCitiZSBmb3JiaWRkZW4sIGFsbG93ZWQgZm9yIGdsb2JhbCBjYXRhbG9nLCBmb3IgZG9jdW1lbnQgY2F0YWxvZyBvciBib3RoLCB0aGUKK2RlZmF1bHQgaXMgdG8gYWxsb3cgYm90aC48L3A+PHA+QW5kIG9mIGNvdXJzZSB4bWxDYXRhbG9nU2V0RGVidWcoKSBhbGxvd3MgdG8gZ2VuZXJhdGUgZGVidWcgbWVzc2FnZXMKKyh0aHJvdWdoIHRoZSB4bWxHZW5lcmljRXJyb3IoKSBtZWNoYW5pc20pLjwvcD48aDQ+UXVlcnlpbmcgcm91dGluZXM6PC9oND48cD54bWxDYXRhbG9nUmVzb2x2ZSgpLCB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSgpLCB4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYygpCithbmQgeG1sQ2F0YWxvZ1Jlc29sdmVVUkkoKSBhcmUgcmVsYXRpdmVseSBleHBsaWNpdCBpZiB5b3UgcmVhZCB0aGUgWE1MCitDYXRhbG9nIHNwZWNpZmljYXRpb24gdGhleSBjb3JyZXNwb25kIHRvIHNlY3Rpb24gNyBhbGdvcml0aG1zLCB0aGV5IHNob3VsZAorYWxzbyB3b3JrIGlmIHlvdSBoYXZlIGxvYWRlZCBhbiBTR01MIGNhdGFsb2cgd2l0aCBhIHNpbXBsaWZpZWQgc2VtYW50aWMuPC9wPjxwPnhtbENhdGFsb2dMb2NhbFJlc29sdmUoKSBhbmQgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSgpIGFyZSB0aGUgc2FtZSBidXQKK29wZXJhdGUgb24gdGhlIGRvY3VtZW50IGNhdGFsb2cgbGlzdDwvcD48aDQ+Q2xlYW51cCBhbmQgTWlzY2VsbGFuZW91czo8L2g0PjxwPnhtbENhdGFsb2dDbGVhbnVwKCkgZnJlZS11cCB0aGUgZ2xvYmFsIGNhdGFsb2csIHhtbENhdGFsb2dGcmVlTG9jYWwoKSBpcwordGhlIHBlci1kb2N1bWVudCBlcXVpdmFsZW50LjwvcD48cD54bWxDYXRhbG9nQWRkKCkgYW5kIHhtbENhdGFsb2dSZW1vdmUoKSBhcmUgdXNlZCB0byBkeW5hbWljYWxseSBtb2RpZnkgdGhlCitmaXJzdCBjYXRhbG9nIGluIHRoZSBnbG9iYWwgbGlzdCwgYW5kIHhtbENhdGFsb2dEdW1wKCkgYWxsb3dzIHRvIGR1bXAgYQorY2F0YWxvZyBzdGF0ZSwgdGhvc2Ugcm91dGluZXMgYXJlIHByaW1hcmlseSBkZXNpZ25lZCBmb3IgeG1sY2F0YWxvZywgSSdtIG5vdAorc3VyZSB0aGF0IGV4cG9zaW5nIG1vcmUgY29tcGxleCBpbnRlcmZhY2VzIChsaWtlIG5hdmlnYXRpb24gb25lcykgd291bGQgYmUKK3JlYWxseSB1c2VmdWwuPC9wPjxwPlRoZSB4bWxQYXJzZUNhdGFsb2dGaWxlKCkgaXMgYSBmdW5jdGlvbiB1c2VkIHRvIGxvYWQgWE1MIENhdGFsb2cgZmlsZXMsCitpdCdzIHNpbWlsYXIgYXMgeG1sUGFyc2VGaWxlKCkgZXhjZXB0IGl0IGJ5cGFzcyBhbGwgY2F0YWxvZyBsb29rdXBzLCBpdCdzCitwcm92aWRlZCBiZWNhdXNlIHRoaXMgZnVuY3Rpb25hbGl0eSBtYXkgYmUgdXNlZnVsIGZvciBjbGllbnQgdG9vbHMuPC9wPjxoND50aHJlYWRlZCBlbnZpcm9ubWVudHM6PC9oND48cD5TaW5jZSB0aGUgY2F0YWxvZyB0cmVlIGlzIGJ1aWx0IHByb2dyZXNzaXZlbHksIHNvbWUgY2FyZSBoYXMgYmVlbiB0YWtlbiB0bwordHJ5IHRvIGF2b2lkIHRyb3VibGVzIGluIG11bHRpdGhyZWFkZWQgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBpcyBub3cgdGhyZWFkCitzYWZlIGFzc3VtaW5nIHRoYXQgdGhlIGxpYnhtbDIgbGlicmFyeSBoYXMgYmVlbiBjb21waWxlZCB3aXRoIHRocmVhZHMKK3N1cHBvcnQuPC9wPjxwPjwvcD48aDM+PGEgbmFtZT0iT3RoZXIiIGlkPSJPdGhlciI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvaDM+PHA+VGhlIFhNTCBDYXRhbG9nIHNwZWNpZmljYXRpb24gaXMgcmVsYXRpdmVseSByZWNlbnQgc28gdGhlcmUgaXNuJ3QgbXVjaAorbGl0ZXJhdHVyZSB0byBwb2ludCBhdDo8L3A+PHVsPjxsaT5Zb3UgY2FuIGZpbmQgYSBnb29kIHJhbnQgZnJvbSBOb3JtIFdhbHNoIGFib3V0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXJib3J0ZXh0LmNvbS9UaGlua19UYW5rL1hNTF9SZXNvdXJjZXMvSXNzdWVfVGhyZWUvaXNzdWVfdGhyZWUuaHRtbCI+dGhlCisgICAgbmVlZCBmb3IgY2F0YWxvZ3M8L2E+LCBpdCBwcm92aWRlcyBhIGxvdCBvZiBjb250ZXh0IGluZm9ybWF0aW9uIGV2ZW4gaWYKKyAgICBJIGRvbid0IGFncmVlIHdpdGggZXZlcnl0aGluZyBwcmVzZW50ZWQuIE5vcm0gYWxzbyB3cm90ZSBhIG1vcmUgcmVjZW50CisgICAgYXJ0aWNsZSA8YSBocmVmPSJodHRwOi8vd3d3cy5zdW4uY29tL3NvZnR3YXJlL3htbC9kZXZlbG9wZXJzL3Jlc29sdmVyL2FydGljbGUvIj5YTUwKKyAgICBlbnRpdGllcyBhbmQgVVJJIHJlc29sdmVyczwvYT4gZGVzY3JpYmluZyB0aGVtLjwvbGk+CisgIDxsaT5BbiA8YSBocmVmPSJodHRwOi8vaG9tZS5jY2lsLm9yZy9+Y293YW4vWE1ML1hDYXRhbG9nLmh0bWwiPm9sZCBYTUwKKyAgICBjYXRhbG9nIHByb3Bvc2FsPC9hPiBmcm9tIEpvaG4gQ293YW48L2xpPgorICA8bGk+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cucmRkbC5vcmcvIj5SZXNvdXJjZSBEaXJlY3RvcnkgRGVzY3JpcHRpb24KKyAgICBMYW5ndWFnZTwvYT4gKFJEREwpIGFub3RoZXIgY2F0YWxvZyBzeXN0ZW0gYnV0IG1vcmUgb3JpZW50ZWQgdG93YXJkCisgICAgcHJvdmlkaW5nIG1ldGFkYXRhIGZvciBYTUwgbmFtZXNwYWNlcy48L2xpPgorICA8bGk+dGhlIHBhZ2UgZnJvbSB0aGUgT0FTSVMgVGVjaG5pY2FsIDxhIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvIj5Db21taXR0ZWUgb24gRW50aXR5CisgICAgUmVzb2x1dGlvbjwvYT4gd2hvIG1haW50YWlucyBYTUwgQ2F0YWxvZywgeW91IHdpbGwgZmluZCBwb2ludGVycyB0byB0aGUKKyAgICBzcGVjaWZpY2F0aW9uIHVwZGF0ZSwgc29tZSBiYWNrZ3JvdW5kIGFuZCBwb2ludGVycyB0byBvdGhlcnMgdG9vbHMKKyAgICBwcm92aWRpbmcgWE1MIENhdGFsb2cgc3VwcG9ydDwvbGk+CisgIDxsaT5UaGVyZSBpcyBhIDxhIGhyZWY9ImJ1aWxkRG9jQm9va0NhdGFsb2ciPnNoZWxsIHNjcmlwdDwvYT4gdG8gZ2VuZXJhdGUKKyAgICBYTUwgQ2F0YWxvZ3MgZm9yIERvY0Jvb2sgNC4xLjIgLiBJZiBpdCBjYW4gd3JpdGUgdG8gdGhlIC9ldGMveG1sLworICAgIGRpcmVjdG9yeSwgaXQgd2lsbCBzZXQtdXAgL2V0Yy94bWwvY2F0YWxvZyBhbmQgL2V0Yy94bWwvZG9jYm9vayBiYXNlZCBvbgorICAgIHRoZSByZXNvdXJjZXMgZm91bmQgb24gdGhlIHN5c3RlbS4gT3RoZXJ3aXNlIGl0IHdpbGwganVzdCBjcmVhdGUKKyAgICB+L3htbGNhdGFsb2cgYW5kIH4vZGJreG1sY2F0YWxvZyBhbmQgZG9pbmc6CisgICAgPHA+PGNvZGU+ZXhwb3J0IFhNTF9DQVRBTE9HX0ZJTEVTPSRIT01FL3htbGNhdGFsb2c8L2NvZGU+PC9wPgorICAgIDxwPnNob3VsZCBhbGxvdyB0byBwcm9jZXNzIERvY0Jvb2sgZG9jdW1lbnRhdGlvbnMgd2l0aG91dCByZXF1aXJpbmcKKyAgICBuZXR3b3JrIGFjY2Vzc2VzIGZvciB0aGUgRFREIG9yIHN0eWxlc2hlZXRzPC9wPgorICA8L2xpPgorICA8bGk+SSBoYXZlIHVwbG9hZGVkIDxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvdGVzdC9kYms0MTJjYXRhbG9nLnRhci5neiI+YQorICAgIHNtYWxsIHRhcmJhbGw8L2E+IGNvbnRhaW5pbmcgWE1MIENhdGFsb2dzIGZvciBEb2NCb29rIDQuMS4yIHdoaWNoIHNlZW1zCisgICAgdG8gd29yayBmaW5lIGZvciBtZSB0b288L2xpPgorICA8bGk+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cueG1sc29mdC5vcmcveG1sY2F0YWxvZ19tYW4uaHRtbCI+eG1sY2F0YWxvZworICAgIG1hbnVhbCBwYWdlPC9hPjwvbGk+Cis8L3VsPjxwPklmIHlvdSBoYXZlIHN1Z2dlc3Rpb25zIGZvciBjb3JyZWN0aW9ucyBvciBhZGRpdGlvbnMsIHNpbXBseSBjb250YWN0CittZTo8L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9jaGVja2FwaXN5bS54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy9jaGVja2FwaXN5bS54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU5MTM5MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2NoZWNrYXBpc3ltLnhzbApAQCAtMCwwICsxLDQ4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0gVGhpcyBzdHlsZXNoZWV0IGlzIHVzZWQgdG8gY2hlY2sgdGhhdCBzeW1ib2xzIGV4cG9ydGVkCisgICAgIGZyb20gbGlieG1sMi1hcGkueG1sIGFyZSBhbHNvIHByZXNlbnQgaW4gdGhlIHN5bWJvbCBmaWxlCisgICAgIHN5bWJvbHMueG1sIHdoaWNoIGlzIHVzZWQgdG8gZ2VuZXJhdGUgbGlieG1sMi5zeW1zIHNldHRpbmcKKyAgICAgdXAgdGhlIGFsbG93ZWQgYWNjZXNzIHBvaW50IHRvIHRoZSBzaGFyZWQgbGlicmFyaWVzIC0tPgorCisKKzx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgICAgICAgICAgICAgICB2ZXJzaW9uPSIxLjAiPgorICA8eHNsOm91dHB1dCBtZXRob2Q9InRleHQiIGVuY29kaW5nPSJVVEYtOCIvPgorCisgIDx4c2w6dmFyaWFibGUgbmFtZT0ic3ltcyIgc2VsZWN0PSJkb2N1bWVudCgnc3ltYm9scy54bWwnKSIvPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgorICAgIDx4c2w6bWVzc2FnZSB0ZXJtaW5hdGU9Im5vIj4KKyAgICAgIDx4c2w6dGV4dD5Mb29raW5nIGZvciBmdW5jdGlvbnMgaW4gc3ltYm9scy54bWw8L3hzbDp0ZXh0PgorICAgIDwveHNsOm1lc3NhZ2U+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIvYXBpL3N5bWJvbHMvZnVuY3Rpb24iLz4KKyAgICA8eHNsOm1lc3NhZ2UgdGVybWluYXRlPSJubyI+CisgICAgICA8eHNsOnRleHQ+Rm91bmQgPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJjb3VudCgvYXBpL3N5bWJvbHMvZnVuY3Rpb24pIi8+CisgICAgICA8eHNsOnRleHQ+IGZ1bmN0aW9uczwveHNsOnRleHQ+CisgICAgPC94c2w6bWVzc2FnZT4KKyAgICA8eHNsOm1lc3NhZ2UgdGVybWluYXRlPSJubyI+CisgICAgICA8eHNsOnRleHQ+TG9va2luZyBmb3IgdmFyaWFibGVzIGluIHN5bWJvbHMueG1sPC94c2w6dGV4dD4KKyAgICA8L3hzbDptZXNzYWdlPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iL2FwaS9zeW1ib2xzL3ZhcmlhYmxlIi8+CisgICAgPHhzbDptZXNzYWdlIHRlcm1pbmF0ZT0ibm8iPgorICAgICAgPHhzbDp0ZXh0PkZvdW5kIDwveHNsOnRleHQ+CisgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iY291bnQoL2FwaS9zeW1ib2xzL3ZhcmlhYmxlKSIvPgorICAgICAgPHhzbDp0ZXh0PiB2YXJpYWJsZXM8L3hzbDp0ZXh0PgorICAgIDwveHNsOm1lc3NhZ2U+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZ1bmN0aW9ufHZhcmlhYmxlIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InN5bWJvbCIKKyAgICAgICAgc2VsZWN0PSIkc3ltcy9zeW1ib2xzL3JlbGVhc2Uvc3ltYm9sWy4gPSAkbmFtZV0iLz4KKyAgICA8eHNsOmlmIHRlc3Q9InN0cmluZygkc3ltYm9sKSAhPSAkbmFtZSI+CisgICAgICA8eHNsOm1lc3NhZ2UgdGVybWluYXRlPSJ5ZXMiPgorICAgICAgICA8eHNsOnRleHQ+RmFpbGVkIHRvIGZpbmQgZXhwb3J0IGluIHN5bWJvbHMueG1sOiA8L3hzbDp0ZXh0PgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgIDwveHNsOm1lc3NhZ2U+CisgICAgPC94c2w6aWY+CisgIDwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9jb250cmlicy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvY29udHJpYnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGFiNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvY29udHJpYnMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkNvbnRyaWJ1dGlvbnM8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkNvbnRyaWJ1dGlvbnM8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPjxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvY3MuaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPjxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5SZWxlYXNlczwvYT48L2xpPjxsaT48YSBocmVmPSJYTUxpbmZvLmh0bWwiPlhNTDwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPjxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5SZWNlbnQgQ2hhbmdlczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+Qmpvcm4gUmVlc2UsIFdpbGxpYW0gQnJhY2sgYW5kIFRob21hcyBCcm95ZXIgaGF2ZSBwcm92aWRlZCBhIG51bWJlciBvZgorICAgIHBhdGNoZXMsIEdhcnkgUGVubmluZ3RvbiB3b3JrZWQgb24gdGhlIHZhbGlkYXRpb24gQVBJLCB0aHJlYWRpbmcgc3VwcG9ydAorICAgIGFuZCBTb2xhcmlzIHBvcnQuPC9saT4KKyAgPGxpPkpvaG4gRmxlY2sgaGVscHMgbWFpbnRhaW5pbmcgdGhlIGRvY3VtZW50YXRpb24gYW5kIG1hbiBwYWdlcy48L2xpPgorICA8bGk+PGEgaHJlZj0ibWFpbHRvOmlnb3JAemxhdGtvdmljLmNvbSI+SWdvciAgWmxhdGtvdmljPC9hPiBpcyBub3cgdGhlCisgICAgbWFpbnRhaW5lciBvZiB0aGUgV2luZG93cyBwb3J0LCA8YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sL2luZGV4Lmh0bWwiPmhlIHByb3ZpZGVzCisgICAgYmluYXJpZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzpHYXJ5LlBlbm5pbmd0b25Ac3VuLmNvbSI+R2FyeSBQZW5uaW5ndG9uPC9hPiBwcm92aWRlcworICAgIDxhIGhyZWY9Imh0dHA6Ly9nYXJ5cGVubmluZ3Rvbi5uZXQvbGlieG1sMi8iPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvMjAwMS1NYXJjaC9tc2cwMDAxNC5odG1sIj5NYXR0CisgICAgU2VyZ2VhbnQ8L2E+IGRldmVsb3BlZCA8YSBocmVmPSJodHRwOi8vYXhraXQub3JnL2Rvd25sb2FkLyI+WE1MOjpMaWJYU0xUPC9hPiwgYSBQZXJsIHdyYXBwZXIgZm9yCisgICAgbGlieG1sMi9saWJ4c2x0IGFzIHBhcnQgb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly9heGtpdC5jb20vIj5BeEtpdCBYTUwKKyAgICBhcHBsaWNhdGlvbiBzZXJ2ZXI8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzpmbmF0dGVyQGdteC5uZXQiPkZlbGl4IE5hdHRlcjwvYT4gYW5kIDxhIGhyZWY9Im1haWx0bzpnZWVydGtAYWkucnVnLm5sIj5HZWVydCBLbG9vc3Rlcm1hbjwvYT4gcHJvdmlkZSA8YSBocmVmPSJsaWJ4bWwtZG9jLmVsIj5hbiBlbWFjcyBtb2R1bGU8L2E+IHRvIGxvb2t1cCBsaWJ4bWwoMikgZnVuY3Rpb25zCisgICAgZG9jdW1lbnRhdGlvbjwvbGk+CisgIDxsaT48YSBocmVmPSJtYWlsdG86c2hlcndpbkBubG0ubmloLmdvdiI+Wml5aW5nIFNoZXJ3aW48L2E+IHByb3ZpZGVkIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8wNDg4Lmh0bWwiPm1hbiBwYWdlczwvYT48L2xpPgorICA8bGk+dGhlcmUgaXMgYSBtb2R1bGUgZm9yIDxhIGhyZWY9Imh0dHA6Ly9hY3MtbWlzYy5zb3VyY2Vmb3JnZS5uZXQvbnN4bWwuaHRtbCI+bGlieG1sL2xpYnhzbHQgc3VwcG9ydAorICAgIGluIE9wZW5OU0QvQU9MU2VydmVyPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJtYWlsdG86ZGt1aGxtYW5AY3V0dGVyLnJleHguY29tIj5EYXZlIEt1aGxtYW48L2E+IHByb3ZpZGVkIHRoZQorICAgIGZpcnN0IHZlcnNpb24gb2YgbGlieG1sL2xpYnhzbHQgPGEgaHJlZj0iaHR0cDovL3d3dy5yZXh4LmNvbS9+ZGt1aGxtYW4iPndyYXBwZXJzIGZvciBQeXRob248L2E+PC9saT4KKyAgPGxpPlBldHIgS296ZWxrYSBwcm92aWRlcyA8YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzIj5QYXNjYWwgdW5pdHMgdG8gZ2x1ZQorICAgIGxpYnhtbDI8L2E+IHdpdGggS3lsaXggYW5kIERlbHBoaSBhbmQgb3RoZXIgUGFzY2FsIGNvbXBpbGVyczwvbGk+CisgIDxsaT48YSBocmVmPSJtYWlsdG86YWxla3NleUBhbGVrc2V5LmNvbSI+QWxla3NleSBTYW5pbjwvYT4gaW1wbGVtZW50ZWQgdGhlCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU2lnbmF0dXJlLyI+WE1MIENhbm9uaWNhbGl6YXRpb24gYW5kIFhNTAorICAgIERpZ2l0YWwgU2lnbmF0dXJlPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPmltcGxlbWVudGF0aW9ucyBmb3IgbGlieG1sMjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0ibWFpbHRvOlN0ZXZlLkJhbGxAZXhwbGFpbi5jb20uYXUiPlN0ZXZlIEJhbGw8L2E+IGFuZAorICAgIGNvbnRyaWJ1dG9ycyBtYWludGFpbiA8YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPnRjbAorICAgIGJpbmRpbmdzIGZvciBsaWJ4bWwyIGFuZCBsaWJ4c2x0PC9hPiwgYXMgd2VsbCBhcyA8YSBocmVmPSJodHRwOi8vdGNseG1sLnNmLm5ldC90a3htbGxpbnQuaHRtbCI+dGt4bWxsaW50PC9hPiBhIEdVSSBmb3IKKyAgICB4bWxsaW50IGFuZCA8YSBocmVmPSJodHRwOi8vdGNseG1sLnNmLm5ldC90a3hzbHRwcm9jLmh0bWwiPnRreHNsdHByb2M8L2E+CisgICAgYSBHVUkgZm9yIHhzbHRwcm9jLjwvbGk+Cis8L3VsPjxwPjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvTWFrZWZpbGUuYW0gYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNjQwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsNzMgQEAKK0RFVkhFTFBfRElSPSQoZGF0YWRpcikvZ3RrLWRvYy9odG1sL2xpYnhtbDIKK0hUTUxfRklMRVM9aW5kZXguaHRtbCBnZW5lcmFsLmh0bWwgJChIVE1MX01PRFVMRVMpCitIVE1MX01PRFVMRVM9CQkJCVwKKwlsaWJ4bWwyLWMxNG4uaHRtbAkJXAorCWxpYnhtbDItY2F0YWxvZy5odG1sCQlcCisJbGlieG1sMi1jaHZhbGlkLmh0bWwJCVwKKwlsaWJ4bWwyLWRlYnVnWE1MLmh0bWwJCVwKKwlsaWJ4bWwyLWRpY3QuaHRtbAkJXAorCWxpYnhtbDItRE9DQnBhcnNlci5odG1sCQlcCisJbGlieG1sMi1lbmNvZGluZy5odG1sCQlcCisJbGlieG1sMi1lbnRpdGllcy5odG1sCQlcCisJbGlieG1sMi1nbG9iYWxzLmh0bWwJCVwKKwlsaWJ4bWwyLWhhc2guaHRtbAkJXAorCWxpYnhtbDItSFRNTHBhcnNlci5odG1sCQlcCisJbGlieG1sMi1IVE1MdHJlZS5odG1sCQlcCisJbGlieG1sMi1saXN0Lmh0bWwJCVwKKwlsaWJ4bWwyLW5hbm9mdHAuaHRtbAkJXAorCWxpYnhtbDItbmFub2h0dHAuaHRtbAkJXAorCWxpYnhtbDItcGFyc2VyLmh0bWwJCVwKKwlsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sCVwKKwlsaWJ4bWwyLXBhdHRlcm4uaHRtbAkJXAorCWxpYnhtbDItcmVsYXhuZy5odG1sCQlcCisJbGlieG1sMi1TQVgyLmh0bWwJCVwKKwlsaWJ4bWwyLVNBWC5odG1sCQlcCisJbGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwJXAorCWxpYnhtbDItc2NoZW1hdHJvbi5odG1sCQlcCisJbGlieG1sMi10aHJlYWRzLmh0bWwJCVwKKwlsaWJ4bWwyLXRyZWUuaHRtbAkJXAorCWxpYnhtbDItdXJpLmh0bWwJCVwKKwlsaWJ4bWwyLXZhbGlkLmh0bWwJCVwKKwlsaWJ4bWwyLXhpbmNsdWRlLmh0bWwJCVwKKwlsaWJ4bWwyLXhsaW5rLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwJXAorCWxpYnhtbDIteG1sZXJyb3IuaHRtbAkJXAorCWxpYnhtbDIteG1sZXhwb3J0cy5odG1sCQlcCisJbGlieG1sMi14bWxJTy5odG1sCQlcCisJbGlieG1sMi14bWxtZW1vcnkuaHRtbAkJXAorCWxpYnhtbDIteG1sbW9kdWxlLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbHJlYWRlci5odG1sCQlcCisJbGlieG1sMi14bWxyZWdleHAuaHRtbAkJXAorCWxpYnhtbDIteG1sc2F2ZS5odG1sCQlcCisJbGlieG1sMi14bWxzY2hlbWFzLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sCVwKKwlsaWJ4bWwyLXhtbHN0cmluZy5odG1sCQlcCisJbGlieG1sMi14bWx1bmljb2RlLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbAkJXAorCWxpYnhtbDIteG1sd3JpdGVyLmh0bWwJCVwKKwlsaWJ4bWwyLXhwYXRoLmh0bWwJCVwKKwlsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwJXAorCWxpYnhtbDIteHBvaW50ZXIuaHRtbAorCitFWFRSQV9GT1JNQVQ9CQkJCVwKKwlob21lLnBuZwkJCVwKKwlsZWZ0LnBuZwkJCVwKKwlyaWdodC5wbmcJCQlcCisJdXAucG5nCQkJCVwKKwlzdHlsZS5jc3MKKworRVhUUkFfRElTVD1kZXZoZWxwLnhzbCBodG1sLnhzbCBsaWJ4bWwyLmRldmhlbHAgJChIVE1MX0ZJTEVTKSAkKEVYVFJBX0ZPUk1BVCkKKworYWxsOiBsaWJ4bWwyLmRldmhlbHAgJChIVE1MX0ZJTEVTKQorCitsaWJ4bWwyLmRldmhlbHAgJChIVE1MX0ZJTEVTKTogZGV2aGVscC54c2wgaHRtbC54c2wgJCh0b3Bfc3JjZGlyKS9kb2MvbGlieG1sMi1hcGkueG1sCisJLUAoZWNobyBSZWJ1aWxkaW5nIGRldmhlbHAgZmlsZXMpCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICAkKFhTTFRQUk9DKSAtLW5vbmV0IC1vICQoc3JjZGlyKS9saWJ4bWwyLmRldmhlbHAgZGV2aGVscC54c2wgJCh0b3Bfc3JjZGlyKS9kb2MvbGlieG1sMi1hcGkueG1sIDsgZmkgKTsKKworaW5zdGFsbC1kYXRhLWxvY2FsOiAKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKERFVkhFTFBfRElSKQorCS1ASU5TVEFMTEAgLW0gMDY0NCBsaWJ4bWwyLmRldmhlbHAgJChERVNURElSKSQoREVWSEVMUF9ESVIpCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoRVhUUkFfRk9STUFUKSAkKERFU1RESVIpJChERVZIRUxQX0RJUikKKwktQElOU1RBTExAIC1tIDA2NDQgJChIVE1MX0ZJTEVTKSAkKERFU1RESVIpJChERVZIRUxQX0RJUikKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9NYWtlZmlsZS5pbiBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU3ZDY1MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw1MzIgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitzdWJkaXIgPSBkb2MvZGV2aGVscAorRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmluCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQVIgPSBAQVJACitBUyA9IEBBU0AKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkFTRV9USFJFQURfTElCUyA9IEBCQVNFX1RIUkVBRF9MSUJTQAorQzE0Tl9PQkogPSBAQzE0Tl9PQkpACitDQVRBTE9HX09CSiA9IEBDQVRBTE9HX09CSkAKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorQ1lHV0lOX0VYVFJBX0xERkxBR1MgPSBAQ1lHV0lOX0VYVFJBX0xERkxBR1NACitDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFERCA9IEBDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFEREAKK0RFQlVHX09CSiA9IEBERUJVR19PQkpACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRExMVE9PTCA9IEBETExUT09MQAorRE9DQl9PQkogPSBARE9DQl9PQkpACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorRlRQX09CSiA9IEBGVFBfT0JKQAorR1JFUCA9IEBHUkVQQAorSEFWRV9JU0lORiA9IEBIQVZFX0lTSU5GQAorSEFWRV9JU05BTiA9IEBIQVZFX0lTTkFOQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitIVE1MX09CSiA9IEBIVE1MX09CSkAKK0hUVFBfT0JKID0gQEhUVFBfT0JKQAorSUNPTlZfTElCUyA9IEBJQ09OVl9MSUJTQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlhNTF9NQUpPUl9WRVJTSU9OID0gQExJQlhNTF9NQUpPUl9WRVJTSU9OQAorTElCWE1MX01JQ1JPX1ZFUlNJT04gPSBATElCWE1MX01JQ1JPX1ZFUlNJT05ACitMSUJYTUxfTUlOT1JfVkVSU0lPTiA9IEBMSUJYTUxfTUlOT1JfVkVSU0lPTkAKK0xJQlhNTF9WRVJTSU9OID0gQExJQlhNTF9WRVJTSU9OQAorTElCWE1MX1ZFUlNJT05fRVhUUkEgPSBATElCWE1MX1ZFUlNJT05fRVhUUkFACitMSUJYTUxfVkVSU0lPTl9JTkZPID0gQExJQlhNTF9WRVJTSU9OX0lORk9ACitMSUJYTUxfVkVSU0lPTl9OVU1CRVIgPSBATElCWE1MX1ZFUlNJT05fTlVNQkVSQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTU9EVUxFX0VYVEVOU0lPTiA9IEBNT0RVTEVfRVhURU5TSU9OQAorTU9EVUxFX1BMQVRGT1JNX0xJQlMgPSBATU9EVUxFX1BMQVRGT1JNX0xJQlNACitNViA9IEBNVkAKK01fTElCUyA9IEBNX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQWVRIT04gPSBAUFlUSE9OQAorUFlUSE9OX0lOQ0xVREVTID0gQFBZVEhPTl9JTkNMVURFU0AKK1BZVEhPTl9MSUJTID0gQFBZVEhPTl9MSUJTQAorUFlUSE9OX1NJVEVfUEFDS0FHRVMgPSBAUFlUSE9OX1NJVEVfUEFDS0FHRVNACitQWVRIT05fU1VCRElSID0gQFBZVEhPTl9TVUJESVJACitQWVRIT05fVEVTVFMgPSBAUFlUSE9OX1RFU1RTQAorUFlUSE9OX1ZFUlNJT04gPSBAUFlUSE9OX1ZFUlNJT05ACitSQU5MSUIgPSBAUkFOTElCQAorUkRMX0xJQlMgPSBAUkRMX0xJQlNACitSRUFERVJfVEVTVCA9IEBSRUFERVJfVEVTVEAKK1JFTERBVEUgPSBAUkVMREFURUAKK1JNID0gQFJNQAorU0VEID0gQFNFREAKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVEFUSUNfQklOQVJJRVMgPSBAU1RBVElDX0JJTkFSSUVTQAorU1RSSVAgPSBAU1RSSVBACitUQVIgPSBAVEFSQAorVEVTVF9DMTROID0gQFRFU1RfQzE0TkAKK1RFU1RfQ0FUQUxPRyA9IEBURVNUX0NBVEFMT0dACitURVNUX0RFQlVHID0gQFRFU1RfREVCVUdACitURVNUX0hUTUwgPSBAVEVTVF9IVE1MQAorVEVTVF9NT0RVTEVTID0gQFRFU1RfTU9EVUxFU0AKK1RFU1RfUEFUVEVSTiA9IEBURVNUX1BBVFRFUk5ACitURVNUX1BIVE1MID0gQFRFU1RfUEhUTUxACitURVNUX1BVU0ggPSBAVEVTVF9QVVNIQAorVEVTVF9SRUdFWFBTID0gQFRFU1RfUkVHRVhQU0AKK1RFU1RfU0FYID0gQFRFU1RfU0FYQAorVEVTVF9TQ0hFTUFTID0gQFRFU1RfU0NIRU1BU0AKK1RFU1RfU0NIRU1BVFJPTiA9IEBURVNUX1NDSEVNQVRST05ACitURVNUX1RIUkVBRFMgPSBAVEVTVF9USFJFQURTQAorVEVTVF9WQUxJRCA9IEBURVNUX1ZBTElEQAorVEVTVF9WVElNRSA9IEBURVNUX1ZUSU1FQAorVEVTVF9YSU5DTFVERSA9IEBURVNUX1hJTkNMVURFQAorVEVTVF9YUEFUSCA9IEBURVNUX1hQQVRIQAorVEVTVF9YUFRSID0gQFRFU1RfWFBUUkAKK1RIUkVBRFNfVzMyID0gQFRIUkVBRFNfVzMyQAorVEhSRUFEX0NGTEFHUyA9IEBUSFJFQURfQ0ZMQUdTQAorVEhSRUFEX0xJQlMgPSBAVEhSRUFEX0xJQlNACitVID0gQFVACitWRVJTSU9OID0gQFZFUlNJT05ACitWRVJTSU9OX1NDUklQVF9GTEFHUyA9IEBWRVJTSU9OX1NDUklQVF9GTEFHU0AKK1dHRVQgPSBAV0dFVEAKK1dJTjMyX0VYVFJBX0xERkxBR1MgPSBAV0lOMzJfRVhUUkFfTERGTEFHU0AKK1dJTjMyX0VYVFJBX0xJQkFERCA9IEBXSU4zMl9FWFRSQV9MSUJBRERACitXSVRIX0MxNE4gPSBAV0lUSF9DMTROQAorV0lUSF9DQVRBTE9HID0gQFdJVEhfQ0FUQUxPR0AKK1dJVEhfREVCVUcgPSBAV0lUSF9ERUJVR0AKK1dJVEhfRE9DQiA9IEBXSVRIX0RPQ0JACitXSVRIX0ZUUCA9IEBXSVRIX0ZUUEAKK1dJVEhfSFRNTCA9IEBXSVRIX0hUTUxACitXSVRIX0hUVFAgPSBAV0lUSF9IVFRQQAorV0lUSF9JQ09OViA9IEBXSVRIX0lDT05WQAorV0lUSF9JU084ODU5WCA9IEBXSVRIX0lTTzg4NTlYQAorV0lUSF9MRUdBQ1kgPSBAV0lUSF9MRUdBQ1lACitXSVRIX01FTV9ERUJVRyA9IEBXSVRIX01FTV9ERUJVR0AKK1dJVEhfTU9EVUxFUyA9IEBXSVRIX01PRFVMRVNACitXSVRIX09VVFBVVCA9IEBXSVRIX09VVFBVVEAKK1dJVEhfUEFUVEVSTiA9IEBXSVRIX1BBVFRFUk5ACitXSVRIX1BVU0ggPSBAV0lUSF9QVVNIQAorV0lUSF9SRUFERVIgPSBAV0lUSF9SRUFERVJACitXSVRIX1JFR0VYUFMgPSBAV0lUSF9SRUdFWFBTQAorV0lUSF9SVU5fREVCVUcgPSBAV0lUSF9SVU5fREVCVUdACitXSVRIX1NBWDEgPSBAV0lUSF9TQVgxQAorV0lUSF9TQ0hFTUFTID0gQFdJVEhfU0NIRU1BU0AKK1dJVEhfU0NIRU1BVFJPTiA9IEBXSVRIX1NDSEVNQVRST05ACitXSVRIX1RIUkVBRFMgPSBAV0lUSF9USFJFQURTQAorV0lUSF9UUkVFID0gQFdJVEhfVFJFRUAKK1dJVEhfVFJJTyA9IEBXSVRIX1RSSU9ACitXSVRIX1ZBTElEID0gQFdJVEhfVkFMSURACitXSVRIX1dSSVRFUiA9IEBXSVRIX1dSSVRFUkAKK1dJVEhfWElOQ0xVREUgPSBAV0lUSF9YSU5DTFVERUAKK1dJVEhfWFBBVEggPSBAV0lUSF9YUEFUSEAKK1dJVEhfWFBUUiA9IEBXSVRIX1hQVFJACitXSVRIX1pMSUIgPSBAV0lUSF9aTElCQAorWElOQ0xVREVfT0JKID0gQFhJTkNMVURFX09CSkAKK1hNTExJTlQgPSBAWE1MTElOVEAKK1hNTF9DRkxBR1MgPSBAWE1MX0NGTEFHU0AKK1hNTF9JTkNMVURFRElSID0gQFhNTF9JTkNMVURFRElSQAorWE1MX0xJQkRJUiA9IEBYTUxfTElCRElSQAorWE1MX0xJQlMgPSBAWE1MX0xJQlNACitYTUxfTElCVE9PTExJQlMgPSBAWE1MX0xJQlRPT0xMSUJTQAorWFBBVEhfT0JKID0gQFhQQVRIX09CSkAKK1hQVFJfT0JKID0gQFhQVFJfT0JKQAorWFNMVFBST0MgPSBAWFNMVFBST0NACitaX0NGTEFHUyA9IEBaX0NGTEFHU0AKK1pfTElCUyA9IEBaX0xJQlNACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3B5dGhvbmRpciA9IEBweXRob25kaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK0RFVkhFTFBfRElSID0gJChkYXRhZGlyKS9ndGstZG9jL2h0bWwvbGlieG1sMgorSFRNTF9GSUxFUyA9IGluZGV4Lmh0bWwgZ2VuZXJhbC5odG1sICQoSFRNTF9NT0RVTEVTKQorSFRNTF9NT0RVTEVTID0gXAorCWxpYnhtbDItYzE0bi5odG1sCQlcCisJbGlieG1sMi1jYXRhbG9nLmh0bWwJCVwKKwlsaWJ4bWwyLWNodmFsaWQuaHRtbAkJXAorCWxpYnhtbDItZGVidWdYTUwuaHRtbAkJXAorCWxpYnhtbDItZGljdC5odG1sCQlcCisJbGlieG1sMi1ET0NCcGFyc2VyLmh0bWwJCVwKKwlsaWJ4bWwyLWVuY29kaW5nLmh0bWwJCVwKKwlsaWJ4bWwyLWVudGl0aWVzLmh0bWwJCVwKKwlsaWJ4bWwyLWdsb2JhbHMuaHRtbAkJXAorCWxpYnhtbDItaGFzaC5odG1sCQlcCisJbGlieG1sMi1IVE1McGFyc2VyLmh0bWwJCVwKKwlsaWJ4bWwyLUhUTUx0cmVlLmh0bWwJCVwKKwlsaWJ4bWwyLWxpc3QuaHRtbAkJXAorCWxpYnhtbDItbmFub2Z0cC5odG1sCQlcCisJbGlieG1sMi1uYW5vaHR0cC5odG1sCQlcCisJbGlieG1sMi1wYXJzZXIuaHRtbAkJXAorCWxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwJXAorCWxpYnhtbDItcGF0dGVybi5odG1sCQlcCisJbGlieG1sMi1yZWxheG5nLmh0bWwJCVwKKwlsaWJ4bWwyLVNBWDIuaHRtbAkJXAorCWxpYnhtbDItU0FYLmh0bWwJCVwKKwlsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbAlcCisJbGlieG1sMi1zY2hlbWF0cm9uLmh0bWwJCVwKKwlsaWJ4bWwyLXRocmVhZHMuaHRtbAkJXAorCWxpYnhtbDItdHJlZS5odG1sCQlcCisJbGlieG1sMi11cmkuaHRtbAkJXAorCWxpYnhtbDItdmFsaWQuaHRtbAkJXAorCWxpYnhtbDIteGluY2x1ZGUuaHRtbAkJXAorCWxpYnhtbDIteGxpbmsuaHRtbAkJXAorCWxpYnhtbDIteG1sYXV0b21hdGEuaHRtbAlcCisJbGlieG1sMi14bWxlcnJvci5odG1sCQlcCisJbGlieG1sMi14bWxleHBvcnRzLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbElPLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbG1lbW9yeS5odG1sCQlcCisJbGlieG1sMi14bWxtb2R1bGUuaHRtbAkJXAorCWxpYnhtbDIteG1scmVhZGVyLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sCQlcCisJbGlieG1sMi14bWxzYXZlLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbAkJXAorCWxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwJXAorCWxpYnhtbDIteG1sc3RyaW5nLmh0bWwJCVwKKwlsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbAkJXAorCWxpYnhtbDIteG1sdmVyc2lvbi5odG1sCQlcCisJbGlieG1sMi14bWx3cml0ZXIuaHRtbAkJXAorCWxpYnhtbDIteHBhdGguaHRtbAkJXAorCWxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbAlcCisJbGlieG1sMi14cG9pbnRlci5odG1sCisKK0VYVFJBX0ZPUk1BVCA9IFwKKwlob21lLnBuZwkJCVwKKwlsZWZ0LnBuZwkJCVwKKwlyaWdodC5wbmcJCQlcCisJdXAucG5nCQkJCVwKKwlzdHlsZS5jc3MKKworRVhUUkFfRElTVCA9IGRldmhlbHAueHNsIGh0bWwueHNsIGxpYnhtbDIuZGV2aGVscCAkKEhUTUxfRklMRVMpICQoRVhUUkFfRk9STUFUKQorYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBkb2MvZGV2aGVscC9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWdudSBkb2MvZGV2aGVscC9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCit0YWdzOiBUQUdTCitUQUdTOgorCitjdGFnczogQ1RBR1MKK0NUQUdTOgorCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlCitpbnN0YWxsZGlyczoKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtZGF0YS1sb2NhbAorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kYXRhLWxvY2FsIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKworCithbGw6IGxpYnhtbDIuZGV2aGVscCAkKEhUTUxfRklMRVMpCisKK2xpYnhtbDIuZGV2aGVscCAkKEhUTUxfRklMRVMpOiBkZXZoZWxwLnhzbCBodG1sLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9saWJ4bWwyLWFwaS54bWwKKwktQChlY2hvIFJlYnVpbGRpbmcgZGV2aGVscCBmaWxlcykKKwktQChpZiBbIC14ICQoWFNMVFBST0MpIF0gOyB0aGVuIFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgLW8gJChzcmNkaXIpL2xpYnhtbDIuZGV2aGVscCBkZXZoZWxwLnhzbCAkKHRvcF9zcmNkaXIpL2RvYy9saWJ4bWwyLWFwaS54bWwgOyBmaSApOworCitpbnN0YWxsLWRhdGEtbG9jYWw6IAorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoREVWSEVMUF9ESVIpCisJLUBJTlNUQUxMQCAtbSAwNjQ0IGxpYnhtbDIuZGV2aGVscCAkKERFU1RESVIpJChERVZIRUxQX0RJUikKKwktQElOU1RBTExAIC1tIDA2NDQgJChFWFRSQV9GT1JNQVQpICQoREVTVERJUikkKERFVkhFTFBfRElSKQorCS1ASU5TVEFMTEAgLW0gMDY0NCAkKEhUTUxfRklMRVMpICQoREVTVERJUikkKERFVkhFTFBfRElSKQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2RldmhlbHAueHNsIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9kZXZoZWxwLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTljM2YxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9kZXZoZWxwLnhzbApAQCAtMCwwICsxLDEyNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCIKKwkJeG1sbnM9Imh0dHA6Ly93d3cuZGV2aGVscC5uZXQvYm9vayIKKwkJeG1sbnM6ZXhzbD0iaHR0cDovL2V4c2x0Lm9yZy9jb21tb24iCisJCXhtbG5zOnN0cj0iaHR0cDovL2V4c2x0Lm9yZy9zdHJpbmdzIgorCQlleHRlbnNpb24tZWxlbWVudC1wcmVmaXhlcz0iZXhzbCBzdHIiCisJCWV4Y2x1ZGUtcmVzdWx0LXByZWZpeGVzPSJleHNsIHN0ciI+CisgIDwhLS0gVGhlIHN0eWxlc2hlZXQgZm9yIHRoZSBodG1sIHBhZ2VzIC0tPgorICA8eHNsOmltcG9ydCBocmVmPSJodG1sLnhzbCIvPgorCisgIDx4c2w6b3V0cHV0IG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iVVRGLTgiIGluZGVudD0ieWVzIi8+CisKKyAgPCEtLSBCdWlsZCBrZXlzIGZvciBhbGwgc3ltYm9scyAtLT4KKyAgPHhzbDprZXkgbmFtZT0ic3ltYm9scyIgbWF0Y2g9Ii9hcGkvc3ltYm9scy8qIiB1c2U9IkBuYW1lIi8+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iL2FwaSI+CisgICAgPGJvb2sgdGl0bGU9IntAbmFtZX0gUmVmZXJlbmNlIE1hbnVhbCIgbGluaz0iaW5kZXguaHRtbCIgYXV0aG9yPSIiIG5hbWU9IntAbmFtZX0iPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmaWxlcyIvPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJzeW1ib2xzIi8+CisgICAgPC9ib29rPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJnZW5lcmF0ZV9pbmRleCIvPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJnZW5lcmF0ZV9nZW5lcmFsIi8+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvYXBpL2ZpbGVzIj4KKyAgICA8Y2hhcHRlcnM+CisgICAgICA8c3ViIG5hbWU9IkFQSSIgbGluaz0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmaWxlIi8+CisgICAgICA8L3N1Yj4KKyAgICA8L2NoYXB0ZXJzPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iL2FwaS9maWxlcy9maWxlIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im1vZHVsZSIgc2VsZWN0PSJAbmFtZSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icHJldiIgc2VsZWN0PSJzdHJpbmcocHJlY2VkaW5nLXNpYmxpbmc6OmZpbGVbcG9zaXRpb24oKT0xXS9AbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5leHQiIHNlbGVjdD0ic3RyaW5nKGZvbGxvd2luZy1zaWJsaW5nOjpmaWxlW3Bvc2l0aW9uKCk9MV0vQG5hbWUpIi8+CisgICAgPHN1YiBuYW1lPSJ7QG5hbWV9IiBsaW5rPSJsaWJ4bWwyLXtAbmFtZX0uaHRtbCIvPgorICAgIDx4c2w6ZG9jdW1lbnQgeG1sbnM9IiIgaHJlZj0ibGlieG1sMi17QG5hbWV9Lmh0bWwiIG1ldGhvZD0ieG1sIiBpbmRlbnQ9InllcyIgZW5jb2Rpbmc9IlVURi04Ij4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKwkgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisJICA8dGl0bGU+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvbmNhdChAbmFtZSwgJzogJywgc3VtbWFyeSkiLz48L3RpdGxlPgorCSAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorCSAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorCSAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisJICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKwkgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgICAgIDwvaGVhZD4KKwk8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisKKyAgICAgICAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKwkgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKwkgICAgICA8eHNsOmlmIHRlc3Q9IiRwcmV2ICE9ICcnIj4KKwkJPHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi17JHByZXZ9Lmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPjwvYT48L3RkPgorCSAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgICA8dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+PC9hPjwvdGQ+CisgICAgICAgICAgICAgIDx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPjwvYT48L3RkPgorCSAgICAgIDx4c2w6aWYgdGVzdD0iJG5leHQgIT0gJyciPgorCQk8dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXskbmV4dH0uaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPjwvYT48L3RkPgorCSAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICAgICAgICA8L3RyPgorCSAgPC90YWJsZT4KKwkgIDxoMj48c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9zcGFuPjwvaDI+CisJICA8cD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4gLSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3VtbWFyeSIvPjwvcD4KKwkgIDxwPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJkZXNjcmlwdGlvbiIvPjwvcD4KKwkgIDx4c2w6aWYgdGVzdD0iZGVwcmVjYXRlZCI+CisJICAgIDxwPiBXQVJOSU5HOiB0aGlzIG1vZHVsZSBpcyBkZXByZWNhdGVkICE8L3A+CisJICA8L3hzbDppZj4KKwkgIDxwPkF1dGhvcihzKTogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImF1dGhvciIvPjwvcD4KKwkgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKwkgIDxoMj5TeW5vcHNpczwvaDI+CisJICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+CisJICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9InN5bm9wc2lzIiBzZWxlY3Q9ImV4cG9ydHMiLz4KKwkgIDwvcHJlPgorCSAgPC9kaXY+CisJICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorCSAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKwkgIDwvZGl2PgorCSAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKwkgIDxoMj5EZXRhaWxzPC9oMj4KKwkgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisJICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImRldGFpbHMiIHNlbGVjdD0iL2FwaS9zeW1ib2xzL21hY3JvW0BmaWxlPSRtb2R1bGVdIi8+CisJICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImRldGFpbHMiIHNlbGVjdD0iL2FwaS9zeW1ib2xzL3R5cGVkZWZbQGZpbGU9JG1vZHVsZV0gfCAvYXBpL3N5bWJvbHMvc3RydWN0W0BmaWxlPSRtb2R1bGVdIi8+CisJICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImRldGFpbHMiIHNlbGVjdD0iL2FwaS9zeW1ib2xzL2Z1bmN0eXBlW0BmaWxlPSRtb2R1bGVdIi8+CisJICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImRldGFpbHMiIHNlbGVjdD0iL2FwaS9zeW1ib2xzL3ZhcmlhYmxlW0BmaWxlPSRtb2R1bGVdIi8+CisJICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImRldGFpbHMiIHNlbGVjdD0iL2FwaS9zeW1ib2xzL2Z1bmN0aW9uW0BmaWxlPSRtb2R1bGVdIi8+CisJICA8L2Rpdj4KKwkgIDwvZGl2PgorCTwvYm9keT4KKyAgICAgIDwvaHRtbD4KKyAgICA8L3hzbDpkb2N1bWVudD4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii9hcGkvc3ltYm9scyI+CisgICAgPGZ1bmN0aW9ucz4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ibWFjcm8iLz4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZW51bSIvPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJ0eXBlZGVmIi8+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9InN0cnVjdCIvPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmdW5jdHlwZSIvPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJ2YXJpYWJsZSIvPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmdW5jdGlvbiIvPgorICAgIDwvZnVuY3Rpb25zPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iL2FwaS9zeW1ib2xzL2Z1bmN0eXBlIj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ie0BuYW1lfSIgbGluaz0ibGlieG1sMi17QGZpbGV9Lmh0bWwje0BuYW1lfSIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iL2FwaS9zeW1ib2xzL2Z1bmN0aW9uIj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ie0BuYW1lfSAoKSIgbGluaz0ibGlieG1sMi17QGZpbGV9Lmh0bWwje0BuYW1lfSIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iL2FwaS9zeW1ib2xzL3R5cGVkZWYiPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ7QG5hbWV9IiBsaW5rPSJsaWJ4bWwyLXtAZmlsZX0uaHRtbCN7QG5hbWV9Ii8+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvYXBpL3N5bWJvbHMvZW51bSI+CisgICAgPGZ1bmN0aW9uIG5hbWU9IntAbmFtZX0iIGxpbms9ImxpYnhtbDIte0BmaWxlfS5odG1sI3tAbmFtZX0iLz4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii9hcGkvc3ltYm9scy9zdHJ1Y3QiPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ7QG5hbWV9IiBsaW5rPSJsaWJ4bWwyLXtAZmlsZX0uaHRtbCN7QG5hbWV9Ii8+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvYXBpL3N5bWJvbHMvbWFjcm8iPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ7QG5hbWV9IiBsaW5rPSJsaWJ4bWwyLXtAZmlsZX0uaHRtbCN7QG5hbWV9Ii8+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvYXBpL3N5bWJvbHMvdmFyaWFibGUiPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ7QG5hbWV9IiBsaW5rPSJsaWJ4bWwyLXtAZmlsZX0uaHRtbCN7QG5hbWV9Ii8+CisgIDwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvZ2VuZXJhbC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9nZW5lcmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjEyMmZmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvZ2VuZXJhbC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+bGlieG1sMjogPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5saWJ4bWwyIEFQSSBNb2R1bGVzPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+PGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwiPkRPQ0JwYXJzZXI8L2E+IC0gb2xkIERvY0Jvb2sgU0dNTCBwYXJzZXI8YnIvPjxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sIj5IVE1McGFyc2VyPC9hPiAtIGludGVyZmFjZSBmb3IgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXI8YnIvPjxhIGhyZWY9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+IC0gc3BlY2lmaWMgQVBJcyB0byBwcm9jZXNzIEhUTUwgdHJlZSwgZXNwZWNpYWxseSBzZXJpYWxpemF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sIj5TQVg8L2E+IC0gT2xkIFNBWCB2ZXJzaW9uIDEgaGFuZGxlciwgZGVwcmVjYXRlZDxici8+PGEgaHJlZj0ibGlieG1sMi1TQVgyLmh0bWwiPlNBWDI8L2E+IC0gU0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPGJyLz48YSBocmVmPSJsaWJ4bWwyLWMxNG4uaHRtbCI+YzE0bjwvYT4gLSBQcm92aWRlIENhbm9uaWNhbCBYTUwgYW5kIEV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwiPmNhdGFsb2c8L2E+IC0gaW50ZXJmYWNlcyB0byB0aGUgQ2F0YWxvZyBoYW5kbGluZyBzeXN0ZW08YnIvPjxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sIj5jaHZhbGlkPC9hPiAtIFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPGJyLz48YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwiPmRlYnVnWE1MPC9hPiAtIFRyZWUgZGVidWdnaW5nIEFQSXM8YnIvPjxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sIj5kaWN0PC9hPiAtIHN0cmluZyBkaWN0aW9ubmFyeTxici8+PGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sIj5lbmNvZGluZzwvYT4gLSBpbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9uczxici8+PGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sIj5lbnRpdGllczwvYT4gLSBpbnRlcmZhY2UgZm9yIHRoZSBYTUwgZW50aXRpZXMgaGFuZGxpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sIj5nbG9iYWxzPC9hPiAtIGludGVyZmFjZSBmb3IgYWxsIGdsb2JhbCB2YXJpYWJsZXMgb2YgdGhlIGxpYnJhcnk8YnIvPjxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sIj5oYXNoPC9hPiAtIENoYWluZWQgaGFzaCB0YWJsZXM8YnIvPjxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sIj5saXN0PC9hPiAtIGxpc3RzIGludGVyZmFjZXM8YnIvPjxhIGhyZWY9ImxpYnhtbDItbmFub2Z0cC5odG1sIj5uYW5vZnRwPC9hPiAtIG1pbmltYWwgRlRQIGltcGxlbWVudGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLW5hbm9odHRwLmh0bWwiPm5hbm9odHRwPC9hPiAtIG1pbmltYWwgSFRUUCBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCI+cGFyc2VyPC9hPiAtIHRoZSBjb3JlIHBhcnNlciBtb2R1bGU8YnIvPjxhIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwiPnBhcnNlckludGVybmFsczwvYT4gLSBpbnRlcm5hbHMgcm91dGluZXMgZXhwb3J0ZWQgYnkgdGhlIHBhcnNlci48YnIvPjxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sIj5wYXR0ZXJuPC9hPiAtIHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzxici8+PGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+IC0gaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbGF4LU5HIHZhbGlkYXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sIj5zY2hlbWFzSW50ZXJuYWxzPC9hPiAtIGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBTY2hlbWFzPGJyLz48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCI+c2NoZW1hdHJvbjwvYT4gLSBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPiAtIGludGVyZmFjZXMgZm9yIHRocmVhZCBoYW5kbGluZzxici8+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwiPnRyZWU8L2E+IC0gaW50ZXJmYWNlcyBmb3IgdHJlZSBtYW5pcHVsYXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwiPnVyaTwvYT4gLSBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8YnIvPjxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCI+dmFsaWQ8L2E+IC0gVGhlIERURCB2YWxpZGF0aW9uPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwiPnhpbmNsdWRlPC9hPiAtIGltcGxlbWVudGF0aW9uIG9mIFhJbmNsdWRlPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwiPnhsaW5rPC9hPiAtIHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTxici8+PGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sIj54bWxJTzwvYT4gLSBpbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXI8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCI+eG1sYXV0b21hdGE8L2E+IC0gQVBJIHRvIGJ1aWxkIHJlZ2V4cCBhdXRvbWF0YTxici8+PGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sIj54bWxlcnJvcjwvYT4gLSBlcnJvciBoYW5kbGluZzxici8+PGEgaHJlZj0ibGlieG1sMi14bWxleHBvcnRzLmh0bWwiPnhtbGV4cG9ydHM8L2E+IC0gbWFjcm9zIGZvciBtYXJraW5nIHN5bWJvbHMgYXMgZXhwb3J0YWJsZS9pbXBvcnRhYmxlLjxici8+PGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5PC9hPiAtIGludGVyZmFjZSBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3I8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sbW9kdWxlLmh0bWwiPnhtbG1vZHVsZTwvYT4gLSBkeW5hbWljIG1vZHVsZSBsb2FkaW5nPGJyLz48YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+IC0gdGhlIFhNTFJlYWRlciBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCI+eG1scmVnZXhwPC9hPiAtIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaGFuZGxpbmc8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sIj54bWxzYXZlPC9hPiAtIHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjxici8+PGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwiPnhtbHNjaGVtYXM8L2E+IC0gaW5jb21wbGV0ZSBYTUwgU2NoZW1hcyBzdHJ1Y3R1cmUgaW1wbGVtZW50YXRpb248YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwiPnhtbHNjaGVtYXN0eXBlczwvYT4gLSBpbXBsZW1lbnRhdGlvbiBvZiBYTUwgU2NoZW1hIERhdGF0eXBlczxici8+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCI+eG1sc3RyaW5nPC9hPiAtIHNldCBvZiByb3V0aW5lcyB0byBwcm9jZXNzIHN0cmluZ3M8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPiAtIFVuaWNvZGUgY2hhcmFjdGVyIEFQSXM8YnIvPjxhIGhyZWY9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sIj54bWx2ZXJzaW9uPC9hPiAtIGNvbXBpbGUtdGltZSB2ZXJzaW9uIGluZm9ybWF0aW9uczxici8+PGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCI+eG1sd3JpdGVyPC9hPiAtIHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDxici8+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sIj54cGF0aDwvYT4gLSBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sIj54cGF0aEludGVybmFsczwvYT4gLSBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjxici8+PGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sIj54cG9pbnRlcjwvYT4gLSBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVyczxici8+PC9wPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2hvbWUucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9ob21lLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzAwMzYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9ob21lLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2h0bWwueHNsIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9odG1sLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzIwYjI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9odG1sLnhzbApAQCAtMCwwICsxLDYwMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCIKKwkJeG1sbnM6ZXhzbD0iaHR0cDovL2V4c2x0Lm9yZy9jb21tb24iCisJCXhtbG5zOnN0cj0iaHR0cDovL2V4c2x0Lm9yZy9zdHJpbmdzIgorCQlleHRlbnNpb24tZWxlbWVudC1wcmVmaXhlcz0iZXhzbCBzdHIiCisJCWV4Y2x1ZGUtcmVzdWx0LXByZWZpeGVzPSJleHNsIHN0ciI+CisgIDx4c2w6b3V0cHV0IG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iVVRGLTgiIGluZGVudD0ieWVzIi8+CisKKyAgPCEtLSBUaGlzIGlzIGNvbnZvbHV0ZWQgYnV0IG5lZWRlZCB0byBmb3JjZSB0aGUgY3VycmVudCBkb2N1bWVudCB0bworICAgICAgIGJlIHRoZSBBUEkgb25lIGFuZCBub3QgdGhlIHJlc3VsdCB0cmVlIGZyb20gdGhlIHRva2VuaXplKCkgcmVzdWx0LAorICAgICAgIGJlY2F1c2UgdGhlIGtleXMgYXJlIG9ubHkgZGVmaW5lZCBvbiB0aGUgbWFpbiBkb2N1bWVudCAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBtb2RlPSJkdW1wdG9rZW4iIG1hdGNoPScqJz4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InRva2VuIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJyZWYiIHNlbGVjdD0ia2V5KCdzeW1ib2xzJywgJHRva2VuKSIvPgorICAgIDx4c2w6Y2hvb3NlPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRyZWYiPgorICAgICAgICA8YSBocmVmPSJsaWJ4bWwyLXskcmVmL0BmaWxlfS5odG1sI3skcmVmL0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0b2tlbiIvPjwvYT4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0b2tlbiIvPgorICAgICAgPC94c2w6b3RoZXJ3aXNlPgorICAgIDwveHNsOmNob29zZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPCEtLSBkdW1wcyBhIHN0cmluZywgbWFraW5nIGNyb3NzLXJlZmVyZW5jZSBsaW5rcyAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0ZXh0Ii8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJjdHh0IiBzZWxlY3Q9Jy4nLz4KKyAgICA8IS0tIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGV4dCIvPiAtLT4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0ic3RyOnRva2VuaXplKCR0ZXh0LCAnICYjOTsnKSI+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IiRjdHh0IiBtb2RlPSdkdW1wdG9rZW4nPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idG9rZW4iIHNlbGVjdD0ic3RyaW5nKC4pIi8+CisgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgIT0gbGFzdCgpIj4KKyAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6aWY+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgIDwveHNsOnRlbXBsYXRlPgorCis8IS0tCisKKyAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGJ1aWxkcyB0aGUgU3lub3BzaXMgc2VjdGlvbgorCistLT4KKyAgPHhzbDp0ZW1wbGF0ZSBtb2RlPSJzeW5vcHNpcyIgbWF0Y2g9ImZ1bmN0aW9uIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKCRuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKHJldHVybi9AdHlwZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsZW4iIHNlbGVjdD0iKCgkbmxlbiArIDgpIC0gKCgkbmxlbiArIDgpIG1vZCA4KSkgKyAoKCR0bGVuICsgOCkgLSAoKCR0bGVuICsgOCkgbW9kIDgpKSIvPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJyZXR1cm4vQHR5cGUiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKyAgICA8YSBocmVmPSIje0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IC04Ij4KKyAgICAgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmx0OyAwIj4KKyAgICAgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOnRleHQ+JiM5Oyg8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0ibm90KGFyZykiPgorICAgICAgPHhzbDp0ZXh0PnZvaWQ8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJhcmciPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQHR5cGUiLz4KKyAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICA8eHNsOnRleHQ+IDwveHNsOnRleHQ+CisgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSAhPSBsYXN0KCkiPgorICAgICAgICA8eHNsOnRleHQ+LCA8L3hzbDp0ZXh0Pjxici8+CisJPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZndDsgOCI+CisJICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisJPC94c2w6aWY+CisJPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZndDsgMCI+CisJICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisJPC94c2w6aWY+CisJPHhzbDp0ZXh0PiYjOTsmIzk7JiM5OyYjOTsmIzk7IDwveHNsOnRleHQ+CisgICAgICA8L3hzbDppZj4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8eHNsOnRleHQ+KTs8L3hzbDp0ZXh0PgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbW9kZT0ic3lub3BzaXMiIG1hdGNoPSJmdW5jdHlwZSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5sZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aCgkbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRsZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aChyZXR1cm4vQHR5cGUpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJibGVuIiBzZWxlY3Q9IigoJG5sZW4gKyA4KSAtICgoJG5sZW4gKyA4KSBtb2QgOCkpICsgKCgkdGxlbiArIDgpIC0gKCgkdGxlbiArIDgpIG1vZCA4KSkiLz4KKyAgICA8eHNsOnRleHQ+dHlwZWRlZiA8L3hzbDp0ZXh0PgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJyZXR1cm4vQHR5cGUiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICA8YSBocmVmPSIje0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IC04Ij4KKyAgICAgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmx0OyAwIj4KKyAgICAgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOnRleHQ+JiM5Oyg8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0ibm90KGFyZykiPgorICAgICAgPHhzbDp0ZXh0PnZvaWQ8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJhcmciPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQHR5cGUiLz4KKyAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICA8eHNsOnRleHQ+IDwveHNsOnRleHQ+CisgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSAhPSBsYXN0KCkiPgorICAgICAgICA8eHNsOnRleHQ+LCA8L3hzbDp0ZXh0Pjxici8+CisJPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZndDsgOCI+CisJICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisJPC94c2w6aWY+CisJPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZndDsgMCI+CisJICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisJPC94c2w6aWY+CisJPHhzbDp0ZXh0PiYjOTsmIzk7JiM5OyYjOTsmIzk7IDwveHNsOnRleHQ+CisgICAgICA8L3hzbDppZj4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8eHNsOnRleHQ+KTs8L3hzbDp0ZXh0PgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbW9kZT0ic3lub3BzaXMiIG1hdGNoPSJleHBvcnRzW0B0eXBlPSdmdW5jdGlvbiddIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImRlZiIgc2VsZWN0PSJrZXkoJ3N5bWJvbHMnLEBzeW1ib2wpIi8+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgbW9kZT0ic3lub3BzaXMiIHNlbGVjdD0iJGRlZiIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1vZGU9InN5bm9wc2lzIiBtYXRjaD0iZXhwb3J0c1tAdHlwZT0ndHlwZWRlZiddIj4KKyAgICA8eHNsOnRleHQ+dHlwZWRlZiA8L3hzbDp0ZXh0PgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJzdHJpbmcoa2V5KCdzeW1ib2xzJyxAc3ltYm9sKS9AdHlwZSkiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICA8YSBocmVmPSIje0BzeW1ib2x9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHN5bWJvbCIvPjwvYT4KKyAgICA8eHNsOnRleHQ+OworPC94c2w6dGV4dD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtb2RlPSJzeW5vcHNpcyIgbWF0Y2g9ImV4cG9ydHNbQHR5cGU9J21hY3JvJ10iPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZGVmIiBzZWxlY3Q9ImtleSgnc3ltYm9scycsQHN5bWJvbCkiLz4KKyAgICA8eHNsOnRleHQ+I2RlZmluZSA8L3hzbDp0ZXh0PgorICAgIDxhIGhyZWY9IiN7QHN5bWJvbH0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAc3ltYm9sIi8+PC9hPgorICAgIDx4c2w6aWYgdGVzdD0iJGRlZi9hcmciPgorICAgICAgPHhzbDp0ZXh0Pig8L3hzbDp0ZXh0PgorICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9IiRkZWYvYXJnIj4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisJICA8eHNsOnRleHQ+LCA8L3hzbDp0ZXh0PgorCTwveHNsOmlmPgorICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8eHNsOnRleHQ+KTwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDp0ZXh0PjsKKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1vZGU9InN5bm9wc2lzIiBtYXRjaD0iZXhwb3J0c1tAdHlwZT0nZW51bSddIj4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbW9kZT0ic3lub3BzaXMiIG1hdGNoPSJleHBvcnRzW0B0eXBlPSdzdHJ1Y3QnXSI+CisgIDwveHNsOnRlbXBsYXRlPgorCis8IS0tCisKKyAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGJ1aWxkcyB0aGUgRGV0YWlscyBzZWN0aW9uCisKKy0tPgorICA8eHNsOnRlbXBsYXRlIG1vZGU9ImRldGFpbHMiIG1hdGNoPSJzdHJ1Y3QiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmFtZSIgc2VsZWN0PSJzdHJpbmcoQG5hbWUpIi8+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICA8aDM+PGEgbmFtZT0ieyRuYW1lfSI+U3RydWN0dXJlIDwvYT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2gzPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHR5cGUiLz48eHNsOnRleHQ+IHsKKzwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoZmllbGQpIj4KKyAgICAgIDx4c2w6dGV4dD5UaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImZpZWxkIj4KKyAgICAgICAgPHhzbDp0ZXh0PiAgICA8L3hzbDp0ZXh0PgorCTx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisJICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorCTwveHNsOmNhbGwtdGVtcGxhdGU+CisJPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCTx4c2w6aWYgdGVzdD0iQGluZm8gIT0gJyciPgorCSAgPHhzbDp0ZXh0PiYjOTs6IDwveHNsOnRleHQ+CisJICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJzdWJzdHJpbmcoQGluZm8sIDEsIDcwKSIvPgorCSAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD59IDwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgPHhzbDp0ZXh0PjsKKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgICAgPHA+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9ImluZm8iLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcD48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDwvZGl2Pjxoci8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbW9kZT0iZGV0YWlscyIgbWF0Y2g9InR5cGVkZWZbQHR5cGUgIT0gJ2VudW0nXSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgIDxoMz48YSBuYW1lPSJ7JG5hbWV9Ij5UeXBlZGVmIDwvYT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2gzPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0ic3RyaW5nKEB0eXBlKSIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPgorICAgIDx4c2w6dGV4dD47Cis8L3hzbDp0ZXh0PgorICAgIDwvcHJlPgorICAgIDxwPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJpbmZvIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3A+PHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICA8L2Rpdj48aHIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1vZGU9ImRldGFpbHMiIG1hdGNoPSJ2YXJpYWJsZSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgIDxoMz48YSBuYW1lPSJ7JG5hbWV9Ij5WYXJpYWJsZSA8L2E+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InN0cmluZyhAdHlwZSkiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz4KKyAgICA8eHNsOnRleHQ+OworPC94c2w6dGV4dD4KKyAgICA8L3ByZT4KKyAgICA8cD4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iaW5mbyIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC9wPjx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPC9kaXY+PGhyLz4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtb2RlPSJkZXRhaWxzIiBtYXRjaD0idHlwZWRlZltAdHlwZSA9ICdlbnVtJ10iPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmFtZSIgc2VsZWN0PSJzdHJpbmcoQG5hbWUpIi8+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICA8aDM+PGEgbmFtZT0ieyRuYW1lfSI+RW51bSA8L2E+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDp0ZXh0PmVudW0gPC94c2w6dGV4dD4KKyAgICA8YSBocmVmPSIjeyRuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9hPgorICAgIDx4c2w6dGV4dD4geworPC94c2w6dGV4dD4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iL2FwaS9zeW1ib2xzL2VudW1bQHR5cGU9JG5hbWVdIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkB2YWx1ZSIgZGF0YS10eXBlPSJudW1iZXIiIG9yZGVyPSJhc2NlbmRpbmciLz4KKyAgICAgIDx4c2w6dGV4dD4gICAgPC94c2w6dGV4dD4KKyAgICAgIDxhIG5hbWU9IntAbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT4KKyAgICAgIDx4c2w6aWYgdGVzdD0iQHZhbHVlIj4KKyAgICAgICAgPHhzbDp0ZXh0PiA9IDwveHNsOnRleHQ+CisJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB2YWx1ZSIvPgorICAgICAgPC94c2w6aWY+CisgICAgICA8eHNsOmlmIHRlc3Q9IkBpbmZvIj4KKyAgICAgICAgPHhzbDp0ZXh0PiAvKiA8L3hzbDp0ZXh0PgorCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAaW5mbyIvPgorICAgICAgICA8eHNsOnRleHQ+ICovPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgICAgPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8eHNsOnRleHQ+fTsKKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgICAgPHA+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9ImluZm8iLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcD48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDwvZGl2Pjxoci8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbW9kZT0iZGV0YWlscyIgbWF0Y2g9Im1hY3JvIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgPGgzPjxhIG5hbWU9InskbmFtZX0iPk1hY3JvIDwvYT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2gzPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+I2RlZmluZSA8L3hzbDp0ZXh0PgorICAgIDxhIGhyZWY9IiN7JG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+CisgICAgPHhzbDppZiB0ZXN0PSJhcmciPgorICAgICAgPHhzbDp0ZXh0Pig8L3hzbDp0ZXh0PgorICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCTx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSAhPSBsYXN0KCkiPgorCSAgPHhzbDp0ZXh0PiwgPC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKyAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgPHhzbDp0ZXh0Pik8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD47Cis8L3hzbDp0ZXh0PgorICAgIDwvcHJlPgorICAgIDxwPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJpbmZvIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3A+CisgICAgPHhzbDppZiB0ZXN0PSJhcmciPgorICAgICAgPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5PgorICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L3R0PjwvaT46PC9zcGFuPjwvdGQ+CisJICA8dGQ+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisJICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQGluZm8iLz4KKwkgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwkgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgIDwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDwvZGl2Pjxoci8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbW9kZT0iZGV0YWlscyIgbWF0Y2g9ImZ1bmN0aW9uIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKCRuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKHJldHVybi9AdHlwZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsZW4iIHNlbGVjdD0iKCgkbmxlbiArIDgpIC0gKCgkbmxlbiArIDgpIG1vZCA4KSkgKyAoKCR0bGVuICsgOCkgLSAoKCR0bGVuICsgOCkgbW9kIDgpKSIvPgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgPGgzPjxhIG5hbWU9InskbmFtZX0iPjwvYT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz4gKCk8L2gzPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0B0eXBlIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD48YnIvPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgICAgPHA+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9ImluZm8iLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcD48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0iYXJnIHwgcmV0dXJuL0BpbmZvIj4KKyAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJhcmciPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9IkBpbmZvIi8+CisJICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8eHNsOmlmIHRlc3Q9InJldHVybi9AaW5mbyI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AaW5mbyIvPgorCSAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorCSAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwveHNsOmlmPgorICAgICAgPC90Ym9keT48L3RhYmxlPjwvZGl2PgorICAgIDwveHNsOmlmPgorICAgIDwvZGl2Pjxoci8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbW9kZT0iZGV0YWlscyIgbWF0Y2g9ImZ1bmN0eXBlIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKCRuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKHJldHVybi9AdHlwZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsZW4iIHNlbGVjdD0iKCgkbmxlbiArIDgpIC0gKCgkbmxlbiArIDgpIG1vZCA4KSkgKyAoKCR0bGVuICsgOCkgLSAoKCR0bGVuICsgOCkgbW9kIDgpKSIvPgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgPGgzPjxhIG5hbWU9InskbmFtZX0iPjwvYT5GdW5jdGlvbiB0eXBlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPiA8L2gzPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0B0eXBlIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD48YnIvPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgICAgPHA+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9ImluZm8iLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcD48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0iYXJnIHwgcmV0dXJuL0BpbmZvIj4KKyAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJhcmciPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9IkBpbmZvIi8+CisJICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8eHNsOmlmIHRlc3Q9InJldHVybi9AaW5mbyI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AaW5mbyIvPgorCSAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorCSAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwveHNsOmlmPgorICAgICAgPC90Ym9keT48L3RhYmxlPjwvZGl2PgorICAgIDwveHNsOmlmPgorICAgIDwvZGl2Pjxoci8+CisgIDwveHNsOnRlbXBsYXRlPgorCis8IS0tCisKKyAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGJ1aWxkcyB0aGUgZ2VuZXJhbC5odG1sIHBhZ2UKKworLS0+CisgIDx4c2w6dGVtcGxhdGUgbmFtZT0iZ2VuZXJhdGVfZ2VuZXJhbCI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuZXh0IiBzZWxlY3Q9InN0cmluZygvYXBpL2ZpbGVzL2ZpbGVbcG9zaXRpb24oKT0xXS9AbmFtZSkiLz4KKyAgICA8eHNsOmRvY3VtZW50IHhtbG5zPSIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgbWV0aG9kPSJ4bWwiIGluZGVudD0ieWVzIiBlbmNvZGluZz0iVVRGLTgiPgorICAgICAgPGh0bWw+CisgICAgICAgIDxoZWFkPgorCSAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKwkgIDx0aXRsZT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iY29uY2F0KEBuYW1lLCAnOiAnLCBzdW1tYXJ5KSIvPjwvdGl0bGU+CisJICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisJICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisJICA8bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisJICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKwkgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgICAgICA8L2hlYWQ+CisJPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorCisgICAgICAgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisJICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgICAgICAgIDx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+PC9hPjwvdGQ+CisgICAgICAgICAgICAgIDx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPjwvYT48L3RkPgorCSAgICAgIDx4c2w6aWYgdGVzdD0iJG5leHQgIT0gJyciPgorCQk8dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXskbmV4dH0uaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPjwvYT48L3RkPgorCSAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICAgICAgICA8L3RyPgorCSAgPC90YWJsZT4KKwkgIDxoMj48c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+bGlieG1sMiBBUEkgTW9kdWxlczwvc3Bhbj48L2gyPgorCSAgPHA+CisJICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iL2FwaS9maWxlcy9maWxlIj4KKwkgICAgPGEgaHJlZj0ibGlieG1sMi17QG5hbWV9Lmh0bWwiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT4gLSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3VtbWFyeSIvPjxici8+CisJICA8L3hzbDpmb3ItZWFjaD4KKwkgIDwvcD4KKwk8L2JvZHk+CisgICAgICA8L2h0bWw+CisgICAgPC94c2w6ZG9jdW1lbnQ+CisgIDwveHNsOnRlbXBsYXRlPgorCis8IS0tCisKKyAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGJ1aWxkcyB0aGUgaW5kZXguaHRtbCBwYWdlCisKKy0tPgorICA8eHNsOnRlbXBsYXRlIG5hbWU9ImdlbmVyYXRlX2luZGV4Ij4KKyAgICA8eHNsOmRvY3VtZW50IHhtbG5zPSIiIGhyZWY9ImluZGV4Lmh0bWwiIG1ldGhvZD0ieG1sIiBpbmRlbnQ9InllcyIgZW5jb2Rpbmc9IlVURi04Ij4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKwkgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisJICA8dGl0bGU+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aXRsZT4KKwkgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKwkgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICAgICA8L2hlYWQ+CisJPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorCisgICAgICAgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisJICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgICAgICAgIDx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPjwvYT48L3RkPgorCSAgICAgIDx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImdlbmVyYWwuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPjwvYT48L3RkPgorICAgICAgICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICAgICAgICA8L3RyPgorCSAgPC90YWJsZT4KKwkgIDxoMj48c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC9zcGFuPjwvaDI+Cis8cD5MaWJ4bWwyIGlzIHRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgZGV2ZWxvcGVkIGZvciB0aGUgR25vbWUgcHJvamVjdAorKGJ1dCB1c2FibGUgb3V0c2lkZSBvZiB0aGUgR25vbWUgcGxhdGZvcm0pLCBpdCBpcyBmcmVlIHNvZnR3YXJlIGF2YWlsYWJsZQordW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UuaHRtbCI+TUlUCitMaWNlbnNlPC9hPi4gWE1MIGl0c2VsZiBpcyBhIG1ldGFsYW5ndWFnZSB0byBkZXNpZ24gbWFya3VwIGxhbmd1YWdlcywgaS5lLgordGV4dCBsYW5ndWFnZSB3aGVyZSBzZW1hbnRpYyBhbmQgc3RydWN0dXJlIGFyZSBhZGRlZCB0byB0aGUgY29udGVudCB1c2luZworZXh0cmEgIm1hcmt1cCIgaW5mb3JtYXRpb24gZW5jbG9zZWQgYmV0d2VlbiBhbmdsZSBicmFja2V0cy4gSFRNTCBpcyB0aGUgbW9zdAord2VsbC1rbm93biBtYXJrdXAgbGFuZ3VhZ2UuIFRob3VnaCB0aGUgbGlicmFyeSBpcyB3cml0dGVuIGluIEMgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL3B5dGhvbi5odG1sIj5hIHZhcmlldHkgb2YgbGFuZ3VhZ2UgYmluZGluZ3M8L2E+IG1ha2UgaXQgYXZhaWxhYmxlIGluCitvdGhlciBlbnZpcm9ubWVudHMuPC9wPgorPHA+TGlieG1sMiBpbXBsZW1lbnRzIGEgbnVtYmVyIG9mIGV4aXN0aW5nIHN0YW5kYXJkcyByZWxhdGVkIHRvIG1hcmt1cAorbGFuZ3VhZ2VzOjwvcD4KKzx1bD48bGk+dGhlIFhNTCBzdGFuZGFyZDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCI+aHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbDwvYT48L2xpPgorPGxpPk5hbWVzcGFjZXMgaW4gWE1MOiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLW5hbWVzLyI+aHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy88L2E+PC9saT4KKzxsaT5YTUwgQmFzZTogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sYmFzZS8iPmh0dHA6Ly93d3cudzMub3JnL1RSL3htbGJhc2UvPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jaXMub2hpby1zdGF0ZS5lZHUvcmZjL3JmYzIzOTYudHh0Ij5SRkMgMjM5NjwvYT4gOgorVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVycyA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCI+aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQ8L2E+PC9saT4KKzxsaT5YTUwgUGF0aCBMYW5ndWFnZSAoWFBhdGgpIDEuMDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveHBhdGgiPmh0dHA6Ly93d3cudzMub3JnL1RSL3hwYXRoPC9hPjwvbGk+Cis8bGk+SFRNTDQgcGFyc2VyOiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNDAxLyI+aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQwMS88L2E+PC9saT4KKzxsaT5YTUwgUG9pbnRlciBMYW5ndWFnZSAoWFBvaW50ZXIpIFZlcnNpb24gMS4wOiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94cHRyIj5odHRwOi8vd3d3LnczLm9yZy9UUi94cHRyPC9hPjwvbGk+Cis8bGk+WE1MIEluY2x1c2lvbnMgKFhJbmNsdWRlKSBWZXJzaW9uIDEuMDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveGluY2x1ZGUvIj5odHRwOi8vd3d3LnczLm9yZy9UUi94aW5jbHVkZS88L2E+PC9saT4KKzxsaT5JU08tODg1OS14IGVuY29kaW5ncywgYXMgd2VsbCBhcyA8YSBocmVmPSJodHRwOi8vd3d3LmNpcy5vaGlvLXN0YXRlLmVkdS9yZmMvcmZjMjA0NC50eHQiPnJmYzIwNDQ8L2E+IFtVVEYtOF0KK2FuZCA8YSBocmVmPSJodHRwOi8vd3d3LmNpcy5vaGlvLXN0YXRlLmVkdS9yZmMvcmZjMjc4MS50eHQiPnJmYzI3ODE8L2E+CitbVVRGLTE2XSBVbmljb2RlIGVuY29kaW5ncywgYW5kIG1vcmUgaWYgdXNpbmcgaWNvbnYgc3VwcG9ydDwvbGk+Cis8bGk+cGFydCBvZiBTR01MIE9wZW4gVGVjaG5pY2FsIFJlc29sdXRpb24gVFI5NDAxOjE5OTc8L2xpPgorPGxpPlhNTCBDYXRhbG9ncyBXb3JraW5nIERyYWZ0IDA2IEF1Z3VzdCAyMDAxOiA8YSBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3NwZWMtMjAwMS0wOC0wNi5odG1sIj5odHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3NwZWMtMjAwMS0wOC0wNi5odG1sPC9hPjwvbGk+Cis8bGk+Q2Fub25pY2FsIFhNTCBWZXJzaW9uIDEuMDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4iPmh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuPC9hPgorYW5kIHRoZSBFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24gQ1IgZHJhZnQgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWV4Yy1jMTRuIj5odHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG48L2E+PC9saT4KKzxsaT5SZWxheCBORywgSVNPL0lFQyAxOTc1Ny0yOjIwMDMsIDxhIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9yZWxheC1uZy9zcGVjLTIwMDExMjAzLmh0bWwiPmh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9yZWxheC1uZy9zcGVjLTIwMDExMjAzLmh0bWw8L2E+PC9saT4KKzxsaT5XM0MgWE1MIFNjaGVtYXMgUGFydCAyOiBEYXRhdHlwZXMgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sc2NoZW1hLTItMjAwMTA1MDIvIj5SRUMgMDIgTWF5CisyMDAxPC9hPjwvbGk+Cis8bGk+VzNDIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1pZC8iPnhtbDppZDwvYT4gV29ya2luZyBEcmFmdCA3CitBcHJpbCAyMDA0PC9saT4KKzwvdWw+CisJICA8cD4gQXMgYSByZXN1bHQgdGhlIDxhIGhyZWY9ImdlbmVyYWwuaHRtbCI+bGlieG1sMiBBUEk8L2E+IGlzIHZlcnkKKwkgICAgICBsYXJnZS4gSWYgeW91IGdldCBsb3N0IHNlYXJjaGluZyBmb3Igc29tZSBzcGVjaWZpYyBBUEkgdXNlCisJICAgICAgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL3NlYXJjaC5waHAiPnRoZSBvbmxpbmUgc2VhcmNoCisJICAgICAgZW5naW5lPC9hPiBob3N0ZWQgb24gPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+eG1sc29mdC5vcmc8L2E+CisJICAgICAgdGhlIGxpYnhtbDIgYW5kIGxpYnhzbHQgcHJvamVjdCBwYWdlLiA8L3A+CisJPC9ib2R5PgorICAgICAgPC9odG1sPgorICAgIDwveHNsOmRvY3VtZW50PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2luZGV4Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZjMjgzOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDY3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5MaWJ4bWwyIGlzIHRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgZGV2ZWxvcGVkIGZvciB0aGUgR25vbWUgcHJvamVjdAorKGJ1dCB1c2FibGUgb3V0c2lkZSBvZiB0aGUgR25vbWUgcGxhdGZvcm0pLCBpdCBpcyBmcmVlIHNvZnR3YXJlIGF2YWlsYWJsZQordW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UuaHRtbCI+TUlUCitMaWNlbnNlPC9hPi4gWE1MIGl0c2VsZiBpcyBhIG1ldGFsYW5ndWFnZSB0byBkZXNpZ24gbWFya3VwIGxhbmd1YWdlcywgaS5lLgordGV4dCBsYW5ndWFnZSB3aGVyZSBzZW1hbnRpYyBhbmQgc3RydWN0dXJlIGFyZSBhZGRlZCB0byB0aGUgY29udGVudCB1c2luZworZXh0cmEgIm1hcmt1cCIgaW5mb3JtYXRpb24gZW5jbG9zZWQgYmV0d2VlbiBhbmdsZSBicmFja2V0cy4gSFRNTCBpcyB0aGUgbW9zdAord2VsbC1rbm93biBtYXJrdXAgbGFuZ3VhZ2UuIFRob3VnaCB0aGUgbGlicmFyeSBpcyB3cml0dGVuIGluIEMgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL3B5dGhvbi5odG1sIj5hIHZhcmlldHkgb2YgbGFuZ3VhZ2UgYmluZGluZ3M8L2E+IG1ha2UgaXQgYXZhaWxhYmxlIGluCitvdGhlciBlbnZpcm9ubWVudHMuPC9wPgorICAgIDxwPkxpYnhtbDIgaW1wbGVtZW50cyBhIG51bWJlciBvZiBleGlzdGluZyBzdGFuZGFyZHMgcmVsYXRlZCB0byBtYXJrdXAKK2xhbmd1YWdlczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPnRoZSBYTUwgc3RhbmRhcmQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwiPmh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWw8L2E+PC9saT4KKyAgICAgIDxsaT5OYW1lc3BhY2VzIGluIFhNTDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy8iPmh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMvPC9hPjwvbGk+CisgICAgICA8bGk+WE1MIEJhc2U6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbGJhc2UvIj5odHRwOi8vd3d3LnczLm9yZy9UUi94bWxiYXNlLzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY2lzLm9oaW8tc3RhdGUuZWR1L3JmYy9yZmMyMzk2LnR4dCI+UkZDIDIzOTY8L2E+IDoKK1VuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcnMgPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQiPmh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIzOTYudHh0PC9hPjwvbGk+CisgICAgICA8bGk+WE1MIFBhdGggTGFuZ3VhZ2UgKFhQYXRoKSAxLjA6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hwYXRoIj5odHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aDwvYT48L2xpPgorICAgICAgPGxpPkhUTUw0IHBhcnNlcjogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQwMS8iPmh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0MDEvPC9hPjwvbGk+CisgICAgICA8bGk+WE1MIFBvaW50ZXIgTGFuZ3VhZ2UgKFhQb2ludGVyKSBWZXJzaW9uIDEuMDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveHB0ciI+aHR0cDovL3d3dy53My5vcmcvVFIveHB0cjwvYT48L2xpPgorICAgICAgPGxpPlhNTCBJbmNsdXNpb25zIChYSW5jbHVkZSkgVmVyc2lvbiAxLjA6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hpbmNsdWRlLyI+aHR0cDovL3d3dy53My5vcmcvVFIveGluY2x1ZGUvPC9hPjwvbGk+CisgICAgICA8bGk+SVNPLTg4NTkteCBlbmNvZGluZ3MsIGFzIHdlbGwgYXMgPGEgaHJlZj0iaHR0cDovL3d3dy5jaXMub2hpby1zdGF0ZS5lZHUvcmZjL3JmYzIwNDQudHh0Ij5yZmMyMDQ0PC9hPiBbVVRGLThdCithbmQgPGEgaHJlZj0iaHR0cDovL3d3dy5jaXMub2hpby1zdGF0ZS5lZHUvcmZjL3JmYzI3ODEudHh0Ij5yZmMyNzgxPC9hPgorW1VURi0xNl0gVW5pY29kZSBlbmNvZGluZ3MsIGFuZCBtb3JlIGlmIHVzaW5nIGljb252IHN1cHBvcnQ8L2xpPgorICAgICAgPGxpPnBhcnQgb2YgU0dNTCBPcGVuIFRlY2huaWNhbCBSZXNvbHV0aW9uIFRSOTQwMToxOTk3PC9saT4KKyAgICAgIDxsaT5YTUwgQ2F0YWxvZ3MgV29ya2luZyBEcmFmdCAwNiBBdWd1c3QgMjAwMTogPGEgaHJlZj0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLTIwMDEtMDgtMDYuaHRtbCI+aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLTIwMDEtMDgtMDYuaHRtbDwvYT48L2xpPgorICAgICAgPGxpPkNhbm9uaWNhbCBYTUwgVmVyc2lvbiAxLjA6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuIj5odHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bjwvYT4KK2FuZCB0aGUgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uIENSIGRyYWZ0IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0biI+aHR0cDovL3d3dy53My5vcmcvVFIveG1sLWV4Yy1jMTRuPC9hPjwvbGk+CisgICAgICA8bGk+UmVsYXggTkcsIElTTy9JRUMgMTk3NTctMjoyMDAzLCA8YSBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvcmVsYXgtbmcvc3BlYy0yMDAxMTIwMy5odG1sIj5odHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvcmVsYXgtbmcvc3BlYy0yMDAxMTIwMy5odG1sPC9hPjwvbGk+CisgICAgICA8bGk+VzNDIFhNTCBTY2hlbWFzIFBhcnQgMjogRGF0YXR5cGVzIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbHNjaGVtYS0yLTIwMDEwNTAyLyI+UkVDIDAyIE1heQorMjAwMTwvYT48L2xpPgorICAgICAgPGxpPlczQyA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtaWQvIj54bWw6aWQ8L2E+IFdvcmtpbmcgRHJhZnQgNworQXByaWwgMjAwNDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4gQXMgYSByZXN1bHQgdGhlIDxhIGhyZWY9ImdlbmVyYWwuaHRtbCI+bGlieG1sMiBBUEk8L2E+IGlzIHZlcnkKKwkgICAgICBsYXJnZS4gSWYgeW91IGdldCBsb3N0IHNlYXJjaGluZyBmb3Igc29tZSBzcGVjaWZpYyBBUEkgdXNlCisJICAgICAgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL3NlYXJjaC5waHAiPnRoZSBvbmxpbmUgc2VhcmNoCisJICAgICAgZW5naW5lPC9hPiBob3N0ZWQgb24gPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+eG1sc29mdC5vcmc8L2E+CisJICAgICAgdGhlIGxpYnhtbDIgYW5kIGxpYnhzbHQgcHJvamVjdCBwYWdlLiA8L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGVmdC5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xlZnQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkMDViM2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xlZnQucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1ET0NCcGFyc2VyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItRE9DQnBhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3YjUxNGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItRE9DQnBhcnNlci5odG1sCkBAIC0wLDAgKzEsMTM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPkRPQ0JwYXJzZXI6IG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5ET0NCcGFyc2VyPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+RE9DQnBhcnNlciAtIG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyPC9wPgorICAgIDxwPmludGVyZmFjZSBmb3IgYSBEb2NCb29rIFNHTUwgbm9uLXZlcmlmeWluZyBwYXJzZXIgVGhpcyBjb2RlIGlzIERFUFJFQ0FURUQsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS4gPC9wPgorICAgIDxwPiBXQVJOSU5HOiB0aGlzIG1vZHVsZSBpcyBkZXByZWNhdGVkICE8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+dHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IDxhIGhyZWY9IiNkb2NiUGFyc2VySW5wdXRQdHIiPmRvY2JQYXJzZXJJbnB1dFB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+IDxhIGhyZWY9IiNkb2NiUGFyc2VyQ3R4dCI+ZG9jYlBhcnNlckN0eHQ8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiA8YSBocmVmPSIjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPiA8YSBocmVmPSIjZG9jYlBhcnNlcklucHV0Ij5kb2NiUGFyc2VySW5wdXQ8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gPGEgaHJlZj0iI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPiA8YSBocmVmPSIjZG9jYlNBWEhhbmRsZXIiPmRvY2JTQVhIYW5kbGVyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gPGEgaHJlZj0iI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT47Cit2b2lkCTxhIGhyZWY9IiNkb2NiRnJlZVBhcnNlckN0eHQiPmRvY2JGcmVlUGFyc2VyQ3R4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4JPGEgaHJlZj0iI2RvY2JQYXJzZURvYyI+ZG9jYlBhcnNlRG9jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTsKKzxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTsKKzxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+CTxhIGhyZWY9IiNkb2NiU0FYUGFyc2VGaWxlIj5kb2NiU0FYUGFyc2VGaWxlPC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlclB0ciI+ZG9jYlNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlckRhdGEpOworPGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4JPGEgaHJlZj0iI2RvY2JTQVhQYXJzZURvYyI+ZG9jYlNBWFBhcnNlRG9jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSk7Cis8YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiNkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyLz4JCQkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpOworaW50CTxhIGhyZWY9IiNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT4JCSh1bnNpZ25lZCBjaGFyICogb3V0LCA8YnIvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyLz4JCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICogaW4sIDxici8+CQkJCQkgaW50ICogaW5sZW4sIDxici8+CQkJCQkgaW50IHF1b3RlQ2hhcik7Cis8YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPgk8YSBocmVmPSIjZG9jYlBhcnNlRmlsZSI+ZG9jYlBhcnNlRmlsZTwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTsKK2ludAk8YSBocmVmPSIjZG9jYlBhcnNlRG9jdW1lbnQiPmRvY2JQYXJzZURvY3VtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI2RvY2JQYXJzZUNodW5rIj5kb2NiUGFyc2VDaHVuazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBpbnQgdGVybWluYXRlKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiRG9jUHRyIj5UeXBlZGVmIDwvYT5kb2NiRG9jUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvY2JEb2NQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlckN0eHQiPlR5cGVkZWYgPC9hPmRvY2JQYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dCI+eG1sUGFyc2VyQ3R4dDwvYT4gZG9jYlBhcnNlckN0eHQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlckN0eHRQdHIiPlR5cGVkZWYgPC9hPmRvY2JQYXJzZXJDdHh0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gZG9jYlBhcnNlckN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlcklucHV0Ij5UeXBlZGVmIDwvYT5kb2NiUGFyc2VySW5wdXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dCI+eG1sUGFyc2VySW5wdXQ8L2E+IGRvY2JQYXJzZXJJbnB1dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VySW5wdXRQdHIiPlR5cGVkZWYgPC9hPmRvY2JQYXJzZXJJbnB1dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gZG9jYlBhcnNlcklucHV0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JTQVhIYW5kbGVyIj5UeXBlZGVmIDwvYT5kb2NiU0FYSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+IGRvY2JTQVhIYW5kbGVyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JTQVhIYW5kbGVyUHRyIj5UeXBlZGVmIDwvYT5kb2NiU0FYSGFuZGxlclB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IGRvY2JTQVhIYW5kbGVyUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCIvPmRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4JZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0CShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhIGZpbGUgY29udGVudC4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0Ii8+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPglkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQJKDxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyLz4JCQkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciB1c2luZyB0aGUgRG9jQm9vayBTR01MIHBhcnNlciBpbiBwdXNoIG1vZGUgVG8gYWxsb3cgY29udGVudCBlbmNvZGluZyBkZXRlY3Rpb24sIEBzaXplIHNob3VsZCBiZSAmZ3Q7PSA0IFRoZSB2YWx1ZSBvZiBAZmlsZW5hbWUgaXMgdXNlZCBmb3IgZmV0Y2hpbmcgZXh0ZXJuYWwgZW50aXRpZXMgYW5kIGVycm9yL3dhcm5pbmcgcmVwb3J0cy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNodW5rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wdGlvbmFsIGVuY29kaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiRW5jb2RlRW50aXRpZXMiLz5kb2NiRW5jb2RlRW50aXRpZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJZG9jYkVuY29kZUVudGl0aWVzCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyLz4JCQkJCSBpbnQgKiBvdXRsZW4sIDxici8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIvPgkJCQkJIGludCAqIGlubGVuLCA8YnIvPgkJCQkJIGludCBxdW90ZUNoYXIpPGJyLz4KKzwvcHJlPjxwPlRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gQVNDSUkgcGx1cyBTR01MIGVudGl0aWVzIGJsb2NrIG9mIGNoYXJzIG91dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dGxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAb3V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnF1b3RlQ2hhcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHF1b3RlIGNoYXJhY3RlciB0byBlc2NhcGUgKCcgb3IgIikgb3IgemVyby48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VzcywgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzLCBvciAtMSBvdGhlcndpc2UgVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgYXMgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYkZyZWVQYXJzZXJDdHh0Ii8+ZG9jYkZyZWVQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlkb2NiRnJlZVBhcnNlckN0eHQJCSg8YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgYWxsIHRoZSBtZW1vcnkgdXNlZCBieSBhIHBhcnNlciBjb250ZXh0LiBIb3dldmVyIHRoZSBwYXJzZWQgZG9jdW1lbnQgaW4gY3R4dC0mZ3Q7bXlEb2MgaXMgbm90IGZyZWVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gU0dNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JQYXJzZUNodW5rIi8+ZG9jYlBhcnNlQ2h1bmsgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJZG9jYlBhcnNlQ2h1bmsJCQkoPGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBpbnQgdGVybWluYXRlKTxici8+Cis8L3ByZT48cD5QYXJzZSBhIENodW5rIG9mIG1lbW9yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaHVuazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgaW4gYnl0ZSBvZiB0aGUgY2h1bms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRlcm1pbmF0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGFzdCBjaHVuayBpbmRpY2F0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnplcm8gaWYgbm8gZXJyb3IsIHRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3JzIj54bWxQYXJzZXJFcnJvcnM8L2E+IG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VEb2MiLz5kb2NiUGFyc2VEb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPglkb2NiUGFyc2VEb2MJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gU0dNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBTR01MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VEb2N1bWVudCIvPmRvY2JQYXJzZURvY3VtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWRvY2JQYXJzZURvY3VtZW50CQkoPGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBTR01MIGRvY3VtZW50IChhbmQgYnVpbGQgYSB0cmVlIGlmIHVzaW5nIHRoZSBzdGFuZGFyZCBTQVggaW50ZXJmYWNlKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFNHTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAsIC0xIGluIGNhc2Ugb2YgZXJyb3IuIHRoZSBwYXJzZXIgY29udGV4dCBpcyBhdWdtZW50ZWQgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlRmlsZSIvPmRvY2JQYXJzZUZpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPglkb2NiUGFyc2VGaWxlCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYSBEb2Nib29rIFNHTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JTQVhQYXJzZURvYyIvPmRvY2JTQVhQYXJzZURvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+CWRvY2JTQVhQYXJzZURvYwkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gU0dNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JTQVhQYXJzZUZpbGUiLz5kb2NiU0FYUGFyc2VGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4JZG9jYlNBWFBhcnNlRmlsZQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlclB0ciI+ZG9jYlNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlckRhdGEpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFNHTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBTR01MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlckRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItSFRNTHBhcnNlci5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLUhUTUxwYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2UwMWUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLUhUTUxwYXJzZXIuaHRtbApAQCAtMCwwICsxLDM3MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5IVE1McGFyc2VyOiBpbnRlcmZhY2UgZm9yIGFuIEhUTUwgNC4wIG5vbi12ZXJpZnlpbmcgcGFyc2VyPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLUhUTUx0cmVlLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5IVE1McGFyc2VyPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+SFRNTHBhcnNlciAtIGludGVyZmFjZSBmb3IgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXI8L3A+CisgICAgPHA+dGhpcyBtb2R1bGUgaW1wbGVtZW50cyBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlciB3aXRoIEFQSSBjb21wYXRpYmxlIHdpdGggdGhlIFhNTCBwYXJzZXIgb25lcy4gSXQgc2hvdWxkIGJlIGFibGUgdG8gcGFyc2UgInJlYWwgd29ybGQiIEhUTUwsIGV2ZW4gaWYgc2V2ZXJlbHkgYnJva2VuIGZyb20gYSBzcGVjaWZpY2F0aW9uIHBvaW50IG9mIHZpZXcuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj4jZGVmaW5lIDxhIGhyZWY9IiNodG1sRGVmYXVsdFN1YmVsZW1lbnQiPmh0bWxEZWZhdWx0U3ViZWxlbWVudDwvYT4oZWx0KTsKKyNkZWZpbmUgPGEgaHJlZj0iI2h0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjIj5odG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYzwvYT4ocGFyZW50LCBlbHQpOworI2RlZmluZSA8YSBocmVmPSIjaHRtbFJlcXVpcmVkQXR0cnMiPmh0bWxSZXF1aXJlZEF0dHJzPC9hPihlbHQpOwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT4gPGEgaHJlZj0iI2h0bWxQYXJzZXJOb2RlSW5mbyI+aHRtbFBhcnNlck5vZGVJbmZvPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPiA8YSBocmVmPSIjaHRtbFBhcnNlcklucHV0Ij5odG1sUGFyc2VySW5wdXQ8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiA8YSBocmVmPSIjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF9odG1sRW50aXR5RGVzYyA8YSBocmVmPSIjaHRtbEVudGl0eURlc2MiPmh0bWxFbnRpdHlEZXNjPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IDxhIGhyZWY9IiNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gPGEgaHJlZj0iI2h0bWxTQVhIYW5kbGVyUHRyIj5odG1sU0FYSGFuZGxlclB0cjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI2h0bWxTdGF0dXMiPmh0bWxTdGF0dXM8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiA8YSBocmVmPSIjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICogPGEgaHJlZj0iI2h0bWxFbGVtRGVzY1B0ciI+aHRtbEVsZW1EZXNjUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF9odG1sRWxlbURlc2MgPGEgaHJlZj0iI2h0bWxFbGVtRGVzYyI+aHRtbEVsZW1EZXNjPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gPGEgaHJlZj0iI2h0bWxTQVhIYW5kbGVyIj5odG1sU0FYSGFuZGxlcjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gPGEgaHJlZj0iI2h0bWxQYXJzZXJJbnB1dFB0ciI+aHRtbFBhcnNlcklucHV0UHRyPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjaHRtbFBhcnNlck9wdGlvbiI+aHRtbFBhcnNlck9wdGlvbjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT4gKiA8YSBocmVmPSIjaHRtbEVudGl0eURlc2NQdHIiPmh0bWxFbnRpdHlEZXNjUHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dCI+eG1sUGFyc2VyQ3R4dDwvYT4gPGEgaHJlZj0iI2h0bWxQYXJzZXJDdHh0Ij5odG1sUGFyc2VyQ3R4dDwvYT47CitpbnQJPGEgaHJlZj0iI2h0bWxJc1NjcmlwdEF0dHJpYnV0ZSI+aHRtbElzU2NyaXB0QXR0cmlidXRlPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjaHRtbEhhbmRsZU9taXR0ZWRFbGVtIj5odG1sSGFuZGxlT21pdHRlZEVsZW08L2E+CQkoaW50IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbFJlYWRGZCI+aHRtbFJlYWRGZDwvYT4JCShpbnQgZmQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxSZWFkSU8iPmh0bWxSZWFkSU88L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxQYXJzZUZpbGUiPmh0bWxQYXJzZUZpbGU8L2E+CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk7Cis8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbEN0eHRSZWFkRG9jIj5odG1sQ3R4dFJlYWREb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworaW50CTxhIGhyZWY9IiNodG1sQXV0b0Nsb3NlVGFnIj5odG1sQXV0b0Nsb3NlVGFnPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVB0ciI+aHRtbE5vZGVQdHI8L2E+IGVsZW0pOworaW50CTxhIGhyZWY9IiNodG1sUGFyc2VDaHVuayI+aHRtbFBhcnNlQ2h1bms8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogY2h1bmssIDxici8+CQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkgaW50IHRlcm1pbmF0ZSk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKgk8YSBocmVmPSIjaHRtbFRhZ0xvb2t1cCI+aHRtbFRhZ0xvb2t1cDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YWcpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjaHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQiPmh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCQkJIGludCBzaXplKTsKK3ZvaWQJPGEgaHJlZj0iI2h0bWxDdHh0UmVzZXQiPmh0bWxDdHh0UmVzZXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI2h0bWxFbGVtZW50QWxsb3dlZEhlcmUiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICogcGFyZW50LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbHQpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxDdHh0UmVhZElPIj5odG1sQ3R4dFJlYWRJTzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYSGFuZGxlclB0ciI+aHRtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkJCSBjb25zdCBjaGFyICogY2h1bmssIDxici8+CQkJCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTsKKzxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sUmVhZE1lbW9yeSI+aHRtbFJlYWRNZW1vcnk8L2E+CQkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI2h0bWxJc0F1dG9DbG9zZWQiPmh0bWxJc0F1dG9DbG9zZWQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlUHRyIj5odG1sTm9kZVB0cjwvYT4gZWxlbSk7CitpbnQJPGEgaHJlZj0iI2h0bWxQYXJzZUNoYXJSZWYiPmh0bWxQYXJzZUNoYXJSZWY8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sUmVhZERvYyI+aHRtbFJlYWREb2M8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPgkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbiwgPGJyLz4JCQkJCSBpbnQgcXVvdGVDaGFyKTsKKzxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxTdGF0dXMiPmh0bWxTdGF0dXM8L2E+CTxhIGhyZWY9IiNodG1sTm9kZVN0YXR1cyI+aHRtbE5vZGVTdGF0dXM8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGludCBsZWdhY3kpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFN0YXR1cyI+aHRtbFN0YXR1czwvYT4JPGEgaHJlZj0iI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtRGVzYyI+aHRtbEVsZW1EZXNjPC9hPiAqIGVsdCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYXR0ciwgPGJyLz4JCQkJCSBpbnQgbGVnYWN5KTsKKzxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sU0FYUGFyc2VGaWxlIj5odG1sU0FYUGFyc2VGaWxlPC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYSGFuZGxlclB0ciI+aHRtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlckRhdGEpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2MiPmh0bWxFbnRpdHlEZXNjPC9hPiAqCTxhIGhyZWY9IiNodG1sUGFyc2VFbnRpdHlSZWYiPmh0bWxQYXJzZUVudGl0eVJlZjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBzdHIpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFN0YXR1cyI+aHRtbFN0YXR1czwvYT4JPGEgaHJlZj0iI2h0bWxFbGVtZW50U3RhdHVzSGVyZSI+aHRtbEVsZW1lbnRTdGF0dXNIZXJlPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICogcGFyZW50LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtRGVzYyI+aHRtbEVsZW1EZXNjPC9hPiAqIGVsdCk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5RGVzYyI+aHRtbEVudGl0eURlc2M8L2E+ICoJPGEgaHJlZj0iI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPgkodW5zaWduZWQgaW50IHZhbHVlKTsKK3ZvaWQJPGEgaHJlZj0iI2h0bWxQYXJzZUVsZW1lbnQiPmh0bWxQYXJzZUVsZW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2ludAk8YSBocmVmPSIjVVRGOFRvSHRtbCI+VVRGOFRvSHRtbDwvYT4JCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyLz4JCQkJCSBpbnQgKiBvdXRsZW4sIDxici8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIvPgkJCQkJIGludCAqIGlubGVuKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT4gKgk8YSBocmVmPSIjaHRtbEVudGl0eUxvb2t1cCI+aHRtbEVudGl0eUxvb2t1cDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI2h0bWxGcmVlUGFyc2VyQ3R4dCI+aHRtbEZyZWVQYXJzZXJDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbEN0eHRSZWFkTWVtb3J5Ij5odG1sQ3R4dFJlYWRNZW1vcnk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbEN0eHRSZWFkRmQiPmh0bWxDdHh0UmVhZEZkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgZmQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxSZWFkRmlsZSI+aHRtbFJlYWRGaWxlPC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxDdHh0UmVhZEZpbGUiPmh0bWxDdHh0UmVhZEZpbGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI2h0bWxQYXJzZURvY3VtZW50Ij5odG1sUGFyc2VEb2N1bWVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjaHRtbE5ld1BhcnNlckN0eHQiPmh0bWxOZXdQYXJzZXJDdHh0PC9hPgkodm9pZCk7Cis8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbFNBWFBhcnNlRG9jIj5odG1sU0FYUGFyc2VEb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWEhhbmRsZXJQdHIiPmh0bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgdm9pZCAqIHVzZXJEYXRhKTsKK2ludAk8YSBocmVmPSIjaHRtbEN0eHRVc2VPcHRpb25zIj5odG1sQ3R4dFVzZU9wdGlvbnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKKzxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sUGFyc2VEb2MiPmh0bWxQYXJzZURvYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbERlZmF1bHRTdWJlbGVtZW50Ij5NYWNybyA8L2E+aHRtbERlZmF1bHRTdWJlbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjaHRtbERlZmF1bHRTdWJlbGVtZW50Ij5odG1sRGVmYXVsdFN1YmVsZW1lbnQ8L2E+KGVsdCk7Cis8L3ByZT48cD5SZXR1cm5zIHRoZSBkZWZhdWx0IHN1YmVsZW1lbnQgZm9yIHRoaXMgZWxlbWVudDwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+SFRNTCBlbGVtZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyI+TWFjcm8gPC9hPmh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjPC9hPihwYXJlbnQsIGVsdCk7Cis8L3ByZT48cD5DaGVja3Mgd2hldGhlciBhbiBIVE1MIGVsZW1lbnQgZGVzY3JpcHRpb24gbWF5IGJlIGEgZGlyZWN0IGNoaWxkIG9mIHRoZSBzcGVjaWZpZWQgZWxlbWVudC4gUmV0dXJucyAxIGlmIGFsbG93ZWQ7IDAgb3RoZXJ3aXNlLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhcmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+SFRNTCBwYXJlbnQgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWx0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5IVE1MIGVsZW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxSZXF1aXJlZEF0dHJzIj5NYWNybyA8L2E+aHRtbFJlcXVpcmVkQXR0cnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNodG1sUmVxdWlyZWRBdHRycyI+aHRtbFJlcXVpcmVkQXR0cnM8L2E+KGVsdCk7Cis8L3ByZT48cD5SZXR1cm5zIHRoZSBhdHRyaWJ1dGVzIHJlcXVpcmVkIGZvciB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWx0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5IVE1MIGVsZW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxEb2NQdHIiPlR5cGVkZWYgPC9hPmh0bWxEb2NQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gaHRtbERvY1B0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sRWxlbURlc2MiPlN0cnVjdHVyZSA8L2E+aHRtbEVsZW1EZXNjPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF9odG1sRWxlbURlc2MgeworICAgIGNvbnN0IGNoYXIgKgluYW1lCTogVGhlIHRhZyBuYW1lCisgICAgY2hhcglzdGFydFRhZwk6IFdoZXRoZXIgdGhlIHN0YXJ0IHRhZyBjYW4gYmUgaW1wbGllZAorICAgIGNoYXIJZW5kVGFnCTogV2hldGhlciB0aGUgZW5kIHRhZyBjYW4gYmUgaW1wbGllZAorICAgIGNoYXIJc2F2ZUVuZFRhZwk6IFdoZXRoZXIgdGhlIGVuZCB0YWcgc2hvdWxkIGJlIHNhdmVkCisgICAgY2hhcgllbXB0eQk6IElzIHRoaXMgYW4gZW1wdHkgZWxlbWVudCA/CisgICAgY2hhcglkZXByCTogSXMgdGhpcyBhIGRlcHJlY2F0ZWQgZWxlbWVudCA/CisgICAgY2hhcglkdGQJOiAxOiBvbmx5IGluIExvb3NlIERURCwgMjogb25seSBGcmFtZXNldCBvbmUKKyAgICBjaGFyCWlzaW5saW5lCTogaXMgdGhpcyBhIGJsb2NrIDAgb3IgaW5saW5lIDEgZWxlbWVudAorICAgIGNvbnN0IGNoYXIgKglkZXNjCTogdGhlIGRlc2NyaXB0aW9uIE5SSyBKYW4uMjAwMyAqIE5ldyBmaWVsZHMgZW5jYXBzdWxhdGluZyBIVE1MIHN0cnVjdHVyCisgICAgY29uc3QgY2hhciAqKglzdWJlbHRzCTogYWxsb3dlZCBzdWItZWxlbWVudHMgb2YgdGhpcyBlbGVtZW50CisgICAgY29uc3QgY2hhciAqCWRlZmF1bHRzdWJlbHQJOiBzdWJlbGVtZW50IGZvciBzdWdnZXN0ZWQgYXV0by1yZXBhaXIgaWYgbmVjZXNzYXJ5IG9yIE5VTEwKKyAgICBjb25zdCBjaGFyICoqCWF0dHJzX29wdAk6IE9wdGlvbmFsIEF0dHJpYnV0ZXMKKyAgICBjb25zdCBjaGFyICoqCWF0dHJzX2RlcHIJOiBBZGRpdGlvbmFsIGRlcHJlY2F0ZWQgYXR0cmlidXRlcworICAgIGNvbnN0IGNoYXIgKioJYXR0cnNfcmVxCTogUmVxdWlyZWQgYXR0cmlidXRlcworfSBodG1sRWxlbURlc2M7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEVsZW1EZXNjUHRyIj5UeXBlZGVmIDwvYT5odG1sRWxlbURlc2NQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKiBodG1sRWxlbURlc2NQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEVudGl0eURlc2MiPlN0cnVjdHVyZSA8L2E+aHRtbEVudGl0eURlc2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX2h0bWxFbnRpdHlEZXNjIHsKKyAgICB1bnNpZ25lZCBpbnQJdmFsdWUJOiB0aGUgVU5JQ09ERSB2YWx1ZSBmb3IgdGhlIGNoYXJhY3RlcgorICAgIGNvbnN0IGNoYXIgKgluYW1lCTogVGhlIGVudGl0eSBuYW1lCisgICAgY29uc3QgY2hhciAqCWRlc2MJOiB0aGUgZGVzY3JpcHRpb24KK30gaHRtbEVudGl0eURlc2M7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEVudGl0eURlc2NQdHIiPlR5cGVkZWYgPC9hPmh0bWxFbnRpdHlEZXNjUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2MiPmh0bWxFbnRpdHlEZXNjPC9hPiAqIGh0bWxFbnRpdHlEZXNjUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxOb2RlUHRyIj5UeXBlZGVmIDwvYT5odG1sTm9kZVB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGh0bWxOb2RlUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZXJDdHh0Ij5UeXBlZGVmIDwvYT5odG1sUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+IGh0bWxQYXJzZXJDdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZXJDdHh0UHRyIj5UeXBlZGVmIDwvYT5odG1sUGFyc2VyQ3R4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGh0bWxQYXJzZXJDdHh0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZXJJbnB1dCI+VHlwZWRlZiA8L2E+aHRtbFBhcnNlcklucHV0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPiBodG1sUGFyc2VySW5wdXQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbFBhcnNlcklucHV0UHRyIj5UeXBlZGVmIDwvYT5odG1sUGFyc2VySW5wdXRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGh0bWxQYXJzZXJJbnB1dFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sUGFyc2VyTm9kZUluZm8iPlR5cGVkZWYgPC9hPmh0bWxQYXJzZXJOb2RlSW5mbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPiBodG1sUGFyc2VyTm9kZUluZm87Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbFBhcnNlck9wdGlvbiI+RW51bSA8L2E+aHRtbFBhcnNlck9wdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI2h0bWxQYXJzZXJPcHRpb24iPmh0bWxQYXJzZXJPcHRpb248L2E+IHsKKyAgICA8YSBuYW1lPSJIVE1MX1BBUlNFX1JFQ09WRVIiPkhUTUxfUEFSU0VfUkVDT1ZFUjwvYT4gPSAxIC8qIFJlbGF4ZWQgcGFyc2luZyAqLworICAgIDxhIG5hbWU9IkhUTUxfUEFSU0VfTk9FUlJPUiI+SFRNTF9QQVJTRV9OT0VSUk9SPC9hPiA9IDMyIC8qIHN1cHByZXNzIGVycm9yIHJlcG9ydHMgKi8KKyAgICA8YSBuYW1lPSJIVE1MX1BBUlNFX05PV0FSTklORyI+SFRNTF9QQVJTRV9OT1dBUk5JTkc8L2E+ID0gNjQgLyogc3VwcHJlc3Mgd2FybmluZyByZXBvcnRzICovCisgICAgPGEgbmFtZT0iSFRNTF9QQVJTRV9QRURBTlRJQyI+SFRNTF9QQVJTRV9QRURBTlRJQzwvYT4gPSAxMjggLyogcGVkYW50aWMgZXJyb3IgcmVwb3J0aW5nICovCisgICAgPGEgbmFtZT0iSFRNTF9QQVJTRV9OT0JMQU5LUyI+SFRNTF9QQVJTRV9OT0JMQU5LUzwvYT4gPSAyNTYgLyogcmVtb3ZlIGJsYW5rIG5vZGVzICovCisgICAgPGEgbmFtZT0iSFRNTF9QQVJTRV9OT05FVCI+SFRNTF9QQVJTRV9OT05FVDwvYT4gPSAyMDQ4IC8qIEZvcmJpZCBuZXR3b3JrIGFjY2VzcyAqLworICAgIDxhIG5hbWU9IkhUTUxfUEFSU0VfTk9JTVBMSUVEIj5IVE1MX1BBUlNFX05PSU1QTElFRDwvYT4gPSA4MTkyIC8qIERvIG5vdCBhZGQgaW1wbGllZCBodG1sL2JvZHkuLi4gZWxlbWVudHMgKi8KKyAgICA8YSBuYW1lPSJIVE1MX1BBUlNFX0NPTVBBQ1QiPkhUTUxfUEFSU0VfQ09NUEFDVDwvYT4gPSA2NTUzNiAvKiAgY29tcGFjdCBzbWFsbCB0ZXh0IG5vZGVzICovCit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxTQVhIYW5kbGVyIj5UeXBlZGVmIDwvYT5odG1sU0FYSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+IGh0bWxTQVhIYW5kbGVyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxTQVhIYW5kbGVyUHRyIj5UeXBlZGVmIDwvYT5odG1sU0FYSGFuZGxlclB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IGh0bWxTQVhIYW5kbGVyUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxTdGF0dXMiPkVudW0gPC9hPmh0bWxTdGF0dXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiNodG1sU3RhdHVzIj5odG1sU3RhdHVzPC9hPiB7CisgICAgPGEgbmFtZT0iSFRNTF9OQSI+SFRNTF9OQTwvYT4gPSAwIC8qIHNvbWV0aGluZyB3ZSBkb24ndCBjaGVjayBhdCBhbGwgKi8KKyAgICA8YSBuYW1lPSJIVE1MX0lOVkFMSUQiPkhUTUxfSU5WQUxJRDwvYT4gPSAxCisgICAgPGEgbmFtZT0iSFRNTF9ERVBSRUNBVEVEIj5IVE1MX0RFUFJFQ0FURUQ8L2E+ID0gMgorICAgIDxhIG5hbWU9IkhUTUxfVkFMSUQiPkhUTUxfVkFMSUQ8L2E+ID0gNAorICAgIDxhIG5hbWU9IkhUTUxfUkVRVUlSRUQiPkhUTUxfUkVRVUlSRUQ8L2E+ID0gMTIgLyogIFZBTElEIGJpdCBzZXQgc28gKCAmYW1wOyBIVE1MX1ZBTElEICkgaXMgVFJVRSAqLworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJVVEY4VG9IdG1sIi8+VVRGOFRvSHRtbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlVVEY4VG9IdG1sCQkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbik8YnIvPgorPC9wcmU+PHA+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBBU0NJSSBwbHVzIEhUTUwgZW50aXRpZXMgYmxvY2sgb2YgY2hhcnMgb3V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIEBvdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlubGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIEBpbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZXNzLCAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMsIG9yIC0xIG90aGVyd2lzZSBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZCBhcyB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGFibGUuIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sQXR0ckFsbG93ZWQiLz5odG1sQXR0ckFsbG93ZWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sU3RhdHVzIj5odG1sU3RhdHVzPC9hPglodG1sQXR0ckFsbG93ZWQJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKiBlbHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGF0dHIsIDxici8+CQkJCQkgaW50IGxlZ2FjeSk8YnIvPgorPC9wcmU+PHA+Q2hlY2tzIHdoZXRoZXIgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgdmFsaWQgZm9yIGFuIGVsZW1lbnQgSGFzIGZ1bGwga25vd2xlZGdlIG9mIFJlcXVpcmVkIGFuZCBEZXByZWNhdGVkIGF0dHJpYnV0ZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+SFRNTCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5IVE1MIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZWdhY3k8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndoZXRoZXIgdG8gYWxsb3cgZGVwcmVjYXRlZCBhdHRyaWJ1dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vbmUgb2YgSFRNTF9SRVFVSVJFRCwgSFRNTF9WQUxJRCwgSFRNTF9ERVBSRUNBVEVELCA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX0lOVkFMSUQiPkhUTUxfSU5WQUxJRDwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sQXV0b0Nsb3NlVGFnIi8+aHRtbEF1dG9DbG9zZVRhZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sQXV0b0Nsb3NlVGFnCQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlUHRyIj5odG1sTm9kZVB0cjwvYT4gZWxlbSk8YnIvPgorPC9wcmU+PHA+VGhlIEhUTUwgRFREIGFsbG93cyBhIHRhZyB0byBpbXBsaWNpdGx5IGNsb3NlIG90aGVyIHRhZ3MuIFRoZSBsaXN0IGlzIGtlcHQgaW4gaHRtbFN0YXJ0Q2xvc2UgYXJyYXkuIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBlbGVtZW50IG9yIG9uZSBvZiBpdCdzIGNoaWxkcmVuIHdvdWxkIGF1dG9jbG9zZSB0aGUgZ2l2ZW4gdGFnLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHRhZyBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIGF1dG9jbG9zZSwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCIvPmh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPglodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCQkJIGludCBzaXplKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYW4gSFRNTCBpbi1tZW1vcnkgZG9jdW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ii8+aHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPglodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxTQVhIYW5kbGVyUHRyIj5odG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyLz4JCQkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciB1c2luZyB0aGUgSFRNTCBwYXJzZXIgaW4gcHVzaCBtb2RlIFRoZSB2YWx1ZSBvZiBAZmlsZW5hbWUgaXMgdXNlZCBmb3IgZmV0Y2hpbmcgZXh0ZXJuYWwgZW50aXRpZXMgYW5kIGVycm9yL3dhcm5pbmcgcmVwb3J0cy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNodW5rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wdGlvbmFsIGVuY29kaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sQ3R4dFJlYWREb2MiLz5odG1sQ3R4dFJlYWREb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sQ3R4dFJlYWREb2MJCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEhUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEN0eHRSZWFkRmQiLz5odG1sQ3R4dFJlYWRGZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxDdHh0UmVhZEZkCQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBmZCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3BlbiBmaWxlIGRlc2NyaXB0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxDdHh0UmVhZEZpbGUiLz5odG1sQ3R4dFJlYWRGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbEN0eHRSZWFkRmlsZQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0gb3IgdGhlIG5ldHdvcmsuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBvciBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEN0eHRSZWFkSU8iLz5odG1sQ3R4dFJlYWRJTyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxDdHh0UmVhZElPCQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxici8+CQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBIVE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlIGFuZCBidWlsZCBhIHRyZWUuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9yZWFkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gcmVhZCBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxDdHh0UmVhZE1lbW9yeSIvPmh0bWxDdHh0UmVhZE1lbW9yeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxDdHh0UmVhZE1lbW9yeQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEN0eHRSZXNldCIvPmh0bWxDdHh0UmVzZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxDdHh0UmVzZXQJCQkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5SZXNldCBhIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEN0eHRVc2VPcHRpb25zIi8+aHRtbEN0eHRVc2VPcHRpb25zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxDdHh0VXNlT3B0aW9ucwkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+QXBwbGllcyB0aGUgb3B0aW9ucyB0byB0aGUgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEhUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIHRoZSBzZXQgb2YgdW5rbm93biBvciB1bmltcGxlbWVudGVkIG9wdGlvbnMgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sRWxlbWVudEFsbG93ZWRIZXJlIi8+aHRtbEVsZW1lbnRBbGxvd2VkSGVyZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sRWxlbWVudEFsbG93ZWRIZXJlCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICogcGFyZW50LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbHQpPGJyLz4KKzwvcHJlPjxwPkNoZWNrcyB3aGV0aGVyIGFuIEhUTUwgZWxlbWVudCBtYXkgYmUgYSBkaXJlY3QgY2hpbGQgb2YgYSBwYXJlbnQgZWxlbWVudC4gTm90ZSAtIGRvZXNuJ3QgY2hlY2sgZm9yIGRlcHJlY2F0ZWQgZWxlbWVudHM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhcmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+SFRNTCBwYXJlbnQgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWx0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5IVE1MIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgYWxsb3dlZDsgMCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEVsZW1lbnRTdGF0dXNIZXJlIi8+aHRtbEVsZW1lbnRTdGF0dXNIZXJlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFN0YXR1cyI+aHRtbFN0YXR1czwvYT4JaHRtbEVsZW1lbnRTdGF0dXNIZXJlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKiBwYXJlbnQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICogZWx0KTxici8+Cis8L3ByZT48cD5DaGVja3Mgd2hldGhlciBhbiBIVE1MIGVsZW1lbnQgbWF5IGJlIGEgZGlyZWN0IGNoaWxkIG9mIGEgcGFyZW50IGVsZW1lbnQuIGFuZCBpZiBzbyB3aGV0aGVyIGl0IGlzIHZhbGlkIG9yIGRlcHJlY2F0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkhUTUwgcGFyZW50IGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+SFRNTCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vbmUgb2YgSFRNTF9WQUxJRCwgSFRNTF9ERVBSRUNBVEVELCA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX0lOVkFMSUQiPkhUTUxfSU5WQUxJRDwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sRW5jb2RlRW50aXRpZXMiLz5odG1sRW5jb2RlRW50aXRpZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbEVuY29kZUVudGl0aWVzCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyLz4JCQkJCSBpbnQgKiBvdXRsZW4sIDxici8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIvPgkJCQkJIGludCAqIGlubGVuLCA8YnIvPgkJCQkJIGludCBxdW90ZUNoYXIpPGJyLz4KKzwvcHJlPjxwPlRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gQVNDSUkgcGx1cyBIVE1MIGVudGl0aWVzIGJsb2NrIG9mIGNoYXJzIG91dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dGxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAb3V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnF1b3RlQ2hhcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHF1b3RlIGNoYXJhY3RlciB0byBlc2NhcGUgKCcgb3IgIikgb3IgemVyby48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VzcywgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzLCBvciAtMSBvdGhlcndpc2UgVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgYXMgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEVudGl0eUxvb2t1cCIvPmh0bWxFbnRpdHlMb29rdXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5RGVzYyI+aHRtbEVudGl0eURlc2M8L2E+ICoJaHRtbEVudGl0eUxvb2t1cAkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPkxvb2t1cCB0aGUgZ2l2ZW4gZW50aXR5IGluIEVudGl0aWVzVGFibGUgVE9ETzogdGhlIGxpbmVhciBzY2FuIGlzIHJlYWxseSB1Z2x5LCBhbiBoYXNoIHRhYmxlIGlzIHJlYWxseSBuZWVkZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhc3NvY2lhdGVkIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjUHRyIj5odG1sRW50aXR5RGVzY1B0cjwvYT4gaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxFbnRpdHlWYWx1ZUxvb2t1cCIvPmh0bWxFbnRpdHlWYWx1ZUxvb2t1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT4gKglodG1sRW50aXR5VmFsdWVMb29rdXAJKHVuc2lnbmVkIGludCB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+TG9va3VwIHRoZSBnaXZlbiBlbnRpdHkgaW4gRW50aXRpZXNUYWJsZSBUT0RPOiB0aGUgbGluZWFyIHNjYW4gaXMgcmVhbGx5IHVnbHksIGFuIGhhc2ggdGFibGUgaXMgcmVhbGx5IG5lZWRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5J3MgdW5pY29kZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFzc29jaWF0ZWQgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2NQdHIiPmh0bWxFbnRpdHlEZXNjUHRyPC9hPiBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbEZyZWVQYXJzZXJDdHh0Ii8+aHRtbEZyZWVQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlodG1sRnJlZVBhcnNlckN0eHQJCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgYWxsIHRoZSBtZW1vcnkgdXNlZCBieSBhIHBhcnNlciBjb250ZXh0LiBIb3dldmVyIHRoZSBwYXJzZWQgZG9jdW1lbnQgaW4gY3R4dC0mZ3Q7bXlEb2MgaXMgbm90IGZyZWVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxIYW5kbGVPbWl0dGVkRWxlbSIvPmh0bWxIYW5kbGVPbWl0dGVkRWxlbSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sSGFuZGxlT21pdHRlZEVsZW0JCShpbnQgdmFsKTxici8+Cis8L3ByZT48cD5TZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGhhbmRsaW5nIEhUTUwgb21pdHRlZCB0YWdzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnQgMCBvciAxPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGFzdCB2YWx1ZSBmb3IgMCBmb3Igbm8gaGFuZGxpbmcsIDEgZm9yIGF1dG8gaW5zZXJ0aW9uLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxJc0F1dG9DbG9zZWQiLz5odG1sSXNBdXRvQ2xvc2VkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxJc0F1dG9DbG9zZWQJCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPiBlbGVtKTxici8+Cis8L3ByZT48cD5UaGUgSFRNTCBEVEQgYWxsb3dzIGEgdGFnIHRvIGltcGxpY2l0bHkgY2xvc2Ugb3RoZXIgdGFncy4gVGhlIGxpc3QgaXMga2VwdCBpbiBodG1sU3RhcnRDbG9zZSBhcnJheS4gVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgYSB0YWcgaXMgYXV0b2Nsb3NlZCBieSBvbmUgb2YgaXQncyBjaGlsZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUTUwgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBhdXRvY2xvc2VkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxJc1NjcmlwdEF0dHJpYnV0ZSIvPmh0bWxJc1NjcmlwdEF0dHJpYnV0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sSXNTY3JpcHRBdHRyaWJ1dGUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgaWYgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgb2YgY29udGVudCB0eXBlIFNjcmlwdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpcyB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgYSBzY3JpcHQgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sTmV3UGFyc2VyQ3R4dCIvPmh0bWxOZXdQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPglodG1sTmV3UGFyc2VyQ3R4dAkodm9pZCk8YnIvPgorPC9wcmU+PHA+QWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgcGFyc2VyIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgYWxsb2NhdGlvbiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxOb2RlU3RhdHVzIi8+aHRtbE5vZGVTdGF0dXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sU3RhdHVzIj5odG1sU3RhdHVzPC9hPglodG1sTm9kZVN0YXR1cwkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlUHRyIj5odG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBpbnQgbGVnYWN5KTxici8+Cis8L3ByZT48cD5DaGVja3Mgd2hldGhlciB0aGUgdHJlZSBub2RlIGlzIHZhbGlkLiBFeHBlcmltZW50YWwgKHRoZSBhdXRob3Igb25seSB1c2VzIHRoZSBIVE1MIGVuaGFuY2VtZW50cyBpbiBhIFNBWCBwYXJzZXIpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVB0ciI+aHRtbE5vZGVQdHI8L2E+IGluIGEgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVnYWN5PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53aGV0aGVyIHRvIGFsbG93IGRlcHJlY2F0ZWQgZWxlbWVudHMgKFlFUyBpcyBmYXN0ZXIgaGVyZSBmb3IgRWxlbWVudCBub2Rlcyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvciBFbGVtZW50IG5vZGVzLCBhIHJldHVybiBmcm9tIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50QWxsb3dlZEhlcmUiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmU8L2E+IChpZiBsZWdhY3kgYWxsb3dlZCkgb3IgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRTdGF0dXNIZXJlIj5odG1sRWxlbWVudFN0YXR1c0hlcmU8L2E+IChvdGhlcndpc2UpLiBmb3IgQXR0cmlidXRlIG5vZGVzLCBhIHJldHVybiBmcm9tIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPiBmb3Igb3RoZXIgbm9kZXMsIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI0hUTUxfTkEiPkhUTUxfTkE8L2E+IChubyBjaGVja3MgcGVyZm9ybWVkKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZUNoYXJSZWYiLz5odG1sUGFyc2VDaGFyUmVmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxQYXJzZUNoYXJSZWYJCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIFJlZmVyZW5jZSBkZWNsYXJhdGlvbnMgWzY2XSBDaGFyUmVmIDo6PSAnJmFtcDsjJyBbMC05XSsgJzsnIHwgJyZhbXA7I3gnIFswLTlhLWZBLUZdKyAnOyc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEhUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBwYXJzZWQgKGFzIGFuIGludCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sUGFyc2VDaHVuayIvPmh0bWxQYXJzZUNodW5rICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxQYXJzZUNodW5rCQkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogY2h1bmssIDxici8+CQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkgaW50IHRlcm1pbmF0ZSk8YnIvPgorPC9wcmU+PHA+UGFyc2UgYSBDaHVuayBvZiBtZW1vcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEhUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNodW5rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBjaGFyIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBpbiBieXRlIG9mIHRoZSBjaHVuazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGVybWluYXRlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5sYXN0IGNodW5rIGluZGljYXRvcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+emVybyBpZiBubyBlcnJvciwgdGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvcnMiPnhtbFBhcnNlckVycm9yczwvYT4gb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZURvYyIvPmh0bWxQYXJzZURvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxQYXJzZURvYwkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBIVE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZURvY3VtZW50Ii8+aHRtbFBhcnNlRG9jdW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbFBhcnNlRG9jdW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZG9jdW1lbnQgKGFuZCBidWlsZCBhIHRyZWUgaWYgdXNpbmcgdGhlIHN0YW5kYXJkIFNBWCBpbnRlcmZhY2UpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCwgLTEgaW4gY2FzZSBvZiBlcnJvci4gdGhlIHBhcnNlciBjb250ZXh0IGlzIGF1Z21lbnRlZCBhcyBhIHJlc3VsdCBvZiB0aGUgcGFyc2luZy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sUGFyc2VFbGVtZW50Ii8+aHRtbFBhcnNlRWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbFBhcnNlRWxlbWVudAkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gSFRNTCBlbGVtZW50LCB0aGlzIGlzIGhpZ2hseSByZWN1cnNpdmUgdGhpcyBpcyBrZXB0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgY29kZSB2ZXJzaW9ucyBbMzldIGVsZW1lbnQgOjo9IEVtcHR5RWxlbVRhZyB8IFNUYWcgY29udGVudCBFVGFnIFs0MV0gQXR0cmlidXRlIDo6PSBOYW1lIEVxIEF0dFZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbFBhcnNlRW50aXR5UmVmIi8+aHRtbFBhcnNlRW50aXR5UmVmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2MiPmh0bWxFbnRpdHlEZXNjPC9hPiAqCWh0bWxQYXJzZUVudGl0eVJlZgkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHN0cik8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gSFRNTCBFTlRJVFkgcmVmZXJlbmNlcyBbNjhdIEVudGl0eVJlZiA6Oj0gJyZhbXA7JyBOYW1lICc7JzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5sb2NhdGlvbiB0byBzdG9yZSB0aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhc3NvY2lhdGVkIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjUHRyIj5odG1sRW50aXR5RGVzY1B0cjwvYT4gaWYgZm91bmQsIG9yIE5VTEwgb3RoZXJ3aXNlLCBpZiBub24tTlVMTCAqc3RyIHdpbGwgaGF2ZSB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZUZpbGUiLz5odG1sUGFyc2VGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFBhcnNlRmlsZQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxSZWFkRG9jIi8+aHRtbFJlYWREb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sUmVhZERvYwkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbFJlYWRGZCIvPmh0bWxSZWFkRmQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sUmVhZEZkCQkoaW50IGZkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sUmVhZEZpbGUiLz5odG1sUmVhZEZpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sUmVhZEZpbGUJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBvciBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbFJlYWRJTyIvPmh0bWxSZWFkSU8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sUmVhZElPCQkoPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvcmVhZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIHJlYWQgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY2xvc2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBjbG9zZSBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sUmVhZE1lbW9yeSIvPmh0bWxSZWFkTWVtb3J5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFJlYWRNZW1vcnkJCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbFNBWFBhcnNlRG9jIi8+aHRtbFNBWFBhcnNlRG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFNBWFBhcnNlRG9jCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWEhhbmRsZXJQdHIiPmh0bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgdm9pZCAqIHVzZXJEYXRhKTxici8+Cis8L3ByZT48cD5QYXJzZSBhbiBIVE1MIGluLW1lbW9yeSBkb2N1bWVudC4gSWYgc2F4IGlzIG5vdCBOVUxMLCB1c2UgdGhlIFNBWCBjYWxsYmFja3MgdG8gaGFuZGxlIHBhcnNlIGV2ZW50cy4gSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSBiZWhhdmlvciBhbmQgcmV0dXJuIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlckRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIHVubGVzcyBTQVggaXMgTlVMTCBvciB0aGUgZG9jdW1lbnQgaXMgbm90IHdlbGwgZm9ybWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxTQVhQYXJzZUZpbGUiLz5odG1sU0FYUGFyc2VGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFNBWFBhcnNlRmlsZQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYSGFuZGxlclB0ciI+aHRtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlckRhdGEpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlckRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIHVubGVzcyBTQVggaXMgTlVMTCBvciB0aGUgZG9jdW1lbnQgaXMgbm90IHdlbGwgZm9ybWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxUYWdMb29rdXAiLz5odG1sVGFnTG9va3VwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICoJaHRtbFRhZ0xvb2t1cAkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhZyk8YnIvPgorPC9wcmU+PHA+TG9va3VwIHRoZSBIVE1MIHRhZyBpbiB0aGUgRWxlbWVudFRhYmxlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSB0YWcgbmFtZSBpbiBsb3dlcmNhc2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWxhdGVkIDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtRGVzY1B0ciI+aHRtbEVsZW1EZXNjUHRyPC9hPiBvciBOVUxMIGlmIG5vdCBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1IVE1MdHJlZS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLUhUTUx0cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQzMGY4YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1IVE1MdHJlZS5odG1sCkBAIC0wLDAgKzEsMTcyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPkhUTUx0cmVlOiBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5IVE1MdHJlZTwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPkhUTUx0cmVlIC0gc3BlY2lmaWMgQVBJcyB0byBwcm9jZXNzIEhUTUwgdHJlZSwgZXNwZWNpYWxseSBzZXJpYWxpemF0aW9uPC9wPgorICAgIDxwPnRoaXMgbW9kdWxlIGltcGxlbWVudHMgYSBmZXcgZnVuY3Rpb24gbmVlZGVkIHRvIHByb2Nlc3MgdHJlZSBpbiBhbiBIVE1MIHNwZWNpZmljIHdheS4gPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI0hUTUxfRU5USVRZX1JFRl9OT0RFIj5IVE1MX0VOVElUWV9SRUZfTk9ERTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNIVE1MX0NPTU1FTlRfTk9ERSI+SFRNTF9DT01NRU5UX05PREU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjSFRNTF9QUkVTRVJWRV9OT0RFIj5IVE1MX1BSRVNFUlZFX05PREU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjSFRNTF9URVhUX05PREUiPkhUTUxfVEVYVF9OT0RFPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0hUTUxfUElfTk9ERSI+SFRNTF9QSV9OT0RFPC9hPjsKK2ludAk8YSBocmVmPSIjaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCI+aHRtbE5vZGVEdW1wRmlsZUZvcm1hdDwvYT4JCShGSUxFICogb3V0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgZm9ybWF0KTsKK3ZvaWQJPGEgaHJlZj0iI2h0bWxEb2NEdW1wTWVtb3J5Ij5odG1sRG9jRHVtcE1lbW9yeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbWVtLCA8YnIvPgkJCQkJIGludCAqIHNpemUpOworaW50CTxhIGhyZWY9IiNodG1sU2F2ZUZpbGUiPmh0bWxTYXZlRmlsZTwvYT4JCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIpOworaW50CTxhIGhyZWY9IiNodG1sRG9jRHVtcCI+aHRtbERvY0R1bXA8L2E+CQkJKEZJTEUgKiBmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQiPmh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBtZW0sIDxici8+CQkJCQkgaW50ICogc2l6ZSwgPGJyLz4JCQkJCSBpbnQgZm9ybWF0KTsKK2ludAk8YSBocmVmPSIjaHRtbElzQm9vbGVhbkF0dHIiPmh0bWxJc0Jvb2xlYW5BdHRyPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjaHRtbFNhdmVGaWxlRm9ybWF0Ij5odG1sU2F2ZUZpbGVGb3JtYXQ8L2E+CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpOwordm9pZAk8YSBocmVmPSIjaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0Ij5odG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgZm9ybWF0KTsKK2ludAk8YSBocmVmPSIjaHRtbFNldE1ldGFFbmNvZGluZyI+aHRtbFNldE1ldGFFbmNvZGluZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVuY29kaW5nKTsKK2ludAk8YSBocmVmPSIjaHRtbFNhdmVGaWxlRW5jIj5odG1sU2F2ZUZpbGVFbmM8L2E+CQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk7Cit2b2lkCTxhIGhyZWY9IiNodG1sTm9kZUR1bXBPdXRwdXQiPmh0bWxOb2RlRHVtcE91dHB1dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk7CitpbnQJPGEgaHJlZj0iI2h0bWxOb2RlRHVtcCI+aHRtbE5vZGVEdW1wPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTsKKzxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sTmV3RG9jIj5odG1sTmV3RG9jPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiNodG1sR2V0TWV0YUVuY29kaW5nIj5odG1sR2V0TWV0YUVuY29kaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4gZG9jKTsKK3ZvaWQJPGEgaHJlZj0iI2h0bWxOb2RlRHVtcEZpbGUiPmh0bWxOb2RlRHVtcEZpbGU8L2E+CQkoRklMRSAqIG91dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik7Cit2b2lkCTxhIGhyZWY9IiNodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IGZvcm1hdCk7Cis8YSBocmVmPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbE5ld0RvY05vRHREIj5odG1sTmV3RG9jTm9EdEQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCk7Cit2b2lkCTxhIGhyZWY9IiNodG1sRG9jQ29udGVudER1bXBPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcE91dHB1dDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkhUTUxfQ09NTUVOVF9OT0RFIj5NYWNybyA8L2E+SFRNTF9DT01NRU5UX05PREU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNIVE1MX0NPTU1FTlRfTk9ERSI+SFRNTF9DT01NRU5UX05PREU8L2E+OworPC9wcmU+PHA+TWFjcm8uIEEgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPiBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gaW4gYW4gWE1MIGRvY3VtZW50LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJIVE1MX0VOVElUWV9SRUZfTk9ERSI+TWFjcm8gPC9hPkhUTUxfRU5USVRZX1JFRl9OT0RFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSFRNTF9FTlRJVFlfUkVGX05PREUiPkhUTUxfRU5USVRZX1JFRl9OT0RFPC9hPjsKKzwvcHJlPjxwPk1hY3JvLiBBbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gaW4gYSBIVE1MIGRvY3VtZW50IGlzIHJlYWxseSBpbXBsZW1lbnRlZCB0aGUgc2FtZSB3YXkgYXMgYW4gZW50aXR5IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGluIGFuIFhNTCBkb2N1bWVudC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSFRNTF9QSV9OT0RFIj5NYWNybyA8L2E+SFRNTF9QSV9OT0RFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSFRNTF9QSV9OT0RFIj5IVE1MX1BJX05PREU8L2E+OworPC9wcmU+PHA+TWFjcm8uIEEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaW4gYW4gWE1MIGRvY3VtZW50LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJIVE1MX1BSRVNFUlZFX05PREUiPk1hY3JvIDwvYT5IVE1MX1BSRVNFUlZFX05PREU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNIVE1MX1BSRVNFUlZFX05PREUiPkhUTUxfUFJFU0VSVkVfTk9ERTwvYT47Cis8L3ByZT48cD5NYWNyby4gQSBwcmVzZXJ2ZWQgbm9kZSBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhIENEQVRBIHNlY3Rpb24gaW4gYW4gWE1MIGRvY3VtZW50LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJIVE1MX1RFWFRfTk9ERSI+TWFjcm8gPC9hPkhUTUxfVEVYVF9OT0RFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSFRNTF9URVhUX05PREUiPkhUTUxfVEVYVF9OT0RFPC9hPjsKKzwvcHJlPjxwPk1hY3JvLiBBIHRleHQgbm9kZSBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhIHRleHQgbm9kZSBpbiBhbiBYTUwgZG9jdW1lbnQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCIvPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2Rpbmcgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0Ii8+aHRtbERvY0NvbnRlbnREdW1wT3V0cHV0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlodG1sRG9jQ29udGVudER1bXBPdXRwdXQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudC4gRm9ybWF0aW5nIHJldHVybi9zcGFjZXMgYXJlIGFkZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBzdHJpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sRG9jRHVtcCIvPmh0bWxEb2NEdW1wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxEb2NEdW1wCQkJKEZJTEUgKiBmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhbiBvcGVuIEZJTEUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbERvY0R1bXBNZW1vcnkiLz5odG1sRG9jRHVtcE1lbW9yeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbERvY0R1bXBNZW1vcnkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbWVtLCA8YnIvPgkJCQkJIGludCAqIHNpemUpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHJldHVybiB0aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFuZCBpdCdzIHNpemUuIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5PVVQ6IHRoZSBtZW1vcnkgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+T1VUOiB0aGUgbWVtb3J5IGxlbmd0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0Ii8+aHRtbERvY0R1bXBNZW1vcnlGb3JtYXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG1lbSwgPGJyLz4JCQkJCSBpbnQgKiBzaXplLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHJldHVybiB0aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFuZCBpdCdzIHNpemUuIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5PVVQ6IHRoZSBtZW1vcnkgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+T1VUOiB0aGUgbWVtb3J5IGxlbmd0aDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxHZXRNZXRhRW5jb2RpbmciLz5odG1sR2V0TWV0YUVuY29kaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWh0bWxHZXRNZXRhRW5jb2RpbmcJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+RW5jb2RpbmcgZGVmaW5pdGlvbiBsb29rdXAgaW4gdGhlIE1ldGEgdGFnczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IGVuY29kaW5nIGFzIGZsYWdnZWQgaW4gdGhlIEhUTUwgc291cmNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbElzQm9vbGVhbkF0dHIiLz5odG1sSXNCb29sZWFuQXR0ciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sSXNCb29sZWFuQXR0cgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5EZXRlcm1pbmUgaWYgYSBnaXZlbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpcyBhIGJvb2xlYW4gYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mYWxzZSBpZiB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgbm90IGJvb2xlYW4sIHRydWUgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxOZXdEb2MiLz5odG1sTmV3RG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbE5ld0RvYwkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZXMgYSBuZXcgSFRNTCBkb2N1bWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VUkkgZm9yIHRoZSBkdGQsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBJRCBvZiB0aGUgRFRELCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBkb2N1bWVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxOZXdEb2NOb0R0RCIvPmh0bWxOZXdEb2NOb0R0RCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxOZXdEb2NOb0R0RAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZXMgYSBuZXcgSFRNTCBkb2N1bWVudCB3aXRob3V0IGEgRFREIG5vZGUgaWYgQFVSSSBhbmQgQEV4dGVybmFsSUQgYXJlIE5VTEw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VVJJIGZvciB0aGUgZHRkLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5FeHRlcm5hbElEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0ZXJuYWwgSUQgb2YgdGhlIERURCwgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgZG9jdW1lbnQsIGRvIG5vdCBpbml0aWFsaXplIHRoZSBEVEQgaWYgbm90IHByb3ZpZGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbE5vZGVEdW1wIi8+aHRtbE5vZGVEdW1wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxOb2RlRHVtcAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91cixjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28sIGFuZCBmb3JtYXR0aW5nIHJldHVybnMgYXJlIGFkZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbE5vZGVEdW1wRmlsZSIvPmh0bWxOb2RlRHVtcEZpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxOb2RlRHVtcEZpbGUJCShGSUxFICogb3V0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91cixjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28sIGFuZCBmb3JtYXR0aW5nIHJldHVybnMgYXJlIGFkZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCIvPmh0bWxOb2RlRHVtcEZpbGVGb3JtYXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbE5vZGVEdW1wRmlsZUZvcm1hdAkJKEZJTEUgKiBvdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4gVE9ETzogaWYgZW5jb2RpbmcgPT0gTlVMTCB0cnkgdG8gc2F2ZSBpbiB0aGUgZG9jIGVuY29kaW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFIHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiLz5odG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IGZvcm1hdCk8YnIvPgorPC9wcmU+PHA+RHVtcCBhbiBIVE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxOb2RlRHVtcE91dHB1dCIvPmh0bWxOb2RlRHVtcE91dHB1dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbE5vZGVEdW1wT3V0cHV0CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvbywgYW5kIGZvcm1hdHRpbmcgcmV0dXJucy9zcGFjZXMgYXJlIGFkZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIHN0cmluZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxTYXZlRmlsZSIvPmh0bWxTYXZlRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sU2F2ZUZpbGUJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhIGZpbGUuIElmIEBmaWxlbmFtZSBpcyAiLSIgdGhlIHN0ZG91dCBmaWxlIGlzIHVzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lIChvciBVUkwpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxTYXZlRmlsZUVuYyIvPmh0bWxTYXZlRmlsZUVuYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sU2F2ZUZpbGVFbmMJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxici8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgZG9jdW1lbnQgdG8gYSBmaWxlIHVzaW5nIGEgZ2l2ZW4gZW5jb2RpbmcgYW5kIGZvcm1hdHRpbmcgcmV0dXJucy9zcGFjZXMgYXJlIGFkZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sU2F2ZUZpbGVGb3JtYXQiLz5odG1sU2F2ZUZpbGVGb3JtYXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbFNhdmVGaWxlRm9ybWF0CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhIGZpbGUgdXNpbmcgYSBnaXZlbiBlbmNvZGluZy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbFNldE1ldGFFbmNvZGluZyIvPmh0bWxTZXRNZXRhRW5jb2RpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbFNldE1ldGFFbmNvZGluZwkJKDxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZW5jb2RpbmcpPGJyLz4KKzwvcHJlPjxwPlNldHMgdGhlIGN1cnJlbnQgZW5jb2RpbmcgaW4gdGhlIE1ldGEgdGFncyBOT1RFOiB0aGlzIHdpbGwgbm90IGNoYW5nZSB0aGUgZG9jdW1lbnQgY29udGVudCBlbmNvZGluZywganVzdCB0aGUgTUVUQSBmbGFnIGFzc29jaWF0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItU0FYLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItU0FYLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE2M2I3YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1TQVguaHRtbApAQCAtMCwwICsxLDI0MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5TQVg6IE9sZCBTQVggdmVyc2lvbiAxIGhhbmRsZXIsIGRlcHJlY2F0ZWQ8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLUhUTUx0cmVlLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLVNBWDIuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPlNBWDwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPlNBWCAtIE9sZCBTQVggdmVyc2lvbiAxIGhhbmRsZXIsIGRlcHJlY2F0ZWQ8L3A+CisgICAgPHA+REVQUkVDQVRFRCBzZXQgb2YgU0FYIHZlcnNpb24gMSBpbnRlcmZhY2VzIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlLiA8L3A+CisgICAgPHA+IFdBUk5JTkc6IHRoaXMgbW9kdWxlIGlzIGRlcHJlY2F0ZWQgITwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj52b2lkCTxhIGhyZWY9IiNjb21tZW50Ij5jb21tZW50PC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI2NoZWNrTmFtZXNwYWNlIj5jaGVja05hbWVzcGFjZTwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlKTsKK2ludAk8YSBocmVmPSIjZ2V0Q29sdW1uTnVtYmVyIj5nZXRDb2x1bW5OdW1iZXI8L2E+CQkJKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjZW50aXR5RGVjbCI+ZW50aXR5RGVjbDwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBpbnQgdHlwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK3ZvaWQJPGEgaHJlZj0iI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgk8YSBocmVmPSIjZ2V0TmFtZXNwYWNlIj5nZXROYW1lc3BhY2U8L2E+CQkodm9pZCAqIGN0eCk7Cit2b2lkCTxhIGhyZWY9IiNzZXREb2N1bWVudExvY2F0b3IiPnNldERvY3VtZW50TG9jYXRvcjwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+IGxvYyk7Cit2b2lkCTxhIGhyZWY9IiNpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIiPmluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+ICogaGRsciwgPGJyLz4JCQkJCSBpbnQgd2FybmluZyk7Cit2b2lkCTxhIGhyZWY9IiNpZ25vcmFibGVXaGl0ZXNwYWNlIj5pZ25vcmFibGVXaGl0ZXNwYWNlPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNoLCA8YnIvPgkJCQkJIGludCBsZW4pOworaW50CTxhIGhyZWY9IiNoYXNFeHRlcm5hbFN1YnNldCI+aGFzRXh0ZXJuYWxTdWJzZXQ8L2E+CQkodm9pZCAqIGN0eCk7Cit2b2lkCTxhIGhyZWY9IiN1bnBhcnNlZEVudGl0eURlY2wiPnVucGFyc2VkRW50aXR5RGVjbDwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5vdGF0aW9uTmFtZSk7Cit2b2lkCTxhIGhyZWY9IiNnbG9iYWxOYW1lc3BhY2UiPmdsb2JhbE5hbWVzcGFjZTwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTsKK2ludAk8YSBocmVmPSIjaGFzSW50ZXJuYWxTdWJzZXQiPmhhc0ludGVybmFsU3Vic2V0PC9hPgkJKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOwordm9pZAk8YSBocmVmPSIjbm90YXRpb25EZWNsIj5ub3RhdGlvbkRlY2w8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI2dldFN5c3RlbUlkIj5nZXRTeXN0ZW1JZDwvYT4JCSh2b2lkICogY3R4KTsKK3ZvaWQJPGEgaHJlZj0iI2V4dGVybmFsU3Vic2V0Ij5leHRlcm5hbFN1YnNldDwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCk7Cit2b2lkCTxhIGhyZWY9IiNzdGFydERvY3VtZW50Ij5zdGFydERvY3VtZW50PC9hPgkJCSh2b2lkICogY3R4KTsKK3ZvaWQJPGEgaHJlZj0iI3NldE5hbWVzcGFjZSI+c2V0TmFtZXNwYWNlPC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI2NkYXRhQmxvY2siPmNkYXRhQmxvY2s8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIGludCBsZW4pOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiNnZXRQdWJsaWNJZCI+Z2V0UHVibGljSWQ8L2E+CQkodm9pZCAqIGN0eCk7Cit2b2lkCTxhIGhyZWY9IiNpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyIj5pbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT4gKiBoZGxyKTsKK3ZvaWQJPGEgaHJlZj0iI3Byb2Nlc3NpbmdJbnN0cnVjdGlvbiI+cHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSk7Cit2b2lkCTxhIGhyZWY9IiNlbmRFbGVtZW50Ij5lbmRFbGVtZW50PC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI25hbWVzcGFjZURlY2wiPm5hbWVzcGFjZURlY2w8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGhyZWYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk7Cit2b2lkCTxhIGhyZWY9IiNpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyIj5pbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT4gKiBoZGxyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjZ2V0RW50aXR5Ij5nZXRFbnRpdHk8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cit2b2lkCTxhIGhyZWY9IiNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK3ZvaWQJPGEgaHJlZj0iI2VsZW1lbnREZWNsIj5lbGVtZW50RGVjbDwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBpbnQgdHlwZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGNvbnRlbnQpOwordm9pZAk8YSBocmVmPSIjc3RhcnRFbGVtZW50Ij5zdGFydEVsZW1lbnQ8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JPGEgaHJlZj0iI2dldFBhcmFtZXRlckVudGl0eSI+Z2V0UGFyYW1ldGVyRW50aXR5PC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cit2b2lkCTxhIGhyZWY9IiNhdHRyaWJ1dGVEZWNsIj5hdHRyaWJ1dGVEZWNsPC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyLz4JCQkJCSBpbnQgdHlwZSwgPGJyLz4JCQkJCSBpbnQgZGVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkZWZhdWx0VmFsdWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPiB0cmVlKTsKK2ludAk8YSBocmVmPSIjaXNTdGFuZGFsb25lIj5pc1N0YW5kYWxvbmU8L2E+CQkJKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjaW50ZXJuYWxTdWJzZXQiPmludGVybmFsU3Vic2V0PC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk7Cit2b2lkCTxhIGhyZWY9IiNlbmREb2N1bWVudCI+ZW5kRG9jdW1lbnQ8L2E+CQkJKHZvaWQgKiBjdHgpOworaW50CTxhIGhyZWY9IiNnZXRMaW5lTnVtYmVyIj5nZXRMaW5lTnVtYmVyPC9hPgkJCSh2b2lkICogY3R4KTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJhdHRyaWJ1dGUiLz5hdHRyaWJ1dGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWF0dHJpYnV0ZQkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPkhhbmRsZSBhbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0aGF0IGhhcyBiZWVuIHJlYWQgYnkgdGhlIHBhcnNlci4gVGhlIGRlZmF1bHQgaGFuZGxpbmcgaXMgdG8gY29udmVydCB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaW50byBhbiBET00gc3VidHJlZSBhbmQgcGFzdCBpdCBpbiBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyIj54bWxBdHRyPC9hPiBlbGVtZW50IGFkZGVkIHRvIHRoZSBlbGVtZW50LiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkF0dHJpYnV0ZSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bGxuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJhdHRyaWJ1dGVEZWNsIi8+YXR0cmlidXRlRGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJYXR0cmlidXRlRGVjbAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyLz4JCQkJCSBpbnQgdHlwZSwgPGJyLz4JCQkJCSBpbnQgZGVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkZWZhdWx0VmFsdWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPiB0cmVlKTxici8+Cis8L3ByZT48cD5BbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkF0dHJpYnV0ZURlY2woKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVsbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBvZiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZWZhdWx0VmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHJlZSBvZiBlbnVtZXJhdGVkIHZhbHVlIHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImNkYXRhQmxvY2siLz5jZGF0YUJsb2NrICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAljZGF0YUJsb2NrCQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPmNhbGxlZCB3aGVuIGEgcGNkYXRhIGJsb2NrIGhhcyBiZWVuIHBhcnNlZCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkNEYXRhQmxvY2soKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHBjZGF0YSBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBibG9jayBsZW5ndGg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJjaGFyYWN0ZXJzIi8+Y2hhcmFjdGVycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJY2hhcmFjdGVycwkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5yZWNlaXZpbmcgc29tZSBjaGFycyBmcm9tIHRoZSBwYXJzZXIuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyQ2hhcmFjdGVycygpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImNoZWNrTmFtZXNwYWNlIi8+Y2hlY2tOYW1lc3BhY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJY2hlY2tOYW1lc3BhY2UJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlKTxici8+Cis8L3ByZT48cD5DaGVjayB0aGF0IHRoZSBjdXJyZW50IGVsZW1lbnQgbmFtZXNwYWNlIGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgcmVhZCB1cG9uIHBhcnNpbmcuIERFUFJFQ0FURUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHRvIGNoZWNrIGFnYWluc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImNvbW1lbnQiLz5jb21tZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAljb21tZW50CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5BIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gaGFzIGJlZW4gcGFyc2VkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkNvbW1lbnQoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gY29udGVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImVsZW1lbnREZWNsIi8+ZWxlbWVudERlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWVsZW1lbnREZWNsCQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50KTxici8+Cis8L3ByZT48cD5BbiBlbGVtZW50IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyRWxlbWVudERlY2woKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB2YWx1ZSB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZW5kRG9jdW1lbnQiLz5lbmREb2N1bWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZW5kRG9jdW1lbnQJCQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+Y2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFbmREb2N1bWVudCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJlbmRFbGVtZW50Ii8+ZW5kRWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZW5kRWxlbWVudAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZW5kIG9mIGFuIGVsZW1lbnQgaGFzIGJlZW4gZGV0ZWN0ZWQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyRW5kRWxlbWVudCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJlbnRpdHlEZWNsIi8+ZW50aXR5RGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZW50aXR5RGVjbAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCB0eXBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkVudGl0eURlY2woKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJleHRlcm5hbFN1YnNldCIvPmV4dGVybmFsU3Vic2V0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlleHRlcm5hbFN1YnNldAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8YnIvPgorPC9wcmU+PHA+Q2FsbGJhY2sgb24gZXh0ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkV4dGVybmFsU3Vic2V0KCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJvb3QgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5FeHRlcm5hbElEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0ZXJuYWwgSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU1lTVEVNIElEIChlLmcuIGZpbGVuYW1lIG9yIFVSTCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJnZXRDb2x1bW5OdW1iZXIiLz5nZXRDb2x1bW5OdW1iZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJZ2V0Q29sdW1uTnVtYmVyCQkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGUgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRDb2x1bW5OdW1iZXIoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJnZXRFbnRpdHkiLz5nZXRFbnRpdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JZ2V0RW50aXR5CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+R2V0IGFuIGVudGl0eSBieSBuYW1lIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyR2V0RW50aXR5KCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+IGlmIGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImdldExpbmVOdW1iZXIiLz5nZXRMaW5lTnVtYmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWdldExpbmVOdW1iZXIJCQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRMaW5lTnVtYmVyKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZ2V0TmFtZXNwYWNlIi8+Z2V0TmFtZXNwYWNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPglnZXROYW1lc3BhY2UJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGN1cnJlbnQgZWxlbWVudCBuYW1lc3BhY2UuIERFUFJFQ0FURUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gb3IgTlVMTCBpZiBub25lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZ2V0UGFyYW1ldGVyRW50aXR5Ii8+Z2V0UGFyYW1ldGVyRW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CWdldFBhcmFtZXRlckVudGl0eQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+R2V0IGEgcGFyYW1ldGVyIGVudGl0eSBieSBuYW1lIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5KCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+IGlmIGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImdldFB1YmxpY0lkIi8+Z2V0UHVibGljSWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJZ2V0UHVibGljSWQJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgcHVibGljIElEIGUuZy4gIi0vL1NHTUxTT1VSQ0UvL0RURCBERU1PLy9FTiIgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRQdWJsaWNJZCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZ2V0U3lzdGVtSWQiLz5nZXRTeXN0ZW1JZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglnZXRTeXN0ZW1JZAkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBzeXN0ZW0gSUQsIGJhc2ljYWxseSBVUkwgb3IgZmlsZW5hbWUgZS5nLiBodHRwOi8vd3d3LnNnbWxzb3VyY2UuY29tL2R0ZHMvbWVtby5kdGQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRTeXN0ZW1JZCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZ2xvYmFsTmFtZXNwYWNlIi8+Z2xvYmFsTmFtZXNwYWNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlnbG9iYWxOYW1lc3BhY2UJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTxici8+Cis8L3ByZT48cD5BbiBvbGQgZ2xvYmFsIG5hbWVzcGFjZSBoYXMgYmVlbiBwYXJzZWQuIERFUFJFQ0FURUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aHJlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIFVSTjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imhhc0V4dGVybmFsU3Vic2V0Ii8+aGFzRXh0ZXJuYWxTdWJzZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaGFzRXh0ZXJuYWxTdWJzZXQJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5Eb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGV4dGVybmFsIHN1YnNldCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0KCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaGFzSW50ZXJuYWxTdWJzZXQiLz5oYXNJbnRlcm5hbFN1YnNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAloYXNJbnRlcm5hbFN1YnNldAkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0IERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJpZ25vcmFibGVXaGl0ZXNwYWNlIi8+aWdub3JhYmxlV2hpdGVzcGFjZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaWdub3JhYmxlV2hpdGVzcGFjZQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNoLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPnJlY2VpdmluZyBzb21lIGlnbm9yYWJsZSB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBwYXJzZXIuIFVOVVNFRDogYnkgZGVmYXVsdCB0aGUgRE9NIGJ1aWxkaW5nIHdpbGwgdXNlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlciIvPmluaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWluaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXIJKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+ICogaGRscik8YnIvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBEb2NCb29rIFNBWCB2ZXJzaW9uIDEgaGFuZGxlciBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIoKSBmb3IgdGhlIG5ldyBTQVgyIGJsb2NrczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGRscjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlciIvPmluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXIJKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+ICogaGRscik8YnIvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBIVE1MIFNBWCB2ZXJzaW9uIDEgaGFuZGxlciBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIoKSBmb3IgdGhlIG5ldyBTQVgyIGJsb2NrczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGRscjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyIi8+aW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIJKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+ICogaGRsciwgPGJyLz4JCQkJCSBpbnQgd2FybmluZyk8YnIvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBYTUwgU0FYIHZlcnNpb24gMSBoYW5kbGVyIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyKCkgZm9yIHRoZSBuZXcgU0FYMiBibG9ja3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhkbHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2FybmluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZmxhZyBpZiBub24temVybyBzZXRzIHRoZSBoYW5kbGVyIHdhcm5pbmcgcHJvY2VkdXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaW50ZXJuYWxTdWJzZXQiLz5pbnRlcm5hbFN1YnNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaW50ZXJuYWxTdWJzZXQJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIG9uIGludGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJbnRlcm5hbFN1YnNldCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByb290IGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dGVybmFsIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaXNTdGFuZGFsb25lIi8+aXNTdGFuZGFsb25lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWlzU3RhbmRhbG9uZQkJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5JcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lID8gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJc1N0YW5kYWxvbmUoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJuYW1lc3BhY2VEZWNsIi8+bmFtZXNwYWNlRGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJbmFtZXNwYWNlRGVjbAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBocmVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgpPGJyLz4KKzwvcHJlPjxwPkEgbmFtZXNwYWNlIGhhcyBiZWVuIHBhcnNlZC4gREVQUkVDQVRFRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ocmVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgVVJOPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ibm90YXRpb25EZWNsIi8+bm90YXRpb25EZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlub3RhdGlvbkRlY2wJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkKTxici8+Cis8L3ByZT48cD5XaGF0IHRvIGRvIHdoZW4gYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBoYXMgYmVlbiBwYXJzZWQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyTm90YXRpb25EZWNsKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0icHJvY2Vzc2luZ0luc3RydWN0aW9uIi8+cHJvY2Vzc2luZ0luc3RydWN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPkEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBoYXMgYmVlbiBwYXJzZWQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQSSBkYXRhJ3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJyZWZlcmVuY2UiLz5yZWZlcmVuY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXJlZmVyZW5jZQkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiBhbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gaXMgZGV0ZWN0ZWQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyUmVmZXJlbmNlKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0icmVzb2x2ZUVudGl0eSIvPnJlc29sdmVFbnRpdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXJlc29sdmVFbnRpdHkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCk8YnIvPgorPC9wcmU+PHA+VGhlIGVudGl0eSBsb2FkZXIsIHRvIGNvbnRyb2wgdGhlIGxvYWRpbmcgb2YgZXh0ZXJuYWwgZW50aXRpZXMsIHRoZSBhcHBsaWNhdGlvbiBjYW4gZWl0aGVyOiAtIG92ZXJyaWRlIHRoaXMgcmVzb2x2ZUVudGl0eSgpIGNhbGxiYWNrIGluIHRoZSBTQVggYmxvY2sgLSBvciBiZXR0ZXIgdXNlIHRoZSB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpIGZ1bmN0aW9uIHRvIHNldCB1cCBpdCdzIG93biBlbnRpdHkgcmVzb2x1dGlvbiByb3V0aW5lIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyUmVzb2x2ZUVudGl0eSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlmIGlubGluZWQgb3IgTlVMTCBmb3IgRE9NIGJlaGF2aW91ci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJzZXREb2N1bWVudExvY2F0b3IiLz5zZXREb2N1bWVudExvY2F0b3IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXNldERvY3VtZW50TG9jYXRvcgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYTG9jYXRvclB0ciI+eG1sU0FYTG9jYXRvclB0cjwvYT4gbG9jKTxici8+Cis8L3ByZT48cD5SZWNlaXZlIHRoZSBkb2N1bWVudCBsb2NhdG9yIGF0IHN0YXJ0dXAsIGFjdHVhbGx5IDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbERlZmF1bHRTQVhMb2NhdG9yIj54bWxEZWZhdWx0U0FYTG9jYXRvcjwvYT4gRXZlcnl0aGluZyBpcyBhdmFpbGFibGUgb24gdGhlIGNvbnRleHQsIHNvIHRoaXMgaXMgdXNlbGVzcyBpbiBvdXIgY2FzZS4gREVQUkVDQVRFRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgU0FYIExvY2F0b3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJzZXROYW1lc3BhY2UiLz5zZXROYW1lc3BhY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXNldE5hbWVzcGFjZQkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZXQgdGhlIGN1cnJlbnQgZWxlbWVudCBuYW1lc3BhY2UuIERFUFJFQ0FURUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJzdGFydERvY3VtZW50Ii8+c3RhcnREb2N1bWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJc3RhcnREb2N1bWVudAkJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgc3RhcnQgYmVpbmcgcHJvY2Vzc2VkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMlN0YXJ0RG9jdW1lbnQoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ic3RhcnRFbGVtZW50Ii8+c3RhcnRFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlzdGFydEVsZW1lbnQJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZnVsbG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBhdHRzKTxici8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyU3RhcnRFbGVtZW50KCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVsbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbGVtZW50IG5hbWUsIGluY2x1ZGluZyBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBhcnJheSBvZiBuYW1lL3ZhbHVlIGF0dHJpYnV0ZXMgcGFpcnMsIE5VTEwgdGVybWluYXRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InVucGFyc2VkRW50aXR5RGVjbCIvPnVucGFyc2VkRW50aXR5RGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJdW5wYXJzZWRFbnRpdHlEZWNsCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBub3RhdGlvbk5hbWUpPGJyLz4KKzwvcHJlPjxwPldoYXQgdG8gZG8gd2hlbiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb24gaXMgcGFyc2VkIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIG5hbWUgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm90YXRpb25OYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgbm90YXRpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1TQVgyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItU0FYMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4MDE5OWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItU0FYMi5odG1sCkBAIC0wLDAgKzEsMjQ3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPlNBWDI6IFNBWDIgcGFyc2VyIGludGVyZmFjZSB1c2VkIHRvIGJ1aWxkIHRoZSBET00gdHJlZTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLWMxNG4uaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPlNBWDI8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5TQVgyIC0gU0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPC9wPgorICAgIDxwPnRob3NlIGFyZSB0aGUgZGVmYXVsdCBTQVgyIGludGVyZmFjZXMgdXNlZCBieSB0aGUgbGlicmFyeSB3aGVuIGJ1aWxkaW5nIERPTSB0cmVlLiA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+dm9pZAk8YSBocmVmPSIjeG1sU0FYMkVuZEVsZW1lbnROcyI+eG1sU0FYMkVuZEVsZW1lbnROczwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsb2NhbG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJSZWZlcmVuY2UiPnhtbFNBWDJSZWZlcmVuY2U8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgyRWxlbWVudERlY2wiPnhtbFNBWDJFbGVtZW50RGVjbDwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCB0eXBlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgyQXR0cmlidXRlRGVjbCI+eG1sU0FYMkF0dHJpYnV0ZURlY2w8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZWxlbSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZnVsbG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgaW50IGRlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGVmYXVsdFZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gdHJlZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgyQ29tbWVudCI+eG1sU0FYMkNvbW1lbnQ8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTsKK2ludAk8YSBocmVmPSIjeG1sU0FYMkdldENvbHVtbk51bWJlciI+eG1sU0FYMkdldENvbHVtbk51bWJlcjwvYT4JCSh2b2lkICogY3R4KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYMkdldEVudGl0eSI+eG1sU0FYMkdldEVudGl0eTwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOwordm9pZAk8YSBocmVmPSIjeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCI+eG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbDwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbm90YXRpb25OYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+ICogaGRscik7CitpbnQJPGEgaHJlZj0iI3htbFNBWFZlcnNpb24iPnhtbFNBWFZlcnNpb248L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+ICogaGRsciwgPGJyLz4JCQkJCSBpbnQgdmVyc2lvbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSI+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U8L2E+CSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJOb3RhdGlvbkRlY2wiPnhtbFNBWDJOb3RhdGlvbkRlY2w8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJTdGFydERvY3VtZW50Ij54bWxTQVgyU3RhcnREb2N1bWVudDwvYT4JCSh2b2lkICogY3R4KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJFbmRFbGVtZW50Ij54bWxTQVgyRW5kRWxlbWVudDwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNBWDJSZXNvbHZlRW50aXR5Ij54bWxTQVgyUmVzb2x2ZUVudGl0eTwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJFeHRlcm5hbFN1YnNldCI+eG1sU0FYMkV4dGVybmFsU3Vic2V0PC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU0FYMkdldFB1YmxpY0lkIj54bWxTQVgyR2V0UHVibGljSWQ8L2E+CSh2b2lkICogY3R4KTsKK2ludAk8YSBocmVmPSIjeG1sU0FYMklzU3RhbmRhbG9uZSI+eG1sU0FYMklzU3RhbmRhbG9uZTwvYT4JCSh2b2lkICogY3R4KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJFbmREb2N1bWVudCI+eG1sU0FYMkVuZERvY3VtZW50PC9hPgkJKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbiI+eG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgySW50ZXJuYWxTdWJzZXQiPnhtbFNBWDJJbnRlcm5hbFN1YnNldDwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgyQ2hhcmFjdGVycyI+eG1sU0FYMkNoYXJhY3RlcnM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxici8+CQkJCQkgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbFNBWERlZmF1bHRWZXJzaW9uIj54bWxTQVhEZWZhdWx0VmVyc2lvbjwvYT4JCShpbnQgdmVyc2lvbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgyU3RhcnRFbGVtZW50Ij54bWxTQVgyU3RhcnRFbGVtZW50PC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yIj54bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yPC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhMb2NhdG9yUHRyIj54bWxTQVhMb2NhdG9yUHRyPC9hPiBsb2MpOwordm9pZAk8YSBocmVmPSIjeG1sU0FYMkNEYXRhQmxvY2siPnhtbFNBWDJDRGF0YUJsb2NrPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIGludCBsZW4pOwordm9pZAk8YSBocmVmPSIjeG1sU0FYMlN0YXJ0RWxlbWVudE5zIj54bWxTQVgyU3RhcnRFbGVtZW50TnM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyLz4JCQkJCSBpbnQgbmJfbmFtZXNwYWNlcywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzcGFjZXMsIDxici8+CQkJCQkgaW50IG5iX2F0dHJpYnV0ZXMsIDxici8+CQkJCQkgaW50IG5iX2RlZmF1bHRlZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGF0dHJpYnV0ZXMpOworaW50CTxhIGhyZWY9IiN4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQiPnhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDwvYT4JKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCI+aHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT4JKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxTQVgyR2V0TGluZU51bWJlciI+eG1sU0FYMkdldExpbmVOdW1iZXI8L2E+CQkodm9pZCAqIGN0eCk7CitpbnQJPGEgaHJlZj0iI3htbFNBWDJIYXNJbnRlcm5hbFN1YnNldCI+eG1sU0FYMkhhc0ludGVybmFsU3Vic2V0PC9hPgkodm9pZCAqIGN0eCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlciI+eG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPiAqIGhkbHIpOwordm9pZAk8YSBocmVmPSIjZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCI+ZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT4JKHZvaWQpOwordm9pZAk8YSBocmVmPSIjeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ij54bWxEZWZhdWx0U0FYSGFuZGxlckluaXQ8L2E+CSh2b2lkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIiPnhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPiAqIGhkbHIsIDxici8+CQkJCQkgaW50IHdhcm5pbmcpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5Ij54bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5PC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTQVgyR2V0U3lzdGVtSWQiPnhtbFNBWDJHZXRTeXN0ZW1JZDwvYT4JKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjeG1sU0FYMkVudGl0eURlY2wiPnhtbFNBWDJFbnRpdHlEZWNsPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCIvPmRvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWRvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYIGhhbmRsZXI8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCIvPmh0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYIGhhbmRsZXI8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ii8+eG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYMiBoYW5kbGVyPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJBdHRyaWJ1dGVEZWNsIi8+eG1sU0FYMkF0dHJpYnV0ZURlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJBdHRyaWJ1dGVEZWNsCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZWxlbSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZnVsbG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgaW50IGRlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGVmYXVsdFZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gdHJlZSk8YnIvPgorPC9wcmU+PHA+QW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bGxuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgZGVmYXVsdCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmYXVsdFZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVmYXVsdCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRyZWUgb2YgZW51bWVyYXRlZCB2YWx1ZSBzZXQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyQ0RhdGFCbG9jayIvPnhtbFNBWDJDRGF0YUJsb2NrICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyQ0RhdGFCbG9jawkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPmNhbGxlZCB3aGVuIGEgcGNkYXRhIGJsb2NrIGhhcyBiZWVuIHBhcnNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHBjZGF0YSBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBibG9jayBsZW5ndGg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyQ2hhcmFjdGVycyIvPnhtbFNBWDJDaGFyYWN0ZXJzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyQ2hhcmFjdGVycwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNoLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPnJlY2VpdmluZyBzb21lIGNoYXJzIGZyb20gdGhlIHBhcnNlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkNvbW1lbnQiLz54bWxTQVgyQ29tbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkNvbW1lbnQJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPkEgPGEgaHJlZj0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkNvbW1lbnQiPnhtbFNBWDJDb21tZW50PC9hPiBoYXMgYmVlbiBwYXJzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkNvbW1lbnQiPnhtbFNBWDJDb21tZW50PC9hPiBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkVsZW1lbnREZWNsIi8+eG1sU0FYMkVsZW1lbnREZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyRWxlbWVudERlY2wJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCB0eXBlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCk8YnIvPgorPC9wcmU+PHA+QW4gZWxlbWVudCBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB2YWx1ZSB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkVuZERvY3VtZW50Ii8+eG1sU0FYMkVuZERvY3VtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyRW5kRG9jdW1lbnQJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkVuZEVsZW1lbnQiLz54bWxTQVgyRW5kRWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkVuZEVsZW1lbnQJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZW5kIG9mIGFuIGVsZW1lbnQgaGFzIGJlZW4gZGV0ZWN0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyRW5kRWxlbWVudE5zIi8+eG1sU0FYMkVuZEVsZW1lbnROcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkVuZEVsZW1lbnROcwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkkpPGJyLz4KKzwvcHJlPjxwPlNBWDIgY2FsbGJhY2sgd2hlbiBhbiBlbGVtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvY2FsbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsIG5hbWUgb2YgdGhlIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZXNwYWNlIHByZWZpeCBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZXNwYWNlIG5hbWUgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkVudGl0eURlY2wiLz54bWxTQVgyRW50aXR5RGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkVudGl0eURlY2wJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCB0eXBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyRXh0ZXJuYWxTdWJzZXQiLz54bWxTQVgyRXh0ZXJuYWxTdWJzZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJFeHRlcm5hbFN1YnNldAkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBvbiBleHRlcm5hbCBzdWJzZXQgZGVjbGFyYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByb290IGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dGVybmFsIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldENvbHVtbk51bWJlciIvPnhtbFNBWDJHZXRDb2x1bW5OdW1iZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU0FYMkdldENvbHVtbk51bWJlcgkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGUgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldEVudGl0eSIvPnhtbFNBWDJHZXRFbnRpdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sU0FYMkdldEVudGl0eQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+R2V0IGFuIGVudGl0eSBieSBuYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbnRpdHkgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBpZiBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyR2V0TGluZU51bWJlciIvPnhtbFNBWDJHZXRMaW5lTnVtYmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNBWDJHZXRMaW5lTnVtYmVyCQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSIvPnhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPkdldCBhIHBhcmFtZXRlciBlbnRpdHkgYnkgbmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gaWYgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldFB1YmxpY0lkIi8+eG1sU0FYMkdldFB1YmxpY0lkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFNBWDJHZXRQdWJsaWNJZAkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHB1YmxpYyBJRCBlLmcuICItLy9TR01MU09VUkNFLy9EVEQgREVNTy8vRU4iPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldFN5c3RlbUlkIi8+eG1sU0FYMkdldFN5c3RlbUlkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFNBWDJHZXRTeXN0ZW1JZAkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHN5c3RlbSBJRCwgYmFzaWNhbGx5IFVSTCBvciBmaWxlbmFtZSBlLmcuIGh0dHA6Ly93d3cuc2dtbHNvdXJjZS5jb20vZHRkcy9tZW1vLmR0ZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCIvPnhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldCIvPnhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlIi8+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5yZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSA8YSBocmVmPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyQ2hhcmFjdGVycyI+eG1sU0FYMkNoYXJhY3RlcnM8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIiLz54bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPiAqIGhkbHIsIDxici8+CQkJCQkgaW50IHdhcm5pbmcpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgWE1MIFNBWDIgaGFuZGxlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGRscjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53YXJuaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mbGFnIGlmIG5vbi16ZXJvIHNldHMgdGhlIGhhbmRsZXIgd2FybmluZyBwcm9jZWR1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlciIvPnhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiBoZGxyKTxici8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IERvY0Jvb2sgU0FYMiBoYW5kbGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZGxyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlciIvPnhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiBoZGxyKTxici8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IEhUTUwgU0FYMiBoYW5kbGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZGxyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgySW50ZXJuYWxTdWJzZXQiLz54bWxTQVgySW50ZXJuYWxTdWJzZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJJbnRlcm5hbFN1YnNldAkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBvbiBpbnRlcm5hbCBzdWJzZXQgZGVjbGFyYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByb290IGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dGVybmFsIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMklzU3RhbmRhbG9uZSIvPnhtbFNBWDJJc1N0YW5kYWxvbmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU0FYMklzU3RhbmRhbG9uZQkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPklzIHRoaXMgZG9jdW1lbnQgdGFnZ2VkIHN0YW5kYWxvbmUgPzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyTm90YXRpb25EZWNsIi8+eG1sU0FYMk5vdGF0aW9uRGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMk5vdGF0aW9uRGVjbAkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCk8YnIvPgorPC9wcmU+PHA+V2hhdCB0byBkbyB3aGVuIGEgbm90YXRpb24gZGVjbGFyYXRpb24gaGFzIGJlZW4gcGFyc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgbmFtZSBvZiB0aGUgbm90YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uIi8+eG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdGFyZ2V0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkYXRhKTxici8+Cis8L3ByZT48cD5BIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaGFzIGJlZW4gcGFyc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YXJnZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFBJIGRhdGEnczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJSZWZlcmVuY2UiLz54bWxTQVgyUmVmZXJlbmNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyUmVmZXJlbmNlCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Y2FsbGVkIHdoZW4gYW4gZW50aXR5IDxhIGhyZWY9ImxpYnhtbDItU0FYMi5odG1sI3htbFNBWDJSZWZlcmVuY2UiPnhtbFNBWDJSZWZlcmVuY2U8L2E+IGlzIGRldGVjdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyUmVzb2x2ZUVudGl0eSIvPnhtbFNBWDJSZXNvbHZlRW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxTQVgyUmVzb2x2ZUVudGl0eQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpPGJyLz4KKzwvcHJlPjxwPlRoZSBlbnRpdHkgbG9hZGVyLCB0byBjb250cm9sIHRoZSBsb2FkaW5nIG9mIGV4dGVybmFsIGVudGl0aWVzLCB0aGUgYXBwbGljYXRpb24gY2FuIGVpdGhlcjogLSBvdmVycmlkZSB0aGlzIHhtbFNBWDJSZXNvbHZlRW50aXR5KCkgY2FsbGJhY2sgaW4gdGhlIFNBWCBibG9jayAtIG9yIGJldHRlciB1c2UgdGhlIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKCkgZnVuY3Rpb24gdG8gc2V0IHVwIGl0J3Mgb3duIGVudGl0eSByZXNvbHV0aW9uIHJvdXRpbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaWYgaW5saW5lZCBvciBOVUxMIGZvciBET00gYmVoYXZpb3VyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJTZXREb2N1bWVudExvY2F0b3IiLz54bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+IGxvYyk8YnIvPgorPC9wcmU+PHA+UmVjZWl2ZSB0aGUgZG9jdW1lbnQgbG9jYXRvciBhdCBzdGFydHVwLCBhY3R1YWxseSA8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxEZWZhdWx0U0FYTG9jYXRvciI+eG1sRGVmYXVsdFNBWExvY2F0b3I8L2E+IEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBTQVggTG9jYXRvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJTdGFydERvY3VtZW50Ii8+eG1sU0FYMlN0YXJ0RG9jdW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJTdGFydERvY3VtZW50CQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+Y2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IHN0YXJ0IGJlaW5nIHByb2Nlc3NlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWDJTdGFydEVsZW1lbnQiLz54bWxTQVgyU3RhcnRFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyU3RhcnRFbGVtZW50CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZnVsbG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBhdHRzKTxici8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bGxuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZWxlbWVudCBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gYXJyYXkgb2YgbmFtZS92YWx1ZSBhdHRyaWJ1dGVzIHBhaXJzLCBOVUxMIHRlcm1pbmF0ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVgyU3RhcnRFbGVtZW50TnMiLz54bWxTQVgyU3RhcnRFbGVtZW50TnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJTdGFydEVsZW1lbnROcwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxici8+CQkJCQkgaW50IG5iX25hbWVzcGFjZXMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzLCA8YnIvPgkJCQkJIGludCBuYl9hdHRyaWJ1dGVzLCA8YnIvPgkJCQkJIGludCBuYl9kZWZhdWx0ZWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBhdHRyaWJ1dGVzKTxici8+Cis8L3ByZT48cD5TQVgyIGNhbGxiYWNrIHdoZW4gYW4gZWxlbWVudCBzdGFydCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQsIGFzIHdlbGwgYXMgdGhlIG5ldyBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIG9uIHRoZSBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9mIHRoZSBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJfbmFtZXNwYWNlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bnVtYmVyIG9mIG5hbWVzcGFjZSBkZWZpbml0aW9ucyBvbiB0aGF0IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHByZWZpeC9VUkkgcGFpcnMgbmFtZXNwYWNlIGRlZmluaXRpb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYl9hdHRyaWJ1dGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgb24gdGhhdCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYl9kZWZhdWx0ZWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZGVmYXVsdGVkIGF0dHJpYnV0ZXMuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyaWJ1dGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiAobG9jYWxuYW1lL3ByZWZpeC9VUkkvdmFsdWUvZW5kKSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCIvPnhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2wJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbm90YXRpb25OYW1lKTxici8+Cis8L3ByZT48cD5XaGF0IHRvIGRvIHdoZW4gYW4gdW5wYXJzZWQgZW50aXR5IGRlY2xhcmF0aW9uIGlzIHBhcnNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgbmFtZSBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub3RhdGlvbk5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWERlZmF1bHRWZXJzaW9uIi8+eG1sU0FYRGVmYXVsdFZlcnNpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU0FYRGVmYXVsdFZlcnNpb24JCShpbnQgdmVyc2lvbik8YnIvPgorPC9wcmU+PHA+U2V0IHRoZSBkZWZhdWx0IHZlcnNpb24gb2YgU0FYIHVzZWQgZ2xvYmFsbHkgYnkgdGhlIGxpYnJhcnkuIEJ5IGRlZmF1bHQsIGR1cmluZyBpbml0aWFsaXphdGlvbiB0aGUgZGVmYXVsdCBpcyBzZXQgdG8gMi4gTm90ZSB0aGF0IGl0IGlzIGdlbmVyYWxseSBhIGJldHRlciBjb2Rpbmcgc3R5bGUgdG8gdXNlIHhtbFNBWFZlcnNpb24oKSB0byBzZXQgdXAgdGhlIHZlcnNpb24gZXhwbGljaXRseSBmb3IgYSBnaXZlbiBwYXJzaW5nIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52ZXJzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmVyc2lvbiwgMSBvciAyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgdmFsdWUgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWFZlcnNpb24iLz54bWxTQVhWZXJzaW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNBWFZlcnNpb24JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiBoZGxyLCA8YnIvPgkJCQkJIGludCB2ZXJzaW9uKTxici8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IFhNTCBTQVggaGFuZGxlciBhY2NvcmRpbmcgdG8gdGhlIHZlcnNpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhkbHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmVyc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZlcnNpb24sIDEgb3IgMjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItYzE0bi5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWMxNG4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTQ1MDBlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWMxNG4uaHRtbApAQCAtMCwwICsxLDkxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPmMxNG46IFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1TQVgyLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPmMxNG48L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5jMTRuIC0gUHJvdmlkZSBDYW5vbmljYWwgWE1MIGFuZCBFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb248L3A+CisgICAgPHA+dGhlIGMxNG4gbW9kdWxlcyBwcm92aWRlcyBhICAiQ2Fub25pY2FsIFhNTCIgaW1wbGVtZW50YXRpb248L3A+CisgICAgPHA+QXV0aG9yKHMpOiBBbGVrc2V5IFNhbmluICZsdDthbGVrc2V5QGFsZWtzZXkuY29tJmd0OyA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbEMxNE5Nb2RlIj54bWxDMTROTW9kZTwvYT47CitpbnQJPGEgaHJlZj0iI3htbEMxNE5FeGVjdXRlIj54bWxDMTRORXhlY3V0ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWMxNG4uaHRtbCN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT4gaXNfdmlzaWJsZV9jYWxsYmFjaywgPGJyLz4JCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIvPgkJCQkJIGludCBtb2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLCA8YnIvPgkJCQkJIGludCB3aXRoX2NvbW1lbnRzLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYpOworaW50CTxhIGhyZWY9IiN4bWxDMTRORG9jU2F2ZVRvIj54bWxDMTRORG9jU2F2ZVRvPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIvPgkJCQkJIGludCBtb2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLCA8YnIvPgkJCQkJIGludCB3aXRoX2NvbW1lbnRzLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYpOwordHlwZWRlZiBpbnQgPGEgaHJlZj0iI3htbEMxNE5Jc1Zpc2libGVDYWxsYmFjayI+eG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrPC9hPgkodm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCk7CitpbnQJPGEgaHJlZj0iI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMsIDxici8+CQkJCQkgaW50IG1vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBpbmNsdXNpdmVfbnNfcHJlZml4ZXMsIDxici8+CQkJCQkgaW50IHdpdGhfY29tbWVudHMsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGludCBjb21wcmVzc2lvbik7CitpbnQJPGEgaHJlZj0iI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyLz4JCQkJCSBpbnQgbW9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgPGJyLz4JCQkJCSBpbnQgd2l0aF9jb21tZW50cywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGRvY190eHRfcHRyKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDMTROTW9kZSI+RW51bSA8L2E+eG1sQzE0Tk1vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiN4bWxDMTROTW9kZSI+eG1sQzE0Tk1vZGU8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfQzE0Tl8xXzAiPlhNTF9DMTROXzFfMDwvYT4gPSAwIC8qIE9yaWdpYW5hbCBDMTROIDEuMCBzcGVjICovCisgICAgPGEgbmFtZT0iWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCI+WE1MX0MxNE5fRVhDTFVTSVZFXzFfMDwvYT4gPSAxIC8qIEV4Y2x1c2l2ZSBDMTROIDEuMCBzcGVjICovCisgICAgPGEgbmFtZT0iWE1MX0MxNE5fMV8xIj5YTUxfQzE0Tl8xXzE8L2E+ID0gMiAvKiAgQzE0TiAxLjEgc3BlYyAqLworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siLz5GdW5jdGlvbiB0eXBlIHhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2sJKHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgYSBDMTROIGNhbGxiYWNrIG9uIHZpc2libGUgbm9kZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dXNlciBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhcmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZSBub2RlIHNob3VsZCBiZSBpbmNsdWRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEMxNE5Eb2NEdW1wTWVtb3J5Ii8+eG1sQzE0TkRvY0R1bXBNZW1vcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQzE0TkRvY0R1bXBNZW1vcnkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyLz4JCQkJCSBpbnQgbW9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgPGJyLz4JCQkJCSBpbnQgd2l0aF9jb21tZW50cywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGRvY190eHRfcHRyKTxici8+Cis8L3ByZT48cD5EdW1wcyB0aGUgY2Fub25pemVkIGltYWdlIG9mIGdpdmVuIFhNTCBkb2N1bWVudCBpbnRvIG1lbW9yeS4gRm9yIGRldGFpbHMgc2VlICJDYW5vbmljYWwgWE1MIiAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4pIG9yICJFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24iIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBzZXQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaXplZCBpbWFnZSBvciBOVUxMIGlmIGFsbCBkb2N1bWVudCBub2RlcyBzaG91bGQgYmUgaW5jbHVkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmNsdXNpdmVfbnNfcHJlZml4ZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaXN0IG9mIGluY2x1c2l2ZSBuYW1lc3BhY2UgcHJlZml4ZXMgZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubyBpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgZXhjbHVzaXZlIGNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2l0aF9jb21tZW50czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jX3R4dF9wdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZW1vcnkgcG9pbnRlciBmb3IgYWxsb2NhdGVkIGNhbm9uaWNhbCBYTUwgdGV4dDsgdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9ucyBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyB4bWxGcmVlKCkgdG8gZnJlZSBhbGxvY2F0ZWQgbWVtb3J5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDMTRORG9jU2F2ZSIvPnhtbEMxNE5Eb2NTYXZlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEMxNE5Eb2NTYXZlCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIvPgkJCQkJIGludCBtb2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLCA8YnIvPgkJCQkJIGludCB3aXRoX2NvbW1lbnRzLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBpbnQgY29tcHJlc3Npb24pPGJyLz4KKzwvcHJlPjxwPkR1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gdGhlIGZpbGUuIEZvciBkZXRhaWxzIHNlZSAiQ2Fub25pY2FsIFhNTCIgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuKSBvciAiRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uIiAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWV4Yy1jMTRuKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGRvY3VtZW50IGZvciBjYW5vbml6YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZXMgc2V0IHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb3IgTlVMTCBpZiBhbGwgZG9jdW1lbnQgbm9kZXMgc2hvdWxkIGJlIGluY2x1ZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYzE0biBtb2RlIChzZWUgQHhtbEMxNE5Nb2RlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5jbHVzaXZlX25zX3ByZWZpeGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGlzdCBvZiBpbmNsdXNpdmUgbmFtZXNwYWNlIHByZWZpeGVzIGVuZGVkIHdpdGggYSBOVUxMIG9yIE5VTEwgaWYgdGhlcmUgaXMgbm8gaW5jbHVzaXZlIG5hbWVzcGFjZXMgKG9ubHkgZm9yIGV4Y2x1c2l2ZSBjYW5vbmljYWxpemF0aW9uLCBpZ25vcmVkIG90aGVyd2lzZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndpdGhfY29tbWVudHM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmluY2x1ZGUgY29tbWVudHMgaW4gdGhlIHJlc3VsdCAoIT0wKSBvciBub3QgKD09MCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgdG8gc3RvcmUgY2Fub25pY2FsIFhNTCBpbWFnZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcHJlc3Npb248L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb21wcmVzc2lvbiBsZXZlbCAoemxpYiByZXF1cmVkKTogLTEgLSBsaWJ4bWwgZGVmYXVsdCwgMCAtIHVuY29tcHJlc3NlZCwgJmd0OzAgLSBjb21wcmVzc2lvbiBsZXZlbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBmYWlsPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQzE0TkRvY1NhdmVUbyIvPnhtbEMxNE5Eb2NTYXZlVG8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQzE0TkRvY1NhdmVUbwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIvPgkJCQkJIGludCBtb2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLCA8YnIvPgkJCQkJIGludCB3aXRoX2NvbW1lbnRzLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYpPGJyLz4KKzwvcHJlPjxwPkR1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gdGhlIHByb3ZpZGVkIGJ1ZmZlci4gRm9yIGRldGFpbHMgc2VlICJDYW5vbmljYWwgWE1MIiAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4pIG9yICJFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24iIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBzZXQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaXplZCBpbWFnZSBvciBOVUxMIGlmIGFsbCBkb2N1bWVudCBub2RlcyBzaG91bGQgYmUgaW5jbHVkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmNsdXNpdmVfbnNfcHJlZml4ZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaXN0IG9mIGluY2x1c2l2ZSBuYW1lc3BhY2UgcHJlZml4ZXMgZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubyBpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgZXhjbHVzaXZlIGNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2l0aF9jb21tZW50czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3V0cHV0IGJ1ZmZlciB0byBzdG9yZSBjYW5vbmljYWwgWE1MOyB0aGlzIGJ1ZmZlciBNVVNUIGhhdmUgZW5jb2Rlcj09TlVMTCBiZWNhdXNlIEMxNE4gcmVxdWlyZXMgVVRGLTggb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5ub24tbmVnYXRpdmUgdmFsdWUgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDMTRORXhlY3V0ZSIvPnhtbEMxNE5FeGVjdXRlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEMxNE5FeGVjdXRlCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1jMTRuLmh0bWwjeG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrIj54bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2s8L2E+IGlzX3Zpc2libGVfY2FsbGJhY2ssIDxici8+CQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCSBpbnQgbW9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgPGJyLz4JCQkJCSBpbnQgd2l0aF9jb21tZW50cywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmKTxici8+Cis8L3ByZT48cD5EdW1wcyB0aGUgY2Fub25pemVkIGltYWdlIG9mIGdpdmVuIFhNTCBkb2N1bWVudCBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIuIEZvciBkZXRhaWxzIHNlZSAiQ2Fub25pY2FsIFhNTCIgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuKSBvciAiRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uIiAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWV4Yy1jMTRuKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGRvY3VtZW50IGZvciBjYW5vbml6YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlzX3Zpc2libGVfY2FsbGJhY2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbiB0byB1c2UgdG8gZGV0ZXJtaW5lIGlzIG5vZGUgdmlzaWJsZSBvciBub3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IHBhcmFtZXRlciBmb3IgQGlzX3Zpc2libGVfY2FsbGJhY2sgZnVuY3Rpb24gKGluIG1vc3QgY2FzZXMsIGl0IGlzIG5vZGVzIHNldCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmNsdXNpdmVfbnNfcHJlZml4ZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaXN0IG9mIGluY2x1c2l2ZSBuYW1lc3BhY2UgcHJlZml4ZXMgZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubyBpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgZXhjbHVzaXZlIGNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2l0aF9jb21tZW50czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3V0cHV0IGJ1ZmZlciB0byBzdG9yZSBjYW5vbmljYWwgWE1MOyB0aGlzIGJ1ZmZlciBNVVNUIGhhdmUgZW5jb2Rlcj09TlVMTCBiZWNhdXNlIEMxNE4gcmVxdWlyZXMgVVRGLTggb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5ub24tbmVnYXRpdmUgdmFsdWUgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1jYXRhbG9nLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItY2F0YWxvZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExZmM0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItY2F0YWxvZy5odG1sCkBAIC0wLDAgKzEsMjc4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPmNhdGFsb2c6IGludGVyZmFjZXMgdG8gdGhlIENhdGFsb2cgaGFuZGxpbmcgc3lzdGVtPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1jMTRuLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPmNhdGFsb2c8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5jYXRhbG9nIC0gaW50ZXJmYWNlcyB0byB0aGUgQ2F0YWxvZyBoYW5kbGluZyBzeXN0ZW08L3A+CisgICAgPHA+dGhlIGNhdGFsb2cgbW9kdWxlIGltcGxlbWVudHMgdGhlIHN1cHBvcnQgZm9yIFhNTCBDYXRhbG9ncyBhbmQgU0dNTCBjYXRhbG9ncyA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0NBVEFMT0dfUEkiPlhNTF9DQVRBTE9HX1BJPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9DQVRBTE9HU19OQU1FU1BBQ0UiPlhNTF9DQVRBTE9HU19OQU1FU1BBQ0U8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxDYXRhbG9nQWxsb3ciPnhtbENhdGFsb2dBbGxvdzwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbENhdGFsb2dQcmVmZXIiPnhtbENhdGFsb2dQcmVmZXI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbENhdGFsb2cgPGEgaHJlZj0iI3htbENhdGFsb2ciPnhtbENhdGFsb2c8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nIj54bWxDYXRhbG9nPC9hPiAqIDxhIGhyZWY9IiN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPjsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVDYXRhbG9nIj54bWxGcmVlQ2F0YWxvZzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwpOwordm9pZAk8YSBocmVmPSIjeG1sTG9hZENhdGFsb2dzIj54bWxMb2FkQ2F0YWxvZ3M8L2E+CQkJKGNvbnN0IGNoYXIgKiBwYXRoc3MpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlPC9hPgkodm9pZCAqIGNhdGFsb2dzLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzSUQpOworaW50CTxhIGhyZWY9IiN4bWxBQ2F0YWxvZ0FkZCI+eG1sQUNhdGFsb2dBZGQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0eXBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvcmlnLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZXBsYWNlKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljIj54bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklEKTsKKzxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dBbGxvdyI+eG1sQ2F0YWxvZ0FsbG93PC9hPgk8YSBocmVmPSIjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L2E+CSh2b2lkKTsKK2ludAk8YSBocmVmPSIjeG1sQUNhdGFsb2dSZW1vdmUiPnhtbEFDYXRhbG9nUmVtb3ZlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7Cis8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHJlZmVyIj54bWxDYXRhbG9nUHJlZmVyPC9hPgk8YSBocmVmPSIjeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1ByZWZlciI+eG1sQ2F0YWxvZ1ByZWZlcjwvYT4gcHJlZmVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQUNhdGFsb2dSZXNvbHZlVVJJIj54bWxBQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJKTsKK2ludAk8YSBocmVmPSIjeG1sQ2F0YWxvZ0FkZCI+eG1sQ2F0YWxvZ0FkZDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG9yaWcsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHJlcGxhY2UpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyI+eG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nR2V0U3lzdGVtIj54bWxDYXRhbG9nR2V0U3lzdGVtPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c0lEKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEluaXRpYWxpemVDYXRhbG9nIj54bWxJbml0aWFsaXplQ2F0YWxvZzwvYT4JCSh2b2lkKTsKK2ludAk8YSBocmVmPSIjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxDYXRhbG9nUmVtb3ZlIj54bWxDYXRhbG9nUmVtb3ZlPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI3htbENhdGFsb2dJc0VtcHR5Ij54bWxDYXRhbG9nSXNFbXB0eTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxBQ2F0YWxvZ0R1bXAiPnhtbEFDYXRhbG9nRHVtcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxici8+CQkJCQkgRklMRSAqIG91dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxDYXRhbG9nRnJlZUxvY2FsIj54bWxDYXRhbG9nRnJlZUxvY2FsPC9hPgkJKHZvaWQgKiBjYXRhbG9ncyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbEFDYXRhbG9nUmVzb2x2ZSI+eG1sQUNhdGFsb2dSZXNvbHZlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbENhdGFsb2dSZXNvbHZlU3lzdGVtIj54bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk7Cis8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgk8YSBocmVmPSIjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sQ2F0YWxvZ0NvbnZlcnQiPnhtbENhdGFsb2dDb252ZXJ0PC9hPgkJKHZvaWQpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nR2V0UHVibGljIj54bWxDYXRhbG9nR2V0UHVibGljPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklEKTsKKzxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+CTxhIGhyZWY9IiN4bWxMb2FkQUNhdGFsb2ciPnhtbExvYWRBQ2F0YWxvZzwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iPnhtbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzSUQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJPC9hPgkodm9pZCAqIGNhdGFsb2dzLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJKTsKK2ludAk8YSBocmVmPSIjeG1sQ29udmVydFNHTUxDYXRhbG9nIj54bWxDb252ZXJ0U0dNTENhdGFsb2c8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nQWRkTG9jYWwiPnhtbENhdGFsb2dBZGRMb2NhbDwvYT4JCSh2b2lkICogY2F0YWxvZ3MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSTCk7Cis8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3Q2F0YWxvZyI+eG1sTmV3Q2F0YWxvZzwvYT4JCShpbnQgc2dtbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlQ2F0YWxvZ0ZpbGUiPnhtbFBhcnNlQ2F0YWxvZ0ZpbGU8L2E+CShjb25zdCBjaGFyICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxDYXRhbG9nU2V0RGVidWciPnhtbENhdGFsb2dTZXREZWJ1ZzwvYT4JCShpbnQgbGV2ZWwpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nUmVzb2x2ZSI+eG1sQ2F0YWxvZ1Jlc29sdmU8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c0lEKTsKK3ZvaWQJPGEgaHJlZj0iI3htbENhdGFsb2dTZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dBbGxvdyI+eG1sQ2F0YWxvZ0FsbG93PC9hPiBhbGxvdyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxDYXRhbG9nRHVtcCI+eG1sQ2F0YWxvZ0R1bXA8L2E+CQkJKEZJTEUgKiBvdXQpOwordm9pZAk8YSBocmVmPSIjeG1sQ2F0YWxvZ0NsZWFudXAiPnhtbENhdGFsb2dDbGVhbnVwPC9hPgkJKHZvaWQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nUmVzb2x2ZVVSSSI+eG1sQ2F0YWxvZ1Jlc29sdmVVUkk8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFIj5NYWNybyA8L2E+WE1MX0NBVEFMT0dTX05BTUVTUEFDRTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9DQVRBTE9HU19OQU1FU1BBQ0UiPlhNTF9DQVRBTE9HU19OQU1FU1BBQ0U8L2E+OworPC9wcmU+PHA+VGhlIG5hbWVzcGFjZSBmb3IgdGhlIFhNTCBDYXRhbG9ncyBlbGVtZW50cy48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX0NBVEFMT0dfUEkiPk1hY3JvIDwvYT5YTUxfQ0FUQUxPR19QSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9DQVRBTE9HX1BJIj5YTUxfQ0FUQUxPR19QSTwvYT47Cis8L3ByZT48cD5UaGUgc3BlY2lmaWMgWE1MIENhdGFsb2cgUHJvY2Vzc2luZyBJbnN0dWN0aW9uIG5hbWUuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2ciPlN0cnVjdHVyZSA8L2E+eG1sQ2F0YWxvZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sQ2F0YWxvZyB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sQ2F0YWxvZzsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nQWxsb3ciPkVudW0gPC9hPnhtbENhdGFsb2dBbGxvdzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbENhdGFsb2dBbGxvdyI+eG1sQ2F0YWxvZ0FsbG93PC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX0NBVEFfQUxMT1dfTk9ORSI+WE1MX0NBVEFfQUxMT1dfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX0NBVEFfQUxMT1dfR0xPQkFMIj5YTUxfQ0FUQV9BTExPV19HTE9CQUw8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9DQVRBX0FMTE9XX0RPQ1VNRU5UIj5YTUxfQ0FUQV9BTExPV19ET0NVTUVOVDwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX0NBVEFfQUxMT1dfQUxMIj5YTUxfQ0FUQV9BTExPV19BTEw8L2E+ID0gMworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nUHJlZmVyIj5FbnVtIDwvYT54bWxDYXRhbG9nUHJlZmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sQ2F0YWxvZ1ByZWZlciI+eG1sQ2F0YWxvZ1ByZWZlcjwvYT4geworICAgIDxhIG5hbWU9IlhNTF9DQVRBX1BSRUZFUl9OT05FIj5YTUxfQ0FUQV9QUkVGRVJfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX0NBVEFfUFJFRkVSX1BVQkxJQyI+WE1MX0NBVEFfUFJFRkVSX1BVQkxJQzwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0NBVEFfUFJFRkVSX1NZU1RFTSI+WE1MX0NBVEFfUFJFRkVSX1NZU1RFTTwvYT4gPSAyCit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dQdHIiPlR5cGVkZWYgPC9hPnhtbENhdGFsb2dQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nIj54bWxDYXRhbG9nPC9hPiAqIHhtbENhdGFsb2dQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQUNhdGFsb2dBZGQiLz54bWxBQ2F0YWxvZ0FkZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxBQ2F0YWxvZ0FkZAkJCSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdHlwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogb3JpZywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcmVwbGFjZSk8YnIvPgorPC9wcmU+PHA+QWRkIGFuIGVudHJ5IGluIHRoZSBjYXRhbG9nLCBpdCBtYXkgb3ZlcndyaXRlIGV4aXN0aW5nIGJ1dCBkaWZmZXJlbnQgZW50cmllcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNhdGFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIENhdGFsb2c8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0eXBlIG9mIHJlY29yZCB0byBhZGQgdG8gdGhlIGNhdGFsb2c8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9yaWc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0sIHB1YmxpYyBvciBwcmVmaXggdG8gbWF0Y2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlcGxhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIG1hdGNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEFDYXRhbG9nRHVtcCIvPnhtbEFDYXRhbG9nRHVtcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQUNhdGFsb2dEdW1wCQkJKDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIvPgkJCQkJIEZJTEUgKiBvdXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgdGhlIGdpdmVuIGNhdGFsb2cgdG8gdGhlIGdpdmVuIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEFDYXRhbG9nUmVtb3ZlIi8+eG1sQUNhdGFsb2dSZW1vdmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQUNhdGFsb2dSZW1vdmUJCSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPlJlbW92ZSBhbiBlbnRyeSBmcm9tIHRoZSBjYXRhbG9nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIHRvIHJlbW92ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBlbnRyaWVzIHJlbW92ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQUNhdGFsb2dSZXNvbHZlIi8+eG1sQUNhdGFsb2dSZXNvbHZlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEFDYXRhbG9nUmVzb2x2ZQkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8YnIvPgorPC9wcmU+PHA+RG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBFeHRlcm5hbCBJZGVudGlmaWVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBJRCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c0lEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiLz54bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljCSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklEKTxici8+Cis8L3ByZT48cD5UcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIGxvY2FsIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGFzc29jaWF0ZWQgdG8gYSBwdWJsaWMgSUQgaW4gdGhhdCBjYXRhbG9nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBJRCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCByZXNvdXJjZSBpZiBmb3VuZCBvciBOVUxMIG90aGVyd2lzZSwgdGhlIHZhbHVlIHJldHVybmVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iLz54bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtCSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c0lEKTxici8+Cis8L3ByZT48cD5UcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIHJlc291cmNlIGZvciBhIHN5c3RlbSBJRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2F0YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgQ2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzb3VyY2UgaWYgZm91bmQgb3IgTlVMTCBvdGhlcndpc2UsIHRoZSB2YWx1ZSByZXR1cm5lZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQUNhdGFsb2dSZXNvbHZlVVJJIi8+eG1sQUNhdGFsb2dSZXNvbHZlVVJJICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEFDYXRhbG9nUmVzb2x2ZVVSSQkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk8YnIvPgorPC9wcmU+PHA+RG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBVUkk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNhdGFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIENhdGFsb2c8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nQWRkIi8+eG1sQ2F0YWxvZ0FkZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDYXRhbG9nQWRkCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0eXBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvcmlnLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZXBsYWNlKTxici8+Cis8L3ByZT48cD5BZGQgYW4gZW50cnkgaW4gdGhlIGNhdGFsb2csIGl0IG1heSBvdmVyd3JpdGUgZXhpc3RpbmcgYnV0IGRpZmZlcmVudCBlbnRyaWVzLiBJZiBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBjYXRhbG9nIHJvdXRpbmUsIGFsbG93cyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzaGFyZWQgY2F0YWxvZyBwdXQgaW4gcGxhY2UgYnkgeG1sSW5pdGlhbGl6ZUNhdGFsb2coKTs8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0eXBlIG9mIHJlY29yZCB0byBhZGQgdG8gdGhlIGNhdGFsb2c8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9yaWc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0sIHB1YmxpYyBvciBwcmVmaXggdG8gbWF0Y2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlcGxhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIG1hdGNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dBZGRMb2NhbCIvPnhtbENhdGFsb2dBZGRMb2NhbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxDYXRhbG9nQWRkTG9jYWwJCSh2b2lkICogY2F0YWxvZ3MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSTCk8YnIvPgorPC9wcmU+PHA+QWRkIHRoZSBuZXcgZW50cnkgdG8gdGhlIGNhdGFsb2cgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2F0YWxvZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQncyBsaXN0IG9mIGNhdGFsb2dzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkwgdG8gYSBuZXcgbG9jYWwgY2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVwZGF0ZWQgbGlzdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dDbGVhbnVwIi8+eG1sQ2F0YWxvZ0NsZWFudXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENhdGFsb2dDbGVhbnVwCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+RnJlZSB1cCBhbGwgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggY2F0YWxvZ3M8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0NvbnZlcnQiLz54bWxDYXRhbG9nQ29udmVydCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDYXRhbG9nQ29udmVydAkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkNvbnZlcnQgYWxsIHRoZSBTR01MIGNhdGFsb2cgZW50cmllcyBhcyBYTUwgb25lczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBlbnRyaWVzIGNvbnZlcnRlZCBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nRHVtcCIvPnhtbENhdGFsb2dEdW1wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDYXRhbG9nRHVtcAkJCShGSUxFICogb3V0KTxici8+Cis8L3ByZT48cD5EdW1wIGFsbCB0aGUgZ2xvYmFsIGNhdGFsb2cgY29udGVudCB0byB0aGUgZ2l2ZW4gZmlsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0ZyZWVMb2NhbCIvPnhtbENhdGFsb2dGcmVlTG9jYWwgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENhdGFsb2dGcmVlTG9jYWwJCSh2b2lkICogY2F0YWxvZ3MpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdXAgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHRvIHRoZSBjYXRhbG9nIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNhdGFsb2dzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50J3MgbGlzdCBvZiBjYXRhbG9nczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dHZXREZWZhdWx0cyIvPnhtbENhdGFsb2dHZXREZWZhdWx0cyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dBbGxvdyI+eG1sQ2F0YWxvZ0FsbG93PC9hPgl4bWxDYXRhbG9nR2V0RGVmYXVsdHMJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPlVzZWQgdG8gZ2V0IHRoZSB1c2VyIHByZWZlcmVuY2Ugdy5yLnQuIHRvIHdoYXQgY2F0YWxvZ3Mgc2hvdWxkIGJlIGFjY2VwdGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCA8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWxsb3ciPnhtbENhdGFsb2dBbGxvdzwvYT4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nR2V0UHVibGljIi8+eG1sQ2F0YWxvZ0dldFB1YmxpYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDYXRhbG9nR2V0UHVibGljCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQpPGJyLz4KKzwvcHJlPjxwPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gYXNzb2NpYXRlZCB0byBhIHB1YmxpYyBJRCBERVBSRUNBVEVELCB1c2UgeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzb3VyY2UgaWYgZm91bmQgb3IgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0dldFN5c3RlbSIvPnhtbENhdGFsb2dHZXRTeXN0ZW0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2F0YWxvZ0dldFN5c3RlbQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c0lEKTxici8+Cis8L3ByZT48cD5UcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGFzc29jaWF0ZWQgdG8gYSBzeXN0ZW0gSUQgREVQUkVDQVRFRCwgdXNlIHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c0lEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dJc0VtcHR5Ii8+eG1sQ2F0YWxvZ0lzRW1wdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2F0YWxvZ0lzRW1wdHkJCSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgaXMgYSBjYXRhbG9nIGlzIGVtcHR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIHRoaXMgY3JlYXRlIGFuIFNHTUwgY2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgY2F0YWxvZyBpcyBlbXB0eSwgMCBpZiBub3QsIGFtZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dMb2NhbFJlc29sdmUiLz54bWxDYXRhbG9nTG9jYWxSZXNvbHZlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbENhdGFsb2dMb2NhbFJlc29sdmUJKHZvaWQgKiBjYXRhbG9ncywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c0lEKTxici8+Cis8L3ByZT48cD5EbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIEV4dGVybmFsIElkZW50aWZpZXIgdXNpbmcgYSBkb2N1bWVudCdzIHByaXZhdGUgY2F0YWxvZyBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbG9nczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCdzIGxpc3Qgb2YgY2F0YWxvZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHVibGljIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkkiLz54bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkkJKHZvaWQgKiBjYXRhbG9ncywgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk8YnIvPgorPC9wcmU+PHA+RG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBVUkkgdXNpbmcgYSBkb2N1bWVudCdzIHByaXZhdGUgY2F0YWxvZyBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbG9nczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCdzIGxpc3Qgb2YgY2F0YWxvZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nUmVtb3ZlIi8+eG1sQ2F0YWxvZ1JlbW92ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDYXRhbG9nUmVtb3ZlCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5SZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgY2F0YWxvZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byByZW1vdmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZW50cmllcyByZW1vdmVkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dSZXNvbHZlIi8+eG1sQ2F0YWxvZ1Jlc29sdmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2F0YWxvZ1Jlc29sdmUJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzSUQpPGJyLz4KKzwvcHJlPjxwPkRvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gRXh0ZXJuYWwgSWRlbnRpZmllcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBJRCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kLCBpdCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiLz54bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYwkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklEKTxici8+Cis8L3ByZT48cD5UcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGFzc29jaWF0ZWQgdG8gYSBwdWJsaWMgSUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHVibGljIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLCB0aGUgdmFsdWUgcmV0dXJuZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dSZXNvbHZlU3lzdGVtIi8+eG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8YnIvPgorPC9wcmU+PHA+VHJ5IHRvIGxvb2t1cCB0aGUgY2F0YWxvZyByZXNvdXJjZSBmb3IgYSBzeXN0ZW0gSUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c0lEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLCB0aGUgdmFsdWUgcmV0dXJuZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dSZXNvbHZlVVJJIi8+eG1sQ2F0YWxvZ1Jlc29sdmVVUkkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2F0YWxvZ1Jlc29sdmVVUkkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkkpPGJyLz4KKzwvcHJlPjxwPkRvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gVVJJPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kLCBpdCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ1NldERlYnVnIi8+eG1sQ2F0YWxvZ1NldERlYnVnICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENhdGFsb2dTZXREZWJ1ZwkJKGludCBsZXZlbCk8YnIvPgorPC9wcmU+PHA+VXNlZCB0byBzZXQgdGhlIGRlYnVnIGxldmVsIGZvciBjYXRhbG9nIG9wZXJhdGlvbiwgMCBkaXNhYmxlIGRlYnVnZ2luZywgMSBlbmFibGUgaXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxldmVsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVidWcgbGV2ZWwgb2YgY2F0YWxvZ3MgcmVxdWlyZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgY2F0YWxvZyBkZWJ1Z2dpbmcgbGV2ZWw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciIvPnhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1ByZWZlciI+eG1sQ2F0YWxvZ1ByZWZlcjwvYT4JeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIJKDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQcmVmZXIiPnhtbENhdGFsb2dQcmVmZXI8L2E+IHByZWZlcik8YnIvPgorPC9wcmU+PHA+QWxsb3dzIHRvIHNldCB0aGUgcHJlZmVyZW5jZSBiZXR3ZWVuIHB1YmxpYyBhbmQgc3lzdGVtIGZvciBkZWxldGlvbiBpbiBYTUwgQ2F0YWxvZyByZXNvbHV0aW9uLiBDLmYuIHNlY3Rpb24gNC4xLjEgb2YgdGhlIHNwZWMgVmFsdWVzIGFjY2VwdGVkIGFyZSA8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQV9QUkVGRVJfUFVCTElDIj5YTUxfQ0FUQV9QUkVGRVJfUFVCTElDPC9hPiBvciA8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQV9QUkVGRVJfU1lTVEVNIj5YTUxfQ0FUQV9QUkVGRVJfU1lTVEVNPC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVmYXVsdCBwcmVmZXJlbmNlIGZvciBkZWxlZ2F0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSBmb3IgZGVsZWdhdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dTZXREZWZhdWx0cyIvPnhtbENhdGFsb2dTZXREZWZhdWx0cyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2F0YWxvZ1NldERlZmF1bHRzCQkoPGEgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FsbG93Ij54bWxDYXRhbG9nQWxsb3c8L2E+IGFsbG93KTxici8+Cis8L3ByZT48cD5Vc2VkIHRvIHNldCB0aGUgdXNlciBwcmVmZXJlbmNlIHcuci50LiB0byB3aGF0IGNhdGFsb2dzIHNob3VsZCBiZSBhY2NlcHRlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YWxsb3c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndoYXQgY2F0YWxvZ3Mgc2hvdWxkIGJlIGFjY2VwdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29udmVydFNHTUxDYXRhbG9nIi8+eG1sQ29udmVydFNHTUxDYXRhbG9nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENvbnZlcnRTR01MQ2F0YWxvZwkJKDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsKTxici8+Cis8L3ByZT48cD5Db252ZXJ0IGFsbCB0aGUgU0dNTCBjYXRhbG9nIGVudHJpZXMgYXMgWE1MIG9uZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNhdGFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBlbnRyaWVzIGNvbnZlcnRlZCBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlQ2F0YWxvZyIvPnhtbEZyZWVDYXRhbG9nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlQ2F0YWxvZwkJCSg8YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCk8YnIvPgorPC9wcmU+PHA+RnJlZSB0aGUgbWVtb3J5IGFsbG9jYXRlZCB0byBhIENhdGFsb2c8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNhdGFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIENhdGFsb2c8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJbml0aWFsaXplQ2F0YWxvZyIvPnhtbEluaXRpYWxpemVDYXRhbG9nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxJbml0aWFsaXplQ2F0YWxvZwkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkRvIHRoZSBjYXRhbG9nIGluaXRpYWxpemF0aW9uLiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgY2F0YWxvZyBpbml0aWFsaXphdGlvbiBzaG91bGQgcHJlZmVyYWJseSBiZSBkb25lIG9uY2UgYXQgc3RhcnR1cDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMb2FkQUNhdGFsb2ciLz54bWxMb2FkQUNhdGFsb2cgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgl4bWxMb2FkQUNhdGFsb2cJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPkxvYWQgdGhlIGNhdGFsb2cgYW5kIGJ1aWxkIHRoZSBhc3NvY2lhdGVkIGRhdGEgc3RydWN0dXJlcy4gVGhpcyBjYW4gYmUgZWl0aGVyIGFuIFhNTCBDYXRhbG9nIG9yIGFuIFNHTUwgQ2F0YWxvZyBJdCB3aWxsIHJlY3Vyc2UgaW4gU0dNTCBDQVRBTE9HIGVudHJpZXMuIE9uIHRoZSBvdGhlciBoYW5kIFhNTCBDYXRhbG9ncyBhcmUgbm90IGhhbmRsZWQgcmVjdXJzaXZlbHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaWxlIHBhdGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjYXRhbG9nIHBhcnNlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMb2FkQ2F0YWxvZyIvPnhtbExvYWRDYXRhbG9nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExvYWRDYXRhbG9nCQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+TG9hZCB0aGUgY2F0YWxvZyBhbmQgbWFrZXMgaXRzIGRlZmluaXRpb25zIGVmZmVjdGl2ZSBmb3IgdGhlIGRlZmF1bHQgZXh0ZXJuYWwgZW50aXR5IGxvYWRlci4gSXQgd2lsbCByZWN1cnNlIGluIFNHTUwgQ0FUQUxPRyBlbnRyaWVzLiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgY2F0YWxvZyBpbml0aWFsaXphdGlvbiBzaG91bGQgcHJlZmVyYWJseSBiZSBkb25lIG9uY2UgYXQgc3RhcnR1cDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBwYXRoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTG9hZENhdGFsb2dzIi8+eG1sTG9hZENhdGFsb2dzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMb2FkQ2F0YWxvZ3MJCQkoY29uc3QgY2hhciAqIHBhdGhzcyk8YnIvPgorPC9wcmU+PHA+TG9hZCB0aGUgY2F0YWxvZ3MgYW5kIG1ha2VzIHRoZWlyIGRlZmluaXRpb25zIGVmZmVjdGl2ZSBmb3IgdGhlIGRlZmF1bHQgZXh0ZXJuYWwgZW50aXR5IGxvYWRlci4gdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUsIGNhdGFsb2cgaW5pdGlhbGl6YXRpb24gc2hvdWxkIHByZWZlcmFibHkgYmUgZG9uZSBvbmNlIGF0IHN0YXJ0dXA8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhdGhzczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0IG9mIGRpcmVjdG9yaWVzIHNlcGFyYXRlZCBieSBhIGNvbG9uIG9yIGEgc3BhY2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciLz54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+CXhtbExvYWRTR01MU3VwZXJDYXRhbG9nCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPkxvYWQgYW4gU0dNTCBzdXBlciBjYXRhbG9nLiBJdCB3b24ndCBleHBhbmQgQ0FUQUxPRyBvciBERUxFR0FURSByZWZlcmVuY2VzLiBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciBtYW5pcHVsYXRpbmcgU0dNTCBTdXBlciBDYXRhbG9ncyBsaWtlIGFkZGluZyBhbmQgcmVtb3ZpbmcgQ0FUQUxPRyBvciBERUxFR0FURSBlbnRyaWVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBwYXRoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2F0YWxvZyBwYXJzZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3Q2F0YWxvZyIvPnhtbE5ld0NhdGFsb2cgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgl4bWxOZXdDYXRhbG9nCQkoaW50IHNnbWwpPGJyLz4KKzwvcHJlPjxwPmNyZWF0ZSBhIG5ldyBDYXRhbG9nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2dtbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIHRoaXMgY3JlYXRlIGFuIFNHTUwgY2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlQ2F0YWxvZ0ZpbGUiLz54bWxQYXJzZUNhdGFsb2dGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFBhcnNlQ2F0YWxvZ0ZpbGUJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gSXQncyBsaWtlIHhtbFBhcnNlRmlsZSgpIGV4Y2VwdCBpdCBieXBhc3MgYWxsIGNhdGFsb2cgbG9va3Vwcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1jaHZhbGlkLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItY2h2YWxpZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNzcxNTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItY2h2YWxpZC5odG1sCkBAIC0wLDAgKzEsMjQxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPmNodmFsaWQ6IFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1jYXRhbG9nLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5jaHZhbGlkPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+Y2h2YWxpZCAtIFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC9wPgorICAgIDxwPnRoaXMgbW9kdWxlIGV4cG9ydHMgaW50ZXJmYWNlcyBmb3IgdGhlIGNoYXJhY3RlciByYW5nZSB2YWxpZGF0aW9uIEFQSXMgIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBjdnMgc291cmNlIGRlZmluaXRpb24gZmlsZXMgdXNpbmcgdGhlIGdlbkNoUmFuZ2VzLnB5IFB5dGhvbiBzY3JpcHQgPC9wPgorICAgIDxwPkF1dGhvcihzKTogV2lsbGlhbSBCcmFjayAmbHQ7d2JyYWNrQG1tbS5jb20uaGsmZ3Q7IDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzRXh0ZW5kZXJfY2giPnhtbElzRXh0ZW5kZXJfY2g8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sSXNQdWJpZENoYXJRIj54bWxJc1B1YmlkQ2hhclE8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sSXNQdWJpZENoYXJfY2giPnhtbElzUHViaWRDaGFyX2NoPC9hPihjKTsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbElzSWRlb2dyYXBoaWNRIj54bWxJc0lkZW9ncmFwaGljUTwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0V4dGVuZGVyUSI+eG1sSXNFeHRlbmRlclE8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sSXNDaGFyX2NoIj54bWxJc0NoYXJfY2g8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sSXNEaWdpdFEiPnhtbElzRGlnaXRRPC9hPihjKTsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbElzRGlnaXRfY2giPnhtbElzRGlnaXRfY2g8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sSXNCYXNlQ2hhcl9jaCI+eG1sSXNCYXNlQ2hhcl9jaDwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0NvbWJpbmluZ1EiPnhtbElzQ29tYmluaW5nUTwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0JsYW5rUSI+eG1sSXNCbGFua1E8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sSXNDaGFyUSI+eG1sSXNDaGFyUTwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0Jhc2VDaGFyUSI+eG1sSXNCYXNlQ2hhclE8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sSXNCbGFua19jaCI+eG1sSXNCbGFua19jaDwvYT4oYyk7Cit0eXBlZGVmIHN0cnVjdCBfeG1sQ2hMUmFuZ2UgPGEgaHJlZj0iI3htbENoTFJhbmdlIj54bWxDaExSYW5nZTwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoU1JhbmdlIj54bWxDaFNSYW5nZTwvYT4gKiA8YSBocmVmPSIjeG1sQ2hTUmFuZ2VQdHIiPnhtbENoU1JhbmdlUHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sQ2hMUmFuZ2UiPnhtbENoTFJhbmdlPC9hPiAqIDxhIGhyZWY9IiN4bWxDaExSYW5nZVB0ciI+eG1sQ2hMUmFuZ2VQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxDaFJhbmdlR3JvdXAiPnhtbENoUmFuZ2VHcm91cDwvYT4gKiA8YSBocmVmPSIjeG1sQ2hSYW5nZUdyb3VwUHRyIj54bWxDaFJhbmdlR3JvdXBQdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbENoU1JhbmdlIDxhIGhyZWY9IiN4bWxDaFNSYW5nZSI+eG1sQ2hTUmFuZ2U8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbENoUmFuZ2VHcm91cCA8YSBocmVmPSIjeG1sQ2hSYW5nZUdyb3VwIj54bWxDaFJhbmdlR3JvdXA8L2E+OworaW50CTxhIGhyZWY9IiN4bWxJc0NoYXIiPnhtbElzQ2hhcjwvYT4JCQkodW5zaWduZWQgaW50IGNoKTsKK2ludAk8YSBocmVmPSIjeG1sSXNEaWdpdCI+eG1sSXNEaWdpdDwvYT4JCQkodW5zaWduZWQgaW50IGNoKTsKK2ludAk8YSBocmVmPSIjeG1sSXNCbGFuayI+eG1sSXNCbGFuazwvYT4JCQkodW5zaWduZWQgaW50IGNoKTsKK2ludAk8YSBocmVmPSIjeG1sSXNJZGVvZ3JhcGhpYyI+eG1sSXNJZGVvZ3JhcGhpYzwvYT4JCSh1bnNpZ25lZCBpbnQgY2gpOworaW50CTxhIGhyZWY9IiN4bWxDaGFySW5SYW5nZSI+eG1sQ2hhckluUmFuZ2U8L2E+CQkJKHVuc2lnbmVkIGludCB2YWwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sQ2hSYW5nZUdyb3VwIj54bWxDaFJhbmdlR3JvdXA8L2E+ICogcnB0cik7CitpbnQJPGEgaHJlZj0iI3htbElzUHViaWRDaGFyIj54bWxJc1B1YmlkQ2hhcjwvYT4JCQkodW5zaWduZWQgaW50IGNoKTsKK2ludAk8YSBocmVmPSIjeG1sSXNDb21iaW5pbmciPnhtbElzQ29tYmluaW5nPC9hPgkJCSh1bnNpZ25lZCBpbnQgY2gpOworaW50CTxhIGhyZWY9IiN4bWxJc0Jhc2VDaGFyIj54bWxJc0Jhc2VDaGFyPC9hPgkJCSh1bnNpZ25lZCBpbnQgY2gpOworaW50CTxhIGhyZWY9IiN4bWxJc0V4dGVuZGVyIj54bWxJc0V4dGVuZGVyPC9hPgkJCSh1bnNpZ25lZCBpbnQgY2gpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzQmFzZUNoYXJRIj5NYWNybyA8L2E+eG1sSXNCYXNlQ2hhclE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0Jhc2VDaGFyUSI+eG1sSXNCYXNlQ2hhclE8L2E+KGMpOworPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0Jhc2VDaGFyX2NoIj5NYWNybyA8L2E+eG1sSXNCYXNlQ2hhcl9jaDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzQmFzZUNoYXJfY2giPnhtbElzQmFzZUNoYXJfY2g8L2E+KGMpOworPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0JsYW5rUSI+TWFjcm8gPC9hPnhtbElzQmxhbmtRPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sSXNCbGFua1EiPnhtbElzQmxhbmtRPC9hPihjKTsKKzwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNCbGFua19jaCI+TWFjcm8gPC9hPnhtbElzQmxhbmtfY2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0JsYW5rX2NoIj54bWxJc0JsYW5rX2NoPC9hPihjKTsKKzwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNDaGFyUSI+TWFjcm8gPC9hPnhtbElzQ2hhclE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0NoYXJRIj54bWxJc0NoYXJRPC9hPihjKTsKKzwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNDaGFyX2NoIj5NYWNybyA8L2E+eG1sSXNDaGFyX2NoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sSXNDaGFyX2NoIj54bWxJc0NoYXJfY2g8L2E+KGMpOworPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0NvbWJpbmluZ1EiPk1hY3JvIDwvYT54bWxJc0NvbWJpbmluZ1E8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0NvbWJpbmluZ1EiPnhtbElzQ29tYmluaW5nUTwvYT4oYyk7Cis8L3ByZT48cD5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzRGlnaXRRIj5NYWNybyA8L2E+eG1sSXNEaWdpdFE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0RpZ2l0USI+eG1sSXNEaWdpdFE8L2E+KGMpOworPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0RpZ2l0X2NoIj5NYWNybyA8L2E+eG1sSXNEaWdpdF9jaDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzRGlnaXRfY2giPnhtbElzRGlnaXRfY2g8L2E+KGMpOworPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0V4dGVuZGVyUSI+TWFjcm8gPC9hPnhtbElzRXh0ZW5kZXJRPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sSXNFeHRlbmRlclEiPnhtbElzRXh0ZW5kZXJRPC9hPihjKTsKKzwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNFeHRlbmRlcl9jaCI+TWFjcm8gPC9hPnhtbElzRXh0ZW5kZXJfY2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0V4dGVuZGVyX2NoIj54bWxJc0V4dGVuZGVyX2NoPC9hPihjKTsKKzwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNJZGVvZ3JhcGhpY1EiPk1hY3JvIDwvYT54bWxJc0lkZW9ncmFwaGljUTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzSWRlb2dyYXBoaWNRIj54bWxJc0lkZW9ncmFwaGljUTwvYT4oYyk7Cis8L3ByZT48cD5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzUHViaWRDaGFyUSI+TWFjcm8gPC9hPnhtbElzUHViaWRDaGFyUTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzUHViaWRDaGFyUSI+eG1sSXNQdWJpZENoYXJRPC9hPihjKTsKKzwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNQdWJpZENoYXJfY2giPk1hY3JvIDwvYT54bWxJc1B1YmlkQ2hhcl9jaDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzUHViaWRDaGFyX2NoIj54bWxJc1B1YmlkQ2hhcl9jaDwvYT4oYyk7Cis8L3ByZT48cD5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoTFJhbmdlIj5TdHJ1Y3R1cmUgPC9hPnhtbENoTFJhbmdlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxDaExSYW5nZSB7CisgICAgdW5zaWduZWQgaW50CWxvdworICAgIHVuc2lnbmVkIGludAloaWdoCit9IHhtbENoTFJhbmdlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoTFJhbmdlUHRyIj5UeXBlZGVmIDwvYT54bWxDaExSYW5nZVB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoTFJhbmdlIj54bWxDaExSYW5nZTwvYT4gKiB4bWxDaExSYW5nZVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaFJhbmdlR3JvdXAiPlN0cnVjdHVyZSA8L2E+eG1sQ2hSYW5nZUdyb3VwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxDaFJhbmdlR3JvdXAgeworICAgIGludAluYlNob3J0UmFuZ2UKKyAgICBpbnQJbmJMb25nUmFuZ2UKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxDaFNSYW5nZSI+eG1sQ2hTUmFuZ2U8L2E+ICoJc2hvcnRSYW5nZQk6IHBvaW50cyB0byBhbiBhcnJheSBvZiByYW5nZXMKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxDaExSYW5nZSI+eG1sQ2hMUmFuZ2U8L2E+ICoJbG9uZ1JhbmdlCit9IHhtbENoUmFuZ2VHcm91cDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaFJhbmdlR3JvdXBQdHIiPlR5cGVkZWYgPC9hPnhtbENoUmFuZ2VHcm91cFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cCI+eG1sQ2hSYW5nZUdyb3VwPC9hPiAqIHhtbENoUmFuZ2VHcm91cFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaFNSYW5nZSI+U3RydWN0dXJlIDwvYT54bWxDaFNSYW5nZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sQ2hTUmFuZ2UgeworICAgIHVuc2lnbmVkIHNob3J0CWxvdworICAgIHVuc2lnbmVkIHNob3J0CWhpZ2gKK30geG1sQ2hTUmFuZ2U7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2hTUmFuZ2VQdHIiPlR5cGVkZWYgPC9hPnhtbENoU1JhbmdlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sQ2hTUmFuZ2UiPnhtbENoU1JhbmdlPC9hPiAqIHhtbENoU1JhbmdlUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzQmFzZUNoYXJHcm91cCI+VmFyaWFibGUgPC9hPnhtbElzQmFzZUNoYXJHcm91cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cCI+eG1sQ2hSYW5nZUdyb3VwPC9hPiB4bWxJc0Jhc2VDaGFyR3JvdXA7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNDaGFyR3JvdXAiPlZhcmlhYmxlIDwvYT54bWxJc0NoYXJHcm91cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cCI+eG1sQ2hSYW5nZUdyb3VwPC9hPiB4bWxJc0NoYXJHcm91cDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0NvbWJpbmluZ0dyb3VwIj5WYXJpYWJsZSA8L2E+eG1sSXNDb21iaW5pbmdHcm91cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cCI+eG1sQ2hSYW5nZUdyb3VwPC9hPiB4bWxJc0NvbWJpbmluZ0dyb3VwOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzRGlnaXRHcm91cCI+VmFyaWFibGUgPC9hPnhtbElzRGlnaXRHcm91cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cCI+eG1sQ2hSYW5nZUdyb3VwPC9hPiB4bWxJc0RpZ2l0R3JvdXA7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNFeHRlbmRlckdyb3VwIj5WYXJpYWJsZSA8L2E+eG1sSXNFeHRlbmRlckdyb3VwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sQ2hSYW5nZUdyb3VwIj54bWxDaFJhbmdlR3JvdXA8L2E+IHhtbElzRXh0ZW5kZXJHcm91cDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0lkZW9ncmFwaGljR3JvdXAiPlZhcmlhYmxlIDwvYT54bWxJc0lkZW9ncmFwaGljR3JvdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxDaFJhbmdlR3JvdXAiPnhtbENoUmFuZ2VHcm91cDwvYT4geG1sSXNJZGVvZ3JhcGhpY0dyb3VwOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzUHViaWRDaGFyX3RhYiI+VmFyaWFibGUgPC9hPnhtbElzUHViaWRDaGFyX3RhYjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IHVuc2lnbmVkIGNoYXJ4bWxJc1B1YmlkQ2hhcl90YWJbMjU2XSB4bWxJc1B1YmlkQ2hhcl90YWI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2hhckluUmFuZ2UiLz54bWxDaGFySW5SYW5nZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDaGFySW5SYW5nZQkJCSh1bnNpZ25lZCBpbnQgdmFsLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cCI+eG1sQ2hSYW5nZUdyb3VwPC9hPiAqIHJwdHIpPGJyLz4KKzwvcHJlPjxwPkRvZXMgYSBiaW5hcnkgc2VhcmNoIG9mIHRoZSByYW5nZSB0YWJsZSB0byBkZXRlcm1pbmUgaWYgY2hhciBpcyB2YWxpZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyYWN0ZXIgdG8gYmUgdmFsaWRhdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ycHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHJhbmdlIHRvIGJlIHVzZWQgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRydWUgaWYgY2hhcmFjdGVyIHZhbGlkLCBmYWxzZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0Jhc2VDaGFyIi8+eG1sSXNCYXNlQ2hhciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc0Jhc2VDaGFyCQkJKHVuc2lnbmVkIGludCBjaCk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhcl9jaCI+eG1sSXNCYXNlQ2hhcl9jaDwvYT4gb3IgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhclEiPnhtbElzQmFzZUNoYXJRPC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhcmFjdGVyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0JsYW5rIi8+eG1sSXNCbGFuayAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc0JsYW5rCQkJKHVuc2lnbmVkIGludCBjaCk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNCbGFua19jaCI+eG1sSXNCbGFua19jaDwvYT4gb3IgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNCbGFua1EiPnhtbElzQmxhbmtRPC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhcmFjdGVyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0NoYXIiLz54bWxJc0NoYXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNDaGFyCQkJKHVuc2lnbmVkIGludCBjaCk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyX2NoIj54bWxJc0NoYXJfY2g8L2E+IG9yIDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzQ2hhclEiPnhtbElzQ2hhclE8L2E+IGluc3RlYWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyYWN0ZXIgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRydWUgaWYgYXJndW1lbnQgdmFsaWQsIGZhbHNlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzQ29tYmluaW5nIi8+eG1sSXNDb21iaW5pbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNDb21iaW5pbmcJCQkodW5zaWduZWQgaW50IGNoKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuIFVzZSA8YSBocmVmPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZ1EiPnhtbElzQ29tYmluaW5nUTwvYT4gaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNEaWdpdCIvPnhtbElzRGlnaXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNEaWdpdAkJCSh1bnNpZ25lZCBpbnQgY2gpPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRGlnaXRfY2giPnhtbElzRGlnaXRfY2g8L2E+IG9yIDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRGlnaXRRIj54bWxJc0RpZ2l0UTwvYT4gaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNFeHRlbmRlciIvPnhtbElzRXh0ZW5kZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNFeHRlbmRlcgkJCSh1bnNpZ25lZCBpbnQgY2gpPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJfY2giPnhtbElzRXh0ZW5kZXJfY2g8L2E+IG9yIDxhIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJRIj54bWxJc0V4dGVuZGVyUTwvYT4gaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNJZGVvZ3JhcGhpYyIvPnhtbElzSWRlb2dyYXBoaWMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNJZGVvZ3JhcGhpYwkJKHVuc2lnbmVkIGludCBjaCk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpY1EiPnhtbElzSWRlb2dyYXBoaWNRPC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhcmFjdGVyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc1B1YmlkQ2hhciIvPnhtbElzUHViaWRDaGFyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzUHViaWRDaGFyCQkJKHVuc2lnbmVkIGludCBjaCk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXJfY2giPnhtbElzUHViaWRDaGFyX2NoPC9hPiBvciA8YSBocmVmPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhclEiPnhtbElzUHViaWRDaGFyUTwvYT4gaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItZGVidWdYTUwuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1kZWJ1Z1hNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwNTQxY2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItZGVidWdYTUwuaHRtbApAQCAtMCwwICsxLDIyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5kZWJ1Z1hNTDogVHJlZSBkZWJ1Z2dpbmcgQVBJczwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDItY2h2YWxpZC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5kZWJ1Z1hNTDwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPmRlYnVnWE1MIC0gVHJlZSBkZWJ1Z2dpbmcgQVBJczwvcD4KKyAgICA8cD5JbnRlcmZhY2VzIHRvIGEgc2V0IG9mIHJvdXRpbmVzIHVzZWQgZm9yIGRlYnVnZ2luZyB0aGUgdHJlZSBwcm9kdWNlZCBieSB0aGUgWE1MIHBhcnNlci4gPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgc3RydWN0IF94bWxTaGVsbEN0eHQgPGEgaHJlZj0iI3htbFNoZWxsQ3R4dCI+eG1sU2hlbGxDdHh0PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dCI+eG1sU2hlbGxDdHh0PC9hPiAqIDxhIGhyZWY9IiN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT47Cit2b2lkCTxhIGhyZWY9IiN4bWxEZWJ1Z0R1bXBBdHRyTGlzdCI+eG1sRGVidWdEdW1wQXR0ckxpc3Q8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIvPgkJCQkJIGludCBkZXB0aCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxMc09uZU5vZGUiPnhtbExzT25lTm9kZTwvYT4JCQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK3R5cGVkZWYgY2hhciAqIDxhIGhyZWY9IiN4bWxTaGVsbFJlYWRsaW5lRnVuYyI+eG1sU2hlbGxSZWFkbGluZUZ1bmM8L2E+CQkoY2hhciAqIHByb21wdCk7CitpbnQJPGEgaHJlZj0iI3htbFNoZWxsU2F2ZSI+eG1sU2hlbGxTYXZlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpOworY29uc3QgY2hhciAqCTxhIGhyZWY9IiN4bWxCb29sVG9UZXh0Ij54bWxCb29sVG9UZXh0PC9hPgkJKGludCBib29sdmFsKTsKK2ludAk8YSBocmVmPSIjeG1sU2hlbGxXcml0ZSI+eG1sU2hlbGxXcml0ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTsKK2ludAk8YSBocmVmPSIjeG1sU2hlbGxEdSI+eG1sU2hlbGxEdTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBhcmcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdHJlZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik7CitpbnQJPGEgaHJlZj0iI3htbFNoZWxsVmFsaWRhdGUiPnhtbFNoZWxsVmFsaWRhdGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBkdGQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik7CitpbnQJPGEgaHJlZj0iI3htbERlYnVnQ2hlY2tEb2N1bWVudCI+eG1sRGVidWdDaGVja0RvY3VtZW50PC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQiPnhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGxpc3QpOwordHlwZWRlZiBpbnQgPGEgaHJlZj0iI3htbFNoZWxsQ21kIj54bWxTaGVsbENtZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBhcmcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik7CitpbnQJPGEgaHJlZj0iI3htbFNoZWxsTG9hZCI+eG1sU2hlbGxMb2FkPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpOwordm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wU3RyaW5nIj54bWxEZWJ1Z0R1bXBTdHJpbmc8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTsKK2ludAk8YSBocmVmPSIjeG1sU2hlbGxCYXNlIj54bWxTaGVsbEJhc2U8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjaGFyICogYXJnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpOworaW50CTxhIGhyZWY9IiN4bWxTaGVsbENhdCI+eG1sU2hlbGxDYXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjaGFyICogYXJnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpOwordm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wRFREIj54bWxEZWJ1Z0R1bXBEVEQ8L2E+CQkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxEZWJ1Z0R1bXBOb2RlIj54bWxEZWJ1Z0R1bXBOb2RlPC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBpbnQgZGVwdGgpOwordm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wRW50aXRpZXMiPnhtbERlYnVnRHVtcEVudGl0aWVzPC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTaGVsbFByaW50Tm9kZSI+eG1sU2hlbGxQcmludE5vZGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7CitpbnQJPGEgaHJlZj0iI3htbFNoZWxsUHdkIj54bWxTaGVsbFB3ZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik7Cit2b2lkCTxhIGhyZWY9IiN4bWxEZWJ1Z0R1bXBOb2RlTGlzdCI+eG1sRGVidWdEdW1wTm9kZUxpc3Q8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGludCBkZXB0aCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxEZWJ1Z0R1bXBBdHRyIj54bWxEZWJ1Z0R1bXBBdHRyPC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0ciwgPGJyLz4JCQkJCSBpbnQgZGVwdGgpOwordm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wRG9jdW1lbnQiPnhtbERlYnVnRHVtcERvY3VtZW50PC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7CitpbnQJPGEgaHJlZj0iI3htbExzQ291bnROb2RlIj54bWxMc0NvdW50Tm9kZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTaGVsbFByaW50WFBhdGhFcnJvciI+eG1sU2hlbGxQcmludFhQYXRoRXJyb3I8L2E+CQkoaW50IGVycm9yVHlwZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYXJnKTsKK2ludAk8YSBocmVmPSIjeG1sU2hlbGxEaXIiPnhtbFNoZWxsRGlyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY2hhciAqIGFyZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbERlYnVnRHVtcE9uZU5vZGUiPnhtbERlYnVnRHVtcE9uZU5vZGU8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGludCBkZXB0aCk7CitpbnQJPGEgaHJlZj0iI3htbFNoZWxsTGlzdCI+eG1sU2hlbGxMaXN0PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY2hhciAqIGFyZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbERlYnVnRHVtcERvY3VtZW50SGVhZCI+eG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkPC9hPgkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNoZWxsIj54bWxTaGVsbDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUmVhZGxpbmVGdW5jIj54bWxTaGVsbFJlYWRsaW5lRnVuYzwvYT4gaW5wdXQsIDxici8+CQkJCQkgRklMRSAqIG91dHB1dCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxDdHh0Ij5TdHJ1Y3R1cmUgPC9hPnhtbFNoZWxsQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2hlbGxDdHh0IHsKKyAgICBjaGFyICoJZmlsZW5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JZG9jCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQorICAgIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4JcGN0eHQKKyAgICBpbnQJbG9hZGVkCisgICAgRklMRSAqCW91dHB1dAorICAgIDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbFJlYWRsaW5lRnVuYyI+eG1sU2hlbGxSZWFkbGluZUZ1bmM8L2E+CWlucHV0Cit9IHhtbFNoZWxsQ3R4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTaGVsbEN0eHRQdHIiPlR5cGVkZWYgPC9hPnhtbFNoZWxsQ3R4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHQiPnhtbFNoZWxsQ3R4dDwvYT4gKiB4bWxTaGVsbEN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxDbWQiLz5GdW5jdGlvbiB0eXBlIHhtbFNoZWxsQ21kPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNoZWxsQ21kCQkJKDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjaGFyICogYXJnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPGJyLz4KKzwvcHJlPjxwPlRoaXMgaXMgYSBnZW5lcmljIHNpZ25hdHVyZSBmb3IgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNoZWxsIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgYXJndW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlyc3Qgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludCwgbmVnYXRpdmUgcmV0dXJucyBpbmRpY2F0aW5nIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTaGVsbFJlYWRsaW5lRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sU2hlbGxSZWFkbGluZUZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jaGFyICoJeG1sU2hlbGxSZWFkbGluZUZ1bmMJCShjaGFyICogcHJvbXB0KTxici8+Cis8L3ByZT48cD5UaGlzIGlzIGEgZ2VuZXJpYyBzaWduYXR1cmUgZm9yIHRoZSBYTUwgc2hlbGwgaW5wdXQgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcm9tcHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3RyaW5nIHByb21wdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgd2hpY2ggd2lsbCBiZSBmcmVlZCBieSB0aGUgU2hlbGwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQm9vbFRvVGV4dCIvPnhtbEJvb2xUb1RleHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCBjaGFyICoJeG1sQm9vbFRvVGV4dAkJKGludCBib29sdmFsKTxici8+Cis8L3ByZT48cD5Db252ZW5pZW50IHdheSB0byB0dXJuIGJvb2wgaW50byB0ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ib29sdmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJvb2wgdG8gdHVybiBpbnRvIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBlaXRoZXIgIlRydWUiIG9yICJGYWxzZSI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQiLz54bWxEZWJ1Z0NoZWNrRG9jdW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRGVidWdDaGVja0RvY3VtZW50CQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5DaGVjayB0aGUgZG9jdW1lbnQgZm9yIHBvdGVudGlhbCBjb250ZW50IHByb2JsZW1zLCBhbmQgb3V0cHV0IHRoZSBlcnJvcnMgdG8gQG91dHB1dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBlcnJvcnMgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0R1bXBBdHRyIi8+eG1sRGVidWdEdW1wQXR0ciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGVidWdEdW1wQXR0cgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0ciwgPGJyLz4JCQkJCSBpbnQgZGVwdGgpPGJyLz4KKzwvcHJlPjxwPkR1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGVudGF0aW9uIGxldmVsLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcEF0dHJMaXN0Ii8+eG1sRGVidWdEdW1wQXR0ckxpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcEF0dHJMaXN0CQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIvPgkJCQkJIGludCBkZXB0aCk8YnIvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGVudGF0aW9uIGxldmVsLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcERURCIvPnhtbERlYnVnRHVtcERURCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGVidWdEdW1wRFRECQkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCk8YnIvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBEVEQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRFREPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVidWdEdW1wRG9jdW1lbnQiLz54bWxEZWJ1Z0R1bXBEb2N1bWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGVidWdEdW1wRG9jdW1lbnQJCShGSUxFICogb3V0cHV0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPkR1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgZG9jdW1lbnQsIGl0J3MgcmVjdXJzaXZlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkIi8+eG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gY25jZXJuaW5nIHRoZSBkb2N1bWVudCwgbm90IHJlY3Vyc2l2ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcEVudGl0aWVzIi8+eG1sRGVidWdEdW1wRW50aXRpZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcEVudGl0aWVzCQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgYWxsIHRoZSBlbnRpdGllcyBpbiB1c2UgYnkgdGhlIGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVidWdEdW1wTm9kZSIvPnhtbERlYnVnRHVtcE5vZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcE5vZGUJCShGSUxFICogb3V0cHV0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgaW50IGRlcHRoKTxici8+Cis8L3ByZT48cD5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGVsZW1lbnQgbm9kZSwgaXQgaXMgcmVjdXJzaXZlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGVudGF0aW9uIGxldmVsLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcE5vZGVMaXN0Ii8+eG1sRGVidWdEdW1wTm9kZUxpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcE5vZGVMaXN0CQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGludCBkZXB0aCk8YnIvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBsaXN0IG9mIGVsZW1lbnQgbm9kZSwgaXQgaXMgcmVjdXJzaXZlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlcHRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5kZW50YXRpb24gbGV2ZWwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVidWdEdW1wT25lTm9kZSIvPnhtbERlYnVnRHVtcE9uZU5vZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcE9uZU5vZGUJCShGSUxFICogb3V0cHV0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgaW50IGRlcHRoKTxici8+Cis8L3ByZT48cD5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGVsZW1lbnQgbm9kZSwgaXQgaXMgbm90IHJlY3Vyc2l2ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmRlbnRhdGlvbiBsZXZlbC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0R1bXBTdHJpbmciLz54bWxEZWJ1Z0R1bXBTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcFN0cmluZwkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik8YnIvPgorPC9wcmU+PHA+RHVtcHMgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBzdHJpbmcsIHNob3J0ZW4gaXQgaWYgbmVjZXNzYXJ5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExzQ291bnROb2RlIi8+eG1sTHNDb3VudE5vZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTHNDb3VudE5vZGUJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIvPgorPC9wcmU+PHA+Q291bnQgdGhlIGNoaWxkcmVuIG9mIEBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgdG8gY291bnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hpbGRyZW4gb2YgQG5vZGUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTHNPbmVOb2RlIi8+eG1sTHNPbmVOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMc09uZU5vZGUJCQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5EdW1wIHRvIEBvdXRwdXQgdGhlIHR5cGUgYW5kIG5hbWUgb2YgQG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRvIGR1bXA8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTaGVsbCIvPnhtbFNoZWxsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTaGVsbAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxSZWFkbGluZUZ1bmMiPnhtbFNoZWxsUmVhZGxpbmVGdW5jPC9hPiBpbnB1dCwgPGJyLz4JCQkJCSBGSUxFICogb3V0cHV0KTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgVGhpcyBhbGxvdyB0byBsb2FkLCB2YWxpZGF0ZSwgdmlldywgbW9kaWZ5IGFuZCBzYXZlIGEgZG9jdW1lbnQgdXNpbmcgYSBlbnZpcm9ubWVudCBzaW1pbGFyIHRvIGEgVU5JWCBjb21tYW5kbGluZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluaXRpYWwgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3V0cHV0IGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5lIHJlYWRpbmcgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG91dHB1dCBGSUxFKiwgZGVmYXVsdHMgdG8gc3Rkb3V0IGlmIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTaGVsbEJhc2UiLz54bWxTaGVsbEJhc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxCYXNlCQkJKDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjaGFyICogYXJnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAiYmFzZSIgZHVtcHMgdGhlIGN1cnJlbnQgWE1MIGJhc2Ugb2YgdGhlIG5vZGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaGVsbCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxDYXQiLz54bWxTaGVsbENhdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTaGVsbENhdAkJCSg8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY2hhciAqIGFyZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gImNhdCIgZHVtcHMgdGhlIHNlcmlhbGl6YXRpb24gbm9kZSBjb250ZW50IChYTUwgb3IgSFRNTCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNoZWxsRGlyIi8+eG1sU2hlbGxEaXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxEaXIJCQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBhcmcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJkaXIiIGR1bXBzIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgbm9kZSAobmFtZXNwYWNlLCBhdHRyaWJ1dGVzLCBjb250ZW50KS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaGVsbCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxEdSIvPnhtbFNoZWxsRHUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxEdQkJCSg8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY2hhciAqIGFyZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gImR1IiBzaG93IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHN1YnRyZWUgdW5kZXIgbm9kZSBAdHJlZSBJZiBAdHJlZSBpcyBudWxsLCB0aGUgY29tbWFuZCB3b3JrcyBvbiB0aGUgY3VycmVudCBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNoZWxsIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgZGVmaW5pbmcgYSBzdWJ0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTaGVsbExpc3QiLz54bWxTaGVsbExpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxMaXN0CQkJKDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjaGFyICogYXJnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAibHMiIERvZXMgYW4gVW5peCBsaWtlIGxpc3Rpbmcgb2YgdGhlIGdpdmVuIG5vZGUgKGxpa2UgYSBkaXJlY3RvcnkpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNoZWxsTG9hZCIvPnhtbFNoZWxsTG9hZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTaGVsbExvYWQJCQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gImxvYWQiIGxvYWRzIGEgbmV3IGRvY3VtZW50IHNwZWNpZmllZCBieSB0aGUgZmlsZW5hbWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaGVsbCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGlmIGxvYWRpbmcgZmFpbGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxQcmludE5vZGUiLz54bWxTaGVsbFByaW50Tm9kZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2hlbGxQcmludE5vZGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5QcmludCBub2RlIHRvIHRoZSBvdXRwdXQgRklMRTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub24tbnVsbCBub2RlIHRvIHByaW50IHRvIHRoZSBvdXRwdXQgRklMRTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNoZWxsUHJpbnRYUGF0aEVycm9yIi8+eG1sU2hlbGxQcmludFhQYXRoRXJyb3IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNoZWxsUHJpbnRYUGF0aEVycm9yCQkoaW50IGVycm9yVHlwZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYXJnKTxici8+Cis8L3ByZT48cD5QcmludCB0aGUgeHBhdGggZXJyb3IgdG8gbGlieG1sIGRlZmF1bHQgZXJyb3IgY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyb3JUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD52YWxpZCB4cGF0aCBlcnJvciBpZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYXJndW1lbnQgdGhhdCBjYXVzZSB4cGF0aCB0byBmYWlsPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Ii8+eG1sU2hlbGxQcmludFhQYXRoUmVzdWx0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGxpc3QpPGJyLz4KKzwvcHJlPjxwPlByaW50cyByZXN1bHQgdG8gdGhlIG91dHB1dCBGSUxFPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saXN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHZhbGlkIHJlc3VsdCBnZW5lcmF0ZWQgYnkgYW4geHBhdGggZXZhbHVhdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNoZWxsUHdkIi8+eG1sU2hlbGxQd2QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxQd2QJCQkoPGEgaHJlZj0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJwd2QiIFNob3cgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSByb290IHRvIHRoZSBub2RlLCBpZiBuZWVkZWQgYnVpbGRpbmcgdGh1bWJsZXJzIHdoZW4gc2ltaWxhciBlbGVtZW50cyBleGlzdHMgYXQgYSBnaXZlbiBhbmNlc3RvciBsZXZlbC4gVGhlIG91dHB1dCBpcyBjb21wYXRpYmxlIHdpdGggWFBhdGggY29tbWFuZHMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3V0cHV0IGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTaGVsbFNhdmUiLz54bWxTaGVsbFNhdmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxTYXZlCQkJKDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJzYXZlIiBXcml0ZSB0aGUgY3VycmVudCBkb2N1bWVudCB0byB0aGUgZmlsZW5hbWUsIG9yIGl0J3Mgb3JpZ2luYWwgbmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNoZWxsIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBuYW1lIChvcHRpb25hbCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxWYWxpZGF0ZSIvPnhtbFNoZWxsVmFsaWRhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxWYWxpZGF0ZQkJKDxhIGhyZWY9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjaGFyICogZHRkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAidmFsaWRhdGUiIFZhbGlkYXRlIHRoZSBkb2N1bWVudCwgaWYgYSBEVEQgcGF0aCBpcyBwcm92aWRlZCwgdGhlbiB0aGUgdmFsaWRhdGlvbiBpcyBkb25lIGFnYWluc3QgdGhlIGdpdmVuIERURC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaGVsbCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBEVEQgVVJJIChvcHRpb25hbCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2hlbGxXcml0ZSIvPnhtbFNoZWxsV3JpdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxXcml0ZQkJCSg8YSBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAid3JpdGUiIFdyaXRlIHRoZSBjdXJyZW50IG5vZGUgdG8gdGhlIGZpbGVuYW1lLCBpdCBzYXZlcyB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGUgc3VidHJlZSB1bmRlciB0aGUgQG5vZGUgc3BlY2lmaWVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZSBpbiB0aGUgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItZGljdC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWRpY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDUwMWUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWRpY3QuaHRtbApAQCAtMCwwICsxLDExOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5kaWN0OiBzdHJpbmcgZGljdGlvbm5hcnk8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5kaWN0PC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+ZGljdCAtIHN0cmluZyBkaWN0aW9ubmFyeTwvcD4KKyAgICA8cD5kaWN0aW9uYXJ5IG9mIHJldXNhYmxlIHN0cmluZ3MsIGp1c3QgdXNlZCB0byBhdm9pZCBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9wZXJhdGlvbnMuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIHN0cnVjdCBfeG1sRGljdCA8YSBocmVmPSIjeG1sRGljdCI+eG1sRGljdDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3QiPnhtbERpY3Q8L2E+ICogPGEgaHJlZj0iI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+OworaW50CTxhIGhyZWY9IiN4bWxEaWN0UmVmZXJlbmNlIj54bWxEaWN0UmVmZXJlbmNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpOwordm9pZAk8YSBocmVmPSIjeG1sRGljdENsZWFudXAiPnhtbERpY3RDbGVhbnVwPC9hPgkJCSh2b2lkKTsKK2ludAk8YSBocmVmPSIjeG1sRGljdFNpemUiPnhtbERpY3RTaXplPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sRGljdEV4aXN0cyI+eG1sRGljdEV4aXN0czwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCBsZW4pOworaW50CTxhIGhyZWY9IiN4bWxEaWN0T3ducyI+eG1sRGljdE93bnM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbERpY3RRTG9va3VwIj54bWxEaWN0UUxvb2t1cDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4JPGEgaHJlZj0iI3htbERpY3RDcmVhdGVTdWIiPnhtbERpY3RDcmVhdGVTdWI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBzdWIpOwordm9pZAk8YSBocmVmPSIjeG1sRGljdEZyZWUiPnhtbERpY3RGcmVlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sRGljdExvb2t1cCI+eG1sRGljdExvb2t1cDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCBsZW4pOworPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4JPGEgaHJlZj0iI3htbERpY3RDcmVhdGUiPnhtbERpY3RDcmVhdGU8L2E+CQkodm9pZCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdCI+U3RydWN0dXJlIDwvYT54bWxEaWN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxEaWN0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxEaWN0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERpY3RQdHIiPlR5cGVkZWYgPC9hPnhtbERpY3RQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0Ij54bWxEaWN0PC9hPiAqIHhtbERpY3RQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdENsZWFudXAiLz54bWxEaWN0Q2xlYW51cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGljdENsZWFudXAJCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+RnJlZSB0aGUgZGljdGlvbmFyeSBtdXRleC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdENyZWF0ZSIvPnhtbERpY3RDcmVhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IGRpY3Rpb25hcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIGRpY3Rpb25uYXJ5LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdENyZWF0ZVN1YiIvPnhtbERpY3RDcmVhdGVTdWIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlU3ViCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBzdWIpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5LCBpbmhlcml0aW5nIHN0cmluZ3MgZnJvbSB0aGUgcmVhZC1vbmx5IGRpY3Rpb25uYXJ5IEBzdWIuIE9uIGxvb2t1cCwgc3RyaW5ncyBhcmUgZmlyc3Qgc2VhcmNoZWQgaW4gdGhlIG5ldyBkaWN0aW9ubmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZSBuZXcgZGljdGlvbm5hcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdWI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGV4aXN0aW5nIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9ubmFyeSwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERpY3RFeGlzdHMiLz54bWxEaWN0RXhpc3RzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERpY3RFeGlzdHMJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkNoZWNrIGlmIHRoZSBAbmFtZSBleGlzdHMgaW4gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIGNvcHkgb2YgdGhlIG5hbWUgb3IgTlVMTCBpZiBub3QgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdEZyZWUiLz54bWxEaWN0RnJlZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGljdEZyZWUJCQkoPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIvPgorPC9wcmU+PHA+RnJlZSB0aGUgaGFzaCBAZGljdCBhbmQgaXRzIGNvbnRlbnRzLiBUaGUgdXNlcmRhdGEgaXMgZGVhbGxvY2F0ZWQgd2l0aCBAZiBpZiBwcm92aWRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERpY3RMb29rdXAiLz54bWxEaWN0TG9va3VwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERpY3RMb29rdXAJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkFkZCB0aGUgQG5hbWUgdG8gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0IGlmIG5vdCBwcmVzZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIGNvcHkgb2YgdGhlIG5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdE93bnMiLz54bWxEaWN0T3ducyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEaWN0T3ducwkJCSg8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyLz4KKzwvcHJlPjxwPmNoZWNrIGlmIGEgc3RyaW5nIGlzIG93bmVkIGJ5IHRoZSBkaXNjdGlvbmFyeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdFFMb29rdXAiLz54bWxEaWN0UUxvb2t1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxEaWN0UUxvb2t1cAkJKDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+QWRkIHRoZSBRTmFtZSBAcHJlZml4OkBuYW1lIHRvIHRoZSBoYXNoIEBkaWN0IGlmIG5vdCBwcmVzZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgUU5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGljdFJlZmVyZW5jZSIvPnhtbERpY3RSZWZlcmVuY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRGljdFJlZmVyZW5jZQkJKDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpPGJyLz4KKzwvcHJlPjxwPkluY3JlbWVudCB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gY291bnRlciBvZiBhIGRpY3Rpb25hcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEaWN0U2l6ZSIvPnhtbERpY3RTaXplICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERpY3RTaXplCQkJKDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpPGJyLz4KKzwvcHJlPjxwPlF1ZXJ5IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW5zdGFsbGVkIGluIHRoZSBoYXNoIEBkaWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkaWN0aW9ubmFyeSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItZW5jb2RpbmcuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1lbmNvZGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkOTc3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItZW5jb2RpbmcuaHRtbApAQCAtMCwwICsxLDIwOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5lbmNvZGluZzogaW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnM8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItZW50aXRpZXMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPmVuY29kaW5nPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+ZW5jb2RpbmcgLSBpbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9uczwvcD4KKyAgICA8cD5pbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucyBuZWVkZWQgZm9yIFhNTCBiYXNpYyBlbmNvZGluZyBhbmQgaWNvbnYoKSBzdXBwb3J0LiAgUmVsYXRlZCBzcGVjcyBhcmUgcmZjMjA0NCAgICAgICAgKFVURi04IGFuZCBVVEYtMTYpIEYuIFllcmdlYXUgQWxpcyBUZWNobm9sb2dpZXMgW0lTTy0xMDY0Nl0gICAgVVRGLTggYW5kIFVURi0xNiBpbiBBbm5leGVzIFtJU08tODg1OS0xXSAgIElTTyBMYXRpbi0xIGNoYXJhY3RlcnMgY29kZXMuIFtVTklDT0RFXSAgICAgIFRoZSBVbmljb2RlIENvbnNvcnRpdW0sICJUaGUgVW5pY29kZSBTdGFuZGFyZCAtLSBXb3JsZHdpZGUgQ2hhcmFjdGVyIEVuY29kaW5nIC0tIFZlcnNpb24gMS4wIiwgQWRkaXNvbi0gV2VzbGV5LCBWb2x1bWUgMSwgMTk5MSwgVm9sdW1lIDIsIDE5OTIuICBVVEYtOCBpcyBkZXNjcmliZWQgaW4gVW5pY29kZSBUZWNobmljYWwgUmVwb3J0ICM0LiBbVVMtQVNDSUldICAgICBDb2RlZCBDaGFyYWN0ZXIgU2V0LS03LWJpdCBBbWVyaWNhbiBTdGFuZGFyZCBDb2RlIGZvciBJbmZvcm1hdGlvbiBJbnRlcmNoYW5nZSwgQU5TSSBYMy40LTE5ODYuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxDaGFyRW5jb2RpbmdIYW5kbGVyIDxhIGhyZWY9IiN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+ICogPGEgaHJlZj0iI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+OworaW50CTxhIGhyZWY9IiN4bWxEZWxFbmNvZGluZ0FsaWFzIj54bWxEZWxFbmNvZGluZ0FsaWFzPC9hPgkJKGNvbnN0IGNoYXIgKiBhbGlhcyk7Citjb25zdCBjaGFyICoJPGEgaHJlZj0iI3htbEdldEVuY29kaW5nQWxpYXMiPnhtbEdldEVuY29kaW5nQWxpYXM8L2E+CShjb25zdCBjaGFyICogYWxpYXMpOwordm9pZAk8YSBocmVmPSIjeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4gaGFuZGxlcik7CitpbnQJPGEgaHJlZj0iI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+CQkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT4JKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxBZGRFbmNvZGluZ0FsaWFzIj54bWxBZGRFbmNvZGluZ0FsaWFzPC9hPgkJKGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBhbGlhcyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzIj54bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzPC9hPgkodm9pZCk7CitpbnQJPGEgaHJlZj0iI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4gKiBoYW5kbGVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBvdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGluKTsKKzxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4JPGEgaHJlZj0iI3htbFBhcnNlQ2hhckVuY29kaW5nIj54bWxQYXJzZUNoYXJFbmNvZGluZzwvYT4JKGNvbnN0IGNoYXIgKiBuYW1lKTsKK3R5cGVkZWYgaW50IDxhIGhyZWY9IiN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT4JKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMiPnhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVyczwvYT4JKHZvaWQpOworPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPgkoY29uc3QgY2hhciAqIG5hbWUsIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+IGlucHV0LCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IG91dHB1dCk7Cit0eXBlZGVmIGludCA8YSBocmVmPSIjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT4JKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbik7CitpbnQJPGEgaHJlZj0iI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+CQkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbik7Cis8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4JPGEgaHJlZj0iI3htbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4JKGNvbnN0IGNoYXIgKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sQ2hhckVuY0luRnVuYyI+eG1sQ2hhckVuY0luRnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4gKiBoYW5kbGVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBvdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGluKTsKKzxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTsKK2ludAk8YSBocmVmPSIjeG1sQ2hhckVuY0ZpcnN0TGluZSI+eG1sQ2hhckVuY0ZpcnN0TGluZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4gKiBoYW5kbGVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBvdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGluKTsKKzxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4JPGEgaHJlZj0iI3htbERldGVjdENoYXJFbmNvZGluZyI+eG1sRGV0ZWN0Q2hhckVuY29kaW5nPC9hPgkoY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIvPgkJCQkJIGludCBsZW4pOworaW50CTxhIGhyZWY9IiN4bWxDaGFyRW5jQ2xvc2VGdW5jIj54bWxDaGFyRW5jQ2xvc2VGdW5jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIpOworY29uc3QgY2hhciAqCTxhIGhyZWY9IiN4bWxHZXRDaGFyRW5jb2RpbmdOYW1lIj54bWxHZXRDaGFyRW5jb2RpbmdOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoYXJFbmNvZGluZyI+RW51bSA8L2E+eG1sQ2hhckVuY29kaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR19FUlJPUiI+WE1MX0NIQVJfRU5DT0RJTkdfRVJST1I8L2E+ID0gLTEgLyogTm8gY2hhciBlbmNvZGluZyBkZXRlY3RlZCAqLworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX05PTkUiPlhNTF9DSEFSX0VOQ09ESU5HX05PTkU8L2E+ID0gMCAvKiBObyBjaGFyIGVuY29kaW5nIGRldGVjdGVkICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCI+WE1MX0NIQVJfRU5DT0RJTkdfVVRGODwvYT4gPSAxIC8qIFVURi04ICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRSI+WE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRTwvYT4gPSAyIC8qIFVURi0xNiBsaXR0bGUgZW5kaWFuICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZCRSI+WE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZCRTwvYT4gPSAzIC8qIFVURi0xNiBiaWcgZW5kaWFuICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0TEU8L2E+ID0gNCAvKiBVQ1MtNCBsaXR0bGUgZW5kaWFuICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNEJFIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkU8L2E+ID0gNSAvKiBVQ1MtNCBiaWcgZW5kaWFuICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDIj5YTUxfQ0hBUl9FTkNPRElOR19FQkNESUM8L2E+ID0gNiAvKiBFQkNESUMgdWghICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzIxNDM8L2E+ID0gNyAvKiBVQ1MtNCB1bnVzdWFsIG9yZGVyaW5nICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8zNDEyIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTI8L2E+ID0gOCAvKiBVQ1MtNCB1bnVzdWFsIG9yZGVyaW5nICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTMiI+WE1MX0NIQVJfRU5DT0RJTkdfVUNTMjwvYT4gPSA5IC8qIFVDUy0yICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8xIj5YTUxfQ0hBUl9FTkNPRElOR184ODU5XzE8L2E+ID0gMTAgLyogSVNPLTg4NTktMSBJU08gTGF0aW4gMSAqLworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMiI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yPC9hPiA9IDExIC8qIElTTy04ODU5LTIgSVNPIExhdGluIDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR184ODU5XzMiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMzwvYT4gPSAxMiAvKiBJU08tODg1OS0zICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfODg1OV80Ij5YTUxfQ0hBUl9FTkNPRElOR184ODU5XzQ8L2E+ID0gMTMgLyogSVNPLTg4NTktNCAqLworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNSI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV81PC9hPiA9IDE0IC8qIElTTy04ODU5LTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR184ODU5XzYiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNjwvYT4gPSAxNSAvKiBJU08tODg1OS02ICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfODg1OV83Ij5YTUxfQ0hBUl9FTkNPRElOR184ODU5Xzc8L2E+ID0gMTYgLyogSVNPLTg4NTktNyAqLworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOCI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV84PC9hPiA9IDE3IC8qIElTTy04ODU5LTggKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR184ODU5XzkiPlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOTwvYT4gPSAxOCAvKiBJU08tODg1OS05ICovCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfMjAyMl9KUCI+WE1MX0NIQVJfRU5DT0RJTkdfMjAyMl9KUDwvYT4gPSAxOSAvKiBJU08tMjAyMi1KUCAqLworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX1NISUZUX0pJUyI+WE1MX0NIQVJfRU5DT0RJTkdfU0hJRlRfSklTPC9hPiA9IDIwIC8qIFNoaWZ0X0pJUyAqLworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUCI+WE1MX0NIQVJfRU5DT0RJTkdfRVVDX0pQPC9hPiA9IDIxIC8qIEVVQy1KUCAqLworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX0FTQ0lJIj5YTUxfQ0hBUl9FTkNPRElOR19BU0NJSTwvYT4gPSAyMiAvKiAgcHVyZSBBU0NJSSAqLworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj5TdHJ1Y3R1cmUgPC9hPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbENoYXJFbmNvZGluZ0hhbmRsZXIgeworICAgIGNoYXIgKgluYW1lCisgICAgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPglpbnB1dAorICAgIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPglvdXRwdXQKKyAgICBpY29udl90CWljb252X2luCisgICAgaWNvbnZfdAlpY29udl9vdXQKK30geG1sQ2hhckVuY29kaW5nSGFuZGxlcjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj5UeXBlZGVmIDwvYT54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+ICogeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbik8YnIvPgorPC9wcmU+PHA+VGFrZSBhIGJsb2NrIG9mIGNoYXJzIGluIHRoZSBvcmlnaW5hbCBlbmNvZGluZyBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gVVRGLTggYmxvY2sgb2YgY2hhcnMgb3V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIFVURi04IHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIEBvdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnMgaW4gdGhlIG9yaWdpbmFsIGVuY29kaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgLTEgaWYgbGFjayBvZiBzcGFjZSwgb3IgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxlZC4gVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RpYWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYwkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyLz4JCQkJCSBpbnQgKiBvdXRsZW4sIDxici8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIvPgkJCQkJIGludCAqIGlubGVuKTxici8+Cis8L3ByZT48cD5UYWtlIGEgYmxvY2sgb2YgVVRGLTggY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFub3RoZXIgZW5jb2RpbmcuIE5vdGU6IGEgZmlyc3QgY2FsbCBkZXNpZ25lZCB0byBwcm9kdWNlIGhlYWRpbmcgaW5mbyBpcyBjYWxsZWQgd2l0aCBpbiA9IE5VTEwuIElmIHN0YXRlZnVsIHRoaXMgc2hvdWxkIGFsc28gaW5pdGlhbGl6ZSB0aGUgZW5jb2RlciBzdGF0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dGxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAb3V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgLTEgaWYgbGFjayBvZiBzcGFjZSwgb3IgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxlZC4gVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RpYWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIHByb2R1Y2VkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlVURjhUb2lzb2xhdDEiLz5VVEY4VG9pc29sYXQxICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CVVURjhUb2lzb2xhdDEJCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyLz4JCQkJCSBpbnQgKiBvdXRsZW4sIDxici8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIvPgkJCQkJIGludCAqIGlubGVuKTxici8+Cis8L3ByZT48cD5UYWtlIGEgYmxvY2sgb2YgVVRGLTggY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIElTTyBMYXRpbiAxIGJsb2NrIG9mIGNoYXJzIG91dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dGxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAb3V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBpZiBzdWNjZXNzLCAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMsIG9yIC0xIG90aGVyd2lzZSBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZCBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGFibGUuIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJpc29sYXQxVG9VVEY4Ii8+aXNvbGF0MVRvVVRGOCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlpc29sYXQxVG9VVEY4CQkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxici8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyLz4JCQkJCSBpbnQgKiBpbmxlbik8YnIvPgorPC9wcmU+PHA+VGFrZSBhIGJsb2NrIG9mIElTTyBMYXRpbiAxIGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBVVEYtOCBibG9jayBvZiBjaGFycyBvdXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRsZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQG91dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBJU08gTGF0aW4gMSBjaGFyczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQGluPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgLTEgb3RoZXJ3aXNlIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEFkZEVuY29kaW5nQWxpYXMiLz54bWxBZGRFbmNvZGluZ0FsaWFzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEFkZEVuY29kaW5nQWxpYXMJCShjb25zdCBjaGFyICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYWxpYXMpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhbiBhbGlhcyBAYWxpYXMgZm9yIGFuIGVuY29kaW5nIG5hbWVkIEBuYW1lLiBFeGlzdGluZyBhbGlhcyB3aWxsIGJlIG92ZXJ3cml0dGVuLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YWxpYXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhbGlhcyBuYW1lIGFzIHBhcnNlZCwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2hhckVuY0Nsb3NlRnVuYyIvPnhtbENoYXJFbmNDbG9zZUZ1bmMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2hhckVuY0Nsb3NlRnVuYwkJKDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIpPGJyLz4KKzwvcHJlPjxwPkdlbmVyaWMgZnJvbnQtZW5kIGZvciBlbmNvZGluZyBoYW5kbGVyIGNsb3NlIGZ1bmN0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oYW5kbGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyIGVuY29uZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZXNzLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2hhckVuY0ZpcnN0TGluZSIvPnhtbENoYXJFbmNGaXJzdExpbmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2hhckVuY0ZpcnN0TGluZQkJKDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IG91dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gaW4pPGJyLz4KKzwvcHJlPjxwPkZyb250LWVuZCBmb3IgdGhlIGVuY29kaW5nIGhhbmRsZXIgaW5wdXQgZnVuY3Rpb24sIGJ1dCBoYW5kbGUgb25seSB0aGUgdmVyeSBmaXJzdCBsaW5lLCBpLmUuIGxpbWl0IGl0c2VsZiB0byA0NSBjaGFycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgZW5jb25kaW5nIHRyYW5zZm9ybWF0aW9uIGRhdGEgc3RydWN0dXJlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlciI+eG1sQnVmZmVyPC9hPiBmb3IgdGhlIG91dHB1dC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT4gZm9yIHRoZSBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgLTEgZ2VuZXJhbCBlcnJvciAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGZvciAqaW4gaXMgbm90IHZhbGlkIHV0Zjggc3RyaW5nIG9yIHRoZSByZXN1bHQgb2YgdHJhbnNmb3JtYXRpb24gY2FuJ3QgZml0IGludG8gdGhlIGVuY29kaW5nIHdlIHdhbnQpLCBvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoYXJFbmNJbkZ1bmMiLz54bWxDaGFyRW5jSW5GdW5jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENoYXJFbmNJbkZ1bmMJCSg8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4gKiBoYW5kbGVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBvdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGluKTxici8+Cis8L3ByZT48cD5HZW5lcmljIGZyb250LWVuZCBmb3IgdGhlIGVuY29kaW5nIGhhbmRsZXIgaW5wdXQgZnVuY3Rpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgZW5jb2RpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyIj54bWxCdWZmZXI8L2E+IGZvciB0aGUgb3V0cHV0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlciI+eG1sQnVmZmVyPC9hPiBmb3IgdGhlIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBpZiBzdWNjZXNzLCBvciAtMSBnZW5lcmFsIGVycm9yIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscyAoZm9yICppbiBpcyBub3QgdmFsaWQgdXRmOCBzdHJpbmcgb3IgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1hdGlvbiBjYW4ndCBmaXQgaW50byB0aGUgZW5jb2Rpbmcgd2Ugd2FudCksIG9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2hhckVuY091dEZ1bmMiLz54bWxDaGFyRW5jT3V0RnVuYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDaGFyRW5jT3V0RnVuYwkJKDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IG91dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gaW4pPGJyLz4KKzwvcHJlPjxwPkdlbmVyaWMgZnJvbnQtZW5kIGZvciB0aGUgZW5jb2RpbmcgaGFuZGxlciBvdXRwdXQgZnVuY3Rpb24gYSBmaXJzdCBjYWxsIHdpdGggQGluID09IE5VTEwgaGFzIHRvIGJlIG1hZGUgZmlycyB0byBpbml0aWF0ZSB0aGUgb3V0cHV0IGluIGNhc2Ugb2Ygbm9uLXN0YXRlbGVzcyBlbmNvZGluZyBuZWVkaW5nIHRvIGluaXRpYXRlIHRoZWlyIHN0YXRlIG9yIHRoZSBvdXRwdXQgKGxpa2UgdGhlIEJPTSBpbiBVVEYxNikuIEluIGNhc2Ugb2YgVVRGOCBzZXF1ZW5jZSBjb252ZXJzaW9uIGVycm9ycyBmb3IgdGhlIGdpdmVuIGVuY29kZXIsIHRoZSBjb250ZW50IHdpbGwgYmUgYXV0b21hdGljYWxseSByZW1hcHBlZCB0byBhIENoYXJSZWYgc2VxdWVuY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oYW5kbGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyIGVuY29uZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT4gZm9yIHRoZSBvdXRwdXQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyIj54bWxCdWZmZXI8L2E+IGZvciB0aGUgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIGlmIHN1Y2Nlc3MsIG9yIC0xIGdlbmVyYWwgZXJyb3IgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzIChmb3IgKmluIGlzIG5vdCB2YWxpZCB1dGY4IHN0cmluZyBvciB0aGUgcmVzdWx0IG9mIHRyYW5zZm9ybWF0aW9uIGNhbid0IGZpdCBpbnRvIHRoZSBlbmNvZGluZyB3ZSB3YW50KSwgb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMiLz54bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycwkodm9pZCk8YnIvPgorPC9wcmU+PHA+Q2xlYW51cCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhlIGNoYXIgZW5jb2Rpbmcgc3VwcG9ydCwgaXQgdW5yZWdpc3RlcnMgYWxsIHRoZSBlbmNvZGluZyBoYW5kbGVycyBhbmQgdGhlIGFsaWFzZXMuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENsZWFudXBFbmNvZGluZ0FsaWFzZXMiLz54bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzCSh2b2lkKTxici8+Cis8L3ByZT48cD5VbnJlZ2lzdGVycyBhbGwgYWxpYXNlczwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEZWxFbmNvZGluZ0FsaWFzIi8+eG1sRGVsRW5jb2RpbmdBbGlhcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEZWxFbmNvZGluZ0FsaWFzCQkoY29uc3QgY2hhciAqIGFsaWFzKTxici8+Cis8L3ByZT48cD5VbnJlZ2lzdGVycyBhbiBlbmNvZGluZyBhbGlhcyBAYWxpYXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFsaWFzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYWxpYXMgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERldGVjdENoYXJFbmNvZGluZyIvPnhtbERldGVjdENoYXJFbmNvZGluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4JeG1sRGV0ZWN0Q2hhckVuY29kaW5nCShjb25zdCB1bnNpZ25lZCBjaGFyICogaW4sIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+R3Vlc3MgdGhlIGVuY29kaW5nIG9mIHRoZSBlbnRpdHkgdXNpbmcgdGhlIGZpcnN0IGJ5dGVzIG9mIHRoZSBlbnRpdHkgY29udGVudCBhY2NvcmRpbmcgdG8gdGhlIG5vbi1ub3JtYXRpdmUgYXBwZW5kaXggRiBvZiB0aGUgWE1MLTEuMCByZWNvbW1lbmRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGJ5dGVzIG9mIHRoZSBYTUwgZW50aXR5LCBtdXN0IGJlIGF0IGxlYXN0IDIgYnl0ZXMgbG9uZyAoYXQgbGVhc3QgNCBpZiBlbmNvZGluZyBpcyBVVEY0IHZhcmlhbnQpLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b25lIG9mIHRoZSBYTUxfQ0hBUl9FTkNPRElOR18uLi4gdmFsdWVzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyIi8+eG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4JeG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIJKGNvbnN0IGNoYXIgKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZWFyY2ggaW4gdGhlIHJlZ2lzdGVyZWQgc2V0IHRoZSBoYW5kbGVyIGFibGUgdG8gcmVhZC93cml0ZSB0aGF0IGVuY29kaW5nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY2hhciBlbmNvZGluZy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYW5kbGVyIG9yIE5VTEwgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlciIvPnhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4JeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCBpbiB0aGUgcmVnaXN0ZXJlZCBzZXQgdGhlIGhhbmRsZXIgYWJsZSB0byByZWFkL3dyaXRlIHRoYXQgZW5jb2RpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gdmFsdWUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFuZGxlciBvciBOVUxMIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldENoYXJFbmNvZGluZ05hbWUiLz54bWxHZXRDaGFyRW5jb2RpbmdOYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCXhtbEdldENoYXJFbmNvZGluZ05hbWUJKDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTxici8+Cis8L3ByZT48cD5UaGUgImNhbm9uaWNhbCIgbmFtZSBmb3IgWE1MIGVuY29kaW5nLiBDLmYuIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjY2hhcmVuY29kaW5nIFNlY3Rpb24gNC4zLjMgQ2hhcmFjdGVyIEVuY29kaW5nIGluIEVudGl0aWVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNhbm9uaWNhbCBuYW1lIGZvciB0aGUgZ2l2ZW4gZW5jb2Rpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXRFbmNvZGluZ0FsaWFzIi8+eG1sR2V0RW5jb2RpbmdBbGlhcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgl4bWxHZXRFbmNvZGluZ0FsaWFzCShjb25zdCBjaGFyICogYWxpYXMpPGJyLz4KKzwvcHJlPjxwPkxvb2t1cCBhbiBlbmNvZGluZyBuYW1lIGZvciB0aGUgZ2l2ZW4gYWxpYXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbGlhczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFsaWFzIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QgZm91bmQsIG90aGVyd2lzZSB0aGUgb3JpZ2luYWwgbmFtZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycyIvPnhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzCSh2b2lkKTxici8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBjaGFyIGVuY29kaW5nIHN1cHBvcnQsIGl0IHJlZ2lzdGVycyB0aGUgZGVmYXVsdCBlbmNvZGluZyBzdXBwb3J0ZWQuIE5PVEU6IHdoaWxlIHB1YmxpYywgdGhpcyBmdW5jdGlvbiB1c3VhbGx5IGRvZXNuJ3QgbmVlZCB0byBiZSBjYWxsZWQgaW4gbm9ybWFsIHByb2Nlc3NpbmcuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiLz54bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+CXhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIJKGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPiBpbnB1dCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPiBvdXRwdXQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbmQgcmVnaXN0ZXJzIGFuIHhtbENoYXJFbmNvZGluZ0hhbmRsZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPiB0byByZWFkIHRoYXQgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPiB0byB3cml0ZSB0aGF0IGVuY29kaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGNyZWF0ZWQgKG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcikuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDaGFyRW5jb2RpbmciLz54bWxQYXJzZUNoYXJFbmNvZGluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4JeG1sUGFyc2VDaGFyRW5jb2RpbmcJKGNvbnN0IGNoYXIgKiBuYW1lKTxici8+Cis8L3ByZT48cD5Db21wYXJlIHRoZSBzdHJpbmcgdG8gdGhlIGVuY29kaW5nIHNjaGVtZXMgYWxyZWFkeSBrbm93bi4gTm90ZSB0aGF0IHRoZSBjb21wYXJpc29uIGlzIGNhc2UgaW5zZW5zaXRpdmUgYWNjb3JkaW5nbHkgdG8gdGhlIHNlY3Rpb24gW1hNTF0gNC4zLjMgQ2hhcmFjdGVyIEVuY29kaW5nIGluIEVudGl0aWVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b25lIG9mIHRoZSBYTUxfQ0hBUl9FTkNPRElOR18uLi4gdmFsdWVzIG9yIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19OT05FIj5YTUxfQ0hBUl9FTkNPRElOR19OT05FPC9hPiBpZiBub3QgcmVjb2duaXplZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIiLz54bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIHRoZSBjaGFyIGVuY29kaW5nIGhhbmRsZXIsIHN1cnByaXNpbmcsIGlzbid0IGl0ID88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4gaGFuZGxlciBibG9jazwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWVudGl0aWVzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItZW50aXRpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDBlZmZiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWVudGl0aWVzLmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+ZW50aXRpZXM6IGludGVyZmFjZSBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZzwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+ZW50aXRpZXM8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5lbnRpdGllcyAtIGludGVyZmFjZSBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZzwvcD4KKyAgICA8cD50aGlzIG1vZHVsZSBwcm92aWRlcyBzb21lIG9mIHRoZSBlbnRpdHkgQVBJIG5lZWRlZCBmb3IgdGhlIHBhcnNlciBhbmQgYXBwbGljYXRpb25zLiA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+dHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxFbnRpdHlUeXBlIj54bWxFbnRpdHlUeXBlPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxIYXNoVGFibGUgPGEgaHJlZj0iI3htbEVudGl0aWVzVGFibGUiPnhtbEVudGl0aWVzVGFibGU8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sRW50aXRpZXNUYWJsZSI+eG1sRW50aXRpZXNUYWJsZTwvYT4gKiA8YSBocmVmPSIjeG1sRW50aXRpZXNUYWJsZVB0ciI+eG1sRW50aXRpZXNUYWJsZVB0cjwvYT47Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JPGEgaHJlZj0iI3htbEFkZERvY0VudGl0eSI+eG1sQWRkRG9jRW50aXR5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RW50aXR5Ij54bWxOZXdFbnRpdHk8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBpbnQgdHlwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaW5wdXQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXREb2NFbnRpdHkiPnhtbEdldERvY0VudGl0eTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0RHRkRW50aXR5Ij54bWxHZXREdGRFbnRpdHk8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JPGEgaHJlZj0iI3htbEFkZER0ZEVudGl0eSI+eG1sQWRkRHRkRW50aXR5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKKzxhIGhyZWY9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weUVudGl0aWVzVGFibGUiPnhtbENvcHlFbnRpdGllc1RhYmxlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+IHRhYmxlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVFbnRpdGllc1RhYmxlIj54bWxGcmVlRW50aXRpZXNUYWJsZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sRW50aXRpZXNUYWJsZVB0ciI+eG1sRW50aXRpZXNUYWJsZVB0cjwvYT4gdGFibGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXRQYXJhbWV0ZXJFbnRpdHkiPnhtbEdldFBhcmFtZXRlckVudGl0eTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOwordm9pZAk8YSBocmVmPSIjeG1sRHVtcEVudGl0aWVzVGFibGUiPnhtbER1bXBFbnRpdGllc1RhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+IHRhYmxlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbER1bXBFbnRpdHlEZWNsIj54bWxEdW1wRW50aXR5RGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBlbnQpOwordm9pZAk8YSBocmVmPSIjeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcyI+eG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllczwvYT4JKHZvaWQpOworPGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxDcmVhdGVFbnRpdGllc1RhYmxlIj54bWxDcmVhdGVFbnRpdGllc1RhYmxlPC9hPgkodm9pZCk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbEVuY29kZUVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGlucHV0KTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sRW5jb2RlU3BlY2lhbENoYXJzIj54bWxFbmNvZGVTcGVjaWFsQ2hhcnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBpbnB1dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JPGEgaHJlZj0iI3htbEdldFByZWRlZmluZWRFbnRpdHkiPnhtbEdldFByZWRlZmluZWRFbnRpdHk8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzIj54bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzPC9hPgkodm9pZCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRW50aXRpZXNUYWJsZSI+U3RydWN0dXJlIDwvYT54bWxFbnRpdGllc1RhYmxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxIYXNoVGFibGUgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbEVudGl0aWVzVGFibGU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRW50aXRpZXNUYWJsZVB0ciI+VHlwZWRlZiA8L2E+eG1sRW50aXRpZXNUYWJsZVB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlIj54bWxFbnRpdGllc1RhYmxlPC9hPiAqIHhtbEVudGl0aWVzVGFibGVQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRW50aXR5VHlwZSI+RW51bSA8L2E+eG1sRW50aXR5VHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbEVudGl0eVR5cGUiPnhtbEVudGl0eVR5cGU8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFkiPlhNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWSI+WE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWTwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZIj5YTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFk8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9JTlRFUk5BTF9QQVJBTUVURVJfRU5USVRZIj5YTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWTwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFkiPlhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkiPlhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWTwvYT4gPSA2Cit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEFkZERvY0VudGl0eSIvPnhtbEFkZERvY0VudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgl4bWxBZGREb2NFbnRpdHkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGludCB0eXBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgZW50aXR5IGZvciB0aGlzIGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSB0eXBlIFhNTF94eHhfeXl5X0VOVElUWTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBleHRlcm5hbCBJRCBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IHN5c3RlbSBJRCBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQWRkRHRkRW50aXR5Ii8+eG1sQWRkRHRkRW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CXhtbEFkZER0ZEVudGl0eQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyBlbnRpdHkgZm9yIHRoaXMgZG9jdW1lbnQgRFREIGV4dGVybmFsIHN1YnNldC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdHlwZSBYTUxfeHh4X3l5eV9FTlRJVFk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgZXh0ZXJuYWwgSUQgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBzeXN0ZW0gSUQgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgZW50aXR5IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiLz54bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzCSh2b2lkKTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHVwIHRoZSBwcmVkZWZpbmVkIGVudGl0aWVzIHRhYmxlLiBEZXByZWNhdGVkIGNhbGw8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weUVudGl0aWVzVGFibGUiLz54bWxDb3B5RW50aXRpZXNUYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPgl4bWxDb3B5RW50aXRpZXNUYWJsZQkoPGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+IHRhYmxlKTxici8+Cis8L3ByZT48cD5CdWlsZCBhIGNvcHkgb2YgYW4gZW50aXR5IHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVudGl0eSB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sRW50aXRpZXNUYWJsZVB0ciI+eG1sRW50aXRpZXNUYWJsZVB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENyZWF0ZUVudGl0aWVzVGFibGUiLz54bWxDcmVhdGVFbnRpdGllc1RhYmxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+CXhtbENyZWF0ZUVudGl0aWVzVGFibGUJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPmNyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBhbiBlbXB0eSBlbnRpdGllcyBoYXNoIHRhYmxlLiBUaGlzIHJlYWxseSBkb2Vzbid0IG1ha2Ugc2Vuc2UgYW5kIHNob3VsZCBiZSBkZXByZWNhdGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+IGp1c3QgY3JlYXRlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRHVtcEVudGl0aWVzVGFibGUiLz54bWxEdW1wRW50aXRpZXNUYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRHVtcEVudGl0aWVzVGFibGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPiB0YWJsZSk8YnIvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gWE1MIGJ1ZmZlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBlbnRpdHkgdGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEdW1wRW50aXR5RGVjbCIvPnhtbER1bXBFbnRpdHlEZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEdW1wRW50aXR5RGVjbAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+IGVudCk8YnIvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gWE1MIGJ1ZmZlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZW50aXR5IHRhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRW5jb2RlRW50aXRpZXMiLz54bWxFbmNvZGVFbnRpdGllcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxFbmNvZGVFbnRpdGllcwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaW5wdXQpPGJyLz4KKzwvcHJlPjxwPlRPRE86IHJlbW92ZSB4bWxFbmNvZGVFbnRpdGllcywgb25jZSB3ZSBhcmUgbm90IGFmcmFpZCBvZiBicmVha2luZyBiaW5hcnkgY29tcGF0aWJpbGl0eSBQZW9wbGUgbXVzdCBtaWdyYXRlIHRoZWlyIGNvZGUgdG8gPGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ij54bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvYT4gISBUaGlzIHJvdXRpbmUgd2lsbCBpc3N1ZSBhIHdhcm5pbmcgd2hlbiBlbmNvdW50ZXJlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgc3RyaW5nIHRvIGNvbnZlcnQgdG8gWE1MLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Ii8+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBpbnB1dCk8YnIvPgorPC9wcmU+PHA+RG8gYSBnbG9iYWwgZW5jb2Rpbmcgb2YgYSBzdHJpbmcsIHJlcGxhY2luZyB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcyBhbmQgbm9uIEFTQ0lJIHZhbHVlcyB3aXRoIHRoZWlyIGVudGl0aWVzIGFuZCBDaGFyUmVmIGNvdW50ZXJwYXJ0cy4gQ29udHJhcnkgdG8geG1sRW5jb2RlRW50aXRpZXMsIHRoaXMgcm91dGluZSBpcyByZWVudHJhbnQsIGFuZCByZXN1bHQgbXVzdCBiZSBkZWFsbG9jYXRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgc3RyaW5nIHRvIGNvbnZlcnQgdG8gWE1MLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggdGhlIHN1YnN0aXR1dGlvbiBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVuY29kZVNwZWNpYWxDaGFycyIvPnhtbEVuY29kZVNwZWNpYWxDaGFycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxFbmNvZGVTcGVjaWFsQ2hhcnMJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGlucHV0KTxici8+Cis8L3ByZT48cD5EbyBhIGdsb2JhbCBlbmNvZGluZyBvZiBhIHN0cmluZywgcmVwbGFjaW5nIHRoZSBwcmVkZWZpbmVkIGVudGl0aWVzIHRoaXMgcm91dGluZSBpcyByZWVudHJhbnQsIGFuZCByZXN1bHQgbXVzdCBiZSBkZWFsbG9jYXRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgc3RyaW5nIHRvIGNvbnZlcnQgdG8gWE1MLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggdGhlIHN1YnN0aXR1dGlvbiBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVFbnRpdGllc1RhYmxlIi8+eG1sRnJlZUVudGl0aWVzVGFibGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVFbnRpdGllc1RhYmxlCQkoPGEgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+IHRhYmxlKTxici8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbnRpdGllcyBoYXNoIHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVudGl0eSB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldERvY0VudGl0eSIvPnhtbEdldERvY0VudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgl4bWxHZXREb2NFbnRpdHkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5EbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBkb2N1bWVudCBlbnRpdHkgaGFzaCB0YWJsZSBhbmQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHJlZmVyZW5jaW5nIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvcnJlc3BvbmRpbmcgZW50aXR5LCBvdGhlcndpc2UgYSBsb29rdXAgaXMgZG9uZSBpbiB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcyB0b28uIFJldHVybnMgQSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgc3RydWN0dXJlIG9yIE5VTEwgaWYgbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldER0ZEVudGl0eSIvPnhtbEdldER0ZEVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgl4bWxHZXREdGRFbnRpdHkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5EbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBEVEQgZW50aXR5IGhhc2ggdGFibGUgYW5kPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCByZWZlcmVuY2luZyB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb3JyZXNwb25kaW5nIGVudGl0eSwgaWYgZm91bmQuIE5vdGU6IHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgZG9jdW1lbnQgbm9kZSwgbm90IHRoZSBEVEQgbm9kZS4gUmV0dXJucyBBIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBzdHJ1Y3R1cmUgb3IgTlVMTCBpZiBub3QgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0UGFyYW1ldGVyRW50aXR5Ii8+eG1sR2V0UGFyYW1ldGVyRW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CXhtbEdldFBhcmFtZXRlckVudGl0eQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+RG8gYW4gZW50aXR5IGxvb2t1cCBpbiB0aGUgaW50ZXJuYWwgYW5kIGV4dGVybmFsIHN1YnNldHMgYW5kPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCByZWZlcmVuY2luZyB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBlbnRpdHksIGlmIGZvdW5kLiBSZXR1cm5zIEEgcG9pbnRlciB0byB0aGUgZW50aXR5IHN0cnVjdHVyZSBvciBOVUxMIGlmIG5vdCBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXRQcmVkZWZpbmVkRW50aXR5Ii8+eG1sR2V0UHJlZGVmaW5lZEVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgl4bWxHZXRQcmVkZWZpbmVkRW50aXR5CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGlzIG5hbWUgaXMgYW4gcHJlZGVmaW5lZCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIGVudGl0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMiLz54bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzCSh2b2lkKTxici8+Cis8L3ByZT48cD5TZXQgdXAgdGhlIHByZWRlZmluZWQgZW50aXRpZXMuIERlcHJlY2F0ZWQgY2FsbDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdFbnRpdHkiLz54bWxOZXdFbnRpdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sTmV3RW50aXR5CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBpbnQgdHlwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBlbnRpdHksIHRoaXMgZGlmZmVycyBmcm9tIHhtbEFkZERvY0VudGl0eSgpIHRoYXQgaWYgdGhlIGRvY3VtZW50IGlzIE5VTEwgb3IgaGFzIG5vIGludGVybmFsIHN1YnNldCBkZWZpbmVkLCB0aGVuIGFuIHVubGlua2VkIGVudGl0eSBzdHJ1Y3R1cmUgd2lsbCBiZSByZXR1cm5lZCwgaXQgaXMgdGhlbiB0aGUgcmVzcG9uc2FiaWxpdHkgb2YgdGhlIGNhbGxlciB0byBsaW5rIGl0IHRvIHRoZSBkb2N1bWVudCBsYXRlciBvciBmcmVlIGl0IHdoZW4gbm90IG5lZWRlZCBhbnltb3JlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSB0eXBlIFhNTF94eHhfeXl5X0VOVElUWTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBleHRlcm5hbCBJRCBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IHN5c3RlbSBJRCBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItZ2xvYmFscy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWdsb2JhbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTU0OTJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLWdsb2JhbHMuaHRtbApAQCAtMCwwICsxLDM4MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5nbG9iYWxzOiBpbnRlcmZhY2UgZm9yIGFsbCBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5PC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1lbnRpdGllcy5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5nbG9iYWxzPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+Z2xvYmFscyAtIGludGVyZmFjZSBmb3IgYWxsIGdsb2JhbCB2YXJpYWJsZXMgb2YgdGhlIGxpYnJhcnk8L3A+CisgICAgPHA+YWxsIHRoZSBnbG9iYWwgdmFyaWFibGVzIGFuZCB0aHJlYWQgaGFuZGxpbmcgZm9yIHRob3NlIHZhcmlhYmxlcyBpcyBoYW5kbGVkIGJ5IHRoaXMgbW9kdWxlLiAgVGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYnVpbGRfZ2xvYi5weSBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb24gZmlsZSBnbG9iYWwuZGF0YSA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBHYXJ5IFBlbm5pbmd0b24gJmx0O0dhcnkuUGVubmluZ3RvbkB1ay5zdW4uY29tJmd0OywgRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sR2xvYmFsU3RhdGUiPnhtbEdsb2JhbFN0YXRlPC9hPiAqIDxhIGhyZWY9IiN4bWxHbG9iYWxTdGF0ZVB0ciI+eG1sR2xvYmFsU3RhdGVQdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbEdsb2JhbFN0YXRlIDxhIGhyZWY9IiN4bWxHbG9iYWxTdGF0ZSI+eG1sR2xvYmFsU3RhdGU8L2E+Owordm9pZAk8YSBocmVmPSIjeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IGhhbmRsZXIpOwordm9pZAk8YSBocmVmPSIjeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlIj54bWxJbml0aWFsaXplR2xvYmFsU3RhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxHbG9iYWxTdGF0ZVB0ciI+eG1sR2xvYmFsU3RhdGVQdHI8L2E+IGdzKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+CTxhIGhyZWY9IiN4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZSI+eG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPiB2KTsKK2ludAk8YSBocmVmPSIjeG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUiPnhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlPC9hPgkoaW50IHYpOworPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT4JPGEgaHJlZj0iI3htbFJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiA8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPgkoY29uc3QgY2hhciAqIFVSSSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTsKKzxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPgk8YSBocmVmPSIjeG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4gZnVuYyk7Cis8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4JPGEgaHJlZj0iI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+IGZ1bmMpOworaW50CTxhIGhyZWY9IiN4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZSI+eG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemU8L2E+CShpbnQgdik7Cis8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4JPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IGZ1bmMpOworaW50CTxhIGhyZWY9IiN4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlPC9hPgkoaW50IHYpOworPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT4JPGEgaHJlZj0iI3htbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQiPnhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTsKK2ludAk8YSBocmVmPSIjeG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZTwvYT4JKGludCB2KTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7CitpbnQJPGEgaHJlZj0iI3htbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMiPnhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXM8L2E+CShpbnQgdik7Cis8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CTxhIGhyZWY9IiN4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IGZ1bmMpOwordm9pZAk8YSBocmVmPSIjeG1sVGhyRGVmU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sVGhyRGVmU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+IGhhbmRsZXIpOworPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPiBmdW5jKTsKK2ludAk8YSBocmVmPSIjeG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU8L2E+CShpbnQgdik7Cit2b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwR2xvYmFscyI+eG1sQ2xlYW51cEdsb2JhbHM8L2E+CQkodm9pZCk7CitpbnQJPGEgaHJlZj0iI3htbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZTwvYT4JKGludCB2KTsKKzxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRnVuYyI+eG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9hPgk8YSBocmVmPSIjeG1sVGhyRGVmRGVyZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4gZnVuYyk7CitpbnQJPGEgaHJlZj0iI3htbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlPC9hPgkoaW50IHYpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpOworaW50CTxhIGhyZWY9IiN4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MiPnhtbFRockRlZlNhdmVOb0VtcHR5VGFnczwvYT4JKGludCB2KTsKK2ludAk8YSBocmVmPSIjeG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dCI+eG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dDwvYT4JKGludCB2KTsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IDxhIGhyZWY9IiN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4JKGNvbnN0IGNoYXIgKiBVUkksIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4gZW5jb2RlciwgPGJyLz4JCQkJCQkJIGludCBjb21wcmVzc2lvbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxJbml0R2xvYmFscyI+eG1sSW5pdEdsb2JhbHM8L2E+CQkJKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWU8L2E+CShpbnQgdik7Citjb25zdCBjaGFyICoJPGEgaHJlZj0iI3htbFRockRlZlRyZWVJbmRlbnRTdHJpbmciPnhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmc8L2E+CShjb25zdCBjaGFyICogdik7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2xvYmFsU3RhdGUiPlN0cnVjdHVyZSA8L2E+eG1sR2xvYmFsU3RhdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEdsb2JhbFN0YXRlIHsKKyAgICBjb25zdCBjaGFyICoJeG1sUGFyc2VyVmVyc2lvbgorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWExvY2F0b3IiPnhtbFNBWExvY2F0b3I8L2E+CXhtbERlZmF1bHRTQVhMb2NhdG9yCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT4JeG1sRGVmYXVsdFNBWEhhbmRsZXIKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPglkb2NiRGVmYXVsdFNBWEhhbmRsZXIKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPglodG1sRGVmYXVsdFNBWEhhbmRsZXIKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbEZyZWVGdW5jIj54bWxGcmVlRnVuYzwvYT4JeG1sRnJlZQorICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4JeG1sTWFsbG9jCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPgl4bWxNZW1TdHJkdXAKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT4JeG1sUmVhbGxvYworICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPgl4bWxHZW5lcmljRXJyb3IKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4JeG1sU3RydWN0dXJlZEVycm9yCisgICAgdm9pZCAqCXhtbEdlbmVyaWNFcnJvckNvbnRleHQKKyAgICBpbnQJb2xkWE1MV0Rjb21wYXRpYmlsaXR5CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4JeG1sQnVmZmVyQWxsb2NTY2hlbWUKKyAgICBpbnQJeG1sRGVmYXVsdEJ1ZmZlclNpemUKKyAgICBpbnQJeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlCisgICAgaW50CXhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZQorICAgIGludAl4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZQorICAgIGludAl4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlCisgICAgaW50CXhtbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlCisgICAgaW50CXhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUKKyAgICBpbnQJeG1sUGFyc2VyRGVidWdFbnRpdGllcworICAgIGludAl4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZQorICAgIGludAl4bWxTYXZlTm9FbXB0eVRhZ3MKKyAgICBpbnQJeG1sSW5kZW50VHJlZU91dHB1dAorICAgIGNvbnN0IGNoYXIgKgl4bWxUcmVlSW5kZW50U3RyaW5nCisgICAgPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT4JeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlCisgICAgPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+CXhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPgl4bWxNYWxsb2NBdG9taWMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3IiPnhtbEVycm9yPC9hPgl4bWxMYXN0RXJyb3IKKyAgICA8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZQorICAgIDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPgl4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlCisgICAgdm9pZCAqCXhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQKK30geG1sR2xvYmFsU3RhdGU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2xvYmFsU3RhdGVQdHIiPlR5cGVkZWYgPC9hPnhtbEdsb2JhbFN0YXRlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sR2xvYmFsU3RhdGUiPnhtbEdsb2JhbFN0YXRlPC9hPiAqIHhtbEdsb2JhbFN0YXRlUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERlcmVnaXN0ZXJOb2RlRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5TaWduYXR1cmUgZm9yIHRoZSBkZXJlZ2lzdHJhdGlvbiBjYWxsYmFjayBvZiBhIGRpc2NhcmRlZCBub2RlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jCShjb25zdCBjaGFyICogVVJJLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIsIDxici8+CQkJCQkJCSBpbnQgY29tcHJlc3Npb24pPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgdGhlIGZ1bmN0aW9uIGRvaW5nIHRoZSBsb29rdXAgZm9yIGEgc3VpdGFibGUgb3V0cHV0IG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIGFuIFVSSS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSB0byB3cml0ZSB0bzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2RlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gaW4gY2FzZSBvZiBzdWNjZXNzIG9yIE5VTEwgaWYgbm8gbWV0aG9kIHdhcyBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jCShjb25zdCBjaGFyICogVVJJLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgdGhlIGZ1bmN0aW9uIGRvaW5nIHRoZSBsb29rdXAgZm9yIGEgc3VpdGFibGUgaW5wdXQgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8gYW4gVVJJLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIHRvIHJlYWQgZnJvbTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVxdWVzdGVkIHNvdXJjZSBlbmNvZGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGluIGNhc2Ugb2Ygc3VjY2VzcyBvciBOVUxMIGlmIG5vIG1ldGhvZCB3YXMgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnaXN0ZXJOb2RlRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sUmVnaXN0ZXJOb2RlRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnaXN0ZXJOb2RlRnVuYwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgdGhlIHJlZ2lzdHJhdGlvbiBjYWxsYmFjayBvZiBhIGNyZWF0ZWQgbm9kZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JEZWZhdWx0U0FYSGFuZGxlciI+VmFyaWFibGUgPC9hPmRvY2JEZWZhdWx0U0FYSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+IGRvY2JEZWZhdWx0U0FYSGFuZGxlcjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJodG1sRGVmYXVsdFNBWEhhbmRsZXIiPlZhcmlhYmxlIDwvYT5odG1sRGVmYXVsdFNBWEhhbmRsZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPiBodG1sRGVmYXVsdFNBWEhhbmRsZXI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ib2xkWE1MV0Rjb21wYXRpYmlsaXR5Ij5WYXJpYWJsZSA8L2E+b2xkWE1MV0Rjb21wYXRpYmlsaXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50IG9sZFhNTFdEY29tcGF0aWJpbGl0eTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJBbGxvY1NjaGVtZSI+VmFyaWFibGUgPC9hPnhtbEJ1ZmZlckFsbG9jU2NoZW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4geG1sQnVmZmVyQWxsb2NTY2hlbWU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVmYXVsdEJ1ZmZlclNpemUiPlZhcmlhYmxlIDwvYT54bWxEZWZhdWx0QnVmZmVyU2l6ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludCB4bWxEZWZhdWx0QnVmZmVyU2l6ZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEZWZhdWx0U0FYSGFuZGxlciI+VmFyaWFibGUgPC9hPnhtbERlZmF1bHRTQVhIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT4geG1sRGVmYXVsdFNBWEhhbmRsZXI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVmYXVsdFNBWExvY2F0b3IiPlZhcmlhYmxlIDwvYT54bWxEZWZhdWx0U0FYTG9jYXRvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWExvY2F0b3IiPnhtbFNBWExvY2F0b3I8L2E+IHhtbERlZmF1bHRTQVhMb2NhdG9yOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlIj5WYXJpYWJsZSA8L2E+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4geG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIj5WYXJpYWJsZSA8L2E+eG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlIj5WYXJpYWJsZSA8L2E+eG1sRnJlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiB4bWxGcmVlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdlbmVyaWNFcnJvciI+VmFyaWFibGUgPC9hPnhtbEdlbmVyaWNFcnJvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPiB4bWxHZW5lcmljRXJyb3I7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2VuZXJpY0Vycm9yQ29udGV4dCI+VmFyaWFibGUgPC9hPnhtbEdlbmVyaWNFcnJvckNvbnRleHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICogeG1sR2VuZXJpY0Vycm9yQ29udGV4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSI+VmFyaWFibGUgPC9hPnhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50IHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEluZGVudFRyZWVPdXRwdXQiPlZhcmlhYmxlIDwvYT54bWxJbmRlbnRUcmVlT3V0cHV0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50IHhtbEluZGVudFRyZWVPdXRwdXQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZSI+VmFyaWFibGUgPC9hPnhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQgeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMYXN0RXJyb3IiPlZhcmlhYmxlIDwvYT54bWxMYXN0RXJyb3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3IiPnhtbEVycm9yPC9hPiB4bWxMYXN0RXJyb3I7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUiPlZhcmlhYmxlIDwvYT54bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludCB4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIj5WYXJpYWJsZSA8L2E+eG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludCB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1hbGxvYyI+VmFyaWFibGUgPC9hPnhtbE1hbGxvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4geG1sTWFsbG9jOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1hbGxvY0F0b21pYyI+VmFyaWFibGUgPC9hPnhtbE1hbGxvY0F0b21pYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4geG1sTWFsbG9jQXRvbWljOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1lbVN0cmR1cCI+VmFyaWFibGUgPC9hPnhtbE1lbVN0cmR1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4geG1sTWVtU3RyZHVwOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUiPlZhcmlhYmxlIDwvYT54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyRGVidWdFbnRpdGllcyI+VmFyaWFibGUgPC9hPnhtbFBhcnNlckRlYnVnRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQgeG1sUGFyc2VyRGVidWdFbnRpdGllczsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUiPlZhcmlhYmxlIDwvYT54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJWZXJzaW9uIj5WYXJpYWJsZSA8L2E+eG1sUGFyc2VyVmVyc2lvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKiB4bWxQYXJzZXJWZXJzaW9uOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlIj5WYXJpYWJsZSA8L2E+eG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQgeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVhbGxvYyI+VmFyaWFibGUgPC9hPnhtbFJlYWxsb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT4geG1sUmVhbGxvYzsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUiPlZhcmlhYmxlIDwvYT54bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPiB4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZU5vRW1wdHlUYWdzIj5WYXJpYWJsZSA8L2E+eG1sU2F2ZU5vRW1wdHlUYWdzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50IHhtbFNhdmVOb0VtcHR5VGFnczsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJ1Y3R1cmVkRXJyb3IiPlZhcmlhYmxlIDwvYT54bWxTdHJ1Y3R1cmVkRXJyb3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4geG1sU3RydWN0dXJlZEVycm9yOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQiPlZhcmlhYmxlIDwvYT54bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqIHhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlIj5WYXJpYWJsZSA8L2E+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50IHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUcmVlSW5kZW50U3RyaW5nIj5WYXJpYWJsZSA8L2E+eG1sVHJlZUluZGVudFN0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKiB4bWxUcmVlSW5kZW50U3RyaW5nOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENsZWFudXBHbG9iYWxzIi8+eG1sQ2xlYW51cEdsb2JhbHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENsZWFudXBHbG9iYWxzCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+QWRkaXRpb25hbCBjbGVhbnVwIGZvciBtdWx0aS10aHJlYWRpbmc8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0Ii8+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+CXhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdAkoPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+IGZ1bmMpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhIGNhbGxiYWNrIGZvciBub2RlIGRlc3RydWN0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgRGVyZWdpc3Rlck5vZGVGdW5jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGRlcmVnaXN0cmF0aW9uIGZ1bmN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSW5pdEdsb2JhbHMiLz54bWxJbml0R2xvYmFscyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSW5pdEdsb2JhbHMJCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+QWRkaXRpb25hbCBpbml0aWFsaXNhdGlvbiBmb3IgbXVsdGktdGhyZWFkaW5nPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZSIvPnhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlCSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxHbG9iYWxTdGF0ZVB0ciI+eG1sR2xvYmFsU3RhdGVQdHI8L2E+IGdzKTxici8+Cis8L3ByZT48cD54bWxJbml0aWFsaXplR2xvYmFsU3RhdGUoKSBpbml0aWFsaXplIGEgZ2xvYmFsIHN0YXRlIHdpdGggYWxsIHRoZSBkZWZhdWx0IHZhbHVlcyBvZiB0aGUgbGlicmFyeS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBuZXdseSBhbGxvY2F0ZWQgZ2xvYmFsIHN0YXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ii8+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAkoPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IGZ1bmMpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhIGNhbGxiYWNrIGZvciBVUkkgb3V0cHV0IGZpbGUgaGFuZGxpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZ1bmN0aW9uIHBvaW50ZXIgdG8gdGhlIG5ldyBPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvbGQgdmFsdWUgb2YgdGhlIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ii8+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IGZ1bmMpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhIGNhbGxiYWNrIGZvciBVUkkgaW5wdXQgZmlsZSBoYW5kbGluZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZnVuY3Rpb24gcG9pbnRlciB0byB0aGUgbmV3IFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb2xkIHZhbHVlIG9mIHRoZSByZWdpc3RyYXRpb24gZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdpc3Rlck5vZGVEZWZhdWx0Ii8+eG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZUZ1bmMiPnhtbFJlZ2lzdGVyTm9kZUZ1bmM8L2E+CXhtbFJlZ2lzdGVyTm9kZURlZmF1bHQJKDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZUZ1bmMiPnhtbFJlZ2lzdGVyTm9kZUZ1bmM8L2E+IGZ1bmMpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhIGNhbGxiYWNrIGZvciBub2RlIGNyZWF0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgUmVnaXN0ZXJOb2RlRnVuYzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9sZCB2YWx1ZSBvZiB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUiLz54bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+CXhtbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPiB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplIi8+eG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdCIvPnhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRnVuYyI+eG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9hPgl4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQJKDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRnVuYyI+eG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSIvPnhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlIi8+eG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZkluZGVudFRyZWVPdXRwdXQiLz54bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZkluZGVudFRyZWVPdXRwdXQJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUiLz54bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlIi8+eG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUiLz54bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCIvPnhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPgl4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQJKDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPiBmdW5jKTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMiLz54bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ii8+eG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CXhtbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IGZ1bmMpPGJyLz4KKzwvcHJlPjxwLz4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUiLz54bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZQkoaW50IHYpPGJyLz4KKzwvcHJlPjxwLz4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+djwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdCIvPnhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPgl4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0CSg8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZlNhdmVOb0VtcHR5VGFncyIvPnhtbFRockRlZlNhdmVOb0VtcHR5VGFncyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MJKGludCB2KTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMiLz54bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPiBoYW5kbGVyKTxici8+Cis8L3ByZT48cC8+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkLz48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyIvPnhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IGhhbmRsZXIpPGJyLz4KKzwvcHJlPjxwLz4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUiLz54bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlCShpbnQgdik8YnIvPgorPC9wcmU+PHAvPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nIi8+eG1sVGhyRGVmVHJlZUluZGVudFN0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgl4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nCShjb25zdCBjaGFyICogdik8YnIvPgorPC9wcmU+PHAvPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1oYXNoLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItaGFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1YTk5MTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItaGFzaC5odG1sCkBAIC0wLDAgKzEsMjE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPmhhc2g6IENoYWluZWQgaGFzaCB0YWJsZXM8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+aGFzaDwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPmhhc2ggLSBDaGFpbmVkIGhhc2ggdGFibGVzPC9wPgorICAgIDxwPlRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIGhhc2ggdGFibGUgc3VwcG9ydCB1c2VkIGluIHZhcmlvdXMgcGxhY2VzIGluIHRoZSBsaWJyYXJ5LiA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBCam9ybiBSZWVzZSAmbHQ7Ympvcm4ucmVlc2VAc3lzdGVtYXRpYy5kayZndDsgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0NBU1RfRlBUUiI+WE1MX0NBU1RfRlBUUjwvYT4oZnB0cik7Cit0eXBlZGVmIHN0cnVjdCBfeG1sSGFzaFRhYmxlIDxhIGhyZWY9IiN4bWxIYXNoVGFibGUiPnhtbEhhc2hUYWJsZTwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZSI+eG1sSGFzaFRhYmxlPC9hPiAqIDxhIGhyZWY9IiN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT47Cit2b2lkCTxhIGhyZWY9IiN4bWxIYXNoU2NhbkZ1bGwiPnhtbEhhc2hTY2FuRnVsbDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPiBmLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEhhc2hTY2FuIj54bWxIYXNoU2NhbjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hTY2FubmVyIj54bWxIYXNoU2Nhbm5lcjwvYT4gZiwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPgkJKHZvaWQgKiBwYXlsb2FkLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMpOworPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxIYXNoQ3JlYXRlRGljdCI+eG1sSGFzaENyZWF0ZURpY3Q8L2E+CShpbnQgc2l6ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTsKK2ludAk8YSBocmVmPSIjeG1sSGFzaEFkZEVudHJ5Ij54bWxIYXNoQWRkRW50cnk8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSB2b2lkICogdXNlcmRhdGEpOworaW50CTxhIGhyZWY9IiN4bWxIYXNoVXBkYXRlRW50cnkiPnhtbEhhc2hVcGRhdGVFbnRyeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTsKK3ZvaWQgKgk8YSBocmVmPSIjeG1sSGFzaFFMb29rdXAzIj54bWxIYXNoUUxvb2t1cDM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4MywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxIYXNoUUxvb2t1cDIiPnhtbEhhc2hRTG9va3VwMjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeDIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEhhc2hTY2FuMyI+eG1sSGFzaFNjYW4zPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+IGYsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+CQkJKHZvaWQgKiBwYXlsb2FkLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+CQkodm9pZCAqIHBheWxvYWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxIYXNoQ3JlYXRlIj54bWxIYXNoQ3JlYXRlPC9hPgkJKGludCBzaXplKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEhhc2hGcmVlIj54bWxIYXNoRnJlZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTsKK3ZvaWQgKgk8YSBocmVmPSIjeG1sSGFzaExvb2t1cCI+eG1sSGFzaExvb2t1cDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3ZvaWQgKgk8YSBocmVmPSIjeG1sSGFzaFFMb29rdXAiPnhtbEhhc2hRTG9va3VwPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7CitpbnQJPGEgaHJlZj0iI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSB2b2lkICogdXNlcmRhdGEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpOworaW50CTxhIGhyZWY9IiN4bWxIYXNoUmVtb3ZlRW50cnkyIj54bWxIYXNoUmVtb3ZlRW50cnkyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpOworaW50CTxhIGhyZWY9IiN4bWxIYXNoUmVtb3ZlRW50cnkzIj54bWxIYXNoUmVtb3ZlRW50cnkzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTsKKzxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPgk8YSBocmVmPSIjeG1sSGFzaENvcHkiPnhtbEhhc2hDb3B5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoQ29waWVyIj54bWxIYXNoQ29waWVyPC9hPiBmKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEhhc2hTY2FuRnVsbDMiPnhtbEhhc2hTY2FuRnVsbDM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+IGYsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpOworaW50CTxhIGhyZWY9IiN4bWxIYXNoVXBkYXRlRW50cnkzIj54bWxIYXNoVXBkYXRlRW50cnkzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzLCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik7Cit2b2lkICoJPGEgaHJlZj0iI3htbEhhc2hMb29rdXAzIj54bWxIYXNoTG9va3VwMzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxIYXNoTG9va3VwMiI+eG1sSGFzaExvb2t1cDI8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIpOworaW50CTxhIGhyZWY9IiN4bWxIYXNoUmVtb3ZlRW50cnkiPnhtbEhhc2hSZW1vdmVFbnRyeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpOwordHlwZWRlZiB2b2lkICogPGEgaHJlZj0iI3htbEhhc2hDb3BpZXIiPnhtbEhhc2hDb3BpZXI8L2E+CQkJKHZvaWQgKiBwYXlsb2FkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sSGFzaEFkZEVudHJ5MiI+eG1sSGFzaEFkZEVudHJ5MjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSk7CitpbnQJPGEgaHJlZj0iI3htbEhhc2hBZGRFbnRyeTMiPnhtbEhhc2hBZGRFbnRyeTM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxici8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhKTsKK2ludAk8YSBocmVmPSIjeG1sSGFzaFNpemUiPnhtbEhhc2hTaXplPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9DQVNUX0ZQVFIiPk1hY3JvIDwvYT5YTUxfQ0FTVF9GUFRSPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0NBU1RfRlBUUiI+WE1MX0NBU1RfRlBUUjwvYT4oZnB0cik7Cis8L3ByZT48cD5NYWNybyB0byBkbyBhIGNhc3RpbmcgZnJvbSBhbiBvYmplY3QgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgd2l0aG91dCBlbmNvdW50ZXJpbmcgYSB3YXJuaW5nIGZyb20gZ2NjICNkZWZpbmUgWE1MX0NBU1RfRlBUUihmcHRyKSAoKih2b2lkICoqKSgmYW1wO2ZwdHIpKSBUaGlzIG1hY3JvIHZpb2xhdGVkIElTTyBDIGFsaWFzaW5nIHJ1bGVzIChnY2M0IG9uIHMzOTAgYnJva2UpIHNvIGl0IGlzIGRpc2FibGVkIG5vdzwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYSBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaFRhYmxlIj5TdHJ1Y3R1cmUgPC9hPnhtbEhhc2hUYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sSGFzaFRhYmxlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxIYXNoVGFibGU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaFRhYmxlUHRyIj5UeXBlZGVmIDwvYT54bWxIYXNoVGFibGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGUiPnhtbEhhc2hUYWJsZTwvYT4gKiB4bWxIYXNoVGFibGVQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaENvcGllciIvPkZ1bmN0aW9uIHR5cGUgeG1sSGFzaENvcGllcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxIYXNoQ29waWVyCQkJKHZvaWQgKiBwYXlsb2FkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayB0byBjb3B5IGRhdGEgZnJvbSBhIGhhc2guPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXlsb2FkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGF0YSBpbiB0aGUgaGFzaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgYXNzb2NpYXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb3B5IG9mIHRoZSBkYXRhIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoRGVhbGxvY2F0b3IiLz5GdW5jdGlvbiB0eXBlIHhtbEhhc2hEZWFsbG9jYXRvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSGFzaERlYWxsb2NhdG9yCQkodm9pZCAqIHBheWxvYWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIHRvIGZyZWUgZGF0YSBmcm9tIGEgaGFzaC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBheWxvYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkYXRhIGluIHRoZSBoYXNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBhc3NvY2lhdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaFNjYW5uZXIiLz5GdW5jdGlvbiB0eXBlIHhtbEhhc2hTY2FubmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxIYXNoU2Nhbm5lcgkJCSh2b2lkICogcGF5bG9hZCwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q2FsbGJhY2sgd2hlbiBzY2FubmluZyBkYXRhIGluIGEgaGFzaCB3aXRoIHRoZSBzaW1wbGUgc2Nhbm5lci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBheWxvYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkYXRhIGluIHRoZSBoYXNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBzY2Fubm5lciBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBhc3NvY2lhdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaFNjYW5uZXJGdWxsIi8+RnVuY3Rpb24gdHlwZSB4bWxIYXNoU2Nhbm5lckZ1bGw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEhhc2hTY2FubmVyRnVsbAkJKHZvaWQgKiBwYXlsb2FkLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIHdoZW4gc2Nhbm5pbmcgZGF0YSBpbiBhIGhhc2ggd2l0aCB0aGUgZnVsbCBzY2FubmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGF5bG9hZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGEgaW4gdGhlIGhhc2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHNjYW5ubmVyIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIGFzc29jaWF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIG5hbWUgYXNzb2NpYXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0aGlyZCBuYW1lIGFzc29jaWF0ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoQWRkRW50cnkiLz54bWxIYXNoQWRkRW50cnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSGFzaEFkZEVudHJ5CQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSB2b2lkICogdXNlcmRhdGEpPGJyLz4KKzwvcHJlPjxwPkFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZSBAbmFtZS4gRHVwbGljYXRlIG5hbWVzIGdlbmVyYXRlIGVycm9ycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hBZGRFbnRyeTIiLz54bWxIYXNoQWRkRW50cnkyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hBZGRFbnRyeTIJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSk8YnIvPgorPC9wcmU+PHA+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZS4gRHVwbGljYXRlIHR1cGxlcyBnZW5lcmF0ZSBlcnJvcnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hBZGRFbnRyeTMiLz54bWxIYXNoQWRkRW50cnkzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hBZGRFbnRyeTMJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMywgPGJyLz4JCQkJCSB2b2lkICogdXNlcmRhdGEpPGJyLz4KKzwvcHJlPjxwPkFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZSB0dXBsZSAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKS4gRHVwbGljYXRlIGVudHJpZXMgZ2VuZXJhdGUgZXJyb3JzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJkYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIHRoZSBhZGRpdGlvbiBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaENvcHkiLz54bWxIYXNoQ29weSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPgl4bWxIYXNoQ29weQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoQ29waWVyIj54bWxIYXNoQ29waWVyPC9hPiBmKTxici8+Cis8L3ByZT48cD5TY2FuIHRoZSBoYXNoIEB0YWJsZSBhbmQgYXBwbGllZCBAZiB0byBlYWNoIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29waWVyIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyB0YWJsZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaENyZWF0ZSIvPnhtbEhhc2hDcmVhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JeG1sSGFzaENyZWF0ZQkJKGludCBzaXplKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgeG1sSGFzaFRhYmxlUHRyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdCwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hDcmVhdGVEaWN0Ii8+eG1sSGFzaENyZWF0ZURpY3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JeG1sSGFzaENyZWF0ZURpY3QJKGludCBzaXplLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gd2hpY2ggd2lsbCB1c2UgQGRpY3QgYXMgdGhlIGludGVybmFsIGRpY3Rpb25hcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRpY3Rpb25hcnkgdG8gdXNlIGZvciB0aGUgaGFzaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaEZyZWUiLz54bWxIYXNoRnJlZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSGFzaEZyZWUJCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTxici8+Cis8L3ByZT48cD5GcmVlIHRoZSBoYXNoIEB0YWJsZSBhbmQgaXRzIGNvbnRlbnRzLiBUaGUgdXNlcmRhdGEgaXMgZGVhbGxvY2F0ZWQgd2l0aCBAZiBpZiBwcm92aWRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hMb29rdXAiLz54bWxIYXNoTG9va3VwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbEhhc2hMb29rdXAJCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIEBuYW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hMb29rdXAyIi8+eG1sSGFzaExvb2t1cDIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSGFzaExvb2t1cDIJCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMik8YnIvPgorPC9wcmU+PHA+RmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSAoQG5hbWUsIEBuYW1lMikgdHVwbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoTG9va3VwMyIvPnhtbEhhc2hMb29rdXAzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbEhhc2hMb29rdXAzCQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzKTxici8+Cis8L3ByZT48cD5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSGFzaFFMb29rdXAiLz54bWxIYXNoUUxvb2t1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxIYXNoUUxvb2t1cAkJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+RmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSBRTmFtZSBAcHJlZml4OkBuYW1lL0BuYW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hRTG9va3VwMiIvPnhtbEhhc2hRTG9va3VwMiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxIYXNoUUxvb2t1cDIJCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeDIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyKTxici8+Cis8L3ByZT48cD5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIFFOYW1lcyB0dXBsZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgcHJlZml4IG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoUUxvb2t1cDMiLz54bWxIYXNoUUxvb2t1cDMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSGFzaFFMb29rdXAzCQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4MywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMpPGJyLz4KKzwvcHJlPjxwPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykgdHVwbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4MjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBwcmVmaXggb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0aGlyZCBwcmVmaXggb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoUmVtb3ZlRW50cnkiLz54bWxIYXNoUmVtb3ZlRW50cnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSGFzaFJlbW92ZUVudHJ5CQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTxici8+Cis8L3ByZT48cD5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIEBuYW1lIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgaGFzaCBAdGFibGUuIEV4aXN0aW5nIHVzZXJkYXRhIGZvciB0aGlzIHR1cGxlIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlbW92ZWQgaXRlbSAoaWYgYW55KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgcmVtb3ZhbCBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3Igbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hSZW1vdmVFbnRyeTIiLz54bWxIYXNoUmVtb3ZlRW50cnkyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hSZW1vdmVFbnRyeTIJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTxici8+Cis8L3ByZT48cD5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZSBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIGhhc2ggQHRhYmxlLiBFeGlzdGluZyB1c2VyZGF0YSBmb3IgdGhpcyB0dXBsZSB3aWxsIGJlIHJlbW92ZWQgYW5kIGZyZWVkIHdpdGggQGYuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlbW92ZWQgaXRlbSAoaWYgYW55KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgcmVtb3ZhbCBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3Igbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hSZW1vdmVFbnRyeTMiLz54bWxIYXNoUmVtb3ZlRW50cnkzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hSZW1vdmVFbnRyeTMJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8YnIvPgorPC9wcmU+PHA+RmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKSB0dXBsZSBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIGhhc2ggQHRhYmxlLiBFeGlzdGluZyB1c2VyZGF0YSBmb3IgdGhpcyB0dXBsZSB3aWxsIGJlIHJlbW92ZWQgYW5kIGZyZWVkIHdpdGggQGYuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZW1vdmVkIGl0ZW0gKGlmIGFueSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIHJlbW92YWwgc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yIG9yIG5vdCBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoU2NhbiIvPnhtbEhhc2hTY2FuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxIYXNoU2NhbgkJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXIiPnhtbEhhc2hTY2FubmVyPC9hPiBmLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTxici8+Cis8L3ByZT48cD5TY2FuIHRoZSBoYXNoIEB0YWJsZSBhbmQgYXBwbGllZCBAZiB0byBlYWNoIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGRhdGEgcGFzc2VkIHRvIGY8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoU2NhbjMiLz54bWxIYXNoU2NhbjMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEhhc2hTY2FuMwkJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+IGYsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPlNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUgbWF0Y2hpbmcgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykgdHVwbGUuIElmIG9uZSBvZiB0aGUgbmFtZXMgaXMgbnVsbCwgdGhlIGNvbXBhcmlzb24gaXMgY29uc2lkZXJlZCB0byBtYXRjaC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGRhdGEgcGFzc2VkIHRvIGY8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoU2NhbkZ1bGwiLz54bWxIYXNoU2NhbkZ1bGwgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEhhc2hTY2FuRnVsbAkJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+IGYsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPlNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2FubmVyIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgZGF0YSBwYXNzZWQgdG8gZjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hTY2FuRnVsbDMiLz54bWxIYXNoU2NhbkZ1bGwzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxIYXNoU2NhbkZ1bGwzCQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+IGYsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPlNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUgbWF0Y2hpbmcgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykgdHVwbGUuIElmIG9uZSBvZiB0aGUgbmFtZXMgaXMgbnVsbCwgdGhlIGNvbXBhcmlzb24gaXMgY29uc2lkZXJlZCB0byBtYXRjaC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGRhdGEgcGFzc2VkIHRvIGY8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoU2l6ZSIvPnhtbEhhc2hTaXplICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hTaXplCQkJKDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSk8YnIvPgorPC9wcmU+PHA+UXVlcnkgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbnN0YWxsZWQgaW4gdGhlIGhhc2ggQHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBoYXNoIHRhYmxlIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNoVXBkYXRlRW50cnkiLz54bWxIYXNoVXBkYXRlRW50cnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSGFzaFVwZGF0ZUVudHJ5CQkoPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8YnIvPgorPC9wcmU+PHA+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIEBuYW1lLiBFeGlzdGluZyBlbnRyeSBmb3IgdGhpcyBAbmFtZSB3aWxsIGJlIHJlbW92ZWQgYW5kIGZyZWVkIHdpdGggQGYgaWYgZm91bmQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVwbGFjZWQgaXRlbSAoaWYgYW55KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hVcGRhdGVFbnRyeTIiLz54bWxIYXNoVXBkYXRlRW50cnkyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hVcGRhdGVFbnRyeTIJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8YnIvPgorPC9wcmU+PHA+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZS4gRXhpc3RpbmcgZW50cnkgZm9yIHRoaXMgdHVwbGUgd2lsbCBiZSByZW1vdmVkIGFuZCBmcmVlZCB3aXRoIEBmIGlmIGZvdW5kLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVwbGFjZWQgaXRlbSAoaWYgYW55KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc2hVcGRhdGVFbnRyeTMiLz54bWxIYXNoVXBkYXRlRW50cnkzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hVcGRhdGVFbnRyeTMJCSg8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMywgPGJyLz4JCQkJCSB2b2lkICogdXNlcmRhdGEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpPGJyLz4KKzwvcHJlPjxwPkFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZSB0dXBsZSAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKS4gRXhpc3RpbmcgZW50cnkgZm9yIHRoaXMgdHVwbGUgd2lsbCBiZSByZW1vdmVkIGFuZCBmcmVlZCB3aXRoIEBmIGlmIGZvdW5kLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJkYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlcGxhY2VkIGl0ZW0gKGlmIGFueSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1saXN0Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItbGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhNGZhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItbGlzdC5odG1sCkBAIC0wLDAgKzEsMjI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPmxpc3Q6IGxpc3RzIGludGVyZmFjZXM8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItbmFub2Z0cC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+bGlzdDwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPmxpc3QgLSBsaXN0cyBpbnRlcmZhY2VzPC9wPgorICAgIDxwPnRoaXMgbW9kdWxlIGltcGxlbWVudCB0aGUgbGlzdCBzdXBwb3J0IHVzZWQgaW4gdmFyaW91cyBwbGFjZSBpbiB0aGUgbGlicmFyeS4gPC9wPgorICAgIDxwPkF1dGhvcihzKTogR2FyeSBQZW5uaW5ndG9uICZsdDtHYXJ5LlBlbm5pbmd0b25AdWsuc3VuLmNvbSZndDsgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+dHlwZWRlZiBzdHJ1Y3QgX3htbExpbmsgPGEgaHJlZj0iI3htbExpbmsiPnhtbExpbms8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaW5rIj54bWxMaW5rPC9hPiAqIDxhIGhyZWY9IiN4bWxMaW5rUHRyIj54bWxMaW5rUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxMaXN0IDxhIGhyZWY9IiN4bWxMaXN0Ij54bWxMaXN0PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdCI+eG1sTGlzdDwvYT4gKiA8YSBocmVmPSIjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT47CitpbnQJPGEgaHJlZj0iI3htbExpc3RJbnNlcnQiPnhtbExpc3RJbnNlcnQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpOworaW50CTxhIGhyZWY9IiN4bWxMaXN0RW1wdHkiPnhtbExpc3RFbXB0eTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxMaXN0U29ydCI+eG1sTGlzdFNvcnQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxMaXN0RGVhbGxvY2F0b3IiPnhtbExpc3REZWFsbG9jYXRvcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaW5rUHRyIj54bWxMaW5rUHRyPC9hPiBsayk7Cit2b2lkCTxhIGhyZWY9IiN4bWxMaXN0TWVyZ2UiPnhtbExpc3RNZXJnZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbDEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbDIpOworPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4JPGEgaHJlZj0iI3htbExpc3RDcmVhdGUiPnhtbExpc3RDcmVhdGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdERlYWxsb2NhdG9yIj54bWxMaXN0RGVhbGxvY2F0b3I8L2E+IGRlYWxsb2NhdG9yLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3REYXRhQ29tcGFyZSI+eG1sTGlzdERhdGFDb21wYXJlPC9hPiBjb21wYXJlKTsKKzxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxMaXN0RHVwIj54bWxMaXN0RHVwPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IG9sZCk7CitpbnQJPGEgaHJlZj0iI3htbExpc3RSZW1vdmVMYXN0Ij54bWxMaXN0UmVtb3ZlTGFzdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKK3ZvaWQJPGEgaHJlZj0iI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0V2Fsa2VyIj54bWxMaXN0V2Fsa2VyPC9hPiB3YWxrZXIsIDxici8+CQkJCQkgY29uc3Qgdm9pZCAqIHVzZXIpOworaW50CTxhIGhyZWY9IiN4bWxMaXN0UmVtb3ZlQWxsIj54bWxMaXN0UmVtb3ZlQWxsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpOworaW50CTxhIGhyZWY9IiN4bWxMaXN0Q29weSI+eG1sTGlzdENvcHk8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBvbGQpOwordm9pZAk8YSBocmVmPSIjeG1sTGlzdFBvcEZyb250Ij54bWxMaXN0UG9wRnJvbnQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxMaXN0U2VhcmNoIj54bWxMaXN0U2VhcmNoPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKK3R5cGVkZWYgaW50IDxhIGhyZWY9IiN4bWxMaXN0V2Fsa2VyIj54bWxMaXN0V2Fsa2VyPC9hPgkJCShjb25zdCB2b2lkICogZGF0YSwgPGJyLz4JCQkJCSBjb25zdCB2b2lkICogdXNlcik7CitpbnQJPGEgaHJlZj0iI3htbExpc3RSZW1vdmVGaXJzdCI+eG1sTGlzdFJlbW92ZUZpcnN0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpOwordm9pZAk8YSBocmVmPSIjeG1sTGlzdFJldmVyc2VXYWxrIj54bWxMaXN0UmV2ZXJzZVdhbGs8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0V2Fsa2VyIj54bWxMaXN0V2Fsa2VyPC9hPiB3YWxrZXIsIDxici8+CQkJCQkgY29uc3Qgdm9pZCAqIHVzZXIpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxMaW5rR2V0RGF0YSI+eG1sTGlua0dldERhdGE8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+IGxrKTsKK3ZvaWQJPGEgaHJlZj0iI3htbExpc3RDbGVhciI+eG1sTGlzdENsZWFyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTsKK2ludAk8YSBocmVmPSIjeG1sTGlzdEFwcGVuZCI+eG1sTGlzdEFwcGVuZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxMaXN0UmV2ZXJzZSI+eG1sTGlzdFJldmVyc2U8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpOwordHlwZWRlZiBpbnQgPGEgaHJlZj0iI3htbExpc3REYXRhQ29tcGFyZSI+eG1sTGlzdERhdGFDb21wYXJlPC9hPgkJKGNvbnN0IHZvaWQgKiBkYXRhMCwgPGJyLz4JCQkJCSBjb25zdCB2b2lkICogZGF0YTEpOworaW50CTxhIGhyZWY9IiN4bWxMaXN0U2l6ZSI+eG1sTGlzdFNpemU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpOworaW50CTxhIGhyZWY9IiN4bWxMaXN0UHVzaEZyb250Ij54bWxMaXN0UHVzaEZyb250PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpOworPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlua1B0ciI+eG1sTGlua1B0cjwvYT4JPGEgaHJlZj0iI3htbExpc3RFbmQiPnhtbExpc3RFbmQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxMaXN0UG9wQmFjayI+eG1sTGlzdFBvcEJhY2s8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxMaXN0UmV2ZXJzZVNlYXJjaCI+eG1sTGlzdFJldmVyc2VTZWFyY2g8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk7CitpbnQJPGEgaHJlZj0iI3htbExpc3RQdXNoQmFjayI+eG1sTGlzdFB1c2hCYWNrPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKKzxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+CTxhIGhyZWY9IiN4bWxMaXN0RnJvbnQiPnhtbExpc3RGcm9udDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTsKK3ZvaWQJPGEgaHJlZj0iI3htbExpc3REZWxldGUiPnhtbExpc3REZWxldGU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpbmsiPlN0cnVjdHVyZSA8L2E+eG1sTGluazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sTGluayB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sTGluazsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaW5rUHRyIj5UeXBlZGVmIDwvYT54bWxMaW5rUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGluayI+eG1sTGluazwvYT4gKiB4bWxMaW5rUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3QiPlN0cnVjdHVyZSA8L2E+eG1sTGlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sTGlzdCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sTGlzdDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0UHRyIj5UeXBlZGVmIDwvYT54bWxMaXN0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdCI+eG1sTGlzdDwvYT4gKiB4bWxMaXN0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3REYXRhQ29tcGFyZSIvPkZ1bmN0aW9uIHR5cGUgeG1sTGlzdERhdGFDb21wYXJlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3REYXRhQ29tcGFyZQkJKGNvbnN0IHZvaWQgKiBkYXRhMCwgPGJyLz4JCQkJCSBjb25zdCB2b2lkICogZGF0YTEpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIGZ1bmN0aW9uIHVzZWQgdG8gY29tcGFyZSAyIGRhdGEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhMDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGExPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaXMgZXF1YWxpdHksIC0xIG9yIDEgb3RoZXJ3aXNlIGRlcGVuZGluZyBvbiB0aGUgb3JkZXJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdERlYWxsb2NhdG9yIi8+RnVuY3Rpb24gdHlwZSB4bWxMaXN0RGVhbGxvY2F0b3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3REZWFsbG9jYXRvcgkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+IGxrKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgZGF0YSBmcm9tIGEgbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxrPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGF0YSB0byBkZWFsbG9jYXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdFdhbGtlciIvPkZ1bmN0aW9uIHR5cGUgeG1sTGlzdFdhbGtlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxMaXN0V2Fsa2VyCQkJKGNvbnN0IHZvaWQgKiBkYXRhLCA8YnIvPgkJCQkJIGNvbnN0IHZvaWQgKiB1c2VyKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHdoZW4gd2Fsa2luZyBhIGxpc3Qgd2l0aCB4bWxMaXN0V2FsaygpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGEgZm91bmQgaW4gdGhlIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHVzZXIgcHJvdmlkZWQgZGF0YSB0byB0aGUgd2Fsa2VyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIHRvIHN0b3Agd2Fsa2luZyB0aGUgbGlzdCwgMSBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlua0dldERhdGEiLz54bWxMaW5rR2V0RGF0YSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxMaW5rR2V0RGF0YQkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaW5rUHRyIj54bWxMaW5rUHRyPC9hPiBsayk8YnIvPgorPC9wcmU+PHA+U2VlIFJldHVybnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaW5rPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGRhdGEgcmVmZXJlbmNlZCBmcm9tIHRoaXMgbGluazwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3RBcHBlbmQiLz54bWxMaXN0QXBwZW5kICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RBcHBlbmQJCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+SW5zZXJ0IGRhdGEgaW4gdGhlIG9yZGVyZWQgbGlzdCBhdCB0aGUgZW5kIGZvciB0aGlzIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgMSBpbiBjYXNlIG9mIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0Q2xlYXIiLz54bWxMaXN0Q2xlYXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RDbGVhcgkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxici8+Cis8L3ByZT48cD5SZW1vdmUgdGhlIGFsbCBkYXRhIGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0Q29weSIvPnhtbExpc3RDb3B5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RDb3B5CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBvbGQpPGJyLz4KKzwvcHJlPjxwPk1vdmUgYWxsIHRoZSBlbGVtZW50IGZyb20gdGhlIG9sZCBsaXN0IGluIHRoZSBuZXcgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9sZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9sZCBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyAxIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0Q3JlYXRlIi8+eG1sTGlzdENyZWF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+CXhtbExpc3RDcmVhdGUJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0RGVhbGxvY2F0b3IiPnhtbExpc3REZWFsbG9jYXRvcjwvYT4gZGVhbGxvY2F0b3IsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdERhdGFDb21wYXJlIj54bWxMaXN0RGF0YUNvbXBhcmU8L2E+IGNvbXBhcmUpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZWFsbG9jYXRvcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3B0aW9uYWwgZGVhbGxvY2F0b3IgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXBhcmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wdGlvbmFsIGNvbXBhcmlzb24gZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgbGlzdCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0RGVsZXRlIi8+eG1sTGlzdERlbGV0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTGlzdERlbGV0ZQkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxici8+Cis8L3ByZT48cD5EZWxldGVzIHRoZSBsaXN0IGFuZCBpdHMgYXNzb2NpYXRlZCBkYXRhPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0RHVwIi8+eG1sTGlzdER1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+CXhtbExpc3REdXAJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBvbGQpPGJyLz4KKzwvcHJlPjxwPkR1cGxpY2F0ZSB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b2xkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgY29weSBvZiB0aGUgbGlzdCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0RW1wdHkiLz54bWxMaXN0RW1wdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTGlzdEVtcHR5CQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPGJyLz4KKzwvcHJlPjxwPklzIHRoZSBsaXN0IGVtcHR5ID88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgbGlzdCBpcyBlbXB0eSwgMCBpZiBub3QgZW1wdHkgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0RW5kIi8+eG1sTGlzdEVuZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+CXhtbExpc3RFbmQJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0LCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdEZyb250Ii8+eG1sTGlzdEZyb250ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlua1B0ciI+eG1sTGlua1B0cjwvYT4JeG1sTGlzdEZyb250CQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8YnIvPgorPC9wcmU+PHA+R2V0IHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0LCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdEluc2VydCIvPnhtbExpc3RJbnNlcnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTGlzdEluc2VydAkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTxici8+Cis8L3ByZT48cD5JbnNlcnQgZGF0YSBpbiB0aGUgb3JkZXJlZCBsaXN0IGF0IHRoZSBiZWdpbm5pbmcgZm9yIHRoaXMgdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAxIGluIGNhc2Ugb2YgZmFpbHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3RNZXJnZSIvPnhtbExpc3RNZXJnZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTGlzdE1lcmdlCQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwyKTxici8+Cis8L3ByZT48cD5pbmNsdWRlIGFsbCB0aGUgZWxlbWVudHMgb2YgdGhlIHNlY29uZCBsaXN0IGluIHRoZSBmaXJzdCBvbmUgYW5kIGNsZWFyIHRoZSBzZWNvbmQgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcmlnaW5hbCBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdFBvcEJhY2siLz54bWxMaXN0UG9wQmFjayAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTGlzdFBvcEJhY2sJCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8YnIvPgorPC9wcmU+PHA+UmVtb3ZlcyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0UG9wRnJvbnQiLz54bWxMaXN0UG9wRnJvbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RQb3BGcm9udAkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxici8+Cis8L3ByZT48cD5SZW1vdmVzIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0UHVzaEJhY2siLz54bWxMaXN0UHVzaEJhY2sgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTGlzdFB1c2hCYWNrCQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPmFkZCB0aGUgbmV3IGRhdGEgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uZXcgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBzdWNjZXNzZnVsLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3RQdXNoRnJvbnQiLz54bWxMaXN0UHVzaEZyb250ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RQdXNoRnJvbnQJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTxici8+Cis8L3ByZT48cD5hZGQgdGhlIG5ldyBkYXRhIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmV3IGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgc3VjY2Vzc2Z1bCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0UmVtb3ZlQWxsIi8+eG1sTGlzdFJlbW92ZUFsbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxMaXN0UmVtb3ZlQWxsCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+UmVtb3ZlIHRoZSBhbGwgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxpc3QgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBkZWFsbG9jYXRpb24sIG9yIDAgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdFJlbW92ZUZpcnN0Ii8+eG1sTGlzdFJlbW92ZUZpcnN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RSZW1vdmVGaXJzdAkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgZmlyc3QgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxpc3QgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBhIGRlYWxsb2NhdGlvbiBvY2N1cmVkLCBvciAwIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3RSZW1vdmVMYXN0Ii8+eG1sTGlzdFJlbW92ZUxhc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTGlzdFJlbW92ZUxhc3QJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTxici8+Cis8L3ByZT48cD5SZW1vdmUgdGhlIGxhc3QgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxpc3QgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBhIGRlYWxsb2NhdGlvbiBvY2N1cmVkLCBvciAwIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3RSZXZlcnNlIi8+eG1sTGlzdFJldmVyc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RSZXZlcnNlCQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPGJyLz4KKzwvcHJlPjxwPlJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdFJldmVyc2VTZWFyY2giLz54bWxMaXN0UmV2ZXJzZVNlYXJjaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxMaXN0UmV2ZXJzZVNlYXJjaAkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCB0aGUgbGlzdCBpbiByZXZlcnNlIG9yZGVyIGZvciBhbiBleGlzdGluZyB2YWx1ZSBvZiBAZGF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlYXJjaCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gQGRhdGEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdFJldmVyc2VXYWxrIi8+eG1sTGlzdFJldmVyc2VXYWxrICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMaXN0UmV2ZXJzZVdhbGsJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+IHdhbGtlciwgPGJyLz4JCQkJCSBjb25zdCB2b2lkICogdXNlcik8YnIvPgorPC9wcmU+PHA+V2FsayBhbGwgdGhlIGVsZW1lbnQgb2YgdGhlIGxpc3QgaW4gcmV2ZXJzZSBvcmRlciBhbmQgYXBwbHkgdGhlIHdhbGtlciBmdW5jdGlvbiB0byBpdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53YWxrZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJvY2Vzc2luZyBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB1c2VyIHBhcmFtZXRlciBwYXNzZWQgdG8gdGhlIHdhbGtlciBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3RTZWFyY2giLz54bWxMaXN0U2VhcmNoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbExpc3RTZWFyY2gJCQkoPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBsaXN0IGZvciBhbiBleGlzdGluZyB2YWx1ZSBvZiBAZGF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlYXJjaCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gQGRhdGEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGlzdFNpemUiLz54bWxMaXN0U2l6ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxMaXN0U2l6ZQkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxici8+Cis8L3ByZT48cD5HZXQgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsaXN0IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMaXN0U29ydCIvPnhtbExpc3RTb3J0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMaXN0U29ydAkJCSg8YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxici8+Cis8L3ByZT48cD5Tb3J0IGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExpc3RXYWxrIi8+eG1sTGlzdFdhbGsgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RXYWxrCQkJKDxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFdhbGtlciI+eG1sTGlzdFdhbGtlcjwvYT4gd2Fsa2VyLCA8YnIvPgkJCQkJIGNvbnN0IHZvaWQgKiB1c2VyKTxici8+Cis8L3ByZT48cD5XYWxrIGFsbCB0aGUgZWxlbWVudCBvZiB0aGUgZmlyc3QgZnJvbSBmaXJzdCB0byBsYXN0IGFuZCBhcHBseSB0aGUgd2Fsa2VyIGZ1bmN0aW9uIHRvIGl0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndhbGtlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwcm9jZXNzaW5nIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHVzZXIgcGFyYW1ldGVyIHBhc3NlZCB0byB0aGUgd2Fsa2VyIGZ1bmN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItbmFub2Z0cC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLW5hbm9mdHAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzkzNzBlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLW5hbm9mdHAuaHRtbApAQCAtMCwwICsxLDE3NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5uYW5vZnRwOiBtaW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbjwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi1uYW5vaHR0cC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+bmFub2Z0cDwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPm5hbm9mdHAgLSBtaW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbjwvcD4KKyAgICA8cD5taW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbiBhbGxvd2luZyB0byBmZXRjaCByZXNvdXJjZXMgbGlrZSBleHRlcm5hbCBzdWJzZXQuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj5pbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBRdWl0Ij54bWxOYW5vRlRQUXVpdDwvYT4JCQkodm9pZCAqIGN0eCk7CitpbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBDbG9zZSI+eG1sTmFub0ZUUENsb3NlPC9hPgkJCSh2b2lkICogY3R4KTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+CQkJKHZvaWQgKiB1c2VyRGF0YSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGF0dHJpYiwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogb3duZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGdyb3VwLCA8YnIvPgkJCQkJIHVuc2lnbmVkIGxvbmcgc2l6ZSwgPGJyLz4JCQkJCSBpbnQgbGlua3MsIDxici8+CQkJCQkgaW50IHllYXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1vbnRoLCA8YnIvPgkJCQkJIGludCBkYXksIDxici8+CQkJCQkgaW50IGhvdXIsIDxici8+CQkJCQkgaW50IG1pbnV0ZSk7CitpbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24iPnhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb248L2E+CSh2b2lkICogY3R4KTsKK3ZvaWQJPGEgaHJlZj0iI3htbE5hbm9GVFBQcm94eSI+eG1sTmFub0ZUUFByb3h5PC9hPgkJCShjb25zdCBjaGFyICogaG9zdCwgPGJyLz4JCQkJCSBpbnQgcG9ydCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogdXNlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogcGFzc3dkLCA8YnIvPgkJCQkJIGludCB0eXBlKTsKK2ludAk8YSBocmVmPSIjeG1sTmFub0ZUUFVwZGF0ZVVSTCI+eG1sTmFub0ZUUFVwZGF0ZVVSTDwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwpOworaW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbiI+eG1sTmFub0ZUUEdldENvbm5lY3Rpb248L2E+CQkodm9pZCAqIGN0eCk7CitpbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBEZWxlIj54bWxOYW5vRlRQRGVsZTwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSk7Cit2b2lkICoJPGEgaHJlZj0iI3htbE5hbm9GVFBOZXdDdHh0Ij54bWxOYW5vRlRQTmV3Q3R4dDwvYT4JCShjb25zdCBjaGFyICogVVJMKTsKK2ludAk8YSBocmVmPSIjeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UiPnhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlPC9hPgkJKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjeG1sTmFub0ZUUFNjYW5Qcm94eSI+eG1sTmFub0ZUUFNjYW5Qcm94eTwvYT4JCShjb25zdCBjaGFyICogVVJMKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjZnRwRGF0YUNhbGxiYWNrIj5mdHBEYXRhQ2FsbGJhY2s8L2E+CQkJKHZvaWQgKiB1c2VyRGF0YSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZGF0YSwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sTmFub0ZUUEdldFJlc3BvbnNlIj54bWxOYW5vRlRQR2V0UmVzcG9uc2U8L2E+CQkodm9pZCAqIGN0eCk7CitpbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBDd2QiPnhtbE5hbm9GVFBDd2Q8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGRpcmVjdG9yeSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxOYW5vRlRQSW5pdCI+eG1sTmFub0ZUUEluaXQ8L2E+CQkJKHZvaWQpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxOYW5vRlRQQ29ubmVjdFRvIj54bWxOYW5vRlRQQ29ubmVjdFRvPC9hPgkJKGNvbnN0IGNoYXIgKiBzZXJ2ZXIsIDxici8+CQkJCQkgaW50IHBvcnQpOworaW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQTGlzdCI+eG1sTmFub0ZUUExpc3Q8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+IGNhbGxiYWNrLCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxOYW5vRlRQT3BlbiI+eG1sTmFub0ZUUE9wZW48L2E+CQkJKGNvbnN0IGNoYXIgKiBVUkwpOworaW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQQ29ubmVjdCI+eG1sTmFub0ZUUENvbm5lY3Q8L2E+CQkodm9pZCAqIGN0eCk7CitpbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBHZXRTb2NrZXQiPnhtbE5hbm9GVFBHZXRTb2NrZXQ8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQR2V0Ij54bWxOYW5vRlRQR2V0PC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItbmFub2Z0cC5odG1sI2Z0cERhdGFDYWxsYmFjayI+ZnRwRGF0YUNhbGxiYWNrPC9hPiBjYWxsYmFjaywgPGJyLz4JCQkJCSB2b2lkICogdXNlckRhdGEsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sTmFub0ZUUFJlYWQiPnhtbE5hbm9GVFBSZWFkPC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIHZvaWQgKiBkZXN0LCA8YnIvPgkJCQkJIGludCBsZW4pOwordm9pZAk8YSBocmVmPSIjeG1sTmFub0ZUUEZyZWVDdHh0Ij54bWxOYW5vRlRQRnJlZUN0eHQ8L2E+CQkodm9pZCAqIGN0eCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxOYW5vRlRQQ2xlYW51cCI+eG1sTmFub0ZUUENsZWFudXA8L2E+CQkodm9pZCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZnRwRGF0YUNhbGxiYWNrIi8+RnVuY3Rpb24gdHlwZSBmdHBEYXRhQ2FsbGJhY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWZ0cERhdGFDYWxsYmFjawkJCSh2b2lkICogdXNlckRhdGEsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGRhdGEsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+QSBjYWxsYmFjayBmb3IgdGhlIDxhIGhyZWY9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXQiPnhtbE5hbm9GVFBHZXQ8L2E+IGNvbW1hbmQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyRGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgcHJvdmlkZWQgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGEgcmVjZWl2ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aXRzIHNpemUgaW4gYnl0ZXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJmdHBMaXN0Q2FsbGJhY2siLz5GdW5jdGlvbiB0eXBlIGZ0cExpc3RDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZnRwTGlzdENhbGxiYWNrCQkJKHZvaWQgKiB1c2VyRGF0YSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGF0dHJpYiwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogb3duZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGdyb3VwLCA8YnIvPgkJCQkJIHVuc2lnbmVkIGxvbmcgc2l6ZSwgPGJyLz4JCQkJCSBpbnQgbGlua3MsIDxici8+CQkJCQkgaW50IHllYXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1vbnRoLCA8YnIvPgkJCQkJIGludCBkYXksIDxici8+CQkJCQkgaW50IGhvdXIsIDxici8+CQkJCQkgaW50IG1pbnV0ZSk8YnIvPgorPC9wcmU+PHA+QSBjYWxsYmFjayBmb3IgdGhlIDxhIGhyZWY9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBMaXN0Ij54bWxOYW5vRlRQTGlzdDwvYT4gY29tbWFuZC4gTm90ZSB0aGF0IG9ubHkgb25lIG9mIHllYXIgYW5kIGRheTptaW51dGUgYXJlIHNwZWNpZmllZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIHByb3ZpZGVkIGRhdGEgZm9yIHRoZSBjYWxsYmFjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgKGluY2x1ZGluZyAiLSZndDsiIHdoZW4gbGlua3MgYXJlIHNob3duKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cmliPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vd25lcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG93bmVyIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Z3JvdXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBncm91cCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIHNpemU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbmtzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGluayBjb3VudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+eWVhcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHllYXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vbnRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbW9udGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRheTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aG91cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhvdXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1pbnV0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1pbnV0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlIi8+eG1sTmFub0ZUUENoZWNrUmVzcG9uc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGVyZSBpcyBhIHJlc3BvbnNlIGZyb20gdGhlIEZUUCBzZXJ2ZXIgYWZ0ZXIgYSBjb21tYW5kLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBGVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvZGUgbnVtYmVyLCBvciAwPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUENsZWFudXAiLz54bWxOYW5vRlRQQ2xlYW51cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmFub0ZUUENsZWFudXAJCSh2b2lkKTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBGVFAgcHJvdG9jb2wgbGF5ZXIuIFRoaXMgY2xlYW51cCBwcm94eSBpbmZvcm1hdGlvbnMuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBDbG9zZSIvPnhtbE5hbm9GVFBDbG9zZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQQ2xvc2UJCQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+Q2xvc2UgdGhlIGNvbm5lY3Rpb24gYW5kIGJvdGggY29udHJvbCBhbmQgdHJhbnNwb3J0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbmNhc2Ugb2YgZXJyb3IsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbiIvPnhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbgkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+Q2xvc2UgdGhlIGRhdGEgY29ubmVjdGlvbiBmcm9tIHRoZSBzZXJ2ZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQQ29ubmVjdCIvPnhtbE5hbm9GVFBDb25uZWN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBDb25uZWN0CQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+VHJpZXMgdG8gb3BlbiBhIGNvbnRyb2wgY29ubmVjdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBGVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQQ29ubmVjdFRvIi8+eG1sTmFub0ZUUENvbm5lY3RUbyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxOYW5vRlRQQ29ubmVjdFRvCQkoY29uc3QgY2hhciAqIHNlcnZlciwgPGJyLz4JCQkJCSBpbnQgcG9ydCk8YnIvPgorPC9wcmU+PHA+VHJpZXMgdG8gb3BlbiBhIGNvbnRyb2wgY29ubmVjdGlvbiB0byB0aGUgZ2l2ZW4gc2VydmVyL3BvcnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcnZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIHNlcnZlciBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wb3J0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcG9ydCAodXNlIDIxIGlmIDApPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBmVFAgY29udGV4dCBvciBOVUxMIGlmIGl0IGZhaWxlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBDd2QiLz54bWxOYW5vRlRQQ3dkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBDd2QJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZGlyZWN0b3J5KTxici8+Cis8L3ByZT48cD5UcmllcyB0byBjaGFuZ2UgdGhlIHJlbW90ZSBkaXJlY3Rvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpcmVjdG9yeTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkaXJlY3Rvcnkgb24gdGhlIHNlcnZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW5jYXNlIG9mIGVycm9yLCAxIGlmIENXRCB3b3JrZWQsIDAgaWYgaXQgZmFpbGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUERlbGUiLz54bWxOYW5vRlRQRGVsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQRGVsZQkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlKTxici8+Cis8L3ByZT48cD5UcmllcyB0byBkZWxldGUgYW4gaXRlbSAoZmlsZSBvciBkaXJlY3RvcnkpIGZyb20gc2VydmVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgb3IgZGlyZWN0b3J5IG9uIHRoZSBzZXJ2ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMSBpZiBERUxFIHdvcmtlZCwgMCBpZiBpdCBmYWlsZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQRnJlZUN0eHQiLz54bWxOYW5vRlRQRnJlZUN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5hbm9GVFBGcmVlQ3R4dAkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkZyZWVzIHRoZSBjb250ZXh0IGFmdGVyIGNsb3NpbmcgdGhlIGNvbm5lY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUEdldCIvPnhtbE5hbm9GVFBHZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0ZUUEdldAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItbmFub2Z0cC5odG1sI2Z0cERhdGFDYWxsYmFjayI+ZnRwRGF0YUNhbGxiYWNrPC9hPiBjYWxsYmFjaywgPGJyLz4JCQkJCSB2b2lkICogdXNlckRhdGEsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5GZXRjaCB0aGUgZ2l2ZW4gZmlsZSBmcm9tIHRoZSBzZXJ2ZXIuIEFsbCBkYXRhIGFyZSBwYXNzZWQgYmFjayBpbiB0aGUgY2FsbGJhY2tzLiBUaGUgbGFzdCBjYWxsYmFjayBoYXMgYSBzaXplIG9mIDAgYmxvY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYWxsYmFjazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBjYWxsYmFjayBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgdG8gcmV0cmlldmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbiIvPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBHZXRDb25uZWN0aW9uCQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+VHJ5IHRvIG9wZW4gYSBkYXRhIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlci4gQ3VycmVudGx5IG9ubHkgcGFzc2l2ZSBtb2RlIGlzIHN1cHBvcnRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQR2V0UmVzcG9uc2UiLz54bWxOYW5vRlRQR2V0UmVzcG9uc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0ZUUEdldFJlc3BvbnNlCQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+R2V0IHRoZSByZXNwb25zZSBmcm9tIHRoZSBGVFAgc2VydmVyIGFmdGVyIGEgY29tbWFuZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb2RlIG51bWJlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBHZXRTb2NrZXQiLz54bWxOYW5vRlRQR2V0U29ja2V0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBHZXRTb2NrZXQJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+SW5pdGlhdGUgZmV0Y2ggb2YgdGhlIGdpdmVuIGZpbGUgZnJvbSB0aGUgc2VydmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBGVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIHRvIHJldHJpZXZlIChvciBOVUxMIGlmIHBhdGggaXMgaW4gY29udGV4dCkuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc29ja2V0IGZvciB0aGUgZGF0YSBjb25uZWN0aW9uLCBvciAmbHQ7MCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUEluaXQiLz54bWxOYW5vRlRQSW5pdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmFub0ZUUEluaXQJCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgRlRQIHByb3RvY29sIGxheWVyLiBDdXJyZW50bHkgaXQganVzdCBjaGVja3MgZm9yIHByb3h5IGluZm9ybWF0aW9ucywgYW5kIGdldCB0aGUgaG9zdG5hbWU8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUExpc3QiLz54bWxOYW5vRlRQTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQTGlzdAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItbmFub2Z0cC5odG1sI2Z0cExpc3RDYWxsYmFjayI+ZnRwTGlzdENhbGxiYWNrPC9hPiBjYWxsYmFjaywgPGJyLz4JCQkJCSB2b2lkICogdXNlckRhdGEsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5EbyBhIGxpc3Rpbmcgb24gdGhlIHNlcnZlci4gQWxsIGZpbGVzIGluZm8gYXJlIHBhc3NlZCBiYWNrIGluIHRoZSBjYWxsYmFja3MuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYWxsYmFjazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBjYWxsYmFjayBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9uYWwgZmlsZXMgdG8gbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBOZXdDdHh0Ii8+eG1sTmFub0ZUUE5ld0N0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTmFub0ZUUE5ld0N0eHQJCShjb25zdCBjaGFyICogVVJMKTxici8+Cis8L3ByZT48cD5BbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSBhIG5ldyBGVFAgY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFVSTCB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQT3BlbiIvPnhtbE5hbm9GVFBPcGVuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE5hbm9GVFBPcGVuCQkJKGNvbnN0IGNoYXIgKiBVUkwpPGJyLz4KKzwvcHJlPjxwPlN0YXJ0IHRvIGZldGNoIHRoZSBnaXZlbiBmdHA6Ly8gcmVzb3VyY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSTCB0byB0aGUgcmVzb3VyY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0LCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUFByb3h5Ii8+eG1sTmFub0ZUUFByb3h5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOYW5vRlRQUHJveHkJCQkoY29uc3QgY2hhciAqIGhvc3QsIDxici8+CQkJCQkgaW50IHBvcnQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHVzZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHBhc3N3ZCwgPGJyLz4JCQkJCSBpbnQgdHlwZSk8YnIvPgorPC9wcmU+PHA+U2V0dXAgdGhlIEZUUCBwcm94eSBpbmZvcm1hdGlvbnMuIFRoaXMgY2FuIGFsc28gYmUgZG9uZSBieSB1c2luZyBmdHBfcHJveHkgZnRwX3Byb3h5X3VzZXIgYW5kIGZ0cF9wcm94eV9wYXNzd29yZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ob3N0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJveHkgaG9zdCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wb3J0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJveHkgcG9ydDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByb3h5IHVzZXIgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFzc3dkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJveHkgcGFzc3dvcmQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0eXBlIG9mIHByb3h5IDEgZm9yIHVzaW5nIFNJVEUsIDIgZm9yIFVTRVIgYUBiPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUFF1aXQiLz54bWxOYW5vRlRQUXVpdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQUXVpdAkJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5TZW5kIGEgUVVJVCBjb21tYW5kIHRvIHRoZSBzZXJ2ZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUFJlYWQiLz54bWxOYW5vRlRQUmVhZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQUmVhZAkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIHZvaWQgKiBkZXN0LCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gcmVhZCBAbGVuIGJ5dGVzIGZyb20gdGhlIGV4aXN0aW5nIEZUUCBjb25uZWN0aW9uIGFuZCBzYXZlcyB0aGVtIGluIEBkZXN0LiBUaGlzIGlzIGEgYmxvY2tpbmcgY2FsbC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIGxlbmd0aDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHJlYWQuIDAgaXMgYW4gaW5kaWNhdGlvbiBvZiBhbiBlbmQgb2YgY29ubmVjdGlvbi4gLTEgaW5kaWNhdGVzIGEgcGFyYW1ldGVyIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBTY2FuUHJveHkiLz54bWxOYW5vRlRQU2NhblByb3h5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOYW5vRlRQU2NhblByb3h5CQkoY29uc3QgY2hhciAqIFVSTCk8YnIvPgorPC9wcmU+PHA+KFJlKUluaXRpYWxpemUgdGhlIEZUUCBQcm94eSBjb250ZXh0IGJ5IHBhcnNpbmcgdGhlIFVSTCBhbmQgZmluZGluZyB0aGUgcHJvdG9jb2wgaG9zdCBwb3J0IGl0IGluZGljYXRlcy4gU2hvdWxkIGJlIGxpa2UgZnRwOi8vbXlwcm94eS8gb3IgZnRwOi8vbXlwcm94eTozMTI4LyBBIE5VTEwgVVJMIGNsZWFucyB1cCBwcm94eSBpbmZvcm1hdGlvbnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwcm94eSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwcm94eSBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUFVwZGF0ZVVSTCIvPnhtbE5hbm9GVFBVcGRhdGVVUkwgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0ZUUFVwZGF0ZVVSTAkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCk8YnIvPgorPC9wcmU+PHA+VXBkYXRlIGFuIEZUUCBjb250ZXh0IGJ5IHBhcnNpbmcgdGhlIFVSTCBhbmQgZmluZGluZyBuZXcgcGF0aCBpdCBpbmRpY2F0ZXMuIElmIHRoZXJlIGlzIGFuIGVycm9yIGluIHRoZSBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgb3Igb3RoZXIgaW5mb3JtYXRpb24sIHRoZSBlcnJvciBpcyByYWlzZWQuIEl0IGluZGljYXRlcyBhIG5ldyBjb25uZWN0aW9uIGhhcyB0byBiZSBlc3RhYmxpc2hlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFVSTCB1c2VkIHRvIHVwZGF0ZSB0aGUgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBPaywgLTEgaW4gY2FzZSBvZiBlcnJvciAob3RoZXIgaG9zdCkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItbmFub2h0dHAuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1uYW5vaHR0cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NWFlNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItbmFub2h0dHAuaHRtbApAQCAtMCwwICsxLDE0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5uYW5vaHR0cDogbWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1uYW5vZnRwLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+bmFub2h0dHA8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5uYW5vaHR0cCAtIG1pbmltYWwgSFRUUCBpbXBsZW1lbnRhdGlvbjwvcD4KKyAgICA8cD5taW5pbWFsIEhUVFAgaW1wbGVtZW50YXRpb24gYWxsb3dpbmcgdG8gZmV0Y2ggcmVzb3VyY2VzIGxpa2UgZXh0ZXJuYWwgc3Vic2V0LiA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vSFRUUFJlYWQiPnhtbE5hbm9IVFRQUmVhZDwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSB2b2lkICogZGVzdCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sTmFub0hUVFBTYXZlIj54bWxOYW5vSFRUUFNhdmU8L2E+CQkJKHZvaWQgKiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk7Citjb25zdCBjaGFyICoJPGEgaHJlZj0iI3htbE5hbm9IVFRQUmVkaXIiPnhtbE5hbm9IVFRQUmVkaXI8L2E+CSh2b2lkICogY3R4KTsKK2NvbnN0IGNoYXIgKgk8YSBocmVmPSIjeG1sTmFub0hUVFBBdXRoSGVhZGVyIj54bWxOYW5vSFRUUEF1dGhIZWFkZXI8L2E+CSh2b2lkICogY3R4KTsKK2ludAk8YSBocmVmPSIjeG1sTmFub0hUVFBGZXRjaCI+eG1sTmFub0hUVFBGZXRjaDwvYT4JCShjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlKTsKK2ludAk8YSBocmVmPSIjeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoIj54bWxOYW5vSFRUUENvbnRlbnRMZW5ndGg8L2E+CSh2b2lkICogY3R4KTsKK2NvbnN0IGNoYXIgKgk8YSBocmVmPSIjeG1sTmFub0hUVFBNaW1lVHlwZSI+eG1sTmFub0hUVFBNaW1lVHlwZTwvYT4JKHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjeG1sTmFub0hUVFBDbG9zZSI+eG1sTmFub0hUVFBDbG9zZTwvYT4JCSh2b2lkICogY3R4KTsKK3ZvaWQJPGEgaHJlZj0iI3htbE5hbm9IVFRQQ2xlYW51cCI+eG1sTmFub0hUVFBDbGVhbnVwPC9hPgkJKHZvaWQpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+CQkoY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbWV0aG9kLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBpbnB1dCwgPGJyLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBoZWFkZXJzLCA8YnIvPgkJCQkJIGludCBpbGVuKTsKK3ZvaWQJPGEgaHJlZj0iI3htbE5hbm9IVFRQSW5pdCI+eG1sTmFub0hUVFBJbml0PC9hPgkJCSh2b2lkKTsKK3ZvaWQgKgk8YSBocmVmPSIjeG1sTmFub0hUVFBPcGVuIj54bWxOYW5vSFRUUE9wZW48L2E+CQkJKGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY2hhciAqKiBjb250ZW50VHlwZSk7Cit2b2lkICoJPGEgaHJlZj0iI3htbE5hbm9IVFRQT3BlblJlZGlyIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvYT4JCShjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNoYXIgKiogY29udGVudFR5cGUsIDxici8+CQkJCQkgY2hhciAqKiByZWRpcik7Cit2b2lkICoJPGEgaHJlZj0iI3htbE5hbm9IVFRQTWV0aG9kUmVkaXIiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2E+CQkoY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbWV0aG9kLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBpbnB1dCwgPGJyLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlLCA8YnIvPgkJCQkJIGNoYXIgKiogcmVkaXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGhlYWRlcnMsIDxici8+CQkJCQkgaW50IGlsZW4pOwordm9pZAk8YSBocmVmPSIjeG1sTmFub0hUVFBTY2FuUHJveHkiPnhtbE5hbm9IVFRQU2NhblByb3h5PC9hPgkJKGNvbnN0IGNoYXIgKiBVUkwpOworY29uc3QgY2hhciAqCTxhIGhyZWY9IiN4bWxOYW5vSFRUUEVuY29kaW5nIj54bWxOYW5vSFRUUEVuY29kaW5nPC9hPgkodm9pZCAqIGN0eCk7CitpbnQJPGEgaHJlZj0iI3htbE5hbm9IVFRQUmV0dXJuQ29kZSI+eG1sTmFub0hUVFBSZXR1cm5Db2RlPC9hPgkJKHZvaWQgKiBjdHgpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQQXV0aEhlYWRlciIvPnhtbE5hbm9IVFRQQXV0aEhlYWRlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgl4bWxOYW5vSFRUUEF1dGhIZWFkZXIJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkdldCB0aGUgYXV0aGVudGljYXRpb24gaGVhZGVyIG9mIGFuIEhUVFAgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3Rhc2hlZCB2YWx1ZSBvZiB0aGUgV1dXLUF1dGhlbnRpY2F0ZSBvciBQcm94eS1BdXRoZW50aWNhdGUgaGVhZGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQQ2xlYW51cCIvPnhtbE5hbm9IVFRQQ2xlYW51cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmFub0hUVFBDbGVhbnVwCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+Q2xlYW51cCB0aGUgSFRUUCBwcm90b2NvbCBsYXllci48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBDbG9zZSIvPnhtbE5hbm9IVFRQQ2xvc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5hbm9IVFRQQ2xvc2UJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGNsb3NlcyBhbiBIVFRQIGNvbnRleHQsIGl0IGVuZHMgdXAgdGhlIGNvbm5lY3Rpb24gYW5kIGZyZWUgYWxsIGRhdGEgcmVsYXRlZCB0byBpdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQQ29udGVudExlbmd0aCIvPnhtbE5hbm9IVFRQQ29udGVudExlbmd0aCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgY29udGVudCBsZW5ndGggZnJvbSB0aGUgSFRUUCBoZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVFRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzcGVjaWZpZWQgY29udGVudCBsZW5ndGggZnJvbSB0aGUgSFRUUCBoZWFkZXIuIE5vdGUgdGhhdCBhIHZhbHVlIG9mIC0xIGluZGljYXRlcyB0aGF0IHRoZSBjb250ZW50IGxlbmd0aCBlbGVtZW50IHdhcyBub3QgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlIGhlYWRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUEVuY29kaW5nIi8+eG1sTmFub0hUVFBFbmNvZGluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgl4bWxOYW5vSFRUUEVuY29kaW5nCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgc3BlY2lmaWVkIGVuY29kaW5nIGlmIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3BlY2lmaWVkIGVuY29kaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQRmV0Y2giLz54bWxOYW5vSFRUUEZldGNoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9IVFRQRmV0Y2gJCShjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyeSB0byBmZXRjaCB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIEdFVCBhbmQgc2F2ZSBpdCdzIGNvbnRlbnQgaW4gdGhlIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBVUkwgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSB3aGVyZSB0aGUgY29udGVudCBzaG91bGQgYmUgc2F2ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnRUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiBhdmFpbGFibGUgdGhlIENvbnRlbnQtVHlwZSBpbmZvcm1hdGlvbiB3aWxsIGJlIHJldHVybmVkIGF0IHRoYXQgbG9jYXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBpbmNhc2Ugb2Ygc3VjY2Vzcy4gVGhlIGNvbnRlbnRUeXBlLCBpZiBwcm92aWRlZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUEluaXQiLz54bWxOYW5vSFRUUEluaXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5hbm9IVFRQSW5pdAkJCSh2b2lkKTxici8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBIVFRQIHByb3RvY29sIGxheWVyLiBDdXJyZW50bHkgaXQganVzdCBjaGVja3MgZm9yIHByb3h5IGluZm9ybWF0aW9uczwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUE1ldGhvZCIvPnhtbE5hbm9IVFRQTWV0aG9kICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE5hbm9IVFRQTWV0aG9kCQkoY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbWV0aG9kLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBpbnB1dCwgPGJyLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBoZWFkZXJzLCA8YnIvPgkJCQkJIGludCBpbGVuKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyeSB0byBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIHVzaW5nIHRoZSBnaXZlbiBAbWV0aG9kLCBhZGRpbmcgdGhlIGdpdmVuIGV4dHJhIGhlYWRlcnMgYW5kIHRoZSBpbnB1dCBidWZmZXIgZm9yIHRoZSByZXF1ZXN0IGNvbnRlbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBVUkwgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWV0aG9kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBtZXRob2QgdG8gdXNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZyBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnRUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIElOIGFuZCBPVVQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhlYWRlcnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRyYSBoZWFkZXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnB1dCBsZW5ndGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLCBvdGhlcndpc2UgYSByZXF1ZXN0IGhhbmRsZXIuIFRoZSBjb250ZW50VHlwZSwgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBNZXRob2RSZWRpciIvPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTmFub0hUVFBNZXRob2RSZWRpcgkJKGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1ldGhvZCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogaW5wdXQsIDxici8+CQkJCQkgY2hhciAqKiBjb250ZW50VHlwZSwgPGJyLz4JCQkJCSBjaGFyICoqIHJlZGlyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBoZWFkZXJzLCA8YnIvPgkJCQkJIGludCBpbGVuKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyeSB0byBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIHVzaW5nIHRoZSBnaXZlbiBAbWV0aG9kLCBhZGRpbmcgdGhlIGdpdmVuIGV4dHJhIGhlYWRlcnMgYW5kIHRoZSBpbnB1dCBidWZmZXIgZm9yIHRoZSByZXF1ZXN0IGNvbnRlbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBVUkwgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWV0aG9kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBtZXRob2QgdG8gdXNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZyBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnRUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIElOIGFuZCBPVVQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlZGlyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVkaXJlY3RlZCBVUkwgT1VUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZWFkZXJzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0cmEgaGVhZGVyczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aWxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5wdXQgbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGluIGNhc2Ugb2YgZmFpbHVyZSwgb3RoZXJ3aXNlIGEgcmVxdWVzdCBoYW5kbGVyLiBUaGUgY29udGVudFR5cGUsIG9yIHJlZGlyLCBpZiBwcm92aWRlZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUE1pbWVUeXBlIi8+eG1sTmFub0hUVFBNaW1lVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgl4bWxOYW5vSFRUUE1pbWVUeXBlCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgc3BlY2lmaWVkIE1pbWUtVHlwZSBpZiBzcGVjaWZpZWQgaW4gdGhlIEhUVFAgaGVhZGVycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNwZWNpZmllZCBNaW1lLVR5cGUgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBPcGVuIi8+eG1sTmFub0hUVFBPcGVuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE5hbm9IVFRQT3BlbgkJCShjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNoYXIgKiogY29udGVudFR5cGUpPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gdHJ5IHRvIG9wZW4gYSBjb25uZWN0aW9uIHRvIHRoZSBpbmRpY2F0ZWQgcmVzb3VyY2UgdmlhIEhUVFAgR0VULjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgVVJMIHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnRUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiBhdmFpbGFibGUgdGhlIENvbnRlbnQtVHlwZSBpbmZvcm1hdGlvbiB3aWxsIGJlIHJldHVybmVkIGF0IHRoYXQgbG9jYXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLCBvdGhlcndpc2UgYSByZXF1ZXN0IGhhbmRsZXIuIFRoZSBjb250ZW50VHlwZSwgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBPcGVuUmVkaXIiLz54bWxOYW5vSFRUUE9wZW5SZWRpciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxOYW5vSFRUUE9wZW5SZWRpcgkJKGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY2hhciAqKiBjb250ZW50VHlwZSwgPGJyLz4JCQkJCSBjaGFyICoqIHJlZGlyKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyeSB0byBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIEdFVC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFVSTCB0byBsb2FkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50VHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aWYgYXZhaWxhYmxlIHRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gd2lsbCBiZSByZXR1cm5lZCBhdCB0aGF0IGxvY2F0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWRpcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aWYgYXZhaWxhYmxlIHRoZSByZWRpcmVjdGVkIFVSTCB3aWxsIGJlIHJldHVybmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGluIGNhc2Ugb2YgZmFpbHVyZSwgb3RoZXJ3aXNlIGEgcmVxdWVzdCBoYW5kbGVyLiBUaGUgY29udGVudFR5cGUsIGlmIHByb3ZpZGVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQUmVhZCIvPnhtbE5hbm9IVFRQUmVhZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vSFRUUFJlYWQJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSB2b2lkICogZGVzdCwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlYWQgQGxlbiBieXRlcyBmcm9tIHRoZSBleGlzdGluZyBIVFRQIGNvbm5lY3Rpb24gYW5kIHNhdmVzIHRoZW0gaW4gQGRlc3QuIFRoaXMgaXMgYSBibG9ja2luZyBjYWxsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIGxlbmd0aDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHJlYWQuIDAgaXMgYW4gaW5kaWNhdGlvbiBvZiBhbiBlbmQgb2YgY29ubmVjdGlvbi4gLTEgaW5kaWNhdGVzIGEgcGFyYW1ldGVyIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQUmVkaXIiLz54bWxOYW5vSFRUUFJlZGlyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCXhtbE5hbm9IVFRQUmVkaXIJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgcmVkaXJlY3Rpb24gVVJMIGlmIGF2YWlsYWJsZSBmcm9tIHRoZSBIVFRQIGhlYWRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNwZWNpZmllZCByZWRpcmVjdGlvbiBVUkwgb3IgTlVMTCBpZiBub3QgcmVkaXJlY3RlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUFJldHVybkNvZGUiLz54bWxOYW5vSFRUUFJldHVybkNvZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0hUVFBSZXR1cm5Db2RlCQkodm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+R2V0IHRoZSBsYXRlc3QgSFRUUCByZXR1cm4gY29kZSByZWNlaXZlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCByZXR1cm4gY29kZSBmb3IgdGhlIHJlcXVlc3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBTYXZlIi8+eG1sTmFub0hUVFBTYXZlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9IVFRQU2F2ZQkJCSh2b2lkICogY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gc2F2ZXMgdGhlIG91dHB1dCBvZiB0aGUgSFRUUCB0cmFuc2FjdGlvbiB0byBhIGZpbGUgSXQgY2xvc2VzIGFuZCBmcmVlIHRoZSBjb250ZXh0IGF0IHRoZSBlbmQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVFRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNhdmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgaW5jYXNlIG9mIHN1Y2Nlc3MuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBTY2FuUHJveHkiLz54bWxOYW5vSFRUUFNjYW5Qcm94eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmFub0hUVFBTY2FuUHJveHkJCShjb25zdCBjaGFyICogVVJMKTxici8+Cis8L3ByZT48cD4oUmUpSW5pdGlhbGl6ZSB0aGUgSFRUUCBQcm94eSBjb250ZXh0IGJ5IHBhcnNpbmcgdGhlIFVSTCBhbmQgZmluZGluZyB0aGUgcHJvdG9jb2wgaG9zdCBwb3J0IGl0IGluZGljYXRlcy4gU2hvdWxkIGJlIGxpa2UgaHR0cDovL215cHJveHkvIG9yIGh0dHA6Ly9teXByb3h5OjMxMjgvIEEgTlVMTCBVUkwgY2xlYW5zIHVwIHByb3h5IGluZm9ybWF0aW9ucy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHByb3h5IFVSTCB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHByb3h5IGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1wYXJzZXIuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGUyZDc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXBhcnNlci5odG1sCkBAIC0wLDAgKzEsNzYyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnBhcnNlcjogdGhlIGNvcmUgcGFyc2VyIG1vZHVsZTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDItbmFub2h0dHAuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5wYXJzZXI8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5wYXJzZXIgLSB0aGUgY29yZSBwYXJzZXIgbW9kdWxlPC9wPgorICAgIDxwPkludGVyZmFjZXMsIGNvbnN0YW50cyBhbmQgdHlwZXMgcmVsYXRlZCB0byB0aGUgWE1MIHBhcnNlciA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0NPTVBMRVRFX0FUVFJTIj5YTUxfQ09NUExFVEVfQVRUUlM8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NLSVBfSURTIj5YTUxfU0tJUF9JRFM8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NBWDJfTUFHSUMiPlhNTF9TQVgyX01BR0lDPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9ERVRFQ1RfSURTIj5YTUxfREVURUNUX0lEUzwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfREVGQVVMVF9WRVJTSU9OIj5YTUxfREVGQVVMVF9WRVJTSU9OPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcSI+eG1sUGFyc2VyTm9kZUluZm9TZXE8L2E+ICogPGEgaHJlZj0iI3htbFBhcnNlck5vZGVJbmZvU2VxUHRyIj54bWxQYXJzZXJOb2RlSW5mb1NlcVB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU0FYSGFuZGxlclYxIDxhIGhyZWY9IiN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFBhcnNlcklucHV0U3RhdGUiPnhtbFBhcnNlcklucHV0U3RhdGU8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT4gKiA8YSBocmVmPSIjeG1sUGFyc2VyTm9kZUluZm9QdHIiPnhtbFBhcnNlck5vZGVJbmZvUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxQYXJzZXJOb2RlSW5mb1NlcSA8YSBocmVmPSIjeG1sUGFyc2VyTm9kZUluZm9TZXEiPnhtbFBhcnNlck5vZGVJbmZvU2VxPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sRmVhdHVyZSI+eG1sRmVhdHVyZTwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFBhcnNlck1vZGUiPnhtbFBhcnNlck1vZGU8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+ICogPGEgaHJlZj0iI3htbFNBWEhhbmRsZXJWMVB0ciI+eG1sU0FYSGFuZGxlclYxUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxQYXJzZXJOb2RlSW5mbyA8YSBocmVmPSIjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPjsKK3ZvaWQJPGEgaHJlZj0iI3htbFNldHVwUGFyc2VyRm9yQnVmZmVyIj54bWxTZXR1cFBhcnNlckZvckJ1ZmZlcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWZmZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3R4dFJlYWRGaWxlIj54bWxDdHh0UmVhZEZpbGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkiPnhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjYXR0cmlidXRlRGVjbFNBWEZ1bmMiPmF0dHJpYnV0ZURlY2xTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVsZW0sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIvPgkJCQkJIGludCB0eXBlLCA8YnIvPgkJCQkJIGludCBkZWYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRlZmF1bHRWYWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IHRyZWUpOwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gPGEgaHJlZj0iI2dldEVudGl0eVNBWEZ1bmMiPmdldEVudGl0eVNBWEZ1bmM8L2E+CSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjc3RhcnRFbGVtZW50U0FYRnVuYyI+c3RhcnRFbGVtZW50U0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cyk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI2NoYXJhY3RlcnNTQVhGdW5jIj5jaGFyYWN0ZXJzU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK3ZvaWQJPGEgaHJlZj0iI3htbENsZWFyTm9kZUluZm9TZXEiPnhtbENsZWFyTm9kZUluZm9TZXE8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciI+eG1sUGFyc2VyTm9kZUluZm9TZXFQdHI8L2E+IHNlcSk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlQ2h1bmsiPnhtbFBhcnNlQ2h1bms8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGNodW5rLCA8YnIvPgkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJIGludCB0ZXJtaW5hdGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUVudGl0eSI+eG1sUGFyc2VFbnRpdHk8L2E+CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVjb3ZlckZpbGUiPnhtbFJlY292ZXJGaWxlPC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbEN0eHRSZWFkRG9jIj54bWxDdHh0UmVhZERvYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxici8+CQkJCQkgaW50IG5iX25hbWVzcGFjZXMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzLCA8YnIvPgkJCQkJIGludCBuYl9hdHRyaWJ1dGVzLCA8YnIvPgkJCQkJIGludCBuYl9kZWZhdWx0ZWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBhdHRyaWJ1dGVzKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDcmVhdGVJT1BhcnNlckN0eHQiPnhtbENyZWF0ZUlPUGFyc2VyQ3R4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxici8+CQkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpOworPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9ycyI+eG1sUGFyc2VyRXJyb3JzPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIvPgkJCQkJIGludCBkYXRhbGVuLCA8YnIvPgkJCQkJIGludCBvcHRpb25zLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3R5cGVkZWYgaW50IDxhIGhyZWY9IiNoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVhQYXJzZURvYyI+eG1sU0FYUGFyc2VEb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgaW50IHJlY292ZXJ5KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZE1lbW9yeSI+eG1sUmVhZE1lbW9yeTwvYT4JCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VNZW1vcnkiPnhtbFBhcnNlTWVtb3J5PC9hPgkJKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IHNpemUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3SU9JbnB1dFN0cmVhbSI+eG1sTmV3SU9JbnB1dFN0cmVhbTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYyI+cHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkJIGludCBkZXB0aCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cmluZywgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiBsc3QsIDxici8+CQkJCQkJIGludCByZWNvdmVyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEluaXRQYXJzZXIiPnhtbEluaXRQYXJzZXI8L2E+CQkJKHZvaWQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbENyZWF0ZURvY1BhcnNlckN0eHQiPnhtbENyZWF0ZURvY1BhcnNlckN0eHQ8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYUGFyc2VNZW1vcnkiPnhtbFNBWFBhcnNlTWVtb3J5PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkgaW50IHJlY292ZXJ5KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVjb3Zlck1lbW9yeSI+eG1sUmVjb3Zlck1lbW9yeTwvYT4JKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IHNpemUpOwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IDxhIGhyZWY9IiN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+CShjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogSUQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGNvbnRleHQpOwordHlwZWRlZiBpbnQgPGEgaHJlZj0iI2hhc0ludGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgkodm9pZCAqIGN0eCk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI2NkYXRhQmxvY2tTQVhGdW5jIj5jZGF0YUJsb2NrU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBpbnQgcmVjb3ZlcnkpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxDdHh0UmVhZElPIj54bWxDdHh0UmVhZElPPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCQkgaW50IHJlY292ZXJ5LCA8YnIvPgkJCQkJCSB2b2lkICogZGF0YSk7CitpbnQJPGEgaHJlZj0iI3htbEdldEZlYXR1cmUiPnhtbEdldEZlYXR1cmU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG5hbWUsIDxici8+CQkJCQkgdm9pZCAqIHJlc3VsdCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JPGEgaHJlZj0iI3htbElPUGFyc2VEVEQiPnhtbElPUGFyc2VEVEQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZVBhcnNlckN0eHQiPnhtbEZyZWVQYXJzZXJDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZURURCI+eG1sUGFyc2VEVEQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjY29tbWVudFNBWEZ1bmMiPmNvbW1lbnRTQVhGdW5jPC9hPgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI3htbEluaXRQYXJzZXJDdHh0Ij54bWxJbml0UGFyc2VyQ3R4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjYXR0cmlidXRlU0FYRnVuYyI+YXR0cmlidXRlU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlcklucHV0R3JvdyI+eG1sUGFyc2VySW5wdXRHcm93PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW4sIDxici8+CQkJCQkgaW50IGxlbik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbEN0eHRSZWFkTWVtb3J5Ij54bWxDdHh0UmVhZE1lbW9yeTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI2V4dGVybmFsU3Vic2V0U0FYRnVuYyI+ZXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiA8YSBocmVmPSIjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpOworaW50CTxhIGhyZWY9IiN4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQiPnhtbFBlZGFudGljUGFyc2VyRGVmYXVsdDwvYT4JKGludCB2YWwpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVhQYXJzZUVudGl0eSI+eG1sU0FYUGFyc2VFbnRpdHk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VEb2MiPnhtbFBhcnNlRG9jPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGludCByZWNvdmVyeSwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk7CitpbnQJPGEgaHJlZj0iI3htbExpbmVOdW1iZXJzRGVmYXVsdCI+eG1sTGluZU51bWJlcnNEZWZhdWx0PC9hPgkJKGludCB2YWwpOworPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+CTxhIGhyZWY9IiN4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+CSh2b2lkKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjZWxlbWVudERlY2xTQVhGdW5jIj5lbGVtZW50RGVjbFNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBpbnQgdHlwZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGNvbnRlbnQpOworaW50CTxhIGhyZWY9IiN4bWxDdHh0VXNlT3B0aW9ucyI+eG1sQ3R4dFVzZU9wdGlvbnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogY2h1bmssIDxici8+CQkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VyQWRkTm9kZUluZm8iPnhtbFBhcnNlckFkZE5vZGVJbmZvPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1B0ciI+eG1sUGFyc2VyTm9kZUluZm9QdHI8L2E+IGluZm8pOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxDdHh0UmVhZEZkIj54bWxDdHh0UmVhZEZkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IGZkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjaW50ZXJuYWxTdWJzZXRTQVhGdW5jIj5pbnRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1BhcnNlckN0eHQiPnhtbE5ld1BhcnNlckN0eHQ8L2E+CSh2b2lkKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjZW5kRG9jdW1lbnRTQVhGdW5jIj5lbmREb2N1bWVudFNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlRmlsZSI+eG1sUGFyc2VGaWxlPC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlRG9jdW1lbnQiPnhtbFBhcnNlRG9jdW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+CSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+IGxvYyk7Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiA8YSBocmVmPSIjZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYyI+Z2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmMiPmlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxici8+CQkJCQkgaW50IGxlbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxJbml0Tm9kZUluZm9TZXEiPnhtbEluaXROb2RlSW5mb1NlcTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvU2VxUHRyIj54bWxQYXJzZXJOb2RlSW5mb1NlcVB0cjwvYT4gc2VxKTsKK2ludAk8YSBocmVmPSIjeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCI+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdDwvYT4JKGludCB2YWwpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiNlbmRFbGVtZW50U0FYRnVuYyI+ZW5kRWxlbWVudFNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cit1bnNpZ25lZCBsb25nCTxhIGhyZWY9IiN4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCI+eG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXg8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvU2VxUHRyIj54bWxQYXJzZXJOb2RlSW5mb1NlcVB0cjwvYT4gc2VxLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK2xvbmcJPGEgaHJlZj0iI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbEN0eHRSZXNldCI+eG1sQ3R4dFJlc2V0PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2ludAk8YSBocmVmPSIjeG1sU2V0RmVhdHVyZSI+eG1sU2V0RmVhdHVyZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbmFtZSwgPGJyLz4JCQkJCSB2b2lkICogdmFsdWUpOworaW50CTxhIGhyZWY9IiN4bWxLZWVwQmxhbmtzRGVmYXVsdCI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2E+CQkoaW50IHZhbCk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlcklucHV0UmVhZCI+eG1sUGFyc2VySW5wdXRSZWFkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW4sIDxici8+CQkJCQkgaW50IGxlbik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFJlYWRGaWxlIj54bWxSZWFkRmlsZTwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+CQkoaW50ICogbGVuLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiogcmVzdWx0KTsKK2ludAk8YSBocmVmPSIjeG1sSGFzRmVhdHVyZSI+eG1sSGFzRmVhdHVyZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxGZWF0dXJlIj54bWxGZWF0dXJlPC9hPiBmZWF0dXJlKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyI+dW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbm90YXRpb25OYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sU0FYVXNlclBhcnNlRmlsZSI+eG1sU0FYVXNlclBhcnNlRmlsZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVhQYXJzZURURCI+eG1sU0FYUGFyc2VEVEQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VyRmluZE5vZGVJbmZvIj54bWxQYXJzZXJGaW5kTm9kZUluZm88L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHgsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxMb2FkRXh0ZXJuYWxFbnRpdHkiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvYT4JKGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBJRCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTdG9wUGFyc2VyIj54bWxTdG9wUGFyc2VyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZEZkIj54bWxSZWFkRmQ8L2E+CQkoaW50IGZkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sUGFyc2VFeHRQYXJzZWRFbnQiPnhtbFBhcnNlRXh0UGFyc2VkRW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkSU8iPnhtbFJlYWRJTzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFJlYWREb2MiPnhtbFJlYWREb2M8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI3htbFNBWFVzZXJQYXJzZU1lbW9yeSI+eG1sU0FYVXNlclBhcnNlTWVtb3J5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IHNpemUpOworaW50CTxhIGhyZWY9IiN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkgaW50IGRlcHRoLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHJpbmcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiBsc3QpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiNlbmRFbGVtZW50TnNTQVgyRnVuYyI+ZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwUGFyc2VyIj54bWxDbGVhbnVwUGFyc2VyPC9hPgkJKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxDdHh0UmVzZXRQdXNoIj54bWxDdHh0UmVzZXRQdXNoPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGNodW5rLCA8YnIvPgkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpOwordHlwZWRlZiBpbnQgPGEgaHJlZj0iI2lzU3RhbmRhbG9uZVNBWEZ1bmMiPmlzU3RhbmRhbG9uZVNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3N0YXJ0RG9jdW1lbnRTQVhGdW5jIj5zdGFydERvY3VtZW50U0FYRnVuYzwvYT4JCSh2b2lkICogY3R4KTsKK3ZvaWQJPGEgaHJlZj0iI3htbENsZWFyUGFyc2VyQ3R4dCI+eG1sQ2xlYXJQYXJzZXJDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkgaW50IGRlcHRoLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjbm90YXRpb25EZWNsU0FYRnVuYyI+bm90YXRpb25EZWNsU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN3YXJuaW5nU0FYRnVuYyI+d2FybmluZ1NBWEZ1bmM8L2E+CQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPiBmKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfQ09NUExFVEVfQVRUUlMiPk1hY3JvIDwvYT5YTUxfQ09NUExFVEVfQVRUUlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfQ09NUExFVEVfQVRUUlMiPlhNTF9DT01QTEVURV9BVFRSUzwvYT47Cis8L3ByZT48cD5CaXQgaW4gdGhlIGxvYWRzdWJzZXQgY29udGV4dCBmaWVsZCB0byB0ZWxsIHRvIGRvIGNvbXBsZXRlIHRoZSBlbGVtZW50cyBhdHRyaWJ1dGVzIGxpc3RzIHdpdGggdGhlIG9uZXMgZGVmYXVsdGVkIGZyb20gdGhlIERURHMuIFVzZSBpdCB0byBpbml0aWFsaXplIHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9ERUZBVUxUX1ZFUlNJT04iPk1hY3JvIDwvYT5YTUxfREVGQVVMVF9WRVJTSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0RFRkFVTFRfVkVSU0lPTiI+WE1MX0RFRkFVTFRfVkVSU0lPTjwvYT47Cis8L3ByZT48cD5UaGUgZGVmYXVsdCB2ZXJzaW9uIG9mIFhNTCB1c2VkOiAxLjA8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX0RFVEVDVF9JRFMiPk1hY3JvIDwvYT5YTUxfREVURUNUX0lEUzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9ERVRFQ1RfSURTIj5YTUxfREVURUNUX0lEUzwvYT47Cis8L3ByZT48cD5CaXQgaW4gdGhlIGxvYWRzdWJzZXQgY29udGV4dCBmaWVsZCB0byB0ZWxsIHRvIGRvIElEL1JFRnMgbG9va3Vwcy4gVXNlIGl0IHRvIGluaXRpYWxpemUgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NBWDJfTUFHSUMiPk1hY3JvIDwvYT5YTUxfU0FYMl9NQUdJQzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQVgyX01BR0lDIj5YTUxfU0FYMl9NQUdJQzwvYT47Cis8L3ByZT48cD5TcGVjaWFsIGNvbnN0YW50IGZvdW5kIGluIFNBWDIgYmxvY2tzIGluaXRpYWxpemVkIGZpZWxkczwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0tJUF9JRFMiPk1hY3JvIDwvYT5YTUxfU0tJUF9JRFM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0tJUF9JRFMiPlhNTF9TS0lQX0lEUzwvYT47Cis8L3ByZT48cD5CaXQgaW4gdGhlIGxvYWRzdWJzZXQgY29udGV4dCBmaWVsZCB0byB0ZWxsIHRvIG5vdCBkbyBJRC9SRUZzIHJlZ2lzdHJhdGlvbi4gVXNlZCB0byBpbml0aWFsaXplIDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbExvYWRFeHREdGREZWZhdWx0VmFsdWUiPnhtbExvYWRFeHREdGREZWZhdWx0VmFsdWU8L2E+IGluIHNvbWUgc3BlY2lhbCBjYXNlcy48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRmVhdHVyZSI+RW51bSA8L2E+eG1sRmVhdHVyZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbEZlYXR1cmUiPnhtbEZlYXR1cmU8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9USFJFQUQiPlhNTF9XSVRIX1RIUkVBRDwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfVFJFRSI+WE1MX1dJVEhfVFJFRTwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfT1VUUFVUIj5YTUxfV0lUSF9PVVRQVVQ8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9XSVRIX1BVU0giPlhNTF9XSVRIX1BVU0g8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1JFQURFUiI+WE1MX1dJVEhfUkVBREVSPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9QQVRURVJOIj5YTUxfV0lUSF9QQVRURVJOPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9XUklURVIiPlhNTF9XSVRIX1dSSVRFUjwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfU0FYMSI+WE1MX1dJVEhfU0FYMTwvYT4gPSA4CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfRlRQIj5YTUxfV0lUSF9GVFA8L2E+ID0gOQorICAgIDxhIG5hbWU9IlhNTF9XSVRIX0hUVFAiPlhNTF9XSVRIX0hUVFA8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9WQUxJRCI+WE1MX1dJVEhfVkFMSUQ8L2E+ID0gMTEKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9IVE1MIj5YTUxfV0lUSF9IVE1MPC9hPiA9IDEyCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfTEVHQUNZIj5YTUxfV0lUSF9MRUdBQ1k8L2E+ID0gMTMKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9DMTROIj5YTUxfV0lUSF9DMTROPC9hPiA9IDE0CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfQ0FUQUxPRyI+WE1MX1dJVEhfQ0FUQUxPRzwvYT4gPSAxNQorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1hQQVRIIj5YTUxfV0lUSF9YUEFUSDwvYT4gPSAxNgorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1hQVFIiPlhNTF9XSVRIX1hQVFI8L2E+ID0gMTcKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9YSU5DTFVERSI+WE1MX1dJVEhfWElOQ0xVREU8L2E+ID0gMTgKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9JQ09OViI+WE1MX1dJVEhfSUNPTlY8L2E+ID0gMTkKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9JU084ODU5WCI+WE1MX1dJVEhfSVNPODg1OVg8L2E+ID0gMjAKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9VTklDT0RFIj5YTUxfV0lUSF9VTklDT0RFPC9hPiA9IDIxCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfUkVHRVhQIj5YTUxfV0lUSF9SRUdFWFA8L2E+ID0gMjIKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9BVVRPTUFUQSI+WE1MX1dJVEhfQVVUT01BVEE8L2E+ID0gMjMKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9FWFBSIj5YTUxfV0lUSF9FWFBSPC9hPiA9IDI0CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfU0NIRU1BUyI+WE1MX1dJVEhfU0NIRU1BUzwvYT4gPSAyNQorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1NDSEVNQVRST04iPlhNTF9XSVRIX1NDSEVNQVRST048L2E+ID0gMjYKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9NT0RVTEVTIj5YTUxfV0lUSF9NT0RVTEVTPC9hPiA9IDI3CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfREVCVUciPlhNTF9XSVRIX0RFQlVHPC9hPiA9IDI4CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfREVCVUdfTUVNIj5YTUxfV0lUSF9ERUJVR19NRU08L2E+ID0gMjkKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9ERUJVR19SVU4iPlhNTF9XSVRIX0RFQlVHX1JVTjwvYT4gPSAzMAorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1pMSUIiPlhNTF9XSVRIX1pMSUI8L2E+ID0gMzEKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9OT05FIj5YTUxfV0lUSF9OT05FPC9hPiA9IDk5OTk5IC8qICBqdXN0IHRvIGJlIHN1cmUgb2YgYWxsb2NhdGlvbiBzaXplICovCit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0U3RhdGUiPkVudW0gPC9hPnhtbFBhcnNlcklucHV0U3RhdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dFN0YXRlIj54bWxQYXJzZXJJbnB1dFN0YXRlPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9FT0YiPlhNTF9QQVJTRVJfRU9GPC9hPiA9IC0xIC8qIG5vdGhpbmcgaXMgdG8gYmUgcGFyc2VkICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9TVEFSVCI+WE1MX1BBUlNFUl9TVEFSVDwvYT4gPSAwIC8qIG5vdGhpbmcgaGFzIGJlZW4gcGFyc2VkICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9NSVNDIj5YTUxfUEFSU0VSX01JU0M8L2E+ID0gMSAvKiBNaXNjKiBiZWZvcmUgaW50IHN1YnNldCAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfUEkiPlhNTF9QQVJTRVJfUEk8L2E+ID0gMiAvKiBXaXRoaW4gYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9EVEQiPlhNTF9QQVJTRVJfRFREPC9hPiA9IDMgLyogd2l0aGluIHNvbWUgRFREIGNvbnRlbnQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1BST0xPRyI+WE1MX1BBUlNFUl9QUk9MT0c8L2E+ID0gNCAvKiBNaXNjKiBhZnRlciBpbnRlcm5hbCBzdWJzZXQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX0NPTU1FTlQiPlhNTF9QQVJTRVJfQ09NTUVOVDwvYT4gPSA1IC8qIHdpdGhpbiBhIGNvbW1lbnQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1NUQVJUX1RBRyI+WE1MX1BBUlNFUl9TVEFSVF9UQUc8L2E+ID0gNiAvKiB3aXRoaW4gYSBzdGFydCB0YWcgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX0NPTlRFTlQiPlhNTF9QQVJTRVJfQ09OVEVOVDwvYT4gPSA3IC8qIHdpdGhpbiB0aGUgY29udGVudCAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTiI+WE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OPC9hPiA9IDggLyogd2l0aGluIGEgQ0RBVEEgc2VjdGlvbiAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfRU5EX1RBRyI+WE1MX1BBUlNFUl9FTkRfVEFHPC9hPiA9IDkgLyogd2l0aGluIGEgY2xvc2luZyB0YWcgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX0VOVElUWV9ERUNMIj5YTUxfUEFSU0VSX0VOVElUWV9ERUNMPC9hPiA9IDEwIC8qIHdpdGhpbiBhbiBlbnRpdHkgZGVjbGFyYXRpb24gKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX0VOVElUWV9WQUxVRSI+WE1MX1BBUlNFUl9FTlRJVFlfVkFMVUU8L2E+ID0gMTEgLyogd2l0aGluIGFuIGVudGl0eSB2YWx1ZSBpbiBhIGRlY2wgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRSI+WE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUU8L2E+ID0gMTIgLyogd2l0aGluIGFuIGF0dHJpYnV0ZSB2YWx1ZSAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfU1lTVEVNX0xJVEVSQUwiPlhNTF9QQVJTRVJfU1lTVEVNX0xJVEVSQUw8L2E+ID0gMTMgLyogd2l0aGluIGEgU1lTVEVNIHZhbHVlICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9FUElMT0ciPlhNTF9QQVJTRVJfRVBJTE9HPC9hPiA9IDE0IC8qIHRoZSBNaXNjKiBhZnRlciB0aGUgbGFzdCBlbmQgdGFnICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9JR05PUkUiPlhNTF9QQVJTRVJfSUdOT1JFPC9hPiA9IDE1IC8qIHdpdGhpbiBhbiBJR05PUkVEIHNlY3Rpb24gKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMIj5YTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMPC9hPiA9IDE2IC8qICB3aXRoaW4gYSBQVUJMSUMgdmFsdWUgKi8KK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyTW9kZSI+RW51bSA8L2E+eG1sUGFyc2VyTW9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFBhcnNlck1vZGUiPnhtbFBhcnNlck1vZGU8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfVU5LTk9XTiI+WE1MX1BBUlNFX1VOS05PV048L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9ET00iPlhNTF9QQVJTRV9ET008L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9TQVgiPlhNTF9QQVJTRV9TQVg8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9QVVNIX0RPTSI+WE1MX1BBUlNFX1BVU0hfRE9NPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfUFVTSF9TQVgiPlhNTF9QQVJTRV9QVVNIX1NBWDwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1JFQURFUiI+WE1MX1BBUlNFX1JFQURFUjwvYT4gPSA1Cit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlck5vZGVJbmZvIj5TdHJ1Y3R1cmUgPC9hPnhtbFBhcnNlck5vZGVJbmZvPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxQYXJzZXJOb2RlSW5mbyB7CisgICAgY29uc3Qgc3RydWN0IF94bWxOb2RlICoJbm9kZQk6IFBvc2l0aW9uICZhbXA7IGxpbmUgIyB0aGF0IHRleHQgdGhhdCBjcmVhdGVkIHRoZSBub2RlIGJlZ2lucyAmYW1wOyBlbmRzIG9uCisgICAgdW5zaWduZWQgbG9uZwliZWdpbl9wb3MKKyAgICB1bnNpZ25lZCBsb25nCWJlZ2luX2xpbmUKKyAgICB1bnNpZ25lZCBsb25nCWVuZF9wb3MKKyAgICB1bnNpZ25lZCBsb25nCWVuZF9saW5lCit9IHhtbFBhcnNlck5vZGVJbmZvOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlck5vZGVJbmZvUHRyIj5UeXBlZGVmIDwvYT54bWxQYXJzZXJOb2RlSW5mb1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPiAqIHhtbFBhcnNlck5vZGVJbmZvUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlck5vZGVJbmZvU2VxIj5TdHJ1Y3R1cmUgPC9hPnhtbFBhcnNlck5vZGVJbmZvU2VxPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxQYXJzZXJOb2RlSW5mb1NlcSB7CisgICAgdW5zaWduZWQgbG9uZwltYXhpbXVtCisgICAgdW5zaWduZWQgbG9uZwlsZW5ndGgKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT4gKglidWZmZXIKK30geG1sUGFyc2VyTm9kZUluZm9TZXE7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyTm9kZUluZm9TZXFQdHIiPlR5cGVkZWYgPC9hPnhtbFBhcnNlck5vZGVJbmZvU2VxUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcSI+eG1sUGFyc2VyTm9kZUluZm9TZXE8L2E+ICogeG1sUGFyc2VyTm9kZUluZm9TZXFQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyT3B0aW9uIj5FbnVtIDwvYT54bWxQYXJzZXJPcHRpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT4geworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9SRUNPVkVSIj5YTUxfUEFSU0VfUkVDT1ZFUjwvYT4gPSAxIC8qIHJlY292ZXIgb24gZXJyb3JzICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PRU5UIj5YTUxfUEFSU0VfTk9FTlQ8L2E+ID0gMiAvKiBzdWJzdGl0dXRlIGVudGl0aWVzICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX0RURExPQUQiPlhNTF9QQVJTRV9EVERMT0FEPC9hPiA9IDQgLyogbG9hZCB0aGUgZXh0ZXJuYWwgc3Vic2V0ICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX0RUREFUVFIiPlhNTF9QQVJTRV9EVERBVFRSPC9hPiA9IDggLyogZGVmYXVsdCBEVEQgYXR0cmlidXRlcyAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9EVERWQUxJRCI+WE1MX1BBUlNFX0RURFZBTElEPC9hPiA9IDE2IC8qIHZhbGlkYXRlIHdpdGggdGhlIERURCAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OT0VSUk9SIj5YTUxfUEFSU0VfTk9FUlJPUjwvYT4gPSAzMiAvKiBzdXBwcmVzcyBlcnJvciByZXBvcnRzICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PV0FSTklORyI+WE1MX1BBUlNFX05PV0FSTklORzwvYT4gPSA2NCAvKiBzdXBwcmVzcyB3YXJuaW5nIHJlcG9ydHMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfUEVEQU5USUMiPlhNTF9QQVJTRV9QRURBTlRJQzwvYT4gPSAxMjggLyogcGVkYW50aWMgZXJyb3IgcmVwb3J0aW5nICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PQkxBTktTIj5YTUxfUEFSU0VfTk9CTEFOS1M8L2E+ID0gMjU2IC8qIHJlbW92ZSBibGFuayBub2RlcyAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9TQVgxIj5YTUxfUEFSU0VfU0FYMTwvYT4gPSA1MTIgLyogdXNlIHRoZSBTQVgxIGludGVyZmFjZSBpbnRlcm5hbGx5ICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1hJTkNMVURFIj5YTUxfUEFSU0VfWElOQ0xVREU8L2E+ID0gMTAyNCAvKiBJbXBsZW1lbnQgWEluY2x1ZGUgc3Vic3RpdGl0aW9uICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PTkVUIj5YTUxfUEFSU0VfTk9ORVQ8L2E+ID0gMjA0OCAvKiBGb3JiaWQgbmV0d29yayBhY2Nlc3MgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTk9ESUNUIj5YTUxfUEFSU0VfTk9ESUNUPC9hPiA9IDQwOTYgLyogRG8gbm90IHJldXNlIHRoZSBjb250ZXh0IGRpY3Rpb25uYXJ5ICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05TQ0xFQU4iPlhNTF9QQVJTRV9OU0NMRUFOPC9hPiA9IDgxOTIgLyogcmVtb3ZlIHJlZHVuZGFudCBuYW1lc3BhY2VzIGRlY2xhcmF0aW9ucyAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OT0NEQVRBIj5YTUxfUEFSU0VfTk9DREFUQTwvYT4gPSAxNjM4NCAvKiBtZXJnZSBDREFUQSBhcyB0ZXh0IG5vZGVzICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PWElOQ05PREUiPlhNTF9QQVJTRV9OT1hJTkNOT0RFPC9hPiA9IDMyNzY4IC8qIGRvIG5vdCBnZW5lcmF0ZSBYSU5DTFVERSBTVEFSVC9FTkQgbm9kZXMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfQ09NUEFDVCI+WE1MX1BBUlNFX0NPTVBBQ1Q8L2E+ID0gNjU1MzYgLyogY29tcGFjdCBzbWFsbCB0ZXh0IG5vZGVzOyBubyBtb2RpZmljYXRpb24gb2YgdGhlIHRyZWUgYWxsb3dlZCBhZnRlcndhcmRzICh3aWxsIHBvc3NpYmx5IGNyYXNoIGlmIHlvdSB0cnkgdG8gbW9kaWZ5IHRoZSB0cmVlKSAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9PTEQxMCI+WE1MX1BBUlNFX09MRDEwPC9hPiA9IDEzMTA3MiAvKiBwYXJzZSB1c2luZyBYTUwtMS4wIGJlZm9yZSB1cGRhdGUgNSAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OT0JBU0VGSVgiPlhNTF9QQVJTRV9OT0JBU0VGSVg8L2E+ID0gMjYyMTQ0IC8qIGRvIG5vdCBmaXh1cCBYSU5DTFVERSB4bWw6YmFzZSB1cmlzICovCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX0hVR0UiPlhNTF9QQVJTRV9IVUdFPC9hPiA9IDUyNDI4OCAvKiByZWxheCBhbnkgaGFyZGNvZGVkIGxpbWl0IGZyb20gdGhlIHBhcnNlciAqLworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9PTERTQVgiPlhNTF9QQVJTRV9PTERTQVg8L2E+ID0gMTA0ODU3NiAvKiAgcGFyc2UgdXNpbmcgU0FYMiBpbnRlcmZhY2UgZnJvbSBiZWZvcmUgMi43LjAgKi8KK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYSGFuZGxlclYxIj5TdHJ1Y3R1cmUgPC9hPnhtbFNBWEhhbmRsZXJWMTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU0FYSGFuZGxlclYxIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2ludGVybmFsU3Vic2V0U0FYRnVuYyI+aW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPglpbnRlcm5hbFN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjaXNTdGFuZGFsb25lU0FYRnVuYyI+aXNTdGFuZGFsb25lU0FYRnVuYzwvYT4JaXNTdGFuZGFsb25lCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0ludGVybmFsU3Vic2V0U0FYRnVuYzwvYT4JaGFzSW50ZXJuYWxTdWJzZXQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2hhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgloYXNFeHRlcm5hbFN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPglyZXNvbHZlRW50aXR5CisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNnZXRFbnRpdHlTQVhGdW5jIj5nZXRFbnRpdHlTQVhGdW5jPC9hPglnZXRFbnRpdHkKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VudGl0eURlY2xTQVhGdW5jIj5lbnRpdHlEZWNsU0FYRnVuYzwvYT4JZW50aXR5RGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjbm90YXRpb25EZWNsU0FYRnVuYyI+bm90YXRpb25EZWNsU0FYRnVuYzwvYT4Jbm90YXRpb25EZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNhdHRyaWJ1dGVEZWNsU0FYRnVuYyI+YXR0cmlidXRlRGVjbFNBWEZ1bmM8L2E+CWF0dHJpYnV0ZURlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VsZW1lbnREZWNsU0FYRnVuYyI+ZWxlbWVudERlY2xTQVhGdW5jPC9hPgllbGVtZW50RGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyI+dW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvYT4JdW5wYXJzZWRFbnRpdHlEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIj5zZXREb2N1bWVudExvY2F0b3JTQVhGdW5jPC9hPglzZXREb2N1bWVudExvY2F0b3IKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3N0YXJ0RG9jdW1lbnRTQVhGdW5jIj5zdGFydERvY3VtZW50U0FYRnVuYzwvYT4Jc3RhcnREb2N1bWVudAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjZW5kRG9jdW1lbnRTQVhGdW5jIj5lbmREb2N1bWVudFNBWEZ1bmM8L2E+CWVuZERvY3VtZW50CisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnRTQVhGdW5jIj5zdGFydEVsZW1lbnRTQVhGdW5jPC9hPglzdGFydEVsZW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VuZEVsZW1lbnRTQVhGdW5jIj5lbmRFbGVtZW50U0FYRnVuYzwvYT4JZW5kRWxlbWVudAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT4JcmVmZXJlbmNlCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNjaGFyYWN0ZXJzU0FYRnVuYyI+Y2hhcmFjdGVyc1NBWEZ1bmM8L2E+CWNoYXJhY3RlcnMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT4JaWdub3JhYmxlV2hpdGVzcGFjZQorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYyI+cHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYzwvYT4JcHJvY2Vzc2luZ0luc3RydWN0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNjb21tZW50U0FYRnVuYyI+Y29tbWVudFNBWEZ1bmM8L2E+CWNvbW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3dhcm5pbmdTQVhGdW5jIj53YXJuaW5nU0FYRnVuYzwvYT4Jd2FybmluZworICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+CWVycm9yCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+CWZhdGFsRXJyb3IJOiB1bnVzZWQgZXJyb3IoKSBnZXQgYWxsIHRoZSBlcnJvcnMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2dldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMiPmdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmM8L2E+CWdldFBhcmFtZXRlckVudGl0eQorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjY2RhdGFCbG9ja1NBWEZ1bmMiPmNkYXRhQmxvY2tTQVhGdW5jPC9hPgljZGF0YUJsb2NrCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNleHRlcm5hbFN1YnNldFNBWEZ1bmMiPmV4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT4JZXh0ZXJuYWxTdWJzZXQKKyAgICB1bnNpZ25lZCBpbnQJaW5pdGlhbGl6ZWQKK30geG1sU0FYSGFuZGxlclYxOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWEhhbmRsZXJWMVB0ciI+VHlwZWRlZiA8L2E+eG1sU0FYSGFuZGxlclYxUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT4gKiB4bWxTQVhIYW5kbGVyVjFQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iYXR0cmlidXRlRGVjbFNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGF0dHJpYnV0ZURlY2xTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlhdHRyaWJ1dGVEZWNsU0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVsZW0sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIvPgkJCQkJIGludCB0eXBlLCA8YnIvPgkJCQkJIGludCBkZWYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRlZmF1bHRWYWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IHRyZWUpPGJyLz4KKzwvcHJlPjxwPkFuIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVsbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBvZiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZWZhdWx0VmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHJlZSBvZiBlbnVtZXJhdGVkIHZhbHVlIHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImF0dHJpYnV0ZVNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGF0dHJpYnV0ZVNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWF0dHJpYnV0ZVNBWEZ1bmMJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+SGFuZGxlIGFuIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHRoYXQgaGFzIGJlZW4gcmVhZCBieSB0aGUgcGFyc2VyLiBUaGUgZGVmYXVsdCBoYW5kbGluZyBpcyB0byBjb252ZXJ0IHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpbnRvIGFuIERPTSBzdWJ0cmVlIGFuZCBwYXN0IGl0IGluIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHIiPnhtbEF0dHI8L2E+IGVsZW1lbnQgYWRkZWQgdG8gdGhlIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImNkYXRhQmxvY2tTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBjZGF0YUJsb2NrU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJY2RhdGFCbG9ja1NBWEZ1bmMJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5DYWxsZWQgd2hlbiBhIHBjZGF0YSBibG9jayBoYXMgYmVlbiBwYXJzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcGNkYXRhIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJsb2NrIGxlbmd0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImNoYXJhY3RlcnNTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBjaGFyYWN0ZXJzU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJY2hhcmFjdGVyc1NBWEZ1bmMJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5SZWNlaXZpbmcgc29tZSBjaGFycyBmcm9tIHRoZSBwYXJzZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImNvbW1lbnRTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBjb21tZW50U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJY29tbWVudFNBWEZ1bmMJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPkEgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPiBoYXMgYmVlbiBwYXJzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPiBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZWxlbWVudERlY2xTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBlbGVtZW50RGVjbFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWVsZW1lbnREZWNsU0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50KTxici8+Cis8L3ByZT48cD5BbiBlbGVtZW50IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB2YWx1ZSB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZW5kRG9jdW1lbnRTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBlbmREb2N1bWVudFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWVuZERvY3VtZW50U0FYRnVuYwkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkNhbGxlZCB3aGVuIHRoZSBkb2N1bWVudCBlbmQgaGFzIGJlZW4gZGV0ZWN0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJlbmRFbGVtZW50TnNTQVgyRnVuYyIvPkZ1bmN0aW9uIHR5cGUgZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWVuZEVsZW1lbnROc1NBWDJGdW5jCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk8YnIvPgorPC9wcmU+PHA+U0FYMiBjYWxsYmFjayB3aGVuIGFuIGVsZW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkIGJ5IHRoZSBwYXJzZXIuIEl0IHByb3ZpZGVzIHRoZSBuYW1lc3BhY2UgaW5mb3JtYXRpb25zIGZvciB0aGUgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bG9jYWxuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lc3BhY2UgbmFtZSBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJlbmRFbGVtZW50U0FYRnVuYyIvPkZ1bmN0aW9uIHR5cGUgZW5kRWxlbWVudFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWVuZEVsZW1lbnRTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q2FsbGVkIHdoZW4gdGhlIGVuZCBvZiBhbiBlbGVtZW50IGhhcyBiZWVuIGRldGVjdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZW50aXR5RGVjbFNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGVudGl0eURlY2xTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAllbnRpdHlEZWNsU0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+QW4gZW50aXR5IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJlcnJvclNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGVycm9yU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZXJyb3JTQVhGdW5jCQkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5EaXNwbGF5IGFuZCBmb3JtYXQgYW4gZXJyb3IgbWVzc2FnZXMsIGNhbGxiYWNrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZXh0ZXJuYWxTdWJzZXRTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBleHRlcm5hbFN1YnNldFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWV4dGVybmFsU3Vic2V0U0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBvbiBleHRlcm5hbCBzdWJzZXQgZGVjbGFyYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByb290IGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dGVybmFsIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZmF0YWxFcnJvclNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGZhdGFsRXJyb3JTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlmYXRhbEVycm9yU0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5EaXNwbGF5IGFuZCBmb3JtYXQgZmF0YWwgZXJyb3IgbWVzc2FnZXMsIGNhbGxiYWNrLiBOb3RlOiBzbyBmYXIgZmF0YWxFcnJvcigpIFNBWCBjYWxsYmFja3MgYXJlIG5vdCB1c2VkLCBlcnJvcigpIGdldCBhbGwgdGhlIGNhbGxiYWNrcyBmb3IgZXJyb3JzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZ2V0RW50aXR5U0FYRnVuYyIvPkZ1bmN0aW9uIHR5cGUgZ2V0RW50aXR5U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPglnZXRFbnRpdHlTQVhGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5HZXQgYW4gZW50aXR5IGJ5IG5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbnRpdHkgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBpZiBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CWdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5HZXQgYSBwYXJhbWV0ZXIgZW50aXR5IGJ5IG5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbnRpdHkgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBpZiBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAloYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0PzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGhhc0ludGVybmFsU3Vic2V0U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAloYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyIvPkZ1bmN0aW9uIHR5cGUgaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5SZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSBjaGFyYWN0ZXJzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJpbnRlcm5hbFN1YnNldFNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIGludGVybmFsU3Vic2V0U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaW50ZXJuYWxTdWJzZXRTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIG9uIGludGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJvb3QgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5FeHRlcm5hbElEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0ZXJuYWwgSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU1lTVEVNIElEIChlLmcuIGZpbGVuYW1lIG9yIFVSTCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJpc1N0YW5kYWxvbmVTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBpc1N0YW5kYWxvbmVTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWlzU3RhbmRhbG9uZVNBWEZ1bmMJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5JcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lPzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJub3RhdGlvbkRlY2xTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBub3RhdGlvbkRlY2xTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlub3RhdGlvbkRlY2xTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkKTxici8+Cis8L3ByZT48cD5XaGF0IHRvIGRvIHdoZW4gYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBoYXMgYmVlbiBwYXJzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMiLz5GdW5jdGlvbiB0eXBlIHByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSk8YnIvPgorPC9wcmU+PHA+QSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGhhcyBiZWVuIHBhcnNlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQSSBkYXRhJ3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJyZWZlcmVuY2VTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSByZWZlcmVuY2VTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlyZWZlcmVuY2VTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q2FsbGVkIHdoZW4gYW4gZW50aXR5IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGlzIGRldGVjdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJyZXNvbHZlRW50aXR5U0FYRnVuYyIvPkZ1bmN0aW9uIHR5cGUgcmVzb2x2ZUVudGl0eVNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXJlc29sdmVFbnRpdHlTQVhGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCk8YnIvPgorPC9wcmU+PHA+Q2FsbGJhY2s6IFRoZSBlbnRpdHkgbG9hZGVyLCB0byBjb250cm9sIHRoZSBsb2FkaW5nIG9mIGV4dGVybmFsIGVudGl0aWVzLCB0aGUgYXBwbGljYXRpb24gY2FuIGVpdGhlcjogLSBvdmVycmlkZSB0aGlzIHJlc29sdmVFbnRpdHkoKSBjYWxsYmFjayBpbiB0aGUgU0FYIGJsb2NrIC0gb3IgYmV0dGVyIHVzZSB0aGUgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKSBmdW5jdGlvbiB0byBzZXQgdXAgaXQncyBvd24gZW50aXR5IHJlc29sdXRpb24gcm91dGluZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpZiBpbmxpbmVkIG9yIE5VTEwgZm9yIERPTSBiZWhhdmlvdXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ic2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyIvPkZ1bmN0aW9uIHR5cGUgc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYwkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhMb2NhdG9yUHRyIj54bWxTQVhMb2NhdG9yUHRyPC9hPiBsb2MpPGJyLz4KKzwvcHJlPjxwPlJlY2VpdmUgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXQgc3RhcnR1cCwgYWN0dWFsbHkgeG1sRGVmYXVsdFNBWExvY2F0b3IuIEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBTQVggTG9jYXRvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InN0YXJ0RG9jdW1lbnRTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBzdGFydERvY3VtZW50U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJc3RhcnREb2N1bWVudFNBWEZ1bmMJCSh2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5DYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgc3RhcnQgYmVpbmcgcHJvY2Vzc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ic3RhcnRFbGVtZW50TnNTQVgyRnVuYyIvPkZ1bmN0aW9uIHR5cGUgc3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJc3RhcnRFbGVtZW50TnNTQVgyRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxici8+CQkJCQkgaW50IG5iX25hbWVzcGFjZXMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzLCA8YnIvPgkJCQkJIGludCBuYl9hdHRyaWJ1dGVzLCA8YnIvPgkJCQkJIGludCBuYl9kZWZhdWx0ZWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBhdHRyaWJ1dGVzKTxici8+Cis8L3ByZT48cD5TQVgyIGNhbGxiYWNrIHdoZW4gYW4gZWxlbWVudCBzdGFydCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQsIGFzIHdlbGwgYXMgdGhlIG5ldyBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIG9uIHRoZSBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9mIHRoZSBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJfbmFtZXNwYWNlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bnVtYmVyIG9mIG5hbWVzcGFjZSBkZWZpbml0aW9ucyBvbiB0aGF0IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHByZWZpeC9VUkkgcGFpcnMgbmFtZXNwYWNlIGRlZmluaXRpb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYl9hdHRyaWJ1dGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgb24gdGhhdCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYl9kZWZhdWx0ZWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZGVmYXVsdGVkIGF0dHJpYnV0ZXMuIFRoZSBkZWZhdWx0ZWQgb25lcyBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHJpYnV0ZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIChsb2NhbG5hbWUvcHJlZml4L1VSSS92YWx1ZS9lbmQpIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlcy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJzdGFydEVsZW1lbnRTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSBzdGFydEVsZW1lbnRTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlzdGFydEVsZW1lbnRTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGF0dHMpPGJyLz4KKzwvcHJlPjxwPkNhbGxlZCB3aGVuIGFuIG9wZW5pbmcgdGFnIGhhcyBiZWVuIHByb2Nlc3NlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVsZW1lbnQgbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGFycmF5IG9mIG5hbWUvdmFsdWUgYXR0cmlidXRlcyBwYWlycywgTlVMTCB0ZXJtaW5hdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0idW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyIvPkZ1bmN0aW9uIHR5cGUgdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYwkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBub3RhdGlvbk5hbWUpPGJyLz4KKzwvcHJlPjxwPldoYXQgdG8gZG8gd2hlbiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb24gaXMgcGFyc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgbmFtZSBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub3RhdGlvbk5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Indhcm5pbmdTQVhGdW5jIi8+RnVuY3Rpb24gdHlwZSB3YXJuaW5nU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJd2FybmluZ1NBWEZ1bmMJCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPkRpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGNhbGxiYWNrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiLz5GdW5jdGlvbiB0eXBlIHhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxFeHRlcm5hbEVudGl0eUxvYWRlcgkoY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIElELCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjb250ZXh0KTxici8+Cis8L3ByZT48cD5FeHRlcm5hbCBlbnRpdHkgbG9hZGVycyB0eXBlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFN5c3RlbSBJRCBvZiB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFB1YmxpYyBJRCBvZiB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IGlucHV0IHBhcnNlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiLz5GdW5jdGlvbiB0eXBlIHhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VySW5wdXREZWFsbG9jYXRlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBmb3IgZnJlZWluZyBzb21lIHBhcnNlciBpbnB1dCBhbGxvY2F0aW9ucy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZyB0byBkZWFsbG9jYXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnl0ZUNvbnN1bWVkIi8+eG1sQnl0ZUNvbnN1bWVkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+bG9uZwl4bWxCeXRlQ29uc3VtZWQJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgcGFyc2VyIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBlbnRpdHkuIFRoaXMgZnVuY3Rpb24gaXMgY29tcHV0ZWQgaW4gYnl0ZXMgZnJvbSB0aGUgYmVnaW5uaW5nIHN0YXJ0aW5nIGF0IHplcm8gYW5kIGZpbmlzaGluZyBhdCB0aGUgc2l6ZSBpbiBieXRlIG9mIHRoZSBmaWxlIGlmIHBhcnNpbmcgYSBmaWxlLiBUaGUgZnVuY3Rpb24gaXMgb2YgY29uc3RhbnQgY29zdCBpZiB0aGUgaW5wdXQgaXMgVVRGLTggYnV0IGNhbiBiZSBjb3N0bHkgaWYgcnVuIG9uIG5vbi1VVEYtOCBpbnB1dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGV4IGluIGJ5dGVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZW50aXR5IG9yIC0xIGluIGNhc2UgdGhlIGluZGV4IGNvdWxkIG5vdCBiZSBjb21wdXRlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwUGFyc2VyIi8+eG1sQ2xlYW51cFBhcnNlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYW51cFBhcnNlcgkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gbmFtZSBpcyBzb21ld2hhdCBtaXNsZWFkaW5nLiBJdCBkb2VzIG5vdCBjbGVhbiB1cCBwYXJzZXIgc3RhdGUsIGl0IGNsZWFucyB1cCBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSBsaWJyYXJ5IGl0c2VsZi4gSXQgaXMgYSBjbGVhbnVwIGZ1bmN0aW9uIGZvciB0aGUgWE1MIGxpYnJhcnkuIEl0IHRyaWVzIHRvIHJlY2xhaW0gYWxsIHJlbGF0ZWQgZ2xvYmFsIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBsaWJyYXJ5IHByb2Nlc3NpbmcuIEl0IGRvZXNuJ3QgZGVhbGxvY2F0ZSBhbnkgZG9jdW1lbnQgcmVsYXRlZCBtZW1vcnkuIE9uZSBzaG91bGQgY2FsbCB4bWxDbGVhbnVwUGFyc2VyKCkgb25seSB3aGVuIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hlZCB1c2luZyB0aGUgbGlicmFyeSBhbmQgYWxsIFhNTC9IVE1MIGRvY3VtZW50cyBidWlsdCB3aXRoIGl0LiBTZWUgYWxzbyB4bWxJbml0UGFyc2VyKCkgd2hpY2ggaGFzIHRoZSBvcHBvc2l0ZSBmdW5jdGlvbiBvZiBwcmVwYXJpbmcgdGhlIGxpYnJhcnkgZm9yIG9wZXJhdGlvbnMuIFdBUk5JTkc6IGlmIHlvdXIgYXBwbGljYXRpb24gaXMgbXVsdGl0aHJlYWRlZCBvciBoYXMgcGx1Z2luIHN1cHBvcnQgY2FsbGluZyB0aGlzIG1heSBjcmFzaCB0aGUgYXBwbGljYXRpb24gaWYgYW5vdGhlciB0aHJlYWQgb3IgYSBwbHVnaW4gaXMgc3RpbGwgdXNpbmcgbGlieG1sMi4gSXQncyBzb21ldGltZXMgdmVyeSBoYXJkIHRvIGd1ZXNzIGlmIGxpYnhtbDIgaXMgaW4gdXNlIGluIHRoZSBhcHBsaWNhdGlvbiwgc29tZSBsaWJyYXJpZXMgb3IgcGx1Z2lucyBtYXkgdXNlIGl0IHdpdGhvdXQgbm90aWNlLiBJbiBjYXNlIG9mIGRvdWJ0IGFic3RhaW4gZnJvbSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gb3IgZG8gaXQganVzdCBiZWZvcmUgY2FsbGluZyBleGl0KCkgdG8gYXZvaWQgbGVhayByZXBvcnRzIGZyb20gdmFsZ3JpbmQgITwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDbGVhck5vZGVJbmZvU2VxIi8+eG1sQ2xlYXJOb2RlSW5mb1NlcSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYXJOb2RlSW5mb1NlcQkJKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIiPnhtbFBhcnNlck5vZGVJbmZvU2VxUHRyPC9hPiBzZXEpPGJyLz4KKzwvcHJlPjxwPi0tIENsZWFyIChyZWxlYXNlIG1lbW9yeSBhbmQgcmVpbml0aWFsaXplKSBub2RlIGluZm8gc2VxdWVuY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENsZWFyUGFyc2VyQ3R4dCIvPnhtbENsZWFyUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYXJQYXJzZXJDdHh0CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+Q2xlYXIgKHJlbGVhc2Ugb3duZWQgcmVzb3VyY2VzKSBhbmQgcmVpbml0aWFsaXplIGEgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENyZWF0ZURvY1BhcnNlckN0eHQiLz54bWxDcmVhdGVEb2NQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dAkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1cik8YnIvPgorPC9wcmU+PHA+Q3JlYXRlcyBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlSU9QYXJzZXJDdHh0Ii8+eG1sQ3JlYXRlSU9QYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlSU9QYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIvPgkJCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgdXNpbmcgdGhlIFhNTCBwYXJzZXIgd2l0aCBhbiBleGlzdGluZyBJL08gc3RyZWFtPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb3JlYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyByZWFkIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiLz54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CXhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyLz4JCQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIHVzaW5nIHRoZSBYTUwgcGFyc2VyIGluIHB1c2ggbW9kZS4gSWYgQGJ1ZmZlciBhbmQgQHNpemUgYXJlIG5vbi1OVUxMLCB0aGUgZGF0YSBpcyB1c2VkIHRvIGRldGVjdCB0aGUgZW5jb2RpbmcuIFRoZSByZW1haW5pbmcgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiB3aWxsIGJlIHBhcnNlZCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgZmVkIGluIGFnYWluIHRocm91Z2ggeG1sUGFyc2VDaHVuay4gVG8gYWxsb3cgY29udGVudCBlbmNvZGluZyBkZXRlY3Rpb24sIEBzaXplIHNob3VsZCBiZSAmZ3Q7PSA0IFRoZSB2YWx1ZSBvZiBAZmlsZW5hbWUgaXMgdXNlZCBmb3IgZmV0Y2hpbmcgZXh0ZXJuYWwgZW50aXRpZXMgYW5kIGVycm9yL3dhcm5pbmcgcmVwb3J0cy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNodW5rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVhZERvYyIvPnhtbEN0eHRSZWFkRG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbEN0eHRSZWFkRG9jCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVhZEZkIi8+eG1sQ3R4dFJlYWRGZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxDdHh0UmVhZEZkCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgZmQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIGFuZCBidWlsZCBhIHRyZWUuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dCBOT1RFIHRoYXQgdGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsIG5vdCBiZSBjbG9zZWQgd2hlbiB0aGUgcmVhZGVyIGlzIGNsb3NlZCBvciByZXNldC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3R4dFJlYWRGaWxlIi8+eG1sQ3R4dFJlYWRGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbEN0eHRSZWFkRmlsZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgb3IgVVJMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVhZElPIi8+eG1sQ3R4dFJlYWRJTyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxDdHh0UmVhZElPCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlIGFuZCBidWlsZCBhIHRyZWUuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb3JlYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyByZWFkIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEN0eHRSZWFkTWVtb3J5Ii8+eG1sQ3R4dFJlYWRNZW1vcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sQ3R4dFJlYWRNZW1vcnkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVzZXQiLz54bWxDdHh0UmVzZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEN0eHRSZXNldAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5SZXNldCBhIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVzZXRQdXNoIi8+eG1sQ3R4dFJlc2V0UHVzaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDdHh0UmVzZXRQdXNoCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogY2h1bmssIDxici8+CQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8YnIvPgorPC9wcmU+PHA+UmVzZXQgYSBwdXNoIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNodW5rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3R4dFVzZU9wdGlvbnMiLz54bWxDdHh0VXNlT3B0aW9ucyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDdHh0VXNlT3B0aW9ucwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPkFwcGxpZXMgdGhlIG9wdGlvbnMgdG8gdGhlIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCB0aGUgc2V0IG9mIHVua25vd24gb3IgdW5pbXBsZW1lbnRlZCBvcHRpb25zIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZVBhcnNlckN0eHQiLz54bWxGcmVlUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVBhcnNlckN0eHQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5GcmVlIGFsbCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBwYXJzZXIgY29udGV4dC4gSG93ZXZlciB0aGUgcGFyc2VkIGRvY3VtZW50IGluIGN0eHQtJmd0O215RG9jIGlzIG5vdCBmcmVlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyIi8+eG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4JeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkdldCB0aGUgZGVmYXVsdCBleHRlcm5hbCBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb24gZm9yIHRoZSBhcHBsaWNhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPiBmdW5jdGlvbiBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0RmVhdHVyZSIvPnhtbEdldEZlYXR1cmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2V0RmVhdHVyZQkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIvPgkJCQkJIHZvaWQgKiByZXN1bHQpPGJyLz4KKzwvcHJlPjxwPlJlYWQgdGhlIGN1cnJlbnQgdmFsdWUgb2Ygb25lIGZlYXR1cmUgb2YgdGhpcyBwYXJzZXIgaW5zdGFuY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTC9IVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmVhdHVyZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXN1bHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxvY2F0aW9uIHRvIHN0b3JlIHRoZSByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb3IgZXJyb3IsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0RmVhdHVyZXNMaXN0Ii8+eG1sR2V0RmVhdHVyZXNMaXN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEdldEZlYXR1cmVzTGlzdAkJKGludCAqIGxlbiwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICoqIHJlc3VsdCk8YnIvPgorPC9wcmU+PHA+Q29weSBhdCBtb3N0ICpAbGVuIGZlYXR1cmUgbmFtZXMgaW50byB0aGUgQHJlc3VsdCBhcnJheTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBmZWF0dXJlcyBuYW1lIGFycmF5IChpbnB1dC9vdXRwdXQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXN1bHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGFycmF5IG9mIHN0cmluZyB0byBiZSBmaWxsZWQgd2l0aCB0aGUgZmVhdHVyZXMgbmFtZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb3IgZXJyb3IsIG9yIHRoZSB0b3RhbCBudW1iZXIgb2YgZmVhdHVyZXMsIGxlbiBpcyB1cGRhdGVkIHdpdGggdGhlIG51bWJlciBvZiBzdHJpbmdzIGNvcGllZCwgc3RyaW5ncyBtdXN0IG5vdCBiZSBkZWFsbG9jYXRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEhhc0ZlYXR1cmUiLz54bWxIYXNGZWF0dXJlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc0ZlYXR1cmUJCQkoPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxGZWF0dXJlIj54bWxGZWF0dXJlPC9hPiBmZWF0dXJlKTxici8+Cis8L3ByZT48cD5FeGFtaW5lcyBpZiB0aGUgbGlicmFyeSBoYXMgYmVlbiBjb21waWxlZCB3aXRoIGEgZ2l2ZW4gZmVhdHVyZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZlYXR1cmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmZWF0dXJlIHRvIGJlIGV4YW1pbmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vbi16ZXJvIHZhbHVlIGlmIHRoZSBmZWF0dXJlIGV4aXN0LCBvdGhlcndpc2UgemVyby4gUmV0dXJucyB6ZXJvICgwKSBpZiB0aGUgZmVhdHVyZSBkb2VzIG5vdCBleGlzdCBvciBhbiB1bmtub3duIHVua25vd24gZmVhdHVyZSBpcyByZXF1ZXN0ZWQsIG5vbi16ZXJvIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJT1BhcnNlRFREIi8+eG1sSU9QYXJzZURURCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgl4bWxJT1BhcnNlRFRECQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPkxvYWQgYW5kIHBhcnNlIGEgRFREPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jayBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSW5wdXQgQnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIEBpbnB1dCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBmdW5jdGlvbiBpbiBhbnkgY2FzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJbml0Tm9kZUluZm9TZXEiLz54bWxJbml0Tm9kZUluZm9TZXEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEluaXROb2RlSW5mb1NlcQkJKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIiPnhtbFBhcnNlck5vZGVJbmZvU2VxUHRyPC9hPiBzZXEpPGJyLz4KKzwvcHJlPjxwPi0tIEluaXRpYWxpemUgKHNldCB0byBpbml0aWFsIHN0YXRlKSBub2RlIGluZm8gc2VxdWVuY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEluaXRQYXJzZXIiLz54bWxJbml0UGFyc2VyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxJbml0UGFyc2VyCQkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgWE1MIHBhcnNlci4gVGhpcyBpcyBub3QgcmVlbnRyYW50LiBDYWxsIG9uY2UgYmVmb3JlIHByb2Nlc3NpbmcgaW4gY2FzZSBvZiB1c2UgaW4gbXVsdGl0aHJlYWRlZCBwcm9ncmFtcy48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSW5pdFBhcnNlckN0eHQiLz54bWxJbml0UGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJbml0UGFyc2VyQ3R4dAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgYSBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEtlZXBCbGFua3NEZWZhdWx0Ii8+eG1sS2VlcEJsYW5rc0RlZmF1bHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sS2VlcEJsYW5rc0RlZmF1bHQJCShpbnQgdmFsKTxici8+Cis8L3ByZT48cD5TZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGRlZmF1bHQgYmxhbmtzIHRleHQgbm9kZXMgc3VwcG9ydC4gVGhlIDEueCB2ZXJzaW9uIG9mIHRoZSBwYXJzZXIgdXNlZCBhbiBoZXVyaXN0aWMgdG8gdHJ5IHRvIGRldGVjdCBpZ25vcmFibGUgd2hpdGUgc3BhY2VzLiBBcyBhIHJlc3VsdCB0aGUgU0FYIGNhbGxiYWNrIHdhcyBnZW5lcmF0aW5nIHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlKCkgY2FsbGJhY2tzIGluc3RlYWQgb2YgY2hhcmFjdGVycygpIG9uZSwgYW5kIHdoZW4gdXNpbmcgdGhlIERPTSBvdXRwdXQgdGV4dCBub2RlcyBjb250YWluaW5nIHRob3NlIGJsYW5rcyB3ZXJlIG5vdCBnZW5lcmF0ZWQuIFRoZSAyLnggYW5kIGxhdGVyIHZlcnNpb24gd2lsbCBzd2l0Y2ggdG8gdGhlIFhNTCBzdGFuZGFyZCB3YXkgYW5kIGlnbm9yYWJsZVdoaXRlc3BhY2UoKSBhcmUgb25seSBnZW5lcmF0ZWQgd2hlbiBydW5uaW5nIHRoZSBwYXJzZXIgaW4gdmFsaWRhdGluZyBtb2RlIGFuZCB3aGVuIHRoZSBjdXJyZW50IGVsZW1lbnQgZG9lc24ndCBhbGxvdyBDREFUQSBvciBtaXhlZCBjb250ZW50LiBUaGlzIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGFzIGEgd2F5IHRvIGZvcmNlIHRoZSBzdGFuZGFyZCBiZWhhdmlvciBvbiAxLlggbGlicyBhbmQgdG8gc3dpdGNoIGJhY2sgdG8gdGhlIG9sZCBtb2RlIGZvciBjb21wYXRpYmlsaXR5IHdoZW4gcnVubmluZyAxLlggY2xpZW50IGNvZGUgb24gMi5YIC4gVXBncmFkZSBvZiAxLlggY29kZSBzaG91bGQgYmUgZG9uZSBieSB1c2luZyB4bWxJc0JsYW5rTm9kZSgpIGNvbW1vZGl0eSBmdW5jdGlvbiB0byBkZXRlY3QgdGhlICJlbXB0eSIgbm9kZXMgZ2VuZXJhdGVkLiBUaGlzIHZhbHVlIGFsc28gYWZmZWN0IGF1dG9nZW5lcmF0aW9uIG9mIGluZGVudGF0aW9uIHdoZW4gc2F2aW5nIGNvZGUgaWYgYmxhbmtzIHNlY3Rpb25zIGFyZSBrZXB0LCBpbmRlbnRhdGlvbiBpcyBub3QgZ2VuZXJhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnQgMCBvciAxPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGFzdCB2YWx1ZSBmb3IgMCBmb3Igbm8gc3Vic3RpdHV0aW9uLCAxIGZvciBzdWJzdGl0dXRpb24uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGluZU51bWJlcnNEZWZhdWx0Ii8+eG1sTGluZU51bWJlcnNEZWZhdWx0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpbmVOdW1iZXJzRGVmYXVsdAkJKGludCB2YWwpPGJyLz4KKzwvcHJlPjxwPlNldCBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgZW5hYmxpbmcgbGluZSBudW1iZXJzIGluIGVsZW1lbnRzIGNvbnRlbnRzLiBUaGlzIG1heSBicmVhayBvbiBvbGQgYXBwbGljYXRpb24gYW5kIGlzIHR1cm5lZCBvZmYgYnkgZGVmYXVsdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW50IDAgb3IgMTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3QgdmFsdWUgZm9yIDAgZm9yIG5vIHN1YnN0aXR1dGlvbiwgMSBmb3Igc3Vic3RpdHV0aW9uLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbExvYWRFeHRlcm5hbEVudGl0eSIvPnhtbExvYWRFeHRlcm5hbEVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JeG1sTG9hZEV4dGVybmFsRW50aXR5CShjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogSUQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkxvYWQgYW4gZXh0ZXJuYWwgZW50aXR5LCBub3RlIHRoYXQgdGhlIHVzZSBvZiB0aGlzIGZ1bmN0aW9uIGZvciB1bnBhcnNlZCBlbnRpdGllcyBtYXkgZ2VuZXJhdGUgcHJvYmxlbXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSTCBmb3IgdGhlIGVudGl0eSB0byBsb2FkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFB1YmxpYyBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBpbiB3aGljaCB0aGUgZW50aXR5IGlzIGNhbGxlZCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3SU9JbnB1dFN0cmVhbSIvPnhtbE5ld0lPSW5wdXRTdHJlYW0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXhtbE5ld0lPSW5wdXRTdHJlYW0JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgaW5wdXQgc3RyZWFtIHN0cnVjdHVyZSBlbmNhcHN1bGF0aW5nIHRoZSBAaW5wdXQgaW50byBhIHN0cmVhbSBzdWl0YWJsZSBmb3IgdGhlIHBhcnNlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBJbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBpbnB1dCBzdHJlYW0gb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1BhcnNlckN0eHQiLz54bWxOZXdQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sTmV3UGFyc2VyQ3R4dAkodm9pZCk8YnIvPgorPC9wcmU+PHA+QWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgcGFyc2VyIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSIvPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkgaW50IGRlcHRoLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHJpbmcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiBsc3QpPGJyLz4KKzwvcHJlPjxwPlBhcnNlIGEgd2VsbC1iYWxhbmNlZCBjaHVuayBvZiBhbiBYTUwgZG9jdW1lbnQgY2FsbGVkIGJ5IHRoZSBwYXJzZXIgVGhlIGFsbG93ZWQgc2VxdWVuY2UgZm9yIHRoZSBXZWxsIEJhbGFuY2VkIENodW5rIGlzIHRoZSBvbmUgZGVmaW5lZCBieSB0aGUgY29udGVudCBwcm9kdWN0aW9uIGluIHRoZSBYTUwgZ3JhbW1hcjogWzQzXSBjb250ZW50IDo6PSAoZWxlbWVudCB8IENoYXJEYXRhIHwgUmVmZXJlbmNlIHwgQ0RTZWN0IHwgUEkgfCBDb21tZW50KSo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHRoZSBjaHVuayBwZXJ0YWlucyB0bzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzIChwb3NzaWJseSBOVUxMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVzZWQgZm9yIGxvb3AgZGV0ZWN0aW9uLCB1c2UgMDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGluIFVURjggb3IgSVNPLUxhdGluICh6ZXJvIHRlcm1pbmF0ZWQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBjaHVuayBpcyB3ZWxsIGJhbGFuY2VkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQgdGhlIHBhcnNlciBlcnJvciBjb2RlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiLz54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyLz4JCQkJCQkgaW50IGRlcHRoLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyaW5nLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqIGxzdCwgPGJyLz4JCQkJCQkgaW50IHJlY292ZXIpPGJyLz4KKzwvcHJlPjxwPlBhcnNlIGEgd2VsbC1iYWxhbmNlZCBjaHVuayBvZiBhbiBYTUwgZG9jdW1lbnQgY2FsbGVkIGJ5IHRoZSBwYXJzZXIgVGhlIGFsbG93ZWQgc2VxdWVuY2UgZm9yIHRoZSBXZWxsIEJhbGFuY2VkIENodW5rIGlzIHRoZSBvbmUgZGVmaW5lZCBieSB0aGUgY29udGVudCBwcm9kdWN0aW9uIGluIHRoZSBYTUwgZ3JhbW1hcjogWzQzXSBjb250ZW50IDo6PSAoZWxlbWVudCB8IENoYXJEYXRhIHwgUmVmZXJlbmNlIHwgQ0RTZWN0IHwgUEkgfCBDb21tZW50KSo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHRoZSBjaHVuayBwZXJ0YWlucyB0bzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzIChwb3NzaWJseSBOVUxMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVzZWQgZm9yIGxvb3AgZGV0ZWN0aW9uLCB1c2UgMDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGluIFVURjggb3IgSVNPLUxhdGluICh6ZXJvIHRlcm1pbmF0ZWQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWNvdmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5yZXR1cm4gbm9kZXMgZXZlbiBpZiB0aGUgZGF0YSBpcyBicm9rZW4gKHVzZSAwKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgY2h1bmsgaXMgd2VsbCBiYWxhbmNlZCwgLTEgaW4gY2FzZSBvZiBhcmdzIHByb2JsZW0gYW5kIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2UgSW4gY2FzZSByZWNvdmVyIGlzIHNldCB0byAxLCB0aGUgbm9kZWxpc3Qgd2lsbCBub3QgYmUgZW1wdHkgZXZlbiBpZiB0aGUgcGFyc2VkIGNodW5rIGlzIG5vdCB3ZWxsIGJhbGFuY2VkLCBhc3N1bWluZyB0aGUgcGFyc2luZyBzdWNjZWVkZWQgdG8gc29tZSBleHRlbnQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDaHVuayIvPnhtbFBhcnNlQ2h1bmsgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VDaHVuawkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBpbnQgdGVybWluYXRlKTxici8+Cis8L3ByZT48cD5QYXJzZSBhIENodW5rIG9mIG1lbW9yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaHVuazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgaW4gYnl0ZSBvZiB0aGUgY2h1bms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRlcm1pbmF0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGFzdCBjaHVuayBpbmRpY2F0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnplcm8gaWYgbm8gZXJyb3IsIHRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3JzIj54bWxQYXJzZXJFcnJvcnM8L2E+IG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSIvPnhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogSUQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiBsc3QpPGJyLz4KKzwvcHJlPjxwPlBhcnNlIGFuIGV4dGVybmFsIGdlbmVyYWwgZW50aXR5IHdpdGhpbiBhbiBleGlzdGluZyBwYXJzaW5nIGNvbnRleHQgQW4gZXh0ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZCBleHRQYXJzZWRFbnQuIFs3OF0gZXh0UGFyc2VkRW50IDo6PSBUZXh0RGVjbD8gY29udGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhpc3RpbmcgcGFyc2luZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+SUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTeXN0ZW0gSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bHN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgZW50aXR5IGlzIHdlbGwgZm9ybWVkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQgdGhlIHBhcnNlciBlcnJvciBjb2RlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRFREIi8+eG1sUGFyc2VEVEQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JeG1sUGFyc2VEVEQJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyLz4KKzwvcHJlPjxwPkxvYWQgYW5kIHBhcnNlIGFuIGV4dGVybmFsIHN1YnNldC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTkFNRSogY29udGFpbmluZyB0aGUgRXh0ZXJuYWwgSUQgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTkFNRSogY29udGFpbmluZyB0aGUgVVJMIHRvIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZURvYyIvPnhtbFBhcnNlRG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFBhcnNlRG9jCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1cik8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VEb2N1bWVudCIvPnhtbFBhcnNlRG9jdW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VEb2N1bWVudAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBkb2N1bWVudCAoYW5kIGJ1aWxkIGEgdHJlZSBpZiB1c2luZyB0aGUgc3RhbmRhcmQgU0FYIGludGVyZmFjZSkuIFsxXSBkb2N1bWVudCA6Oj0gcHJvbG9nIGVsZW1lbnQgTWlzYyogWzIyXSBwcm9sb2cgOjo9IFhNTERlY2w/IE1pc2MqIChkb2N0eXBlZGVjbCBNaXNjKik/PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAsIC0xIGluIGNhc2Ugb2YgZXJyb3IuIHRoZSBwYXJzZXIgY29udGV4dCBpcyBhdWdtZW50ZWQgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbnRpdHkiLz54bWxQYXJzZUVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxQYXJzZUVudGl0eQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGV4dGVybmFsIGVudGl0eSBvdXQgb2YgY29udGV4dCBhbmQgYnVpbGQgYSB0cmVlLiBbNzhdIGV4dFBhcnNlZEVudCA6Oj0gVGV4dERlY2w/IGNvbnRlbnQgVGhpcyBjb3JyZXNwb25kIHRvIGEgIldlbGwgQmFsYW5jZWQiIGNodW5rPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUV4dFBhcnNlZEVudCIvPnhtbFBhcnNlRXh0UGFyc2VkRW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlRXh0UGFyc2VkRW50CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYSBnZW5lcmFsIHBhcnNlZCBlbnRpdHkgQW4gZXh0ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZCBleHRQYXJzZWRFbnQuIFs3OF0gZXh0UGFyc2VkRW50IDo6PSBUZXh0RGVjbD8gY29udGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wLCAtMSBpbiBjYXNlIG9mIGVycm9yLiB0aGUgcGFyc2VyIGNvbnRleHQgaXMgYXVnbWVudGVkIGFzIGEgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRXh0ZXJuYWxFbnRpdHkiLz54bWxQYXJzZUV4dGVybmFsRW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlRXh0ZXJuYWxFbnRpdHkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIvPgkJCQkJIGludCBkZXB0aCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBJRCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqIGxzdCk8YnIvPgorPC9wcmU+PHA+UGFyc2UgYW4gZXh0ZXJuYWwgZ2VuZXJhbCBlbnRpdHkgQW4gZXh0ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZCBleHRQYXJzZWRFbnQuIFs3OF0gZXh0UGFyc2VkRW50IDo6PSBUZXh0RGVjbD8gY29udGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgdGhlIGNodW5rIHBlcnRhaW5zIHRvPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jIChwb3NzaWJseSBOVUxMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MgKHBvc3NpYmx5IE5VTEwpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+SUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTeXN0ZW0gSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bHN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgZW50aXR5IGlzIHdlbGwgZm9ybWVkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQgdGhlIHBhcnNlciBlcnJvciBjb2RlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRmlsZSIvPnhtbFBhcnNlRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxQYXJzZUZpbGUJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgaWYgdGhlIGZpbGUgd2FzIHdlbGxmb3JtZWQsIE5VTEwgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlSW5Ob2RlQ29udGV4dCIvPnhtbFBhcnNlSW5Ob2RlQ29udGV4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvcnMiPnhtbFBhcnNlckVycm9yczwvYT4JeG1sUGFyc2VJbk5vZGVDb250ZXh0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIvPgkJCQkJIGludCBkYXRhbGVuLCA8YnIvPgkJCQkJIGludCBvcHRpb25zLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTxici8+Cis8L3ByZT48cD5QYXJzZSBhIHdlbGwtYmFsYW5jZWQgY2h1bmsgb2YgYW4gWE1MIGRvY3VtZW50IHdpdGhpbiB0aGUgY29udGV4dCAoRFRELCBuYW1lc3BhY2VzLCBldGMgLi4uKSBvZiB0aGUgZ2l2ZW4gbm9kZS4gVGhlIGFsbG93ZWQgc2VxdWVuY2UgZm9yIHRoZSBkYXRhIGlzIGEgV2VsbCBCYWxhbmNlZCBDaHVuayBkZWZpbmVkIGJ5IHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOiBbNDNdIGNvbnRlbnQgOjo9IChlbGVtZW50IHwgQ2hhckRhdGEgfCBSZWZlcmVuY2UgfCBDRFNlY3QgfCBQSSB8IENvbW1lbnQpKjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbnRleHQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YWxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZyBsZW5ndGggaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxzdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIHNldCBvZiBwYXJzZWQgbm9kZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX09LIj5YTUxfRVJSX09LPC9hPiBpZiB0aGUgY2h1bmsgaXMgd2VsbCBiYWxhbmNlZCwgYW5kIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZU1lbW9yeSIvPnhtbFBhcnNlTWVtb3J5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFBhcnNlTWVtb3J5CQkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBwb2ludGVyIHRvIGEgY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJBZGROb2RlSW5mbyIvPnhtbFBhcnNlckFkZE5vZGVJbmZvICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZXJBZGROb2RlSW5mbwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1B0ciI+eG1sUGFyc2VyTm9kZUluZm9QdHI8L2E+IGluZm8pPGJyLz4KKzwvcHJlPjxwPkluc2VydCBub2RlIGluZm8gcmVjb3JkIGludG8gdGhlIHNvcnRlZCBzZXF1ZW5jZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmZvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyRmluZE5vZGVJbmZvIi8+eG1sUGFyc2VyRmluZE5vZGVJbmZvICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mbyI+eG1sUGFyc2VyTm9kZUluZm88L2E+ICoJeG1sUGFyc2VyRmluZE5vZGVJbmZvCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHgsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5GaW5kIHRoZSBwYXJzZXIgbm9kZSBpbmZvIHN0cnVjdCBmb3IgYSBnaXZlbiBub2RlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIG5vZGUgd2l0aGluIHRoZSB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT4gYmxvY2sgcG9pbnRlciBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiLz54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnVuc2lnbmVkIGxvbmcJeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIiPnhtbFBhcnNlck5vZGVJbmZvU2VxUHRyPC9hPiBzZXEsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPjxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiPnhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4PC9hPiA6IEZpbmQgdGhlIGluZGV4IHRoYXQgdGhlIGluZm8gcmVjb3JkIGZvciB0aGUgZ2l2ZW4gbm9kZSBpcyBvciBzaG91bGQgYmUgYXQgaW4gYSBzb3J0ZWQgc2VxdWVuY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIG5vZGUgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsb25nIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSByZWNvcmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEdyb3ciLz54bWxQYXJzZXJJbnB1dEdyb3cgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VySW5wdXRHcm93CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpbiwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGluY3JlYXNlIHRoZSBpbnB1dCBmb3IgdGhlIHBhcnNlci4gSXQgdHJpZXMgdG8gcHJlc2VydmUgcG9pbnRlcnMgdG8gdGhlIGlucHV0IGJ1ZmZlciwgYW5kIGtlZXAgYWxyZWFkeSByZWFkIGRhdGE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGluZGljYXRpdmUgc2l6ZSBmb3IgdGhlIGxvb2thaGVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiB4bWxDaGFycyByZWFkLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGluZGljYXRlIHRoZSBlbmQgb2YgdGhpcyBlbnRpdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dFJlYWQiLz54bWxQYXJzZXJJbnB1dFJlYWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VySW5wdXRSZWFkCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpbiwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHJlZnJlc2ggdGhlIGlucHV0IGZvciB0aGUgcGFyc2VyLiBJdCBkb2Vzbid0IHRyeSB0byBwcmVzZXJ2ZSBwb2ludGVycyB0byB0aGUgaW5wdXQgYnVmZmVyLCBhbmQgZGlzY2FyZCBhbHJlYWR5IHJlYWQgZGF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW5kaWNhdGl2ZSBzaXplIGZvciB0aGUgbG9va2FoZWFkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHhtbENoYXJzIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaW5kaWNhdGUgdGhlIGVuZCBvZiB0aGlzIGVudGl0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCIvPnhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQJKGludCB2YWwpPGJyLz4KKzwvcHJlPjxwPlNldCBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgZW5hYmxpbmcgcGVkYW50aWMgd2FybmluZ3MuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmludCAwIG9yIDE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBzdWJzdGl0dXRpb24sIDEgZm9yIHN1YnN0aXR1dGlvbi48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkRG9jIi8+eG1sUmVhZERvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxSZWFkRG9jCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVhZEZkIi8+eG1sUmVhZEZkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFJlYWRGZAkJKGludCBmZCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgYW5kIGJ1aWxkIGEgdHJlZS4gTk9URSB0aGF0IHRoZSBmaWxlIGRlc2NyaXB0b3Igd2lsbCBub3QgYmUgY2xvc2VkIHdoZW4gdGhlIHJlYWRlciBpcyBjbG9zZWQgb3IgcmVzZXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3BlbiBmaWxlIGRlc2NyaXB0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkRmlsZSIvPnhtbFJlYWRGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFJlYWRGaWxlCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgb3IgVVJMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkSU8iLz54bWxSZWFkSU8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sUmVhZElPCQkoPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBkb2N1bWVudCBmcm9tIEkvTyBmdW5jdGlvbnMgYW5kIHNvdXJjZSBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9yZWFkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gcmVhZCBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkTWVtb3J5Ii8+eG1sUmVhZE1lbW9yeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxSZWFkTWVtb3J5CQkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWNvdmVyRG9jIi8+eG1sUmVjb3ZlckRvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxSZWNvdmVyRG9jCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1cik8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLiBJbiB0aGUgY2FzZSB0aGUgZG9jdW1lbnQgaXMgbm90IFdlbGwgRm9ybWVkLCBhIGF0dGVtcHQgdG8gYnVpbGQgYSB0cmVlIGlzIHRyaWVkIGFueXdheTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVjb3ZlckZpbGUiLz54bWxSZWNvdmVyRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxSZWNvdmVyRmlsZQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS4gSW4gdGhlIGNhc2UgdGhlIGRvY3VtZW50IGlzIG5vdCBXZWxsIEZvcm1lZCwgaXQgYXR0ZW1wdHMgdG8gYnVpbGQgYSB0cmVlIGFueXdheTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVjb3Zlck1lbW9yeSIvPnhtbFJlY292ZXJNZW1vcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sUmVjb3Zlck1lbW9yeQkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgYnVpbGQgYSB0cmVlLiBJbiB0aGUgY2FzZSB0aGUgZG9jdW1lbnQgaXMgbm90IFdlbGwgRm9ybWVkLCBhbiBhdHRlbXB0IHRvIGJ1aWxkIGEgdHJlZSBpcyB0cmllZCBhbnl3YXk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWFBhcnNlRFREIi8+eG1sU0FYUGFyc2VEVEQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JeG1sU0FYUGFyc2VEVEQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxici8+Cis8L3ByZT48cD5Mb2FkIGFuZCBwYXJzZSBhbiBleHRlcm5hbCBzdWJzZXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBOQU1FKiBjb250YWluaW5nIHRoZSBFeHRlcm5hbCBJRCBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBOQU1FKiBjb250YWluaW5nIHRoZSBVUkwgdG8gdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWFBhcnNlRG9jIi8+eG1sU0FYUGFyc2VEb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sU0FYUGFyc2VEb2MJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBpbnQgcmVjb3ZlcnkpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVjb3Zlcnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndvcmsgaW4gcmVjb3ZlcnkgbW9kZSwgaS5lLiB0cmllcyB0byByZWFkIG5vIFdlbGwgRm9ybWVkIGRvY3VtZW50czwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYUGFyc2VFbnRpdHkiLz54bWxTQVhQYXJzZUVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxTQVhQYXJzZUVudGl0eQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGV4dGVybmFsIGVudGl0eSBvdXQgb2YgY29udGV4dCBhbmQgYnVpbGQgYSB0cmVlLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy4gWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50IFRoaXMgY29ycmVzcG9uZCB0byBhICJXZWxsIEJhbGFuY2VkIiBjaHVuazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWFBhcnNlRmlsZSIvPnhtbFNBWFBhcnNlRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxTQVhQYXJzZUZpbGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGludCByZWNvdmVyeSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVjb3Zlcnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndvcmsgaW4gcmVjb3ZlcnkgbW9kZSwgaS5lLiB0cmllcyB0byByZWFkIG5vIFdlbGwgRm9ybWVkIGRvY3VtZW50czwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiLz54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBpbnQgcmVjb3ZlcnksIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIEl0IHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4gSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLiBVc2VyIGRhdGEgKHZvaWQgKikgaXMgc3RvcmVkIHdpdGhpbiB0aGUgcGFyc2VyIGNvbnRleHQgaW4gdGhlIGNvbnRleHQncyBfcHJpdmF0ZSBtZW1iZXIsIHNvIGl0IGlzIGF2YWlsYWJsZSBuZWFybHkgZXZlcnl3aGVyZSBpbiBsaWJ4bWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyIGJsb2NrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWNvdmVyeTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm8gV2VsbCBGb3JtZWQgZG9jdW1lbnRzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWFBhcnNlTWVtb3J5Ii8+eG1sU0FYUGFyc2VNZW1vcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sU0FYUGFyc2VNZW1vcnkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJIGludCByZWNvdmVyeSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBwb2ludGVyIHRvIGEgY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWNvdmVyeTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm90IFdlbGwgRm9ybWVkIGRvY3VtZW50czwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSIvPnhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCQkgaW50IHJlY292ZXJ5LCA8YnIvPgkJCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuIFVzZXIgZGF0YSAodm9pZCAqKSBpcyBzdG9yZWQgd2l0aGluIHRoZSBwYXJzZXIgY29udGV4dCBpbiB0aGUgY29udGV4dCdzIF9wcml2YXRlIG1lbWJlciwgc28gaXQgaXMgYXZhaWxhYmxlIG5lYXJseSBldmVyeXdoZXJlIGluIGxpYnhtbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVjb3Zlcnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndvcmsgaW4gcmVjb3ZlcnkgbW9kZSwgaS5lLiB0cmllcyB0byByZWFkIG5vIFdlbGwgRm9ybWVkIGRvY3VtZW50czwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVhVc2VyUGFyc2VGaWxlIi8+eG1sU0FYVXNlclBhcnNlRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTQVhVc2VyUGFyc2VGaWxlCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZmlsZSBhbmQgY2FsbCB0aGUgZ2l2ZW4gU0FYIGhhbmRsZXIgcm91dGluZXMuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3Mgb3IgYSBlcnJvciBudW1iZXIgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYVXNlclBhcnNlTWVtb3J5Ii8+eG1sU0FYVXNlclBhcnNlTWVtb3J5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNBWFVzZXJQYXJzZU1lbW9yeQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IHNpemUpPGJyLz4KKzwvcHJlPjxwPkEgYmV0dGVyIFNBWCBwYXJzaW5nIHJvdXRpbmUuIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgYnVmZmVyIGFuZCBjYWxsIHRoZSBnaXZlbiBTQVggaGFuZGxlciByb3V0aW5lcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW4tbWVtb3J5IFhNTCBkb2N1bWVudCBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgWE1MIGRvY3VtZW50IGluIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciBhIGVycm9yIG51bWJlciBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlciIvPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcgkoPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+IGYpPGJyLz4KKzwvcHJlPjxwPkNoYW5nZXMgdGhlIGRlZmF1bHRleHRlcm5hbCBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb24gZm9yIHRoZSBhcHBsaWNhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXRGZWF0dXJlIi8+eG1sU2V0RmVhdHVyZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTZXRGZWF0dXJlCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG5hbWUsIDxici8+CQkJCQkgdm9pZCAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5DaGFuZ2UgdGhlIGN1cnJlbnQgdmFsdWUgb2Ygb25lIGZlYXR1cmUgb2YgdGhpcyBwYXJzZXIgaW5zdGFuY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTC9IVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmVhdHVyZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldyB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvciBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciIvPnhtbFNldHVwUGFyc2VyRm9yQnVmZmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXR1cFBhcnNlckZvckJ1ZmZlcgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPlNldHVwIHRoZSBwYXJzZXIgY29udGV4dCB0byBwYXJzZSBhIG5ldyBidWZmZXI7IENsZWFycyBhbnkgcHJpb3IgY29udGVudHMgZnJvbSB0aGUgcGFyc2VyIGNvbnRleHQuIFRoZSBidWZmZXIgcGFyYW1ldGVyIG11c3Qgbm90IGJlIE5VTEwsIGJ1dCB0aGUgZmlsZW5hbWUgcGFyYW1ldGVyIGNhbiBiZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RvcFBhcnNlciIvPnhtbFN0b3BQYXJzZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFN0b3BQYXJzZXIJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+QmxvY2tzIGZ1cnRoZXIgcGFyc2VyIHByb2Nlc3Npbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQiLz54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQJKGludCB2YWwpPGJyLz4KKzwvcHJlPjxwPlNldCBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgZGVmYXVsdCBlbnRpdHkgc3VwcG9ydC4gSW5pdGlhbGx5IHRoZSBwYXJzZXIgYWx3YXlzIGtlZXAgZW50aXR5IHJlZmVyZW5jZXMgaW5zdGVhZCBvZiBzdWJzdGl0dXRpbmcgZW50aXR5IHZhbHVlcyBpbiB0aGUgb3V0cHV0LiBUaGlzIGZ1bmN0aW9uIGhhcyB0byBiZSB1c2VkIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBwYXJzZXIgYmVoYXZpb3IgU0FYOjpzdWJzdGl0dXRlRW50aXRpZXMoKSBoYXMgdG8gYmUgdXNlZCBmb3IgY2hhbmdpbmcgdGhhdCBvbiBhIGZpbGUgYnkgZmlsZSBiYXNpcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW50IDAgb3IgMTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3QgdmFsdWUgZm9yIDAgZm9yIG5vIHN1YnN0aXR1dGlvbiwgMSBmb3Igc3Vic3RpdHV0aW9uLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhYmE5ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwKQEAgLTAsMCArMSw2NzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+cGFyc2VySW50ZXJuYWxzOiBpbnRlcm5hbHMgcm91dGluZXMgZXhwb3J0ZWQgYnkgdGhlIHBhcnNlci48L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj5wYXJzZXJJbnRlcm5hbHM8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5wYXJzZXJJbnRlcm5hbHMgLSBpbnRlcm5hbHMgcm91dGluZXMgZXhwb3J0ZWQgYnkgdGhlIHBhcnNlci48L3A+CisgICAgPHA+dGhpcyBtb2R1bGUgZXhwb3J0cyBhIG51bWJlciBvZiBpbnRlcm5hbCBwYXJzaW5nIHJvdXRpbmVzIHRoZXkgYXJlIG5vdCByZWFsbHkgYWxsIGludGVuZGVkIGZvciBhcHBsaWNhdGlvbnMgYnV0IGNhbiBwcm92ZSB1c2VmdWwgZG9pbmcgbG93IGxldmVsIHByb2Nlc3NpbmcuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNJU19CTEFOSyI+SVNfQkxBTks8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSVNfQllURV9DSEFSIj5JU19CWVRFX0NIQVI8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSVNfUFVCSURDSEFSIj5JU19QVUJJRENIQVI8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSVNfRElHSVRfQ0giPklTX0RJR0lUX0NIPC9hPihjKTsKKyNkZWZpbmUgPGEgaHJlZj0iI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiNJU19BU0NJSV9ESUdJVCI+SVNfQVNDSUlfRElHSVQ8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSVNfQ09NQklOSU5HX0NIIj5JU19DT01CSU5JTkdfQ0g8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSVNfQ0hBUiI+SVNfQ0hBUjwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiNJU19MRVRURVIiPklTX0xFVFRFUjwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiNJU19JREVPR1JBUEhJQyI+SVNfSURFT0dSQVBISUM8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjTU9WRVRPX1NUQVJUVEFHIj5NT1ZFVE9fU1RBUlRUQUc8L2E+KHApOworI2RlZmluZSA8YSBocmVmPSIjSVNfQVNDSUlfTEVUVEVSIj5JU19BU0NJSV9MRVRURVI8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSVNfRElHSVQiPklTX0RJR0lUPC9hPihjKTsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TVUJTVElUVVRFX1BFUkVGIj5YTUxfU1VCU1RJVFVURV9QRVJFRjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNNT1ZFVE9fRU5EVEFHIj5NT1ZFVE9fRU5EVEFHPC9hPihwKTsKKyNkZWZpbmUgPGEgaHJlZj0iI1NLSVBfRU9MIj5TS0lQX0VPTDwvYT4ocCk7CisjZGVmaW5lIDxhIGhyZWY9IiNJU19FWFRFTkRFUl9DSCI+SVNfRVhURU5ERVJfQ0g8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSVNfQkxBTktfQ0giPklTX0JMQU5LX0NIPC9hPihjKTsKKyNkZWZpbmUgPGEgaHJlZj0iI0lTX0xFVFRFUl9DSCI+SVNfTEVUVEVSX0NIPC9hPihjKTsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9NQVhfVEVYVF9MRU5HVEgiPlhNTF9NQVhfVEVYVF9MRU5HVEg8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NVQlNUSVRVVEVfTk9ORSI+WE1MX1NVQlNUSVRVVEVfTk9ORTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNJU19DT01CSU5JTkciPklTX0NPTUJJTklORzwvYT4oYyk7CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfTUFYX05BTUVMRU4iPlhNTF9NQVhfTkFNRUxFTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNJU19CQVNFQ0hBUiI+SVNfQkFTRUNIQVI8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjSU5QVVRfQ0hVTksiPklOUFVUX0NIVU5LPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0lTX1BVQklEQ0hBUl9DSCI+SVNfUFVCSURDSEFSX0NIPC9hPihjKTsKKyNkZWZpbmUgPGEgaHJlZj0iI0lTX0NIQVJfQ0giPklTX0NIQVJfQ0g8L2E+KGMpOworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NVQlNUSVRVVEVfQk9USCI+WE1MX1NVQlNUSVRVVEVfQk9USDwvYT47Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjbm9kZVBvcCI+bm9kZVBvcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZU5vdGF0aW9uRGVjbCI+eG1sUGFyc2VOb3RhdGlvbkRlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZUV4dGVybmFsU3Vic2V0Ij54bWxQYXJzZUV4dGVybmFsU3Vic2V0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlTWlzYyI+eG1sUGFyc2VNaXNjPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2ludAk8YSBocmVmPSIjeG1sU3dpdGNoSW5wdXRFbmNvZGluZyI+eG1sU3dpdGNoSW5wdXRFbmNvZGluZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0iPnhtbE5ld1N0cmluZ0lucHV0U3RyZWFtPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZmZlcik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHB1YmxpY0lELCA8YnIvPgkJCQkJIGludCBzdHJpY3QpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTY2FuTmFtZSI+eG1sU2Nhbk5hbWU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlRWxlbWVudERlY2wiPnhtbFBhcnNlRWxlbWVudERlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZU1hcmt1cERlY2wiPnhtbFBhcnNlTWFya3VwRGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTsKK2ludAk8YSBocmVmPSIjaW5wdXRQdXNoIj5pbnB1dFB1c2g8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiB2YWx1ZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkJIGludCBsZW4sIDxici8+CQkJCQkJIGludCB3aGF0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQyLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDMpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiNuYW1lUG9wIj5uYW1lUG9wPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlQ29udGVudCI+eG1sUGFyc2VDb250ZW50PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0lucHV0U3RyZWFtIj54bWxOZXdJbnB1dFN0cmVhbTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHByZWZpeCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdJbnB1dEZyb21GaWxlIj54bWxOZXdJbnB1dEZyb21GaWxlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyI+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkgaW50IHdoYXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQiPnhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sUGFyc2VDaGFyUmVmIj54bWxQYXJzZUNoYXJSZWY8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VFbGVtZW50Ij54bWxQYXJzZUVsZW1lbnQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VUZXh0RGVjbCI+eG1sUGFyc2VUZXh0RGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0VudGl0eUlucHV0U3RyZWFtIj54bWxOZXdFbnRpdHlJbnB1dFN0cmVhbTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBlbnRpdHkpOworaW50CTxhIGhyZWY9IiN4bWxDb3B5Q2hhck11bHRpQnl0ZSI+eG1sQ29weUNoYXJNdWx0aUJ5dGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG91dCwgPGJyLz4JCQkJCSBpbnQgdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCQkgaW50IGlucHV0Y2hrKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlQ2hhckRhdGEiPnhtbFBhcnNlQ2hhckRhdGE8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgY2RhdGEpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZVZlcnNpb25JbmZvIj54bWxQYXJzZVZlcnNpb25JbmZvPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlU0REZWNsIj54bWxQYXJzZVNERGVjbDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlRW51bWVyYXRlZFR5cGUiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+ICogdHJlZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxIYW5kbGVFbnRpdHkiPnhtbEhhbmRsZUVudGl0eTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gZW50aXR5KTsKK2ludAk8YSBocmVmPSIjeG1sQ3VycmVudENoYXIiPnhtbEN1cnJlbnRDaGFyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCAqIGxlbik7CitpbnQJPGEgaHJlZj0iI3htbFNraXBCbGFua0NoYXJzIj54bWxTa2lwQmxhbmtDaGFyczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlTm90YXRpb25UeXBlIj54bWxQYXJzZU5vdGF0aW9uVHlwZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRTaHJpbmsiPnhtbFBhcnNlcklucHV0U2hyaW5rPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW4pOwordm9pZAk8YSBocmVmPSIjeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvYT4gZnVuYyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlSW5wdXRTdHJlYW0iPnhtbEZyZWVJbnB1dFN0cmVhbTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlucHV0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlUEVSZWZlcmVuY2UiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dDwvYT4JKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCQkgaW50IG9wdGlvbnMpOworaW50CTxhIGhyZWY9IiN4bWxJc0xldHRlciI+eG1sSXNMZXR0ZXI8L2E+CQkJKGludCBjKTsKK2ludAk8YSBocmVmPSIjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxhbmcpOwordm9pZAk8YSBocmVmPSIjeG1sTmV4dENoYXIiPnhtbE5leHRDaGFyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlRW51bWVyYXRpb25UeXBlIj54bWxQYXJzZUVudW1lcmF0aW9uVHlwZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gKiB0cmVlKTsKK2ludAk8YSBocmVmPSIjeG1sUGFyc2VEZWZhdWx0RGVjbCI+eG1sUGFyc2VEZWZhdWx0RGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdmFsdWUpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZVN5c3RlbUxpdGVyYWwiPnhtbFBhcnNlU3lzdGVtTGl0ZXJhbDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZUF0dFZhbHVlIj54bWxQYXJzZUF0dFZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCI+eG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dDwvYT4JKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkJCSBpbnQgc2l6ZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsIj54bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlTmFtZSI+eG1sUGFyc2VOYW1lPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZUVuY05hbWUiPnhtbFBhcnNlRW5jTmFtZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2ludAk8YSBocmVmPSIjbm9kZVB1c2giPm5vZGVQdXNoPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbHVlKTsKK2ludAk8YSBocmVmPSIjeG1sU3dpdGNoRW5jb2RpbmciPnhtbFN3aXRjaEVuY29kaW5nPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpOworaW50CTxhIGhyZWY9IiN4bWxTd2l0Y2hUb0VuY29kaW5nIj54bWxTd2l0Y2hUb0VuY29kaW5nPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHZhbHVlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlRW5kVGFnIj54bWxQYXJzZUVuZFRhZzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlRW5jb2RpbmdEZWNsIj54bWxQYXJzZUVuY29kaW5nRGVjbDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjaHRtbEluaXRBdXRvQ2xvc2UiPmh0bWxJbml0QXV0b0Nsb3NlPC9hPgkJKHZvaWQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQiPnhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQ8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJMLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJhc2UpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTcGxpdFFOYW1lIj54bWxTcGxpdFFOYW1lPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBwcmVmaXgpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VQSVRhcmdldCI+eG1sUGFyc2VQSVRhcmdldDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gKiByZXN1bHQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjaW5wdXRQb3AiPmlucHV0UG9wPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+CTxhIGhyZWY9IiN4bWxQb3BJbnB1dCI+eG1sUG9wSW5wdXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZVB1YmlkTGl0ZXJhbCI+eG1sUGFyc2VQdWJpZExpdGVyYWw8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2ludAk8YSBocmVmPSIjeG1sUHVzaElucHV0Ij54bWxQdXNoSW5wdXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpbnB1dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlRW50aXR5VmFsdWUiPnhtbFBhcnNlRW50aXR5VmFsdWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogb3JpZyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IGxlbiwgPGJyLz4JCQkJCSBpbnQgd2hhdCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQzKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VWZXJzaW9uTnVtIj54bWxQYXJzZVZlcnNpb25OdW08L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlWE1MRGVjbCI+eG1sUGFyc2VYTUxEZWNsPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjeG1sRW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gZW50LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGZpcnN0Tm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBsYXN0Tm9kZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkJIGludCBpbnB1dGNoayk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlUXVvdGVkU3RyaW5nIj54bWxQYXJzZVF1b3RlZFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIj54bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZUNEU2VjdCI+eG1sUGFyc2VDRFNlY3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxTdHJpbmdDdXJyZW50Q2hhciI+eG1sU3RyaW5nQ3VycmVudENoYXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGludCAqIGxlbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxFcnJNZW1vcnkiPnhtbEVyck1lbW9yeTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZXh0cmEpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSI+eG1sTmFtZXNwYWNlUGFyc2VOQ05hbWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VObXRva2VuIj54bWxQYXJzZU5tdG9rZW48L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZVJlZmVyZW5jZSI+eG1sUGFyc2VSZWZlcmVuY2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI25hbWVQdXNoIj5uYW1lUHVzaDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxDb3B5Q2hhciI+eG1sQ29weUNoYXI8L2E+CQkJKGludCBsZW4sIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG91dCwgPGJyLz4JCQkJCSBpbnQgdmFsKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlUEkiPnhtbFBhcnNlUEk8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VEb2NUeXBlRGVjbCI+eG1sUGFyc2VEb2NUeXBlRGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VTdGFydFRhZyI+eG1sUGFyc2VTdGFydFRhZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSU5QVVRfQ0hVTksiPk1hY3JvIDwvYT5JTlBVVF9DSFVOSzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lOUFVUX0NIVU5LIj5JTlBVVF9DSFVOSzwvYT47Cis8L3ByZT48cD5UaGUgcGFyc2VyIHRyaWVzIHRvIGFsd2F5cyBoYXZlIHRoYXQgYW1vdW50IG9mIGlucHV0IHJlYWR5LiBPbmUgb2YgdGhlIHBvaW50IGlzIHByb3ZpZGluZyBjb250ZXh0IHdoZW4gcmVwb3J0aW5nIGVycm9ycy48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfQVNDSUlfRElHSVQiPk1hY3JvIDwvYT5JU19BU0NJSV9ESUdJVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0FTQ0lJX0RJR0lUIj5JU19BU0NJSV9ESUdJVDwvYT4oYyk7Cis8L3ByZT48cD5NYWNybyB0byBjaGVjayBbMC05XTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IklTX0FTQ0lJX0xFVFRFUiI+TWFjcm8gPC9hPklTX0FTQ0lJX0xFVFRFUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0FTQ0lJX0xFVFRFUiI+SVNfQVNDSUlfTEVUVEVSPC9hPihjKTsKKzwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIFthLXpBLVpdPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB2YWx1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfQkFTRUNIQVIiPk1hY3JvIDwvYT5JU19CQVNFQ0hBUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0JBU0VDSEFSIj5JU19CQVNFQ0hBUjwvYT4oYyk7Cis8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbODVdIEJhc2VDaGFyIDo6PSAuLi4gbG9uZyBsaXN0IHNlZSBSRUMgLi4uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gVU5JQ09ERSB2YWx1ZSAoaW50KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfQkxBTksiPk1hY3JvIDwvYT5JU19CTEFOSzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0JMQU5LIj5JU19CTEFOSzwvYT4oYyk7Cis8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbM10gUyA6Oj0gKCN4MjAgfCAjeDkgfCAjeEQgfCAjeEEpKzwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFVOSUNPREUgdmFsdWUgKGludCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IklTX0JMQU5LX0NIIj5NYWNybyA8L2E+SVNfQkxBTktfQ0g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19CTEFOS19DSCI+SVNfQkxBTktfQ0g8L2E+KGMpOworPC9wcmU+PHA+QmVoYXZpb3VyIHNhbWUgYXMgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOSyI+SVNfQkxBTks8L2E+PC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB2YWx1ZSAobm9ybWFsbHkgdW5zaWduZWQgY2hhcik8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IklTX0JZVEVfQ0hBUiI+TWFjcm8gPC9hPklTX0JZVEVfQ0hBUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0JZVEVfQ0hBUiI+SVNfQllURV9DSEFSPC9hPihjKTsKKzwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6IFsyXSBDaGFyIDo6PSAjeDkgfCAjeEEgfCAjeEQgfCBbI3gyMC4uLl0gYW55IGJ5dGUgY2hhcmFjdGVyIGluIHRoZSBhY2NlcHRlZCByYW5nZTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGJ5dGUgdmFsdWUgKGludCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IklTX0NIQVIiPk1hY3JvIDwvYT5JU19DSEFSPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfQ0hBUiI+SVNfQ0hBUjwvYT4oYyk7Cis8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbMl0gQ2hhciA6Oj0gI3g5IHwgI3hBIHwgI3hEIHwgWyN4MjAtI3hEN0ZGXSB8IFsjeEUwMDAtI3hGRkZEXSB8IFsjeDEwMDAwLSN4MTBGRkZGXSBhbnkgVW5pY29kZSBjaGFyYWN0ZXIsIGV4Y2x1ZGluZyB0aGUgc3Vycm9nYXRlIGJsb2NrcywgRkZGRSwgYW5kIEZGRkYuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gVU5JQ09ERSB2YWx1ZSAoaW50KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfQ0hBUl9DSCI+TWFjcm8gPC9hPklTX0NIQVJfQ0g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19DSEFSX0NIIj5JU19DSEFSX0NIPC9hPihjKTsKKzwvcHJlPjxwPkJlaGF2ZXMgbGlrZSA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX0NIQVIiPklTX0NIQVI8L2E+IG9uIHNpbmdsZS1ieXRlIHZhbHVlPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAodXN1YWxseSBhbiB1bnNpZ25lZCBjaGFyKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfQ09NQklOSU5HIj5NYWNybyA8L2E+SVNfQ09NQklOSU5HPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfQ09NQklOSU5HIj5JU19DT01CSU5JTkc8L2E+KGMpOworPC9wcmU+PHA+TWFjcm8gdG8gY2hlY2sgdGhlIGZvbGxvd2luZyBwcm9kdWN0aW9uIGluIHRoZSBYTUwgc3BlYzogWzg3XSBDb21iaW5pbmdDaGFyIDo6PSAuLi4gbG9uZyBsaXN0IHNlZSBSRUMgLi4uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gVU5JQ09ERSB2YWx1ZSAoaW50KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfQ09NQklOSU5HX0NIIj5NYWNybyA8L2E+SVNfQ09NQklOSU5HX0NIPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfQ09NQklOSU5HX0NIIj5JU19DT01CSU5JTkdfQ0g8L2E+KGMpOworPC9wcmU+PHA+QWx3YXlzIGZhbHNlIChhbGwgY29tYmluaW5nIGNoYXJzICZndDsgMHhmZik8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICh1c3VhbGx5IGFuIHVuc2lnbmVkIGNoYXIpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJJU19ESUdJVCI+TWFjcm8gPC9hPklTX0RJR0lUPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfRElHSVQiPklTX0RJR0lUPC9hPihjKTsKKzwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6IFs4OF0gRGlnaXQgOjo9IC4uLiBsb25nIGxpc3Qgc2VlIFJFQyAuLi48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBVTklDT0RFIHZhbHVlIChpbnQpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJJU19ESUdJVF9DSCI+TWFjcm8gPC9hPklTX0RJR0lUX0NIPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfRElHSVRfQ0giPklTX0RJR0lUX0NIPC9hPihjKTsKKzwvcHJlPjxwPkJlaGF2ZXMgbGlrZSA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX0RJR0lUIj5JU19ESUdJVDwvYT4gYnV0IHdpdGggYSBzaW5nbGUgYnl0ZSBhcmd1bWVudDwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gdmFsdWUgKHVzdWFsbHkgYW4gdW5zaWduZWQgY2hhcik8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IklTX0VYVEVOREVSIj5NYWNybyA8L2E+SVNfRVhURU5ERVI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19FWFRFTkRFUiI+SVNfRVhURU5ERVI8L2E+KGMpOworPC9wcmU+PHA+TWFjcm8gdG8gY2hlY2sgdGhlIGZvbGxvd2luZyBwcm9kdWN0aW9uIGluIHRoZSBYTUwgc3BlYzogWzg5XSBFeHRlbmRlciA6Oj0gI3gwMEI3IHwgI3gwMkQwIHwgI3gwMkQxIHwgI3gwMzg3IHwgI3gwNjQwIHwgI3gwRTQ2IHwgI3gwRUM2IHwgI3gzMDA1IHwgWyN4MzAzMS0jeDMwMzVdIHwgWyN4MzA5RC0jeDMwOUVdIHwgWyN4MzBGQy0jeDMwRkVdPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gVU5JQ09ERSB2YWx1ZSAoaW50KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfRVhURU5ERVJfQ0giPk1hY3JvIDwvYT5JU19FWFRFTkRFUl9DSDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0VYVEVOREVSX0NIIj5JU19FWFRFTkRFUl9DSDwvYT4oYyk7Cis8L3ByZT48cD5CZWhhdmVzIGxpa2UgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19FWFRFTkRFUiI+SVNfRVhURU5ERVI8L2E+IGJ1dCB3aXRoIGEgc2luZ2xlLWJ5dGUgYXJndW1lbnQ8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHZhbHVlICh1c3VhbGx5IGFuIHVuc2lnbmVkIGNoYXIpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJJU19JREVPR1JBUEhJQyI+TWFjcm8gPC9hPklTX0lERU9HUkFQSElDPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfSURFT0dSQVBISUMiPklTX0lERU9HUkFQSElDPC9hPihjKTsKKzwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6IFs4Nl0gSWRlb2dyYXBoaWMgOjo9IFsjeDRFMDAtI3g5RkE1XSB8ICN4MzAwNyB8IFsjeDMwMjEtI3gzMDI5XTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFVOSUNPREUgdmFsdWUgKGludCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IklTX0xFVFRFUiI+TWFjcm8gPC9hPklTX0xFVFRFUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0xFVFRFUiI+SVNfTEVUVEVSPC9hPihjKTsKKzwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6IFs4NF0gTGV0dGVyIDo6PSBCYXNlQ2hhciB8IElkZW9ncmFwaGljPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gVU5JQ09ERSB2YWx1ZSAoaW50KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfTEVUVEVSX0NIIj5NYWNybyA8L2E+SVNfTEVUVEVSX0NIPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfTEVUVEVSX0NIIj5JU19MRVRURVJfQ0g8L2E+KGMpOworPC9wcmU+PHA+TWFjcm8gYmVoYXZlcyBsaWtlIElTX0xFVFRFUiwgYnV0IG9ubHkgY2hlY2sgYmFzZSBjaGFyczwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gdmFsdWUgKG5vcm1hbGx5IHVuc2lnbmVkIGNoYXIpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJJU19QVUJJRENIQVIiPk1hY3JvIDwvYT5JU19QVUJJRENIQVI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19QVUJJRENIQVIiPklTX1BVQklEQ0hBUjwvYT4oYyk7Cis8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbMTNdIFB1YmlkQ2hhciA6Oj0gI3gyMCB8ICN4RCB8ICN4QSB8IFthLXpBLVowLTldIHwgWy0nKCkrLC4vOj0/OyEqI0AkXyVdPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gVU5JQ09ERSB2YWx1ZSAoaW50KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iSVNfUFVCSURDSEFSX0NIIj5NYWNybyA8L2E+SVNfUFVCSURDSEFSX0NIPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfUFVCSURDSEFSX0NIIj5JU19QVUJJRENIQVJfQ0g8L2E+KGMpOworPC9wcmU+PHA+U2FtZSBhcyA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX1BVQklEQ0hBUiI+SVNfUFVCSURDSEFSPC9hPiBidXQgZm9yIHNpbmdsZS1ieXRlIHZhbHVlPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB2YWx1ZSAobm9ybWFsbHkgdW5zaWduZWQgY2hhcik8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Ik1PVkVUT19FTkRUQUciPk1hY3JvIDwvYT5NT1ZFVE9fRU5EVEFHPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTU9WRVRPX0VORFRBRyI+TU9WRVRPX0VORFRBRzwvYT4ocCk7Cis8L3ByZT48cD5Ta2lwcyB0byB0aGUgbmV4dCAnJmd0OycgY2hhci48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbmQgVVRGOCBzdHJpbmcgcG9pbnRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTU9WRVRPX1NUQVJUVEFHIj5NYWNybyA8L2E+TU9WRVRPX1NUQVJUVEFHPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTU9WRVRPX1NUQVJUVEFHIj5NT1ZFVE9fU1RBUlRUQUc8L2E+KHApOworPC9wcmU+PHA+U2tpcHMgdG8gdGhlIG5leHQgJyZsdDsnIGNoYXIuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW5kIFVURjggc3RyaW5nIHBvaW50ZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlNLSVBfRU9MIj5NYWNybyA8L2E+U0tJUF9FT0w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNTS0lQX0VPTCI+U0tJUF9FT0w8L2E+KHApOworPC9wcmU+PHA+U2tpcHMgdGhlIGVuZCBvZiBsaW5lIGNoYXJzLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuZCBVVEY4IHN0cmluZyBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfTUFYX05BTUVMRU4iPk1hY3JvIDwvYT5YTUxfTUFYX05BTUVMRU48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfTUFYX05BTUVMRU4iPlhNTF9NQVhfTkFNRUxFTjwvYT47Cis8L3ByZT48cD5JZGVudGlmaWVycyBjYW4gYmUgbG9uZ2VyLCBidXQgdGhpcyB3aWxsIGJlIG1vcmUgY29zdGx5IGF0IHJ1bnRpbWUuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9NQVhfVEVYVF9MRU5HVEgiPk1hY3JvIDwvYT5YTUxfTUFYX1RFWFRfTEVOR1RIPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX01BWF9URVhUX0xFTkdUSCI+WE1MX01BWF9URVhUX0xFTkdUSDwvYT47Cis8L3ByZT48cD5NYXhpbXVtIHNpemUgYWxsb3dlZCBmb3IgYSBzaW5nbGUgdGV4dCBub2RlIHdoZW4gYnVpbGRpbmcgYSB0cmVlLiBUaGlzIGlzIG5vdCBhIGxpbWl0YXRpb24gb2YgdGhlIHBhcnNlciBidXQgYSBzYWZldHkgYm91bmRhcnkgZmVhdHVyZSwgdXNlIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX0hVR0UiPlhNTF9QQVJTRV9IVUdFPC9hPiBvcHRpb24gdG8gb3ZlcnJpZGUgaXQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TVUJTVElUVVRFX0JPVEgiPk1hY3JvIDwvYT5YTUxfU1VCU1RJVFVURV9CT1RIPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NVQlNUSVRVVEVfQk9USCI+WE1MX1NVQlNUSVRVVEVfQk9USDwvYT47Cis8L3ByZT48cD5Cb3RoIGdlbmVyYWwgYW5kIHBhcmFtZXRlciBlbnRpdGllcyBuZWVkIHRvIGJlIHN1YnN0aXR1dGVkLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU1VCU1RJVFVURV9OT05FIj5NYWNybyA8L2E+WE1MX1NVQlNUSVRVVEVfTk9ORTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TVUJTVElUVVRFX05PTkUiPlhNTF9TVUJTVElUVVRFX05PTkU8L2E+OworPC9wcmU+PHA+SWYgbm8gZW50aXRpZXMgbmVlZCB0byBiZSBzdWJzdGl0dXRlZC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NVQlNUSVRVVEVfUEVSRUYiPk1hY3JvIDwvYT5YTUxfU1VCU1RJVFVURV9QRVJFRjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TVUJTVElUVVRFX1BFUkVGIj5YTUxfU1VCU1RJVFVURV9QRVJFRjwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHBhcmFtZXRlciBlbnRpdGllcyBuZWVkIHRvIGJlIHN1YnN0aXR1dGVkLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU1VCU1RJVFVURV9SRUYiPk1hY3JvIDwvYT5YTUxfU1VCU1RJVFVURV9SRUY8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT47Cis8L3ByZT48cD5XaGV0aGVyIGdlbmVyYWwgZW50aXRpZXMgbmVlZCB0byBiZSBzdWJzdGl0dXRlZC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRW50aXR5UmVmZXJlbmNlRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRW50aXR5UmVmZXJlbmNlRnVuYwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBlbnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZmlyc3ROb2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGxhc3ROb2RlKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHdoZW4gb25lIG5lZWRzIHRvIGJlIGFibGUgdG8gdHJhY2sgYmFjayB0aGUgcHJvdmVuYW5jZSBvZiBhIGNodW5rIG9mIG5vZGVzIGluaGVyaXRlZCBmcm9tIGFuIGVudGl0eSByZXBsYWNlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zmlyc3ROb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlzdCBub2RlIGluIHRoZSBjaHVuazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGFzdE5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsYXN0IG5vZCBpbiB0aGUgY2h1bms8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJNYXhEZXB0aCI+VmFyaWFibGUgPC9hPnhtbFBhcnNlck1heERlcHRoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dW5zaWduZWQgaW50IHhtbFBhcnNlck1heERlcHRoOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmluZ0NvbW1lbnQiPlZhcmlhYmxlIDwvYT54bWxTdHJpbmdDb21tZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgeG1sQ2hhcnhtbFN0cmluZ0NvbW1lbnRbXSB4bWxTdHJpbmdDb21tZW50OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmluZ1RleHQiPlZhcmlhYmxlIDwvYT54bWxTdHJpbmdUZXh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgeG1sQ2hhcnhtbFN0cmluZ1RleHRbXSB4bWxTdHJpbmdUZXh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmluZ1RleHROb2VuYyI+VmFyaWFibGUgPC9hPnhtbFN0cmluZ1RleHROb2VuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IHhtbENoYXJ4bWxTdHJpbmdUZXh0Tm9lbmNbXSB4bWxTdHJpbmdUZXh0Tm9lbmM7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ii8+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPglodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGEgZmlsZSBjb250ZW50LiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Imh0bWxJbml0QXV0b0Nsb3NlIi8+aHRtbEluaXRBdXRvQ2xvc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxJbml0QXV0b0Nsb3NlCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgaHRtbFN0YXJ0Q2xvc2VJbmRleCBmb3IgZmFzdCBsb29rdXAgb2YgY2xvc2luZyB0YWdzIG5hbWVzLiBUaGlzIGlzIG5vdCByZWVudHJhbnQuIENhbGwgeG1sSW5pdFBhcnNlcigpIG9uY2UgYmVmb3JlIHByb2Nlc3NpbmcgaW4gY2FzZSBvZiB1c2UgaW4gbXVsdGl0aHJlYWRlZCBwcm9ncmFtcy48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iaW5wdXRQb3AiLz5pbnB1dFBvcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JaW5wdXRQb3AJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPlBvcHMgdGhlIHRvcCBwYXJzZXIgaW5wdXQgZnJvbSB0aGUgaW5wdXQgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IGp1c3QgcmVtb3ZlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImlucHV0UHVzaCIvPmlucHV0UHVzaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlpbnB1dFB1c2gJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IHZhbHVlKTxici8+Cis8L3ByZT48cD5QdXNoZXMgYSBuZXcgcGFyc2VyIGlucHV0IG9uIHRvcCBvZiB0aGUgaW5wdXQgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ibmFtZVBvcCIvPm5hbWVQb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZVBvcAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5Qb3BzIHRoZSB0b3AgZWxlbWVudCBuYW1lIGZyb20gdGhlIG5hbWUgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUganVzdCByZW1vdmVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ibmFtZVB1c2giLz5uYW1lUHVzaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAluYW1lUHVzaAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+UHVzaGVzIGEgbmV3IGVsZW1lbnQgbmFtZSBvbiB0b3Agb2YgdGhlIG5hbWUgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ibm9kZVBvcCIvPm5vZGVQb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglub2RlUG9wCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPlBvcHMgdGhlIHRvcCBlbGVtZW50IG5vZGUgZnJvbSB0aGUgbm9kZSBzdGFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBqdXN0IHJlbW92ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJub2RlUHVzaCIvPm5vZGVQdXNoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CW5vZGVQdXNoCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsdWUpPGJyLz4KKzwvcHJlPjxwPlB1c2hlcyBhIG5ldyBlbGVtZW50IG5vZGUgb24gdG9wIG9mIHRoZSBub2RlIHN0YWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCB0aGUgaW5kZXggaW4gdGhlIHN0YWNrIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoZWNrTGFuZ3VhZ2VJRCIvPnhtbENoZWNrTGFuZ3VhZ2VJRCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDaGVja0xhbmd1YWdlSUQJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbGFuZyk8YnIvPgorPC9wcmU+PHA+Q2hlY2tzIHRoYXQgdGhlIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBMYW5ndWFnZUlEIHByb2R1Y3Rpb246IE5PVEU6IHRoaXMgaXMgc29tZXdoYXQgZGVwcmVjYXRlZCwgdGhvc2UgcHJvZHVjdGlvbnMgd2VyZSByZW1vdmVkIGZyb20gdGhlIFhNTCBTZWNvbmQgZWRpdGlvbi4gWzMzXSBMYW5ndWFnZUlEIDo6PSBMYW5nY29kZSAoJy0nIFN1YmNvZGUpKiBbMzRdIExhbmdjb2RlIDo6PSBJU082MzlDb2RlIHwgSWFuYUNvZGUgfCBVc2VyQ29kZSBbMzVdIElTTzYzOUNvZGUgOjo9IChbYS16XSB8IFtBLVpdKSAoW2Etel0gfCBbQS1aXSkgWzM2XSBJYW5hQ29kZSA6Oj0gKCdpJyB8ICdJJykgJy0nIChbYS16XSB8IFtBLVpdKSsgWzM3XSBVc2VyQ29kZSA6Oj0gKCd4JyB8ICdYJykgJy0nIChbYS16XSB8IFtBLVpdKSsgWzM4XSBTdWJjb2RlIDo6PSAoW2Etel0gfCBbQS1aXSkrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sYW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBzdHJpbmcgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgY29ycmVjdCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENvcHlDaGFyIi8+eG1sQ29weUNoYXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ29weUNoYXIJCQkoaW50IGxlbiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogb3V0LCA8YnIvPgkJCQkJIGludCB2YWwpPGJyLz4KKzwvcHJlPjxwPmFwcGVuZCB0aGUgY2hhciB2YWx1ZSBpbiB0aGUgYXJyYXk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+SWdub3JlZCwgY29tcGF0aWJpbGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXIgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB3cml0dGVuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weUNoYXJNdWx0aUJ5dGUiLz54bWxDb3B5Q2hhck11bHRpQnl0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDb3B5Q2hhck11bHRpQnl0ZQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvdXQsIDxici8+CQkJCQkgaW50IHZhbCk8YnIvPgorPC9wcmU+PHA+YXBwZW5kIHRoZSBjaGFyIHZhbHVlIGluIHRoZSBhcnJheTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXIgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB3cml0dGVuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCIvPnhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgl4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJMLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJhc2UpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBleHRlcm5hbCBlbnRpdHkgQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IFBVQkxJQyBJRDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YmFzZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb3NzaWJsZSBiYXNlIGZvciB0aGUgdGFyZ2V0IFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQiLz54bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CXhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0CShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhIGZpbGUgY29udGVudC4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQiLz54bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCQkJIGludCBzaXplKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDcmVhdGVVUkxQYXJzZXJDdHh0Ii8+eG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CXhtbENyZWF0ZVVSTFBhcnNlckN0eHQJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhIGZpbGUgb3IgVVJMIGNvbnRlbnQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUgYW5kIGZvciBmaWxlIGFjY2Vzc2VzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lIG9yIFVSTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3VycmVudENoYXIiLz54bWxDdXJyZW50Q2hhciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDdXJyZW50Q2hhcgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCAqIGxlbik8YnIvPgorPC9wcmU+PHA+VGhlIGN1cnJlbnQgY2hhciB2YWx1ZSwgaWYgdXNpbmcgVVRGLTggdGhpcyBtYXkgYWN0dWFsbHkgc3BhbiBtdWx0aXBsZSBieXRlcyBpbiB0aGUgaW5wdXQgYnVmZmVyLiBJbXBsZW1lbnQgdGhlIGVuZCBvZiBsaW5lIG5vcm1hbGl6YXRpb246IDIuMTEgRW5kLW9mLUxpbmUgSGFuZGxpbmcgV2hlcmV2ZXIgYW4gZXh0ZXJuYWwgcGFyc2VkIGVudGl0eSBvciB0aGUgbGl0ZXJhbCBlbnRpdHkgdmFsdWUgb2YgYW4gaW50ZXJuYWwgcGFyc2VkIGVudGl0eSBjb250YWlucyBlaXRoZXIgdGhlIGxpdGVyYWwgdHdvLWNoYXJhY3RlciBzZXF1ZW5jZSAiI3hEI3hBIiBvciBhIHN0YW5kYWxvbmUgbGl0ZXJhbCAjeEQsIGFuIFhNTCBwcm9jZXNzb3IgbXVzdCBwYXNzIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGUgc2luZ2xlIGNoYXJhY3RlciAjeEEuIFRoaXMgYmVoYXZpb3IgY2FuIGNvbnZlbmllbnRseSBiZSBwcm9kdWNlZCBieSBub3JtYWxpemluZyBhbGwgbGluZSBicmVha3MgdG8gI3hBIG9uIGlucHV0LCBiZWZvcmUgcGFyc2luZy4pPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGxlbmd0aCBvZiB0aGUgY2hhciByZWFkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBjaGFyIHZhbHVlIGFuZCBpdHMgbGVuZ3RoPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRGVjb2RlRW50aXRpZXMiLz54bWxEZWNvZGVFbnRpdGllcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxEZWNvZGVFbnRpdGllcwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGludCB3aGF0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDMpPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCwgd2Ugbm93IGFsd2F5cyBwcm9jZXNzIGVudGl0aWVzIGNvbnRlbnQgdGhyb3VnaCA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT4gVE9ETzogcmVtb3ZlIGl0IGluIG5leHQgbWFqb3IgcmVsZWFzZS4gWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbiB0byBkZWNvZGUgKGluIGJ5dGVzICEpLCAtMSBmb3Igbm8gc2l6ZSBsaW1pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2hhdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfUEVSRUYiPlhNTF9TVUJTVElUVVRFX1BFUkVGPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIGRvbmUuIFRoZSBjYWxsZXIgbXVzdCBkZWFsbG9jYXRlIGl0ICE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFcnJNZW1vcnkiLz54bWxFcnJNZW1vcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEVyck1lbW9yeQkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBleHRyYSk8YnIvPgorPC9wcmU+PHA+SGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGVycm9yPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4dHJhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBpbmZvcm1hdGlvbnM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlSW5wdXRTdHJlYW0iLz54bWxGcmVlSW5wdXRTdHJlYW0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVJbnB1dFN0cmVhbQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdXAgYW4gaW5wdXQgc3RyZWFtLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYW5kbGVFbnRpdHkiLz54bWxIYW5kbGVFbnRpdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEhhbmRsZUVudGl0eQkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBlbnRpdHkpPGJyLz4KKzwvcHJlPjxwPkRlZmF1bHQgaGFuZGxpbmcgb2YgZGVmaW5lZCBlbnRpdGllcywgd2hlbiBzaG91bGQgd2UgZGVmaW5lIGEgbmV3IGlucHV0IHN0cmVhbSA/IFdoZW4gZG8gd2UganVzdCBoYW5kbGUgdGhhdCBhcyBhIHNldCBvZiBjaGFycyA/IE9CU09MRVRFOiB0byBiZSByZW1vdmVkIGF0IHNvbWUgcG9pbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVudGl0eTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIGVudGl0eSBwb2ludGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzTGV0dGVyIi8+eG1sSXNMZXR0ZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNMZXR0ZXIJCQkoaW50IGMpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBhbGxvd2VkIGJ5IHRoZSBwcm9kdWN0aW9uIFs4NF0gTGV0dGVyIDo6PSBCYXNlQ2hhciB8IElkZW9ncmFwaGljPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiB1bmljb2RlIGNoYXJhY3RlciAoaW50KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBub3QsIG5vbi16ZXJvIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lIi8+eG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBuYW1lc3BhY2UgbmFtZS4gVE9ETzogdGhpcyBzZWVtcyBub3QgaW4gdXNlIGFueW1vcmUsIHRoZSBuYW1lc3BhY2UgaGFuZGxpbmcgaXMgZG9uZSBvbiB0b3Agb2YgdGhlIFNBWCBpbnRlcmZhY2VzLCBpLmUuIG5vdCBvbiByYXcgaW5wdXQuIFtOUyAzXSBOQ05hbWUgOjo9IChMZXR0ZXIgfCAnXycpIChOQ05hbWVDaGFyKSogW05TIDRdIE5DTmFtZUNoYXIgOjo9IExldHRlciB8IERpZ2l0IHwgJy4nIHwgJy0nIHwgJ18nIHwgQ29tYmluaW5nQ2hhciB8IEV4dGVuZGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgbmFtZSBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmFtZXNwYWNlUGFyc2VOU0RlZiIvPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTmFtZXNwYWNlUGFyc2VOU0RlZgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYSBuYW1lc3BhY2UgcHJlZml4IGRlY2xhcmF0aW9uIFRPRE86IHRoaXMgc2VlbXMgbm90IGluIHVzZSBhbnltb3JlLCB0aGUgbmFtZXNwYWNlIGhhbmRsaW5nIGlzIGRvbmUgb24gdG9wIG9mIHRoZSBTQVggaW50ZXJmYWNlcywgaS5lLiBub3Qgb24gcmF3IGlucHV0LiBbTlMgMV0gTlNEZWYgOjo9IFByZWZpeERlZiBFcSBTeXN0ZW1MaXRlcmFsIFtOUyAyXSBQcmVmaXhEZWYgOjo9ICd4bWxucycgKCc6JyBOQ05hbWUpPzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIi8+eG1sTmFtZXNwYWNlUGFyc2VRTmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxOYW1lc3BhY2VQYXJzZVFOYW1lCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogcHJlZml4KTxici8+Cis8L3ByZT48cD5UT0RPOiB0aGlzIHNlZW1zIG5vdCBpbiB1c2UgYW55bW9yZSwgdGhlIG5hbWVzcGFjZSBoYW5kbGluZyBpcyBkb25lIG9uIHRvcCBvZiB0aGUgU0FYIGludGVyZmFjZXMsIGkuZS4gbm90IG9uIHJhdyBpbnB1dC4gcGFyc2UgYW4gWE1MIHF1YWxpZmllZCBuYW1lIFtOUyA1XSBRTmFtZSA6Oj0gKFByZWZpeCAnOicpPyBMb2NhbFBhcnQgW05TIDZdIFByZWZpeCA6Oj0gTkNOYW1lIFtOUyA3XSBMb2NhbFBhcnQgOjo9IE5DTmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsIHBhcnQsIGFuZCBwcmVmaXggaXMgdXBkYXRlZCB0byBnZXQgdGhlIFByZWZpeCBpZiBhbnkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3RW50aXR5SW5wdXRTdHJlYW0iLz54bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JeG1sTmV3RW50aXR5SW5wdXRTdHJlYW0JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBlbnRpdHkpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gYmFzZWQgb24gYW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVudGl0eTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRW50aXR5IHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdJbnB1dEZyb21GaWxlIi8+eG1sTmV3SW5wdXRGcm9tRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JeG1sTmV3SW5wdXRGcm9tRmlsZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgaW5wdXQgc3RyZWFtIGJhc2VkIG9uIGEgZmlsZSBvciBhbiBVUkwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgdG8gdXNlIGFzIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBpbnB1dCBzdHJlYW0gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3SW5wdXRTdHJlYW0iLz54bWxOZXdJbnB1dFN0cmVhbSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JeG1sTmV3SW5wdXRTdHJlYW0JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gc3RydWN0dXJlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSIvPnhtbE5ld1N0cmluZ0lucHV0U3RyZWFtICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZmZlcik8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IGlucHV0IHN0cmVhbSBiYXNlZCBvbiBhIG1lbW9yeSBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gbWVtb3J5IGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBpbnB1dCBzdHJlYW08L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXh0Q2hhciIvPnhtbE5leHRDaGFyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOZXh0Q2hhcgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5Ta2lwIHRvIHRoZSBuZXh0IGNoYXIgaW5wdXQgY2hhci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUF0dFZhbHVlIi8+eG1sUGFyc2VBdHRWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZUF0dFZhbHVlCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhIHZhbHVlIGZvciBhbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBOb3RlOiB0aGUgcGFyc2VyIHdvbid0IGRvIHN1YnN0aXR1dGlvbiBvZiBlbnRpdGllcyBoZXJlLCB0aGlzIHdpbGwgYmUgaGFuZGxlZCBsYXRlciBpbiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTdHJpbmdHZXROb2RlTGlzdCI+eG1sU3RyaW5nR2V0Tm9kZUxpc3Q8L2E+IFsxMF0gQXR0VmFsdWUgOjo9ICciJyAoW14mbHQ7JmFtcDsiXSB8IFJlZmVyZW5jZSkqICciJyB8ICInIiAoW14mbHQ7JmFtcDsnXSB8IFJlZmVyZW5jZSkqICInIiAzLjMuMyBBdHRyaWJ1dGUtVmFsdWUgTm9ybWFsaXphdGlvbjogQmVmb3JlIHRoZSB2YWx1ZSBvZiBhbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpcyBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yIGNoZWNrZWQgZm9yIHZhbGlkaXR5LCB0aGUgWE1MIHByb2Nlc3NvciBtdXN0IG5vcm1hbGl6ZSBpdCBhcyBmb2xsb3dzOiAtIGEgY2hhcmFjdGVyIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGlzIHByb2Nlc3NlZCBieSBhcHBlbmRpbmcgdGhlIHJlZmVyZW5jZWQgY2hhcmFjdGVyIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSAtIGFuIGVudGl0eSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBpcyBwcm9jZXNzZWQgYnkgcmVjdXJzaXZlbHkgcHJvY2Vzc2luZyB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiB0aGUgZW50aXR5IC0gYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAoI3gyMCwgI3hELCAjeEEsICN4OSkgaXMgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyAjeDIwIHRvIHRoZSBub3JtYWxpemVkIHZhbHVlLCBleGNlcHQgdGhhdCBvbmx5IGEgc2luZ2xlICN4MjAgaXMgYXBwZW5kZWQgZm9yIGEgIiN4RCN4QSIgc2VxdWVuY2UgdGhhdCBpcyBwYXJ0IG9mIGFuIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkgb3IgdGhlIGxpdGVyYWwgZW50aXR5IHZhbHVlIG9mIGFuIGludGVybmFsIHBhcnNlZCBlbnRpdHkgLSBvdGhlciA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGFyZSBwcm9jZXNzZWQgYnkgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIG5vcm1hbGl6ZWQgdmFsdWUgSWYgdGhlIGRlY2xhcmVkIHZhbHVlIGlzIG5vdCBDREFUQSwgdGhlbiB0aGUgWE1MIHByb2Nlc3NvciBtdXN0IGZ1cnRoZXIgcHJvY2VzcyB0aGUgbm9ybWFsaXplZCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycywgYW5kIGJ5IHJlcGxhY2luZyBzZXF1ZW5jZXMgb2Ygc3BhY2UgKCN4MjApIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYnkgYSBzaW5nbGUgc3BhY2UgKCN4MjApIGNoYXJhY3Rlci4gQWxsIGF0dHJpYnV0ZXMgZm9yIHdoaWNoIG5vIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHJlYWQgc2hvdWxkIGJlIHRyZWF0ZWQgYnkgYSBub24tdmFsaWRhdGluZyBwYXJzZXIgYXMgaWYgZGVjbGFyZWQgQ0RBVEEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBBdHRWYWx1ZSBwYXJzZWQgb3IgTlVMTC4gVGhlIHZhbHVlIGhhcyB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlQXR0cmlidXRlIi8+eG1sUGFyc2VBdHRyaWJ1dGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gWzQxXSBBdHRyaWJ1dGUgOjo9IE5hbWUgRXEgQXR0VmFsdWUgWyBXRkM6IE5vIEV4dGVybmFsIEVudGl0eSBSZWZlcmVuY2VzIF0gQXR0cmlidXRlIHZhbHVlcyBjYW5ub3QgY29udGFpbiBkaXJlY3Qgb3IgaW5kaXJlY3QgZW50aXR5IHJlZmVyZW5jZXMgdG8gZXh0ZXJuYWwgZW50aXRpZXMuIFsgV0ZDOiBObyAmbHQ7IGluIEF0dHJpYnV0ZSBWYWx1ZXMgXSBUaGUgcmVwbGFjZW1lbnQgdGV4dCBvZiBhbnkgZW50aXR5IHJlZmVycmVkIHRvIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgaW4gYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgKG90aGVyIHRoYW4gIiZhbXA7bHQ7IikgbXVzdCBub3QgY29udGFpbiBhICZsdDsuIFsgVkM6IEF0dHJpYnV0ZSBWYWx1ZSBUeXBlIF0gVGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG11c3QgaGF2ZSBiZWVuIGRlY2xhcmVkOyB0aGUgdmFsdWUgbXVzdCBiZSBvZiB0aGUgdHlwZSBkZWNsYXJlZCBmb3IgaXQuIFsyNV0gRXEgOjo9IFM/ICc9JyBTPyBXaXRoIG5hbWVzcGFjZTogW05TIDExXSBBdHRyaWJ1dGUgOjo9IFFOYW1lIEVxIEF0dFZhbHVlIEFsc28gdGhlIGNhc2UgUU5hbWUgPT0geG1sbnM6Pz8/IGlzIGhhbmRsZWQgaW5kZXBlbmRlbnRseSBhcyBhIG5hbWVzcGFjZSBkZWZpbml0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWUsIGFuZCB0aGUgdmFsdWUgaW4gKnZhbHVlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2wiLz54bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD46IHBhcnNlIHRoZSBBdHRyaWJ1dGUgbGlzdCBkZWYgZm9yIGFuIGVsZW1lbnQgWzUyXSBBdHRsaXN0RGVjbCA6Oj0gJyZsdDshQVRUTElTVCcgUyBOYW1lIEF0dERlZiogUz8gJyZndDsnIFs1M10gQXR0RGVmIDo6PSBTIE5hbWUgUyBBdHRUeXBlIFMgRGVmYXVsdERlY2w8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlQXR0cmlidXRlVHlwZSIvPnhtbFBhcnNlQXR0cmlidXRlVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZUF0dHJpYnV0ZVR5cGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gKiB0cmVlKTxici8+Cis8L3ByZT48cD5wYXJzZSB0aGUgQXR0cmlidXRlIGxpc3QgZGVmIGZvciBhbiBlbGVtZW50IFs1NF0gQXR0VHlwZSA6Oj0gU3RyaW5nVHlwZSB8IFRva2VuaXplZFR5cGUgfCBFbnVtZXJhdGVkVHlwZSBbNTVdIFN0cmluZ1R5cGUgOjo9ICdDREFUQScgWzU2XSBUb2tlbml6ZWRUeXBlIDo6PSAnSUQnIHwgJ0lEUkVGJyB8ICdJRFJFRlMnIHwgJ0VOVElUWScgfCAnRU5USVRJRVMnIHwgJ05NVE9LRU4nIHwgJ05NVE9LRU5TJyBWYWxpZGl0eSBjb25zdHJhaW50cyBmb3IgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzIHN5bnRheCBhcmUgY2hlY2tlZCBpbiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlKCkgWyBWQzogSUQgXSBWYWx1ZXMgb2YgdHlwZSBJRCBtdXN0IG1hdGNoIHRoZSBOYW1lIHByb2R1Y3Rpb24uIEEgbmFtZSBtdXN0IG5vdCBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gYW4gWE1MIGRvY3VtZW50IGFzIGEgdmFsdWUgb2YgdGhpcyB0eXBlOyBpLmUuLCBJRCB2YWx1ZXMgbXVzdCB1bmlxdWVseSBpZGVudGlmeSB0aGUgZWxlbWVudHMgd2hpY2ggYmVhciB0aGVtLiBbIFZDOiBPbmUgSUQgcGVyIEVsZW1lbnQgVHlwZSBdIE5vIGVsZW1lbnQgdHlwZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIElEIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHNwZWNpZmllZC4gWyBWQzogSUQgQXR0cmlidXRlIERlZmF1bHQgXSBBbiBJRCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBtdXN0IGhhdmUgYSBkZWNsYXJlZCBkZWZhdWx0IG9mICNJTVBMSUVEIG9yICNSRVFVSVJFRC4gWyBWQzogSURSRUYgXSBWYWx1ZXMgb2YgdHlwZSBJRFJFRiBtdXN0IG1hdGNoIHRoZSBOYW1lIHByb2R1Y3Rpb24sIGFuZCB2YWx1ZXMgb2YgdHlwZSBJRFJFRlMgbXVzdCBtYXRjaCBOYW1lczsgZWFjaCBJRFJFRiBOYW1lIG11c3QgbWF0Y2ggdGhlIHZhbHVlIG9mIGFuIElEIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG9uIHNvbWUgZWxlbWVudCBpbiB0aGUgWE1MIGRvY3VtZW50OyBpLmUuIElEUkVGIHZhbHVlcyBtdXN0IG1hdGNoIHRoZSB2YWx1ZSBvZiBzb21lIElEIGF0dHJpYnV0ZS4gWyBWQzogRW50aXR5IE5hbWUgXSBWYWx1ZXMgb2YgdHlwZSBFTlRJVFkgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCB2YWx1ZXMgb2YgdHlwZSBFTlRJVElFUyBtdXN0IG1hdGNoIE5hbWVzOyBlYWNoIEVudGl0eSBOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gdW5wYXJzZWQgZW50aXR5IGRlY2xhcmVkIGluIHRoZSBEVEQuIFsgVkM6IE5hbWUgVG9rZW4gXSBWYWx1ZXMgb2YgdHlwZSBOTVRPS0VOIG11c3QgbWF0Y2ggdGhlIE5tdG9rZW4gcHJvZHVjdGlvbjsgdmFsdWVzIG9mIHR5cGUgTk1UT0tFTlMgbXVzdCBtYXRjaCBObXRva2Vucy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudW1lcmF0aW9uIHRyZWUgYnVpbHQgd2hpbGUgcGFyc2luZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUNEU2VjdCIvPnhtbFBhcnNlQ0RTZWN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUNEU2VjdAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5QYXJzZSBlc2NhcGVkIHB1cmUgcmF3IGNvbnRlbnQuIFsxOF0gQ0RTZWN0IDo6PSBDRFN0YXJ0IENEYXRhIENERW5kIFsxOV0gQ0RTdGFydCA6Oj0gJyZsdDshW0NEQVRBWycgWzIwXSBEYXRhIDo6PSAoQ2hhciogLSAoQ2hhciogJ11dJmd0OycgQ2hhciopKSBbMjFdIENERW5kIDo6PSAnXV0mZ3Q7JzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDaGFyRGF0YSIvPnhtbFBhcnNlQ2hhckRhdGEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlQ2hhckRhdGEJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBjZGF0YSk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYSBDaGFyRGF0YSBzZWN0aW9uLiBpZiB3ZSBhcmUgd2l0aGluIGEgQ0RBVEEgc2VjdGlvbiAnXV0mZ3Q7JyBtYXJrcyBhbiBlbmQgb2Ygc2VjdGlvbi4gVGhlIHJpZ2h0IGFuZ2xlIGJyYWNrZXQgKCZndDspIG1heSBiZSByZXByZXNlbnRlZCB1c2luZyB0aGUgc3RyaW5nICImYW1wO2d0OyIsIGFuZCBtdXN0LCBmb3IgY29tcGF0aWJpbGl0eSwgYmUgZXNjYXBlZCB1c2luZyAiJmFtcDtndDsiIG9yIGEgY2hhcmFjdGVyIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHdoZW4gaXQgYXBwZWFycyBpbiB0aGUgc3RyaW5nICJdXSZndDsiIGluIGNvbnRlbnQsIHdoZW4gdGhhdCBzdHJpbmcgaXMgbm90IG1hcmtpbmcgdGhlIGVuZCBvZiBhIENEQVRBIHNlY3Rpb24uIFsxNF0gQ2hhckRhdGEgOjo9IFteJmx0OyZhbXA7XSogLSAoW14mbHQ7JmFtcDtdKiAnXV0mZ3Q7JyBbXiZsdDsmYW1wO10qKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW50IGluZGljYXRpbmcgd2hldGhlciB3ZSBhcmUgd2l0aGluIGEgQ0RBVEEgc2VjdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlQ2hhclJlZiIvPnhtbFBhcnNlQ2hhclJlZiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZUNoYXJSZWYJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgUmVmZXJlbmNlIGRlY2xhcmF0aW9ucyBbNjZdIENoYXJSZWYgOjo9ICcmYW1wOyMnIFswLTldKyAnOycgfCAnJmFtcDsjeCcgWzAtOWEtZkEtRl0rICc7JyBbIFdGQzogTGVnYWwgQ2hhcmFjdGVyIF0gQ2hhcmFjdGVycyByZWZlcnJlZCB0byB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IG1hdGNoIHRoZSBwcm9kdWN0aW9uIGZvciBDaGFyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgcGFyc2VkIChhcyBhbiBpbnQpLCAwIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUNvbW1lbnQiLz54bWxQYXJzZUNvbW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlQ29tbWVudAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5Ta2lwIGFuIFhNTCAoU0dNTCkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPiAmbHQ7IS0tIC4uLi4gLS0mZ3Q7IFRoZSBzcGVjIHNheXMgdGhhdCAiRm9yIGNvbXBhdGliaWxpdHksIHRoZSBzdHJpbmcgIi0tIiAoZG91YmxlLWh5cGhlbikgbXVzdCBub3Qgb2NjdXIgd2l0aGluIGNvbW1lbnRzLiAiIFsxNV0gQ29tbWVudCA6Oj0gJyZsdDshLS0nICgoQ2hhciAtICctJykgfCAoJy0nIChDaGFyIC0gJy0nKSkpKiAnLS0mZ3Q7JzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDb250ZW50Ii8+eG1sUGFyc2VDb250ZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUNvbnRlbnQJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+UGFyc2UgYSBjb250ZW50OiBbNDNdIGNvbnRlbnQgOjo9IChlbGVtZW50IHwgQ2hhckRhdGEgfCBSZWZlcmVuY2UgfCBDRFNlY3QgfCBQSSB8IENvbW1lbnQpKjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VEZWZhdWx0RGVjbCIvPnhtbFBhcnNlRGVmYXVsdERlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VEZWZhdWx0RGVjbAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+UGFyc2UgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVmYXVsdCBkZWNsYXJhdGlvbiBbNjBdIERlZmF1bHREZWNsIDo6PSAnI1JFUVVJUkVEJyB8ICcjSU1QTElFRCcgfCAoKCcjRklYRUQnIFMpPyBBdHRWYWx1ZSkgWyBWQzogUmVxdWlyZWQgQXR0cmlidXRlIF0gaWYgdGhlIGRlZmF1bHQgZGVjbGFyYXRpb24gaXMgdGhlIGtleXdvcmQgI1JFUVVJUkVELCB0aGVuIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBtdXN0IGJlIHNwZWNpZmllZCBmb3IgYWxsIGVsZW1lbnRzIG9mIHRoZSB0eXBlIGluIHRoZSBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbi4gWyBWQzogQXR0cmlidXRlIERlZmF1bHQgTGVnYWwgXSBUaGUgZGVjbGFyZWQgZGVmYXVsdCB2YWx1ZSBtdXN0IG1lZXQgdGhlIGxleGljYWwgY29uc3RyYWludHMgb2YgdGhlIGRlY2xhcmVkIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUgYy5mLiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2woKSBbIFZDOiBGaXhlZCBBdHRyaWJ1dGUgRGVmYXVsdCBdIGlmIGFuIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGhhcyBhIGRlZmF1bHQgdmFsdWUgZGVjbGFyZWQgd2l0aCB0aGUgI0ZJWEVEIGtleXdvcmQsIGluc3RhbmNlcyBvZiB0aGF0IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG11c3QgbWF0Y2ggdGhlIGRlZmF1bHQgdmFsdWUuIFsgV0ZDOiBObyAmbHQ7IGluIEF0dHJpYnV0ZSBWYWx1ZXMgXSBoYW5kbGVkIGluIHhtbFBhcnNlQXR0VmFsdWUoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+UmVjZWl2ZSBhIHBvc3NpYmxlIGZpeGVkIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+WE1MX0FUVFJJQlVURV9OT05FLCBYTUxfQVRUUklCVVRFX1JFUVVJUkVELCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0lNUExJRUQiPlhNTF9BVFRSSUJVVEVfSU1QTElFRDwvYT4gb3IgWE1MX0FUVFJJQlVURV9GSVhFRC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZURvY1R5cGVEZWNsIi8+eG1sUGFyc2VEb2NUeXBlRGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VEb2NUeXBlRGVjbAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGEgRE9DVFlQRSBkZWNsYXJhdGlvbiBbMjhdIGRvY3R5cGVkZWNsIDo6PSAnJmx0OyFET0NUWVBFJyBTIE5hbWUgKFMgRXh0ZXJuYWxJRCk/IFM/ICgnWycgKG1hcmt1cGRlY2wgfCBQRVJlZmVyZW5jZSB8IFMpKiAnXScgUz8pPyAnJmd0OycgWyBWQzogUm9vdCBFbGVtZW50IFR5cGUgXSBUaGUgTmFtZSBpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBtdXN0IG1hdGNoIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIHJvb3QgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRWxlbWVudCIvPnhtbFBhcnNlRWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VFbGVtZW50CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBlbGVtZW50LCB0aGlzIGlzIGhpZ2hseSByZWN1cnNpdmUgWzM5XSBlbGVtZW50IDo6PSBFbXB0eUVsZW1UYWcgfCBTVGFnIGNvbnRlbnQgRVRhZyBbIFdGQzogRWxlbWVudCBUeXBlIE1hdGNoIF0gVGhlIE5hbWUgaW4gYW4gZWxlbWVudCdzIGVuZC10YWcgbXVzdCBtYXRjaCB0aGUgZWxlbWVudCB0eXBlIGluIHRoZSBzdGFydC10YWcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIi8+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4JeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkJIGludCBpbnB1dGNoayk8YnIvPgorPC9wcmU+PHA+cGFyc2UgdGhlIGRlY2xhcmF0aW9uIGZvciBhIE1peGVkIEVsZW1lbnQgY29udGVudCBUaGUgbGVhZGluZyAnKCcgYW5kIHNwYWNlcyBoYXZlIGJlZW4gc2tpcHBlZCBpbiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT4gWzQ3XSBjaGlsZHJlbiA6Oj0gKGNob2ljZSB8IHNlcSkgKCc/JyB8ICcqJyB8ICcrJyk/IFs0OF0gY3AgOjo9IChOYW1lIHwgY2hvaWNlIHwgc2VxKSAoJz8nIHwgJyonIHwgJysnKT8gWzQ5XSBjaG9pY2UgOjo9ICcoJyBTPyBjcCAoIFM/ICd8JyBTPyBjcCApKiBTPyAnKScgWzUwXSBzZXEgOjo9ICcoJyBTPyBjcCAoIFM/ICcsJyBTPyBjcCApKiBTPyAnKScgWyBWQzogUHJvcGVyIEdyb3VwL1BFIE5lc3RpbmcgXSBhcHBsaWVzIHRvIFs0OV0gYW5kIFs1MF0gVE9ETyBQYXJhbWV0ZXItZW50aXR5IHJlcGxhY2VtZW50IHRleHQgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgd2l0aCBwYXJlbnRoZXNpemVkIGdyb3Vwcy4gVGhhdCBpcyB0byBzYXksIGlmIGVpdGhlciBvZiB0aGUgb3BlbmluZyBvciBjbG9zaW5nIHBhcmVudGhlc2VzIGluIGEgY2hvaWNlLCBzZXEsIG9yIE1peGVkIGNvbnN0cnVjdCBpcyBjb250YWluZWQgaW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIGEgcGFyYW1ldGVyIGVudGl0eSwgYm90aCBtdXN0IGJlIGNvbnRhaW5lZCBpbiB0aGUgc2FtZSByZXBsYWNlbWVudCB0ZXh0LiBGb3IgaW50ZXJvcGVyYWJpbGl0eSwgaWYgYSBwYXJhbWV0ZXItZW50aXR5IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGFwcGVhcnMgaW4gYSBjaG9pY2UsIHNlcSwgb3IgTWl4ZWQgY29uc3RydWN0LCBpdHMgcmVwbGFjZW1lbnQgdGV4dCBzaG91bGQgbm90IGJlIGVtcHR5LCBhbmQgbmVpdGhlciB0aGUgZmlyc3Qgbm9yIGxhc3Qgbm9uLWJsYW5rIGNoYXJhY3RlciBvZiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBzaG91bGQgYmUgYSBjb25uZWN0b3IgKHwgb3IgLCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0Y2hrPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgdXNlZCBmb3IgdGhlIGN1cnJlbnQgZW50aXR5LCBuZWVkZWQgZm9yIGJvdW5kYXJ5IGNoZWNrczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRyZWUgb2YgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBkZXNjcmliaW5nIHRoZSBlbGVtZW50IGhpZXJhcmNoeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCIvPnhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gKiByZXN1bHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIHRoZSBkZWNsYXJhdGlvbiBmb3IgYW4gRWxlbWVudCBjb250ZW50IGVpdGhlciBNaXhlZCBvciBDaGlsZHJlbiwgdGhlIGNhc2VzIEVNUFRZIGFuZCBBTlkgYXJlIGhhbmRsZWQgZGlyZWN0bHkgaW4gPGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnREZWNsIj54bWxQYXJzZUVsZW1lbnREZWNsPC9hPiBbNDZdIGNvbnRlbnRzcGVjIDo6PSAnRU1QVFknIHwgJ0FOWScgfCBNaXhlZCB8IGNoaWxkcmVuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBlbGVtZW50IGJlaW5nIGRlZmluZWQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXN1bHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBFbGVtZW50IENvbnRlbnQgcG9pbnRlciB3aWxsIGJlIHN0b3JlZCBoZXJlIGlmIGFueTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgZWxlbWVudCBjb250ZW50IFhNTF9FTEVNRU5UX1RZUEVfeHh4PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbGVtZW50RGVjbCIvPnhtbFBhcnNlRWxlbWVudERlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VFbGVtZW50RGVjbAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEVsZW1lbnQgZGVjbGFyYXRpb24uIFs0NV0gZWxlbWVudGRlY2wgOjo9ICcmbHQ7IUVMRU1FTlQnIFMgTmFtZSBTIGNvbnRlbnRzcGVjIFM/ICcmZ3Q7JyBbIFZDOiBVbmlxdWUgRWxlbWVudCBUeXBlIERlY2xhcmF0aW9uIF0gTm8gZWxlbWVudCB0eXBlIG1heSBiZSBkZWNsYXJlZCBtb3JlIHRoYW4gb25jZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBvZiB0aGUgZWxlbWVudCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiLz54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgl4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCQkgaW50IGlucHV0Y2hrKTxici8+Cis8L3ByZT48cD5wYXJzZSB0aGUgZGVjbGFyYXRpb24gZm9yIGEgTWl4ZWQgRWxlbWVudCBjb250ZW50IFRoZSBsZWFkaW5nICcoJyBhbmQgc3BhY2VzIGhhdmUgYmVlbiBza2lwcGVkIGluIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsPC9hPiBbNTFdIE1peGVkIDo6PSAnKCcgUz8gJyNQQ0RBVEEnIChTPyAnfCcgUz8gTmFtZSkqIFM/ICcpKicgfCAnKCcgUz8gJyNQQ0RBVEEnIFM/ICcpJyBbIFZDOiBQcm9wZXIgR3JvdXAvUEUgTmVzdGluZyBdIGFwcGxpZXMgdG8gWzUxXSB0b28gKHNlZSBbNDldKSBbIFZDOiBObyBEdXBsaWNhdGUgVHlwZXMgXSBUaGUgc2FtZSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiBhIHNpbmdsZSBtaXhlZC1jb250ZW50IGRlY2xhcmF0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dGNoazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHVzZWQgZm9yIHRoZSBjdXJyZW50IGVudGl0eSwgbmVlZGVkIGZvciBib3VuZGFyeSBjaGVja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaXN0IG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGRlc2NyaWJpbmcgdGhlIGVsZW1lbnQgY2hvaWNlczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRW5jTmFtZSIvPnhtbFBhcnNlRW5jTmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZUVuY05hbWUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSB0aGUgWE1MIGVuY29kaW5nIG5hbWUgWzgxXSBFbmNOYW1lIDo6PSBbQS1aYS16XSAoW0EtWmEtejAtOS5fXSB8ICctJykqPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBuYW1lIHZhbHVlIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUVuY29kaW5nRGVjbCIvPnhtbFBhcnNlRW5jb2RpbmdEZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlRW5jb2RpbmdEZWNsCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSB0aGUgWE1MIGVuY29kaW5nIGRlY2xhcmF0aW9uIFs4MF0gRW5jb2RpbmdEZWNsIDo6PSBTICdlbmNvZGluZycgRXEgKCciJyBFbmNOYW1lICciJyB8ICInIiBFbmNOYW1lICInIikgdGhpcyBzZXR1cHMgdGhlIGNvbnZlcnNpb24gZmlsdGVycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIHZhbHVlIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUVuZFRhZyIvPnhtbFBhcnNlRW5kVGFnICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUVuZFRhZwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBlbmQgb2YgdGFnIFs0Ml0gRVRhZyA6Oj0gJyZsdDsvJyBOYW1lIFM/ICcmZ3Q7JyBXaXRoIG5hbWVzcGFjZSBbTlMgOV0gRVRhZyA6Oj0gJyZsdDsvJyBRTmFtZSBTPyAnJmd0Oyc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRW50aXR5RGVjbCIvPnhtbFBhcnNlRW50aXR5RGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VFbnRpdHlEZWNsCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgJmx0OyFFTlRJVFkgZGVjbGFyYXRpb25zIFs3MF0gRW50aXR5RGVjbCA6Oj0gR0VEZWNsIHwgUEVEZWNsIFs3MV0gR0VEZWNsIDo6PSAnJmx0OyFFTlRJVFknIFMgTmFtZSBTIEVudGl0eURlZiBTPyAnJmd0OycgWzcyXSBQRURlY2wgOjo9ICcmbHQ7IUVOVElUWScgUyAnJScgUyBOYW1lIFMgUEVEZWYgUz8gJyZndDsnIFs3M10gRW50aXR5RGVmIDo6PSBFbnRpdHlWYWx1ZSB8IChFeHRlcm5hbElEIE5EYXRhRGVjbD8pIFs3NF0gUEVEZWYgOjo9IEVudGl0eVZhbHVlIHwgRXh0ZXJuYWxJRCBbNzZdIE5EYXRhRGVjbCA6Oj0gUyAnTkRBVEEnIFMgTmFtZSBbIFZDOiBOb3RhdGlvbiBEZWNsYXJlZCBdIFRoZSBOYW1lIG11c3QgbWF0Y2ggdGhlIGRlY2xhcmVkIG5hbWUgb2YgYSBub3RhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRW50aXR5UmVmIi8+eG1sUGFyc2VFbnRpdHlSZWYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sUGFyc2VFbnRpdHlSZWYJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIEVOVElUWSByZWZlcmVuY2VzIGRlY2xhcmF0aW9ucyBbNjhdIEVudGl0eVJlZiA6Oj0gJyZhbXA7JyBOYW1lICc7JyBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0gSW4gYSBkb2N1bWVudCB3aXRob3V0IGFueSBEVEQsIGEgZG9jdW1lbnQgd2l0aCBvbmx5IGFuIGludGVybmFsIERURCBzdWJzZXQgd2hpY2ggY29udGFpbnMgbm8gcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2VzLCBvciBhIGRvY3VtZW50IHdpdGggInN0YW5kYWxvbmU9J3llcyciLCB0aGUgTmFtZSBnaXZlbiBpbiB0aGUgZW50aXR5IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IG11c3QgbWF0Y2ggdGhhdCBpbiBhbiBlbnRpdHkgZGVjbGFyYXRpb24sIGV4Y2VwdCB0aGF0IHdlbGwtZm9ybWVkIGRvY3VtZW50cyBuZWVkIG5vdCBkZWNsYXJlIGFueSBvZiB0aGUgZm9sbG93aW5nIGVudGl0aWVzOiBhbXAsIGx0LCBndCwgYXBvcywgcXVvdC4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIGl0LiBTaW1pbGFybHksIHRoZSBkZWNsYXJhdGlvbiBvZiBhIGdlbmVyYWwgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gaXQgd2hpY2ggYXBwZWFycyBpbiBhIGRlZmF1bHQgdmFsdWUgaW4gYW4gYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uIE5vdGUgdGhhdCBpZiBlbnRpdGllcyBhcmUgZGVjbGFyZWQgaW4gdGhlIGV4dGVybmFsIHN1YnNldCBvciBpbiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMsIGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yIGlzIG5vdCBvYmxpZ2F0ZWQgdG8gcmVhZCBhbmQgcHJvY2VzcyB0aGVpciBkZWNsYXJhdGlvbnM7IGZvciBzdWNoIGRvY3VtZW50cywgdGhlIHJ1bGUgdGhhdCBhbiBlbnRpdHkgbXVzdCBiZSBkZWNsYXJlZCBpcyBhIHdlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50IG9ubHkgaWYgc3RhbmRhbG9uZT0neWVzJy4gWyBXRkM6IFBhcnNlZCBFbnRpdHkgXSBBbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gbXVzdCBub3QgY29udGFpbiB0aGUgbmFtZSBvZiBhbiB1bnBhcnNlZCBlbnRpdHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBpZiBmb3VuZCwgb3IgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbnRpdHlWYWx1ZSIvPnhtbFBhcnNlRW50aXR5VmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VFbnRpdHlWYWx1ZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG9yaWcpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGEgdmFsdWUgZm9yIEVOVElUWSBkZWNsYXJhdGlvbnMgWzldIEVudGl0eVZhbHVlIDo6PSAnIicgKFteJSZhbXA7Il0gfCBQRVJlZmVyZW5jZSB8IFJlZmVyZW5jZSkqICciJyB8ICInIiAoW14lJmFtcDsnXSB8IFBFUmVmZXJlbmNlIHwgUmVmZXJlbmNlKSogIiciPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9yaWc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIG5vbi1OVUxMIHN0b3JlIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgZW50aXR5IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRW50aXR5VmFsdWUgcGFyc2VkIHdpdGggPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gc3Vic3RpdHV0ZWQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlRW51bWVyYXRlZFR5cGUiLz54bWxQYXJzZUVudW1lcmF0ZWRUeXBlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlRW51bWVyYXRlZFR5cGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gKiB0cmVlKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBFbnVtZXJhdGVkIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUuIFs1N10gRW51bWVyYXRlZFR5cGUgOjo9IE5vdGF0aW9uVHlwZSB8IEVudW1lcmF0aW9uIFs1OF0gTm90YXRpb25UeXBlIDo6PSAnTk9UQVRJT04nIFMgJygnIFM/IE5hbWUgKFM/ICd8JyBTPyBOYW1lKSogUz8gJyknPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnVtZXJhdGlvbiB0cmVlIGJ1aWx0IHdoaWxlIHBhcnNpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT04iPlhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT048L2E+IG9yIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfTk9UQVRJT04iPlhNTF9BVFRSSUJVVEVfTk9UQVRJT048L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbnVtZXJhdGlvblR5cGUiLz54bWxQYXJzZUVudW1lcmF0aW9uVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JeG1sUGFyc2VFbnVtZXJhdGlvblR5cGUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEVudW1lcmF0aW9uIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUuIFs1OV0gRW51bWVyYXRpb24gOjo9ICcoJyBTPyBObXRva2VuIChTPyAnfCcgUz8gTm10b2tlbikqIFM/ICcpJyBbIFZDOiBFbnVtZXJhdGlvbiBdIFZhbHVlcyBvZiB0aGlzIHR5cGUgbXVzdCBtYXRjaCBvbmUgb2YgdGhlIE5tdG9rZW4gdG9rZW5zIGluIHRoZSBkZWNsYXJhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW51bWVyYXRpb24gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdHJlZSBidWlsdCB3aGlsZSBwYXJzaW5nPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFeHRlcm5hbElEIi8+eG1sUGFyc2VFeHRlcm5hbElEICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlRXh0ZXJuYWxJRAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHB1YmxpY0lELCA8YnIvPgkJCQkJIGludCBzdHJpY3QpPGJyLz4KKzwvcHJlPjxwPlBhcnNlIGFuIEV4dGVybmFsIElEIG9yIGEgUHVibGljIElEIE5PVEU6IFByb2R1Y3Rpb25zIFs3NV0gYW5kIFs4M10gaW50ZXJhY3QgYmFkbHkgc2luY2UgWzc1XSBjYW4gZ2VuZXJhdGUgJ1BVQkxJQycgUyBQdWJpZExpdGVyYWwgUyBTeXN0ZW1MaXRlcmFsIFs3NV0gRXh0ZXJuYWxJRCA6Oj0gJ1NZU1RFTScgUyBTeXN0ZW1MaXRlcmFsIHwgJ1BVQkxJQycgUyBQdWJpZExpdGVyYWwgUyBTeXN0ZW1MaXRlcmFsIFs4M10gUHVibGljSUQgOjo9ICdQVUJMSUMnIFMgUHViaWRMaXRlcmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHhtbENoYXIqKiByZWNlaXZpbmcgUHViaWRMaXRlcmFsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmluZGljYXRlIHdoZXRoZXIgd2Ugc2hvdWxkIHJlc3RyaWN0IHBhcnNpbmcgdG8gb25seSBwcm9kdWN0aW9uIFs3NV0sIHNlZSBOT1RFIGJlbG93PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb24gcmV0dXJucyBTeXN0ZW1MaXRlcmFsIGFuZCBpbiB0aGUgc2Vjb25kIGNhc2UgcHVibGljSUQgcmVjZWl2ZXMgUHViaWRMaXRlcmFsLCBpcyBzdHJpY3QgaXMgb2ZmIGl0IGlzIHBvc3NpYmxlIHRvIHJldHVybiBOVUxMIGFuZCBoYXZlIHB1YmxpY0lEIHNldC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZUV4dGVybmFsU3Vic2V0Ii8+eG1sUGFyc2VFeHRlcm5hbFN1YnNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VFeHRlcm5hbFN1YnNldAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxici8+Cis8L3ByZT48cD5wYXJzZSBNYXJrdXAgZGVjbGFyYXRpb25zIGZyb20gYW4gZXh0ZXJuYWwgc3Vic2V0IFszMF0gZXh0U3Vic2V0IDo6PSB0ZXh0RGVjbD8gZXh0U3Vic2V0RGVjbCBbMzFdIGV4dFN1YnNldERlY2wgOjo9IChtYXJrdXBkZWNsIHwgY29uZGl0aW9uYWxTZWN0IHwgUEVSZWZlcmVuY2UgfCBTKSAqPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyIChvciBVUkwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VNYXJrdXBEZWNsIi8+eG1sUGFyc2VNYXJrdXBEZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZU1hcmt1cERlY2wJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBNYXJrdXAgZGVjbGFyYXRpb25zIFsyOV0gbWFya3VwZGVjbCA6Oj0gZWxlbWVudGRlY2wgfCBBdHRsaXN0RGVjbCB8IEVudGl0eURlY2wgfCBOb3RhdGlvbkRlY2wgfCBQSSB8IENvbW1lbnQgWyBWQzogUHJvcGVyIERlY2xhcmF0aW9uL1BFIE5lc3RpbmcgXSBQYXJhbWV0ZXItZW50aXR5IHJlcGxhY2VtZW50IHRleHQgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgd2l0aCBtYXJrdXAgZGVjbGFyYXRpb25zLiBUaGF0IGlzIHRvIHNheSwgaWYgZWl0aGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3IgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbWFya3VwIGRlY2xhcmF0aW9uIChtYXJrdXBkZWNsIGFib3ZlKSBpcyBjb250YWluZWQgaW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIGEgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UsIGJvdGggbXVzdCBiZSBjb250YWluZWQgaW4gdGhlIHNhbWUgcmVwbGFjZW1lbnQgdGV4dC4gWyBXRkM6IFBFcyBpbiBJbnRlcm5hbCBTdWJzZXQgXSBJbiB0aGUgaW50ZXJuYWwgRFREIHN1YnNldCwgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzIGNhbiBvY2N1ciBvbmx5IHdoZXJlIG1hcmt1cCBkZWNsYXJhdGlvbnMgY2FuIG9jY3VyLCBub3Qgd2l0aGluIG1hcmt1cCBkZWNsYXJhdGlvbnMuIChUaGlzIGRvZXMgbm90IGFwcGx5IHRvIHJlZmVyZW5jZXMgdGhhdCBvY2N1ciBpbiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMgb3IgdG8gdGhlIGV4dGVybmFsIHN1YnNldC4pPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZU1pc2MiLz54bWxQYXJzZU1pc2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlTWlzYwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgTWlzYyogb3B0aW9uYWwgZmllbGQuIFsyN10gTWlzYyA6Oj0gQ29tbWVudCB8IFBJIHwgUzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VOYW1lIi8+eG1sUGFyc2VOYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlTmFtZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBuYW1lLiBbNF0gTmFtZUNoYXIgOjo9IExldHRlciB8IERpZ2l0IHwgJy4nIHwgJy0nIHwgJ18nIHwgJzonIHwgQ29tYmluaW5nQ2hhciB8IEV4dGVuZGVyIFs1XSBOYW1lIDo6PSAoTGV0dGVyIHwgJ18nIHwgJzonKSAoTmFtZUNoYXIpKiBbNl0gTmFtZXMgOjo9IE5hbWUgKCN4MjAgTmFtZSkqPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBOYW1lIHBhcnNlZCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VOYW1lc3BhY2UiLz54bWxQYXJzZU5hbWVzcGFjZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VOYW1lc3BhY2UJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD54bWxQYXJzZU5hbWVzcGFjZTogcGFyc2Ugc3BlY2lmaWMgUEkgJyZsdDs/bmFtZXNwYWNlIC4uLicgY29uc3RydWN0cy4gVGhpcyBpcyB3aGF0IHRoZSBvbGRlciB4bWwtbmFtZSBXb3JraW5nIERyYWZ0IHNwZWNpZmllZCwgYSBidW5jaCBvZiBvdGhlciBzdHVmZiBtYXkgc3RpbGwgcmVseSBvbiBpdCwgc28gc3VwcG9ydCBpcyBzdGlsbCBoZXJlIGFzIGlmIGl0IHdhcyBkZWNsYXJlZCBvbiB0aGUgcm9vdCBvZiB0aGUgVHJlZTotKCBUT0RPOiByZW1vdmUgZnJvbSBsaWJyYXJ5IFRvIGJlIHJlbW92ZWQgYXQgbmV4dCBkcm9wIG9mIGJpbmFyeSBjb21wYXRpYmlsaXR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZU5tdG9rZW4iLz54bWxQYXJzZU5tdG9rZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VObXRva2VuCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIE5tdG9rZW4uIFs3XSBObXRva2VuIDo6PSAoTmFtZUNoYXIpKyBbOF0gTm10b2tlbnMgOjo9IE5tdG9rZW4gKCN4MjAgTm10b2tlbikqPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBObXRva2VuIHBhcnNlZCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VOb3RhdGlvbkRlY2wiLz54bWxQYXJzZU5vdGF0aW9uRGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VOb3RhdGlvbkRlY2wJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uIFs4Ml0gTm90YXRpb25EZWNsIDo6PSAnJmx0OyFOT1RBVElPTicgUyBOYW1lIFMgKEV4dGVybmFsSUQgfCBQdWJsaWNJRCkgUz8gJyZndDsnIEhlbmNlIHRoZXJlIGlzIGFjdHVhbGx5IDMgY2hvaWNlczogJ1BVQkxJQycgUyBQdWJpZExpdGVyYWwgJ1BVQkxJQycgUyBQdWJpZExpdGVyYWwgUyBTeXN0ZW1MaXRlcmFsIGFuZCAnU1lTVEVNJyBTIFN5c3RlbUxpdGVyYWwgU2VlIHRoZSBOT1RFIG9uIHhtbFBhcnNlRXh0ZXJuYWxJRCgpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VOb3RhdGlvblR5cGUiLz54bWxQYXJzZU5vdGF0aW9uVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JeG1sUGFyc2VOb3RhdGlvblR5cGUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIE5vdGF0aW9uIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUuIE5vdGU6IHRoZSBsZWFkaW5nICdOT1RBVElPTicgUyBwYXJ0IGhhcyBhbHJlYWR5IGJlaW5nIHBhcnNlZC4uLiBbNThdIE5vdGF0aW9uVHlwZSA6Oj0gJ05PVEFUSU9OJyBTICcoJyBTPyBOYW1lIChTPyAnfCcgUz8gTmFtZSkqIFM/ICcpJyBbIFZDOiBOb3RhdGlvbiBBdHRyaWJ1dGVzIF0gVmFsdWVzIG9mIHRoaXMgdHlwZSBtdXN0IG1hdGNoIG9uZSBvZiB0aGUgbm90YXRpb24gbmFtZXMgaW5jbHVkZWQgaW4gdGhlIGRlY2xhcmF0aW9uOyBhbGwgbm90YXRpb24gbmFtZXMgaW4gdGhlIGRlY2xhcmF0aW9uIG11c3QgYmUgZGVjbGFyZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub3RhdGlvbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0cmVlIGJ1aWx0IHdoaWxlIHBhcnNpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZVBFUmVmZXJlbmNlIi8+eG1sUGFyc2VQRVJlZmVyZW5jZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VQRVJlZmVyZW5jZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIFBFUmVmZXJlbmNlIGRlY2xhcmF0aW9ucyBUaGUgZW50aXR5IGNvbnRlbnQgaXMgaGFuZGxlZCBkaXJlY3RseSBieSBwdXNoaW5nIGl0J3MgY29udGVudCBhcyBhIG5ldyBpbnB1dCBzdHJlYW0uIFs2OV0gUEVSZWZlcmVuY2UgOjo9ICclJyBOYW1lICc7JyBbIFdGQzogTm8gUmVjdXJzaW9uIF0gQSBwYXJzZWQgZW50aXR5IG11c3Qgbm90IGNvbnRhaW4gYSByZWN1cnNpdmUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gaXRzZWxmLCBlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4gWyBXRkM6IEVudGl0eSBEZWNsYXJlZCBdIEluIGEgZG9jdW1lbnQgd2l0aG91dCBhbnkgRFRELCBhIGRvY3VtZW50IHdpdGggb25seSBhbiBpbnRlcm5hbCBEVEQgc3Vic2V0IHdoaWNoIGNvbnRhaW5zIG5vIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlcywgb3IgYSBkb2N1bWVudCB3aXRoICJzdGFuZGFsb25lPSd5ZXMnIiwgLi4uIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gaXQuLi4gWyBWQzogRW50aXR5IERlY2xhcmVkIF0gSW4gYSBkb2N1bWVudCB3aXRoIGFuIGV4dGVybmFsIHN1YnNldCBvciBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMgd2l0aCAic3RhbmRhbG9uZT0nbm8nIiwgLi4uIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gaXQuLi4gWyBXRkM6IEluIERURCBdIFBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBtYXkgb25seSBhcHBlYXIgaW4gdGhlIERURC4gTk9URTogbWlzbGVhZGluZyBidXQgdGhpcyBpcyBoYW5kbGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VQSSIvPnhtbFBhcnNlUEkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlUEkJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIFByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb24uIFsxNl0gUEkgOjo9ICcmbHQ7PycgUElUYXJnZXQgKFMgKENoYXIqIC0gKENoYXIqICc/Jmd0OycgQ2hhciopKSk/ICc/Jmd0OycgVGhlIHByb2Nlc3NpbmcgaXMgdHJhbnNmZXJlZCB0byBTQVggb25jZSBwYXJzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZVBJVGFyZ2V0Ii8+eG1sUGFyc2VQSVRhcmdldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZVBJVGFyZ2V0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSB0aGUgbmFtZSBvZiBhIFBJIFsxN10gUElUYXJnZXQgOjo9IE5hbWUgLSAoKCdYJyB8ICd4JykgKCdNJyB8ICdtJykgKCdMJyB8ICdsJykpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQSVRhcmdldCBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZVB1YmlkTGl0ZXJhbCIvPnhtbFBhcnNlUHViaWRMaXRlcmFsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlUHViaWRMaXRlcmFsCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgcHVibGljIGxpdGVyYWwgWzEyXSBQdWJpZExpdGVyYWwgOjo9ICciJyBQdWJpZENoYXIqICciJyB8ICInIiAoUHViaWRDaGFyIC0gIiciKSogIiciPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQdWJpZExpdGVyYWwgcGFyc2VkIG9yIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VRdW90ZWRTdHJpbmciLz54bWxQYXJzZVF1b3RlZFN0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZVF1b3RlZFN0cmluZwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+UGFyc2UgYW5kIHJldHVybiBhIHN0cmluZyBiZXR3ZWVuIHF1b3RlcyBvciBkb3VibGVxdW90ZXMgVE9ETzogRGVwcmVjYXRlZCwgdG8gYmUgcmVtb3ZlZCBhdCBuZXh0IGRyb3Agb2YgYmluYXJ5IGNvbXBhdGliaWxpdHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZyBwYXJzZXIgb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZVJlZmVyZW5jZSIvPnhtbFBhcnNlUmVmZXJlbmNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZVJlZmVyZW5jZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuZCBoYW5kbGUgZW50aXR5IHJlZmVyZW5jZXMgaW4gY29udGVudCwgZGVwZW5kaW5nIG9uIHRoZSBTQVggaW50ZXJmYWNlLCB0aGlzIG1heSBlbmQtdXAgaW4gYSBjYWxsIHRvIGNoYXJhY3RlcigpIGlmIHRoaXMgaXMgYSBDaGFyUmVmLCBhIHByZWRlZmluZWQgZW50aXR5LCBpZiB0aGVyZSBpcyBubyByZWZlcmVuY2UoKSBjYWxsYmFjay4gb3IgaWYgdGhlIHBhcnNlciB3YXMgYXNrZWQgdG8gc3dpdGNoIHRvIHRoYXQgbW9kZS4gWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWY8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlU0REZWNsIi8+eG1sUGFyc2VTRERlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VTRERlY2wJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgdGhlIFhNTCBzdGFuZGFsb25lIGRlY2xhcmF0aW9uIFszMl0gU0REZWNsIDo6PSBTICdzdGFuZGFsb25lJyBFcSAoKCInIiAoJ3llcycgfCAnbm8nKSAiJyIpIHwgKCciJyAoJ3llcycgfCAnbm8nKSciJykpIFsgVkM6IFN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb24gXSBUT0RPIFRoZSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uIG11c3QgaGF2ZSB0aGUgdmFsdWUgIm5vIiBpZiBhbnkgZXh0ZXJuYWwgbWFya3VwIGRlY2xhcmF0aW9ucyBjb250YWluIGRlY2xhcmF0aW9ucyBvZjogLSBhdHRyaWJ1dGVzIHdpdGggZGVmYXVsdCB2YWx1ZXMsIGlmIGVsZW1lbnRzIHRvIHdoaWNoIHRoZXNlIGF0dHJpYnV0ZXMgYXBwbHkgYXBwZWFyIGluIHRoZSBkb2N1bWVudCB3aXRob3V0IHNwZWNpZmljYXRpb25zIG9mIHZhbHVlcyBmb3IgdGhlc2UgYXR0cmlidXRlcywgb3IgLSBlbnRpdGllcyAob3RoZXIgdGhhbiBhbXAsIGx0LCBndCwgYXBvcywgcXVvdCksIGlmIHJlZmVyZW5jZXMgdG8gdGhvc2UgZW50aXRpZXMgYXBwZWFyIGluIHRoZSBkb2N1bWVudCwgb3IgLSBhdHRyaWJ1dGVzIHdpdGggdmFsdWVzIHN1YmplY3QgdG8gbm9ybWFsaXphdGlvbiwgd2hlcmUgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGFwcGVhcnMgaW4gdGhlIGRvY3VtZW50IHdpdGggYSB2YWx1ZSB3aGljaCB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdCBvZiBub3JtYWxpemF0aW9uLCBvciAtIGVsZW1lbnQgdHlwZXMgd2l0aCBlbGVtZW50IGNvbnRlbnQsIGlmIHdoaXRlIHNwYWNlIG9jY3VycyBkaXJlY3RseSB3aXRoaW4gYW55IGluc3RhbmNlIG9mIHRob3NlIHR5cGVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHN0YW5kYWxvbmU9InllcyIgMCBpZiBzdGFuZGFsb25lPSJubyIgLTIgaWYgc3RhbmRhbG9uZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpcyBtaXNzaW5nIG9yIGludmFsaWQgKEEgc3RhbmRhbG9uZSB2YWx1ZSBvZiAtMiBtZWFucyB0aGF0IHRoZSBYTUwgZGVjbGFyYXRpb24gd2FzIGZvdW5kLCBidXQgbm8gdmFsdWUgd2FzIHNwZWNpZmllZCBmb3IgdGhlIHN0YW5kYWxvbmUgYXR0cmlidXRlKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZVN0YXJ0VGFnIi8+eG1sUGFyc2VTdGFydFRhZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZVN0YXJ0VGFnCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhIHN0YXJ0IG9mIHRhZyBlaXRoZXIgZm9yIHJ1bGUgZWxlbWVudCBvciBFbXB0eUVsZW1lbnQuIEluIGJvdGggY2FzZSB3ZSBkb24ndCBwYXJzZSB0aGUgdGFnIGNsb3NpbmcgY2hhcnMuIFs0MF0gU1RhZyA6Oj0gJyZsdDsnIE5hbWUgKFMgQXR0cmlidXRlKSogUz8gJyZndDsnIFsgV0ZDOiBVbmlxdWUgQXR0IFNwZWMgXSBObyA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lIG1heSBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgc3RhcnQtdGFnIG9yIGVtcHR5LWVsZW1lbnQgdGFnLiBbNDRdIEVtcHR5RWxlbVRhZyA6Oj0gJyZsdDsnIE5hbWUgKFMgQXR0cmlidXRlKSogUz8gJy8mZ3Q7JyBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0gTm8gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZSBtYXkgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIHN0YXJ0LXRhZyBvciBlbXB0eS1lbGVtZW50IHRhZy4gV2l0aCBuYW1lc3BhY2U6IFtOUyA4XSBTVGFnIDo6PSAnJmx0OycgUU5hbWUgKFMgQXR0cmlidXRlKSogUz8gJyZndDsnIFtOUyAxMF0gRW1wdHlFbGVtZW50IDo6PSAnJmx0OycgUU5hbWUgKFMgQXR0cmlidXRlKSogUz8gJy8mZ3Q7JzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lIHBhcnNlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlU3lzdGVtTGl0ZXJhbCIvPnhtbFBhcnNlU3lzdGVtTGl0ZXJhbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZVN5c3RlbUxpdGVyYWwJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBMaXRlcmFsIFsxMV0gU3lzdGVtTGl0ZXJhbCA6Oj0gKCciJyBbXiJdKiAnIicpIHwgKCInIiBbXiddKiAiJyIpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTeXN0ZW1MaXRlcmFsIHBhcnNlZCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VUZXh0RGVjbCIvPnhtbFBhcnNlVGV4dERlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlVGV4dERlY2wJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZGVjbGFyYXRpb24gaGVhZGVyIGZvciBleHRlcm5hbCBlbnRpdGllcyBbNzddIFRleHREZWNsIDo6PSAnJmx0Oz94bWwnIFZlcnNpb25JbmZvPyBFbmNvZGluZ0RlY2wgUz8gJz8mZ3Q7JzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VWZXJzaW9uSW5mbyIvPnhtbFBhcnNlVmVyc2lvbkluZm8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VWZXJzaW9uSW5mbwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgdGhlIFhNTCB2ZXJzaW9uLiBbMjRdIFZlcnNpb25JbmZvIDo6PSBTICd2ZXJzaW9uJyBFcSAoJyBWZXJzaW9uTnVtICcgfCAiIFZlcnNpb25OdW0gIikgWzI1XSBFcSA6Oj0gUz8gJz0nIFM/PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2ZXJzaW9uIHN0cmluZywgZS5nLiAiMS4wIjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlVmVyc2lvbk51bSIvPnhtbFBhcnNlVmVyc2lvbk51bSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZVZlcnNpb25OdW0JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIHRoZSBYTUwgdmVyc2lvbiB2YWx1ZS4gWzI2XSBWZXJzaW9uTnVtIDo6PSAnMS4nIFswLTldKyBJbiBwcmFjdGljZSBhbGxvdyBbMC05XS5bMC05XSsgYXQgdGhhdCBsZXZlbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIGdpdmluZyB0aGUgWE1MIHZlcnNpb24gbnVtYmVyLCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VYTUxEZWNsIi8+eG1sUGFyc2VYTUxEZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZVhNTERlY2wJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGRlY2xhcmF0aW9uIGhlYWRlciBbMjNdIFhNTERlY2wgOjo9ICcmbHQ7P3htbCcgVmVyc2lvbkluZm8gRW5jb2RpbmdEZWNsPyBTRERlY2w/IFM/ICc/Jmd0Oyc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIi8+eG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5bNjldIFBFUmVmZXJlbmNlIDo6PSAnJScgTmFtZSAnOycgWyBXRkM6IE5vIFJlY3Vyc2lvbiBdIEEgcGFyc2VkIGVudGl0eSBtdXN0IG5vdCBjb250YWluIGEgcmVjdXJzaXZlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIGl0c2VsZiwgZWl0aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkuIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSBJbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4gaW50ZXJuYWwgRFREIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQgd2l0aCAic3RhbmRhbG9uZT0neWVzJyIsIC4uLiAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIGl0Li4uIFsgVkM6IEVudGl0eSBEZWNsYXJlZCBdIEluIGEgZG9jdW1lbnQgd2l0aCBhbiBleHRlcm5hbCBzdWJzZXQgb3IgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIHdpdGggInN0YW5kYWxvbmU9J25vJyIsIC4uLiAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIGl0Li4uIFsgV0ZDOiBJbiBEVEQgXSBQYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZXMgbWF5IG9ubHkgYXBwZWFyIGluIHRoZSBEVEQuIE5PVEU6IG1pc2xlYWRpbmcgYnV0IHRoaXMgaXMgaGFuZGxlZC4gQSBQRVJlZmVyZW5jZSBtYXkgaGF2ZSBiZWVuIGRldGVjdGVkIGluIHRoZSBjdXJyZW50IGlucHV0IHN0cmVhbSB0aGUgaGFuZGxpbmcgaXMgZG9uZSBhY2NvcmRpbmdseSB0byBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI2VudHByb2MgaS5lLiAtIEluY2x1ZGVkIGluIGxpdGVyYWwgaW4gZW50aXR5IHZhbHVlcyAtIEluY2x1ZGVkIGFzIFBhcmFtZXRlciBFbnRpdHkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gd2l0aGluIERURHM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZSIvPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5UT0RPOiBSZW1vdmUsIG5vdyBkZXByZWNhdGVkIC4uLiB0aGUgdGVzdCBpcyBkb25lIGRpcmVjdGx5IGluIHRoZSBjb250ZW50IHBhcnNpbmcgcm91dGluZXMuIFs2N10gUmVmZXJlbmNlIDo6PSBFbnRpdHlSZWYgfCBDaGFyUmVmIFs2OF0gRW50aXR5UmVmIDo6PSAnJmFtcDsnIE5hbWUgJzsnIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSB0aGUgTmFtZSBnaXZlbiBpbiB0aGUgZW50aXR5IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IG11c3QgbWF0Y2ggdGhhdCBpbiBhbiBlbnRpdHkgZGVjbGFyYXRpb24sIGV4Y2VwdCB0aGF0IHdlbGwtZm9ybWVkIGRvY3VtZW50cyBuZWVkIG5vdCBkZWNsYXJlIGFueSBvZiB0aGUgZm9sbG93aW5nIGVudGl0aWVzOiBhbXAsIGx0LCBndCwgYXBvcywgcXVvdC4gWyBXRkM6IFBhcnNlZCBFbnRpdHkgXSBBbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gbXVzdCBub3QgY29udGFpbiB0aGUgbmFtZSBvZiBhbiB1bnBhcnNlZCBlbnRpdHkgWzY2XSBDaGFyUmVmIDo6PSAnJmFtcDsjJyBbMC05XSsgJzsnIHwgJyZhbXA7I3gnIFswLTlhLWZBLUZdKyAnOycgQSBQRVJlZmVyZW5jZSBtYXkgaGF2ZSBiZWVuIGRldGVjdGVkIGluIHRoZSBjdXJyZW50IGlucHV0IHN0cmVhbSB0aGUgaGFuZGxpbmcgaXMgZG9uZSBhY2NvcmRpbmdseSB0byBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI2VudHByb2M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0U2hyaW5rIi8+eG1sUGFyc2VySW5wdXRTaHJpbmsgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlcklucHV0U2hyaW5rCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpbik8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiByZW1vdmVzIHVzZWQgaW5wdXQgZm9yIHRoZSBwYXJzZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBvcElucHV0Ii8+eG1sUG9wSW5wdXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+CXhtbFBvcElucHV0CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnhtbFBvcElucHV0OiB0aGUgY3VycmVudCBpbnB1dCBwb2ludGVkIGJ5IGN0eHQtJmd0O2lucHV0IGNhbWUgdG8gYW4gZW5kIHBvcCBpdCBhbmQgcmV0dXJuIHRoZSBuZXh0IGNoYXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gaW4gdGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUHVzaElucHV0Ii8+eG1sUHVzaElucHV0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFB1c2hJbnB1dAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPGJyLz4KKzwvcHJlPjxwPnhtbFB1c2hJbnB1dDogc3dpdGNoIHRvIGEgbmV3IGlucHV0IHN0cmVhbSB3aGljaCBpcyBzdGFja2VkIG9uIHRvcCBvZiB0aGUgcHJldmlvdXMgb25lKHMpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBpbnB1dCBmcmFnbWVudCAoZW50aXR5LCBYTUwgZnJhZ21lbnQgLi4uKS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3Igb3IgdGhlIGluZGV4IGluIHRoZSBpbnB1dCBzdGFjazwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjYW5OYW1lIi8+eG1sU2Nhbk5hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU2Nhbk5hbWUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5Ucmlja2VyeTogcGFyc2UgYW4gWE1MIG5hbWUgYnV0IHdpdGhvdXQgY29uc3VtaW5nIHRoZSBpbnB1dCBmbG93IE5lZWRlZCBmb3Igcm9sbGJhY2sgY2FzZXMuIFVzZWQgb25seSB3aGVuIHBhcnNpbmcgZW50aXRpZXMgcmVmZXJlbmNlcy4gVE9ETzogc2VlbXMgZGVwcmVjYXRlZCBub3csIG9ubHkgdXNlZCBpbiB0aGUgZGVmYXVsdCBwYXJ0IG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U8L2E+IFs0XSBOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAnLicgfCAnLScgfCAnXycgfCAnOicgfCBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXIgWzVdIE5hbWUgOjo9IChMZXR0ZXIgfCAnXycgfCAnOicpIChOYW1lQ2hhcikqIFs2XSBOYW1lcyA6Oj0gTmFtZSAoUyBOYW1lKSo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIE5hbWUgcGFyc2VkIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jIi8+eG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYwkoPGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPiBmdW5jKTxici8+Cis8L3ByZT48cD5TZXQgdGhlIGZ1bmN0aW9uIHRvIGNhbGwgY2FsbCBiYWNrIHdoZW4gYSB4bWwgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gaGFzIGJlZW4gbWFkZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSB2YWxpZCBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNraXBCbGFua0NoYXJzIi8+eG1sU2tpcEJsYW5rQ2hhcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2tpcEJsYW5rQ2hhcnMJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5za2lwIGFsbCBibGFua3MgY2hhcmFjdGVyIGZvdW5kIGF0IHRoYXQgcG9pbnQgaW4gdGhlIGlucHV0IHN0cmVhbXMuIEl0IHBvcHMgdXAgZmluaXNoZWQgZW50aXRpZXMgaW4gdGhlIHByb2Nlc3MgaWYgYWxsb3dhYmxlIGF0IHRoYXQgcG9pbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHNwYWNlIGNoYXJzIHNraXBwZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTcGxpdFFOYW1lIi8+eG1sU3BsaXRRTmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTcGxpdFFOYW1lCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHByZWZpeCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gVVRGOCBlbmNvZGVkIFhNTCBxdWFsaWZpZWQgbmFtZSBzdHJpbmcgW05TIDVdIFFOYW1lIDo6PSAoUHJlZml4ICc6Jyk/IExvY2FsUGFydCBbTlMgNl0gUHJlZml4IDo6PSBOQ05hbWUgW05TIDddIExvY2FsUGFydCA6Oj0gTkNOYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKio8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBwYXJ0LCBhbmQgcHJlZml4IGlzIHVwZGF0ZWQgdG8gZ2V0IHRoZSBQcmVmaXggaWYgYW55LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmluZ0N1cnJlbnRDaGFyIi8+eG1sU3RyaW5nQ3VycmVudENoYXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyaW5nQ3VycmVudENoYXIJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgaW50ICogbGVuKTxici8+Cis8L3ByZT48cD5UaGUgY3VycmVudCBjaGFyIHZhbHVlLCBpZiB1c2luZyBVVEYtOCB0aGlzIG1heSBhY3R1YWxseSBzcGFuIG11bHRpcGxlIGJ5dGVzIGluIHRoZSBpbnB1dCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY2hhcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIGNoYXIgcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgY2hhciB2YWx1ZSBhbmQgaXRzIGxlbmd0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmluZ0RlY29kZUVudGl0aWVzIi8+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSBpbnQgd2hhdCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQzKTxici8+Cis8L3ByZT48cD5UYWtlcyBhIGVudGl0eSBzdHJpbmcgY29udGVudCBhbmQgcHJvY2VzcyB0byBkbyB0aGUgYWRlcXVhdGUgc3Vic3RpdHV0aW9ucy4gWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2hhdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfUEVSRUYiPlhNTF9TVUJTVElUVVRFX1BFUkVGPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIGRvbmUuIFRoZSBjYWxsZXIgbXVzdCBkZWFsbG9jYXRlIGl0ICE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyIvPnhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJCSBpbnQgd2hhdCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMiwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQzKTxici8+Cis8L3ByZT48cD5UYWtlcyBhIGVudGl0eSBzdHJpbmcgY29udGVudCBhbmQgcHJvY2VzcyB0byBkbyB0aGUgYWRlcXVhdGUgc3Vic3RpdHV0aW9ucy4gWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIGxlbmd0aDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2hhdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX1NVQlNUSVRVVEVfUEVSRUYiPlhNTF9TVUJTVElUVVRFX1BFUkVGPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIGRvbmUuIFRoZSBjYWxsZXIgbXVzdCBkZWFsbG9jYXRlIGl0ICE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTd2l0Y2hFbmNvZGluZyIvPnhtbFN3aXRjaEVuY29kaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN3aXRjaEVuY29kaW5nCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIvPgorPC9wcmU+PHA+Y2hhbmdlIHRoZSBpbnB1dCBmdW5jdGlvbnMgd2hlbiBkaXNjb3ZlcmluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIGEgZ2l2ZW4gZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyB2YWx1ZSAobnVtYmVyKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN3aXRjaElucHV0RW5jb2RpbmciLz54bWxTd2l0Y2hJbnB1dEVuY29kaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN3aXRjaElucHV0RW5jb2RpbmcJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpPGJyLz4KKzwvcHJlPjxwPmNoYW5nZSB0aGUgaW5wdXQgZnVuY3Rpb25zIHdoZW4gZGlzY292ZXJpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiBhIGdpdmVuIGVudGl0eS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJlYW08L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3dpdGNoVG9FbmNvZGluZyIvPnhtbFN3aXRjaFRvRW5jb2RpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3dpdGNoVG9FbmNvZGluZwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpPGJyLz4KKzwvcHJlPjxwPmNoYW5nZSB0aGUgaW5wdXQgZnVuY3Rpb25zIHdoZW4gZGlzY292ZXJpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiBhIGdpdmVuIGVudGl0eS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1wYXR0ZXJuLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItcGF0dGVybi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyMWJkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItcGF0dGVybi5odG1sCkBAIC0wLDAgKzEsMTY2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnBhdHRlcm46IHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnBhdHRlcm48L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5wYXR0ZXJuIC0gcGF0dGVybiBleHByZXNzaW9uIGhhbmRsaW5nPC9wPgorICAgIDxwPmFsbG93cyB0byBjb21waWxlIGFuZCB0ZXN0IHBhdHRlcm4gZXhwcmVzc2lvbnMgZm9yIG5vZGVzIGVpdGhlciBpbiBhIHRyZWUgb3IgYmFzZWQgb24gYSBwYXJzZXIgc3RhdGUuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHQiPnhtbFN0cmVhbUN0eHQ8L2E+ICogPGEgaHJlZj0iI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxQYXR0ZXJuRmxhZ3MiPnhtbFBhdHRlcm5GbGFnczwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU3RyZWFtQ3R4dCA8YSBocmVmPSIjeG1sU3RyZWFtQ3R4dCI+eG1sU3RyZWFtQ3R4dDwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sUGF0dGVybiA8YSBocmVmPSIjeG1sUGF0dGVybiI+eG1sUGF0dGVybjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm4iPnhtbFBhdHRlcm48L2E+ICogPGEgaHJlZj0iI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+OworaW50CTxhIGhyZWY9IiN4bWxQYXR0ZXJuTWluRGVwdGgiPnhtbFBhdHRlcm5NaW5EZXB0aDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTsKKzxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCI+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTsKK2ludAk8YSBocmVmPSIjeG1sUGF0dGVybkZyb21Sb290Ij54bWxQYXR0ZXJuRnJvbVJvb3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlUGF0dGVybkxpc3QiPnhtbEZyZWVQYXR0ZXJuTGlzdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTsKK2ludAk8YSBocmVmPSIjeG1sUGF0dGVyblN0cmVhbWFibGUiPnhtbFBhdHRlcm5TdHJlYW1hYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApOworaW50CTxhIGhyZWY9IiN4bWxTdHJlYW1QdXNoQXR0ciI+eG1sU3RyZWFtUHVzaEF0dHI8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dFB0ciI+eG1sU3RyZWFtQ3R4dFB0cjwvYT4gc3RyZWFtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucyk7CitpbnQJPGEgaHJlZj0iI3htbFBhdHRlcm5NYXRjaCI+eG1sUGF0dGVybk1hdGNoPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpOworaW50CTxhIGhyZWY9IiN4bWxTdHJlYW1XYW50c0FueU5vZGUiPnhtbFN0cmVhbVdhbnRzQW55Tm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW1DdHh0KTsKK2ludAk8YSBocmVmPSIjeG1sU3RyZWFtUG9wIj54bWxTdHJlYW1Qb3A8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlUGF0dGVybiI+eG1sRnJlZVBhdHRlcm48L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApOworaW50CTxhIGhyZWY9IiN4bWxTdHJlYW1QdXNoIj54bWxTdHJlYW1QdXNoPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW0sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zKTsKK2ludAk8YSBocmVmPSIjeG1sUGF0dGVybk1heERlcHRoIj54bWxQYXR0ZXJuTWF4RGVwdGg8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk7Cis8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPgk8YSBocmVmPSIjeG1sUGF0dGVybmNvbXBpbGUiPnhtbFBhdHRlcm5jb21waWxlPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdHRlcm4sIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdCI+eG1sRGljdDwvYT4gKiBkaWN0LCA8YnIvPgkJCQkJIGludCBmbGFncywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzcGFjZXMpOworaW50CTxhIGhyZWY9IiN4bWxTdHJlYW1QdXNoTm9kZSI+eG1sU3RyZWFtUHVzaE5vZGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dFB0ciI+eG1sU3RyZWFtQ3R4dFB0cjwvYT4gc3RyZWFtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucywgPGJyLz4JCQkJCSBpbnQgbm9kZVR5cGUpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZVN0cmVhbUN0eHQiPnhtbEZyZWVTdHJlYW1DdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGF0dGVybiI+U3RydWN0dXJlIDwvYT54bWxQYXR0ZXJuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxQYXR0ZXJuIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxQYXR0ZXJuOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhdHRlcm5GbGFncyI+RW51bSA8L2E+eG1sUGF0dGVybkZsYWdzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sUGF0dGVybkZsYWdzIj54bWxQYXR0ZXJuRmxhZ3M8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfUEFUVEVSTl9ERUZBVUxUIj5YTUxfUEFUVEVSTl9ERUZBVUxUPC9hPiA9IDAgLyogc2ltcGxlIHBhdHRlcm4gbWF0Y2ggKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFUVEVSTl9YUEFUSCI+WE1MX1BBVFRFUk5fWFBBVEg8L2E+ID0gMSAvKiBzdGFuZGFyZCBYUGF0aCBwYXR0ZXJuICovCisgICAgPGEgbmFtZT0iWE1MX1BBVFRFUk5fWFNTRUwiPlhNTF9QQVRURVJOX1hTU0VMPC9hPiA9IDIgLyogWFBhdGggc3Vic2V0IGZvciBzY2hlbWEgc2VsZWN0b3IgKi8KKyAgICA8YSBuYW1lPSJYTUxfUEFUVEVSTl9YU0ZJRUxEIj5YTUxfUEFUVEVSTl9YU0ZJRUxEPC9hPiA9IDQgLyogIFhQYXRoIHN1YnNldCBmb3Igc2NoZW1hIGZpZWxkICovCit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhdHRlcm5QdHIiPlR5cGVkZWYgPC9hPnhtbFBhdHRlcm5QdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuIj54bWxQYXR0ZXJuPC9hPiAqIHhtbFBhdHRlcm5QdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyZWFtQ3R4dCI+U3RydWN0dXJlIDwvYT54bWxTdHJlYW1DdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxTdHJlYW1DdHh0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxTdHJlYW1DdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmVhbUN0eHRQdHIiPlR5cGVkZWYgPC9hPnhtbFN0cmVhbUN0eHRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0Ij54bWxTdHJlYW1DdHh0PC9hPiAqIHhtbFN0cmVhbUN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZVBhdHRlcm4iLz54bWxGcmVlUGF0dGVybiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVBhdHRlcm4JCQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8YnIvPgorPC9wcmU+PHA+RnJlZSB1cCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBieSBAY29tcDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFNMVCBjb21wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZVBhdHRlcm5MaXN0Ii8+eG1sRnJlZVBhdHRlcm5MaXN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlUGF0dGVybkxpc3QJCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTxici8+Cis8L3ByZT48cD5GcmVlIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IGFsbCB0aGUgZWxlbWVudHMgb2YgQGNvbXA8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhTTFQgY29tcCBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZVN0cmVhbUN0eHQiLz54bWxGcmVlU3RyZWFtQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVN0cmVhbUN0eHQJCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW0pPGJyLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHN0cmVhbSBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJlYW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJlYW0gY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhdHRlcm5Gcm9tUm9vdCIvPnhtbFBhdHRlcm5Gcm9tUm9vdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXR0ZXJuRnJvbVJvb3QJCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTxici8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGUgcGF0dGVybiBtdXN0IGJlIGxvb2tlZCBhdCBmcm9tIHRoZSByb290LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXBpbGVkIHBhdHRlcm48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0Ii8+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPgl4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dAkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8YnIvPgorPC9wcmU+PHA+R2V0IGEgc3RyZWFtaW5nIGNvbnRleHQgZm9yIHRoYXQgcGF0dGVybiBVc2UgPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sRnJlZVN0cmVhbUN0eHQiPnhtbEZyZWVTdHJlYW1DdHh0PC9hPiB0byBmcmVlIHRoZSBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXBpbGVkIHBhdHRlcm48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhdHRlcm5NYXRjaCIvPnhtbFBhdHRlcm5NYXRjaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXR0ZXJuTWF0Y2gJCQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5UZXN0IHdoZXRoZXIgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgcGF0dGVybjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXBpbGVkIHBhdHRlcm48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBpdCBtYXRjaGVzLCAwIGlmIGl0IGRvZXNuJ3QgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhdHRlcm5NYXhEZXB0aCIvPnhtbFBhdHRlcm5NYXhEZXB0aCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXR0ZXJuTWF4RGVwdGgJCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTxici8+Cis8L3ByZT48cD5DaGVjayB0aGUgbWF4aW11bSBkZXB0aCByZWFjaGFibGUgYnkgYSBwYXR0ZXJuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcGlsZWQgcGF0dGVybjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTIgaWYgbm8gbGltaXQgKHVzaW5nIC8vKSwgb3RoZXJ3aXNlIHRoZSBkZXB0aCwgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXR0ZXJuTWluRGVwdGgiLz54bWxQYXR0ZXJuTWluRGVwdGggKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGF0dGVybk1pbkRlcHRoCQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgdGhlIG1pbmltdW0gZGVwdGggcmVhY2hhYmxlIGJ5IGEgcGF0dGVybiwgMCBtZWFuIHRoZSAvIG9yIC4gYXJlIHBhcnQgb2YgdGhlIHNldC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVjb21waWxlZCBwYXR0ZXJuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yIG90aGVyd2lzZSB0aGUgZGVwdGgsPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGF0dGVyblN0cmVhbWFibGUiLz54bWxQYXR0ZXJuU3RyZWFtYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXR0ZXJuU3RyZWFtYWJsZQkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApPGJyLz4KKzwvcHJlPjxwPkNoZWNrIGlmIHRoZSBwYXR0ZXJuIGlzIHN0cmVhbWFibGUgaS5lLiB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCgpIHNob3VsZCB3b3JrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXBpbGVkIHBhdHRlcm48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgc3RyZWFtYWJsZSwgMCBpZiBub3QgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGF0dGVybmNvbXBpbGUiLz54bWxQYXR0ZXJuY29tcGlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+CXhtbFBhdHRlcm5jb21waWxlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcGF0dGVybiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0Ij54bWxEaWN0PC9hPiAqIGRpY3QsIDxici8+CQkJCQkgaW50IGZsYWdzLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbmFtZXNwYWNlcyk8YnIvPgorPC9wcmU+PHA+Q29tcGlsZSBhIHBhdHRlcm4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXR0ZXJuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGF0dGVybiB0byBjb21waWxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBkaWN0aW9uYXJ5IGZvciBpbnRlcm5lZCBzdHJpbmdzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mbGFnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29tcGlsYXRpb24gZmxhZ3MsIHNlZSA8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuRmxhZ3MiPnhtbFBhdHRlcm5GbGFnczwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggZGVmaW5pdGlvbnMsIGFycmF5IG9mIFtVUkksIHByZWZpeF0gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIGZvcm0gb2YgdGhlIHBhdHRlcm4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyZWFtUG9wIi8+eG1sU3RyZWFtUG9wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0cmVhbVBvcAkJCSg8YSBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW0pPGJyLz4KKzwvcHJlPjxwPnB1c2ggb25lIGxldmVsIGZyb20gdGhlIHN0cmVhbS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmVhbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmVhbSBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJlYW1QdXNoIi8+eG1sU3RyZWFtUHVzaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJlYW1QdXNoCQkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMpPGJyLz4KKzwvcHJlPjxwPlB1c2ggbmV3IGRhdGEgb250byB0aGUgc3RyZWFtLiBOT1RFOiBpZiB0aGUgY2FsbCB4bWxQYXR0ZXJuY29tcGlsZSgpIGluZGljYXRlZCBhIGRpY3Rpb25hcnksIHRoZW4gc3RyaW5ncyBmb3IgbmFtZSBhbmQgbnMgd2lsbCBiZSBleHBlY3RlZCB0byBjb21lIGZyb20gdGhlIGRpY3Rpb25hcnkuIEJvdGggQG5hbWUgYW5kIEBucyBiZWluZyBOVUxMIG1lYW5zIHRoZSAvIGkuZS4gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50LiBUaGlzIGNhbiBhbHNvIGFjdCBhcyBhIHJlc2V0LiBPdGhlcndpc2UgdGhlIGZ1bmN0aW9uIHdpbGwgYWN0IGFzIGlmIGl0IGhhcyBiZWVuIGdpdmVuIGFuIGVsZW1lbnQtbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmVhbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmVhbSBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAxIGlmIHRoZSBjdXJyZW50IHN0YXRlIGluIHRoZSBzdHJlYW0gaXMgYSBtYXRjaCBhbmQgMCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyZWFtUHVzaEF0dHIiLz54bWxTdHJlYW1QdXNoQXR0ciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJlYW1QdXNoQXR0cgkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMpPGJyLz4KKzwvcHJlPjxwPlB1c2ggbmV3IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRhdGEgb250byB0aGUgc3RyZWFtLiBOT1RFOiBpZiB0aGUgY2FsbCB4bWxQYXR0ZXJuY29tcGlsZSgpIGluZGljYXRlZCBhIGRpY3Rpb25hcnksIHRoZW4gc3RyaW5ncyBmb3IgbmFtZSBhbmQgbnMgd2lsbCBiZSBleHBlY3RlZCB0byBjb21lIGZyb20gdGhlIGRpY3Rpb25hcnkuIEJvdGggQG5hbWUgYW5kIEBucyBiZWluZyBOVUxMIG1lYW5zIHRoZSAvIGkuZS4gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50LiBUaGlzIGNhbiBhbHNvIGFjdCBhcyBhIHJlc2V0LiBPdGhlcndpc2UgdGhlIGZ1bmN0aW9uIHdpbGwgYWN0IGFzIGlmIGl0IGhhcyBiZWVuIGdpdmVuIGFuIGF0dHJpYnV0ZS1ub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZWFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyZWFtIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIDEgaWYgdGhlIGN1cnJlbnQgc3RhdGUgaW4gdGhlIHN0cmVhbSBpcyBhIG1hdGNoIGFuZCAwIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJlYW1QdXNoTm9kZSIvPnhtbFN0cmVhbVB1c2hOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0cmVhbVB1c2hOb2RlCQkoPGEgaHJlZj0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dFB0ciI+eG1sU3RyZWFtQ3R4dFB0cjwvYT4gc3RyZWFtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucywgPGJyLz4JCQkJCSBpbnQgbm9kZVR5cGUpPGJyLz4KKzwvcHJlPjxwPlB1c2ggbmV3IGRhdGEgb250byB0aGUgc3RyZWFtLiBOT1RFOiBpZiB0aGUgY2FsbCB4bWxQYXR0ZXJuY29tcGlsZSgpIGluZGljYXRlZCBhIGRpY3Rpb25hcnksIHRoZW4gc3RyaW5ncyBmb3IgbmFtZSBhbmQgbnMgd2lsbCBiZSBleHBlY3RlZCB0byBjb21lIGZyb20gdGhlIGRpY3Rpb25hcnkuIEJvdGggQG5hbWUgYW5kIEBucyBiZWluZyBOVUxMIG1lYW5zIHRoZSAvIGkuZS4gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50LiBUaGlzIGNhbiBhbHNvIGFjdCBhcyBhIHJlc2V0LiBEaWZmZXJlbnQgZnJvbSB4bWxTdHJlYW1QdXNoKCkgdGhpcyBmdW5jdGlvbiBjYW4gYmUgZmVkIHdpdGggbm9kZXMgb2YgdHlwZTogZWxlbWVudC0sIGF0dHJpYnV0ZS0sIHRleHQtLCBjZGF0YS1zZWN0aW9uLSwgY29tbWVudC0gYW5kIHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmVhbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmVhbSBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlVHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgdGhlIG5vZGUgYmVpbmcgcHVzaGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAxIGlmIHRoZSBjdXJyZW50IHN0YXRlIGluIHRoZSBzdHJlYW0gaXMgYSBtYXRjaCBhbmQgMCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyZWFtV2FudHNBbnlOb2RlIi8+eG1sU3RyZWFtV2FudHNBbnlOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0cmVhbVdhbnRzQW55Tm9kZQkJKDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbUN0eHQpPGJyLz4KKzwvcHJlPjxwPlF1ZXJ5IGlmIHRoZSBzdHJlYW1pbmcgcGF0dGVybiBhZGRpdGlvbmFsbHkgbmVlZHMgdG8gYmUgZmVkIHdpdGggdGV4dC0sIGNkYXRhLXNlY3Rpb24tLCBjb21tZW50LSBhbmQgcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1ub2Rlcy4gSWYgdGhlIHJlc3VsdCBpcyAwIHRoZW4gb25seSBlbGVtZW50LW5vZGVzIGFuZCBhdHRyaWJ1dGUtbm9kZXMgbmVlZCB0byBiZSBwdXNoZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJlYW1DdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyZWFtIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBuZWVkIG9mIG5vZGVzIG9mIHRoZSBhYm92ZSBkZXNjcmliZWQgdHlwZXMsIDAgb3RoZXJ3aXNlLiAtMSBvbiBBUEkgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXJlbGF4bmcuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1yZWxheG5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg5YjU4ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1yZWxheG5nLmh0bWwKQEAgLTAsMCArMSwyNzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+cmVsYXhuZzogaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbGF4LU5HIHZhbGlkYXRpb248L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+cmVsYXhuZzwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnJlbGF4bmcgLSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbjwvcD4KKyAgICA8cD5pbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbiA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+dHlwZWRlZiBzdHJ1Y3QgX3htbFJlbGF4TkcgPGEgaHJlZj0iI3htbFJlbGF4TkciPnhtbFJlbGF4Tkc8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HIj54bWxSZWxheE5HPC9hPiAqIDxhIGhyZWY9IiN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sUmVsYXhOR1ZhbGlkRXJyIj54bWxSZWxheE5HVmFsaWRFcnI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlbGF4TkdQYXJzZXJDdHh0IDxhIGhyZWY9IiN4bWxSZWxheE5HUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR1BhcnNlckN0eHQ8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR1BhcnNlckN0eHQ8L2E+ICogPGEgaHJlZj0iI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFJlbGF4TkdQYXJzZXJGbGFnIj54bWxSZWxheE5HUGFyc2VyRmxhZzwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sUmVsYXhOR1ZhbGlkQ3R4dCA8YSBocmVmPSIjeG1sUmVsYXhOR1ZhbGlkQ3R4dCI+eG1sUmVsYXhOR1ZhbGlkQ3R4dDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHQiPnhtbFJlbGF4TkdWYWxpZEN0eHQ8L2E+ICogPGEgaHJlZj0iI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+Owordm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQiPnhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRWYWxpZEVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmM8L2E+IGVyciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+IHdhcm4sIDxici8+CQkJCQkgdm9pZCAqIGN0eCk7Cis8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld1BhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogVVJMKTsKK2ludAk8YSBocmVmPSIjeG1sUmVsYXhOR0dldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR0dldFBhcnNlckVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiAqIHdhcm4sIDxici8+CQkJCQkgdm9pZCAqKiBjdHgpOworaW50CTxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50Ij54bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pOworPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFJlbGF4TkdOZXdWYWxpZEN0eHQiPnhtbFJlbGF4TkdOZXdWYWxpZEN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPiBzY2hlbWEpOworPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCQkJIGludCBzaXplKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJlbGF4TkdEdW1wIj54bWxSZWxheE5HRHVtcDwvYT4JCQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPiBzY2hlbWEpOwordm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gZXJyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gd2FybiwgPGJyLz4JCQkJCSB2b2lkICogY3R4KTsKKzxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWxheE5HUGFyc2UiPnhtbFJlbGF4TkdQYXJzZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIvPgkJCQkJCSB2b2lkICogY3R4KTsKK2ludAk8YSBocmVmPSIjeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKK2ludAk8YSBocmVmPSIjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pOwordm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR0ZyZWUiPnhtbFJlbGF4TkdGcmVlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPiBzY2hlbWEpOworaW50CTxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRhdGVEb2MiPnhtbFJlbGF4TkdWYWxpZGF0ZURvYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOwordm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBzZXJyb3IsIDxici8+CQkJCQkJIHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0Ij54bWxSZWxheE5HRnJlZVBhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdHZXRWYWxpZEVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmM8L2E+ICogZXJyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gKiB3YXJuLCA8YnIvPgkJCQkJIHZvaWQgKiogY3R4KTsKK2ludAk8YSBocmVmPSIjeG1sUmVsYXhOR0luaXRUeXBlcyI+eG1sUmVsYXhOR0luaXRUeXBlczwvYT4JCSh2b2lkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJlbGF4TkdEdW1wVHJlZSI+eG1sUmVsYXhOR0R1bXBUcmVlPC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT4gc2NoZW1hKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJlbGF4TkdDbGVhbnVwVHlwZXMiPnhtbFJlbGF4TkdDbGVhbnVwVHlwZXM8L2E+CQkodm9pZCk7CitpbnQJPGEgaHJlZj0iI3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sUmVsYXhQYXJzZXJTZXRGbGFnIj54bWxSZWxheFBhcnNlclNldEZsYWc8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBmbGFncyk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HIj5TdHJ1Y3R1cmUgPC9hPnhtbFJlbGF4Tkc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFJlbGF4TkcgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFJlbGF4Tkc7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1BhcnNlckN0eHQiPlN0cnVjdHVyZSA8L2E+eG1sUmVsYXhOR1BhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFJlbGF4TkdQYXJzZXJDdHh0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxSZWxheE5HUGFyc2VyQ3R4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+VHlwZWRlZiA8L2E+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR1BhcnNlckN0eHQ8L2E+ICogeG1sUmVsYXhOR1BhcnNlckN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1BhcnNlckZsYWciPkVudW0gPC9hPnhtbFJlbGF4TkdQYXJzZXJGbGFnPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sUmVsYXhOR1BhcnNlckZsYWciPnhtbFJlbGF4TkdQYXJzZXJGbGFnPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdQX05PTkUiPlhNTF9SRUxBWE5HUF9OT05FPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR1BfRlJFRV9ET0MiPlhNTF9SRUxBWE5HUF9GUkVFX0RPQzwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdQX0NSTkciPlhNTF9SRUxBWE5HUF9DUk5HPC9hPiA9IDIKK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1B0ciI+VHlwZWRlZiA8L2E+eG1sUmVsYXhOR1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkciPnhtbFJlbGF4Tkc8L2E+ICogeG1sUmVsYXhOR1B0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HVmFsaWRDdHh0Ij5TdHJ1Y3R1cmUgPC9hPnhtbFJlbGF4TkdWYWxpZEN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFJlbGF4TkdWYWxpZEN0eHQgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFJlbGF4TkdWYWxpZEN0eHQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+VHlwZWRlZiA8L2E+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHQiPnhtbFJlbGF4TkdWYWxpZEN0eHQ8L2E+ICogeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HVmFsaWRFcnIiPkVudW0gPC9hPnhtbFJlbGF4TkdWYWxpZEVycjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFJlbGF4TkdWYWxpZEVyciI+eG1sUmVsYXhOR1ZhbGlkRXJyPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfT0siPlhNTF9SRUxBWE5HX09LPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTUVNT1JZIj5YTUxfUkVMQVhOR19FUlJfTUVNT1JZPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfVFlQRSI+WE1MX1JFTEFYTkdfRVJSX1RZUEU8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9UWVBFVkFMIj5YTUxfUkVMQVhOR19FUlJfVFlQRVZBTDwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0RVUElEIj5YTUxfUkVMQVhOR19FUlJfRFVQSUQ8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9UWVBFQ01QIj5YTUxfUkVMQVhOR19FUlJfVFlQRUNNUDwvYT4gPSA1CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX05PU1RBVEUiPlhNTF9SRUxBWE5HX0VSUl9OT1NUQVRFPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTk9ERUZJTkUiPlhNTF9SRUxBWE5HX0VSUl9OT0RFRklORTwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQSI+WE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQTwvYT4gPSA4CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0xJU1RFTVBUWSI+WE1MX1JFTEFYTkdfRVJSX0xJU1RFTVBUWTwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0lOVEVSTk9EQVRBIj5YTUxfUkVMQVhOR19FUlJfSU5URVJOT0RBVEE8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfSU5URVJTRVEiPlhNTF9SRUxBWE5HX0VSUl9JTlRFUlNFUTwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9JTlRFUkVYVFJBIj5YTUxfUkVMQVhOR19FUlJfSU5URVJFWFRSQTwvYT4gPSAxMgorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9FTEVNTkFNRSI+WE1MX1JFTEFYTkdfRVJSX0VMRU1OQU1FPC9hPiA9IDEzCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0FUVFJOQU1FIj5YTUxfUkVMQVhOR19FUlJfQVRUUk5BTUU8L2E+ID0gMTQKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5PTlMiPlhNTF9SRUxBWE5HX0VSUl9FTEVNTk9OUzwvYT4gPSAxNQorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9BVFRSTk9OUyI+WE1MX1JFTEFYTkdfRVJSX0FUVFJOT05TPC9hPiA9IDE2CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TIj5YTUxfUkVMQVhOR19FUlJfRUxFTVdST05HTlM8L2E+ID0gMTcKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfQVRUUldST05HTlMiPlhNTF9SRUxBWE5HX0VSUl9BVFRSV1JPTkdOUzwvYT4gPSAxOAorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9FTEVNRVhUUkFOUyI+WE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TPC9hPiA9IDE5CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0FUVFJFWFRSQU5TIj5YTUxfUkVMQVhOR19FUlJfQVRUUkVYVFJBTlM8L2E+ID0gMjAKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5PVEVNUFRZIj5YTUxfUkVMQVhOR19FUlJfRUxFTU5PVEVNUFRZPC9hPiA9IDIxCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX05PRUxFTSI+WE1MX1JFTEFYTkdfRVJSX05PRUxFTTwvYT4gPSAyMgorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9OT1RFTEVNIj5YTUxfUkVMQVhOR19FUlJfTk9URUxFTTwvYT4gPSAyMworICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQiPlhNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQ8L2E+ID0gMjQKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfQ09OVEVOVFZBTElEIj5YTUxfUkVMQVhOR19FUlJfQ09OVEVOVFZBTElEPC9hPiA9IDI1CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VYVFJBQ09OVEVOVCI+WE1MX1JFTEFYTkdfRVJSX0VYVFJBQ09OVEVOVDwvYT4gPSAyNgorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9JTlZBTElEQVRUUiI+WE1MX1JFTEFYTkdfRVJSX0lOVkFMSURBVFRSPC9hPiA9IDI3CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0RBVEFFTEVNIj5YTUxfUkVMQVhOR19FUlJfREFUQUVMRU08L2E+ID0gMjgKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfVkFMRUxFTSI+WE1MX1JFTEFYTkdfRVJSX1ZBTEVMRU08L2E+ID0gMjkKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTElTVEVMRU0iPlhNTF9SRUxBWE5HX0VSUl9MSVNURUxFTTwvYT4gPSAzMAorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9EQVRBVFlQRSI+WE1MX1JFTEFYTkdfRVJSX0RBVEFUWVBFPC9hPiA9IDMxCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1ZBTFVFIj5YTUxfUkVMQVhOR19FUlJfVkFMVUU8L2E+ID0gMzIKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTElTVCI+WE1MX1JFTEFYTkdfRVJSX0xJU1Q8L2E+ID0gMzMKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSIj5YTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSPC9hPiA9IDM0CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQSI+WE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQTwvYT4gPSAzNQorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9MQUNLREFUQSI+WE1MX1JFTEFYTkdfRVJSX0xBQ0tEQVRBPC9hPiA9IDM2CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0lOVEVSTkFMIj5YTUxfUkVMQVhOR19FUlJfSU5URVJOQUw8L2E+ID0gMzcKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HIj5YTUxfUkVMQVhOR19FUlJfRUxFTVdST05HPC9hPiA9IDM4CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORyI+WE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORzwvYT4gPSAzOQorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+U2lnbmF0dXJlIG9mIGFuIGVycm9yIGNhbGxiYWNrIGZyb20gYSBSZWxheC1ORyB2YWxpZGF0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYwkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBvZiBhIHdhcm5pbmcgY2FsbGJhY2sgZnJvbSBhIFJlbGF4LU5HIHZhbGlkYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HQ2xlYW51cFR5cGVzIi8+eG1sUmVsYXhOR0NsZWFudXBUeXBlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR0NsZWFudXBUeXBlcwkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkNsZWFudXAgdGhlIGRlZmF1bHQgU2NoZW1hcyB0eXBlIGxpYnJhcnkgYXNzb2NpYXRlZCB0byBSZWxheE5HPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdEdW1wIi8+eG1sUmVsYXhOR0R1bXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlbGF4TkdEdW1wCQkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT4gc2NoZW1hKTxici8+Cis8L3ByZT48cD5EdW1wIGEgUmVsYXhORyBzdHJ1Y3R1cmUgYmFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNjaGVtYTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0R1bXBUcmVlIi8+eG1sUmVsYXhOR0R1bXBUcmVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWxheE5HRHVtcFRyZWUJCShGSUxFICogb3V0cHV0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+IHNjaGVtYSk8YnIvPgorPC9wcmU+PHA+RHVtcCB0aGUgdHJhbnNmb3JtZWQgUmVsYXhORyB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNjaGVtYTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0ZyZWUiLz54bWxSZWxheE5HRnJlZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR0ZyZWUJCQkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT4gc2NoZW1hKTxici8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIGEgUmVsYXhORyBzdHJ1Y3R1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dCIvPnhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCIvPnhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dAkJKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiLz54bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiAqIHdhcm4sIDxici8+CQkJCQkgdm9pZCAqKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkdldCB0aGUgY2FsbGJhY2sgaW5mb3JtYXRpb24gdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVycm9yIGNhbGxiYWNrIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2FybjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcyByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIi8+eG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbGF4TkdHZXRWYWxpZEVycm9ycwkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiAqIHdhcm4sIDxici8+CQkJCQkgdm9pZCAqKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkdldCB0aGUgZXJyb3IgYW5kIHdhcm5pbmcgY2FsbGJhY2sgaW5mb3JtYXRpb25zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgZnVuY3Rpb24gcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53YXJuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2FybmluZyBmdW5jdGlvbiByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9ucyBjb250ZXh0IHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvZiBlcnJvciBhbmQgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HSW5pdFR5cGVzIi8+eG1sUmVsYXhOR0luaXRUeXBlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWxheE5HSW5pdFR5cGVzCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+SW5pdGlsaXplIHRoZSBkZWZhdWx0IHR5cGUgbGlicmFyaWVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiLz54bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4JeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgUmVsYXhOR3MgcGFyc2VyIGNvbnRleHQgZm9yIHRoYXQgZG9jdW1lbnQuIE5vdGU6IHNpbmNlIHRoZSBwcm9jZXNzIG9mIGNvbXBpbGluZyBhIFJlbGF4Tkcgc2NoZW1hcyBtb2RpZmllcyB0aGUgZG9jdW1lbnQsIHRoZSBAZG9jIHBhcmFtZXRlciBpcyBkdXBsaWNhdGVkIGludGVybmFsbHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlcGFyc2VkIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCIvPnhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPgl4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCQkJIGludCBzaXplKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgbWVtb3J5IGJ1ZmZlciBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBSZWxheE5HcyBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5IGNvbnRhaW5pbmcgdGhlIHNjaGVtYXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0Ii8+eG1sUmVsYXhOR05ld1BhcnNlckN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+CXhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0CShjb25zdCBjaGFyICogVVJMKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZmlsZS9yZXNvdXJjZSBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBSZWxheE5HcyBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYXRpb24gb2YgdGhlIHNjaGVtYTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdOZXdWYWxpZEN0eHQiLz54bWxSZWxheE5HTmV3VmFsaWRDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4JeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dAkoPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT4gc2NoZW1hKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHZhbGlkYXRpb24gY29udGV4dCBiYXNlZCBvbiB0aGUgZ2l2ZW4gc2NoZW1hPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlY29tcGlsZWQgWE1MIFJlbGF4TkdzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdQYXJzZSIvPnhtbFJlbGF4TkdQYXJzZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+CXhtbFJlbGF4TkdQYXJzZQkJKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYSBzY2hlbWEgZGVmaW5pdGlvbiByZXNvdXJjZSBhbmQgYnVpbGQgYW4gaW50ZXJuYWwgWE1MIFNoZW1hIHN0cnV0dXJlIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHZhbGlkYXRlIGluc3RhbmNlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBYTUwgUmVsYXhORyBzdHJ1Y3R1cmUgYnVpbHQgZnJvbSB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyIvPnhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gZXJyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gd2FybiwgPGJyLz4JCQkJCSB2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5TZXQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyB1c2VkIHRvIGhhbmRsZSBlcnJvcnMgZm9yIGEgdmFsaWRhdGlvbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3YXJuaW5nIGNhbGxiYWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIi8+eG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBzZXJyb3IsIDxici8+CQkJCQkJIHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlNldCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSBwYXJzaW5nIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcnJvcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVycm9yIGNhbGxiYWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyIvPnhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiB3YXJuLCA8YnIvPgkJCQkJIHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlNldCB0aGUgZXJyb3IgYW5kIHdhcm5pbmcgY2FsbGJhY2sgaW5mb3JtYXRpb25zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3YXJuaW5nIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbnMgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMiLz54bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIvPgkJCQkJCSB2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5TZXQgdGhlIHN0cnVjdHVyZWQgZXJyb3IgY2FsbGJhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZXJyb3I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJ1Y3R1cmVkIGVycm9yIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbnMgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZURvYyIvPnhtbFJlbGF4TkdWYWxpZGF0ZURvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWxheE5HVmFsaWRhdGVEb2MJCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPlZhbGlkYXRlIGEgZG9jdW1lbnQgdHJlZSBpbiBtZW1vcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBhcnNlZCBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBkb2N1bWVudCBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50Ii8+eG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxici8+Cis8L3ByZT48cD5WYWxpZGF0ZSBhIGZ1bGwgc3VidHJlZSB3aGVuIHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50KCkgcmV0dXJuZWQgMCBhbmQgdGhlIGNvbnRlbnQgb2YgdGhlIG5vZGUgaGFzIGJlZW4gZXhwYW5kZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiLz54bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxici8+Cis8L3ByZT48cD5Qb3AgdGhlIGVsZW1lbnQgZW5kIGZyb20gdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBzdGFjay48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBSZWxheE5HIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIG5vIHZhbGlkYXRpb24gcHJvYmxlbSB3YXMgZm91bmQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEiLz54bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkYXRhLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPmNoZWNrIHRoZSBDRGF0YSBwYXJzZWQgZm9yIHZhbGlkYXRpb24gaW4gdGhlIGN1cnJlbnQgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBSZWxheE5HIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c29tZSBjaGFyYWN0ZXIgZGF0YSByZWFkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5naHQgb2YgdGhlIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCIvPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8YnIvPgorPC9wcmU+PHA+UHVzaCBhIG5ldyBlbGVtZW50IHN0YXJ0IG9uIHRoZSBSZWxheE5HIHZhbGlkYXRpb24gc3RhY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAwIGlmIHZhbGlkYXRpbmcgdGhlIGVsZW1lbnQgcmVxdWlyZXMgYSBmdWxsIG5vZGUsIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlbGF4UGFyc2VyU2V0RmxhZyIvPnhtbFJlbGF4UGFyc2VyU2V0RmxhZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWxheFBhcnNlclNldEZsYWcJCSg8YSBocmVmPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IGZsYWdzKTxici8+Cis8L3ByZT48cD5TZW1pIHByaXZhdGUgZnVuY3Rpb24gdXNlZCB0byBwYXNzIGluZm9ybWF0aW9ucyB0byBhIHBhcnNlciBjb250ZXh0IHdoaWNoIGFyZSBhIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJGbGFnIj54bWxSZWxheE5HUGFyc2VyRmxhZzwvYT4gLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBSZWxheE5HIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mbGFnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgZmxhZ3MgdmFsdWVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmOWNiYzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sCkBAIC0wLDAgKzEsODYwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnNjaGVtYXNJbnRlcm5hbHM6IGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBTY2hlbWFzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnNjaGVtYXNJbnRlcm5hbHM8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD5zY2hlbWFzSW50ZXJuYWxzIC0gaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFNjaGVtYXM8L3A+CisgICAgPHA+aW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgdGhlIFhNTCBTY2hlbWFzIGhhbmRsaW5nIGFuZCBzY2hlbWEgdmFsaWRpdHkgY2hlY2tpbmcgVGhlIFNjaGVtYXMgZGV2ZWxvcG1lbnQgaXMgYSBXb3JrIEluIFByb2dyZXNzLiBTb21lIG9mIHRob3NlIGludGVyZmFjZXMgYXJlIG5vdCBnYXJhbnRlZWQgdG8gYmUgQVBJIG9yIEFCSSBzdGFibGUgISA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIj5YTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzE8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSIj5YTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSIj5YTUxfU0NIRU1BU19RVUFMSUZfQVRUUjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFIj5YTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQiPlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFIj5YTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0UiPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT04iPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BTllfU1RSSUNUIj5YTUxfU0NIRU1BU19BTllfU1RSSUNUPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0iPlhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUiPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQiPlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUyI+WE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlM8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRCI+WE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEUiPlhNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9TVUJTVElUVVRJT04iPlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEIj5YTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUIj5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT04iPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRCI+WE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9GSVhFRCI+WE1MX1NDSEVNQVNfRUxFTV9GSVhFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX09XTkVEX0FUVFJfV0lMRENBUkQiPlhNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVCI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9MSVNUPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfQVRUUl9OU0RFRkFVTFQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1JFUExBQ0UiPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1QiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iPlhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV048L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRSI+WE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMIj5YTUxfU0NIRU1BU19BVFRSX0dMT0JBTDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVgiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMIj5YTUxfU0NIRU1BU19UWVBFX0dMT0JBTDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUIj5YTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfTUlYRUQiPlhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9GSVhFRCI+WE1MX1NDSEVNQVNfQVRUUl9GSVhFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FOWV9TS0lQIj5YTUxfU0NIRU1BU19BTllfU0tJUDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1QiPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfV0lMRENBUkRfQ09NUExFVEUiPlhNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfV0lMRENBUkRfQlVJTERFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwiPlhNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwiPlhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUw8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQU5ZX0xBWCI+WE1MX1NDSEVNQVNfQU5ZX0xBWDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUyI+WE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRCI+WE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQiPlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfSU5WQUxJRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUzwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUIj5YTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfREVGQVVMVCI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFIj5YTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRkFDRVRfUkVQTEFDRSI+WE1MX1NDSEVNQVNfRkFDRVRfUkVQTEFDRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX01BUktFRCI+WE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQiPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUw8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9SRUYiPlhNTF9TQ0hFTUFTX0VMRU1fUkVGPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlR3JvdXAiPnhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwPC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciI+eG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFFbGVtZW50Ij54bWxTY2hlbWFFbGVtZW50PC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWFFbGVtZW50UHRyIj54bWxTY2hlbWFFbGVtZW50UHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRMaW5rIj54bWxTY2hlbWFGYWNldExpbms8L2E+ICogPGEgaHJlZj0iI3htbFNjaGVtYUZhY2V0TGlua1B0ciI+eG1sU2NoZW1hRmFjZXRMaW5rUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFWYWwgPGEgaHJlZj0iI3htbFNjaGVtYVZhbCI+eG1sU2NoZW1hVmFsPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlTGluayI+eG1sU2NoZW1hQXR0cmlidXRlTGluazwvYT4gKiA8YSBocmVmPSIjeG1sU2NoZW1hQXR0cmlidXRlTGlua1B0ciI+eG1sU2NoZW1hQXR0cmlidXRlTGlua1B0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hVHlwZSA8YSBocmVmPSIjeG1sU2NoZW1hVHlwZSI+eG1sU2NoZW1hVHlwZTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hQW5ub3QgPGEgaHJlZj0iI3htbFNjaGVtYUFubm90Ij54bWxTY2hlbWFBbm5vdDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90Ij54bWxTY2hlbWFBbm5vdDwvYT4gKiA8YSBocmVmPSIjeG1sU2NoZW1hQW5ub3RQdHIiPnhtbFNjaGVtYUFubm90UHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFFbGVtZW50IDxhIGhyZWY9IiN4bWxTY2hlbWFFbGVtZW50Ij54bWxTY2hlbWFFbGVtZW50PC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFXaWxkY2FyZCA8YSBocmVmPSIjeG1sU2NoZW1hV2lsZGNhcmQiPnhtbFNjaGVtYVdpbGRjYXJkPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmQiPnhtbFNjaGVtYVdpbGRjYXJkPC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWFXaWxkY2FyZFB0ciI+eG1sU2NoZW1hV2lsZGNhcmRQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldCI+eG1sU2NoZW1hRmFjZXQ8L2E+ICogPGEgaHJlZj0iI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hVHlwZUxpbmsgPGEgaHJlZj0iI3htbFNjaGVtYVR5cGVMaW5rIj54bWxTY2hlbWFUeXBlTGluazwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlTGluayA8YSBocmVmPSIjeG1sU2NoZW1hQXR0cmlidXRlTGluayI+eG1sU2NoZW1hQXR0cmlidXRlTGluazwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbCI+eG1sU2NoZW1hVmFsPC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hRmFjZXRMaW5rIDxhIGhyZWY9IiN4bWxTY2hlbWFGYWNldExpbmsiPnhtbFNjaGVtYUZhY2V0TGluazwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkTnMiPnhtbFNjaGVtYVdpbGRjYXJkTnM8L2E+ICogPGEgaHJlZj0iI3htbFNjaGVtYVdpbGRjYXJkTnNQdHIiPnhtbFNjaGVtYVdpbGRjYXJkTnNQdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIDxhIGhyZWY9IiN4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCI+eG1sU2NoZW1hQXR0cmlidXRlR3JvdXA8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlTGluayI+eG1sU2NoZW1hVHlwZUxpbms8L2E+ICogPGEgaHJlZj0iI3htbFNjaGVtYVR5cGVMaW5rUHRyIj54bWxTY2hlbWFUeXBlTGlua1B0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hV2lsZGNhcmROcyA8YSBocmVmPSIjeG1sU2NoZW1hV2lsZGNhcmROcyI+eG1sU2NoZW1hV2lsZGNhcmROczwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZSI+eG1sU2NoZW1hQXR0cmlidXRlPC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWFBdHRyaWJ1dGVQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZVB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYU5vdGF0aW9uIj54bWxTY2hlbWFOb3RhdGlvbjwvYT4gKiA8YSBocmVmPSIjeG1sU2NoZW1hTm90YXRpb25QdHIiPnhtbFNjaGVtYU5vdGF0aW9uUHRyPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGUiPnhtbFNjaGVtYVR5cGU8L2E+ICogPGEgaHJlZj0iI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYU5vdGF0aW9uIDxhIGhyZWY9IiN4bWxTY2hlbWFOb3RhdGlvbiI+eG1sU2NoZW1hTm90YXRpb248L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUZhY2V0IDxhIGhyZWY9IiN4bWxTY2hlbWFGYWNldCI+eG1sU2NoZW1hRmFjZXQ8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxTY2hlbWFDb250ZW50VHlwZSI+eG1sU2NoZW1hQ29udGVudFR5cGU8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZSA8YSBocmVmPSIjeG1sU2NoZW1hQXR0cmlidXRlIj54bWxTY2hlbWFBdHRyaWJ1dGU8L2E+Owordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hRnJlZVR5cGUiPnhtbFNjaGVtYUZyZWVUeXBlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUpOwordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hRnJlZVdpbGRjYXJkIj54bWxTY2hlbWFGcmVlV2lsZGNhcmQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmRQdHIiPnhtbFNjaGVtYVdpbGRjYXJkUHRyPC9hPiB3aWxkY2FyZCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVgiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BTllBVFRSX0xBWDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYIj5YTUxfU0NIRU1BU19BTllBVFRSX0xBWDwvYT47Cis8L3ByZT48cD5JZ25vcmUgdmFsaWRhdGlvbiBub24gZGVmaW5pdGlvbiBvbiBhdHRyaWJ1dGVzIE9ic29sZXRlLCBub3QgdXNlZCBhbnltb3JlLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BTllBVFRSX1NLSVA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUDwvYT47Cis8L3ByZT48cD5Ta2lwIHVua25vd24gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZnJvbSB2YWxpZGF0aW9uIE9ic29sZXRlLCBub3QgdXNlZCBhbnltb3JlLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1QiPlhNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUPC9hPjsKKzwvcHJlPjxwPkFwcGx5IHN0cmljdCB2YWxpZGF0aW9uIHJ1bGVzIG9uIGF0dHJpYnV0ZXMgT2Jzb2xldGUsIG5vdCB1c2VkIGFueW1vcmUuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWV9MQVgiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BTllfTEFYPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQU5ZX0xBWCI+WE1MX1NDSEVNQVNfQU5ZX0xBWDwvYT47Cis8L3ByZT48cD5Vc2VkIGJ5IHdpbGRjYXJkcy4gVmFsaWRhdGUgaWYgdHlwZSBmb3VuZCwgZG9uJ3Qgd29ycnkgaWYgbm90IGZvdW5kPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWV9TS0lQIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfQU5ZX1NLSVA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BTllfU0tJUCI+WE1MX1NDSEVNQVNfQU5ZX1NLSVA8L2E+OworPC9wcmU+PHA+U2tpcCB1bmtub3duIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGZyb20gdmFsaWRhdGlvbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BTllfU1RSSUNUIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfQU5ZX1NUUklDVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FOWV9TVFJJQ1QiPlhNTF9TQ0hFTUFTX0FOWV9TVFJJQ1Q8L2E+OworPC9wcmU+PHA+VXNlZCBieSB3aWxkY2FyZHMuIEFwcGx5IHN0cmljdCB2YWxpZGF0aW9uIHJ1bGVzPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUwiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BVFRSR1JPVVBfR0xPQkFMPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTDwvYT47Cis8L3ByZT48cD5UaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2lsZGNhcmQgaGFzIGJlZW4gYWxyZWFkeSBidWlsZGVkLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUzwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoaXMgYXR0ci4gZ3JvdXAgY29udGFpbnMgYXR0ci4gZ3JvdXAgcmVmZXJlbmNlcy48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEPC9hPjsKKzwvcHJlPjxwPk1hcmtzIHRoZSBhdHRyIGdyb3VwIGFzIG1hcmtlZDsgdXNlZCBmb3IgY2lyY3VsYXIgY2hlY2tzLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfQVRUUkdST1VQX1JFREVGSU5FRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQ8L2E+OworPC9wcmU+PHA+VGhlIGF0dHIgZ3JvdXAgd2FzIHJlZGVmaW5lZC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BVFRSR1JPVVBfV0lMRENBUkRfQlVJTERFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfV0lMRENBUkRfQlVJTERFRDwvYT47Cis8L3ByZT48cD5UaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2lsZGNhcmQgaGFzIGJlZW4gYWxyZWFkeSBidWlsZGVkLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSX0ZJWEVEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfQVRUUl9GSVhFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJfRklYRUQiPlhNTF9TQ0hFTUFTX0FUVFJfRklYRUQ8L2E+OworPC9wcmU+PHA+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGhhcyBhIGZpeGVkIHZhbHVlPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfQVRUUl9HTE9CQUw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSX0dMT0JBTCI+WE1MX1NDSEVNQVNfQVRUUl9HTE9CQUw8L2E+OworPC9wcmU+PHA+YWxsb3cgZWxlbWVudHMgaW4gbm8gbmFtZXNwYWNlPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BVFRSX0lOVEVSTkFMX1JFU09MVkVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRCI+WE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRDwvYT47Cis8L3ByZT48cD50aGlzIGlzIHNldCB3aGVuIHRoZSAidHlwZSIgYW5kICJyZWYiIHJlZmVyZW5jZXMgaGF2ZSBiZWVuIHJlc29sdmVkLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9OU0RFRkFVTFQiPlhNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUPC9hPjsKKzwvcHJlPjxwPmFsbG93IGVsZW1lbnRzIGluIG5vIG5hbWVzcGFjZTwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9VU0VfT1BUSU9OQUwiPlhNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMPC9hPjsKKzwvcHJlPjxwPlRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpcyBvcHRpb25hbC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEPC9hPjsKKzwvcHJlPjxwPlVzZWQgYnkgd2lsZGNhcmRzLiBUaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgcHJvaGliaXRlZC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRDwvYT47Cis8L3ByZT48cD5UaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgcmVxdWlyZWQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT048L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT048L2E+OworPC9wcmU+PHA+dGhlIHNjaGVtYSBoYXMgImV4dGVuc2lvbiIgaW4gdGhlIHNldCBvZiBibG9ja0RlZmF1bHQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfUkVTVFJJQ1RJT04iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTjwvYT47Cis8L3ByZT48cD50aGUgc2NoZW1hIGhhcyAicmVzdHJpY3Rpb24iIGluIHRoZSBzZXQgb2YgYmxvY2tEZWZhdWx0LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTiI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9TVUJTVElUVVRJT04iPlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OPC9hPjsKKzwvcHJlPjxwPnRoZSBzY2hlbWEgaGFzICJzdWJzdGl0dXRpb24iIGluIHRoZSBzZXQgb2YgYmxvY2tEZWZhdWx0LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1QiPlhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1Q8L2E+OworPC9wcmU+PHA+dGhlIGVsZW1lbnQgaXMgYWJzdHJhY3Q8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0FCU0VOVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0FCU0VOVDwvYT47Cis8L3ByZT48cD50aGUgImJsb2NrIiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpcyBhYnNlbnQ8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT04iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTjwvYT47Cis8L3ByZT48cD5kaXNhbGxvd2VkIHN1YnN0aXR1dGlvbnMgYXJlIGFic2VudDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRUxFTV9CTE9DS19SRVNUUklDVElPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT048L2E+OworPC9wcmU+PHA+ZGlzYWxsb3dlZCBzdWJzdGl0dXRpb25zOiAicmVzdHJpY3Rpb24iPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT048L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT048L2E+OworPC9wcmU+PHA+ZGlzYWxsb3dlZCBzdWJzdGl0dXRpb25zOiAic3Vic3RpdHVpb24iPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUiI+WE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUjwvYT47Cis8L3ByZT48cD5hIGhlbHBlciBmbGFnIGZvciB0aGUgc2VhcmNoIG9mIGNpcmN1bGFyIHJlZmVyZW5jZXMuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUPC9hPjsKKzwvcHJlPjxwPnRoZSBlbGVtZW50IGhhcyBhIGRlZmF1bHQgdmFsdWU8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvYT47Cis8L3ByZT48cD5zdWJzdGl0dXRpb24gZ3JvdXAgZXhjbHVzaW9ucyBhcmUgYWJzZW50PC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT048L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT048L2E+OworPC9wcmU+PHA+c3Vic3RpdHV0aW9uIGdyb3VwIGV4Y2x1c2lvbnM6ICJleHRlbnNpb24iPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT04iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9SRVNUUklDVElPTjwvYT47Cis8L3ByZT48cD5zdWJzdGl0dXRpb24gZ3JvdXAgZXhjbHVzaW9uczogInJlc3RyaWN0aW9uIjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0ZJWEVEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRUxFTV9GSVhFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fRklYRUQiPlhNTF9TQ0hFTUFTX0VMRU1fRklYRUQ8L2E+OworPC9wcmU+PHA+dGhlIGVsZW1lbnQgaGFzIGEgZml4ZWQgdmFsdWU8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19FTEVNX0dMT0JBTDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMIj5YTUxfU0NIRU1BU19FTEVNX0dMT0JBTDwvYT47Cis8L3ByZT48cD50aGUgZWxlbWVudCBpcyBnbG9iYWw8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQ8L2E+OworPC9wcmU+PHA+dGhpcyBpcyBzZXQgd2hlbiB0aGUgZWxlbSBkZWNsIGhhcyBiZWVuIGNoZWNrZWQgYWdhaW5zdCBhbGwgY29uc3RyYWludHM8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9SRVNPTFZFRCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEPC9hPjsKKzwvcHJlPjxwPnRoaXMgaXMgc2V0IHdoZW4gInR5cGUiLCAicmVmIiwgInN1YnN0aXR1dGlvbkdyb3VwIiByZWZlcmVuY2VzIGhhdmUgYmVlbiByZXNvbHZlZC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRSI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFIj5YTUxfU0NIRU1BU19FTEVNX05JTExBQkxFPC9hPjsKKzwvcHJlPjxwPnRoZSBlbGVtZW50IGlzIG5pbGxhYmxlPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fTlNERUZBVUxUIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2E+OworPC9wcmU+PHA+YWxsb3cgZWxlbWVudHMgaW4gbm8gbmFtZXNwYWNlIE9ic29sZXRlLCBub3QgdXNlZCBhbnltb3JlLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX1JFRiI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0VMRU1fUkVGPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9SRUYiPlhNTF9TQ0hFTUFTX0VMRU1fUkVGPC9hPjsKKzwvcHJlPjxwPnRoZSBlbGVtZW50IGlzIGEgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gYSB0eXBlPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRCI+WE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEPC9hPjsKKzwvcHJlPjxwPnRoZSBkZWNsYXJhdGlvbiBpcyBhIHN1YnN0aXR1dGlvbiBncm91cCBoZWFkPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTCI+WE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTDwvYT47Cis8L3ByZT48cD50aGUgZWxlbWVudCBpcyB0b3AgbGV2ZWwgb2Jzb2xldGU6IHVzZSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0dMT0JBTCI+WE1MX1NDSEVNQVNfRUxFTV9HTE9CQUw8L2E+IGluc3RlYWQ8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0UiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFIj5YTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRTwvYT47Cis8L3ByZT48cD5jb2xsYXBzZSB0aGUgdHlwZXMgb2YgdGhlIGZhY2V0PC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRSI+WE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkU8L2E+OworPC9wcmU+PHA+cHJlc2VydmUgdGhlIHR5cGUgb2YgdGhlIGZhY2V0PC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0UiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRkFDRVRfUkVQTEFDRSI+WE1MX1NDSEVNQVNfRkFDRVRfUkVQTEFDRTwvYT47Cis8L3ByZT48cD5yZXBsYWNlIHRoZSB0eXBlIG9mIHRoZSBmYWNldDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GQUNFVF9VTktOT1dOIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRkFDRVRfVU5LTk9XTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iPlhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV048L2E+OworPC9wcmU+PHA+dW5rbm93biBmYWNldCBoYW5kbGluZzwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTiI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OPC9hPjsKKzwvcHJlPjxwPnRoZSBzY2hlbWEgaGFzICJleHRlbnNpb24iIGluIHRoZSBzZXQgb2YgZmluYWxEZWZhdWx0LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1QiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1QiPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVDwvYT47Cis8L3ByZT48cD50aGUgY3NoZW1hIGhhcyAibGlzdCIgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTjwvYT47Cis8L3ByZT48cD50aGUgc2NoZW1hIGhhcyAicmVzdHJpY3Rpb24iIGluIHRoZSBzZXQgb2YgZmluYWxEZWZhdWx0LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfVU5JT04iPlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfVU5JT048L2E+OworPC9wcmU+PHA+dGhlIHNjaGVtYSBoYXMgInVuaW9uIiBpbiB0aGUgc2V0IG9mIGZpbmFsRGVmYXVsdC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlMiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TIj5YTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUzwvYT47Cis8L3ByZT48cD50aGUgc2NoZW1hIGlzIGN1cnJlbnRseSBpbmNsdWRpbmcgYW4gb3RoZXIgc2NoZW1hIHdpdGggbm8gdGFyZ2V0IG5hbWVzcGFjZS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfUVVBTElGX0FUVFIiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19RVUFMSUZfQVRUUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSIj5YTUxfU0NIRU1BU19RVUFMSUZfQVRUUjwvYT47Cis8L3ByZT48cD5SZWZsZWN0cyBhdHRyaWJ1dGVGb3JtRGVmYXVsdCA9PSBxdWFsaWZpZWQgaW4gYW4gWE1MIHNjaGVtYSBkb2N1bWVudC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19RVUFMSUZfRUxFTTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNIj5YTUxfU0NIRU1BU19RVUFMSUZfRUxFTTwvYT47Cis8L3ByZT48cD5SZWZsZWN0cyBlbGVtZW50Rm9ybURlZmF1bHQgPT0gcXVhbGlmaWVkIGluIGFuIFhNTCBzY2hlbWEgZG9jdW1lbnQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfQUJTVFJBQ1QiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVCI+WE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVDwvYT47Cis8L3ByZT48cD50aGUgc2ltcGxlL2NvbXBsZXhUeXBlIGlzIGFic3RyYWN0LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVDwvYT47Cis8L3ByZT48cD50aGUgY29tcGxleFR5cGUgZGlkIG5vdCBzcGVjaWZ5ICdibG9jaycgc28gdXNlIHRoZSBkZWZhdWx0IG9mIHRoZSAmbHQ7c2NoZW1hJmd0OyBpdGVtLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTiI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OPC9hPjsKKzwvcHJlPjxwPnRoZSBjb21wbGV4VHlwZSBoYXMgYSAnYmxvY2snIG9mICJleHRlbnNpb24iLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT048L2E+OworPC9wcmU+PHA+dGhlIGNvbXBsZXhUeXBlIGhhcyBhICdibG9jaycgb2YgInJlc3RyaWN0aW9uIi48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRSI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFIj5YTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFPC9hPjsKKzwvcHJlPjxwPk1hcmtzIHRoZSBpdGVtIGFzIGEgYnVpbHRpbiBwcmltaXRpdmUuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT048L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT048L2E+OworPC9wcmU+PHA+dGhlIHNpbXBsZSBvciBjb21wbGV4IHR5cGUgaGFzIGEgZGVyaXZhdGlvbiBtZXRob2Qgb2YgImV4dGVuc2lvbiIuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX1JFU1RSSUNUSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTjwvYT47Cis8L3ByZT48cD50aGUgc2ltcGxlIG9yIGNvbXBsZXggdHlwZSBoYXMgYSBkZXJpdmF0aW9uIG1ldGhvZCBvZiAicmVzdHJpY3Rpb24iLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRSI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUiPlhNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFPC9hPjsKKzwvcHJlPjxwPmluZGljYXRlcyBpZiB0aGUgZmFjZXRzIG5lZWQgYSBjb21wdXRlZCB2YWx1ZTwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfREVGQVVMVDwvYT47Cis8L3ByZT48cD50aGUgc2ltcGxlVHlwZSBoYXMgYSBmaW5hbCBvZiAiZGVmYXVsdCIuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT048L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT048L2E+OworPC9wcmU+PHA+dGhlIGNvbXBsZXhUeXBlIGhhcyBhIGZpbmFsIG9mICJleHRlbnNpb24iLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1QiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1QiPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVDwvYT47Cis8L3ByZT48cD50aGUgc2ltcGxlVHlwZSBoYXMgYSBmaW5hbCBvZiAibGlzdCIuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfUkVTVFJJQ1RJT04iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTiI+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTjwvYT47Cis8L3ByZT48cD50aGUgc2ltcGxlVHlwZS9jb21wbGV4VHlwZSBoYXMgYSBmaW5hbCBvZiAicmVzdHJpY3Rpb24iLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9VTklPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04iPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT048L2E+OworPC9wcmU+PHA+dGhlIHNpbXBsZVR5cGUgaGFzIGEgZmluYWwgb2YgInVuaW9uIi48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIj5YTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzE8L2E+OworPC9wcmU+PHA+Rmlyc3Qgc3RhZ2Ugb2YgZml4dXAgd2FzIGRvbmUuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9HTE9CQUw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0dMT0JBTCI+WE1MX1NDSEVNQVNfVFlQRV9HTE9CQUw8L2E+OworPC9wcmU+PHA+dGhlIHR5cGUgaXMgZ2xvYmFsPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUyI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUyI+WE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTPC9hPjsKKzwvcHJlPjxwPmhhcyBmYWNldHM8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEIj5YTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQ8L2E+OworPC9wcmU+PHA+aW5kaWNhdGVzIHRoYXQgdGhlIHR5cGUgaXMgaW52YWxpZDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9SRVNPTFZFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQ8L2E+OworPC9wcmU+PHA+aW5kaWNhdGVzIHRoYXQgdGhlIHR5cGUgd2FzIHR5cGVmaXhlZDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX01BUktFRCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQiPlhNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEPC9hPjsKKzwvcHJlPjxwPk1hcmtzIHRoZSBpdGVtIGFzIG1hcmtlZDsgdXNlZCBmb3IgY2lyY3VsYXIgY2hlY2tzLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX01JWEVEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9NSVhFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfTUlYRUQiPlhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQ8L2E+OworPC9wcmU+PHA+dGhlIGVsZW1lbnQgY29udGVudCB0eXBlIGlzIG1peGVkPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRCI+WE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQ8L2E+OworPC9wcmU+PHA+aW5kaWNhdGVzIGlmIHRoZSBmYWNldHMgKHBhdHRlcm4pIG5lZWQgYSBub3JtYWxpemVkIHZhbHVlPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCI+WE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEPC9hPjsKKzwvcHJlPjxwPnRoZSBjb21wbGV4VHlwZSBvd25zIGFuIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdpbGRjYXJkLCBpLmUuIGl0IGNhbiBiZSBmcmVlZCBieSB0aGUgY29tcGxleFR5cGU8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQiPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfUkVERUZJTkVEIj5YTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRDwvYT47Cis8L3ByZT48cD5UaGUgdHlwZSB3YXMgcmVkZWZpbmVkLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQ8L2E+OworPC9wcmU+PHA+dGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAiYWJzZW50Ii4gVE9ETzogQWN0dWFsbHkgbm90IG5lY2Vzc2FyeSA6LS8sIHNpbmNlIGlmIG5vbmUgb2YgdGhlIHZhcmlldHkgZmxhZ3Mgb2NjdXIgdGhlbiBpdCdzIGF1dG9tYXRpY2FsbHkgYWJzZW50LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUMiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUM8L2E+OworPC9wcmU+PHA+dGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAidW5pb24iLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVCI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1QiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUPC9hPjsKKzwvcHJlPjxwPnRoZSBzaW1wbGVUeXBlIGhhcyBhIHZhcmlldHkgb2YgImxpc3QiLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT04iPk1hY3JvIDwvYT5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT048L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT04iPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTjwvYT47Cis8L3ByZT48cD50aGUgc2ltcGxlVHlwZSBoYXMgYSB2YXJpZXR5IG9mICJ1bmlvbiIuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFPC9hPjsKKzwvcHJlPjxwPmEgd2hpdGVzcGFjZS1mYWNldCB2YWx1ZSBvZiAiY29sbGFwc2UiPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRSI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFPC9hPjsKKzwvcHJlPjxwPmEgd2hpdGVzcGFjZS1mYWNldCB2YWx1ZSBvZiAicHJlc2VydmUiPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFIj5NYWNybyA8L2E+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1JFUExBQ0U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1JFUExBQ0U8L2E+OworPC9wcmU+PHA+YSB3aGl0ZXNwYWNlLWZhY2V0IHZhbHVlIG9mICJyZXBsYWNlIjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURSI+TWFjcm8gPC9hPlhNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfV0lMRENBUkRfQ09NUExFVEUiPlhNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFPC9hPjsKKzwvcHJlPjxwPklmIHRoZSB3aWxkY2FyZCBpcyBjb21wbGV0ZS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hQW5ub3QiPlN0cnVjdHVyZSA8L2E+eG1sU2NoZW1hQW5ub3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNjaGVtYUFubm90IHsKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUFubm90ICoJbmV4dAorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CWNvbnRlbnQJOiB0aGUgYW5ub3RhdGlvbgorfSB4bWxTY2hlbWFBbm5vdDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFBbm5vdFB0ciI+VHlwZWRlZiA8L2E+eG1sU2NoZW1hQW5ub3RQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdCI+eG1sU2NoZW1hQW5ub3Q8L2E+ICogeG1sU2NoZW1hQW5ub3RQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hQXR0cmlidXRlIj5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYUF0dHJpYnV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+CXR5cGUKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZSAqCW5leHQJOiB0aGUgbmV4dCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiAobm90IHVzZWQ/KQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogdGhlIG5hbWUgb2YgdGhlIGRlY2xhcmF0aW9uCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmTnMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl0eXBlTmFtZQk6IHRoZSBsb2NhbCBuYW1lIG9mIHRoZSB0eXBlIGRlZmluaXRpb24KKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdHlwZU5zCTogdGhlIG5zIFVSSSBvZiB0aGUgdHlwZSBkZWZpbml0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQW5ub3RQdHIiPnhtbFNjaGVtYUFubm90UHRyPC9hPglhbm5vdAorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CWJhc2UJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGludAlvY2N1cnMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglkZWZWYWx1ZQk6IFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSB2YWx1ZSBjb25zdHJhaW50CisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4Jc3VidHlwZXMJOiB0aGUgdHlwZSBkZWZpbml0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl0YXJnZXROYW1lc3BhY2UKKyAgICBpbnQJZmxhZ3MKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmUHJlZml4CTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JZGVmVmFsCTogVGhlIGNvbXBpbGVkIHZhbHVlIGNvbnN0cmFpbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZVB0cjwvYT4JcmVmRGVjbAk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCit9IHhtbFNjaGVtYUF0dHJpYnV0ZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCI+U3RydWN0dXJlIDwvYT54bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlR3JvdXAgeworICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVUeXBlIj54bWxTY2hlbWFUeXBlVHlwZTwvYT4JdHlwZQk6IFRoZSBraW5kIG9mIHR5cGUKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZSAqCW5leHQJOiB0aGUgbmV4dCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpZiBpbiBhIGdyb3VwIC4uLgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXJlZgk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXJlZk5zCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlUHRyIj54bWxTY2hlbWFBdHRyaWJ1dGVQdHI8L2E+CWF0dHJpYnV0ZXMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CW5vZGUKKyAgICBpbnQJZmxhZ3MKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZFB0ciI+eG1sU2NoZW1hV2lsZGNhcmRQdHI8L2E+CWF0dHJpYnV0ZVdpbGRjYXJkCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXJlZlByZWZpeAk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyPC9hPglyZWZJdGVtCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdGFyZ2V0TmFtZXNwYWNlCisgICAgdm9pZCAqCWF0dHJVc2VzCit9IHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIj54bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDwvYT4gKiB4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rIj5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYUF0dHJpYnV0ZUxpbms8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsgeworICAgIHN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlTGluayAqCW5leHQJOiB0aGUgbmV4dCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsaW5rIC4uLgorICAgIHN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlICoJYXR0cgk6IHRoZSBsaW5rZWQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4KK30geG1sU2NoZW1hQXR0cmlidXRlTGluazsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlTGluayI+eG1sU2NoZW1hQXR0cmlidXRlTGluazwvYT4gKiB4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZVB0ciI+VHlwZWRlZiA8L2E+eG1sU2NoZW1hQXR0cmlidXRlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlIj54bWxTY2hlbWFBdHRyaWJ1dGU8L2E+ICogeG1sU2NoZW1hQXR0cmlidXRlUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUNvbnRlbnRUeXBlIj5FbnVtIDwvYT54bWxTY2hlbWFDb250ZW50VHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFNjaGVtYUNvbnRlbnRUeXBlIj54bWxTY2hlbWFDb250ZW50VHlwZTwvYT4geworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfQ09OVEVOVF9VTktOT1dOIj5YTUxfU0NIRU1BX0NPTlRFTlRfVU5LTk9XTjwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZIj5YTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFk8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUyI+WE1MX1NDSEVNQV9DT05URU5UX0VMRU1FTlRTPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQiPlhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRDwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9DT05URU5UX1NJTVBMRSI+WE1MX1NDSEVNQV9DT05URU5UX1NJTVBMRTwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9DT05URU5UX01JWEVEX09SX0VMRU1FTlRTIj5YTUxfU0NIRU1BX0NPTlRFTlRfTUlYRURfT1JfRUxFTUVOVFM8L2E+ID0gNSAvKiBPYnNvbGV0ZSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQyI+WE1MX1NDSEVNQV9DT05URU5UX0JBU0lDPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfQU5ZIj5YTUxfU0NIRU1BX0NPTlRFTlRfQU5ZPC9hPiA9IDcKK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRWxlbWVudCI+U3RydWN0dXJlIDwvYT54bWxTY2hlbWFFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxTY2hlbWFFbGVtZW50IHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+CXR5cGUJOiBUaGUga2luZCBvZiB0eXBlCisgICAgc3RydWN0IF94bWxTY2hlbWFUeXBlICoJbmV4dAk6IE5vdCB1c2VkPworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmTnMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90UHRyIj54bWxTY2hlbWFBbm5vdFB0cjwvYT4JYW5ub3QKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPglzdWJ0eXBlcwk6IHRoZSB0eXBlIGRlZmluaXRpb24KKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZVB0cjwvYT4JYXR0cmlidXRlcworICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CW5vZGUKKyAgICBpbnQJbWluT2NjdXJzCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBpbnQJbWF4T2NjdXJzCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBpbnQJZmxhZ3MKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdGFyZ2V0TmFtZXNwYWNlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWVkVHlwZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lZFR5cGVOcworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglzdWJzdEdyb3VwCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXN1YnN0R3JvdXBOcworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglzY29wZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl2YWx1ZQk6IFRoZSBvcmlnaW5hbCB2YWx1ZSBvZiB0aGUgdmFsdWUgY29uc3RyYWludC4KKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUVsZW1lbnQgKglyZWZEZWNsCTogVGhpcyB3aWxsIG5vdyBiZSB1c2VkIGZvciB0aGUgc3Vic3RpdHV0aW9uIGdyb3VwIGFmZmlsaWF0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4JY29udE1vZGVsCTogT2Jzb2xldGUgZm9yIFdYUywgbWF5YmUgdXNlZCBmb3IgUmVsYXhORworICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUNvbnRlbnRUeXBlIj54bWxTY2hlbWFDb250ZW50VHlwZTwvYT4JY29udGVudFR5cGUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmUHJlZml4CTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JZGVmVmFsCTogVGhlIGNvbXBpbGVkIHZhbHVlIGNvbnRyYWludC4KKyAgICB2b2lkICoJaWRjcwk6IFRoZSBpZGVudGl0eS1jb25zdHJhaW50IGRlZnMKK30geG1sU2NoZW1hRWxlbWVudDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFFbGVtZW50UHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWFFbGVtZW50UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRWxlbWVudCI+eG1sU2NoZW1hRWxlbWVudDwvYT4gKiB4bWxTY2hlbWFFbGVtZW50UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUZhY2V0Ij5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYUZhY2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxTY2hlbWFGYWNldCB7CisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVR5cGUiPnhtbFNjaGVtYVR5cGVUeXBlPC9hPgl0eXBlCTogVGhlIGtpbmQgb2YgdHlwZQorICAgIHN0cnVjdCBfeG1sU2NoZW1hRmFjZXQgKgluZXh0CTogdGhlIG5leHQgdHlwZSBpZiBpbiBhIHNlcXVlbmNlIC4uLgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl2YWx1ZQk6IFRoZSBvcmlnaW5hbCB2YWx1ZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglpZAk6IE9ic29sZXRlCisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQW5ub3RQdHIiPnhtbFNjaGVtYUFubm90UHRyPC9hPglhbm5vdAorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CW5vZGUKKyAgICBpbnQJZml4ZWQJOiBYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRSwgZXRjLgorICAgIGludAl3aGl0ZXNwYWNlCisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+CXZhbAk6IFRoZSBjb21waWxlZCB2YWx1ZQorICAgIDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+CXJlZ2V4cAk6IFRoZSByZWdleCBmb3IgcGF0dGVybnMKK30geG1sU2NoZW1hRmFjZXQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRmFjZXRMaW5rIj5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYUZhY2V0TGluazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hRmFjZXRMaW5rIHsKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUZhY2V0TGluayAqCW5leHQJOiB0aGUgbmV4dCBmYWNldCBsaW5rIC4uLgorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4JZmFjZXQJOiB0aGUgbGlua2VkIGZhY2V0Cit9IHhtbFNjaGVtYUZhY2V0TGluazsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGYWNldExpbmtQdHIiPlR5cGVkZWYgPC9hPnhtbFNjaGVtYUZhY2V0TGlua1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0TGluayI+eG1sU2NoZW1hRmFjZXRMaW5rPC9hPiAqIHhtbFNjaGVtYUZhY2V0TGlua1B0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGYWNldFB0ciI+VHlwZWRlZiA8L2E+eG1sU2NoZW1hRmFjZXRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldCI+eG1sU2NoZW1hRmFjZXQ8L2E+ICogeG1sU2NoZW1hRmFjZXRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hTm90YXRpb24iPlN0cnVjdHVyZSA8L2E+eG1sU2NoZW1hTm90YXRpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNjaGVtYU5vdGF0aW9uIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+CXR5cGUJOiBUaGUga2luZCBvZiB0eXBlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkZW50aWZpZXIKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdGFyZ2V0TmFtZXNwYWNlCit9IHhtbFNjaGVtYU5vdGF0aW9uOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYU5vdGF0aW9uUHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWFOb3RhdGlvblB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYU5vdGF0aW9uIj54bWxTY2hlbWFOb3RhdGlvbjwvYT4gKiB4bWxTY2hlbWFOb3RhdGlvblB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFUeXBlIj5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYVR5cGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNjaGVtYVR5cGUgeworICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVUeXBlIj54bWxTY2hlbWFUeXBlVHlwZTwvYT4JdHlwZQk6IFRoZSBraW5kIG9mIHR5cGUKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYVR5cGUgKgluZXh0CTogdGhlIG5leHQgdHlwZSBpZiBpbiBhIHNlcXVlbmNlIC4uLgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmTnMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90UHRyIj54bWxTY2hlbWFBbm5vdFB0cjwvYT4JYW5ub3QKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPglzdWJ0eXBlcworICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZVB0ciI+eG1sU2NoZW1hQXR0cmlidXRlUHRyPC9hPglhdHRyaWJ1dGVzCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglub2RlCisgICAgaW50CW1pbk9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CW1heE9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CWZsYWdzCisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQ29udGVudFR5cGUiPnhtbFNjaGVtYUNvbnRlbnRUeXBlPC9hPgljb250ZW50VHlwZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgliYXNlCTogQmFzZSB0eXBlJ3MgbG9jYWwgbmFtZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgliYXNlTnMJOiBCYXNlIHR5cGUncyB0YXJnZXQgbmFtZXNwYWNlCisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4JYmFzZVR5cGUJOiBUaGUgYmFzZSB0eXBlIGNvbXBvbmVudAorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4JZmFjZXRzCTogTG9jYWwgZmFjZXRzCisgICAgc3RydWN0IF94bWxTY2hlbWFUeXBlICoJcmVkZWYJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGludAlyZWN1cnNlCTogT2Jzb2xldGUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyIj54bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyPC9hPiAqCWF0dHJpYnV0ZVVzZXMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkUHRyIj54bWxTY2hlbWFXaWxkY2FyZFB0cjwvYT4JYXR0cmlidXRlV2lsZGNhcmQKKyAgICBpbnQJYnVpbHRJblR5cGUJOiBUeXBlIG9mIGJ1aWx0LWluIHR5cGVzLgorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVMaW5rUHRyIj54bWxTY2hlbWFUeXBlTGlua1B0cjwvYT4JbWVtYmVyVHlwZXMJOiBtZW1iZXItdHlwZXMgaWYgYSB1bmlvbiB0eXBlLgorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0TGlua1B0ciI+eG1sU2NoZW1hRmFjZXRMaW5rUHRyPC9hPglmYWNldFNldAk6IEFsbCBmYWNldHMgKGluY2wuIGluaGVyaXRlZCkKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmUHJlZml4CTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPgljb250ZW50VHlwZURlZgk6IFVzZWQgZm9yIHRoZSBzaW1wbGUgY29udGVudCBvZiBjb21wbGV4IHR5cGVzLiBDb3VsZCB3ZSB1c2UgQHN1YnR5cGVzCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4JY29udE1vZGVsCTogSG9sZHMgdGhlIGF1dG9tYXRvbiBvZiB0aGUgY29udGVudCBtb2RlbAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl0YXJnZXROYW1lc3BhY2UKKyAgICB2b2lkICoJYXR0clVzZXMKK30geG1sU2NoZW1hVHlwZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFUeXBlTGluayI+U3RydWN0dXJlIDwvYT54bWxTY2hlbWFUeXBlTGluazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hVHlwZUxpbmsgeworICAgIHN0cnVjdCBfeG1sU2NoZW1hVHlwZUxpbmsgKgluZXh0CTogdGhlIG5leHQgdHlwZSBsaW5rIC4uLgorICAgIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CXR5cGUJOiB0aGUgbGlua2VkIHR5cGUKK30geG1sU2NoZW1hVHlwZUxpbms7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVHlwZUxpbmtQdHIiPlR5cGVkZWYgPC9hPnhtbFNjaGVtYVR5cGVMaW5rUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZUxpbmsiPnhtbFNjaGVtYVR5cGVMaW5rPC9hPiAqIHhtbFNjaGVtYVR5cGVMaW5rUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVR5cGVQdHIiPlR5cGVkZWYgPC9hPnhtbFNjaGVtYVR5cGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlIj54bWxTY2hlbWFUeXBlPC9hPiAqIHhtbFNjaGVtYVR5cGVQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVHlwZVR5cGUiPkVudW0gPC9hPnhtbFNjaGVtYVR5cGVUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sU2NoZW1hVHlwZVR5cGUiPnhtbFNjaGVtYVR5cGVUeXBlPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0JBU0lDIj5YTUxfU0NIRU1BX1RZUEVfQkFTSUM8L2E+ID0gMSAvKiBBIGJ1aWx0LWluIGRhdGF0eXBlICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0FOWSI+WE1MX1NDSEVNQV9UWVBFX0FOWTwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0ZBQ0VUIj5YTUxfU0NIRU1BX1RZUEVfRkFDRVQ8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEUiPlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYIj5YTUxfU0NIRU1BX1RZUEVfQ09NUExFWDwvYT4gPSA1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFIj5YTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0U8L2E+ID0gNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0UiPlhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0U8L2E+ID0gNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BTEwiPlhNTF9TQ0hFTUFfVFlQRV9BTEw8L2E+ID0gOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVCI+WE1MX1NDSEVNQV9UWVBFX1NJTVBMRV9DT05URU5UPC9hPiA9IDkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UIj5YTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UPC9hPiA9IDEwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX1VSIj5YTUxfU0NIRU1BX1RZUEVfVVI8L2E+ID0gMTEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTjwvYT4gPSAxMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT04iPlhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT048L2E+ID0gMTMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVCI+WE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ8L2E+ID0gMTQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA8L2E+ID0gMTYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfR1JPVVAiPlhNTF9TQ0hFTUFfVFlQRV9HUk9VUDwvYT4gPSAxNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTiI+WE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OPC9hPiA9IDE4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0xJU1QiPlhNTF9TQ0hFTUFfVFlQRV9MSVNUPC9hPiA9IDE5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX1VOSU9OIj5YTUxfU0NIRU1BX1RZUEVfVU5JT048L2E+ID0gMjAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQU5ZX0FUVFJJQlVURSI+WE1MX1NDSEVNQV9UWVBFX0FOWV9BVFRSSUJVVEU8L2E+ID0gMjEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRSI+WE1MX1NDSEVNQV9UWVBFX0lEQ19VTklRVUU8L2E+ID0gMjIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfSURDX0tFWSI+WE1MX1NDSEVNQV9UWVBFX0lEQ19LRVk8L2E+ID0gMjMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRiI+WE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUY8L2E+ID0gMjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfUEFSVElDTEUiPlhNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRTwvYT4gPSAyNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRTwvYT4gPSAyNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFIj5YTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRTwvYT4gPSAxMDAwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkUiPlhNTF9TQ0hFTUFfRkFDRVRfTUlORVhDTFVTSVZFPC9hPiA9IDEwMDEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRSI+WE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU8L2E+ID0gMTAwMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFIj5YTUxfU0NIRU1BX0ZBQ0VUX01BWEVYQ0xVU0lWRTwvYT4gPSAxMDAzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUyI+WE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUzwvYT4gPSAxMDA0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUyI+WE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUzwvYT4gPSAxMDA1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOIj5YTUxfU0NIRU1BX0ZBQ0VUX1BBVFRFUk48L2E+ID0gMTAwNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT04iPlhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT048L2E+ID0gMTAwNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfV0hJVEVTUEFDRSI+WE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFPC9hPiA9IDEwMDgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSCI+WE1MX1NDSEVNQV9GQUNFVF9MRU5HVEg8L2E+ID0gMTAwOQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIIj5YTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDwvYT4gPSAxMDEwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEgiPlhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIPC9hPiA9IDEwMTEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGIj5YTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGPC9hPiA9IDIwMDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQiI+WE1MX1NDSEVNQV9FWFRSQV9BVFRSX1VTRV9QUk9ISUI8L2E+ID0gMjAwMQorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWwiPlN0cnVjdHVyZSA8L2E+eG1sU2NoZW1hVmFsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxTY2hlbWFWYWwgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFNjaGVtYVZhbDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxQdHIiPlR5cGVkZWYgPC9hPnhtbFNjaGVtYVZhbFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbCI+eG1sU2NoZW1hVmFsPC9hPiAqIHhtbFNjaGVtYVZhbFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxUeXBlIj5FbnVtIDwvYT54bWxTY2hlbWFWYWxUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4geworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX1VOS05PV04iPlhNTF9TQ0hFTUFTX1VOS05PV048L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX1NUUklORyI+WE1MX1NDSEVNQVNfU1RSSU5HPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OT1JNU1RSSU5HIj5YTUxfU0NIRU1BU19OT1JNU1RSSU5HPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19ERUNJTUFMIj5YTUxfU0NIRU1BU19ERUNJTUFMPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19USU1FIj5YTUxfU0NIRU1BU19USU1FPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19HREFZIj5YTUxfU0NIRU1BU19HREFZPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19HTU9OVEgiPlhNTF9TQ0hFTUFTX0dNT05USDwvYT4gPSA2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfR01PTlRIREFZIj5YTUxfU0NIRU1BU19HTU9OVEhEQVk8L2E+ID0gNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0dZRUFSIj5YTUxfU0NIRU1BU19HWUVBUjwvYT4gPSA4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfR1lFQVJNT05USCI+WE1MX1NDSEVNQVNfR1lFQVJNT05USDwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfREFURSI+WE1MX1NDSEVNQVNfREFURTwvYT4gPSAxMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0RBVEVUSU1FIj5YTUxfU0NIRU1BU19EQVRFVElNRTwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0RVUkFUSU9OIj5YTUxfU0NIRU1BU19EVVJBVElPTjwvYT4gPSAxMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0ZMT0FUIj5YTUxfU0NIRU1BU19GTE9BVDwvYT4gPSAxMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0RPVUJMRSI+WE1MX1NDSEVNQVNfRE9VQkxFPC9hPiA9IDE0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfQk9PTEVBTiI+WE1MX1NDSEVNQVNfQk9PTEVBTjwvYT4gPSAxNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RPS0VOIj5YTUxfU0NIRU1BU19UT0tFTjwvYT4gPSAxNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0xBTkdVQUdFIj5YTUxfU0NIRU1BU19MQU5HVUFHRTwvYT4gPSAxNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX05NVE9LRU4iPlhNTF9TQ0hFTUFTX05NVE9LRU48L2E+ID0gMTgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OTVRPS0VOUyI+WE1MX1NDSEVNQVNfTk1UT0tFTlM8L2E+ID0gMTkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OQU1FIj5YTUxfU0NIRU1BU19OQU1FPC9hPiA9IDIwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfUU5BTUUiPlhNTF9TQ0hFTUFTX1FOQU1FPC9hPiA9IDIxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfTkNOQU1FIj5YTUxfU0NIRU1BU19OQ05BTUU8L2E+ID0gMjIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19JRCI+WE1MX1NDSEVNQVNfSUQ8L2E+ID0gMjMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19JRFJFRiI+WE1MX1NDSEVNQVNfSURSRUY8L2E+ID0gMjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19JRFJFRlMiPlhNTF9TQ0hFTUFTX0lEUkVGUzwvYT4gPSAyNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VOVElUWSI+WE1MX1NDSEVNQVNfRU5USVRZPC9hPiA9IDI2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRU5USVRJRVMiPlhNTF9TQ0hFTUFTX0VOVElUSUVTPC9hPiA9IDI3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfTk9UQVRJT04iPlhNTF9TQ0hFTUFTX05PVEFUSU9OPC9hPiA9IDI4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZVVJJIj5YTUxfU0NIRU1BU19BTllVUkk8L2E+ID0gMjkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19JTlRFR0VSIj5YTUxfU0NIRU1BU19JTlRFR0VSPC9hPiA9IDMwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfTlBJTlRFR0VSIj5YTUxfU0NIRU1BU19OUElOVEVHRVI8L2E+ID0gMzEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OSU5URUdFUiI+WE1MX1NDSEVNQVNfTklOVEVHRVI8L2E+ID0gMzIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OTklOVEVHRVIiPlhNTF9TQ0hFTUFTX05OSU5URUdFUjwvYT4gPSAzMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX1BJTlRFR0VSIj5YTUxfU0NIRU1BU19QSU5URUdFUjwvYT4gPSAzNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0lOVCI+WE1MX1NDSEVNQVNfSU5UPC9hPiA9IDM1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfVUlOVCI+WE1MX1NDSEVNQVNfVUlOVDwvYT4gPSAzNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0xPTkciPlhNTF9TQ0hFTUFTX0xPTkc8L2E+ID0gMzcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19VTE9ORyI+WE1MX1NDSEVNQVNfVUxPTkc8L2E+ID0gMzgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19TSE9SVCI+WE1MX1NDSEVNQVNfU0hPUlQ8L2E+ID0gMzkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19VU0hPUlQiPlhNTF9TQ0hFTUFTX1VTSE9SVDwvYT4gPSA0MAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0JZVEUiPlhNTF9TQ0hFTUFTX0JZVEU8L2E+ID0gNDEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19VQllURSI+WE1MX1NDSEVNQVNfVUJZVEU8L2E+ID0gNDIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19IRVhCSU5BUlkiPlhNTF9TQ0hFTUFTX0hFWEJJTkFSWTwvYT4gPSA0MworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWSI+WE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZPC9hPiA9IDQ0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZVFlQRSI+WE1MX1NDSEVNQVNfQU5ZVFlQRTwvYT4gPSA0NQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUiPlhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEU8L2E+ID0gNDYKK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hV2lsZGNhcmQiPlN0cnVjdHVyZSA8L2E+eG1sU2NoZW1hV2lsZGNhcmQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNjaGVtYVdpbGRjYXJkIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+CXR5cGUJOiBUaGUga2luZCBvZiB0eXBlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQorICAgIGludAltaW5PY2N1cnMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGludAltYXhPY2N1cnMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGludAlwcm9jZXNzQ29udGVudHMKKyAgICBpbnQJYW55CTogSW5kaWNhdGVzIGlmIHRoZSBucyBjb25zdHJhaW50IGlzIG9mICMjYW55CisgICAgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmROc1B0ciI+eG1sU2NoZW1hV2lsZGNhcmROc1B0cjwvYT4JbnNTZXQJOiBUaGUgbGlzdCBvZiBhbGxvd2VkIG5hbWVzcGFjZXMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIj54bWxTY2hlbWFXaWxkY2FyZE5zUHRyPC9hPgluZWdOc1NldAk6IFRoZSBuZWdhdGVkIG5hbWVzcGFjZQorICAgIGludAlmbGFncworfSB4bWxTY2hlbWFXaWxkY2FyZDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFXaWxkY2FyZE5zIj5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYVdpbGRjYXJkTnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNjaGVtYVdpbGRjYXJkTnMgeworICAgIHN0cnVjdCBfeG1sU2NoZW1hV2lsZGNhcmROcyAqCW5leHQJOiB0aGUgbmV4dCBjb25zdHJhaW50IGxpbmsgLi4uCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXZhbHVlCTogdGhlIHZhbHVlCit9IHhtbFNjaGVtYVdpbGRjYXJkTnM7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hV2lsZGNhcmROc1B0ciI+VHlwZWRlZiA8L2E+eG1sU2NoZW1hV2lsZGNhcmROc1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkTnMiPnhtbFNjaGVtYVdpbGRjYXJkTnM8L2E+ICogeG1sU2NoZW1hV2lsZGNhcmROc1B0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFXaWxkY2FyZFB0ciI+VHlwZWRlZiA8L2E+eG1sU2NoZW1hV2lsZGNhcmRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZCI+eG1sU2NoZW1hV2lsZGNhcmQ8L2E+ICogeG1sU2NoZW1hV2lsZGNhcmRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRnJlZVR5cGUiLz54bWxTY2hlbWFGcmVlVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hRnJlZVR5cGUJCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlKTxici8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIGEgU2NoZW1hIFR5cGUgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdHlwZSBzdHJ1Y3R1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGcmVlV2lsZGNhcmQiLz54bWxTY2hlbWFGcmVlV2lsZGNhcmQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUZyZWVXaWxkY2FyZAkJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkUHRyIj54bWxTY2hlbWFXaWxkY2FyZFB0cjwvYT4gd2lsZGNhcmQpPGJyLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGVzIGEgd2lsZGNhcmQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2lsZGNhcmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgd2lsZGNhcmQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItc2NoZW1hdHJvbi5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXNjaGVtYXRyb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTllMzNlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXNjaGVtYXRyb24uaHRtbApAQCAtMCwwICsxLDE2NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT5zY2hlbWF0cm9uOiBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+c2NoZW1hdHJvbjwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnNjaGVtYXRyb24gLSBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248L3A+CisgICAgPHA+aW50ZXJmYWNlIHRvIHRoZSBYTUwgU2NoZW1hdHJvbiB2YWxpZGl0eSBjaGVja2luZy4gPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgc3RydWN0IF94bWxTY2hlbWF0cm9uVmFsaWRDdHh0IDxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uVmFsaWRDdHh0PC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucyI+eG1sU2NoZW1hdHJvblZhbGlkT3B0aW9uczwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb24iPnhtbFNjaGVtYXRyb248L2E+ICogPGEgaHJlZj0iI3htbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYXRyb25QYXJzZXJDdHh0IDxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHQ8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYXRyb24gPGEgaHJlZj0iI3htbFNjaGVtYXRyb24iPnhtbFNjaGVtYXRyb248L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uVmFsaWRDdHh0PC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIj54bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0PC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+OworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MiPnhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGluc3RhbmNlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIj54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dDwvYT4JKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkJCSBpbnQgc2l6ZSk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3htbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pOworPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIFVSTCk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3htbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkJIC4uLiAuLi4pOwordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hdHJvbkZyZWUiPnhtbFNjaGVtYXRyb25GcmVlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+IHNjaGVtYSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IHNlcnJvciwgPGJyLz4JCQkJCQkgdm9pZCAqIGN0eCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIj54bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uUGFyc2UiPnhtbFNjaGVtYXRyb25QYXJzZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIj54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKKzxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblB0ciI+eG1sU2NoZW1hdHJvblB0cjwvYT4gc2NoZW1hLCA8YnIvPgkJCQkJCQkgaW50IG9wdGlvbnMpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb24iPlN0cnVjdHVyZSA8L2E+eG1sU2NoZW1hdHJvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hdHJvbiB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sU2NoZW1hdHJvbjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCI+U3RydWN0dXJlIDwvYT54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hdHJvblBhcnNlckN0eHQgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dDwvYT4gKiB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uUHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWF0cm9uUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbiI+eG1sU2NoZW1hdHJvbjwvYT4gKiB4bWxTY2hlbWF0cm9uUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZEN0eHQiPlN0cnVjdHVyZSA8L2E+eG1sU2NoZW1hdHJvblZhbGlkQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hdHJvblZhbGlkQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sU2NoZW1hdHJvblZhbGlkQ3R4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvblZhbGlkQ3R4dDwvYT4gKiB4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMiPkVudW0gPC9hPnhtbFNjaGVtYXRyb25WYWxpZE9wdGlvbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zIj54bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05fT1VUX1FVSUVUIj5YTUxfU0NIRU1BVFJPTl9PVVRfUVVJRVQ8L2E+ID0gMSAvKiBxdWlldCBubyByZXBvcnQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVFJPTl9PVVRfVEVYVCI+WE1MX1NDSEVNQVRST05fT1VUX1RFWFQ8L2E+ID0gMiAvKiBidWlsZCBhIHRleHR1YWwgcmVwb3J0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05fT1VUX1hNTCI+WE1MX1NDSEVNQVRST05fT1VUX1hNTDwvYT4gPSA0IC8qIG91dHB1dCBTVlJMICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05fT1VUX0VSUk9SIj5YTUxfU0NIRU1BVFJPTl9PVVRfRVJST1I8L2E+ID0gOCAvKiBvdXRwdXQgdmlhIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVFJPTl9PVVRfRklMRSI+WE1MX1NDSEVNQVRST05fT1VUX0ZJTEU8L2E+ID0gMjU2IC8qIG91dHB1dCB0byBhIGZpbGUgZGVzY3JpcHRvciAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFUUk9OX09VVF9CVUZGRVIiPlhNTF9TQ0hFTUFUUk9OX09VVF9CVUZGRVI8L2E+ID0gNTEyIC8qIG91dHB1dCB0byBhIGJ1ZmZlciAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFUUk9OX09VVF9JTyI+WE1MX1NDSEVNQVRST05fT1VUX0lPPC9hPiA9IDEwMjQgLyogIG91dHB1dCB0byBJL08gbWVjaGFuaXNtICovCit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5TaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhIFNjaGVtYXRyb24gdmFsaWRhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBvZiBhIHdhcm5pbmcgY2FsbGJhY2sgZnJvbSBhIFNjaGVtYXRyb24gdmFsaWRhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25GcmVlIi8+eG1sU2NoZW1hdHJvbkZyZWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYXRyb25GcmVlCQkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblB0ciI+eG1sU2NoZW1hdHJvblB0cjwvYT4gc2NoZW1hKTxici8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIGEgU2NoZW1hdHJvbiBzdHJ1Y3R1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCIvPnhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCIvPnhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dAkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+RnJlZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiLz54bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIj54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjwvYT4JeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgU2NoZW1hdHJvbnMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBkb2N1bWVudC4gTkIuIFRoZSBkb2N1bWVudCBtYXkgYmUgbW9kaWZpZWQgZHVyaW5nIHRoZSBwYXJzaW5nIHByb2Nlc3MuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlcGFyc2VkIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCIvPnhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPgl4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCQkJIGludCBzaXplKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFNjaGVtYXRyb25zIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgbWVtb3J5IGJ1ZmZlciBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBTY2hlbWF0cm9ucyBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5IGNvbnRhaW5pbmcgdGhlIHNjaGVtYXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0Ii8+eG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+CXhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0CShjb25zdCBjaGFyICogVVJMKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFNjaGVtYXRyb25zIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZmlsZS9yZXNvdXJjZSBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBTY2hlbWF0cm9ucyBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYXRpb24gb2YgdGhlIHNjaGVtYTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQiLz54bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0cjwvYT4JeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dAkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblB0ciI+eG1sU2NoZW1hdHJvblB0cjwvYT4gc2NoZW1hLCA8YnIvPgkJCQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgU2NoZW1hdHJvbnMgdmFsaWRhdGlvbiBjb250ZXh0IGJhc2VkIG9uIHRoZSBnaXZlbiBzY2hlbWEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlY29tcGlsZWQgWE1MIFNjaGVtYXRyb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zIj54bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uUGFyc2UiLz54bWxTY2hlbWF0cm9uUGFyc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUHRyIj54bWxTY2hlbWF0cm9uUHRyPC9hPgl4bWxTY2hlbWF0cm9uUGFyc2UJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIj54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYSBzY2hlbWEgZGVmaW5pdGlvbiByZXNvdXJjZSBhbmQgYnVpbGQgYW4gaW50ZXJuYWwgWE1MIFNoZW1hIHN0cnV0dXJlIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHZhbGlkYXRlIGluc3RhbmNlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIFhNTCBTY2hlbWF0cm9uIHN0cnVjdHVyZSBidWlsdCBmcm9tIHRoZSByZXNvdXJjZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIi8+eG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycwkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IHNlcnJvciwgPGJyLz4JCQkJCQkgdm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+U2V0IHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFNjaGVtYXRyb24gdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZXJyb3I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJ1Y3R1cmVkIGVycm9yIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbnMgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYyIvPnhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGluc3RhbmNlKTxici8+Cis8L3ByZT48cD5WYWxpZGF0ZSBhIHRyZWUgaW5zdGFuY2UgYWdhaW5zdCB0aGUgc2NoZW1hdHJvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmluc3RhbmNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgaW5zdGFjZSB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvciBhbmQgYW4gZXJyb3IgY291bnQgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXRocmVhZHMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi10aHJlYWRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRkZDBiYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi10aHJlYWRzLmh0bWwKQEAgLTAsMCArMSwxNjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+dGhyZWFkczogaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnRocmVhZHM8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD50aHJlYWRzIC0gaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nPC9wPgorICAgIDxwPnNldCBvZiBnZW5lcmljIHRocmVhZGluZyByZWxhdGVkIHJvdXRpbmVzIHNob3VsZCB3b3JrIHdpdGggcHRocmVhZHMsIFdpbmRvd3MgbmF0aXZlIG9yIFRMUyB0aHJlYWRzIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIHN0cnVjdCBfeG1sTXV0ZXggPGEgaHJlZj0iI3htbE11dGV4Ij54bWxNdXRleDwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sUk11dGV4IDxhIGhyZWY9IiN4bWxSTXV0ZXgiPnhtbFJNdXRleDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleCI+eG1sUk11dGV4PC9hPiAqIDxhIGhyZWY9IiN4bWxSTXV0ZXhQdHIiPnhtbFJNdXRleFB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbE11dGV4Ij54bWxNdXRleDwvYT4gKiA8YSBocmVmPSIjeG1sTXV0ZXhQdHIiPnhtbE11dGV4UHRyPC9hPjsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVSTXV0ZXgiPnhtbEZyZWVSTXV0ZXg8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spOworaW50CTxhIGhyZWY9IiN4bWxHZXRUaHJlYWRJZCI+eG1sR2V0VGhyZWFkSWQ8L2E+CQkJKHZvaWQpOwordm9pZAk8YSBocmVmPSIjeG1sTXV0ZXhVbmxvY2siPnhtbE11dGV4VW5sb2NrPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk7Cit2b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+CQkodm9pZCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxMb2NrTGlicmFyeSI+eG1sTG9ja0xpYnJhcnk8L2E+CQkJKHZvaWQpOworPGEgaHJlZj0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sUk11dGV4UHRyIj54bWxSTXV0ZXhQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdSTXV0ZXgiPnhtbE5ld1JNdXRleDwvYT4JCSh2b2lkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbE11dGV4TG9jayI+eG1sTXV0ZXhMb2NrPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk7CitpbnQJPGEgaHJlZj0iI3htbElzTWFpblRocmVhZCI+eG1sSXNNYWluVGhyZWFkPC9hPgkJCSh2b2lkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJNdXRleFVubG9jayI+eG1sUk11dGV4VW5sb2NrPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXhQdHIiPnhtbFJNdXRleFB0cjwvYT4gdG9rKTsKKzxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbEdsb2JhbFN0YXRlUHRyIj54bWxHbG9iYWxTdGF0ZVB0cjwvYT4JPGEgaHJlZj0iI3htbEdldEdsb2JhbFN0YXRlIj54bWxHZXRHbG9iYWxTdGF0ZTwvYT4JKHZvaWQpOworPGEgaHJlZj0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sTXV0ZXhQdHIiPnhtbE11dGV4UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3TXV0ZXgiPnhtbE5ld011dGV4PC9hPgkJKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxEbGxNYWluIj54bWxEbGxNYWluPC9hPgkJCSh2b2lkICogaGluc3RETEwsIDxici8+CQkJCQkgdW5zaWduZWQgbG9uZyBmZHdSZWFzb24sIDxici8+CQkJCQkgdm9pZCAqIGxwdlJlc2VydmVkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVNdXRleCI+eG1sRnJlZU11dGV4PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk7Cit2b2lkCTxhIGhyZWY9IiN4bWxVbmxvY2tMaWJyYXJ5Ij54bWxVbmxvY2tMaWJyYXJ5PC9hPgkJKHZvaWQpOwordm9pZAk8YSBocmVmPSIjeG1sSW5pdFRocmVhZHMiPnhtbEluaXRUaHJlYWRzPC9hPgkJCSh2b2lkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJNdXRleExvY2siPnhtbFJNdXRleExvY2s8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE11dGV4Ij5TdHJ1Y3R1cmUgPC9hPnhtbE11dGV4PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxNdXRleCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sTXV0ZXg7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTXV0ZXhQdHIiPlR5cGVkZWYgPC9hPnhtbE11dGV4UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sTXV0ZXgiPnhtbE11dGV4PC9hPiAqIHhtbE11dGV4UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJNdXRleCI+U3RydWN0dXJlIDwvYT54bWxSTXV0ZXg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFJNdXRleCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sUk11dGV4OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJNdXRleFB0ciI+VHlwZWRlZiA8L2E+eG1sUk11dGV4UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sUk11dGV4Ij54bWxSTXV0ZXg8L2E+ICogeG1sUk11dGV4UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENsZWFudXBUaHJlYWRzIi8+eG1sQ2xlYW51cFRocmVhZHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENsZWFudXBUaHJlYWRzCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+eG1sQ2xlYW51cFRocmVhZHMoKSBpcyB1c2VkIHRvIHRvIGNsZWFudXAgYWxsIHRoZSB0aHJlYWQgcmVsYXRlZCBkYXRhIG9mIHRoZSBsaWJ4bWwyIGxpYnJhcnkgb25jZSBwcm9jZXNzaW5nIGhhcyBlbmRlZC4gV0FSTklORzogaWYgeW91ciBhcHBsaWNhdGlvbiBpcyBtdWx0aXRocmVhZGVkIG9yIGhhcyBwbHVnaW4gc3VwcG9ydCBjYWxsaW5nIHRoaXMgbWF5IGNyYXNoIHRoZSBhcHBsaWNhdGlvbiBpZiBhbm90aGVyIHRocmVhZCBvciBhIHBsdWdpbiBpcyBzdGlsbCB1c2luZyBsaWJ4bWwyLiBJdCdzIHNvbWV0aW1lcyB2ZXJ5IGhhcmQgdG8gZ3Vlc3MgaWYgbGlieG1sMiBpcyBpbiB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLCBzb21lIGxpYnJhcmllcyBvciBwbHVnaW5zIG1heSB1c2UgaXQgd2l0aG91dCBub3RpY2UuIEluIGNhc2Ugb2YgZG91YnQgYWJzdGFpbiBmcm9tIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBvciBkbyBpdCBqdXN0IGJlZm9yZSBjYWxsaW5nIGV4aXQoKSB0byBhdm9pZCBsZWFrIHJlcG9ydHMgZnJvbSB2YWxncmluZCAhPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERsbE1haW4iLz54bWxEbGxNYWluICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERsbE1haW4JCQkodm9pZCAqIGhpbnN0RExMLCA8YnIvPgkJCQkJIHVuc2lnbmVkIGxvbmcgZmR3UmVhc29uLCA8YnIvPgkJCQkJIHZvaWQgKiBscHZSZXNlcnZlZCk8YnIvPgorPC9wcmU+PHAvPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oaW5zdERMTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZkd1JlYXNvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxwdlJlc2VydmVkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQvPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlTXV0ZXgiLz54bWxGcmVlTXV0ZXggKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVNdXRleAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk8YnIvPgorPC9wcmU+PHA+eG1sRnJlZU11dGV4KCkgaXMgdXNlZCB0byByZWNsYWltIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggYSBsaWJ4bWwyIHRva2VuIHN0cnVjdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpbXBsZSBtdXRleDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVSTXV0ZXgiLz54bWxGcmVlUk11dGV4ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlUk11dGV4CQkJKDxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spPGJyLz4KKzwvcHJlPjxwPnhtbFJGcmVlTXV0ZXgoKSBpcyB1c2VkIHRvIHJlY2xhaW0gcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIHJlZW50cmFudCBtdXRleC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlZW50cmFudCBtdXRleDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldEdsb2JhbFN0YXRlIi8+eG1sR2V0R2xvYmFsU3RhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxHbG9iYWxTdGF0ZVB0ciI+eG1sR2xvYmFsU3RhdGVQdHI8L2E+CXhtbEdldEdsb2JhbFN0YXRlCSh2b2lkKTxici8+Cis8L3ByZT48cD54bWxHZXRHbG9iYWxTdGF0ZSgpIGlzIGNhbGxlZCB0byByZXRyaWV2ZSB0aGUgZ2xvYmFsIHN0YXRlIGZvciBhIHRocmVhZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0aHJlYWQgZ2xvYmFsIHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldFRocmVhZElkIi8+eG1sR2V0VGhyZWFkSWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2V0VGhyZWFkSWQJCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+eG1sR2V0VGhyZWFkSWQoKSBmaW5kIHRoZSBjdXJyZW50IHRocmVhZCBJRCBudW1iZXIgTm90ZSB0aGF0IHRoaXMgaXMgbGlrZWx5IHRvIGJlIGJyb2tlbiBvbiBzb21lIHBsYXRmb3JtcyB1c2luZyBwdGhyZWFkcyBhcyB0aGUgc3BlY2lmaWNhdGlvbiBkb2Vzbid0IG1hbmRhdGUgcHRocmVhZF90IHRvIGJlIGFuIGludGVnZXIgdHlwZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgdGhyZWFkIElEIG51bWJlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEluaXRUaHJlYWRzIi8+eG1sSW5pdFRocmVhZHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEluaXRUaHJlYWRzCQkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPnhtbEluaXRUaHJlYWRzKCkgaXMgdXNlZCB0byB0byBpbml0aWFsaXplIGFsbCB0aGUgdGhyZWFkIHJlbGF0ZWQgZGF0YSBvZiB0aGUgbGlieG1sMiBsaWJyYXJ5LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc01haW5UaHJlYWQiLz54bWxJc01haW5UaHJlYWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNNYWluVGhyZWFkCQkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPnhtbElzTWFpblRocmVhZCgpIGNoZWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgdGhyZWFkIGlzIHRoZSBtYWluIHRocmVhZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIGN1cnJlbnQgdGhyZWFkIGlzIHRoZSBtYWluIHRocmVhZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMb2NrTGlicmFyeSIvPnhtbExvY2tMaWJyYXJ5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMb2NrTGlicmFyeQkJCSh2b2lkKTxici8+Cis8L3ByZT48cD54bWxMb2NrTGlicmFyeSgpIGlzIHVzZWQgdG8gdGFrZSBvdXQgYSByZS1lbnRyYW50IGxvY2sgb24gdGhlIGxpYnhtbDIgbGlicmFyeS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTXV0ZXhMb2NrIi8+eG1sTXV0ZXhMb2NrICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxNdXRleExvY2sJCQkoPGEgaHJlZj0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sTXV0ZXhQdHIiPnhtbE11dGV4UHRyPC9hPiB0b2spPGJyLz4KKzwvcHJlPjxwPnhtbE11dGV4TG9jaygpIGlzIHVzZWQgdG8gbG9jayBhIGxpYnhtbDIgdG9rZW4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaW1wbGUgbXV0ZXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNdXRleFVubG9jayIvPnhtbE11dGV4VW5sb2NrICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxNdXRleFVubG9jawkJCSg8YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk8YnIvPgorPC9wcmU+PHA+eG1sTXV0ZXhVbmxvY2soKSBpcyB1c2VkIHRvIHVubG9jayBhIGxpYnhtbDIgdG9rZW4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaW1wbGUgbXV0ZXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdNdXRleCIvPnhtbE5ld011dGV4ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sTXV0ZXhQdHIiPnhtbE11dGV4UHRyPC9hPgl4bWxOZXdNdXRleAkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPnhtbE5ld011dGV4KCkgaXMgdXNlZCB0byBhbGxvY2F0ZSBhIGxpYnhtbDIgdG9rZW4gc3RydWN0IGZvciB1c2UgaW4gc3luY2hyb25pemluZyBhY2Nlc3MgdG8gZGF0YS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IHNpbXBsZSBtdXRleCBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1JNdXRleCIvPnhtbE5ld1JNdXRleCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPgl4bWxOZXdSTXV0ZXgJCSh2b2lkKTxici8+Cis8L3ByZT48cD54bWxSTmV3TXV0ZXgoKSBpcyB1c2VkIHRvIGFsbG9jYXRlIGEgcmVlbnRyYW50IG11dGV4IGZvciB1c2UgaW4gc3luY2hyb25pemluZyBhY2Nlc3MgdG8gZGF0YS4gdG9rZW5fciBpcyBhIHJlLWVudHJhbnQgbG9jayBhbmQgdGh1cyB1c2VmdWwgZm9yIHN5bmNocm9uaXppbmcgYWNjZXNzIHRvIGRhdGEgc3RydWN0dXJlcyB0aGF0IG1heSBiZSBtYW5pcHVsYXRlZCBpbiBhIHJlY3Vyc2l2ZSBmYXNoaW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyByZWVudHJhbnQgbXV0ZXggcG9pbnRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSTXV0ZXhMb2NrIi8+eG1sUk11dGV4TG9jayAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUk11dGV4TG9jawkJCSg8YSBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXhQdHIiPnhtbFJNdXRleFB0cjwvYT4gdG9rKTxici8+Cis8L3ByZT48cD54bWxSTXV0ZXhMb2NrKCkgaXMgdXNlZCB0byBsb2NrIGEgbGlieG1sMiB0b2tlbl9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVlbnRyYW50IG11dGV4PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUk11dGV4VW5sb2NrIi8+eG1sUk11dGV4VW5sb2NrICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSTXV0ZXhVbmxvY2sJCQkoPGEgaHJlZj0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sUk11dGV4UHRyIj54bWxSTXV0ZXhQdHI8L2E+IHRvayk8YnIvPgorPC9wcmU+PHA+eG1sUk11dGV4VW5sb2NrKCkgaXMgdXNlZCB0byB1bmxvY2sgYSBsaWJ4bWwyIHRva2VuX3IuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWVudHJhbnQgbXV0ZXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVbmxvY2tMaWJyYXJ5Ii8+eG1sVW5sb2NrTGlicmFyeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sVW5sb2NrTGlicmFyeQkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPnhtbFVubG9ja0xpYnJhcnkoKSBpcyB1c2VkIHRvIHJlbGVhc2UgYSByZS1lbnRyYW50IGxvY2sgb24gdGhlIGxpYnhtbDIgbGlicmFyeS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItdHJlZS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzI1NGEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXRyZWUuaHRtbApAQCAtMCwwICsxLDE1NDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+dHJlZTogaW50ZXJmYWNlcyBmb3IgdHJlZSBtYW5pcHVsYXRpb248L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj50cmVlPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+dHJlZSAtIGludGVyZmFjZXMgZm9yIHRyZWUgbWFuaXB1bGF0aW9uPC9wPgorICAgIDxwPnRoaXMgbW9kdWxlIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlcyBmb3VuZCBpbiBhbiB0cmVlIHJlc3VsdGluZyBmcm9tIGFuIFhNTCBvciBIVE1MIHBhcnNpbmcsIGFzIHdlbGwgYXMgdGhlIEFQSSBwcm92aWRlZCBmb3IgdmFyaW91cyBwcm9jZXNzaW5nIG9uIHRoYXQgdHJlZSA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0xPQ0FMX05BTUVTUEFDRSI+WE1MX0xPQ0FMX05BTUVTUEFDRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfWE1MX05BTUVTUEFDRSI+WE1MX1hNTF9OQU1FU1BBQ0U8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1hNTF9JRCI+WE1MX1hNTF9JRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxSb290Tm9kZSI+eG1sUm9vdE5vZGU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX0dFVF9MSU5FIj5YTUxfR0VUX0xJTkU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX0dFVF9DT05URU5UIj5YTUxfR0VUX0NPTlRFTlQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjeG1sQ2hpbGRyZW5Ob2RlIj54bWxDaGlsZHJlbk5vZGU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjQkFTRV9CVUZGRVJfU0laRSI+QkFTRV9CVUZGRVJfU0laRTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sTnMgPGEgaHJlZj0iI3htbE5zIj54bWxOczwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlciI+eG1sQnVmZmVyPC9hPiAqIDxhIGhyZWY9IiN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uIj54bWxFbnVtZXJhdGlvbjwvYT4gKiA8YSBocmVmPSIjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxCdWZmZXIgPGEgaHJlZj0iI3htbEJ1ZmZlciI+eG1sQnVmZmVyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPiAqIDxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhMb2NhdG9yIj54bWxTQVhMb2NhdG9yPC9hPiAqIDxhIGhyZWY9IiN4bWxTQVhMb2NhdG9yUHRyIj54bWxTQVhMb2NhdG9yUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxQYXJzZXJJbnB1dCA8YSBocmVmPSIjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxFbGVtZW50IDxhIGhyZWY9IiN4bWxFbGVtZW50Ij54bWxFbGVtZW50PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPiA8YSBocmVmPSIjeG1sTnNUeXBlIj54bWxOc1R5cGU8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxOb2RlIDxhIGhyZWY9IiN4bWxOb2RlIj54bWxOb2RlPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jIj54bWxEb2M8L2E+ICogPGEgaHJlZj0iI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxFbGVtZW50Q29udGVudCA8YSBocmVmPSIjeG1sRWxlbWVudENvbnRlbnQiPnhtbEVsZW1lbnRDb250ZW50PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHQiPnhtbERPTVdyYXBDdHh0PC9hPiAqIDxhIGhyZWY9IiN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxSZWYiPnhtbFJlZjwvYT4gKiA8YSBocmVmPSIjeG1sUmVmUHRyIj54bWxSZWZQdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFBhcnNlcklucHV0QnVmZmVyIDxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sUGFyc2VySW5wdXRCdWZmZXI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlZiA8YSBocmVmPSIjeG1sUmVmIj54bWxSZWY8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbERPTVdyYXBDdHh0IDxhIGhyZWY9IiN4bWxET01XcmFwQ3R4dCI+eG1sRE9NV3JhcEN0eHQ8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlIj54bWxOb2RlPC9hPiAqIDxhIGhyZWY9IiN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxQYXJzZXJDdHh0IDxhIGhyZWY9IiN4bWxQYXJzZXJDdHh0Ij54bWxQYXJzZXJDdHh0PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkIj54bWxEdGQ8L2E+ICogPGEgaHJlZj0iI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sQXR0cmlidXRlRGVmYXVsdCI+eG1sQXR0cmlidXRlRGVmYXVsdDwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sTm90YXRpb24gPGEgaHJlZj0iI3htbE5vdGF0aW9uIj54bWxOb3RhdGlvbjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sRW50aXR5IDxhIGhyZWY9IiN4bWxFbnRpdHkiPnhtbEVudGl0eTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sQXR0ciA8YSBocmVmPSIjeG1sQXR0ciI+eG1sQXR0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZSI+eG1sQXR0cmlidXRlPC9hPiAqIDxhIGhyZWY9IiN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbEVsZW1lbnRUeXBlVmFsIj54bWxFbGVtZW50VHlwZVZhbDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vdGF0aW9uIj54bWxOb3RhdGlvbjwvYT4gKiA8YSBocmVmPSIjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudCI+eG1sRWxlbWVudDwvYT4gKiA8YSBocmVmPSIjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbEVsZW1lbnRDb250ZW50T2NjdXIiPnhtbEVsZW1lbnRDb250ZW50T2NjdXI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyIj54bWxBdHRyPC9hPiAqIDxhIGhyZWY9IiN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxEb2MgPGEgaHJlZj0iI3htbERvYyI+eG1sRG9jPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxJRCA8YSBocmVmPSIjeG1sSUQiPnhtbElEPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dCI+eG1sUGFyc2VyQ3R4dDwvYT4gKiA8YSBocmVmPSIjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudGl0eSI+eG1sRW50aXR5PC9hPiAqIDxhIGhyZWY9IiN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sRW51bWVyYXRpb24gPGEgaHJlZj0iI3htbEVudW1lcmF0aW9uIj54bWxFbnVtZXJhdGlvbjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbEF0dHJpYnV0ZVR5cGUiPnhtbEF0dHJpYnV0ZVR5cGU8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOcyI+eG1sTnM8L2E+ICogPGEgaHJlZj0iI3htbE5zUHRyIj54bWxOc1B0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlcjwvYT4gKiA8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxTQVhIYW5kbGVyIDxhIGhyZWY9IiN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxPdXRwdXRCdWZmZXIgPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxTQVhMb2NhdG9yIDxhIGhyZWY9IiN4bWxTQVhMb2NhdG9yIj54bWxTQVhMb2NhdG9yPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnQiPnhtbEVsZW1lbnRDb250ZW50PC9hPiAqIDxhIGhyZWY9IiN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbERvY1Byb3BlcnRpZXMiPnhtbERvY1Byb3BlcnRpZXM8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxJRCI+eG1sSUQ8L2E+ICogPGEgaHJlZj0iI3htbElEUHRyIj54bWxJRFB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sRHRkIDxhIGhyZWY9IiN4bWxEdGQiPnhtbER0ZDwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sQXR0cmlidXRlIDxhIGhyZWY9IiN4bWxBdHRyaWJ1dGUiPnhtbEF0dHJpYnV0ZTwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyPC9hPiAqIDxhIGhyZWY9IiN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+ICogPGEgaHJlZj0iI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+OworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbERvY0NvcHlOb2RlIj54bWxEb2NDb3B5Tm9kZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IGV4dGVuZGVkKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NSYXdOb2RlIj54bWxOZXdEb2NSYXdOb2RlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sR2V0UHJvcCI+eG1sR2V0UHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdOc1Byb3BFYXROYW1lIj54bWxOZXdOc1Byb3BFYXROYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3Q0RhdGFCbG9jayI+eG1sTmV3Q0RhdGFCbG9jazwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxCdWZmZXJXcml0ZUNIQVIiPnhtbEJ1ZmZlcldyaXRlQ0hBUjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHJpbmcpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sQnVmZmVyRW1wdHkiPnhtbEJ1ZmZlckVtcHR5PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQnVpbGRRTmFtZSI+eG1sQnVpbGRRTmFtZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmNuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1lbW9yeSwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sU2F2ZUZvcm1hdEZpbGVFbmMiPnhtbFNhdmVGb3JtYXRGaWxlRW5jPC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgZm9ybWF0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGRTaWJsaW5nIj54bWxBZGRTaWJsaW5nPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sQnVmZmVyQ3JlYXRlIj54bWxCdWZmZXJDcmVhdGU8L2E+CQkodm9pZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RG9jRnJhZ21lbnQiPnhtbE5ld0RvY0ZyYWdtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRG9jR2V0Um9vdEVsZW1lbnQiPnhtbERvY0dldFJvb3RFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU5hbWUiPnhtbFZhbGlkYXRlTmFtZTwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIGludCBzcGFjZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4gc2NoZW1lKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVRTmFtZSI+eG1sVmFsaWRhdGVRTmFtZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgaW50IHNwYWNlKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lU3BhY2UpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEFkZFByZXZTaWJsaW5nIj54bWxBZGRQcmV2U2libGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTsKK2ludAk8YSBocmVmPSIjeG1sQnVmZmVyQWRkSGVhZCI+eG1sQnVmZmVyQWRkSGVhZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkgaW50IGxlbik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3UEkiPnhtbE5ld1BJPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK3ZvaWQJPGEgaHJlZj0iI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gb3V0X2RvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGRvY190eHRfcHRyLCA8YnIvPgkJCQkJIGludCAqIGRvY190eHRfbGVuLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiB0eHRfZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IGZvcm1hdCk7Cit1bnNpZ25lZCBsb25nCTxhIGhyZWY9IiN4bWxDaGlsZEVsZW1lbnRDb3VudCI+eG1sQ2hpbGRFbGVtZW50Q291bnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpOwordm9pZAk8YSBocmVmPSIjeG1sRWxlbUR1bXAiPnhtbEVsZW1EdW1wPC9hPgkJCShGSUxFICogZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik7CitpbnQJPGEgaHJlZj0iI3htbFNhdmVGb3JtYXRGaWxlVG8iPnhtbFNhdmVGb3JtYXRGaWxlVG88L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgZm9ybWF0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0SW50U3Vic2V0Ij54bWxHZXRJbnRTdWJzZXQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7CitpbnQJPGEgaHJlZj0iI3htbE5vZGVCdWZHZXRDb250ZW50Ij54bWxOb2RlQnVmR2V0Q29udGVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmZmVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV4dEVsZW1lbnRTaWJsaW5nIj54bWxOZXh0RWxlbWVudFNpYmxpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEJ1ZmZlcldyaXRlQ2hhciI+eG1sQnVmZmVyV3JpdGVDaGFyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHN0cmluZyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxCdWZmZXJGcmVlIj54bWxCdWZmZXJGcmVlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmKTsKK2ludAk8YSBocmVmPSIjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IHNvdXJjZURvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogcmVzTm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZGVzdERvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBkZXN0UGFyZW50LCA8YnIvPgkJCQkJIGludCBkZWVwLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdOb2RlIj54bWxOZXdOb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxTYXZlRmlsZVRvIj54bWxTYXZlRmlsZVRvPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdUZXh0TGVuIj54bWxOZXdUZXh0TGVuPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIvPgkJCQkJIGludCBsZW4pOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRDaGlsZCI+eG1sTmV3VGV4dENoaWxkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK3ZvaWQJPGEgaHJlZj0iI3htbE5vZGVTZXRDb250ZW50Ij54bWxOb2RlU2V0Q29udGVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpOworaW50CTxhIGhyZWY9IiN4bWxCdWZmZXJBZGQiPnhtbEJ1ZmZlckFkZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGludCBsZW4pOwordm9pZAk8YSBocmVmPSIjeG1sTm9kZUR1bXBPdXRwdXQiPnhtbE5vZGVEdW1wT3V0cHV0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgaW50IGxldmVsLCA8YnIvPgkJCQkJIGludCBmb3JtYXQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlOYW1lc3BhY2UiPnhtbENvcHlOYW1lc3BhY2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IGN1cik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CTxhIGhyZWY9IiN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGhyZWYpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEFkZENoaWxkIj54bWxBZGRDaGlsZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTsKK2ludAk8YSBocmVmPSIjeG1sUmVjb25jaWxpYXRlTnMiPnhtbFJlY29uY2lsaWF0ZU5zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdHJlZSk7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlTkNOYW1lIj54bWxWYWxpZGF0ZU5DTmFtZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgaW50IHNwYWNlKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NDb21tZW50Ij54bWxOZXdEb2NDb21tZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbEdldENvbXByZXNzTW9kZSI+eG1sR2V0Q29tcHJlc3NNb2RlPC9hPgkJKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxOb2RlRHVtcCI+eG1sTm9kZUR1bXA8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgaW50IGxldmVsLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxCdWZmZXJDcmVhdGVTaXplIj54bWxCdWZmZXJDcmVhdGVTaXplPC9hPgkoc2l6ZV90IHNpemUpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOb2RlTGlzdEdldFN0cmluZyI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGxpc3QsIDxici8+CQkJCQkgaW50IGluTGluZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTZXRDb21wcmVzc01vZGUiPnhtbFNldENvbXByZXNzTW9kZTwvYT4JCShpbnQgbW9kZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTZXRUcmVlRG9jIj54bWxTZXRUcmVlRG9jPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOworaW50CTxhIGhyZWY9IiN4bWxET01XcmFwQWRvcHROb2RlIj54bWxET01XcmFwQWRvcHROb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gc291cmNlRG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRlc3REb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZGVzdFBhcmVudCwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weU5vZGVMaXN0Ij54bWxDb3B5Tm9kZUxpc3Q8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RG9jTm9kZUVhdE5hbWUiPnhtbE5ld0RvY05vZGVFYXROYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGRDaGlsZExpc3QiPnhtbEFkZENoaWxkTGlzdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sR2V0Tm9kZVBhdGgiPnhtbEdldE5vZGVQYXRoPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZVByb3BMaXN0Ij54bWxGcmVlUHJvcExpc3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGN1cik7Cit2b2lkCTxhIGhyZWY9IiN4bWxOb2RlQWRkQ29udGVudCI+eG1sTm9kZUFkZENvbnRlbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK2ludAk8YSBocmVmPSIjeG1sVW5zZXROc1Byb3AiPnhtbFVuc2V0TnNQcm9wPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEZpcnN0RWxlbWVudENoaWxkIj54bWxGaXJzdEVsZW1lbnRDaGlsZDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkTmV4dFNpYmxpbmciPnhtbEFkZE5leHRTaWJsaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pOworaW50CTxhIGhyZWY9IiN4bWxJc0JsYW5rTm9kZSI+eG1sSXNCbGFua05vZGU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGhyZWYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk7CitpbnQJPGEgaHJlZj0iI3htbEJ1ZmZlckR1bXAiPnhtbEJ1ZmZlckR1bXA8L2E+CQkJKEZJTEUgKiBmaWxlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOb2RlR2V0Q29udGVudCI+eG1sTm9kZUdldENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5RG9jIj54bWxDb3B5RG9jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IHJlY3Vyc2l2ZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxET01XcmFwTmV3Q3R4dCI+eG1sRE9NV3JhcE5ld0N0eHQ8L2E+CSh2b2lkKTsKK3ZvaWQJPGEgaHJlZj0iI3htbERvY0R1bXBNZW1vcnlFbmMiPnhtbERvY0R1bXBNZW1vcnlFbmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IG91dF9kb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBkb2NfdHh0X3B0ciwgPGJyLz4JCQkJCSBpbnQgKiBkb2NfdHh0X2xlbiwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogdHh0X2VuY29kaW5nKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxUZXh0TWVyZ2UiPnhtbFRleHRNZXJnZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBmaXJzdCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzZWNvbmQpOwordm9pZAk8YSBocmVmPSIjeG1sRG9jRHVtcE1lbW9yeSI+eG1sRG9jRHVtcE1lbW9yeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbWVtLCA8YnIvPgkJCQkJIGludCAqIHNpemUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0RvY1BJIj54bWxOZXdEb2NQSTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVOcyI+eG1sRnJlZU5zPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IGN1cik7CitpbnQJPGEgaHJlZj0iI3htbERvY0R1bXAiPnhtbERvY0R1bXA8L2E+CQkJKEZJTEUgKiBmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZVByb3AiPnhtbEZyZWVQcm9wPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxHZXROb05zUHJvcCI+eG1sR2V0Tm9Oc1Byb3A8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHByZWZpeCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3UHJvcCI+eG1sTmV3UHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRDb25jYXQiPnhtbFRleHRDb25jYXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOworaW50CTxhIGhyZWY9IiN4bWxCdWZmZXJTaHJpbmsiPnhtbEJ1ZmZlclNocmluazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSB1bnNpZ25lZCBpbnQgbGVuKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIj54bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxOb2RlU2V0Q29udGVudExlbiI+eG1sTm9kZVNldENvbnRlbnRMZW48L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIvPgkJCQkJIGludCBsZW4pOwordm9pZAk8YSBocmVmPSIjeG1sTm9kZUFkZENvbnRlbnRMZW4iPnhtbE5vZGVBZGRDb250ZW50TGVuPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cmluZyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weVByb3AiPnhtbENvcHlQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRhcmdldCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFJlcGxhY2VOb2RlIj54bWxSZXBsYWNlTm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBvbGQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNldERvY0NvbXByZXNzTW9kZSI+eG1sU2V0RG9jQ29tcHJlc3NNb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IG1vZGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlOb2RlIj54bWxDb3B5Tm9kZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGludCBleHRlbmRlZCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxVbmxpbmtOb2RlIj54bWxVbmxpbmtOb2RlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50ICogbGVuKTsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiA8YSBocmVmPSIjeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIj54bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc05hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc1ByZWZpeCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRG9jU2V0Um9vdEVsZW1lbnQiPnhtbERvY1NldFJvb3RFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiByb290KTsKK2xvbmcJPGEgaHJlZj0iI3htbEdldExpbmVObyI+eG1sR2V0TGluZU5vPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQnVmZmVyQ29udGVudCI+eG1sQnVmZmVyQ29udGVudDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYpOworaW50CTxhIGhyZWY9IiN4bWxSZW1vdmVQcm9wIj54bWxSZW1vdmVQcm9wPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOb2RlR2V0TGFuZyI+eG1sTm9kZUdldExhbmc8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTsKK2ludAk8YSBocmVmPSIjeG1sR2V0RG9jQ29tcHJlc3NNb2RlIj54bWxHZXREb2NDb21wcmVzc01vZGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbEdldE5zUHJvcCI+eG1sR2V0TnNQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVTcGFjZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RG9jUHJvcCI+eG1sTmV3RG9jUHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlTm9kZSI+eG1sRnJlZU5vZGU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3TnNQcm9wIj54bWxOZXdOc1Byb3A8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxET01XcmFwRnJlZUN0eHQiPnhtbERPTVdyYXBGcmVlQ3R4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU5NVG9rZW4iPnhtbFZhbGlkYXRlTk1Ub2tlbjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgaW50IHNwYWNlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+IHNjaGVtZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3Q2hpbGQiPnhtbE5ld0NoaWxkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JPGEgaHJlZj0iI3htbFNlYXJjaE5zIj54bWxTZWFyY2hOczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVTcGFjZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0xlbkdldE5vZGVMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBpbnQgZm9ybWF0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5UHJvcExpc3QiPnhtbENvcHlQcm9wTGlzdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0YXJnZXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gY3VyKTsKK2ludAk8YSBocmVmPSIjeG1sRG9jRm9ybWF0RHVtcCI+eG1sRG9jRm9ybWF0RHVtcDwvYT4JCShGSUxFICogZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpOwordm9pZAk8YSBocmVmPSIjeG1sTm9kZVNldFNwYWNlUHJlc2VydmUiPnhtbE5vZGVTZXRTcGFjZVByZXNlcnZlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBpbnQgdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxCdWZmZXJDYXQiPnhtbEJ1ZmZlckNhdDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlSW50U3Vic2V0Ij54bWxDcmVhdGVJbnRTdWJzZXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0RvYyI+eG1sTmV3RG9jPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2ZXJzaW9uKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdDaGFyUmVmIj54bWxOZXdDaGFyUmVmPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weU5hbWVzcGFjZUxpc3QiPnhtbENvcHlOYW1lc3BhY2VMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld05vZGVFYXROYW1lIj54bWxOZXdOb2RlRWF0TmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxCdWZmZXJSZXNpemUiPnhtbEJ1ZmZlclJlc2l6ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSB1bnNpZ25lZCBpbnQgc2l6ZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxOb2RlU2V0QmFzZSI+eG1sTm9kZVNldEJhc2U8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXJpKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdDb21tZW50Ij54bWxOZXdDb21tZW50PC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK2ludAk8YSBocmVmPSIjeG1sQnVmZmVyTGVuZ3RoIj54bWxCdWZmZXJMZW5ndGg8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHQiPnhtbE5ld1RleHQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpOworaW50CTxhIGhyZWY9IiN4bWxVbnNldFByb3AiPnhtbFVuc2V0UHJvcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPgk8YSBocmVmPSIjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4JKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxTYXZlRmlsZSI+eG1sU2F2ZUZpbGU8L2E+CQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxEb2NDb3B5Tm9kZUxpc3QiPnhtbERvY0NvcHlOb2RlTGlzdDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTZXROcyI+eG1sU2V0TnM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdOcyI+eG1sTmV3TnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTsKK2ludAk8YSBocmVmPSIjeG1sRE9NV3JhcFJlbW92ZU5vZGUiPnhtbERPTVdyYXBSZW1vdmVOb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOwordm9pZAk8YSBocmVmPSIjeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQiPnhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cmluZyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlEdGQiPnhtbENvcHlEdGQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RG9jVGV4dCI+eG1sTmV3RG9jVGV4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBsaXN0LCA8YnIvPgkJCQkJIGludCBpbkxpbmUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxCdWZmZXJDcmVhdGVTdGF0aWMiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT4JKHZvaWQgKiBtZW0sIDxici8+CQkJCQkgc2l6ZV90IHNpemUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1JlZmVyZW5jZSI+eG1sTmV3UmVmZXJlbmNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI3htbEJ1ZmZlckNDYXQiPnhtbEJ1ZmZlckNDYXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHN0cik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+ICoJPGEgaHJlZj0iI3htbEdldE5zTGlzdCI+eG1sR2V0TnNMaXN0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7CitpbnQJPGEgaHJlZj0iI3htbEJ1ZmZlckdyb3ciPnhtbEJ1ZmZlckdyb3c8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgdW5zaWduZWQgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbE5vZGVJc1RleHQiPnhtbE5vZGVJc1RleHQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JPGEgaHJlZj0iI3htbFNldFByb3AiPnhtbFNldFByb3A8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOworaW50CTxhIGhyZWY9IiN4bWxJc1hIVE1MIj54bWxJc1hIVE1MPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lEKTsKK3ZvaWQJPGEgaHJlZj0iI3htbE5vZGVTZXRMYW5nIj54bWxOb2RlU2V0TGFuZzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsYW5nKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVEdGQiPnhtbEZyZWVEdGQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZU5vZGVMaXN0Ij54bWxGcmVlTm9kZUxpc3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlRG9jIj54bWxGcmVlRG9jPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NOb2RlIj54bWxOZXdEb2NOb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFNhdmVGaWxlRW5jIj54bWxTYXZlRmlsZUVuYzwvYT4JCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxTZXROc1Byb3AiPnhtbFNldE5zUHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbERvY0R1bXBGb3JtYXRNZW1vcnkiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnk8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG1lbSwgPGJyLz4JCQkJCSBpbnQgKiBzaXplLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpOwordm9pZAk8YSBocmVmPSIjeG1sU2V0TGlzdERvYyI+eG1sU2V0TGlzdERvYzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbGlzdCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKK3ZvaWQJPGEgaHJlZj0iI3htbE5vZGVTZXROYW1lIj54bWxOb2RlU2V0TmFtZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NUZXh0TGVuIj54bWxOZXdEb2NUZXh0TGVuPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RHRkIj54bWxOZXdEdGQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZU5zTGlzdCI+eG1sRnJlZU5zTGlzdDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEdldExhc3RDaGlsZCI+eG1sR2V0TGFzdENoaWxkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iQkFTRV9CVUZGRVJfU0laRSI+TWFjcm8gPC9hPkJBU0VfQlVGRkVSX1NJWkU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNCQVNFX0JVRkZFUl9TSVpFIj5CQVNFX0JVRkZFUl9TSVpFPC9hPjsKKzwvcHJlPjxwPmRlZmF1bHQgYnVmZmVyIHNpemUgNDAwMC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX0dFVF9DT05URU5UIj5NYWNybyA8L2E+WE1MX0dFVF9DT05URU5UPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0dFVF9DT05URU5UIj5YTUxfR0VUX0NPTlRFTlQ8L2E+OworPC9wcmU+PHA+TWFjcm8gdG8gZXh0cmFjdCB0aGUgY29udGVudCBwb2ludGVyIG9mIGEgbm9kZS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX0dFVF9MSU5FIj5NYWNybyA8L2E+WE1MX0dFVF9MSU5FPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0dFVF9MSU5FIj5YTUxfR0VUX0xJTkU8L2E+OworPC9wcmU+PHA+TWFjcm8gdG8gZXh0cmFjdCB0aGUgbGluZSBudW1iZXIgb2YgYW4gZWxlbWVudCBub2RlLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfTE9DQUxfTkFNRVNQQUNFIj5NYWNybyA8L2E+WE1MX0xPQ0FMX05BTUVTUEFDRTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9MT0NBTF9OQU1FU1BBQ0UiPlhNTF9MT0NBTF9OQU1FU1BBQ0U8L2E+OworPC9wcmU+PHA+QSBuYW1lc3BhY2UgZGVjbGFyYXRpb24gbm9kZS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1hNTF9JRCI+TWFjcm8gPC9hPlhNTF9YTUxfSUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfWE1MX0lEIj5YTUxfWE1MX0lEPC9hPjsKKzwvcHJlPjxwPlRoaXMgaXMgdGhlIG5hbWUgZm9yIHRoZSBzcGVjaWFsIHhtbDppZCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfWE1MX05BTUVTUEFDRSI+TWFjcm8gPC9hPlhNTF9YTUxfTkFNRVNQQUNFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1hNTF9OQU1FU1BBQ0UiPlhNTF9YTUxfTkFNRVNQQUNFPC9hPjsKKzwvcHJlPjxwPlRoaXMgaXMgdGhlIG5hbWVzcGFjZSBmb3IgdGhlIHNwZWNpYWwgeG1sOiBwcmVmaXggcHJlZGVmaW5lZCBpbiB0aGUgWE1MIE5hbWVzcGFjZSBzcGVjaWZpY2F0aW9uLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaGlsZHJlbk5vZGUiPk1hY3JvIDwvYT54bWxDaGlsZHJlbk5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxDaGlsZHJlbk5vZGUiPnhtbENoaWxkcmVuTm9kZTwvYT47Cis8L3ByZT48cD5NYWNybyBmb3IgY29tcGF0aWJpbGl0eSBuYW1pbmcgbGF5ZXIgd2l0aCBsaWJ4bWwxLiBNYXBzIHRvICJjaGlsZHJlbi4iPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJvb3ROb2RlIj5NYWNybyA8L2E+eG1sUm9vdE5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxSb290Tm9kZSI+eG1sUm9vdE5vZGU8L2E+OworPC9wcmU+PHA+TWFjcm8gZm9yIGNvbXBhdGliaWxpdHkgbmFtaW5nIGxheWVyIHdpdGggbGlieG1sMS4gTWFwcyB0byAiY2hpbGRyZW4iLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdHRyIj5TdHJ1Y3R1cmUgPC9hPnhtbEF0dHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEF0dHIgeworICAgIHZvaWQgKglfcHJpdmF0ZQk6IGFwcGxpY2F0aW9uIGRhdGEKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZSI+eG1sRWxlbWVudFR5cGU8L2E+CXR5cGUJOiBYTUxfQVRUUklCVVRFX05PREUsIG11c3QgYmUgc2Vjb25kICEKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgIHN0cnVjdCBfeG1sTm9kZSAqCWNoaWxkcmVuCTogdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eQorICAgIHN0cnVjdCBfeG1sTm9kZSAqCWxhc3QJOiBOVUxMCisgICAgc3RydWN0IF94bWxOb2RlICoJcGFyZW50CTogY2hpbGQtJmd0O3BhcmVudCBsaW5rCisgICAgc3RydWN0IF94bWxBdHRyICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxBdHRyICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOcyI+eG1sTnM8L2E+ICoJbnMJOiBwb2ludGVyIHRvIHRoZSBhc3NvY2lhdGVkIG5hbWVzcGFjZQorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZVR5cGUiPnhtbEF0dHJpYnV0ZVR5cGU8L2E+CWF0eXBlCTogdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUgaWYgdmFsaWRhdGluZworICAgIHZvaWQgKglwc3ZpCTogZm9yIHR5cGUvUFNWSSBpbmZvcm1hdGlvbnMKK30geG1sQXR0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdHRyUHRyIj5UeXBlZGVmIDwvYT54bWxBdHRyUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0ciI+eG1sQXR0cjwvYT4gKiB4bWxBdHRyUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEF0dHJpYnV0ZSI+U3RydWN0dXJlIDwvYT54bWxBdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEF0dHJpYnV0ZSB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogYXBwbGljYXRpb24gZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT4JdHlwZQk6IFhNTF9BVFRSSUJVVEVfREVDTCwgbXVzdCBiZSBzZWNvbmQgIQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogQXR0cmlidXRlIG5hbWUKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKgljaGlsZHJlbgk6IE5VTEwKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglsYXN0CTogTlVMTAorICAgIHN0cnVjdCBfeG1sRHRkICoJcGFyZW50CTogLSZndDsgRFRECisgICAgc3RydWN0IF94bWxOb2RlICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQKKyAgICBzdHJ1Y3QgX3htbEF0dHJpYnV0ZSAqCW5leHRoCTogbmV4dCBpbiBoYXNoIHRhYmxlCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT4JYXR5cGUJOiBUaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdHlwZQorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZURlZmF1bHQiPnhtbEF0dHJpYnV0ZURlZmF1bHQ8L2E+CWRlZgk6IHRoZSBkZWZhdWx0CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWRlZmF1bHRWYWx1ZQk6IG9yIHRoZSBkZWZhdWx0IHZhbHVlCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPgl0cmVlCTogb3IgdGhlIGVudW1lcmF0aW9uIHRyZWUgaWYgYW55CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXByZWZpeAk6IHRoZSBuYW1lc3BhY2UgcHJlZml4IGlmIGFueQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgllbGVtCTogRWxlbWVudCBob2xkaW5nIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPgorfSB4bWxBdHRyaWJ1dGU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQXR0cmlidXRlRGVmYXVsdCI+RW51bSA8L2E+eG1sQXR0cmlidXRlRGVmYXVsdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbEF0dHJpYnV0ZURlZmF1bHQiPnhtbEF0dHJpYnV0ZURlZmF1bHQ8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX05PTkUiPlhNTF9BVFRSSUJVVEVfTk9ORTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9SRVFVSVJFRCI+WE1MX0FUVFJJQlVURV9SRVFVSVJFRDwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9JTVBMSUVEIj5YTUxfQVRUUklCVVRFX0lNUExJRUQ8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfRklYRUQiPlhNTF9BVFRSSUJVVEVfRklYRUQ8L2E+ID0gNAorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdHRyaWJ1dGVQdHIiPlR5cGVkZWYgPC9hPnhtbEF0dHJpYnV0ZVB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZSI+eG1sQXR0cmlidXRlPC9hPiAqIHhtbEF0dHJpYnV0ZVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdHRyaWJ1dGVUeXBlIj5FbnVtIDwvYT54bWxBdHRyaWJ1dGVUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT4geworICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfQ0RBVEEiPlhNTF9BVFRSSUJVVEVfQ0RBVEE8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfSUQiPlhNTF9BVFRSSUJVVEVfSUQ8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfSURSRUYiPlhNTF9BVFRSSUJVVEVfSURSRUY8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfSURSRUZTIj5YTUxfQVRUUklCVVRFX0lEUkVGUzwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9FTlRJVFkiPlhNTF9BVFRSSUJVVEVfRU5USVRZPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX0VOVElUSUVTIj5YTUxfQVRUUklCVVRFX0VOVElUSUVTPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX05NVE9LRU4iPlhNTF9BVFRSSUJVVEVfTk1UT0tFTjwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9OTVRPS0VOUyI+WE1MX0FUVFJJQlVURV9OTVRPS0VOUzwvYT4gPSA4CisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTiI+WE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTjwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9OT1RBVElPTiI+WE1MX0FUVFJJQlVURV9OT1RBVElPTjwvYT4gPSAxMAorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxCdWZmZXIiPlN0cnVjdHVyZSA8L2E+eG1sQnVmZmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxCdWZmZXIgeworICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgljb250ZW50CTogVGhlIGJ1ZmZlciBjb250ZW50IFVURjgKKyAgICB1bnNpZ25lZCBpbnQJdXNlCTogVGhlIGJ1ZmZlciBzaXplIHVzZWQKKyAgICB1bnNpZ25lZCBpbnQJc2l6ZQk6IFRoZSBidWZmZXIgc2l6ZQorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+CWFsbG9jCTogVGhlIHJlYWxsb2MgbWV0aG9kCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWNvbnRlbnRJTwk6IGluIElPIG1vZGUgd2UgbWF5IGhhdmUgYSBkaWZmZXJlbnQgYmFzZQorfSB4bWxCdWZmZXI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+RW51bSA8L2E+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIj5YTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUPC9hPiA9IDEgLyogZG91YmxlIGVhY2ggdGltZSBvbmUgbmVlZCB0byBncm93ICovCisgICAgPGEgbmFtZT0iWE1MX0JVRkZFUl9BTExPQ19FWEFDVCI+WE1MX0JVRkZFUl9BTExPQ19FWEFDVDwvYT4gPSAyIC8qIGdyb3cgb25seSB0byB0aGUgbWluaW1hbCBzaXplICovCisgICAgPGEgbmFtZT0iWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUiPlhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFPC9hPiA9IDMgLyogaW1tdXRhYmxlIGJ1ZmZlciAqLworICAgIDxhIG5hbWU9IlhNTF9CVUZGRVJfQUxMT0NfSU8iPlhNTF9CVUZGRVJfQUxMT0NfSU88L2E+ID0gNCAvKiAgc3BlY2lhbCBhbGxvY2F0aW9uIHNjaGVtZSB1c2VkIGZvciBJL08gKi8KK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyUHRyIj5UeXBlZGVmIDwvYT54bWxCdWZmZXJQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT4gKiB4bWxCdWZmZXJQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRE9NV3JhcEN0eHQiPlN0cnVjdHVyZSA8L2E+eG1sRE9NV3JhcEN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbERPTVdyYXBDdHh0IHsKKyAgICB2b2lkICoJX3ByaXZhdGUJOiAqIFRoZSB0eXBlIG9mIHRoaXMgY29udGV4dCwganVzdCBpbiBjYXNlIHdlIG5lZWQgc3BlY2lhbGl6ZWQgKiBjb250ZXh0CisgICAgaW50CXR5cGUJOiAqIEludGVybmFsIG5hbWVzcGFjZSBtYXAgdXNlZCBmb3IgdmFyaW91cyBvcGVyYXRpb25zLiAqCisgICAgdm9pZCAqCW5hbWVzcGFjZU1hcAk6ICogVXNlIHRoaXMgb25lIHRvIGFjcXVpcmUgYW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBpbnRlbmRlZCBmb3Igbm9kZS0mZ3Q7bnMuICogKE5vdGUgdAorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiI+eG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9hPglnZXROc0Zvck5vZGVGdW5jCit9IHhtbERPTVdyYXBDdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERPTVdyYXBDdHh0UHRyIj5UeXBlZGVmIDwvYT54bWxET01XcmFwQ3R4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBDdHh0Ij54bWxET01XcmFwQ3R4dDwvYT4gKiB4bWxET01XcmFwQ3R4dFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEb2MiPlN0cnVjdHVyZSA8L2E+eG1sRG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxEb2MgeworICAgIHZvaWQgKglfcHJpdmF0ZQk6IGFwcGxpY2F0aW9uIGRhdGEKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZSI+eG1sRWxlbWVudFR5cGU8L2E+CXR5cGUJOiBYTUxfRE9DVU1FTlRfTk9ERSwgbXVzdCBiZSBzZWNvbmQgIQorICAgIGNoYXIgKgluYW1lCTogbmFtZS9maWxlbmFtZS9VUkkgb2YgdGhlIGRvY3VtZW50CisgICAgc3RydWN0IF94bWxOb2RlICoJY2hpbGRyZW4JOiB0aGUgZG9jdW1lbnQgdHJlZQorICAgIHN0cnVjdCBfeG1sTm9kZSAqCWxhc3QJOiBsYXN0IGNoaWxkIGxpbmsKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglwYXJlbnQJOiBjaGlsZC0mZ3Q7cGFyZW50IGxpbmsKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKgluZXh0CTogbmV4dCBzaWJsaW5nIGxpbmsKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglwcmV2CTogcHJldmlvdXMgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxEb2MgKglkb2MJOiBhdXRvcmVmZXJlbmNlIHRvIGl0c2VsZiBFbmQgb2YgY29tbW9uIHBhcnQKKyAgICBpbnQJY29tcHJlc3Npb24JOiBsZXZlbCBvZiB6bGliIGNvbXByZXNzaW9uCisgICAgaW50CXN0YW5kYWxvbmUJOiBzdGFuZGFsb25lIGRvY3VtZW50IChubyBleHRlcm5hbCByZWZzKSAxIGlmIHN0YW5kYWxvbmU9InllcyIgMCBpZiBzdGEKKyAgICBzdHJ1Y3QgX3htbER0ZCAqCWludFN1YnNldAk6IHRoZSBkb2N1bWVudCBpbnRlcm5hbCBzdWJzZXQKKyAgICBzdHJ1Y3QgX3htbER0ZCAqCWV4dFN1YnNldAk6IHRoZSBkb2N1bWVudCBleHRlcm5hbCBzdWJzZXQKKyAgICBzdHJ1Y3QgX3htbE5zICoJb2xkTnMJOiBHbG9iYWwgbmFtZXNwYWNlLCB0aGUgb2xkIHdheQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl2ZXJzaW9uCTogdGhlIFhNTCB2ZXJzaW9uIHN0cmluZworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgllbmNvZGluZwk6IGV4dGVybmFsIGluaXRpYWwgZW5jb2RpbmcsIGlmIGFueQorICAgIHZvaWQgKglpZHMJOiBIYXNoIHRhYmxlIGZvciBJRCBhdHRyaWJ1dGVzIGlmIGFueQorICAgIHZvaWQgKglyZWZzCTogSGFzaCB0YWJsZSBmb3IgSURSRUZzIGF0dHJpYnV0ZXMgaWYgYW55CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCVVSTAk6IFRoZSBVUkkgZm9yIHRoYXQgZG9jdW1lbnQKKyAgICBpbnQJY2hhcnNldAk6IGVuY29kaW5nIG9mIHRoZSBpbi1tZW1vcnkgY29udGVudCBhY3R1YWxseSBhbiA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+CisgICAgc3RydWN0IF94bWxEaWN0ICoJZGljdAk6IGRpY3QgdXNlZCB0byBhbGxvY2F0ZSBuYW1lcyBvciBOVUxMCisgICAgdm9pZCAqCXBzdmkJOiBmb3IgdHlwZS9QU1ZJIGluZm9ybWF0aW9ucworICAgIGludAlwYXJzZUZsYWdzCTogc2V0IG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+IHVzZWQgdG8gcGFyc2UgdGhlIGRvY3VtZW50CisgICAgaW50CXByb3BlcnRpZXMJOiBzZXQgb2YgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHJvcGVydGllcyI+eG1sRG9jUHJvcGVydGllczwvYT4gZm9yIHRoaXMgZG9jdW1lbnQgc2V0IGF0IHRoZSBlbmQgb2YgcGFyc2luZworfSB4bWxEb2M7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRG9jUHJvcGVydGllcyI+RW51bSA8L2E+eG1sRG9jUHJvcGVydGllczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbERvY1Byb3BlcnRpZXMiPnhtbERvY1Byb3BlcnRpZXM8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfRE9DX1dFTExGT1JNRUQiPlhNTF9ET0NfV0VMTEZPUk1FRDwvYT4gPSAxIC8qIGRvY3VtZW50IGlzIFhNTCB3ZWxsIGZvcm1lZCAqLworICAgIDxhIG5hbWU9IlhNTF9ET0NfTlNWQUxJRCI+WE1MX0RPQ19OU1ZBTElEPC9hPiA9IDIgLyogZG9jdW1lbnQgaXMgTmFtZXNwYWNlIHZhbGlkICovCisgICAgPGEgbmFtZT0iWE1MX0RPQ19PTEQxMCI+WE1MX0RPQ19PTEQxMDwvYT4gPSA0IC8qIHBhcnNlZCB3aXRoIG9sZCBYTUwtMS4wIHBhcnNlciAqLworICAgIDxhIG5hbWU9IlhNTF9ET0NfRFREVkFMSUQiPlhNTF9ET0NfRFREVkFMSUQ8L2E+ID0gOCAvKiBEVEQgdmFsaWRhdGlvbiB3YXMgc3VjY2Vzc2Z1bCAqLworICAgIDxhIG5hbWU9IlhNTF9ET0NfWElOQ0xVREUiPlhNTF9ET0NfWElOQ0xVREU8L2E+ID0gMTYgLyogWEluY2x1ZGUgc3Vic3RpdHV0aW9uIHdhcyBkb25lICovCisgICAgPGEgbmFtZT0iWE1MX0RPQ19VU0VSQlVJTFQiPlhNTF9ET0NfVVNFUkJVSUxUPC9hPiA9IDMyIC8qIERvY3VtZW50IHdhcyBidWlsdCB1c2luZyB0aGUgQVBJIGFuZCBub3QgYnkgcGFyc2luZyBhbiBpbnN0YW5jZSAqLworICAgIDxhIG5hbWU9IlhNTF9ET0NfSU5URVJOQUwiPlhNTF9ET0NfSU5URVJOQUw8L2E+ID0gNjQgLyogYnVpbHQgZm9yIGludGVybmFsIHByb2Nlc3NpbmcgKi8KKyAgICA8YSBuYW1lPSJYTUxfRE9DX0hUTUwiPlhNTF9ET0NfSFRNTDwvYT4gPSAxMjggLyogIHBhcnNlZCBvciBidWlsdCBIVE1MIGRvY3VtZW50ICovCit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERvY1B0ciI+VHlwZWRlZiA8L2E+eG1sRG9jUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jIj54bWxEb2M8L2E+ICogeG1sRG9jUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbER0ZCI+U3RydWN0dXJlIDwvYT54bWxEdGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbER0ZCB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogYXBwbGljYXRpb24gZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT4JdHlwZQk6IFhNTF9EVERfTk9ERSwgbXVzdCBiZSBzZWNvbmQgIQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogTmFtZSBvZiB0aGUgRFRECisgICAgc3RydWN0IF94bWxOb2RlICoJY2hpbGRyZW4JOiB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGxpbmsKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglsYXN0CTogbGFzdCBjaGlsZCBsaW5rCisgICAgc3RydWN0IF94bWxEb2MgKglwYXJlbnQJOiBjaGlsZC0mZ3Q7cGFyZW50IGxpbmsKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKgluZXh0CTogbmV4dCBzaWJsaW5nIGxpbmsKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglwcmV2CTogcHJldmlvdXMgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxEb2MgKglkb2MJOiB0aGUgY29udGFpbmluZyBkb2N1bWVudCBFbmQgb2YgY29tbW9uIHBhcnQKKyAgICB2b2lkICoJbm90YXRpb25zCTogSGFzaCB0YWJsZSBmb3Igbm90YXRpb25zIGlmIGFueQorICAgIHZvaWQgKgllbGVtZW50cwk6IEhhc2ggdGFibGUgZm9yIGVsZW1lbnRzIGlmIGFueQorICAgIHZvaWQgKglhdHRyaWJ1dGVzCTogSGFzaCB0YWJsZSBmb3IgYXR0cmlidXRlcyBpZiBhbnkKKyAgICB2b2lkICoJZW50aXRpZXMJOiBIYXNoIHRhYmxlIGZvciBlbnRpdGllcyBpZiBhbnkKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJRXh0ZXJuYWxJRAk6IEV4dGVybmFsIGlkZW50aWZpZXIgZm9yIFBVQkxJQyBEVEQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJU3lzdGVtSUQJOiBVUkkgZm9yIGEgU1lTVEVNIG9yIFBVQkxJQyBEVEQKKyAgICB2b2lkICoJcGVudGl0aWVzCTogSGFzaCB0YWJsZSBmb3IgcGFyYW0gZW50aXRpZXMgaWYgYW55Cit9IHhtbER0ZDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEdGRQdHIiPlR5cGVkZWYgPC9hPnhtbER0ZFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZCI+eG1sRHRkPC9hPiAqIHhtbER0ZFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFbGVtZW50Ij5TdHJ1Y3R1cmUgPC9hPnhtbEVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEVsZW1lbnQgeworICAgIHZvaWQgKglfcHJpdmF0ZQk6IGFwcGxpY2F0aW9uIGRhdGEKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZSI+eG1sRWxlbWVudFR5cGU8L2E+CXR5cGUJOiBYTUxfRUxFTUVOVF9ERUNMLCBtdXN0IGJlIHNlY29uZCAhCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiBFbGVtZW50IG5hbWUKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKgljaGlsZHJlbgk6IE5VTEwKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglsYXN0CTogTlVMTAorICAgIHN0cnVjdCBfeG1sRHRkICoJcGFyZW50CTogLSZndDsgRFRECisgICAgc3RydWN0IF94bWxOb2RlICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZVZhbCI+eG1sRWxlbWVudFR5cGVWYWw8L2E+CWV0eXBlCTogVGhlIHR5cGUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CWNvbnRlbnQJOiB0aGUgYWxsb3dlZCBlbGVtZW50IGNvbnRlbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT4JYXR0cmlidXRlcwk6IExpc3Qgb2YgdGhlIGRlY2xhcmVkIGF0dHJpYnV0ZXMKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcHJlZml4CTogdGhlIG5hbWVzcGFjZSBwcmVmaXggaWYgYW55CisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4JY29udE1vZGVsCTogdGhlIHZhbGlkYXRpbmcgcmVnZXhwCisgICAgdm9pZCAqCWNvbnRNb2RlbAorfSB4bWxFbGVtZW50OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVsZW1lbnRDb250ZW50Ij5TdHJ1Y3R1cmUgPC9hPnhtbEVsZW1lbnRDb250ZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxFbGVtZW50Q29udGVudCB7CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRUeXBlIj54bWxFbGVtZW50Q29udGVudFR5cGU8L2E+CXR5cGUJOiBQQ0RBVEEsIEVMRU1FTlQsIFNFUSBvciBPUgorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50T2NjdXIiPnhtbEVsZW1lbnRDb250ZW50T2NjdXI8L2E+CW9jdXIJOiBPTkNFLCBPUFQsIE1VTFQgb3IgUExVUworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogRWxlbWVudCBuYW1lCisgICAgc3RydWN0IF94bWxFbGVtZW50Q29udGVudCAqCWMxCTogZmlyc3QgY2hpbGQKKyAgICBzdHJ1Y3QgX3htbEVsZW1lbnRDb250ZW50ICoJYzIJOiBzZWNvbmQgY2hpbGQKKyAgICBzdHJ1Y3QgX3htbEVsZW1lbnRDb250ZW50ICoJcGFyZW50CTogcGFyZW50CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXByZWZpeAk6IE5hbWVzcGFjZSBwcmVmaXgKK30geG1sRWxlbWVudENvbnRlbnQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRWxlbWVudENvbnRlbnRPY2N1ciI+RW51bSA8L2E+eG1sRWxlbWVudENvbnRlbnRPY2N1cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbEVsZW1lbnRDb250ZW50T2NjdXIiPnhtbEVsZW1lbnRDb250ZW50T2NjdXI8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX09OQ0UiPlhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQiPlhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX01VTFQiPlhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVDwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTIj5YTUxfRUxFTUVOVF9DT05URU5UX1BMVVM8L2E+ID0gNAorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFbGVtZW50Q29udGVudFB0ciI+VHlwZWRlZiA8L2E+eG1sRWxlbWVudENvbnRlbnRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudCI+eG1sRWxlbWVudENvbnRlbnQ8L2E+ICogeG1sRWxlbWVudENvbnRlbnRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRWxlbWVudENvbnRlbnRUeXBlIj5FbnVtIDwvYT54bWxFbGVtZW50Q29udGVudFR5cGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT4geworICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBIj5YTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UIj5YTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQ8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRIj5YTUxfRUxFTUVOVF9DT05URU5UX1NFUTwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfQ09OVEVOVF9PUiI+WE1MX0VMRU1FTlRfQ09OVEVOVF9PUjwvYT4gPSA0Cit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVsZW1lbnRQdHIiPlR5cGVkZWYgPC9hPnhtbEVsZW1lbnRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Ij54bWxFbGVtZW50PC9hPiAqIHhtbEVsZW1lbnRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRWxlbWVudFR5cGUiPkVudW0gPC9hPnhtbEVsZW1lbnRUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfTk9ERSI+WE1MX0VMRU1FTlRfTk9ERTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9OT0RFIj5YTUxfQVRUUklCVVRFX05PREU8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9URVhUX05PREUiPlhNTF9URVhUX05PREU8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9DREFUQV9TRUNUSU9OX05PREUiPlhNTF9DREFUQV9TRUNUSU9OX05PREU8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9FTlRJVFlfUkVGX05PREUiPlhNTF9FTlRJVFlfUkVGX05PREU8L2E+ID0gNQorICAgIDxhIG5hbWU9IlhNTF9FTlRJVFlfTk9ERSI+WE1MX0VOVElUWV9OT0RFPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfUElfTk9ERSI+WE1MX1BJX05PREU8L2E+ID0gNworICAgIDxhIG5hbWU9IlhNTF9DT01NRU5UX05PREUiPlhNTF9DT01NRU5UX05PREU8L2E+ID0gOAorICAgIDxhIG5hbWU9IlhNTF9ET0NVTUVOVF9OT0RFIj5YTUxfRE9DVU1FTlRfTk9ERTwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERSI+WE1MX0RPQ1VNRU5UX1RZUEVfTk9ERTwvYT4gPSAxMAorICAgIDxhIG5hbWU9IlhNTF9ET0NVTUVOVF9GUkFHX05PREUiPlhNTF9ET0NVTUVOVF9GUkFHX05PREU8L2E+ID0gMTEKKyAgICA8YSBuYW1lPSJYTUxfTk9UQVRJT05fTk9ERSI+WE1MX05PVEFUSU9OX05PREU8L2E+ID0gMTIKKyAgICA8YSBuYW1lPSJYTUxfSFRNTF9ET0NVTUVOVF9OT0RFIj5YTUxfSFRNTF9ET0NVTUVOVF9OT0RFPC9hPiA9IDEzCisgICAgPGEgbmFtZT0iWE1MX0RURF9OT0RFIj5YTUxfRFREX05PREU8L2E+ID0gMTQKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9ERUNMIj5YTUxfRUxFTUVOVF9ERUNMPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9ERUNMIj5YTUxfQVRUUklCVVRFX0RFQ0w8L2E+ID0gMTYKKyAgICA8YSBuYW1lPSJYTUxfRU5USVRZX0RFQ0wiPlhNTF9FTlRJVFlfREVDTDwvYT4gPSAxNworICAgIDxhIG5hbWU9IlhNTF9OQU1FU1BBQ0VfREVDTCI+WE1MX05BTUVTUEFDRV9ERUNMPC9hPiA9IDE4CisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX1NUQVJUIj5YTUxfWElOQ0xVREVfU1RBUlQ8L2E+ID0gMTkKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfRU5EIj5YTUxfWElOQ0xVREVfRU5EPC9hPiA9IDIwCisgICAgPGEgbmFtZT0iWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERSI+WE1MX0RPQ0JfRE9DVU1FTlRfTk9ERTwvYT4gPSAyMQorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFbGVtZW50VHlwZVZhbCI+RW51bSA8L2E+eG1sRWxlbWVudFR5cGVWYWw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiN4bWxFbGVtZW50VHlwZVZhbCI+eG1sRWxlbWVudFR5cGVWYWw8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9UWVBFX1VOREVGSU5FRCI+WE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQ8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX1RZUEVfRU1QVFkiPlhNTF9FTEVNRU5UX1RZUEVfRU1QVFk8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX1RZUEVfQU5ZIj5YTUxfRUxFTUVOVF9UWVBFX0FOWTwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfVFlQRV9NSVhFRCI+WE1MX0VMRU1FTlRfVFlQRV9NSVhFRDwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UIj5YTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQ8L2E+ID0gNAorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFbnRpdHkiPlN0cnVjdHVyZSA8L2E+eG1sRW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxFbnRpdHkgeworICAgIHZvaWQgKglfcHJpdmF0ZQk6IGFwcGxpY2F0aW9uIGRhdGEKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZSI+eG1sRWxlbWVudFR5cGU8L2E+CXR5cGUJOiBYTUxfRU5USVRZX0RFQ0wsIG11c3QgYmUgc2Vjb25kICEKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IEVudGl0eSBuYW1lCisgICAgc3RydWN0IF94bWxOb2RlICoJY2hpbGRyZW4JOiBGaXJzdCBjaGlsZCBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJbGFzdAk6IExhc3QgY2hpbGQgbGluaworICAgIHN0cnVjdCBfeG1sRHRkICoJcGFyZW50CTogLSZndDsgRFRECisgICAgc3RydWN0IF94bWxOb2RlICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJb3JpZwk6IGNvbnRlbnQgd2l0aG91dCByZWYgc3Vic3RpdHV0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWNvbnRlbnQJOiBjb250ZW50IG9yIG5kYXRhIGlmIHVucGFyc2VkCisgICAgaW50CWxlbmd0aAk6IHRoZSBjb250ZW50IGxlbmd0aAorICAgIDxhIGhyZWY9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxFbnRpdHlUeXBlIj54bWxFbnRpdHlUeXBlPC9hPglldHlwZQk6IFRoZSBlbnRpdHkgdHlwZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglFeHRlcm5hbElECTogRXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgUFVCTElDCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCVN5c3RlbUlECTogVVJJIGZvciBhIFNZU1RFTSBvciBQVUJMSUMgRW50aXR5CisgICAgc3RydWN0IF94bWxFbnRpdHkgKgluZXh0ZQk6IHVudXNlZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglVUkkJOiB0aGUgZnVsbCBVUkkgYXMgY29tcHV0ZWQKKyAgICBpbnQJb3duZXIJOiBkb2VzIHRoZSBlbnRpdHkgb3duIHRoZSBjaGlsZHJlbnMKKyAgICBpbnQJY2hlY2tlZAk6IHdhcyB0aGUgZW50aXR5IGNvbnRlbnQgY2hlY2tlZCB0aGlzIGlzIGFsc28gdXNlZCB0byBjb3VudCBlbnRpdGVzICogcgorfSB4bWxFbnRpdHk7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRW50aXR5UHRyIj5UeXBlZGVmIDwvYT54bWxFbnRpdHlQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHkiPnhtbEVudGl0eTwvYT4gKiB4bWxFbnRpdHlQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRW51bWVyYXRpb24iPlN0cnVjdHVyZSA8L2E+eG1sRW51bWVyYXRpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEVudW1lcmF0aW9uIHsKKyAgICBzdHJ1Y3QgX3htbEVudW1lcmF0aW9uICoJbmV4dAk6IG5leHQgb25lCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiBFbnVtZXJhdGlvbiBuYW1lCit9IHhtbEVudW1lcmF0aW9uOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVudW1lcmF0aW9uUHRyIj5UeXBlZGVmIDwvYT54bWxFbnVtZXJhdGlvblB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uIj54bWxFbnVtZXJhdGlvbjwvYT4gKiB4bWxFbnVtZXJhdGlvblB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJRCI+U3RydWN0dXJlIDwvYT54bWxJRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sSUQgeworICAgIHN0cnVjdCBfeG1sSUQgKgluZXh0CTogbmV4dCBJRAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl2YWx1ZQk6IFRoZSBJRCBuYW1lCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JYXR0cgk6IFRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBob2xkaW5nIGl0CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiBUaGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaWYgYXR0ciBpcyBub3QgYXZhaWxhYmxlCisgICAgaW50CWxpbmVubwk6IFRoZSBsaW5lIG51bWJlciBpZiBhdHRyIGlzIG5vdCBhdmFpbGFibGUKKyAgICBzdHJ1Y3QgX3htbERvYyAqCWRvYwk6IFRoZSBkb2N1bWVudCBob2xkaW5nIHRoZSBJRAorfSB4bWxJRDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJRFB0ciI+VHlwZWRlZiA8L2E+eG1sSURQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxJRCI+eG1sSUQ8L2E+ICogeG1sSURQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZSI+U3RydWN0dXJlIDwvYT54bWxOb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxOb2RlIHsKKyAgICB2b2lkICoJX3ByaXZhdGUJOiBhcHBsaWNhdGlvbiBkYXRhCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPgl0eXBlCTogdHlwZSBudW1iZXIsIG11c3QgYmUgc2Vjb25kICEKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHRoZSBuYW1lIG9mIHRoZSBub2RlLCBvciB0aGUgZW50aXR5CisgICAgc3RydWN0IF94bWxOb2RlICoJY2hpbGRyZW4JOiBwYXJlbnQtJmd0O2NoaWxkcyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJbGFzdAk6IGxhc3QgY2hpbGQgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCXBhcmVudAk6IGNoaWxkLSZndDtwYXJlbnQgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCW5leHQJOiBuZXh0IHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCXByZXYJOiBwcmV2aW91cyBzaWJsaW5nIGxpbmsKKyAgICBzdHJ1Y3QgX3htbERvYyAqCWRvYwk6IHRoZSBjb250YWluaW5nIGRvY3VtZW50IEVuZCBvZiBjb21tb24gcGFydAorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zIj54bWxOczwvYT4gKglucwk6IHBvaW50ZXIgdG8gdGhlIGFzc29jaWF0ZWQgbmFtZXNwYWNlCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWNvbnRlbnQJOiB0aGUgY29udGVudAorICAgIHN0cnVjdCBfeG1sQXR0ciAqCXByb3BlcnRpZXMJOiBwcm9wZXJ0aWVzIGxpc3QKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOcyI+eG1sTnM8L2E+ICoJbnNEZWYJOiBuYW1lc3BhY2UgZGVmaW5pdGlvbnMgb24gdGhpcyBub2RlCisgICAgdm9pZCAqCXBzdmkJOiBmb3IgdHlwZS9QU1ZJIGluZm9ybWF0aW9ucworICAgIHVuc2lnbmVkIHNob3J0CWxpbmUJOiBsaW5lIG51bWJlcgorICAgIHVuc2lnbmVkIHNob3J0CWV4dHJhCTogZXh0cmEgZGF0YSBmb3IgWFBhdGgvWFNMVAorfSB4bWxOb2RlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVQdHIiPlR5cGVkZWYgPC9hPnhtbE5vZGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlIj54bWxOb2RlPC9hPiAqIHhtbE5vZGVQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm90YXRpb24iPlN0cnVjdHVyZSA8L2E+eG1sTm90YXRpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbE5vdGF0aW9uIHsKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IE5vdGF0aW9uIG5hbWUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJUHVibGljSUQJOiBQdWJsaWMgaWRlbnRpZmllciwgaWYgYW55CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCVN5c3RlbUlECTogU3lzdGVtIGlkZW50aWZpZXIsIGlmIGFueQorfSB4bWxOb3RhdGlvbjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb3RhdGlvblB0ciI+VHlwZWRlZiA8L2E+eG1sTm90YXRpb25QdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb3RhdGlvbiI+eG1sTm90YXRpb248L2E+ICogeG1sTm90YXRpb25QdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTnMiPlN0cnVjdHVyZSA8L2E+eG1sTnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbE5zIHsKKyAgICBzdHJ1Y3QgX3htbE5zICoJbmV4dAk6IG5leHQgTnMgbGluayBmb3IgdGhpcyBub2RlCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNUeXBlIj54bWxOc1R5cGU8L2E+CXR5cGUJOiBnbG9iYWwgb3IgbG9jYWwKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJaHJlZgk6IFVSTCBmb3IgdGhlIG5hbWVzcGFjZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglwcmVmaXgJOiBwcmVmaXggZm9yIHRoZSBuYW1lc3BhY2UKKyAgICB2b2lkICoJX3ByaXZhdGUJOiBhcHBsaWNhdGlvbiBkYXRhCisgICAgc3RydWN0IF94bWxEb2MgKgljb250ZXh0CTogbm9ybWFsbHkgYW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jIj54bWxEb2M8L2E+Cit9IHhtbE5zOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5zUHRyIj5UeXBlZGVmIDwvYT54bWxOc1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zIj54bWxOczwvYT4gKiB4bWxOc1B0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOc1R5cGUiPlR5cGVkZWYgPC9hPnhtbE5zVHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT4geG1sTnNUeXBlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlciI+U3RydWN0dXJlIDwvYT54bWxPdXRwdXRCdWZmZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbE91dHB1dEJ1ZmZlciB7CisgICAgdm9pZCAqCWNvbnRleHQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4Jd3JpdGVjYWxsYmFjaworICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIj54bWxPdXRwdXRDbG9zZUNhbGxiYWNrPC9hPgljbG9zZWNhbGxiYWNrCisgICAgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+CWVuY29kZXIJOiBJMThOIGNvbnZlcnNpb25zIHRvIFVURi04CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CWJ1ZmZlcgk6IExvY2FsIGJ1ZmZlciBlbmNvZGVkIGluIFVURi04IG9yIElTT0xhdGluCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CWNvbnYJOiBpZiBlbmNvZGVyICE9IE5VTEwgYnVmZmVyIGZvciBvdXRwdXQKKyAgICBpbnQJd3JpdHRlbgk6IHRvdGFsIG51bWJlciBvZiBieXRlIHdyaXR0ZW4KKyAgICBpbnQJZXJyb3IKK30geG1sT3V0cHV0QnVmZmVyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlclB0ciI+VHlwZWRlZiA8L2E+eG1sT3V0cHV0QnVmZmVyUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyIj54bWxPdXRwdXRCdWZmZXI8L2E+ICogeG1sT3V0cHV0QnVmZmVyUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlckN0eHQiPlN0cnVjdHVyZSA8L2E+eG1sUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sUGFyc2VyQ3R4dCB7CisgICAgc3RydWN0IF94bWxTQVhIYW5kbGVyICoJc2F4CTogVGhlIFNBWCBoYW5kbGVyCisgICAgdm9pZCAqCXVzZXJEYXRhCTogRm9yIFNBWCBpbnRlcmZhY2Ugb25seSwgdXNlZCBieSBET00gYnVpbGQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JbXlEb2MJOiB0aGUgZG9jdW1lbnQgYmVpbmcgYnVpbHQKKyAgICBpbnQJd2VsbEZvcm1lZAk6IGlzIHRoZSBkb2N1bWVudCB3ZWxsIGZvcm1lZAorICAgIGludAlyZXBsYWNlRW50aXRpZXMJOiBzaGFsbCB3ZSByZXBsYWNlIGVudGl0aWVzID8KKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdmVyc2lvbgk6IHRoZSBYTUwgdmVyc2lvbiBzdHJpbmcKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJZW5jb2RpbmcJOiB0aGUgZGVjbGFyZWQgZW5jb2RpbmcsIGlmIGFueQorICAgIGludAlzdGFuZGFsb25lCTogc3RhbmRhbG9uZSBkb2N1bWVudAorICAgIGludAlodG1sCTogYW4gSFRNTCgxKS9Eb2Nib29rKDIpIGRvY3VtZW50ICogMyBpcyBIVE1MIGFmdGVyICZsdDtoZWFkJmd0OyAqIDEwIGlzIEhUTUwKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CWlucHV0CTogQ3VycmVudCBpbnB1dCBzdHJlYW0KKyAgICBpbnQJaW5wdXROcgk6IE51bWJlciBvZiBjdXJyZW50IGlucHV0IHN0cmVhbXMKKyAgICBpbnQJaW5wdXRNYXgJOiBNYXggbnVtYmVyIG9mIGlucHV0IHN0cmVhbXMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+ICoJaW5wdXRUYWIJOiBzdGFjayBvZiBpbnB1dHMgTm9kZSBhbmFseXNpcyBzdGFjayBvbmx5IHVzZWQgZm9yIERPTSBidWlsZGluZworICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CW5vZGUJOiBDdXJyZW50IHBhcnNlZCBOb2RlCisgICAgaW50CW5vZGVOcgk6IERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrCisgICAgaW50CW5vZGVNYXgJOiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqCW5vZGVUYWIJOiBhcnJheSBvZiBub2RlcworICAgIGludAlyZWNvcmRfaW5mbwk6IFdoZXRoZXIgbm9kZSBpbmZvIHNob3VsZCBiZSBrZXB0CisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcSI+eG1sUGFyc2VyTm9kZUluZm9TZXE8L2E+CW5vZGVfc2VxCTogaW5mbyBhYm91dCBlYWNoIG5vZGUgcGFyc2VkCisgICAgaW50CWVyck5vCTogZXJyb3IgY29kZQorICAgIGludAloYXNFeHRlcm5hbFN1YnNldAk6IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGFuZCBleHRlcm5hbCBzdWJzZXQKKyAgICBpbnQJaGFzUEVyZWZzCTogdGhlIGludGVybmFsIHN1YnNldCBoYXMgUEUgcmVmcworICAgIGludAlleHRlcm5hbAk6IGFyZSB3ZSBwYXJzaW5nIGFuIGV4dGVybmFsIGVudGl0eQorICAgIGludAl2YWxpZAk6IGlzIHRoZSBkb2N1bWVudCB2YWxpZAorICAgIGludAl2YWxpZGF0ZQk6IHNoYWxsIHdlIHRyeSB0byB2YWxpZGF0ZSA/CisgICAgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dCI+eG1sVmFsaWRDdHh0PC9hPgl2Y3R4dAk6IFRoZSB2YWxpZGl0eSBjb250ZXh0CisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFN0YXRlIj54bWxQYXJzZXJJbnB1dFN0YXRlPC9hPglpbnN0YXRlCTogY3VycmVudCB0eXBlIG9mIGlucHV0CisgICAgaW50CXRva2VuCTogbmV4dCBjaGFyIGxvb2stYWhlYWQKKyAgICBjaGFyICoJZGlyZWN0b3J5CTogdGhlIGRhdGEgZGlyZWN0b3J5IE5vZGUgbmFtZSBzdGFjaworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogQ3VycmVudCBwYXJzZWQgTm9kZQorICAgIGludAluYW1lTnIJOiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludAluYW1lTWF4CTogTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqICoJbmFtZVRhYgk6IGFycmF5IG9mIG5vZGVzCisgICAgbG9uZwluYkNoYXJzCTogbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gcHJvY2Vzc2VkCisgICAgbG9uZwljaGVja0luZGV4CTogdXNlZCBieSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGxvb2t1cAorICAgIGludAlrZWVwQmxhbmtzCTogdWdseSBidXQgLi4uCisgICAgaW50CWRpc2FibGVTQVgJOiBTQVggY2FsbGJhY2tzIGFyZSBkaXNhYmxlZAorICAgIGludAlpblN1YnNldAk6IFBhcnNpbmcgaXMgaW4gaW50IDEvZXh0IDIgc3Vic2V0CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWludFN1Yk5hbWUJOiBuYW1lIG9mIHN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglleHRTdWJVUkkJOiBVUkkgb2YgZXh0ZXJuYWwgc3Vic2V0CisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWV4dFN1YlN5c3RlbQk6IFNZU1RFTSBJRCBvZiBleHRlcm5hbCBzdWJzZXQgeG1sOnNwYWNlIHZhbHVlcworICAgIGludCAqCXNwYWNlCTogU2hvdWxkIHRoZSBwYXJzZXIgcHJlc2VydmUgc3BhY2VzCisgICAgaW50CXNwYWNlTnIJOiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludAlzcGFjZU1heAk6IE1heCBkZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludCAqCXNwYWNlVGFiCTogYXJyYXkgb2Ygc3BhY2UgaW5mb3MKKyAgICBpbnQJZGVwdGgJOiB0byBwcmV2ZW50IGVudGl0eSBzdWJzdGl0dXRpb24gbG9vcHMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CWVudGl0eQk6IHVzZWQgdG8gY2hlY2sgZW50aXRpZXMgYm91bmRhcmllcworICAgIGludAljaGFyc2V0CTogZW5jb2Rpbmcgb2YgdGhlIGluLW1lbW9yeSBjb250ZW50IGFjdHVhbGx5IGFuIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4KKyAgICBpbnQJbm9kZWxlbgk6IFRob3NlIHR3byBmaWVsZHMgYXJlIHRoZXJlIHRvCisgICAgaW50CW5vZGVtZW0JOiBTcGVlZCB1cCBsYXJnZSBub2RlIHBhcnNpbmcKKyAgICBpbnQJcGVkYW50aWMJOiBzaWduYWwgcGVkYW50aWMgd2FybmluZ3MKKyAgICB2b2lkICoJX3ByaXZhdGUJOiBGb3IgdXNlciBkYXRhLCBsaWJ4bWwgd29uJ3QgdG91Y2ggaXQKKyAgICBpbnQJbG9hZHN1YnNldAk6IHNob3VsZCB0aGUgZXh0ZXJuYWwgc3Vic2V0IGJlIGxvYWRlZAorICAgIGludAlsaW5lbnVtYmVycwk6IHNldCBsaW5lIG51bWJlciBpbiBlbGVtZW50IGNvbnRlbnQKKyAgICB2b2lkICoJY2F0YWxvZ3MJOiBkb2N1bWVudCdzIG93biBjYXRhbG9nCisgICAgaW50CXJlY292ZXJ5CTogcnVuIGluIHJlY292ZXJ5IG1vZGUKKyAgICBpbnQJcHJvZ3Jlc3NpdmUJOiBpcyB0aGlzIGEgcHJvZ3Jlc3NpdmUgcGFyc2luZworICAgIDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+CWRpY3QJOiBkaWN0aW9ubmFyeSBmb3IgdGhlIHBhcnNlcgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiAqCWF0dHMJOiBhcnJheSBmb3IgdGhlIGF0dHJpYnV0ZXMgY2FsbGJhY2tzCisgICAgaW50CW1heGF0dHMJOiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkKKyAgICBpbnQJZG9jZGljdAk6ICogcHJlLWludGVybmVkIHN0cmluZ3MgKgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglzdHJfeG1sCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXN0cl94bWxucworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglzdHJfeG1sX25zCTogKiBFdmVyeXRoaW5nIGJlbG93IGlzIHVzZWQgb25seSBieSB0aGUgbmV3IFNBWCBtb2RlICoKKyAgICBpbnQJc2F4Mgk6IG9wZXJhdGluZyBpbiB0aGUgbmV3IFNBWCBtb2RlCisgICAgaW50CW5zTnIJOiB0aGUgbnVtYmVyIG9mIGluaGVyaXRlZCBuYW1lc3BhY2VzCisgICAgaW50CW5zTWF4CTogdGhlIHNpemUgb2YgdGhlIGFycmF5cworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiAqCW5zVGFiCTogdGhlIGFycmF5IG9mIHByZWZpeC9uYW1lc3BhY2UgbmFtZQorICAgIGludCAqCWF0dGFsbG9jcwk6IHdoaWNoIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdlcmUgYWxsb2NhdGVkCisgICAgdm9pZCAqICoJcHVzaFRhYgk6IGFycmF5IG9mIGRhdGEgZm9yIHB1c2gKKyAgICA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JYXR0c0RlZmF1bHQJOiBkZWZhdWx0ZWQgYXR0cmlidXRlcyBpZiBhbnkKKyAgICA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JYXR0c1NwZWNpYWwJOiBub24tQ0RBVEEgYXR0cmlidXRlcyBpZiBhbnkKKyAgICBpbnQJbnNXZWxsRm9ybWVkCTogaXMgdGhlIGRvY3VtZW50IFhNTCBOYW5lc3BhY2Ugb2theQorICAgIGludAlvcHRpb25zCTogKiBUaG9zZSBmaWVsZHMgYXJlIG5lZWRlZCBvbmx5IGZvciB0cmVhbWluZyBwYXJzaW5nIHNvIGZhciAqCisgICAgaW50CWRpY3ROYW1lcwk6IFVzZSBkaWN0aW9uYXJ5IG5hbWVzIGZvciB0aGUgdHJlZQorICAgIGludAlmcmVlRWxlbXNOcgk6IG51bWJlciBvZiBmcmVlZCBlbGVtZW50IG5vZGVzCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JZnJlZUVsZW1zCTogTGlzdCBvZiBmcmVlZCBlbGVtZW50IG5vZGVzCisgICAgaW50CWZyZWVBdHRyc05yCTogbnVtYmVyIG9mIGZyZWVkIGF0dHJpYnV0ZXMgbm9kZXMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPglmcmVlQXR0cnMJOiAqIHRoZSBjb21wbGV0ZSBlcnJvciBpbmZvcm1hdGlvbnMgZm9yIHRoZSBsYXN0IGVycm9yLiAqCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEVycm9yIj54bWxFcnJvcjwvYT4JbGFzdEVycm9yCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJNb2RlIj54bWxQYXJzZXJNb2RlPC9hPglwYXJzZU1vZGUJOiB0aGUgcGFyc2VyIG1vZGUKKyAgICB1bnNpZ25lZCBsb25nCW5iZW50aXRpZXMJOiBudW1iZXIgb2YgZW50aXRpZXMgcmVmZXJlbmNlcworICAgIHVuc2lnbmVkIGxvbmcJc2l6ZWVudGl0aWVzCTogc2l6ZSBvZiBwYXJzZWQgZW50aXRpZXMgZm9yIHVzZSBieSBIVE1MIG5vbi1yZWN1cnNpdmUgcGFyc2VyCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mbyI+eG1sUGFyc2VyTm9kZUluZm88L2E+ICoJbm9kZUluZm8JOiBDdXJyZW50IE5vZGVJbmZvCisgICAgaW50CW5vZGVJbmZvTnIJOiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludAlub2RlSW5mb01heAk6IE1heCBkZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPiAqCW5vZGVJbmZvVGFiCTogYXJyYXkgb2Ygbm9kZUluZm9zCit9IHhtbFBhcnNlckN0eHQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyQ3R4dFB0ciI+VHlwZWRlZiA8L2E+eG1sUGFyc2VyQ3R4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+ICogeG1sUGFyc2VyQ3R4dFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dCI+U3RydWN0dXJlIDwvYT54bWxQYXJzZXJJbnB1dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sUGFyc2VySW5wdXQgeworICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JYnVmCTogVVRGLTggZW5jb2RlZCBidWZmZXIKKyAgICBjb25zdCBjaGFyICoJZmlsZW5hbWUJOiBUaGUgZmlsZSBhbmFseXplZCwgaWYgYW55CisgICAgY29uc3QgY2hhciAqCWRpcmVjdG9yeQk6IHRoZSBkaXJlY3RvcnkvYmFzZSBvZiB0aGUgZmlsZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgliYXNlCTogQmFzZSBvZiB0aGUgYXJyYXkgdG8gcGFyc2UKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJY3VyCTogQ3VycmVudCBjaGFyIGJlaW5nIHBhcnNlZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgllbmQJOiBlbmQgb2YgdGhlIGFycmF5IHRvIHBhcnNlCisgICAgaW50CWxlbmd0aAk6IGxlbmd0aCBpZiBrbm93bgorICAgIGludAlsaW5lCTogQ3VycmVudCBsaW5lCisgICAgaW50CWNvbAk6ICogTk9URTogY29uc3VtZWQgaXMgb25seSB0ZXN0ZWQgZm9yIGVxdWFsaXR5IGluIHRoZSBwYXJzZXIgY29kZSwgKgorICAgIHVuc2lnbmVkIGxvbmcJY29uc3VtZWQJOiBIb3cgbWFueSB4bWxDaGFycyBhbHJlYWR5IGNvbnN1bWVkCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT4JZnJlZQk6IGZ1bmN0aW9uIHRvIGRlYWxsb2NhdGUgdGhlIGJhc2UKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJZW5jb2RpbmcJOiB0aGUgZW5jb2Rpbmcgc3RyaW5nIGZvciBlbnRpdHkKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdmVyc2lvbgk6IHRoZSB2ZXJzaW9uIHN0cmluZyBmb3IgZW50aXR5CisgICAgaW50CXN0YW5kYWxvbmUJOiBXYXMgdGhhdCBlbnRpdHkgbWFya2VkIHN0YW5kYWxvbmUKKyAgICBpbnQJaWQJOiBhbiB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGVudGl0eQorfSB4bWxQYXJzZXJJbnB1dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlciI+U3RydWN0dXJlIDwvYT54bWxQYXJzZXJJbnB1dEJ1ZmZlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sUGFyc2VySW5wdXRCdWZmZXIgeworICAgIHZvaWQgKgljb250ZXh0CisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4JcmVhZGNhbGxiYWNrCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPgljbG9zZWNhbGxiYWNrCisgICAgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+CWVuY29kZXIJOiBJMThOIGNvbnZlcnNpb25zIHRvIFVURi04CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CWJ1ZmZlcgk6IExvY2FsIGJ1ZmZlciBlbmNvZGVkIGluIFVURi04CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CXJhdwk6IGlmIGVuY29kZXIgIT0gTlVMTCBidWZmZXIgZm9yIHJhdyBpbnB1dAorICAgIGludAljb21wcmVzc2VkCTogLTE9dW5rbm93biwgMD1ub3QgY29tcHJlc3NlZCwgMT1jb21wcmVzc2VkCisgICAgaW50CWVycm9yCisgICAgdW5zaWduZWQgbG9uZwlyYXdjb25zdW1lZAk6IGFtb3VudCBjb25zdW1lZCBmcm9tIHJhdworfSB4bWxQYXJzZXJJbnB1dEJ1ZmZlcjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+VHlwZWRlZiA8L2E+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sUGFyc2VySW5wdXRCdWZmZXI8L2E+ICogeG1sUGFyc2VySW5wdXRCdWZmZXJQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRQdHIiPlR5cGVkZWYgPC9hPnhtbFBhcnNlcklucHV0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPiAqIHhtbFBhcnNlcklucHV0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZiI+U3RydWN0dXJlIDwvYT54bWxSZWY8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFJlZiB7CisgICAgc3RydWN0IF94bWxSZWYgKgluZXh0CTogbmV4dCBSZWYKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdmFsdWUJOiBUaGUgUmVmIG5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPglhdHRyCTogVGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGhvbGRpbmcgaXQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IFRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpZiBhdHRyIGlzIG5vdCBhdmFpbGFibGUKKyAgICBpbnQJbGluZW5vCTogVGhlIGxpbmUgbnVtYmVyIGlmIGF0dHIgaXMgbm90IGF2YWlsYWJsZQorfSB4bWxSZWY7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVmUHRyIj5UeXBlZGVmIDwvYT54bWxSZWZQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxSZWYiPnhtbFJlZjwvYT4gKiB4bWxSZWZQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU0FYSGFuZGxlciI+U3RydWN0dXJlIDwvYT54bWxTQVhIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxTQVhIYW5kbGVyIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2ludGVybmFsU3Vic2V0U0FYRnVuYyI+aW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPglpbnRlcm5hbFN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjaXNTdGFuZGFsb25lU0FYRnVuYyI+aXNTdGFuZGFsb25lU0FYRnVuYzwvYT4JaXNTdGFuZGFsb25lCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0ludGVybmFsU3Vic2V0U0FYRnVuYzwvYT4JaGFzSW50ZXJuYWxTdWJzZXQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2hhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgloYXNFeHRlcm5hbFN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPglyZXNvbHZlRW50aXR5CisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNnZXRFbnRpdHlTQVhGdW5jIj5nZXRFbnRpdHlTQVhGdW5jPC9hPglnZXRFbnRpdHkKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VudGl0eURlY2xTQVhGdW5jIj5lbnRpdHlEZWNsU0FYRnVuYzwvYT4JZW50aXR5RGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjbm90YXRpb25EZWNsU0FYRnVuYyI+bm90YXRpb25EZWNsU0FYRnVuYzwvYT4Jbm90YXRpb25EZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNhdHRyaWJ1dGVEZWNsU0FYRnVuYyI+YXR0cmlidXRlRGVjbFNBWEZ1bmM8L2E+CWF0dHJpYnV0ZURlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VsZW1lbnREZWNsU0FYRnVuYyI+ZWxlbWVudERlY2xTQVhGdW5jPC9hPgllbGVtZW50RGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyI+dW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvYT4JdW5wYXJzZWRFbnRpdHlEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIj5zZXREb2N1bWVudExvY2F0b3JTQVhGdW5jPC9hPglzZXREb2N1bWVudExvY2F0b3IKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3N0YXJ0RG9jdW1lbnRTQVhGdW5jIj5zdGFydERvY3VtZW50U0FYRnVuYzwvYT4Jc3RhcnREb2N1bWVudAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjZW5kRG9jdW1lbnRTQVhGdW5jIj5lbmREb2N1bWVudFNBWEZ1bmM8L2E+CWVuZERvY3VtZW50CisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnRTQVhGdW5jIj5zdGFydEVsZW1lbnRTQVhGdW5jPC9hPglzdGFydEVsZW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VuZEVsZW1lbnRTQVhGdW5jIj5lbmRFbGVtZW50U0FYRnVuYzwvYT4JZW5kRWxlbWVudAorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT4JcmVmZXJlbmNlCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNjaGFyYWN0ZXJzU0FYRnVuYyI+Y2hhcmFjdGVyc1NBWEZ1bmM8L2E+CWNoYXJhY3RlcnMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT4JaWdub3JhYmxlV2hpdGVzcGFjZQorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYyI+cHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYzwvYT4JcHJvY2Vzc2luZ0luc3RydWN0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNjb21tZW50U0FYRnVuYyI+Y29tbWVudFNBWEZ1bmM8L2E+CWNvbW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3dhcm5pbmdTQVhGdW5jIj53YXJuaW5nU0FYRnVuYzwvYT4Jd2FybmluZworICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+CWVycm9yCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyI+ZmF0YWxFcnJvclNBWEZ1bmM8L2E+CWZhdGFsRXJyb3IJOiB1bnVzZWQgZXJyb3IoKSBnZXQgYWxsIHRoZSBlcnJvcnMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI2dldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMiPmdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmM8L2E+CWdldFBhcmFtZXRlckVudGl0eQorICAgIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjY2RhdGFCbG9ja1NBWEZ1bmMiPmNkYXRhQmxvY2tTQVhGdW5jPC9hPgljZGF0YUJsb2NrCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNleHRlcm5hbFN1YnNldFNBWEZ1bmMiPmV4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT4JZXh0ZXJuYWxTdWJzZXQKKyAgICB1bnNpZ25lZCBpbnQJaW5pdGlhbGl6ZWQJOiBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgZXh0ZW5zaW9ucyBhdmFpbGFibGUgb25seSBvbiB2ZXJzaW9uIDIKKyAgICB2b2lkICoJX3ByaXZhdGUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMiPnN0YXJ0RWxlbWVudE5zU0FYMkZ1bmM8L2E+CXN0YXJ0RWxlbWVudE5zCisgICAgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCNlbmRFbGVtZW50TnNTQVgyRnVuYyI+ZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2E+CWVuZEVsZW1lbnROcworICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPglzZXJyb3IKK30geG1sU0FYSGFuZGxlcjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVhIYW5kbGVyUHRyIj5UeXBlZGVmIDwvYT54bWxTQVhIYW5kbGVyUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiB4bWxTQVhIYW5kbGVyUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNBWExvY2F0b3IiPlN0cnVjdHVyZSA8L2E+eG1sU0FYTG9jYXRvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU0FYTG9jYXRvciB7CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKCpnZXRQdWJsaWNJZCkJZ2V0UHVibGljSWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICooKmdldFN5c3RlbUlkKQlnZXRTeXN0ZW1JZAorICAgIGludCgqZ2V0TGluZU51bWJlcikJZ2V0TGluZU51bWJlcgorICAgIGludCgqZ2V0Q29sdW1uTnVtYmVyKQlnZXRDb2x1bW5OdW1iZXIKK30geG1sU0FYTG9jYXRvcjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTQVhMb2NhdG9yUHRyIj5UeXBlZGVmIDwvYT54bWxTQVhMb2NhdG9yUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYTG9jYXRvciI+eG1sU0FYTG9jYXRvcjwvYT4gKiB4bWxTQVhMb2NhdG9yUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiIvPkZ1bmN0aW9uIHR5cGUgeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgl4bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zTmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zUHJlZml4KTxici8+Cis8L3ByZT48cD5BIGZ1bmN0aW9uIGNhbGxlZCB0byBhY3F1aXJlIG5hbWVzcGFjZXMgKHhtbE5zKSBmcm9tIHRoZSB3cmFwcGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBET00gd3JhcHBlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBub2RlIChlbGVtZW50IG9yIGF0dHJpYnV0ZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zTmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlcXVlc3RlZCBuYW1lc3BhY2UgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnNQcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgYW4gZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQWRkQ2hpbGQiLz54bWxBZGRDaGlsZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbEFkZENoaWxkCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+QWRkIGEgbmV3IG5vZGUgdG8gQHBhcmVudCwgYXQgdGhlIGVuZCBvZiB0aGUgY2hpbGQgKG9yIHByb3BlcnR5KSBsaXN0IG1lcmdpbmcgYWRqYWNlbnQgVEVYVCBub2RlcyAoaW4gd2hpY2ggY2FzZSBAY3VyIGlzIGZyZWVkKSBJZiB0aGUgbmV3IG5vZGUgaXMgQVRUUklCVVRFLCBpdCBpcyBhZGRlZCBpbnRvIHByb3BlcnRpZXMgaW5zdGVhZCBvZiBjaGlsZHJlbi4gSWYgdGhlcmUgaXMgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCBlcXVhbCBuYW1lLCBpdCBpcyBmaXJzdCBkZXN0cm95ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hpbGQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoaWxkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBZGRDaGlsZExpc3QiLz54bWxBZGRDaGlsZExpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxBZGRDaGlsZExpc3QJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5BZGQgYSBsaXN0IG9mIG5vZGUgYXQgdGhlIGVuZCBvZiB0aGUgY2hpbGQgbGlzdCBvZiB0aGUgcGFyZW50IG1lcmdpbmcgYWRqYWNlbnQgVEVYVCBub2RlcyAoQGN1ciBtYXkgYmUgZnJlZWQpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3QgY2hpbGQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEFkZE5leHRTaWJsaW5nIi8+eG1sQWRkTmV4dFNpYmxpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxBZGROZXh0U2libGluZwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pPGJyLz4KKzwvcHJlPjxwPkFkZCBhIG5ldyBub2RlIEBlbGVtIGFzIHRoZSBuZXh0IHNpYmxpbmcgb2YgQGN1ciBJZiB0aGUgbmV3IG5vZGUgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW4gYSBkb2N1bWVudCBpdCBpcyBmaXJzdCB1bmxpbmtlZCBmcm9tIGl0cyBleGlzdGluZyBjb250ZXh0LiBBcyBhIHJlc3VsdCBvZiB0ZXh0IG1lcmdpbmcgQGVsZW0gbWF5IGJlIGZyZWVkLiBJZiB0aGUgbmV3IG5vZGUgaXMgQVRUUklCVVRFLCBpdCBpcyBhZGRlZCBpbnRvIHByb3BlcnRpZXMgaW5zdGVhZCBvZiBjaGlsZHJlbi4gSWYgdGhlcmUgaXMgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCBlcXVhbCBuYW1lLCBpdCBpcyBmaXJzdCBkZXN0cm95ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGlsZCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQWRkUHJldlNpYmxpbmciLz54bWxBZGRQcmV2U2libGluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbEFkZFByZXZTaWJsaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8YnIvPgorPC9wcmU+PHA+QWRkIGEgbmV3IG5vZGUgQGVsZW0gYXMgdGhlIHByZXZpb3VzIHNpYmxpbmcgb2YgQGN1ciBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKEBlbGVtIG1heSBiZSBmcmVlZCkgSWYgdGhlIG5ldyBub2RlIHdhcyBhbHJlYWR5IGluc2VydGVkIGluIGEgZG9jdW1lbnQgaXQgaXMgZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC4gSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uIElmIHRoZXJlIGlzIGFuIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdpdGggZXF1YWwgbmFtZSwgaXQgaXMgZmlyc3QgZGVzdHJveWVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hpbGQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEFkZFNpYmxpbmciLz54bWxBZGRTaWJsaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sQWRkU2libGluZwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxici8+Cis8L3ByZT48cD5BZGQgYSBuZXcgZWxlbWVudCBAZWxlbSB0byB0aGUgbGlzdCBvZiBzaWJsaW5ncyBvZiBAY3VyIG1lcmdpbmcgYWRqYWNlbnQgVEVYVCBub2RlcyAoQGVsZW0gbWF5IGJlIGZyZWVkKSBJZiB0aGUgbmV3IGVsZW1lbnQgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW4gYSBkb2N1bWVudCBpdCBpcyBmaXJzdCB1bmxpbmtlZCBmcm9tIGl0cyBleGlzdGluZyBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hpbGQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGVsZW1lbnQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50Ii8+eG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyaW5nKTxici8+Cis8L3ByZT48cD5TZXJpYWxpemUgdGV4dCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMgdG8gYW4geG1sIHNpbXBsZSBidWZmZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRleHQgY29udGVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckFkZCIvPnhtbEJ1ZmZlckFkZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxCdWZmZXJBZGQJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkFkZCBhIHN0cmluZyByYW5nZSB0byBhbiBYTUwgYnVmZmVyLiBpZiBsZW4gPT0gLTEsIHRoZSBsZW5ndGggb2Ygc3RyIGlzIHJlY29tcHV0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXIgdG8gZHVtcDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgI3htbENoYXIgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgI3htbENoYXIgdG8gYWRkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIHN1Y2Nlc3NmdWwsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJBZGRIZWFkIi8+eG1sQnVmZmVyQWRkSGVhZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxCdWZmZXJBZGRIZWFkCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkFkZCBhIHN0cmluZyByYW5nZSB0byB0aGUgYmVnaW5uaW5nIG9mIGFuIFhNTCBidWZmZXIuIGlmIGxlbiA9PSAtMSwgdGhlIGxlbmd0aCBvZiBAc3RyIGlzIHJlY29tcHV0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlICN4bWxDaGFyIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mICN4bWxDaGFyIHRvIGFkZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBzdWNjZXNzZnVsLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyQ0NhdCIvPnhtbEJ1ZmZlckNDYXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQnVmZmVyQ0NhdAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBzdHIpPGJyLz4KKzwvcHJlPjxwPkFwcGVuZCBhIHplcm8gdGVybWluYXRlZCBDIHN0cmluZyB0byBhbiBYTUwgYnVmZmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIGR1bXA8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEMgY2hhciBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgc3VjY2Vzc2Z1bCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckNhdCIvPnhtbEJ1ZmZlckNhdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxCdWZmZXJDYXQJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxici8+Cis8L3ByZT48cD5BcHBlbmQgYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nIHRvIGFuIFhNTCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXIgdG8gYWRkIHRvPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSAjeG1sQ2hhciBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgc3VjY2Vzc2Z1bCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckNvbnRlbnQiLz54bWxCdWZmZXJDb250ZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEJ1ZmZlckNvbnRlbnQJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYpPGJyLz4KKzwvcHJlPjxwPkZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIGNvbnRlbnQgb2YgYSBidWZmZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIGNvbnRlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJDcmVhdGUiLz54bWxCdWZmZXJDcmVhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4JeG1sQnVmZmVyQ3JlYXRlCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+cm91dGluZSB0byBjcmVhdGUgYW4gWE1MIGJ1ZmZlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RydWN0dXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckNyZWF0ZVNpemUiLz54bWxCdWZmZXJDcmVhdGVTaXplICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CXhtbEJ1ZmZlckNyZWF0ZVNpemUJKHNpemVfdCBzaXplKTxici8+Cis8L3ByZT48cD5yb3V0aW5lIHRvIGNyZWF0ZSBhbiBYTUwgYnVmZmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5pdGlhbCBzaXplIG9mIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBzdHJ1Y3R1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyQ3JlYXRlU3RhdGljIi8+eG1sQnVmZmVyQ3JlYXRlU3RhdGljICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CXhtbEJ1ZmZlckNyZWF0ZVN0YXRpYwkodm9pZCAqIG1lbSwgPGJyLz4JCQkJCSBzaXplX3Qgc2l6ZSk8YnIvPgorPC9wcmU+PHA+cm91dGluZSB0byBjcmVhdGUgYW4gWE1MIGJ1ZmZlciBmcm9tIGFuIGltbXV0YWJsZSBtZW1vcnkgYXJlYS4gVGhlIGFyZWEgd29uJ3QgYmUgbW9kaWZpZWQgbm9yIGNvcGllZCwgYW5kIGlzIGV4cGVjdGVkIHRvIGJlIHByZXNlbnQgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIGxpZmV0aW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVtb3J5IGFyZWE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIGluIGJ5dGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RydWN0dXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckR1bXAiLz54bWxCdWZmZXJEdW1wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEJ1ZmZlckR1bXAJCQkoRklMRSAqIGZpbGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1Zik8YnIvPgorPC9wcmU+PHA+RHVtcHMgYW4gWE1MIGJ1ZmZlciB0byBhIEZJTEUgKi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIGR1bXA8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgI3htbENoYXIgd3JpdHRlbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckVtcHR5Ii8+eG1sQnVmZmVyRW1wdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEJ1ZmZlckVtcHR5CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYpPGJyLz4KKzwvcHJlPjxwPmVtcHR5IGEgYnVmZmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyRnJlZSIvPnhtbEJ1ZmZlckZyZWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEJ1ZmZlckZyZWUJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1Zik8YnIvPgorPC9wcmU+PHA+RnJlZXMgYW4gWE1MIGJ1ZmZlci4gSXQgZnJlZXMgYm90aCB0aGUgY29udGVudCBhbmQgdGhlIHN0cnVjdHVyZSB3aGljaCBlbmNhcHN1bGF0ZSBpdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlciB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyR3JvdyIvPnhtbEJ1ZmZlckdyb3cgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQnVmZmVyR3JvdwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIHVuc2lnbmVkIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkdyb3cgdGhlIGF2YWlsYWJsZSBzcGFjZSBvZiBhbiBYTUwgYnVmZmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtaW5pbXVtIGZyZWUgc2l6ZSB0byBhbGxvY2F0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBhdmFpbGFibGUgc3BhY2Ugb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckxlbmd0aCIvPnhtbEJ1ZmZlckxlbmd0aCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxCdWZmZXJMZW5ndGgJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1Zik8YnIvPgorPC9wcmU+PHA+RnVuY3Rpb24gdG8gZ2V0IHRoZSBsZW5ndGggb2YgYSBidWZmZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBkYXRhIGluIHRoZSBpbnRlcm5hbCBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyUmVzaXplIi8+eG1sQnVmZmVyUmVzaXplICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEJ1ZmZlclJlc2l6ZQkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIHVuc2lnbmVkIGludCBzaXplKTxici8+Cis8L3ByZT48cD5SZXNpemUgYSBidWZmZXIgdG8gYWNjb21tb2RhdGUgbWluaW11bSBzaXplIG9mIEBzaXplLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIHJlc2l6ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRlc2lyZWQgc2l6ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHByb2JsZW1zLCAxIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUiLz54bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+IHNjaGVtZSk8YnIvPgorPC9wcmU+PHA+U2V0cyB0aGUgYWxsb2NhdGlvbiBzY2hlbWUgZm9yIHRoaXMgYnVmZmVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXIgdG8gdHVuZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2NoZW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbGxvY2F0aW9uIHNjaGVtZSB0byB1c2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJTaHJpbmsiLz54bWxCdWZmZXJTaHJpbmsgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQnVmZmVyU2hyaW5rCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgdW5zaWduZWQgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+UmVtb3ZlIHRoZSBiZWdpbm5pbmcgb2YgYW4gWE1MIGJ1ZmZlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlciB0byBkdW1wPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB0byByZW1vdmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgI3htbENoYXIgcmVtb3ZlZCwgb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlcldyaXRlQ0hBUiIvPnhtbEJ1ZmZlcldyaXRlQ0hBUiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQnVmZmVyV3JpdGVDSEFSCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyaW5nKTxici8+Cis8L3ByZT48cD5yb3V0aW5lIHdoaWNoIG1hbmFnZXMgYW5kIGdyb3dzIGFuIG91dHB1dCBidWZmZXIuIFRoaXMgb25lIGFkZHMgeG1sQ2hhcnMgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGFkZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlcldyaXRlQ2hhciIvPnhtbEJ1ZmZlcldyaXRlQ2hhciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQnVmZmVyV3JpdGVDaGFyCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogc3RyaW5nKTxici8+Cis8L3ByZT48cD5yb3V0aW5lIHdoaWNoIG1hbmFnZSBhbmQgZ3Jvd3MgYW4gb3V0cHV0IGJ1ZmZlci4gVGhpcyBvbmUgYWRkIEMgY2hhcnMgYXQgdGhlIGVuZCBvZiB0aGUgYXJyYXkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGFkZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIi8+eG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHJpbmcpPGJyLz4KKzwvcHJlPjxwPnJvdXRpbmUgd2hpY2ggbWFuYWdlIGFuZCBncm93cyBhbiBvdXRwdXQgYnVmZmVyLiBUaGlzIG9uZSB3cml0ZXMgYSBxdW90ZWQgb3IgZG91YmxlIHF1b3RlZCAjeG1sQ2hhciBzdHJpbmcsIGNoZWNraW5nIGZpcnN0IGlmIGl0IGhvbGRzIHF1b3RlIG9yIGRvdWJsZS1xdW90ZXMgaW50ZXJuYWxseTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZyB0byBhZGQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxCdWlsZFFOYW1lIi8+eG1sQnVpbGRRTmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxCdWlsZFFOYW1lCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5jbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBtZW1vcnksIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+QnVpbGRzIHRoZSBRTmFtZSBAcHJlZml4OkBuY25hbWUgaW4gQG1lbW9yeSBpZiB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgYW5kIHByZWZpeCBpcyBub3QgTlVMTCBub3IgZW1wdHksIG90aGVyd2lzZSBhbGxvY2F0ZSBhIG5ldyBzdHJpbmcuIElmIHByZWZpeCBpcyBOVUxMIG9yIGVtcHR5IGl0IHJldHVybnMgbmNuYW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmNuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgTmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tZW1vcnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnByZWFsbG9jYXRlZCBtZW1vcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cHJlYWxsb2NhdGVkIG1lbW9yeSBsZW5ndGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RyaW5nIHdoaWNoIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlciBpZiBkaWZmZXJlbnQgZnJvbSBAbWVtb3J5IGFuZCBAbmNuYW1lIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoaWxkRWxlbWVudENvdW50Ii8+eG1sQ2hpbGRFbGVtZW50Q291bnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj51bnNpZ25lZCBsb25nCXhtbENoaWxkRWxlbWVudENvdW50CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpPGJyLz4KKzwvcHJlPjxwPkZpbmRzIHRoZSBjdXJyZW50IG51bWJlciBvZiBjaGlsZCBub2RlcyBvZiB0aGF0IGVsZW1lbnQgd2hpY2ggYXJlIGVsZW1lbnQgbm9kZXMuIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4gdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvdW50IG9mIGVsZW1lbnQgY2hpbGQgb3IgMCBpZiBub3QgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weURvYyIvPnhtbENvcHlEb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sQ29weURvYwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IHJlY3Vyc2l2ZSk8YnIvPgorPC9wcmU+PHA+RG8gYSBjb3B5IG9mIHRoZSBkb2N1bWVudCBpbmZvLiBJZiByZWN1cnNpdmUsIHRoZSBjb250ZW50IHRyZWUgd2lsbCBiZSBjb3BpZWQgdG9vIGFzIHdlbGwgYXMgRFRELCBuYW1lc3BhY2VzIGFuZCBlbnRpdGllcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWN1cnNpdmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIG5vdCB6ZXJvIGRvIGEgcmVjdXJzaXZlIGNvcHkuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyAjeG1sRG9jUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weUR0ZCIvPnhtbENvcHlEdGQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JeG1sQ29weUR0ZAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQpPGJyLz4KKzwvcHJlPjxwPkRvIGEgY29weSBvZiB0aGUgZHRkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZHRkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyAjeG1sRHRkUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weU5hbWVzcGFjZSIvPnhtbENvcHlOYW1lc3BhY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CXhtbENvcHlOYW1lc3BhY2UJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgdGhlIG5hbWVzcGFjZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbE5zUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weU5hbWVzcGFjZUxpc3QiLz54bWxDb3B5TmFtZXNwYWNlTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JeG1sQ29weU5hbWVzcGFjZUxpc3QJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgYW4gbmFtZXNwYWNlIGxpc3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBuYW1lc3BhY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3ICN4bWxOc1B0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENvcHlOb2RlIi8+eG1sQ29weU5vZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxDb3B5Tm9kZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgaW50IGV4dGVuZGVkKTxici8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXh0ZW5kZWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIDEgZG8gYSByZWN1cnNpdmUgY29weSAocHJvcGVydGllcywgbmFtZXNwYWNlcyBhbmQgY2hpbGRyZW4gd2hlbiBhcHBsaWNhYmxlKSBpZiAyIGNvcHkgcHJvcGVydGllcyBhbmQgbmFtZXNwYWNlcyAod2hlbiBhcHBsaWNhYmxlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDb3B5Tm9kZUxpc3QiLz54bWxDb3B5Tm9kZUxpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxDb3B5Tm9kZUxpc3QJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5EbyBhIHJlY3Vyc2l2ZSBjb3B5IG9mIHRoZSBub2RlIGxpc3QuIFVzZSB4bWxEb2NDb3B5Tm9kZUxpc3QoKSBpZiBwb3NzaWJsZSB0byBlbnN1cmUgc3RyaW5nIGludGVybmluZy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDb3B5UHJvcCIvPnhtbENvcHlQcm9wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sQ29weVByb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0YXJnZXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgdGhlIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhcmdldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgd2hlcmUgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdpbGwgYmUgZ3JhZnRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3ICN4bWxBdHRyUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weVByb3BMaXN0Ii8+eG1sQ29weVByb3BMaXN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sQ29weVByb3BMaXN0CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdGFyZ2V0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+RG8gYSBjb3B5IG9mIGFuIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGxpc3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YXJnZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdHRyaWJ1dGVzIHdpbGwgYmUgZ3JhZnRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3ICN4bWxBdHRyUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlSW50U3Vic2V0Ii8+eG1sQ3JlYXRlSW50U3Vic2V0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CXhtbENyZWF0ZUludFN1YnNldAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSB0aGUgaW50ZXJuYWwgc3Vic2V0IG9mIGEgZG9jdW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBEVEQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dGVybmFsIChQVUJMSUMpIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBJRDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgRFREIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERPTVdyYXBBZG9wdE5vZGUiLz54bWxET01XcmFwQWRvcHROb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERPTVdyYXBBZG9wdE5vZGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IHNvdXJjZURvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkZXN0RG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGRlc3RQYXJlbnQsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPlJlZmVyZW5jZXMgb2Ygb3V0LW9mIHNjb3BlIG5zLWRlY2xzIGFyZSByZW1hcHBlZCB0byBwb2ludCB0byBAZGVzdERvYzogMSkgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gbnNEZWYgZW50cmllcyBvbiBlbGVtZW50LW5vZGVzIGFyZSB1c2VkIDIpIElmICpubyogQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gQGRlc3REb2MtJmd0O29sZE5zIGVudHJpZXMgYXJlIHVzZWQgVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHlvdSBoYXZlIGFuIHVubGlrZWQgbm9kZSBhbmQganVzdCB3YW50IHRvIG1vdmUgaXQgdG8gdGhlIGNvbnRleHQgb2YgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIGl0IGVuc3VyZXMgdGhhdCB0aGUgdHJlZSBpcyBuYW1lc3BhY2Ugd2VsbGZvcm1lZCBieSBjcmVhdGluZyBhZGRpdGlvbmFsIG5zLWRlY2xzIHdoZXJlIG5lZWRlZC4gTm90ZSB0aGF0LCBzaW5jZSBwcmVmaXhlcyBvZiBhbHJlYWR5IGV4aXN0ZW50IG5zLWRlY2xzIGNhbiBiZSBzaGFkb3dlZCBieSB0aGlzIHByb2Nlc3MsIGl0IGNvdWxkIGJyZWFrIFFOYW1lcyBpbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMgb3IgZWxlbWVudCBjb250ZW50LiBOT1RFOiBUaGlzIGZ1bmN0aW9uIHdhcyBub3QgaW50ZW5zaXZlbHkgdGVzdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9wdGlvbmFsIGNvbnRleHQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zb3VyY2VEb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb25hbCBzb3VyY2VEb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRvIHN0YXJ0IHdpdGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlc3REb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkZXN0aW5hdGlvbiBkb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlc3RQYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb25hbCBuZXcgcGFyZW50IG9mIEBub2RlIGluIEBkZXN0RG9jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vcHRpb24gZmxhZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQsIDEgaWYgYSBub2RlIG9mIHVuc3VwcG9ydGVkIHR5cGUgd2FzIGdpdmVuLCAyIGlmIGEgbm9kZSBvZiBub3QgeWV0IHN1cHBvcnRlZCB0eXBlIHdhcyBnaXZlbiBhbmQgLTEgb24gQVBJL2ludGVybmFsIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxET01XcmFwQ2xvbmVOb2RlIi8+eG1sRE9NV3JhcENsb25lTm9kZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxET01XcmFwQ2xvbmVOb2RlCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHRQdHIiPnhtbERPTVdyYXBDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBzb3VyY2VEb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqIHJlc05vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRlc3REb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZGVzdFBhcmVudCwgPGJyLz4JCQkJCSBpbnQgZGVlcCwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+UmVmZXJlbmNlcyBvZiBvdXQtb2Ygc2NvcGUgbnMtZGVjbHMgYXJlIHJlbWFwcGVkIHRvIHBvaW50IHRvIEBkZXN0RG9jOiAxKSBJZiBAZGVzdFBhcmVudCBpcyBnaXZlbiwgdGhlbiBuc0RlZiBlbnRyaWVzIG9uIGVsZW1lbnQtbm9kZXMgYXJlIHVzZWQgMikgSWYgKm5vKiBAZGVzdFBhcmVudCBpcyBnaXZlbiwgdGhlbiBAZGVzdERvYy0mZ3Q7b2xkTnMgZW50cmllcyBhcmUgdXNlZC4gVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHlvdSBkb24ndCBrbm93IGFscmVhZHkgd2hlcmUgdGhlIGNsb25lZCBicmFuY2ggd2lsbCBiZSBhZGRlZCB0by4gSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIGl0IGVuc3VyZXMgdGhhdCB0aGUgdHJlZSBpcyBuYW1lc3BhY2Ugd2VsbGZvcm1lZCBieSBjcmVhdGluZyBhZGRpdGlvbmFsIG5zLWRlY2xzIHdoZXJlIG5lZWRlZC4gTm90ZSB0aGF0LCBzaW5jZSBwcmVmaXhlcyBvZiBhbHJlYWR5IGV4aXN0ZW50IG5zLWRlY2xzIGNhbiBiZSBzaGFkb3dlZCBieSB0aGlzIHByb2Nlc3MsIGl0IGNvdWxkIGJyZWFrIFFOYW1lcyBpbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMgb3IgZWxlbWVudCBjb250ZW50LiBUT0RPOiAxKSBXaGF0IHRvIGRvIHdpdGggWEluY2x1ZGU/IEN1cnJlbnRseSB0aGlzIHJldHVybnMgYW4gZXJyb3IgZm9yIFhJbmNsdWRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9wdGlvbmFsIGNvbnRleHQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zb3VyY2VEb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb25hbCBzb3VyY2VEb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRvIHN0YXJ0IHdpdGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlc05vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjbG9uZSBvZiB0aGUgZ2l2ZW4gQG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlc3REb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkZXN0aW5hdGlvbiBkb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlc3RQYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb25hbCBuZXcgcGFyZW50IG9mIEBub2RlIGluIEBkZXN0RG9jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZWVwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5kZXNjZW5kIGludG8gY2hpbGQgaWYgc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vcHRpb24gZmxhZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQsIDEgaWYgYSBub2RlIG9mIHVuc3VwcG9ydGVkIChvciBub3QgeWV0IHN1cHBvcnRlZCkgdHlwZSB3YXMgZ2l2ZW4sIC0xIG9uIEFQSS9pbnRlcm5hbCBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRE9NV3JhcEZyZWVDdHh0Ii8+eG1sRE9NV3JhcEZyZWVDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxET01XcmFwRnJlZUN0eHQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWVzIHRoZSBET00td3JhcHBlciBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIERPTS13cmFwcGVyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxET01XcmFwTmV3Q3R4dCIvPnhtbERPTVdyYXBOZXdDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHRQdHIiPnhtbERPTVdyYXBDdHh0UHRyPC9hPgl4bWxET01XcmFwTmV3Q3R4dAkodm9pZCk8YnIvPgorPC9wcmU+PHA+QWxsb2NhdGVzIGFuZCBpbml0aWFsaXplcyBhIG5ldyBET00td3JhcHBlciBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGFuIGludGVybmFsIGVycnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyIvPnhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+RW5zdXJlcyB0aGF0IG5zLXJlZmVyZW5jZXMgcG9pbnQgdG8gbnMtZGVjbHMgaG9sZCBvbiBlbGVtZW50LW5vZGVzLiBFbnN1cmVzIHRoYXQgdGhlIHRyZWUgaXMgbmFtZXNwYWNlIHdlbGxmb3JtZWQgYnkgY3JlYXRpbmcgYWRkaXRpb25hbCBucy1kZWNscyB3aGVyZSBuZWVkZWQuIE5vdGUgdGhhdCwgc2luY2UgcHJlZml4ZXMgb2YgYWxyZWFkeSBleGlzdGVudCBucy1kZWNscyBjYW4gYmUgc2hhZG93ZWQgYnkgdGhpcyBwcm9jZXNzLCBpdCBjb3VsZCBicmVhayBRTmFtZXMgaW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzIG9yIGVsZW1lbnQgY29udGVudC4gTk9URTogVGhpcyBmdW5jdGlvbiB3YXMgbm90IGludGVuc2l2ZWx5IHRlc3RlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkRPTSB3cmFwcGVyIGNvbnRleHQsIHVudXNlZCBhdCB0aGUgbW9tZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudC1ub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vcHRpb24gZmxhZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VlZGVkLCAtMSBvdGhlcndpc2UgYW5kIG9uIEFQSS9pbnRlcm5hbCBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRE9NV3JhcFJlbW92ZU5vZGUiLz54bWxET01XcmFwUmVtb3ZlTm9kZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxET01XcmFwUmVtb3ZlTm9kZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPlVubGlua3MgdGhlIGdpdmVuIG5vZGUgZnJvbSBpdHMgb3duZXIuIFRoaXMgd2lsbCBzdWJzdGl0dXRlIG5zLXJlZmVyZW5jZXMgdG8gbm9kZS0mZ3Q7bnNEZWYgZm9yIG5zLXJlZmVyZW5jZXMgdG8gZG9jLSZndDtvbGROcywgdGh1cyBlbnN1cmluZyB0aGUgcmVtb3ZlZCBicmFuY2ggdG8gYmUgYXV0YXJrIHdydCBucy1yZWZlcmVuY2VzLiBOT1RFOiBUaGlzIGZ1bmN0aW9uIHdhcyBub3QgaW50ZW5zaXZlbHkgdGVzdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBET00gd3JhcHBlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRvIGJlIHJlbW92ZWQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zZXQgb2Ygb3B0aW9ucywgdW51c2VkIGF0IHRoZSBtb21lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb24gc3VjY2VzcywgMSBpZiB0aGUgbm9kZSBpcyBub3Qgc3VwcG9ydGVkLCAtMSBvbiBBUEkgYW5kIGludGVybmFsIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEb2NDb3B5Tm9kZSIvPnhtbERvY0NvcHlOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sRG9jQ29weU5vZGUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IGV4dGVuZGVkKTxici8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgdGhlIG5vZGUgdG8gYSBnaXZlbiBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXh0ZW5kZWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIDEgZG8gYSByZWN1cnNpdmUgY29weSAocHJvcGVydGllcywgbmFtZXNwYWNlcyBhbmQgY2hpbGRyZW4gd2hlbiBhcHBsaWNhYmxlKSBpZiAyIGNvcHkgcHJvcGVydGllcyBhbmQgbmFtZXNwYWNlcyAod2hlbiBhcHBsaWNhYmxlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEb2NDb3B5Tm9kZUxpc3QiLz54bWxEb2NDb3B5Tm9kZUxpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxEb2NDb3B5Tm9kZUxpc3QJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIvPgorPC9wcmU+PHA+RG8gYSByZWN1cnNpdmUgY29weSBvZiB0aGUgbm9kZSBsaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3ICN4bWxOb2RlUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRG9jRHVtcCIvPnhtbERvY0R1bXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRG9jRHVtcAkJCShGSUxFICogZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5EdW1wIGFuIFhNTCBkb2N1bWVudCB0byBhbiBvcGVuIEZJTEUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERvY0R1bXBGb3JtYXRNZW1vcnkiLz54bWxEb2NEdW1wRm9ybWF0TWVtb3J5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEb2NEdW1wRm9ybWF0TWVtb3J5CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG1lbSwgPGJyLz4JCQkJCSBpbnQgKiBzaXplLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIGRvY3VtZW50IGluIG1lbW9yeSBhbmQgcmV0dXJuIHRoZSAjeG1sQ2hhciAqIGFuZCBpdCdzIHNpemUuIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sSW5kZW50VHJlZU91dHB1dCI+eG1sSW5kZW50VHJlZU91dHB1dDwvYT4gPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk9VVDogdGhlIG1lbW9yeSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5PVVQ6IHRoZSBtZW1vcnkgbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYyIvPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBvdXRfZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogZG9jX3R4dF9wdHIsIDxici8+CQkJCQkgaW50ICogZG9jX3R4dF9sZW4sIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHR4dF9lbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgZm9ybWF0KTxici8+Cis8L3ByZT48cD5EdW1wIHRoZSBjdXJyZW50IERPTSB0cmVlIGludG8gbWVtb3J5IHVzaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIuIE5vdGUgaXQgaXMgdXAgdG8gdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZyZWUgdGhlIGFsbG9jYXRlZCBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sSW5kZW50VHJlZU91dHB1dCI+eG1sSW5kZW50VHJlZU91dHB1dDwvYT4gPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dF9kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkRvY3VtZW50IHRvIGdlbmVyYXRlIFhNTCB0ZXh0IGZyb208L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvY190eHRfcHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5NZW1vcnkgcG9pbnRlciBmb3IgYWxsb2NhdGVkIFhNTCB0ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2NfdHh0X2xlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR4dF9lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Q2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgWE1MIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEb2NEdW1wTWVtb3J5Ii8+eG1sRG9jRHVtcE1lbW9yeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRG9jRHVtcE1lbW9yeQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBtZW0sIDxici8+CQkJCQkgaW50ICogc2l6ZSk8YnIvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQgaW4gbWVtb3J5IGFuZCByZXR1cm4gdGhlICN4bWxDaGFyICogYW5kIGl0J3Mgc2l6ZSBpbiBieXRlcy4gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4gVGhlIHJlc3VsdGluZyBieXRlIGFycmF5IGlzIHplcm8gdGVybWluYXRlZCwgdGhvdWdoIHRoZSBsYXN0IDAgaXMgbm90IGluY2x1ZGVkIGluIHRoZSByZXR1cm5lZCBzaXplLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1lbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+T1VUOiB0aGUgbWVtb3J5IHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk9VVDogdGhlIG1lbW9yeSBsZW5ndGg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEb2NEdW1wTWVtb3J5RW5jIi8+eG1sRG9jRHVtcE1lbW9yeUVuYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRG9jRHVtcE1lbW9yeUVuYwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBvdXRfZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogZG9jX3R4dF9wdHIsIDxici8+CQkJCQkgaW50ICogZG9jX3R4dF9sZW4sIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHR4dF9lbmNvZGluZyk8YnIvPgorPC9wcmU+PHA+RHVtcCB0aGUgY3VycmVudCBET00gdHJlZSBpbnRvIG1lbW9yeSB1c2luZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHNwZWNpZmllZCBieSB0aGUgY2FsbGVyLiBOb3RlIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB0byBmcmVlIHRoZSBhbGxvY2F0ZWQgbWVtb3J5IHdpdGggeG1sRnJlZSgpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0X2RvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+RG9jdW1lbnQgdG8gZ2VuZXJhdGUgWE1MIHRleHQgZnJvbTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jX3R4dF9wdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk1lbW9yeSBwb2ludGVyIGZvciBhbGxvY2F0ZWQgWE1MIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvY190eHRfbGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5MZW5ndGggb2YgdGhlIGdlbmVyYXRlZCBYTUwgdGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHh0X2VuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5DaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBYTUwgdGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbERvY0Zvcm1hdER1bXAiLz54bWxEb2NGb3JtYXREdW1wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERvY0Zvcm1hdER1bXAJCShGSUxFICogZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGFuIG9wZW4gRklMRS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sSW5kZW50VHJlZU91dHB1dCI+eG1sSW5kZW50VHJlZU91dHB1dDwvYT4gPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEb2NHZXRSb290RWxlbWVudCIvPnhtbERvY0dldFJvb3RFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sRG9jR2V0Um9vdEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPkdldCB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZSBkb2N1bWVudCAoZG9jLSZndDtjaGlsZHJlbiBpcyBhIGxpc3QgY29udGFpbmluZyBwb3NzaWJseSBjb21tZW50cywgUElzLCBldGMgLi4uKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgI3htbE5vZGVQdHIgZm9yIHRoZSByb290IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEb2NTZXRSb290RWxlbWVudCIvPnhtbERvY1NldFJvb3RFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sRG9jU2V0Um9vdEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcm9vdCk8YnIvPgorPC9wcmU+PHA+U2V0IHRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50IChkb2MtJmd0O2NoaWxkcmVuIGlzIGEgbGlzdCBjb250YWluaW5nIHBvc3NpYmx5IGNvbW1lbnRzLCBQSXMsIGV0YyAuLi4pLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJvb3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgZG9jdW1lbnQgcm9vdCBlbGVtZW50LCBpZiByb290IGlzIE5VTEwgbm8gYWN0aW9uIGlzIHRha2VuLCB0byByZW1vdmUgYSBub2RlIGZyb20gYSBkb2N1bWVudCB1c2UgeG1sVW5saW5rTm9kZShyb290KSBpbnN0ZWFkLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9sZCByb290IGVsZW1lbnQgaWYgYW55IHdhcyBmb3VuZCwgTlVMTCBpZiByb290IHdhcyBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRWxlbUR1bXAiLz54bWxFbGVtRHVtcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRWxlbUR1bXAJCQkoRklMRSAqIGYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1ML0hUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91ciwgY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZpcnN0RWxlbWVudENoaWxkIi8+eG1sRmlyc3RFbGVtZW50Q2hpbGQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxGaXJzdEVsZW1lbnRDaGlsZAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50KTxici8+Cis8L3ByZT48cD5GaW5kcyB0aGUgZmlyc3QgY2hpbGQgbm9kZSBvZiB0aGF0IGVsZW1lbnQgd2hpY2ggaXMgYSBFbGVtZW50IG5vZGUgTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbiB0aGUgVzNDIERPTSBlbGVtZW50IHRyYXZlcnNhbCBzcGVjIHNpbmNlIHdlIGRvbid0IGhhdmUgYmFjayA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhcmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgZWxlbWVudCBjaGlsZCBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlRG9jIi8+eG1sRnJlZURvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZURvYwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5GcmVlIHVwIGFsbCB0aGUgc3RydWN0dXJlcyB1c2VkIGJ5IGEgZG9jdW1lbnQsIHRyZWUgaW5jbHVkZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGRvY3VtZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZUR0ZCIvPnhtbEZyZWVEdGQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVEdGQJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+RnJlZSBhIERURCBzdHJ1Y3R1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBEVEQgc3RydWN0dXJlIHRvIGZyZWUgdXA8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlTm9kZSIvPnhtbEZyZWVOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlTm9kZQkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkZyZWUgYSBub2RlLCB0aGlzIGlzIGEgcmVjdXJzaXZlIGJlaGF2aW91ciwgYWxsIHRoZSBjaGlsZHJlbiBhcmUgZnJlZWQgdG9vLiBUaGlzIGRvZXNuJ3QgdW5saW5rIHRoZSBjaGlsZCBmcm9tIHRoZSBsaXN0LCB1c2UgeG1sVW5saW5rTm9kZSgpIGZpcnN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVOb2RlTGlzdCIvPnhtbEZyZWVOb2RlTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZU5vZGVMaXN0CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+RnJlZSBhIG5vZGUgYW5kIGFsbCBpdHMgc2libGluZ3MsIHRoaXMgaXMgYSByZWN1cnNpdmUgYmVoYXZpb3VyLCBhbGwgdGhlIGNoaWxkcmVuIGFyZSBmcmVlZCB0b28uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZU5zIi8+eG1sRnJlZU5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlTnMJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdXAgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byBhIG5hbWVzcGFjZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHBvaW50ZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlTnNMaXN0Ii8+eG1sRnJlZU5zTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZU5zTGlzdAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+RnJlZSB1cCBhbGwgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byB0aGUgY2hhaW5lZCBuYW1lc3BhY2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgbmFtZXNwYWNlIHBvaW50ZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlUHJvcCIvPnhtbEZyZWVQcm9wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlUHJvcAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkZyZWUgb25lIGF0dHJpYnV0ZSwgYWxsIHRoZSBjb250ZW50IGlzIGZyZWVkIHRvbzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVQcm9wTGlzdCIvPnhtbEZyZWVQcm9wTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVByb3BMaXN0CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+RnJlZSBhIHByb3BlcnR5IGFuZCBhbGwgaXRzIHNpYmxpbmdzLCBhbGwgdGhlIGNoaWxkcmVuIGFyZSBmcmVlZCB0b28uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBwcm9wZXJ0eSBpbiB0aGUgbGlzdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiLz54bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4JeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZQkodm9pZCk8YnIvPgorPC9wcmU+PHA+VHlwZXMgYXJlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfRVhBQ1QiPlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1Q8L2E+IC0gdXNlIGV4YWN0IHNpemVzLCBrZWVwcyBtZW1vcnkgdXNhZ2UgZG93biA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIj5YTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUPC9hPiAtIGRvdWJsZSBidWZmZXIgd2hlbiBleHRyYSBuZWVkZWQsIGltcHJvdmVzIHBlcmZvcm1hbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBhbGxvY2F0aW9uIHNjaGVtZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldENvbXByZXNzTW9kZSIvPnhtbEdldENvbXByZXNzTW9kZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxHZXRDb21wcmVzc01vZGUJCSh2b2lkKTxici8+Cis8L3ByZT48cD5nZXQgdGhlIGRlZmF1bHQgY29tcHJlc3Npb24gbW9kZSB1c2VkLCBaTElCIGJhc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCAodW5jb21wcmVzc2VkKSB0byA5IChtYXggY29tcHJlc3Npb24pPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0RG9jQ29tcHJlc3NNb2RlIi8+eG1sR2V0RG9jQ29tcHJlc3NNb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEdldERvY0NvbXByZXNzTW9kZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPmdldCB0aGUgY29tcHJlc3Npb24gcmF0aW8gZm9yIGEgZG9jdW1lbnQsIFpMSUIgYmFzZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wICh1bmNvbXByZXNzZWQpIHRvIDkgKG1heCBjb21wcmVzc2lvbik8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXRJbnRTdWJzZXQiLz54bWxHZXRJbnRTdWJzZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JeG1sR2V0SW50U3Vic2V0CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+R2V0IHRoZSBpbnRlcm5hbCBzdWJzZXQgb2YgYSBkb2N1bWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBEVEQgc3RydWN0dXJlIG9yIE5VTEwgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0TGFzdENoaWxkIi8+eG1sR2V0TGFzdENoaWxkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sR2V0TGFzdENoaWxkCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50KTxici8+Cis8L3ByZT48cD5TZWFyY2ggdGhlIGxhc3QgY2hpbGQgb2YgYSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsYXN0IGNoaWxkIG9yIE5VTEwgaWYgbm9uZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXRMaW5lTm8iLz54bWxHZXRMaW5lTm8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5sb25nCXhtbEdldExpbmVObwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5HZXQgbGluZSBudW1iZXIgb2YgQG5vZGUuIFRoaXMgcmVxdWlyZXMgYWN0aXZhdGlvbiBvZiB0aGlzIG9wdGlvbiBiZWZvcmUgaW52b2tpbmcgdGhlIHBhcnNlciBieSBjYWxsaW5nIHhtbExpbmVOdW1iZXJzRGVmYXVsdCgxKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dmFsaWQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldE5vTnNQcm9wIi8+eG1sR2V0Tm9Oc1Byb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sR2V0Tm9Oc1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZWFyY2ggYW5kIGdldCB0aGUgdmFsdWUgb2YgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyBkb2VzIHRoZSBlbnRpdHkgc3Vic3RpdHV0aW9uLiBUaGlzIGZ1bmN0aW9uIGxvb2tzIGluIERURCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWNsYXJhdGlvbiBmb3IgI0ZJWEVEIG9yIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuIFRoaXMgZnVuY3Rpb24gaXMgc2ltaWxhciB0byA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPiBleGNlcHQgaXQgd2lsbCBhY2NlcHQgb25seSBhbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpbiBubyBuYW1lc3BhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXROb2RlUGF0aCIvPnhtbEdldE5vZGVQYXRoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEdldE5vZGVQYXRoCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIvPgorPC9wcmU+PHA+QnVpbGQgYSBzdHJ1Y3R1cmUgYmFzZWQgUGF0aCBmb3IgdGhlIGdpdmVuIG5vZGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXRoIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIGNhbGxlciBtdXN0IGZyZWUgdGhlIHJldHVybmVkIHN0cmluZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldE5zTGlzdCIvPnhtbEdldE5zTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gKgl4bWxHZXROc0xpc3QJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCBhbGwgdGhlIG5hbWVzcGFjZSBhcHBseWluZyB0byBhIGdpdmVuIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gTlVMTCB0ZXJtaW5hdGVkIGFycmF5IG9mIGFsbCB0aGUgI3htbE5zUHRyIGZvdW5kIHRoYXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyIG9yIE5VTEwgaWYgbm8gbmFtZXNwYWNlIGlmIGRlZmluZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXROc1Byb3AiLz54bWxHZXROc1Byb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sR2V0TnNQcm9wCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZVNwYWNlKTxici8+Cis8L3ByZT48cD5TZWFyY2ggYW5kIGdldCB0aGUgdmFsdWUgb2YgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBoYXMgdG8gYmUgYW5jaG9yZWQgaW4gdGhlIG5hbWVzcGFjZSBzcGVjaWZpZWQuIFRoaXMgZG9lcyB0aGUgZW50aXR5IHN1YnN0aXR1dGlvbi4gVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvciBkZWZhdWx0IGRlY2xhcmF0aW9uIHZhbHVlcyB1bmxlc3MgRFREIHVzZSBoYXMgYmVlbiB0dXJuZWQgb2ZmLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lU3BhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgb2YgdGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kLiBJdCdzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldFByb3AiLz54bWxHZXRQcm9wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEdldFByb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZWFyY2ggYW5kIGdldCB0aGUgdmFsdWUgb2YgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyBkb2VzIHRoZSBlbnRpdHkgc3Vic3RpdHV0aW9uLiBUaGlzIGZ1bmN0aW9uIGxvb2tzIGluIERURCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWNsYXJhdGlvbiBmb3IgI0ZJWEVEIG9yIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuIE5PVEU6IHRoaXMgZnVuY3Rpb24gYWN0cyBpbmRlcGVuZGVudGx5IG9mIG5hbWVzcGFjZXMgYXNzb2NpYXRlZCB0byB0aGUgYXR0cmlidXRlLiBVc2UgeG1sR2V0TnNQcm9wKCkgb3IgeG1sR2V0Tm9Oc1Byb3AoKSBmb3IgbmFtZXNwYWNlIGF3YXJlIHByb2Nlc3NpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNOc1Byb3AiLz54bWxIYXNOc1Byb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgl4bWxIYXNOc1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lU3BhY2UpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCBmb3IgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBoYXMgdG8gYmUgYW5jaG9yZWQgaW4gdGhlIG5hbWVzcGFjZSBzcGVjaWZpZWQuIFRoaXMgZG9lcyB0aGUgZW50aXR5IHN1YnN0aXR1dGlvbi4gVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvciBkZWZhdWx0IGRlY2xhcmF0aW9uIHZhbHVlcyB1bmxlc3MgRFREIHVzZSBoYXMgYmVlbiB0dXJuZWQgb2ZmLiBOb3RlIHRoYXQgYSBuYW1lc3BhY2Ugb2YgTlVMTCBpbmRpY2F0ZXMgdG8gdXNlIHRoZSBkZWZhdWx0IG5hbWVzcGFjZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZVNwYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIG9mIHRoZSBuYW1lc3BhY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvciB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gb3IgTlVMTCBpZiBuZWl0aGVyIHdhcyBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxIYXNQcm9wIi8+eG1sSGFzUHJvcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CXhtbEhhc1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZWFyY2ggYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyBmdW5jdGlvbiBhbHNvIGxvb2tzIGluIERURCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWNsYXJhdGlvbiBmb3IgI0ZJWEVEIG9yIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvciB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gb3IgTlVMTCBpZiBuZWl0aGVyIHdhcyBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJc0JsYW5rTm9kZSIvPnhtbElzQmxhbmtOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzQmxhbmtOb2RlCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrcyB3aGV0aGVyIHRoaXMgbm9kZSBpcyBhbiBlbXB0eSBvciB3aGl0ZXNwYWNlIG9ubHkgKGFuZCBwb3NzaWJseSBpZ25vcmFibGUpIHRleHQtbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIHllcywgMCBubzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzWEhUTUwiLz54bWxJc1hIVE1MICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzWEhUTUwJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJRCk8YnIvPgorPC9wcmU+PHA+VHJ5IHRvIGZpbmQgaWYgdGhlIGRvY3VtZW50IGNvcnJlc3BvbmQgdG8gYW4gWEhUTUwgRFREPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTGFzdEVsZW1lbnRDaGlsZCIvPnhtbExhc3RFbGVtZW50Q2hpbGQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxMYXN0RWxlbWVudENoaWxkCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpPGJyLz4KKzwvcHJlPjxwPkZpbmRzIHRoZSBsYXN0IGNoaWxkIG5vZGUgb2YgdGhhdCBlbGVtZW50IHdoaWNoIGlzIGEgRWxlbWVudCBub2RlIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4gdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3QgZWxlbWVudCBjaGlsZCBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdDRGF0YUJsb2NrIi8+eG1sTmV3Q0RhdGFCbG9jayAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0NEYXRhQmxvY2sJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBjb250YWluaW5nIGEgQ0RBVEEgYmxvY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIENEQVRBIGJsb2NrIGNvbnRlbnQgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3Q2hhclJlZiIvPnhtbE5ld0NoYXJSZWYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdDaGFyUmVmCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgY2hhcmFjdGVyIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXIgcmVmIHN0cmluZywgc3RhcnRpbmcgd2l0aCAjIG9yICImYW1wOyMgLi4uIDsiPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdDaGlsZCIvPnhtbE5ld0NoaWxkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3Q2hpbGQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgY2hpbGQgZWxlbWVudCwgYWRkZWQgYXQgdGhlIGVuZCBvZiBAcGFyZW50IGNoaWxkcmVuIGxpc3QuIEBucyBhbmQgQGNvbnRlbnQgcGFyYW1ldGVycyBhcmUgb3B0aW9uYWwgKE5VTEwpLiBJZiBAbnMgaXMgTlVMTCwgdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudCBpbmhlcml0cyB0aGUgbmFtZXNwYWNlIG9mIEBwYXJlbnQuIElmIEBjb250ZW50IGlzIG5vbiBOVUxMLCBhIGNoaWxkIGxpc3QgY29udGFpbmluZyB0aGUgVEVYVHMgYW5kIEVOVElUWV9SRUZzIG5vZGUgd2lsbCBiZSBjcmVhdGVkLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3dzIGVudGl0eSByZWZlcmVuY2VzLiBYTUwgc3BlY2lhbCBjaGFycyBtdXN0IGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQoKSwgb3IgeG1sTmV3VGV4dENoaWxkKCkgc2hvdWxkIGJlIHVzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmFtZXNwYWNlIGlmIGFueTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIGNoaWxkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGNvbnRlbnQgb2YgdGhlIGNoaWxkIGlmIGFueS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld0NvbW1lbnQiLz54bWxOZXdDb21tZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3Q29tbWVudAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBub2RlIGNvbnRhaW5pbmcgYSBjb21tZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jIi8+eG1sTmV3RG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbE5ld0RvYwkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2ZXJzaW9uKTxici8+Cis8L3ByZT48cD5DcmVhdGVzIGEgbmV3IFhNTCBkb2N1bWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmVyc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmcgZ2l2aW5nIHRoZSB2ZXJzaW9uIG9mIFhNTCAiMS4wIjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgZG9jdW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdEb2NDb21tZW50Ii8+eG1sTmV3RG9jQ29tbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0RvY0NvbW1lbnQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgY29udGFpbmluZyBhIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gd2l0aGluIGEgZG9jdW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jRnJhZ21lbnQiLz54bWxOZXdEb2NGcmFnbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0RvY0ZyYWdtZW50CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBGcmFnbWVudCBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgb3duaW5nIHRoZSBmcmFnbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jTm9kZSIvPnhtbE5ld0RvY05vZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdEb2NOb2RlCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBub2RlIGVsZW1lbnQgd2l0aGluIGEgZG9jdW1lbnQuIEBucyBhbmQgQGNvbnRlbnQgYXJlIG9wdGlvbmFsIChOVUxMKS4gTk9URTogQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUgYSBwaWVjZSBvZiBYTUwgQ0RBVEEsIHNvIGl0IGFsbG93IGVudGl0aWVzIHJlZmVyZW5jZXMsIGJ1dCBYTUwgc3BlY2lhbCBjaGFycyBuZWVkIHRvIGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQoKS4gVXNlIHhtbE5ld0RvY1Jhd05vZGUoKSBpZiB5b3UgZG9uJ3QgbmVlZCBlbnRpdGllcyBzdXBwb3J0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld0RvY05vZGVFYXROYW1lIi8+eG1sTmV3RG9jTm9kZUVhdE5hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdEb2NOb2RlRWF0TmFtZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBub2RlIGVsZW1lbnQgd2l0aGluIGEgZG9jdW1lbnQuIEBucyBhbmQgQGNvbnRlbnQgYXJlIG9wdGlvbmFsIChOVUxMKS4gTk9URTogQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUgYSBwaWVjZSBvZiBYTUwgQ0RBVEEsIHNvIGl0IGFsbG93IGVudGl0aWVzIHJlZmVyZW5jZXMsIGJ1dCBYTUwgc3BlY2lhbCBjaGFycyBuZWVkIHRvIGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQoKS4gVXNlIHhtbE5ld0RvY1Jhd05vZGUoKSBpZiB5b3UgZG9uJ3QgbmVlZCBlbnRpdGllcyBzdXBwb3J0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld0RvY1BJIi8+eG1sTmV3RG9jUEkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdEb2NQSQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgUEkgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jUHJvcCIvPnhtbE5ld0RvY1Byb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgl4bWxOZXdEb2NQcm9wCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBwcm9wZXJ0eSBjYXJyaWVkIGJ5IGEgZG9jdW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld0RvY1Jhd05vZGUiLz54bWxOZXdEb2NSYXdOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3RG9jUmF3Tm9kZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBub2RlIGVsZW1lbnQgd2l0aGluIGEgZG9jdW1lbnQuIEBucyBhbmQgQGNvbnRlbnQgYXJlIG9wdGlvbmFsIChOVUxMKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIGlmIGFueTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRleHQgY29udGVudCBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld0RvY1RleHQiLz54bWxOZXdEb2NUZXh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3RG9jVGV4dAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IHRleHQgbm9kZSB3aXRoaW4gYSBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGV4dCBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdEb2NUZXh0TGVuIi8+eG1sTmV3RG9jVGV4dExlbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0RvY1RleHRMZW4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlIHdpdGggYW4gZXh0cmEgY29udGVudCBsZW5ndGggcGFyYW1ldGVyLiBUaGUgdGV4dCBub2RlIHBlcnRhaW4gdG8gYSBnaXZlbiBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGV4dCBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0ZXh0IGxlbi48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld0R0ZCIvPnhtbE5ld0R0ZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgl4bWxOZXdEdGQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgRFREIGZvciB0aGUgZXh0ZXJuYWwgc3Vic2V0LiBUbyBjcmVhdGUgYW4gaW50ZXJuYWwgc3Vic2V0LCB1c2UgeG1sQ3JlYXRlSW50U3Vic2V0KCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRFREIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBJRDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IERURCBzdHJ1Y3R1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdHbG9iYWxOcyIvPnhtbE5ld0dsb2JhbE5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgl4bWxOZXdHbG9iYWxOcwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGhyZWYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBOYW1lc3BhY2UsIHRoZSBvbGQgd2F5IHVzaW5nIFBJIGFuZCB3aXRob3V0IHNjb3BpbmcgREVQUkVDQVRFRCAhISE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGNhcnJ5aW5nIHRoZSBuYW1lc3BhY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhyZWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgYXNzb2NpYXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZml4IGZvciB0aGUgbmFtZXNwYWNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIHRoaXMgZnVuY3Rpb25hbGl0eSBoYWQgYmVlbiByZW1vdmVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3Tm9kZSIvPnhtbE5ld05vZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdOb2RlCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBlbGVtZW50LiBAbnMgaXMgb3B0aW9uYWwgKE5VTEwpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LiBVc2VzIHhtbFN0cmR1cCgpIHRvIG1ha2UgY29weSBvZiBAbmFtZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdOb2RlRWF0TmFtZSIvPnhtbE5ld05vZGVFYXROYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3Tm9kZUVhdE5hbWUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgZWxlbWVudC4gQG5zIGlzIG9wdGlvbmFsIChOVUxMKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdCwgd2l0aCBwb2ludGVyIEBuYW1lIGFzIG5ldyBub2RlJ3MgbmFtZS4gVXNlIHhtbE5ld05vZGUoKSBpZiBhIGNvcHkgb2YgQG5hbWUgc3RyaW5nIGlzIGlzIG5lZWRlZCBhcyBuZXcgbm9kZSdzIG5hbWUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3TnMiLz54bWxOZXdOcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JeG1sTmV3TnMJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBocmVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgpPGJyLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IE5hbWVzcGFjZS4gVGhpcyBmdW5jdGlvbiB3aWxsIHJlZnVzZSB0byBjcmVhdGUgYSBuYW1lc3BhY2Ugd2l0aCBhIHNpbWlsYXIgcHJlZml4IHRoYW4gYW4gZXhpc3Rpbmcgb25lIHByZXNlbnQgb24gdGhpcyBub2RlLiBXZSB1c2UgaHJlZj09TlVMTCBpbiB0aGUgY2FzZSBvZiBhbiBlbGVtZW50IGNyZWF0aW9uIHdoZXJlIHRoZSBuYW1lc3BhY2Ugd2FzIG5vdCBkZWZpbmVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgY2FycnlpbmcgdGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aHJlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBhc3NvY2lhdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggZm9yIHRoZSBuYW1lc3BhY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IG5hbWVzcGFjZSBwb2ludGVyIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdOc1Byb3AiLz54bWxOZXdOc1Byb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgl4bWxOZXdOc1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgcHJvcGVydHkgdGFnZ2VkIHdpdGggYSBuYW1lc3BhY2UgYW5kIGNhcnJpZWQgYnkgYSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhvbGRpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdOc1Byb3BFYXROYW1lIi8+eG1sTmV3TnNQcm9wRWF0TmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CXhtbE5ld05zUHJvcEVhdE5hbWUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBwcm9wZXJ0eSB0YWdnZWQgd2l0aCBhIG5hbWVzcGFjZSBhbmQgY2FycmllZCBieSBhIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaG9sZGluZyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1BJIi8+eG1sTmV3UEkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdQSQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gZWxlbWVudC4gVXNlIHhtbERvY05ld1BJIHByZWZlcmFibHkgdG8gZ2V0IHN0cmluZyBpbnRlcm5pbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQSSBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdQcm9wIi8+eG1sTmV3UHJvcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CXhtbE5ld1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IHByb3BlcnR5IGNhcnJpZWQgYnkgYSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhvbGRpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1JlZmVyZW5jZSIvPnhtbE5ld1JlZmVyZW5jZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld1JlZmVyZW5jZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IG5hbWUsIG9yIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBzdHJpbmcgd2l0aCAmYW1wOyBhbmQgOzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dCIvPnhtbE5ld1RleHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdUZXh0CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IHRleHQgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0ZXh0IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1RleHRDaGlsZCIvPnhtbE5ld1RleHRDaGlsZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld1RleHRDaGlsZAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBjaGlsZCBlbGVtZW50LCBhZGRlZCBhdCB0aGUgZW5kIG9mIEBwYXJlbnQgY2hpbGRyZW4gbGlzdC4gQG5zIGFuZCBAY29udGVudCBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbCAoTlVMTCkuIElmIEBucyBpcyBOVUxMLCB0aGUgbmV3bHkgY3JlYXRlZCBlbGVtZW50IGluaGVyaXRzIHRoZSBuYW1lc3BhY2Ugb2YgQHBhcmVudC4gSWYgQGNvbnRlbnQgaXMgbm9uIE5VTEwsIGEgY2hpbGQgVEVYVCBub2RlIHdpbGwgYmUgY3JlYXRlZCBjb250YWluaW5nIHRoZSBzdHJpbmcgQGNvbnRlbnQuIE5PVEU6IFVzZSB4bWxOZXdDaGlsZCgpIGlmIEBjb250ZW50IHdpbGwgY29udGFpbiBlbnRpdGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlc2VydmVkLiBVc2UgdGhpcyBmdW5jdGlvbiwgeG1sTmV3VGV4dENoaWxkKCksIGlmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IHJlc2VydmVkIFhNTCBjaGFycyB0aGF0IG1pZ2h0IGFwcGVhciBpbiBAY29udGVudCwgc3VjaCBhcyB0aGUgYW1wZXJzYW5kLCBncmVhdGVyLXRoYW4gb3IgbGVzcy10aGFuIHNpZ25zLCBhcmUgYXV0b21hdGljYWxseSByZXBsYWNlZCBieSB0aGVpciBYTUwgZXNjYXBlZCBlbnRpdHkgcmVwcmVzZW50YXRpb25zLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5hbWVzcGFjZSBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBjaGlsZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRleHQgY29udGVudCBvZiB0aGUgY2hpbGQgaWYgYW55LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dExlbiIvPnhtbE5ld1RleHRMZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdUZXh0TGVuCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlIHdpdGggYW4gZXh0cmEgcGFyYW1ldGVyIGZvciB0aGUgY29udGVudCdzIGxlbmd0aDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRleHQgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGV4dCBsZW4uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXh0RWxlbWVudFNpYmxpbmciLz54bWxOZXh0RWxlbWVudFNpYmxpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXh0RWxlbWVudFNpYmxpbmcJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkZpbmRzIHRoZSBmaXJzdCBjbG9zZXN0IG5leHQgc2libGluZyBvZiB0aGUgbm9kZSB3aGljaCBpcyBhbiBlbGVtZW50IG5vZGUuIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4gdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IHNpYmxpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZUFkZENvbnRlbnQiLz54bWxOb2RlQWRkQ29udGVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZUFkZENvbnRlbnQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPkFwcGVuZCB0aGUgZXh0cmEgc3Vic3RyaW5nIHRvIHRoZSBub2RlIGNvbnRlbnQuIE5PVEU6IEluIGNvbnRyYXN0IHRvIHhtbE5vZGVTZXRDb250ZW50KCksIEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIHJhdyB0ZXh0LCBzbyB1bmVzY2FwZWQgWE1MIHNwZWNpYWwgY2hhcnMgYXJlIGFsbG93ZWQsIGVudGl0eSByZWZlcmVuY2VzIGFyZSBub3Qgc3VwcG9ydGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBtb2RpZmllZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgY29udGVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVBZGRDb250ZW50TGVuIi8+eG1sTm9kZUFkZENvbnRlbnRMZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5vZGVBZGRDb250ZW50TGVuCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkFwcGVuZCB0aGUgZXh0cmEgc3Vic3RyaW5nIHRvIHRoZSBub2RlIGNvbnRlbnQuIE5PVEU6IEluIGNvbnRyYXN0IHRvIHhtbE5vZGVTZXRDb250ZW50TGVuKCksIEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIHJhdyB0ZXh0LCBzbyB1bmVzY2FwZWQgWE1MIHNwZWNpYWwgY2hhcnMgYXJlIGFsbG93ZWQsIGVudGl0eSByZWZlcmVuY2VzIGFyZSBub3Qgc3VwcG9ydGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBtb2RpZmllZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiBAY29udGVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVCdWZHZXRDb250ZW50Ii8+eG1sTm9kZUJ1ZkdldENvbnRlbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTm9kZUJ1ZkdldENvbnRlbnQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmZmVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+UmVhZCB0aGUgdmFsdWUgb2YgYSBub2RlIEBjdXIsIHRoaXMgY2FuIGJlIGVpdGhlciB0aGUgdGV4dCBjYXJyaWVkIGRpcmVjdGx5IGJ5IHRoaXMgbm9kZSBpZiBpdCdzIGEgVEVYVCBub2RlIG9yIHRoZSBhZ2dyZWdhdGUgc3RyaW5nIG9mIHRoZSB2YWx1ZXMgY2FycmllZCBieSB0aGlzIG5vZGUgY2hpbGQncyAoVEVYVCBhbmQgRU5USVRZX1JFRikuIEVudGl0eSByZWZlcmVuY2VzIGFyZSBzdWJzdGl0dXRlZC4gRmlsbHMgdXAgdGhlIGJ1ZmZlciBAYnVmZmVyIHdpdGggdGhpcyB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyByZWFkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb2RlRHVtcCIvPnhtbE5vZGVEdW1wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5vZGVEdW1wCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgaW50IGxldmVsLCA8YnIvPgkJCQkJIGludCBmb3JtYXQpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbEluZGVudFRyZWVPdXRwdXQiPnhtbEluZGVudFRyZWVPdXRwdXQ8L2E+ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGV2ZWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbWJyaWNhdGlvbiBsZXZlbCBmb3IgaW5kZW50aW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlzIGZvcm1hdHRpbmcgYWxsb3dlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIHRoZSBidWZmZXIgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVEdW1wT3V0cHV0Ii8+eG1sTm9kZUR1bXBPdXRwdXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5vZGVEdW1wT3V0cHV0CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBpbnQgbGV2ZWwsIDxici8+CQkJCQkgaW50IGZvcm1hdCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsIGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4gTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiA8YSBocmVmPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxJbmRlbnRUcmVlT3V0cHV0Ij54bWxJbmRlbnRUcmVlT3V0cHV0PC9hPiA9IDEgb3IgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgd2FzIGNhbGxlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxldmVsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW1icmljYXRpb24gbGV2ZWwgZm9yIGluZGVudGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pcyBmb3JtYXR0aW5nIGFsbG93ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBlbmNvZGluZyBzdHJpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb2RlR2V0QmFzZSIvPnhtbE5vZGVHZXRCYXNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbE5vZGVHZXRCYXNlCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaGVzIGZvciB0aGUgQkFTRSBVUkwuIFRoZSBjb2RlIHNob3VsZCB3b3JrIG9uIGJvdGggWE1MIGFuZCBIVE1MIGRvY3VtZW50IGV2ZW4gaWYgYmFzZSBtZWNoYW5pc21zIGFyZSBjb21wbGV0ZWx5IGRpZmZlcmVudC4gSXQgcmV0dXJucyB0aGUgYmFzZSBhcyBkZWZpbmVkIGluIFJGQyAyMzk2IHNlY3Rpb25zIDUuMS4xLiBCYXNlIFVSSSB3aXRoaW4gRG9jdW1lbnQgQ29udGVudCBhbmQgNS4xLjIuIEJhc2UgVVJJIGZyb20gdGhlIEVuY2Fwc3VsYXRpbmcgRW50aXR5IEhvd2V2ZXIgaXQgZG9lcyBub3QgcmV0dXJuIHRoZSBkb2N1bWVudCBiYXNlICg1LjEuMyksIHVzZSBkb2MtJmd0O1VSTCBpbiB0aGlzIGNhc2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHRoZSBub2RlIHBlcnRhaW5zIHRvPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGJlaW5nIGNoZWNrZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgYmFzZSBVUkwsIG9yIE5VTEwgaWYgbm90IGZvdW5kIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZUdldENvbnRlbnQiLz54bWxOb2RlR2V0Q29udGVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxOb2RlR2V0Q29udGVudAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5SZWFkIHRoZSB2YWx1ZSBvZiBhIG5vZGUsIHRoaXMgY2FuIGJlIGVpdGhlciB0aGUgdGV4dCBjYXJyaWVkIGRpcmVjdGx5IGJ5IHRoaXMgbm9kZSBpZiBpdCdzIGEgVEVYVCBub2RlIG9yIHRoZSBhZ2dyZWdhdGUgc3RyaW5nIG9mIHRoZSB2YWx1ZXMgY2FycmllZCBieSB0aGlzIG5vZGUgY2hpbGQncyAoVEVYVCBhbmQgRU5USVRZX1JFRikuIEVudGl0eSByZWZlcmVuY2VzIGFyZSBzdWJzdGl0dXRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbENoYXIgKiBvciBOVUxMIGlmIG5vIGNvbnRlbnQgaXMgYXZhaWxhYmxlLiBJdCdzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVHZXRMYW5nIi8+eG1sTm9kZUdldExhbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTm9kZUdldExhbmcJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaGVzIHRoZSBsYW5ndWFnZSBvZiBhIG5vZGUsIGkuZS4gdGhlIHZhbHVlcyBvZiB0aGUgeG1sOmxhbmcgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb3IgdGhlIG9uZSBjYXJyaWVkIGJ5IHRoZSBuZWFyZXN0IGFuY2VzdG9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBjaGVja2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGxhbmcgdmFsdWUsIG9yIE5VTEwgaWYgbm90IGZvdW5kIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZUdldFNwYWNlUHJlc2VydmUiLz54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+U2VhcmNoZXMgdGhlIHNwYWNlIHByZXNlcnZpbmcgYmVoYXZpb3VyIG9mIGEgbm9kZSwgaS5lLiB0aGUgdmFsdWVzIG9mIHRoZSB4bWw6c3BhY2UgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb3IgdGhlIG9uZSBjYXJyaWVkIGJ5IHRoZSBuZWFyZXN0IGFuY2VzdG9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBjaGVja2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpZiB4bWw6c3BhY2UgaXMgbm90IGluaGVyaXRlZCwgMCBpZiAiZGVmYXVsdCIsIDEgaWYgInByZXNlcnZlIjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVJc1RleHQiLz54bWxOb2RlSXNUZXh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5vZGVJc1RleHQJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIvPgorPC9wcmU+PHA+SXMgdGhpcyBub2RlIGEgVGV4dCBub2RlID88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIHllcywgMCBubzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nIi8+eG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbGlzdCwgPGJyLz4JCQkJCSBpbnQgaW5MaW5lKTxici8+Cis8L3ByZT48cD5CdWlsZHMgdGhlIHN0cmluZyBlcXVpdmFsZW50IHRvIHRoZSB0ZXh0IGNvbnRhaW5lZCBpbiB0aGUgTm9kZSBsaXN0IG1hZGUgb2YgVEVYVHMgYW5kIEVOVElUWV9SRUZzLCBjb250cmFyeSB0byB4bWxOb2RlTGlzdEdldFN0cmluZygpIHRoaXMgZnVuY3Rpb24gZG9lc24ndCBkbyBhbnkgY2hhcmFjdGVyIGVuY29kaW5nIGhhbmRsaW5nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmxpc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTm9kZSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbkxpbmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCB3ZSByZXBsYWNlIGVudGl0eSBjb250ZW50cyBvciBzaG93IHRoZWlyIGV4dGVybmFsIGZvcm08L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgc3RyaW5nIGNvcHksIHRoZSBjYWxsZXIgbXVzdCBmcmVlIGl0IHdpdGggeG1sRnJlZSgpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVMaXN0R2V0U3RyaW5nIi8+eG1sTm9kZUxpc3RHZXRTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTm9kZUxpc3RHZXRTdHJpbmcJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbGlzdCwgPGJyLz4JCQkJCSBpbnQgaW5MaW5lKTxici8+Cis8L3ByZT48cD5CdWlsZCB0aGUgc3RyaW5nIGVxdWl2YWxlbnQgdG8gdGhlIHRleHQgY29udGFpbmVkIGluIHRoZSBOb2RlIGxpc3QgbWFkZSBvZiBURVhUcyBhbmQgRU5USVRZX1JFRnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saXN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIE5vZGUgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5MaW5lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgd2UgcmVwbGFjZSBlbnRpdHkgY29udGVudHMgb3Igc2hvdyB0aGVpciBleHRlcm5hbCBmb3JtPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIHN0cmluZyBjb3B5LCB0aGUgY2FsbGVyIG11c3QgZnJlZSBpdCB3aXRoIHhtbEZyZWUoKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb2RlU2V0QmFzZSIvPnhtbE5vZGVTZXRCYXNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOb2RlU2V0QmFzZQkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHVyaSk8YnIvPgorPC9wcmU+PHA+U2V0IChvciByZXNldCkgdGhlIGJhc2UgVVJJIG9mIGEgbm9kZSwgaS5lLiB0aGUgdmFsdWUgb2YgdGhlIHhtbDpiYXNlIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgY2hhbmdlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXJpPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGJhc2UgVVJJPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldENvbnRlbnQiLz54bWxOb2RlU2V0Q29udGVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZVNldENvbnRlbnQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPlJlcGxhY2UgdGhlIGNvbnRlbnQgb2YgYSBub2RlLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3dzIGVudGl0eSByZWZlcmVuY2VzLCBidXQgWE1MIHNwZWNpYWwgY2hhcnMgbmVlZCB0byBiZSBlc2NhcGVkIGZpcnN0IGJ5IHVzaW5nIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCkgcmVzcC4geG1sRW5jb2RlU3BlY2lhbENoYXJzKCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGJlaW5nIG1vZGlmaWVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHZhbHVlIG9mIHRoZSBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldENvbnRlbnRMZW4iLz54bWxOb2RlU2V0Q29udGVudExlbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZVNldENvbnRlbnRMZW4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+UmVwbGFjZSB0aGUgY29udGVudCBvZiBhIG5vZGUuIE5PVEU6IEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIGEgcGllY2Ugb2YgWE1MIENEQVRBLCBzbyBpdCBhbGxvd3MgZW50aXR5IHJlZmVyZW5jZXMsIGJ1dCBYTUwgc3BlY2lhbCBjaGFycyBuZWVkIHRvIGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQoKSByZXNwLiB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMoKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgbW9kaWZpZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgdmFsdWUgb2YgdGhlIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgQGNvbnRlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb2RlU2V0TGFuZyIvPnhtbE5vZGVTZXRMYW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOb2RlU2V0TGFuZwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxhbmcpPGJyLz4KKzwvcHJlPjxwPlNldCB0aGUgbGFuZ3VhZ2Ugb2YgYSBub2RlLCBpLmUuIHRoZSB2YWx1ZXMgb2YgdGhlIHhtbDpsYW5nIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgY2hhbmdlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGFuZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhbmd1YWdlIGRlc2NyaXB0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldE5hbWUiLz54bWxOb2RlU2V0TmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZVNldE5hbWUJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZXQgKG9yIHJlc2V0KSB0aGUgbmFtZSBvZiBhIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGJlaW5nIGNoYW5nZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgdGFnIG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSIvPnhtbE5vZGVTZXRTcGFjZVByZXNlcnZlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBpbnQgdmFsKTxici8+Cis8L3ByZT48cD5TZXQgKG9yIHJlc2V0KSB0aGUgc3BhY2UgcHJlc2VydmluZyBiZWhhdmlvdXIgb2YgYSBub2RlLCBpLmUuIHRoZSB2YWx1ZSBvZiB0aGUgeG1sOnNwYWNlIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgY2hhbmdlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgeG1sOnNwYWNlIHZhbHVlICgiMCI6IGRlZmF1bHQsIDE6ICJwcmVzZXJ2ZSIpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUHJldmlvdXNFbGVtZW50U2libGluZyIvPnhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5GaW5kcyB0aGUgZmlyc3QgY2xvc2VzdCBwcmV2aW91cyBzaWJsaW5nIG9mIHRoZSBub2RlIHdoaWNoIGlzIGFuIGVsZW1lbnQgbm9kZS4gTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbiB0aGUgVzNDIERPTSBlbGVtZW50IHRyYXZlcnNhbCBzcGVjIHNpbmNlIHdlIGRvbid0IGhhdmUgYmFjayA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmV2aW91cyBlbGVtZW50IHNpYmxpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVjb25jaWxpYXRlTnMiLz54bWxSZWNvbmNpbGlhdGVOcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWNvbmNpbGlhdGVOcwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdHJlZSk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBjaGVja3MgdGhhdCBhbGwgdGhlIG5hbWVzcGFjZXMgZGVjbGFyZWQgd2l0aGluIHRoZSBnaXZlbiB0cmVlIGFyZSBwcm9wZXJseSBkZWNsYXJlZC4gVGhpcyBpcyBuZWVkZWQgZm9yIGV4YW1wbGUgYWZ0ZXIgQ29weSBvciBDdXQgYW5kIHRoZW4gcGFzdGUgb3BlcmF0aW9ucy4gVGhlIHN1YnRyZWUgbWF5IHN0aWxsIGhvbGQgcG9pbnRlcnMgdG8gbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBvdXRzaWRlIHRoZSBzdWJ0cmVlIG9yIGludmFsaWQvbWFza2VkLiBBcyBtdWNoIGFzIHBvc3NpYmxlIHRoZSBmdW5jdGlvbiB0cnkgdG8gcmV1c2UgdGhlIGV4aXN0aW5nIG5hbWVzcGFjZXMgZm91bmQgaW4gdGhlIG5ldyBlbnZpcm9ubWVudC4gSWYgbm90IHBvc3NpYmxlIHRoZSBuZXcgbmFtZXNwYWNlcyBhcmUgcmVkZWNsYXJlZCBvbiBAdHJlZSBhdCB0aGUgdG9wIG9mIHRoZSBnaXZlbiBzdWJ0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZSBkZWZpbmluZyB0aGUgc3VidHJlZSB0byByZWNvbmNpbGlhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBjcmVhdGVkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVtb3ZlUHJvcCIvPnhtbFJlbW92ZVByb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVtb3ZlUHJvcAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPlVubGluayBhbmQgZnJlZSBvbmUgYXR0cmlidXRlLCBhbGwgdGhlIGNvbnRlbnQgaXMgZnJlZWQgdG9vIE5vdGUgdGhpcyBkb2Vzbid0IHdvcmsgZm9yIG5hbWVzcGFjZSBkZWZpbml0aW9uIGF0dHJpYnV0ZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZXBsYWNlTm9kZSIvPnhtbFJlcGxhY2VOb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sUmVwbGFjZU5vZGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBvbGQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5VbmxpbmsgdGhlIG9sZCBub2RlIGZyb20gaXRzIGN1cnJlbnQgY29udGV4dCwgcHJ1bmUgdGhlIG5ldyBvbmUgYXQgdGhlIHNhbWUgcGxhY2UuIElmIEBjdXIgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW4gYSBkb2N1bWVudCBpdCBpcyBmaXJzdCB1bmxpbmtlZCBmcm9tIGl0cyBleGlzdGluZyBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b2xkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb2xkIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBAb2xkIG5vZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTYXZlRmlsZSIvPnhtbFNhdmVGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNhdmVGaWxlCQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5EdW1wIGFuIFhNTCBkb2N1bWVudCB0byBhIGZpbGUuIFdpbGwgdXNlIGNvbXByZXNzaW9uIGlmIGNvbXBpbGVkIGluIGFuZCBlbmFibGVkLiBJZiBAZmlsZW5hbWUgaXMgIi0iIHRoZSBzdGRvdXQgZmlsZSBpcyB1c2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSAob3IgVVJMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZpbGVFbmMiLz54bWxTYXZlRmlsZUVuYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTYXZlRmlsZUVuYwkJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIGRvY3VtZW50LCBjb252ZXJ0aW5nIGl0IHRvIHRoZSBnaXZlbiBlbmNvZGluZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSAob3IgVVJMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiBhbiBlbmNvZGluZyAob3IgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZpbGVUbyIvPnhtbFNhdmVGaWxlVG8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZUZpbGVUbwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxici8+Cis8L3ByZT48cD5EdW1wIGFuIFhNTCBkb2N1bWVudCB0byBhbiBJL08gYnVmZmVyLiBXYXJuaW5nICEgVGhpcyBjYWxsIHhtbE91dHB1dEJ1ZmZlckNsb3NlKCkgb24gYnVmIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgYWZ0ZXIgdGhpcyBjYWxsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvdXRwdXQgSS9PIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgaWYgYW55IGFzc3VtaW5nIHRoZSBJL08gbGF5ZXIgaGFuZGxlcyB0aGUgdHJhbmNvZGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTYXZlRm9ybWF0RmlsZSIvPnhtbFNhdmVGb3JtYXRGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNhdmVGb3JtYXRGaWxlCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxici8+CQkJCQkgaW50IGZvcm1hdCk8YnIvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlLiBXaWxsIHVzZSBjb21wcmVzc2lvbiBpZiBjb21waWxlZCBpbiBhbmQgZW5hYmxlZC4gSWYgQGZpbGVuYW1lIGlzICItIiB0aGUgc3Rkb3V0IGZpbGUgaXMgdXNlZC4gSWYgQGZvcm1hdCBpcyBzZXQgdGhlbiB0aGUgZG9jdW1lbnQgd2lsbCBiZSBpbmRlbnRlZCBvbiBvdXRwdXQuIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgPGEgaHJlZj0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sSW5kZW50VHJlZU91dHB1dCI+eG1sSW5kZW50VHJlZU91dHB1dDwvYT4gPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgKG9yIFVSTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNhdmVGb3JtYXRGaWxlRW5jIi8+eG1sU2F2ZUZvcm1hdEZpbGVFbmMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZUZvcm1hdEZpbGVFbmMJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IGZvcm1hdCk8YnIvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlIG9yIGFuIFVSTC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgb3IgVVJMIHRvIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgYmVpbmcgc2F2ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgZW5jb2RpbmcgdG8gdXNlIG9yIE5VTEwuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZSBhZGRlZC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yLiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIDxhIGhyZWY9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbEluZGVudFRyZWVPdXRwdXQiPnhtbEluZGVudFRyZWVPdXRwdXQ8L2E+ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZvcm1hdEZpbGVUbyIvPnhtbFNhdmVGb3JtYXRGaWxlVG8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZUZvcm1hdEZpbGVUbwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IGZvcm1hdCk8YnIvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYW4gSS9PIGJ1ZmZlci4gV2FybmluZyAhIFRoaXMgY2FsbCB4bWxPdXRwdXRCdWZmZXJDbG9zZSgpIG9uIGJ1ZiB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGFmdGVyIHRoaXMgY2FsbC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3V0cHV0IEkvTyBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIGlmIGFueSBhc3N1bWluZyB0aGUgSS9PIGxheWVyIGhhbmRsZXMgdGhlIHRyYW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2VhcmNoTnMiLz54bWxTZWFyY2hOcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JeG1sU2VhcmNoTnMJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVTcGFjZSk8YnIvPgorPC9wcmU+PHA+U2VhcmNoIGEgTnMgcmVnaXN0ZXJlZCB1bmRlciBhIGdpdmVuIG5hbWUgc3BhY2UgZm9yIGEgZG9jdW1lbnQuIHJlY3Vyc2Ugb24gdGhlIHBhcmVudHMgdW50aWwgaXQgZmluZHMgdGhlIGRlZmluZWQgbmFtZXNwYWNlIG9yIHJldHVybiBOVUxMIG90aGVyd2lzZS4gQG5hbWVTcGFjZSBjYW4gYmUgTlVMTCwgdGhpcyBpcyBhIHNlYXJjaCBmb3IgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLiBXZSBkb24ndCBhbGxvdyB0byBjcm9zcyBlbnRpdGllcyBib3VuZGFyaWVzLiBJZiB5b3UgZG9uJ3QgZGVjbGFyZSB0aGUgbmFtZXNwYWNlIHdpdGhpbiB0aG9zZSB5b3Ugd2lsbCBiZSBpbiB0cm91YmxlcyAhISEgQSB3YXJuaW5nIGlzIGdlbmVyYXRlZCB0byBjb3ZlciB0aGlzIGNhc2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZVNwYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBwb2ludGVyIG9yIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2VhcmNoTnNCeUhyZWYiLz54bWxTZWFyY2hOc0J5SHJlZiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JeG1sU2VhcmNoTnNCeUhyZWYJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZik8YnIvPgorPC9wcmU+PHA+U2VhcmNoIGEgTnMgYWxpYXNpbmcgYSBnaXZlbiBVUkkuIFJlY3Vyc2Ugb24gdGhlIHBhcmVudHMgdW50aWwgaXQgZmluZHMgdGhlIGRlZmluZWQgbmFtZXNwYWNlIG9yIHJldHVybiBOVUxMIG90aGVyd2lzZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ocmVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHBvaW50ZXIgb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIi8+eG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4gc2NoZW1lKTxici8+Cis8L3ByZT48cD5TZXQgdGhlIGJ1ZmZlciBhbGxvY2F0aW9uIG1ldGhvZC4gVHlwZXMgYXJlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfRVhBQ1QiPlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1Q8L2E+IC0gdXNlIGV4YWN0IHNpemVzLCBrZWVwcyBtZW1vcnkgdXNhZ2UgZG93biA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIj5YTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUPC9hPiAtIGRvdWJsZSBidWZmZXIgd2hlbiBleHRyYSBuZWVkZWQsIGltcHJvdmVzIHBlcmZvcm1hbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG9jYXRpb24gbWV0aG9kIHRvIHVzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNldENvbXByZXNzTW9kZSIvPnhtbFNldENvbXByZXNzTW9kZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2V0Q29tcHJlc3NNb2RlCQkoaW50IG1vZGUpPGJyLz4KKzwvcHJlPjxwPnNldCB0aGUgZGVmYXVsdCBjb21wcmVzc2lvbiBtb2RlIHVzZWQsIFpMSUIgYmFzZWQgQ29ycmVjdCB2YWx1ZXM6IDAgKHVuY29tcHJlc3NlZCkgdG8gOSAobWF4IGNvbXByZXNzaW9uKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bW9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXByZXNzaW9uIHJhdGlvPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2V0RG9jQ29tcHJlc3NNb2RlIi8+eG1sU2V0RG9jQ29tcHJlc3NNb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXREb2NDb21wcmVzc01vZGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGludCBtb2RlKTxici8+Cis8L3ByZT48cD5zZXQgdGhlIGNvbXByZXNzaW9uIHJhdGlvIGZvciBhIGRvY3VtZW50LCBaTElCIGJhc2VkIENvcnJlY3QgdmFsdWVzOiAwICh1bmNvbXByZXNzZWQpIHRvIDkgKG1heCBjb21wcmVzc2lvbik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcHJlc3Npb24gcmF0aW88L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXRMaXN0RG9jIi8+eG1sU2V0TGlzdERvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2V0TGlzdERvYwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBsaXN0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPnVwZGF0ZSBhbGwgbm9kZXMgaW4gdGhlIGxpc3QgdG8gcG9pbnQgdG8gdGhlIHJpZ2h0IGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saXN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXROcyIvPnhtbFNldE5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXROcwkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMpPGJyLz4KKzwvcHJlPjxwPkFzc29jaWF0ZSBhIG5hbWVzcGFjZSB0byBhIG5vZGUsIGEgcG9zdGVyaW9yaS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZSBpbiB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5hbWVzcGFjZSBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2V0TnNQcm9wIi8+eG1sU2V0TnNQcm9wICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sU2V0TnNQcm9wCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+U2V0IChvciByZXNldCkgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gY2FycmllZCBieSBhIG5vZGUuIFRoZSBucyBzdHJ1Y3R1cmUgbXVzdCBiZSBpbiBzY29wZSwgdGhpcyBpcyBub3QgY2hlY2tlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIGRlZmluaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gcG9pbnRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTZXRQcm9wIi8+eG1sU2V0UHJvcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CXhtbFNldFByb3AJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+U2V0IChvciByZXNldCkgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gY2FycmllZCBieSBhIG5vZGUuIElmIEBuYW1lIGhhcyBhIHByZWZpeCwgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBuYW1lc3BhY2UtYmluZGluZyB3aWxsIGJlIHVzZWQsIGlmIGluIHNjb3BlOyBpdCBpcyBhbiBlcnJvciBpdCB0aGVyZSdzIG5vIHN1Y2ggbnMtYmluZGluZyBmb3IgdGhlIHByZWZpeCBpbiBzY29wZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZSAoYSBRTmFtZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBwb2ludGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNldFRyZWVEb2MiLz54bWxTZXRUcmVlRG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXRUcmVlRG9jCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRyZWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+dXBkYXRlIGFsbCBub2RlcyB1bmRlciB0aGUgdHJlZSB0byBwb2ludCB0byB0aGUgcmlnaHQgZG9jdW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0b3AgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTcGxpdFFOYW1lMiIvPnhtbFNwbGl0UU5hbWUyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFNwbGl0UU5hbWUyCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBwcmVmaXgpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBxdWFsaWZpZWQgbmFtZSBzdHJpbmcgW05TIDVdIFFOYW1lIDo6PSAoUHJlZml4ICc6Jyk/IExvY2FsUGFydCBbTlMgNl0gUHJlZml4IDo6PSBOQ05hbWUgW05TIDddIExvY2FsUGFydCA6Oj0gTkNOYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVsbCBRTmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKio8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90IGEgUU5hbWUsIG90aGVyd2lzZSB0aGUgbG9jYWwgcGFydCwgYW5kIHByZWZpeCBpcyB1cGRhdGVkIHRvIGdldCB0aGUgUHJlZml4IGlmIGFueS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTcGxpdFFOYW1lMyIvPnhtbFNwbGl0UU5hbWUzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFNwbGl0UU5hbWUzCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50ICogbGVuKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgcXVhbGlmaWVkIG5hbWUgc3RyaW5nLGk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdWxsIFFOYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludCAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIGl0IGlzIG5vdCBhIFF1YWxpZmllZCBOYW1lLCBvdGhlcndpc2UsIHVwZGF0ZSBsZW4gd2l0aCB0aGUgbGVuZ2h0IGluIGJ5dGUgb2YgdGhlIHByZWZpeCBhbmQgcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIG5hbWUgd2l0aG91dCB0aGUgcHJlZml4PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyaW5nR2V0Tm9kZUxpc3QiLz54bWxTdHJpbmdHZXROb2RlTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFN0cmluZ0dldE5vZGVMaXN0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+UGFyc2UgdGhlIHZhbHVlIHN0cmluZyBhbmQgYnVpbGQgdGhlIG5vZGUgbGlzdCBhc3NvY2lhdGVkLiBTaG91bGQgcHJvZHVjZSBhIGZsYXQgdHJlZSB3aXRoIG9ubHkgVEVYVHMgYW5kIEVOVElUWV9SRUZzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGNoaWxkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QiLz54bWxTdHJpbmdMZW5HZXROb2RlTGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFN0cmluZ0xlbkdldE5vZGVMaXN0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5QYXJzZSB0aGUgdmFsdWUgc3RyaW5nIGFuZCBidWlsZCB0aGUgbm9kZSBsaXN0IGFzc29jaWF0ZWQuIFNob3VsZCBwcm9kdWNlIGEgZmxhdCB0cmVlIHdpdGggb25seSBURVhUcyBhbmQgRU5USVRZX1JFRnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBvZiB0aGUgdGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgZmlyc3QgY2hpbGQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0Q29uY2F0Ii8+eG1sVGV4dENvbmNhdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0Q29uY2F0CQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+Q29uY2F0IHRoZSBnaXZlbiBzdHJpbmcgYXQgdGhlIGVuZCBvZiB0aGUgZXhpc3Rpbmcgbm9kZSBjb250ZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QGNvbnRlbnQgbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRNZXJnZSIvPnhtbFRleHRNZXJnZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFRleHRNZXJnZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGZpcnN0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHNlY29uZCk8YnIvPgorPC9wcmU+PHA+TWVyZ2UgdHdvIHRleHQgbm9kZXMgaW50byBvbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpcnN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgdGV4dCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZWNvbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgdGV4dCBub2RlIGJlaW5nIG1lcmdlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IHRleHQgbm9kZSBhdWdtZW50ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVbmxpbmtOb2RlIi8+eG1sVW5saW5rTm9kZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sVW5saW5rTm9kZQkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPlVubGluayBhIG5vZGUgZnJvbSBpdCdzIGN1cnJlbnQgY29udGV4dCwgdGhlIG5vZGUgaXMgbm90IGZyZWVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVW5zZXROc1Byb3AiLz54bWxVbnNldE5zUHJvcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVbnNldE5zUHJvcAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPlJlbW92ZSBhbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBjYXJyaWVkIGJ5IGEgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBkZWZpbml0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZXNzZnVsLCAtMSBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVbnNldFByb3AiLz54bWxVbnNldFByb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVW5zZXRQcm9wCQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPlJlbW92ZSBhbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBjYXJyaWVkIGJ5IGEgbm9kZS4gVGhpcyBoYW5kbGVzIG9ubHkgYXR0cmlidXRlcyBpbiBubyBuYW1lc3BhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2Vzc2Z1bCwgLTEgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVOQ05hbWUiLz54bWxWYWxpZGF0ZU5DTmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU5DTmFtZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSBpbnQgc3BhY2UpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiBOQ05hbWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNwYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbGxvdyBzcGFjZXMgaW4gZnJvbnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVOTVRva2VuIi8+eG1sVmFsaWRhdGVOTVRva2VuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlTk1Ub2tlbgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSBpbnQgc3BhY2UpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiBOTVRva2VuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zcGFjZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YWxsb3cgc3BhY2VzIGluIGZyb250IGFuZCBlbmQgb2YgdGhlIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlTmFtZSIvPnhtbFZhbGlkYXRlTmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU5hbWUJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIGludCBzcGFjZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgdGhhdCBhIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBsZXhpY2FsIHNwYWNlIG9mIE5hbWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNwYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbGxvdyBzcGFjZXMgaW4gZnJvbnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVRTmFtZSIvPnhtbFZhbGlkYXRlUU5hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVRTmFtZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSBpbnQgc3BhY2UpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiBRTmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3BhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi11cmkuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi11cmkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjMzYzRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXVyaS5odG1sCkBAIC0wLDAgKzEsMTU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnVyaTogbGlicmFyeSBvZiBnZW5lcmljIFVSSSByZWxhdGVkIHJvdXRpbmVzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj51cmk8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD51cmkgLSBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8L3A+CisgICAgPHA+bGlicmFyeSBvZiBnZW5lcmljIFVSSSByZWxhdGVkIHJvdXRpbmVzIEltcGxlbWVudHMgUkZDIDIzOTYgPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgc3RydWN0IF94bWxVUkkgPGEgaHJlZj0iI3htbFVSSSI+eG1sVVJJPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUkkiPnhtbFVSSTwvYT4gKiA8YSBocmVmPSIjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+OworaW50CTxhIGhyZWY9IiN4bWxOb3JtYWxpemVVUklQYXRoIj54bWxOb3JtYWxpemVVUklQYXRoPC9hPgkJKGNoYXIgKiBwYXRoKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFByaW50VVJJIj54bWxQcmludFVSSTwvYT4JCQkoRklMRSAqIHN0cmVhbSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiB1cmkpOworPGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlVVJJUmF3Ij54bWxQYXJzZVVSSVJhdzwvYT4JCShjb25zdCBjaGFyICogc3RyLCA8YnIvPgkJCQkJIGludCByYXcpOworY2hhciAqCTxhIGhyZWY9IiN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+CQkoY29uc3QgY2hhciAqIHN0ciwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNoYXIgKiB0YXJnZXQpOworPGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT4JCShjb25zdCBjaGFyICogc3RyKTsKKzxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+CTxhIGhyZWY9IiN4bWxDcmVhdGVVUkkiPnhtbENyZWF0ZVVSSTwvYT4JCSh2b2lkKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVVJJRXNjYXBlU3RyIj54bWxVUklFc2NhcGVTdHI8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbGlzdCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwYXRoKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQ2Fub25pY1BhdGgiPnhtbENhbm9uaWNQYXRoPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwYXRoKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVVUkkiPnhtbEZyZWVVUkk8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+IHVyaSk7CitpbnQJPGEgaHJlZj0iI3htbFBhcnNlVVJJUmVmZXJlbmNlIj54bWxQYXJzZVVSSVJlZmVyZW5jZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiB1cmksIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHN0cik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbEJ1aWxkUmVsYXRpdmVVUkkiPnhtbEJ1aWxkUmVsYXRpdmVVUkk8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBiYXNlKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU2F2ZVVyaSI+eG1sU2F2ZVVyaTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiB1cmkpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxVUklFc2NhcGUiPnhtbFVSSUVzY2FwZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJhc2UpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVSSSI+U3RydWN0dXJlIDwvYT54bWxVUkk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFVSSSB7CisgICAgY2hhciAqCXNjaGVtZQk6IHRoZSBVUkkgc2NoZW1lCisgICAgY2hhciAqCW9wYXF1ZQk6IG9wYXF1ZSBwYXJ0CisgICAgY2hhciAqCWF1dGhvcml0eQk6IHRoZSBhdXRob3JpdHkgcGFydAorICAgIGNoYXIgKglzZXJ2ZXIJOiB0aGUgc2VydmVyIHBhcnQKKyAgICBjaGFyICoJdXNlcgk6IHRoZSB1c2VyIHBhcnQKKyAgICBpbnQJcG9ydAk6IHRoZSBwb3J0IG51bWJlcgorICAgIGNoYXIgKglwYXRoCTogdGhlIHBhdGggc3RyaW5nCisgICAgY2hhciAqCXF1ZXJ5CTogdGhlIHF1ZXJ5IHN0cmluZyAoZGVwcmVjYXRlZCAtIHVzZSB3aXRoIGNhdXRpb24pCisgICAgY2hhciAqCWZyYWdtZW50CTogdGhlIGZyYWdtZW50IGlkZW50aWZpZXIKKyAgICBpbnQJY2xlYW51cAk6IHBhcnNpbmcgcG90ZW50aWFsbHkgdW5jbGVhbiBVUkkKKyAgICBjaGFyICoJcXVlcnlfcmF3CTogdGhlIHF1ZXJ5IHN0cmluZyAoYXMgaXQgYXBwZWFycyBpbiB0aGUgVVJJKQorfSB4bWxVUkk7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVVJJUHRyIj5UeXBlZGVmIDwvYT54bWxVUklQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPiAqIHhtbFVSSVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxCdWlsZFJlbGF0aXZlVVJJIi8+eG1sQnVpbGRSZWxhdGl2ZVVSSSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxCdWlsZFJlbGF0aXZlVVJJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBiYXNlKTxici8+Cis8L3ByZT48cD5FeHByZXNzZXMgdGhlIFVSSSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gaW4gdGVybXMgcmVsYXRpdmUgdG8gdGhlIGJhc2UuIFNvbWUgZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gaW5jbHVkZTogYmFzZSA9ICJodHRwOi8vc2l0ZTEuY29tL2RvY3MvYm9vazEuaHRtbCIgVVJJIGlucHV0IFVSSSByZXR1cm5lZCBkb2NzL3BpYzEuZ2lmIHBpYzEuZ2lmIGRvY3MvaW1nL3BpYzEuZ2lmIGltZy9waWMxLmdpZiBpbWcvcGljMS5naWYgLi4vaW1nL3BpYzEuZ2lmIGh0dHA6Ly9zaXRlMS5jb20vZG9jcy9waWMxLmdpZiBwaWMxLmdpZiBodHRwOi8vc2l0ZTIuY29tL2RvY3MvcGljMS5naWYgaHR0cDovL3NpdGUyLmNvbS9kb2NzL3BpYzEuZ2lmIGJhc2UgPSAiZG9jcy9ib29rMS5odG1sIiBVUkkgaW5wdXQgVVJJIHJldHVybmVkIGRvY3MvcGljMS5naWYgcGljMS5naWYgZG9jcy9pbWcvcGljMS5naWYgaW1nL3BpYzEuZ2lmIGltZy9waWMxLmdpZiAuLi9pbWcvcGljMS5naWYgaHR0cDovL3NpdGUxLmNvbS9kb2NzL3BpYzEuZ2lmIGh0dHA6Ly9zaXRlMS5jb20vZG9jcy9waWMxLmdpZiBOb3RlOiBpZiB0aGUgVVJJIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGlzIHJlYWxseSB3aWVyZCBvciBjb21wbGljYXRlZCwgaXQgbWF5IGJlIHdvcnRod2hpbGUgdG8gZmlyc3QgY29udmVydCBpdCBpbnRvIGEgIm5pY2UiIG9uZSBieSBjYWxsaW5nIDxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPiAodXNpbmcgJ2Jhc2UnKSBiZWZvcmUgY2FsbGluZyB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoaXMgcm91dGluZSAoZm9yIHJlYXNvbmFibGUgZWZmaWNpZW5jeSkgYXNzdW1lcyBVUkkgaGFzIGFscmVhZHkgYmVlbiB0aHJvdWdoIHNvbWUgdmFsaWRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiB1bmRlciBjb25zaWRlcmF0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5iYXNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgVVJJIHN0cmluZyAodG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlcikgb3IgTlVMTCBpbiBjYXNlIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEJ1aWxkVVJJIi8+eG1sQnVpbGRVUkkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQnVpbGRVUkkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBiYXNlKTxici8+Cis8L3ByZT48cD5Db21wdXRlcyBoZSBmaW5hbCBVUkkgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGRvbmUgYnkgY2hlY2tpbmcgdGhhdCB0aGUgZ2l2ZW4gVVJJIGlzIHZhbGlkLCBhbmQgYnVpbGRpbmcgdGhlIGZpbmFsIFVSSSB1c2luZyB0aGUgYmFzZSBVUkkuIFRoaXMgaXMgcHJvY2Vzc2VkIGFjY29yZGluZyB0byBzZWN0aW9uIDUuMiBvZiB0aGUgUkZDIDIzOTYgNS4yLiBSZXNvbHZpbmcgUmVsYXRpdmUgUmVmZXJlbmNlcyB0byBBYnNvbHV0ZSBGb3JtPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgaW5zdGFuY2UgZm91bmQgaW4gdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5iYXNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgVVJJIHN0cmluZyAodG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlcikgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENhbm9uaWNQYXRoIi8+eG1sQ2Fub25pY1BhdGggKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2Fub25pY1BhdGgJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcGF0aCk8YnIvPgorPC9wcmU+PHA+Q29uc3RydWN0cyBhIGNhbm9uaWMgcGF0aCBmcm9tIHRoZSBzcGVjaWZpZWQgcGF0aC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXNvdXJjZSBsb2NhdG9yIGluIGEgZmlsZXN5c3RlbSBub3RhdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgY2Fub25pYyBwYXRoLCBvciBhIGR1cGxpY2F0ZSBvZiB0aGUgcGF0aCBwYXJhbWV0ZXIgaWYgdGhlIGNvbnN0cnVjdGlvbiBmYWlscy4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXR1cm5lZCBzdHJpbmcuIElmIHRoZXJlIGlzIGluc3VmZmljaWVudCBtZW1vcnkgYXZhaWxhYmxlLCBvciB0aGUgYXJndW1lbnQgaXMgTlVMTCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDcmVhdGVVUkkiLz54bWxDcmVhdGVVUkkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPgl4bWxDcmVhdGVVUkkJCSh2b2lkKTxici8+Cis8L3ByZT48cD5TaW1wbHkgY3JlYXRlcyBhbiBlbXB0eSA8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZVVSSSIvPnhtbEZyZWVVUkkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVVUkkJCQkoPGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4gdXJpKTxici8+Cis8L3ByZT48cD5GcmVlIHVwIHRoZSA8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPiBzdHJ1Y3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byBhbiA8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vcm1hbGl6ZVVSSVBhdGgiLz54bWxOb3JtYWxpemVVUklQYXRoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5vcm1hbGl6ZVVSSVBhdGgJCShjaGFyICogcGF0aCk8YnIvPgorPC9wcmU+PHA+QXBwbGllcyB0aGUgNSBub3JtYWxpemF0aW9uIHN0ZXBzIHRvIGEgcGF0aCBzdHJpbmctLXRoYXQgaXMsIFJGQyAyMzk2IFNlY3Rpb24gNS4yLCBzdGVwcyA2LmMgdGhyb3VnaCA2LmcuIE5vcm1hbGl6YXRpb24gb2NjdXJzIGRpcmVjdGx5IG9uIHRoZSBzdHJpbmcsIG5vIG5ldyBhbGxvY2F0aW9uIGlzIGRvbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIHBhdGggc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIGFuIGVycm9yIGNvZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZVVSSSIvPnhtbFBhcnNlVVJJICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4JeG1sUGFyc2VVUkkJCShjb25zdCBjaGFyICogc3RyKTxici8+Cis8L3ByZT48cD5QYXJzZSBhbiBVUkkgYmFzZWQgb24gUkZDIDM5ODYgVVJJLXJlZmVyZW5jZSA9IFsgYWJzb2x1dGVVUkkgfCByZWxhdGl2ZVVSSSBdIFsgIiMiIGZyYWdtZW50IF08L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBzdHJpbmcgdG8gYW5hbHl6ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXdseSBidWlsdCA8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZVVSSVJhdyIvPnhtbFBhcnNlVVJJUmF3ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4JeG1sUGFyc2VVUklSYXcJCShjb25zdCBjaGFyICogc3RyLCA8YnIvPgkJCQkJIGludCByYXcpPGJyLz4KKzwvcHJlPjxwPlBhcnNlIGFuIFVSSSBidXQgYWxsb3dzIHRvIGtlZXAgaW50YWN0IHRoZSBvcmlnaW5hbCBmcmFnbWVudHMuIFVSSS1yZWZlcmVuY2UgPSBVUkkgLyByZWxhdGl2ZS1yZWY8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBzdHJpbmcgdG8gYW5hbHl6ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmF3PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiAxIHVuZXNjYXBpbmcgb2YgVVJJIHBpZWNlcyBhcmUgZGlzYWJsZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3bHkgYnVpbHQgPGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VVUklSZWZlcmVuY2UiLz54bWxQYXJzZVVSSVJlZmVyZW5jZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZVVSSVJlZmVyZW5jZQkJKDxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+IHVyaSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogc3RyKTxici8+Cis8L3ByZT48cD5QYXJzZSBhbiBVUkkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gc3RyaW5nIGJhc2VkIG9uIFJGQyAzOTg2IGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGRzIG9mIHRoZSBAdXJpIHN0cnVjdHVyZSBVUkktcmVmZXJlbmNlID0gVVJJIC8gcmVsYXRpdmUtcmVmPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gVVJJIHN0cnVjdHVyZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGFuYWx5emU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgdGhlIGVycm9yIGNvZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXRoVG9VUkkiLz54bWxQYXRoVG9VUkkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGF0aFRvVVJJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdGgpPGJyLz4KKzwvcHJlPjxwPkNvbnN0cnVjdHMgYW4gVVJJIGV4cHJlc3NpbmcgdGhlIGV4aXN0aW5nIHBhdGg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXNvdXJjZSBsb2NhdG9yIGluIGEgZmlsZXN5c3RlbSBub3RhdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgVVJJLCBvciBhIGR1cGxpY2F0ZSBvZiB0aGUgcGF0aCBwYXJhbWV0ZXIgaWYgdGhlIGNvbnN0cnVjdGlvbiBmYWlscy4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXR1cm5lZCBzdHJpbmcuIElmIHRoZXJlIGlzIGluc3VmZmljaWVudCBtZW1vcnkgYXZhaWxhYmxlLCBvciB0aGUgYXJndW1lbnQgaXMgTlVMTCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQcmludFVSSSIvPnhtbFByaW50VVJJICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQcmludFVSSQkJCShGSUxFICogc3RyZWFtLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+IHVyaSk8YnIvPgorPC9wcmU+PHA+UHJpbnRzIHRoZSBVUkkgaW4gdGhlIHN0cmVhbSBAc3RyZWFtLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZWFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIEZJTEUqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gPGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUkkiPnhtbFVSSTwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTYXZlVXJpIi8+eG1sU2F2ZVVyaSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTYXZlVXJpCQkoPGEgaHJlZj0ibGlieG1sMi11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4gdXJpKTxici8+Cis8L3ByZT48cD5TYXZlIHRoZSBVUkkgYXMgYW4gZXNjYXBlZCBzdHJpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byBhbiA8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgc3RyaW5nICh0byBiZSBkZWFsbG9jYXRlZCBieSBjYWxsZXIpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVVJJRXNjYXBlIi8+eG1sVVJJRXNjYXBlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFVSSUVzY2FwZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyLz4KKzwvcHJlPjxwPkVzY2FwaW5nIHJvdXRpbmUsIGRvZXMgbm90IGRvIHZhbGlkaXR5IGNoZWNrcyAhIEl0IHdpbGwgdHJ5IHRvIGVzY2FwZSB0aGUgY2hhcnMgbmVlZGluZyB0aGlzLCBidXQgdGhpcyBpcyBoZXVyaXN0aWMgYmFzZWQgaXQncyBpbXBvc3NpYmxlIHRvIGJlIHN1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmcgb2YgdGhlIFVSSSB0byBlc2NhcGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGNvcHkgb2YgdGhlIHN0cmluZywgYnV0IGVzY2FwZWQgMjUgTWF5IDIwMDEgVXNlcyA8YSBocmVmPSJsaWJ4bWwyLXVyaS5odG1sI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbDItdXJpLmh0bWwjeG1sVVJJRXNjYXBlU3RyIj54bWxVUklFc2NhcGVTdHI8L2E+IHRvIHRyeSB0byBlc2NhcGUgY29ycmVjdGx5IGFjY29yZGluZyB0byBSRkMyMzk2LiAtIENhcmwgRG91Z2xhczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVSSUVzY2FwZVN0ciIvPnhtbFVSSUVzY2FwZVN0ciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxVUklFc2NhcGVTdHIJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsaXN0KTxici8+Cis8L3ByZT48cD5UaGlzIHJvdXRpbmUgZXNjYXBlcyBhIHN0cmluZyB0byBoZXgsIGlnbm9yaW5nIHJlc2VydmVkIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gKGEteikgYW5kIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGluIHRoZSBleGNlcHRpb24gbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c3RyaW5nIHRvIGVzY2FwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGlzdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXhjZXB0aW9uIGxpc3Qgc3RyaW5nIG9mIGNoYXJzIG5vdCB0byBlc2NhcGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGVzY2FwZWQgc3RyaW5nIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVUklVbmVzY2FwZVN0cmluZyIvPnhtbFVSSVVuZXNjYXBlU3RyaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y2hhciAqCXhtbFVSSVVuZXNjYXBlU3RyaW5nCQkoY29uc3QgY2hhciAqIHN0ciwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNoYXIgKiB0YXJnZXQpPGJyLz4KKzwvcHJlPjxwPlVuZXNjYXBpbmcgcm91dGluZSwgYnV0IGRvZXMgbm90IGNoZWNrIHRoYXQgdGhlIHN0cmluZyBpcyBhbiBVUkkuIFRoZSBvdXRwdXQgaXMgYSBkaXJlY3QgdW5zaWduZWQgY2hhciB0cmFuc2xhdGlvbiBvZiAlWFggdmFsdWVzIChubyBlbmNvZGluZykgTm90ZSB0aGF0IHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBjYW4gb25seSBiZSBzbWFsbGVyIG9yIHNhbWUgc2l6ZSBhcyB0aGUgaW5wdXQgc3RyaW5nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIHVuZXNjYXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggaW4gYnl0ZXMgdG8gdW5lc2NhcGUgKG9yICZsdDs9IDAgdG8gaW5kaWNhdGUgZnVsbCBzdHJpbmcpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YXJnZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm9wdGlvbmFsIGRlc3RpbmF0aW9uIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb3B5IG9mIHRoZSBzdHJpbmcsIGJ1dCB1bmVzY2FwZWQsIHdpbGwgcmV0dXJuIE5VTEwgb25seSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItdmFsaWQuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi12YWxpZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ODAyMTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDItdmFsaWQuaHRtbApAQCAtMCwwICsxLDUyOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT52YWxpZDogVGhlIERURCB2YWxpZGF0aW9uPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi11cmkuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnZhbGlkPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+dmFsaWQgLSBUaGUgRFREIHZhbGlkYXRpb248L3A+CisgICAgPHA+QVBJIGZvciB0aGUgRFREIGhhbmRsaW5nIGFuZCB0aGUgdmFsaWRpdHkgY2hlY2tpbmcgPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9DVFhUX0ZJTklTSF9EVERfMCI+WE1MX0NUWFRfRklOSVNIX0RURF8wPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTF9DVFhUX0ZJTklTSF9EVERfMSI+WE1MX0NUWFRfRklOSVNIX0RURF8xPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxIYXNoVGFibGUgPGEgaHJlZj0iI3htbEVsZW1lbnRUYWJsZSI+eG1sRWxlbWVudFRhYmxlPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkU3RhdGUiPnhtbFZhbGlkU3RhdGU8L2E+ICogPGEgaHJlZj0iI3htbFZhbGlkU3RhdGVQdHIiPnhtbFZhbGlkU3RhdGVQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sSURUYWJsZSI+eG1sSURUYWJsZTwvYT4gKiA8YSBocmVmPSIjeG1sSURUYWJsZVB0ciI+eG1sSURUYWJsZVB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlIj54bWxOb3RhdGlvblRhYmxlPC9hPiAqIDxhIGhyZWY9IiN4bWxOb3RhdGlvblRhYmxlUHRyIj54bWxOb3RhdGlvblRhYmxlUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxWYWxpZEN0eHQgPGEgaHJlZj0iI3htbFZhbGlkQ3R4dCI+eG1sVmFsaWRDdHh0PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZSI+eG1sRWxlbWVudFRhYmxlPC9hPiAqIDxhIGhyZWY9IiN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxSZWZUYWJsZSI+eG1sUmVmVGFibGU8L2E+ICogPGEgaHJlZj0iI3htbFJlZlRhYmxlUHRyIj54bWxSZWZUYWJsZVB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sSGFzaFRhYmxlIDxhIGhyZWY9IiN4bWxOb3RhdGlvblRhYmxlIj54bWxOb3RhdGlvblRhYmxlPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxIYXNoVGFibGUgPGEgaHJlZj0iI3htbFJlZlRhYmxlIj54bWxSZWZUYWJsZTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sVmFsaWRTdGF0ZSA8YSBocmVmPSIjeG1sVmFsaWRTdGF0ZSI+eG1sVmFsaWRTdGF0ZTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sSGFzaFRhYmxlIDxhIGhyZWY9IiN4bWxBdHRyaWJ1dGVUYWJsZSI+eG1sQXR0cmlidXRlVGFibGU8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sQXR0cmlidXRlVGFibGUiPnhtbEF0dHJpYnV0ZVRhYmxlPC9hPiAqIDxhIGhyZWY9IiN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbEhhc2hUYWJsZSA8YSBocmVmPSIjeG1sSURUYWJsZSI+eG1sSURUYWJsZTwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHQiPnhtbFZhbGlkQ3R4dDwvYT4gKiA8YSBocmVmPSIjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+Owordm9pZAk8YSBocmVmPSIjeG1sRnJlZU5vdGF0aW9uVGFibGUiPnhtbEZyZWVOb3RhdGlvblRhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlUHRyIj54bWxOb3RhdGlvblRhYmxlUHRyPC9hPiB0YWJsZSk7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlTmFtZVZhbHVlIj54bWxWYWxpZGF0ZU5hbWVWYWx1ZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOwordm9pZAk8YSBocmVmPSIjeG1sU25wcmludGZFbGVtZW50Q29udGVudCI+eG1sU25wcmludGZFbGVtZW50Q29udGVudDwvYT4JKGNoYXIgKiBidWYsIDxici8+CQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50LCA8YnIvPgkJCQkJIGludCBlbmdsb2IpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUmVmUHRyIj54bWxSZWZQdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGRSZWYiPnhtbEFkZFJlZjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik7Cit2b2lkCTxhIGhyZWY9IiN4bWxEdW1wQXR0cmlidXRlRGVjbCI+eG1sRHVtcEF0dHJpYnV0ZURlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT4gYXR0cik7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCI+eG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsPC9hPgkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZUR0ZEZpbmFsIj54bWxWYWxpZGF0ZUR0ZEZpbmFsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKK3ZvaWQJPGEgaHJlZj0iI3htbER1bXBBdHRyaWJ1dGVUYWJsZSI+eG1sRHVtcEF0dHJpYnV0ZVRhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4gdGFibGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlRW51bWVyYXRpb24iPnhtbENyZWF0ZUVudW1lcmF0aW9uPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyI+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZSI+eG1sTm9kZTwvYT4gKiBwcmV2LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGUiPnhtbE5vZGU8L2E+ICogbmV4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzLCA8YnIvPgkJCQkJIGludCBtYXgpOworaW50CTxhIGhyZWY9IiN4bWxJc01peGVkRWxlbWVudCI+eG1sSXNNaXhlZEVsZW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxEdW1wTm90YXRpb25EZWNsIj54bWxEdW1wTm90YXRpb25EZWNsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPiBub3RhKTsKK2ludAk8YSBocmVmPSIjeG1sSXNJRCI+eG1sSXNJRDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVsZW0sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NFbGVtZW50Q29udGVudCI+eG1sTmV3RG9jRWxlbWVudENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRUeXBlIj54bWxFbGVtZW50Q29udGVudFR5cGU8L2E+IHR5cGUpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZUF0dHJpYnV0ZVRhYmxlIj54bWxGcmVlQXR0cmlidXRlVGFibGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4gdGFibGUpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPnhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPiBhdHRyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXREdGRRRWxlbWVudERlc2MiPnhtbEdldER0ZFFFbGVtZW50RGVzYzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk7Cis8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZVB0ciI+eG1sTm90YXRpb25UYWJsZVB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlOb3RhdGlvblRhYmxlIj54bWxDb3B5Tm90YXRpb25UYWJsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlUHRyIj54bWxOb3RhdGlvblRhYmxlUHRyPC9hPiB0YWJsZSk7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlRG9jdW1lbnQiPnhtbFZhbGlkYXRlRG9jdW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuIj54bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnQiPnhtbEVsZW1lbnRDb250ZW50PC9hPiAqIGN0cmVlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbmFtZXMsIDxici8+CQkJCQkgaW50ICogbGVuLCA8YnIvPgkJCQkJIGludCBtYXgpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkTm90YXRpb25EZWNsIj54bWxBZGROb3RhdGlvbkRlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogUHVibGljSUQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVFbGVtZW50RGVjbCI+eG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBlbGVtKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkQXR0cmlidXRlRGVjbCI+eG1sQWRkQXR0cmlidXRlRGVjbDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVUeXBlIj54bWxBdHRyaWJ1dGVUeXBlPC9hPiB0eXBlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZURlZmF1bHQiPnhtbEF0dHJpYnV0ZURlZmF1bHQ8L2E+IGRlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGVmYXVsdFZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gdHJlZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0SUQiPnhtbEdldElEPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElEKTsKKzxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlFbGVtZW50VGFibGUiPnhtbENvcHlFbGVtZW50VGFibGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRWxlbWVudFRhYmxlUHRyIj54bWxFbGVtZW50VGFibGVQdHI8L2E+IHRhYmxlKTsKKzxhIGhyZWY9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXRSZWZzIj54bWxHZXRSZWZzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElEKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNwcmludGZFbGVtZW50Q29udGVudCI+eG1sU3ByaW50ZkVsZW1lbnRDb250ZW50PC9hPgkoY2hhciAqIGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGVuZ2xvYik7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlT25lRWxlbWVudCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZSI+eG1sVmFsaWRhdGVObXRva2VuVmFsdWU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbER1bXBFbGVtZW50VGFibGUiPnhtbER1bXBFbGVtZW50VGFibGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRWxlbWVudFRhYmxlUHRyIj54bWxFbGVtZW50VGFibGVQdHI8L2E+IHRhYmxlKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPnhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxEdW1wRWxlbWVudERlY2wiPnhtbER1bXBFbGVtZW50RGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+IGVsZW0pOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZUVsZW1lbnRDb250ZW50Ij54bWxGcmVlRWxlbWVudENvbnRlbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjdXIpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sVmFsaWRhdGVQdXNoRWxlbWVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBxbmFtZSk7CitpbnQJPGEgaHJlZj0iI3htbElzUmVmIj54bWxJc1JlZjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weURvY0VsZW1lbnRDb250ZW50Ij54bWxDb3B5RG9jRWxlbWVudENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sSURQdHIiPnhtbElEUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkSUQiPnhtbEFkZElEPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVSZWZUYWJsZSI+eG1sRnJlZVJlZlRhYmxlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sUmVmVGFibGVQdHIiPnhtbFJlZlRhYmxlUHRyPC9hPiB0YWJsZSk7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlTmFtZXNWYWx1ZSI+eG1sVmFsaWRhdGVOYW1lc1ZhbHVlPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI3htbFJlbW92ZUlEIj54bWxSZW1vdmVJRDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVFbGVtZW50VGFibGUiPnhtbEZyZWVFbGVtZW50VGFibGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZVB0ciI+eG1sRWxlbWVudFRhYmxlUHRyPC9hPiB0YWJsZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlSURUYWJsZSI+eG1sRnJlZUlEVGFibGU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxJRFRhYmxlUHRyIj54bWxJRFRhYmxlUHRyPC9hPiB0YWJsZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlVmFsaWRDdHh0Ij54bWxGcmVlVmFsaWRDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3VyKTsKKzxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5QXR0cmlidXRlVGFibGUiPnhtbENvcHlBdHRyaWJ1dGVUYWJsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+IHRhYmxlKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlFbGVtZW50Q29udGVudCI+eG1sQ29weUVsZW1lbnRDb250ZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjdXIpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT4gdHlwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOworaW50CTxhIGhyZWY9IiN4bWxSZW1vdmVSZWYiPnhtbFJlbW92ZVJlZjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik7CitpbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlUG9wRWxlbWVudCI+eG1sVmFsaWRhdGVQb3BFbGVtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHFuYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVFbnVtZXJhdGlvbiI+eG1sRnJlZUVudW1lcmF0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gY3VyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlFbnVtZXJhdGlvbiI+eG1sQ29weUVudW1lcmF0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXREdGRBdHRyRGVzYyI+eG1sR2V0RHRkQXR0ckRlc2M8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVEdGQiPnhtbFZhbGlkYXRlRHRkPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkKTsKKzxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1ZhbGlkQ3R4dCI+eG1sTmV3VmFsaWRDdHh0PC9hPgkJKHZvaWQpOwordm9pZAk8YSBocmVmPSIjeG1sRHVtcE5vdGF0aW9uVGFibGUiPnhtbER1bXBOb3RhdGlvblRhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGRFbGVtZW50RGVjbCI+eG1sQWRkRWxlbWVudERlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZVZhbCI+eG1sRWxlbWVudFR5cGVWYWw8L2E+IHR5cGUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50KTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIj54bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsPC9hPgkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+IGVsZW0pOworaW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZUVsZW1lbnQiPnhtbFZhbGlkYXRlRWxlbWVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOb3RhdGlvblVzZSI+eG1sVmFsaWRhdGVOb3RhdGlvblVzZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbm90YXRpb25OYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVSb290Ij54bWxWYWxpZGF0ZVJvb3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vdGF0aW9uUHRyIj54bWxOb3RhdGlvblB0cjwvYT4gbm90YSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdFbGVtZW50Q29udGVudCI+eG1sTmV3RWxlbWVudENvbnRlbnQ8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRUeXBlIj54bWxFbGVtZW50Q29udGVudFR5cGU8L2E+IHR5cGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4JPGEgaHJlZj0iI3htbEdldER0ZEVsZW1lbnREZXNjIj54bWxHZXREdGRFbGVtZW50RGVzYzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0RHRkTm90YXRpb25EZXNjIj54bWxHZXREdGROb3RhdGlvbkRlc2M8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVQdXNoQ0RhdGEiPnhtbFZhbGlkYXRlUHVzaENEYXRhPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIj54bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWU8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZURvY0VsZW1lbnRDb250ZW50Ij54bWxGcmVlRG9jRWxlbWVudENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY3VyKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfQ1RYVF9GSU5JU0hfRFREXzAiPk1hY3JvIDwvYT5YTUxfQ1RYVF9GSU5JU0hfRFREXzA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfQ1RYVF9GSU5JU0hfRFREXzAiPlhNTF9DVFhUX0ZJTklTSF9EVERfMDwvYT47Cis8L3ByZT48cD5TcGVjaWFsIHZhbHVlIGZvciBmaW5pc2hEdGQgZmllbGQgd2hlbiBlbWJlZGRlZCBpbiBhbiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0Ij54bWxQYXJzZXJDdHh0PC9hPjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxfQ1RYVF9GSU5JU0hfRFREXzEiPk1hY3JvIDwvYT5YTUxfQ1RYVF9GSU5JU0hfRFREXzE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfQ1RYVF9GSU5JU0hfRFREXzEiPlhNTF9DVFhUX0ZJTklTSF9EVERfMTwvYT47Cis8L3ByZT48cD5TcGVjaWFsIHZhbHVlIGZvciBmaW5pc2hEdGQgZmllbGQgd2hlbiBlbWJlZGRlZCBpbiBhbiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0Ij54bWxQYXJzZXJDdHh0PC9hPjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdHRyaWJ1dGVUYWJsZSI+U3RydWN0dXJlIDwvYT54bWxBdHRyaWJ1dGVUYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sSGFzaFRhYmxlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxBdHRyaWJ1dGVUYWJsZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+VHlwZWRlZiA8L2E+eG1sQXR0cmlidXRlVGFibGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sQXR0cmlidXRlVGFibGUiPnhtbEF0dHJpYnV0ZVRhYmxlPC9hPiAqIHhtbEF0dHJpYnV0ZVRhYmxlUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVsZW1lbnRUYWJsZSI+U3RydWN0dXJlIDwvYT54bWxFbGVtZW50VGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEhhc2hUYWJsZSB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sRWxlbWVudFRhYmxlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVsZW1lbnRUYWJsZVB0ciI+VHlwZWRlZiA8L2E+eG1sRWxlbWVudFRhYmxlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZSI+eG1sRWxlbWVudFRhYmxlPC9hPiAqIHhtbEVsZW1lbnRUYWJsZVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJRFRhYmxlIj5TdHJ1Y3R1cmUgPC9hPnhtbElEVGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEhhc2hUYWJsZSB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sSURUYWJsZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJRFRhYmxlUHRyIj5UeXBlZGVmIDwvYT54bWxJRFRhYmxlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbElEVGFibGUiPnhtbElEVGFibGU8L2E+ICogeG1sSURUYWJsZVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb3RhdGlvblRhYmxlIj5TdHJ1Y3R1cmUgPC9hPnhtbE5vdGF0aW9uVGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbEhhc2hUYWJsZSB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sTm90YXRpb25UYWJsZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb3RhdGlvblRhYmxlUHRyIj5UeXBlZGVmIDwvYT54bWxOb3RhdGlvblRhYmxlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGUiPnhtbE5vdGF0aW9uVGFibGU8L2E+ICogeG1sTm90YXRpb25UYWJsZVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWZUYWJsZSI+U3RydWN0dXJlIDwvYT54bWxSZWZUYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sSGFzaFRhYmxlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxSZWZUYWJsZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWZUYWJsZVB0ciI+VHlwZWRlZiA8L2E+eG1sUmVmVGFibGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sUmVmVGFibGUiPnhtbFJlZlRhYmxlPC9hPiAqIHhtbFJlZlRhYmxlUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkQ3R4dCI+U3RydWN0dXJlIDwvYT54bWxWYWxpZEN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFZhbGlkQ3R4dCB7CisgICAgdm9pZCAqCXVzZXJEYXRhCTogdXNlciBzcGVjaWZpYyBkYXRhIGJsb2NrCisgICAgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT4JZXJyb3IJOiB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiBlcnJvcnMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4Jd2FybmluZwk6IHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIHdhcm5pbmcgTm9kZSBhbmFseXNpcyBzdGFjayB1c2VkIHdoZW4gdmFsaWRhdAorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CW5vZGUJOiBDdXJyZW50IHBhcnNlZCBOb2RlCisgICAgaW50CW5vZGVOcgk6IERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrCisgICAgaW50CW5vZGVNYXgJOiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqCW5vZGVUYWIJOiBhcnJheSBvZiBub2RlcworICAgIHVuc2lnbmVkIGludAlmaW5pc2hEdGQJOiBmaW5pc2hlZCB2YWxpZGF0aW5nIHRoZSBEdGQgPworICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPglkb2MJOiB0aGUgZG9jdW1lbnQKKyAgICBpbnQJdmFsaWQJOiB0ZW1wb3JhcnkgdmFsaWRpdHkgY2hlY2sgcmVzdWx0IHN0YXRlIHN0YXRlIHVzZWQgZm9yIG5vbi1kZXRlcm1pbmlzdAorICAgIDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZFN0YXRlIj54bWxWYWxpZFN0YXRlPC9hPiAqCXZzdGF0ZQk6IGN1cnJlbnQgc3RhdGUKKyAgICBpbnQJdnN0YXRlTnIJOiBEZXB0aCBvZiB0aGUgdmFsaWRhdGlvbiBzdGFjaworICAgIGludAl2c3RhdGVNYXgJOiBNYXggZGVwdGggb2YgdGhlIHZhbGlkYXRpb24gc3RhY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRTdGF0ZSI+eG1sVmFsaWRTdGF0ZTwvYT4gKgl2c3RhdGVUYWIJOiBhcnJheSBvZiB2YWxpZGF0aW9uIHN0YXRlcworICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+CWFtCTogdGhlIGF1dG9tYXRhCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXN0YXRlCTogdXNlZCB0byBidWlsZCB0aGUgYXV0b21hdGEKKyAgICB2b2lkICoJYW0KKyAgICB2b2lkICoJc3RhdGUKK30geG1sVmFsaWRDdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkQ3R4dFB0ciI+VHlwZWRlZiA8L2E+eG1sVmFsaWRDdHh0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dCI+eG1sVmFsaWRDdHh0PC9hPiAqIHhtbFZhbGlkQ3R4dFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxWYWxpZFN0YXRlIj5TdHJ1Y3R1cmUgPC9hPnhtbFZhbGlkU3RhdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFZhbGlkU3RhdGUgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFZhbGlkU3RhdGU7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRTdGF0ZVB0ciI+VHlwZWRlZiA8L2E+eG1sVmFsaWRTdGF0ZVB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZFN0YXRlIj54bWxWYWxpZFN0YXRlPC9hPiAqIHhtbFZhbGlkU3RhdGVQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRpdHlFcnJvckZ1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbFZhbGlkaXR5RXJyb3JGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxWYWxpZGl0eUVycm9yRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayBjYWxsZWQgd2hlbiBhIHZhbGlkaXR5IGVycm9yIGlzIGZvdW5kLiBUaGlzIGlzIGEgbWVzc2FnZSBvcmllbnRlZCBmdW5jdGlvbiBzaW1pbGFyIHRvIGFuICpwcmludGYgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVzdWFsbHkgYW4gPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiB0byBhIHZhbGlkaXR5IGVycm9yIGNvbnRleHQsIGJ1dCBjb21lcyBmcm9tIGN0eHQtJmd0O3VzZXJEYXRhICh3aGljaCBub3JtYWxseSBjb250YWlucyBzdWNoIGEgcG9pbnRlcik7IGN0eHQtJmd0O3VzZXJEYXRhIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSB1c2VyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGZvcm1hdCAqcHJpbnRmIGxpa2UgdmFyYXJnPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJlbWFpbmluZyBhcmd1bWVudHMgdG8gdGhlIGZvcm1hdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkaXR5V2FybmluZ0Z1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbFZhbGlkaXR5V2FybmluZ0Z1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFZhbGlkaXR5V2FybmluZ0Z1bmMJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+Q2FsbGJhY2sgY2FsbGVkIHdoZW4gYSB2YWxpZGl0eSB3YXJuaW5nIGlzIGZvdW5kLiBUaGlzIGlzIGEgbWVzc2FnZSBvcmllbnRlZCBmdW5jdGlvbiBzaW1pbGFyIHRvIGFuICpwcmludGYgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVzdWFsbHkgYW4gPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiB0byBhIHZhbGlkaXR5IGVycm9yIGNvbnRleHQsIGJ1dCBjb21lcyBmcm9tIGN0eHQtJmd0O3VzZXJEYXRhICh3aGljaCBub3JtYWxseSBjb250YWlucyBzdWNoIGEgcG9pbnRlcik7IGN0eHQtJmd0O3VzZXJEYXRhIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSB1c2VyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGZvcm1hdCAqcHJpbnRmIGxpa2UgdmFyYXJnPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJlbWFpbmluZyBhcmd1bWVudHMgdG8gdGhlIGZvcm1hdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEFkZEF0dHJpYnV0ZURlY2wiLz54bWxBZGRBdHRyaWJ1dGVEZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+CXhtbEFkZEF0dHJpYnV0ZURlY2wJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVUeXBlIj54bWxBdHRyaWJ1dGVUeXBlPC9hPiB0eXBlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZURlZmF1bHQiPnhtbEF0dHJpYnV0ZURlZmF1bHQ8L2E+IGRlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGVmYXVsdFZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gdHJlZSk8YnIvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gTm90ZSB0aGF0IEB0cmVlIGJlY29tZXMgdGhlIG93bmVyc2hpcCBvZiB0aGUgRFREPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlZmF1bHQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmYXVsdFZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVmYXVsdCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aWYgaXQncyBhbiBlbnVtZXJhdGlvbiwgdGhlIGFzc29jaWF0ZWQgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QgbmV3LCBvdGhlcndpc2UgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlY2w8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBZGRFbGVtZW50RGVjbCIvPnhtbEFkZEVsZW1lbnREZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4JeG1sQWRkRWxlbWVudERlY2wJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlVmFsIj54bWxFbGVtZW50VHlwZVZhbDwvYT4gdHlwZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IGVsZW1lbnQgZGVjbGFyYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmR0ZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IGNvbnRlbnQgdHJlZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIG5vdCwgb3RoZXJ3aXNlIHRoZSBlbnRpdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBZGRJRCIvPnhtbEFkZElEICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sSURQdHIiPnhtbElEUHRyPC9hPgl4bWxBZGRJRAkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyKTxici8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyBpZCBkZWNsYXJhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaG9sZGluZyB0aGUgSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxJRFB0ciI+eG1sSURQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQWRkTm90YXRpb25EZWNsIi8+eG1sQWRkTm90YXRpb25EZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPgl4bWxBZGROb3RhdGlvbkRlY2wJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBQdWJsaWNJRCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IG5vdGF0aW9uIGRlY2xhcmF0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5QdWJsaWNJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgZW50aXR5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQWRkUmVmIi8+eG1sQWRkUmVmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUmVmUHRyIj54bWxSZWZQdHI8L2E+CXhtbEFkZFJlZgkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyKTxici8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyByZWYgZGVjbGFyYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGhvbGRpbmcgdGhlIFJlZjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFJlZlB0ciI+eG1sUmVmUHRyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENvcHlBdHRyaWJ1dGVUYWJsZSIvPnhtbENvcHlBdHRyaWJ1dGVUYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+CXhtbENvcHlBdHRyaWJ1dGVUYWJsZQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4gdGFibGUpPGJyLz4KKzwvcHJlPjxwPkJ1aWxkIGEgY29weSBvZiBhbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0YWJsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sQXR0cmlidXRlVGFibGVQdHIiPnhtbEF0dHJpYnV0ZVRhYmxlUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weURvY0VsZW1lbnRDb250ZW50Ii8+eG1sQ29weURvY0VsZW1lbnRDb250ZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgl4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+QnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgY29udGVudCBkZXNjcmlwdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IG93bmluZyB0aGUgZWxlbWVudCBkZWNsYXJhdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBlbGVtZW50IGNvbnRlbnQgcG9pbnRlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weUVsZW1lbnRDb250ZW50Ii8+eG1sQ29weUVsZW1lbnRDb250ZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgl4bWxDb3B5RWxlbWVudENvbnRlbnQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5CdWlsZCBhIGNvcHkgb2YgYW4gZWxlbWVudCBjb250ZW50IGRlc2NyaXB0aW9uLiBEZXByZWNhdGVkLCB1c2UgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbENvcHlEb2NFbGVtZW50Q29udGVudCI+eG1sQ29weURvY0VsZW1lbnRDb250ZW50PC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVsZW1lbnQgY29udGVudCBwb2ludGVyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDb3B5RWxlbWVudFRhYmxlIi8+eG1sQ29weUVsZW1lbnRUYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT4JeG1sQ29weUVsZW1lbnRUYWJsZQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZVB0ciI+eG1sRWxlbWVudFRhYmxlUHRyPC9hPiB0YWJsZSk8YnIvPgorPC9wcmU+PHA+QnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgdGFibGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZWxlbWVudCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRWxlbWVudFRhYmxlUHRyIj54bWxFbGVtZW50VGFibGVQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDb3B5RW51bWVyYXRpb24iLz54bWxDb3B5RW51bWVyYXRpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+CXhtbENvcHlFbnVtZXJhdGlvbgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkNvcHkgYW4gZW51bWVyYXRpb24gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbm9kZSAocmVjdXJzaXZlKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRyZWUgdG8gY29weS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IGp1c3QgY3JlYXRlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ29weU5vdGF0aW9uVGFibGUiLz54bWxDb3B5Tm90YXRpb25UYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlUHRyIj54bWxOb3RhdGlvblRhYmxlUHRyPC9hPgl4bWxDb3B5Tm90YXRpb25UYWJsZQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTxici8+Cis8L3ByZT48cD5CdWlsZCBhIGNvcHkgb2YgYSBub3RhdGlvbiB0YWJsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5vdGF0aW9uIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlUHRyIj54bWxOb3RhdGlvblRhYmxlUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlRW51bWVyYXRpb24iLz54bWxDcmVhdGVFbnVtZXJhdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JeG1sQ3JlYXRlRW51bWVyYXRpb24JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5jcmVhdGUgYW5kIGluaXRpYWxpemUgYW4gZW51bWVyYXRpb24gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnVtZXJhdGlvbiBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IGp1c3QgY3JlYXRlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRHVtcEF0dHJpYnV0ZURlY2wiLz54bWxEdW1wQXR0cmlidXRlRGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRHVtcEF0dHJpYnV0ZURlY2wJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPiBhdHRyKTxici8+Cis8L3ByZT48cD5UaGlzIHdpbGwgZHVtcCB0aGUgY29udGVudCBvZiB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gYXMgYW4gWE1MIERURCBkZWZpbml0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEdW1wQXR0cmlidXRlVGFibGUiLz54bWxEdW1wQXR0cmlidXRlVGFibGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbER1bXBBdHRyaWJ1dGVUYWJsZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4gdGFibGUpPGJyLz4KKzwvcHJlPjxwPlRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxEdW1wRWxlbWVudERlY2wiLz54bWxEdW1wRWxlbWVudERlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbER1bXBFbGVtZW50RGVjbAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4gZWxlbSk8YnIvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24gYXMgYW4gWE1MIERURCBkZWZpbml0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZWxlbWVudCB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbER1bXBFbGVtZW50VGFibGUiLz54bWxEdW1wRWxlbWVudFRhYmxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEdW1wRWxlbWVudFRhYmxlCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRWxlbWVudFRhYmxlUHRyIj54bWxFbGVtZW50VGFibGVQdHI8L2E+IHRhYmxlKTxici8+Cis8L3ByZT48cD5UaGlzIHdpbGwgZHVtcCB0aGUgY29udGVudCBvZiB0aGUgZWxlbWVudCB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZWxlbWVudCB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbER1bXBOb3RhdGlvbkRlY2wiLz54bWxEdW1wTm90YXRpb25EZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEdW1wTm90YXRpb25EZWNsCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+IG5vdGEpPGJyLz4KKzwvcHJlPjxwPlRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IHRoZSBub3RhdGlvbiBkZWNsYXJhdGlvbiBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub3RhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5vdGF0aW9uIGRlY2xhcmF0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRHVtcE5vdGF0aW9uVGFibGUiLz54bWxEdW1wTm90YXRpb25UYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRHVtcE5vdGF0aW9uVGFibGUJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlUHRyIj54bWxOb3RhdGlvblRhYmxlUHRyPC9hPiB0YWJsZSk8YnIvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIG5vdGF0aW9uIHRhYmxlIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5vdGF0aW9uIHRhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZUF0dHJpYnV0ZVRhYmxlIi8+eG1sRnJlZUF0dHJpYnV0ZVRhYmxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlQXR0cmlidXRlVGFibGUJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sQXR0cmlidXRlVGFibGVQdHIiPnhtbEF0dHJpYnV0ZVRhYmxlUHRyPC9hPiB0YWJsZSk8YnIvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gZW50aXRpZXMgaGFzaCB0YWJsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVEb2NFbGVtZW50Q29udGVudCIvPnhtbEZyZWVEb2NFbGVtZW50Q29udGVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZURvY0VsZW1lbnRDb250ZW50CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5GcmVlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUuIFRoZSB3aG9sZSBzdWJ0cmVlIGlzIHJlbW92ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBvd25pbmcgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgY29udGVudCB0cmVlIHRvIGZyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlRWxlbWVudENvbnRlbnQiLz54bWxGcmVlRWxlbWVudENvbnRlbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVFbGVtZW50Q29udGVudAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5GcmVlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUuIFRoZSB3aG9sZSBzdWJ0cmVlIGlzIHJlbW92ZWQuIERlcHJlY2F0ZWQsIHVzZSA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRnJlZURvY0VsZW1lbnRDb250ZW50Ij54bWxGcmVlRG9jRWxlbWVudENvbnRlbnQ8L2E+IGluc3RlYWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgY29udGVudCB0cmVlIHRvIGZyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlRWxlbWVudFRhYmxlIi8+eG1sRnJlZUVsZW1lbnRUYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZUVsZW1lbnRUYWJsZQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT4gdGFibGUpPGJyLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIGVsZW1lbnQgaGFzaCB0YWJsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBlbGVtZW50IHRhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZUVudW1lcmF0aW9uIi8+eG1sRnJlZUVudW1lcmF0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlRW51bWVyYXRpb24JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+ZnJlZSBhbiBlbnVtZXJhdGlvbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBub2RlIChyZWN1cnNpdmUpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHJlZSB0byBmcmVlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVJRFRhYmxlIi8+eG1sRnJlZUlEVGFibGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVJRFRhYmxlCQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxJRFRhYmxlUHRyIj54bWxJRFRhYmxlUHRyPC9hPiB0YWJsZSk8YnIvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gSUQgaGFzaCB0YWJsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBpZCB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVOb3RhdGlvblRhYmxlIi8+eG1sRnJlZU5vdGF0aW9uVGFibGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVOb3RhdGlvblRhYmxlCQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTxici8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbnRpdGllcyBoYXNoIHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIG5vdGF0aW9uIHRhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZVJlZlRhYmxlIi8+eG1sRnJlZVJlZlRhYmxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlUmVmVGFibGUJCQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFJlZlRhYmxlUHRyIj54bWxSZWZUYWJsZVB0cjwvYT4gdGFibGUpPGJyLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIFJlZiBoYXNoIHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIHJlZiB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVWYWxpZEN0eHQiLz54bWxGcmVlVmFsaWRDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlVmFsaWRDdHh0CQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkZyZWUgYSB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0IHRvIGZyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXREdGRBdHRyRGVzYyIvPnhtbEdldER0ZEF0dHJEZXNjICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+CXhtbEdldER0ZEF0dHJEZXNjCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZWFyY2ggdGhlIERURCBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb24gdGhpcyBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+IGlmIGZvdW5kIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXREdGRFbGVtZW50RGVzYyIvPnhtbEdldER0ZEVsZW1lbnREZXNjICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4JeG1sR2V0RHRkRWxlbWVudERlc2MJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCB0aGUgRFREIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBlbGVtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgRHREIHRvIHNlYXJjaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+IGlmIGZvdW5kIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXREdGROb3RhdGlvbkRlc2MiLz54bWxHZXREdGROb3RhdGlvbkRlc2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+CXhtbEdldER0ZE5vdGF0aW9uRGVzYwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIG5vdGF0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgRHREIHRvIHNlYXJjaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vdGF0aW9uIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+IGlmIGZvdW5kIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXREdGRRQXR0ckRlc2MiLz54bWxHZXREdGRRQXR0ckRlc2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT4JeG1sR2V0RHRkUUF0dHJEZXNjCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCB0aGUgRFREIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBxdWFsaWZpZWQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb24gdGhpcyBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+IGlmIGZvdW5kIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXREdGRRRWxlbWVudERlc2MiLz54bWxHZXREdGRRRWxlbWVudERlc2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPgl4bWxHZXREdGRRRWxlbWVudERlc2MJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk8YnIvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGVsZW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmR0ZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBEdEQgdG8gc2VhcmNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBpZiBmb3VuZCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0SUQiLz54bWxHZXRJRCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CXhtbEdldElECQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogSUQpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyaW5nIHRoZSBnaXZlbiBJRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+SUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBJRCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QgZm91bmQsIG90aGVyd2lzZSB0aGUgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gZGVmaW5pbmcgdGhlIElEPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2V0UmVmcyIvPnhtbEdldFJlZnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPgl4bWxHZXRSZWZzCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogSUQpPGJyLz4KKzwvcHJlPjxwPkZpbmQgdGhlIHNldCBvZiByZWZlcmVuY2VzIGZvciB0aGUgc3VwcGxpZWQgSUQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIElEIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIG5vZGUgc2V0IGZvciB0aGUgSUQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNJRCIvPnhtbElzSUQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNJRAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik8YnIvPgorPC9wcmU+PHA+RGV0ZXJtaW5lIHdoZXRoZXIgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgb2YgdHlwZSBJRC4gSW4gY2FzZSB3ZSBoYXZlIERURChzKSB0aGVuIHRoaXMgaXMgZG9uZSBpZiBEVEQgbG9hZGluZyBoYXMgYmVlbiByZXF1ZXN0ZWQuIEluIHRoZSBjYXNlIG9mIEhUTUwgZG9jdW1lbnRzIHBhcnNlZCB3aXRoIHRoZSBIVE1MIHBhcnNlciwgdGhlbiBJRCBkZXRlY3Rpb24gaXMgZG9uZSBzeXN0ZW1hdGljYWxseS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAxIGRlcGVuZGluZyBvbiB0aGUgbG9va3VwIHJlc3VsdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElzTWl4ZWRFbGVtZW50Ii8+eG1sSXNNaXhlZEVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNNaXhlZEVsZW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TZWFyY2ggaW4gdGhlIER0RHMgd2hldGhlciBhbiBlbGVtZW50IGFjY2VwdCBNaXhlZCBjb250ZW50IChvciBBTlkpIGJhc2ljYWxseSBpZiBpdCBpcyBzdXBwb3NlZCB0byBhY2NlcHQgdGV4dCBjaGlsZHM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIG5vLCAxIGlmIHllcywgYW5kIC0xIGlmIG5vIGVsZW1lbnQgZGVzY3JpcHRpb24gaXMgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSXNSZWYiLz54bWxJc1JlZiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc1JlZgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik8YnIvPgorPC9wcmU+PHA+RGV0ZXJtaW5lIHdoZXRoZXIgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgb2YgdHlwZSBSZWYuIEluIGNhc2Ugd2UgaGF2ZSBEVEQocykgdGhlbiB0aGlzIGlzIHNpbXBsZSwgb3RoZXJ3aXNlIHdlIHVzZSBhbiBoZXVyaXN0aWM6IG5hbWUgUmVmICh1cHBlciBvciBsb3dlcmNhc2UpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IGNhcnJ5aW5nIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSBsb29rdXAgcmVzdWx0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jRWxlbWVudENvbnRlbnQiLz54bWxOZXdEb2NFbGVtZW50Q29udGVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4JeG1sTmV3RG9jRWxlbWVudENvbnRlbnQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT4gdHlwZSk8YnIvPgorPC9wcmU+PHA+QWxsb2NhdGUgYW4gZWxlbWVudCBjb250ZW50IHN0cnVjdHVyZSBmb3IgdGhlIGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdWJlbGVtZW50IG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgZWxlbWVudCBjb250ZW50IGRlY2w8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIG5ldyBlbGVtZW50IGNvbnRlbnQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3RWxlbWVudENvbnRlbnQiLz54bWxOZXdFbGVtZW50Q29udGVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4JeG1sTmV3RWxlbWVudENvbnRlbnQJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT4gdHlwZSk8YnIvPgorPC9wcmU+PHA+QWxsb2NhdGUgYW4gZWxlbWVudCBjb250ZW50IHN0cnVjdHVyZS4gRGVwcmVjYXRlZCBpbiBmYXZvciBvZiA8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sTmV3RG9jRWxlbWVudENvbnRlbnQiPnhtbE5ld0RvY0VsZW1lbnRDb250ZW50PC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN1YmVsZW1lbnQgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBvZiBlbGVtZW50IGNvbnRlbnQgZGVjbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdWYWxpZEN0eHQiLz54bWxOZXdWYWxpZEN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+CXhtbE5ld1ZhbGlkQ3R4dAkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkFsbG9jYXRlIGEgdmFsaWRhdGlvbiBjb250ZXh0IHN0cnVjdHVyZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIG5ldyB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVtb3ZlSUQiLz54bWxSZW1vdmVJRCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZW1vdmVJRAkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPGJyLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgZ2l2ZW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZnJvbSB0aGUgSUQgdGFibGUgbWFpbnRhaW5lZCBpbnRlcm5hbGx5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaWYgdGhlIGxvb2t1cCBmYWlsZWQgYW5kIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVtb3ZlUmVmIi8+eG1sUmVtb3ZlUmVmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbW92ZVJlZgkJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPGJyLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgZ2l2ZW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZnJvbSB0aGUgUmVmIHRhYmxlIG1haW50YWluZWQgaW50ZXJuYWxseS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGlmIHRoZSBsb29rdXAgZmFpbGVkIGFuZCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQiLz54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50CShjaGFyICogYnVmLCA8YnIvPgkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCwgPGJyLz4JCQkJCSBpbnQgZW5nbG9iKTxici8+Cis8L3ByZT48cD5UaGlzIHdpbGwgZHVtcCB0aGUgY29udGVudCBvZiB0aGUgZWxlbWVudCBjb250ZW50IGRlZmluaXRpb24gSW50ZW5kZWQganVzdCBmb3IgdGhlIGRlYnVnIHJvdXRpbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3V0cHV0IGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlciBzaXplPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBlbGVtZW50IHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmdsb2I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgb25lIG11c3QgcHJpbnQgdGhlIGVuZ2xvYmluZyBwYXJlbnRoZXNpcywgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiLz54bWxTcHJpbnRmRWxlbWVudENvbnRlbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNwcmludGZFbGVtZW50Q29udGVudAkoY2hhciAqIGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGVuZ2xvYik8YnIvPgorPC9wcmU+PHA+RGVwcmVjYXRlZCwgdW5zYWZlLCB1c2UgPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFNucHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQ8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG91dHB1dCBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVsZW1lbnQgdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZ2xvYjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBvbmUgbXVzdCBwcmludCB0aGUgZW5nbG9iaW5nIHBhcmVudGhlc2lzLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwiLz54bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBlbGVtKTxici8+Cis8L3ByZT48cD4oUmUpQnVpbGQgdGhlIGF1dG9tYXRhIGFzc29jaWF0ZWQgdG8gdGhlIGNvbnRlbnQgbW9kZWwgb2YgdGhpcyBlbGVtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZWxlbWVudCBkZWNsYXJhdGlvbiBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGluIGNhc2Ugb2Ygc3VjY2VzcywgMCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiLz54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+RG9lcyB0aGUgdmFsaWRhdGlvbiByZWxhdGVkIGV4dHJhIHN0ZXAgb2YgdGhlIG5vcm1hbGl6YXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzOiBJZiB0aGUgZGVjbGFyZWQgdmFsdWUgaXMgbm90IENEQVRBLCB0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIG11c3QgZnVydGhlciBwcm9jZXNzIHRoZSBub3JtYWxpemVkIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlIGJ5IGRpc2NhcmRpbmcgYW55IGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXJzLCBhbmQgYnkgcmVwbGFjaW5nIHNlcXVlbmNlcyBvZiBzcGFjZSAoI3gyMCkgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiBieSBzaW5nbGUgc3BhY2UgKCN4MjApIGNoYXJhY3Rlci4gQWxzbyBjaGVjayBWQzogU3RhbmRhbG9uZSBEb2N1bWVudCBEZWNsYXJhdGlvbiBpbiBQMzIsIGFuZCB1cGRhdGUgY3R4dC0mZ3Q7dmFsaWQgYWNjb3JkaW5nbHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBub3JtYWxpemVkIHN0cmluZyBpZiBub3JtYWxpemF0aW9uIGlzIG5lZWRlZCwgTlVMTCBvdGhlcndpc2UgdGhlIGNhbGxlciBtdXN0IGZyZWUgdGhlIHJldHVybmVkIHZhbHVlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iLz54bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50Ij54bWxFbGVtZW50Q29udGVudDwvYT4gKiBjdHJlZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzLCA8YnIvPgkJCQkJIGludCAqIGxlbiwgPGJyLz4JCQkJCSBpbnQgbWF4KTxici8+Cis8L3ByZT48cD5CdWlsZC9leHRlbmQgYSBsaXN0IG9mIHBvdGVudGlhbCBjaGlsZHJlbiBhbGxvd2VkIGJ5IHRoZSBjb250ZW50IHRyZWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGNvbnRlbnQgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGFycmF5IHRvIHN0b3JlIHRoZSBsaXN0IG9mIGNoaWxkIG5hbWVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGVsZW1lbnQgaW4gdGhlIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1heDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnQgaW4gdGhlIGxpc3QsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIi8+eG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZSI+eG1sTm9kZTwvYT4gKiBwcmV2LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGUiPnhtbE5vZGU8L2E+ICogbmV4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzLCA8YnIvPgkJCQkJIGludCBtYXgpPGJyLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGlzdCBvZiBhdXRob3JpemVkIGNoaWxkcmVuIHRvIGluc2VydCB3aXRoaW4gYW4gZXhpc3RpbmcgdHJlZSB3aGlsZSByZXNwZWN0aW5nIHRoZSB2YWxpZGl0eSBjb25zdHJhaW50cyBmb3JjZWQgYnkgdGhlIER0ZC4gVGhlIGluc2VydGlvbiBwb2ludCBpcyBkZWZpbmVkIHVzaW5nIEBwcmV2IGFuZCBAbmV4dCBpbiB0aGUgZm9sbG93aW5nIHdheXM6IHRvIGluc2VydCBiZWZvcmUgJ25vZGUnOiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMobm9kZS0mZ3Q7cHJldiwgbm9kZSwgLi4uIHRvIGluc2VydCBuZXh0ICdub2RlJzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKG5vZGUsIG5vZGUtJmd0O25leHQsIC4uLiB0byByZXBsYWNlICdub2RlJzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKG5vZGUtJmd0O3ByZXYsIG5vZGUtJmd0O25leHQsIC4uLiB0byBwcmVwZW5kIGEgY2hpbGQgdG8gJ25vZGUnOiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMoTlVMTCwgbm9kZS0mZ3Q7Y2hpbGRzLCB0byBhcHBlbmQgYSBjaGlsZCB0byAnbm9kZSc6IHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyhub2RlLSZndDtsYXN0LCBOVUxMLCAuLi4gcG9pbnRlcnMgdG8gdGhlIGVsZW1lbnQgbmFtZXMgYXJlIGluc2VydGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5IGFuZCBkbyBub3QgbmVlZCB0byBiZSBmcmVlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZXY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgdG8gaW5zZXJ0IGFmdGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IHRvIGluc2VydCBuZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXJyYXkgdG8gc3RvcmUgdGhlIGxpc3Qgb2YgY2hpbGQgbmFtZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1heDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnQgaW4gdGhlIGxpc3QsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSB2YWx1ZSBAbWF4IHRoZSBjYWxsZXIgaXMgaW52aXRlZCB0byBncm93IHRoZSByZWNlaXZpbmcgYXJyYXkgYW5kIHJldHJ5LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiLz54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPkRvZXMgdGhlIHZhbGlkYXRpb24gcmVsYXRlZCBleHRyYSBzdGVwIG9mIHRoZSBub3JtYWxpemF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlczogSWYgdGhlIGRlY2xhcmVkIHZhbHVlIGlzIG5vdCBDREFUQSwgdGhlbiB0aGUgWE1MIHByb2Nlc3NvciBtdXN0IGZ1cnRoZXIgcHJvY2VzcyB0aGUgbm9ybWFsaXplZCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycywgYW5kIGJ5IHJlcGxhY2luZyBzZXF1ZW5jZXMgb2Ygc3BhY2UgKCN4MjApIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYnkgc2luZ2xlIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcmVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IG5vcm1hbGl6ZWQgc3RyaW5nIGlmIG5vcm1hbGl6YXRpb24gaXMgbmVlZGVkLCBOVUxMIG90aGVyd2lzZSB0aGUgY2FsbGVyIG11c3QgZnJlZSB0aGUgcmV0dXJuZWQgdmFsdWUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIi8+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbAkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+IGF0dHIpPGJyLz4KKzwvcHJlPjxwPlRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZpbml0aW9uIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGFzIGRlc2NyaWJlZCBieSB0aGUgWE1MLTEuMCByZWNvbW1lbmRhdGlvbjogLSBbIFZDOiBBdHRyaWJ1dGUgRGVmYXVsdCBMZWdhbCBdIC0gWyBWQzogRW51bWVyYXRpb24gXSAtIFsgVkM6IElEIEF0dHJpYnV0ZSBEZWZhdWx0IF0gVGhlIElEL0lEUkVGIHVuaXF1ZW5lc3MgYW5kIG1hdGNoaW5nIGFyZSBkb25lIHNlcGFyYXRlbHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVmaW5pdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiLz54bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZVR5cGUiPnhtbEF0dHJpYnV0ZVR5cGU8L2E+IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5WYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBtYXRjaCB0aGUgcHJvcGVyIHByb2R1Y3Rpb24gWyBWQzogSUQgXSBWYWx1ZXMgb2YgdHlwZSBJRCBtdXN0IG1hdGNoIHRoZSBOYW1lIHByb2R1Y3Rpb24uLi4uIFsgVkM6IElEUkVGIF0gVmFsdWVzIG9mIHR5cGUgSURSRUYgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCBhbmQgdmFsdWVzIG9mIHR5cGUgSURSRUZTIG11c3QgbWF0Y2ggTmFtZXMgLi4uIFsgVkM6IEVudGl0eSBOYW1lIF0gVmFsdWVzIG9mIHR5cGUgRU5USVRZIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgdmFsdWVzIG9mIHR5cGUgRU5USVRJRVMgbXVzdCBtYXRjaCBOYW1lcyAuLi4gWyBWQzogTmFtZSBUb2tlbiBdIFZhbHVlcyBvZiB0eXBlIE5NVE9LRU4gbXVzdCBtYXRjaCB0aGUgTm10b2tlbiBwcm9kdWN0aW9uOyB2YWx1ZXMgb2YgdHlwZSBOTVRPS0VOUyBtdXN0IG1hdGNoIE5tdG9rZW5zLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVEb2N1bWVudCIvPnhtbFZhbGlkYXRlRG9jdW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVEb2N1bWVudAkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGluc3RhbmNlIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBhbGwgdGhlIGNoZWNrcyBkZXNjcmliZWQgYnkgdGhlIFhNTCBSZWMgaS5lLiB2YWxpZGF0ZXMgdGhlIGludGVybmFsIGFuZCBleHRlcm5hbCBzdWJzZXQgKGlmIHByZXNlbnQpIGFuZCB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCIvPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5Eb2VzIHRoZSBmaW5hbCBzdGVwIGZvciB0aGUgZG9jdW1lbnQgdmFsaWRhdGlvbiBvbmNlIGFsbCB0aGUgaW5jcmVtZW50YWwgdmFsaWRhdGlvbiBzdGVwcyBoYXZlIGJlZW4gY29tcGxldGVkIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGRlc2NyaWJlZCBieSB0aGUgWE1MIFJlYyBDaGVjayBhbGwgdGhlIElEUkVGL0lEUkVGUyBhdHRyaWJ1dGVzIGRlZmluaXRpb24gZm9yIHZhbGlkaXR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZUR0ZCIvPnhtbFZhbGlkYXRlRHRkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlRHRkCQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQpPGJyLz4KKzwvcHJlPjxwPlRyeSB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYWdhaW5zdCB0aGUgZHRkIGluc3RhbmNlIEJhc2ljYWxseSBpdCBkb2VzIGNoZWNrIGFsbCB0aGUgZGVmaW5pdGlvbnMgaW4gdGhlIER0RC4gTm90ZSB0aGUgdGhlIGludGVybmFsIHN1YnNldCAoaWYgcHJlc2VudCkgaXMgZGUtY291cGxlZCAoaS5lLiBub3QgdXNlZCksIHdoaWNoIGNvdWxkIGdpdmUgcHJvYmxlbXMgaWYgSUQgb3IgSURSRUYgaXMgcHJlc2VudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGR0ZCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlRHRkRmluYWwiLz54bWxWYWxpZGF0ZUR0ZEZpbmFsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlRHRkRmluYWwJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+RG9lcyB0aGUgZmluYWwgc3RlcCBmb3IgdGhlIGR0ZHMgdmFsaWRhdGlvbiBvbmNlIGFsbCB0aGUgc3Vic2V0cyBoYXZlIGJlZW4gcGFyc2VkIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGRlc2NyaWJlZCBieSB0aGUgWE1MIFJlYyAtIGNoZWNrIHRoYXQgRU5USVRZIGFuZCBFTlRJVElFUyB0eXBlIGF0dHJpYnV0ZXMgZGVmYXVsdCBvciBwb3NzaWJsZSB2YWx1ZXMgbWF0Y2hlcyBvbmUgb2YgdGhlIGRlZmluZWQgZW50aXRpZXMuIC0gY2hlY2sgdGhhdCBOT1RBVElPTiB0eXBlIGF0dHJpYnV0ZXMgZGVmYXVsdCBvciBwb3NzaWJsZSB2YWx1ZXMgbWF0Y2hlcyBvbmUgb2YgdGhlIGRlZmluZWQgbm90YXRpb25zLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgaWYgaW52YWxpZCBhbmQgLTEgaWYgbm90IHdlbGwtZm9ybWVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVFbGVtZW50Ii8+eG1sVmFsaWRhdGVFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlRWxlbWVudAkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pPGJyLz4KKzwvcHJlPjxwPlRyeSB0byB2YWxpZGF0ZSB0aGUgc3VidHJlZSB1bmRlciBhbiBlbGVtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIi8+eG1sVmFsaWRhdGVFbGVtZW50RGVjbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZUVsZW1lbnREZWNsCQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4gZWxlbSk8YnIvPgorPC9wcmU+PHA+VHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIGVsZW1lbnQgZGVmaW5pdGlvbiBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb246IC0gWyBWQzogT25lIElEIHBlciBFbGVtZW50IFR5cGUgXSAtIFsgVkM6IE5vIER1cGxpY2F0ZSBUeXBlcyBdIC0gWyBWQzogVW5pcXVlIEVsZW1lbnQgVHlwZSBEZWNsYXJhdGlvbiBdPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgZGVmaW5pdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlTmFtZVZhbHVlIi8+eG1sVmFsaWRhdGVOYW1lVmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVOYW1lVmFsdWUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyLz4KKzwvcHJlPjxwPlZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIHZhbHVlIG1hdGNoIE5hbWUgcHJvZHVjdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIE5hbWUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZU5hbWVzVmFsdWUiLz54bWxWYWxpZGF0ZU5hbWVzVmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVOYW1lc1ZhbHVlCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5WYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBtYXRjaCBOYW1lcyBwcm9kdWN0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gTmFtZXMgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZSIvPnhtbFZhbGlkYXRlTm10b2tlblZhbHVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlTm10b2tlblZhbHVlCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5WYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBtYXRjaCBObXRva2VuIHByb2R1Y3Rpb24gWyBWQzogTmFtZSBUb2tlbiBdPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gTm10b2tlbiB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZSIvPnhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+VmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2ggTm10b2tlbnMgcHJvZHVjdGlvbiBbIFZDOiBOYW1lIFRva2VuIF08L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBObXRva2VucyB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlTm90YXRpb25EZWNsIi8+eG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+IG5vdGEpPGJyLz4KKzwvcHJlPjxwPlRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSBub3RhdGlvbiBkZWZpbml0aW9uIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGFzIGRlc2NyaWJlZCBieSB0aGUgWE1MLTEuMCByZWNvbW1lbmRhdGlvbjogLSBpdCBzZWVtcyB0aGF0IG5vIHZhbGlkaXR5IGNvbnN0cmFpbnQgZXhpc3RzIG9uIG5vdGF0aW9uIGRlY2xhcmF0aW9ucyBCdXQgdGhpcyBmdW5jdGlvbiBnZXQgY2FsbGVkIGFueXdheSAuLi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm90YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub3RhdGlvbiBkZWZpbml0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVOb3RhdGlvblVzZSIvPnhtbFZhbGlkYXRlTm90YXRpb25Vc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVOb3RhdGlvblVzZQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBub3RhdGlvbk5hbWUpPGJyLz4KKzwvcHJlPjxwPlZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIG5hbWUgbWF0Y2ggYSBub3RhdGlvbiBkZWNsYXJhdGlvbi4gLSBbIFZDOiBOb3RhdGlvbiBEZWNsYXJlZCBdPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm90YXRpb25OYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm90YXRpb24gbmFtZSB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlT25lQXR0cmlidXRlIi8+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgYSBzaW5nbGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZm9yIGFuIGVsZW1lbnQgYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IEF0dHJpYnV0ZSBWYWx1ZSBUeXBlIF0gLSBbIFZDOiBGaXhlZCBBdHRyaWJ1dGUgRGVmYXVsdCBdIC0gWyBWQzogRW50aXR5IE5hbWUgXSAtIFsgVkM6IE5hbWUgVG9rZW4gXSAtIFsgVkM6IElEIF0gLSBbIFZDOiBJRFJFRiBdIC0gWyBWQzogRW50aXR5IE5hbWUgXSAtIFsgVkM6IE5vdGF0aW9uIEF0dHJpYnV0ZXMgXSBUaGUgSUQvSURSRUYgdW5pcXVlbmVzcyBhbmQgbWF0Y2hpbmcgYXJlIGRvbmUgc2VwYXJhdGVseTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSAod2l0aG91dCBlbnRpdGllcyBwcm9jZXNzaW5nKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlT25lRWxlbWVudCIvPnhtbFZhbGlkYXRlT25lRWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU9uZUVsZW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxici8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgYSBzaW5nbGUgZWxlbWVudCBhbmQgaXQncyBhdHRyaWJ1dGVzLCBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb246IC0gWyBWQzogRWxlbWVudCBWYWxpZCBdIC0gWyBWQzogUmVxdWlyZWQgQXR0cmlidXRlIF0gVGhlbiBjYWxsIHhtbFZhbGlkYXRlT25lQXR0cmlidXRlKCkgZm9yIGVhY2ggPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gcHJlc2VudC4gVGhlIElEL0lEUkVGIGNoZWNraW5ncyBhcmUgZG9uZSBzZXBhcmF0ZWx5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSIvPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlT25lTmFtZXNwYWNlCQkoPGEgaHJlZj0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgYSBzaW5nbGUgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGZvciBhbiBlbGVtZW50IGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGFzIGRlc2NyaWJlZCBieSB0aGUgWE1MLTEuMCByZWNvbW1lbmRhdGlvbjogLSBbIFZDOiBBdHRyaWJ1dGUgVmFsdWUgVHlwZSBdIC0gWyBWQzogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgXSAtIFsgVkM6IEVudGl0eSBOYW1lIF0gLSBbIFZDOiBOYW1lIFRva2VuIF0gLSBbIFZDOiBJRCBdIC0gWyBWQzogSURSRUYgXSAtIFsgVkM6IEVudGl0eSBOYW1lIF0gLSBbIFZDOiBOb3RhdGlvbiBBdHRyaWJ1dGVzIF0gVGhlIElEL0lEUkVGIHVuaXF1ZW5lc3MgYW5kIG1hdGNoaW5nIGFyZSBkb25lIHNlcGFyYXRlbHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZWxlbWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSAod2l0aG91dCBlbnRpdGllcyBwcm9jZXNzaW5nKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlUG9wRWxlbWVudCIvPnhtbFZhbGlkYXRlUG9wRWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZVBvcEVsZW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBxbmFtZSk8YnIvPgorPC9wcmU+PHA+UG9wIHRoZSBlbGVtZW50IGVuZCBmcm9tIHRoZSB2YWxpZGF0aW9uIHN0YWNrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5xbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVQdXNoQ0RhdGEiLz54bWxWYWxpZGF0ZVB1c2hDRGF0YSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZVB1c2hDRGF0YQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5jaGVjayB0aGUgQ0RhdGEgcGFyc2VkIGZvciB2YWxpZGF0aW9uIGluIHRoZSBjdXJyZW50IHN0YWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zb21lIGNoYXJhY3RlciBkYXRhIHJlYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmdodCBvZiB0aGUgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVQdXNoRWxlbWVudCIvPnhtbFZhbGlkYXRlUHVzaEVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVQdXNoRWxlbWVudAkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHFuYW1lKTxici8+Cis8L3ByZT48cD5QdXNoIGEgbmV3IGVsZW1lbnQgc3RhcnQgb24gdGhlIHZhbGlkYXRpb24gc3RhY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnFuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcXVhbGlmaWVkIG5hbWUgYXMgYXBwZWFyaW5nIGluIHRoZSBzZXJpYWxpemF0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIG5vIHZhbGlkYXRpb24gcHJvYmxlbSB3YXMgZm91bmQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZVJvb3QiLz54bWxWYWxpZGF0ZVJvb3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVSb290CQkJKDxhIGhyZWY9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgYSB0aGUgcm9vdCBlbGVtZW50IGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2sgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IFJvb3QgRWxlbWVudCBUeXBlIF0gaXQgZG9lc24ndCB0cnkgdG8gcmVjdXJzZSBvciBhcHBseSBvdGhlciBjaGVjayB0byB0aGUgZWxlbWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteGluY2x1ZGUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14aW5jbHVkZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyYTYxZDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteGluY2x1ZGUuaHRtbApAQCAtMCwwICsxLDE2OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT54aW5jbHVkZTogaW1wbGVtZW50YXRpb24gb2YgWEluY2x1ZGU8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXZhbGlkLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj54aW5jbHVkZTwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnhpbmNsdWRlIC0gaW1wbGVtZW50YXRpb24gb2YgWEluY2x1ZGU8L3A+CisgICAgPHA+QVBJIHRvIGhhbmRsZSBYSW5jbHVkZSBwcm9jZXNzaW5nLCBpbXBsZW1lbnRzIHRoZSBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtIExhc3QgQ2FsbCBXb3JraW5nIERyYWZ0IDEwIE5vdmVtYmVyIDIwMDM8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBEYW5pZWwgVmVpbGxhcmQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfUEFSU0VfVEVYVCI+WElOQ0xVREVfUEFSU0VfVEVYVDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9QQVJTRV9YUE9JTlRFUiI+WElOQ0xVREVfUEFSU0VfWFBPSU5URVI8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfSFJFRiI+WElOQ0xVREVfSFJFRjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9GQUxMQkFDSyI+WElOQ0xVREVfRkFMTEJBQ0s8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfTlMiPlhJTkNMVURFX05TPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX1BBUlNFIj5YSU5DTFVERV9QQVJTRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9OT0RFIj5YSU5DTFVERV9OT0RFPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX1BBUlNFX1hNTCI+WElOQ0xVREVfUEFSU0VfWE1MPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX1BBUlNFX0VOQ09ESU5HIj5YSU5DTFVERV9QQVJTRV9FTkNPRElORzwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9PTERfTlMiPlhJTkNMVURFX09MRF9OUzwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sWEluY2x1ZGVDdHh0IDxhIGhyZWY9IiN4bWxYSW5jbHVkZUN0eHQiPnhtbFhJbmNsdWRlQ3R4dDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHQiPnhtbFhJbmNsdWRlQ3R4dDwvYT4gKiA8YSBocmVmPSIjeG1sWEluY2x1ZGVDdHh0UHRyIj54bWxYSW5jbHVkZUN0eHRQdHI8L2E+OworaW50CTxhIGhyZWY9IiN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdHJlZSwgPGJyLz4JCQkJCSBpbnQgZmxhZ3MsIDxici8+CQkJCQkgdm9pZCAqIGRhdGEpOworaW50CTxhIGhyZWY9IiN4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEiPnhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IGZsYWdzLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKK2ludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IGZsYWdzKTsKK2ludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlKTsKK2ludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVQcm9jZXNzTm9kZSI+eG1sWEluY2x1ZGVQcm9jZXNzTm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVDdHh0UHRyIj54bWxYSW5jbHVkZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYSW5jbHVkZUZyZWVDb250ZXh0Ij54bWxYSW5jbHVkZUZyZWVDb250ZXh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFhJbmNsdWRlU2V0RmxhZ3MiPnhtbFhJbmNsdWRlU2V0RmxhZ3M8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dFB0ciI+eG1sWEluY2x1ZGVDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBmbGFncyk7CitpbnQJPGEgaHJlZj0iI3htbFhJbmNsdWRlUHJvY2VzcyI+eG1sWEluY2x1ZGVQcm9jZXNzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOworPGEgaHJlZj0ibGlieG1sMi14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dFB0ciI+eG1sWEluY2x1ZGVDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sWEluY2x1ZGVOZXdDb250ZXh0Ij54bWxYSW5jbHVkZU5ld0NvbnRleHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKK2ludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3M8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIvPgkJCQkJIGludCBmbGFncyk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWElOQ0xVREVfRkFMTEJBQ0siPk1hY3JvIDwvYT5YSU5DTFVERV9GQUxMQkFDSzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX0ZBTExCQUNLIj5YSU5DTFVERV9GQUxMQkFDSzwvYT47Cis8L3ByZT48cD5NYWNybyBkZWZpbmluZyAiZmFsbGJhY2siPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhJTkNMVURFX0hSRUYiPk1hY3JvIDwvYT5YSU5DTFVERV9IUkVGPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfSFJFRiI+WElOQ0xVREVfSFJFRjwvYT47Cis8L3ByZT48cD5NYWNybyBkZWZpbmluZyAiaHJlZiI8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWElOQ0xVREVfTk9ERSI+TWFjcm8gPC9hPlhJTkNMVURFX05PREU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9OT0RFIj5YSU5DTFVERV9OT0RFPC9hPjsKKzwvcHJlPjxwPk1hY3JvIGRlZmluaW5nICJpbmNsdWRlIjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYSU5DTFVERV9OUyI+TWFjcm8gPC9hPlhJTkNMVURFX05TPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfTlMiPlhJTkNMVURFX05TPC9hPjsKKzwvcHJlPjxwPk1hY3JvIGRlZmluaW5nIHRoZSBYaW5jbHVkZSBuYW1lc3BhY2U6IGh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGU8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWElOQ0xVREVfT0xEX05TIj5NYWNybyA8L2E+WElOQ0xVREVfT0xEX05TPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfT0xEX05TIj5YSU5DTFVERV9PTERfTlM8L2E+OworPC9wcmU+PHA+TWFjcm8gZGVmaW5pbmcgdGhlIGRyYWZ0IFhpbmNsdWRlIG5hbWVzcGFjZTogaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZTwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYSU5DTFVERV9QQVJTRSI+TWFjcm8gPC9hPlhJTkNMVURFX1BBUlNFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfUEFSU0UiPlhJTkNMVURFX1BBUlNFPC9hPjsKKzwvcHJlPjxwPk1hY3JvIGRlZmluaW5nICJwYXJzZSI8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWElOQ0xVREVfUEFSU0VfRU5DT0RJTkciPk1hY3JvIDwvYT5YSU5DTFVERV9QQVJTRV9FTkNPRElORzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX1BBUlNFX0VOQ09ESU5HIj5YSU5DTFVERV9QQVJTRV9FTkNPRElORzwvYT47Cis8L3ByZT48cD5NYWNybyBkZWZpbmluZyAiZW5jb2RpbmciPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhJTkNMVURFX1BBUlNFX1RFWFQiPk1hY3JvIDwvYT5YSU5DTFVERV9QQVJTRV9URVhUPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfUEFSU0VfVEVYVCI+WElOQ0xVREVfUEFSU0VfVEVYVDwvYT47Cis8L3ByZT48cD5NYWNybyBkZWZpbmluZyAidGV4dCI8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWElOQ0xVREVfUEFSU0VfWE1MIj5NYWNybyA8L2E+WElOQ0xVREVfUEFSU0VfWE1MPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfUEFSU0VfWE1MIj5YSU5DTFVERV9QQVJTRV9YTUw8L2E+OworPC9wcmU+PHA+TWFjcm8gZGVmaW5pbmcgInhtbCI8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWElOQ0xVREVfUEFSU0VfWFBPSU5URVIiPk1hY3JvIDwvYT5YSU5DTFVERV9QQVJTRV9YUE9JTlRFUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX1BBUlNFX1hQT0lOVEVSIj5YSU5DTFVERV9QQVJTRV9YUE9JTlRFUjwvYT47Cis8L3ByZT48cD5NYWNybyBkZWZpbmluZyAieHBvaW50ZXIiPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlQ3R4dCI+U3RydWN0dXJlIDwvYT54bWxYSW5jbHVkZUN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFhJbmNsdWRlQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sWEluY2x1ZGVDdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlQ3R4dFB0ciI+VHlwZWRlZiA8L2E+eG1sWEluY2x1ZGVDdHh0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dCI+eG1sWEluY2x1ZGVDdHh0PC9hPiAqIHhtbFhJbmNsdWRlQ3R4dFB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYSW5jbHVkZUZyZWVDb250ZXh0Ii8+eG1sWEluY2x1ZGVGcmVlQ29udGV4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWEluY2x1ZGVGcmVlQ29udGV4dAkJKDxhIGhyZWY9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+RnJlZSBhbiBYSW5jbHVkZSBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWEluY2x1ZGUgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlTmV3Q29udGV4dCIvPnhtbFhJbmNsdWRlTmV3Q29udGV4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4JeG1sWEluY2x1ZGVOZXdDb250ZXh0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5DcmVhdGVzIGEgbmV3IFhJbmNsdWRlIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIERvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlUHJvY2VzcyIvPnhtbFhJbmNsdWRlUHJvY2VzcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYSW5jbHVkZVByb2Nlc3MJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBvbiB0aGUgWE1MIGRvY3VtZW50IEBkb2M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQgb3IgdGhlIG51bWJlciBvZiBzdWJzdGl0dXRpb25zIGRvbmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MiLz54bWxYSW5jbHVkZVByb2Nlc3NGbGFncyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYSW5jbHVkZVByb2Nlc3NGbGFncwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxici8+CQkJCQkgaW50IGZsYWdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBvbiB0aGUgWE1MIGRvY3VtZW50IEBkb2M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mbGFnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT4gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZCBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEiLz54bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIGludCBmbGFncywgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gb24gdGhlIFhNTCBkb2N1bWVudCBAZG9jPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmxhZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2V0IG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+IHVzZWQgZm9yIHBhcnNpbmcgWE1MIGluY2x1ZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hcHBsaWNhdGlvbiBkYXRhIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHBhcnNlciBjb250ZXh0IGluIHRoZSBfcHJpdmF0ZSBmaWVsZCBvZiB0aGUgcGFyc2VyIGNvbnRleHQocyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZCBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIi8+eG1sWEluY2x1ZGVQcm9jZXNzTm9kZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYSW5jbHVkZVByb2Nlc3NOb2RlCQkoPGEgaHJlZj0ibGlieG1sMi14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dFB0ciI+eG1sWEluY2x1ZGVDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIGZvciB0aGUgZ2l2ZW4gc3VidHJlZSByZXVzaW5nIHRoZSBpbmZvcm1hdGlvbnMgYW5kIGRhdGEgY29taW5nIGZyb20gdGhlIGdpdmVuIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBleGlzdGluZyBYSW5jbHVkZSBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQgb3IgdGhlIG51bWJlciBvZiBzdWJzdGl0dXRpb25zIGRvbmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWEluY2x1ZGVQcm9jZXNzVHJlZSIvPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWEluY2x1ZGVQcm9jZXNzVHJlZQkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRyZWUpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIGZvciB0aGUgZ2l2ZW4gc3VidHJlZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGluIGFuIFhNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyIvPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRyZWUsIDxici8+CQkJCQkgaW50IGZsYWdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBmb3IgdGhlIGdpdmVuIHN1YnRyZWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZSBpbiBhbiBYTUwgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZsYWdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEiLz54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRyZWUsIDxici8+CQkJCQkgaW50IGZsYWdzLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBvbiB0aGUgWE1MIG5vZGUgQHRyZWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mbGFnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT4gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFwcGxpY2F0aW9uIGRhdGEgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcGFyc2VyIGNvbnRleHQgaW4gdGhlIF9wcml2YXRlIGZpZWxkIG9mIHRoZSBwYXJzZXIgY29udGV4dChzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlU2V0RmxhZ3MiLz54bWxYSW5jbHVkZVNldEZsYWdzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhJbmNsdWRlU2V0RmxhZ3MJCSg8YSBocmVmPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVDdHh0UHRyIj54bWxYSW5jbHVkZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IGZsYWdzKTxici8+Cis8L3ByZT48cD5TZXQgdGhlIGZsYWdzIHVzZWQgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZyBvZiBYTUwgcmVzb3VyY2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWEluY2x1ZGUgcHJvY2Vzc2luZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mbGFnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT4gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhsaW5rLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteGxpbmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmU2OTY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhsaW5rLmh0bWwKQEAgLTAsMCArMSwxNjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eGxpbms6IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnhsaW5rPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+eGxpbmsgLSB1bmZpbmlzaGVkIFhMaW5rIGRldGVjdGlvbiBtb2R1bGU8L3A+CisgICAgPHA+dW5maW5pc2hlZCBYTGluayBkZXRlY3Rpb24gbW9kdWxlIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiA8YSBocmVmPSIjeGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3hsaW5rU2hvdyI+eGxpbmtTaG93PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIDxhIGhyZWY9IiN4bGlua0hSZWYiPnhsaW5rSFJlZjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3hsaW5rQWN0dWF0ZSI+eGxpbmtBY3R1YXRlPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bGlua0hhbmRsZXIgPGEgaHJlZj0iI3hsaW5rSGFuZGxlciI+eGxpbmtIYW5kbGVyPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIDxhIGhyZWY9IiN4bGlua1JvbGUiPnhsaW5rUm9sZTwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0hhbmRsZXIiPnhsaW5rSGFuZGxlcjwvYT4gKiA8YSBocmVmPSIjeGxpbmtIYW5kbGVyUHRyIj54bGlua0hhbmRsZXJQdHI8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bGlua1R5cGUiPnhsaW5rVHlwZTwvYT47Cit2b2lkCTxhIGhyZWY9IiN4bGlua1NldERlZmF1bHREZXRlY3QiPnhsaW5rU2V0RGVmYXVsdERldGVjdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtOb2RlRGV0ZWN0RnVuYyI+eGxpbmtOb2RlRGV0ZWN0RnVuYzwvYT4gZnVuYyk7Cit2b2lkCTxhIGhyZWY9IiN4bGlua1NldERlZmF1bHRIYW5kbGVyIj54bGlua1NldERlZmF1bHRIYW5kbGVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0hhbmRsZXJQdHIiPnhsaW5rSGFuZGxlclB0cjwvYT4gaGFuZGxlcik7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBpbnQgbmJMb2NhdG9ycywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtIUmVmIj54bGlua0hSZWY8L2E+ICogaHJlZnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIHJvbGVzLCA8YnIvPgkJCQkJIGludCBuYkFyY3MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIGZyb20sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIHRvLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1Nob3ciPnhsaW5rU2hvdzwvYT4gKiBzaG93LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0FjdHVhdGUiPnhsaW5rQWN0dWF0ZTwvYT4gKiBhY3R1YXRlLCA8YnIvPgkJCQkJIGludCBuYlRpdGxlcywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT4gKiB0aXRsZXMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBsYW5ncyk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayI+eGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rPC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGludCBuYkxvY2F0b3JzLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0hSZWYiPnhsaW5rSFJlZjwvYT4gKiBocmVmcywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtSb2xlIj54bGlua1JvbGU8L2E+ICogcm9sZXMsIDxici8+CQkJCQkgaW50IG5iVGl0bGVzLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1RpdGxlIj54bGlua1RpdGxlPC9hPiAqIHRpdGxlcywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGxhbmdzKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rSFJlZiI+eGxpbmtIUmVmPC9hPiBocmVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1JvbGUiPnhsaW5rUm9sZTwvYT4gcm9sZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT4gdGl0bGUpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bGlua05vZGVEZXRlY3RGdW5jIj54bGlua05vZGVEZXRlY3RGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtIYW5kbGVyUHRyIj54bGlua0hhbmRsZXJQdHI8L2E+CTxhIGhyZWY9IiN4bGlua0dldERlZmF1bHRIYW5kbGVyIj54bGlua0dldERlZmF1bHRIYW5kbGVyPC9hPgkodm9pZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtUeXBlIj54bGlua1R5cGU8L2E+CTxhIGhyZWY9IiN4bGlua0lzTGluayI+eGxpbmtJc0xpbms8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKKzxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua05vZGVEZXRlY3RGdW5jIj54bGlua05vZGVEZXRlY3RGdW5jPC9hPgk8YSBocmVmPSIjeGxpbmtHZXREZWZhdWx0RGV0ZWN0Ij54bGlua0dldERlZmF1bHREZXRlY3Q8L2E+CSh2b2lkKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bGlua0FjdHVhdGUiPkVudW0gPC9hPnhsaW5rQWN0dWF0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3hsaW5rQWN0dWF0ZSI+eGxpbmtBY3R1YXRlPC9hPiB7CisgICAgPGEgbmFtZT0iWExJTktfQUNUVUFURV9OT05FIj5YTElOS19BQ1RVQVRFX05PTkU8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhMSU5LX0FDVFVBVEVfQVVUTyI+WExJTktfQUNUVUFURV9BVVRPPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTElOS19BQ1RVQVRFX09OUkVRVUVTVCI+WExJTktfQUNUVUFURV9PTlJFUVVFU1Q8L2E+ID0gMgorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bGlua0hSZWYiPlR5cGVkZWYgPC9hPnhsaW5rSFJlZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB4bGlua0hSZWY7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieGxpbmtIYW5kbGVyIj5TdHJ1Y3R1cmUgPC9hPnhsaW5rSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeGxpbmtIYW5kbGVyIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayI+eGxpbmtTaW1wbGVMaW5rRnVuazwvYT4Jc2ltcGxlCisgICAgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rRnVuayI+eGxpbmtFeHRlbmRlZExpbmtGdW5rPC9hPglleHRlbmRlZAorICAgIDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT4Jc2V0Cit9IHhsaW5rSGFuZGxlcjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bGlua0hhbmRsZXJQdHIiPlR5cGVkZWYgPC9hPnhsaW5rSGFuZGxlclB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0hhbmRsZXIiPnhsaW5rSGFuZGxlcjwvYT4gKiB4bGlua0hhbmRsZXJQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieGxpbmtSb2xlIj5UeXBlZGVmIDwvYT54bGlua1JvbGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogeGxpbmtSb2xlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhsaW5rU2hvdyI+RW51bSA8L2E+eGxpbmtTaG93PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeGxpbmtTaG93Ij54bGlua1Nob3c8L2E+IHsKKyAgICA8YSBuYW1lPSJYTElOS19TSE9XX05PTkUiPlhMSU5LX1NIT1dfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWExJTktfU0hPV19ORVciPlhMSU5LX1NIT1dfTkVXPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTElOS19TSE9XX0VNQkVEIj5YTElOS19TSE9XX0VNQkVEPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTElOS19TSE9XX1JFUExBQ0UiPlhMSU5LX1NIT1dfUkVQTEFDRTwvYT4gPSAzCit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhsaW5rVGl0bGUiPlR5cGVkZWYgPC9hPnhsaW5rVGl0bGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogeGxpbmtUaXRsZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bGlua1R5cGUiPkVudW0gPC9hPnhsaW5rVHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3hsaW5rVHlwZSI+eGxpbmtUeXBlPC9hPiB7CisgICAgPGEgbmFtZT0iWExJTktfVFlQRV9OT05FIj5YTElOS19UWVBFX05PTkU8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhMSU5LX1RZUEVfU0lNUExFIj5YTElOS19UWVBFX1NJTVBMRTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWExJTktfVFlQRV9FWFRFTkRFRCI+WExJTktfVFlQRV9FWFRFTkRFRDwvYT4gPSAyCisgICAgPGEgbmFtZT0iWExJTktfVFlQRV9FWFRFTkRFRF9TRVQiPlhMSU5LX1RZUEVfRVhURU5ERURfU0VUPC9hPiA9IDMKK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieGxpbmtFeHRlbmRlZExpbmtGdW5rIi8+RnVuY3Rpb24gdHlwZSB4bGlua0V4dGVuZGVkTGlua0Z1bms8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhsaW5rRXh0ZW5kZWRMaW5rRnVuawkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBpbnQgbmJMb2NhdG9ycywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtIUmVmIj54bGlua0hSZWY8L2E+ICogaHJlZnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIHJvbGVzLCA8YnIvPgkJCQkJIGludCBuYkFyY3MsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIGZyb20sIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIHRvLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1Nob3ciPnhsaW5rU2hvdzwvYT4gKiBzaG93LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0FjdHVhdGUiPnhsaW5rQWN0dWF0ZTwvYT4gKiBhY3R1YXRlLCA8YnIvPgkJCQkJIGludCBuYlRpdGxlcywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT4gKiB0aXRsZXMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBsYW5ncyk8YnIvPgorPC9wcmU+PHA+VGhpcyBpcyB0aGUgcHJvdG90eXBlIGZvciBhIGV4dGVuZGVkIGxpbmsgZGV0ZWN0aW9uIGNhbGxiYWNrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIGRhdGEgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgY2FycnlpbmcgdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iTG9jYXRvcnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgbG9jYXRvcnMgZGV0ZWN0ZWQgb24gdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhyZWZzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiBsb2NhdG9yIGhyZWZzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yb2xlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciByb2xlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJBcmNzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyY3MgZGV0ZWN0ZWQgb24gdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHNvdXJjZSByb2xlcyBmb3VuZCBvbiB0aGUgYXJjczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHRhcmdldCByb2xlcyBmb3VuZCBvbiB0aGUgYXJjczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2hvdzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YXJyYXkgb2YgdmFsdWVzIGZvciB0aGUgc2hvdyBhdHRyaWJ1dGVzIGZvdW5kIG9uIHRoZSBhcmNzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hY3R1YXRlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hcnJheSBvZiB2YWx1ZXMgZm9yIHRoZSBhY3R1YXRlIGF0dHJpYnV0ZXMgZm91bmQgb24gdGhlIGFyY3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iVGl0bGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHRpdGxlcyBkZXRlY3RlZCBvbiB0aGUgbGluazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGl0bGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGFuZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFycmF5IG9mIHhtbDpsYW5nIHZhbHVlcyBmb3IgdGhlIHRpdGxlczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayIvPkZ1bmN0aW9uIHR5cGUgeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSBpbnQgbmJMb2NhdG9ycywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtIUmVmIj54bGlua0hSZWY8L2E+ICogaHJlZnMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIHJvbGVzLCA8YnIvPgkJCQkJIGludCBuYlRpdGxlcywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT4gKiB0aXRsZXMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBsYW5ncyk8YnIvPgorPC9wcmU+PHA+VGhpcyBpcyB0aGUgcHJvdG90eXBlIGZvciBhIGV4dGVuZGVkIGxpbmsgc2V0IGRldGVjdGlvbiBjYWxsYmFjay48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dXNlciBkYXRhIHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGNhcnJ5aW5nIHRoZSBsaW5rPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYkxvY2F0b3JzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGxvY2F0b3JzIGRldGVjdGVkIG9uIHRoZSBsaW5rPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ocmVmczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciBocmVmczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cm9sZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIGxvY2F0b3Igcm9sZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iVGl0bGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHRpdGxlcyBkZXRlY3RlZCBvbiB0aGUgbGluazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGl0bGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZC8+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGFuZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFycmF5IG9mIHhtbDpsYW5nIHZhbHVlcyBmb3IgdGhlIHRpdGxlczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhsaW5rTm9kZURldGVjdEZ1bmMiLz5GdW5jdGlvbiB0eXBlIHhsaW5rTm9kZURldGVjdEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhsaW5rTm9kZURldGVjdEZ1bmMJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPlRoaXMgaXMgdGhlIHByb3RvdHlwZSBmb3IgdGhlIGxpbmsgZGV0ZWN0aW9uIHJvdXRpbmUuIEl0IGNhbGxzIHRoZSBkZWZhdWx0IGxpbmsgZGV0ZWN0aW9uIGNhbGxiYWNrcyB1cG9uIGxpbmsgZGV0ZWN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIGRhdGEgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgdG8gY2hlY2s8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bGlua1NpbXBsZUxpbmtGdW5rIi8+RnVuY3Rpb24gdHlwZSB4bGlua1NpbXBsZUxpbmtGdW5rPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bGlua1NpbXBsZUxpbmtGdW5rCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0hSZWYiPnhsaW5rSFJlZjwvYT4gaHJlZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtSb2xlIj54bGlua1JvbGU8L2E+IHJvbGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rVGl0bGUiPnhsaW5rVGl0bGU8L2E+IHRpdGxlKTxici8+Cis8L3ByZT48cD5UaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIGEgc2ltcGxlIGxpbmsgZGV0ZWN0aW9uIGNhbGxiYWNrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIGRhdGEgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgY2FycnlpbmcgdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhyZWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgb2YgdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJvbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByb2xlIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGl0bGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5rIHRpdGxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieGxpbmtHZXREZWZhdWx0RGV0ZWN0Ii8+eGxpbmtHZXREZWZhdWx0RGV0ZWN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rTm9kZURldGVjdEZ1bmMiPnhsaW5rTm9kZURldGVjdEZ1bmM8L2E+CXhsaW5rR2V0RGVmYXVsdERldGVjdAkodm9pZCk8YnIvPgorPC9wcmU+PHA+R2V0IHRoZSBkZWZhdWx0IHhsaW5rIGRldGVjdGlvbiByb3V0aW5lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBmdW5jdGlvbiBvciBOVUxMOzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhsaW5rR2V0RGVmYXVsdEhhbmRsZXIiLz54bGlua0dldERlZmF1bHRIYW5kbGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bGluay5odG1sI3hsaW5rSGFuZGxlclB0ciI+eGxpbmtIYW5kbGVyUHRyPC9hPgl4bGlua0dldERlZmF1bHRIYW5kbGVyCSh2b2lkKTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGRlZmF1bHQgeGxpbmsgaGFuZGxlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0hhbmRsZXJQdHIiPnhsaW5rSGFuZGxlclB0cjwvYT4gdmFsdWUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieGxpbmtJc0xpbmsiLz54bGlua0lzTGluayAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1R5cGUiPnhsaW5rVHlwZTwvYT4JeGxpbmtJc0xpbmsJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIG5vZGUgY2FycmllcyB0aGUgYXR0cmlidXRlcyBuZWVkZWQgdG8gYmUgYSBsaW5rIGVsZW1lbnQgKG9yIGlzIG9uZSBvZiB0aGUgbGlua2luZyBlbGVtZW50cyBpc3N1ZWQgZnJvbSB0aGUgKFgpSFRNTCBEdERzKS4gVGhpcyByb3V0aW5lIGRvbid0IHRyeSB0byBkbyBmdWxsIGNoZWNraW5nIG9mIHRoZSBsaW5rIHZhbGlkaXR5IGJ1dCB0cmllcyB0byBkZXRlY3QgYW5kIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgbGluayB0eXBlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgcG9pbnRlciBpdHNlbGY8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtUeXBlIj54bGlua1R5cGU8L2E+IG9mIHRoZSBub2RlIChYTElOS19UWVBFX05PTkUgaWYgdGhlcmUgaXMgbm8gbGluayBkZXRlY3RlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bGlua1NldERlZmF1bHREZXRlY3QiLz54bGlua1NldERlZmF1bHREZXRlY3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhsaW5rU2V0RGVmYXVsdERldGVjdAkJKDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua05vZGVEZXRlY3RGdW5jIj54bGlua05vZGVEZXRlY3RGdW5jPC9hPiBmdW5jKTxici8+Cis8L3ByZT48cD5TZXQgdGhlIGRlZmF1bHQgeGxpbmsgZGV0ZWN0aW9uIHJvdXRpbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIG5ldyBkZXRlY3Rpb24gcm91dGluZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bGlua1NldERlZmF1bHRIYW5kbGVyIi8+eGxpbmtTZXREZWZhdWx0SGFuZGxlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeGxpbmtTZXREZWZhdWx0SGFuZGxlcgkJKDxhIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0hhbmRsZXJQdHIiPnhsaW5rSGFuZGxlclB0cjwvYT4gaGFuZGxlcik8YnIvPgorPC9wcmU+PHA+U2V0IHRoZSBkZWZhdWx0IHhsaW5rIGhhbmRsZXJzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oYW5kbGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHZhbHVlIGZvciB0aGUgeGxpbmsgaGFuZGxlciBibG9jazwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbElPLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sSU8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzQxZDFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbElPLmh0bWwKQEAgLTAsMCArMSwzMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eG1sSU86IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcjwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteGxpbmsuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnhtbElPPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+eG1sSU8gLSBpbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXI8L3A+CisgICAgPHA+aW50ZXJmYWNlIGZvciB0aGUgSS9PIGludGVyZmFjZXMgdXNlZCBieSB0aGUgcGFyc2VyIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj5pbnQJPGEgaHJlZj0iI3htbElPSFRUUFJlYWQiPnhtbElPSFRUUFJlYWQ8L2E+CQkJKHZvaWQgKiBjb250ZXh0LCA8YnIvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IGxlbik7Cit0eXBlZGVmIGludCA8YSBocmVmPSIjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+CQkoY2hhciBjb25zdCAqIGZpbGVuYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzPC9hPgkodm9pZCk7CitpbnQJPGEgaHJlZj0iI3htbEZpbGVDbG9zZSI+eG1sRmlsZUNsb3NlPC9hPgkJCSh2b2lkICogY29udGV4dCk7Cit0eXBlZGVmIGludCA8YSBocmVmPSIjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT4JCShjaGFyIGNvbnN0ICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2giPnhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW4sIDxici8+CQkJCQkgaW50IGxlbiwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYnVmKTsKK2ludAk8YSBocmVmPSIjeG1sSU9GVFBSZWFkIj54bWxJT0ZUUFJlYWQ8L2E+CQkJKHZvaWQgKiBjb250ZXh0LCA8YnIvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IGxlbik7Cit2b2lkCTxhIGhyZWY9IiN4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzPC9hPgkodm9pZCk7Cit2b2lkICoJPGEgaHJlZj0iI3htbElPRlRQT3BlbiI+eG1sSU9GVFBPcGVuPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxJT0ZUUENsb3NlIj54bWxJT0ZUUENsb3NlPC9hPgkJCSh2b2lkICogY29udGV4dCk7Cit2b2lkICoJPGEgaHJlZj0iI3htbEZpbGVPcGVuIj54bWxGaWxlT3BlbjwvYT4JCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZTwvYT4JKEZJTEUgKiBmaWxlLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpOworaW50CTxhIGhyZWY9IiN4bWxDaGVja0ZpbGVuYW1lIj54bWxDaGVja0ZpbGVuYW1lPC9hPgkJKGNvbnN0IGNoYXIgKiBwYXRoKTsKK3R5cGVkZWYgdm9pZCAqIDxhIGhyZWY9IiN4bWxPdXRwdXRPcGVuQ2FsbGJhY2siPnhtbE91dHB1dE9wZW5DYWxsYmFjazwvYT4JCShjaGFyIGNvbnN0ICogZmlsZW5hbWUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvYT4JKGNvbnN0IGNoYXIgKiBVUkksIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk7CitpbnQJPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNsb3NlIj54bWxPdXRwdXRCdWZmZXJDbG9zZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gb3V0KTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIiPnhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVJTzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIj54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9hPiBpb3dyaXRlLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4gZW5jb2Rlcik7Cit0eXBlZGVmIGludCA8YSBocmVmPSIjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4JCSh2b2lkICogY29udGV4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJIGludCBsZW4pOworaW50CTxhIGhyZWY9IiN4bWxPdXRwdXRCdWZmZXJGbHVzaCI+eG1sT3V0cHV0QnVmZmVyRmx1c2g8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IG91dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDaGVja0hUVFBJbnB1dCI+eG1sQ2hlY2tIVFRQSW5wdXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IHJldCk7CitpbnQJPGEgaHJlZj0iI3htbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIj54bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrczwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRNYXRjaENhbGxiYWNrIj54bWxPdXRwdXRNYXRjaENhbGxiYWNrPC9hPiBtYXRjaEZ1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dE9wZW5DYWxsYmFjayI+eG1sT3V0cHV0T3BlbkNhbGxiYWNrPC9hPiBvcGVuRnVuYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4gd3JpdGVGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIj54bWxPdXRwdXRDbG9zZUNhbGxiYWNrPC9hPiBjbG9zZUZ1bmMpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtPC9hPgkoY29uc3QgY2hhciAqIG1lbSwgPGJyLz4JCQkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpOworaW50CTxhIGhyZWY9IiN4bWxJT0ZUUE1hdGNoIj54bWxJT0ZUUE1hdGNoPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0TWF0Y2hDYWxsYmFjayI+eG1sSW5wdXRNYXRjaENhbGxiYWNrPC9hPiBtYXRjaEZ1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0T3BlbkNhbGxiYWNrIj54bWxJbnB1dE9wZW5DYWxsYmFjazwvYT4gb3BlbkZ1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gcmVhZEZ1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBjbG9zZUZ1bmMpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyIj54bWxGcmVlUGFyc2VySW5wdXRCdWZmZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGluKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrczwvYT4JKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciPnhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW4sIDxici8+CQkJCQkgaW50IGxlbik7Cit0eXBlZGVmIGludCA8YSBocmVmPSIjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4JCSh2b2lkICogY29udGV4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbEFsbG9jT3V0cHV0QnVmZmVyIj54bWxBbGxvY091dHB1dEJ1ZmZlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI3htbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+CShjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJCQkgY29uc3QgY2hhciAqIElELCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZmZlciwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyKTsKK2ludAk8YSBocmVmPSIjeG1sSU9IVFRQTWF0Y2giPnhtbElPSFRUUE1hdGNoPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxJT0hUVFBPcGVuIj54bWxJT0hUVFBPcGVuPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkPC9hPgkoaW50IGZkLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4gZW5jb2Rlcik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbE5vcm1hbGl6ZVdpbmRvd3NQYXRoIj54bWxOb3JtYWxpemVXaW5kb3dzUGF0aDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwYXRoKTsKK3R5cGVkZWYgaW50IDxhIGhyZWY9IiN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+CQkodm9pZCAqIGNvbnRleHQsIDxici8+CQkJCQkgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYzwvYT4JKGNvbnN0IGNoYXIgKiBtZW0sIDxici8+CQkJCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTsKK2ludAk8YSBocmVmPSIjeG1sSU9IVFRQQ2xvc2UiPnhtbElPSFRUUENsb3NlPC9hPgkJCSh2b2lkICogY29udGV4dCk7CitpbnQJPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlIj54bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT4gZXNjYXBpbmcpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+CShjb25zdCBjaGFyICogVVJJLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIsIDxici8+CQkJCQkJCSBpbnQgY29tcHJlc3Npb24pOwordm9pZAk8YSBocmVmPSIjeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cE91dHB1dENhbGxiYWNrczwvYT4JKHZvaWQpOwordHlwZWRlZiB2b2lkICogPGEgaHJlZj0iI3htbElucHV0T3BlbkNhbGxiYWNrIj54bWxJbnB1dE9wZW5DYWxsYmFjazwvYT4JCShjaGFyIGNvbnN0ICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQiPnhtbFBhcnNlcklucHV0QnVmZmVyUmVhZDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW4sIDxici8+CQkJCQkgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHN0cik7CitpbnQJPGEgaHJlZj0iI3htbEZpbGVNYXRjaCI+eG1sRmlsZU1hdGNoPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxQb3BJbnB1dENhbGxiYWNrcyI+eG1sUG9wSW5wdXRDYWxsYmFja3M8L2E+CQkodm9pZCk7CitpbnQJPGEgaHJlZj0iI3htbEZpbGVSZWFkIj54bWxGaWxlUmVhZDwvYT4JCQkodm9pZCAqIGNvbnRleHQsIDxici8+CQkJCQkgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlPC9hPgkoRklMRSAqIGZpbGUsIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk7CitjaGFyICoJPGEgaHJlZj0iI3htbFBhcnNlckdldERpcmVjdG9yeSI+eG1sUGFyc2VyR2V0RGlyZWN0b3J5PC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk7CitpbnQJPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlcldyaXRlIj54bWxPdXRwdXRCdWZmZXJXcml0ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gb3V0LCA8YnIvPgkJCQkJIGludCBsZW4sIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGJ1Zik7Cit2b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwSW5wdXRDYWxsYmFja3MiPnhtbENsZWFudXBJbnB1dENhbGxiYWNrczwvYT4JKHZvaWQpOwordHlwZWRlZiBpbnQgPGEgaHJlZj0iI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPgkJKHZvaWQgKiBjb250ZXh0KTsKK3ZvaWQgKgk8YSBocmVmPSIjeG1sSU9IVFRQT3BlblciPnhtbElPSFRUUE9wZW5XPC9hPgkJCShjb25zdCBjaGFyICogcG9zdF91cmksIDxici8+CQkJCQkgaW50IGNvbXByZXNzaW9uKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQ8L2E+CShpbnQgZmQsIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSW5wdXRDbG9zZUNhbGxiYWNrIi8+RnVuY3Rpb24gdHlwZSB4bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSW5wdXRDbG9zZUNhbGxiYWNrCQkodm9pZCAqIGNvbnRleHQpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBJbnB1dCBBUEkgdG8gY2xvc2UgdGhlIHJlc291cmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJbnB1dCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJbnB1dE1hdGNoQ2FsbGJhY2siLz5GdW5jdGlvbiB0eXBlIHhtbElucHV0TWF0Y2hDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJbnB1dE1hdGNoQ2FsbGJhY2sJCShjaGFyIGNvbnN0ICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBJbnB1dCBBUEkgdG8gZGV0ZWN0IGlmIHRoZSBjdXJyZW50IGhhbmRsZXIgY2FuIHByb3ZpZGUgaW5wdXQgZm9uY3Rpb25uYWxpdGllcyBmb3IgdGhpcyByZXNvdXJjZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgb3IgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHllcyBhbmQgMCBpZiBhbm90aGVyIElucHV0IG1vZHVsZSBzaG91bGQgYmUgdXNlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElucHV0T3BlbkNhbGxiYWNrIi8+RnVuY3Rpb24gdHlwZSB4bWxJbnB1dE9wZW5DYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxJbnB1dE9wZW5DYWxsYmFjawkJKGNoYXIgY29uc3QgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+Q2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIElucHV0IEFQSSB0byBvcGVuIHRoZSByZXNvdXJjZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSBvciBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIElucHV0IGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSW5wdXRSZWFkQ2FsbGJhY2siLz5GdW5jdGlvbiB0eXBlIHhtbElucHV0UmVhZENhbGxiYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElucHV0UmVhZENhbGxiYWNrCQkodm9pZCAqIGNvbnRleHQsIDxici8+CQkJCQkgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gSW5wdXQgQVBJIHRvIHJlYWQgdGhlIHJlc291cmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJbnB1dCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXIgdG8gc3RvcmUgZGF0YSByZWFkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlciBpbiBieXRlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyByZWFkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIi8+RnVuY3Rpb24gdHlwZSB4bWxPdXRwdXRDbG9zZUNhbGxiYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE91dHB1dENsb3NlQ2FsbGJhY2sJCSh2b2lkICogY29udGV4dCk8YnIvPgorPC9wcmU+PHA+Q2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIE91dHB1dCBBUEkgdG8gY2xvc2UgdGhlIHJlc291cmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBPdXRwdXQgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0TWF0Y2hDYWxsYmFjayIvPkZ1bmN0aW9uIHR5cGUgeG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxPdXRwdXRNYXRjaENhbGxiYWNrCQkoY2hhciBjb25zdCAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gT3V0cHV0IEFQSSB0byBkZXRlY3QgaWYgdGhlIGN1cnJlbnQgaGFuZGxlciBjYW4gcHJvdmlkZSBvdXRwdXQgZm9uY3Rpb25uYWxpdGllcyBmb3IgdGhpcyByZXNvdXJjZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgb3IgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHllcyBhbmQgMCBpZiBhbm90aGVyIE91dHB1dCBtb2R1bGUgc2hvdWxkIGJlIHVzZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRPcGVuQ2FsbGJhY2siLz5GdW5jdGlvbiB0eXBlIHhtbE91dHB1dE9wZW5DYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxPdXRwdXRPcGVuQ2FsbGJhY2sJCShjaGFyIGNvbnN0ICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBPdXRwdXQgQVBJIHRvIG9wZW4gdGhlIHJlc291cmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lIG9yIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gT3V0cHV0IGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0V3JpdGVDYWxsYmFjayIvPkZ1bmN0aW9uIHR5cGUgeG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxPdXRwdXRXcml0ZUNhbGxiYWNrCQkodm9pZCAqIGNvbnRleHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gT3V0cHV0IEFQSSB0byB3cml0ZSB0byB0aGUgcmVzb3VyY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRleHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIE91dHB1dCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXIgb2YgZGF0YSB0byB3cml0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQWxsb2NPdXRwdXRCdWZmZXIiLz54bWxBbGxvY091dHB1dEJ1ZmZlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPgl4bWxBbGxvY091dHB1dEJ1ZmZlcgkoPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyIi8+eG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcgkoPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgcHJvZ3Jlc3NpdmUgcGFyc2luZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoZWNrRmlsZW5hbWUiLz54bWxDaGVja0ZpbGVuYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENoZWNrRmlsZW5hbWUJCShjb25zdCBjaGFyICogcGF0aCk8YnIvPgorPC9wcmU+PHA+ZnVuY3Rpb24gY2hlY2tzIHRvIHNlZSBpZiBAcGF0aCBpcyBhIHZhbGlkIHNvdXJjZSAoZmlsZSwgc29ja2V0Li4uKSBmb3IgWE1MLiBpZiBzdGF0IGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIHRhcmdldCBtYWNoaW5lLDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGF0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhdGggdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEuIGlmIHN0YXQgZmFpbHMsIHJldHVybnMgMCAoaWYgY2FsbGluZyBzdGF0IG9uIHRoZSBmaWxlbmFtZSBmYWlscywgaXQgY2FuJ3QgYmUgcmlnaHQpLiBpZiBzdGF0IHN1Y2NlZWRzIGFuZCB0aGUgZmlsZSBpcyBhIGRpcmVjdG9yeSwgcmV0dXJucyAyLiBvdGhlcndpc2UgcmV0dXJucyAxLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoZWNrSFRUUElucHV0Ii8+eG1sQ2hlY2tIVFRQSW5wdXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXhtbENoZWNrSFRUUElucHV0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IHJldCk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgYW4gaW5wdXQgaW4gY2FzZSBpdCB3YXMgY3JlYXRlZCBmcm9tIGFuIEhUVFAgc3RyZWFtLCBpbiB0aGF0IGNhc2UgaXQgd2lsbCBoYW5kbGUgZW5jb2RpbmcgYW5kIHVwZGF0ZSBvZiB0aGUgYmFzZSBVUkwgaW4gY2FzZSBvZiByZWRpcmVjdGlvbi4gSXQgYWxzbyBjaGVja3MgZm9yIEhUVFAgZXJyb3JzIGluIHdoaWNoIGNhc2UgdGhlIGlucHV0IGlzIGNsZWFubHkgZnJlZWQgdXAgYW5kIGFuIGFwcHJvcHJpYXRlIGVycm9yIGlzIHJhaXNlZCBpbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IG9yIE5VTEwgaW4gY2FzZSBvZiBIVFRQIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENsZWFudXBJbnB1dENhbGxiYWNrcyIvPnhtbENsZWFudXBJbnB1dENhbGxiYWNrcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzCSh2b2lkKTxici8+Cis8L3ByZT48cD5jbGVhcnMgdGhlIGVudGlyZSBpbnB1dCBjYWxsYmFjayB0YWJsZS4gdGhpcyBpbmNsdWRlcyB0aGUgY29tcGlsZWQtaW4gSS9PLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzIi8+eG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcwkodm9pZCk8YnIvPgorPC9wcmU+PHA+Y2xlYXJzIHRoZSBlbnRpcmUgb3V0cHV0IGNhbGxiYWNrIHRhYmxlLiB0aGlzIGluY2x1ZGVzIHRoZSBjb21waWxlZC1pbiBJL08gY2FsbGJhY2tzLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGaWxlQ2xvc2UiLz54bWxGaWxlQ2xvc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRmlsZUNsb3NlCQkJKHZvaWQgKiBjb250ZXh0KTxici8+Cis8L3ByZT48cD5DbG9zZSBhbiBJL08gY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGV4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEkvTyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGaWxlTWF0Y2giLz54bWxGaWxlTWF0Y2ggKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRmlsZU1hdGNoCQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+aW5wdXQgZnJvbSBGSUxFICo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGZvciBtYXRjaGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBtYXRjaGVzLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZpbGVPcGVuIi8+eG1sRmlsZU9wZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sRmlsZU9wZW4JCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5XcmFwcGVyIGFyb3VuZCB4bWxGaWxlT3Blbl9yZWFsIHRoYXQgdHJ5IGl0IHdpdGggYW4gdW5lc2NhcGVkIHZlcnNpb24gb2YgQGZpbGVuYW1lLCBpZiB0aGlzIGZhaWxzIGZhbGxiYWNrIHRvIEBmaWxlbmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgZm9yIG1hdGNoaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGhhbmRsZXIgb3IgTlVMTCBpbiBjYXNlIG9yIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGaWxlUmVhZCIvPnhtbEZpbGVSZWFkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEZpbGVSZWFkCQkJKHZvaWQgKiBjb250ZXh0LCA8YnIvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+UmVhZCBAbGVuIGJ5dGVzIHRvIEBidWZmZXIgZnJvbSB0aGUgSS9PIGNoYW5uZWwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSS9PIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2hlcmUgdG8gZHJvcCBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBieXRlcyB0byB3cml0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yICZsdDsgMCBpbiBjYXNlIG9mIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIiLz54bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbik8YnIvPgorPC9wcmU+PHA+RnJlZSB1cCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElPRlRQQ2xvc2UiLz54bWxJT0ZUUENsb3NlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElPRlRQQ2xvc2UJCQkodm9pZCAqIGNvbnRleHQpPGJyLz4KKzwvcHJlPjxwPkNsb3NlIGFuIEZUUCBJL08gY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGV4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEkvTyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSU9GVFBNYXRjaCIvPnhtbElPRlRQTWF0Y2ggKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSU9GVFBNYXRjaAkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyLz4KKzwvcHJlPjxwPmNoZWNrIGlmIHRoZSBVUkkgbWF0Y2hlcyBhbiBGVFAgb25lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBmb3IgbWF0Y2hpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbWF0Y2hlcywgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJT0ZUUE9wZW4iLz54bWxJT0ZUUE9wZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSU9GVFBPcGVuCQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIvPgorPC9wcmU+PHA+b3BlbiBhbiBGVFAgSS9PIGNoYW5uZWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGZvciBtYXRjaGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSU9GVFBSZWFkIi8+eG1sSU9GVFBSZWFkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElPRlRQUmVhZAkJCSh2b2lkICogY29udGV4dCwgPGJyLz4JCQkJCSBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPlJlYWQgQGxlbiBieXRlcyB0byBAYnVmZmVyIGZyb20gdGhlIEkvTyBjaGFubmVsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGV4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEkvTyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndoZXJlIHRvIGRyb3AgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5udW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElPSFRUUENsb3NlIi8+eG1sSU9IVFRQQ2xvc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSU9IVFRQQ2xvc2UJCQkodm9pZCAqIGNvbnRleHQpPGJyLz4KKzwvcHJlPjxwPkNsb3NlIGFuIEhUVFAgSS9PIGNoYW5uZWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRleHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBJL08gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElPSFRUUE1hdGNoIi8+eG1sSU9IVFRQTWF0Y2ggKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSU9IVFRQTWF0Y2gJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5jaGVjayBpZiB0aGUgVVJJIG1hdGNoZXMgYW4gSFRUUCBvbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGZvciBtYXRjaGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBtYXRjaGVzLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbElPSFRUUE9wZW4iLz54bWxJT0hUVFBPcGVuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbElPSFRUUE9wZW4JCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5vcGVuIGFuIEhUVFAgSS9PIGNoYW5uZWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGZvciBtYXRjaGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sSU9IVFRQT3BlblciLz54bWxJT0hUVFBPcGVuVyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxJT0hUVFBPcGVuVwkJCShjb25zdCBjaGFyICogcG9zdF91cmksIDxici8+CQkJCQkgaW50IGNvbXByZXNzaW9uKTxici8+Cis8L3ByZT48cD5PcGVuIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBjb2xsZWN0IHRoZSBkb2N1bWVudCBmb3IgYSBzdWJzZXF1ZW50IEhUVFAgUE9TVCByZXF1ZXN0LiBOb24tc3RhdGljIGFzIGlzIGNhbGxlZCBmcm9tIHRoZSBvdXRwdXQgYnVmZmVyIGNyZWF0aW9uIHJvdXRpbmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wb3N0X3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGRlc3RpbmF0aW9uIFVSSSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wcmVzc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGNvbXByZXNzaW9uIGRlc2lyZWQgZm9yIHRoZSBkb2N1bWVudC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxJT0hUVFBSZWFkIi8+eG1sSU9IVFRQUmVhZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJT0hUVFBSZWFkCQkJKHZvaWQgKiBjb250ZXh0LCA8YnIvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+UmVhZCBAbGVuIGJ5dGVzIHRvIEBidWZmZXIgZnJvbSB0aGUgSS9PIGNoYW5uZWwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSS9PIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2hlcmUgdG8gZHJvcCBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBieXRlcyB0byB3cml0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciIvPnhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIJKGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkJCSBjb25zdCBjaGFyICogSUQsIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5BIHNwZWNpZmljIGVudGl0eSBsb2FkZXIgZGlzYWJsaW5nIG5ldHdvcmsgYWNjZXNzZXMsIHRob3VnaCBzdGlsbCBhbGxvd2luZyBsb2NhbCBjYXRhbG9nIGFjY2Vzc2VzIGZvciByZXNvbHV0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU3lzdGVtIElEIGZvciB0aGUgZW50aXR5IHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBlbnRpdHkgaXMgY2FsbGVkIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGFsbG9jYXRlZCB4bWxQYXJzZXJJbnB1dFB0ciwgb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCIvPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcGF0aCk8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZS4gUGxlYXNlIHNlZSB4bWxVUklGcm9tUGF0aCBpbiB1cmkuYyBmb3IgYSBiZXR0ZXIgc29sdXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgZmlsZSBwYXRoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNhbm9uaWNhbGl6ZWQgdmVyc2lvbiBvZiB0aGUgcGF0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNsb3NlIi8+eG1sT3V0cHV0QnVmZmVyQ2xvc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sT3V0cHV0QnVmZmVyQ2xvc2UJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gb3V0KTxici8+Cis8L3ByZT48cD5mbHVzaGVzIGFuZCBjbG9zZSB0aGUgb3V0cHV0IEkvTyBjaGFubmVsIGFuZCBmcmVlIHVwIGFsbCB0aGUgYXNzb2NpYXRlZCByZXNvdXJjZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBidWZmZXJlZCBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyIi8+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZmZlciwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCIvPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkCShpbnQgZmQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSBmaWxlIGRlc2NyaXB0b3I8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgZGVzY3JpcHRvciBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlIi8+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPgl4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlCShGSUxFICogZmlsZSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSBGSUxFICogYnVmZmVyZWQgQyBJL088L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgRklMRSo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSIvPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lCShjb25zdCBjaGFyICogVVJJLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIsIDxici8+CQkJCQkJCSBpbnQgY29tcHJlc3Npb24pPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIG91dHB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHNhdmluZyBvZiBhIGZpbGUgSWYgZmlsZW5hbWUgaXMgIi0nIHRoZW4gd2UgdXNlIHN0ZG91dCBhcyB0aGUgb3V0cHV0LiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBUT0RPOiBjdXJyZW50bHkgaWYgY29tcHJlc3Npb24gaXMgc2V0LCB0aGUgbGlicmFyeSBvbmx5IHN1cHBvcnQgd3JpdGluZyB0byBhIGxvY2FsIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgQyBzdHJpbmcgY29udGFpbmluZyB0aGUgVVJJIG9yIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcHJlc3Npb24gcmF0aW9uICgwIG5vbmUsIDkgbWF4KS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgb3V0cHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyIvPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPCSg8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4gaW93cml0ZSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dENsb3NlQ2FsbGJhY2siPnhtbE91dHB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxici8+CQkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIG91dHB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHNhdmluZyB0byBhbiBJL08gaGFuZGxlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW93cml0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIHdyaXRlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2RlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIG91dHB1dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0QnVmZmVyRmx1c2giLz54bWxPdXRwdXRCdWZmZXJGbHVzaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxPdXRwdXRCdWZmZXJGbHVzaAkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQpPGJyLz4KKzwvcHJlPjxwPmZsdXNoZXMgdGhlIG91dHB1dCBJL08gY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcmVkIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJXcml0ZSIvPnhtbE91dHB1dEJ1ZmZlcldyaXRlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE91dHB1dEJ1ZmZlcldyaXRlCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IG91dCwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWYpPGJyLz4KKzwvcHJlPjxwPldyaXRlIHRoZSBjb250ZW50IG9mIHRoZSBhcnJheSBpbiB0aGUgb3V0cHV0IEkvTyBidWZmZXIgVGhpcyByb3V0aW5lIGhhbmRsZSB0aGUgSTE4TiB0cmFuc2NvZGluZyBmcm9tIGludGVybmFsIFVURi04IFRoZSBidWZmZXIgaXMgbG9zc2xlc3MsIGkuZS4gd2lsbCBzdG9yZSBpbiBjYXNlIG9mIHBhcnRpYWwgb3IgZGVsYXllZCB3cml0ZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyZWQgcGFyc2VyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgYXJyYXkuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgaW1tZWRpYXRlbHkgd3JpdHRlbiwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSIvPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gb3V0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IGVzY2FwaW5nKTxici8+Cis8L3ByZT48cD5Xcml0ZSB0aGUgY29udGVudCBvZiB0aGUgc3RyaW5nIGluIHRoZSBvdXRwdXQgSS9PIGJ1ZmZlciBUaGlzIHJvdXRpbmUgZXNjYXBlcyB0aGUgY2FyYWN0ZXJzIGFuZCB0aGVuIGhhbmRsZSB0aGUgSTE4TiB0cmFuc2NvZGluZyBmcm9tIGludGVybmFsIFVURi04IFRoZSBidWZmZXIgaXMgbG9zc2xlc3MsIGkuZS4gd2lsbCBzdG9yZSBpbiBjYXNlIG9mIHBhcnRpYWwgb3IgZGVsYXllZCB3cml0ZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyZWQgcGFyc2VyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHplcm8gdGVybWluYXRlZCBVVEYtOCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVzY2FwaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBlc2NhcGluZyBmdW5jdGlvbiAob3IgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgaW1tZWRpYXRlbHkgd3JpdHRlbiwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyIvPnhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gb3V0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBzdHIpPGJyLz4KKzwvcHJlPjxwPldyaXRlIHRoZSBjb250ZW50IG9mIHRoZSBzdHJpbmcgaW4gdGhlIG91dHB1dCBJL08gYnVmZmVyIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgZnJvbSBpbnRlcm5hbCBVVEYtOCBUaGUgYnVmZmVyIGlzIGxvc3NsZXNzLCBpLmUuIHdpbGwgc3RvcmUgaW4gY2FzZSBvZiBwYXJ0aWFsIG9yIGRlbGF5ZWQgd3JpdGVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB6ZXJvIHRlcm1pbmF0ZWQgQyBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgaW1tZWRpYXRlbHkgd3JpdHRlbiwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJHZXREaXJlY3RvcnkiLz54bWxQYXJzZXJHZXREaXJlY3RvcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jaGFyICoJeG1sUGFyc2VyR2V0RGlyZWN0b3J5CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxici8+Cis8L3ByZT48cD5sb29rdXAgdGhlIGRpcmVjdG9yeSBmb3IgdGhhdCBmaWxlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhdGggdG8gYSBmaWxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBhbGxvY2F0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSwgb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkIi8+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZAkoaW50IGZkLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgZm9yIHRoZSBpbnB1dCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIi8+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGUJKEZJTEUgKiBmaWxlLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgb2YgYSBGSUxFICogYnVmZmVyZWQgQyBJL088L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgRklMRSo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIi8+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZQkoY29uc3QgY2hhciAqIFVSSSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIG9mIGEgZmlsZSBJZiBmaWxlbmFtZSBpcyAiLScgdGhlbiB3ZSB1c2Ugc3RkaW4gYXMgdGhlIGlucHV0LiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBEbyBhbiBlbmNvZGluZyBjaGVjayBpZiBlbmMgPT0gPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX05PTkUiPlhNTF9DSEFSX0VOQ09ESU5HX05PTkU8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgQyBzdHJpbmcgY29udGFpbmluZyB0aGUgVVJJIG9yIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyIvPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8JKDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGZvciB0aGUgaW5wdXQgZnJvbSBhbiBJL08gaGFuZGxlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9yZWFkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gcmVhZCBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSIvPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbQkoY29uc3QgY2hhciAqIG1lbSwgPGJyLz4JCQkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgZm9yIHRoZSBpbnB1dCBmcm9tIGEgbWVtb3J5IGFyZWEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZW1vcnkgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIG1lbW9yeSBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIi8+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljCShjb25zdCBjaGFyICogbWVtLCA8YnIvPgkJCQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2luZyBmb3IgdGhlIGlucHV0IGZyb20gYW4gaW1tdXRhYmxlIG1lbW9yeSBhcmVhLiBUaGlzIHdpbGwgbm90IGNvcHkgdGhlIG1lbW9yeSBhcmVhIHRvIHRoZSBidWZmZXIsIGJ1dCB0aGUgbWVtb3J5IGlzIGV4cGVjdGVkIHRvIGJlIGF2YWlsYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSBwYXJzaW5nLCB0aGlzIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHVzaW5nIG1tYXAnZWQgZmlsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1lbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lbW9yeSBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGJsb2NrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ii8+eG1sUGFyc2VySW5wdXRCdWZmZXJHcm93ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlcklucHV0QnVmZmVyR3JvdwkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbiwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5Hcm93IHVwIHRoZSBjb250ZW50IG9mIHRoZSBpbnB1dCBidWZmZXIsIHRoZSBvbGQgZGF0YSBhcmUgcHJlc2VydmVkIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgdG8gaW50ZXJuYWwgVVRGLTggVGhpcyByb3V0aW5lIGlzIHVzZWQgd2hlbiBvcGVyYXRpbmcgdGhlIHBhcnNlciBpbiBub3JtYWwgKHB1bGwpIG1vZGUgVE9ETzogb25lIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSBvbmUgZXh0cmEgY29weSBieSBjb3B5aW5nIGRpcmVjdGx5IG9udG8gaW4tJmd0O2J1ZmZlciBvciBpbi0mZ3Q7cmF3PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBidWZmZXJlZCBwYXJzZXIgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5kaWNhdGl2ZSB2YWx1ZSBvZiB0aGUgYW1vdW50IG9mIGNoYXJzIHRvIHJlYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgcmVhZCBhbmQgc3RvcmVkIGluIHRoZSBidWZmZXIsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIi8+eG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlcklucHV0QnVmZmVyUHVzaAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbiwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWYpPGJyLz4KKzwvcHJlPjxwPlB1c2ggdGhlIGNvbnRlbnQgb2YgdGhlIGFycnkgaW4gdGhlIGlucHV0IGJ1ZmZlciBUaGlzIHJvdXRpbmUgaGFuZGxlIHRoZSBJMThOIHRyYW5zY29kaW5nIHRvIGludGVybmFsIFVURi04IFRoaXMgaXMgdXNlZCB3aGVuIG9wZXJhdGluZyB0aGUgcGFyc2VyIGluIHByb2dyZXNzaXZlIChwdXNoKSBtb2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyZWQgcGFyc2VyIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBhcnJheS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBjaGFycyByZWFkIGFuZCBzdG9yZWQgaW4gdGhlIGJ1ZmZlciwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQiLz54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGluLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPlJlZnJlc2ggdGhlIGNvbnRlbnQgb2YgdGhlIGlucHV0IGJ1ZmZlciwgdGhlIG9sZCBkYXRhIGFyZSBjb25zaWRlcmVkIGNvbnN1bWVkIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgdG8gaW50ZXJuYWwgVVRGLTg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbmRpY2F0aXZlIHZhbHVlIG9mIHRoZSBhbW91bnQgb2YgY2hhcnMgdG8gcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBjaGFycyByZWFkIGFuZCBzdG9yZWQgaW4gdGhlIGJ1ZmZlciwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQb3BJbnB1dENhbGxiYWNrcyIvPnhtbFBvcElucHV0Q2FsbGJhY2tzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBvcElucHV0Q2FsbGJhY2tzCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+Q2xlYXIgdGhlIHRvcCBpbnB1dCBjYWxsYmFjayBmcm9tIHRoZSBpbnB1dCBzdGFjay4gdGhpcyBpbmNsdWRlcyB0aGUgY29tcGlsZWQtaW4gSS9PLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBpbnB1dCBjYWxsYmFjayByZWdpc3RlcmVkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MiLz54bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyB0aGUgZGVmYXVsdCBjb21waWxlZC1pbiBJL08gaGFuZGxlcnMuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyIvPnhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzCSh2b2lkKTxici8+Cis8L3ByZT48cD5SZWdpc3RlcnMgdGhlIGRlZmF1bHQgY29tcGlsZWQtaW4gSS9PIGhhbmRsZXJzLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzIi8+eG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcwkodm9pZCk8YnIvPgorPC9wcmU+PHA+QnkgZGVmYXVsdCwgbGlieG1sIHN1Ym1pdHMgSFRUUCBvdXRwdXQgcmVxdWVzdHMgdXNpbmcgdGhlICJQVVQiIG1ldGhvZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBjaGFuZ2VzIHRoZSBIVFRQIG91dHB1dCBtZXRob2QgdG8gdXNlIHRoZSAiUE9TVCIgbWV0aG9kIGluc3RlYWQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiLz54bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MJKDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siPnhtbElucHV0TWF0Y2hDYWxsYmFjazwvYT4gbWF0Y2hGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dE9wZW5DYWxsYmFjayI+eG1sSW5wdXRPcGVuQ2FsbGJhY2s8L2E+IG9wZW5GdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IHJlYWRGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gY2xvc2VGdW5jKTxici8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyBzZXQgb2YgSS9PIGNhbGxiYWNrIGZvciBoYW5kbGluZyBwYXJzZXIgaW5wdXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXRjaEZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcGVuRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dE9wZW5DYWxsYmFjayI+eG1sSW5wdXRPcGVuQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jbG9zZUZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVnaXN0ZXJlZCBoYW5kbGVyIG51bWJlciBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MiLz54bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcwkoPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dE1hdGNoQ2FsbGJhY2siPnhtbE91dHB1dE1hdGNoQ2FsbGJhY2s8L2E+IG1hdGNoRnVuYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0T3BlbkNhbGxiYWNrIj54bWxPdXRwdXRPcGVuQ2FsbGJhY2s8L2E+IG9wZW5GdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIj54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9hPiB3cml0ZUZ1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dENsb3NlQ2FsbGJhY2siPnhtbE91dHB1dENsb3NlQ2FsbGJhY2s8L2E+IGNsb3NlRnVuYyk8YnIvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgc2V0IG9mIEkvTyBjYWxsYmFjayBmb3IgaGFuZGxpbmcgb3V0cHV0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF0Y2hGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dE1hdGNoQ2FsbGJhY2siPnhtbE91dHB1dE1hdGNoQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcGVuRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRPcGVuQ2FsbGJhY2siPnhtbE91dHB1dE9wZW5DYWxsYmFjazwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIj54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2xvc2VGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dENsb3NlQ2FsbGJhY2siPnhtbE91dHB1dENsb3NlQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVnaXN0ZXJlZCBoYW5kbGVyIG51bWJlciBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sYXV0b21hdGEuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxhdXRvbWF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0Njg0NDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sYXV0b21hdGEuaHRtbApAQCAtMCwwICsxLDE3NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT54bWxhdXRvbWF0YTogQVBJIHRvIGJ1aWxkIHJlZ2V4cCBhdXRvbWF0YTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnhtbGF1dG9tYXRhPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+eG1sYXV0b21hdGEgLSBBUEkgdG8gYnVpbGQgcmVnZXhwIGF1dG9tYXRhPC9wPgorICAgIDxwPnRoZSBBUEkgdG8gYnVpbGQgcmVnZXhwIGF1dG9tYXRhIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlIj54bWxBdXRvbWF0YVN0YXRlPC9hPiAqIDxhIGhyZWY9IiN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxBdXRvbWF0YSA8YSBocmVmPSIjeG1sQXV0b21hdGEiPnhtbEF1dG9tYXRhPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhIj54bWxBdXRvbWF0YTwvYT4gKiA8YSBocmVmPSIjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxBdXRvbWF0YVN0YXRlIDxhIGhyZWY9IiN4bWxBdXRvbWF0YVN0YXRlIj54bWxBdXRvbWF0YVN0YXRlPC9hPjsKK3ZvaWQJPGEgaHJlZj0iI3htbEZyZWVBdXRvbWF0YSI+eG1sRnJlZUF1dG9tYXRhPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSk7CitpbnQJPGEgaHJlZj0iI3htbEF1dG9tYXRhTmV3Q291bnRlciI+eG1sQXV0b21hdGFOZXdDb3VudGVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJIGludCBtaW4sIDxici8+CQkJCQkgaW50IG1heCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JPGEgaHJlZj0iI3htbEF1dG9tYXRhR2V0SW5pdFN0YXRlIj54bWxBdXRvbWF0YUdldEluaXRTdGF0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMiI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4yLCA8YnIvPgkJCQkJCQkgdm9pZCAqIGRhdGEpOworPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld1N0YXRlIj54bWxBdXRvbWF0YU5ld1N0YXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0pOworPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxici8+CQkJCQkJCSBpbnQgbWluLCA8YnIvPgkJCQkJCQkgaW50IG1heCwgPGJyLz4JCQkJCQkJIHZvaWQgKiBkYXRhKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuMiwgPGJyLz4JCQkJCQkJIGludCBtaW4sIDxici8+CQkJCQkJCSBpbnQgbWF4LCA8YnIvPgkJCQkJCQkgdm9pZCAqIGRhdGEpOworPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxici8+CQkJCQkJIGludCBsYXgpOworPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgaW50IGNvdW50ZXIpOworPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgaW50IGNvdW50ZXIpOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4JPGEgaHJlZj0iI3htbEF1dG9tYXRhQ29tcGlsZSI+eG1sQXV0b21hdGFDb21waWxlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0pOworPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld05lZ1RyYW5zIj54bWxBdXRvbWF0YU5ld05lZ1RyYW5zPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuMiwgPGJyLz4JCQkJCQkgdm9pZCAqIGRhdGEpOworPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0Vwc2lsb24iPnhtbEF1dG9tYXRhTmV3RXBzaWxvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4yLCA8YnIvPgkJCQkJCQkgaW50IG1pbiwgPGJyLz4JCQkJCQkJIGludCBtYXgsIDxici8+CQkJCQkJCSB2b2lkICogZGF0YSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3QXV0b21hdGEiPnhtbE5ld0F1dG9tYXRhPC9hPgkJKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUiPnhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBzdGF0ZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JPGEgaHJlZj0iI3htbEF1dG9tYXRhTmV3T25jZVRyYW5zIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxici8+CQkJCQkJIGludCBtaW4sIDxici8+CQkJCQkJIGludCBtYXgsIDxici8+CQkJCQkJIHZvaWQgKiBkYXRhKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIvPgkJCQkJCQkgdm9pZCAqIGRhdGEpOworaW50CTxhIGhyZWY9IiN4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QiPnhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YSI+U3RydWN0dXJlIDwvYT54bWxBdXRvbWF0YTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sQXV0b21hdGEgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbEF1dG9tYXRhOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhUHRyIj5UeXBlZGVmIDwvYT54bWxBdXRvbWF0YVB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YSI+eG1sQXV0b21hdGE8L2E+ICogeG1sQXV0b21hdGFQdHI7Cis8L3ByZT48cD5BIGxpYnhtbCBhdXRvbWF0YSBkZXNjcmlwdGlvbiwgSXQgY2FuIGJlIGNvbXBpbGVkIGludG8gYSByZWdleHA8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFTdGF0ZSI+U3RydWN0dXJlIDwvYT54bWxBdXRvbWF0YVN0YXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxBdXRvbWF0YVN0YXRlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxBdXRvbWF0YVN0YXRlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhU3RhdGVQdHIiPlR5cGVkZWYgPC9hPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZSI+eG1sQXV0b21hdGFTdGF0ZTwvYT4gKiB4bWxBdXRvbWF0YVN0YXRlUHRyOworPC9wcmU+PHA+QSBzdGF0ZSBpbnQgdGhlIGF1dG9tYXRhIGRlc2NyaXB0aW9uLDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YUNvbXBpbGUiLz54bWxBdXRvbWF0YUNvbXBpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPgl4bWxBdXRvbWF0YUNvbXBpbGUJKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTxici8+Cis8L3ByZT48cD5Db21waWxlIHRoZSBhdXRvbWF0YSBpbnRvIGEgUmVnIEV4cCByZWFkeSBmb3IgYmVpbmcgZXhlY3V0ZWQuIFRoZSBhdXRvbWF0YSBzaG91bGQgYmUgZnJlZSBhZnRlciB0aGlzIHBvaW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcGlsZWQgcmVnZXhwIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlIi8+eG1sQXV0b21hdGFHZXRJbml0U3RhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFHZXRJbml0U3RhdGUJKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTxici8+Cis8L3ByZT48cD5Jbml0aWFsIHN0YXRlIGxvb2t1cDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgYXV0b21hdGE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QiLz54bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQXV0b21hdGFJc0RldGVybWluaXN0CSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSk8YnIvPgorPC9wcmU+PHA+Q2hlY2tzIGlmIGFuIGF1dG9tYXRhIGlzIGRldGVybWluaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgbm90LCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhTmV3QWxsVHJhbnMiLz54bWxBdXRvbWF0YU5ld0FsbFRyYW5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3QWxsVHJhbnMJKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCSBpbnQgbGF4KTxici8+Cis8L3ByZT48cD5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhIGFuIEFMTCB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUuIFRoYXQgdHJhbnNpdGlvbiBpcyBhbiBlcHNpbG9uIHRyYW5zaXRpb24gYWxsb3dlZCBvbmx5IHdoZW4gYWxsIHRyYW5zaXRpb25zIGZyb20gdGhlIEBmcm9tIG5vZGUgaGF2ZSBiZWVuIGFjdGl2YXRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJvbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50bzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG93IHRvIHRyYW5zaXRpb24gaWYgbm90IGFsbCBhbGwgdHJhbnNpdGlvbnMgaGF2ZSBiZWVuIGFjdGl2YXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiLz54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIvPgkJCQkJCQkgaW50IG1pbiwgPGJyLz4JCQkJCQkJIGludCBtYXgsIDxici8+CQkJCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IGEgc3VjY2Vzc2lvbiBvZiBpbnB1dCBvZiB2YWx1ZSBAdG9rZW4gYW5kIHdob3NlIG51bWJlciBpcyBiZXR3ZWVuIEBtaW4gYW5kIEBtYXg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJvbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50bzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWluaW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1heDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1heGltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5kYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiIvPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMgkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbjIsIDxici8+CQkJCQkJCSBpbnQgbWluLCA8YnIvPgkJCQkJCQkgaW50IG1heCwgPGJyLz4JCQkJCQkJIHZvaWQgKiBkYXRhKTxici8+Cis8L3ByZT48cD5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZSBhY3RpdmF0ZWQgYnkgYSBzdWNjZXNzaW9uIG9mIGlucHV0IG9mIHZhbHVlIEB0b2tlbiBhbmQgQHRva2VuMiBhbmQgd2hvc2UgbnVtYmVyIGlzIGJldHdlZW4gQG1pbiBhbmQgQG1heDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva2VuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5taW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRhdGEgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyIvPnhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgaW50IGNvdW50ZXIpPGJyLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIHdoaWNoIHdpbGwgaW5jcmVtZW50IHRoZSBjb3VudGVyIHByb3ZpZGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y291bnRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvdW50ZXIgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdDb3VudGVyIi8+eG1sQXV0b21hdGFOZXdDb3VudGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEF1dG9tYXRhTmV3Q291bnRlcgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIvPgkJCQkJIGludCBtaW4sIDxici8+CQkJCQkgaW50IG1heCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IGNvdW50ZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWluaW1hbCB2YWx1ZSBvbiB0aGUgY291bnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW1hbCB2YWx1ZSBvbiB0aGUgY291bnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvdW50ZXIgbnVtYmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyIvPnhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgaW50IGNvdW50ZXIpPGJyLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIHdoaWNoIHdpbGwgYmUgYWxsb3dlZCBvbmx5IGlmIHRoZSBjb3VudGVyIGlzIHdpdGhpbiB0aGUgcmlnaHQgcmFuZ2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y291bnRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvdW50ZXIgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdFcHNpbG9uIi8+eG1sQXV0b21hdGFOZXdFcHNpbG9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3RXBzaWxvbgkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8pPGJyLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld05lZ1RyYW5zIi8+eG1sQXV0b21hdGFOZXdOZWdUcmFucyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld05lZ1RyYW5zCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4yLCA8YnIvPgkJCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IGFueSB2YWx1ZSBleGNlcHQgKEB0b2tlbixAdG9rZW4yKSBOb3RlIHRoYXQgaWYgQHRva2VuMiBpcyBub3QgTlVMTCwgdGhlbiAoWCwgTlVMTCkgd29uJ3QgbWF0Y2ggdG8gZm9sbG93ICMgdGhlIHNlbWFudGljIG9mIFhTRCAjI290aGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva2VuMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpZiB0aGUgdHJhbnNpdGlvbiBpcyBhY3RpdmF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdPbmNlVHJhbnMiLz54bWxBdXRvbWF0YU5ld09uY2VUcmFucyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld09uY2VUcmFucwkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyLz4JCQkJCQkgaW50IG1pbiwgPGJyLz4JCQkJCQkgaW50IG1heCwgPGJyLz4JCQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIGFjdGl2YXRlZCBieSBhIHN1Y2Nlc3Npb24gb2YgaW5wdXQgb2YgdmFsdWUgQHRva2VuIGFuZCB3aG9zZSBudW1iZXIgaXMgYmV0d2VlbiBAbWluIGFuZCBAbWF4LCBtb3Jlb3ZlciB0aGF0IHRyYW5zaXRpb24gY2FuIG9ubHkgYmUgY3Jvc3NlZCBvbmNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva2VuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5taW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRhdGEgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIiLz54bWxBdXRvbWF0YU5ld09uY2VUcmFuczIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuMiwgPGJyLz4JCQkJCQkJIGludCBtaW4sIDxici8+CQkJCQkJCSBpbnQgbWF4LCA8YnIvPgkJCQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIGFjdGl2YXRlZCBieSBhIHN1Y2Nlc3Npb24gb2YgaW5wdXQgb2YgdmFsdWUgQHRva2VuIGFuZCBAdG9rZW4yIGFuZCB3aG9zZSBudW1iZXIgaXMgYmV0d2VlbiBAbWluIGFuZCBAbWF4LCBtb3Jlb3ZlciB0aGF0IHRyYW5zaXRpb24gY2FuIG9ubHkgYmUgY3Jvc3NlZCBvbmNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva2VuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5taW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRhdGEgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld1N0YXRlIi8+eG1sQXV0b21hdGFOZXdTdGF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld1N0YXRlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IGRpc2Nvbm5lY3RlZCBzdGF0ZSBpbiB0aGUgYXV0b21hdGE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24iLz54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIvPgkJCQkJCQkgdm9pZCAqIGRhdGEpPGJyLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIGFjdGl2YXRlZCBieSB0aGUgdmFsdWUgb2YgQHRva2VuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpZiB0aGUgdHJhbnNpdGlvbiBpcyBhY3RpdmF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMiIvPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMgkoPGEgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbjIsIDxici8+CQkJCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IHRoZSB2YWx1ZSBvZiBAdG9rZW48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJvbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50bzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rZW4yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZGF0YSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlmIHRoZSB0cmFuc2l0aW9uIGlzIGFjdGl2YXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUiLz54bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gc3RhdGUpPGJyLz4KKzwvcHJlPjxwPk1ha2VzIHRoYXQgc3RhdGUgYSBmaW5hbCBzdGF0ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGF0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdGF0ZSBpbiB0aGlzIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxGcmVlQXV0b21hdGEiLz54bWxGcmVlQXV0b21hdGEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVBdXRvbWF0YQkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSk8YnIvPgorPC9wcmU+PHA+RnJlZSBhbiBhdXRvbWF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3QXV0b21hdGEiLz54bWxOZXdBdXRvbWF0YSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+CXhtbE5ld0F1dG9tYXRhCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IGF1dG9tYXRhPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IG9iamVjdCBvciBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbGVycm9yLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjQ0NWRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbGVycm9yLmh0bWwKQEAgLTAsMCArMSw5NTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eG1sZXJyb3I6IGVycm9yIGhhbmRsaW5nPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi14bWxleHBvcnRzLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj54bWxlcnJvcjwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnhtbGVycm9yIC0gZXJyb3IgaGFuZGxpbmc8L3A+CisgICAgPHA+dGhlIEFQSSB1c2VkIHRvIHJlcG9ydCBlcnJvcnMgPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEVycm9yIj54bWxFcnJvcjwvYT4gKiA8YSBocmVmPSIjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sRXJyb3JMZXZlbCI+eG1sRXJyb3JMZXZlbDwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFBhcnNlckVycm9ycyI+eG1sUGFyc2VyRXJyb3JzPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sRXJyb3JEb21haW4iPnhtbEVycm9yRG9tYWluPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxFcnJvciA8YSBocmVmPSIjeG1sRXJyb3IiPnhtbEVycm9yPC9hPjsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlclZhbGlkaXR5RXJyb3IiPnhtbFBhcnNlclZhbGlkaXR5RXJyb3I8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNldEdlbmVyaWNFcnJvckZ1bmMiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT4gaGFuZGxlcik7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZXJQcmludEZpbGVJbmZvIj54bWxQYXJzZXJQcmludEZpbGVJbmZvPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpOwordm9pZAk8YSBocmVmPSIjeG1sQ3R4dFJlc2V0TGFzdEVycm9yIj54bWxDdHh0UmVzZXRMYXN0RXJyb3I8L2E+CQkodm9pZCAqIGN0eCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxSZXNldExhc3RFcnJvciI+eG1sUmVzZXRMYXN0RXJyb3I8L2E+CQkodm9pZCk7Cit2b2lkCTxhIGhyZWY9IiNpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMiPmluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPiAqIGhhbmRsZXIpOworaW50CTxhIGhyZWY9IiN4bWxDb3B5RXJyb3IiPnhtbENvcHlFcnJvcjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gZnJvbSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPiB0byk7Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmciPnhtbFBhcnNlclZhbGlkaXR5V2FybmluZzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlclByaW50RmlsZUNvbnRleHQiPnhtbFBhcnNlclByaW50RmlsZUNvbnRleHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlucHV0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFBhcnNlckVycm9yIj54bWxQYXJzZXJFcnJvcjwvYT4JCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pOwordm9pZAk8YSBocmVmPSIjeG1sUGFyc2VyV2FybmluZyI+eG1sUGFyc2VyV2FybmluZzwvYT4JCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+CQkodm9pZCAqIHVzZXJEYXRhLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxFcnJvclB0ciI+eG1sRXJyb3JQdHI8L2E+IGVycm9yKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+CSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBoYW5kbGVyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJlc2V0RXJyb3IiPnhtbFJlc2V0RXJyb3I8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxFcnJvclB0ciI+eG1sRXJyb3JQdHI8L2E+IGVycik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0TGFzdEVycm9yIj54bWxHZXRMYXN0RXJyb3I8L2E+CQkodm9pZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3R4dEdldExhc3RFcnJvciI+eG1sQ3R4dEdldExhc3RFcnJvcjwvYT4JKHZvaWQgKiBjdHgpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEVycm9yIj5TdHJ1Y3R1cmUgPC9hPnhtbEVycm9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxFcnJvciB7CisgICAgaW50CWRvbWFpbgk6IFdoYXQgcGFydCBvZiB0aGUgbGlicmFyeSByYWlzZWQgdGhpcyBlcnJvcgorICAgIGludAljb2RlCTogVGhlIGVycm9yIGNvZGUsIGUuZy4gYW4gPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9yIj54bWxQYXJzZXJFcnJvcjwvYT4KKyAgICBjaGFyICoJbWVzc2FnZQk6IGh1bWFuLXJlYWRhYmxlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2UKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JMZXZlbCI+eG1sRXJyb3JMZXZlbDwvYT4JbGV2ZWwJOiBob3cgY29uc2VxdWVudCBpcyB0aGUgZXJyb3IKKyAgICBjaGFyICoJZmlsZQk6IHRoZSBmaWxlbmFtZQorICAgIGludAlsaW5lCTogdGhlIGxpbmUgbnVtYmVyIGlmIGF2YWlsYWJsZQorICAgIGNoYXIgKglzdHIxCTogZXh0cmEgc3RyaW5nIGluZm9ybWF0aW9uCisgICAgY2hhciAqCXN0cjIJOiBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24KKyAgICBjaGFyICoJc3RyMwk6IGV4dHJhIHN0cmluZyBpbmZvcm1hdGlvbgorICAgIGludAlpbnQxCTogZXh0cmEgbnVtYmVyIGluZm9ybWF0aW9uCisgICAgaW50CWludDIJOiBjb2x1bW4gbnVtYmVyIG9mIHRoZSBlcnJvciBvciAwIGlmIE4vQSAodG9kbzogcmVuYW1lIHRoaXMgZmllbGQgd2hlbgorICAgIHZvaWQgKgljdHh0CTogdGhlIHBhcnNlciBjb250ZXh0IGlmIGF2YWlsYWJsZQorICAgIHZvaWQgKglub2RlCTogdGhlIG5vZGUgaW4gdGhlIHRyZWUKK30geG1sRXJyb3I7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXJyb3JEb21haW4iPkVudW0gPC9hPnhtbEVycm9yRG9tYWluPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sRXJyb3JEb21haW4iPnhtbEVycm9yRG9tYWluPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX0ZST01fTk9ORSI+WE1MX0ZST01fTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX0ZST01fUEFSU0VSIj5YTUxfRlJPTV9QQVJTRVI8L2E+ID0gMSAvKiBUaGUgWE1MIHBhcnNlciAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX1RSRUUiPlhNTF9GUk9NX1RSRUU8L2E+ID0gMiAvKiBUaGUgdHJlZSBtb2R1bGUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9OQU1FU1BBQ0UiPlhNTF9GUk9NX05BTUVTUEFDRTwvYT4gPSAzIC8qIFRoZSBYTUwgTmFtZXNwYWNlIG1vZHVsZSAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX0RURCI+WE1MX0ZST01fRFREPC9hPiA9IDQgLyogVGhlIFhNTCBEVEQgdmFsaWRhdGlvbiB3aXRoIHBhcnNlciBjb250ZXggKi8KKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9IVE1MIj5YTUxfRlJPTV9IVE1MPC9hPiA9IDUgLyogVGhlIEhUTUwgcGFyc2VyICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fTUVNT1JZIj5YTUxfRlJPTV9NRU1PUlk8L2E+ID0gNiAvKiBUaGUgbWVtb3J5IGFsbG9jYXRvciAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX09VVFBVVCI+WE1MX0ZST01fT1VUUFVUPC9hPiA9IDcgLyogVGhlIHNlcmlhbGl6YXRpb24gY29kZSAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX0lPIj5YTUxfRlJPTV9JTzwvYT4gPSA4IC8qIFRoZSBJbnB1dC9PdXRwdXQgc3RhY2sgKi8KKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9GVFAiPlhNTF9GUk9NX0ZUUDwvYT4gPSA5IC8qIFRoZSBGVFAgbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fSFRUUCI+WE1MX0ZST01fSFRUUDwvYT4gPSAxMCAvKiBUaGUgSFRUUCBtb2R1bGUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9YSU5DTFVERSI+WE1MX0ZST01fWElOQ0xVREU8L2E+ID0gMTEgLyogVGhlIFhJbmNsdWRlIHByb2Nlc3NpbmcgKi8KKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9YUEFUSCI+WE1MX0ZST01fWFBBVEg8L2E+ID0gMTIgLyogVGhlIFhQYXRoIG1vZHVsZSAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX1hQT0lOVEVSIj5YTUxfRlJPTV9YUE9JTlRFUjwvYT4gPSAxMyAvKiBUaGUgWFBvaW50ZXIgbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fUkVHRVhQIj5YTUxfRlJPTV9SRUdFWFA8L2E+ID0gMTQgLyogVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fREFUQVRZUEUiPlhNTF9GUk9NX0RBVEFUWVBFPC9hPiA9IDE1IC8qIFRoZSBXM0MgWE1MIFNjaGVtYXMgRGF0YXR5cGUgbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fU0NIRU1BU1AiPlhNTF9GUk9NX1NDSEVNQVNQPC9hPiA9IDE2IC8qIFRoZSBXM0MgWE1MIFNjaGVtYXMgcGFyc2VyIG1vZHVsZSAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX1NDSEVNQVNWIj5YTUxfRlJPTV9TQ0hFTUFTVjwvYT4gPSAxNyAvKiBUaGUgVzNDIFhNTCBTY2hlbWFzIHZhbGlkYXRpb24gbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fUkVMQVhOR1AiPlhNTF9GUk9NX1JFTEFYTkdQPC9hPiA9IDE4IC8qIFRoZSBSZWxheC1ORyBwYXJzZXIgbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fUkVMQVhOR1YiPlhNTF9GUk9NX1JFTEFYTkdWPC9hPiA9IDE5IC8qIFRoZSBSZWxheC1ORyB2YWxpZGF0b3IgbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fQ0FUQUxPRyI+WE1MX0ZST01fQ0FUQUxPRzwvYT4gPSAyMCAvKiBUaGUgQ2F0YWxvZyBtb2R1bGUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9DMTROIj5YTUxfRlJPTV9DMTROPC9hPiA9IDIxIC8qIFRoZSBDYW5vbmljYWxpemF0aW9uIG1vZHVsZSAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX1hTTFQiPlhNTF9GUk9NX1hTTFQ8L2E+ID0gMjIgLyogVGhlIFhTTFQgZW5naW5lIGZyb20gbGlieHNsdCAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX1ZBTElEIj5YTUxfRlJPTV9WQUxJRDwvYT4gPSAyMyAvKiBUaGUgWE1MIERURCB2YWxpZGF0aW9uIHdpdGggdmFsaWQgY29udGV4dCAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX0NIRUNLIj5YTUxfRlJPTV9DSEVDSzwvYT4gPSAyNCAvKiBUaGUgZXJyb3IgY2hlY2tpbmcgbW9kdWxlICovCisgICAgPGEgbmFtZT0iWE1MX0ZST01fV1JJVEVSIj5YTUxfRlJPTV9XUklURVI8L2E+ID0gMjUgLyogVGhlIHhtbHdyaXRlciBtb2R1bGUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9NT0RVTEUiPlhNTF9GUk9NX01PRFVMRTwvYT4gPSAyNiAvKiBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSBtb2R1bCAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX0kxOE4iPlhNTF9GUk9NX0kxOE48L2E+ID0gMjcgLyogVGhlIG1vZHVsZSBoYW5kbGluZyBjaGFyYWN0ZXIgY29udmVyc2lvbiAqLworICAgIDxhIG5hbWU9IlhNTF9GUk9NX1NDSEVNQVRST05WIj5YTUxfRlJPTV9TQ0hFTUFUUk9OVjwvYT4gPSAyOCAvKiAgVGhlIFNjaGVtYXRyb24gdmFsaWRhdG9yIG1vZHVsZSAqLworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFcnJvckxldmVsIj5FbnVtIDwvYT54bWxFcnJvckxldmVsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sRXJyb3JMZXZlbCI+eG1sRXJyb3JMZXZlbDwvYT4geworICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9ORSI+WE1MX0VSUl9OT05FPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1dBUk5JTkciPlhNTF9FUlJfV0FSTklORzwvYT4gPSAxIC8qIEEgc2ltcGxlIHdhcm5pbmcgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VSUk9SIj5YTUxfRVJSX0VSUk9SPC9hPiA9IDIgLyogQSByZWNvdmVyYWJsZSBlcnJvciAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRkFUQUwiPlhNTF9FUlJfRkFUQUw8L2E+ID0gMyAvKiAgQSBmYXRhbCBlcnJvciAqLworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFcnJvclB0ciI+VHlwZWRlZiA8L2E+eG1sRXJyb3JQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3IiPnhtbEVycm9yPC9hPiAqIHhtbEVycm9yUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlckVycm9ycyI+RW51bSA8L2E+eG1sUGFyc2VyRXJyb3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sUGFyc2VyRXJyb3JzIj54bWxQYXJzZXJFcnJvcnM8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfRVJSX09LIj5YTUxfRVJSX09LPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0lOVEVSTkFMX0VSUk9SIj5YTUxfRVJSX0lOVEVSTkFMX0VSUk9SPC9hPiA9IDEgLyogMSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9fTUVNT1JZIj5YTUxfRVJSX05PX01FTU9SWTwvYT4gPSAyIC8qIDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0RPQ1VNRU5UX1NUQVJUIj5YTUxfRVJSX0RPQ1VNRU5UX1NUQVJUPC9hPiA9IDMgLyogMyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRE9DVU1FTlRfRU1QVFkiPlhNTF9FUlJfRE9DVU1FTlRfRU1QVFk8L2E+ID0gNCAvKiA0ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9ET0NVTUVOVF9FTkQiPlhNTF9FUlJfRE9DVU1FTlRfRU5EPC9hPiA9IDUgLyogNSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9IRVhfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGPC9hPiA9IDYgLyogNiAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0RFQ19DSEFSUkVGPC9hPiA9IDcgLyogNyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9DSEFSUkVGIj5YTUxfRVJSX0lOVkFMSURfQ0hBUlJFRjwvYT4gPSA4IC8qIDggKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0lOVkFMSURfQ0hBUiI+WE1MX0VSUl9JTlZBTElEX0NIQVI8L2E+ID0gOSAvKiA5ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9DSEFSUkVGX0FUX0VPRiI+WE1MX0VSUl9DSEFSUkVGX0FUX0VPRjwvYT4gPSAxMCAvKiAxMCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0ciPlhNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0c8L2E+ID0gMTEgLyogMTEgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0NIQVJSRUZfSU5fRVBJTE9HIj5YTUxfRVJSX0NIQVJSRUZfSU5fRVBJTE9HPC9hPiA9IDEyIC8qIDEyICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9DSEFSUkVGX0lOX0RURCI+WE1MX0VSUl9DSEFSUkVGX0lOX0RURDwvYT4gPSAxMyAvKiAxMyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZUkVGX0FUX0VPRiI+WE1MX0VSUl9FTlRJVFlSRUZfQVRfRU9GPC9hPiA9IDE0IC8qIDE0ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HIj5YTUxfRVJSX0VOVElUWVJFRl9JTl9QUk9MT0c8L2E+ID0gMTUgLyogMTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWVJFRl9JTl9FUElMT0ciPlhNTF9FUlJfRU5USVRZUkVGX0lOX0VQSUxPRzwvYT4gPSAxNiAvKiAxNiAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZUkVGX0lOX0RURCI+WE1MX0VSUl9FTlRJVFlSRUZfSU5fRFREPC9hPiA9IDE3IC8qIDE3ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QRVJFRl9BVF9FT0YiPlhNTF9FUlJfUEVSRUZfQVRfRU9GPC9hPiA9IDE4IC8qIDE4ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QRVJFRl9JTl9QUk9MT0ciPlhNTF9FUlJfUEVSRUZfSU5fUFJPTE9HPC9hPiA9IDE5IC8qIDE5ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QRVJFRl9JTl9FUElMT0ciPlhNTF9FUlJfUEVSRUZfSU5fRVBJTE9HPC9hPiA9IDIwIC8qIDIwICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QRVJFRl9JTl9JTlRfU1VCU0VUIj5YTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQ8L2E+ID0gMjEgLyogMjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWVJFRl9OT19OQU1FIj5YTUxfRVJSX0VOVElUWVJFRl9OT19OQU1FPC9hPiA9IDIyIC8qIDIyICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlSRUZfU0VNSUNPTF9NSVNTSU5HIj5YTUxfRVJSX0VOVElUWVJFRl9TRU1JQ09MX01JU1NJTkc8L2E+ID0gMjMgLyogMjMgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1BFUkVGX05PX05BTUUiPlhNTF9FUlJfUEVSRUZfTk9fTkFNRTwvYT4gPSAyNCAvKiAyNCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfUEVSRUZfU0VNSUNPTF9NSVNTSU5HIj5YTUxfRVJSX1BFUkVGX1NFTUlDT0xfTUlTU0lORzwvYT4gPSAyNSAvKiAyNSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFkiPlhNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFk8L2E+ID0gMjYgLyogMjYgKi8KKyAgICA8YSBuYW1lPSJYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZIj5YTUxfV0FSX1VOREVDTEFSRURfRU5USVRZPC9hPiA9IDI3IC8qIDI3ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9VTlBBUlNFRF9FTlRJVFkiPlhNTF9FUlJfVU5QQVJTRURfRU5USVRZPC9hPiA9IDI4IC8qIDI4ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfSVNfRVhURVJOQUwiPlhNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMPC9hPiA9IDI5IC8qIDI5ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSIj5YTUxfRVJSX0VOVElUWV9JU19QQVJBTUVURVI8L2E+ID0gMzAgLyogMzAgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1VOS05PV05fRU5DT0RJTkciPlhNTF9FUlJfVU5LTk9XTl9FTkNPRElORzwvYT4gPSAzMSAvKiAzMSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkciPlhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkc8L2E+ID0gMzIgLyogMzIgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRCI+WE1MX0VSUl9TVFJJTkdfTk9UX1NUQVJURUQ8L2E+ID0gMzMgLyogMzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VEIj5YTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VEPC9hPiA9IDM0IC8qIDM0ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9OU19ERUNMX0VSUk9SIj5YTUxfRVJSX05TX0RFQ0xfRVJST1I8L2E+ID0gMzUgLyogMzUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWV9OT1RfU1RBUlRFRCI+WE1MX0VSUl9FTlRJVFlfTk9UX1NUQVJURUQ8L2E+ID0gMzYgLyogMzYgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWV9OT1RfRklOSVNIRUQiPlhNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRDwvYT4gPSAzNyAvKiAzNyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTFRfSU5fQVRUUklCVVRFIj5YTUxfRVJSX0xUX0lOX0FUVFJJQlVURTwvYT4gPSAzOCAvKiAzOCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfQVRUUklCVVRFX05PVF9TVEFSVEVEIj5YTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRDwvYT4gPSAzOSAvKiAzOSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfQVRUUklCVVRFX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9BVFRSSUJVVEVfTk9UX0ZJTklTSEVEPC9hPiA9IDQwIC8qIDQwICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9BVFRSSUJVVEVfV0lUSE9VVF9WQUxVRSI+WE1MX0VSUl9BVFRSSUJVVEVfV0lUSE9VVF9WQUxVRTwvYT4gPSA0MSAvKiA0MSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfQVRUUklCVVRFX1JFREVGSU5FRCI+WE1MX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEPC9hPiA9IDQyIC8qIDQyICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9MSVRFUkFMX05PVF9TVEFSVEVEIj5YTUxfRVJSX0xJVEVSQUxfTk9UX1NUQVJURUQ8L2E+ID0gNDMgLyogNDMgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVEPC9hPiA9IDQ0IC8qIDQ0ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9DT01NRU5UX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9DT01NRU5UX05PVF9GSU5JU0hFRDwvYT4gPSA0NSAvKiA0NSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfUElfTk9UX1NUQVJURUQiPlhNTF9FUlJfUElfTk9UX1NUQVJURUQ8L2E+ID0gNDYgLyogNDYgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1BJX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9QSV9OT1RfRklOSVNIRUQ8L2E+ID0gNDcgLyogNDcgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVEIj5YTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVEPC9hPiA9IDQ4IC8qIDQ4ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9OT1RBVElPTl9OT1RfRklOSVNIRUQiPlhNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVEPC9hPiA9IDQ5IC8qIDQ5ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9BVFRMSVNUX05PVF9TVEFSVEVEIj5YTUxfRVJSX0FUVExJU1RfTk9UX1NUQVJURUQ8L2E+ID0gNTAgLyogNTAgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0FUVExJU1RfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX0FUVExJU1RfTk9UX0ZJTklTSEVEPC9hPiA9IDUxIC8qIDUxICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRCI+WE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRDwvYT4gPSA1MiAvKiA1MiAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTUlYRURfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX01JWEVEX05PVF9GSU5JU0hFRDwvYT4gPSA1MyAvKiA1MyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX1NUQVJURUQiPlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX1NUQVJURUQ8L2E+ID0gNTQgLyogNTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VMRU1DT05URU5UX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQ8L2E+ID0gNTUgLyogNTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQiPlhNTF9FUlJfWE1MREVDTF9OT1RfU1RBUlRFRDwvYT4gPSA1NiAvKiA1NiAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfWE1MREVDTF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfWE1MREVDTF9OT1RfRklOSVNIRUQ8L2E+ID0gNTcgLyogNTcgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0NPTkRTRUNfTk9UX1NUQVJURUQiPlhNTF9FUlJfQ09ORFNFQ19OT1RfU1RBUlRFRDwvYT4gPSA1OCAvKiA1OCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfQ09ORFNFQ19OT1RfRklOSVNIRUQiPlhNTF9FUlJfQ09ORFNFQ19OT1RfRklOSVNIRUQ8L2E+ID0gNTkgLyogNTkgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVEPC9hPiA9IDYwIC8qIDYwICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9ET0NUWVBFX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9ET0NUWVBFX05PVF9GSU5JU0hFRDwvYT4gPSA2MSAvKiA2MSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTUlTUExBQ0VEX0NEQVRBX0VORCI+WE1MX0VSUl9NSVNQTEFDRURfQ0RBVEFfRU5EPC9hPiA9IDYyIC8qIDYyICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9DREFUQV9OT1RfRklOSVNIRUQiPlhNTF9FUlJfQ0RBVEFfTk9UX0ZJTklTSEVEPC9hPiA9IDYzIC8qIDYzICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9SRVNFUlZFRF9YTUxfTkFNRSI+WE1MX0VSUl9SRVNFUlZFRF9YTUxfTkFNRTwvYT4gPSA2NCAvKiA2NCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQiPlhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQ8L2E+ID0gNjUgLyogNjUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1NFUEFSQVRPUl9SRVFVSVJFRCI+WE1MX0VSUl9TRVBBUkFUT1JfUkVRVUlSRUQ8L2E+ID0gNjYgLyogNjYgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX05NVE9LRU5fUkVRVUlSRUQiPlhNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRDwvYT4gPSA2NyAvKiA2NyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTkFNRV9SRVFVSVJFRCI+WE1MX0VSUl9OQU1FX1JFUVVJUkVEPC9hPiA9IDY4IC8qIDY4ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QQ0RBVEFfUkVRVUlSRUQiPlhNTF9FUlJfUENEQVRBX1JFUVVJUkVEPC9hPiA9IDY5IC8qIDY5ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9VUklfUkVRVUlSRUQiPlhNTF9FUlJfVVJJX1JFUVVJUkVEPC9hPiA9IDcwIC8qIDcwICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QVUJJRF9SRVFVSVJFRCI+WE1MX0VSUl9QVUJJRF9SRVFVSVJFRDwvYT4gPSA3MSAvKiA3MSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTFRfUkVRVUlSRUQiPlhNTF9FUlJfTFRfUkVRVUlSRUQ8L2E+ID0gNzIgLyogNzIgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0dUX1JFUVVJUkVEIj5YTUxfRVJSX0dUX1JFUVVJUkVEPC9hPiA9IDczIC8qIDczICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9MVFNMQVNIX1JFUVVJUkVEIj5YTUxfRVJSX0xUU0xBU0hfUkVRVUlSRUQ8L2E+ID0gNzQgLyogNzQgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VRVUFMX1JFUVVJUkVEIj5YTUxfRVJSX0VRVUFMX1JFUVVJUkVEPC9hPiA9IDc1IC8qIDc1ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCI+WE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSDwvYT4gPSA3NiAvKiA3NiAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfVEFHX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVEPC9hPiA9IDc3IC8qIDc3ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFIj5YTUxfRVJSX1NUQU5EQUxPTkVfVkFMVUU8L2E+ID0gNzggLyogNzggKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOQ09ESU5HX05BTUUiPlhNTF9FUlJfRU5DT0RJTkdfTkFNRTwvYT4gPSA3OSAvKiA3OSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfSFlQSEVOX0lOX0NPTU1FTlQiPlhNTF9FUlJfSFlQSEVOX0lOX0NPTU1FTlQ8L2E+ID0gODAgLyogODAgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkciPlhNTF9FUlJfSU5WQUxJRF9FTkNPRElORzwvYT4gPSA4MSAvKiA4MSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRVhUX0VOVElUWV9TVEFOREFMT05FIj5YTUxfRVJSX0VYVF9FTlRJVFlfU1RBTkRBTE9ORTwvYT4gPSA4MiAvKiA4MiAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfQ09ORFNFQ19JTlZBTElEIj5YTUxfRVJSX0NPTkRTRUNfSU5WQUxJRDwvYT4gPSA4MyAvKiA4MyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfVkFMVUVfUkVRVUlSRUQiPlhNTF9FUlJfVkFMVUVfUkVRVUlSRUQ8L2E+ID0gODQgLyogODQgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VEIj5YTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VEPC9hPiA9IDg1IC8qIDg1ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FWFRSQV9DT05URU5UIj5YTUxfRVJSX0VYVFJBX0NPTlRFTlQ8L2E+ID0gODYgLyogODYgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWV9DSEFSX0VSUk9SIj5YTUxfRVJSX0VOVElUWV9DSEFSX0VSUk9SPC9hPiA9IDg3IC8qIDg3ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfUEVfSU5URVJOQUwiPlhNTF9FUlJfRU5USVRZX1BFX0lOVEVSTkFMPC9hPiA9IDg4IC8qIDg4ICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfTE9PUCI+WE1MX0VSUl9FTlRJVFlfTE9PUDwvYT4gPSA4OSAvKiA4OSAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZX0JPVU5EQVJZIj5YTUxfRVJSX0VOVElUWV9CT1VOREFSWTwvYT4gPSA5MCAvKiA5MCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9VUkkiPlhNTF9FUlJfSU5WQUxJRF9VUkk8L2E+ID0gOTEgLyogOTEgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1VSSV9GUkFHTUVOVCI+WE1MX0VSUl9VUklfRlJBR01FTlQ8L2E+ID0gOTIgLyogOTIgKi8KKyAgICA8YSBuYW1lPSJYTUxfV0FSX0NBVEFMT0dfUEkiPlhNTF9XQVJfQ0FUQUxPR19QSTwvYT4gPSA5MyAvKiA5MyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9fRFREIj5YTUxfRVJSX05PX0RURDwvYT4gPSA5NCAvKiA5NCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfQ09ORFNFQ19JTlZBTElEX0tFWVdPUkQiPlhNTF9FUlJfQ09ORFNFQ19JTlZBTElEX0tFWVdPUkQ8L2E+ID0gOTUgLyogOTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1ZFUlNJT05fTUlTU0lORyI+WE1MX0VSUl9WRVJTSU9OX01JU1NJTkc8L2E+ID0gOTYgLyogOTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfV0FSX1VOS05PV05fVkVSU0lPTiI+WE1MX1dBUl9VTktOT1dOX1ZFUlNJT048L2E+ID0gOTcgLyogOTcgKi8KKyAgICA8YSBuYW1lPSJYTUxfV0FSX0xBTkdfVkFMVUUiPlhNTF9XQVJfTEFOR19WQUxVRTwvYT4gPSA5OCAvKiA5OCAqLworICAgIDxhIG5hbWU9IlhNTF9XQVJfTlNfVVJJIj5YTUxfV0FSX05TX1VSSTwvYT4gPSA5OSAvKiA5OSAqLworICAgIDxhIG5hbWU9IlhNTF9XQVJfTlNfVVJJX1JFTEFUSVZFIj5YTUxfV0FSX05TX1VSSV9SRUxBVElWRTwvYT4gPSAxMDAgLyogMTAwICovCisgICAgPGEgbmFtZT0iWE1MX0VSUl9NSVNTSU5HX0VOQ09ESU5HIj5YTUxfRVJSX01JU1NJTkdfRU5DT0RJTkc8L2E+ID0gMTAxIC8qIDEwMSAqLworICAgIDxhIG5hbWU9IlhNTF9XQVJfU1BBQ0VfVkFMVUUiPlhNTF9XQVJfU1BBQ0VfVkFMVUU8L2E+ID0gMTAyIC8qIDEwMiAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9UX1NUQU5EQUxPTkUiPlhNTF9FUlJfTk9UX1NUQU5EQUxPTkU8L2E+ID0gMTAzIC8qIDEwMyAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZX1BST0NFU1NJTkciPlhNTF9FUlJfRU5USVRZX1BST0NFU1NJTkc8L2E+ID0gMTA0IC8qIDEwNCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9UQVRJT05fUFJPQ0VTU0lORyI+WE1MX0VSUl9OT1RBVElPTl9QUk9DRVNTSU5HPC9hPiA9IDEwNSAvKiAxMDUgKi8KKyAgICA8YSBuYW1lPSJYTUxfV0FSX05TX0NPTFVNTiI+WE1MX1dBUl9OU19DT0xVTU48L2E+ID0gMTA2IC8qIDEwNiAqLworICAgIDxhIG5hbWU9IlhNTF9XQVJfRU5USVRZX1JFREVGSU5FRCI+WE1MX1dBUl9FTlRJVFlfUkVERUZJTkVEPC9hPiA9IDEwNyAvKiAxMDcgKi8KKyAgICA8YSBuYW1lPSJYTUxfRVJSX1VOS05PV05fVkVSU0lPTiI+WE1MX0VSUl9VTktOT1dOX1ZFUlNJT048L2E+ID0gMTA4IC8qIDEwOCAqLworICAgIDxhIG5hbWU9IlhNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCI+WE1MX0VSUl9WRVJTSU9OX01JU01BVENIPC9hPiA9IDEwOSAvKiAxMDkgKi8KKyAgICA8YSBuYW1lPSJYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UiPlhNTF9OU19FUlJfWE1MX05BTUVTUEFDRTwvYT4gPSAyMDAKKyAgICA8YSBuYW1lPSJYTUxfTlNfRVJSX1VOREVGSU5FRF9OQU1FU1BBQ0UiPlhNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRTwvYT4gPSAyMDEgLyogMjAxICovCisgICAgPGEgbmFtZT0iWE1MX05TX0VSUl9RTkFNRSI+WE1MX05TX0VSUl9RTkFNRTwvYT4gPSAyMDIgLyogMjAyICovCisgICAgPGEgbmFtZT0iWE1MX05TX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEIj5YTUxfTlNfRVJSX0FUVFJJQlVURV9SRURFRklORUQ8L2E+ID0gMjAzIC8qIDIwMyAqLworICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfRU1QVFkiPlhNTF9OU19FUlJfRU1QVFk8L2E+ID0gMjA0IC8qIDIwNCAqLworICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfQ09MT04iPlhNTF9OU19FUlJfQ09MT048L2E+ID0gMjA1IC8qIDIwNSAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfQVRUUklCVVRFX0RFRkFVTFQiPlhNTF9EVERfQVRUUklCVVRFX0RFRkFVTFQ8L2E+ID0gNTAwCisgICAgPGEgbmFtZT0iWE1MX0RURF9BVFRSSUJVVEVfUkVERUZJTkVEIj5YTUxfRFREX0FUVFJJQlVURV9SRURFRklORUQ8L2E+ID0gNTAxIC8qIDUwMSAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfQVRUUklCVVRFX1ZBTFVFIj5YTUxfRFREX0FUVFJJQlVURV9WQUxVRTwvYT4gPSA1MDIgLyogNTAyICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9DT05URU5UX0VSUk9SIj5YTUxfRFREX0NPTlRFTlRfRVJST1I8L2E+ID0gNTAzIC8qIDUwMyAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfQ09OVEVOVF9NT0RFTCI+WE1MX0RURF9DT05URU5UX01PREVMPC9hPiA9IDUwNCAvKiA1MDQgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUIj5YTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUPC9hPiA9IDUwNSAvKiA1MDUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX0RJRkZFUkVOVF9QUkVGSVgiPlhNTF9EVERfRElGRkVSRU5UX1BSRUZJWDwvYT4gPSA1MDYgLyogNTA2ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9FTEVNX0RFRkFVTFRfTkFNRVNQQUNFIj5YTUxfRFREX0VMRU1fREVGQVVMVF9OQU1FU1BBQ0U8L2E+ID0gNTA3IC8qIDUwNyAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfRUxFTV9OQU1FU1BBQ0UiPlhNTF9EVERfRUxFTV9OQU1FU1BBQ0U8L2E+ID0gNTA4IC8qIDUwOCAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfRUxFTV9SRURFRklORUQiPlhNTF9EVERfRUxFTV9SRURFRklORUQ8L2E+ID0gNTA5IC8qIDUwOSAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfRU1QVFlfTk9UQVRJT04iPlhNTF9EVERfRU1QVFlfTk9UQVRJT048L2E+ID0gNTEwIC8qIDUxMCAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfRU5USVRZX1RZUEUiPlhNTF9EVERfRU5USVRZX1RZUEU8L2E+ID0gNTExIC8qIDUxMSAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfSURfRklYRUQiPlhNTF9EVERfSURfRklYRUQ8L2E+ID0gNTEyIC8qIDUxMiAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfSURfUkVERUZJTkVEIj5YTUxfRFREX0lEX1JFREVGSU5FRDwvYT4gPSA1MTMgLyogNTEzICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9JRF9TVUJTRVQiPlhNTF9EVERfSURfU1VCU0VUPC9hPiA9IDUxNCAvKiA1MTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX0lOVkFMSURfQ0hJTEQiPlhNTF9EVERfSU5WQUxJRF9DSElMRDwvYT4gPSA1MTUgLyogNTE1ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9JTlZBTElEX0RFRkFVTFQiPlhNTF9EVERfSU5WQUxJRF9ERUZBVUxUPC9hPiA9IDUxNiAvKiA1MTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX0xPQURfRVJST1IiPlhNTF9EVERfTE9BRF9FUlJPUjwvYT4gPSA1MTcgLyogNTE3ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURSI+WE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURTwvYT4gPSA1MTggLyogNTE4ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9NSVhFRF9DT1JSVVBUIj5YTUxfRFREX01JWEVEX0NPUlJVUFQ8L2E+ID0gNTE5IC8qIDUxOSAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfTVVMVElQTEVfSUQiPlhNTF9EVERfTVVMVElQTEVfSUQ8L2E+ID0gNTIwIC8qIDUyMCAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfTk9fRE9DIj5YTUxfRFREX05PX0RPQzwvYT4gPSA1MjEgLyogNTIxICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9OT19EVEQiPlhNTF9EVERfTk9fRFREPC9hPiA9IDUyMiAvKiA1MjIgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX05PX0VMRU1fTkFNRSI+WE1MX0RURF9OT19FTEVNX05BTUU8L2E+ID0gNTIzIC8qIDUyMyAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfTk9fUFJFRklYIj5YTUxfRFREX05PX1BSRUZJWDwvYT4gPSA1MjQgLyogNTI0ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9OT19ST09UIj5YTUxfRFREX05PX1JPT1Q8L2E+ID0gNTI1IC8qIDUyNSAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfTk9UQVRJT05fUkVERUZJTkVEIj5YTUxfRFREX05PVEFUSU9OX1JFREVGSU5FRDwvYT4gPSA1MjYgLyogNTI2ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9OT1RBVElPTl9WQUxVRSI+WE1MX0RURF9OT1RBVElPTl9WQUxVRTwvYT4gPSA1MjcgLyogNTI3ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9OT1RfRU1QVFkiPlhNTF9EVERfTk9UX0VNUFRZPC9hPiA9IDUyOCAvKiA1MjggKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX05PVF9QQ0RBVEEiPlhNTF9EVERfTk9UX1BDREFUQTwvYT4gPSA1MjkgLyogNTI5ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9OT1RfU1RBTkRBTE9ORSI+WE1MX0RURF9OT1RfU1RBTkRBTE9ORTwvYT4gPSA1MzAgLyogNTMwICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9ST09UX05BTUUiPlhNTF9EVERfUk9PVF9OQU1FPC9hPiA9IDUzMSAvKiA1MzEgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX1NUQU5EQUxPTkVfV0hJVEVfU1BBQ0UiPlhNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRTwvYT4gPSA1MzIgLyogNTMyICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9VTktOT1dOX0FUVFJJQlVURSI+WE1MX0RURF9VTktOT1dOX0FUVFJJQlVURTwvYT4gPSA1MzMgLyogNTMzICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9VTktOT1dOX0VMRU0iPlhNTF9EVERfVU5LTk9XTl9FTEVNPC9hPiA9IDUzNCAvKiA1MzQgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX1VOS05PV05fRU5USVRZIj5YTUxfRFREX1VOS05PV05fRU5USVRZPC9hPiA9IDUzNSAvKiA1MzUgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX1VOS05PV05fSUQiPlhNTF9EVERfVU5LTk9XTl9JRDwvYT4gPSA1MzYgLyogNTM2ICovCisgICAgPGEgbmFtZT0iWE1MX0RURF9VTktOT1dOX05PVEFUSU9OIj5YTUxfRFREX1VOS05PV05fTk9UQVRJT048L2E+ID0gNTM3IC8qIDUzNyAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQiPlhNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQ8L2E+ID0gNTM4IC8qIDUzOCAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfWE1MSURfVkFMVUUiPlhNTF9EVERfWE1MSURfVkFMVUU8L2E+ID0gNTM5IC8qIDUzOSAqLworICAgIDxhIG5hbWU9IlhNTF9EVERfWE1MSURfVFlQRSI+WE1MX0RURF9YTUxJRF9UWVBFPC9hPiA9IDU0MCAvKiA1NDAgKi8KKyAgICA8YSBuYW1lPSJYTUxfRFREX0RVUF9UT0tFTiI+WE1MX0RURF9EVVBfVE9LRU48L2E+ID0gNTQxIC8qIDU0MSAqLworICAgIDxhIG5hbWU9IlhNTF9IVE1MX1NUUlVDVVJFX0VSUk9SIj5YTUxfSFRNTF9TVFJVQ1VSRV9FUlJPUjwvYT4gPSA4MDAKKyAgICA8YSBuYW1lPSJYTUxfSFRNTF9VTktOT1dOX1RBRyI+WE1MX0hUTUxfVU5LTk9XTl9UQUc8L2E+ID0gODAxIC8qIDgwMSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUiI+WE1MX1JOR1BfQU5ZTkFNRV9BVFRSX0FOQ0VTVE9SPC9hPiA9IDEwMDAKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9BVFRSX0NPTkZMSUNUIj5YTUxfUk5HUF9BVFRSX0NPTkZMSUNUPC9hPiA9IDEwMDEgLyogMTAwMSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0FUVFJJQlVURV9DSElMRFJFTiI+WE1MX1JOR1BfQVRUUklCVVRFX0NISUxEUkVOPC9hPiA9IDEwMDIgLyogMTAwMiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0FUVFJJQlVURV9DT05URU5UIj5YTUxfUk5HUF9BVFRSSUJVVEVfQ09OVEVOVDwvYT4gPSAxMDAzIC8qIDEwMDMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9BVFRSSUJVVEVfRU1QVFkiPlhNTF9STkdQX0FUVFJJQlVURV9FTVBUWTwvYT4gPSAxMDA0IC8qIDEwMDQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9BVFRSSUJVVEVfTk9PUCI+WE1MX1JOR1BfQVRUUklCVVRFX05PT1A8L2E+ID0gMTAwNSAvKiAxMDA1ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfQ0hPSUNFX0NPTlRFTlQiPlhNTF9STkdQX0NIT0lDRV9DT05URU5UPC9hPiA9IDEwMDYgLyogMTAwNiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0NIT0lDRV9FTVBUWSI+WE1MX1JOR1BfQ0hPSUNFX0VNUFRZPC9hPiA9IDEwMDcgLyogMTAwNyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0NSRUFURV9GQUlMVVJFIj5YTUxfUk5HUF9DUkVBVEVfRkFJTFVSRTwvYT4gPSAxMDA4IC8qIDEwMDggKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9EQVRBX0NPTlRFTlQiPlhNTF9STkdQX0RBVEFfQ09OVEVOVDwvYT4gPSAxMDA5IC8qIDEwMDkgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9ERUZfQ0hPSUNFX0FORF9JTlRFUkxFQVZFIj5YTUxfUk5HUF9ERUZfQ0hPSUNFX0FORF9JTlRFUkxFQVZFPC9hPiA9IDEwMTAgLyogMTAxMCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0RFRklORV9DUkVBVEVfRkFJTEVEIj5YTUxfUk5HUF9ERUZJTkVfQ1JFQVRFX0ZBSUxFRDwvYT4gPSAxMDExIC8qIDEwMTEgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9ERUZJTkVfRU1QVFkiPlhNTF9STkdQX0RFRklORV9FTVBUWTwvYT4gPSAxMDEyIC8qIDEwMTIgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9ERUZJTkVfTUlTU0lORyI+WE1MX1JOR1BfREVGSU5FX01JU1NJTkc8L2E+ID0gMTAxMyAvKiAxMDEzICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfREVGSU5FX05BTUVfTUlTU0lORyI+WE1MX1JOR1BfREVGSU5FX05BTUVfTUlTU0lORzwvYT4gPSAxMDE0IC8qIDEwMTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRU1QVFkiPlhNTF9STkdQX0VMRU1fQ09OVEVOVF9FTVBUWTwvYT4gPSAxMDE1IC8qIDEwMTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1IiPlhNTF9STkdQX0VMRU1fQ09OVEVOVF9FUlJPUjwvYT4gPSAxMDE2IC8qIDEwMTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTEVNRU5UX0VNUFRZIj5YTUxfUk5HUF9FTEVNRU5UX0VNUFRZPC9hPiA9IDEwMTcgLyogMTAxNyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VMRU1FTlRfQ09OVEVOVCI+WE1MX1JOR1BfRUxFTUVOVF9DT05URU5UPC9hPiA9IDEwMTggLyogMTAxOCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VMRU1FTlRfTkFNRSI+WE1MX1JOR1BfRUxFTUVOVF9OQU1FPC9hPiA9IDEwMTkgLyogMTAxOSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VMRU1FTlRfTk9fQ09OVEVOVCI+WE1MX1JOR1BfRUxFTUVOVF9OT19DT05URU5UPC9hPiA9IDEwMjAgLyogMTAyMCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VMRU1fVEVYVF9DT05GTElDVCI+WE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNUPC9hPiA9IDEwMjEgLyogMTAyMSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VNUFRZIj5YTUxfUk5HUF9FTVBUWTwvYT4gPSAxMDIyIC8qIDEwMjIgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTVBUWV9DT05TVFJVQ1QiPlhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVDwvYT4gPSAxMDIzIC8qIDEwMjMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTVBUWV9DT05URU5UIj5YTUxfUk5HUF9FTVBUWV9DT05URU5UPC9hPiA9IDEwMjQgLyogMTAyNCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VNUFRZX05PVF9FTVBUWSI+WE1MX1JOR1BfRU1QVFlfTk9UX0VNUFRZPC9hPiA9IDEwMjUgLyogMTAyNSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VSUk9SX1RZUEVfTElCIj5YTUxfUk5HUF9FUlJPUl9UWVBFX0xJQjwvYT4gPSAxMDI2IC8qIDEwMjYgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FWENFUFRfRU1QVFkiPlhNTF9STkdQX0VYQ0VQVF9FTVBUWTwvYT4gPSAxMDI3IC8qIDEwMjcgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FWENFUFRfTUlTU0lORyI+WE1MX1JOR1BfRVhDRVBUX01JU1NJTkc8L2E+ID0gMTAyOCAvKiAxMDI4ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRVhDRVBUX01VTFRJUExFIj5YTUxfUk5HUF9FWENFUFRfTVVMVElQTEU8L2E+ID0gMTAyOSAvKiAxMDI5ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRVhDRVBUX05PX0NPTlRFTlQiPlhNTF9STkdQX0VYQ0VQVF9OT19DT05URU5UPC9hPiA9IDEwMzAgLyogMTAzMCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0VYVEVSTkFMUkVGX0VNVFBZIj5YTUxfUk5HUF9FWFRFUk5BTFJFRl9FTVRQWTwvYT4gPSAxMDMxIC8qIDEwMzEgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FWFRFUk5BTF9SRUZfRkFJTFVSRSI+WE1MX1JOR1BfRVhURVJOQUxfUkVGX0ZBSUxVUkU8L2E+ID0gMTAzMiAvKiAxMDMyICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRVhURVJOQUxSRUZfUkVDVVJTRSI+WE1MX1JOR1BfRVhURVJOQUxSRUZfUkVDVVJTRTwvYT4gPSAxMDMzIC8qIDEwMzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFIj5YTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFPC9hPiA9IDEwMzQgLyogMTAzNCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0ZPUkVJR05fRUxFTUVOVCI+WE1MX1JOR1BfRk9SRUlHTl9FTEVNRU5UPC9hPiA9IDEwMzUgLyogMTAzNSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0dSQU1NQVJfQ09OVEVOVCI+WE1MX1JOR1BfR1JBTU1BUl9DT05URU5UPC9hPiA9IDEwMzYgLyogMTAzNiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0dSQU1NQVJfRU1QVFkiPlhNTF9STkdQX0dSQU1NQVJfRU1QVFk8L2E+ID0gMTAzNyAvKiAxMDM3ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfR1JBTU1BUl9NSVNTSU5HIj5YTUxfUk5HUF9HUkFNTUFSX01JU1NJTkc8L2E+ID0gMTAzOCAvKiAxMDM4ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfR1JBTU1BUl9OT19TVEFSVCI+WE1MX1JOR1BfR1JBTU1BUl9OT19TVEFSVDwvYT4gPSAxMDM5IC8qIDEwMzkgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNUIj5YTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNUPC9hPiA9IDEwNDAgLyogMTA0MCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0hSRUZfRVJST1IiPlhNTF9STkdQX0hSRUZfRVJST1I8L2E+ID0gMTA0MSAvKiAxMDQxICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfSU5DTFVERV9FTVBUWSI+WE1MX1JOR1BfSU5DTFVERV9FTVBUWTwvYT4gPSAxMDQyIC8qIDEwNDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUiPlhNTF9STkdQX0lOQ0xVREVfRkFJTFVSRTwvYT4gPSAxMDQzIC8qIDEwNDMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTkNMVURFX1JFQ1VSU0UiPlhNTF9STkdQX0lOQ0xVREVfUkVDVVJTRTwvYT4gPSAxMDQ0IC8qIDEwNDQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTlRFUkxFQVZFX0FERCI+WE1MX1JOR1BfSU5URVJMRUFWRV9BREQ8L2E+ID0gMTA0NSAvKiAxMDQ1ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfSU5URVJMRUFWRV9DUkVBVEVfRkFJTEVEIj5YTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQ8L2E+ID0gMTA0NiAvKiAxMDQ2ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfSU5URVJMRUFWRV9FTVBUWSI+WE1MX1JOR1BfSU5URVJMRUFWRV9FTVBUWTwvYT4gPSAxMDQ3IC8qIDEwNDcgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTlRFUkxFQVZFX05PX0NPTlRFTlQiPlhNTF9STkdQX0lOVEVSTEVBVkVfTk9fQ09OVEVOVDwvYT4gPSAxMDQ4IC8qIDEwNDggKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FIj5YTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FPC9hPiA9IDEwNDkgLyogMTA0OSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX0lOVkFMSURfVVJJIj5YTUxfUk5HUF9JTlZBTElEX1VSSTwvYT4gPSAxMDUwIC8qIDEwNTAgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTlZBTElEX1ZBTFVFIj5YTUxfUk5HUF9JTlZBTElEX1ZBTFVFPC9hPiA9IDEwNTEgLyogMTA1MSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX01JU1NJTkdfSFJFRiI+WE1MX1JOR1BfTUlTU0lOR19IUkVGPC9hPiA9IDEwNTIgLyogMTA1MiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX05BTUVfTUlTU0lORyI+WE1MX1JOR1BfTkFNRV9NSVNTSU5HPC9hPiA9IDEwNTMgLyogMTA1MyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX05FRURfQ09NQklORSI+WE1MX1JOR1BfTkVFRF9DT01CSU5FPC9hPiA9IDEwNTQgLyogMTA1NCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX05PVEFMTE9XRURfTk9UX0VNUFRZIj5YTUxfUk5HUF9OT1RBTExPV0VEX05PVF9FTVBUWTwvYT4gPSAxMDU1IC8qIDEwNTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9OU05BTUVfQVRUUl9BTkNFU1RPUiI+WE1MX1JOR1BfTlNOQU1FX0FUVFJfQU5DRVNUT1I8L2E+ID0gMTA1NiAvKiAxMDU2ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfTlNOQU1FX05PX05TIj5YTUxfUk5HUF9OU05BTUVfTk9fTlM8L2E+ID0gMTA1NyAvKiAxMDU3ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFSQU1fRk9SQklEREVOIj5YTUxfUk5HUF9QQVJBTV9GT1JCSURERU48L2E+ID0gMTA1OCAvKiAxMDU4ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFSQU1fTkFNRV9NSVNTSU5HIj5YTUxfUk5HUF9QQVJBTV9OQU1FX01JU1NJTkc8L2E+ID0gMTA1OSAvKiAxMDU5ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFSRU5UUkVGX0NSRUFURV9GQUlMRUQiPlhNTF9STkdQX1BBUkVOVFJFRl9DUkVBVEVfRkFJTEVEPC9hPiA9IDEwNjAgLyogMTA2MCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBUkVOVFJFRl9OQU1FX0lOVkFMSUQiPlhNTF9STkdQX1BBUkVOVFJFRl9OQU1FX0lOVkFMSUQ8L2E+ID0gMTA2MSAvKiAxMDYxICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFSRU5UUkVGX05PX05BTUUiPlhNTF9STkdQX1BBUkVOVFJFRl9OT19OQU1FPC9hPiA9IDEwNjIgLyogMTA2MiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBUkVOVFJFRl9OT19QQVJFTlQiPlhNTF9STkdQX1BBUkVOVFJFRl9OT19QQVJFTlQ8L2E+ID0gMTA2MyAvKiAxMDYzICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFSRU5UUkVGX05PVF9FTVBUWSI+WE1MX1JOR1BfUEFSRU5UUkVGX05PVF9FTVBUWTwvYT4gPSAxMDY0IC8qIDEwNjQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVJTRV9FUlJPUiI+WE1MX1JOR1BfUEFSU0VfRVJST1I8L2E+ID0gMTA2NSAvKiAxMDY1ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0FOWU5BTUVfRVhDRVBUX0FOWU5BTUUiPlhNTF9STkdQX1BBVF9BTllOQU1FX0VYQ0VQVF9BTllOQU1FPC9hPiA9IDEwNjYgLyogMTA2NiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9BVFRSX0FUVFIiPlhNTF9STkdQX1BBVF9BVFRSX0FUVFI8L2E+ID0gMTA2NyAvKiAxMDY3ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0FUVFJfRUxFTSI+WE1MX1JOR1BfUEFUX0FUVFJfRUxFTTwvYT4gPSAxMDY4IC8qIDEwNjggKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfQVRUUiI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0FUVFI8L2E+ID0gMTA2OSAvKiAxMDY5ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VMRU0iPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTEVNPC9hPiA9IDEwNzAgLyogMTA3MCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTVBUWSI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VNUFRZPC9hPiA9IDEwNzEgLyogMTA3MSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9HUk9VUCI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQPC9hPiA9IDEwNzIgLyogMTA3MiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfSU5URVJMRUFWRTwvYT4gPSAxMDczIC8qIDEwNzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfTElTVCI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0xJU1Q8L2E+ID0gMTA3NCAvKiAxMDc0ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX09ORU1PUkUiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9PTkVNT1JFPC9hPiA9IDEwNzUgLyogMTA3NSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUYiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUY8L2E+ID0gMTA3NiAvKiAxMDc2ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1RFWFQiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhUPC9hPiA9IDEwNzcgLyogMTA3NyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9MSVNUX0FUVFIiPlhNTF9STkdQX1BBVF9MSVNUX0FUVFI8L2E+ID0gMTA3OCAvKiAxMDc4ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfRUxFTSI+WE1MX1JOR1BfUEFUX0xJU1RfRUxFTTwvYT4gPSAxMDc5IC8qIDEwNzkgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFIj5YTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFPC9hPiA9IDEwODAgLyogMTA4MCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9MSVNUX0xJU1QiPlhNTF9STkdQX1BBVF9MSVNUX0xJU1Q8L2E+ID0gMTA4MSAvKiAxMDgxICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfUkVGIj5YTUxfUk5HUF9QQVRfTElTVF9SRUY8L2E+ID0gMTA4MiAvKiAxMDgyICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfVEVYVCI+WE1MX1JOR1BfUEFUX0xJU1RfVEVYVDwvYT4gPSAxMDgzIC8qIDEwODMgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9BTllOQU1FIj5YTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9BTllOQU1FPC9hPiA9IDEwODQgLyogMTA4NCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX05TTkFNRSI+WE1MX1JOR1BfUEFUX05TTkFNRV9FWENFUFRfTlNOQU1FPC9hPiA9IDEwODUgLyogMTA4NSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9PTkVNT1JFX0dST1VQX0FUVFIiPlhNTF9STkdQX1BBVF9PTkVNT1JFX0dST1VQX0FUVFI8L2E+ID0gMTA4NiAvKiAxMDg2ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX09ORU1PUkVfSU5URVJMRUFWRV9BVFRSIj5YTUxfUk5HUF9QQVRfT05FTU9SRV9JTlRFUkxFQVZFX0FUVFI8L2E+ID0gMTA4NyAvKiAxMDg3ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX0FUVFIiPlhNTF9STkdQX1BBVF9TVEFSVF9BVFRSPC9hPiA9IDEwODggLyogMTA4OCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9TVEFSVF9EQVRBIj5YTUxfUk5HUF9QQVRfU1RBUlRfREFUQTwvYT4gPSAxMDg5IC8qIDEwODkgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfRU1QVFkiPlhNTF9STkdQX1BBVF9TVEFSVF9FTVBUWTwvYT4gPSAxMDkwIC8qIDEwOTAgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAiPlhNTF9STkdQX1BBVF9TVEFSVF9HUk9VUDwvYT4gPSAxMDkxIC8qIDEwOTEgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfSU5URVJMRUFWRSI+WE1MX1JOR1BfUEFUX1NUQVJUX0lOVEVSTEVBVkU8L2E+ID0gMTA5MiAvKiAxMDkyICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX0xJU1QiPlhNTF9STkdQX1BBVF9TVEFSVF9MSVNUPC9hPiA9IDEwOTMgLyogMTA5MyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9TVEFSVF9PTkVNT1JFIj5YTUxfUk5HUF9QQVRfU1RBUlRfT05FTU9SRTwvYT4gPSAxMDk0IC8qIDEwOTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfVEVYVCI+WE1MX1JOR1BfUEFUX1NUQVJUX1RFWFQ8L2E+ID0gMTA5NSAvKiAxMDk1ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX1ZBTFVFIj5YTUxfUk5HUF9QQVRfU1RBUlRfVkFMVUU8L2E+ID0gMTA5NiAvKiAxMDk2ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRCI+WE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRDwvYT4gPSAxMDk3IC8qIDEwOTcgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9SRUZfQ1JFQVRFX0ZBSUxFRCI+WE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQ8L2E+ID0gMTA5OCAvKiAxMDk4ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUkVGX0NZQ0xFIj5YTUxfUk5HUF9SRUZfQ1lDTEU8L2E+ID0gMTA5OSAvKiAxMDk5ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRCI+WE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRDwvYT4gPSAxMTAwIC8qIDExMDAgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9SRUZfTk9fREVGIj5YTUxfUk5HUF9SRUZfTk9fREVGPC9hPiA9IDExMDEgLyogMTEwMSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1JFRl9OT19OQU1FIj5YTUxfUk5HUF9SRUZfTk9fTkFNRTwvYT4gPSAxMTAyIC8qIDExMDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9SRUZfTk9UX0VNUFRZIj5YTUxfUk5HUF9SRUZfTk9UX0VNUFRZPC9hPiA9IDExMDMgLyogMTEwMyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1NUQVJUX0NIT0lDRV9BTkRfSU5URVJMRUFWRSI+WE1MX1JOR1BfU1RBUlRfQ0hPSUNFX0FORF9JTlRFUkxFQVZFPC9hPiA9IDExMDQgLyogMTEwNCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1NUQVJUX0NPTlRFTlQiPlhNTF9STkdQX1NUQVJUX0NPTlRFTlQ8L2E+ID0gMTEwNSAvKiAxMTA1ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfU1RBUlRfRU1QVFkiPlhNTF9STkdQX1NUQVJUX0VNUFRZPC9hPiA9IDExMDYgLyogMTEwNiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1NUQVJUX01JU1NJTkciPlhNTF9STkdQX1NUQVJUX01JU1NJTkc8L2E+ID0gMTEwNyAvKiAxMTA3ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVEVYVF9FWFBFQ1RFRCI+WE1MX1JOR1BfVEVYVF9FWFBFQ1RFRDwvYT4gPSAxMTA4IC8qIDExMDggKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9URVhUX0hBU19DSElMRCI+WE1MX1JOR1BfVEVYVF9IQVNfQ0hJTEQ8L2E+ID0gMTEwOSAvKiAxMTA5ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVFlQRV9NSVNTSU5HIj5YTUxfUk5HUF9UWVBFX01JU1NJTkc8L2E+ID0gMTExMCAvKiAxMTEwICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVFlQRV9OT1RfRk9VTkQiPlhNTF9STkdQX1RZUEVfTk9UX0ZPVU5EPC9hPiA9IDExMTEgLyogMTExMSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1RZUEVfVkFMVUUiPlhNTF9STkdQX1RZUEVfVkFMVUU8L2E+ID0gMTExMiAvKiAxMTEyICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVU5LTk9XTl9BVFRSSUJVVEUiPlhNTF9STkdQX1VOS05PV05fQVRUUklCVVRFPC9hPiA9IDExMTMgLyogMTExMyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1VOS05PV05fQ09NQklORSI+WE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FPC9hPiA9IDExMTQgLyogMTExNCAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1VOS05PV05fQ09OU1RSVUNUIj5YTUxfUk5HUF9VTktOT1dOX0NPTlNUUlVDVDwvYT4gPSAxMTE1IC8qIDExMTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9VTktOT1dOX1RZUEVfTElCIj5YTUxfUk5HUF9VTktOT1dOX1RZUEVfTElCPC9hPiA9IDExMTYgLyogMTExNiAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1VSSV9GUkFHTUVOVCI+WE1MX1JOR1BfVVJJX0ZSQUdNRU5UPC9hPiA9IDExMTcgLyogMTExNyAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1VSSV9OT1RfQUJTT0xVVEUiPlhNTF9STkdQX1VSSV9OT1RfQUJTT0xVVEU8L2E+ID0gMTExOCAvKiAxMTE4ICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVkFMVUVfRU1QVFkiPlhNTF9STkdQX1ZBTFVFX0VNUFRZPC9hPiA9IDExMTkgLyogMTExOSAqLworICAgIDxhIG5hbWU9IlhNTF9STkdQX1ZBTFVFX05PX0NPTlRFTlQiPlhNTF9STkdQX1ZBTFVFX05PX0NPTlRFTlQ8L2E+ID0gMTEyMCAvKiAxMTIwICovCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfWE1MTlNfTkFNRSI+WE1MX1JOR1BfWE1MTlNfTkFNRTwvYT4gPSAxMTIxIC8qIDExMjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9YTUxfTlMiPlhNTF9STkdQX1hNTF9OUzwvYT4gPSAxMTIyIC8qIDExMjIgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSyI+WE1MX1hQQVRIX0VYUFJFU1NJT05fT0s8L2E+ID0gMTIwMAorICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9OVU1CRVJfRVJST1IiPlhNTF9YUEFUSF9OVU1CRVJfRVJST1I8L2E+ID0gMTIwMSAvKiAxMjAxICovCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiI+WE1MX1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUjwvYT4gPSAxMjAyIC8qIDEyMDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiI+WE1MX1hQQVRIX1NUQVJUX0xJVEVSQUxfRVJST1I8L2E+ID0gMTIwMyAvKiAxMjAzICovCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUiI+WE1MX1hQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUjwvYT4gPSAxMjA0IC8qIDEyMDQgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IiPlhNTF9YUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUjwvYT4gPSAxMjA1IC8qIDEyMDUgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IiPlhNTF9YUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUjwvYT4gPSAxMjA2IC8qIDEyMDYgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfRVhQUl9FUlJPUiI+WE1MX1hQQVRIX0VYUFJfRVJST1I8L2E+ID0gMTIwNyAvKiAxMjA3ICovCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1VOQ0xPU0VEX0VSUk9SIj5YTUxfWFBBVEhfVU5DTE9TRURfRVJST1I8L2E+ID0gMTIwOCAvKiAxMjA4ICovCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUiI+WE1MX1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUjwvYT4gPSAxMjA5IC8qIDEyMDkgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5EIj5YTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5EPC9hPiA9IDEyMTAgLyogMTIxMCAqLworICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX1RZUEUiPlhNTF9YUEFUSF9JTlZBTElEX1RZUEU8L2E+ID0gMTIxMSAvKiAxMjExICovCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX0lOVkFMSURfQVJJVFkiPlhNTF9YUEFUSF9JTlZBTElEX0FSSVRZPC9hPiA9IDEyMTIgLyogMTIxMiAqLworICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfU0laRSI+WE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9TSVpFPC9hPiA9IDEyMTMgLyogMTIxMyAqLworICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iPlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT048L2E+ID0gMTIxNCAvKiAxMjE0ICovCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX01FTU9SWV9FUlJPUiI+WE1MX1hQQVRIX01FTU9SWV9FUlJPUjwvYT4gPSAxMjE1IC8qIDEyMTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBUUl9TWU5UQVhfRVJST1IiPlhNTF9YUFRSX1NZTlRBWF9FUlJPUjwvYT4gPSAxMjE2IC8qIDEyMTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBUUl9SRVNPVVJDRV9FUlJPUiI+WE1MX1hQVFJfUkVTT1VSQ0VfRVJST1I8L2E+ID0gMTIxNyAvKiAxMjE3ICovCisgICAgPGEgbmFtZT0iWE1MX1hQVFJfU1VCX1JFU09VUkNFX0VSUk9SIj5YTUxfWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1I8L2E+ID0gMTIxOCAvKiAxMjE4ICovCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiI+WE1MX1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUjwvYT4gPSAxMjE5IC8qIDEyMTkgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfRU5DT0RJTkdfRVJST1IiPlhNTF9YUEFUSF9FTkNPRElOR19FUlJPUjwvYT4gPSAxMjIwIC8qIDEyMjAgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIj5YTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SPC9hPiA9IDEyMjEgLyogMTIyMSAqLworICAgIDxhIG5hbWU9IlhNTF9UUkVFX0lOVkFMSURfSEVYIj5YTUxfVFJFRV9JTlZBTElEX0hFWDwvYT4gPSAxMzAwCisgICAgPGEgbmFtZT0iWE1MX1RSRUVfSU5WQUxJRF9ERUMiPlhNTF9UUkVFX0lOVkFMSURfREVDPC9hPiA9IDEzMDEgLyogMTMwMSAqLworICAgIDxhIG5hbWU9IlhNTF9UUkVFX1VOVEVSTUlOQVRFRF9FTlRJVFkiPlhNTF9UUkVFX1VOVEVSTUlOQVRFRF9FTlRJVFk8L2E+ID0gMTMwMiAvKiAxMzAyICovCisgICAgPGEgbmFtZT0iWE1MX1RSRUVfTk9UX1VURjgiPlhNTF9UUkVFX05PVF9VVEY4PC9hPiA9IDEzMDMgLyogMTMwMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQVZFX05PVF9VVEY4Ij5YTUxfU0FWRV9OT1RfVVRGODwvYT4gPSAxNDAwCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfQ0hBUl9JTlZBTElEIj5YTUxfU0FWRV9DSEFSX0lOVkFMSUQ8L2E+ID0gMTQwMSAvKiAxNDAxICovCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfTk9fRE9DVFlQRSI+WE1MX1NBVkVfTk9fRE9DVFlQRTwvYT4gPSAxNDAyIC8qIDE0MDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HIj5YTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HPC9hPiA9IDE0MDMgLyogMTQwMyAqLworICAgIDxhIG5hbWU9IlhNTF9SRUdFWFBfQ09NUElMRV9FUlJPUiI+WE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SPC9hPiA9IDE0NTAKKyAgICA8YSBuYW1lPSJYTUxfSU9fVU5LTk9XTiI+WE1MX0lPX1VOS05PV048L2E+ID0gMTUwMAorICAgIDxhIG5hbWU9IlhNTF9JT19FQUNDRVMiPlhNTF9JT19FQUNDRVM8L2E+ID0gMTUwMSAvKiAxNTAxICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VBR0FJTiI+WE1MX0lPX0VBR0FJTjwvYT4gPSAxNTAyIC8qIDE1MDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRUJBREYiPlhNTF9JT19FQkFERjwvYT4gPSAxNTAzIC8qIDE1MDMgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRUJBRE1TRyI+WE1MX0lPX0VCQURNU0c8L2E+ID0gMTUwNCAvKiAxNTA0ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VCVVNZIj5YTUxfSU9fRUJVU1k8L2E+ID0gMTUwNSAvKiAxNTA1ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VDQU5DRUxFRCI+WE1MX0lPX0VDQU5DRUxFRDwvYT4gPSAxNTA2IC8qIDE1MDYgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRUNISUxEIj5YTUxfSU9fRUNISUxEPC9hPiA9IDE1MDcgLyogMTUwNyAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FREVBRExLIj5YTUxfSU9fRURFQURMSzwvYT4gPSAxNTA4IC8qIDE1MDggKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRURPTSI+WE1MX0lPX0VET008L2E+ID0gMTUwOSAvKiAxNTA5ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VFWElTVCI+WE1MX0lPX0VFWElTVDwvYT4gPSAxNTEwIC8qIDE1MTAgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRUZBVUxUIj5YTUxfSU9fRUZBVUxUPC9hPiA9IDE1MTEgLyogMTUxMSAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FRkJJRyI+WE1MX0lPX0VGQklHPC9hPiA9IDE1MTIgLyogMTUxMiAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FSU5QUk9HUkVTUyI+WE1MX0lPX0VJTlBST0dSRVNTPC9hPiA9IDE1MTMgLyogMTUxMyAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FSU5UUiI+WE1MX0lPX0VJTlRSPC9hPiA9IDE1MTQgLyogMTUxNCAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FSU5WQUwiPlhNTF9JT19FSU5WQUw8L2E+ID0gMTUxNSAvKiAxNTE1ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VJTyI+WE1MX0lPX0VJTzwvYT4gPSAxNTE2IC8qIDE1MTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRUlTRElSIj5YTUxfSU9fRUlTRElSPC9hPiA9IDE1MTcgLyogMTUxNyAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FTUZJTEUiPlhNTF9JT19FTUZJTEU8L2E+ID0gMTUxOCAvKiAxNTE4ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VNTElOSyI+WE1MX0lPX0VNTElOSzwvYT4gPSAxNTE5IC8qIDE1MTkgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU1TR1NJWkUiPlhNTF9JT19FTVNHU0laRTwvYT4gPSAxNTIwIC8qIDE1MjAgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5BTUVUT09MT05HIj5YTUxfSU9fRU5BTUVUT09MT05HPC9hPiA9IDE1MjEgLyogMTUyMSAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FTkZJTEUiPlhNTF9JT19FTkZJTEU8L2E+ID0gMTUyMiAvKiAxNTIyICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VOT0RFViI+WE1MX0lPX0VOT0RFVjwvYT4gPSAxNTIzIC8qIDE1MjMgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PRU5UIj5YTUxfSU9fRU5PRU5UPC9hPiA9IDE1MjQgLyogMTUyNCAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FTk9FWEVDIj5YTUxfSU9fRU5PRVhFQzwvYT4gPSAxNTI1IC8qIDE1MjUgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PTENLIj5YTUxfSU9fRU5PTENLPC9hPiA9IDE1MjYgLyogMTUyNiAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FTk9NRU0iPlhNTF9JT19FTk9NRU08L2E+ID0gMTUyNyAvKiAxNTI3ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VOT1NQQyI+WE1MX0lPX0VOT1NQQzwvYT4gPSAxNTI4IC8qIDE1MjggKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PU1lTIj5YTUxfSU9fRU5PU1lTPC9hPiA9IDE1MjkgLyogMTUyOSAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FTk9URElSIj5YTUxfSU9fRU5PVERJUjwvYT4gPSAxNTMwIC8qIDE1MzAgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PVEVNUFRZIj5YTUxfSU9fRU5PVEVNUFRZPC9hPiA9IDE1MzEgLyogMTUzMSAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FTk9UU1VQIj5YTUxfSU9fRU5PVFNVUDwvYT4gPSAxNTMyIC8qIDE1MzIgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PVFRZIj5YTUxfSU9fRU5PVFRZPC9hPiA9IDE1MzMgLyogMTUzMyAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FTlhJTyI+WE1MX0lPX0VOWElPPC9hPiA9IDE1MzQgLyogMTUzNCAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FUEVSTSI+WE1MX0lPX0VQRVJNPC9hPiA9IDE1MzUgLyogMTUzNSAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FUElQRSI+WE1MX0lPX0VQSVBFPC9hPiA9IDE1MzYgLyogMTUzNiAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FUkFOR0UiPlhNTF9JT19FUkFOR0U8L2E+ID0gMTUzNyAvKiAxNTM3ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VST0ZTIj5YTUxfSU9fRVJPRlM8L2E+ID0gMTUzOCAvKiAxNTM4ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VTUElQRSI+WE1MX0lPX0VTUElQRTwvYT4gPSAxNTM5IC8qIDE1MzkgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRVNSQ0giPlhNTF9JT19FU1JDSDwvYT4gPSAxNTQwIC8qIDE1NDAgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRVRJTUVET1VUIj5YTUxfSU9fRVRJTUVET1VUPC9hPiA9IDE1NDEgLyogMTU0MSAqLworICAgIDxhIG5hbWU9IlhNTF9JT19FWERFViI+WE1MX0lPX0VYREVWPC9hPiA9IDE1NDIgLyogMTU0MiAqLworICAgIDxhIG5hbWU9IlhNTF9JT19ORVRXT1JLX0FUVEVNUFQiPlhNTF9JT19ORVRXT1JLX0FUVEVNUFQ8L2E+ID0gMTU0MyAvKiAxNTQzICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VOQ09ERVIiPlhNTF9JT19FTkNPREVSPC9hPiA9IDE1NDQgLyogMTU0NCAqLworICAgIDxhIG5hbWU9IlhNTF9JT19GTFVTSCI+WE1MX0lPX0ZMVVNIPC9hPiA9IDE1NDUgLyogMTU0NSAqLworICAgIDxhIG5hbWU9IlhNTF9JT19XUklURSI+WE1MX0lPX1dSSVRFPC9hPiA9IDE1NDYgLyogMTU0NiAqLworICAgIDxhIG5hbWU9IlhNTF9JT19OT19JTlBVVCI+WE1MX0lPX05PX0lOUFVUPC9hPiA9IDE1NDcgLyogMTU0NyAqLworICAgIDxhIG5hbWU9IlhNTF9JT19CVUZGRVJfRlVMTCI+WE1MX0lPX0JVRkZFUl9GVUxMPC9hPiA9IDE1NDggLyogMTU0OCAqLworICAgIDxhIG5hbWU9IlhNTF9JT19MT0FEX0VSUk9SIj5YTUxfSU9fTE9BRF9FUlJPUjwvYT4gPSAxNTQ5IC8qIDE1NDkgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PVFNPQ0siPlhNTF9JT19FTk9UU09DSzwvYT4gPSAxNTUwIC8qIDE1NTAgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRUlTQ09OTiI+WE1MX0lPX0VJU0NPTk48L2E+ID0gMTU1MSAvKiAxNTUxICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VDT05OUkVGVVNFRCI+WE1MX0lPX0VDT05OUkVGVVNFRDwvYT4gPSAxNTUyIC8qIDE1NTIgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5FVFVOUkVBQ0giPlhNTF9JT19FTkVUVU5SRUFDSDwvYT4gPSAxNTUzIC8qIDE1NTMgKi8KKyAgICA8YSBuYW1lPSJYTUxfSU9fRUFERFJJTlVTRSI+WE1MX0lPX0VBRERSSU5VU0U8L2E+ID0gMTU1NCAvKiAxNTU0ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VBTFJFQURZIj5YTUxfSU9fRUFMUkVBRFk8L2E+ID0gMTU1NSAvKiAxNTU1ICovCisgICAgPGEgbmFtZT0iWE1MX0lPX0VBRk5PU1VQUE9SVCI+WE1MX0lPX0VBRk5PU1VQUE9SVDwvYT4gPSAxNTU2IC8qIDE1NTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfUkVDVVJTSU9OIj5YTUxfWElOQ0xVREVfUkVDVVJTSU9OPC9hPiA9IDE2MDAKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUiPlhNTF9YSU5DTFVERV9QQVJTRV9WQUxVRTwvYT4gPSAxNjAxIC8qIDE2MDEgKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfRU5USVRZX0RFRl9NSVNNQVRDSCI+WE1MX1hJTkNMVURFX0VOVElUWV9ERUZfTUlTTUFUQ0g8L2E+ID0gMTYwMiAvKiAxNjAyICovCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX05PX0hSRUYiPlhNTF9YSU5DTFVERV9OT19IUkVGPC9hPiA9IDE2MDMgLyogMTYwMyAqLworICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9OT19GQUxMQkFDSyI+WE1MX1hJTkNMVURFX05PX0ZBTExCQUNLPC9hPiA9IDE2MDQgLyogMTYwNCAqLworICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9IUkVGX1VSSSI+WE1MX1hJTkNMVURFX0hSRUZfVVJJPC9hPiA9IDE2MDUgLyogMTYwNSAqLworICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9URVhUX0ZSQUdNRU5UIj5YTUxfWElOQ0xVREVfVEVYVF9GUkFHTUVOVDwvYT4gPSAxNjA2IC8qIDE2MDYgKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfVEVYVF9ET0NVTUVOVCI+WE1MX1hJTkNMVURFX1RFWFRfRE9DVU1FTlQ8L2E+ID0gMTYwNyAvKiAxNjA3ICovCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0lOVkFMSURfQ0hBUiI+WE1MX1hJTkNMVURFX0lOVkFMSURfQ0hBUjwvYT4gPSAxNjA4IC8qIDE2MDggKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEIj5YTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEPC9hPiA9IDE2MDkgLyogMTYwOSAqLworICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9VTktOT1dOX0VOQ09ESU5HIj5YTUxfWElOQ0xVREVfVU5LTk9XTl9FTkNPRElORzwvYT4gPSAxNjEwIC8qIDE2MTAgKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfTVVMVElQTEVfUk9PVCI+WE1MX1hJTkNMVURFX01VTFRJUExFX1JPT1Q8L2E+ID0gMTYxMSAvKiAxNjExICovCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX1hQVFJfRkFJTEVEIj5YTUxfWElOQ0xVREVfWFBUUl9GQUlMRUQ8L2E+ID0gMTYxMiAvKiAxNjEyICovCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX1hQVFJfUkVTVUxUIj5YTUxfWElOQ0xVREVfWFBUUl9SRVNVTFQ8L2E+ID0gMTYxMyAvKiAxNjEzICovCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0lOQ0xVREVfSU5fSU5DTFVERSI+WE1MX1hJTkNMVURFX0lOQ0xVREVfSU5fSU5DTFVERTwvYT4gPSAxNjE0IC8qIDE2MTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUiPlhNTF9YSU5DTFVERV9GQUxMQkFDS1NfSU5fSU5DTFVERTwvYT4gPSAxNjE1IC8qIDE2MTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfRkFMTEJBQ0tfTk9UX0lOX0lOQ0xVREUiPlhNTF9YSU5DTFVERV9GQUxMQkFDS19OT1RfSU5fSU5DTFVERTwvYT4gPSAxNjE2IC8qIDE2MTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfREVQUkVDQVRFRF9OUyI+WE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlM8L2E+ID0gMTYxNyAvKiAxNjE3ICovCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0ZSQUdNRU5UX0lEIj5YTUxfWElOQ0xVREVfRlJBR01FTlRfSUQ8L2E+ID0gMTYxOCAvKiAxNjE4ICovCisgICAgPGEgbmFtZT0iWE1MX0NBVEFMT0dfTUlTU0lOR19BVFRSIj5YTUxfQ0FUQUxPR19NSVNTSU5HX0FUVFI8L2E+ID0gMTY1MAorICAgIDxhIG5hbWU9IlhNTF9DQVRBTE9HX0VOVFJZX0JST0tFTiI+WE1MX0NBVEFMT0dfRU5UUllfQlJPS0VOPC9hPiA9IDE2NTEgLyogMTY1MSAqLworICAgIDxhIG5hbWU9IlhNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRSI+WE1MX0NBVEFMT0dfUFJFRkVSX1ZBTFVFPC9hPiA9IDE2NTIgLyogMTY1MiAqLworICAgIDxhIG5hbWU9IlhNTF9DQVRBTE9HX05PVF9DQVRBTE9HIj5YTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRzwvYT4gPSAxNjUzIC8qIDE2NTMgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0FUQUxPR19SRUNVUlNJT04iPlhNTF9DQVRBTE9HX1JFQ1VSU0lPTjwvYT4gPSAxNjU0IC8qIDE2NTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9QUkVGSVhfVU5ERUZJTkVEIj5YTUxfU0NIRU1BUF9QUkVGSVhfVU5ERUZJTkVEPC9hPiA9IDE3MDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BVFRSRk9STURFRkFVTFRfVkFMVUUiPlhNTF9TQ0hFTUFQX0FUVFJGT1JNREVGQVVMVF9WQUxVRTwvYT4gPSAxNzAxIC8qIDE3MDEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BVFRSR1JQX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfQVRUUkdSUF9OT05BTUVfTk9SRUY8L2E+ID0gMTcwMiAvKiAxNzAyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQVRUUl9OT05BTUVfTk9SRUYiPlhNTF9TQ0hFTUFQX0FUVFJfTk9OQU1FX05PUkVGPC9hPiA9IDE3MDMgLyogMTcwMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPTVBMRVhUWVBFX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfQ09NUExFWFRZUEVfTk9OQU1FX05PUkVGPC9hPiA9IDE3MDQgLyogMTcwNCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0VMRU1GT1JNREVGQVVMVF9WQUxVRSI+WE1MX1NDSEVNQVBfRUxFTUZPUk1ERUZBVUxUX1ZBTFVFPC9hPiA9IDE3MDUgLyogMTcwNSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0VMRU1fTk9OQU1FX05PUkVGIj5YTUxfU0NIRU1BUF9FTEVNX05PTkFNRV9OT1JFRjwvYT4gPSAxNzA2IC8qIDE3MDYgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9FWFRFTlNJT05fTk9fQkFTRSI+WE1MX1NDSEVNQVBfRVhURU5TSU9OX05PX0JBU0U8L2E+ID0gMTcwNyAvKiAxNzA3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRkFDRVRfTk9fVkFMVUUiPlhNTF9TQ0hFTUFQX0ZBQ0VUX05PX1ZBTFVFPC9hPiA9IDE3MDggLyogMTcwOCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0ZBSUxFRF9CVUlMRF9JTVBPUlQiPlhNTF9TQ0hFTUFQX0ZBSUxFRF9CVUlMRF9JTVBPUlQ8L2E+ID0gMTcwOSAvKiAxNzA5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfR1JPVVBfTk9OQU1FX05PUkVGIj5YTUxfU0NIRU1BUF9HUk9VUF9OT05BTUVfTk9SRUY8L2E+ID0gMTcxMCAvKiAxNzEwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU1QT1JUX05BTUVTUEFDRV9OT1RfVVJJIj5YTUxfU0NIRU1BUF9JTVBPUlRfTkFNRVNQQUNFX05PVF9VUkk8L2E+ID0gMTcxMSAvKiAxNzExICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU1QT1JUX1JFREVGSU5FX05TTkFNRSI+WE1MX1NDSEVNQVBfSU1QT1JUX1JFREVGSU5FX05TTkFNRTwvYT4gPSAxNzEyIC8qIDE3MTIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTVBPUlRfU0NIRU1BX05PVF9VUkkiPlhNTF9TQ0hFTUFQX0lNUE9SVF9TQ0hFTUFfTk9UX1VSSTwvYT4gPSAxNzEzIC8qIDE3MTMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0JPT0xFQU4iPlhNTF9TQ0hFTUFQX0lOVkFMSURfQk9PTEVBTjwvYT4gPSAxNzE0IC8qIDE3MTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0VOVU0iPlhNTF9TQ0hFTUFQX0lOVkFMSURfRU5VTTwvYT4gPSAxNzE1IC8qIDE3MTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUIj5YTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUPC9hPiA9IDE3MTYgLyogMTcxNiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUUiPlhNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUU8L2E+ID0gMTcxNyAvKiAxNzE3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9NQVhPQ0NVUlMiPlhNTF9TQ0hFTUFQX0lOVkFMSURfTUFYT0NDVVJTPC9hPiA9IDE3MTggLyogMTcxOCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfTUlOT0NDVVJTIj5YTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUzwvYT4gPSAxNzE5IC8qIDE3MTkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX1JFRl9BTkRfU1VCVFlQRSI+WE1MX1NDSEVNQVBfSU5WQUxJRF9SRUZfQU5EX1NVQlRZUEU8L2E+ID0gMTcyMCAvKiAxNzIwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9XSElURV9TUEFDRSI+WE1MX1NDSEVNQVBfSU5WQUxJRF9XSElURV9TUEFDRTwvYT4gPSAxNzIxIC8qIDE3MjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT0FUVFJfTk9SRUYiPlhNTF9TQ0hFTUFQX05PQVRUUl9OT1JFRjwvYT4gPSAxNzIyIC8qIDE3MjIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT1RBVElPTl9OT19OQU1FIj5YTUxfU0NIRU1BUF9OT1RBVElPTl9OT19OQU1FPC9hPiA9IDE3MjMgLyogMTcyMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX05PVFlQRV9OT1JFRiI+WE1MX1NDSEVNQVBfTk9UWVBFX05PUkVGPC9hPiA9IDE3MjQgLyogMTcyNCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFRl9BTkRfU1VCVFlQRSI+WE1MX1NDSEVNQVBfUkVGX0FORF9TVUJUWVBFPC9hPiA9IDE3MjUgLyogMTcyNSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFU1RSSUNUSU9OX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfUkVTVFJJQ1RJT05fTk9OQU1FX05PUkVGPC9hPiA9IDE3MjYgLyogMTcyNiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NJTVBMRVRZUEVfTk9OQU1FIj5YTUxfU0NIRU1BUF9TSU1QTEVUWVBFX05PTkFNRTwvYT4gPSAxNzI3IC8qIDE3MjcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9UWVBFX0FORF9TVUJUWVBFIj5YTUxfU0NIRU1BUF9UWVBFX0FORF9TVUJUWVBFPC9hPiA9IDE3MjggLyogMTcyOCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQUxMX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FMTF9DSElMRDwvYT4gPSAxNzI5IC8qIDE3MjkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0FOWUFUVFJJQlVURV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9BTllBVFRSSUJVVEVfQ0hJTEQ8L2E+ID0gMTczMCAvKiAxNzMwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJfQ0hJTEQ8L2E+ID0gMTczMSAvKiAxNzMxICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSR1JQX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJHUlBfQ0hJTEQ8L2E+ID0gMTczMiAvKiAxNzMyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSSUJVVEVfR1JPVVAiPlhNTF9TQ0hFTUFQX1VOS05PV05fQVRUUklCVVRFX0dST1VQPC9hPiA9IDE3MzMgLyogMTczMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQkFTRV9UWVBFIj5YTUxfU0NIRU1BUF9VTktOT1dOX0JBU0VfVFlQRTwvYT4gPSAxNzM0IC8qIDE3MzQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0NIT0lDRV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9DSE9JQ0VfQ0hJTEQ8L2E+ID0gMTczNSAvKiAxNzM1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYQ09OVEVOVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYQ09OVEVOVF9DSElMRDwvYT4gPSAxNzM2IC8qIDE3MzYgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEPC9hPiA9IDE3MzcgLyogMTczNyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fRUxFTV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9FTEVNX0NISUxEPC9hPiA9IDE3MzggLyogMTczOCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fRVhURU5TSU9OX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0VYVEVOU0lPTl9DSElMRDwvYT4gPSAxNzM5IC8qIDE3MzkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxEPC9hPiA9IDE3NDAgLyogMTc0MCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfVFlQRSI+WE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9UWVBFPC9hPiA9IDE3NDEgLyogMTc0MSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fR1JPVVBfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fR1JPVVBfQ0hJTEQ8L2E+ID0gMTc0MiAvKiAxNzQyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9JTVBPUlRfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fSU1QT1JUX0NISUxEPC9hPiA9IDE3NDMgLyogMTc0MyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fTElTVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9MSVNUX0NISUxEPC9hPiA9IDE3NDQgLyogMTc0NCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQ8L2E+ID0gMTc0NSAvKiAxNzQ1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRDwvYT4gPSAxNzQ2IC8qIDE3NDYgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1JFRiI+WE1MX1NDSEVNQVBfVU5LTk9XTl9SRUY8L2E+ID0gMTc0NyAvKiAxNzQ3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9SRVNUUklDVElPTl9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9SRVNUUklDVElPTl9DSElMRDwvYT4gPSAxNzQ4IC8qIDE3NDggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NDSEVNQVNfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fU0NIRU1BU19DSElMRDwvYT4gPSAxNzQ5IC8qIDE3NDkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NFUVVFTkNFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX1NFUVVFTkNFX0NISUxEPC9hPiA9IDE3NTAgLyogMTc1MCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFQ09OVEVOVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVDT05URU5UX0NISUxEPC9hPiA9IDE3NTEgLyogMTc1MSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFVFlQRV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVUWVBFX0NISUxEPC9hPiA9IDE3NTIgLyogMTc1MiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fVFlQRSI+WE1MX1NDSEVNQVBfVU5LTk9XTl9UWVBFPC9hPiA9IDE3NTMgLyogMTc1MyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fVU5JT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fVU5JT05fQ0hJTEQ8L2E+ID0gMTc1NCAvKiAxNzU0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRUxFTV9ERUZBVUxUX0ZJWEVEIj5YTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQ8L2E+ID0gMTc1NSAvKiAxNzU1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVHRVhQX0lOVkFMSUQiPlhNTF9TQ0hFTUFQX1JFR0VYUF9JTlZBTElEPC9hPiA9IDE3NTYgLyogMTc1NiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FEIj5YTUxfU0NIRU1BUF9GQUlMRURfTE9BRDwvYT4gPSAxNzU3IC8qIDE3NTcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT1RISU5HX1RPX1BBUlNFIj5YTUxfU0NIRU1BUF9OT1RISU5HX1RPX1BBUlNFPC9hPiA9IDE3NTggLyogMTc1OCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX05PUk9PVCI+WE1MX1NDSEVNQVBfTk9ST09UPC9hPiA9IDE3NTkgLyogMTc1OSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9HUk9VUCI+WE1MX1NDSEVNQVBfUkVERUZJTkVEX0dST1VQPC9hPiA9IDE3NjAgLyogMTc2MCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9UWVBFIj5YTUxfU0NIRU1BUF9SRURFRklORURfVFlQRTwvYT4gPSAxNzYxIC8qIDE3NjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9SRURFRklORURfRUxFTUVOVCI+WE1MX1NDSEVNQVBfUkVERUZJTkVEX0VMRU1FTlQ8L2E+ID0gMTc2MiAvKiAxNzYyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFJHUk9VUCI+WE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFJHUk9VUDwvYT4gPSAxNzYzIC8qIDE3NjMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9SRURFRklORURfQVRUUiI+WE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFI8L2E+ID0gMTc2NCAvKiAxNzY0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVERUZJTkVEX05PVEFUSU9OIj5YTUxfU0NIRU1BUF9SRURFRklORURfTk9UQVRJT048L2E+ID0gMTc2NSAvKiAxNzY1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRkFJTEVEX1BBUlNFIj5YTUxfU0NIRU1BUF9GQUlMRURfUEFSU0U8L2E+ID0gMTc2NiAvKiAxNzY2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9QUkVGSVgiPlhNTF9TQ0hFTUFQX1VOS05PV05fUFJFRklYPC9hPiA9IDE3NjcgLyogMTc2NyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYIj5YTUxfU0NIRU1BUF9ERUZfQU5EX1BSRUZJWDwvYT4gPSAxNzY4IC8qIDE3NjggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0lOQ0xVREVfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fSU5DTFVERV9DSElMRDwvYT4gPSAxNzY5IC8qIDE3NjkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTkNMVURFX1NDSEVNQV9OT1RfVVJJIj5YTUxfU0NIRU1BUF9JTkNMVURFX1NDSEVNQV9OT1RfVVJJPC9hPiA9IDE3NzAgLyogMTc3MCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PX1VSSSI+WE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9fVVJJPC9hPiA9IDE3NzEgLyogMTc3MSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX05PVF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX05PVF9TQ0hFTUE8L2E+ID0gMTc3MiAvKiAxNzcyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9NRU1CRVJfVFlQRSI+WE1MX1NDSEVNQVBfVU5LTk9XTl9NRU1CRVJfVFlQRTwvYT4gPSAxNzczIC8qIDE3NzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfVVNFIj5YTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfVVNFPC9hPiA9IDE3NzQgLyogMTc3NCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFQ1VSU0lWRSI+WE1MX1NDSEVNQVBfUkVDVVJTSVZFPC9hPiA9IDE3NzUgLyogMTc3NSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEUiPlhNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEU8L2E+ID0gMTc3NiAvKiAxNzc2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0NPTUJJTkFUSU9OIj5YTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfQ09NQklOQVRJT048L2E+ID0gMTc3NyAvKiAxNzc3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0lOTElORV9DT01CSU5BVElPTiI+WE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0lOTElORV9DT01CSU5BVElPTjwvYT4gPSAxNzc4IC8qIDE3NzggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9NSVNTSU5HX1NJTVBMRVRZUEVfQ0hJTEQiPlhNTF9TQ0hFTUFQX01JU1NJTkdfU0lNUExFVFlQRV9DSElMRDwvYT4gPSAxNzc5IC8qIDE3NzkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfTkFNRSI+WE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX05BTUU8L2E+ID0gMTc4MCAvKiAxNzgwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVGX0FORF9DT05URU5UIj5YTUxfU0NIRU1BUF9SRUZfQU5EX0NPTlRFTlQ8L2E+ID0gMTc4MSAvKiAxNzgxICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8xIj5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzE8L2E+ID0gMTc4MiAvKiAxNzgyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzI8L2E+ID0gMTc4MyAvKiAxNzgzICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzM8L2E+ID0gMTc4NCAvKiAxNzg0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF80Ij5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzQ8L2E+ID0gMTc4NSAvKiAxNzg1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF81Ij5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzU8L2E+ID0gMTc4NiAvKiAxNzg2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzE8L2E+ID0gMTc4NyAvKiAxNzg3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMSI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMTwvYT4gPSAxNzg4IC8qIDE3ODggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8yIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8yPC9hPiA9IDE3ODkgLyogMTc4OSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8yIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMjwvYT4gPSAxNzkwIC8qIDE3OTAgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzMiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMzwvYT4gPSAxNzkxIC8qIDE3OTEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9XSUxEQ0FSRF9JTlZBTElEX05TX01FTUJFUiI+WE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVI8L2E+ID0gMTc5MiAvKiAxNzkyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5URVJTRUNUSU9OX05PVF9FWFBSRVNTSUJMRSI+WE1MX1NDSEVNQVBfSU5URVJTRUNUSU9OX05PVF9FWFBSRVNTSUJMRTwvYT4gPSAxNzkzIC8qIDE3OTMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTklPTl9OT1RfRVhQUkVTU0lCTEUiPlhNTF9TQ0hFTUFQX1VOSU9OX05PVF9FWFBSRVNTSUJMRTwvYT4gPSAxNzk0IC8qIDE3OTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzNfMSI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzE8L2E+ID0gMTc5NSAvKiAxNzk1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzIiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18yPC9hPiA9IDE3OTYgLyogMTc5NiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8xIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMTwvYT4gPSAxNzk3IC8qIDE3OTcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMiI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzI8L2E+ID0gMTc5OCAvKiAxNzk4ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzMiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8zPC9hPiA9IDE3OTkgLyogMTc5OSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMyI+WE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8zPC9hPiA9IDE4MDAgLyogMTgwMCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PUk9PVCI+WE1MX1NDSEVNQVZfTk9ST09UPC9hPiA9IDE4MDEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9VTkRFQ0xBUkVERUxFTSI+WE1MX1NDSEVNQVZfVU5ERUNMQVJFREVMRU08L2E+ID0gMTgwMiAvKiAxODAyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTk9UVE9QTEVWRUwiPlhNTF9TQ0hFTUFWX05PVFRPUExFVkVMPC9hPiA9IDE4MDMgLyogMTgwMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX01JU1NJTkciPlhNTF9TQ0hFTUFWX01JU1NJTkc8L2E+ID0gMTgwNCAvKiAxODA0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfV1JPTkdFTEVNIj5YTUxfU0NIRU1BVl9XUk9OR0VMRU08L2E+ID0gMTgwNSAvKiAxODA1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTk9UWVBFIj5YTUxfU0NIRU1BVl9OT1RZUEU8L2E+ID0gMTgwNiAvKiAxODA2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTk9ST0xMQkFDSyI+WE1MX1NDSEVNQVZfTk9ST0xMQkFDSzwvYT4gPSAxODA3IC8qIDE4MDcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9JU0FCU1RSQUNUIj5YTUxfU0NIRU1BVl9JU0FCU1RSQUNUPC9hPiA9IDE4MDggLyogMTgwOCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PVEVNUFRZIj5YTUxfU0NIRU1BVl9OT1RFTVBUWTwvYT4gPSAxODA5IC8qIDE4MDkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9FTEVNQ09OVCI+WE1MX1NDSEVNQVZfRUxFTUNPTlQ8L2E+ID0gMTgxMCAvKiAxODEwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfSEFWRURFRkFVTFQiPlhNTF9TQ0hFTUFWX0hBVkVERUZBVUxUPC9hPiA9IDE4MTEgLyogMTgxMSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PVE5JTExBQkxFIj5YTUxfU0NIRU1BVl9OT1ROSUxMQUJMRTwvYT4gPSAxODEyIC8qIDE4MTIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9FWFRSQUNPTlRFTlQiPlhNTF9TQ0hFTUFWX0VYVFJBQ09OVEVOVDwvYT4gPSAxODEzIC8qIDE4MTMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9JTlZBTElEQVRUUiI+WE1MX1NDSEVNQVZfSU5WQUxJREFUVFI8L2E+ID0gMTgxNCAvKiAxODE0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfSU5WQUxJREVMRU0iPlhNTF9TQ0hFTUFWX0lOVkFMSURFTEVNPC9hPiA9IDE4MTUgLyogMTgxNSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PVERFVEVSTUlOSVNUIj5YTUxfU0NIRU1BVl9OT1RERVRFUk1JTklTVDwvYT4gPSAxODE2IC8qIDE4MTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DT05TVFJVQ1QiPlhNTF9TQ0hFTUFWX0NPTlNUUlVDVDwvYT4gPSAxODE3IC8qIDE4MTcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9JTlRFUk5BTCI+WE1MX1NDSEVNQVZfSU5URVJOQUw8L2E+ID0gMTgxOCAvKiAxODE4ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTk9UU0lNUExFIj5YTUxfU0NIRU1BVl9OT1RTSU1QTEU8L2E+ID0gMTgxOSAvKiAxODE5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQVRUUlVOS05PV04iPlhNTF9TQ0hFTUFWX0FUVFJVTktOT1dOPC9hPiA9IDE4MjAgLyogMTgyMCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0FUVFJJTlZBTElEIj5YTUxfU0NIRU1BVl9BVFRSSU5WQUxJRDwvYT4gPSAxODIxIC8qIDE4MjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9WQUxVRSI+WE1MX1NDSEVNQVZfVkFMVUU8L2E+ID0gMTgyMiAvKiAxODIyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfRkFDRVQiPlhNTF9TQ0hFTUFWX0ZBQ0VUPC9hPiA9IDE4MjMgLyogMTgyMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSI+WE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8xPC9hPiA9IDE4MjQgLyogMTgyNCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMiI+WE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8yPC9hPiA9IDE4MjUgLyogMTgyNSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMyI+WE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8zPC9hPiA9IDE4MjYgLyogMTgyNiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xIj5YTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMTwvYT4gPSAxODI3IC8qIDE4MjcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMiI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzI8L2E+ID0gMTgyOCAvKiAxODI4ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0ZBQ0VUX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfRkFDRVRfVkFMSUQ8L2E+ID0gMTgyOSAvKiAxODI5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRDwvYT4gPSAxODMwIC8qIDE4MzAgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfTUlOTEVOR1RIX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfTUlOTEVOR1RIX1ZBTElEPC9hPiA9IDE4MzEgLyogMTgzMSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19NQVhMRU5HVEhfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19NQVhMRU5HVEhfVkFMSUQ8L2E+ID0gMTgzMiAvKiAxODMyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01JTklOQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTklOQ0xVU0lWRV9WQUxJRDwvYT4gPSAxODMzIC8qIDE4MzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfTUFYSU5DTFVTSVZFX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfTUFYSU5DTFVTSVZFX1ZBTElEPC9hPiA9IDE4MzQgLyogMTgzNCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19NSU5FWENMVVNJVkVfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19NSU5FWENMVVNJVkVfVkFMSUQ8L2E+ID0gMTgzNSAvKiAxODM1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01BWEVYQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWEVYQ0xVU0lWRV9WQUxJRDwvYT4gPSAxODM2IC8qIDE4MzYgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19UT1RBTERJR0lUU19WQUxJRDwvYT4gPSAxODM3IC8qIDE4MzcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19GUkFDVElPTkRJR0lUU19WQUxJRDwvYT4gPSAxODM4IC8qIDE4MzggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfUEFUVEVSTl9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX1BBVFRFUk5fVkFMSUQ8L2E+ID0gMTgzOSAvKiAxODM5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfRU5VTUVSQVRJT05fVkFMSUQ8L2E+ID0gMTg0MCAvKiAxODQwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8xPC9hPiA9IDE4NDEgLyogMTg0MSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8yIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMjwvYT4gPSAxODQyIC8qIDE4NDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMyI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzM8L2E+ID0gMTg0MyAvKiAxODQzICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzQiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl80PC9hPiA9IDE4NDQgLyogMTg0NCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF8xPC9hPiA9IDE4NDUgLyogMTg0NSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfMiI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF8yPC9hPiA9IDE4NDYgLyogMTg0NiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMTwvYT4gPSAxODQ3IC8qIDE4NDcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xPC9hPiA9IDE4NDggLyogMTg0OCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzIiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzI8L2E+ID0gMTg0OSAvKiAxODQ5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8xPC9hPiA9IDE4NTAgLyogMTg1MCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzRfMjwvYT4gPSAxODUxIC8qIDE4NTEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMyI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzM8L2E+ID0gMTg1MiAvKiAxODUyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMTwvYT4gPSAxODUzIC8qIDE4NTMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yPC9hPiA9IDE4NTQgLyogMTg1NCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzE8L2E+ID0gMTg1NSAvKiAxODU1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzE8L2E+ID0gMTg1NiAvKiAxODU2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8xPC9hPiA9IDE4NTcgLyogMTg1NyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMjwvYT4gPSAxODU4IC8qIDE4NTggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzYiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNjwvYT4gPSAxODU5IC8qIDE4NTkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzciPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNzwvYT4gPSAxODYwIC8qIDE4NjAgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzEiPlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMTwvYT4gPSAxODYxIC8qIDE4NjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzIiPlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMjwvYT4gPSAxODYyIC8qIDE4NjIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzMiPlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMzwvYT4gPSAxODYzIC8qIDE4NjMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzQiPlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfNDwvYT4gPSAxODY0IC8qIDE4NjQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMSI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzE8L2E+ID0gMTg2NSAvKiAxODY1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzJfMSI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzJfMTwvYT4gPSAxODY2IC8qIDE4NjYgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8yIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8yPC9hPiA9IDE4NjcgLyogMTg2NyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNCI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV80PC9hPiA9IDE4NjggLyogMTg2OCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzVfMTwvYT4gPSAxODY5IC8qIDE4NjkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzVfMiI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzI8L2E+ID0gMTg3MCAvKiAxODcwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfRUxFTUVOVF9DT05URU5UIj5YTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQ8L2E+ID0gMTg3MSAvKiAxODcxICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfRE9DVU1FTlRfRUxFTUVOVF9NSVNTSU5HIj5YTUxfU0NIRU1BVl9ET0NVTUVOVF9FTEVNRU5UX01JU1NJTkc8L2E+ID0gMTg3MiAvKiAxODcyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzE8L2E+ID0gMTg3MyAvKiAxODczICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0FVIj5YTUxfU0NIRU1BVl9DVkNfQVU8L2E+ID0gMTg3NCAvKiAxODc0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMSI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMTwvYT4gPSAxODc1IC8qIDE4NzUgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfVFlQRV8yIj5YTUxfU0NIRU1BVl9DVkNfVFlQRV8yPC9hPiA9IDE4NzYgLyogMTg3NiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19JREMiPlhNTF9TQ0hFTUFWX0NWQ19JREM8L2E+ID0gMTg3NyAvKiAxODc3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1dJTERDQVJEIj5YTUxfU0NIRU1BVl9DVkNfV0lMRENBUkQ8L2E+ID0gMTg3OCAvKiAxODc4ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTUlTQyI+WE1MX1NDSEVNQVZfTUlTQzwvYT4gPSAxODc5IC8qIDE4NzkgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBUUl9VTktOT1dOX1NDSEVNRSI+WE1MX1hQVFJfVU5LTk9XTl9TQ0hFTUU8L2E+ID0gMTkwMAorICAgIDxhIG5hbWU9IlhNTF9YUFRSX0NISUxEU0VRX1NUQVJUIj5YTUxfWFBUUl9DSElMRFNFUV9TVEFSVDwvYT4gPSAxOTAxIC8qIDE5MDEgKi8KKyAgICA8YSBuYW1lPSJYTUxfWFBUUl9FVkFMX0ZBSUxFRCI+WE1MX1hQVFJfRVZBTF9GQUlMRUQ8L2E+ID0gMTkwMiAvKiAxOTAyICovCisgICAgPGEgbmFtZT0iWE1MX1hQVFJfRVhUUkFfT0JKRUNUUyI+WE1MX1hQVFJfRVhUUkFfT0JKRUNUUzwvYT4gPSAxOTAzIC8qIDE5MDMgKi8KKyAgICA8YSBuYW1lPSJYTUxfQzE0Tl9DUkVBVEVfQ1RYVCI+WE1MX0MxNE5fQ1JFQVRFX0NUWFQ8L2E+ID0gMTk1MAorICAgIDxhIG5hbWU9IlhNTF9DMTROX1JFUVVJUkVTX1VURjgiPlhNTF9DMTROX1JFUVVJUkVTX1VURjg8L2E+ID0gMTk1MSAvKiAxOTUxICovCisgICAgPGEgbmFtZT0iWE1MX0MxNE5fQ1JFQVRFX1NUQUNLIj5YTUxfQzE0Tl9DUkVBVEVfU1RBQ0s8L2E+ID0gMTk1MiAvKiAxOTUyICovCisgICAgPGEgbmFtZT0iWE1MX0MxNE5fSU5WQUxJRF9OT0RFIj5YTUxfQzE0Tl9JTlZBTElEX05PREU8L2E+ID0gMTk1MyAvKiAxOTUzICovCisgICAgPGEgbmFtZT0iWE1MX0MxNE5fVU5LTk9XX05PREUiPlhNTF9DMTROX1VOS05PV19OT0RFPC9hPiA9IDE5NTQgLyogMTk1NCAqLworICAgIDxhIG5hbWU9IlhNTF9DMTROX1JFTEFUSVZFX05BTUVTUEFDRSI+WE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFPC9hPiA9IDE5NTUgLyogMTk1NSAqLworICAgIDxhIG5hbWU9IlhNTF9GVFBfUEFTVl9BTlNXRVIiPlhNTF9GVFBfUEFTVl9BTlNXRVI8L2E+ID0gMjAwMAorICAgIDxhIG5hbWU9IlhNTF9GVFBfRVBTVl9BTlNXRVIiPlhNTF9GVFBfRVBTVl9BTlNXRVI8L2E+ID0gMjAwMSAvKiAyMDAxICovCisgICAgPGEgbmFtZT0iWE1MX0ZUUF9BQ0NOVCI+WE1MX0ZUUF9BQ0NOVDwvYT4gPSAyMDAyIC8qIDIwMDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfRlRQX1VSTF9TWU5UQVgiPlhNTF9GVFBfVVJMX1NZTlRBWDwvYT4gPSAyMDAzIC8qIDIwMDMgKi8KKyAgICA8YSBuYW1lPSJYTUxfSFRUUF9VUkxfU1lOVEFYIj5YTUxfSFRUUF9VUkxfU1lOVEFYPC9hPiA9IDIwMjAKKyAgICA8YSBuYW1lPSJYTUxfSFRUUF9VU0VfSVAiPlhNTF9IVFRQX1VTRV9JUDwvYT4gPSAyMDIxIC8qIDIwMjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfSFRUUF9VTktOT1dOX0hPU1QiPlhNTF9IVFRQX1VOS05PV05fSE9TVDwvYT4gPSAyMDIyIC8qIDIwMjIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMSI+WE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzE8L2E+ID0gMzAwMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8yIj5YTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMjwvYT4gPSAzMDAxIC8qIDMwMDEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMyI+WE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzM8L2E+ID0gMzAwMiAvKiAzMDAyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzQiPlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV80PC9hPiA9IDMwMDMgLyogMzAwMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFIj5YTUxfU0NIRU1BUF9TUkNfUkVTT0xWRTwvYT4gPSAzMDA0IC8qIDMwMDQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfUkVTVFJJQ1RJT05fQkFTRV9PUl9TSU1QTEVUWVBFIj5YTUxfU0NIRU1BUF9TUkNfUkVTVFJJQ1RJT05fQkFTRV9PUl9TSU1QTEVUWVBFPC9hPiA9IDMwMDUgLyogMzAwNSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEUiPlhNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEU8L2E+ID0gMzAwNiAvKiAzMDA2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1VOSU9OX01FTUJFUlRZUEVTX09SX1NJTVBMRVRZUEVTIj5YTUxfU0NIRU1BUF9TUkNfVU5JT05fTUVNQkVSVFlQRVNfT1JfU0lNUExFVFlQRVM8L2E+ID0gMzAwNyAvKiAzMDA3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xIj5YTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzE8L2E+ID0gMzAwOCAvKiAzMDA4ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8yIj5YTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzI8L2E+ID0gMzAwOSAvKiAzMDA5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzM8L2E+ID0gMzAxMCAvKiAzMDEwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8xPC9hPiA9IDMwMTEgLyogMzAxMSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8yIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMjwvYT4gPSAzMDEyIC8qIDMwMTIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfM18xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfM18xPC9hPiA9IDMwMTMgLyogMzAxMyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzI8L2E+ID0gMzAxNCAvKiAzMDE0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8xPC9hPiA9IDMwMTUgLyogMzAxNSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8xPC9hPiA9IDMwMTYgLyogMzAxNiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8yPC9hPiA9IDMwMTcgLyogMzAxNyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8xPC9hPiA9IDMwMTggLyogMzAxOCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8yPC9hPiA9IDMwMTkgLyogMzAxOSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMyI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8zPC9hPiA9IDMwMjAgLyogMzAyMCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNCI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80PC9hPiA9IDMwMjEgLyogMzAyMSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl81PC9hPiA9IDMwMjIgLyogMzAyMiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMTwvYT4gPSAzMDIzIC8qIDMwMjMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xPC9hPiA9IDMwMjQgLyogMzAyNCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzFfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMV8yPC9hPiA9IDMwMjUgLyogMzAyNSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8yPC9hPiA9IDMwMjYgLyogMzAyNiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8xPC9hPiA9IDMwMjcgLyogMzAyNyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMyI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8zPC9hPiA9IDMwMjggLyogMzAyOCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNCI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl80PC9hPiA9IDMwMjkgLyogMzAyOSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl81PC9hPiA9IDMwMzAgLyogMzAzMCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8xPC9hPiA9IDMwMzEgLyogMzAzMSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8yPC9hPiA9IDMwMzIgLyogMzAzMiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VEIj5YTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRDwvYT4gPSAzMDMzIC8qIDMwMzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TNFNfRUxFTV9NSVNTSU5HIj5YTUxfU0NIRU1BUF9TNFNfRUxFTV9NSVNTSU5HPC9hPiA9IDMwMzQgLyogMzAzNCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VEIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRDwvYT4gPSAzMDM1IC8qIDMwMzUgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HPC9hPiA9IDMwMzYgLyogMzAzNiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUiPlhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUU8L2E+ID0gMzAzNyAvKiAzMDM3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMSI+WE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMTwvYT4gPSAzMDM4IC8qIDMwMzggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzEiPlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMTwvYT4gPSAzMDM5IC8qIDMwMzkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzIiPlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMjwvYT4gPSAzMDQwIC8qIDMwNDAgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8zIj5YTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8zPC9hPiA9IDMwNDEgLyogMzA0MSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xIj5YTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMTwvYT4gPSAzMDQyIC8qIDMwNDIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8xIj5YTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8xPC9hPiA9IDMwNDMgLyogMzA0MyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzIiPlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzI8L2E+ID0gMzA0NCAvKiAzMDQ0ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8yPC9hPiA9IDMwNDUgLyogMzA0NSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfMzwvYT4gPSAzMDQ2IC8qIDMwNDYgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNCI+WE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzQ8L2E+ID0gMzA0NyAvKiAzMDQ3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzUiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF81PC9hPiA9IDMwNDggLyogMzA0OCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF82Ij5YTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNjwvYT4gPSAzMDQ5IC8qIDMwNDkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU5DTFVERSI+WE1MX1NDSEVNQVBfU1JDX0lOQ0xVREU8L2E+ID0gMzA1MCAvKiAzMDUwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8xIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzE8L2E+ID0gMzA1MSAvKiAzMDUxICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8yIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzI8L2E+ID0gMzA1MiAvKiAzMDUyICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8zXzEiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18xPC9hPiA9IDMwNTMgLyogMzA1MyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18yIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMjwvYT4gPSAzMDU0IC8qIDMwNTQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzQiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfNDwvYT4gPSAzMDU1IC8qIDMwNTUgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT19YTUxOUyI+WE1MX1NDSEVNQVBfTk9fWE1MTlM8L2E+ID0gMzA1NiAvKiAzMDU2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfTk9fWFNJIj5YTUxfU0NIRU1BUF9OT19YU0k8L2E+ID0gMzA1NyAvKiAzMDU3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMSI+WE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMTwvYT4gPSAzMDU4IC8qIDMwNTggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzEiPlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMTwvYT4gPSAzMDU5IC8qIDMwNTkgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzE8L2E+ID0gMzA2MCAvKiAzMDYwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzIiPlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8yPC9hPiA9IDMwNjEgLyogMzA2MSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NWQ19TSU1QTEVfVFlQRSI+WE1MX1NDSEVNQVBfQ1ZDX1NJTVBMRV9UWVBFPC9hPiA9IDMwNjIgLyogMzA2MiAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSI+WE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xPC9hPiA9IDMwNjMgLyogMzA2MyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8xIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMTwvYT4gPSAzMDY0IC8qIDMwNjQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMiI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8xXzI8L2E+ID0gMzA2NSAvKiAzMDY1ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzI8L2E+ID0gMzA2NiAvKiAzMDY2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzEiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8xPC9hPiA9IDMwNjcgLyogMzA2NyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8yIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMjwvYT4gPSAzMDY4IC8qIDMwNjggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlRFUk5BTCI+WE1MX1NDSEVNQVBfSU5URVJOQUw8L2E+ID0gMzA2OSAvKiAzMDY5IG5vbi1XM0MgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQyI+WE1MX1NDSEVNQVBfTk9UX0RFVEVSTUlOSVNUSUM8L2E+ID0gMzA3MCAvKiAzMDcwIG5vbi1XM0MgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzEiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMTwvYT4gPSAzMDcxIC8qIDMwNzEgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzIiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMjwvYT4gPSAzMDcyIC8qIDMwNzIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzMiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMzwvYT4gPSAzMDczIC8qIDMwNzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMTwvYT4gPSAzMDc0IC8qIDMwNzQgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMjwvYT4gPSAzMDc1IC8qIDMwNzUgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQ1RfMSI+WE1MX1NDSEVNQVBfU1JDX0NUXzE8L2E+ID0gMzA3NiAvKiAzMDc2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMyI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMzwvYT4gPSAzMDc3IC8qIDMwNzcgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1RfMjwvYT4gPSAzMDc4IC8qIDMwNzggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMiI+WE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzI8L2E+ID0gMzA3OSAvKiAzMDc5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ19QUk9QU19DT1JSRUNUIj5YTUxfU0NIRU1BUF9DX1BST1BTX0NPUlJFQ1Q8L2E+ID0gMzA4MCAvKiAzMDgwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1JFREVGSU5FIj5YTUxfU0NIRU1BUF9TUkNfUkVERUZJTkU8L2E+ID0gMzA4MSAvKiAzMDgxICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVCI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVDwvYT4gPSAzMDgyIC8qIDMwODIgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9XQVJOX1NLSVBfU0NIRU1BIj5YTUxfU0NIRU1BUF9XQVJOX1NLSVBfU0NIRU1BPC9hPiA9IDMwODMgLyogMzA4MyAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1dBUk5fVU5MT0NBVEVEX1NDSEVNQSI+WE1MX1NDSEVNQVBfV0FSTl9VTkxPQ0FURURfU0NIRU1BPC9hPiA9IDMwODQgLyogMzA4NCAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9SRURFQ0xfUFJPSCI+WE1MX1NDSEVNQVBfV0FSTl9BVFRSX1JFREVDTF9QUk9IPC9hPiA9IDMwODUgLyogMzA4NSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9QT0lOVExFU1NfUFJPSCI+WE1MX1NDSEVNQVBfV0FSTl9BVFRSX1BPSU5UTEVTU19QUk9IPC9hPiA9IDMwODYgLyogMzA4NSAqLworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1QiPlhNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1Q8L2E+ID0gMzA4NyAvKiAzMDg2ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8yIj5YTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzI8L2E+ID0gMzA4OCAvKiAzMDg3ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVCI+WE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVDwvYT4gPSAzMDg5IC8qIDMwODggKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMyI+WE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzM8L2E+ID0gMzA5MCAvKiAzMDg5ICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX0FMTF9MSU1JVEVEIj5YTUxfU0NIRU1BUF9DT1NfQUxMX0xJTUlURUQ8L2E+ID0gMzA5MSAvKiAzMDkwICovCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05WX0FTU0VSVCI+WE1MX1NDSEVNQVRST05WX0FTU0VSVDwvYT4gPSA0MDAwIC8qIDQwMDAgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVFJPTlZfUkVQT1JUIj5YTUxfU0NIRU1BVFJPTlZfUkVQT1JUPC9hPiA9IDQwMDEKKyAgICA8YSBuYW1lPSJYTUxfTU9EVUxFX09QRU4iPlhNTF9NT0RVTEVfT1BFTjwvYT4gPSA0OTAwIC8qIDQ5MDAgKi8KKyAgICA8YSBuYW1lPSJYTUxfTU9EVUxFX0NMT1NFIj5YTUxfTU9EVUxFX0NMT1NFPC9hPiA9IDQ5MDEgLyogNDkwMSAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19GT1VORF9FTEVNRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfRUxFTUVOVDwvYT4gPSA1MDAwCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX0FUVFJJQlVURSI+WE1MX0NIRUNLX0ZPVU5EX0FUVFJJQlVURTwvYT4gPSA1MDAxIC8qIDUwMDEgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfVEVYVCI+WE1MX0NIRUNLX0ZPVU5EX1RFWFQ8L2E+ID0gNTAwMiAvKiA1MDAyICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX0NEQVRBIj5YTUxfQ0hFQ0tfRk9VTkRfQ0RBVEE8L2E+ID0gNTAwMyAvKiA1MDAzICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRiI+WE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRjwvYT4gPSA1MDA0IC8qIDUwMDQgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZIj5YTUxfQ0hFQ0tfRk9VTkRfRU5USVRZPC9hPiA9IDUwMDUgLyogNTAwNSAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19GT1VORF9QSSI+WE1MX0NIRUNLX0ZPVU5EX1BJPC9hPiA9IDUwMDYgLyogNTAwNiAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19GT1VORF9DT01NRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfQ09NTUVOVDwvYT4gPSA1MDA3IC8qIDUwMDcgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfRE9DVFlQRSI+WE1MX0NIRUNLX0ZPVU5EX0RPQ1RZUEU8L2E+ID0gNTAwOCAvKiA1MDA4ICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX0ZSQUdNRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfRlJBR01FTlQ8L2E+ID0gNTAwOSAvKiA1MDA5ICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX05PVEFUSU9OIj5YTUxfQ0hFQ0tfRk9VTkRfTk9UQVRJT048L2E+ID0gNTAxMCAvKiA1MDEwICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX1VOS05PV05fTk9ERSI+WE1MX0NIRUNLX1VOS05PV05fTk9ERTwvYT4gPSA1MDExIC8qIDUwMTEgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRU5USVRZX1RZUEUiPlhNTF9DSEVDS19FTlRJVFlfVFlQRTwvYT4gPSA1MDEyIC8qIDUwMTIgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9fUEFSRU5UIj5YTUxfQ0hFQ0tfTk9fUEFSRU5UPC9hPiA9IDUwMTMgLyogNTAxMyAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT19ET0MiPlhNTF9DSEVDS19OT19ET0M8L2E+ID0gNTAxNCAvKiA1MDE0ICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PX05BTUUiPlhNTF9DSEVDS19OT19OQU1FPC9hPiA9IDUwMTUgLyogNTAxNSAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT19FTEVNIj5YTUxfQ0hFQ0tfTk9fRUxFTTwvYT4gPSA1MDE2IC8qIDUwMTYgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfV1JPTkdfRE9DIj5YTUxfQ0hFQ0tfV1JPTkdfRE9DPC9hPiA9IDUwMTcgLyogNTAxNyAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT19QUkVWIj5YTUxfQ0hFQ0tfTk9fUFJFVjwvYT4gPSA1MDE4IC8qIDUwMTggKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfV1JPTkdfUFJFViI+WE1MX0NIRUNLX1dST05HX1BSRVY8L2E+ID0gNTAxOSAvKiA1MDE5ICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PX05FWFQiPlhNTF9DSEVDS19OT19ORVhUPC9hPiA9IDUwMjAgLyogNTAyMCAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19XUk9OR19ORVhUIj5YTUxfQ0hFQ0tfV1JPTkdfTkVYVDwvYT4gPSA1MDIxIC8qIDUwMjEgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9UX0RURCI+WE1MX0NIRUNLX05PVF9EVEQ8L2E+ID0gNTAyMiAvKiA1MDIyICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PVF9BVFRSIj5YTUxfQ0hFQ0tfTk9UX0FUVFI8L2E+ID0gNTAyMyAvKiA1MDIzICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PVF9BVFRSX0RFQ0wiPlhNTF9DSEVDS19OT1RfQVRUUl9ERUNMPC9hPiA9IDUwMjQgLyogNTAyNCAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT1RfRUxFTV9ERUNMIj5YTUxfQ0hFQ0tfTk9UX0VMRU1fREVDTDwvYT4gPSA1MDI1IC8qIDUwMjUgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMIj5YTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMPC9hPiA9IDUwMjYgLyogNTAyNiAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT1RfTlNfREVDTCI+WE1MX0NIRUNLX05PVF9OU19ERUNMPC9hPiA9IDUwMjcgLyogNTAyNyAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT19IUkVGIj5YTUxfQ0hFQ0tfTk9fSFJFRjwvYT4gPSA1MDI4IC8qIDUwMjggKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfV1JPTkdfUEFSRU5UIj5YTUxfQ0hFQ0tfV1JPTkdfUEFSRU5UPC9hPiA9IDUwMjkgLyogNTAyOSAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OU19TQ09QRSI+WE1MX0NIRUNLX05TX1NDT1BFPC9hPiA9IDUwMzAgLyogNTAzMCAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OU19BTkNFU1RPUiI+WE1MX0NIRUNLX05TX0FOQ0VTVE9SPC9hPiA9IDUwMzEgLyogNTAzMSAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT1RfVVRGOCI+WE1MX0NIRUNLX05PVF9VVEY4PC9hPiA9IDUwMzIgLyogNTAzMiAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT19ESUNUIj5YTUxfQ0hFQ0tfTk9fRElDVDwvYT4gPSA1MDMzIC8qIDUwMzMgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9UX05DTkFNRSI+WE1MX0NIRUNLX05PVF9OQ05BTUU8L2E+ID0gNTAzNCAvKiA1MDM0ICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX09VVFNJREVfRElDVCI+WE1MX0NIRUNLX09VVFNJREVfRElDVDwvYT4gPSA1MDM1IC8qIDUwMzUgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfV1JPTkdfTkFNRSI+WE1MX0NIRUNLX1dST05HX05BTUU8L2E+ID0gNTAzNiAvKiA1MDM2ICovCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05BTUVfTk9UX05VTEwiPlhNTF9DSEVDS19OQU1FX05PVF9OVUxMPC9hPiA9IDUwMzcgLyogNTAzNyAqLworICAgIDxhIG5hbWU9IlhNTF9JMThOX05PX05BTUUiPlhNTF9JMThOX05PX05BTUU8L2E+ID0gNjAwMAorICAgIDxhIG5hbWU9IlhNTF9JMThOX05PX0hBTkRMRVIiPlhNTF9JMThOX05PX0hBTkRMRVI8L2E+ID0gNjAwMSAvKiA2MDAxICovCisgICAgPGEgbmFtZT0iWE1MX0kxOE5fRVhDRVNTX0hBTkRMRVIiPlhNTF9JMThOX0VYQ0VTU19IQU5ETEVSPC9hPiA9IDYwMDIgLyogNjAwMiAqLworICAgIDxhIG5hbWU9IlhNTF9JMThOX0NPTlZfRkFJTEVEIj5YTUxfSTE4Tl9DT05WX0ZBSUxFRDwvYT4gPSA2MDAzIC8qIDYwMDMgKi8KKyAgICA8YSBuYW1lPSJYTUxfSTE4Tl9OT19PVVRQVVQiPlhNTF9JMThOX05PX09VVFBVVDwvYT4gPSA2MDA0IC8qIDYwMDQgKi8KKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfIj5YTUxfQ0hFQ0tfPC9hPiA9IDYwMDUgLyogNTAzMyAqLworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19YIj5YTUxfQ0hFQ0tfWDwvYT4gPSA2MDA2IC8qICA1MDMgKi8KK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sR2VuZXJpY0Vycm9yRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sR2VuZXJpY0Vycm9yRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sR2VuZXJpY0Vycm9yRnVuYwkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5TaWduYXR1cmUgb2YgdGhlIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGFuZCBubyBwYXJzaW5nIG9yIHZhbGlkaXR5IGNvbnRleHQgYXZhaWxhYmxlIC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwYXJzaW5nIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dHJhIGFyZ3VtZW50cyBvZiB0aGUgdmFyYWdzIHRvIGZvcm1hdCB0aGUgbWVzc2FnZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cnVjdHVyZWRFcnJvckZ1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFN0cnVjdHVyZWRFcnJvckZ1bmMJCSh2b2lkICogdXNlckRhdGEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gZXJyb3IpPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBvZiB0aGUgZnVuY3Rpb24gdG8gdXNlIHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgYW5kIHRoZSBtb2R1bGUgaGFuZGxlcyB0aGUgbmV3IGVycm9yIHJlcG9ydGluZyBtZWNoYW5pc20uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyRGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dXNlciBwcm92aWRlZCBkYXRhIGZvciB0aGUgZXJyb3IgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycm9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgYmVpbmcgcmFpc2VkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYyIvPmluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jCSg8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT4gKiBoYW5kbGVyKTxici8+Cis8L3ByZT48cD5TZXQgb3IgcmVzZXQgKGlmIE5VTEwpIHRoZSBkZWZhdWx0IGhhbmRsZXIgZm9yIGdlbmVyaWMgZXJyb3JzIHRvIHRoZSBidWlsdGluIGVycm9yIGZ1bmN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhbmRsZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDb3B5RXJyb3IiLz54bWxDb3B5RXJyb3IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ29weUVycm9yCQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxFcnJvclB0ciI+eG1sRXJyb3JQdHI8L2E+IGZyb20sIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gdG8pPGJyLz4KKzwvcHJlPjxwPlNhdmUgdGhlIG9yaWdpbmFsIGVycm9yIHRvIHRoZSBuZXcgcGxhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNvdXJjZSBlcnJvcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdGFyZ2V0IGVycm9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDdHh0R2V0TGFzdEVycm9yIi8+eG1sQ3R4dEdldExhc3RFcnJvciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxFcnJvclB0ciI+eG1sRXJyb3JQdHI8L2E+CXhtbEN0eHRHZXRMYXN0RXJyb3IJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkdldCB0aGUgbGFzdCBwYXJzaW5nIGVycm9yIHJlZ2lzdGVyZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBubyBlcnJvciBvY2N1cmVkIG9yIGEgcG9pbnRlciB0byB0aGUgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVzZXRMYXN0RXJyb3IiLz54bWxDdHh0UmVzZXRMYXN0RXJyb3IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEN0eHRSZXNldExhc3RFcnJvcgkJKHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPkNsZWFudXAgdGhlIGxhc3QgZ2xvYmFsIGVycm9yIHJlZ2lzdGVyZWQuIEZvciBwYXJzaW5nIGVycm9yIHRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSB3ZWxsLWZvcm1lZG5lc3MgcmVzdWx0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxHZXRMYXN0RXJyb3IiLz54bWxHZXRMYXN0RXJyb3IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPgl4bWxHZXRMYXN0RXJyb3IJCSh2b2lkKTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGxhc3QgZ2xvYmFsIGVycm9yIHJlZ2lzdGVyZWQuIFRoaXMgaXMgcGVyIHRocmVhZCBpZiBjb21waWxlZCB3aXRoIHRocmVhZCBzdXBwb3J0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBubyBlcnJvciBvY2N1cmVkIG9yIGEgcG9pbnRlciB0byB0aGUgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJFcnJvciIvPnhtbFBhcnNlckVycm9yICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZXJFcnJvcgkJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+RGlzcGxheSBhbmQgZm9ybWF0IGFuIGVycm9yIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQgZXh0cmEgcGFyYW1ldGVycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlclByaW50RmlsZUNvbnRleHQiLz54bWxQYXJzZXJQcmludEZpbGVDb250ZXh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlucHV0KTxici8+Cis8L3ByZT48cD5EaXNwbGF5cyBjdXJyZW50IGNvbnRleHQgd2l0aGluIHRoZSBpbnB1dCBjb250ZW50IGZvciBlcnJvciB0cmFja2luZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJQcmludEZpbGVJbmZvIi8+eG1sUGFyc2VyUHJpbnRGaWxlSW5mbyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VyUHJpbnRGaWxlSW5mbwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPGJyLz4KKzwvcHJlPjxwPkRpc3BsYXlzIHRoZSBhc3NvY2lhdGVkIGZpbGUgYW5kIGxpbmUgaW5mb3JtYXRpb25zIGZvciB0aGUgY3VycmVudCBpbnB1dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJWYWxpZGl0eUVycm9yIi8+eG1sUGFyc2VyVmFsaWRpdHlFcnJvciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VyVmFsaWRpdHlFcnJvcgkJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5EaXNwbGF5IGFuZCBmb3JtYXQgYW4gdmFsaWRpdHkgZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nIi8+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmcJKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5EaXNwbGF5IGFuZCBmb3JtYXQgYSB2YWxpZGl0eSB3YXJuaW5nIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQgZXh0cmEgcGFyYW1ldGVycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFBhcnNlcldhcm5pbmciLz54bWxQYXJzZXJXYXJuaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZXJXYXJuaW5nCQkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPkRpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVzZXRFcnJvciIvPnhtbFJlc2V0RXJyb3IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlc2V0RXJyb3IJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gZXJyKTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBlcnJvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVzZXRMYXN0RXJyb3IiLz54bWxSZXNldExhc3RFcnJvciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVzZXRMYXN0RXJyb3IJCSh2b2lkKTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBsYXN0IGdsb2JhbCBlcnJvciByZWdpc3RlcmVkLiBGb3IgcGFyc2luZyBlcnJvciB0aGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgd2VsbC1mb3JtZWRuZXNzIHJlc3VsdC48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2V0R2VuZXJpY0Vycm9yRnVuYyIvPnhtbFNldEdlbmVyaWNFcnJvckZ1bmMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNldEdlbmVyaWNFcnJvckZ1bmMJCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPiBoYW5kbGVyKTxici8+Cis8L3ByZT48cD5GdW5jdGlvbiB0byByZXNldCB0aGUgaGFuZGxlciBhbmQgdGhlIGVycm9yIGNvbnRleHQgZm9yIG91dCBvZiBjb250ZXh0IGVycm9yIG1lc3NhZ2VzLiBUaGlzIHNpbXBseSBtZWFucyB0aGF0IEBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkIGZvciBzdWJzZXF1ZW50IGVycm9yIG1lc3NhZ2VzIHdoaWxlIG5vdCBwYXJzaW5nIG5vciB2YWxpZGF0aW5nLiBBbmQgQGN0eCB3aWxsIGJlIHBhc3NlZCBhcyBmaXJzdCBhcmd1bWVudCB0byBAaGFuZGxlciBPbmUgY2FuIHNpbXBseSBmb3JjZSBtZXNzYWdlcyB0byBiZSBlbWl0dGVkIHRvIGFub3RoZXIgRklMRSAqIHRoYW4gc3RkZXJyIGJ5IHNldHRpbmcgQGN0eCB0byB0aGlzIGZpbGUgaGFuZGxlIGFuZCBAaGFuZGxlciB0byBOVUxMLiBGb3IgbXVsdGktdGhyZWFkZWQgYXBwbGljYXRpb25zLCB0aGlzIG11c3QgYmUgc2V0IHNlcGFyYXRlbHkgZm9yIGVhY2ggdGhyZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGVycm9yIGhhbmRsaW5nIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgaGFuZGxlciBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiLz54bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBoYW5kbGVyKTxici8+Cis8L3ByZT48cD5GdW5jdGlvbiB0byByZXNldCB0aGUgaGFuZGxlciBhbmQgdGhlIGVycm9yIGNvbnRleHQgZm9yIG91dCBvZiBjb250ZXh0IHN0cnVjdHVyZWQgZXJyb3IgbWVzc2FnZXMuIFRoaXMgc2ltcGx5IG1lYW5zIHRoYXQgQGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgZm9yIHN1YnNlcXVlbnQgZXJyb3IgbWVzc2FnZXMgd2hpbGUgbm90IHBhcnNpbmcgbm9yIHZhbGlkYXRpbmcuIEFuZCBAY3R4IHdpbGwgYmUgcGFzc2VkIGFzIGZpcnN0IGFyZ3VtZW50IHRvIEBoYW5kbGVyIEZvciBtdWx0aS10aHJlYWRlZCBhcHBsaWNhdGlvbnMsIHRoaXMgbXVzdCBiZSBzZXQgc2VwYXJhdGVseSBmb3IgZWFjaCB0aHJlYWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgZXJyb3IgaGFuZGxpbmcgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBoYW5kbGVyIGZ1bmN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sZXhwb3J0cy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbGV4cG9ydHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGVlNGI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbGV4cG9ydHMuaHRtbApAQCAtMCwwICsxLDg3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnhtbGV4cG9ydHM6IG1hY3JvcyBmb3IgbWFya2luZyBzeW1ib2xzIGFzIGV4cG9ydGFibGUvaW1wb3J0YWJsZS48L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+eG1sZXhwb3J0czwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnhtbGV4cG9ydHMgLSBtYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuPC9wPgorICAgIDxwPm1hY3JvcyBmb3IgbWFya2luZyBzeW1ib2xzIGFzIGV4cG9ydGFibGUvaW1wb3J0YWJsZS4gPC9wPgorICAgIDxwPkF1dGhvcihzKTogSWdvciBabGF0b3ZpYyAmbHQ7aWdvckB6bGF0a292aWMuY29tJmd0OyA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj4jZGVmaW5lIDxhIGhyZWY9IiNfUkVFTlRSQU5UIj5fUkVFTlRSQU5UPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1hNTENERUNMIj5YTUxDREVDTDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxQVUJWQVIiPlhNTFBVQlZBUjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfRExMX0lNUE9SVCI+TElCWE1MX0RMTF9JTVBPUlQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MQ0FMTCI+WE1MQ0FMTDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxQVUJGVU4iPlhNTFBVQkZVTjwvYT47Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX0RMTF9JTVBPUlQiPk1hY3JvIDwvYT5MSUJYTUxfRExMX0lNUE9SVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9ETExfSU1QT1JUIj5MSUJYTUxfRExMX0lNUE9SVDwvYT47Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MQ0FMTCI+TWFjcm8gPC9hPlhNTENBTEw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxDQUxMIj5YTUxDQUxMPC9hPjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxDREVDTCI+TWFjcm8gPC9hPlhNTENERUNMPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MQ0RFQ0wiPlhNTENERUNMPC9hPjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYTUxQVUJGVU4iPk1hY3JvIDwvYT5YTUxQVUJGVU48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxQVUJGVU4iPlhNTFBVQkZVTjwvYT47Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MUFVCVkFSIj5NYWNybyA8L2E+WE1MUFVCVkFSPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MUFVCVkFSIj5YTUxQVUJWQVI8L2E+OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9Il9SRUVOVFJBTlQiPk1hY3JvIDwvYT5fUkVFTlRSQU5UPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjX1JFRU5UUkFOVCI+X1JFRU5UUkFOVDwvYT47Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sbWVtb3J5Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sbWVtb3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYxMDUzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxtZW1vcnkuaHRtbApAQCAtMCwwICsxLDE4NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT54bWxtZW1vcnk6IGludGVyZmFjZSBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3I8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXhtbGV4cG9ydHMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteG1sbW9kdWxlLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj54bWxtZW1vcnk8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD54bWxtZW1vcnkgLSBpbnRlcmZhY2UgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yPC9wPgorICAgIDxwPnByb3ZpZGVzIGludGVyZmFjZXMgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yLCBpbmNsdWRpbmcgZGVidWdnaW5nIGNhcGFiaWxpdGllcy4gPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI3htbFJlYWxsb2MiPnhtbFJlYWxsb2M8L2E+OworI2RlZmluZSA8YSBocmVmPSIjeG1sTWFsbG9jIj54bWxNYWxsb2M8L2E+OworI2RlZmluZSA8YSBocmVmPSIjeG1sTWFsbG9jQXRvbWljIj54bWxNYWxsb2NBdG9taWM8L2E+OworI2RlZmluZSA8YSBocmVmPSIjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+OworI2RlZmluZSA8YSBocmVmPSIjeG1sTWVtU3RyZHVwIj54bWxNZW1TdHJkdXA8L2E+Owordm9pZCAqCTxhIGhyZWY9IiN4bWxNZW1SZWFsbG9jIj54bWxNZW1SZWFsbG9jPC9hPgkJCSh2b2lkICogcHRyLCA8YnIvPgkJCQkJIHNpemVfdCBzaXplKTsKK2ludAk8YSBocmVmPSIjeG1sSW5pdE1lbW9yeSI+eG1sSW5pdE1lbW9yeTwvYT4JCQkodm9pZCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxNZW1GcmVlIj54bWxNZW1GcmVlPC9hPgkJCSh2b2lkICogcHRyKTsKK3ZvaWQgKgk8YSBocmVmPSIjeG1sTWVtTWFsbG9jIj54bWxNZW1NYWxsb2M8L2E+CQkJKHNpemVfdCBzaXplKTsKK3ZvaWQJPGEgaHJlZj0iI3htbE1lbURpc3BsYXlMYXN0Ij54bWxNZW1EaXNwbGF5TGFzdDwvYT4JCShGSUxFICogZnAsIDxici8+CQkJCQkgbG9uZyBuYkJ5dGVzKTsKK2ludAk8YSBocmVmPSIjeG1sTWVtR2V0Ij54bWxNZW1HZXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiAqIGZyZWVGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gKiBtYWxsb2NGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPiAqIHJlYWxsb2NGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gKiBzdHJkdXBGdW5jKTsKK3ZvaWQJPGEgaHJlZj0iI3htbE1lbW9yeUR1bXAiPnhtbE1lbW9yeUR1bXA8L2E+CQkJKHZvaWQpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxNYWxsb2NMb2MiPnhtbE1hbGxvY0xvYzwvYT4JCQkoc2l6ZV90IHNpemUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxici8+CQkJCQkgaW50IGxpbmUpOwordm9pZAk8YSBocmVmPSIjeG1sTWVtRGlzcGxheSI+eG1sTWVtRGlzcGxheTwvYT4JCQkoRklMRSAqIGZwKTsKK2ludAk8YSBocmVmPSIjeG1sTWVtQmxvY2tzIj54bWxNZW1CbG9ja3M8L2E+CQkJKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxHY01lbUdldCI+eG1sR2NNZW1HZXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiAqIGZyZWVGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gKiBtYWxsb2NGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gKiBtYWxsb2NBdG9taWNGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPiAqIHJlYWxsb2NGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gKiBzdHJkdXBGdW5jKTsKK3R5cGVkZWYgY2hhciAqIDxhIGhyZWY9IiN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPgkJCShjb25zdCBjaGFyICogc3RyKTsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPgkJCSh2b2lkICogbWVtKTsKK3ZvaWQJPGEgaHJlZj0iI3htbE1lbVNob3ciPnhtbE1lbVNob3c8L2E+CQkJKEZJTEUgKiBmcCwgPGJyLz4JCQkJCSBpbnQgbnIpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxNYWxsb2NBdG9taWNMb2MiPnhtbE1hbGxvY0F0b21pY0xvYzwvYT4JCShzaXplX3Qgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyLz4JCQkJCSBpbnQgbGluZSk7Cit2b2lkICoJPGEgaHJlZj0iI3htbFJlYWxsb2NMb2MiPnhtbFJlYWxsb2NMb2M8L2E+CQkJKHZvaWQgKiBwdHIsIDxici8+CQkJCQkgc2l6ZV90IHNpemUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxici8+CQkJCQkgaW50IGxpbmUpOwordm9pZAk8YSBocmVmPSIjeG1sQ2xlYW51cE1lbW9yeSI+eG1sQ2xlYW51cE1lbW9yeTwvYT4JCSh2b2lkKTsKK2ludAk8YSBocmVmPSIjeG1sTWVtVXNlZCI+eG1sTWVtVXNlZDwvYT4JCQkodm9pZCk7CitpbnQJPGEgaHJlZj0iI3htbE1lbVNldHVwIj54bWxNZW1TZXR1cDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+IGZyZWVGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gbWFsbG9jRnVuYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT4gcmVhbGxvY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPiBzdHJkdXBGdW5jKTsKK3R5cGVkZWYgdm9pZCAqIDxhIGhyZWY9IiN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+CQkJKHZvaWQgKiBtZW0sIDxici8+CQkJCQkgc2l6ZV90IHNpemUpOwordHlwZWRlZiB2b2lkICogPGEgaHJlZj0iI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+CQkJKHNpemVfdCBzaXplKTsKK2ludAk8YSBocmVmPSIjeG1sR2NNZW1TZXR1cCI+eG1sR2NNZW1TZXR1cDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+IGZyZWVGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gbWFsbG9jRnVuYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+IG1hbGxvY0F0b21pY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+IHJlYWxsb2NGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gc3RyZHVwRnVuYyk7CitjaGFyICoJPGEgaHJlZj0iI3htbE1lbW9yeVN0cmR1cCI+eG1sTWVtb3J5U3RyZHVwPC9hPgkJCShjb25zdCBjaGFyICogc3RyKTsKK2NoYXIgKgk8YSBocmVmPSIjeG1sTWVtU3RyZHVwTG9jIj54bWxNZW1TdHJkdXBMb2M8L2E+CQkJKGNvbnN0IGNoYXIgKiBzdHIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxici8+CQkJCQkgaW50IGxpbmUpOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkRFQlVHX01FTU9SWSI+TWFjcm8gPC9hPkRFQlVHX01FTU9SWTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0RFQlVHX01FTU9SWSI+REVCVUdfTUVNT1JZPC9hPjsKKzwvcHJlPjxwPjxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+IHJlcGxhY2VzIHRoZSBhbGxvY2F0b3Igd2l0aCBhIGNvbGxlY3QgYW5kIGRlYnVnIHNoZWxsIHRvIHRoZSBsaWJjIGFsbG9jYXRvci4gPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCNERUJVR19NRU1PUlkiPkRFQlVHX01FTU9SWTwvYT4gc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIHdoZW4gZGVidWdnaW5nIGxpYnhtbCBpLmUuIGlmIGxpYnhtbCBoYXMgYmVlbiBjb25maWd1cmVkIHdpdGggLS13aXRoLWRlYnVnLW1lbSB0b28uICNkZWZpbmUgREVCVUdfTUVNT1JZX0ZSRUVEICNkZWZpbmUgPGEgaHJlZj0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjREVCVUdfTUVNT1JZX0xPQ0FUSU9OIj5ERUJVR19NRU1PUllfTE9DQVRJT048L2E+PC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxGcmVlRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZUZ1bmMJCQkodm9pZCAqIG1lbSk8YnIvPgorPC9wcmU+PHA+U2lnbmF0dXJlIGZvciBhIGZyZWUoKSBpbXBsZW1lbnRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1lbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYWxyZWFkeSBhbGxvY2F0ZWQgYmxvY2sgb2YgbWVtb3J5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTWFsbG9jRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sTWFsbG9jRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxNYWxsb2NGdW5jCQkJKHNpemVfdCBzaXplKTxici8+Cis8L3ByZT48cD5TaWduYXR1cmUgZm9yIGEgbWFsbG9jKCkgaW1wbGVtZW50YXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSByZXF1ZXN0ZWQgaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIGJsb2NrIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFsbG9jRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sUmVhbGxvY0Z1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sUmVhbGxvY0Z1bmMJCQkodm9pZCAqIG1lbSwgPGJyLz4JCQkJCSBzaXplX3Qgc2l6ZSk8YnIvPgorPC9wcmU+PHA+U2lnbmF0dXJlIGZvciBhIHJlYWxsb2MoKSBpbXBsZW1lbnRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1lbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYWxyZWFkeSBhbGxvY2F0ZWQgYmxvY2sgb2YgbWVtb3J5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHNpemUgcmVxdWVzdGVkIGluIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ld2x5IHJlYWxsb2NhdGVkIGJsb2NrIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJkdXBGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxTdHJkdXBGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y2hhciAqCXhtbFN0cmR1cEZ1bmMJCQkoY29uc3QgY2hhciAqIHN0cik8YnIvPgorPC9wcmU+PHA+U2lnbmF0dXJlIGZvciBhbiBzdHJkdXAoKSBpbXBsZW1lbnRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29weSBvZiB0aGUgc3RyaW5nIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwTWVtb3J5Ii8+eG1sQ2xlYW51cE1lbW9yeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYW51cE1lbW9yeQkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdXAgYWxsIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSBsaWJyYXJ5IGZvciBpdHMgb3duIHVzZS4gVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBieSB1c2VyIGxldmVsIGNvZGUuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdjTWVtR2V0Ii8+eG1sR2NNZW1HZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2NNZW1HZXQJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+ICogZnJlZUZ1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPiAqIG1hbGxvY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPiAqIG1hbGxvY0F0b21pY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+ICogcmVhbGxvY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPiAqIHN0cmR1cEZ1bmMpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucyBzZXQgY3VycmVudGx5IGluIHVzZSBUaGUgbWFsbG9jQXRvbWljRnVuYyBpcyBzcGVjaWFsaXplZCBmb3IgYXRvbWljIGJsb2NrIGFsbG9jYXRpb25zIChpLmUuIG9mIGFyZWFzIHVzZWZ1bCBmb3IgZ2FyYmFnZSBjb2xsZWN0ZWQgbWVtb3J5IGFsbG9jYXRvcnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyZWVGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSBmcmVlKCkgZnVuY3Rpb24gaW4gdXNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYWxsb2NGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSBtYWxsb2MoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1hbGxvY0F0b21pY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIGF0b21pYyBtYWxsb2MoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWxsb2NGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSByZWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJkdXBGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSBzdHJkdXAoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb24gc3VjY2VzczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdjTWVtU2V0dXAiLz54bWxHY01lbVNldHVwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEdjTWVtU2V0dXAJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+IGZyZWVGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gbWFsbG9jRnVuYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+IG1hbGxvY0F0b21pY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+IHJlYWxsb2NGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gc3RyZHVwRnVuYyk8YnIvPgorPC9wcmU+PHA+T3ZlcnJpZGUgdGhlIGRlZmF1bHQgbWVtb3J5IGFjY2VzcyBmdW5jdGlvbnMgd2l0aCBhIG5ldyBzZXQgVGhpcyBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgbGlieG1sIHJvdXRpbmVzICEgVGhlIG1hbGxvY0F0b21pY0Z1bmMgaXMgc3BlY2lhbGl6ZWQgZm9yIGF0b21pYyBibG9jayBhbGxvY2F0aW9ucyAoaS5lLiBvZiBhcmVhcyB1c2VmdWwgZm9yIGdhcmJhZ2UgY29sbGVjdGVkIG1lbW9yeSBhbGxvY2F0b3JzIFNob3VsZCB0aGlzIGJlIGJsb2NrZWQgaWYgdGhlcmUgd2FzIGFscmVhZHkgc29tZSBhbGxvY2F0aW9ucyBkb25lID88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyZWVGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnJlZSgpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWFsbG9jRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1hbGxvYygpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWFsbG9jQXRvbWljRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1hbGxvYygpIGZ1bmN0aW9uIHRvIHVzZSBmb3IgYXRvbWljIGFsbG9jYXRpb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFsbG9jRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlYWxsb2MoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmR1cEZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJkdXAoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb24gc3VjY2VzczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEluaXRNZW1vcnkiLz54bWxJbml0TWVtb3J5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEluaXRNZW1vcnkJCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgbWVtb3J5IGxheWVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvbiBzdWNjZXNzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTWFsbG9jQXRvbWljTG9jIi8+eG1sTWFsbG9jQXRvbWljTG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE1hbGxvY0F0b21pY0xvYwkJKHNpemVfdCBzaXplLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlLCA8YnIvPgkJCQkJIGludCBsaW5lKTxici8+Cis8L3ByZT48cD5hIG1hbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNYWxsb2NMb2MiLz54bWxNYWxsb2NMb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTWFsbG9jTG9jCQkJKHNpemVfdCBzaXplLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlLCA8YnIvPgkJCQkJIGludCBsaW5lKTxici8+Cis8L3ByZT48cD5hIG1hbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNZW1CbG9ja3MiLz54bWxNZW1CbG9ja3MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTWVtQmxvY2tzCQkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBudW1iZXIgb2YgbWVtb3J5IGFyZWFzIGN1cnJlbnRseSBhbGxvY2F0ZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludCByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBibG9ja3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNZW1EaXNwbGF5Ii8+eG1sTWVtRGlzcGxheSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTWVtRGlzcGxheQkJCShGSUxFICogZnApPGJyLz4KKzwvcHJlPjxwPnNob3cgaW4tZXh0ZW5zbyB0aGUgbWVtb3J5IGJsb2NrcyBhbGxvY2F0ZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIEZJTEUgZGVzY3JpcHRvciB1c2VkIGFzIHRoZSBvdXRwdXQgZmlsZSwgaWYgTlVMTCwgdGhlIHJlc3VsdCBpcyB3cml0dGVuIHRvIHRoZSBmaWxlIC5tZW1vcnlsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTWVtRGlzcGxheUxhc3QiLz54bWxNZW1EaXNwbGF5TGFzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTWVtRGlzcGxheUxhc3QJCShGSUxFICogZnAsIDxici8+CQkJCQkgbG9uZyBuYkJ5dGVzKTxici8+Cis8L3ByZT48cD50aGUgbGFzdCBuYkJ5dGVzIG9mIG1lbW9yeSBhbGxvY2F0ZWQgYW5kIG5vdCBmcmVlZCwgdXNlZnVsIGZvciBkdW1waW5nIHRoZSBtZW1vcnkgbGVmdCBhbGxvY2F0ZWQgYmV0d2VlbiB0d28gcGxhY2VzIGF0IHJ1bnRpbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBGSUxFIGRlc2NyaXB0b3IgdXNlZCBhcyB0aGUgb3V0cHV0IGZpbGUsIGlmIE5VTEwsIHRoZSByZXN1bHQgaXMgd3JpdHRlbiB0byB0aGUgZmlsZSAubWVtb3J5bGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJCeXRlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gZHVtcDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1lbUZyZWUiLz54bWxNZW1GcmVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxNZW1GcmVlCQkJKHZvaWQgKiBwdHIpPGJyLz4KKzwvcHJlPjxwPmEgZnJlZSgpIGVxdWl2YWxlbnQsIHdpdGggZXJyb3IgY2hlY2tpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZW1vcnkgYmxvY2sgcG9pbnRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1lbUdldCIvPnhtbE1lbUdldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxNZW1HZXQJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+ICogZnJlZUZ1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPiAqIG1hbGxvY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+ICogcmVhbGxvY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPiAqIHN0cmR1cEZ1bmMpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucyBzZXQgY3VycmVudGx5IGluIHVzZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJlZUZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIGZyZWUoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1hbGxvY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIG1hbGxvYygpIGZ1bmN0aW9uIGluIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhbGxvY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIHJlYWxsb2MoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmR1cEZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIHN0cmR1cCgpIGZ1bmN0aW9uIGluIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvbiBzdWNjZXNzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTWVtTWFsbG9jIi8+eG1sTWVtTWFsbG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE1lbU1hbGxvYwkJCShzaXplX3Qgc2l6ZSk8YnIvPgorPC9wcmU+PHA+YSBtYWxsb2MoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNZW1SZWFsbG9jIi8+eG1sTWVtUmVhbGxvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxNZW1SZWFsbG9jCQkJKHZvaWQgKiBwdHIsIDxici8+CQkJCQkgc2l6ZV90IHNpemUpPGJyLz4KKzwvcHJlPjxwPmEgcmVhbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBtZW1vcnkgYmxvY2sgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1lbVNldHVwIi8+eG1sTWVtU2V0dXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTWVtU2V0dXAJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+IGZyZWVGdW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gbWFsbG9jRnVuYywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT4gcmVhbGxvY0Z1bmMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPiBzdHJkdXBGdW5jKTxici8+Cis8L3ByZT48cD5PdmVycmlkZSB0aGUgZGVmYXVsdCBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucyB3aXRoIGEgbmV3IHNldCBUaGlzIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBsaWJ4bWwgcm91dGluZXMgISBTaG91bGQgdGhpcyBiZSBibG9ja2VkIGlmIHRoZXJlIHdhcyBhbHJlYWR5IHNvbWUgYWxsb2NhdGlvbnMgZG9uZSA/PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcmVlRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZyZWUoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1hbGxvY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtYWxsb2MoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWxsb2NGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVhbGxvYygpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZHVwRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmR1cCgpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvbiBzdWNjZXNzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTWVtU2hvdyIvPnhtbE1lbVNob3cgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE1lbVNob3cJCQkoRklMRSAqIGZwLCA8YnIvPgkJCQkJIGludCBucik8YnIvPgorPC9wcmU+PHA+c2hvdyBhIHNob3cgZGlzcGxheSBvZiB0aGUgbWVtb3J5IGFsbG9jYXRlZCwgYW5kIGR1bXAgdGhlIEBuciBsYXN0IGFsbG9jYXRlZCBhcmVhcyB3aGljaCB3ZXJlIG5vdCBmcmVlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgRklMRSBkZXNjcmlwdG9yIHVzZWQgYXMgdGhlIG91dHB1dCBmaWxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ucjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bnVtYmVyIG9mIGVudHJpZXMgdG8gZHVtcDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1lbVN0cmR1cExvYyIvPnhtbE1lbVN0cmR1cExvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNoYXIgKgl4bWxNZW1TdHJkdXBMb2MJCQkoY29uc3QgY2hhciAqIHN0ciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyLz4JCQkJCSBpbnQgbGluZSk8YnIvPgorPC9wcmU+PHA+YSBzdHJkdXAoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluaXRpYWwgc3RyaW5nIHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpZiBhbGxvY2F0aW9uIGVycm9yIG9jY3VycmVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1lbVVzZWQiLz54bWxNZW1Vc2VkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE1lbVVzZWQJCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIGFtb3VudCBvZiBtZW1vcnkgY3VycmVudGx5IGFsbG9jYXRlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHJlcHJlc2VudGluZyB0aGUgYW1vdW50IG9mIG1lbW9yeSBhbGxvY2F0ZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTWVtb3J5RHVtcCIvPnhtbE1lbW9yeUR1bXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE1lbW9yeUR1bXAJCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+RHVtcCBpbi1leHRlbnNvIHRoZSBtZW1vcnkgYmxvY2tzIGFsbG9jYXRlZCB0byB0aGUgZmlsZSAubWVtb3J5bGlzdDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNZW1vcnlTdHJkdXAiLz54bWxNZW1vcnlTdHJkdXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jaGFyICoJeG1sTWVtb3J5U3RyZHVwCQkJKGNvbnN0IGNoYXIgKiBzdHIpPGJyLz4KKzwvcHJlPjxwPmEgc3RyZHVwKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIHN0cmluZyBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpZiBhbGxvY2F0aW9uIGVycm9yIG9jY3VycmVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlYWxsb2NMb2MiLz54bWxSZWFsbG9jTG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbFJlYWxsb2NMb2MJCQkodm9pZCAqIHB0ciwgPGJyLz4JCQkJCSBzaXplX3Qgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyLz4JCQkJCSBpbnQgbGluZSk8YnIvPgorPC9wcmU+PHA+YSByZWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIG1lbW9yeSBibG9jayBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saW5lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGluZSBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbG1vZHVsZS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbG1vZHVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NGNkOTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sbW9kdWxlLmh0bWwKQEAgLTAsMCArMSw5NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT54bWxtb2R1bGU6IGR5bmFtaWMgbW9kdWxlIGxvYWRpbmc8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnhtbG1vZHVsZTwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnhtbG1vZHVsZSAtIGR5bmFtaWMgbW9kdWxlIGxvYWRpbmc8L3A+CisgICAgPHA+YmFzaWMgQVBJIGZvciBkeW5hbWljIG1vZHVsZSBsb2FkaW5nLCB1c2VkIGJ5IGxpYmV4c2x0IGFkZGVkIGluIDIuNi4xNyA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBKb2VsIFcuIFJlZWQgPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij4KKyAgICAgIDxoMj5TeW5vcHNpczwvaDI+CisgICAgICA8cHJlIGNsYXNzPSJzeW5vcHNpcyI+dHlwZWRlZiBzdHJ1Y3QgX3htbE1vZHVsZSA8YSBocmVmPSIjeG1sTW9kdWxlIj54bWxNb2R1bGU8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZSI+eG1sTW9kdWxlPC9hPiAqIDxhIGhyZWY9IiN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbE1vZHVsZU9wdGlvbiI+eG1sTW9kdWxlT3B0aW9uPC9hPjsKK2ludAk8YSBocmVmPSIjeG1sTW9kdWxlRnJlZSI+eG1sTW9kdWxlRnJlZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4gbW9kdWxlKTsKK2ludAk8YSBocmVmPSIjeG1sTW9kdWxlU3ltYm9sIj54bWxNb2R1bGVTeW1ib2w8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlUHRyIj54bWxNb2R1bGVQdHI8L2E+IG1vZHVsZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbmFtZSwgPGJyLz4JCQkJCSB2b2lkICoqIHN5bWJvbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVB0ciI+eG1sTW9kdWxlUHRyPC9hPgk8YSBocmVmPSIjeG1sTW9kdWxlT3BlbiI+eG1sTW9kdWxlT3BlbjwvYT4JCShjb25zdCBjaGFyICogbmFtZSwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI3htbE1vZHVsZUNsb3NlIj54bWxNb2R1bGVDbG9zZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4gbW9kdWxlKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNb2R1bGUiPlN0cnVjdHVyZSA8L2E+eG1sTW9kdWxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxNb2R1bGUgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbE1vZHVsZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNb2R1bGVPcHRpb24iPkVudW0gPC9hPnhtbE1vZHVsZU9wdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbE1vZHVsZU9wdGlvbiI+eG1sTW9kdWxlT3B0aW9uPC9hPiB7CisgICAgPGEgbmFtZT0iWE1MX01PRFVMRV9MQVpZIj5YTUxfTU9EVUxFX0xBWlk8L2E+ID0gMSAvKiBsYXp5IGJpbmRpbmcgKi8KKyAgICA8YSBuYW1lPSJYTUxfTU9EVUxFX0xPQ0FMIj5YTUxfTU9EVUxFX0xPQ0FMPC9hPiA9IDIgLyogIGxvY2FsIGJpbmRpbmcgKi8KK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTW9kdWxlUHRyIj5UeXBlZGVmIDwvYT54bWxNb2R1bGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZSI+eG1sTW9kdWxlPC9hPiAqIHhtbE1vZHVsZVB0cjsKKzwvcHJlPjxwPkEgaGFuZGxlIHRvIGEgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZTwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxNb2R1bGVDbG9zZSIvPnhtbE1vZHVsZUNsb3NlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE1vZHVsZUNsb3NlCQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlUHRyIj54bWxNb2R1bGVQdHI8L2E+IG1vZHVsZSk8YnIvPgorPC9wcmU+PHA+VGhlIGNsb3NlIG9wZXJhdGlvbnMgdW5sb2FkIHRoZSBhc3NvY2lhdGVkIG1vZHVsZSBhbmQgZnJlZSB0aGUgZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSBtb2R1bGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tb2R1bGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtb2R1bGUgaGFuZGxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBhcmd1bWVudCBlcnJvciBhbmQgLTIgaWYgdGhlIG1vZHVsZSBjb3VsZCBub3QgYmUgY2xvc2VkL3VubG9hZGVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1vZHVsZUZyZWUiLz54bWxNb2R1bGVGcmVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE1vZHVsZUZyZWUJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4gbW9kdWxlKTxici8+Cis8L3ByZT48cD5UaGUgZnJlZSBvcGVyYXRpb25zIGZyZWUgdGhlIGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgbW9kdWxlIGJ1dCBkb2VzIG5vdCB1bmxvYWQgdGhlIGFzc29jaWF0ZWQgc2hhcmVkIGxpYnJhcnkgd2hpY2ggbWF5IHN0aWxsIGJlIGluIHVzZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vZHVsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1vZHVsZSBoYW5kbGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGFyZ3VtZW50IGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTW9kdWxlT3BlbiIvPnhtbE1vZHVsZU9wZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVB0ciI+eG1sTW9kdWxlUHRyPC9hPgl4bWxNb2R1bGVPcGVuCQkoY29uc3QgY2hhciAqIG5hbWUsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPk9wZW5zIGEgbW9kdWxlL3NoYXJlZCBsaWJyYXJ5IGdpdmVuIGl0cyBuYW1lIG9yIHBhdGggVE9ETzogb3B0aW9ucyBhcmUgbm90IHlldCBpbXBsZW1lbnRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtb2R1bGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgPGEgaHJlZj0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcHRpb24iPnhtbE1vZHVsZU9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgaGFuZGxlIGZvciB0aGUgbW9kdWxlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE1vZHVsZVN5bWJvbCIvPnhtbE1vZHVsZVN5bWJvbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxNb2R1bGVTeW1ib2wJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4gbW9kdWxlLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIvPgkJCQkJIHZvaWQgKiogc3ltYm9sKTxici8+Cis8L3ByZT48cD5Mb29rdXAgZm9yIGEgc3ltYm9sIGFkZHJlc3MgaW4gdGhlIGdpdmVuIG1vZHVsZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bW9kdWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbW9kdWxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgc3ltYm9sPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeW1ib2w8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgc3ltYm9sIGFkZHJlc3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIHN5bWJvbCB3YXMgZm91bmQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxyZWFkZXIuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxyZWFkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWNmNzA0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHJlYWRlci5odG1sCkBAIC0wLDAgKzEsNTYwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnhtbHJlYWRlcjogdGhlIFhNTFJlYWRlciBpbXBsZW1lbnRhdGlvbjwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteG1sbW9kdWxlLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+eG1scmVhZGVyPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+eG1scmVhZGVyIC0gdGhlIFhNTFJlYWRlciBpbXBsZW1lbnRhdGlvbjwvcD4KKyAgICA8cD5BUEkgb2YgdGhlIFhNTCBzdHJlYW1pbmcgQVBJIGJhc2VkIG9uIEMjIGludGVyZmFjZXMuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlciI+eG1sVGV4dFJlYWRlcjwvYT4gKiA8YSBocmVmPSIjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFBhcnNlclNldmVyaXRpZXMiPnhtbFBhcnNlclNldmVyaXRpZXM8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxQYXJzZXJQcm9wZXJ0aWVzIj54bWxQYXJzZXJQcm9wZXJ0aWVzPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sVGV4dFJlYWRlck1vZGUiPnhtbFRleHRSZWFkZXJNb2RlPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxUZXh0UmVhZGVyIDxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyIj54bWxUZXh0UmVhZGVyPC9hPjsKK3R5cGVkZWYgdm9pZCAqIDxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+OwordHlwZWRlZiBlbnVtIDxhIGhyZWY9IiN4bWxSZWFkZXJUeXBlcyI+eG1sUmVhZGVyVHlwZXM8L2E+OworPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIj54bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWU8L2E+CShjb25zdCBjaGFyICogVVJJKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMiPnhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIj54bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JPGEgaHJlZj0iI3htbFJlYWRlckZvckZpbGUiPnhtbFJlYWRlckZvckZpbGU8L2E+CShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCQkgaW50IG9wdGlvbnMpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmkiPnhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckN1cnJlbnREb2MiPnhtbFRleHRSZWFkZXJDdXJyZW50RG9jPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlciI+eG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckV4cGFuZCI+eG1sVGV4dFJlYWRlckV4cGFuZDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclhtbExhbmciPnhtbFRleHRSZWFkZXJYbWxMYW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZGVyRm9yRG9jIj54bWxSZWFkZXJGb3JEb2M8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sUmVhZGVyTmV3SU8iPnhtbFJlYWRlck5ld0lPPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJDbG9zZSI+eG1sVGV4dFJlYWRlckNsb3NlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCI+eG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmciPnhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGludCBwcm9wKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclF1b3RlQ2hhciI+eG1sVGV4dFJlYWRlclF1b3RlQ2hhcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJTZXRTY2hlbWE8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+IHNjaGVtYSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJWYWx1ZSI+eG1sVGV4dFJlYWRlclZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVySXNWYWxpZCI+eG1sVGV4dFJlYWRlcklzVmFsaWQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlciI+eG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUiPnhtbFRleHRSZWFkZXJDb25zdFZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3VGV4dFJlYWRlciI+eG1sTmV3VGV4dFJlYWRlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBVUkkpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJCSBpbnQgbm8pOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMiPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOczwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxOYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0TmFtZSI+eG1sVGV4dFJlYWRlckNvbnN0TmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nIj54bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24iPnhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJEZXB0aCI+eG1sVGV4dFJlYWRlckRlcHRoPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclJlYWRTdHJpbmciPnhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVySXNEZWZhdWx0Ij54bWxUZXh0UmVhZGVySXNEZWZhdWx0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxSZWFkZXJOZXdXYWxrZXIiPnhtbFJlYWRlck5ld1dhbGtlcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4Ij54bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXg8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkZXJXYWxrZXIiPnhtbFJlYWRlcldhbGtlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUiPnhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck5vZGVUeXBlIj54bWxUZXh0UmVhZGVyTm9kZVR5cGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOwordm9pZAk8YSBocmVmPSIjeG1sRnJlZVRleHRSZWFkZXIiPnhtbEZyZWVUZXh0UmVhZGVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck5hbWUiPnhtbFRleHRSZWFkZXJOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUmVhZCI+eG1sVGV4dFJlYWRlclJlYWQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQiPnhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2ludAk8YSBocmVmPSIjeG1sUmVhZGVyTmV3TWVtb3J5Ij54bWxSZWFkZXJOZXdNZW1vcnk8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJIYXNWYWx1ZSI+eG1sVGV4dFJlYWRlckhhc1ZhbHVlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaSI+eG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckJhc2VVcmkiPnhtbFRleHRSZWFkZXJCYXNlVXJpPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGludCBubyk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlciI+eG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IGxvY2F0b3IpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMiPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOczwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsb2NhbE5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJOZXh0Ij54bWxUZXh0UmVhZGVyTmV4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCI+eG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIj54bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCI+eG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkZXJGb3JJTyI+eG1sUmVhZGVyRm9ySU88L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwiPnhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWw8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJQcmVmaXgiPnhtbFRleHRSZWFkZXJQcmVmaXg8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUiPnhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPgkJKHZvaWQgKiBhcmcsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFBhcnNlclNldmVyaXRpZXMiPnhtbFBhcnNlclNldmVyaXRpZXM8L2E+IHNldmVyaXR5LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiPnhtbFRleHRSZWFkZXJMb2NhdG9yUHRyPC9hPiBsb2NhdG9yKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JPGEgaHJlZj0iI3htbFJlYWRlckZvckZkIj54bWxSZWFkZXJGb3JGZDwvYT4JKGludCBmZCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyTG9jYWxOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFRleHRSZWFkZXJQcmVzZXJ2ZSI+eG1sVGV4dFJlYWRlclByZXNlcnZlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFRleHRSZWFkZXJDdXJyZW50Tm9kZSI+eG1sVGV4dFJlYWRlckN1cnJlbnROb2RlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCI+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBpbnQgcHJvcCwgPGJyLz4JCQkJCSBpbnQgdmFsdWUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJFcnJvckZ1bmMiPnhtbFRleHRSZWFkZXJFcnJvckZ1bmM8L2E+IGYsIDxici8+CQkJCQkgdm9pZCAqIGFyZyk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7CitpbnQJPGEgaHJlZj0iI3htbFJlYWRlck5ld0RvYyI+eG1sUmVhZGVyTmV3RG9jPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwYXR0ZXJuLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbmFtZXNwYWNlcyk7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJDb25zdFhtbExhbmciPnhtbFRleHRSZWFkZXJDb25zdFhtbExhbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik7Cit2b2lkCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyIj54bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPiAqIGYsIDxici8+CQkJCQkgdm9pZCAqKiBhcmcpOwordm9pZAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBmLCA8YnIvPgkJCQkJCSB2b2lkICogYXJnKTsKK2ludAk8YSBocmVmPSIjeG1sUmVhZGVyTmV3RmlsZSI+eG1sUmVhZGVyTmV3RmlsZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiPnhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT4gc2NoZW1hKTsKK2ludAk8YSBocmVmPSIjeG1sUmVhZGVyTmV3RmQiPnhtbFJlYWRlck5ld0ZkPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBpbnQgZmQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIj54bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHJuZyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkZXJGb3JNZW1vcnkiPnhtbFJlYWRlckZvck1lbW9yeTwvYT4JKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxici8+CQkJCQkJIGludCBzaXplLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclNldHVwIj54bWxUZXh0UmVhZGVyU2V0dXA8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Citsb25nCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIj54bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkiPnhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiPnhtbFRleHRSZWFkZXJMb2NhdG9yUHRyPC9hPiBsb2NhdG9yKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlIj54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogeHNkKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclN0YW5kYWxvbmUiPnhtbFRleHRSZWFkZXJTdGFuZGFsb25lPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJQcm9wZXJ0aWVzIj5FbnVtIDwvYT54bWxQYXJzZXJQcm9wZXJ0aWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sUGFyc2VyUHJvcGVydGllcyI+eG1sUGFyc2VyUHJvcGVydGllczwvYT4geworICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfTE9BRERURCI+WE1MX1BBUlNFUl9MT0FERFREPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX0RFRkFVTFRBVFRSUyI+WE1MX1BBUlNFUl9ERUZBVUxUQVRUUlM8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfVkFMSURBVEUiPlhNTF9QQVJTRVJfVkFMSURBVEU8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVMiPlhNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVM8L2E+ID0gNAorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJTZXZlcml0aWVzIj5FbnVtIDwvYT54bWxQYXJzZXJTZXZlcml0aWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sUGFyc2VyU2V2ZXJpdGllcyI+eG1sUGFyc2VyU2V2ZXJpdGllczwvYT4geworICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfV0FSTklORyI+WE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX0VSUk9SIj5YTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX0VSUk9SPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1NFVkVSSVRZX1dBUk5JTkciPlhNTF9QQVJTRVJfU0VWRVJJVFlfV0FSTklORzwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUiI+WE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUjwvYT4gPSA0Cit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlYWRlclR5cGVzIj5FbnVtIDwvYT54bWxSZWFkZXJUeXBlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFJlYWRlclR5cGVzIj54bWxSZWFkZXJUeXBlczwvYT4geworICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9OT05FIj5YTUxfUkVBREVSX1RZUEVfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0VMRU1FTlQiPlhNTF9SRUFERVJfVFlQRV9FTEVNRU5UPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfQVRUUklCVVRFIj5YTUxfUkVBREVSX1RZUEVfQVRUUklCVVRFPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfVEVYVCI+WE1MX1JFQURFUl9UWVBFX1RFWFQ8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9DREFUQSI+WE1MX1JFQURFUl9UWVBFX0NEQVRBPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfRU5USVRZX1JFRkVSRU5DRSI+WE1MX1JFQURFUl9UWVBFX0VOVElUWV9SRUZFUkVOQ0U8L2E+ID0gNQorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9FTlRJVFkiPlhNTF9SRUFERVJfVFlQRV9FTlRJVFk8L2E+ID0gNgorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIj5YTUxfUkVBREVSX1RZUEVfUFJPQ0VTU0lOR19JTlNUUlVDVElPTjwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQiPlhNTF9SRUFERVJfVFlQRV9DT01NRU5UPC9hPiA9IDgKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlQiPlhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVDwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX1RZUEUiPlhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9UWVBFPC9hPiA9IDEwCisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX0ZSQUdNRU5UIj5YTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQ8L2E+ID0gMTEKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfTk9UQVRJT04iPlhNTF9SRUFERVJfVFlQRV9OT1RBVElPTjwvYT4gPSAxMgorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9XSElURVNQQUNFIj5YTUxfUkVBREVSX1RZUEVfV0hJVEVTUEFDRTwvYT4gPSAxMworICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9TSUdOSUZJQ0FOVF9XSElURVNQQUNFIj5YTUxfUkVBREVSX1RZUEVfU0lHTklGSUNBTlRfV0hJVEVTUEFDRTwvYT4gPSAxNAorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVCI+WE1MX1JFQURFUl9UWVBFX0VORF9FTEVNRU5UPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFkiPlhNTF9SRUFERVJfVFlQRV9FTkRfRU5USVRZPC9hPiA9IDE2CisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTiI+WE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTjwvYT4gPSAxNworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyIj5TdHJ1Y3R1cmUgPC9hPnhtbFRleHRSZWFkZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFRleHRSZWFkZXIgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFRleHRSZWFkZXI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiPlR5cGVkZWYgPC9hPnhtbFRleHRSZWFkZXJMb2NhdG9yUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqIHhtbFRleHRSZWFkZXJMb2NhdG9yUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJNb2RlIj5FbnVtIDwvYT54bWxUZXh0UmVhZGVyTW9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFRleHRSZWFkZXJNb2RlIj54bWxUZXh0UmVhZGVyTW9kZTwvYT4geworICAgIDxhIG5hbWU9IlhNTF9URVhUUkVBREVSX01PREVfSU5JVElBTCI+WE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFIj5YTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SIj5YTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfVEVYVFJFQURFUl9NT0RFX0VPRiI+WE1MX1RFWFRSRUFERVJfTU9ERV9FT0Y8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9URVhUUkVBREVSX01PREVfQ0xPU0VEIj5YTUxfVEVYVFJFQURFUl9NT0RFX0NMT1NFRDwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX1RFWFRSRUFERVJfTU9ERV9SRUFESU5HIj5YTUxfVEVYVFJFQURFUl9NT0RFX1JFQURJTkc8L2E+ID0gNQorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUHRyIj5UeXBlZGVmIDwvYT54bWxUZXh0UmVhZGVyUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyIj54bWxUZXh0UmVhZGVyPC9hPiAqIHhtbFRleHRSZWFkZXJQdHI7Cis8L3ByZT48cD5Qb2ludGVyIHRvIGFuIHhtbFJlYWRlciBjb250ZXh0LjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxUZXh0UmVhZGVyRXJyb3JGdW5jCQkodm9pZCAqIGFyZywgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUGFyc2VyU2V2ZXJpdGllcyI+eG1sUGFyc2VyU2V2ZXJpdGllczwvYT4gc2V2ZXJpdHksIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IGxvY2F0b3IpPGJyLz4KKzwvcHJlPjxwPlNpZ25hdHVyZSBvZiBhbiBlcnJvciBjYWxsYmFjayBmcm9tIGEgcmVhZGVyIHBhcnNlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBhcmd1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2V2ZXJpdHk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZXZlcml0eSBvZiB0aGUgZXJyb3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvY2F0b3I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbG9jYXRvciBpbmRpY2F0aW5nIHdoZXJlIHRoZSBlcnJvciBvY2N1cmVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRnJlZVRleHRSZWFkZXIiLz54bWxGcmVlVGV4dFJlYWRlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVRleHRSZWFkZXIJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZSBhbGwgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSByZWFkZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdUZXh0UmVhZGVyIi8+eG1sTmV3VGV4dFJlYWRlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JeG1sTmV3VGV4dFJlYWRlcgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIFVSSSk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlciI+eG1sVGV4dFJlYWRlcjwvYT4gc3RydWN0dXJlIGZlZCB3aXRoIEBpbnB1dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IHVzZWQgdG8gcmVhZCBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgaW5mb3JtYXRpb24gZm9yIHRoZSBzb3VyY2UgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIi8+eG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUJKGNvbnN0IGNoYXIgKiBVUkkpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXIiPnhtbFRleHRSZWFkZXI8L2E+IHN0cnVjdHVyZSBmZWQgd2l0aCB0aGUgcmVzb3VyY2UgYXQgQFVSSTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIG9mIHRoZSByZXNvdXJjZSB0byBwcm9jZXNzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyRm9yRG9jIi8+eG1sUmVhZGVyRm9yRG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxSZWFkZXJGb3JEb2MJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiB4bWx0ZXh0UmVhZGVyIGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHJlYWRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyRm9yRmQiLz54bWxSZWFkZXJGb3JGZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JeG1sUmVhZGVyRm9yRmQJKGludCBmZCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIHhtbHRleHRSZWFkZXIgZm9yIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIE5PVEUgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwgbm90IGJlIGNsb3NlZCB3aGVuIHRoZSByZWFkZXIgaXMgY2xvc2VkIG9yIHJlc2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlYWRlckZvckZpbGUiLz54bWxSZWFkZXJGb3JGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxSZWFkZXJGb3JGaWxlCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0gb3IgdGhlIG5ldHdvcmsuIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgb3IgVVJMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHJlYWRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyRm9ySU8iLz54bWxSZWFkZXJGb3JJTyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JeG1sUmVhZGVyRm9ySU8JKDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxici8+CQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYW4geG1sdGV4dFJlYWRlciBmb3IgYW4gWE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb3JlYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyByZWFkIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkZXJGb3JNZW1vcnkiLz54bWxSZWFkZXJGb3JNZW1vcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+CXhtbFJlYWRlckZvck1lbW9yeQkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCQkgaW50IHNpemUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiB4bWx0ZXh0UmVhZGVyIGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkZXJOZXdEb2MiLz54bWxSZWFkZXJOZXdEb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVhZGVyTmV3RG9jCQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPlNldHVwIGFuIHhtbHRleHRSZWFkZXIgdG8gcGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQHJlYWRlciB4bWxUZXh0UmVhZGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcmVhZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlYWRlck5ld0ZkIi8+eG1sUmVhZGVyTmV3RmQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVhZGVyTmV3RmQJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgaW50IGZkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5TZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yLiBOT1RFIHRoYXQgdGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsIG5vdCBiZSBjbG9zZWQgd2hlbiB0aGUgcmVhZGVyIGlzIGNsb3NlZCBvciByZXNldC4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQHJlYWRlciB4bWxUZXh0UmVhZGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcmVhZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3BlbiBmaWxlIGRlc2NyaXB0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlYWRlck5ld0ZpbGUiLz54bWxSZWFkZXJOZXdGaWxlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlYWRlck5ld0ZpbGUJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgb3IgVVJMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlYWRlck5ld0lPIi8+eG1sUmVhZGVyTmV3SU8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVhZGVyTmV3SU8JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPlNldHVwIGFuIHhtbHRleHRSZWFkZXIgdG8gcGFyc2UgYW4gWE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvcmVhZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIHJlYWQgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY2xvc2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBjbG9zZSBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkZXJOZXdNZW1vcnkiLz54bWxSZWFkZXJOZXdNZW1vcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVhZGVyTmV3TWVtb3J5CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyLz4JCQkJCSBpbnQgc2l6ZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+U2V0dXAgYW4geG1sdGV4dFJlYWRlciB0byBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWFkZXJOZXdXYWxrZXIiLz54bWxSZWFkZXJOZXdXYWxrZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVhZGVyTmV3V2Fsa2VyCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+U2V0dXAgYW4geG1sdGV4dFJlYWRlciB0byBwYXJzZSBhIHByZXBhcnNlZCBYTUwgZG9jdW1lbnQuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwcmVwYXJzZWQgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyV2Fsa2VyIi8+eG1sUmVhZGVyV2Fsa2VyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxSZWFkZXJXYWxrZXIJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiB4bWx0ZXh0UmVhZGVyIGZvciBhIHByZXBhcnNlZCBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwcmVwYXJzZWQgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQiLz54bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIG9mIHRoZSBjdXJyZW50IG5vZGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpIG5vIGF0dHJpYnV0ZXMsIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3IgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGNvdW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckJhc2VVcmkiLz54bWxUZXh0UmVhZGVyQmFzZVVyaSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyQmFzZVVyaQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoZSBiYXNlIFVSSSBvZiB0aGUgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQiLz54bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+bG9uZwl4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgcGFyc2VyIHVzZWQgYnkgdGhlIHJlYWRlciwgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGVudGl0eS4gVGhpcyBmdW5jdGlvbiBhY3R1YWxseSBqdXN0IHdyYXBzIGEgY2FsbCB0byB4bWxCeXRlc0NvbnN1bWVkKCkgZm9yIHRoZSBwYXJzZXIgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggdGhlIHJlYWRlci4gU2VlIHhtbEJ5dGVzQ29uc3VtZWQoKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHJlYWRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGV4IGluIGJ5dGVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZW50aXR5IG9yIC0xIGluIGNhc2UgdGhlIGluZGV4IGNvdWxkIG5vdCBiZSBjb21wdXRlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ2xvc2UiLz54bWxUZXh0UmVhZGVyQ2xvc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckNsb3NlCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoaXMgbWV0aG9kIHJlbGVhc2VzIGFueSByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5IHRoZSBjdXJyZW50IGluc3RhbmNlIGNoYW5nZXMgdGhlIHN0YXRlIHRvIENsb3NlZCBhbmQgY2xvc2UgYW55IHVuZGVybHlpbmcgaW5wdXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkiLz54bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5UaGUgYmFzZSBVUkkgb2YgdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSSSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZSBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZyIvPnhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+RGV0ZXJtaW5lIHRoZSBlbmNvZGluZyBvZiB0aGUgZG9jdW1lbnQgYmVpbmcgcmVhZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgZW5jb2Rpbmcgb2YgdGhlIGRvY3VtZW50IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lIi8+eG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoZSBsb2NhbCBuYW1lIG9mIHRoZSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgbmFtZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZSBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0TmFtZSIvPnhtbFRleHRSZWFkZXJDb25zdE5hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckNvbnN0TmFtZQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbm9kZSwgZXF1YWwgdG8gUHJlZml4IDpMb2NhbE5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIi8+eG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoZSBVUkkgZGVmaW5pbmcgdGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyB3aWxsIGJlIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdFByZWZpeCIvPnhtbFRleHRSZWFkZXJDb25zdFByZWZpeCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5BIHNob3J0aGFuZCA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiB0byB0aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZSBzdHJpbmcgaXMgZGVhbGxvY2F0ZWQgd2l0aCB0aGUgcmVhZGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdFN0cmluZyIvPnhtbFRleHRSZWFkZXJDb25zdFN0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxici8+Cis8L3ByZT48cD5HZXQgYW4gaW50ZXJuZWQgc3RyaW5nIGZyb20gdGhlIHJlYWRlciwgYWxsb3dzIGZvciBleGFtcGxlIHRvIHNwZWVkdXAgc3RyaW5nIG5hbWUgY29tcGFyaXNvbnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGludGVybi48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludGVybmVkIGNvcHkgb2YgdGhlIHN0cmluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0VmFsdWUiLz54bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSB0ZXh0IHZhbHVlIG9mIHRoZSBub2RlIGlmIHByZXNlbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZyBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUuIFRoZSByZXN1bHQgd2lsbCBiZSBkZWFsbG9jYXRlZCBvbiB0aGUgbmV4dCBSZWFkKCkgb3BlcmF0aW9uLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdFhtbExhbmciLz54bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdFhtbExhbmcJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5UaGUgeG1sOmxhbmcgc2NvcGUgd2l0aGluIHdoaWNoIHRoZSBub2RlIHJlc2lkZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB4bWw6bGFuZyB2YWx1ZSBvciBOVUxMIGlmIG5vbmUgZXhpc3RzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24iLz54bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5EZXRlcm1pbmUgdGhlIFhNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyBjb250YWluaW5nIHRoZSBYTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBUaGUgc3RyaW5nIGlzIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ3VycmVudERvYyIvPnhtbFRleHRSZWFkZXJDdXJyZW50RG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFRleHRSZWFkZXJDdXJyZW50RG9jCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+SGFja2luZyBpbnRlcmZhY2UgYWxsb3dpbmcgdG8gZ2V0IHRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY29ycmVwb25kaW5nIHRvIHRoZSBjdXJyZW50IGRvY3VtZW50IGJlaW5nIGFjY2Vzc2VkIGJ5IHRoZSB4bWxUZXh0UmVhZGVyLiBOT1RFOiBhcyBhIHJlc3VsdCBvZiB0aGlzIGNhbGwsIHRoZSByZWFkZXIgd2lsbCBub3QgZGVzdHJveSB0aGUgYXNzb2NpYXRlZCBYTUwgZG9jdW1lbnQgYW5kIGNhbGxpbmcgeG1sRnJlZURvYygpIG9uIHRoZSByZXN1bHQgaXMgbmVlZGVkIG9uY2UgdGhlIHJlYWRlciBwYXJzaW5nIGhhcyBmaW5pc2hlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIi8+eG1sVGV4dFJlYWRlckN1cnJlbnROb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+SGFja2luZyBpbnRlcmZhY2UgYWxsb3dpbmcgdG8gZ2V0IHRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjb3JyZXBvbmRpbmcgdG8gdGhlIGN1cnJlbnQgbm9kZSBiZWluZyBhY2Nlc3NlZCBieSB0aGUgeG1sVGV4dFJlYWRlci4gVGhpcyBpcyBkYW5nZXJvdXMgYmVjYXVzZSB0aGUgdW5kZXJseWluZyBub2RlIG1heSBiZSBkZXN0cm95ZWQgb24gdGhlIG5leHQgUmVhZHMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckRlcHRoIi8+eG1sVGV4dFJlYWRlckRlcHRoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJEZXB0aAkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5UaGUgZGVwdGggb2YgdGhlIG5vZGUgaW4gdGhlIHRyZWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkZXB0aCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckV4cGFuZCIvPnhtbFRleHRSZWFkZXJFeHBhbmQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxUZXh0UmVhZGVyRXhwYW5kCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+UmVhZHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXJyZW50IG5vZGUgYW5kIHRoZSBmdWxsIHN1YnRyZWUuIEl0IHRoZW4gbWFrZXMgdGhlIHN1YnRyZWUgYXZhaWxhYmxlIHVudGlsIHRoZSBuZXh0IHhtbFRleHRSZWFkZXJSZWFkKCkgY2FsbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgcG9pbnRlciB2YWxpZCB1bnRpbCB0aGUgbmV4dCB4bWxUZXh0UmVhZGVyUmVhZCgpIGNhbGwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUiLz54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHZhbHVlIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIHRoZSBzcGVjaWZpZWQgcXVhbGlmaWVkIG5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgYXR0cmlidXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vIi8+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObwkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkJIGludCBubyk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHZhbHVlIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIHRoZSBzcGVjaWZpZWQgaW5kZXggcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZSwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMiLz54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsTmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bG9jYWxOYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgbmFtZSBvZiB0aGUgYXR0cmlidXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIFVSSSBvZiB0aGUgYXR0cmlidXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlciIvPnhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckVycm9yRnVuYyI+eG1sVGV4dFJlYWRlckVycm9yRnVuYzwvYT4gKiBmLCA8YnIvPgkJCQkJIHZvaWQgKiogYXJnKTxici8+Cis8L3ByZT48cD5SZXRyaWV2ZSB0aGUgZXJyb3IgY2FsbGJhY2sgZnVuY3Rpb24gYW5kIHVzZXIgYXJndW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjYWxsYmFjayBmdW5jdGlvbiBvciBOVUxMIGlzIG5vIGNhbGxiYWNrIGhhcyBiZWVuIHJlZ2lzdGVyZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB1c2VyIGFyZ3VtZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlciIvPnhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGUgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHJlYWRlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IG9yIDAgaWYgbm90IGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyIi8+eG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5Qcm92aWRlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcmVhZGVyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQgb3IgMCBpZiBub3QgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AiLz54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcAkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgaW50IHByb3ApPGJyLz4KKzwvcHJlPjxwPlJlYWQgdGhlIHBhcnNlciBpbnRlcm5hbCBwcm9wZXJ0eS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJvcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUGFyc2VyUHJvcGVydGllcyI+eG1sUGFyc2VyUHJvcGVydGllczwvYT4gdG8gZ2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUsIHVzdWFsbHkgMCBvciAxLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiLz54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgl4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+TWV0aG9kIHRvIGdldCB0aGUgcmVtYWluZGVyIG9mIHRoZSBidWZmZXJlZCBYTUwuIHRoaXMgbWV0aG9kIHN0b3BzIHRoZSBwYXJzZXIsIHNldCBpdHMgc3RhdGUgdG8gRW5kIE9mIEZpbGUgYW5kIHJldHVybiB0aGUgaW5wdXQgc3RyZWFtIHdpdGggd2hhdCBpcyBsZWZ0IHRoYXQgdGhlIHBhcnNlciBkaWQgbm90IHVzZS4gVGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdCBnb29kLCB0aGUgcGFyc2VyIGNlcnRhaW5seSBwcm9jZ3Jlc3NlZCBwYXN0IHdoYXQncyBsZWZ0IGluIHJlYWRlci0mZ3Q7aW5wdXQsIGFuZCB0aGVyZSBpcyBhbiBhbGxvY2F0aW9uIHByb2JsZW0uIEJlc3Qgd291bGQgYmUgdG8gcmV3cml0ZSBpdCBkaWZmZXJlbnRseS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gYXR0YWNoZWQgdG8gdGhlIFhNTCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMiLz54bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcwkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPldoZXRoZXIgdGhlIG5vZGUgaGFzIGF0dHJpYnV0ZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSwgYW5kIC0xIGluIGNhc2Ugb3IgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVySGFzVmFsdWUiLz54bWxUZXh0UmVhZGVySGFzVmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckhhc1ZhbHVlCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPldoZXRoZXIgdGhlIG5vZGUgY2FuIGhhdmUgYSB0ZXh0IHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgZmFsc2UsIGFuZCAtMSBpbiBjYXNlIG9yIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlcklzRGVmYXVsdCIvPnhtbFRleHRSZWFkZXJJc0RlZmF1bHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlcklzRGVmYXVsdAkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5XaGV0aGVyIGFuIEF0dHJpYnV0ZSBub2RlIHdhcyBnZW5lcmF0ZWQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZSBkZWZpbmVkIGluIHRoZSBEVEQgb3Igc2NoZW1hLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIG5vdCBkZWZhdWx0ZWQsIDEgaWYgZGVmYXVsdGVkLCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCIvPnhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGUgY3VycmVudCBub2RlIGlzIGVtcHR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgZW1wdHksIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCIvPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbAkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPkRldGVybWluZSB3aGV0aGVyIHRoZSBjdXJyZW50IG5vZGUgaXMgYSBuYW1lc3BhY2UgZGVjbGFyYXRpb24gcmF0aGVyIHRoYW4gYSByZWd1bGFyIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgY3VycmVudCBub2RlIGlzIGEgbmFtZXNwYWNlIGRlY2xhcmF0aW9uLCAwIGlmIGl0IGlzIGEgcmVndWxhciA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvciBvdGhlciB0eXBlIG9mIG5vZGUsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlcklzVmFsaWQiLz54bWxUZXh0UmVhZGVySXNWYWxpZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVySXNWYWxpZAkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5SZXRyaWV2ZSB0aGUgdmFsaWRpdHkgc3RhdHVzIGZyb20gdGhlIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmbGFnIHZhbHVlIDEgaWYgdmFsaWQsIDAgaWYgbm8sIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckxvY2FsTmFtZSIvPnhtbFRleHRSZWFkZXJMb2NhbE5hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckxvY2FsTmFtZQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoZSBsb2NhbCBuYW1lIG9mIHRoZSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgbmFtZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkiLz54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhdG9yUHRyIj54bWxUZXh0UmVhZGVyTG9jYXRvclB0cjwvYT4gbG9jYXRvcik8YnIvPgorPC9wcmU+PHA+T2J0YWluIHRoZSBiYXNlIFVSSSBmb3IgdGhlIGdpdmVuIGxvY2F0b3IuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhdG9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSSSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IsIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiLz54bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhdG9yUHRyIj54bWxUZXh0UmVhZGVyTG9jYXRvclB0cjwvYT4gbG9jYXRvcik8YnIvPgorPC9wcmU+PHA+T2J0YWluIHRoZSBsaW5lIG51bWJlciBmb3IgdGhlIGdpdmVuIGxvY2F0b3IuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhdG9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5lIG51bWJlciBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiLz54bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTxici8+Cis8L3ByZT48cD5SZXNvbHZlcyBhIG5hbWVzcGFjZSBwcmVmaXggaW4gdGhlIHNjb3BlIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCB3aG9zZSBuYW1lc3BhY2UgVVJJIGlzIHRvIGJlIHJlc29sdmVkLiBUbyByZXR1cm4gdGhlIGRlZmF1bHQgbmFtZXNwYWNlLCBzcGVjaWZ5IE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWVzcGFjZSBVUkkgdG8gd2hpY2ggdGhlIHByZWZpeCBtYXBzIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSIvPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPk1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCB0aGUgc3BlY2lmaWVkIHF1YWxpZmllZCBuYW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyIvPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGludCBubyk8YnIvPgorPC9wcmU+PHA+TW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIHRoZSBzcGVjaWZpZWQgaW5kZXggcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zIi8+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcwkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsTmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJKTxici8+Cis8L3ByZT48cD5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdpdGggdGhlIHNwZWNpZmllZCBsb2NhbCBuYW1lIGFuZCBuYW1lc3BhY2UgVVJJLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhbE5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lc3BhY2VVUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgVVJJIG9mIHRoZSBhdHRyaWJ1dGUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCIvPnhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+TW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBub2RlIHRoYXQgY29udGFpbnMgdGhlIGN1cnJlbnQgQXR0cmlidXRlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBtb3ZlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZSIvPnhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIGZpcnN0IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZSIvPnhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+TW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBuZXh0IDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTmFtZSIvPnhtbFRleHRSZWFkZXJOYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJOYW1lCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+VGhlIHF1YWxpZmllZCBuYW1lIG9mIHRoZSBub2RlLCBlcXVhbCB0byBQcmVmaXggOkxvY2FsTmFtZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsIG5hbWUgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLCBpZiBub24gTlVMTCBpdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSIvPnhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoZSBVUkkgZGVmaW5pbmcgdGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJOZXh0Ii8+eG1sVGV4dFJlYWRlck5leHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck5leHQJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+U2tpcCB0byB0aGUgbm9kZSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgb25lIGluIGRvY3VtZW50IG9yZGVyIHdoaWxlIGF2b2lkaW5nIHRoZSBzdWJ0cmVlIGlmIGFueS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgbm9kZSB3YXMgcmVhZCBzdWNjZXNzZnVsbHksIDAgaWYgdGhlcmUgaXMgbm8gbW9yZSBub2RlcyB0byByZWFkLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck5leHRTaWJsaW5nIi8+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJOZXh0U2libGluZwkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlNraXAgdG8gdGhlIG5vZGUgZm9sbG93aW5nIHRoZSBjdXJyZW50IG9uZSBpbiBkb2N1bWVudCBvcmRlciB3aGlsZSBhdm9pZGluZyB0aGUgc3VidHJlZSBpZiBhbnkuIEN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbmx5IGZvciBSZWFkZXJzIGJ1aWx0IG9uIGEgZG9jdW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgbm9kZSB3YXMgcmVhZCBzdWNjZXNzZnVsbHksIDAgaWYgdGhlcmUgaXMgbm8gbW9yZSBub2RlcyB0byByZWFkLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck5vZGVUeXBlIi8+eG1sVGV4dFJlYWRlck5vZGVUeXBlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJOb2RlVHlwZQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5HZXQgdGhlIG5vZGUgdHlwZSBvZiB0aGUgY3VycmVudCBub2RlIFJlZmVyZW5jZTogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RvdGdudS9wbmV0bGliLWRvYy9TeXN0ZW0vWG1sL1htbE5vZGVUeXBlLmh0bWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHhtbE5vZGVUeXBlIG9mIHRoZSBjdXJyZW50IG5vZGUgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIi8+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24JKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5UaGUgdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRvIG5vcm1hbGl6ZSB3aGl0ZSBzcGFjZSBhbmQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzLiBTaW5jZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBhbmQgZW5kIG9mIGxpbmUgbm9ybWFsaXphdGlvbnMgYXJlIGEgTVVTVCBpbiB0aGUgWE1MIHNwZWNpZmljYXRpb24gb25seSB0aGUgdmFsdWUgdHJ1ZSBpcyBhY2NlcHRlZC4gVGhlIGJyb2tlbiBiYWhhdmlvdXIgb2YgYWNjZXB0aW5nIG91dCBvZiByYW5nZSBjaGFyYWN0ZXIgZW50aXRpZXMgbGlrZSAmYW1wOyMwOyBpcyBvZiBjb3Vyc2Ugbm90IHN1cHBvcnRlZCBlaXRoZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUHJlZml4Ii8+eG1sVGV4dFJlYWRlclByZWZpeCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyUHJlZml4CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+QSBzaG9ydGhhbmQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gdGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLCBpZiBub24gTlVMTCBpdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclByZXNlcnZlIi8+eG1sVGV4dFJlYWRlclByZXNlcnZlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sVGV4dFJlYWRlclByZXNlcnZlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+VGhpcyB0ZWxscyB0aGUgWE1MIFJlYWRlciB0byBwcmVzZXJ2ZSB0aGUgY3VycmVudCBub2RlLiBUaGUgY2FsbGVyIG11c3QgYWxzbyB1c2UgeG1sVGV4dFJlYWRlckN1cnJlbnREb2MoKSB0byBrZWVwIGFuIGhhbmRsZSBvbiB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IG9uY2UgcGFyc2luZyBoYXMgZmluaXNoZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIi8+eG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcGF0dGVybiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzcGFjZXMpPGJyLz4KKzwvcHJlPjxwPlRoaXMgdGVsbHMgdGhlIFhNTCBSZWFkZXIgdG8gcHJlc2VydmUgYWxsIG5vZGVzIG1hdGNoZWQgYnkgdGhlIHBhdHRlcm4uIFRoZSBjYWxsZXIgbXVzdCBhbHNvIHVzZSB4bWxUZXh0UmVhZGVyQ3VycmVudERvYygpIHRvIGtlZXAgYW4gaGFuZGxlIG9uIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgb25jZSBwYXJzaW5nIGhhcyBmaW5pc2hlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXR0ZXJuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBzdWJzZXQgcGF0dGVybjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCBkZWZpbml0aW9ucywgYXJyYXkgb2YgW1VSSSwgcHJlZml4XSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvc2l0aXZlIG51bWJlciBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUXVvdGVDaGFyIi8+eG1sVGV4dFJlYWRlclF1b3RlQ2hhciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyUXVvdGVDaGFyCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlRoZSBxdW90YXRpb24gbWFyayBjaGFyYWN0ZXIgdXNlZCB0byBlbmNsb3NlIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPiIgb3IgJyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJSZWFkIi8+eG1sVGV4dFJlYWRlclJlYWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclJlYWQJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+TW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBuZXh0IG5vZGUgaW4gdGhlIHN0cmVhbSwgZXhwb3NpbmcgaXRzIHByb3BlcnRpZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIG5vZGUgd2FzIHJlYWQgc3VjY2Vzc2Z1bGx5LCAwIGlmIHRoZXJlIGlzIG5vIG1vcmUgbm9kZXMgdG8gcmVhZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUiLz54bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5QYXJzZXMgYW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgaW50byBvbmUgb3IgbW9yZSBUZXh0IGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBzdWNjZXNzLCAwIGlmIHRoZSByZWFkZXIgd2FzIG5vdCBwb3NpdGlvbm5lZCBvbiBhbiB0dHJpYnV0ZSBub2RlIG9yIGFsbCB0aGUgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzIGhhdmUgYmVlbiByZWFkLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwiLz54bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5SZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgbm9kZSwgaW5jbHVkaW5nIGNoaWxkIG5vZGVzIGFuZCBtYXJrdXAuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFhNTCBjb250ZW50LCBvciBOVUxMIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgbmVpdGhlciBhbiBlbGVtZW50IG5vciBhdHRyaWJ1dGUsIG9yIGhhcyBubyBjaGlsZCBub2Rlcy4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCIvPnhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbAkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlJlYWRzIHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBub2RlLCBpbmNsdWRpbmcgY2hpbGQgbm9kZXMgYW5kIG1hcmt1cC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgWE1MIGNvbnRlbnQsIG9yIE5VTEwgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBuZWl0aGVyIGFuIGVsZW1lbnQgbm9yIGF0dHJpYnV0ZSwgb3IgaGFzIG5vIGNoaWxkIG5vZGVzLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIi8+eG1sVGV4dFJlYWRlclJlYWRTdGF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyUmVhZFN0YXRlCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPkdldHMgdGhlIHJlYWQgc3RhdGUgb2YgdGhlIHJlYWRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXRlIHZhbHVlLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclJlYWRTdHJpbmciLz54bWxUZXh0UmVhZGVyUmVhZFN0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyUmVhZFN0cmluZwkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyLz4KKzwvcHJlPjxwPlJlYWRzIHRoZSBjb250ZW50cyBvZiBhbiBlbGVtZW50IG9yIGEgdGV4dCBub2RlIGFzIGEgc3RyaW5nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyBjb250YWluaW5nIHRoZSBjb250ZW50cyBvZiB0aGUgRWxlbWVudCBvciBUZXh0IG5vZGUsIG9yIE5VTEwgaWYgdGhlIHJlYWRlciBpcyBwb3NpdGlvbmVkIG9uIGFueSBvdGhlciB0eXBlIG9mIG5vZGUuIFRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIi8+eG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+IHNjaGVtYSk8YnIvPgorPC9wcmU+PHA+VXNlIFJlbGF4TkcgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4gQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLiBpZiBAc2NoZW1hIGlzIE5VTEwsIHRoZW4gUmVsYXhORyB2YWxpZGF0aW9uIGlzIGRlc2FjdGl2YXRlZC4gQCBUaGUgQHNjaGVtYSBzaG91bGQgbm90IGJlIGZyZWVkIHVudGlsIHRoZSByZWFkZXIgaXMgZGVhbGxvY2F0ZWQgb3IgaXRzIHVzZSBoYXMgYmVlbiBkZWFjdGl2YXRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2NoZW1hPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZWNvbXBpbGVkIFJlbGF4Tkcgc2NoZW1hPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2UgdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGVzKWFjdGl2YXRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIi8+eG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogcm5nKTxici8+Cis8L3ByZT48cD5Vc2UgUmVsYXhORyB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLiBBY3RpdmF0aW9uIGlzIG9ubHkgcG9zc2libGUgYmVmb3JlIHRoZSBmaXJzdCBSZWFkKCkuIGlmIEBybmcgaXMgTlVMTCwgdGhlbiBSZWxheE5HIHZhbGlkYXRpb24gaXMgZGVhY3RpdmF0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJuZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhdGggdG8gYSBSZWxheE5HIHNjaGVtYSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2UgdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGUpYWN0aXZhdGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSIvPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiB4c2QpPGJyLz4KKzwvcHJlPjxwPlVzZSBXM0MgWFNEIHNjaGVtYSB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLiBBY3RpdmF0aW9uIGlzIG9ubHkgcG9zc2libGUgYmVmb3JlIHRoZSBmaXJzdCBSZWFkKCkuIElmIEB4c2QgaXMgTlVMTCwgdGhlbiBYTUwgU2NoZW1hIHZhbGlkYXRpb24gaXMgZGVhY3RpdmF0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnhzZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhdGggdG8gYSBXM0MgWFNEIHNjaGVtYSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2UgdGhlIHNjaGVtYXMgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGUpYWN0aXZhdGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiLz54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5Vc2UgVzNDIFhTRCBzY2hlbWEgY29udGV4dCB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLiBBY3RpdmF0aW9uIGlzIG9ubHkgcG9zc2libGUgYmVmb3JlIHRoZSBmaXJzdCBSZWFkKCkuIElmIEBjdHh0IGlzIE5VTEwsIHRoZW4gWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGlzIGRlYWN0aXZhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9ucyAobm90IHVzZWQgeWV0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIHRoZSBzY2hlbWFzIHZhbGlkYXRpb24gY291bGQgYmUgKGRlKWFjdGl2YXRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyIi8+eG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPiBmLCA8YnIvPgkJCQkJIHZvaWQgKiBhcmcpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBlcnJvciBhbmQgd2FybmluZ3MuIElmIEBmIGlzIE5VTEwsIHRoZSBkZWZhdWx0IGVycm9yIGFuZCB3YXJuaW5nIGhhbmRsZXJzIGFyZSByZXN0b3JlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXJyb3IgYW5kIHdhcm5pbmdzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdXNlciBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wIi8+eG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIvPgkJCQkJIGludCBwcm9wLCA8YnIvPgkJCQkJIGludCB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+Q2hhbmdlIHRoZSBwYXJzZXIgcHJvY2Vzc2luZyBiZWhhdmlvdXIgYnkgY2hhbmdpbmcgc29tZSBvZiBpdHMgaW50ZXJuYWwgcHJvcGVydGllcy4gTm90ZSB0aGF0IHNvbWUgcHJvcGVydGllcyBjYW4gb25seSBiZSBjaGFuZ2VkIGJlZm9yZSBhbnkgcmVhZCBoYXMgYmVlbiBkb25lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcm9wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxQYXJzZXJQcm9wZXJ0aWVzIj54bWxQYXJzZXJQcm9wZXJ0aWVzPC9hPiB0byBzZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c3VhbGx5IDAgb3IgMSB0byAoZGUpYWN0aXZhdGUgaXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIGNhbGwgd2FzIHN1Y2Nlc3NmdWwsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIi8+eG1sVGV4dFJlYWRlclNldFNjaGVtYSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyU2V0U2NoZW1hCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+IHNjaGVtYSk8YnIvPgorPC9wcmU+PHA+VXNlIFhTRCBTY2hlbWEgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4gQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLiBpZiBAc2NoZW1hIGlzIE5VTEwsIHRoZW4gU2NoZW1hIHZhbGlkYXRpb24gaXMgZGVzYWN0aXZhdGVkLiBAIFRoZSBAc2NoZW1hIHNob3VsZCBub3QgYmUgZnJlZWQgdW50aWwgdGhlIHJlYWRlciBpcyBkZWFsbG9jYXRlZCBvciBpdHMgdXNlIGhhcyBiZWVuIGRlYWN0aXZhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlY29tcGlsZWQgU2NoZW1hIHNjaGVtYTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIHRoZSBTY2hlbWEgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGVzKWFjdGl2YXRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlciIvPnhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBmLCA8YnIvPgkJCQkJCSB2b2lkICogYXJnKTxici8+Cis8L3ByZT48cD5SZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gZXJyb3IgYW5kIHdhcm5pbmdzLiBJZiBAZiBpcyBOVUxMLCB0aGUgZGVmYXVsdCBlcnJvciBhbmQgd2FybmluZyBoYW5kbGVycyBhcmUgcmVzdG9yZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBjYWxsIG9uIGVycm9yIGFuZCB3YXJuaW5nczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHVzZXIgYXJndW1lbnQgdG8gcGFzcyB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0dXAiLz54bWxUZXh0UmVhZGVyU2V0dXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclNldHVwCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+U2V0dXAgYW4gWE1MIHJlYWRlciB3aXRoIG5ldyBvcHRpb25zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IHVzZWQgdG8gZmVlZCB0aGUgcmVhZGVyLCB3aWxsIGJlIGRlc3Ryb3llZCB3aXRoIGl0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJTdGFuZGFsb25lIi8+eG1sVGV4dFJlYWRlclN0YW5kYWxvbmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclN0YW5kYWxvbmUJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+RGV0ZXJtaW5lIHRoZSBzdGFuZGFsb25lIHN0YXR1cyBvZiB0aGUgZG9jdW1lbnQgYmVpbmcgcmVhZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgZG9jdW1lbnQgd2FzIGRlY2xhcmVkIHRvIGJlIHN0YW5kYWxvbmUsIDAgaWYgaXQgd2FzIGRlY2xhcmVkIHRvIGJlIG5vdCBzdGFuZGFsb25lLCBvciAtMSBpZiB0aGUgZG9jdW1lbnQgZGlkIG5vdCBzcGVjaWZ5IGl0cyBzdGFuZGFsb25lIHN0YXR1cyBvciBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJWYWx1ZSIvPnhtbFRleHRSZWFkZXJWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyVmFsdWUJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxici8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgdGV4dCB2YWx1ZSBvZiB0aGUgbm9kZSBpZiBwcmVzZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLiBUaGUgcmVzdWx0IG11c3QgYmUgZGVhbGxvY2F0ZWQgd2l0aCB4bWxGcmVlKCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyWG1sTGFuZyIvPnhtbFRleHRSZWFkZXJYbWxMYW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJYbWxMYW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIvPgorPC9wcmU+PHA+VGhlIHhtbDpsYW5nIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbm9kZSByZXNpZGVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgeG1sOmxhbmcgdmFsdWUgb3IgTlVMTCBpZiBub25lIGV4aXN0cy4sIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxyZWdleHAuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxyZWdleHAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDExOTY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHJlZ2V4cC5odG1sCkBAIC0wLDAgKzEsMjgwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnhtbHJlZ2V4cDogcmVndWxhciBleHByZXNzaW9ucyBoYW5kbGluZzwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnhtbHJlZ2V4cDwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnhtbHJlZ2V4cCAtIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaGFuZGxpbmc8L3A+CisgICAgPHA+YmFzaWMgQVBJIGZvciBsaWJ4bWwgcmVndWxhciBleHByZXNzaW9ucyBoYW5kbGluZyB1c2VkIGZvciBYTUwgU2NoZW1hcyBhbmQgdmFsaWRhdGlvbi4gPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dCI+eG1sUmVnRXhlY0N0eHQ8L2E+ICogPGEgaHJlZj0iI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sRXhwQ3R4dCA8YSBocmVmPSIjeG1sRXhwQ3R4dCI+eG1sRXhwQ3R4dDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZSI+eG1sRXhwTm9kZTwvYT4gKiA8YSBocmVmPSIjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dCI+eG1sRXhwQ3R4dDwvYT4gKiA8YSBocmVmPSIjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbEV4cE5vZGVUeXBlIj54bWxFeHBOb2RlVHlwZTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sUmVnRXhlY0N0eHQgPGEgaHJlZj0iI3htbFJlZ0V4ZWNDdHh0Ij54bWxSZWdFeGVjQ3R4dDwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sRXhwTm9kZSA8YSBocmVmPSIjeG1sRXhwTm9kZSI+eG1sRXhwTm9kZTwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sUmVnZXhwIDxhIGhyZWY9IiN4bWxSZWdleHAiPnhtbFJlZ2V4cDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwIj54bWxSZWdleHA8L2E+ICogPGEgaHJlZj0iI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPjsKK3R5cGVkZWYgdm9pZCA8YSBocmVmPSIjeG1sUmVnRXhlY0NhbGxiYWNrcyI+eG1sUmVnRXhlY0NhbGxiYWNrczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxici8+CQkJCQkgdm9pZCAqIHRyYW5zZGF0YSwgPGJyLz4JCQkJCSB2b2lkICogaW5wdXRkYXRhKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sUmVnTmV3RXhlY0N0eHQiPnhtbFJlZ05ld0V4ZWNDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4gY29tcCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ2FsbGJhY2tzIj54bWxSZWdFeGVjQ2FsbGJhY2tzPC9hPiBjYWxsYmFjaywgPGJyLz4JCQkJCQkgdm9pZCAqIGRhdGEpOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwTmV3T3IiPnhtbEV4cE5ld09yPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGxlZnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiByaWdodCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxSZWdGcmVlUmVnZXhwIj54bWxSZWdGcmVlUmVnZXhwPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+IHJlZ2V4cCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxFeHBSZWYiPnhtbEV4cFJlZjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHApOworaW50CTxhIGhyZWY9IiN4bWxSZWdleHBJc0RldGVybWluaXN0Ij54bWxSZWdleHBJc0RldGVybWluaXN0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+IGNvbXApOworaW50CTxhIGhyZWY9IiN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBzdHJpbmcsIDxici8+CQkJCQkgaW50ICogbmJ2YWwsIDxici8+CQkJCQkgaW50ICogbmJuZWcsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiB2YWx1ZXMsIDxici8+CQkJCQkgaW50ICogdGVybWluYWwpOwordm9pZAk8YSBocmVmPSIjeG1sUmVnRnJlZUV4ZWNDdHh0Ij54bWxSZWdGcmVlRXhlY0N0eHQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMpOworaW50CTxhIGhyZWY9IiN4bWxFeHBDdHh0TmJDb25zIj54bWxFeHBDdHh0TmJDb25zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbEV4cFN1YnN1bWUiPnhtbEV4cFN1YnN1bWU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IHN1Yik7CitpbnQJPGEgaHJlZj0iI3htbFJlZ0V4ZWNQdXNoU3RyaW5nMiI+eG1sUmVnRXhlY1B1c2hTdHJpbmcyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUyLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKK2ludAk8YSBocmVmPSIjeG1sUmVnRXhlY05leHRWYWx1ZXMiPnhtbFJlZ0V4ZWNOZXh0VmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIvPgkJCQkJIGludCAqIG5idmFsLCA8YnIvPgkJCQkJIGludCAqIG5ibmVnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdmFsdWVzLCA8YnIvPgkJCQkJIGludCAqIHRlcm1pbmFsKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IHN1Yik7CitpbnQJPGEgaHJlZj0iI3htbEV4cElzTmlsbGFibGUiPnhtbEV4cElzTmlsbGFibGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHApOwordm9pZAk8YSBocmVmPSIjeG1sRXhwRnJlZUN0eHQiPnhtbEV4cEZyZWVDdHh0PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sRXhwRHVtcCI+eG1sRXhwRHVtcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cHIpOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwTmV3U2VxIj54bWxFeHBOZXdTZXE8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gbGVmdCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IHJpZ2h0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbEV4cEZyZWUiPnhtbEV4cEZyZWU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxFeHBOZXdSYW5nZSI+eG1sRXhwTmV3UmFuZ2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gc3Vic2V0LCA8YnIvPgkJCQkJIGludCBtaW4sIDxici8+CQkJCQkgaW50IG1heCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVnZXhwQ29tcGlsZSI+eG1sUmVnZXhwQ29tcGlsZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZWdleHApOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwTmV3QXRvbSI+eG1sRXhwTmV3QXRvbTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbFJlZ2V4cEV4ZWMiPnhtbFJlZ2V4cEV4ZWM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+IGNvbXAsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpOworaW50CTxhIGhyZWY9IiN4bWxSZWdFeGVjUHVzaFN0cmluZyI+eG1sUmVnRXhlY1B1c2hTdHJpbmc8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKK2ludAk8YSBocmVmPSIjeG1sRXhwR2V0U3RhcnQiPnhtbEV4cEdldFN0YXJ0PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHAsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiB0b2tMaXN0LCA8YnIvPgkJCQkJIGludCBsZW4pOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwUGFyc2UiPnhtbEV4cFBhcnNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZXhwcik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxFeHBOZXdDdHh0Ij54bWxFeHBOZXdDdHh0PC9hPgkJKGludCBtYXhOb2RlcywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTsKK2ludAk8YSBocmVmPSIjeG1sRXhwR2V0TGFuZ3VhZ2UiPnhtbEV4cEdldExhbmd1YWdlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGxhbmdMaXN0LCA8YnIvPgkJCQkJIGludCBsZW4pOworPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwU3RyaW5nRGVyaXZlIj54bWxFeHBTdHJpbmdEZXJpdmU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHAsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sRXhwQ3R4dE5iTm9kZXMiPnhtbEV4cEN0eHROYk5vZGVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbEV4cE1heFRva2VuIj54bWxFeHBNYXhUb2tlbjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHByKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFJlZ2V4cFByaW50Ij54bWxSZWdleHBQcmludDwvYT4JCQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiByZWdleHApOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEV4cEN0eHQiPlN0cnVjdHVyZSA8L2E+eG1sRXhwQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sRXhwQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK30geG1sRXhwQ3R4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBDdHh0UHRyIj5UeXBlZGVmIDwvYT54bWxFeHBDdHh0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0Ij54bWxFeHBDdHh0PC9hPiAqIHhtbEV4cEN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwTm9kZSI+U3RydWN0dXJlIDwvYT54bWxFeHBOb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxFeHBOb2RlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxFeHBOb2RlOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEV4cE5vZGVQdHIiPlR5cGVkZWYgPC9hPnhtbEV4cE5vZGVQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGUiPnhtbEV4cE5vZGU8L2E+ICogeG1sRXhwTm9kZVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBOb2RlVHlwZSI+RW51bSA8L2E+eG1sRXhwTm9kZVR5cGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5lbnVtIDxhIGhyZWY9IiN4bWxFeHBOb2RlVHlwZSI+eG1sRXhwTm9kZVR5cGU8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfRVhQX0VNUFRZIj5YTUxfRVhQX0VNUFRZPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfRVhQX0ZPUkJJRCI+WE1MX0VYUF9GT1JCSUQ8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9FWFBfQVRPTSI+WE1MX0VYUF9BVE9NPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfRVhQX1NFUSI+WE1MX0VYUF9TRVE8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9FWFBfT1IiPlhNTF9FWFBfT1I8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9FWFBfQ09VTlQiPlhNTF9FWFBfQ09VTlQ8L2E+ID0gNQorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdFeGVjQ3R4dCI+U3RydWN0dXJlIDwvYT54bWxSZWdFeGVjQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sUmVnRXhlY0N0eHQgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFJlZ0V4ZWNDdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZ0V4ZWNDdHh0UHRyIj5UeXBlZGVmIDwvYT54bWxSZWdFeGVjQ3R4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHQiPnhtbFJlZ0V4ZWNDdHh0PC9hPiAqIHhtbFJlZ0V4ZWNDdHh0UHRyOworPC9wcmU+PHA+QSBsaWJ4bWwgcHJvZ3Jlc3NpdmUgcmVndWxhciBleHByZXNzaW9uIGV2YWx1YXRpb24gY29udGV4dDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdleHAiPlN0cnVjdHVyZSA8L2E+eG1sUmVnZXhwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxSZWdleHAgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFJlZ2V4cDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdleHBQdHIiPlR5cGVkZWYgPC9hPnhtbFJlZ2V4cFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwIj54bWxSZWdleHA8L2E+ICogeG1sUmVnZXhwUHRyOworPC9wcmU+PHA+QSBsaWJ4bWwgcmVndWxhciBleHByZXNzaW9uLCB0aGV5IGNhbiBhY3R1YWxseSBiZSBmYXIgbW9yZSBjb21wbGV4IHRoYW5rIHRoZSBQT1NJWCByZWdleCBleHByZXNzaW9ucy48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnRXhlY0NhbGxiYWNrcyIvPkZ1bmN0aW9uIHR5cGUgeG1sUmVnRXhlY0NhbGxiYWNrczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnRXhlY0NhbGxiYWNrcwkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyLz4JCQkJCSB2b2lkICogdHJhbnNkYXRhLCA8YnIvPgkJCQkJIHZvaWQgKiBpbnB1dGRhdGEpPGJyLz4KKzwvcHJlPjxwPkNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gZG9pbmcgYSB0cmFuc2l0aW9uIGluIHRoZSBhdXRvbWF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhlYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgdG9rZW4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmFuc2RhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRyYW5zaXRpb24gZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXRkYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnB1dCBkYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZW1wdHlFeHAiPlZhcmlhYmxlIDwvYT5lbXB0eUV4cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZW1wdHlFeHA7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZm9yYmlkZGVuRXhwIj5WYXJpYWJsZSA8L2E+Zm9yYmlkZGVuRXhwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBmb3JiaWRkZW5FeHA7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwQ3R4dE5iQ29ucyIvPnhtbEV4cEN0eHROYkNvbnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRXhwQ3R4dE5iQ29ucwkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+RGVidWdnaW5nIGZhY2lsaXR5IHByb3ZpZGVzIHRoZSBudW1iZXIgb2YgYWxsb2NhdGVkIG5vZGVzIG92ZXIgbGlmZXRpbWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBub2RlcyBldmVyIGFsbG9jYXRlZCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwQ3R4dE5iTm9kZXMiLz54bWxFeHBDdHh0TmJOb2RlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBDdHh0TmJOb2RlcwkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+RGVidWdnaW5nIGZhY2lsaXR5IHByb3ZpZGVzIHRoZSBudW1iZXIgb2YgYWxsb2NhdGVkIG5vZGVzIGF0IGEgdGhhdCBwb2ludDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIG5vZGVzIGluIHVzZSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwRHVtcCIvPnhtbEV4cER1bXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEV4cER1bXAJCQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cHIpPGJyLz4KKzwvcHJlPjxwPlNlcmlhbGl6ZSB0aGUgZXhwcmVzc2lvbiBhcyBjb21waWxlZCB0byB0aGUgYnVmZmVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIGV4cHJlc3Npb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBFeHBEZXJpdmUiLz54bWxFeHBFeHBEZXJpdmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+CXhtbEV4cEV4cERlcml2ZQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IHN1Yik8YnIvPgorPC9wcmU+PHA+RXZhbHVhdGVzIHRoZSBleHByZXNzaW9uIHJlc3VsdGluZyBmcm9tIEBleHAgY29uc3VtaW5nIGEgc3ViIGV4cHJlc3Npb24gQHN1YiBCYXNlZCBvbiBhbGdlYnJhaWMgZGVyaXZhdGlvbiBhbmQgc29tZXRpbWVzIGRpcmVjdCBCcnpvem93c2tpIGRlcml2YXRpb24gaXQgdXN1YWxseSB0YXRrZXMgbGVzcyB0aGFuIGxpbmVhciB0aW1lIGFuZCBjYW4gaGFuZGxlIGV4cHJlc3Npb25zIGdlbmVyYXRpbmcgaW5maW5pdGUgbGFuZ3VhZ2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb25zIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4cDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuZ2xvYmluZyBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdWI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdWJleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yLCB0aGUgcmVzdWx0IG11c3QgYmUgZnJlZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBGcmVlIi8+eG1sRXhwRnJlZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRXhwRnJlZQkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHApPGJyLz4KKzwvcHJlPjxwPkRlcmVmZXJlbmNlIHRoZSBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwRnJlZUN0eHQiLz54bWxFeHBGcmVlQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRXhwRnJlZUN0eHQJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5GcmVlIGFuIGV4cHJlc3Npb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwR2V0TGFuZ3VhZ2UiLz54bWxFeHBHZXRMYW5ndWFnZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBHZXRMYW5ndWFnZQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGxhbmdMaXN0LCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkZpbmQgYWxsIHRoZSBzdHJpbmdzIHVzZWQgaW4gQGV4cCBhbmQgc3RvcmUgdGhlbSBpbiBAbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGFuZ0xpc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndoZXJlIHRvIHN0b3JlIHRoZSB0b2tlbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFsbG9jYXRlZCBsZW5naHQgb2YgQGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgdW5pcXVlIHN0cmluZ3MgZm91bmQsIC0xIGluIGNhc2Ugb2YgZXJyb3JzIGFuZCAtMiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gQGxlbiBzdHJpbmdzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwR2V0U3RhcnQiLz54bWxFeHBHZXRTdGFydCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBHZXRTdGFydAkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHAsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiB0b2tMaXN0LCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkZpbmQgYWxsIHRoZSBzdHJpbmdzIHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgdGhlIGxhbmd1YWdlcyBhY2NlcHRlZCBieSBAZXhwIGFuZCBzdG9yZSB0aGVtIGluIEBsaXN0LiBFLmcuIGZvciAoYSwgYikgfCBjIGl0IHdpbGwgcmV0dXJuIHRoZSBsaXN0IFthLCBjXTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rTGlzdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2hlcmUgdG8gc3RvcmUgdGhlIHRva2VuczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYWxsb2NhdGVkIGxlbmdodCBvZiBAbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiB1bmlxdWUgc3RyaW5ncyBmb3VuZCwgLTEgaW4gY2FzZSBvZiBlcnJvcnMgYW5kIC0yIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBAbGVuIHN0cmluZ3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBJc05pbGxhYmxlIi8+eG1sRXhwSXNOaWxsYWJsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBJc05pbGxhYmxlCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHApPGJyLz4KKzwvcHJlPjxwPkZpbmRzIGlmIHRoZSBleHByZXNzaW9uIGlzIG5pbGxhYmxlLCBpLmUuIGlmIGl0IGFjY2VwdHMgdGhlIGVtcHR5IHNlcXVxbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIG5pbGxhYmxlLCAwIGlmIG5vdCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEV4cE1heFRva2VuIi8+eG1sRXhwTWF4VG9rZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRXhwTWF4VG9rZW4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHByKTxici8+Cis8L3ByZT48cD5JbmRpY2F0ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgaW5wdXQgYSBleHByZXNzaW9uIGNhbiBhY2NlcHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4cHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tcGlsZWQgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1heGltdW0gbGVuZ3RoIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdBdG9tIi8+eG1sRXhwTmV3QXRvbSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JeG1sRXhwTmV3QXRvbQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGF0b20gYXNzb2NpYXRlZCB0byB0aGlzIG5hbWUgZnJvbSB0aGF0IGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhdG9tIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGF0b20gbmFtZSBsZW5naHQgaW4gYnl0ZSAob3IgLTEpOzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwTmV3Q3R4dCIvPnhtbEV4cE5ld0N0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+CXhtbEV4cE5ld0N0eHQJCShpbnQgbWF4Tm9kZXMsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlcyBhIG5ldyBjb250ZXh0IGZvciBtYW5pcHVsYXRpbmcgZXhwcmVzc2lvbnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1heE5vZGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBudW1iZXIgb2Ygbm9kZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm9wdGlvbmFsIGRpY3Rpb25uYXJ5IHRvIHVzZSBpbnRlcm5hbGx5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdPciIvPnhtbEV4cE5ld09yICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgl4bWxFeHBOZXdPcgkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGxlZnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiByaWdodCk8YnIvPgorPC9wcmU+PHA+R2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhlIGNob2ljZSBAbGVmdCB8IEByaWdodCBOb3RlIHRoYXQgQGxlZnQgYW5kIEByaWdodCBhcmUgY29uc3VtZWQgaW4gdGhlIG9wZXJhdGlvbiwgdG8ga2VlcCBhbiBoYW5kbGUgb24gdGhlbSB1c2UgeG1sRXhwUmVmKCkgYW5kIHVzZSB4bWxFeHBGcmVlKCkgdG8gcmVsZWFzZSB0aGVtLCB0aGlzIGlzIHRydWUgZXZlbiBpbiBjYXNlIG9mIGZhaWx1cmUgKHVubGVzcyBjdHh0ID09IE5VTEwpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVmdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGVmdCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yaWdodDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cmlnaHQgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwTmV3UmFuZ2UiLz54bWxFeHBOZXdSYW5nZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JeG1sRXhwTmV3UmFuZ2UJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBzdWJzZXQsIDxici8+CQkJCQkgaW50IG1pbiwgPGJyLz4JCQkJCSBpbnQgbWF4KTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGF0b20gYXNzb2NpYXRlZCB0byB0aGUgcmFuZ2UgKEBzdWJzZXQpe0BtaW4sIEBtYXh9IE5vdGUgdGhhdCBAc3Vic2V0IGlzIGNvbnN1bWVkIGluIHRoZSBvcGVyYXRpb24sIHRvIGtlZXAgYW4gaGFuZGxlIG9uIGl0IHVzZSB4bWxFeHBSZWYoKSBhbmQgdXNlIHhtbEV4cEZyZWUoKSB0byByZWxlYXNlIGl0LCB0aGlzIGlzIHRydWUgZXZlbiBpbiBjYXNlIG9mIGZhaWx1cmUgKHVubGVzcyBjdHh0ID09IE5VTEwpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3Vic2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbiB0byBiZSByZXBlYXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG93ZXIgYm91bmQgZm9yIHRoZSByZXBldGl0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1cHBlciBib3VuZCBmb3IgdGhlIHJlcGV0aXRpb24sIC0xIG1lYW5zIGluZmluaXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdTZXEiLz54bWxFeHBOZXdTZXEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+CXhtbEV4cE5ld1NlcQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGxlZnQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiByaWdodCk8YnIvPgorPC9wcmU+PHA+R2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhlIHNlcXVlbmNlIEBsZWZ0ICwgQHJpZ2h0IE5vdGUgdGhhdCBAbGVmdCBhbmQgQHJpZ2h0IGFyZSBjb25zdW1lZCBpbiB0aGUgb3BlcmF0aW9uLCB0byBrZWVwIGFuIGhhbmRsZSBvbiB0aGVtIHVzZSB4bWxFeHBSZWYoKSBhbmQgdXNlIHhtbEV4cEZyZWUoKSB0byByZWxlYXNlIHRoZW0sIHRoaXMgaXMgdHJ1ZSBldmVuIGluIGNhc2Ugb2YgZmFpbHVyZSAodW5sZXNzIGN0eHQgPT0gTlVMTCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZWZ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5sZWZ0IGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJpZ2h0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5yaWdodCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBQYXJzZSIvPnhtbEV4cFBhcnNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgl4bWxFeHBQYXJzZQkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZXhwcik8YnIvPgorPC9wcmU+PHA+TWluaW1hbCBwYXJzZXIgZm9yIHJlZ2V4cHMsIGl0IHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBjb25zdHJ1Y3RzIC0gc3RyaW5nIHRlcm1pbmFscyAtIGNob2ljZSBvcGVyYXRvciB8IC0gc2VxdWVuY2Ugb3BlcmF0b3IgLCAtIHN1YmV4cHJlc3Npb25zICguLi4pIC0gdXN1YWwgY2FyZGluYWxpdHkgb3BlcmF0b3JzICsgKiBhbmQgPyAtIGZpbml0ZSBzZXF1ZW5jZXMgeyBtaW4sIG1heCB9IC0gaW5maW5pdGUgc2VxdWVuY2VzIHsgbWluLCAqIH0gVGhlcmUgaXMgbWluaW1hbCBjaGVja2luZ3MgbWFkZSBlc3BlY2lhbGx5IG5vIGNoZWNraW5nIG9uIHN0cmluZ3MgdmFsdWVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbnMgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDAgdGVybWluYXRlZCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxFeHBSZWYiLz54bWxFeHBSZWYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEV4cFJlZgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCk8YnIvPgorPC9wcmU+PHA+SW5jcmVhc2UgdGhlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGNvdW50IG9mIHRoZSBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwU3RyaW5nRGVyaXZlIi8+eG1sRXhwU3RyaW5nRGVyaXZlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgl4bWxFeHBTdHJpbmdEZXJpdmUJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkRvIG9uZSBzdGVwIG9mIEJyem96b3dza2kgZGVyaXZhdGlvbiBvZiB0aGUgZXhwcmVzc2lvbiBAZXhwIHdpdGggcmVzcGVjdCB0byB0aGUgaW5wdXQgc3RyaW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZyBsZW4gaW4gYnl0ZXMgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sRXhwU3Vic3VtZSIvPnhtbEV4cFN1YnN1bWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRXhwU3Vic3VtZQkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHAsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBzdWIpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgQGV4cCBhY2NlcHRzIGFsbCB0aGUgbGFuZ3VhZ2VzIGFjY2V4cHRlZCBieSBAc3ViIHRoZSBpbnB1dCBiZWluZyBhIHN1YmV4cHJlc3Npb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbnMgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5nbG9iaW5nIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN1YjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN1YmV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIGlmIGZhbHNlIGFuZCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnRXhlY0VyckluZm8iLz54bWxSZWdFeGVjRXJySW5mbyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWdFeGVjRXJySW5mbwkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogc3RyaW5nLCA8YnIvPgkJCQkJIGludCAqIG5idmFsLCA8YnIvPgkJCQkJIGludCAqIG5ibmVnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdmFsdWVzLCA8YnIvPgkJCQkJIGludCAqIHRlcm1pbmFsKTxici8+Cis8L3ByZT48cD5FeHRyYWN0IGVycm9yIGluZm9ybWF0aW9ucyBmcm9tIHRoZSByZWdleHAgZXhlY3V0aW9uLCB0aGUgcGFyYW1ldGVyIEBzdHJpbmcgd2lsbCBiZSB1cGRhdGVkIHdpdGggdGhlIHZhbHVlIHB1c2hlZCBhbmQgbm90IGFjY2VwdGVkLCB0aGUgcGFyYW1ldGVyIEB2YWx1ZXMgbXVzdCBwb2ludCB0byBhbiBhcnJheSBvZiBAbmJ2YWwgc3RyaW5nIHBvaW50ZXJzIG9uIHJldHVybiBuYnZhbCB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBwb3NzaWJsZSBzdHJpbmdzIGluIHRoYXQgc3RhdGUgYW5kIHRoZSBAdmFsdWVzIGFycmF5IHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZW0uIFRoZSBzdHJpbmcgdmFsdWVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leGVjPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBnZW5lcmF0aW5nIGFuIGVycm9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJldHVybiB2YWx1ZSBmb3IgdGhlIGVycm9yIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJ2YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBhY2NlcHRlZCB2YWx1ZXMgSU4vT1VUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYm5lZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cmV0dXJuIG51bWJlciBvZiBuZWdhdGl2ZSB0cmFuc2l0aW9uczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiBhY2NlcHRhYmxlIHZhbHVlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGVybWluYWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJldHVybiB2YWx1ZSBpZiB0aGlzIHdhcyBhIHRlcm1pbmFsIHN0YXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53aWxsIGJlIGZyZWVkIHdpdGggdGhlIEBleGVjIGNvbnRleHQgYW5kIGRvbid0IG5lZWQgdG8gYmUgZGVhbGxvY2F0ZWQuIFJldHVybnM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnRXhlY05leHRWYWx1ZXMiLz54bWxSZWdFeGVjTmV4dFZhbHVlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWdFeGVjTmV4dFZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIvPgkJCQkJIGludCAqIG5idmFsLCA8YnIvPgkJCQkJIGludCAqIG5ibmVnLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdmFsdWVzLCA8YnIvPgkJCQkJIGludCAqIHRlcm1pbmFsKTxici8+Cis8L3ByZT48cD5FeHRyYWN0IGluZm9ybWF0aW9ucyBmcm9tIHRoZSByZWdleHAgZXhlY3V0aW9uLCB0aGUgcGFyYW1ldGVyIEB2YWx1ZXMgbXVzdCBwb2ludCB0byBhbiBhcnJheSBvZiBAbmJ2YWwgc3RyaW5nIHBvaW50ZXJzIG9uIHJldHVybiBuYnZhbCB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBwb3NzaWJsZSBzdHJpbmdzIGluIHRoYXQgc3RhdGUgYW5kIHRoZSBAdmFsdWVzIGFycmF5IHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZW0uIFRoZSBzdHJpbmcgdmFsdWVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leGVjPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJ2YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBhY2NlcHRlZCB2YWx1ZXMgSU4vT1VUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYm5lZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cmV0dXJuIG51bWJlciBvZiBuZWdhdGl2ZSB0cmFuc2l0aW9uczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiBhY2NlcHRhYmxlIHZhbHVlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGVybWluYWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJldHVybiB2YWx1ZSBpZiB0aGlzIHdhcyBhIHRlcm1pbmFsIHN0YXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53aWxsIGJlIGZyZWVkIHdpdGggdGhlIEBleGVjIGNvbnRleHQgYW5kIGRvbid0IG5lZWQgdG8gYmUgZGVhbGxvY2F0ZWQuIFJldHVybnM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnRXhlY1B1c2hTdHJpbmciLz54bWxSZWdFeGVjUHVzaFN0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWdFeGVjUHVzaFN0cmluZwkJKDxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+UHVzaCBvbmUgaW5wdXQgdG9rZW4gaW4gdGhlIGV4ZWN1dGlvbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leGVjPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyB0b2tlbiBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSB0b2tlbiB0byByZXVzZSBpbiBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIHJlZ2V4cCByZWFjaGVkIGEgZmluYWwgc3RhdGUsIDAgaWYgbm9uLWZpbmFsLCBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZ0V4ZWNQdXNoU3RyaW5nMiIvPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nMiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWdFeGVjUHVzaFN0cmluZzIJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYywgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlMiwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+UHVzaCBvbmUgaW5wdXQgdG9rZW4gaW4gdGhlIGV4ZWN1dGlvbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leGVjPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3Qgc3RyaW5nIHRva2VuIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgc3RyaW5nIHRva2VuIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5kYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRva2VuIHRvIHJldXNlIGluIGNhbGxiYWNrczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgcmVnZXhwIHJlYWNoZWQgYSBmaW5hbCBzdGF0ZSwgMCBpZiBub24tZmluYWwsIGFuZCBhIG5lZ2F0aXZlIHZhbHVlIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnRnJlZUV4ZWNDdHh0Ii8+eG1sUmVnRnJlZUV4ZWNDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWdGcmVlRXhlY0N0eHQJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYyk8YnIvPgorPC9wcmU+PHA+RnJlZSB0aGUgc3RydWN0dXJlcyBhc3NvY2lhdGVkIHRvIGEgcmVndWxhciBleHByZXNzaW9uIGV2YXVsYXRpb24gY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4ZWM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcmVndWxhciBleHByZXNzaW9uIGV2YXVsYXRpb24gY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZ0ZyZWVSZWdleHAiLz54bWxSZWdGcmVlUmVnZXhwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWdGcmVlUmVnZXhwCQkoPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4gcmVnZXhwKTxici8+Cis8L3ByZT48cD5GcmVlIGEgcmVnZXhwPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWdleHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWdleHA8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdOZXdFeGVjQ3R4dCIvPnhtbFJlZ05ld0V4ZWNDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+CXhtbFJlZ05ld0V4ZWNDdHh0CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+IGNhbGxiYWNrLCA8YnIvPgkJCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+QnVpbGQgYSBjb250ZXh0IHVzZWQgZm9yIHByb2dyZXNzaXZlIGV2YWx1YXRpb24gb2YgYSByZWdleHAuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZWNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2FsbGJhY2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBmb3IgaGFuZGxpbmcgcHJvZ3Jlc3NlcyBpbiB0aGUgYXV0b21hdGEgbWF0Y2hpbmcgcGhhc2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgY2FsbGJhY2sgaW4gdGhpcyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxSZWdleHBDb21waWxlIi8+eG1sUmVnZXhwQ29tcGlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+CXhtbFJlZ2V4cENvbXBpbGUJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZWdleHApPGJyLz4KKzwvcHJlPjxwPlBhcnNlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb25mb3JtaW5nIHRvIFhNTCBTY2hlbWFzIFBhcnQgMiBEYXRhdHlwZSBBcHBlbmRpeCBGIGFuZCBidWlsZHMgYW4gYXV0b21hdGEgc3VpdGFibGUgZm9yIHRlc3Rpbmcgc3RyaW5ncyBhZ2FpbnN0IHRoYXQgcmVndWxhciBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWdleHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcmVndWxhciBleHByZXNzaW9uIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sUmVnZXhwRXhlYyIvPnhtbFJlZ2V4cEV4ZWMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVnZXhwRXhlYwkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGUgcmVndWxhciBleHByZXNzaW9uIGdlbmVyYXRlcyB0aGUgdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBjaGVjayBhZ2FpbnN0IHRoZSByZWd1bGFyIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgaXQgbWF0Y2hlcywgMCBpZiBub3QgYW5kIGEgbmVnYXRpdmUgdmFsdWUgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QiLz54bWxSZWdleHBJc0RldGVybWluaXN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wKTxici8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGUgcmVndWxhciBleHByZXNzaW9uIGlzIGRldGVybWluaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIGl0IHllcywgMCBpZiBub3QgYW5kIGEgbmVnYXRpdmUgdmFsdWUgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFJlZ2V4cFByaW50Ii8+eG1sUmVnZXhwUHJpbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlZ2V4cFByaW50CQkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4gcmVnZXhwKTxici8+Cis8L3ByZT48cD5QcmludCB0aGUgY29udGVudCBvZiB0aGUgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIGZvciB0aGUgb3V0cHV0IGRlYnVnPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWdleHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb21waWxlZCByZWdleHA8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxzYXZlLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sc2F2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MmE5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sc2F2ZS5odG1sCkBAIC0wLDAgKzEsMTMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnhtbHNhdmU6IHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnhtbHNhdmU8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD54bWxzYXZlIC0gdGhlIFhNTCBkb2N1bWVudCBzZXJpYWxpemVyPC9wPgorICAgIDxwPkFQSSB0byBzYXZlIGRvY3VtZW50IG9yIHN1YnRyZWUgb2YgZG9jdW1lbnQgPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sU2F2ZU9wdGlvbiI+eG1sU2F2ZU9wdGlvbjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2F2ZUN0eHQgPGEgaHJlZj0iI3htbFNhdmVDdHh0Ij54bWxTYXZlQ3R4dDwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0Ij54bWxTYXZlQ3R4dDwvYT4gKiA8YSBocmVmPSIjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPjsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNhdmVUb0lPIj54bWxTYXZlVG9JTzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4gaW93cml0ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNhdmVUb0ZkIj54bWxTYXZlVG9GZDwvYT4JCShpbnQgZmQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sU2F2ZUNsb3NlIj54bWxTYXZlQ2xvc2U8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFNhdmVTZXRBdHRyRXNjYXBlIj54bWxTYXZlU2V0QXR0ckVzY2FwZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IGVzY2FwZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTYXZlVG9CdWZmZXIiPnhtbFNhdmVUb0J1ZmZlcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmZmVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTYXZlVG9GaWxlbmFtZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L2E+CShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK2ludAk8YSBocmVmPSIjeG1sU2F2ZUZsdXNoIj54bWxTYXZlRmx1c2g8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4gY3R4dCk7Citsb25nCTxhIGhyZWY9IiN4bWxTYXZlRG9jIj54bWxTYXZlRG9jPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7CitpbnQJPGEgaHJlZj0iI3htbFNhdmVTZXRFc2NhcGUiPnhtbFNhdmVTZXRFc2NhcGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPiBlc2NhcGUpOworbG9uZwk8YSBocmVmPSIjeG1sU2F2ZVRyZWUiPnhtbFNhdmVUcmVlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZUN0eHQiPlN0cnVjdHVyZSA8L2E+eG1sU2F2ZUN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNhdmVDdHh0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxTYXZlQ3R4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTYXZlQ3R4dFB0ciI+VHlwZWRlZiA8L2E+eG1sU2F2ZUN0eHRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dCI+eG1sU2F2ZUN0eHQ8L2E+ICogeG1sU2F2ZUN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZU9wdGlvbiI+RW51bSA8L2E+eG1sU2F2ZU9wdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFNhdmVPcHRpb24iPnhtbFNhdmVPcHRpb248L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9GT1JNQVQiPlhNTF9TQVZFX0ZPUk1BVDwvYT4gPSAxIC8qIGZvcm1hdCBzYXZlIG91dHB1dCAqLworICAgIDxhIG5hbWU9IlhNTF9TQVZFX05PX0RFQ0wiPlhNTF9TQVZFX05PX0RFQ0w8L2E+ID0gMiAvKiBkcm9wIHRoZSB4bWwgZGVjbGFyYXRpb24gKi8KKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9OT19FTVBUWSI+WE1MX1NBVkVfTk9fRU1QVFk8L2E+ID0gNCAvKiBubyBlbXB0eSB0YWdzICovCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfTk9fWEhUTUwiPlhNTF9TQVZFX05PX1hIVE1MPC9hPiA9IDggLyogZGlzYWJsZSBYSFRNTDEgc3BlY2lmaWMgcnVsZXMgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9YSFRNTCI+WE1MX1NBVkVfWEhUTUw8L2E+ID0gMTYgLyogZm9yY2UgWEhUTUwxIHNwZWNpZmljIHJ1bGVzICovCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfQVNfWE1MIj5YTUxfU0FWRV9BU19YTUw8L2E+ID0gMzIgLyogZm9yY2UgWE1MIHNlcmlhbGl6YXRpb24gb24gSFRNTCBkb2MgKi8KKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9BU19IVE1MIj5YTUxfU0FWRV9BU19IVE1MPC9hPiA9IDY0IC8qICBmb3JjZSBIVE1MIHNlcmlhbGl6YXRpb24gb24gWE1MIGRvYyAqLworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTYXZlQ2xvc2UiLz54bWxTYXZlQ2xvc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZUNsb3NlCQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+Q2xvc2UgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCwgaS5lLiBtYWtlIHN1cmUgdGhhdCBhbGwgYnl0ZXMgaGF2ZSBiZWVuIG91dHB1dCBhbmQgZnJlZSB0aGUgYXNzb2NpYXRlZCBkYXRhLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBzYXZpbmcgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTYXZlRG9jIi8+eG1sU2F2ZURvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmxvbmcJeG1sU2F2ZURvYwkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+U2F2ZSBhIGZ1bGwgZG9jdW1lbnQgdG8gYSBzYXZpbmcgY29udGV4dCBUT0RPOiBUaGUgZnVuY3Rpb24gaXMgbm90IGZ1bGx5IGltcGxlbWVudGVkIHlldCBhcyBpdCBkb2VzIG5vdCByZXR1cm4gdGhlIGJ5dGUgY291bnQgYnV0IDAgaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBzYXZpbmcgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZsdXNoIi8+eG1sU2F2ZUZsdXNoICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNhdmVGbHVzaAkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZsdXNoIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQsIGkuZS4gbWFrZSBzdXJlIHRoYXQgYWxsIGJ5dGVzIGhhdmUgYmVlbiBvdXRwdXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IHNhdmluZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNhdmVTZXRBdHRyRXNjYXBlIi8+eG1sU2F2ZVNldEF0dHJFc2NhcGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZVNldEF0dHJFc2NhcGUJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IGVzY2FwZSk8YnIvPgorPC9wcmU+PHA+U2V0IGEgY3VzdG9tIGVzY2FwaW5nIGZ1bmN0aW9uIHRvIGJlIHVzZWQgZm9yIHRleHQgaW4gPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gY29udGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBzYXZpbmcgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXNjYXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXNjYXBpbmcgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2Vzc2Z1bCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNhdmVTZXRFc2NhcGUiLz54bWxTYXZlU2V0RXNjYXBlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNhdmVTZXRFc2NhcGUJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IGVzY2FwZSk8YnIvPgorPC9wcmU+PHA+U2V0IGEgY3VzdG9tIGVzY2FwaW5nIGZ1bmN0aW9uIHRvIGJlIHVzZWQgZm9yIHRleHQgaW4gZWxlbWVudCBjb250ZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IHNhdmluZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lc2NhcGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlc2NhcGluZyBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZXNzZnVsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZVRvQnVmZmVyIi8+eG1sU2F2ZVRvQnVmZmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPgl4bWxTYXZlVG9CdWZmZXIJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmZmVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQgc2VyaWFsaXppbmcgdG8gYSBidWZmZXIgd2l0aCB0aGUgZW5jb2RpbmcgYW5kIHRoZSBvcHRpb25zIGdpdmVuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIG5hbWUgdG8gdXNlIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2V0IG9mIHhtbFNhdmVPcHRpb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBzZXJpYWxpemF0aW9uIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNhdmVUb0ZkIi8+eG1sU2F2ZVRvRmQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+CXhtbFNhdmVUb0ZkCQkoaW50IGZkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQgc2VyaWFsaXppbmcgdG8gYSBmaWxlIGRlc2NyaXB0b3Igd2l0aCB0aGUgZW5jb2RpbmcgYW5kIHRoZSBvcHRpb25zIGdpdmVuLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBkZXNjcmlwdG9yIG51bWJlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBuYW1lIHRvIHVzZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiB4bWxTYXZlT3B0aW9uczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgc2VyaWFsaXphdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTYXZlVG9GaWxlbmFtZSIvPnhtbFNhdmVUb0ZpbGVuYW1lICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPgl4bWxTYXZlVG9GaWxlbmFtZQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQgc2VyaWFsaXppbmcgdG8gYSBmaWxlbmFtZSBvciBwb3NzaWJseSB0byBhbiBVUkwgKGJ1dCB0aGlzIGlzIGxlc3MgcmVsaWFibGUpIHdpdGggdGhlIGVuY29kaW5nIGFuZCB0aGUgb3B0aW9ucyBnaXZlbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgbmFtZSBvciBhbiBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSB0byB1c2Ugb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgeG1sU2F2ZU9wdGlvbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZVRvSU8iLz54bWxTYXZlVG9JTyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4JeG1sU2F2ZVRvSU8JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4gaW93cml0ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyLz4JCQkJCSB2b2lkICogaW9jdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCBzZXJpYWxpemluZyB0byBhIGZpbGUgZGVzY3JpcHRvciB3aXRoIHRoZSBlbmNvZGluZyBhbmQgdGhlIG9wdGlvbnMgZ2l2ZW48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmlvd3JpdGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyB3cml0ZSBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSB0byB1c2Ugb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgeG1sU2F2ZU9wdGlvbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2F2ZVRyZWUiLz54bWxTYXZlVHJlZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmxvbmcJeG1sU2F2ZVRyZWUJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPlNhdmUgYSBzdWJ0cmVlIHN0YXJ0aW5nIGF0IHRoZSBub2RlIHBhcmFtZXRlciB0byBhIHNhdmluZyBjb250ZXh0IFRPRE86IFRoZSBmdW5jdGlvbiBpcyBub3QgZnVsbHkgaW1wbGVtZW50ZWQgeWV0IGFzIGl0IGRvZXMgbm90IHJldHVybiB0aGUgYnl0ZSBjb3VudCBidXQgMCBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IHNhdmluZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdG9wIG5vZGUgb2YgdGhlIHN1YnRyZWUgdG8gc2F2ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxzY2hlbWFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M0OWRmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxzY2hlbWFzLmh0bWwKQEAgLTAsMCArMSwyOTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eG1sc2NoZW1hczogaW5jb21wbGV0ZSBYTUwgU2NoZW1hcyBzdHJ1Y3R1cmUgaW1wbGVtZW50YXRpb248L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj54bWxzY2hlbWFzPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+eG1sc2NoZW1hcyAtIGluY29tcGxldGUgWE1MIFNjaGVtYXMgc3RydWN0dXJlIGltcGxlbWVudGF0aW9uPC9wPgorICAgIDxwPmludGVyZmFjZSB0byB0aGUgWE1MIFNjaGVtYXMgaGFuZGxpbmcgYW5kIHNjaGVtYSB2YWxpZGl0eSBjaGVja2luZywgaXQgaXMgaW5jb21wbGV0ZSByaWdodCBub3cuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYSI+eG1sU2NoZW1hPC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWFQdHIiPnhtbFNjaGVtYVB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hUGFyc2VyQ3R4dCA8YSBocmVmPSIjeG1sU2NoZW1hUGFyc2VyQ3R4dCI+eG1sU2NoZW1hUGFyc2VyQ3R4dDwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkT3B0aW9uIj54bWxTY2hlbWFWYWxpZE9wdGlvbjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiPnhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3Q8L2E+ICogPGEgaHJlZj0iI3htbFNjaGVtYVNBWFBsdWdQdHIiPnhtbFNjaGVtYVNBWFBsdWdQdHI8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVNBWFBsdWcgPGEgaHJlZj0iI3htbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiPnhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3Q8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHQiPnhtbFNjaGVtYVZhbGlkQ3R4dDwvYT4gKiA8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0Ij54bWxTY2hlbWFQYXJzZXJDdHh0PC9hPiAqIDxhIGhyZWY9IiN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWEgPGEgaHJlZj0iI3htbFNjaGVtYSI+eG1sU2NoZW1hPC9hPjsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRFcnJvciI+eG1sU2NoZW1hVmFsaWRFcnJvcjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hVmFsaWRDdHh0IDxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZEN0eHQiPnhtbFNjaGVtYVZhbGlkQ3R4dDwvYT47Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWFTQVhVbnBsdWciPnhtbFNjaGVtYVNBWFVucGx1ZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnUHRyIj54bWxTY2hlbWFTQVhQbHVnUHRyPC9hPiBwbHVnKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hUGFyc2UiPnhtbFNjaGVtYVBhcnNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQiPnhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld1BhcnNlckN0eHQiPnhtbFNjaGVtYU5ld1BhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogVVJMKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hSXNWYWxpZCI+eG1sU2NoZW1hSXNWYWxpZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCk7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyLz4JCQkJCSAuLi4gLi4uKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdQdHIiPnhtbFNjaGVtYVNBWFBsdWdQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+ICogc2F4LCA8YnIvPgkJCQkJCSB2b2lkICoqIHVzZXJfZGF0YSk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIj54bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGlucHV0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlcl9kYXRhKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gKiB3YXJuLCA8YnIvPgkJCQkJIHZvaWQgKiogY3R4KTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBzZXJyb3IsIDxici8+CQkJCQkJIHZvaWQgKiBjdHgpOwordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMiPnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4gZXJyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+IHdhcm4sIDxici8+CQkJCQkgdm9pZCAqIGN0eCk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMiPnhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlRmlsZSI+eG1sU2NoZW1hVmFsaWRhdGVGaWxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlRG9jIj54bWxTY2hlbWFWYWxpZGF0ZURvYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYUZyZWUiPnhtbFNjaGVtYUZyZWU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPiBzY2hlbWEpOworPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld01lbVBhcnNlckN0eHQiPnhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJCQkgaW50IHNpemUpOworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hR2V0VmFsaWRFcnJvcnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9hPiAqIGVyciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiAqIHdhcm4sIDxici8+CQkJCQkgdm9pZCAqKiBjdHgpOworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMiPnhtbFNjaGVtYVNldFZhbGlkT3B0aW9uczwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYVNldFBhcnNlckVycm9ycyI+eG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2E+IGVyciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiB3YXJuLCA8YnIvPgkJCQkJIHZvaWQgKiBjdHgpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pOwordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hRHVtcCI+eG1sU2NoZW1hRHVtcDwvYT4JCQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQdHIiPnhtbFNjaGVtYVB0cjwvYT4gc2NoZW1hKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYUZyZWVWYWxpZEN0eHQiPnhtbFNjaGVtYUZyZWVWYWxpZEN0eHQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQiPnhtbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IHNlcnJvciwgPGJyLz4JCQkJCQkgdm9pZCAqIGN0eCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld1ZhbGlkQ3R4dCI+eG1sU2NoZW1hTmV3VmFsaWRDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+IHNjaGVtYSk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hIj5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hIHsKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHNjaGVtYSBuYW1lCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXRhcmdldE5hbWVzcGFjZQk6IHRoZSB0YXJnZXQgbmFtZXNwYWNlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXZlcnNpb24KKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJaWQJOiBPYnNvbGV0ZQorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPglkb2MKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgaW50CWZsYWdzCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CXR5cGVEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CWF0dHJEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CWF0dHJncnBEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CWVsZW1EZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CW5vdGFEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CXNjaGVtYXNJbXBvcnRzCisgICAgdm9pZCAqCV9wcml2YXRlCTogdW51c2VkIGJ5IHRoZSBsaWJyYXJ5IGZvciB1c2VycyBvciBiaW5kaW5ncworICAgIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPglncm91cERlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPglkaWN0CisgICAgdm9pZCAqCWluY2x1ZGVzCTogdGhlIGluY2x1ZGVzLCB0aGlzIGlzIG9wYXF1ZSBmb3Igbm93CisgICAgaW50CXByZXNlcnZlCTogd2hldGhlciB0byBmcmVlIHRoZSBkb2N1bWVudAorICAgIGludAljb3VudGVyCTogdXNlZCB0byBnaXZlIG9ub255bW91cyBjb21wb25lbnRzIHVuaXF1ZSBuYW1lcworICAgIDxhIGhyZWY9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPglpZGNEZWYJOiBBbGwgaWRlbnRpdHktY29uc3RyYWludCBkZWZzLgorICAgIHZvaWQgKgl2b2xhdGlsZXMJOiBPYnNvbGV0ZQorfSB4bWxTY2hlbWE7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hUGFyc2VyQ3R4dCI+U3RydWN0dXJlIDwvYT54bWxTY2hlbWFQYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxTY2hlbWFQYXJzZXJDdHh0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxTY2hlbWFQYXJzZXJDdHh0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVBhcnNlckN0eHRQdHIiPlR5cGVkZWYgPC9hPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0Ij54bWxTY2hlbWFQYXJzZXJDdHh0PC9hPiAqIHhtbFNjaGVtYVBhcnNlckN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hUHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWFQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWEiPnhtbFNjaGVtYTwvYT4gKiB4bWxTY2hlbWFQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hU0FYUGx1Z1B0ciI+VHlwZWRlZiA8L2E+eG1sU2NoZW1hU0FYUGx1Z1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiPnhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3Q8L2E+ICogeG1sU2NoZW1hU0FYUGx1Z1B0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFTQVhQbHVnU3RydWN0Ij5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFNjaGVtYVNBWFBsdWcgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3Q7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRDdHh0Ij5TdHJ1Y3R1cmUgPC9hPnhtbFNjaGVtYVZhbGlkQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sU2NoZW1hVmFsaWRDdHh0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxTY2hlbWFWYWxpZEN0eHQ7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRDdHh0UHRyIj5UeXBlZGVmIDwvYT54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHQiPnhtbFNjaGVtYVZhbGlkQ3R4dDwvYT4gKiB4bWxTY2hlbWFWYWxpZEN0eHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRFcnJvciI+RW51bSA8L2E+eG1sU2NoZW1hVmFsaWRFcnJvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkRXJyb3IiPnhtbFNjaGVtYVZhbGlkRXJyb3I8L2E+IHsKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfT0siPlhNTF9TQ0hFTUFTX0VSUl9PSzwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX05PUk9PVCI+WE1MX1NDSEVNQVNfRVJSX05PUk9PVDwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX1VOREVDTEFSRURFTEVNIj5YTUxfU0NIRU1BU19FUlJfVU5ERUNMQVJFREVMRU08L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RUT1BMRVZFTCI+WE1MX1NDSEVNQVNfRVJSX05PVFRPUExFVkVMPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTUlTU0lORyI+WE1MX1NDSEVNQVNfRVJSX01JU1NJTkc8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9XUk9OR0VMRU0iPlhNTF9TQ0hFTUFTX0VSUl9XUk9OR0VMRU08L2E+ID0gNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RZUEUiPlhNTF9TQ0hFTUFTX0VSUl9OT1RZUEU8L2E+ID0gNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1JPTExCQUNLIj5YTUxfU0NIRU1BU19FUlJfTk9ST0xMQkFDSzwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lTQUJTVFJBQ1QiPlhNTF9TQ0hFTUFTX0VSUl9JU0FCU1RSQUNUPC9hPiA9IDgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9URU1QVFkiPlhNTF9TQ0hFTUFTX0VSUl9OT1RFTVBUWTwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0VMRU1DT05UIj5YTUxfU0NIRU1BU19FUlJfRUxFTUNPTlQ8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfSEFWRURFRkFVTFQiPlhNTF9TQ0hFTUFTX0VSUl9IQVZFREVGQVVMVDwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1ROSUxMQUJMRSI+WE1MX1NDSEVNQVNfRVJSX05PVE5JTExBQkxFPC9hPiA9IDEyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0VYVFJBQ09OVEVOVCI+WE1MX1NDSEVNQVNfRVJSX0VYVFJBQ09OVEVOVDwvYT4gPSAxMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9JTlZBTElEQVRUUiI+WE1MX1NDSEVNQVNfRVJSX0lOVkFMSURBVFRSPC9hPiA9IDE0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lOVkFMSURFTEVNIj5YTUxfU0NIRU1BU19FUlJfSU5WQUxJREVMRU08L2E+ID0gMTUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9UREVURVJNSU5JU1QiPlhNTF9TQ0hFTUFTX0VSUl9OT1RERVRFUk1JTklTVDwvYT4gPSAxNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9DT05TVFJVQ1QiPlhNTF9TQ0hFTUFTX0VSUl9DT05TVFJVQ1Q8L2E+ID0gMTcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfSU5URVJOQUwiPlhNTF9TQ0hFTUFTX0VSUl9JTlRFUk5BTDwvYT4gPSAxOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RTSU1QTEUiPlhNTF9TQ0hFTUFTX0VSUl9OT1RTSU1QTEU8L2E+ID0gMTkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfQVRUUlVOS05PV04iPlhNTF9TQ0hFTUFTX0VSUl9BVFRSVU5LTk9XTjwvYT4gPSAyMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9BVFRSSU5WQUxJRCI+WE1MX1NDSEVNQVNfRVJSX0FUVFJJTlZBTElEPC9hPiA9IDIxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX1ZBTFVFIj5YTUxfU0NIRU1BU19FUlJfVkFMVUU8L2E+ID0gMjIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfRkFDRVQiPlhNTF9TQ0hFTUFTX0VSUl9GQUNFVDwvYT4gPSAyMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl8iPlhNTF9TQ0hFTUFTX0VSUl88L2E+ID0gMjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfWFhYIj5YTUxfU0NIRU1BU19FUlJfWFhYPC9hPiA9IDI1Cit9OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkT3B0aW9uIj5FbnVtIDwvYT54bWxTY2hlbWFWYWxpZE9wdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkT3B0aW9uIj54bWxTY2hlbWFWYWxpZE9wdGlvbjwvYT4geworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVkFMX1ZDX0lfQ1JFQVRFIj5YTUxfU0NIRU1BX1ZBTF9WQ19JX0NSRUFURTwvYT4gPSAxIC8qICBEZWZhdWx0L2ZpeGVkOiBjcmVhdGUgYW4gYXR0cmlidXRlIG5vZGUgKiBvciBhbiBlbGVtZW50J3MgdGV4dCBub2RlIG9uIHRoZSBpbnN0YW5jZS4gKiAqLworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyIvPkZ1bmN0aW9uIHR5cGUgeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+U2lnbmF0dXJlIG9mIGFuIGVycm9yIGNhbGxiYWNrIGZyb20gYW4gWFNEIHZhbGlkYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jCSh2b2lkICogY3R4LCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+U2lnbmF0dXJlIG9mIGEgd2FybmluZyBjYWxsYmFjayBmcm9tIGFuIFhTRCB2YWxpZGF0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRHVtcCIvPnhtbFNjaGVtYUR1bXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUR1bXAJCQkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQdHIiPnhtbFNjaGVtYVB0cjwvYT4gc2NoZW1hKTxici8+Cis8L3ByZT48cD5EdW1wIGEgU2NoZW1hIHN0cnVjdHVyZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUZyZWUiLz54bWxTY2hlbWFGcmVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFGcmVlCQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPiBzY2hlbWEpPGJyLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgYSBTY2hlbWEgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2NoZW1hPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSBzdHJ1Y3R1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dCIvPnhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dAkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGcmVlVmFsaWRDdHh0Ii8+eG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dAkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5GcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiLz54bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gKiB3YXJuLCA8YnIvPgkJCQkJIHZvaWQgKiogY3R4KTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGNhbGxiYWNrIGluZm9ybWF0aW9uIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBYTWwtU2NoZW1hIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lcnI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBjYWxsYmFjayByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3YXJuaW5nIGNhbGxiYWNrIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb250ZXh0dWFsIGRhdGEgZm9yIHRoZSBjYWxsYmFja3MgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMiLz54bWxTY2hlbWFHZXRWYWxpZEVycm9ycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFHZXRWYWxpZEVycm9ycwkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gKiB3YXJuLCA8YnIvPgkJCQkJIHZvaWQgKiogY3R4KTxici8+Cis8L3ByZT48cD5HZXQgdGhlIGVycm9yIGFuZCB3YXJuaW5nIGNhbGxiYWNrIGluZm9ybWF0aW9uczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBYTUwtU2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgZnVuY3Rpb24gcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53YXJuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2FybmluZyBmdW5jdGlvbiByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9ucyBjb250ZXh0IHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvZiBlcnJvciBhbmQgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFJc1ZhbGlkIi8+eG1sU2NoZW1hSXNWYWxpZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFJc1ZhbGlkCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIGlmIGFueSBlcnJvciB3YXMgZGV0ZWN0ZWQgZHVyaW5nIHZhbGlkYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBzbyBmYXIsIDAgaWYgZXJyb3JzIHdlcmUgZGV0ZWN0ZWQsIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiLz54bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4JeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIFhNTCBTY2hlbWFzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZG9jdW1lbnQuIE5CLiBUaGUgZG9jdW1lbnQgbWF5IGJlIG1vZGlmaWVkIGR1cmluZyB0aGUgcGFyc2luZyBwcm9jZXNzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZXBhcnNlZCBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCIvPnhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPgl4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIvPgkJCQkJCQkgaW50IHNpemUpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgU2NoZW1hcyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IG1lbW9yeSBidWZmZXIgZXhwZWN0ZWQgdG8gY29udGFpbiBhbiBYTUwgU2NoZW1hcyBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5IGNvbnRhaW5pbmcgdGhlIHNjaGVtYXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYU5ld1BhcnNlckN0eHQiLz54bWxTY2hlbWFOZXdQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4JeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIFVSTCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIFhNTCBTY2hlbWFzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZmlsZS9yZXNvdXJjZSBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBTY2hlbWFzIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hTmV3VmFsaWRDdHh0Ii8+eG1sU2NoZW1hTmV3VmFsaWRDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+CXhtbFNjaGVtYU5ld1ZhbGlkQ3R4dAkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+IHNjaGVtYSk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIFhNTCBTY2hlbWFzIHZhbGlkYXRpb24gY29udGV4dCBiYXNlZCBvbiB0aGUgZ2l2ZW4gc2NoZW1hLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2NoZW1hPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZWNvbXBpbGVkIFhNTCBTY2hlbWFzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVBhcnNlIi8+eG1sU2NoZW1hUGFyc2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQdHIiPnhtbFNjaGVtYVB0cjwvYT4JeG1sU2NoZW1hUGFyc2UJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5wYXJzZSBhIHNjaGVtYSBkZWZpbml0aW9uIHJlc291cmNlIGFuZCBidWlsZCBhbiBpbnRlcm5hbCBYTUwgU2hlbWEgc3RydXR1cmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5zdGFuY2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgWE1MIFNjaGVtYSBzdHJ1Y3R1cmUgYnVpbHQgZnJvbSB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hU0FYUGx1ZyIvPnhtbFNjaGVtYVNBWFBsdWcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnUHRyIj54bWxTY2hlbWFTQVhQbHVnUHRyPC9hPgl4bWxTY2hlbWFTQVhQbHVnCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gKiBzYXgsIDxici8+CQkJCQkJIHZvaWQgKiogdXNlcl9kYXRhKTxici8+Cis8L3ByZT48cD5QbHVnIGEgU0FYIGJhc2VkIHZhbGlkYXRpb24gbGF5ZXIgaW4gYSBTQVggcGFyc2luZyBldmVudCBmbG93LiBUaGUgb3JpZ2luYWwgQHNheHB0ciBhbmQgQGRhdGFwdHIgZGF0YSBhcmUgcmVwbGFjZWQgYnkgbmV3IHBvaW50ZXJzIGJ1dCB0aGUgY2FsbHMgdG8gdGhlIG9yaWdpbmFsIHdpbGwgYmUgbWFpbnRhaW5lZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyX2RhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgb3JpZ2luYWwgU0FYIHVzZXIgZGF0YSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBkYXRhIHN0cnVjdHVyZSBuZWVkZWQgdG8gdW5wbHVnIHRoZSB2YWxpZGF0aW9uIGxheWVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hU0FYVW5wbHVnIi8+eG1sU2NoZW1hU0FYVW5wbHVnICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVNBWFVucGx1ZwkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdQdHIiPnhtbFNjaGVtYVNBWFBsdWdQdHI8L2E+IHBsdWcpPGJyLz4KKzwvcHJlPjxwPlVucGx1ZyBhIFNBWCBiYXNlZCB2YWxpZGF0aW9uIGxheWVyIGluIGEgU0FYIHBhcnNpbmcgZXZlbnQgZmxvdy4gVGhlIG9yaWdpbmFsIHBvaW50ZXJzIHVzZWQgaW4gdGhlIGNhbGwgYXJlIHJlc3RvcmVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGx1ZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkYXRhIHN0cnVjdHVyZSByZXR1cm5lZCBieSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMiLz54bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYVNldFBhcnNlckVycm9ycwkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2E+IGVyciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiB3YXJuLCA8YnIvPgkJCQkJIHZvaWQgKiBjdHgpPGJyLz4KKzwvcHJlPjxwPlNldCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3YXJuaW5nIGNhbGxiYWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiLz54bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIvPgkJCQkJCSB2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5TZXQgdGhlIHN0cnVjdHVyZWQgZXJyb3IgY2FsbGJhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZXJyb3I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJ1Y3R1cmVkIGVycm9yIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbnMgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVNldFZhbGlkRXJyb3JzIi8+eG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYVNldFZhbGlkRXJyb3JzCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9hPiBlcnIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gd2FybiwgPGJyLz4JCQkJCSB2b2lkICogY3R4KTxici8+Cis8L3ByZT48cD5TZXQgdGhlIGVycm9yIGFuZCB3YXJuaW5nIGNhbGxiYWNrIGluZm9ybWF0aW9uczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lcnI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2FybjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdhcm5pbmcgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9ucyBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIi8+eG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVNldFZhbGlkT3B0aW9ucwkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG9wdGlvbnMpPGJyLz4KKzwvcHJlPjxwPlNldHMgdGhlIG9wdGlvbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIHZhbGlkYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRPcHRpb24iPnhtbFNjaGVtYVZhbGlkT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgYW4gQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyIvPnhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IHNlcnJvciwgPGJyLz4JCQkJCQkgdm9pZCAqIGN0eCk8YnIvPgorPC9wcmU+PHA+U2V0IHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcnJvcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cnVjdHVyZWQgZXJyb3IgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9ucyBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyIvPnhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucwkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkdldCB0aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9wdGlvbnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb24gY29tYmluYXRpb24gb3IgLTEgb24gZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCIvPnhtbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgl4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+YWxsb3cgYWNjZXNzIHRvIHRoZSBwYXJzZXIgY29udGV4dCBvZiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQgb2YgdGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlRG9jIi8+eG1sU2NoZW1hVmFsaWRhdGVEb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsaWRhdGVEb2MJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5WYWxpZGF0ZSBhIGRvY3VtZW50IHRyZWUgaW4gbWVtb3J5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcGFyc2VkIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIGRvY3VtZW50IGlzIHNjaGVtYXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZUZpbGUiLz54bWxTY2hlbWFWYWxpZGF0ZUZpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsaWRhdGVGaWxlCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5EbyBhIHNjaGVtYXMgdmFsaWRhdGlvbiBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UsIGl0IHdpbGwgdXNlIHRoZSBTQVggc3RyZWFtYWJsZSB2YWxpZGF0aW9uIGludGVybmFsbHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIG9mIHRoZSBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmdXR1cmUgc2V0IG9mIG9wdGlvbnMsIGN1cnJlbnRseSB1bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIGRvY3VtZW50IGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50Ii8+eG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudAkoPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8YnIvPgorPC9wcmU+PHA+VmFsaWRhdGUgYSBicmFuY2ggb2YgYSB0cmVlLCBzdGFydGluZyB3aXRoIHRoZSBnaXZlbiBAZWxlbS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZWxlbWVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBlbGVtZW50IGFuZCBpdHMgc3VidHJlZSBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtIi8+eG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGlucHV0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyLz4JCQkJCSB2b2lkICogdXNlcl9kYXRhKTxici8+Cis8L3ByZT48cD5WYWxpZGF0ZSBhbiBpbnB1dCBiYXNlZCBvbiBhIGZsb3cgb2YgU0FYIGV2ZW50IGZyb20gdGhlIHBhcnNlciBhbmQgZm9yd2FyZCB0aGUgZXZlbnRzIHRvIHRoZSBAc2F4IGhhbmRsZXIgd2l0aCB0aGUgcHJvdmlkZWQgQHVzZXJfZGF0YSB0aGUgdXNlciBwcm92aWRlZCBAc2F4IGhhbmRsZXIgbXVzdCBiZSBhIFNBWDIgb25lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHRvIHVzZSBmb3IgcmVhZGluZyB0aGUgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBlbmNvZGluZyBpbmZvcm1hdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFNBWCBoYW5kbGVyIGZvciB0aGUgcmVzdWx0aW5nIGV2ZW50czwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCB0byBwcm92aWRlIHRvIHRoZSBTQVggaGFuZGxlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIGRvY3VtZW50IGlzIHNjaGVtYXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWU3NzhhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sCkBAIC0wLDAgKzEsMjM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ii8+CisgICAgPHRpdGxlPnhtbHNjaGVtYXN0eXBlczogaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXM8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj54bWxzY2hlbWFzdHlwZXM8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD54bWxzY2hlbWFzdHlwZXMgLSBpbXBsZW1lbnRhdGlvbiBvZiBYTUwgU2NoZW1hIERhdGF0eXBlczwvcD4KKyAgICA8cD5tb2R1bGUgcHJvdmlkaW5nIHRoZSBYTUwgU2NoZW1hIERhdGF0eXBlcyBpbXBsZW1lbnRhdGlvbiBib3RoIGRlZmluaXRpb24gYW5kIHZhbGlkaXR5IGNoZWNraW5nIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj50eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+OworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gKiB2YWwsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHJldFZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4gd3MpOworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+IHZhbFR5cGUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCwgPGJyLz4JCQkJCQkgdW5zaWduZWQgbG9uZyAqIGxlbmd0aCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiB3cyk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCI+eG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gdHlwZSwgPGJyLz4JCQkJCSBpbnQgZmFjZXRUeXBlKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogcmV0VmFsdWUpOworPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlIj54bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUpOworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AiPnhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4geHdzLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB5LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4geXdzKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4iPnhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj54bWxTY2hlbWFDb2xsYXBzZVN0cmluZzwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIj54bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+ICogdmFsLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRhdGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiBiYXNlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpOworPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hTmV3RmFjZXQiPnhtbFNjaGVtYU5ld0ZhY2V0PC9hPgkodm9pZCk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbHVlQXBwZW5kIj54bWxTY2hlbWFWYWx1ZUFwcGVuZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gcHJldiwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gY3VyKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hQ29tcGFyZVZhbHVlcyI+eG1sU2NoZW1hQ29tcGFyZVZhbHVlczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4geCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4geSk7CitpbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxici8+CQkJCQkgdW5zaWduZWQgbG9uZyAqIGxlbmd0aCk7Cis8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hR2V0VmFsVHlwZSI+eG1sU2NoZW1hR2V0VmFsVHlwZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpOworPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIj54bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSI+eG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiAqIHZhbCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFGcmVlRmFjZXQiPnhtbFNjaGVtYUZyZWVGYWNldDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0KTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkJIHVuc2lnbmVkIGxvbmcgYWN0dWFsTGVuLCA8YnIvPgkJCQkJCSB1bnNpZ25lZCBsb25nICogZXhwZWN0ZWRMZW4pOwordW5zaWduZWQgbG9uZwk8YSBocmVmPSIjeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmciPnhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFGcmVlVmFsdWUiPnhtbFNjaGVtYUZyZWVWYWx1ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsdWUpOworPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWx1ZUdldE5leHQiPnhtbFNjaGVtYVZhbHVlR2V0TmV4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiBjdXIpOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nIj54bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYUNvcHlWYWx1ZSI+eG1sU2NoZW1hQ29weVZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUiPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zKTsKKzxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSI+eG1sU2NoZW1hTmV3UU5hbWVWYWx1ZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VOYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsb2NhbE5hbWUpOwordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hQ2xlYW51cFR5cGVzIj54bWxTY2hlbWFDbGVhbnVwVHlwZXM8L2E+CQkodm9pZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIj54bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTsKKzxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJblR5cGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPiB0eXBlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYUluaXRUeXBlcyI+eG1sU2NoZW1hSW5pdFR5cGVzPC9hPgkJKHZvaWQpOworaW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiBmd3MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4gdmFsVHlwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IHdzKTsKK2ludAk8YSBocmVmPSIjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGVEZWNsLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+IHBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj5FbnVtIDwvYT54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4geworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOIj5YTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTjwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9XSElURVNQQUNFX1BSRVNFUlZFIj5YTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkU8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFIj5YTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRTwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFIj5YTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0U8L2E+ID0gMworfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFDaGVja0ZhY2V0Ii8+eG1sU2NoZW1hQ2hlY2tGYWNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFDaGVja0ZhY2V0CQkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlRGVjbCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBwY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2tzIGFuZCBjb21wdXRlcyB0aGUgdmFsdWVzIG9mIGZhY2V0cy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZhY2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGVEZWNsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2NoZW1hIHR5cGUgZGVmaW5pdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9wdGlvbmFsIG5hbWUgb2YgdGhlIHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBpZiBub3QgdmFsaWQgYW5kIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUNsZWFudXBUeXBlcyIvPnhtbFNjaGVtYUNsZWFudXBUeXBlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hQ2xlYW51cFR5cGVzCQkodm9pZCk8YnIvPgorPC9wcmU+PHA+Q2xlYW51cCB0aGUgZGVmYXVsdCBYTUwgU2NoZW1hcyB0eXBlIGxpYnJhcnk8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hQ29sbGFwc2VTdHJpbmciLz54bWxTY2hlbWFDb2xsYXBzZVN0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTY2hlbWFDb2xsYXBzZVN0cmluZwkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5SZW1vdmVzIGFuZCBub3JtYWxpemUgd2hpdGUgc3BhY2VzIGluIHRoZSBzdHJpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHN0cmluZyBvciBOVUxMIGlmIG5vIGNoYW5nZSB3YXMgcmVxdWlyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hQ29tcGFyZVZhbHVlcyIvPnhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hQ29tcGFyZVZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB5KTxici8+Cis8L3ByZT48cD5Db21wYXJlIDIgdmFsdWVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD54PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpcnN0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD55PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaWYgeCAmbHQ7IHksIDAgaWYgeCA9PSB5LCAxIGlmIHggJmd0OyB5LCAyIGlmIHggJmx0OyZndDsgeSwgYW5kIC0yIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AiLz54bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4geCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IHh3cywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4geSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IHl3cyk8YnIvPgorPC9wcmU+PHA+Q29tcGFyZSAyIHZhbHVlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaXJzdCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+eHdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2hpdGVzcGFjZSB2YWx1ZSBvZiB4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD55PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+eXdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2hpdGVzcGFjZSB2YWx1ZSBvZiB5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpZiB4ICZsdDsgeSwgMCBpZiB4ID09IHksIDEgaWYgeCAmZ3Q7IHksIDIgaWYgeCAmbHQ7Jmd0OyB5LCBhbmQgLTIgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUNvcHlWYWx1ZSIvPnhtbFNjaGVtYUNvcHlWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPgl4bWxTY2hlbWFDb3B5VmFsdWUJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNvcGllcyB0aGUgcHJlY29tcHV0ZWQgdmFsdWUuIFRoaXMgZHVwbGljYXRlcyBhbnkgc3RyaW5nIHdpdGhpbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXB1dGVkIHZhbHVlIHRvIGJlIGNvcGllZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvcHkgb3IgTlVMTCBpZiBhIGNvcHkgZm9yIGEgZGF0YS10eXBlIGlzIG5vdCBpbXBsZW1lbnRlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGcmVlRmFjZXQiLz54bWxTY2hlbWFGcmVlRmFjZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUZyZWVGYWNldAkJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQpPGJyLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgYSBTY2hlbWEgRmFjZXQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIGZhY2V0IHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUZyZWVWYWx1ZSIvPnhtbFNjaGVtYUZyZWVWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hRnJlZVZhbHVlCQkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbHVlKTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiLz54bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CXhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlKTxici8+Cis8L3ByZT48cD5Mb29rdXAgZnVuY3Rpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWlsdC1pbiBzaW1wbGUgdHlwZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpdGVtIHR5cGUgb2YgQHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgYnVpbHQtaW4gZGF0YXR5cGUgaGllcmFyY2h5IG9mIFhNTCBTY2hlbWEgUGFydCAyOiBEYXRhdHlwZXMsIG9yIE5VTEwgaW4gY2FzZSBvZiBhbiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSIvPnhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4JeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+IHR5cGUpPGJyLz4KKzwvcHJlPjxwPkdpdmVzIHlvdSB0aGUgdHlwZSBzdHJ1Y3QgZm9yIGEgYnVpbHQtaW4gdHlwZSBieSBpdHMgdHlwZSBpZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0eXBlIG9mIHRoZSBidWlsdCBpbiB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSIvPnhtbFNjaGVtYUdldENhbm9uVmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZQkJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiByZXRWYWx1ZSk8YnIvPgorPC9wcmU+PHA+R2V0IGEgdGhlIGNvbm9uaWNhbCBsZXhpY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS4gVGhlIGNhbGxlciBoYXMgdG8gRlJFRSB0aGUgcmV0dXJuZWQgcmV0VmFsdWUuIFdBUk5JTkc6IFNvbWUgdmFsdWUgdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LCByZXN1bHRpbmcgaW4gYSBAcmV0VmFsdWUgb2YgIj8/PyIuIFRPRE86IFhNTCBTY2hlbWEgMS4wIGRvZXMgbm90IGRlZmluZSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb25zIGZvcjogZHVyYXRpb24sIGdZZWFyTW9udGgsIGdZZWFyLCBnTW9udGhEYXksIGdNb250aCwgZ0RheSwgYW55VVJJLCBRTmFtZSwgTk9UQVRJT04uIFRoaXMgd2lsbCBiZSBmaXhlZCBpbiBYTUwgU2NoZW1hIDEuMS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXB1dGVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXRWYWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJldHVybmVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSB2YWx1ZSBjb3VsZCBiZSBidWlsdCwgMSBpZiB0aGUgdmFsdWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgLTEgaW4gY2FzZSBvZiBBUEkgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCIvPnhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiByZXRWYWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IHdzKTxici8+Cis8L3ByZT48cD5HZXQgYSB0aGUgY29ub25pY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS4gVGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgcmV0dXJuZWQgQHJldFZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcHV0ZWQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJldFZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmV0dXJuZWQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2hpdGVzcGFjZSB0eXBlIG9mIHRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgdmFsdWUgY291bGQgYmUgYnVpbHQsIDEgaWYgdGhlIHZhbHVlIHR5cGUgaXMgbm90IHN1cHBvcnRlZCB5ZXQgYW5kIC0xIGluIGNhc2Ugb2YgQVBJIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZyIvPnhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dW5zaWduZWQgbG9uZwl4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZwkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCk8YnIvPgorPC9wcmU+PHA+RXh0cmFjdCB0aGUgdmFsdWUgb2YgYSBmYWNldDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIHNjaGVtYXMgdHlwZSBmYWNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIGFzIGEgbG9uZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIi8+eG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPgl4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMpPGJyLz4KKzwvcHJlPjxwPkxvb2t1cCBhIHR5cGUgaW4gdGhlIGRlZmF1bHQgWE1MIFNjaGVtYXMgdHlwZSBsaWJyYXJ5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgbmFtZXNwYWNlIHVzdWFsbHkgImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0VmFsVHlwZSIvPnhtbFNjaGVtYUdldFZhbFR5cGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPgl4bWxTY2hlbWFHZXRWYWxUeXBlCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsKTxici8+Cis8L3ByZT48cD5BY2Nlc3NvciBmb3IgdGhlIHR5cGUgb2YgYSB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYXMgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPiBvZiB0aGUgdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFJbml0VHlwZXMiLz54bWxTY2hlbWFJbml0VHlwZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUluaXRUeXBlcwkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgWE1MIFNjaGVtYXMgdHlwZSBsaWJyYXJ5PC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCIvPnhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxici8+CQkJCQkgaW50IGZhY2V0VHlwZSk8YnIvPgorPC9wcmU+PHA+RXZhbHVhdGVzIGlmIGEgc3BlY2lmaWMgZmFjZXQgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhIHR5cGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVpbHQtaW4gdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXRUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgZmFjZXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgZ2l2ZW4gYnVpbHQtaW4gdHlwZSwgMCBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2UgdGhlIHR5cGUgaXMgbm90IGEgYnVpbHQtaW4gdHlwZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFOZXdGYWNldCIvPnhtbFNjaGVtYU5ld0ZhY2V0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPgl4bWxTY2hlbWFOZXdGYWNldAkodm9pZCk8YnIvPgorPC9wcmU+PHA+QWxsb2NhdGUgYSBuZXcgRmFjZXQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGFsbG9jYXRlZCBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZSIvPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucyk8YnIvPgorPC9wcmU+PHA+QWxsb2NhdGUgYSBuZXcgTk9UQVRJT04gdmFsdWUuIFRoZSBnaXZlbiB2YWx1ZXMgYXJlIGNvbnN1bWVkIGFuZCBmcmVlZCB3aXRoIHRoZSBzdHJ1Y3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm90YXRpb24gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub3RhdGlvbiBuYW1lc3BhY2UgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFOZXdRTmFtZVZhbHVlIi8+eG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPgl4bWxTY2hlbWFOZXdRTmFtZVZhbHVlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlTmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxOYW1lKTxici8+Cis8L3ByZT48cD5BbGxvY2F0ZSBhIG5ldyBRTmFtZSB2YWx1ZS4gVGhlIGdpdmVuIHZhbHVlcyBhcmUgY29uc3VtZWQgYW5kIGZyZWVkIHdpdGggdGhlIHN0cnVjdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZU5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bG9jYWxOYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgdmFsdWUgb3IgTlVMTCBpbiBjYXNlIG9mIGFuIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIi8+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxici8+Cis8L3ByZT48cD5BbGxvY2F0ZSBhIG5ldyBzaW1wbGUgdHlwZSB2YWx1ZS4gVGhlIHR5cGUgY2FuIGJlIG9mIFhNTF9TQ0hFTUFTX1NUUklORy4gV0FSTklORzogVGhpcyBvbmUgaXMgaW50ZW5kZWQgdG8gYmUgZXhwYW5kZWQgZm9yIG90aGVyIHN0cmluZyBiYXNlZCB0eXBlcy4gV2UgbmVlZCB0aGlzIGZvciBhbnlTaW1wbGVUeXBlIGFzIHdlbGwuIFRoZSBnaXZlbiB2YWx1ZSBpcyBjb25zdW1lZCBhbmQgZnJlZWQgd2l0aCB0aGUgc3RydWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IHZhbHVlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlIi8+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiAqIHZhbCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgdGhlIHByZWRlZmluZWQgdHlwZS4gaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWRlZmluZWQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmV0dXJuIGNvbXB1dGVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBjb250YWluaW5nIHRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIi8+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0JKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+ICogdmFsLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgdGhlIHByZWRlZmluZWQgdHlwZS4gaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLiBUaGlzIG9uZSBkb2VzIGFwcGx5IGFueSBub3JtYWxpemF0aW9uIHRvIHRoZSB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVkZWZpbmVkIHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJldHVybiBjb21wdXRlZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgY29udGFpbmluZyB0aGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0Ii8+eG1sU2NoZW1hVmFsaWRhdGVGYWNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0CQkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gYmFzZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsKTxici8+Cis8L3ByZT48cD5DaGVjayBhIHZhbHVlIGFnYWluc3QgYSBmYWNldCBjb25kaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJhc2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZhY2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGV4aWNhbCByZXByIG9mIHRoZSB2YWx1ZSB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcHV0ZWQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIGVsZW1lbnQgaXMgc2NoZW1hcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCIvPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiBmd3MsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4gdmFsVHlwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IHdzKTxici8+Cis8L3ByZT48cD5DaGVjayBhIHZhbHVlIGFnYWluc3QgYSBmYWNldCBjb25kaXRpb24uIFRoaXMgdGFrZXMgdmFsdWUgbm9ybWFsaXphdGlvbiBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCB3aGl0ZXNwYWNlIHR5cGVzIGludG8gYWNjb3VudC4gTm90ZSB0aGF0IEB2YWx1ZSBuZWVkcyB0byBiZSB0aGUgKm5vcm1hbGl6ZWQqIHZhbHVlIGlmIHRoZSBmYWNldCBpcyBvZiB0eXBlICJwYXR0ZXJuIi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZhY2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ3czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdoaXRlc3BhY2UgdHlwZSBvZiB0aGUgZmFjZXQncyB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsVHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1aWx0LWluIHR5cGUgb2YgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxleGljYWwgKG9yIG5vcm1hbGl6ZWQgZm9yIHBhdHRlcm4pIHJlcHIgb2YgdGhlIHZhbHVlIHRvIHZhbGlkYXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVjb21wdXRlZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBlbGVtZW50IGlzIHNjaGVtYXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ii8+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0CSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxici8+CQkJCQkgdW5zaWduZWQgbG9uZyAqIGxlbmd0aCk8YnIvPgorPC9wcmU+PHA+Q2hlY2thIGEgdmFsdWUgYWdhaW5zdCBhICJsZW5ndGgiLCAibWluTGVuZ3RoIiBhbmQgIm1heExlbmd0aCIgZmFjZXQ7IHNldHMgQGxlbmd0aCB0byB0aGUgY29tcHV0ZWQgbGVuZ3RoIG9mIEB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWlsdC1pbiB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mYWNldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZhY2V0IHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxleGljYWwgcmVwci4gb2YgdGhlIHZhbHVlIHRvIGJlIHZhbGlkYXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcHV0ZWQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmxlbmd0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFjdHVhbCBsZW5ndGggb2YgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwIi8+eG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcAkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4gdmFsVHlwZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsLCA8YnIvPgkJCQkJCSB1bnNpZ25lZCBsb25nICogbGVuZ3RoLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IHdzKTxici8+Cis8L3ByZT48cD5DaGVja2EgYSB2YWx1ZSBhZ2FpbnN0IGEgImxlbmd0aCIsICJtaW5MZW5ndGgiIGFuZCAibWF4TGVuZ3RoIiBmYWNldDsgc2V0cyBAbGVuZ3RoIHRvIHRoZSBjb21wdXRlZCBsZW5ndGggb2YgQHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmYWNldCB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsVHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1aWx0LWluIHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGV4aWNhbCByZXByLiBvZiB0aGUgdmFsdWUgdG8gYmUgdmFsaWRhdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVjb21wdXRlZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuZ3RoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYWN0dWFsIGxlbmd0aCBvZiB0aGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2hpdGVzcGFjZSB0eXBlIG9mIHRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCIvPnhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQJKDxhIGhyZWY9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCQkgdW5zaWduZWQgbG9uZyBhY3R1YWxMZW4sIDxici8+CQkJCQkJIHVuc2lnbmVkIGxvbmcgKiBleHBlY3RlZExlbik8YnIvPgorPC9wcmU+PHA+Q2hlY2tzIHRoZSB2YWx1ZSBvZiBhIGxpc3Qgc2ltcGxlIHR5cGUgYWdhaW5zdCBhIGZhY2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmYWNldCB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZXhpY2FsIHJlcHIgb2YgdGhlIHZhbHVlIHRvIHZhbGlkYXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hY3R1YWxMZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgbGlzdCBpdGVtczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwZWN0ZWRMZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZXhwZWN0ZWQgbnVtYmVyIG9mIGxpc3QgaXRlbXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlIi8+eG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlCSg8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gKiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiB0aGUgcHJlZGVmaW5lZCB0eXBlLiBpZiB0cnVlIGEgdmFsdWUgaXMgY29tcHV0ZWQgYW5kIHJldHVybmVkIGluIEB2YWwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZGVmaW5lZCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWx1ZUFwcGVuZCIvPnhtbFNjaGVtYVZhbHVlQXBwZW5kICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbHVlQXBwZW5kCQkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHByZXYsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+QXBwZW5kcyBhIG5leHQgc2libGluZyB0byBhIGxpc3Qgb2YgY29tcHV0ZWQgdmFsdWVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJldjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBiZSBhcHBlbmRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZWVkZWQgYW5kIC0xIG9uIEFQSSBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4iLz54bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbgkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+QWNjZXNzb3IgZm9yIHRoZSBib29sZWFuIHZhbHVlIG9mIGEgY29tcHV0ZWQgdmFsdWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIGFuZCAwIGlmIGZhbHNlLCBvciBpbiBjYXNlIG9mIGFuIGVycm9yLiBIbW0uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyIvPnhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZwkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+QWNjZXNzb3IgZm9yIHRoZSBzdHJpbmcgdmFsdWUgb2YgYSBjb21wdXRlZCB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHZhbHVlIG9yIE5VTEwgaWYgdGhlcmUgd2FzIG5vbmUsIG9yIG9uIEFQSSBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsdWVHZXROZXh0Ii8+eG1sU2NoZW1hVmFsdWVHZXROZXh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+CXhtbFNjaGVtYVZhbHVlR2V0TmV4dAkoPGEgaHJlZj0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+QWNjZXNzb3IgZm9yIHRoZSBuZXh0IHNpYmxpbmcgb2YgYSBsaXN0IG9mIGNvbXB1dGVkIHZhbHVlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCB2YWx1ZSBvciBOVUxMIGlmIHRoZXJlIHdhcyBub25lLCBvciBvbiBBUEkgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIi8+eG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+UmVwbGFjZXMgMHhkLCAweDkgYW5kIDB4YSB3aXRoIGEgc3BhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpZiBubyBjaGFuZ2Ugd2FzIHJlcXVpcmVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHN0cmluZy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHN0cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZmM3MGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sc3RyaW5nLmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eG1sc3RyaW5nOiBzZXQgb2Ygcm91dGluZXMgdG8gcHJvY2VzcyBzdHJpbmdzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImdlbmVyYWwuaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+eG1sc3RyaW5nPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+eG1sc3RyaW5nIC0gc2V0IG9mIHJvdXRpbmVzIHRvIHByb2Nlc3Mgc3RyaW5nczwvcD4KKyAgICA8cD50eXBlIGFuZCBpbnRlcmZhY2VzIG5lZWRlZCBmb3IgdGhlIGludGVybmFsIHN0cmluZyBoYW5kbGluZyBvZiB0aGUgbGlicmFyeSwgZXNwZWNpYWxseSBVVEY4IHByb2Nlc3NpbmcuIDwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj4jZGVmaW5lIDxhIGhyZWY9IiNCQURfQ0FTVCI+QkFEX0NBU1Q8L2E+OwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIDxhIGhyZWY9IiN4bWxDaGFyIj54bWxDaGFyPC9hPjsKK2ludAk8YSBocmVmPSIjeG1sU3RyY21wIj54bWxTdHJjbXA8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQ2hhclN0cm5kdXAiPnhtbENoYXJTdHJuZHVwPC9hPgkJKGNvbnN0IGNoYXIgKiBjdXIsIDxici8+CQkJCQkgaW50IGxlbik7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cmNhc2VzdHIiPnhtbFN0cmNhc2VzdHI8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RyY2F0Ij54bWxTdHJjYXQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYWRkKTsKK2ludAk8YSBocmVmPSIjeG1sU3RyUHJpbnRmIj54bWxTdHJQcmludGY8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxici8+CQkJCQkgaW50IGxlbiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbXNnLCA8YnIvPgkJCQkJIC4uLiAuLi4pOworY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJzdHIiPnhtbFN0cnN0cjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpOworaW50CTxhIGhyZWY9IiN4bWxVVEY4U2l6ZSI+eG1sVVRGOFNpemU8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYpOworaW50CTxhIGhyZWY9IiN4bWxTdHJRRXF1YWwiPnhtbFN0clFFcXVhbDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cm5jYXROZXciPnhtbFN0cm5jYXROZXc8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjEsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjIsIDxici8+CQkJCQkgaW50IGxlbik7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFVURjhTdHJwb3MiPnhtbFVURjhTdHJwb3M8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyLz4JCQkJCSBpbnQgcG9zKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RyZHVwIj54bWxTdHJkdXA8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1cik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbENoYXJTdHJkdXAiPnhtbENoYXJTdHJkdXA8L2E+CQkoY29uc3QgY2hhciAqIGN1cik7Citjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cmNociI+eG1sU3RyY2hyPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB2YWwpOworaW50CTxhIGhyZWY9IiN4bWxTdHJsZW4iPnhtbFN0cmxlbjwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik7CitpbnQJPGEgaHJlZj0iI3htbFN0cm5jbXAiPnhtbFN0cm5jbXA8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyLCA8YnIvPgkJCQkJIGludCBsZW4pOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJzdWIiPnhtbFN0cnN1YjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGludCBzdGFydCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RybmNhdCI+eG1sU3RybmNhdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhZGQsIDxici8+CQkJCQkgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbEdldFVURjhDaGFyIj54bWxHZXRVVEY4Q2hhcjwvYT4JCQkoY29uc3QgdW5zaWduZWQgY2hhciAqIHV0ZiwgPGJyLz4JCQkJCSBpbnQgKiBsZW4pOworaW50CTxhIGhyZWY9IiN4bWxTdHJjYXNlY21wIj54bWxTdHJjYXNlY21wPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cm5kdXAiPnhtbFN0cm5kdXA8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sU3RyVlByaW50ZiI+eG1sU3RyVlByaW50ZjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZiwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBtc2csIDxici8+CQkJCQkgdmFfbGlzdCBhcCk7CitpbnQJPGEgaHJlZj0iI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+CQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiB1dGYpOworaW50CTxhIGhyZWY9IiN4bWxTdHJuY2FzZWNtcCI+eG1sU3RybmNhc2VjbXA8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyLCA8YnIvPgkJCQkJIGludCBsZW4pOworaW50CTxhIGhyZWY9IiN4bWxVVEY4U3RybGVuIj54bWxVVEY4U3RybGVuPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVVRGOFN0cnN1YiI+eG1sVVRGOFN0cnN1YjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIvPgkJCQkJIGludCBzdGFydCwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sU3RyRXF1YWwiPnhtbFN0ckVxdWFsPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik7CitpbnQJPGEgaHJlZj0iI3htbFVURjhDaGFyY21wIj54bWxVVEY4Q2hhcmNtcDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZjEsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZjIpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxVVEY4U3RybmR1cCI+eG1sVVRGOFN0cm5kdXA8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyLz4JCQkJCSBpbnQgbGVuKTsKK2ludAk8YSBocmVmPSIjeG1sVVRGOFN0cmxvYyI+eG1sVVRGOFN0cmxvYzwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmY2hhcik7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iQkFEX0NBU1QiPk1hY3JvIDwvYT5CQURfQ0FTVDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0JBRF9DQVNUIj5CQURfQ0FTVDwvYT47Cis8L3ByZT48cD5NYWNybyB0byBjYXN0IGEgc3RyaW5nIHRvIGFuIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB3aGVuIG9uZSBrbm93IGl0cyBzYWZlLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxDaGFyIj5UeXBlZGVmIDwvYT54bWxDaGFyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dW5zaWduZWQgY2hhciB4bWxDaGFyOworPC9wcmU+PHA+VGhpcyBpcyBhIGJhc2ljIGJ5dGUgaW4gYW4gVVRGLTggZW5jb2RlZCBzdHJpbmcuIEl0J3MgdW5zaWduZWQgYWxsb3dpbmcgdG8gcGlucG9pbnQgY2FzZSB3aGVyZSBjaGFyICogYXJlIGFzc2lnbmVkIHRvIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiAocG9zc2libHkgbWFraW5nIHNlcmlhbGl6YXRpb24gYmFjayBpbXBvc3NpYmxlKS48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2hhclN0cmR1cCIvPnhtbENoYXJTdHJkdXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2hhclN0cmR1cAkJKGNvbnN0IGNoYXIgKiBjdXIpPGJyLz4KKzwvcHJlPjxwPmEgc3RyZHVwIGZvciBjaGFyJ3MgdG8geG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBjaGFyICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sQ2hhclN0cm5kdXAiLz54bWxDaGFyU3RybmR1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDaGFyU3RybmR1cAkJKGNvbnN0IGNoYXIgKiBjdXIsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+YSBzdHJuZHVwIGZvciBjaGFyJ3MgdG8geG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBjaGFyICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbiBvZiBAY3VyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoZWNrVVRGOCIvPnhtbENoZWNrVVRGOCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDaGVja1VURjgJCQkoY29uc3QgdW5zaWduZWQgY2hhciAqIHV0Zik8YnIvPgorPC9wcmU+PHA+Q2hlY2tzIEB1dGYgZm9yIGJlaW5nIHZhbGlkIFVURi04LiBAdXRmIGlzIGFzc3VtZWQgdG8gYmUgbnVsbC10ZXJtaW5hdGVkLiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBzdXBlci1zdHJpY3QsIGFzIGl0IHdpbGwgYWxsb3cgbG9uZ2VyIFVURi04IHNlcXVlbmNlcyB0aGFuIG5lY2Vzc2FyeS4gTm90ZSB0aGF0IEphdmEgaXMgY2FwYWJsZSBvZiBwcm9kdWNpbmcgdGhlc2Ugc2VxdWVuY2VzIGlmIHByb3Zva2VkLiBBbHNvIG5vdGUsIHRoaXMgcm91dGluZSBjaGVja3MgZm9yIHRoZSA0LWJ5dGUgbWF4aW11bSBzaXplLCBidXQgZG9lcyBub3QgY2hlY2sgZm9yIDB4MTBmZmZmIG1heGltdW0gdmFsdWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51dGY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlBvaW50ZXIgdG8gcHV0YXRpdmUgVVRGLTggZW5jb2RlZCBzdHJpbmcuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD52YWx1ZTogdHJ1ZSBpZiBAdXRmIGlzIHZhbGlkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEdldFVURjhDaGFyIi8+eG1sR2V0VVRGOENoYXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2V0VVRGOENoYXIJCQkoY29uc3QgdW5zaWduZWQgY2hhciAqIHV0ZiwgPGJyLz4JCQkJCSBpbnQgKiBsZW4pPGJyLz4KKzwvcHJlPjxwPlJlYWQgdGhlIGZpcnN0IFVURjggY2hhcmFjdGVyIGZyb20gQHV0ZjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyBwcmVzZW50IGluIHRoZSBzZXF1ZW5jZS4gVGhpcyBpcyB1c2VkIHRvIGFzc3VyZSB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgY29tcGxldGVseSBjb250YWluZWQgd2l0aGluIHRoZSBzZXF1ZW5jZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyIHZhbHVlIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IsIGFuZCBzZXRzICpsZW4gdG8gdGhlIGFjdHVhbCBudW1iZXIgb2YgYnl0ZXMgY29uc3VtZWQgKDAgaW4gY2FzZSBvZiBlcnJvcik8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJFcXVhbCIvPnhtbFN0ckVxdWFsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0ckVxdWFsCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyKTxici8+Cis8L3ByZT48cD5DaGVjayBpZiBib3RoIHN0cmluZ3MgYXJlIGVxdWFsIG9mIGhhdmUgc2FtZSBjb250ZW50LiBTaG91bGQgYmUgYSBiaXQgbW9yZSByZWFkYWJsZSBhbmQgZmFzdGVyIHRoYW4geG1sU3RyY21wKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZXkgYXJlIGVxdWFsLCAwIGlmIHRoZXkgYXJlIGRpZmZlcmVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0clByaW50ZiIvPnhtbFN0clByaW50ZiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJQcmludGYJCQkoPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZiwgPGJyLz4JCQkJCSBpbnQgbGVuLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBtc2csIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+Rm9ybWF0cyBAbXNnIGFuZCBwbGFjZXMgcmVzdWx0IGludG8gQGJ1Zi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdCBidWZmZXIuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHQgYnVmZmVyIGxlbmd0aC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2Ugd2l0aCBwcmludGYgZm9ybWF0dGluZy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJRRXF1YWwiLz54bWxTdHJRRXF1YWwgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyUUVxdWFsCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIGlmIGEgUU5hbWUgaXMgRXF1YWwgdG8gYSBnaXZlbiBzdHJpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggb2YgdGhlIFFOYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWxuYW1lIG9mIHRoZSBRTmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGV5IGFyZSBlcXVhbCwgMCBpZiB0aGV5IGFyZSBkaWZmZXJlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJWUHJpbnRmIi8+eG1sU3RyVlByaW50ZiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJWUHJpbnRmCQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxici8+CQkJCQkgaW50IGxlbiwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbXNnLCA8YnIvPgkJCQkJIHZhX2xpc3QgYXApPGJyLz4KKzwvcHJlPjxwPkZvcm1hdHMgQG1zZyBhbmQgcGxhY2VzIHJlc3VsdCBpbnRvIEBidWYuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHQgYnVmZmVyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0IGJ1ZmZlciBsZW5ndGguPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlIHdpdGggcHJpbnRmIGZvcm1hdHRpbmcuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJjYXNlY21wIi8+eG1sU3RyY2FzZWNtcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJjYXNlY21wCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyKTxici8+Cis8L3ByZT48cD5hIHN0cmNhc2VjbXAgZm9yIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlZ2VyIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmNhc2VzdHIiLz54bWxTdHJjYXNlc3RyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFN0cmNhc2VzdHIJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpPGJyLz4KKzwvcHJlPjxwPmEgY2FzZS1pZ25vcmluZyBzdHJzdHIgZm9yIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFycmF5IChoYXlzdGFjayk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gdG8gc2VhcmNoIChuZWVkbGUpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBOVUxMLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cmNhdCIvPnhtbFN0cmNhdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTdHJjYXQJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhZGQpPGJyLz4KKzwvcHJlPjxwPmEgc3RyY2F0IGZvciBhcnJheSBvZiB4bWxDaGFyJ3MuIFNpbmNlIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGJlIGVuY29kZWQgaW4gVVRGLTggb3IgYW4gZW5jb2Rpbmcgd2l0aCA4Yml0IGJhc2VkIGNoYXJzLCB3ZSBhc3N1bWUgYSB0ZXJtaW5hdGlvbiBtYXJrIG9mICcwJy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9yaWdpbmFsIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YWRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFycmF5IGFkZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGFpbmluZyB0aGUgY29uY2F0ZW5hdGVkIHN0cmluZy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJjaHIiLz54bWxTdHJjaHIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3RyY2hyCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+YSBzdHJjaHIgZm9yIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHRvIHNlYXJjaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJjbXAiLz54bWxTdHJjbXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyY21wCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyKTxici8+Cis8L3ByZT48cD5hIHN0cmNtcCBmb3IgeG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVnZXIgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RyZHVwIi8+eG1sU3RyZHVwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFN0cmR1cAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIpPGJyLz4KKzwvcHJlPjxwPmEgc3RyZHVwIGZvciBhcnJheSBvZiB4bWxDaGFyJ3MuIFNpbmNlIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGJlIGVuY29kZWQgaW4gVVRGLTggb3IgYW4gZW5jb2Rpbmcgd2l0aCA4Yml0IGJhc2VkIGNoYXJzLCB3ZSBhc3N1bWUgYSB0ZXJtaW5hdGlvbiBtYXJrIG9mICcwJy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJsZW4iLz54bWxTdHJsZW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RybGVuCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyLz4KKzwvcHJlPjxwPmxlbmd0aCBvZiBhIHhtbENoYXIncyBzdHJpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGNvbnRhaW5lZCBpbiB0aGUgQVJSQVkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RybmNhc2VjbXAiLz54bWxTdHJuY2FzZWNtcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJuY2FzZWNtcAkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMiwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5hIHN0cm5jYXNlY21wIGZvciB4bWxDaGFyJ3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtYXggY29tcGFyaXNvbiBsZW5ndGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlZ2VyIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFN0cm5jYXQiLz54bWxTdHJuY2F0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFN0cm5jYXQJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhZGQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+YSBzdHJuY2F0IGZvciBhcnJheSBvZiB4bWxDaGFyJ3MsIGl0IHdpbGwgZXh0ZW5kIEBjdXIgd2l0aCB0aGUgbGVuIGZpcnN0IGJ5dGVzIG9mIEBhZGQuIE5vdGUgdGhhdCBpZiBAbGVuICZsdDsgMCB0aGVuIHRoaXMgaXMgYW4gQVBJIGVycm9yIGFuZCBOVUxMIHdpbGwgYmUgcmV0dXJuZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcmlnaW5hbCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFkZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhcnJheSBhZGRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIEBhZGQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiwgdGhlIG9yaWdpbmFsIEBjdXIgaXMgcmVhbGxvY2F0ZWQgaWYgbmVlZGVkIGFuZCBzaG91bGQgbm90IGJlIGZyZWVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3RybmNhdE5ldyIvPnhtbFN0cm5jYXROZXcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3RybmNhdE5ldwkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPnNhbWUgYXMgeG1sU3RybmNhdCwgYnV0IGNyZWF0ZXMgYSBuZXcgc3RyaW5nLiBUaGUgb3JpZ2luYWwgdHdvIHN0cmluZ3MgYXJlIG5vdCBmcmVlZC4gSWYgQGxlbiBpcyAmbHQ7IDAgdGhlbiB0aGUgbGVuZ3RoIHdpbGwgYmUgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zmlyc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNlY29uZCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuIG9mIEBzdHIyIG9yICZsdDsgMDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJuY21wIi8+eG1sU3RybmNtcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJuY21wCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPmEgc3RybmNtcCBmb3IgeG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4IGNvbXBhcmlzb24gbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJuZHVwIi8+eG1sU3RybmR1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTdHJuZHVwCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5hIHN0cm5kdXAgZm9yIGFycmF5IG9mIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW4gb2YgQGN1cjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxTdHJzdHIiLz54bWxTdHJzdHIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3Ryc3RyCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTxici8+Cis8L3ByZT48cD5hIHN0cnN0ciBmb3IgeG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYXJyYXkgKGhheXN0YWNrKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB0byBzZWFyY2ggKG5lZWRsZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZm9yIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9yIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sU3Ryc3ViIi8+eG1sU3Ryc3ViICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFN0cnN1YgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkgaW50IHN0YXJ0LCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPkV4dHJhY3QgYSBzdWJzdHJpbmcgb2YgYSBnaXZlbiBzdHJpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhcnJheSAoaGF5c3RhY2spPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyICh6ZXJvIGJhc2VkKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBzdWJzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZm9yIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9yIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVVRGOENoYXJjbXAiLz54bWxVVEY4Q2hhcmNtcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVVEY4Q2hhcmNtcAkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmMSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmMik8YnIvPgorPC9wcmU+PHA+Y29tcGFyZXMgdGhlIHR3byBVQ1M0IHZhbHVlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byBmaXJzdCBVVEY4IGNoYXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gc2Vjb25kIFVURjggY2hhcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cmVzdWx0IG9mIHRoZSBjb21wYXJlIGFzIHdpdGggPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY21wIj54bWxTdHJuY21wPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVURjhTaXplIi8+eG1sVVRGOFNpemUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVVRGOFNpemUJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0Zik8YnIvPgorPC9wcmU+PHA+Y2FsY3VsYXRlcyB0aGUgaW50ZXJuYWwgc2l6ZSBvZiBhIFVURjggY2hhcmFjdGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51dGY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIFVURjggY2hhcmFjdGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVycyBvZiBieXRlcyBpbiB0aGUgY2hhcmFjdGVyLCAtMSBvbiBmb3JtYXQgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVVEY4U3RybGVuIi8+eG1sVVRGOFN0cmxlbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVVEY4U3RybGVuCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYpPGJyLz4KKzwvcHJlPjxwPmNvbXB1dGUgdGhlIGxlbmd0aCBvZiBhbiBVVEY4IHN0cmluZywgaXQgZG9lc24ndCBkbyBhIGZ1bGwgVVRGOCBjaGVja2luZyBvZiB0aGUgY29udGVudCBvZiB0aGUgc3RyaW5nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiBpbiB0aGUgc3RyaW5nIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVVEY4U3RybG9jIi8+eG1sVVRGOFN0cmxvYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVVEY4U3RybG9jCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZmNoYXIpPGJyLz4KKzwvcHJlPjxwPmEgZnVuY3Rpb24gdG8gcHJvdmlkZSB0aGUgcmVsYXRpdmUgbG9jYXRpb24gb2YgYSBVVEY4IGNoYXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IFVURjggKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmY2hhcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVURjggY2hhcmFjdGVyIHRvIGJlIGZvdW5kPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVsYXRpdmUgY2hhcmFjdGVyIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGNoYXIgb3IgLTEgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVVRGOFN0cm5kdXAiLz54bWxVVEY4U3RybmR1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxVVEY4U3RybmR1cAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+YSBzdHJuZHVwIGZvciBhcnJheSBvZiBVVEY4J3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IFVURjggKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuIG9mIEB1dGYgKGluIGNoYXJzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgVVRGOCAqIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVVEY4U3RycG9zIi8+eG1sVVRGOFN0cnBvcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxVVEY4U3RycG9zCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyLz4JCQkJCSBpbnQgcG9zKTxici8+Cis8L3ByZT48cD5hIGZ1bmN0aW9uIHRvIHByb3ZpZGUgdGhlIGVxdWl2YWxlbnQgb2YgZmV0Y2hpbmcgYSBjaGFyYWN0ZXIgZnJvbSBhIHN0cmluZyBhcnJheTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgVVRGOCAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wb3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBVVEY4IGNoYXIgKGluIGNoYXJzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBVVEY4IGNoYXJhY3RlciBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVVRGOFN0cnNpemUiLz54bWxVVEY4U3Ryc2l6ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVVEY4U3Ryc2l6ZQkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIvPgkJCQkJIGludCBsZW4pPGJyLz4KKzwvcHJlPjxwPnN0b3JhZ2Ugc2l6ZSBvZiBhbiBVVEY4IHN0cmluZyB0aGUgYmVoYXZpb3VyIGlzIG5vdCBnYXJhbnRlZWQgaWYgdGhlIGlucHV0IHN0cmluZyBpcyBub3QgVVRGLTg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXF1ZW5jZSBvZiBVVEYtOCBlbmNvZGVkIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiBpbiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdG9yYWdlIHNpemUgb2YgdGhlIGZpcnN0ICdsZW4nIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gb2YgQVJSQVk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVVEY4U3Ryc3ViIi8+eG1sVVRGOFN0cnN1YiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxVVEY4U3Ryc3ViCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyLz4JCQkJCSBpbnQgc3RhcnQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgc3Vic3RyaW5nIGZyb20gYSBnaXZlbiBVVEYtOCBzdHJpbmcgTm90ZTogcG9zaXRpb25zIGFyZSBnaXZlbiBpbiB1bml0cyBvZiBVVEYtOCBjaGFyczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5yZWxhdGl2ZSBwb3Mgb2YgZmlyc3QgY2hhcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50b3RhbCBudW1iZXIgdG8gY29weTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgbmV3bHkgY3JlYXRlZCBzdHJpbmcgb3IgTlVMTCBpZiBhbnkgcHJvYmxlbTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWx1bmljb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0ZjBkOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWx1bmljb2RlLmh0bWwKQEAgLTAsMCArMSw4ODcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eG1sdW5pY29kZTogVW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGggd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPmxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbDwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGgyPgorICAgICAgPHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPnhtbHVuaWNvZGU8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD54bWx1bmljb2RlIC0gVW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvcD4KKyAgICA8cD5BUEkgZm9yIHRoZSBVbmljb2RlIGNoYXJhY3RlciBBUElzICBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgVUNTIGRlc2NyaXB0aW9uIGZpbGVzIG9mIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZTwvcD4KKyAgICA8cD5BdXRob3Iocyk6IERhbmllbCBWZWlsbGFyZCA8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPgorICAgICAgPGgyPlN5bm9wc2lzPC9oMj4KKyAgICAgIDxwcmUgY2xhc3M9InN5bm9wc2lzIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQmxvY2tFbGVtZW50cyI+eG1sVUNTSXNCbG9ja0VsZW1lbnRzPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNCb3BvbW9mbyI+eG1sVUNTSXNCb3BvbW9mbzwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzRGluZ2JhdHMiPnhtbFVDU0lzRGluZ2JhdHM8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMiPnhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0czwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MiPnhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RpYmV0YW4iPnhtbFVDU0lzVGliZXRhbjwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1lpUmFkaWNhbHMiPnhtbFVDU0lzWWlSYWRpY2FsczwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzIj54bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9sczwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMiPnhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNCYXNpY0xhdGluIj54bWxVQ1NJc0Jhc2ljTGF0aW48L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFNjIj54bWxVQ1NJc0NhdFNjPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0U28iPnhtbFVDU0lzQ2F0U288L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNMaW1idSI+eG1sVUNTSXNMaW1idTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFNtIj54bWxVQ1NJc0NhdFNtPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0U2siPnhtbFVDU0lzQ2F0U2s8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNLaG1lclN5bWJvbHMiPnhtbFVDU0lzS2htZXJTeW1ib2xzPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNNb25nb2xpYW4iPnhtbFVDU0lzTW9uZ29saWFuPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNNYWxheWFsYW0iPnhtbFVDU0lzTWFsYXlhbGFtPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIj54bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzVGhhYW5hIj54bWxVQ1NJc1RoYWFuYTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc015YW5tYXIiPnhtbFVDU0lzTXlhbm1hcjwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RhZ3MiPnhtbFVDU0lzVGFnczwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIj54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RlbHVndSI+eG1sVUNTSXNUZWx1Z3U8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNMb3dTdXJyb2dhdGVzIj54bWxVQ1NJc0xvd1N1cnJvZ2F0ZXM8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc09zbWFueWEiPnhtbFVDU0lzT3NtYW55YTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1N5cmlhYyI+eG1sVUNTSXNTeXJpYWM8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNFdGhpb3BpYyI+eG1sVUNTSXNFdGhpb3BpYzwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQm94RHJhd2luZyI+eG1sVUNTSXNCb3hEcmF3aW5nPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNHcmVla0V4dGVuZGVkIj54bWxVQ1NJc0dyZWVrRXh0ZW5kZWQ8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0dyZWVrYW5kQ29wdGljIj54bWxVQ1NJc0dyZWVrYW5kQ29wdGljPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNLYW5uYWRhIj54bWxVQ1NJc0thbm5hZGE8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scyI+eG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9sczwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMiPnhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcyI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0Q3MiPnhtbFVDU0lzQ2F0Q3M8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQiPnhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50PC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdENmIj54bWxVQ1NJc0NhdENmPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzU21hbGxGb3JtVmFyaWFudHMiPnhtbFVDU0lzU21hbGxGb3JtVmFyaWFudHM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8iPnhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW88L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0Q2MiPnhtbFVDU0lzQ2F0Q2M8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRDbyI+eG1sVUNTSXNDYXRDbzwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NoZXJva2VlIj54bWxVQ1NJc0NoZXJva2VlPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNHb3RoaWMiPnhtbFVDU0lzR290aGljPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzS2htZXIiPnhtbFVDU0lzS2htZXI8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyI+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNPZ2hhbSI+eG1sVUNTSXNPZ2hhbTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc09yaXlhIj54bWxVQ1NJc09yaXlhPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzTGluZWFyQklkZW9ncmFtcyI+eG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0Jsb2NrIj54bWxVQ1NJc0Jsb2NrPC9hPgkJCShpbnQgY29kZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYmxvY2spOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQiPnhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZDwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNIYW5ndWxKYW1vIj54bWxVQ1NJc0hhbmd1bEphbW88L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RhZ2JhbndhIj54bWxVQ1NJc1RhZ2JhbndhPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24iPnhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0N5cmlsbGljIj54bWxVQ1NJc0N5cmlsbGljPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNBcnJvd3MiPnhtbFVDU0lzQXJyb3dzPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ29udHJvbFBpY3R1cmVzIj54bWxVQ1NJc0NvbnRyb2xQaWN0dXJlczwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0TmwiPnhtbFVDU0lzQ2F0Tmw8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRObyI+eG1sVUNTSXNDYXRObzwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scyI+eG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudCI+eG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50PC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0JlbmdhbGkiPnhtbFVDU0lzQmVuZ2FsaTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1ByaXZhdGVVc2UiPnhtbFVDU0lzUHJpdmF0ZVVzZTwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzTXVzaWNhbFN5bWJvbHMiPnhtbFVDU0lzTXVzaWNhbFN5bWJvbHM8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHkiPnhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eTwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNBZWdlYW5OdW1iZXJzIj54bWxVQ1NJc0FlZ2Vhbk51bWJlcnM8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0RldmFuYWdhcmkiPnhtbFVDU0lzRGV2YW5hZ2FyaTwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSI+eG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IiPnhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQjwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNOdW1iZXJGb3JtcyI+eG1sVUNTSXNOdW1iZXJGb3JtczwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyI+eG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbiI+eG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb248L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0UGMiPnhtbFVDU0lzQ2F0UGM8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQZiI+eG1sVUNTSXNDYXRQZjwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudCI+eG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQ8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0UGQiPnhtbFVDU0lzQ2F0UGQ8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQaSI+eG1sVUNTSXNDYXRQaTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFBvIj54bWxVQ1NJc0NhdFBvPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIj54bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlczwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCI+eG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbDwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQcyI+eG1sVUNTSXNDYXRQczwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzIj54bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNMYW8iPnhtbFVDU0lzTGFvPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQnJhaWxsZVBhdHRlcm5zIj54bWxVQ1NJc0JyYWlsbGVQYXR0ZXJuczwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzRGVzZXJldCI+eG1sVUNTSXNEZXNlcmV0PC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzIj54bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljczwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIj54bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3M8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMiPnhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzUHJpdmF0ZVVzZUFyZWEiPnhtbFVDU0lzUHJpdmF0ZVVzZUFyZWE8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdCI+eG1sVUNTSXNDYXQ8L2E+CQkJKGludCBjb2RlLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBjYXQpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdEx1Ij54bWxVQ1NJc0NhdEx1PC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0THQiPnhtbFVDU0lzQ2F0THQ8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNZaVN5bGxhYmxlcyI+eG1sVUNTSXNZaVN5bGxhYmxlczwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzU2hhdmlhbiI+eG1sVUNTSXNTaGF2aWFuPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0TG8iPnhtbFVDU0lzQ2F0TG88L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRMbSI+eG1sVUNTSXNDYXRMbTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdExsIj54bWxVQ1NJc0NhdExsPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1VnYXJpdGljIj54bWxVQ1NJc1VnYXJpdGljPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQiPnhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50PC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkiPnhtbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeTwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNUYW1pbCI+eG1sVUNTSXNUYW1pbDwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdEMiPnhtbFVDU0lzQ2F0QzwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdE4iPnhtbFVDU0lzQ2F0TjwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdEwiPnhtbFVDU0lzQ2F0TDwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdE0iPnhtbFVDU0lzQ2F0TTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MiPnhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljczwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRTIj54bWxVQ1NJc0NhdFM8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQIj54bWxVQ1NJc0NhdFA8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNTaW5oYWxhIj54bWxVQ1NJc1NpbmhhbGE8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNHZW9yZ2lhbiI+eG1sVUNTSXNHZW9yZ2lhbjwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0WiI+eG1sVUNTSXNDYXRaPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzSVBBRXh0ZW5zaW9ucyI+eG1sVUNTSXNJUEFFeHRlbnNpb25zPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNLYW5neGlSYWRpY2FscyI+eG1sVUNTSXNLYW5neGlSYWRpY2FsczwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzR3JlZWsiPnhtbFVDU0lzR3JlZWs8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQZSI+eG1sVUNTSXNDYXRQZTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hhbnVub28iPnhtbFVDU0lzSGFudW5vbzwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0FybWVuaWFuIj54bWxVQ1NJc0FybWVuaWFuPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCIj54bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUI8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zIj54bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzIj54bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9ucyI+eG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQXJhYmljIj54bWxVQ1NJc0FyYWJpYzwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hlYnJldyI+eG1sVUNTSXNIZWJyZXc8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNPbGRJdGFsaWMiPnhtbFVDU0lzT2xkSXRhbGljPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0EiPnhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFpwIj54bWxVQ1NJc0NhdFpwPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0WnMiPnhtbFVDU0lzQ2F0WnM8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IiPnhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0dlb21ldHJpY1NoYXBlcyI+eG1sVUNTSXNHZW9tZXRyaWNTaGFwZXM8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFpsIj54bWxVQ1NJc0NhdFpsPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzVGFnYWxvZyI+eG1sVUNTSXNUYWdhbG9nPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzU3BlY2lhbHMiPnhtbFVDU0lzU3BlY2lhbHM8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0d1amFyYXRpIj54bWxVQ1NJc0d1amFyYXRpPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNLYXRha2FuYSI+eG1sVUNTSXNLYXRha2FuYTwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMiPnhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzTGF0aW5FeHRlbmRlZEIiPnhtbFVDU0lzTGF0aW5FeHRlbmRlZEI8L2E+CQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRBPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNCdWhpZCI+eG1sVUNTSXNCdWhpZDwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RhaUxlIj54bWxVQ1NJc1RhaUxlPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uIj54bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbjwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMiPnhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0d1cm11a2hpIj54bWxVQ1NJc0d1cm11a2hpPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMiPnhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyI+eG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXM8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ3VycmVuY3lTeW1ib2xzIj54bWxVQ1NJc0N1cnJlbmN5U3ltYm9sczwvYT4JCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzIj54bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9yczwvYT4JKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0thbmJ1biI+eG1sVUNTSXNLYW5idW48L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RoYWkiPnhtbFVDU0lzVGhhaTwvYT4JCQkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc1J1bmljIj54bWxVQ1NJc1J1bmljPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0TmQiPnhtbFVDU0lzQ2F0TmQ8L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50Ij54bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQ8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzTGluZWFyQlN5bGxhYmFyeSI+eG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5PC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hpcmFnYW5hIj54bWxVQ1NJc0hpcmFnYW5hPC9hPgkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IiPnhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQSI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0E8L2E+CShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0TW4iPnhtbFVDU0lzQ2F0TW48L2E+CQkJKGludCBjb2RlKTsKK2ludAk8YSBocmVmPSIjeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMiPnhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzPC9hPgkoaW50IGNvZGUpOworaW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdE1jIj54bWxVQ1NJc0NhdE1jPC9hPgkJCShpbnQgY29kZSk7CitpbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0TWUiPnhtbFVDU0lzQ2F0TWU8L2E+CQkJKGludCBjb2RlKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMiLz54bWxVQ1NJc0FlZ2Vhbk51bWJlcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNBZWdlYW5OdW1iZXJzCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFlZ2Vhbk51bWJlcnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMiLz54bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0FyYWJpYyIvPnhtbFVDU0lzQXJhYmljICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQXJhYmljCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcmFiaWMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0EiLz54bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFyYWJpY1ByZXNlbnRhdGlvbkZvcm1zLUEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IiLz54bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQgkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFyYWJpY1ByZXNlbnRhdGlvbkZvcm1zLUIgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNBcm1lbmlhbiIvPnhtbFVDU0lzQXJtZW5pYW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNBcm1lbmlhbgkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcm1lbmlhbiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0Fycm93cyIvPnhtbFVDU0lzQXJyb3dzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQXJyb3dzCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcnJvd3MgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNCYXNpY0xhdGluIi8+eG1sVUNTSXNCYXNpY0xhdGluICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQmFzaWNMYXRpbgkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCYXNpY0xhdGluIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQmVuZ2FsaSIvPnhtbFVDU0lzQmVuZ2FsaSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0JlbmdhbGkJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJlbmdhbGkgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNCbG9jayIvPnhtbFVDU0lzQmxvY2sgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNCbG9jawkJCShpbnQgY29kZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogYmxvY2spPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIHRoZSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ibG9jazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGJsb2NrIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgb24gdW5rbm93biBibG9jazwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQmxvY2tFbGVtZW50cyIvPnhtbFVDU0lzQmxvY2tFbGVtZW50cyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0Jsb2NrRWxlbWVudHMJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQmxvY2tFbGVtZW50cyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0JvcG9tb2ZvIi8+eG1sVUNTSXNCb3BvbW9mbyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0JvcG9tb2ZvCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJvcG9tb2ZvIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZCIvPnhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCb3BvbW9mb0V4dGVuZGVkIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQm94RHJhd2luZyIvPnhtbFVDU0lzQm94RHJhd2luZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0JveERyYXdpbmcJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQm94RHJhd2luZyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJucyIvPnhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJyYWlsbGVQYXR0ZXJucyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0J1aGlkIi8+eG1sVUNTSXNCdWhpZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0J1aGlkCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCdWhpZCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzIi8+eG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Ii8+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHkgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMiLz54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHlGb3JtcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIi8+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQiLz54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudAkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudCIvPnhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50CShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLUmFkaWNhbHNTdXBwbGVtZW50IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uIi8+eG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24JKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocyIvPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1VuaWZpZWRJZGVvZ3JhcGhzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BIi8+eG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIiLz54bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQgkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdCIvPnhtbFVDU0lzQ2F0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0CQkJKGludCBjb2RlLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBjYXQpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIHRoZSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBDYXRlZ29yeSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgZmFsc2UgYW5kIC0xIG9uIHVua25vd24gY2F0ZWdvcnk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdEMiLz54bWxVQ1NJc0NhdEMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRDCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0Q2MiLz54bWxVQ1NJc0NhdENjICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0Q2MJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENjIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0Q2YiLz54bWxVQ1NJc0NhdENmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0Q2YJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENmIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0Q28iLz54bWxVQ1NJc0NhdENvICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0Q28JCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0Q3MiLz54bWxVQ1NJc0NhdENzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0Q3MJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENzIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0TCIvPnhtbFVDU0lzQ2F0TCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdEwJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEwgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRMbCIvPnhtbFVDU0lzQ2F0TGwgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRMbAkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGwgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRMbSIvPnhtbFVDU0lzQ2F0TG0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRMbQkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTG0gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRMbyIvPnhtbFVDU0lzQ2F0TG8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRMbwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTG8gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRMdCIvPnhtbFVDU0lzQ2F0THQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRMdAkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTHQgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRMdSIvPnhtbFVDU0lzQ2F0THUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRMdQkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTHUgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRNIi8+eG1sVUNTSXNDYXRNICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TQkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdE1jIi8+eG1sVUNTSXNDYXRNYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdE1jCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNYyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdE1lIi8+eG1sVUNTSXNDYXRNZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdE1lCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNZSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdE1uIi8+eG1sVUNTSXNDYXRNbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdE1uCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNbiBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdE4iLz54bWxVQ1NJc0NhdE4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXROCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBOIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0TmQiLz54bWxVQ1NJc0NhdE5kICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TmQJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE5kIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0TmwiLz54bWxVQ1NJc0NhdE5sICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TmwJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE5sIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0Tm8iLz54bWxVQ1NJc0NhdE5vICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0Tm8JCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE5vIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0UCIvPnhtbFVDU0lzQ2F0UCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFAJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFAgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQYyIvPnhtbFVDU0lzQ2F0UGMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQYwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGMgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQZCIvPnhtbFVDU0lzQ2F0UGQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQZAkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGQgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQZSIvPnhtbFVDU0lzQ2F0UGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQZQkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGUgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQZiIvPnhtbFVDU0lzQ2F0UGYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQZgkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGYgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQaSIvPnhtbFVDU0lzQ2F0UGkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQaQkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGkgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQbyIvPnhtbFVDU0lzQ2F0UG8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQbwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUG8gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQcyIvPnhtbFVDU0lzQ2F0UHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQcwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUHMgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRTIi8+eG1sVUNTSXNDYXRTICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0UwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFNjIi8+eG1sVUNTSXNDYXRTYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFNjCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTYyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFNrIi8+eG1sVUNTSXNDYXRTayAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFNrCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTayBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFNtIi8+eG1sVUNTSXNDYXRTbSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFNtCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTbSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFNvIi8+eG1sVUNTSXNDYXRTbyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFNvCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTbyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFoiLz54bWxVQ1NJc0NhdFogKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRaCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBaIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0WmwiLz54bWxVQ1NJc0NhdFpsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0WmwJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFpsIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0WnAiLz54bWxVQ1NJc0NhdFpwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0WnAJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFpwIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0WnMiLz54bWxVQ1NJc0NhdFpzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0WnMJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFpzIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2hlcm9rZWUiLz54bWxVQ1NJc0NoZXJva2VlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2hlcm9rZWUJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ2hlcm9rZWUgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIi8+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyIvPnhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzIi8+eG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDb21iaW5pbmdIYWxmTWFya3MgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMiLz54bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbWJpbmluZ01hcmtzZm9yU3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NvbnRyb2xQaWN0dXJlcyIvPnhtbFVDU0lzQ29udHJvbFBpY3R1cmVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ29udHJvbFBpY3R1cmVzCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbnRyb2xQaWN0dXJlcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0N1cnJlbmN5U3ltYm9scyIvPnhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEN1cnJlbmN5U3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkiLz54bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5CShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3lwcmlvdFN5bGxhYmFyeSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0N5cmlsbGljIi8+eG1sVUNTSXNDeXJpbGxpYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0N5cmlsbGljCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEN5cmlsbGljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50Ii8+eG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDeXJpbGxpY1N1cHBsZW1lbnQgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNEZXNlcmV0Ii8+eG1sVUNTSXNEZXNlcmV0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzRGVzZXJldAkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRGVzZXJldCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0RldmFuYWdhcmkiLz54bWxVQ1NJc0RldmFuYWdhcmkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNEZXZhbmFnYXJpCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIERldmFuYWdhcmkgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNEaW5nYmF0cyIvPnhtbFVDU0lzRGluZ2JhdHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNEaW5nYmF0cwkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBEaW5nYmF0cyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcyIvPnhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRW5jbG9zZWRBbHBoYW51bWVyaWNzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzIi8+eG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNFdGhpb3BpYyIvPnhtbFVDU0lzRXRoaW9waWMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNFdGhpb3BpYwkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBFdGhpb3BpYyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbiIvPnhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR2VuZXJhbFB1bmN0dWF0aW9uIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzR2VvbWV0cmljU2hhcGVzIi8+eG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR2VvbWV0cmljU2hhcGVzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzR2VvcmdpYW4iLz54bWxVQ1NJc0dlb3JnaWFuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR2VvcmdpYW4JCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR2VvcmdpYW4gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNHb3RoaWMiLz54bWxVQ1NJc0dvdGhpYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0dvdGhpYwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR290aGljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzR3JlZWsiLz54bWxVQ1NJc0dyZWVrICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR3JlZWsJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdyZWVrIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzR3JlZWtFeHRlbmRlZCIvPnhtbFVDU0lzR3JlZWtFeHRlbmRlZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR3JlZWtFeHRlbmRlZCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0dyZWVrYW5kQ29wdGljIi8+eG1sVUNTSXNHcmVla2FuZENvcHRpYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0dyZWVrYW5kQ29wdGljCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdyZWVrYW5kQ29wdGljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzR3VqYXJhdGkiLz54bWxVQ1NJc0d1amFyYXRpICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR3VqYXJhdGkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR3VqYXJhdGkgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNHdXJtdWtoaSIvPnhtbFVDU0lzR3VybXVraGkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNHdXJtdWtoaQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHdXJtdWtoaSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zIi8+eG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyIvPnhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbmd1bENvbXBhdGliaWxpdHlKYW1vIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzSGFuZ3VsSmFtbyIvPnhtbFVDU0lzSGFuZ3VsSmFtbyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0hhbmd1bEphbW8JCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGFuZ3VsSmFtbyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcyIvPnhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbmd1bFN5bGxhYmxlcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hhbnVub28iLz54bWxVQ1NJc0hhbnVub28gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNIYW51bm9vCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIYW51bm9vIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzSGVicmV3Ii8+eG1sVUNTSXNIZWJyZXcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNIZWJyZXcJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhlYnJldyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlcyIvPnhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzSGlnaFN1cnJvZ2F0ZXMiLz54bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSGlnaFN1cnJvZ2F0ZXMJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGlnaFN1cnJvZ2F0ZXMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNIaXJhZ2FuYSIvPnhtbFVDU0lzSGlyYWdhbmEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNIaXJhZ2FuYQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIaXJhZ2FuYSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0lQQUV4dGVuc2lvbnMiLz54bWxVQ1NJc0lQQUV4dGVuc2lvbnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNJUEFFeHRlbnNpb25zCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIElQQUV4dGVuc2lvbnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyIvPnhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIElkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzS2FuYnVuIi8+eG1sVUNTSXNLYW5idW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNLYW5idW4JCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthbmJ1biBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0thbmd4aVJhZGljYWxzIi8+eG1sVUNTSXNLYW5neGlSYWRpY2FscyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0thbmd4aVJhZGljYWxzCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthbmd4aVJhZGljYWxzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzS2FubmFkYSIvPnhtbFVDU0lzS2FubmFkYSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0thbm5hZGEJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthbm5hZGEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNLYXRha2FuYSIvPnhtbFVDU0lzS2F0YWthbmEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNLYXRha2FuYQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLYXRha2FuYSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zIi8+eG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNLaG1lciIvPnhtbFVDU0lzS2htZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNLaG1lcgkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2htZXIgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNLaG1lclN5bWJvbHMiLz54bWxVQ1NJc0tobWVyU3ltYm9scyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0tobWVyU3ltYm9scwkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLaG1lclN5bWJvbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNMYW8iLz54bWxVQ1NJc0xhbyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xhbwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGFvIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudCIvPnhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMYXRpbi0xU3VwcGxlbWVudCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBIi8+eG1sVUNTSXNMYXRpbkV4dGVuZGVkQSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExhdGluRXh0ZW5kZWQtQSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsIi8+eG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNMYXRpbkV4dGVuZGVkQiIvPnhtbFVDU0lzTGF0aW5FeHRlbmRlZEIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNMYXRpbkV4dGVuZGVkQgkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMYXRpbkV4dGVuZGVkLUIgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scyIvPnhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExldHRlcmxpa2VTeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTGltYnUiLz54bWxVQ1NJc0xpbWJ1ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTGltYnUJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExpbWJ1IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTGluZWFyQklkZW9ncmFtcyIvPnhtbFVDU0lzTGluZWFyQklkZW9ncmFtcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMaW5lYXJCSWRlb2dyYW1zIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTGluZWFyQlN5bGxhYmFyeSIvPnhtbFVDU0lzTGluZWFyQlN5bGxhYmFyeSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMaW5lYXJCU3lsbGFiYXJ5IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTG93U3Vycm9nYXRlcyIvPnhtbFVDU0lzTG93U3Vycm9nYXRlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTG93U3Vycm9nYXRlcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01hbGF5YWxhbSIvPnhtbFVDU0lzTWFsYXlhbGFtICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWFsYXlhbGFtCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1hbGF5YWxhbSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMiLz54bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9ycyIvPnhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWF0aGVtYXRpY2FsT3BlcmF0b3JzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBIi8+eG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9scy1BIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCIi8+eG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9scy1CIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMiLz54bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzU3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIi8+eG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3MgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsIi8+eG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbAkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNUZWNobmljYWwgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNNb25nb2xpYW4iLz54bWxVQ1NJc01vbmdvbGlhbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc01vbmdvbGlhbgkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNb25nb2xpYW4gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNNdXNpY2FsU3ltYm9scyIvPnhtbFVDU0lzTXVzaWNhbFN5bWJvbHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNdXNpY2FsU3ltYm9scwkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNdXNpY2FsU3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc015YW5tYXIiLz54bWxVQ1NJc015YW5tYXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNeWFubWFyCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNeWFubWFyIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzTnVtYmVyRm9ybXMiLz54bWxVQ1NJc051bWJlckZvcm1zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTnVtYmVyRm9ybXMJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTnVtYmVyRm9ybXMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNPZ2hhbSIvPnhtbFVDU0lzT2doYW0gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNPZ2hhbQkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgT2doYW0gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNPbGRJdGFsaWMiLz54bWxVQ1NJc09sZEl0YWxpYyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc09sZEl0YWxpYwkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBPbGRJdGFsaWMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24iLz54bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbgkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE9wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc09yaXlhIi8+eG1sVUNTSXNPcml5YSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc09yaXlhCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBPcml5YSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc09zbWFueWEiLz54bWxVQ1NJc09zbWFueWEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNPc21hbnlhCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBPc21hbnlhIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zIi8+eG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQaG9uZXRpY0V4dGVuc2lvbnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNQcml2YXRlVXNlIi8+eG1sVUNTSXNQcml2YXRlVXNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzUHJpdmF0ZVVzZQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQcml2YXRlVXNlIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzUHJpdmF0ZVVzZUFyZWEiLz54bWxVQ1NJc1ByaXZhdGVVc2VBcmVhICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzUHJpdmF0ZVVzZUFyZWEJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUHJpdmF0ZVVzZUFyZWEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNSdW5pYyIvPnhtbFVDU0lzUnVuaWMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNSdW5pYwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUnVuaWMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNTaGF2aWFuIi8+eG1sVUNTSXNTaGF2aWFuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzU2hhdmlhbgkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU2hhdmlhbiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1NpbmhhbGEiLz54bWxVQ1NJc1NpbmhhbGEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTaW5oYWxhCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTaW5oYWxhIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzU21hbGxGb3JtVmFyaWFudHMiLz54bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzU21hbGxGb3JtVmFyaWFudHMJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTbWFsbEZvcm1WYXJpYW50cyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMiLz54bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3BhY2luZ01vZGlmaWVyTGV0dGVycyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1NwZWNpYWxzIi8+eG1sVUNTSXNTcGVjaWFscyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1NwZWNpYWxzCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFNwZWNpYWxzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyIvPnhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSIvPnhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YWxBcnJvd3MtQSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IiLz54bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3VwcGxlbWVudGFsQXJyb3dzLUIgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMiLz54bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUEiLz54bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhLUEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCIi8+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQgkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1CIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3lyaWFjIi8+eG1sVUNTSXNTeXJpYWMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTeXJpYWMJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN5cmlhYyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RhZ2Fsb2ciLz54bWxVQ1NJc1RhZ2Fsb2cgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNUYWdhbG9nCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUYWdhbG9nIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzVGFnYmFud2EiLz54bWxVQ1NJc1RhZ2JhbndhICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGFnYmFud2EJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFnYmFud2EgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNUYWdzIi8+eG1sVUNTSXNUYWdzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGFncwkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFncyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RhaUxlIi8+eG1sVUNTSXNUYWlMZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1RhaUxlCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUYWlMZSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9scyIvPnhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFpWHVhbkppbmdTeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzVGFtaWwiLz54bWxVQ1NJc1RhbWlsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGFtaWwJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhbWlsIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzVGVsdWd1Ii8+eG1sVUNTSXNUZWx1Z3UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNUZWx1Z3UJCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRlbHVndSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RoYWFuYSIvPnhtbFVDU0lzVGhhYW5hICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGhhYW5hCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUaGFhbmEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNUaGFpIi8+eG1sVUNTSXNUaGFpICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGhhaQkJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGhhaSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RpYmV0YW4iLz54bWxVQ1NJc1RpYmV0YW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNUaWJldGFuCQkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUaWJldGFuIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFVDU0lzVWdhcml0aWMiLz54bWxVQ1NJc1VnYXJpdGljICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVWdhcml0aWMJCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVWdhcml0aWMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzIi8+eG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFVuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMiLz54bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycwkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFZhcmlhdGlvblNlbGVjdG9ycyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQiLz54bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50CShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1lpUmFkaWNhbHMiLz54bWxVQ1NJc1lpUmFkaWNhbHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNZaVJhZGljYWxzCQkoaW50IGNvZGUpPGJyLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFlpUmFkaWNhbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVUNTSXNZaVN5bGxhYmxlcyIvPnhtbFVDU0lzWWlTeWxsYWJsZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNZaVN5bGxhYmxlcwkJKGludCBjb2RlKTxici8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBZaVN5bGxhYmxlcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scyIvPnhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzCShpbnQgY29kZSk8YnIvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWWlqaW5nSGV4YWdyYW1TeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhtbHZlcnNpb24uaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWx2ZXJzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU5ZGMzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWx2ZXJzaW9uLmh0bWwKQEAgLTAsMCArMSwyNzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eG1sdmVyc2lvbjogY29tcGlsZS10aW1lIHZlcnNpb24gaW5mb3JtYXRpb25zPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ii8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJ1IiBocmVmPSJnZW5lcmFsLmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPgorICAgICAgICAgICAgPGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+eG1sdmVyc2lvbjwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnhtbHZlcnNpb24gLSBjb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnM8L3A+CisgICAgPHA+Y29tcGlsZS10aW1lIHZlcnNpb24gaW5mb3JtYXRpb25zIGZvciB0aGUgWE1MIGxpYnJhcnkgPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9WRVJTSU9OX0VYVFJBIj5MSUJYTUxfVkVSU0lPTl9FWFRSQTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfTU9EVUxFU19FTkFCTEVEIj5MSUJYTUxfTU9EVUxFU19FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9MRUdBQ1lfRU5BQkxFRCI+TElCWE1MX0xFR0FDWV9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9SRUFERVJfRU5BQkxFRCI+TElCWE1MX1JFQURFUl9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9USFJFQURfRU5BQkxFRCI+TElCWE1MX1RIUkVBRF9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9ET1RURURfVkVSU0lPTiI+TElCWE1MX0RPVFRFRF9WRVJTSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9JU084ODU5WF9FTkFCTEVEIj5MSUJYTUxfSVNPODg1OVhfRU5BQkxFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfREVCVUdfRU5BQkxFRCI+TElCWE1MX0RFQlVHX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1hJTkNMVURFX0VOQUJMRUQiPkxJQlhNTF9YSU5DTFVERV9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0FUVFJJQlVURV9VTlVTRUQiPkFUVFJJQlVURV9VTlVTRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0RPQ0JfRU5BQkxFRCI+TElCWE1MX0RPQ0JfRU5BQkxFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfUFVTSF9FTkFCTEVEIj5MSUJYTUxfUFVTSF9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9TQVgxX0VOQUJMRUQiPkxJQlhNTF9TQVgxX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjV0lUSE9VVF9UUklPIj5XSVRIT1VUX1RSSU88L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCI+TElCWE1MX1NDSEVNQVRST05fRU5BQkxFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfSFRUUF9FTkFCTEVEIj5MSUJYTUxfSFRUUF9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9PVVRQVVRfRU5BQkxFRCI+TElCWE1MX09VVFBVVF9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI1dJVEhfVFJJTyI+V0lUSF9UUklPPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9ERUJVR19SVU5USU1FIj5MSUJYTUxfREVCVUdfUlVOVElNRTwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfVkVSU0lPTiI+TElCWE1MX1ZFUlNJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1hQVFJfRU5BQkxFRCI+TElCWE1MX1hQVFJfRU5BQkxFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfVkVSU0lPTl9TVFJJTkciPkxJQlhNTF9WRVJTSU9OX1NUUklORzwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfQ0FUQUxPR19FTkFCTEVEIj5MSUJYTUxfQ0FUQUxPR19FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9BVFRSX0FMTE9DX1NJWkUiPkxJQlhNTF9BVFRSX0FMTE9DX1NJWkU8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1JFR0VYUF9FTkFCTEVEIj5MSUJYTUxfUkVHRVhQX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX01PRFVMRV9FWFRFTlNJT04iPkxJQlhNTF9NT0RVTEVfRVhURU5TSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9JQ09OVl9FTkFCTEVEIj5MSUJYTUxfSUNPTlZfRU5BQkxFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfSFRNTF9FTkFCTEVEIj5MSUJYTUxfSFRNTF9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9VTklDT0RFX0VOQUJMRUQiPkxJQlhNTF9VTklDT0RFX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0ZUUF9FTkFCTEVEIj5MSUJYTUxfRlRQX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQiPkxJQlhNTF9BVVRPTUFUQV9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9aTElCX0VOQUJMRUQiPkxJQlhNTF9aTElCX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1dSSVRFUl9FTkFCTEVEIj5MSUJYTUxfV1JJVEVSX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0MxNE5fRU5BQkxFRCI+TElCWE1MX0MxNE5fRU5BQkxFRDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfU0NIRU1BU19FTkFCTEVEIj5MSUJYTUxfU0NIRU1BU19FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0RFQlVHX01FTU9SWV9MT0NBVElPTiI+REVCVUdfTUVNT1JZX0xPQ0FUSU9OPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9BVFRSX0ZPUk1BVCI+TElCWE1MX0FUVFJfRk9STUFUPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9URVNUX1ZFUlNJT04iPkxJQlhNTF9URVNUX1ZFUlNJT048L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1hQQVRIX0VOQUJMRUQiPkxJQlhNTF9YUEFUSF9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9FWFBSX0VOQUJMRUQiPkxJQlhNTF9FWFBSX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1ZBTElEX0VOQUJMRUQiPkxJQlhNTF9WQUxJRF9FTkFCTEVEPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9UUkVFX0VOQUJMRUQiPkxJQlhNTF9UUkVFX0VOQUJMRUQ8L2E+OworI2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1BBVFRFUk5fRU5BQkxFRCI+TElCWE1MX1BBVFRFUk5fRU5BQkxFRDwvYT47Cit2b2lkCTxhIGhyZWY9IiN4bWxDaGVja1ZlcnNpb24iPnhtbENoZWNrVmVyc2lvbjwvYT4JCQkoaW50IHZlcnNpb24pOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkFUVFJJQlVURV9VTlVTRUQiPk1hY3JvIDwvYT5BVFRSSUJVVEVfVU5VU0VEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjQVRUUklCVVRFX1VOVVNFRCI+QVRUUklCVVRFX1VOVVNFRDwvYT47Cis8L3ByZT48cD5NYWNybyB1c2VkIHRvIHNpZ25hbCB0byBHQ0MgdW51c2VkIGZ1bmN0aW9uIHBhcmFtZXRlcnM8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iREVCVUdfTUVNT1JZX0xPQ0FUSU9OIj5NYWNybyA8L2E+REVCVUdfTUVNT1JZX0xPQ0FUSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjREVCVUdfTUVNT1JZX0xPQ0FUSU9OIj5ERUJVR19NRU1PUllfTE9DQVRJT048L2E+OworPC9wcmU+PHA+V2hldGhlciB0aGUgbWVtb3J5IGRlYnVnZ2luZyBpcyBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9BVFRSX0FMTE9DX1NJWkUiPk1hY3JvIDwvYT5MSUJYTUxfQVRUUl9BTExPQ19TSVpFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0FUVFJfQUxMT0NfU0laRSI+TElCWE1MX0FUVFJfQUxMT0NfU0laRTwvYT47Cis8L3ByZT48cD5NYWNybyB1c2VkIHRvIGluZGljYXRlIHRvIEdDQyB0aGlzIGlzIGFuIGFsbG9jYXRvciBmdW5jdGlvbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfQVRUUl9GT1JNQVQiPk1hY3JvIDwvYT5MSUJYTUxfQVRUUl9GT1JNQVQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfQVRUUl9GT1JNQVQiPkxJQlhNTF9BVFRSX0ZPUk1BVDwvYT47Cis8L3ByZT48cD5NYWNybyB1c2VkIHRvIGluZGljYXRlIHRvIEdDQyB0aGUgcGFyYW1ldGVyIGFyZSBwcmludGYgbGlrZTwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9BVVRPTUFUQV9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQiPkxJQlhNTF9BVVRPTUFUQV9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgdGhlIGF1dG9tYXRhIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9DMTROX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfQzE0Tl9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0MxNE5fRU5BQkxFRCI+TElCWE1MX0MxNE5fRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBDYW5vbmljYWxpemF0aW9uIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfQ0FUQUxPR19FTkFCTEVEIj5NYWNybyA8L2E+TElCWE1MX0NBVEFMT0dfRU5BQkxFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9DQVRBTE9HX0VOQUJMRUQiPkxJQlhNTF9DQVRBTE9HX0VOQUJMRUQ8L2E+OworPC9wcmU+PHA+V2hldGhlciB0aGUgQ2F0YWxvZyBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX0RFQlVHX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfREVCVUdfRU5BQkxFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9ERUJVR19FTkFCTEVEIj5MSUJYTUxfREVCVUdfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIERlYnVnZ2luZyBtb2R1bGUgaXMgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfREVCVUdfUlVOVElNRSI+TWFjcm8gPC9hPkxJQlhNTF9ERUJVR19SVU5USU1FPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0RFQlVHX1JVTlRJTUUiPkxJQlhNTF9ERUJVR19SVU5USU1FPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgdGhlIHJ1bnRpbWUgZGVidWdnaW5nIGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX0RPQ0JfRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9ET0NCX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfRE9DQl9FTkFCTEVEIj5MSUJYTUxfRE9DQl9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgdGhlIFNHTUwgRG9jYm9vayBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX0RPVFRFRF9WRVJTSU9OIj5NYWNybyA8L2E+TElCWE1MX0RPVFRFRF9WRVJTSU9OPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0RPVFRFRF9WRVJTSU9OIj5MSUJYTUxfRE9UVEVEX1ZFUlNJT048L2E+OworPC9wcmU+PHA+dGhlIHZlcnNpb24gc3RyaW5nIGxpa2UgIjEuMi4zIjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfRVhQUl9FTkFCTEVEIj5NYWNybyA8L2E+TElCWE1MX0VYUFJfRU5BQkxFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9FWFBSX0VOQUJMRUQiPkxJQlhNTF9FWFBSX0VOQUJMRUQ8L2E+OworPC9wcmU+PHA+V2hldGhlciB0aGUgZm9ybWFsIGV4cHJlc3Npb25zIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9GVFBfRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9GVFBfRU5BQkxFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9GVFBfRU5BQkxFRCI+TElCWE1MX0ZUUF9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgdGhlIEZUUCBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX0hUTUxfRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9IVE1MX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfSFRNTF9FTkFCTEVEIj5MSUJYTUxfSFRNTF9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgdGhlIEhUTUwgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9IVFRQX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfSFRUUF9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0hUVFBfRU5BQkxFRCI+TElCWE1MX0hUVFBfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBIVFRQIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfSUNPTlZfRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9JQ09OVl9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0lDT05WX0VOQUJMRUQiPkxJQlhNTF9JQ09OVl9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgaWNvbnYgc3VwcG9ydCBpcyBhdmFpbGFibGU8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfSVNPODg1OVhfRU5BQkxFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9JU084ODU5WF9FTkFCTEVEIj5MSUJYTUxfSVNPODg1OVhfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIElTTy04ODU5LSogc3VwcG9ydCBpcyBtYWRlIGF2YWlsYWJsZSBpbiBjYXNlIGljb252IGlzIG5vdDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfTEVHQUNZX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfTEVHQUNZX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfTEVHQUNZX0VOQUJMRUQiPkxJQlhNTF9MRUdBQ1lfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBkZXByZWNhdGVkIEFQSXMgYXJlIGNvbXBpbGVkIGluIGZvciBjb21wYXRpYmlsaXR5PC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9NT0RVTEVTX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfTU9EVUxFU19FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX01PRFVMRVNfRU5BQkxFRCI+TElCWE1MX01PRFVMRVNfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBtb2R1bGUgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX01PRFVMRV9FWFRFTlNJT04iPk1hY3JvIDwvYT5MSUJYTUxfTU9EVUxFX0VYVEVOU0lPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9NT0RVTEVfRVhURU5TSU9OIj5MSUJYTUxfTU9EVUxFX0VYVEVOU0lPTjwvYT47Cis8L3ByZT48cD50aGUgc3RyaW5nIHN1ZmZpeCB1c2VkIGJ5IGR5bmFtaWMgbW9kdWxlcyAodXN1YWxseSBzaGFyZWQgbGlicmFyaWVzKTwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfT1VUUFVUX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfT1VUUFVUX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfT1VUUFVUX0VOQUJMRUQiPkxJQlhNTF9PVVRQVVRfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBzZXJpYWxpemF0aW9uL3NhdmluZyBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX1BBVFRFUk5fRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9QQVRURVJOX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfUEFUVEVSTl9FTkFCTEVEIj5MSUJYTUxfUEFUVEVSTl9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgdGhlIDxhIGhyZWY9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm4iPnhtbFBhdHRlcm48L2E+IG5vZGUgc2VsZWN0aW9uIGludGVyZmFjZSBpcyBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9QVVNIX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfUFVTSF9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1BVU0hfRU5BQkxFRCI+TElCWE1MX1BVU0hfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBwdXNoIHBhcnNpbmcgaW50ZXJmYWNlcyBhcmUgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfUkVBREVSX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfUkVBREVSX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfUkVBREVSX0VOQUJMRUQiPkxJQlhNTF9SRUFERVJfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSB4bWxSZWFkZXIgcGFyc2luZyBpbnRlcmZhY2UgaXMgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfUkVHRVhQX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfUkVHRVhQX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfUkVHRVhQX0VOQUJMRUQiPkxJQlhNTF9SRUdFWFBfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9TQVgxX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfU0FYMV9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1NBWDFfRU5BQkxFRCI+TElCWE1MX1NBWDFfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBvbGRlciBTQVgxIGludGVyZmFjZSBpcyBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9TQ0hFTUFTX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfU0NIRU1BU19FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1NDSEVNQVNfRU5BQkxFRCI+TElCWE1MX1NDSEVNQVNfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBTY2hlbWFzIHZhbGlkYXRpb24gaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEIj5MSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgdGhlIFNjaGVtYXRyb24gdmFsaWRhdGlvbiBpbnRlcmZhY2VzIGFyZSBjb21waWxlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfVEVTVF9WRVJTSU9OIj5NYWNybyA8L2E+TElCWE1MX1RFU1RfVkVSU0lPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9URVNUX1ZFUlNJT04iPkxJQlhNTF9URVNUX1ZFUlNJT048L2E+OworPC9wcmU+PHA+TWFjcm8gdG8gY2hlY2sgdGhhdCB0aGUgbGlieG1sIHZlcnNpb24gaW4gdXNlIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgdmVyc2lvbiB0aGUgc29mdHdhcmUgaGFzIGJlZW4gY29tcGlsZWQgYWdhaW5zdDwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfVEhSRUFEX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfVEhSRUFEX0VOQUJMRUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfVEhSRUFEX0VOQUJMRUQiPkxJQlhNTF9USFJFQURfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSB0aHJlYWQgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9UUkVFX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfVFJFRV9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1RSRUVfRU5BQkxFRCI+TElCWE1MX1RSRUVfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBET00gbGlrZSB0cmVlIG1hbmlwdWxhdGlvbiBBUEkgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9VTklDT0RFX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfVU5JQ09ERV9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1VOSUNPREVfRU5BQkxFRCI+TElCWE1MX1VOSUNPREVfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBVbmljb2RlIHJlbGF0ZWQgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX1ZBTElEX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfVkFMSURfRU5BQkxFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9WQUxJRF9FTkFCTEVEIj5MSUJYTUxfVkFMSURfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBEVEQgdmFsaWRhdGlvbiBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX1ZFUlNJT04iPk1hY3JvIDwvYT5MSUJYTUxfVkVSU0lPTjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9WRVJTSU9OIj5MSUJYTUxfVkVSU0lPTjwvYT47Cis8L3ByZT48cD50aGUgdmVyc2lvbiBudW1iZXI6IDEuMi4zIHZhbHVlIGlzIDEwMjAzPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9WRVJTSU9OX0VYVFJBIj5NYWNybyA8L2E+TElCWE1MX1ZFUlNJT05fRVhUUkE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfVkVSU0lPTl9FWFRSQSI+TElCWE1MX1ZFUlNJT05fRVhUUkE8L2E+OworPC9wcmU+PHA+ZXh0cmEgdmVyc2lvbiBpbmZvcm1hdGlvbiwgdXNlZCB0byBzaG93IGEgQ1ZTIGNvbXBpbGF0aW9uPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9WRVJTSU9OX1NUUklORyI+TWFjcm8gPC9hPkxJQlhNTF9WRVJTSU9OX1NUUklORzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9WRVJTSU9OX1NUUklORyI+TElCWE1MX1ZFUlNJT05fU1RSSU5HPC9hPjsKKzwvcHJlPjxwPnRoZSB2ZXJzaW9uIG51bWJlciBzdHJpbmcsIDEuMi4zIHZhbHVlIGlzICIxMDIwMyI8L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iTElCWE1MX1dSSVRFUl9FTkFCTEVEIj5NYWNybyA8L2E+TElCWE1MX1dSSVRFUl9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1dSSVRFUl9FTkFCTEVEIj5MSUJYTUxfV1JJVEVSX0VOQUJMRUQ8L2E+OworPC9wcmU+PHA+V2hldGhlciB0aGUgeG1sV3JpdGVyIHNhdmluZyBpbnRlcmZhY2UgaXMgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9YSU5DTFVERV9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1hJTkNMVURFX0VOQUJMRUQiPkxJQlhNTF9YSU5DTFVERV9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgWEluY2x1ZGUgaXMgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfWFBBVEhfRU5BQkxFRCI+TWFjcm8gPC9hPkxJQlhNTF9YUEFUSF9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1hQQVRIX0VOQUJMRUQiPkxJQlhNTF9YUEFUSF9FTkFCTEVEPC9hPjsKKzwvcHJlPjxwPldoZXRoZXIgWFBhdGggaXMgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJMSUJYTUxfWFBUUl9FTkFCTEVEIj5NYWNybyA8L2E+TElCWE1MX1hQVFJfRU5BQkxFRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9YUFRSX0VOQUJMRUQiPkxJQlhNTF9YUFRSX0VOQUJMRUQ8L2E+OworPC9wcmU+PHA+V2hldGhlciBYUG9pbnRlciBpcyBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkxJQlhNTF9aTElCX0VOQUJMRUQiPk1hY3JvIDwvYT5MSUJYTUxfWkxJQl9FTkFCTEVEPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1pMSUJfRU5BQkxFRCI+TElCWE1MX1pMSUJfRU5BQkxFRDwvYT47Cis8L3ByZT48cD5XaGV0aGVyIHRoZSBabGliIHN1cHBvcnQgaXMgY29tcGlsZWQgaW48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iV0lUSE9VVF9UUklPIj5NYWNybyA8L2E+V0lUSE9VVF9UUklPPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjV0lUSE9VVF9UUklPIj5XSVRIT1VUX1RSSU88L2E+OworPC9wcmU+PHA+ZGVmaW5lZCBpZiB0aGUgdHJpbyBzdXBwb3J0IHNob3VsZCBub3QgYmUgY29uZmlndXJlZCBpbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJXSVRIX1RSSU8iPk1hY3JvIDwvYT5XSVRIX1RSSU88L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNXSVRIX1RSSU8iPldJVEhfVFJJTzwvYT47Cis8L3ByZT48cD5kZWZpbmVkIGlmIHRoZSB0cmlvIHN1cHBvcnQgbmVlZCB0byBiZSBjb25maWd1cmVkIGluPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbENoZWNrVmVyc2lvbiIvPnhtbENoZWNrVmVyc2lvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2hlY2tWZXJzaW9uCQkJKGludCB2ZXJzaW9uKTxici8+Cis8L3ByZT48cD5jaGVjayB0aGUgY29tcGlsZWQgbGliIHZlcnNpb24gYWdhaW5zdCB0aGUgaW5jbHVkZSBvbmUuIFRoaXMgY2FuIHdhcm4gb3IgaW1tZWRpYXRlbHkga2lsbCB0aGUgYXBwbGljYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZlcnNpb248L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmNsdWRlIHZlcnNpb24gbnVtYmVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sd3JpdGVyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteG1sd3JpdGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU4YzllNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14bWx3cml0ZXIuaHRtbApAQCAtMCwwICsxLDQ3NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT54bWx3cml0ZXI6IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJMaWJ4bWwyIGRldmhlbHAgc3R5bGVzaGVldCIvPgorICAgIDxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJsaWJ4bWwyIFJlZmVyZW5jZSBNYW51YWwiLz4KKyAgICA8bGluayByZWw9InVwIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KKyAgICA8bGluayByZWw9ImNoYXB0ZXIiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+eG1sd3JpdGVyPC9zcGFuPgorICAgIDwvaDI+CisgICAgPHA+eG1sd3JpdGVyIC0gdGV4dCB3cml0aW5nIEFQSSBmb3IgWE1MPC9wPgorICAgIDxwPnRleHQgd3JpdGluZyBBUEkgZm9yIFhNTCA8L3A+CisgICAgPHA+QXV0aG9yKHMpOiBBbGZyZWQgTWlja2F1dHNjaCAmbHQ7YWxmcmVkQG1pY2thdXRzY2guZGUmZ3Q7IDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbiI+eG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURvY1R5cGUiPnhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGU8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFRleHRXcml0ZXIgPGEgaHJlZj0iI3htbFRleHRXcml0ZXIiPnhtbFRleHRXcml0ZXI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXIiPnhtbFRleHRXcml0ZXI8L2E+ICogPGEgaHJlZj0iI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+OworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogdmVyc2lvbiwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIHN0YW5kYWxvbmUpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyRW5kUEkiPnhtbFRleHRXcml0ZXJFbmRQSTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCI+eG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGRhdGEsIDxici8+CQkJCQkgaW50IHN0YXJ0LCA8YnIvPgkJCQkJIGludCBsZW4pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIj54bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik7Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlVGV4dFdyaXRlciI+eG1sRnJlZVRleHRXcml0ZXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyRW5kQ29tbWVudCI+eG1sVGV4dFdyaXRlckVuZENvbW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4iPnhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIvPgkJCQkJIGludCBsZW4pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzIj54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmRhdGFpZCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSB2YV9saXN0IGFyZ3B0cik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TIj54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCQkgaW50IGNvbXByZXNzaW9uKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJCSAuLi4gLi4uKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBpbnQgcGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmlkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmRhdGFpZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJIHZhX2xpc3QgYXJncHRyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4Ij54bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXg8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZGF0YSwgPGJyLz4JCQkJCSBpbnQgc3RhcnQsIDxici8+CQkJCQkgaW50IGxlbik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTZXRJbmRlbnQiPnhtbFRleHRXcml0ZXJTZXRJbmRlbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgaW50IGluZGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSAuLi4gLi4uKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZERvY3VtZW50Ij54bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3Q8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydENvbW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyRW5kQ0RBVEEiPnhtbFRleHRXcml0ZXJFbmRDREFUQTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSI+eG1sVGV4dFdyaXRlckVuZERUREVudGl0eTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gb3V0KTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnRQSSI+eG1sVGV4dFdyaXRlclN0YXJ0UEk8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBpbnQgcGUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5kYXRhaWQpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgLi4uIC4uLik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUNEQVRBIj54bWxUZXh0V3JpdGVyV3JpdGVDREFUQTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJCSBpbnQgcGUsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJCSB2YV9saXN0IGFyZ3B0cik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIHZhX2xpc3QgYXJncHRyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyRW5kRFREIj54bWxUZXh0V3JpdGVyRW5kRFREPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJFbmRFbGVtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIHZhX2xpc3QgYXJncHRyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEiPnhtbFRleHRXcml0ZXJTdGFydENEQVRBPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lPC9hPgkoY29uc3QgY2hhciAqIHVyaSwgPGJyLz4JCQkJCQkJIGludCBjb21wcmVzc2lvbik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSAuLi4gLi4uKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlUEkiPnhtbFRleHRXcml0ZXJXcml0ZVBJPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkJIGludCBwZSwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkJIC4uLiAuLi4pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSB2YV9saXN0IGFyZ3B0cik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBpbnQgcGUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIHZhX2xpc3QgYXJncHRyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24iPnhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmlkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJIC4uLiAuLi4pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVN0cmluZyI+eG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIHZhX2xpc3QgYXJncHRyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckZsdXNoIj54bWxUZXh0V3JpdGVyRmx1c2g8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnREVEQiPnhtbFRleHRXcml0ZXJTdGFydERURDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdUZXh0V3JpdGVyRG9jIj54bWxOZXdUZXh0V3JpdGVyRG9jPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+ICogZG9jLCA8YnIvPgkJCQkJCSBpbnQgY29tcHJlc3Npb24pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJCSAuLi4gLi4uKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpOworPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3VGV4dFdyaXRlclRyZWUiPnhtbE5ld1RleHRXcml0ZXJUcmVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCQkgaW50IGNvbXByZXNzaW9uKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRXcml0ZXJNZW1vcnkiPnhtbE5ld1RleHRXcml0ZXJNZW1vcnk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJCSBpbnQgY29tcHJlc3Npb24pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJIC4uLiAuLi4pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgLi4uIC4uLik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXciPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJIHZhX2xpc3QgYXJncHRyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgLi4uIC4uLik7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3Q8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIC4uLiAuLi4pOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVSYXciPnhtbFRleHRXcml0ZXJXcml0ZVJhdzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURURCI+eG1sVGV4dFdyaXRlcldyaXRlRFREPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN1YnNldCk7CitpbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJCSAuLi4gLi4uKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Ij54bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBpbnQgcGUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOworaW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIHZhX2xpc3QgYXJncHRyKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK2ludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIC4uLiAuLi4pOworPC9wcmU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXNjcmlwdGlvbjwvaDI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj4KKyAgICAgIDxoMj5EZXRhaWxzPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGUiPk1hY3JvIDwvYT54bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRG9jVHlwZSI+eG1sVGV4dFdyaXRlcldyaXRlRG9jVHlwZTwvYT47Cis8L3ByZT48cD50aGlzIG1hY3JvIG1hcHMgdG8gPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVEQiPnhtbFRleHRXcml0ZXJXcml0ZURURDwvYT48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uIj5NYWNybyA8L2E+eG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uIj54bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+OworPC9wcmU+PHA+VGhpcyBtYWNybyBtYXBzIHRvIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUEkiPnhtbFRleHRXcml0ZXJXcml0ZVBJPC9hPjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyIj5TdHJ1Y3R1cmUgPC9hPnhtbFRleHRXcml0ZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFRleHRXcml0ZXIgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9IHhtbFRleHRXcml0ZXI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclB0ciI+VHlwZWRlZiA8L2E+eG1sVGV4dFdyaXRlclB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlciI+eG1sVGV4dFdyaXRlcjwvYT4gKiB4bWxUZXh0V3JpdGVyUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbEZyZWVUZXh0V3JpdGVyIi8+eG1sRnJlZVRleHRXcml0ZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVUZXh0V3JpdGVyCQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgYWxsIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgd3JpdGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dFdyaXRlciIvPnhtbE5ld1RleHRXcml0ZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CXhtbE5ld1RleHRXcml0ZXIJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+IHN0cnVjdHVyZSB1c2luZyBhbiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gTk9URTogdGhlIEBvdXQgcGFyYW1ldGVyIHdpbGwgYmUgZGVhbGxvY2F0ZWQgd2hlbiB0aGUgd3JpdGVyIGlzIGNsb3NlZCAoaWYgdGhlIGNhbGwgc3VjY2VlZC4pPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1RleHRXcml0ZXJEb2MiLz54bWxOZXdUZXh0V3JpdGVyRG9jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgl4bWxOZXdUZXh0V3JpdGVyRG9jCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gKiBkb2MsIDxici8+CQkJCQkJIGludCBjb21wcmVzc2lvbik8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlciI+eG1sTmV3VGV4dFdyaXRlcjwvYT4gc3RydWN0dXJlIHdpdGggQCpkb2MgYXMgb3V0cHV0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFkZHJlc3Mgb2YgYSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gdG8gaG9sZCB0aGUgbmV3IFhNTCBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wcmVzc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29tcHJlc3MgdGhlIG91dHB1dD88L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUiLz54bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CXhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZQkoY29uc3QgY2hhciAqIHVyaSwgPGJyLz4JCQkJCQkJIGludCBjb21wcmVzc2lvbik8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlciI+eG1sTmV3VGV4dFdyaXRlcjwvYT4gc3RydWN0dXJlIHdpdGggQHVyaSBhcyBvdXRwdXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2UgZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb21wcmVzcyB0aGUgb3V0cHV0PzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1RleHRXcml0ZXJNZW1vcnkiLz54bWxOZXdUZXh0V3JpdGVyTWVtb3J5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgl4bWxOZXdUZXh0V3JpdGVyTWVtb3J5CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIvPgkJCQkJCSBpbnQgY29tcHJlc3Npb24pPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+IHN0cnVjdHVyZSB3aXRoIEBidWYgYXMgb3V0cHV0IFRPRE86IGhhbmRsZSBjb21wcmVzc2lvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb21wcmVzcyB0aGUgb3V0cHV0PzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIi8+eG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CXhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCQkgaW50IGNvbXByZXNzaW9uKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPiBzdHJ1Y3R1cmUgd2l0aCBAY3R4dCBhcyBvdXRwdXQgTk9URTogdGhlIEBjdHh0IGNvbnRleHQgd2lsbCBiZSBmcmVlZCB3aXRoIHRoZSByZXN1bHRpbmcgd3JpdGVyIChpZiB0aGUgY2FsbCBzdWNjZWVkcykuIFRPRE86IGhhbmRsZSBjb21wcmVzc2lvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gdG8gaG9sZCB0aGUgbmV3IFhNTCBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wcmVzc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29tcHJlc3MgdGhlIG91dHB1dD88L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxOZXdUZXh0V3JpdGVyVHJlZSIvPnhtbE5ld1RleHRXcml0ZXJUcmVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgl4bWxOZXdUZXh0V3JpdGVyVHJlZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCQkgaW50IGNvbXByZXNzaW9uKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPiBzdHJ1Y3R1cmUgd2l0aCBAZG9jIGFzIG91dHB1dCBzdGFydGluZyBhdCBAbm9kZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG9yIE5VTEwgZm9yIGRvYy0mZ3Q7Y2hpbGRyZW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb21wcmVzcyB0aGUgb3V0cHV0PzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUiLz54bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTxici8+Cis8L3ByZT48cD5FbmQgdGhlIGN1cnJlbnQgeG1sIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kQ0RBVEEiLz54bWxUZXh0V3JpdGVyRW5kQ0RBVEEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlckVuZENEQVRBCQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyLz4KKzwvcHJlPjxwPkVuZCBhbiB4bWwgQ0RBVEEgc2VjdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJFbmRDb21tZW50Ii8+eG1sVGV4dFdyaXRlckVuZENvbW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlckVuZENvbW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIvPgorPC9wcmU+PHA+RW5kIHRoZSBjdXJyZW50IHhtbCBjb21lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFREIi8+eG1sVGV4dFdyaXRlckVuZERURCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyRW5kRFRECQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyLz4KKzwvcHJlPjxwPkVuZCBhbiB4bWwgRFRELjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QiLz54bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyLz4KKzwvcHJlPjxwPkVuZCBhbiB4bWwgRFREIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGxpc3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCIvPnhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIvPgorPC9wcmU+PHA+RW5kIGFuIHhtbCBEVEQgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkiLz54bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTxici8+Cis8L3ByZT48cD5FbmQgYW4geG1sIERURCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiLz54bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlckVuZERvY3VtZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIvPgorPC9wcmU+PHA+RW5kIGFuIHhtbCBkb2N1bWVudC4gQWxsIG9wZW4gZWxlbWVudHMgYXJlIGNsb3NlZCwgYW5kIHRoZSBjb250ZW50IGlzIGZsdXNoZWQgdG8gdGhlIG91dHB1dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCIvPnhtbFRleHRXcml0ZXJFbmRFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmRFbGVtZW50CQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyLz4KKzwvcHJlPjxwPkVuZCB0aGUgY3VycmVudCB4bWwgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJFbmRQSSIvPnhtbFRleHRXcml0ZXJFbmRQSSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyRW5kUEkJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIvPgorPC9wcmU+PHA+RW5kIHRoZSBjdXJyZW50IHhtbCBQSS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJGbHVzaCIvPnhtbFRleHRXcml0ZXJGbHVzaCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyRmx1c2gJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIvPgorPC9wcmU+PHA+Rmx1c2ggdGhlIG91dHB1dCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiLz54bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIvPgorPC9wcmU+PHA+RW5kIHRoZSBjdXJyZW50IHhtbCBlbGVtZW50LiBXcml0ZXMgYW4gZW5kIHRhZyBldmVuIGlmIHRoZSBlbGVtZW50IGlzIGVtcHR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU2V0SW5kZW50Ii8+eG1sVGV4dFdyaXRlclNldEluZGVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU2V0SW5kZW50CQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgaW50IGluZGVudCk8YnIvPgorPC9wcmU+PHA+U2V0IGluZGVudGF0aW9uIG91dHB1dC4gaW5kZW50ID0gMCBkbyBub3QgaW5kZW50YXRpb24uIGluZGVudCAmZ3Q7IDAgZG8gaW5kZW50YXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRvIGluZGVudGF0aW9uPzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgb24gZXJyb3Igb3IgMCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZyIvPnhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZwkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik8YnIvPgorPC9wcmU+PHA+U2V0IHN0cmluZyBpbmRlbnRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBvbiBlcnJvciBvciAwIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUiLz54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+U3RhcnQgYW4geG1sIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMiLz54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUwkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJKTxici8+Cis8L3ByZT48cD5TdGFydCBhbiB4bWwgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCBuYW1lc3BhY2Ugc3VwcG9ydC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIHByZWZpeCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbGVtZW50IGxvY2FsIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZVVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIFVSSSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSIvPnhtbFRleHRXcml0ZXJTdGFydENEQVRBICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJTdGFydENEQVRBCQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBDREFUQSBzZWN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCIvPnhtbFRleHRXcml0ZXJTdGFydENvbW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBjb21tZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0RFREIi8+eG1sVGV4dFdyaXRlclN0YXJ0RFREICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJTdGFydERURAkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQpPGJyLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBEVEQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c2lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCIvPnhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBEVEQgQVRUTElTVC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCIvPnhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBEVEQgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Ii8+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgaW50IHBlLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxici8+Cis8L3ByZT48cD5TdGFydCBhbiB4bWwgRFREIEFUVExJU1QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIEFUVExJU1Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50Ii8+eG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiB2ZXJzaW9uLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogc3RhbmRhbG9uZSk8YnIvPgorPC9wcmU+PHA+U3RhcnQgYSBuZXcgeG1sIGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52ZXJzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgeG1sIHZlcnNpb24gKCIxLjAiKSBvciBOVUxMIGZvciBkZWZhdWx0ICgiMS4wIik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2Rpbmcgb3IgTlVMTCBmb3IgZGVmYXVsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RhbmRhbG9uZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+InllcyIgb3IgIm5vIiBvciBOVUxMIGZvciBkZWZhdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50Ii8+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+U3RhcnQgYW4geG1sIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyIvPnhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSk8YnIvPgorPC9wcmU+PHA+U3RhcnQgYW4geG1sIGVsZW1lbnQgd2l0aCBuYW1lc3BhY2Ugc3VwcG9ydC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIHByZWZpeCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbGVtZW50IGxvY2FsIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZVVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIFVSSSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnRQSSIvPnhtbFRleHRXcml0ZXJTdGFydFBJICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJTdGFydFBJCQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCk8YnIvPgorPC9wcmU+PHA+U3RhcnQgYW4geG1sIFBJLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5QSSB0YXJnZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSIvPnhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMiLz54bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUwkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsb2NhbCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lc3BhY2VVUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NCIvPnhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIvPgkJCQkJIGludCBzdGFydCwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5Xcml0ZSBhbiBiYXNlNjQgZW5jb2RlZCB4bWwgdGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmJpbmFyeSBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgZGF0YSBvZiB0aGUgZmlyc3QgYnl0ZSB0byBlbmNvZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUJpbkhleCIvPnhtbFRleHRXcml0ZXJXcml0ZUJpbkhleCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIvPgkJCQkJIGludCBzdGFydCwgPGJyLz4JCQkJCSBpbnQgbGVuKTxici8+Cis8L3ByZT48cD5Xcml0ZSBhIEJpbkhleCBlbmNvZGVkIHhtbCB0ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YmluYXJ5IGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcG9zaXRpb24gd2l0aGluIHRoZSBkYXRhIG9mIHRoZSBmaXJzdCBieXRlIHRvIGVuY29kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGVuY29kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEiLz54bWxUZXh0V3JpdGVyV3JpdGVDREFUQSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVDREFUQQkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgQ0RBVEEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5DREFUQSBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50Ii8+eG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYW4geG1sIGNvbW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFREIi8+eG1sVGV4dFdyaXRlcldyaXRlRFREICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZURURAkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN1YnNldCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c2lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3Vic2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zdHJpbmcgY29udGVudCBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0Ii8+eG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgQVRUTElTVC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29udGVudCBvZiB0aGUgQVRUTElTVDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudCIvPnhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgRFREIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRlbnQgb2YgdGhlIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eSIvPnhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGludCBwZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuZGF0YWlkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5Xcml0ZSBhIERURCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5kYXRhaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB4bWwgbm90YXRpb24gbmFtZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRlbnQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHkiLz54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGludCBwZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmRhdGFpZCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgZXh0ZXJuYWwgZW50aXR5LiBUaGUgZW50aXR5IG11c3QgaGF2ZSBiZWVuIHN0YXJ0ZWQgd2l0aCA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5PC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uZGF0YWlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgeG1sIG5vdGF0aW9uIG5hbWUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzIi8+eG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHlDb250ZW50cyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuZGF0YWlkKTxici8+Cis8L3ByZT48cD5Xcml0ZSB0aGUgY29udGVudHMgb2YgYSBEVEQgZXh0ZXJuYWwgZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5kYXRhaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB4bWwgbm90YXRpb24gbmFtZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5Ii8+eG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBpbnQgcGUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgaW50ZXJuYWwgZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRlbnQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24iLz54bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmlkLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHhtbCBub3RhdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQiLz54bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxici8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZWxlbWVudCBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMiLz54bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCBlbGVtZW50IHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbGVtZW50IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSIvPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMiLz54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUwkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgYXR0cmlidXRlLndpdGggbmFtZXNwYWNlIHN1cHBvcnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBIi8+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIENEQVRBLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Ii8+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCBjb21tZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQiLz54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRECSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgd2l0aCBhIGZvcm1hdHRlZCBtYXJrdXAgZGVjbGFyYXRpb25zIHBhcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c2lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0Ii8+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIERURCBBVFRMSVNULjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQiLz54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgRFREIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkiLz54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJCSBpbnQgcGUsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCBEVEQgaW50ZXJuYWwgZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCIvPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMiLz54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxici8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50IHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJIi8+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSAuLi4gLi4uKTxici8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCBQSS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhcmdldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+UEkgdGFyZ2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdyIvPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXcJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgLi4uIC4uLik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgcmF3IHhtbCB0ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmciLz54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJIC4uLiAuLi4pPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCB0ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVQSSIvPnhtbFRleHRXcml0ZXJXcml0ZVBJICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVBJCQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYW4geG1sIFBJLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5QSSB0YXJnZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlBJIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVJhdyIvPnhtbFRleHRXcml0ZXJXcml0ZVJhdyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVSYXcJCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSByYXcgeG1sIHRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50ZXh0IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIi8+eG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbgkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxici8+CQkJCQkgaW50IGxlbik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYW4geG1sIHRleHQuIFRPRE86IHdoYXQgYWJvdXQgZW50aXRpZXMgYW5kIHNwZWNpYWwgY2hhcnM/PzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGV4dCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGVuZ3RoIG9mIHRoZSB0ZXh0IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nIi8+eG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVN0cmluZwkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCB0ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGV4dCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiLz54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBhdHRyaWJ1dGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyIvPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBhdHRyaWJ1dGUud2l0aCBuYW1lc3BhY2Ugc3VwcG9ydDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsb2NhbCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lc3BhY2VVUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBIi8+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIENEQVRBLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJncHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q29tbWVudCIvPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCBjb21tZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJncHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREIi8+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRECSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgRFREIHdpdGggYSBmb3JtYXR0ZWQgbWFya3VwIGRlY2xhcmF0aW9ucyBwYXJ0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QiLz54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgRFREIEFUVExJU1QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIEFUVExJU1Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQiLz54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudAkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgRFREIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5Ii8+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eQkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkJCSBpbnQgcGUsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxici8+CQkJCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgRFREIGludGVybmFsIGVudGl0eS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50Ii8+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlMiLz54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlMJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSwgPGJyLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50IHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSIvPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkJKDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIFBJLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5QSSB0YXJnZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyIvPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdwkoPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxici8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyLz4JCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgcmF3IHhtbCB0ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJncHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nIi8+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIvPgkJCQkJIHZhX2xpc3QgYXJncHRyKTxici8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgdGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteHBhdGguaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi14cGF0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmZGQ1MWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteHBhdGguaHRtbApAQCAtMCwwICsxLDUyOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgorICAgIDx0aXRsZT54cGF0aDogWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTGlieG1sMiBkZXZoZWxwIHN0eWxlc2hlZXQiLz4KKyAgICA8bGluayByZWw9InN0YXJ0IiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIi8+CisgICAgPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgcmVsPSJjaGFwdGVyIiBocmVmPSJnZW5lcmFsLmh0bWwiIHRpdGxlPSJBUEkiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CisgICAgPHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+CisgICAgICA8dHIgdmFsaWduPSJtaWRkbGUiPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+eHBhdGg8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD54cGF0aCAtIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9wPgorICAgIDxwPkFQSSBmb3IgdGhlIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uICBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbiBYUGF0aCBpcyBhIGxhbmd1YWdlIGZvciBhZGRyZXNzaW5nIHBhcnRzIG9mIGFuIFhNTCBkb2N1bWVudCwgZGVzaWduZWQgdG8gYmUgdXNlZCBieSBib3RoIFhTTFQgYW5kIFhQb2ludGVyPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEdldExlbmd0aCI+eG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoPC9hPihucyk7CisjZGVmaW5lIDxhIGhyZWY9IiNYTUxfWFBBVEhfQ0hFQ0tOUyI+WE1MX1hQQVRIX0NIRUNLTlM8L2E+OworI2RlZmluZSA8YSBocmVmPSIjWE1MX1hQQVRIX05PVkFSIj5YTUxfWFBBVEhfTk9WQVI8L2E+OworI2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhOb2RlU2V0SXRlbSI+eG1sWFBhdGhOb2RlU2V0SXRlbTwvYT4obnMsIGluZGV4KTsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldElzRW1wdHkiPnhtbFhQYXRoTm9kZVNldElzRW1wdHk8L2E+KG5zKTsKK3R5cGVkZWYgZW51bSA8YSBocmVmPSIjeG1sWFBhdGhPYmplY3RUeXBlIj54bWxYUGF0aE9iamVjdFR5cGU8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZSI+eG1sWFBhdGhWYXJpYWJsZTwvYT4gKiA8YSBocmVmPSIjeG1sWFBhdGhWYXJpYWJsZVB0ciI+eG1sWFBhdGhWYXJpYWJsZVB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhDb250ZXh0IDxhIGhyZWY9IiN4bWxYUGF0aENvbnRleHQiPnhtbFhQYXRoQ29udGV4dDwvYT47Cit0eXBlZGVmIGVudW0gPGEgaHJlZj0iI3htbFhQYXRoRXJyb3IiPnhtbFhQYXRoRXJyb3I8L2E+OwordHlwZWRlZiBzdHJ1Y3QgX3htbFhQYXRoRnVuY3QgPGEgaHJlZj0iI3htbFhQYXRoRnVuY3QiPnhtbFhQYXRoRnVuY3Q8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhUeXBlIj54bWxYUGF0aFR5cGU8L2E+ICogPGEgaHJlZj0iI3htbFhQYXRoVHlwZVB0ciI+eG1sWFBhdGhUeXBlUHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aFR5cGUgPGEgaHJlZj0iI3htbFhQYXRoVHlwZSI+eG1sWFBhdGhUeXBlPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXQiPnhtbE5vZGVTZXQ8L2E+ICogPGEgaHJlZj0iI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdCI+eG1sWFBhdGhGdW5jdDwvYT4gKiA8YSBocmVmPSIjeG1sWFBhdGhGdW5jUHRyIj54bWxYUGF0aEZ1bmNQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwciI+eG1sWFBhdGhDb21wRXhwcjwvYT4gKiA8YSBocmVmPSIjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhPYmplY3QgPGEgaHJlZj0iI3htbFhQYXRoT2JqZWN0Ij54bWxYUGF0aE9iamVjdDwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhDb21wRXhwciA8YSBocmVmPSIjeG1sWFBhdGhDb21wRXhwciI+eG1sWFBhdGhDb21wRXhwcjwvYT47Cit0eXBlZGVmIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHQiPnhtbFhQYXRoQ29udGV4dDwvYT4gKiA8YSBocmVmPSIjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+OwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij54bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+ICogPGEgaHJlZj0iI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxOb2RlU2V0IDxhIGhyZWY9IiN4bWxOb2RlU2V0Ij54bWxOb2RlU2V0PC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aFZhcmlhYmxlIDxhIGhyZWY9IiN4bWxYUGF0aFZhcmlhYmxlIj54bWxYUGF0aFZhcmlhYmxlPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0Ij54bWxYUGF0aE9iamVjdDwvYT4gKiA8YSBocmVmPSIjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPjsKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aEF4aXMgPGEgaHJlZj0iI3htbFhQYXRoQXhpcyI+eG1sWFBhdGhBeGlzPC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQXhpcyI+eG1sWFBhdGhBeGlzPC9hPiAqIDxhIGhyZWY9IiN4bWxYUGF0aEF4aXNQdHIiPnhtbFhQYXRoQXhpc1B0cjwvYT47Cit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhQYXJzZXJDb250ZXh0IDxhIGhyZWY9IiN4bWxYUGF0aFBhcnNlckNvbnRleHQiPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvYT47CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW48L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbnMpOwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4gPGEgaHJlZj0iI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+CSh2b2lkICogY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmkpOworPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmciPnhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aElzTmFOIj54bWxYUGF0aElzTmFOPC9hPgkJCShkb3VibGUgdmFsKTsKK2ludAk8YSBocmVmPSIjeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiPnhtbFhQYXRoQ29udGV4dFNldENhY2hlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgYWN0aXZlLCA8YnIvPgkJCQkJIGludCB2YWx1ZSwgPGJyLz4JCQkJCSBpbnQgb3B0aW9ucyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhDb252ZXJ0U3RyaW5nIj54bWxYUGF0aENvbnZlcnRTdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiI+eG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW48L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4gY29tcCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aElzSW5mIj54bWxYUGF0aElzSW5mPC9hPgkJCShkb3VibGUgdmFsKTsKK2xvbmcJPGEgaHJlZj0iI3htbFhQYXRoT3JkZXJEb2NFbGVtcyI+eG1sWFBhdGhPcmRlckRvY0VsZW1zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5vZGVTZXRDcmVhdGUiPnhtbFhQYXRoTm9kZVNldENyZWF0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk7Citkb3VibGUJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlciI+eG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyPC9hPgkoaW50IHZhbCk7Citkb3VibGUJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE5vZGVUb051bWJlciI+eG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk7Citkb3VibGUJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyIj54bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcjwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpOwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiA8YSBocmVmPSIjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gY3VyKTsKK2RvdWJsZQk8YSBocmVmPSIjeG1sWFBhdGhDYXN0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdFRvTnVtYmVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbiI+eG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nIj54bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZzwvYT4JKGRvdWJsZSB2YWwpOwordHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiA8YSBocmVmPSIjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jPC9hPgkodm9pZCAqIGN0eHQsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmkpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGcmVlT2JqZWN0Ij54bWxYUGF0aEZyZWVPYmplY3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2JqKTsKK2ludAk8YSBocmVmPSIjeG1sWFBhdGhFdmFsUHJlZGljYXRlIj54bWxYUGF0aEV2YWxQcmVkaWNhdGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHJlcyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aEZyZWVDb250ZXh0Ij54bWxYUGF0aEZyZWVDb250ZXh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhPYmplY3RDb3B5Ij54bWxYUGF0aE9iamVjdENvcHk8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGcmVlTm9kZVNldExpc3QiPnhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9iaik7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4KTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nIj54bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbnMpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoQ29tcGlsZWRFdmFsIj54bWxYUGF0aENvbXBpbGVkRXZhbDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhFdmFsRXhwcmVzc2lvbiI+eG1sWFBhdGhFdmFsRXhwcmVzc2lvbjwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aEluaXQiPnhtbFhQYXRoSW5pdDwvYT4JCQkodm9pZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbiI+eG1sWFBhdGhDb252ZXJ0Qm9vbGVhbjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk7Cit0eXBlZGVmIGludCA8YSBocmVmPSIjeG1sWFBhdGhDb252ZXJ0RnVuYyI+eG1sWFBhdGhDb252ZXJ0RnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmosIDxici8+CQkJCQkgaW50IHR5cGUpOwordHlwZWRlZiB2b2lkIDxhIGhyZWY9IiN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aENtcE5vZGVzIj54bWxYUGF0aENtcE5vZGVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sWFBhdGhDYXN0VG9TdHJpbmciPnhtbFhQYXRoQ2FzdFRvU3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhDdHh0Q29tcGlsZSI+eG1sWFBhdGhDdHh0Q29tcGlsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik7Cit0eXBlZGVmIHZvaWQgPGEgaHJlZj0iI3htbFhQYXRoRXZhbEZ1bmMiPnhtbFhQYXRoRXZhbEZ1bmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyI+eG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nPC9hPgkoaW50IHZhbCk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbiI+eG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuPC9hPgkoZG91YmxlIHZhbCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aEZyZWVOb2RlU2V0Ij54bWxYUGF0aEZyZWVOb2RlU2V0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBvYmopOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGcmVlQ29tcEV4cHIiPnhtbFhQYXRoRnJlZUNvbXBFeHByPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV3Q29udGV4dCI+eG1sWFBhdGhOZXdDb250ZXh0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhDb252ZXJ0TnVtYmVyIj54bWxYUGF0aENvbnZlcnROdW1iZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aENvbXBpbGUiPnhtbFhQYXRoQ29tcGlsZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpOworZG91YmxlCTxhIGhyZWY9IiN4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBucyk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdFRvQm9vbGVhbiI+eG1sWFBhdGhDYXN0VG9Cb29sZWFuPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iWE1MX1hQQVRIX0NIRUNLTlMiPk1hY3JvIDwvYT5YTUxfWFBBVEhfQ0hFQ0tOUzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9YUEFUSF9DSEVDS05TIj5YTUxfWFBBVEhfQ0hFQ0tOUzwvYT47Cis8L3ByZT48cD5jaGVjayBuYW1lc3BhY2VzIGF0IGNvbXBpbGF0aW9uPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhNTF9YUEFUSF9OT1ZBUiI+TWFjcm8gPC9hPlhNTF9YUEFUSF9OT1ZBUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9YUEFUSF9OT1ZBUiI+WE1MX1hQQVRIX05PVkFSPC9hPjsKKzwvcHJlPjxwPmZvcmJpZCB2YXJpYWJsZXMgaW4gZXhwcmVzc2lvbjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgiPk1hY3JvIDwvYT54bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgiPnhtbFhQYXRoTm9kZVNldEdldExlbmd0aDwvYT4obnMpOworPC9wcmU+PHA+SW1wbGVtZW50IGEgZnVuY3Rpb25hbGl0eSBzaW1pbGFyIHRvIHRoZSBET00gTm9kZUxpc3QubGVuZ3RoLiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIG5vZGUtc2V0LjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRJc0VtcHR5Ij5NYWNybyA8L2E+eG1sWFBhdGhOb2RlU2V0SXNFbXB0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldElzRW1wdHkiPnhtbFhQYXRoTm9kZVNldElzRW1wdHk8L2E+KG5zKTsKKzwvcHJlPjxwPkNoZWNrcyB3aGV0aGVyIEBucyBpcyBlbXB0eSBvciBub3QuIFJldHVybnMgJVRSVUUgaWYgQG5zIGlzIGFuIGVtcHR5IG5vZGUtc2V0LjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRJdGVtIj5NYWNybyA8L2E+eG1sWFBhdGhOb2RlU2V0SXRlbTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEl0ZW0iPnhtbFhQYXRoTm9kZVNldEl0ZW08L2E+KG5zLCBpbmRleCk7Cis8L3ByZT48cD5JbXBsZW1lbnRzIGEgZnVuY3Rpb25hbGl0eSBzaW1pbGFyIHRvIHRoZSBET00gTm9kZUxpc3QuaXRlbSgpLiBSZXR1cm5zIHRoZSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBhdCB0aGUgZ2l2ZW4gQGluZGV4IGluIEBucyBvciBOVUxMIGlmIEBpbmRleCBpcyBvdXQgb2YgcmFuZ2UgKDAgdG8gbGVuZ3RoLTEpPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluZGV4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbmRleCBvZiBhIG5vZGUgaW4gdGhlIHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldCI+U3RydWN0dXJlIDwvYT54bWxOb2RlU2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxOb2RlU2V0IHsKKyAgICBpbnQJbm9kZU5yCTogbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBzZXQKKyAgICBpbnQJbm9kZU1heAk6IHNpemUgb2YgdGhlIGFycmF5IGFzIGFsbG9jYXRlZAorICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICoJbm9kZVRhYgk6IGFycmF5IG9mIG5vZGVzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgQEAgd2l0aF9ucyB0byBjaGVjayB3ZXRoZXIgbmFtZQorfSB4bWxOb2RlU2V0OworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbE5vZGVTZXRQdHIiPlR5cGVkZWYgPC9hPnhtbE5vZGVTZXRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldCI+eG1sTm9kZVNldDwvYT4gKiB4bWxOb2RlU2V0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoQXhpcyI+U3RydWN0dXJlIDwvYT54bWxYUGF0aEF4aXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFhQYXRoQXhpcyB7CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiB0aGUgYXhpcyBuYW1lCisgICAgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQXhpc0Z1bmMiPnhtbFhQYXRoQXhpc0Z1bmM8L2E+CWZ1bmMJOiB0aGUgc2VhcmNoIGZ1bmN0aW9uCit9IHhtbFhQYXRoQXhpczsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEF4aXNQdHIiPlR5cGVkZWYgPC9hPnhtbFhQYXRoQXhpc1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEF4aXMiPnhtbFhQYXRoQXhpczwvYT4gKiB4bWxYUGF0aEF4aXNQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb21wRXhwciI+U3RydWN0dXJlIDwvYT54bWxYUGF0aENvbXBFeHByPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxYUGF0aENvbXBFeHByIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfSB4bWxYUGF0aENvbXBFeHByOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ29tcEV4cHJQdHIiPlR5cGVkZWYgPC9hPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwciI+eG1sWFBhdGhDb21wRXhwcjwvYT4gKiB4bWxYUGF0aENvbXBFeHByUHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ29udGV4dCI+U3RydWN0dXJlIDwvYT54bWxYUGF0aENvbnRleHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFhQYXRoQ29udGV4dCB7CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CWRvYwk6IFRoZSBjdXJyZW50IGRvY3VtZW50CisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQk6IFRoZSBjdXJyZW50IG5vZGUKKyAgICBpbnQJbmJfdmFyaWFibGVzX3VudXNlZAk6IHVudXNlZCAoaGFzaCB0YWJsZSkKKyAgICBpbnQJbWF4X3ZhcmlhYmxlc191bnVzZWQJOiB1bnVzZWQgKGhhc2ggdGFibGUpCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CXZhckhhc2gJOiBIYXNoIHRhYmxlIG9mIGRlZmluZWQgdmFyaWFibGVzCisgICAgaW50CW5iX3R5cGVzCTogbnVtYmVyIG9mIGRlZmluZWQgdHlwZXMKKyAgICBpbnQJbWF4X3R5cGVzCTogbWF4IG51bWJlciBvZiB0eXBlcworICAgIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFR5cGVQdHIiPnhtbFhQYXRoVHlwZVB0cjwvYT4JdHlwZXMJOiBBcnJheSBvZiBkZWZpbmVkIHR5cGVzCisgICAgaW50CW5iX2Z1bmNzX3VudXNlZAk6IHVudXNlZCAoaGFzaCB0YWJsZSkKKyAgICBpbnQJbWF4X2Z1bmNzX3VudXNlZAk6IHVudXNlZCAoaGFzaCB0YWJsZSkKKyAgICA8YSBocmVmPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JZnVuY0hhc2gJOiBIYXNoIHRhYmxlIG9mIGRlZmluZWQgZnVuY3MKKyAgICBpbnQJbmJfYXhpcwk6IG51bWJlciBvZiBkZWZpbmVkIGF4aXMKKyAgICBpbnQJbWF4X2F4aXMJOiBtYXggbnVtYmVyIG9mIGF4aXMKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzUHRyIj54bWxYUGF0aEF4aXNQdHI8L2E+CWF4aXMJOiBBcnJheSBvZiBkZWZpbmVkIGF4aXMgdGhlIG5hbWVzcGFjZSBub2RlcyBvZiB0aGUgY29udGV4dCBub2RlCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiAqCW5hbWVzcGFjZXMJOiBBcnJheSBvZiBuYW1lc3BhY2VzCisgICAgaW50CW5zTnIJOiBudW1iZXIgb2YgbmFtZXNwYWNlIGluIHNjb3BlCisgICAgdm9pZCAqCXVzZXIJOiBmdW5jdGlvbiB0byBmcmVlIGV4dHJhIHZhcmlhYmxlcworICAgIGludAljb250ZXh0U2l6ZQk6IHRoZSBjb250ZXh0IHNpemUKKyAgICBpbnQJcHJveGltaXR5UG9zaXRpb24JOiB0aGUgcHJveGltaXR5IHBvc2l0aW9uIGV4dHJhIHN0dWZmIGZvciBYUG9pbnRlcgorICAgIGludAl4cHRyCTogaXMgdGhpcyBhbiBYUG9pbnRlciBjb250ZXh0PworICAgIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CWhlcmUJOiBmb3IgaGVyZSgpCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jb3JpZ2luCTogZm9yIG9yaWdpbigpIHRoZSBzZXQgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBpbiBzY29wZSBmb3IgdGhlIGV4cHJlCisgICAgPGEgaHJlZj0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CW5zSGFzaAk6IFRoZSBuYW1lc3BhY2VzIGhhc2ggdGFibGUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jPC9hPgl2YXJMb29rdXBGdW5jCTogdmFyaWFibGUgbG9va3VwIGZ1bmMKKyAgICB2b2lkICoJdmFyTG9va3VwRGF0YQk6IHZhcmlhYmxlIGxvb2t1cCBkYXRhIFBvc3NpYmlsaXR5IHRvIGxpbmsgaW4gYW4gZXh0cmEgaXRlbQorICAgIHZvaWQgKglleHRyYQk6IG5lZWRlZCBmb3IgWFNMVCBUaGUgZnVuY3Rpb24gbmFtZSBhbmQgVVJJIHdoZW4gY2FsbGluZyBhIGZ1bmN0aW9uCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWZ1bmN0aW9uCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWZ1bmN0aW9uVVJJCTogZnVuY3Rpb24gbG9va3VwIGZ1bmN0aW9uIGFuZCBkYXRhCisgICAgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+CWZ1bmNMb29rdXBGdW5jCTogZnVuY3Rpb24gbG9va3VwIGZ1bmMKKyAgICB2b2lkICoJZnVuY0xvb2t1cERhdGEJOiBmdW5jdGlvbiBsb29rdXAgZGF0YSB0ZW1wb3JhcnkgbmFtZXNwYWNlIGxpc3RzIGtlcHQgZm9yIHdhbGtpbmcgdGhlIG4KKyAgICA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+ICoJdG1wTnNMaXN0CTogQXJyYXkgb2YgbmFtZXNwYWNlcworICAgIGludAl0bXBOc05yCTogbnVtYmVyIG9mIG5hbWVzcGFjZXMgaW4gc2NvcGUgZXJyb3IgcmVwb3J0aW5nIG1lY2hhbmlzbQorICAgIHZvaWQgKgl1c2VyRGF0YQk6IHVzZXIgc3BlY2lmaWMgZGF0YSBibG9jaworICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPgllcnJvcgk6IHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIGVycm9ycworICAgIDxhIGhyZWY9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxFcnJvciI+eG1sRXJyb3I8L2E+CWxhc3RFcnJvcgk6IHRoZSBsYXN0IGVycm9yCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JZGVidWdOb2RlCTogdGhlIHNvdXJjZSBub2RlIFhTTFQgZGljdGlvbmFyeQorICAgIDxhIGhyZWY9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+CWRpY3QJOiBkaWN0aW9uYXJ5IGlmIGFueQorICAgIGludAlmbGFncwk6IGZsYWdzIHRvIGNvbnRyb2wgY29tcGlsYXRpb24gQ2FjaGUgZm9yIHJldXNhbCBvZiBYUGF0aCBvYmplY3RzCisgICAgdm9pZCAqCWNhY2hlCit9IHhtbFhQYXRoQ29udGV4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbnRleHRQdHIiPlR5cGVkZWYgPC9hPnhtbFhQYXRoQ29udGV4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHQiPnhtbFhQYXRoQ29udGV4dDwvYT4gKiB4bWxYUGF0aENvbnRleHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhFcnJvciI+RW51bSA8L2E+eG1sWFBhdGhFcnJvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmVudW0gPGEgaHJlZj0iI3htbFhQYXRoRXJyb3IiPnhtbFhQYXRoRXJyb3I8L2E+IHsKKyAgICA8YSBuYW1lPSJYUEFUSF9FWFBSRVNTSU9OX09LIj5YUEFUSF9FWFBSRVNTSU9OX09LPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYUEFUSF9OVU1CRVJfRVJST1IiPlhQQVRIX05VTUJFUl9FUlJPUjwvYT4gPSAxCisgICAgPGEgbmFtZT0iWFBBVEhfVU5GSU5JU0hFRF9MSVRFUkFMX0VSUk9SIj5YUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1I8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhQQVRIX1NUQVJUX0xJVEVSQUxfRVJST1IiPlhQQVRIX1NUQVJUX0xJVEVSQUxfRVJST1I8L2E+ID0gMworICAgIDxhIG5hbWU9IlhQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUiI+WFBBVEhfVkFSSUFCTEVfUkVGX0VSUk9SPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUiI+WFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1I8L2E+ID0gNQorICAgIDxhIG5hbWU9IlhQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SIj5YUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUjwvYT4gPSA2CisgICAgPGEgbmFtZT0iWFBBVEhfRVhQUl9FUlJPUiI+WFBBVEhfRVhQUl9FUlJPUjwvYT4gPSA3CisgICAgPGEgbmFtZT0iWFBBVEhfVU5DTE9TRURfRVJST1IiPlhQQVRIX1VOQ0xPU0VEX0VSUk9SPC9hPiA9IDgKKyAgICA8YSBuYW1lPSJYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiPlhQQVRIX1VOS05PV05fRlVOQ19FUlJPUjwvYT4gPSA5CisgICAgPGEgbmFtZT0iWFBBVEhfSU5WQUxJRF9PUEVSQU5EIj5YUEFUSF9JTlZBTElEX09QRVJBTkQ8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYUEFUSF9JTlZBTElEX1RZUEUiPlhQQVRIX0lOVkFMSURfVFlQRTwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhQQVRIX0lOVkFMSURfQVJJVFkiPlhQQVRIX0lOVkFMSURfQVJJVFk8L2E+ID0gMTIKKyAgICA8YSBuYW1lPSJYUEFUSF9JTlZBTElEX0NUWFRfU0laRSI+WFBBVEhfSU5WQUxJRF9DVFhUX1NJWkU8L2E+ID0gMTMKKyAgICA8YSBuYW1lPSJYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iPlhQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTjwvYT4gPSAxNAorICAgIDxhIG5hbWU9IlhQQVRIX01FTU9SWV9FUlJPUiI+WFBBVEhfTUVNT1JZX0VSUk9SPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWFBUUl9TWU5UQVhfRVJST1IiPlhQVFJfU1lOVEFYX0VSUk9SPC9hPiA9IDE2CisgICAgPGEgbmFtZT0iWFBUUl9SRVNPVVJDRV9FUlJPUiI+WFBUUl9SRVNPVVJDRV9FUlJPUjwvYT4gPSAxNworICAgIDxhIG5hbWU9IlhQVFJfU1VCX1JFU09VUkNFX0VSUk9SIj5YUFRSX1NVQl9SRVNPVVJDRV9FUlJPUjwvYT4gPSAxOAorICAgIDxhIG5hbWU9IlhQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiI+WFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SPC9hPiA9IDE5CisgICAgPGEgbmFtZT0iWFBBVEhfRU5DT0RJTkdfRVJST1IiPlhQQVRIX0VOQ09ESU5HX0VSUk9SPC9hPiA9IDIwCisgICAgPGEgbmFtZT0iWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIj5YUEFUSF9JTlZBTElEX0NIQVJfRVJST1I8L2E+ID0gMjEKKyAgICA8YSBuYW1lPSJYUEFUSF9JTlZBTElEX0NUWFQiPlhQQVRIX0lOVkFMSURfQ1RYVDwvYT4gPSAyMgorfTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZ1bmNQdHIiPlR5cGVkZWYgPC9hPnhtbFhQYXRoRnVuY1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0Ij54bWxYUGF0aEZ1bmN0PC9hPiAqIHhtbFhQYXRoRnVuY1B0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZ1bmN0Ij5TdHJ1Y3R1cmUgPC9hPnhtbFhQYXRoRnVuY3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFhQYXRoRnVuY3QgeworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogdGhlIGZ1bmN0aW9uIG5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsRnVuYyI+eG1sWFBhdGhFdmFsRnVuYzwvYT4JZnVuYwk6IHRoZSBldmFsdWF0aW9uIGZ1bmN0aW9uCit9IHhtbFhQYXRoRnVuY3Q7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhPYmplY3QiPlN0cnVjdHVyZSA8L2E+eG1sWFBhdGhPYmplY3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5zdHJ1Y3QgX3htbFhQYXRoT2JqZWN0IHsKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RUeXBlIj54bWxYUGF0aE9iamVjdFR5cGU8L2E+CXR5cGUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4Jbm9kZXNldHZhbAorICAgIGludAlib29sdmFsCisgICAgZG91YmxlCWZsb2F0dmFsCisgICAgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXN0cmluZ3ZhbAorICAgIHZvaWQgKgl1c2VyCisgICAgaW50CWluZGV4CisgICAgdm9pZCAqCXVzZXIyCisgICAgaW50CWluZGV4MgorfSB4bWxYUGF0aE9iamVjdDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE9iamVjdFB0ciI+VHlwZWRlZiA8L2E+eG1sWFBhdGhPYmplY3RQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3QiPnhtbFhQYXRoT2JqZWN0PC9hPiAqIHhtbFhQYXRoT2JqZWN0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoT2JqZWN0VHlwZSI+RW51bSA8L2E+eG1sWFBhdGhPYmplY3RUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZW51bSA8YSBocmVmPSIjeG1sWFBhdGhPYmplY3RUeXBlIj54bWxYUGF0aE9iamVjdFR5cGU8L2E+IHsKKyAgICA8YSBuYW1lPSJYUEFUSF9VTkRFRklORUQiPlhQQVRIX1VOREVGSU5FRDwvYT4gPSAwCisgICAgPGEgbmFtZT0iWFBBVEhfTk9ERVNFVCI+WFBBVEhfTk9ERVNFVDwvYT4gPSAxCisgICAgPGEgbmFtZT0iWFBBVEhfQk9PTEVBTiI+WFBBVEhfQk9PTEVBTjwvYT4gPSAyCisgICAgPGEgbmFtZT0iWFBBVEhfTlVNQkVSIj5YUEFUSF9OVU1CRVI8L2E+ID0gMworICAgIDxhIG5hbWU9IlhQQVRIX1NUUklORyI+WFBBVEhfU1RSSU5HPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYUEFUSF9QT0lOVCI+WFBBVEhfUE9JTlQ8L2E+ID0gNQorICAgIDxhIG5hbWU9IlhQQVRIX1JBTkdFIj5YUEFUSF9SQU5HRTwvYT4gPSA2CisgICAgPGEgbmFtZT0iWFBBVEhfTE9DQVRJT05TRVQiPlhQQVRIX0xPQ0FUSU9OU0VUPC9hPiA9IDcKKyAgICA8YSBuYW1lPSJYUEFUSF9VU0VSUyI+WFBBVEhfVVNFUlM8L2E+ID0gOAorICAgIDxhIG5hbWU9IlhQQVRIX1hTTFRfVFJFRSI+WFBBVEhfWFNMVF9UUkVFPC9hPiA9IDkgLyogIEFuIFhTTFQgdmFsdWUgdHJlZSwgbm9uIG1vZGlmaWFibGUgKi8KK307Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhQYXJzZXJDb250ZXh0Ij5TdHJ1Y3R1cmUgPC9hPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sWFBhdGhQYXJzZXJDb250ZXh0IHsKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJY3VyCTogdGhlIGN1cnJlbnQgY2hhciBiZWluZyBwYXJzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJYmFzZQk6IHRoZSBmdWxsIGV4cHJlc3Npb24KKyAgICBpbnQJZXJyb3IJOiBlcnJvciBjb2RlCisgICAgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPgljb250ZXh0CTogdGhlIGV2YWx1YXRpb24gY29udGV4dAorICAgIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXZhbHVlCTogdGhlIGN1cnJlbnQgdmFsdWUKKyAgICBpbnQJdmFsdWVOcgk6IG51bWJlciBvZiB2YWx1ZXMgc3RhY2tlZAorICAgIGludAl2YWx1ZU1heAk6IG1heCBudW1iZXIgb2YgdmFsdWVzIHN0YWNrZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiAqCXZhbHVlVGFiCTogc3RhY2sgb2YgdmFsdWVzCisgICAgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+CWNvbXAJOiB0aGUgcHJlY29tcGlsZWQgZXhwcmVzc2lvbgorICAgIGludAl4cHRyCTogaXQgdGhpcyBhbiBYUG9pbnRlciBleHByZXNzaW9uCisgICAgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JYW5jZXN0b3IJOiB1c2VkIGZvciB3YWxraW5nIHByZWNlZGluZyBheGlzCit9IHhtbFhQYXRoUGFyc2VyQ29udGV4dDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPlR5cGVkZWYgPC9hPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHQiPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvYT4gKiB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhUeXBlIj5TdHJ1Y3R1cmUgPC9hPnhtbFhQYXRoVHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sWFBhdGhUeXBlIHsKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHRoZSB0eXBlIG5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb252ZXJ0RnVuYyI+eG1sWFBhdGhDb252ZXJ0RnVuYzwvYT4JZnVuYwk6IHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uCit9IHhtbFhQYXRoVHlwZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFR5cGVQdHIiPlR5cGVkZWYgPC9hPnhtbFhQYXRoVHlwZVB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFR5cGUiPnhtbFhQYXRoVHlwZTwvYT4gKiB4bWxYUGF0aFR5cGVQdHI7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhWYXJpYWJsZSI+U3RydWN0dXJlIDwvYT54bWxYUGF0aFZhcmlhYmxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+c3RydWN0IF94bWxYUGF0aFZhcmlhYmxlIHsKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHRoZSB2YXJpYWJsZSBuYW1lCisgICAgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JdmFsdWUJOiB0aGUgdmFsdWUKK30geG1sWFBhdGhWYXJpYWJsZTsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFZhcmlhYmxlUHRyIj5UeXBlZGVmIDwvYT54bWxYUGF0aFZhcmlhYmxlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGUiPnhtbFhQYXRoVmFyaWFibGU8L2E+ICogeG1sWFBhdGhWYXJpYWJsZVB0cjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEF4aXNGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxYUGF0aEF4aXNGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhBeGlzRnVuYwkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPkFuIGF4aXMgdHJhdmVyc2FsIGZ1bmN0aW9uLiBUbyB0cmF2ZXJzZSBhbiBheGlzLCB0aGUgZW5naW5lIGNhbGxzIHRoZSBmaXJzdCB0aW1lIHdpdGggY3VyID09IE5VTEwgYW5kIHJlcGVhdCB1bnRpbCB0aGUgZnVuY3Rpb24gcmV0dXJucyBOVUxMIGluZGljYXRpbmcgdGhlIGVuZCBvZiB0aGUgYXhpcyB0cmF2ZXJzYWwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggaW50ZXJwcmV0ZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgbm9kZSBiZWluZyBleHBsb3JlZCBvbiB0aGF0IGF4aXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IG5vZGUgaW4gdGhhdCBheGlzIG9yIE5VTEwgaWYgYXQgdGhlIGVuZCBvZiB0aGUgYXhpcy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbnZlcnRGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxYUGF0aENvbnZlcnRGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoQ29udmVydEZ1bmMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmosIDxici8+CQkJCQkgaW50IHR5cGUpPGJyLz4KKzwvcHJlPjxwPkEgY29udmVyc2lvbiBmdW5jdGlvbiBpcyBhc3NvY2lhdGVkIHRvIGEgdHlwZSBhbmQgdXNlZCB0byBjYXN0IHRoZSBuZXcgdHlwZSB0byBwcmltaXRpdmUgdmFsdWVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b2JqPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgdGhlIHRhcmdldCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRXZhbEZ1bmMiLz5GdW5jdGlvbiB0eXBlIHhtbFhQYXRoRXZhbEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRXZhbEZ1bmMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5BbiBYUGF0aCBldmFsdWF0aW9uIGZ1bmN0aW9uLCB0aGUgcGFyYW1ldGVycyBhcmUgb24gdGhlIFhQYXRoIGNvbnRleHQgc3RhY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxYUGF0aEZ1bmNMb29rdXBGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+CXhtbFhQYXRoRnVuY0xvb2t1cEZ1bmMJKHZvaWQgKiBjdHh0LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSk8YnIvPgorPC9wcmU+PHA+UHJvdG90eXBlIGZvciBjYWxsYmFja3MgdXNlZCB0byBwbHVnIGZ1bmN0aW9uIGxvb2t1cCBpbiB0aGUgWFBhdGggZW5naW5lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZSBvZiB0aGUgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zX3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lIGhvc3RpbmcgdGhpcyBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGZ1bmN0aW9uIG9yIE5VTEwgaWYgbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnVuY3Rpb24iLz5GdW5jdGlvbiB0eXBlIHhtbFhQYXRoRnVuY3Rpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnVuY3Rpb24JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5BbiBYUGF0aCBmdW5jdGlvbi4gVGhlIGFyZ3VtZW50cyAoaWYgYW55KSBhcmUgcG9wcGVkIG91dCBmcm9tIHRoZSBjb250ZXh0IHN0YWNrIGFuZCB0aGUgcmVzdWx0IGlzIHB1c2hlZCBvbiB0aGUgc3RhY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggaW50ZXJwcmVzdGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIi8+RnVuY3Rpb24gdHlwZSB4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jCSh2b2lkICogY3R4dCwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSk8YnIvPgorPC9wcmU+PHA+UHJvdG90eXBlIGZvciBjYWxsYmFja3MgdXNlZCB0byBwbHVnIHZhcmlhYmxlIGxvb2t1cCBpbiB0aGUgWFBhdGggZW5naW5lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZSBvZiB0aGUgdmFyaWFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zX3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lIGhvc3RpbmcgdGhpcyB2YXJpYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIG9iamVjdCB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5BTiI+VmFyaWFibGUgPC9hPnhtbFhQYXRoTkFOPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlIHhtbFhQYXRoTkFOOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTklORiI+VmFyaWFibGUgPC9hPnhtbFhQYXRoTklORjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmRvdWJsZSB4bWxYUGF0aE5JTkY7Cis8L3ByZT48cC8+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhQSU5GIj5WYXJpYWJsZSA8L2E+eG1sWFBhdGhQSU5GPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlIHhtbFhQYXRoUElORjsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIiLz54bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5kb3VibGUJeG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyCShpbnQgdmFsKTxici8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIGJvb2xlYW4gdG8gaXRzIG51bWJlciB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJvb2xlYW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmciLz54bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nCShpbnQgdmFsKTxici8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIGJvb2xlYW4gdG8gaXRzIHN0cmluZyB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBib29sZWFuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbiIvPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5zKTxici8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIG5vZGUtc2V0IHRvIGl0cyBib29sZWFuIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJvb2xlYW4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiLz54bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5kb3VibGUJeG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbnMpPGJyLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGEgbm9kZS1zZXQgdG8gaXRzIG51bWJlciB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmciLz54bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbnMpPGJyLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGEgbm9kZS1zZXQgdG8gaXRzIHN0cmluZyB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyIi8+eG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCXhtbFhQYXRoQ2FzdE5vZGVUb051bWJlcgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIvPgorPC9wcmU+PHA+Q29udmVydHMgYSBub2RlIHRvIGl0cyBudW1iZXIgdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciB2YWx1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyIvPnhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGEgbm9kZSB0byBpdHMgc3RyaW5nIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIi8+eG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbgkoZG91YmxlIHZhbCk8YnIvPgorPC9wcmU+PHA+Q29udmVydHMgYSBudW1iZXIgdG8gaXRzIGJvb2xlYW4gdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBib29sZWFuIHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmciLz54bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZwkoZG91YmxlIHZhbCk8YnIvPgorPC9wcmU+PHA+Q29udmVydHMgYSBudW1iZXIgdG8gaXRzIHN0cmluZyB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4iLz54bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTxici8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIHN0cmluZyB0byBpdHMgYm9vbGVhbiB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJvb2xlYW4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlciIvPnhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCXhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTxici8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIHN0cmluZyB0byBpdHMgbnVtYmVyIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0VG9Cb29sZWFuIi8+eG1sWFBhdGhDYXN0VG9Cb29sZWFuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoQ2FzdFRvQm9vbGVhbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+Q29udmVydHMgYW4gWFBhdGggb2JqZWN0IHRvIGl0cyBib29sZWFuIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIG9iamVjdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJvb2xlYW4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RUb051bWJlciIvPnhtbFhQYXRoQ2FzdFRvTnVtYmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCXhtbFhQYXRoQ2FzdFRvTnVtYmVyCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTxici8+Cis8L3ByZT48cD5Db252ZXJ0cyBhbiBYUGF0aCBvYmplY3QgdG8gaXRzIG51bWJlciB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RUb1N0cmluZyIvPnhtbFhQYXRoQ2FzdFRvU3RyaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFhQYXRoQ2FzdFRvU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgc3RyaW5nKCkgZXF1aXZhbGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhbGxvY2F0ZWQgc3RyaW5nIHZhbHVlIG9mIHRoZSBvYmplY3QsIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIHN0cmluZyBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDbXBOb2RlcyIvPnhtbFhQYXRoQ21wTm9kZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhDbXBOb2RlcwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxici8+Cis8L3ByZT48cD5Db21wYXJlIHR3byBub2RlcyB3LnIudCBkb2N1bWVudCBvcmRlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMiBpbiBjYXNlIG9mIGVycm9yIDEgaWYgZmlyc3QgcG9pbnQgJmx0OyBzZWNvbmQgcG9pbnQsIDAgaWYgaXQncyB0aGUgc2FtZSBub2RlLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbXBpbGUiLz54bWxYUGF0aENvbXBpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4JeG1sWFBhdGhDb21waWxlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxici8+Cis8L3ByZT48cD5Db21waWxlIGFuIFhQYXRoIGV4cHJlc3Npb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4gcmVzdWx0aW5nIGZyb20gdGhlIGNvbXBpbGF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbXBpbGVkRXZhbCIvPnhtbFhQYXRoQ29tcGlsZWRFdmFsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhDb21waWxlZEV2YWwJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eCk8YnIvPgorPC9wcmU+PHA+RXZhbHVhdGUgdGhlIFByZWNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGdpdmVuIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHJlc3VsdGluZyBmcm9tIHRoZSBldmFsdWF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiIvPnhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4gY29tcCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkFwcGxpZXMgdGhlIFhQYXRoIGJvb2xlYW4oKSBmdW5jdGlvbiBvbiB0aGUgcmVzdWx0IG9mIHRoZSBnaXZlbiBjb21waWxlZCBleHByZXNzaW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZSBleHByZXNzaW9uIGV2YWx1YXRlZCB0byB0cnVlLCAwIGlmIHRvIGZhbHNlIGFuZCAtMSBpbiBBUEkgYW5kIGludGVybmFsIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbnRleHRTZXRDYWNoZSIvPnhtbFhQYXRoQ29udGV4dFNldENhY2hlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoQ29udGV4dFNldENhY2hlCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBhY3RpdmUsIDxici8+CQkJCQkgaW50IHZhbHVlLCA8YnIvPgkJCQkJIGludCBvcHRpb25zKTxici8+Cis8L3ByZT48cD5DcmVhdGVzL2ZyZWVzIGFuIG9iamVjdCBjYWNoZSBvbiB0aGUgWFBhdGggY29udGV4dC4gSWYgYWN0aXZhdGVzIFhQYXRoIG9iamVjdHMgKHhtbFhQYXRoT2JqZWN0KSB3aWxsIGJlIGNhY2hlZCBpbnRlcm5hbGx5IHRvIGJlIHJldXNlZC4gQG9wdGlvbnM6IDA6IFRoaXMgd2lsbCBzZXQgdGhlIFhQYXRoIG9iamVjdCBjYWNoaW5nOiBAdmFsdWU6IFRoaXMgd2lsbCBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIFhQYXRoIG9iamVjdHMgdG8gYmUgY2FjaGVkIHBlciBzbG90IFRoZXJlIGFyZSA1IHNsb3RzIGZvcjogbm9kZS1zZXQsIHN0cmluZywgbnVtYmVyLCBib29sZWFuLCBhbmQgbWlzYyBvYmplY3RzLiBVc2UgJmx0OzAgZm9yIHRoZSBkZWZhdWx0IG51bWJlciAoMTAwKS4gT3RoZXIgdmFsdWVzIGZvciBAb3B0aW9ucyBoYXZlIGN1cnJlbnRseSBubyBlZmZlY3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YWN0aXZlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbmFibGVzL2Rpc2FibGVzIChjcmVhdGVzL2ZyZWVzKSB0aGUgY2FjaGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHZhbHVlIHdpdGggc2VtYW50aWNzIGRlcGVuZGFudCBvbiBAb3B0aW9uczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9ucyAoY3VycmVudGx5IG9ubHkgdGhlIHZhbHVlIDAgaXMgdXNlZCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIHNldHRpbmcgc3VjY2VlZGVkLCBhbmQgLTEgb24gQVBJIG9yIGludGVybmFsIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbnZlcnRCb29sZWFuIi8+eG1sWFBhdGhDb252ZXJ0Qm9vbGVhbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoQ29udmVydEJvb2xlYW4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+Q29udmVydHMgYW4gZXhpc3Rpbmcgb2JqZWN0IHRvIGl0cyBib29sZWFuKCkgZXF1aXZhbGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbiBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb252ZXJ0TnVtYmVyIi8+eG1sWFBhdGhDb252ZXJ0TnVtYmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhDb252ZXJ0TnVtYmVyCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgbnVtYmVyKCkgZXF1aXZhbGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbiBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb252ZXJ0U3RyaW5nIi8+eG1sWFBhdGhDb252ZXJ0U3RyaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhDb252ZXJ0U3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgc3RyaW5nKCkgZXF1aXZhbGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbiBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDdHh0Q29tcGlsZSIvPnhtbFhQYXRoQ3R4dENvbXBpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4JeG1sWFBhdGhDdHh0Q29tcGlsZQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxici8+Cis8L3ByZT48cD5Db21waWxlIGFuIFhQYXRoIGV4cHJlc3Npb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4gcmVzdWx0aW5nIGZyb20gdGhlIGNvbXBpbGF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEV2YWwiLz54bWxYUGF0aEV2YWwgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aEV2YWwJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHgpPGJyLz4KKzwvcHJlPjxwPkV2YWx1YXRlIHRoZSBYUGF0aCBMb2NhdGlvbiBQYXRoIGluIHRoZSBnaXZlbiBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHJlc3VsdGluZyBmcm9tIHRoZSBldmFsdWF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEV2YWxFeHByZXNzaW9uIi8+eG1sWFBhdGhFdmFsRXhwcmVzc2lvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoRXZhbEV4cHJlc3Npb24JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+RXZhbHVhdGUgdGhlIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGdpdmVuIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHJlc3VsdGluZyBmcm9tIHRoZSBldmFsdWF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEV2YWxQcmVkaWNhdGUiLz54bWxYUGF0aEV2YWxQcmVkaWNhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhFdmFsUHJlZGljYXRlCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHJlcyk8YnIvPgorPC9wcmU+PHA+RXZhbHVhdGUgYSBwcmVkaWNhdGUgcmVzdWx0IGZvciB0aGUgY3VycmVudCBub2RlLiBBIFByZWRpY2F0ZUV4cHIgaXMgZXZhbHVhdGVkIGJ5IGV2YWx1YXRpbmcgdGhlIEV4cHIgYW5kIGNvbnZlcnRpbmcgdGhlIHJlc3VsdCB0byBhIGJvb2xlYW4uIElmIHRoZSByZXN1bHQgaXMgYSBudW1iZXIsIHRoZSByZXN1bHQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdHJ1ZSBpZiB0aGUgbnVtYmVyIGlzIGVxdWFsIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udGV4dCBub2RlIGluIHRoZSBjb250ZXh0IG5vZGUgbGlzdCAoYXMgcmV0dXJuZWQgYnkgdGhlIHBvc2l0aW9uIGZ1bmN0aW9uKSBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gZmFsc2Ugb3RoZXJ3aXNlOyBpZiB0aGUgcmVzdWx0IGlzIG5vdCBhIG51bWJlciwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgY29udmVydGVkIGFzIGlmIGJ5IGEgY2FsbCB0byB0aGUgYm9vbGVhbiBmdW5jdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQcmVkaWNhdGUgRXhwcmVzc2lvbiBldmFsdWF0aW9uIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBwcmVkaWNhdGUgaXMgdHJ1ZSwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZyZWVDb21wRXhwciIvPnhtbFhQYXRoRnJlZUNvbXBFeHByICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEZyZWVDb21wRXhwcgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wKTxici8+Cis8L3ByZT48cD5GcmVlIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IEBjb21wPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUEFUSCBjb21wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhGcmVlQ29udGV4dCIvPnhtbFhQYXRoRnJlZUNvbnRleHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZUNvbnRleHQJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkZyZWUgdXAgYW4gPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dCI+eG1sWFBhdGhDb250ZXh0PC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbnRleHQgdG8gZnJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnJlZU5vZGVTZXQiLz54bWxYUGF0aEZyZWVOb2RlU2V0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEZyZWVOb2RlU2V0CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG9iaik8YnIvPgorPC9wcmU+PHA+RnJlZSB0aGUgTm9kZVNldCBjb21wb3VuZCAobm90IHRoZSBhY3R1YWwgbm9kZXMgISkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vYmo8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdG8gZnJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0Ii8+eG1sWFBhdGhGcmVlTm9kZVNldExpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2JqKTxici8+Cis8L3ByZT48cD5GcmVlIHVwIHRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBAb2JqIGJ1dCBkb24ndCBkZWFsbG9jYXRlIHRoZSBvYmplY3RzIGluIHRoZSBsaXN0IGNvbnRyYXJ5IHRvIHhtbFhQYXRoRnJlZU9iamVjdCgpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b2JqPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBleGlzdGluZyBOb2RlU2V0TGlzdCBvYmplY3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZyZWVPYmplY3QiLz54bWxYUGF0aEZyZWVPYmplY3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZU9iamVjdAkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9iaik8YnIvPgorPC9wcmU+PHA+RnJlZSB1cCBhbiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmplY3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vYmo8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvYmplY3QgdG8gZnJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoSW5pdCIvPnhtbFhQYXRoSW5pdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhJbml0CQkJKHZvaWQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIFhQYXRoIGVudmlyb25tZW50PC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoSXNJbmYiLz54bWxYUGF0aElzSW5mICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoSXNJbmYJCQkoZG91YmxlIHZhbCk8YnIvPgorPC9wcmU+PHA+UHJvdmlkZXMgYSBwb3J0YWJsZSBpc2luZigpIGZ1bmN0aW9uIHRvIGRldGVjdCB3aGV0aGVyIGEgZG91YmxlIGlzIGEgK0luZmluaXRlIG9yIC1JbmZpbml0ZS4gQmFzZWQgb24gdHJpbyBjb2RlIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvY3RyaW8vPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG91YmxlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIHZpIHRoZSB2YWx1ZSBpcyArSW5maW5pdGUsIC0xIGlmIC1JbmZpbml0ZSwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aElzTmFOIi8+eG1sWFBhdGhJc05hTiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aElzTmFOCQkJKGRvdWJsZSB2YWwpPGJyLz4KKzwvcHJlPjxwPlByb3ZpZGVzIGEgcG9ydGFibGUgaXNuYW4oKSBmdW5jdGlvbiB0byBkZXRlY3Qgd2hldGhlciBhIGRvdWJsZSBpcyBhIE5vdGFOdW1iZXIuIEJhc2VkIG9uIHRyaW8gY29kZSBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2N0cmlvLzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvdWJsZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgdmFsdWUgaXMgYSBOYU4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXdDb250ZXh0Ii8+eG1sWFBhdGhOZXdDb250ZXh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPgl4bWxYUGF0aE5ld0NvbnRleHQJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+IGp1c3QgYWxsb2NhdGVkLiBUaGUgY2FsbGVyIHdpbGwgbmVlZCB0byBmcmVlIGl0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVNldENyZWF0ZSIvPnhtbFhQYXRoTm9kZVNldENyZWF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aE5vZGVTZXRDcmVhdGUJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBvZiB0eXBlIGRvdWJsZSBhbmQgb2YgdmFsdWUgQHZhbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbml0aWFsIHhtbE5vZGVQdHIsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE9iamVjdENvcHkiLz54bWxYUGF0aE9iamVjdENvcHkgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE9iamVjdENvcHkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+YWxsb2NhdGUgYSBuZXcgY29weSBvZiBhIGdpdmVuIG9iamVjdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3JpZ2luYWwgb2JqZWN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhPcmRlckRvY0VsZW1zIi8+eG1sWFBhdGhPcmRlckRvY0VsZW1zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+bG9uZwl4bWxYUGF0aE9yZGVyRG9jRWxlbXMJCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxici8+Cis8L3ByZT48cD5DYWxsIHRoaXMgcm91dGluZSB0byBzcGVlZCB1cCBYUGF0aCBjb21wdXRhdGlvbiBvbiBzdGF0aWMgZG9jdW1lbnRzLiBUaGlzIHN0YW1wcyBhbGwgdGhlIGVsZW1lbnQgbm9kZXMgd2l0aCB0aGUgZG9jdW1lbnQgb3JkZXIgTGlrZSBmb3IgbGluZSBpbmZvcm1hdGlvbiwgdGhlIG9yZGVyIGlzIGtlcHQgaW4gdGhlIGVsZW1lbnQtJmd0O2NvbnRlbnQgZmllbGQsIHRoZSB2YWx1ZSBzdG9yZWQgaXMgYWN0dWFsbHkgLSB0aGUgbm9kZSBudW1iZXIgKHN0YXJ0aW5nIGF0IC0xKSB0byBiZSBhYmxlIHRvIGRpZmZlcmVudGlhdGUgZnJvbSBsaW5lIG51bWJlcnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGlucHV0IGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGZvdW5kIGluIHRoZSBkb2N1bWVudCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjAwNjg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwKQEAgLTAsMCArMSw3ODcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eHBhdGhJbnRlcm5hbHM6IGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+bGlieG1sMiBSZWZlcmVuY2UgTWFudWFsPC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aDI+CisgICAgICA8c3BhbiBjbGFzcz0icmVmZW50cnl0aXRsZSI+eHBhdGhJbnRlcm5hbHM8L3NwYW4+CisgICAgPC9oMj4KKyAgICA8cD54cGF0aEludGVybmFscyAtIGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9wPgorICAgIDxwPmludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uIHVzZWQgdG8gYnVpbGQgbmV3IG1vZHVsZXMgb24gdG9wIG9mIFhQYXRoIGxpa2UgWFBvaW50ZXIgYW5kIFhTTFQgPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoU3RhY2tJc0V4dGVybmFsIj54bWxYUGF0aFN0YWNrSXNFeHRlcm5hbDwvYT4oY3R4dCk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nIj54bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nPC9hPihjdHh0KTsKKyNkZWZpbmUgPGEgaHJlZj0iI1hQX0VSUk9SMCI+WFBfRVJST1IwPC9hPihYKTsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoU2V0VHlwZUVycm9yIj54bWxYUGF0aFNldFR5cGVFcnJvcjwvYT4oY3R4dCk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldCI+eG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQ8L2E+KGN0eHQpOworI2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5UcnVlIj54bWxYUGF0aFJldHVyblRydWU8L2E+KGN0eHQpOworI2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5Cb29sZWFuIj54bWxYUGF0aFJldHVybkJvb2xlYW48L2E+KGN0eHQsIHZhbCk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aEdldENvbnRleHROb2RlIj54bWxYUGF0aEdldENvbnRleHROb2RlPC9hPihjdHh0KTsKKyNkZWZpbmUgPGEgaHJlZj0iI0NBU1RfVE9fTlVNQkVSIj5DQVNUX1RPX05VTUJFUjwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiNDSEVDS19BUklUWSI+Q0hFQ0tfQVJJVFk8L2E+KHgpOworI2RlZmluZSA8YSBocmVmPSIjQ0hFQ0tfVFlQRTAiPkNIRUNLX1RZUEUwPC9hPih0eXBldmFsKTsKKyNkZWZpbmUgPGEgaHJlZj0iI0NBU1RfVE9fU1RSSU5HIj5DQVNUX1RPX1NUUklORzwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybkV4dGVybmFsIj54bWxYUGF0aFJldHVybkV4dGVybmFsPC9hPihjdHh0LCB2YWwpOworI2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhTdGFja0lzTm9kZVNldCI+eG1sWFBhdGhTdGFja0lzTm9kZVNldDwvYT4oY3R4dCk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aENoZWNrRXJyb3IiPnhtbFhQYXRoQ2hlY2tFcnJvcjwvYT4oY3R4dCk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFNldEVycm9yIj54bWxYUGF0aFNldEVycm9yPC9hPihjdHh0LCBlcnIpOworI2RlZmluZSA8YSBocmVmPSIjQ0hFQ0tfRVJST1IiPkNIRUNLX0VSUk9SPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuU3RyaW5nIj54bWxYUGF0aFJldHVyblN0cmluZzwvYT4oY3R4dCwgc3RyKTsKKyNkZWZpbmUgPGEgaHJlZj0iI0NBU1RfVE9fQk9PTEVBTiI+Q0FTVF9UT19CT09MRUFOPC9hPjsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoU2V0QXJpdHlFcnJvciI+eG1sWFBhdGhTZXRBcml0eUVycm9yPC9hPihjdHh0KTsKKyNkZWZpbmUgPGEgaHJlZj0iI0NIRUNLX1RZUEUiPkNIRUNLX1RZUEU8L2E+KHR5cGV2YWwpOworI2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5GYWxzZSI+eG1sWFBhdGhSZXR1cm5GYWxzZTwvYT4oY3R4dCk7CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybk51bWJlciI+eG1sWFBhdGhSZXR1cm5OdW1iZXI8L2E+KGN0eHQsIHZhbCk7CisjZGVmaW5lIDxhIGhyZWY9IiNDSEVDS19FUlJPUjAiPkNIRUNLX0VSUk9SMDwvYT47CisjZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aEdldERvY3VtZW50Ij54bWxYUGF0aEdldERvY3VtZW50PC9hPihjdHh0KTsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoR2V0RXJyb3IiPnhtbFhQYXRoR2V0RXJyb3I8L2E+KGN0eHQpOworI2RlZmluZSA8YSBocmVmPSIjWFBfRVJST1IiPlhQX0VSUk9SPC9hPihYKTsKKyNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoRW1wdHlOb2RlU2V0Ij54bWxYUGF0aEVtcHR5Tm9kZVNldDwvYT4obnMpOworI2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5Ob2RlU2V0Ij54bWxYUGF0aFJldHVybk5vZGVTZXQ8L2E+KGN0eHQsIG5zKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOb2RlU2V0TWVyZ2UiPnhtbFhQYXRoTm9kZVNldE1lcmdlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHZhbDEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHZhbDIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhOdW1iZXJGdW5jdGlvbiI+eG1sWFBhdGhOdW1iZXJGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK2NvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sWFBhdGhOc0xvb2t1cCI+eG1sWFBhdGhOc0xvb2t1cDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5ld05vZGVTZXQiPnhtbFhQYXRoTmV3Tm9kZVNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYiPnhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhOb2RlU2V0UmVtb3ZlIj54bWxYUGF0aE5vZGVTZXRSZW1vdmU8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSBpbnQgdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5ld05vZGVTZXRMaXN0Ij54bWxYUGF0aE5ld05vZGVTZXRMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHZhbCk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoUG9wQm9vbGVhbiI+eG1sWFBhdGhQb3BCb29sZWFuPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXdTdHJpbmciPnhtbFhQYXRoTmV3U3RyaW5nPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV4dENoaWxkIj54bWxYUGF0aE5leHRDaGlsZDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoUG9wU3RyaW5nIj54bWxYUGF0aFBvcFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uIj54bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoQ29tcGFyZVZhbHVlcyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgaW5mLCA8YnIvPgkJCQkJIGludCBzdHJpY3QpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhDb25jYXRGdW5jdGlvbiI+eG1sWFBhdGhDb25jYXRGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK2ludAk8YSBocmVmPSIjeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMiPnhtbFhQYXRoTm9kZVNldENvbnRhaW5zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoZXJyb3IiPnhtbFhQYXRoZXJyb3I8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyLz4JCQkJCSBpbnQgbGluZSwgPGJyLz4JCQkJCSBpbnQgbm8pOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV4dEFuY2VzdG9yIj54bWxYUGF0aE5leHRBbmNlc3RvcjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24iPnhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhSb290Ij54bWxYUGF0aFJvb3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAiPnhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoSXNOb2RlVHlwZSI+eG1sWFBhdGhJc05vZGVUeXBlPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5leHRGb2xsb3dpbmciPnhtbFhQYXRoTmV4dEZvbGxvd2luZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhBZGRWYWx1ZXMiPnhtbFhQYXRoQWRkVmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZSI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbHVlKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN2YWx1ZVBvcCI+dmFsdWVQb3A8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24iPnhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aEludGVyc2VjdGlvbiI+eG1sWFBhdGhJbnRlcnNlY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhDb250YWluc0Z1bmN0aW9uIj54bWxYUGF0aENvbnRhaW5zRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldFNvcnQiPnhtbFhQYXRoTm9kZVNldFNvcnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHNldCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbiI+eG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOb2RlTGVhZGluZyI+eG1sWFBhdGhOb2RlTGVhZGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3VtRnVuY3Rpb24iPnhtbFhQYXRoU3VtRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoTm90RXF1YWxWYWx1ZXMiPnhtbFhQYXRoTm90RXF1YWxWYWx1ZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTsKK2ludAk8YSBocmVmPSIjeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCI+eG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiByZXMpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhFcnIiPnhtbFhQYXRoRXJyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IGVycm9yKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5leHRQcmVjZWRpbmciPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+CTxhIGhyZWY9IiN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAiPnhtbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zIj54bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhGdW5jdGlvbkxvb2t1cCI+eG1sWFBhdGhGdW5jdGlvbkxvb2t1cDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uIj54bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAiPnhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXA8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV3RmxvYXQiPnhtbFhQYXRoTmV3RmxvYXQ8L2E+CShkb3VibGUgdmFsKTsKK2ludAk8YSBocmVmPSIjeG1sWFBhdGhSZWdpc3Rlck5zIj54bWxYUGF0aFJlZ2lzdGVyTnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0UGFyZW50Ij54bWxYUGF0aE5leHRQYXJlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEZyZWVOcyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aEhhc1NhbWVOb2RlcyI+eG1sWFBhdGhIYXNTYW1lTm9kZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhEaXN0aW5jdFNvcnRlZCI+eG1sWFBhdGhEaXN0aW5jdFNvcnRlZDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2Rlcyk7CitpbnQJPGEgaHJlZj0iI3ZhbHVlUHVzaCI+dmFsdWVQdXNoPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsdWUpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+eG1sWFBhdGhTdHJpbmdGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoRmxvb3JGdW5jdGlvbiI+eG1sWFBhdGhGbG9vckZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhJZEZ1bmN0aW9uIj54bWxYUGF0aElkRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aExhc3RGdW5jdGlvbiI+eG1sWFBhdGhMYXN0RnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0U2VsZiI+eG1sWFBhdGhOZXh0U2VsZjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciI+eG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcjwvYT4JKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+IGNvbXAsIDxici8+CQkJCQkgaW50IGRlcHRoKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoRmFsc2VGdW5jdGlvbiI+eG1sWFBhdGhGYWxzZUZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIj54bWxYUGF0aFZhbHVlRmxpcFNpZ248L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24iPnhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwIj54bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jTG9va3VwRnVuYyI+eG1sWFBhdGhGdW5jTG9va3VwRnVuYzwvYT4gZiwgPGJyLz4JCQkJCSB2b2lkICogZnVuY0N0eHQpOworZG91YmxlCTxhIGhyZWY9IiN4bWxYUGF0aFBvcE51bWJlciI+eG1sWFBhdGhQb3BOdW1iZXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoUm91bmRGdW5jdGlvbiI+eG1sWFBhdGhSb3VuZEZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFBvcE5vZGVTZXQiPnhtbFhQYXRoUG9wTm9kZVNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aENvdW50RnVuY3Rpb24iPnhtbFhQYXRoQ291bnRGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKKzxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sWFBhdGhQYXJzZU5DTmFtZSI+eG1sWFBhdGhQYXJzZU5DTmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFRydWVGdW5jdGlvbiI+eG1sWFBhdGhUcnVlRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXdCb29sZWFuIj54bWxYUGF0aE5ld0Jvb2xlYW48L2E+CShpbnQgdmFsKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3ViVmFsdWVzIj54bWxYUGF0aFN1YlZhbHVlczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aEVxdWFsVmFsdWVzIj54bWxYUGF0aEVxdWFsVmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhNdWx0VmFsdWVzIj54bWxYUGF0aE11bHRWYWx1ZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTW9kVmFsdWVzIj54bWxYUGF0aE1vZFZhbHVlczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0Ij54bWxYUGF0aE5ld1BhcnNlckNvbnRleHQ8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFdyYXBOb2RlU2V0Ij54bWxYUGF0aFdyYXBOb2RlU2V0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhXcmFwU3RyaW5nIj54bWxYUGF0aFdyYXBTdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTsKK2ludAk8YSBocmVmPSIjeG1sWFBhdGhSZWdpc3RlckZ1bmNOUyI+eG1sWFBhdGhSZWdpc3RlckZ1bmNOUzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4gZik7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aE5vZGVTZXRBZGROcyI+eG1sWFBhdGhOb2RlU2V0QWRkTnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbiI+eG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aERpZmZlcmVuY2UiPnhtbFhQYXRoRGlmZmVyZW5jZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTGVhZGluZ1NvcnRlZCI+eG1sWFBhdGhMZWFkaW5nU29ydGVkPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOwordm9pZCAqCTxhIGhyZWY9IiN4bWxYUGF0aFBvcEV4dGVybmFsIj54bWxYUGF0aFBvcEV4dGVybmFsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIj54bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jPC9hPiBmLCA8YnIvPgkJCQkJIHZvaWQgKiBkYXRhKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5ld0NTdHJpbmciPnhtbFhQYXRoTmV3Q1N0cmluZzwvYT4JKGNvbnN0IGNoYXIgKiB2YWwpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyRnVuYyI+eG1sWFBhdGhSZWdpc3RlckZ1bmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPiBmKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbiI+eG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0RGVzY2VuZGFudCI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV4dE5hbWVzcGFjZSI+eG1sWFBhdGhOZXh0TmFtZXNwYWNlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhXcmFwQ1N0cmluZyI+eG1sWFBhdGhXcmFwQ1N0cmluZzwvYT4JKGNoYXIgKiB2YWwpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dCI+eG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTm9kZVRyYWlsaW5nIj54bWxYUGF0aE5vZGVUcmFpbGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEFkZCI+eG1sWFBhdGhOb2RlU2V0QWRkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSI+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV3VmFsdWVUcmVlIj54bWxYUGF0aE5ld1ZhbHVlVHJlZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoVmFyaWFibGVMb29rdXAiPnhtbFhQYXRoVmFyaWFibGVMb29rdXA8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm90RnVuY3Rpb24iPnhtbFhQYXRoTm90RnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Citkb3VibGUJPGEgaHJlZj0iI3htbFhQYXRoU3RyaW5nRXZhbE51bWJlciI+eG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik7Cis8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFdyYXBFeHRlcm5hbCI+eG1sWFBhdGhXcmFwRXh0ZXJuYWw8L2E+CSh2b2lkICogdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5leHRBdHRyaWJ1dGUiPnhtbFhQYXRoTmV4dEF0dHJpYnV0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhEaXZWYWx1ZXMiPnhtbFhQYXRoRGl2VmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwTlM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmkpOworaW50CTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWx1ZSk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoVHJhaWxpbmciPnhtbFhQYXRoVHJhaWxpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhFdmFsRXhwciI+eG1sWFBhdGhFdmFsRXhwcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpOwordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QiPnhtbFhQYXRoRGVidWdEdW1wT2JqZWN0PC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGludCBkZXB0aCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTGVhZGluZyI+eG1sWFBhdGhMZWFkaW5nPC9hPgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik7Cis8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk7Cis8L3ByZT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPgorICAgICAgPGgyPkRldGFpbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iQ0FTVF9UT19CT09MRUFOIj5NYWNybyA8L2E+Q0FTVF9UT19CT09MRUFOPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjQ0FTVF9UT19CT09MRUFOIj5DQVNUX1RPX0JPT0xFQU48L2E+OworPC9wcmU+PHA+TWFjcm8gdG8gdHJ5IHRvIGNhc3QgdGhlIHZhbHVlIG9uIHRoZSB0b3Agb2YgdGhlIFhQYXRoIHN0YWNrIHRvIGEgYm9vbGVhbi48L3A+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iQ0FTVF9UT19OVU1CRVIiPk1hY3JvIDwvYT5DQVNUX1RPX05VTUJFUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0NBU1RfVE9fTlVNQkVSIj5DQVNUX1RPX05VTUJFUjwvYT47Cis8L3ByZT48cD5NYWNybyB0byB0cnkgdG8gY2FzdCB0aGUgdmFsdWUgb24gdGhlIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgdG8gYSBudW1iZXIuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkNBU1RfVE9fU1RSSU5HIj5NYWNybyA8L2E+Q0FTVF9UT19TVFJJTkc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNDQVNUX1RPX1NUUklORyI+Q0FTVF9UT19TVFJJTkc8L2E+OworPC9wcmU+PHA+TWFjcm8gdG8gdHJ5IHRvIGNhc3QgdGhlIHZhbHVlIG9uIHRoZSB0b3Agb2YgdGhlIFhQYXRoIHN0YWNrIHRvIGEgc3RyaW5nLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJDSEVDS19BUklUWSI+TWFjcm8gPC9hPkNIRUNLX0FSSVRZPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjQ0hFQ0tfQVJJVFkiPkNIRUNLX0FSSVRZPC9hPih4KTsKKzwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoYXQgdGhlIG51bWJlciBvZiBhcmdzIHBhc3NlZCB0byBhbiBYUGF0aCBmdW5jdGlvbiBtYXRjaGVzLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Png8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZXhwZWN0ZWQgYXJnczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iQ0hFQ0tfRVJST1IiPk1hY3JvIDwvYT5DSEVDS19FUlJPUjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0NIRUNLX0VSUk9SIj5DSEVDS19FUlJPUjwvYT47Cis8L3ByZT48cD5NYWNybyB0byByZXR1cm4gZnJvbSB0aGUgZnVuY3Rpb24gaWYgYW4gWFBhdGggZXJyb3Igd2FzIGRldGVjdGVkLjwvcD4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJDSEVDS19FUlJPUjAiPk1hY3JvIDwvYT5DSEVDS19FUlJPUjA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNDSEVDS19FUlJPUjAiPkNIRUNLX0VSUk9SMDwvYT47Cis8L3ByZT48cD5NYWNybyB0byByZXR1cm4gMCBmcm9tIHRoZSBmdW5jdGlvbiBpZiBhbiBYUGF0aCBlcnJvciB3YXMgZGV0ZWN0ZWQuPC9wPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IkNIRUNLX1RZUEUiPk1hY3JvIDwvYT5DSEVDS19UWVBFPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjQ0hFQ0tfVFlQRSI+Q0hFQ0tfVFlQRTwvYT4odHlwZXZhbCk7Cis8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvbiB0b3Agb2YgdGhlIFhQYXRoIHN0YWNrIGlzIG9mIGEgZ2l2ZW4gdHlwZS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBldmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggdHlwZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iQ0hFQ0tfVFlQRTAiPk1hY3JvIDwvYT5DSEVDS19UWVBFMDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0NIRUNLX1RZUEUwIj5DSEVDS19UWVBFMDwvYT4odHlwZXZhbCk7Cis8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvbiB0b3Agb2YgdGhlIFhQYXRoIHN0YWNrIGlzIG9mIGEgZ2l2ZW4gdHlwZS4gUmV0dXJuKDApIGluIGNhc2Ugb2YgZmFpbHVyZTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGV2YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCB0eXBlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJYUF9FUlJPUiI+TWFjcm8gPC9hPlhQX0VSUk9SPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWFBfRVJST1IiPlhQX0VSUk9SPC9hPihYKTsKKzwvcHJlPjxwPk1hY3JvIHRvIHJhaXNlIGFuIFhQYXRoIGVycm9yIGFuZCByZXR1cm4uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+WDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVycm9yIGNvZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9IlhQX0VSUk9SMCI+TWFjcm8gPC9hPlhQX0VSUk9SMDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hQX0VSUk9SMCI+WFBfRVJST1IwPC9hPihYKTsKKzwvcHJlPjxwPk1hY3JvIHRvIHJhaXNlIGFuIFhQYXRoIGVycm9yIGFuZCByZXR1cm4gMC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5YPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgY29kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDaGVja0Vycm9yIj5NYWNybyA8L2E+eG1sWFBhdGhDaGVja0Vycm9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhDaGVja0Vycm9yIj54bWxYUGF0aENoZWNrRXJyb3I8L2E+KGN0eHQpOworPC9wcmU+PHA+Q2hlY2sgaWYgYW4gWFBhdGggZXJyb3Igd2FzIHJhaXNlZC4gUmV0dXJucyB0cnVlIGlmIGFuIGVycm9yIGhhcyBiZWVuIHJhaXNlZCwgZmFsc2Ugb3RoZXJ3aXNlLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEVtcHR5Tm9kZVNldCI+TWFjcm8gPC9hPnhtbFhQYXRoRW1wdHlOb2RlU2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhFbXB0eU5vZGVTZXQiPnhtbFhQYXRoRW1wdHlOb2RlU2V0PC9hPihucyk7Cis8L3ByZT48cD5FbXB0aWVzIGEgbm9kZS1zZXQuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoR2V0Q29udGV4dE5vZGUiPk1hY3JvIDwvYT54bWxYUGF0aEdldENvbnRleHROb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhHZXRDb250ZXh0Tm9kZSI+eG1sWFBhdGhHZXRDb250ZXh0Tm9kZTwvYT4oY3R4dCk7Cis8L3ByZT48cD5HZXQgdGhlIGNvbnRleHQgbm9kZSBvZiBhbiBYUGF0aCBjb250ZXh0LiBSZXR1cm5zIHRoZSBjb250ZXh0IG5vZGUuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoR2V0RG9jdW1lbnQiPk1hY3JvIDwvYT54bWxYUGF0aEdldERvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhHZXREb2N1bWVudCI+eG1sWFBhdGhHZXREb2N1bWVudDwvYT4oY3R4dCk7Cis8L3ByZT48cD5HZXQgdGhlIGRvY3VtZW50IG9mIGFuIFhQYXRoIGNvbnRleHQuIFJldHVybnMgdGhlIGNvbnRleHQgZG9jdW1lbnQuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoR2V0RXJyb3IiPk1hY3JvIDwvYT54bWxYUGF0aEdldEVycm9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhHZXRFcnJvciI+eG1sWFBhdGhHZXRFcnJvcjwvYT4oY3R4dCk7Cis8L3ByZT48cD5HZXQgdGhlIGVycm9yIGNvZGUgb2YgYW4gWFBhdGggY29udGV4dC4gUmV0dXJucyB0aGUgY29udGV4dCBlcnJvci48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhSZXR1cm5Cb29sZWFuIj5NYWNybyA8L2E+eG1sWFBhdGhSZXR1cm5Cb29sZWFuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5Cb29sZWFuIj54bWxYUGF0aFJldHVybkJvb2xlYW48L2E+KGN0eHQsIHZhbCk7Cis8L3ByZT48cD5QdXNoZXMgdGhlIGJvb2xlYW4gQHZhbCBvbiB0aGUgY29udGV4dCBzdGFjay48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJvb2xlYW48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmV0dXJuRW1wdHlOb2RlU2V0Ij5NYWNybyA8L2E+eG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldCI+eG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQ8L2E+KGN0eHQpOworPC9wcmU+PHA+UHVzaGVzIGFuIGVtcHR5IG5vZGUtc2V0IG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nIj5NYWNybyA8L2E+eG1sWFBhdGhSZXR1cm5FbXB0eVN0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmciPnhtbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmc8L2E+KGN0eHQpOworPC9wcmU+PHA+UHVzaGVzIGFuIGVtcHR5IHN0cmluZyBvbiB0aGUgc3RhY2suPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmV0dXJuRXh0ZXJuYWwiPk1hY3JvIDwvYT54bWxYUGF0aFJldHVybkV4dGVybmFsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5FeHRlcm5hbCI+eG1sWFBhdGhSZXR1cm5FeHRlcm5hbDwvYT4oY3R4dCwgdmFsKTsKKzwvcHJlPjxwPlB1c2hlcyB1c2VyIGRhdGEgb24gdGhlIGNvbnRleHQgc3RhY2suPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dXNlciBkYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVybkZhbHNlIj5NYWNybyA8L2E+eG1sWFBhdGhSZXR1cm5GYWxzZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuRmFsc2UiPnhtbFhQYXRoUmV0dXJuRmFsc2U8L2E+KGN0eHQpOworPC9wcmU+PHA+UHVzaGVzIGZhbHNlIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVybk5vZGVTZXQiPk1hY3JvIDwvYT54bWxYUGF0aFJldHVybk5vZGVTZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybk5vZGVTZXQiPnhtbFhQYXRoUmV0dXJuTm9kZVNldDwvYT4oY3R4dCwgbnMpOworPC9wcmU+PHA+UHVzaGVzIHRoZSBub2RlLXNldCBAbnMgb24gdGhlIGNvbnRleHQgc3RhY2suPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVybk51bWJlciI+TWFjcm8gPC9hPnhtbFhQYXRoUmV0dXJuTnVtYmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5OdW1iZXIiPnhtbFhQYXRoUmV0dXJuTnVtYmVyPC9hPihjdHh0LCB2YWwpOworPC9wcmU+PHA+UHVzaGVzIHRoZSBkb3VibGUgQHZhbCBvbiB0aGUgY29udGV4dCBzdGFjay48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvdWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhSZXR1cm5TdHJpbmciPk1hY3JvIDwvYT54bWxYUGF0aFJldHVyblN0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuU3RyaW5nIj54bWxYUGF0aFJldHVyblN0cmluZzwvYT4oY3R4dCwgc3RyKTsKKzwvcHJlPjxwPlB1c2hlcyB0aGUgc3RyaW5nIEBzdHIgb24gdGhlIGNvbnRleHQgc3RhY2suPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmV0dXJuVHJ1ZSI+TWFjcm8gPC9hPnhtbFhQYXRoUmV0dXJuVHJ1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuVHJ1ZSI+eG1sWFBhdGhSZXR1cm5UcnVlPC9hPihjdHh0KTsKKzwvcHJlPjxwPlB1c2hlcyB0cnVlIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFNldEFyaXR5RXJyb3IiPk1hY3JvIDwvYT54bWxYUGF0aFNldEFyaXR5RXJyb3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFNldEFyaXR5RXJyb3IiPnhtbFhQYXRoU2V0QXJpdHlFcnJvcjwvYT4oY3R4dCk7Cis8L3ByZT48cD5SYWlzZXMgYW4gPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX0lOVkFMSURfQVJJVFkiPlhQQVRIX0lOVkFMSURfQVJJVFk8L2E+IGVycm9yLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFNldEVycm9yIj5NYWNybyA8L2E+eG1sWFBhdGhTZXRFcnJvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoU2V0RXJyb3IiPnhtbFhQYXRoU2V0RXJyb3I8L2E+KGN0eHQsIGVycik7Cis8L3ByZT48cD5SYWlzZXMgYW4gZXJyb3IuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRXJyb3IiPnhtbFhQYXRoRXJyb3I8L2E+IGNvZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoU2V0VHlwZUVycm9yIj5NYWNybyA8L2E+eG1sWFBhdGhTZXRUeXBlRXJyb3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFNldFR5cGVFcnJvciI+eG1sWFBhdGhTZXRUeXBlRXJyb3I8L2E+KGN0eHQpOworPC9wcmU+PHA+UmFpc2VzIGFuIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX1RZUEUiPlhQQVRIX0lOVkFMSURfVFlQRTwvYT4gZXJyb3IuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoU3RhY2tJc0V4dGVybmFsIj5NYWNybyA8L2E+eG1sWFBhdGhTdGFja0lzRXh0ZXJuYWw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFN0YWNrSXNFeHRlcm5hbCI+eG1sWFBhdGhTdGFja0lzRXh0ZXJuYWw8L2E+KGN0eHQpOworPC9wcmU+PHA+Q2hlY2tzIGlmIHRoZSBjdXJyZW50IHZhbHVlIG9uIHRoZSBYUGF0aCBzdGFjayBpcyBhbiBleHRlcm5hbCBvYmplY3QuIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBvYmplY3Qgb24gdGhlIHN0YWNrIGlzIGFuIGV4dGVybmFsIG9iamVjdC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhTdGFja0lzTm9kZVNldCI+TWFjcm8gPC9hPnhtbFhQYXRoU3RhY2tJc05vZGVTZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFN0YWNrSXNOb2RlU2V0Ij54bWxYUGF0aFN0YWNrSXNOb2RlU2V0PC9hPihjdHh0KTsKKzwvcHJlPjxwPkNoZWNrIGlmIHRoZSBjdXJyZW50IHZhbHVlIG9uIHRoZSBYUGF0aCBzdGFjayBpcyBhIG5vZGUgc2V0IG9yIGFuIFhTTFQgdmFsdWUgdHJlZS4gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IG9iamVjdCBvbiB0aGUgc3RhY2sgaXMgYSBub2RlLXNldC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+Cis8L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0idmFsdWVQb3AiLz52YWx1ZVBvcCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXZhbHVlUG9wCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPlBvcHMgdGhlIHRvcCBYUGF0aCBvYmplY3QgZnJvbSB0aGUgdmFsdWUgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIG9iamVjdCBqdXN0IHJlbW92ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ2YWx1ZVB1c2giLz52YWx1ZVB1c2ggKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJdmFsdWVQdXNoCQkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWx1ZSk8YnIvPgorPC9wcmU+PHA+UHVzaGVzIGEgbmV3IFhQYXRoIG9iamVjdCBvbiB0b3Agb2YgdGhlIHZhbHVlIHN0YWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBldmFsdWF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggb2JqZWN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIHRoZSB2YWx1ZSBzdGFjazwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoQWRkVmFsdWVzIi8+eG1sWFBhdGhBZGRWYWx1ZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoQWRkVmFsdWVzCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGFkZCBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0czogVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbiIvPnhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgYm9vbGVhbigpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gYm9vbGVhbihvYmplY3QpIFRoZSBib29sZWFuIGZ1bmN0aW9uIGNvbnZlcnRzIGl0cyBhcmd1bWVudCB0byBhIGJvb2xlYW4gYXMgZm9sbG93czogLSBhIG51bWJlciBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0IGlzIG5laXRoZXIgcG9zaXRpdmUgb3IgbmVnYXRpdmUgemVybyBub3IgTmFOIC0gYSBub2RlLXNldCBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0IGlzIG5vbi1lbXB0eSAtIGEgc3RyaW5nIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgaXRzIGxlbmd0aCBpcyBub24temVybzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENlaWxpbmdGdW5jdGlvbiIvPnhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aENlaWxpbmdGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgY2VpbGluZygpIFhQYXRoIGZ1bmN0aW9uIG51bWJlciBjZWlsaW5nKG51bWJlcikgVGhlIGNlaWxpbmcgZnVuY3Rpb24gcmV0dXJucyB0aGUgc21hbGxlc3QgKGNsb3Nlc3QgdG8gbmVnYXRpdmUgaW5maW5pdHkpIG51bWJlciB0aGF0IGlzIG5vdCBsZXNzIHRoYW4gdGhlIGFyZ3VtZW50IGFuZCB0aGF0IGlzIGFuIGludGVnZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ29tcGFyZVZhbHVlcyIvPnhtbFhQYXRoQ29tcGFyZVZhbHVlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aENvbXBhcmVWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IGluZiwgPGJyLz4JCQkJCSBpbnQgc3RyaWN0KTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGNvbXBhcmUgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHM6IEBhcmcxICZsdDsgQGFyZzIgKDEsIDEsIC4uLiBAYXJnMSAmbHQ7PSBAYXJnMiAoMSwgMCwgLi4uIEBhcmcxICZndDsgQGFyZzIgKDAsIDEsIC4uLiBAYXJnMSAmZ3Q7PSBAYXJnMiAoMCwgMCwgLi4uIFdoZW4gbmVpdGhlciBvYmplY3QgdG8gYmUgY29tcGFyZWQgaXMgYSBub2RlLXNldCBhbmQgdGhlIG9wZXJhdG9yIGlzICZsdDs9LCAmbHQ7LCAmZ3Q7PSwgJmd0OywgdGhlbiB0aGUgb2JqZWN0cyBhcmUgY29tcGFyZWQgYnkgY29udmVydGVkIGJvdGggb2JqZWN0cyB0byBudW1iZXJzIGFuZCBjb21wYXJpbmcgdGhlIG51bWJlcnMgYWNjb3JkaW5nIHRvIElFRUUgNzU0LiBUaGUgJmx0OyBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgbnVtYmVyIGlzIGxlc3MgdGhhbiB0aGUgc2Vjb25kIG51bWJlci4gVGhlICZsdDs9IGNvbXBhcmlzb24gd2lsbCBiZSB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBmaXJzdCBudW1iZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZWNvbmQgbnVtYmVyLiBUaGUgJmd0OyBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgbnVtYmVyIGlzIGdyZWF0ZXIgdGhhbiB0aGUgc2Vjb25kIG51bWJlci4gVGhlICZndDs9IGNvbXBhcmlzb24gd2lsbCBiZSB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBmaXJzdCBudW1iZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZWNvbmQgbnVtYmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxlc3MgdGhhbiAoMSkgb3IgZ3JlYXRlciB0aGFuICgwKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pcyB0aGUgY29tcGFyaXNvbiBzdHJpY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIGNvbXBhcmlzb24gc3VjY2VlZGVkLCAwIGlmIGl0IGZhaWxlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ29uY2F0RnVuY3Rpb24iLz54bWxYUGF0aENvbmNhdEZ1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aENvbmNhdEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBjb25jYXQoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgY29uY2F0KHN0cmluZywgc3RyaW5nLCBzdHJpbmcqKSBUaGUgY29uY2F0IGZ1bmN0aW9uIHJldHVybnMgdGhlIGNvbmNhdGVuYXRpb24gb2YgaXRzIGFyZ3VtZW50cy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb250YWluc0Z1bmN0aW9uIi8+eG1sWFBhdGhDb250YWluc0Z1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgY29udGFpbnMoKSBYUGF0aCBmdW5jdGlvbiBib29sZWFuIGNvbnRhaW5zKHN0cmluZywgc3RyaW5nKSBUaGUgY29udGFpbnMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgY29udGFpbnMgdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcsIGFuZCBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb3VudEZ1bmN0aW9uIi8+eG1sWFBhdGhDb3VudEZ1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aENvdW50RnVuY3Rpb24JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGNvdW50KCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIGNvdW50KG5vZGUtc2V0KTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByIi8+eG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcgkoRklMRSAqIG91dHB1dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4gY29tcCwgPGJyLz4JCQkJCSBpbnQgZGVwdGgpPGJyLz4KKzwvcHJlPjxwPkR1bXBzIHRoZSB0cmVlIG9mIHRoZSBjb21waWxlZCBYUGF0aCBleHByZXNzaW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmRlbnRhdGlvbiBsZXZlbC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aERlYnVnRHVtcE9iamVjdCIvPnhtbFhQYXRoRGVidWdEdW1wT2JqZWN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aERlYnVnRHVtcE9iamVjdAkJKEZJTEUgKiBvdXRwdXQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGludCBkZXB0aCk8YnIvPgorPC9wcmU+PHA+RHVtcCB0aGUgY29udGVudCBvZiB0aGUgb2JqZWN0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgKiB0byBkdW1wIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9iamVjdCB0byBpbnNwZWN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5kZW50YXRpb24gbGV2ZWw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aERpZmZlcmVuY2UiLz54bWxYUGF0aERpZmZlcmVuY2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhEaWZmZXJlbmNlCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaWZmZXJlbmNlKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpkaWZmZXJlbmNlIChub2RlLXNldCwgbm9kZS1zZXQpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIG5vZGUgc2V0cywgb3Igbm9kZXMxIGlmIG5vZGVzMiBpcyBlbXB0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRGlzdGluY3QiLz54bWxYUGF0aERpc3RpbmN0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CXhtbFhQYXRoRGlzdGluY3QJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2Rlcyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGRpc3RpbmN0KCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpkaXN0aW5jdCAobm9kZS1zZXQpIEBub2RlcyBpcyBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI2V4c2xTZXRzRGlzdGluY3RTb3J0ZWQgaXMgY2FsbGVkIHdpdGggdGhlIHNvcnRlZCBub2RlLXNldDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3Vic2V0IG9mIHRoZSBub2RlcyBjb250YWluZWQgaW4gQG5vZGVzLCBvciBAbm9kZXMgaWYgaXQgaXMgZW1wdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aERpc3RpbmN0U29ydGVkIi8+eG1sWFBhdGhEaXN0aW5jdFNvcnRlZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aERpc3RpbmN0U29ydGVkCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaXN0aW5jdCgpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6ZGlzdGluY3QgKG5vZGUtc2V0KTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdWJzZXQgb2YgdGhlIG5vZGVzIGNvbnRhaW5lZCBpbiBAbm9kZXMsIG9yIEBub2RlcyBpZiBpdCBpcyBlbXB0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRGl2VmFsdWVzIi8+eG1sWFBhdGhEaXZWYWx1ZXMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRGl2VmFsdWVzCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGRpdiBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0cyBAYXJnMSAvIEBhcmcyOiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmIGJ5IGNhbGxpbmcgdGhlIG51bWJlciBmdW5jdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRXF1YWxWYWx1ZXMiLz54bWxYUGF0aEVxdWFsVmFsdWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoRXF1YWxWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgZXF1YWwgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHMgY29udGVudDogQGFyZzEgPT0gQGFyZzI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAxIGRlcGVuZGluZyBvbiB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEVyciIvPnhtbFhQYXRoRXJyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEVycgkJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IGVycm9yKTxici8+Cis8L3ByZT48cD5IYW5kbGUgYW4gWFBhdGggZXJyb3I8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycm9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgY29kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRXZhbEV4cHIiLz54bWxYUGF0aEV2YWxFeHByICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEV2YWxFeHByCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5QYXJzZSBhbmQgZXZhbHVhdGUgYW4gWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgZ2l2ZW4gY29udGV4dCwgdGhlbiBwdXNoIHRoZSByZXN1bHQgb24gdGhlIGNvbnRleHQgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQiLz54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiByZXMpPGJyLz4KKzwvcHJlPjxwPkV2YWx1YXRlIGEgcHJlZGljYXRlIHJlc3VsdCBmb3IgdGhlIGN1cnJlbnQgbm9kZS4gQSBQcmVkaWNhdGVFeHByIGlzIGV2YWx1YXRlZCBieSBldmFsdWF0aW5nIHRoZSBFeHByIGFuZCBjb252ZXJ0aW5nIHRoZSByZXN1bHQgdG8gYSBib29sZWFuLiBJZiB0aGUgcmVzdWx0IGlzIGEgbnVtYmVyLCB0aGUgcmVzdWx0IHdpbGwgYmUgY29udmVydGVkIHRvIHRydWUgaWYgdGhlIG51bWJlciBpcyBlcXVhbCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRleHQgbm9kZSBpbiB0aGUgY29udGV4dCBub2RlIGxpc3QgKGFzIHJldHVybmVkIGJ5IHRoZSBwb3NpdGlvbiBmdW5jdGlvbikgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGZhbHNlIG90aGVyd2lzZTsgaWYgdGhlIHJlc3VsdCBpcyBub3QgYSBudW1iZXIsIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlIGNvbnZlcnRlZCBhcyBpZiBieSBhIGNhbGwgdG8gdGhlIGJvb2xlYW4gZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFByZWRpY2F0ZSBFeHByZXNzaW9uIGV2YWx1YXRpb24gcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHByZWRpY2F0ZSBpcyB0cnVlLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoRmFsc2VGdW5jdGlvbiIvPnhtbFhQYXRoRmFsc2VGdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhGYWxzZUZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBmYWxzZSgpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gZmFsc2UoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZsb29yRnVuY3Rpb24iLz54bWxYUGF0aEZsb29yRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRmxvb3JGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgZmxvb3IoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgZmxvb3IobnVtYmVyKSBUaGUgZmxvb3IgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGFyZ2VzdCAoY2xvc2VzdCB0byBwb3NpdGl2ZSBpbmZpbml0eSkgbnVtYmVyIHRoYXQgaXMgbm90IGdyZWF0ZXIgdGhhbiB0aGUgYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dCIvPnhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+RnJlZSB1cCBhbiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij54bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhGdW5jdGlvbkxvb2t1cCIvPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4JeG1sWFBhdGhGdW5jdGlvbkxvb2t1cAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+U2VhcmNoIGluIHRoZSBGdW5jdGlvbiBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIGZ1bmN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+IG9yIE5VTEwgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TIi8+eG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+CXhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUwkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNfdXJpKTxici8+Cis8L3ByZT48cD5TZWFyY2ggaW4gdGhlIEZ1bmN0aW9uIGFycmF5IG9mIHRoZSBjb250ZXh0IGZvciB0aGUgZ2l2ZW4gZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zX3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIG5hbWVzcGFjZSBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4gb3IgTlVMTCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEhhc1NhbWVOb2RlcyIvPnhtbFhQYXRoSGFzU2FtZU5vZGVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoSGFzU2FtZU5vZGVzCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgaGFzLXNhbWUtbm9kZXMgZnVuY3Rpb246IGJvb2xlYW4gc2V0Omhhcy1zYW1lLW5vZGUobm9kZS1zZXQsIG5vZGUtc2V0KTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXMxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRydWUgKDEpIGlmIEBub2RlczEgc2hhcmVzIGFueSBub2RlIHdpdGggQG5vZGVzMiwgZmFsc2UgKDApIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoSWRGdW5jdGlvbiIvPnhtbFhQYXRoSWRGdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhJZEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBpZCgpIFhQYXRoIGZ1bmN0aW9uIG5vZGUtc2V0IGlkKG9iamVjdCkgVGhlIGlkIGZ1bmN0aW9uIHNlbGVjdHMgZWxlbWVudHMgYnkgdGhlaXIgdW5pcXVlIElEIChzZWUgWzUuMi4xIFVuaXF1ZSBJRHNdKS4gV2hlbiB0aGUgYXJndW1lbnQgdG8gaWQgaXMgb2YgdHlwZSBub2RlLXNldCwgdGhlbiB0aGUgcmVzdWx0IGlzIHRoZSB1bmlvbiBvZiB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIGlkIHRvIHRoZSBzdHJpbmcgdmFsdWUgb2YgZWFjaCBvZiB0aGUgbm9kZXMgaW4gdGhlIGFyZ3VtZW50IG5vZGUtc2V0LiBXaGVuIHRoZSBhcmd1bWVudCB0byBpZCBpcyBvZiBhbnkgb3RoZXIgdHlwZSwgdGhlIGFyZ3VtZW50IGlzIGNvbnZlcnRlZCB0byBhIHN0cmluZyBhcyBpZiBieSBhIGNhbGwgdG8gdGhlIHN0cmluZyBmdW5jdGlvbjsgdGhlIHN0cmluZyBpcyBzcGxpdCBpbnRvIGEgd2hpdGVzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiB0b2tlbnMgKHdoaXRlc3BhY2UgaXMgYW55IHNlcXVlbmNlIG9mIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gbWF0Y2hpbmcgdGhlIHByb2R1Y3Rpb24gUyk7IHRoZSByZXN1bHQgaXMgYSBub2RlLXNldCBjb250YWluaW5nIHRoZSBlbGVtZW50cyBpbiB0aGUgc2FtZSBkb2N1bWVudCBhcyB0aGUgY29udGV4dCBub2RlIHRoYXQgaGF2ZSBhIHVuaXF1ZSBJRCBlcXVhbCB0byBhbnkgb2YgdGhlIHRva2VucyBpbiB0aGUgbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhJbnRlcnNlY3Rpb24iLz54bWxYUGF0aEludGVyc2VjdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aEludGVyc2VjdGlvbgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgaW50ZXJzZWN0aW9uKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDppbnRlcnNlY3Rpb24gKG5vZGUtc2V0LCBub2RlLXNldCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXMyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgc2V0IGNvbXByaXNpbmcgdGhlIG5vZGVzIHRoYXQgYXJlIHdpdGhpbiBib3RoIHRoZSBub2RlIHNldHMgcGFzc2VkIGFzIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoSXNOb2RlVHlwZSIvPnhtbFhQYXRoSXNOb2RlVHlwZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aElzTm9kZVR5cGUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+SXMgdGhlIG5hbWUgZ2l2ZW4gYSBOb2RlVHlwZSBvbmUuIFszOF0gTm9kZVR5cGUgOjo9ICdjb21tZW50JyB8ICd0ZXh0JyB8ICdwcm9jZXNzaW5nLWluc3RydWN0aW9uJyB8ICdub2RlJzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuYW1lIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhMYW5nRnVuY3Rpb24iLz54bWxYUGF0aExhbmdGdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhMYW5nRnVuY3Rpb24JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGxhbmcoKSBYUGF0aCBmdW5jdGlvbiBib29sZWFuIGxhbmcoc3RyaW5nKSBUaGUgbGFuZyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGxhbmd1YWdlIG9mIHRoZSBjb250ZXh0IG5vZGUgYXMgc3BlY2lmaWVkIGJ5IHhtbDpsYW5nIGF0dHJpYnV0ZXMgaXMgdGhlIHNhbWUgYXMgb3IgaXMgYSBzdWJsYW5ndWFnZSBvZiB0aGUgbGFuZ3VhZ2Ugc3BlY2lmaWVkIGJ5IHRoZSBhcmd1bWVudCBzdHJpbmcuIFRoZSBsYW5ndWFnZSBvZiB0aGUgY29udGV4dCBub2RlIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlIG9mIHRoZSB4bWw6bGFuZyA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvbiB0aGUgY29udGV4dCBub2RlLCBvciwgaWYgdGhlIGNvbnRleHQgbm9kZSBoYXMgbm8geG1sOmxhbmcgYXR0cmlidXRlLCBieSB0aGUgdmFsdWUgb2YgdGhlIHhtbDpsYW5nIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG9uIHRoZSBuZWFyZXN0IGFuY2VzdG9yIG9mIHRoZSBjb250ZXh0IG5vZGUgdGhhdCBoYXMgYW4geG1sOmxhbmcgYXR0cmlidXRlLiBJZiB0aGVyZSBpcyBubyBzdWNoIGF0dHJpYnV0ZSwgdGhlbiBsYW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTGFzdEZ1bmN0aW9uIi8+eG1sWFBhdGhMYXN0RnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTGFzdEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBsYXN0KCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIGxhc3QoKSBUaGUgbGFzdCBmdW5jdGlvbiByZXR1cm5zIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIGNvbnRleHQgbm9kZSBsaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aExlYWRpbmciLz54bWxYUGF0aExlYWRpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhMZWFkaW5nCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgbGVhZGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6bGVhZGluZyAobm9kZS1zZXQsIG5vZGUtc2V0KSBAbm9kZXMxIGFuZCBAbm9kZXMyIGFyZSBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI2V4c2xTZXRzTGVhZGluZ1NvcnRlZCBpcyBjYWxsZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGVzIGluIEBub2RlczEgdGhhdCBwcmVjZWRlIHRoZSBmaXJzdCBub2RlIGluIEBub2RlczIgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlczEgaWYgQG5vZGVzMiBpcyBOVUxMIG9yIGVtcHR5IG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlczEgZG9lc24ndCBjb250YWluIEBub2RlczI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aExlYWRpbmdTb3J0ZWQiLz54bWxYUGF0aExlYWRpbmdTb3J0ZWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhMZWFkaW5nU29ydGVkCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBsZWFkaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXMyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBpbiBAbm9kZXMxIHRoYXQgcHJlY2VkZSB0aGUgZmlyc3Qgbm9kZSBpbiBAbm9kZXMyIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMxIGlmIEBub2RlczIgaXMgTlVMTCBvciBlbXB0eSBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMxIGRvZXNuJ3QgY29udGFpbiBAbm9kZXMyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbiIvPnhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbG9jYWwtbmFtZSgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBsb2NhbC1uYW1lKG5vZGUtc2V0PykgVGhlIGxvY2FsLW5hbWUgZnVuY3Rpb24gcmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBsb2NhbCBwYXJ0IG9mIHRoZSBuYW1lIG9mIHRoZSBub2RlIGluIHRoZSBhcmd1bWVudCBub2RlLXNldCB0aGF0IGlzIGZpcnN0IGluIGRvY3VtZW50IG9yZGVyLiBJZiB0aGUgbm9kZS1zZXQgaXMgZW1wdHkgb3IgdGhlIGZpcnN0IG5vZGUgaGFzIG5vIG5hbWUsIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC4gSWYgdGhlIGFyZ3VtZW50IGlzIG9taXR0ZWQgaXQgZGVmYXVsdHMgdG8gdGhlIGNvbnRleHQgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhNb2RWYWx1ZXMiLz54bWxYUGF0aE1vZFZhbHVlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhNb2RWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbW9kIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzOiBAYXJnMSAvIEBhcmcyIFRoZSBudW1lcmljIG9wZXJhdG9ycyBjb252ZXJ0IHRoZWlyIG9wZXJhbmRzIHRvIG51bWJlcnMgYXMgaWYgYnkgY2FsbGluZyB0aGUgbnVtYmVyIGZ1bmN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhNdWx0VmFsdWVzIi8+eG1sWFBhdGhNdWx0VmFsdWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE11bHRWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbXVsdGlwbHkgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHM6IFRoZSBudW1lcmljIG9wZXJhdG9ycyBjb252ZXJ0IHRoZWlyIG9wZXJhbmRzIHRvIG51bWJlcnMgYXMgaWYgYnkgY2FsbGluZyB0aGUgbnVtYmVyIGZ1bmN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbiIvPnhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbmFtZXNwYWNlLXVyaSgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBuYW1lc3BhY2UtdXJpKG5vZGUtc2V0PykgVGhlIG5hbWVzcGFjZS11cmkgZnVuY3Rpb24gcmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lc3BhY2UgVVJJIG9mIHRoZSBleHBhbmRlZCBuYW1lIG9mIHRoZSBub2RlIGluIHRoZSBhcmd1bWVudCBub2RlLXNldCB0aGF0IGlzIGZpcnN0IGluIGRvY3VtZW50IG9yZGVyLiBJZiB0aGUgbm9kZS1zZXQgaXMgZW1wdHksIHRoZSBmaXJzdCBub2RlIGhhcyBubyBuYW1lLCBvciB0aGUgZXhwYW5kZWQgbmFtZSBoYXMgbm8gbmFtZXNwYWNlIFVSSSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCBpdCBkZWZhdWx0cyB0byB0aGUgY29udGV4dCBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld0Jvb2xlYW4iLz54bWxYUGF0aE5ld0Jvb2xlYW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE5ld0Jvb2xlYW4JKGludCB2YWwpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIGJvb2xlYW4gYW5kIG9mIHZhbHVlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJvb2xlYW4gdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld0NTdHJpbmciLz54bWxYUGF0aE5ld0NTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE5ld0NTdHJpbmcJKGNvbnN0IGNoYXIgKiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIHN0cmluZyBhbmQgb2YgdmFsdWUgQHZhbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhciAqIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXdGbG9hdCIvPnhtbFhQYXRoTmV3RmxvYXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE5ld0Zsb2F0CShkb3VibGUgdmFsKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSBkb3VibGUgYW5kIG9mIHZhbHVlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvdWJsZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV3Tm9kZVNldCIvPnhtbFhQYXRoTmV3Tm9kZVNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoTmV3Tm9kZVNldAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSBOb2RlU2V0IGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIHNpbmdsZSBOb2RlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIE5vZGVQdHIgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld05vZGVTZXRMaXN0Ii8+eG1sWFBhdGhOZXdOb2RlU2V0TGlzdCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoTmV3Tm9kZVNldExpc3QJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIE5vZGVTZXQgYW5kIGluaXRpYWxpemUgaXQgd2l0aCB0aGUgTm9kZXNldCBAdmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGV4aXN0aW5nIE5vZGVTZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQiLz54bWxYUGF0aE5ld1BhcnNlckNvbnRleHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+CXhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dAkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHQiPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dCI+eG1sWFBhdGhQYXJzZXJDb250ZXh0PC9hPiBqdXN0IGFsbG9jYXRlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld1N0cmluZyIvPnhtbFhQYXRoTmV3U3RyaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhOZXdTdHJpbmcJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIHN0cmluZyBhbmQgb2YgdmFsdWUgQHZhbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXdWYWx1ZVRyZWUiLz54bWxYUGF0aE5ld1ZhbHVlVHJlZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoTmV3VmFsdWVUcmVlCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIFZhbHVlIFRyZWUgKFhTTFQpIGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIHRyZWUgcm9vdCBAdmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBOb2RlUHRyIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0QW5jZXN0b3IiLz54bWxYUGF0aE5leHRBbmNlc3RvciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dEFuY2VzdG9yCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiYW5jZXN0b3IiIGRpcmVjdGlvbiB0aGUgYW5jZXN0b3IgYXhpcyBjb250YWlucyB0aGUgYW5jZXN0b3JzIG9mIHRoZSBjb250ZXh0IG5vZGU7IHRoZSBhbmNlc3RvcnMgb2YgdGhlIGNvbnRleHQgbm9kZSBjb25zaXN0IG9mIHRoZSBwYXJlbnQgb2YgY29udGV4dCBub2RlIGFuZCB0aGUgcGFyZW50J3MgcGFyZW50IGFuZCBzbyBvbjsgdGhlIG5vZGVzIGFyZSBvcmRlcmVkIGluIHJldmVyc2UgZG9jdW1lbnQgb3JkZXI7IHRodXMgdGhlIHBhcmVudCBpcyB0aGUgZmlyc3Qgbm9kZSBvbiB0aGUgYXhpcywgYW5kIHRoZSBwYXJlbnQncyBwYXJlbnQgaXMgdGhlIHNlY29uZCBub2RlIG9uIHRoZSBheGlzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiIvPnhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiYW5jZXN0b3Itb3Itc2VsZiIgZGlyZWN0aW9uIGhlIGFuY2VzdG9yLW9yLXNlbGYgYXhpcyBjb250YWlucyB0aGUgY29udGV4dCBub2RlIGFuZCBhbmNlc3RvcnMgb2YgdGhlIGNvbnRleHQgbm9kZSBpbiByZXZlcnNlIGRvY3VtZW50IG9yZGVyOyB0aHVzIHRoZSBjb250ZXh0IG5vZGUgaXMgdGhlIGZpcnN0IG5vZGUgb24gdGhlIGF4aXMsIGFuZCB0aGUgY29udGV4dCBub2RlJ3MgcGFyZW50IHRoZSBzZWNvbmQ7IHBhcmVudCBoZXJlIGlzIGRlZmluZWQgdGhlIHNhbWUgYXMgd2l0aCB0aGUgcGFyZW50IGF4aXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5leHRBdHRyaWJ1dGUiLz54bWxYUGF0aE5leHRBdHRyaWJ1dGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHRBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJhdHRyaWJ1dGUiIGRpcmVjdGlvbiBUT0RPOiBzdXBwb3J0IERURCBpbmhlcml0ZWQgZGVmYXVsdCBhdHRyaWJ1dGVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0Q2hpbGQiLz54bWxYUGF0aE5leHRDaGlsZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dENoaWxkCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiY2hpbGQiIGRpcmVjdGlvbiBUaGUgY2hpbGQgYXhpcyBjb250YWlucyB0aGUgY2hpbGRyZW4gb2YgdGhlIGNvbnRleHQgbm9kZSBpbiBkb2N1bWVudCBvcmRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dERlc2NlbmRhbnQiLz54bWxYUGF0aE5leHREZXNjZW5kYW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0RGVzY2VuZGFudAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgImRlc2NlbmRhbnQiIGRpcmVjdGlvbiB0aGUgZGVzY2VuZGFudCBheGlzIGNvbnRhaW5zIHRoZSBkZXNjZW5kYW50cyBvZiB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyOyBhIGRlc2NlbmRhbnQgaXMgYSBjaGlsZCBvciBhIGNoaWxkIG9mIGEgY2hpbGQgYW5kIHNvIG9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiIvPnhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgImRlc2NlbmRhbnQtb3Itc2VsZiIgZGlyZWN0aW9uIHRoZSBkZXNjZW5kYW50LW9yLXNlbGYgYXhpcyBjb250YWlucyB0aGUgY29udGV4dCBub2RlIGFuZCB0aGUgZGVzY2VuZGFudHMgb2YgdGhlIGNvbnRleHQgbm9kZSBpbiBkb2N1bWVudCBvcmRlcjsgdGh1cyB0aGUgY29udGV4dCBub2RlIGlzIHRoZSBmaXJzdCBub2RlIG9uIHRoZSBheGlzLCBhbmQgdGhlIGZpcnN0IGNoaWxkIG9mIHRoZSBjb250ZXh0IG5vZGUgaXMgdGhlIHNlY29uZCBub2RlIG9uIHRoZSBheGlzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5leHRGb2xsb3dpbmciLz54bWxYUGF0aE5leHRGb2xsb3dpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHRGb2xsb3dpbmcJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyLz4KKzwvcHJlPjxwPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJmb2xsb3dpbmciIGRpcmVjdGlvbiBUaGUgZm9sbG93aW5nIGF4aXMgY29udGFpbnMgYWxsIG5vZGVzIGluIHRoZSBzYW1lIGRvY3VtZW50IGFzIHRoZSBjb250ZXh0IG5vZGUgdGhhdCBhcmUgYWZ0ZXIgdGhlIGNvbnRleHQgbm9kZSBpbiBkb2N1bWVudCBvcmRlciwgZXhjbHVkaW5nIGFueSBkZXNjZW5kYW50cyBhbmQgZXhjbHVkaW5nIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5vZGVzIGFuZCBuYW1lc3BhY2Ugbm9kZXM7IHRoZSBub2RlcyBhcmUgb3JkZXJlZCBpbiBkb2N1bWVudCBvcmRlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyIvPnhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIvPgorPC9wcmU+PHA+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgImZvbGxvd2luZy1zaWJsaW5nIiBkaXJlY3Rpb24gVGhlIGZvbGxvd2luZy1zaWJsaW5nIGF4aXMgY29udGFpbnMgdGhlIGZvbGxvd2luZyBzaWJsaW5ncyBvZiB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0TmFtZXNwYWNlIi8+eG1sWFBhdGhOZXh0TmFtZXNwYWNlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0TmFtZXNwYWNlCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAibmFtZXNwYWNlIiBkaXJlY3Rpb24gdGhlIG5hbWVzcGFjZSBheGlzIGNvbnRhaW5zIHRoZSBuYW1lc3BhY2Ugbm9kZXMgb2YgdGhlIGNvbnRleHQgbm9kZTsgdGhlIG9yZGVyIG9mIG5vZGVzIG9uIHRoaXMgYXhpcyBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkOyB0aGUgYXhpcyB3aWxsIGJlIGVtcHR5IHVubGVzcyB0aGUgY29udGV4dCBub2RlIGlzIGFuIGVsZW1lbnQgV2Uga2VlcCB0aGUgWE1MIG5hbWVzcGFjZSBub2RlIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgPGEgaHJlZj0ibGlieG1sMi1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0UGFyZW50Ii8+eG1sWFBhdGhOZXh0UGFyZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0UGFyZW50CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAicGFyZW50IiBkaXJlY3Rpb24gVGhlIHBhcmVudCBheGlzIGNvbnRhaW5zIHRoZSBwYXJlbnQgb2YgdGhlIGNvbnRleHQgbm9kZSwgaWYgdGhlcmUgaXMgb25lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0UHJlY2VkaW5nIi8+eG1sWFBhdGhOZXh0UHJlY2VkaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0UHJlY2VkaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAicHJlY2VkaW5nIiBkaXJlY3Rpb24gdGhlIHByZWNlZGluZyBheGlzIGNvbnRhaW5zIGFsbCBub2RlcyBpbiB0aGUgc2FtZSBkb2N1bWVudCBhcyB0aGUgY29udGV4dCBub2RlIHRoYXQgYXJlIGJlZm9yZSB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBleGNsdWRpbmcgYW55IGFuY2VzdG9ycyBhbmQgZXhjbHVkaW5nIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5vZGVzIGFuZCBuYW1lc3BhY2Ugbm9kZXM7IHRoZSBub2RlcyBhcmUgb3JkZXJlZCBpbiByZXZlcnNlIGRvY3VtZW50IG9yZGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nIi8+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmcJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAicHJlY2VkaW5nLXNpYmxpbmciIGRpcmVjdGlvbiBUaGUgcHJlY2VkaW5nLXNpYmxpbmcgYXhpcyBjb250YWlucyB0aGUgcHJlY2VkaW5nIHNpYmxpbmdzIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gcmV2ZXJzZSBkb2N1bWVudCBvcmRlcjsgdGhlIGZpcnN0IHByZWNlZGluZyBzaWJsaW5nIGlzIGZpcnN0IG9uIHRoZSBheGlzOyB0aGUgc2libGluZyBwcmVjZWRpbmcgdGhhdCBub2RlIGlzIHRoZSBzZWNvbmQgb24gdGhlIGF4aXMgYW5kIHNvIG9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0U2VsZiIvPnhtbFhQYXRoTmV4dFNlbGYgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHRTZWxmCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxici8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAic2VsZiIgZGlyZWN0aW9uIFRoZSBzZWxmIGF4aXMgY29udGFpbnMganVzdCB0aGUgY29udGV4dCBub2RlIGl0c2VsZjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlTGVhZGluZyIvPnhtbFhQYXRoTm9kZUxlYWRpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhOb2RlTGVhZGluZwkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBsZWFkaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpIEBub2RlcyBpcyBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI2V4c2xTZXRzTm9kZUxlYWRpbmdTb3J0ZWQgaXMgY2FsbGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGVzIGluIEBub2RlcyB0aGF0IHByZWNlZGUgQG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlcyBpZiBAbm9kZSBpcyBOVUxMIG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlcyBkb2Vzbid0IGNvbnRhaW4gQG5vZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIi8+eG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBsZWFkaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBpbiBAbm9kZXMgdGhhdCBwcmVjZWRlIEBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMgaWYgQG5vZGUgaXMgTlVMTCBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMgZG9lc24ndCBjb250YWluIEBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0QWRkIi8+eG1sWFBhdGhOb2RlU2V0QWRkICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vZGVTZXRBZGQJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+YWRkIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRvIGFuIGV4aXN0aW5nIE5vZGVTZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluaXRpYWwgbm9kZSBzZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRBZGROcyIvPnhtbFhQYXRoTm9kZVNldEFkZE5zICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vZGVTZXRBZGROcwkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zKTxici8+Cis8L3ByZT48cD5hZGQgYSBuZXcgbmFtZXNwYWNlIG5vZGUgdG8gYW4gZXhpc3RpbmcgTm9kZVNldDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBub2RlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhvc3Rpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdGhlIG5hbWVzcGFjZSBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlIi8+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTxici8+Cis8L3ByZT48cD5hZGQgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdG8gYW4gZXhpc3RpbmcgTm9kZVNldCwgb3B0aW1pemVkIHZlcnNpb24gd2hlbiB3ZSBhcmUgc3VyZSB0aGUgbm9kZSBpcyBub3QgYWxyZWFkeSBpbiB0aGUgc2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBub2RlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVNldENvbnRhaW5zIi8+eG1sWFBhdGhOb2RlU2V0Q29udGFpbnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+Y2hlY2tzIHdoZXRoZXIgQGN1ciBjb250YWlucyBAdmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSAoMSkgaWYgQGN1ciBjb250YWlucyBAdmFsLCBmYWxzZSAoMCkgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0RGVsIi8+eG1sWFBhdGhOb2RlU2V0RGVsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vZGVTZXREZWwJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+UmVtb3ZlcyBhbiA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBmcm9tIGFuIGV4aXN0aW5nIE5vZGVTZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluaXRpYWwgbm9kZSBzZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRGcmVlTnMiLz54bWxYUGF0aE5vZGVTZXRGcmVlTnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTm9kZVNldEZyZWVOcwkJKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMpPGJyLz4KKzwvcHJlPjxwPk5hbWVzcGFjZSBub2RlcyBpbiBsaWJ4bWwgZG9uJ3QgbWF0Y2ggdGhlIFhQYXRoIHNlbWFudGljLiBJbiBhIG5vZGUgc2V0IHRoZSBuYW1lc3BhY2Ugbm9kZXMgYXJlIGR1cGxpY2F0ZWQgYW5kIHRoZSBuZXh0IHBvaW50ZXIgaXMgc2V0IHRvIHRoZSBwYXJlbnQgbm9kZSBpbiB0aGUgWFBhdGggc2VtYW50aWMuIENoZWNrIGlmIHN1Y2ggYSBub2RlIG5lZWRzIHRvIGJlIGZyZWVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIG5hbWVzcGFjZSBub2RlIGZvdW5kIGluIGEgbm9kZXNldC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRNZXJnZSIvPnhtbFhQYXRoTm9kZVNldE1lcmdlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CXhtbFhQYXRoTm9kZVNldE1lcmdlCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdmFsMSwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdmFsMik8YnIvPgorPC9wcmU+PHA+TWVyZ2VzIHR3byBub2Rlc2V0cywgYWxsIG5vZGVzIGZyb20gQHZhbDIgYXJlIGFkZGVkIHRvIEB2YWwxIGlmIEB2YWwxIGlzIE5VTEwsIGEgbmV3IHNldCBpcyBjcmVhdGVkIGFuZCBjb3BpZWQgZnJvbSBAdmFsMjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IE5vZGVTZXQgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBOb2RlU2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5AdmFsMSBvbmNlIGV4dGVuZGVkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRSZW1vdmUiLz54bWxYUGF0aE5vZGVTZXRSZW1vdmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTm9kZVNldFJlbW92ZQkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgaW50IHZhbCk8YnIvPgorPC9wcmU+PHA+UmVtb3ZlcyBhbiBlbnRyeSBmcm9tIGFuIGV4aXN0aW5nIE5vZGVTZXQgbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluaXRpYWwgbm9kZSBzZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGV4IHRvIHJlbW92ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVNldFNvcnQiLz54bWxYUGF0aE5vZGVTZXRTb3J0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vZGVTZXRTb3J0CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHNldCk8YnIvPgorPC9wcmU+PHA+U29ydCB0aGUgbm9kZSBzZXQgaW4gZG9jdW1lbnQgb3JkZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgc2V0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlVHJhaWxpbmciLz54bWxYUGF0aE5vZGVUcmFpbGluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aE5vZGVUcmFpbGluZwkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyB0cmFpbGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCkgQG5vZGVzIGlzIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciwgdGhlbiAjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQgaXMgY2FsbGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGVzIGluIEBub2RlcyB0aGF0IGZvbGxvdyBAbm9kZSBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzIGlmIEBub2RlIGlzIE5VTEwgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzIGRvZXNuJ3QgY29udGFpbiBAbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIi8+eG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIHRyYWlsaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDp0cmFpbGluZyAobm9kZS1zZXQsIG5vZGUtc2V0KTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgZm9sbG93IEBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMgaWYgQG5vZGUgaXMgTlVMTCBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMgZG9lc24ndCBjb250YWluIEBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbiIvPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbm9ybWFsaXplLXNwYWNlKCkgWFBhdGggZnVuY3Rpb24gc3RyaW5nIG5vcm1hbGl6ZS1zcGFjZShzdHJpbmc/KSBUaGUgbm9ybWFsaXplLXNwYWNlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50IHN0cmluZyB3aXRoIHdoaXRlIHNwYWNlIG5vcm1hbGl6ZWQgYnkgc3RyaXBwaW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgYW5kIHJlcGxhY2luZyBzZXF1ZW5jZXMgb2Ygd2hpdGVzcGFjZSA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGJ5IGEgc2luZ2xlIHNwYWNlLiBXaGl0ZXNwYWNlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYXJlIHRoZSBzYW1lIGFsbG93ZWQgYnkgdGhlIFMgcHJvZHVjdGlvbiBpbiBYTUwuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB0aGUgY29udGV4dCBub2RlIGNvbnZlcnRlZCB0byBhIHN0cmluZywgaW4gb3RoZXIgd29yZHMgdGhlIHZhbHVlIG9mIHRoZSBjb250ZXh0IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm90RXF1YWxWYWx1ZXMiLz54bWxYUGF0aE5vdEVxdWFsVmFsdWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoTm90RXF1YWxWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgZXF1YWwgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHMgY29udGVudDogQGFyZzEgPT0gQGFyZzI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAxIGRlcGVuZGluZyBvbiB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vdEZ1bmN0aW9uIi8+eG1sWFBhdGhOb3RGdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhOb3RGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbm90KCkgWFBhdGggZnVuY3Rpb24gYm9vbGVhbiBub3QoYm9vbGVhbikgVGhlIG5vdCBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgaXRzIGFyZ3VtZW50IGlzIGZhbHNlLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5zTG9va3VwIi8+eG1sWFBhdGhOc0xvb2t1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aE5zTG9va3VwCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk8YnIvPgorPC9wcmU+PHA+U2VhcmNoIGluIHRoZSBuYW1lc3BhY2UgZGVjbGFyYXRpb24gYXJyYXkgb2YgdGhlIGNvbnRleHQgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2UgbmFtZSBhc3NvY2lhdGVkIHRvIHRoZSBnaXZlbiBwcmVmaXg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgcHJlZml4IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE51bWJlckZ1bmN0aW9uIi8+eG1sWFBhdGhOdW1iZXJGdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhOdW1iZXJGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbnVtYmVyKCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIG51bWJlcihvYmplY3Q/KTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBhcnNlTkNOYW1lIi8+eG1sWFBhdGhQYXJzZU5DTmFtZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aFBhcnNlTkNOYW1lCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBuYW1lc3BhY2Ugbm9uIHF1YWxpZmllZCBuYW1lLiBbTlMgM10gTkNOYW1lIDo6PSAoTGV0dGVyIHwgJ18nKSAoTkNOYW1lQ2hhcikqIFtOUyA0XSBOQ05hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUGFyc2VOYW1lIi8+eG1sWFBhdGhQYXJzZU5hbWUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sWFBhdGhQYXJzZU5hbWUJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIG5hbWUgWzRdIE5hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8ICc6JyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlciBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBvcEJvb2xlYW4iLz54bWxYUGF0aFBvcEJvb2xlYW4gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhQb3BCb29sZWFuCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5Qb3BzIGEgYm9vbGVhbiBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYm9vbGVhbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUG9wRXh0ZXJuYWwiLz54bWxYUGF0aFBvcEV4dGVybmFsICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbFhQYXRoUG9wRXh0ZXJuYWwJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPlBvcHMgYW4gZXh0ZXJuYWwgb2JqZWN0IGZyb20gdGhlIHN0YWNrLCBoYW5kbGluZyBjb252ZXJzaW9uIGlmIG5lZWRlZC4gQ2hlY2sgZXJyb3Igd2l0aCAjeG1sWFBhdGhDaGVja0Vycm9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvYmplY3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBvcE5vZGVTZXQiLz54bWxYUGF0aFBvcE5vZGVTZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhQb3BOb2RlU2V0CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPlBvcHMgYSBub2RlLXNldCBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZS1zZXQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBvcE51bWJlciIvPnhtbFhQYXRoUG9wTnVtYmVyICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCXhtbFhQYXRoUG9wTnVtYmVyCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5Qb3BzIGEgbnVtYmVyIGZyb20gdGhlIHN0YWNrLCBoYW5kbGluZyBjb252ZXJzaW9uIGlmIG5lZWRlZC4gQ2hlY2sgZXJyb3Igd2l0aCAjeG1sWFBhdGhDaGVja0Vycm9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBvcFN0cmluZyIvPnhtbFhQYXRoUG9wU3RyaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFhQYXRoUG9wU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPlBvcHMgYSBzdHJpbmcgZnJvbSB0aGUgc3RhY2ssIGhhbmRsaW5nIGNvbnZlcnNpb24gaWYgbmVlZGVkLiBDaGVjayBlcnJvciB3aXRoICN4bWxYUGF0aENoZWNrRXJyb3IuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbiIvPnhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHBvc2l0aW9uKCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIHBvc2l0aW9uKCkgVGhlIHBvc2l0aW9uIGZ1bmN0aW9uIHJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gdGhlIGNvbnRleHQgbm9kZSBsaXN0LiBUaGUgZmlyc3QgcG9zaXRpb24gaXMgMSwgYW5kIHNvIHRoZSBsYXN0IHBvc2l0aW9uIHdpbGwgYmUgZXF1YWwgdG8gbGFzdCgpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zIi8+eG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucwkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5SZWdpc3RlcnMgYWxsIGRlZmF1bHQgWFBhdGggZnVuY3Rpb25zIGluIHRoaXMgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyRnVuYyIvPnhtbFhQYXRoUmVnaXN0ZXJGdW5jICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoUmVnaXN0ZXJGdW5jCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPiBmKTxici8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyBmdW5jdGlvbi4gSWYgQGYgaXMgTlVMTCBpdCB1bnJlZ2lzdGVycyB0aGUgZnVuY3Rpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb24gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAiLz54bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jTG9va3VwRnVuYyI+eG1sWFBhdGhGdW5jTG9va3VwRnVuYzwvYT4gZiwgPGJyLz4JCQkJCSB2b2lkICogZnVuY0N0eHQpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhbiBleHRlcm5hbCBtZWNoYW5pc20gdG8gZG8gZnVuY3Rpb24gbG9va3VwLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb29rdXAgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bmNDdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9va3VwIGRhdGE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIi8+eG1sWFBhdGhSZWdpc3RlckZ1bmNOUyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aFJlZ2lzdGVyRnVuY05TCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmksIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+IGYpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IGZ1bmN0aW9uLiBJZiBAZiBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzIHRoZSBmdW5jdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uc191cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbiBuYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyTnMiLz54bWxYUGF0aFJlZ2lzdGVyTnMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhSZWdpc3Rlck5zCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSk8YnIvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgbmFtZXNwYWNlLiBJZiBAbnNfdXJpIGlzIE5VTEwgaXQgdW5yZWdpc3RlcnMgdGhlIG5hbWVzcGFjZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBwcmVmaXggY2Fubm90IGJlIE5VTEwgb3IgZW1wdHkgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uc191cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUiLz54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsdWUpPGJyLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IHZhcmlhYmxlIHZhbHVlLiBJZiBAdmFsdWUgaXMgTlVMTCBpdCB1bnJlZ2lzdGVycyB0aGUgdmFyaWFibGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFyaWFibGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YXJpYWJsZSB2YWx1ZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCIvPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvYT4gZiwgPGJyLz4JCQkJCSB2b2lkICogZGF0YSk8YnIvPgorPC9wcmU+PHA+cmVnaXN0ZXIgYW4gZXh0ZXJuYWwgbWVjaGFuaXNtIHRvIGRvIHZhcmlhYmxlIGxvb2t1cDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb29rdXAgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb29rdXAgZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TIi8+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNfdXJpLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbHVlKTxici8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyB2YXJpYWJsZSB2YWx1ZS4gSWYgQHZhbHVlIGlzIE5VTEwgaXQgdW5yZWdpc3RlcnMgdGhlIHZhcmlhYmxlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhcmlhYmxlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zX3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhcmlhYmxlIG5hbWVzcGFjZSBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFyaWFibGUgdmFsdWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAiLz54bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBYUGF0aCBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byByZWdpc3RlcmVkIGZ1bmN0aW9uczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAiLz54bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBYUGF0aCBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byByZWdpc3RlcmVkIHZhcmlhYmxlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwIi8+eG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBYUGF0aCBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byByZWdpc3RlcmVkIHZhcmlhYmxlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJvb3QiLz54bWxYUGF0aFJvb3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUm9vdAkJCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGNvbnRleHQgdG8gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJvdW5kRnVuY3Rpb24iLz54bWxYUGF0aFJvdW5kRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUm91bmRGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgcm91bmQoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgcm91bmQobnVtYmVyKSBUaGUgcm91bmQgZnVuY3Rpb24gcmV0dXJucyB0aGUgbnVtYmVyIHRoYXQgaXMgY2xvc2VzdCB0byB0aGUgYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci4gSWYgdGhlcmUgYXJlIHR3byBzdWNoIG51bWJlcnMsIHRoZW4gdGhlIG9uZSB0aGF0IGlzIGV2ZW4gaXMgcmV0dXJuZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uIi8+eG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHN0YXJ0cy13aXRoKCkgWFBhdGggZnVuY3Rpb24gYm9vbGVhbiBzdGFydHMtd2l0aChzdHJpbmcsIHN0cmluZykgVGhlIHN0YXJ0cy13aXRoIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIHN0YXJ0cyB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nLCBhbmQgb3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoU3RyaW5nRXZhbE51bWJlciIvPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlciAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmRvdWJsZQl4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyLz4KKzwvcHJlPjxwPlszMGFdIEZsb2F0IDo6PSBOdW1iZXIgKCdlJyBEaWdpdHM/KT8gWzMwXSBOdW1iZXIgOjo9IERpZ2l0cyAoJy4nIERpZ2l0cz8pPyB8ICcuJyBEaWdpdHMgWzMxXSBEaWdpdHMgOjo9IFswLTldKyBDb21waWxlIGEgTnVtYmVyIGluIHRoZSBzdHJpbmcgSW4gY29tcGxlbWVudCBvZiB0aGUgTnVtYmVyIGV4cHJlc3Npb24sIHRoaXMgZnVuY3Rpb24gYWxzbyBoYW5kbGVzIG5lZ2F0aXZlIHZhbHVlcyA6ICctJyBOdW1iZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgc3RyaW5nIHRvIHNjYW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb3VibGUgdmFsdWUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhTdHJpbmdGdW5jdGlvbiIvPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoU3RyaW5nRnVuY3Rpb24JCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHN0cmluZygpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBzdHJpbmcob2JqZWN0PykgVGhlIHN0cmluZyBmdW5jdGlvbiBjb252ZXJ0cyBhbiBvYmplY3QgdG8gYSBzdHJpbmcgYXMgZm9sbG93czogLSBBIG5vZGUtc2V0IGlzIGNvbnZlcnRlZCB0byBhIHN0cmluZyBieSByZXR1cm5pbmcgdGhlIHZhbHVlIG9mIHRoZSBub2RlIGluIHRoZSBub2RlLXNldCB0aGF0IGlzIGZpcnN0IGluIGRvY3VtZW50IG9yZGVyLiBJZiB0aGUgbm9kZS1zZXQgaXMgZW1wdHksIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC4gLSBBIG51bWJlciBpcyBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgYXMgZm9sbG93cyArIE5hTiBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyBOYU4gKyBwb3NpdGl2ZSB6ZXJvIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIDAgKyBuZWdhdGl2ZSB6ZXJvIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIDAgKyBwb3NpdGl2ZSBpbmZpbml0eSBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyBJbmZpbml0eSArIG5lZ2F0aXZlIGluZmluaXR5IGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIC1JbmZpbml0eSArIGlmIHRoZSBudW1iZXIgaXMgYW4gaW50ZWdlciwgdGhlIG51bWJlciBpcyByZXByZXNlbnRlZCBpbiBkZWNpbWFsIGZvcm0gYXMgYSBOdW1iZXIgd2l0aCBubyBkZWNpbWFsIHBvaW50IGFuZCBubyBsZWFkaW5nIHplcm9zLCBwcmVjZWRlZCBieSBhIG1pbnVzIHNpZ24gKC0pIGlmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUgKyBvdGhlcndpc2UsIHRoZSBudW1iZXIgaXMgcmVwcmVzZW50ZWQgaW4gZGVjaW1hbCBmb3JtIGFzIGEgTnVtYmVyIGluY2x1ZGluZyBhIGRlY2ltYWwgcG9pbnQgd2l0aCBhdCBsZWFzdCBvbmUgZGlnaXQgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGFuZCBhdCBsZWFzdCBvbmUgZGlnaXQgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIHByZWNlZGVkIGJ5IGEgbWludXMgc2lnbiAoLSkgaWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZTsgdGhlcmUgbXVzdCBiZSBubyBsZWFkaW5nIHplcm9zIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludCBhcGFydCBwb3NzaWJseSBmcm9tIHRoZSBvbmUgcmVxdWlyZWQgZGlnaXQgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50OyBiZXlvbmQgdGhlIG9uZSByZXF1aXJlZCBkaWdpdCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCB0aGVyZSBtdXN0IGJlIGFzIG1hbnksIGJ1dCBvbmx5IGFzIG1hbnksIG1vcmUgZGlnaXRzIGFzIGFyZSBuZWVkZWQgdG8gdW5pcXVlbHkgZGlzdGluZ3Vpc2ggdGhlIG51bWJlciBmcm9tIGFsbCBvdGhlciBJRUVFIDc1NCBudW1lcmljIHZhbHVlcy4gLSBUaGUgYm9vbGVhbiBmYWxzZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyBmYWxzZS4gVGhlIGJvb2xlYW4gdHJ1ZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyB0cnVlLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYSBub2RlLXNldCB3aXRoIHRoZSBjb250ZXh0IG5vZGUgYXMgaXRzIG9ubHkgbWVtYmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIi8+eG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBzdHJpbmctbGVuZ3RoKCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIHN0cmluZy1sZW5ndGgoc3RyaW5nPykgVGhlIHN0cmluZy1sZW5ndGggcmV0dXJucyB0aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gaW4gdGhlIHN0cmluZyAoc2VlIFszLjYgU3RyaW5nc10pLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gdGhlIGNvbnRleHQgbm9kZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcsIGluIG90aGVyIHdvcmRzIHRoZSB2YWx1ZSBvZiB0aGUgY29udGV4dCBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFN1YlZhbHVlcyIvPnhtbFhQYXRoU3ViVmFsdWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFN1YlZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBzdWJ0cmFjdGlvbiBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0czogVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24iLz54bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBzdWJzdHJpbmctYWZ0ZXIoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgc3Vic3RyaW5nLWFmdGVyKHN0cmluZywgc3RyaW5nKSBUaGUgc3Vic3RyaW5nLWFmdGVyIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1YnN0cmluZyBvZiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIHRoYXQgZm9sbG93cyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZyBpbiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nLCBvciB0aGUgZW1wdHkgc3RyaW5naSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIGRvZXMgbm90IGNvbnRhaW4gdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcuIEZvciBleGFtcGxlLCBzdWJzdHJpbmctYWZ0ZXIoIjE5OTkvMDQvMDEiLCIvIikgcmV0dXJucyAwNC8wMSwgYW5kIHN1YnN0cmluZy1hZnRlcigiMTk5OS8wNC8wMSIsIjE5IikgcmV0dXJucyA5OS8wNC8wMS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbiIvPnhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24gKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgc3Vic3RyaW5nLWJlZm9yZSgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBzdWJzdHJpbmctYmVmb3JlKHN0cmluZywgc3RyaW5nKSBUaGUgc3Vic3RyaW5nLWJlZm9yZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdWJzdHJpbmcgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyB0aGF0IHByZWNlZGVzIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nIGluIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcsIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBkb2VzIG5vdCBjb250YWluIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3Vic3RyaW5nLWJlZm9yZSgiMTk5OS8wNC8wMSIsIi8iKSByZXR1cm5zIDE5OTkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iLz54bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHN1YnN0cmluZygpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBzdWJzdHJpbmcoc3RyaW5nLCBudW1iZXIsIG51bWJlcj8pIFRoZSBzdWJzdHJpbmcgZnVuY3Rpb24gcmV0dXJucyB0aGUgc3Vic3RyaW5nIG9mIHRoZSBmaXJzdCBhcmd1bWVudCBzdGFydGluZyBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGluIHRoZSBzZWNvbmQgYXJndW1lbnQgd2l0aCBsZW5ndGggc3BlY2lmaWVkIGluIHRoZSB0aGlyZCBhcmd1bWVudC4gRm9yIGV4YW1wbGUsIHN1YnN0cmluZygiMTIzNDUiLDIsMykgcmV0dXJucyAiMjM0Ii4gSWYgdGhlIHRoaXJkIGFyZ3VtZW50IGlzIG5vdCBzcGVjaWZpZWQsIGl0IHJldHVybnMgdGhlIHN1YnN0cmluZyBzdGFydGluZyBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGluIHRoZSBzZWNvbmQgYXJndW1lbnQgYW5kIGNvbnRpbnVpbmcgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3Vic3RyaW5nKCIxMjM0NSIsMikgcmV0dXJucyAiMjM0NSIuIE1vcmUgcHJlY2lzZWx5LCBlYWNoIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIChzZWUgWzMuNiBTdHJpbmdzXSkgaXMgY29uc2lkZXJlZCB0byBoYXZlIGEgbnVtZXJpYyBwb3NpdGlvbjogdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgMSwgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWNvbmQgY2hhcmFjdGVyIGlzIDIgYW5kIHNvIG9uLiBUaGUgcmV0dXJuZWQgc3Vic3RyaW5nIGNvbnRhaW5zIHRob3NlIDxhIGhyZWY9ImxpYnhtbDItU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gZm9yIHdoaWNoIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2Vjb25kIGFyZ3VtZW50IGFuZCwgaWYgdGhlIHRoaXJkIGFyZ3VtZW50IGlzIHNwZWNpZmllZCwgbGVzcyB0aGFuIHRoZSBzdW0gb2YgdGhlIHNlY29uZCBhbmQgdGhpcmQgYXJndW1lbnRzOyB0aGUgY29tcGFyaXNvbnMgYW5kIGFkZGl0aW9uIHVzZWQgZm9yIHRoZSBhYm92ZSBmb2xsb3cgdGhlIHN0YW5kYXJkIElFRUUgNzU0IHJ1bGVzLiBUaHVzOiAtIHN1YnN0cmluZygiMTIzNDUiLCAxLjUsIDIuNikgcmV0dXJucyAiMjM0IiAtIHN1YnN0cmluZygiMTIzNDUiLCAwLCAzKSByZXR1cm5zICIxMiIgLSBzdWJzdHJpbmcoIjEyMzQ1IiwgMCBkaXYgMCwgMykgcmV0dXJucyAiIiAtIHN1YnN0cmluZygiMTIzNDUiLCAxLCAwIGRpdiAwKSByZXR1cm5zICIiIC0gc3Vic3RyaW5nKCIxMjM0NSIsIC00MiwgMSBkaXYgMCkgcmV0dXJucyAiMTIzNDUiIC0gc3Vic3RyaW5nKCIxMjM0NSIsIC0xIGRpdiAwLCAxIGRpdiAwKSByZXR1cm5zICIiPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoU3VtRnVuY3Rpb24iLz54bWxYUGF0aFN1bUZ1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFN1bUZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBzdW0oKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgc3VtKG5vZGUtc2V0KSBUaGUgc3VtIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1bSBvZiB0aGUgdmFsdWVzIG9mIHRoZSBub2RlcyBpbiB0aGUgYXJndW1lbnQgbm9kZS1zZXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoVHJhaWxpbmciLz54bWxYUGF0aFRyYWlsaW5nICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CXhtbFhQYXRoVHJhaWxpbmcJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik8YnIvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIHRyYWlsaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDp0cmFpbGluZyAobm9kZS1zZXQsIG5vZGUtc2V0KSBAbm9kZXMxIGFuZCBAbm9kZXMyIGFyZSBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQgaXMgY2FsbGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXMxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBpbiBAbm9kZXMxIHRoYXQgZm9sbG93IHRoZSBmaXJzdCBub2RlIGluIEBub2RlczIgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlczEgaWYgQG5vZGVzMiBpcyBOVUxMIG9yIGVtcHR5IG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlczEgZG9lc24ndCBjb250YWluIEBub2RlczI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFRyYWlsaW5nU29ydGVkIi8+eG1sWFBhdGhUcmFpbGluZ1NvcnRlZCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aFRyYWlsaW5nU29ydGVkCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyB0cmFpbGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGVzIGluIEBub2RlczEgdGhhdCBmb2xsb3cgdGhlIGZpcnN0IG5vZGUgaW4gQG5vZGVzMiBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzMSBpZiBAbm9kZXMyIGlzIE5VTEwgb3IgZW1wdHkgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzMSBkb2Vzbid0IGNvbnRhaW4gQG5vZGVzMjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24iLz54bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkgaW50IG5hcmdzKTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHRyYW5zbGF0ZSgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyB0cmFuc2xhdGUoc3RyaW5nLCBzdHJpbmcsIHN0cmluZykgVGhlIHRyYW5zbGF0ZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgd2l0aCBvY2N1cnJlbmNlcyBvZiA8YSBocmVmPSJsaWJ4bWwyLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGluIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nIHJlcGxhY2VkIGJ5IHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gdGhlIHRoaXJkIGFyZ3VtZW50IHN0cmluZy4gRm9yIGV4YW1wbGUsIHRyYW5zbGF0ZSgiYmFyIiwiYWJjIiwiQUJDIikgcmV0dXJucyB0aGUgc3RyaW5nIEJBci4gSWYgdGhlcmUgaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcgd2l0aCBubyBjaGFyYWN0ZXIgYXQgYSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZSB0aGlyZCBhcmd1bWVudCBzdHJpbmcgKGJlY2F1c2UgdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcgaXMgbG9uZ2VyIHRoYW4gdGhlIHRoaXJkIGFyZ3VtZW50IHN0cmluZyksIHRoZW4gb2NjdXJyZW5jZXMgb2YgdGhhdCBjaGFyYWN0ZXIgaW4gdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBhcmUgcmVtb3ZlZC4gRm9yIGV4YW1wbGUsIHRyYW5zbGF0ZSgiLS1hYWEtLSIsImFiYy0iLCJBQkMiKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFRydWVGdW5jdGlvbiIvPnhtbFhQYXRoVHJ1ZUZ1bmN0aW9uICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFRydWVGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgdHJ1ZSgpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gdHJ1ZSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoVmFsdWVGbGlwU2lnbiIvPnhtbFhQYXRoVmFsdWVGbGlwU2lnbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhWYWx1ZUZsaXBTaWduCQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxici8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHVuYXJ5IC0gb3BlcmF0aW9uIG9uIGFuIFhQYXRoIG9iamVjdCBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmIGJ5IGNhbGxpbmcgdGhlIG51bWJlciBmdW5jdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoVmFyaWFibGVMb29rdXAiLz54bWxYUGF0aFZhcmlhYmxlTG9va3VwICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhWYXJpYWJsZUxvb2t1cAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIvPgorPC9wcmU+PHA+U2VhcmNoIGluIHRoZSBWYXJpYWJsZSBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIHZhcmlhYmxlIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YXJpYWJsZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvcHkgb2YgdGhlIHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TIi8+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxici8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmkpPGJyLz4KKzwvcHJlPjxwPlNlYXJjaCBpbiB0aGUgVmFyaWFibGUgYXJyYXkgb2YgdGhlIGNvbnRleHQgZm9yIHRoZSBnaXZlbiB2YXJpYWJsZSB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFyaWFibGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnNfdXJpPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFyaWFibGUgbmFtZXNwYWNlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGEgY29weSBvZiB0aGUgdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFdyYXBDU3RyaW5nIi8+eG1sWFBhdGhXcmFwQ1N0cmluZyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoV3JhcENTdHJpbmcJKGNoYXIgKiB2YWwpPGJyLz4KKzwvcHJlPjxwPldyYXBzIGEgc3RyaW5nIGludG8gYW4gWFBhdGggb2JqZWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhciAqIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhXcmFwRXh0ZXJuYWwiLz54bWxYUGF0aFdyYXBFeHRlcm5hbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoV3JhcEV4dGVybmFsCSh2b2lkICogdmFsKTxici8+Cis8L3ByZT48cD5XcmFwcyB0aGUgQHZhbCBkYXRhIGludG8gYW4gWFBhdGggb2JqZWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFBhdGhXcmFwTm9kZVNldCIvPnhtbFhQYXRoV3JhcE5vZGVTZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aFdyYXBOb2RlU2V0CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdmFsKTxici8+Cis8L3ByZT48cD5XcmFwIHRoZSBOb2Rlc2V0IEB2YWwgaW4gYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIE5vZGVQdHIgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFdyYXBTdHJpbmciLz54bWxYUGF0aFdyYXBTdHJpbmcgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aFdyYXBTdHJpbmcJKDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpPGJyLz4KKzwvcHJlPjxwPldyYXBzIHRoZSBAdmFsIHN0cmluZyBpbnRvIGFuIFhQYXRoIG9iamVjdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQYXRoZXJyb3IiLz54bWxYUGF0aGVycm9yICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aGVycm9yCQkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyLz4JCQkJCSBpbnQgbGluZSwgPGJyLz4JCQkJCSBpbnQgbm8pPGJyLz4KKzwvcHJlPjxwPkZvcm1hdHMgYW4gZXJyb3IgbWVzc2FnZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ubzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVycm9yIG51bWJlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhwb2ludGVyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIteHBvaW50ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDdlZWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9saWJ4bWwyLXhwb2ludGVyLmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKyAgICA8dGl0bGU+eHBvaW50ZXI6IEFQSSB0byBoYW5kbGUgWE1MIFBvaW50ZXJzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkxpYnhtbDIgZGV2aGVscCBzdHlsZXNoZWV0Ii8+CisgICAgPGxpbmsgcmVsPSJzdGFydCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9ImxpYnhtbDIgUmVmZXJlbmNlIE1hbnVhbCIvPgorICAgIDxsaW5rIHJlbD0idXAiIGhyZWY9ImdlbmVyYWwuaHRtbCIgdGl0bGU9IkFQSSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgIDxsaW5rIHJlbD0iY2hhcHRlciIgaHJlZj0iZ2VuZXJhbC5odG1sIiB0aXRsZT0iQVBJIi8+CisgIDwvaGVhZD4KKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorICAgIDx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgICAgPHRyIHZhbGlnbj0ibWlkZGxlIj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZ2VuZXJhbC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIi8+CisgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj5saWJ4bWwyIFJlZmVyZW5jZSBNYW51YWw8L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxoMj4KKyAgICAgIDxzcGFuIGNsYXNzPSJyZWZlbnRyeXRpdGxlIj54cG9pbnRlcjwvc3Bhbj4KKyAgICA8L2gyPgorICAgIDxwPnhwb2ludGVyIC0gQVBJIHRvIGhhbmRsZSBYTUwgUG9pbnRlcnM8L3A+CisgICAgPHA+QVBJIHRvIGhhbmRsZSBYTUwgUG9pbnRlcnMgQmFzZSBpbXBsZW1lbnRhdGlvbiB3YXMgbWFkZSBhY2NvcmRpbmdseSB0byBXM0MgQ2FuZGlkYXRlIFJlY29tbWVuZGF0aW9uIDcgSnVuZSAyMDAwPC9wPgorICAgIDxwPkF1dGhvcihzKTogRGFuaWVsIFZlaWxsYXJkIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+CisgICAgICA8aDI+U3lub3BzaXM8L2gyPgorICAgICAgPHByZSBjbGFzcz0ic3lub3BzaXMiPnR5cGVkZWYgc3RydWN0IF94bWxMb2NhdGlvblNldCA8YSBocmVmPSIjeG1sTG9jYXRpb25TZXQiPnhtbExvY2F0aW9uU2V0PC9hPjsKK3R5cGVkZWYgPGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0Ij54bWxMb2NhdGlvblNldDwvYT4gKiA8YSBocmVmPSIjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPjsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3UmFuZ2UiPnhtbFhQdHJOZXdSYW5nZTwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHN0YXJ0LCA8YnIvPgkJCQkJIGludCBzdGFydGluZGV4LCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCwgPGJyLz4JCQkJCSBpbnQgZW5kaW5kZXgpOwordm9pZAk8YSBocmVmPSIjeG1sWFB0ckZyZWVMb2NhdGlvblNldCI+eG1sWFB0ckZyZWVMb2NhdGlvblNldDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiBvYmopOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQdHJXcmFwTG9jYXRpb25TZXQiPnhtbFhQdHJXcmFwTG9jYXRpb25TZXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiB2YWwpOworPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFhQdHJCdWlsZE5vZGVMaXN0Ij54bWxYUHRyQnVpbGROb2RlTGlzdDwvYT4JKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9iaik7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ckV2YWwiPnhtbFhQdHJFdmFsPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ck5ld1JhbmdlTm9kZXMiPnhtbFhQdHJOZXdSYW5nZU5vZGVzPC9hPgkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQsIDxici8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUHRyTG9jYXRpb25TZXRBZGQiPnhtbFhQdHJMb2NhdGlvblNldEFkZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQdHJSYW5nZVRvRnVuY3Rpb24iPnhtbFhQdHJSYW5nZVRvRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIvPgkJCQkJIGludCBuYXJncyk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIj54bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ck5ld1JhbmdlUG9pbnRzIj54bWxYUHRyTmV3UmFuZ2VQb2ludHM8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gZW5kKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0Ij54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0PC9hPgkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHNldCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIj54bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlIj54bWxYUHRyTG9jYXRpb25TZXRDcmVhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QiPnhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3Q8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGVuZCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3Q29udGV4dCI+eG1sWFB0ck5ld0NvbnRleHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBoZXJlLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBvcmlnaW4pOwordm9pZAk8YSBocmVmPSIjeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlIj54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgaW50IHZhbCk7Cis8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50Ij54bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGVuZCk7Cit2b2lkCTxhIGhyZWY9IiN4bWxYUHRyTG9jYXRpb25TZXREZWwiPnhtbFhQdHJMb2NhdGlvblNldERlbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiBjdXIsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTsKKzxhIGhyZWY9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiB2YWwxLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiB2YWwyKTsKK3ZvaWQJPGEgaHJlZj0iI3htbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUiPnhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpOworPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIj54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlczwvYT4JKDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHN0YXJ0LCA8YnIvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZW5kKTsKKzwvcHJlPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+CisgICAgICA8aDI+RGV0YWlsczwvaDI+CisgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMb2NhdGlvblNldCI+U3RydWN0dXJlIDwvYT54bWxMb2NhdGlvblNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnN0cnVjdCBfeG1sTG9jYXRpb25TZXQgeworICAgIGludAlsb2NOcgk6IG51bWJlciBvZiBsb2NhdGlvbnMgaW4gdGhlIHNldAorICAgIGludAlsb2NNYXgJOiBzaXplIG9mIHRoZSBhcnJheSBhcyBhbGxvY2F0ZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiAqCWxvY1RhYgk6IGFycmF5IG9mIGxvY2F0aW9ucworfSB4bWxMb2NhdGlvblNldDsKKzwvcHJlPjxwLz4KKzwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxMb2NhdGlvblNldFB0ciI+VHlwZWRlZiA8L2E+eG1sTG9jYXRpb25TZXRQdHI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXQiPnhtbExvY2F0aW9uU2V0PC9hPiAqIHhtbExvY2F0aW9uU2V0UHRyOworPC9wcmU+PHAvPgorPC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJCdWlsZE5vZGVMaXN0Ii8+eG1sWFB0ckJ1aWxkTm9kZUxpc3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUHRyQnVpbGROb2RlTGlzdAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2JqKTxici8+Cis8L3ByZT48cD5CdWlsZCBhIG5vZGUgbGlzdCB0cmVlIGNvcHkgb2YgdGhlIFhQb2ludGVyIHJlc3VsdC4gVGhpcyB3aWxsIGRyb3AgQXR0cmlidXRlcyBhbmQgTmFtZXNwYWNlIGRlY2xhcmF0aW9ucy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9iajwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQb2ludGVyIHJlc3VsdCBmcm9tIHRoZSBldmFsdWF0aW9uLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbGlzdCBvciBOVUxMLiB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBub2RlIHRyZWUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFB0ckV2YWwiLz54bWxYUHRyRXZhbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJFdmFsCShjb25zdCA8YSBocmVmPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4KTxici8+Cis8L3ByZT48cD5FdmFsdWF0ZSB0aGUgWFBhdGggTG9jYXRpb24gUGF0aCBpbiB0aGUgZ2l2ZW4gY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQb2ludGVyIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQb2ludGVyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiByZXN1bHRpbmcgZnJvbSB0aGUgZXZhbHVhdGlvbiBvciBOVUxMLiB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSIvPnhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIvPgorPC9wcmU+PHA+WzhdIFByZWRpY2F0ZSA6Oj0gJ1snIFByZWRpY2F0ZUV4cHIgJ10nIFs5XSBQcmVkaWNhdGVFeHByIDo6PSBFeHByIEV2YWx1YXRlIGEgcHJlZGljYXRlIGFzIGluIHhtbFhQYXRoRXZhbFByZWRpY2F0ZSgpIGJ1dCBmb3IgYSBMb2NhdGlvbiBTZXQgaW5zdGVhZCBvZiBhIG5vZGUgc2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBvaW50ZXIgUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUHRyRnJlZUxvY2F0aW9uU2V0Ii8+eG1sWFB0ckZyZWVMb2NhdGlvblNldCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFB0ckZyZWVMb2NhdGlvblNldAkJKDxhIGhyZWY9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+IG9iaik8YnIvPgorPC9wcmU+PHA+RnJlZSB0aGUgTG9jYXRpb25TZXQgY29tcG91bmQgKG5vdCB0aGUgYWN0dWFsIHJhbmdlcyAhKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9iajwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+IHRvIGZyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUHRyTG9jYXRpb25TZXRBZGQiLz54bWxYUHRyTG9jYXRpb25TZXRBZGQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQdHJMb2NhdGlvblNldEFkZAkJKDxhIGhyZWY9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+IGN1ciwgPGJyLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPmFkZCBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB0byBhbiBleGlzdGluZyBMb2NhdGlvblNldCBJZiB0aGUgbG9jYXRpb24gYWxyZWFkeSBleGlzdCBpbiB0aGUgc2V0IEB2YWwgaXMgZnJlZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIHJhbmdlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJMb2NhdGlvblNldENyZWF0ZSIvPnhtbFhQdHJMb2NhdGlvblNldENyZWF0ZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+CXhtbFhQdHJMb2NhdGlvblNldENyZWF0ZQkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gb2YgdHlwZSBkb3VibGUgYW5kIG9mIHZhbHVlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW5pdGlhbCB4bWxYUGF0aE9iamVjdFB0ciwgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJMb2NhdGlvblNldERlbCIvPnhtbFhQdHJMb2NhdGlvblNldERlbCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFB0ckxvY2F0aW9uU2V0RGVsCQkoPGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8YnIvPgorPC9wcmU+PHA+UmVtb3ZlcyBhbiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBmcm9tIGFuIGV4aXN0aW5nIExvY2F0aW9uU2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIHJhbmdlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJMb2NhdGlvblNldE1lcmdlIi8+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPgl4bWxYUHRyTG9jYXRpb25TZXRNZXJnZQkoPGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gdmFsMSwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gdmFsMik8YnIvPgorPC9wcmU+PHA+TWVyZ2VzIHR3byByYW5nZXNldHMsIGFsbCByYW5nZXMgZnJvbSBAdmFsMiBhcmUgYWRkZWQgdG8gQHZhbDE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBMb2NhdGlvblNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBMb2NhdGlvblNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dmFsMSBvbmNlIGV4dGVuZGVkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUiLz54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQdHJMb2NhdGlvblNldFJlbW92ZQkoPGEgaHJlZj0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gY3VyLCA8YnIvPgkJCQkJIGludCB2YWwpPGJyLz4KKzwvcHJlPjxwPlJlbW92ZXMgYW4gZW50cnkgZnJvbSBhbiBleGlzdGluZyBMb2NhdGlvblNldCBsaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCByYW5nZSBzZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGV4IHRvIHJlbW92ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZSIvPnhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIHJhbmdlIHVzaW5nIGEgc2luZ2xlIG5vZGVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJOZXdDb250ZXh0Ii8+eG1sWFB0ck5ld0NvbnRleHQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+CXhtbFhQdHJOZXdDb250ZXh0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBoZXJlLCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBvcmlnaW4pPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBYUG9pbnRlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhlcmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRoYXQgZGlyZWN0bHkgY29udGFpbnMgdGhlIFhQb2ludGVyIGJlaW5nIGV2YWx1YXRlZCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcmlnaW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IGZyb20gd2hpY2ggYSB1c2VyIG9yIHByb2dyYW0gaW5pdGlhdGVkIHRyYXZlcnNhbCBvZiB0aGUgbGluaywgb3IgTlVMTC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+IGp1c3QgYWxsb2NhdGVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQiLz54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldAkoPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHNldCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgTG9jYXRpb25TZXQgYW5kIGluaXRpYWxpemUgaXQgd2l0aCBhbGwgdGhlIG5vZGVzIGZyb20gQHNldDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMiLz54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgTG9jYXRpb25TZXQgYW5kIGluaXRpYWxpemUgaXQgd2l0aCB0aGUgc2luZ2xlIHJhbmdlIG1hZGUgb2YgdGhlIHR3byBub2RlcyBAc3RhcnQgYW5kIEBlbmQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnQgTm9kZVB0ciB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5kIE5vZGVQdHIgdmFsdWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJOZXdSYW5nZSIvPnhtbFhQdHJOZXdSYW5nZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJOZXdSYW5nZQkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQsIDxici8+CQkJCQkgaW50IHN0YXJ0aW5kZXgsIDxici8+CQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZW5kLCA8YnIvPgkJCQkJIGludCBlbmRpbmRleCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgcmFuZ2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RhcnRpbmRleDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0IGluZGV4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmRpbmcgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZGluZGV4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5kaW5nIGluZGV4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCIvPnhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0CSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGVuZCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgcmFuZ2UgZnJvbSBhIG5vdCB0byBhbiBvYmplY3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5kaW5nIG9iamVjdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+CisgICAgICAgIDxoci8+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9InhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludCIvPnhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludAkoPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQsIDxici8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBlbmQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIHJhbmdlIGZyb20gYSBub2RlIHRvIGEgcG9pbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5kaW5nIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld1JhbmdlTm9kZXMiLz54bWxYUHRyTmV3UmFuZ2VOb2RlcyAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJOZXdSYW5nZU5vZGVzCSg8YSBocmVmPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZW5kKTxici8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSByYW5nZSB1c2luZyAyIG5vZGVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuZGluZyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIi8+eG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlCSg8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBzdGFydCwgPGJyLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCk8YnIvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgcmFuZ2UgZnJvbSBhIHBvaW50IHRvIGEgbm9kZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RhcnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5kaW5nIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUHRyTmV3UmFuZ2VQb2ludHMiLz54bWxYUHRyTmV3UmFuZ2VQb2ludHMgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyTmV3UmFuZ2VQb2ludHMJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHN0YXJ0LCA8YnIvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBlbmQpPGJyLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIHJhbmdlIHVzaW5nIDIgUG9pbnRzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmRpbmcgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PgorICAgICAgICA8aHIvPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJ4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uIi8+eG1sWFB0clJhbmdlVG9GdW5jdGlvbiAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFB0clJhbmdlVG9GdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyLz4JCQkJCSBpbnQgbmFyZ3MpPGJyLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgcmFuZ2UtdG8oKSBYUG9pbnRlciBmdW5jdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmdzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0ieG1sWFB0cldyYXBMb2NhdGlvblNldCIvPnhtbFhQdHJXcmFwTG9jYXRpb25TZXQgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyV3JhcExvY2F0aW9uU2V0CSg8YSBocmVmPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiB2YWwpPGJyLz4KKzwvcHJlPjxwPldyYXAgdGhlIExvY2F0aW9uU2V0IEB2YWwgaW4gYSBuZXcgPGEgaHJlZj0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIExvY2F0aW9uU2V0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj4KKyAgICAgICAgPGhyLz4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIuZGV2aGVscCBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvbGlieG1sMi5kZXZoZWxwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNjMyYjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL2xpYnhtbDIuZGV2aGVscApAQCAtMCwwICsxLDM1MjkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Ym9vayB4bWxucz0iaHR0cDovL3d3dy5kZXZoZWxwLm5ldC9ib29rIiB0aXRsZT0ibGlieG1sMiBSZWZlcmVuY2UgTWFudWFsIiBsaW5rPSJpbmRleC5odG1sIiBhdXRob3I9IiIgbmFtZT0ibGlieG1sMiI+CisgIDxjaGFwdGVycz4KKyAgICA8c3ViIG5hbWU9IkFQSSIgbGluaz0iZ2VuZXJhbC5odG1sIj4KKyAgICAgIDxzdWIgbmFtZT0iRE9DQnBhcnNlciIgbGluaz0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iSFRNTHBhcnNlciIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iSFRNTHRyZWUiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJTQVgiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iU0FYMiIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iYzE0biIgbGluaz0ibGlieG1sMi1jMTRuLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iY2F0YWxvZyIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iY2h2YWxpZCIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iZGVidWdYTUwiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJkaWN0IiBsaW5rPSJsaWJ4bWwyLWRpY3QuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJlbmNvZGluZyIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9ImVudGl0aWVzIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iZ2xvYmFscyIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0iaGFzaCIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ibGlzdCIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ibmFub2Z0cCIgbGluaz0ibGlieG1sMi1uYW5vZnRwLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ibmFub2h0dHAiIGxpbms9ImxpYnhtbDItbmFub2h0dHAuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJwYXJzZXIiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0icGFyc2VySW50ZXJuYWxzIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InBhdHRlcm4iIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InJlbGF4bmciIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InNjaGVtYXNJbnRlcm5hbHMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InNjaGVtYXRyb24iIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InRocmVhZHMiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InRyZWUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InVyaSIgbGluaz0ibGlieG1sMi11cmkuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ2YWxpZCIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InhpbmNsdWRlIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ieGxpbmsiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4bWxJTyIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InhtbGF1dG9tYXRhIiBsaW5rPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ieG1sZXJyb3IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4bWxleHBvcnRzIiBsaW5rPSJsaWJ4bWwyLXhtbGV4cG9ydHMuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4bWxtZW1vcnkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ieG1sbW9kdWxlIiBsaW5rPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InhtbHJlYWRlciIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4bWxyZWdleHAiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ieG1sc2F2ZSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ieG1sc2NoZW1hcyIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ieG1sc2NoZW1hc3R5cGVzIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9InhtbHN0cmluZyIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4bWx1bmljb2RlIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4bWx2ZXJzaW9uIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4bWx3cml0ZXIiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwiLz4KKyAgICAgIDxzdWIgbmFtZT0ieHBhdGgiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCIvPgorICAgICAgPHN1YiBuYW1lPSJ4cGF0aEludGVybmFscyIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sIi8+CisgICAgICA8c3ViIG5hbWU9Inhwb2ludGVyIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwiLz4KKyAgICA8L3N1Yj4KKyAgPC9jaGFwdGVycz4KKyAgPGZ1bmN0aW9ucz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iQVRUUklCVVRFX1VOVVNFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjQVRUUklCVVRFX1VOVVNFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJCQURfQ0FTVCIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCNCQURfQ0FTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJCQVNFX0JVRkZFUl9TSVpFIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNCQVNFX0JVRkZFUl9TSVpFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkNBU1RfVE9fQk9PTEVBTiIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI0NBU1RfVE9fQk9PTEVBTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJDQVNUX1RPX05VTUJFUiIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI0NBU1RfVE9fTlVNQkVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkNBU1RfVE9fU1RSSU5HIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0FTVF9UT19TVFJJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iQ0hFQ0tfQVJJVFkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCNDSEVDS19BUklUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJDSEVDS19FUlJPUiIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI0NIRUNLX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkNIRUNLX0VSUk9SMCIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI0NIRUNLX0VSUk9SMCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJDSEVDS19UWVBFIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjQ0hFQ0tfVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJDSEVDS19UWVBFMCIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI0NIRUNLX1RZUEUwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkRFQlVHX01FTU9SWSIgbGluaz0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCNERUJVR19NRU1PUlkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iREVCVUdfTUVNT1JZX0xPQ0FUSU9OIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNERUJVR19NRU1PUllfTE9DQVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSFRNTF9DT01NRU5UX05PREUiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNIVE1MX0NPTU1FTlRfTk9ERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJIVE1MX0VOVElUWV9SRUZfTk9ERSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI0hUTUxfRU5USVRZX1JFRl9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkhUTUxfUElfTk9ERSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI0hUTUxfUElfTk9ERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJIVE1MX1BSRVNFUlZFX05PREUiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNIVE1MX1BSRVNFUlZFX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSFRNTF9URVhUX05PREUiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNIVE1MX1RFWFRfTk9ERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJJTlBVVF9DSFVOSyIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJTlBVVF9DSFVOSyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJJU19BU0NJSV9ESUdJVCIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19BU0NJSV9ESUdJVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJJU19BU0NJSV9MRVRURVIiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQVNDSUlfTEVUVEVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IklTX0JBU0VDSEFSIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX0JBU0VDSEFSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IklTX0JMQU5LIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX0JMQU5LIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IklTX0JMQU5LX0NIIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX0JMQU5LX0NIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IklTX0JZVEVfQ0hBUiIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CWVRFX0NIQVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfQ0hBUiIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IklTX0NIQVJfQ0giIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ0hBUl9DSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJJU19DT01CSU5JTkciIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfQ09NQklOSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IklTX0NPTUJJTklOR19DSCIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DT01CSU5JTkdfQ0giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfRElHSVQiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfRElHSVRfQ0giIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVRfQ0giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfRVhURU5ERVIiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfRVhURU5ERVJfQ0giIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRVhURU5ERVJfQ0giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfSURFT0dSQVBISUMiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfSURFT0dSQVBISUMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfTEVUVEVSIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX0xFVFRFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJJU19MRVRURVJfQ0giIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfTEVUVEVSX0NIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IklTX1BVQklEQ0hBUiIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19QVUJJRENIQVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSVNfUFVCSURDSEFSX0NIIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI0lTX1BVQklEQ0hBUl9DSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfQVRUUl9BTExPQ19TSVpFIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfQVRUUl9BTExPQ19TSVpFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9BVFRSX0ZPUk1BVCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0FUVFJfRk9STUFUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9BVVRPTUFUQV9FTkFCTEVEIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfQzE0Tl9FTkFCTEVEIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfQzE0Tl9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9DQVRBTE9HX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9DQVRBTE9HX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX0RFQlVHX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9ERUJVR19FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9ERUJVR19SVU5USU1FIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfREVCVUdfUlVOVElNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfRExMX0lNUE9SVCIgbGluaz0ibGlieG1sMi14bWxleHBvcnRzLmh0bWwjTElCWE1MX0RMTF9JTVBPUlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX0RPQ0JfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0RPQ0JfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfRE9UVEVEX1ZFUlNJT04iIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9ET1RURURfVkVSU0lPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfRVhQUl9FTkFCTEVEIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfRVhQUl9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9GVFBfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0ZUUF9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9IVE1MX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9IVE1MX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX0hUVFBfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0hUVFBfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfSUNPTlZfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0lDT05WX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9JU084ODU5WF9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9MRUdBQ1lfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX0xFR0FDWV9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9NT0RVTEVTX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9NT0RVTEVTX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX01PRFVMRV9FWFRFTlNJT04iIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9NT0RVTEVfRVhURU5TSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9PVVRQVVRfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX09VVFBVVF9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9QQVRURVJOX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9QQVRURVJOX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX1BVU0hfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1BVU0hfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfUkVBREVSX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9SRUFERVJfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfUkVHRVhQX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9SRUdFWFBfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfU0FYMV9FTkFCTEVEIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfU0FYMV9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9TQ0hFTUFTX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9TQ0hFTUFTX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfVEVTVF9WRVJTSU9OIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVEVTVF9WRVJTSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9USFJFQURfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1RIUkVBRF9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9UUkVFX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9UUkVFX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX1VOSUNPREVfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1VOSUNPREVfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfVkFMSURfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1ZBTElEX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX1ZFUlNJT04iIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9WRVJTSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9WRVJTSU9OX0VYVFJBIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCNMSUJYTUxfVkVSU0lPTl9FWFRSQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfVkVSU0lPTl9TVFJJTkciIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9WRVJTSU9OX1NUUklORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfV1JJVEVSX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9XUklURVJfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1hJTkNMVURFX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX1hQQVRIX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9YUEFUSF9FTkFCTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkxJQlhNTF9YUFRSX0VOQUJMRUQiIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI0xJQlhNTF9YUFRSX0VOQUJMRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTElCWE1MX1pMSUJfRU5BQkxFRCIgbGluaz0ibGlieG1sMi14bWx2ZXJzaW9uLmh0bWwjTElCWE1MX1pMSUJfRU5BQkxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJNT1ZFVE9fRU5EVEFHIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI01PVkVUT19FTkRUQUciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iTU9WRVRPX1NUQVJUVEFHIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI01PVkVUT19TVEFSVFRBRyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJTS0lQX0VPTCIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNTS0lQX0VPTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJXSVRIT1VUX1RSSU8iIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI1dJVEhPVVRfVFJJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJXSVRIX1RSSU8iIGxpbms9ImxpYnhtbDIteG1sdmVyc2lvbi5odG1sI1dJVEhfVFJJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYSU5DTFVERV9GQUxMQkFDSyIgbGluaz0ibGlieG1sMi14aW5jbHVkZS5odG1sI1hJTkNMVURFX0ZBTExCQUNLIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhJTkNMVURFX0hSRUYiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9IUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhJTkNMVURFX05PREUiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhJTkNMVURFX05TIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWElOQ0xVREVfT0xEX05TIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfT0xEX05TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhJTkNMVURFX1BBUlNFIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfUEFSU0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWElOQ0xVREVfUEFSU0VfRU5DT0RJTkciIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9FTkNPRElORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYSU5DTFVERV9QQVJTRV9URVhUIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjWElOQ0xVREVfUEFSU0VfVEVYVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYSU5DTFVERV9QQVJTRV9YTUwiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9YTUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWElOQ0xVREVfUEFSU0VfWFBPSU5URVIiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCNYSU5DTFVERV9QQVJTRV9YUE9JTlRFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxDQUxMIiBsaW5rPSJsaWJ4bWwyLXhtbGV4cG9ydHMuaHRtbCNYTUxDQUxMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTENERUNMIiBsaW5rPSJsaWJ4bWwyLXhtbGV4cG9ydHMuaHRtbCNYTUxDREVDTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxQVUJGVU4iIGxpbms9ImxpYnhtbDIteG1sZXhwb3J0cy5odG1sI1hNTFBVQkZVTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxQVUJWQVIiIGxpbms9ImxpYnhtbDIteG1sZXhwb3J0cy5odG1sI1hNTFBVQlZBUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0FTVF9GUFRSIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCNYTUxfQ0FTVF9GUFRSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DQVRBTE9HU19OQU1FU1BBQ0UiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI1hNTF9DQVRBTE9HU19OQU1FU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NBVEFMT0dfUEkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI1hNTF9DQVRBTE9HX1BJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DT01QTEVURV9BVFRSUyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfQ09NUExFVEVfQVRUUlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NUWFRfRklOSVNIX0RURF8wIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjWE1MX0NUWFRfRklOSVNIX0RURF8wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DVFhUX0ZJTklTSF9EVERfMSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI1hNTF9DVFhUX0ZJTklTSF9EVERfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfREVGQVVMVF9WRVJTSU9OIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9ERUZBVUxUX1ZFUlNJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RFVEVDVF9JRFMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX0RFVEVDVF9JRFMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0dFVF9DT05URU5UIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfR0VUX0NPTlRFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0dFVF9MSU5FIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfR0VUX0xJTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0xPQ0FMX05BTUVTUEFDRSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0xPQ0FMX05BTUVTUEFDRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfTUFYX05BTUVMRU4iIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9OQU1FTEVOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9NQVhfVEVYVF9MRU5HVEgiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjWE1MX01BWF9URVhUX0xFTkdUSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0FYMl9NQUdJQyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfU0FYMl9NQUdJQyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19BTllBVFRSX0xBWCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQU5ZQVRUUl9TS0lQIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1QiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWV9MQVgiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9MQVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQU5ZX1NLSVAiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9TS0lQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWV9TVFJJQ1QiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FOWV9TVFJJQ1QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfRklYRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfRklYRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQVRUUl9OU0RFRkFVTFQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9TVUJTVElUVVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0FCU0VOVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0RFRkFVTFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fRklYRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fRklYRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9SRUYiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0UiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUyIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfUVVBTElGX0FUVFIiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19RVUFMSUZfRUxFTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkUiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfREVGQVVMVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1QiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUyIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfSU5WQUxJRCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTUlYRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfUkVERUZJTkVEIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1QiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfV0lMRENBUkRfQ09NUExFVEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NLSVBfSURTIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9TS0lQX0lEUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU1VCU1RJVFVURV9CT1RIIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI1hNTF9TVUJTVElUVVRFX0JPVEgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NVQlNUSVRVVEVfTk9ORSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TVUJTVElUVVRFX1BFUkVGIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI1hNTF9TVUJTVElUVVRFX1BFUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TVUJTVElUVVRFX1JFRiIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hNTF9JRCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX1hNTF9JRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWE1MX05BTUVTUEFDRSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX1hNTF9OQU1FU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX0NIRUNLTlMiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYTUxfWFBBVEhfQ0hFQ0tOUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfTk9WQVIiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYTUxfWFBBVEhfTk9WQVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBfRVJST1IiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCNYUF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUF9FUlJPUjAiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCNYUF9FUlJPUjAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iX1JFRU5UUkFOVCIgbGluaz0ibGlieG1sMi14bWxleHBvcnRzLmh0bWwjX1JFRU5UUkFOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sRGVmYXVsdFN1YmVsZW1lbnQiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxEZWZhdWx0U3ViZWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFJlcXVpcmVkQXR0cnMiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxSZXF1aXJlZEF0dHJzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENoaWxkcmVuTm9kZSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQ2hpbGRyZW5Ob2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQmFzZUNoYXJRIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyUSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc0Jhc2VDaGFyX2NoIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyX2NoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQmxhbmtRIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rUSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc0JsYW5rX2NoIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0JsYW5rX2NoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQ2hhclEiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzQ2hhclEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNDaGFyX2NoIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJfY2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNDb21iaW5pbmdRIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZ1EiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNEaWdpdFEiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRGlnaXRRIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzRGlnaXRfY2giIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRGlnaXRfY2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNFeHRlbmRlclEiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJRIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzRXh0ZW5kZXJfY2giIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJfY2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNJZGVvZ3JhcGhpY1EiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzSWRlb2dyYXBoaWNRIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzUHViaWRDaGFyUSIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXJRIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzUHViaWRDaGFyX2NoIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhcl9jaCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSb290Tm9kZSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sUm9vdE5vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRG9jVHlwZSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbiIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDaGVja0Vycm9yIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDaGVja0Vycm9yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRW1wdHlOb2RlU2V0IiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhFbXB0eU5vZGVTZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhHZXRDb250ZXh0Tm9kZSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoR2V0Q29udGV4dE5vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhHZXREb2N1bWVudCIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoR2V0RG9jdW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhHZXRFcnJvciIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoR2V0RXJyb3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm9kZVNldElzRW1wdHkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRJc0VtcHR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm9kZVNldEl0ZW0iIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE5vZGVTZXRJdGVtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmV0dXJuQm9vbGVhbiIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuQm9vbGVhbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldCIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuRW1wdHlOb2RlU2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmciIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmV0dXJuRXh0ZXJuYWwiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkV4dGVybmFsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmV0dXJuRmFsc2UiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJldHVybkZhbHNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmV0dXJuTm9kZVNldCIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuTm9kZVNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFJldHVybk51bWJlciIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmV0dXJuTnVtYmVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmV0dXJuU3RyaW5nIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5TdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhSZXR1cm5UcnVlIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZXR1cm5UcnVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU2V0QXJpdHlFcnJvciIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU2V0QXJpdHlFcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFNldEVycm9yIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTZXRFcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFNldFR5cGVFcnJvciIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU2V0VHlwZUVycm9yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3RhY2tJc0V4dGVybmFsIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdGFja0lzRXh0ZXJuYWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhTdGFja0lzTm9kZVNldCIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoU3RhY2tJc05vZGVTZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSFRNTF9ERVBSRUNBVEVEIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX0RFUFJFQ0FURUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSFRNTF9JTlZBTElEIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX0lOVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSFRNTF9OQSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjSFRNTF9OQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJIVE1MX1BBUlNFX0NPTVBBQ1QiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI0hUTUxfUEFSU0VfQ09NUEFDVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJIVE1MX1BBUlNFX05PQkxBTktTIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PQkxBTktTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkhUTUxfUEFSU0VfTk9FUlJPUiIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjSFRNTF9QQVJTRV9OT0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkhUTUxfUEFSU0VfTk9JTVBMSUVEIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PSU1QTElFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJIVE1MX1BBUlNFX05PTkVUIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PTkVUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkhUTUxfUEFSU0VfTk9XQVJOSU5HIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX05PV0FSTklORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJIVE1MX1BBUlNFX1BFREFOVElDIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1BBUlNFX1BFREFOVElDIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkhUTUxfUEFSU0VfUkVDT1ZFUiIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjSFRNTF9QQVJTRV9SRUNPVkVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IkhUTUxfUkVRVUlSRUQiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI0hUTUxfUkVRVUlSRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iSFRNTF9WQUxJRCIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjSFRNTF9WQUxJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTElOS19BQ1RVQVRFX0FVVE8iIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCNYTElOS19BQ1RVQVRFX0FVVE8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWExJTktfQUNUVUFURV9OT05FIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjWExJTktfQUNUVUFURV9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhMSU5LX0FDVFVBVEVfT05SRVFVRVNUIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjWExJTktfQUNUVUFURV9PTlJFUVVFU1QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWExJTktfU0hPV19FTUJFRCIgbGluaz0ibGlieG1sMi14bGluay5odG1sI1hMSU5LX1NIT1dfRU1CRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWExJTktfU0hPV19ORVciIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCNYTElOS19TSE9XX05FVyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTElOS19TSE9XX05PTkUiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCNYTElOS19TSE9XX05PTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWExJTktfU0hPV19SRVBMQUNFIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjWExJTktfU0hPV19SRVBMQUNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhMSU5LX1RZUEVfRVhURU5ERUQiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCNYTElOS19UWVBFX0VYVEVOREVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhMSU5LX1RZUEVfRVhURU5ERURfU0VUIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjWExJTktfVFlQRV9FWFRFTkRFRF9TRVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWExJTktfVFlQRV9OT05FIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjWExJTktfVFlQRV9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhMSU5LX1RZUEVfU0lNUExFIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjWExJTktfVFlQRV9TSU1QTEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0FUVFJJQlVURV9DREFUQSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9DREFUQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQVRUUklCVVRFX0RFQ0wiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfREVDTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQVRUUklCVVRFX0VOVElUSUVTIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0VOVElUSUVTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9BVFRSSUJVVEVfRU5USVRZIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9BVFRSSUJVVEVfRklYRUQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfRklYRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0FUVFJJQlVURV9JRCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9JRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQVRUUklCVVRFX0lEUkVGIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0lEUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9BVFRSSUJVVEVfSURSRUZTIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0lEUkVGUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQVRUUklCVVRFX0lNUExJRUQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfSU1QTElFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQVRUUklCVVRFX05NVE9LRU4iIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfTk1UT0tFTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQVRUUklCVVRFX05NVE9LRU5TIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX05NVE9LRU5TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9BVFRSSUJVVEVfTk9ERSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9BVFRSSUJVVEVfTk9ORSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9BVFRSSUJVVEVfTk9UQVRJT04iIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfTk9UQVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0FUVFJJQlVURV9SRVFVSVJFRCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0FUVFJJQlVURV9SRVFVSVJFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1QiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfRVhBQ1QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9CVUZGRVJfQUxMT0NfSU8iIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfSU8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0MxNE5fMV8wIiBsaW5rPSJsaWJ4bWwyLWMxNG4uaHRtbCNYTUxfQzE0Tl8xXzAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0MxNE5fMV8xIiBsaW5rPSJsaWJ4bWwyLWMxNG4uaHRtbCNYTUxfQzE0Tl8xXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0MxNE5fQ1JFQVRFX0NUWFQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQzE0Tl9DUkVBVEVfQ1RYVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQzE0Tl9DUkVBVEVfU1RBQ0siIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQzE0Tl9DUkVBVEVfU1RBQ0siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCIgbGluaz0ibGlieG1sMi1jMTRuLmh0bWwjWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQzE0Tl9JTlZBTElEX05PREUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQzE0Tl9JTlZBTElEX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DMTROX1JFUVVJUkVTX1VURjgiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQzE0Tl9SRVFVSVJFU19VVEY4Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DMTROX1VOS05PV19OT0RFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0MxNE5fVU5LTk9XX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NBVEFMT0dfRU5UUllfQlJPS0VOIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NBVEFMT0dfRU5UUllfQlJPS0VOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DQVRBTE9HX01JU1NJTkdfQVRUUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DQVRBTE9HX01JU1NJTkdfQVRUUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DQVRBTE9HX05PVF9DQVRBTE9HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0FUQUxPR19SRUNVUlNJT04iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0FUQUxPR19SRUNVUlNJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NBVEFfQUxMT1dfQUxMIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQV9BTExPV19BTEwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NBVEFfQUxMT1dfRE9DVU1FTlQiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI1hNTF9DQVRBX0FMTE9XX0RPQ1VNRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DQVRBX0FMTE9XX0dMT0JBTCIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjWE1MX0NBVEFfQUxMT1dfR0xPQkFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DQVRBX0FMTE9XX05PTkUiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI1hNTF9DQVRBX0FMTE9XX05PTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NBVEFfUFJFRkVSX05PTkUiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI1hNTF9DQVRBX1BSRUZFUl9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DQVRBX1BSRUZFUl9QVUJMSUMiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI1hNTF9DQVRBX1BSRUZFUl9QVUJMSUMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NBVEFfUFJFRkVSX1NZU1RFTSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjWE1MX0NBVEFfUFJFRkVSX1NZU1RFTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0RBVEFfU0VDVElPTl9OT0RFIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfQ0RBVEFfU0VDVElPTl9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzIwMjJfSlAiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR184ODU5XzIiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8zIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNCIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR184ODU5XzUiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfODg1OV82IiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV82Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNyIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR184ODU5XzgiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR184ODU5XzgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfODg1OV85IiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfODg1OV85Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX0FTQ0lJIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfQVNDSUkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfRVVDX0pQIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfRVVDX0pQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX05PTkUiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX1NISUZUX0pJUyIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1NISUZUX0pJUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1MyIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfVUNTMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkUiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX1VDUzRfMjE0MyIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VDUzRfMjE0MyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTIiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZCRSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI1hNTF9DSEFSX0VOQ09ESU5HX1VURjgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLXyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS18iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX0VOVElUWV9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0VOVElUWV9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19GT1VORF9BVFRSSUJVVEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfQVRUUklCVVRFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19GT1VORF9DREFUQSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9DREFUQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfQ09NTUVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9DT01NRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19GT1VORF9ET0NUWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0RPQ1RZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX0VMRU1FTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfRUxFTUVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZUkVGIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfRlJBR01FTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfRk9VTkRfRlJBR01FTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX05PVEFUSU9OIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX0ZPVU5EX05PVEFUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19GT1VORF9QSSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9QSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfVEVYVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19GT1VORF9URVhUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OQU1FX05PVF9OVUxMIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05BTUVfTk9UX05VTEwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX05PVF9BVFRSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9BVFRSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OT1RfQVRUUl9ERUNMIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9BVFRSX0RFQ0wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX05PVF9EVEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX0RURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfTk9UX0VMRU1fREVDTCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT1RfRUxFTV9ERUNMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OT1RfRU5USVRZX0RFQ0wiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OT1RfTkNOQU1FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9OQ05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX05PVF9OU19ERUNMIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PVF9OU19ERUNMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OT1RfVVRGOCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT1RfVVRGOCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfTk9fRElDVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19ESUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OT19ET0MiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fRE9DIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OT19FTEVNIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PX0VMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX05PX0hSRUYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fSFJFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfTk9fTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19OQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19OT19ORVhUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05PX05FWFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX05PX1BBUkVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19OT19QQVJFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX05PX1BSRVYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTk9fUFJFViIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfTlNfQU5DRVNUT1IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfTlNfQU5DRVNUT1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX05TX1NDT1BFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX05TX1NDT1BFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19PVVRTSURFX0RJQ1QiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfT1VUU0lERV9ESUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19VTktOT1dOX05PREUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19XUk9OR19ET0MiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfV1JPTkdfRE9DIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19XUk9OR19OQU1FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1dST05HX05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NIRUNLX1dST05HX05FWFQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfQ0hFQ0tfV1JPTkdfTkVYVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfV1JPTkdfUEFSRU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1dST05HX1BBUkVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfQ0hFQ0tfV1JPTkdfUFJFViIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9DSEVDS19XUk9OR19QUkVWIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9DSEVDS19YIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0NIRUNLX1giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0NPTU1FTlRfTk9ERSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0NPTU1FTlRfTk9ERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRE9DQl9ET0NVTUVOVF9OT0RFIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRE9DQl9ET0NVTUVOVF9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9ET0NVTUVOVF9GUkFHX05PREUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9ET0NVTUVOVF9GUkFHX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RPQ1VNRU5UX05PREUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9ET0NVTUVOVF9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9ET0NVTUVOVF9UWVBFX05PREUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9ET0NVTUVOVF9UWVBFX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RPQ19EVERWQUxJRCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0RPQ19EVERWQUxJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRE9DX0hUTUwiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9ET0NfSFRNTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRE9DX0lOVEVSTkFMIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRE9DX0lOVEVSTkFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9ET0NfTlNWQUxJRCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0RPQ19OU1ZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9ET0NfT0xEMTAiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9ET0NfT0xEMTAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RPQ19VU0VSQlVJTFQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9ET0NfVVNFUkJVSUxUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9ET0NfV0VMTEZPUk1FRCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0RPQ19XRUxMRk9STUVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9ET0NfWElOQ0xVREUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9ET0NfWElOQ0xVREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9BVFRSSUJVVEVfREVGQVVMVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfQVRUUklCVVRFX0RFRkFVTFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9BVFRSSUJVVEVfUkVERUZJTkVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9BVFRSSUJVVEVfUkVERUZJTkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfQVRUUklCVVRFX1ZBTFVFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9BVFRSSUJVVEVfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9DT05URU5UX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9DT05URU5UX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfQ09OVEVOVF9NT0RFTCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfQ09OVEVOVF9NT0RFTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9DT05URU5UX05PVF9ERVRFUk1JTklTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX0RJRkZFUkVOVF9QUkVGSVgiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX0RJRkZFUkVOVF9QUkVGSVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9EVVBfVE9LRU4iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX0RVUF9UT0tFTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX0VMRU1fREVGQVVMVF9OQU1FU1BBQ0UiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX0VMRU1fREVGQVVMVF9OQU1FU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9FTEVNX05BTUVTUEFDRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfRUxFTV9OQU1FU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9FTEVNX1JFREVGSU5FRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfRUxFTV9SRURFRklORUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9FTVBUWV9OT1RBVElPTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfRU1QVFlfTk9UQVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9FTlRJVFlfVFlQRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfRU5USVRZX1RZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9JRF9GSVhFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfSURfRklYRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9JRF9SRURFRklORUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX0lEX1JFREVGSU5FRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX0lEX1NVQlNFVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfSURfU1VCU0VUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfSU5WQUxJRF9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfSU5WQUxJRF9DSElMRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX0lOVkFMSURfREVGQVVMVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfSU5WQUxJRF9ERUZBVUxUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfTE9BRF9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfTE9BRF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX01JU1NJTkdfQVRUUklCVVRFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX01JWEVEX0NPUlJVUFQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX01JWEVEX0NPUlJVUFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9NVUxUSVBMRV9JRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfTVVMVElQTEVfSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9OT0RFIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRFREX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9OT1RBVElPTl9SRURFRklORUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PVEFUSU9OX1JFREVGSU5FRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX05PVEFUSU9OX1ZBTFVFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT1RBVElPTl9WQUxVRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX05PVF9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfTk9UX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfTk9UX1BDREFUQSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfTk9UX1BDREFUQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX05PVF9TVEFOREFMT05FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT1RfU1RBTkRBTE9ORSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX05PX0RPQyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfTk9fRE9DIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfTk9fRFREIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9OT19EVEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9OT19FTEVNX05BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX05PX0VMRU1fTkFNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX05PX1BSRUZJWCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfTk9fUFJFRklYIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfTk9fUk9PVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfTk9fUk9PVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX1JPT1RfTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfUk9PVF9OQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX1NUQU5EQUxPTkVfREVGQVVMVEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX1VOS05PV05fQVRUUklCVVRFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9VTktOT1dOX0FUVFJJQlVURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX1VOS05PV05fRUxFTSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfVU5LTk9XTl9FTEVNIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfVU5LTk9XTl9FTlRJVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX1VOS05PV05fRU5USVRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfVU5LTk9XTl9JRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9EVERfVU5LTk9XTl9JRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRFREX1VOS05PV05fTk9UQVRJT04iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX1VOS05PV05fTk9UQVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0RURF9YTUxJRF9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0RURF9YTUxJRF9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9EVERfWE1MSURfVkFMVUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRFREX1hNTElEX1ZBTFVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9DT05URU5UX09QVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX09SIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9DT05URU5UX09SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX1BMVVMiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9FTEVNRU5UX0NPTlRFTlRfUExVUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX1NFUSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VMRU1FTlRfREVDTCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0VMRU1FTlRfREVDTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRUxFTUVOVF9OT0RFIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTEVNRU5UX1RZUEVfQU5ZIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9UWVBFX0FOWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRUxFTUVOVF9UWVBFX0VNUFRZIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfRUxFTUVOVF9UWVBFX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTEVNRU5UX1RZUEVfTUlYRUQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9FTEVNRU5UX1RZUEVfTUlYRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTlRJVFlfREVDTCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0VOVElUWV9ERUNMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTlRJVFlfTk9ERSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0VOVElUWV9OT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FTlRJVFlfUkVGX05PREUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9FTlRJVFlfUkVGX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUTElTVF9OT1RfRklOSVNIRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9BVFRMSVNUX05PVF9TVEFSVEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9BVFRMSVNUX05PVF9TVEFSVEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQVRUUklCVVRFX05PVF9GSU5JU0hFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUUklCVVRFX05PVF9GSU5JU0hFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUUklCVVRFX05PVF9TVEFSVEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQVRUUklCVVRFX1JFREVGSU5FRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfQVRUUklCVVRFX1JFREVGSU5FRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0FUVFJJQlVURV9XSVRIT1VUX1ZBTFVFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9BVFRSSUJVVEVfV0lUSE9VVF9WQUxVRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0NEQVRBX05PVF9GSU5JU0hFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfQ0RBVEFfTk9UX0ZJTklTSEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQ0hBUlJFRl9BVF9FT0YiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0NIQVJSRUZfQVRfRU9GIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQ0hBUlJFRl9JTl9EVEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0NIQVJSRUZfSU5fRFREIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQ0hBUlJFRl9JTl9FUElMT0ciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0NIQVJSRUZfSU5fRVBJTE9HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0ciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0NIQVJSRUZfSU5fUFJPTE9HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0NPTU1FTlRfTk9UX0ZJTklTSEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfQ09ORFNFQ19JTlZBTElEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX0lOVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfQ09ORFNFQ19JTlZBTElEX0tFWVdPUkQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfQ09ORFNFQ19OT1RfRklOSVNIRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9DT05EU0VDX05PVF9TVEFSVEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9DT05EU0VDX05PVF9TVEFSVEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0RPQ1RZUEVfTk9UX0ZJTklTSEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRE9DVU1FTlRfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0RPQ1VNRU5UX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRE9DVU1FTlRfRU5EIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9ET0NVTUVOVF9FTkQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9ET0NVTUVOVF9TVEFSVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRE9DVU1FTlRfU1RBUlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VMRU1DT05URU5UX05PVF9GSU5JU0hFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfU1RBUlRFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0VOQ09ESU5HX05BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOQ09ESU5HX05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FTlRJVFlSRUZfQVRfRU9GIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlSRUZfQVRfRU9GIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZUkVGX0lOX0RURCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX0lOX0RURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0VOVElUWVJFRl9JTl9FUElMT0ciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWVJFRl9JTl9FUElMT0ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZUkVGX05PX05BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWVJFRl9OT19OQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0VOVElUWV9CT1VOREFSWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX0JPVU5EQVJZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZX0NIQVJfRVJST1IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWV9DSEFSX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlfSVNfRVhURVJOQUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZX0xPT1AiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0VOVElUWV9MT09QIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0VOVElUWV9OT1RfU1RBUlRFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX05PVF9TVEFSVEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRU5USVRZX1BFX0lOVEVSTkFMIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FTlRJVFlfUEVfSU5URVJOQUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FTlRJVFlfUFJPQ0VTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRU5USVRZX1BST0NFU1NJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FUVVBTF9SRVFVSVJFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRVFVQUxfUkVRVUlSRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FWFRSQV9DT05URU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FWFRSQV9DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfRVhUX0VOVElUWV9TVEFOREFMT05FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9FWFRfRU5USVRZX1NUQU5EQUxPTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9FWFRfU1VCU0VUX05PVF9GSU5JU0hFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRVhUX1NVQlNFVF9OT1RfRklOSVNIRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9GQVRBTCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfRkFUQUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9HVF9SRVFVSVJFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfR1RfUkVRVUlSRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfSFlQSEVOX0lOX0NPTU1FTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfSU5URVJOQUxfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9JTlZBTElEX0NIQVIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0lOVkFMSURfQ0hBUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0lOVkFMSURfQ0hBUlJFRiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfSU5WQUxJRF9DSEFSUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9VUkkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0lOVkFMSURfVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfTElURVJBTF9OT1RfRklOSVNIRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0xUU0xBU0hfUkVRVUlSRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0xUU0xBU0hfUkVRVUlSRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9MVF9JTl9BVFRSSUJVVEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX0xUX0lOX0FUVFJJQlVURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX0xUX1JFUVVJUkVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9MVF9SRVFVSVJFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9NSVNTSU5HX0VOQ09ESU5HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9NSVNTSU5HX0VOQ09ESU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfTUlYRURfTk9UX0ZJTklTSEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9NSVhFRF9OT1RfRklOSVNIRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfTUlYRURfTk9UX1NUQVJURUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9OQU1FX1JFUVVJUkVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OQU1FX1JFUVVJUkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX05PTkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9OT1RBVElPTl9OT1RfRklOSVNIRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PVEFUSU9OX05PVF9GSU5JU0hFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9OT1RBVElPTl9OT1RfU1RBUlRFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX05PVEFUSU9OX1BST0NFU1NJTkciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PVEFUSU9OX1BST0NFU1NJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9OT1RfU1RBTkRBTE9ORSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfTk9UX1NUQU5EQUxPTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfTk9UX1dFTExfQkFMQU5DRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9OT19EVEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX05PX0RURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX05PX01FTU9SWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfTk9fTUVNT1JZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfTlNfREVDTF9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfTlNfREVDTF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX09LIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9PSyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1BDREFUQV9SRVFVSVJFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfUENEQVRBX1JFUVVJUkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfUEVSRUZfQVRfRU9GIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9QRVJFRl9BVF9FT0YiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9QRVJFRl9JTl9FUElMT0ciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX0lOX0VQSUxPRyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9QRVJFRl9JTl9QUk9MT0ciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX0lOX1BST0xPRyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1BFUkVGX05PX05BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX05PX05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9QRVJFRl9TRU1JQ09MX01JU1NJTkciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BFUkVGX1NFTUlDT0xfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1BJX05PVF9GSU5JU0hFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfUElfTk9UX0ZJTklTSEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfUElfTk9UX1NUQVJURUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BJX05PVF9TVEFSVEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfUFVCSURfUkVRVUlSRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1BVQklEX1JFUVVJUkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfUkVTRVJWRURfWE1MX05BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1JFU0VSVkVEX1hNTF9OQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfU0VQQVJBVE9SX1JFUVVJUkVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9TRVBBUkFUT1JfUkVRVUlSRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfU1BBQ0VfUkVRVUlSRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfU1RSSU5HX05PVF9TVEFSVEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9TVFJJTkdfTk9UX1NUQVJURUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfVEFHX05BTUVfTUlTTUFUQ0giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1VOREVDTEFSRURfRU5USVRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfVU5LTk9XTl9FTkNPRElORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5LTk9XTl9FTkNPRElORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1VOS05PV05fVkVSU0lPTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5LTk9XTl9WRVJTSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfVU5QQVJTRURfRU5USVRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9VTlBBUlNFRF9FTlRJVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VSUl9VUklfRlJBR01FTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1VSSV9GUkFHTUVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1VSSV9SRVFVSVJFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfVVJJX1JFUVVJUkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfVkFMVUVfUkVRVUlSRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1ZBTFVFX1JFUVVJUkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1ZFUlNJT05fTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfVkVSU0lPTl9NSVNTSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FUlJfV0FSTklORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9FUlJfV0FSTklORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1hNTERFQ0xfTk9UX0ZJTklTSEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0VSUl9YTUxERUNMX05PVF9GSU5JU0hFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VYUF9BVE9NIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI1hNTF9FWFBfQVRPTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVhQX0NPVU5UIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI1hNTF9FWFBfQ09VTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VYUF9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCNYTUxfRVhQX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FWFBfRk9SQklEIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI1hNTF9FWFBfRk9SQklEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9FWFBfT1IiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjWE1MX0VYUF9PUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVhQX1NFUSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCNYTUxfRVhQX1NFUSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFkiIGxpbms9ImxpYnhtbDItZW50aXRpZXMuaHRtbCNYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFkiIGxpbms9ImxpYnhtbDItZW50aXRpZXMuaHRtbCNYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9DMTROIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fQzE0TiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9DQVRBTE9HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fQ0FUQUxPRyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9DSEVDSyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX0NIRUNLIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX0RBVEFUWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fREFUQVRZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0ZST01fRFREIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fRFREIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX0ZUUCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX0ZUUCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9IVE1MIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fSFRNTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9IVFRQIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fSFRUUCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9JMThOIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fSTE4TiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9JTyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX0lPIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX01FTU9SWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX01FTU9SWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9NT0RVTEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9NT0RVTEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0ZST01fTkFNRVNQQUNFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fTkFNRVNQQUNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX05PTkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX09VVFBVVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX09VVFBVVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9QQVJTRVIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9QQVJTRVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0ZST01fUkVHRVhQIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fUkVHRVhQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX1JFTEFYTkdQIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fUkVMQVhOR1AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0ZST01fUkVMQVhOR1YiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9SRUxBWE5HViIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9TQ0hFTUFTUCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX1NDSEVNQVNQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX1NDSEVNQVNWIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fU0NIRU1BU1YiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0ZST01fU0NIRU1BVFJPTlYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9TQ0hFTUFUUk9OViIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9UUkVFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fVFJFRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX1ZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX1dSSVRFUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX1dSSVRFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9YSU5DTFVERSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9GUk9NX1hJTkNMVURFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9GUk9NX1hQQVRIIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fWFBBVEgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0ZST01fWFBPSU5URVIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRlJPTV9YUE9JTlRFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlJPTV9YU0xUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZST01fWFNMVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlRQX0FDQ05UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZUUF9BQ0NOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlRQX0VQU1ZfQU5TV0VSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZUUF9FUFNWX0FOU1dFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlRQX1BBU1ZfQU5TV0VSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0ZUUF9QQVNWX0FOU1dFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfRlRQX1VSTF9TWU5UQVgiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfRlRQX1VSTF9TWU5UQVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSFRNTF9TVFJVQ1VSRV9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9IVE1MX1NUUlVDVVJFX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9IVE1MX1VOS05PV05fVEFHIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0hUTUxfVU5LTk9XTl9UQUciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0hUVFBfVU5LTk9XTl9IT1NUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0hUVFBfVU5LTk9XTl9IT1NUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9IVFRQX1VSTF9TWU5UQVgiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSFRUUF9VUkxfU1lOVEFYIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9IVFRQX1VTRV9JUCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9IVFRQX1VTRV9JUCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSTE4Tl9DT05WX0ZBSUxFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JMThOX0NPTlZfRkFJTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JMThOX0VYQ0VTU19IQU5ETEVSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0kxOE5fRVhDRVNTX0hBTkRMRVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0kxOE5fTk9fSEFORExFUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JMThOX05PX0hBTkRMRVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0kxOE5fTk9fTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JMThOX05PX05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0kxOE5fTk9fT1VUUFVUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0kxOE5fTk9fT1VUUFVUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI1hNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI1hNTF9JTlRFUk5BTF9QQVJBTUVURVJfRU5USVRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI1hNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fQlVGRkVSX0ZVTEwiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fQlVGRkVSX0ZVTEwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VBQ0NFUyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FQUNDRVMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VBRERSSU5VU0UiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUFERFJJTlVTRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUFGTk9TVVBQT1JUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VBRk5PU1VQUE9SVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUFHQUlOIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VBR0FJTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUFMUkVBRFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUFMUkVBRFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VCQURGIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VCQURGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FQkFETVNHIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VCQURNU0ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VCVVNZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VCVVNZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FQ0FOQ0VMRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUNBTkNFTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUNISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FQ09OTlJFRlVTRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUNPTk5SRUZVU0VEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FREVBRExLIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VERUFETEsiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VET00iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRURPTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUVYSVNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VFWElTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUZBVUxUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VGQVVMVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUZCSUciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUZCSUciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VJTlBST0dSRVNTIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VJTlBST0dSRVNTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FSU5UUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FSU5UUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUlOVkFMIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VJTlZBTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUlPIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRUlTQ09OTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FSVNDT05OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FSVNESVIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRUlTRElSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTUZJTEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU1GSUxFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTUxJTksiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU1MSU5LIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTVNHU0laRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FTVNHU0laRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRU5BTUVUT09MT05HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOQU1FVE9PTE9ORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRU5DT0RFUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FTkNPREVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTkVUVU5SRUFDSCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FTkVUVU5SRUFDSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRU5GSUxFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VORklMRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRU5PREVWIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT0RFViIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRU5PRU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT0VOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRU5PRVhFQyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FTk9FWEVDIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTk9MQ0siIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PTENLIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTk9NRU0iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PTUVNIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTk9TUEMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PU1BDIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTk9TWVMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRU5PU1lTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTk9URElSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT1RESVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VOT1RFTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FTk9URU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VOT1RTT0NLIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT1RTT0NLIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FTk9UU1VQIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOT1RTVVAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VOT1RUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FTk9UVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VOWElPIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VOWElPIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FUEVSTSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FUEVSTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRVBJUEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVBJUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VSQU5HRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FUkFOR0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0VST0ZTIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VST0ZTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FU1BJUEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVNQSVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19FU1JDSCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19FU1JDSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRVRJTUVET1VUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0VUSU1FRE9VVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfSU9fRVhERVYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfSU9fRVhERVYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX0ZMVVNIIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0ZMVVNIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19MT0FEX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX0xPQURfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX05FVFdPUktfQVRURU1QVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9JT19ORVRXT1JLX0FUVEVNUFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX05PX0lOUFVUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX05PX0lOUFVUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9JT19VTktOT1dOIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX1VOS05PV04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX0lPX1dSSVRFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX0lPX1dSSVRFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9NT0RVTEVfQ0xPU0UiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfTU9EVUxFX0NMT1NFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9NT0RVTEVfTEFaWSIgbGluaz0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCNYTUxfTU9EVUxFX0xBWlkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX01PRFVMRV9MT0NBTCIgbGluaz0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCNYTUxfTU9EVUxFX0xPQ0FMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9NT0RVTEVfT1BFTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9NT0RVTEVfT1BFTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfTkFNRVNQQUNFX0RFQ0wiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9OQU1FU1BBQ0VfREVDTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfTk9UQVRJT05fTk9ERSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX05PVEFUSU9OX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX05TX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX05TX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9OU19FUlJfQ09MT04iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfTlNfRVJSX0NPTE9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9OU19FUlJfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfTlNfRVJSX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9OU19FUlJfUU5BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfTlNfRVJSX1FOQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUUiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VSX0NPTU1FTlQiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9DT01NRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRVJfQ09OVEVOVCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX0NPTlRFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9ERUZBVUxUQVRUUlMiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9ERUZBVUxUQVRUUlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9EVEQiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9EVEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9FTkRfVEFHIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfRU5EX1RBRyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VSX0VOVElUWV9ERUNMIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfRU5USVRZX0RFQ0wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUUiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9FT0YiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9FT0YiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9FUElMT0ciIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9FUElMT0ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9JR05PUkUiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9JR05PUkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9MT0FERFREIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI1hNTF9QQVJTRVJfTE9BRERURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VSX01JU0MiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9NSVNDIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRVJfUEkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFUl9QSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VSX1BST0xPRyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX1BST0xPRyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfUFVCTElDX0xJVEVSQUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUEFSU0VSX1NFVkVSSVRZX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfRVJST1IiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX1dBUk5JTkciIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRVJfU0VWRVJJVFlfV0FSTklORyIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUEFSU0VSX1NFVkVSSVRZX1dBUk5JTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9TVEFSVCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VSX1NUQVJUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRVJfU1RBUlRfVEFHIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfU1RBUlRfVEFHIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVMiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1BBUlNFUl9TVUJTVF9FTlRJVElFUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRVJfU1lTVEVNX0xJVEVSQUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFUl9WQUxJREFURSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUEFSU0VSX1ZBTElEQVRFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9DT01QQUNUIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9DT01QQUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9ET00iIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX0RPTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfRFREQVRUUiIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfRFREQVRUUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfRFRETE9BRCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfRFRETE9BRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfRFREVkFMSUQiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX0RURFZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9IVUdFIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9IVUdFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9OT0JBU0VGSVgiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX05PQkFTRUZJWCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfTk9CTEFOS1MiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX05PQkxBTktTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9OT0NEQVRBIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT0NEQVRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9OT0RJQ1QiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX05PRElDVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfTk9FTlQiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX05PRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9OT0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9OT05FVCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9ORVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFX05PV0FSTklORyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfTk9XQVJOSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9OT1hJTkNOT0RFIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OT1hJTkNOT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9OU0NMRUFOIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9OU0NMRUFOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9PTEQxMCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfT0xEMTAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFX09MRFNBWCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfT0xEU0FYIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9QRURBTlRJQyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfUEVEQU5USUMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFX1BVU0hfRE9NIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9QVVNIX0RPTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfUFVTSF9TQVgiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1BVU0hfU0FYIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVJTRV9SRUFERVIiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1JFQURFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfUkVDT1ZFUiIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfUkVDT1ZFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFSU0VfU0FYIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9TQVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFX1NBWDEiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1NBWDEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFX1VOS05PV04iIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1BBUlNFX1VOS05PV04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1BBUlNFX1hJTkNMVURFIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9QQVJTRV9YSU5DTFVERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFUVEVSTl9ERUZBVUxUIiBsaW5rPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCNYTUxfUEFUVEVSTl9ERUZBVUxUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVRURVJOX1hQQVRIIiBsaW5rPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCNYTUxfUEFUVEVSTl9YUEFUSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUEFUVEVSTl9YU0ZJRUxEIiBsaW5rPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCNYTUxfUEFUVEVSTl9YU0ZJRUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9QQVRURVJOX1hTU0VMIiBsaW5rPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCNYTUxfUEFUVEVSTl9YU1NFTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUElfTk9ERSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX1BJX05PREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX0FUVFJJQlVURSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfQVRUUklCVVRFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9DREFUQSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfQ0RBVEEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9ET0NVTUVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX0ZSQUdNRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9FTEVNRU5UIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9FTEVNRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVCIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfRU5EX0VMRU1FTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX0VOVElUWSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfRU5USVRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9OT05FIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI1hNTF9SRUFERVJfVFlQRV9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9OT1RBVElPTiIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfTk9UQVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX1NJR05JRklDQU5UX1dISVRFU1BBQ0UiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1NJR05JRklDQU5UX1dISVRFU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX1RFWFQiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1RFWFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX1dISVRFU1BBQ0UiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1JFQURFUl9UWVBFX1dISVRFU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTiIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfUkVBREVSX1RZUEVfWE1MX0RFQ0xBUkFUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUdFWFBfQ09NUElMRV9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9SRUdFWFBfQ09NUElMRV9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR1BfQ1JORyIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdQX0NSTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdQX0ZSRUVfRE9DIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR1BfRlJFRV9ET0MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdQX05PTkUiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HUF9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9BVFRSRVhUUkFOUyIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0FUVFJFWFRSQU5TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9BVFRSTkFNRSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0FUVFJOQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9BVFRSTk9OUyIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0FUVFJOT05TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0FUVFJXUk9OR05TIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfQVRUUldST05HTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0NPTlRFTlRWQUxJRCIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0NPTlRFTlRWQUxJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfREFUQUVMRU0iIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9EQVRBRUxFTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfREFUQVRZUEUiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9EQVRBVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRFVQSUQiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9EVVBJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTUVYVFJBTlMiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FTEVNRVhUUkFOUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5BTUUiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FTEVNTkFNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5PTlMiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FTEVNTk9OUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5PVEVNUFRZIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfRUxFTU5PVEVNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkciIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VYVFJBQ09OVEVOVCIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0VYVFJBQ09OVEVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRVhUUkFEQVRBIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfRVhUUkFEQVRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9JTlRFUkVYVFJBIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfSU5URVJFWFRSQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfSU5URVJOQUwiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfSU5URVJOT0RBVEEiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9JTlRFUk5PREFUQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfSU5URVJTRVEiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9JTlRFUlNFUSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfSU5WQUxJREFUVFIiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9JTlZBTElEQVRUUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTEFDS0RBVEEiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9MQUNLREFUQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTElTVCIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xJU1QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0xJU1RFTEVNIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTElTVEVMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0xJU1RFTVBUWSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX0xJU1RFTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTElTVEVYVFJBIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTElTVEVYVFJBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9NRU1PUlkiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9NRU1PUlkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX05PREVGSU5FIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTk9ERUZJTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX05PRUxFTSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX05PRUxFTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9OT1NUQVRFIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfTk9TVEFURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTk9URUxFTSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX05PVEVMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORyIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfVFlQRSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX1RZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1RZUEVDTVAiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX0VSUl9UWVBFQ01QIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9UWVBFVkFMIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfVFlQRVZBTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUkVMQVhOR19FUlJfVkFMRUxFTSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjWE1MX1JFTEFYTkdfRVJSX1ZBTEVMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1ZBTFVFIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCNYTUxfUkVMQVhOR19FUlJfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JFTEFYTkdfT0siIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI1hNTF9SRUxBWE5HX09LIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9BVFRSSUJVVEVfQ0hJTERSRU4iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfQ0hJTERSRU4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfQVRUUklCVVRFX0NPTlRFTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfQ09OVEVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9BVFRSSUJVVEVfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfRU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfQVRUUklCVVRFX05PT1AiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9BVFRSSUJVVEVfTk9PUCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9BVFRSX0NPTkZMSUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfQVRUUl9DT05GTElDVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9DSE9JQ0VfQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0NIT0lDRV9DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0NIT0lDRV9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0NIT0lDRV9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9DUkVBVEVfRkFJTFVSRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0NSRUFURV9GQUlMVVJFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0RBVEFfQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0RBVEFfQ09OVEVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9ERUZJTkVfQ1JFQVRFX0ZBSUxFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRklORV9DUkVBVEVfRkFJTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0RFRklORV9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRklORV9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9ERUZJTkVfTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0RFRklORV9NSVNTSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0RFRklORV9OQU1FX01JU1NJTkciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9ERUZJTkVfTkFNRV9NSVNTSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0RFRl9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9ERUZfQ0hPSUNFX0FORF9JTlRFUkxFQVZFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VMRU1FTlRfQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VMRU1FTlRfQ09OVEVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9FTEVNRU5UX0VNUFRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRUxFTUVOVF9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9FTEVNRU5UX05BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTEVNRU5UX05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfRUxFTUVOVF9OT19DT05URU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRUxFTUVOVF9OT19DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VMRU1fQ09OVEVOVF9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VMRU1fQ09OVEVOVF9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VNUFRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfRU1QVFlfQ09OU1RSVUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRU1QVFlfQ09OU1RSVUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VNUFRZX0NPTlRFTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FTVBUWV9DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VNUFRZX05PVF9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VNUFRZX05PVF9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9FUlJPUl9UWVBFX0xJQiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VSUk9SX1RZUEVfTElCIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VYQ0VQVF9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9FWENFUFRfTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9NSVNTSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VYQ0VQVF9NVUxUSVBMRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9NVUxUSVBMRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9FWENFUFRfTk9fQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYQ0VQVF9OT19DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0VYVEVSTkFMUkVGX0VNVFBZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRVhURVJOQUxSRUZfRU1UUFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfRVhURVJOQUxSRUZfUkVDVVJTRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0VYVEVSTkFMUkVGX1JFQ1VSU0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfRVhURVJOQUxfUkVGX0ZBSUxVUkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9FWFRFUk5BTF9SRUZfRkFJTFVSRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfRk9SQklEREVOX0FUVFJJQlVURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9GT1JFSUdOX0VMRU1FTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9GT1JFSUdOX0VMRU1FTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfR1JBTU1BUl9DT05URU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfR1JBTU1BUl9DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0dSQU1NQVJfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9HUkFNTUFSX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0dSQU1NQVJfTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0dSQU1NQVJfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9HUkFNTUFSX05PX1NUQVJUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfR1JBTU1BUl9OT19TVEFSVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfR1JPVVBfQVRUUl9DT05GTElDVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9IUkVGX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSFJFRl9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9JTkNMVURFX0VNUFRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5DTFVERV9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfSU5DTFVERV9SRUNVUlNFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5DTFVERV9SRUNVUlNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0lOVEVSTEVBVkVfQUREIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5URVJMRUFWRV9BREQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfSU5URVJMRUFWRV9DUkVBVEVfRkFJTEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5URVJMRUFWRV9DUkVBVEVfRkFJTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0lOVEVSTEVBVkVfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTlRFUkxFQVZFX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0lOVEVSTEVBVkVfTk9fQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVEVSTEVBVkVfTk9fQ09OVEVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfSU5WQUxJRF9ERUZJTkVfTkFNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9JTlZBTElEX1VSSSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX0lOVkFMSURfVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX0lOVkFMSURfVkFMVUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9JTlZBTElEX1ZBTFVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX01JU1NJTkdfSFJFRiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX01JU1NJTkdfSFJFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9OQU1FX01JU1NJTkciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9OQU1FX01JU1NJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfTkVFRF9DT01CSU5FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfTkVFRF9DT01CSU5FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX05PVEFMTE9XRURfTk9UX0VNUFRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfTk9UQUxMT1dFRF9OT1RfRU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfTlNOQU1FX0FUVFJfQU5DRVNUT1IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9OU05BTUVfQVRUUl9BTkNFU1RPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9OU05BTUVfTk9fTlMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9OU05BTUVfTk9fTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFSQU1fRk9SQklEREVOIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSQU1fRk9SQklEREVOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVJFTlRSRUZfQ1JFQVRFX0ZBSUxFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkVOVFJFRl9DUkVBVEVfRkFJTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBUkVOVFJFRl9OQU1FX0lOVkFMSUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVJFTlRSRUZfTkFNRV9JTlZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBUkVOVFJFRl9OT1RfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVJFTlRSRUZfTk9UX0VNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBUkVOVFJFRl9OT19OQU1FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFSRU5UUkVGX05PX05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFSRU5UUkVGX05PX1BBUkVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBUkVOVFJFRl9OT19QQVJFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFSU0VfRVJST1IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVJTRV9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfQU5ZTkFNRV9FWENFUFRfQU5ZTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9BTllOQU1FX0VYQ0VQVF9BTllOQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9BVFRSX0FUVFIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfQVRUUl9BVFRSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9BVFRSX0VMRU0iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfQVRUUl9FTEVNIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9BVFRSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0FUVFIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VMRU0iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRUxFTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0lOVEVSTEVBVkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0xJU1QiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfTElTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfT05FTU9SRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9PTkVNT1JFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1RFWFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfQVRUUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9MSVNUX0FUVFIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfRUxFTSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9MSVNUX0VMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfSU5URVJMRUFWRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9MSVNUX0lOVEVSTEVBVkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfTElTVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9MSVNUX0xJU1QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfUkVGIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX0xJU1RfUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9MSVNUX1RFWFQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfTElTVF9URVhUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX0FOWU5BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9BTllOQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX05TTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX05TTkFNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfT05FTU9SRV9HUk9VUF9BVFRSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX09ORU1PUkVfR1JPVVBfQVRUUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfT05FTU9SRV9JTlRFUkxFQVZFX0FUVFIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfT05FTU9SRV9JTlRFUkxFQVZFX0FUVFIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX0FUVFIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfQVRUUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfREFUQSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9EQVRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9TVEFSVF9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX0lOVEVSTEVBVkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfSU5URVJMRUFWRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfTElTVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BBVF9TVEFSVF9MSVNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1BBVF9TVEFSVF9PTkVNT1JFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfUEFUX1NUQVJUX09ORU1PUkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX1RFWFQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfVEVYVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfVkFMVUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9QQVRfU1RBUlRfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1BSRUZJWF9VTkRFRklORUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfQ1JFQVRFX0ZBSUxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9SRUZfQ1lDTEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfQ1lDTEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1JFRl9OQU1FX0lOVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUkVGX05PVF9FTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1JFRl9OT1RfRU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUkVGX05PX0RFRiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1JFRl9OT19ERUYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfUkVGX05PX05BTUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9SRUZfTk9fTkFNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9TVEFSVF9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9TVEFSVF9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfU1RBUlRfQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1NUQVJUX0NPTlRFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfU1RBUlRfRU1QVFkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9TVEFSVF9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9TVEFSVF9NSVNTSU5HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfU1RBUlRfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9URVhUX0VYUEVDVEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVEVYVF9FWFBFQ1RFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9URVhUX0hBU19DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1RFWFRfSEFTX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1RZUEVfTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1RZUEVfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfUk5HUF9UWVBFX05PVF9GT1VORCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1RZUEVfTk9UX0ZPVU5EIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1RZUEVfVkFMVUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9UWVBFX1ZBTFVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1VOS05PV05fQVRUUklCVVRFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVU5LTk9XTl9BVFRSSUJVVEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1VOS05PV05fQ09OU1RSVUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVU5LTk9XTl9DT05TVFJVQ1QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfVU5LTk9XTl9UWVBFX0xJQiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1VOS05PV05fVFlQRV9MSUIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfVVJJX0ZSQUdNRU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVVJJX0ZSQUdNRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1VSSV9OT1RfQUJTT0xVVEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfUk5HUF9VUklfTk9UX0FCU09MVVRFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9STkdQX1ZBTFVFX0VNUFRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfVkFMVUVfRU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfVkFMVUVfTk9fQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1ZBTFVFX05PX0NPTlRFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfWE1MTlNfTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9STkdQX1hNTE5TX05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1JOR1BfWE1MX05TIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1JOR1BfWE1MX05TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQVZFX0FTX0hUTUwiIGxpbms9ImxpYnhtbDIteG1sc2F2ZS5odG1sI1hNTF9TQVZFX0FTX0hUTUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NBVkVfQVNfWE1MIiBsaW5rPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCNYTUxfU0FWRV9BU19YTUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NBVkVfQ0hBUl9JTlZBTElEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NBVkVfQ0hBUl9JTlZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQVZFX0ZPUk1BVCIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjWE1MX1NBVkVfRk9STUFUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQVZFX05PVF9VVEY4IiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NBVkVfTk9UX1VURjgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NBVkVfTk9fREVDTCIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjWE1MX1NBVkVfTk9fREVDTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0FWRV9OT19ET0NUWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NBVkVfTk9fRE9DVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0FWRV9OT19FTVBUWSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjWE1MX1NBVkVfTk9fRU1QVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NBVkVfTk9fWEhUTUwiIGxpbms9ImxpYnhtbDIteG1sc2F2ZS5odG1sI1hNTF9TQVZFX05PX1hIVE1MIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQVZFX1VOS05PV05fRU5DT0RJTkciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQVZFX1hIVE1MIiBsaW5rPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCNYTUxfU0FWRV9YSFRNTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9BR19QUk9QU19DT1JSRUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQUdfUFJPUFNfQ09SUkVDVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9BVFRSRk9STURFRkFVTFRfVkFMVUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9BVFRSRk9STURFRkFVTFRfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQVRUUkdSUF9OT05BTUVfTk9SRUYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9BVFRSR1JQX05PTkFNRV9OT1JFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9BVFRSX05PTkFNRV9OT1JFRiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FUVFJfTk9OQU1FX05PUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1QiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1RfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1RfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8zIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09NUExFWFRZUEVfTk9OQU1FX05PUkVGIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09NUExFWFRZUEVfTk9OQU1FX05PUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfM18xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfM18yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80IiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzFfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzFfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl81IiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl81Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzJfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF80IiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF80Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9DVkNfU0lNUExFX1RZUEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9DVkNfU0lNUExFX1RZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfQ19QUk9QU19DT1JSRUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfQ19QUk9QU19DT1JSRUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVGX0FORF9QUkVGSVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8zIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0VMRU1GT1JNREVGQVVMVF9WQUxVRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VMRU1GT1JNREVGQVVMVF9WQUxVRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfRUxFTV9OT05BTUVfTk9SRUYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FTEVNX05PTkFNRV9OT1JFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9FWFRFTlNJT05fTk9fQkFTRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VYVEVOU0lPTl9OT19CQVNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF80Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF81IiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9GQUNFVF9OT19WQUxVRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0ZBQ0VUX05PX1ZBTFVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0ZBSUxFRF9CVUlMRF9JTVBPUlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9GQUlMRURfQlVJTERfSU1QT1JUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRkFJTEVEX0xPQUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfRkFJTEVEX1BBUlNFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfRkFJTEVEX1BBUlNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0dST1VQX05PTkFNRV9OT1JFRiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0dST1VQX05PTkFNRV9OT1JFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9JTVBPUlRfTkFNRVNQQUNFX05PVF9VUkkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTVBPUlRfTkFNRVNQQUNFX05PVF9VUkkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfSU1QT1JUX1JFREVGSU5FX05TTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lNUE9SVF9SRURFRklORV9OU05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfSU1QT1JUX1NDSEVNQV9OT1RfVVJJIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU1QT1JUX1NDSEVNQV9OT1RfVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PVF9VUkkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTkNMVURFX1NDSEVNQV9OT1RfVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PX1VSSSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PX1VSSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9JTlRFUk5BTCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVEVSTkFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVEVSU0VDVElPTl9OT1RfRVhQUkVTU0lCTEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlRFUlNFQ1RJT05fTk9UX0VYUFJFU1NJQkxFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9DT01CSU5BVElPTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9DT01CSU5BVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfSU5MSU5FX0NPTUJJTkFUSU9OIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0lOTElORV9DT01CSU5BVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfTkFNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9OQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9VU0UiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfVVNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQk9PTEVBTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfQk9PTEVBTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0VOVU0iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX0VOVU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVF9WQUxVRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9NQVhPQ0NVUlMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9JTlZBTElEX01BWE9DQ1VSUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfTUlOT0NDVVJTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfUkVGX0FORF9TVUJUWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfSU5WQUxJRF9SRUZfQU5EX1NVQlRZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9XSElURV9TUEFDRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX0lOVkFMSURfV0hJVEVfU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfTUdfUFJPUFNfQ09SUkVDVF8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTUdfUFJPUFNfQ09SUkVDVF8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9NSVNTSU5HX1NJTVBMRVRZUEVfQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9NSVNTSU5HX1NJTVBMRVRZUEVfQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfTk9BVFRSX05PUkVGIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9BVFRSX05PUkVGIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX05PUk9PVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PUk9PVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9OT1RBVElPTl9OT19OQU1FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9UQVRJT05fTk9fTkFNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9OT1RISU5HX1RPX1BBUlNFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9USElOR19UT19QQVJTRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9OT1RZUEVfTk9SRUYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9OT1RZUEVfTk9SRUYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfTk9UX0RFVEVSTUlOSVNUSUMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9OT1RfU0NIRU1BIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfTk9UX1NDSEVNQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9OT19YTUxOUyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PX1hNTE5TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX05PX1hTSSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX05PX1hTSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9QUkVGSVhfVU5ERUZJTkVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUFJFRklYX1VOREVGSU5FRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1JFQ1VSU0lWRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFQ1VSU0lWRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9SRURFRklORURfQVRUUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSR1JPVVAiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRURFRklORURfQVRUUkdST1VQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9FTEVNRU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX0VMRU1FTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfUkVERUZJTkVEX0dST1VQIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUkVERUZJTkVEX0dST1VQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9OT1RBVElPTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9OT1RBVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9SRURFRklORURfVFlQRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1JFRl9BTkRfQ09OVEVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1JFRl9BTkRfQ09OVEVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9SRUZfQU5EX1NVQlRZUEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRUZfQU5EX1NVQlRZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfUkVHRVhQX0lOVkFMSUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRUdFWFBfSU5WQUxJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9SRVNUUklDVElPTl9OT05BTUVfTk9SRUYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9SRVNUUklDVElPTl9OT05BTUVfTk9SRUYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfUzRTX0FUVFJfTUlTU0lORyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TNFNfRUxFTV9NSVNTSU5HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfUzRTX0VMRU1fTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NJTVBMRVRZUEVfTk9OQU1FIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU0lNUExFVFlQRV9OT05BTUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8zXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV80IiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV80Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8zIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19DVF8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0NUXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8zIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8xXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzNfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lOQ0xVREUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfSU5DTFVERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfTElTVF9JVEVNVFlQRV9PUl9TSU1QTEVUWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX0xJU1RfSVRFTVRZUEVfT1JfU0lNUExFVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfUkVTVFJJQ1RJT05fQkFTRV9PUl9TSU1QTEVUWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX1JFU1RSSUNUSU9OX0JBU0VfT1JfU0lNUExFVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfNCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV80Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19VTklPTl9NRU1CRVJUWVBFU19PUl9TSU1QTEVUWVBFUyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NSQ19VTklPTl9NRU1CRVJUWVBFU19PUl9TSU1QTEVUWVBFUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9TVVBFUk5VTUVST1VTX0xJU1RfSVRFTV9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfU1VQRVJOVU1FUk9VU19MSVNUX0lURU1fVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9UWVBFX0FORF9TVUJUWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVFlQRV9BTkRfU1VCVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTklPTl9OT1RfRVhQUkVTU0lCTEUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTklPTl9OT1RfRVhQUkVTU0lCTEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9BTExfQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0FMTF9DSElMRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0FOWUFUVFJJQlVURV9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQU5ZQVRUUklCVVRFX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQVRUUkdSUF9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQVRUUkdSUF9DSElMRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJJQlVURV9HUk9VUCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQVRUUklCVVRFX0dST1VQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQVRUUl9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQVRUUl9DSElMRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0JBU0VfVFlQRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQkFTRV9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQ0hPSUNFX0NISUxEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9DSE9JQ0VfQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYQ09OVEVOVF9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQ09NUExFWENPTlRFTlRfQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYVFlQRV9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fQ09NUExFWFRZUEVfQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9FTEVNX0NISUxEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9FTEVNX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fRVhURU5TSU9OX0NISUxEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9FWFRFTlNJT05fQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fR1JPVVBfQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX0dST1VQX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fSU1QT1JUX0NISUxEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9JTVBPUlRfQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9JTkNMVURFX0NISUxEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9JTkNMVURFX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fTElTVF9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fTElTVF9DSElMRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX01FTUJFUl9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9NRU1CRVJfVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX05PVEFUSU9OX0NISUxEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9OT1RBVElPTl9DSElMRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1BSRUZJWCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fUFJFRklYIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fUFJPQ0VTU0NPTlRFTlRfQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1BST0NFU1NDT05URU5UX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fUkVGIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9SRUYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9SRVNUUklDVElPTl9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fUkVTVFJJQ1RJT05fQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9TQ0hFTUFTX0NISUxEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9TQ0hFTUFTX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fU0VRVUVOQ0VfQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1NFUVVFTkNFX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFQ09OVEVOVF9DSElMRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFQ09OVEVOVF9DSElMRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRVRZUEVfQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRVRZUEVfQ0hJTEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfVU5LTk9XTl9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fVU5JT05fQ0hJTEQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9VTktOT1dOX1VOSU9OX0NISUxEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9QT0lOVExFU1NfUFJPSCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1dBUk5fQVRUUl9QT0lOVExFU1NfUFJPSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BUF9XQVJOX0FUVFJfUkVERUNMX1BST0giIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BUF9XQVJOX0FUVFJfUkVERUNMX1BST0giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfV0FSTl9TS0lQX1NDSEVNQSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFQX1dBUk5fU0tJUF9TQ0hFTUEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVBfV0FSTl9VTkxPQ0FURURfU0NIRU1BIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfV0FSTl9VTkxPQ0FURURfU0NIRU1BIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFQX1dJTERDQVJEX0lOVkFMSURfTlNfTUVNQkVSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19BTllUWVBFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19BTllUWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWVVSSSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQU5ZVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0JPT0xFQU4iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0JPT0xFQU4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfQllURSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfQllURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19EQVRFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19EQVRFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0RBVEVUSU1FIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19EQVRFVElNRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19ERUNJTUFMIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19ERUNJTUFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0RPVUJMRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRE9VQkxFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0RVUkFUSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19EVVJBVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FTlRJVElFUyIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfRU5USVRJRVMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRU5USVRZIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19FTlRJVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSXyIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSXyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfQVRUUklOVkFMSUQiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9BVFRSSU5WQUxJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfQVRUUlVOS05PV04iIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9BVFRSVU5LTk9XTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfQ09OU1RSVUNUIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfQ09OU1RSVUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9FTEVNQ09OVCIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX0VMRU1DT05UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9FWFRSQUNPTlRFTlQiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9FWFRSQUNPTlRFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0ZBQ0VUIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfRkFDRVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0hBVkVERUZBVUxUIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSEFWRURFRkFVTFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lOVEVSTkFMIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSU5URVJOQUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lOVkFMSURBVFRSIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSU5WQUxJREFUVFIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lOVkFMSURFTEVNIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfSU5WQUxJREVMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lTQUJTVFJBQ1QiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9JU0FCU1RSQUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9NSVNTSU5HIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9ST0xMQkFDSyIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PUk9MTEJBQ0siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX05PUk9PVCIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PUk9PVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9UREVURVJNSU5JU1QiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1RERVRFUk1JTklTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9URU1QVFkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1RFTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9UTklMTEFCTEUiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1ROSUxMQUJMRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9UU0lNUExFIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfTk9UU0lNUExFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RUT1BMRVZFTCIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX05PVFRPUExFVkVMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RZUEUiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI1hNTF9TQ0hFTUFTX0VSUl9OT1RZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX09LIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfT0siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX1VOREVDTEFSRURFTEVNIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfVU5ERUNMQVJFREVMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX1ZBTFVFIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfRVJSX1dST05HRUxFTSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjWE1MX1NDSEVNQVNfRVJSX1dST05HRUxFTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19FUlJfWFhYIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BU19FUlJfWFhYIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0ZMT0FUIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19GTE9BVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19HREFZIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HREFZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0dNT05USCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfR01PTlRIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0dNT05USERBWSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfR01PTlRIREFZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0dZRUFSIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HWUVBUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19HWUVBUk1PTlRIIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19HWUVBUk1PTlRIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0hFWEJJTkFSWSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfSEVYQklOQVJZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX0lEIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19JRFJFRiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfSURSRUYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfSURSRUZTIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JRFJFRlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfSU5UIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19JTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfSU5URUdFUiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfSU5URUdFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19MQU5HVUFHRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTEFOR1VBR0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfTE9ORyIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTE9ORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19OQU1FIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX05DTkFNRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfTkNOQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX05JTlRFR0VSIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OSU5URUdFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19OTVRPS0VOIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OTVRPS0VOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX05NVE9LRU5TIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OTVRPS0VOUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19OTklOVEVHRVIiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX05OSU5URUdFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19OT1JNU1RSSU5HIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OT1JNU1RSSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX05PVEFUSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19OT1RBVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19OUElOVEVHRVIiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX05QSU5URUdFUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19QSU5URUdFUiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfUElOVEVHRVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfUU5BTUUiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1FOQU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1NIT1JUIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19TSE9SVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19TVFJJTkciIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1NUUklORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19USU1FIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19USU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFTX1RPS0VOIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BU19UT0tFTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19VQllURSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVUJZVEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVUlOVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVUlOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19VTE9ORyIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVUxPTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVNfVU5LTk9XTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQVNfVU5LTk9XTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BU19VU0hPUlQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX1VTSE9SVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVFJPTlZfQVNTRVJUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVRST05WX0FTU0VSVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVFJPTlZfUkVQT1JUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVRST05WX1JFUE9SVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVFJPTl9PVVRfQlVGRkVSIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCNYTUxfU0NIRU1BVFJPTl9PVVRfQlVGRkVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFUUk9OX09VVF9FUlJPUiIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjWE1MX1NDSEVNQVRST05fT1VUX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFUUk9OX09VVF9GSUxFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCNYTUxfU0NIRU1BVFJPTl9PVVRfRklMRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVFJPTl9PVVRfSU8iIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9JTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVFJPTl9PVVRfUVVJRVQiIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI1hNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVFJPTl9PVVRfVEVYVCIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjWE1MX1NDSEVNQVRST05fT1VUX1RFWFQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVRST05fT1VUX1hNTCIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjWE1MX1NDSEVNQVRST05fT1VUX1hNTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9BVFRSSU5WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0FUVFJJTlZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0FUVFJVTktOT1dOIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQVRUUlVOS05PV04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ09OU1RSVUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ09OU1RSVUNUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8zIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfNCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfNCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQVUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl80IiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzJfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzJfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzVfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzVfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8zIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzJfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzJfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8xIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8xIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19FTFRfNiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRUxUXzciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19GQUNFVF9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19GQUNFVF9WQUxJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0lEQyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19JREMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19MRU5HVEhfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01BWEVYQ0xVU0lWRV9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19NQVhFWENMVVNJVkVfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19NQVhJTkNMVVNJVkVfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19NQVhMRU5HVEhfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01JTkVYQ0xVU0lWRV9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19NSU5FWENMVVNJVkVfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01JTklOQ0xVU0lWRV9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19NSU5JTkNMVVNJVkVfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19NSU5MRU5HVEhfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1BBVFRFUk5fVkFMSUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfUEFUVEVSTl9WQUxJRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19UWVBFXzEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19UWVBFXzIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzEiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19XSUxEQ0FSRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0NWQ19XSUxEQ0FSRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9ET0NVTUVOVF9FTEVNRU5UX01JU1NJTkciIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9ET0NVTUVOVF9FTEVNRU5UX01JU1NJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfRUxFTUNPTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9FTEVNQ09OVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfRVhUUkFDT05URU5UIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfRVhUUkFDT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0ZBQ0VUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfRkFDRVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfSEFWRURFRkFVTFQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9IQVZFREVGQVVMVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9JTlRFUk5BTCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX0lOVEVSTkFMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX0lOVkFMSURBVFRSIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfSU5WQUxJREFUVFIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfSU5WQUxJREVMRU0iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9JTlZBTElERUxFTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9JU0FCU1RSQUNUIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfSVNBQlNUUkFDVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9NSVNDIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTUlTQyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9NSVNTSU5HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTUlTU0lORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9OT1JPTExCQUNLIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9ST0xMQkFDSyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9OT1JPT1QiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1JPT1QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfTk9UREVURVJNSU5JU1QiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9OT1RERVRFUk1JTklTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9OT1RFTVBUWSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9TQ0hFTUFWX05PVEVNUFRZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX05PVE5JTExBQkxFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UTklMTEFCTEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfTk9UU0lNUExFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UU0lNUExFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX05PVFRPUExFVkVMIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UVE9QTEVWRUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfTk9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfTk9UWVBFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFWX1VOREVDTEFSRURFTEVNIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1NDSEVNQVZfVU5ERUNMQVJFREVMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQVZfVkFMVUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9WQUxVRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BVl9XUk9OR0VMRU0iIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfU0NIRU1BVl9XUk9OR0VMRU0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9DT05URU5UX0FOWSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9DT05URU5UX0FOWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9FTVBUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRURfT1JfRUxFTUVOVFMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRF9PUl9FTEVNRU5UUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfQ09OVEVOVF9VTktOT1dOIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0NPTlRFTlRfVU5LTk9XTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9FWFRSQV9BVFRSX1VTRV9QUk9ISUIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEgiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX01BWEVYQ0xVU0lWRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEgiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTUlORVhDTFVTSVZFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9NSU5JTkNMVVNJVkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEgiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0FMTCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0FMTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQU5ZIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQU5ZIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQU5ZX0FUVFJJQlVURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQkFTSUMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9CQVNJQyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQ09NUExFWCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfRVhURU5TSU9OIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfRVhURU5TSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9GQUNFVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0ZBQ0VUIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9HUk9VUCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0dST1VQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfSURDX0tFWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0lEQ19VTklRVUUiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9JRENfVU5JUVVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9MSVNUIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfTElTVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfTk9UQVRJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfUEFSVElDTEUiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfUkVTVFJJQ1RJT04iIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfU0lNUExFIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCNYTUxfU0NIRU1BX1RZUEVfU0lNUExFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVCIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX1NJTVBMRV9DT05URU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9VTklPTiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX1VOSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9VUiIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjWE1MX1NDSEVNQV9UWVBFX1VSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfVkFMX1ZDX0lfQ1JFQVRFIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCNYTUxfU0NIRU1BX1ZBTF9WQ19JX0NSRUFURSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCNYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9XSElURVNQQUNFX1JFUExBQ0UiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjWE1MX1NDSEVNQV9XSElURVNQQUNFX1JFUExBQ0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04iIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1RFWFRSRUFERVJfTU9ERV9DTE9TRUQiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1RFWFRSRUFERVJfTU9ERV9DTE9TRUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1RFWFRSRUFERVJfTU9ERV9FT0YiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjWE1MX1RFWFRSRUFERVJfTU9ERV9FT0YiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1RFWFRSRUFERVJfTU9ERV9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9URVhUUkVBREVSX01PREVfSU5JVElBTCIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1RFWFRSRUFERVJfTU9ERV9JTlRFUkFDVElWRSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9URVhUUkVBREVSX01PREVfUkVBRElORyIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCNYTUxfVEVYVFJFQURFUl9NT0RFX1JFQURJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1RFWFRfTk9ERSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjWE1MX1RFWFRfTk9ERSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfVFJFRV9JTlZBTElEX0RFQyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9UUkVFX0lOVkFMSURfREVDIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9UUkVFX0lOVkFMSURfSEVYIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1RSRUVfSU5WQUxJRF9IRVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1RSRUVfTk9UX1VURjgiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfVFJFRV9OT1RfVVRGOCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfVFJFRV9VTlRFUk1JTkFURURfRU5USVRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1RSRUVfVU5URVJNSU5BVEVEX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0FSX0NBVEFMT0dfUEkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfV0FSX0NBVEFMT0dfUEkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dBUl9FTlRJVFlfUkVERUZJTkVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9FTlRJVFlfUkVERUZJTkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XQVJfTEFOR19WQUxVRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9XQVJfTEFOR19WQUxVRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0FSX05TX0NPTFVNTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9XQVJfTlNfQ09MVU1OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XQVJfTlNfVVJJIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9OU19VUkkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dBUl9OU19VUklfUkVMQVRJVkUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfV0FSX05TX1VSSV9SRUxBVElWRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0FSX1NQQUNFX1ZBTFVFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9TUEFDRV9WQUxVRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0FSX1VOS05PV05fVkVSU0lPTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9XQVJfVU5LTk9XTl9WRVJTSU9OIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX0FVVE9NQVRBIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX0FVVE9NQVRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX0MxNE4iIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfQzE0TiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9DQVRBTE9HIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX0NBVEFMT0ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfREVCVUciIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfREVCVUciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfREVCVUdfTUVNIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX0RFQlVHX01FTSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9ERUJVR19SVU4iIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfREVCVUdfUlVOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX0VYUFIiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfRVhQUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9GVFAiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfRlRQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX0hUTUwiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfSFRNTCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9IVFRQIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX0hUVFAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfSUNPTlYiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfSUNPTlYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfSVNPODg1OVgiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfSVNPODg1OVgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfTEVHQUNZIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX0xFR0FDWSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9NT0RVTEVTIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX01PRFVMRVMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfTk9ORSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9OT05FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX09VVFBVVCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9PVVRQVVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfUEFUVEVSTiIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9QQVRURVJOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX1BVU0giIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfUFVTSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9SRUFERVIiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfUkVBREVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX1JFR0VYUCIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9SRUdFWFAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfU0FYMSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9TQVgxIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX1NDSEVNQVMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfU0NIRU1BUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9TQ0hFTUFUUk9OIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX1NDSEVNQVRST04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfVEhSRUFEIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX1RIUkVBRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfV0lUSF9UUkVFIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX1RSRUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfVU5JQ09ERSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9VTklDT0RFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX1ZBTElEIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI1hNTF9XSVRIX1ZBTElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX1dSSVRFUiIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9XUklURVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfWElOQ0xVREUiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfWElOQ0xVREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfWFBBVEgiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfWFBBVEgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1dJVEhfWFBUUiIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNYTUxfV0lUSF9YUFRSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9XSVRIX1pMSUIiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjWE1MX1dJVEhfWkxJQiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0JVSUxEX0ZBSUxFRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWElOQ0xVREVfREVQUkVDQVRFRF9OUyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9ERVBSRUNBVEVEX05TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YSU5DTFVERV9FTkQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI1hNTF9YSU5DTFVERV9FTkQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX0VOVElUWV9ERUZfTUlTTUFUQ0giIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfRU5USVRZX0RFRl9NSVNNQVRDSCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX0ZBTExCQUNLX05PVF9JTl9JTkNMVURFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX0ZBTExCQUNLX05PVF9JTl9JTkNMVURFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YSU5DTFVERV9GUkFHTUVOVF9JRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9GUkFHTUVOVF9JRCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWElOQ0xVREVfSFJFRl9VUkkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfSFJFRl9VUkkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX0lOQ0xVREVfSU5fSU5DTFVERSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9JTkNMVURFX0lOX0lOQ0xVREUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX0lOVkFMSURfQ0hBUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9JTlZBTElEX0NIQVIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX01VTFRJUExFX1JPT1QiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfTVVMVElQTEVfUk9PVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWElOQ0xVREVfTk9fRkFMTEJBQ0siIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfTk9fRkFMTEJBQ0siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX05PX0hSRUYiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfTk9fSFJFRiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX1JFQ1VSU0lPTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9SRUNVUlNJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX1NUQVJUIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCNYTUxfWElOQ0xVREVfU1RBUlQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX1RFWFRfRE9DVU1FTlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWElOQ0xVREVfVEVYVF9ET0NVTUVOVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWElOQ0xVREVfVEVYVF9GUkFHTUVOVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9URVhUX0ZSQUdNRU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YSU5DTFVERV9VTktOT1dOX0VOQ09ESU5HIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX1VOS05PV05fRU5DT0RJTkciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hJTkNMVURFX1hQVFJfRkFJTEVEIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hJTkNMVURFX1hQVFJfRkFJTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YSU5DTFVERV9YUFRSX1JFU1VMVCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YSU5DTFVERV9YUFRSX1JFU1VMVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfRU5DT0RJTkdfRVJST1IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfRU5DT0RJTkdfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX0VYUFJFU1NJT05fT0siIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfRVhQUl9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9FWFBSX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX0FSSVRZIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0lOVkFMSURfQVJJVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX0lOVkFMSURfQ0hBUl9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9JTlZBTElEX0NIQVJfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9TSVpFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9TSVpFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX09QRVJBTkQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5EIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfSU5WQUxJRF9UWVBFIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX0lOVkFMSURfVFlQRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfTUVNT1JZX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX01FTU9SWV9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfTlVNQkVSX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX05VTUJFUl9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YUEFUSF9VTkNMT1NFRF9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9VTkNMT1NFRF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQVFJfQ0hJTERTRVFfU1RBUlQiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWFBUUl9DSElMRFNFUV9TVEFSVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBUUl9FVkFMX0ZBSUxFRCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUFRSX0VWQUxfRkFJTEVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YUFRSX0VYVFJBX09CSkVDVFMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNYTUxfWFBUUl9FWFRSQV9PQkpFQ1RTIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YUFRSX1JFU09VUkNFX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQVFJfUkVTT1VSQ0VfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWE1MX1hQVFJfU1VCX1JFU09VUkNFX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjWE1MX1hQVFJfU1VCX1JFU09VUkNFX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhNTF9YUFRSX1NZTlRBWF9FUlJPUiIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUFRSX1NZTlRBWF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYTUxfWFBUUl9VTktOT1dOX1NDSEVNRSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI1hNTF9YUFRSX1VOS05PV05fU0NIRU1FIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX0JPT0xFQU4iIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9CT09MRUFOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX0VOQ09ESU5HX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfRU5DT0RJTkdfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfRVhQUkVTU0lPTl9PSyIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX0VYUFJFU1NJT05fT0siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfRVhQUl9FUlJPUiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX0VYUFJfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfSU5WQUxJRF9BUklUWSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX0lOVkFMSURfQVJJVFkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX0lOVkFMSURfQ1RYVCIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX0lOVkFMSURfQ1RYVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfSU5WQUxJRF9DVFhUX1NJWkUiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX0NUWFRfU0laRSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9JTlZBTElEX09QRVJBTkQiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX09QRVJBTkQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9JTlZBTElEX1RZUEUiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9JTlZBTElEX1RZUEUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfTE9DQVRJT05TRVQiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9MT0NBVElPTlNFVCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9NRU1PUllfRVJST1IiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9NRU1PUllfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfTk9ERVNFVCIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX05PREVTRVQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfTlVNQkVSIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfTlVNQkVSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX05VTUJFUl9FUlJPUiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX05VTUJFUl9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9QT0lOVCIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX1BPSU5UIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX1JBTkdFIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfUkFOR0UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX1NUQVJUX0xJVEVSQUxfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfU1RSSU5HIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfU1RSSU5HIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX1VOQ0xPU0VEX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfVU5DTE9TRURfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfVU5ERUZJTkVEIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfVU5ERUZJTkVEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfVVNFUlMiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9VU0VSUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJYUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBBVEhfWFNMVF9UUkVFIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBBVEhfWFNMVF9UUkVFIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQVFJfUkVTT1VSQ0VfRVJST1IiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUFRSX1JFU09VUkNFX0VSUk9SIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9IlhQVFJfU1VCX1JFU09VUkNFX0VSUk9SIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iWFBUUl9TWU5UQVhfRVJST1IiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCNYUFRSX1NZTlRBWF9FUlJPUiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiRG9jUHRyIiBsaW5rPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImRvY2JQYXJzZXJDdHh0IiBsaW5rPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiUGFyc2VyQ3R4dFB0ciIgbGluaz0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZG9jYlBhcnNlcklucHV0IiBsaW5rPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VySW5wdXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZG9jYlBhcnNlcklucHV0UHRyIiBsaW5rPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VySW5wdXRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZG9jYlNBWEhhbmRsZXIiIGxpbms9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImRvY2JTQVhIYW5kbGVyUHRyIiBsaW5rPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sRG9jUHRyIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxFbGVtRGVzY1B0ciIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxFbnRpdHlEZXNjUHRyIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5RGVzY1B0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sTm9kZVB0ciIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFBhcnNlckN0eHQiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxQYXJzZXJDdHh0UHRyIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sUGFyc2VySW5wdXQiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJJbnB1dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sUGFyc2VySW5wdXRQdHIiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJJbnB1dFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sUGFyc2VyTm9kZUluZm8iIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJOb2RlSW5mbyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sUGFyc2VyT3B0aW9uIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyT3B0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxTQVhIYW5kbGVyIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYSGFuZGxlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sU0FYSGFuZGxlclB0ciIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWEhhbmRsZXJQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFN0YXR1cyIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFN0YXR1cyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bGlua0FjdHVhdGUiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0FjdHVhdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieGxpbmtIUmVmIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtIUmVmIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhsaW5rSGFuZGxlclB0ciIgbGluaz0ibGlieG1sMi14bGluay5odG1sI3hsaW5rSGFuZGxlclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bGlua1JvbGUiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1JvbGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieGxpbmtTaG93IiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtTaG93Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhsaW5rVGl0bGUiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1RpdGxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhsaW5rVHlwZSIgbGluaz0ibGlieG1sMi14bGluay5odG1sI3hsaW5rVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdHRyUHRyIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF0dHJpYnV0ZURlZmF1bHQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJpYnV0ZURlZmF1bHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXR0cmlidXRlUHRyIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXR0cmlidXRlVGFibGVQdHIiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdHRyaWJ1dGVUeXBlIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF1dG9tYXRhUHRyIiBsaW5rPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFTdGF0ZVB0ciIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDMTROTW9kZSIgbGluaz0ibGlieG1sMi1jMTRuLmh0bWwjeG1sQzE0Tk1vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ0FsbG93IiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWxsb3ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ1ByZWZlciIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1ByZWZlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nUHRyIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENoTFJhbmdlUHRyIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxDaExSYW5nZVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaFJhbmdlR3JvdXBQdHIiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoUmFuZ2VHcm91cFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaFNSYW5nZVB0ciIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sQ2hTUmFuZ2VQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hhciIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENoYXJFbmNvZGluZyIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxET01XcmFwQ3R4dFB0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGljdFB0ciIgbGluaz0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEb2NQcm9wZXJ0aWVzIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NQcm9wZXJ0aWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERvY1B0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbER0ZFB0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRHRkUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVsZW1lbnRDb250ZW50T2NjdXIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50T2NjdXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRWxlbWVudENvbnRlbnRQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVsZW1lbnRDb250ZW50VHlwZSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVsZW1lbnRQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRWxlbWVudFRhYmxlUHRyIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRWxlbWVudFRhYmxlUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVsZW1lbnRUeXBlIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFbGVtZW50VHlwZVZhbCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGVWYWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW50aXRpZXNUYWJsZVB0ciIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW50aXR5UHRyIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW50aXR5VHlwZSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0eVR5cGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW51bWVyYXRpb25QdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVycm9yRG9tYWluIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JEb21haW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXJyb3JMZXZlbCIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEVycm9yTGV2ZWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXJyb3JQdHIiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxFcnJvclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFeHBDdHh0UHRyIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwTm9kZVB0ciIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cE5vZGVUeXBlIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZlYXR1cmUiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sRmVhdHVyZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHbG9iYWxTdGF0ZVB0ciIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sR2xvYmFsU3RhdGVQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaFRhYmxlUHRyIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSURQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbElEUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElEVGFibGVQdHIiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxJRFRhYmxlUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpbmtQdHIiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpbmtQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdFB0ciIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMb2NhdGlvblNldFB0ciIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1vZHVsZU9wdGlvbiIgbGluaz0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcHRpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTW9kdWxlUHRyIiBsaW5rPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxNdXRleFB0ciIgbGluaz0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sTXV0ZXhQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZVB0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb2RlU2V0UHRyIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb3RhdGlvblB0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm90YXRpb25UYWJsZVB0ciIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTnNQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5zUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5zVHlwZSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTnNUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dEJ1ZmZlclB0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlckN0eHRQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VyRXJyb3JzIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyUHRyIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJJbnB1dFB0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VySW5wdXRTdGF0ZSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dFN0YXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlck1vZGUiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTW9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJOb2RlSW5mb1B0ciIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1B0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJPcHRpb24iIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlclByb3BlcnRpZXMiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUGFyc2VyUHJvcGVydGllcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJTZXZlcml0aWVzIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFBhcnNlclNldmVyaXRpZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGF0dGVybkZsYWdzIiBsaW5rPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuRmxhZ3MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGF0dGVyblB0ciIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSTXV0ZXhQdHIiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkZXJUeXBlcyIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJUeXBlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWZQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFJlZlB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWZUYWJsZVB0ciIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFJlZlRhYmxlUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ0V4ZWNDdHh0UHRyIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ2V4cFB0ciIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdQYXJzZXJGbGFnIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyRmxhZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HUHRyIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdWYWxpZEN0eHRQdHIiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR1ZhbGlkRXJyIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRFcnIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYSGFuZGxlclB0ciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhIYW5kbGVyVjFQdHIiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWExvY2F0b3JQdHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2F2ZUN0eHRQdHIiIGxpbms9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNhdmVPcHRpb24iIGxpbms9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVPcHRpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hQW5ub3RQdHIiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZVB0ciIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUNvbnRlbnRUeXBlIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFDb250ZW50VHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFFbGVtZW50UHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFFbGVtZW50UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUZhY2V0TGlua1B0ciIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRMaW5rUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUZhY2V0UHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFOb3RhdGlvblB0ciIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hTm90YXRpb25QdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFQdHIiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFTQVhQbHVnUHRyIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVR5cGVMaW5rUHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlTGlua1B0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFUeXBlUHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVR5cGVUeXBlIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFWYWxQdHIiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFWYWxUeXBlIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbGlkQ3R4dFB0ciIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbGlkRXJyb3IiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkRXJyb3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRPcHRpb24iIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkT3B0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVdpbGRjYXJkUHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hdHJvblB0ciIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMiIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2hlbGxDdHh0UHRyIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmVhbUN0eHRQdHIiIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlck1vZGUiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclB0ciIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJQdHIiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVUklQdHIiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sVVJJUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkQ3R4dFB0ciIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZFN0YXRlUHRyIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRTdGF0ZVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYSW5jbHVkZUN0eHRQdHIiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhBeGlzUHRyIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ29tcEV4cHJQdHIiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ29udGV4dFB0ciIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEVycm9yIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhFcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZ1bmNQdHIiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmNQdHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhPYmplY3RQdHIiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE9iamVjdFR5cGUiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFR5cGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVHlwZVB0ciIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoVHlwZVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFZhcmlhYmxlUHRyIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZVB0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sRWxlbURlc2MiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtRGVzYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sRW50aXR5RGVzYyIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieGxpbmtIYW5kbGVyIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF0dHIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXR0cmlidXRlIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXR0cmlidXRlVGFibGUiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdXRvbWF0YSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF1dG9tYXRhU3RhdGUiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2ciIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hMUmFuZ2UiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbENoTFJhbmdlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENoUmFuZ2VHcm91cCIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sQ2hSYW5nZUdyb3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENoU1JhbmdlIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxDaFNSYW5nZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxET01XcmFwQ3R4dCIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGljdCIgbGluaz0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEb2MiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbERvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEdGQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbER0ZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFbGVtZW50IiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVsZW1lbnRDb250ZW50IiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFbGVtZW50VGFibGUiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW50aXRpZXNUYWJsZSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW50aXR5IiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW51bWVyYXRpb24iIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEVudW1lcmF0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVycm9yIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sRXJyb3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwQ3R4dCIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cE5vZGUiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHbG9iYWxTdGF0ZSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sR2xvYmFsU3RhdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaFRhYmxlIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSUQiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElEVGFibGUiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxJRFRhYmxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpbmsiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpbmsiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdCIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMb2NhdGlvblNldCIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1vZHVsZSIgbGluaz0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTXV0ZXgiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbE11dGV4Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGUiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZVNldCIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbE5vZGVTZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm90YXRpb24iIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vdGF0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vdGF0aW9uVGFibGUiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5zIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxPdXRwdXRCdWZmZXIiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJDdHh0IiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0IiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VyTm9kZUluZm8iIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VyTm9kZUluZm9TZXEiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGF0dGVybiIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSTXV0ZXgiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWYiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFJlZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWZUYWJsZSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFJlZlRhYmxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ0V4ZWNDdHh0IiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ2V4cCIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhORyIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhORyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HUGFyc2VyQ3R4dCIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR1ZhbGlkQ3R4dCIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhIYW5kbGVyIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWEhhbmRsZXJWMSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYTG9jYXRvciIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU0FYTG9jYXRvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTYXZlQ3R4dCIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hQW5ub3QiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUVsZW1lbnQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUVsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hRmFjZXQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUZhY2V0TGluayIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRMaW5rIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYU5vdGF0aW9uIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFOb3RhdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFQYXJzZXJDdHh0IiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVHlwZSIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFUeXBlTGluayIgbGluaz0ibGlieG1sMi1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZUxpbmsiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRDdHh0IiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hV2lsZGNhcmQiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVdpbGRjYXJkTnMiIGxpbms9ImxpYnhtbDItc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkTnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hdHJvbiIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hdHJvblZhbGlkQ3R4dCIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTaGVsbEN0eHQiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyZWFtQ3R4dCIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlciIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVSSSIgbGluaz0ibGlieG1sMi11cmkuaHRtbCN4bWxVUkkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRDdHh0IiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkU3RhdGUiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZFN0YXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhJbmNsdWRlQ3R4dCIgbGluaz0ibGlieG1sMi14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEF4aXMiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEF4aXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDb21wRXhwciIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDb250ZXh0IiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRnVuY3QiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoT2JqZWN0IiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhQYXJzZXJDb250ZXh0IiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVHlwZSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFZhcmlhYmxlIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJhdHRyaWJ1dGVEZWNsU0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNhdHRyaWJ1dGVEZWNsU0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJhdHRyaWJ1dGVTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2F0dHJpYnV0ZVNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iY2RhdGFCbG9ja1NBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjY2RhdGFCbG9ja1NBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iY2hhcmFjdGVyc1NBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjY2hhcmFjdGVyc1NBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iY29tbWVudFNBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjY29tbWVudFNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZWxlbWVudERlY2xTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VsZW1lbnREZWNsU0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJlbmREb2N1bWVudFNBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjZW5kRG9jdW1lbnRTQVhGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImVuZEVsZW1lbnROc1NBWDJGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VuZEVsZW1lbnROc1NBWDJGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImVuZEVsZW1lbnRTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VuZEVsZW1lbnRTQVhGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImVudGl0eURlY2xTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2VudGl0eURlY2xTQVhGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImVycm9yU0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNlcnJvclNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZXh0ZXJuYWxTdWJzZXRTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2V4dGVybmFsU3Vic2V0U0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJmYXRhbEVycm9yU0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNmYXRhbEVycm9yU0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJmdHBEYXRhQ2FsbGJhY2siIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI2Z0cERhdGFDYWxsYmFjayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJmdHBMaXN0Q2FsbGJhY2siIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI2Z0cExpc3RDYWxsYmFjayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJnZXRFbnRpdHlTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2dldEVudGl0eVNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI2hhc0ludGVybmFsU3Vic2V0U0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJpbnRlcm5hbFN1YnNldFNBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjaW50ZXJuYWxTdWJzZXRTQVhGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImlzU3RhbmRhbG9uZVNBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjaXNTdGFuZGFsb25lU0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJub3RhdGlvbkRlY2xTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI25vdGF0aW9uRGVjbFNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0icHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InJlZmVyZW5jZVNBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJyZXNvbHZlRW50aXR5U0FYRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNyZXNvbHZlRW50aXR5U0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ic3RhcnREb2N1bWVudFNBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjc3RhcnREb2N1bWVudFNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ic3RhcnRFbGVtZW50TnNTQVgyRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InN0YXJ0RWxlbWVudFNBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50U0FYRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ1bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3VucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0id2FybmluZ1NBWEZ1bmMiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjd2FybmluZ1NBWEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieGxpbmtFeHRlbmRlZExpbmtGdW5rIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtFeHRlbmRlZExpbmtGdW5rIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayIgbGluaz0ibGlieG1sMi14bGluay5odG1sI3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bGlua05vZGVEZXRlY3RGdW5jIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtOb2RlRGV0ZWN0RnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bGlua1NpbXBsZUxpbmtGdW5rIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtTaW1wbGVMaW5rRnVuayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siIGxpbms9ImxpYnhtbDItYzE0bi5odG1sI3htbEMxNE5Jc1Zpc2libGVDYWxsYmFjayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGVyZWdpc3Rlck5vZGVGdW5jIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW50aXR5UmVmZXJlbmNlRnVuYyIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4dGVybmFsRW50aXR5TG9hZGVyIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVGdW5jIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbEZyZWVGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdlbmVyaWNFcnJvckZ1bmMiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hDb3BpZXIiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hDb3BpZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaERlYWxsb2NhdG9yIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaFNjYW5uZXIiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hTY2FubmVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hTY2FubmVyRnVsbCIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElucHV0Q2xvc2VDYWxsYmFjayIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJbnB1dE1hdGNoQ2FsbGJhY2siIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSW5wdXRPcGVuQ2FsbGJhY2siIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJbnB1dE9wZW5DYWxsYmFjayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJbnB1dFJlYWRDYWxsYmFjayIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3REYXRhQ29tcGFyZSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdERhdGFDb21wYXJlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3REZWFsbG9jYXRvciIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdERlYWxsb2NhdG9yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RXYWxrZXIiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RXYWxrZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWFsbG9jRnVuYyIgbGluaz0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dENsb3NlQ2FsbGJhY2siIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dE1hdGNoQ2FsbGJhY2siIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRNYXRjaENhbGxiYWNrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dE9wZW5DYWxsYmFjayIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dE9wZW5DYWxsYmFjayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VySW5wdXREZWFsbG9jYXRlIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0RGVhbGxvY2F0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFsbG9jRnVuYyIgbGluaz0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdFeGVjQ2FsbGJhY2tzIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVnaXN0ZXJOb2RlRnVuYyIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMiIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsQ21kIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDbWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2hlbGxSZWFkbGluZUZ1bmMiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbFJlYWRsaW5lRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJkdXBGdW5jIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RydWN0dXJlZEVycm9yRnVuYyIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckVycm9yRnVuYyIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkaXR5RXJyb3JGdW5jIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRpdHlFcnJvckZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRpdHlXYXJuaW5nRnVuYyIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkaXR5V2FybmluZ0Z1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhBeGlzRnVuYyIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQXhpc0Z1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDb252ZXJ0RnVuYyIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhFdmFsRnVuYyIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRXZhbEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhGdW5jTG9va3VwRnVuYyIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhGdW5jdGlvbiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiRGVmYXVsdFNBWEhhbmRsZXIiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI2RvY2JEZWZhdWx0U0FYSGFuZGxlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJlbXB0eUV4cCIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCNlbXB0eUV4cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJmb3JiaWRkZW5FeHAiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjZm9yYmlkZGVuRXhwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxEZWZhdWx0U0FYSGFuZGxlciIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjaHRtbERlZmF1bHRTQVhIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Im9sZFhNTFdEY29tcGF0aWJpbGl0eSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjb2xkWE1MV0Rjb21wYXRpYmlsaXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlckFsbG9jU2NoZW1lIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxCdWZmZXJBbGxvY1NjaGVtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWZhdWx0QnVmZmVyU2l6ZSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sRGVmYXVsdEJ1ZmZlclNpemUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGVmYXVsdFNBWEhhbmRsZXIiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbERlZmF1bHRTQVhIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERlZmF1bHRTQVhMb2NhdG9yIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxEZWZhdWx0U0FYTG9jYXRvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sRnJlZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZW5lcmljRXJyb3IiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbEdlbmVyaWNFcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZW5lcmljRXJyb3JDb250ZXh0IiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxHZW5lcmljRXJyb3JDb250ZXh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJbmRlbnRUcmVlT3V0cHV0IiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxJbmRlbnRUcmVlT3V0cHV0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQmFzZUNoYXJHcm91cCIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNCYXNlQ2hhckdyb3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQ2hhckdyb3VwIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJHcm91cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc0NvbWJpbmluZ0dyb3VwIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZ0dyb3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzRGlnaXRHcm91cCIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNEaWdpdEdyb3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzRXh0ZW5kZXJHcm91cCIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNFeHRlbmRlckdyb3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzSWRlb2dyYXBoaWNHcm91cCIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpY0dyb3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzUHViaWRDaGFyX3RhYiIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNQdWJpZENoYXJfdGFiIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGFzdEVycm9yIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxMYXN0RXJyb3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbExvYWRFeHREdGREZWZhdWx0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWFsbG9jIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxNYWxsb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWFsbG9jQXRvbWljIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxNYWxsb2NBdG9taWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWVtU3RyZHVwIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxNZW1TdHJkdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlck1heERlcHRoIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlck1heERlcHRoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlclZlcnNpb24iIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFBhcnNlclZlcnNpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWxsb2MiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFJlYWxsb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2F2ZU5vRW1wdHlUYWdzIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxTYXZlTm9FbXB0eVRhZ3MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyaW5nQ29tbWVudCIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdDb21tZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmluZ1RleHQiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nVGV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJpbmdUZXh0Tm9lbmMiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3RyaW5nVGV4dE5vZW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cnVjdHVyZWRFcnJvciIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFN0cnVjdHVyZWRFcnJvckNvbnRleHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVHJlZUluZGVudFN0cmluZyIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sVHJlZUluZGVudFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5BTiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoTkFOIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTklORiIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoTklORiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFBJTkYiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aFBJTkYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iVVRGOFRvSHRtbCAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjVVRGOFRvSHRtbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJVVEY4VG9pc29sYXQxICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJhdHRyaWJ1dGUgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImF0dHJpYnV0ZURlY2wgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjYXR0cmlidXRlRGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJjZGF0YUJsb2NrICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2NkYXRhQmxvY2siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iY2hhcmFjdGVycyAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCNjaGFyYWN0ZXJzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImNoZWNrTmFtZXNwYWNlICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2NoZWNrTmFtZXNwYWNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImNvbW1lbnQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjY29tbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCNkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImRvY2JFbmNvZGVFbnRpdGllcyAoKSIgbGluaz0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYkVuY29kZUVudGl0aWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImRvY2JGcmVlUGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYkZyZWVQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImRvY2JQYXJzZUNodW5rICgpIiBsaW5rPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VDaHVuayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiUGFyc2VEb2MgKCkiIGxpbms9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZURvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiUGFyc2VEb2N1bWVudCAoKSIgbGluaz0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRG9jdW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZG9jYlBhcnNlRmlsZSAoKSIgbGluaz0ibGlieG1sMi1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlRmlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiU0FYUGFyc2VEb2MgKCkiIGxpbms9ImxpYnhtbDItRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZURvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJkb2NiU0FYUGFyc2VGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYUGFyc2VGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImVsZW1lbnREZWNsICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2VsZW1lbnREZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImVuZERvY3VtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2VuZERvY3VtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImVuZEVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjZW5kRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJlbnRpdHlEZWNsICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2VudGl0eURlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZXh0ZXJuYWxTdWJzZXQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjZXh0ZXJuYWxTdWJzZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZ2V0Q29sdW1uTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2dldENvbHVtbk51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJnZXRFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjZ2V0RW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImdldExpbmVOdW1iZXIgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjZ2V0TGluZU51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJnZXROYW1lc3BhY2UgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjZ2V0TmFtZXNwYWNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImdldFBhcmFtZXRlckVudGl0eSAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZ2V0UHVibGljSWQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjZ2V0UHVibGljSWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZ2V0U3lzdGVtSWQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjZ2V0U3lzdGVtSWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iZ2xvYmFsTmFtZXNwYWNlICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2dsb2JhbE5hbWVzcGFjZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJoYXNFeHRlcm5hbFN1YnNldCAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCNoYXNFeHRlcm5hbFN1YnNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJoYXNJbnRlcm5hbFN1YnNldCAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCNoYXNJbnRlcm5hbFN1YnNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sQXR0ckFsbG93ZWQgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxBdHRyQWxsb3dlZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sQXV0b0Nsb3NlVGFnICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sQXV0b0Nsb3NlVGFnIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxDdHh0UmVhZERvYyAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRSZWFkRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxDdHh0UmVhZEZkICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRGZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sQ3R4dFJlYWRGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxDdHh0UmVhZElPICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlYWRJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sQ3R4dFJlYWRNZW1vcnkgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxDdHh0UmVhZE1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sQ3R4dFJlc2V0ICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sQ3R4dFJlc2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxDdHh0VXNlT3B0aW9ucyAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEN0eHRVc2VPcHRpb25zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQgKCkiIGxpbms9ImxpYnhtbDItU0FYMi5odG1sI2h0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0ICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUx0cmVlLmh0bWwjaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxEb2NDb250ZW50RHVtcE91dHB1dCAoKSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI2h0bWxEb2NDb250ZW50RHVtcE91dHB1dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sRG9jRHVtcCAoKSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI2h0bWxEb2NEdW1wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxEb2NEdW1wTWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUx0cmVlLmh0bWwjaHRtbERvY0R1bXBNZW1vcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQgKCkiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sRWxlbWVudEFsbG93ZWRIZXJlICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudEFsbG93ZWRIZXJlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxFbGVtZW50U3RhdHVzSGVyZSAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1lbnRTdGF0dXNIZXJlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxFbmNvZGVFbnRpdGllcyAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbEVuY29kZUVudGl0aWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxFbnRpdHlMb29rdXAgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlMb29rdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbEVudGl0eVZhbHVlTG9va3VwICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5VmFsdWVMb29rdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbEZyZWVQYXJzZXJDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sRnJlZVBhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbEdldE1ldGFFbmNvZGluZyAoKSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI2h0bWxHZXRNZXRhRW5jb2RpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbEhhbmRsZU9taXR0ZWRFbGVtICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sSGFuZGxlT21pdHRlZEVsZW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbEluaXRBdXRvQ2xvc2UgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjaHRtbEluaXRBdXRvQ2xvc2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbElzQXV0b0Nsb3NlZCAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbElzQXV0b0Nsb3NlZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sSXNCb29sZWFuQXR0ciAoKSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI2h0bWxJc0Jvb2xlYW5BdHRyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxJc1NjcmlwdEF0dHJpYnV0ZSAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbElzU2NyaXB0QXR0cmlidXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxOZXdEb2MgKCkiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNodG1sTmV3RG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxOZXdEb2NOb0R0RCAoKSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI2h0bWxOZXdEb2NOb0R0RCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sTmV3UGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbE5ld1BhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbE5vZGVEdW1wICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUx0cmVlLmh0bWwjaHRtbE5vZGVEdW1wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxOb2RlRHVtcEZpbGUgKCkiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxOb2RlRHVtcEZpbGVGb3JtYXQgKCkiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCAoKSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sTm9kZUR1bXBPdXRwdXQgKCkiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNodG1sTm9kZUR1bXBPdXRwdXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbE5vZGVTdGF0dXMgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxOb2RlU3RhdHVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxQYXJzZUNoYXJSZWYgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUNoYXJSZWYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFBhcnNlQ2h1bmsgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUNodW5rIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxQYXJzZURvYyAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxQYXJzZURvY3VtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VEb2N1bWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sUGFyc2VFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxQYXJzZUVudGl0eVJlZiAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlRW50aXR5UmVmIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxQYXJzZUZpbGUgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZUZpbGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFJlYWREb2MgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxSZWFkRmQgKCkiIGxpbms9ImxpYnhtbDItSFRNTHBhcnNlci5odG1sI2h0bWxSZWFkRmQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFJlYWRGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sUmVhZEZpbGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFJlYWRJTyAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sUmVhZE1lbW9yeSAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFJlYWRNZW1vcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFNBWFBhcnNlRG9jICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYUGFyc2VEb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFNBWFBhcnNlRmlsZSAoKSIgbGluaz0ibGlieG1sMi1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWFBhcnNlRmlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sU2F2ZUZpbGUgKCkiIGxpbms9ImxpYnhtbDItSFRNTHRyZWUuaHRtbCNodG1sU2F2ZUZpbGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaHRtbFNhdmVGaWxlRW5jICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUx0cmVlLmh0bWwjaHRtbFNhdmVGaWxlRW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imh0bWxTYXZlRmlsZUZvcm1hdCAoKSIgbGluaz0ibGlieG1sMi1IVE1MdHJlZS5odG1sI2h0bWxTYXZlRmlsZUZvcm1hdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sU2V0TWV0YUVuY29kaW5nICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUx0cmVlLmh0bWwjaHRtbFNldE1ldGFFbmNvZGluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJodG1sVGFnTG9va3VwICgpIiBsaW5rPSJsaWJ4bWwyLUhUTUxwYXJzZXIuaHRtbCNodG1sVGFnTG9va3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Imlnbm9yYWJsZVdoaXRlc3BhY2UgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMgKCkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCNpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlciAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCNpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXIgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjaW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImlucHV0UG9wICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI2lucHV0UG9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9ImlucHV0UHVzaCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNpbnB1dFB1c2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaW50ZXJuYWxTdWJzZXQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjaW50ZXJuYWxTdWJzZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0iaXNTdGFuZGFsb25lICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI2lzU3RhbmRhbG9uZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJpc29sYXQxVG9VVEY4ICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjaXNvbGF0MVRvVVRGOCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJuYW1lUG9wICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI25hbWVQb3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ibmFtZVB1c2ggKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjbmFtZVB1c2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ibmFtZXNwYWNlRGVjbCAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCNuYW1lc3BhY2VEZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9Im5vZGVQb3AgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjbm9kZVBvcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJub2RlUHVzaCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCNub2RlUHVzaCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJub3RhdGlvbkRlY2wgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjbm90YXRpb25EZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InByb2Nlc3NpbmdJbnN0cnVjdGlvbiAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0icmVmZXJlbmNlICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI3JlZmVyZW5jZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJyZXNvbHZlRW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI3Jlc29sdmVFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ic2V0RG9jdW1lbnRMb2NhdG9yICgpIiBsaW5rPSJsaWJ4bWwyLVNBWC5odG1sI3NldERvY3VtZW50TG9jYXRvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJzZXROYW1lc3BhY2UgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjc2V0TmFtZXNwYWNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InN0YXJ0RG9jdW1lbnQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjc3RhcnREb2N1bWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJzdGFydEVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDItU0FYLmh0bWwjc3RhcnRFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InVucGFyc2VkRW50aXR5RGVjbCAoKSIgbGluaz0ibGlieG1sMi1TQVguaHRtbCN1bnBhcnNlZEVudGl0eURlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0idmFsdWVQb3AgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVBvcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ2YWx1ZVB1c2ggKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN2YWx1ZVB1c2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieGxpbmtHZXREZWZhdWx0RGV0ZWN0ICgpIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtHZXREZWZhdWx0RGV0ZWN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhsaW5rR2V0RGVmYXVsdEhhbmRsZXIgKCkiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua0dldERlZmF1bHRIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhsaW5rSXNMaW5rICgpIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtJc0xpbmsiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieGxpbmtTZXREZWZhdWx0RGV0ZWN0ICgpIiBsaW5rPSJsaWJ4bWwyLXhsaW5rLmh0bWwjeGxpbmtTZXREZWZhdWx0RGV0ZWN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhsaW5rU2V0RGVmYXVsdEhhbmRsZXIgKCkiIGxpbms9ImxpYnhtbDIteGxpbmsuaHRtbCN4bGlua1NldERlZmF1bHRIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEFDYXRhbG9nQWRkICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ0FkZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBQ2F0YWxvZ0R1bXAgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbEFDYXRhbG9nRHVtcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBQ2F0YWxvZ1JlbW92ZSAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQUNhdGFsb2dSZW1vdmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQUNhdGFsb2dSZXNvbHZlICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQUNhdGFsb2dSZXNvbHZlUHVibGljICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQUNhdGFsb2dSZXNvbHZlVVJJICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQWRkQXR0cmlidXRlRGVjbCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEFkZEF0dHJpYnV0ZURlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQWRkQ2hpbGQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEFkZENoaWxkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEFkZENoaWxkTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQWRkQ2hpbGRMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEFkZERvY0VudGl0eSAoKSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEFkZERvY0VudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBZGREdGRFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxBZGREdGRFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQWRkRWxlbWVudERlY2wgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxBZGRFbGVtZW50RGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBZGRFbmNvZGluZ0FsaWFzICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQWRkRW5jb2RpbmdBbGlhcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBZGRJRCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEFkZElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEFkZE5leHRTaWJsaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBZGROZXh0U2libGluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBZGROb3RhdGlvbkRlY2wgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxBZGROb3RhdGlvbkRlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQWRkUHJldlNpYmxpbmcgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEFkZFByZXZTaWJsaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEFkZFJlZiAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEFkZFJlZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBZGRTaWJsaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxBZGRTaWJsaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEFsbG9jT3V0cHV0QnVmZmVyICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sQWxsb2NPdXRwdXRCdWZmZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlciAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEF0dHJTZXJpYWxpemVUeHRDb250ZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF1dG9tYXRhQ29tcGlsZSAoKSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhQ29tcGlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdXRvbWF0YUdldEluaXRTdGF0ZSAoKSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhR2V0SW5pdFN0YXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdCAoKSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhSXNEZXRlcm1pbmlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdXRvbWF0YU5ld0FsbFRyYW5zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdBbGxUcmFucyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiAoKSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdXRvbWF0YU5ld0NvdW50ZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdXRvbWF0YU5ld0Vwc2lsb24gKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld0Vwc2lsb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFOZXdOZWdUcmFucyAoKSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3TmVnVHJhbnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFOZXdPbmNlVHJhbnMgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFOZXdTdGF0ZSAoKSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhTmV3U3RhdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZSAoKSIgbGluaz0ibGlieG1sMi14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU2V0RmluYWxTdGF0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCb29sVG9UZXh0ICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sQm9vbFRvVGV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJBZGQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckFkZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJBZGRIZWFkICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJBZGRIZWFkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlckNDYXQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckNDYXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQnVmZmVyQ2F0ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJDYXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQnVmZmVyQ29udGVudCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQ29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJDcmVhdGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckNyZWF0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJDcmVhdGVTaXplICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJDcmVhdGVTaXplIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlckNyZWF0ZVN0YXRpYyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyQ3JlYXRlU3RhdGljIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlckR1bXAgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckR1bXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQnVmZmVyRW1wdHkgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckVtcHR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlckZyZWUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckZyZWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQnVmZmVyR3JvdyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyR3JvdyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJMZW5ndGggKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlckxlbmd0aCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJSZXNpemUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEJ1ZmZlclJlc2l6ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlclNocmluayAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyU2hyaW5rIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlcldyaXRlQ0hBUiAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVDSEFSIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlcldyaXRlQ2hhciAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQnVmZmVyV3JpdGVDaGFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWlsZFFOYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxCdWlsZFFOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEJ1aWxkUmVsYXRpdmVVUkkgKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sQnVpbGRSZWxhdGl2ZVVSSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCdWlsZFVSSSAoKSIgbGluaz0ibGlieG1sMi11cmkuaHRtbCN4bWxCdWlsZFVSSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxCeXRlQ29uc3VtZWQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sQnl0ZUNvbnN1bWVkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEMxNE5Eb2NEdW1wTWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLWMxNG4uaHRtbCN4bWxDMTRORG9jRHVtcE1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDMTRORG9jU2F2ZSAoKSIgbGluaz0ibGlieG1sMi1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQzE0TkRvY1NhdmVUbyAoKSIgbGluaz0ibGlieG1sMi1jMTRuLmh0bWwjeG1sQzE0TkRvY1NhdmVUbyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDMTRORXhlY3V0ZSAoKSIgbGluaz0ibGlieG1sMi1jMTRuLmh0bWwjeG1sQzE0TkV4ZWN1dGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2Fub25pY1BhdGggKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sQ2Fub25pY1BhdGgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ0FkZCAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FkZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nQWRkTG9jYWwgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dBZGRMb2NhbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nQ2xlYW51cCAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0NsZWFudXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ0NvbnZlcnQgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dDb252ZXJ0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2dEdW1wICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRHVtcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nRnJlZUxvY2FsICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nRnJlZUxvY2FsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2dHZXREZWZhdWx0cyAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2dHZXRQdWJsaWMgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dHZXRQdWJsaWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ0dldFN5c3RlbSAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0dldFN5c3RlbSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nSXNFbXB0eSAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0lzRW1wdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2dSZW1vdmUgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZW1vdmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ1Jlc29sdmUgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2dSZXNvbHZlUHVibGljICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2F0YWxvZ1Jlc29sdmVVUkkgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dSZXNvbHZlVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2dTZXREZWJ1ZyAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1NldERlYnVnIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDYXRhbG9nU2V0RGVmYXVsdHMgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbENhdGFsb2dTZXREZWZhdWx0cyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyRW5jQ2xvc2VGdW5jICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0Nsb3NlRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyRW5jRmlyc3RMaW5lICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0ZpcnN0TGluZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyRW5jSW5GdW5jICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY0luRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyRW5jT3V0RnVuYyAoKSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENoYXJFbmNPdXRGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENoYXJJblJhbmdlICgpIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxDaGFySW5SYW5nZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGFyU3RyZHVwICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbENoYXJTdHJkdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hhclN0cm5kdXAgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sQ2hhclN0cm5kdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hlY2tGaWxlbmFtZSAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbENoZWNrRmlsZW5hbWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hlY2tIVFRQSW5wdXQgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxDaGVja0hUVFBJbnB1dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDaGVja0xhbmd1YWdlSUQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ2hlY2tMYW5ndWFnZUlEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENoZWNrVVRGOCAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxDaGVja1VURjgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hlY2tWZXJzaW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHZlcnNpb24uaHRtbCN4bWxDaGVja1ZlcnNpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2hpbGRFbGVtZW50Q291bnQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbENoaWxkRWxlbWVudENvdW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyAoKSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDbGVhbnVwR2xvYmFscyAoKSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sQ2xlYW51cEdsb2JhbHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENsZWFudXBNZW1vcnkgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sQ2xlYW51cE1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDbGVhbnVwUGFyc2VyICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbENsZWFudXBQYXJzZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcyAoKSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ2xlYW51cFRocmVhZHMgKCkiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbENsZWFudXBUaHJlYWRzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENsZWFyTm9kZUluZm9TZXEgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sQ2xlYXJOb2RlSW5mb1NlcSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDbGVhclBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sQ2xlYXJQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvbnZlcnRTR01MQ2F0YWxvZyAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sQ29udmVydFNHTUxDYXRhbG9nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvcHlBdHRyaWJ1dGVUYWJsZSAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbENvcHlBdHRyaWJ1dGVUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5Q2hhciAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDb3B5Q2hhciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5Q2hhck11bHRpQnl0ZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDb3B5Q2hhck11bHRpQnl0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5RG9jICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxDb3B5RG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvcHlEb2NFbGVtZW50Q29udGVudCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbENvcHlEb2NFbGVtZW50Q29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5RHRkICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxDb3B5RHRkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvcHlFbGVtZW50Q29udGVudCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbENvcHlFbGVtZW50Q29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5RWxlbWVudFRhYmxlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sQ29weUVsZW1lbnRUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5RW50aXRpZXNUYWJsZSAoKSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbENvcHlFbnRpdGllc1RhYmxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvcHlFbnVtZXJhdGlvbiAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbENvcHlFbnVtZXJhdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5RXJyb3IgKCkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxDb3B5RXJyb3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ29weU5hbWVzcGFjZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQ29weU5hbWVzcGFjZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDb3B5TmFtZXNwYWNlTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQ29weU5hbWVzcGFjZUxpc3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ29weU5vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbENvcHlOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvcHlOb2RlTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQ29weU5vZGVMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvcHlOb3RhdGlvblRhYmxlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sQ29weU5vdGF0aW9uVGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ29weVByb3AgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbENvcHlQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENvcHlQcm9wTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQ29weVByb3BMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENyZWF0ZURvY1BhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDcmVhdGVFbnRpdGllc1RhYmxlICgpIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sQ3JlYXRlRW50aXRpZXNUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ3JlYXRlRW51bWVyYXRpb24gKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxDcmVhdGVFbnVtZXJhdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDcmVhdGVJT1BhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sQ3JlYXRlSU9QYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENyZWF0ZUludFN1YnNldCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sQ3JlYXRlSW50U3Vic2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDcmVhdGVVUkkgKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sQ3JlYXRlVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbENyZWF0ZVVSTFBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDdHh0R2V0TGFzdEVycm9yICgpIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sQ3R4dEdldExhc3RFcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDdHh0UmVhZERvYyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxDdHh0UmVhZERvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDdHh0UmVhZEZkICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ3R4dFJlYWRGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEN0eHRSZWFkRmlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDdHh0UmVhZElPICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEN0eHRSZWFkSU8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ3R4dFJlYWRNZW1vcnkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sQ3R4dFJlYWRNZW1vcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ3R4dFJlc2V0ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEN0eHRSZXNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxDdHh0UmVzZXRMYXN0RXJyb3IgKCkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxDdHh0UmVzZXRMYXN0RXJyb3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sQ3R4dFJlc2V0UHVzaCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxDdHh0UmVzZXRQdXNoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEN0eHRVc2VPcHRpb25zICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEN0eHRVc2VPcHRpb25zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEN1cnJlbnRDaGFyICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbEN1cnJlbnRDaGFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERPTVdyYXBBZG9wdE5vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBBZG9wdE5vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRE9NV3JhcENsb25lTm9kZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRE9NV3JhcENsb25lTm9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxET01XcmFwRnJlZUN0eHQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBGcmVlQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxET01XcmFwTmV3Q3R4dCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRE9NV3JhcE5ld0N0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERPTVdyYXBSZW1vdmVOb2RlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxET01XcmFwUmVtb3ZlTm9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGVidWdEdW1wQXR0ciAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcEF0dHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGVidWdEdW1wQXR0ckxpc3QgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBBdHRyTGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWJ1Z0R1bXBEVEQgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEVEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGVidWdEdW1wRG9jdW1lbnQgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGVidWdEdW1wRW50aXRpZXMgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBFbnRpdGllcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWJ1Z0R1bXBOb2RlICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sRGVidWdEdW1wTm9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWJ1Z0R1bXBOb2RlTGlzdCAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcE5vZGVMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERlYnVnRHVtcE9uZU5vZGUgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxEZWJ1Z0R1bXBPbmVOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERlYnVnRHVtcFN0cmluZyAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbERlYnVnRHVtcFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWNvZGVFbnRpdGllcyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxEZWNvZGVFbnRpdGllcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQgKCkiIGxpbms9ImxpYnhtbDItU0FYMi5odG1sI3htbERlZmF1bHRTQVhIYW5kbGVySW5pdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZWxFbmNvZGluZ0FsaWFzICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sRGVsRW5jb2RpbmdBbGlhcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEZXRlY3RDaGFyRW5jb2RpbmcgKCkiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxEZXRlY3RDaGFyRW5jb2RpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGljdENsZWFudXAgKCkiIGxpbms9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RDbGVhbnVwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERpY3RDcmVhdGUgKCkiIGxpbms9ImxpYnhtbDItZGljdC5odG1sI3htbERpY3RDcmVhdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGljdENyZWF0ZVN1YiAoKSIgbGluaz0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdENyZWF0ZVN1YiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEaWN0RXhpc3RzICgpIiBsaW5rPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0RXhpc3RzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERpY3RGcmVlICgpIiBsaW5rPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0RnJlZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEaWN0TG9va3VwICgpIiBsaW5rPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0TG9va3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERpY3RPd25zICgpIiBsaW5rPSJsaWJ4bWwyLWRpY3QuaHRtbCN4bWxEaWN0T3ducyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEaWN0UUxvb2t1cCAoKSIgbGluaz0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFFMb29rdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGljdFJlZmVyZW5jZSAoKSIgbGluaz0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFJlZmVyZW5jZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEaWN0U2l6ZSAoKSIgbGluaz0ibGlieG1sMi1kaWN0Lmh0bWwjeG1sRGljdFNpemUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRGxsTWFpbiAoKSIgbGluaz0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sRGxsTWFpbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEb2NDb3B5Tm9kZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jQ29weU5vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRG9jQ29weU5vZGVMaXN0ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NDb3B5Tm9kZUxpc3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRG9jRHVtcCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jRHVtcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEb2NEdW1wRm9ybWF0TWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRG9jRHVtcE1lbW9yeSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRG9jRHVtcE1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEb2NEdW1wTWVtb3J5RW5jICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NEdW1wTWVtb3J5RW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERvY0Zvcm1hdER1bXAgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY0Zvcm1hdER1bXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRG9jR2V0Um9vdEVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbERvY0dldFJvb3RFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbERvY1NldFJvb3RFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxEb2NTZXRSb290RWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEdW1wQXR0cmlidXRlRGVjbCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbER1bXBBdHRyaWJ1dGVEZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbER1bXBBdHRyaWJ1dGVUYWJsZSAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbER1bXBBdHRyaWJ1dGVUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEdW1wRWxlbWVudERlY2wgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxEdW1wRWxlbWVudERlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRHVtcEVsZW1lbnRUYWJsZSAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbER1bXBFbGVtZW50VGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRHVtcEVudGl0aWVzVGFibGUgKCkiIGxpbms9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxEdW1wRW50aXRpZXNUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxEdW1wRW50aXR5RGVjbCAoKSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbER1bXBFbnRpdHlEZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbER1bXBOb3RhdGlvbkRlY2wgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxEdW1wTm90YXRpb25EZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbER1bXBOb3RhdGlvblRhYmxlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRHVtcE5vdGF0aW9uVGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRWxlbUR1bXAgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEVsZW1EdW1wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEVuY29kZUVudGl0aWVzICgpIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sRW5jb2RlRW50aXRpZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQgKCkiIGxpbms9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFbmNvZGVTcGVjaWFsQ2hhcnMgKCkiIGxpbms9ImxpYnhtbDItZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVTcGVjaWFsQ2hhcnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXJyTWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbEVyck1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFeHBDdHh0TmJDb25zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHROYkNvbnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwQ3R4dE5iTm9kZXMgKCkiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dE5iTm9kZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwRHVtcCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBEdW1wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cEV4cERlcml2ZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBFeHBEZXJpdmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwRnJlZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBGcmVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cEZyZWVDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEZyZWVDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cEdldExhbmd1YWdlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldExhbmd1YWdlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cEdldFN0YXJ0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cEdldFN0YXJ0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cElzTmlsbGFibGUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwSXNOaWxsYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFeHBNYXhUb2tlbiAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBNYXhUb2tlbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFeHBOZXdBdG9tICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld0F0b20iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwTmV3Q3R4dCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cE5ld09yICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld09yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cE5ld1JhbmdlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5ld1JhbmdlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cE5ld1NlcSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxFeHBOZXdTZXEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwUGFyc2UgKCkiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwUGFyc2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRXhwUmVmICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbEV4cFJlZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxFeHBTdHJpbmdEZXJpdmUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwU3RyaW5nRGVyaXZlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEV4cFN1YnN1bWUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sRXhwU3Vic3VtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGaWxlQ2xvc2UgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxGaWxlQ2xvc2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRmlsZU1hdGNoICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sRmlsZU1hdGNoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZpbGVPcGVuICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sRmlsZU9wZW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRmlsZVJlYWQgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxGaWxlUmVhZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciAoKSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZpcnN0RWxlbWVudENoaWxkICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxGaXJzdEVsZW1lbnRDaGlsZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlQXR0cmlidXRlVGFibGUgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxGcmVlQXR0cmlidXRlVGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZUF1dG9tYXRhICgpIiBsaW5rPSJsaWJ4bWwyLXhtbGF1dG9tYXRhLmh0bWwjeG1sRnJlZUF1dG9tYXRhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVDYXRhbG9nICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxGcmVlQ2F0YWxvZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlRG9jICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxGcmVlRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVEb2NFbGVtZW50Q29udGVudCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEZyZWVEb2NFbGVtZW50Q29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlRHRkICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxGcmVlRHRkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVFbGVtZW50Q29udGVudCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEZyZWVFbGVtZW50Q29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlRWxlbWVudFRhYmxlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRnJlZUVsZW1lbnRUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlRW50aXRpZXNUYWJsZSAoKSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEZyZWVFbnRpdGllc1RhYmxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVFbnVtZXJhdGlvbiAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEZyZWVFbnVtZXJhdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlSURUYWJsZSAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEZyZWVJRFRhYmxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVJbnB1dFN0cmVhbSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxGcmVlSW5wdXRTdHJlYW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZU11dGV4ICgpIiBsaW5rPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxGcmVlTXV0ZXgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZU5vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEZyZWVOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVOb2RlTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRnJlZU5vZGVMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVOb3RhdGlvblRhYmxlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sRnJlZU5vdGF0aW9uVGFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZU5zICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxGcmVlTnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZU5zTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sRnJlZU5zTGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlUGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxGcmVlUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZVBhdHRlcm4gKCkiIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbEZyZWVQYXR0ZXJuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVQYXR0ZXJuTGlzdCAoKSIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sRnJlZVBhdHRlcm5MaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVQcm9wICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxGcmVlUHJvcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlUHJvcExpc3QgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEZyZWVQcm9wTGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlUk11dGV4ICgpIiBsaW5rPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxGcmVlUk11dGV4Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVSZWZUYWJsZSAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEZyZWVSZWZUYWJsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxGcmVlU3RyZWFtQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sRnJlZVN0cmVhbUN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZVRleHRSZWFkZXIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sRnJlZVRleHRSZWFkZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZVRleHRXcml0ZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sRnJlZVRleHRXcml0ZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sRnJlZVVSSSAoKSIgbGluaz0ibGlieG1sMi11cmkuaHRtbCN4bWxGcmVlVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEZyZWVWYWxpZEN0eHQgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxGcmVlVmFsaWRDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdjTWVtR2V0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbEdjTWVtR2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdjTWVtU2V0dXAgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sR2NNZW1TZXR1cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXIgKCkiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldENoYXJFbmNvZGluZ05hbWUgKCkiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxHZXRDaGFyRW5jb2RpbmdOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldENvbXByZXNzTW9kZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sR2V0Q29tcHJlc3NNb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldERvY0NvbXByZXNzTW9kZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sR2V0RG9jQ29tcHJlc3NNb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldERvY0VudGl0eSAoKSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEdldERvY0VudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXREdGRBdHRyRGVzYyAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEdldER0ZEF0dHJEZXNjIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldER0ZEVsZW1lbnREZXNjICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sR2V0RHRkRWxlbWVudERlc2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sR2V0RHRkRW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sR2V0RHRkRW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldER0ZE5vdGF0aW9uRGVzYyAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEdldER0ZE5vdGF0aW9uRGVzYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXREdGRRQXR0ckRlc2MgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxHZXREdGRRQXR0ckRlc2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sR2V0RHRkUUVsZW1lbnREZXNjICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sR2V0RHRkUUVsZW1lbnREZXNjIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldEVuY29kaW5nQWxpYXMgKCkiIGxpbms9ImxpYnhtbDItZW5jb2RpbmcuaHRtbCN4bWxHZXRFbmNvZGluZ0FsaWFzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEdldEV4dGVybmFsRW50aXR5TG9hZGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldEZlYXR1cmUgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXRGZWF0dXJlc0xpc3QgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sR2V0RmVhdHVyZXNMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldEdsb2JhbFN0YXRlICgpIiBsaW5rPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxHZXRHbG9iYWxTdGF0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXRJRCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbEdldElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldEludFN1YnNldCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sR2V0SW50U3Vic2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldExhc3RDaGlsZCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sR2V0TGFzdENoaWxkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldExhc3RFcnJvciAoKSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbEdldExhc3RFcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXRMaW5lTm8gKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEdldExpbmVObyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXROb05zUHJvcCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sR2V0Tm9Oc1Byb3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sR2V0Tm9kZVBhdGggKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEdldE5vZGVQYXRoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldE5zTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sR2V0TnNMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldE5zUHJvcCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sR2V0TnNQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldFBhcmFtZXRlckVudGl0eSAoKSIgbGluaz0ibGlieG1sMi1lbnRpdGllcy5odG1sI3htbEdldFBhcmFtZXRlckVudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXRQcmVkZWZpbmVkRW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sR2V0UHJlZGVmaW5lZEVudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXRQcm9wICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxHZXRQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldFJlZnMgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxHZXRSZWZzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEdldFRocmVhZElkICgpIiBsaW5rPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxHZXRUaHJlYWRJZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxHZXRVVEY4Q2hhciAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxHZXRVVEY4Q2hhciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYW5kbGVFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sSGFuZGxlRW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc0ZlYXR1cmUgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sSGFzRmVhdHVyZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNOc1Byb3AgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbEhhc05zUHJvcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNQcm9wICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxIYXNQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hBZGRFbnRyeSAoKSIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hBZGRFbnRyeTIgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hBZGRFbnRyeTIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaEFkZEVudHJ5MyAoKSIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaEFkZEVudHJ5MyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoQ29weSAoKSIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaENvcHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaENyZWF0ZSAoKSIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaENyZWF0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoQ3JlYXRlRGljdCAoKSIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaENyZWF0ZURpY3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaEZyZWUgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hGcmVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hMb29rdXAgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hMb29rdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaExvb2t1cDIgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hMb29rdXAyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hMb29rdXAzICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoTG9va3VwMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoUUxvb2t1cCAoKSIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFFMb29rdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaFFMb29rdXAyICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaFFMb29rdXAzICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoUUxvb2t1cDMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaFJlbW92ZUVudHJ5ICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSGFzaFJlbW92ZUVudHJ5MiAoKSIgbGluaz0ibGlieG1sMi1oYXNoLmh0bWwjeG1sSGFzaFJlbW92ZUVudHJ5MiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoUmVtb3ZlRW50cnkzICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoUmVtb3ZlRW50cnkzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hTY2FuICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoU2NhbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoU2NhbjMgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hTY2FuMyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoU2NhbkZ1bGwgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hTY2FuRnVsbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoU2NhbkZ1bGwzICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoU2NhbkZ1bGwzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hTaXplICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoU2l6ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoVXBkYXRlRW50cnkgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxIYXNoVXBkYXRlRW50cnkyICgpIiBsaW5rPSJsaWJ4bWwyLWhhc2guaHRtbCN4bWxIYXNoVXBkYXRlRW50cnkyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEhhc2hVcGRhdGVFbnRyeTMgKCkiIGxpbms9ImxpYnhtbDItaGFzaC5odG1sI3htbEhhc2hVcGRhdGVFbnRyeTMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSU9GVFBDbG9zZSAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbElPRlRQQ2xvc2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSU9GVFBNYXRjaCAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbElPRlRQTWF0Y2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSU9GVFBPcGVuICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSU9GVFBPcGVuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElPRlRQUmVhZCAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbElPRlRQUmVhZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJT0hUVFBDbG9zZSAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbElPSFRUUENsb3NlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElPSFRUUE1hdGNoICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSU9IVFRQTWF0Y2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSU9IVFRQT3BlbiAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbElPSFRUUE9wZW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSU9IVFRQT3BlblcgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxJT0hUVFBPcGVuVyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJT0hUVFBSZWFkICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sSU9IVFRQUmVhZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJT1BhcnNlRFREICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbElPUGFyc2VEVEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzICgpIiBsaW5rPSJsaWJ4bWwyLWVuY29kaW5nLmh0bWwjeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEluaXRHbG9iYWxzICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxJbml0R2xvYmFscyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJbml0TWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbEluaXRNZW1vcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSW5pdE5vZGVJbmZvU2VxICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEluaXROb2RlSW5mb1NlcSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJbml0UGFyc2VyICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbEluaXRQYXJzZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSW5pdFBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sSW5pdFBhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSW5pdFRocmVhZHMgKCkiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbEluaXRUaHJlYWRzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbEluaXRpYWxpemVDYXRhbG9nICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxJbml0aWFsaXplQ2F0YWxvZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbEluaXRpYWxpemVHbG9iYWxTdGF0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzICgpIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc0Jhc2VDaGFyICgpIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQmxhbmsgKCkiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzQmxhbmsiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNCbGFua05vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbElzQmxhbmtOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQ2hhciAoKSIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNDaGFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzQ29tYmluaW5nICgpIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0NvbWJpbmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc0RpZ2l0ICgpIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzRXh0ZW5kZXIgKCkiIGxpbms9ImxpYnhtbDItY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNJRCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbElzSUQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sSXNJZGVvZ3JhcGhpYyAoKSIgbGluaz0ibGlieG1sMi1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc0xldHRlciAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxJc0xldHRlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc01haW5UaHJlYWQgKCkiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbElzTWFpblRocmVhZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc01peGVkRWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbElzTWl4ZWRFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzUHViaWRDaGFyICgpIiBsaW5rPSJsaWJ4bWwyLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxJc1JlZiAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbElzUmVmIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbElzWEhUTUwgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbElzWEhUTUwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sS2VlcEJsYW5rc0RlZmF1bHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sS2VlcEJsYW5rc0RlZmF1bHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGFzdEVsZW1lbnRDaGlsZCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTGFzdEVsZW1lbnRDaGlsZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaW5lTnVtYmVyc0RlZmF1bHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sTGluZU51bWJlcnNEZWZhdWx0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpbmtHZXREYXRhICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaW5rR2V0RGF0YSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0QXBwZW5kICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0QXBwZW5kIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RDbGVhciAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdENsZWFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RDb3B5ICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0Q29weSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0Q3JlYXRlICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0Q3JlYXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3REZWxldGUgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3REZWxldGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdER1cCAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdER1cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0RW1wdHkgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RFbXB0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0RW5kICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0RW5kIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RGcm9udCAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdEZyb250Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RJbnNlcnQgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RJbnNlcnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdE1lcmdlICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0TWVyZ2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdFBvcEJhY2sgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQb3BCYWNrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RQb3BGcm9udCAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFBvcEZyb250Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RQdXNoQmFjayAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFB1c2hCYWNrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RQdXNoRnJvbnQgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RQdXNoRnJvbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdFJlbW92ZUFsbCAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUFsbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0UmVtb3ZlRmlyc3QgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RSZW1vdmVGaXJzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0UmVtb3ZlTGFzdCAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFJlbW92ZUxhc3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdFJldmVyc2UgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RSZXZlcnNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RSZXZlcnNlU2VhcmNoICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0UmV2ZXJzZVNlYXJjaCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0UmV2ZXJzZVdhbGsgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RSZXZlcnNlV2FsayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0U2VhcmNoICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0U2VhcmNoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExpc3RTaXplICgpIiBsaW5rPSJsaWJ4bWwyLWxpc3QuaHRtbCN4bWxMaXN0U2l6ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMaXN0U29ydCAoKSIgbGluaz0ibGlieG1sMi1saXN0Lmh0bWwjeG1sTGlzdFNvcnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTGlzdFdhbGsgKCkiIGxpbms9ImxpYnhtbDItbGlzdC5odG1sI3htbExpc3RXYWxrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExvYWRBQ2F0YWxvZyAoKSIgbGluaz0ibGlieG1sMi1jYXRhbG9nLmh0bWwjeG1sTG9hZEFDYXRhbG9nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExvYWRDYXRhbG9nICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxMb2FkQ2F0YWxvZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMb2FkQ2F0YWxvZ3MgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbExvYWRDYXRhbG9ncyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMb2FkRXh0ZXJuYWxFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sTG9hZEV4dGVybmFsRW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbExvYWRTR01MU3VwZXJDYXRhbG9nICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMb2NrTGlicmFyeSAoKSIgbGluaz0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sTG9ja0xpYnJhcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTHNDb3VudE5vZGUgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxMc0NvdW50Tm9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxMc09uZU5vZGUgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxMc09uZU5vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWFsbG9jQXRvbWljTG9jICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0F0b21pY0xvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxNYWxsb2NMb2MgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jTG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1lbUJsb2NrcyAoKSIgbGluaz0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNZW1CbG9ja3MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWVtRGlzcGxheSAoKSIgbGluaz0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNZW1EaXNwbGF5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1lbURpc3BsYXlMYXN0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbE1lbURpc3BsYXlMYXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1lbUZyZWUgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWVtRnJlZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxNZW1HZXQgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWVtR2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1lbU1hbGxvYyAoKSIgbGluaz0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNZW1NYWxsb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWVtUmVhbGxvYyAoKSIgbGluaz0ibGlieG1sMi14bWxtZW1vcnkuaHRtbCN4bWxNZW1SZWFsbG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1lbVNldHVwICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbE1lbVNldHVwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1lbVNob3cgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU2hvdyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxNZW1TdHJkdXBMb2MgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWVtU3RyZHVwTG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1lbVVzZWQgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sTWVtVXNlZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxNZW1vcnlEdW1wICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbE1lbW9yeUR1bXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTWVtb3J5U3RyZHVwICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1lbW9yeS5odG1sI3htbE1lbW9yeVN0cmR1cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxNb2R1bGVDbG9zZSAoKSIgbGluaz0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVDbG9zZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxNb2R1bGVGcmVlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZUZyZWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTW9kdWxlT3BlbiAoKSIgbGluaz0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVPcGVuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE1vZHVsZVN5bWJvbCAoKSIgbGluaz0ibGlieG1sMi14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVTeW1ib2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTXV0ZXhMb2NrICgpIiBsaW5rPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxNdXRleExvY2siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTXV0ZXhVbmxvY2sgKCkiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbE11dGV4VW5sb2NrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbWVzcGFjZVBhcnNlTlNEZWYgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmFtZXNwYWNlUGFyc2VOU0RlZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW1lc3BhY2VQYXJzZVFOYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbE5hbWVzcGFjZVBhcnNlUU5hbWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0ZUUENoZWNrUmVzcG9uc2UgKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDaGVja1Jlc3BvbnNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBDbGVhbnVwICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xlYW51cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vRlRQQ2xvc2UgKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDbG9zZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBDb25uZWN0ICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ29ubmVjdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vRlRQQ29ubmVjdFRvICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQQ29ubmVjdFRvIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBDd2QgKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBDd2QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0ZUUERlbGUgKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBEZWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBGcmVlQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEZyZWVDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBHZXQgKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0ZUUEdldENvbm5lY3Rpb24gKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRDb25uZWN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBHZXRSZXNwb25zZSAoKSIgbGluaz0ibGlieG1sMi1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldFJlc3BvbnNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBHZXRTb2NrZXQgKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBHZXRTb2NrZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0ZUUEluaXQgKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBJbml0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBMaXN0ICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQTGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vRlRQTmV3Q3R4dCAoKSIgbGluaz0ibGlieG1sMi1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUE5ld0N0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0ZUUE9wZW4gKCkiIGxpbms9ImxpYnhtbDItbmFub2Z0cC5odG1sI3htbE5hbm9GVFBPcGVuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBQcm94eSAoKSIgbGluaz0ibGlieG1sMi1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFByb3h5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9GVFBRdWl0ICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQUXVpdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vRlRQUmVhZCAoKSIgbGluaz0ibGlieG1sMi1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFJlYWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0ZUUFNjYW5Qcm94eSAoKSIgbGluaz0ibGlieG1sMi1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUFNjYW5Qcm94eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vRlRQVXBkYXRlVVJMICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9mdHAuaHRtbCN4bWxOYW5vRlRQVXBkYXRlVVJMIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQQXV0aEhlYWRlciAoKSIgbGluaz0ibGlieG1sMi1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQXV0aEhlYWRlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vSFRUUENsZWFudXAgKCkiIGxpbms9ImxpYnhtbDItbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUENsZWFudXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0hUVFBDbG9zZSAoKSIgbGluaz0ibGlieG1sMi1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQQ2xvc2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0hUVFBDb250ZW50TGVuZ3RoICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQRW5jb2RpbmcgKCkiIGxpbms9ImxpYnhtbDItbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEVuY29kaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQRmV0Y2ggKCkiIGxpbms9ImxpYnhtbDItbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUEZldGNoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQSW5pdCAoKSIgbGluaz0ibGlieG1sMi1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQSW5pdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vSFRUUE1ldGhvZCAoKSIgbGluaz0ibGlieG1sMi1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQTWV0aG9kIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQTWV0aG9kUmVkaXIgKCkiIGxpbms9ImxpYnhtbDItbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQTWltZVR5cGUgKCkiIGxpbms9ImxpYnhtbDItbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUE1pbWVUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQT3BlbiAoKSIgbGluaz0ibGlieG1sMi1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vSFRUUE9wZW5SZWRpciAoKSIgbGluaz0ibGlieG1sMi1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQT3BlblJlZGlyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQUmVhZCAoKSIgbGluaz0ibGlieG1sMi1uYW5vaHR0cC5odG1sI3htbE5hbm9IVFRQUmVhZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vSFRUUFJlZGlyICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBSZWRpciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOYW5vSFRUUFJldHVybkNvZGUgKCkiIGxpbms9ImxpYnhtbDItbmFub2h0dHAuaHRtbCN4bWxOYW5vSFRUUFJldHVybkNvZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmFub0hUVFBTYXZlICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBTYXZlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5hbm9IVFRQU2NhblByb3h5ICgpIiBsaW5rPSJsaWJ4bWwyLW5hbm9odHRwLmh0bWwjeG1sTmFub0hUVFBTY2FuUHJveHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3QXV0b21hdGEgKCkiIGxpbms9ImxpYnhtbDIteG1sYXV0b21hdGEuaHRtbCN4bWxOZXdBdXRvbWF0YSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdDRGF0YUJsb2NrICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdDRGF0YUJsb2NrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0NhdGFsb2cgKCkiIGxpbms9ImxpYnhtbDItY2F0YWxvZy5odG1sI3htbE5ld0NhdGFsb2ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciAoKSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3Q2hhclJlZiAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3Q2hhclJlZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdDaGlsZCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3Q2hpbGQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3Q29tbWVudCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3Q29tbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdEb2MgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5ld0RvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdEb2NDb21tZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdEb2NDb21tZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0RvY0VsZW1lbnRDb250ZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sTmV3RG9jRWxlbWVudENvbnRlbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3RG9jRnJhZ21lbnQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5ld0RvY0ZyYWdtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0RvY05vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5ld0RvY05vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3RG9jTm9kZUVhdE5hbWUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5ld0RvY05vZGVFYXROYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0RvY1BJICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdEb2NQSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdEb2NQcm9wICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdEb2NQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0RvY1Jhd05vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5ld0RvY1Jhd05vZGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3RG9jVGV4dCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3RG9jVGV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdEb2NUZXh0TGVuICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdEb2NUZXh0TGVuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0R0ZCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3RHRkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0VsZW1lbnRDb250ZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sTmV3RWxlbWVudENvbnRlbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3RW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLWVudGl0aWVzLmh0bWwjeG1sTmV3RW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0VudGl0eUlucHV0U3RyZWFtICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbE5ld0VudGl0eUlucHV0U3RyZWFtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0dsb2JhbE5zICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdHbG9iYWxOcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdJT0lucHV0U3RyZWFtICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbE5ld0lPSW5wdXRTdHJlYW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3SW5wdXRGcm9tRmlsZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxOZXdJbnB1dEZyb21GaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld0lucHV0U3RyZWFtICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbE5ld0lucHV0U3RyZWFtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld011dGV4ICgpIiBsaW5rPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxOZXdNdXRleCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdOb2RlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld05vZGVFYXROYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdOb2RlRWF0TmFtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdOcyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3TnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3TnNQcm9wICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdOc1Byb3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3TnNQcm9wRWF0TmFtZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3TnNQcm9wRWF0TmFtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdQSSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3UEkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3UGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxOZXdQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld1Byb3AgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5ld1Byb3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3Uk11dGV4ICgpIiBsaW5rPSJsaWJ4bWwyLXRocmVhZHMuaHRtbCN4bWxOZXdSTXV0ZXgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3UmVmZXJlbmNlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdSZWZlcmVuY2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0gKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3VGV4dCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV3VGV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdUZXh0Q2hpbGQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5ld1RleHRDaGlsZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdUZXh0TGVuICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOZXdUZXh0TGVuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld1RleHRSZWFkZXIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sTmV3VGV4dFJlYWRlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5ld1RleHRXcml0ZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdUZXh0V3JpdGVyRG9jICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJEb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOZXdUZXh0V3JpdGVyTWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXJNZW1vcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3VGV4dFdyaXRlclRyZWUgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlclRyZWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTmV3VmFsaWRDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sTmV3VmFsaWRDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5leHRDaGFyICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbE5leHRDaGFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5leHRFbGVtZW50U2libGluZyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTmV4dEVsZW1lbnRTaWJsaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGVBZGRDb250ZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlQWRkQ29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb2RlQWRkQ29udGVudExlbiAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZUFkZENvbnRlbnRMZW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZUJ1ZkdldENvbnRlbnQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVCdWZHZXRDb250ZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGVEdW1wICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlRHVtcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb2RlRHVtcE91dHB1dCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZUR1bXBPdXRwdXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZUdldEJhc2UgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVHZXRCYXNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGVHZXRDb250ZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlR2V0Q29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb2RlR2V0TGFuZyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZUdldExhbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZUdldFNwYWNlUHJlc2VydmUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGVJc1RleHQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVJc1RleHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVMaXN0R2V0UmF3U3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGVMaXN0R2V0U3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlTGlzdEdldFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb2RlU2V0QmFzZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVNldEJhc2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZVNldENvbnRlbnQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVTZXRDb250ZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGVTZXRDb250ZW50TGVuICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlU2V0Q29udGVudExlbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb2RlU2V0TGFuZyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sTm9kZVNldExhbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9kZVNldE5hbWUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbE5vZGVTZXROYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE5vZGVTZXRTcGFjZVByZXNlcnZlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxOb3JtYWxpemVVUklQYXRoICgpIiBsaW5rPSJsaWJ4bWwyLXVyaS5odG1sI3htbE5vcm1hbGl6ZVVSSVBhdGgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sTm9ybWFsaXplV2luZG93c1BhdGggKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDbG9zZSAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNsb3NlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0ICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8gKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJGbHVzaCAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlckZsdXNoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbE91dHB1dEJ1ZmZlcldyaXRlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sT3V0cHV0QnVmZmVyV3JpdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlQXR0VmFsdWUgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VBdHRWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUF0dHJpYnV0ZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUF0dHJpYnV0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlTGlzdERlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VBdHRyaWJ1dGVUeXBlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQXR0cmlidXRlVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUNEU2VjdCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNEU2VjdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUNhdGFsb2dGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLWNhdGFsb2cuaHRtbCN4bWxQYXJzZUNhdGFsb2dGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlQ2hhckRhdGEgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VDaGFyRGF0YSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUNoYXJFbmNvZGluZyAoKSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbFBhcnNlQ2hhckVuY29kaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlQ2hhclJlZiAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNoYXJSZWYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VDaHVuayAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZUNodW5rIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlQ29tbWVudCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUNvbW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VDb250ZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlQ29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZURURCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZURURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZURlZmF1bHREZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRGVmYXVsdERlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VEb2MgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VEb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VEb2NUeXBlRGVjbCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZURvY1R5cGVEZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlRG9jdW1lbnQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VEb2N1bWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUVsZW1lbnREZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudERlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlRW5jTmFtZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVuY05hbWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VFbmNvZGluZ0RlY2wgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmNvZGluZ0RlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VFbmRUYWcgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbmRUYWciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VFbnRpdHlEZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5RGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUVudGl0eVJlZiAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudGl0eVJlZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUVudGl0eVZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW50aXR5VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VFbnVtZXJhdGVkVHlwZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlRW51bWVyYXRpb25UeXBlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRW51bWVyYXRpb25UeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlRXh0UGFyc2VkRW50ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlRXh0UGFyc2VkRW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlRXh0ZXJuYWxFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VFeHRlcm5hbEVudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUV4dGVybmFsSUQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbElEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFeHRlcm5hbFN1YnNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZUZpbGUgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlSW5Ob2RlQ29udGV4dCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZUluTm9kZUNvbnRleHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VNYXJrdXBEZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTWFya3VwRGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZU1lbW9yeSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZU1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZU1pc2MgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VNaXNjIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlTmFtZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5hbWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VOYW1lc3BhY2UgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VOYW1lc3BhY2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VObXRva2VuICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlTm10b2tlbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZU5vdGF0aW9uRGVjbCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uRGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZU5vdGF0aW9uVHlwZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZU5vdGF0aW9uVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZVBFUmVmZXJlbmNlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlUEVSZWZlcmVuY2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VQSSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVBJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlUElUYXJnZXQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VQSVRhcmdldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZVB1YmlkTGl0ZXJhbCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVB1YmlkTGl0ZXJhbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZVF1b3RlZFN0cmluZyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVF1b3RlZFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZVJlZmVyZW5jZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVJlZmVyZW5jZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZVNERGVjbCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVNERGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZVN0YXJ0VGFnICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3RhcnRUYWciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VTeXN0ZW1MaXRlcmFsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlU3lzdGVtTGl0ZXJhbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZVRleHREZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlVGV4dERlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VVUkkgKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sUGFyc2VVUkkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VVUklSYXcgKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sUGFyc2VVUklSYXciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VVUklSZWZlcmVuY2UgKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sUGFyc2VVUklSZWZlcmVuY2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VWZXJzaW9uSW5mbyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVZlcnNpb25JbmZvIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlVmVyc2lvbk51bSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZVZlcnNpb25OdW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VYTUxEZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlWE1MRGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJBZGROb2RlSW5mbyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJBZGROb2RlSW5mbyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJFcnJvciAoKSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlckZpbmROb2RlSW5mbyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXggKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VyR2V0RGlyZWN0b3J5ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUGFyc2VyR2V0RGlyZWN0b3J5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0ICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJHcm93ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyUHVzaCAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHVzaCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGFyc2VySW5wdXRHcm93ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFBhcnNlcklucHV0R3JvdyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJJbnB1dFJlYWQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRSZWFkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlcklucHV0U2hyaW5rICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlcklucHV0U2hyaW5rIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlclByaW50RmlsZUNvbnRleHQgKCkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlclByaW50RmlsZUluZm8gKCkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJQcmludEZpbGVJbmZvIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlclZhbGlkaXR5RXJyb3IgKCkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJWYWxpZGl0eUVycm9yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhcnNlclZhbGlkaXR5V2FybmluZyAoKSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFBhcnNlclZhbGlkaXR5V2FybmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXJzZXJXYXJuaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyV2FybmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXRoVG9VUkkgKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sUGF0aFRvVVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhdHRlcm5Gcm9tUm9vdCAoKSIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVybkZyb21Sb290Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXR0ZXJuTWF0Y2ggKCkiIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5NYXRjaCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXR0ZXJuTWF4RGVwdGggKCkiIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5NYXhEZXB0aCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXR0ZXJuTWluRGVwdGggKCkiIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5NaW5EZXB0aCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQYXR0ZXJuU3RyZWFtYWJsZSAoKSIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblN0cmVhbWFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUGF0dGVybmNvbXBpbGUgKCkiIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFBhdHRlcm5jb21waWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUG9wSW5wdXQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUG9wSW5wdXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUG9wSW5wdXRDYWxsYmFja3MgKCkiIGxpbms9ImxpYnhtbDIteG1sSU8uaHRtbCN4bWxQb3BJbnB1dENhbGxiYWNrcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFByaW50VVJJICgpIiBsaW5rPSJsaWJ4bWwyLXVyaS5odG1sI3htbFByaW50VVJJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFB1c2hJbnB1dCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQdXNoSW5wdXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUk11dGV4TG9jayAoKSIgbGluaz0ibGlieG1sMi10aHJlYWRzLmh0bWwjeG1sUk11dGV4TG9jayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSTXV0ZXhVbmxvY2sgKCkiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFJNdXRleFVubG9jayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkRG9jICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFJlYWREb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVhZEZkICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFJlYWRGZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkRmlsZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxSZWFkRmlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkSU8gKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUmVhZElPIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWRNZW1vcnkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUmVhZE1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkZXJGb3JEb2MgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWRlckZvckZkICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFJlYWRlckZvckZkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWRlckZvckZpbGUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yRmlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkZXJGb3JJTyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJGb3JJTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkZXJGb3JNZW1vcnkgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyRm9yTWVtb3J5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWRlck5ld0RvYyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdEb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVhZGVyTmV3RmQgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyTmV3RmQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVhZGVyTmV3RmlsZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWRlck5ld0lPICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld0lPIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWRlck5ld01lbW9yeSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxSZWFkZXJOZXdNZW1vcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVhZGVyTmV3V2Fsa2VyICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFJlYWRlck5ld1dhbGtlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWFkZXJXYWxrZXIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sUmVhZGVyV2Fsa2VyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlYWxsb2NMb2MgKCkiIGxpbms9ImxpYnhtbDIteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0xvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWNvbmNpbGlhdGVOcyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sUmVjb25jaWxpYXRlTnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVjb3ZlckRvYyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxSZWNvdmVyRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlY292ZXJGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFJlY292ZXJGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlY292ZXJNZW1vcnkgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sUmVjb3Zlck1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdFeGVjRXJySW5mbyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjRXJySW5mbyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdFeGVjTmV4dFZhbHVlcyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjTmV4dFZhbHVlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdFeGVjUHVzaFN0cmluZyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjUHVzaFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdFeGVjUHVzaFN0cmluZzIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY1B1c2hTdHJpbmcyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ0ZyZWVFeGVjQ3R4dCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdGcmVlRXhlY0N0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVnRnJlZVJlZ2V4cCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdGcmVlUmVnZXhwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ05ld0V4ZWNDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ05ld0V4ZWNDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ2V4cENvbXBpbGUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwQ29tcGlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdleHBFeGVjICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cEV4ZWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVnZXhwSXNEZXRlcm1pbmlzdCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBJc0RldGVybWluaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ2V4cFByaW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFByaW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlciAoKSIgbGluaz0ibGlieG1sMi1lbmNvZGluZy5odG1sI3htbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyAoKSIgbGluaz0ibGlieG1sMi14bWxJTy5odG1sI3htbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWdpc3Rlck5vZGVEZWZhdWx0ICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVEZWZhdWx0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbElPLmh0bWwjeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR0NsZWFudXBUeXBlcyAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0NsZWFudXBUeXBlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HRHVtcCAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0R1bXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR0R1bXBUcmVlICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRHVtcFRyZWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR0ZyZWUgKCkiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdGcmVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdHZXRWYWxpZEVycm9ycyAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdJbml0VHlwZXMgKCkiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdJbml0VHlwZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld1BhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HUGFyc2UgKCkiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMgKCkiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4TkdTZXRWYWxpZEVycm9ycyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZURvYyAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSAoKSIgbGluaz0ibGlieG1sMi1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZWxheFBhcnNlclNldEZsYWcgKCkiIGxpbms9ImxpYnhtbDItcmVsYXhuZy5odG1sI3htbFJlbGF4UGFyc2VyU2V0RmxhZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZW1vdmVJRCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFJlbW92ZUlEIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlbW92ZVByb3AgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFJlbW92ZVByb3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sUmVtb3ZlUmVmICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sUmVtb3ZlUmVmIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFJlcGxhY2VOb2RlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxSZXBsYWNlTm9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZXNldEVycm9yICgpIiBsaW5rPSJsaWJ4bWwyLXhtbGVycm9yLmh0bWwjeG1sUmVzZXRFcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxSZXNldExhc3RFcnJvciAoKSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFJlc2V0TGFzdEVycm9yIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJBdHRyaWJ1dGVEZWNsICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyQXR0cmlidXRlRGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyQ0RhdGFCbG9jayAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkNEYXRhQmxvY2siLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMkNoYXJhY3RlcnMgKCkiIGxpbms9ImxpYnhtbDItU0FYMi5odG1sI3htbFNBWDJDaGFyYWN0ZXJzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJDb21tZW50ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyQ29tbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyRWxlbWVudERlY2wgKCkiIGxpbms9ImxpYnhtbDItU0FYMi5odG1sI3htbFNBWDJFbGVtZW50RGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyRW5kRG9jdW1lbnQgKCkiIGxpbms9ImxpYnhtbDItU0FYMi5odG1sI3htbFNBWDJFbmREb2N1bWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyRW5kRWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMkVuZEVsZW1lbnROcyAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkVuZEVsZW1lbnROcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyRW50aXR5RGVjbCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkVudGl0eURlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMkV4dGVybmFsU3Vic2V0ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyRXh0ZXJuYWxTdWJzZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMkdldENvbHVtbk51bWJlciAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkdldENvbHVtbk51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyR2V0RW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyR2V0RW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJHZXRMaW5lTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyR2V0TGluZU51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJHZXRQdWJsaWNJZCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkdldFB1YmxpY0lkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJHZXRTeXN0ZW1JZCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkdldFN5c3RlbUlkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlciAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMkludGVybmFsU3Vic2V0ICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgySW50ZXJuYWxTdWJzZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMklzU3RhbmRhbG9uZSAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMklzU3RhbmRhbG9uZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyTm90YXRpb25EZWNsICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyTm90YXRpb25EZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gKCkiIGxpbms9ImxpYnhtbDItU0FYMi5odG1sI3htbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMlJlZmVyZW5jZSAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMlJlZmVyZW5jZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyUmVzb2x2ZUVudGl0eSAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMlJlc29sdmVFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMlNldERvY3VtZW50TG9jYXRvciAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyU3RhcnREb2N1bWVudCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RG9jdW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYMlN0YXJ0RWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi1TQVgyLmh0bWwjeG1sU0FYMlN0YXJ0RWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyU3RhcnRFbGVtZW50TnMgKCkiIGxpbms9ImxpYnhtbDItU0FYMi5odG1sI3htbFNBWDJTdGFydEVsZW1lbnROcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWERlZmF1bHRWZXJzaW9uICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVhEZWZhdWx0VmVyc2lvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhQYXJzZURURCAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhQYXJzZURvYyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZURvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhQYXJzZUVudGl0eSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTQVhQYXJzZUVudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhQYXJzZUZpbGUgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWFBhcnNlTWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFNBWFBhcnNlTWVtb3J5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhVc2VyUGFyc2VGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFNBWFVzZXJQYXJzZUZpbGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU0FYVXNlclBhcnNlTWVtb3J5ICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFNBWFVzZXJQYXJzZU1lbW9yeSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTQVhWZXJzaW9uICgpIiBsaW5rPSJsaWJ4bWwyLVNBWDIuaHRtbCN4bWxTQVhWZXJzaW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNhdmVDbG9zZSAoKSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZUNsb3NlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNhdmVEb2MgKCkiIGxpbms9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVEb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2F2ZUZpbGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNhdmVGaWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNhdmVGaWxlRW5jICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTYXZlRmlsZUVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTYXZlRmlsZVRvICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTYXZlRmlsZVRvIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNhdmVGbHVzaCAoKSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZUZsdXNoIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNhdmVGb3JtYXRGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTYXZlRm9ybWF0RmlsZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTYXZlRm9ybWF0RmlsZUVuYyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVFbmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2F2ZUZvcm1hdEZpbGVUbyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGVUbyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTYXZlU2V0QXR0ckVzY2FwZSAoKSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZVNldEF0dHJFc2NhcGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2F2ZVNldEVzY2FwZSAoKSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZVNldEVzY2FwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTYXZlVG9CdWZmZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVUb0J1ZmZlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTYXZlVG9GZCAoKSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZVRvRmQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2F2ZVRvRmlsZW5hbWUgKCkiIGxpbms9ImxpYnhtbDIteG1sc2F2ZS5odG1sI3htbFNhdmVUb0ZpbGVuYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNhdmVUb0lPICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNhdmUuaHRtbCN4bWxTYXZlVG9JTyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTYXZlVHJlZSAoKSIgbGluaz0ibGlieG1sMi14bWxzYXZlLmh0bWwjeG1sU2F2ZVRyZWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2F2ZVVyaSAoKSIgbGluaz0ibGlieG1sMi11cmkuaHRtbCN4bWxTYXZlVXJpIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjYW5OYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFNjYW5OYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUNoZWNrRmFjZXQgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2hlY2tGYWNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFDbGVhbnVwVHlwZXMgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ2xlYW51cFR5cGVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29tcGFyZVZhbHVlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUNvcHlWYWx1ZSAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFDb3B5VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hRHVtcCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hRHVtcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFGcmVlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFGcmVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUZyZWVGYWNldCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlRmFjZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hRnJlZVBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYUZyZWVQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUZyZWVUeXBlICgpIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGcmVlVHlwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFGcmVlVmFsaWRDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFGcmVlVmFsaWRDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUZyZWVWYWx1ZSAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFGcmVlVmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hRnJlZVdpbGRjYXJkICgpIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGcmVlV2lsZGNhcmQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hR2V0QnVpbHRJblR5cGUgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmcgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hR2V0VmFsVHlwZSAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUdldFZhbGlkRXJyb3JzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFJbml0VHlwZXMgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hSW5pdFR5cGVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hSXNWYWxpZCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hSXNWYWxpZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYU5ld0ZhY2V0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld0ZhY2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld01lbVBhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZSAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYU5ld1BhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYU5ld1BhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFOZXdRTmFtZVZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYU5ld1ZhbGlkQ3R4dCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hTmV3VmFsaWRDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVBhcnNlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFTQVhQbHVnICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVNBWFVucGx1ZyAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYVW5wbHVnIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVNldFBhcnNlckVycm9ycyAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNldFZhbGlkRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVNldFZhbGlkT3B0aW9ucyAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZURvYyAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRhdGVEb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVGYWNldCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVGaWxlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUZpbGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCAoKSIgbGluaz0ibGlieG1sMi14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0gKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbHVlQXBwZW5kICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlQXBwZW5kIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWFWYWx1ZUdldE5leHQgKCkiIGxpbms9ImxpYnhtbDIteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hVmFsdWVHZXROZXh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYXRyb25GcmVlICgpIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uRnJlZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQgKCkiIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0ICgpIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCAoKSIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uUGFyc2UgKCkiIGxpbms9ImxpYnhtbDItc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzICgpIiBsaW5rPSJsaWJ4bWwyLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYyAoKSIgbGluaz0ibGlieG1sMi1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNlYXJjaE5zICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTZWFyY2hOcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTZWFyY2hOc0J5SHJlZiAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU2VhcmNoTnNCeUhyZWYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTZXRDb21wcmVzc01vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNldENvbXByZXNzTW9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTZXREb2NDb21wcmVzc01vZGUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNldERvY0NvbXByZXNzTW9kZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2V0RmVhdHVyZSAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTZXRGZWF0dXJlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNldEdlbmVyaWNFcnJvckZ1bmMgKCkiIGxpbms9ImxpYnhtbDIteG1sZXJyb3IuaHRtbCN4bWxTZXRHZW5lcmljRXJyb3JGdW5jIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNldExpc3REb2MgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNldExpc3REb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2V0TnMgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNldE5zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNldE5zUHJvcCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU2V0TnNQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNldFByb3AgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNldFByb3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyAoKSIgbGluaz0ibGlieG1sMi14bWxlcnJvci5odG1sI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2V0VHJlZURvYyAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU2V0VHJlZURvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXIuaHRtbCN4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTaGVsbCAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsQmFzZSAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQmFzZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTaGVsbENhdCAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ2F0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsRGlyICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxEaXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2hlbGxEdSAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsRHUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2hlbGxMaXN0ICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsTG9hZCAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsTG9hZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTaGVsbFByaW50Tm9kZSAoKSIgbGluaz0ibGlieG1sMi1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUHJpbnROb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsUHJpbnRYUGF0aEVycm9yICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludFhQYXRoRXJyb3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2hlbGxQcmludFhQYXRoUmVzdWx0ICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsUHdkICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxQd2QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU2hlbGxTYXZlICgpIiBsaW5rPSJsaWJ4bWwyLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxTYXZlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsVmFsaWRhdGUgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbFZhbGlkYXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNoZWxsV3JpdGUgKCkiIGxpbms9ImxpYnhtbDItZGVidWdYTUwuaHRtbCN4bWxTaGVsbFdyaXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNraXBCbGFua0NoYXJzICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFNraXBCbGFua0NoYXJzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNwbGl0UU5hbWUgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sU3BsaXRRTmFtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTcGxpdFFOYW1lMiAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU3BsaXRRTmFtZTIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3BsaXRRTmFtZTMgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFNwbGl0UU5hbWUzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFNwcmludGZFbGVtZW50Q29udGVudCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFNwcmludGZFbGVtZW50Q29udGVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdG9wUGFyc2VyICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlci5odG1sI3htbFN0b3BQYXJzZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyRXF1YWwgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sU3RyRXF1YWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyUHJpbnRmICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFN0clByaW50ZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJRRXF1YWwgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sU3RyUUVxdWFsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0clZQcmludGYgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sU3RyVlByaW50ZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJjYXNlY21wICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFN0cmNhc2VjbXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyY2FzZXN0ciAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXNlc3RyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmNhdCAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxTdHJjYXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyY2hyICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFN0cmNociIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJjbXAgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sU3RyY21wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmR1cCAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxTdHJkdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyZWFtUG9wICgpIiBsaW5rPSJsaWJ4bWwyLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1Qb3AiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyZWFtUHVzaCAoKSIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJlYW1QdXNoQXR0ciAoKSIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtUHVzaEF0dHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RyZWFtUHVzaE5vZGUgKCkiIGxpbms9ImxpYnhtbDItcGF0dGVybi5odG1sI3htbFN0cmVhbVB1c2hOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmVhbVdhbnRzQW55Tm9kZSAoKSIgbGluaz0ibGlieG1sMi1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtV2FudHNBbnlOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmluZ0N1cnJlbnRDaGFyICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0N1cnJlbnRDaGFyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmluZ0RlY29kZUVudGl0aWVzICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cmluZ0dldE5vZGVMaXN0ICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxTdHJpbmdHZXROb2RlTGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJpbmdMZW5HZXROb2RlTGlzdCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RybGVuICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFN0cmxlbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJuY2FzZWNtcCAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2FzZWNtcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJuY2F0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFN0cm5jYXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3RybmNhdE5ldyAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY2F0TmV3Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN0cm5jbXAgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sU3RybmNtcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJuZHVwICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFN0cm5kdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3Ryc3RyICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFN0cnN0ciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTdHJzdWIgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sU3Ryc3ViIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQgKCkiIGxpbms9ImxpYnhtbDItcGFyc2VyLmh0bWwjeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTd2l0Y2hFbmNvZGluZyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hFbmNvZGluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxTd2l0Y2hJbnB1dEVuY29kaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXBhcnNlckludGVybmFscy5odG1sI3htbFN3aXRjaElucHV0RW5jb2RpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sU3dpdGNoVG9FbmNvZGluZyAoKSIgbGluaz0ibGlieG1sMi1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxTd2l0Y2hUb0VuY29kaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRDb25jYXQgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFRleHRDb25jYXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dE1lcmdlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxUZXh0TWVyZ2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyQmFzZVVyaSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQmFzZVVyaSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckNsb3NlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDbG9zZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdEJhc2VVcmkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmcgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3ROYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdE5hbWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXggKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdFN0cmluZyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0VmFsdWUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24gKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyQ3VycmVudERvYyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJEZXB0aCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRGVwdGgiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckV4cGFuZCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXhwYW5kIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8gKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlciAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlciAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckhhc1ZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJIYXNWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVySXNEZWZhdWx0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc0RlZmF1bHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVySXNOYW1lc3BhY2VEZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlcklzVmFsaWQgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlcklzVmFsaWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckxvY2FsTmFtZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJOYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyTmV4dCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTmV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmcgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJOb2RlVHlwZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTm9kZVR5cGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24gKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclByZWZpeCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlZml4Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJQcmVzZXJ2ZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJRdW90ZUNoYXIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclF1b3RlQ2hhciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZFN0YXRlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJSZWFkU3RhdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclJlYWRTdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlYWRTdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0U2NoZW1hICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXRTY2hlbWEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFJlYWRlclNldHVwICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJTZXR1cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSAoKSIgbGluaz0ibGlieG1sMi14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0UmVhZGVyVmFsdWUgKCkiIGxpbms9ImxpYnhtbDIteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRSZWFkZXJYbWxMYW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJYbWxMYW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kQ0RBVEEgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZENEQVRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJFbmRDb21tZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmRDb21tZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJFbmREVEQgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZERURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREVERFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlckVuZERvY3VtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJFbmREb2N1bWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kUEkgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlckVuZFBJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJGbHVzaCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyRmx1c2giLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyU2V0SW5kZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTZXRJbmRlbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZyAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZSAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydERURCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVEQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERvY3VtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydFBJICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydFBJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXggKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUNEQVRBICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUNEQVRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVEQgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFREIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREVudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24gKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdyAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVQSSAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVQSSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVSYXcgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUmF3Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbiAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlMgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcgKCkiIGxpbms9ImxpYnhtbDIteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSAoKSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dCAoKSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCAoKSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0ICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRockRlZlNhdmVOb0VtcHR5VGFncyAoKSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyAoKSIgbGluaz0ibGlieG1sMi1nbG9iYWxzLmh0bWwjeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgKCkiIGxpbms9ImxpYnhtbDItZ2xvYmFscy5odG1sI3htbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLWdsb2JhbHMuaHRtbCN4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQWVnZWFuTnVtYmVycyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBZWdlYW5OdW1iZXJzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0FyYWJpYyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNBcmFiaWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0EgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0FybWVuaWFuICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0FybWVuaWFuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQXJyb3dzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0Fycm93cyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0Jhc2ljTGF0aW4gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmFzaWNMYXRpbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0JlbmdhbGkgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQmVuZ2FsaSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0Jsb2NrICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0Jsb2NrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQmxvY2tFbGVtZW50cyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCbG9ja0VsZW1lbnRzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQm9wb21vZm8gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQm9wb21vZm8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNCb3hEcmF3aW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0JveERyYXdpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNCcmFpbGxlUGF0dGVybnMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQnJhaWxsZVBhdHRlcm5zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQnVoaWQgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQnVoaWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHkgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudCAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQiAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXQgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0QyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0Q2MgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Q2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRDZiAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRDZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdENvICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdENvIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0Q3MgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0Q3MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRMICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdEwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRMbCAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRMbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdExtICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdExtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0TG8gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0TG8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRMdCAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRMdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdEx1ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdEx1Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0TSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRNIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0TWMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0TWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRNZSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRNZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdE1uICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdE1uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0TiAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXROIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0TmQgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0TmQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRObCAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRObCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdE5vICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdE5vIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0UCAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0UGMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0UGMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRQZCAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdFBlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0UGYgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0UGYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRQaSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRQaSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdFBvICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFBvIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0UHMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0UHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRTICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRTYyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRTYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdFNrICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFNrIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0U20gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0U20iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRTbyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRTbyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdFogKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0WiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NhdFpsICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NhdFpsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ2F0WnAgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ2F0WnAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDYXRacyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDYXRacyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NoZXJva2VlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NoZXJva2VlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0NvbnRyb2xQaWN0dXJlcyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDb250cm9sUGljdHVyZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ3VycmVuY3lTeW1ib2xzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzQ3lyaWxsaWMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ3lyaWxsaWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzRGVzZXJldCAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEZXNlcmV0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzRGV2YW5hZ2FyaSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNEZXZhbmFnYXJpIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzRGluZ2JhdHMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzRGluZ2JhdHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0V0aGlvcGljICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0V0aGlvcGljIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0dlb21ldHJpY1NoYXBlcyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNHZW9yZ2lhbiAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHZW9yZ2lhbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0dvdGhpYyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHb3RoaWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNHcmVlayAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHcmVlayIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3JlZWtFeHRlbmRlZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0dyZWVrYW5kQ29wdGljICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0dyZWVrYW5kQ29wdGljIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzR3VqYXJhdGkgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzR3VqYXJhdGkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNHdXJtdWtoaSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNHdXJtdWtoaSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNIYW5ndWxKYW1vICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hhbmd1bEphbW8iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSGFuZ3VsU3lsbGFibGVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzSGFudW5vbyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIYW51bm9vIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzSGVicmV3ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hlYnJldyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlcyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNIaWdoU3Vycm9nYXRlcyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNIaWdoU3Vycm9nYXRlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0hpcmFnYW5hICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0hpcmFnYW5hIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzSVBBRXh0ZW5zaW9ucyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNJUEFFeHRlbnNpb25zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNLYW5idW4gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2FuYnVuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzS2FuZ3hpUmFkaWNhbHMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2FuZ3hpUmFkaWNhbHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNLYW5uYWRhICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thbm5hZGEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNLYXRha2FuYSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNLYXRha2FuYSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzS2htZXIgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2htZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNLaG1lclN5bWJvbHMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzS2htZXJTeW1ib2xzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzTGFvICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xhbyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNMYXRpbkV4dGVuZGVkQiAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNMYXRpbkV4dGVuZGVkQiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzTGltYnUgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTGltYnUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNMb3dTdXJyb2dhdGVzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNNYWxheWFsYW0gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWFsYXlhbGFtIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9ycyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc01vbmdvbGlhbiAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNb25nb2xpYW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNNdXNpY2FsU3ltYm9scyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNNdXNpY2FsU3ltYm9scyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc015YW5tYXIgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzTXlhbm1hciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc051bWJlckZvcm1zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc051bWJlckZvcm1zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzT2doYW0gKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzT2doYW0iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNPbGRJdGFsaWMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzT2xkSXRhbGljIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc09yaXlhICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc09yaXlhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzT3NtYW55YSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNPc21hbnlhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9ucyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1ByaXZhdGVVc2UgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzUHJpdmF0ZVVzZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzUnVuaWMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzUnVuaWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNTaGF2aWFuICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NoYXZpYW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNTaW5oYWxhICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NpbmhhbGEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1NwZWNpYWxzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1NwZWNpYWxzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQiAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUEgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUIgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1N5cmlhYyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNTeXJpYWMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNUYWdhbG9nICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhZ2Fsb2ciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNUYWdiYW53YSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNUYWdiYW53YSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1RhZ3MgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVGFncyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1RhaUxlICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhaUxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9scyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1RhbWlsICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RhbWlsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVDU0lzVGVsdWd1ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RlbHVndSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1RoYWFuYSAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNUaGFhbmEiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNUaGFpICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RoYWkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNUaWJldGFuICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1RpYmV0YW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNVZ2FyaXRpYyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNVZ2FyaXRpYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MgKCkiIGxpbms9ImxpYnhtbDIteG1sdW5pY29kZS5odG1sI3htbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNZaVJhZGljYWxzICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHVuaWNvZGUuaHRtbCN4bWxVQ1NJc1lpUmFkaWNhbHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVUNTSXNZaVN5bGxhYmxlcyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNZaVN5bGxhYmxlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scyAoKSIgbGluaz0ibGlieG1sMi14bWx1bmljb2RlLmh0bWwjeG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVVJJRXNjYXBlICgpIiBsaW5rPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSUVzY2FwZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVUklFc2NhcGVTdHIgKCkiIGxpbms9ImxpYnhtbDItdXJpLmh0bWwjeG1sVVJJRXNjYXBlU3RyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVSSVVuZXNjYXBlU3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXVyaS5odG1sI3htbFVSSVVuZXNjYXBlU3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVURjhDaGFyY21wICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFVURjhDaGFyY21wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVURjhTaXplICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFVURjhTaXplIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVURjhTdHJsZW4gKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cmxlbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVVEY4U3RybG9jICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJsb2MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVVRGOFN0cm5kdXAgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cm5kdXAiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVVRGOFN0cnBvcyAoKSIgbGluaz0ibGlieG1sMi14bWxzdHJpbmcuaHRtbCN4bWxVVEY4U3RycG9zIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVURjhTdHJzaXplICgpIiBsaW5rPSJsaWJ4bWwyLXhtbHN0cmluZy5odG1sI3htbFVURjhTdHJzaXplIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVURjhTdHJzdWIgKCkiIGxpbms9ImxpYnhtbDIteG1sc3RyaW5nLmh0bWwjeG1sVVRGOFN0cnN1YiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxVbmxpbmtOb2RlICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxVbmxpbmtOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVubG9ja0xpYnJhcnkgKCkiIGxpbms9ImxpYnhtbDItdGhyZWFkcy5odG1sI3htbFVubG9ja0xpYnJhcnkiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVW5zZXROc1Byb3AgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFVuc2V0TnNQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFVuc2V0UHJvcCAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sVW5zZXRQcm9wIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZURvY3VtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEb2N1bWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVEdGQgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUR0ZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZUR0ZEZpbmFsICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVEdGRGaW5hbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZUVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZUVsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVFbGVtZW50RGVjbCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkYXRlRWxlbWVudERlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVOQ05hbWUgKCkiIGxpbms9ImxpYnhtbDItdHJlZS5odG1sI3htbFZhbGlkYXRlTkNOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkYXRlTk1Ub2tlbiAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sVmFsaWRhdGVOTVRva2VuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkYXRlTmFtZSAoKSIgbGluaz0ibGlieG1sMi10cmVlLmh0bWwjeG1sVmFsaWRhdGVOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkYXRlTmFtZVZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOYW1lVmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVOYW1lc1ZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOYW1lc1ZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkYXRlTm10b2tlblZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVObXRva2VuVmFsdWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkYXRlTm90YXRpb25EZWNsICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVOb3RhdGlvblVzZSAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkYXRlTm90YXRpb25Vc2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZU9uZUVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZVBvcEVsZW1lbnQgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sVmFsaWRhdGVQdXNoQ0RhdGEgKCkiIGxpbms9ImxpYnhtbDItdmFsaWQuaHRtbCN4bWxWYWxpZGF0ZVB1c2hDRGF0YSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZVB1c2hFbGVtZW50ICgpIiBsaW5rPSJsaWJ4bWwyLXZhbGlkLmh0bWwjeG1sVmFsaWRhdGVQdXNoRWxlbWVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxWYWxpZGF0ZVFOYW1lICgpIiBsaW5rPSJsaWJ4bWwyLXRyZWUuaHRtbCN4bWxWYWxpZGF0ZVFOYW1lIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFZhbGlkYXRlUm9vdCAoKSIgbGluaz0ibGlieG1sMi12YWxpZC5odG1sI3htbFZhbGlkYXRlUm9vdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYSW5jbHVkZUZyZWVDb250ZXh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVGcmVlQ29udGV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYSW5jbHVkZU5ld0NvbnRleHQgKCkiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZU5ld0NvbnRleHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWEluY2x1ZGVQcm9jZXNzICgpIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzICgpIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhICgpIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhJbmNsdWRlUHJvY2Vzc05vZGUgKCkiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWUgKCkiIGxpbms9ImxpYnhtbDIteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyAoKSIgbGluaz0ibGlieG1sMi14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhICgpIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYSW5jbHVkZVNldEZsYWdzICgpIiBsaW5rPSJsaWJ4bWwyLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVTZXRGbGFncyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEFkZFZhbHVlcyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQWRkVmFsdWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ2FzdE5vZGVUb051bWJlciAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ2FzdE5vZGVUb051bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDYXN0VG9Cb29sZWFuICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9Cb29sZWFuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ2FzdFRvTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhDYXN0VG9OdW1iZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDYXN0VG9TdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENhc3RUb1N0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENlaWxpbmdGdW5jdGlvbiAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ21wTm9kZXMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENtcE5vZGVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ29tcGFyZVZhbHVlcyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29tcGFyZVZhbHVlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENvbXBpbGUgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDb21waWxlZEV2YWwgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbXBpbGVkRXZhbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ29uY2F0RnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aENvbmNhdEZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbiAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENvbnRleHRTZXRDYWNoZSAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFNldENhY2hlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ29udmVydEJvb2xlYW4gKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRCb29sZWFuIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ29udmVydE51bWJlciAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoQ29udmVydE51bWJlciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aENvbnZlcnRTdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRTdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhDb3VudEZ1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhDb3VudEZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoQ3R4dENvbXBpbGUgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEN0eHRDb21waWxlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRGVidWdEdW1wT2JqZWN0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhEaWZmZXJlbmNlICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaWZmZXJlbmNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRGlzdGluY3QgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRGlzdGluY3RTb3J0ZWQgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aERpc3RpbmN0U29ydGVkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRGl2VmFsdWVzICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhEaXZWYWx1ZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhFcXVhbFZhbHVlcyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXF1YWxWYWx1ZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhFcnIgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEVyciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEV2YWwgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEV2YWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhFdmFsRXhwciAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRXZhbEV4cHIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhFdmFsRXhwcmVzc2lvbiAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRXZhbEV4cHJlc3Npb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhFdmFsUHJlZGljYXRlICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhFdmFsUHJlZGljYXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRmFsc2VGdW5jdGlvbiAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoRmFsc2VGdW5jdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZsb29yRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZsb29yRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhGcmVlQ29tcEV4cHIgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aEZyZWVDb21wRXhwciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZyZWVDb250ZXh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlQ29udGV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZyZWVOb2RlU2V0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhGcmVlTm9kZVNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnJlZU5vZGVTZXRMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoRnJlZU9iamVjdCAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoRnJlZU9iamVjdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZ1bmN0aW9uTG9va3VwICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhGdW5jdGlvbkxvb2t1cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhIYXNTYW1lTm9kZXMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aEhhc1NhbWVOb2RlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aElkRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aElkRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhJbml0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhJbml0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoSW50ZXJzZWN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJbnRlcnNlY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhJc0luZiAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoSXNJbmYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhJc05hTiAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoSXNOYU4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhJc05vZGVUeXBlICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhJc05vZGVUeXBlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTGFuZ0Z1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMYW5nRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhMYXN0RnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExhc3RGdW5jdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aExlYWRpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExlYWRpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhMZWFkaW5nU29ydGVkICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhMZWFkaW5nU29ydGVkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTW9kVmFsdWVzICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNb2RWYWx1ZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhNdWx0VmFsdWVzICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhNdWx0VmFsdWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTmV3Qm9vbGVhbiAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Qm9vbGVhbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5ld0NTdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld0NTdHJpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXdDb250ZXh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhOZXdDb250ZXh0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTmV3RmxvYXQgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld0Zsb2F0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTmV3Tm9kZVNldCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3Tm9kZVNldCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5ld05vZGVTZXRMaXN0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXdOb2RlU2V0TGlzdCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXdTdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5ld1N0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5ld1ZhbHVlVHJlZSAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV3VmFsdWVUcmVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTmV4dEFuY2VzdG9yICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0QW5jZXN0b3IiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5leHRBdHRyaWJ1dGUgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRBdHRyaWJ1dGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXh0Q2hpbGQgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRDaGlsZCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5leHREZXNjZW5kYW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5leHRGb2xsb3dpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRGb2xsb3dpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXh0TmFtZXNwYWNlICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOZXh0TmFtZXNwYWNlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTmV4dFBhcmVudCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFBhcmVudCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5leHRQcmVjZWRpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5leHRQcmVjZWRpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOZXh0U2VsZiAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTmV4dFNlbGYiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlTGVhZGluZyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmciLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlU2V0QWRkICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm9kZVNldEFkZE5zICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkTnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm9kZVNldENvbnRhaW5zICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlU2V0Q3JlYXRlICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoLmh0bWwjeG1sWFBhdGhOb2RlU2V0Q3JlYXRlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm9kZVNldERlbCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldERlbCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRGcmVlTnMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRGcmVlTnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlU2V0TWVyZ2UgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRNZXJnZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRSZW1vdmUgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVTZXRSZW1vdmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlU2V0U29ydCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVNldFNvcnQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhOb2RlVHJhaWxpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vZGVUcmFpbGluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm90RXF1YWxWYWx1ZXMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTm90RnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5vdEZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTnNMb29rdXAgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE5zTG9va3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoTnVtYmVyRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aE51bWJlckZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoT2JqZWN0Q29weSAoKSIgbGluaz0ibGlieG1sMi14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0Q29weSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aE9yZGVyRG9jRWxlbXMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGguaHRtbCN4bWxYUGF0aE9yZGVyRG9jRWxlbXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhQYXJzZU5DTmFtZSAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUGFyc2VOQ05hbWUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhQYXJzZU5hbWUgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBhcnNlTmFtZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFBvcEJvb2xlYW4gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcEJvb2xlYW4iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhQb3BFeHRlcm5hbCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUG9wRXh0ZXJuYWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhQb3BOb2RlU2V0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOb2RlU2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUG9wTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhQb3BOdW1iZXIiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhQb3BTdHJpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvcFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhSZWdpc3RlckZ1bmMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuYyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJGdW5jTlMgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJOcyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJOcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFJvb3QgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFJvb3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhSb3VuZEZ1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhSb3VuZEZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3RyaW5nRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3ViVmFsdWVzICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJWYWx1ZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoU3VtRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFN1bUZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVHJhaWxpbmcgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24gKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVHJ1ZUZ1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhUcnVlRnVuY3Rpb24iLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFBhdGhWYWx1ZUZsaXBTaWduICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVmFyaWFibGVMb29rdXAgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFZhcmlhYmxlTG9va3VwIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoVmFyaWFibGVMb29rdXBOUyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBOUyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFdyYXBDU3RyaW5nICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhXcmFwQ1N0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aFdyYXBFeHRlcm5hbCAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcEV4dGVybmFsIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoV3JhcE5vZGVTZXQgKCkiIGxpbms9ImxpYnhtbDIteHBhdGhJbnRlcm5hbHMuaHRtbCN4bWxYUGF0aFdyYXBOb2RlU2V0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQYXRoV3JhcFN0cmluZyAoKSIgbGluaz0ibGlieG1sMi14cGF0aEludGVybmFscy5odG1sI3htbFhQYXRoV3JhcFN0cmluZyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUGF0aGVycm9yICgpIiBsaW5rPSJsaWJ4bWwyLXhwYXRoSW50ZXJuYWxzLmh0bWwjeG1sWFBhdGhlcnJvciIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUHRyQnVpbGROb2RlTGlzdCAoKSIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbFhQdHJCdWlsZE5vZGVMaXN0Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQdHJFdmFsICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0ckV2YWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSAoKSIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ckZyZWVMb2NhdGlvblNldCAoKSIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbFhQdHJGcmVlTG9jYXRpb25TZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ckxvY2F0aW9uU2V0QWRkICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0ckxvY2F0aW9uU2V0QWRkIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQdHJMb2NhdGlvblNldENyZWF0ZSAoKSIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbFhQdHJMb2NhdGlvblNldENyZWF0ZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUHRyTG9jYXRpb25TZXREZWwgKCkiIGxpbms9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXREZWwiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UgKCkiIGxpbms9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUgKCkiIGxpbms9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQdHJOZXdDb250ZXh0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld0NvbnRleHQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCAoKSIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMgKCkiIGxpbms9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUHRyTmV3UmFuZ2UgKCkiIGxpbms9ImxpYnhtbDIteHBvaW50ZXIuaHRtbCN4bWxYUHRyTmV3UmFuZ2UiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCAoKSIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50ICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50Ii8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQdHJOZXdSYW5nZU5vZGVzICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlTm9kZXMiLz4KKyAgICA8ZnVuY3Rpb24gbmFtZT0ieG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIi8+CisgICAgPGZ1bmN0aW9uIG5hbWU9InhtbFhQdHJOZXdSYW5nZVBvaW50cyAoKSIgbGluaz0ibGlieG1sMi14cG9pbnRlci5odG1sI3htbFhQdHJOZXdSYW5nZVBvaW50cyIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0clJhbmdlVG9GdW5jdGlvbiIvPgorICAgIDxmdW5jdGlvbiBuYW1lPSJ4bWxYUHRyV3JhcExvY2F0aW9uU2V0ICgpIiBsaW5rPSJsaWJ4bWwyLXhwb2ludGVyLmh0bWwjeG1sWFB0cldyYXBMb2NhdGlvblNldCIvPgorICA8L2Z1bmN0aW9ucz4KKzwvYm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvcmlnaHQucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9yaWdodC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI4MzJlMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvcmlnaHQucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvc3R5bGUuY3NzIGIvbGlieG1sMi0yLjcuNy9kb2MvZGV2aGVscC9zdHlsZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzljYWJlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvc3R5bGUuY3NzCkBAIC0wLDAgKzEsNjYgQEAKKy5zeW5vcHNpcywgLmNsYXNzc3lub3BzaXMgCit7CisgIGJhY2tncm91bmQ6ICNlZWVlZWU7CisgIGJvcmRlcjogc29saWQgMXB4ICNhYWFhYWE7CisgIHBhZGRpbmc6IDAuNWVtOworfQorLnByb2dyYW1saXN0aW5nIAoreworICBiYWNrZ3JvdW5kOiAjZWVlZWZmOworICBib3JkZXI6IHNvbGlkIDFweCAjYWFhYWZmOworICBwYWRkaW5nOiAwLjVlbTsKK30KKy52YXJpYWJsZWxpc3QgCit7CisgIHBhZGRpbmc6IDRweDsKKyAgbWFyZ2luLWxlZnQ6IDNlbTsKK30KKy52YXJpYWJsZWxpc3QgdGQ6Zmlyc3QtY2hpbGQKK3sKKyAgdmVydGljYWwtYWxpZ246IHRvcDsKK30KK3RhYmxlLm5hdmlnYXRpb24gCit7CisgIGJhY2tncm91bmQ6ICNmZmVlZWU7CisgIGJvcmRlcjogc29saWQgMXB4ICNmZmFhYWE7CisgIG1hcmdpbi10b3A6IDAuNWVtOworICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKK30KKy5uYXZpZ2F0aW9uIGEgCit7CisgIGNvbG9yOiAjNzcwMDAwOworfQorLm5hdmlnYXRpb24gYTp2aXNpdGVkIAoreworICBjb2xvcjogIzU1MDAwMDsKK30KKy5uYXZpZ2F0aW9uIC50aXRsZSAKK3sKKyAgZm9udC1zaXplOiAyMDAlOworfQorZGl2LnJlZm5hbWVkaXYgCit7CisgIG1hcmdpbi10b3A6IDJlbTsKK30KK2Rpdi5nYWxsZXJ5LWZsb2F0IAoreworICBmbG9hdDogbGVmdDsKKyAgcGFkZGluZzogMTBweDsKK30KK2Rpdi5nYWxsZXJ5LWZsb2F0IGltZyAKK3sKKyAgYm9yZGVyLXN0eWxlOiBub25lOworfQorZGl2LmdhbGxlcnktc3BhY2VyIAoreworICBjbGVhcjogYm90aDsKK30KK2EKK3sKKyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorYTpob3ZlcgoreworICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKKyAgY29sb3I6ICNGRjAwMDA7Cit9CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL3VwLnBuZyBiL2xpYnhtbDItMi43LjcvZG9jL2RldmhlbHAvdXAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1YjNlMmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9kZXZoZWxwL3VwLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9kb2NzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kb2NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBlMmEyYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2RvY3MuaHRtbApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkRldmVsb3BlciBNZW51PC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5EZXZlbG9wZXIgTWVudTwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPlRoZXJlIGFyZSBzZXZlcmFsIG9uLWxpbmUgcmVzb3VyY2VzIHJlbGF0ZWQgdG8gdXNpbmcgbGlieG1sOjwvcD48b2w+PGxpPlVzZSB0aGUgPGEgaHJlZj0ic2VhcmNoLnBocCI+c2VhcmNoIGVuZ2luZTwvYT4gdG8gbG9vayB1cAorICBpbmZvcm1hdGlvbi48L2xpPgorICA8bGk+Q2hlY2sgdGhlIDxhIGhyZWY9IkZBUS5odG1sIj5GQVEuPC9hPjwvbGk+CisgIDxsaT5DaGVjayB0aGUgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLWxpYi5odG1sIj5leHRlbnNpdmUKKyAgICBkb2N1bWVudGF0aW9uPC9hPiBhdXRvbWF0aWNhbGx5IGV4dHJhY3RlZCBmcm9tIGNvZGUgY29tbWVudHMuPC9saT4KKyAgPGxpPkxvb2sgYXQgdGhlIGRvY3VtZW50YXRpb24gYWJvdXQgPGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+bGlieG1sCisgICAgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydDwvYT4uPC9saT4KKyAgPGxpPlRoaXMgcGFnZSBwcm92aWRlcyBhIGdsb2JhbCBvdmVydmlldyBhbmQgPGEgaHJlZj0iZXhhbXBsZS5odG1sIj5zb21lCisgICAgZXhhbXBsZXM8L2E+IG9uIGhvdyB0byB1c2UgbGlieG1sLjwvbGk+CisgIDxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIGV4YW1wbGVzPC9hPjwvbGk+CisgIDxsaT5Kb2huIEZsZWNrJ3MgbGlieG1sMiB0dXRvcmlhbDogPGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+aHRtbDwvYT4KKyAgICBvciA8YSBocmVmPSJ0dXRvcmlhbC94bWx0dXRvcmlhbC5wZGYiPnBkZjwvYT4uPC9saT4KKyAgPGxpPklmIHlvdSBuZWVkIHRvIHBhcnNlIGxhcmdlIGZpbGVzLCBjaGVjayB0aGUgPGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPnhtbFJlYWRlcjwvYT4gQVBJIHR1dG9yaWFsPC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzpqYW1lc0BkYWEuY29tLmF1Ij5KYW1lcyBIZW5zdHJpZGdlPC9hPiB3cm90ZSA8YSBocmVmPSJodHRwOi8vd3d3LmRhYS5jb20uYXUvfmphbWVzL2dub21lL3htbC1zYXgveG1sLXNheC5odG1sIj5zb21lIG5pY2UKKyAgICBkb2N1bWVudGF0aW9uPC9hPiBleHBsYWluaW5nIGhvdyB0byB1c2UgdGhlIGxpYnhtbCBTQVggaW50ZXJmYWNlLjwvbGk+CisgIDxsaT5HZW9yZ2UgTGVibCB3cm90ZSA8YSBocmVmPSJodHRwOi8vd3d3LTEwNi5pYm0uY29tL2RldmVsb3BlcndvcmtzL2xpYnJhcnkvbC1nbm9tZTMvIj5hbiBhcnRpY2xlCisgICAgZm9yIElCTSBkZXZlbG9wZXJXb3JrczwvYT4gYWJvdXQgdXNpbmcgbGlieG1sLjwvbGk+CisgIDxsaT5DaGVjayA8YSBocmVmPSJodHRwOi8vc3ZuLmdub21lLm9yZy92aWV3dmMvbGlieG1sMi90cnVuay9UT0RPP3ZpZXc9bWFya3VwIj50aGUgVE9ETworICAgIGZpbGU8L2E+LjwvbGk+CisgIDxsaT5SZWFkIHRoZSA8YSBocmVmPSJ1cGdyYWRlLmh0bWwiPjEueCB0byAyLnggdXBncmFkZSBwYXRoPC9hPgorICAgIGRlc2NyaXB0aW9uLiBJZiB5b3UgYXJlIHN0YXJ0aW5nIGEgbmV3IHByb2plY3QgdXNpbmcgbGlieG1sIHlvdSBzaG91bGQKKyAgICByZWFsbHkgdXNlIHRoZSAyLnggdmVyc2lvbi48L2xpPgorICA8bGk+QW5kIGRvbid0IGZvcmdldCB0byBsb29rIGF0IHRoZSA8YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+bWFpbGluZy1saXN0IGFyY2hpdmU8L2E+LjwvbGk+Cis8L29sPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZG93bmxvYWRzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9kb3dubG9hZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmIyNDJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZG93bmxvYWRzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5Eb3dubG9hZHM8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkRvd25sb2FkczwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT48bGk+PGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPjxsaT48YSBocmVmPSJuZXdzLmh0bWwiPlJlbGVhc2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhNTGluZm8uaHRtbCI+WE1MPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+VGhlIGxhdGVzdCB2ZXJzaW9ucyBvZiBsaWJ4bWwyIGNhbiBiZSBmb3VuZCBvbiB0aGUgPGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi8iPnhtbHNvZnQub3JnPC9hPiBzZXJ2ZXIgKCA8YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy9saWJ4bWwyLyI+RlRQPC9hPiBhbmQgcnN5bmMgYXJlIGF2YWlsYWJsZSksIHRoZXJlIGFyZSBhbHNvCittaXJyb3JzICg8YSBocmVmPSJmdHA6Ly9mci5ycG1maW5kLm5ldC9wdWIvbGlieG1sLyI+RnJhbmNlPC9hPiBhbmQKK0FudG9uaW4gU3ByaW56bCBhbHNvIHByb3ZpZGUgPGEgaHJlZj0iZnRwOi8vZ2QudHV3aWVuLmFjLmF0L3B1Yi9saWJ4bWwvIj5hCittaXJyb3IgaW4gQXVzdHJpYTwvYT4pLiAoTk9URSB0aGF0IHlvdSBuZWVkIGJvdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sMi5odG1sIj5saWJ4bWwoMik8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvUlBNL2xpYnhtbDItZGV2ZWwuaHRtbCI+bGlieG1sKDIpLWRldmVsPC9hPgorcGFja2FnZXMgaW5zdGFsbGVkIHRvIGNvbXBpbGUgYXBwbGljYXRpb25zIHVzaW5nIGxpYnhtbCBpZiB1c2luZyBSUE1zLik8L3A+PHA+WW91IGNhbiBmaW5kIGFsbCB0aGUgaGlzdG9yeSBvZiBsaWJ4bWwoMikgYW5kIGxpYnhzbHQgcmVsZWFzZXMgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9zb3VyY2VzL29sZC8iPm9sZDwvYT4gZGlyZWN0b3J5LiBUaGUgcHJlY29tcGlsZWQKK1dpbmRvd3MgYmluYXJpZXMgbWFkZSBieSBJZ29yIFpsYXRvdmljIGFyZSBhdmFpbGFibGUgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9zb3VyY2VzL3dpbjMyLyI+d2luMzI8L2E+IGRpcmVjdG9yeS48L3A+PHA+QmluYXJ5IHBvcnRzOjwvcD48dWw+PGxpPlJQTXMgZm9yIHg4Nl82NCBhcmUgYXZhaWxhYmxlIGRpcmVjdGx5IG9uIDxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvIj54bWxzb2Z0Lm9yZzwvYT4sIHRoZSBzb3VyY2UgUlBNIHdpbGwgY29tcGlsZSBvbgorICAgIGFueSBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLjwvbGk+CisgIDxsaT48YSBocmVmPSJtYWlsdG86aWdvckB6bGF0a292aWMuY29tIj5JZ29yIFpsYXRrb3ZpYzwvYT4gaXMgbm93IHRoZQorICAgIG1haW50YWluZXIgb2YgdGhlIFdpbmRvd3MgcG9ydCwgPGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC9pbmRleC5odG1sIj5oZSBwcm92aWRlcworICAgIGJpbmFyaWVzPC9hPi48L2xpPgorICA8bGk+T3BlbkNTVyBwcm92aWRlcyA8YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcworICBiaW5hcmllczwvYT4uPC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzpTdGV2ZS5CYWxsQGV4cGxhaW4uY29tLmF1Ij5TdGV2ZSBCYWxsPC9hPiBwcm92aWRlcyA8YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWMgT3MgWAorICAgIGJpbmFyaWVzPC9hPi48L2xpPgorICA8bGk+VGhlIEhQLVVYIHBvcnRpbmcgY2VudGVyIHByb3ZpZGVzIDxhIGhyZWY9Imh0dHA6Ly9ocHV4LmNvbm5lY3Qub3JnLnVrL2hwcGQvaHB1eC9Hbm9tZS8iPkhQLVVYIGJpbmFyaWVzPC9hPjwvbGk+CisgIDxsaT5CdWxsIHByb3ZpZGVzIHByZWNvbXBpbGVkIDxhIGhyZWY9Imh0dHA6Ly9nbm9tZS5idWxsZnJlZXdhcmUuY29tL25ld19pbmRleC5odG1sIj5SUE1zIGZvciBBSVg8L2E+IGFzCisgICAgcGF0ciBvZiB0aGVpciBHTk9NRSBwYWNrYWdlczwvbGk+Cis8L3VsPjxwPklmIHlvdSBrbm93IG90aGVyIHN1cHBvcnRlZCBiaW5hcnkgcG9ydHMsIHBsZWFzZSA8YSBocmVmPSJodHRwOi8vdmVpbGxhcmQuY29tLyI+Y29udGFjdCBtZTwvYT4uPC9wPjxwPjxhIG5hbWU9IlNuYXBzaG90IiBpZD0iU25hcHNob3QiPlNuYXBzaG90OjwvYT48L3A+PHVsPjxsaT5Db2RlIGZyb20gdGhlIEdOT01FIEdJVCBiYXNlIGxpYnhtbDIgbW9kdWxlLCB1cGRhdGVkIGhvdXJseSA8YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy9saWJ4bWwyL2xpYnhtbDItZ2l0LXNuYXBzaG90LnRhci5neiI+bGlieG1sMi1naXQtc25hcHNob3QudGFyLmd6PC9hPi48L2xpPgorICA8bGk+RG9jcywgY29udGVudCBvZiB0aGUgd2ViIHNpdGUsIHRoZSBsaXN0IGFyY2hpdmUgaW5jbHVkZWQgPGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi9saWJ4bWwtZG9jcy50YXIuZ3oiPmxpYnhtbC1kb2NzLnRhci5nejwvYT4uPC9saT4KKzwvdWw+PHA+PGEgbmFtZT0iQ29udHJpYnMiIGlkPSJDb250cmlicyI+Q29udHJpYnV0aW9uczo8L2E+PC9wPjxwPkkgZG8gYWNjZXB0IGV4dGVybmFsIGNvbnRyaWJ1dGlvbnMsIGVzcGVjaWFsbHkgaWYgY29tcGlsaW5nIG9uIGFub3RoZXIKK3BsYXRmb3JtLCAgZ2V0IGluIHRvdWNoIHdpdGggdGhlIGxpc3QgdG8gdXBsb2FkIHRoZSBwYWNrYWdlLCB3cmFwcGVycyBmb3IKK3ZhcmlvdXMgbGFuZ3VhZ2VzIGhhdmUgYmVlbiBwcm92aWRlZCwgYW5kIGNhbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0icHl0aG9uLmh0bWwiPmJpbmRpbmdzIHNlY3Rpb248L2E+PC9wPjxwPkxpYnhtbDIgaXMgYWxzbyBhdmFpbGFibGUgZnJvbSBHSVQ6PC9wPjx1bD48bGk+PHA+U2VlIDxhIGhyZWY9Imh0dHA6Ly9naXQuZ25vbWUub3JnL2NnaXQvbGlieG1sMi8iPmxpYnhtbDIgR2l0IHdlYjwvYT4uCisgICAgICAgICBUbyBjaGVja291dCBhIGxvY2FsIHRyZWUgdXNlOjwvcD4KKyAgICAgICA8cHJlPmdpdCBjbG9uZSBnaXQ6Ly9naXQuZ25vbWUub3JnL2xpYnhtbDI8L3ByZT4KKyAgPC9saT4KKyAgPGxpPlRoZSA8c3Ryb25nPmxpYnhzbHQ8L3N0cm9uZz4gbW9kdWxlIGlzIGFsc28gcHJlc2VudCB0aGVyZTwvbGk+Cis8L3VsPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZWxmZ2NjaGFjay54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy9lbGZnY2NoYWNrLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWRmMzQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZWxmZ2NjaGFjay54c2wKQEAgLTAsMCArMSwxNjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgorICAgICAgICAgICAgICAgIHhtbG5zOnhodG1sPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIgorICAgICAgICAgICAgICAgIHZlcnNpb249IjEuMCI+CisgIDx4c2w6b3V0cHV0IG1ldGhvZD0idGV4dCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiLz4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4KKyAgICA8eHNsOnRleHQ+LyoKKyAqIGVsZmdjY2hhY2suaDogaGFjayBieSBBcmphbiB2YW4gZGUgVmVuICZsdDthcmphbnZAcmVkaGF0LmNvbSZndDsgdG8gc3BlZWQKKyAqICAgICAgICAgICAgICAgdXAgdGhlIGNvZGUgd2hlbiB1c2luZyBnY2MgZm9yIGNhbGwgd2l0aGluIHRoZSBsaWJyYXJ5LgorICoKKyAqIEJhc2VkIG9uIHRoZSBhbmFseXNpcyBodHRwOi8vcGVvcGxlLnJlZGhhdC5jb20vZHJlcHBlci9kc29ob3d0by5wZGYKKyAqIGZyb20gVWxyaWNoIGRyZXBwZXIuIFJld3JpdHRlbiB0byBiZSBnZW5lcmF0ZWQgZnJvbSB0aGUgWE1MIGRlc2NyaXB0aW9uCisgKiBmaWxlIGZvciBsaWJ4bWwyIEFQSQorICogYXV0b2dlbmVyYXRlZCB3aXRoIHhzbHRwcm9jIGRvYy9lbGZnY2NoYWNrLnhzbCBkb2MvbGlieG1sMi1hcGkueG1sCisgKi8KKworI2lmZGVmIElOX0xJQlhNTAorI2lmZGVmIF9fR05VQ19fCisjaWZkZWYgUElDCisjaWZkZWYgbGludXgKKyNpZiAoX19HTlVDX18gPT0gMyAmYW1wOyZhbXA7IF9fR05VQ19NSU5PUl9fID49IDMpIHx8IChfX0dOVUNfXyA+IDMpCisKKyNpbmNsdWRlICJsaWJ4bWwvYzE0bi5oIgorI2luY2x1ZGUgImxpYnhtbC9jYXRhbG9nLmgiCisjaW5jbHVkZSAibGlieG1sL2NodmFsaWQuaCIKKyNpbmNsdWRlICJsaWJ4bWwvZGVidWdYTUwuaCIKKyNpbmNsdWRlICJsaWJ4bWwvZGljdC5oIgorI2luY2x1ZGUgImxpYnhtbC9ET0NCcGFyc2VyLmgiCisjaW5jbHVkZSAibGlieG1sL2VuY29kaW5nLmgiCisjaW5jbHVkZSAibGlieG1sL2VudGl0aWVzLmgiCisjaW5jbHVkZSAibGlieG1sL2dsb2JhbHMuaCIKKyNpbmNsdWRlICJsaWJ4bWwvaGFzaC5oIgorI2luY2x1ZGUgImxpYnhtbC9IVE1McGFyc2VyLmgiCisjaW5jbHVkZSAibGlieG1sL0hUTUx0cmVlLmgiCisjaW5jbHVkZSAibGlieG1sL2xpc3QuaCIKKyNpbmNsdWRlICJsaWJ4bWwvbmFub2Z0cC5oIgorI2luY2x1ZGUgImxpYnhtbC9uYW5vaHR0cC5oIgorI2luY2x1ZGUgImxpYnhtbC9wYXJzZXIuaCIKKyNpbmNsdWRlICJsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmgiCisjaW5jbHVkZSAibGlieG1sL3BhdHRlcm4uaCIKKyNpbmNsdWRlICJsaWJ4bWwvcmVsYXhuZy5oIgorI2luY2x1ZGUgImxpYnhtbC9TQVgyLmgiCisjaW5jbHVkZSAibGlieG1sL1NBWC5oIgorI2luY2x1ZGUgImxpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmgiCisjaW5jbHVkZSAibGlieG1sL3NjaGVtYXRyb24uaCIKKyNpbmNsdWRlICJsaWJ4bWwvdGhyZWFkcy5oIgorI2luY2x1ZGUgImxpYnhtbC90cmVlLmgiCisjaW5jbHVkZSAibGlieG1sL3VyaS5oIgorI2luY2x1ZGUgImxpYnhtbC92YWxpZC5oIgorI2luY2x1ZGUgImxpYnhtbC94aW5jbHVkZS5oIgorI2luY2x1ZGUgImxpYnhtbC94bGluay5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxhdXRvbWF0YS5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxlcnJvci5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxleHBvcnRzLmgiCisjaW5jbHVkZSAibGlieG1sL3htbElPLmgiCisjaW5jbHVkZSAibGlieG1sL3htbG1lbW9yeS5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxyZWFkZXIuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1scmVnZXhwLmgiCisjaW5jbHVkZSAibGlieG1sL3htbHNhdmUuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sc2NoZW1hcy5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxzY2hlbWFzdHlwZXMuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sc3RyaW5nLmgiCisjaW5jbHVkZSAibGlieG1sL3htbHVuaWNvZGUuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sdmVyc2lvbi5oIgorI2luY2x1ZGUgImxpYnhtbC94bWx3cml0ZXIuaCIKKyNpbmNsdWRlICJsaWJ4bWwveHBhdGguaCIKKyNpbmNsdWRlICJsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaCIKKyNpbmNsdWRlICJsaWJ4bWwveHBvaW50ZXIuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sbW9kdWxlLmgiCisKKy8qIHNwZWNpYWwgaG90IHNwb3Qgbm90IGV4cG9ydGVkIG9uZXMgKi8KKworI2lmZGVmIGJvdHRvbV9nbG9iYWxzCisjdW5kZWYgX194bWxHZW5lcmljRXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoX194bWxHZW5lcmljRXJyb3IpIF9feG1sR2VuZXJpY0Vycm9yIF9fYXR0cmlidXRlKChhbGlhcygiX194bWxHZW5lcmljRXJyb3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIF9feG1sR2VuZXJpY0Vycm9yCitleHRlcm4gX190eXBlb2YgKF9feG1sR2VuZXJpY0Vycm9yKSBfX3htbEdlbmVyaWNFcnJvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIF9feG1sR2VuZXJpY0Vycm9yIF9feG1sR2VuZXJpY0Vycm9yX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9nbG9iYWxzCisjdW5kZWYgX194bWxHZW5lcmljRXJyb3JDb250ZXh0CitleHRlcm4gX190eXBlb2YgKF9feG1sR2VuZXJpY0Vycm9yQ29udGV4dCkgX194bWxHZW5lcmljRXJyb3JDb250ZXh0IF9fYXR0cmlidXRlKChhbGlhcygiX194bWxHZW5lcmljRXJyb3JDb250ZXh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBfX3htbEdlbmVyaWNFcnJvckNvbnRleHQKK2V4dGVybiBfX3R5cGVvZiAoX194bWxHZW5lcmljRXJyb3JDb250ZXh0KSBfX3htbEdlbmVyaWNFcnJvckNvbnRleHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBfX3htbEdlbmVyaWNFcnJvckNvbnRleHQgX194bWxHZW5lcmljRXJyb3JDb250ZXh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworLyogbGlzdCBnZW5lcmF0ZWQgZnJvbSBsaWJ4bWwyLWFwaS54bWwgKi8KKzwveHNsOnRleHQ+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIvYXBpL3N5bWJvbHMvZnVuY3Rpb24iLz4KKyAgICA8eHNsOnRleHQ+CisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmdW5jdGlvbiI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJzdHIiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6aWYgdGVzdD0iKHN0YXJ0cy13aXRoKEBuYW1lLCAneG1sJykgb3Igc3RhcnRzLXdpdGgoQG5hbWUsICdodG1sJykgb3IgY29udGFpbnMoQG5hbWUsICdQdXNoJykgb3IgY29udGFpbnMoQG5hbWUsICdQb3AnKSkgYW5kIChub3QoY29udGFpbnMoQG5hbWUsICd4bWxEbGxNYWluJykpKSI+CisgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImFsaWFzIiBzZWxlY3Q9ImNvbmNhdCgkc3RyLCAnX19pbnRlcm5hbF9hbGlhcycpIi8+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImNvbmQiLz4KKyAgICAgIDx4c2w6dGV4dD4jaWZkZWYgYm90dG9tXzwveHNsOnRleHQ+CisgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3RyaW5nKEBtb2R1bGUpIi8+CisgICAgICA8eHNsOnRleHQ+CisjdW5kZWYgPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkc3RyIi8+CisgICAgICA8eHNsOnRleHQ+CitleHRlcm4gX190eXBlb2YgKDwveHNsOnRleHQ+CisgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHN0ciIvPgorICAgICAgPHhzbDp0ZXh0PikgPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkc3RyIi8+CisgICAgICA8eHNsOnRleHQ+IF9fYXR0cmlidXRlKChhbGlhcygiPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkYWxpYXMiLz4KKyAgICAgIDx4c2w6dGV4dD4iKSkpOworI2Vsc2UKKyNpZm5kZWYgPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkc3RyIi8+CisgICAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp0ZXh0PmV4dGVybiBfX3R5cGVvZiAoPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkc3RyIi8+CisgICAgICA8eHNsOnRleHQ+KSA8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRhbGlhcyIvPgorICAgICAgPHhzbDp0ZXh0PiBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKzwveHNsOnRleHQ+CisgICAgICA8eHNsOnRleHQ+I2RlZmluZSA8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRzdHIiLz4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkYWxpYXMiLz4KKyAgICAgIDx4c2w6dGV4dD4KKyNlbmRpZgorI2VuZGlmCis8L3hzbDp0ZXh0PgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJjb25kIiBtb2RlPSJlbmQiLz4KKyAgICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjb25kIj4KKyAgICA8eHNsOnRleHQ+I2lmIDwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KKyAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY29uZCIgbW9kZT0iZW5kIj4KKyAgICA8eHNsOnRleHQ+I2VuZGlmCis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2VuY29kaW5nLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9lbmNvZGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4N2Y2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9lbmNvZGluZy5odG1sCkBAIC0wLDAgKzEsMjA2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkVuY29kaW5ncyBzdXBwb3J0PC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5FbmNvZGluZ3Mgc3VwcG9ydDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT48bGk+PGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPjxsaT48YSBocmVmPSJuZXdzLmh0bWwiPlJlbGVhc2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhNTGluZm8uaHRtbCI+WE1MPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+SWYgeW91IGFyZSBub3QgcmVhbGx5IGZhbWlsaWFyIHdpdGggSW50ZXJuYXRpb25hbGl6YXRpb24gKHVzdWFsIHNob3J0Y3V0CitpcyBJMThOKSAsIFVuaWNvZGUsIGNoYXJhY3RlcnMgYW5kIGdseXBocywgSSBzdWdnZXN0IHlvdSByZWFkIGEgPGEgaHJlZj0iaHR0cDovL3d3dy50YnJheS5vcmcvb25nb2luZy9XaGVuLzIwMHgvMjAwMy8wNC8wNi9Vbmljb2RlIj5wcmVzZW50YXRpb248L2E+CitieSBUaW0gQnJheSBvbiBVbmljb2RlIGFuZCB3aHkgeW91IHNob3VsZCBjYXJlIGFib3V0IGl0LjwvcD48cD5JZiB5b3UgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgPGI+aXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBoYXZlIGEgc3RyaW5nCit3aXRob3V0IGtub3dpbmcgd2hhdCBlbmNvZGluZyBpdCB1c2VzPC9iPiwgdGhlbiBhcyBKb2VsIFNwb2xza3kgc2FpZCA8YSBocmVmPSJodHRwOi8vd3d3LmpvZWxvbnNvZnR3YXJlLmNvbS9hcnRpY2xlcy9Vbmljb2RlLmh0bWwiPnBsZWFzZSBkbyBub3QKK3dyaXRlIGFub3RoZXIgbGluZSBvZiBjb2RlIHVudGlsIHlvdSBmaW5pc2ggcmVhZGluZyB0aGF0IGFydGljbGUuPC9hPi4gSXQgaXMKK2EgcHJlcmVxdWlzaXRlIHRvIHVuZGVyc3RhbmQgdGhpcyBwYWdlLCBhbmQgYXZvaWQgYSBsb3Qgb2YgcHJvYmxlbXMgd2l0aAorbGlieG1sMiwgWE1MIG9yIHRleHQgcHJvY2Vzc2luZyBpbiBnZW5lcmFsLjwvcD48cD5UYWJsZSBvZiBDb250ZW50OjwvcD48b2w+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwjV2hhdCI+V2hhdCBkb2VzIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQKKyAgICBtZWFuID88L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwjaW50ZXJuYWwiPlRoZSBpbnRlcm5hbCBlbmNvZGluZywgaG93IGFuZAorICB3aHk8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwjaW1wbGVtZW50ZSI+SG93IGlzIGl0IGltcGxlbWVudGVkID88L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwjRGVmYXVsdCI+RGVmYXVsdCBzdXBwb3J0ZWQgZW5jb2RpbmdzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sI2V4dGVuZCI+SG93IHRvIGV4dGVuZCB0aGUgZXhpc3RpbmcKKyAgc3VwcG9ydDwvYT48L2xpPgorPC9vbD48aDM+PGEgbmFtZT0iV2hhdCIgaWQ9IldoYXQiPldoYXQgZG9lcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBzdXBwb3J0IG1lYW4gPzwvYT48L2gzPjxwPlhNTCB3YXMgZGVzaWduZWQgZnJvbSB0aGUgc3RhcnQgdG8gYWxsb3cgdGhlIHN1cHBvcnQgb2YgYW55IGNoYXJhY3RlciBzZXQKK2J5IHVzaW5nIFVuaWNvZGUuIEFueSBjb25mb3JtYW50IFhNTCBwYXJzZXIgaGFzIHRvIHN1cHBvcnQgdGhlIFVURi04IGFuZAorVVRGLTE2IGRlZmF1bHQgZW5jb2RpbmdzIHdoaWNoIGNhbiBib3RoIGV4cHJlc3MgdGhlIGZ1bGwgdW5pY29kZSByYW5nZXMuIFVURjgKK2lzIGEgdmFyaWFibGUgbGVuZ3RoIGVuY29kaW5nIHdob3NlIGdyZWF0ZXN0IHBvaW50cyBhcmUgdG8gcmV1c2UgdGhlIHNhbWUKK2VuY29kaW5nIGZvciBBU0NJSSBhbmQgdG8gc2F2ZSBzcGFjZSBmb3IgV2VzdGVybiBlbmNvZGluZ3MsIGJ1dCBpdCBpcyBhIGJpdAorbW9yZSBjb21wbGV4IHRvIGhhbmRsZSBpbiBwcmFjdGljZS4gVVRGLTE2IHVzZSAyIGJ5dGVzIHBlciBjaGFyYWN0ZXIgKGFuZAorc29tZXRpbWVzIGNvbWJpbmVzIHR3byBwYWlycyksIGl0IG1ha2VzIGltcGxlbWVudGF0aW9uIGVhc2llciwgYnV0IGxvb2tzIGEKK2JpdCBvdmVya2lsbCBmb3IgV2VzdGVybiBsYW5ndWFnZXMgZW5jb2RpbmcuIE1vcmVvdmVyIHRoZSBYTUwgc3BlY2lmaWNhdGlvbgorYWxsb3dzIHRoZSBkb2N1bWVudCB0byBiZSBlbmNvZGVkIGluIG90aGVyIGVuY29kaW5ncyBhdCB0aGUgY29uZGl0aW9uIHRoYXQKK3RoZXkgYXJlIGNsZWFybHkgbGFiZWxlZCBhcyBzdWNoLiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIGlzIGEgd2VsbGZvcm1lZAorWE1MIGRvY3VtZW50IGVuY29kZWQgaW4gSVNPLTg4NTktMSBhbmQgdXNpbmcgYWNjZW50dWF0ZWQgbGV0dGVycyB0aGF0IHdlCitGcmVuY2ggbGlrZSBmb3IgYm90aCBtYXJrdXAgYW5kIGNvbnRlbnQ6PC9wPjxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Jmd0OworJmx0O3Ryw6hzJmd0O2zDoCZsdDsvdHLDqHMmZ3Q7PC9wcmU+PHA+SGF2aW5nIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQgaW4gbGlieG1sMiBtZWFucyB0aGUgZm9sbG93aW5nOjwvcD48dWw+PGxpPnRoZSBkb2N1bWVudCBpcyBwcm9wZXJseSBwYXJzZWQ8L2xpPgorICA8bGk+aW5mb3JtYXRpb24gYWJvdXQgaXQncyBlbmNvZGluZyBpcyBzYXZlZDwvbGk+CisgIDxsaT5pdCBjYW4gYmUgbW9kaWZpZWQ8L2xpPgorICA8bGk+aXQgY2FuIGJlIHNhdmVkIGluIGl0cyBvcmlnaW5hbCBlbmNvZGluZzwvbGk+CisgIDxsaT5pdCBjYW4gYWxzbyBiZSBzYXZlZCBpbiBhbm90aGVyIGVuY29kaW5nIHN1cHBvcnRlZCBieSBsaWJ4bWwyIChmb3IKKyAgICBleGFtcGxlIHN0cmFpZ2h0IFVURjggb3IgZXZlbiBhbiBBU0NJSSBmb3JtKTwvbGk+Cis8L3VsPjxwPkFub3RoZXIgdmVyeSBpbXBvcnRhbnQgcG9pbnQgaXMgdGhhdCB0aGUgd2hvbGUgbGlieG1sMiBBUEksIHdpdGggdGhlCitleGNlcHRpb24gb2YgYSBmZXcgcm91dGluZXMgdG8gcmVhZCB3aXRoIGEgc3BlY2lmaWMgZW5jb2Rpbmcgb3Igc2F2ZSB0byBhCitzcGVjaWZpYyBlbmNvZGluZywgaXMgY29tcGxldGVseSBhZ25vc3RpYyBhYm91dCB0aGUgb3JpZ2luYWwgZW5jb2Rpbmcgb2YgdGhlCitkb2N1bWVudC48L3A+PHA+SXQgc2hvdWxkIGJlIG5vdGVkIHRvbyB0aGF0IHRoZSBIVE1MIHBhcnNlciBlbWJlZGRlZCBpbiBsaWJ4bWwyIG5vdyBvYmV5Cit0aGUgc2FtZSBydWxlcyB0b28sIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnQgd2lsbCBiZSAoYXMgb2YgMi4yLjIpIGhhbmRsZWQgIGluCithbiBpbnRlcm5hdGlvbmFsaXplZCBmYXNoaW9uIGJ5IGxpYnhtbDIgdG9vOjwvcD48cHJlPiZsdDshRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiJmd0OworJmx0O2h0bWwgbGFuZz0iZnIiJmd0OworJmx0O2hlYWQmZ3Q7CisgICZsdDtNRVRBIEhUVFAtRVFVSVY9IkNvbnRlbnQtVHlwZSIgQ09OVEVOVD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiJmd0OworJmx0Oy9oZWFkJmd0OworJmx0O2JvZHkmZ3Q7CismbHQ7cCZndDtXM0MgY3LDqWUgZGVzIHN0YW5kYXJkcyBwb3VyIGxlIFdlYi4mbHQ7L2JvZHkmZ3Q7CismbHQ7L2h0bWwmZ3Q7PC9wcmU+PGgzPjxhIG5hbWU9ImludGVybmFsIiBpZD0iaW50ZXJuYWwiPlRoZSBpbnRlcm5hbCBlbmNvZGluZywgaG93IGFuZCB3aHk8L2E+PC9oMz48cD5PbmUgb2YgdGhlIGNvcmUgZGVjaXNpb25zIHdhcyB0byBmb3JjZSBhbGwgZG9jdW1lbnRzIHRvIGJlIGNvbnZlcnRlZCB0byBhCitkZWZhdWx0IGludGVybmFsIGVuY29kaW5nLCBhbmQgdGhhdCBlbmNvZGluZyB0byBiZSBVVEYtOCwgaGVyZSBhcmUgdGhlCityYXRpb25hbGVzIGZvciB0aG9zZSBjaG9pY2VzOjwvcD48dWw+PGxpPmtlZXBpbmcgdGhlIG5hdGl2ZSBlbmNvZGluZyBpbiB0aGUgaW50ZXJuYWwgZm9ybSB3b3VsZCBmb3JjZSB0aGUgbGlieG1sCisgICAgdXNlcnMgKG9yIHRoZSBjb2RlIGFzc29jaWF0ZWQpIHRvIGJlIGZ1bGx5IGF3YXJlIG9mIHRoZSBlbmNvZGluZyBvZiB0aGUKKyAgICBvcmlnaW5hbCBkb2N1bWVudCwgZm9yIGV4YW1wbGVzIHdoZW4gYWRkaW5nIGEgdGV4dCBub2RlIHRvIGEgZG9jdW1lbnQsCisgICAgdGhlIGNvbnRlbnQgd291bGQgaGF2ZSB0byBiZSBwcm92aWRlZCBpbiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIGkuZS4gdGhlCisgICAgY2xpZW50IGNvZGUgd291bGQgaGF2ZSB0byBjaGVjayBpdCBiZWZvcmUgaGFuZCwgbWFrZSBzdXJlIGl0J3MgY29uZm9ybWFudAorICAgIHRvIHRoZSBlbmNvZGluZywgZXRjIC4uLiBWZXJ5IGhhcmQgaW4gcHJhY3RpY2UsIHRob3VnaCBpbiBzb21lIHNwZWNpZmljCisgICAgY2FzZXMgdGhpcyBtYXkgbWFrZSBzZW5zZS48L2xpPgorICA8bGk+dGhlIHNlY29uZCBkZWNpc2lvbiB3YXMgd2hpY2ggZW5jb2RpbmcuIEZyb20gdGhlIFhNTCBzcGVjIG9ubHkgVVRGOCBhbmQKKyAgICBVVEYxNiByZWFsbHkgbWFrZXMgc2Vuc2UgYXMgYmVpbmcgdGhlIHR3byBvbmx5IGVuY29kaW5ncyBmb3Igd2hpY2ggdGhlcmUKKyAgICBpcyBtYW5kYXRvcnkgc3VwcG9ydC4gVUNTLTQgKDMyIGJpdHMgZml4ZWQgc2l6ZSBlbmNvZGluZykgY291bGQgYmUKKyAgICBjb25zaWRlcmVkIGFuIGludGVsbGlnZW50IGNob2ljZSB0b28gc2luY2UgaXQncyBhIGRpcmVjdCBVbmljb2RlIG1hcHBpbmcKKyAgICBzdXBwb3J0LiBJIHNlbGVjdGVkIFVURi04IG9uIHRoZSBiYXNpcyBvZiBlZmZpY2llbmN5IGFuZCBjb21wYXRpYmlsaXR5CisgICAgd2l0aCBzdXJyb3VuZGluZyBzb2Z0d2FyZToKKyAgICA8dWw+PGxpPlVURi04IHdoaWxlIGEgYml0IG1vcmUgY29tcGxleCB0byBjb252ZXJ0IGZyb20vdG8gKGkuZS4gc2xpZ2h0bHkKKyAgICAgICAgbW9yZSBjb3N0bHkgdG8gaW1wb3J0IGFuZCBleHBvcnQgQ1BVIHdpc2UpIGlzIGFsc28gZmFyIG1vcmUgY29tcGFjdAorICAgICAgICB0aGFuIFVURi0xNiAoYW5kIFVDUy00KSBmb3IgYSBtYWpvcml0eSBvZiB0aGUgZG9jdW1lbnRzIEkgc2VlIGl0IHVzZWQKKyAgICAgICAgZm9yIHJpZ2h0IG5vdyAoUlBNIFJERiBjYXRhbG9ncywgYWR2b2dhdG8gZGF0YSwgdmFyaW91cyBjb25maWd1cmF0aW9uCisgICAgICAgIGZpbGUgZm9ybWF0cywgZXRjLikgYW5kIHRoZSBrZXkgcG9pbnQgZm9yIHRvZGF5J3MgY29tcHV0ZXIKKyAgICAgICAgYXJjaGl0ZWN0dXJlIGlzIGVmZmljaWVudCB1c2VzIG9mIGNhY2hlcy4gSWYgb25lIG5lYXJseSBkb3VibGUgdGhlCisgICAgICAgIG1lbW9yeSByZXF1aXJlbWVudCB0byBzdG9yZSB0aGUgc2FtZSBhbW91bnQgb2YgZGF0YSwgdGhpcyB3aWxsIHRyYXNoCisgICAgICAgIGNhY2hlcyAobWFpbiBtZW1vcnkvZXh0ZXJuYWwgY2FjaGVzL2ludGVybmFsIGNhY2hlcykgYW5kIG15IHRha2UgaXMKKyAgICAgICAgdGhhdCB0aGlzIGhhcm1zIHRoZSBzeXN0ZW0gZmFyIG1vcmUgdGhhbiB0aGUgQ1BVIHJlcXVpcmVtZW50cyBuZWVkZWQKKyAgICAgICAgZm9yIHRoZSBjb252ZXJzaW9uIHRvIFVURi04PC9saT4KKyAgICAgIDxsaT5Nb3N0IG9mIGxpYnhtbDIgdmVyc2lvbiAxIHVzZXJzIHdlcmUgdXNpbmcgaXQgd2l0aCBzdHJhaWdodCBBU0NJSQorICAgICAgICBtb3N0IG9mIHRoZSB0aW1lLCBkb2luZyB0aGUgY29udmVyc2lvbiB3aXRoIGFuIGludGVybmFsIGVuY29kaW5nCisgICAgICAgIHJlcXVpcmluZyBhbGwgdGhlaXIgY29kZSB0byBiZSByZXdyaXR0ZW4gd2FzIGEgc2VyaW91cyBzaG93LXN0b3BwZXIKKyAgICAgICAgZm9yIHVzaW5nIFVURi0xNiBvciBVQ1MtNC48L2xpPgorICAgICAgPGxpPlVURi04IGlzIGJlaW5nIHVzZWQgYXMgdGhlIGRlLWZhY3RvIGludGVybmFsIGVuY29kaW5nIHN0YW5kYXJkIGZvcgorICAgICAgICByZWxhdGVkIGNvZGUgbGlrZSB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5wYW5nby5vcmcvIj5wYW5nbzwvYT4KKyAgICAgICAgdXBjb21pbmcgR25vbWUgdGV4dCB3aWRnZXQsIGFuZCBhIGxvdCBvZiBVbml4IGNvZGUgKHlldCBhbm90aGVyIHBsYWNlCisgICAgICAgIHdoZXJlIFVuaXggcHJvZ3JhbW1lciBiYXNlIHRha2VzIGEgZGlmZmVyZW50IGFwcHJvYWNoIGZyb20gTWljcm9zb2Z0CisgICAgICAgIC0gdGhleSBhcmUgdXNpbmcgVVRGLTE2KTwvbGk+CisgICAgPC91bD48L2xpPgorPC91bD48cD5XaGF0IGRvZXMgdGhpcyBtZWFuIGluIHByYWN0aWNlIGZvciB0aGUgbGlieG1sMiB1c2VyOjwvcD48dWw+PGxpPnhtbENoYXIsIHRoZSBsaWJ4bWwyIGRhdGEgdHlwZSBpcyBhIGJ5dGUsIHRob3NlIGJ5dGVzIG11c3QgYmUgYXNzZW1ibGVkCisgICAgYXMgVVRGLTggdmFsaWQgc3RyaW5ncy4gVGhlIHByb3BlciB3YXkgdG8gdGVybWluYXRlIGFuIHhtbENoYXIgKiBzdHJpbmcKKyAgICBpcyBzaW1wbHkgdG8gYXBwZW5kIDAgYnl0ZSwgYXMgdXN1YWwuPC9saT4KKyAgPGxpPk9uZSBqdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB1c2luZyBjaGFycyBvdXRzaWRlIHRoZSBBU0NJSSBzZXQsCisgICAgdGhlIHZhbHVlcyBoYXMgYmVlbiBwcm9wZXJseSBjb252ZXJ0ZWQgdG8gVVRGLTg8L2xpPgorPC91bD48aDM+PGEgbmFtZT0iaW1wbGVtZW50ZSIgaWQ9ImltcGxlbWVudGUiPkhvdyBpcyBpdCBpbXBsZW1lbnRlZCA/PC9hPjwvaDM+PHA+TGV0J3MgZGVzY3JpYmUgaG93IGFsbCB0aGlzIHdvcmtzIHdpdGhpbiBsaWJ4bWwsIGJhc2ljYWxseSB0aGUgSTE4TgorKGludGVybmF0aW9uYWxpemF0aW9uKSBzdXBwb3J0IGdldCB0cmlnZ2VyZWQgb25seSBkdXJpbmcgSS9PIG9wZXJhdGlvbiwgaS5lLgord2hlbiByZWFkaW5nIGEgZG9jdW1lbnQgb3Igc2F2aW5nIG9uZS4gTGV0J3MgbG9vayBmaXJzdCBhdCB0aGUgcmVhZGluZworc2VxdWVuY2U6PC9wPjxvbD48bGk+d2hlbiBhIGRvY3VtZW50IGlzIHByb2Nlc3NlZCwgd2UgdXN1YWxseSBkb24ndCBrbm93IHRoZSBlbmNvZGluZywgYQorICAgIHNpbXBsZSBoZXVyaXN0aWMgYWxsb3dzIHRvIGRldGVjdCBVVEYtMTYgYW5kIFVDUy00IGZyb20gZW5jb2RpbmdzIHdoZXJlCisgICAgdGhlIEFTQ0lJIHJhbmdlICgwLTB4N0YpIG1hcHMgd2l0aCBBU0NJSTwvbGk+CisgIDxsaT50aGUgeG1sIGRlY2xhcmF0aW9uIGlmIGF2YWlsYWJsZSBpcyBwYXJzZWQsIGluY2x1ZGluZyB0aGUgZW5jb2RpbmcKKyAgICBkZWNsYXJhdGlvbi4gQXQgdGhhdCBwb2ludCwgaWYgdGhlIGF1dG9kZXRlY3RlZCBlbmNvZGluZyBpcyBkaWZmZXJlbnQKKyAgICBmcm9tIHRoZSBvbmUgZGVjbGFyZWQgYSBjYWxsIHRvIHhtbFN3aXRjaEVuY29kaW5nKCkgaXMgaXNzdWVkLjwvbGk+CisgIDxsaT5JZiB0aGVyZSBpcyBubyBlbmNvZGluZyBkZWNsYXJhdGlvbiwgdGhlbiB0aGUgaW5wdXQgaGFzIHRvIGJlIGluIGVpdGhlcgorICAgIFVURi04IG9yIFVURi0xNiwgaWYgaXQgaXMgbm90IHRoZW4gYXQgc29tZSBwb2ludCB3aGVuIHByb2Nlc3NpbmcgdGhlCisgICAgaW5wdXQsIHRoZSBjb252ZXJ0ZXIvY2hlY2tlciBvZiBVVEYtOCBmb3JtIHdpbGwgcmFpc2UgYW4gZW5jb2RpbmcgZXJyb3IuCisgICAgWW91IG1heSBlbmQtdXAgd2l0aCBhIGdhcmJsZWQgZG9jdW1lbnQsIG9yIG5vIGRvY3VtZW50IGF0IGFsbCAhIEV4YW1wbGU6CisgICAgPHByZT5+L1hNTCAtJmd0OyAuL3htbGxpbnQgZXJyLnhtbCAKK2Vyci54bWw6MTogZXJyb3I6IElucHV0IGlzIG5vdCBwcm9wZXIgVVRGLTgsIGluZGljYXRlIGVuY29kaW5nICEKKyZsdDt0csOocyZndDtsw6AmbHQ7L3Ryw6hzJmd0OworICAgXgorZXJyLnhtbDoxOiBlcnJvcjogQnl0ZXM6IDB4RTggMHg3MyAweDNFIDB4NkMKKyZsdDt0csOocyZndDtsw6AmbHQ7L3Ryw6hzJmd0OworICAgXjwvcHJlPgorICA8L2xpPgorICA8bGk+eG1sU3dpdGNoRW5jb2RpbmcoKSBkb2VzIGFuIGVuY29kaW5nIG5hbWUgbG9va3VwLCBjYW5vbmljYWxpemUgaXQsIGFuZAorICAgIHRoZW4gc2VhcmNoIHRoZSBkZWZhdWx0IHJlZ2lzdGVyZWQgZW5jb2RpbmcgY29udmVydGVycyBmb3IgdGhhdCBlbmNvZGluZy4KKyAgICBJZiBpdCdzIG5vdCB3aXRoaW4gdGhlIGRlZmF1bHQgc2V0IGFuZCBpY29udigpIHN1cHBvcnQgaGFzIGJlZW4gY29tcGlsZWQKKyAgICBpdCwgaXQgd2lsbCBhc2sgaWNvbnYgZm9yIHN1Y2ggYW4gZW5jb2Rlci4gSWYgdGhpcyBmYWlscyB0aGVuIHRoZSBwYXJzZXIKKyAgICB3aWxsIHJlcG9ydCBhbiBlcnJvciBhbmQgc3RvcHMgcHJvY2Vzc2luZzoKKyAgICA8cHJlPn4vWE1MIC0mZ3Q7IC4veG1sbGludCBlcnIyLnhtbCAKK2VycjIueG1sOjE6IGVycm9yOiBVbnN1cHBvcnRlZCBlbmNvZGluZyBVbnN1cHBvcnRlZEVuYworJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVW5zdXBwb3J0ZWRFbmMiPyZndDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF48L3ByZT4KKyAgPC9saT4KKyAgPGxpPkZyb20gdGhhdCBwb2ludCB0aGUgZW5jb2RlciBwcm9jZXNzZXMgcHJvZ3Jlc3NpdmVseSB0aGUgaW5wdXQgKGl0IGlzCisgICAgcGx1Z2dlZCBhcyBhIGZyb250LWVuZCB0byB0aGUgSS9PIG1vZHVsZSkgZm9yIHRoYXQgZW50aXR5LiBJdCBjYXB0dXJlcworICAgIGFuZCBjb252ZXJ0cyBvbi10aGUtZmx5IHRoZSBkb2N1bWVudCB0byBiZSBwYXJzZWQgdG8gVVRGLTguIFRoZSBwYXJzZXIKKyAgICBpdHNlbGYganVzdCBkb2VzIFVURi04IGNoZWNraW5nIG9mIHRoaXMgaW5wdXQgYW5kIHByb2Nlc3MgaXQKKyAgICB0cmFuc3BhcmVudGx5LiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIGVuY29kaW5nIGluZm9ybWF0aW9uIGhhcworICAgIGJlZW4gYWRkZWQgdG8gdGhlIHBhcnNpbmcgY29udGV4dCAobW9yZSBwcmVjaXNlbHkgdG8gdGhlIGlucHV0CisgICAgY29ycmVzcG9uZGluZyB0byB0aGlzIGVudGl0eSkuPC9saT4KKyAgPGxpPlRoZSByZXN1bHQgKHdoZW4gdXNpbmcgRE9NKSBpcyBhbiBpbnRlcm5hbCBmb3JtIGNvbXBsZXRlbHkgaW4gVVRGLTgKKyAgICB3aXRoIGp1c3QgYW4gZW5jb2RpbmcgaW5mb3JtYXRpb24gb24gdGhlIGRvY3VtZW50IG5vZGUuPC9saT4KKzwvb2w+PHA+T2sgdGhlbiB3aGF0IGhhcHBlbnMgd2hlbiBzYXZpbmcgdGhlIGRvY3VtZW50IChhc3N1bWluZyB5b3UKK2NvbGxlY3RlZC9idWlsdCBhbiB4bWxEb2MgRE9NIGxpa2Ugc3RydWN0dXJlKSA/IEl0IGRlcGVuZHMgb24gdGhlIGZ1bmN0aW9uCitjYWxsZWQsIHhtbFNhdmVGaWxlKCkgd2lsbCBqdXN0IHRyeSB0byBzYXZlIGluIHRoZSBvcmlnaW5hbCBlbmNvZGluZywgd2hpbGUKK3htbFNhdmVGaWxlVG8oKSBhbmQgeG1sU2F2ZUZpbGVFbmMoKSBjYW4gb3B0aW9uYWxseSBzYXZlIHRvIGEgZ2l2ZW4KK2VuY29kaW5nOjwvcD48b2w+PGxpPmlmIG5vIGVuY29kaW5nIGlzIGdpdmVuLCBsaWJ4bWwyIHdpbGwgbG9vayBmb3IgYW4gZW5jb2RpbmcgdmFsdWUKKyAgICBhc3NvY2lhdGVkIHRvIHRoZSBkb2N1bWVudCBhbmQgaWYgaXQgZXhpc3RzIHdpbGwgdHJ5IHRvIHNhdmUgdG8gdGhhdAorICAgIGVuY29kaW5nLAorICAgIDxwPm90aGVyd2lzZSBldmVyeXRoaW5nIGlzIHdyaXR0ZW4gaW4gdGhlIGludGVybmFsIGZvcm0sIGkuZS4gVVRGLTg8L3A+CisgIDwvbGk+CisgIDxsaT5zbyBpZiBhbiBlbmNvZGluZyB3YXMgc3BlY2lmaWVkLCBlaXRoZXIgYXQgdGhlIEFQSSBsZXZlbCBvciBvbiB0aGUKKyAgICBkb2N1bWVudCwgbGlieG1sMiB3aWxsIGFnYWluIGNhbm9uaWNhbGl6ZSB0aGUgZW5jb2RpbmcgbmFtZSwgbG9va3VwIGZvciBhCisgICAgY29udmVydGVyIGluIHRoZSByZWdpc3RlcmVkIHNldCBvciB0aHJvdWdoIGljb252LiBJZiBub3QgZm91bmQgdGhlCisgICAgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZXJyb3IgY29kZTwvbGk+CisgIDxsaT50aGUgY29udmVydGVyIGlzIHBsYWNlZCBiZWZvcmUgdGhlIEkvTyBidWZmZXIgbGF5ZXIsIGFzIGFub3RoZXIga2luZCBvZgorICAgIGJ1ZmZlciwgdGhlbiBsaWJ4bWwyIHdpbGwgc2ltcGx5IHB1c2ggdGhlIFVURi04IHNlcmlhbGl6YXRpb24gdG8gdGhyb3VnaAorICAgIHRoYXQgYnVmZmVyLCB3aGljaCB3aWxsIHRoZW4gcHJvZ3Jlc3NpdmVseSBiZSBjb252ZXJ0ZWQgYW5kIHB1c2hlZCBvbnRvCisgICAgdGhlIEkvTyBsYXllci48L2xpPgorICA8bGk+SXQgaXMgcG9zc2libGUgdGhhdCB0aGUgY29udmVydGVyIGNvZGUgZmFpbHMgb24gc29tZSBpbnB1dCwgZm9yIGV4YW1wbGUKKyAgICB0cnlpbmcgdG8gcHVzaCBhbiBVVEYtOCBlbmNvZGVkIENoaW5lc2UgY2hhcmFjdGVyIHRocm91Z2ggdGhlIFVURi04IHRvCisgICAgSVNPLTg4NTktMSBjb252ZXJ0ZXIgd29uJ3Qgd29yay4gU2luY2UgdGhlIGVuY29kZXJzIGFyZSBwcm9ncmVzc2l2ZSB0aGV5CisgICAgd2lsbCBqdXN0IHJlcG9ydCB0aGUgZXJyb3IgYW5kIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29udmVydGVkLCBhdCB0aGF0CisgICAgcG9pbnQgbGlieG1sMiB3aWxsIGRlY29kZSB0aGUgb2ZmZW5kaW5nIGNoYXJhY3RlciwgcmVtb3ZlIGl0IGZyb20gdGhlCisgICAgYnVmZmVyIGFuZCByZXBsYWNlIGl0IHdpdGggdGhlIGFzc29jaWF0ZWQgY2hhclJlZiBlbmNvZGluZyAmYW1wOyMxMjM7IGFuZAorICAgIHJlc3VtZSB0aGUgY29udmVyc2lvbi4gVGhpcyBndWFyYW50ZWVzIHRoYXQgYW55IGRvY3VtZW50IHdpbGwgYmUgc2F2ZWQKKyAgICB3aXRob3V0IGxvc3NlcyAoZXhjZXB0IGZvciBtYXJrdXAgbmFtZXMgd2hlcmUgdGhpcyBpcyBub3QgbGVnYWwsIHRoaXMgaXMKKyAgICBhIHByb2JsZW0gaW4gdGhlIGN1cnJlbnQgdmVyc2lvbiwgaW4gcHJhY3RpY2UgYXZvaWQgdXNpbmcgbm9uLWFzY2lpCisgICAgY2hhcmFjdGVycyBmb3IgdGFnIG9yIGF0dHJpYnV0ZSBuYW1lcykuIEEgc3BlY2lhbCAiYXNjaWkiIGVuY29kaW5nIG5hbWUKKyAgICBpcyB1c2VkIHRvIHNhdmUgZG9jdW1lbnRzIHRvIGEgcHVyZSBhc2NpaSBmb3JtIGNhbiBiZSB1c2VkIHdoZW4KKyAgICBwb3J0YWJpbGl0eSBpcyByZWFsbHkgY3J1Y2lhbDwvbGk+Cis8L29sPjxwPkhlcmUgYXJlIGEgZmV3IGV4YW1wbGVzIGJhc2VkIG9uIHRoZSBzYW1lIHRlc3QgZG9jdW1lbnQ6PC9wPjxwcmU+fi9YTUwgLSZndDsgLi94bWxsaW50IGlzb2xhdDEgCismbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8mZ3Q7CismbHQ7dHLDqHMmZ3Q7bMOgJmx0Oy90csOocyZndDsKK34vWE1MIC0mZ3Q7IC4veG1sbGludCAtLWVuY29kZSBVVEYtOCBpc29sYXQxIAorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPyZndDsKKyZsdDt0csODwqhzJmd0O2zDgyCgJmx0Oy90csODwqhzJmd0Oworfi9YTUwgLSZndDsgPC9wcmU+PHA+VGhlIHNhbWUgcHJvY2Vzc2luZyBpcyBhcHBsaWVkIChhbmQgcmV1c2UgbW9zdCBvZiB0aGUgY29kZSkgZm9yIEhUTUwgSTE4TgorcHJvY2Vzc2luZy4gTG9va2luZyB1cCBhbmQgbW9kaWZ5aW5nIHRoZSBjb250ZW50IGVuY29kaW5nIGlzIGEgYml0IG1vcmUKK2RpZmZpY3VsdCBzaW5jZSBpdCBpcyBsb2NhdGVkIGluIGEgJmx0O21ldGEmZ3Q7IHRhZyB1bmRlciB0aGUgJmx0O2hlYWQmZ3Q7LAorc28gYSBjb3VwbGUgb2YgZnVuY3Rpb25zIGh0bWxHZXRNZXRhRW5jb2RpbmcoKSBhbmQgaHRtbFNldE1ldGFFbmNvZGluZygpIGhhdmUKK2JlZW4gcHJvdmlkZWQuIFRoZSBwYXJzZXIgYWxzbyBhdHRlbXB0cyB0byBzd2l0Y2ggZW5jb2Rpbmcgb24gdGhlIGZseSB3aGVuCitkZXRlY3Rpbmcgc3VjaCBhIHRhZyBvbiBpbnB1dC4gRXhjZXB0IGZvciB0aGF0IHRoZSBwcm9jZXNzaW5nIGlzIHRoZSBzYW1lCisoYW5kIGFnYWluIHJldXNlcyB0aGUgc2FtZSBjb2RlKS48L3A+PGgzPjxhIG5hbWU9IkRlZmF1bHQiIGlkPSJEZWZhdWx0Ij5EZWZhdWx0IHN1cHBvcnRlZCBlbmNvZGluZ3M8L2E+PC9oMz48cD5saWJ4bWwyIGhhcyBhIHNldCBvZiBkZWZhdWx0IGNvbnZlcnRlcnMgZm9yIHRoZSBmb2xsb3dpbmcgZW5jb2RpbmdzCisobG9jYXRlZCBpbiBlbmNvZGluZy5jKTo8L3A+PG9sPjxsaT5VVEYtOCBpcyBzdXBwb3J0ZWQgYnkgZGVmYXVsdCAobnVsbCBoYW5kbGVycyk8L2xpPgorICA8bGk+VVRGLTE2LCBib3RoIGxpdHRsZSBhbmQgYmlnIGVuZGlhbjwvbGk+CisgIDxsaT5JU08tTGF0aW4tMSAoSVNPLTg4NTktMSkgY292ZXJpbmcgbW9zdCB3ZXN0ZXJuIGxhbmd1YWdlczwvbGk+CisgIDxsaT5BU0NJSSwgdXNlZnVsIG1vc3RseSBmb3Igc2F2aW5nPC9saT4KKyAgPGxpPkhUTUwsIGEgc3BlY2lmaWMgaGFuZGxlciBmb3IgdGhlIGNvbnZlcnNpb24gb2YgVVRGLTggdG8gQVNDSUkgd2l0aCBIVE1MCisgICAgcHJlZGVmaW5lZCBlbnRpdGllcyBsaWtlICZhbXA7Y29weTsgZm9yIHRoZSBDb3B5cmlnaHQgc2lnbi48L2xpPgorPC9vbD48cD5Nb3JlIG92ZXIgd2hlbiBjb21waWxlZCBvbiBhbiBVbml4IHBsYXRmb3JtIHdpdGggaWNvbnYgc3VwcG9ydCB0aGUgZnVsbAorc2V0IG9mIGVuY29kaW5ncyBzdXBwb3J0ZWQgYnkgaWNvbnYgY2FuIGJlIGluc3RhbnRseSBiZSB1c2VkIGJ5IGxpYnhtbC4gT24gYQorbGludXggbWFjaGluZSB3aXRoIGdsaWJjLTIuMSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZW5jb2RpbmdzIGFuZCBhbGlhc2VzIGZpbGwKKzMgZnVsbCBwYWdlcywgYW5kIGluY2x1ZGUgVUNTLTQsIHRoZSBmdWxsIHNldCBvZiBJU08tTGF0aW4gZW5jb2RpbmdzLCBhbmQgdGhlCit2YXJpb3VzIEphcGFuZXNlIG9uZXMuPC9wPjxwPlRvIGNvbnZlcnQgZnJvbSB0aGUgVVRGLTggdmFsdWVzIHJldHVybmVkIGZyb20gdGhlIEFQSSB0byBhbm90aGVyIGVuY29kaW5nCit0aGVuIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSB0aGUgZnVuY3Rpb24gcHJvdmlkZWQgZnJvbSA8YSBocmVmPSJodG1sL2xpYnhtbC1lbmNvZGluZy5odG1sIj50aGUgZW5jb2RpbmcgbW9kdWxlPC9hPiBsaWtlIDxhIGhyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT4sIG9yIHVzZSB0aGUKK1BPU0lYIDxhIGhyZWY9Imh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvaWNvbnYuaHRtbCI+aWNvbnYoKTwvYT4KK0FQSSBkaXJlY3RseS48L3A+PGg0PkVuY29kaW5nIGFsaWFzZXM8L2g0PjxwPkZyb20gMi4yLjMsIGxpYnhtbDIgaGFzIHN1cHBvcnQgdG8gcmVnaXN0ZXIgZW5jb2RpbmcgbmFtZXMgYWxpYXNlcy4gVGhlCitnb2FsIGlzIHRvIGJlIGFibGUgdG8gcGFyc2UgZG9jdW1lbnQgd2hvc2UgZW5jb2RpbmcgaXMgc3VwcG9ydGVkIGJ1dCB3aGVyZQordGhlIG5hbWUgZGlmZmVycyAoZm9yIGV4YW1wbGUgZnJvbSB0aGUgZGVmYXVsdCBzZXQgb2YgbmFtZXMgYWNjZXB0ZWQgYnkKK2ljb252KS4gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYWxsb3cgdG8gcmVnaXN0ZXIgYW5kIGhhbmRsZSBuZXcgYWxpYXNlcyBmb3IKK2V4aXN0aW5nIGVuY29kaW5ncy4gT25jZSByZWdpc3RlcmVkIGxpYnhtbDIgd2lsbCBhdXRvbWF0aWNhbGx5IGxvb2t1cCB0aGUKK2FsaWFzZXMgd2hlbiBoYW5kbGluZyBhIGRvY3VtZW50OjwvcD48dWw+PGxpPmludCB4bWxBZGRFbmNvZGluZ0FsaWFzKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmFsaWFzKTs8L2xpPgorICA8bGk+aW50IHhtbERlbEVuY29kaW5nQWxpYXMoY29uc3QgY2hhciAqYWxpYXMpOzwvbGk+CisgIDxsaT5jb25zdCBjaGFyICogeG1sR2V0RW5jb2RpbmdBbGlhcyhjb25zdCBjaGFyICphbGlhcyk7PC9saT4KKyAgPGxpPnZvaWQgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyh2b2lkKTs8L2xpPgorPC91bD48aDM+PGEgbmFtZT0iZXh0ZW5kIiBpZD0iZXh0ZW5kIj5Ib3cgdG8gZXh0ZW5kIHRoZSBleGlzdGluZyBzdXBwb3J0PC9hPjwvaDM+PHA+V2VsbCBhZGRpbmcgc3VwcG9ydCBmb3IgbmV3IGVuY29kaW5nLCBvciBvdmVycmlkaW5nIG9uZSBvZiB0aGUgZW5jb2RlcnMKKyhhc3N1bWluZyBpdCBpcyBidWdneSkgc2hvdWxkIG5vdCBiZSBoYXJkLCBqdXN0IHdyaXRlIGlucHV0IGFuZCBvdXRwdXQKK2NvbnZlcnNpb24gcm91dGluZXMgdG8vZnJvbSBVVEYtOCwgYW5kIHJlZ2lzdGVyIHRoZW0gdXNpbmcKK3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIobmFtZSwgeHh4VG9VVEY4LCBVVEY4VG94eHgpLCAgYW5kIHRoZXkgd2lsbCBiZQorY2FsbGVkIGF1dG9tYXRpY2FsbHkgaWYgdGhlIHBhcnNlcihzKSBlbmNvdW50ZXIgc3VjaCBhbiBlbmNvZGluZyBuYW1lCisocmVnaXN0ZXIgaXQgdXBwZXJjYXNlLCB0aGlzIHdpbGwgaGVscCkuIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZW5jb2RlcnMsCit0aGVpciBhcmd1bWVudHMgYW5kIGV4cGVjdGVkIHJldHVybiB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZW5jb2RpbmcuaAoraGVhZGVyLjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2VudGl0aWVzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9lbnRpdGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNGNmYWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9lbnRpdGllcy5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+RW50aXRpZXMgaW4gcHJpbmNpcGxlIGFyZSBzaW1pbGFyIHRvIHNpbXBsZSBDIG1hY3Jvcy4gQW4gZW50aXR5IGRlZmluZXMgYW4KK2FiYnJldmlhdGlvbiBmb3IgYSBnaXZlbiBzdHJpbmcgdGhhdCB5b3UgY2FuIHJldXNlIG1hbnkgdGltZXMgdGhyb3VnaG91dCB0aGUKK2NvbnRlbnQgb2YgeW91ciBkb2N1bWVudC4gRW50aXRpZXMgYXJlIGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gYSBnaXZlbiBzdHJpbmcKK21heSBvY2N1ciBmcmVxdWVudGx5IHdpdGhpbiBhIGRvY3VtZW50LCBvciB0byBjb25maW5lIHRoZSBjaGFuZ2UgbmVlZGVkIHRvIGEKK2RvY3VtZW50IHRvIGEgcmVzdHJpY3RlZCBhcmVhIGluIHRoZSBpbnRlcm5hbCBzdWJzZXQgb2YgdGhlIGRvY3VtZW50IChhdCB0aGUKK2JlZ2lubmluZykuIEV4YW1wbGU6PC9wPjxwcmU+MSAmbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKKzIgJmx0OyFET0NUWVBFIEVYQU1QTEUgU1lTVEVNICJleGFtcGxlLmR0ZCIgWworMyAmbHQ7IUVOVElUWSB4bWwgIkV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIiZndDsKKzQgXSZndDsKKzUgJmx0O0VYQU1QTEUmZ3Q7Cis2ICAgICZhbXA7eG1sOworNyAmbHQ7L0VYQU1QTEUmZ3Q7PC9wcmU+PHA+TGluZSAzIGRlY2xhcmVzIHRoZSB4bWwgZW50aXR5LiBMaW5lIDYgdXNlcyB0aGUgeG1sIGVudGl0eSwgYnkgcHJlZml4aW5nCitpdHMgbmFtZSB3aXRoICcmYW1wOycgYW5kIGZvbGxvd2luZyBpdCBieSAnOycgd2l0aG91dCBhbnkgc3BhY2VzIGFkZGVkLiBUaGVyZQorYXJlIDUgcHJlZGVmaW5lZCBlbnRpdGllcyBpbiBsaWJ4bWwyIGFsbG93aW5nIHlvdSB0byBlc2NhcGUgY2hhcmFjdGVycyB3aXRoCitwcmVkZWZpbmVkIG1lYW5pbmcgaW4gc29tZSBwYXJ0cyBvZiB0aGUgeG1sIGRvY3VtZW50IGNvbnRlbnQ6Cis8c3Ryb25nPiZhbXA7bHQ7PC9zdHJvbmc+IGZvciB0aGUgY2hhcmFjdGVyICcmbHQ7JywgPHN0cm9uZz4mYW1wO2d0Ozwvc3Ryb25nPgorZm9yIHRoZSBjaGFyYWN0ZXIgJyZndDsnLCAgPHN0cm9uZz4mYW1wO2Fwb3M7PC9zdHJvbmc+IGZvciB0aGUgY2hhcmFjdGVyICcnJywKKzxzdHJvbmc+JmFtcDtxdW90Ozwvc3Ryb25nPiBmb3IgdGhlIGNoYXJhY3RlciAnIicsIGFuZAorPHN0cm9uZz4mYW1wO2FtcDs8L3N0cm9uZz4gZm9yIHRoZSBjaGFyYWN0ZXIgJyZhbXA7Jy48L3A+PHA+T25lIG9mIHRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGVudGl0aWVzIGlzIHRoYXQgeW91IG1heSB3YW50IHRoZSBwYXJzZXIgdG8KK3N1YnN0aXR1dGUgYW4gZW50aXR5J3MgY29udGVudCBzbyB0aGF0IHlvdSBjYW4gc2VlIHRoZSByZXBsYWNlbWVudCB0ZXh0IGluCit5b3VyIGFwcGxpY2F0aW9uLiBPciB5b3UgbWF5IHByZWZlciB0byBrZWVwIGVudGl0eSByZWZlcmVuY2VzIGFzIHN1Y2ggaW4gdGhlCitjb250ZW50IHRvIGJlIGFibGUgdG8gc2F2ZSB0aGUgZG9jdW1lbnQgYmFjayB3aXRob3V0IGxvc2luZyB0aGlzIHVzdWFsbHkKK3ByZWNpb3VzIGluZm9ybWF0aW9uIChpZiB0aGUgdXNlciB3ZW50IHRocm91Z2ggdGhlIHBhaW4gb2YgZXhwbGljaXRseQorZGVmaW5pbmcgZW50aXRpZXMsIGhlIG1heSBoYXZlIGEgYSByYXRoZXIgbmVnYXRpdmUgYXR0aXR1ZGUgaWYgeW91IGJsaW5kbHkKK3N1YnN0aXR1dGUgdGhlbSBhcyBzYXZpbmcgdGltZSkuIFRoZSA8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0KCk8L2E+CitmdW5jdGlvbiBhbGxvd3MgeW91IHRvIGNoZWNrIGFuZCBjaGFuZ2UgdGhlIGJlaGF2aW91ciwgd2hpY2ggaXMgdG8gbm90CitzdWJzdGl0dXRlIGVudGl0aWVzIGJ5IGRlZmF1bHQuPC9wPjxwPkhlcmUgaXMgdGhlIERPTSB0cmVlIGJ1aWx0IGJ5IGxpYnhtbDIgZm9yIHRoZSBwcmV2aW91cyBkb2N1bWVudCBpbiB0aGUKK2RlZmF1bHQgY2FzZTo8L3A+PHByZT4vZ25vbWUvc3JjL2dub21lLXhtbCAtJmd0OyAuL3htbGxpbnQgLS1kZWJ1ZyB0ZXN0L2VudDEKK0RPQ1VNRU5UCit2ZXJzaW9uPTEuMAorICAgRUxFTUVOVCBFWEFNUExFCisgICAgIFRFWFQKKyAgICAgY29udGVudD0KKyAgICAgRU5USVRZX1JFRgorICAgICAgIElOVEVSTkFMX0dFTkVSQUxfRU5USVRZIHhtbAorICAgICAgIGNvbnRlbnQ9RXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UKKyAgICAgVEVYVAorICAgICBjb250ZW50PTwvcHJlPjxwPkFuZCBoZXJlIGlzIHRoZSByZXN1bHQgd2hlbiBzdWJzdGl0dXRpbmcgZW50aXRpZXM6PC9wPjxwcmU+L2dub21lL3NyYy9nbm9tZS14bWwgLSZndDsgLi90ZXN0ZXIgLS1kZWJ1ZyAtLW5vZW50IHRlc3QvZW50MQorRE9DVU1FTlQKK3ZlcnNpb249MS4wCisgICBFTEVNRU5UIEVYQU1QTEUKKyAgICAgVEVYVAorICAgICBjb250ZW50PSAgICAgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2U8L3ByZT48cD5TbywgZW50aXRpZXMgb3Igbm8gZW50aXRpZXM/IEJhc2ljYWxseSwgaXQgZGVwZW5kcyBvbiB5b3VyIHVzZSBjYXNlLiBJCitzdWdnZXN0IHRoYXQgeW91IGtlZXAgdGhlIG5vbi1zdWJzdGl0dXRpbmcgZGVmYXVsdCBiZWhhdmlvdXIgYW5kIGF2b2lkIHVzaW5nCitlbnRpdGllcyBpbiB5b3VyIFhNTCBkb2N1bWVudCBvciBkYXRhIGlmIHlvdSBhcmUgbm90IHdpbGxpbmcgdG8gaGFuZGxlIHRoZQorZW50aXR5IHJlZmVyZW5jZXMgZWxlbWVudHMgaW4gdGhlIERPTSB0cmVlLjwvcD48cD5Ob3RlIHRoYXQgYXQgc2F2ZSB0aW1lIGxpYnhtbDIgZW5mb3JjZXMgdGhlIGNvbnZlcnNpb24gb2YgdGhlIHByZWRlZmluZWQKK2VudGl0aWVzIHdoZXJlIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHdlbGwtZm9ybWVkbmVzcyBwcm9ibGVtcywgYW5kIHdpbGwgYWxzbwordHJhbnNwYXJlbnRseSByZXBsYWNlIHRob3NlIHdpdGggY2hhcnMgKGkuZS4gaXQgd2lsbCBub3QgZ2VuZXJhdGUgZW50aXR5CityZWZlcmVuY2UgZWxlbWVudHMgaW4gdGhlIERPTSB0cmVlIG9yIGNhbGwgdGhlIHJlZmVyZW5jZSgpIFNBWCBjYWxsYmFjayB3aGVuCitmaW5kaW5nIHRoZW0gaW4gdGhlIGlucHV0KS48L3A+PHA+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNGRjAwMDAiPldBUk5JTkc8L3NwYW4+OiBoYW5kbGluZyBlbnRpdGllcworb24gdG9wIG9mIHRoZSBsaWJ4bWwyIFNBWCBpbnRlcmZhY2UgaXMgZGlmZmljdWx0ISEhIElmIHlvdSBwbGFuIHRvIHVzZQorbm9uLXByZWRlZmluZWQgZW50aXRpZXMgaW4geW91ciBkb2N1bWVudHMsIHRoZW4gdGhlIGxlYXJuaW5nIGN1cnZlIHRvIGhhbmRsZQordGhlbiB1c2luZyB0aGUgU0FYIEFQSSBtYXkgYmUgbG9uZy4gSWYgeW91IHBsYW4gdG8gdXNlIGNvbXBsZXggZG9jdW1lbnRzLCBJCitzdHJvbmdseSBzdWdnZXN0IHlvdSBjb25zaWRlciB1c2luZyB0aGUgRE9NIGludGVyZmFjZSBpbnN0ZWFkIGFuZCBsZXQgbGlieG1sCitkZWFsIHdpdGggdGhlIGNvbXBsZXhpdHkgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGRvIGl0IHlvdXJzZWxmLjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGI2OTBhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZS5odG1sCkBAIC0wLDAgKzEsMTg2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkEgcmVhbCBleGFtcGxlPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5BIHJlYWwgZXhhbXBsZTwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPkhlcmUgaXMgYSByZWFsIHNpemUgZXhhbXBsZSwgd2hlcmUgdGhlIGFjdHVhbCBjb250ZW50IG9mIHRoZSBhcHBsaWNhdGlvbgorZGF0YSBpcyBub3Qga2VwdCBpbiB0aGUgRE9NIHRyZWUgYnV0IHVzZXMgaW50ZXJuYWwgc3RydWN0dXJlcy4gSXQgaXMgYmFzZWQgb24KK2EgcHJvcG9zYWwgdG8ga2VlcCBhIGRhdGFiYXNlIG9mIGpvYnMgcmVsYXRlZCB0byBHbm9tZSwgd2l0aCBhbiBYTUwgYmFzZWQKK3N0b3JhZ2Ugc3RydWN0dXJlLiBIZXJlIGlzIGFuIDxhIGhyZWY9Imdqb2JzLnhtbCI+WE1MIGVuY29kZWQgam9icworYmFzZTwvYT46PC9wPjxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7Z2pvYjpIZWxwaW5nIHhtbG5zOmdqb2I9Imh0dHA6Ly93d3cuZ25vbWUub3JnL3NvbWUtbG9jYXRpb24iJmd0OworICAmbHQ7Z2pvYjpKb2JzJmd0OworCisgICAgJmx0O2dqb2I6Sm9iJmd0OworICAgICAgJmx0O2dqb2I6UHJvamVjdCBJRD0iMyIvJmd0OworICAgICAgJmx0O2dqb2I6QXBwbGljYXRpb24mZ3Q7R0JhY2t1cCZsdDsvZ2pvYjpBcHBsaWNhdGlvbiZndDsKKyAgICAgICZsdDtnam9iOkNhdGVnb3J5Jmd0O0RldmVsb3BtZW50Jmx0Oy9nam9iOkNhdGVnb3J5Jmd0OworCisgICAgICAmbHQ7Z2pvYjpVcGRhdGUmZ3Q7CisgICAgICAgICZsdDtnam9iOlN0YXR1cyZndDtPcGVuJmx0Oy9nam9iOlN0YXR1cyZndDsKKyAgICAgICAgJmx0O2dqb2I6TW9kaWZpZWQmZ3Q7TW9uLCAwNyBKdW4gMTk5OSAyMDoyNzo0NSAtMDQwMCBNRVQgRFNUJmx0Oy9nam9iOk1vZGlmaWVkJmd0OworICAgICAgICAmbHQ7Z2pvYjpTYWxhcnkmZ3Q7VVNEIDAuMDAmbHQ7L2dqb2I6U2FsYXJ5Jmd0OworICAgICAgJmx0Oy9nam9iOlVwZGF0ZSZndDsKKworICAgICAgJmx0O2dqb2I6RGV2ZWxvcGVycyZndDsKKyAgICAgICAgJmx0O2dqb2I6RGV2ZWxvcGVyJmd0OworICAgICAgICAmbHQ7L2dqb2I6RGV2ZWxvcGVyJmd0OworICAgICAgJmx0Oy9nam9iOkRldmVsb3BlcnMmZ3Q7CisKKyAgICAgICZsdDtnam9iOkNvbnRhY3QmZ3Q7CisgICAgICAgICZsdDtnam9iOlBlcnNvbiZndDtOYXRoYW4gQ2xlbW9ucyZsdDsvZ2pvYjpQZXJzb24mZ3Q7CisgICAgICAgICZsdDtnam9iOkVtYWlsJmd0O25hdGhhbkB3aW5kc29mc3Rvcm0ubmV0Jmx0Oy9nam9iOkVtYWlsJmd0OworICAgICAgICAmbHQ7Z2pvYjpDb21wYW55Jmd0OworICAgICAgICAmbHQ7L2dqb2I6Q29tcGFueSZndDsKKyAgICAgICAgJmx0O2dqb2I6T3JnYW5pc2F0aW9uJmd0OworICAgICAgICAmbHQ7L2dqb2I6T3JnYW5pc2F0aW9uJmd0OworICAgICAgICAmbHQ7Z2pvYjpXZWJwYWdlJmd0OworICAgICAgICAmbHQ7L2dqb2I6V2VicGFnZSZndDsKKyAgICAgICAgJmx0O2dqb2I6U25haWxtYWlsJmd0OworICAgICAgICAmbHQ7L2dqb2I6U25haWxtYWlsJmd0OworICAgICAgICAmbHQ7Z2pvYjpQaG9uZSZndDsKKyAgICAgICAgJmx0Oy9nam9iOlBob25lJmd0OworICAgICAgJmx0Oy9nam9iOkNvbnRhY3QmZ3Q7CisKKyAgICAgICZsdDtnam9iOlJlcXVpcmVtZW50cyZndDsKKyAgICAgIFRoZSBwcm9ncmFtIHNob3VsZCBiZSByZWxlYXNlZCBhcyBmcmVlIHNvZnR3YXJlLCB1bmRlciB0aGUgR1BMLgorICAgICAgJmx0Oy9nam9iOlJlcXVpcmVtZW50cyZndDsKKworICAgICAgJmx0O2dqb2I6U2tpbGxzJmd0OworICAgICAgJmx0Oy9nam9iOlNraWxscyZndDsKKworICAgICAgJmx0O2dqb2I6RGV0YWlscyZndDsKKyAgICAgIEEgR05PTUUgYmFzZWQgc3lzdGVtIHRoYXQgd2lsbCBhbGxvdyBhIHN1cGVydXNlciB0byBjb25maWd1cmUgCisgICAgICBjb21wcmVzc2VkIGFuZCB1bmNvbXByZXNzZWQgZmlsZXMgYW5kL29yIGZpbGUgc3lzdGVtcyB0byBiZSBiYWNrZWQgCisgICAgICB1cCB3aXRoIGEgc3VwcG9ydGVkIG1lZGlhIGluIHRoZSBzeXN0ZW0uICBUaGlzIHNob3VsZCBiZSBhYmxlIHRvIAorICAgICAgcGVyZm9ybSB2aWEgZmluZCBjb21tYW5kcyBnZW5lcmF0aW5nIGEgbGlzdCBvZiBmaWxlcyB0aGF0IGFyZSBwYXNzZWQgCisgICAgICB0byB0YXIsIGRkLCBjcGlvLCBjcCwgZ3ppcCwgZXRjLiwgdG8gYmUgZGlyZWN0ZWQgdG8gdGhlIHRhcGUgbWFjaGluZSAKKyAgICAgIG9yIHZpYSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbiB0aGUgZmlsZXN5c3RlbSBpdHNlbGYuIEVtYWlsIAorICAgICAgbm90aWZpY2F0aW9uIGFuZCBHVUkgc3RhdHVzIGRpc3BsYXkgdmVyeSBpbXBvcnRhbnQuCisgICAgICAmbHQ7L2dqb2I6RGV0YWlscyZndDsKKworICAgICZsdDsvZ2pvYjpKb2ImZ3Q7CisKKyAgJmx0Oy9nam9iOkpvYnMmZ3Q7CismbHQ7L2dqb2I6SGVscGluZyZndDs8L3ByZT48cD5XaGlsZSBsb2FkaW5nIHRoZSBYTUwgZmlsZSBpbnRvIGFuIGludGVybmFsIERPTSB0cmVlIGlzIGEgbWF0dGVyIG9mCitjYWxsaW5nIG9ubHkgYSBjb3VwbGUgb2YgZnVuY3Rpb25zLCBicm93c2luZyB0aGUgdHJlZSB0byBnYXRoZXIgdGhlIGRhdGEgYW5kCitnZW5lcmF0ZSB0aGUgaW50ZXJuYWwgc3RydWN0dXJlcyBpcyBoYXJkZXIsIGFuZCBtb3JlIGVycm9yIHByb25lLjwvcD48cD5UaGUgc3VnZ2VzdGVkIHByaW5jaXBsZSBpcyB0byBiZSB0b2xlcmFudCB3aXRoIHJlc3BlY3QgdG8gdGhlIGlucHV0CitzdHJ1Y3R1cmUuIEZvciBleGFtcGxlLCB0aGUgb3JkZXJpbmcgb2YgdGhlIGF0dHJpYnV0ZXMgaXMgbm90IHNpZ25pZmljYW50LAordGhlIFhNTCBzcGVjaWZpY2F0aW9uIGlzIGNsZWFyIGFib3V0IGl0LiBJdCdzIGFsc28gdXN1YWxseSBhIGdvb2QgaWRlYSBub3QgdG8KK2RlcGVuZCBvbiB0aGUgb3JkZXIgb2YgdGhlIGNoaWxkcmVuIG9mIGEgZ2l2ZW4gbm9kZSwgdW5sZXNzIGl0IHJlYWxseSBtYWtlcwordGhpbmdzIGhhcmRlci4gSGVyZSBpcyBzb21lIGNvZGUgdG8gcGFyc2UgdGhlIGluZm9ybWF0aW9uIGZvciBhIHBlcnNvbjo8L3A+PHByZT4vKgorICogQSBwZXJzb24gcmVjb3JkCisgKi8KK3R5cGVkZWYgc3RydWN0IHBlcnNvbiB7CisgICAgY2hhciAqbmFtZTsKKyAgICBjaGFyICplbWFpbDsKKyAgICBjaGFyICpjb21wYW55OworICAgIGNoYXIgKm9yZ2FuaXNhdGlvbjsKKyAgICBjaGFyICpzbWFpbDsKKyAgICBjaGFyICp3ZWJQYWdlOworICAgIGNoYXIgKnBob25lOworfSBwZXJzb24sICpwZXJzb25QdHI7CisKKy8qCisgKiBBbmQgdGhlIGNvZGUgbmVlZGVkIHRvIHBhcnNlIGl0CisgKi8KK3BlcnNvblB0ciBwYXJzZVBlcnNvbih4bWxEb2NQdHIgZG9jLCB4bWxOc1B0ciBucywgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBwZXJzb25QdHIgcmV0ID0gTlVMTDsKKworREVCVUcoInBhcnNlUGVyc29uXG4iKTsKKyAgICAvKgorICAgICAqIGFsbG9jYXRlIHRoZSBzdHJ1Y3QKKyAgICAgKi8KKyAgICByZXQgPSAocGVyc29uUHRyKSBtYWxsb2Moc2l6ZW9mKHBlcnNvbikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwib3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHBlcnNvbikpOworCisgICAgLyogV2UgZG9uJ3QgY2FyZSB3aGF0IHRoZSB0b3AgbGV2ZWwgZWxlbWVudCBuYW1lIGlzICovCisgICAgY3VyID0gY3VyLSZndDt4bWxDaGlsZHJlbk5vZGU7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmICgoIXN0cmNtcChjdXItJmd0O25hbWUsICJQZXJzb24iKSkgJmFtcDsmYW1wOyAoY3VyLSZndDtucyA9PSBucykpCisgICAgICAgICAgICByZXQtJmd0O25hbWUgPSB4bWxOb2RlTGlzdEdldFN0cmluZyhkb2MsIGN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlLCAxKTsKKyAgICAgICAgaWYgKCghc3RyY21wKGN1ci0mZ3Q7bmFtZSwgIkVtYWlsIikpICZhbXA7JmFtcDsgKGN1ci0mZ3Q7bnMgPT0gbnMpKQorICAgICAgICAgICAgcmV0LSZndDtlbWFpbCA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgY3VyLSZndDt4bWxDaGlsZHJlbk5vZGUsIDEpOworICAgICAgICBjdXIgPSBjdXItJmd0O25leHQ7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9PC9wcmU+PHA+SGVyZSBhcmUgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIG5vdGljZTo8L3A+PHVsPjxsaT5Vc3VhbGx5IGEgcmVjdXJzaXZlIHBhcnNpbmcgc3R5bGUgaXMgdGhlIG1vcmUgY29udmVuaWVudCBvbmU6IFhNTCBkYXRhCisgICAgaXMgYnkgbmF0dXJlIHN1YmplY3QgdG8gcmVwZXRpdGl2ZSBjb25zdHJ1Y3RzIGFuZCB1c3VhbGx5IGV4aGliaXRzIGhpZ2hseQorICAgIHN0cnVjdHVyZWQgcGF0dGVybnMuPC9saT4KKyAgPGxpPlRoZSB0d28gYXJndW1lbnRzIG9mIHR5cGUgPGVtPnhtbERvY1B0cjwvZW0+IGFuZCA8ZW0+eG1sTnNQdHI8L2VtPiwKKyAgICBpLmUuIHRoZSBwb2ludGVyIHRvIHRoZSBnbG9iYWwgWE1MIGRvY3VtZW50IGFuZCB0aGUgbmFtZXNwYWNlIHJlc2VydmVkIHRvCisgICAgdGhlIGFwcGxpY2F0aW9uLiBEb2N1bWVudCB3aWRlIGluZm9ybWF0aW9uIGFyZSBuZWVkZWQgZm9yIGV4YW1wbGUgdG8KKyAgICBkZWNvZGUgZW50aXRpZXMgYW5kIGl0J3MgYSBnb29kIGNvZGluZyBwcmFjdGljZSB0byBkZWZpbmUgYSBuYW1lc3BhY2UgZm9yCisgICAgeW91ciBhcHBsaWNhdGlvbiBzZXQgb2YgZGF0YSBhbmQgdGVzdCB0aGF0IHRoZSBlbGVtZW50IGFuZCBhdHRyaWJ1dGVzCisgICAgeW91J3JlIGFuYWx5emluZyBhY3R1YWxseSBwZXJ0YWlucyB0byB5b3VyIGFwcGxpY2F0aW9uIHNwYWNlLiBUaGlzIGlzCisgICAgZG9uZSBieSBhIHNpbXBsZSBlcXVhbGl0eSB0ZXN0IChjdXItJmd0O25zID09IG5zKS48L2xpPgorICA8bGk+VG8gcmV0cmlldmUgdGV4dCBhbmQgYXR0cmlidXRlcyB2YWx1ZSwgeW91IGNhbiB1c2UgdGhlIGZ1bmN0aW9uCisgICAgPGVtPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9lbT4gdG8gZ2F0aGVyIGFsbCB0aGUgdGV4dCBhbmQgZW50aXR5IHJlZmVyZW5jZQorICAgIG5vZGVzIGdlbmVyYXRlZCBieSB0aGUgRE9NIG91dHB1dCBhbmQgcHJvZHVjZSBhbiBzaW5nbGUgdGV4dCBzdHJpbmcuPC9saT4KKzwvdWw+PHA+SGVyZSBpcyBhbm90aGVyIHBpZWNlIG9mIGNvZGUgdXNlZCB0byBwYXJzZSBhbm90aGVyIGxldmVsIG9mIHRoZQorc3RydWN0dXJlOjwvcD48cHJlPiNpbmNsdWRlICZsdDtsaWJ4bWwvdHJlZS5oJmd0OworLyoKKyAqIGEgRGVzY3JpcHRpb24gZm9yIGEgSm9iCisgKi8KK3R5cGVkZWYgc3RydWN0IGpvYiB7CisgICAgY2hhciAqcHJvamVjdElEOworICAgIGNoYXIgKmFwcGxpY2F0aW9uOworICAgIGNoYXIgKmNhdGVnb3J5OworICAgIHBlcnNvblB0ciBjb250YWN0OworICAgIGludCBuYkRldmVsb3BlcnM7CisgICAgcGVyc29uUHRyIGRldmVsb3BlcnNbMTAwXTsgLyogdXNpbmcgZHluYW1pYyBhbGxvYyBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlICovCit9IGpvYiwgKmpvYlB0cjsKKworLyoKKyAqIEFuZCB0aGUgY29kZSBuZWVkZWQgdG8gcGFyc2UgaXQKKyAqLworam9iUHRyIHBhcnNlSm9iKHhtbERvY1B0ciBkb2MsIHhtbE5zUHRyIG5zLCB4bWxOb2RlUHRyIGN1cikgeworICAgIGpvYlB0ciByZXQgPSBOVUxMOworCitERUJVRygicGFyc2VKb2JcbiIpOworICAgIC8qCisgICAgICogYWxsb2NhdGUgdGhlIHN0cnVjdAorICAgICAqLworICAgIHJldCA9IChqb2JQdHIpIG1hbGxvYyhzaXplb2Yoam9iKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2Yoam9iKSk7CisKKyAgICAvKiBXZSBkb24ndCBjYXJlIHdoYXQgdGhlIHRvcCBsZXZlbCBlbGVtZW50IG5hbWUgaXMgKi8KKyAgICBjdXIgPSBjdXItJmd0O3htbENoaWxkcmVuTm9kZTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgCisgICAgICAgIGlmICgoIXN0cmNtcChjdXItJmd0O25hbWUsICJQcm9qZWN0IikpICZhbXA7JmFtcDsgKGN1ci0mZ3Q7bnMgPT0gbnMpKSB7CisgICAgICAgICAgICByZXQtJmd0O3Byb2plY3RJRCA9IHhtbEdldFByb3AoY3VyLCAiSUQiKTsKKyAgICAgICAgICAgIGlmIChyZXQtJmd0O3Byb2plY3RJRCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJQcm9qZWN0IGhhcyBubyBJRFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCghc3RyY21wKGN1ci0mZ3Q7bmFtZSwgIkFwcGxpY2F0aW9uIikpICZhbXA7JmFtcDsgKGN1ci0mZ3Q7bnMgPT0gbnMpKQorICAgICAgICAgICAgcmV0LSZndDthcHBsaWNhdGlvbiA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgY3VyLSZndDt4bWxDaGlsZHJlbk5vZGUsIDEpOworICAgICAgICBpZiAoKCFzdHJjbXAoY3VyLSZndDtuYW1lLCAiQ2F0ZWdvcnkiKSkgJmFtcDsmYW1wOyAoY3VyLSZndDtucyA9PSBucykpCisgICAgICAgICAgICByZXQtJmd0O2NhdGVnb3J5ID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBjdXItJmd0O3htbENoaWxkcmVuTm9kZSwgMSk7CisgICAgICAgIGlmICgoIXN0cmNtcChjdXItJmd0O25hbWUsICJDb250YWN0IikpICZhbXA7JmFtcDsgKGN1ci0mZ3Q7bnMgPT0gbnMpKQorICAgICAgICAgICAgcmV0LSZndDtjb250YWN0ID0gcGFyc2VQZXJzb24oZG9jLCBucywgY3VyKTsKKyAgICAgICAgY3VyID0gY3VyLSZndDtuZXh0OworICAgIH0KKworICAgIHJldHVybihyZXQpOworfTwvcHJlPjxwPk9uY2UgeW91IGFyZSB1c2VkIHRvIGl0LCB3cml0aW5nIHRoaXMga2luZCBvZiBjb2RlIGlzIHF1aXRlIHNpbXBsZSwgYnV0Citib3JpbmcuIFVsdGltYXRlbHksIGl0IGNvdWxkIGJlIHBvc3NpYmxlIHRvIHdyaXRlIHN0dWJiZXJzIHRha2luZyBlaXRoZXIgQworZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMsIGEgc2V0IG9mIFhNTCBleGFtcGxlcyBvciBhbiBYTUwgRFREIGFuZCBwcm9kdWNlCit0aGUgY29kZSBuZWVkZWQgdG8gaW1wb3J0IGFuZCBleHBvcnQgdGhlIGNvbnRlbnQgYmV0d2VlbiBDIGRhdGEgYW5kIFhNTAorc3RvcmFnZS4gVGhpcyBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlIHRvIHRoZSByZWFkZXIgOi0pPC9wPjxwPkZlZWwgZnJlZSB0byB1c2UgPGEgaHJlZj0iZXhhbXBsZS9nam9icmVhZC5jIj50aGUgY29kZSBmb3IgdGhlIGZ1bGwgQworcGFyc2luZyBleGFtcGxlPC9hPiBhcyBhIHRlbXBsYXRlLCBpdCBpcyBhbHNvIGF2YWlsYWJsZSB3aXRoIE1ha2VmaWxlIGluIHRoZQorR25vbWUgU1ZOIGJhc2UgdW5kZXIgbGlieG1sMi9leGFtcGxlPC9wPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvTWFrZWZpbGUuYW0gYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWJlZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwxMzQgQEAKKyMgQmV3YXJlIHRoaXMgaXMgYXV0b2dlbmVyYXRlZCBieSBpbmRleC5weQorSU5DTFVERVMgPSAtSSQodG9wX2J1aWxkZGlyKS9pbmNsdWRlIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1JQHNyY2RpckAvaW5jbHVkZSBAVEhSRUFEX0NGTEFHU0AgQFpfQ0ZMQUdTQAorREVQUyA9ICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhCitMREFERFMgPSBAU1RBVElDX0JJTkFSSUVTQCAkKHRvcF9idWlsZGRpcikvbGlieG1sMi5sYSBAVEhSRUFEX0xJQlNAIEBaX0xJQlNAICQoSUNPTlZfTElCUykgLWxtIEBXSU4zMl9FWFRSQV9MSUJBRERACisKK3JlYnVpbGQ6IGV4YW1wbGVzLnhtbCBpbmRleC5odG1sCisKK2V4YW1wbGVzLnhtbDogaW5kZXgucHkgKi5jCisJLUAoJChzcmNkaXIpL2luZGV4LnB5KQorCitpbmRleC5odG1sOiBleGFtcGxlcy54bWwgZXhhbXBsZXMueHNsCisJLUAoeHNsdHByb2MgZXhhbXBsZXMueHNsIGV4YW1wbGVzLnhtbCAmJiBlY2hvICJSZWJ1aWx0IHdlYiBwYWdlIiAmJiB4bWxsaW50IC0tdmFsaWQgLS1ub291dCBpbmRleC5odG1sKQorCitpbnN0YWxsLWRhdGEtbG9jYWw6IAorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoSFRNTF9ESVIpCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS8qLmh0bWwgJChzcmNkaXIpLyouYyAkKHNyY2RpcikvKi54bWwgJChzcmNkaXIpLyoueHNsICQoc3JjZGlyKS8qLnJlcyAkKERFU1RESVIpJChIVE1MX0RJUikKKworRVhUUkFfRElTVD1leGFtcGxlcy54c2wgaW5kZXgucHkgZXhhbXBsZXMueG1sIHdyaXRlci54bWwgdGVzdDMueG1sIHRzdC54bWwgdGVzdDEueG1sIHRlc3QyLnhtbCBpbzIucmVzIHhwYXRoMi5yZXMgdHJlZTEucmVzIHJlYWRlcjQucmVzIGlvMS5yZXMgdHJlZTIucmVzIHJlYWRlcjMucmVzIHhwYXRoMS5yZXMgcmVhZGVyMS5yZXMgCisKK25vaW5zdF9QUk9HUkFNUz14cGF0aDIgcmVhZGVyMSByZWFkZXI0IHBhcnNlMiByZWFkZXIyIHBhcnNlMyByZWFkZXIzIHRyZWUyIHBhcnNlNCBpbzIgdGVzdFdyaXRlciBpbzEgeHBhdGgxIHBhcnNlMSB0cmVlMSAKKworeHBhdGgyX1NPVVJDRVM9eHBhdGgyLmMKK3hwYXRoMl9MREZMQUdTPQoreHBhdGgyX0RFUEVOREVOQ0lFUz0gJChERVBTKQoreHBhdGgyX0xEQUREPSBAUkRMX0xJQlNAICQoTERBRERTKQorCityZWFkZXIxX1NPVVJDRVM9cmVhZGVyMS5jCityZWFkZXIxX0xERkxBR1M9CityZWFkZXIxX0RFUEVOREVOQ0lFUz0gJChERVBTKQorcmVhZGVyMV9MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKKworcmVhZGVyNF9TT1VSQ0VTPXJlYWRlcjQuYworcmVhZGVyNF9MREZMQUdTPQorcmVhZGVyNF9ERVBFTkRFTkNJRVM9ICQoREVQUykKK3JlYWRlcjRfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3BhcnNlMl9TT1VSQ0VTPXBhcnNlMi5jCitwYXJzZTJfTERGTEFHUz0KK3BhcnNlMl9ERVBFTkRFTkNJRVM9ICQoREVQUykKK3BhcnNlMl9MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKKworcmVhZGVyMl9TT1VSQ0VTPXJlYWRlcjIuYworcmVhZGVyMl9MREZMQUdTPQorcmVhZGVyMl9ERVBFTkRFTkNJRVM9ICQoREVQUykKK3JlYWRlcjJfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3BhcnNlM19TT1VSQ0VTPXBhcnNlMy5jCitwYXJzZTNfTERGTEFHUz0KK3BhcnNlM19ERVBFTkRFTkNJRVM9ICQoREVQUykKK3BhcnNlM19MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKKworcmVhZGVyM19TT1VSQ0VTPXJlYWRlcjMuYworcmVhZGVyM19MREZMQUdTPQorcmVhZGVyM19ERVBFTkRFTkNJRVM9ICQoREVQUykKK3JlYWRlcjNfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3RyZWUyX1NPVVJDRVM9dHJlZTIuYwordHJlZTJfTERGTEFHUz0KK3RyZWUyX0RFUEVOREVOQ0lFUz0gJChERVBTKQordHJlZTJfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3BhcnNlNF9TT1VSQ0VTPXBhcnNlNC5jCitwYXJzZTRfTERGTEFHUz0KK3BhcnNlNF9ERVBFTkRFTkNJRVM9ICQoREVQUykKK3BhcnNlNF9MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKKworaW8yX1NPVVJDRVM9aW8yLmMKK2lvMl9MREZMQUdTPQoraW8yX0RFUEVOREVOQ0lFUz0gJChERVBTKQoraW8yX0xEQUREPSBAUkRMX0xJQlNAICQoTERBRERTKQorCit0ZXN0V3JpdGVyX1NPVVJDRVM9dGVzdFdyaXRlci5jCit0ZXN0V3JpdGVyX0xERkxBR1M9Cit0ZXN0V3JpdGVyX0RFUEVOREVOQ0lFUz0gJChERVBTKQordGVzdFdyaXRlcl9MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKKworaW8xX1NPVVJDRVM9aW8xLmMKK2lvMV9MREZMQUdTPQoraW8xX0RFUEVOREVOQ0lFUz0gJChERVBTKQoraW8xX0xEQUREPSBAUkRMX0xJQlNAICQoTERBRERTKQorCit4cGF0aDFfU09VUkNFUz14cGF0aDEuYworeHBhdGgxX0xERkxBR1M9Cit4cGF0aDFfREVQRU5ERU5DSUVTPSAkKERFUFMpCit4cGF0aDFfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpCisKK3BhcnNlMV9TT1VSQ0VTPXBhcnNlMS5jCitwYXJzZTFfTERGTEFHUz0KK3BhcnNlMV9ERVBFTkRFTkNJRVM9ICQoREVQUykKK3BhcnNlMV9MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKKwordHJlZTFfU09VUkNFUz10cmVlMS5jCit0cmVlMV9MREZMQUdTPQordHJlZTFfREVQRU5ERU5DSUVTPSAkKERFUFMpCit0cmVlMV9MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKKwordmFsZ3JpbmQ6IAorCSQoTUFLRSkgQ0hFQ0tFUj0ndmFsZ3JpbmQnIHRlc3RzCisKK3Rlc3RzOiAkKG5vaW5zdF9QUk9HUkFNUykKKwlAKGVjaG8gJyMjIGV4YW1wbGVzIHJlZ3Jlc3Npb24gdGVzdHMnKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUAoJChDSEVDS0VSKSAuL3hwYXRoMiB0ZXN0My54bWwgJy8vZGlzY2FyZGVkJyBkaXNjYXJkZWQgPiB4cGF0aDIudG1wIDsgZGlmZiB4cGF0aDIudG1wIHhwYXRoMi5yZXMgOyBybSB4cGF0aDIudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcmVhZGVyMSB0ZXN0Mi54bWwgPiByZWFkZXIxLnRtcCA7IGRpZmYgcmVhZGVyMS50bXAgcmVhZGVyMS5yZXMgOyBybSByZWFkZXIxLnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3JlYWRlcjQgdGVzdDEueG1sIHRlc3QyLnhtbCB0ZXN0My54bWwgPiByZWFkZXI0LnRtcCA7IGRpZmYgcmVhZGVyNC50bXAgcmVhZGVyNC5yZXMgOyBybSByZWFkZXI0LnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3BhcnNlMiB0ZXN0Mi54bWwpCisJQChncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIiA7IGV4aXQgMCkKKwlAKCQoQ0hFQ0tFUikgLi9yZWFkZXIyIHRlc3QyLnhtbCA+IHJlYWRlcjEudG1wIDsgZGlmZiByZWFkZXIxLnRtcCByZWFkZXIxLnJlcyA7IHJtIHJlYWRlcjEudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcGFyc2UzKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcmVhZGVyMyA+IHJlYWRlcjMudG1wIDsgZGlmZiByZWFkZXIzLnRtcCByZWFkZXIzLnJlcyA7IHJtIHJlYWRlcjMudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vdHJlZTIgPiB0cmVlMi50bXAgOyBkaWZmIHRyZWUyLnRtcCB0cmVlMi5yZXMgOyBybSB0cmVlMi50bXApCisJQChncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIiA7IGV4aXQgMCkKKwlAKCQoQ0hFQ0tFUikgLi9wYXJzZTQgdGVzdDMueG1sKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vaW8yID4gaW8yLnRtcCA7IGRpZmYgaW8yLnRtcCBpbzIucmVzIDsgcm0gLWYgaW8yLnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3Rlc3RXcml0ZXIgOyBmb3IgaSBpbiAxIDIgMyA0IDsgZG8gZGlmZiB3cml0ZXIueG1sIHdyaXRlciQkaS5yZXMgOyBkb25lIDsgcm0gd3JpdGVyKi5yZXMpCisJQChncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIiA7IGV4aXQgMCkKKwlAKCQoQ0hFQ0tFUikgLi9pbzEgPiBpbzEudG1wIDsgZGlmZiBpbzEudG1wIGlvMS5yZXMgOyBybSAtZiBpbzEudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vLi94cGF0aDEgdGVzdDMueG1sICcvL2NoaWxkMicgPiB4cGF0aDEudG1wIDsgZGlmZiB4cGF0aDEudG1wIHhwYXRoMS5yZXMgOyBybSB4cGF0aDEudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcGFyc2UxIHRlc3QxLnhtbCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3RyZWUxIHRlc3QyLnhtbCA+IHRyZWUxLnRtcCA7IGRpZmYgdHJlZTEudG1wIHRyZWUxLnJlcyA7IHJtIHRyZWUxLnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL01ha2VmaWxlLmluIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk2MmQxYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsODMzIEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitub2luc3RfUFJPR1JBTVMgPSB4cGF0aDIkKEVYRUVYVCkgcmVhZGVyMSQoRVhFRVhUKSByZWFkZXI0JChFWEVFWFQpIFwKKwlwYXJzZTIkKEVYRUVYVCkgcmVhZGVyMiQoRVhFRVhUKSBwYXJzZTMkKEVYRUVYVCkgXAorCXJlYWRlcjMkKEVYRUVYVCkgdHJlZTIkKEVYRUVYVCkgcGFyc2U0JChFWEVFWFQpIGlvMiQoRVhFRVhUKSBcCisJdGVzdFdyaXRlciQoRVhFRVhUKSBpbzEkKEVYRUVYVCkgeHBhdGgxJChFWEVFWFQpIFwKKwlwYXJzZTEkKEVYRUVYVCkgdHJlZTEkKEVYRUVYVCkKK3N1YmRpciA9IGRvYy9leGFtcGxlcworRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmluCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKK2FtX2lvMV9PQkpFQ1RTID0gaW8xLiQoT0JKRVhUKQoraW8xX09CSkVDVFMgPSAkKGFtX2lvMV9PQkpFQ1RTKQorYW1fX0RFUEVOREVOQ0lFU18xID0KK2FtX19ERVBFTkRFTkNJRVNfMiA9ICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhICQoYW1fX0RFUEVOREVOQ0lFU18xKQoraW8xX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKGlvMV9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1faW8yX09CSkVDVFMgPSBpbzIuJChPQkpFWFQpCitpbzJfT0JKRUNUUyA9ICQoYW1faW8yX09CSkVDVFMpCitpbzJfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoaW8yX0xERkxBR1MpIFwKKwkkKExERkxBR1MpIC1vICRACithbV9wYXJzZTFfT0JKRUNUUyA9IHBhcnNlMS4kKE9CSkVYVCkKK3BhcnNlMV9PQkpFQ1RTID0gJChhbV9wYXJzZTFfT0JKRUNUUykKK3BhcnNlMV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChwYXJzZTFfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK2FtX3BhcnNlMl9PQkpFQ1RTID0gcGFyc2UyLiQoT0JKRVhUKQorcGFyc2UyX09CSkVDVFMgPSAkKGFtX3BhcnNlMl9PQkpFQ1RTKQorcGFyc2UyX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKHBhcnNlMl9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1fcGFyc2UzX09CSkVDVFMgPSBwYXJzZTMuJChPQkpFWFQpCitwYXJzZTNfT0JKRUNUUyA9ICQoYW1fcGFyc2UzX09CSkVDVFMpCitwYXJzZTNfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQocGFyc2UzX0xERkxBR1MpIFwKKwkkKExERkxBR1MpIC1vICRACithbV9wYXJzZTRfT0JKRUNUUyA9IHBhcnNlNC4kKE9CSkVYVCkKK3BhcnNlNF9PQkpFQ1RTID0gJChhbV9wYXJzZTRfT0JKRUNUUykKK3BhcnNlNF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChwYXJzZTRfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK2FtX3JlYWRlcjFfT0JKRUNUUyA9IHJlYWRlcjEuJChPQkpFWFQpCityZWFkZXIxX09CSkVDVFMgPSAkKGFtX3JlYWRlcjFfT0JKRUNUUykKK3JlYWRlcjFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQocmVhZGVyMV9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1fcmVhZGVyMl9PQkpFQ1RTID0gcmVhZGVyMi4kKE9CSkVYVCkKK3JlYWRlcjJfT0JKRUNUUyA9ICQoYW1fcmVhZGVyMl9PQkpFQ1RTKQorcmVhZGVyMl9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChyZWFkZXIyX0xERkxBR1MpIFwKKwkkKExERkxBR1MpIC1vICRACithbV9yZWFkZXIzX09CSkVDVFMgPSByZWFkZXIzLiQoT0JKRVhUKQorcmVhZGVyM19PQkpFQ1RTID0gJChhbV9yZWFkZXIzX09CSkVDVFMpCityZWFkZXIzX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKHJlYWRlcjNfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK2FtX3JlYWRlcjRfT0JKRUNUUyA9IHJlYWRlcjQuJChPQkpFWFQpCityZWFkZXI0X09CSkVDVFMgPSAkKGFtX3JlYWRlcjRfT0JKRUNUUykKK3JlYWRlcjRfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQocmVhZGVyNF9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1fdGVzdFdyaXRlcl9PQkpFQ1RTID0gdGVzdFdyaXRlci4kKE9CSkVYVCkKK3Rlc3RXcml0ZXJfT0JKRUNUUyA9ICQoYW1fdGVzdFdyaXRlcl9PQkpFQ1RTKQordGVzdFdyaXRlcl9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQodGVzdFdyaXRlcl9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACithbV90cmVlMV9PQkpFQ1RTID0gdHJlZTEuJChPQkpFWFQpCit0cmVlMV9PQkpFQ1RTID0gJChhbV90cmVlMV9PQkpFQ1RTKQordHJlZTFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQodHJlZTFfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK2FtX3RyZWUyX09CSkVDVFMgPSB0cmVlMi4kKE9CSkVYVCkKK3RyZWUyX09CSkVDVFMgPSAkKGFtX3RyZWUyX09CSkVDVFMpCit0cmVlMl9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJCh0cmVlMl9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorYW1feHBhdGgxX09CSkVDVFMgPSB4cGF0aDEuJChPQkpFWFQpCit4cGF0aDFfT0JKRUNUUyA9ICQoYW1feHBhdGgxX09CSkVDVFMpCit4cGF0aDFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoeHBhdGgxX0xERkxBR1MpIFwKKwkkKExERkxBR1MpIC1vICRACithbV94cGF0aDJfT0JKRUNUUyA9IHhwYXRoMi4kKE9CSkVYVCkKK3hwYXRoMl9PQkpFQ1RTID0gJChhbV94cGF0aDJfT0JKRUNUUykKK3hwYXRoMl9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJCh4cGF0aDJfTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpCitkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9kZXBjb21wCithbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworYW1fX212ID0gbXYgLWYKK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitDQ0xEID0gJChDQykKK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKwkkKExERkxBR1MpIC1vICRACitTT1VSQ0VTID0gJChpbzFfU09VUkNFUykgJChpbzJfU09VUkNFUykgJChwYXJzZTFfU09VUkNFUykgXAorCSQocGFyc2UyX1NPVVJDRVMpICQocGFyc2UzX1NPVVJDRVMpICQocGFyc2U0X1NPVVJDRVMpIFwKKwkkKHJlYWRlcjFfU09VUkNFUykgJChyZWFkZXIyX1NPVVJDRVMpICQocmVhZGVyM19TT1VSQ0VTKSBcCisJJChyZWFkZXI0X1NPVVJDRVMpICQodGVzdFdyaXRlcl9TT1VSQ0VTKSAkKHRyZWUxX1NPVVJDRVMpIFwKKwkkKHRyZWUyX1NPVVJDRVMpICQoeHBhdGgxX1NPVVJDRVMpICQoeHBhdGgyX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGlvMV9TT1VSQ0VTKSAkKGlvMl9TT1VSQ0VTKSAkKHBhcnNlMV9TT1VSQ0VTKSBcCisJJChwYXJzZTJfU09VUkNFUykgJChwYXJzZTNfU09VUkNFUykgJChwYXJzZTRfU09VUkNFUykgXAorCSQocmVhZGVyMV9TT1VSQ0VTKSAkKHJlYWRlcjJfU09VUkNFUykgJChyZWFkZXIzX1NPVVJDRVMpIFwKKwkkKHJlYWRlcjRfU09VUkNFUykgJCh0ZXN0V3JpdGVyX1NPVVJDRVMpICQodHJlZTFfU09VUkNFUykgXAorCSQodHJlZTJfU09VUkNFUykgJCh4cGF0aDFfU09VUkNFUykgJCh4cGF0aDJfU09VUkNFUykKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FSID0gQEFSQAorQVMgPSBAQVNACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JBU0VfVEhSRUFEX0xJQlMgPSBAQkFTRV9USFJFQURfTElCU0AKK0MxNE5fT0JKID0gQEMxNE5fT0JKQAorQ0FUQUxPR19PQkogPSBAQ0FUQUxPR19PQkpACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0NZR1dJTl9FWFRSQV9MREZMQUdTID0gQENZR1dJTl9FWFRSQV9MREZMQUdTQAorQ1lHV0lOX0VYVFJBX1BZVEhPTl9MSUJBREQgPSBAQ1lHV0lOX0VYVFJBX1BZVEhPTl9MSUJBRERACitERUJVR19PQkogPSBAREVCVUdfT0JKQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RMTFRPT0wgPSBARExMVE9PTEAKK0RPQ0JfT0JKID0gQERPQ0JfT0JKQAorRFNZTVVUSUwgPSBARFNZTVVUSUxACitEVU1QQklOID0gQERVTVBCSU5ACitFQ0hPX0MgPSBARUNIT19DQAorRUNIT19OID0gQEVDSE9fTkAKK0VDSE9fVCA9IEBFQ0hPX1RACitFR1JFUCA9IEBFR1JFUEAKK0VYRUVYVCA9IEBFWEVFWFRACitGR1JFUCA9IEBGR1JFUEAKK0ZUUF9PQkogPSBARlRQX09CSkAKK0dSRVAgPSBAR1JFUEAKK0hBVkVfSVNJTkYgPSBASEFWRV9JU0lORkAKK0hBVkVfSVNOQU4gPSBASEFWRV9JU05BTkAKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSFRNTF9PQkogPSBASFRNTF9PQkpACitIVFRQX09CSiA9IEBIVFRQX09CSkAKK0lDT05WX0xJQlMgPSBASUNPTlZfTElCU0AKK0lOU1RBTEwgPSBASU5TVEFMTEAKK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACitJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJYTUxfTUFKT1JfVkVSU0lPTiA9IEBMSUJYTUxfTUFKT1JfVkVSU0lPTkAKK0xJQlhNTF9NSUNST19WRVJTSU9OID0gQExJQlhNTF9NSUNST19WRVJTSU9OQAorTElCWE1MX01JTk9SX1ZFUlNJT04gPSBATElCWE1MX01JTk9SX1ZFUlNJT05ACitMSUJYTUxfVkVSU0lPTiA9IEBMSUJYTUxfVkVSU0lPTkAKK0xJQlhNTF9WRVJTSU9OX0VYVFJBID0gQExJQlhNTF9WRVJTSU9OX0VYVFJBQAorTElCWE1MX1ZFUlNJT05fSU5GTyA9IEBMSUJYTUxfVkVSU0lPTl9JTkZPQAorTElCWE1MX1ZFUlNJT05fTlVNQkVSID0gQExJQlhNTF9WRVJTSU9OX05VTUJFUkAKK0xJUE8gPSBATElQT0AKK0xOX1MgPSBATE5fU0AKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01PRFVMRV9FWFRFTlNJT04gPSBATU9EVUxFX0VYVEVOU0lPTkAKK01PRFVMRV9QTEFURk9STV9MSUJTID0gQE1PRFVMRV9QTEFURk9STV9MSUJTQAorTVYgPSBATVZACitNX0xJQlMgPSBATV9MSUJTQAorTk0gPSBATk1ACitOTUVESVQgPSBATk1FRElUQAorT0JKRFVNUCA9IEBPQkpEVU1QQAorT0JKRVhUID0gQE9CSkVYVEAKK09UT09MID0gQE9UT09MQAorT1RPT0w2NCA9IEBPVE9PTDY0QAorUEFDS0FHRSA9IEBQQUNLQUdFQAorUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorUEVSTCA9IEBQRVJMQAorUFlUSE9OID0gQFBZVEhPTkAKK1BZVEhPTl9JTkNMVURFUyA9IEBQWVRIT05fSU5DTFVERVNACitQWVRIT05fTElCUyA9IEBQWVRIT05fTElCU0AKK1BZVEhPTl9TSVRFX1BBQ0tBR0VTID0gQFBZVEhPTl9TSVRFX1BBQ0tBR0VTQAorUFlUSE9OX1NVQkRJUiA9IEBQWVRIT05fU1VCRElSQAorUFlUSE9OX1RFU1RTID0gQFBZVEhPTl9URVNUU0AKK1BZVEhPTl9WRVJTSU9OID0gQFBZVEhPTl9WRVJTSU9OQAorUkFOTElCID0gQFJBTkxJQkAKK1JETF9MSUJTID0gQFJETF9MSUJTQAorUkVBREVSX1RFU1QgPSBAUkVBREVSX1RFU1RACitSRUxEQVRFID0gQFJFTERBVEVACitSTSA9IEBSTUAKK1NFRCA9IEBTRURACitTRVRfTUFLRSA9IEBTRVRfTUFLRUAKK1NIRUxMID0gQFNIRUxMQAorU1RBVElDX0JJTkFSSUVTID0gQFNUQVRJQ19CSU5BUklFU0AKK1NUUklQID0gQFNUUklQQAorVEFSID0gQFRBUkAKK1RFU1RfQzE0TiA9IEBURVNUX0MxNE5ACitURVNUX0NBVEFMT0cgPSBAVEVTVF9DQVRBTE9HQAorVEVTVF9ERUJVRyA9IEBURVNUX0RFQlVHQAorVEVTVF9IVE1MID0gQFRFU1RfSFRNTEAKK1RFU1RfTU9EVUxFUyA9IEBURVNUX01PRFVMRVNACitURVNUX1BBVFRFUk4gPSBAVEVTVF9QQVRURVJOQAorVEVTVF9QSFRNTCA9IEBURVNUX1BIVE1MQAorVEVTVF9QVVNIID0gQFRFU1RfUFVTSEAKK1RFU1RfUkVHRVhQUyA9IEBURVNUX1JFR0VYUFNACitURVNUX1NBWCA9IEBURVNUX1NBWEAKK1RFU1RfU0NIRU1BUyA9IEBURVNUX1NDSEVNQVNACitURVNUX1NDSEVNQVRST04gPSBAVEVTVF9TQ0hFTUFUUk9OQAorVEVTVF9USFJFQURTID0gQFRFU1RfVEhSRUFEU0AKK1RFU1RfVkFMSUQgPSBAVEVTVF9WQUxJREAKK1RFU1RfVlRJTUUgPSBAVEVTVF9WVElNRUAKK1RFU1RfWElOQ0xVREUgPSBAVEVTVF9YSU5DTFVERUAKK1RFU1RfWFBBVEggPSBAVEVTVF9YUEFUSEAKK1RFU1RfWFBUUiA9IEBURVNUX1hQVFJACitUSFJFQURTX1czMiA9IEBUSFJFQURTX1czMkAKK1RIUkVBRF9DRkxBR1MgPSBAVEhSRUFEX0NGTEFHU0AKK1RIUkVBRF9MSUJTID0gQFRIUkVBRF9MSUJTQAorVSA9IEBVQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorVkVSU0lPTl9TQ1JJUFRfRkxBR1MgPSBAVkVSU0lPTl9TQ1JJUFRfRkxBR1NACitXR0VUID0gQFdHRVRACitXSU4zMl9FWFRSQV9MREZMQUdTID0gQFdJTjMyX0VYVFJBX0xERkxBR1NACitXSU4zMl9FWFRSQV9MSUJBREQgPSBAV0lOMzJfRVhUUkFfTElCQUREQAorV0lUSF9DMTROID0gQFdJVEhfQzE0TkAKK1dJVEhfQ0FUQUxPRyA9IEBXSVRIX0NBVEFMT0dACitXSVRIX0RFQlVHID0gQFdJVEhfREVCVUdACitXSVRIX0RPQ0IgPSBAV0lUSF9ET0NCQAorV0lUSF9GVFAgPSBAV0lUSF9GVFBACitXSVRIX0hUTUwgPSBAV0lUSF9IVE1MQAorV0lUSF9IVFRQID0gQFdJVEhfSFRUUEAKK1dJVEhfSUNPTlYgPSBAV0lUSF9JQ09OVkAKK1dJVEhfSVNPODg1OVggPSBAV0lUSF9JU084ODU5WEAKK1dJVEhfTEVHQUNZID0gQFdJVEhfTEVHQUNZQAorV0lUSF9NRU1fREVCVUcgPSBAV0lUSF9NRU1fREVCVUdACitXSVRIX01PRFVMRVMgPSBAV0lUSF9NT0RVTEVTQAorV0lUSF9PVVRQVVQgPSBAV0lUSF9PVVRQVVRACitXSVRIX1BBVFRFUk4gPSBAV0lUSF9QQVRURVJOQAorV0lUSF9QVVNIID0gQFdJVEhfUFVTSEAKK1dJVEhfUkVBREVSID0gQFdJVEhfUkVBREVSQAorV0lUSF9SRUdFWFBTID0gQFdJVEhfUkVHRVhQU0AKK1dJVEhfUlVOX0RFQlVHID0gQFdJVEhfUlVOX0RFQlVHQAorV0lUSF9TQVgxID0gQFdJVEhfU0FYMUAKK1dJVEhfU0NIRU1BUyA9IEBXSVRIX1NDSEVNQVNACitXSVRIX1NDSEVNQVRST04gPSBAV0lUSF9TQ0hFTUFUUk9OQAorV0lUSF9USFJFQURTID0gQFdJVEhfVEhSRUFEU0AKK1dJVEhfVFJFRSA9IEBXSVRIX1RSRUVACitXSVRIX1RSSU8gPSBAV0lUSF9UUklPQAorV0lUSF9WQUxJRCA9IEBXSVRIX1ZBTElEQAorV0lUSF9XUklURVIgPSBAV0lUSF9XUklURVJACitXSVRIX1hJTkNMVURFID0gQFdJVEhfWElOQ0xVREVACitXSVRIX1hQQVRIID0gQFdJVEhfWFBBVEhACitXSVRIX1hQVFIgPSBAV0lUSF9YUFRSQAorV0lUSF9aTElCID0gQFdJVEhfWkxJQkAKK1hJTkNMVURFX09CSiA9IEBYSU5DTFVERV9PQkpACitYTUxMSU5UID0gQFhNTExJTlRACitYTUxfQ0ZMQUdTID0gQFhNTF9DRkxBR1NACitYTUxfSU5DTFVERURJUiA9IEBYTUxfSU5DTFVERURJUkAKK1hNTF9MSUJESVIgPSBAWE1MX0xJQkRJUkAKK1hNTF9MSUJTID0gQFhNTF9MSUJTQAorWE1MX0xJQlRPT0xMSUJTID0gQFhNTF9MSUJUT09MTElCU0AKK1hQQVRIX09CSiA9IEBYUEFUSF9PQkpACitYUFRSX09CSiA9IEBYUFRSX09CSkAKK1hTTFRQUk9DID0gQFhTTFRQUk9DQAorWl9DRkxBR1MgPSBAWl9DRkxBR1NACitaX0xJQlMgPSBAWl9MSUJTQAorYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACitkb2NkaXIgPSBAZG9jZGlyQAorZHZpZGlyID0gQGR2aWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2h0bWxkaXIgPSBAaHRtbGRpckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorbHRfRUNITyA9IEBsdF9FQ0hPQAorbWFuZGlyID0gQG1hbmRpckAKK21rZGlyX3AgPSBAbWtkaXJfcEAKK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKK3BkZmRpciA9IEBwZGZkaXJACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorcHNkaXIgPSBAcHNkaXJACitweXRob25kaXIgPSBAcHl0aG9uZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisKKyMgQmV3YXJlIHRoaXMgaXMgYXV0b2dlbmVyYXRlZCBieSBpbmRleC5weQorSU5DTFVERVMgPSAtSSQodG9wX2J1aWxkZGlyKS9pbmNsdWRlIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1JQHNyY2RpckAvaW5jbHVkZSBAVEhSRUFEX0NGTEFHU0AgQFpfQ0ZMQUdTQAorREVQUyA9ICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhCitMREFERFMgPSBAU1RBVElDX0JJTkFSSUVTQCAkKHRvcF9idWlsZGRpcikvbGlieG1sMi5sYSBAVEhSRUFEX0xJQlNAIEBaX0xJQlNAICQoSUNPTlZfTElCUykgLWxtIEBXSU4zMl9FWFRSQV9MSUJBRERACitFWFRSQV9ESVNUID0gZXhhbXBsZXMueHNsIGluZGV4LnB5IGV4YW1wbGVzLnhtbCB3cml0ZXIueG1sIHRlc3QzLnhtbCB0c3QueG1sIHRlc3QxLnhtbCB0ZXN0Mi54bWwgaW8yLnJlcyB4cGF0aDIucmVzIHRyZWUxLnJlcyByZWFkZXI0LnJlcyBpbzEucmVzIHRyZWUyLnJlcyByZWFkZXIzLnJlcyB4cGF0aDEucmVzIHJlYWRlcjEucmVzIAoreHBhdGgyX1NPVVJDRVMgPSB4cGF0aDIuYworeHBhdGgyX0xERkxBR1MgPSAKK3hwYXRoMl9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCit4cGF0aDJfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQorcmVhZGVyMV9TT1VSQ0VTID0gcmVhZGVyMS5jCityZWFkZXIxX0xERkxBR1MgPSAKK3JlYWRlcjFfREVQRU5ERU5DSUVTID0gJChERVBTKQorcmVhZGVyMV9MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCityZWFkZXI0X1NPVVJDRVMgPSByZWFkZXI0LmMKK3JlYWRlcjRfTERGTEFHUyA9IAorcmVhZGVyNF9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCityZWFkZXI0X0xEQUREID0gQFJETF9MSUJTQCAkKExEQUREUykKK3BhcnNlMl9TT1VSQ0VTID0gcGFyc2UyLmMKK3BhcnNlMl9MREZMQUdTID0gCitwYXJzZTJfREVQRU5ERU5DSUVTID0gJChERVBTKQorcGFyc2UyX0xEQUREID0gQFJETF9MSUJTQCAkKExEQUREUykKK3JlYWRlcjJfU09VUkNFUyA9IHJlYWRlcjIuYworcmVhZGVyMl9MREZMQUdTID0gCityZWFkZXIyX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3JlYWRlcjJfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQorcGFyc2UzX1NPVVJDRVMgPSBwYXJzZTMuYworcGFyc2UzX0xERkxBR1MgPSAKK3BhcnNlM19ERVBFTkRFTkNJRVMgPSAkKERFUFMpCitwYXJzZTNfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQorcmVhZGVyM19TT1VSQ0VTID0gcmVhZGVyMy5jCityZWFkZXIzX0xERkxBR1MgPSAKK3JlYWRlcjNfREVQRU5ERU5DSUVTID0gJChERVBTKQorcmVhZGVyM19MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCit0cmVlMl9TT1VSQ0VTID0gdHJlZTIuYwordHJlZTJfTERGTEFHUyA9IAordHJlZTJfREVQRU5ERU5DSUVTID0gJChERVBTKQordHJlZTJfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQorcGFyc2U0X1NPVVJDRVMgPSBwYXJzZTQuYworcGFyc2U0X0xERkxBR1MgPSAKK3BhcnNlNF9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCitwYXJzZTRfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQoraW8yX1NPVVJDRVMgPSBpbzIuYworaW8yX0xERkxBR1MgPSAKK2lvMl9ERVBFTkRFTkNJRVMgPSAkKERFUFMpCitpbzJfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQordGVzdFdyaXRlcl9TT1VSQ0VTID0gdGVzdFdyaXRlci5jCit0ZXN0V3JpdGVyX0xERkxBR1MgPSAKK3Rlc3RXcml0ZXJfREVQRU5ERU5DSUVTID0gJChERVBTKQordGVzdFdyaXRlcl9MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCitpbzFfU09VUkNFUyA9IGlvMS5jCitpbzFfTERGTEFHUyA9IAoraW8xX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK2lvMV9MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCit4cGF0aDFfU09VUkNFUyA9IHhwYXRoMS5jCit4cGF0aDFfTERGTEFHUyA9IAoreHBhdGgxX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3hwYXRoMV9MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCitwYXJzZTFfU09VUkNFUyA9IHBhcnNlMS5jCitwYXJzZTFfTERGTEFHUyA9IAorcGFyc2UxX0RFUEVOREVOQ0lFUyA9ICQoREVQUykKK3BhcnNlMV9MREFERCA9IEBSRExfTElCU0AgJChMREFERFMpCit0cmVlMV9TT1VSQ0VTID0gdHJlZTEuYwordHJlZTFfTERGTEFHUyA9IAordHJlZTFfREVQRU5ERU5DSUVTID0gJChERVBTKQordHJlZTFfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQorYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBkb2MvZXhhbXBsZXMvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1nbnUgZG9jL2V4YW1wbGVzL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKworY2xlYW4tbm9pbnN0UFJPR1JBTVM6CisJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdAoraW8xJChFWEVFWFQpOiAkKGlvMV9PQkpFQ1RTKSAkKGlvMV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBpbzEkKEVYRUVYVCkKKwkkKGlvMV9MSU5LKSAkKGlvMV9PQkpFQ1RTKSAkKGlvMV9MREFERCkgJChMSUJTKQoraW8yJChFWEVFWFQpOiAkKGlvMl9PQkpFQ1RTKSAkKGlvMl9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBpbzIkKEVYRUVYVCkKKwkkKGlvMl9MSU5LKSAkKGlvMl9PQkpFQ1RTKSAkKGlvMl9MREFERCkgJChMSUJTKQorcGFyc2UxJChFWEVFWFQpOiAkKHBhcnNlMV9PQkpFQ1RTKSAkKHBhcnNlMV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBwYXJzZTEkKEVYRUVYVCkKKwkkKHBhcnNlMV9MSU5LKSAkKHBhcnNlMV9PQkpFQ1RTKSAkKHBhcnNlMV9MREFERCkgJChMSUJTKQorcGFyc2UyJChFWEVFWFQpOiAkKHBhcnNlMl9PQkpFQ1RTKSAkKHBhcnNlMl9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBwYXJzZTIkKEVYRUVYVCkKKwkkKHBhcnNlMl9MSU5LKSAkKHBhcnNlMl9PQkpFQ1RTKSAkKHBhcnNlMl9MREFERCkgJChMSUJTKQorcGFyc2UzJChFWEVFWFQpOiAkKHBhcnNlM19PQkpFQ1RTKSAkKHBhcnNlM19ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBwYXJzZTMkKEVYRUVYVCkKKwkkKHBhcnNlM19MSU5LKSAkKHBhcnNlM19PQkpFQ1RTKSAkKHBhcnNlM19MREFERCkgJChMSUJTKQorcGFyc2U0JChFWEVFWFQpOiAkKHBhcnNlNF9PQkpFQ1RTKSAkKHBhcnNlNF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiBwYXJzZTQkKEVYRUVYVCkKKwkkKHBhcnNlNF9MSU5LKSAkKHBhcnNlNF9PQkpFQ1RTKSAkKHBhcnNlNF9MREFERCkgJChMSUJTKQorcmVhZGVyMSQoRVhFRVhUKTogJChyZWFkZXIxX09CSkVDVFMpICQocmVhZGVyMV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiByZWFkZXIxJChFWEVFWFQpCisJJChyZWFkZXIxX0xJTkspICQocmVhZGVyMV9PQkpFQ1RTKSAkKHJlYWRlcjFfTERBREQpICQoTElCUykKK3JlYWRlcjIkKEVYRUVYVCk6ICQocmVhZGVyMl9PQkpFQ1RTKSAkKHJlYWRlcjJfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgcmVhZGVyMiQoRVhFRVhUKQorCSQocmVhZGVyMl9MSU5LKSAkKHJlYWRlcjJfT0JKRUNUUykgJChyZWFkZXIyX0xEQUREKSAkKExJQlMpCityZWFkZXIzJChFWEVFWFQpOiAkKHJlYWRlcjNfT0JKRUNUUykgJChyZWFkZXIzX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHJlYWRlcjMkKEVYRUVYVCkKKwkkKHJlYWRlcjNfTElOSykgJChyZWFkZXIzX09CSkVDVFMpICQocmVhZGVyM19MREFERCkgJChMSUJTKQorcmVhZGVyNCQoRVhFRVhUKTogJChyZWFkZXI0X09CSkVDVFMpICQocmVhZGVyNF9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiByZWFkZXI0JChFWEVFWFQpCisJJChyZWFkZXI0X0xJTkspICQocmVhZGVyNF9PQkpFQ1RTKSAkKHJlYWRlcjRfTERBREQpICQoTElCUykKK3Rlc3RXcml0ZXIkKEVYRUVYVCk6ICQodGVzdFdyaXRlcl9PQkpFQ1RTKSAkKHRlc3RXcml0ZXJfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdGVzdFdyaXRlciQoRVhFRVhUKQorCSQodGVzdFdyaXRlcl9MSU5LKSAkKHRlc3RXcml0ZXJfT0JKRUNUUykgJCh0ZXN0V3JpdGVyX0xEQUREKSAkKExJQlMpCit0cmVlMSQoRVhFRVhUKTogJCh0cmVlMV9PQkpFQ1RTKSAkKHRyZWUxX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHRyZWUxJChFWEVFWFQpCisJJCh0cmVlMV9MSU5LKSAkKHRyZWUxX09CSkVDVFMpICQodHJlZTFfTERBREQpICQoTElCUykKK3RyZWUyJChFWEVFWFQpOiAkKHRyZWUyX09CSkVDVFMpICQodHJlZTJfREVQRU5ERU5DSUVTKSAKKwlAcm0gLWYgdHJlZTIkKEVYRUVYVCkKKwkkKHRyZWUyX0xJTkspICQodHJlZTJfT0JKRUNUUykgJCh0cmVlMl9MREFERCkgJChMSUJTKQoreHBhdGgxJChFWEVFWFQpOiAkKHhwYXRoMV9PQkpFQ1RTKSAkKHhwYXRoMV9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB4cGF0aDEkKEVYRUVYVCkKKwkkKHhwYXRoMV9MSU5LKSAkKHhwYXRoMV9PQkpFQ1RTKSAkKHhwYXRoMV9MREFERCkgJChMSUJTKQoreHBhdGgyJChFWEVFWFQpOiAkKHhwYXRoMl9PQkpFQ1RTKSAkKHhwYXRoMl9ERVBFTkRFTkNJRVMpIAorCUBybSAtZiB4cGF0aDIkKEVYRUVYVCkKKwkkKHhwYXRoMl9MSU5LKSAkKHhwYXRoMl9PQkpFQ1RTKSAkKHhwYXRoMl9MREFERCkgJChMSUJTKQorCittb3N0bHljbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLiQoT0JKRVhUKQorCitkaXN0Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi50YWIuYworCitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaW8xLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9pbzIuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhcnNlMS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcGFyc2UyLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9wYXJzZTMuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhcnNlNC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVhZGVyMS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVhZGVyMi5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVhZGVyMy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVhZGVyNC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdFdyaXRlci5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdHJlZTEuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3RyZWUyLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS94cGF0aDEuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3hwYXRoMi5Qb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jICQ8CisKKy5jLm9iajoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChDT01QSUxFKSAtYyBgJChDWUdQQVRIX1cpICckPCdgCisKKy5jLmxvOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChMVENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTFRDT01QSUxFKSAtYyAtbyAkQCAkPAorCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQoraW5zdGFsbGRpcnM6CitpbnN0YWxsOiBpbnN0YWxsLWFtCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLXRhZ3MKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLWRhdGEtbG9jYWwKKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06CisKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisKK2luc3RhbGwtaHRtbC1hbToKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjoKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisKK2luc3RhbGwtcHMtYW06CisKK2luc3RhbGxjaGVjay1hbToKKworbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbToKKworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAorCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCisJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gXAorCWluc3RhbGwtZGF0YS1sb2NhbCBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorCXRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorCisKK3JlYnVpbGQ6IGV4YW1wbGVzLnhtbCBpbmRleC5odG1sCisKK2V4YW1wbGVzLnhtbDogaW5kZXgucHkgKi5jCisJLUAoJChzcmNkaXIpL2luZGV4LnB5KQorCitpbmRleC5odG1sOiBleGFtcGxlcy54bWwgZXhhbXBsZXMueHNsCisJLUAoeHNsdHByb2MgZXhhbXBsZXMueHNsIGV4YW1wbGVzLnhtbCAmJiBlY2hvICJSZWJ1aWx0IHdlYiBwYWdlIiAmJiB4bWxsaW50IC0tdmFsaWQgLS1ub291dCBpbmRleC5odG1sKQorCitpbnN0YWxsLWRhdGEtbG9jYWw6IAorCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQoSFRNTF9ESVIpCisJLUBJTlNUQUxMQCAtbSAwNjQ0ICQoc3JjZGlyKS8qLmh0bWwgJChzcmNkaXIpLyouYyAkKHNyY2RpcikvKi54bWwgJChzcmNkaXIpLyoueHNsICQoc3JjZGlyKS8qLnJlcyAkKERFU1RESVIpJChIVE1MX0RJUikKKwordmFsZ3JpbmQ6IAorCSQoTUFLRSkgQ0hFQ0tFUj0ndmFsZ3JpbmQnIHRlc3RzCisKK3Rlc3RzOiAkKG5vaW5zdF9QUk9HUkFNUykKKwlAKGVjaG8gJyMjIGV4YW1wbGVzIHJlZ3Jlc3Npb24gdGVzdHMnKQorCUAoZWNobyA+IC5tZW1kdW1wKQorCUAoJChDSEVDS0VSKSAuL3hwYXRoMiB0ZXN0My54bWwgJy8vZGlzY2FyZGVkJyBkaXNjYXJkZWQgPiB4cGF0aDIudG1wIDsgZGlmZiB4cGF0aDIudG1wIHhwYXRoMi5yZXMgOyBybSB4cGF0aDIudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcmVhZGVyMSB0ZXN0Mi54bWwgPiByZWFkZXIxLnRtcCA7IGRpZmYgcmVhZGVyMS50bXAgcmVhZGVyMS5yZXMgOyBybSByZWFkZXIxLnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3JlYWRlcjQgdGVzdDEueG1sIHRlc3QyLnhtbCB0ZXN0My54bWwgPiByZWFkZXI0LnRtcCA7IGRpZmYgcmVhZGVyNC50bXAgcmVhZGVyNC5yZXMgOyBybSByZWFkZXI0LnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3BhcnNlMiB0ZXN0Mi54bWwpCisJQChncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIiA7IGV4aXQgMCkKKwlAKCQoQ0hFQ0tFUikgLi9yZWFkZXIyIHRlc3QyLnhtbCA+IHJlYWRlcjEudG1wIDsgZGlmZiByZWFkZXIxLnRtcCByZWFkZXIxLnJlcyA7IHJtIHJlYWRlcjEudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcGFyc2UzKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcmVhZGVyMyA+IHJlYWRlcjMudG1wIDsgZGlmZiByZWFkZXIzLnRtcCByZWFkZXIzLnJlcyA7IHJtIHJlYWRlcjMudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vdHJlZTIgPiB0cmVlMi50bXAgOyBkaWZmIHRyZWUyLnRtcCB0cmVlMi5yZXMgOyBybSB0cmVlMi50bXApCisJQChncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIiA7IGV4aXQgMCkKKwlAKCQoQ0hFQ0tFUikgLi9wYXJzZTQgdGVzdDMueG1sKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vaW8yID4gaW8yLnRtcCA7IGRpZmYgaW8yLnRtcCBpbzIucmVzIDsgcm0gLWYgaW8yLnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3Rlc3RXcml0ZXIgOyBmb3IgaSBpbiAxIDIgMyA0IDsgZG8gZGlmZiB3cml0ZXIueG1sIHdyaXRlciQkaS5yZXMgOyBkb25lIDsgcm0gd3JpdGVyKi5yZXMpCisJQChncmVwICJNT1JZIEFMTE8iIC5tZW1kdW1wICB8IGdyZXAgLXYgIk1FTU9SWSBBTExPQ0FURUQgOiAwIiA7IGV4aXQgMCkKKwlAKCQoQ0hFQ0tFUikgLi9pbzEgPiBpbzEudG1wIDsgZGlmZiBpbzEudG1wIGlvMS5yZXMgOyBybSAtZiBpbzEudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vLi94cGF0aDEgdGVzdDMueG1sICcvL2NoaWxkMicgPiB4cGF0aDEudG1wIDsgZGlmZiB4cGF0aDEudG1wIHhwYXRoMS5yZXMgOyBybSB4cGF0aDEudG1wKQorCUAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApCisJQCgkKENIRUNLRVIpIC4vcGFyc2UxIHRlc3QxLnhtbCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCUAoJChDSEVDS0VSKSAuL3RyZWUxIHRlc3QyLnhtbCA+IHRyZWUxLnRtcCA7IGRpZmYgdHJlZTEudG1wIHRyZWUxLnJlcyA7IHJtIHRyZWUxLnRtcCkKKwlAKGdyZXAgIk1PUlkgQUxMTyIgLm1lbWR1bXAgIHwgZ3JlcCAtdiAiTUVNT1JZIEFMTE9DQVRFRCA6IDAiIDsgZXhpdCAwKQorCisjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisuTk9FWFBPUlQ6CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9leGFtcGxlcy54bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9leGFtcGxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIzN2EwZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2V4YW1wbGVzLnhtbApAQCAtMCwwICsxLDc1MSBAQAorPGV4YW1wbGVzPgorICA8ZXhhbXBsZSBmaWxlbmFtZT0ncmVhZGVyMi5jJz4KKyAgICA8c3lub3BzaXM+UGFyc2UgYW5kIHZhbGlkYXRlIGFuIFhNTCBmaWxlIHdpdGggYW4geG1sUmVhZGVyPC9zeW5vcHNpcz4KKyAgICA8cHVycG9zZT5EZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIHhtbFJlYWRlckZvckZpbGUoKSB0byBwYXJzZSBhbiBYTUwgZmlsZSB2YWxpZGF0aW5nIHRoZSBjb250ZW50IGluIHRoZSBwcm9jZXNzIGFuZCBhY3RpdmF0aW5nIG9wdGlvbnMgbGlrZSBlbnRpdGllcyBzdWJzdGl0dXRpb24sIGFuZCBEVEQgYXR0cmlidXRlcyBkZWZhdWx0aW5nLiAoTm90ZSB0aGF0IHRoZSBYTUxSZWFkZXIgZnVuY3Rpb25zIHJlcXVpcmUgbGlieG1sMiB2ZXJzaW9uIGxhdGVyIHRoYW4gMi42Lik8L3B1cnBvc2U+CisgICAgPHVzYWdlPnJlYWRlcjIgJmx0O3ZhbGlkX3htbF9maWxlbmFtZSZndDs8L3VzYWdlPgorICAgIDx0ZXN0PnJlYWRlcjIgdGVzdDIueG1sICZndDsgcmVhZGVyMS50bXAgOyBkaWZmIHJlYWRlcjEudG1wIHJlYWRlcjEucmVzIDsgcm0gcmVhZGVyMS50bXA8L3Rlc3Q+CisgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQ8L2F1dGhvcj4KKyAgICA8Y29weT5zZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuIDwvY29weT4KKyAgICA8c2VjdGlvbj54bWxSZWFkZXI8L3NlY3Rpb24+CisgICAgPGluY2x1ZGVzPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC94bWxyZWFkZXIuaCZndDs8L2luY2x1ZGU+CisgICAgPC9pbmNsdWRlcz4KKyAgICA8dXNlcz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc0NScgZmlsZT0neG1sc3RyaW5nJyBuYW1lPSd4bWxTdHJsZW4nLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxMDknIGZpbGU9J3BhcnNlcicgbmFtZT0neG1sQ2xlYW51cFBhcnNlcicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzM4JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJOb2RlVHlwZScvPgorICAgICAgPHR5cGVkZWYgbGluZT0nNjAnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlclB0cicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzExMycgZmlsZT0neG1sbWVtb3J5JyBuYW1lPSd4bWxNZW1vcnlEdW1wJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMzQnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlckNvbnN0VmFsdWUnLz4KKyAgICAgIDxlbnVtIGxpbmU9JzcwJyBmaWxlPSdwYXJzZXInIG5hbWU9J1hNTF9QQVJTRV9OT0VOVCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzM3JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJEZXB0aCcvPgorICAgICAgPGVudW0gbGluZT0nNzEnIGZpbGU9J3BhcnNlcicgbmFtZT0nWE1MX1BBUlNFX0RURFZBTElEJy8+CisgICAgICA8ZW51bSBsaW5lPSc2OScgZmlsZT0ncGFyc2VyJyBuYW1lPSdYTUxfUEFSU0VfRFREQVRUUicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzg0JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbEZyZWVUZXh0UmVhZGVyJy8+CisgICAgICA8bWFjcm8gbGluZT0nMTA0JyBmaWxlPSd4bWx2ZXJzaW9uJyBuYW1lPSdMSUJYTUxfVEVTVF9WRVJTSU9OJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMzAnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlckNvbnN0TmFtZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzQxJyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJIYXNWYWx1ZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzc2JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJSZWFkJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDAnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50Jy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNjgnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sUmVhZGVyRm9yRmlsZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzgxJyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJJc1ZhbGlkJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSd4cGF0aDIuYyc+CisgICAgPHN5bm9wc2lzPkxvYWQgYSBkb2N1bWVudCwgbG9jYXRlIHN1YmVsZW1lbnRzIHdpdGggWFBhdGgsIG1vZGlmeSBzYWlkIGVsZW1lbnRzIGFuZCBzYXZlIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQuPC9zeW5vcHNpcz4KKyAgICA8cHVycG9zZT5TaG93cyBob3cgdG8gbWFrZSBhIGZ1bGwgcm91bmQtdHJpcCBmcm9tIGEgbG9hZC9lZGl0L3NhdmU8L3B1cnBvc2U+CisgICAgPHVzYWdlPnhwYXRoMiAmbHQ7eG1sLWZpbGUmZ3Q7ICZsdDt4cGF0aC1leHByJmd0OyAmbHQ7bmV3LXZhbHVlJmd0OzwvdXNhZ2U+CisgICAgPHRlc3Q+eHBhdGgyIHRlc3QzLnhtbCAmYXBvczsvL2Rpc2NhcmRlZCZhcG9zOyBkaXNjYXJkZWQgJmd0OyB4cGF0aDIudG1wIDsgZGlmZiB4cGF0aDIudG1wIHhwYXRoMi5yZXMgOyBybSB4cGF0aDIudG1wPC90ZXN0PgorICAgIDxhdXRob3I+QWxla3NleSBTYW5pbiBhbmQgRGFuaWVsIFZlaWxsYXJkPC9hdXRob3I+CisgICAgPGNvcHk+c2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLiA8L2NvcHk+CisgICAgPHNlY3Rpb24+WFBhdGg8L3NlY3Rpb24+CisgICAgPGluY2x1ZGVzPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC9wYXJzZXIuaCZndDs8L2luY2x1ZGU+CisgICAgICA8aW5jbHVkZT4mbHQ7bGlieG1sL3hwYXRoLmgmZ3Q7PC9pbmNsdWRlPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC94cGF0aEludGVybmFscy5oJmd0OzwvaW5jbHVkZT4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvdHJlZS5oJmd0OzwvaW5jbHVkZT4KKyAgICA8L2luY2x1ZGVzPgorICAgIDx1c2VzPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzE2MicgZmlsZT0ndHJlZScgbmFtZT0neG1sTm9kZVNldENvbnRlbnQnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxMjcnIGZpbGU9J3RyZWUnIG5hbWU9J3htbERvY0R1bXAnLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9Jzg4JyBmaWxlPSd4cGF0aCcgbmFtZT0neG1sWFBhdGhPYmplY3RQdHInLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc1NicgZmlsZT0neG1sbWVtb3J5JyBuYW1lPSd4bWxNZW1vcnlEdW1wJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTEwJyBmaWxlPSd4cGF0aCcgbmFtZT0neG1sWFBhdGhFdmFsRXhwcmVzc2lvbicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzk1JyBmaWxlPSdwYXJzZXInIG5hbWU9J3htbFBhcnNlRmlsZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzEyMycgZmlsZT0neHBhdGgnIG5hbWU9J3htbFhQYXRoRnJlZU9iamVjdCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzEwMicgZmlsZT0neHBhdGgnIG5hbWU9J3htbFhQYXRoTmV3Q29udGV4dCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzUxJyBmaWxlPSdwYXJzZXInIG5hbWU9J3htbENsZWFudXBQYXJzZXInLz4KKyAgICAgIDxtYWNybyBsaW5lPSc0NScgZmlsZT0neG1sdmVyc2lvbicgbmFtZT0nTElCWE1MX1RFU1RfVkVSU0lPTicvPgorICAgICAgPHR5cGVkZWYgbGluZT0nODcnIGZpbGU9J3hwYXRoJyBuYW1lPSd4bWxYUGF0aENvbnRleHRQdHInLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxMjQnIGZpbGU9J3hwYXRoJyBuYW1lPSd4bWxYUGF0aEZyZWVDb250ZXh0Jy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDEnIGZpbGU9J3BhcnNlcicgbmFtZT0neG1sSW5pdFBhcnNlcicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzEzMScgZmlsZT0ndHJlZScgbmFtZT0neG1sRnJlZURvYycvPgorICAgICAgPGVudW0gbGluZT0nMTgwJyBmaWxlPSd0cmVlJyBuYW1lPSdYTUxfTkFNRVNQQUNFX0RFQ0wnLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9Jzg2JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxEb2NQdHInLz4KKyAgICA8L3VzZXM+CisgIDwvZXhhbXBsZT4KKyAgPGV4YW1wbGUgZmlsZW5hbWU9J3hwYXRoMS5jJz4KKyAgICA8c3lub3BzaXM+RXZhbHVhdGUgWFBhdGggZXhwcmVzc2lvbiBhbmQgcHJpbnRzIHJlc3VsdCBub2RlIHNldC48L3N5bm9wc2lzPgorICAgIDxwdXJwb3NlPlNob3dzIGhvdyB0byBldmFsdWF0ZSBYUGF0aCBleHByZXNzaW9uIGFuZCByZWdpc3RlciBrbm93biBuYW1lc3BhY2VzIGluIFhQYXRoIGNvbnRleHQuPC9wdXJwb3NlPgorICAgIDx1c2FnZT54cGF0aDEgJmx0O3htbC1maWxlJmd0OyAmbHQ7eHBhdGgtZXhwciZndDsgWyZsdDtrbm93bi1ucy1saXN0Jmd0O108L3VzYWdlPgorICAgIDx0ZXN0Pi4veHBhdGgxIHRlc3QzLnhtbCAmYXBvczsvL2NoaWxkMiZhcG9zOyAmZ3Q7IHhwYXRoMS50bXAgOyBkaWZmIHhwYXRoMS50bXAgeHBhdGgxLnJlcyA7IHJtIHhwYXRoMS50bXA8L3Rlc3Q+CisgICAgPGF1dGhvcj5BbGVrc2V5IFNhbmluPC9hdXRob3I+CisgICAgPGNvcHk+c2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLiA8L2NvcHk+CisgICAgPHNlY3Rpb24+WFBhdGg8L3NlY3Rpb24+CisgICAgPGluY2x1ZGVzPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC9wYXJzZXIuaCZndDs8L2luY2x1ZGU+CisgICAgICA8aW5jbHVkZT4mbHQ7bGlieG1sL3hwYXRoLmgmZ3Q7PC9pbmNsdWRlPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC94cGF0aEludGVybmFscy5oJmd0OzwvaW5jbHVkZT4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvdHJlZS5oJmd0OzwvaW5jbHVkZT4KKyAgICA8L2luY2x1ZGVzPgorICAgIDx1c2VzPgorICAgICAgPGVudW0gbGluZT0nMjI5JyBmaWxlPSd0cmVlJyBuYW1lPSdYTUxfRUxFTUVOVF9OT0RFJy8+CisgICAgICA8dHlwZWRlZiBsaW5lPSc4OCcgZmlsZT0neHBhdGgnIG5hbWU9J3htbFhQYXRoT2JqZWN0UHRyJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNTQnIGZpbGU9J3htbG1lbW9yeScgbmFtZT0neG1sTWVtb3J5RHVtcCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzExNycgZmlsZT0neHBhdGgnIG5hbWU9J3htbFhQYXRoRXZhbEV4cHJlc3Npb24nLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc5NCcgZmlsZT0ncGFyc2VyJyBuYW1lPSd4bWxQYXJzZUZpbGUnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxODYnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBuYW1lPSd4bWxYUGF0aFJlZ2lzdGVyTnMnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxMjknIGZpbGU9J3hwYXRoJyBuYW1lPSd4bWxYUGF0aEZyZWVPYmplY3QnLz4KKyAgICAgIDx2YXJpYWJsZSBsaW5lPScxOTMnIGZpbGU9J2dsb2JhbHMnIG5hbWU9J3htbEZyZWUnLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9JzIxOCcgZmlsZT0ndHJlZScgbmFtZT0neG1sTnNQdHInLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxMDEnIGZpbGU9J3hwYXRoJyBuYW1lPSd4bWxYUGF0aE5ld0NvbnRleHQnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc0OScgZmlsZT0ncGFyc2VyJyBuYW1lPSd4bWxDbGVhbnVwUGFyc2VyJy8+CisgICAgICA8bWFjcm8gbGluZT0nNDMnIGZpbGU9J3htbHZlcnNpb24nIG5hbWU9J0xJQlhNTF9URVNUX1ZFUlNJT04nLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9Jzg3JyBmaWxlPSd4cGF0aCcgbmFtZT0neG1sWFBhdGhDb250ZXh0UHRyJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTMwJyBmaWxlPSd4cGF0aCcgbmFtZT0neG1sWFBhdGhGcmVlQ29udGV4dCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzM5JyBmaWxlPSdwYXJzZXInIG5hbWU9J3htbEluaXRQYXJzZXInLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxNTYnIGZpbGU9J3htbHN0cmluZycgbmFtZT0neG1sU3RyZHVwJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTMxJyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxGcmVlRG9jJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTgwJyBmaWxlPSd4bWxzdHJpbmcnIG5hbWU9J3htbFN0cmNocicvPgorICAgICAgPHR5cGVkZWYgbGluZT0nMjA2JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxOb2RlUHRyJy8+CisgICAgICA8dHlwZWRlZiBsaW5lPSc4NicgZmlsZT0ndHJlZScgbmFtZT0neG1sRG9jUHRyJy8+CisgICAgICA8ZW51bSBsaW5lPScyMTcnIGZpbGU9J3RyZWUnIG5hbWU9J1hNTF9OQU1FU1BBQ0VfREVDTCcvPgorICAgIDwvdXNlcz4KKyAgPC9leGFtcGxlPgorICA8ZXhhbXBsZSBmaWxlbmFtZT0ncGFyc2UzLmMnPgorICAgIDxzeW5vcHNpcz5QYXJzZSBhbiBYTUwgZG9jdW1lbnQgaW4gbWVtb3J5IHRvIGEgdHJlZSBhbmQgZnJlZSBpdDwvc3lub3BzaXM+CisgICAgPHB1cnBvc2U+RGVtb25zdHJhdGUgdGhlIHVzZSBvZiB4bWxSZWFkTWVtb3J5KCkgdG8gcmVhZCBhbiBYTUwgZmlsZSBpbnRvIGEgdHJlZSBhbmQgYW5kIHhtbEZyZWVEb2MoKSB0byBmcmVlIHRoZSByZXN1bHRpbmcgdHJlZTwvcHVycG9zZT4KKyAgICA8dXNhZ2U+cGFyc2UzPC91c2FnZT4KKyAgICA8dGVzdD5wYXJzZTM8L3Rlc3Q+CisgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQ8L2F1dGhvcj4KKyAgICA8Y29weT5zZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuIDwvY29weT4KKyAgICA8c2VjdGlvbj5QYXJzaW5nPC9zZWN0aW9uPgorICAgIDxpbmNsdWRlcz4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvdHJlZS5oJmd0OzwvaW5jbHVkZT4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvcGFyc2VyLmgmZ3Q7PC9pbmNsdWRlPgorICAgIDwvaW5jbHVkZXM+CisgICAgPHVzZXM+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMzMnIGZpbGU9J3BhcnNlcicgbmFtZT0neG1sUmVhZE1lbW9yeScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzU4JyBmaWxlPSd4bWxtZW1vcnknIG5hbWU9J3htbE1lbW9yeUR1bXAnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc1NCcgZmlsZT0ncGFyc2VyJyBuYW1lPSd4bWxDbGVhbnVwUGFyc2VyJy8+CisgICAgICA8bWFjcm8gbGluZT0nNDknIGZpbGU9J3htbHZlcnNpb24nIG5hbWU9J0xJQlhNTF9URVNUX1ZFUlNJT04nLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSczOCcgZmlsZT0ndHJlZScgbmFtZT0neG1sRnJlZURvYycvPgorICAgICAgPHR5cGVkZWYgbGluZT0nMjcnIGZpbGU9J3RyZWUnIG5hbWU9J3htbERvY1B0cicvPgorICAgIDwvdXNlcz4KKyAgPC9leGFtcGxlPgorICA8ZXhhbXBsZSBmaWxlbmFtZT0naW8yLmMnPgorICAgIDxzeW5vcHNpcz5PdXRwdXQgdG8gY2hhciBidWZmZXI8L3N5bm9wc2lzPgorICAgIDxwdXJwb3NlPkRlbW9uc3RyYXRlIHRoZSB1c2Ugb2YgeG1sRG9jRHVtcE1lbW9yeSB0byBvdXRwdXQgZG9jdW1lbnQgdG8gYSBjaGFyYWN0ZXIgYnVmZmVyPC9wdXJwb3NlPgorICAgIDx1c2FnZT5pbzI8L3VzYWdlPgorICAgIDx0ZXN0PmlvMiAmZ3Q7IGlvMi50bXAgOyBkaWZmIGlvMi50bXAgaW8yLnJlcyA7IHJtIC1mIGlvMi50bXA8L3Rlc3Q+CisgICAgPGF1dGhvcj5Kb2huIEZsZWNrPC9hdXRob3I+CisgICAgPGNvcHk+c2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLiA8L2NvcHk+CisgICAgPHNlY3Rpb24+SW5wdXRPdXRwdXQ8L3NlY3Rpb24+CisgICAgPGluY2x1ZGVzPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC9wYXJzZXIuaCZndDs8L2luY2x1ZGU+CisgICAgPC9pbmNsdWRlcz4KKyAgICA8dXNlcz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScyOScgZmlsZT0ndHJlZScgbmFtZT0neG1sTm9kZVNldENvbnRlbnQnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSczNicgZmlsZT0ndHJlZScgbmFtZT0neG1sRG9jRHVtcEZvcm1hdE1lbW9yeScvPgorICAgICAgPHZhcmlhYmxlIGxpbmU9JzQyJyBmaWxlPSdnbG9iYWxzJyBuYW1lPSd4bWxGcmVlJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMzAnIGZpbGU9J3RyZWUnIG5hbWU9J3htbERvY1NldFJvb3RFbGVtZW50Jy8+CisgICAgICA8dHlwZWRlZiBsaW5lPScyMCcgZmlsZT0ndHJlZScgbmFtZT0neG1sRG9jUHRyJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDMnIGZpbGU9J3RyZWUnIG5hbWU9J3htbEZyZWVEb2MnLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9JzE5JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxOb2RlUHRyJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMjcnIGZpbGU9J3RyZWUnIG5hbWU9J3htbE5ld0RvYycvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzI4JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxOZXdOb2RlJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSd0cmVlMi5jJz4KKyAgICA8c3lub3BzaXM+Q3JlYXRlcyBhIHRyZWU8L3N5bm9wc2lzPgorICAgIDxwdXJwb3NlPlNob3dzIGhvdyB0byBjcmVhdGUgZG9jdW1lbnQsIG5vZGVzIGFuZCBkdW1wIGl0IHRvIHN0ZG91dCBvciBmaWxlLjwvcHVycG9zZT4KKyAgICA8dXNhZ2U+dHJlZTIgJmx0O2ZpbGVuYW1lJmd0OyAgLURlZmF1bHQgb3V0cHV0OiBzdGRvdXQ8L3VzYWdlPgorICAgIDx0ZXN0PnRyZWUyICZndDsgdHJlZTIudG1wIDsgZGlmZiB0cmVlMi50bXAgdHJlZTIucmVzIDsgcm0gdHJlZTIudG1wPC90ZXN0PgorICAgIDxhdXRob3I+THVjYXMgQnJhc2lsaW5vICZsdDticmFzaWxpbm9AcmVjaWZlLnBlLmdvdi5iciZndDs8L2F1dGhvcj4KKyAgICA8Y29weT5zZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUgPC9jb3B5PgorICAgIDxzZWN0aW9uPlRyZWU8L3NlY3Rpb24+CisgICAgPGluY2x1ZGVzPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC90cmVlLmgmZ3Q7PC9pbmNsdWRlPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC9wYXJzZXIuaCZndDs8L2luY2x1ZGU+CisgICAgPC9pbmNsdWRlcz4KKyAgICA8dXNlcz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc3NScgZmlsZT0ndHJlZScgbmFtZT0neG1sTmV3VGV4dCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzExMCcgZmlsZT0neG1sbWVtb3J5JyBuYW1lPSd4bWxNZW1vcnlEdW1wJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nOTYnIGZpbGU9J3RyZWUnIG5hbWU9J3htbFNhdmVGb3JtYXRGaWxlRW5jJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNzgnIGZpbGU9J3RyZWUnIG5hbWU9J3htbEFkZENoaWxkJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDEnIGZpbGU9J3RyZWUnIG5hbWU9J3htbERvY1NldFJvb3RFbGVtZW50Jy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTA1JyBmaWxlPSdwYXJzZXInIG5hbWU9J3htbENsZWFudXBQYXJzZXInLz4KKyAgICAgIDxtYWNybyBsaW5lPSczNCcgZmlsZT0neG1sdmVyc2lvbicgbmFtZT0nTElCWE1MX1RFU1RfVkVSU0lPTicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzg5JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxOZXdQcm9wJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nODgnIGZpbGU9J3RyZWUnIG5hbWU9J3htbE5ld0NoaWxkJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNzQnIGZpbGU9J3RyZWUnIG5hbWU9J3htbE5ld05vZGUnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc0NicgZmlsZT0ndHJlZScgbmFtZT0neG1sQ3JlYXRlSW50U3Vic2V0Jy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nOTknIGZpbGU9J3RyZWUnIG5hbWU9J3htbEZyZWVEb2MnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSczOScgZmlsZT0ndHJlZScgbmFtZT0neG1sTmV3RG9jJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSdyZWFkZXIxLmMnPgorICAgIDxzeW5vcHNpcz5QYXJzZSBhbiBYTUwgZmlsZSB3aXRoIGFuIHhtbFJlYWRlcjwvc3lub3BzaXM+CisgICAgPHB1cnBvc2U+RGVtb25zdHJhdGUgdGhlIHVzZSBvZiB4bWxSZWFkZXJGb3JGaWxlKCkgdG8gcGFyc2UgYW4gWE1MIGZpbGUgYW5kIGR1bXAgdGhlIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgbm9kZXMgZm91bmQgaW4gdGhlIHByb2Nlc3MuIChOb3RlIHRoYXQgdGhlIFhNTFJlYWRlciBmdW5jdGlvbnMgcmVxdWlyZSBsaWJ4bWwyIHZlcnNpb24gbGF0ZXIgdGhhbiAyLjYuKTwvcHVycG9zZT4KKyAgICA8dXNhZ2U+cmVhZGVyMSAmbHQ7ZmlsZW5hbWUmZ3Q7PC91c2FnZT4KKyAgICA8dGVzdD5yZWFkZXIxIHRlc3QyLnhtbCAmZ3Q7IHJlYWRlcjEudG1wIDsgZGlmZiByZWFkZXIxLnRtcCByZWFkZXIxLnJlcyA7IHJtIHJlYWRlcjEudG1wPC90ZXN0PgorICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkPC9hdXRob3I+CisgICAgPGNvcHk+c2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLiA8L2NvcHk+CisgICAgPHNlY3Rpb24+eG1sUmVhZGVyPC9zZWN0aW9uPgorICAgIDxpbmNsdWRlcz4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwveG1scmVhZGVyLmgmZ3Q7PC9pbmNsdWRlPgorICAgIDwvaW5jbHVkZXM+CisgICAgPHVzZXM+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDQnIGZpbGU9J3htbHN0cmluZycgbmFtZT0neG1sU3RybGVuJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nOTQnIGZpbGU9J3BhcnNlcicgbmFtZT0neG1sQ2xlYW51cFBhcnNlcicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzM3JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJOb2RlVHlwZScvPgorICAgICAgPHR5cGVkZWYgbGluZT0nNTknIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlclB0cicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzk4JyBmaWxlPSd4bWxtZW1vcnknIG5hbWU9J3htbE1lbW9yeUR1bXAnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSczMycgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzM2JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJEZXB0aCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzY5JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbEZyZWVUZXh0UmVhZGVyJy8+CisgICAgICA8bWFjcm8gbGluZT0nODknIGZpbGU9J3htbHZlcnNpb24nIG5hbWU9J0xJQlhNTF9URVNUX1ZFUlNJT04nLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScyOScgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3ROYW1lJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDAnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlckhhc1ZhbHVlJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNjcnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlclJlYWQnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSczOScgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc2MicgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxSZWFkZXJGb3JGaWxlJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnPgorICAgIDxzeW5vcHNpcz51c2UgdmFyaW91cyBBUElzIGZvciB0aGUgeG1sV3JpdGVyPC9zeW5vcHNpcz4KKyAgICA8cHVycG9zZT50ZXN0cyBhIG51bWJlciBvZiBBUElzIGZvciB0aGUgeG1sV3JpdGVyLCBlc3BlY2lhbGx5IHRoZSB2YXJpb3VzIG1ldGhvZHMgdG8gd3JpdGUgdG8gYSBmaWxlbmFtZSwgdG8gYSBtZW1vcnkgYnVmZmVyLCB0byBhIG5ldyBkb2N1bWVudCwgb3IgdG8gYSBzdWJ0cmVlLiBJdCBzaG93cyBob3cgdG8gZG8gZW5jb2Rpbmcgc3RyaW5nIGNvbnZlcnNpb25zIHRvby4gVGhlIHJlc3VsdGluZyBkb2N1bWVudHMgYXJlIHRoZW4gc2VyaWFsaXplZC48L3B1cnBvc2U+CisgICAgPHVzYWdlPnRlc3RXcml0ZXI8L3VzYWdlPgorICAgIDx0ZXN0PnRlc3RXcml0ZXIgOyBmb3IgaSBpbiAxIDIgMyA0IDsgZG8gZGlmZiB3cml0ZXIueG1sIHdyaXRlciQkaS5yZXMgOyBkb25lIDsgcm0gd3JpdGVyKi5yZXM8L3Rlc3Q+CisgICAgPGF1dGhvcj5BbGZyZWQgTWlja2F1dHNjaDwvYXV0aG9yPgorICAgIDxjb3B5PnNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4gPC9jb3B5PgorICAgIDxzZWN0aW9uPnhtbFdyaXRlcjwvc2VjdGlvbj4KKyAgICA8aW5jbHVkZXM+CisgICAgICA8aW5jbHVkZT4mbHQ7bGlieG1sL2VuY29kaW5nLmgmZ3Q7PC9pbmNsdWRlPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC94bWx3cml0ZXIuaCZndDs8L2luY2x1ZGU+CisgICAgPC9pbmNsdWRlcz4KKyAgICA8dXNlcz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc5MTMnIGZpbGU9J3htbHdyaXRlcicgbmFtZT0neG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPScxMTIxJyBmaWxlPSd4bWx3cml0ZXInIG5hbWU9J3htbFRleHRXcml0ZXJFbmREb2N1bWVudCcvPgorICAgICAgPHZhcmlhYmxlIGxpbmU9JzExODMnIGZpbGU9J2dsb2JhbHMnIG5hbWU9J3htbFJlYWxsb2MnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc5MjUnIGZpbGU9J3htbHdyaXRlcicgbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzExNTYnIGZpbGU9J2VuY29kaW5nJyBuYW1lPSd4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcicvPgorICAgICAgPHZhcmlhYmxlIGxpbmU9JzExNjYnIGZpbGU9J2dsb2JhbHMnIG5hbWU9J3htbE1hbGxvYycvPgorICAgICAgPHR5cGVkZWYgbGluZT0nODc5JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxEb2NQdHInLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9JzM0MScgZmlsZT0ndHJlZScgbmFtZT0neG1sQnVmZmVyUHRyJy8+CisgICAgICA8bWFjcm8gbGluZT0nODg1JyBmaWxlPSdwYXJzZXInIG5hbWU9J1hNTF9ERUZBVUxUX1ZFUlNJT04nLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc5MDEnIGZpbGU9J3RyZWUnIG5hbWU9J3htbERvY1NldFJvb3RFbGVtZW50Jy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTEyNycgZmlsZT0neG1sd3JpdGVyJyBuYW1lPSd4bWxGcmVlVGV4dFdyaXRlcicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzEwOTYnIGZpbGU9J3htbHdyaXRlcicgbmFtZT0neG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzM0NycgZmlsZT0ndHJlZScgbmFtZT0neG1sQnVmZmVyQ3JlYXRlJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTExMScgZmlsZT0neG1sd3JpdGVyJyBuYW1lPSd4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzc2JyBmaWxlPSd4bWx3cml0ZXInIG5hbWU9J3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzk1OScgZmlsZT0neG1sd3JpdGVyJyBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Jy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTA3MycgZmlsZT0neG1sd3JpdGVyJyBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50Jy8+CisgICAgICA8dHlwZWRlZiBsaW5lPScxMTUxJyBmaWxlPSdlbmNvZGluZycgbmFtZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzExMzEnIGZpbGU9J3RyZWUnIG5hbWU9J3htbEZyZWVEb2MnLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9Jzg4MCcgZmlsZT0ndHJlZScgbmFtZT0neG1sTm9kZVB0cicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzk0OScgZmlsZT0neG1sd3JpdGVyJyBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc2MzInIGZpbGU9J3htbHdyaXRlcicgbmFtZT0neG1sTmV3VGV4dFdyaXRlckRvYycvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzg5NCcgZmlsZT0ndHJlZScgbmFtZT0neG1sTmV3RG9jTm9kZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzExMjknIGZpbGU9J3RyZWUnIG5hbWU9J3htbFNhdmVGaWxlRW5jJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nOTA0JyBmaWxlPSd4bWx3cml0ZXInIG5hbWU9J3htbE5ld1RleHRXcml0ZXJUcmVlJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMzU1JyBmaWxlPSd4bWx3cml0ZXInIG5hbWU9J3htbE5ld1RleHRXcml0ZXJNZW1vcnknLz4KKyAgICAgIDx2YXJpYWJsZSBsaW5lPScxMTgwJyBmaWxlPSdnbG9iYWxzJyBuYW1lPSd4bWxGcmVlJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNjEzJyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxCdWZmZXJGcmVlJy8+CisgICAgICA8dHlwZWRlZiBsaW5lPSc4NzgnIGZpbGU9J3htbHdyaXRlcicgbmFtZT0neG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzExMDMnIGZpbGU9J3htbHdyaXRlcicgbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzg4NScgZmlsZT0ndHJlZScgbmFtZT0neG1sTmV3RG9jJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSdwYXJzZTQuYyc+CisgICAgPHN5bm9wc2lzPlBhcnNlIGFuIFhNTCBkb2N1bWVudCBjaHVuayBieSBjaHVuayB0byBhIHRyZWUgYW5kIGZyZWUgaXQ8L3N5bm9wc2lzPgorICAgIDxwdXJwb3NlPkRlbW9uc3RyYXRlIHRoZSB1c2Ugb2YgeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoKSBhbmQgeG1sUGFyc2VDaHVuaygpIHRvIHJlYWQgYW4gWE1MIGZpbGUgcHJvZ3Jlc3NpdmVseSBpbnRvIGEgdHJlZSBhbmQgYW5kIHhtbEZyZWVEb2MoKSB0byBmcmVlIHRoZSByZXN1bHRpbmcgdHJlZTwvcHVycG9zZT4KKyAgICA8dXNhZ2U+cGFyc2U0IHRlc3QzLnhtbDwvdXNhZ2U+CisgICAgPHRlc3Q+cGFyc2U0IHRlc3QzLnhtbDwvdGVzdD4KKyAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZDwvYXV0aG9yPgorICAgIDxjb3B5PnNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4gPC9jb3B5PgorICAgIDxzZWN0aW9uPlBhcnNpbmc8L3NlY3Rpb24+CisgICAgPGluY2x1ZGVzPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC90cmVlLmgmZ3Q7PC9pbmNsdWRlPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC9wYXJzZXIuaCZndDs8L2luY2x1ZGU+CisgICAgPC9pbmNsdWRlcz4KKyAgICA8dXNlcz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc5NCcgZmlsZT0ncGFyc2VyJyBuYW1lPSd4bWxGcmVlUGFyc2VyQ3R4dCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzg2JyBmaWxlPSdwYXJzZXInIG5hbWU9J3htbFBhcnNlQ2h1bmsnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc2NycgZmlsZT0ncGFyc2VyJyBuYW1lPSd4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCcvPgorICAgICAgPHR5cGVkZWYgbGluZT0nNDUnIGZpbGU9J3RyZWUnIG5hbWU9J3htbFBhcnNlckN0eHRQdHInLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9JzQ3JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxEb2NQdHInLz4KKyAgICA8L3VzZXM+CisgIDwvZXhhbXBsZT4KKyAgPGV4YW1wbGUgZmlsZW5hbWU9J3JlYWRlcjMuYyc+CisgICAgPHN5bm9wc2lzPlNob3cgaG93IHRvIGV4dHJhY3Qgc3ViZG9jdW1lbnRzIHdpdGggeG1sUmVhZGVyPC9zeW5vcHNpcz4KKyAgICA8cHVycG9zZT5EZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4oKSB0byBwYXJzZSBhbiBYTUwgZmlsZSB3aXRoIHRoZSB4bWxSZWFkZXIgd2hpbGUgY29sbGVjdGluZyBvbmx5IHNvbWUgc3VicGFydHMgb2YgdGhlIGRvY3VtZW50LiAoTm90ZSB0aGF0IHRoZSBYTUxSZWFkZXIgZnVuY3Rpb25zIHJlcXVpcmUgbGlieG1sMiB2ZXJzaW9uIGxhdGVyIHRoYW4gMi42Lik8L3B1cnBvc2U+CisgICAgPHVzYWdlPnJlYWRlcjM8L3VzYWdlPgorICAgIDx0ZXN0PnJlYWRlcjMgJmd0OyByZWFkZXIzLnRtcCA7IGRpZmYgcmVhZGVyMy50bXAgcmVhZGVyMy5yZXMgOyBybSByZWFkZXIzLnRtcDwvdGVzdD4KKyAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZDwvYXV0aG9yPgorICAgIDxjb3B5PnNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4gPC9jb3B5PgorICAgIDxzZWN0aW9uPnhtbFJlYWRlcjwvc2VjdGlvbj4KKyAgICA8aW5jbHVkZXM+CisgICAgICA8aW5jbHVkZT4mbHQ7bGlieG1sL3htbHJlYWRlci5oJmd0OzwvaW5jbHVkZT4KKyAgICA8L2luY2x1ZGVzPgorICAgIDx1c2VzPgorICAgICAgPHR5cGVkZWYgbGluZT0nMzInIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlclB0cicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzY2JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbEZyZWVUZXh0UmVhZGVyJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nOTYnIGZpbGU9J3RyZWUnIG5hbWU9J3htbERvY0R1bXAnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc1MicgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxUZXh0UmVhZGVyUmVhZCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzYyJyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJDdXJyZW50RG9jJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDMnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzM4JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFJlYWRlckZvckZpbGUnLz4KKyAgICA8L3VzZXM+CisgIDwvZXhhbXBsZT4KKyAgPGV4YW1wbGUgZmlsZW5hbWU9J2lvMS5jJz4KKyAgICA8c3lub3BzaXM+RXhhbXBsZSBvZiBjdXN0b20gSW5wdXQvT3V0cHV0PC9zeW5vcHNpcz4KKyAgICA8cHVycG9zZT5EZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MgdG8gYnVpbGQgYSBjdXN0b20gSS9PIGxheWVyLCB0aGlzIGlzIHVzZWQgaW4gYW4gWEluY2x1ZGUgbWV0aG9kIGNvbnRleHQgdG8gc2hvdyBob3cgZHluYW1pYyBkb2N1bWVudCBjYW4gYmUgYnVpbHQgaW4gYSBjbGVhbiB3YXkuPC9wdXJwb3NlPgorICAgIDx1c2FnZT5pbzE8L3VzYWdlPgorICAgIDx0ZXN0PmlvMSAmZ3Q7IGlvMS50bXAgOyBkaWZmIGlvMS50bXAgaW8xLnJlcyA7IHJtIC1mIGlvMS50bXA8L3Rlc3Q+CisgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQ8L2F1dGhvcj4KKyAgICA8Y29weT5zZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuIDwvY29weT4KKyAgICA8c2VjdGlvbj5JbnB1dE91dHB1dDwvc2VjdGlvbj4KKyAgICA8aW5jbHVkZXM+CisgICAgICA8aW5jbHVkZT4mbHQ7bGlieG1sL3BhcnNlci5oJmd0OzwvaW5jbHVkZT4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwveG1sSU8uaCZndDs8L2luY2x1ZGU+CisgICAgICA8aW5jbHVkZT4mbHQ7bGlieG1sL3hpbmNsdWRlLmgmZ3Q7PC9pbmNsdWRlPgorICAgICAgPGluY2x1ZGU+Jmx0O2xpYnhtbC90cmVlLmgmZ3Q7PC9pbmNsdWRlPgorICAgIDwvaW5jbHVkZXM+CisgICAgPHVzZXM+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTQzJyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxEb2NEdW1wJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTM0JyBmaWxlPSd4aW5jbHVkZScgbmFtZT0neG1sWEluY2x1ZGVQcm9jZXNzJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMTE3JyBmaWxlPSd4bWxJTycgbmFtZT0neG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcycvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzEyNCcgZmlsZT0ncGFyc2VyJyBuYW1lPSd4bWxSZWFkTWVtb3J5Jy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSdwYXJzZTEuYyc+CisgICAgPHN5bm9wc2lzPlBhcnNlIGFuIFhNTCBmaWxlIHRvIGEgdHJlZSBhbmQgZnJlZSBpdDwvc3lub3BzaXM+CisgICAgPHB1cnBvc2U+RGVtb25zdHJhdGUgdGhlIHVzZSBvZiB4bWxSZWFkRmlsZSgpIHRvIHJlYWQgYW4gWE1MIGZpbGUgaW50byBhIHRyZWUgYW5kIGFuZCB4bWxGcmVlRG9jKCkgdG8gZnJlZSB0aGUgcmVzdWx0aW5nIHRyZWU8L3B1cnBvc2U+CisgICAgPHVzYWdlPnBhcnNlMSB0ZXN0MS54bWw8L3VzYWdlPgorICAgIDx0ZXN0PnBhcnNlMSB0ZXN0MS54bWw8L3Rlc3Q+CisgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQ8L2F1dGhvcj4KKyAgICA8Y29weT5zZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuIDwvY29weT4KKyAgICA8c2VjdGlvbj5QYXJzaW5nPC9zZWN0aW9uPgorICAgIDxpbmNsdWRlcz4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvdHJlZS5oJmd0OzwvaW5jbHVkZT4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvcGFyc2VyLmgmZ3Q7PC9pbmNsdWRlPgorICAgIDwvaW5jbHVkZXM+CisgICAgPHVzZXM+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMjYnIGZpbGU9J3BhcnNlcicgbmFtZT0neG1sUmVhZEZpbGUnLz4KKyAgICA8L3VzZXM+CisgIDwvZXhhbXBsZT4KKyAgPGV4YW1wbGUgZmlsZW5hbWU9J3RyZWUxLmMnPgorICAgIDxzeW5vcHNpcz5OYXZpZ2F0ZXMgYSB0cmVlIHRvIHByaW50IGVsZW1lbnQgbmFtZXM8L3N5bm9wc2lzPgorICAgIDxwdXJwb3NlPlBhcnNlIGEgZmlsZSB0byBhIHRyZWUsIHVzZSB4bWxEb2NHZXRSb290RWxlbWVudCgpIHRvIGdldCB0aGUgcm9vdCBlbGVtZW50LCB0aGVuIHdhbGsgdGhlIGRvY3VtZW50IGFuZCBwcmludCBhbGwgdGhlIGVsZW1lbnQgbmFtZSBpbiBkb2N1bWVudCBvcmRlci48L3B1cnBvc2U+CisgICAgPHVzYWdlPnRyZWUxIGZpbGVuYW1lX29yX1VSTDwvdXNhZ2U+CisgICAgPHRlc3Q+dHJlZTEgdGVzdDIueG1sICZndDsgdHJlZTEudG1wIDsgZGlmZiB0cmVlMS50bXAgdHJlZTEucmVzIDsgcm0gdHJlZTEudG1wPC90ZXN0PgorICAgIDxhdXRob3I+RG9kamkgU2VrZXRlbGk8L2F1dGhvcj4KKyAgICA8Y29weT5zZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuIDwvY29weT4KKyAgICA8c2VjdGlvbj5UcmVlPC9zZWN0aW9uPgorICAgIDxpbmNsdWRlcz4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvdHJlZS5oJmd0OzwvaW5jbHVkZT4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvcGFyc2VyLmgmZ3Q7PC9pbmNsdWRlPgorICAgIDwvaW5jbHVkZXM+CisgICAgPHVzZXM+CisgICAgICA8ZW51bSBsaW5lPSczNicgZmlsZT0ndHJlZScgbmFtZT0nWE1MX0VMRU1FTlRfTk9ERScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9Jzc0JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxEb2NHZXRSb290RWxlbWVudCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzY3JyBmaWxlPSdwYXJzZXInIG5hbWU9J3htbFJlYWRGaWxlJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSdyZWFkZXI0LmMnPgorICAgIDxzeW5vcHNpcz5QYXJzZSBtdWx0aXBsZSBYTUwgZmlsZXMgcmV1c2luZyBhbiB4bWxSZWFkZXI8L3N5bm9wc2lzPgorICAgIDxwdXJwb3NlPkRlbW9uc3RyYXRlIHRoZSB1c2Ugb2YgeG1sUmVhZGVyRm9yRmlsZSgpIGFuZCB4bWxSZWFkZXJOZXdGaWxlIHRvIHBhcnNlIFhNTCBmaWxlcyB3aGlsZSByZXVzaW5nIHRoZSByZWFkZXIgb2JqZWN0IGFuZCBwYXJzZXIgY29udGV4dC4gIChOb3RlIHRoYXQgdGhlIFhNTFJlYWRlciBmdW5jdGlvbnMgcmVxdWlyZSBsaWJ4bWwyIHZlcnNpb24gbGF0ZXIgdGhhbiAyLjYuKTwvcHVycG9zZT4KKyAgICA8dXNhZ2U+cmVhZGVyNCAmbHQ7ZmlsZW5hbWUmZ3Q7IFsgZmlsZW5hbWUgLi4uIF08L3VzYWdlPgorICAgIDx0ZXN0PnJlYWRlcjQgdGVzdDEueG1sIHRlc3QyLnhtbCB0ZXN0My54bWwgJmd0OyByZWFkZXI0LnRtcCA7IGRpZmYgcmVhZGVyNC50bXAgcmVhZGVyNC5yZXMgOyBybSByZWFkZXI0LnRtcDwvdGVzdD4KKyAgICA8YXV0aG9yPkdyYWhhbSBCZW5uZXR0PC9hdXRob3I+CisgICAgPGNvcHk+c2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLiA8L2NvcHk+CisgICAgPHNlY3Rpb24+eG1sUmVhZGVyPC9zZWN0aW9uPgorICAgIDxpbmNsdWRlcz4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwveG1scmVhZGVyLmgmZ3Q7PC9pbmNsdWRlPgorICAgIDwvaW5jbHVkZXM+CisgICAgPHVzZXM+CisgICAgICA8dHlwZWRlZiBsaW5lPSc1NCcgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxUZXh0UmVhZGVyUHRyJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nODMnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sUmVhZGVyTmV3RmlsZScvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzEwNCcgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxGcmVlVGV4dFJlYWRlcicvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzI2JyBmaWxlPSd4bWxyZWFkZXInIG5hbWU9J3htbFRleHRSZWFkZXJSZWFkJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nOTcnIGZpbGU9J3htbHJlYWRlcicgbmFtZT0neG1sVGV4dFJlYWRlckN1cnJlbnREb2MnLz4KKyAgICAgIDxmdW5jdGlvbiBsaW5lPSc3MicgZmlsZT0neG1scmVhZGVyJyBuYW1lPSd4bWxSZWFkZXJGb3JGaWxlJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxleGFtcGxlIGZpbGVuYW1lPSdwYXJzZTIuYyc+CisgICAgPHN5bm9wc2lzPlBhcnNlIGFuZCB2YWxpZGF0ZSBhbiBYTUwgZmlsZSB0byBhIHRyZWUgYW5kIGZyZWUgdGhlIHJlc3VsdDwvc3lub3BzaXM+CisgICAgPHB1cnBvc2U+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGFuIFhNTCBmaWxlLCB0aGVuIHBhcnNlIGFuZCB2YWxpZGF0ZSB0aGUgZmlsZSwgY3JlYXRpbmcgYSB0cmVlLCBjaGVjayB0aGUgdmFsaWRhdGlvbiByZXN1bHQgYW5kIHhtbEZyZWVEb2MoKSB0byBmcmVlIHRoZSByZXN1bHRpbmcgdHJlZS48L3B1cnBvc2U+CisgICAgPHVzYWdlPnBhcnNlMiB0ZXN0Mi54bWw8L3VzYWdlPgorICAgIDx0ZXN0PnBhcnNlMiB0ZXN0Mi54bWw8L3Rlc3Q+CisgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQ8L2F1dGhvcj4KKyAgICA8Y29weT5zZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuIDwvY29weT4KKyAgICA8c2VjdGlvbj5QYXJzaW5nPC9zZWN0aW9uPgorICAgIDxpbmNsdWRlcz4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvdHJlZS5oJmd0OzwvaW5jbHVkZT4KKyAgICAgIDxpbmNsdWRlPiZsdDtsaWJ4bWwvcGFyc2VyLmgmZ3Q7PC9pbmNsdWRlPgorICAgIDwvaW5jbHVkZXM+CisgICAgPHVzZXM+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nNDcnIGZpbGU9J3BhcnNlcicgbmFtZT0neG1sRnJlZVBhcnNlckN0eHQnLz4KKyAgICAgIDxlbnVtIGxpbmU9JzM1JyBmaWxlPSdwYXJzZXInIG5hbWU9J1hNTF9QQVJTRV9EVERWQUxJRCcvPgorICAgICAgPGZ1bmN0aW9uIGxpbmU9JzI5JyBmaWxlPSdwYXJzZXInIG5hbWU9J3htbE5ld1BhcnNlckN0eHQnLz4KKyAgICAgIDx0eXBlZGVmIGxpbmU9JzI1JyBmaWxlPSd0cmVlJyBuYW1lPSd4bWxQYXJzZXJDdHh0UHRyJy8+CisgICAgICA8ZnVuY3Rpb24gbGluZT0nMzUnIGZpbGU9J3BhcnNlcicgbmFtZT0neG1sQ3R4dFJlYWRGaWxlJy8+CisgICAgPC91c2VzPgorICA8L2V4YW1wbGU+CisgIDxzeW1ib2xzPgorICAgIDxzeW1ib2wgbmFtZT0nTElCWE1MX1RFU1RfVkVSU0lPTic+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncGFyc2UzLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0nWE1MX0RFRkFVTFRfVkVSU0lPTic+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J1hNTF9FTEVNRU5UX05PREUnPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgxLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUxLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J1hNTF9OQU1FU1BBQ0VfREVDTCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgxLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J1hNTF9QQVJTRV9EVERBVFRSJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0nWE1MX1BBUlNFX0RURFZBTElEJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncGFyc2UyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J1hNTF9QQVJTRV9OT0VOVCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbEFkZENoaWxkJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbEJ1ZmZlckNyZWF0ZSc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbEJ1ZmZlckZyZWUnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxCdWZmZXJQdHInPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sQ2xlYW51cFBhcnNlcic+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncGFyc2UzLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sQ3JlYXRlSW50U3Vic2V0Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3BhcnNlNC5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxDdHh0UmVhZEZpbGUnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncGFyc2UyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbERvY0R1bXAnPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjMuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0naW8xLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbERvY0R1bXBGb3JtYXRNZW1vcnknPgorICAgICAgPHJlZiBmaWxlbmFtZT0naW8yLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbERvY0dldFJvb3RFbGVtZW50Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUxLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbERvY1B0cic+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgxLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3BhcnNlMy5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdpbzIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdwYXJzZTQuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sRG9jU2V0Um9vdEVsZW1lbnQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0naW8yLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXInPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxGcmVlJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMS5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdpbzIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxGcmVlRG9jJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncGFyc2UzLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J2lvMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0cmVlMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbEZyZWVQYXJzZXJDdHh0Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3BhcnNlNC5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdwYXJzZTIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sRnJlZVRleHRSZWFkZXInPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIxLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjMuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyNC5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxGcmVlVGV4dFdyaXRlcic+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbEluaXRQYXJzZXInPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxNYWxsb2MnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxNZW1vcnlEdW1wJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMS5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdwYXJzZTMuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndHJlZTIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxOZXdDaGlsZCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0cmVlMi5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxOZXdEb2MnPgorICAgICAgPHJlZiBmaWxlbmFtZT0naW8yLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sTmV3RG9jTm9kZSc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbE5ld05vZGUnPgorICAgICAgPHJlZiBmaWxlbmFtZT0naW8yLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3RyZWUyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbE5ld1BhcnNlckN0eHQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncGFyc2UyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbE5ld1Byb3AnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndHJlZTIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sTmV3VGV4dCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0cmVlMi5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxOZXdUZXh0V3JpdGVyRG9jJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sTmV3VGV4dFdyaXRlck1lbW9yeSc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbE5ld1RleHRXcml0ZXJUcmVlJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sTm9kZVB0cic+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0naW8yLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sTm9kZVNldENvbnRlbnQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J2lvMi5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxOc1B0cic+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sUGFyc2VDaHVuayc+CisgICAgICA8cmVmIGZpbGVuYW1lPSdwYXJzZTQuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sUGFyc2VGaWxlJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sUGFyc2VyQ3R4dFB0cic+CisgICAgICA8cmVmIGZpbGVuYW1lPSdwYXJzZTQuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncGFyc2UyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFJlYWRGaWxlJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3BhcnNlMS5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0cmVlMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxSZWFkTWVtb3J5Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3BhcnNlMy5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdpbzEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sUmVhZGVyRm9yRmlsZSc+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjEuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMy5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXI0LmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFJlYWRlck5ld0ZpbGUnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyNC5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxSZWFsbG9jJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyc+CisgICAgICA8cmVmIGZpbGVuYW1lPSdpbzEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sU2F2ZUZpbGVFbmMnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxTYXZlRm9ybWF0RmlsZUVuYyc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0cmVlMi5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxTdHJjaHInPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgxLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFN0cmR1cCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sU3RybGVuJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3ROYW1lJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZSc+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFJlYWRlckN1cnJlbnREb2MnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMy5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXI0LmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFRleHRSZWFkZXJEZXB0aCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFJlYWRlckhhc1ZhbHVlJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIxLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFRleHRSZWFkZXJJc1ZhbGlkJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFJlYWRlck5vZGVUeXBlJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjMuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFJlYWRlclB0cic+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjEuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMy5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXI0LmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFRleHRSZWFkZXJSZWFkJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0ncmVhZGVyMS5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSdyZWFkZXIzLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3JlYWRlcjQuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFdyaXRlckVuZERvY3VtZW50Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFdyaXRlckVuZEVsZW1lbnQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxUZXh0V3JpdGVyUHRyJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0ndGVzdFdyaXRlci5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Jz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd0ZXN0V3JpdGVyLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFhJbmNsdWRlUHJvY2Vzcyc+CisgICAgICA8cmVmIGZpbGVuYW1lPSdpbzEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sWFBhdGhDb250ZXh0UHRyJz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMi5jJy8+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgIDwvc3ltYm9sPgorICAgIDxzeW1ib2wgbmFtZT0neG1sWFBhdGhFdmFsRXhwcmVzc2lvbic+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgxLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFhQYXRoRnJlZUNvbnRleHQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxYUGF0aEZyZWVPYmplY3QnPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxYUGF0aE5ld0NvbnRleHQnPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxyZWYgZmlsZW5hbWU9J3hwYXRoMS5jJy8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBuYW1lPSd4bWxYUGF0aE9iamVjdFB0cic+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDIuYycvPgorICAgICAgPHJlZiBmaWxlbmFtZT0neHBhdGgxLmMnLz4KKyAgICA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIG5hbWU9J3htbFhQYXRoUmVnaXN0ZXJOcyc+CisgICAgICA8cmVmIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgIDwvc3ltYm9sPgorICA8L3N5bWJvbHM+CisgIDxzZWN0aW9ucz4KKyAgICA8c2VjdGlvbiBuYW1lPSdJbnB1dE91dHB1dCc+CisgICAgICA8ZXhhbXBsZSBmaWxlbmFtZT0naW8yLmMnLz4KKyAgICAgIDxleGFtcGxlIGZpbGVuYW1lPSdpbzEuYycvPgorICAgIDwvc2VjdGlvbj4KKyAgICA8c2VjdGlvbiBuYW1lPSdQYXJzaW5nJz4KKyAgICAgIDxleGFtcGxlIGZpbGVuYW1lPSdwYXJzZTMuYycvPgorICAgICAgPGV4YW1wbGUgZmlsZW5hbWU9J3BhcnNlNC5jJy8+CisgICAgICA8ZXhhbXBsZSBmaWxlbmFtZT0ncGFyc2UxLmMnLz4KKyAgICAgIDxleGFtcGxlIGZpbGVuYW1lPSdwYXJzZTIuYycvPgorICAgIDwvc2VjdGlvbj4KKyAgICA8c2VjdGlvbiBuYW1lPSdUcmVlJz4KKyAgICAgIDxleGFtcGxlIGZpbGVuYW1lPSd0cmVlMi5jJy8+CisgICAgICA8ZXhhbXBsZSBmaWxlbmFtZT0ndHJlZTEuYycvPgorICAgIDwvc2VjdGlvbj4KKyAgICA8c2VjdGlvbiBuYW1lPSdYUGF0aCc+CisgICAgICA8ZXhhbXBsZSBmaWxlbmFtZT0neHBhdGgyLmMnLz4KKyAgICAgIDxleGFtcGxlIGZpbGVuYW1lPSd4cGF0aDEuYycvPgorICAgIDwvc2VjdGlvbj4KKyAgICA8c2VjdGlvbiBuYW1lPSd4bWxSZWFkZXInPgorICAgICAgPGV4YW1wbGUgZmlsZW5hbWU9J3JlYWRlcjIuYycvPgorICAgICAgPGV4YW1wbGUgZmlsZW5hbWU9J3JlYWRlcjEuYycvPgorICAgICAgPGV4YW1wbGUgZmlsZW5hbWU9J3JlYWRlcjMuYycvPgorICAgICAgPGV4YW1wbGUgZmlsZW5hbWU9J3JlYWRlcjQuYycvPgorICAgIDwvc2VjdGlvbj4KKyAgICA8c2VjdGlvbiBuYW1lPSd4bWxXcml0ZXInPgorICAgICAgPGV4YW1wbGUgZmlsZW5hbWU9J3Rlc3RXcml0ZXIuYycvPgorICAgIDwvc2VjdGlvbj4KKyAgPC9zZWN0aW9ucz4KKzwvZXhhbXBsZXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9leGFtcGxlcy54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9leGFtcGxlcy54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRhYWFhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2V4YW1wbGVzLnhzbApAQCAtMCwwICsxLDE3NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIgorICB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgeG1sbnM6ZXhzbD0iaHR0cDovL2V4c2x0Lm9yZy9jb21tb24iCisgIGV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJleHNsIgorICBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcz0iZXhzbCI+CisKKyAgPHhzbDppbXBvcnQgaHJlZj0iLi4vc2l0ZS54c2wiLz4KKworICA8eHNsOnZhcmlhYmxlIG5hbWU9ImhyZWZfYmFzZSI+Li4vPC94c2w6dmFyaWFibGU+CisgIDx4c2w6dmFyaWFibGUgbmFtZT0ibWVudV9uYW1lIj5FeGFtcGxlcyBNZW51PC94c2w6dmFyaWFibGU+CisKKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0b2MiPgorICAgIDxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIKKyAgICAgICAgICBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij4KKyAgICAgIDxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiLz4KKyAgICAgIDxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iLz4KKyAgICA8L2Zvcm0+CisgICAgPHVsPjwhLS0gc3R5bGU9Im1hcmdpbi1sZWZ0OiAtMWVtIiAtLT4KKyAgICAgIDxsaT48YSBocmVmPSJ7JGhyZWZfYmFzZX1pbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+CisgICAgICA8bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIAorICAgICAgICAgICAgIGhyZWY9InskaHJlZl9iYXNlfWRvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT4KKyAgICAgIDxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgCisgICAgICAgICAgICAgaHJlZj0ieyRocmVmX2Jhc2V9aHRtbC9pbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPgorICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii9leGFtcGxlcy9zZWN0aW9ucy9zZWN0aW9uIj4KKyAgICAgICAgPGxpPjxhIGhyZWY9IiN7QG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4gRXhhbXBsZXM8L2E+PC9saT4KKyAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgPGxpPjxhIGhyZWY9InskaHJlZl9iYXNlfWd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT4KKyAgICA8L3VsPgorICA8L3hzbDp2YXJpYWJsZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJpbmNsdWRlIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImhlYWRlciIgc2VsZWN0PSJzdWJzdHJpbmctYmVmb3JlKHN1YnN0cmluZy1hZnRlciguLCAnLycpLCAnJmd0OycpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJkb2MiIHNlbGVjdD0iY29uY2F0KCcuLi9odG1sL2xpYnhtbC0nLCAkaGVhZGVyLCAndG1sJykiLz4KKyAgICA8bGk+PGEgaHJlZj0ieyRkb2N9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvYT48L2xpPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0eXBlZGVmIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImhlYWRlciIgc2VsZWN0PSJjb25jYXQoQGZpbGUsICcuaCcpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJkb2MiIHNlbGVjdD0iY29uY2F0KCcuLi9odG1sL2xpYnhtbC0nLCBAZmlsZSwgJy5odG1sIycsICRuYW1lKSIvPgorICAgIDxsaT4gbGluZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGxpbmUiLz46IFR5cGUgPGEgaHJlZj0ieyRkb2N9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+IGZyb20gPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRoZWFkZXIiLz48L2xpPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmdW5jdGlvbiI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJoZWFkZXIiIHNlbGVjdD0iY29uY2F0KEBmaWxlLCAnLmgnKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZG9jIiBzZWxlY3Q9ImNvbmNhdCgnLi4vaHRtbC9saWJ4bWwtJywgQGZpbGUsICcuaHRtbCMnLCAkbmFtZSkiLz4KKyAgICA8bGk+IGxpbmUgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBsaW5lIi8+OiBGdW5jdGlvbiA8YSBocmVmPSJ7JGRvY30iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvYT4gZnJvbSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGhlYWRlciIvPjwvbGk+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1hY3JvIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImhlYWRlciIgc2VsZWN0PSJjb25jYXQoQGZpbGUsICcuaCcpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJkb2MiIHNlbGVjdD0iY29uY2F0KCcuLi9odG1sL2xpYnhtbC0nLCBAZmlsZSwgJy5odG1sIycsICRuYW1lKSIvPgorICAgIDxsaT4gbGluZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGxpbmUiLz46IE1hY3JvIDxhIGhyZWY9InskZG9jfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9hPiBmcm9tIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkaGVhZGVyIi8+PC9saT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZXhhbXBsZSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaWxlbmFtZSIgc2VsZWN0PSJzdHJpbmcoQGZpbGVuYW1lKSIvPgorICAgIDxoMz48YSBuYW1lPSJ7JGZpbGVuYW1lfSIgaHJlZj0ieyRmaWxlbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZmlsZW5hbWUiLz48L2E+OiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3lub3BzaXMiLz48L2gzPgorICAgIDxwPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJwdXJwb3NlIi8+PC9wPgorICAgIDxwPkluY2x1ZGVzOjwvcD4KKyAgICA8dWw+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImluY2x1ZGVzL2luY2x1ZGUiPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PScuJy8+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgPC91bD4KKyAgICA8cD5Vc2VzOjwvcD4KKyAgICA8dWw+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9InVzZXMvKiI+CisgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbGluZSIgZGF0YS10eXBlPSJudW1iZXIiLz4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0nLicvPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDwvdWw+CisgICAgPHA+VXNhZ2U6PC9wPgorICAgIDxwPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ1c2FnZSIvPjwvcD4KKyAgICA8cD5BdXRob3I6IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJhdXRob3IiLz48L3A+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InNlY3Rpb24iPgorICAgIDxsaT48cD4gPGEgaHJlZj0iI3tAbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT4gOjwvcD4KKyAgICA8dWw+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImV4YW1wbGUiPgorICAgICAgPHhzbDpzb3J0IHNlbGVjdD0nLicvPgorICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaWxlbmFtZSIgc2VsZWN0PSJAZmlsZW5hbWUiLz4KKyAgICAgIDxsaT4gPGEgaHJlZj0iI3skZmlsZW5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGZpbGVuYW1lIi8+PC9hPjogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii9leGFtcGxlcy9leGFtcGxlW0BmaWxlbmFtZSA9ICRmaWxlbmFtZV0vc3lub3BzaXMiLz48L2xpPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDwvdWw+CisgICAgPC9saT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ic2VjdGlvbnMiPgorICAgIDxwPiBUaGUgZXhhbXBsZXMgYXJlIHN0b3JlZCBwZXIgc2VjdGlvbiBkZXBlbmRpbmcgb24gdGhlIG1haW4gZm9jdXMKKyAgICBvZiB0aGUgZXhhbXBsZTo8L3A+CisgICAgPHVsPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJzZWN0aW9uIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9Jy4nLz4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0nLicvPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDwvdWw+CisgICAgPHA+IEdldHRpbmcgdGhlIGNvbXBpbGF0aW9uIG9wdGlvbnMgYW5kIGxpYnJhcmllcyBkZXBlbmRhbmNpZXMgbmVlZGVkCit0byBnZW5lcmF0ZSBiaW5hcmllcyBmcm9tIHRoZSBleGFtcGxlcyBpcyBiZXN0IGRvbmUgb24gTGludXgvVW5peCBieSB1c2luZwordGhlIHhtbDItY29uZmlnIHNjcmlwdCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIGluc3RhbGxlZCBhcyBwYXJ0IG9mIDxpPm1ha2UKK2luc3RhbGw8L2k+IHN0ZXAgb3Igd2hlbiBpbnN0YWxsaW5nIHRoZSBsaWJ4bWwyIGRldmVsb3BtZW50IHBhY2thZ2U6PC9wPgorPHByZT5nY2MgLW8gZXhhbXBsZSBgeG1sMi1jb25maWcgLS1jZmxhZ3NgIGV4YW1wbGUuYyBgeG1sMi1jb25maWcgLS1saWJzYDwvcHJlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG5hbWU9InNlY3Rpb25zLWxpc3QiPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJzZWN0aW9ucy9zZWN0aW9uIj4KKyAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ic2VjdGlvbiIgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPGgyPiA8YSBuYW1lPSJ7JHNlY3Rpb259Ij48L2E+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRzZWN0aW9uIi8+IEV4YW1wbGVzPC9oMj4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0nL2V4YW1wbGVzL2V4YW1wbGVbc2VjdGlvbiA9ICRzZWN0aW9uXScvPgorICAgIDwveHNsOmZvci1lYWNoPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJleGFtcGxlcyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0aXRsZSI+TGlieG1sMiBzZXQgb2YgZXhhbXBsZXM8L3hzbDp2YXJpYWJsZT4KKyAgICAgPHhzbDpkb2N1bWVudCBocmVmPSJpbmRleC5odG1sIiBtZXRob2Q9InhtbCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiCisgICAgICAgICBkb2N0eXBlLXB1YmxpYz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJPHhzbDplbGVtZW50IG5hbWU9InRpdGxlIj4KKwkgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz4KKwk8L3hzbDplbGVtZW50PgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiMwMDAwMDAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGl0bGVib3giPgorCSAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiIHNlbGVjdD0iJHRpdGxlIi8+CisJICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRvYyIvPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorCQkJCSAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJzZWN0aW9ucyIvPgorCQkJCQk8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic2VjdGlvbnMtbGlzdCIvPgorCQkJCQk8cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICAgIDwvaHRtbD4KKyAgICA8L3hzbDpkb2N1bWVudD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9pbmRleC5weSBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2luZGV4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjExZGY2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9pbmRleC5weQpAQCAtMCwwICsxLDI5OCBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKKyMgSW5kZXhlcyB0aGUgZXhhbXBsZXMgYW5kIGJ1aWxkIGFuIFhNTCBkZXNjcmlwdGlvbgorIworaW1wb3J0IHN0cmluZworaW1wb3J0IGdsb2IKK2ltcG9ydCBzeXMKK3RyeToKKyAgICBpbXBvcnQgbGlieG1sMgorZXhjZXB0OgorICAgIHN5cy5leGl0KDEpCitzeXMucGF0aC5pbnNlcnQoMCwgIi4uIikKK2Zyb20gYXBpYnVpbGQgaW1wb3J0IENQYXJzZXIsIGVzY2FwZQorCitleGFtcGxlcyA9IFtdCitleHRyYXMgPSBbJ2V4YW1wbGVzLnhzbCcsICdpbmRleC5weSddCit0ZXN0cyA9IFtdCitzZWN0aW9ucyA9IHt9CitzeW1ib2xzID0ge30KK2FwaV9kaWN0ID0gTm9uZQorYXBpX2RvYyA9IE5vbmUKKworZGVmIGxvYWRfYXBpKCk6CisgICAgZ2xvYmFsIGFwaV9kaWN0CisgICAgZ2xvYmFsIGFwaV9kb2MKKworICAgIGlmIGFwaV9kaWN0ICE9IE5vbmU6CisgICAgICAgIHJldHVybgorICAgIGFwaV9kaWN0ID0ge30KKyAgICB0cnk6CisgICAgICAgIHByaW50ICJsb2FkaW5nIC4uL2xpYnhtbDItYXBpLnhtbCIKKyAgICAgICAgYXBpX2RvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCIuLi9saWJ4bWwyLWFwaS54bWwiKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcHJpbnQgImZhaWxlZCB0byBwYXJzZSAuLi9saWJ4bWwyLWFwaS54bWwiCisJc3lzLmV4aXQoMSkKKworZGVmIGZpbmRfc3ltYm9sKG5hbWUpOgorICAgIGdsb2JhbCBhcGlfZGljdAorICAgIGdsb2JhbCBhcGlfZG9jCisKKyAgICBpZiBhcGlfZG9jID09IE5vbmU6CisgICAgICAgIGxvYWRfYXBpKCkKKworICAgIGlmIG5hbWUgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuCisgICAgaWYgYXBpX2RpY3QuaGFzX2tleShuYW1lKToKKyAgICAgICAgcmV0dXJuIGFwaV9kaWN0W25hbWVdCisgICAgY3R4dCA9IGFwaV9kb2MueHBhdGhOZXdDb250ZXh0KCkKKyAgICByZXMgPSBjdHh0LnhwYXRoRXZhbCgiL2FwaS9zeW1ib2xzLypbQG5hbWUgPSAnJXMnXSIgJSAobmFtZSkpCisgICAgaWYgdHlwZShyZXMpID09IHR5cGUoW10pIGFuZCBsZW4ocmVzKSA+PSAxOgorICAgICAgICBpZiBsZW4ocmVzKSA+IDE6CisJICAgIHByaW50ICJGb3VuZCAlZCByZWZlcmVuY2VzIHRvICVzIGluIHRoZSBBUEkiICUgKGxlbihyZXMpLCBuYW1lKQorCW5vZGUgPSByZXNbMF0KKwl0eXAgPSBub2RlLm5hbWUKKwlmaWxlID0gbm9kZS54cGF0aEV2YWwoInN0cmluZyhAZmlsZSkiKQorCWluZm8gPSBub2RlLnhwYXRoRXZhbCgic3RyaW5nKGluZm8pIikKKyAgICBlbHNlOgorICAgICAgICBwcmludCAiUmVmZXJlbmNlICVzIG5vdCBmb3VuZCBpbiB0aGUgQVBJIiAlIChuYW1lKQorCXJldHVybiBOb25lCisgICAgcmV0ID0gKHR5cCwgZmlsZSwgaW5mbykKKyAgICBhcGlfZGljdFtuYW1lXSA9IHJldAorICAgIHJldHVybiByZXQKKworZGVmIHBhcnNlX3RvcF9jb21tZW50KGZpbGVuYW1lLCBjb21tZW50KToKKyAgICByZXMgPSB7fQorICAgIGxpbmVzID0gc3RyaW5nLnNwbGl0KGNvbW1lbnQsICJcbiIpCisgICAgaXRlbSA9IE5vbmUKKyAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgd2hpbGUgbGluZSAhPSAiIiBhbmQgKGxpbmVbMF0gPT0gJyAnIG9yIGxpbmVbMF0gPT0gJ1x0Jyk6CisJICAgIGxpbmUgPSBsaW5lWzE6XQorICAgICAgICB3aGlsZSBsaW5lICE9ICIiIGFuZCBsaW5lWzBdID09ICcqJzoKKwkgICAgbGluZSA9IGxpbmVbMTpdCisgICAgICAgIHdoaWxlIGxpbmUgIT0gIiIgYW5kIChsaW5lWzBdID09ICcgJyBvciBsaW5lWzBdID09ICdcdCcpOgorCSAgICBsaW5lID0gbGluZVsxOl0KKwl0cnk6CisJICAgIChpdCwgbGluZSkgPSBzdHJpbmcuc3BsaXQobGluZSwgIjoiLCAxKQorCSAgICBpdGVtID0gaXQKKwkgICAgd2hpbGUgbGluZSAhPSAiIiBhbmQgKGxpbmVbMF0gPT0gJyAnIG9yIGxpbmVbMF0gPT0gJ1x0Jyk6CisJCWxpbmUgPSBsaW5lWzE6XQorCSAgICBpZiByZXMuaGFzX2tleShpdGVtKToKKwkgICAgICAgIHJlc1tpdGVtXSA9IHJlc1tpdGVtXSArICIgIiArIGxpbmUKKwkgICAgZWxzZToKKwkJcmVzW2l0ZW1dID0gbGluZQorCWV4Y2VwdDoKKwkgICAgaWYgaXRlbSAhPSBOb25lOgorCSAgICAgICAgaWYgcmVzLmhhc19rZXkoaXRlbSk6CisJCSAgICByZXNbaXRlbV0gPSByZXNbaXRlbV0gKyAiICIgKyBsaW5lCisJCWVsc2U6CisJCSAgICByZXNbaXRlbV0gPSBsaW5lCisgICAgcmV0dXJuIHJlcworCitkZWYgcGFyc2UoZmlsZW5hbWUsIG91dHB1dCk6CisgICAgZ2xvYmFsIHN5bWJvbHMKKyAgICBnbG9iYWwgc2VjdGlvbnMKKworICAgIHBhcnNlciA9IENQYXJzZXIoZmlsZW5hbWUpCisgICAgcGFyc2VyLmNvbGxlY3RfcmVmZXJlbmNlcygpCisgICAgaWR4ID0gcGFyc2VyLnBhcnNlKCkKKyAgICBpbmZvID0gcGFyc2VfdG9wX2NvbW1lbnQoZmlsZW5hbWUsIHBhcnNlci50b3BfY29tbWVudCkKKyAgICBvdXRwdXQud3JpdGUoIiAgPGV4YW1wbGUgZmlsZW5hbWU9JyVzJz5cbiIgJSBmaWxlbmFtZSkKKyAgICB0cnk6CisgICAgICAgIHN5bm9wc2lzID0gaW5mb1snc3lub3BzaXMnXQorCW91dHB1dC53cml0ZSgiICAgIDxzeW5vcHNpcz4lczwvc3lub3BzaXM+XG4iICUgZXNjYXBlKHN5bm9wc2lzKSk7CisgICAgZXhjZXB0OgorICAgICAgICBwcmludCAiRXhhbXBsZSAlcyBsYWNrcyBhIHN5bm9wc2lzIGRlc2NyaXB0aW9uIiAlIChmaWxlbmFtZSkKKyAgICB0cnk6CisgICAgICAgIHB1cnBvc2UgPSBpbmZvWydwdXJwb3NlJ10KKwlvdXRwdXQud3JpdGUoIiAgICA8cHVycG9zZT4lczwvcHVycG9zZT5cbiIgJSBlc2NhcGUocHVycG9zZSkpOworICAgIGV4Y2VwdDoKKyAgICAgICAgcHJpbnQgIkV4YW1wbGUgJXMgbGFja3MgYSBwdXJwb3NlIGRlc2NyaXB0aW9uIiAlIChmaWxlbmFtZSkKKyAgICB0cnk6CisgICAgICAgIHVzYWdlID0gaW5mb1sndXNhZ2UnXQorCW91dHB1dC53cml0ZSgiICAgIDx1c2FnZT4lczwvdXNhZ2U+XG4iICUgZXNjYXBlKHVzYWdlKSk7CisgICAgZXhjZXB0OgorICAgICAgICBwcmludCAiRXhhbXBsZSAlcyBsYWNrcyBhbiB1c2FnZSBkZXNjcmlwdGlvbiIgJSAoZmlsZW5hbWUpCisgICAgdHJ5OgorICAgICAgICB0ZXN0ID0gaW5mb1sndGVzdCddCisJb3V0cHV0LndyaXRlKCIgICAgPHRlc3Q+JXM8L3Rlc3Q+XG4iICUgZXNjYXBlKHRlc3QpKTsKKwlwcm9nbmFtZT1maWxlbmFtZVswOi0yXQorCWNvbW1hbmQ9c3RyaW5nLnJlcGxhY2UodGVzdCwgcHJvZ25hbWUsICcuLycgKyBwcm9nbmFtZSwgMSkKKwl0ZXN0cy5hcHBlbmQoY29tbWFuZCkKKyAgICBleGNlcHQ6CisgICAgICAgIHBhc3MKKyAgICB0cnk6CisgICAgICAgIGF1dGhvciA9IGluZm9bJ2F1dGhvciddCisJb3V0cHV0LndyaXRlKCIgICAgPGF1dGhvcj4lczwvYXV0aG9yPlxuIiAlIGVzY2FwZShhdXRob3IpKTsKKyAgICBleGNlcHQ6CisgICAgICAgIHByaW50ICJFeGFtcGxlICVzIGxhY2tzIGFuIGF1dGhvciBkZXNjcmlwdGlvbiIgJSAoZmlsZW5hbWUpCisgICAgdHJ5OgorICAgICAgICBjb3B5ID0gaW5mb1snY29weSddCisJb3V0cHV0LndyaXRlKCIgICAgPGNvcHk+JXM8L2NvcHk+XG4iICUgZXNjYXBlKGNvcHkpKTsKKyAgICBleGNlcHQ6CisgICAgICAgIHByaW50ICJFeGFtcGxlICVzIGxhY2tzIGEgY29weXJpZ2h0IGRlc2NyaXB0aW9uIiAlIChmaWxlbmFtZSkKKyAgICB0cnk6CisgICAgICAgIHNlY3Rpb24gPSBpbmZvWydzZWN0aW9uJ10KKwlvdXRwdXQud3JpdGUoIiAgICA8c2VjdGlvbj4lczwvc2VjdGlvbj5cbiIgJSBlc2NhcGUoc2VjdGlvbikpOworCWlmIHNlY3Rpb25zLmhhc19rZXkoc2VjdGlvbik6CisJICAgIHNlY3Rpb25zW3NlY3Rpb25dLmFwcGVuZChmaWxlbmFtZSkKKwllbHNlOgorCSAgICBzZWN0aW9uc1tzZWN0aW9uXSA9IFtmaWxlbmFtZV0KKyAgICBleGNlcHQ6CisgICAgICAgIHByaW50ICJFeGFtcGxlICVzIGxhY2tzIGEgc2VjdGlvbiBkZXNjcmlwdGlvbiIgJSAoZmlsZW5hbWUpCisgICAgZm9yIHRvcGljIGluIGluZm8ua2V5cygpOgorICAgICAgICBpZiB0b3BpYyAhPSAicHVycG9zZSIgYW5kIHRvcGljICE9ICJ1c2FnZSIgYW5kIFwKKwkgICB0b3BpYyAhPSAiYXV0aG9yIiBhbmQgdG9waWMgIT0gImNvcHkiIGFuZCBcCisJICAgdG9waWMgIT0gInNlY3Rpb24iIGFuZCB0b3BpYyAhPSAic3lub3BzaXMiIGFuZCB0b3BpYyAhPSAidGVzdCI6CisJICAgIHN0ciA9IGluZm9bdG9waWNdCisJICAgIG91dHB1dC53cml0ZSgiICAgIDxleHRyYSB0b3BpYz0nJXMnPiVzPC9leHRyYT5cbiIgJSAoCisJICAgICAgICAgICAgICAgICBlc2NhcGUodG9waWMpLCBlc2NhcGUoc3RyKSkpCisgICAgb3V0cHV0LndyaXRlKCIgICAgPGluY2x1ZGVzPlxuIikKKyAgICBmb3IgaW5jbHVkZSBpbiBpZHguaW5jbHVkZXMua2V5cygpOgorICAgICAgICBpZiBpbmNsdWRlLmZpbmQoImxpYnhtbCIpICE9IC0xOgorCSAgICBvdXRwdXQud3JpdGUoIiAgICAgIDxpbmNsdWRlPiVzPC9pbmNsdWRlPlxuIiAlIChlc2NhcGUoaW5jbHVkZSkpKQorICAgIG91dHB1dC53cml0ZSgiICAgIDwvaW5jbHVkZXM+XG4iKQorICAgIG91dHB1dC53cml0ZSgiICAgIDx1c2VzPlxuIikKKyAgICBmb3IgcmVmIGluIGlkeC5yZWZlcmVuY2VzLmtleXMoKToKKyAgICAgICAgaWQgPSBpZHgucmVmZXJlbmNlc1tyZWZdCisJbmFtZSA9IGlkLmdldF9uYW1lKCkKKwlsaW5lID0gaWQuZ2V0X2xpbmVubygpCisJaWYgc3ltYm9scy5oYXNfa2V5KG5hbWUpOgorCSAgICBzaW5mbyA9IHN5bWJvbHNbbmFtZV0KKwkgICAgcmVmcyA9IHNpbmZvWzBdCisJICAgICMgZ2F0aGVyIGF0IG1vc3QgNSByZWZlcmVuY2VzIHBlciBzeW1ib2xzCisJICAgIGlmIHJlZnMgPiA1OgorCSAgICAgICAgY29udGludWUKKwkgICAgc2luZm8uYXBwZW5kKGZpbGVuYW1lKQorCSAgICBzaW5mb1swXSA9IHJlZnMgKyAxCisJZWxzZToKKwkgICAgc3ltYm9sc1tuYW1lXSA9IFsxLCBmaWxlbmFtZV0KKwlpbmZvID0gZmluZF9zeW1ib2wobmFtZSkKKwlpZiBpbmZvICE9IE5vbmU6CisJICAgIHR5cGUgPSBpbmZvWzBdCisJICAgIGZpbGUgPSBpbmZvWzFdCisJICAgIG91dHB1dC53cml0ZSgiICAgICAgPCVzIGxpbmU9JyVkJyBmaWxlPSclcycgbmFtZT0nJXMnLz5cbiIgJSAodHlwZSwKKwkgICAgICAgICAgICAgICAgIGxpbmUsIGZpbGUsIG5hbWUpKQorCWVsc2U6CisJICAgIHR5cGUgPSBpZC5nZXRfdHlwZSgpCisJICAgIG91dHB1dC53cml0ZSgiICAgICAgPCVzIGxpbmU9JyVkJyBuYW1lPSclcycvPlxuIiAlICh0eXBlLAorCSAgICAgICAgICAgICAgICAgbGluZSwgbmFtZSkpCisJICAgIAorICAgIG91dHB1dC53cml0ZSgiICAgIDwvdXNlcz5cbiIpCisgICAgb3V0cHV0LndyaXRlKCIgIDwvZXhhbXBsZT5cbiIpCisgICAgCisgICAgcmV0dXJuIGlkeAorCitkZWYgZHVtcF9zeW1ib2xzKG91dHB1dCk6CisgICAgZ2xvYmFsIHN5bWJvbHMKKworICAgIG91dHB1dC53cml0ZSgiICA8c3ltYm9scz5cbiIpCisgICAga2V5cyA9IHN5bWJvbHMua2V5cygpCisgICAga2V5cy5zb3J0KCkKKyAgICBmb3Igc3ltYm9sIGluIGtleXM6CisgICAgICAgIG91dHB1dC53cml0ZSgiICAgIDxzeW1ib2wgbmFtZT0nJXMnPlxuIiAlIChzeW1ib2wpKQorCWluZm8gPSBzeW1ib2xzW3N5bWJvbF0KKwlpID0gMQorCXdoaWxlIGkgPCBsZW4oaW5mbyk6CisJICAgIG91dHB1dC53cml0ZSgiICAgICAgPHJlZiBmaWxlbmFtZT0nJXMnLz5cbiIgJSAoaW5mb1tpXSkpCisJICAgIGkgPSBpICsgMQorICAgICAgICBvdXRwdXQud3JpdGUoIiAgICA8L3N5bWJvbD5cbiIpCisgICAgb3V0cHV0LndyaXRlKCIgIDwvc3ltYm9scz5cbiIpCisKK2RlZiBkdW1wX3NlY3Rpb25zKG91dHB1dCk6CisgICAgZ2xvYmFsIHNlY3Rpb25zCisKKyAgICBvdXRwdXQud3JpdGUoIiAgPHNlY3Rpb25zPlxuIikKKyAgICBrZXlzID0gc2VjdGlvbnMua2V5cygpCisgICAga2V5cy5zb3J0KCkKKyAgICBmb3Igc2VjdGlvbiBpbiBrZXlzOgorICAgICAgICBvdXRwdXQud3JpdGUoIiAgICA8c2VjdGlvbiBuYW1lPSclcyc+XG4iICUgKHNlY3Rpb24pKQorCWluZm8gPSBzZWN0aW9uc1tzZWN0aW9uXQorCWkgPSAwCisJd2hpbGUgaSA8IGxlbihpbmZvKToKKwkgICAgb3V0cHV0LndyaXRlKCIgICAgICA8ZXhhbXBsZSBmaWxlbmFtZT0nJXMnLz5cbiIgJSAoaW5mb1tpXSkpCisJICAgIGkgPSBpICsgMQorICAgICAgICBvdXRwdXQud3JpdGUoIiAgICA8L3NlY3Rpb24+XG4iKQorICAgIG91dHB1dC53cml0ZSgiICA8L3NlY3Rpb25zPlxuIikKKworZGVmIGR1bXBfTWFrZWZpbGUoKToKKyAgICBmb3IgZmlsZSBpbiBnbG9iLmdsb2IoJyoueG1sJyk6CisgICAgICAgIGV4dHJhcy5hcHBlbmQoZmlsZSkKKyAgICBmb3IgZmlsZSBpbiBnbG9iLmdsb2IoJyoucmVzJyk6CisgICAgICAgIGV4dHJhcy5hcHBlbmQoZmlsZSkKKyAgICBNYWtlZmlsZT0iIiIjIEJld2FyZSB0aGlzIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaW5kZXgucHkKK0lOQ0xVREVTID0gLUkkKHRvcF9idWlsZGRpcikvaW5jbHVkZSAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSAtSUBzcmNkaXJAL2luY2x1ZGUgQFRIUkVBRF9DRkxBR1NAIEBaX0NGTEFHU0AKK0RFUFMgPSAkKHRvcF9idWlsZGRpcikvbGlieG1sMi5sYQorTERBRERTID0gQFNUQVRJQ19CSU5BUklFU0AgJCh0b3BfYnVpbGRkaXIpL2xpYnhtbDIubGEgQFRIUkVBRF9MSUJTQCBAWl9MSUJTQCAkKElDT05WX0xJQlMpIC1sbSBAV0lOMzJfRVhUUkFfTElCQUREQAorCityZWJ1aWxkOiBleGFtcGxlcy54bWwgaW5kZXguaHRtbAorCitleGFtcGxlcy54bWw6IGluZGV4LnB5ICouYworCS1AKCQoc3JjZGlyKS9pbmRleC5weSkKKworaW5kZXguaHRtbDogZXhhbXBsZXMueG1sIGV4YW1wbGVzLnhzbAorCS1AKHhzbHRwcm9jIGV4YW1wbGVzLnhzbCBleGFtcGxlcy54bWwgJiYgZWNobyAiUmVidWlsdCB3ZWIgcGFnZSIgJiYgeG1sbGludCAtLXZhbGlkIC0tbm9vdXQgaW5kZXguaHRtbCkKKworaW5zdGFsbC1kYXRhLWxvY2FsOiAKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKEhUTUxfRElSKQorCS1ASU5TVEFMTEAgLW0gMDY0NCAkKHNyY2RpcikvKi5odG1sICQoc3JjZGlyKS8qLmMgJChzcmNkaXIpLyoueG1sICQoc3JjZGlyKS8qLnhzbCAkKHNyY2RpcikvKi5yZXMgJChERVNURElSKSQoSFRNTF9ESVIpCisKKyIiIgorICAgIEVYVFJBX0RJU1Q9IiIKKyAgICBmb3IgZXh0cmEgaW4gZXh0cmFzOgorICAgICAgICBFWFRSQV9ESVNUID0gRVhUUkFfRElTVCArIGV4dHJhICsgIiAiCisgICAgTWFrZWZpbGUgPSBNYWtlZmlsZSArICJFWFRSQV9ESVNUPSVzXG5cbiIgJSAoRVhUUkFfRElTVCkKKyAgICBub2luc3RfUFJPR1JBTVM9IiIKKyAgICBmb3IgZXhhbXBsZSBpbiBleGFtcGxlczoKKyAgICAgICAgbm9pbnN0X1BST0dSQU1TID0gbm9pbnN0X1BST0dSQU1TICsgZXhhbXBsZSArICIgIgorICAgIE1ha2VmaWxlID0gTWFrZWZpbGUgKyAibm9pbnN0X1BST0dSQU1TPSVzXG5cbiIgJSAobm9pbnN0X1BST0dSQU1TKQorICAgIGZvciBleGFtcGxlIGluIGV4YW1wbGVzOgorICAgICAgICBNYWtlZmlsZSA9IE1ha2VmaWxlICsgIiVzX1NPVVJDRVM9JXMuY1xuJXNfTERGTEFHUz1cbiVzX0RFUEVOREVOQ0lFUz0gJChERVBTKVxuJXNfTERBREQ9IEBSRExfTElCU0AgJChMREFERFMpXG5cbiIgJSAoZXhhbXBsZSwgZXhhbXBsZSwgZXhhbXBsZSwKKwkgICAgICAgZXhhbXBsZSwgZXhhbXBsZSkKKyAgICBNYWtlZmlsZSA9IE1ha2VmaWxlICsgInZhbGdyaW5kOiBcblx0JChNQUtFKSBDSEVDS0VSPSd2YWxncmluZCcgdGVzdHNcblxuIgorICAgIE1ha2VmaWxlID0gTWFrZWZpbGUgKyAidGVzdHM6ICQobm9pbnN0X1BST0dSQU1TKVxuIgorICAgIE1ha2VmaWxlID0gTWFrZWZpbGUgKyAiXHRAKGVjaG8gJyMjIGV4YW1wbGVzIHJlZ3Jlc3Npb24gdGVzdHMnKVxuIgorICAgIE1ha2VmaWxlID0gTWFrZWZpbGUgKyAiXHRAKGVjaG8gPiAubWVtZHVtcClcbiIKKyAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAgTWFrZWZpbGUgPSBNYWtlZmlsZSArICJcdEAoJChDSEVDS0VSKSAlcylcbiIgJSAodGVzdCkKKyAgICAgICAgTWFrZWZpbGUgPSBNYWtlZmlsZSArICdcdEAoZ3JlcCAiTU9SWSBBTExPIiAubWVtZHVtcCAgfCBncmVwIC12ICJNRU1PUlkgQUxMT0NBVEVEIDogMCIgOyBleGl0IDApXG4nCisgICAgTWFrZWZpbGUgPSBNYWtlZmlsZSArICJcblxuIgorICAgIHRyeToKKwlvbGQgPSBvcGVuKCJNYWtlZmlsZS5hbSIsICJyIikucmVhZCgpCisJaWYgb2xkICE9IE1ha2VmaWxlOgorCSAgICBuID0gb3BlbigiTWFrZWZpbGUuYW0iLCAidyIpLndyaXRlKE1ha2VmaWxlKQorCSAgICBwcmludCAiVXBkYXRlZCBNYWtlZmlsZS5hbSIKKyAgICBleGNlcHQ6CisgICAgICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBvciBzYXZlIE1ha2VmaWxlLmFtIgorICAgICMKKyAgICAjIEF1dG9nZW5lcmF0ZSB0aGUgLmN2c2lnbm9yZSB0b28gLi4uCisgICAgIworICAgIGlnbm9yZSA9ICIiIi5tZW1kdW1wCitNYWtlZmlsZS5pbgorTWFrZWZpbGUKKyIiIgorICAgIGZvciBleGFtcGxlIGluIGV4YW1wbGVzOgorICAgICAgICBpZ25vcmUgPSBpZ25vcmUgKyAiJXNcbiIgJSAoZXhhbXBsZSkKKyAgICB0cnk6CisJb2xkID0gb3BlbigiLmN2c2lnbm9yZSIsICJyIikucmVhZCgpCisJaWYgb2xkICE9IGlnbm9yZToKKwkgICAgbiA9IG9wZW4oIi5jdnNpZ25vcmUiLCAidyIpLndyaXRlKGlnbm9yZSkKKwkgICAgcHJpbnQgIlVwZGF0ZWQgLmN2c2lnbm9yZSIKKyAgICBleGNlcHQ6CisgICAgICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBvciBzYXZlIC5jdnNpZ25vcmUiCisgICAgCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIGxvYWRfYXBpKCkKKyAgICBvdXRwdXQgPSBvcGVuKCJleGFtcGxlcy54bWwiLCAidyIpCisgICAgb3V0cHV0LndyaXRlKCI8ZXhhbXBsZXM+XG4iKQorCisgICAgZm9yIGZpbGUgaW4gZ2xvYi5nbG9iKCcqLmMnKToKKwlwYXJzZShmaWxlLCBvdXRwdXQpCisJZXhhbXBsZXMuYXBwZW5kKGZpbGVbOi0yXSkKKworICAgIGR1bXBfc3ltYm9scyhvdXRwdXQpCisgICAgZHVtcF9zZWN0aW9ucyhvdXRwdXQpCisgICAgb3V0cHV0LndyaXRlKCI8L2V4YW1wbGVzPlxuIikKKyAgICBvdXRwdXQuY2xvc2UoKQorICAgIGR1bXBfTWFrZWZpbGUoKQorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9pbzEuYyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2lvMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YTQ3ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9pbzEuYwpAQCAtMCwwICsxLDE2NiBAQAorLyoqCisgKiBzZWN0aW9uOiBJbnB1dE91dHB1dAorICogc3lub3BzaXM6IEV4YW1wbGUgb2YgY3VzdG9tIElucHV0L091dHB1dAorICogcHVycG9zZTogRGVtb25zdHJhdGUgdGhlIHVzZSBvZiB4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzCisgKiAgICAgICAgICB0byBidWlsZCBhIGN1c3RvbSBJL08gbGF5ZXIsIHRoaXMgaXMgdXNlZCBpbiBhbgorICogICAgICAgICAgWEluY2x1ZGUgbWV0aG9kIGNvbnRleHQgdG8gc2hvdyBob3cgZHluYW1pYyBkb2N1bWVudCBjYW4KKyAqICAgICAgICAgIGJlIGJ1aWx0IGluIGEgY2xlYW4gd2F5LgorICogdXNhZ2U6IGlvMQorICogdGVzdDogaW8xID4gaW8xLnRtcCA7IGRpZmYgaW8xLnRtcCBpbzEucmVzIDsgcm0gLWYgaW8xLnRtcAorICogYXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqIGNvcHk6IHNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveGluY2x1ZGUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sSU8uaD4KKworI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECitzdGF0aWMgY29uc3QgY2hhciAqcmVzdWx0ID0gIjxsaXN0PjxwZW9wbGU+YTwvcGVvcGxlPjxwZW9wbGU+YjwvcGVvcGxlPjwvbGlzdD4iOworc3RhdGljIGNvbnN0IGNoYXIgKmN1ciA9IE5VTEw7CitzdGF0aWMgaW50IHJsZW47CisKKy8qKgorICogc3FsTWF0Y2g6CisgKiBAVVJJOiBhbiBVUkkgdG8gdGVzdAorICoKKyAqIENoZWNrIGZvciBhbiBzcWw6IHF1ZXJ5CisgKgorICogUmV0dXJucyAxIGlmIHllcyBhbmQgMCBpZiBhbm90aGVyIElucHV0IG1vZHVsZSBzaG91bGQgYmUgdXNlZAorICovCitzdGF0aWMgaW50CitzcWxNYXRjaChjb25zdCBjaGFyICogVVJJKSB7CisgICAgaWYgKChVUkkgIT0gTlVMTCkgJiYgKCFzdHJuY21wKFVSSSwgInNxbDoiLCA0KSkpCisgICAgICAgIHJldHVybigxKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogc3FsT3BlbjoKKyAqIEBVUkk6IGFuIFVSSSB0byB0ZXN0CisgKgorICogUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgc3FsOiBxdWVyeSBoYW5kbGVyLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGx5CisgKiB0aGUgY3VycmVudCBwb2ludGVyLi4uCisgKgorICogUmV0dXJucyBhbiBJbnB1dCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcgorICovCitzdGF0aWMgdm9pZCAqCitzcWxPcGVuKGNvbnN0IGNoYXIgKiBVUkkpIHsKKyAgICBpZiAoKFVSSSA9PSBOVUxMKSB8fCAoc3RybmNtcChVUkksICJzcWw6IiwgNCkpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3VyID0gcmVzdWx0OworICAgIHJsZW4gPSBzdHJsZW4ocmVzdWx0KTsKKyAgICByZXR1cm4oKHZvaWQgKikgY3VyKTsKK30KKworLyoqCisgKiBzcWxDbG9zZToKKyAqIEBjb250ZXh0OiB0aGUgcmVhZCBjb250ZXh0CisgKgorICogQ2xvc2UgdGhlIHNxbDogcXVlcnkgaGFuZGxlcgorICoKKyAqIFJldHVybnMgMCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3NxbENsb3NlKHZvaWQgKiBjb250ZXh0KSB7CisgICAgaWYgKGNvbnRleHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBjdXIgPSBOVUxMOworICAgIHJsZW4gPSAwOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiBzcWxSZWFkOgorICogQGNvbnRleHQ6IHRoZSByZWFkIGNvbnRleHQKKyAqIEBidWZmZXI6IHdoZXJlIHRvIHN0b3JlIGRhdGEKKyAqIEBsZW46IG51bWJlciBvZiBieXRlcyB0byByZWFkCisgKgorICogSW1wbGVtZW50IGFuIHNxbDogcXVlcnkgcmVhZC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3NxbFJlYWQodm9pZCAqIGNvbnRleHQsIGNoYXIgKiBidWZmZXIsIGludCBsZW4pIHsKKyAgIGNvbnN0IGNoYXIgKnB0ciA9IChjb25zdCBjaGFyICopIGNvbnRleHQ7CisKKyAgIGlmICgoY29udGV4dCA9PSBOVUxMKSB8fCAoYnVmZmVyID09IE5VTEwpIHx8IChsZW4gPCAwKSkKKyAgICAgICByZXR1cm4oLTEpOworCisgICBpZiAobGVuID4gcmxlbikgbGVuID0gcmxlbjsKKyAgIG1lbWNweShidWZmZXIsIHB0ciwgbGVuKTsKKyAgIHJsZW4gLT0gbGVuOworICAgcmV0dXJuKGxlbik7Cit9CisKK2NvbnN0IGNoYXIgKmluY2x1ZGUgPSAiPD94bWwgdmVyc2lvbj0nMS4wJz8+XG5cCis8ZG9jdW1lbnQgeG1sbnM6eGk9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAzL1hJbmNsdWRlXCI+XG5cCisgIDxwPkxpc3Qgb2YgcGVvcGxlOjwvcD5cblwKKyAgPHhpOmluY2x1ZGUgaHJlZj1cInNxbDpzZWxlY3RfbmFtZV9mcm9tX3Blb3BsZVwiLz5cblwKKzwvZG9jdW1lbnQ+XG4iOworCitpbnQgbWFpbih2b2lkKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKworICAgIC8qCisgICAgICogdGhpcyBpbml0aWFsaXplIHRoZSBsaWJyYXJ5IGFuZCBjaGVjayBwb3RlbnRpYWwgQUJJIG1pc21hdGNoZXMKKyAgICAgKiBiZXR3ZWVuIHRoZSB2ZXJzaW9uIGl0IHdhcyBjb21waWxlZCBmb3IgYW5kIHRoZSBhY3R1YWwgc2hhcmVkCisgICAgICogbGlicmFyeSB1c2VkLgorICAgICAqLworICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKworICAgIC8qCisgICAgICogcmVnaXN0ZXIgdGhlIG5ldyBJL08gaGFuZGxlcnMKKyAgICAgKi8KKyAgICBpZiAoeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyhzcWxNYXRjaCwgc3FsT3Blbiwgc3FsUmVhZCwgc3FsQ2xvc2UpIDwgMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byByZWdpc3RlciBTUUwgaGFuZGxlclxuIik7CisJZXhpdCgxKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBwYXJzZSBpbmNsdWRlIGludG8gYSBkb2N1bWVudAorICAgICAqLworICAgIGRvYyA9IHhtbFJlYWRNZW1vcnkoaW5jbHVkZSwgc3RybGVuKGluY2x1ZGUpLCAiaW5jbHVkZS54bWwiLCBOVUxMLCAwKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gcGFyc2UgdGhlIGluY2x1ZGluZyBmaWxlXG4iKTsKKwlleGl0KDEpOworICAgIH0KKworICAgIC8qCisgICAgICogYXBwbHkgdGhlIFhJbmNsdWRlIHByb2Nlc3MsIHRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIEkvTyBqdXN0CisgICAgICogcmVnaXN0ZXJlZC4KKyAgICAgKi8KKyAgICBpZiAoeG1sWEluY2x1ZGVQcm9jZXNzKGRvYykgPD0gMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlhJbmNsdWRlIHByb2Nlc3NpbmcgZmFpbGVkXG4iKTsKKwlleGl0KDEpOworICAgIH0KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgIC8qCisgICAgICogc2F2ZSB0aGUgb3V0cHV0IGZvciBjaGVja2luZyB0byBzdGRvdXQKKyAgICAgKi8KKyAgICB4bWxEb2NEdW1wKHN0ZG91dCwgZG9jKTsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBGcmVlIHRoZSBkb2N1bWVudAorICAgICAqLworICAgIHhtbEZyZWVEb2MoZG9jKTsKKworICAgIC8qCisgICAgICogQ2xlYW51cCBmdW5jdGlvbiBmb3IgdGhlIFhNTCBsaWJyYXJ5LgorICAgICAqLworICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICAvKgorICAgICAqIHRoaXMgaXMgdG8gZGVidWcgbWVtb3J5IGZvciByZWdyZXNzaW9uIHRlc3RzCisgICAgICovCisgICAgeG1sTWVtb3J5RHVtcCgpOworICAgIHJldHVybigwKTsKK30KKyNlbHNlCitpbnQgbWFpbih2b2lkKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJYSW5jbHVkZSBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIik7CisgICAgZXhpdCgxKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvaW8xLnJlcyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2lvMS5yZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE0YzAzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2lvMS5yZXMKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB4bWxuczp4aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMy9YSW5jbHVkZSI+CisgIDxwPkxpc3Qgb2YgcGVvcGxlOjwvcD4KKyAgPGxpc3Q+PHBlb3BsZT5hPC9wZW9wbGU+PHBlb3BsZT5iPC9wZW9wbGU+PC9saXN0PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2lvMi5jIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvaW8yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE0YTI3ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2lvMi5jCkBAIC0wLDAgKzEsNTggQEAKKy8qKgorICogc2VjdGlvbjogSW5wdXRPdXRwdXQKKyAqIHN5bm9wc2lzOiBPdXRwdXQgdG8gY2hhciBidWZmZXIKKyAqIHB1cnBvc2U6IERlbW9uc3RyYXRlIHRoZSB1c2Ugb2YgeG1sRG9jRHVtcE1lbW9yeQorICogICAgICAgICAgdG8gb3V0cHV0IGRvY3VtZW50IHRvIGEgY2hhcmFjdGVyIGJ1ZmZlcgorICogdXNhZ2U6IGlvMgorICogdGVzdDogaW8yID4gaW8yLnRtcCA7IGRpZmYgaW8yLnRtcCBpbzIucmVzIDsgcm0gLWYgaW8yLnRtcAorICogYXV0aG9yOiBKb2huIEZsZWNrCisgKiBjb3B5OiBzZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKi8KKworI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCitpbnQKK21haW4odm9pZCkKK3sKKworICAgIHhtbE5vZGVQdHIgbjsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbENoYXIgKnhtbGJ1ZmY7CisgICAgaW50IGJ1ZmZlcnNpemU7CisKKyAgICAvKgorICAgICAqIENyZWF0ZSB0aGUgZG9jdW1lbnQuCisgICAgICovCisgICAgZG9jID0geG1sTmV3RG9jKEJBRF9DQVNUICIxLjAiKTsKKyAgICBuID0geG1sTmV3Tm9kZShOVUxMLCBCQURfQ0FTVCAicm9vdCIpOworICAgIHhtbE5vZGVTZXRDb250ZW50KG4sIEJBRF9DQVNUICJjb250ZW50Iik7CisgICAgeG1sRG9jU2V0Um9vdEVsZW1lbnQoZG9jLCBuKTsKKworICAgIC8qCisgICAgICogRHVtcCB0aGUgZG9jdW1lbnQgdG8gYSBidWZmZXIgYW5kIHByaW50IGl0CisgICAgICogZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMuCisgICAgICovCisgICAgeG1sRG9jRHVtcEZvcm1hdE1lbW9yeShkb2MsICZ4bWxidWZmLCAmYnVmZmVyc2l6ZSwgMSk7CisgICAgcHJpbnRmKCIlcyIsIChjaGFyICopIHhtbGJ1ZmYpOworCisgICAgLyoKKyAgICAgKiBGcmVlIGFzc29jaWF0ZWQgbWVtb3J5LgorICAgICAqLworICAgIHhtbEZyZWUoeG1sYnVmZik7CisgICAgeG1sRnJlZURvYyhkb2MpOworCisgICAgcmV0dXJuICgwKTsKKworfQorI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgorCitpbnQKK21haW4odm9pZCkKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICJsaWJyYXJ5IG5vdCBjb25maWd1cmVkIHdpdGggdHJlZSBhbmQgb3V0cHV0IHN1cHBvcnRcbiIpOworICAgIHJldHVybiAoMSk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL2lvMi5yZXMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9pbzIucmVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MzdiODcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9pbzIucmVzCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cm9vdD5jb250ZW50PC9yb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcGFyc2UxLmMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9wYXJzZTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDRiMDNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcGFyc2UxLmMKQEAgLTAsMCArMSw1NiBAQAorLyoqCisgKiBzZWN0aW9uOiBQYXJzaW5nCisgKiBzeW5vcHNpczogUGFyc2UgYW4gWE1MIGZpbGUgdG8gYSB0cmVlIGFuZCBmcmVlIGl0CisgKiBwdXJwb3NlOiBEZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIHhtbFJlYWRGaWxlKCkgdG8gcmVhZCBhbiBYTUwgZmlsZQorICogICAgICAgICAgaW50byBhIHRyZWUgYW5kIGFuZCB4bWxGcmVlRG9jKCkgdG8gZnJlZSB0aGUgcmVzdWx0aW5nIHRyZWUKKyAqIHVzYWdlOiBwYXJzZTEgdGVzdDEueG1sCisgKiB0ZXN0OiBwYXJzZTEgdGVzdDEueG1sCisgKiBhdXRob3I6IERhbmllbCBWZWlsbGFyZAorICogY29weTogc2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorCisvKioKKyAqIGV4YW1wbGUxRnVuYzoKKyAqIEBmaWxlbmFtZTogYSBmaWxlbmFtZSBvciBhbiBVUkwKKyAqCisgKiBQYXJzZSB0aGUgcmVzb3VyY2UgYW5kIGZyZWUgdGhlIHJlc3VsdGluZyB0cmVlCisgKi8KK3N0YXRpYyB2b2lkCitleGFtcGxlMUZ1bmMoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgKi8KKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCAwKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcGFyc2UgJXNcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm47CisgICAgfQorICAgIHhtbEZyZWVEb2MoZG9jKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuKDEpOworCisgICAgLyoKKyAgICAgKiB0aGlzIGluaXRpYWxpemUgdGhlIGxpYnJhcnkgYW5kIGNoZWNrIHBvdGVudGlhbCBBQkkgbWlzbWF0Y2hlcworICAgICAqIGJldHdlZW4gdGhlIHZlcnNpb24gaXQgd2FzIGNvbXBpbGVkIGZvciBhbmQgdGhlIGFjdHVhbCBzaGFyZWQKKyAgICAgKiBsaWJyYXJ5IHVzZWQuCisgICAgICovCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgZXhhbXBsZTFGdW5jKGFyZ3ZbMV0pOworCisgICAgLyoKKyAgICAgKiBDbGVhbnVwIGZ1bmN0aW9uIGZvciB0aGUgWE1MIGxpYnJhcnkuCisgICAgICovCisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIC8qCisgICAgICogdGhpcyBpcyB0byBkZWJ1ZyBtZW1vcnkgZm9yIHJlZ3Jlc3Npb24gdGVzdHMKKyAgICAgKi8KKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuKDApOworfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcGFyc2UyLmMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9wYXJzZTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWQ3Njc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcGFyc2UyLmMKQEAgLTAsMCArMSw3MiBAQAorLyoqCisgKiBzZWN0aW9uOiBQYXJzaW5nCisgKiBzeW5vcHNpczogUGFyc2UgYW5kIHZhbGlkYXRlIGFuIFhNTCBmaWxlIHRvIGEgdHJlZSBhbmQgZnJlZSB0aGUgcmVzdWx0CisgKiBwdXJwb3NlOiBDcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYW4gWE1MIGZpbGUsIHRoZW4gcGFyc2UgYW5kIHZhbGlkYXRlCisgKiAgICAgICAgICB0aGUgZmlsZSwgY3JlYXRpbmcgYSB0cmVlLCBjaGVjayB0aGUgdmFsaWRhdGlvbiByZXN1bHQKKyAqICAgICAgICAgIGFuZCB4bWxGcmVlRG9jKCkgdG8gZnJlZSB0aGUgcmVzdWx0aW5nIHRyZWUuCisgKiB1c2FnZTogcGFyc2UyIHRlc3QyLnhtbAorICogdGVzdDogcGFyc2UyIHRlc3QyLnhtbAorICogYXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqIGNvcHk6IHNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKworLyoqCisgKiBleGFtcGxlRnVuYzoKKyAqIEBmaWxlbmFtZTogYSBmaWxlbmFtZSBvciBhbiBVUkwKKyAqCisgKiBQYXJzZSBhbmQgdmFsaWRhdGUgdGhlIHJlc291cmNlIGFuZCBmcmVlIHRoZSByZXN1bHRpbmcgdHJlZQorICovCitzdGF0aWMgdm9pZAorZXhhbXBsZUZ1bmMoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIHRoZSBwYXJzZXIgY29udGV4dCAqLworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSAqLworCisgICAgLyogY3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBjdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gYWxsb2NhdGUgcGFyc2VyIGNvbnRleHRcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgLyogcGFyc2UgdGhlIGZpbGUsIGFjdGl2YXRpbmcgdGhlIERURCB2YWxpZGF0aW9uIG9wdGlvbiAqLworICAgIGRvYyA9IHhtbEN0eHRSZWFkRmlsZShjdHh0LCBmaWxlbmFtZSwgTlVMTCwgWE1MX1BBUlNFX0RURFZBTElEKTsKKyAgICAvKiBjaGVjayBpZiBwYXJzaW5nIHN1Y2VlZGVkICovCisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlICVzXG4iLCBmaWxlbmFtZSk7CisgICAgfSBlbHNlIHsKKwkvKiBjaGVjayBpZiB2YWxpZGF0aW9uIHN1Y2VlZGVkICovCisgICAgICAgIGlmIChjdHh0LT52YWxpZCA9PSAwKQorCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byB2YWxpZGF0ZSAlc1xuIiwgZmlsZW5hbWUpOworCS8qIGZyZWUgdXAgdGhlIHJlc3VsdGluZyBkb2N1bWVudCAqLworCXhtbEZyZWVEb2MoZG9jKTsKKyAgICB9CisgICAgLyogZnJlZSB1cCB0aGUgcGFyc2VyIGNvbnRleHQgKi8KKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuKDEpOworCisgICAgLyoKKyAgICAgKiB0aGlzIGluaXRpYWxpemUgdGhlIGxpYnJhcnkgYW5kIGNoZWNrIHBvdGVudGlhbCBBQkkgbWlzbWF0Y2hlcworICAgICAqIGJldHdlZW4gdGhlIHZlcnNpb24gaXQgd2FzIGNvbXBpbGVkIGZvciBhbmQgdGhlIGFjdHVhbCBzaGFyZWQKKyAgICAgKiBsaWJyYXJ5IHVzZWQuCisgICAgICovCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgZXhhbXBsZUZ1bmMoYXJndlsxXSk7CisKKyAgICAvKgorICAgICAqIENsZWFudXAgZnVuY3Rpb24gZm9yIHRoZSBYTUwgbGlicmFyeS4KKyAgICAgKi8KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgLyoKKyAgICAgKiB0aGlzIGlzIHRvIGRlYnVnIG1lbW9yeSBmb3IgcmVncmVzc2lvbiB0ZXN0cworICAgICAqLworICAgIHhtbE1lbW9yeUR1bXAoKTsKKyAgICByZXR1cm4oMCk7Cit9CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9wYXJzZTMuYyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3BhcnNlMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyZDNhNDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9wYXJzZTMuYwpAQCAtMCwwICsxLDYwIEBACisvKioKKyAqIHNlY3Rpb246IFBhcnNpbmcKKyAqIHN5bm9wc2lzOiBQYXJzZSBhbiBYTUwgZG9jdW1lbnQgaW4gbWVtb3J5IHRvIGEgdHJlZSBhbmQgZnJlZSBpdAorICogcHVycG9zZTogRGVtb25zdHJhdGUgdGhlIHVzZSBvZiB4bWxSZWFkTWVtb3J5KCkgdG8gcmVhZCBhbiBYTUwgZmlsZQorICogICAgICAgICAgaW50byBhIHRyZWUgYW5kIGFuZCB4bWxGcmVlRG9jKCkgdG8gZnJlZSB0aGUgcmVzdWx0aW5nIHRyZWUKKyAqIHVzYWdlOiBwYXJzZTMKKyAqIHRlc3Q6IHBhcnNlMworICogYXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqIGNvcHk6IHNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKworc3RhdGljIGNvbnN0IGNoYXIgKmRvY3VtZW50ID0gIjxkb2MvPiI7CisKKy8qKgorICogZXhhbXBsZTNGdW5jOgorICogQGNvbnRlbnQ6IHRoZSBjb250ZW50IG9mIHRoZSBkb2N1bWVudAorICogQGxlbmd0aDogdGhlIGxlbmd0aCBpbiBieXRlcworICoKKyAqIFBhcnNlIHRoZSBpbiBtZW1vcnkgZG9jdW1lbnQgYW5kIGZyZWUgdGhlIHJlc3VsdGluZyB0cmVlCisgKi8KK3N0YXRpYyB2b2lkCitleGFtcGxlM0Z1bmMoY29uc3QgY2hhciAqY29udGVudCwgaW50IGxlbmd0aCkgeworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSAqLworCisgICAgLyoKKyAgICAgKiBUaGUgZG9jdW1lbnQgYmVpbmcgaW4gbWVtb3J5LCBpdCBoYXZlIG5vIGJhc2UgcGVyIFJGQyAyMzk2LAorICAgICAqIGFuZCB0aGUgIm5vbmFtZS54bWwiIGFyZ3VtZW50IHdpbGwgc2VydmUgYXMgaXRzIGJhc2UuCisgICAgICovCisgICAgZG9jID0geG1sUmVhZE1lbW9yeShjb250ZW50LCBsZW5ndGgsICJub25hbWUueG1sIiwgTlVMTCwgMCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlIGRvY3VtZW50XG4iKTsKKwlyZXR1cm47CisgICAgfQorICAgIHhtbEZyZWVEb2MoZG9jKTsKK30KKworaW50IG1haW4odm9pZCkgeworICAgIC8qCisgICAgICogdGhpcyBpbml0aWFsaXplIHRoZSBsaWJyYXJ5IGFuZCBjaGVjayBwb3RlbnRpYWwgQUJJIG1pc21hdGNoZXMKKyAgICAgKiBiZXR3ZWVuIHRoZSB2ZXJzaW9uIGl0IHdhcyBjb21waWxlZCBmb3IgYW5kIHRoZSBhY3R1YWwgc2hhcmVkCisgICAgICogbGlicmFyeSB1c2VkLgorICAgICAqLworICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKworICAgIGV4YW1wbGUzRnVuYyhkb2N1bWVudCwgNik7CisKKyAgICAvKgorICAgICAqIENsZWFudXAgZnVuY3Rpb24gZm9yIHRoZSBYTUwgbGlicmFyeS4KKyAgICAgKi8KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgLyoKKyAgICAgKiB0aGlzIGlzIHRvIGRlYnVnIG1lbW9yeSBmb3IgcmVncmVzc2lvbiB0ZXN0cworICAgICAqLworICAgIHhtbE1lbW9yeUR1bXAoKTsKKyAgICByZXR1cm4oMCk7Cit9CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9wYXJzZTQuYyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3BhcnNlNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMjgwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9wYXJzZTQuYwpAQCAtMCwwICsxLDE0MyBAQAorLyoqCisgKiBzZWN0aW9uOiBQYXJzaW5nCisgKiBzeW5vcHNpczogUGFyc2UgYW4gWE1MIGRvY3VtZW50IGNodW5rIGJ5IGNodW5rIHRvIGEgdHJlZSBhbmQgZnJlZSBpdAorICogcHVycG9zZTogRGVtb25zdHJhdGUgdGhlIHVzZSBvZiB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCgpIGFuZAorICogICAgICAgICAgeG1sUGFyc2VDaHVuaygpIHRvIHJlYWQgYW4gWE1MIGZpbGUgcHJvZ3Jlc3NpdmVseQorICogICAgICAgICAgaW50byBhIHRyZWUgYW5kIGFuZCB4bWxGcmVlRG9jKCkgdG8gZnJlZSB0aGUgcmVzdWx0aW5nIHRyZWUKKyAqIHVzYWdlOiBwYXJzZTQgdGVzdDMueG1sCisgKiB0ZXN0OiBwYXJzZTQgdGVzdDMueG1sCisgKiBhdXRob3I6IERhbmllbCBWZWlsbGFyZAorICogY29weTogc2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorCisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAorc3RhdGljIEZJTEUgKmRlc2M7CisKKy8qKgorICogcmVhZFBhY2tldDoKKyAqIEBtZW06IGFycmF5IHRvIHN0b3JlIHRoZSBwYWNrZXQKKyAqIEBzaXplOiB0aGUgcGFja2V0IHNpemUKKyAqCisgKiByZWFkIGF0IG1vc3QgQHNpemUgYnl0ZXMgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHN0b3JlIGl0IGluIEBtZW0KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZAorICovCitzdGF0aWMgaW50CityZWFkUGFja2V0KGNoYXIgKm1lbSwgaW50IHNpemUpIHsKKyAgICBpbnQgcmVzOworCisgICAgcmVzID0gZnJlYWQobWVtLCAxLCBzaXplLCBkZXNjKTsKKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqCisgKiBleGFtcGxlNEZ1bmM6CisgKiBAZmlsZW5hbWU6IGEgZmlsZW5hbWUgb3IgYW4gVVJMCisgKgorICogUGFyc2UgdGhlIHJlc291cmNlIGFuZCBmcmVlIHRoZSByZXN1bHRpbmcgdHJlZQorICovCitzdGF0aWMgdm9pZAorZXhhbXBsZTRGdW5jKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIGNoYXIgY2hhcnNbNF07CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlICovCisgICAgaW50IHJlczsKKworICAgIC8qCisgICAgICogUmVhZCBhIGZldyBmaXJzdCBieXRlIHRvIGNoZWNrIHRoZSBpbnB1dCB1c2VkIGZvciB0aGUKKyAgICAgKiBlbmNvZGluZyBkZXRlY3Rpb24gYXQgdGhlIHBhcnNlciBsZXZlbC4KKyAgICAgKi8KKyAgICByZXMgPSByZWFkUGFja2V0KGNoYXJzLCA0KTsKKyAgICBpZiAocmVzIDw9IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcGFyc2UgJXNcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDcmVhdGUgYSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGNvbnRleHQsIHRoZSAyIGZpcnN0IGFyZ3VtZW50cworICAgICAqIGFyZSBub3QgdXNlZCBzaW5jZSB3ZSB3YW50IHRvIGJ1aWxkIGEgdHJlZSBhbmQgbm90IHVzZSBhIFNBWAorICAgICAqIHBhcnNpbmcgaW50ZXJmYWNlLiBXZSBhbHNvIHBhc3MgdGhlIGZpcnN0IGJ5dGVzIG9mIHRoZSBkb2N1bWVudAorICAgICAqIHRvIGFsbG93IGVuY29kaW5nIGRldGVjdGlvbiB3aGVuIGNyZWF0aW5nIHRoZSBwYXJzZXIgYnV0IHRoaXMKKyAgICAgKiBpcyBvcHRpb25hbC4KKyAgICAgKi8KKyAgICBjdHh0ID0geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMsIHJlcywgZmlsZW5hbWUpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gY3JlYXRlIHBhcnNlciBjb250ZXh0ICFcbiIpOworCXJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGxvb3Agb24gdGhlIGlucHV0IGdldHRpbmcgdGhlIGRvY3VtZW50IGRhdGEsIG9mIGNvdXJzZSA0IGJ5dGVzCisgICAgICogYXQgYSB0aW1lIGlzIG5vdCByZWFsaXN0aWMgYnV0IGFsbG93cyB0byB2ZXJpZnkgdGVzdGluZyBvbiBzbWFsbAorICAgICAqIGRvY3VtZW50cy4KKyAgICAgKi8KKyAgICB3aGlsZSAoKHJlcyA9IHJlYWRQYWNrZXQoY2hhcnMsIDQpKSA+IDApIHsKKyAgICAgICAgeG1sUGFyc2VDaHVuayhjdHh0LCBjaGFycywgcmVzLCAwKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIHRoZXJlIGlzIG5vIG1vcmUgaW5wdXQsIGluZGljYXRlIHRoZSBwYXJzaW5nIGlzIGZpbmlzaGVkLgorICAgICAqLworICAgIHhtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworCisgICAgLyoKKyAgICAgKiBjb2xsZWN0IHRoZSBkb2N1bWVudCBiYWNrIGFuZCBpZiBpdCB3YXMgd2VsbGZvcm1lZAorICAgICAqIGFuZCBkZXN0cm95IHRoZSBwYXJzZXIgY29udGV4dC4KKyAgICAgKi8KKyAgICBkb2MgPSBjdHh0LT5teURvYzsKKyAgICByZXMgPSBjdHh0LT53ZWxsRm9ybWVkOworICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCisgICAgaWYgKCFyZXMpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcGFyc2UgJXNcbiIsIGZpbGVuYW1lKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIHNpbmNlIHdlIGRvbid0IHVzZSB0aGUgZG9jdW1lbnQsIGRlc3Ryb3kgaXQgbm93LgorICAgICAqLworICAgIHhtbEZyZWVEb2MoZG9jKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuKDEpOworCisgICAgLyoKKyAgICAgKiB0aGlzIGluaXRpYWxpemUgdGhlIGxpYnJhcnkgYW5kIGNoZWNrIHBvdGVudGlhbCBBQkkgbWlzbWF0Y2hlcworICAgICAqIGJldHdlZW4gdGhlIHZlcnNpb24gaXQgd2FzIGNvbXBpbGVkIGZvciBhbmQgdGhlIGFjdHVhbCBzaGFyZWQKKyAgICAgKiBsaWJyYXJ5IHVzZWQuCisgICAgICovCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgLyoKKyAgICAgKiBzaW11bGF0ZSBhIHByb2dyZXNzaXZlIHBhcnNpbmcgdXNpbmcgdGhlIGlucHV0IGZpbGUuCisgICAgICovCisgICAgZGVzYyA9IGZvcGVuKGFyZ3ZbMV0sICJyYiIpOworICAgIGlmIChkZXNjICE9IE5VTEwpIHsKKwlleGFtcGxlNEZ1bmMoYXJndlsxXSk7CisJZmNsb3NlKGRlc2MpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlICVzXG4iLCBhcmd2WzFdKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENsZWFudXAgZnVuY3Rpb24gZm9yIHRoZSBYTUwgbGlicmFyeS4KKyAgICAgKi8KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgLyoKKyAgICAgKiB0aGlzIGlzIHRvIGRlYnVnIG1lbW9yeSBmb3IgcmVncmVzc2lvbiB0ZXN0cworICAgICAqLworICAgIHhtbE1lbW9yeUR1bXAoKTsKKyAgICByZXR1cm4oMCk7Cit9CisjZWxzZSAvKiAhIExJQlhNTF9QVVNIX0VOQUJMRUQgKi8KK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIGZwcmludGYoc3RkZXJyLCAiTGlicmFyeSBub3QgY29tcGlsZWQgd2l0aCBwdXNoIHBhcnNlciBzdXBwb3J0XG4iKTsKKyAgICByZXR1cm4oMSk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3JlYWRlcjEuYyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3JlYWRlcjEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGRiMmExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyMS5jCkBAIC0wLDAgKzEsMTA3IEBACisvKioKKyAqIHNlY3Rpb246IHhtbFJlYWRlcgorICogc3lub3BzaXM6IFBhcnNlIGFuIFhNTCBmaWxlIHdpdGggYW4geG1sUmVhZGVyCisgKiBwdXJwb3NlOiBEZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIHhtbFJlYWRlckZvckZpbGUoKSB0byBwYXJzZSBhbiBYTUwgZmlsZQorICogICAgICAgICAgYW5kIGR1bXAgdGhlIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgbm9kZXMgZm91bmQgaW4gdGhlIHByb2Nlc3MuCisgKiAgICAgICAgICAoTm90ZSB0aGF0IHRoZSBYTUxSZWFkZXIgZnVuY3Rpb25zIHJlcXVpcmUgbGlieG1sMiB2ZXJzaW9uIGxhdGVyCisgKiAgICAgICAgICB0aGFuIDIuNi4pCisgKiB1c2FnZTogcmVhZGVyMSA8ZmlsZW5hbWU+CisgKiB0ZXN0OiByZWFkZXIxIHRlc3QyLnhtbCA+IHJlYWRlcjEudG1wIDsgZGlmZiByZWFkZXIxLnRtcCByZWFkZXIxLnJlcyA7IHJtIHJlYWRlcjEudG1wCisgKiBhdXRob3I6IERhbmllbCBWZWlsbGFyZAorICogY29weTogc2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWFkZXIuaD4KKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorCisvKioKKyAqIHByb2Nlc3NOb2RlOgorICogQHJlYWRlcjogdGhlIHhtbFJlYWRlcgorICoKKyAqIER1bXAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgbm9kZQorICovCitzdGF0aWMgdm9pZAorcHJvY2Vzc05vZGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lLCAqdmFsdWU7CisKKyAgICBuYW1lID0geG1sVGV4dFJlYWRlckNvbnN0TmFtZShyZWFkZXIpOworICAgIGlmIChuYW1lID09IE5VTEwpCisJbmFtZSA9IEJBRF9DQVNUICItLSI7CisKKyAgICB2YWx1ZSA9IHhtbFRleHRSZWFkZXJDb25zdFZhbHVlKHJlYWRlcik7CisKKyAgICBwcmludGYoIiVkICVkICVzICVkICVkIiwgCisJICAgIHhtbFRleHRSZWFkZXJEZXB0aChyZWFkZXIpLAorCSAgICB4bWxUZXh0UmVhZGVyTm9kZVR5cGUocmVhZGVyKSwKKwkgICAgbmFtZSwKKwkgICAgeG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50KHJlYWRlciksCisJICAgIHhtbFRleHRSZWFkZXJIYXNWYWx1ZShyZWFkZXIpKTsKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKwlwcmludGYoIlxuIik7CisgICAgZWxzZSB7CisgICAgICAgIGlmICh4bWxTdHJsZW4odmFsdWUpID4gNDApCisgICAgICAgICAgICBwcmludGYoIiAlLjQwcy4uLlxuIiwgdmFsdWUpOworICAgICAgICBlbHNlCisJICAgIHByaW50ZigiICVzXG4iLCB2YWx1ZSk7CisgICAgfQorfQorCisvKioKKyAqIHN0cmVhbUZpbGU6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIG5hbWUgdG8gcGFyc2UKKyAqCisgKiBQYXJzZSBhbmQgcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgYW4gWE1MIGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCitzdHJlYW1GaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgaW50IHJldDsKKworICAgIHJlYWRlciA9IHhtbFJlYWRlckZvckZpbGUoZmlsZW5hbWUsIE5VTEwsIDApOworICAgIGlmIChyZWFkZXIgIT0gTlVMTCkgeworICAgICAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgICAgICB3aGlsZSAocmV0ID09IDEpIHsKKyAgICAgICAgICAgIHByb2Nlc3NOb2RlKHJlYWRlcik7CisgICAgICAgICAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgICAgICB9CisgICAgICAgIHhtbEZyZWVUZXh0UmVhZGVyKHJlYWRlcik7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyA6IGZhaWxlZCB0byBwYXJzZVxuIiwgZmlsZW5hbWUpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gb3BlbiAlc1xuIiwgZmlsZW5hbWUpOworICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuKDEpOworCisgICAgLyoKKyAgICAgKiB0aGlzIGluaXRpYWxpemUgdGhlIGxpYnJhcnkgYW5kIGNoZWNrIHBvdGVudGlhbCBBQkkgbWlzbWF0Y2hlcworICAgICAqIGJldHdlZW4gdGhlIHZlcnNpb24gaXQgd2FzIGNvbXBpbGVkIGZvciBhbmQgdGhlIGFjdHVhbCBzaGFyZWQKKyAgICAgKiBsaWJyYXJ5IHVzZWQuCisgICAgICovCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgc3RyZWFtRmlsZShhcmd2WzFdKTsKKworICAgIC8qCisgICAgICogQ2xlYW51cCBmdW5jdGlvbiBmb3IgdGhlIFhNTCBsaWJyYXJ5LgorICAgICAqLworICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICAvKgorICAgICAqIHRoaXMgaXMgdG8gZGVidWcgbWVtb3J5IGZvciByZWdyZXNzaW9uIHRlc3RzCisgICAgICovCisgICAgeG1sTWVtb3J5RHVtcCgpOworICAgIHJldHVybigwKTsKK30KKworI2Vsc2UKK2ludCBtYWluKHZvaWQpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlhJbmNsdWRlIHN1cHBvcnQgbm90IGNvbXBpbGVkIGluXG4iKTsKKyAgICBleGl0KDEpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9yZWFkZXIxLnJlcyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3JlYWRlcjEucmVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNDhkODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9yZWFkZXIxLnJlcwpAQCAtMCwwICsxLDE0IEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgc3JjIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGRlc3QgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgc3JjIDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyMi5jIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMmFkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9yZWFkZXIyLmMKQEAgLTAsMCArMSwxMjIgQEAKKy8qKgorICogc2VjdGlvbjogeG1sUmVhZGVyCisgKiBzeW5vcHNpczogUGFyc2UgYW5kIHZhbGlkYXRlIGFuIFhNTCBmaWxlIHdpdGggYW4geG1sUmVhZGVyCisgKiBwdXJwb3NlOiBEZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIHhtbFJlYWRlckZvckZpbGUoKSB0byBwYXJzZSBhbiBYTUwgZmlsZQorICogICAgICAgICAgdmFsaWRhdGluZyB0aGUgY29udGVudCBpbiB0aGUgcHJvY2VzcyBhbmQgYWN0aXZhdGluZyBvcHRpb25zCisgKiAgICAgICAgICBsaWtlIGVudGl0aWVzIHN1YnN0aXR1dGlvbiwgYW5kIERURCBhdHRyaWJ1dGVzIGRlZmF1bHRpbmcuCisgKiAgICAgICAgICAoTm90ZSB0aGF0IHRoZSBYTUxSZWFkZXIgZnVuY3Rpb25zIHJlcXVpcmUgbGlieG1sMiB2ZXJzaW9uIGxhdGVyCisgKiAgICAgICAgICB0aGFuIDIuNi4pCisgKiB1c2FnZTogcmVhZGVyMiA8dmFsaWRfeG1sX2ZpbGVuYW1lPgorICogdGVzdDogcmVhZGVyMiB0ZXN0Mi54bWwgPiByZWFkZXIxLnRtcCA7IGRpZmYgcmVhZGVyMS50bXAgcmVhZGVyMS5yZXMgOyBybSByZWFkZXIxLnRtcAorICogYXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqIGNvcHk6IHNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVhZGVyLmg+CisKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKworLyoqCisgKiBwcm9jZXNzTm9kZToKKyAqIEByZWFkZXI6IHRoZSB4bWxSZWFkZXIKKyAqCisgKiBEdW1wIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IG5vZGUKKyAqLworc3RhdGljIHZvaWQKK3Byb2Nlc3NOb2RlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwgKnZhbHVlOworCisgICAgbmFtZSA9IHhtbFRleHRSZWFkZXJDb25zdE5hbWUocmVhZGVyKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorCW5hbWUgPSBCQURfQ0FTVCAiLS0iOworCisgICAgdmFsdWUgPSB4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZShyZWFkZXIpOworCisgICAgcHJpbnRmKCIlZCAlZCAlcyAlZCAlZCIsIAorCSAgICB4bWxUZXh0UmVhZGVyRGVwdGgocmVhZGVyKSwKKwkgICAgeG1sVGV4dFJlYWRlck5vZGVUeXBlKHJlYWRlciksCisJICAgIG5hbWUsCisJICAgIHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudChyZWFkZXIpLAorCSAgICB4bWxUZXh0UmVhZGVySGFzVmFsdWUocmVhZGVyKSk7CisgICAgaWYgKHZhbHVlID09IE5VTEwpCisJcHJpbnRmKCJcbiIpOworICAgIGVsc2UgeworICAgICAgICBpZiAoeG1sU3RybGVuKHZhbHVlKSA+IDQwKQorICAgICAgICAgICAgcHJpbnRmKCIgJS40MHMuLi5cbiIsIHZhbHVlKTsKKyAgICAgICAgZWxzZQorCSAgICBwcmludGYoIiAlc1xuIiwgdmFsdWUpOworICAgIH0KK30KKworLyoqCisgKiBzdHJlYW1GaWxlOgorICogQGZpbGVuYW1lOiB0aGUgZmlsZSBuYW1lIHRvIHBhcnNlCisgKgorICogUGFyc2UsIHZhbGlkYXRlIGFuZCBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBhbiBYTUwgZmlsZS4KKyAqLworc3RhdGljIHZvaWQKK3N0cmVhbUZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsKKyAgICBpbnQgcmV0OworCisKKyAgICAvKgorICAgICAqIFBhc3Mgc29tZSBzcGVjaWFsIHBhcnNpbmcgb3B0aW9ucyB0byBhY3RpdmF0ZSBEVEQgYXR0cmlidXRlIGRlZmF1bHRpbmcsCisgICAgICogZW50aXRpZXMgc3Vic3RpdHV0aW9uIGFuZCBEVEQgdmFsaWRhdGlvbgorICAgICAqLworICAgIHJlYWRlciA9IHhtbFJlYWRlckZvckZpbGUoZmlsZW5hbWUsIE5VTEwsCisgICAgICAgICAgICAgICAgIFhNTF9QQVJTRV9EVERBVFRSIHwgIC8qIGRlZmF1bHQgRFREIGF0dHJpYnV0ZXMgKi8KKwkJIFhNTF9QQVJTRV9OT0VOVCB8ICAgIC8qIHN1YnN0aXR1dGUgZW50aXRpZXMgKi8KKwkJIFhNTF9QQVJTRV9EVERWQUxJRCk7IC8qIHZhbGlkYXRlIHdpdGggdGhlIERURCAqLworICAgIGlmIChyZWFkZXIgIT0gTlVMTCkgeworICAgICAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgICAgICB3aGlsZSAocmV0ID09IDEpIHsKKyAgICAgICAgICAgIHByb2Nlc3NOb2RlKHJlYWRlcik7CisgICAgICAgICAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgICAgICB9CisJLyoKKwkgKiBPbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBmdWxseSBwYXJzZWQgY2hlY2sgdGhlIHZhbGlkYXRpb24gcmVzdWx0cworCSAqLworCWlmICh4bWxUZXh0UmVhZGVySXNWYWxpZChyZWFkZXIpICE9IDEpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJEb2N1bWVudCAlcyBkb2VzIG5vdCB2YWxpZGF0ZVxuIiwgZmlsZW5hbWUpOworCX0KKyAgICAgICAgeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIDogZmFpbGVkIHRvIHBhcnNlXG4iLCBmaWxlbmFtZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBvcGVuICVzXG4iLCBmaWxlbmFtZSk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBpZiAoYXJnYyAhPSAyKQorICAgICAgICByZXR1cm4oMSk7CisKKyAgICAvKgorICAgICAqIHRoaXMgaW5pdGlhbGl6ZSB0aGUgbGlicmFyeSBhbmQgY2hlY2sgcG90ZW50aWFsIEFCSSBtaXNtYXRjaGVzCisgICAgICogYmV0d2VlbiB0aGUgdmVyc2lvbiBpdCB3YXMgY29tcGlsZWQgZm9yIGFuZCB0aGUgYWN0dWFsIHNoYXJlZAorICAgICAqIGxpYnJhcnkgdXNlZC4KKyAgICAgKi8KKyAgICBMSUJYTUxfVEVTVF9WRVJTSU9OCisKKyAgICBzdHJlYW1GaWxlKGFyZ3ZbMV0pOworCisgICAgLyoKKyAgICAgKiBDbGVhbnVwIGZ1bmN0aW9uIGZvciB0aGUgWE1MIGxpYnJhcnkuCisgICAgICovCisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIC8qCisgICAgICogdGhpcyBpcyB0byBkZWJ1ZyBtZW1vcnkgZm9yIHJlZ3Jlc3Npb24gdGVzdHMKKyAgICAgKi8KKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuKDApOworfQorCisjZWxzZQoraW50IG1haW4odm9pZCkgeworICAgIGZwcmludGYoc3RkZXJyLCAiWEluY2x1ZGUgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIpOworICAgIGV4aXQoMSk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3JlYWRlcjMuYyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3JlYWRlcjMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MWY5ZDNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyMy5jCkBAIC0wLDAgKzEsMTIwIEBACisvKioKKyAqIHNlY3Rpb246IHhtbFJlYWRlcgorICogc3lub3BzaXM6IFNob3cgaG93IHRvIGV4dHJhY3Qgc3ViZG9jdW1lbnRzIHdpdGggeG1sUmVhZGVyCisgKiBwdXJwb3NlOiBEZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4oKSAKKyAqICAgICAgICAgIHRvIHBhcnNlIGFuIFhNTCBmaWxlIHdpdGggdGhlIHhtbFJlYWRlciB3aGlsZSBjb2xsZWN0aW5nCisgKiAgICAgICAgICBvbmx5IHNvbWUgc3VicGFydHMgb2YgdGhlIGRvY3VtZW50LgorICogICAgICAgICAgKE5vdGUgdGhhdCB0aGUgWE1MUmVhZGVyIGZ1bmN0aW9ucyByZXF1aXJlIGxpYnhtbDIgdmVyc2lvbiBsYXRlcgorICogICAgICAgICAgdGhhbiAyLjYuKQorICogdXNhZ2U6IHJlYWRlcjMKKyAqIHRlc3Q6IHJlYWRlcjMgPiByZWFkZXIzLnRtcCA7IGRpZmYgcmVhZGVyMy50bXAgcmVhZGVyMy5yZXMgOyBybSByZWFkZXIzLnRtcAorICogYXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqIGNvcHk6IHNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVhZGVyLmg+CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKworCisvKioKKyAqIHN0cmVhbUZpbGU6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIG5hbWUgdG8gcGFyc2UKKyAqCisgKiBQYXJzZSBhbmQgcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgYW4gWE1MIGZpbGUuCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvYyB3aXRoIGp1c3QgdGhlIGVsZW1lbnRzIHByZXNlcnZlZC4KKyAqLworc3RhdGljIHhtbERvY1B0cgorZXh0cmFjdEZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IHhtbENoYXIgKnBhdHRlcm4pIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOworICAgIGludCByZXQ7CisKKyAgICAvKgorICAgICAqIGJ1aWxkIGFuIHhtbFJlYWRlciBmb3IgdGhhdCBmaWxlCisgICAgICovCisgICAgcmVhZGVyID0geG1sUmVhZGVyRm9yRmlsZShmaWxlbmFtZSwgTlVMTCwgMCk7CisgICAgaWYgKHJlYWRlciAhPSBOVUxMKSB7CisgICAgICAgIC8qCisJICogYWRkIHRoZSBwYXR0ZXJuIHRvIHByZXNlcnZlCisJICovCisgICAgICAgIGlmICh4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuKHJlYWRlciwgcGF0dGVybiwgTlVMTCkgPCAwKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIDogZmFpbGVkIGFkZCBwcmVzZXJ2ZSBwYXR0ZXJuICVzXG4iLAorCSAgICAgICAgICAgIGZpbGVuYW1lLCAoY29uc3QgY2hhciAqKSBwYXR0ZXJuKTsKKwl9CisJLyoKKwkgKiBQYXJzZSBhbmQgdHJhdmVyc2UgdGhlIHRyZWUsIGNvbGxlY3RpbmcgdGhlIG5vZGVzIGluIHRoZSBwcm9jZXNzCisJICovCisgICAgICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcik7CisgICAgICAgIHdoaWxlIChyZXQgPT0gMSkgeworICAgICAgICAgICAgcmV0ID0geG1sVGV4dFJlYWRlclJlYWQocmVhZGVyKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgOiBmYWlsZWQgdG8gcGFyc2VcbiIsIGZpbGVuYW1lKTsKKwkgICAgeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKwkgICAgcmV0dXJuKE5VTEwpOworICAgICAgICB9CisJLyoKKwkgKiBnZXQgdGhlIHJlc3VsdGluZyBub2RlcworCSAqLworCWRvYyA9IHhtbFRleHRSZWFkZXJDdXJyZW50RG9jKHJlYWRlcik7CisJLyoKKwkgKiBGcmVlIHVwIHRoZSByZWFkZXIKKwkgKi8KKyAgICAgICAgeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBvcGVuICVzXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4oZG9jKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgY29uc3QgY2hhciAqZmlsZW5hbWUgPSAidGVzdDMueG1sIjsKKyAgICBjb25zdCBjaGFyICpwYXR0ZXJuID0gInByZXNlcnZlZCI7CisgICAgeG1sRG9jUHRyIGRvYzsKKworICAgIGlmIChhcmdjID09IDMpIHsKKyAgICAgICAgZmlsZW5hbWUgPSBhcmd2WzFdOworCXBhdHRlcm4gPSBhcmd2WzJdOworICAgIH0KKworICAgIC8qCisgICAgICogdGhpcyBpbml0aWFsaXplIHRoZSBsaWJyYXJ5IGFuZCBjaGVjayBwb3RlbnRpYWwgQUJJIG1pc21hdGNoZXMKKyAgICAgKiBiZXR3ZWVuIHRoZSB2ZXJzaW9uIGl0IHdhcyBjb21waWxlZCBmb3IgYW5kIHRoZSBhY3R1YWwgc2hhcmVkCisgICAgICogbGlicmFyeSB1c2VkLgorICAgICAqLworICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKworICAgIGRvYyA9IGV4dHJhY3RGaWxlKGZpbGVuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSBwYXR0ZXJuKTsKKyAgICBpZiAoZG9jICE9IE5VTEwpIHsKKyAgICAgICAgLyoKKwkgKiBvdXB0dXQgdGhlIHJlc3VsdC4KKwkgKi8KKyAgICAgICAgeG1sRG9jRHVtcChzdGRvdXQsIGRvYyk7CisJLyoKKwkgKiBkb24ndCBmb3JnZXQgdG8gZnJlZSB1cCB0aGUgZG9jCisJICovCisJeG1sRnJlZURvYyhkb2MpOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBDbGVhbnVwIGZ1bmN0aW9uIGZvciB0aGUgWE1MIGxpYnJhcnkuCisgICAgICovCisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIC8qCisgICAgICogdGhpcyBpcyB0byBkZWJ1ZyBtZW1vcnkgZm9yIHJlZ3Jlc3Npb24gdGVzdHMKKyAgICAgKi8KKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuKDApOworfQorCisjZWxzZQoraW50IG1haW4odm9pZCkgeworICAgIGZwcmludGYoc3RkZXJyLCAiUmVhZGVyLCBQYXR0ZXJuIG9yIG91dHB1dCBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIik7CisgICAgZXhpdCgxKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyMy5yZXMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9yZWFkZXIzLnJlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGUyZTgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyMy5yZXMKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jPjxwYXJlbnQ+PHByZXNlcnZlZC8+PHByZXNlcnZlZD4KKyAgICAgIGNvbnRlbnQxCisgICAgICA8Y2hpbGQxLz4KKyAgICAgIDxjaGlsZDI+Y29udGVudDI8L2NoaWxkMj4KKyAgICAgIDxwcmVzZXJ2ZWQ+dG9vPC9wcmVzZXJ2ZWQ+CisgICAgICA8Y2hpbGQyPmNvbnRlbnQzPC9jaGlsZDI+CisgICAgICA8cHJlc2VydmVkLz4KKyAgICAgIDxjaGlsZDI+Y29udGVudDQ8L2NoaWxkMj4KKyAgICAgIDxwcmVzZXJ2ZWQvPgorICAgICAgPGNoaWxkMj5jb250ZW50NTwvY2hpbGQyPgorICAgICAgY29udGVudDYKKyAgICA8L3ByZXNlcnZlZD48cHJlc2VydmVkLz48cHJlc2VydmVkLz48L3BhcmVudD48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3JlYWRlcjQuYyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3JlYWRlcjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDI3MjZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyNC5jCkBAIC0wLDAgKzEsMTIyIEBACisvKioKKyAqIHNlY3Rpb246IHhtbFJlYWRlcgorICogc3lub3BzaXM6IFBhcnNlIG11bHRpcGxlIFhNTCBmaWxlcyByZXVzaW5nIGFuIHhtbFJlYWRlcgorICogcHVycG9zZTogRGVtb25zdHJhdGUgdGhlIHVzZSBvZiB4bWxSZWFkZXJGb3JGaWxlKCkgYW5kCisgKiB4bWxSZWFkZXJOZXdGaWxlIHRvIHBhcnNlIFhNTCBmaWxlcyB3aGlsZSByZXVzaW5nIHRoZSByZWFkZXIgb2JqZWN0CisgKiBhbmQgcGFyc2VyIGNvbnRleHQuICAoTm90ZSB0aGF0IHRoZSBYTUxSZWFkZXIgZnVuY3Rpb25zIHJlcXVpcmUKKyAqIGxpYnhtbDIgdmVyc2lvbiBsYXRlciB0aGFuIDIuNi4pCisgKiB1c2FnZTogcmVhZGVyNCA8ZmlsZW5hbWU+IFsgZmlsZW5hbWUgLi4uIF0KKyAqIHRlc3Q6IHJlYWRlcjQgdGVzdDEueG1sIHRlc3QyLnhtbCB0ZXN0My54bWwgPiByZWFkZXI0LnRtcCA7IGRpZmYgcmVhZGVyNC50bXAgcmVhZGVyNC5yZXMgOyBybSByZWFkZXI0LnRtcAorICogYXV0aG9yOiBHcmFoYW0gQmVubmV0dAorICogY29weTogc2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWFkZXIuaD4KKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorCitzdGF0aWMgdm9pZCBwcm9jZXNzRG9jKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyUHRyKSB7CisgICAgaW50IHJldDsKKyAgICB4bWxEb2NQdHIgZG9jUHRyOworICAgIGNvbnN0IHhtbENoYXIgKlVSTDsKKworICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlclB0cik7CisgICAgd2hpbGUgKHJldCA9PSAxKSB7CisgICAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXJQdHIpOworICAgIH0KKworICAgIC8qCisgICAgICogT25lIGNhbiBvYnRhaW4gdGhlIGRvY3VtZW50IHBvaW50ZXIgdG8gZ2V0IGluc3RlcmVzdGluZworICAgICAqIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkb2N1bWVudCBsaWtlIHRoZSBVUkwsIGJ1dCBvbmUgbXVzdCBhbHNvCisgICAgICogYmUgc3VyZSB0byBjbGVhbiBpdCB1cCBhdCB0aGUgZW5kIChzZWUgYmVsb3cpLgorICAgICAqLworICAgIGRvY1B0ciA9IHhtbFRleHRSZWFkZXJDdXJyZW50RG9jKHJlYWRlclB0cik7CisgICAgaWYgKE5VTEwgPT0gZG9jUHRyKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBvYnRhaW4gZG9jdW1lbnRcbiIpOyAgICAgIAorICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgIAorICAgIFVSTCA9IGRvY1B0ci0+VVJMOworICAgIGlmIChOVUxMID09IFVSTCkgeworICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gb2J0YWluIFVSTFxuIik7ICAgICAgCisgICAgfQorCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBGYWlsZWQgdG8gcGFyc2VcbiIsIFVSTCk7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgcHJpbnRmKCIlczogUHJvY2Vzc2VkIG9rXG4iLCAoY29uc3QgY2hhciAqKVVSTCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyUHRyOworICAgIGludCBpOworICAgIHhtbERvY1B0ciBkb2NQdHI7CisKKyAgICBpZiAoYXJnYyA8IDIpCisgICAgICAgIHJldHVybigxKTsKKworICAgIC8qCisgICAgICogdGhpcyBpbml0aWFsaXNlcyB0aGUgbGlicmFyeSBhbmQgY2hlY2sgcG90ZW50aWFsIEFCSSBtaXNtYXRjaGVzCisgICAgICogYmV0d2VlbiB0aGUgdmVyc2lvbiBpdCB3YXMgY29tcGlsZWQgZm9yIGFuZCB0aGUgYWN0dWFsIHNoYXJlZAorICAgICAqIGxpYnJhcnkgdXNlZC4KKyAgICAgKi8KKyAgICBMSUJYTUxfVEVTVF9WRVJTSU9OCisKKyAgICAvKgorICAgICAqIENyZWF0ZSBhIG5ldyByZWFkZXIgZm9yIHRoZSBmaXJzdCBmaWxlIGFuZCBwcm9jZXNzIHRoZQorICAgICAqIGRvY3VtZW50LgorICAgICAqLworICAgIHJlYWRlclB0ciA9IHhtbFJlYWRlckZvckZpbGUoYXJndlsxXSwgTlVMTCwgMCk7CisgICAgaWYgKE5VTEwgPT0gcmVhZGVyUHRyKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBmYWlsZWQgdG8gY3JlYXRlIHJlYWRlclxuIiwgYXJndlsxXSk7ICAgICAgCisgICAgICByZXR1cm4oMSk7CisgICAgfQorICAgIHByb2Nlc3NEb2MocmVhZGVyUHRyKTsKKworICAgIC8qCisgICAgICogVGhlIHJlYWRlciBjYW4gYmUgcmV1c2VkIGZvciBzdWJzZXF1ZW50IGZpbGVzLgorICAgICAqLworICAgIGZvciAoaT0yOyBpIDwgYXJnYzsgKytpKSB7CisgICAgICAJeG1sUmVhZGVyTmV3RmlsZShyZWFkZXJQdHIsIGFyZ3ZbaV0sIE5VTEwsIDApOworCWlmIChOVUxMID09IHJlYWRlclB0cikgeworCSAgZnByaW50ZihzdGRlcnIsICIlczogZmFpbGVkIHRvIGNyZWF0ZSByZWFkZXJcbiIsIGFyZ3ZbaV0pOyAgICAgIAorCSAgcmV0dXJuKDEpOworCX0KKyAgICAgICAgcHJvY2Vzc0RvYyhyZWFkZXJQdHIpOworICAgIH0KKworICAgIC8qCisgICAgICogU2luY2Ugd2UndmUgY2FsbGVkIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jLCB3ZSBub3cgaGF2ZSB0bworICAgICAqIGNsZWFuIHVwIGFmdGVyIG91cnNlbHZlcy4gIFdlIG9ubHkgaGF2ZSB0byBkbyB0aGlzIHRoZSBsYXN0CisgICAgICogdGltZSwgYmVjYXVzZSB4bWxSZWFkZXJOZXdGaWxlIGNhbGxzIHhtbEN0eHRSZXNldCB3aGljaCB0YWtlcworICAgICAqIGNhcmUgb2YgaXQuCisgICAgICovCisgICAgZG9jUHRyID0geG1sVGV4dFJlYWRlckN1cnJlbnREb2MocmVhZGVyUHRyKTsKKyAgICBpZiAoZG9jUHRyICE9IE5VTEwpCisgICAgICB4bWxGcmVlRG9jKGRvY1B0cik7CisKKyAgICAvKgorICAgICAqIENsZWFuIHVwIHRoZSByZWFkZXIuCisgICAgICovCisgICAgeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyUHRyKTsKKworICAgIC8qCisgICAgICogQ2xlYW51cCBmdW5jdGlvbiBmb3IgdGhlIFhNTCBsaWJyYXJ5LgorICAgICAqLworICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICAvKgorICAgICAqIHRoaXMgaXMgdG8gZGVidWcgbWVtb3J5IGZvciByZWdyZXNzaW9uIHRlc3RzCisgICAgICovCisgICAgeG1sTWVtb3J5RHVtcCgpOworICAgIHJldHVybigwKTsKK30KKworI2Vsc2UKK2ludCBtYWluKHZvaWQpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgInhtbFJlYWRlciBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIik7CisgICAgZXhpdCgxKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyNC5yZXMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy9yZWFkZXI0LnJlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzkzZjgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvcmVhZGVyNC5yZXMKQEAgLTAsMCArMSwzIEBACit0ZXN0MS54bWw6IFByb2Nlc3NlZCBvawordGVzdDIueG1sOiBQcm9jZXNzZWQgb2sKK3Rlc3QzLnhtbDogUHJvY2Vzc2VkIG9rCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90ZXN0MS54bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90ZXN0MS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjlkNjJmMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3Rlc3QxLnhtbApAQCAtMCwwICsxIEBACis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3Rlc3QyLnhtbCBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3Rlc3QyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzkwZjVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdGVzdDIueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoc3JjIHwgZGVzdCkqPgorPCFFTEVNRU5UIHNyYyBFTVBUWT4KKzwhRUxFTUVOVCBkZXN0IEVNUFRZPgorPCFBVFRMSVNUIHNyYyByZWYgSURSRUYgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVzdCBpZCBJRCAjSU1QTElFRD4KK10+Cis8ZG9jPgorICA8c3JjIHJlZj0iZm9vIi8+CisgIDxkZXN0IGlkPSJmb28iLz4KKyAgPHNyYyByZWY9ImZvbyIvPgorPC9kb2M+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3Rlc3QzLnhtbCBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3Rlc3QzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDA4MjhmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdGVzdDMueG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxkb2M+CisgIDxwYXJlbnQ+CisgICAgPGRpc2NhcmRlZD4KKyAgICAgIDxkaXNjYXJkZWQvPgorICAgIDwvZGlzY2FyZGVkPgorICAgIDxwcmVzZXJ2ZWQvPgorICAgIFRoaXMgdGV4dCBub2RlIG11c3QgYmUgZGlzY2FyZGVkCisgICAgPGRpc2NhcmRlZD4KKyAgICAgIDxkaXNjYXJkZWQvPgorICAgIDwvZGlzY2FyZGVkPgorICAgIDxwcmVzZXJ2ZWQ+CisgICAgICBjb250ZW50MQorICAgICAgPGNoaWxkMT48L2NoaWxkMT4KKyAgICAgIDxjaGlsZDI+Y29udGVudDI8L2NoaWxkMj4KKyAgICAgIDxwcmVzZXJ2ZWQ+dG9vPC9wcmVzZXJ2ZWQ+CisgICAgICA8Y2hpbGQyPmNvbnRlbnQzPC9jaGlsZDI+CisgICAgICA8cHJlc2VydmVkPjwvcHJlc2VydmVkPgorICAgICAgPGNoaWxkMj5jb250ZW50NDwvY2hpbGQyPgorICAgICAgPHByZXNlcnZlZC8+CisgICAgICA8Y2hpbGQyPmNvbnRlbnQ1PC9jaGlsZDI+CisgICAgICBjb250ZW50NgorICAgIDwvcHJlc2VydmVkPgorICAgIFRoaXMgdGV4dCBub2RlIG11c3QgYmUgZGlzY2FyZGVkCisgICAgPGRpc2NhcmRlZD4KKyAgICAgIDxkaXNjYXJkZWQvPgorICAgIDwvZGlzY2FyZGVkPgorICAgIFRoaXMgdGV4dCBub2RlIG11c3QgYmUgZGlzY2FyZGVkCisgICAgPHByZXNlcnZlZD48L3ByZXNlcnZlZD4KKyAgICBUaGlzIHRleHQgbm9kZSBtdXN0IGJlIGRpc2NhcmRlZAorICAgIDxwcmVzZXJ2ZWQvPgorICAgIFRoaXMgdGV4dCBub2RlIG11c3QgYmUgZGlzY2FyZGVkCisgICAgPGRpc2NhcmRlZD4KKyAgICAgIDxkaXNjYXJkZWQvPgorICAgIDwvZGlzY2FyZGVkPgorICAgIFRoaXMgdGV4dCBub2RlIG11c3QgYmUgZGlzY2FyZGVkCisgIDwvcGFyZW50PgorPC9kb2M+CisKKyAgICAgIApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdGVzdFdyaXRlci5jIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdGVzdFdyaXRlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNThmOTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90ZXN0V3JpdGVyLmMKQEAgLTAsMCArMSwxMTk4IEBACisvKioKKyAqIHNlY3Rpb246IHhtbFdyaXRlcgorICogc3lub3BzaXM6IHVzZSB2YXJpb3VzIEFQSXMgZm9yIHRoZSB4bWxXcml0ZXIKKyAqIHB1cnBvc2U6IHRlc3RzIGEgbnVtYmVyIG9mIEFQSXMgZm9yIHRoZSB4bWxXcml0ZXIsIGVzcGVjaWFsbHkKKyAqICAgICAgICAgIHRoZSB2YXJpb3VzIG1ldGhvZHMgdG8gd3JpdGUgdG8gYSBmaWxlbmFtZSwgdG8gYSBtZW1vcnkKKyAqICAgICAgICAgIGJ1ZmZlciwgdG8gYSBuZXcgZG9jdW1lbnQsIG9yIHRvIGEgc3VidHJlZS4gSXQgc2hvd3MgaG93IHRvCisgKiAgICAgICAgICBkbyBlbmNvZGluZyBzdHJpbmcgY29udmVyc2lvbnMgdG9vLiBUaGUgcmVzdWx0aW5nCisgKiAgICAgICAgICBkb2N1bWVudHMgYXJlIHRoZW4gc2VyaWFsaXplZC4KKyAqIHVzYWdlOiB0ZXN0V3JpdGVyCisgKiB0ZXN0OiB0ZXN0V3JpdGVyIDsgZm9yIGkgaW4gMSAyIDMgNCA7IGRvIGRpZmYgd3JpdGVyLnhtbCB3cml0ZXIkJGkucmVzIDsgZG9uZSA7IHJtIHdyaXRlcioucmVzCisgKiBhdXRob3I6IEFsZnJlZCBNaWNrYXV0c2NoCisgKiBjb3B5OiBzZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbmNvZGluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx3cml0ZXIuaD4KKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKworI2RlZmluZSBNWV9FTkNPRElORyAiSVNPLTg4NTktMSIKKwordm9pZCB0ZXN0WG1sd3JpdGVyRmlsZW5hbWUoY29uc3QgY2hhciAqdXJpKTsKK3ZvaWQgdGVzdFhtbHdyaXRlck1lbW9yeShjb25zdCBjaGFyICpmaWxlKTsKK3ZvaWQgdGVzdFhtbHdyaXRlckRvYyhjb25zdCBjaGFyICpmaWxlKTsKK3ZvaWQgdGVzdFhtbHdyaXRlclRyZWUoY29uc3QgY2hhciAqZmlsZSk7Cit4bWxDaGFyICpDb252ZXJ0SW5wdXQoY29uc3QgY2hhciAqaW4sIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKKworaW50CittYWluKHZvaWQpCit7CisgICAgLyoKKyAgICAgKiB0aGlzIGluaXRpYWxpemUgdGhlIGxpYnJhcnkgYW5kIGNoZWNrIHBvdGVudGlhbCBBQkkgbWlzbWF0Y2hlcworICAgICAqIGJldHdlZW4gdGhlIHZlcnNpb24gaXQgd2FzIGNvbXBpbGVkIGZvciBhbmQgdGhlIGFjdHVhbCBzaGFyZWQKKyAgICAgKiBsaWJyYXJ5IHVzZWQuCisgICAgICovCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgLyogZmlyc3QsIHRoZSBmaWxlIHZlcnNpb24gKi8KKyAgICB0ZXN0WG1sd3JpdGVyRmlsZW5hbWUoIndyaXRlcjEucmVzIik7CisKKyAgICAvKiBuZXh0LCB0aGUgbWVtb3J5IHZlcnNpb24gKi8KKyAgICB0ZXN0WG1sd3JpdGVyTWVtb3J5KCJ3cml0ZXIyLnJlcyIpOworCisgICAgLyogbmV4dCwgdGhlIERPTSB2ZXJzaW9uICovCisgICAgdGVzdFhtbHdyaXRlckRvYygid3JpdGVyMy5yZXMiKTsKKworICAgIC8qIG5leHQsIHRoZSB0cmVlIHZlcnNpb24gKi8KKyAgICB0ZXN0WG1sd3JpdGVyVHJlZSgid3JpdGVyNC5yZXMiKTsKKworICAgIC8qCisgICAgICogQ2xlYW51cCBmdW5jdGlvbiBmb3IgdGhlIFhNTCBsaWJyYXJ5LgorICAgICAqLworICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICAvKgorICAgICAqIHRoaXMgaXMgdG8gZGVidWcgbWVtb3J5IGZvciByZWdyZXNzaW9uIHRlc3RzCisgICAgICovCisgICAgeG1sTWVtb3J5RHVtcCgpOworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHRlc3RYbWx3cml0ZXJGaWxlbmFtZToKKyAqIEB1cmk6IHRoZSBvdXRwdXQgVVJJCisgKgorICogdGVzdCB0aGUgeG1sV3JpdGVyIGludGVyZmFjZSB3aGVuIHdyaXRpbmcgdG8gYSBuZXcgZmlsZQorICovCit2b2lkCit0ZXN0WG1sd3JpdGVyRmlsZW5hbWUoY29uc3QgY2hhciAqdXJpKQoreworICAgIGludCByYzsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsKKyAgICB4bWxDaGFyICp0bXA7CisKKyAgICAvKiBDcmVhdGUgYSBuZXcgWG1sV3JpdGVyIGZvciB1cmksIHdpdGggbm8gY29tcHJlc3Npb24uICovCisgICAgd3JpdGVyID0geG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lKHVyaSwgMCk7CisgICAgaWYgKHdyaXRlciA9PSBOVUxMKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBjcmVhdGluZyB0aGUgeG1sIHdyaXRlclxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgeG1sIGRlZmF1bHQgZm9yIHRoZSB2ZXJzaW9uLAorICAgICAqIGVuY29kaW5nIElTTyA4ODU5LTEgYW5kIHRoZSBkZWZhdWx0IGZvciB0aGUgc3RhbmRhbG9uZQorICAgICAqIGRlY2xhcmF0aW9uLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQod3JpdGVyLCBOVUxMLCBNWV9FTkNPRElORywgTlVMTCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJFWEFNUExFIi4gU2luY2UgdGhpc3QgaXMgdGhlIGZpcnN0CisgICAgICogZWxlbWVudCwgdGhpcyB3aWxsIGJlIHRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50LiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFWEFNUExFIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGEgY29tbWVudCBhcyBjaGlsZCBvZiBFWEFNUExFLgorICAgICAqIFBsZWFzZSBvYnNlcnZlLCB0aGF0IHRoZSBpbnB1dCB0byB0aGUgeG1sVGV4dFdyaXRlciBmdW5jdGlvbnMKKyAgICAgKiBIQVMgdG8gYmUgaW4gVVRGLTgsIGV2ZW4gaWYgdGhlIG91dHB1dCBYTUwgaXMgZW5jb2RlZAorICAgICAqIGluIGlzby04ODU5LTEgKi8KKyAgICB0bXAgPSBDb252ZXJ0SW5wdXQoIlRoaXMgaXMgYSBjb21tZW50IHdpdGggc3BlY2lhbCBjaGFyczogPOT2/D4iLAorICAgICAgICAgICAgICAgICAgICAgICBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50KHdyaXRlciwgdG1wKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRmlsZW5hbWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh0bXAgIT0gTlVMTCkgeG1sRnJlZSh0bXApOworCisgICAgLyogU3RhcnQgYW4gZWxlbWVudCBuYW1lZCAiT1JERVIiIGFzIGNoaWxkIG9mIEVYQU1QTEUuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIk9SREVSIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIEFkZCBhbiBhdHRyaWJ1dGUgd2l0aCBuYW1lICJ2ZXJzaW9uIiBhbmQgdmFsdWUgIjEuMCIgdG8gT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUod3JpdGVyLCBCQURfQ0FTVCAidmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIjEuMCIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIEFkZCBhbiBhdHRyaWJ1dGUgd2l0aCBuYW1lICJ4bWw6bGFuZyIgYW5kIHZhbHVlICJkZSIgdG8gT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUod3JpdGVyLCBCQURfQ0FTVCAieG1sOmxhbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICJkZSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGEgY29tbWVudCBhcyBjaGlsZCBvZiBPUkRFUiAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiPOT2/D4iLCBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50KHdyaXRlciwKKwkJICAgICAiVGhpcyBpcyBhbm90aGVyIGNvbW1lbnQgd2l0aCBzcGVjaWFsIGNoYXJzOiAlcyIsCisJCSAgICAgdG1wKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRmlsZW5hbWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh0bXAgIT0gTlVMTCkgeG1sRnJlZSh0bXApOworCisgICAgLyogU3RhcnQgYW4gZWxlbWVudCBuYW1lZCAiSEVBREVSIiBhcyBjaGlsZCBvZiBPUkRFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiSEVBREVSIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIlhfT1JERVJfSUQiIGFzIGNoaWxkIG9mIEhFQURFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiWF9PUkRFUl9JRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlMDEwZCIsIDUzNTM1TCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIkNVU1RPTUVSX0lEIiBhcyBjaGlsZCBvZiBIRUFERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkNVU1RPTUVSX0lEIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVkIiwgMTAxMCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIk5BTUVfMSIgYXMgY2hpbGQgb2YgSEVBREVSLiAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiTfxsbGVyIiwgTVlfRU5DT0RJTkcpOworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJOQU1FXzEiLCB0bXApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHRtcCAhPSBOVUxMKSB4bWxGcmVlKHRtcCk7CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJOQU1FXzIiIGFzIGNoaWxkIG9mIEhFQURFUi4gKi8KKyAgICB0bXAgPSBDb252ZXJ0SW5wdXQoIkr2cmciLCBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIk5BTUVfMiIsIHRtcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodG1wICE9IE5VTEwpIHhtbEZyZWUodG1wKTsKKworICAgIC8qIENsb3NlIHRoZSBlbGVtZW50IG5hbWVkIEhFQURFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJFTlRSSUVTIiBhcyBjaGlsZCBvZiBPUkRFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRU5UUklFUyIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJFTlRSWSIgYXMgY2hpbGQgb2YgRU5UUklFUy4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRU5UUlkiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRmlsZW5hbWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiQVJUSUNMRSIgYXMgY2hpbGQgb2YgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkFSVElDTEUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiPFRlc3Q+Iik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJZX05PIiBhcyBjaGlsZCBvZiBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRU5UUllfTk8iLCAiJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIENsb3NlIHRoZSBlbGVtZW50IG5hbWVkIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRmlsZW5hbWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJZIiBhcyBjaGlsZCBvZiBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJBUlRJQ0xFIiBhcyBjaGlsZCBvZiBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiQVJUSUNMRSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICI8VGVzdCAyPiIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJFTlRSWV9OTyIgYXMgY2hpbGQgb2YgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkVOVFJZX05PIiwgIiVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRmlsZW5hbWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkZPT1RFUiIgYXMgY2hpbGQgb2YgT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkZPT1RFUiIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJGaWxlbmFtZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJURVhUIiBhcyBjaGlsZCBvZiBGT09URVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIlRFWFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiVGhpcyBpcyBhIHRleHQuIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIENsb3NlIHRoZSBlbGVtZW50IG5hbWVkIEZPT1RFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckZpbGVuYW1lOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBIZXJlIHdlIGNvdWxkIGNsb3NlIHRoZSBlbGVtZW50cyBPUkRFUiBhbmQgRVhBTVBMRSB1c2luZyB0aGUKKyAgICAgKiBmdW5jdGlvbiB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCwgYnV0IHNpbmNlIHdlIGRvIG5vdCB3YW50IHRvCisgICAgICogd3JpdGUgYW55IG90aGVyIGVsZW1lbnRzLCB3ZSBzaW1wbHkgY2FsbCB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQsCisgICAgICogd2hpY2ggd2lsbCBkbyBhbGwgdGhlIHdvcmsuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRmlsZW5hbWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmREb2N1bWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB4bWxGcmVlVGV4dFdyaXRlcih3cml0ZXIpOworfQorCisvKioKKyAqIHRlc3RYbWx3cml0ZXJNZW1vcnk6CisgKiBAZmlsZTogdGhlIG91dHB1dCBmaWxlCisgKgorICogdGVzdCB0aGUgeG1sV3JpdGVyIGludGVyZmFjZSB3aGVuIHdyaXRpbmcgdG8gbWVtb3J5CisgKi8KK3ZvaWQKK3Rlc3RYbWx3cml0ZXJNZW1vcnkoY29uc3QgY2hhciAqZmlsZSkKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxDaGFyICp0bXA7CisgICAgRklMRSAqZnA7CisKKyAgICAvKiBDcmVhdGUgYSBuZXcgWE1MIGJ1ZmZlciwgdG8gd2hpY2ggdGhlIFhNTCBkb2N1bWVudCB3aWxsIGJlCisgICAgICogd3JpdHRlbiAqLworICAgIGJ1ZiA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGNyZWF0aW5nIHRoZSB4bWwgYnVmZmVyXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIENyZWF0ZSBhIG5ldyBYbWxXcml0ZXIgZm9yIG1lbW9yeSwgd2l0aCBubyBjb21wcmVzc2lvbi4KKyAgICAgKiBSZW1hcms6IHRoZXJlIGlzIG5vIGNvbXByZXNzaW9uIGZvciB0aGlzIGtpbmQgb2YgeG1sVGV4dFdyaXRlciAqLworICAgIHdyaXRlciA9IHhtbE5ld1RleHRXcml0ZXJNZW1vcnkoYnVmLCAwKTsKKyAgICBpZiAod3JpdGVyID09IE5VTEwpIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBjcmVhdGluZyB0aGUgeG1sIHdyaXRlclxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgeG1sIGRlZmF1bHQgZm9yIHRoZSB2ZXJzaW9uLAorICAgICAqIGVuY29kaW5nIElTTyA4ODU5LTEgYW5kIHRoZSBkZWZhdWx0IGZvciB0aGUgc3RhbmRhbG9uZQorICAgICAqIGRlY2xhcmF0aW9uLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQod3JpdGVyLCBOVUxMLCBNWV9FTkNPRElORywgTlVMTCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogU3RhcnQgYW4gZWxlbWVudCBuYW1lZCAiRVhBTVBMRSIuIFNpbmNlIHRoaXN0IGlzIHRoZSBmaXJzdAorICAgICAqIGVsZW1lbnQsIHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZSBkb2N1bWVudC4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRVhBTVBMRSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYSBjb21tZW50IGFzIGNoaWxkIG9mIEVYQU1QTEUuCisgICAgICogUGxlYXNlIG9ic2VydmUsIHRoYXQgdGhlIGlucHV0IHRvIHRoZSB4bWxUZXh0V3JpdGVyIGZ1bmN0aW9ucworICAgICAqIEhBUyB0byBiZSBpbiBVVEYtOCwgZXZlbiBpZiB0aGUgb3V0cHV0IFhNTCBpcyBlbmNvZGVkCisgICAgICogaW4gaXNvLTg4NTktMSAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiVGhpcyBpcyBhIGNvbW1lbnQgd2l0aCBzcGVjaWFsIGNoYXJzOiA85Pb8PiIsCisgICAgICAgICAgICAgICAgICAgICAgIE1ZX0VOQ09ESU5HKTsKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQod3JpdGVyLCB0bXApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh0bXAgIT0gTlVMTCkgeG1sRnJlZSh0bXApOworCisgICAgLyogU3RhcnQgYW4gZWxlbWVudCBuYW1lZCAiT1JERVIiIGFzIGNoaWxkIG9mIEVYQU1QTEUuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIk9SREVSIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBBZGQgYW4gYXR0cmlidXRlIHdpdGggbmFtZSAidmVyc2lvbiIgYW5kIHZhbHVlICIxLjAiIHRvIE9SREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlKHdyaXRlciwgQkFEX0NBU1QgInZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICIxLjAiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogQWRkIGFuIGF0dHJpYnV0ZSB3aXRoIG5hbWUgInhtbDpsYW5nIiBhbmQgdmFsdWUgImRlIiB0byBPUkRFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSh3cml0ZXIsIEJBRF9DQVNUICJ4bWw6bGFuZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgImRlIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGEgY29tbWVudCBhcyBjaGlsZCBvZiBPUkRFUiAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiPOT2/D4iLCBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50KHdyaXRlciwKKwkJICAgICAiVGhpcyBpcyBhbm90aGVyIGNvbW1lbnQgd2l0aCBzcGVjaWFsIGNoYXJzOiAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHRtcCAhPSBOVUxMKSB4bWxGcmVlKHRtcCk7CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJIRUFERVIiIGFzIGNoaWxkIG9mIE9SREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJIRUFERVIiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIlhfT1JERVJfSUQiIGFzIGNoaWxkIG9mIEhFQURFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiWF9PUkRFUl9JRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlMDEwZCIsIDUzNTM1TCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJDVVNUT01FUl9JRCIgYXMgY2hpbGQgb2YgSEVBREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJDVVNUT01FUl9JRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlZCIsIDEwMTApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiTkFNRV8xIiBhcyBjaGlsZCBvZiBIRUFERVIuICovCisgICAgdG1wID0gQ29udmVydElucHV0KCJN/GxsZXIiLCBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIk5BTUVfMSIsIHRtcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHRtcCAhPSBOVUxMKSB4bWxGcmVlKHRtcCk7CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJOQU1FXzIiIGFzIGNoaWxkIG9mIEhFQURFUi4gKi8KKyAgICB0bXAgPSBDb252ZXJ0SW5wdXQoIkr2cmciLCBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIk5BTUVfMiIsIHRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh0bXAgIT0gTlVMTCkgeG1sRnJlZSh0bXApOworCisgICAgLyogQ2xvc2UgdGhlIGVsZW1lbnQgbmFtZWQgSEVBREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlckVuZEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogU3RhcnQgYW4gZWxlbWVudCBuYW1lZCAiRU5UUklFUyIgYXMgY2hpbGQgb2YgT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkVOVFJJRVMiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJZIiBhcyBjaGlsZCBvZiBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiQVJUSUNMRSIgYXMgY2hpbGQgb2YgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkFSVElDTEUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiPFRlc3Q+Iik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJFTlRSWV9OTyIgYXMgY2hpbGQgb2YgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkVOVFJZX05PIiwgIiVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogQ2xvc2UgdGhlIGVsZW1lbnQgbmFtZWQgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCh3cml0ZXIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJFTlRSWSIgYXMgY2hpbGQgb2YgRU5UUklFUy4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRU5UUlkiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIkFSVElDTEUiIGFzIGNoaWxkIG9mIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJBUlRJQ0xFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIjxUZXN0IDI+Iik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJFTlRSWV9OTyIgYXMgY2hpbGQgb2YgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkVOVFJZX05PIiwgIiVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJNZW1vcnk6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogQ2xvc2UgdGhlIGVsZW1lbnQgbmFtZWQgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCh3cml0ZXIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlckVuZEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogU3RhcnQgYW4gZWxlbWVudCBuYW1lZCAiRk9PVEVSIiBhcyBjaGlsZCBvZiBPUkRFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRk9PVEVSIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJURVhUIiBhcyBjaGlsZCBvZiBGT09URVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIlRFWFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiVGhpcyBpcyBhIHRleHQuIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBGT09URVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCh3cml0ZXIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBIZXJlIHdlIGNvdWxkIGNsb3NlIHRoZSBlbGVtZW50cyBPUkRFUiBhbmQgRVhBTVBMRSB1c2luZyB0aGUKKyAgICAgKiBmdW5jdGlvbiB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCwgYnV0IHNpbmNlIHdlIGRvIG5vdCB3YW50IHRvCisgICAgICogd3JpdGUgYW55IG90aGVyIGVsZW1lbnRzLCB3ZSBzaW1wbHkgY2FsbCB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQsCisgICAgICogd2hpY2ggd2lsbCBkbyBhbGwgdGhlIHdvcmsuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlck1lbW9yeTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlckVuZERvY3VtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHhtbEZyZWVUZXh0V3JpdGVyKHdyaXRlcik7CisKKyAgICBmcCA9IGZvcGVuKGZpbGUsICJ3Iik7CisgICAgaWYgKGZwID09IE5VTEwpIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyTWVtb3J5OiBFcnJvciBhdCBmb3BlblxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmcHJpbnRmKGZwLCAiJXMiLCAoY29uc3QgY2hhciAqKSBidWYtPmNvbnRlbnQpOworCisgICAgZmNsb3NlKGZwKTsKKworICAgIHhtbEJ1ZmZlckZyZWUoYnVmKTsKK30KKworLyoqCisgKiB0ZXN0WG1sd3JpdGVyRG9jOgorICogQGZpbGU6IHRoZSBvdXRwdXQgZmlsZQorICoKKyAqIHRlc3QgdGhlIHhtbFdyaXRlciBpbnRlcmZhY2Ugd2hlbiBjcmVhdGluZyBhIG5ldyBkb2N1bWVudAorICovCit2b2lkCit0ZXN0WG1sd3JpdGVyRG9jKGNvbnN0IGNoYXIgKmZpbGUpCit7CisgICAgaW50IHJjOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOworICAgIHhtbENoYXIgKnRtcDsKKyAgICB4bWxEb2NQdHIgZG9jOworCisKKyAgICAvKiBDcmVhdGUgYSBuZXcgWG1sV3JpdGVyIGZvciBET00sIHdpdGggbm8gY29tcHJlc3Npb24uICovCisgICAgd3JpdGVyID0geG1sTmV3VGV4dFdyaXRlckRvYygmZG9jLCAwKTsKKyAgICBpZiAod3JpdGVyID09IE5VTEwpIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBjcmVhdGluZyB0aGUgeG1sIHdyaXRlclxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgeG1sIGRlZmF1bHQgZm9yIHRoZSB2ZXJzaW9uLAorICAgICAqIGVuY29kaW5nIElTTyA4ODU5LTEgYW5kIHRoZSBkZWZhdWx0IGZvciB0aGUgc3RhbmRhbG9uZQorICAgICAqIGRlY2xhcmF0aW9uLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQod3JpdGVyLCBOVUxMLCBNWV9FTkNPRElORywgTlVMTCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkVYQU1QTEUiLiBTaW5jZSB0aGlzdCBpcyB0aGUgZmlyc3QKKyAgICAgKiBlbGVtZW50LCB0aGlzIHdpbGwgYmUgdGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkVYQU1QTEUiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhIGNvbW1lbnQgYXMgY2hpbGQgb2YgRVhBTVBMRS4KKyAgICAgKiBQbGVhc2Ugb2JzZXJ2ZSwgdGhhdCB0aGUgaW5wdXQgdG8gdGhlIHhtbFRleHRXcml0ZXIgZnVuY3Rpb25zCisgICAgICogSEFTIHRvIGJlIGluIFVURi04LCBldmVuIGlmIHRoZSBvdXRwdXQgWE1MIGlzIGVuY29kZWQKKyAgICAgKiBpbiBpc28tODg1OS0xICovCisgICAgdG1wID0gQ29udmVydElucHV0KCJUaGlzIGlzIGEgY29tbWVudCB3aXRoIHNwZWNpYWwgY2hhcnM6IDzk9vw+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgTVlfRU5DT0RJTkcpOworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCh3cml0ZXIsIHRtcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh0bXAgIT0gTlVMTCkgeG1sRnJlZSh0bXApOworCisgICAgLyogU3RhcnQgYW4gZWxlbWVudCBuYW1lZCAiT1JERVIiIGFzIGNoaWxkIG9mIEVYQU1QTEUuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIk9SREVSIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogQWRkIGFuIGF0dHJpYnV0ZSB3aXRoIG5hbWUgInZlcnNpb24iIGFuZCB2YWx1ZSAiMS4wIiB0byBPUkRFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSh3cml0ZXIsIEJBRF9DQVNUICJ2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiMS4wIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZVxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBBZGQgYW4gYXR0cmlidXRlIHdpdGggbmFtZSAieG1sOmxhbmciIGFuZCB2YWx1ZSAiZGUiIHRvIE9SREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlKHdyaXRlciwgQkFEX0NBU1QgInhtbDpsYW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiZGUiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGEgY29tbWVudCBhcyBjaGlsZCBvZiBPUkRFUiAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiPOT2/D4iLCBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50KHdyaXRlciwKKwkJICJUaGlzIGlzIGFub3RoZXIgY29tbWVudCB3aXRoIHNwZWNpYWwgY2hhcnM6ICVzIiwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHRtcCAhPSBOVUxMKSB4bWxGcmVlKHRtcCk7CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJIRUFERVIiIGFzIGNoaWxkIG9mIE9SREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJIRUFERVIiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJYX09SREVSX0lEIiBhcyBjaGlsZCBvZiBIRUFERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIlhfT1JERVJfSUQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJTAxMGQiLCA1MzUzNUwpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiQ1VTVE9NRVJfSUQiIGFzIGNoaWxkIG9mIEhFQURFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiQ1VTVE9NRVJfSUQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJWQiLCAxMDEwKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIk5BTUVfMSIgYXMgY2hpbGQgb2YgSEVBREVSLiAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiTfxsbGVyIiwgTVlfRU5DT0RJTkcpOworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJOQU1FXzEiLCB0bXApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodG1wICE9IE5VTEwpIHhtbEZyZWUodG1wKTsKKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIk5BTUVfMiIgYXMgY2hpbGQgb2YgSEVBREVSLiAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiSvZyZyIsIE1ZX0VOQ09ESU5HKTsKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiTkFNRV8yIiwgdG1wKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHRtcCAhPSBOVUxMKSB4bWxGcmVlKHRtcCk7CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBIRUFERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCh3cml0ZXIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJFTlRSSUVTIiBhcyBjaGlsZCBvZiBPUkRFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRU5UUklFUyIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJZIiBhcyBjaGlsZCBvZiBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIkFSVElDTEUiIGFzIGNoaWxkIG9mIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJBUlRJQ0xFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIjxUZXN0PiIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJZX05PIiBhcyBjaGlsZCBvZiBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRU5UUllfTk8iLCAiJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJZIiBhcyBjaGlsZCBvZiBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIkFSVElDTEUiIGFzIGNoaWxkIG9mIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJBUlRJQ0xFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIjxUZXN0IDI+Iik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiRU5UUllfTk8iIGFzIGNoaWxkIG9mIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWV9OTyIsICIlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIENsb3NlIHRoZSBlbGVtZW50IG5hbWVkIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlckVuZEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogQ2xvc2UgdGhlIGVsZW1lbnQgbmFtZWQgRU5UUklFUy4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJEb2M6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkZPT1RFUiIgYXMgY2hpbGQgb2YgT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkZPT1RFUiIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIlRFWFQiIGFzIGNoaWxkIG9mIEZPT1RFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiVEVYVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICJUaGlzIGlzIGEgdGV4dC4iKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBGT09URVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCh3cml0ZXIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyRG9jOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBIZXJlIHdlIGNvdWxkIGNsb3NlIHRoZSBlbGVtZW50cyBPUkRFUiBhbmQgRVhBTVBMRSB1c2luZyB0aGUKKyAgICAgKiBmdW5jdGlvbiB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCwgYnV0IHNpbmNlIHdlIGRvIG5vdCB3YW50IHRvCisgICAgICogd3JpdGUgYW55IG90aGVyIGVsZW1lbnRzLCB3ZSBzaW1wbHkgY2FsbCB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQsCisgICAgICogd2hpY2ggd2lsbCBkbyBhbGwgdGhlIHdvcmsuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlckRvYzogRXJyb3IgYXQgeG1sVGV4dFdyaXRlckVuZERvY3VtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHhtbEZyZWVUZXh0V3JpdGVyKHdyaXRlcik7CisKKyAgICB4bWxTYXZlRmlsZUVuYyhmaWxlLCBkb2MsIE1ZX0VOQ09ESU5HKTsKKworICAgIHhtbEZyZWVEb2MoZG9jKTsKK30KKworLyoqCisgKiB0ZXN0WG1sd3JpdGVyVHJlZToKKyAqIEBmaWxlOiB0aGUgb3V0cHV0IGZpbGUKKyAqCisgKiB0ZXN0IHRoZSB4bWxXcml0ZXIgaW50ZXJmYWNlIHdoZW4gd3JpdGluZyB0byBhIHN1YnRyZWUKKyAqLwordm9pZAordGVzdFhtbHdyaXRlclRyZWUoY29uc3QgY2hhciAqZmlsZSkKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgeG1sQ2hhciAqdG1wOworCisgICAgLyogQ3JlYXRlIGEgbmV3IFhNTCBET00gdHJlZSwgdG8gd2hpY2ggdGhlIFhNTCBkb2N1bWVudCB3aWxsIGJlCisgICAgICogd3JpdHRlbiAqLworICAgIGRvYyA9IHhtbE5ld0RvYyhCQURfQ0FTVCBYTUxfREVGQVVMVF9WRVJTSU9OKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBjcmVhdGluZyB0aGUgeG1sIGRvY3VtZW50IHRyZWVcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogQ3JlYXRlIGEgbmV3IFhNTCBub2RlLCB0byB3aGljaCB0aGUgWE1MIGRvY3VtZW50IHdpbGwgYmUKKyAgICAgKiBhcHBlbmRlZCAqLworICAgIG5vZGUgPSB4bWxOZXdEb2NOb2RlKGRvYywgTlVMTCwgQkFEX0NBU1QgIkVYQU1QTEUiLCBOVUxMKTsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGNyZWF0aW5nIHRoZSB4bWwgbm9kZVxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBNYWtlIEVMRU1FTlQgdGhlIHJvb3Qgbm9kZSBvZiB0aGUgdHJlZSAqLworICAgIHhtbERvY1NldFJvb3RFbGVtZW50KGRvYywgbm9kZSk7CisKKyAgICAvKiBDcmVhdGUgYSBuZXcgWG1sV3JpdGVyIGZvciBET00gdHJlZSwgd2l0aCBubyBjb21wcmVzc2lvbi4gKi8KKyAgICB3cml0ZXIgPSB4bWxOZXdUZXh0V3JpdGVyVHJlZShkb2MsIG5vZGUsIDApOworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBjcmVhdGluZyB0aGUgeG1sIHdyaXRlclxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgeG1sIGRlZmF1bHQgZm9yIHRoZSB2ZXJzaW9uLAorICAgICAqIGVuY29kaW5nIElTTyA4ODU5LTEgYW5kIHRoZSBkZWZhdWx0IGZvciB0aGUgc3RhbmRhbG9uZQorICAgICAqIGRlY2xhcmF0aW9uLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQod3JpdGVyLCBOVUxMLCBNWV9FTkNPRElORywgTlVMTCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhIGNvbW1lbnQgYXMgY2hpbGQgb2YgRVhBTVBMRS4KKyAgICAgKiBQbGVhc2Ugb2JzZXJ2ZSwgdGhhdCB0aGUgaW5wdXQgdG8gdGhlIHhtbFRleHRXcml0ZXIgZnVuY3Rpb25zCisgICAgICogSEFTIHRvIGJlIGluIFVURi04LCBldmVuIGlmIHRoZSBvdXRwdXQgWE1MIGlzIGVuY29kZWQKKyAgICAgKiBpbiBpc28tODg1OS0xICovCisgICAgdG1wID0gQ29udmVydElucHV0KCJUaGlzIGlzIGEgY29tbWVudCB3aXRoIHNwZWNpYWwgY2hhcnM6IDzk9vw+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgTVlfRU5DT0RJTkcpOworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCh3cml0ZXIsIHRtcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodG1wICE9IE5VTEwpIHhtbEZyZWUodG1wKTsKKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIk9SREVSIiBhcyBjaGlsZCBvZiBFWEFNUExFLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJPUkRFUiIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyVHJlZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBBZGQgYW4gYXR0cmlidXRlIHdpdGggbmFtZSAidmVyc2lvbiIgYW5kIHZhbHVlICIxLjAiIHRvIE9SREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlKHdyaXRlciwgQkFEX0NBU1QgInZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICIxLjAiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyVHJlZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIEFkZCBhbiBhdHRyaWJ1dGUgd2l0aCBuYW1lICJ4bWw6bGFuZyIgYW5kIHZhbHVlICJkZSIgdG8gT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUod3JpdGVyLCBCQURfQ0FTVCAieG1sOmxhbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICJkZSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYSBjb21tZW50IGFzIGNoaWxkIG9mIE9SREVSICovCisgICAgdG1wID0gQ29udmVydElucHV0KCI85Pb8PiIsIE1ZX0VOQ09ESU5HKTsKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQod3JpdGVyLAorCQkJICJUaGlzIGlzIGFub3RoZXIgY29tbWVudCB3aXRoIHNwZWNpYWwgY2hhcnM6ICVzIiwKKwkJCQkJICB0bXApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodG1wICE9IE5VTEwpIHhtbEZyZWUodG1wKTsKKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkhFQURFUiIgYXMgY2hpbGQgb2YgT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkhFQURFUiIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyVHJlZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJYX09SREVSX0lEIiBhcyBjaGlsZCBvZiBIRUFERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIlhfT1JERVJfSUQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJTAxMGQiLCA1MzUzNUwpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIkNVU1RPTUVSX0lEIiBhcyBjaGlsZCBvZiBIRUFERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkNVU1RPTUVSX0lEIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVkIiwgMTAxMCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiTkFNRV8xIiBhcyBjaGlsZCBvZiBIRUFERVIuICovCisgICAgdG1wID0gQ29udmVydElucHV0KCJN/GxsZXIiLCBNWV9FTkNPRElORyk7CisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIk5BTUVfMSIsIHRtcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodG1wICE9IE5VTEwpIHhtbEZyZWUodG1wKTsKKworICAgIC8qIFdyaXRlIGFuIGVsZW1lbnQgbmFtZWQgIk5BTUVfMiIgYXMgY2hpbGQgb2YgSEVBREVSLiAqLworICAgIHRtcCA9IENvbnZlcnRJbnB1dCgiSvZyZyIsIE1ZX0VOQ09ESU5HKTsKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiTkFNRV8yIiwgdG1wKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh0bXAgIT0gTlVMTCkgeG1sRnJlZSh0bXApOworCisgICAgLyogQ2xvc2UgdGhlIGVsZW1lbnQgbmFtZWQgSEVBREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJJRVMiIGFzIGNoaWxkIG9mIE9SREVSLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSSUVTIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkVOVFJZIiBhcyBjaGlsZCBvZiBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWSIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyVHJlZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJBUlRJQ0xFIiBhcyBjaGlsZCBvZiBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiQVJUSUNMRSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICI8VGVzdD4iKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiRU5UUllfTk8iIGFzIGNoaWxkIG9mIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWV9OTyIsICIlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyVHJlZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBTdGFydCBhbiBlbGVtZW50IG5hbWVkICJFTlRSWSIgYXMgY2hpbGQgb2YgRU5UUklFUy4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBCQURfQ0FTVCAiRU5UUlkiKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiQVJUSUNMRSIgYXMgY2hpbGQgb2YgRU5UUlkuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkFSVElDTEUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiPFRlc3QgMj4iKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogV3JpdGUgYW4gZWxlbWVudCBuYW1lZCAiRU5UUllfTk8iIGFzIGNoaWxkIG9mIEVOVFJZLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCh3cml0ZXIsIEJBRF9DQVNUICJFTlRSWV9OTyIsICIlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZgorICAgICAgICAgICAgKCJ0ZXN0WG1sd3JpdGVyVHJlZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBFTlRSWS4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBDbG9zZSB0aGUgZWxlbWVudCBuYW1lZCBFTlRSSUVTLiAqLworICAgIHJjID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIFN0YXJ0IGFuIGVsZW1lbnQgbmFtZWQgIkZPT1RFUiIgYXMgY2hpbGQgb2YgT1JERVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIkZPT1RFUiIpOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0WG1sd3JpdGVyVHJlZTogRXJyb3IgYXQgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBXcml0ZSBhbiBlbGVtZW50IG5hbWVkICJURVhUIiBhcyBjaGlsZCBvZiBGT09URVIuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgQkFEX0NBU1QgIlRFWFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiVGhpcyBpcyBhIHRleHQuIik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIENsb3NlIHRoZSBlbGVtZW50IG5hbWVkIEZPT1RFUi4gKi8KKyAgICByYyA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBwcmludGYoInRlc3RYbWx3cml0ZXJUcmVlOiBFcnJvciBhdCB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBIZXJlIHdlIGNvdWxkIGNsb3NlIHRoZSBlbGVtZW50cyBPUkRFUiBhbmQgRVhBTVBMRSB1c2luZyB0aGUKKyAgICAgKiBmdW5jdGlvbiB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCwgYnV0IHNpbmNlIHdlIGRvIG5vdCB3YW50IHRvCisgICAgICogd3JpdGUgYW55IG90aGVyIGVsZW1lbnRzLCB3ZSBzaW1wbHkgY2FsbCB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQsCisgICAgICogd2hpY2ggd2lsbCBkbyBhbGwgdGhlIHdvcmsuICovCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQod3JpdGVyKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIHByaW50ZigidGVzdFhtbHdyaXRlclRyZWU6IEVycm9yIGF0IHhtbFRleHRXcml0ZXJFbmREb2N1bWVudFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB4bWxGcmVlVGV4dFdyaXRlcih3cml0ZXIpOworCisgICAgeG1sU2F2ZUZpbGVFbmMoZmlsZSwgZG9jLCBNWV9FTkNPRElORyk7CisKKyAgICB4bWxGcmVlRG9jKGRvYyk7Cit9CisKKy8qKgorICogQ29udmVydElucHV0OgorICogQGluOiBzdHJpbmcgaW4gYSBnaXZlbiBlbmNvZGluZworICogQGVuY29kaW5nOiB0aGUgZW5jb2RpbmcgdXNlZAorICoKKyAqIENvbnZlcnRzIEBpbiBpbnRvIFVURi04IGZvciBwcm9jZXNzaW5nIHdpdGggbGlieG1sMiBBUElzCisgKgorICogUmV0dXJucyB0aGUgY29udmVydGVkIFVURi04IHN0cmluZywgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxDaGFyICoKK0NvbnZlcnRJbnB1dChjb25zdCBjaGFyICppbiwgY29uc3QgY2hhciAqZW5jb2RpbmcpCit7CisgICAgeG1sQ2hhciAqb3V0OworICAgIGludCByZXQ7CisgICAgaW50IHNpemU7CisgICAgaW50IG91dF9zaXplOworICAgIGludCB0ZW1wOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsKKworICAgIGlmIChpbiA9PSAwKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcihlbmNvZGluZyk7CisKKyAgICBpZiAoIWhhbmRsZXIpIHsKKyAgICAgICAgcHJpbnRmKCJDb252ZXJ0SW5wdXQ6IG5vIGVuY29kaW5nIGhhbmRsZXIgZm91bmQgZm9yICclcydcbiIsCisgICAgICAgICAgICAgICBlbmNvZGluZyA/IGVuY29kaW5nIDogIiIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBzaXplID0gKGludCkgc3RybGVuKGluKSArIDE7CisgICAgb3V0X3NpemUgPSBzaXplICogMiAtIDE7CisgICAgb3V0ID0gKHVuc2lnbmVkIGNoYXIgKikgeG1sTWFsbG9jKChzaXplX3QpIG91dF9zaXplKTsKKworICAgIGlmIChvdXQgIT0gMCkgeworICAgICAgICB0ZW1wID0gc2l6ZSAtIDE7CisgICAgICAgIHJldCA9IGhhbmRsZXItPmlucHV0KG91dCwgJm91dF9zaXplLCAoY29uc3QgeG1sQ2hhciAqKSBpbiwgJnRlbXApOworICAgICAgICBpZiAoKHJldCA8IDApIHx8ICh0ZW1wIC0gc2l6ZSArIDEpKSB7CisgICAgICAgICAgICBpZiAocmV0IDwgMCkgeworICAgICAgICAgICAgICAgIHByaW50ZigiQ29udmVydElucHV0OiBjb252ZXJzaW9uIHdhc24ndCBzdWNjZXNzZnVsLlxuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByaW50ZgorICAgICAgICAgICAgICAgICAgICAoIkNvbnZlcnRJbnB1dDogY29udmVyc2lvbiB3YXNuJ3Qgc3VjY2Vzc2Z1bC4gY29udmVydGVkOiAlaSBvY3RldHMuXG4iLAorICAgICAgICAgICAgICAgICAgICAgdGVtcCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHhtbEZyZWUob3V0KTsKKyAgICAgICAgICAgIG91dCA9IDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXQgPSAodW5zaWduZWQgY2hhciAqKSB4bWxSZWFsbG9jKG91dCwgb3V0X3NpemUgKyAxKTsKKyAgICAgICAgICAgIG91dFtvdXRfc2l6ZV0gPSAwOyAgLypudWxsIHRlcm1pbmF0aW5nIG91dCAqLworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnRmKCJDb252ZXJ0SW5wdXQ6IG5vIG1lbVxuIik7CisgICAgfQorCisgICAgcmV0dXJuIG91dDsKK30KKworI2Vsc2UKK2ludCBtYWluKHZvaWQpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIldyaXRlciBvciBvdXRwdXQgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIpOworICAgIGV4aXQoMSk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3RyZWUxLmMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90cmVlMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2NDRjZjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90cmVlMS5jCkBAIC0wLDAgKzEsOTQgQEAKKy8qKgorICogc2VjdGlvbjogVHJlZQorICogc3lub3BzaXM6IE5hdmlnYXRlcyBhIHRyZWUgdG8gcHJpbnQgZWxlbWVudCBuYW1lcworICogcHVycG9zZTogUGFyc2UgYSBmaWxlIHRvIGEgdHJlZSwgdXNlIHhtbERvY0dldFJvb3RFbGVtZW50KCkgdG8KKyAqICAgICAgICAgIGdldCB0aGUgcm9vdCBlbGVtZW50LCB0aGVuIHdhbGsgdGhlIGRvY3VtZW50IGFuZCBwcmludAorICogICAgICAgICAgYWxsIHRoZSBlbGVtZW50IG5hbWUgaW4gZG9jdW1lbnQgb3JkZXIuCisgKiB1c2FnZTogdHJlZTEgZmlsZW5hbWVfb3JfVVJMCisgKiB0ZXN0OiB0cmVlMSB0ZXN0Mi54bWwgPiB0cmVlMS50bXAgOyBkaWZmIHRyZWUxLnRtcCB0cmVlMS5yZXMgOyBybSB0cmVlMS50bXAKKyAqIGF1dGhvcjogRG9kamkgU2VrZXRlbGkKKyAqIGNvcHk6IHNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisKKy8qCisgKlRvIGNvbXBpbGUgdGhpcyBmaWxlIHVzaW5nIGdjYyB5b3UgY2FuIHR5cGUKKyAqZ2NjIGB4bWwyLWNvbmZpZyAtLWNmbGFncyAtLWxpYnNgIC1vIHhtbGV4YW1wbGUgbGlieG1sMi1leGFtcGxlLmMKKyAqLworCisvKioKKyAqIHByaW50X2VsZW1lbnRfbmFtZXM6CisgKiBAYV9ub2RlOiB0aGUgaW5pdGlhbCB4bWwgbm9kZSB0byBjb25zaWRlci4KKyAqCisgKiBQcmludHMgdGhlIG5hbWVzIG9mIHRoZSBhbGwgdGhlIHhtbCBlbGVtZW50cworICogdGhhdCBhcmUgc2libGluZ3Mgb3IgY2hpbGRyZW4gb2YgYSBnaXZlbiB4bWwgbm9kZS4KKyAqLworc3RhdGljIHZvaWQKK3ByaW50X2VsZW1lbnRfbmFtZXMoeG1sTm9kZSAqIGFfbm9kZSkKK3sKKyAgICB4bWxOb2RlICpjdXJfbm9kZSA9IE5VTEw7CisKKyAgICBmb3IgKGN1cl9ub2RlID0gYV9ub2RlOyBjdXJfbm9kZTsgY3VyX25vZGUgPSBjdXJfbm9kZS0+bmV4dCkgeworICAgICAgICBpZiAoY3VyX25vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworICAgICAgICAgICAgcHJpbnRmKCJub2RlIHR5cGU6IEVsZW1lbnQsIG5hbWU6ICVzXG4iLCBjdXJfbm9kZS0+bmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBwcmludF9lbGVtZW50X25hbWVzKGN1cl9ub2RlLT5jaGlsZHJlbik7CisgICAgfQorfQorCisKKy8qKgorICogU2ltcGxlIGV4YW1wbGUgdG8gcGFyc2UgYSBmaWxlIGNhbGxlZCAiZmlsZS54bWwiLCAKKyAqIHdhbGsgZG93biB0aGUgRE9NLCBhbmQgcHJpbnQgdGhlIG5hbWUgb2YgdGhlIAorICogeG1sIGVsZW1lbnRzIG5vZGVzLgorICovCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIHhtbERvYyAqZG9jID0gTlVMTDsKKyAgICB4bWxOb2RlICpyb290X2VsZW1lbnQgPSBOVUxMOworCisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuKDEpOworCisgICAgLyoKKyAgICAgKiB0aGlzIGluaXRpYWxpemUgdGhlIGxpYnJhcnkgYW5kIGNoZWNrIHBvdGVudGlhbCBBQkkgbWlzbWF0Y2hlcworICAgICAqIGJldHdlZW4gdGhlIHZlcnNpb24gaXQgd2FzIGNvbXBpbGVkIGZvciBhbmQgdGhlIGFjdHVhbCBzaGFyZWQKKyAgICAgKiBsaWJyYXJ5IHVzZWQuCisgICAgICovCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgLypwYXJzZSB0aGUgZmlsZSBhbmQgZ2V0IHRoZSBET00gKi8KKyAgICBkb2MgPSB4bWxSZWFkRmlsZShhcmd2WzFdLCBOVUxMLCAwKTsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICBwcmludGYoImVycm9yOiBjb3VsZCBub3QgcGFyc2UgZmlsZSAlc1xuIiwgYXJndlsxXSk7CisgICAgfQorCisgICAgLypHZXQgdGhlIHJvb3QgZWxlbWVudCBub2RlICovCisgICAgcm9vdF9lbGVtZW50ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKworICAgIHByaW50X2VsZW1lbnRfbmFtZXMocm9vdF9lbGVtZW50KTsKKworICAgIC8qZnJlZSB0aGUgZG9jdW1lbnQgKi8KKyAgICB4bWxGcmVlRG9jKGRvYyk7CisKKyAgICAvKgorICAgICAqRnJlZSB0aGUgZ2xvYmFsIHZhcmlhYmxlcyB0aGF0IG1heQorICAgICAqaGF2ZSBiZWVuIGFsbG9jYXRlZCBieSB0aGUgcGFyc2VyLgorICAgICAqLworICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKworICAgIHJldHVybiAwOworfQorI2Vsc2UKK2ludCBtYWluKHZvaWQpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRyZWUgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIpOworICAgIGV4aXQoMSk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3RyZWUxLnJlcyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3RyZWUxLnJlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjE0YWQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdHJlZTEucmVzCkBAIC0wLDAgKzEsNCBAQAorbm9kZSB0eXBlOiBFbGVtZW50LCBuYW1lOiBkb2MKK25vZGUgdHlwZTogRWxlbWVudCwgbmFtZTogc3JjCitub2RlIHR5cGU6IEVsZW1lbnQsIG5hbWU6IGRlc3QKK25vZGUgdHlwZTogRWxlbWVudCwgbmFtZTogc3JjCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90cmVlMi5jIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdHJlZTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDBmYzU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdHJlZTIuYwpAQCAtMCwwICsxLDExOCBAQAorLyogCisgKiBzZWN0aW9uOiAgVHJlZQorICogc3lub3BzaXM6IENyZWF0ZXMgYSB0cmVlCisgKiBwdXJwb3NlOiAgU2hvd3MgaG93IHRvIGNyZWF0ZSBkb2N1bWVudCwgbm9kZXMgYW5kIGR1bXAgaXQgdG8gc3Rkb3V0IG9yIGZpbGUuCisgKiB1c2FnZTogICAgdHJlZTIgPGZpbGVuYW1lPiAgLURlZmF1bHQgb3V0cHV0OiBzdGRvdXQKKyAqIHRlc3Q6ICAgICB0cmVlMiA+IHRyZWUyLnRtcCA7IGRpZmYgdHJlZTIudG1wIHRyZWUyLnJlcyA7IHJtIHRyZWUyLnRtcAorICogYXV0aG9yOiAgIEx1Y2FzIEJyYXNpbGlubyA8YnJhc2lsaW5vQHJlY2lmZS5wZS5nb3YuYnI+CisgKiBjb3B5OiAgICAgc2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorCisvKgorICpUbyBjb21waWxlIHRoaXMgZmlsZSB1c2luZyBnY2MgeW91IGNhbiB0eXBlCisgKmdjYyBgeG1sMi1jb25maWcgLS1jZmxhZ3MgLS1saWJzYCAtbyB0cmVlMiB0cmVlMi5jCisgKi8KKworLyogQSBzaW1wbGUgZXhhbXBsZSBob3cgdG8gY3JlYXRlIERPTS4gTGlieG1sMiBhdXRvbWFnaWNhbGx5IAorICogYWxsb2NhdGVzIHRoZSBuZWNlc3NhcnkgYW1vdW50IG9mIG1lbW9yeSB0byBpdC4KKyovCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIHhtbERvY1B0ciBkb2MgPSBOVUxMOyAgICAgICAvKiBkb2N1bWVudCBwb2ludGVyICovCisgICAgeG1sTm9kZVB0ciByb290X25vZGUgPSBOVUxMLCBub2RlID0gTlVMTCwgbm9kZTEgPSBOVUxMOy8qIG5vZGUgcG9pbnRlcnMgKi8KKyAgICB4bWxEdGRQdHIgZHRkID0gTlVMTDsgICAgICAgLyogRFREIHBvaW50ZXIgKi8KKyAgICBjaGFyIGJ1ZmZbMjU2XTsKKyAgICBpbnQgaSwgajsKKworICAgIExJQlhNTF9URVNUX1ZFUlNJT047CisKKyAgICAvKiAKKyAgICAgKiBDcmVhdGVzIGEgbmV3IGRvY3VtZW50LCBhIG5vZGUgYW5kIHNldCBpdCBhcyBhIHJvb3Qgbm9kZQorICAgICAqLworICAgIGRvYyA9IHhtbE5ld0RvYyhCQURfQ0FTVCAiMS4wIik7CisgICAgcm9vdF9ub2RlID0geG1sTmV3Tm9kZShOVUxMLCBCQURfQ0FTVCAicm9vdCIpOworICAgIHhtbERvY1NldFJvb3RFbGVtZW50KGRvYywgcm9vdF9ub2RlKTsKKworICAgIC8qCisgICAgICogQ3JlYXRlcyBhIERURCBkZWNsYXJhdGlvbi4gSXNuJ3QgbWFuZGF0b3J5LiAKKyAgICAgKi8KKyAgICBkdGQgPSB4bWxDcmVhdGVJbnRTdWJzZXQoZG9jLCBCQURfQ0FTVCAicm9vdCIsIE5VTEwsIEJBRF9DQVNUICJ0cmVlMi5kdGQiKTsKKworICAgIC8qIAorICAgICAqIHhtbE5ld0NoaWxkKCkgY3JlYXRlcyBhIG5ldyBub2RlLCB3aGljaCBpcyAiYXR0YWNoZWQiIGFzIGNoaWxkIG5vZGUKKyAgICAgKiBvZiByb290X25vZGUgbm9kZS4gCisgICAgICovCisgICAgeG1sTmV3Q2hpbGQocm9vdF9ub2RlLCBOVUxMLCBCQURfQ0FTVCAibm9kZTEiLAorICAgICAgICAgICAgICAgIEJBRF9DQVNUICJjb250ZW50IG9mIG5vZGUgMSIpOworICAgIC8qIAorICAgICAqIFRoZSBzYW1lIGFzIGFib3ZlLCBidXQgdGhlIG5ldyBjaGlsZCBub2RlIGRvZXNuJ3QgaGF2ZSBhIGNvbnRlbnQgCisgICAgICovCisgICAgeG1sTmV3Q2hpbGQocm9vdF9ub2RlLCBOVUxMLCBCQURfQ0FTVCAibm9kZTIiLCBOVUxMKTsKKworICAgIC8qIAorICAgICAqIHhtbE5ld1Byb3AoKSBjcmVhdGVzIGF0dHJpYnV0ZXMsIHdoaWNoIGlzICJhdHRhY2hlZCIgdG8gYW4gbm9kZS4KKyAgICAgKiBJdCByZXR1cm5zIHhtbEF0dHJQdHIsIHdoaWNoIGlzbid0IHVzZWQgaGVyZS4KKyAgICAgKi8KKyAgICBub2RlID0KKyAgICAgICAgeG1sTmV3Q2hpbGQocm9vdF9ub2RlLCBOVUxMLCBCQURfQ0FTVCAibm9kZTMiLAorICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAidGhpcyBub2RlIGhhcyBhdHRyaWJ1dGVzIik7CisgICAgeG1sTmV3UHJvcChub2RlLCBCQURfQ0FTVCAiYXR0cmlidXRlIiwgQkFEX0NBU1QgInllcyIpOworICAgIHhtbE5ld1Byb3Aobm9kZSwgQkFEX0NBU1QgImZvbyIsIEJBRF9DQVNUICJiYXIiKTsKKworICAgIC8qCisgICAgICogSGVyZSBnb2VzIGFub3RoZXIgd2F5IHRvIGNyZWF0ZSBub2Rlcy4geG1sTmV3Tm9kZSgpIGFuZCB4bWxOZXdUZXh0CisgICAgICogY3JlYXRlcyBhIG5vZGUgYW5kIGEgdGV4dCBub2RlIHNlcGFyYXRlbHkuIFRoZXkgYXJlICJhdHRhY2hlZCIKKyAgICAgKiBieSB4bWxBZGRDaGlsZCgpIAorICAgICAqLworICAgIG5vZGUgPSB4bWxOZXdOb2RlKE5VTEwsIEJBRF9DQVNUICJub2RlNCIpOworICAgIG5vZGUxID0geG1sTmV3VGV4dChCQURfQ0FTVAorICAgICAgICAgICAgICAgICAgICJvdGhlciB3YXkgdG8gY3JlYXRlIGNvbnRlbnQgKHdoaWNoIGlzIGFsc28gYSBub2RlKSIpOworICAgIHhtbEFkZENoaWxkKG5vZGUsIG5vZGUxKTsKKyAgICB4bWxBZGRDaGlsZChyb290X25vZGUsIG5vZGUpOworCisgICAgLyogCisgICAgICogQSBzaW1wbGUgbG9vcCB0aGF0ICJhdXRvbWF0ZXMiIG5vZGVzIGNyZWF0aW9uIAorICAgICAqLworICAgIGZvciAoaSA9IDU7IGkgPCA3OyBpKyspIHsKKyAgICAgICAgc3ByaW50ZihidWZmLCAibm9kZSVkIiwgaSk7CisgICAgICAgIG5vZGUgPSB4bWxOZXdDaGlsZChyb290X25vZGUsIE5VTEwsIEJBRF9DQVNUIGJ1ZmYsIE5VTEwpOworICAgICAgICBmb3IgKGogPSAxOyBqIDwgNDsgaisrKSB7CisgICAgICAgICAgICBzcHJpbnRmKGJ1ZmYsICJub2RlJWQlZCIsIGksIGopOworICAgICAgICAgICAgbm9kZTEgPSB4bWxOZXdDaGlsZChub2RlLCBOVUxMLCBCQURfQ0FTVCBidWZmLCBOVUxMKTsKKyAgICAgICAgICAgIHhtbE5ld1Byb3Aobm9kZTEsIEJBRF9DQVNUICJvZGQiLCBCQURfQ0FTVCgoaiAlIDIpID8gIm5vIiA6ICJ5ZXMiKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiAKKyAgICAgKiBEdW1waW5nIGRvY3VtZW50IHRvIHN0ZGlvIG9yIGZpbGUKKyAgICAgKi8KKyAgICB4bWxTYXZlRm9ybWF0RmlsZUVuYyhhcmdjID4gMSA/IGFyZ3ZbMV0gOiAiLSIsIGRvYywgIlVURi04IiwgMSk7CisKKyAgICAvKmZyZWUgdGhlIGRvY3VtZW50ICovCisgICAgeG1sRnJlZURvYyhkb2MpOworCisgICAgLyoKKyAgICAgKkZyZWUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgdGhhdCBtYXkKKyAgICAgKmhhdmUgYmVlbiBhbGxvY2F0ZWQgYnkgdGhlIHBhcnNlci4KKyAgICAgKi8KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisKKyAgICAvKgorICAgICAqIHRoaXMgaXMgdG8gZGVidWcgbWVtb3J5IGZvciByZWdyZXNzaW9uIHRlc3RzCisgICAgICovCisgICAgeG1sTWVtb3J5RHVtcCgpOworICAgIHJldHVybigwKTsKK30KKyNlbHNlCitpbnQgbWFpbih2b2lkKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJ0cmVlIHN1cHBvcnQgbm90IGNvbXBpbGVkIGluXG4iKTsKKyAgICBleGl0KDEpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90cmVlMi5yZXMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90cmVlMi5yZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQwMDE5NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3RyZWUyLnJlcwpAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHJvb3QgU1lTVEVNICJ0cmVlMi5kdGQiPgorPHJvb3Q+CisgIDxub2RlMT5jb250ZW50IG9mIG5vZGUgMTwvbm9kZTE+CisgIDxub2RlMi8+CisgIDxub2RlMyBhdHRyaWJ1dGU9InllcyIgZm9vPSJiYXIiPnRoaXMgbm9kZSBoYXMgYXR0cmlidXRlczwvbm9kZTM+CisgIDxub2RlND5vdGhlciB3YXkgdG8gY3JlYXRlIGNvbnRlbnQgKHdoaWNoIGlzIGFsc28gYSBub2RlKTwvbm9kZTQ+CisgIDxub2RlNT4KKyAgICA8bm9kZTUxIG9kZD0ibm8iLz4KKyAgICA8bm9kZTUyIG9kZD0ieWVzIi8+CisgICAgPG5vZGU1MyBvZGQ9Im5vIi8+CisgIDwvbm9kZTU+CisgIDxub2RlNj4KKyAgICA8bm9kZTYxIG9kZD0ibm8iLz4KKyAgICA8bm9kZTYyIG9kZD0ieWVzIi8+CisgICAgPG5vZGU2MyBvZGQ9Im5vIi8+CisgIDwvbm9kZTY+Cis8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy90c3QueG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdHN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2M2Yzk1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvdHN0LnhtbApAQCAtMCwwICsxLDcgQEAKKzx0aGluZz4KKyAgICA8dGhpbmcxPmhlbGxvPC90aGluZzE+Cis8L3RoaW5nPgorPHRoaW5nPgorICAgIDx0aGluZzI+Z29vZGJ5ZTwvdGhpbmcyPgorPC90aGluZz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMvd3JpdGVyLnhtbCBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3dyaXRlci54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFiMDVmZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3dyaXRlci54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8RVhBTVBMRT48IS0tVGhpcyBpcyBhIGNvbW1lbnQgd2l0aCBzcGVjaWFsIGNoYXJzOiA85Pb8Pi0tPjxPUkRFUiB2ZXJzaW9uPSIxLjAiIHhtbDpsYW5nPSJkZSI+PCEtLVRoaXMgaXMgYW5vdGhlciBjb21tZW50IHdpdGggc3BlY2lhbCBjaGFyczogPOT2/D4tLT48SEVBREVSPjxYX09SREVSX0lEPjAwMDAwNTM1MzU8L1hfT1JERVJfSUQ+PENVU1RPTUVSX0lEPjEwMTA8L0NVU1RPTUVSX0lEPjxOQU1FXzE+TfxsbGVyPC9OQU1FXzE+PE5BTUVfMj5K9nJnPC9OQU1FXzI+PC9IRUFERVI+PEVOVFJJRVM+PEVOVFJZPjxBUlRJQ0xFPiZsdDtUZXN0Jmd0OzwvQVJUSUNMRT48RU5UUllfTk8+MTA8L0VOVFJZX05PPjwvRU5UUlk+PEVOVFJZPjxBUlRJQ0xFPiZsdDtUZXN0IDImZ3Q7PC9BUlRJQ0xFPjxFTlRSWV9OTz4yMDwvRU5UUllfTk8+PC9FTlRSWT48L0VOVFJJRVM+PEZPT1RFUj48VEVYVD5UaGlzIGlzIGEgdGV4dC48L1RFWFQ+PC9GT09URVI+PC9PUkRFUj48L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy94cGF0aDEuYyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3hwYXRoMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyZjc0MDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy94cGF0aDEuYwpAQCAtMCwwICsxLDI1MCBAQAorLyoqIAorICogc2VjdGlvbjogCVhQYXRoCisgKiBzeW5vcHNpczogCUV2YWx1YXRlIFhQYXRoIGV4cHJlc3Npb24gYW5kIHByaW50cyByZXN1bHQgbm9kZSBzZXQuCisgKiBwdXJwb3NlOiAJU2hvd3MgaG93IHRvIGV2YWx1YXRlIFhQYXRoIGV4cHJlc3Npb24gYW5kIHJlZ2lzdGVyIAorICogICAgICAgICAgCWtub3duIG5hbWVzcGFjZXMgaW4gWFBhdGggY29udGV4dC4KKyAqIHVzYWdlOgl4cGF0aDEgPHhtbC1maWxlPiA8eHBhdGgtZXhwcj4gWzxrbm93bi1ucy1saXN0Pl0KKyAqIHRlc3Q6IC4veHBhdGgxIHRlc3QzLnhtbCAnLy9jaGlsZDInID4geHBhdGgxLnRtcCA7IGRpZmYgeHBhdGgxLnRtcCB4cGF0aDEucmVzIDsgcm0geHBhdGgxLnRtcAorICogYXV0aG9yOiAJQWxla3NleSBTYW5pbgorICogY29weTogCXNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqLworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGguaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaD4KKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKworCitzdGF0aWMgdm9pZCB1c2FnZShjb25zdCBjaGFyICpuYW1lKTsKK2ludCAgZXhlY3V0ZV94cGF0aF9leHByZXNzaW9uKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCB4bWxDaGFyKiB4cGF0aEV4cHIsIGNvbnN0IHhtbENoYXIqIG5zTGlzdCk7CitpbnQgIHJlZ2lzdGVyX25hbWVzcGFjZXMoeG1sWFBhdGhDb250ZXh0UHRyIHhwYXRoQ3R4LCBjb25zdCB4bWxDaGFyKiBuc0xpc3QpOwordm9pZCBwcmludF94cGF0aF9ub2Rlcyh4bWxOb2RlU2V0UHRyIG5vZGVzLCBGSUxFKiBvdXRwdXQpOworCitpbnQgCittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIC8qIFBhcnNlIGNvbW1hbmQgbGluZSBhbmQgcHJvY2VzcyBmaWxlICovCisgICAgaWYoKGFyZ2MgPCAzKSB8fCAoYXJnYyA+IDQpKSB7CisJZnByaW50ZihzdGRlcnIsICJFcnJvcjogd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cy5cbiIpOworCXVzYWdlKGFyZ3ZbMF0pOworCXJldHVybigtMSk7CisgICAgfSAKKyAgICAKKyAgICAvKiBJbml0IGxpYnhtbCAqLyAgICAgCisgICAgeG1sSW5pdFBhcnNlcigpOworICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKworICAgIC8qIERvIHRoZSBtYWluIGpvYiAqLworICAgIGlmKGV4ZWN1dGVfeHBhdGhfZXhwcmVzc2lvbihhcmd2WzFdLCBCQURfQ0FTVCBhcmd2WzJdLCAoYXJnYyA+IDMpID8gQkFEX0NBU1QgYXJndlszXSA6IE5VTEwpIDwgMCkgeworCXVzYWdlKGFyZ3ZbMF0pOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgLyogU2h1dGRvd24gbGlieG1sICovCisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIAorICAgIC8qCisgICAgICogdGhpcyBpcyB0byBkZWJ1ZyBtZW1vcnkgZm9yIHJlZ3Jlc3Npb24gdGVzdHMKKyAgICAgKi8KKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogdXNhZ2U6CisgKiBAbmFtZToJCXRoZSBwcm9ncmFtIG5hbWUuCisgKgorICogUHJpbnRzIHVzYWdlIGluZm9ybWF0aW9uLgorICovCitzdGF0aWMgdm9pZCAKK3VzYWdlKGNvbnN0IGNoYXIgKm5hbWUpIHsKKyAgICBhc3NlcnQobmFtZSk7CisgICAgCisgICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTogJXMgPHhtbC1maWxlPiA8eHBhdGgtZXhwcj4gWzxrbm93bi1ucy1saXN0Pl1cbiIsIG5hbWUpOworICAgIGZwcmludGYoc3RkZXJyLCAid2hlcmUgPGtub3duLW5zLWxpc3Q+IGlzIGEgbGlzdCBvZiBrbm93biBuYW1lc3BhY2VzXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgImluIFwiPHByZWZpeDE+PTxocmVmMT4gPHByZWZpeDI+PWhyZWYyPiAuLi5cIiBmb3JtYXRcbiIpOworfQorCisvKioKKyAqIGV4ZWN1dGVfeHBhdGhfZXhwcmVzc2lvbjoKKyAqIEBmaWxlbmFtZToJCXRoZSBpbnB1dCBYTUwgZmlsZW5hbWUuCisgKiBAeHBhdGhFeHByOgkJdGhlIHhwYXRoIGV4cHJlc3Npb24gZm9yIGV2YWx1YXRpb24uCisgKiBAbnNMaXN0OgkJdGhlIG9wdGlvbmFsIGxpc3Qgb2Yga25vd24gbmFtZXNwYWNlcyBpbiAKKyAqCQkJIjxwcmVmaXgxPj08aHJlZjE+IDxwcmVmaXgyPj1ocmVmMj4gLi4uIiBmb3JtYXQuCisgKgorICogUGFyc2VzIGlucHV0IFhNTCBmaWxlLCBldmFsdWF0ZXMgWFBhdGggZXhwcmVzc2lvbiBhbmQgcHJpbnRzIHJlc3VsdHMuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIGEgbmVnYXRpdmUgdmFsdWUgb3RoZXJ3aXNlLgorICovCitpbnQgCitleGVjdXRlX3hwYXRoX2V4cHJlc3Npb24oY29uc3QgY2hhciogZmlsZW5hbWUsIGNvbnN0IHhtbENoYXIqIHhwYXRoRXhwciwgY29uc3QgeG1sQ2hhciogbnNMaXN0KSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgeHBhdGhDdHg7IAorICAgIHhtbFhQYXRoT2JqZWN0UHRyIHhwYXRoT2JqOyAKKyAgICAKKyAgICBhc3NlcnQoZmlsZW5hbWUpOworICAgIGFzc2VydCh4cGF0aEV4cHIpOworCisgICAgLyogTG9hZCBYTUwgZG9jdW1lbnQgKi8KKyAgICBkb2MgPSB4bWxQYXJzZUZpbGUoZmlsZW5hbWUpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLCAiRXJyb3I6IHVuYWJsZSB0byBwYXJzZSBmaWxlIFwiJXNcIlxuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgLyogQ3JlYXRlIHhwYXRoIGV2YWx1YXRpb24gY29udGV4dCAqLworICAgIHhwYXRoQ3R4ID0geG1sWFBhdGhOZXdDb250ZXh0KGRvYyk7CisgICAgaWYoeHBhdGhDdHggPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IHVuYWJsZSB0byBjcmVhdGUgbmV3IFhQYXRoIGNvbnRleHRcbiIpOworICAgICAgICB4bWxGcmVlRG9jKGRvYyk7IAorICAgICAgICByZXR1cm4oLTEpOworICAgIH0KKyAgICAKKyAgICAvKiBSZWdpc3RlciBuYW1lc3BhY2VzIGZyb20gbGlzdCAoaWYgYW55KSAqLworICAgIGlmKChuc0xpc3QgIT0gTlVMTCkgJiYgKHJlZ2lzdGVyX25hbWVzcGFjZXMoeHBhdGhDdHgsIG5zTGlzdCkgPCAwKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IGZhaWxlZCB0byByZWdpc3RlciBuYW1lc3BhY2VzIGxpc3QgXCIlc1wiXG4iLCBuc0xpc3QpOworICAgICAgICB4bWxYUGF0aEZyZWVDb250ZXh0KHhwYXRoQ3R4KTsgCisgICAgICAgIHhtbEZyZWVEb2MoZG9jKTsgCisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgLyogRXZhbHVhdGUgeHBhdGggZXhwcmVzc2lvbiAqLworICAgIHhwYXRoT2JqID0geG1sWFBhdGhFdmFsRXhwcmVzc2lvbih4cGF0aEV4cHIsIHhwYXRoQ3R4KTsKKyAgICBpZih4cGF0aE9iaiA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJFcnJvcjogdW5hYmxlIHRvIGV2YWx1YXRlIHhwYXRoIGV4cHJlc3Npb24gXCIlc1wiXG4iLCB4cGF0aEV4cHIpOworICAgICAgICB4bWxYUGF0aEZyZWVDb250ZXh0KHhwYXRoQ3R4KTsgCisgICAgICAgIHhtbEZyZWVEb2MoZG9jKTsgCisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgLyogUHJpbnQgcmVzdWx0cyAqLworICAgIHByaW50X3hwYXRoX25vZGVzKHhwYXRoT2JqLT5ub2Rlc2V0dmFsLCBzdGRvdXQpOworCisgICAgLyogQ2xlYW51cCAqLworICAgIHhtbFhQYXRoRnJlZU9iamVjdCh4cGF0aE9iaik7CisgICAgeG1sWFBhdGhGcmVlQ29udGV4dCh4cGF0aEN0eCk7IAorICAgIHhtbEZyZWVEb2MoZG9jKTsgCisgICAgCisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHJlZ2lzdGVyX25hbWVzcGFjZXM6CisgKiBAeHBhdGhDdHg6CQl0aGUgcG9pbnRlciB0byBhbiBYUGF0aCBjb250ZXh0LgorICogQG5zTGlzdDoJCXRoZSBsaXN0IG9mIGtub3duIG5hbWVzcGFjZXMgaW4gCisgKgkJCSI8cHJlZml4MT49PGhyZWYxPiA8cHJlZml4Mj49aHJlZjI+IC4uLiIgZm9ybWF0LgorICoKKyAqIFJlZ2lzdGVycyBuYW1lc3BhY2VzIGZyb20gQG5zTGlzdCBpbiBAeHBhdGhDdHguCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIGEgbmVnYXRpdmUgdmFsdWUgb3RoZXJ3aXNlLgorICovCitpbnQgCityZWdpc3Rlcl9uYW1lc3BhY2VzKHhtbFhQYXRoQ29udGV4dFB0ciB4cGF0aEN0eCwgY29uc3QgeG1sQ2hhciogbnNMaXN0KSB7CisgICAgeG1sQ2hhciogbnNMaXN0RHVwOworICAgIHhtbENoYXIqIHByZWZpeDsKKyAgICB4bWxDaGFyKiBocmVmOworICAgIHhtbENoYXIqIG5leHQ7CisgICAgCisgICAgYXNzZXJ0KHhwYXRoQ3R4KTsKKyAgICBhc3NlcnQobnNMaXN0KTsKKworICAgIG5zTGlzdER1cCA9IHhtbFN0cmR1cChuc0xpc3QpOworICAgIGlmKG5zTGlzdER1cCA9PSBOVUxMKSB7CisJZnByaW50ZihzdGRlcnIsICJFcnJvcjogdW5hYmxlIHRvIHN0cmR1cCBuYW1lc3BhY2VzIGxpc3RcbiIpOworCXJldHVybigtMSk7CQorICAgIH0KKyAgICAKKyAgICBuZXh0ID0gbnNMaXN0RHVwOyAKKyAgICB3aGlsZShuZXh0ICE9IE5VTEwpIHsKKwkvKiBza2lwIHNwYWNlcyAqLworCXdoaWxlKCgqbmV4dCkgPT0gJyAnKSBuZXh0Kys7CisJaWYoKCpuZXh0KSA9PSAnXDAnKSBicmVhazsKKworCS8qIGZpbmQgcHJlZml4ICovCisJcHJlZml4ID0gbmV4dDsKKwluZXh0ID0gKHhtbENoYXIqKXhtbFN0cmNocihuZXh0LCAnPScpOworCWlmKG5leHQgPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IGludmFsaWQgbmFtZXNwYWNlcyBsaXN0IGZvcm1hdFxuIik7CisJICAgIHhtbEZyZWUobnNMaXN0RHVwKTsKKwkgICAgcmV0dXJuKC0xKTsJCisJfQorCSoobmV4dCsrKSA9ICdcMCc7CQorCQorCS8qIGZpbmQgaHJlZiAqLworCWhyZWYgPSBuZXh0OworCW5leHQgPSAoeG1sQ2hhciopeG1sU3RyY2hyKG5leHQsICcgJyk7CisJaWYobmV4dCAhPSBOVUxMKSB7CisJICAgICoobmV4dCsrKSA9ICdcMCc7CQorCX0KKworCS8qIGRvIHJlZ2lzdGVyIG5hbWVzcGFjZSAqLworCWlmKHhtbFhQYXRoUmVnaXN0ZXJOcyh4cGF0aEN0eCwgcHJlZml4LCBocmVmKSAhPSAwKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCJFcnJvcjogdW5hYmxlIHRvIHJlZ2lzdGVyIE5TIHdpdGggcHJlZml4PVwiJXNcIiBhbmQgaHJlZj1cIiVzXCJcbiIsIHByZWZpeCwgaHJlZik7CisJICAgIHhtbEZyZWUobnNMaXN0RHVwKTsKKwkgICAgcmV0dXJuKC0xKTsJCisJfQorICAgIH0KKyAgICAKKyAgICB4bWxGcmVlKG5zTGlzdER1cCk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHByaW50X3hwYXRoX25vZGVzOgorICogQG5vZGVzOgkJdGhlIG5vZGVzIHNldC4KKyAqIEBvdXRwdXQ6CQl0aGUgb3V0cHV0IGZpbGUgaGFuZGxlLgorICoKKyAqIFByaW50cyB0aGUgQG5vZGVzIGNvbnRlbnQgdG8gQG91dHB1dC4KKyAqLwordm9pZAorcHJpbnRfeHBhdGhfbm9kZXMoeG1sTm9kZVNldFB0ciBub2RlcywgRklMRSogb3V0cHV0KSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgaW50IHNpemU7CisgICAgaW50IGk7CisgICAgCisgICAgYXNzZXJ0KG91dHB1dCk7CisgICAgc2l6ZSA9IChub2RlcykgPyBub2Rlcy0+bm9kZU5yIDogMDsKKyAgICAKKyAgICBmcHJpbnRmKG91dHB1dCwgIlJlc3VsdCAoJWQgbm9kZXMpOlxuIiwgc2l6ZSk7CisgICAgZm9yKGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisJYXNzZXJ0KG5vZGVzLT5ub2RlVGFiW2ldKTsKKwkKKwlpZihub2Rlcy0+bm9kZVRhYltpXS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwkgICAgeG1sTnNQdHIgbnM7CisJICAgIAorCSAgICBucyA9ICh4bWxOc1B0cilub2Rlcy0+bm9kZVRhYltpXTsKKwkgICAgY3VyID0gKHhtbE5vZGVQdHIpbnMtPm5leHQ7CisJICAgIGlmKGN1ci0+bnMpIHsgCisJICAgICAgICBmcHJpbnRmKG91dHB1dCwgIj0gbmFtZXNwYWNlIFwiJXNcIj1cIiVzXCIgZm9yIG5vZGUgJXM6JXNcbiIsIAorCQkgICAgbnMtPnByZWZpeCwgbnMtPmhyZWYsIGN1ci0+bnMtPmhyZWYsIGN1ci0+bmFtZSk7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBmcHJpbnRmKG91dHB1dCwgIj0gbmFtZXNwYWNlIFwiJXNcIj1cIiVzXCIgZm9yIG5vZGUgJXNcbiIsIAorCQkgICAgbnMtPnByZWZpeCwgbnMtPmhyZWYsIGN1ci0+bmFtZSk7CisJICAgIH0KKwl9IGVsc2UgaWYobm9kZXMtPm5vZGVUYWJbaV0tPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCSAgICBjdXIgPSBub2Rlcy0+bm9kZVRhYltpXTsgICAJICAgIAorCSAgICBpZihjdXItPm5zKSB7IAorICAgIAkgICAgICAgIGZwcmludGYob3V0cHV0LCAiPSBlbGVtZW50IG5vZGUgXCIlczolc1wiXG4iLCAKKwkJICAgIGN1ci0+bnMtPmhyZWYsIGN1ci0+bmFtZSk7CisJICAgIH0gZWxzZSB7CisgICAgCSAgICAgICAgZnByaW50ZihvdXRwdXQsICI9IGVsZW1lbnQgbm9kZSBcIiVzXCJcbiIsIAorCQkgICAgY3VyLT5uYW1lKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIGN1ciA9IG5vZGVzLT5ub2RlVGFiW2ldOyAgICAKKwkgICAgZnByaW50ZihvdXRwdXQsICI9IG5vZGUgXCIlc1wiOiB0eXBlICVkXG4iLCBjdXItPm5hbWUsIGN1ci0+dHlwZSk7CisJfQorICAgIH0KK30KKworI2Vsc2UKK2ludCBtYWluKHZvaWQpIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlhQYXRoIHN1cHBvcnQgbm90IGNvbXBpbGVkIGluXG4iKTsKKyAgICBleGl0KDEpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy94cGF0aDEucmVzIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMveHBhdGgxLnJlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmFmM2E5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMveHBhdGgxLnJlcwpAQCAtMCwwICsxLDUgQEAKK1Jlc3VsdCAoNCBub2Rlcyk6Cis9IGVsZW1lbnQgbm9kZSAiY2hpbGQyIgorPSBlbGVtZW50IG5vZGUgImNoaWxkMiIKKz0gZWxlbWVudCBub2RlICJjaGlsZDIiCis9IGVsZW1lbnQgbm9kZSAiY2hpbGQyIgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMveHBhdGgyLmMgYi9saWJ4bWwyLTIuNy43L2RvYy9leGFtcGxlcy94cGF0aDIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmY0MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMveHBhdGgyLmMKQEAgLTAsMCArMSwxOTAgQEAKKy8qKiAKKyAqIHNlY3Rpb246IAlYUGF0aAorICogc3lub3BzaXM6IAlMb2FkIGEgZG9jdW1lbnQsIGxvY2F0ZSBzdWJlbGVtZW50cyB3aXRoIFhQYXRoLCBtb2RpZnkKKyAqICAgICAgICAgICAgICBzYWlkIGVsZW1lbnRzIGFuZCBzYXZlIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQuCisgKiBwdXJwb3NlOiAJU2hvd3MgaG93IHRvIG1ha2UgYSBmdWxsIHJvdW5kLXRyaXAgZnJvbSBhIGxvYWQvZWRpdC9zYXZlCisgKiB1c2FnZToJeHBhdGgyIDx4bWwtZmlsZT4gPHhwYXRoLWV4cHI+IDxuZXctdmFsdWU+CisgKiB0ZXN0Ogl4cGF0aDIgdGVzdDMueG1sICcvL2Rpc2NhcmRlZCcgZGlzY2FyZGVkID4geHBhdGgyLnRtcCA7IGRpZmYgeHBhdGgyLnRtcCB4cGF0aDIucmVzIDsgcm0geHBhdGgyLnRtcAorICogYXV0aG9yOiAJQWxla3NleSBTYW5pbiBhbmQgRGFuaWVsIFZlaWxsYXJkCisgKiBjb3B5OiAJc2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICovCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aEludGVybmFscy5oPgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKSAmJiBcCisgICAgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisKKworc3RhdGljIHZvaWQgdXNhZ2UoY29uc3QgY2hhciAqbmFtZSk7CitzdGF0aWMgaW50IGV4YW1wbGU0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCB4bWxDaGFyICogeHBhdGhFeHByLAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogdmFsdWUpOworc3RhdGljIHZvaWQgdXBkYXRlX3hwYXRoX25vZGVzKHhtbE5vZGVTZXRQdHIgbm9kZXMsIGNvbnN0IHhtbENoYXIgKiB2YWx1ZSk7CisKKworaW50IAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICAvKiBQYXJzZSBjb21tYW5kIGxpbmUgYW5kIHByb2Nlc3MgZmlsZSAqLworICAgIGlmIChhcmdjICE9IDQpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzLlxuIik7CisJdXNhZ2UoYXJndlswXSk7CisJcmV0dXJuKC0xKTsKKyAgICB9IAorICAgIAorICAgIC8qIEluaXQgbGlieG1sICovICAgICAKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgLyogRG8gdGhlIG1haW4gam9iICovCisgICAgaWYgKGV4YW1wbGU0KGFyZ3ZbMV0sIEJBRF9DQVNUIGFyZ3ZbMl0sIEJBRF9DQVNUIGFyZ3ZbM10pKSB7CisJdXNhZ2UoYXJndlswXSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICAvKiBTaHV0ZG93biBsaWJ4bWwgKi8KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgCisgICAgLyoKKyAgICAgKiB0aGlzIGlzIHRvIGRlYnVnIG1lbW9yeSBmb3IgcmVncmVzc2lvbiB0ZXN0cworICAgICAqLworICAgIHhtbE1lbW9yeUR1bXAoKTsKKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiB1c2FnZToKKyAqIEBuYW1lOgkJdGhlIHByb2dyYW0gbmFtZS4KKyAqCisgKiBQcmludHMgdXNhZ2UgaW5mb3JtYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkIAordXNhZ2UoY29uc3QgY2hhciAqbmFtZSkgeworICAgIGFzc2VydChuYW1lKTsKKyAgICAKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlcyA8eG1sLWZpbGU+IDx4cGF0aC1leHByPiA8dmFsdWU+XG4iLCBuYW1lKTsKK30KKworLyoqCisgKiBleGFtcGxlNDoKKyAqIEBmaWxlbmFtZToJCXRoZSBpbnB1dCBYTUwgZmlsZW5hbWUuCisgKiBAeHBhdGhFeHByOgkJdGhlIHhwYXRoIGV4cHJlc3Npb24gZm9yIGV2YWx1YXRpb24uCisgKiBAdmFsdWU6CQl0aGUgbmV3IG5vZGUgY29udGVudC4KKyAqCisgKiBQYXJzZXMgaW5wdXQgWE1MIGZpbGUsIGV2YWx1YXRlcyBYUGF0aCBleHByZXNzaW9uIGFuZCB1cGRhdGUgdGhlIG5vZGVzCisgKiB0aGVuIHByaW50IHRoZSByZXN1bHQuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIGEgbmVnYXRpdmUgdmFsdWUgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50IAorZXhhbXBsZTQoY29uc3QgY2hhciogZmlsZW5hbWUsIGNvbnN0IHhtbENoYXIqIHhwYXRoRXhwciwgY29uc3QgeG1sQ2hhciogdmFsdWUpIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFhQYXRoQ29udGV4dFB0ciB4cGF0aEN0eDsgCisgICAgeG1sWFBhdGhPYmplY3RQdHIgeHBhdGhPYmo7IAorICAgIAorICAgIGFzc2VydChmaWxlbmFtZSk7CisgICAgYXNzZXJ0KHhwYXRoRXhwcik7CisgICAgYXNzZXJ0KHZhbHVlKTsKKworICAgIC8qIExvYWQgWE1MIGRvY3VtZW50ICovCisgICAgZG9jID0geG1sUGFyc2VGaWxlKGZpbGVuYW1lKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiB1bmFibGUgdG8gcGFyc2UgZmlsZSBcIiVzXCJcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qIENyZWF0ZSB4cGF0aCBldmFsdWF0aW9uIGNvbnRleHQgKi8KKyAgICB4cGF0aEN0eCA9IHhtbFhQYXRoTmV3Q29udGV4dChkb2MpOworICAgIGlmKHhwYXRoQ3R4ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiB1bmFibGUgdG8gY3JlYXRlIG5ldyBYUGF0aCBjb250ZXh0XG4iKTsKKyAgICAgICAgeG1sRnJlZURvYyhkb2MpOyAKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgCisgICAgLyogRXZhbHVhdGUgeHBhdGggZXhwcmVzc2lvbiAqLworICAgIHhwYXRoT2JqID0geG1sWFBhdGhFdmFsRXhwcmVzc2lvbih4cGF0aEV4cHIsIHhwYXRoQ3R4KTsKKyAgICBpZih4cGF0aE9iaiA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJFcnJvcjogdW5hYmxlIHRvIGV2YWx1YXRlIHhwYXRoIGV4cHJlc3Npb24gXCIlc1wiXG4iLCB4cGF0aEV4cHIpOworICAgICAgICB4bWxYUGF0aEZyZWVDb250ZXh0KHhwYXRoQ3R4KTsgCisgICAgICAgIHhtbEZyZWVEb2MoZG9jKTsgCisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgLyogdXBkYXRlIHNlbGVjdGVkIG5vZGVzICovCisgICAgdXBkYXRlX3hwYXRoX25vZGVzKHhwYXRoT2JqLT5ub2Rlc2V0dmFsLCB2YWx1ZSk7CisKKyAgICAKKyAgICAvKiBDbGVhbnVwIG9mIFhQYXRoIGRhdGEgKi8KKyAgICB4bWxYUGF0aEZyZWVPYmplY3QoeHBhdGhPYmopOworICAgIHhtbFhQYXRoRnJlZUNvbnRleHQoeHBhdGhDdHgpOyAKKworICAgIC8qIGR1bXAgdGhlIHJlc3VsdGluZyBkb2N1bWVudCAqLworICAgIHhtbERvY0R1bXAoc3Rkb3V0LCBkb2MpOworCisKKyAgICAvKiBmcmVlIHRoZSBkb2N1bWVudCAqLworICAgIHhtbEZyZWVEb2MoZG9jKTsgCisgICAgCisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHVwZGF0ZV94cGF0aF9ub2RlczoKKyAqIEBub2RlczoJCXRoZSBub2RlcyBzZXQuCisgKiBAdmFsdWU6CQl0aGUgbmV3IHZhbHVlIGZvciB0aGUgbm9kZShzKQorICoKKyAqIFByaW50cyB0aGUgQG5vZGVzIGNvbnRlbnQgdG8gQG91dHB1dC4KKyAqLworc3RhdGljIHZvaWQKK3VwZGF0ZV94cGF0aF9ub2Rlcyh4bWxOb2RlU2V0UHRyIG5vZGVzLCBjb25zdCB4bWxDaGFyKiB2YWx1ZSkgeworICAgIGludCBzaXplOworICAgIGludCBpOworICAgIAorICAgIGFzc2VydCh2YWx1ZSk7CisgICAgc2l6ZSA9IChub2RlcykgPyBub2Rlcy0+bm9kZU5yIDogMDsKKyAgICAKKyAgICAvKgorICAgICAqIE5PVEU6IHRoZSBub2RlcyBhcmUgcHJvY2Vzc2VkIGluIHJldmVyc2Ugb3JkZXIsIGkuZS4gcmV2ZXJzZSBkb2N1bWVudAorICAgICAqICAgICAgIG9yZGVyIGJlY2F1c2UgeG1sTm9kZVNldENvbnRlbnQgY2FuIGFjdHVhbGx5IGZyZWUgdXAgZGVzY2VuZGFudAorICAgICAqICAgICAgIG9mIHRoZSBub2RlIGFuZCBzdWNoIG5vZGVzIG1heSBoYXZlIGJlZW4gc2VsZWN0ZWQgdG9vICEgSGFuZGxpbmcKKyAgICAgKiAgICAgICBpbiByZXZlcnNlIG9yZGVyIGVuc3VyZSB0aGF0IGRlc2NlbmRhbnQgYXJlIGFjY2Vzc2VkIGZpcnN0LCBiZWZvcmUKKyAgICAgKiAgICAgICB0aGV5IGdldCByZW1vdmVkLiBNaXhpbmcgWFBhdGggYW5kIG1vZGlmaWNhdGlvbnMgb24gYSB0cmVlIG11c3QgYmUKKyAgICAgKiAgICAgICBkb25lIGNhcmVmdWxseSAhCisgICAgICovCisgICAgZm9yKGkgPSBzaXplIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwlhc3NlcnQobm9kZXMtPm5vZGVUYWJbaV0pOworCQorCXhtbE5vZGVTZXRDb250ZW50KG5vZGVzLT5ub2RlVGFiW2ldLCB2YWx1ZSk7CisJLyoKKwkgKiBBbGwgdGhlIGVsZW1lbnRzIHJldHVybmVkIGJ5IGFuIFhQYXRoIHF1ZXJ5IGFyZSBwb2ludGVycyB0bworCSAqIGVsZW1lbnRzIGZyb20gdGhlIHRyZWUgKmV4Y2VwdCogbmFtZXNwYWNlIG5vZGVzIHdoZXJlIHRoZSBYUGF0aAorCSAqIHNlbWFudGljIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiBsaWJ4bWwyIHRyZWUuCisJICogQXMgYSByZXN1bHQgd2hlbiBhIHJldHVybmVkIG5vZGUgc2V0IGlzIGZyZWVkIHdoZW4KKwkgKiB4bWxYUGF0aEZyZWVPYmplY3QoKSBpcyBjYWxsZWQsIHRoYXQgcm91dGluZSBtdXN0IGNoZWNrIHRoZQorCSAqIGVsZW1lbnQgdHlwZS4gQnV0IG5vZGUgZnJvbSB0aGUgcmV0dXJuZWQgc2V0IG1heSBoYXZlIGJlZW4gcmVtb3ZlZAorCSAqIGJ5IHhtbE5vZGVTZXRDb250ZW50KCkgcmVzdWx0aW5nIGluIGFjY2VzcyB0byBmcmVlZCBkYXRhLgorCSAqIFRoaXMgY2FuIGJlIGV4ZXJjaXNlZCBieSBydW5uaW5nCisJICogICAgICAgdmFsZ3JpbmQgeHBhdGgyIHRlc3QzLnhtbCAnLy9kaXNjYXJkZWQnIGRpc2NhcmRlZAorCSAqIFRoZXJlIGlzIDIgd2F5cyBhcm91bmQgaXQ6CisJICogICAtIG1ha2UgYSBjb3B5IG9mIHRoZSBwb2ludGVycyB0byB0aGUgbm9kZXMgZnJvbSB0aGUgcmVzdWx0IHNldCAKKwkgKiAgICAgdGhlbiBjYWxsIHhtbFhQYXRoRnJlZU9iamVjdCgpIGFuZCB0aGVuIG1vZGlmeSB0aGUgbm9kZXMKKwkgKiBvcgorCSAqICAgLSByZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0aGUgbW9kaWZpZWQgbm9kZXMgZnJvbSB0aGUgbm9kZSBzZXQKKwkgKiAgICAgYXMgdGhleSBhcmUgcHJvY2Vzc2VkLCBpZiB0aGV5IGFyZSBub3QgbmFtZXNwYWNlIG5vZGVzLgorCSAqLworCWlmIChub2Rlcy0+bm9kZVRhYltpXS0+dHlwZSAhPSBYTUxfTkFNRVNQQUNFX0RFQ0wpCisJICAgIG5vZGVzLT5ub2RlVGFiW2ldID0gTlVMTDsKKyAgICB9Cit9CisKKyNlbHNlCitpbnQgbWFpbih2b2lkKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJYUGF0aCBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIik7CisgICAgZXhpdCgxKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvZXhhbXBsZXMveHBhdGgyLnJlcyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3hwYXRoMi5yZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU4OTY5OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2V4YW1wbGVzL3hwYXRoMi5yZXMKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jPgorICA8cGFyZW50PgorICAgIDxkaXNjYXJkZWQ+ZGlzY2FyZGVkPC9kaXNjYXJkZWQ+CisgICAgPHByZXNlcnZlZC8+CisgICAgVGhpcyB0ZXh0IG5vZGUgbXVzdCBiZSBkaXNjYXJkZWQKKyAgICA8ZGlzY2FyZGVkPmRpc2NhcmRlZDwvZGlzY2FyZGVkPgorICAgIDxwcmVzZXJ2ZWQ+CisgICAgICBjb250ZW50MQorICAgICAgPGNoaWxkMS8+CisgICAgICA8Y2hpbGQyPmNvbnRlbnQyPC9jaGlsZDI+CisgICAgICA8cHJlc2VydmVkPnRvbzwvcHJlc2VydmVkPgorICAgICAgPGNoaWxkMj5jb250ZW50MzwvY2hpbGQyPgorICAgICAgPHByZXNlcnZlZC8+CisgICAgICA8Y2hpbGQyPmNvbnRlbnQ0PC9jaGlsZDI+CisgICAgICA8cHJlc2VydmVkLz4KKyAgICAgIDxjaGlsZDI+Y29udGVudDU8L2NoaWxkMj4KKyAgICAgIGNvbnRlbnQ2CisgICAgPC9wcmVzZXJ2ZWQ+CisgICAgVGhpcyB0ZXh0IG5vZGUgbXVzdCBiZSBkaXNjYXJkZWQKKyAgICA8ZGlzY2FyZGVkPmRpc2NhcmRlZDwvZGlzY2FyZGVkPgorICAgIFRoaXMgdGV4dCBub2RlIG11c3QgYmUgZGlzY2FyZGVkCisgICAgPHByZXNlcnZlZC8+CisgICAgVGhpcyB0ZXh0IG5vZGUgbXVzdCBiZSBkaXNjYXJkZWQKKyAgICA8cHJlc2VydmVkLz4KKyAgICBUaGlzIHRleHQgbm9kZSBtdXN0IGJlIGRpc2NhcmRlZAorICAgIDxkaXNjYXJkZWQ+ZGlzY2FyZGVkPC9kaXNjYXJkZWQ+CisgICAgVGhpcyB0ZXh0IG5vZGUgbXVzdCBiZSBkaXNjYXJkZWQKKyAgPC9wYXJlbnQ+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2d1aWRlbGluZXMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2d1aWRlbGluZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjRhN2IzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvZ3VpZGVsaW5lcy5odG1sCkBAIC0wLDAgKzEsMzc0IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWwiPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+Cis8IS0tCitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorICA8L3N0eWxlPgorLS0+CisgIDx0aXRsZT5YTUwgcmVzb3VyY2VzIHB1YmxpY2F0aW9uIGd1aWRlbGluZXM8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSIjZmZmYWNkIiB0ZXh0PSIjMDAwMDAwIj4KKzxoMSBhbGlnbj0iY2VudGVyIj5YTUwgcmVzb3VyY2VzIHB1YmxpY2F0aW9uIGd1aWRlbGluZXM8L2gxPgorCis8cD48L3A+CisKKzxwPlRoZSBnb2FsIG9mIHRoaXMgZG9jdW1lbnQgaXMgdG8gcHJvdmlkZSBhIHNldCBvZiBndWlkZWxpbmVzIGFuZCB0aXBzCitoZWxwaW5nIHRoZSBwdWJsaWNhdGlvbiBhbmQgZGVwbG95bWVudCBvZiA8YQoraHJlZj0iaHR0cDovL3d3dy53My5vcmcvWE1MLyI+WE1MPC9hPiByZXNvdXJjZXMgZm9yIHRoZSA8YQoraHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj5HTk9NRSBwcm9qZWN0PC9hPi4gSG93ZXZlciBpdCBpcyBub3QgdGllZCB0bworR05PTUUgYW5kIG1pZ2h0IGJlIGhlbHBmdWwgbW9yZSBnZW5lcmFsbHkuIEkgd2VsY29tZSA8YQoraHJlZj0ibWFpbHRvOnZlaWxsYXJkQHJlZGhhdC5jb20iPmZlZWRiYWNrPC9hPiBvbiB0aGlzIGRvY3VtZW50LjwvcD4KKworPHA+VGhlIGludGVuZGVkIGF1ZGllbmNlIGlzIHRoZSBzb2Z0d2FyZSBkZXZlbG9wZXJzIHdobyBzdGFydGVkIHVzaW5nIFhNTAorZm9yIHNvbWUgb2YgdGhlIHJlc291cmNlcyBvZiB0aGVpciBwcm9qZWN0LCBhcyBhIHN0b3JhZ2UgZm9ybWF0LCBmb3IgZGF0YQorZXhjaGFuZ2UsIGNoZWNraW5nIG9yIHRyYW5zZm9ybWF0aW9ucy4gVGhlcmUgaGF2ZSBiZWVuIGFuIGluY3JlYXNpbmcgbnVtYmVyCitvZiBuZXcgWE1MIGZvcm1hdHMgZGVmaW5lZCwgYnV0IG5vdCBhbGwgc3RlcHMgaGF2ZSBiZWVuIHRha2VuLCBwb3NzaWJseSBiZWNhdXNlIG9mCitsYWNrIG9mIGRvY3VtZW50YXRpb24sIHRvIHRydWx5IGdhaW4gYWxsIHRoZSBiZW5lZml0cyBvZiB0aGUgdXNlIG9mIFhNTC4KK1RoZXNlIGd1aWRlbGluZXMgaG9wZSB0byBpbXByb3ZlIHRoZSBtYXR0ZXIgYW5kIHByb3ZpZGUgYSBiZXR0ZXIgb3ZlcnZpZXcgb2YKK3RoZSBvdmVyYWxsIFhNTCBwcm9jZXNzaW5nIGFuZCBhc3NvY2lhdGVkIHN0ZXBzIG5lZWRlZCB0byBkZXBsb3kgaXQKK3N1Y2Nlc3NmdWxseTo8L3A+CisKKzxwPlRhYmxlIG9mIGNvbnRlbnRzOjwvcD4KKzxvbD4KKyAgPGxpPjxhIGhyZWY9IiNEZXNpZ24iPkRlc2lnbiBndWlkZWxpbmVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjQ2Fub25pY2FsIj5DYW5vbmljYWwgVVJMPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjQ2F0YWxvZyI+Q2F0YWxvZyBzZXR1cDwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1BhY2thZ2UiPlBhY2thZ2UgaW50ZWdyYXRpb248L2E+PC9saT4KKzwvb2w+CisKKzxoMj48YSBuYW1lPSJEZXNpZ24iPkRlc2lnbiBndWlkZWxpbmVzPC9hPjwvaDI+CisKKzxwPlRoaXMgcGFydCBpbnRlbmRzIHRvIGZvY3VzIG9uIHRoZSBmb3JtYXQgaXRzZWxmIG9mIFhNTC4gSXQgbWF5ICBhcnJpdmUKK2EgYml0IHRvbyBsYXRlIHNpbmNlIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGRvY3VtZW50IG1heSBhbHJlYWR5IGJlIGNhc3QgaW4KK2V4aXN0aW5nIGFuZCBkZXBsb3llZCBjb2RlLiBTdGlsbCwgaGVyZSBhcmUgYSBmZXcgcnVsZXMgd2hpY2ggbWlnaHQgYmUgaGVscGZ1bAord2hlbiBkZXNpZ25pbmcgYSBuZXcgWE1MIHZvY2FidWxhcnkgb3IgbWFraW5nIHRoZSByZXZpc2lvbiBvZiBhbiBleGlzdGluZworZm9ybWF0OjwvcD4KKworPGgzPlJldXNlIGV4aXN0aW5nIGZvcm1hdHM6PC9oMz4KKworPHA+VGhpcyBtYXkgc291bmRzIGEgYml0IHNpbXBsaXN0aWMsIGJ1dCBiZWZvcmUgZGVzaWduaW5nIHlvdXIgb3duIGZvcm1hdCwKK3RyeSB0byBsb29rdXAgZXhpc3RpbmcgWE1MIHZvY2FidWxhcmllcyBvbiBzaW1pbGFyIGRhdGEuIElkZWFsbHkgdGhpcyBhbGxvd3MKK3lvdSB0byByZXVzZSB0aGVtLCBpbiB3aGljaCBjYXNlIGEgbG90IG9mIHRoZSBleGlzdGluZyB0b29scyBsaWtlIERURCwgc2NoZW1hcworYW5kIHN0eWxlc2hlZXRzIG1heSBhbHJlYWR5IGJlIGF2YWlsYWJsZS4gSWYgeW91IGFyZSBsb29raW5nIGF0IGEKK2RvY3VtZW50YXRpb24gZm9ybWF0LCA8YSBocmVmPSJodHRwOi8vd3d3LmRvY2Jvb2sub3JnLyI+RG9jQm9vazwvYT4gc2hvdWxkCitoYW5kbGUgeW91ciBuZWVkcy4gSWYgcmV1c2UgaXMgbm90IHBvc3NpYmxlIGJlY2F1c2Ugc29tZSBzZW1hbnRpYyBvciB1c2UgY2FzZQorYXNwZWN0cyBhcmUgdG9vIGRpZmZlcmVudCB0aGlzIHdpbGwgYmUgaGVscGZ1bCBhdm9pZGluZyBkZXNpZ24gZXJyb3JzIGxpa2UKK3RhcmdldGluZyB0aGUgdm9jYWJ1bGFyeSB0byB0aGUgd3JvbmcgYWJzdHJhY3Rpb24gbGV2ZWwuIEluIHRoaXMgZm9ybWF0CitkZXNpZ24gcGhhc2UgdHJ5IHRvIGJlIHN5bnRoZXRpYyBhbmQgYmUgc3VyZSB0byBleHByZXNzIHRoZSByZWFsIGNvbnRlbnQgb2YKK3lvdXIgZGF0YSBhbmQgdXNlIHRoZSBYTUwgc3RydWN0dXJlIHRvIGV4cHJlc3MgdGhlIHNlbWFudGljIGFuZCBjb250ZXh0IG9mCit0aG9zZSBkYXRhLjwvcD4KKworPGgzPkRURCBydWxlczo8L2gzPgorCis8cD5CdWlsZGluZyBhIERURCAoRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uKSBvciBhIFNjaGVtYSBkZXNjcmliaW5nIHRoZQorc3RydWN0dXJlIGFsbG93ZWQgYnkgaW5zdGFuY2VzIGlzIHRoZSBjb3JlIG9mIHRoZSBkZXNpZ24gcHJvY2VzcyBvZiB0aGUKK3ZvY2FidWxhcnkuIEhlcmUgYXJlIGEgZmV3IHRpcHM6PC9wPgorPHVsPgorICA8bGk+dXNlIHNpZ25pZmljYW50IHdvcmRzIGZvciB0aGUgZWxlbWVudCBhbmQgYXR0cmlidXRlcyBuYW1lcy48L2xpPgorICA8bGk+ZG8gbm90IHVzZSBhdHRyaWJ1dGVzIGZvciBnZW5lcmFsIHRleHR1YWwgY29udGVudCwgYXR0cmlidXRlcworICAgIHdpbGwgYmUgbW9kaWZpZWQgYnkgdGhlIHBhcnNlciBiZWZvcmUgcmVhY2hpbmcgdGhlIGFwcGxpY2F0aW9uLAorICAgIHNwYWNlcyBhbmQgbGluZSBpbmZvcm1hdGlvbnMgd2lsbCBiZSBtb2RpZmllZC48L2xpPgorICA8bGk+dXNlIHNpbmdsZSBlbGVtZW50cyBmb3IgZXZlcnkgc3RyaW5nIHRoYXQgbWlnaHQgYmUgc3ViamVjdCB0bworICAgIGxvY2FsaXphdGlvbi4gVGhlIGNhbm9uaWNhbCB3YXkgdG8gbG9jYWxpemUgWE1MIGNvbnRlbnQgaXMgdG8gdXNlCisgICAgc2libGluZ3MgZWxlbWVudCBjYXJyeWluZyBkaWZmZXJlbnQgeG1sOmxhbmcgYXR0cmlidXRlcyBsaWtlIGluIHRoZQorICAgIGZvbGxvd2luZzoKKyAgICA8cHJlPiZsdDt3ZWxjb21lJmd0OworICAmbHQ7bXNnIHhtbDpsYW5nPSJlbiImZ3Q7aGVsbG8mbHQ7L21zZyZndDsKKyAgJmx0O21zZyB4bWw6bGFuZz0iZnIiJmd0O2JvbmpvdXImbHQ7L21zZyZndDsKKyZsdDsvd2VsY29tZSZndDs8L3ByZT4KKyAgPC9saT4KKyAgPGxpPnVzZSBhdHRyaWJ1dGVzIHRvIHJlZmluZSB0aGUgY29udGVudCBvZiBhbiBlbGVtZW50IGJ1dCBhdm9pZCB0aGVtIGZvcgorICAgIG1vcmUgY29tcGxleCB0YXNrcywgYXR0cmlidXRlIHBhcnNpbmcgaXMgbm90IGNoZWFwZXIgdGhhbiBhbiBlbGVtZW50IGFuZAorICAgIGl0IGlzIGZhciBlYXNpZXIgdG8gbWFrZSBhbiBlbGVtZW50IGNvbnRlbnQgbW9yZSBjb21wbGV4IHdoaWxlIGF0dHJpYnV0ZQorICAgIHdpbGwgaGF2ZSB0byByZW1haW4gdmVyeSBzaW1wbGUuPC9saT4KKzwvdWw+CisKKzxoMz5WZXJzaW9uaW5nOjwvaDM+CisKKzxwPkFzIHBhcnQgb2YgdGhlIGRlc2lnbiwgbWFrZSBzdXJlIHRoZSBzdHJ1Y3R1cmUgeW91IGRlZmluZSB3aWxsIGJlIHVzYWJsZQorZm9yIGZ1dHVyZSBleHRlbnNpb24gdGhhdCB5b3UgbWF5IG5vdCBjb25zaWRlciBmb3IgdGhlIGN1cnJlbnQgdmVyc2lvbi4gVGhlcmUKK2FyZSB0d28gcGFydHMgdG8gdGhpczo8L3A+Cis8dWw+CisgIDxsaT5NYWtlIHN1cmUgdGhlIGluc3RhbmNlIGNvbnRhaW5zIGEgdmVyc2lvbiBudW1iZXIgd2hpY2ggd2lsbCBhbGxvdyB0bworICAgIG1ha2UgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBlYXN5LiBTb21ldGhpbmcgYXMgc2ltcGxlIGFzIGhhdmluZyBhCisgICAgPGNvZGU+dmVyc2lvbj0iMS4wIjwvY29kZT4gb24gdGhlIHJvb3QgZG9jdW1lbnQgb2YgdGhlIGluc3RhbmNlIGlzCisgICAgc3VmZmljaWVudC48L2xpPgorICA8bGk+V2hpbGUgZGVzaWduaW5nIHRoZSBjb2RlIGRvaW5nIHRoZSBhbmFseXNpcyBvZiB0aGUgZGF0YSBwcm92aWRlZCBieSB0aGUKKyAgICBYTUwgcGFyc2VyLCBtYWtlIHN1cmUgeW91IGNhbiB3b3JrIHdpdGggdW5rbm93biB2ZXJzaW9ucywgZ2VuZXJhdGUgYSBVSQorICAgIHdhcm5pbmcgYW5kIHByb2Nlc3Mgb25seSB0aGUgdGFncyByZWNvZ25pemVkIGJ5IHlvdXIgdmVyc2lvbiBidXQga2VlcCBpbgorICAgIG1pbmQgdGhhdCB5b3Ugc2hvdWxkIG5vdCBicmVhayBvbiB1bmtub3duIGVsZW1lbnRzIGlmIHRoZSB2ZXJzaW9uCisgICAgYXR0cmlidXRlIHdhcyBub3QgaW4gdGhlIHJlY29nbml6ZWQgc2V0LjwvbGk+Cis8L3VsPgorCis8aDM+T3RoZXIgZGVzaWduIHBhcnRzOjwvaDM+CisKKzxwPldoaWxlIGRlZmluaW5nIHlvdSB2b2NhYnVsYXJ5LCB0cnkgdG8gdGhpbmsgaW4gdGVybSBvZiBvdGhlciB1c2FnZSBvZiB5b3VyCitkYXRhLCBmb3IgZXhhbXBsZSBob3cgdXNpbmcgWFNMVCBzdHlsZXNoZWV0cyBjb3VsZCBiZSB1c2VkIHRvIG1ha2UgYW4gSFRNTAordmlldyBvZiB5b3VyIGRhdGEsIG9yIHRvIGNvbnZlcnQgaXQgaW50byBhIGRpZmZlcmVudCBmb3JtYXQuIENoZWNraW5nIFhNTAorU2NoZW1hcyBhbmQgbG9va2luZyBhdCBkZWZpbmluZyBhbiBYTUwgU2NoZW1hIHdpdGggYSBtb3JlIGNvbXBsZXRlCit2YWxpZGF0aW9uIGFuZCBkYXRhdHlwaW5nIG9mIHlvdXIgZGF0YSBzdHJ1Y3R1cmVzIGlzIGltcG9ydGFudCwgdGhpcyBoZWxwcworYXZvaWRpbmcgc29tZSBtaXN0YWtlcyBpbiB0aGUgZGVzaWduIHBoYXNlLjwvcD4KKworPGgzPk5hbWVzcGFjZTo8L2gzPgorCis8cD5JZiB5b3UgZXhwZWN0IHlvdXIgWE1MIHZvY2FidWxhcnkgdG8gYmUgdXNlZCBvciByZWNvZ25pemVkIG91dHNpZGUgb2YgeW91cgorYXBwbGljYXRpb24gKGZvciBleGFtcGxlIGJpbmRpbmcgYSBzcGVjaWZpYyBwcm9jZXNzaW5nIGZyb20gYSBncmFwaGljIHNoZWxsCitsaWtlIE5hdXRpbHVzIHRvIGFuIGluc3RhbmNlIG9mIHlvdXIgZGF0YSkgdGhlbiB5b3Ugc2hvdWxkIHJlYWxseSBkZWZpbmUgYW4gPGEKK2hyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMvIj5YTUwgbmFtZXNwYWNlPC9hPiBmb3IgeW91cgordm9jYWJ1bGFyeS4gQSBuYW1lc3BhY2UgbmFtZSBpcyBhbiBVUkwgKGFic29sdXRlIFVSSSBtb3JlIHByZWNpc2VseSkuIEl0IGlzCitnZW5lcmFsbHkgcmVjb21tZW5kZWQgdG8gYW5jaG9yIGl0IGFzIGFuIEhUVFAgcmVzb3VyY2UgdG8gYSBzZXJ2ZXIgYXNzb2NpYXRlZAord2l0aCB0aGUgc29mdHdhcmUgcHJvamVjdC4gU2VlIHRoZSBuZXh0IHNlY3Rpb24gYWJvdXQgdGhpcy4gSW4gcHJhY3RpY2UgdGhpcword2lsbCBtZWFuIHRoYXQgWE1MIHBhcnNlcnMgd2lsbCBub3QgaGFuZGxlIHlvdXIgZWxlbWVudCBuYW1lcyBhcy1pcyBidXQgYXMgYQorY291cGxlIGJhc2VkIG9uIHRoZSBuYW1lc3BhY2UgbmFtZSBhbmQgdGhlIGVsZW1lbnQgbmFtZS4gVGhpcyBhbGxvd3MgaXQgdG8KK3JlY29nbml6ZSBhbmQgZGlzYW1iaWd1YXRlIHByb2Nlc3NpbmcuIFVuaWNpdHkgb2YgdGhlIG5hbWVzcGFjZSBuYW1lIGNhbiBiZQorZm9yIHRoZSBtb3N0IHBhcnQgZ3VhcmFudGVlZCBieSB0aGUgdXNlIG9mIHRoZSBETlMgcmVnaXN0cnkuIE5hbWVzcGFjZSBjYW4KK2Fsc28gYmUgdXNlZCB0byBjYXJyeSB2ZXJzaW9uaW5nIGluZm9ybWF0aW9uIGxpa2U6PC9wPgorCis8cD48Y29kZT4iaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdC9wcm9qZWN0bmFtZS8xLjAvIjwvY29kZT48L3A+CisKKzxwPkFuIGVhc3kgd2F5IHRvIHVzZSB0aGVtIGlzIHRvIG1ha2UgdGhlbSB0aGUgZGVmYXVsdCBuYW1lc3BhY2Ugb24gdGhlCityb290IGVsZW1lbnQgb2YgdGhlIFhNTCBpbnN0YW5jZSBsaWtlOjwvcD4KKzxwcmU+Jmx0O3N0cnVjdHVyZSB4bWxucz0iaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdC9wcm9qZWN0bmFtZS8xLjAvIiZndDsKKyAgJmx0O2RhdGEmZ3Q7CisgIC4uLgorICAmbHQ7L2RhdGEmZ3Q7CismbHQ7L3N0cnVjdHVyZSZndDs8L3ByZT4KKworPHA+SW4gdGhhdCBkb2N1bWVudCwgc3RydWN0dXJlIGFuZCBhbGwgZGVzY2VuZGFudCBlbGVtZW50cyBsaWtlIGRhdGEgYXJlIGluCit0aGUgZ2l2ZW4gbmFtZXNwYWNlLjwvcD4KKworPGgyPjxhIG5hbWU9IkNhbm9uaWNhbCI+Q2Fub25pY2FsIFVSTDwvYT48L2gyPgorCis8cD5BcyBzZWVuIGluIHRoZSBwcmV2aW91cyBuYW1lc3BhY2Ugc2VjdGlvbiwgd2hpbGUgWE1MIHByb2Nlc3NpbmcgaXMgbm90Cit0aWVkIHRvIHRoZSBXZWIgdGhlcmUgaXMgYSBuYXR1cmFsIHN5bmVyZ3kgYmV0d2VlbiBib3RoLiBYTUwgd2FzIGRlc2lnbmVkIHRvCitiZSBhdmFpbGFibGUgb24gdGhlIFdlYiwgYW5kIGtlZXBpbmcgdGhlIGluZnJhc3RydWN0dXJlIHRoYXQgd2F5IGhlbHBzCitkZXBsb3lpbmcgdGhlIFhNTCByZXNvdXJjZXMuIFRoZSBjb3JlIG9mIHRoaXMgaXNzdWUgaXMgdGhlIG5vdGlvbiBvZgorIkNhbm9uaWNhbCBVUkwiIG9mIGFuIFhNTCByZXNvdXJjZS4gVGhlIHJlc291cmNlIGNhbiBiZSBhbiBYTUwgZG9jdW1lbnQsIGEKK0RURCwgYSBzdHlsZXNoZWV0LCBhIHNjaGVtYSwgb3IgZXZlbiBub24tWE1MIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGFuIFhNTAorcmVzb3VyY2UsIHRoZSBjYW5vbmljYWwgVVJMIGlzIHRoZSBVUkwgd2hlcmUgdGhlICJtYXN0ZXIiIGNvcHkgb2YgdGhhdAorcmVzb3VyY2UgaXMgZXhwZWN0ZWQgdG8gYmUgcHJlc2VudCBvbiB0aGUgV2ViLiBVc3VhbGx5IHdoZW4gcHJvY2Vzc2luZyBYTUwgYQorY29weSBvZiB0aGUgcmVzb3VyY2Ugd2lsbCBiZSBwcmVzZW50IG9uIHRoZSBsb2NhbCBkaXNrLCBtYXliZSBpbgorL3Vzci9zaGFyZS94bWwgb3IgL3Vzci9zaGFyZS9zZ21sIG1heWJlIGluIC9vcHQgb3IgZXZlbiBvbiBDOlxwcm9qZWN0bmFtZVwKKyhob3Jyb3IgISkuIFRoZSBrZXkgcG9pbnQgaXMgdGhhdCB0aGUgd2F5IHRvIG5hbWUgdGhhdCByZXNvdXJjZSBzaG91bGQgYmUKK2luZGVwZW5kZW50IG9mIHRoZSBhY3R1YWwgcGxhY2Ugd2hlcmUgaXQgcmVzaWRlcyBvbiBkaXNrIGlmIGl0IGlzIGF2YWlsYWJsZSwKK2FuZCB0aGUgZmFjdCB0aGF0IHRoZSBwcm9jZXNzaW5nIHdpbGwgc3RpbGwgd29yayBpZiB0aGVyZSBpcyBubyBsb2NhbCBjb3B5CisoYW5kIHRoYXQgdGhlIG1hY2hpbmUgd2hlcmUgdGhlIHByb2Nlc3NpbmcgaXMgY29ubmVjdGVkIHRvIHRoZSBJbnRlcm5ldCkuPC9wPgorCis8cD5XaGF0IHRoaXMgcmVhbGx5IG1lYW5zIGlzIHRoYXQgb25lIHNob3VsZCBuZXZlciB1c2UgdGhlIGxvY2FsIG5hbWUgb2YgYQorcmVzb3VyY2UgdG8gcmVmZXJlbmNlIGl0IGJ1dCBhbHdheXMgdXNlIHRoZSBjYW5vbmljYWwgVVJMLiBGb3IgZXhhbXBsZSBpbiBhCitEb2NCb29rIGluc3RhbmNlIHRoZSBmb2xsb3dpbmcgc2hvdWxkIG5vdCBiZSB1c2VkOjwvcD4KKzxwcmU+Jmx0OyFET0NUWVBFIGFydGljbGUgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjIvL0VOIjxicj4KKworCisgICAgICAgICAgICAgICAgICAgICAgICAgIi91c3Ivc2hhcmUveG1sL2RvY2Jvb2svNC4yL2RvY2Jvb2t4LmR0ZCImZ3Q7PC9wcmU+CisKKzxwPkJ1dCBhbHdheXMgcmVmZXJlbmNlIHRoZSBjYW5vbmljYWwgVVJMIGZvciB0aGUgRFREOjwvcD4KKzxwcmU+Jmx0OyFET0NUWVBFIGFydGljbGUgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjIvL0VOIjxicj4KKworCisgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4yL2RvY2Jvb2t4LmR0ZCImZ3Q7ICAgPC9wcmU+CisKKzxwPlNpbWlsYXJseSwgdGhlIGRvY3VtZW50IGluc3RhbmNlIG1heSByZWZlcmVuY2UgdGhlIDxhCitocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94c2x0Ij5YU0xUPC9hPiBzdHlsZXNoZWV0cyBuZWVkZWQgdG8gcHJvY2VzcyBpdCB0bworZ2VuZXJhdGUgSFRNTCwgYW5kIHRoZSBjYW5vbmljYWwgVVJMIHNob3VsZCBiZSB1c2VkOjwvcD4KKzxwcmU+Jmx0Oz94bWwtc3R5bGVzaGVldAorICBocmVmPSJodHRwOi8vZG9jYm9vay5zb3VyY2Vmb3JnZS5uZXQvcmVsZWFzZS94c2wvY3VycmVudC9odG1sL2RvY2Jvb2sueHNsIgorICB0eXBlPSJ0ZXh0L3hzbCI/Jmd0OzwvcHJlPgorCis8cD5EZWZpbmluZyB0aGUgY2Fub25pY2FsIFVSTCBmb3IgdGhlIHJlc291cmNlcyBuZWVkZWQgc2hvdWxkIG9iZXkgYSBmZXcKK3NpbXBsZSBydWxlcyBzaW1pbGFyIHRvIHRob3NlIHVzZWQgdG8gZGVzaWduIG5hbWVzcGFjZSBuYW1lczo8L3A+Cis8dWw+CisgIDxsaT51c2UgYSBETlMgbmFtZSB5b3Uga25vdyBpcyBhc3NvY2lhdGVkIHRvIHRoZSBwcm9qZWN0IGFuZCB3aWxsIGJlCisgICAgYXZhaWxhYmxlIG9uIHRoZSBsb25nIHRlcm08L2xpPgorICA8bGk+d2l0aGluIHRoYXQgc2VydmVyIHNwYWNlLCByZXNlcnZlIHRoZSByaWdodCB0byB0aGUgc3VidHJlZSB3aGVyZSB5b3UKKyAgICBpbnRlbmQgdG8ga2VlcCB0aG9zZSBkYXRhPC9saT4KKyAgPGxpPnZlcnNpb24gdGhlIFVSTCBzbyB0aGF0IG11bHRpcGxlIGNvbmN1cnJlbnQgdmVyc2lvbnMgb2YgdGhlIHJlc291cmNlcworICAgIGNhbiBiZSBob3N0ZWQgc2ltdWx0YW5lb3VzbHk8L2xpPgorPC91bD4KKworPGgyPjxhIG5hbWU9IkNhdGFsb2ciPkNhdGFsb2cgc2V0dXA8L2E+PC9oMj4KKworPGgzPkhvdyBjYXRhbG9ncyB3b3JrOjwvaDM+CisKKzxwPlRoZSBjYXRhbG9ncyBhcmUgdGhlIHRlY2huaWNhbCBtZWNoYW5pc20gd2hpY2ggYWxsb3cgdGhlIFhNTCBwcm9jZXNzaW5nCit0b29scyB0byB1c2UgYSBsb2NhbCBjb3B5IG9mIHRoZSByZXNvdXJjZXMgaWYgaXQgaXMgYXZhaWxhYmxlIGV2ZW4gaWYgdGhlCitpbnN0YW5jZSBkb2N1bWVudCByZWZlcmVuY2VzIHRoZSBjYW5vbmljYWwgVVJMLiA8YQoraHJlZj0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS8iPlhNTCBDYXRhbG9nczwvYT4gYXJlCithbmNob3JlZCBpbiB0aGUgcm9vdCBjYXRhbG9nICh1c3VhbGx5IDxjb2RlPi9ldGMveG1sL2NhdGFsb2c8L2NvZGU+IG9yCitkZWZpbmVkIGJ5IHRoZSB1c2VyKS4gVGhleSBhcmUgYSB0cmVlIG9mIFhNTCBkb2N1bWVudHMgZGVmaW5pbmcgdGhlIG1hcHBpbmdzCitiZXR3ZWVuIHRoZSBjYW5vbmljYWwgbmFtaW5nIHNwYWNlIGFuZCB0aGUgbG9jYWwgaW5zdGFsbGVkIG9uZXMsIHRoaXMgY2FuIGJlCitzZWVuIGFzIGEgc3RhdGljIGNhY2hlIHN0cnVjdHVyZS48L3A+CisKKzxwPldoZW4gdGhlIFhNTCBwcm9jZXNzb3IgaXMgYXNrZWQgdG8gcHJvY2VzcyBhIHJlc291cmNlIGl0IHdpbGwKK2F1dG9tYXRpY2FsbHkgdGVzdCBmb3IgYSBsb2NhbGx5IGF2YWlsYWJsZSB2ZXJzaW9uIGluIHRoZSBjYXRhbG9nLCBzdGFydGluZworZnJvbSB0aGUgcm9vdCBjYXRhbG9nLCBhbmQgcG9zc2libHkgZmV0Y2hpbmcgc3ViLWNhdGFsb2cgcmVzb3VyY2VzIHVudGlsIGl0CitmaW5kcyB0aGF0IHRoZSBjYXRhbG9nIGhhcyB0aGF0IHJlc291cmNlIG9yIG5vdC4gSWYgbm90IHRoZSBkZWZhdWx0Citwcm9jZXNzaW5nIG9mIGZldGNoaW5nIHRoZSByZXNvdXJjZSBmcm9tIHRoZSBXZWIgaXMgZG9uZSwgYWxsb3dpbmcgaW4gbW9zdAorY2FzZSB0byByZWNvdmVyIGZyb20gYSBjYXRhbG9nIG1pc3MuIFRoZSBrZXkgcG9pbnQgaXMgdGhhdCB0aGUgZG9jdW1lbnQKK2luc3RhbmNlcyBhcmUgdG90YWxseSBpbmRlcGVuZGVudCBvZiB0aGUgYXZhaWxhYmlsaXR5IG9mIGEgY2F0YWxvZyBvciBmcm9tCit0aGUgYWN0dWFsIHBsYWNlIHdoZXJlIHRoZSBsb2NhbCByZXNvdXJjZSB0aGV5IHJlZmVyZW5jZSBtYXkgYmUgaW5zdGFsbGVkLgorVGhpcyBncmVhdGx5IGltcHJvdmVzIHRoZSBtYW5hZ2VtZW50IG9mIHRoZSBkb2N1bWVudHMgaW4gdGhlIGxvbmcgcnVuLCBtYWtpbmcKK3RoZW0gaW5kZXBlbmRlbnQgb2YgdGhlIHBsYXRmb3JtIG9yIHRvb2xjaGFpbiB1c2VkIHRvIHByb2Nlc3MgdGhlbS4gVGhlCitmaWd1cmUgYmVsb3cgdHJpZXMgdG8gZXhwcmVzcyB0aGF0ICBtZWNoYW5pc206PGltZyBzcmM9ImNhdGFsb2cuZ2lmIgorYWx0PSJQaWN0dXJlIGRlc2NyaWJpbmcgdGhlIGNhdGFsb2cgIj48L3A+CisKKzxoMz5Vc3VhbCBjYXRhbG9nIHNldHVwOjwvaDM+CisKKzxwPlVzdWFsbHkgY2F0YWxvZ3MgZm9yIGEgcHJvamVjdCBhcmUgc2V0dXAgYXMgYSAyIGxldmVsIGhpZXJhcmNoaWNhbCBjYWNoZSwKK3RoZSByb290IGNhdGFsb2cgY29udGFpbmluZyBvbmx5ICJkZWxlZ2F0ZXMiIGluZGljYXRpbmcgYSBzZXBhcmF0ZSBzdWJjYXRhbG9nCitkZWRpY2F0ZWQgdG8gdGhlIHByb2plY3QuIFRoZSBnb2FsIGlzIHRvIGtlZXAgdGhlIHJvb3QgY2F0YWxvZyBjbGVhbiBhbmQKK3NpbXBsaWZ5IHRoZSBtYWludGVuYW5jZSBvZiB0aGUgY2F0YWxvZyBieSB1c2luZyBzZXBhcmF0ZSBjYXRhbG9ncyBwZXIKK3Byb2plY3QuIEZvciBleGFtcGxlIHdoZW4gY3JlYXRpbmcgYSBjYXRhbG9nIGZvciB0aGUgPGEKK2hyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMSI+WEhUTUwxPC9hPiBEVERzLCBvbmx5IDMgaXRlbXMgYXJlIGFkZGVkIHRvCit0aGUgcm9vdCBjYXRhbG9nOjwvcD4KKzxwcmU+ICAmbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIgorICAgICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUvc2dtbC94aHRtbDEveG1sY2F0YWxvZyIvJmd0OworICAmbHQ7ZGVsZWdhdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURCIKKyAgICAgICAgICAgICAgICAgIGNhdGFsb2c9ImZpbGU6Ly8vdXNyL3NoYXJlL3NnbWwveGh0bWwxL3htbGNhdGFsb2ciLyZndDsKKyAgJmx0O2RlbGVnYXRlVVJJIHVyaVN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREIgorICAgICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUvc2dtbC94aHRtbDEveG1sY2F0YWxvZyIvJmd0OzwvcHJlPgorCis8cD5UaGV5IGFyZSBhbGwgImRlbGVnYXRlcyIgbWVhbmluZyB0aGF0IGlmIHRoZSBjYXRhbG9nIHN5c3RlbSBpcyBhc2tlZCB0bworcmVzb2x2ZSBhIHJlZmVyZW5jZSBjb3JyZXNwb25kaW5nIHRvIHRoZW0sIGl0IGhhcyB0byBsb29rdXAgYSBzdWIgY2F0YWxvZy4KK0hlcmUgdGhlIHN1YmNhdGFsb2cgd2FzIGluc3RhbGxlZCBhcworPGNvZGU+L3Vzci9zaGFyZS9zZ21sL3hodG1sMS94bWxjYXRhbG9nPC9jb2RlPiBpbiB0aGUgbG9jYWwgdHJlZS4gVGhhdAorZGVjaXNpb24gaXMgbGVmdCB0byB0aGUgc3lzYWRtaW4gb3IgdGhlIHBhY2thZ2VyIGZvciB0aGF0IHN5c3RlbSBhbmQgbWF5CitvYmV5IGRpZmZlcmVudCBydWxlcywgYnV0IHRoZSBhY3R1YWwgcGxhY2Ugb24gdGhlIGZpbGVzeXN0ZW0gKG9yIG9uIGEKK3Jlc291cmNlIGNhY2hlIG9uIHRoZSBsb2NhbCBuZXR3b3JrKSB3aWxsIG5vdCBpbmZsdWVuY2UgdGhlIHByb2Nlc3NpbmcgYXMKK2xvbmcgYXMgaXQgaXMgYXZhaWxhYmxlLiBUaGUgZmlyc3QgcnVsZSBpbmRpY2F0ZSB0aGF0IGlmIHRoZSByZWZlcmVuY2UgdXNlcyBhCitQVUJMSUMgaWRlbnRpZmllciBiZWdpbm5pbmcgd2l0aCB0aGU8L3A+CisKKzxwPjxjb2RlPiItLy9XM0MvL0RURCBYSFRNTCAxLjAiPC9jb2RlPjwvcD4KKworPHA+c3Vic3RyaW5nLCB0aGVuIHRoZSBjYXRhbG9nIGxvb2t1cCBzaG91bGQgYmUgbGltaXRlZCB0byB0aGUgc3BlY2lmaWMgZ2l2ZW4KK2xvb2t1cCBjYXRhbG9nLiBTaW1pbGFybHkgdGhlIHNlY29uZCBhbmQgdGhpcmQgZW50cmllcyBpbmRpY2F0ZSB0aG9zZQorZGVsZWdhdGlvbiBydWxlcyBmb3IgU1lTVEVNLCBET0NUWVBFIG9yIG5vcm1hbCBVUkkgcmVmZXJlbmNlcyB3aGVuIHRoZSBVUkwKK3N0YXJ0cyB3aXRoIHRoZSA8Y29kZT4iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURCI8L2NvZGU+IHN1YnN0cmluZword2hpY2ggaW5kaWNhdGVzIHRoZSBsb2NhdGlvbiBvbiB0aGUgVzNDIHNlcnZlciB3aGVyZSB0aGUgWEhUTUwxIHJlc291cmNlcyBhcmUKK3N0b3JlZC4gVGhvc2UgYXJlIHRoZSBiZWdpbm5pbmcgb2YgYWxsIENhbm9uaWNhbCBVUkxzIGZvciBYSFRNTDEgcmVzb3VyY2VzLgorVGhvc2UgdGhyZWUgcnVsZXMgYXJlIHN1ZmZpY2llbnQgaW4gcHJhY3RpY2UgdG8gY2FwdHVyZSBhbGwgcmVmZXJlbmNlcyB0byBYSFRNTDEKK3Jlc291cmNlcyBhbmQgZGlyZWN0IHRoZSBwcm9jZXNzaW5nIHRvb2xzIHRvIHRoZSByaWdodCBzdWJjYXRhbG9nLjwvcD4KKworPGgzPkEgc3ViY2F0YWxvZyBleGFtcGxlOjwvaDM+CisKKzxwPkhlcmUgaXMgdGhlIGNvbXBsZXRlIHN1YmNhdGFsb2cgdXNlZCBmb3IgWEhUTUwxOjwvcD4KKzxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iCisgICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OworJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciJmd0OworICAmbHQ7cHVibGljIHB1YmxpY0lkPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAgICAgICB1cmk9InhodG1sMS0yMDAyMDgwMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiLyZndDsKKyAgJmx0O3B1YmxpYyBwdWJsaWNJZD0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICAgICAgdXJpPSJ4aHRtbDEtMjAwMjA4MDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIi8mZ3Q7CisgICZsdDtwdWJsaWMgcHVibGljSWQ9Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBGcmFtZXNldC8vRU4iCisgICAgICAgICAgdXJpPSJ4aHRtbDEtMjAwMjA4MDEvRFREL3hodG1sMS1mcmFtZXNldC5kdGQiLyZndDsKKyAgJmx0O3Jld3JpdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURCIKKyAgICAgICAgICByZXdyaXRlUHJlZml4PSJ4aHRtbDEtMjAwMjA4MDEvRFREIi8mZ3Q7CisgICZsdDtyZXdyaXRlVVJJIHVyaVN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREIgorICAgICAgICAgIHJld3JpdGVQcmVmaXg9InhodG1sMS0yMDAyMDgwMS9EVEQiLyZndDsKKyZsdDsvY2F0YWxvZyZndDs8L3ByZT4KKworPHA+VGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB0byBub3RpY2U6PC9wPgorPHVsPgorICA8bGk+dGhpcyBpcyBhbiBYTUwgcmVzb3VyY2UsIGl0IHBvaW50cyB0byB0aGUgRFREIHVzaW5nIENhbm9uaWNhbCBVUkxzLCB0aGUKKyAgICByb290IGVsZW1lbnQgZGVmaW5lcyBhIG5hbWVzcGFjZSAoYnV0IGJhc2VkIG9uIGFuIFVSTiBub3QgYW4gSFRUUAorICBVUkwpLjwvbGk+CisgIDxsaT5pdCBjb250YWlucyA1IHJ1bGVzLCB0aGUgMyBmaXJzdCBvbmVzIGFyZSBkaXJlY3QgbWFwcGluZyBmb3IgdGhlIDMKKyAgICBQVUJMSUMgaWRlbnRpZmllcnMgZGVmaW5lZCBieSB0aGUgWEhUTUwxIHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0aW5nCisgICAgdGhlbSB3aXRoIHRoZSBsb2NhbCByZXNvdXJjZSBjb250YWluaW5nIHRoZSBEVEQsIHRoZSAyIGxhc3Qgb25lcyBhcmUKKyAgICByZXdyaXRlIHJ1bGVzIGFsbG93aW5nIHRvIGJ1aWxkIHRoZSBsb2NhbCBmaWxlbmFtZSBmb3IgYW55IFVSTCBiYXNlZCBvbgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREIiwgdGhlIGxvY2FsIGNhY2hlIHNpbXBsaWZpZXMgdGhlIHJ1bGVzIGJ5CisgICAga2VlcGluZyB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgdGhlIG9uLWxpbmUgc2VydmVyIGF0IHRoZSBDYW5vbmljYWwgVVJMPC9saT4KKyAgPGxpPnRoZSBsb2NhbCByZXNvdXJjZXMgYXJlIGRlc2lnbmF0ZWQgdXNpbmcgVVJJIHJlZmVyZW5jZXMgKHRoZSB1cmkgb3IKKyAgICByZXdyaXRlUHJlZml4IGF0dHJpYnV0ZXMpLCB0aGUgYmFzZSBiZWluZyB0aGUgY29udGFpbmluZyBzdWItY2F0YWxvZyBVUkwsCisgICAgd2hpY2ggbWVhbnMgdGhhdCBpbiBwcmFjdGljZSB0aGUgY29weSBvZiB0aGUgWEhUTUwxIHN0cmljdCBEVEQgaXMgc3RvcmVkCisgICAgbG9jYWxseSBpbgorICAgIDxjb2RlPi91c3Ivc2hhcmUvc2dtbC94aHRtbDEveG1sY2F0YWxvZy94aHRtbDEtMjAwMjA4MDEvRFREL3hodG1sMS1zdHJpY3QuZHRkPC9jb2RlPjwvbGk+Cis8L3VsPgorCis8cD5UaG9zZSA1IHJ1bGVzIGFyZSBzdWZmaWNpZW50IHRvIGNvdmVyIGFsbCByZWZlcmVuY2VzIHRvIHRoZSByZXNvdXJjZXMgaGVsZAorYXQgdGhlIENhbm9uaWNhbCBVUkwgZm9yIHRoZSBYSFRNTDEgRFREcy48L3A+CisKKzxoMj48YSBuYW1lPSJQYWNrYWdlIj5QYWNrYWdlIGludGVncmF0aW9uPC9hPjwvaDI+CisKKzxwPkNyZWF0aW5nIGFuZCByZW1vdmluZyBjYXRhbG9ncyBzaG91bGQgYmUgaGFuZGxlZCBhcyBwYXJ0IG9mIHRoZSBwcm9jZXNzIG9mCisodW4paW5zdGFsbGluZyB0aGUgbG9jYWwgY29weSBvZiB0aGUgcmVzb3VyY2VzLiBUaGUgY2F0YWxvZyBmaWxlcyBiZWluZyBYTUwKK3Jlc291cmNlcyBzaG91bGQgYmUgcHJvY2Vzc2VkIHdpdGggWE1MIGJhc2VkIHRvb2xzIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggdGhlCitnZW5lcmF0ZWQgZmlsZXMsIHRoZSB4bWxjYXRhbG9nIGNvbW1hbmQgY29taW5nIHdpdGggbGlieG1sMiBhbGxvd3MgeW91IHRvIGNyZWF0ZQorY2F0YWxvZ3MsIGFuZCBhZGQgb3IgcmVtb3ZlIHJ1bGVzIGF0IHRoYXQgdGltZS4gSGVyZSBpcyBhIGNvbXBsZXRlIGV4YW1wbGUKK2NvbWluZyBmcm9tIHRoZSBSUE0gZm9yIHRoZSBYSFRNTDEgRFREcyBwb3N0IGluc3RhbGwgc2NyaXB0LiBXaGlsZSB0aGlzIGV4YW1wbGUKK2lzIHBsYXRmb3JtIGFuZCBwYWNrYWdpbmcgc3BlY2lmaWMsIHRoaXMgY2FuIGJlIHVzZWZ1bCBhcyBhIGFuIGV4YW1wbGUgaW4KK290aGVyIGNvbnRleHRzOjwvcD4KKzxwcmU+JXBvc3QKK0NBVEFMT0c9L3Vzci9zaGFyZS9zZ21sL3hodG1sMS94bWxjYXRhbG9nCisjCisjIFJlZ2lzdGVyIGl0IGluIHRoZSBzdXBlciBjYXRhbG9nIHdpdGggdGhlIGFwcHJvcHJpYXRlIGRlbGVnYXRlcworIworUk9PVENBVEFMT0c9L2V0Yy94bWwvY2F0YWxvZworCitpZiBbICEgLXIgJFJPT1RDQVRBTE9HIF0KK3RoZW4KKyAgICAvdXNyL2Jpbi94bWxjYXRhbG9nIC0tbm9vdXQgLS1jcmVhdGUgJFJPT1RDQVRBTE9HCitmaQorCitpZiBbIC13ICRST09UQ0FUQUxPRyBdCit0aGVuCisgICAgICAgIC91c3IvYmluL3htbGNhdGFsb2cgLS1ub291dCAtLWFkZCAiZGVsZWdhdGVQdWJsaWMiIFwKKyAgICAgICAgICAgICAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIiBcCisgICAgICAgICAgICAgICAgImZpbGU6Ly8kQ0FUQUxPRyIgJFJPT1RDQVRBTE9HCisgICAgICAgIC91c3IvYmluL3htbGNhdGFsb2cgLS1ub291dCAtLWFkZCAiZGVsZWdhdGVTeXN0ZW0iIFwKKyAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURCIgXAorICAgICAgICAgICAgICAgICJmaWxlOi8vJENBVEFMT0ciICRST09UQ0FUQUxPRworICAgICAgICAvdXNyL2Jpbi94bWxjYXRhbG9nIC0tbm9vdXQgLS1hZGQgImRlbGVnYXRlVVJJIiBcCisgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQiIFwKKyAgICAgICAgICAgICAgICAiZmlsZTovLyRDQVRBTE9HIiAkUk9PVENBVEFMT0cKK2ZpPC9wcmU+CisKKzxwPlRoZSBYSFRNTDEgc3ViY2F0YWxvZyBpcyBub3QgY3JlYXRlZCBvbi10aGUtZmx5IGluIHRoYXQgY2FzZSwgaXQgaXMKK2luc3RhbGxlZCBhcyBwYXJ0IG9mIHRoZSBmaWxlcyBvZiB0aGUgcGFja2FnZXMuIFNvIHRoZSBvbmx5IHdvcmsgbmVlZGVkIGlzIHRvCittYWtlIHN1cmUgdGhlIHJvb3QgY2F0YWxvZyBleGlzdHMgYW5kIHJlZ2lzdGVyIHRoZSBkZWxlZ2F0ZSBydWxlcy48L3A+CisKKzxwPlNpbWlsYXJseSwgdGhlIHNjcmlwdCBmb3IgdGhlIHBvc3QtdW5pbnN0YWxsIGp1c3QgcmVtb3ZlIHRoZSBydWxlcyBmcm9tIHRoZQorY2F0YWxvZzo8L3A+Cis8cHJlPiVwb3N0dW4KKyMKKyMgT24gcmVtb3ZhbCwgdW5yZWdpc3RlciB0aGUgeG1sY2F0YWxvZyBmcm9tIHRoZSBzdXBlcmNhdGFsb2cKKyMKK2lmIFsgIiQxIiA9IDAgXTsgdGhlbgorICAgIENBVEFMT0c9L3Vzci9zaGFyZS9zZ21sL3hodG1sMS94bWxjYXRhbG9nCisgICAgUk9PVENBVEFMT0c9L2V0Yy94bWwvY2F0YWxvZworCisgICAgaWYgWyAtdyAkUk9PVENBVEFMT0cgXQorICAgIHRoZW4KKyAgICAgICAgICAgIC91c3IvYmluL3htbGNhdGFsb2cgLS1ub291dCAtLWRlbCBcCisgICAgICAgICAgICAgICAgICAgICItLy9XM0MvL0RURCBYSFRNTCAxLjAiICRST09UQ0FUQUxPRworICAgICAgICAgICAgL3Vzci9iaW4veG1sY2F0YWxvZyAtLW5vb3V0IC0tZGVsIFwKKyAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQiICRST09UQ0FUQUxPRworICAgICAgICAgICAgL3Vzci9iaW4veG1sY2F0YWxvZyAtLW5vb3V0IC0tZGVsIFwKKyAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQiICRST09UQ0FUQUxPRworICAgIGZpCitmaTwvcHJlPgorCis8cD5Ob3RlIHRoZSB0ZXN0IGFnYWluc3QgJDEsIHRoaXMgaXMgbmVlZGVkIHRvIG5vdCByZW1vdmUgdGhlIGRlbGVnYXRlIHJ1bGVzCitpbiBjYXNlIG9mIHVwZ3JhZGUgb2YgdGhlIHBhY2thZ2UuPC9wPgorCis8cD5Gb2xsb3dpbmcgdGhlIHNldCBvZiBndWlkZWxpbmVzIGFuZCB0aXBzIHByb3ZpZGVkIGluIHRoaXMgZG9jdW1lbnQgc2hvdWxkCitoZWxwIGRlcGxveSB0aGUgWE1MIHJlc291cmNlcyBpbiB0aGUgR05PTUUgZnJhbWV3b3JrIHdpdGhvdXQgbXVjaCBwYWluIGFuZAorZW5zdXJlIGEgc21vb3RoIGV2b2x1dGlvbiBvZiB0aGUgcmVzb3VyY2UgYW5kIGluc3RhbmNlcy48L3A+CisKKzxwPjxhIGhyZWY9Im1haWx0bzp2ZWlsbGFyZEByZWRoYXQuY29tIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgorCis8cD4kSWQkPC9wPgorCis8cD48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9oZWxwLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9oZWxwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRkNjVmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2hlbHAuaHRtbApAQCAtMCwwICsxLDI1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPkhvdyB0byBoZWxwPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5Ib3cgdG8gaGVscDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT48bGk+PGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPjxsaT48YSBocmVmPSJuZXdzLmh0bWwiPlJlbGVhc2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhNTGluZm8uaHRtbCI+WE1MPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+WW91IGNhbiBoZWxwIHRoZSBwcm9qZWN0IGluIHZhcmlvdXMgd2F5cywgdGhlIGJlc3QgdGhpbmcgdG8gZG8gZmlyc3QgaXMgdG8KK3N1YnNjcmliZSB0byB0aGUgbWFpbGluZy1saXN0IGFzIGV4cGxhaW5lZCBiZWZvcmUsIGNoZWNrIHRoZSA8YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+YXJjaGl2ZXMgPC9hPmFuZCB0aGUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkdub21lIGJ1ZworZGF0YWJhc2U8L2E+OjwvcD48b2w+PGxpPlByb3ZpZGUgcGF0Y2hlcyB3aGVuIHlvdSBmaW5kIHByb2JsZW1zLjwvbGk+CisgIDxsaT5Qcm92aWRlIHRoZSBkaWZmcyB3aGVuIHlvdSBwb3J0IGxpYnhtbDIgdG8gYSBuZXcgcGxhdGZvcm0uIFRoZXkgbWF5IG5vdAorICAgIGJlIGludGVncmF0ZWQgaW4gYWxsIGNhc2VzIGJ1dCBoZWxwIHBpbnBvaW50aW5nIHBvcnRhYmlsaXR5IHByb2JsZW1zCisgIGFuZDwvbGk+CisgIDxsaT5Qcm92aWRlIGRvY3VtZW50YXRpb24gZml4ZXMgKGVpdGhlciBhcyBwYXRjaGVzIHRvIHRoZSBjb2RlIGNvbW1lbnRzIG9yCisgICAgYXMgSFRNTCBkaWZmcykuPC9saT4KKyAgPGxpPlByb3ZpZGUgbmV3IGRvY3VtZW50YXRpb25zIHBpZWNlcyAodHJhbnNsYXRpb25zLCBleGFtcGxlcywgZXRjCisgIC4uLikuPC9saT4KKyAgPGxpPkNoZWNrIHRoZSBUT0RPIGZpbGUgYW5kIHRyeSB0byBjbG9zZSBvbmUgb2YgdGhlIGl0ZW1zLjwvbGk+CisgIDxsaT5UYWtlIG9uZSBvZiB0aGUgcG9pbnRzIHJhaXNlZCBpbiB0aGUgYXJjaGl2ZSBvciB0aGUgYnVnIGRhdGFiYXNlIGFuZAorICAgIHByb3ZpZGUgYSBmaXguIDxhIGhyZWY9Im1haWx0bzpkYW5pZWxAdmVpbGxhcmQuY29tIj5HZXQgaW4gdG91Y2ggd2l0aCBtZQorICAgIDwvYT5iZWZvcmUgdG8gYXZvaWQgc3luY2hyb25pemF0aW9uIHByb2JsZW1zIGFuZCBjaGVjayB0aGF0IHRoZSBzdWdnZXN0ZWQKKyAgICBmaXggd2lsbCBmaXQgaW4gbmljZWx5IDotKTwvbGk+Cis8L29sPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9ib29rMS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9ib29rMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZDk4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2Jvb2sxLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+UmVmZXJlbmNlIE1hbnVhbCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5SZWZlcmVuY2UgTWFudWFsIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjx1bD48bGk+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT46IG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+SFRNTHBhcnNlcjwvYT46IGludGVyZmFjZSBmb3IgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+OiBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwiPlNBWDwvYT46IE9sZCBTQVggdmVyc2lvbiAxIGhhbmRsZXIsIGRlcHJlY2F0ZWQ8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYMi5odG1sIj5TQVgyPC9hPjogU0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+YzE0bjwvYT46IFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT46IGludGVyZmFjZXMgdG8gdGhlIENhdGFsb2cgaGFuZGxpbmcgc3lzdGVtPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCI+Y2h2YWxpZDwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwiPmRlYnVnWE1MPC9hPjogVHJlZSBkZWJ1Z2dpbmcgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwiPmRpY3Q8L2E+OiBzdHJpbmcgZGljdGlvbm5hcnk8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCI+ZW5jb2Rpbmc8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9uczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sIj5lbnRpdGllczwvYT46IGludGVyZmFjZSBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwiPmdsb2JhbHM8L2E+OiBpbnRlcmZhY2UgZm9yIGFsbCBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCI+aGFzaDwvYT46IENoYWluZWQgaGFzaCB0YWJsZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sIj5saXN0PC9hPjogbGlzdHMgaW50ZXJmYWNlczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwiPm5hbm9mdHA8L2E+OiBtaW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1uYW5vaHR0cC5odG1sIj5uYW5vaHR0cDwvYT46IG1pbmltYWwgSFRUUCBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+cGFyc2VyPC9hPjogdGhlIGNvcmUgcGFyc2VyIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCI+cGFyc2VySW50ZXJuYWxzPC9hPjogaW50ZXJuYWxzIHJvdXRpbmVzIGV4cG9ydGVkIGJ5IHRoZSBwYXJzZXIuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCI+cGF0dGVybjwvYT46IHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwiPnNjaGVtYXNJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgU2NoZW1hczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+OiBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPjogaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+dHJlZTwvYT46IGludGVyZmFjZXMgZm9yIHRyZWUgbWFuaXB1bGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sIj51cmk8L2E+OiBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+dmFsaWQ8L2E+OiBUaGUgRFREIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCI+eGluY2x1ZGU8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiBYSW5jbHVkZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sIj54bGluazwvYT46IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sIj54bWxJTzwvYT46IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sIj54bWxhdXRvbWF0YTwvYT46IEFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGE8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCI+eG1sZXJyb3I8L2E+OiBlcnJvciBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxleHBvcnRzLmh0bWwiPnhtbGV4cG9ydHM8L2E+OiBtYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxtZW1vcnk8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sIj54bWxtb2R1bGU8L2E+OiBkeW5hbWljIG1vZHVsZSBsb2FkaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+OiB0aGUgWE1MUmVhZGVyIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sIj54bWxyZWdleHA8L2E+OiByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT46IHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwiPnhtbHNjaGVtYXM8L2E+OiBpbmNvbXBsZXRlIFhNTCBTY2hlbWFzIHN0cnVjdHVyZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCI+eG1sc2NoZW1hc3R5cGVzPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwiPnhtbHN0cmluZzwvYT46IHNldCBvZiByb3V0aW5lcyB0byBwcm9jZXNzIHN0cmluZ3M8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPjogVW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWx2ZXJzaW9uLmh0bWwiPnhtbHZlcnNpb248L2E+OiBjb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwiPnhtbHdyaXRlcjwvYT46IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj54cGF0aDwvYT46IFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwiPnhwYXRoSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCI+eHBvaW50ZXI8L2E+OiBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVyczwvbGk+PC91bD48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvaG9tZS5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2hvbWUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MDAzNjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2hvbWUucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvaW5kZXguaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmQ5OGQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPlJlZmVyZW5jZSBNYW51YWwgZm9yIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+UmVmZXJlbmNlIE1hbnVhbCBmb3IgbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48dWw+PGxpPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwiPkRPQ0JwYXJzZXI8L2E+OiBvbGQgRG9jQm9vayBTR01MIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwiPkhUTUxwYXJzZXI8L2E+OiBpbnRlcmZhY2UgZm9yIGFuIEhUTUwgNC4wIG5vbi12ZXJpZnlpbmcgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUx0cmVlLmh0bWwiPkhUTUx0cmVlPC9hPjogc3BlY2lmaWMgQVBJcyB0byBwcm9jZXNzIEhUTUwgdHJlZSwgZXNwZWNpYWxseSBzZXJpYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLVNBWC5odG1sIj5TQVg8L2E+OiBPbGQgU0FYIHZlcnNpb24gMSBoYW5kbGVyLCBkZXByZWNhdGVkPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLVNBWDIuaHRtbCI+U0FYMjwvYT46IFNBWDIgcGFyc2VyIGludGVyZmFjZSB1c2VkIHRvIGJ1aWxkIHRoZSBET00gdHJlZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jMTRuLmh0bWwiPmMxNG48L2E+OiBQcm92aWRlIENhbm9uaWNhbCBYTUwgYW5kIEV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwiPmNhdGFsb2c8L2E+OiBpbnRlcmZhY2VzIHRvIHRoZSBDYXRhbG9nIGhhbmRsaW5nIHN5c3RlbTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwiPmNodmFsaWQ8L2E+OiBVbmljb2RlIGNoYXJhY3RlciByYW5nZSBjaGVja2luZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sIj5kZWJ1Z1hNTDwvYT46IFRyZWUgZGVidWdnaW5nIEFQSXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sIj5kaWN0PC9hPjogc3RyaW5nIGRpY3Rpb25uYXJ5PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwiPmVuY29kaW5nPC9hPjogaW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCI+ZW50aXRpZXM8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBYTUwgZW50aXRpZXMgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIj5nbG9iYWxzPC9hPjogaW50ZXJmYWNlIGZvciBhbGwgZ2xvYmFsIHZhcmlhYmxlcyBvZiB0aGUgbGlicmFyeTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwiPmhhc2g8L2E+OiBDaGFpbmVkIGhhc2ggdGFibGVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCI+bGlzdDwvYT46IGxpc3RzIGludGVyZmFjZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2Z0cC5odG1sIj5uYW5vZnRwPC9hPjogbWluaW1hbCBGVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbmFub2h0dHAuaHRtbCI+bmFub2h0dHA8L2E+OiBtaW5pbWFsIEhUVFAgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPnBhcnNlcjwvYT46IHRoZSBjb3JlIHBhcnNlciBtb2R1bGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwiPnBhcnNlckludGVybmFsczwvYT46IGludGVybmFscyByb3V0aW5lcyBleHBvcnRlZCBieSB0aGUgcGFyc2VyLjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwiPnBhdHRlcm48L2E+OiBwYXR0ZXJuIGV4cHJlc3Npb24gaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sIj5yZWxheG5nPC9hPjogaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbGF4LU5HIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sIj5zY2hlbWFzSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFNjaGVtYXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sIj5zY2hlbWF0cm9uPC9hPjogWE1MIFNjaGVtYXN0cm9uIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCI+dGhyZWFkczwvYT46IGludGVyZmFjZXMgZm9yIHRocmVhZCBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPnRyZWU8L2E+OiBpbnRlcmZhY2VzIGZvciB0cmVlIG1hbmlwdWxhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCI+dXJpPC9hPjogbGlicmFyeSBvZiBnZW5lcmljIFVSSSByZWxhdGVkIHJvdXRpbmVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwiPnZhbGlkPC9hPjogVGhlIERURCB2YWxpZGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhpbmNsdWRlLmh0bWwiPnhpbmNsdWRlPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWEluY2x1ZGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCI+eGxpbms8L2E+OiB1bmZpbmlzaGVkIFhMaW5rIGRldGVjdGlvbiBtb2R1bGU8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCI+eG1sSU88L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCI+eG1sYXV0b21hdGE8L2E+OiBBUEkgdG8gYnVpbGQgcmVnZXhwIGF1dG9tYXRhPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwiPnhtbGVycm9yPC9hPjogZXJyb3IgaGFuZGxpbmc8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXhwb3J0cy5odG1sIj54bWxleHBvcnRzPC9hPjogbWFjcm9zIGZvciBtYXJraW5nIHN5bWJvbHMgYXMgZXhwb3J0YWJsZS9pbXBvcnRhYmxlLjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5PC9hPjogaW50ZXJmYWNlIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCI+eG1sbW9kdWxlPC9hPjogZHluYW1pYyBtb2R1bGUgbG9hZGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+eG1scmVhZGVyPC9hPjogdGhlIFhNTFJlYWRlciBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCI+eG1scmVnZXhwPC9hPjogcmVndWxhciBleHByZXNzaW9ucyBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwiPnhtbHNhdmU8L2E+OiB0aGUgWE1MIGRvY3VtZW50IHNlcmlhbGl6ZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sIj54bWxzY2hlbWFzPC9hPjogaW5jb21wbGV0ZSBYTUwgU2NoZW1hcyBzdHJ1Y3R1cmUgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwiPnhtbHNjaGVtYXN0eXBlczwvYT46IGltcGxlbWVudGF0aW9uIG9mIFhNTCBTY2hlbWEgRGF0YXR5cGVzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sIj54bWxzdHJpbmc8L2E+OiBzZXQgb2Ygcm91dGluZXMgdG8gcHJvY2VzcyBzdHJpbmdzPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHVuaWNvZGUuaHRtbCI+eG1sdW5pY29kZTwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIEFQSXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdmVyc2lvbi5odG1sIj54bWx2ZXJzaW9uPC9hPjogY29tcGlsZS10aW1lIHZlcnNpb24gaW5mb3JtYXRpb25zPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sIj54bWx3cml0ZXI8L2E+OiB0ZXh0IHdyaXRpbmcgQVBJIGZvciBYTUw8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCI+eHBhdGg8L2E+OiBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aEludGVybmFscy5odG1sIj54cGF0aEludGVybmFsczwvYT46IGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwiPnhwb2ludGVyPC9hPjogQVBJIHRvIGhhbmRsZSBYTUwgUG9pbnRlcnM8L2xpPjwvdWw+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xlZnQucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9sZWZ0LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDA1YjNkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9sZWZ0LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1ET0NCcGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk5ZDAyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLURPQ0JwYXJzZXIuaHRtbApAQCAtMCwwICsxLDUxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgRE9DQnBhcnNlciBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIERPQ0JwYXJzZXIgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sIj5IVE1McGFyc2VyPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PGgyIHN0eWxlPSJmb250LXdlaWdodDpib2xkO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlciI+VGhpcyBtb2R1bGUgaXMgZGVwcmVjYXRlZDwvaDI+PHA+aW50ZXJmYWNlIGZvciBhIERvY0Jvb2sgU0dNTCBub24tdmVyaWZ5aW5nIHBhcnNlciBUaGlzIGNvZGUgaXMgREVQUkVDQVRFRCwgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlLiA8L3A+PGRpdiBjbGFzcz0iZGVwcmVjYXRlZCI+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gPGEgbmFtZT0iZG9jYlBhcnNlcklucHV0UHRyIiBpZD0iZG9jYlBhcnNlcklucHV0UHRyIj5kb2NiUGFyc2VySW5wdXRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+IDxhIG5hbWU9ImRvY2JQYXJzZXJDdHh0IiBpZD0iZG9jYlBhcnNlckN0eHQiPmRvY2JQYXJzZXJDdHh0PC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiA8YSBuYW1lPSJkb2NiUGFyc2VyQ3R4dFB0ciIgaWQ9ImRvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPiA8YSBuYW1lPSJkb2NiUGFyc2VySW5wdXQiIGlkPSJkb2NiUGFyc2VySW5wdXQiPmRvY2JQYXJzZXJJbnB1dDwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IDxhIG5hbWU9ImRvY2JEb2NQdHIiIGlkPSJkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPiA8YSBuYW1lPSJkb2NiU0FYSGFuZGxlciIgaWQ9ImRvY2JTQVhIYW5kbGVyIj5kb2NiU0FYSGFuZGxlcjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gPGEgbmFtZT0iZG9jYlNBWEhhbmRsZXJQdHIiIGlkPSJkb2NiU0FYSGFuZGxlclB0ciI+ZG9jYlNBWEhhbmRsZXJQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjZG9jYkZyZWVQYXJzZXJDdHh0Ij5kb2NiRnJlZVBhcnNlckN0eHQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPgk8YSBocmVmPSIjZG9jYlBhcnNlRG9jIj5kb2NiUGFyc2VEb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiNkb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQiPmRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvYT4JKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPgk8YSBocmVmPSIjZG9jYlNBWFBhcnNlRmlsZSI+ZG9jYlNBWFBhcnNlRmlsZTwvYT4JKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSB2b2lkICogdXNlckRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPgk8YSBocmVmPSIjZG9jYlNBWFBhcnNlRG9jIj5kb2NiU0FYUGFyc2VEb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlclB0ciI+ZG9jYlNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIgLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyIC8+CQkJCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2RvY2JFbmNvZGVFbnRpdGllcyI+ZG9jYkVuY29kZUVudGl0aWVzPC9hPgkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbiwgPGJyIC8+CQkJCQkgaW50IHF1b3RlQ2hhcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+CTxhIGhyZWY9IiNkb2NiUGFyc2VGaWxlIj5kb2NiUGFyc2VGaWxlPC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjZG9jYlBhcnNlRG9jdW1lbnQiPmRvY2JQYXJzZURvY3VtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjZG9jYlBhcnNlQ2h1bmsiPmRvY2JQYXJzZUNodW5rPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGNodW5rLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgaW50IHRlcm1pbmF0ZSk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iZG9jYkZyZWVQYXJzZXJDdHh0IiBpZD0iZG9jYkZyZWVQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IGRvY2JGcmVlUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZG9jYkZyZWVQYXJzZXJDdHh0CQkoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5GcmVlIGFsbCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBwYXJzZXIgY29udGV4dC4gSG93ZXZlciB0aGUgcGFyc2VkIGRvY3VtZW50IGluIGN0eHQtJmd0O215RG9jIGlzIG5vdCBmcmVlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBTR01MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlRG9jIiBpZD0iZG9jYlBhcnNlRG9jIj48L2E+RnVuY3Rpb246IGRvY2JQYXJzZURvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4JZG9jYlBhcnNlRG9jCQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBTR01MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIFNHTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCIgaWQ9ImRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiBkb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4JZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0CShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGEgZmlsZSBjb250ZW50LiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iZG9jYlNBWFBhcnNlRmlsZSIgaWQ9ImRvY2JTQVhQYXJzZUZpbGUiPjwvYT5GdW5jdGlvbjogZG9jYlNBWFBhcnNlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4JZG9jYlNBWFBhcnNlRmlsZQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFNHTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImRvY2JTQVhQYXJzZURvYyIgaWQ9ImRvY2JTQVhQYXJzZURvYyI+PC9hPkZ1bmN0aW9uOiBkb2NiU0FYUGFyc2VEb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+CWRvY2JTQVhQYXJzZURvYwkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSB2b2lkICogdXNlckRhdGEpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBTR01MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBTR01MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlckRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0IiBpZD0iZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IGRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPglkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQJKDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyIC8+CQkJCQkJCSBjb25zdCBjaGFyICogY2h1bmssIDxiciAvPgkJCQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgdXNpbmcgdGhlIERvY0Jvb2sgU0dNTCBwYXJzZXIgaW4gcHVzaCBtb2RlIFRvIGFsbG93IGNvbnRlbnQgZW5jb2RpbmcgZGV0ZWN0aW9uLCBAc2l6ZSBzaG91bGQgYmUgJmd0Oz0gNCBUaGUgdmFsdWUgb2YgQGZpbGVuYW1lIGlzIHVzZWQgZm9yIGZldGNoaW5nIGV4dGVybmFsIGVudGl0aWVzIGFuZCBlcnJvci93YXJuaW5nIHJlcG9ydHMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFNBWCBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyX2RhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2h1bms8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBjaGFyczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bnVtYmVyIG9mIGNoYXJzIGluIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wdGlvbmFsIGZpbGUgbmFtZSBvciBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3B0aW9uYWwgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImRvY2JFbmNvZGVFbnRpdGllcyIgaWQ9ImRvY2JFbmNvZGVFbnRpdGllcyI+PC9hPkZ1bmN0aW9uOiBkb2NiRW5jb2RlRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJZG9jYkVuY29kZUVudGl0aWVzCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyIC8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIgLz4JCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICogaW4sIDxiciAvPgkJCQkJIGludCAqIGlubGVuLCA8YnIgLz4JCQkJCSBpbnQgcXVvdGVDaGFyKTxiciAvPgorPC9wcmU+PHA+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBBU0NJSSBwbHVzIFNHTUwgZW50aXRpZXMgYmxvY2sgb2YgY2hhcnMgb3V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dGxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAb3V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnF1b3RlQ2hhcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHF1b3RlIGNoYXJhY3RlciB0byBlc2NhcGUgKCcgb3IgIikgb3IgemVyby48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VzcywgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzLCBvciAtMSBvdGhlcndpc2UgVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgYXMgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlRmlsZSIgaWQ9ImRvY2JQYXJzZUZpbGUiPjwvYT5GdW5jdGlvbjogZG9jYlBhcnNlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4JZG9jYlBhcnNlRmlsZQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYSBEb2Nib29rIFNHTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJkb2NiUGFyc2VEb2N1bWVudCIgaWQ9ImRvY2JQYXJzZURvY3VtZW50Ij48L2E+RnVuY3Rpb246IGRvY2JQYXJzZURvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWRvY2JQYXJzZURvY3VtZW50CQkoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBTR01MIGRvY3VtZW50IChhbmQgYnVpbGQgYSB0cmVlIGlmIHVzaW5nIHRoZSBzdGFuZGFyZCBTQVggaW50ZXJmYWNlKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBTR01MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wLCAtMSBpbiBjYXNlIG9mIGVycm9yLiB0aGUgcGFyc2VyIGNvbnRleHQgaXMgYXVnbWVudGVkIGFzIGEgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImRvY2JQYXJzZUNodW5rIiBpZD0iZG9jYlBhcnNlQ2h1bmsiPjwvYT5GdW5jdGlvbjogZG9jYlBhcnNlQ2h1bms8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJZG9jYlBhcnNlQ2h1bmsJCQkoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyIC8+CQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJIGludCB0ZXJtaW5hdGUpPGJyIC8+Cis8L3ByZT48cD5QYXJzZSBhIENodW5rIG9mIG1lbW9yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2h1bms8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIGluIGJ5dGUgb2YgdGhlIGNodW5rPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50ZXJtaW5hdGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxhc3QgY2h1bmsgaW5kaWNhdG9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD56ZXJvIGlmIG5vIGVycm9yLCB0aGUgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3JzIj54bWxQYXJzZXJFcnJvcnM8L2E+IG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtSFRNTHBhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5Yzk1OWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1IVE1McGFyc2VyLmh0bWwKQEAgLTAsMCArMSwxODIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBIVE1McGFyc2VyIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgSFRNTHBhcnNlciBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+dGhpcyBtb2R1bGUgaW1wbGVtZW50cyBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlciB3aXRoIEFQSSBjb21wYXRpYmxlIHdpdGggdGhlIFhNTCBwYXJzZXIgb25lcy4gSXQgc2hvdWxkIGJlIGFibGUgdG8gcGFyc2UgInJlYWwgd29ybGQiIEhUTUwsIGV2ZW4gaWYgc2V2ZXJlbHkgYnJva2VuIGZyb20gYSBzcGVjaWZpY2F0aW9uIHBvaW50IG9mIHZpZXcuIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNodG1sRGVmYXVsdFN1YmVsZW1lbnQiPmh0bWxEZWZhdWx0U3ViZWxlbWVudDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNodG1sUmVxdWlyZWRBdHRycyI+aHRtbFJlcXVpcmVkQXR0cnM8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gPGEgbmFtZT0iaHRtbERvY1B0ciIgaWQ9Imh0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT48YnIgLz5zdHJ1Y3QgX2h0bWxFbGVtRGVzYworPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKiA8YSBuYW1lPSJodG1sRWxlbURlc2NQdHIiIGlkPSJodG1sRWxlbURlc2NQdHIiPmh0bWxFbGVtRGVzY1B0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT48YnIgLz5zdHJ1Y3QgX2h0bWxFbnRpdHlEZXNjCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT4gKiA8YSBuYW1lPSJodG1sRW50aXR5RGVzY1B0ciIgaWQ9Imh0bWxFbnRpdHlEZXNjUHRyIj5odG1sRW50aXR5RGVzY1B0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gPGEgbmFtZT0iaHRtbE5vZGVQdHIiIGlkPSJodG1sTm9kZVB0ciI+aHRtbE5vZGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+IDxhIG5hbWU9Imh0bWxQYXJzZXJDdHh0IiBpZD0iaHRtbFBhcnNlckN0eHQiPmh0bWxQYXJzZXJDdHh0PC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiA8YSBuYW1lPSJodG1sUGFyc2VyQ3R4dFB0ciIgaWQ9Imh0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXQiPnhtbFBhcnNlcklucHV0PC9hPiA8YSBuYW1lPSJodG1sUGFyc2VySW5wdXQiIGlkPSJodG1sUGFyc2VySW5wdXQiPmh0bWxQYXJzZXJJbnB1dDwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiA8YSBuYW1lPSJodG1sUGFyc2VySW5wdXRQdHIiIGlkPSJodG1sUGFyc2VySW5wdXRQdHIiPmh0bWxQYXJzZXJJbnB1dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mbyI+eG1sUGFyc2VyTm9kZUluZm88L2E+IDxhIG5hbWU9Imh0bWxQYXJzZXJOb2RlSW5mbyIgaWQ9Imh0bWxQYXJzZXJOb2RlSW5mbyI+aHRtbFBhcnNlck5vZGVJbmZvPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI2h0bWxQYXJzZXJPcHRpb24iPmh0bWxQYXJzZXJPcHRpb248L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+IDxhIG5hbWU9Imh0bWxTQVhIYW5kbGVyIiBpZD0iaHRtbFNBWEhhbmRsZXIiPmh0bWxTQVhIYW5kbGVyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiA8YSBuYW1lPSJodG1sU0FYSGFuZGxlclB0ciIgaWQ9Imh0bWxTQVhIYW5kbGVyUHRyIj5odG1sU0FYSGFuZGxlclB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiNodG1sU3RhdHVzIj5odG1sU3RhdHVzPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjVVRGOFRvSHRtbCI+VVRGOFRvSHRtbDwvYT4JCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyIC8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIgLz4JCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICogaW4sIDxiciAvPgkJCQkJIGludCAqIGlubGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFN0YXR1cyI+aHRtbFN0YXR1czwvYT4JPGEgaHJlZj0iI2h0bWxBdHRyQWxsb3dlZCI+aHRtbEF0dHJBbGxvd2VkPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICogZWx0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhdHRyLCA8YnIgLz4JCQkJCSBpbnQgbGVnYWN5KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbEF1dG9DbG9zZVRhZyI+aHRtbEF1dG9DbG9zZVRhZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVB0ciI+aHRtbE5vZGVQdHI8L2E+IGVsZW0pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiNodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCI+aHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCQkJIGludCBzaXplKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0Ij5odG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTQVhIYW5kbGVyUHRyIj5odG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJCQkgY29uc3QgY2hhciAqIGNodW5rLCA8YnIgLz4JCQkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxDdHh0UmVhZERvYyI+aHRtbEN0eHRSZWFkRG9jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbEN0eHRSZWFkRmQiPmh0bWxDdHh0UmVhZEZkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgZmQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbEN0eHRSZWFkRmlsZSI+aHRtbEN0eHRSZWFkRmlsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbEN0eHRSZWFkSU8iPmh0bWxDdHh0UmVhZElPPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sQ3R4dFJlYWRNZW1vcnkiPmh0bWxDdHh0UmVhZE1lbW9yeTwvYT4JKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNodG1sQ3R4dFJlc2V0Ij5odG1sQ3R4dFJlc2V0PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2h0bWxDdHh0VXNlT3B0aW9ucyI+aHRtbEN0eHRVc2VPcHRpb25zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2h0bWxFbGVtZW50QWxsb3dlZEhlcmUiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKiBwYXJlbnQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVsdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxTdGF0dXMiPmh0bWxTdGF0dXM8L2E+CTxhIGhyZWY9IiNodG1sRWxlbWVudFN0YXR1c0hlcmUiPmh0bWxFbGVtZW50U3RhdHVzSGVyZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICogcGFyZW50LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtRGVzYyI+aHRtbEVsZW1EZXNjPC9hPiAqIGVsdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2h0bWxFbmNvZGVFbnRpdGllcyI+aHRtbEVuY29kZUVudGl0aWVzPC9hPgkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbiwgPGJyIC8+CQkJCQkgaW50IHF1b3RlQ2hhcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT4gKgk8YSBocmVmPSIjaHRtbEVudGl0eUxvb2t1cCI+aHRtbEVudGl0eUxvb2t1cDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5RGVzYyI+aHRtbEVudGl0eURlc2M8L2E+ICoJPGEgaHJlZj0iI2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCI+aHRtbEVudGl0eVZhbHVlTG9va3VwPC9hPgkodW5zaWduZWQgaW50IHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2h0bWxGcmVlUGFyc2VyQ3R4dCI+aHRtbEZyZWVQYXJzZXJDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbEhhbmRsZU9taXR0ZWRFbGVtIj5odG1sSGFuZGxlT21pdHRlZEVsZW08L2E+CQkoaW50IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2h0bWxJc0F1dG9DbG9zZWQiPmh0bWxJc0F1dG9DbG9zZWQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbElzU2NyaXB0QXR0cmlidXRlIj5odG1sSXNTY3JpcHRBdHRyaWJ1dGU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI2h0bWxOZXdQYXJzZXJDdHh0Ij5odG1sTmV3UGFyc2VyQ3R4dDwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU3RhdHVzIj5odG1sU3RhdHVzPC9hPgk8YSBocmVmPSIjaHRtbE5vZGVTdGF0dXMiPmh0bWxOb2RlU3RhdHVzPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBpbnQgbGVnYWN5KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbFBhcnNlQ2hhclJlZiI+aHRtbFBhcnNlQ2hhclJlZjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2h0bWxQYXJzZUNodW5rIj5odG1sUGFyc2VDaHVuazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyIC8+CQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJIGludCB0ZXJtaW5hdGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbFBhcnNlRG9jIj5odG1sUGFyc2VEb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiNodG1sUGFyc2VEb2N1bWVudCI+aHRtbFBhcnNlRG9jdW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjaHRtbFBhcnNlRWxlbWVudCI+aHRtbFBhcnNlRWxlbWVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT4gKgk8YSBocmVmPSIjaHRtbFBhcnNlRW50aXR5UmVmIj5odG1sUGFyc2VFbnRpdHlSZWY8L2E+CSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBzdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbFBhcnNlRmlsZSI+aHRtbFBhcnNlRmlsZTwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sUmVhZERvYyI+aHRtbFJlYWREb2M8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxSZWFkRmQiPmh0bWxSZWFkRmQ8L2E+CQkoaW50IGZkLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxSZWFkRmlsZSI+aHRtbFJlYWRGaWxlPC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sUmVhZElPIj5odG1sUmVhZElPPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyIC8+CQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxSZWFkTWVtb3J5Ij5odG1sUmVhZE1lbW9yeTwvYT4JCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiNodG1sU0FYUGFyc2VEb2MiPmh0bWxTQVhQYXJzZURvYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYSGFuZGxlclB0ciI+aHRtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJEYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JPGEgaHJlZj0iI2h0bWxTQVhQYXJzZUZpbGUiPmh0bWxTQVhQYXJzZUZpbGU8L2E+CShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYSGFuZGxlclB0ciI+aHRtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJEYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjIj5odG1sRWxlbURlc2M8L2E+ICoJPGEgaHJlZj0iI2h0bWxUYWdMb29rdXAiPmh0bWxUYWdMb29rdXA8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YWcpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9Imh0bWxEZWZhdWx0U3ViZWxlbWVudCIgaWQ9Imh0bWxEZWZhdWx0U3ViZWxlbWVudCI+PC9hPk1hY3JvOiBodG1sRGVmYXVsdFN1YmVsZW1lbnQ8L2gzPjxwcmU+I2RlZmluZSBodG1sRGVmYXVsdFN1YmVsZW1lbnQ8L3ByZT48cD5SZXR1cm5zIHRoZSBkZWZhdWx0IHN1YmVsZW1lbnQgZm9yIHRoaXMgZWxlbWVudDwvcD4KKzxoMz48YSBuYW1lPSJodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYyIgaWQ9Imh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjIj48L2E+TWFjcm86IGh0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjPC9oMz48cHJlPiNkZWZpbmUgaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2M8L3ByZT48cD5DaGVja3Mgd2hldGhlciBhbiBIVE1MIGVsZW1lbnQgZGVzY3JpcHRpb24gbWF5IGJlIGEgZGlyZWN0IGNoaWxkIG9mIHRoZSBzcGVjaWZpZWQgZWxlbWVudC4gUmV0dXJucyAxIGlmIGFsbG93ZWQ7IDAgb3RoZXJ3aXNlLjwvcD4KKzxoMz48YSBuYW1lPSJodG1sUmVxdWlyZWRBdHRycyIgaWQ9Imh0bWxSZXF1aXJlZEF0dHJzIj48L2E+TWFjcm86IGh0bWxSZXF1aXJlZEF0dHJzPC9oMz48cHJlPiNkZWZpbmUgaHRtbFJlcXVpcmVkQXR0cnM8L3ByZT48cD5SZXR1cm5zIHRoZSBhdHRyaWJ1dGVzIHJlcXVpcmVkIGZvciB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuPC9wPgorPGgzPjxhIG5hbWU9Imh0bWxFbGVtRGVzYyIgaWQ9Imh0bWxFbGVtRGVzYyI+U3RydWN0dXJlIGh0bWxFbGVtRGVzYzwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgaHRtbEVsZW1EZXNjPGJyIC8+c3RydWN0IF9odG1sRWxlbURlc2MgeworICAgIGNvbnN0IGNoYXIgKgluYW1lCTogVGhlIHRhZyBuYW1lCisgICAgY2hhcglzdGFydFRhZwk6IFdoZXRoZXIgdGhlIHN0YXJ0IHRhZyBjYW4gYmUgaW1wbGllZAorICAgIGNoYXIJZW5kVGFnCTogV2hldGhlciB0aGUgZW5kIHRhZyBjYW4gYmUgaW1wbGllZAorICAgIGNoYXIJc2F2ZUVuZFRhZwk6IFdoZXRoZXIgdGhlIGVuZCB0YWcgc2hvdWxkIGJlIHNhdmVkCisgICAgY2hhcgllbXB0eQk6IElzIHRoaXMgYW4gZW1wdHkgZWxlbWVudCA/CisgICAgY2hhcglkZXByCTogSXMgdGhpcyBhIGRlcHJlY2F0ZWQgZWxlbWVudCA/CisgICAgY2hhcglkdGQJOiAxOiBvbmx5IGluIExvb3NlIERURCwgMjogb25seSBGcmFtZXNldAorICAgIGNoYXIJaXNpbmxpbmUJOiBpcyB0aGlzIGEgYmxvY2sgMCBvciBpbmxpbmUgMSBlbGVtZW50CisgICAgY29uc3QgY2hhciAqCWRlc2MJOiB0aGUgZGVzY3JpcHRpb24gTlJLIEphbi4yMDAzICogTmV3IGZpZWwKKyAgICBjb25zdCBjaGFyICoqCXN1YmVsdHMJOiBhbGxvd2VkIHN1Yi1lbGVtZW50cyBvZiB0aGlzIGVsZW1lbnQKKyAgICBjb25zdCBjaGFyICoJZGVmYXVsdHN1YmVsdAk6IHN1YmVsZW1lbnQgZm9yIHN1Z2dlc3RlZCBhdXRvLXJlcGFpciBpZgorICAgIGNvbnN0IGNoYXIgKioJYXR0cnNfb3B0CTogT3B0aW9uYWwgQXR0cmlidXRlcworICAgIGNvbnN0IGNoYXIgKioJYXR0cnNfZGVwcgk6IEFkZGl0aW9uYWwgZGVwcmVjYXRlZCBhdHRyaWJ1dGVzCisgICAgY29uc3QgY2hhciAqKglhdHRyc19yZXEJOiBSZXF1aXJlZCBhdHRyaWJ1dGVzCit9PC9wcmU+PGgzPjxhIG5hbWU9Imh0bWxFbnRpdHlEZXNjIiBpZD0iaHRtbEVudGl0eURlc2MiPlN0cnVjdHVyZSBodG1sRW50aXR5RGVzYzwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgaHRtbEVudGl0eURlc2M8YnIgLz5zdHJ1Y3QgX2h0bWxFbnRpdHlEZXNjIHsKKyAgICB1bnNpZ25lZCBpbnQJdmFsdWUJOiB0aGUgVU5JQ09ERSB2YWx1ZSBmb3IgdGhlIGNoYXJhY3RlcgorICAgIGNvbnN0IGNoYXIgKgluYW1lCTogVGhlIGVudGl0eSBuYW1lCisgICAgY29uc3QgY2hhciAqCWRlc2MJOiB0aGUgZGVzY3JpcHRpb24KK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJodG1sUGFyc2VyT3B0aW9uIiBpZD0iaHRtbFBhcnNlck9wdGlvbiI+aHRtbFBhcnNlck9wdGlvbjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIGh0bWxQYXJzZXJPcHRpb24geworICAgIDxhIG5hbWU9IkhUTUxfUEFSU0VfUkVDT1ZFUiIgaWQ9IkhUTUxfUEFSU0VfUkVDT1ZFUiI+SFRNTF9QQVJTRV9SRUNPVkVSPC9hPiA9IDEgOiBSZWxheGVkIHBhcnNpbmcKKyAgICA8YSBuYW1lPSJIVE1MX1BBUlNFX05PRVJST1IiIGlkPSJIVE1MX1BBUlNFX05PRVJST1IiPkhUTUxfUEFSU0VfTk9FUlJPUjwvYT4gPSAzMiA6IHN1cHByZXNzIGVycm9yIHJlcG9ydHMKKyAgICA8YSBuYW1lPSJIVE1MX1BBUlNFX05PV0FSTklORyIgaWQ9IkhUTUxfUEFSU0VfTk9XQVJOSU5HIj5IVE1MX1BBUlNFX05PV0FSTklORzwvYT4gPSA2NCA6IHN1cHByZXNzIHdhcm5pbmcgcmVwb3J0cworICAgIDxhIG5hbWU9IkhUTUxfUEFSU0VfUEVEQU5USUMiIGlkPSJIVE1MX1BBUlNFX1BFREFOVElDIj5IVE1MX1BBUlNFX1BFREFOVElDPC9hPiA9IDEyOCA6IHBlZGFudGljIGVycm9yIHJlcG9ydGluZworICAgIDxhIG5hbWU9IkhUTUxfUEFSU0VfTk9CTEFOS1MiIGlkPSJIVE1MX1BBUlNFX05PQkxBTktTIj5IVE1MX1BBUlNFX05PQkxBTktTPC9hPiA9IDI1NiA6IHJlbW92ZSBibGFuayBub2RlcworICAgIDxhIG5hbWU9IkhUTUxfUEFSU0VfTk9ORVQiIGlkPSJIVE1MX1BBUlNFX05PTkVUIj5IVE1MX1BBUlNFX05PTkVUPC9hPiA9IDIwNDggOiBGb3JiaWQgbmV0d29yayBhY2Nlc3MKKyAgICA8YSBuYW1lPSJIVE1MX1BBUlNFX05PSU1QTElFRCIgaWQ9IkhUTUxfUEFSU0VfTk9JTVBMSUVEIj5IVE1MX1BBUlNFX05PSU1QTElFRDwvYT4gPSA4MTkyIDogRG8gbm90IGFkZCBpbXBsaWVkIGh0bWwvYm9keS4uLiBlbGVtZW50cworICAgIDxhIG5hbWU9IkhUTUxfUEFSU0VfQ09NUEFDVCIgaWQ9IkhUTUxfUEFSU0VfQ09NUEFDVCI+SFRNTF9QQVJTRV9DT01QQUNUPC9hPiA9IDY1NTM2IDogY29tcGFjdCBzbWFsbCB0ZXh0IG5vZGVzCit9Cis8L3ByZT48aDM+RW51bSA8YSBuYW1lPSJodG1sU3RhdHVzIiBpZD0iaHRtbFN0YXR1cyI+aHRtbFN0YXR1czwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIGh0bWxTdGF0dXMgeworICAgIDxhIG5hbWU9IkhUTUxfTkEiIGlkPSJIVE1MX05BIj5IVE1MX05BPC9hPiA9IDAgOiBzb21ldGhpbmcgd2UgZG9uJ3QgY2hlY2sgYXQgYWxsCisgICAgPGEgbmFtZT0iSFRNTF9JTlZBTElEIiBpZD0iSFRNTF9JTlZBTElEIj5IVE1MX0lOVkFMSUQ8L2E+ID0gMQorICAgIDxhIG5hbWU9IkhUTUxfREVQUkVDQVRFRCIgaWQ9IkhUTUxfREVQUkVDQVRFRCI+SFRNTF9ERVBSRUNBVEVEPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJIVE1MX1ZBTElEIiBpZD0iSFRNTF9WQUxJRCI+SFRNTF9WQUxJRDwvYT4gPSA0CisgICAgPGEgbmFtZT0iSFRNTF9SRVFVSVJFRCIgaWQ9IkhUTUxfUkVRVUlSRUQiPkhUTUxfUkVRVUlSRUQ8L2E+ID0gMTIgOiBWQUxJRCBiaXQgc2V0IHNvICggJmFtcDsgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX1ZBTElEIj5IVE1MX1ZBTElEPC9hPiApIGlzIFRSVUUKK30KKzwvcHJlPjxoMz48YSBuYW1lPSJVVEY4VG9IdG1sIiBpZD0iVVRGOFRvSHRtbCI+PC9hPkZ1bmN0aW9uOiBVVEY4VG9IdG1sPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CVVURjhUb0h0bWwJCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyIC8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIgLz4JCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICogaW4sIDxiciAvPgkJCQkJIGludCAqIGlubGVuKTxiciAvPgorPC9wcmU+PHA+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBBU0NJSSBwbHVzIEhUTUwgZW50aXRpZXMgYmxvY2sgb2YgY2hhcnMgb3V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dGxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAb3V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VzcywgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzLCBvciAtMSBvdGhlcndpc2UgVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgYXMgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEF0dHJBbGxvd2VkIiBpZD0iaHRtbEF0dHJBbGxvd2VkIj48L2E+RnVuY3Rpb246IGh0bWxBdHRyQWxsb3dlZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFN0YXR1cyI+aHRtbFN0YXR1czwvYT4JaHRtbEF0dHJBbGxvd2VkCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKiBlbHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGF0dHIsIDxiciAvPgkJCQkJIGludCBsZWdhY3kpPGJyIC8+Cis8L3ByZT48cD5DaGVja3Mgd2hldGhlciBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIHZhbGlkIGZvciBhbiBlbGVtZW50IEhhcyBmdWxsIGtub3dsZWRnZSBvZiBSZXF1aXJlZCBhbmQgRGVwcmVjYXRlZCBhdHRyaWJ1dGVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWx0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5IVE1MIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkhUTUwgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVnYWN5PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53aGV0aGVyIHRvIGFsbG93IGRlcHJlY2F0ZWQgYXR0cmlidXRlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b25lIG9mIEhUTUxfUkVRVUlSRUQsIEhUTUxfVkFMSUQsIEhUTUxfREVQUkVDQVRFRCwgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX0lOVkFMSUQiPkhUTUxfSU5WQUxJRDwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sQXV0b0Nsb3NlVGFnIiBpZD0iaHRtbEF1dG9DbG9zZVRhZyI+PC9hPkZ1bmN0aW9uOiBodG1sQXV0b0Nsb3NlVGFnPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxBdXRvQ2xvc2VUYWcJCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sTm9kZVB0ciI+aHRtbE5vZGVQdHI8L2E+IGVsZW0pPGJyIC8+Cis8L3ByZT48cD5UaGUgSFRNTCBEVEQgYWxsb3dzIGEgdGFnIHRvIGltcGxpY2l0bHkgY2xvc2Ugb3RoZXIgdGFncy4gVGhlIGxpc3QgaXMga2VwdCBpbiBodG1sU3RhcnRDbG9zZSBhcnJheS4gVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGVsZW1lbnQgb3Igb25lIG9mIGl0J3MgY2hpbGRyZW4gd291bGQgYXV0b2Nsb3NlIHRoZSBnaXZlbiB0YWcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHRhZyBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIGF1dG9jbG9zZSwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCIgaWQ9Imh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IGh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+CWh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCQkJIGludCBzaXplKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGFuIEhUTUwgaW4tbWVtb3J5IGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiIGlkPSJodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+CWh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dAkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU0FYSGFuZGxlclB0ciI+aHRtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIgLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyIC8+CQkJCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciB1c2luZyB0aGUgSFRNTCBwYXJzZXIgaW4gcHVzaCBtb2RlIFRoZSB2YWx1ZSBvZiBAZmlsZW5hbWUgaXMgdXNlZCBmb3IgZmV0Y2hpbmcgZXh0ZXJuYWwgZW50aXRpZXMgYW5kIGVycm9yL3dhcm5pbmcgcmVwb3J0cy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaHVuazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5udW1iZXIgb2YgY2hhcnMgaW4gdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3B0aW9uYWwgZmlsZSBuYW1lIG9yIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBlbmNvZGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEN0eHRSZWFkRG9jIiBpZD0iaHRtbEN0eHRSZWFkRG9jIj48L2E+RnVuY3Rpb246IGh0bWxDdHh0UmVhZERvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbEN0eHRSZWFkRG9jCQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sQ3R4dFJlYWRGZCIgaWQ9Imh0bWxDdHh0UmVhZEZkIj48L2E+RnVuY3Rpb246IGh0bWxDdHh0UmVhZEZkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sQ3R4dFJlYWRGZAkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgZmQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3BlbiBmaWxlIGRlc2NyaXB0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxDdHh0UmVhZEZpbGUiIGlkPSJodG1sQ3R4dFJlYWRGaWxlIj48L2E+RnVuY3Rpb246IGh0bWxDdHh0UmVhZEZpbGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxDdHh0UmVhZEZpbGUJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaWxlIG9yIFVSTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sQ3R4dFJlYWRJTyIgaWQ9Imh0bWxDdHh0UmVhZElPIj48L2E+RnVuY3Rpb246IGh0bWxDdHh0UmVhZElPPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sQ3R4dFJlYWRJTwkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9yZWFkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gcmVhZCBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxDdHh0UmVhZE1lbW9yeSIgaWQ9Imh0bWxDdHh0UmVhZE1lbW9yeSI+PC9hPkZ1bmN0aW9uOiBodG1sQ3R4dFJlYWRNZW1vcnk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxDdHh0UmVhZE1lbW9yeQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEN0eHRSZXNldCIgaWQ9Imh0bWxDdHh0UmVzZXQiPjwvYT5GdW5jdGlvbjogaHRtbEN0eHRSZXNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbEN0eHRSZXNldAkJCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPlJlc2V0IGEgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEN0eHRVc2VPcHRpb25zIiBpZD0iaHRtbEN0eHRVc2VPcHRpb25zIj48L2E+RnVuY3Rpb246IGh0bWxDdHh0VXNlT3B0aW9uczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sQ3R4dFVzZU9wdGlvbnMJCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5BcHBsaWVzIHRoZSBvcHRpb25zIHRvIHRoZSBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEhUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIHRoZSBzZXQgb2YgdW5rbm93biBvciB1bmltcGxlbWVudGVkIG9wdGlvbnMgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sRWxlbWVudEFsbG93ZWRIZXJlIiBpZD0iaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSI+PC9hPkZ1bmN0aW9uOiBodG1sRWxlbWVudEFsbG93ZWRIZXJlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxFbGVtZW50QWxsb3dlZEhlcmUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtRGVzYyI+aHRtbEVsZW1EZXNjPC9hPiAqIHBhcmVudCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZWx0KTxiciAvPgorPC9wcmU+PHA+Q2hlY2tzIHdoZXRoZXIgYW4gSFRNTCBlbGVtZW50IG1heSBiZSBhIGRpcmVjdCBjaGlsZCBvZiBhIHBhcmVudCBlbGVtZW50LiBOb3RlIC0gZG9lc24ndCBjaGVjayBmb3IgZGVwcmVjYXRlZCBlbGVtZW50czwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhcmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+SFRNTCBwYXJlbnQgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWx0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5IVE1MIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgYWxsb3dlZDsgMCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEVsZW1lbnRTdGF0dXNIZXJlIiBpZD0iaHRtbEVsZW1lbnRTdGF0dXNIZXJlIj48L2E+RnVuY3Rpb246IGh0bWxFbGVtZW50U3RhdHVzSGVyZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFN0YXR1cyI+aHRtbFN0YXR1czwvYT4JaHRtbEVsZW1lbnRTdGF0dXNIZXJlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtRGVzYyI+aHRtbEVsZW1EZXNjPC9hPiAqIHBhcmVudCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKiBlbHQpPGJyIC8+Cis8L3ByZT48cD5DaGVja3Mgd2hldGhlciBhbiBIVE1MIGVsZW1lbnQgbWF5IGJlIGEgZGlyZWN0IGNoaWxkIG9mIGEgcGFyZW50IGVsZW1lbnQuIGFuZCBpZiBzbyB3aGV0aGVyIGl0IGlzIHZhbGlkIG9yIGRlcHJlY2F0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5IVE1MIHBhcmVudCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkhUTUwgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b25lIG9mIEhUTUxfVkFMSUQsIEhUTUxfREVQUkVDQVRFRCwgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNIVE1MX0lOVkFMSUQiPkhUTUxfSU5WQUxJRDwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sRW5jb2RlRW50aXRpZXMiIGlkPSJodG1sRW5jb2RlRW50aXRpZXMiPjwvYT5GdW5jdGlvbjogaHRtbEVuY29kZUVudGl0aWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxFbmNvZGVFbnRpdGllcwkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbiwgPGJyIC8+CQkJCQkgaW50IHF1b3RlQ2hhcik8YnIgLz4KKzwvcHJlPjxwPlRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gQVNDSUkgcGx1cyBIVE1MIGVudGl0aWVzIGJsb2NrIG9mIGNoYXJzIG91dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRsZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQG91dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFyczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQGluPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5xdW90ZUNoYXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBxdW90ZSBjaGFyYWN0ZXIgdG8gZXNjYXBlICgnIG9yICIpIG9yIHplcm8uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywgb3IgLTEgb3RoZXJ3aXNlIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGFzIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxFbnRpdHlMb29rdXAiIGlkPSJodG1sRW50aXR5TG9va3VwIj48L2E+RnVuY3Rpb246IGh0bWxFbnRpdHlMb29rdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbnRpdHlEZXNjIj5odG1sRW50aXR5RGVzYzwvYT4gKglodG1sRW50aXR5TG9va3VwCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+TG9va3VwIHRoZSBnaXZlbiBlbnRpdHkgaW4gRW50aXRpZXNUYWJsZSBUT0RPOiB0aGUgbGluZWFyIHNjYW4gaXMgcmVhbGx5IHVnbHksIGFuIGhhc2ggdGFibGUgaXMgcmVhbGx5IG5lZWRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhc3NvY2lhdGVkIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2NQdHIiPmh0bWxFbnRpdHlEZXNjUHRyPC9hPiBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEVudGl0eVZhbHVlTG9va3VwIiBpZD0iaHRtbEVudGl0eVZhbHVlTG9va3VwIj48L2E+RnVuY3Rpb246IGh0bWxFbnRpdHlWYWx1ZUxvb2t1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2MiPmh0bWxFbnRpdHlEZXNjPC9hPiAqCWh0bWxFbnRpdHlWYWx1ZUxvb2t1cAkodW5zaWduZWQgaW50IHZhbHVlKTxiciAvPgorPC9wcmU+PHA+TG9va3VwIHRoZSBnaXZlbiBlbnRpdHkgaW4gRW50aXRpZXNUYWJsZSBUT0RPOiB0aGUgbGluZWFyIHNjYW4gaXMgcmVhbGx5IHVnbHksIGFuIGhhc2ggdGFibGUgaXMgcmVhbGx5IG5lZWRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSdzIHVuaWNvZGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhc3NvY2lhdGVkIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2NQdHIiPmh0bWxFbnRpdHlEZXNjUHRyPC9hPiBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEZyZWVQYXJzZXJDdHh0IiBpZD0iaHRtbEZyZWVQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IGh0bWxGcmVlUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbEZyZWVQYXJzZXJDdHh0CQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5GcmVlIGFsbCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBwYXJzZXIgY29udGV4dC4gSG93ZXZlciB0aGUgcGFyc2VkIGRvY3VtZW50IGluIGN0eHQtJmd0O215RG9jIGlzIG5vdCBmcmVlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbEhhbmRsZU9taXR0ZWRFbGVtIiBpZD0iaHRtbEhhbmRsZU9taXR0ZWRFbGVtIj48L2E+RnVuY3Rpb246IGh0bWxIYW5kbGVPbWl0dGVkRWxlbTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sSGFuZGxlT21pdHRlZEVsZW0JCShpbnQgdmFsKTxiciAvPgorPC9wcmU+PHA+U2V0IGFuZCByZXR1cm4gdGhlIHByZXZpb3VzIHZhbHVlIGZvciBoYW5kbGluZyBIVE1MIG9taXR0ZWQgdGFncy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmludCAwIG9yIDE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBoYW5kbGluZywgMSBmb3IgYXV0byBpbnNlcnRpb24uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbElzQXV0b0Nsb3NlZCIgaWQ9Imh0bWxJc0F1dG9DbG9zZWQiPjwvYT5GdW5jdGlvbjogaHRtbElzQXV0b0Nsb3NlZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sSXNBdXRvQ2xvc2VkCQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+VGhlIEhUTUwgRFREIGFsbG93cyBhIHRhZyB0byBpbXBsaWNpdGx5IGNsb3NlIG90aGVyIHRhZ3MuIFRoZSBsaXN0IGlzIGtlcHQgaW4gaHRtbFN0YXJ0Q2xvc2UgYXJyYXkuIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGEgdGFnIGlzIGF1dG9jbG9zZWQgYnkgb25lIG9mIGl0J3MgY2hpbGQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVE1MIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIGF1dG9jbG9zZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbElzU2NyaXB0QXR0cmlidXRlIiBpZD0iaHRtbElzU2NyaXB0QXR0cmlidXRlIj48L2E+RnVuY3Rpb246IGh0bWxJc1NjcmlwdEF0dHJpYnV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sSXNTY3JpcHRBdHRyaWJ1dGUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgaWYgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpcyBvZiBjb250ZW50IHR5cGUgU2NyaXB0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlzIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIGEgc2NyaXB0IDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbE5ld1BhcnNlckN0eHQiIGlkPSJodG1sTmV3UGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiBodG1sTmV3UGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPglodG1sTmV3UGFyc2VyQ3R4dAkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkFsbG9jYXRlIGFuZCBpbml0aWFsaXplIGEgbmV3IHBhcnNlciBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGFsbG9jYXRpb24gZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sTm9kZVN0YXR1cyIgaWQ9Imh0bWxOb2RlU3RhdHVzIj48L2E+RnVuY3Rpb246IGh0bWxOb2RlU3RhdHVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sU3RhdHVzIj5odG1sU3RhdHVzPC9hPglodG1sTm9kZVN0YXR1cwkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBpbnQgbGVnYWN5KTxiciAvPgorPC9wcmU+PHA+Q2hlY2tzIHdoZXRoZXIgdGhlIHRyZWUgbm9kZSBpcyB2YWxpZC4gRXhwZXJpbWVudGFsICh0aGUgYXV0aG9yIG9ubHkgdXNlcyB0aGUgSFRNTCBlbmhhbmNlbWVudHMgaW4gYSBTQVggcGFyc2VyKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbE5vZGVQdHIiPmh0bWxOb2RlUHRyPC9hPiBpbiBhIHRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlZ2FjeTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2hldGhlciB0byBhbGxvdyBkZXByZWNhdGVkIGVsZW1lbnRzIChZRVMgaXMgZmFzdGVyIGhlcmUgZm9yIEVsZW1lbnQgbm9kZXMpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3IgRWxlbWVudCBub2RlcywgYSByZXR1cm4gZnJvbSA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxFbGVtZW50QWxsb3dlZEhlcmUiPmh0bWxFbGVtZW50QWxsb3dlZEhlcmU8L2E+IChpZiBsZWdhY3kgYWxsb3dlZCkgb3IgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbWVudFN0YXR1c0hlcmUiPmh0bWxFbGVtZW50U3RhdHVzSGVyZTwvYT4gKG90aGVyd2lzZSkuIGZvciBBdHRyaWJ1dGUgbm9kZXMsIGEgcmV0dXJuIGZyb20gPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sQXR0ckFsbG93ZWQiPmh0bWxBdHRyQWxsb3dlZDwvYT4gZm9yIG90aGVyIG5vZGVzLCA8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI0hUTUxfTkEiPkhUTUxfTkE8L2E+IChubyBjaGVja3MgcGVyZm9ybWVkKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZUNoYXJSZWYiIGlkPSJodG1sUGFyc2VDaGFyUmVmIj48L2E+RnVuY3Rpb246IGh0bWxQYXJzZUNoYXJSZWY8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbFBhcnNlQ2hhclJlZgkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgUmVmZXJlbmNlIGRlY2xhcmF0aW9ucyBbNjZdIENoYXJSZWYgOjo9ICcmYW1wOyMnIFswLTldKyAnOycgfCAnJmFtcDsjeCcgWzAtOWEtZkEtRl0rICc7JzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEhUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBwYXJzZWQgKGFzIGFuIGludCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sUGFyc2VDaHVuayIgaWQ9Imh0bWxQYXJzZUNodW5rIj48L2E+RnVuY3Rpb246IGh0bWxQYXJzZUNodW5rPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxQYXJzZUNodW5rCQkJKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogY2h1bmssIDxiciAvPgkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCSBpbnQgdGVybWluYXRlKTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYSBDaHVuayBvZiBtZW1vcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaHVuazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgaW4gYnl0ZSBvZiB0aGUgY2h1bms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRlcm1pbmF0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGFzdCBjaHVuayBpbmRpY2F0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnplcm8gaWYgbm8gZXJyb3IsIHRoZSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvcnMiPnhtbFBhcnNlckVycm9yczwvYT4gb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZURvYyIgaWQ9Imh0bWxQYXJzZURvYyI+PC9hPkZ1bmN0aW9uOiBodG1sUGFyc2VEb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxQYXJzZURvYwkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gSFRNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sUGFyc2VEb2N1bWVudCIgaWQ9Imh0bWxQYXJzZURvY3VtZW50Ij48L2E+RnVuY3Rpb246IGh0bWxQYXJzZURvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxQYXJzZURvY3VtZW50CQkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sUGFyc2VyQ3R4dFB0ciI+aHRtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBIVE1MIGRvY3VtZW50IChhbmQgYnVpbGQgYSB0cmVlIGlmIHVzaW5nIHRoZSBzdGFuZGFyZCBTQVggaW50ZXJmYWNlKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBIVE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wLCAtMSBpbiBjYXNlIG9mIGVycm9yLiB0aGUgcGFyc2VyIGNvbnRleHQgaXMgYXVnbWVudGVkIGFzIGEgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxQYXJzZUVsZW1lbnQiIGlkPSJodG1sUGFyc2VFbGVtZW50Ij48L2E+RnVuY3Rpb246IGh0bWxQYXJzZUVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxQYXJzZUVsZW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZWxlbWVudCwgdGhpcyBpcyBoaWdobHkgcmVjdXJzaXZlIHRoaXMgaXMga2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIGNvZGUgdmVyc2lvbnMgWzM5XSBlbGVtZW50IDo6PSBFbXB0eUVsZW1UYWcgfCBTVGFnIGNvbnRlbnQgRVRhZyBbNDFdIEF0dHJpYnV0ZSA6Oj0gTmFtZSBFcSBBdHRWYWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEhUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sUGFyc2VFbnRpdHlSZWYiIGlkPSJodG1sUGFyc2VFbnRpdHlSZWYiPjwvYT5GdW5jdGlvbjogaHRtbFBhcnNlRW50aXR5UmVmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRW50aXR5RGVzYyI+aHRtbEVudGl0eURlc2M8L2E+ICoJaHRtbFBhcnNlRW50aXR5UmVmCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBzdHIpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBIVE1MIEVOVElUWSByZWZlcmVuY2VzIFs2OF0gRW50aXR5UmVmIDo6PSAnJmFtcDsnIE5hbWUgJzsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5sb2NhdGlvbiB0byBzdG9yZSB0aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhc3NvY2lhdGVkIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVudGl0eURlc2NQdHIiPmh0bWxFbnRpdHlEZXNjUHRyPC9hPiBpZiBmb3VuZCwgb3IgTlVMTCBvdGhlcndpc2UsIGlmIG5vbi1OVUxMICpzdHIgd2lsbCBoYXZlIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbFBhcnNlRmlsZSIgaWQ9Imh0bWxQYXJzZUZpbGUiPjwvYT5GdW5jdGlvbjogaHRtbFBhcnNlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFBhcnNlRmlsZQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gSFRNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxSZWFkRG9jIiBpZD0iaHRtbFJlYWREb2MiPjwvYT5GdW5jdGlvbjogaHRtbFJlYWREb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxSZWFkRG9jCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbFJlYWRGZCIgaWQ9Imh0bWxSZWFkRmQiPjwvYT5GdW5jdGlvbjogaHRtbFJlYWRGZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFJlYWRGZAkJKGludCBmZCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIGFuZCBidWlsZCBhIHRyZWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sUmVhZEZpbGUiIGlkPSJodG1sUmVhZEZpbGUiPjwvYT5GdW5jdGlvbjogaHRtbFJlYWRGaWxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sUmVhZEZpbGUJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgb3IgVVJMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxSZWFkSU8iIGlkPSJodG1sUmVhZElPIj48L2E+RnVuY3Rpb246IGh0bWxSZWFkSU88L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxSZWFkSU8JCSg8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb3JlYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyByZWFkIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbFJlYWRNZW1vcnkiIGlkPSJodG1sUmVhZE1lbW9yeSI+PC9hPkZ1bmN0aW9uOiBodG1sUmVhZE1lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFJlYWRNZW1vcnkJCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbFNBWFBhcnNlRG9jIiBpZD0iaHRtbFNBWFBhcnNlRG9jIj48L2E+RnVuY3Rpb246IGh0bWxTQVhQYXJzZURvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFNBWFBhcnNlRG9jCQkoPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWEhhbmRsZXJQdHIiPmh0bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSk8YnIgLz4KKzwvcHJlPjxwPlBhcnNlIGFuIEhUTUwgaW4tbWVtb3J5IGRvY3VtZW50LiBJZiBzYXggaXMgbm90IE5VTEwsIHVzZSB0aGUgU0FYIGNhbGxiYWNrcyB0byBoYW5kbGUgcGFyc2UgZXZlbnRzLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIGJlaGF2aW9yIGFuZCByZXR1cm4gYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyIGJsb2NrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyRGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aWYgdXNpbmcgU0FYLCB0aGlzIHBvaW50ZXIgd2lsbCBiZSBwcm92aWRlZCBvbiBjYWxsYmFja3MuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgdW5sZXNzIFNBWCBpcyBOVUxMIG9yIHRoZSBkb2N1bWVudCBpcyBub3Qgd2VsbCBmb3JtZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbFNBWFBhcnNlRmlsZSIgaWQ9Imh0bWxTQVhQYXJzZUZpbGUiPjwvYT5GdW5jdGlvbjogaHRtbFNBWFBhcnNlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4JaHRtbFNBWFBhcnNlRmlsZQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFNBWEhhbmRsZXJQdHIiPmh0bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEhUTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgSFRNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSB1bmxlc3MgU0FYIGlzIE5VTEwgb3IgdGhlIGRvY3VtZW50IGlzIG5vdCB3ZWxsIGZvcm1lZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sVGFnTG9va3VwIiBpZD0iaHRtbFRhZ0xvb2t1cCI+PC9hPkZ1bmN0aW9uOiBodG1sVGFnTG9va3VwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRWxlbURlc2MiPmh0bWxFbGVtRGVzYzwvYT4gKglodG1sVGFnTG9va3VwCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YWcpPGJyIC8+Cis8L3ByZT48cD5Mb29rdXAgdGhlIEhUTUwgdGFnIGluIHRoZSBFbGVtZW50VGFibGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSB0YWcgbmFtZSBpbiBsb3dlcmNhc2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWxhdGVkIDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbEVsZW1EZXNjUHRyIj5odG1sRWxlbURlc2NQdHI8L2E+IG9yIE5VTEwgaWYgbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1IVE1MdHJlZS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjZkNTg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtSFRNTHRyZWUuaHRtbApAQCAtMCwwICsxLDczIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgSFRNTHRyZWUgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSBIVE1MdHJlZSBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+SFRNTHBhcnNlcjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwiPlNBWDwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1TQVguaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+dGhpcyBtb2R1bGUgaW1wbGVtZW50cyBhIGZldyBmdW5jdGlvbiBuZWVkZWQgdG8gcHJvY2VzcyB0cmVlIGluIGFuIEhUTUwgc3BlY2lmaWMgd2F5LiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSFRNTF9DT01NRU5UX05PREUiPkhUTUxfQ09NTUVOVF9OT0RFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNIVE1MX0VOVElUWV9SRUZfTk9ERSI+SFRNTF9FTlRJVFlfUkVGX05PREU8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0hUTUxfUElfTk9ERSI+SFRNTF9QSV9OT0RFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNIVE1MX1BSRVNFUlZFX05PREUiPkhUTUxfUFJFU0VSVkVfTk9ERTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSFRNTF9URVhUX05PREUiPkhUTUxfVEVYVF9OT0RFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBmb3JtYXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0Ij5odG1sRG9jQ29udGVudER1bXBPdXRwdXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbERvY0R1bXAiPmh0bWxEb2NEdW1wPC9hPgkJCShGSUxFICogZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2h0bWxEb2NEdW1wTWVtb3J5Ij5odG1sRG9jRHVtcE1lbW9yeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBtZW0sIDxiciAvPgkJCQkJIGludCAqIHNpemUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQiPmh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG1lbSwgPGJyIC8+CQkJCQkgaW50ICogc2l6ZSwgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjaHRtbEdldE1ldGFFbmNvZGluZyI+aHRtbEdldE1ldGFFbmNvZGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbERvY1B0ciI+aHRtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbElzQm9vbGVhbkF0dHIiPmh0bWxJc0Jvb2xlYW5BdHRyPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbE5ld0RvYyI+aHRtbE5ld0RvYzwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjaHRtbE5ld0RvY05vRHREIj5odG1sTmV3RG9jTm9EdEQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbE5vZGVEdW1wIj5odG1sTm9kZUR1bXA8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNodG1sTm9kZUR1bXBGaWxlIj5odG1sTm9kZUR1bXBGaWxlPC9hPgkJKEZJTEUgKiBvdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiNodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij5odG1sTm9kZUR1bXBGaWxlRm9ybWF0PC9hPgkJKEZJTEUgKiBvdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiPmh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2h0bWxOb2RlRHVtcE91dHB1dCI+aHRtbE5vZGVEdW1wT3V0cHV0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbFNhdmVGaWxlIj5odG1sU2F2ZUZpbGU8L2E+CQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbFNhdmVGaWxlRW5jIj5odG1sU2F2ZUZpbGVFbmM8L2E+CQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiNodG1sU2F2ZUZpbGVGb3JtYXQiPmh0bWxTYXZlRmlsZUZvcm1hdDwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaHRtbFNldE1ldGFFbmNvZGluZyI+aHRtbFNldE1ldGFFbmNvZGluZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZW5jb2RpbmcpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IkhUTUxfQ09NTUVOVF9OT0RFIiBpZD0iSFRNTF9DT01NRU5UX05PREUiPjwvYT5NYWNybzogSFRNTF9DT01NRU5UX05PREU8L2gzPjxwcmU+I2RlZmluZSBIVE1MX0NPTU1FTlRfTk9ERTwvcHJlPjxwPk1hY3JvLiBBIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPiBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPiBpbiBhbiBYTUwgZG9jdW1lbnQuPC9wPgorPGgzPjxhIG5hbWU9IkhUTUxfRU5USVRZX1JFRl9OT0RFIiBpZD0iSFRNTF9FTlRJVFlfUkVGX05PREUiPjwvYT5NYWNybzogSFRNTF9FTlRJVFlfUkVGX05PREU8L2gzPjxwcmU+I2RlZmluZSBIVE1MX0VOVElUWV9SRUZfTk9ERTwvcHJlPjxwPk1hY3JvLiBBbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBpbiBhbiBYTUwgZG9jdW1lbnQuPC9wPgorPGgzPjxhIG5hbWU9IkhUTUxfUElfTk9ERSIgaWQ9IkhUTUxfUElfTk9ERSI+PC9hPk1hY3JvOiBIVE1MX1BJX05PREU8L2gzPjxwcmU+I2RlZmluZSBIVE1MX1BJX05PREU8L3ByZT48cD5NYWNyby4gQSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGluIGEgSFRNTCBkb2N1bWVudCBpcyByZWFsbHkgaW1wbGVtZW50ZWQgdGhlIHNhbWUgd2F5IGFzIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBpbiBhbiBYTUwgZG9jdW1lbnQuPC9wPgorPGgzPjxhIG5hbWU9IkhUTUxfUFJFU0VSVkVfTk9ERSIgaWQ9IkhUTUxfUFJFU0VSVkVfTk9ERSI+PC9hPk1hY3JvOiBIVE1MX1BSRVNFUlZFX05PREU8L2gzPjxwcmU+I2RlZmluZSBIVE1MX1BSRVNFUlZFX05PREU8L3ByZT48cD5NYWNyby4gQSBwcmVzZXJ2ZWQgbm9kZSBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhIENEQVRBIHNlY3Rpb24gaW4gYW4gWE1MIGRvY3VtZW50LjwvcD4KKzxoMz48YSBuYW1lPSJIVE1MX1RFWFRfTk9ERSIgaWQ9IkhUTUxfVEVYVF9OT0RFIj48L2E+TWFjcm86IEhUTUxfVEVYVF9OT0RFPC9oMz48cHJlPiNkZWZpbmUgSFRNTF9URVhUX05PREU8L3ByZT48cD5NYWNyby4gQSB0ZXh0IG5vZGUgaW4gYSBIVE1MIGRvY3VtZW50IGlzIHJlYWxseSBpbXBsZW1lbnRlZCB0aGUgc2FtZSB3YXkgYXMgYSB0ZXh0IG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50LjwvcD4KKzxoMz48YSBuYW1lPSJodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiIGlkPSJodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQiPjwvYT5GdW5jdGlvbjogaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBmb3JtYXQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgZG9jdW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sRG9jQ29udGVudER1bXBPdXRwdXQiIGlkPSJodG1sRG9jQ29udGVudER1bXBPdXRwdXQiPjwvYT5GdW5jdGlvbjogaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlodG1sRG9jQ29udGVudER1bXBPdXRwdXQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgZG9jdW1lbnQuIEZvcm1hdGluZyByZXR1cm4vc3BhY2VzIGFyZSBhZGRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIHN0cmluZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxEb2NEdW1wIiBpZD0iaHRtbERvY0R1bXAiPjwvYT5GdW5jdGlvbjogaHRtbERvY0R1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbERvY0R1bXAJCQkoRklMRSAqIGYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhbiBvcGVuIEZJTEUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxEb2NEdW1wTWVtb3J5IiBpZD0iaHRtbERvY0R1bXBNZW1vcnkiPjwvYT5GdW5jdGlvbjogaHRtbERvY0R1bXBNZW1vcnk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxEb2NEdW1wTWVtb3J5CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbWVtLCA8YnIgLz4JCQkJCSBpbnQgKiBzaXplKTxiciAvPgorPC9wcmU+PHA+RHVtcCBhbiBIVE1MIGRvY3VtZW50IGluIG1lbW9yeSBhbmQgcmV0dXJuIHRoZSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhbmQgaXQncyBzaXplLiBJdCdzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk9VVDogdGhlIG1lbW9yeSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5PVVQ6IHRoZSBtZW1vcnkgbGVuZ3RoPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQiIGlkPSJodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCI+PC9hPkZ1bmN0aW9uOiBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBtZW0sIDxiciAvPgkJCQkJIGludCAqIHNpemUsIDxiciAvPgkJCQkJIGludCBmb3JtYXQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgZG9jdW1lbnQgaW4gbWVtb3J5IGFuZCByZXR1cm4gdGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFuZCBpdCdzIHNpemUuIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1lbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+T1VUOiB0aGUgbWVtb3J5IHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk9VVDogdGhlIG1lbW9yeSBsZW5ndGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sR2V0TWV0YUVuY29kaW5nIiBpZD0iaHRtbEdldE1ldGFFbmNvZGluZyI+PC9hPkZ1bmN0aW9uOiBodG1sR2V0TWV0YUVuY29kaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJaHRtbEdldE1ldGFFbmNvZGluZwkoPGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPiBkb2MpPGJyIC8+Cis8L3ByZT48cD5FbmNvZGluZyBkZWZpbml0aW9uIGxvb2t1cCBpbiB0aGUgTWV0YSB0YWdzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IGVuY29kaW5nIGFzIGZsYWdnZWQgaW4gdGhlIEhUTUwgc291cmNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbElzQm9vbGVhbkF0dHIiIGlkPSJodG1sSXNCb29sZWFuQXR0ciI+PC9hPkZ1bmN0aW9uOiBodG1sSXNCb29sZWFuQXR0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sSXNCb29sZWFuQXR0cgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5EZXRlcm1pbmUgaWYgYSBnaXZlbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIGEgYm9vbGVhbiBhdHRyaWJ1dGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZhbHNlIGlmIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIG5vdCBib29sZWFuLCB0cnVlIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sTmV3RG9jIiBpZD0iaHRtbE5ld0RvYyI+PC9hPkZ1bmN0aW9uOiBodG1sTmV3RG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCNodG1sRG9jUHRyIj5odG1sRG9jUHRyPC9hPglodG1sTmV3RG9jCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElEKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlcyBhIG5ldyBIVE1MIGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VUkkgZm9yIHRoZSBkdGQsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBJRCBvZiB0aGUgRFRELCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBkb2N1bWVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxOZXdEb2NOb0R0RCIgaWQ9Imh0bWxOZXdEb2NOb0R0RCI+PC9hPkZ1bmN0aW9uOiBodG1sTmV3RG9jTm9EdEQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+CWh0bWxOZXdEb2NOb0R0RAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZXMgYSBuZXcgSFRNTCBkb2N1bWVudCB3aXRob3V0IGEgRFREIG5vZGUgaWYgQFVSSSBhbmQgQEV4dGVybmFsSUQgYXJlIE5VTEw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVSSSBmb3IgdGhlIGR0ZCwgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dGVybmFsIElEIG9mIHRoZSBEVEQsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGRvY3VtZW50LCBkbyBub3QgaW5pdGlhbGl6ZSB0aGUgRFREIGlmIG5vdCBwcm92aWRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxOb2RlRHVtcCIgaWQ9Imh0bWxOb2RlRHVtcCI+PC9hPkZ1bmN0aW9uOiBodG1sTm9kZUR1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbE5vZGVEdW1wCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvbywgYW5kIGZvcm1hdHRpbmcgcmV0dXJucyBhcmUgYWRkZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbE5vZGVEdW1wRmlsZSIgaWQ9Imh0bWxOb2RlRHVtcEZpbGUiPjwvYT5GdW5jdGlvbjogaHRtbE5vZGVEdW1wRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbE5vZGVEdW1wRmlsZQkJKEZJTEUgKiBvdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91cixjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28sIGFuZCBmb3JtYXR0aW5nIHJldHVybnMgYXJlIGFkZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxOb2RlRHVtcEZpbGVGb3JtYXQiIGlkPSJodG1sTm9kZUR1bXBGaWxlRm9ybWF0Ij48L2E+RnVuY3Rpb246IGh0bWxOb2RlRHVtcEZpbGVGb3JtYXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaHRtbE5vZGVEdW1wRmlsZUZvcm1hdAkJKEZJTEUgKiBvdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4gVE9ETzogaWYgZW5jb2RpbmcgPT0gTlVMTCB0cnkgdG8gc2F2ZSBpbiB0aGUgZG9jIGVuY29kaW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0IiBpZD0iaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0Ij48L2E+RnVuY3Rpb246IGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2Rpbmcgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbE5vZGVEdW1wT3V0cHV0IiBpZD0iaHRtbE5vZGVEdW1wT3V0cHV0Ij48L2E+RnVuY3Rpb246IGh0bWxOb2RlRHVtcE91dHB1dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbE5vZGVEdW1wT3V0cHV0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91cixjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28sIGFuZCBmb3JtYXR0aW5nIHJldHVybnMvc3BhY2VzIGFyZSBhZGRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2Rpbmcgc3RyaW5nPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbFNhdmVGaWxlIiBpZD0iaHRtbFNhdmVGaWxlIj48L2E+RnVuY3Rpb246IGh0bWxTYXZlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sU2F2ZUZpbGUJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgZG9jdW1lbnQgdG8gYSBmaWxlLiBJZiBAZmlsZW5hbWUgaXMgIi0iIHRoZSBzdGRvdXQgZmlsZSBpcyB1c2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgKG9yIFVSTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaHRtbFNhdmVGaWxlRW5jIiBpZD0iaHRtbFNhdmVGaWxlRW5jIj48L2E+RnVuY3Rpb246IGh0bWxTYXZlRmlsZUVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlodG1sU2F2ZUZpbGVFbmMJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhIGZpbGUgdXNpbmcgYSBnaXZlbiBlbmNvZGluZyBhbmQgZm9ybWF0dGluZyByZXR1cm5zL3NwYWNlcyBhcmUgYWRkZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sU2F2ZUZpbGVGb3JtYXQiIGlkPSJodG1sU2F2ZUZpbGVGb3JtYXQiPjwvYT5GdW5jdGlvbjogaHRtbFNhdmVGaWxlRm9ybWF0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxTYXZlRmlsZUZvcm1hdAkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBmb3JtYXQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIEhUTUwgZG9jdW1lbnQgdG8gYSBmaWxlIHVzaW5nIGEgZ2l2ZW4gZW5jb2RpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJodG1sU2V0TWV0YUVuY29kaW5nIiBpZD0iaHRtbFNldE1ldGFFbmNvZGluZyI+PC9hPkZ1bmN0aW9uOiBodG1sU2V0TWV0YUVuY29kaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWh0bWxTZXRNZXRhRW5jb2RpbmcJCSg8YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxEb2NQdHIiPmh0bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZW5jb2RpbmcpPGJyIC8+Cis8L3ByZT48cD5TZXRzIHRoZSBjdXJyZW50IGVuY29kaW5nIGluIHRoZSBNZXRhIHRhZ3MgTk9URTogdGhpcyB3aWxsIG5vdCBjaGFuZ2UgdGhlIGRvY3VtZW50IGNvbnRlbnQgZW5jb2RpbmcsIGp1c3QgdGhlIE1FVEEgZmxhZyBhc3NvY2lhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtU0FYLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1TQVguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjFiODgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtU0FYLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBTQVggZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSBTQVggZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1IVE1MdHJlZS5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLVNBWDIuaHRtbCI+U0FYMjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1TQVgyLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxoMiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjpyZWQ7dGV4dC1hbGlnbjpjZW50ZXIiPlRoaXMgbW9kdWxlIGlzIGRlcHJlY2F0ZWQ8L2gyPjxwPkRFUFJFQ0FURUQgc2V0IG9mIFNBWCB2ZXJzaW9uIDEgaW50ZXJmYWNlcyB1c2VkIHRvIGJ1aWxkIHRoZSBET00gdHJlZS4gPC9wPjxkaXYgY2xhc3M9ImRlcHJlY2F0ZWQiPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2NvbW1lbnQiPmNvbW1lbnQ8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjY2hlY2tOYW1lc3BhY2UiPmNoZWNrTmFtZXNwYWNlPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2UpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiNnZXRDb2x1bW5OdW1iZXIiPmdldENvbHVtbk51bWJlcjwvYT4JCQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNlbnRpdHlEZWNsIj5lbnRpdHlEZWNsPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBpbnQgdHlwZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CTxhIGhyZWY9IiNnZXROYW1lc3BhY2UiPmdldE5hbWVzcGFjZTwvYT4JCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3NldERvY3VtZW50TG9jYXRvciI+c2V0RG9jdW1lbnRMb2NhdG9yPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYTG9jYXRvclB0ciI+eG1sU0FYTG9jYXRvclB0cjwvYT4gbG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2luaXR4bWxEZWZhdWx0U0FYSGFuZGxlciI+aW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPiAqIGhkbHIsIDxiciAvPgkJCQkJIGludCB3YXJuaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2lnbm9yYWJsZVdoaXRlc3BhY2UiPmlnbm9yYWJsZVdoaXRlc3BhY2U8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiNoYXNFeHRlcm5hbFN1YnNldCI+aGFzRXh0ZXJuYWxTdWJzZXQ8L2E+CQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN1bnBhcnNlZEVudGl0eURlY2wiPnVucGFyc2VkRW50aXR5RGVjbDwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5vdGF0aW9uTmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNnbG9iYWxOYW1lc3BhY2UiPmdsb2JhbE5hbWVzcGFjZTwvYT4JCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjaGFzSW50ZXJuYWxTdWJzZXQiPmhhc0ludGVybmFsU3Vic2V0PC9hPgkJKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjbm90YXRpb25EZWNsIj5ub3RhdGlvbkRlY2w8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjZ2V0U3lzdGVtSWQiPmdldFN5c3RlbUlkPC9hPgkJKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjZXh0ZXJuYWxTdWJzZXQiPmV4dGVybmFsU3Vic2V0PC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI3Jlc29sdmVFbnRpdHkiPnJlc29sdmVFbnRpdHk8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjc3RhcnREb2N1bWVudCI+c3RhcnREb2N1bWVudDwvYT4JCQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNzZXROYW1lc3BhY2UiPnNldE5hbWVzcGFjZTwvYT4JCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNjZGF0YUJsb2NrIj5jZGF0YUJsb2NrPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjZ2V0UHVibGljSWQiPmdldFB1YmxpY0lkPC9hPgkJKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlciI+aW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT4gKiBoZGxyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3Byb2Nlc3NpbmdJbnN0cnVjdGlvbiI+cHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNlbmRFbGVtZW50Ij5lbmRFbGVtZW50PC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI25hbWVzcGFjZURlY2wiPm5hbWVzcGFjZURlY2w8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGhyZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyIj5pbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPiAqIGhkbHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JPGEgaHJlZj0iI2dldEVudGl0eSI+Z2V0RW50aXR5PC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4JCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjZWxlbWVudERlY2wiPmVsZW1lbnREZWNsPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBpbnQgdHlwZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGNvbnRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjc3RhcnRFbGVtZW50Ij5zdGFydEVsZW1lbnQ8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjZ2V0UGFyYW1ldGVyRW50aXR5Ij5nZXRQYXJhbWV0ZXJFbnRpdHk8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2F0dHJpYnV0ZURlY2wiPmF0dHJpYnV0ZURlY2w8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVsZW0sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIgLz4JCQkJCSBpbnQgdHlwZSwgPGJyIC8+CQkJCQkgaW50IGRlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGVmYXVsdFZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gdHJlZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2lzU3RhbmRhbG9uZSI+aXNTdGFuZGFsb25lPC9hPgkJCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI2ludGVybmFsU3Vic2V0Ij5pbnRlcm5hbFN1YnNldDwvYT4JCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjZW5kRG9jdW1lbnQiPmVuZERvY3VtZW50PC9hPgkJCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjZ2V0TGluZU51bWJlciI+Z2V0TGluZU51bWJlcjwvYT4JCQkodm9pZCAqIGN0eCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iY29tbWVudCIgaWQ9ImNvbW1lbnQiPjwvYT5GdW5jdGlvbjogY29tbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJY29tbWVudAkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPkEgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+IGhhcyBiZWVuIHBhcnNlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJDb21tZW50KCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+IGNvbnRlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJjaGVja05hbWVzcGFjZSIgaWQ9ImNoZWNrTmFtZXNwYWNlIj48L2E+RnVuY3Rpb246IGNoZWNrTmFtZXNwYWNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWNoZWNrTmFtZXNwYWNlCQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHRoYXQgdGhlIGN1cnJlbnQgZWxlbWVudCBuYW1lc3BhY2UgaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSByZWFkIHVwb24gcGFyc2luZy4gREVQUkVDQVRFRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHRvIGNoZWNrIGFnYWluc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImdldENvbHVtbk51bWJlciIgaWQ9ImdldENvbHVtbk51bWJlciI+PC9hPkZ1bmN0aW9uOiBnZXRDb2x1bW5OdW1iZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJZ2V0Q29sdW1uTnVtYmVyCQkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBjdXJyZW50IHBhcnNpbmcgcG9pbnQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyR2V0Q29sdW1uTnVtYmVyKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImVudGl0eURlY2wiIGlkPSJlbnRpdHlEZWNsIj48L2E+RnVuY3Rpb246IGVudGl0eURlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWVudGl0eURlY2wJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkVudGl0eURlY2woKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdmFsdWUgKHdpdGhvdXQgcHJvY2Vzc2luZykuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iYXR0cmlidXRlIiBpZD0iYXR0cmlidXRlIj48L2E+RnVuY3Rpb246IGF0dHJpYnV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJYXR0cmlidXRlCQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPkhhbmRsZSBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHRoYXQgaGFzIGJlZW4gcmVhZCBieSB0aGUgcGFyc2VyLiBUaGUgZGVmYXVsdCBoYW5kbGluZyBpcyB0byBjb252ZXJ0IHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGludG8gYW4gRE9NIHN1YnRyZWUgYW5kIHBhc3QgaXQgaW4gYSBuZXcgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyIj54bWxBdHRyPC9hPiBlbGVtZW50IGFkZGVkIHRvIHRoZSBlbGVtZW50LiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkF0dHJpYnV0ZSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdWxsbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImdldE5hbWVzcGFjZSIgaWQ9ImdldE5hbWVzcGFjZSI+PC9hPkZ1bmN0aW9uOiBnZXROYW1lc3BhY2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JZ2V0TmFtZXNwYWNlCQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgY3VycmVudCBlbGVtZW50IG5hbWVzcGFjZS4gREVQUkVDQVRFRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBvciBOVUxMIGlmIG5vbmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJzZXREb2N1bWVudExvY2F0b3IiIGlkPSJzZXREb2N1bWVudExvY2F0b3IiPjwvYT5GdW5jdGlvbjogc2V0RG9jdW1lbnRMb2NhdG9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlzZXREb2N1bWVudExvY2F0b3IJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+IGxvYyk8YnIgLz4KKzwvcHJlPjxwPlJlY2VpdmUgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXQgc3RhcnR1cCwgYWN0dWFsbHkgPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZWZhdWx0U0FYTG9jYXRvciI+eG1sRGVmYXVsdFNBWExvY2F0b3I8L2E+IEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuIERFUFJFQ0FURUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBTQVggTG9jYXRvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImluaXR4bWxEZWZhdWx0U0FYSGFuZGxlciIgaWQ9ImluaXR4bWxEZWZhdWx0U0FYSGFuZGxlciI+PC9hPkZ1bmN0aW9uOiBpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPiAqIGhkbHIsIDxiciAvPgkJCQkJIGludCB3YXJuaW5nKTxiciAvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBYTUwgU0FYIHZlcnNpb24gMSBoYW5kbGVyIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyKCkgZm9yIHRoZSBuZXcgU0FYMiBibG9ja3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZGxyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm5pbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZsYWcgaWYgbm9uLXplcm8gc2V0cyB0aGUgaGFuZGxlciB3YXJuaW5nIHByb2NlZHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imlnbm9yYWJsZVdoaXRlc3BhY2UiIGlkPSJpZ25vcmFibGVXaGl0ZXNwYWNlIj48L2E+RnVuY3Rpb246IGlnbm9yYWJsZVdoaXRlc3BhY2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWlnbm9yYWJsZVdoaXRlc3BhY2UJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPnJlY2VpdmluZyBzb21lIGlnbm9yYWJsZSB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBwYXJzZXIuIFVOVVNFRDogYnkgZGVmYXVsdCB0aGUgRE9NIGJ1aWxkaW5nIHdpbGwgdXNlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imhhc0V4dGVybmFsU3Vic2V0IiBpZD0iaGFzRXh0ZXJuYWxTdWJzZXQiPjwvYT5GdW5jdGlvbjogaGFzRXh0ZXJuYWxTdWJzZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaGFzRXh0ZXJuYWxTdWJzZXQJCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+RG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBleHRlcm5hbCBzdWJzZXQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ1bnBhcnNlZEVudGl0eURlY2wiIGlkPSJ1bnBhcnNlZEVudGl0eURlY2wiPjwvYT5GdW5jdGlvbjogdW5wYXJzZWRFbnRpdHlEZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl1bnBhcnNlZEVudGl0eURlY2wJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5vdGF0aW9uTmFtZSk8YnIgLz4KKzwvcHJlPjxwPldoYXQgdG8gZG8gd2hlbiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb24gaXMgcGFyc2VkIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBuYW1lIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vdGF0aW9uTmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iZ2xvYmFsTmFtZXNwYWNlIiBpZD0iZ2xvYmFsTmFtZXNwYWNlIj48L2E+RnVuY3Rpb246IGdsb2JhbE5hbWVzcGFjZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZ2xvYmFsTmFtZXNwYWNlCQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGhyZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk8YnIgLz4KKzwvcHJlPjxwPkFuIG9sZCBnbG9iYWwgbmFtZXNwYWNlIGhhcyBiZWVuIHBhcnNlZC4gREVQUkVDQVRFRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aHJlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIFVSTjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imhhc0ludGVybmFsU3Vic2V0IiBpZD0iaGFzSW50ZXJuYWxTdWJzZXQiPjwvYT5GdW5jdGlvbjogaGFzSW50ZXJuYWxTdWJzZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaGFzSW50ZXJuYWxTdWJzZXQJCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+RG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBpbnRlcm5hbCBzdWJzZXQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJyZWZlcmVuY2UiIGlkPSJyZWZlcmVuY2UiPjwvYT5GdW5jdGlvbjogcmVmZXJlbmNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlyZWZlcmVuY2UJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPmNhbGxlZCB3aGVuIGFuIGVudGl0eSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGlzIGRldGVjdGVkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMlJlZmVyZW5jZSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJub3RhdGlvbkRlY2wiIGlkPSJub3RhdGlvbkRlY2wiPjwvYT5GdW5jdGlvbjogbm90YXRpb25EZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlub3RhdGlvbkRlY2wJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkKTxiciAvPgorPC9wcmU+PHA+V2hhdCB0byBkbyB3aGVuIGEgbm90YXRpb24gZGVjbGFyYXRpb24gaGFzIGJlZW4gcGFyc2VkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMk5vdGF0aW9uRGVjbCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgbmFtZSBvZiB0aGUgbm90YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJnZXRTeXN0ZW1JZCIgaWQ9ImdldFN5c3RlbUlkIj48L2E+RnVuY3Rpb246IGdldFN5c3RlbUlkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJZ2V0U3lzdGVtSWQJCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHN5c3RlbSBJRCwgYmFzaWNhbGx5IFVSTCBvciBmaWxlbmFtZSBlLmcuIGh0dHA6Ly93d3cuc2dtbHNvdXJjZS5jb20vZHRkcy9tZW1vLmR0ZCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldFN5c3RlbUlkKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJleHRlcm5hbFN1YnNldCIgaWQ9ImV4dGVybmFsU3Vic2V0Ij48L2E+RnVuY3Rpb246IGV4dGVybmFsU3Vic2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlleHRlcm5hbFN1YnNldAkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8YnIgLz4KKzwvcHJlPjxwPkNhbGxiYWNrIG9uIGV4dGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFeHRlcm5hbFN1YnNldCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcm9vdCBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBJRDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTWVNURU0gSUQgKGUuZy4gZmlsZW5hbWUgb3IgVVJMKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InJlc29sdmVFbnRpdHkiIGlkPSJyZXNvbHZlRW50aXR5Ij48L2E+RnVuY3Rpb246IHJlc29sdmVFbnRpdHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JcmVzb2x2ZUVudGl0eQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkKTxiciAvPgorPC9wcmU+PHA+VGhlIGVudGl0eSBsb2FkZXIsIHRvIGNvbnRyb2wgdGhlIGxvYWRpbmcgb2YgZXh0ZXJuYWwgZW50aXRpZXMsIHRoZSBhcHBsaWNhdGlvbiBjYW4gZWl0aGVyOiAtIG92ZXJyaWRlIHRoaXMgcmVzb2x2ZUVudGl0eSgpIGNhbGxiYWNrIGluIHRoZSBTQVggYmxvY2sgLSBvciBiZXR0ZXIgdXNlIHRoZSB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpIGZ1bmN0aW9uIHRvIHNldCB1cCBpdCdzIG93biBlbnRpdHkgcmVzb2x1dGlvbiByb3V0aW5lIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyUmVzb2x2ZUVudGl0eSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlmIGlubGluZWQgb3IgTlVMTCBmb3IgRE9NIGJlaGF2aW91ci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJzdGFydERvY3VtZW50IiBpZD0ic3RhcnREb2N1bWVudCI+PC9hPkZ1bmN0aW9uOiBzdGFydERvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlzdGFydERvY3VtZW50CQkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgc3RhcnQgYmVpbmcgcHJvY2Vzc2VkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMlN0YXJ0RG9jdW1lbnQoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InNldE5hbWVzcGFjZSIgaWQ9InNldE5hbWVzcGFjZSI+PC9hPkZ1bmN0aW9uOiBzZXROYW1lc3BhY2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXNldE5hbWVzcGFjZQkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBjdXJyZW50IGVsZW1lbnQgbmFtZXNwYWNlLiBERVBSRUNBVEVEPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImNkYXRhQmxvY2siIGlkPSJjZGF0YUJsb2NrIj48L2E+RnVuY3Rpb246IGNkYXRhQmxvY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWNkYXRhQmxvY2sJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiBhIHBjZGF0YSBibG9jayBoYXMgYmVlbiBwYXJzZWQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJDRGF0YUJsb2NrKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcGNkYXRhIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJsb2NrIGxlbmd0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImdldFB1YmxpY0lkIiBpZD0iZ2V0UHVibGljSWQiPjwvYT5GdW5jdGlvbjogZ2V0UHVibGljSWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglnZXRQdWJsaWNJZAkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgcHVibGljIElEIGUuZy4gIi0vL1NHTUxTT1VSQ0UvL0RURCBERU1PLy9FTiIgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRQdWJsaWNJZCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlciIgaWQ9ImluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXIiPjwvYT5GdW5jdGlvbjogaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPiAqIGhkbHIpPGJyIC8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IEhUTUwgU0FYIHZlcnNpb24gMSBoYW5kbGVyIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcigpIGZvciB0aGUgbmV3IFNBWDIgYmxvY2tzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGRscjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0icHJvY2Vzc2luZ0luc3RydWN0aW9uIiBpZD0icHJvY2Vzc2luZ0luc3RydWN0aW9uIj48L2E+RnVuY3Rpb246IHByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJcHJvY2Vzc2luZ0luc3RydWN0aW9uCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdGFyZ2V0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+QSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGhhcyBiZWVuIHBhcnNlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQSSBkYXRhJ3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJlbmRFbGVtZW50IiBpZD0iZW5kRWxlbWVudCI+PC9hPkZ1bmN0aW9uOiBlbmRFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAllbmRFbGVtZW50CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZW5kIG9mIGFuIGVsZW1lbnQgaGFzIGJlZW4gZGV0ZWN0ZWQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyRW5kRWxlbWVudCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ibmFtZXNwYWNlRGVjbCIgaWQ9Im5hbWVzcGFjZURlY2wiPjwvYT5GdW5jdGlvbjogbmFtZXNwYWNlRGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJbmFtZXNwYWNlRGVjbAkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBocmVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgpPGJyIC8+Cis8L3ByZT48cD5BIG5hbWVzcGFjZSBoYXMgYmVlbiBwYXJzZWQuIERFUFJFQ0FURUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhyZWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCBVUk48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyIiBpZD0iaW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlciI+PC9hPkZ1bmN0aW9uOiBpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAlpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyCSg8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sU0FYSGFuZGxlclYxIj54bWxTQVhIYW5kbGVyVjE8L2E+ICogaGRscik8YnIgLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgRG9jQm9vayBTQVggdmVyc2lvbiAxIGhhbmRsZXIgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyKCkgZm9yIHRoZSBuZXcgU0FYMiBibG9ja3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZGxyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJnZXRFbnRpdHkiIGlkPSJnZXRFbnRpdHkiPjwvYT5GdW5jdGlvbjogZ2V0RW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JZ2V0RW50aXR5CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPkdldCBhbiBlbnRpdHkgYnkgbmFtZSBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldEVudGl0eSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBpZiBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJjaGFyYWN0ZXJzIiBpZD0iY2hhcmFjdGVycyI+PC9hPkZ1bmN0aW9uOiBjaGFyYWN0ZXJzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAljaGFyYWN0ZXJzCQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNoLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+cmVjZWl2aW5nIHNvbWUgY2hhcnMgZnJvbSB0aGUgcGFyc2VyLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkNoYXJhY3RlcnMoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImVsZW1lbnREZWNsIiBpZD0iZWxlbWVudERlY2wiPjwvYT5GdW5jdGlvbjogZWxlbWVudERlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWVsZW1lbnREZWNsCQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCB0eXBlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkFuIGVsZW1lbnQgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFbGVtZW50RGVjbCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB2YWx1ZSB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ic3RhcnRFbGVtZW50IiBpZD0ic3RhcnRFbGVtZW50Ij48L2E+RnVuY3Rpb246IHN0YXJ0RWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJc3RhcnRFbGVtZW50CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZ1bGxuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cyk8YnIgLz4KKzwvcHJlPjxwPmNhbGxlZCB3aGVuIGFuIG9wZW5pbmcgdGFnIGhhcyBiZWVuIHByb2Nlc3NlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJTdGFydEVsZW1lbnQoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVsbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbGVtZW50IG5hbWUsIGluY2x1ZGluZyBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBhcnJheSBvZiBuYW1lL3ZhbHVlIGF0dHJpYnV0ZXMgcGFpcnMsIE5VTEwgdGVybWluYXRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImdldFBhcmFtZXRlckVudGl0eSIgaWQ9ImdldFBhcmFtZXRlckVudGl0eSI+PC9hPkZ1bmN0aW9uOiBnZXRQYXJhbWV0ZXJFbnRpdHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPglnZXRQYXJhbWV0ZXJFbnRpdHkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5HZXQgYSBwYXJhbWV0ZXIgZW50aXR5IGJ5IG5hbWUgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gaWYgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iYXR0cmlidXRlRGVjbCIgaWQ9ImF0dHJpYnV0ZURlY2wiPjwvYT5GdW5jdGlvbjogYXR0cmlidXRlRGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJYXR0cmlidXRlRGVjbAkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGludCBkZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRlZmF1bHRWYWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IHRyZWUpPGJyIC8+Cis8L3ByZT48cD5BbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyQXR0cmlidXRlRGVjbCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVsbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgZGVmYXVsdCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmYXVsdFZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHJlZSBvZiBlbnVtZXJhdGVkIHZhbHVlIHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9ImlzU3RhbmRhbG9uZSIgaWQ9ImlzU3RhbmRhbG9uZSI+PC9hPkZ1bmN0aW9uOiBpc1N0YW5kYWxvbmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaXNTdGFuZGFsb25lCQkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5JcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lID8gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJc1N0YW5kYWxvbmUoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iaW50ZXJuYWxTdWJzZXQiIGlkPSJpbnRlcm5hbFN1YnNldCI+PC9hPkZ1bmN0aW9uOiBpbnRlcm5hbFN1YnNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaW50ZXJuYWxTdWJzZXQJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyIC8+Cis8L3ByZT48cD5DYWxsYmFjayBvbiBpbnRlcm5hbCBzdWJzZXQgZGVjbGFyYXRpb24uIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySW50ZXJuYWxTdWJzZXQoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJvb3QgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5FeHRlcm5hbElEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0ZXJuYWwgSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU1lTVEVNIElEIChlLmcuIGZpbGVuYW1lIG9yIFVSTCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJlbmREb2N1bWVudCIgaWQ9ImVuZERvY3VtZW50Ij48L2E+RnVuY3Rpb246IGVuZERvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAllbmREb2N1bWVudAkJCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+Y2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFbmREb2N1bWVudCgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0iZ2V0TGluZU51bWJlciIgaWQ9ImdldExpbmVOdW1iZXIiPjwvYT5GdW5jdGlvbjogZ2V0TGluZU51bWJlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAlnZXRMaW5lTnVtYmVyCQkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50LiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldExpbmVOdW1iZXIoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLVNBWDIuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLVNBWDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzhkMGJmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtU0FYMi5odG1sCkBAIC0wLDAgKzEsMTI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgU0FYMiBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIFNBWDIgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1TQVguaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLVNBWC5odG1sIj5TQVg8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+YzE0bjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1jMTRuLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnRob3NlIGFyZSB0aGUgZGVmYXVsdCBTQVgyIGludGVyZmFjZXMgdXNlZCBieSB0aGUgbGlicmFyeSB3aGVuIGJ1aWxkaW5nIERPTSB0cmVlLiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCI+ZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCI+aHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ij54bWxEZWZhdWx0U0FYSGFuZGxlckluaXQ8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJBdHRyaWJ1dGVEZWNsIj54bWxTQVgyQXR0cmlidXRlRGVjbDwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGludCBkZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRlZmF1bHRWYWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IHRyZWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU0FYMkNEYXRhQmxvY2siPnhtbFNBWDJDRGF0YUJsb2NrPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJDaGFyYWN0ZXJzIj54bWxTQVgyQ2hhcmFjdGVyczwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTQVgyQ29tbWVudCI+eG1sU0FYMkNvbW1lbnQ8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJFbGVtZW50RGVjbCI+eG1sU0FYMkVsZW1lbnREZWNsPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCB0eXBlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTQVgyRW5kRG9jdW1lbnQiPnhtbFNBWDJFbmREb2N1bWVudDwvYT4JCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJFbmRFbGVtZW50Ij54bWxTQVgyRW5kRWxlbWVudDwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJFbmRFbGVtZW50TnMiPnhtbFNBWDJFbmRFbGVtZW50TnM8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTQVgyRW50aXR5RGVjbCI+eG1sU0FYMkVudGl0eURlY2w8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTQVgyRXh0ZXJuYWxTdWJzZXQiPnhtbFNBWDJFeHRlcm5hbFN1YnNldDwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNBWDJHZXRDb2x1bW5OdW1iZXIiPnhtbFNBWDJHZXRDb2x1bW5OdW1iZXI8L2E+CQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYMkdldEVudGl0eSI+eG1sU0FYMkdldEVudGl0eTwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTQVgyR2V0TGluZU51bWJlciI+eG1sU0FYMkdldExpbmVOdW1iZXI8L2E+CQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSI+eG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTQVgyR2V0UHVibGljSWQiPnhtbFNBWDJHZXRQdWJsaWNJZDwvYT4JKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFNBWDJHZXRTeXN0ZW1JZCI+eG1sU0FYMkdldFN5c3RlbUlkPC9hPgkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNBWDJIYXNFeHRlcm5hbFN1YnNldCI+eG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0PC9hPgkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNBWDJIYXNJbnRlcm5hbFN1YnNldCI+eG1sU0FYMkhhc0ludGVybmFsU3Vic2V0PC9hPgkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSI+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPiAqIGhkbHIsIDxiciAvPgkJCQkJIGludCB3YXJuaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiBoZGxyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyIj54bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiBoZGxyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJJbnRlcm5hbFN1YnNldCI+eG1sU0FYMkludGVybmFsU3Vic2V0PC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU0FYMklzU3RhbmRhbG9uZSI+eG1sU0FYMklzU3RhbmRhbG9uZTwvYT4JCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJOb3RhdGlvbkRlY2wiPnhtbFNBWDJOb3RhdGlvbkRlY2w8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iPnhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU0FYMlJlZmVyZW5jZSI+eG1sU0FYMlJlZmVyZW5jZTwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYMlJlc29sdmVFbnRpdHkiPnhtbFNBWDJSZXNvbHZlRW50aXR5PC9hPgkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciI+eG1sU0FYMlNldERvY3VtZW50TG9jYXRvcjwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYTG9jYXRvclB0ciI+eG1sU0FYTG9jYXRvclB0cjwvYT4gbG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJTdGFydERvY3VtZW50Ij54bWxTQVgyU3RhcnREb2N1bWVudDwvYT4JCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJTdGFydEVsZW1lbnQiPnhtbFNBWDJTdGFydEVsZW1lbnQ8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZnVsbG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBhdHRzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJTdGFydEVsZW1lbnROcyI+eG1sU0FYMlN0YXJ0RWxlbWVudE5zPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkksIDxiciAvPgkJCQkJIGludCBuYl9uYW1lc3BhY2VzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbmFtZXNwYWNlcywgPGJyIC8+CQkJCQkgaW50IG5iX2F0dHJpYnV0ZXMsIDxiciAvPgkJCQkJIGludCBuYl9kZWZhdWx0ZWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBhdHRyaWJ1dGVzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNBWDJVbnBhcnNlZEVudGl0eURlY2wiPnhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2w8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5vdGF0aW9uTmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNBWERlZmF1bHRWZXJzaW9uIj54bWxTQVhEZWZhdWx0VmVyc2lvbjwvYT4JCShpbnQgdmVyc2lvbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNBWFZlcnNpb24iPnhtbFNBWFZlcnNpb248L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiBoZGxyLCA8YnIgLz4JCQkJCSBpbnQgdmVyc2lvbik8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCIgaWQ9ImRvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQiPjwvYT5GdW5jdGlvbjogZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdAkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYIGhhbmRsZXI8L3A+Cis8aDM+PGEgbmFtZT0iaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCIgaWQ9Imh0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQiPjwvYT5GdW5jdGlvbjogaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdAkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYIGhhbmRsZXI8L3A+Cis8aDM+PGEgbmFtZT0ieG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0IiBpZD0ieG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0Ij48L2E+RnVuY3Rpb246IHhtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0CSh2b2lkKTxiciAvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBTQVgyIGhhbmRsZXI8L3A+Cis8aDM+PGEgbmFtZT0ieG1sU0FYMkF0dHJpYnV0ZURlY2wiIGlkPSJ4bWxTQVgyQXR0cmlidXRlRGVjbCI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyQXR0cmlidXRlRGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkF0dHJpYnV0ZURlY2wJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGludCBkZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRlZmF1bHRWYWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IHRyZWUpPGJyIC8+Cis8L3ByZT48cD5BbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVsbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgZGVmYXVsdCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmYXVsdFZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHJlZSBvZiBlbnVtZXJhdGVkIHZhbHVlIHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJDRGF0YUJsb2NrIiBpZD0ieG1sU0FYMkNEYXRhQmxvY2siPjwvYT5GdW5jdGlvbjogeG1sU0FYMkNEYXRhQmxvY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJDRGF0YUJsb2NrCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiBhIHBjZGF0YSBibG9jayBoYXMgYmVlbiBwYXJzZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcGNkYXRhIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJsb2NrIGxlbmd0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJDaGFyYWN0ZXJzIiBpZD0ieG1sU0FYMkNoYXJhY3RlcnMiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkNoYXJhY3RlcnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJDaGFyYWN0ZXJzCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5yZWNlaXZpbmcgc29tZSBjaGFycyBmcm9tIHRoZSBwYXJzZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMkNvbW1lbnQiIGlkPSJ4bWxTQVgyQ29tbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyQ29tbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkNvbW1lbnQJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5BIDxhIGhyZWY9ImxpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkNvbW1lbnQiPnhtbFNBWDJDb21tZW50PC9hPiBoYXMgYmVlbiBwYXJzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVgyLmh0bWwjeG1sU0FYMkNvbW1lbnQiPnhtbFNBWDJDb21tZW50PC9hPiBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMkVsZW1lbnREZWNsIiBpZD0ieG1sU0FYMkVsZW1lbnREZWNsIj48L2E+RnVuY3Rpb246IHhtbFNBWDJFbGVtZW50RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkVsZW1lbnREZWNsCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+QW4gZWxlbWVudCBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgdmFsdWUgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJFbmREb2N1bWVudCIgaWQ9InhtbFNBWDJFbmREb2N1bWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyRW5kRG9jdW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJFbmREb2N1bWVudAkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJFbmRFbGVtZW50IiBpZD0ieG1sU0FYMkVuZEVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkVuZEVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJFbmRFbGVtZW50CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPmNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgyRW5kRWxlbWVudE5zIiBpZD0ieG1sU0FYMkVuZEVsZW1lbnROcyI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyRW5kRWxlbWVudE5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyRW5kRWxlbWVudE5zCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk8YnIgLz4KKzwvcHJlPjxwPlNBWDIgY2FsbGJhY2sgd2hlbiBhbiBlbGVtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9mIHRoZSBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJFbnRpdHlEZWNsIiBpZD0ieG1sU0FYMkVudGl0eURlY2wiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkVudGl0eURlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJFbnRpdHlEZWNsCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdmFsdWUgKHdpdGhvdXQgcHJvY2Vzc2luZykuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMkV4dGVybmFsU3Vic2V0IiBpZD0ieG1sU0FYMkV4dGVybmFsU3Vic2V0Ij48L2E+RnVuY3Rpb246IHhtbFNBWDJFeHRlcm5hbFN1YnNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkV4dGVybmFsU3Vic2V0CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyIC8+Cis8L3ByZT48cD5DYWxsYmFjayBvbiBleHRlcm5hbCBzdWJzZXQgZGVjbGFyYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcm9vdCBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBJRDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTWVNURU0gSUQgKGUuZy4gZmlsZW5hbWUgb3IgVVJMKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJHZXRDb2x1bW5OdW1iZXIiIGlkPSJ4bWxTQVgyR2V0Q29sdW1uTnVtYmVyIj48L2E+RnVuY3Rpb246IHhtbFNBWDJHZXRDb2x1bW5OdW1iZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU0FYMkdldENvbHVtbk51bWJlcgkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBjdXJyZW50IHBhcnNpbmcgcG9pbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgyR2V0RW50aXR5IiBpZD0ieG1sU0FYMkdldEVudGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyR2V0RW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sU0FYMkdldEVudGl0eQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPkdldCBhbiBlbnRpdHkgYnkgbmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gaWYgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldExpbmVOdW1iZXIiIGlkPSJ4bWxTQVgyR2V0TGluZU51bWJlciI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyR2V0TGluZU51bWJlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTQVgyR2V0TGluZU51bWJlcgkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSIgaWQ9InhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CXhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+R2V0IGEgcGFyYW1ldGVyIGVudGl0eSBieSBuYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBpZiBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgyR2V0UHVibGljSWQiIGlkPSJ4bWxTQVgyR2V0UHVibGljSWQiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkdldFB1YmxpY0lkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU0FYMkdldFB1YmxpY0lkCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHB1YmxpYyBJRCBlLmcuICItLy9TR01MU09VUkNFLy9EVEQgREVNTy8vRU4iPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMkdldFN5c3RlbUlkIiBpZD0ieG1sU0FYMkdldFN5c3RlbUlkIj48L2E+RnVuY3Rpb246IHhtbFNBWDJHZXRTeXN0ZW1JZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFNBWDJHZXRTeXN0ZW1JZAkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBzeXN0ZW0gSUQsIGJhc2ljYWxseSBVUkwgb3IgZmlsZW5hbWUgZS5nLiBodHRwOi8vd3d3LnNnbWxzb3VyY2UuY29tL2R0ZHMvbWVtby5kdGQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQiIGlkPSJ4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldAkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQiIGlkPSJ4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldAkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSIgaWQ9InhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlIj48L2E+RnVuY3Rpb246IHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5yZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSA8YSBocmVmPSJsaWJ4bWwtU0FYMi5odG1sI3htbFNBWDJDaGFyYWN0ZXJzIj54bWxTQVgyQ2hhcmFjdGVyczwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyIiBpZD0ieG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+ICogaGRsciwgPGJyIC8+CQkJCQkgaW50IHdhcm5pbmcpPGJyIC8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IFhNTCBTQVgyIGhhbmRsZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZGxyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm5pbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZsYWcgaWYgbm9uLXplcm8gc2V0cyB0aGUgaGFuZGxlciB3YXJuaW5nIHByb2NlZHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyIiBpZD0ieG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIiPjwvYT5GdW5jdGlvbjogeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+ICogaGRscik8YnIgLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgRG9jQm9vayBTQVgyIGhhbmRsZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZGxyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlciIgaWQ9InhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyIj48L2E+RnVuY3Rpb246IHhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyIj54bWxTQVhIYW5kbGVyPC9hPiAqIGhkbHIpPGJyIC8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IEhUTUwgU0FYMiBoYW5kbGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGRscjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMkludGVybmFsU3Vic2V0IiBpZD0ieG1sU0FYMkludGVybmFsU3Vic2V0Ij48L2E+RnVuY3Rpb246IHhtbFNBWDJJbnRlcm5hbFN1YnNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMkludGVybmFsU3Vic2V0CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyIC8+Cis8L3ByZT48cD5DYWxsYmFjayBvbiBpbnRlcm5hbCBzdWJzZXQgZGVjbGFyYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcm9vdCBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBJRDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTWVNURU0gSUQgKGUuZy4gZmlsZW5hbWUgb3IgVVJMKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJJc1N0YW5kYWxvbmUiIGlkPSJ4bWxTQVgySXNTdGFuZGFsb25lIj48L2E+RnVuY3Rpb246IHhtbFNBWDJJc1N0YW5kYWxvbmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU0FYMklzU3RhbmRhbG9uZQkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5JcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lID88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJOb3RhdGlvbkRlY2wiIGlkPSJ4bWxTQVgyTm90YXRpb25EZWNsIj48L2E+RnVuY3Rpb246IHhtbFNBWDJOb3RhdGlvbkRlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJOb3RhdGlvbkRlY2wJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpPGJyIC8+Cis8L3ByZT48cD5XaGF0IHRvIGRvIHdoZW4gYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBoYXMgYmVlbiBwYXJzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgbmFtZSBvZiB0aGUgbm90YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uIiBpZD0ieG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5BIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaGFzIGJlZW4gcGFyc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQSSBkYXRhJ3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgyUmVmZXJlbmNlIiBpZD0ieG1sU0FYMlJlZmVyZW5jZSI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyUmVmZXJlbmNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyUmVmZXJlbmNlCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPmNhbGxlZCB3aGVuIGFuIGVudGl0eSA8YSBocmVmPSJsaWJ4bWwtU0FYMi5odG1sI3htbFNBWDJSZWZlcmVuY2UiPnhtbFNBWDJSZWZlcmVuY2U8L2E+IGlzIGRldGVjdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMlJlc29sdmVFbnRpdHkiIGlkPSJ4bWxTQVgyUmVzb2x2ZUVudGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyUmVzb2x2ZUVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxTQVgyUmVzb2x2ZUVudGl0eQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpPGJyIC8+Cis8L3ByZT48cD5UaGUgZW50aXR5IGxvYWRlciwgdG8gY29udHJvbCB0aGUgbG9hZGluZyBvZiBleHRlcm5hbCBlbnRpdGllcywgdGhlIGFwcGxpY2F0aW9uIGNhbiBlaXRoZXI6IC0gb3ZlcnJpZGUgdGhpcyB4bWxTQVgyUmVzb2x2ZUVudGl0eSgpIGNhbGxiYWNrIGluIHRoZSBTQVggYmxvY2sgLSBvciBiZXR0ZXIgdXNlIHRoZSB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpIGZ1bmN0aW9uIHRvIHNldCB1cCBpdCdzIG93biBlbnRpdHkgcmVzb2x1dGlvbiByb3V0aW5lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlmIGlubGluZWQgb3IgTlVMTCBmb3IgRE9NIGJlaGF2aW91ci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yIiBpZD0ieG1sU0FYMlNldERvY3VtZW50TG9jYXRvciI+PC9hPkZ1bmN0aW9uOiB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+IGxvYyk8YnIgLz4KKzwvcHJlPjxwPlJlY2VpdmUgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXQgc3RhcnR1cCwgYWN0dWFsbHkgPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZWZhdWx0U0FYTG9jYXRvciI+eG1sRGVmYXVsdFNBWExvY2F0b3I8L2E+IEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgU0FYIExvY2F0b3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVgyU3RhcnREb2N1bWVudCIgaWQ9InhtbFNBWDJTdGFydERvY3VtZW50Ij48L2E+RnVuY3Rpb246IHhtbFNBWDJTdGFydERvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTQVgyU3RhcnREb2N1bWVudAkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgc3RhcnQgYmVpbmcgcHJvY2Vzc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWDJTdGFydEVsZW1lbnQiIGlkPSJ4bWxTQVgyU3RhcnRFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFNBWDJTdGFydEVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNBWDJTdGFydEVsZW1lbnQJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmdWxsbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGF0dHMpPGJyIC8+Cis8L3ByZT48cD5jYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdWxsbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVsZW1lbnQgbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGFycmF5IG9mIG5hbWUvdmFsdWUgYXR0cmlidXRlcyBwYWlycywgTlVMTCB0ZXJtaW5hdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMlN0YXJ0RWxlbWVudE5zIiBpZD0ieG1sU0FYMlN0YXJ0RWxlbWVudE5zIj48L2E+RnVuY3Rpb246IHhtbFNBWDJTdGFydEVsZW1lbnROczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMlN0YXJ0RWxlbWVudE5zCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyIC8+CQkJCQkgaW50IG5iX25hbWVzcGFjZXMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzLCA8YnIgLz4JCQkJCSBpbnQgbmJfYXR0cmlidXRlcywgPGJyIC8+CQkJCQkgaW50IG5iX2RlZmF1bHRlZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGF0dHJpYnV0ZXMpPGJyIC8+Cis8L3ByZT48cD5TQVgyIGNhbGxiYWNrIHdoZW4gYW4gZWxlbWVudCBzdGFydCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQsIGFzIHdlbGwgYXMgdGhlIG5ldyBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIG9uIHRoZSBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bG9jYWxuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lc3BhY2UgbmFtZSBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iX25hbWVzcGFjZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBuYW1lc3BhY2UgZGVmaW5pdGlvbnMgb24gdGhhdCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lc3BhY2VzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiBwcmVmaXgvVVJJIHBhaXJzIG5hbWVzcGFjZSBkZWZpbml0aW9uczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJfYXR0cmlidXRlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIG9uIHRoYXQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJfZGVmYXVsdGVkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGRlZmF1bHRlZCBhdHRyaWJ1dGVzLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cmlidXRlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgKGxvY2FsbmFtZS9wcmVmaXgvVVJJL3ZhbHVlL2VuZCkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCIgaWQ9InhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2wiPjwvYT5GdW5jdGlvbjogeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbAkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBub3RhdGlvbk5hbWUpPGJyIC8+Cis8L3ByZT48cD5XaGF0IHRvIGRvIHdoZW4gYW4gdW5wYXJzZWQgZW50aXR5IGRlY2xhcmF0aW9uIGlzIHBhcnNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIG5hbWUgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm90YXRpb25OYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgbm90YXRpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVhEZWZhdWx0VmVyc2lvbiIgaWQ9InhtbFNBWERlZmF1bHRWZXJzaW9uIj48L2E+RnVuY3Rpb246IHhtbFNBWERlZmF1bHRWZXJzaW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNBWERlZmF1bHRWZXJzaW9uCQkoaW50IHZlcnNpb24pPGJyIC8+Cis8L3ByZT48cD5TZXQgdGhlIGRlZmF1bHQgdmVyc2lvbiBvZiBTQVggdXNlZCBnbG9iYWxseSBieSB0aGUgbGlicmFyeS4gQnkgZGVmYXVsdCwgZHVyaW5nIGluaXRpYWxpemF0aW9uIHRoZSBkZWZhdWx0IGlzIHNldCB0byAyLiBOb3RlIHRoYXQgaXQgaXMgZ2VuZXJhbGx5IGEgYmV0dGVyIGNvZGluZyBzdHlsZSB0byB1c2UgeG1sU0FYVmVyc2lvbigpIHRvIHNldCB1cCB0aGUgdmVyc2lvbiBleHBsaWNpdGx5IGZvciBhIGdpdmVuIHBhcnNpbmcgY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52ZXJzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmVyc2lvbiwgMSBvciAyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgdmFsdWUgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWFZlcnNpb24iIGlkPSJ4bWxTQVhWZXJzaW9uIj48L2E+RnVuY3Rpb246IHhtbFNBWFZlcnNpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU0FYVmVyc2lvbgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXIiPnhtbFNBWEhhbmRsZXI8L2E+ICogaGRsciwgPGJyIC8+CQkJCQkgaW50IHZlcnNpb24pPGJyIC8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IFhNTCBTQVggaGFuZGxlciBhY2NvcmRpbmcgdG8gdGhlIHZlcnNpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZGxyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZlcnNpb248L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2ZXJzaW9uLCAxIG9yIDI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1jMTRuLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1jMTRuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVmZjIyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWMxNG4uaHRtbApAQCAtMCwwICsxLDM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgYzE0biBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIGMxNG4gZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1TQVgyLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1TQVgyLmh0bWwiPlNBWDI8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnRoZSBjMTRuIG1vZHVsZXMgcHJvdmlkZXMgYSAgIkNhbm9uaWNhbCBYTUwiIGltcGxlbWVudGF0aW9uPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbEMxNE5Nb2RlIj54bWxDMTROTW9kZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEMxNE5Eb2NEdW1wTWVtb3J5Ij54bWxDMTRORG9jRHVtcE1lbW9yeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIgLz4JCQkJCSBpbnQgbW9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgPGJyIC8+CQkJCQkgaW50IHdpdGhfY29tbWVudHMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBkb2NfdHh0X3B0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEMxNE5Eb2NTYXZlIj54bWxDMTRORG9jU2F2ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyIC8+CQkJCQkgaW50IG1vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBpbmNsdXNpdmVfbnNfcHJlZml4ZXMsIDxiciAvPgkJCQkJIGludCB3aXRoX2NvbW1lbnRzLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGludCBjb21wcmVzc2lvbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEMxNE5Eb2NTYXZlVG8iPnhtbEMxNE5Eb2NTYXZlVG88L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyIC8+CQkJCQkgaW50IG1vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBpbmNsdXNpdmVfbnNfcHJlZml4ZXMsIDxiciAvPgkJCQkJIGludCB3aXRoX2NvbW1lbnRzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxDMTRORXhlY3V0ZSI+eG1sQzE0TkV4ZWN1dGU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT4gaXNfdmlzaWJsZV9jYWxsYmFjaywgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyIC8+CQkJCQkgaW50IG1vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBpbmNsdXNpdmVfbnNfcHJlZml4ZXMsIDxiciAvPgkJCQkJIGludCB3aXRoX2NvbW1lbnRzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbEMxNE5Jc1Zpc2libGVDYWxsYmFjayI+eG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrPC9hPgoraW50CTxhIGhyZWY9IiN4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2siPnhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvYT4JKHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpCis8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+RW51bSA8YSBuYW1lPSJ4bWxDMTROTW9kZSIgaWQ9InhtbEMxNE5Nb2RlIj54bWxDMTROTW9kZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbEMxNE5Nb2RlIHsKKyAgICA8YSBuYW1lPSJYTUxfQzE0Tl8xXzAiIGlkPSJYTUxfQzE0Tl8xXzAiPlhNTF9DMTROXzFfMDwvYT4gPSAwIDogT3JpZ2lhbmFsIEMxNE4gMS4wIHNwZWMKKyAgICA8YSBuYW1lPSJYTUxfQzE0Tl9FWENMVVNJVkVfMV8wIiBpZD0iWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCI+WE1MX0MxNE5fRVhDTFVTSVZFXzFfMDwvYT4gPSAxIDogRXhjbHVzaXZlIEMxNE4gMS4wIHNwZWMKKyAgICA8YSBuYW1lPSJYTUxfQzE0Tl8xXzEiIGlkPSJYTUxfQzE0Tl8xXzEiPlhNTF9DMTROXzFfMTwvYT4gPSAyIDogQzE0TiAxLjEgc3BlYworfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbEMxNE5Eb2NEdW1wTWVtb3J5IiBpZD0ieG1sQzE0TkRvY0R1bXBNZW1vcnkiPjwvYT5GdW5jdGlvbjogeG1sQzE0TkRvY0R1bXBNZW1vcnk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQzE0TkRvY0R1bXBNZW1vcnkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIgLz4JCQkJCSBpbnQgbW9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgPGJyIC8+CQkJCQkgaW50IHdpdGhfY29tbWVudHMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBkb2NfdHh0X3B0cik8YnIgLz4KKzwvcHJlPjxwPkR1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gbWVtb3J5LiBGb3IgZGV0YWlscyBzZWUgIkNhbm9uaWNhbCBYTUwiIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bikgb3IgIkV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbiIgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBzZXQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaXplZCBpbWFnZSBvciBOVUxMIGlmIGFsbCBkb2N1bWVudCBub2RlcyBzaG91bGQgYmUgaW5jbHVkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmNsdXNpdmVfbnNfcHJlZml4ZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaXN0IG9mIGluY2x1c2l2ZSBuYW1lc3BhY2UgcHJlZml4ZXMgZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubyBpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgZXhjbHVzaXZlIGNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2l0aF9jb21tZW50czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jX3R4dF9wdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZW1vcnkgcG9pbnRlciBmb3IgYWxsb2NhdGVkIGNhbm9uaWNhbCBYTUwgdGV4dDsgdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9ucyBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyB4bWxGcmVlKCkgdG8gZnJlZSBhbGxvY2F0ZWQgbWVtb3J5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDMTRORG9jU2F2ZSIgaWQ9InhtbEMxNE5Eb2NTYXZlIj48L2E+RnVuY3Rpb246IHhtbEMxNE5Eb2NTYXZlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEMxNE5Eb2NTYXZlCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMsIDxiciAvPgkJCQkJIGludCBtb2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLCA8YnIgLz4JCQkJCSBpbnQgd2l0aF9jb21tZW50cywgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBpbnQgY29tcHJlc3Npb24pPGJyIC8+Cis8L3ByZT48cD5EdW1wcyB0aGUgY2Fub25pemVkIGltYWdlIG9mIGdpdmVuIFhNTCBkb2N1bWVudCBpbnRvIHRoZSBmaWxlLiBGb3IgZGV0YWlscyBzZWUgIkNhbm9uaWNhbCBYTUwiIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bikgb3IgIkV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbiIgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBzZXQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaXplZCBpbWFnZSBvciBOVUxMIGlmIGFsbCBkb2N1bWVudCBub2RlcyBzaG91bGQgYmUgaW5jbHVkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmNsdXNpdmVfbnNfcHJlZml4ZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaXN0IG9mIGluY2x1c2l2ZSBuYW1lc3BhY2UgcHJlZml4ZXMgZW5kZWQgd2l0aCBhIE5VTEwgb3IgTlVMTCBpZiB0aGVyZSBpcyBubyBpbmNsdXNpdmUgbmFtZXNwYWNlcyAob25seSBmb3IgZXhjbHVzaXZlIGNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2l0aF9jb21tZW50czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSB0byBzdG9yZSBjYW5vbmljYWwgWE1MIGltYWdlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wcmVzc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXByZXNzaW9uIGxldmVsICh6bGliIHJlcXVyZWQpOiAtMSAtIGxpYnhtbCBkZWZhdWx0LCAwIC0gdW5jb21wcmVzc2VkLCAmZ3Q7MCAtIGNvbXByZXNzaW9uIGxldmVsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDMTRORG9jU2F2ZVRvIiBpZD0ieG1sQzE0TkRvY1NhdmVUbyI+PC9hPkZ1bmN0aW9uOiB4bWxDMTRORG9jU2F2ZVRvPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEMxNE5Eb2NTYXZlVG8JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIgLz4JCQkJCSBpbnQgbW9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgPGJyIC8+CQkJCQkgaW50IHdpdGhfY29tbWVudHMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1Zik8YnIgLz4KKzwvcHJlPjxwPkR1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gdGhlIHByb3ZpZGVkIGJ1ZmZlci4gRm9yIGRldGFpbHMgc2VlICJDYW5vbmljYWwgWE1MIiAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4pIG9yICJFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24iIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGRvY3VtZW50IGZvciBjYW5vbml6YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZXMgc2V0IHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb3IgTlVMTCBpZiBhbGwgZG9jdW1lbnQgbm9kZXMgc2hvdWxkIGJlIGluY2x1ZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYzE0biBtb2RlIChzZWUgQHhtbEMxNE5Nb2RlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5jbHVzaXZlX25zX3ByZWZpeGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGlzdCBvZiBpbmNsdXNpdmUgbmFtZXNwYWNlIHByZWZpeGVzIGVuZGVkIHdpdGggYSBOVUxMIG9yIE5VTEwgaWYgdGhlcmUgaXMgbm8gaW5jbHVzaXZlIG5hbWVzcGFjZXMgKG9ubHkgZm9yIGV4Y2x1c2l2ZSBjYW5vbmljYWxpemF0aW9uLCBpZ25vcmVkIG90aGVyd2lzZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndpdGhfY29tbWVudHM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmluY2x1ZGUgY29tbWVudHMgaW4gdGhlIHJlc3VsdCAoIT0wKSBvciBub3QgKD09MCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG91dHB1dCBidWZmZXIgdG8gc3RvcmUgY2Fub25pY2FsIFhNTDsgdGhpcyBidWZmZXIgTVVTVCBoYXZlIGVuY29kZXI9PU5VTEwgYmVjYXVzZSBDMTROIHJlcXVpcmVzIFVURi04IG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bm9uLW5lZ2F0aXZlIHZhbHVlIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBmYWlsPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQzE0TkV4ZWN1dGUiIGlkPSJ4bWxDMTRORXhlY3V0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxDMTRORXhlY3V0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDMTRORXhlY3V0ZQkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1jMTRuLmh0bWwjeG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrIj54bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2s8L2E+IGlzX3Zpc2libGVfY2FsbGJhY2ssIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJIGludCBtb2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzLCA8YnIgLz4JCQkJCSBpbnQgd2l0aF9jb21tZW50cywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmKTxiciAvPgorPC9wcmU+PHA+RHVtcHMgdGhlIGNhbm9uaXplZCBpbWFnZSBvZiBnaXZlbiBYTUwgZG9jdW1lbnQgaW50byB0aGUgcHJvdmlkZWQgYnVmZmVyLiBGb3IgZGV0YWlscyBzZWUgIkNhbm9uaWNhbCBYTUwiIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bikgb3IgIkV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbiIgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aXNfdmlzaWJsZV9jYWxsYmFjazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIHRvIHVzZSB0byBkZXRlcm1pbmUgaXMgbm9kZSB2aXNpYmxlIG9yIG5vdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgcGFyYW1ldGVyIGZvciBAaXNfdmlzaWJsZV9jYWxsYmFjayBmdW5jdGlvbiAoaW4gbW9zdCBjYXNlcywgaXQgaXMgbm9kZXMgc2V0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bW9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGMxNG4gbW9kZSAoc2VlIEB4bWxDMTROTW9kZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluY2x1c2l2ZV9uc19wcmVmaXhlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyBlbmRlZCB3aXRoIGEgTlVMTCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vIGluY2x1c2l2ZSBuYW1lc3BhY2VzIChvbmx5IGZvciBleGNsdXNpdmUgY2Fub25pY2FsaXphdGlvbiwgaWdub3JlZCBvdGhlcndpc2UpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53aXRoX2NvbW1lbnRzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90ICg9PTApPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvdXRwdXQgYnVmZmVyIHRvIHN0b3JlIGNhbm9uaWNhbCBYTUw7IHRoaXMgYnVmZmVyIE1VU1QgaGF2ZSBlbmNvZGVyPT1OVUxMIGJlY2F1c2UgQzE0TiByZXF1aXJlcyBVVEYtOCBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5vbi1uZWdhdGl2ZSB2YWx1ZSBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgdmFsdWUgb24gZmFpbDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjayIgaWQ9InhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjayI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjaworaW50CXhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjawkodm9pZCAqIHVzZXJfZGF0YSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCkKKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgYSBDMTROIGNhbGxiYWNrIG9uIHZpc2libGUgbm9kZXM8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIG5vZGUgc2hvdWxkIGJlIGluY2x1ZGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtY2F0YWxvZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNWI4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBjYXRhbG9nIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgY2F0YWxvZyBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+YzE0bjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sIj5jaHZhbGlkPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+dGhlIGNhdGFsb2cgbW9kdWxlIGltcGxlbWVudHMgdGhlIHN1cHBvcnQgZm9yIFhNTCBDYXRhbG9ncyBhbmQgU0dNTCBjYXRhbG9ncyA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0NBVEFMT0dTX05BTUVTUEFDRSI+WE1MX0NBVEFMT0dTX05BTUVTUEFDRTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0NBVEFMT0dfUEkiPlhNTF9DQVRBTE9HX1BJPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbENhdGFsb2ciPnhtbENhdGFsb2c8L2E+PGJyIC8+c3RydWN0IF94bWxDYXRhbG9nCitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxDYXRhbG9nQWxsb3ciPnhtbENhdGFsb2dBbGxvdzwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxDYXRhbG9nUHJlZmVyIj54bWxDYXRhbG9nUHJlZmVyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nIj54bWxDYXRhbG9nPC9hPiAqIDxhIG5hbWU9InhtbENhdGFsb2dQdHIiIGlkPSJ4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQUNhdGFsb2dBZGQiPnhtbEFDYXRhbG9nQWRkPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0eXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvcmlnLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZXBsYWNlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEFDYXRhbG9nRHVtcCI+eG1sQUNhdGFsb2dEdW1wPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIgLz4JCQkJCSBGSUxFICogb3V0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQUNhdGFsb2dSZW1vdmUiPnhtbEFDYXRhbG9nUmVtb3ZlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxBQ2F0YWxvZ1Jlc29sdmUiPnhtbEFDYXRhbG9nUmVzb2x2ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljIj54bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L2E+CSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbSI+eG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtPC9hPgkoPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c0lEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkiPnhtbEFDYXRhbG9nUmVzb2x2ZVVSSTwvYT4JKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENhdGFsb2dBZGQiPnhtbENhdGFsb2dBZGQ8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG9yaWcsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHJlcGxhY2UpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nQWRkTG9jYWwiPnhtbENhdGFsb2dBZGRMb2NhbDwvYT4JCSh2b2lkICogY2F0YWxvZ3MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSTCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxDYXRhbG9nQ2xlYW51cCI+eG1sQ2F0YWxvZ0NsZWFudXA8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENhdGFsb2dDb252ZXJ0Ij54bWxDYXRhbG9nQ29udmVydDwvYT4JCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbENhdGFsb2dEdW1wIj54bWxDYXRhbG9nRHVtcDwvYT4JCQkoRklMRSAqIG91dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxDYXRhbG9nRnJlZUxvY2FsIj54bWxDYXRhbG9nRnJlZUxvY2FsPC9hPgkJKHZvaWQgKiBjYXRhbG9ncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dBbGxvdyI+eG1sQ2F0YWxvZ0FsbG93PC9hPgk8YSBocmVmPSIjeG1sQ2F0YWxvZ0dldERlZmF1bHRzIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nR2V0UHVibGljIj54bWxDYXRhbG9nR2V0UHVibGljPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbENhdGFsb2dHZXRTeXN0ZW0iPnhtbENhdGFsb2dHZXRTeXN0ZW08L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENhdGFsb2dJc0VtcHR5Ij54bWxDYXRhbG9nSXNFbXB0eTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nTG9jYWxSZXNvbHZlIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlPC9hPgkodm9pZCAqIGNhdGFsb2dzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbENhdGFsb2dMb2NhbFJlc29sdmVVUkkiPnhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkk8L2E+CSh2b2lkICogY2F0YWxvZ3MsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkkpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxDYXRhbG9nUmVtb3ZlIj54bWxDYXRhbG9nUmVtb3ZlPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nUmVzb2x2ZSI+eG1sQ2F0YWxvZ1Jlc29sdmU8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbENhdGFsb2dSZXNvbHZlUHVibGljIj54bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYzwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSI+eG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW08L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQ2F0YWxvZ1Jlc29sdmVVUkkiPnhtbENhdGFsb2dSZXNvbHZlVVJJPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ2F0YWxvZ1NldERlYnVnIj54bWxDYXRhbG9nU2V0RGVidWc8L2E+CQkoaW50IGxldmVsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1ByZWZlciI+eG1sQ2F0YWxvZ1ByZWZlcjwvYT4JPGEgaHJlZj0iI3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1ByZWZlciI+eG1sQ2F0YWxvZ1ByZWZlcjwvYT4gcHJlZmVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbENhdGFsb2dTZXREZWZhdWx0cyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FsbG93Ij54bWxDYXRhbG9nQWxsb3c8L2E+IGFsbG93KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ29udmVydFNHTUxDYXRhbG9nIj54bWxDb252ZXJ0U0dNTENhdGFsb2c8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlQ2F0YWxvZyI+eG1sRnJlZUNhdGFsb2c8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sSW5pdGlhbGl6ZUNhdGFsb2ciPnhtbEluaXRpYWxpemVDYXRhbG9nPC9hPgkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgk8YSBocmVmPSIjeG1sTG9hZEFDYXRhbG9nIj54bWxMb2FkQUNhdGFsb2c8L2E+CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTG9hZENhdGFsb2ciPnhtbExvYWRDYXRhbG9nPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTG9hZENhdGFsb2dzIj54bWxMb2FkQ2F0YWxvZ3M8L2E+CQkJKGNvbnN0IGNoYXIgKiBwYXRoc3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgk8YSBocmVmPSIjeG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPnhtbExvYWRTR01MU3VwZXJDYXRhbG9nPC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0NhdGFsb2ciPnhtbE5ld0NhdGFsb2c8L2E+CQkoaW50IHNnbWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlQ2F0YWxvZ0ZpbGUiPnhtbFBhcnNlQ2F0YWxvZ0ZpbGU8L2E+CShjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IlhNTF9DQVRBTE9HU19OQU1FU1BBQ0UiIGlkPSJYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFIj48L2E+TWFjcm86IFhNTF9DQVRBTE9HU19OQU1FU1BBQ0U8L2gzPjxwcmU+I2RlZmluZSBYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFPC9wcmU+PHA+VGhlIG5hbWVzcGFjZSBmb3IgdGhlIFhNTCBDYXRhbG9ncyBlbGVtZW50cy48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX0NBVEFMT0dfUEkiIGlkPSJYTUxfQ0FUQUxPR19QSSI+PC9hPk1hY3JvOiBYTUxfQ0FUQUxPR19QSTwvaDM+PHByZT4jZGVmaW5lIFhNTF9DQVRBTE9HX1BJPC9wcmU+PHA+VGhlIHNwZWNpZmljIFhNTCBDYXRhbG9nIFByb2Nlc3NpbmcgSW5zdHVjdGlvbiBuYW1lLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nIiBpZD0ieG1sQ2F0YWxvZyI+U3RydWN0dXJlIHhtbENhdGFsb2c8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbENhdGFsb2c8YnIgLz5zdHJ1Y3QgX3htbENhdGFsb2cgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sQ2F0YWxvZ0FsbG93IiBpZD0ieG1sQ2F0YWxvZ0FsbG93Ij54bWxDYXRhbG9nQWxsb3c8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxDYXRhbG9nQWxsb3cgeworICAgIDxhIG5hbWU9IlhNTF9DQVRBX0FMTE9XX05PTkUiIGlkPSJYTUxfQ0FUQV9BTExPV19OT05FIj5YTUxfQ0FUQV9BTExPV19OT05FPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfQ0FUQV9BTExPV19HTE9CQUwiIGlkPSJYTUxfQ0FUQV9BTExPV19HTE9CQUwiPlhNTF9DQVRBX0FMTE9XX0dMT0JBTDwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0NBVEFfQUxMT1dfRE9DVU1FTlQiIGlkPSJYTUxfQ0FUQV9BTExPV19ET0NVTUVOVCI+WE1MX0NBVEFfQUxMT1dfRE9DVU1FTlQ8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9DQVRBX0FMTE9XX0FMTCIgaWQ9IlhNTF9DQVRBX0FMTE9XX0FMTCI+WE1MX0NBVEFfQUxMT1dfQUxMPC9hPiA9IDMKK30KKzwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbENhdGFsb2dQcmVmZXIiIGlkPSJ4bWxDYXRhbG9nUHJlZmVyIj54bWxDYXRhbG9nUHJlZmVyPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sQ2F0YWxvZ1ByZWZlciB7CisgICAgPGEgbmFtZT0iWE1MX0NBVEFfUFJFRkVSX05PTkUiIGlkPSJYTUxfQ0FUQV9QUkVGRVJfTk9ORSI+WE1MX0NBVEFfUFJFRkVSX05PTkU8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9DQVRBX1BSRUZFUl9QVUJMSUMiIGlkPSJYTUxfQ0FUQV9QUkVGRVJfUFVCTElDIj5YTUxfQ0FUQV9QUkVGRVJfUFVCTElDPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfQ0FUQV9QUkVGRVJfU1lTVEVNIiBpZD0iWE1MX0NBVEFfUFJFRkVSX1NZU1RFTSI+WE1MX0NBVEFfUFJFRkVSX1NZU1RFTTwvYT4gPSAyCit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sQUNhdGFsb2dBZGQiIGlkPSJ4bWxBQ2F0YWxvZ0FkZCI+PC9hPkZ1bmN0aW9uOiB4bWxBQ2F0YWxvZ0FkZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxBQ2F0YWxvZ0FkZAkJCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0eXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvcmlnLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZXBsYWNlKTxiciAvPgorPC9wcmU+PHA+QWRkIGFuIGVudHJ5IGluIHRoZSBjYXRhbG9nLCBpdCBtYXkgb3ZlcndyaXRlIGV4aXN0aW5nIGJ1dCBkaWZmZXJlbnQgZW50cmllcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBvZiByZWNvcmQgdG8gYWRkIHRvIHRoZSBjYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcmlnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtLCBwdWJsaWMgb3IgcHJlZml4IHRvIG1hdGNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXBsYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHRoZSBtYXRjaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBQ2F0YWxvZ0R1bXAiIGlkPSJ4bWxBQ2F0YWxvZ0R1bXAiPjwvYT5GdW5jdGlvbjogeG1sQUNhdGFsb2dEdW1wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxBQ2F0YWxvZ0R1bXAJCQkoPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyIC8+CQkJCQkgRklMRSAqIG91dCk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgdGhlIGdpdmVuIGNhdGFsb2cgdG8gdGhlIGdpdmVuIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2F0YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgQ2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBQ2F0YWxvZ1JlbW92ZSIgaWQ9InhtbEFDYXRhbG9nUmVtb3ZlIj48L2E+RnVuY3Rpb246IHhtbEFDYXRhbG9nUmVtb3ZlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEFDYXRhbG9nUmVtb3ZlCQkoPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5SZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgY2F0YWxvZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNhdGFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIENhdGFsb2c8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgdG8gcmVtb3ZlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVudHJpZXMgcmVtb3ZlZCBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBQ2F0YWxvZ1Jlc29sdmUiIGlkPSJ4bWxBQ2F0YWxvZ1Jlc29sdmUiPjwvYT5GdW5jdGlvbjogeG1sQUNhdGFsb2dSZXNvbHZlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQUNhdGFsb2dSZXNvbHZlCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzSUQpPGJyIC8+Cis8L3ByZT48cD5EbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIEV4dGVybmFsIElkZW50aWZpZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBJRCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c0lEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiIGlkPSJ4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiPjwvYT5GdW5jdGlvbjogeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQpPGJyIC8+Cis8L3ByZT48cD5UcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIGxvY2FsIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gYXNzb2NpYXRlZCB0byBhIHB1YmxpYyBJRCBpbiB0aGF0IGNhdGFsb2c8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBJRCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCByZXNvdXJjZSBpZiBmb3VuZCBvciBOVUxMIG90aGVyd2lzZSwgdGhlIHZhbHVlIHJldHVybmVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iIGlkPSJ4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iPjwvYT5GdW5jdGlvbjogeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+IGNhdGFsLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzSUQpPGJyIC8+Cis8L3ByZT48cD5UcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIHJlc291cmNlIGZvciBhIHN5c3RlbSBJRDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNhdGFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIENhdGFsb2c8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c0lEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLCB0aGUgdmFsdWUgcmV0dXJuZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEFDYXRhbG9nUmVzb2x2ZVVSSSIgaWQ9InhtbEFDYXRhbG9nUmVzb2x2ZVVSSSI+PC9hPkZ1bmN0aW9uOiB4bWxBQ2F0YWxvZ1Jlc29sdmVVUkk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkJKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gVVJJPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2F0YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgQ2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dBZGQiIGlkPSJ4bWxDYXRhbG9nQWRkIj48L2E+RnVuY3Rpb246IHhtbENhdGFsb2dBZGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2F0YWxvZ0FkZAkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0eXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvcmlnLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZXBsYWNlKTxiciAvPgorPC9wcmU+PHA+QWRkIGFuIGVudHJ5IGluIHRoZSBjYXRhbG9nLCBpdCBtYXkgb3ZlcndyaXRlIGV4aXN0aW5nIGJ1dCBkaWZmZXJlbnQgZW50cmllcy4gSWYgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgY2F0YWxvZyByb3V0aW5lLCBhbGxvd3MgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2hhcmVkIGNhdGFsb2cgcHV0IGluIHBsYWNlIGJ5IHhtbEluaXRpYWxpemVDYXRhbG9nKCk7PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgcmVjb3JkIHRvIGFkZCB0byB0aGUgY2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3JpZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSwgcHVibGljIG9yIHByZWZpeCB0byBtYXRjaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVwbGFjZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlcGxhY2VtZW50IHZhbHVlIGZvciB0aGUgbWF0Y2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0FkZExvY2FsIiBpZD0ieG1sQ2F0YWxvZ0FkZExvY2FsIj48L2E+RnVuY3Rpb246IHhtbENhdGFsb2dBZGRMb2NhbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxDYXRhbG9nQWRkTG9jYWwJCSh2b2lkICogY2F0YWxvZ3MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSTCk8YnIgLz4KKzwvcHJlPjxwPkFkZCB0aGUgbmV3IGVudHJ5IHRvIHRoZSBjYXRhbG9nIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbG9nczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCdzIGxpc3Qgb2YgY2F0YWxvZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSTCB0byBhIG5ldyBsb2NhbCBjYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXBkYXRlZCBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0NsZWFudXAiIGlkPSJ4bWxDYXRhbG9nQ2xlYW51cCI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nQ2xlYW51cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2F0YWxvZ0NsZWFudXAJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+RnJlZSB1cCBhbGwgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggY2F0YWxvZ3M8L3A+Cis8aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0NvbnZlcnQiIGlkPSJ4bWxDYXRhbG9nQ29udmVydCI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nQ29udmVydDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDYXRhbG9nQ29udmVydAkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0IGFsbCB0aGUgU0dNTCBjYXRhbG9nIGVudHJpZXMgYXMgWE1MIG9uZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVudHJpZXMgY29udmVydGVkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dEdW1wIiBpZD0ieG1sQ2F0YWxvZ0R1bXAiPjwvYT5GdW5jdGlvbjogeG1sQ2F0YWxvZ0R1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENhdGFsb2dEdW1wCQkJKEZJTEUgKiBvdXQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFsbCB0aGUgZ2xvYmFsIGNhdGFsb2cgY29udGVudCB0byB0aGUgZ2l2ZW4gZmlsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dGcmVlTG9jYWwiIGlkPSJ4bWxDYXRhbG9nRnJlZUxvY2FsIj48L2E+RnVuY3Rpb246IHhtbENhdGFsb2dGcmVlTG9jYWw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENhdGFsb2dGcmVlTG9jYWwJCSh2b2lkICogY2F0YWxvZ3MpPGJyIC8+Cis8L3ByZT48cD5GcmVlIHVwIHRoZSBtZW1vcnkgYXNzb2NpYXRlZCB0byB0aGUgY2F0YWxvZyBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2F0YWxvZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQncyBsaXN0IG9mIGNhdGFsb2dzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0dldERlZmF1bHRzIiBpZD0ieG1sQ2F0YWxvZ0dldERlZmF1bHRzIj48L2E+RnVuY3Rpb246IHhtbENhdGFsb2dHZXREZWZhdWx0czwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FsbG93Ij54bWxDYXRhbG9nQWxsb3c8L2E+CXhtbENhdGFsb2dHZXREZWZhdWx0cwkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPlVzZWQgdG8gZ2V0IHRoZSB1c2VyIHByZWZlcmVuY2Ugdy5yLnQuIHRvIHdoYXQgY2F0YWxvZ3Mgc2hvdWxkIGJlIGFjY2VwdGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nQWxsb3ciPnhtbENhdGFsb2dBbGxvdzwvYT4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nR2V0UHVibGljIiBpZD0ieG1sQ2F0YWxvZ0dldFB1YmxpYyI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nR2V0UHVibGljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2F0YWxvZ0dldFB1YmxpYwkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQpPGJyIC8+Cis8L3ByZT48cD5UcnkgdG8gbG9va3VwIHRoZSBjYXRhbG9nIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gYXNzb2NpYXRlZCB0byBhIHB1YmxpYyBJRCBERVBSRUNBVEVELCB1c2UgeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHVibGljIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dHZXRTeXN0ZW0iIGlkPSJ4bWxDYXRhbG9nR2V0U3lzdGVtIj48L2E+RnVuY3Rpb246IHhtbENhdGFsb2dHZXRTeXN0ZW08L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDYXRhbG9nR2V0U3lzdGVtCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8YnIgLz4KKzwvcHJlPjxwPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBhc3NvY2lhdGVkIHRvIGEgc3lzdGVtIElEIERFUFJFQ0FURUQsIHVzZSB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSgpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzb3VyY2UgaWYgZm91bmQgb3IgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ0lzRW1wdHkiIGlkPSJ4bWxDYXRhbG9nSXNFbXB0eSI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nSXNFbXB0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDYXRhbG9nSXNFbXB0eQkJKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwpPGJyIC8+Cis8L3ByZT48cD5DaGVjayBpcyBhIGNhdGFsb2cgaXMgZW1wdHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIHRoaXMgY3JlYXRlIGFuIFNHTUwgY2F0YWxvZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgY2F0YWxvZyBpcyBlbXB0eSwgMCBpZiBub3QsIGFtZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dMb2NhbFJlc29sdmUiIGlkPSJ4bWxDYXRhbG9nTG9jYWxSZXNvbHZlIj48L2E+RnVuY3Rpb246IHhtbENhdGFsb2dMb2NhbFJlc29sdmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDYXRhbG9nTG9jYWxSZXNvbHZlCSh2b2lkICogY2F0YWxvZ3MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YklELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gRXh0ZXJuYWwgSWRlbnRpZmllciB1c2luZyBhIGRvY3VtZW50J3MgcHJpdmF0ZSBjYXRhbG9nIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbG9nczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCdzIGxpc3Qgb2YgY2F0YWxvZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHVibGljIElEIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkkiIGlkPSJ4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJIj48L2E+RnVuY3Rpb246IHhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJCSh2b2lkICogY2F0YWxvZ3MsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkkpPGJyIC8+Cis8L3ByZT48cD5EbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIFVSSSB1c2luZyBhIGRvY3VtZW50J3MgcHJpdmF0ZSBjYXRhbG9nIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbG9nczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCdzIGxpc3Qgb2YgY2F0YWxvZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nUmVtb3ZlIiBpZD0ieG1sQ2F0YWxvZ1JlbW92ZSI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nUmVtb3ZlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENhdGFsb2dSZW1vdmUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZSBhbiBlbnRyeSBmcm9tIHRoZSBjYXRhbG9nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byByZW1vdmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZW50cmllcyByZW1vdmVkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dSZXNvbHZlIiBpZD0ieG1sQ2F0YWxvZ1Jlc29sdmUiPjwvYT5GdW5jdGlvbjogeG1sQ2F0YWxvZ1Jlc29sdmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDYXRhbG9nUmVzb2x2ZQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c0lEKTxiciAvPgorPC9wcmU+PHA+RG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBFeHRlcm5hbCBJZGVudGlmaWVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBJRCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kLCBpdCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiIGlkPSJ4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbENhdGFsb2dSZXNvbHZlUHVibGljCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJJRCk8YnIgLz4KKzwvcHJlPjxwPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBhc3NvY2lhdGVkIHRvIGEgcHVibGljIElEPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzb3VyY2UgaWYgZm91bmQgb3IgTlVMTCBvdGhlcndpc2UsIHRoZSB2YWx1ZSByZXR1cm5lZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0iIGlkPSJ4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbENhdGFsb2dSZXNvbHZlU3lzdGVtCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNJRCk8YnIgLz4KKzwvcHJlPjxwPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgcmVzb3VyY2UgZm9yIGEgc3lzdGVtIElEPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gSUQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzb3VyY2UgaWYgZm91bmQgb3IgTlVMTCBvdGhlcndpc2UsIHRoZSB2YWx1ZSByZXR1cm5lZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2F0YWxvZ1Jlc29sdmVVUkkiIGlkPSJ4bWxDYXRhbG9nUmVzb2x2ZVVSSSI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nUmVzb2x2ZVVSSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbENhdGFsb2dSZXNvbHZlVVJJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkkpPGJyIC8+Cis8L3ByZT48cD5EbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIFVSSTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpZiBub3QgZm91bmQsIGl0IG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDYXRhbG9nU2V0RGVidWciIGlkPSJ4bWxDYXRhbG9nU2V0RGVidWciPjwvYT5GdW5jdGlvbjogeG1sQ2F0YWxvZ1NldERlYnVnPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENhdGFsb2dTZXREZWJ1ZwkJKGludCBsZXZlbCk8YnIgLz4KKzwvcHJlPjxwPlVzZWQgdG8gc2V0IHRoZSBkZWJ1ZyBsZXZlbCBmb3IgY2F0YWxvZyBvcGVyYXRpb24sIDAgZGlzYWJsZSBkZWJ1Z2dpbmcsIDEgZW5hYmxlIGl0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGV2ZWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkZWJ1ZyBsZXZlbCBvZiBjYXRhbG9ncyByZXF1aXJlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZXZpb3VzIHZhbHVlIG9mIHRoZSBjYXRhbG9nIGRlYnVnZ2luZyBsZXZlbDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyIiBpZD0ieG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiPjwvYT5GdW5jdGlvbjogeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQcmVmZXIiPnhtbENhdGFsb2dQcmVmZXI8L2E+CXhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyCSg8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQcmVmZXIiPnhtbENhdGFsb2dQcmVmZXI8L2E+IHByZWZlcik8YnIgLz4KKzwvcHJlPjxwPkFsbG93cyB0byBzZXQgdGhlIHByZWZlcmVuY2UgYmV0d2VlbiBwdWJsaWMgYW5kIHN5c3RlbSBmb3IgZGVsZXRpb24gaW4gWE1MIENhdGFsb2cgcmVzb2x1dGlvbi4gQy5mLiBzZWN0aW9uIDQuMS4xIG9mIHRoZSBzcGVjIFZhbHVlcyBhY2NlcHRlZCBhcmUgPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCNYTUxfQ0FUQV9QUkVGRVJfUFVCTElDIj5YTUxfQ0FUQV9QUkVGRVJfUFVCTElDPC9hPiBvciA8YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI1hNTF9DQVRBX1BSRUZFUl9TWVNURU0iPlhNTF9DQVRBX1BSRUZFUl9TWVNURU08L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVmYXVsdCBwcmVmZXJlbmNlIGZvciBkZWxlZ2F0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSBmb3IgZGVsZWdhdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENhdGFsb2dTZXREZWZhdWx0cyIgaWQ9InhtbENhdGFsb2dTZXREZWZhdWx0cyI+PC9hPkZ1bmN0aW9uOiB4bWxDYXRhbG9nU2V0RGVmYXVsdHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENhdGFsb2dTZXREZWZhdWx0cwkJKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ0FsbG93Ij54bWxDYXRhbG9nQWxsb3c8L2E+IGFsbG93KTxiciAvPgorPC9wcmU+PHA+VXNlZCB0byBzZXQgdGhlIHVzZXIgcHJlZmVyZW5jZSB3LnIudC4gdG8gd2hhdCBjYXRhbG9ncyBzaG91bGQgYmUgYWNjZXB0ZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbGxvdzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2hhdCBjYXRhbG9ncyBzaG91bGQgYmUgYWNjZXB0ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDb252ZXJ0U0dNTENhdGFsb2ciIGlkPSJ4bWxDb252ZXJ0U0dNTENhdGFsb2ciPjwvYT5GdW5jdGlvbjogeG1sQ29udmVydFNHTUxDYXRhbG9nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENvbnZlcnRTR01MQ2F0YWxvZwkJKDxhIGhyZWY9ImxpYnhtbC1jYXRhbG9nLmh0bWwjeG1sQ2F0YWxvZ1B0ciI+eG1sQ2F0YWxvZ1B0cjwvYT4gY2F0YWwpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0IGFsbCB0aGUgU0dNTCBjYXRhbG9nIGVudHJpZXMgYXMgWE1MIG9uZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXRhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNhdGFsb2c8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZW50cmllcyBjb252ZXJ0ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZUNhdGFsb2ciIGlkPSJ4bWxGcmVlQ2F0YWxvZyI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlQ2F0YWxvZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZUNhdGFsb2cJCQkoPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBjYXRhbCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgdG8gYSBDYXRhbG9nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2F0YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgQ2F0YWxvZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEluaXRpYWxpemVDYXRhbG9nIiBpZD0ieG1sSW5pdGlhbGl6ZUNhdGFsb2ciPjwvYT5GdW5jdGlvbjogeG1sSW5pdGlhbGl6ZUNhdGFsb2c8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEluaXRpYWxpemVDYXRhbG9nCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkRvIHRoZSBjYXRhbG9nIGluaXRpYWxpemF0aW9uLiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgY2F0YWxvZyBpbml0aWFsaXphdGlvbiBzaG91bGQgcHJlZmVyYWJseSBiZSBkb25lIG9uY2UgYXQgc3RhcnR1cDwvcD4KKzxoMz48YSBuYW1lPSJ4bWxMb2FkQUNhdGFsb2ciIGlkPSJ4bWxMb2FkQUNhdGFsb2ciPjwvYT5GdW5jdGlvbjogeG1sTG9hZEFDYXRhbG9nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgl4bWxMb2FkQUNhdGFsb2cJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyIC8+Cis8L3ByZT48cD5Mb2FkIHRoZSBjYXRhbG9nIGFuZCBidWlsZCB0aGUgYXNzb2NpYXRlZCBkYXRhIHN0cnVjdHVyZXMuIFRoaXMgY2FuIGJlIGVpdGhlciBhbiBYTUwgQ2F0YWxvZyBvciBhbiBTR01MIENhdGFsb2cgSXQgd2lsbCByZWN1cnNlIGluIFNHTUwgQ0FUQUxPRyBlbnRyaWVzLiBPbiB0aGUgb3RoZXIgaGFuZCBYTUwgQ2F0YWxvZ3MgYXJlIG5vdCBoYW5kbGVkIHJlY3Vyc2l2ZWx5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgcGF0aDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNhdGFsb2cgcGFyc2VkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExvYWRDYXRhbG9nIiBpZD0ieG1sTG9hZENhdGFsb2ciPjwvYT5GdW5jdGlvbjogeG1sTG9hZENhdGFsb2c8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTG9hZENhdGFsb2cJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+TG9hZCB0aGUgY2F0YWxvZyBhbmQgbWFrZXMgaXRzIGRlZmluaXRpb25zIGVmZmVjdGl2ZSBmb3IgdGhlIGRlZmF1bHQgZXh0ZXJuYWwgZW50aXR5IGxvYWRlci4gSXQgd2lsbCByZWN1cnNlIGluIFNHTUwgQ0FUQUxPRyBlbnRyaWVzLiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgY2F0YWxvZyBpbml0aWFsaXphdGlvbiBzaG91bGQgcHJlZmVyYWJseSBiZSBkb25lIG9uY2UgYXQgc3RhcnR1cDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgcGF0aDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExvYWRDYXRhbG9ncyIgaWQ9InhtbExvYWRDYXRhbG9ncyI+PC9hPkZ1bmN0aW9uOiB4bWxMb2FkQ2F0YWxvZ3M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExvYWRDYXRhbG9ncwkJCShjb25zdCBjaGFyICogcGF0aHNzKTxiciAvPgorPC9wcmU+PHA+TG9hZCB0aGUgY2F0YWxvZ3MgYW5kIG1ha2VzIHRoZWlyIGRlZmluaXRpb25zIGVmZmVjdGl2ZSBmb3IgdGhlIGRlZmF1bHQgZXh0ZXJuYWwgZW50aXR5IGxvYWRlci4gdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUsIGNhdGFsb2cgaW5pdGlhbGl6YXRpb24gc2hvdWxkIHByZWZlcmFibHkgYmUgZG9uZSBvbmNlIGF0IHN0YXJ0dXA8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXRoc3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdCBvZiBkaXJlY3RvcmllcyBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBvciBhIHNwYWNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExvYWRTR01MU3VwZXJDYXRhbG9nIiBpZD0ieG1sTG9hZFNHTUxTdXBlckNhdGFsb2ciPjwvYT5GdW5jdGlvbjogeG1sTG9hZFNHTUxTdXBlckNhdGFsb2c8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtY2F0YWxvZy5odG1sI3htbENhdGFsb2dQdHIiPnhtbENhdGFsb2dQdHI8L2E+CXhtbExvYWRTR01MU3VwZXJDYXRhbG9nCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyIC8+Cis8L3ByZT48cD5Mb2FkIGFuIFNHTUwgc3VwZXIgY2F0YWxvZy4gSXQgd29uJ3QgZXhwYW5kIENBVEFMT0cgb3IgREVMRUdBVEUgcmVmZXJlbmNlcy4gVGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgbWFuaXB1bGF0aW5nIFNHTUwgU3VwZXIgQ2F0YWxvZ3MgbGlrZSBhZGRpbmcgYW5kIHJlbW92aW5nIENBVEFMT0cgb3IgREVMRUdBVEUgZW50cmllcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaWxlIHBhdGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjYXRhbG9nIHBhcnNlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdDYXRhbG9nIiBpZD0ieG1sTmV3Q2F0YWxvZyI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdDYXRhbG9nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPgl4bWxOZXdDYXRhbG9nCQkoaW50IHNnbWwpPGJyIC8+Cis8L3ByZT48cD5jcmVhdGUgYSBuZXcgQ2F0YWxvZy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZ21sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgdGhpcyBjcmVhdGUgYW4gU0dNTCBjYXRhbG9nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCN4bWxDYXRhbG9nUHRyIj54bWxDYXRhbG9nUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUNhdGFsb2dGaWxlIiBpZD0ieG1sUGFyc2VDYXRhbG9nRmlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUNhdGFsb2dGaWxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sUGFyc2VDYXRhbG9nRmlsZQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gSXQncyBsaWtlIHhtbFBhcnNlRmlsZSgpIGV4Y2VwdCBpdCBieXBhc3MgYWxsIGNhdGFsb2cgbG9va3Vwcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWNodmFsaWQuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWNodmFsaWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmQxMDdlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtY2h2YWxpZC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBjaHZhbGlkIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgY2h2YWxpZCBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCI+ZGVidWdYTUw8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+dGhpcyBtb2R1bGUgZXhwb3J0cyBpbnRlcmZhY2VzIGZvciB0aGUgY2hhcmFjdGVyIHJhbmdlIHZhbGlkYXRpb24gQVBJcyAgVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGN2cyBzb3VyY2UgZGVmaW5pdGlvbiBmaWxlcyB1c2luZyB0aGUgZ2VuQ2hSYW5nZXMucHkgUHl0aG9uIHNjcmlwdCA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sSXNCYXNlQ2hhclEiPnhtbElzQmFzZUNoYXJRPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0Jhc2VDaGFyX2NoIj54bWxJc0Jhc2VDaGFyX2NoPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0JsYW5rUSI+eG1sSXNCbGFua1E8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzQmxhbmtfY2giPnhtbElzQmxhbmtfY2g8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzQ2hhclEiPnhtbElzQ2hhclE8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzQ2hhcl9jaCI+eG1sSXNDaGFyX2NoPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0NvbWJpbmluZ1EiPnhtbElzQ29tYmluaW5nUTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sSXNEaWdpdFEiPnhtbElzRGlnaXRRPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0RpZ2l0X2NoIj54bWxJc0RpZ2l0X2NoPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxJc0V4dGVuZGVyUSI+eG1sSXNFeHRlbmRlclE8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzRXh0ZW5kZXJfY2giPnhtbElzRXh0ZW5kZXJfY2g8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzSWRlb2dyYXBoaWNRIj54bWxJc0lkZW9ncmFwaGljUTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sSXNQdWJpZENoYXJRIj54bWxJc1B1YmlkQ2hhclE8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbElzUHViaWRDaGFyX2NoIj54bWxJc1B1YmlkQ2hhcl9jaDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxDaExSYW5nZSI+eG1sQ2hMUmFuZ2U8L2E+PGJyIC8+c3RydWN0IF94bWxDaExSYW5nZQorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaExSYW5nZSI+eG1sQ2hMUmFuZ2U8L2E+ICogPGEgbmFtZT0ieG1sQ2hMUmFuZ2VQdHIiIGlkPSJ4bWxDaExSYW5nZVB0ciI+eG1sQ2hMUmFuZ2VQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxDaFJhbmdlR3JvdXAiPnhtbENoUmFuZ2VHcm91cDwvYT48YnIgLz5zdHJ1Y3QgX3htbENoUmFuZ2VHcm91cAorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaFJhbmdlR3JvdXAiPnhtbENoUmFuZ2VHcm91cDwvYT4gKiA8YSBuYW1lPSJ4bWxDaFJhbmdlR3JvdXBQdHIiIGlkPSJ4bWxDaFJhbmdlR3JvdXBQdHIiPnhtbENoUmFuZ2VHcm91cFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbENoU1JhbmdlIj54bWxDaFNSYW5nZTwvYT48YnIgLz5zdHJ1Y3QgX3htbENoU1JhbmdlCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sI3htbENoU1JhbmdlIj54bWxDaFNSYW5nZTwvYT4gKiA8YSBuYW1lPSJ4bWxDaFNSYW5nZVB0ciIgaWQ9InhtbENoU1JhbmdlUHRyIj54bWxDaFNSYW5nZVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENoYXJJblJhbmdlIj54bWxDaGFySW5SYW5nZTwvYT4JCQkodW5zaWduZWQgaW50IHZhbCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaFJhbmdlR3JvdXAiPnhtbENoUmFuZ2VHcm91cDwvYT4gKiBycHRyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNCYXNlQ2hhciI+eG1sSXNCYXNlQ2hhcjwvYT4JCQkodW5zaWduZWQgaW50IGNoKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNCbGFuayI+eG1sSXNCbGFuazwvYT4JCQkodW5zaWduZWQgaW50IGNoKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNDaGFyIj54bWxJc0NoYXI8L2E+CQkJKHVuc2lnbmVkIGludCBjaCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbElzQ29tYmluaW5nIj54bWxJc0NvbWJpbmluZzwvYT4JCQkodW5zaWduZWQgaW50IGNoKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNEaWdpdCI+eG1sSXNEaWdpdDwvYT4JCQkodW5zaWduZWQgaW50IGNoKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNFeHRlbmRlciI+eG1sSXNFeHRlbmRlcjwvYT4JCQkodW5zaWduZWQgaW50IGNoKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNJZGVvZ3JhcGhpYyI+eG1sSXNJZGVvZ3JhcGhpYzwvYT4JCSh1bnNpZ25lZCBpbnQgY2gpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxJc1B1YmlkQ2hhciI+eG1sSXNQdWJpZENoYXI8L2E+CQkJKHVuc2lnbmVkIGludCBjaCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0ieG1sSXNCYXNlQ2hhclEiIGlkPSJ4bWxJc0Jhc2VDaGFyUSI+PC9hPk1hY3JvOiB4bWxJc0Jhc2VDaGFyUTwvaDM+PHByZT4jZGVmaW5lIHhtbElzQmFzZUNoYXJRPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+Cis8aDM+PGEgbmFtZT0ieG1sSXNCYXNlQ2hhcl9jaCIgaWQ9InhtbElzQmFzZUNoYXJfY2giPjwvYT5NYWNybzogeG1sSXNCYXNlQ2hhcl9jaDwvaDM+PHByZT4jZGVmaW5lIHhtbElzQmFzZUNoYXJfY2g8L3ByZT48cD5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvcD4KKzxoMz48YSBuYW1lPSJ4bWxJc0JsYW5rUSIgaWQ9InhtbElzQmxhbmtRIj48L2E+TWFjcm86IHhtbElzQmxhbmtRPC9oMz48cHJlPiNkZWZpbmUgeG1sSXNCbGFua1E8L3ByZT48cD5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvcD4KKzxoMz48YSBuYW1lPSJ4bWxJc0JsYW5rX2NoIiBpZD0ieG1sSXNCbGFua19jaCI+PC9hPk1hY3JvOiB4bWxJc0JsYW5rX2NoPC9oMz48cHJlPiNkZWZpbmUgeG1sSXNCbGFua19jaDwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPgorPGgzPjxhIG5hbWU9InhtbElzQ2hhclEiIGlkPSJ4bWxJc0NoYXJRIj48L2E+TWFjcm86IHhtbElzQ2hhclE8L2gzPjxwcmU+I2RlZmluZSB4bWxJc0NoYXJRPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+Cis8aDM+PGEgbmFtZT0ieG1sSXNDaGFyX2NoIiBpZD0ieG1sSXNDaGFyX2NoIj48L2E+TWFjcm86IHhtbElzQ2hhcl9jaDwvaDM+PHByZT4jZGVmaW5lIHhtbElzQ2hhcl9jaDwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPgorPGgzPjxhIG5hbWU9InhtbElzQ29tYmluaW5nUSIgaWQ9InhtbElzQ29tYmluaW5nUSI+PC9hPk1hY3JvOiB4bWxJc0NvbWJpbmluZ1E8L2gzPjxwcmU+I2RlZmluZSB4bWxJc0NvbWJpbmluZ1E8L3ByZT48cD5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvcD4KKzxoMz48YSBuYW1lPSJ4bWxJc0RpZ2l0USIgaWQ9InhtbElzRGlnaXRRIj48L2E+TWFjcm86IHhtbElzRGlnaXRRPC9oMz48cHJlPiNkZWZpbmUgeG1sSXNEaWdpdFE8L3ByZT48cD5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvcD4KKzxoMz48YSBuYW1lPSJ4bWxJc0RpZ2l0X2NoIiBpZD0ieG1sSXNEaWdpdF9jaCI+PC9hPk1hY3JvOiB4bWxJc0RpZ2l0X2NoPC9oMz48cHJlPiNkZWZpbmUgeG1sSXNEaWdpdF9jaDwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPgorPGgzPjxhIG5hbWU9InhtbElzRXh0ZW5kZXJRIiBpZD0ieG1sSXNFeHRlbmRlclEiPjwvYT5NYWNybzogeG1sSXNFeHRlbmRlclE8L2gzPjxwcmU+I2RlZmluZSB4bWxJc0V4dGVuZGVyUTwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPgorPGgzPjxhIG5hbWU9InhtbElzRXh0ZW5kZXJfY2giIGlkPSJ4bWxJc0V4dGVuZGVyX2NoIj48L2E+TWFjcm86IHhtbElzRXh0ZW5kZXJfY2g8L2gzPjxwcmU+I2RlZmluZSB4bWxJc0V4dGVuZGVyX2NoPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+Cis8aDM+PGEgbmFtZT0ieG1sSXNJZGVvZ3JhcGhpY1EiIGlkPSJ4bWxJc0lkZW9ncmFwaGljUSI+PC9hPk1hY3JvOiB4bWxJc0lkZW9ncmFwaGljUTwvaDM+PHByZT4jZGVmaW5lIHhtbElzSWRlb2dyYXBoaWNRPC9wcmU+PHA+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L3A+Cis8aDM+PGEgbmFtZT0ieG1sSXNQdWJpZENoYXJRIiBpZD0ieG1sSXNQdWJpZENoYXJRIj48L2E+TWFjcm86IHhtbElzUHViaWRDaGFyUTwvaDM+PHByZT4jZGVmaW5lIHhtbElzUHViaWRDaGFyUTwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPgorPGgzPjxhIG5hbWU9InhtbElzUHViaWRDaGFyX2NoIiBpZD0ieG1sSXNQdWJpZENoYXJfY2giPjwvYT5NYWNybzogeG1sSXNQdWJpZENoYXJfY2g8L2gzPjxwcmU+I2RlZmluZSB4bWxJc1B1YmlkQ2hhcl9jaDwvcHJlPjxwPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9wPgorPGgzPjxhIG5hbWU9InhtbENoTFJhbmdlIiBpZD0ieG1sQ2hMUmFuZ2UiPlN0cnVjdHVyZSB4bWxDaExSYW5nZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sQ2hMUmFuZ2U8YnIgLz5zdHJ1Y3QgX3htbENoTFJhbmdlIHsKKyAgICB1bnNpZ25lZCBpbnQJbG93CisgICAgdW5zaWduZWQgaW50CWhpZ2gKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sQ2hSYW5nZUdyb3VwIiBpZD0ieG1sQ2hSYW5nZUdyb3VwIj5TdHJ1Y3R1cmUgeG1sQ2hSYW5nZUdyb3VwPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxDaFJhbmdlR3JvdXA8YnIgLz5zdHJ1Y3QgX3htbENoUmFuZ2VHcm91cCB7CisgICAgaW50CW5iU2hvcnRSYW5nZQorICAgIGludAluYkxvbmdSYW5nZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwjeG1sQ2hTUmFuZ2UiPnhtbENoU1JhbmdlPC9hPiAqCXNob3J0UmFuZ2UJOiBwb2ludHMgdG8gYW4gYXJyYXkgb2YgcmFuZ2VzCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaExSYW5nZSI+eG1sQ2hMUmFuZ2U8L2E+ICoJbG9uZ1JhbmdlCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbENoU1JhbmdlIiBpZD0ieG1sQ2hTUmFuZ2UiPlN0cnVjdHVyZSB4bWxDaFNSYW5nZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sQ2hTUmFuZ2U8YnIgLz5zdHJ1Y3QgX3htbENoU1JhbmdlIHsKKyAgICB1bnNpZ25lZCBzaG9ydAlsb3cKKyAgICB1bnNpZ25lZCBzaG9ydAloaWdoCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbENoYXJJblJhbmdlIiBpZD0ieG1sQ2hhckluUmFuZ2UiPjwvYT5GdW5jdGlvbjogeG1sQ2hhckluUmFuZ2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2hhckluUmFuZ2UJCQkodW5zaWduZWQgaW50IHZhbCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxDaFJhbmdlR3JvdXAiPnhtbENoUmFuZ2VHcm91cDwvYT4gKiBycHRyKTxiciAvPgorPC9wcmU+PHA+RG9lcyBhIGJpbmFyeSBzZWFyY2ggb2YgdGhlIHJhbmdlIHRhYmxlIHRvIGRldGVybWluZSBpZiBjaGFyIGlzIHZhbGlkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyYWN0ZXIgdG8gYmUgdmFsaWRhdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ycHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHJhbmdlIHRvIGJlIHVzZWQgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRydWUgaWYgY2hhcmFjdGVyIHZhbGlkLCBmYWxzZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJc0Jhc2VDaGFyIiBpZD0ieG1sSXNCYXNlQ2hhciI+PC9hPkZ1bmN0aW9uOiB4bWxJc0Jhc2VDaGFyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzQmFzZUNoYXIJCQkodW5zaWduZWQgaW50IGNoKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0Jhc2VDaGFyX2NoIj54bWxJc0Jhc2VDaGFyX2NoPC9hPiBvciA8YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmFzZUNoYXJRIj54bWxJc0Jhc2VDaGFyUTwvYT4gaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyYWN0ZXIgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRydWUgaWYgYXJndW1lbnQgdmFsaWQsIGZhbHNlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElzQmxhbmsiIGlkPSJ4bWxJc0JsYW5rIj48L2E+RnVuY3Rpb246IHhtbElzQmxhbms8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNCbGFuawkJCSh1bnNpZ25lZCBpbnQgY2gpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuIFVzZSA8YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQmxhbmtfY2giPnhtbElzQmxhbmtfY2g8L2E+IG9yIDxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNCbGFua1EiPnhtbElzQmxhbmtRPC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSXNDaGFyIiBpZD0ieG1sSXNDaGFyIj48L2E+RnVuY3Rpb246IHhtbElzQ2hhcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc0NoYXIJCQkodW5zaWduZWQgaW50IGNoKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJfY2giPnhtbElzQ2hhcl9jaDwvYT4gb3IgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0NoYXJRIj54bWxJc0NoYXJRPC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSXNDb21iaW5pbmciIGlkPSJ4bWxJc0NvbWJpbmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxJc0NvbWJpbmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc0NvbWJpbmluZwkJCSh1bnNpZ25lZCBpbnQgY2gpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuIFVzZSA8YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sI3htbElzQ29tYmluaW5nUSI+eG1sSXNDb21iaW5pbmdRPC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSXNEaWdpdCIgaWQ9InhtbElzRGlnaXQiPjwvYT5GdW5jdGlvbjogeG1sSXNEaWdpdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc0RpZ2l0CQkJKHVuc2lnbmVkIGludCBjaCk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIDxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNEaWdpdF9jaCI+eG1sSXNEaWdpdF9jaDwvYT4gb3IgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0RpZ2l0USI+eG1sSXNEaWdpdFE8L2E+IGluc3RlYWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhcmFjdGVyIHRvIHZhbGlkYXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJc0V4dGVuZGVyIiBpZD0ieG1sSXNFeHRlbmRlciI+PC9hPkZ1bmN0aW9uOiB4bWxJc0V4dGVuZGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzRXh0ZW5kZXIJCQkodW5zaWduZWQgaW50IGNoKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc0V4dGVuZGVyX2NoIj54bWxJc0V4dGVuZGVyX2NoPC9hPiBvciA8YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sI3htbElzRXh0ZW5kZXJRIj54bWxJc0V4dGVuZGVyUTwvYT4gaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyYWN0ZXIgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRydWUgaWYgYXJndW1lbnQgdmFsaWQsIGZhbHNlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElzSWRlb2dyYXBoaWMiIGlkPSJ4bWxJc0lkZW9ncmFwaGljIj48L2E+RnVuY3Rpb246IHhtbElzSWRlb2dyYXBoaWM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNJZGVvZ3JhcGhpYwkJKHVuc2lnbmVkIGludCBjaCk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIDxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwjeG1sSXNJZGVvZ3JhcGhpY1EiPnhtbElzSWRlb2dyYXBoaWNRPC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2g8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXJhY3RlciB0byB2YWxpZGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSBpZiBhcmd1bWVudCB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSXNQdWJpZENoYXIiIGlkPSJ4bWxJc1B1YmlkQ2hhciI+PC9hPkZ1bmN0aW9uOiB4bWxJc1B1YmlkQ2hhcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc1B1YmlkQ2hhcgkJCSh1bnNpZ25lZCBpbnQgY2gpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuIFVzZSA8YSBocmVmPSJsaWJ4bWwtY2h2YWxpZC5odG1sI3htbElzUHViaWRDaGFyX2NoIj54bWxJc1B1YmlkQ2hhcl9jaDwvYT4gb3IgPGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCN4bWxJc1B1YmlkQ2hhclEiPnhtbElzUHViaWRDaGFyUTwvYT4gaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jaGFyYWN0ZXIgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRydWUgaWYgYXJndW1lbnQgdmFsaWQsIGZhbHNlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1kZWJ1Z1hNTC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmVkZTFiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtZGVidWdYTUwuaHRtbApAQCAtMCwwICsxLDEyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIGRlYnVnWE1MIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgZGVidWdYTUwgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1jaHZhbGlkLmh0bWwiPmNodmFsaWQ8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCI+ZGljdDwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPkludGVyZmFjZXMgdG8gYSBzZXQgb2Ygcm91dGluZXMgdXNlZCBmb3IgZGVidWdnaW5nIHRoZSB0cmVlIHByb2R1Y2VkIGJ5IHRoZSBYTUwgcGFyc2VyLiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTaGVsbEN0eHQiPnhtbFNoZWxsQ3R4dDwvYT48YnIgLz5zdHJ1Y3QgX3htbFNoZWxsQ3R4dAorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0Ij54bWxTaGVsbEN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sU2hlbGxDdHh0UHRyIiBpZD0ieG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCTxhIGhyZWY9IiN4bWxCb29sVG9UZXh0Ij54bWxCb29sVG9UZXh0PC9hPgkJKGludCBib29sdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sRGVidWdDaGVja0RvY3VtZW50Ij54bWxEZWJ1Z0NoZWNrRG9jdW1lbnQ8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERlYnVnRHVtcEF0dHIiPnhtbERlYnVnRHVtcEF0dHI8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wQXR0ckxpc3QiPnhtbERlYnVnRHVtcEF0dHJMaXN0PC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0ciwgPGJyIC8+CQkJCQkgaW50IGRlcHRoKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERlYnVnRHVtcERURCI+eG1sRGVidWdEdW1wRFREPC9hPgkJCShGSUxFICogb3V0cHV0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wRG9jdW1lbnQiPnhtbERlYnVnRHVtcERvY3VtZW50PC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQiPnhtbERlYnVnRHVtcERvY3VtZW50SGVhZDwvYT4JKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxEZWJ1Z0R1bXBFbnRpdGllcyI+eG1sRGVidWdEdW1wRW50aXRpZXM8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERlYnVnRHVtcE5vZGUiPnhtbERlYnVnRHVtcE5vZGU8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wTm9kZUxpc3QiPnhtbERlYnVnRHVtcE5vZGVMaXN0PC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgaW50IGRlcHRoKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERlYnVnRHVtcE9uZU5vZGUiPnhtbERlYnVnRHVtcE9uZU5vZGU8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRGVidWdEdW1wU3RyaW5nIj54bWxEZWJ1Z0R1bXBTdHJpbmc8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTHNDb3VudE5vZGUiPnhtbExzQ291bnROb2RlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTHNPbmVOb2RlIj54bWxMc09uZU5vZGU8L2E+CQkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTaGVsbCI+eG1sU2hlbGw8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbFJlYWRsaW5lRnVuYyI+eG1sU2hlbGxSZWFkbGluZUZ1bmM8L2E+IGlucHV0LCA8YnIgLz4JCQkJCSBGSUxFICogb3V0cHV0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2hlbGxCYXNlIj54bWxTaGVsbEJhc2U8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogYXJnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTaGVsbENhdCI+eG1sU2hlbGxDYXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogYXJnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbFNoZWxsQ21kIj54bWxTaGVsbENtZDwvYT4KK2ludAk8YSBocmVmPSIjeG1sU2hlbGxDbWQiPnhtbFNoZWxsQ21kPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGFyZywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTaGVsbERpciI+eG1sU2hlbGxEaXI8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogYXJnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTaGVsbER1Ij54bWxTaGVsbER1PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGFyZywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2hlbGxMaXN0Ij54bWxTaGVsbExpc3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogYXJnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTaGVsbExvYWQiPnhtbFNoZWxsTG9hZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNoZWxsUHJpbnROb2RlIj54bWxTaGVsbFByaW50Tm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2hlbGxQcmludFhQYXRoRXJyb3IiPnhtbFNoZWxsUHJpbnRYUGF0aEVycm9yPC9hPgkJKGludCBlcnJvclR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBhcmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Ij54bWxTaGVsbFByaW50WFBhdGhSZXN1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGxpc3QpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTaGVsbFB3ZCI+eG1sU2hlbGxQd2Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbFNoZWxsUmVhZGxpbmVGdW5jIj54bWxTaGVsbFJlYWRsaW5lRnVuYzwvYT4KK2NoYXIgKgk8YSBocmVmPSIjeG1sU2hlbGxSZWFkbGluZUZ1bmMiPnhtbFNoZWxsUmVhZGxpbmVGdW5jPC9hPgkJKGNoYXIgKiBwcm9tcHQpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNoZWxsU2F2ZSI+eG1sU2hlbGxTYXZlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTaGVsbFZhbGlkYXRlIj54bWxTaGVsbFZhbGlkYXRlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogZHRkLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTaGVsbFdyaXRlIj54bWxTaGVsbFdyaXRlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbFNoZWxsQ3R4dCIgaWQ9InhtbFNoZWxsQ3R4dCI+U3RydWN0dXJlIHhtbFNoZWxsQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2hlbGxDdHh0PGJyIC8+c3RydWN0IF94bWxTaGVsbEN0eHQgeworICAgIGNoYXIgKglmaWxlbmFtZQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CWRvYworICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQorICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPglwY3R4dAorICAgIGludAlsb2FkZWQKKyAgICBGSUxFICoJb3V0cHV0CisgICAgPGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxSZWFkbGluZUZ1bmMiPnhtbFNoZWxsUmVhZGxpbmVGdW5jPC9hPglpbnB1dAorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxCb29sVG9UZXh0IiBpZD0ieG1sQm9vbFRvVGV4dCI+PC9hPkZ1bmN0aW9uOiB4bWxCb29sVG9UZXh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCXhtbEJvb2xUb1RleHQJCShpbnQgYm9vbHZhbCk8YnIgLz4KKzwvcHJlPjxwPkNvbnZlbmllbnQgd2F5IHRvIHR1cm4gYm9vbCBpbnRvIHRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ib29sdmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJvb2wgdG8gdHVybiBpbnRvIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBlaXRoZXIgIlRydWUiIG9yICJGYWxzZSI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQiIGlkPSJ4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sRGVidWdDaGVja0RvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERlYnVnQ2hlY2tEb2N1bWVudAkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHRoZSBkb2N1bWVudCBmb3IgcG90ZW50aWFsIGNvbnRlbnQgcHJvYmxlbXMsIGFuZCBvdXRwdXQgdGhlIGVycm9ycyB0byBAb3V0cHV0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBlcnJvcnMgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0R1bXBBdHRyIiBpZD0ieG1sRGVidWdEdW1wQXR0ciI+PC9hPkZ1bmN0aW9uOiB4bWxEZWJ1Z0R1bXBBdHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZWJ1Z0R1bXBBdHRyCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPGJyIC8+Cis8L3ByZT48cD5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGVudGF0aW9uIGxldmVsLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcEF0dHJMaXN0IiBpZD0ieG1sRGVidWdEdW1wQXR0ckxpc3QiPjwvYT5GdW5jdGlvbjogeG1sRGVidWdEdW1wQXR0ckxpc3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcEF0dHJMaXN0CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPGJyIC8+Cis8L3ByZT48cD5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmRlbnRhdGlvbiBsZXZlbC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0R1bXBEVEQiIGlkPSJ4bWxEZWJ1Z0R1bXBEVEQiPjwvYT5GdW5jdGlvbjogeG1sRGVidWdEdW1wRFREPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZWJ1Z0R1bXBEVEQJCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkKTxiciAvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBEVEQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmR0ZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIERURDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcERvY3VtZW50IiBpZD0ieG1sRGVidWdEdW1wRG9jdW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sRGVidWdEdW1wRG9jdW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcERvY3VtZW50CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBkb2N1bWVudCwgaXQncyByZWN1cnNpdmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkIiBpZD0ieG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkIj48L2E+RnVuY3Rpb246IHhtbERlYnVnRHVtcERvY3VtZW50SGVhZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkCShGSUxFICogb3V0cHV0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyIC8+Cis8L3ByZT48cD5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBjbmNlcm5pbmcgdGhlIGRvY3VtZW50LCBub3QgcmVjdXJzaXZlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcEVudGl0aWVzIiBpZD0ieG1sRGVidWdEdW1wRW50aXRpZXMiPjwvYT5GdW5jdGlvbjogeG1sRGVidWdEdW1wRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcEVudGl0aWVzCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIGFsbCB0aGUgZW50aXRpZXMgaW4gdXNlIGJ5IHRoZSBkb2N1bWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0R1bXBOb2RlIiBpZD0ieG1sRGVidWdEdW1wTm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxEZWJ1Z0R1bXBOb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZWJ1Z0R1bXBOb2RlCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPGJyIC8+Cis8L3ByZT48cD5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGVsZW1lbnQgbm9kZSwgaXQgaXMgcmVjdXJzaXZlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmRlbnRhdGlvbiBsZXZlbC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0R1bXBOb2RlTGlzdCIgaWQ9InhtbERlYnVnRHVtcE5vZGVMaXN0Ij48L2E+RnVuY3Rpb246IHhtbERlYnVnRHVtcE5vZGVMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZWJ1Z0R1bXBOb2RlTGlzdAkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgaW50IGRlcHRoKTxiciAvPgorPC9wcmU+PHA+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBsaXN0IG9mIGVsZW1lbnQgbm9kZSwgaXQgaXMgcmVjdXJzaXZlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGVudGF0aW9uIGxldmVsLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERlYnVnRHVtcE9uZU5vZGUiIGlkPSJ4bWxEZWJ1Z0R1bXBPbmVOb2RlIj48L2E+RnVuY3Rpb246IHhtbERlYnVnRHVtcE9uZU5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERlYnVnRHVtcE9uZU5vZGUJCShGSUxFICogb3V0cHV0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGludCBkZXB0aCk8YnIgLz4KKzwvcHJlPjxwPkR1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgZWxlbWVudCBub2RlLCBpdCBpcyBub3QgcmVjdXJzaXZlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmRlbnRhdGlvbiBsZXZlbC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEZWJ1Z0R1bXBTdHJpbmciIGlkPSJ4bWxEZWJ1Z0R1bXBTdHJpbmciPjwvYT5GdW5jdGlvbjogeG1sRGVidWdEdW1wU3RyaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEZWJ1Z0R1bXBTdHJpbmcJCShGSUxFICogb3V0cHV0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyIC8+Cis8L3ByZT48cD5EdW1wcyBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIHN0cmluZywgc2hvcnRlbiBpdCBpZiBuZWNlc3Nhcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExzQ291bnROb2RlIiBpZD0ieG1sTHNDb3VudE5vZGUiPjwvYT5GdW5jdGlvbjogeG1sTHNDb3VudE5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTHNDb3VudE5vZGUJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxiciAvPgorPC9wcmU+PHA+Q291bnQgdGhlIGNoaWxkcmVuIG9mIEBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRvIGNvdW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGNoaWxkcmVuIG9mIEBub2RlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExzT25lTm9kZSIgaWQ9InhtbExzT25lTm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxMc09uZU5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExzT25lTm9kZQkJCShGSUxFICogb3V0cHV0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5EdW1wIHRvIEBvdXRwdXQgdGhlIHR5cGUgYW5kIG5hbWUgb2YgQG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSB0byBkdW1wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2hlbGwiIGlkPSJ4bWxTaGVsbCI+PC9hPkZ1bmN0aW9uOiB4bWxTaGVsbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2hlbGwJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsUmVhZGxpbmVGdW5jIj54bWxTaGVsbFJlYWRsaW5lRnVuYzwvYT4gaW5wdXQsIDxiciAvPgkJCQkJIEZJTEUgKiBvdXRwdXQpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgVGhpcyBhbGxvdyB0byBsb2FkLCB2YWxpZGF0ZSwgdmlldywgbW9kaWZ5IGFuZCBzYXZlIGEgZG9jdW1lbnQgdXNpbmcgYSBlbnZpcm9ubWVudCBzaW1pbGFyIHRvIGEgVU5JWCBjb21tYW5kbGluZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG91dHB1dCBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGluZSByZWFkaW5nIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvdXRwdXQgRklMRSosIGRlZmF1bHRzIHRvIHN0ZG91dCBpZiBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2hlbGxCYXNlIiBpZD0ieG1sU2hlbGxCYXNlIj48L2E+RnVuY3Rpb246IHhtbFNoZWxsQmFzZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTaGVsbEJhc2UJCQkoPGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNoYXIgKiBhcmcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAiYmFzZSIgZHVtcHMgdGhlIGN1cnJlbnQgWE1MIGJhc2Ugb2YgdGhlIG5vZGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNoZWxsQ2F0IiBpZD0ieG1sU2hlbGxDYXQiPjwvYT5GdW5jdGlvbjogeG1sU2hlbGxDYXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxDYXQJCQkoPGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNoYXIgKiBhcmcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAiY2F0IiBkdW1wcyB0aGUgc2VyaWFsaXphdGlvbiBub2RlIGNvbnRlbnQgKFhNTCBvciBIVE1MKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNoZWxsQ21kIiBpZD0ieG1sU2hlbGxDbWQiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxTaGVsbENtZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFNoZWxsQ21kCitpbnQJeG1sU2hlbGxDbWQJCQkoPGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNoYXIgKiBhcmcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMikKKzwvcHJlPjxwPlRoaXMgaXMgYSBnZW5lcmljIHNpZ25hdHVyZSBmb3IgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbnMuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyBhcmd1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaXJzdCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZWNvbmQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50LCBuZWdhdGl2ZSByZXR1cm5zIGluZGljYXRpbmcgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sU2hlbGxEaXIiIGlkPSJ4bWxTaGVsbERpciI+PC9hPkZ1bmN0aW9uOiB4bWxTaGVsbERpcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTaGVsbERpcgkJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGFyZywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJkaXIiIGR1bXBzIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgbm9kZSAobmFtZXNwYWNlLCBhdHRyaWJ1dGVzLCBjb250ZW50KS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNoZWxsRHUiIGlkPSJ4bWxTaGVsbER1Ij48L2E+RnVuY3Rpb246IHhtbFNoZWxsRHU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxEdQkJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGFyZywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJkdSIgc2hvdyB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdWJ0cmVlIHVuZGVyIG5vZGUgQHRyZWUgSWYgQHRyZWUgaXMgbnVsbCwgdGhlIGNvbW1hbmQgd29ya3Mgb24gdGhlIGN1cnJlbnQgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZSBkZWZpbmluZyBhIHN1YnRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNoZWxsTGlzdCIgaWQ9InhtbFNoZWxsTGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxTaGVsbExpc3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxMaXN0CQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogYXJnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gImxzIiBEb2VzIGFuIFVuaXggbGlrZSBsaXN0aW5nIG9mIHRoZSBnaXZlbiBub2RlIChsaWtlIGEgZGlyZWN0b3J5KTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaGVsbCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2hlbGxMb2FkIiBpZD0ieG1sU2hlbGxMb2FkIj48L2E+RnVuY3Rpb246IHhtbFNoZWxsTG9hZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTaGVsbExvYWQJCQkoPGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwjeG1sU2hlbGxDdHh0UHRyIj54bWxTaGVsbEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJsb2FkIiBsb2FkcyBhIG5ldyBkb2N1bWVudCBzcGVjaWZpZWQgYnkgdGhlIGZpbGVuYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNoZWxsIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgLTEgaWYgbG9hZGluZyBmYWlsZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTaGVsbFByaW50Tm9kZSIgaWQ9InhtbFNoZWxsUHJpbnROb2RlIj48L2E+RnVuY3Rpb246IHhtbFNoZWxsUHJpbnROb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTaGVsbFByaW50Tm9kZQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPlByaW50IG5vZGUgdG8gdGhlIG91dHB1dCBGSUxFPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub24tbnVsbCBub2RlIHRvIHByaW50IHRvIHRoZSBvdXRwdXQgRklMRTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNoZWxsUHJpbnRYUGF0aEVycm9yIiBpZD0ieG1sU2hlbGxQcmludFhQYXRoRXJyb3IiPjwvYT5GdW5jdGlvbjogeG1sU2hlbGxQcmludFhQYXRoRXJyb3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNoZWxsUHJpbnRYUGF0aEVycm9yCQkoaW50IGVycm9yVHlwZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGFyZyk8YnIgLz4KKzwvcHJlPjxwPlByaW50IHRoZSB4cGF0aCBlcnJvciB0byBsaWJ4bWwgZGVmYXVsdCBlcnJvciBjaGFubmVsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyb3JUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD52YWxpZCB4cGF0aCBlcnJvciBpZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYXJndW1lbnQgdGhhdCBjYXVzZSB4cGF0aCB0byBmYWlsPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2hlbGxQcmludFhQYXRoUmVzdWx0IiBpZD0ieG1sU2hlbGxQcmludFhQYXRoUmVzdWx0Ij48L2E+RnVuY3Rpb246IHhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGxpc3QpPGJyIC8+Cis8L3ByZT48cD5QcmludHMgcmVzdWx0IHRvIHRoZSBvdXRwdXQgRklMRTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmxpc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdmFsaWQgcmVzdWx0IGdlbmVyYXRlZCBieSBhbiB4cGF0aCBldmFsdWF0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2hlbGxQd2QiIGlkPSJ4bWxTaGVsbFB3ZCI+PC9hPkZ1bmN0aW9uOiB4bWxTaGVsbFB3ZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTaGVsbFB3ZAkJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJwd2QiIFNob3cgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSByb290IHRvIHRoZSBub2RlLCBpZiBuZWVkZWQgYnVpbGRpbmcgdGh1bWJsZXJzIHdoZW4gc2ltaWxhciBlbGVtZW50cyBleGlzdHMgYXQgYSBnaXZlbiBhbmNlc3RvciBsZXZlbC4gVGhlIG91dHB1dCBpcyBjb21wYXRpYmxlIHdpdGggWFBhdGggY29tbWFuZHMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNoZWxsIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG91dHB1dCBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2hlbGxSZWFkbGluZUZ1bmMiIGlkPSJ4bWxTaGVsbFJlYWRsaW5lRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFNoZWxsUmVhZGxpbmVGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sU2hlbGxSZWFkbGluZUZ1bmMKK2NoYXIgKgl4bWxTaGVsbFJlYWRsaW5lRnVuYwkJKGNoYXIgKiBwcm9tcHQpCis8L3ByZT48cD5UaGlzIGlzIGEgZ2VuZXJpYyBzaWduYXR1cmUgZm9yIHRoZSBYTUwgc2hlbGwgaW5wdXQgZnVuY3Rpb24uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByb21wdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgcHJvbXB0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyB3aGljaCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBTaGVsbC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFNoZWxsU2F2ZSIgaWQ9InhtbFNoZWxsU2F2ZSI+PC9hPkZ1bmN0aW9uOiB4bWxTaGVsbFNhdmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2hlbGxTYXZlCQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAic2F2ZSIgV3JpdGUgdGhlIGN1cnJlbnQgZG9jdW1lbnQgdG8gdGhlIGZpbGVuYW1lLCBvciBpdCdzIG9yaWdpbmFsIG5hbWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2hlbGwgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgKG9wdGlvbmFsKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dW51c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTaGVsbFZhbGlkYXRlIiBpZD0ieG1sU2hlbGxWYWxpZGF0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxTaGVsbFZhbGlkYXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNoZWxsVmFsaWRhdGUJCSg8YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCN4bWxTaGVsbEN0eHRQdHIiPnhtbFNoZWxsQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGR0ZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUyKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICJ2YWxpZGF0ZSIgVmFsaWRhdGUgdGhlIGRvY3VtZW50LCBpZiBhIERURCBwYXRoIGlzIHByb3ZpZGVkLCB0aGVuIHRoZSB2YWxpZGF0aW9uIGlzIGRvbmUgYWdhaW5zdCB0aGUgZ2l2ZW4gRFRELjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaGVsbCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBEVEQgVVJJIChvcHRpb25hbCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVudXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2hlbGxXcml0ZSIgaWQ9InhtbFNoZWxsV3JpdGUiPjwvYT5GdW5jdGlvbjogeG1sU2hlbGxXcml0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTaGVsbFdyaXRlCQkJKDxhIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sI3htbFNoZWxsQ3R4dFB0ciI+eG1sU2hlbGxDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAid3JpdGUiIFdyaXRlIHRoZSBjdXJyZW50IG5vZGUgdG8gdGhlIGZpbGVuYW1lLCBpdCBzYXZlcyB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGUgc3VidHJlZSB1bmRlciB0aGUgQG5vZGUgc3BlY2lmaWVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNoZWxsIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgaW4gdGhlIHRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1kaWN0Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1kaWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUzOTkzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWRpY3QuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgZGljdCBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIGRpY3QgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1kZWJ1Z1hNTC5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwtZGVidWdYTUwuaHRtbCI+ZGVidWdYTUw8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwiPmVuY29kaW5nPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPmRpY3Rpb25hcnkgb2YgcmV1c2FibGUgc3RyaW5ncywganVzdCB1c2VkIHRvIGF2b2lkIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb3BlcmF0aW9ucy4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sRGljdCI+eG1sRGljdDwvYT48YnIgLz5zdHJ1Y3QgX3htbERpY3QKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0Ij54bWxEaWN0PC9hPiAqIDxhIG5hbWU9InhtbERpY3RQdHIiIGlkPSJ4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERpY3RDbGVhbnVwIj54bWxEaWN0Q2xlYW51cDwvYT4JCQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxEaWN0Q3JlYXRlIj54bWxEaWN0Q3JlYXRlPC9hPgkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sRGljdENyZWF0ZVN1YiI+eG1sRGljdENyZWF0ZVN1YjwvYT4JKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gc3ViKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxEaWN0RXhpc3RzIj54bWxEaWN0RXhpc3RzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxEaWN0RnJlZSI+eG1sRGljdEZyZWU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sRGljdExvb2t1cCI+eG1sRGljdExvb2t1cDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxEaWN0T3ducyI+eG1sRGljdE93bnM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxEaWN0UUxvb2t1cCI+eG1sRGljdFFMb29rdXA8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxEaWN0UmVmZXJlbmNlIj54bWxEaWN0UmVmZXJlbmNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbERpY3RTaXplIj54bWxEaWN0U2l6ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJ4bWxEaWN0IiBpZD0ieG1sRGljdCI+U3RydWN0dXJlIHhtbERpY3Q8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbERpY3Q8YnIgLz5zdHJ1Y3QgX3htbERpY3QgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbERpY3RDbGVhbnVwIiBpZD0ieG1sRGljdENsZWFudXAiPjwvYT5GdW5jdGlvbjogeG1sRGljdENsZWFudXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERpY3RDbGVhbnVwCQkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5GcmVlIHRoZSBkaWN0aW9uYXJ5IG11dGV4LjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxEaWN0Q3JlYXRlIiBpZD0ieG1sRGljdENyZWF0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0Q3JlYXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0Q3JlYXRlU3ViIiBpZD0ieG1sRGljdENyZWF0ZVN1YiI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0Q3JlYXRlU3ViPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPgl4bWxEaWN0Q3JlYXRlU3ViCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IHN1Yik8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5LCBpbmhlcml0aW5nIHN0cmluZ3MgZnJvbSB0aGUgcmVhZC1vbmx5IGRpY3Rpb25uYXJ5IEBzdWIuIE9uIGxvb2t1cCwgc3RyaW5ncyBhcmUgZmlyc3Qgc2VhcmNoZWQgaW4gdGhlIG5ldyBkaWN0aW9ubmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZSBuZXcgZGljdGlvbm5hcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3ViPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBleGlzdGluZyBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgZGljdGlvbm5hcnksIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0RXhpc3RzIiBpZD0ieG1sRGljdEV4aXN0cyI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0RXhpc3RzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sRGljdEV4aXN0cwkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIGlmIHRoZSBAbmFtZSBleGlzdHMgaW4gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkaWN0aW9ubmFyeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaWYgbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RGcmVlIiBpZD0ieG1sRGljdEZyZWUiPjwvYT5GdW5jdGlvbjogeG1sRGljdEZyZWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERpY3RGcmVlCQkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdGhlIGhhc2ggQGRpY3QgYW5kIGl0cyBjb250ZW50cy4gVGhlIHVzZXJkYXRhIGlzIGRlYWxsb2NhdGVkIHdpdGggQGYgaWYgcHJvdmlkZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdExvb2t1cCIgaWQ9InhtbERpY3RMb29rdXAiPjwvYT5GdW5jdGlvbjogeG1sRGljdExvb2t1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERpY3RMb29rdXAJCSg8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+IGRpY3QsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5BZGQgdGhlIEBuYW1lIHRvIHRoZSBkaWN0aW9ubmFyeSBAZGljdCBpZiBub3QgcHJlc2VudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kaWN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGljdGlvbm5hcnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgbmFtZSBvciBOVUxMIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEaWN0T3ducyIgaWQ9InhtbERpY3RPd25zIj48L2E+RnVuY3Rpb246IHhtbERpY3RPd25zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERpY3RPd25zCQkJKDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxiciAvPgorPC9wcmU+PHA+Y2hlY2sgaWYgYSBzdHJpbmcgaXMgb3duZWQgYnkgdGhlIGRpc2N0aW9uYXJ5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdFFMb29rdXAiIGlkPSJ4bWxEaWN0UUxvb2t1cCI+PC9hPkZ1bmN0aW9uOiB4bWxEaWN0UUxvb2t1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERpY3RRTG9va3VwCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5BZGQgdGhlIFFOYW1lIEBwcmVmaXg6QG5hbWUgdG8gdGhlIGhhc2ggQGRpY3QgaWYgbm90IHByZXNlbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgUU5hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGljdFJlZmVyZW5jZSIgaWQ9InhtbERpY3RSZWZlcmVuY2UiPjwvYT5GdW5jdGlvbjogeG1sRGljdFJlZmVyZW5jZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEaWN0UmVmZXJlbmNlCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxiciAvPgorPC9wcmU+PHA+SW5jcmVtZW50IHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGNvdW50ZXIgb2YgYSBkaWN0aW9uYXJ5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERpY3RTaXplIiBpZD0ieG1sRGljdFNpemUiPjwvYT5GdW5jdGlvbjogeG1sRGljdFNpemU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRGljdFNpemUJCQkoPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxiciAvPgorPC9wcmU+PHA+UXVlcnkgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbnN0YWxsZWQgaW4gdGhlIGhhc2ggQGRpY3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpY3Rpb25uYXJ5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkaWN0aW9ubmFyeSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1lbmNvZGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZWYwZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1lbmNvZGluZy5odG1sCkBAIC0wLDAgKzEsMTE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgZW5jb2RpbmcgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSBlbmNvZGluZyBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCI+ZGljdDwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCI+ZW50aXRpZXM8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+aW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnMgbmVlZGVkIGZvciBYTUwgYmFzaWMgZW5jb2RpbmcgYW5kIGljb252KCkgc3VwcG9ydC4gIFJlbGF0ZWQgc3BlY3MgYXJlIHJmYzIwNDQgICAgICAgIChVVEYtOCBhbmQgVVRGLTE2KSBGLiBZZXJnZWF1IEFsaXMgVGVjaG5vbG9naWVzIFtJU08tMTA2NDZdICAgIFVURi04IGFuZCBVVEYtMTYgaW4gQW5uZXhlcyBbSVNPLTg4NTktMV0gICBJU08gTGF0aW4tMSBjaGFyYWN0ZXJzIGNvZGVzLiBbVU5JQ09ERV0gICAgICBUaGUgVW5pY29kZSBDb25zb3J0aXVtLCAiVGhlIFVuaWNvZGUgU3RhbmRhcmQgLS0gV29ybGR3aWRlIENoYXJhY3RlciBFbmNvZGluZyAtLSBWZXJzaW9uIDEuMCIsIEFkZGlzb24tIFdlc2xleSwgVm9sdW1lIDEsIDE5OTEsIFZvbHVtZSAyLCAxOTkyLiAgVVRGLTggaXMgZGVzY3JpYmVkIGluIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAjNC4gW1VTLUFTQ0lJXSAgICAgQ29kZWQgQ2hhcmFjdGVyIFNldC0tNy1iaXQgQW1lcmljYW4gU3RhbmRhcmQgQ29kZSBmb3IgSW5mb3JtYXRpb24gSW50ZXJjaGFuZ2UsIEFOU0kgWDMuNC0xOTg2LiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjxiciAvPnN0cnVjdCBfeG1sQ2hhckVuY29kaW5nSGFuZGxlcgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4gKiA8YSBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIiBpZD0ieG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI1VURjhUb2lzb2xhdDEiPlVURjhUb2lzb2xhdDE8L2E+CQkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2lzb2xhdDFUb1VURjgiPmlzb2xhdDFUb1VURjg8L2E+CQkJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEFkZEVuY29kaW5nQWxpYXMiPnhtbEFkZEVuY29kaW5nQWxpYXM8L2E+CQkoY29uc3QgY2hhciAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBhbGlhcyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENoYXJFbmNDbG9zZUZ1bmMiPnhtbENoYXJFbmNDbG9zZUZ1bmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4gKiBoYW5kbGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ2hhckVuY0ZpcnN0TGluZSI+eG1sQ2hhckVuY0ZpcnN0TGluZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gaW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxDaGFyRW5jSW5GdW5jIj54bWxDaGFyRW5jSW5GdW5jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+ICogaGFuZGxlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gb3V0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBpbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENoYXJFbmNPdXRGdW5jIj54bWxDaGFyRW5jT3V0RnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gaW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPgoraW50CTxhIGhyZWY9IiN4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ0lucHV0RnVuYzwvYT4JKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPgoraW50CTxhIGhyZWY9IiN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPgkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyIC8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIgLz4JCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICogaW4sIDxiciAvPgkJCQkJIGludCAqIGlubGVuKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sQ2xlYW51cENoYXJFbmNvZGluZ0hhbmRsZXJzIj54bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnM8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbENsZWFudXBFbmNvZGluZ0FsaWFzZXMiPnhtbENsZWFudXBFbmNvZGluZ0FsaWFzZXM8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sRGVsRW5jb2RpbmdBbGlhcyI+eG1sRGVsRW5jb2RpbmdBbGlhczwvYT4JCShjb25zdCBjaGFyICogYWxpYXMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+CTxhIGhyZWY9IiN4bWxEZXRlY3RDaGFyRW5jb2RpbmciPnhtbERldGVjdENoYXJFbmNvZGluZzwvYT4JKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPgkoY29uc3QgY2hhciAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4JPGEgaHJlZj0iI3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgk8YSBocmVmPSIjeG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCTxhIGhyZWY9IiN4bWxHZXRFbmNvZGluZ0FsaWFzIj54bWxHZXRFbmNvZGluZ0FsaWFzPC9hPgkoY29uc3QgY2hhciAqIGFsaWFzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycyI+eG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzPC9hPgkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciI+eG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcjwvYT4JKGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPiBpbnB1dCwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPiBvdXRwdXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUNoYXJFbmNvZGluZyI+eG1sUGFyc2VDaGFyRW5jb2Rpbmc8L2E+CShjb25zdCBjaGFyICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPkVudW0gPGEgbmFtZT0ieG1sQ2hhckVuY29kaW5nIiBpZD0ieG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxDaGFyRW5jb2RpbmcgeworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SIiBpZD0iWE1MX0NIQVJfRU5DT0RJTkdfRVJST1IiPlhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SPC9hPiA9IC0xIDogTm8gY2hhciBlbmNvZGluZyBkZXRlY3RlZAorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX05PTkUiIGlkPSJYTUxfQ0hBUl9FTkNPRElOR19OT05FIj5YTUxfQ0hBUl9FTkNPRElOR19OT05FPC9hPiA9IDAgOiBObyBjaGFyIGVuY29kaW5nIGRldGVjdGVkCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HX1VURjgiPlhNTF9DSEFSX0VOQ09ESU5HX1VURjg8L2E+ID0gMSA6IFVURi04CisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRSIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEUiPlhNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEU8L2E+ID0gMiA6IFVURi0xNiBsaXR0bGUgZW5kaWFuCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZCRSIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkUiPlhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkU8L2E+ID0gMyA6IFVURi0xNiBiaWcgZW5kaWFuCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFIiBpZD0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0TEU8L2E+ID0gNCA6IFVDUy00IGxpdHRsZSBlbmRpYW4KKyAgICA8YSBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkUiIGlkPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkUiPlhNTF9DSEFSX0VOQ09ESU5HX1VDUzRCRTwvYT4gPSA1IDogVUNTLTQgYmlnIGVuZGlhbgorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX0VCQ0RJQyIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HX0VCQ0RJQyI+WE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDPC9hPiA9IDYgOiBFQkNESUMgdWghCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzIiBpZD0iWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzIxNDM8L2E+ID0gNyA6IFVDUy00IHVudXN1YWwgb3JkZXJpbmcKKyAgICA8YSBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTIiIGlkPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTIiPlhNTF9DSEFSX0VOQ09ESU5HX1VDUzRfMzQxMjwvYT4gPSA4IDogVUNTLTQgdW51c3VhbCBvcmRlcmluZworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX1VDUzIiIGlkPSJYTUxfQ0hBUl9FTkNPRElOR19VQ1MyIj5YTUxfQ0hBUl9FTkNPRElOR19VQ1MyPC9hPiA9IDkgOiBVQ1MtMgorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMSIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMSI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV8xPC9hPiA9IDEwIDogSVNPLTg4NTktMSBJU08gTGF0aW4gMQorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMiIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMiI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yPC9hPiA9IDExIDogSVNPLTg4NTktMiBJU08gTGF0aW4gMgorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMyIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMyI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV8zPC9hPiA9IDEyIDogSVNPLTg4NTktMworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNCIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNCI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV80PC9hPiA9IDEzIDogSVNPLTg4NTktNAorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNSIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNSI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV81PC9hPiA9IDE0IDogSVNPLTg4NTktNQorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNiIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNiI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV82PC9hPiA9IDE1IDogSVNPLTg4NTktNgorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNyIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNyI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV83PC9hPiA9IDE2IDogSVNPLTg4NTktNworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOCIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOCI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV84PC9hPiA9IDE3IDogSVNPLTg4NTktOAorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOSIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOSI+WE1MX0NIQVJfRU5DT0RJTkdfODg1OV85PC9hPiA9IDE4IDogSVNPLTg4NTktOQorICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HXzIwMjJfSlAiIGlkPSJYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQIj5YTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQPC9hPiA9IDE5IDogSVNPLTIwMjItSlAKKyAgICA8YSBuYW1lPSJYTUxfQ0hBUl9FTkNPRElOR19TSElGVF9KSVMiIGlkPSJYTUxfQ0hBUl9FTkNPRElOR19TSElGVF9KSVMiPlhNTF9DSEFSX0VOQ09ESU5HX1NISUZUX0pJUzwvYT4gPSAyMCA6IFNoaWZ0X0pJUworICAgIDxhIG5hbWU9IlhNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUCIgaWQ9IlhNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUCI+WE1MX0NIQVJfRU5DT0RJTkdfRVVDX0pQPC9hPiA9IDIxIDogRVVDLUpQCisgICAgPGEgbmFtZT0iWE1MX0NIQVJfRU5DT0RJTkdfQVNDSUkiIGlkPSJYTUxfQ0hBUl9FTkNPRElOR19BU0NJSSI+WE1MX0NIQVJfRU5DT0RJTkdfQVNDSUk8L2E+ID0gMjIgOiBwdXJlIEFTQ0lJCit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sQ2hhckVuY29kaW5nSGFuZGxlciIgaWQ9InhtbENoYXJFbmNvZGluZ0hhbmRsZXIiPlN0cnVjdHVyZSB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyPGJyIC8+c3RydWN0IF94bWxDaGFyRW5jb2RpbmdIYW5kbGVyIHsKKyAgICBjaGFyICoJbmFtZQorICAgIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPglpbnB1dAorICAgIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+CW91dHB1dAorICAgIGljb252X3QJaWNvbnZfaW4KKyAgICBpY29udl90CWljb252X291dAorfTwvcHJlPjxoMz48YSBuYW1lPSJVVEY4VG9pc29sYXQxIiBpZD0iVVRGOFRvaXNvbGF0MSI+PC9hPkZ1bmN0aW9uOiBVVEY4VG9pc29sYXQxPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CVVURjhUb2lzb2xhdDEJCQkodW5zaWduZWQgY2hhciAqIG91dCwgPGJyIC8+CQkJCQkgaW50ICogb3V0bGVuLCA8YnIgLz4JCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICogaW4sIDxiciAvPgkJCQkJIGludCAqIGlubGVuKTxiciAvPgorPC9wcmU+PHA+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBJU08gTGF0aW4gMSBibG9jayBvZiBjaGFycyBvdXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIEBvdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlubGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIEBpbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywgb3IgLTEgb3RoZXJ3aXNlIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imlzb2xhdDFUb1VURjgiIGlkPSJpc29sYXQxVG9VVEY4Ij48L2E+RnVuY3Rpb246IGlzb2xhdDFUb1VURjg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJaXNvbGF0MVRvVVRGOAkJCSh1bnNpZ25lZCBjaGFyICogb3V0LCA8YnIgLz4JCQkJCSBpbnQgKiBvdXRsZW4sIDxiciAvPgkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyIC8+CQkJCQkgaW50ICogaW5sZW4pPGJyIC8+Cis8L3ByZT48cD5UYWtlIGEgYmxvY2sgb2YgSVNPIExhdGluIDEgY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIFVURi04IGJsb2NrIG9mIGNoYXJzIG91dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRsZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQG91dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBJU08gTGF0aW4gMSBjaGFyczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQGluPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgLTEgb3RoZXJ3aXNlIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEFkZEVuY29kaW5nQWxpYXMiIGlkPSJ4bWxBZGRFbmNvZGluZ0FsaWFzIj48L2E+RnVuY3Rpb246IHhtbEFkZEVuY29kaW5nQWxpYXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQWRkRW5jb2RpbmdBbGlhcwkJKGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYWxpYXMpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlcnMgYW4gYWxpYXMgQGFsaWFzIGZvciBhbiBlbmNvZGluZyBuYW1lZCBAbmFtZS4gRXhpc3RpbmcgYWxpYXMgd2lsbCBiZSBvdmVyd3JpdHRlbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbGlhczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFsaWFzIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDaGFyRW5jQ2xvc2VGdW5jIiBpZD0ieG1sQ2hhckVuY0Nsb3NlRnVuYyI+PC9hPkZ1bmN0aW9uOiB4bWxDaGFyRW5jQ2xvc2VGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENoYXJFbmNDbG9zZUZ1bmMJCSg8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIpPGJyIC8+Cis8L3ByZT48cD5HZW5lcmljIGZyb250LWVuZCBmb3IgZW5jb2RpbmcgaGFuZGxlciBjbG9zZSBmdW5jdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgZW5jb25kaW5nIHRyYW5zZm9ybWF0aW9uIGRhdGEgc3RydWN0dXJlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDaGFyRW5jRmlyc3RMaW5lIiBpZD0ieG1sQ2hhckVuY0ZpcnN0TGluZSI+PC9hPkZ1bmN0aW9uOiB4bWxDaGFyRW5jRmlyc3RMaW5lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENoYXJFbmNGaXJzdExpbmUJCSg8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gaW4pPGJyIC8+Cis8L3ByZT48cD5Gcm9udC1lbmQgZm9yIHRoZSBlbmNvZGluZyBoYW5kbGVyIGlucHV0IGZ1bmN0aW9uLCBidXQgaGFuZGxlIG9ubHkgdGhlIHZlcnkgZmlyc3QgbGluZSwgaS5lLiBsaW1pdCBpdHNlbGYgdG8gNDUgY2hhcnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y2hhciBlbmNvbmRpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT4gZm9yIHRoZSBvdXRwdXQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT4gZm9yIHRoZSBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgLTEgZ2VuZXJhbCBlcnJvciAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGZvciAqaW4gaXMgbm90IHZhbGlkIHV0Zjggc3RyaW5nIG9yIHRoZSByZXN1bHQgb2YgdHJhbnNmb3JtYXRpb24gY2FuJ3QgZml0IGludG8gdGhlIGVuY29kaW5nIHdlIHdhbnQpLCBvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENoYXJFbmNJbkZ1bmMiIGlkPSJ4bWxDaGFyRW5jSW5GdW5jIj48L2E+RnVuY3Rpb246IHhtbENoYXJFbmNJbkZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2hhckVuY0luRnVuYwkJKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L2E+ICogaGFuZGxlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gb3V0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBpbik8YnIgLz4KKzwvcHJlPjxwPkdlbmVyaWMgZnJvbnQtZW5kIGZvciB0aGUgZW5jb2RpbmcgaGFuZGxlciBpbnB1dCBmdW5jdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgZW5jb2RpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT4gZm9yIHRoZSBvdXRwdXQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT4gZm9yIHRoZSBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgLTEgZ2VuZXJhbCBlcnJvciAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGZvciAqaW4gaXMgbm90IHZhbGlkIHV0Zjggc3RyaW5nIG9yIHRoZSByZXN1bHQgb2YgdHJhbnNmb3JtYXRpb24gY2FuJ3QgZml0IGludG8gdGhlIGVuY29kaW5nIHdlIHdhbnQpLCBvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENoYXJFbmNPdXRGdW5jIiBpZD0ieG1sQ2hhckVuY091dEZ1bmMiPjwvYT5GdW5jdGlvbjogeG1sQ2hhckVuY091dEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2hhckVuY091dEZ1bmMJCSg8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC9hPiAqIGhhbmRsZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gaW4pPGJyIC8+Cis8L3ByZT48cD5HZW5lcmljIGZyb250LWVuZCBmb3IgdGhlIGVuY29kaW5nIGhhbmRsZXIgb3V0cHV0IGZ1bmN0aW9uIGEgZmlyc3QgY2FsbCB3aXRoIEBpbiA9PSBOVUxMIGhhcyB0byBiZSBtYWRlIGZpcnMgdG8gaW5pdGlhdGUgdGhlIG91dHB1dCBpbiBjYXNlIG9mIG5vbi1zdGF0ZWxlc3MgZW5jb2RpbmcgbmVlZGluZyB0byBpbml0aWF0ZSB0aGVpciBzdGF0ZSBvciB0aGUgb3V0cHV0IChsaWtlIHRoZSBCT00gaW4gVVRGMTYpLiBJbiBjYXNlIG9mIFVURjggc2VxdWVuY2UgY29udmVyc2lvbiBlcnJvcnMgZm9yIHRoZSBnaXZlbiBlbmNvZGVyLCB0aGUgY29udGVudCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVtYXBwZWQgdG8gYSBDaGFyUmVmIHNlcXVlbmNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNoYXIgZW5jb25kaW5nIHRyYW5zZm9ybWF0aW9uIGRhdGEgc3RydWN0dXJlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyIj54bWxCdWZmZXI8L2E+IGZvciB0aGUgb3V0cHV0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyIj54bWxCdWZmZXI8L2E+IGZvciB0aGUgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIGlmIHN1Y2Nlc3MsIG9yIC0xIGdlbmVyYWwgZXJyb3IgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzIChmb3IgKmluIGlzIG5vdCB2YWxpZCB1dGY4IHN0cmluZyBvciB0aGUgcmVzdWx0IG9mIHRyYW5zZm9ybWF0aW9uIGNhbid0IGZpdCBpbnRvIHRoZSBlbmNvZGluZyB3ZSB3YW50KSwgb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiIGlkPSJ4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMKK2ludAl4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbikKKzwvcHJlPjxwPlRha2UgYSBibG9jayBvZiBjaGFycyBpbiB0aGUgb3JpZ2luYWwgZW5jb2RpbmcgYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIFVURi04IGJsb2NrIG9mIGNoYXJzIG91dC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIFVURi04IHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIEBvdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnMgaW4gdGhlIG9yaWdpbmFsIGVuY29kaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiBAaW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgLTEgaWYgbGFjayBvZiBzcGFjZSwgb3IgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxlZC4gVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RpYWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyIgaWQ9InhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYworaW50CXhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmMJKHVuc2lnbmVkIGNoYXIgKiBvdXQsIDxiciAvPgkJCQkJIGludCAqIG91dGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqIGluLCA8YnIgLz4JCQkJCSBpbnQgKiBpbmxlbikKKzwvcHJlPjxwPlRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW5vdGhlciBlbmNvZGluZy4gTm90ZTogYSBmaXJzdCBjYWxsIGRlc2lnbmVkIHRvIHByb2R1Y2UgaGVhZGluZyBpbmZvIGlzIGNhbGxlZCB3aXRoIGluID0gTlVMTC4gSWYgc3RhdGVmdWwgdGhpcyBzaG91bGQgYWxzbyBpbml0aWFsaXplIHRoZSBlbmNvZGVyIHN0YXRlLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRsZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQG91dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFyczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQGluPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIC0xIGlmIGxhY2sgb2Ygc3BhY2UsIG9yIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlsZWQuIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0aWFibGUuIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBwcm9kdWNlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyIgaWQ9InhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyI+PC9hPkZ1bmN0aW9uOiB4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycwkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkNsZWFudXAgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBjaGFyIGVuY29kaW5nIHN1cHBvcnQsIGl0IHVucmVnaXN0ZXJzIGFsbCB0aGUgZW5jb2RpbmcgaGFuZGxlcnMgYW5kIHRoZSBhbGlhc2VzLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzIiBpZD0ieG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyI+PC9hPkZ1bmN0aW9uOiB4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+VW5yZWdpc3RlcnMgYWxsIGFsaWFzZXM8L3A+Cis8aDM+PGEgbmFtZT0ieG1sRGVsRW5jb2RpbmdBbGlhcyIgaWQ9InhtbERlbEVuY29kaW5nQWxpYXMiPjwvYT5GdW5jdGlvbjogeG1sRGVsRW5jb2RpbmdBbGlhczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEZWxFbmNvZGluZ0FsaWFzCQkoY29uc3QgY2hhciAqIGFsaWFzKTxiciAvPgorPC9wcmU+PHA+VW5yZWdpc3RlcnMgYW4gZW5jb2RpbmcgYWxpYXMgQGFsaWFzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YWxpYXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhbGlhcyBuYW1lIGFzIHBhcnNlZCwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGV0ZWN0Q2hhckVuY29kaW5nIiBpZD0ieG1sRGV0ZWN0Q2hhckVuY29kaW5nIj48L2E+RnVuY3Rpb246IHhtbERldGVjdENoYXJFbmNvZGluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPgl4bWxEZXRlY3RDaGFyRW5jb2RpbmcJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBpbiwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPkd1ZXNzIHRoZSBlbmNvZGluZyBvZiB0aGUgZW50aXR5IHVzaW5nIHRoZSBmaXJzdCBieXRlcyBvZiB0aGUgZW50aXR5IGNvbnRlbnQgYWNjb3JkaW5nIHRvIHRoZSBub24tbm9ybWF0aXZlIGFwcGVuZGl4IEYgb2YgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgZmlyc3QgYnl0ZXMgb2YgdGhlIFhNTCBlbnRpdHksIG11c3QgYmUgYXQgbGVhc3QgMiBieXRlcyBsb25nIChhdCBsZWFzdCA0IGlmIGVuY29kaW5nIGlzIFVURjQgdmFyaWFudCkuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vbmUgb2YgdGhlIFhNTF9DSEFSX0VOQ09ESU5HXy4uLiB2YWx1ZXMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIiIGlkPSJ4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciI+PC9hPkZ1bmN0aW9uOiB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+CXhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyCShjb25zdCBjaGFyICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCBpbiB0aGUgcmVnaXN0ZXJlZCBzZXQgdGhlIGhhbmRsZXIgYWJsZSB0byByZWFkL3dyaXRlIHRoYXQgZW5jb2RpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY2hhciBlbmNvZGluZy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYW5kbGVyIG9yIE5VTEwgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlciIgaWQ9InhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXIiPjwvYT5GdW5jdGlvbjogeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+CXhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXIJKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyIC8+Cis8L3ByZT48cD5TZWFyY2ggaW4gdGhlIHJlZ2lzdGVyZWQgc2V0IHRoZSBoYW5kbGVyIGFibGUgdG8gcmVhZC93cml0ZSB0aGF0IGVuY29kaW5nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IHZhbHVlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhbmRsZXIgb3IgTlVMTCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXRDaGFyRW5jb2RpbmdOYW1lIiBpZD0ieG1sR2V0Q2hhckVuY29kaW5nTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRDaGFyRW5jb2RpbmdOYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCXhtbEdldENoYXJFbmNvZGluZ05hbWUJKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyIC8+Cis8L3ByZT48cD5UaGUgImNhbm9uaWNhbCIgbmFtZSBmb3IgWE1MIGVuY29kaW5nLiBDLmYuIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjY2hhcmVuY29kaW5nIFNlY3Rpb24gNC4zLjMgQ2hhcmFjdGVyIEVuY29kaW5nIGluIEVudGl0aWVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjYW5vbmljYWwgbmFtZSBmb3IgdGhlIGdpdmVuIGVuY29kaW5nPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0RW5jb2RpbmdBbGlhcyIgaWQ9InhtbEdldEVuY29kaW5nQWxpYXMiPjwvYT5GdW5jdGlvbjogeG1sR2V0RW5jb2RpbmdBbGlhczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgl4bWxHZXRFbmNvZGluZ0FsaWFzCShjb25zdCBjaGFyICogYWxpYXMpPGJyIC8+Cis8L3ByZT48cD5Mb29rdXAgYW4gZW5jb2RpbmcgbmFtZSBmb3IgdGhlIGdpdmVuIGFsaWFzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFsaWFzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYWxpYXMgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHRoZSBvcmlnaW5hbCBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIiBpZD0ieG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIj48L2E+RnVuY3Rpb246IHhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVyczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgY2hhciBlbmNvZGluZyBzdXBwb3J0LCBpdCByZWdpc3RlcnMgdGhlIGRlZmF1bHQgZW5jb2Rpbmcgc3VwcG9ydGVkLiBOT1RFOiB3aGlsZSBwdWJsaWMsIHRoaXMgZnVuY3Rpb24gdXN1YWxseSBkb2Vzbid0IG5lZWQgdG8gYmUgY2FsbGVkIGluIG5vcm1hbCBwcm9jZXNzaW5nLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyIiBpZD0ieG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4JeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcgkoY29uc3QgY2hhciAqIG5hbWUsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmM8L2E+IGlucHV0LCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IG91dHB1dCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbmQgcmVnaXN0ZXJzIGFuIHhtbENoYXJFbmNvZGluZ0hhbmRsZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIG5hbWUsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0lucHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jPC9hPiB0byByZWFkIHRoYXQgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IHRvIHdyaXRlIHRoYXQgZW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBjcmVhdGVkIChvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlQ2hhckVuY29kaW5nIiBpZD0ieG1sUGFyc2VDaGFyRW5jb2RpbmciPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VDaGFyRW5jb2Rpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4JeG1sUGFyc2VDaGFyRW5jb2RpbmcJKGNvbnN0IGNoYXIgKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+Q29tcGFyZSB0aGUgc3RyaW5nIHRvIHRoZSBlbmNvZGluZyBzY2hlbWVzIGFscmVhZHkga25vd24uIE5vdGUgdGhhdCB0aGUgY29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlIGFjY29yZGluZ2x5IHRvIHRoZSBzZWN0aW9uIFtYTUxdIDQuMy4zIENoYXJhY3RlciBFbmNvZGluZyBpbiBFbnRpdGllcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vbmUgb2YgdGhlIFhNTF9DSEFSX0VOQ09ESU5HXy4uLiB2YWx1ZXMgb3IgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSI+WE1MX0NIQVJfRU5DT0RJTkdfTk9ORTwvYT4gaWYgbm90IHJlY29nbml6ZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyIiBpZD0ieG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyIj48L2E+RnVuY3Rpb246IHhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyCSg8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBoYW5kbGVyKTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXIgdGhlIGNoYXIgZW5jb2RpbmcgaGFuZGxlciwgc3VycHJpc2luZywgaXNuJ3QgaXQgPzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBoYW5kbGVyIGJsb2NrPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWVudGl0aWVzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1lbnRpdGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmOTc1ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1lbnRpdGllcy5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBlbnRpdGllcyBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIGVudGl0aWVzIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwiPmVuY29kaW5nPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwiPmdsb2JhbHM8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD50aGlzIG1vZHVsZSBwcm92aWRlcyBzb21lIG9mIHRoZSBlbnRpdHkgQVBJIG5lZWRlZCBmb3IgdGhlIHBhcnNlciBhbmQgYXBwbGljYXRpb25zLiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxFbnRpdGllc1RhYmxlIj54bWxFbnRpdGllc1RhYmxlPC9hPjxiciAvPnN0cnVjdCBfeG1sSGFzaFRhYmxlCitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGUiPnhtbEVudGl0aWVzVGFibGU8L2E+ICogPGEgbmFtZT0ieG1sRW50aXRpZXNUYWJsZVB0ciIgaWQ9InhtbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sRW50aXR5VHlwZSI+eG1sRW50aXR5VHlwZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkRG9jRW50aXR5Ij54bWxBZGREb2NFbnRpdHk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBpbnQgdHlwZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JPGEgaHJlZj0iI3htbEFkZER0ZEVudGl0eSI+eG1sQWRkRHRkRW50aXR5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiPnhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXM8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5RW50aXRpZXNUYWJsZSI+eG1sQ29weUVudGl0aWVzVGFibGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPiB0YWJsZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlRW50aXRpZXNUYWJsZSI+eG1sQ3JlYXRlRW50aXRpZXNUYWJsZTwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRHVtcEVudGl0aWVzVGFibGUiPnhtbER1bXBFbnRpdGllc1RhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW50aXRpZXNUYWJsZVB0ciI+eG1sRW50aXRpZXNUYWJsZVB0cjwvYT4gdGFibGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRHVtcEVudGl0eURlY2wiPnhtbER1bXBFbnRpdHlEZWNsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxFbmNvZGVFbnRpdGllcyI+eG1sRW5jb2RlRW50aXRpZXM8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGlucHV0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBpbnB1dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sRW5jb2RlU3BlY2lhbENoYXJzIj54bWxFbmNvZGVTcGVjaWFsQ2hhcnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGlucHV0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVFbnRpdGllc1RhYmxlIj54bWxGcmVlRW50aXRpZXNUYWJsZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPiB0YWJsZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0RG9jRW50aXR5Ij54bWxHZXREb2NFbnRpdHk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXREdGRFbnRpdHkiPnhtbEdldER0ZEVudGl0eTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JPGEgaHJlZj0iI3htbEdldFBhcmFtZXRlckVudGl0eSI+eG1sR2V0UGFyYW1ldGVyRW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXRQcmVkZWZpbmVkRW50aXR5Ij54bWxHZXRQcmVkZWZpbmVkRW50aXR5PC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzIj54bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzPC9hPgkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RW50aXR5Ij54bWxOZXdFbnRpdHk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBpbnQgdHlwZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbEVudGl0aWVzVGFibGUiIGlkPSJ4bWxFbnRpdGllc1RhYmxlIj5TdHJ1Y3R1cmUgeG1sRW50aXRpZXNUYWJsZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sRW50aXRpZXNUYWJsZTxiciAvPnN0cnVjdCBfeG1sSGFzaFRhYmxlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbEVudGl0eVR5cGUiIGlkPSJ4bWxFbnRpdHlUeXBlIj54bWxFbnRpdHlUeXBlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sRW50aXR5VHlwZSB7CisgICAgPGEgbmFtZT0iWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZIiBpZD0iWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZIj5YTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFk8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFkiIGlkPSJYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZIj5YTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFkiIGlkPSJYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFkiPlhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWTwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFkiIGlkPSJYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWSI+WE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZIiBpZD0iWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFkiPlhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkiIGlkPSJYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkiPlhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWTwvYT4gPSA2Cit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sQWRkRG9jRW50aXR5IiBpZD0ieG1sQWRkRG9jRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbEFkZERvY0VudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CXhtbEFkZERvY0VudGl0eQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgZW50aXR5IGZvciB0aGlzIGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdHlwZSBYTUxfeHh4X3l5eV9FTlRJVFk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgZXh0ZXJuYWwgSUQgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBzeXN0ZW0gSUQgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgZW50aXR5IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEFkZER0ZEVudGl0eSIgaWQ9InhtbEFkZER0ZEVudGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxBZGREdGRFbnRpdHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgl4bWxBZGREdGRFbnRpdHkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCB0eXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IGVudGl0eSBmb3IgdGhpcyBkb2N1bWVudCBEVEQgZXh0ZXJuYWwgc3Vic2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdHlwZSBYTUxfeHh4X3l5eV9FTlRJVFk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgZXh0ZXJuYWwgSUQgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBzeXN0ZW0gSUQgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgZW50aXR5IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiIGlkPSJ4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzIj48L2E+RnVuY3Rpb246IHhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5DbGVhbnVwIHVwIHRoZSBwcmVkZWZpbmVkIGVudGl0aWVzIHRhYmxlLiBEZXByZWNhdGVkIGNhbGw8L3A+Cis8aDM+PGEgbmFtZT0ieG1sQ29weUVudGl0aWVzVGFibGUiIGlkPSJ4bWxDb3B5RW50aXRpZXNUYWJsZSI+PC9hPkZ1bmN0aW9uOiB4bWxDb3B5RW50aXRpZXNUYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+CXhtbENvcHlFbnRpdGllc1RhYmxlCSg8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPiB0YWJsZSk8YnIgLz4KKzwvcHJlPjxwPkJ1aWxkIGEgY29weSBvZiBhbiBlbnRpdHkgdGFibGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVudGl0eSB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlRW50aXRpZXNUYWJsZSIgaWQ9InhtbENyZWF0ZUVudGl0aWVzVGFibGUiPjwvYT5GdW5jdGlvbjogeG1sQ3JlYXRlRW50aXRpZXNUYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sI3htbEVudGl0aWVzVGFibGVQdHIiPnhtbEVudGl0aWVzVGFibGVQdHI8L2E+CXhtbENyZWF0ZUVudGl0aWVzVGFibGUJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5jcmVhdGUgYW5kIGluaXRpYWxpemUgYW4gZW1wdHkgZW50aXRpZXMgaGFzaCB0YWJsZS4gVGhpcyByZWFsbHkgZG9lc24ndCBtYWtlIHNlbnNlIGFuZCBzaG91bGQgYmUgZGVwcmVjYXRlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPiBqdXN0IGNyZWF0ZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbER1bXBFbnRpdGllc1RhYmxlIiBpZD0ieG1sRHVtcEVudGl0aWVzVGFibGUiPjwvYT5GdW5jdGlvbjogeG1sRHVtcEVudGl0aWVzVGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbER1bXBFbnRpdGllc1RhYmxlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdGllc1RhYmxlUHRyIj54bWxFbnRpdGllc1RhYmxlUHRyPC9hPiB0YWJsZSk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBlbnRpdHkgdGFibGUgYXMgYW4gWE1MIERURCBkZWZpbml0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBYTUwgYnVmZmVyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVudGl0eSB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbER1bXBFbnRpdHlEZWNsIiBpZD0ieG1sRHVtcEVudGl0eURlY2wiPjwvYT5GdW5jdGlvbjogeG1sRHVtcEVudGl0eURlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbER1bXBFbnRpdHlEZWNsCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBlbnQpPGJyIC8+Cis8L3ByZT48cD5UaGlzIHdpbGwgZHVtcCB0aGUgY29udGVudCBvZiB0aGUgZW50aXR5IHRhYmxlIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gWE1MIGJ1ZmZlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZW50aXR5IHRhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRW5jb2RlRW50aXRpZXMiIGlkPSJ4bWxFbmNvZGVFbnRpdGllcyI+PC9hPkZ1bmN0aW9uOiB4bWxFbmNvZGVFbnRpdGllczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEVuY29kZUVudGl0aWVzCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGlucHV0KTxiciAvPgorPC9wcmU+PHA+VE9ETzogcmVtb3ZlIHhtbEVuY29kZUVudGl0aWVzLCBvbmNlIHdlIGFyZSBub3QgYWZyYWlkIG9mIGJyZWFraW5nIGJpbmFyeSBjb21wYXRpYmlsaXR5IFBlb3BsZSBtdXN0IG1pZ3JhdGUgdGhlaXIgY29kZSB0byA8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+eG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ8L2E+ICEgVGhpcyByb3V0aW5lIHdpbGwgaXNzdWUgYSB3YXJuaW5nIHdoZW4gZW5jb3VudGVyZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBzdHJpbmcgdG8gY29udmVydCB0byBYTUwuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQiIGlkPSJ4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCI+PC9hPkZ1bmN0aW9uOiB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBpbnB1dCk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgZ2xvYmFsIGVuY29kaW5nIG9mIGEgc3RyaW5nLCByZXBsYWNpbmcgdGhlIHByZWRlZmluZWQgZW50aXRpZXMgYW5kIG5vbiBBU0NJSSB2YWx1ZXMgd2l0aCB0aGVpciBlbnRpdGllcyBhbmQgQ2hhclJlZiBjb3VudGVycGFydHMuIENvbnRyYXJ5IHRvIHhtbEVuY29kZUVudGl0aWVzLCB0aGlzIHJvdXRpbmUgaXMgcmVlbnRyYW50LCBhbmQgcmVzdWx0IG11c3QgYmUgZGVhbGxvY2F0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBzdHJpbmcgdG8gY29udmVydCB0byBYTUwuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIGRvbmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRW5jb2RlU3BlY2lhbENoYXJzIiBpZD0ieG1sRW5jb2RlU3BlY2lhbENoYXJzIj48L2E+RnVuY3Rpb246IHhtbEVuY29kZVNwZWNpYWxDaGFyczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEVuY29kZVNwZWNpYWxDaGFycwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBpbnB1dCk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgZ2xvYmFsIGVuY29kaW5nIG9mIGEgc3RyaW5nLCByZXBsYWNpbmcgdGhlIHByZWRlZmluZWQgZW50aXRpZXMgdGhpcyByb3V0aW5lIGlzIHJlZW50cmFudCwgYW5kIHJlc3VsdCBtdXN0IGJlIGRlYWxsb2NhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgc3RyaW5nIHRvIGNvbnZlcnQgdG8gWE1MLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggdGhlIHN1YnN0aXR1dGlvbiBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVFbnRpdGllc1RhYmxlIiBpZD0ieG1sRnJlZUVudGl0aWVzVGFibGUiPjwvYT5GdW5jdGlvbjogeG1sRnJlZUVudGl0aWVzVGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVFbnRpdGllc1RhYmxlCQkoPGEgaHJlZj0ibGlieG1sLWVudGl0aWVzLmh0bWwjeG1sRW50aXRpZXNUYWJsZVB0ciI+eG1sRW50aXRpZXNUYWJsZVB0cjwvYT4gdGFibGUpPGJyIC8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbnRpdGllcyBoYXNoIHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiBlbnRpdHkgdGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXREb2NFbnRpdHkiIGlkPSJ4bWxHZXREb2NFbnRpdHkiPjwvYT5GdW5jdGlvbjogeG1sR2V0RG9jRW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sR2V0RG9jRW50aXR5CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+RG8gYW4gZW50aXR5IGxvb2t1cCBpbiB0aGUgZG9jdW1lbnQgZW50aXR5IGhhc2ggdGFibGUgYW5kPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29ycmVzcG9uZGluZyBlbnRpdHksIG90aGVyd2lzZSBhIGxvb2t1cCBpcyBkb25lIGluIHRoZSBwcmVkZWZpbmVkIGVudGl0aWVzIHRvby4gUmV0dXJucyBBIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBzdHJ1Y3R1cmUgb3IgTlVMTCBpZiBub3QgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0RHRkRW50aXR5IiBpZD0ieG1sR2V0RHRkRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbEdldER0ZEVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CXhtbEdldER0ZEVudGl0eQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPkRvIGFuIGVudGl0eSBsb29rdXAgaW4gdGhlIERURCBlbnRpdHkgaGFzaCB0YWJsZSBhbmQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCByZWZlcmVuY2luZyB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb3JyZXNwb25kaW5nIGVudGl0eSwgaWYgZm91bmQuIE5vdGU6IHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgZG9jdW1lbnQgbm9kZSwgbm90IHRoZSBEVEQgbm9kZS4gUmV0dXJucyBBIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBzdHJ1Y3R1cmUgb3IgTlVMTCBpZiBub3QgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0UGFyYW1ldGVyRW50aXR5IiBpZD0ieG1sR2V0UGFyYW1ldGVyRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbEdldFBhcmFtZXRlckVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CXhtbEdldFBhcmFtZXRlckVudGl0eQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+RG8gYW4gZW50aXR5IGxvb2t1cCBpbiB0aGUgaW50ZXJuYWwgYW5kIGV4dGVybmFsIHN1YnNldHMgYW5kPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXIgZW50aXR5LCBpZiBmb3VuZC4gUmV0dXJucyBBIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBzdHJ1Y3R1cmUgb3IgTlVMTCBpZiBub3QgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0UHJlZGVmaW5lZEVudGl0eSIgaWQ9InhtbEdldFByZWRlZmluZWRFbnRpdHkiPjwvYT5GdW5jdGlvbjogeG1sR2V0UHJlZGVmaW5lZEVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CXhtbEdldFByZWRlZmluZWRFbnRpdHkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoaXMgbmFtZSBpcyBhbiBwcmVkZWZpbmVkIGVudGl0eS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIGVudGl0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMiIGlkPSJ4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzIj48L2E+RnVuY3Rpb246IHhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5TZXQgdXAgdGhlIHByZWRlZmluZWQgZW50aXRpZXMuIERlcHJlY2F0ZWQgY2FsbDwvcD4KKzxoMz48YSBuYW1lPSJ4bWxOZXdFbnRpdHkiIGlkPSJ4bWxOZXdFbnRpdHkiPjwvYT5GdW5jdGlvbjogeG1sTmV3RW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sTmV3RW50aXR5CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBpbnQgdHlwZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgZW50aXR5LCB0aGlzIGRpZmZlcnMgZnJvbSB4bWxBZGREb2NFbnRpdHkoKSB0aGF0IGlmIHRoZSBkb2N1bWVudCBpcyBOVUxMIG9yIGhhcyBubyBpbnRlcm5hbCBzdWJzZXQgZGVmaW5lZCwgdGhlbiBhbiB1bmxpbmtlZCBlbnRpdHkgc3RydWN0dXJlIHdpbGwgYmUgcmV0dXJuZWQsIGl0IGlzIHRoZW4gdGhlIHJlc3BvbnNhYmlsaXR5IG9mIHRoZSBjYWxsZXIgdG8gbGluayBpdCB0byB0aGUgZG9jdW1lbnQgbGF0ZXIgb3IgZnJlZSBpdCB3aGVuIG5vdCBuZWVkZWQgYW55bW9yZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IHR5cGUgWE1MX3h4eF95eXlfRU5USVRZPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5FeHRlcm5hbElEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IGV4dGVybmFsIElEIGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgc3lzdGVtIElEIGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtZ2xvYmFscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkZmE3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1nbG9iYWxzLmh0bWwKQEAgLTAsMCArMSwxNTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBnbG9iYWxzIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgZ2xvYmFscyBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLWVudGl0aWVzLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sIj5lbnRpdGllczwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sIj5oYXNoPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLWhhc2guaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+YWxsIHRoZSBnbG9iYWwgdmFyaWFibGVzIGFuZCB0aHJlYWQgaGFuZGxpbmcgZm9yIHRob3NlIHZhcmlhYmxlcyBpcyBoYW5kbGVkIGJ5IHRoaXMgbW9kdWxlLiAgVGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYnVpbGRfZ2xvYi5weSBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb24gZmlsZSBnbG9iYWwuZGF0YSA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxHbG9iYWxTdGF0ZSI+eG1sR2xvYmFsU3RhdGU8L2E+PGJyIC8+c3RydWN0IF94bWxHbG9iYWxTdGF0ZQorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxHbG9iYWxTdGF0ZSI+eG1sR2xvYmFsU3RhdGU8L2E+ICogPGEgbmFtZT0ieG1sR2xvYmFsU3RhdGVQdHIiIGlkPSJ4bWxHbG9iYWxTdGF0ZVB0ciI+eG1sR2xvYmFsU3RhdGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sQ2xlYW51cEdsb2JhbHMiPnhtbENsZWFudXBHbG9iYWxzPC9hPgkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4JPGEgaHJlZj0iI3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4gZnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxJbml0R2xvYmFscyI+eG1sSW5pdEdsb2JhbHM8L2E+CQkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlIj54bWxJbml0aWFsaXplR2xvYmFsU3RhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbEdsb2JhbFN0YXRlUHRyIj54bWxHbG9iYWxTdGF0ZVB0cjwvYT4gZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4JPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4gZnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+Cis8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CShjb25zdCBjaGFyICogVVJJLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIsIDxiciAvPgkJCQkJCQkgaW50IGNvbXByZXNzaW9uKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4gZnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPgorPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CShjb25zdCBjaGFyICogVVJJLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZUZ1bmMiPnhtbFJlZ2lzdGVyTm9kZUZ1bmM8L2E+CTxhIGhyZWY9IiN4bWxSZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxSZWdpc3Rlck5vZGVEZWZhdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+CTxhIGhyZWY9IiN4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZSI+eG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+IHYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZSI+eG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemU8L2E+CShpbnQgdik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRnVuYyI+eG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9hPgk8YSBocmVmPSIjeG1sVGhyRGVmRGVyZWdpc3Rlck5vZGVEZWZhdWx0Ij54bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRnVuYyI+eG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU8L2E+CShpbnQgdik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZTwvYT4JKGludCB2KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dCI+eG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dDwvYT4JKGludCB2KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZSI+eG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZTwvYT4JKGludCB2KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUiPnhtbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlPC9hPgkoaW50IHYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIj54bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlPC9hPgkoaW50IHYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4JPGEgaHJlZj0iI3htbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+eG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4gZnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMiPnhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXM8L2E+CShpbnQgdik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4JPGEgaHJlZj0iI3htbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij54bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvYT4JKDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPiBmdW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUiPnhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlPC9hPgkoaW50IHYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPgk8YSBocmVmPSIjeG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdCI+eG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdDwvYT4JKDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT4gZnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRockRlZlNhdmVOb0VtcHR5VGFncyI+eG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzPC9hPgkoaW50IHYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sVGhyRGVmU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sVGhyRGVmU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+IGhhbmRsZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+eG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IGhhbmRsZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUiPnhtbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTwvYT4JKGludCB2KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgk8YSBocmVmPSIjeG1sVGhyRGVmVHJlZUluZGVudFN0cmluZyI+eG1sVGhyRGVmVHJlZUluZGVudFN0cmluZzwvYT4JKGNvbnN0IGNoYXIgKiB2KTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJ4bWxHbG9iYWxTdGF0ZSIgaWQ9InhtbEdsb2JhbFN0YXRlIj5TdHJ1Y3R1cmUgeG1sR2xvYmFsU3RhdGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbEdsb2JhbFN0YXRlPGJyIC8+c3RydWN0IF94bWxHbG9iYWxTdGF0ZSB7CisgICAgY29uc3QgY2hhciAqCXhtbFBhcnNlclZlcnNpb24KKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWExvY2F0b3IiPnhtbFNBWExvY2F0b3I8L2E+CXhtbERlZmF1bHRTQVhMb2NhdG9yCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPgl4bWxEZWZhdWx0U0FYSGFuZGxlcgorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT4JZG9jYkRlZmF1bHRTQVhIYW5kbGVyCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPglodG1sRGVmYXVsdFNBWEhhbmRsZXIKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPgl4bWxGcmVlCisgICAgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+CXhtbE1hbGxvYworICAgIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPgl4bWxNZW1TdHJkdXAKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPgl4bWxSZWFsbG9jCisgICAgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT4JeG1sR2VuZXJpY0Vycm9yCisgICAgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4JeG1sU3RydWN0dXJlZEVycm9yCisgICAgdm9pZCAqCXhtbEdlbmVyaWNFcnJvckNvbnRleHQKKyAgICBpbnQJb2xkWE1MV0Rjb21wYXRpYmlsaXR5CisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPgl4bWxCdWZmZXJBbGxvY1NjaGVtZQorICAgIGludAl4bWxEZWZhdWx0QnVmZmVyU2l6ZQorICAgIGludAl4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUKKyAgICBpbnQJeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlCisgICAgaW50CXhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlCisgICAgaW50CXhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUKKyAgICBpbnQJeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUKKyAgICBpbnQJeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZQorICAgIGludAl4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzCisgICAgaW50CXhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlCisgICAgaW50CXhtbFNhdmVOb0VtcHR5VGFncworICAgIGludAl4bWxJbmRlbnRUcmVlT3V0cHV0CisgICAgY29uc3QgY2hhciAqCXhtbFRyZWVJbmRlbnRTdHJpbmcKKyAgICA8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZUZ1bmMiPnhtbFJlZ2lzdGVyTm9kZUZ1bmM8L2E+CXhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZQorICAgIDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+CXhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlCisgICAgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+CXhtbE1hbGxvY0F0b21pYworICAgIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yIj54bWxFcnJvcjwvYT4JeG1sTGFzdEVycm9yCisgICAgPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZQorICAgIDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUKKyAgICB2b2lkICoJeG1sU3RydWN0dXJlZEVycm9yQ29udGV4dAorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwR2xvYmFscyIgaWQ9InhtbENsZWFudXBHbG9iYWxzIj48L2E+RnVuY3Rpb246IHhtbENsZWFudXBHbG9iYWxzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhbnVwR2xvYmFscwkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5BZGRpdGlvbmFsIGNsZWFudXAgZm9yIG11bHRpLXRocmVhZGluZzwvcD4KKzxoMz48YSBuYW1lPSJ4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQiIGlkPSJ4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQiPjwvYT5GdW5jdGlvbjogeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4JeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0CSg8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbERlcmVnaXN0ZXJOb2RlRnVuYyI+eG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXJzIGEgY2FsbGJhY2sgZm9yIG5vZGUgZGVzdHJ1Y3Rpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgRGVyZWdpc3Rlck5vZGVGdW5jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGRlcmVnaXN0cmF0aW9uIGZ1bmN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGVyZWdpc3Rlck5vZGVGdW5jIiBpZD0ieG1sRGVyZWdpc3Rlck5vZGVGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sRGVyZWdpc3Rlck5vZGVGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sRGVyZWdpc3Rlck5vZGVGdW5jCit2b2lkCXhtbERlcmVnaXN0ZXJOb2RlRnVuYwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSkKKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgdGhlIGRlcmVnaXN0cmF0aW9uIGNhbGxiYWNrIG9mIGEgZGlzY2FyZGVkIG5vZGU8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sSW5pdEdsb2JhbHMiIGlkPSJ4bWxJbml0R2xvYmFscyI+PC9hPkZ1bmN0aW9uOiB4bWxJbml0R2xvYmFsczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSW5pdEdsb2JhbHMJCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkFkZGl0aW9uYWwgaW5pdGlhbGlzYXRpb24gZm9yIG11bHRpLXRocmVhZGluZzwvcD4KKzxoMz48YSBuYW1lPSJ4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUiIGlkPSJ4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUiPjwvYT5GdW5jdGlvbjogeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUJKDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sR2xvYmFsU3RhdGVQdHIiPnhtbEdsb2JhbFN0YXRlUHRyPC9hPiBncyk8YnIgLz4KKzwvcHJlPjxwPnhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZSgpIGluaXRpYWxpemUgYSBnbG9iYWwgc3RhdGUgd2l0aCBhbGwgdGhlIGRlZmF1bHQgdmFsdWVzIG9mIHRoZSBsaWJyYXJ5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBuZXdseSBhbGxvY2F0ZWQgZ2xvYmFsIHN0YXRlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0IiBpZD0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0Ij48L2E+RnVuY3Rpb246IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAkoPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4gZnVuYyk8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhIGNhbGxiYWNrIGZvciBVUkkgb3V0cHV0IGZpbGUgaGFuZGxpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb2xkIHZhbHVlIG9mIHRoZSByZWdpc3RyYXRpb24gZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiIGlkPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMKKzxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYwkoY29uc3QgY2hhciAqIFVSSSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyLCA8YnIgLz4JCQkJCQkJIGludCBjb21wcmVzc2lvbikKKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgdGhlIGZ1bmN0aW9uIGRvaW5nIHRoZSBsb29rdXAgZm9yIGEgc3VpdGFibGUgb3V0cHV0IG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIGFuIFVSSS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIHRvIHdyaXRlIHRvPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gaW4gY2FzZSBvZiBzdWNjZXNzIG9yIE5VTEwgaWYgbm8gbWV0aG9kIHdhcyBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0IiBpZD0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4JeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQJKDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPiBmdW5jKTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXJzIGEgY2FsbGJhY2sgZm9yIFVSSSBpbnB1dCBmaWxlIGhhbmRsaW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZnVuY3Rpb24gcG9pbnRlciB0byB0aGUgbmV3IFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb2xkIHZhbHVlIG9mIHRoZSByZWdpc3RyYXRpb24gZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyIgaWQ9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYworPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jCShjb25zdCBjaGFyICogVVJJLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpCis8L3ByZT48cD5TaWduYXR1cmUgZm9yIHRoZSBmdW5jdGlvbiBkb2luZyB0aGUgbG9va3VwIGZvciBhIHN1aXRhYmxlIGlucHV0IG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIGFuIFVSSS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIHRvIHJlYWQgZnJvbTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVxdWVzdGVkIHNvdXJjZSBlbmNvZGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW4gY2FzZSBvZiBzdWNjZXNzIG9yIE5VTEwgaWYgbm8gbWV0aG9kIHdhcyBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFJlZ2lzdGVyTm9kZURlZmF1bHQiIGlkPSJ4bWxSZWdpc3Rlck5vZGVEZWZhdWx0Ij48L2E+RnVuY3Rpb246IHhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbFJlZ2lzdGVyTm9kZUZ1bmMiPnhtbFJlZ2lzdGVyTm9kZUZ1bmM8L2E+CXhtbFJlZ2lzdGVyTm9kZURlZmF1bHQJKDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT4gZnVuYyk8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVycyBhIGNhbGxiYWNrIGZvciBub2RlIGNyZWF0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZnVuY3Rpb24gcG9pbnRlciB0byB0aGUgbmV3IFJlZ2lzdGVyTm9kZUZ1bmM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvbGQgdmFsdWUgb2YgdGhlIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlZ2lzdGVyTm9kZUZ1bmMiIGlkPSJ4bWxSZWdpc3Rlck5vZGVGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sUmVnaXN0ZXJOb2RlRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFJlZ2lzdGVyTm9kZUZ1bmMKK3ZvaWQJeG1sUmVnaXN0ZXJOb2RlRnVuYwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSkKKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgdGhlIHJlZ2lzdHJhdGlvbiBjYWxsYmFjayBvZiBhIGNyZWF0ZWQgbm9kZTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZSIgaWQ9InhtbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lIj48L2E+RnVuY3Rpb246IHhtbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPgl4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPiB2KTxiciAvPgorPC9wcmU+PHA+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+djwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZSIgaWQ9InhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplIj48L2E+RnVuY3Rpb246IHhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplCShpbnQgdik8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmRGVyZWdpc3Rlck5vZGVEZWZhdWx0IiBpZD0ieG1sVGhyRGVmRGVyZWdpc3Rlck5vZGVEZWZhdWx0Ij48L2E+RnVuY3Rpb246IHhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sRGVyZWdpc3Rlck5vZGVGdW5jIj54bWxEZXJlZ2lzdGVyTm9kZUZ1bmM8L2E+CXhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdAkoPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMiPnhtbERlcmVnaXN0ZXJOb2RlRnVuYzwvYT4gZnVuYyk8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIiBpZD0ieG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUJKGludCB2KTxiciAvPgorPC9wcmU+PHA+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+djwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSIgaWQ9InhtbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlCShpbnQgdik8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dCIgaWQ9InhtbFRockRlZkluZGVudFRyZWVPdXRwdXQiPjwvYT5GdW5jdGlvbjogeG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0CShpbnQgdik8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZSIgaWQ9InhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlCShpbnQgdik8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUiIGlkPSJ4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZQkoaW50IHYpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUiIGlkPSJ4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGhyRGVmTG9hZEV4dER0ZERlZmF1bHRWYWx1ZQkoaW50IHYpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCIgaWQ9InhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCI+PC9hPkZ1bmN0aW9uOiB4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPgl4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQJKDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM8L2E+IGZ1bmMpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMiIGlkPSJ4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzIj48L2E+RnVuY3Rpb246IHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGhyRGVmUGFyc2VyRGVidWdFbnRpdGllcwkoaW50IHYpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0IiBpZD0ieG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQiPjwvYT5GdW5jdGlvbjogeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYzwvYT4JeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQJKDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jPC9hPiBmdW5jKTxiciAvPgorPC9wcmU+PHA+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSIgaWQ9InhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlCShpbnQgdik8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdCIgaWQ9InhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQiPjwvYT5GdW5jdGlvbjogeG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sUmVnaXN0ZXJOb2RlRnVuYyI+eG1sUmVnaXN0ZXJOb2RlRnVuYzwvYT4JeG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdAkoPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxSZWdpc3Rlck5vZGVGdW5jIj54bWxSZWdpc3Rlck5vZGVGdW5jPC9hPiBmdW5jKTxiciAvPgorPC9wcmU+PHA+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MiIGlkPSJ4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MiPjwvYT5GdW5jdGlvbjogeG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZlNhdmVOb0VtcHR5VGFncwkoaW50IHYpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMiIGlkPSJ4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jIj48L2E+RnVuY3Rpb246IHhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+IGhhbmRsZXIpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyIgaWQ9InhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPjwvYT5GdW5jdGlvbjogeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYwkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gaGFuZGxlcik8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oYW5kbGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUiIGlkPSJ4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZQkoaW50IHYpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmciIGlkPSJ4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCBjaGFyICoJeG1sVGhyRGVmVHJlZUluZGVudFN0cmluZwkoY29uc3QgY2hhciAqIHYpPGJyIC8+Cis8L3ByZT48cD48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1oYXNoLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1oYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI5OWM1MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWhhc2guaHRtbApAQCAtMCwwICsxLDExNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIGhhc2ggZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSBoYXNoIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIj5nbG9iYWxzPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwiPmxpc3Q8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtbGlzdC5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD5UaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBoYXNoIHRhYmxlIHN1cHBvcnQgdXNlZCBpbiB2YXJpb3VzIHBsYWNlcyBpbiB0aGUgbGlicmFyeS4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9DQVNUX0ZQVFIiPlhNTF9DQVNUX0ZQVFI8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sSGFzaFRhYmxlIj54bWxIYXNoVGFibGU8L2E+PGJyIC8+c3RydWN0IF94bWxIYXNoVGFibGUKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGUiPnhtbEhhc2hUYWJsZTwvYT4gKiA8YSBuYW1lPSJ4bWxIYXNoVGFibGVQdHIiIGlkPSJ4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEhhc2hBZGRFbnRyeSI+eG1sSGFzaEFkZEVudHJ5PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSGFzaEFkZEVudHJ5MiI+eG1sSGFzaEFkZEVudHJ5MjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEhhc2hBZGRFbnRyeTMiPnhtbEhhc2hBZGRFbnRyeTM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMywgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxIYXNoQ29waWVyIj54bWxIYXNoQ29waWVyPC9hPgordm9pZCAqCTxhIGhyZWY9IiN4bWxIYXNoQ29waWVyIj54bWxIYXNoQ29waWVyPC9hPgkJCSh2b2lkICogcGF5bG9hZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxIYXNoQ29weSI+eG1sSGFzaENvcHk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaENvcGllciI+eG1sSGFzaENvcGllcjwvYT4gZik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPgk8YSBocmVmPSIjeG1sSGFzaENyZWF0ZSI+eG1sSGFzaENyZWF0ZTwvYT4JCShpbnQgc2l6ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPgk8YSBocmVmPSIjeG1sSGFzaENyZWF0ZURpY3QiPnhtbEhhc2hDcmVhdGVEaWN0PC9hPgkoaW50IHNpemUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4JCSh2b2lkICogcGF5bG9hZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEhhc2hGcmVlIj54bWxIYXNoRnJlZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxIYXNoTG9va3VwIj54bWxIYXNoTG9va3VwPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbEhhc2hMb29rdXAyIj54bWxIYXNoTG9va3VwMjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgk8YSBocmVmPSIjeG1sSGFzaExvb2t1cDMiPnhtbEhhc2hMb29rdXAzPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgk8YSBocmVmPSIjeG1sSGFzaFFMb29rdXAiPnhtbEhhc2hRTG9va3VwPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgk8YSBocmVmPSIjeG1sSGFzaFFMb29rdXAyIj54bWxIYXNoUUxvb2t1cDI8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeDIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgk8YSBocmVmPSIjeG1sSGFzaFFMb29rdXAzIj54bWxIYXNoUUxvb2t1cDM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeDIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEhhc2hSZW1vdmVFbnRyeSI+eG1sSGFzaFJlbW92ZUVudHJ5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSGFzaFJlbW92ZUVudHJ5MiI+eG1sSGFzaFJlbW92ZUVudHJ5MjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxIYXNoUmVtb3ZlRW50cnkzIj54bWxIYXNoUmVtb3ZlRW50cnkzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sSGFzaFNjYW4iPnhtbEhhc2hTY2FuPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+IGYsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEhhc2hTY2FuMyI+eG1sSGFzaFNjYW4zPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyIj54bWxIYXNoU2Nhbm5lcjwvYT4gZiwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sSGFzaFNjYW5GdWxsIj54bWxIYXNoU2NhbkZ1bGw8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPiBmLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxIYXNoU2NhbkZ1bGwzIj54bWxIYXNoU2NhbkZ1bGwzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+IGYsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+CQkJKHZvaWQgKiBwYXlsb2FkLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxIYXNoU2Nhbm5lckZ1bGwiPnhtbEhhc2hTY2FubmVyRnVsbDwvYT4KK3ZvaWQJPGEgaHJlZj0iI3htbEhhc2hTY2FubmVyRnVsbCI+eG1sSGFzaFNjYW5uZXJGdWxsPC9hPgkJKHZvaWQgKiBwYXlsb2FkLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxIYXNoU2l6ZSI+eG1sSGFzaFNpemU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSGFzaFVwZGF0ZUVudHJ5Ij54bWxIYXNoVXBkYXRlRW50cnk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEhhc2hVcGRhdGVFbnRyeTIiPnhtbEhhc2hVcGRhdGVFbnRyeTI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIgLz4JCQkJCSB2b2lkICogdXNlcmRhdGEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxIYXNoVXBkYXRlRW50cnkzIj54bWxIYXNoVXBkYXRlRW50cnkzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iWE1MX0NBU1RfRlBUUiIgaWQ9IlhNTF9DQVNUX0ZQVFIiPjwvYT5NYWNybzogWE1MX0NBU1RfRlBUUjwvaDM+PHByZT4jZGVmaW5lIFhNTF9DQVNUX0ZQVFI8L3ByZT48cD5NYWNybyB0byBkbyBhIGNhc3RpbmcgZnJvbSBhbiBvYmplY3QgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgd2l0aG91dCBlbmNvdW50ZXJpbmcgYSB3YXJuaW5nIGZyb20gZ2NjICNkZWZpbmUgWE1MX0NBU1RfRlBUUihmcHRyKSAoKih2b2lkICoqKSgmYW1wO2ZwdHIpKSBUaGlzIG1hY3JvIHZpb2xhdGVkIElTTyBDIGFsaWFzaW5nIHJ1bGVzIChnY2M0IG9uIHMzOTAgYnJva2UpIHNvIGl0IGlzIGRpc2FibGVkIG5vdzwvcD4KKzxoMz48YSBuYW1lPSJ4bWxIYXNoVGFibGUiIGlkPSJ4bWxIYXNoVGFibGUiPlN0cnVjdHVyZSB4bWxIYXNoVGFibGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbEhhc2hUYWJsZTxiciAvPnN0cnVjdCBfeG1sSGFzaFRhYmxlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxIYXNoQWRkRW50cnkiIGlkPSJ4bWxIYXNoQWRkRW50cnkiPjwvYT5GdW5jdGlvbjogeG1sSGFzaEFkZEVudHJ5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hBZGRFbnRyeQkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhKTxiciAvPgorPC9wcmU+PHA+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIEBuYW1lLiBEdXBsaWNhdGUgbmFtZXMgZ2VuZXJhdGUgZXJyb3JzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hBZGRFbnRyeTIiIGlkPSJ4bWxIYXNoQWRkRW50cnkyIj48L2E+RnVuY3Rpb246IHhtbEhhc2hBZGRFbnRyeTI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSGFzaEFkZEVudHJ5MgkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhKTxiciAvPgorPC9wcmU+PHA+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZS4gRHVwbGljYXRlIHR1cGxlcyBnZW5lcmF0ZSBlcnJvcnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoQWRkRW50cnkzIiBpZD0ieG1sSGFzaEFkZEVudHJ5MyI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoQWRkRW50cnkzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hBZGRFbnRyeTMJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzLCA8YnIgLz4JCQkJCSB2b2lkICogdXNlcmRhdGEpPGJyIC8+Cis8L3ByZT48cD5BZGQgdGhlIEB1c2VyZGF0YSB0byB0aGUgaGFzaCBAdGFibGUuIFRoaXMgY2FuIGxhdGVyIGJlIHJldHJpZXZlZCBieSB1c2luZyB0aGUgdHVwbGUgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykuIER1cGxpY2F0ZSBlbnRyaWVzIGdlbmVyYXRlIGVycm9ycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoQ29waWVyIiBpZD0ieG1sSGFzaENvcGllciI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbEhhc2hDb3BpZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxIYXNoQ29waWVyCit2b2lkICoJeG1sSGFzaENvcGllcgkJCSh2b2lkICogcGF5bG9hZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSkKKzwvcHJlPjxwPkNhbGxiYWNrIHRvIGNvcHkgZGF0YSBmcm9tIGEgaGFzaC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGF5bG9hZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGEgaW4gdGhlIGhhc2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIGFzc29jaWF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29weSBvZiB0aGUgZGF0YSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxIYXNoQ29weSIgaWQ9InhtbEhhc2hDb3B5Ij48L2E+RnVuY3Rpb246IHhtbEhhc2hDb3B5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JeG1sSGFzaENvcHkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoQ29waWVyIj54bWxIYXNoQ29waWVyPC9hPiBmKTxiciAvPgorPC9wcmU+PHA+U2NhbiB0aGUgaGFzaCBAdGFibGUgYW5kIGFwcGxpZWQgQGYgdG8gZWFjaCB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb3BpZXIgZnVuY3Rpb24gZm9yIGl0ZW1zIGluIHRoZSBoYXNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHRhYmxlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoQ3JlYXRlIiBpZD0ieG1sSGFzaENyZWF0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoQ3JlYXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JeG1sSGFzaENyZWF0ZQkJKGludCBzaXplKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IHhtbEhhc2hUYWJsZVB0ci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFzaENyZWF0ZURpY3QiIGlkPSJ4bWxIYXNoQ3JlYXRlRGljdCI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoQ3JlYXRlRGljdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CXhtbEhhc2hDcmVhdGVEaWN0CShpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHdoaWNoIHdpbGwgdXNlIEBkaWN0IGFzIHRoZSBpbnRlcm5hbCBkaWN0aW9uYXJ5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZGljdGlvbmFyeSB0byB1c2UgZm9yIHRoZSBoYXNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QsIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoRGVhbGxvY2F0b3IiIGlkPSJ4bWxIYXNoRGVhbGxvY2F0b3IiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxIYXNoRGVhbGxvY2F0b3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxIYXNoRGVhbGxvY2F0b3IKK3ZvaWQJeG1sSGFzaERlYWxsb2NhdG9yCQkodm9pZCAqIHBheWxvYWQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpCis8L3ByZT48cD5DYWxsYmFjayB0byBmcmVlIGRhdGEgZnJvbSBhIGhhc2guPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBheWxvYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkYXRhIGluIHRoZSBoYXNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBhc3NvY2lhdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxIYXNoRnJlZSIgaWQ9InhtbEhhc2hGcmVlIj48L2E+RnVuY3Rpb246IHhtbEhhc2hGcmVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxIYXNoRnJlZQkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdGhlIGhhc2ggQHRhYmxlIGFuZCBpdHMgY29udGVudHMuIFRoZSB1c2VyZGF0YSBpcyBkZWFsbG9jYXRlZCB3aXRoIEBmIGlmIHByb3ZpZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hMb29rdXAiIGlkPSJ4bWxIYXNoTG9va3VwIj48L2E+RnVuY3Rpb246IHhtbEhhc2hMb29rdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSGFzaExvb2t1cAkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgQG5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hMb29rdXAyIiBpZD0ieG1sSGFzaExvb2t1cDIiPjwvYT5GdW5jdGlvbjogeG1sSGFzaExvb2t1cDI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSGFzaExvb2t1cDIJCQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyKTxiciAvPgorPC9wcmU+PHA+RmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSAoQG5hbWUsIEBuYW1lMikgdHVwbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFzaExvb2t1cDMiIGlkPSJ4bWxIYXNoTG9va3VwMyI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoTG9va3VwMzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxIYXNoTG9va3VwMwkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzKTxiciAvPgorPC9wcmU+PHA+RmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKSB0dXBsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoUUxvb2t1cCIgaWQ9InhtbEhhc2hRTG9va3VwIj48L2E+RnVuY3Rpb246IHhtbEhhc2hRTG9va3VwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbEhhc2hRTG9va3VwCQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIFFOYW1lIEBwcmVmaXg6QG5hbWUvQG5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hRTG9va3VwMiIgaWQ9InhtbEhhc2hRTG9va3VwMiI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoUUxvb2t1cDI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSGFzaFFMb29rdXAyCQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeDIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyKTxiciAvPgorPC9wcmU+PHA+RmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSBRTmFtZXMgdHVwbGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4MjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBwcmVmaXggb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hRTG9va3VwMyIgaWQ9InhtbEhhc2hRTG9va3VwMyI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoUUxvb2t1cDM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSGFzaFFMb29rdXAzCQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeDIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMyk8YnIgLz4KKzwvcHJlPjxwPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykgdHVwbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgcHJlZml4IG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXgzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGhpcmQgcHJlZml4IG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFzaFJlbW92ZUVudHJ5IiBpZD0ieG1sSGFzaFJlbW92ZUVudHJ5Ij48L2E+RnVuY3Rpb246IHhtbEhhc2hSZW1vdmVFbnRyeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxIYXNoUmVtb3ZlRW50cnkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8YnIgLz4KKzwvcHJlPjxwPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgQG5hbWUgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBoYXNoIEB0YWJsZS4gRXhpc3RpbmcgdXNlcmRhdGEgZm9yIHRoaXMgdHVwbGUgd2lsbCBiZSByZW1vdmVkIGFuZCBmcmVlZCB3aXRoIEBmLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlbW92ZWQgaXRlbSAoaWYgYW55KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgcmVtb3ZhbCBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3Igbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hSZW1vdmVFbnRyeTIiIGlkPSJ4bWxIYXNoUmVtb3ZlRW50cnkyIj48L2E+RnVuY3Rpb246IHhtbEhhc2hSZW1vdmVFbnRyeTI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSGFzaFJlbW92ZUVudHJ5MgkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8YnIgLz4KKzwvcHJlPjxwPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgKEBuYW1lLCBAbmFtZTIpIHR1cGxlIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgaGFzaCBAdGFibGUuIEV4aXN0aW5nIHVzZXJkYXRhIGZvciB0aGlzIHR1cGxlIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlbW92ZWQgaXRlbSAoaWYgYW55KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgcmVtb3ZhbCBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3Igbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hSZW1vdmVFbnRyeTMiIGlkPSJ4bWxIYXNoUmVtb3ZlRW50cnkzIj48L2E+RnVuY3Rpb246IHhtbEhhc2hSZW1vdmVFbnRyeTM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSGFzaFJlbW92ZUVudHJ5MwkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaERlYWxsb2NhdG9yIj54bWxIYXNoRGVhbGxvY2F0b3I8L2E+IGYpPGJyIC8+Cis8L3ByZT48cD5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgaGFzaCBAdGFibGUuIEV4aXN0aW5nIHVzZXJkYXRhIGZvciB0aGlzIHR1cGxlIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZW1vdmVkIGl0ZW0gKGlmIGFueSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIHJlbW92YWwgc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yIG9yIG5vdCBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoU2NhbiIgaWQ9InhtbEhhc2hTY2FuIj48L2E+RnVuY3Rpb246IHhtbEhhc2hTY2FuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxIYXNoU2NhbgkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lciI+eG1sSGFzaFNjYW5uZXI8L2E+IGYsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+U2NhbiB0aGUgaGFzaCBAdGFibGUgYW5kIGFwcGxpZWQgQGYgdG8gZWFjaCB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2FubmVyIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgZGF0YSBwYXNzZWQgdG8gZjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hTY2FuMyIgaWQ9InhtbEhhc2hTY2FuMyI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoU2NhbjM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEhhc2hTY2FuMwkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hTY2FubmVyIj54bWxIYXNoU2Nhbm5lcjwvYT4gZiwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5TY2FuIHRoZSBoYXNoIEB0YWJsZSBhbmQgYXBwbGllZCBAZiB0byBlYWNoIHZhbHVlIG1hdGNoaW5nIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlLiBJZiBvbmUgb2YgdGhlIG5hbWVzIGlzIG51bGwsIHRoZSBjb21wYXJpc29uIGlzIGNvbnNpZGVyZWQgdG8gbWF0Y2guPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2FubmVyIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgZGF0YSBwYXNzZWQgdG8gZjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc2hTY2FuRnVsbCIgaWQ9InhtbEhhc2hTY2FuRnVsbCI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoU2NhbkZ1bGw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEhhc2hTY2FuRnVsbAkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoU2Nhbm5lckZ1bGwiPnhtbEhhc2hTY2FubmVyRnVsbDwvYT4gZiwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5TY2FuIHRoZSBoYXNoIEB0YWJsZSBhbmQgYXBwbGllZCBAZiB0byBlYWNoIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNjYW5uZXIgZnVuY3Rpb24gZm9yIGl0ZW1zIGluIHRoZSBoYXNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBkYXRhIHBhc3NlZCB0byBmPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFzaFNjYW5GdWxsMyIgaWQ9InhtbEhhc2hTY2FuRnVsbDMiPjwvYT5GdW5jdGlvbjogeG1sSGFzaFNjYW5GdWxsMzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSGFzaFNjYW5GdWxsMwkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFNjYW5uZXJGdWxsIj54bWxIYXNoU2Nhbm5lckZ1bGw8L2E+IGYsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+U2NhbiB0aGUgaGFzaCBAdGFibGUgYW5kIGFwcGxpZWQgQGYgdG8gZWFjaCB2YWx1ZSBtYXRjaGluZyAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKSB0dXBsZS4gSWYgb25lIG9mIHRoZSBuYW1lcyBpcyBudWxsLCB0aGUgY29tcGFyaXNvbiBpcyBjb25zaWRlcmVkIHRvIG1hdGNoLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGRhdGEgcGFzc2VkIHRvIGY8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoU2Nhbm5lciIgaWQ9InhtbEhhc2hTY2FubmVyIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sSGFzaFNjYW5uZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxIYXNoU2Nhbm5lcgordm9pZAl4bWxIYXNoU2Nhbm5lcgkJCSh2b2lkICogcGF5bG9hZCwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpCis8L3ByZT48cD5DYWxsYmFjayB3aGVuIHNjYW5uaW5nIGRhdGEgaW4gYSBoYXNoIHdpdGggdGhlIHNpbXBsZSBzY2FubmVyLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXlsb2FkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGF0YSBpbiB0aGUgaGFzaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgc2Nhbm5uZXIgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgYXNzb2NpYXRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sSGFzaFNjYW5uZXJGdWxsIiBpZD0ieG1sSGFzaFNjYW5uZXJGdWxsIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sSGFzaFNjYW5uZXJGdWxsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sSGFzaFNjYW5uZXJGdWxsCit2b2lkCXhtbEhhc2hTY2FubmVyRnVsbAkJKHZvaWQgKiBwYXlsb2FkLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUzKQorPC9wcmU+PHA+Q2FsbGJhY2sgd2hlbiBzY2FubmluZyBkYXRhIGluIGEgaGFzaCB3aXRoIHRoZSBmdWxsIHNjYW5uZXIuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBheWxvYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkYXRhIGluIHRoZSBoYXNoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBzY2Fubm5lciBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBhc3NvY2lhdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBuYW1lIGFzc29jaWF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGhpcmQgbmFtZSBhc3NvY2lhdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxIYXNoU2l6ZSIgaWQ9InhtbEhhc2hTaXplIj48L2E+RnVuY3Rpb246IHhtbEhhc2hTaXplPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hTaXplCQkJKDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+UXVlcnkgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbnN0YWxsZWQgaW4gdGhlIGhhc2ggQHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFzaCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgaGFzaCB0YWJsZSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFzaFVwZGF0ZUVudHJ5IiBpZD0ieG1sSGFzaFVwZGF0ZUVudHJ5Ij48L2E+RnVuY3Rpb246IHhtbEhhc2hVcGRhdGVFbnRyeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxIYXNoVXBkYXRlRW50cnkJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTxiciAvPgorPC9wcmU+PHA+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIEBuYW1lLiBFeGlzdGluZyBlbnRyeSBmb3IgdGhpcyBAbmFtZSB3aWxsIGJlIHJlbW92ZWQgYW5kIGZyZWVkIHdpdGggQGYgaWYgZm91bmQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJkYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlcGxhY2VkIGl0ZW0gKGlmIGFueSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNoVXBkYXRlRW50cnkyIiBpZD0ieG1sSGFzaFVwZGF0ZUVudHJ5MiI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNoVXBkYXRlRW50cnkyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEhhc2hVcGRhdGVFbnRyeTIJCSg8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPiB0YWJsZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZTIsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyZGF0YSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoRGVhbGxvY2F0b3IiPnhtbEhhc2hEZWFsbG9jYXRvcjwvYT4gZik8YnIgLz4KKzwvcHJlPjxwPkFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZSAoQG5hbWUsIEBuYW1lMikgdHVwbGUuIEV4aXN0aW5nIGVudHJ5IGZvciB0aGlzIHR1cGxlIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZiBpZiBmb3VuZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhhc2ggdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZXBsYWNlZCBpdGVtIChpZiBhbnkpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIHRoZSBhZGRpdGlvbiBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFzaFVwZGF0ZUVudHJ5MyIgaWQ9InhtbEhhc2hVcGRhdGVFbnRyeTMiPjwvYT5GdW5jdGlvbjogeG1sSGFzaFVwZGF0ZUVudHJ5MzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxIYXNoVXBkYXRlRW50cnkzCQkoPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4gdGFibGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lMywgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJkYXRhLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hEZWFsbG9jYXRvciI+eG1sSGFzaERlYWxsb2NhdG9yPC9hPiBmKTxiciAvPgorPC9wcmU+PHA+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIHR1cGxlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpLiBFeGlzdGluZyBlbnRyeSBmb3IgdGhpcyB0dXBsZSB3aWxsIGJlIHJlbW92ZWQgYW5kIGZyZWVkIHdpdGggQGYgaWYgZm91bmQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBoYXNoIHRhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWUyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJkYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlcGxhY2VkIGl0ZW0gKGlmIGFueSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtbGliLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1saWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmQ5OGQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtbGliLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+UmVmZXJlbmNlIE1hbnVhbCBmb3IgbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5SZWZlcmVuY2UgTWFudWFsIGZvciBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjx1bD48bGk+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCI+RE9DQnBhcnNlcjwvYT46IG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLUhUTUxwYXJzZXIuaHRtbCI+SFRNTHBhcnNlcjwvYT46IGludGVyZmFjZSBmb3IgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXI8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtSFRNTHRyZWUuaHRtbCI+SFRNTHRyZWU8L2E+OiBzcGVjaWZpYyBBUElzIHRvIHByb2Nlc3MgSFRNTCB0cmVlLCBlc3BlY2lhbGx5IHNlcmlhbGl6YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwiPlNBWDwvYT46IE9sZCBTQVggdmVyc2lvbiAxIGhhbmRsZXIsIGRlcHJlY2F0ZWQ8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtU0FYMi5odG1sIj5TQVgyPC9hPjogU0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWMxNG4uaHRtbCI+YzE0bjwvYT46IFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNhdGFsb2cuaHRtbCI+Y2F0YWxvZzwvYT46IGludGVyZmFjZXMgdG8gdGhlIENhdGFsb2cgaGFuZGxpbmcgc3lzdGVtPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWNodmFsaWQuaHRtbCI+Y2h2YWxpZDwvYT46IFVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWRlYnVnWE1MLmh0bWwiPmRlYnVnWE1MPC9hPjogVHJlZSBkZWJ1Z2dpbmcgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwiPmRpY3Q8L2E+OiBzdHJpbmcgZGljdGlvbm5hcnk8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCI+ZW5jb2Rpbmc8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9uczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1lbnRpdGllcy5odG1sIj5lbnRpdGllczwvYT46IGludGVyZmFjZSBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwiPmdsb2JhbHM8L2E+OiBpbnRlcmZhY2UgZm9yIGFsbCBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCI+aGFzaDwvYT46IENoYWluZWQgaGFzaCB0YWJsZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sIj5saXN0PC9hPjogbGlzdHMgaW50ZXJmYWNlczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwiPm5hbm9mdHA8L2E+OiBtaW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1uYW5vaHR0cC5odG1sIj5uYW5vaHR0cDwvYT46IG1pbmltYWwgSFRUUCBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+cGFyc2VyPC9hPjogdGhlIGNvcmUgcGFyc2VyIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCI+cGFyc2VySW50ZXJuYWxzPC9hPjogaW50ZXJuYWxzIHJvdXRpbmVzIGV4cG9ydGVkIGJ5IHRoZSBwYXJzZXIuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCI+cGF0dGVybjwvYT46IHBhdHRlcm4gZXhwcmVzc2lvbiBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwiPnNjaGVtYXNJbnRlcm5hbHM8L2E+OiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgU2NoZW1hczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+OiBYTUwgU2NoZW1hc3Ryb24gaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPjogaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+dHJlZTwvYT46IGludGVyZmFjZXMgZm9yIHRyZWUgbWFuaXB1bGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sIj51cmk8L2E+OiBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+dmFsaWQ8L2E+OiBUaGUgRFREIHZhbGlkYXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCI+eGluY2x1ZGU8L2E+OiBpbXBsZW1lbnRhdGlvbiBvZiBYSW5jbHVkZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sIj54bGluazwvYT46IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZTwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sIj54bWxJTzwvYT46IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sIj54bWxhdXRvbWF0YTwvYT46IEFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGE8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCI+eG1sZXJyb3I8L2E+OiBlcnJvciBoYW5kbGluZzwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxleHBvcnRzLmh0bWwiPnhtbGV4cG9ydHM8L2E+OiBtYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxtZW1vcnk8L2E+OiBpbnRlcmZhY2UgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sIj54bWxtb2R1bGU8L2E+OiBkeW5hbWljIG1vZHVsZSBsb2FkaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+OiB0aGUgWE1MUmVhZGVyIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sIj54bWxyZWdleHA8L2E+OiByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT46IHRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwiPnhtbHNjaGVtYXM8L2E+OiBpbmNvbXBsZXRlIFhNTCBTY2hlbWFzIHN0cnVjdHVyZSBpbXBsZW1lbnRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCI+eG1sc2NoZW1hc3R5cGVzPC9hPjogaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwiPnhtbHN0cmluZzwvYT46IHNldCBvZiByb3V0aW5lcyB0byBwcm9jZXNzIHN0cmluZ3M8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPjogVW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWx2ZXJzaW9uLmh0bWwiPnhtbHZlcnNpb248L2E+OiBjb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnM8L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwiPnhtbHdyaXRlcjwvYT46IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTDwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj54cGF0aDwvYT46IFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhwYXRoSW50ZXJuYWxzLmh0bWwiPnhwYXRoSW50ZXJuYWxzPC9hPjogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCI+eHBvaW50ZXI8L2E+OiBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVyczwvbGk+PC91bD48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWxpc3QuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWQxZTgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtbGlzdC5odG1sCkBAIC0wLDAgKzEsMTIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgbGlzdCBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIGxpc3QgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwiPmhhc2g8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLW5hbm9mdHAuaHRtbCI+bmFub2Z0cDwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnRoaXMgbW9kdWxlIGltcGxlbWVudCB0aGUgbGlzdCBzdXBwb3J0IHVzZWQgaW4gdmFyaW91cyBwbGFjZSBpbiB0aGUgbGlicmFyeS4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sTGluayI+eG1sTGluazwvYT48YnIgLz5zdHJ1Y3QgX3htbExpbmsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaW5rIj54bWxMaW5rPC9hPiAqIDxhIG5hbWU9InhtbExpbmtQdHIiIGlkPSJ4bWxMaW5rUHRyIj54bWxMaW5rUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sTGlzdCI+eG1sTGlzdDwvYT48YnIgLz5zdHJ1Y3QgX3htbExpc3QKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0Ij54bWxMaXN0PC9hPiAqIDxhIG5hbWU9InhtbExpc3RQdHIiIGlkPSJ4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgk8YSBocmVmPSIjeG1sTGlua0dldERhdGEiPnhtbExpbmtHZXREYXRhPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+IGxrKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTGlzdEFwcGVuZCI+eG1sTGlzdEFwcGVuZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxMaXN0Q2xlYXIiPnhtbExpc3RDbGVhcjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTGlzdENvcHkiPnhtbExpc3RDb3B5PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBvbGQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPgk8YSBocmVmPSIjeG1sTGlzdENyZWF0ZSI+eG1sTGlzdENyZWF0ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3REZWFsbG9jYXRvciI+eG1sTGlzdERlYWxsb2NhdG9yPC9hPiBkZWFsbG9jYXRvciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RGF0YUNvbXBhcmUiPnhtbExpc3REYXRhQ29tcGFyZTwvYT4gY29tcGFyZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sTGlzdERhdGFDb21wYXJlIj54bWxMaXN0RGF0YUNvbXBhcmU8L2E+CitpbnQJPGEgaHJlZj0iI3htbExpc3REYXRhQ29tcGFyZSI+eG1sTGlzdERhdGFDb21wYXJlPC9hPgkJKGNvbnN0IHZvaWQgKiBkYXRhMCwgPGJyIC8+CQkJCQkgY29uc3Qgdm9pZCAqIGRhdGExKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbExpc3REZWFsbG9jYXRvciI+eG1sTGlzdERlYWxsb2NhdG9yPC9hPgordm9pZAk8YSBocmVmPSIjeG1sTGlzdERlYWxsb2NhdG9yIj54bWxMaXN0RGVhbGxvY2F0b3I8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaW5rUHRyIj54bWxMaW5rUHRyPC9hPiBsaykKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExpc3REZWxldGUiPnhtbExpc3REZWxldGU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxMaXN0RHVwIj54bWxMaXN0RHVwPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gb2xkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTGlzdEVtcHR5Ij54bWxMaXN0RW1wdHk8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+CTxhIGhyZWY9IiN4bWxMaXN0RW5kIj54bWxMaXN0RW5kPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+CTxhIGhyZWY9IiN4bWxMaXN0RnJvbnQiPnhtbExpc3RGcm9udDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxMaXN0SW5zZXJ0Ij54bWxMaXN0SW5zZXJ0PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExpc3RNZXJnZSI+eG1sTGlzdE1lcmdlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExpc3RQb3BCYWNrIj54bWxMaXN0UG9wQmFjazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExpc3RQb3BGcm9udCI+eG1sTGlzdFBvcEZyb250PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxMaXN0UHVzaEJhY2siPnhtbExpc3RQdXNoQmFjazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbExpc3RQdXNoRnJvbnQiPnhtbExpc3RQdXNoRnJvbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbExpc3RSZW1vdmVBbGwiPnhtbExpc3RSZW1vdmVBbGw8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbExpc3RSZW1vdmVGaXJzdCI+eG1sTGlzdFJlbW92ZUZpcnN0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxMaXN0UmVtb3ZlTGFzdCI+eG1sTGlzdFJlbW92ZUxhc3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxMaXN0UmV2ZXJzZSI+eG1sTGlzdFJldmVyc2U8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbExpc3RSZXZlcnNlU2VhcmNoIj54bWxMaXN0UmV2ZXJzZVNlYXJjaDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExpc3RSZXZlcnNlV2FsayI+eG1sTGlzdFJldmVyc2VXYWxrPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0V2Fsa2VyIj54bWxMaXN0V2Fsa2VyPC9hPiB3YWxrZXIsIDxiciAvPgkJCQkJIGNvbnN0IHZvaWQgKiB1c2VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgk8YSBocmVmPSIjeG1sTGlzdFNlYXJjaCI+eG1sTGlzdFNlYXJjaDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbExpc3RTaXplIj54bWxMaXN0U2l6ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExpc3RTb3J0Ij54bWxMaXN0U29ydDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExpc3RXYWxrIj54bWxMaXN0V2FsazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+IHdhbGtlciwgPGJyIC8+CQkJCQkgY29uc3Qgdm9pZCAqIHVzZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+CitpbnQJPGEgaHJlZj0iI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+CQkJKGNvbnN0IHZvaWQgKiBkYXRhLCA8YnIgLz4JCQkJCSBjb25zdCB2b2lkICogdXNlcikKKzwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJ4bWxMaW5rIiBpZD0ieG1sTGluayI+U3RydWN0dXJlIHhtbExpbms8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbExpbms8YnIgLz5zdHJ1Y3QgX3htbExpbmsgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbExpc3QiIGlkPSJ4bWxMaXN0Ij5TdHJ1Y3R1cmUgeG1sTGlzdDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sTGlzdDxiciAvPnN0cnVjdCBfeG1sTGlzdCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sTGlua0dldERhdGEiIGlkPSJ4bWxMaW5rR2V0RGF0YSI+PC9hPkZ1bmN0aW9uOiB4bWxMaW5rR2V0RGF0YTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxMaW5rR2V0RGF0YQkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+IGxrKTxiciAvPgorPC9wcmU+PHA+U2VlIFJldHVybnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGs8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGluazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBkYXRhIHJlZmVyZW5jZWQgZnJvbSB0aGlzIGxpbms8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0QXBwZW5kIiBpZD0ieG1sTGlzdEFwcGVuZCI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0QXBwZW5kPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RBcHBlbmQJCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPkluc2VydCBkYXRhIGluIHRoZSBvcmRlcmVkIGxpc3QgYXQgdGhlIGVuZCBmb3IgdGhpcyB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAxIGluIGNhc2Ugb2YgZmFpbHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RDbGVhciIgaWQ9InhtbExpc3RDbGVhciI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0Q2xlYXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RDbGVhcgkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPGJyIC8+Cis8L3ByZT48cD5SZW1vdmUgdGhlIGFsbCBkYXRhIGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTGlzdENvcHkiIGlkPSJ4bWxMaXN0Q29weSI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0Q29weTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxMaXN0Q29weQkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBvbGQpPGJyIC8+Cis8L3ByZT48cD5Nb3ZlIGFsbCB0aGUgZWxlbWVudCBmcm9tIHRoZSBvbGQgbGlzdCBpbiB0aGUgbmV3IGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b2xkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb2xkIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIDEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RDcmVhdGUiIGlkPSJ4bWxMaXN0Q3JlYXRlIj48L2E+RnVuY3Rpb246IHhtbExpc3RDcmVhdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+CXhtbExpc3RDcmVhdGUJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3REZWFsbG9jYXRvciI+eG1sTGlzdERlYWxsb2NhdG9yPC9hPiBkZWFsbG9jYXRvciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0RGF0YUNvbXBhcmUiPnhtbExpc3REYXRhQ29tcGFyZTwvYT4gY29tcGFyZSk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVhbGxvY2F0b3I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG9wdGlvbmFsIGRlYWxsb2NhdG9yIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wYXJlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBjb21wYXJpc29uIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGxpc3Qgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTGlzdERhdGFDb21wYXJlIiBpZD0ieG1sTGlzdERhdGFDb21wYXJlIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sTGlzdERhdGFDb21wYXJlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sTGlzdERhdGFDb21wYXJlCitpbnQJeG1sTGlzdERhdGFDb21wYXJlCQkoY29uc3Qgdm9pZCAqIGRhdGEwLCA8YnIgLz4JCQkJCSBjb25zdCB2b2lkICogZGF0YTEpCis8L3ByZT48cD5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHRvIGNvbXBhcmUgMiBkYXRhLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhMDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGExPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaXMgZXF1YWxpdHksIC0xIG9yIDEgb3RoZXJ3aXNlIGRlcGVuZGluZyBvbiB0aGUgb3JkZXJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxMaXN0RGVhbGxvY2F0b3IiIGlkPSJ4bWxMaXN0RGVhbGxvY2F0b3IiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxMaXN0RGVhbGxvY2F0b3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxMaXN0RGVhbGxvY2F0b3IKK3ZvaWQJeG1sTGlzdERlYWxsb2NhdG9yCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaW5rUHRyIj54bWxMaW5rUHRyPC9hPiBsaykKKzwvcHJlPjxwPkNhbGxiYWNrIGZ1bmN0aW9uIHVzZWQgdG8gZnJlZSBkYXRhIGZyb20gYSBsaXN0LjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGEgdG8gZGVhbGxvY2F0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sTGlzdERlbGV0ZSIgaWQ9InhtbExpc3REZWxldGUiPjwvYT5GdW5jdGlvbjogeG1sTGlzdERlbGV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTGlzdERlbGV0ZQkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPGJyIC8+Cis8L3ByZT48cD5EZWxldGVzIHRoZSBsaXN0IGFuZCBpdHMgYXNzb2NpYXRlZCBkYXRhPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTGlzdER1cCIgaWQ9InhtbExpc3REdXAiPjwvYT5GdW5jdGlvbjogeG1sTGlzdER1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4JeG1sTGlzdER1cAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gb2xkKTxiciAvPgorPC9wcmU+PHA+RHVwbGljYXRlIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b2xkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgY29weSBvZiB0aGUgbGlzdCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0RW1wdHkiIGlkPSJ4bWxMaXN0RW1wdHkiPjwvYT5GdW5jdGlvbjogeG1sTGlzdEVtcHR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RFbXB0eQkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPGJyIC8+Cis8L3ByZT48cD5JcyB0aGUgbGlzdCBlbXB0eSA/PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZSBsaXN0IGlzIGVtcHR5LCAwIGlmIG5vdCBlbXB0eSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RFbmQiIGlkPSJ4bWxMaXN0RW5kIj48L2E+RnVuY3Rpb246IHhtbExpc3RFbmQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+CXhtbExpc3RFbmQJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPGJyIC8+Cis8L3ByZT48cD5HZXQgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgbGlzdCwgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RGcm9udCIgaWQ9InhtbExpc3RGcm9udCI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0RnJvbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpbmtQdHIiPnhtbExpbmtQdHI8L2E+CXhtbExpc3RGcm9udAkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGxpc3QsIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0SW5zZXJ0IiBpZD0ieG1sTGlzdEluc2VydCI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0SW5zZXJ0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RJbnNlcnQJCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPkluc2VydCBkYXRhIGluIHRoZSBvcmRlcmVkIGxpc3QgYXQgdGhlIGJlZ2lubmluZyBmb3IgdGhpcyB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAxIGluIGNhc2Ugb2YgZmFpbHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RNZXJnZSIgaWQ9InhtbExpc3RNZXJnZSI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0TWVyZ2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RNZXJnZQkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwyKTxiciAvPgorPC9wcmU+PHA+aW5jbHVkZSBhbGwgdGhlIGVsZW1lbnRzIG9mIHRoZSBzZWNvbmQgbGlzdCBpbiB0aGUgZmlyc3Qgb25lIGFuZCBjbGVhciB0aGUgc2Vjb25kIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9yaWdpbmFsIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmwyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGxpc3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0UG9wQmFjayIgaWQ9InhtbExpc3RQb3BCYWNrIj48L2E+RnVuY3Rpb246IHhtbExpc3RQb3BCYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMaXN0UG9wQmFjawkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwpPGJyIC8+Cis8L3ByZT48cD5SZW1vdmVzIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0UG9wRnJvbnQiIGlkPSJ4bWxMaXN0UG9wRnJvbnQiPjwvYT5GdW5jdGlvbjogeG1sTGlzdFBvcEZyb250PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMaXN0UG9wRnJvbnQJCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxiciAvPgorPC9wcmU+PHA+UmVtb3ZlcyB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RQdXNoQmFjayIgaWQ9InhtbExpc3RQdXNoQmFjayI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0UHVzaEJhY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTGlzdFB1c2hCYWNrCQkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5hZGQgdGhlIG5ldyBkYXRhIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5ldyBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHN1Y2Nlc3NmdWwsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTGlzdFB1c2hGcm9udCIgaWQ9InhtbExpc3RQdXNoRnJvbnQiPjwvYT5GdW5jdGlvbjogeG1sTGlzdFB1c2hGcm9udDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxMaXN0UHVzaEZyb250CQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPmFkZCB0aGUgbmV3IGRhdGEgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmV3IGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgc3VjY2Vzc2Z1bCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0UmVtb3ZlQWxsIiBpZD0ieG1sTGlzdFJlbW92ZUFsbCI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0UmVtb3ZlQWxsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RSZW1vdmVBbGwJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+UmVtb3ZlIHRoZSBhbGwgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5saXN0IGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZGVhbGxvY2F0aW9uLCBvciAwIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RSZW1vdmVGaXJzdCIgaWQ9InhtbExpc3RSZW1vdmVGaXJzdCI+PC9hPkZ1bmN0aW9uOiB4bWxMaXN0UmVtb3ZlRmlyc3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTGlzdFJlbW92ZUZpcnN0CQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgZmlyc3QgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5saXN0IGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgYSBkZWFsbG9jYXRpb24gb2NjdXJlZCwgb3IgMCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0UmVtb3ZlTGFzdCIgaWQ9InhtbExpc3RSZW1vdmVMYXN0Ij48L2E+RnVuY3Rpb246IHhtbExpc3RSZW1vdmVMYXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpc3RSZW1vdmVMYXN0CQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgbGFzdCBpbnN0YW5jZSBhc3NvY2lhdGVkIHRvIGRhdGEgaW4gdGhlIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxpc3QgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBhIGRlYWxsb2NhdGlvbiBvY2N1cmVkLCBvciAwIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RSZXZlcnNlIiBpZD0ieG1sTGlzdFJldmVyc2UiPjwvYT5GdW5jdGlvbjogeG1sTGlzdFJldmVyc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RSZXZlcnNlCQkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8YnIgLz4KKzwvcHJlPjxwPlJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RSZXZlcnNlU2VhcmNoIiBpZD0ieG1sTGlzdFJldmVyc2VTZWFyY2giPjwvYT5GdW5jdGlvbjogeG1sTGlzdFJldmVyc2VTZWFyY2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTGlzdFJldmVyc2VTZWFyY2gJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBsaXN0IGluIHJldmVyc2Ugb3JkZXIgZm9yIGFuIGV4aXN0aW5nIHZhbHVlIG9mIEBkYXRhPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNlYXJjaCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gQGRhdGEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTGlzdFJldmVyc2VXYWxrIiBpZD0ieG1sTGlzdFJldmVyc2VXYWxrIj48L2E+RnVuY3Rpb246IHhtbExpc3RSZXZlcnNlV2FsazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTGlzdFJldmVyc2VXYWxrCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RXYWxrZXIiPnhtbExpc3RXYWxrZXI8L2E+IHdhbGtlciwgPGJyIC8+CQkJCQkgY29uc3Qgdm9pZCAqIHVzZXIpPGJyIC8+Cis8L3ByZT48cD5XYWxrIGFsbCB0aGUgZWxlbWVudCBvZiB0aGUgbGlzdCBpbiByZXZlcnNlIG9yZGVyIGFuZCBhcHBseSB0aGUgd2Fsa2VyIGZ1bmN0aW9uIHRvIGl0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53YWxrZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJvY2Vzc2luZyBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB1c2VyIHBhcmFtZXRlciBwYXNzZWQgdG8gdGhlIHdhbGtlciBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RTZWFyY2giIGlkPSJ4bWxMaXN0U2VhcmNoIj48L2E+RnVuY3Rpb246IHhtbExpc3RTZWFyY2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTGlzdFNlYXJjaAkJCSg8YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+IGwsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBsaXN0IGZvciBhbiBleGlzdGluZyB2YWx1ZSBvZiBAZGF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZWFyY2ggdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBhc3NvY2lhdGVkIHRvIEBkYXRhIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RTaXplIiBpZD0ieG1sTGlzdFNpemUiPjwvYT5GdW5jdGlvbjogeG1sTGlzdFNpemU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTGlzdFNpemUJCQkoPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPiBsKTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxpc3Qgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RTb3J0IiBpZD0ieG1sTGlzdFNvcnQiPjwvYT5GdW5jdGlvbjogeG1sTGlzdFNvcnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RTb3J0CQkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCk8YnIgLz4KKzwvcHJlPjxwPlNvcnQgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgbGlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExpc3RXYWxrIiBpZD0ieG1sTGlzdFdhbGsiPjwvYT5GdW5jdGlvbjogeG1sTGlzdFdhbGs8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbExpc3RXYWxrCQkJKDxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwjeG1sTGlzdFB0ciI+eG1sTGlzdFB0cjwvYT4gbCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0V2Fsa2VyIj54bWxMaXN0V2Fsa2VyPC9hPiB3YWxrZXIsIDxiciAvPgkJCQkJIGNvbnN0IHZvaWQgKiB1c2VyKTxiciAvPgorPC9wcmU+PHA+V2FsayBhbGwgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IGZyb20gZmlyc3QgdG8gbGFzdCBhbmQgYXBwbHkgdGhlIHdhbGtlciBmdW5jdGlvbiB0byBpdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2Fsa2VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByb2Nlc3NpbmcgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdXNlciBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoZSB3YWxrZXIgZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaXN0V2Fsa2VyIiBpZD0ieG1sTGlzdFdhbGtlciI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbExpc3RXYWxrZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxMaXN0V2Fsa2VyCitpbnQJeG1sTGlzdFdhbGtlcgkJCShjb25zdCB2b2lkICogZGF0YSwgPGJyIC8+CQkJCQkgY29uc3Qgdm9pZCAqIHVzZXIpCis8L3ByZT48cD5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHdoZW4gd2Fsa2luZyBhIGxpc3Qgd2l0aCB4bWxMaXN0V2FsaygpLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGF0YSBmb3VuZCBpbiB0aGUgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgdXNlciBwcm92aWRlZCBkYXRhIHRvIHRoZSB3YWxrZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgdG8gc3RvcCB3YWxraW5nIHRoZSBsaXN0LCAxIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1uYW5vZnRwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc5MDY2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLW5hbm9mdHAuaHRtbApAQCAtMCwwICsxLDkyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgbmFub2Z0cCBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIG5hbm9mdHAgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1saXN0Lmh0bWwiPmxpc3Q8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLW5hbm9odHRwLmh0bWwiPm5hbm9odHRwPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLW5hbm9odHRwLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPm1pbmltYWwgRlRQIGltcGxlbWVudGF0aW9uIGFsbG93aW5nIHRvIGZldGNoIHJlc291cmNlcyBsaWtlIGV4dGVybmFsIHN1YnNldC4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNmdHBEYXRhQ2FsbGJhY2siPmZ0cERhdGFDYWxsYmFjazwvYT4KK3ZvaWQJPGEgaHJlZj0iI2Z0cERhdGFDYWxsYmFjayI+ZnRwRGF0YUNhbGxiYWNrPC9hPgkJCSh2b2lkICogdXNlckRhdGEsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIgLz4JCQkJCSBpbnQgbGVuKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI2Z0cExpc3RDYWxsYmFjayI+ZnRwTGlzdENhbGxiYWNrPC9hPgordm9pZAk8YSBocmVmPSIjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+CQkJKHZvaWQgKiB1c2VyRGF0YSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYXR0cmliLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogb3duZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBncm91cCwgPGJyIC8+CQkJCQkgdW5zaWduZWQgbG9uZyBzaXplLCA8YnIgLz4JCQkJCSBpbnQgbGlua3MsIDxiciAvPgkJCQkJIGludCB5ZWFyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbW9udGgsIDxiciAvPgkJCQkJIGludCBkYXksIDxiciAvPgkJCQkJIGludCBob3VyLCA8YnIgLz4JCQkJCSBpbnQgbWludXRlKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZSI+eG1sTmFub0ZUUENoZWNrUmVzcG9uc2U8L2E+CQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOYW5vRlRQQ2xlYW51cCI+eG1sTmFub0ZUUENsZWFudXA8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBDbG9zZSI+eG1sTmFub0ZUUENsb3NlPC9hPgkJCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbiI+eG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbjwvYT4JKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQQ29ubmVjdCI+eG1sTmFub0ZUUENvbm5lY3Q8L2E+CQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbE5hbm9GVFBDb25uZWN0VG8iPnhtbE5hbm9GVFBDb25uZWN0VG88L2E+CQkoY29uc3QgY2hhciAqIHNlcnZlciwgPGJyIC8+CQkJCQkgaW50IHBvcnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQQ3dkIj54bWxOYW5vRlRQQ3dkPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZGlyZWN0b3J5KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0ZUUERlbGUiPnhtbE5hbm9GVFBEZWxlPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOYW5vRlRQRnJlZUN0eHQiPnhtbE5hbm9GVFBGcmVlQ3R4dDwvYT4JCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0ZUUEdldCI+eG1sTmFub0ZUUEdldDwvYT4JCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLW5hbm9mdHAuaHRtbCNmdHBEYXRhQ2FsbGJhY2siPmZ0cERhdGFDYWxsYmFjazwvYT4gY2FsbGJhY2ssIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyRGF0YSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0ZUUEdldENvbm5lY3Rpb24iPnhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9hPgkJKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQR2V0UmVzcG9uc2UiPnhtbE5hbm9GVFBHZXRSZXNwb25zZTwvYT4JCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0ZUUEdldFNvY2tldCI+eG1sTmFub0ZUUEdldFNvY2tldDwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTmFub0ZUUEluaXQiPnhtbE5hbm9GVFBJbml0PC9hPgkJCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0ZUUExpc3QiPnhtbE5hbm9GVFBMaXN0PC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtbmFub2Z0cC5odG1sI2Z0cExpc3RDYWxsYmFjayI+ZnRwTGlzdENhbGxiYWNrPC9hPiBjYWxsYmFjaywgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJEYXRhLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxOYW5vRlRQTmV3Q3R4dCI+eG1sTmFub0ZUUE5ld0N0eHQ8L2E+CQkoY29uc3QgY2hhciAqIFVSTCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbE5hbm9GVFBPcGVuIj54bWxOYW5vRlRQT3BlbjwvYT4JCQkoY29uc3QgY2hhciAqIFVSTCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOYW5vRlRQUHJveHkiPnhtbE5hbm9GVFBQcm94eTwvYT4JCQkoY29uc3QgY2hhciAqIGhvc3QsIDxiciAvPgkJCQkJIGludCBwb3J0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogdXNlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHBhc3N3ZCwgPGJyIC8+CQkJCQkgaW50IHR5cGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQUXVpdCI+eG1sTmFub0ZUUFF1aXQ8L2E+CQkJKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vRlRQUmVhZCI+eG1sTmFub0ZUUFJlYWQ8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIHZvaWQgKiBkZXN0LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbE5hbm9GVFBTY2FuUHJveHkiPnhtbE5hbm9GVFBTY2FuUHJveHk8L2E+CQkoY29uc3QgY2hhciAqIFVSTCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE5hbm9GVFBVcGRhdGVVUkwiPnhtbE5hbm9GVFBVcGRhdGVVUkw8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iZnRwRGF0YUNhbGxiYWNrIiBpZD0iZnRwRGF0YUNhbGxiYWNrIj48L2E+RnVuY3Rpb24gdHlwZTogZnRwRGF0YUNhbGxiYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogZnRwRGF0YUNhbGxiYWNrCit2b2lkCWZ0cERhdGFDYWxsYmFjawkJCSh2b2lkICogdXNlckRhdGEsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIgLz4JCQkJCSBpbnQgbGVuKQorPC9wcmU+PHA+QSBjYWxsYmFjayBmb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUEdldCI+eG1sTmFub0ZUUEdldDwvYT4gY29tbWFuZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlckRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIHByb3ZpZGVkIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkYXRhIHJlY2VpdmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPml0cyBzaXplIGluIGJ5dGVzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJmdHBMaXN0Q2FsbGJhY2siIGlkPSJmdHBMaXN0Q2FsbGJhY2siPjwvYT5GdW5jdGlvbiB0eXBlOiBmdHBMaXN0Q2FsbGJhY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBmdHBMaXN0Q2FsbGJhY2sKK3ZvaWQJZnRwTGlzdENhbGxiYWNrCQkJKHZvaWQgKiB1c2VyRGF0YSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYXR0cmliLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogb3duZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBncm91cCwgPGJyIC8+CQkJCQkgdW5zaWduZWQgbG9uZyBzaXplLCA8YnIgLz4JCQkJCSBpbnQgbGlua3MsIDxiciAvPgkJCQkJIGludCB5ZWFyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbW9udGgsIDxiciAvPgkJCQkJIGludCBkYXksIDxiciAvPgkJCQkJIGludCBob3VyLCA8YnIgLz4JCQkJCSBpbnQgbWludXRlKQorPC9wcmU+PHA+QSBjYWxsYmFjayBmb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwjeG1sTmFub0ZUUExpc3QiPnhtbE5hbm9GVFBMaXN0PC9hPiBjb21tYW5kLiBOb3RlIHRoYXQgb25seSBvbmUgb2YgeWVhciBhbmQgZGF5Om1pbnV0ZSBhcmUgc3BlY2lmaWVkLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyRGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dXNlciBwcm92aWRlZCBkYXRhIGZvciB0aGUgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBuYW1lIChpbmNsdWRpbmcgIi0mZ3Q7IiB3aGVuIGxpbmtzIGFyZSBzaG93bik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHJpYjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vd25lcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG93bmVyIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Z3JvdXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBncm91cCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIHNpemU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbmtzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGluayBjb3VudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+eWVhcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHllYXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vbnRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbW9udGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRheTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aG91cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGhvdXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1pbnV0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1pbnV0ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sTmFub0ZUUENoZWNrUmVzcG9uc2UiIGlkPSJ4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZQkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGVyZSBpcyBhIHJlc3BvbnNlIGZyb20gdGhlIEZUUCBzZXJ2ZXIgYWZ0ZXIgYSBjb21tYW5kLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb2RlIG51bWJlciwgb3IgMDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBDbGVhbnVwIiBpZD0ieG1sTmFub0ZUUENsZWFudXAiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUENsZWFudXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5hbm9GVFBDbGVhbnVwCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkNsZWFudXAgdGhlIEZUUCBwcm90b2NvbCBsYXllci4gVGhpcyBjbGVhbnVwIHByb3h5IGluZm9ybWF0aW9ucy48L3A+Cis8aDM+PGEgbmFtZT0ieG1sTmFub0ZUUENsb3NlIiBpZD0ieG1sTmFub0ZUUENsb3NlIj48L2E+RnVuY3Rpb246IHhtbE5hbm9GVFBDbG9zZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQQ2xvc2UJCQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkNsb3NlIHRoZSBjb25uZWN0aW9uIGFuZCBib3RoIGNvbnRyb2wgYW5kIHRyYW5zcG9ydDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uIiBpZD0ieG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24JKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5DbG9zZSB0aGUgZGF0YSBjb25uZWN0aW9uIGZyb20gdGhlIHNlcnZlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQQ29ubmVjdCIgaWQ9InhtbE5hbm9GVFBDb25uZWN0Ij48L2E+RnVuY3Rpb246IHhtbE5hbm9GVFBDb25uZWN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBDb25uZWN0CQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlRyaWVzIHRvIG9wZW4gYSBjb250cm9sIGNvbm5lY3Rpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBDb25uZWN0VG8iIGlkPSJ4bWxOYW5vRlRQQ29ubmVjdFRvIj48L2E+RnVuY3Rpb246IHhtbE5hbm9GVFBDb25uZWN0VG88L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTmFub0ZUUENvbm5lY3RUbwkJKGNvbnN0IGNoYXIgKiBzZXJ2ZXIsIDxiciAvPgkJCQkJIGludCBwb3J0KTxiciAvPgorPC9wcmU+PHA+VHJpZXMgdG8gb3BlbiBhIGNvbnRyb2wgY29ubmVjdGlvbiB0byB0aGUgZ2l2ZW4gc2VydmVyL3BvcnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZXJ2ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBzZXJ2ZXIgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cG9ydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBvcnQgKHVzZSAyMSBpZiAwKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZlRQIGNvbnRleHQgb3IgTlVMTCBpZiBpdCBmYWlsZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQQ3dkIiBpZD0ieG1sTmFub0ZUUEN3ZCI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vRlRQQ3dkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBDd2QJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGRpcmVjdG9yeSk8YnIgLz4KKzwvcHJlPjxwPlRyaWVzIHRvIGNoYW5nZSB0aGUgcmVtb3RlIGRpcmVjdG9yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRpcmVjdG9yeTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkaXJlY3Rvcnkgb24gdGhlIHNlcnZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW5jYXNlIG9mIGVycm9yLCAxIGlmIENXRCB3b3JrZWQsIDAgaWYgaXQgZmFpbGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUERlbGUiIGlkPSJ4bWxOYW5vRlRQRGVsZSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vRlRQRGVsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQRGVsZQkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSk8YnIgLz4KKzwvcHJlPjxwPlRyaWVzIHRvIGRlbGV0ZSBhbiBpdGVtIChmaWxlIG9yIGRpcmVjdG9yeSkgZnJvbSBzZXJ2ZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgb3IgZGlyZWN0b3J5IG9uIHRoZSBzZXJ2ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMSBpZiBERUxFIHdvcmtlZCwgMCBpZiBpdCBmYWlsZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQRnJlZUN0eHQiIGlkPSJ4bWxOYW5vRlRQRnJlZUN0eHQiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUEZyZWVDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOYW5vRlRQRnJlZUN0eHQJCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+RnJlZXMgdGhlIGNvbnRleHQgYWZ0ZXIgY2xvc2luZyB0aGUgY29ubmVjdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUEdldCIgaWQ9InhtbE5hbm9GVFBHZXQiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUEdldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQR2V0CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwjZnRwRGF0YUNhbGxiYWNrIj5mdHBEYXRhQ2FsbGJhY2s8L2E+IGNhbGxiYWNrLCA8YnIgLz4JCQkJCSB2b2lkICogdXNlckRhdGEsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPkZldGNoIHRoZSBnaXZlbiBmaWxlIGZyb20gdGhlIHNlcnZlci4gQWxsIGRhdGEgYXJlIHBhc3NlZCBiYWNrIGluIHRoZSBjYWxsYmFja3MuIFRoZSBsYXN0IGNhbGxiYWNrIGhhcyBhIHNpemUgb2YgMCBibG9jay48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYWxsYmFjazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBjYWxsYmFjayBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgdG8gcmV0cmlldmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbiIgaWQ9InhtbE5hbm9GVFBHZXRDb25uZWN0aW9uIj48L2E+RnVuY3Rpb246IHhtbE5hbm9GVFBHZXRDb25uZWN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBHZXRDb25uZWN0aW9uCQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlRyeSB0byBvcGVuIGEgZGF0YSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIuIEN1cnJlbnRseSBvbmx5IHBhc3NpdmUgbW9kZSBpcyBzdXBwb3J0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBGVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBHZXRSZXNwb25zZSIgaWQ9InhtbE5hbm9GVFBHZXRSZXNwb25zZSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vRlRQR2V0UmVzcG9uc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0ZUUEdldFJlc3BvbnNlCQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgRlRQIHNlcnZlciBhZnRlciBhIGNvbW1hbmQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBGVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvZGUgbnVtYmVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUEdldFNvY2tldCIgaWQ9InhtbE5hbm9GVFBHZXRTb2NrZXQiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUEdldFNvY2tldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQR2V0U29ja2V0CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+SW5pdGlhdGUgZmV0Y2ggb2YgdGhlIGdpdmVuIGZpbGUgZnJvbSB0aGUgc2VydmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSB0byByZXRyaWV2ZSAob3IgTlVMTCBpZiBwYXRoIGlzIGluIGNvbnRleHQpLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNvY2tldCBmb3IgdGhlIGRhdGEgY29ubmVjdGlvbiwgb3IgJmx0OzAgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBJbml0IiBpZD0ieG1sTmFub0ZUUEluaXQiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUEluaXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5hbm9GVFBJbml0CQkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBGVFAgcHJvdG9jb2wgbGF5ZXIuIEN1cnJlbnRseSBpdCBqdXN0IGNoZWNrcyBmb3IgcHJveHkgaW5mb3JtYXRpb25zLCBhbmQgZ2V0IHRoZSBob3N0bmFtZTwvcD4KKzxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQTGlzdCIgaWQ9InhtbE5hbm9GVFBMaXN0Ij48L2E+RnVuY3Rpb246IHhtbE5hbm9GVFBMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBMaXN0CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwjZnRwTGlzdENhbGxiYWNrIj5mdHBMaXN0Q2FsbGJhY2s8L2E+IGNhbGxiYWNrLCA8YnIgLz4JCQkJCSB2b2lkICogdXNlckRhdGEsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgbGlzdGluZyBvbiB0aGUgc2VydmVyLiBBbGwgZmlsZXMgaW5mbyBhcmUgcGFzc2VkIGJhY2sgaW4gdGhlIGNhbGxiYWNrcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYWxsYmFjazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJEYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBjYWxsYmFjayBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9uYWwgZmlsZXMgdG8gbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBOZXdDdHh0IiBpZD0ieG1sTmFub0ZUUE5ld0N0eHQiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUE5ld0N0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTmFub0ZUUE5ld0N0eHQJCShjb25zdCBjaGFyICogVVJMKTxiciAvPgorPC9wcmU+PHA+QWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgRlRQIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgVVJMIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gRlRQIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBPcGVuIiBpZD0ieG1sTmFub0ZUUE9wZW4iPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUE9wZW48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTmFub0ZUUE9wZW4JCQkoY29uc3QgY2hhciAqIFVSTCk8YnIgLz4KKzwvcHJlPjxwPlN0YXJ0IHRvIGZldGNoIHRoZSBnaXZlbiBmdHA6Ly8gcmVzb3VyY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkwgdG8gdGhlIHJlc291cmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBGVFAgY29udGV4dCwgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBQcm94eSIgaWQ9InhtbE5hbm9GVFBQcm94eSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vRlRQUHJveHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5hbm9GVFBQcm94eQkJCShjb25zdCBjaGFyICogaG9zdCwgPGJyIC8+CQkJCQkgaW50IHBvcnQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiB1c2VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogcGFzc3dkLCA8YnIgLz4JCQkJCSBpbnQgdHlwZSk8YnIgLz4KKzwvcHJlPjxwPlNldHVwIHRoZSBGVFAgcHJveHkgaW5mb3JtYXRpb25zLiBUaGlzIGNhbiBhbHNvIGJlIGRvbmUgYnkgdXNpbmcgZnRwX3Byb3h5IGZ0cF9wcm94eV91c2VyIGFuZCBmdHBfcHJveHlfcGFzc3dvcmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmhvc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcm94eSBob3N0IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBvcnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcm94eSBwb3J0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJveHkgdXNlciBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXNzd2Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcm94eSBwYXNzd29yZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgcHJveHkgMSBmb3IgdXNpbmcgU0lURSwgMiBmb3IgVVNFUiBhQGI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vRlRQUXVpdCIgaWQ9InhtbE5hbm9GVFBRdWl0Ij48L2E+RnVuY3Rpb246IHhtbE5hbm9GVFBRdWl0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9GVFBRdWl0CQkJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5TZW5kIGEgUVVJVCBjb21tYW5kIHRvIHRoZSBzZXJ2ZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEZUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9GVFBSZWFkIiBpZD0ieG1sTmFub0ZUUFJlYWQiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUFJlYWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0ZUUFJlYWQJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgdm9pZCAqIGRlc3QsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlYWQgQGxlbiBieXRlcyBmcm9tIHRoZSBleGlzdGluZyBGVFAgY29ubmVjdGlvbiBhbmQgc2F2ZXMgdGhlbSBpbiBAZGVzdC4gVGhpcyBpcyBhIGJsb2NraW5nIGNhbGwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRlRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXIgbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgcmVhZC4gMCBpcyBhbiBpbmRpY2F0aW9uIG9mIGFuIGVuZCBvZiBjb25uZWN0aW9uLiAtMSBpbmRpY2F0ZXMgYSBwYXJhbWV0ZXIgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUFNjYW5Qcm94eSIgaWQ9InhtbE5hbm9GVFBTY2FuUHJveHkiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUFNjYW5Qcm94eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmFub0ZUUFNjYW5Qcm94eQkJKGNvbnN0IGNoYXIgKiBVUkwpPGJyIC8+Cis8L3ByZT48cD4oUmUpSW5pdGlhbGl6ZSB0aGUgRlRQIFByb3h5IGNvbnRleHQgYnkgcGFyc2luZyB0aGUgVVJMIGFuZCBmaW5kaW5nIHRoZSBwcm90b2NvbCBob3N0IHBvcnQgaXQgaW5kaWNhdGVzLiBTaG91bGQgYmUgbGlrZSBmdHA6Ly9teXByb3h5LyBvciBmdHA6Ly9teXByb3h5OjMxMjgvIEEgTlVMTCBVUkwgY2xlYW5zIHVwIHByb3h5IGluZm9ybWF0aW9ucy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwcm94eSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwcm94eSBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0ZUUFVwZGF0ZVVSTCIgaWQ9InhtbE5hbm9GVFBVcGRhdGVVUkwiPjwvYT5GdW5jdGlvbjogeG1sTmFub0ZUUFVwZGF0ZVVSTDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vRlRQVXBkYXRlVVJMCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCk8YnIgLz4KKzwvcHJlPjxwPlVwZGF0ZSBhbiBGVFAgY29udGV4dCBieSBwYXJzaW5nIHRoZSBVUkwgYW5kIGZpbmRpbmcgbmV3IHBhdGggaXQgaW5kaWNhdGVzLiBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbiB0aGUgcHJvdG9jb2wsIGhvc3RuYW1lLCBwb3J0IG9yIG90aGVyIGluZm9ybWF0aW9uLCB0aGUgZXJyb3IgaXMgcmFpc2VkLiBJdCBpbmRpY2F0ZXMgYSBuZXcgY29ubmVjdGlvbiBoYXMgdG8gYmUgZXN0YWJsaXNoZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBGVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgVVJMIHVzZWQgdG8gdXBkYXRlIHRoZSBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIE9rLCAtMSBpbiBjYXNlIG9mIGVycm9yIChvdGhlciBob3N0KS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtbmFub2h0dHAuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFjZDlkZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIG5hbm9odHRwIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgbmFub2h0dHAgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1uYW5vZnRwLmh0bWwiPm5hbm9mdHA8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5wYXJzZXI8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPm1pbmltYWwgSFRUUCBpbXBsZW1lbnRhdGlvbiBhbGxvd2luZyB0byBmZXRjaCByZXNvdXJjZXMgbGlrZSBleHRlcm5hbCBzdWJzZXQuIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCBjaGFyICoJPGEgaHJlZj0iI3htbE5hbm9IVFRQQXV0aEhlYWRlciI+eG1sTmFub0hUVFBBdXRoSGVhZGVyPC9hPgkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOYW5vSFRUUENsZWFudXAiPnhtbE5hbm9IVFRQQ2xlYW51cDwvYT4JCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbE5hbm9IVFRQQ2xvc2UiPnhtbE5hbm9IVFRQQ2xvc2U8L2E+CQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE5hbm9IVFRQQ29udGVudExlbmd0aCI+eG1sTmFub0hUVFBDb250ZW50TGVuZ3RoPC9hPgkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCBjaGFyICoJPGEgaHJlZj0iI3htbE5hbm9IVFRQRW5jb2RpbmciPnhtbE5hbm9IVFRQRW5jb2Rpbmc8L2E+CSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0hUVFBGZXRjaCI+eG1sTmFub0hUVFBGZXRjaDwvYT4JCShjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNoYXIgKiogY29udGVudFR5cGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTmFub0hUVFBJbml0Ij54bWxOYW5vSFRUUEluaXQ8L2E+CQkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxOYW5vSFRUUE1ldGhvZCI+eG1sTmFub0hUVFBNZXRob2Q8L2E+CQkoY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1ldGhvZCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGlucHV0LCA8YnIgLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogaGVhZGVycywgPGJyIC8+CQkJCQkgaW50IGlsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj54bWxOYW5vSFRUUE1ldGhvZFJlZGlyPC9hPgkJKGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtZXRob2QsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBpbnB1dCwgPGJyIC8+CQkJCQkgY2hhciAqKiBjb250ZW50VHlwZSwgPGJyIC8+CQkJCQkgY2hhciAqKiByZWRpciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGhlYWRlcnMsIDxiciAvPgkJCQkJIGludCBpbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgk8YSBocmVmPSIjeG1sTmFub0hUVFBNaW1lVHlwZSI+eG1sTmFub0hUVFBNaW1lVHlwZTwvYT4JKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxOYW5vSFRUUE9wZW4iPnhtbE5hbm9IVFRQT3BlbjwvYT4JCQkoY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY2hhciAqKiBjb250ZW50VHlwZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbE5hbm9IVFRQT3BlblJlZGlyIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvYT4JCShjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlLCA8YnIgLz4JCQkJCSBjaGFyICoqIHJlZGlyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0hUVFBSZWFkIj54bWxOYW5vSFRUUFJlYWQ8L2E+CQkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIHZvaWQgKiBkZXN0LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IGNoYXIgKgk8YSBocmVmPSIjeG1sTmFub0hUVFBSZWRpciI+eG1sTmFub0hUVFBSZWRpcjwvYT4JKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOYW5vSFRUUFJldHVybkNvZGUiPnhtbE5hbm9IVFRQUmV0dXJuQ29kZTwvYT4JCSh2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTmFub0hUVFBTYXZlIj54bWxOYW5vSFRUUFNhdmU8L2E+CQkJKHZvaWQgKiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTmFub0hUVFBTY2FuUHJveHkiPnhtbE5hbm9IVFRQU2NhblByb3h5PC9hPgkJKGNvbnN0IGNoYXIgKiBVUkwpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQQXV0aEhlYWRlciIgaWQ9InhtbE5hbm9IVFRQQXV0aEhlYWRlciI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUEF1dGhIZWFkZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCBjaGFyICoJeG1sTmFub0hUVFBBdXRoSGVhZGVyCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBhdXRoZW50aWNhdGlvbiBoZWFkZXIgb2YgYW4gSFRUUCBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3Rhc2hlZCB2YWx1ZSBvZiB0aGUgV1dXLUF1dGhlbnRpY2F0ZSBvciBQcm94eS1BdXRoZW50aWNhdGUgaGVhZGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQQ2xlYW51cCIgaWQ9InhtbE5hbm9IVFRQQ2xlYW51cCI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUENsZWFudXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5hbm9IVFRQQ2xlYW51cAkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBIVFRQIHByb3RvY29sIGxheWVyLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUENsb3NlIiBpZD0ieG1sTmFub0hUVFBDbG9zZSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUENsb3NlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOYW5vSFRUUENsb3NlCQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gY2xvc2VzIGFuIEhUVFAgY29udGV4dCwgaXQgZW5kcyB1cCB0aGUgY29ubmVjdGlvbiBhbmQgZnJlZSBhbGwgZGF0YSByZWxhdGVkIHRvIGl0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQQ29udGVudExlbmd0aCIgaWQ9InhtbE5hbm9IVFRQQ29udGVudExlbmd0aCI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoCSh2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHNwZWNpZmllZCBjb250ZW50IGxlbmd0aCBmcm9tIHRoZSBIVFRQIGhlYWRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVFRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzcGVjaWZpZWQgY29udGVudCBsZW5ndGggZnJvbSB0aGUgSFRUUCBoZWFkZXIuIE5vdGUgdGhhdCBhIHZhbHVlIG9mIC0xIGluZGljYXRlcyB0aGF0IHRoZSBjb250ZW50IGxlbmd0aCBlbGVtZW50IHdhcyBub3QgaW5jbHVkZWQgaW4gdGhlIHJlc3BvbnNlIGhlYWRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUEVuY29kaW5nIiBpZD0ieG1sTmFub0hUVFBFbmNvZGluZyI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUEVuY29kaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCXhtbE5hbm9IVFRQRW5jb2RpbmcJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgc3BlY2lmaWVkIGVuY29kaW5nIGlmIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNwZWNpZmllZCBlbmNvZGluZyBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUEZldGNoIiBpZD0ieG1sTmFub0hUVFBGZXRjaCI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUEZldGNoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9IVFRQRmV0Y2gJCShjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNoYXIgKiogY29udGVudFR5cGUpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyeSB0byBmZXRjaCB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIEdFVCBhbmQgc2F2ZSBpdCdzIGNvbnRlbnQgaW4gdGhlIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgVVJMIHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNhdmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50VHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aWYgYXZhaWxhYmxlIHRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gd2lsbCBiZSByZXR1cm5lZCBhdCB0aGF0IGxvY2F0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgaW5jYXNlIG9mIHN1Y2Nlc3MuIFRoZSBjb250ZW50VHlwZSwgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBJbml0IiBpZD0ieG1sTmFub0hUVFBJbml0Ij48L2E+RnVuY3Rpb246IHhtbE5hbm9IVFRQSW5pdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmFub0hUVFBJbml0CQkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5Jbml0aWFsaXplIHRoZSBIVFRQIHByb3RvY29sIGxheWVyLiBDdXJyZW50bHkgaXQganVzdCBjaGVja3MgZm9yIHByb3h5IGluZm9ybWF0aW9uczwvcD4KKzxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUE1ldGhvZCIgaWQ9InhtbE5hbm9IVFRQTWV0aG9kIj48L2E+RnVuY3Rpb246IHhtbE5hbm9IVFRQTWV0aG9kPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE5hbm9IVFRQTWV0aG9kCQkoY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1ldGhvZCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGlucHV0LCA8YnIgLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogaGVhZGVycywgPGJyIC8+CQkJCQkgaW50IGlsZW4pPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyeSB0byBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIHVzaW5nIHRoZSBnaXZlbiBAbWV0aG9kLCBhZGRpbmcgdGhlIGdpdmVuIGV4dHJhIGhlYWRlcnMgYW5kIHRoZSBpbnB1dCBidWZmZXIgZm9yIHRoZSByZXF1ZXN0IGNvbnRlbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgVVJMIHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1ldGhvZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgbWV0aG9kIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJpbmcgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50VHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIENvbnRlbnQtVHlwZSBpbmZvcm1hdGlvbiBJTiBhbmQgT1VUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oZWFkZXJzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0cmEgaGVhZGVyczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aWxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5wdXQgbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGluIGNhc2Ugb2YgZmFpbHVyZSwgb3RoZXJ3aXNlIGEgcmVxdWVzdCBoYW5kbGVyLiBUaGUgY29udGVudFR5cGUsIGlmIHByb3ZpZGVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQTWV0aG9kUmVkaXIiIGlkPSJ4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIj48L2E+RnVuY3Rpb246IHhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTmFub0hUVFBNZXRob2RSZWRpcgkJKGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtZXRob2QsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBpbnB1dCwgPGJyIC8+CQkJCQkgY2hhciAqKiBjb250ZW50VHlwZSwgPGJyIC8+CQkJCQkgY2hhciAqKiByZWRpciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGhlYWRlcnMsIDxiciAvPgkJCQkJIGludCBpbGVuKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiB0cnkgdG8gb3BlbiBhIGNvbm5lY3Rpb24gdG8gdGhlIGluZGljYXRlZCByZXNvdXJjZSB2aWEgSFRUUCB1c2luZyB0aGUgZ2l2ZW4gQG1ldGhvZCwgYWRkaW5nIHRoZSBnaXZlbiBleHRyYSBoZWFkZXJzIGFuZCB0aGUgaW5wdXQgYnVmZmVyIGZvciB0aGUgcmVxdWVzdCBjb250ZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFVSTCB0byBsb2FkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tZXRob2Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVFRQIG1ldGhvZCB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGlmIGFueTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudFR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gSU4gYW5kIE9VVDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVkaXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWRpcmVjdGVkIFVSTCBPVVQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhlYWRlcnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRyYSBoZWFkZXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnB1dCBsZW5ndGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLCBvdGhlcndpc2UgYSByZXF1ZXN0IGhhbmRsZXIuIFRoZSBjb250ZW50VHlwZSwgb3IgcmVkaXIsIGlmIHByb3ZpZGVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQTWltZVR5cGUiIGlkPSJ4bWxOYW5vSFRUUE1pbWVUeXBlIj48L2E+RnVuY3Rpb246IHhtbE5hbm9IVFRQTWltZVR5cGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCBjaGFyICoJeG1sTmFub0hUVFBNaW1lVHlwZQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgTWltZS1UeXBlIGlmIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNwZWNpZmllZCBNaW1lLVR5cGUgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBPcGVuIiBpZD0ieG1sTmFub0hUVFBPcGVuIj48L2E+RnVuY3Rpb246IHhtbE5hbm9IVFRQT3BlbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxOYW5vSFRUUE9wZW4JCQkoY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY2hhciAqKiBjb250ZW50VHlwZSk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gdHJ5IHRvIG9wZW4gYSBjb25uZWN0aW9uIHRvIHRoZSBpbmRpY2F0ZWQgcmVzb3VyY2UgdmlhIEhUVFAgR0VULjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFVSTCB0byBsb2FkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50VHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aWYgYXZhaWxhYmxlIHRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gd2lsbCBiZSByZXR1cm5lZCBhdCB0aGF0IGxvY2F0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGluIGNhc2Ugb2YgZmFpbHVyZSwgb3RoZXJ3aXNlIGEgcmVxdWVzdCBoYW5kbGVyLiBUaGUgY29udGVudFR5cGUsIGlmIHByb3ZpZGVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQT3BlblJlZGlyIiBpZD0ieG1sTmFub0hUVFBPcGVuUmVkaXIiPjwvYT5GdW5jdGlvbjogeG1sTmFub0hUVFBPcGVuUmVkaXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTmFub0hUVFBPcGVuUmVkaXIJCShjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjaGFyICoqIGNvbnRlbnRUeXBlLCA8YnIgLz4JCQkJCSBjaGFyICoqIHJlZGlyKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiB0cnkgdG8gb3BlbiBhIGNvbm5lY3Rpb24gdG8gdGhlIGluZGljYXRlZCByZXNvdXJjZSB2aWEgSFRUUCBHRVQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgVVJMIHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnRUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiBhdmFpbGFibGUgdGhlIENvbnRlbnQtVHlwZSBpbmZvcm1hdGlvbiB3aWxsIGJlIHJldHVybmVkIGF0IHRoYXQgbG9jYXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlZGlyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiBhdmFpbGFibGUgdGhlIHJlZGlyZWN0ZWQgVVJMIHdpbGwgYmUgcmV0dXJuZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLCBvdGhlcndpc2UgYSByZXF1ZXN0IGhhbmRsZXIuIFRoZSBjb250ZW50VHlwZSwgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBSZWFkIiBpZD0ieG1sTmFub0hUVFBSZWFkIj48L2E+RnVuY3Rpb246IHhtbE5hbm9IVFRQUmVhZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOYW5vSFRUUFJlYWQJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgdm9pZCAqIGRlc3QsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlYWQgQGxlbiBieXRlcyBmcm9tIHRoZSBleGlzdGluZyBIVFRQIGNvbm5lY3Rpb24gYW5kIHNhdmVzIHRoZW0gaW4gQGRlc3QuIFRoaXMgaXMgYSBibG9ja2luZyBjYWxsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEhUVFAgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVzdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlciBsZW5ndGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSByZWFkLiAwIGlzIGFuIGluZGljYXRpb24gb2YgYW4gZW5kIG9mIGNvbm5lY3Rpb24uIC0xIGluZGljYXRlcyBhIHBhcmFtZXRlciBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUFJlZGlyIiBpZD0ieG1sTmFub0hUVFBSZWRpciI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUFJlZGlyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgY2hhciAqCXhtbE5hbm9IVFRQUmVkaXIJKHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgc3BlY2lmaWVkIHJlZGlyZWN0aW9uIFVSTCBpZiBhdmFpbGFibGUgZnJvbSB0aGUgSFRUUCBoZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSFRUUCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3BlY2lmaWVkIHJlZGlyZWN0aW9uIFVSTCBvciBOVUxMIGlmIG5vdCByZWRpcmVjdGVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5hbm9IVFRQUmV0dXJuQ29kZSIgaWQ9InhtbE5hbm9IVFRQUmV0dXJuQ29kZSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUFJldHVybkNvZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTmFub0hUVFBSZXR1cm5Db2RlCQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgbGF0ZXN0IEhUVFAgcmV0dXJuIGNvZGUgcmVjZWl2ZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVFRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVFRQIHJldHVybiBjb2RlIGZvciB0aGUgcmVxdWVzdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW5vSFRUUFNhdmUiIGlkPSJ4bWxOYW5vSFRUUFNhdmUiPjwvYT5GdW5jdGlvbjogeG1sTmFub0hUVFBTYXZlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5hbm9IVFRQU2F2ZQkJCSh2b2lkICogY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBzYXZlcyB0aGUgb3V0cHV0IG9mIHRoZSBIVFRQIHRyYW5zYWN0aW9uIHRvIGEgZmlsZSBJdCBjbG9zZXMgYW5kIGZyZWUgdGhlIGNvbnRleHQgYXQgdGhlIGVuZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBIVFRQIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNhdmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgaW5jYXNlIG9mIHN1Y2Nlc3MuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFub0hUVFBTY2FuUHJveHkiIGlkPSJ4bWxOYW5vSFRUUFNjYW5Qcm94eSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW5vSFRUUFNjYW5Qcm94eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmFub0hUVFBTY2FuUHJveHkJCShjb25zdCBjaGFyICogVVJMKTxiciAvPgorPC9wcmU+PHA+KFJlKUluaXRpYWxpemUgdGhlIEhUVFAgUHJveHkgY29udGV4dCBieSBwYXJzaW5nIHRoZSBVUkwgYW5kIGZpbmRpbmcgdGhlIHByb3RvY29sIGhvc3QgcG9ydCBpdCBpbmRpY2F0ZXMuIFNob3VsZCBiZSBsaWtlIGh0dHA6Ly9teXByb3h5LyBvciBodHRwOi8vbXlwcm94eTozMTI4LyBBIE5VTEwgVVJMIGNsZWFucyB1cCBwcm94eSBpbmZvcm1hdGlvbnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHJveHkgVVJMIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgcHJveHkgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXBhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNWNhYzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbApAQCAtMCwwICsxLDU1NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHBhcnNlciBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIHBhcnNlciBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLW5hbm9odHRwLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1uYW5vaHR0cC5odG1sIj5uYW5vaHR0cDwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwiPnBhcnNlckludGVybmFsczwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+SW50ZXJmYWNlcywgY29uc3RhbnRzIGFuZCB0eXBlcyByZWxhdGVkIHRvIHRoZSBYTUwgcGFyc2VyIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfQ09NUExFVEVfQVRUUlMiPlhNTF9DT01QTEVURV9BVFRSUzwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0RFRkFVTFRfVkVSU0lPTiI+WE1MX0RFRkFVTFRfVkVSU0lPTjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0RFVEVDVF9JRFMiPlhNTF9ERVRFQ1RfSURTPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0FYMl9NQUdJQyI+WE1MX1NBWDJfTUFHSUM8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TS0lQX0lEUyI+WE1MX1NLSVBfSURTPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxGZWF0dXJlIj54bWxGZWF0dXJlPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbFBhcnNlcklucHV0U3RhdGUiPnhtbFBhcnNlcklucHV0U3RhdGU8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sUGFyc2VyTW9kZSI+eG1sUGFyc2VyTW9kZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT48YnIgLz5zdHJ1Y3QgX3htbFBhcnNlck5vZGVJbmZvCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPiAqIDxhIG5hbWU9InhtbFBhcnNlck5vZGVJbmZvUHRyIiBpZD0ieG1sUGFyc2VyTm9kZUluZm9QdHIiPnhtbFBhcnNlck5vZGVJbmZvUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sUGFyc2VyTm9kZUluZm9TZXEiPnhtbFBhcnNlck5vZGVJbmZvU2VxPC9hPjxiciAvPnN0cnVjdCBfeG1sUGFyc2VyTm9kZUluZm9TZXEKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcSI+eG1sUGFyc2VyTm9kZUluZm9TZXE8L2E+ICogPGEgbmFtZT0ieG1sUGFyc2VyTm9kZUluZm9TZXFQdHIiIGlkPSJ4bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciI+eG1sUGFyc2VyTm9kZUluZm9TZXFQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTQVhIYW5kbGVyVjEiPnhtbFNBWEhhbmRsZXJWMTwvYT48YnIgLz5zdHJ1Y3QgX3htbFNBWEhhbmRsZXJWMQorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFNBWEhhbmRsZXJWMSI+eG1sU0FYSGFuZGxlclYxPC9hPiAqIDxhIG5hbWU9InhtbFNBWEhhbmRsZXJWMVB0ciIgaWQ9InhtbFNBWEhhbmRsZXJWMVB0ciI+eG1sU0FYSGFuZGxlclYxUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNhdHRyaWJ1dGVEZWNsU0FYRnVuYyI+YXR0cmlidXRlRGVjbFNBWEZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiNhdHRyaWJ1dGVEZWNsU0FYRnVuYyI+YXR0cmlidXRlRGVjbFNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZWxlbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZnVsbG5hbWUsIDxiciAvPgkJCQkJIGludCB0eXBlLCA8YnIgLz4JCQkJCSBpbnQgZGVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkZWZhdWx0VmFsdWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPiB0cmVlKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI2F0dHJpYnV0ZVNBWEZ1bmMiPmF0dHJpYnV0ZVNBWEZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiNhdHRyaWJ1dGVTQVhGdW5jIj5hdHRyaWJ1dGVTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI2NkYXRhQmxvY2tTQVhGdW5jIj5jZGF0YUJsb2NrU0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI2NkYXRhQmxvY2tTQVhGdW5jIj5jZGF0YUJsb2NrU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgaW50IGxlbikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNjaGFyYWN0ZXJzU0FYRnVuYyI+Y2hhcmFjdGVyc1NBWEZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiNjaGFyYWN0ZXJzU0FYRnVuYyI+Y2hhcmFjdGVyc1NBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxiciAvPgkJCQkJIGludCBsZW4pCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjY29tbWVudFNBWEZ1bmMiPmNvbW1lbnRTQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjY29tbWVudFNBWEZ1bmMiPmNvbW1lbnRTQVhGdW5jPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNlbGVtZW50RGVjbFNBWEZ1bmMiPmVsZW1lbnREZWNsU0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI2VsZW1lbnREZWNsU0FYRnVuYyI+ZWxlbWVudERlY2xTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCB0eXBlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNlbmREb2N1bWVudFNBWEZ1bmMiPmVuZERvY3VtZW50U0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI2VuZERvY3VtZW50U0FYRnVuYyI+ZW5kRG9jdW1lbnRTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjZW5kRWxlbWVudE5zU0FYMkZ1bmMiPmVuZEVsZW1lbnROc1NBWDJGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjZW5kRWxlbWVudE5zU0FYMkZ1bmMiPmVuZEVsZW1lbnROc1NBWDJGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxvY2FsbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkkpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjZW5kRWxlbWVudFNBWEZ1bmMiPmVuZEVsZW1lbnRTQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjZW5kRWxlbWVudFNBWEZ1bmMiPmVuZEVsZW1lbnRTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjZW50aXR5RGVjbFNBWEZ1bmMiPmVudGl0eURlY2xTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCB0eXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJsaWNJZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiNlcnJvclNBWEZ1bmMiPmVycm9yU0FYRnVuYzwvYT4JCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNleHRlcm5hbFN1YnNldFNBWEZ1bmMiPmV4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI2V4dGVybmFsU3Vic2V0U0FYRnVuYyI+ZXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI2ZhdGFsRXJyb3JTQVhGdW5jIj5mYXRhbEVycm9yU0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI2ZhdGFsRXJyb3JTQVhGdW5jIj5mYXRhbEVycm9yU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI2dldEVudGl0eVNBWEZ1bmMiPmdldEVudGl0eVNBWEZ1bmM8L2E+Cis8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgk8YSBocmVmPSIjZ2V0RW50aXR5U0FYRnVuYyI+Z2V0RW50aXR5U0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYyI+Z2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYzwvYT4KKzxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiNnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIj5nZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjaGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jIj5oYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+CitpbnQJPGEgaHJlZj0iI2hhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgkodm9pZCAqIGN0eCkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0ludGVybmFsU3Vic2V0U0FYRnVuYzwvYT4KK2ludAk8YSBocmVmPSIjaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jIj5oYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+CSh2b2lkICogY3R4KQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNoLCA8YnIgLz4JCQkJCSBpbnQgbGVuKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI2ludGVybmFsU3Vic2V0U0FYRnVuYyI+aW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjaW50ZXJuYWxTdWJzZXRTQVhGdW5jIj5pbnRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjaXNTdGFuZGFsb25lU0FYRnVuYyI+aXNTdGFuZGFsb25lU0FYRnVuYzwvYT4KK2ludAk8YSBocmVmPSIjaXNTdGFuZGFsb25lU0FYRnVuYyI+aXNTdGFuZGFsb25lU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4KQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI25vdGF0aW9uRGVjbFNBWEZ1bmMiPm5vdGF0aW9uRGVjbFNBWEZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiNub3RhdGlvbkRlY2xTQVhGdW5jIj5ub3RhdGlvbkRlY2xTQVhGdW5jPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYyI+cHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNyZWZlcmVuY2VTQVhGdW5jIj5yZWZlcmVuY2VTQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3Jlc29sdmVFbnRpdHlTQVhGdW5jIj5yZXNvbHZlRW50aXR5U0FYRnVuYzwvYT4KKzxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyI+c2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+IGxvYykKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNzdGFydERvY3VtZW50U0FYRnVuYyI+c3RhcnREb2N1bWVudFNBWEZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiNzdGFydERvY3VtZW50U0FYRnVuYyI+c3RhcnREb2N1bWVudFNBWEZ1bmM8L2E+CQkodm9pZCAqIGN0eCkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjc3RhcnRFbGVtZW50TnNTQVgyRnVuYyI+c3RhcnRFbGVtZW50TnNTQVgyRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsb2NhbG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJLCA8YnIgLz4JCQkJCSBpbnQgbmJfbmFtZXNwYWNlcywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzcGFjZXMsIDxiciAvPgkJCQkJIGludCBuYl9hdHRyaWJ1dGVzLCA8YnIgLz4JCQkJCSBpbnQgbmJfZGVmYXVsdGVkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cmlidXRlcykKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiNzdGFydEVsZW1lbnRTQVhGdW5jIj5zdGFydEVsZW1lbnRTQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjc3RhcnRFbGVtZW50U0FYRnVuYyI+c3RhcnRFbGVtZW50U0FYRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cykKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN1bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jIj51bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyI+dW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbm90YXRpb25OYW1lKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3dhcm5pbmdTQVhGdW5jIj53YXJuaW5nU0FYRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI3dhcm5pbmdTQVhGdW5jIj53YXJuaW5nU0FYRnVuYzwvYT4JCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmxvbmcJPGEgaHJlZj0iI3htbEJ5dGVDb25zdW1lZCI+eG1sQnl0ZUNvbnN1bWVkPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sQ2xlYW51cFBhcnNlciI+eG1sQ2xlYW51cFBhcnNlcjwvYT4JCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbENsZWFyTm9kZUluZm9TZXEiPnhtbENsZWFyTm9kZUluZm9TZXE8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvU2VxUHRyIj54bWxQYXJzZXJOb2RlSW5mb1NlcVB0cjwvYT4gc2VxKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbENsZWFyUGFyc2VyQ3R4dCI+eG1sQ2xlYXJQYXJzZXJDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDcmVhdGVEb2NQYXJzZXJDdHh0Ij54bWxDcmVhdGVEb2NQYXJzZXJDdHh0PC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbENyZWF0ZUlPUGFyc2VyQ3R4dCI+eG1sQ3JlYXRlSU9QYXJzZXJDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyIC8+CQkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiPnhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGNodW5rLCA8YnIgLz4JCQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbEN0eHRSZWFkRG9jIj54bWxDdHh0UmVhZERvYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3R4dFJlYWRGZCI+eG1sQ3R4dFJlYWRGZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBmZCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3R4dFJlYWRGaWxlIj54bWxDdHh0UmVhZEZpbGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbEN0eHRSZWFkSU8iPnhtbEN0eHRSZWFkSU88L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3R4dFJlYWRNZW1vcnkiPnhtbEN0eHRSZWFkTWVtb3J5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxDdHh0UmVzZXQiPnhtbEN0eHRSZXNldDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ3R4dFJlc2V0UHVzaCI+eG1sQ3R4dFJlc2V0UHVzaDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyIC8+CQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ3R4dFVzZU9wdGlvbnMiPnhtbEN0eHRVc2VPcHRpb25zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4KKzxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPgkoY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBJRCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY29udGV4dCkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVQYXJzZXJDdHh0Ij54bWxGcmVlUGFyc2VyQ3R4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4JPGEgaHJlZj0iI3htbEdldEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxHZXRGZWF0dXJlIj54bWxHZXRGZWF0dXJlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIgLz4JCQkJCSB2b2lkICogcmVzdWx0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sR2V0RmVhdHVyZXNMaXN0Ij54bWxHZXRGZWF0dXJlc0xpc3Q8L2E+CQkoaW50ICogbGVuLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICoqIHJlc3VsdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEhhc0ZlYXR1cmUiPnhtbEhhc0ZlYXR1cmU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxGZWF0dXJlIj54bWxGZWF0dXJlPC9hPiBmZWF0dXJlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxJT1BhcnNlRFREIj54bWxJT1BhcnNlRFREPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sSW5pdE5vZGVJbmZvU2VxIj54bWxJbml0Tm9kZUluZm9TZXE8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvU2VxUHRyIj54bWxQYXJzZXJOb2RlSW5mb1NlcVB0cjwvYT4gc2VxKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEluaXRQYXJzZXIiPnhtbEluaXRQYXJzZXI8L2E+CQkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxJbml0UGFyc2VyQ3R4dCI+eG1sSW5pdFBhcnNlckN0eHQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sS2VlcEJsYW5rc0RlZmF1bHQiPnhtbEtlZXBCbGFua3NEZWZhdWx0PC9hPgkJKGludCB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPnhtbExpbmVOdW1iZXJzRGVmYXVsdDwvYT4JCShpbnQgdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sTG9hZEV4dGVybmFsRW50aXR5Ij54bWxMb2FkRXh0ZXJuYWxFbnRpdHk8L2E+CShjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIElELCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3SU9JbnB1dFN0cmVhbSI+eG1sTmV3SU9JbnB1dFN0cmVhbTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3UGFyc2VyQ3R4dCI+eG1sTmV3UGFyc2VyQ3R4dDwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJIGludCBkZXB0aCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyaW5nLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI+eG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyIC8+CQkJCQkJIGludCBkZXB0aCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cmluZywgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiBsc3QsIDxiciAvPgkJCQkJCSBpbnQgcmVjb3Zlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFBhcnNlQ2h1bmsiPnhtbFBhcnNlQ2h1bms8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGNodW5rLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgaW50IHRlcm1pbmF0ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZURURCI+eG1sUGFyc2VEVEQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlRG9jIj54bWxQYXJzZURvYzwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXJzZURvY3VtZW50Ij54bWxQYXJzZURvY3VtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VFbnRpdHkiPnhtbFBhcnNlRW50aXR5PC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFBhcnNlRXh0UGFyc2VkRW50Ij54bWxQYXJzZUV4dFBhcnNlZEVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJIGludCBkZXB0aCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBJRCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqIGxzdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VGaWxlIj54bWxQYXJzZUZpbGU8L2E+CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9ycyI+eG1sUGFyc2VyRXJyb3JzPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VJbk5vZGVDb250ZXh0Ij54bWxQYXJzZUluTm9kZUNvbnRleHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIgLz4JCQkJCSBpbnQgZGF0YWxlbiwgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiBsc3QpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlTWVtb3J5Ij54bWxQYXJzZU1lbW9yeTwvYT4JCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZXJBZGROb2RlSW5mbyI+eG1sUGFyc2VyQWRkTm9kZUluZm88L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9QdHIiPnhtbFBhcnNlck5vZGVJbmZvUHRyPC9hPiBpbmZvKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mbyI+eG1sUGFyc2VyTm9kZUluZm88L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlckZpbmROb2RlSW5mbyI+eG1sUGFyc2VyRmluZE5vZGVJbmZvPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHgsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnVuc2lnbmVkIGxvbmcJPGEgaHJlZj0iI3htbFBhcnNlckZpbmROb2RlSW5mb0luZGV4Ij54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciI+eG1sUGFyc2VyTm9kZUluZm9TZXFQdHI8L2E+IHNlcSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sUGFyc2VySW5wdXREZWFsbG9jYXRlIj54bWxQYXJzZXJJbnB1dERlYWxsb2NhdGU8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRHcm93Ij54bWxQYXJzZXJJbnB1dEdyb3c8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGluLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRSZWFkIj54bWxQYXJzZXJJbnB1dFJlYWQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGluLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0Ij54bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQ8L2E+CShpbnQgdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkRG9jIj54bWxSZWFkRG9jPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZEZkIj54bWxSZWFkRmQ8L2E+CQkoaW50IGZkLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkRmlsZSI+eG1sUmVhZEZpbGU8L2E+CQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkSU8iPnhtbFJlYWRJTzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZE1lbW9yeSI+eG1sUmVhZE1lbW9yeTwvYT4JCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVjb3ZlckRvYyI+eG1sUmVjb3ZlckRvYzwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFJlY292ZXJGaWxlIj54bWxSZWNvdmVyRmlsZTwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbFJlY292ZXJNZW1vcnkiPnhtbFJlY292ZXJNZW1vcnk8L2E+CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYUGFyc2VEVEQiPnhtbFNBWFBhcnNlRFREPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYUGFyc2VEb2MiPnhtbFNBWFBhcnNlRG9jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGludCByZWNvdmVyeSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYUGFyc2VFbnRpdHkiPnhtbFNBWFBhcnNlRW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYUGFyc2VGaWxlIj54bWxTQVhQYXJzZUZpbGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgaW50IHJlY292ZXJ5KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YSI+eG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBpbnQgcmVjb3ZlcnksIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxTQVhQYXJzZU1lbW9yeSI+eG1sU0FYUGFyc2VNZW1vcnk8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJIGludCByZWNvdmVyeSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSI+eG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCQkgaW50IHJlY292ZXJ5LCA8YnIgLz4JCQkJCQkgdm9pZCAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTQVhVc2VyUGFyc2VGaWxlIj54bWxTQVhVc2VyUGFyc2VGaWxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTQVhVc2VyUGFyc2VNZW1vcnkiPnhtbFNBWFVzZXJQYXJzZU1lbW9yeTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IHNpemUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbEV4dGVybmFsRW50aXR5TG9hZGVyIj54bWxFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4gZik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNldEZlYXR1cmUiPnhtbFNldEZlYXR1cmU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG5hbWUsIDxiciAvPgkJCQkJIHZvaWQgKiB2YWx1ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciI+eG1sU2V0dXBQYXJzZXJGb3JCdWZmZXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWZmZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTdG9wUGFyc2VyIj54bWxTdG9wUGFyc2VyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0PC9hPgkoaW50IHZhbCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iWE1MX0NPTVBMRVRFX0FUVFJTIiBpZD0iWE1MX0NPTVBMRVRFX0FUVFJTIj48L2E+TWFjcm86IFhNTF9DT01QTEVURV9BVFRSUzwvaDM+PHByZT4jZGVmaW5lIFhNTF9DT01QTEVURV9BVFRSUzwvcHJlPjxwPkJpdCBpbiB0aGUgbG9hZHN1YnNldCBjb250ZXh0IGZpZWxkIHRvIHRlbGwgdG8gZG8gY29tcGxldGUgdGhlIGVsZW1lbnRzIGF0dHJpYnV0ZXMgbGlzdHMgd2l0aCB0aGUgb25lcyBkZWZhdWx0ZWQgZnJvbSB0aGUgRFREcy4gVXNlIGl0IHRvIGluaXRpYWxpemUgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX0RFRkFVTFRfVkVSU0lPTiIgaWQ9IlhNTF9ERUZBVUxUX1ZFUlNJT04iPjwvYT5NYWNybzogWE1MX0RFRkFVTFRfVkVSU0lPTjwvaDM+PHByZT4jZGVmaW5lIFhNTF9ERUZBVUxUX1ZFUlNJT048L3ByZT48cD5UaGUgZGVmYXVsdCB2ZXJzaW9uIG9mIFhNTCB1c2VkOiAxLjA8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX0RFVEVDVF9JRFMiIGlkPSJYTUxfREVURUNUX0lEUyI+PC9hPk1hY3JvOiBYTUxfREVURUNUX0lEUzwvaDM+PHByZT4jZGVmaW5lIFhNTF9ERVRFQ1RfSURTPC9wcmU+PHA+Qml0IGluIHRoZSBsb2Fkc3Vic2V0IGNvbnRleHQgZmllbGQgdG8gdGVsbCB0byBkbyBJRC9SRUZzIGxvb2t1cHMuIFVzZSBpdCB0byBpbml0aWFsaXplIHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQVgyX01BR0lDIiBpZD0iWE1MX1NBWDJfTUFHSUMiPjwvYT5NYWNybzogWE1MX1NBWDJfTUFHSUM8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0FYMl9NQUdJQzwvcHJlPjxwPlNwZWNpYWwgY29uc3RhbnQgZm91bmQgaW4gU0FYMiBibG9ja3MgaW5pdGlhbGl6ZWQgZmllbGRzPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TS0lQX0lEUyIgaWQ9IlhNTF9TS0lQX0lEUyI+PC9hPk1hY3JvOiBYTUxfU0tJUF9JRFM8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0tJUF9JRFM8L3ByZT48cD5CaXQgaW4gdGhlIGxvYWRzdWJzZXQgY29udGV4dCBmaWVsZCB0byB0ZWxsIHRvIG5vdCBkbyBJRC9SRUZzIHJlZ2lzdHJhdGlvbi4gVXNlZCB0byBpbml0aWFsaXplIDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSI+eG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTwvYT4gaW4gc29tZSBzcGVjaWFsIGNhc2VzLjwvcD4KKzxoMz5FbnVtIDxhIG5hbWU9InhtbEZlYXR1cmUiIGlkPSJ4bWxGZWF0dXJlIj54bWxGZWF0dXJlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sRmVhdHVyZSB7CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfVEhSRUFEIiBpZD0iWE1MX1dJVEhfVEhSRUFEIj5YTUxfV0lUSF9USFJFQUQ8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1RSRUUiIGlkPSJYTUxfV0lUSF9UUkVFIj5YTUxfV0lUSF9UUkVFPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9PVVRQVVQiIGlkPSJYTUxfV0lUSF9PVVRQVVQiPlhNTF9XSVRIX09VVFBVVDwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfUFVTSCIgaWQ9IlhNTF9XSVRIX1BVU0giPlhNTF9XSVRIX1BVU0g8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1JFQURFUiIgaWQ9IlhNTF9XSVRIX1JFQURFUiI+WE1MX1dJVEhfUkVBREVSPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9QQVRURVJOIiBpZD0iWE1MX1dJVEhfUEFUVEVSTiI+WE1MX1dJVEhfUEFUVEVSTjwvYT4gPSA2CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfV1JJVEVSIiBpZD0iWE1MX1dJVEhfV1JJVEVSIj5YTUxfV0lUSF9XUklURVI8L2E+ID0gNworICAgIDxhIG5hbWU9IlhNTF9XSVRIX1NBWDEiIGlkPSJYTUxfV0lUSF9TQVgxIj5YTUxfV0lUSF9TQVgxPC9hPiA9IDgKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9GVFAiIGlkPSJYTUxfV0lUSF9GVFAiPlhNTF9XSVRIX0ZUUDwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfSFRUUCIgaWQ9IlhNTF9XSVRIX0hUVFAiPlhNTF9XSVRIX0hUVFA8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9WQUxJRCIgaWQ9IlhNTF9XSVRIX1ZBTElEIj5YTUxfV0lUSF9WQUxJRDwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhNTF9XSVRIX0hUTUwiIGlkPSJYTUxfV0lUSF9IVE1MIj5YTUxfV0lUSF9IVE1MPC9hPiA9IDEyCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfTEVHQUNZIiBpZD0iWE1MX1dJVEhfTEVHQUNZIj5YTUxfV0lUSF9MRUdBQ1k8L2E+ID0gMTMKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9DMTROIiBpZD0iWE1MX1dJVEhfQzE0TiI+WE1MX1dJVEhfQzE0TjwvYT4gPSAxNAorICAgIDxhIG5hbWU9IlhNTF9XSVRIX0NBVEFMT0ciIGlkPSJYTUxfV0lUSF9DQVRBTE9HIj5YTUxfV0lUSF9DQVRBTE9HPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfWFBBVEgiIGlkPSJYTUxfV0lUSF9YUEFUSCI+WE1MX1dJVEhfWFBBVEg8L2E+ID0gMTYKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9YUFRSIiBpZD0iWE1MX1dJVEhfWFBUUiI+WE1MX1dJVEhfWFBUUjwvYT4gPSAxNworICAgIDxhIG5hbWU9IlhNTF9XSVRIX1hJTkNMVURFIiBpZD0iWE1MX1dJVEhfWElOQ0xVREUiPlhNTF9XSVRIX1hJTkNMVURFPC9hPiA9IDE4CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfSUNPTlYiIGlkPSJYTUxfV0lUSF9JQ09OViI+WE1MX1dJVEhfSUNPTlY8L2E+ID0gMTkKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9JU084ODU5WCIgaWQ9IlhNTF9XSVRIX0lTTzg4NTlYIj5YTUxfV0lUSF9JU084ODU5WDwvYT4gPSAyMAorICAgIDxhIG5hbWU9IlhNTF9XSVRIX1VOSUNPREUiIGlkPSJYTUxfV0lUSF9VTklDT0RFIj5YTUxfV0lUSF9VTklDT0RFPC9hPiA9IDIxCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfUkVHRVhQIiBpZD0iWE1MX1dJVEhfUkVHRVhQIj5YTUxfV0lUSF9SRUdFWFA8L2E+ID0gMjIKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9BVVRPTUFUQSIgaWQ9IlhNTF9XSVRIX0FVVE9NQVRBIj5YTUxfV0lUSF9BVVRPTUFUQTwvYT4gPSAyMworICAgIDxhIG5hbWU9IlhNTF9XSVRIX0VYUFIiIGlkPSJYTUxfV0lUSF9FWFBSIj5YTUxfV0lUSF9FWFBSPC9hPiA9IDI0CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfU0NIRU1BUyIgaWQ9IlhNTF9XSVRIX1NDSEVNQVMiPlhNTF9XSVRIX1NDSEVNQVM8L2E+ID0gMjUKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9TQ0hFTUFUUk9OIiBpZD0iWE1MX1dJVEhfU0NIRU1BVFJPTiI+WE1MX1dJVEhfU0NIRU1BVFJPTjwvYT4gPSAyNgorICAgIDxhIG5hbWU9IlhNTF9XSVRIX01PRFVMRVMiIGlkPSJYTUxfV0lUSF9NT0RVTEVTIj5YTUxfV0lUSF9NT0RVTEVTPC9hPiA9IDI3CisgICAgPGEgbmFtZT0iWE1MX1dJVEhfREVCVUciIGlkPSJYTUxfV0lUSF9ERUJVRyI+WE1MX1dJVEhfREVCVUc8L2E+ID0gMjgKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9ERUJVR19NRU0iIGlkPSJYTUxfV0lUSF9ERUJVR19NRU0iPlhNTF9XSVRIX0RFQlVHX01FTTwvYT4gPSAyOQorICAgIDxhIG5hbWU9IlhNTF9XSVRIX0RFQlVHX1JVTiIgaWQ9IlhNTF9XSVRIX0RFQlVHX1JVTiI+WE1MX1dJVEhfREVCVUdfUlVOPC9hPiA9IDMwCisgICAgPGEgbmFtZT0iWE1MX1dJVEhfWkxJQiIgaWQ9IlhNTF9XSVRIX1pMSUIiPlhNTF9XSVRIX1pMSUI8L2E+ID0gMzEKKyAgICA8YSBuYW1lPSJYTUxfV0lUSF9OT05FIiBpZD0iWE1MX1dJVEhfTk9ORSI+WE1MX1dJVEhfTk9ORTwvYT4gPSA5OTk5OSA6IGp1c3QgdG8gYmUgc3VyZSBvZiBhbGxvY2F0aW9uIHNpemUKK30KKzwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbFBhcnNlcklucHV0U3RhdGUiIGlkPSJ4bWxQYXJzZXJJbnB1dFN0YXRlIj54bWxQYXJzZXJJbnB1dFN0YXRlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sUGFyc2VySW5wdXRTdGF0ZSB7CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9FT0YiIGlkPSJYTUxfUEFSU0VSX0VPRiI+WE1MX1BBUlNFUl9FT0Y8L2E+ID0gLTEgOiBub3RoaW5nIGlzIHRvIGJlIHBhcnNlZAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfU1RBUlQiIGlkPSJYTUxfUEFSU0VSX1NUQVJUIj5YTUxfUEFSU0VSX1NUQVJUPC9hPiA9IDAgOiBub3RoaW5nIGhhcyBiZWVuIHBhcnNlZAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfTUlTQyIgaWQ9IlhNTF9QQVJTRVJfTUlTQyI+WE1MX1BBUlNFUl9NSVNDPC9hPiA9IDEgOiBNaXNjKiBiZWZvcmUgaW50IHN1YnNldAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfUEkiIGlkPSJYTUxfUEFSU0VSX1BJIj5YTUxfUEFSU0VSX1BJPC9hPiA9IDIgOiBXaXRoaW4gYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9EVEQiIGlkPSJYTUxfUEFSU0VSX0RURCI+WE1MX1BBUlNFUl9EVEQ8L2E+ID0gMyA6IHdpdGhpbiBzb21lIERURCBjb250ZW50CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9QUk9MT0ciIGlkPSJYTUxfUEFSU0VSX1BST0xPRyI+WE1MX1BBUlNFUl9QUk9MT0c8L2E+ID0gNCA6IE1pc2MqIGFmdGVyIGludGVybmFsIHN1YnNldAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfQ09NTUVOVCIgaWQ9IlhNTF9QQVJTRVJfQ09NTUVOVCI+WE1MX1BBUlNFUl9DT01NRU5UPC9hPiA9IDUgOiB3aXRoaW4gYSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1NUQVJUX1RBRyIgaWQ9IlhNTF9QQVJTRVJfU1RBUlRfVEFHIj5YTUxfUEFSU0VSX1NUQVJUX1RBRzwvYT4gPSA2IDogd2l0aGluIGEgc3RhcnQgdGFnCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9DT05URU5UIiBpZD0iWE1MX1BBUlNFUl9DT05URU5UIj5YTUxfUEFSU0VSX0NPTlRFTlQ8L2E+ID0gNyA6IHdpdGhpbiB0aGUgY29udGVudAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTiIgaWQ9IlhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTiI+WE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OPC9hPiA9IDggOiB3aXRoaW4gYSBDREFUQSBzZWN0aW9uCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9FTkRfVEFHIiBpZD0iWE1MX1BBUlNFUl9FTkRfVEFHIj5YTUxfUEFSU0VSX0VORF9UQUc8L2E+ID0gOSA6IHdpdGhpbiBhIGNsb3NpbmcgdGFnCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9FTlRJVFlfREVDTCIgaWQ9IlhNTF9QQVJTRVJfRU5USVRZX0RFQ0wiPlhNTF9QQVJTRVJfRU5USVRZX0RFQ0w8L2E+ID0gMTAgOiB3aXRoaW4gYW4gZW50aXR5IGRlY2xhcmF0aW9uCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUUiIGlkPSJYTUxfUEFSU0VSX0VOVElUWV9WQUxVRSI+WE1MX1BBUlNFUl9FTlRJVFlfVkFMVUU8L2E+ID0gMTEgOiB3aXRoaW4gYW4gZW50aXR5IHZhbHVlIGluIGEgZGVjbAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFIiBpZD0iWE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUUiPlhNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFPC9hPiA9IDEyIDogd2l0aGluIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMIiBpZD0iWE1MX1BBUlNFUl9TWVNURU1fTElURVJBTCI+WE1MX1BBUlNFUl9TWVNURU1fTElURVJBTDwvYT4gPSAxMyA6IHdpdGhpbiBhIFNZU1RFTSB2YWx1ZQorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfRVBJTE9HIiBpZD0iWE1MX1BBUlNFUl9FUElMT0ciPlhNTF9QQVJTRVJfRVBJTE9HPC9hPiA9IDE0IDogdGhlIE1pc2MqIGFmdGVyIHRoZSBsYXN0IGVuZCB0YWcKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX0lHTk9SRSIgaWQ9IlhNTF9QQVJTRVJfSUdOT1JFIj5YTUxfUEFSU0VSX0lHTk9SRTwvYT4gPSAxNSA6IHdpdGhpbiBhbiBJR05PUkVEIHNlY3Rpb24KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMIiBpZD0iWE1MX1BBUlNFUl9QVUJMSUNfTElURVJBTCI+WE1MX1BBUlNFUl9QVUJMSUNfTElURVJBTDwvYT4gPSAxNiA6IHdpdGhpbiBhIFBVQkxJQyB2YWx1ZQorfQorPC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sUGFyc2VyTW9kZSIgaWQ9InhtbFBhcnNlck1vZGUiPnhtbFBhcnNlck1vZGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxQYXJzZXJNb2RlIHsKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfVU5LTk9XTiIgaWQ9IlhNTF9QQVJTRV9VTktOT1dOIj5YTUxfUEFSU0VfVU5LTk9XTjwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX0RPTSIgaWQ9IlhNTF9QQVJTRV9ET00iPlhNTF9QQVJTRV9ET008L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9TQVgiIGlkPSJYTUxfUEFSU0VfU0FYIj5YTUxfUEFSU0VfU0FYPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfUFVTSF9ET00iIGlkPSJYTUxfUEFSU0VfUFVTSF9ET00iPlhNTF9QQVJTRV9QVVNIX0RPTTwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1BVU0hfU0FYIiBpZD0iWE1MX1BBUlNFX1BVU0hfU0FYIj5YTUxfUEFSU0VfUFVTSF9TQVg8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9SRUFERVIiIGlkPSJYTUxfUEFSU0VfUkVBREVSIj5YTUxfUEFSU0VfUkVBREVSPC9hPiA9IDUKK30KKzwvcHJlPjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJOb2RlSW5mbyIgaWQ9InhtbFBhcnNlck5vZGVJbmZvIj5TdHJ1Y3R1cmUgeG1sUGFyc2VyTm9kZUluZm88L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFBhcnNlck5vZGVJbmZvPGJyIC8+c3RydWN0IF94bWxQYXJzZXJOb2RlSW5mbyB7CisgICAgY29uc3Qgc3RydWN0IF94bWxOb2RlICoJbm9kZQk6IFBvc2l0aW9uICZhbXA7IGxpbmUgIyB0aGF0IHRleHQgdGhhdCBjcmVhdGUKKyAgICB1bnNpZ25lZCBsb25nCWJlZ2luX3BvcworICAgIHVuc2lnbmVkIGxvbmcJYmVnaW5fbGluZQorICAgIHVuc2lnbmVkIGxvbmcJZW5kX3BvcworICAgIHVuc2lnbmVkIGxvbmcJZW5kX2xpbmUKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sUGFyc2VyTm9kZUluZm9TZXEiIGlkPSJ4bWxQYXJzZXJOb2RlSW5mb1NlcSI+U3RydWN0dXJlIHhtbFBhcnNlck5vZGVJbmZvU2VxPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxQYXJzZXJOb2RlSW5mb1NlcTxiciAvPnN0cnVjdCBfeG1sUGFyc2VyTm9kZUluZm9TZXEgeworICAgIHVuc2lnbmVkIGxvbmcJbWF4aW11bQorICAgIHVuc2lnbmVkIGxvbmcJbGVuZ3RoCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT4gKglidWZmZXIKK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxQYXJzZXJPcHRpb24iIGlkPSJ4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFBhcnNlck9wdGlvbiB7CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1JFQ09WRVIiIGlkPSJYTUxfUEFSU0VfUkVDT1ZFUiI+WE1MX1BBUlNFX1JFQ09WRVI8L2E+ID0gMSA6IHJlY292ZXIgb24gZXJyb3JzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PRU5UIiBpZD0iWE1MX1BBUlNFX05PRU5UIj5YTUxfUEFSU0VfTk9FTlQ8L2E+ID0gMiA6IHN1YnN0aXR1dGUgZW50aXRpZXMKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfRFRETE9BRCIgaWQ9IlhNTF9QQVJTRV9EVERMT0FEIj5YTUxfUEFSU0VfRFRETE9BRDwvYT4gPSA0IDogbG9hZCB0aGUgZXh0ZXJuYWwgc3Vic2V0CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX0RUREFUVFIiIGlkPSJYTUxfUEFSU0VfRFREQVRUUiI+WE1MX1BBUlNFX0RUREFUVFI8L2E+ID0gOCA6IGRlZmF1bHQgRFREIGF0dHJpYnV0ZXMKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfRFREVkFMSUQiIGlkPSJYTUxfUEFSU0VfRFREVkFMSUQiPlhNTF9QQVJTRV9EVERWQUxJRDwvYT4gPSAxNiA6IHZhbGlkYXRlIHdpdGggdGhlIERURAorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OT0VSUk9SIiBpZD0iWE1MX1BBUlNFX05PRVJST1IiPlhNTF9QQVJTRV9OT0VSUk9SPC9hPiA9IDMyIDogc3VwcHJlc3MgZXJyb3IgcmVwb3J0cworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OT1dBUk5JTkciIGlkPSJYTUxfUEFSU0VfTk9XQVJOSU5HIj5YTUxfUEFSU0VfTk9XQVJOSU5HPC9hPiA9IDY0IDogc3VwcHJlc3Mgd2FybmluZyByZXBvcnRzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1BFREFOVElDIiBpZD0iWE1MX1BBUlNFX1BFREFOVElDIj5YTUxfUEFSU0VfUEVEQU5USUM8L2E+ID0gMTI4IDogcGVkYW50aWMgZXJyb3IgcmVwb3J0aW5nCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PQkxBTktTIiBpZD0iWE1MX1BBUlNFX05PQkxBTktTIj5YTUxfUEFSU0VfTk9CTEFOS1M8L2E+ID0gMjU2IDogcmVtb3ZlIGJsYW5rIG5vZGVzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1NBWDEiIGlkPSJYTUxfUEFSU0VfU0FYMSI+WE1MX1BBUlNFX1NBWDE8L2E+ID0gNTEyIDogdXNlIHRoZSBTQVgxIGludGVyZmFjZSBpbnRlcm5hbGx5CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX1hJTkNMVURFIiBpZD0iWE1MX1BBUlNFX1hJTkNMVURFIj5YTUxfUEFSU0VfWElOQ0xVREU8L2E+ID0gMTAyNCA6IEltcGxlbWVudCBYSW5jbHVkZSBzdWJzdGl0aXRpb24KKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTk9ORVQiIGlkPSJYTUxfUEFSU0VfTk9ORVQiPlhNTF9QQVJTRV9OT05FVDwvYT4gPSAyMDQ4IDogRm9yYmlkIG5ldHdvcmsgYWNjZXNzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PRElDVCIgaWQ9IlhNTF9QQVJTRV9OT0RJQ1QiPlhNTF9QQVJTRV9OT0RJQ1Q8L2E+ID0gNDA5NiA6IERvIG5vdCByZXVzZSB0aGUgY29udGV4dCBkaWN0aW9ubmFyeQorICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9OU0NMRUFOIiBpZD0iWE1MX1BBUlNFX05TQ0xFQU4iPlhNTF9QQVJTRV9OU0NMRUFOPC9hPiA9IDgxOTIgOiByZW1vdmUgcmVkdW5kYW50IG5hbWVzcGFjZXMgZGVjbGFyYXRpb25zCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PQ0RBVEEiIGlkPSJYTUxfUEFSU0VfTk9DREFUQSI+WE1MX1BBUlNFX05PQ0RBVEE8L2E+ID0gMTYzODQgOiBtZXJnZSBDREFUQSBhcyB0ZXh0IG5vZGVzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX05PWElOQ05PREUiIGlkPSJYTUxfUEFSU0VfTk9YSU5DTk9ERSI+WE1MX1BBUlNFX05PWElOQ05PREU8L2E+ID0gMzI3NjggOiBkbyBub3QgZ2VuZXJhdGUgWElOQ0xVREUgU1RBUlQvRU5EIG5vZGVzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX0NPTVBBQ1QiIGlkPSJYTUxfUEFSU0VfQ09NUEFDVCI+WE1MX1BBUlNFX0NPTVBBQ1Q8L2E+ID0gNjU1MzYgOiBjb21wYWN0IHNtYWxsIHRleHQgbm9kZXM7IG5vIG1vZGlmaWNhdGlvbiBvZiB0aGUgdHJlZSBhbGxvd2VkIGFmdGVyd2FyZHMgKHdpbGwgcG9zc2libHkgY3Jhc2ggaWYgeW91IHRyeSB0byBtb2RpZnkgdGhlIHRyZWUpCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX09MRDEwIiBpZD0iWE1MX1BBUlNFX09MRDEwIj5YTUxfUEFSU0VfT0xEMTA8L2E+ID0gMTMxMDcyIDogcGFyc2UgdXNpbmcgWE1MLTEuMCBiZWZvcmUgdXBkYXRlIDUKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VfTk9CQVNFRklYIiBpZD0iWE1MX1BBUlNFX05PQkFTRUZJWCI+WE1MX1BBUlNFX05PQkFTRUZJWDwvYT4gPSAyNjIxNDQgOiBkbyBub3QgZml4dXAgWElOQ0xVREUgeG1sOmJhc2UgdXJpcworICAgIDxhIG5hbWU9IlhNTF9QQVJTRV9IVUdFIiBpZD0iWE1MX1BBUlNFX0hVR0UiPlhNTF9QQVJTRV9IVUdFPC9hPiA9IDUyNDI4OCA6IHJlbGF4IGFueSBoYXJkY29kZWQgbGltaXQgZnJvbSB0aGUgcGFyc2VyCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFX09MRFNBWCIgaWQ9IlhNTF9QQVJTRV9PTERTQVgiPlhNTF9QQVJTRV9PTERTQVg8L2E+ID0gMTA0ODU3NiA6IHBhcnNlIHVzaW5nIFNBWDIgaW50ZXJmYWNlIGZyb20gYmVmb3JlIDIuNy4wCit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sU0FYSGFuZGxlclYxIiBpZD0ieG1sU0FYSGFuZGxlclYxIj5TdHJ1Y3R1cmUgeG1sU0FYSGFuZGxlclYxPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxTQVhIYW5kbGVyVjE8YnIgLz5zdHJ1Y3QgX3htbFNBWEhhbmRsZXJWMSB7CisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2ludGVybmFsU3Vic2V0U0FYRnVuYyI+aW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPglpbnRlcm5hbFN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNpc1N0YW5kYWxvbmVTQVhGdW5jIj5pc1N0YW5kYWxvbmVTQVhGdW5jPC9hPglpc1N0YW5kYWxvbmUKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jIj5oYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+CWhhc0ludGVybmFsU3Vic2V0CisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2hhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgloYXNFeHRlcm5hbFN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNyZXNvbHZlRW50aXR5U0FYRnVuYyI+cmVzb2x2ZUVudGl0eVNBWEZ1bmM8L2E+CXJlc29sdmVFbnRpdHkKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjZ2V0RW50aXR5U0FYRnVuYyI+Z2V0RW50aXR5U0FYRnVuYzwvYT4JZ2V0RW50aXR5CisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2VudGl0eURlY2xTQVhGdW5jIj5lbnRpdHlEZWNsU0FYRnVuYzwvYT4JZW50aXR5RGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNub3RhdGlvbkRlY2xTQVhGdW5jIj5ub3RhdGlvbkRlY2xTQVhGdW5jPC9hPglub3RhdGlvbkRlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjYXR0cmlidXRlRGVjbFNBWEZ1bmMiPmF0dHJpYnV0ZURlY2xTQVhGdW5jPC9hPglhdHRyaWJ1dGVEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2VsZW1lbnREZWNsU0FYRnVuYyI+ZWxlbWVudERlY2xTQVhGdW5jPC9hPgllbGVtZW50RGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN1bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jIj51bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jPC9hPgl1bnBhcnNlZEVudGl0eURlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyI+c2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYzwvYT4Jc2V0RG9jdW1lbnRMb2NhdG9yCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RG9jdW1lbnRTQVhGdW5jIj5zdGFydERvY3VtZW50U0FYRnVuYzwvYT4Jc3RhcnREb2N1bWVudAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNlbmREb2N1bWVudFNBWEZ1bmMiPmVuZERvY3VtZW50U0FYRnVuYzwvYT4JZW5kRG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjc3RhcnRFbGVtZW50U0FYRnVuYyI+c3RhcnRFbGVtZW50U0FYRnVuYzwvYT4Jc3RhcnRFbGVtZW50CisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2VuZEVsZW1lbnRTQVhGdW5jIj5lbmRFbGVtZW50U0FYRnVuYzwvYT4JZW5kRWxlbWVudAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNyZWZlcmVuY2VTQVhGdW5jIj5yZWZlcmVuY2VTQVhGdW5jPC9hPglyZWZlcmVuY2UKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjY2hhcmFjdGVyc1NBWEZ1bmMiPmNoYXJhY3RlcnNTQVhGdW5jPC9hPgljaGFyYWN0ZXJzCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj5pZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYzwvYT4JaWdub3JhYmxlV2hpdGVzcGFjZQorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jPC9hPglwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjY29tbWVudFNBWEZ1bmMiPmNvbW1lbnRTQVhGdW5jPC9hPgljb21tZW50CisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3dhcm5pbmdTQVhGdW5jIj53YXJuaW5nU0FYRnVuYzwvYT4Jd2FybmluZworICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNlcnJvclNBWEZ1bmMiPmVycm9yU0FYRnVuYzwvYT4JZXJyb3IKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjZmF0YWxFcnJvclNBWEZ1bmMiPmZhdGFsRXJyb3JTQVhGdW5jPC9hPglmYXRhbEVycm9yCTogdW51c2VkIGVycm9yKCkgZ2V0IGFsbCB0aGUgZXJyb3JzCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2dldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMiPmdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmM8L2E+CWdldFBhcmFtZXRlckVudGl0eQorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNjZGF0YUJsb2NrU0FYRnVuYyI+Y2RhdGFCbG9ja1NBWEZ1bmM8L2E+CWNkYXRhQmxvY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjZXh0ZXJuYWxTdWJzZXRTQVhGdW5jIj5leHRlcm5hbFN1YnNldFNBWEZ1bmM8L2E+CWV4dGVybmFsU3Vic2V0CisgICAgdW5zaWduZWQgaW50CWluaXRpYWxpemVkCit9PC9wcmU+PGgzPjxhIG5hbWU9ImF0dHJpYnV0ZURlY2xTQVhGdW5jIiBpZD0iYXR0cmlidXRlRGVjbFNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBhdHRyaWJ1dGVEZWNsU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IGF0dHJpYnV0ZURlY2xTQVhGdW5jCit2b2lkCWF0dHJpYnV0ZURlY2xTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZWxlbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZnVsbG5hbWUsIDxiciAvPgkJCQkJIGludCB0eXBlLCA8YnIgLz4JCQkJCSBpbnQgZGVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkZWZhdWx0VmFsdWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPiB0cmVlKQorPC9wcmU+PHA+QW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVsbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgZGVmYXVsdCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmYXVsdFZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHJlZSBvZiBlbnVtZXJhdGVkIHZhbHVlIHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0iYXR0cmlidXRlU0FYRnVuYyIgaWQ9ImF0dHJpYnV0ZVNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBhdHRyaWJ1dGVTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogYXR0cmlidXRlU0FYRnVuYwordm9pZAlhdHRyaWJ1dGVTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpCis8L3ByZT48cD5IYW5kbGUgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0aGF0IGhhcyBiZWVuIHJlYWQgYnkgdGhlIHBhcnNlci4gVGhlIGRlZmF1bHQgaGFuZGxpbmcgaXMgdG8gY29udmVydCB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpbnRvIGFuIERPTSBzdWJ0cmVlIGFuZCBwYXN0IGl0IGluIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0ciI+eG1sQXR0cjwvYT4gZWxlbWVudCBhZGRlZCB0byB0aGUgZWxlbWVudC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJjZGF0YUJsb2NrU0FYRnVuYyIgaWQ9ImNkYXRhQmxvY2tTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogY2RhdGFCbG9ja1NBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBjZGF0YUJsb2NrU0FYRnVuYwordm9pZAljZGF0YUJsb2NrU0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgbGVuKQorPC9wcmU+PHA+Q2FsbGVkIHdoZW4gYSBwY2RhdGEgYmxvY2sgaGFzIGJlZW4gcGFyc2VkLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcGNkYXRhIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJsb2NrIGxlbmd0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0iY2hhcmFjdGVyc1NBWEZ1bmMiIGlkPSJjaGFyYWN0ZXJzU0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IGNoYXJhY3RlcnNTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogY2hhcmFjdGVyc1NBWEZ1bmMKK3ZvaWQJY2hhcmFjdGVyc1NBWEZ1bmMJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjaCwgPGJyIC8+CQkJCQkgaW50IGxlbikKKzwvcHJlPjxwPlJlY2VpdmluZyBzb21lIGNoYXJzIGZyb20gdGhlIHBhcnNlci48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJjb21tZW50U0FYRnVuYyIgaWQ9ImNvbW1lbnRTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogY29tbWVudFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBjb21tZW50U0FYRnVuYwordm9pZAljb21tZW50U0FYRnVuYwkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSkKKzwvcHJlPjxwPkEgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+IGhhcyBiZWVuIHBhcnNlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNjb21tZW50Ij5jb21tZW50PC9hPiBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJlbGVtZW50RGVjbFNBWEZ1bmMiIGlkPSJlbGVtZW50RGVjbFNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBlbGVtZW50RGVjbFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBlbGVtZW50RGVjbFNBWEZ1bmMKK3ZvaWQJZWxlbWVudERlY2xTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50KQorPC9wcmU+PHA+QW4gZWxlbWVudCBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB2YWx1ZSB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJlbmREb2N1bWVudFNBWEZ1bmMiIGlkPSJlbmREb2N1bWVudFNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBlbmREb2N1bWVudFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBlbmREb2N1bWVudFNBWEZ1bmMKK3ZvaWQJZW5kRG9jdW1lbnRTQVhGdW5jCQkodm9pZCAqIGN0eCkKKzwvcHJlPjxwPkNhbGxlZCB3aGVuIHRoZSBkb2N1bWVudCBlbmQgaGFzIGJlZW4gZGV0ZWN0ZWQuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0iZW5kRWxlbWVudE5zU0FYMkZ1bmMiIGlkPSJlbmRFbGVtZW50TnNTQVgyRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IGVuZEVsZW1lbnROc1NBWDJGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogZW5kRWxlbWVudE5zU0FYMkZ1bmMKK3ZvaWQJZW5kRWxlbWVudE5zU0FYMkZ1bmMJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsb2NhbG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJKQorPC9wcmU+PHA+U0FYMiBjYWxsYmFjayB3aGVuIGFuIGVsZW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkIGJ5IHRoZSBwYXJzZXIuIEl0IHByb3ZpZGVzIHRoZSBuYW1lc3BhY2UgaW5mb3JtYXRpb25zIGZvciB0aGUgZWxlbWVudC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhbG5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9mIHRoZSBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0iZW5kRWxlbWVudFNBWEZ1bmMiIGlkPSJlbmRFbGVtZW50U0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IGVuZEVsZW1lbnRTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogZW5kRWxlbWVudFNBWEZ1bmMKK3ZvaWQJZW5kRWxlbWVudFNBWEZ1bmMJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKQorPC9wcmU+PHA+Q2FsbGVkIHdoZW4gdGhlIGVuZCBvZiBhbiBlbGVtZW50IGhhcyBiZWVuIGRldGVjdGVkLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9ImVudGl0eURlY2xTQVhGdW5jIiBpZD0iZW50aXR5RGVjbFNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBlbnRpdHlEZWNsU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IGVudGl0eURlY2xTQVhGdW5jCit2b2lkCWVudGl0eURlY2xTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCkKKzwvcHJlPjxwPkFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9ImVycm9yU0FYRnVuYyIgaWQ9ImVycm9yU0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IGVycm9yU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IGVycm9yU0FYRnVuYwordm9pZAllcnJvclNBWEZ1bmMJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPjxwPkRpc3BsYXkgYW5kIGZvcm1hdCBhbiBlcnJvciBtZXNzYWdlcywgY2FsbGJhY2suPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0iZXh0ZXJuYWxTdWJzZXRTQVhGdW5jIiBpZD0iZXh0ZXJuYWxTdWJzZXRTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogZXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogZXh0ZXJuYWxTdWJzZXRTQVhGdW5jCit2b2lkCWV4dGVybmFsU3Vic2V0U0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKQorPC9wcmU+PHA+Q2FsbGJhY2sgb24gZXh0ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByb290IGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+RXh0ZXJuYWxJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4dGVybmFsIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJmYXRhbEVycm9yU0FYRnVuYyIgaWQ9ImZhdGFsRXJyb3JTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogZmF0YWxFcnJvclNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBmYXRhbEVycm9yU0FYRnVuYwordm9pZAlmYXRhbEVycm9yU0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT48cD5EaXNwbGF5IGFuZCBmb3JtYXQgZmF0YWwgZXJyb3IgbWVzc2FnZXMsIGNhbGxiYWNrLiBOb3RlOiBzbyBmYXIgZmF0YWxFcnJvcigpIFNBWCBjYWxsYmFja3MgYXJlIG5vdCB1c2VkLCBlcnJvcigpIGdldCBhbGwgdGhlIGNhbGxiYWNrcyBmb3IgZXJyb3JzLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9ImdldEVudGl0eVNBWEZ1bmMiIGlkPSJnZXRFbnRpdHlTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogZ2V0RW50aXR5U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IGdldEVudGl0eVNBWEZ1bmMKKzxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CWdldEVudGl0eVNBWEZ1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpCis8L3ByZT48cD5HZXQgYW4gZW50aXR5IGJ5IG5hbWUuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gaWYgZm91bmQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIiBpZD0iZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IGdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jCis8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPglnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSkKKzwvcHJlPjxwPkdldCBhIHBhcmFtZXRlciBlbnRpdHkgYnkgbmFtZS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZW50aXR5IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBpZiBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9Imhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyIgaWQ9Imhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IGhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IGhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYworaW50CWhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYwkodm9pZCAqIGN0eCkKKzwvcHJlPjxwPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0PzwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0iaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jIiBpZD0iaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jCitpbnQJaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jCSh2b2lkICogY3R4KQorPC9wcmU+PHA+RG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBpbnRlcm5hbCBzdWJzZXQuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyIgaWQ9Imlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYwordm9pZAlpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYwkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY2gsIDxiciAvPgkJCQkJIGludCBsZW4pCis8L3ByZT48cD5SZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSBjaGFyYWN0ZXJzLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9ImludGVybmFsU3Vic2V0U0FYRnVuYyIgaWQ9ImludGVybmFsU3Vic2V0U0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IGludGVybmFsU3Vic2V0U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IGludGVybmFsU3Vic2V0U0FYRnVuYwordm9pZAlpbnRlcm5hbFN1YnNldFNBWEZ1bmMJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCkKKzwvcHJlPjxwPkNhbGxiYWNrIG9uIGludGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcm9vdCBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBJRDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTWVNURU0gSUQgKGUuZy4gZmlsZW5hbWUgb3IgVVJMKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0iaXNTdGFuZGFsb25lU0FYRnVuYyIgaWQ9ImlzU3RhbmRhbG9uZVNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBpc1N0YW5kYWxvbmVTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogaXNTdGFuZGFsb25lU0FYRnVuYworaW50CWlzU3RhbmRhbG9uZVNBWEZ1bmMJCSh2b2lkICogY3R4KQorPC9wcmU+PHA+SXMgdGhpcyBkb2N1bWVudCB0YWdnZWQgc3RhbmRhbG9uZT88L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9Im5vdGF0aW9uRGVjbFNBWEZ1bmMiIGlkPSJub3RhdGlvbkRlY2xTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogbm90YXRpb25EZWNsU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IG5vdGF0aW9uRGVjbFNBWEZ1bmMKK3ZvaWQJbm90YXRpb25EZWNsU0FYRnVuYwkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXN0ZW1JZCkKKzwvcHJlPjxwPldoYXQgdG8gZG8gd2hlbiBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHBhcnNlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgbmFtZSBvZiB0aGUgbm90YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c3RlbUlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMiIGlkPSJwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMKK3ZvaWQJcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYwkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdGFyZ2V0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkYXRhKQorPC9wcmU+PHA+QSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGhhcyBiZWVuIHBhcnNlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YXJnZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFBJIGRhdGEnczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0icmVmZXJlbmNlU0FYRnVuYyIgaWQ9InJlZmVyZW5jZVNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiByZWZlcmVuY2VTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogcmVmZXJlbmNlU0FYRnVuYwordm9pZAlyZWZlcmVuY2VTQVhGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSkKKzwvcHJlPjxwPkNhbGxlZCB3aGVuIGFuIGVudGl0eSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGlzIGRldGVjdGVkLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBlbnRpdHkgbmFtZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0icmVzb2x2ZUVudGl0eVNBWEZ1bmMiIGlkPSJyZXNvbHZlRW50aXR5U0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHJlc29sdmVFbnRpdHlTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogcmVzb2x2ZUVudGl0eVNBWEZ1bmMKKzxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPglyZXNvbHZlRW50aXR5U0FYRnVuYwkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lkLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSWQpCis8L3ByZT48cD5DYWxsYmFjazogVGhlIGVudGl0eSBsb2FkZXIsIHRvIGNvbnRyb2wgdGhlIGxvYWRpbmcgb2YgZXh0ZXJuYWwgZW50aXRpZXMsIHRoZSBhcHBsaWNhdGlvbiBjYW4gZWl0aGVyOiAtIG92ZXJyaWRlIHRoaXMgcmVzb2x2ZUVudGl0eSgpIGNhbGxiYWNrIGluIHRoZSBTQVggYmxvY2sgLSBvciBiZXR0ZXIgdXNlIHRoZSB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpIGZ1bmN0aW9uIHRvIHNldCB1cCBpdCdzIG93biBlbnRpdHkgcmVzb2x1dGlvbiByb3V0aW5lPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpZiBpbmxpbmVkIG9yIE5VTEwgZm9yIERPTSBiZWhhdmlvdXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jIiBpZD0ic2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jCit2b2lkCXNldERvY3VtZW50TG9jYXRvclNBWEZ1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYTG9jYXRvclB0ciI+eG1sU0FYTG9jYXRvclB0cjwvYT4gbG9jKQorPC9wcmU+PHA+UmVjZWl2ZSB0aGUgZG9jdW1lbnQgbG9jYXRvciBhdCBzdGFydHVwLCBhY3R1YWxseSB4bWxEZWZhdWx0U0FYTG9jYXRvci4gRXZlcnl0aGluZyBpcyBhdmFpbGFibGUgb24gdGhlIGNvbnRleHQsIHNvIHRoaXMgaXMgdXNlbGVzcyBpbiBvdXIgY2FzZS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgU0FYIExvY2F0b3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InN0YXJ0RG9jdW1lbnRTQVhGdW5jIiBpZD0ic3RhcnREb2N1bWVudFNBWEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBzdGFydERvY3VtZW50U0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHN0YXJ0RG9jdW1lbnRTQVhGdW5jCit2b2lkCXN0YXJ0RG9jdW1lbnRTQVhGdW5jCQkodm9pZCAqIGN0eCkKKzwvcHJlPjxwPkNhbGxlZCB3aGVuIHRoZSBkb2N1bWVudCBzdGFydCBiZWluZyBwcm9jZXNzZWQuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ic3RhcnRFbGVtZW50TnNTQVgyRnVuYyIgaWQ9InN0YXJ0RWxlbWVudE5zU0FYMkZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiBzdGFydEVsZW1lbnROc1NBWDJGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogc3RhcnRFbGVtZW50TnNTQVgyRnVuYwordm9pZAlzdGFydEVsZW1lbnROc1NBWDJGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyIC8+CQkJCQkgaW50IG5iX25hbWVzcGFjZXMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzLCA8YnIgLz4JCQkJCSBpbnQgbmJfYXR0cmlidXRlcywgPGJyIC8+CQkJCQkgaW50IG5iX2RlZmF1bHRlZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGF0dHJpYnV0ZXMpCis8L3ByZT48cD5TQVgyIGNhbGxiYWNrIHdoZW4gYW4gZWxlbWVudCBzdGFydCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQsIGFzIHdlbGwgYXMgdGhlIG5ldyBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIG9uIHRoZSBlbGVtZW50LjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvY2FsbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsIG5hbWUgb2YgdGhlIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZXNwYWNlIHByZWZpeCBpZiBhdmFpbGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZXNwYWNlIG5hbWUgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYl9uYW1lc3BhY2VzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5udW1iZXIgb2YgbmFtZXNwYWNlIGRlZmluaXRpb25zIG9uIHRoYXQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgcHJlZml4L1VSSSBwYWlycyBuYW1lc3BhY2UgZGVmaW5pdGlvbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iX2F0dHJpYnV0ZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBvbiB0aGF0IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iX2RlZmF1bHRlZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBkZWZhdWx0ZWQgYXR0cmlidXRlcy4gVGhlIGRlZmF1bHRlZCBvbmVzIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cmlidXRlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgKGxvY2FsbmFtZS9wcmVmaXgvVVJJL3ZhbHVlL2VuZCkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJzdGFydEVsZW1lbnRTQVhGdW5jIiBpZD0ic3RhcnRFbGVtZW50U0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHN0YXJ0RWxlbWVudFNBWEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiBzdGFydEVsZW1lbnRTQVhGdW5jCit2b2lkCXN0YXJ0RWxlbWVudFNBWEZ1bmMJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogYXR0cykKKzwvcHJlPjxwPkNhbGxlZCB3aGVuIGFuIG9wZW5pbmcgdGFnIGhhcyBiZWVuIHByb2Nlc3NlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgZWxlbWVudCBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gYXJyYXkgb2YgbmFtZS92YWx1ZSBhdHRyaWJ1dGVzIHBhaXJzLCBOVUxMIHRlcm1pbmF0ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMiIGlkPSJ1bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMKK3ZvaWQJdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYwkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHVibGljSWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c3RlbUlkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBub3RhdGlvbk5hbWUpCis8L3ByZT48cD5XaGF0IHRvIGRvIHdoZW4gYW4gdW5wYXJzZWQgZW50aXR5IGRlY2xhcmF0aW9uIGlzIHBhcnNlZC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgbmFtZSBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJsaWNJZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXN0ZW1JZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub3RhdGlvbk5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0id2FybmluZ1NBWEZ1bmMiIGlkPSJ3YXJuaW5nU0FYRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHdhcm5pbmdTQVhGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogd2FybmluZ1NBWEZ1bmMKK3ZvaWQJd2FybmluZ1NBWEZ1bmMJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPjxwPkRpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGNhbGxiYWNrLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbEJ5dGVDb25zdW1lZCIgaWQ9InhtbEJ5dGVDb25zdW1lZCI+PC9hPkZ1bmN0aW9uOiB4bWxCeXRlQ29uc3VtZWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5sb25nCXhtbEJ5dGVDb25zdW1lZAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBjdXJyZW50IGluZGV4IG9mIHRoZSBwYXJzZXIgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGVudGl0eS4gVGhpcyBmdW5jdGlvbiBpcyBjb21wdXRlZCBpbiBieXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgc3RhcnRpbmcgYXQgemVybyBhbmQgZmluaXNoaW5nIGF0IHRoZSBzaXplIGluIGJ5dGUgb2YgdGhlIGZpbGUgaWYgcGFyc2luZyBhIGZpbGUuIFRoZSBmdW5jdGlvbiBpcyBvZiBjb25zdGFudCBjb3N0IGlmIHRoZSBpbnB1dCBpcyBVVEYtOCBidXQgY2FuIGJlIGNvc3RseSBpZiBydW4gb24gbm9uLVVURi04IGlucHV0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGV4IGluIGJ5dGVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZW50aXR5IG9yIC0xIGluIGNhc2UgdGhlIGluZGV4IGNvdWxkIG5vdCBiZSBjb21wdXRlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwUGFyc2VyIiBpZD0ieG1sQ2xlYW51cFBhcnNlciI+PC9hPkZ1bmN0aW9uOiB4bWxDbGVhbnVwUGFyc2VyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhbnVwUGFyc2VyCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gbmFtZSBpcyBzb21ld2hhdCBtaXNsZWFkaW5nLiBJdCBkb2VzIG5vdCBjbGVhbiB1cCBwYXJzZXIgc3RhdGUsIGl0IGNsZWFucyB1cCBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSBsaWJyYXJ5IGl0c2VsZi4gSXQgaXMgYSBjbGVhbnVwIGZ1bmN0aW9uIGZvciB0aGUgWE1MIGxpYnJhcnkuIEl0IHRyaWVzIHRvIHJlY2xhaW0gYWxsIHJlbGF0ZWQgZ2xvYmFsIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBsaWJyYXJ5IHByb2Nlc3NpbmcuIEl0IGRvZXNuJ3QgZGVhbGxvY2F0ZSBhbnkgZG9jdW1lbnQgcmVsYXRlZCBtZW1vcnkuIE9uZSBzaG91bGQgY2FsbCB4bWxDbGVhbnVwUGFyc2VyKCkgb25seSB3aGVuIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hlZCB1c2luZyB0aGUgbGlicmFyeSBhbmQgYWxsIFhNTC9IVE1MIGRvY3VtZW50cyBidWlsdCB3aXRoIGl0LiBTZWUgYWxzbyB4bWxJbml0UGFyc2VyKCkgd2hpY2ggaGFzIHRoZSBvcHBvc2l0ZSBmdW5jdGlvbiBvZiBwcmVwYXJpbmcgdGhlIGxpYnJhcnkgZm9yIG9wZXJhdGlvbnMuIFdBUk5JTkc6IGlmIHlvdXIgYXBwbGljYXRpb24gaXMgbXVsdGl0aHJlYWRlZCBvciBoYXMgcGx1Z2luIHN1cHBvcnQgY2FsbGluZyB0aGlzIG1heSBjcmFzaCB0aGUgYXBwbGljYXRpb24gaWYgYW5vdGhlciB0aHJlYWQgb3IgYSBwbHVnaW4gaXMgc3RpbGwgdXNpbmcgbGlieG1sMi4gSXQncyBzb21ldGltZXMgdmVyeSBoYXJkIHRvIGd1ZXNzIGlmIGxpYnhtbDIgaXMgaW4gdXNlIGluIHRoZSBhcHBsaWNhdGlvbiwgc29tZSBsaWJyYXJpZXMgb3IgcGx1Z2lucyBtYXkgdXNlIGl0IHdpdGhvdXQgbm90aWNlLiBJbiBjYXNlIG9mIGRvdWJ0IGFic3RhaW4gZnJvbSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gb3IgZG8gaXQganVzdCBiZWZvcmUgY2FsbGluZyBleGl0KCkgdG8gYXZvaWQgbGVhayByZXBvcnRzIGZyb20gdmFsZ3JpbmQgITwvcD4KKzxoMz48YSBuYW1lPSJ4bWxDbGVhck5vZGVJbmZvU2VxIiBpZD0ieG1sQ2xlYXJOb2RlSW5mb1NlcSI+PC9hPkZ1bmN0aW9uOiB4bWxDbGVhck5vZGVJbmZvU2VxPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhck5vZGVJbmZvU2VxCQkoPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvU2VxUHRyIj54bWxQYXJzZXJOb2RlSW5mb1NlcVB0cjwvYT4gc2VxKTxiciAvPgorPC9wcmU+PHA+LS0gQ2xlYXIgKHJlbGVhc2UgbWVtb3J5IGFuZCByZWluaXRpYWxpemUpIG5vZGUgaW5mbyBzZXF1ZW5jZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENsZWFyUGFyc2VyQ3R4dCIgaWQ9InhtbENsZWFyUGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxDbGVhclBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENsZWFyUGFyc2VyQ3R4dAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkNsZWFyIChyZWxlYXNlIG93bmVkIHJlc291cmNlcykgYW5kIHJlaW5pdGlhbGl6ZSBhIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCIgaWQ9InhtbENyZWF0ZURvY1BhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dAkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlcyBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlSU9QYXJzZXJDdHh0IiBpZD0ieG1sQ3JlYXRlSU9QYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbENyZWF0ZUlPUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlSU9QYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciB1c2luZyB0aGUgWE1MIHBhcnNlciB3aXRoIGFuIGV4aXN0aW5nIEkvTyBzdHJlYW08L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgU0FYIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb3JlYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyByZWFkIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiIGlkPSJ4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyIC8+CQkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIHVzaW5nIHRoZSBYTUwgcGFyc2VyIGluIHB1c2ggbW9kZS4gSWYgQGJ1ZmZlciBhbmQgQHNpemUgYXJlIG5vbi1OVUxMLCB0aGUgZGF0YSBpcyB1c2VkIHRvIGRldGVjdCB0aGUgZW5jb2RpbmcuIFRoZSByZW1haW5pbmcgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IHdpbGwgYmUgcGFyc2VkIHNvIHRoZXkgZG9uJ3QgbmVlZCB0byBiZSBmZWQgaW4gYWdhaW4gdGhyb3VnaCB4bWxQYXJzZUNodW5rLiBUbyBhbGxvdyBjb250ZW50IGVuY29kaW5nIGRldGVjdGlvbiwgQHNpemUgc2hvdWxkIGJlICZndDs9IDQgVGhlIHZhbHVlIG9mIEBmaWxlbmFtZSBpcyB1c2VkIGZvciBmZXRjaGluZyBleHRlcm5hbCBlbnRpdGllcyBhbmQgZXJyb3Ivd2FybmluZyByZXBvcnRzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNodW5rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVhZERvYyIgaWQ9InhtbEN0eHRSZWFkRG9jIj48L2E+RnVuY3Rpb246IHhtbEN0eHRSZWFkRG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sQ3R4dFJlYWREb2MJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEN0eHRSZWFkRmQiIGlkPSJ4bWxDdHh0UmVhZEZkIj48L2E+RnVuY3Rpb246IHhtbEN0eHRSZWFkRmQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxDdHh0UmVhZEZkCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgZmQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQgTk9URSB0aGF0IHRoZSBmaWxlIGRlc2NyaXB0b3Igd2lsbCBub3QgYmUgY2xvc2VkIHdoZW4gdGhlIHJlYWRlciBpcyBjbG9zZWQgb3IgcmVzZXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3BlbiBmaWxlIGRlc2NyaXB0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEN0eHRSZWFkRmlsZSIgaWQ9InhtbEN0eHRSZWFkRmlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxDdHh0UmVhZEZpbGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxDdHh0UmVhZEZpbGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0gb3IgdGhlIG5ldHdvcmsuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBvciBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3R4dFJlYWRJTyIgaWQ9InhtbEN0eHRSZWFkSU8iPjwvYT5GdW5jdGlvbjogeG1sQ3R4dFJlYWRJTzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbEN0eHRSZWFkSU8JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyIC8+CQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlIGFuZCBidWlsZCBhIHRyZWUuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9yZWFkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gcmVhZCBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEN0eHRSZWFkTWVtb3J5IiBpZD0ieG1sQ3R4dFJlYWRNZW1vcnkiPjwvYT5GdW5jdGlvbjogeG1sQ3R4dFJlYWRNZW1vcnk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxDdHh0UmVhZE1lbW9yeQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3R4dFJlc2V0IiBpZD0ieG1sQ3R4dFJlc2V0Ij48L2E+RnVuY3Rpb246IHhtbEN0eHRSZXNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ3R4dFJlc2V0CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPlJlc2V0IGEgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDdHh0UmVzZXRQdXNoIiBpZD0ieG1sQ3R4dFJlc2V0UHVzaCI+PC9hPkZ1bmN0aW9uOiB4bWxDdHh0UmVzZXRQdXNoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEN0eHRSZXNldFB1c2gJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBjaHVuaywgPGJyIC8+CQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxiciAvPgorPC9wcmU+PHA+UmVzZXQgYSBwdXNoIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaHVuazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGNoYXJzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5udW1iZXIgb2YgY2hhcnMgaW4gdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3B0aW9uYWwgZmlsZSBuYW1lIG9yIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIDEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEN0eHRVc2VPcHRpb25zIiBpZD0ieG1sQ3R4dFVzZU9wdGlvbnMiPjwvYT5GdW5jdGlvbjogeG1sQ3R4dFVzZU9wdGlvbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ3R4dFVzZU9wdGlvbnMJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+QXBwbGllcyB0aGUgb3B0aW9ucyB0byB0aGUgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIHRoZSBzZXQgb2YgdW5rbm93biBvciB1bmltcGxlbWVudGVkIG9wdGlvbnMgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHRlcm5hbEVudGl0eUxvYWRlciIgaWQ9InhtbEV4dGVybmFsRW50aXR5TG9hZGVyIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxFeHRlcm5hbEVudGl0eUxvYWRlcgorPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXhtbEV4dGVybmFsRW50aXR5TG9hZGVyCShjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIElELCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjb250ZXh0KQorPC9wcmU+PHA+RXh0ZXJuYWwgZW50aXR5IGxvYWRlcnMgdHlwZXMuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFN5c3RlbSBJRCBvZiB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIFB1YmxpYyBJRCBvZiB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IGlucHV0IHBhcnNlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbEZyZWVQYXJzZXJDdHh0IiBpZD0ieG1sRnJlZVBhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sRnJlZVBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVQYXJzZXJDdHh0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+RnJlZSBhbGwgdGhlIG1lbW9yeSB1c2VkIGJ5IGEgcGFyc2VyIGNvbnRleHQuIEhvd2V2ZXIgdGhlIHBhcnNlZCBkb2N1bWVudCBpbiBjdHh0LSZndDtteURvYyBpcyBub3QgZnJlZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiIGlkPSJ4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+CXhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBkZWZhdWx0IGV4dGVybmFsIGVudGl0eSByZXNvbHZlciBmdW5jdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2E+IGZ1bmN0aW9uIHBvaW50ZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXRGZWF0dXJlIiBpZD0ieG1sR2V0RmVhdHVyZSI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRGZWF0dXJlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEdldEZlYXR1cmUJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbmFtZSwgPGJyIC8+CQkJCQkgdm9pZCAqIHJlc3VsdCk8YnIgLz4KKzwvcHJlPjxwPlJlYWQgdGhlIGN1cnJlbnQgdmFsdWUgb2Ygb25lIGZlYXR1cmUgb2YgdGhpcyBwYXJzZXIgaW5zdGFuY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwvSFRNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZlYXR1cmUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVzdWx0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5sb2NhdGlvbiB0byBzdG9yZSB0aGUgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9yIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldEZlYXR1cmVzTGlzdCIgaWQ9InhtbEdldEZlYXR1cmVzTGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRGZWF0dXJlc0xpc3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2V0RmVhdHVyZXNMaXN0CQkoaW50ICogbGVuLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICoqIHJlc3VsdCk8YnIgLz4KKzwvcHJlPjxwPkNvcHkgYXQgbW9zdCAqQGxlbiBmZWF0dXJlIG5hbWVzIGludG8gdGhlIEByZXN1bHQgYXJyYXk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIGZlYXR1cmVzIG5hbWUgYXJyYXkgKGlucHV0L291dHB1dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlc3VsdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXJyYXkgb2Ygc3RyaW5nIHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBmZWF0dXJlcyBuYW1lLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvciBlcnJvciwgb3IgdGhlIHRvdGFsIG51bWJlciBvZiBmZWF0dXJlcywgbGVuIGlzIHVwZGF0ZWQgd2l0aCB0aGUgbnVtYmVyIG9mIHN0cmluZ3MgY29waWVkLCBzdHJpbmdzIG11c3Qgbm90IGJlIGRlYWxsb2NhdGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFzRmVhdHVyZSIgaWQ9InhtbEhhc0ZlYXR1cmUiPjwvYT5GdW5jdGlvbjogeG1sSGFzRmVhdHVyZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxIYXNGZWF0dXJlCQkJKDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxGZWF0dXJlIj54bWxGZWF0dXJlPC9hPiBmZWF0dXJlKTxiciAvPgorPC9wcmU+PHA+RXhhbWluZXMgaWYgdGhlIGxpYnJhcnkgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBhIGdpdmVuIGZlYXR1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmVhdHVyZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZlYXR1cmUgdG8gYmUgZXhhbWluZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9uLXplcm8gdmFsdWUgaWYgdGhlIGZlYXR1cmUgZXhpc3QsIG90aGVyd2lzZSB6ZXJvLiBSZXR1cm5zIHplcm8gKDApIGlmIHRoZSBmZWF0dXJlIGRvZXMgbm90IGV4aXN0IG9yIGFuIHVua25vd24gdW5rbm93biBmZWF0dXJlIGlzIHJlcXVlc3RlZCwgbm9uLXplcm8gb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElPUGFyc2VEVEQiIGlkPSJ4bWxJT1BhcnNlRFREIj48L2E+RnVuY3Rpb246IHhtbElPUGFyc2VEVEQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgl4bWxJT1BhcnNlRFRECQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkxvYWQgYW5kIHBhcnNlIGEgRFREPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2sgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIElucHV0IEJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIEBpbnB1dCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBmdW5jdGlvbiBpbiBhbnkgY2FzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJbml0Tm9kZUluZm9TZXEiIGlkPSJ4bWxJbml0Tm9kZUluZm9TZXEiPjwvYT5GdW5jdGlvbjogeG1sSW5pdE5vZGVJbmZvU2VxPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxJbml0Tm9kZUluZm9TZXEJCSg8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIiPnhtbFBhcnNlck5vZGVJbmZvU2VxUHRyPC9hPiBzZXEpPGJyIC8+Cis8L3ByZT48cD4tLSBJbml0aWFsaXplIChzZXQgdG8gaW5pdGlhbCBzdGF0ZSkgbm9kZSBpbmZvIHNlcXVlbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2VxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSW5pdFBhcnNlciIgaWQ9InhtbEluaXRQYXJzZXIiPjwvYT5GdW5jdGlvbjogeG1sSW5pdFBhcnNlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSW5pdFBhcnNlcgkJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+SW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gZm9yIHRoZSBYTUwgcGFyc2VyLiBUaGlzIGlzIG5vdCByZWVudHJhbnQuIENhbGwgb25jZSBiZWZvcmUgcHJvY2Vzc2luZyBpbiBjYXNlIG9mIHVzZSBpbiBtdWx0aXRocmVhZGVkIHByb2dyYW1zLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxJbml0UGFyc2VyQ3R4dCIgaWQ9InhtbEluaXRQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbEluaXRQYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEluaXRQYXJzZXJDdHh0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSBhIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEtlZXBCbGFua3NEZWZhdWx0IiBpZD0ieG1sS2VlcEJsYW5rc0RlZmF1bHQiPjwvYT5GdW5jdGlvbjogeG1sS2VlcEJsYW5rc0RlZmF1bHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sS2VlcEJsYW5rc0RlZmF1bHQJCShpbnQgdmFsKTxiciAvPgorPC9wcmU+PHA+U2V0IGFuZCByZXR1cm4gdGhlIHByZXZpb3VzIHZhbHVlIGZvciBkZWZhdWx0IGJsYW5rcyB0ZXh0IG5vZGVzIHN1cHBvcnQuIFRoZSAxLnggdmVyc2lvbiBvZiB0aGUgcGFyc2VyIHVzZWQgYW4gaGV1cmlzdGljIHRvIHRyeSB0byBkZXRlY3QgaWdub3JhYmxlIHdoaXRlIHNwYWNlcy4gQXMgYSByZXN1bHQgdGhlIFNBWCBjYWxsYmFjayB3YXMgZ2VuZXJhdGluZyB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSgpIGNhbGxiYWNrcyBpbnN0ZWFkIG9mIGNoYXJhY3RlcnMoKSBvbmUsIGFuZCB3aGVuIHVzaW5nIHRoZSBET00gb3V0cHV0IHRleHQgbm9kZXMgY29udGFpbmluZyB0aG9zZSBibGFua3Mgd2VyZSBub3QgZ2VuZXJhdGVkLiBUaGUgMi54IGFuZCBsYXRlciB2ZXJzaW9uIHdpbGwgc3dpdGNoIHRvIHRoZSBYTUwgc3RhbmRhcmQgd2F5IGFuZCBpZ25vcmFibGVXaGl0ZXNwYWNlKCkgYXJlIG9ubHkgZ2VuZXJhdGVkIHdoZW4gcnVubmluZyB0aGUgcGFyc2VyIGluIHZhbGlkYXRpbmcgbW9kZSBhbmQgd2hlbiB0aGUgY3VycmVudCBlbGVtZW50IGRvZXNuJ3QgYWxsb3cgQ0RBVEEgb3IgbWl4ZWQgY29udGVudC4gVGhpcyBmdW5jdGlvbiBpcyBwcm92aWRlZCBhcyBhIHdheSB0byBmb3JjZSB0aGUgc3RhbmRhcmQgYmVoYXZpb3Igb24gMS5YIGxpYnMgYW5kIHRvIHN3aXRjaCBiYWNrIHRvIHRoZSBvbGQgbW9kZSBmb3IgY29tcGF0aWJpbGl0eSB3aGVuIHJ1bm5pbmcgMS5YIGNsaWVudCBjb2RlIG9uIDIuWCAuIFVwZ3JhZGUgb2YgMS5YIGNvZGUgc2hvdWxkIGJlIGRvbmUgYnkgdXNpbmcgeG1sSXNCbGFua05vZGUoKSBjb21tb2RpdHkgZnVuY3Rpb24gdG8gZGV0ZWN0IHRoZSAiZW1wdHkiIG5vZGVzIGdlbmVyYXRlZC4gVGhpcyB2YWx1ZSBhbHNvIGFmZmVjdCBhdXRvZ2VuZXJhdGlvbiBvZiBpbmRlbnRhdGlvbiB3aGVuIHNhdmluZyBjb2RlIGlmIGJsYW5rcyBzZWN0aW9ucyBhcmUga2VwdCwgaW5kZW50YXRpb24gaXMgbm90IGdlbmVyYXRlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmludCAwIG9yIDE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBzdWJzdGl0dXRpb24sIDEgZm9yIHN1YnN0aXR1dGlvbi48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMaW5lTnVtYmVyc0RlZmF1bHQiIGlkPSJ4bWxMaW5lTnVtYmVyc0RlZmF1bHQiPjwvYT5GdW5jdGlvbjogeG1sTGluZU51bWJlcnNEZWZhdWx0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbExpbmVOdW1iZXJzRGVmYXVsdAkJKGludCB2YWwpPGJyIC8+Cis8L3ByZT48cD5TZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGVuYWJsaW5nIGxpbmUgbnVtYmVycyBpbiBlbGVtZW50cyBjb250ZW50cy4gVGhpcyBtYXkgYnJlYWsgb24gb2xkIGFwcGxpY2F0aW9uIGFuZCBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnQgMCBvciAxPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGFzdCB2YWx1ZSBmb3IgMCBmb3Igbm8gc3Vic3RpdHV0aW9uLCAxIGZvciBzdWJzdGl0dXRpb24uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTG9hZEV4dGVybmFsRW50aXR5IiBpZD0ieG1sTG9hZEV4dGVybmFsRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbExvYWRFeHRlcm5hbEVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxMb2FkRXh0ZXJuYWxFbnRpdHkJKGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogSUQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5Mb2FkIGFuIGV4dGVybmFsIGVudGl0eSwgbm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBmb3IgdW5wYXJzZWQgZW50aXRpZXMgbWF5IGdlbmVyYXRlIHByb2JsZW1zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgUHVibGljIElEIGZvciB0aGUgZW50aXR5IHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBlbnRpdHkgaXMgY2FsbGVkIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0lPSW5wdXRTdHJlYW0iIGlkPSJ4bWxOZXdJT0lucHV0U3RyZWFtIj48L2E+RnVuY3Rpb246IHhtbE5ld0lPSW5wdXRTdHJlYW08L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JeG1sTmV3SU9JbnB1dFN0cmVhbQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGlucHV0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gc3RydWN0dXJlIGVuY2Fwc3VsYXRpbmcgdGhlIEBpbnB1dCBpbnRvIGEgc3RyZWFtIHN1aXRhYmxlIGZvciB0aGUgcGFyc2VyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBJbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBpbnB1dCBzdHJlYW0gb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld1BhcnNlckN0eHQiIGlkPSJ4bWxOZXdQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbE5ld1BhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CXhtbE5ld1BhcnNlckN0eHQJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5BbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSBhIG5ldyBwYXJzZXIgY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5IiBpZD0ieG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJIGludCBkZXB0aCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyaW5nLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYSB3ZWxsLWJhbGFuY2VkIGNodW5rIG9mIGFuIFhNTCBkb2N1bWVudCBjYWxsZWQgYnkgdGhlIHBhcnNlciBUaGUgYWxsb3dlZCBzZXF1ZW5jZSBmb3IgdGhlIFdlbGwgQmFsYW5jZWQgQ2h1bmsgaXMgdGhlIG9uZSBkZWZpbmVkIGJ5IHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOiBbNDNdIGNvbnRlbnQgOjo9IChlbGVtZW50IHwgQ2hhckRhdGEgfCBSZWZlcmVuY2UgfCBDRFNlY3QgfCBQSSB8IENvbW1lbnQpKjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHRoZSBjaHVuayBwZXJ0YWlucyB0bzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzIChwb3NzaWJseSBOVUxMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVzZWQgZm9yIGxvb3AgZGV0ZWN0aW9uLCB1c2UgMDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGluIFVURjggb3IgSVNPLUxhdGluICh6ZXJvIHRlcm1pbmF0ZWQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBjaHVuayBpcyB3ZWxsIGJhbGFuY2VkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQgdGhlIHBhcnNlciBlcnJvciBjb2RlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiIGlkPSJ4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJCSB2b2lkICogdXNlcl9kYXRhLCA8YnIgLz4JCQkJCQkgaW50IGRlcHRoLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyaW5nLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqIGxzdCwgPGJyIC8+CQkJCQkJIGludCByZWNvdmVyKTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYSB3ZWxsLWJhbGFuY2VkIGNodW5rIG9mIGFuIFhNTCBkb2N1bWVudCBjYWxsZWQgYnkgdGhlIHBhcnNlciBUaGUgYWxsb3dlZCBzZXF1ZW5jZSBmb3IgdGhlIFdlbGwgQmFsYW5jZWQgQ2h1bmsgaXMgdGhlIG9uZSBkZWZpbmVkIGJ5IHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOiBbNDNdIGNvbnRlbnQgOjo9IChlbGVtZW50IHwgQ2hhckRhdGEgfCBSZWZlcmVuY2UgfCBDRFNlY3QgfCBQSSB8IENvbW1lbnQpKjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHRoZSBjaHVuayBwZXJ0YWlucyB0bzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzIChwb3NzaWJseSBOVUxMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVwdGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVzZWQgZm9yIGxvb3AgZGV0ZWN0aW9uLCB1c2UgMDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGluIFVURjggb3IgSVNPLUxhdGluICh6ZXJvIHRlcm1pbmF0ZWQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWNvdmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5yZXR1cm4gbm9kZXMgZXZlbiBpZiB0aGUgZGF0YSBpcyBicm9rZW4gKHVzZSAwKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgY2h1bmsgaXMgd2VsbCBiYWxhbmNlZCwgLTEgaW4gY2FzZSBvZiBhcmdzIHByb2JsZW0gYW5kIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2UgSW4gY2FzZSByZWNvdmVyIGlzIHNldCB0byAxLCB0aGUgbm9kZWxpc3Qgd2lsbCBub3QgYmUgZW1wdHkgZXZlbiBpZiB0aGUgcGFyc2VkIGNodW5rIGlzIG5vdCB3ZWxsIGJhbGFuY2VkLCBhc3N1bWluZyB0aGUgcGFyc2luZyBzdWNjZWVkZWQgdG8gc29tZSBleHRlbnQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDaHVuayIgaWQ9InhtbFBhcnNlQ2h1bmsiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VDaHVuazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZUNodW5rCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGNodW5rLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgaW50IHRlcm1pbmF0ZSk8YnIgLz4KKzwvcHJlPjxwPlBhcnNlIGEgQ2h1bmsgb2YgbWVtb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaHVuazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgaW4gYnl0ZSBvZiB0aGUgY2h1bms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRlcm1pbmF0ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGFzdCBjaHVuayBpbmRpY2F0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnplcm8gaWYgbm8gZXJyb3IsIHRoZSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxQYXJzZXJFcnJvcnMiPnhtbFBhcnNlckVycm9yczwvYT4gb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5IiBpZD0ieG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYW4gZXh0ZXJuYWwgZ2VuZXJhbCBlbnRpdHkgd2l0aGluIGFuIGV4aXN0aW5nIHBhcnNpbmcgY29udGV4dCBBbiBleHRlcm5hbCBnZW5lcmFsIHBhcnNlZCBlbnRpdHkgaXMgd2VsbC1mb3JtZWQgaWYgaXQgbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkIGV4dFBhcnNlZEVudC4gWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhpc3RpbmcgcGFyc2luZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+SUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTeXN0ZW0gSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bHN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgZW50aXR5IGlzIHdlbGwgZm9ybWVkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQgdGhlIHBhcnNlciBlcnJvciBjb2RlIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRFREIiBpZD0ieG1sUGFyc2VEVEQiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VEVEQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgl4bWxQYXJzZURURAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxiciAvPgorPC9wcmU+PHA+TG9hZCBhbmQgcGFyc2UgYW4gZXh0ZXJuYWwgc3Vic2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTkFNRSogY29udGFpbmluZyB0aGUgRXh0ZXJuYWwgSUQgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTkFNRSogY29udGFpbmluZyB0aGUgVVJMIHRvIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRG9jIiBpZD0ieG1sUGFyc2VEb2MiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VEb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxQYXJzZURvYwkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1cik8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRG9jdW1lbnQiIGlkPSJ4bWxQYXJzZURvY3VtZW50Ij48L2E+RnVuY3Rpb246IHhtbFBhcnNlRG9jdW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VEb2N1bWVudAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBkb2N1bWVudCAoYW5kIGJ1aWxkIGEgdHJlZSBpZiB1c2luZyB0aGUgc3RhbmRhcmQgU0FYIGludGVyZmFjZSkuIFsxXSBkb2N1bWVudCA6Oj0gcHJvbG9nIGVsZW1lbnQgTWlzYyogWzIyXSBwcm9sb2cgOjo9IFhNTERlY2w/IE1pc2MqIChkb2N0eXBlZGVjbCBNaXNjKik/PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wLCAtMSBpbiBjYXNlIG9mIGVycm9yLiB0aGUgcGFyc2VyIGNvbnRleHQgaXMgYXVnbWVudGVkIGFzIGEgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRW50aXR5IiBpZD0ieG1sUGFyc2VFbnRpdHkiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VFbnRpdHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxQYXJzZUVudGl0eQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBleHRlcm5hbCBlbnRpdHkgb3V0IG9mIGNvbnRleHQgYW5kIGJ1aWxkIGEgdHJlZS4gWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50IFRoaXMgY29ycmVzcG9uZCB0byBhICJXZWxsIEJhbGFuY2VkIiBjaHVuazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRXh0UGFyc2VkRW50IiBpZD0ieG1sUGFyc2VFeHRQYXJzZWRFbnQiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VFeHRQYXJzZWRFbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VFeHRQYXJzZWRFbnQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhIGdlbmVyYWwgcGFyc2VkIGVudGl0eSBBbiBleHRlcm5hbCBnZW5lcmFsIHBhcnNlZCBlbnRpdHkgaXMgd2VsbC1mb3JtZWQgaWYgaXQgbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkIGV4dFBhcnNlZEVudC4gWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wLCAtMSBpbiBjYXNlIG9mIGVycm9yLiB0aGUgcGFyc2VyIGNvbnRleHQgaXMgYXVnbWVudGVkIGFzIGEgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRXh0ZXJuYWxFbnRpdHkiIGlkPSJ4bWxQYXJzZUV4dGVybmFsRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VFeHRlcm5hbEVudGl0eQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJIGludCBkZXB0aCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBJRCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqIGxzdCk8YnIgLz4KKzwvcHJlPjxwPlBhcnNlIGFuIGV4dGVybmFsIGdlbmVyYWwgZW50aXR5IEFuIGV4dGVybmFsIGdlbmVyYWwgcGFyc2VkIGVudGl0eSBpcyB3ZWxsLWZvcm1lZCBpZiBpdCBtYXRjaGVzIHRoZSBwcm9kdWN0aW9uIGxhYmVsZWQgZXh0UGFyc2VkRW50LiBbNzhdIGV4dFBhcnNlZEVudCA6Oj0gVGV4dERlY2w/IGNvbnRlbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCB0aGUgY2h1bmsgcGVydGFpbnMgdG88L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyIGJsb2MgKHBvc3NpYmx5IE5VTEwpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyX2RhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcyAocG9zc2libHkgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlcHRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5Vc2VkIGZvciBsb29wIGRldGVjdGlvbiwgdXNlIDA8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSTCBmb3IgdGhlIGVudGl0eSB0byBsb2FkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBlbnRpdHkgaXMgd2VsbCBmb3JtZWQsIC0xIGluIGNhc2Ugb2YgYXJncyBwcm9ibGVtIGFuZCB0aGUgcGFyc2VyIGVycm9yIGNvZGUgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VGaWxlIiBpZD0ieG1sUGFyc2VGaWxlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFBhcnNlRmlsZQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIGlmIHRoZSBmaWxlIHdhcyB3ZWxsZm9ybWVkLCBOVUxMIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUluTm9kZUNvbnRleHQiIGlkPSJ4bWxQYXJzZUluTm9kZUNvbnRleHQiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VJbk5vZGVDb250ZXh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sUGFyc2VyRXJyb3JzIj54bWxQYXJzZXJFcnJvcnM8L2E+CXhtbFBhcnNlSW5Ob2RlQ29udGV4dAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZGF0YSwgPGJyIC8+CQkJCQkgaW50IGRhdGFsZW4sIDxiciAvPgkJCQkJIGludCBvcHRpb25zLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICogbHN0KTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYSB3ZWxsLWJhbGFuY2VkIGNodW5rIG9mIGFuIFhNTCBkb2N1bWVudCB3aXRoaW4gdGhlIGNvbnRleHQgKERURCwgbmFtZXNwYWNlcywgZXRjIC4uLikgb2YgdGhlIGdpdmVuIG5vZGUuIFRoZSBhbGxvd2VkIHNlcXVlbmNlIGZvciB0aGUgZGF0YSBpcyBhIFdlbGwgQmFsYW5jZWQgQ2h1bmsgZGVmaW5lZCBieSB0aGUgY29udGVudCBwcm9kdWN0aW9uIGluIHRoZSBYTUwgZ3JhbW1hcjogWzQzXSBjb250ZW50IDo6PSAoZWxlbWVudCB8IENoYXJEYXRhIHwgUmVmZXJlbmNlIHwgQ0RTZWN0IHwgUEkgfCBDb21tZW50KSo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhbGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGxlbmd0aCBpbiBieXRlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCNYTUxfRVJSX09LIj5YTUxfRVJSX09LPC9hPiBpZiB0aGUgY2h1bmsgaXMgd2VsbCBiYWxhbmNlZCwgYW5kIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZU1lbW9yeSIgaWQ9InhtbFBhcnNlTWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbFBhcnNlTWVtb3J5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sUGFyc2VNZW1vcnkJCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgYmxvY2sgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlckFkZE5vZGVJbmZvIiBpZD0ieG1sUGFyc2VyQWRkTm9kZUluZm8iPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VyQWRkTm9kZUluZm88L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlckFkZE5vZGVJbmZvCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9QdHIiPnhtbFBhcnNlck5vZGVJbmZvUHRyPC9hPiBpbmZvKTxiciAvPgorPC9wcmU+PHA+SW5zZXJ0IG5vZGUgaW5mbyByZWNvcmQgaW50byB0aGUgc29ydGVkIHNlcXVlbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbmZvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyRmluZE5vZGVJbmZvIiBpZD0ieG1sUGFyc2VyRmluZE5vZGVJbmZvIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlckZpbmROb2RlSW5mbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mbyI+eG1sUGFyc2VyTm9kZUluZm88L2E+ICoJeG1sUGFyc2VyRmluZE5vZGVJbmZvCShjb25zdCA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eCwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5GaW5kIHRoZSBwYXJzZXIgbm9kZSBpbmZvIHN0cnVjdCBmb3IgYSBnaXZlbiBub2RlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBub2RlIHdpdGhpbiB0aGUgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck5vZGVJbmZvIj54bWxQYXJzZXJOb2RlSW5mbzwvYT4gYmxvY2sgcG9pbnRlciBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgiIGlkPSJ4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnVuc2lnbmVkIGxvbmcJeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciI+eG1sUGFyc2VyTm9kZUluZm9TZXFQdHI8L2E+IHNlcSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCI+eG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXg8L2E+IDogRmluZCB0aGUgaW5kZXggdGhhdCB0aGUgaW5mbyByZWNvcmQgZm9yIHRoZSBnaXZlbiBub2RlIGlzIG9yIHNob3VsZCBiZSBhdCBpbiBhIHNvcnRlZCBzZXF1ZW5jZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIG5vZGUgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBsb25nIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSByZWNvcmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiIGlkPSJ4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUKK3ZvaWQJeG1sUGFyc2VySW5wdXREZWFsbG9jYXRlCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpCis8L3ByZT48cD5DYWxsYmFjayBmb3IgZnJlZWluZyBzb21lIHBhcnNlciBpbnB1dCBhbGxvY2F0aW9ucy48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGRlYWxsb2NhdGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0R3JvdyIgaWQ9InhtbFBhcnNlcklucHV0R3JvdyI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJJbnB1dEdyb3c8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VySW5wdXRHcm93CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGluLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBpbmNyZWFzZSB0aGUgaW5wdXQgZm9yIHRoZSBwYXJzZXIuIEl0IHRyaWVzIHRvIHByZXNlcnZlIHBvaW50ZXJzIHRvIHRoZSBpbnB1dCBidWZmZXIsIGFuZCBrZWVwIGFscmVhZHkgcmVhZCBkYXRhPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW5kaWNhdGl2ZSBzaXplIGZvciB0aGUgbG9va2FoZWFkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHhtbENoYXJzIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaW5kaWNhdGUgdGhlIGVuZCBvZiB0aGlzIGVudGl0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0UmVhZCIgaWQ9InhtbFBhcnNlcklucHV0UmVhZCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJJbnB1dFJlYWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VySW5wdXRSZWFkCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGluLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiByZWZyZXNoIHRoZSBpbnB1dCBmb3IgdGhlIHBhcnNlci4gSXQgZG9lc24ndCB0cnkgdG8gcHJlc2VydmUgcG9pbnRlcnMgdG8gdGhlIGlucHV0IGJ1ZmZlciwgYW5kIGRpc2NhcmQgYWxyZWFkeSByZWFkIGRhdGE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbmRpY2F0aXZlIHNpemUgZm9yIHRoZSBsb29rYWhlYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgeG1sQ2hhcnMgcmVhZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpbmRpY2F0ZSB0aGUgZW5kIG9mIHRoaXMgZW50aXR5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0IiBpZD0ieG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0Ij48L2E+RnVuY3Rpb246IHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQJKGludCB2YWwpPGJyIC8+Cis8L3ByZT48cD5TZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGVuYWJsaW5nIHBlZGFudGljIHdhcm5pbmdzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW50IDAgb3IgMTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3QgdmFsdWUgZm9yIDAgZm9yIG5vIHN1YnN0aXR1dGlvbiwgMSBmb3Igc3Vic3RpdHV0aW9uLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlYWREb2MiIGlkPSJ4bWxSZWFkRG9jIj48L2E+RnVuY3Rpb246IHhtbFJlYWREb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxSZWFkRG9jCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhZEZkIiBpZD0ieG1sUmVhZEZkIj48L2E+RnVuY3Rpb246IHhtbFJlYWRGZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFJlYWRGZAkJKGludCBmZCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIGFuZCBidWlsZCBhIHRyZWUuIE5PVEUgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwgbm90IGJlIGNsb3NlZCB3aGVuIHRoZSByZWFkZXIgaXMgY2xvc2VkIG9yIHJlc2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcGVuIGZpbGUgZGVzY3JpcHRvcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhZEZpbGUiIGlkPSJ4bWxSZWFkRmlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxSZWFkRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFJlYWRGaWxlCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaWxlIG9yIFVSTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWFkSU8iIGlkPSJ4bWxSZWFkSU8iPjwvYT5GdW5jdGlvbjogeG1sUmVhZElPPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sUmVhZElPCQkoPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIgLz4JCQkJCSB2b2lkICogaW9jdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb3JlYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyByZWFkIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhZE1lbW9yeSIgaWQ9InhtbFJlYWRNZW1vcnkiPjwvYT5GdW5jdGlvbjogeG1sUmVhZE1lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFJlYWRNZW1vcnkJCShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVjb3ZlckRvYyIgaWQ9InhtbFJlY292ZXJEb2MiPjwvYT5GdW5jdGlvbjogeG1sUmVjb3ZlckRvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFJlY292ZXJEb2MJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuIEluIHRoZSBjYXNlIHRoZSBkb2N1bWVudCBpcyBub3QgV2VsbCBGb3JtZWQsIGEgYXR0ZW1wdCB0byBidWlsZCBhIHRyZWUgaXMgdHJpZWQgYW55d2F5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWNvdmVyRmlsZSIgaWQ9InhtbFJlY292ZXJGaWxlIj48L2E+RnVuY3Rpb246IHhtbFJlY292ZXJGaWxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sUmVjb3ZlckZpbGUJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBJbiB0aGUgY2FzZSB0aGUgZG9jdW1lbnQgaXMgbm90IFdlbGwgRm9ybWVkLCBpdCBhdHRlbXB0cyB0byBidWlsZCBhIHRyZWUgYW55d2F5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVjb3Zlck1lbW9yeSIgaWQ9InhtbFJlY292ZXJNZW1vcnkiPjwvYT5GdW5jdGlvbjogeG1sUmVjb3Zlck1lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFJlY292ZXJNZW1vcnkJKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBzaXplKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgYnVpbGQgYSB0cmVlLiBJbiB0aGUgY2FzZSB0aGUgZG9jdW1lbnQgaXMgbm90IFdlbGwgRm9ybWVkLCBhbiBhdHRlbXB0IHRvIGJ1aWxkIGEgdHJlZSBpcyB0cmllZCBhbnl3YXk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVhQYXJzZURURCIgaWQ9InhtbFNBWFBhcnNlRFREIj48L2E+RnVuY3Rpb246IHhtbFNBWFBhcnNlRFREPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JeG1sU0FYUGFyc2VEVEQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyIC8+Cis8L3ByZT48cD5Mb2FkIGFuZCBwYXJzZSBhbiBleHRlcm5hbCBzdWJzZXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTkFNRSogY29udGFpbmluZyB0aGUgRXh0ZXJuYWwgSUQgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+U3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTkFNRSogY29udGFpbmluZyB0aGUgVVJMIHRvIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWFBhcnNlRG9jIiBpZD0ieG1sU0FYUGFyc2VEb2MiPjwvYT5GdW5jdGlvbjogeG1sU0FYUGFyc2VEb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxTQVhQYXJzZURvYwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGludCByZWNvdmVyeSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVjb3Zlcnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndvcmsgaW4gcmVjb3ZlcnkgbW9kZSwgaS5lLiB0cmllcyB0byByZWFkIG5vIFdlbGwgRm9ybWVkIGRvY3VtZW50czwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYUGFyc2VFbnRpdHkiIGlkPSJ4bWxTQVhQYXJzZUVudGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxTQVhQYXJzZUVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CXhtbFNBWFBhcnNlRW50aXR5CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGV4dGVybmFsIGVudGl0eSBvdXQgb2YgY29udGV4dCBhbmQgYnVpbGQgYSB0cmVlLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy4gWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50IFRoaXMgY29ycmVzcG9uZCB0byBhICJXZWxsIEJhbGFuY2VkIiBjaHVuazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyIGJsb2NrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVhQYXJzZUZpbGUiIGlkPSJ4bWxTQVhQYXJzZUZpbGUiPjwvYT5GdW5jdGlvbjogeG1sU0FYUGFyc2VGaWxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sU0FYUGFyc2VGaWxlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgaW50IHJlY292ZXJ5KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlY292ZXJ5PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZCBkb2N1bWVudHM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhIiBpZD0ieG1sU0FYUGFyc2VGaWxlV2l0aERhdGEiPjwvYT5GdW5jdGlvbjogeG1sU0FYUGFyc2VGaWxlV2l0aERhdGE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgaW50IHJlY292ZXJ5LCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIEl0IHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4gSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLiBVc2VyIGRhdGEgKHZvaWQgKikgaXMgc3RvcmVkIHdpdGhpbiB0aGUgcGFyc2VyIGNvbnRleHQgaW4gdGhlIGNvbnRleHQncyBfcHJpdmF0ZSBtZW1iZXIsIHNvIGl0IGlzIGF2YWlsYWJsZSBuZWFybHkgZXZlcnl3aGVyZSBpbiBsaWJ4bWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTQVggaGFuZGxlciBibG9jazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVjb3Zlcnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndvcmsgaW4gcmVjb3ZlcnkgbW9kZSwgaS5lLiB0cmllcyB0byByZWFkIG5vIFdlbGwgRm9ybWVkIGRvY3VtZW50czwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHVzZXJkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTQVhQYXJzZU1lbW9yeSIgaWQ9InhtbFNBWFBhcnNlTWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbFNBWFBhcnNlTWVtb3J5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sU0FYUGFyc2VNZW1vcnkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gc2F4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkgaW50IHJlY292ZXJ5KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU0FYIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVjb3Zlcnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndvcmsgaW4gcmVjb3ZlcnkgbW9kZSwgaS5lLiB0cmllcyB0byByZWFkIG5vdCBXZWxsIEZvcm1lZCBkb2N1bWVudHM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEiIGlkPSJ4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIj48L2E+RnVuY3Rpb246IHhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkJIGludCByZWNvdmVyeSwgPGJyIC8+CQkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuIFVzZXIgZGF0YSAodm9pZCAqKSBpcyBzdG9yZWQgd2l0aGluIHRoZSBwYXJzZXIgY29udGV4dCBpbiB0aGUgY29udGV4dCdzIF9wcml2YXRlIG1lbWJlciwgc28gaXQgaXMgYXZhaWxhYmxlIG5lYXJseSBldmVyeXdoZXJlIGluIGxpYnhtbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFNBWCBoYW5kbGVyIGJsb2NrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlY292ZXJ5PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZCBkb2N1bWVudHM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYVXNlclBhcnNlRmlsZSIgaWQ9InhtbFNBWFVzZXJQYXJzZUZpbGUiPjwvYT5GdW5jdGlvbjogeG1sU0FYVXNlclBhcnNlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTQVhVc2VyUGFyc2VGaWxlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBjYWxsIHRoZSBnaXZlbiBTQVggaGFuZGxlciByb3V0aW5lcy4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3Mgb3IgYSBlcnJvciBudW1iZXIgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU0FYVXNlclBhcnNlTWVtb3J5IiBpZD0ieG1sU0FYVXNlclBhcnNlTWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbFNBWFVzZXJQYXJzZU1lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTQVhVc2VyUGFyc2VNZW1vcnkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+IHNheCwgPGJyIC8+CQkJCQkgdm9pZCAqIHVzZXJfZGF0YSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IHNpemUpPGJyIC8+Cis8L3ByZT48cD5BIGJldHRlciBTQVggcGFyc2luZyByb3V0aW5lLiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGJ1ZmZlciBhbmQgY2FsbCB0aGUgZ2l2ZW4gU0FYIGhhbmRsZXIgcm91dGluZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFNBWCBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyX2RhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbi1tZW1vcnkgWE1MIGRvY3VtZW50IGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBYTUwgZG9jdW1lbnQgaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIGEgZXJyb3IgbnVtYmVyIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyIiBpZD0ieG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIiPjwvYT5GdW5jdGlvbjogeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyCSg8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIiPnhtbEV4dGVybmFsRW50aXR5TG9hZGVyPC9hPiBmKTxiciAvPgorPC9wcmU+PHA+Q2hhbmdlcyB0aGUgZGVmYXVsdGV4dGVybmFsIGVudGl0eSByZXNvbHZlciBmdW5jdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTZXRGZWF0dXJlIiBpZD0ieG1sU2V0RmVhdHVyZSI+PC9hPkZ1bmN0aW9uOiB4bWxTZXRGZWF0dXJlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNldEZlYXR1cmUJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbmFtZSwgPGJyIC8+CQkJCQkgdm9pZCAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+Q2hhbmdlIHRoZSBjdXJyZW50IHZhbHVlIG9mIG9uZSBmZWF0dXJlIG9mIHRoaXMgcGFyc2VyIGluc3RhbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1ML0hUTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmZWF0dXJlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgbmV3IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9yIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNldHVwUGFyc2VyRm9yQnVmZmVyIiBpZD0ieG1sU2V0dXBQYXJzZXJGb3JCdWZmZXIiPjwvYT5GdW5jdGlvbjogeG1sU2V0dXBQYXJzZXJGb3JCdWZmZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNldHVwUGFyc2VyRm9yQnVmZmVyCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWZmZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlNldHVwIHRoZSBwYXJzZXIgY29udGV4dCB0byBwYXJzZSBhIG5ldyBidWZmZXI7IENsZWFycyBhbnkgcHJpb3IgY29udGVudHMgZnJvbSB0aGUgcGFyc2VyIGNvbnRleHQuIFRoZSBidWZmZXIgcGFyYW1ldGVyIG11c3Qgbm90IGJlIE5VTEwsIGJ1dCB0aGUgZmlsZW5hbWUgcGFyYW1ldGVyIGNhbiBiZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RvcFBhcnNlciIgaWQ9InhtbFN0b3BQYXJzZXIiPjwvYT5GdW5jdGlvbjogeG1sU3RvcFBhcnNlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU3RvcFBhcnNlcgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5CbG9ja3MgZnVydGhlciBwYXJzZXIgcHJvY2Vzc2luZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQiIGlkPSJ4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0Ij48L2E+RnVuY3Rpb246IHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdAkoaW50IHZhbCk8YnIgLz4KKzwvcHJlPjxwPlNldCBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgZGVmYXVsdCBlbnRpdHkgc3VwcG9ydC4gSW5pdGlhbGx5IHRoZSBwYXJzZXIgYWx3YXlzIGtlZXAgZW50aXR5IHJlZmVyZW5jZXMgaW5zdGVhZCBvZiBzdWJzdGl0dXRpbmcgZW50aXR5IHZhbHVlcyBpbiB0aGUgb3V0cHV0LiBUaGlzIGZ1bmN0aW9uIGhhcyB0byBiZSB1c2VkIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBwYXJzZXIgYmVoYXZpb3IgU0FYOjpzdWJzdGl0dXRlRW50aXRpZXMoKSBoYXMgdG8gYmUgdXNlZCBmb3IgY2hhbmdpbmcgdGhhdCBvbiBhIGZpbGUgYnkgZmlsZSBiYXNpcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmludCAwIG9yIDE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBzdWJzdGl0dXRpb24sIDEgZm9yIHN1YnN0aXR1dGlvbi48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGMxYTQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwKQEAgLTAsMCArMSwzMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBwYXJzZXJJbnRlcm5hbHMgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSBwYXJzZXJJbnRlcm5hbHMgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5wYXJzZXI8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCI+cGF0dGVybjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnRoaXMgbW9kdWxlIGV4cG9ydHMgYSBudW1iZXIgb2YgaW50ZXJuYWwgcGFyc2luZyByb3V0aW5lcyB0aGV5IGFyZSBub3QgcmVhbGx5IGFsbCBpbnRlbmRlZCBmb3IgYXBwbGljYXRpb25zIGJ1dCBjYW4gcHJvdmUgdXNlZnVsIGRvaW5nIGxvdyBsZXZlbCBwcm9jZXNzaW5nLiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSU5QVVRfQ0hVTksiPklOUFVUX0NIVU5LPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19BU0NJSV9ESUdJVCI+SVNfQVNDSUlfRElHSVQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0FTQ0lJX0xFVFRFUiI+SVNfQVNDSUlfTEVUVEVSPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19CQVNFQ0hBUiI+SVNfQkFTRUNIQVI8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0JMQU5LIj5JU19CTEFOSzwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfQkxBTktfQ0giPklTX0JMQU5LX0NIPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19CWVRFX0NIQVIiPklTX0JZVEVfQ0hBUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfQ0hBUiI+SVNfQ0hBUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfQ0hBUl9DSCI+SVNfQ0hBUl9DSDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfQ09NQklOSU5HIj5JU19DT01CSU5JTkc8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0NPTUJJTklOR19DSCI+SVNfQ09NQklOSU5HX0NIPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19ESUdJVCI+SVNfRElHSVQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0RJR0lUX0NIIj5JU19ESUdJVF9DSDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfRVhURU5ERVIiPklTX0VYVEVOREVSPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19FWFRFTkRFUl9DSCI+SVNfRVhURU5ERVJfQ0g8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0lERU9HUkFQSElDIj5JU19JREVPR1JBUEhJQzwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfTEVUVEVSIj5JU19MRVRURVI8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0lTX0xFVFRFUl9DSCI+SVNfTEVUVEVSX0NIPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNJU19QVUJJRENIQVIiPklTX1BVQklEQ0hBUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjSVNfUFVCSURDSEFSX0NIIj5JU19QVUJJRENIQVJfQ0g8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI01PVkVUT19FTkRUQUciPk1PVkVUT19FTkRUQUc8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI01PVkVUT19TVEFSVFRBRyI+TU9WRVRPX1NUQVJUVEFHPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNTS0lQX0VPTCI+U0tJUF9FT0w8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9NQVhfTkFNRUxFTiI+WE1MX01BWF9OQU1FTEVOPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfTUFYX1RFWFRfTEVOR1RIIj5YTUxfTUFYX1RFWFRfTEVOR1RIPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU1VCU1RJVFVURV9CT1RIIj5YTUxfU1VCU1RJVFVURV9CT1RIPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU1VCU1RJVFVURV9OT05FIj5YTUxfU1VCU1RJVFVURV9OT05FPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU1VCU1RJVFVURV9QRVJFRiI+WE1MX1NVQlNUSVRVVEVfUEVSRUY8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TVUJTVElUVVRFX1JFRiI+WE1MX1NVQlNUSVRVVEVfUkVGPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtSFRNTHBhcnNlci5odG1sI2h0bWxQYXJzZXJDdHh0UHRyIj5odG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCI+aHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNodG1sSW5pdEF1dG9DbG9zZSI+aHRtbEluaXRBdXRvQ2xvc2U8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI2lucHV0UG9wIj5pbnB1dFBvcDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI2lucHV0UHVzaCI+aW5wdXRQdXNoPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiB2YWx1ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjbmFtZVBvcCI+bmFtZVBvcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjbmFtZVB1c2giPm5hbWVQdXNoPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI25vZGVQb3AiPm5vZGVQb3A8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI25vZGVQdXNoIj5ub2RlUHVzaDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ2hlY2tMYW5ndWFnZUlEIj54bWxDaGVja0xhbmd1YWdlSUQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbGFuZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENvcHlDaGFyIj54bWxDb3B5Q2hhcjwvYT4JCQkoaW50IGxlbiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogb3V0LCA8YnIgLz4JCQkJCSBpbnQgdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ29weUNoYXJNdWx0aUJ5dGUiPnhtbENvcHlDaGFyTXVsdGlCeXRlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG91dCwgPGJyIC8+CQkJCQkgaW50IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0Ij54bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0PC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJMLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJhc2UpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQiPnhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQiPnhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCQkJIGludCBzaXplKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbENyZWF0ZVVSTFBhcnNlckN0eHQiPnhtbENyZWF0ZVVSTFBhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEN1cnJlbnRDaGFyIj54bWxDdXJyZW50Q2hhcjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgKiBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbERlY29kZUVudGl0aWVzIj54bWxEZWNvZGVFbnRpdGllczwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IGxlbiwgPGJyIC8+CQkJCQkgaW50IHdoYXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sRW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI3htbEVudGl0eVJlZmVyZW5jZUZ1bmMiPnhtbEVudGl0eVJlZmVyZW5jZUZ1bmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gZW50LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGZpcnN0Tm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBsYXN0Tm9kZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEVyck1lbW9yeSI+eG1sRXJyTWVtb3J5PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBleHRyYSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlSW5wdXRTdHJlYW0iPnhtbEZyZWVJbnB1dFN0cmVhbTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sSGFuZGxlRW50aXR5Ij54bWxIYW5kbGVFbnRpdHk8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gZW50aXR5KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNMZXR0ZXIiPnhtbElzTGV0dGVyPC9hPgkJCShpbnQgYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUiPnhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIj54bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIj54bWxOYW1lc3BhY2VQYXJzZVFOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogcHJlZml4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RW50aXR5SW5wdXRTdHJlYW0iPnhtbE5ld0VudGl0eUlucHV0U3RyZWFtPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gZW50aXR5KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3SW5wdXRGcm9tRmlsZSI+eG1sTmV3SW5wdXRGcm9tRmlsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0lucHV0U3RyZWFtIj54bWxOZXdJbnB1dFN0cmVhbTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1N0cmluZ0lucHV0U3RyZWFtIj54bWxOZXdTdHJpbmdJbnB1dFN0cmVhbTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJ1ZmZlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOZXh0Q2hhciI+eG1sTmV4dENoYXI8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VBdHRWYWx1ZSI+eG1sUGFyc2VBdHRWYWx1ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VBdHRyaWJ1dGUiPnhtbFBhcnNlQXR0cmlidXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCI+eG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFBhcnNlQXR0cmlidXRlVHlwZSI+eG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+ICogdHJlZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZUNEU2VjdCI+eG1sUGFyc2VDRFNlY3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZUNoYXJEYXRhIj54bWxQYXJzZUNoYXJEYXRhPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IGNkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VDaGFyUmVmIj54bWxQYXJzZUNoYXJSZWY8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZUNvbW1lbnQiPnhtbFBhcnNlQ29tbWVudDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlQ29udGVudCI+eG1sUGFyc2VDb250ZW50PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXJzZURlZmF1bHREZWNsIj54bWxQYXJzZURlZmF1bHREZWNsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlRG9jVHlwZURlY2wiPnhtbFBhcnNlRG9jVHlwZURlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlRWxlbWVudCI+eG1sUGFyc2VFbGVtZW50PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIGludCBpbnB1dGNoayk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+ICogcmVzdWx0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VFbGVtZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50RGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIGludCBpbnB1dGNoayk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VFbmNOYW1lIj54bWxQYXJzZUVuY05hbWU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZUVuY29kaW5nRGVjbCI+eG1sUGFyc2VFbmNvZGluZ0RlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VFbmRUYWciPnhtbFBhcnNlRW5kVGFnPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VFbnRpdHlEZWNsIj54bWxQYXJzZUVudGl0eURlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUVudGl0eVJlZiI+eG1sUGFyc2VFbnRpdHlSZWY8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlRW50aXR5VmFsdWUiPnhtbFBhcnNlRW50aXR5VmFsdWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBvcmlnKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VFbnVtZXJhdGVkVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGVkVHlwZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPiAqIHRyZWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSI+eG1sUGFyc2VFbnVtZXJhdGlvblR5cGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlRXh0ZXJuYWxJRCI+eG1sUGFyc2VFeHRlcm5hbElEPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogcHVibGljSUQsIDxiciAvPgkJCQkJIGludCBzdHJpY3QpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VFeHRlcm5hbFN1YnNldCI+eG1sUGFyc2VFeHRlcm5hbFN1YnNldDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlTWFya3VwRGVjbCI+eG1sUGFyc2VNYXJrdXBEZWNsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZU1pc2MiPnhtbFBhcnNlTWlzYzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZU5hbWUiPnhtbFBhcnNlTmFtZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VOYW1lc3BhY2UiPnhtbFBhcnNlTmFtZXNwYWNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sUGFyc2VObXRva2VuIj54bWxQYXJzZU5tdG9rZW48L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlTm90YXRpb25EZWNsIj54bWxQYXJzZU5vdGF0aW9uRGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZU5vdGF0aW9uVHlwZSI+eG1sUGFyc2VOb3RhdGlvblR5cGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VQRVJlZmVyZW5jZSI+eG1sUGFyc2VQRVJlZmVyZW5jZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VQSSI+eG1sUGFyc2VQSTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZVBJVGFyZ2V0Ij54bWxQYXJzZVBJVGFyZ2V0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZVB1YmlkTGl0ZXJhbCI+eG1sUGFyc2VQdWJpZExpdGVyYWw8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlUXVvdGVkU3RyaW5nIj54bWxQYXJzZVF1b3RlZFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZVJlZmVyZW5jZSI+eG1sUGFyc2VSZWZlcmVuY2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VTRERlY2wiPnhtbFBhcnNlU0REZWNsPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlU3RhcnRUYWciPnhtbFBhcnNlU3RhcnRUYWc8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhcnNlU3lzdGVtTGl0ZXJhbCI+eG1sUGFyc2VTeXN0ZW1MaXRlcmFsPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlVGV4dERlY2wiPnhtbFBhcnNlVGV4dERlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZVZlcnNpb25JbmZvIj54bWxQYXJzZVZlcnNpb25JbmZvPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxQYXJzZVZlcnNpb25OdW0iPnhtbFBhcnNlVmVyc2lvbk51bTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZVhNTERlY2wiPnhtbFBhcnNlWE1MRGVjbDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIj54bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dFNocmluayI+eG1sUGFyc2VySW5wdXRTaHJpbms8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGluKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPgk8YSBocmVmPSIjeG1sUG9wSW5wdXQiPnhtbFBvcElucHV0PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQdXNoSW5wdXQiPnhtbFB1c2hJbnB1dDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFNjYW5OYW1lIj54bWxTY2FuTmFtZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYzwvYT4JKDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj54bWxFbnRpdHlSZWZlcmVuY2VGdW5jPC9hPiBmdW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2tpcEJsYW5rQ2hhcnMiPnhtbFNraXBCbGFua0NoYXJzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3BsaXRRTmFtZSI+eG1sU3BsaXRRTmFtZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBwcmVmaXgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTdHJpbmdDdXJyZW50Q2hhciI+eG1sU3RyaW5nQ3VycmVudENoYXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGludCAqIGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMiPnhtbFN0cmluZ0RlY29kZUVudGl0aWVzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIGludCB3aGF0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJCSBpbnQgd2hhdCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMiwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU3dpdGNoRW5jb2RpbmciPnhtbFN3aXRjaEVuY29kaW5nPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN3aXRjaElucHV0RW5jb2RpbmciPnhtbFN3aXRjaElucHV0RW5jb2Rpbmc8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTd2l0Y2hUb0VuY29kaW5nIj54bWxTd2l0Y2hUb0VuY29kaW5nPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4gaGFuZGxlcik8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iSU5QVVRfQ0hVTksiIGlkPSJJTlBVVF9DSFVOSyI+PC9hPk1hY3JvOiBJTlBVVF9DSFVOSzwvaDM+PHByZT4jZGVmaW5lIElOUFVUX0NIVU5LPC9wcmU+PHA+VGhlIHBhcnNlciB0cmllcyB0byBhbHdheXMgaGF2ZSB0aGF0IGFtb3VudCBvZiBpbnB1dCByZWFkeS4gT25lIG9mIHRoZSBwb2ludCBpcyBwcm92aWRpbmcgY29udGV4dCB3aGVuIHJlcG9ydGluZyBlcnJvcnMuPC9wPgorPGgzPjxhIG5hbWU9IklTX0FTQ0lJX0RJR0lUIiBpZD0iSVNfQVNDSUlfRElHSVQiPjwvYT5NYWNybzogSVNfQVNDSUlfRElHSVQ8L2gzPjxwcmU+I2RlZmluZSBJU19BU0NJSV9ESUdJVDwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIFswLTldPC9wPgorPGgzPjxhIG5hbWU9IklTX0FTQ0lJX0xFVFRFUiIgaWQ9IklTX0FTQ0lJX0xFVFRFUiI+PC9hPk1hY3JvOiBJU19BU0NJSV9MRVRURVI8L2gzPjxwcmU+I2RlZmluZSBJU19BU0NJSV9MRVRURVI8L3ByZT48cD5NYWNybyB0byBjaGVjayBbYS16QS1aXTwvcD4KKzxoMz48YSBuYW1lPSJJU19CQVNFQ0hBUiIgaWQ9IklTX0JBU0VDSEFSIj48L2E+TWFjcm86IElTX0JBU0VDSEFSPC9oMz48cHJlPiNkZWZpbmUgSVNfQkFTRUNIQVI8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbODVdIEJhc2VDaGFyIDo6PSAuLi4gbG9uZyBsaXN0IHNlZSBSRUMgLi4uPC9wPgorPGgzPjxhIG5hbWU9IklTX0JMQU5LIiBpZD0iSVNfQkxBTksiPjwvYT5NYWNybzogSVNfQkxBTks8L2gzPjxwcmU+I2RlZmluZSBJU19CTEFOSzwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6IFszXSBTIDo6PSAoI3gyMCB8ICN4OSB8ICN4RCB8ICN4QSkrPC9wPgorPGgzPjxhIG5hbWU9IklTX0JMQU5LX0NIIiBpZD0iSVNfQkxBTktfQ0giPjwvYT5NYWNybzogSVNfQkxBTktfQ0g8L2gzPjxwcmU+I2RlZmluZSBJU19CTEFOS19DSDwvcHJlPjxwPkJlaGF2aW91ciBzYW1lIGFzIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19CTEFOSyI+SVNfQkxBTks8L2E+PC9wPgorPGgzPjxhIG5hbWU9IklTX0JZVEVfQ0hBUiIgaWQ9IklTX0JZVEVfQ0hBUiI+PC9hPk1hY3JvOiBJU19CWVRFX0NIQVI8L2gzPjxwcmU+I2RlZmluZSBJU19CWVRFX0NIQVI8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbMl0gQ2hhciA6Oj0gI3g5IHwgI3hBIHwgI3hEIHwgWyN4MjAuLi5dIGFueSBieXRlIGNoYXJhY3RlciBpbiB0aGUgYWNjZXB0ZWQgcmFuZ2U8L3A+Cis8aDM+PGEgbmFtZT0iSVNfQ0hBUiIgaWQ9IklTX0NIQVIiPjwvYT5NYWNybzogSVNfQ0hBUjwvaDM+PHByZT4jZGVmaW5lIElTX0NIQVI8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbMl0gQ2hhciA6Oj0gI3g5IHwgI3hBIHwgI3hEIHwgWyN4MjAtI3hEN0ZGXSB8IFsjeEUwMDAtI3hGRkZEXSB8IFsjeDEwMDAwLSN4MTBGRkZGXSBhbnkgVW5pY29kZSBjaGFyYWN0ZXIsIGV4Y2x1ZGluZyB0aGUgc3Vycm9nYXRlIGJsb2NrcywgRkZGRSwgYW5kIEZGRkYuPC9wPgorPGgzPjxhIG5hbWU9IklTX0NIQVJfQ0giIGlkPSJJU19DSEFSX0NIIj48L2E+TWFjcm86IElTX0NIQVJfQ0g8L2gzPjxwcmU+I2RlZmluZSBJU19DSEFSX0NIPC9wcmU+PHA+QmVoYXZlcyBsaWtlIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19DSEFSIj5JU19DSEFSPC9hPiBvbiBzaW5nbGUtYnl0ZSB2YWx1ZTwvcD4KKzxoMz48YSBuYW1lPSJJU19DT01CSU5JTkciIGlkPSJJU19DT01CSU5JTkciPjwvYT5NYWNybzogSVNfQ09NQklOSU5HPC9oMz48cHJlPiNkZWZpbmUgSVNfQ09NQklOSU5HPC9wcmU+PHA+TWFjcm8gdG8gY2hlY2sgdGhlIGZvbGxvd2luZyBwcm9kdWN0aW9uIGluIHRoZSBYTUwgc3BlYzogWzg3XSBDb21iaW5pbmdDaGFyIDo6PSAuLi4gbG9uZyBsaXN0IHNlZSBSRUMgLi4uPC9wPgorPGgzPjxhIG5hbWU9IklTX0NPTUJJTklOR19DSCIgaWQ9IklTX0NPTUJJTklOR19DSCI+PC9hPk1hY3JvOiBJU19DT01CSU5JTkdfQ0g8L2gzPjxwcmU+I2RlZmluZSBJU19DT01CSU5JTkdfQ0g8L3ByZT48cD5BbHdheXMgZmFsc2UgKGFsbCBjb21iaW5pbmcgY2hhcnMgJmd0OyAweGZmKTwvcD4KKzxoMz48YSBuYW1lPSJJU19ESUdJVCIgaWQ9IklTX0RJR0lUIj48L2E+TWFjcm86IElTX0RJR0lUPC9oMz48cHJlPiNkZWZpbmUgSVNfRElHSVQ8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbODhdIERpZ2l0IDo6PSAuLi4gbG9uZyBsaXN0IHNlZSBSRUMgLi4uPC9wPgorPGgzPjxhIG5hbWU9IklTX0RJR0lUX0NIIiBpZD0iSVNfRElHSVRfQ0giPjwvYT5NYWNybzogSVNfRElHSVRfQ0g8L2gzPjxwcmU+I2RlZmluZSBJU19ESUdJVF9DSDwvcHJlPjxwPkJlaGF2ZXMgbGlrZSA8YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjSVNfRElHSVQiPklTX0RJR0lUPC9hPiBidXQgd2l0aCBhIHNpbmdsZSBieXRlIGFyZ3VtZW50PC9wPgorPGgzPjxhIG5hbWU9IklTX0VYVEVOREVSIiBpZD0iSVNfRVhURU5ERVIiPjwvYT5NYWNybzogSVNfRVhURU5ERVI8L2gzPjxwcmU+I2RlZmluZSBJU19FWFRFTkRFUjwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6IFs4OV0gRXh0ZW5kZXIgOjo9ICN4MDBCNyB8ICN4MDJEMCB8ICN4MDJEMSB8ICN4MDM4NyB8ICN4MDY0MCB8ICN4MEU0NiB8ICN4MEVDNiB8ICN4MzAwNSB8IFsjeDMwMzEtI3gzMDM1XSB8IFsjeDMwOUQtI3gzMDlFXSB8IFsjeDMwRkMtI3gzMEZFXTwvcD4KKzxoMz48YSBuYW1lPSJJU19FWFRFTkRFUl9DSCIgaWQ9IklTX0VYVEVOREVSX0NIIj48L2E+TWFjcm86IElTX0VYVEVOREVSX0NIPC9oMz48cHJlPiNkZWZpbmUgSVNfRVhURU5ERVJfQ0g8L3ByZT48cD5CZWhhdmVzIGxpa2UgPGEgaHJlZj0ibGlieG1sLXBhcnNlckludGVybmFscy5odG1sI0lTX0VYVEVOREVSIj5JU19FWFRFTkRFUjwvYT4gYnV0IHdpdGggYSBzaW5nbGUtYnl0ZSBhcmd1bWVudDwvcD4KKzxoMz48YSBuYW1lPSJJU19JREVPR1JBUEhJQyIgaWQ9IklTX0lERU9HUkFQSElDIj48L2E+TWFjcm86IElTX0lERU9HUkFQSElDPC9oMz48cHJlPiNkZWZpbmUgSVNfSURFT0dSQVBISUM8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbODZdIElkZW9ncmFwaGljIDo6PSBbI3g0RTAwLSN4OUZBNV0gfCAjeDMwMDcgfCBbI3gzMDIxLSN4MzAyOV08L3A+Cis8aDM+PGEgbmFtZT0iSVNfTEVUVEVSIiBpZD0iSVNfTEVUVEVSIj48L2E+TWFjcm86IElTX0xFVFRFUjwvaDM+PHByZT4jZGVmaW5lIElTX0xFVFRFUjwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6IFs4NF0gTGV0dGVyIDo6PSBCYXNlQ2hhciB8IElkZW9ncmFwaGljPC9wPgorPGgzPjxhIG5hbWU9IklTX0xFVFRFUl9DSCIgaWQ9IklTX0xFVFRFUl9DSCI+PC9hPk1hY3JvOiBJU19MRVRURVJfQ0g8L2gzPjxwcmU+I2RlZmluZSBJU19MRVRURVJfQ0g8L3ByZT48cD5NYWNybyBiZWhhdmVzIGxpa2UgSVNfTEVUVEVSLCBidXQgb25seSBjaGVjayBiYXNlIGNoYXJzPC9wPgorPGgzPjxhIG5hbWU9IklTX1BVQklEQ0hBUiIgaWQ9IklTX1BVQklEQ0hBUiI+PC9hPk1hY3JvOiBJU19QVUJJRENIQVI8L2gzPjxwcmU+I2RlZmluZSBJU19QVUJJRENIQVI8L3ByZT48cD5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiBbMTNdIFB1YmlkQ2hhciA6Oj0gI3gyMCB8ICN4RCB8ICN4QSB8IFthLXpBLVowLTldIHwgWy0nKCkrLC4vOj0/OyEqI0AkXyVdPC9wPgorPGgzPjxhIG5hbWU9IklTX1BVQklEQ0hBUl9DSCIgaWQ9IklTX1BVQklEQ0hBUl9DSCI+PC9hPk1hY3JvOiBJU19QVUJJRENIQVJfQ0g8L2gzPjxwcmU+I2RlZmluZSBJU19QVUJJRENIQVJfQ0g8L3ByZT48cD5TYW1lIGFzIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNJU19QVUJJRENIQVIiPklTX1BVQklEQ0hBUjwvYT4gYnV0IGZvciBzaW5nbGUtYnl0ZSB2YWx1ZTwvcD4KKzxoMz48YSBuYW1lPSJNT1ZFVE9fRU5EVEFHIiBpZD0iTU9WRVRPX0VORFRBRyI+PC9hPk1hY3JvOiBNT1ZFVE9fRU5EVEFHPC9oMz48cHJlPiNkZWZpbmUgTU9WRVRPX0VORFRBRzwvcHJlPjxwPlNraXBzIHRvIHRoZSBuZXh0ICcmZ3Q7JyBjaGFyLjwvcD4KKzxoMz48YSBuYW1lPSJNT1ZFVE9fU1RBUlRUQUciIGlkPSJNT1ZFVE9fU1RBUlRUQUciPjwvYT5NYWNybzogTU9WRVRPX1NUQVJUVEFHPC9oMz48cHJlPiNkZWZpbmUgTU9WRVRPX1NUQVJUVEFHPC9wcmU+PHA+U2tpcHMgdG8gdGhlIG5leHQgJyZsdDsnIGNoYXIuPC9wPgorPGgzPjxhIG5hbWU9IlNLSVBfRU9MIiBpZD0iU0tJUF9FT0wiPjwvYT5NYWNybzogU0tJUF9FT0w8L2gzPjxwcmU+I2RlZmluZSBTS0lQX0VPTDwvcHJlPjxwPlNraXBzIHRoZSBlbmQgb2YgbGluZSBjaGFycy48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX01BWF9OQU1FTEVOIiBpZD0iWE1MX01BWF9OQU1FTEVOIj48L2E+TWFjcm86IFhNTF9NQVhfTkFNRUxFTjwvaDM+PHByZT4jZGVmaW5lIFhNTF9NQVhfTkFNRUxFTjwvcHJlPjxwPklkZW50aWZpZXJzIGNhbiBiZSBsb25nZXIsIGJ1dCB0aGlzIHdpbGwgYmUgbW9yZSBjb3N0bHkgYXQgcnVudGltZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX01BWF9URVhUX0xFTkdUSCIgaWQ9IlhNTF9NQVhfVEVYVF9MRU5HVEgiPjwvYT5NYWNybzogWE1MX01BWF9URVhUX0xFTkdUSDwvaDM+PHByZT4jZGVmaW5lIFhNTF9NQVhfVEVYVF9MRU5HVEg8L3ByZT48cD5NYXhpbXVtIHNpemUgYWxsb3dlZCBmb3IgYSBzaW5nbGUgdGV4dCBub2RlIHdoZW4gYnVpbGRpbmcgYSB0cmVlLiBUaGlzIGlzIG5vdCBhIGxpbWl0YXRpb24gb2YgdGhlIHBhcnNlciBidXQgYSBzYWZldHkgYm91bmRhcnkgZmVhdHVyZSwgdXNlIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNYTUxfUEFSU0VfSFVHRSI+WE1MX1BBUlNFX0hVR0U8L2E+IG9wdGlvbiB0byBvdmVycmlkZSBpdC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NVQlNUSVRVVEVfQk9USCIgaWQ9IlhNTF9TVUJTVElUVVRFX0JPVEgiPjwvYT5NYWNybzogWE1MX1NVQlNUSVRVVEVfQk9USDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TVUJTVElUVVRFX0JPVEg8L3ByZT48cD5Cb3RoIGdlbmVyYWwgYW5kIHBhcmFtZXRlciBlbnRpdGllcyBuZWVkIHRvIGJlIHN1YnN0aXR1dGVkLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU1VCU1RJVFVURV9OT05FIiBpZD0iWE1MX1NVQlNUSVRVVEVfTk9ORSI+PC9hPk1hY3JvOiBYTUxfU1VCU1RJVFVURV9OT05FPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NVQlNUSVRVVEVfTk9ORTwvcHJlPjxwPklmIG5vIGVudGl0aWVzIG5lZWQgdG8gYmUgc3Vic3RpdHV0ZWQuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TVUJTVElUVVRFX1BFUkVGIiBpZD0iWE1MX1NVQlNUSVRVVEVfUEVSRUYiPjwvYT5NYWNybzogWE1MX1NVQlNUSVRVVEVfUEVSRUY8L2gzPjxwcmU+I2RlZmluZSBYTUxfU1VCU1RJVFVURV9QRVJFRjwvcHJlPjxwPldoZXRoZXIgcGFyYW1ldGVyIGVudGl0aWVzIG5lZWQgdG8gYmUgc3Vic3RpdHV0ZWQuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TVUJTVElUVVRFX1JFRiIgaWQ9IlhNTF9TVUJTVElUVVRFX1JFRiI+PC9hPk1hY3JvOiBYTUxfU1VCU1RJVFVURV9SRUY8L2gzPjxwcmU+I2RlZmluZSBYTUxfU1VCU1RJVFVURV9SRUY8L3ByZT48cD5XaGV0aGVyIGdlbmVyYWwgZW50aXRpZXMgbmVlZCB0byBiZSBzdWJzdGl0dXRlZC48L3A+Cis8aDM+PGEgbmFtZT0iaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0IiBpZD0iaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IGh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1IVE1McGFyc2VyLmh0bWwjaHRtbFBhcnNlckN0eHRQdHIiPmh0bWxQYXJzZXJDdHh0UHRyPC9hPglodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYSBmaWxlIGNvbnRlbnQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Imh0bWxJbml0QXV0b0Nsb3NlIiBpZD0iaHRtbEluaXRBdXRvQ2xvc2UiPjwvYT5GdW5jdGlvbjogaHRtbEluaXRBdXRvQ2xvc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWh0bWxJbml0QXV0b0Nsb3NlCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGh0bWxTdGFydENsb3NlSW5kZXggZm9yIGZhc3QgbG9va3VwIG9mIGNsb3NpbmcgdGFncyBuYW1lcy4gVGhpcyBpcyBub3QgcmVlbnRyYW50LiBDYWxsIHhtbEluaXRQYXJzZXIoKSBvbmNlIGJlZm9yZSBwcm9jZXNzaW5nIGluIGNhc2Ugb2YgdXNlIGluIG11bHRpdGhyZWFkZWQgcHJvZ3JhbXMuPC9wPgorPGgzPjxhIG5hbWU9ImlucHV0UG9wIiBpZD0iaW5wdXRQb3AiPjwvYT5GdW5jdGlvbjogaW5wdXRQb3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JaW5wdXRQb3AJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPlBvcHMgdGhlIHRvcCBwYXJzZXIgaW5wdXQgZnJvbSB0aGUgaW5wdXQgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBqdXN0IHJlbW92ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJpbnB1dFB1c2giIGlkPSJpbnB1dFB1c2giPjwvYT5GdW5jdGlvbjogaW5wdXRQdXNoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CWlucHV0UHVzaAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPlB1c2hlcyBhIG5ldyBwYXJzZXIgaW5wdXQgb24gdG9wIG9mIHRoZSBpbnB1dCBzdGFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ibmFtZVBvcCIgaWQ9Im5hbWVQb3AiPjwvYT5GdW5jdGlvbjogbmFtZVBvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWVQb3AJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+UG9wcyB0aGUgdG9wIGVsZW1lbnQgbmFtZSBmcm9tIHRoZSBuYW1lIHN0YWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBqdXN0IHJlbW92ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJuYW1lUHVzaCIgaWQ9Im5hbWVQdXNoIj48L2E+RnVuY3Rpb246IG5hbWVQdXNoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CW5hbWVQdXNoCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5QdXNoZXMgYSBuZXcgZWxlbWVudCBuYW1lIG9uIHRvcCBvZiB0aGUgbmFtZSBzdGFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ibm9kZVBvcCIgaWQ9Im5vZGVQb3AiPjwvYT5GdW5jdGlvbjogbm9kZVBvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZVBvcAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5Qb3BzIHRoZSB0b3AgZWxlbWVudCBub2RlIGZyb20gdGhlIG5vZGUgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGp1c3QgcmVtb3ZlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9Im5vZGVQdXNoIiBpZD0ibm9kZVB1c2giPjwvYT5GdW5jdGlvbjogbm9kZVB1c2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJbm9kZVB1c2gJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbHVlKTxiciAvPgorPC9wcmU+PHA+UHVzaGVzIGEgbmV3IGVsZW1lbnQgbm9kZSBvbiB0b3Agb2YgdGhlIG5vZGUgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCB0aGUgaW5kZXggaW4gdGhlIHN0YWNrIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENoZWNrTGFuZ3VhZ2VJRCIgaWQ9InhtbENoZWNrTGFuZ3VhZ2VJRCI+PC9hPkZ1bmN0aW9uOiB4bWxDaGVja0xhbmd1YWdlSUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ2hlY2tMYW5ndWFnZUlECQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbGFuZyk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrcyB0aGF0IHRoZSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgTGFuZ3VhZ2VJRCBwcm9kdWN0aW9uOiBOT1RFOiB0aGlzIGlzIHNvbWV3aGF0IGRlcHJlY2F0ZWQsIHRob3NlIHByb2R1Y3Rpb25zIHdlcmUgcmVtb3ZlZCBmcm9tIHRoZSBYTUwgU2Vjb25kIGVkaXRpb24uIFszM10gTGFuZ3VhZ2VJRCA6Oj0gTGFuZ2NvZGUgKCctJyBTdWJjb2RlKSogWzM0XSBMYW5nY29kZSA6Oj0gSVNPNjM5Q29kZSB8IElhbmFDb2RlIHwgVXNlckNvZGUgWzM1XSBJU082MzlDb2RlIDo6PSAoW2Etel0gfCBbQS1aXSkgKFthLXpdIHwgW0EtWl0pIFszNl0gSWFuYUNvZGUgOjo9ICgnaScgfCAnSScpICctJyAoW2Etel0gfCBbQS1aXSkrIFszN10gVXNlckNvZGUgOjo9ICgneCcgfCAnWCcpICctJyAoW2Etel0gfCBbQS1aXSkrIFszOF0gU3ViY29kZSA6Oj0gKFthLXpdIHwgW0EtWl0pKzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmxhbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIHN0cmluZyB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBjb3JyZWN0IDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weUNoYXIiIGlkPSJ4bWxDb3B5Q2hhciI+PC9hPkZ1bmN0aW9uOiB4bWxDb3B5Q2hhcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDb3B5Q2hhcgkJCShpbnQgbGVuLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvdXQsIDxiciAvPgkJCQkJIGludCB2YWwpPGJyIC8+Cis8L3ByZT48cD5hcHBlbmQgdGhlIGNoYXIgdmFsdWUgaW4gdGhlIGFycmF5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5JZ25vcmVkLCBjb21wYXRpYmlsaXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB3cml0dGVuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weUNoYXJNdWx0aUJ5dGUiIGlkPSJ4bWxDb3B5Q2hhck11bHRpQnl0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxDb3B5Q2hhck11bHRpQnl0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDb3B5Q2hhck11bHRpQnl0ZQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG91dCwgPGJyIC8+CQkJCQkgaW50IHZhbCk8YnIgLz4KKzwvcHJlPjxwPmFwcGVuZCB0aGUgY2hhciB2YWx1ZSBpbiB0aGUgYXJyYXk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB3cml0dGVuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCIgaWQ9InhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dAkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJMLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElELCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGJhc2UpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYW4gZXh0ZXJuYWwgZW50aXR5IEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5IFVSTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+SUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnRpdHkgUFVCTElDIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5iYXNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvc3NpYmxlIGJhc2UgZm9yIHRoZSB0YXJnZXQgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCIgaWQ9InhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgl4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGEgZmlsZSBjb250ZW50LiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQiIGlkPSJ4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+CXhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQJKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJCQkgaW50IHNpemUpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCIgaWQ9InhtbENyZWF0ZVVSTFBhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4JeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYSBmaWxlIG9yIFVSTCBjb250ZW50LiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lIGFuZCBmb3IgZmlsZSBhY2Nlc3NlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgb3IgVVJMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEN1cnJlbnRDaGFyIiBpZD0ieG1sQ3VycmVudENoYXIiPjwvYT5GdW5jdGlvbjogeG1sQ3VycmVudENoYXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ3VycmVudENoYXIJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgKiBsZW4pPGJyIC8+Cis8L3ByZT48cD5UaGUgY3VycmVudCBjaGFyIHZhbHVlLCBpZiB1c2luZyBVVEYtOCB0aGlzIG1heSBhY3R1YWxseSBzcGFuIG11bHRpcGxlIGJ5dGVzIGluIHRoZSBpbnB1dCBidWZmZXIuIEltcGxlbWVudCB0aGUgZW5kIG9mIGxpbmUgbm9ybWFsaXphdGlvbjogMi4xMSBFbmQtb2YtTGluZSBIYW5kbGluZyBXaGVyZXZlciBhbiBleHRlcm5hbCBwYXJzZWQgZW50aXR5IG9yIHRoZSBsaXRlcmFsIGVudGl0eSB2YWx1ZSBvZiBhbiBpbnRlcm5hbCBwYXJzZWQgZW50aXR5IGNvbnRhaW5zIGVpdGhlciB0aGUgbGl0ZXJhbCB0d28tY2hhcmFjdGVyIHNlcXVlbmNlICIjeEQjeEEiIG9yIGEgc3RhbmRhbG9uZSBsaXRlcmFsICN4RCwgYW4gWE1MIHByb2Nlc3NvciBtdXN0IHBhc3MgdG8gdGhlIGFwcGxpY2F0aW9uIHRoZSBzaW5nbGUgY2hhcmFjdGVyICN4QS4gVGhpcyBiZWhhdmlvciBjYW4gY29udmVuaWVudGx5IGJlIHByb2R1Y2VkIGJ5IG5vcm1hbGl6aW5nIGFsbCBsaW5lIGJyZWFrcyB0byAjeEEgb24gaW5wdXQsIGJlZm9yZSBwYXJzaW5nLik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGxlbmd0aCBvZiB0aGUgY2hhciByZWFkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBjaGFyIHZhbHVlIGFuZCBpdHMgbGVuZ3RoPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRGVjb2RlRW50aXRpZXMiIGlkPSJ4bWxEZWNvZGVFbnRpdGllcyI+PC9hPkZ1bmN0aW9uOiB4bWxEZWNvZGVFbnRpdGllczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbERlY29kZUVudGl0aWVzCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGludCB3aGF0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDMpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQsIHdlIG5vdyBhbHdheXMgcHJvY2VzcyBlbnRpdGllcyBjb250ZW50IHRocm91Z2ggPGEgaHJlZj0ibGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFN0cmluZ0RlY29kZUVudGl0aWVzIj54bWxTdHJpbmdEZWNvZGVFbnRpdGllczwvYT4gVE9ETzogcmVtb3ZlIGl0IGluIG5leHQgbWFqb3IgcmVsZWFzZS4gWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW4gdG8gZGVjb2RlIChpbiBieXRlcyAhKSwgLTEgZm9yIG5vIHNpemUgbGltaXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndoYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9QRVJFRiI+WE1MX1NVQlNUSVRVVEVfUEVSRUY8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4gVGhlIGNhbGxlciBtdXN0IGRlYWxsb2NhdGUgaXQgITwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEVudGl0eVJlZmVyZW5jZUZ1bmMiIGlkPSJ4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbEVudGl0eVJlZmVyZW5jZUZ1bmMKK3ZvaWQJeG1sRW50aXR5UmVmZXJlbmNlRnVuYwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+IGVudCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBmaXJzdE5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbGFzdE5vZGUpCis8L3ByZT48cD5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHdoZW4gb25lIG5lZWRzIHRvIGJlIGFibGUgdG8gdHJhY2sgYmFjayB0aGUgcHJvdmVuYW5jZSBvZiBhIGNodW5rIG9mIG5vZGVzIGluaGVyaXRlZCBmcm9tIGFuIGVudGl0eSByZXBsYWNlbWVudC48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW50aXR5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maXJzdE5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXN0IG5vZGUgaW4gdGhlIGNodW5rPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sYXN0Tm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3Qgbm9kIGluIHRoZSBjaHVuazwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sRXJyTWVtb3J5IiBpZD0ieG1sRXJyTWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbEVyck1lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRXJyTWVtb3J5CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGV4dHJhKTxiciAvPgorPC9wcmU+PHA+SGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZXJyb3I8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4dHJhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBpbmZvcm1hdGlvbnM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlSW5wdXRTdHJlYW0iIGlkPSJ4bWxGcmVlSW5wdXRTdHJlYW0iPjwvYT5GdW5jdGlvbjogeG1sRnJlZUlucHV0U3RyZWFtPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlSW5wdXRTdHJlYW0JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPGJyIC8+Cis8L3ByZT48cD5GcmVlIHVwIGFuIGlucHV0IHN0cmVhbS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSGFuZGxlRW50aXR5IiBpZD0ieG1sSGFuZGxlRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbEhhbmRsZUVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSGFuZGxlRW50aXR5CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4gZW50aXR5KTxiciAvPgorPC9wcmU+PHA+RGVmYXVsdCBoYW5kbGluZyBvZiBkZWZpbmVkIGVudGl0aWVzLCB3aGVuIHNob3VsZCB3ZSBkZWZpbmUgYSBuZXcgaW5wdXQgc3RyZWFtID8gV2hlbiBkbyB3ZSBqdXN0IGhhbmRsZSB0aGF0IGFzIGEgc2V0IG9mIGNoYXJzID8gT0JTT0xFVEU6IHRvIGJlIHJlbW92ZWQgYXQgc29tZSBwb2ludC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVudGl0eTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIGVudGl0eSBwb2ludGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElzTGV0dGVyIiBpZD0ieG1sSXNMZXR0ZXIiPjwvYT5GdW5jdGlvbjogeG1sSXNMZXR0ZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNMZXR0ZXIJCQkoaW50IGMpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgYWxsb3dlZCBieSB0aGUgcHJvZHVjdGlvbiBbODRdIExldHRlciA6Oj0gQmFzZUNoYXIgfCBJZGVvZ3JhcGhpYzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIHVuaWNvZGUgY2hhcmFjdGVyIChpbnQpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIG5vdCwgbm9uLXplcm8gb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUiIGlkPSJ4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgbmFtZXNwYWNlIG5hbWUuIFRPRE86IHRoaXMgc2VlbXMgbm90IGluIHVzZSBhbnltb3JlLCB0aGUgbmFtZXNwYWNlIGhhbmRsaW5nIGlzIGRvbmUgb24gdG9wIG9mIHRoZSBTQVggaW50ZXJmYWNlcywgaS5lLiBub3Qgb24gcmF3IGlucHV0LiBbTlMgM10gTkNOYW1lIDo6PSAoTGV0dGVyIHwgJ18nKSAoTkNOYW1lQ2hhcikqIFtOUyA0XSBOQ05hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIiBpZD0ieG1sTmFtZXNwYWNlUGFyc2VOU0RlZiI+PC9hPkZ1bmN0aW9uOiB4bWxOYW1lc3BhY2VQYXJzZU5TRGVmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTmFtZXNwYWNlUGFyc2VOU0RlZgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYSBuYW1lc3BhY2UgcHJlZml4IGRlY2xhcmF0aW9uIFRPRE86IHRoaXMgc2VlbXMgbm90IGluIHVzZSBhbnltb3JlLCB0aGUgbmFtZXNwYWNlIGhhbmRsaW5nIGlzIGRvbmUgb24gdG9wIG9mIHRoZSBTQVggaW50ZXJmYWNlcywgaS5lLiBub3Qgb24gcmF3IGlucHV0LiBbTlMgMV0gTlNEZWYgOjo9IFByZWZpeERlZiBFcSBTeXN0ZW1MaXRlcmFsIFtOUyAyXSBQcmVmaXhEZWYgOjo9ICd4bWxucycgKCc6JyBOQ05hbWUpPzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmFtZXNwYWNlUGFyc2VRTmFtZSIgaWQ9InhtbE5hbWVzcGFjZVBhcnNlUU5hbWUiPjwvYT5GdW5jdGlvbjogeG1sTmFtZXNwYWNlUGFyc2VRTmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbE5hbWVzcGFjZVBhcnNlUU5hbWUJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHByZWZpeCk8YnIgLz4KKzwvcHJlPjxwPlRPRE86IHRoaXMgc2VlbXMgbm90IGluIHVzZSBhbnltb3JlLCB0aGUgbmFtZXNwYWNlIGhhbmRsaW5nIGlzIGRvbmUgb24gdG9wIG9mIHRoZSBTQVggaW50ZXJmYWNlcywgaS5lLiBub3Qgb24gcmF3IGlucHV0LiBwYXJzZSBhbiBYTUwgcXVhbGlmaWVkIG5hbWUgW05TIDVdIFFOYW1lIDo6PSAoUHJlZml4ICc6Jyk/IExvY2FsUGFydCBbTlMgNl0gUHJlZml4IDo6PSBOQ05hbWUgW05TIDddIExvY2FsUGFydCA6Oj0gTkNOYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgcGFydCwgYW5kIHByZWZpeCBpcyB1cGRhdGVkIHRvIGdldCB0aGUgUHJlZml4IGlmIGFueS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSIgaWQ9InhtbE5ld0VudGl0eUlucHV0U3RyZWFtIj48L2E+RnVuY3Rpb246IHhtbE5ld0VudGl0eUlucHV0U3RyZWFtPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXhtbE5ld0VudGl0eUlucHV0U3RyZWFtCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPiBlbnRpdHkpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgaW5wdXQgc3RyZWFtIGJhc2VkIG9uIGFuIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbnRpdHk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEVudGl0eSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGlucHV0IHN0cmVhbSBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3SW5wdXRGcm9tRmlsZSIgaWQ9InhtbE5ld0lucHV0RnJvbUZpbGUiPjwvYT5GdW5jdGlvbjogeG1sTmV3SW5wdXRGcm9tRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxOZXdJbnB1dEZyb21GaWxlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgaW5wdXQgc3RyZWFtIGJhc2VkIG9uIGEgZmlsZSBvciBhbiBVUkwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lIHRvIHVzZSBhcyBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0lucHV0U3RyZWFtIiBpZD0ieG1sTmV3SW5wdXRTdHJlYW0iPjwvYT5GdW5jdGlvbjogeG1sTmV3SW5wdXRTdHJlYW08L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JeG1sTmV3SW5wdXRTdHJlYW0JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gc3RydWN0dXJlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGlucHV0IHN0cmVhbSBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0iIGlkPSJ4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYnVmZmVyKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IGlucHV0IHN0cmVhbSBiYXNlZCBvbiBhIG1lbW9yeSBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIG1lbW9yeSBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgaW5wdXQgc3RyZWFtPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV4dENoYXIiIGlkPSJ4bWxOZXh0Q2hhciI+PC9hPkZ1bmN0aW9uOiB4bWxOZXh0Q2hhcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTmV4dENoYXIJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+U2tpcCB0byB0aGUgbmV4dCBjaGFyIGlucHV0IGNoYXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlQXR0VmFsdWUiIGlkPSJ4bWxQYXJzZUF0dFZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlQXR0VmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZUF0dFZhbHVlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhIHZhbHVlIGZvciBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IE5vdGU6IHRoZSBwYXJzZXIgd29uJ3QgZG8gc3Vic3RpdHV0aW9uIG9mIGVudGl0aWVzIGhlcmUsIHRoaXMgd2lsbCBiZSBoYW5kbGVkIGxhdGVyIGluIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU3RyaW5nR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9hPiBbMTBdIEF0dFZhbHVlIDo6PSAnIicgKFteJmx0OyZhbXA7Il0gfCBSZWZlcmVuY2UpKiAnIicgfCAiJyIgKFteJmx0OyZhbXA7J10gfCBSZWZlcmVuY2UpKiAiJyIgMy4zLjMgQXR0cmlidXRlLVZhbHVlIE5vcm1hbGl6YXRpb246IEJlZm9yZSB0aGUgdmFsdWUgb2YgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpcyBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yIGNoZWNrZWQgZm9yIHZhbGlkaXR5LCB0aGUgWE1MIHByb2Nlc3NvciBtdXN0IG5vcm1hbGl6ZSBpdCBhcyBmb2xsb3dzOiAtIGEgY2hhcmFjdGVyIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gaXMgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyB0aGUgcmVmZXJlbmNlZCBjaGFyYWN0ZXIgdG8gdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgLSBhbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBpcyBwcm9jZXNzZWQgYnkgcmVjdXJzaXZlbHkgcHJvY2Vzc2luZyB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiB0aGUgZW50aXR5IC0gYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAoI3gyMCwgI3hELCAjeEEsICN4OSkgaXMgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyAjeDIwIHRvIHRoZSBub3JtYWxpemVkIHZhbHVlLCBleGNlcHQgdGhhdCBvbmx5IGEgc2luZ2xlICN4MjAgaXMgYXBwZW5kZWQgZm9yIGEgIiN4RCN4QSIgc2VxdWVuY2UgdGhhdCBpcyBwYXJ0IG9mIGFuIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkgb3IgdGhlIGxpdGVyYWwgZW50aXR5IHZhbHVlIG9mIGFuIGludGVybmFsIHBhcnNlZCBlbnRpdHkgLSBvdGhlciA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYXJlIHByb2Nlc3NlZCBieSBhcHBlbmRpbmcgdGhlbSB0byB0aGUgbm9ybWFsaXplZCB2YWx1ZSBJZiB0aGUgZGVjbGFyZWQgdmFsdWUgaXMgbm90IENEQVRBLCB0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIG11c3QgZnVydGhlciBwcm9jZXNzIHRoZSBub3JtYWxpemVkIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgYnkgZGlzY2FyZGluZyBhbnkgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHNwYWNlICgjeDIwKSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYnkgYSBzaW5nbGUgc3BhY2UgKCN4MjApIGNoYXJhY3Rlci4gQWxsIGF0dHJpYnV0ZXMgZm9yIHdoaWNoIG5vIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHJlYWQgc2hvdWxkIGJlIHRyZWF0ZWQgYnkgYSBub24tdmFsaWRhdGluZyBwYXJzZXIgYXMgaWYgZGVjbGFyZWQgQ0RBVEEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgQXR0VmFsdWUgcGFyc2VkIG9yIE5VTEwuIFRoZSB2YWx1ZSBoYXMgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUF0dHJpYnV0ZSIgaWQ9InhtbFBhcnNlQXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlQXR0cmlidXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBbNDFdIEF0dHJpYnV0ZSA6Oj0gTmFtZSBFcSBBdHRWYWx1ZSBbIFdGQzogTm8gRXh0ZXJuYWwgRW50aXR5IFJlZmVyZW5jZXMgXSBBdHRyaWJ1dGUgdmFsdWVzIGNhbm5vdCBjb250YWluIGRpcmVjdCBvciBpbmRpcmVjdCBlbnRpdHkgcmVmZXJlbmNlcyB0byBleHRlcm5hbCBlbnRpdGllcy4gWyBXRkM6IE5vICZsdDsgaW4gQXR0cmlidXRlIFZhbHVlcyBdIFRoZSByZXBsYWNlbWVudCB0ZXh0IG9mIGFueSBlbnRpdHkgcmVmZXJyZWQgdG8gZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbiBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlIChvdGhlciB0aGFuICImYW1wO2x0OyIpIG11c3Qgbm90IGNvbnRhaW4gYSAmbHQ7LiBbIFZDOiBBdHRyaWJ1dGUgVmFsdWUgVHlwZSBdIFRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG11c3QgaGF2ZSBiZWVuIGRlY2xhcmVkOyB0aGUgdmFsdWUgbXVzdCBiZSBvZiB0aGUgdHlwZSBkZWNsYXJlZCBmb3IgaXQuIFsyNV0gRXEgOjo9IFM/ICc9JyBTPyBXaXRoIG5hbWVzcGFjZTogW05TIDExXSBBdHRyaWJ1dGUgOjo9IFFOYW1lIEVxIEF0dFZhbHVlIEFsc28gdGhlIGNhc2UgUU5hbWUgPT0geG1sbnM6Pz8/IGlzIGhhbmRsZWQgaW5kZXBlbmRlbnRseSBhcyBhIG5hbWVzcGFjZSBkZWZpbml0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lLCBhbmQgdGhlIHZhbHVlIGluICp2YWx1ZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsIiBpZD0ieG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD46IHBhcnNlIHRoZSBBdHRyaWJ1dGUgbGlzdCBkZWYgZm9yIGFuIGVsZW1lbnQgWzUyXSBBdHRsaXN0RGVjbCA6Oj0gJyZsdDshQVRUTElTVCcgUyBOYW1lIEF0dERlZiogUz8gJyZndDsnIFs1M10gQXR0RGVmIDo6PSBTIE5hbWUgUyBBdHRUeXBlIFMgRGVmYXVsdERlY2w8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiIGlkPSJ4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VBdHRyaWJ1dGVUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlQXR0cmlidXRlVHlwZQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+ICogdHJlZSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIHRoZSBBdHRyaWJ1dGUgbGlzdCBkZWYgZm9yIGFuIGVsZW1lbnQgWzU0XSBBdHRUeXBlIDo6PSBTdHJpbmdUeXBlIHwgVG9rZW5pemVkVHlwZSB8IEVudW1lcmF0ZWRUeXBlIFs1NV0gU3RyaW5nVHlwZSA6Oj0gJ0NEQVRBJyBbNTZdIFRva2VuaXplZFR5cGUgOjo9ICdJRCcgfCAnSURSRUYnIHwgJ0lEUkVGUycgfCAnRU5USVRZJyB8ICdFTlRJVElFUycgfCAnTk1UT0tFTicgfCAnTk1UT0tFTlMnIFZhbGlkaXR5IGNvbnN0cmFpbnRzIGZvciA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlcyBzeW50YXggYXJlIGNoZWNrZWQgaW4geG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSgpIFsgVkM6IElEIF0gVmFsdWVzIG9mIHR5cGUgSUQgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLiBBIG5hbWUgbXVzdCBub3QgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIGFuIFhNTCBkb2N1bWVudCBhcyBhIHZhbHVlIG9mIHRoaXMgdHlwZTsgaS5lLiwgSUQgdmFsdWVzIG11c3QgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGVsZW1lbnRzIHdoaWNoIGJlYXIgdGhlbS4gWyBWQzogT25lIElEIHBlciBFbGVtZW50IFR5cGUgXSBObyBlbGVtZW50IHR5cGUgbWF5IGhhdmUgbW9yZSB0aGFuIG9uZSBJRCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHNwZWNpZmllZC4gWyBWQzogSUQgQXR0cmlidXRlIERlZmF1bHQgXSBBbiBJRCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG11c3QgaGF2ZSBhIGRlY2xhcmVkIGRlZmF1bHQgb2YgI0lNUExJRUQgb3IgI1JFUVVJUkVELiBbIFZDOiBJRFJFRiBdIFZhbHVlcyBvZiB0eXBlIElEUkVGIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgYW5kIHZhbHVlcyBvZiB0eXBlIElEUkVGUyBtdXN0IG1hdGNoIE5hbWVzOyBlYWNoIElEUkVGIE5hbWUgbXVzdCBtYXRjaCB0aGUgdmFsdWUgb2YgYW4gSUQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvbiBzb21lIGVsZW1lbnQgaW4gdGhlIFhNTCBkb2N1bWVudDsgaS5lLiBJRFJFRiB2YWx1ZXMgbXVzdCBtYXRjaCB0aGUgdmFsdWUgb2Ygc29tZSBJRCBhdHRyaWJ1dGUuIFsgVkM6IEVudGl0eSBOYW1lIF0gVmFsdWVzIG9mIHR5cGUgRU5USVRZIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgdmFsdWVzIG9mIHR5cGUgRU5USVRJRVMgbXVzdCBtYXRjaCBOYW1lczsgZWFjaCBFbnRpdHkgTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJlZCBpbiB0aGUgRFRELiBbIFZDOiBOYW1lIFRva2VuIF0gVmFsdWVzIG9mIHR5cGUgTk1UT0tFTiBtdXN0IG1hdGNoIHRoZSBObXRva2VuIHByb2R1Y3Rpb247IHZhbHVlcyBvZiB0eXBlIE5NVE9LRU5TIG11c3QgbWF0Y2ggTm10b2tlbnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW51bWVyYXRpb24gdHJlZSBidWlsdCB3aGlsZSBwYXJzaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0eXBlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDRFNlY3QiIGlkPSJ4bWxQYXJzZUNEU2VjdCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUNEU2VjdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VDRFNlY3QJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+UGFyc2UgZXNjYXBlZCBwdXJlIHJhdyBjb250ZW50LiBbMThdIENEU2VjdCA6Oj0gQ0RTdGFydCBDRGF0YSBDREVuZCBbMTldIENEU3RhcnQgOjo9ICcmbHQ7IVtDREFUQVsnIFsyMF0gRGF0YSA6Oj0gKENoYXIqIC0gKENoYXIqICddXSZndDsnIENoYXIqKSkgWzIxXSBDREVuZCA6Oj0gJ11dJmd0Oyc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUNoYXJEYXRhIiBpZD0ieG1sUGFyc2VDaGFyRGF0YSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUNoYXJEYXRhPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUNoYXJEYXRhCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgY2RhdGEpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhIENoYXJEYXRhIHNlY3Rpb24uIGlmIHdlIGFyZSB3aXRoaW4gYSBDREFUQSBzZWN0aW9uICddXSZndDsnIG1hcmtzIGFuIGVuZCBvZiBzZWN0aW9uLiBUaGUgcmlnaHQgYW5nbGUgYnJhY2tldCAoJmd0OykgbWF5IGJlIHJlcHJlc2VudGVkIHVzaW5nIHRoZSBzdHJpbmcgIiZhbXA7Z3Q7IiwgYW5kIG11c3QsIGZvciBjb21wYXRpYmlsaXR5LCBiZSBlc2NhcGVkIHVzaW5nICImYW1wO2d0OyIgb3IgYSBjaGFyYWN0ZXIgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiB3aGVuIGl0IGFwcGVhcnMgaW4gdGhlIHN0cmluZyAiXV0mZ3Q7IiBpbiBjb250ZW50LCB3aGVuIHRoYXQgc3RyaW5nIGlzIG5vdCBtYXJraW5nIHRoZSBlbmQgb2YgYSBDREFUQSBzZWN0aW9uLiBbMTRdIENoYXJEYXRhIDo6PSBbXiZsdDsmYW1wO10qIC0gKFteJmx0OyZhbXA7XSogJ11dJmd0OycgW14mbHQ7JmFtcDtdKik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNkYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnQgaW5kaWNhdGluZyB3aGV0aGVyIHdlIGFyZSB3aXRoaW4gYSBDREFUQSBzZWN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDaGFyUmVmIiBpZD0ieG1sUGFyc2VDaGFyUmVmIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlQ2hhclJlZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZUNoYXJSZWYJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgUmVmZXJlbmNlIGRlY2xhcmF0aW9ucyBbNjZdIENoYXJSZWYgOjo9ICcmYW1wOyMnIFswLTldKyAnOycgfCAnJmFtcDsjeCcgWzAtOWEtZkEtRl0rICc7JyBbIFdGQzogTGVnYWwgQ2hhcmFjdGVyIF0gQ2hhcmFjdGVycyByZWZlcnJlZCB0byB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IG1hdGNoIHRoZSBwcm9kdWN0aW9uIGZvciBDaGFyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIHBhcnNlZCAoYXMgYW4gaW50KSwgMCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VDb21tZW50IiBpZD0ieG1sUGFyc2VDb21tZW50Ij48L2E+RnVuY3Rpb246IHhtbFBhcnNlQ29tbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VDb21tZW50CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPlNraXAgYW4gWE1MIChTR01MKSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gJmx0OyEtLSAuLi4uIC0tJmd0OyBUaGUgc3BlYyBzYXlzIHRoYXQgIkZvciBjb21wYXRpYmlsaXR5LCB0aGUgc3RyaW5nICItLSIgKGRvdWJsZS1oeXBoZW4pIG11c3Qgbm90IG9jY3VyIHdpdGhpbiBjb21tZW50cy4gIiBbMTVdIENvbW1lbnQgOjo9ICcmbHQ7IS0tJyAoKENoYXIgLSAnLScpIHwgKCctJyAoQ2hhciAtICctJykpKSogJy0tJmd0Oyc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUNvbnRlbnQiIGlkPSJ4bWxQYXJzZUNvbnRlbnQiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VDb250ZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUNvbnRlbnQJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYSBjb250ZW50OiBbNDNdIGNvbnRlbnQgOjo9IChlbGVtZW50IHwgQ2hhckRhdGEgfCBSZWZlcmVuY2UgfCBDRFNlY3QgfCBQSSB8IENvbW1lbnQpKjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRGVmYXVsdERlY2wiIGlkPSJ4bWxQYXJzZURlZmF1bHREZWNsIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlRGVmYXVsdERlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VEZWZhdWx0RGVjbAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZhdWx0IGRlY2xhcmF0aW9uIFs2MF0gRGVmYXVsdERlY2wgOjo9ICcjUkVRVUlSRUQnIHwgJyNJTVBMSUVEJyB8ICgoJyNGSVhFRCcgUyk/IEF0dFZhbHVlKSBbIFZDOiBSZXF1aXJlZCBBdHRyaWJ1dGUgXSBpZiB0aGUgZGVmYXVsdCBkZWNsYXJhdGlvbiBpcyB0aGUga2V5d29yZCAjUkVRVUlSRUQsIHRoZW4gdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGFsbCBlbGVtZW50cyBvZiB0aGUgdHlwZSBpbiB0aGUgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uIFsgVkM6IEF0dHJpYnV0ZSBEZWZhdWx0IExlZ2FsIF0gVGhlIGRlY2xhcmVkIGRlZmF1bHQgdmFsdWUgbXVzdCBtZWV0IHRoZSBsZXhpY2FsIGNvbnN0cmFpbnRzIG9mIHRoZSBkZWNsYXJlZCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUgYy5mLiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2woKSBbIFZDOiBGaXhlZCBBdHRyaWJ1dGUgRGVmYXVsdCBdIGlmIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaGFzIGEgZGVmYXVsdCB2YWx1ZSBkZWNsYXJlZCB3aXRoIHRoZSAjRklYRUQga2V5d29yZCwgaW5zdGFuY2VzIG9mIHRoYXQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBtdXN0IG1hdGNoIHRoZSBkZWZhdWx0IHZhbHVlLiBbIFdGQzogTm8gJmx0OyBpbiBBdHRyaWJ1dGUgVmFsdWVzIF0gaGFuZGxlZCBpbiB4bWxQYXJzZUF0dFZhbHVlKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5SZWNlaXZlIGEgcG9zc2libGUgZml4ZWQgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlhNTF9BVFRSSUJVVEVfTk9ORSwgWE1MX0FUVFJJQlVURV9SRVFVSVJFRCwgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0lNUExJRUQiPlhNTF9BVFRSSUJVVEVfSU1QTElFRDwvYT4gb3IgWE1MX0FUVFJJQlVURV9GSVhFRC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZURvY1R5cGVEZWNsIiBpZD0ieG1sUGFyc2VEb2NUeXBlRGVjbCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZURvY1R5cGVEZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZURvY1R5cGVEZWNsCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYSBET0NUWVBFIGRlY2xhcmF0aW9uIFsyOF0gZG9jdHlwZWRlY2wgOjo9ICcmbHQ7IURPQ1RZUEUnIFMgTmFtZSAoUyBFeHRlcm5hbElEKT8gUz8gKCdbJyAobWFya3VwZGVjbCB8IFBFUmVmZXJlbmNlIHwgUykqICddJyBTPyk/ICcmZ3Q7JyBbIFZDOiBSb290IEVsZW1lbnQgVHlwZSBdIFRoZSBOYW1lIGluIHRoZSBkb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uIG11c3QgbWF0Y2ggdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgcm9vdCBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRWxlbWVudCIgaWQ9InhtbFBhcnNlRWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlRWxlbWVudAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZWxlbWVudCwgdGhpcyBpcyBoaWdobHkgcmVjdXJzaXZlIFszOV0gZWxlbWVudCA6Oj0gRW1wdHlFbGVtVGFnIHwgU1RhZyBjb250ZW50IEVUYWcgWyBXRkM6IEVsZW1lbnQgVHlwZSBNYXRjaCBdIFRoZSBOYW1lIGluIGFuIGVsZW1lbnQncyBlbmQtdGFnIG11c3QgbWF0Y2ggdGhlIGVsZW1lbnQgdHlwZSBpbiB0aGUgc3RhcnQtdGFnLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wiIGlkPSJ4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4JeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIGludCBpbnB1dGNoayk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIHRoZSBkZWNsYXJhdGlvbiBmb3IgYSBNaXhlZCBFbGVtZW50IGNvbnRlbnQgVGhlIGxlYWRpbmcgJygnIGFuZCBzcGFjZXMgaGF2ZSBiZWVuIHNraXBwZWQgaW4gPGEgaHJlZj0ibGlieG1sLXBhcnNlckludGVybmFscy5odG1sI3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvYT4gWzQ3XSBjaGlsZHJlbiA6Oj0gKGNob2ljZSB8IHNlcSkgKCc/JyB8ICcqJyB8ICcrJyk/IFs0OF0gY3AgOjo9IChOYW1lIHwgY2hvaWNlIHwgc2VxKSAoJz8nIHwgJyonIHwgJysnKT8gWzQ5XSBjaG9pY2UgOjo9ICcoJyBTPyBjcCAoIFM/ICd8JyBTPyBjcCApKiBTPyAnKScgWzUwXSBzZXEgOjo9ICcoJyBTPyBjcCAoIFM/ICcsJyBTPyBjcCApKiBTPyAnKScgWyBWQzogUHJvcGVyIEdyb3VwL1BFIE5lc3RpbmcgXSBhcHBsaWVzIHRvIFs0OV0gYW5kIFs1MF0gVE9ETyBQYXJhbWV0ZXItZW50aXR5IHJlcGxhY2VtZW50IHRleHQgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgd2l0aCBwYXJlbnRoZXNpemVkIGdyb3Vwcy4gVGhhdCBpcyB0byBzYXksIGlmIGVpdGhlciBvZiB0aGUgb3BlbmluZyBvciBjbG9zaW5nIHBhcmVudGhlc2VzIGluIGEgY2hvaWNlLCBzZXEsIG9yIE1peGVkIGNvbnN0cnVjdCBpcyBjb250YWluZWQgaW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIGEgcGFyYW1ldGVyIGVudGl0eSwgYm90aCBtdXN0IGJlIGNvbnRhaW5lZCBpbiB0aGUgc2FtZSByZXBsYWNlbWVudCB0ZXh0LiBGb3IgaW50ZXJvcGVyYWJpbGl0eSwgaWYgYSBwYXJhbWV0ZXItZW50aXR5IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gYXBwZWFycyBpbiBhIGNob2ljZSwgc2VxLCBvciBNaXhlZCBjb25zdHJ1Y3QsIGl0cyByZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBub3QgYmUgZW1wdHksIGFuZCBuZWl0aGVyIHRoZSBmaXJzdCBub3IgbGFzdCBub24tYmxhbmsgY2hhcmFjdGVyIG9mIHRoZSByZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBiZSBhIGNvbm5lY3RvciAofCBvciAsKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0Y2hrPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgdXNlZCBmb3IgdGhlIGN1cnJlbnQgZW50aXR5LCBuZWVkZWQgZm9yIGJvdW5kYXJ5IGNoZWNrczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRyZWUgb2YgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGRlc2NyaWJpbmcgdGhlIGVsZW1lbnQgaGllcmFyY2h5LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIiBpZD0ieG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+ICogcmVzdWx0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgdGhlIGRlY2xhcmF0aW9uIGZvciBhbiBFbGVtZW50IGNvbnRlbnQgZWl0aGVyIE1peGVkIG9yIENoaWxkcmVuLCB0aGUgY2FzZXMgRU1QVFkgYW5kIEFOWSBhcmUgaGFuZGxlZCBkaXJlY3RseSBpbiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50RGVjbCI+eG1sUGFyc2VFbGVtZW50RGVjbDwvYT4gWzQ2XSBjb250ZW50c3BlYyA6Oj0gJ0VNUFRZJyB8ICdBTlknIHwgTWl4ZWQgfCBjaGlsZHJlbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQgYmVpbmcgZGVmaW5lZC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlc3VsdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEVsZW1lbnQgQ29udGVudCBwb2ludGVyIHdpbGwgYmUgc3RvcmVkIGhlcmUgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBvZiBlbGVtZW50IGNvbnRlbnQgWE1MX0VMRU1FTlRfVFlQRV94eHg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUVsZW1lbnREZWNsIiBpZD0ieG1sUGFyc2VFbGVtZW50RGVjbCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUVsZW1lbnREZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlRWxlbWVudERlY2wJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBFbGVtZW50IGRlY2xhcmF0aW9uLiBbNDVdIGVsZW1lbnRkZWNsIDo6PSAnJmx0OyFFTEVNRU5UJyBTIE5hbWUgUyBjb250ZW50c3BlYyBTPyAnJmd0OycgWyBWQzogVW5pcXVlIEVsZW1lbnQgVHlwZSBEZWNsYXJhdGlvbiBdIE5vIGVsZW1lbnQgdHlwZSBtYXkgYmUgZGVjbGFyZWQgbW9yZSB0aGFuIG9uY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCIgaWQ9InhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgl4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCQkgaW50IGlucHV0Y2hrKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgdGhlIGRlY2xhcmF0aW9uIGZvciBhIE1peGVkIEVsZW1lbnQgY29udGVudCBUaGUgbGVhZGluZyAnKCcgYW5kIHNwYWNlcyBoYXZlIGJlZW4gc2tpcHBlZCBpbiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wiPnhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsPC9hPiBbNTFdIE1peGVkIDo6PSAnKCcgUz8gJyNQQ0RBVEEnIChTPyAnfCcgUz8gTmFtZSkqIFM/ICcpKicgfCAnKCcgUz8gJyNQQ0RBVEEnIFM/ICcpJyBbIFZDOiBQcm9wZXIgR3JvdXAvUEUgTmVzdGluZyBdIGFwcGxpZXMgdG8gWzUxXSB0b28gKHNlZSBbNDldKSBbIFZDOiBObyBEdXBsaWNhdGUgVHlwZXMgXSBUaGUgc2FtZSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiBhIHNpbmdsZSBtaXhlZC1jb250ZW50IGRlY2xhcmF0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXRjaGs8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCB1c2VkIGZvciB0aGUgY3VycmVudCBlbnRpdHksIG5lZWRlZCBmb3IgYm91bmRhcnkgY2hlY2tzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGlzdCBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGRlc2NyaWJpbmcgdGhlIGVsZW1lbnQgY2hvaWNlczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRW5jTmFtZSIgaWQ9InhtbFBhcnNlRW5jTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUVuY05hbWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZUVuY05hbWUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSB0aGUgWE1MIGVuY29kaW5nIG5hbWUgWzgxXSBFbmNOYW1lIDo6PSBbQS1aYS16XSAoW0EtWmEtejAtOS5fXSB8ICctJykqPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSB2YWx1ZSBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbmNvZGluZ0RlY2wiIGlkPSJ4bWxQYXJzZUVuY29kaW5nRGVjbCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUVuY29kaW5nRGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlRW5jb2RpbmdEZWNsCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSB0aGUgWE1MIGVuY29kaW5nIGRlY2xhcmF0aW9uIFs4MF0gRW5jb2RpbmdEZWNsIDo6PSBTICdlbmNvZGluZycgRXEgKCciJyBFbmNOYW1lICciJyB8ICInIiBFbmNOYW1lICInIikgdGhpcyBzZXR1cHMgdGhlIGNvbnZlcnNpb24gZmlsdGVycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyB2YWx1ZSBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbmRUYWciIGlkPSJ4bWxQYXJzZUVuZFRhZyI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUVuZFRhZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VFbmRUYWcJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gZW5kIG9mIHRhZyBbNDJdIEVUYWcgOjo9ICcmbHQ7LycgTmFtZSBTPyAnJmd0OycgV2l0aCBuYW1lc3BhY2UgW05TIDldIEVUYWcgOjo9ICcmbHQ7LycgUU5hbWUgUz8gJyZndDsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbnRpdHlEZWNsIiBpZD0ieG1sUGFyc2VFbnRpdHlEZWNsIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlRW50aXR5RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VFbnRpdHlEZWNsCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgJmx0OyFFTlRJVFkgZGVjbGFyYXRpb25zIFs3MF0gRW50aXR5RGVjbCA6Oj0gR0VEZWNsIHwgUEVEZWNsIFs3MV0gR0VEZWNsIDo6PSAnJmx0OyFFTlRJVFknIFMgTmFtZSBTIEVudGl0eURlZiBTPyAnJmd0OycgWzcyXSBQRURlY2wgOjo9ICcmbHQ7IUVOVElUWScgUyAnJScgUyBOYW1lIFMgUEVEZWYgUz8gJyZndDsnIFs3M10gRW50aXR5RGVmIDo6PSBFbnRpdHlWYWx1ZSB8IChFeHRlcm5hbElEIE5EYXRhRGVjbD8pIFs3NF0gUEVEZWYgOjo9IEVudGl0eVZhbHVlIHwgRXh0ZXJuYWxJRCBbNzZdIE5EYXRhRGVjbCA6Oj0gUyAnTkRBVEEnIFMgTmFtZSBbIFZDOiBOb3RhdGlvbiBEZWNsYXJlZCBdIFRoZSBOYW1lIG11c3QgbWF0Y2ggdGhlIGRlY2xhcmVkIG5hbWUgb2YgYSBub3RhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUVudGl0eVJlZiIgaWQ9InhtbFBhcnNlRW50aXR5UmVmIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlRW50aXR5UmVmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnRpdHlQdHIiPnhtbEVudGl0eVB0cjwvYT4JeG1sUGFyc2VFbnRpdHlSZWYJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIEVOVElUWSByZWZlcmVuY2VzIGRlY2xhcmF0aW9ucyBbNjhdIEVudGl0eVJlZiA6Oj0gJyZhbXA7JyBOYW1lICc7JyBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0gSW4gYSBkb2N1bWVudCB3aXRob3V0IGFueSBEVEQsIGEgZG9jdW1lbnQgd2l0aCBvbmx5IGFuIGludGVybmFsIERURCBzdWJzZXQgd2hpY2ggY29udGFpbnMgbm8gcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2VzLCBvciBhIGRvY3VtZW50IHdpdGggInN0YW5kYWxvbmU9J3llcyciLCB0aGUgTmFtZSBnaXZlbiBpbiB0aGUgZW50aXR5IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gbXVzdCBtYXRjaCB0aGF0IGluIGFuIGVudGl0eSBkZWNsYXJhdGlvbiwgZXhjZXB0IHRoYXQgd2VsbC1mb3JtZWQgZG9jdW1lbnRzIG5lZWQgbm90IGRlY2xhcmUgYW55IG9mIHRoZSBmb2xsb3dpbmcgZW50aXRpZXM6IGFtcCwgbHQsIGd0LCBhcG9zLCBxdW90LiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiB0byBpdC4gU2ltaWxhcmx5LCB0aGUgZGVjbGFyYXRpb24gb2YgYSBnZW5lcmFsIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gaXQgd2hpY2ggYXBwZWFycyBpbiBhIGRlZmF1bHQgdmFsdWUgaW4gYW4gYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uIE5vdGUgdGhhdCBpZiBlbnRpdGllcyBhcmUgZGVjbGFyZWQgaW4gdGhlIGV4dGVybmFsIHN1YnNldCBvciBpbiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMsIGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yIGlzIG5vdCBvYmxpZ2F0ZWQgdG8gcmVhZCBhbmQgcHJvY2VzcyB0aGVpciBkZWNsYXJhdGlvbnM7IGZvciBzdWNoIGRvY3VtZW50cywgdGhlIHJ1bGUgdGhhdCBhbiBlbnRpdHkgbXVzdCBiZSBkZWNsYXJlZCBpcyBhIHdlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50IG9ubHkgaWYgc3RhbmRhbG9uZT0neWVzJy4gWyBXRkM6IFBhcnNlZCBFbnRpdHkgXSBBbiBlbnRpdHkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBtdXN0IG5vdCBjb250YWluIHRoZSBuYW1lIG9mIGFuIHVucGFyc2VkIGVudGl0eTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW50aXR5UHRyIj54bWxFbnRpdHlQdHI8L2E+IGlmIGZvdW5kLCBvciBOVUxMIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUVudGl0eVZhbHVlIiBpZD0ieG1sUGFyc2VFbnRpdHlWYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUVudGl0eVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VFbnRpdHlWYWx1ZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogb3JpZyk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGEgdmFsdWUgZm9yIEVOVElUWSBkZWNsYXJhdGlvbnMgWzldIEVudGl0eVZhbHVlIDo6PSAnIicgKFteJSZhbXA7Il0gfCBQRVJlZmVyZW5jZSB8IFJlZmVyZW5jZSkqICciJyB8ICInIiAoW14lJmFtcDsnXSB8IFBFUmVmZXJlbmNlIHwgUmVmZXJlbmNlKSogIiciPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcmlnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiBub24tTlVMTCBzdG9yZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIGVudGl0eSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEVudGl0eVZhbHVlIHBhcnNlZCB3aXRoIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gc3Vic3RpdHV0ZWQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRW51bWVyYXRlZFR5cGUiIGlkPSJ4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VFbnVtZXJhdGVkVHlwZQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+ICogdHJlZSk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIEVudW1lcmF0ZWQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0eXBlLiBbNTddIEVudW1lcmF0ZWRUeXBlIDo6PSBOb3RhdGlvblR5cGUgfCBFbnVtZXJhdGlvbiBbNThdIE5vdGF0aW9uVHlwZSA6Oj0gJ05PVEFUSU9OJyBTICcoJyBTPyBOYW1lIChTPyAnfCcgUz8gTmFtZSkqIFM/ICcpJzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudW1lcmF0aW9uIHRyZWUgYnVpbHQgd2hpbGUgcGFyc2luZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCNYTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OIj5YTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OPC9hPiBvciA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI1hNTF9BVFRSSUJVVEVfTk9UQVRJT04iPlhNTF9BVFRSSUJVVEVfTk9UQVRJT048L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VFbnVtZXJhdGlvblR5cGUiIGlkPSJ4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUVudW1lcmF0aW9uVHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPgl4bWxQYXJzZUVudW1lcmF0aW9uVHlwZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gRW51bWVyYXRpb24gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0eXBlLiBbNTldIEVudW1lcmF0aW9uIDo6PSAnKCcgUz8gTm10b2tlbiAoUz8gJ3wnIFM/IE5tdG9rZW4pKiBTPyAnKScgWyBWQzogRW51bWVyYXRpb24gXSBWYWx1ZXMgb2YgdGhpcyB0eXBlIG11c3QgbWF0Y2ggb25lIG9mIHRoZSBObXRva2VuIHRva2VucyBpbiB0aGUgZGVjbGFyYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnVtZXJhdGlvbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHRyZWUgYnVpbHQgd2hpbGUgcGFyc2luZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlRXh0ZXJuYWxJRCIgaWQ9InhtbFBhcnNlRXh0ZXJuYWxJRCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUV4dGVybmFsSUQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZUV4dGVybmFsSUQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHB1YmxpY0lELCA8YnIgLz4JCQkJCSBpbnQgc3RyaWN0KTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYW4gRXh0ZXJuYWwgSUQgb3IgYSBQdWJsaWMgSUQgTk9URTogUHJvZHVjdGlvbnMgWzc1XSBhbmQgWzgzXSBpbnRlcmFjdCBiYWRseSBzaW5jZSBbNzVdIGNhbiBnZW5lcmF0ZSAnUFVCTElDJyBTIFB1YmlkTGl0ZXJhbCBTIFN5c3RlbUxpdGVyYWwgWzc1XSBFeHRlcm5hbElEIDo6PSAnU1lTVEVNJyBTIFN5c3RlbUxpdGVyYWwgfCAnUFVCTElDJyBTIFB1YmlkTGl0ZXJhbCBTIFN5c3RlbUxpdGVyYWwgWzgzXSBQdWJsaWNJRCA6Oj0gJ1BVQkxJQycgUyBQdWJpZExpdGVyYWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmxpY0lEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHhtbENoYXIqKiByZWNlaXZpbmcgUHViaWRMaXRlcmFsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmluZGljYXRlIHdoZXRoZXIgd2Ugc2hvdWxkIHJlc3RyaWN0IHBhcnNpbmcgdG8gb25seSBwcm9kdWN0aW9uIFs3NV0sIHNlZSBOT1RFIGJlbG93PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb24gcmV0dXJucyBTeXN0ZW1MaXRlcmFsIGFuZCBpbiB0aGUgc2Vjb25kIGNhc2UgcHVibGljSUQgcmVjZWl2ZXMgUHViaWRMaXRlcmFsLCBpcyBzdHJpY3QgaXMgb2ZmIGl0IGlzIHBvc3NpYmxlIHRvIHJldHVybiBOVUxMIGFuZCBoYXZlIHB1YmxpY0lEIHNldC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZUV4dGVybmFsU3Vic2V0IiBpZD0ieG1sUGFyc2VFeHRlcm5hbFN1YnNldCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZUV4dGVybmFsU3Vic2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZUV4dGVybmFsU3Vic2V0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBFeHRlcm5hbElELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIE1hcmt1cCBkZWNsYXJhdGlvbnMgZnJvbSBhbiBleHRlcm5hbCBzdWJzZXQgWzMwXSBleHRTdWJzZXQgOjo9IHRleHREZWNsPyBleHRTdWJzZXREZWNsIFszMV0gZXh0U3Vic2V0RGVjbCA6Oj0gKG1hcmt1cGRlY2wgfCBjb25kaXRpb25hbFNlY3QgfCBQRVJlZmVyZW5jZSB8IFMpICo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PkV4dGVybmFsSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRlcm5hbCBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5TeXN0ZW1JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyIChvciBVUkwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VNYXJrdXBEZWNsIiBpZD0ieG1sUGFyc2VNYXJrdXBEZWNsIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlTWFya3VwRGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VNYXJrdXBEZWNsCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgTWFya3VwIGRlY2xhcmF0aW9ucyBbMjldIG1hcmt1cGRlY2wgOjo9IGVsZW1lbnRkZWNsIHwgQXR0bGlzdERlY2wgfCBFbnRpdHlEZWNsIHwgTm90YXRpb25EZWNsIHwgUEkgfCBDb21tZW50IFsgVkM6IFByb3BlciBEZWNsYXJhdGlvbi9QRSBOZXN0aW5nIF0gUGFyYW1ldGVyLWVudGl0eSByZXBsYWNlbWVudCB0ZXh0IG11c3QgYmUgcHJvcGVybHkgbmVzdGVkIHdpdGggbWFya3VwIGRlY2xhcmF0aW9ucy4gVGhhdCBpcyB0byBzYXksIGlmIGVpdGhlciB0aGUgZmlyc3QgY2hhcmFjdGVyIG9yIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIG1hcmt1cCBkZWNsYXJhdGlvbiAobWFya3VwZGVjbCBhYm92ZSkgaXMgY29udGFpbmVkIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciBhIHBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlLCBib3RoIG11c3QgYmUgY29udGFpbmVkIGluIHRoZSBzYW1lIHJlcGxhY2VtZW50IHRleHQuIFsgV0ZDOiBQRXMgaW4gSW50ZXJuYWwgU3Vic2V0IF0gSW4gdGhlIGludGVybmFsIERURCBzdWJzZXQsIHBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBjYW4gb2NjdXIgb25seSB3aGVyZSBtYXJrdXAgZGVjbGFyYXRpb25zIGNhbiBvY2N1ciwgbm90IHdpdGhpbiBtYXJrdXAgZGVjbGFyYXRpb25zLiAoVGhpcyBkb2VzIG5vdCBhcHBseSB0byByZWZlcmVuY2VzIHRoYXQgb2NjdXIgaW4gZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIG9yIHRvIHRoZSBleHRlcm5hbCBzdWJzZXQuKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlTWlzYyIgaWQ9InhtbFBhcnNlTWlzYyI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZU1pc2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlTWlzYwkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgTWlzYyogb3B0aW9uYWwgZmllbGQuIFsyN10gTWlzYyA6Oj0gQ29tbWVudCB8IFBJIHwgUzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlTmFtZSIgaWQ9InhtbFBhcnNlTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZU5hbWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZU5hbWUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgbmFtZS4gWzRdIE5hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8ICc6JyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlciBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSogWzZdIE5hbWVzIDo6PSBOYW1lICgjeDIwIE5hbWUpKjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIE5hbWUgcGFyc2VkIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZU5hbWVzcGFjZSIgaWQ9InhtbFBhcnNlTmFtZXNwYWNlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlTmFtZXNwYWNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZU5hbWVzcGFjZQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnhtbFBhcnNlTmFtZXNwYWNlOiBwYXJzZSBzcGVjaWZpYyBQSSAnJmx0Oz9uYW1lc3BhY2UgLi4uJyBjb25zdHJ1Y3RzLiBUaGlzIGlzIHdoYXQgdGhlIG9sZGVyIHhtbC1uYW1lIFdvcmtpbmcgRHJhZnQgc3BlY2lmaWVkLCBhIGJ1bmNoIG9mIG90aGVyIHN0dWZmIG1heSBzdGlsbCByZWx5IG9uIGl0LCBzbyBzdXBwb3J0IGlzIHN0aWxsIGhlcmUgYXMgaWYgaXQgd2FzIGRlY2xhcmVkIG9uIHRoZSByb290IG9mIHRoZSBUcmVlOi0oIFRPRE86IHJlbW92ZSBmcm9tIGxpYnJhcnkgVG8gYmUgcmVtb3ZlZCBhdCBuZXh0IGRyb3Agb2YgYmluYXJ5IGNvbXBhdGliaWxpdHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZU5tdG9rZW4iIGlkPSJ4bWxQYXJzZU5tdG9rZW4iPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VObXRva2VuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VObXRva2VuCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIE5tdG9rZW4uIFs3XSBObXRva2VuIDo6PSAoTmFtZUNoYXIpKyBbOF0gTm10b2tlbnMgOjo9IE5tdG9rZW4gKCN4MjAgTm10b2tlbikqPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgTm10b2tlbiBwYXJzZWQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlTm90YXRpb25EZWNsIiBpZD0ieG1sUGFyc2VOb3RhdGlvbkRlY2wiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VOb3RhdGlvbkRlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlTm90YXRpb25EZWNsCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBbODJdIE5vdGF0aW9uRGVjbCA6Oj0gJyZsdDshTk9UQVRJT04nIFMgTmFtZSBTIChFeHRlcm5hbElEIHwgUHVibGljSUQpIFM/ICcmZ3Q7JyBIZW5jZSB0aGVyZSBpcyBhY3R1YWxseSAzIGNob2ljZXM6ICdQVUJMSUMnIFMgUHViaWRMaXRlcmFsICdQVUJMSUMnIFMgUHViaWRMaXRlcmFsIFMgU3lzdGVtTGl0ZXJhbCBhbmQgJ1NZU1RFTScgUyBTeXN0ZW1MaXRlcmFsIFNlZSB0aGUgTk9URSBvbiB4bWxQYXJzZUV4dGVybmFsSUQoKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZU5vdGF0aW9uVHlwZSIgaWQ9InhtbFBhcnNlTm90YXRpb25UeXBlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlTm90YXRpb25UeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+CXhtbFBhcnNlTm90YXRpb25UeXBlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBOb3RhdGlvbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUuIE5vdGU6IHRoZSBsZWFkaW5nICdOT1RBVElPTicgUyBwYXJ0IGhhcyBhbHJlYWR5IGJlaW5nIHBhcnNlZC4uLiBbNThdIE5vdGF0aW9uVHlwZSA6Oj0gJ05PVEFUSU9OJyBTICcoJyBTPyBOYW1lIChTPyAnfCcgUz8gTmFtZSkqIFM/ICcpJyBbIFZDOiBOb3RhdGlvbiBBdHRyaWJ1dGVzIF0gVmFsdWVzIG9mIHRoaXMgdHlwZSBtdXN0IG1hdGNoIG9uZSBvZiB0aGUgbm90YXRpb24gbmFtZXMgaW5jbHVkZWQgaW4gdGhlIGRlY2xhcmF0aW9uOyBhbGwgbm90YXRpb24gbmFtZXMgaW4gdGhlIGRlY2xhcmF0aW9uIG11c3QgYmUgZGVjbGFyZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm90YXRpb24gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0cmVlIGJ1aWx0IHdoaWxlIHBhcnNpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZVBFUmVmZXJlbmNlIiBpZD0ieG1sUGFyc2VQRVJlZmVyZW5jZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZVBFUmVmZXJlbmNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZVBFUmVmZXJlbmNlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgUEVSZWZlcmVuY2UgZGVjbGFyYXRpb25zIFRoZSBlbnRpdHkgY29udGVudCBpcyBoYW5kbGVkIGRpcmVjdGx5IGJ5IHB1c2hpbmcgaXQncyBjb250ZW50IGFzIGEgbmV3IGlucHV0IHN0cmVhbS4gWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnIFsgV0ZDOiBObyBSZWN1cnNpb24gXSBBIHBhcnNlZCBlbnRpdHkgbXVzdCBub3QgY29udGFpbiBhIHJlY3Vyc2l2ZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIGl0c2VsZiwgZWl0aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkuIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSBJbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4gaW50ZXJuYWwgRFREIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQgd2l0aCAic3RhbmRhbG9uZT0neWVzJyIsIC4uLiAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gaXQuLi4gWyBWQzogRW50aXR5IERlY2xhcmVkIF0gSW4gYSBkb2N1bWVudCB3aXRoIGFuIGV4dGVybmFsIHN1YnNldCBvciBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMgd2l0aCAic3RhbmRhbG9uZT0nbm8nIiwgLi4uIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiB0byBpdC4uLiBbIFdGQzogSW4gRFREIF0gUGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzIG1heSBvbmx5IGFwcGVhciBpbiB0aGUgRFRELiBOT1RFOiBtaXNsZWFkaW5nIGJ1dCB0aGlzIGlzIGhhbmRsZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VQSSIgaWQ9InhtbFBhcnNlUEkiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VQSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VQSQkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgUHJvY2Vzc2luZyBJbnN0cnVjdGlvbi4gWzE2XSBQSSA6Oj0gJyZsdDs/JyBQSVRhcmdldCAoUyAoQ2hhciogLSAoQ2hhciogJz8mZ3Q7JyBDaGFyKikpKT8gJz8mZ3Q7JyBUaGUgcHJvY2Vzc2luZyBpcyB0cmFuc2ZlcmVkIHRvIFNBWCBvbmNlIHBhcnNlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZVBJVGFyZ2V0IiBpZD0ieG1sUGFyc2VQSVRhcmdldCI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZVBJVGFyZ2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VQSVRhcmdldAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgdGhlIG5hbWUgb2YgYSBQSSBbMTddIFBJVGFyZ2V0IDo6PSBOYW1lIC0gKCgnWCcgfCAneCcpICgnTScgfCAnbScpICgnTCcgfCAnbCcpKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFBJVGFyZ2V0IG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlUHViaWRMaXRlcmFsIiBpZD0ieG1sUGFyc2VQdWJpZExpdGVyYWwiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VQdWJpZExpdGVyYWw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZVB1YmlkTGl0ZXJhbAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIHB1YmxpYyBsaXRlcmFsIFsxMl0gUHViaWRMaXRlcmFsIDo6PSAnIicgUHViaWRDaGFyKiAnIicgfCAiJyIgKFB1YmlkQ2hhciAtICInIikqICInIjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFB1YmlkTGl0ZXJhbCBwYXJzZWQgb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZVF1b3RlZFN0cmluZyIgaWQ9InhtbFBhcnNlUXVvdGVkU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlUXVvdGVkU3RyaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGFyc2VRdW90ZWRTdHJpbmcJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPlBhcnNlIGFuZCByZXR1cm4gYSBzdHJpbmcgYmV0d2VlbiBxdW90ZXMgb3IgZG91YmxlcXVvdGVzIFRPRE86IERlcHJlY2F0ZWQsIHRvIGJlIHJlbW92ZWQgYXQgbmV4dCBkcm9wIG9mIGJpbmFyeSBjb21wYXRpYmlsaXR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHBhcnNlciBvciBOVUxMLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlUmVmZXJlbmNlIiBpZD0ieG1sUGFyc2VSZWZlcmVuY2UiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VSZWZlcmVuY2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFBhcnNlUmVmZXJlbmNlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW5kIGhhbmRsZSBlbnRpdHkgcmVmZXJlbmNlcyBpbiBjb250ZW50LCBkZXBlbmRpbmcgb24gdGhlIFNBWCBpbnRlcmZhY2UsIHRoaXMgbWF5IGVuZC11cCBpbiBhIGNhbGwgdG8gY2hhcmFjdGVyKCkgaWYgdGhpcyBpcyBhIENoYXJSZWYsIGEgcHJlZGVmaW5lZCBlbnRpdHksIGlmIHRoZXJlIGlzIG5vIHJlZmVyZW5jZSgpIGNhbGxiYWNrLiBvciBpZiB0aGUgcGFyc2VyIHdhcyBhc2tlZCB0byBzd2l0Y2ggdG8gdGhhdCBtb2RlLiBbNjddIFJlZmVyZW5jZSA6Oj0gRW50aXR5UmVmIHwgQ2hhclJlZjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlU0REZWNsIiBpZD0ieG1sUGFyc2VTRERlY2wiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VTRERlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUGFyc2VTRERlY2wJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgdGhlIFhNTCBzdGFuZGFsb25lIGRlY2xhcmF0aW9uIFszMl0gU0REZWNsIDo6PSBTICdzdGFuZGFsb25lJyBFcSAoKCInIiAoJ3llcycgfCAnbm8nKSAiJyIpIHwgKCciJyAoJ3llcycgfCAnbm8nKSciJykpIFsgVkM6IFN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb24gXSBUT0RPIFRoZSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uIG11c3QgaGF2ZSB0aGUgdmFsdWUgIm5vIiBpZiBhbnkgZXh0ZXJuYWwgbWFya3VwIGRlY2xhcmF0aW9ucyBjb250YWluIGRlY2xhcmF0aW9ucyBvZjogLSBhdHRyaWJ1dGVzIHdpdGggZGVmYXVsdCB2YWx1ZXMsIGlmIGVsZW1lbnRzIHRvIHdoaWNoIHRoZXNlIGF0dHJpYnV0ZXMgYXBwbHkgYXBwZWFyIGluIHRoZSBkb2N1bWVudCB3aXRob3V0IHNwZWNpZmljYXRpb25zIG9mIHZhbHVlcyBmb3IgdGhlc2UgYXR0cmlidXRlcywgb3IgLSBlbnRpdGllcyAob3RoZXIgdGhhbiBhbXAsIGx0LCBndCwgYXBvcywgcXVvdCksIGlmIHJlZmVyZW5jZXMgdG8gdGhvc2UgZW50aXRpZXMgYXBwZWFyIGluIHRoZSBkb2N1bWVudCwgb3IgLSBhdHRyaWJ1dGVzIHdpdGggdmFsdWVzIHN1YmplY3QgdG8gbm9ybWFsaXphdGlvbiwgd2hlcmUgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXBwZWFycyBpbiB0aGUgZG9jdW1lbnQgd2l0aCBhIHZhbHVlIHdoaWNoIHdpbGwgY2hhbmdlIGFzIGEgcmVzdWx0IG9mIG5vcm1hbGl6YXRpb24sIG9yIC0gZWxlbWVudCB0eXBlcyB3aXRoIGVsZW1lbnQgY29udGVudCwgaWYgd2hpdGUgc3BhY2Ugb2NjdXJzIGRpcmVjdGx5IHdpdGhpbiBhbnkgaW5zdGFuY2Ugb2YgdGhvc2UgdHlwZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHN0YW5kYWxvbmU9InllcyIgMCBpZiBzdGFuZGFsb25lPSJubyIgLTIgaWYgc3RhbmRhbG9uZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIG1pc3Npbmcgb3IgaW52YWxpZCAoQSBzdGFuZGFsb25lIHZhbHVlIG9mIC0yIG1lYW5zIHRoYXQgdGhlIFhNTCBkZWNsYXJhdGlvbiB3YXMgZm91bmQsIGJ1dCBubyB2YWx1ZSB3YXMgc3BlY2lmaWVkIGZvciB0aGUgc3RhbmRhbG9uZSBhdHRyaWJ1dGUpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlU3RhcnRUYWciIGlkPSJ4bWxQYXJzZVN0YXJ0VGFnIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlU3RhcnRUYWc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxQYXJzZVN0YXJ0VGFnCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhIHN0YXJ0IG9mIHRhZyBlaXRoZXIgZm9yIHJ1bGUgZWxlbWVudCBvciBFbXB0eUVsZW1lbnQuIEluIGJvdGggY2FzZSB3ZSBkb24ndCBwYXJzZSB0aGUgdGFnIGNsb3NpbmcgY2hhcnMuIFs0MF0gU1RhZyA6Oj0gJyZsdDsnIE5hbWUgKFMgQXR0cmlidXRlKSogUz8gJyZndDsnIFsgV0ZDOiBVbmlxdWUgQXR0IFNwZWMgXSBObyA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWUgbWF5IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBzdGFydC10YWcgb3IgZW1wdHktZWxlbWVudCB0YWcuIFs0NF0gRW1wdHlFbGVtVGFnIDo6PSAnJmx0OycgTmFtZSAoUyBBdHRyaWJ1dGUpKiBTPyAnLyZndDsnIFsgV0ZDOiBVbmlxdWUgQXR0IFNwZWMgXSBObyA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWUgbWF5IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBzdGFydC10YWcgb3IgZW1wdHktZWxlbWVudCB0YWcuIFdpdGggbmFtZXNwYWNlOiBbTlMgOF0gU1RhZyA6Oj0gJyZsdDsnIFFOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICcmZ3Q7JyBbTlMgMTBdIEVtcHR5RWxlbWVudCA6Oj0gJyZsdDsnIFFOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICcvJmd0Oyc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWUgcGFyc2VkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VTeXN0ZW1MaXRlcmFsIiBpZD0ieG1sUGFyc2VTeXN0ZW1MaXRlcmFsIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlU3lzdGVtTGl0ZXJhbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlU3lzdGVtTGl0ZXJhbAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIExpdGVyYWwgWzExXSBTeXN0ZW1MaXRlcmFsIDo6PSAoJyInIFteIl0qICciJykgfCAoIiciIFteJ10qICInIik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBTeXN0ZW1MaXRlcmFsIHBhcnNlZCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VUZXh0RGVjbCIgaWQ9InhtbFBhcnNlVGV4dERlY2wiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VUZXh0RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VUZXh0RGVjbAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBkZWNsYXJhdGlvbiBoZWFkZXIgZm9yIGV4dGVybmFsIGVudGl0aWVzIFs3N10gVGV4dERlY2wgOjo9ICcmbHQ7P3htbCcgVmVyc2lvbkluZm8/IEVuY29kaW5nRGVjbCBTPyAnPyZndDsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VWZXJzaW9uSW5mbyIgaWQ9InhtbFBhcnNlVmVyc2lvbkluZm8iPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VWZXJzaW9uSW5mbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlVmVyc2lvbkluZm8JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIHRoZSBYTUwgdmVyc2lvbi4gWzI0XSBWZXJzaW9uSW5mbyA6Oj0gUyAndmVyc2lvbicgRXEgKCcgVmVyc2lvbk51bSAnIHwgIiBWZXJzaW9uTnVtICIpIFsyNV0gRXEgOjo9IFM/ICc9JyBTPzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZlcnNpb24gc3RyaW5nLCBlLmcuICIxLjAiPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VWZXJzaW9uTnVtIiBpZD0ieG1sUGFyc2VWZXJzaW9uTnVtIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlVmVyc2lvbk51bTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFBhcnNlVmVyc2lvbk51bQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgdGhlIFhNTCB2ZXJzaW9uIHZhbHVlLiBbMjZdIFZlcnNpb25OdW0gOjo9ICcxLicgWzAtOV0rIEluIHByYWN0aWNlIGFsbG93IFswLTldLlswLTldKyBhdCB0aGF0IGxldmVsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIGdpdmluZyB0aGUgWE1MIHZlcnNpb24gbnVtYmVyLCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VYTUxEZWNsIiBpZD0ieG1sUGFyc2VYTUxEZWNsIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlWE1MRGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VYTUxEZWNsCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBkZWNsYXJhdGlvbiBoZWFkZXIgWzIzXSBYTUxEZWNsIDo6PSAnJmx0Oz94bWwnIFZlcnNpb25JbmZvIEVuY29kaW5nRGVjbD8gU0REZWNsPyBTPyAnPyZndDsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UiIGlkPSJ4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPls2OV0gUEVSZWZlcmVuY2UgOjo9ICclJyBOYW1lICc7JyBbIFdGQzogTm8gUmVjdXJzaW9uIF0gQSBwYXJzZWQgZW50aXR5IG11c3Qgbm90IGNvbnRhaW4gYSByZWN1cnNpdmUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiB0byBpdHNlbGYsIGVpdGhlciBkaXJlY3RseSBvciBpbmRpcmVjdGx5LiBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0gSW4gYSBkb2N1bWVudCB3aXRob3V0IGFueSBEVEQsIGEgZG9jdW1lbnQgd2l0aCBvbmx5IGFuIGludGVybmFsIERURCBzdWJzZXQgd2hpY2ggY29udGFpbnMgbm8gcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2VzLCBvciBhIGRvY3VtZW50IHdpdGggInN0YW5kYWxvbmU9J3llcyciLCAuLi4gLi4uIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBwcmVjZWRlIGFueSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIGl0Li4uIFsgVkM6IEVudGl0eSBEZWNsYXJlZCBdIEluIGEgZG9jdW1lbnQgd2l0aCBhbiBleHRlcm5hbCBzdWJzZXQgb3IgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIHdpdGggInN0YW5kYWxvbmU9J25vJyIsIC4uLiAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gdG8gaXQuLi4gWyBXRkM6IEluIERURCBdIFBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBtYXkgb25seSBhcHBlYXIgaW4gdGhlIERURC4gTk9URTogbWlzbGVhZGluZyBidXQgdGhpcyBpcyBoYW5kbGVkLiBBIFBFUmVmZXJlbmNlIG1heSBoYXZlIGJlZW4gZGV0ZWN0ZWQgaW4gdGhlIGN1cnJlbnQgaW5wdXQgc3RyZWFtIHRoZSBoYW5kbGluZyBpcyBkb25lIGFjY29yZGluZ2x5IHRvIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjZW50cHJvYyBpLmUuIC0gSW5jbHVkZWQgaW4gbGl0ZXJhbCBpbiBlbnRpdHkgdmFsdWVzIC0gSW5jbHVkZWQgYXMgUGFyYW1ldGVyIEVudGl0eSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHdpdGhpbiBEVERzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIiBpZD0ieG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5UT0RPOiBSZW1vdmUsIG5vdyBkZXByZWNhdGVkIC4uLiB0aGUgdGVzdCBpcyBkb25lIGRpcmVjdGx5IGluIHRoZSBjb250ZW50IHBhcnNpbmcgcm91dGluZXMuIFs2N10gUmVmZXJlbmNlIDo6PSBFbnRpdHlSZWYgfCBDaGFyUmVmIFs2OF0gRW50aXR5UmVmIDo6PSAnJmFtcDsnIE5hbWUgJzsnIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSB0aGUgTmFtZSBnaXZlbiBpbiB0aGUgZW50aXR5IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gbXVzdCBtYXRjaCB0aGF0IGluIGFuIGVudGl0eSBkZWNsYXJhdGlvbiwgZXhjZXB0IHRoYXQgd2VsbC1mb3JtZWQgZG9jdW1lbnRzIG5lZWQgbm90IGRlY2xhcmUgYW55IG9mIHRoZSBmb2xsb3dpbmcgZW50aXRpZXM6IGFtcCwgbHQsIGd0LCBhcG9zLCBxdW90LiBbIFdGQzogUGFyc2VkIEVudGl0eSBdIEFuIGVudGl0eSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IG11c3Qgbm90IGNvbnRhaW4gdGhlIG5hbWUgb2YgYW4gdW5wYXJzZWQgZW50aXR5IFs2Nl0gQ2hhclJlZiA6Oj0gJyZhbXA7IycgWzAtOV0rICc7JyB8ICcmYW1wOyN4JyBbMC05YS1mQS1GXSsgJzsnIEEgUEVSZWZlcmVuY2UgbWF5IGhhdmUgYmVlbiBkZXRlY3RlZCBpbiB0aGUgY3VycmVudCBpbnB1dCBzdHJlYW0gdGhlIGhhbmRsaW5nIGlzIGRvbmUgYWNjb3JkaW5nbHkgdG8gaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNlbnRwcm9jPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRTaHJpbmsiIGlkPSJ4bWxQYXJzZXJJbnB1dFNocmluayI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJJbnB1dFNocmluazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VySW5wdXRTaHJpbmsJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW4pPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHJlbW92ZXMgdXNlZCBpbnB1dCBmb3IgdGhlIHBhcnNlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBvcElucHV0IiBpZD0ieG1sUG9wSW5wdXQiPjwvYT5GdW5jdGlvbjogeG1sUG9wSW5wdXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4JeG1sUG9wSW5wdXQJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+eG1sUG9wSW5wdXQ6IHRoZSBjdXJyZW50IGlucHV0IHBvaW50ZWQgYnkgY3R4dC0mZ3Q7aW5wdXQgY2FtZSB0byBhbiBlbmQgcG9wIGl0IGFuZCByZXR1cm4gdGhlIG5leHQgY2hhci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBpbiB0aGUgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQdXNoSW5wdXQiIGlkPSJ4bWxQdXNoSW5wdXQiPjwvYT5GdW5jdGlvbjogeG1sUHVzaElucHV0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFB1c2hJbnB1dAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpbnB1dCk8YnIgLz4KKzwvcHJlPjxwPnhtbFB1c2hJbnB1dDogc3dpdGNoIHRvIGEgbmV3IGlucHV0IHN0cmVhbSB3aGljaCBpcyBzdGFja2VkIG9uIHRvcCBvZiB0aGUgcHJldmlvdXMgb25lKHMpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgaW5wdXQgZnJhZ21lbnQgKGVudGl0eSwgWE1MIGZyYWdtZW50IC4uLikuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yIG9yIHRoZSBpbmRleCBpbiB0aGUgaW5wdXQgc3RhY2s8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2FuTmFtZSIgaWQ9InhtbFNjYW5OYW1lIj48L2E+RnVuY3Rpb246IHhtbFNjYW5OYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU2Nhbk5hbWUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5Ucmlja2VyeTogcGFyc2UgYW4gWE1MIG5hbWUgYnV0IHdpdGhvdXQgY29uc3VtaW5nIHRoZSBpbnB1dCBmbG93IE5lZWRlZCBmb3Igcm9sbGJhY2sgY2FzZXMuIFVzZWQgb25seSB3aGVuIHBhcnNpbmcgZW50aXRpZXMgcmVmZXJlbmNlcy4gVE9ETzogc2VlbXMgZGVwcmVjYXRlZCBub3csIG9ubHkgdXNlZCBpbiB0aGUgZGVmYXVsdCBwYXJ0IG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCN4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvYT4gWzRdIE5hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8ICc6JyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlciBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSogWzZdIE5hbWVzIDo6PSBOYW1lIChTIE5hbWUpKjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIE5hbWUgcGFyc2VkIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jIiBpZD0ieG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYyI+PC9hPkZ1bmN0aW9uOiB4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jCSg8YSBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwjeG1sRW50aXR5UmVmZXJlbmNlRnVuYyI+eG1sRW50aXR5UmVmZXJlbmNlRnVuYzwvYT4gZnVuYyk8YnIgLz4KKzwvcHJlPjxwPlNldCB0aGUgZnVuY3Rpb24gdG8gY2FsbCBjYWxsIGJhY2sgd2hlbiBhIHhtbCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGhhcyBiZWVuIG1hZGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIHZhbGlkIGZ1bmN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2tpcEJsYW5rQ2hhcnMiIGlkPSJ4bWxTa2lwQmxhbmtDaGFycyI+PC9hPkZ1bmN0aW9uOiB4bWxTa2lwQmxhbmtDaGFyczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTa2lwQmxhbmtDaGFycwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnNraXAgYWxsIGJsYW5rcyBjaGFyYWN0ZXIgZm91bmQgYXQgdGhhdCBwb2ludCBpbiB0aGUgaW5wdXQgc3RyZWFtcy4gSXQgcG9wcyB1cCBmaW5pc2hlZCBlbnRpdGllcyBpbiB0aGUgcHJvY2VzcyBpZiBhbGxvd2FibGUgYXQgdGhhdCBwb2ludC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHNwYWNlIGNoYXJzIHNraXBwZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTcGxpdFFOYW1lIiBpZD0ieG1sU3BsaXRRTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxTcGxpdFFOYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3BsaXRRTmFtZQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHByZWZpeCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFVURjggZW5jb2RlZCBYTUwgcXVhbGlmaWVkIG5hbWUgc3RyaW5nIFtOUyA1XSBRTmFtZSA6Oj0gKFByZWZpeCAnOicpPyBMb2NhbFBhcnQgW05TIDZdIFByZWZpeCA6Oj0gTkNOYW1lIFtOUyA3XSBMb2NhbFBhcnQgOjo9IE5DTmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWwgcGFydCwgYW5kIHByZWZpeCBpcyB1cGRhdGVkIHRvIGdldCB0aGUgUHJlZml4IGlmIGFueS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJpbmdDdXJyZW50Q2hhciIgaWQ9InhtbFN0cmluZ0N1cnJlbnRDaGFyIj48L2E+RnVuY3Rpb246IHhtbFN0cmluZ0N1cnJlbnRDaGFyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0cmluZ0N1cnJlbnRDaGFyCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGludCAqIGxlbik8YnIgLz4KKzwvcHJlPjxwPlRoZSBjdXJyZW50IGNoYXIgdmFsdWUsIGlmIHVzaW5nIFVURi04IHRoaXMgbWF5IGFjdHVhbGx5IHNwYW4gbXVsdGlwbGUgYnl0ZXMgaW4gdGhlIGlucHV0IGJ1ZmZlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY2hhcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIGNoYXIgcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgY2hhciB2YWx1ZSBhbmQgaXRzIGxlbmd0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmluZ0RlY29kZUVudGl0aWVzIiBpZD0ieG1sU3RyaW5nRGVjb2RlRW50aXRpZXMiPjwvYT5GdW5jdGlvbjogeG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTdHJpbmdEZWNvZGVFbnRpdGllcwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIGludCB3aGF0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gZW5kMiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDMpPGJyIC8+Cis8L3ByZT48cD5UYWtlcyBhIGVudGl0eSBzdHJpbmcgY29udGVudCBhbmQgcHJvY2VzcyB0byBkbyB0aGUgYWRlcXVhdGUgc3Vic3RpdHV0aW9ucy4gWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndoYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9QRVJFRiI+WE1MX1NVQlNUSVRVVEVfUEVSRUY8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4gVGhlIGNhbGxlciBtdXN0IGRlYWxsb2NhdGUgaXQgITwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIiBpZD0ieG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiPjwvYT5GdW5jdGlvbjogeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCQkgaW50IGxlbiwgPGJyIC8+CQkJCQkJIGludCB3aGF0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBlbmQyLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IGVuZDMpPGJyIC8+Cis8L3ByZT48cD5UYWtlcyBhIGVudGl0eSBzdHJpbmcgY29udGVudCBhbmQgcHJvY2VzcyB0byBkbyB0aGUgYWRlcXVhdGUgc3Vic3RpdHV0aW9ucy4gWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZyBsZW5ndGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndoYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9SRUYiPlhNTF9TVUJTVElUVVRFX1JFRjwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCNYTUxfU1VCU1RJVFVURV9QRVJFRiI+WE1MX1NVQlNUSVRVVEVfUEVSRUY8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kMzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4gVGhlIGNhbGxlciBtdXN0IGRlYWxsb2NhdGUgaXQgITwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN3aXRjaEVuY29kaW5nIiBpZD0ieG1sU3dpdGNoRW5jb2RpbmciPjwvYT5GdW5jdGlvbjogeG1sU3dpdGNoRW5jb2Rpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3dpdGNoRW5jb2RpbmcJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyIC8+Cis8L3ByZT48cD5jaGFuZ2UgdGhlIGlucHV0IGZ1bmN0aW9ucyB3aGVuIGRpc2NvdmVyaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgYSBnaXZlbiBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyB2YWx1ZSAobnVtYmVyKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN3aXRjaElucHV0RW5jb2RpbmciIGlkPSJ4bWxTd2l0Y2hJbnB1dEVuY29kaW5nIj48L2E+RnVuY3Rpb246IHhtbFN3aXRjaElucHV0RW5jb2Rpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3dpdGNoSW5wdXRFbmNvZGluZwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlucHV0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBoYW5kbGVyKTxiciAvPgorPC9wcmU+PHA+Y2hhbmdlIHRoZSBpbnB1dCBmdW5jdGlvbnMgd2hlbiBkaXNjb3ZlcmluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIGEgZ2l2ZW4gZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJlYW08L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhhbmRsZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3dpdGNoVG9FbmNvZGluZyIgaWQ9InhtbFN3aXRjaFRvRW5jb2RpbmciPjwvYT5GdW5jdGlvbjogeG1sU3dpdGNoVG9FbmNvZGluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTd2l0Y2hUb0VuY29kaW5nCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBoYW5kbGVyKTxiciAvPgorPC9wcmU+PHA+Y2hhbmdlIHRoZSBpbnB1dCBmdW5jdGlvbnMgd2hlbiBkaXNjb3ZlcmluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIGEgZ2l2ZW4gZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtcGF0dGVybi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YWE5NzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1wYXR0ZXJuLmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHBhdHRlcm4gZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSBwYXR0ZXJuIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCI+cGFyc2VySW50ZXJuYWxzPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwiPnJlbGF4bmc8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD5hbGxvd3MgdG8gY29tcGlsZSBhbmQgdGVzdCBwYXR0ZXJuIGV4cHJlc3Npb25zIGZvciBub2RlcyBlaXRoZXIgaW4gYSB0cmVlIG9yIGJhc2VkIG9uIGEgcGFyc2VyIHN0YXRlLiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxQYXR0ZXJuIj54bWxQYXR0ZXJuPC9hPjxiciAvPnN0cnVjdCBfeG1sUGF0dGVybgorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sUGF0dGVybkZsYWdzIj54bWxQYXR0ZXJuRmxhZ3M8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm4iPnhtbFBhdHRlcm48L2E+ICogPGEgbmFtZT0ieG1sUGF0dGVyblB0ciIgaWQ9InhtbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTdHJlYW1DdHh0Ij54bWxTdHJlYW1DdHh0PC9hPjxiciAvPnN0cnVjdCBfeG1sU3RyZWFtQ3R4dAorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHQiPnhtbFN0cmVhbUN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sU3RyZWFtQ3R4dFB0ciIgaWQ9InhtbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZVBhdHRlcm4iPnhtbEZyZWVQYXR0ZXJuPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZVBhdHRlcm5MaXN0Ij54bWxGcmVlUGF0dGVybkxpc3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVTdHJlYW1DdHh0Ij54bWxGcmVlU3RyZWFtQ3R4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFBhdHRlcm5Gcm9tUm9vdCI+eG1sUGF0dGVybkZyb21Sb290PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCI+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXR0ZXJuTWF0Y2giPnhtbFBhdHRlcm5NYXRjaDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXR0ZXJuTWF4RGVwdGgiPnhtbFBhdHRlcm5NYXhEZXB0aDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXR0ZXJuTWluRGVwdGgiPnhtbFBhdHRlcm5NaW5EZXB0aDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXR0ZXJuU3RyZWFtYWJsZSI+eG1sUGF0dGVyblN0cmVhbWFibGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4JPGEgaHJlZj0iI3htbFBhdHRlcm5jb21waWxlIj54bWxQYXR0ZXJuY29tcGlsZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdHRlcm4sIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdCI+eG1sRGljdDwvYT4gKiBkaWN0LCA8YnIgLz4JCQkJCSBpbnQgZmxhZ3MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU3RyZWFtUG9wIj54bWxTdHJlYW1Qb3A8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dFB0ciI+eG1sU3RyZWFtQ3R4dFB0cjwvYT4gc3RyZWFtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU3RyZWFtUHVzaCI+eG1sU3RyZWFtUHVzaDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW0sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU3RyZWFtUHVzaEF0dHIiPnhtbFN0cmVhbVB1c2hBdHRyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dFB0ciI+eG1sU3RyZWFtQ3R4dFB0cjwvYT4gc3RyZWFtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0cmVhbVB1c2hOb2RlIj54bWxTdHJlYW1QdXNoTm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMsIDxiciAvPgkJCQkJIGludCBub2RlVHlwZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0cmVhbVdhbnRzQW55Tm9kZSI+eG1sU3RyZWFtV2FudHNBbnlOb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sU3RyZWFtQ3R4dFB0ciI+eG1sU3RyZWFtQ3R4dFB0cjwvYT4gc3RyZWFtQ3R4dCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0ieG1sUGF0dGVybiIgaWQ9InhtbFBhdHRlcm4iPlN0cnVjdHVyZSB4bWxQYXR0ZXJuPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxQYXR0ZXJuPGJyIC8+c3RydWN0IF94bWxQYXR0ZXJuIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbFBhdHRlcm5GbGFncyIgaWQ9InhtbFBhdHRlcm5GbGFncyI+eG1sUGF0dGVybkZsYWdzPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sUGF0dGVybkZsYWdzIHsKKyAgICA8YSBuYW1lPSJYTUxfUEFUVEVSTl9ERUZBVUxUIiBpZD0iWE1MX1BBVFRFUk5fREVGQVVMVCI+WE1MX1BBVFRFUk5fREVGQVVMVDwvYT4gPSAwIDogc2ltcGxlIHBhdHRlcm4gbWF0Y2gKKyAgICA8YSBuYW1lPSJYTUxfUEFUVEVSTl9YUEFUSCIgaWQ9IlhNTF9QQVRURVJOX1hQQVRIIj5YTUxfUEFUVEVSTl9YUEFUSDwvYT4gPSAxIDogc3RhbmRhcmQgWFBhdGggcGF0dGVybgorICAgIDxhIG5hbWU9IlhNTF9QQVRURVJOX1hTU0VMIiBpZD0iWE1MX1BBVFRFUk5fWFNTRUwiPlhNTF9QQVRURVJOX1hTU0VMPC9hPiA9IDIgOiBYUGF0aCBzdWJzZXQgZm9yIHNjaGVtYSBzZWxlY3RvcgorICAgIDxhIG5hbWU9IlhNTF9QQVRURVJOX1hTRklFTEQiIGlkPSJYTUxfUEFUVEVSTl9YU0ZJRUxEIj5YTUxfUEFUVEVSTl9YU0ZJRUxEPC9hPiA9IDQgOiBYUGF0aCBzdWJzZXQgZm9yIHNjaGVtYSBmaWVsZAorfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFN0cmVhbUN0eHQiIGlkPSJ4bWxTdHJlYW1DdHh0Ij5TdHJ1Y3R1cmUgeG1sU3RyZWFtQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU3RyZWFtQ3R4dDxiciAvPnN0cnVjdCBfeG1sU3RyZWFtQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sRnJlZVBhdHRlcm4iIGlkPSJ4bWxGcmVlUGF0dGVybiI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlUGF0dGVybjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVBhdHRlcm4JCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTxiciAvPgorPC9wcmU+PHA+RnJlZSB1cCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBieSBAY29tcDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhTTFQgY29tcDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVQYXR0ZXJuTGlzdCIgaWQ9InhtbEZyZWVQYXR0ZXJuTGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlUGF0dGVybkxpc3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVQYXR0ZXJuTGlzdAkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdXAgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgYnkgYWxsIHRoZSBlbGVtZW50cyBvZiBAY29tcDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhTTFQgY29tcCBsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZVN0cmVhbUN0eHQiIGlkPSJ4bWxGcmVlU3RyZWFtQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlU3RyZWFtQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVN0cmVhbUN0eHQJCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHN0cmVhbSBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZWFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyZWFtIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXR0ZXJuRnJvbVJvb3QiIGlkPSJ4bWxQYXR0ZXJuRnJvbVJvb3QiPjwvYT5GdW5jdGlvbjogeG1sUGF0dGVybkZyb21Sb290PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhdHRlcm5Gcm9tUm9vdAkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIGlmIHRoZSBwYXR0ZXJuIG11c3QgYmUgbG9va2VkIGF0IGZyb20gdGhlIHJvb3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXBpbGVkIHBhdHRlcm48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0IiBpZD0ieG1sUGF0dGVybkdldFN0cmVhbUN0eHQiPjwvYT5GdW5jdGlvbjogeG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+CXhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0CSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm5QdHIiPnhtbFBhdHRlcm5QdHI8L2E+IGNvbXApPGJyIC8+Cis8L3ByZT48cD5HZXQgYSBzdHJlYW1pbmcgY29udGV4dCBmb3IgdGhhdCBwYXR0ZXJuIFVzZSA8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbEZyZWVTdHJlYW1DdHh0Ij54bWxGcmVlU3RyZWFtQ3R4dDwvYT4gdG8gZnJlZSB0aGUgY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcGlsZWQgcGF0dGVybjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGF0dGVybk1hdGNoIiBpZD0ieG1sUGF0dGVybk1hdGNoIj48L2E+RnVuY3Rpb246IHhtbFBhdHRlcm5NYXRjaDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXR0ZXJuTWF0Y2gJCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5UZXN0IHdoZXRoZXIgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgcGF0dGVybjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVjb21waWxlZCBwYXR0ZXJuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgaXQgbWF0Y2hlcywgMCBpZiBpdCBkb2Vzbid0IGFuZCAtMSBpbiBjYXNlIG9mIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXR0ZXJuTWF4RGVwdGgiIGlkPSJ4bWxQYXR0ZXJuTWF4RGVwdGgiPjwvYT5GdW5jdGlvbjogeG1sUGF0dGVybk1heERlcHRoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhdHRlcm5NYXhEZXB0aAkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHRoZSBtYXhpbXVtIGRlcHRoIHJlYWNoYWJsZSBieSBhIHBhdHRlcm48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcGlsZWQgcGF0dGVybjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTIgaWYgbm8gbGltaXQgKHVzaW5nIC8vKSwgb3RoZXJ3aXNlIHRoZSBkZXB0aCwgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXR0ZXJuTWluRGVwdGgiIGlkPSJ4bWxQYXR0ZXJuTWluRGVwdGgiPjwvYT5GdW5jdGlvbjogeG1sUGF0dGVybk1pbkRlcHRoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhdHRlcm5NaW5EZXB0aAkJKDxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4gY29tcCk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHRoZSBtaW5pbXVtIGRlcHRoIHJlYWNoYWJsZSBieSBhIHBhdHRlcm4sIDAgbWVhbiB0aGUgLyBvciAuIGFyZSBwYXJ0IG9mIHRoZSBzZXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXBpbGVkIHBhdHRlcm48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3Igb3RoZXJ3aXNlIHRoZSBkZXB0aCw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXR0ZXJuU3RyZWFtYWJsZSIgaWQ9InhtbFBhdHRlcm5TdHJlYW1hYmxlIj48L2E+RnVuY3Rpb246IHhtbFBhdHRlcm5TdHJlYW1hYmxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhdHRlcm5TdHJlYW1hYmxlCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuUHRyIj54bWxQYXR0ZXJuUHRyPC9hPiBjb21wKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgaWYgdGhlIHBhdHRlcm4gaXMgc3RyZWFtYWJsZSBpLmUuIHhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0KCkgc2hvdWxkIHdvcmsuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXBpbGVkIHBhdHRlcm48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgc3RyZWFtYWJsZSwgMCBpZiBub3QgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGF0dGVybmNvbXBpbGUiIGlkPSJ4bWxQYXR0ZXJuY29tcGlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXR0ZXJuY29tcGlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1wYXR0ZXJuLmh0bWwjeG1sUGF0dGVyblB0ciI+eG1sUGF0dGVyblB0cjwvYT4JeG1sUGF0dGVybmNvbXBpbGUJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdHRlcm4sIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdCI+eG1sRGljdDwvYT4gKiBkaWN0LCA8YnIgLz4JCQkJCSBpbnQgZmxhZ3MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzKTxiciAvPgorPC9wcmU+PHA+Q29tcGlsZSBhIHBhdHRlcm4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGF0dGVybjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhdHRlcm4gdG8gY29tcGlsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3B0aW9uYWwgZGljdGlvbmFyeSBmb3IgaW50ZXJuZWQgc3RyaW5nczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmxhZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbXBpbGF0aW9uIGZsYWdzLCBzZWUgPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxQYXR0ZXJuRmxhZ3MiPnhtbFBhdHRlcm5GbGFnczwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggZGVmaW5pdGlvbnMsIGFycmF5IG9mIFtVUkksIHByZWZpeF0gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIGZvcm0gb2YgdGhlIHBhdHRlcm4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RyZWFtUG9wIiBpZD0ieG1sU3RyZWFtUG9wIj48L2E+RnVuY3Rpb246IHhtbFN0cmVhbVBvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJlYW1Qb3AJCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW0pPGJyIC8+Cis8L3ByZT48cD5wdXNoIG9uZSBsZXZlbCBmcm9tIHRoZSBzdHJlYW0uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZWFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyZWFtIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmVhbVB1c2giIGlkPSJ4bWxTdHJlYW1QdXNoIj48L2E+RnVuY3Rpb246IHhtbFN0cmVhbVB1c2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyZWFtUHVzaAkJCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMpPGJyIC8+Cis8L3ByZT48cD5QdXNoIG5ldyBkYXRhIG9udG8gdGhlIHN0cmVhbS4gTk9URTogaWYgdGhlIGNhbGwgeG1sUGF0dGVybmNvbXBpbGUoKSBpbmRpY2F0ZWQgYSBkaWN0aW9uYXJ5LCB0aGVuIHN0cmluZ3MgZm9yIG5hbWUgYW5kIG5zIHdpbGwgYmUgZXhwZWN0ZWQgdG8gY29tZSBmcm9tIHRoZSBkaWN0aW9uYXJ5LiBCb3RoIEBuYW1lIGFuZCBAbnMgYmVpbmcgTlVMTCBtZWFucyB0aGUgLyBpLmUuIHRoZSByb290IG9mIHRoZSBkb2N1bWVudC4gVGhpcyBjYW4gYWxzbyBhY3QgYXMgYSByZXNldC4gT3RoZXJ3aXNlIHRoZSBmdW5jdGlvbiB3aWxsIGFjdCBhcyBpZiBpdCBoYXMgYmVlbiBnaXZlbiBhbiBlbGVtZW50LW5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZWFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyZWFtIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZXJyb3IsIDEgaWYgdGhlIGN1cnJlbnQgc3RhdGUgaW4gdGhlIHN0cmVhbSBpcyBhIG1hdGNoIGFuZCAwIG90aGVyd2lzZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJlYW1QdXNoQXR0ciIgaWQ9InhtbFN0cmVhbVB1c2hBdHRyIj48L2E+RnVuY3Rpb246IHhtbFN0cmVhbVB1c2hBdHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0cmVhbVB1c2hBdHRyCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW0sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zKTxiciAvPgorPC9wcmU+PHA+UHVzaCBuZXcgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkYXRhIG9udG8gdGhlIHN0cmVhbS4gTk9URTogaWYgdGhlIGNhbGwgeG1sUGF0dGVybmNvbXBpbGUoKSBpbmRpY2F0ZWQgYSBkaWN0aW9uYXJ5LCB0aGVuIHN0cmluZ3MgZm9yIG5hbWUgYW5kIG5zIHdpbGwgYmUgZXhwZWN0ZWQgdG8gY29tZSBmcm9tIHRoZSBkaWN0aW9uYXJ5LiBCb3RoIEBuYW1lIGFuZCBAbnMgYmVpbmcgTlVMTCBtZWFucyB0aGUgLyBpLmUuIHRoZSByb290IG9mIHRoZSBkb2N1bWVudC4gVGhpcyBjYW4gYWxzbyBhY3QgYXMgYSByZXNldC4gT3RoZXJ3aXNlIHRoZSBmdW5jdGlvbiB3aWxsIGFjdCBhcyBpZiBpdCBoYXMgYmVlbiBnaXZlbiBhbiBhdHRyaWJ1dGUtbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJlYW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJlYW0gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvZiBlcnJvciwgMSBpZiB0aGUgY3VycmVudCBzdGF0ZSBpbiB0aGUgc3RyZWFtIGlzIGEgbWF0Y2ggYW5kIDAgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmVhbVB1c2hOb2RlIiBpZD0ieG1sU3RyZWFtUHVzaE5vZGUiPjwvYT5GdW5jdGlvbjogeG1sU3RyZWFtUHVzaE5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyZWFtUHVzaE5vZGUJCSg8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFN0cmVhbUN0eHRQdHIiPnhtbFN0cmVhbUN0eHRQdHI8L2E+IHN0cmVhbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMsIDxiciAvPgkJCQkJIGludCBub2RlVHlwZSk8YnIgLz4KKzwvcHJlPjxwPlB1c2ggbmV3IGRhdGEgb250byB0aGUgc3RyZWFtLiBOT1RFOiBpZiB0aGUgY2FsbCB4bWxQYXR0ZXJuY29tcGlsZSgpIGluZGljYXRlZCBhIGRpY3Rpb25hcnksIHRoZW4gc3RyaW5ncyBmb3IgbmFtZSBhbmQgbnMgd2lsbCBiZSBleHBlY3RlZCB0byBjb21lIGZyb20gdGhlIGRpY3Rpb25hcnkuIEJvdGggQG5hbWUgYW5kIEBucyBiZWluZyBOVUxMIG1lYW5zIHRoZSAvIGkuZS4gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50LiBUaGlzIGNhbiBhbHNvIGFjdCBhcyBhIHJlc2V0LiBEaWZmZXJlbnQgZnJvbSB4bWxTdHJlYW1QdXNoKCkgdGhpcyBmdW5jdGlvbiBjYW4gYmUgZmVkIHdpdGggbm9kZXMgb2YgdHlwZTogZWxlbWVudC0sIGF0dHJpYnV0ZS0sIHRleHQtLCBjZGF0YS1zZWN0aW9uLSwgY29tbWVudC0gYW5kIHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJlYW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJlYW0gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZVR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0eXBlIG9mIHRoZSBub2RlIGJlaW5nIHB1c2hlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvZiBlcnJvciwgMSBpZiB0aGUgY3VycmVudCBzdGF0ZSBpbiB0aGUgc3RyZWFtIGlzIGEgbWF0Y2ggYW5kIDAgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmVhbVdhbnRzQW55Tm9kZSIgaWQ9InhtbFN0cmVhbVdhbnRzQW55Tm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJlYW1XYW50c0FueU5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyZWFtV2FudHNBbnlOb2RlCQkoPGEgaHJlZj0ibGlieG1sLXBhdHRlcm4uaHRtbCN4bWxTdHJlYW1DdHh0UHRyIj54bWxTdHJlYW1DdHh0UHRyPC9hPiBzdHJlYW1DdHh0KTxiciAvPgorPC9wcmU+PHA+UXVlcnkgaWYgdGhlIHN0cmVhbWluZyBwYXR0ZXJuIGFkZGl0aW9uYWxseSBuZWVkcyB0byBiZSBmZWQgd2l0aCB0ZXh0LSwgY2RhdGEtc2VjdGlvbi0sIGNvbW1lbnQtIGFuZCBwcm9jZXNzaW5nLWluc3RydWN0aW9uLW5vZGVzLiBJZiB0aGUgcmVzdWx0IGlzIDAgdGhlbiBvbmx5IGVsZW1lbnQtbm9kZXMgYW5kIGF0dHJpYnV0ZS1ub2RlcyBuZWVkIHRvIGJlIHB1c2hlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJlYW1DdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyZWFtIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBuZWVkIG9mIG5vZGVzIG9mIHRoZSBhYm92ZSBkZXNjcmliZWQgdHlwZXMsIDAgb3RoZXJ3aXNlLiAtMSBvbiBBUEkgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1yZWxheG5nLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1yZWxheG5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc0ODUxYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXJlbGF4bmcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHJlbGF4bmcgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSByZWxheG5nIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sIj5wYXR0ZXJuPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwiPnNjaGVtYXNJbnRlcm5hbHM8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD5pbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxSZWxheE5HIj54bWxSZWxheE5HPC9hPjxiciAvPnN0cnVjdCBfeG1sUmVsYXhORworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxSZWxheE5HUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR1BhcnNlckN0eHQ8L2E+PGJyIC8+c3RydWN0IF94bWxSZWxheE5HUGFyc2VyQ3R4dAorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0Ij54bWxSZWxheE5HUGFyc2VyQ3R4dDwvYT4gKiA8YSBuYW1lPSJ4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciIgaWQ9InhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxSZWxheE5HUGFyc2VyRmxhZyI+eG1sUmVsYXhOR1BhcnNlckZsYWc8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkciPnhtbFJlbGF4Tkc8L2E+ICogPGEgbmFtZT0ieG1sUmVsYXhOR1B0ciIgaWQ9InhtbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRDdHh0Ij54bWxSZWxheE5HVmFsaWRDdHh0PC9hPjxiciAvPnN0cnVjdCBfeG1sUmVsYXhOR1ZhbGlkQ3R4dAorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHQiPnhtbFJlbGF4TkdWYWxpZEN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciIgaWQ9InhtbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sUmVsYXhOR1ZhbGlkRXJyIj54bWxSZWxheE5HVmFsaWRFcnI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR0NsZWFudXBUeXBlcyI+eG1sUmVsYXhOR0NsZWFudXBUeXBlczwvYT4JCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFJlbGF4TkdEdW1wIj54bWxSZWxheE5HRHVtcDwvYT4JCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPiBzY2hlbWEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR0R1bXBUcmVlIj54bWxSZWxheE5HRHVtcFRyZWU8L2E+CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPiBzY2hlbWEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR0ZyZWUiPnhtbFJlbGF4TkdGcmVlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+IHNjaGVtYSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQiPnhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFJlbGF4TkdGcmVlVmFsaWRDdHh0Ij54bWxSZWxheE5HRnJlZVZhbGlkQ3R4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzIj54bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmM8L2E+ICogZXJyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gKiB3YXJuLCA8YnIgLz4JCQkJCSB2b2lkICoqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlbGF4TkdHZXRWYWxpZEVycm9ycyI+eG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPiAqIGVyciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+ICogd2FybiwgPGJyIC8+CQkJCQkgdm9pZCAqKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxSZWxheE5HSW5pdFR5cGVzIj54bWxSZWxheE5HSW5pdFR5cGVzPC9hPgkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCI+eG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCQkJIGludCBzaXplKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sUmVsYXhOR05ld1BhcnNlckN0eHQiPnhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIFVSTCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWxheE5HTmV3VmFsaWRDdHh0Ij54bWxSZWxheE5HTmV3VmFsaWRDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPiBzY2hlbWEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVsYXhOR1BhcnNlIj54bWxSZWxheE5HUGFyc2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPiBlcnIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiB3YXJuLCA8YnIgLz4JCQkJCSB2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiPnhtbFJlbGF4TkdTZXRWYWxpZEVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gZXJyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gd2FybiwgPGJyIC8+CQkJCQkgdm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlbGF4TkdWYWxpZGF0ZURvYyI+eG1sUmVsYXhOR1ZhbGlkYXRlRG9jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiPnhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIj54bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGE8L2E+CSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRhdGEsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxSZWxheFBhcnNlclNldEZsYWciPnhtbFJlbGF4UGFyc2VyU2V0RmxhZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IGZsYWdzKTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJ4bWxSZWxheE5HIiBpZD0ieG1sUmVsYXhORyI+U3RydWN0dXJlIHhtbFJlbGF4Tkc8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFJlbGF4Tkc8YnIgLz5zdHJ1Y3QgX3htbFJlbGF4TkcgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdQYXJzZXJDdHh0IiBpZD0ieG1sUmVsYXhOR1BhcnNlckN0eHQiPlN0cnVjdHVyZSB4bWxSZWxheE5HUGFyc2VyQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sUmVsYXhOR1BhcnNlckN0eHQ8YnIgLz5zdHJ1Y3QgX3htbFJlbGF4TkdQYXJzZXJDdHh0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbFJlbGF4TkdQYXJzZXJGbGFnIiBpZD0ieG1sUmVsYXhOR1BhcnNlckZsYWciPnhtbFJlbGF4TkdQYXJzZXJGbGFnPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sUmVsYXhOR1BhcnNlckZsYWcgeworICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HUF9OT05FIiBpZD0iWE1MX1JFTEFYTkdQX05PTkUiPlhNTF9SRUxBWE5HUF9OT05FPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR1BfRlJFRV9ET0MiIGlkPSJYTUxfUkVMQVhOR1BfRlJFRV9ET0MiPlhNTF9SRUxBWE5HUF9GUkVFX0RPQzwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdQX0NSTkciIGlkPSJYTUxfUkVMQVhOR1BfQ1JORyI+WE1MX1JFTEFYTkdQX0NSTkc8L2E+ID0gMgorfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdWYWxpZEN0eHQiIGlkPSJ4bWxSZWxheE5HVmFsaWRDdHh0Ij5TdHJ1Y3R1cmUgeG1sUmVsYXhOR1ZhbGlkQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sUmVsYXhOR1ZhbGlkQ3R4dDxiciAvPnN0cnVjdCBfeG1sUmVsYXhOR1ZhbGlkQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxSZWxheE5HVmFsaWRFcnIiIGlkPSJ4bWxSZWxheE5HVmFsaWRFcnIiPnhtbFJlbGF4TkdWYWxpZEVycjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFJlbGF4TkdWYWxpZEVyciB7CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfT0siIGlkPSJYTUxfUkVMQVhOR19PSyI+WE1MX1JFTEFYTkdfT0s8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9NRU1PUlkiIGlkPSJYTUxfUkVMQVhOR19FUlJfTUVNT1JZIj5YTUxfUkVMQVhOR19FUlJfTUVNT1JZPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfVFlQRSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9UWVBFIj5YTUxfUkVMQVhOR19FUlJfVFlQRTwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1RZUEVWQUwiIGlkPSJYTUxfUkVMQVhOR19FUlJfVFlQRVZBTCI+WE1MX1JFTEFYTkdfRVJSX1RZUEVWQUw8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9EVVBJRCIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9EVVBJRCI+WE1MX1JFTEFYTkdfRVJSX0RVUElEPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfVFlQRUNNUCIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9UWVBFQ01QIj5YTUxfUkVMQVhOR19FUlJfVFlQRUNNUDwvYT4gPSA1CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX05PU1RBVEUiIGlkPSJYTUxfUkVMQVhOR19FUlJfTk9TVEFURSI+WE1MX1JFTEFYTkdfRVJSX05PU1RBVEU8L2E+ID0gNgorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9OT0RFRklORSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9OT0RFRklORSI+WE1MX1JFTEFYTkdfRVJSX05PREVGSU5FPC9hPiA9IDcKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTElTVEVYVFJBIiBpZD0iWE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQSI+WE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQTwvYT4gPSA4CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0xJU1RFTVBUWSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9MSVNURU1QVFkiPlhNTF9SRUxBWE5HX0VSUl9MSVNURU1QVFk8L2E+ID0gOQorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9JTlRFUk5PREFUQSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9JTlRFUk5PREFUQSI+WE1MX1JFTEFYTkdfRVJSX0lOVEVSTk9EQVRBPC9hPiA9IDEwCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0lOVEVSU0VRIiBpZD0iWE1MX1JFTEFYTkdfRVJSX0lOVEVSU0VRIj5YTUxfUkVMQVhOR19FUlJfSU5URVJTRVE8L2E+ID0gMTEKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfSU5URVJFWFRSQSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9JTlRFUkVYVFJBIj5YTUxfUkVMQVhOR19FUlJfSU5URVJFWFRSQTwvYT4gPSAxMgorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9FTEVNTkFNRSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9FTEVNTkFNRSI+WE1MX1JFTEFYTkdfRVJSX0VMRU1OQU1FPC9hPiA9IDEzCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0FUVFJOQU1FIiBpZD0iWE1MX1JFTEFYTkdfRVJSX0FUVFJOQU1FIj5YTUxfUkVMQVhOR19FUlJfQVRUUk5BTUU8L2E+ID0gMTQKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5PTlMiIGlkPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5PTlMiPlhNTF9SRUxBWE5HX0VSUl9FTEVNTk9OUzwvYT4gPSAxNQorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9BVFRSTk9OUyIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9BVFRSTk9OUyI+WE1MX1JFTEFYTkdfRVJSX0FUVFJOT05TPC9hPiA9IDE2CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TIiBpZD0iWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TIj5YTUxfUkVMQVhOR19FUlJfRUxFTVdST05HTlM8L2E+ID0gMTcKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfQVRUUldST05HTlMiIGlkPSJYTUxfUkVMQVhOR19FUlJfQVRUUldST05HTlMiPlhNTF9SRUxBWE5HX0VSUl9BVFRSV1JPTkdOUzwvYT4gPSAxOAorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9FTEVNRVhUUkFOUyIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9FTEVNRVhUUkFOUyI+WE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TPC9hPiA9IDE5CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0FUVFJFWFRSQU5TIiBpZD0iWE1MX1JFTEFYTkdfRVJSX0FUVFJFWFRSQU5TIj5YTUxfUkVMQVhOR19FUlJfQVRUUkVYVFJBTlM8L2E+ID0gMjAKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfRUxFTU5PVEVNUFRZIiBpZD0iWE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWSI+WE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWTwvYT4gPSAyMQorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9OT0VMRU0iIGlkPSJYTUxfUkVMQVhOR19FUlJfTk9FTEVNIj5YTUxfUkVMQVhOR19FUlJfTk9FTEVNPC9hPiA9IDIyCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX05PVEVMRU0iIGlkPSJYTUxfUkVMQVhOR19FUlJfTk9URUxFTSI+WE1MX1JFTEFYTkdfRVJSX05PVEVMRU08L2E+ID0gMjMKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfQVRUUlZBTElEIiBpZD0iWE1MX1JFTEFYTkdfRVJSX0FUVFJWQUxJRCI+WE1MX1JFTEFYTkdfRVJSX0FUVFJWQUxJRDwvYT4gPSAyNAorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9DT05URU5UVkFMSUQiIGlkPSJYTUxfUkVMQVhOR19FUlJfQ09OVEVOVFZBTElEIj5YTUxfUkVMQVhOR19FUlJfQ09OVEVOVFZBTElEPC9hPiA9IDI1CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VYVFJBQ09OVEVOVCIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQiPlhNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQ8L2E+ID0gMjYKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfSU5WQUxJREFUVFIiIGlkPSJYTUxfUkVMQVhOR19FUlJfSU5WQUxJREFUVFIiPlhNTF9SRUxBWE5HX0VSUl9JTlZBTElEQVRUUjwvYT4gPSAyNworICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9EQVRBRUxFTSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9EQVRBRUxFTSI+WE1MX1JFTEFYTkdfRVJSX0RBVEFFTEVNPC9hPiA9IDI4CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1ZBTEVMRU0iIGlkPSJYTUxfUkVMQVhOR19FUlJfVkFMRUxFTSI+WE1MX1JFTEFYTkdfRVJSX1ZBTEVMRU08L2E+ID0gMjkKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTElTVEVMRU0iIGlkPSJYTUxfUkVMQVhOR19FUlJfTElTVEVMRU0iPlhNTF9SRUxBWE5HX0VSUl9MSVNURUxFTTwvYT4gPSAzMAorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9EQVRBVFlQRSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9EQVRBVFlQRSI+WE1MX1JFTEFYTkdfRVJSX0RBVEFUWVBFPC9hPiA9IDMxCisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX1ZBTFVFIiBpZD0iWE1MX1JFTEFYTkdfRVJSX1ZBTFVFIj5YTUxfUkVMQVhOR19FUlJfVkFMVUU8L2E+ID0gMzIKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTElTVCIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9MSVNUIj5YTUxfUkVMQVhOR19FUlJfTElTVDwvYT4gPSAzMworICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9OT0dSQU1NQVIiIGlkPSJYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSIj5YTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSPC9hPiA9IDM0CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQSIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9FWFRSQURBVEEiPlhNTF9SRUxBWE5HX0VSUl9FWFRSQURBVEE8L2E+ID0gMzUKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfTEFDS0RBVEEiIGlkPSJYTUxfUkVMQVhOR19FUlJfTEFDS0RBVEEiPlhNTF9SRUxBWE5HX0VSUl9MQUNLREFUQTwvYT4gPSAzNgorICAgIDxhIG5hbWU9IlhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTCIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTCI+WE1MX1JFTEFYTkdfRVJSX0lOVEVSTkFMPC9hPiA9IDM3CisgICAgPGEgbmFtZT0iWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9ORyIgaWQ9IlhNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkciPlhNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkc8L2E+ID0gMzgKKyAgICA8YSBuYW1lPSJYTUxfUkVMQVhOR19FUlJfVEVYVFdST05HIiBpZD0iWE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORyI+WE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORzwvYT4gPSAzOQorfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdDbGVhbnVwVHlwZXMiIGlkPSJ4bWxSZWxheE5HQ2xlYW51cFR5cGVzIj48L2E+RnVuY3Rpb246IHhtbFJlbGF4TkdDbGVhbnVwVHlwZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlbGF4TkdDbGVhbnVwVHlwZXMJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+Q2xlYW51cCB0aGUgZGVmYXVsdCBTY2hlbWFzIHR5cGUgbGlicmFyeSBhc3NvY2lhdGVkIHRvIFJlbGF4Tkc8L3A+Cis8aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0R1bXAiIGlkPSJ4bWxSZWxheE5HRHVtcCI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HRHVtcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR0R1bXAJCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUHRyIj54bWxSZWxheE5HUHRyPC9hPiBzY2hlbWEpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGEgUmVsYXhORyBzdHJ1Y3R1cmUgYmFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdEdW1wVHJlZSIgaWQ9InhtbFJlbGF4TkdEdW1wVHJlZSI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HRHVtcFRyZWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlbGF4TkdEdW1wVHJlZQkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT4gc2NoZW1hKTxiciAvPgorPC9wcmU+PHA+RHVtcCB0aGUgdHJhbnNmb3JtZWQgUmVsYXhORyB0cmVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dHB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdGcmVlIiBpZD0ieG1sUmVsYXhOR0ZyZWUiPjwvYT5GdW5jdGlvbjogeG1sUmVsYXhOR0ZyZWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlbGF4TkdGcmVlCQkJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1B0ciI+eG1sUmVsYXhOR1B0cjwvYT4gc2NoZW1hKTxiciAvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZSBhIFJlbGF4Tkcgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNjaGVtYTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0IiBpZD0ieG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQiIGlkPSJ4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQJCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5GcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0dldFBhcnNlckVycm9ycyIgaWQ9InhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMiPjwvYT5GdW5jdGlvbjogeG1sUmVsYXhOR0dldFBhcnNlckVycm9yczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiAqIHdhcm4sIDxiciAvPgkJCQkJIHZvaWQgKiogY3R4KTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBjYWxsYmFjayBpbmZvcm1hdGlvbiB1c2VkIHRvIGhhbmRsZSBlcnJvcnMgZm9yIGEgdmFsaWRhdGlvbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVycm9yIGNhbGxiYWNrIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2FybjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcyByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIiBpZD0ieG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIj48L2E+RnVuY3Rpb246IHhtbFJlbGF4TkdHZXRWYWxpZEVycm9yczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiAqIHdhcm4sIDxiciAvPgkJCQkJIHZvaWQgKiogY3R4KTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBlcnJvciBhbmQgd2FybmluZyBjYWxsYmFjayBpbmZvcm1hdGlvbnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgZnVuY3Rpb24gcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53YXJuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2FybmluZyBmdW5jdGlvbiByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9ucyBjb250ZXh0IHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvZiBlcnJvciBhbmQgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HSW5pdFR5cGVzIiBpZD0ieG1sUmVsYXhOR0luaXRUeXBlcyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HSW5pdFR5cGVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbGF4TkdJbml0VHlwZXMJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+SW5pdGlsaXplIHRoZSBkZWZhdWx0IHR5cGUgbGlicmFyaWVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0IiBpZD0ieG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4JeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgUmVsYXhOR3MgcGFyc2VyIGNvbnRleHQgZm9yIHRoYXQgZG9jdW1lbnQuIE5vdGU6IHNpbmNlIHRoZSBwcm9jZXNzIG9mIGNvbXBpbGluZyBhIFJlbGF4Tkcgc2NoZW1hcyBtb2RpZmllcyB0aGUgZG9jdW1lbnQsIHRoZSBAZG9jIHBhcmFtZXRlciBpcyBkdXBsaWNhdGVkIGludGVybmFsbHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZXBhcnNlZCBkb2N1bWVudCB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQiIGlkPSJ4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPgl4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkJCSBpbnQgc2l6ZSk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgUmVsYXhOR3MgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBtZW1vcnkgYnVmZmVyIGV4cGVjdGVkIHRvIGNvbnRhaW4gYW4gWE1MIFJlbGF4TkdzIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5IGNvbnRhaW5pbmcgdGhlIHNjaGVtYXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIG9mIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0IiBpZD0ieG1sUmVsYXhOR05ld1BhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sUmVsYXhOR05ld1BhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyIj54bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjwvYT4JeG1sUmVsYXhOR05ld1BhcnNlckN0eHQJKGNvbnN0IGNoYXIgKiBVUkwpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZmlsZS9yZXNvdXJjZSBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBSZWxheE5HcyBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2F0aW9uIG9mIHRoZSBzY2hlbWE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HTmV3VmFsaWRDdHh0IiBpZD0ieG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HTmV3VmFsaWRDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRDdHh0UHRyIj54bWxSZWxheE5HVmFsaWRDdHh0UHRyPC9hPgl4bWxSZWxheE5HTmV3VmFsaWRDdHh0CSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+IHNjaGVtYSk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgUmVsYXhOR3MgdmFsaWRhdGlvbiBjb250ZXh0IGJhc2VkIG9uIHRoZSBnaXZlbiBzY2hlbWE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlY29tcGlsZWQgWE1MIFJlbGF4TkdzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdQYXJzZSIgaWQ9InhtbFJlbGF4TkdQYXJzZSI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HUGFyc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+CXhtbFJlbGF4TkdQYXJzZQkJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYSBzY2hlbWEgZGVmaW5pdGlvbiByZXNvdXJjZSBhbmQgYnVpbGQgYW4gaW50ZXJuYWwgWE1MIFNoZW1hIHN0cnV0dXJlIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHZhbGlkYXRlIGluc3RhbmNlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgWE1MIFJlbGF4Tkcgc3RydWN0dXJlIGJ1aWx0IGZyb20gdGhlIHJlc291cmNlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMiIGlkPSJ4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzIj48L2E+RnVuY3Rpb246IHhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+eG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jPC9hPiBlcnIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiB3YXJuLCA8YnIgLz4JCQkJCSB2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lcnI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBjYWxsYmFjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2FybjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdhcm5pbmcgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiIGlkPSJ4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiPnhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlNldCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSBwYXJzaW5nIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZXJyb3I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBjYWxsYmFjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb250ZXh0dWFsIGRhdGEgZm9yIHRoZSBjYWxsYmFja3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiIGlkPSJ4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMiPjwvYT5GdW5jdGlvbjogeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvYT4gZXJyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gd2FybiwgPGJyIC8+CQkJCQkgdm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlNldCB0aGUgZXJyb3IgYW5kIHdhcm5pbmcgY2FsbGJhY2sgaW5mb3JtYXRpb25zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVycm9yIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53YXJuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgd2FybmluZyBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb25zIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIiBpZD0ieG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBzZXJyb3IsIDxiciAvPgkJCQkJCSB2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNlcnJvcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cnVjdHVyZWQgZXJyb3IgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9ucyBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1ZhbGlkYXRlRG9jIiBpZD0ieG1sUmVsYXhOR1ZhbGlkYXRlRG9jIj48L2E+RnVuY3Rpb246IHhtbFJlbGF4TkdWYWxpZGF0ZURvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWxheE5HVmFsaWRhdGVEb2MJCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPlZhbGlkYXRlIGEgZG9jdW1lbnQgdHJlZSBpbiBtZW1vcnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwYXJzZWQgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgZG9jdW1lbnQgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCIgaWQ9InhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+VmFsaWRhdGUgYSBmdWxsIHN1YnRyZWUgd2hlbiB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCgpIHJldHVybmVkIDAgYW5kIHRoZSBjb250ZW50IG9mIHRoZSBub2RlIGhhcyBiZWVuIGV4cGFuZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZWxlbWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCIgaWQ9InhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+UG9wIHRoZSBlbGVtZW50IGVuZCBmcm9tIHRoZSBSZWxheE5HIHZhbGlkYXRpb24gc3RhY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSIgaWQ9InhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhCSg8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdWYWxpZEN0eHRQdHIiPnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRhdGEsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5jaGVjayB0aGUgQ0RhdGEgcGFyc2VkIGZvciB2YWxpZGF0aW9uIGluIHRoZSBjdXJyZW50IHN0YWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zb21lIGNoYXJhY3RlciBkYXRhIHJlYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmdodCBvZiB0aGUgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIC0xIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50IiBpZD0ieG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC1yZWxheG5nLmh0bWwjeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciI+eG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pPGJyIC8+Cis8L3ByZT48cD5QdXNoIGEgbmV3IGVsZW1lbnQgc3RhcnQgb24gdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBzdGFjay48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAwIGlmIHZhbGlkYXRpbmcgdGhlIGVsZW1lbnQgcmVxdWlyZXMgYSBmdWxsIG5vZGUsIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyIgaWQ9InhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYwordm9pZAl4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT48cD5TaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhIFJlbGF4LU5HIHZhbGlkYXRpb248L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMiIGlkPSJ4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMKK3ZvaWQJeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT48cD5TaWduYXR1cmUgb2YgYSB3YXJuaW5nIGNhbGxiYWNrIGZyb20gYSBSZWxheC1ORyB2YWxpZGF0aW9uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFJlbGF4UGFyc2VyU2V0RmxhZyIgaWQ9InhtbFJlbGF4UGFyc2VyU2V0RmxhZyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWxheFBhcnNlclNldEZsYWc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVsYXhQYXJzZXJTZXRGbGFnCQkoPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciI+eG1sUmVsYXhOR1BhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBmbGFncyk8YnIgLz4KKzwvcHJlPjxwPlNlbWkgcHJpdmF0ZSBmdW5jdGlvbiB1c2VkIHRvIHBhc3MgaW5mb3JtYXRpb25zIHRvIGEgcGFyc2VyIGNvbnRleHQgd2hpY2ggYXJlIGEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXJlbGF4bmcuaHRtbCN4bWxSZWxheE5HUGFyc2VyRmxhZyI+eG1sUmVsYXhOR1BhcnNlckZsYWc8L2E+IC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFJlbGF4TkcgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZsYWdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiBmbGFncyB2YWx1ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcxMjMxMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbApAQCAtMCwwICsxLDM3MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHNjaGVtYXNJbnRlcm5hbHMgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSBzY2hlbWFzSW50ZXJuYWxzIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sIj5yZWxheG5nPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD5pbnRlcm5hbCBpbnRlcmZhY2VzIGZvciB0aGUgWE1MIFNjaGVtYXMgaGFuZGxpbmcgYW5kIHNjaGVtYSB2YWxpZGl0eSBjaGVja2luZyBUaGUgU2NoZW1hcyBkZXZlbG9wbWVudCBpcyBhIFdvcmsgSW4gUHJvZ3Jlc3MuIFNvbWUgb2YgdGhvc2UgaW50ZXJmYWNlcyBhcmUgbm90IGdhcmFudGVlZCB0byBiZSBBUEkgb3IgQUJJIHN0YWJsZSAhIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BTllBVFRSX0xBWCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVg8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9TS0lQPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVCI+WE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1Q8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FOWV9MQVgiPlhNTF9TQ0hFTUFTX0FOWV9MQVg8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FOWV9TS0lQIj5YTUxfU0NIRU1BU19BTllfU0tJUDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQU5ZX1NUUklDVCI+WE1MX1NDSEVNQVNfQU5ZX1NUUklDVDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCI+WE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlM8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQiPlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEIj5YTUxfU0NIRU1BU19BVFRSR1JPVVBfV0lMRENBUkRfQlVJTERFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9GSVhFRCI+WE1MX1NDSEVNQVNfQVRUUl9GSVhFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwiPlhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19BVFRSX0lOVEVSTkFMX1JFU09MVkVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfQVRUUl9OU0RFRkFVTFQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMIj5YTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRCI+WE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQiPlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfUkVTVFJJQ1RJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OIj5YTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVCI+WE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQiPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUiI+WE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUIj5YTUxfU0NIRU1BU19FTEVNX0RFRkFVTFQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0ZJWEVEIj5YTUxfU0NIRU1BU19FTEVNX0ZJWEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0dMT0JBTCI+WE1MX1NDSEVNQVNfRUxFTV9HTE9CQUw8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRCI+WE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEIj5YTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFIj5YTUxfU0NIRU1BU19FTEVNX05JTExBQkxFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCI+WE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fUkVGIj5YTUxfU0NIRU1BU19FTEVNX1JFRjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEIj5YTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwiPlhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUw8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFIj5YTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUiPlhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFIj5YTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GQUNFVF9VTktOT1dOIj5YTUxfU0NIRU1BU19GQUNFVF9VTktOT1dOPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVCI+WE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OIj5YTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUyI+WE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlM8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSIj5YTUxfU0NIRU1BU19RVUFMSUZfQVRUUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0iPlhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUIj5YTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQiPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT04iPlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OIj5YTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFIj5YTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTiI+WE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFIj5YTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9MSVNUIj5YTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1Q8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfUkVTVFJJQ1RJT04iPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfUkVTVFJJQ1RJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04iPlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfRklYVVBfMSI+WE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0dMT0JBTCI+WE1MX1NDSEVNQVNfVFlQRV9HTE9CQUw8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUyI+WE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQiPlhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfSU5WQUxJRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9SRVNPTFZFRCI+WE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9SRVNPTFZFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQiPlhNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX01JWEVEIj5YTUxfU0NIRU1BU19UWVBFX01JWEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRCI+WE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCI+WE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRCI+WE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUMiPlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUM8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OIj5YTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSI+WE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUiPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1JFUExBQ0UiPlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURSI+WE1MX1NDSEVNQVNfV0lMRENBUkRfQ09NUExFVEU8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hQW5ub3QiPnhtbFNjaGVtYUFubm90PC9hPjxiciAvPnN0cnVjdCBfeG1sU2NoZW1hQW5ub3QKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQW5ub3QiPnhtbFNjaGVtYUFubm90PC9hPiAqIDxhIG5hbWU9InhtbFNjaGVtYUFubm90UHRyIiBpZD0ieG1sU2NoZW1hQW5ub3RQdHIiPnhtbFNjaGVtYUFubm90UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hQXR0cmlidXRlIj54bWxTY2hlbWFBdHRyaWJ1dGU8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGUKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIj54bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDwvYT48YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIj54bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDwvYT4gKiA8YSBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciIgaWQ9InhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIj54bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsiPnhtbFNjaGVtYUF0dHJpYnV0ZUxpbms8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGVMaW5rCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsiPnhtbFNjaGVtYUF0dHJpYnV0ZUxpbms8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hQXR0cmlidXRlTGlua1B0ciIgaWQ9InhtbFNjaGVtYUF0dHJpYnV0ZUxpbmtQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZUxpbmtQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZSI+eG1sU2NoZW1hQXR0cmlidXRlPC9hPiAqIDxhIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZVB0ciIgaWQ9InhtbFNjaGVtYUF0dHJpYnV0ZVB0ciI+eG1sU2NoZW1hQXR0cmlidXRlUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbFNjaGVtYUNvbnRlbnRUeXBlIj54bWxTY2hlbWFDb250ZW50VHlwZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNjaGVtYUVsZW1lbnQiPnhtbFNjaGVtYUVsZW1lbnQ8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFFbGVtZW50Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUVsZW1lbnQiPnhtbFNjaGVtYUVsZW1lbnQ8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hRWxlbWVudFB0ciIgaWQ9InhtbFNjaGVtYUVsZW1lbnRQdHIiPnhtbFNjaGVtYUVsZW1lbnRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTY2hlbWFGYWNldCI+eG1sU2NoZW1hRmFjZXQ8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFGYWNldAorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hRmFjZXRMaW5rIj54bWxTY2hlbWFGYWNldExpbms8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFGYWNldExpbmsKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRMaW5rIj54bWxTY2hlbWFGYWNldExpbms8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hRmFjZXRMaW5rUHRyIiBpZD0ieG1sU2NoZW1hRmFjZXRMaW5rUHRyIj54bWxTY2hlbWFGYWNldExpbmtQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0Ij54bWxTY2hlbWFGYWNldDwvYT4gKiA8YSBuYW1lPSJ4bWxTY2hlbWFGYWNldFB0ciIgaWQ9InhtbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNjaGVtYU5vdGF0aW9uIj54bWxTY2hlbWFOb3RhdGlvbjwvYT48YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYU5vdGF0aW9uCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYU5vdGF0aW9uIj54bWxTY2hlbWFOb3RhdGlvbjwvYT4gKiA8YSBuYW1lPSJ4bWxTY2hlbWFOb3RhdGlvblB0ciIgaWQ9InhtbFNjaGVtYU5vdGF0aW9uUHRyIj54bWxTY2hlbWFOb3RhdGlvblB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNjaGVtYVR5cGUiPnhtbFNjaGVtYVR5cGU8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFUeXBlCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTY2hlbWFUeXBlTGluayI+eG1sU2NoZW1hVHlwZUxpbms8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFUeXBlTGluaworPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlTGluayI+eG1sU2NoZW1hVHlwZUxpbms8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hVHlwZUxpbmtQdHIiIGlkPSJ4bWxTY2hlbWFUeXBlTGlua1B0ciI+eG1sU2NoZW1hVHlwZUxpbmtQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGUiPnhtbFNjaGVtYVR5cGU8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hVHlwZVB0ciIgaWQ9InhtbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sU2NoZW1hVHlwZVR5cGUiPnhtbFNjaGVtYVR5cGVUeXBlPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hVmFsIj54bWxTY2hlbWFWYWw8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFWYWwKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWwiPnhtbFNjaGVtYVZhbDwvYT4gKiA8YSBuYW1lPSJ4bWxTY2hlbWFWYWxQdHIiIGlkPSJ4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hV2lsZGNhcmQiPnhtbFNjaGVtYVdpbGRjYXJkPC9hPjxiciAvPnN0cnVjdCBfeG1sU2NoZW1hV2lsZGNhcmQKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNjaGVtYVdpbGRjYXJkTnMiPnhtbFNjaGVtYVdpbGRjYXJkTnM8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFXaWxkY2FyZE5zCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkTnMiPnhtbFNjaGVtYVdpbGRjYXJkTnM8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hV2lsZGNhcmROc1B0ciIgaWQ9InhtbFNjaGVtYVdpbGRjYXJkTnNQdHIiPnhtbFNjaGVtYVdpbGRjYXJkTnNQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkIj54bWxTY2hlbWFXaWxkY2FyZDwvYT4gKiA8YSBuYW1lPSJ4bWxTY2hlbWFXaWxkY2FyZFB0ciIgaWQ9InhtbFNjaGVtYVdpbGRjYXJkUHRyIj54bWxTY2hlbWFXaWxkY2FyZFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFGcmVlVHlwZSI+eG1sU2NoZW1hRnJlZVR5cGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYUZyZWVXaWxkY2FyZCI+eG1sU2NoZW1hRnJlZVdpbGRjYXJkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmRQdHIiPnhtbFNjaGVtYVdpbGRjYXJkUHRyPC9hPiB3aWxkY2FyZCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVgiIGlkPSJYTUxfU0NIRU1BU19BTllBVFRSX0xBWCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19BTllBVFRSX0xBWDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYPC9wcmU+PHA+SWdub3JlIHZhbGlkYXRpb24gbm9uIGRlZmluaXRpb24gb24gYXR0cmlidXRlcyBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZQVRUUl9TS0lQIiBpZD0iWE1MX1NDSEVNQVNfQU5ZQVRUUl9TS0lQIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUDwvcHJlPjxwPlNraXAgdW5rbm93biA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGZyb20gdmFsaWRhdGlvbiBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1QiIGlkPSJYTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19BTllBVFRSX1NUUklDVDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUPC9wcmU+PHA+QXBwbHkgc3RyaWN0IHZhbGlkYXRpb24gcnVsZXMgb24gYXR0cmlidXRlcyBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZX0xBWCIgaWQ9IlhNTF9TQ0hFTUFTX0FOWV9MQVgiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfQU5ZX0xBWDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FOWV9MQVg8L3ByZT48cD5Vc2VkIGJ5IHdpbGRjYXJkcy4gVmFsaWRhdGUgaWYgdHlwZSBmb3VuZCwgZG9uJ3Qgd29ycnkgaWYgbm90IGZvdW5kPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWV9TS0lQIiBpZD0iWE1MX1NDSEVNQVNfQU5ZX1NLSVAiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfQU5ZX1NLSVA8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19BTllfU0tJUDwvcHJlPjxwPlNraXAgdW5rbm93biA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGZyb20gdmFsaWRhdGlvbjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BTllfU1RSSUNUIiBpZD0iWE1MX1NDSEVNQVNfQU5ZX1NUUklDVCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19BTllfU1RSSUNUPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQU5ZX1NUUklDVDwvcHJlPjxwPlVzZWQgYnkgd2lsZGNhcmRzLiBBcHBseSBzdHJpY3QgdmFsaWRhdGlvbiBydWxlczwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSR1JPVVBfR0xPQkFMIiBpZD0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfR0xPQkFMPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTDwvcHJlPjxwPlRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdpbGRjYXJkIGhhcyBiZWVuIGFscmVhZHkgYnVpbGRlZC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTIiBpZD0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUzwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUzwvcHJlPjxwPldoZXRoZXIgdGhpcyBhdHRyLiBncm91cCBjb250YWlucyBhdHRyLiBncm91cCByZWZlcmVuY2VzLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEIiBpZD0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRDwvcHJlPjxwPk1hcmtzIHRoZSBhdHRyIGdyb3VwIGFzIG1hcmtlZDsgdXNlZCBmb3IgY2lyY3VsYXIgY2hlY2tzLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEIiBpZD0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX1JFREVGSU5FRCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUkdST1VQX1JFREVGSU5FRDwvcHJlPjxwPlRoZSBhdHRyIGdyb3VwIHdhcyByZWRlZmluZWQuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEIiBpZD0iWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19BVFRSR1JPVVBfV0lMRENBUkRfQlVJTERFRDwvcHJlPjxwPlRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdpbGRjYXJkIGhhcyBiZWVuIGFscmVhZHkgYnVpbGRlZC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUl9GSVhFRCIgaWQ9IlhNTF9TQ0hFTUFTX0FUVFJfRklYRUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfQVRUUl9GSVhFRDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfRklYRUQ8L3ByZT48cD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBoYXMgYSBmaXhlZCB2YWx1ZTwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSX0dMT0JBTCIgaWQ9IlhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUw8L3ByZT48cD5hbGxvdyBlbGVtZW50cyBpbiBubyBuYW1lc3BhY2U8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRCIgaWQ9IlhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQ8L3ByZT48cD50aGlzIGlzIHNldCB3aGVuIHRoZSAidHlwZSIgYW5kICJyZWYiIHJlZmVyZW5jZXMgaGF2ZSBiZWVuIHJlc29sdmVkLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVCIgaWQ9IlhNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0FUVFJfTlNERUZBVUxUPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9OU0RFRkFVTFQ8L3ByZT48cD5hbGxvdyBlbGVtZW50cyBpbiBubyBuYW1lc3BhY2U8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQVRUUl9VU0VfT1BUSU9OQUwiIGlkPSJYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMPC9wcmU+PHA+VGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgb3B0aW9uYWwuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQiIGlkPSJYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEPC9wcmU+PHA+VXNlZCBieSB3aWxkY2FyZHMuIFRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIHByb2hpYml0ZWQuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEIiBpZD0iWE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRDwvcHJlPjxwPlRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIHJlcXVpcmVkLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTiIgaWQ9IlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT048L3ByZT48cD50aGUgc2NoZW1hIGhhcyAiZXh0ZW5zaW9uIiBpbiB0aGUgc2V0IG9mIGJsb2NrRGVmYXVsdC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiIgaWQ9IlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfUkVTVFJJQ1RJT04iPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTjwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfUkVTVFJJQ1RJT048L3ByZT48cD50aGUgc2NoZW1hIGhhcyAicmVzdHJpY3Rpb24iIGluIHRoZSBzZXQgb2YgYmxvY2tEZWZhdWx0LjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTiIgaWQ9IlhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9TVUJTVElUVVRJT048L3ByZT48cD50aGUgc2NoZW1hIGhhcyAic3Vic3RpdHV0aW9uIiBpbiB0aGUgc2V0IG9mIGJsb2NrRGVmYXVsdC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVCIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1QiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1Q8L3ByZT48cD50aGUgZWxlbWVudCBpcyBhYnN0cmFjdDwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0FCU0VOVCIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQ8L3ByZT48cD50aGUgImJsb2NrIiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIGFic2VudDwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTiIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT048L3ByZT48cD5kaXNhbGxvd2VkIHN1YnN0aXR1dGlvbnMgYXJlIGFic2VudDwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OIiBpZD0iWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19SRVNUUklDVElPTiI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19SRVNUUklDVElPTjwvcHJlPjxwPmRpc2FsbG93ZWQgc3Vic3RpdHV0aW9uczogInJlc3RyaWN0aW9uIjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTiIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT048L3ByZT48cD5kaXNhbGxvd2VkIHN1YnN0aXR1dGlvbnM6ICJzdWJzdGl0dWlvbiI8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUiIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRUxFTV9DSVJDVUxBUjwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVI8L3ByZT48cD5hIGhlbHBlciBmbGFnIGZvciB0aGUgc2VhcmNoIG9mIGNpcmN1bGFyIHJlZmVyZW5jZXMuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVCIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19FTEVNX0RFRkFVTFQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0RFRkFVTFQ8L3ByZT48cD50aGUgZWxlbWVudCBoYXMgYSBkZWZhdWx0IHZhbHVlPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UIiBpZD0iWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVDwvcHJlPjxwPnN1YnN0aXR1dGlvbiBncm91cCBleGNsdXNpb25zIGFyZSBhYnNlbnQ8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT04iIGlkPSJYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTiI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTjwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OPC9wcmU+PHA+c3Vic3RpdHV0aW9uIGdyb3VwIGV4Y2x1c2lvbnM6ICJleHRlbnNpb24iPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT04iIGlkPSJYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT048L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OPC9wcmU+PHA+c3Vic3RpdHV0aW9uIGdyb3VwIGV4Y2x1c2lvbnM6ICJyZXN0cmljdGlvbiI8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9GSVhFRCIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fRklYRUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRUxFTV9GSVhFRDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fRklYRUQ8L3ByZT48cD50aGUgZWxlbWVudCBoYXMgYSBmaXhlZCB2YWx1ZTwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX0dMT0JBTCIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUw8L3ByZT48cD50aGUgZWxlbWVudCBpcyBnbG9iYWw8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIiBpZD0iWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRDwvcHJlPjxwPnRoaXMgaXMgc2V0IHdoZW4gdGhlIGVsZW0gZGVjbCBoYXMgYmVlbiBjaGVja2VkIGFnYWluc3QgYWxsIGNvbnN0cmFpbnRzPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQiIGlkPSJYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEPC9wcmU+PHA+dGhpcyBpcyBzZXQgd2hlbiAidHlwZSIsICJyZWYiLCAic3Vic3RpdHV0aW9uR3JvdXAiIHJlZmVyZW5jZXMgaGF2ZSBiZWVuIHJlc29sdmVkLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFIiBpZD0iWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRSI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRTwvcHJlPjxwPnRoZSBlbGVtZW50IGlzIG5pbGxhYmxlPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VMRU1fTlNERUZBVUxUIiBpZD0iWE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVDwvcHJlPjxwPmFsbG93IGVsZW1lbnRzIGluIG5vIG5hbWVzcGFjZSBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9SRUYiIGlkPSJYTUxfU0NIRU1BU19FTEVNX1JFRiI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19FTEVNX1JFRjwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fUkVGPC9wcmU+PHA+dGhlIGVsZW1lbnQgaXMgYSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIGEgdHlwZTwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQiIGlkPSJYTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEPC9wcmU+PHA+dGhlIGRlY2xhcmF0aW9uIGlzIGEgc3Vic3RpdHV0aW9uIGdyb3VwIGhlYWQ8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTCIgaWQ9IlhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUw8L3ByZT48cD50aGUgZWxlbWVudCBpcyB0b3AgbGV2ZWwgb2Jzb2xldGU6IHVzZSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI1hNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMIj5YTUxfU0NIRU1BU19FTEVNX0dMT0JBTDwvYT4gaW5zdGVhZDwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRSIgaWQ9IlhNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U8L3ByZT48cD5jb2xsYXBzZSB0aGUgdHlwZXMgb2YgdGhlIGZhY2V0PC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFIiBpZD0iWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkU8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRTwvcHJlPjxwPnByZXNlcnZlIHRoZSB0eXBlIG9mIHRoZSBmYWNldDwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFIiBpZD0iWE1MX1NDSEVNQVNfRkFDRVRfUkVQTEFDRSI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRkFDRVRfUkVQTEFDRTwvcHJlPjxwPnJlcGxhY2UgdGhlIHR5cGUgb2YgdGhlIGZhY2V0PC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04iIGlkPSJYTUxfU0NIRU1BU19GQUNFVF9VTktOT1dOIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV048L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19GQUNFVF9VTktOT1dOPC9wcmU+PHA+dW5rbm93biBmYWNldCBoYW5kbGluZzwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTiIgaWQ9IlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT048L3ByZT48cD50aGUgc2NoZW1hIGhhcyAiZXh0ZW5zaW9uIiBpbiB0aGUgc2V0IG9mIGZpbmFsRGVmYXVsdC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUIiBpZD0iWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVDwvcHJlPjxwPnRoZSBjc2hlbWEgaGFzICJsaXN0IiBpbiB0aGUgc2V0IG9mIGZpbmFsRGVmYXVsdC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTiIgaWQ9IlhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04iPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTjwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT048L3ByZT48cD50aGUgc2NoZW1hIGhhcyAicmVzdHJpY3Rpb24iIGluIHRoZSBzZXQgb2YgZmluYWxEZWZhdWx0LjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OIiBpZD0iWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTiI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTjwvcHJlPjxwPnRoZSBzY2hlbWEgaGFzICJ1bmlvbiIgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TIiBpZD0iWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlMiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlM8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUzwvcHJlPjxwPnRoZSBzY2hlbWEgaXMgY3VycmVudGx5IGluY2x1ZGluZyBhbiBvdGhlciBzY2hlbWEgd2l0aCBubyB0YXJnZXQgbmFtZXNwYWNlLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19RVUFMSUZfQVRUUiIgaWQ9IlhNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfUVVBTElGX0FUVFI8L3ByZT48cD5SZWZsZWN0cyBhdHRyaWJ1dGVGb3JtRGVmYXVsdCA9PSBxdWFsaWZpZWQgaW4gYW4gWE1MIHNjaGVtYSBkb2N1bWVudC48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0iIGlkPSJYTUxfU0NIRU1BU19RVUFMSUZfRUxFTSI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19RVUFMSUZfRUxFTTwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNPC9wcmU+PHA+UmVmbGVjdHMgZWxlbWVudEZvcm1EZWZhdWx0ID09IHF1YWxpZmllZCBpbiBhbiBYTUwgc2NoZW1hIGRvY3VtZW50LjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVDwvcHJlPjxwPnRoZSBzaW1wbGUvY29tcGxleFR5cGUgaXMgYWJzdHJhY3QuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVCIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQ8L3ByZT48cD50aGUgY29tcGxleFR5cGUgZGlkIG5vdCBzcGVjaWZ5ICdibG9jaycgc28gdXNlIHRoZSBkZWZhdWx0IG9mIHRoZSAmbHQ7c2NoZW1hJmd0OyBpdGVtLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTiIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT048L3ByZT48cD50aGUgY29tcGxleFR5cGUgaGFzIGEgJ2Jsb2NrJyBvZiAiZXh0ZW5zaW9uIi48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTiIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT04iPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTjwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT048L3ByZT48cD50aGUgY29tcGxleFR5cGUgaGFzIGEgJ2Jsb2NrJyBvZiAicmVzdHJpY3Rpb24iLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRSI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRTwvcHJlPjxwPk1hcmtzIHRoZSBpdGVtIGFzIGEgYnVpbHRpbiBwcmltaXRpdmUuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04iPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT048L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTjwvcHJlPjxwPnRoZSBzaW1wbGUgb3IgY29tcGxleCB0eXBlIGhhcyBhIGRlcml2YXRpb24gbWV0aG9kIG9mICJleHRlbnNpb24iLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX1JFU1RSSUNUSU9OIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTiI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX1JFU1RSSUNUSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTjwvcHJlPjxwPnRoZSBzaW1wbGUgb3IgY29tcGxleCB0eXBlIGhhcyBhIGRlcml2YXRpb24gbWV0aG9kIG9mICJyZXN0cmljdGlvbiIuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRkFDRVRTTkVFRFZBTFVFIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUU8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRTwvcHJlPjxwPmluZGljYXRlcyBpZiB0aGUgZmFjZXRzIG5lZWQgYSBjb21wdXRlZCB2YWx1ZTwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQiIGlkPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUPC9wcmU+PHA+dGhlIHNpbXBsZVR5cGUgaGFzIGEgZmluYWwgb2YgImRlZmF1bHQiLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTiIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT048L3ByZT48cD50aGUgY29tcGxleFR5cGUgaGFzIGEgZmluYWwgb2YgImV4dGVuc2lvbiIuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVCIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1Q8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1Q8L3ByZT48cD50aGUgc2ltcGxlVHlwZSBoYXMgYSBmaW5hbCBvZiAibGlzdCIuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfUkVTVFJJQ1RJT04iIGlkPSJYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfUkVTVFJJQ1RJT048L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OPC9wcmU+PHA+dGhlIHNpbXBsZVR5cGUvY29tcGxleFR5cGUgaGFzIGEgZmluYWwgb2YgInJlc3RyaWN0aW9uIi48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9VTklPTiIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04iPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9VTklPTjwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT048L3ByZT48cD50aGUgc2ltcGxlVHlwZSBoYXMgYSBmaW5hbCBvZiAidW5pb24iLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzEiIGlkPSJYTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzEiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xPC9wcmU+PHA+Rmlyc3Qgc3RhZ2Ugb2YgZml4dXAgd2FzIGRvbmUuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUw8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0dMT0JBTDwvcHJlPjxwPnRoZSB0eXBlIGlzIGdsb2JhbDwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFMiIGlkPSJYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFMiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTPC9wcmU+PHA+aGFzIGZhY2V0czwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQiIGlkPSJYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEPC9wcmU+PHA+aW5kaWNhdGVzIHRoYXQgdGhlIHR5cGUgaXMgaW52YWxpZDwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9SRVNPTFZFRCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9SRVNPTFZFRDwvcHJlPjxwPmluZGljYXRlcyB0aGF0IHRoZSB0eXBlIHdhcyB0eXBlZml4ZWQ8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQiIGlkPSJYTUxfU0NIRU1BU19UWVBFX01BUktFRCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX01BUktFRDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEPC9wcmU+PHA+TWFya3MgdGhlIGl0ZW0gYXMgbWFya2VkOyB1c2VkIGZvciBjaXJjdWxhciBjaGVja3MuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQiIGlkPSJYTUxfU0NIRU1BU19UWVBFX01JWEVEIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX01JWEVEPC9wcmU+PHA+dGhlIGVsZW1lbnQgY29udGVudCB0eXBlIGlzIG1peGVkPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRDwvcHJlPjxwPmluZGljYXRlcyBpZiB0aGUgZmFjZXRzIChwYXR0ZXJuKSBuZWVkIGEgbm9ybWFsaXplZCB2YWx1ZTwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX09XTkVEX0FUVFJfV0lMRENBUkQiIGlkPSJYTUxfU0NIRU1BU19UWVBFX09XTkVEX0FUVFJfV0lMRENBUkQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEPC9wcmU+PHA+dGhlIGNvbXBsZXhUeXBlIG93bnMgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aWxkY2FyZCwgaS5lLiBpdCBjYW4gYmUgZnJlZWQgYnkgdGhlIGNvbXBsZXhUeXBlPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfUkVERUZJTkVEIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRDwvcHJlPjxwPlRoZSB0eXBlIHdhcyByZWRlZmluZWQuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQiIGlkPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BQlNFTlQ8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQUJTRU5UPC9wcmU+PHA+dGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAiYWJzZW50Ii4gVE9ETzogQWN0dWFsbHkgbm90IG5lY2Vzc2FyeSA6LS8sIHNpbmNlIGlmIG5vbmUgb2YgdGhlIHZhcmlldHkgZmxhZ3Mgb2NjdXIgdGhlbiBpdCdzIGF1dG9tYXRpY2FsbHkgYWJzZW50LjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDIiBpZD0iWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQyI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQzwvcHJlPjxwPnRoZSBzaW1wbGVUeXBlIGhhcyBhIHZhcmlldHkgb2YgInVuaW9uIi48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1QiIGlkPSJYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVCI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVDwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9MSVNUPC9wcmU+PHA+dGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAibGlzdCIuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTiIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTiI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT048L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT048L3ByZT48cD50aGUgc2ltcGxlVHlwZSBoYXMgYSB2YXJpZXR5IG9mICJ1bmlvbiIuPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSIgaWQ9IlhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRSI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0U8L2gzPjxwcmU+I2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0U8L3ByZT48cD5hIHdoaXRlc3BhY2UtZmFjZXQgdmFsdWUgb2YgImNvbGxhcHNlIjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUiIGlkPSJYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUiPjwvYT5NYWNybzogWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFPC9wcmU+PHA+YSB3aGl0ZXNwYWNlLWZhY2V0IHZhbHVlIG9mICJwcmVzZXJ2ZSI8L3A+Cis8aDM+PGEgbmFtZT0iWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1JFUExBQ0UiIGlkPSJYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRSI+PC9hPk1hY3JvOiBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRTwvaDM+PHByZT4jZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFPC9wcmU+PHA+YSB3aGl0ZXNwYWNlLWZhY2V0IHZhbHVlIG9mICJyZXBsYWNlIjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURSIgaWQ9IlhNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFIj48L2E+TWFjcm86IFhNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFPC9oMz48cHJlPiNkZWZpbmUgWE1MX1NDSEVNQVNfV0lMRENBUkRfQ09NUExFVEU8L3ByZT48cD5JZiB0aGUgd2lsZGNhcmQgaXMgY29tcGxldGUuPC9wPgorPGgzPjxhIG5hbWU9InhtbFNjaGVtYUFubm90IiBpZD0ieG1sU2NoZW1hQW5ub3QiPlN0cnVjdHVyZSB4bWxTY2hlbWFBbm5vdDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hQW5ub3Q8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYUFubm90IHsKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUFubm90ICoJbmV4dAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JY29udGVudAk6IHRoZSBhbm5vdGF0aW9uCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUF0dHJpYnV0ZSIgaWQ9InhtbFNjaGVtYUF0dHJpYnV0ZSI+U3RydWN0dXJlIHhtbFNjaGVtYUF0dHJpYnV0ZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hQXR0cmlidXRlPGJyIC8+c3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGUgeworICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVR5cGUiPnhtbFNjaGVtYVR5cGVUeXBlPC9hPgl0eXBlCisgICAgc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGUgKgluZXh0CTogdGhlIG5leHQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiAobm90IHVzZWQ/KQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiB0aGUgbmFtZSBvZiB0aGUgZGVjbGFyYXRpb24KKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglpZAk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglyZWZOcwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdHlwZU5hbWUJOiB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgdHlwZSBkZWZpbml0aW9uCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdHlwZU5zCTogdGhlIG5zIFVSSSBvZiB0aGUgdHlwZSBkZWZpbml0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPgliYXNlCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBpbnQJb2NjdXJzCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglkZWZWYWx1ZQk6IFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSB2YWx1ZSBjb25zdHJhaQorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4Jc3VidHlwZXMJOiB0aGUgdHlwZSBkZWZpbml0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglub2RlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdGFyZ2V0TmFtZXNwYWNlCisgICAgaW50CWZsYWdzCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmUHJlZml4CTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPglkZWZWYWwJOiBUaGUgY29tcGlsZWQgdmFsdWUgY29uc3RyYWludAorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlUHRyIj54bWxTY2hlbWFBdHRyaWJ1dGVQdHI8L2E+CXJlZkRlY2wJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCIgaWQ9InhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXA8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwPGJyIC8+c3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCB7CisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+CXR5cGUJOiBUaGUga2luZCBvZiB0eXBlCisgICAgc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGUgKgluZXh0CTogdGhlIG5leHQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBpZiBpbiBhIGdyb3VwIC4uLgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglpZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXJlZgk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmTnMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQW5ub3RQdHIiPnhtbFNjaGVtYUFubm90UHRyPC9hPglhbm5vdAorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQXR0cmlidXRlUHRyIj54bWxTY2hlbWFBdHRyaWJ1dGVQdHI8L2E+CWF0dHJpYnV0ZXMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQorICAgIGludAlmbGFncworICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmRQdHIiPnhtbFNjaGVtYVdpbGRjYXJkUHRyPC9hPglhdHRyaWJ1dGVXaWxkY2FyZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXJlZlByZWZpeAk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciI+eG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHI8L2E+CXJlZkl0ZW0JOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXRhcmdldE5hbWVzcGFjZQorICAgIHZvaWQgKglhdHRyVXNlcworfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rIiBpZD0ieG1sU2NoZW1hQXR0cmlidXRlTGluayI+U3RydWN0dXJlIHhtbFNjaGVtYUF0dHJpYnV0ZUxpbms8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFNjaGVtYUF0dHJpYnV0ZUxpbms8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsgeworICAgIHN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlTGluayAqCW5leHQJOiB0aGUgbmV4dCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGxpbmsgLi4uCisgICAgc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGUgKglhdHRyCTogdGhlIGxpbmtlZCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+Cit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sU2NoZW1hQ29udGVudFR5cGUiIGlkPSJ4bWxTY2hlbWFDb250ZW50VHlwZSI+eG1sU2NoZW1hQ29udGVudFR5cGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxTY2hlbWFDb250ZW50VHlwZSB7CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9DT05URU5UX1VOS05PV04iIGlkPSJYTUxfU0NIRU1BX0NPTlRFTlRfVU5LTk9XTiI+WE1MX1NDSEVNQV9DT05URU5UX1VOS05PV048L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfQ09OVEVOVF9FTVBUWSIgaWQ9IlhNTF9TQ0hFTUFfQ09OVEVOVF9FTVBUWSI+WE1MX1NDSEVNQV9DT05URU5UX0VNUFRZPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFMiIGlkPSJYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFMiPlhNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUzwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9DT05URU5UX01JWEVEIiBpZD0iWE1MX1NDSEVNQV9DT05URU5UX01JWEVEIj5YTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQ8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEUiIGlkPSJYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFIj5YTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRURfT1JfRUxFTUVOVFMiIGlkPSJYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRURfT1JfRUxFTUVOVFMiPlhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRF9PUl9FTEVNRU5UUzwvYT4gPSA1IDogT2Jzb2xldGUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUMiIGlkPSJYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUMiPlhNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQzwvYT4gPSA2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9DT05URU5UX0FOWSIgaWQ9IlhNTF9TQ0hFTUFfQ09OVEVOVF9BTlkiPlhNTF9TQ0hFTUFfQ09OVEVOVF9BTlk8L2E+ID0gNworfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUVsZW1lbnQiIGlkPSJ4bWxTY2hlbWFFbGVtZW50Ij5TdHJ1Y3R1cmUgeG1sU2NoZW1hRWxlbWVudDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hRWxlbWVudDxiciAvPnN0cnVjdCBfeG1sU2NoZW1hRWxlbWVudCB7CisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlVHlwZSI+eG1sU2NoZW1hVHlwZVR5cGU8L2E+CXR5cGUJOiBUaGUga2luZCBvZiB0eXBlCisgICAgc3RydWN0IF94bWxTY2hlbWFUeXBlICoJbmV4dAk6IE5vdCB1c2VkPworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglpZAk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJcmVmCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglyZWZOcwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPglzdWJ0eXBlcwk6IHRoZSB0eXBlIGRlZmluaXRpb24KKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUF0dHJpYnV0ZVB0ciI+eG1sU2NoZW1hQXR0cmlidXRlUHRyPC9hPglhdHRyaWJ1dGVzCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglub2RlCisgICAgaW50CW1pbk9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CW1heE9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CWZsYWdzCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdGFyZ2V0TmFtZXNwYWNlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZWRUeXBlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZWRUeXBlTnMKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglzdWJzdEdyb3VwCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJc3Vic3RHcm91cE5zCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJc2NvcGUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl2YWx1ZQk6IFRoZSBvcmlnaW5hbCB2YWx1ZSBvZiB0aGUgdmFsdWUgY29uc3RyYQorICAgIHN0cnVjdCBfeG1sU2NoZW1hRWxlbWVudCAqCXJlZkRlY2wJOiBUaGlzIHdpbGwgbm93IGJlIHVzZWQgZm9yIHRoZSBzdWJzdGl0dXQKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+CWNvbnRNb2RlbAk6IE9ic29sZXRlIGZvciBXWFMsIG1heWJlIHVzZWQgZm9yIFJlbGF4TgorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQ29udGVudFR5cGUiPnhtbFNjaGVtYUNvbnRlbnRUeXBlPC9hPgljb250ZW50VHlwZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXJlZlByZWZpeAk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JZGVmVmFsCTogVGhlIGNvbXBpbGVkIHZhbHVlIGNvbnRyYWludC4KKyAgICB2b2lkICoJaWRjcwk6IFRoZSBpZGVudGl0eS1jb25zdHJhaW50IGRlZnMKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRmFjZXQiIGlkPSJ4bWxTY2hlbWFGYWNldCI+U3RydWN0dXJlIHhtbFNjaGVtYUZhY2V0PC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxTY2hlbWFGYWNldDxiciAvPnN0cnVjdCBfeG1sU2NoZW1hRmFjZXQgeworICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVR5cGUiPnhtbFNjaGVtYVR5cGVUeXBlPC9hPgl0eXBlCTogVGhlIGtpbmQgb2YgdHlwZQorICAgIHN0cnVjdCBfeG1sU2NoZW1hRmFjZXQgKgluZXh0CTogdGhlIG5leHQgdHlwZSBpZiBpbiBhIHNlcXVlbmNlIC4uLgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXZhbHVlCTogVGhlIG9yaWdpbmFsIHZhbHVlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJaWQJOiBPYnNvbGV0ZQorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hQW5ub3RQdHIiPnhtbFNjaGVtYUFubm90UHRyPC9hPglhbm5vdAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQorICAgIGludAlmaXhlZAk6IFhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFLCBldGMuCisgICAgaW50CXdoaXRlc3BhY2UKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPgl2YWwJOiBUaGUgY29tcGlsZWQgdmFsdWUKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+CXJlZ2V4cAk6IFRoZSByZWdleCBmb3IgcGF0dGVybnMKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRmFjZXRMaW5rIiBpZD0ieG1sU2NoZW1hRmFjZXRMaW5rIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hRmFjZXRMaW5rPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxTY2hlbWFGYWNldExpbms8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYUZhY2V0TGluayB7CisgICAgc3RydWN0IF94bWxTY2hlbWFGYWNldExpbmsgKgluZXh0CTogdGhlIG5leHQgZmFjZXQgbGluayAuLi4KKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4JZmFjZXQJOiB0aGUgbGlua2VkIGZhY2V0Cit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYU5vdGF0aW9uIiBpZD0ieG1sU2NoZW1hTm90YXRpb24iPlN0cnVjdHVyZSB4bWxTY2hlbWFOb3RhdGlvbjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hTm90YXRpb248YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYU5vdGF0aW9uIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVUeXBlIj54bWxTY2hlbWFUeXBlVHlwZTwvYT4JdHlwZQk6IFRoZSBraW5kIG9mIHR5cGUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJaWRlbnRpZmllcgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXRhcmdldE5hbWVzcGFjZQorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFUeXBlIiBpZD0ieG1sU2NoZW1hVHlwZSI+U3RydWN0dXJlIHhtbFNjaGVtYVR5cGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFNjaGVtYVR5cGU8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVR5cGUgeworICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVR5cGUiPnhtbFNjaGVtYVR5cGVUeXBlPC9hPgl0eXBlCTogVGhlIGtpbmQgb2YgdHlwZQorICAgIHN0cnVjdCBfeG1sU2NoZW1hVHlwZSAqCW5leHQJOiB0aGUgbmV4dCB0eXBlIGlmIGluIGEgc2VxdWVuY2UgLi4uCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglyZWYJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXJlZk5zCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90UHRyIj54bWxTY2hlbWFBbm5vdFB0cjwvYT4JYW5ub3QKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CXN1YnR5cGVzCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVQdHIiPnhtbFNjaGVtYUF0dHJpYnV0ZVB0cjwvYT4JYXR0cmlidXRlcwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglub2RlCisgICAgaW50CW1pbk9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CW1heE9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CWZsYWdzCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFDb250ZW50VHlwZSI+eG1sU2NoZW1hQ29udGVudFR5cGU8L2E+CWNvbnRlbnRUeXBlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJYmFzZQk6IEJhc2UgdHlwZSdzIGxvY2FsIG5hbWUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgliYXNlTnMJOiBCYXNlIHR5cGUncyB0YXJnZXQgbmFtZXNwYWNlCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPgliYXNlVHlwZQk6IFRoZSBiYXNlIHR5cGUgY29tcG9uZW50CisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+CWZhY2V0cwk6IExvY2FsIGZhY2V0cworICAgIHN0cnVjdCBfeG1sU2NoZW1hVHlwZSAqCXJlZGVmCTogRGVwcmVjYXRlZDsgbm90IHVzZWQKKyAgICBpbnQJcmVjdXJzZQk6IE9ic29sZXRlCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyIj54bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyPC9hPiAqCWF0dHJpYnV0ZVVzZXMJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hV2lsZGNhcmRQdHIiPnhtbFNjaGVtYVdpbGRjYXJkUHRyPC9hPglhdHRyaWJ1dGVXaWxkY2FyZAorICAgIGludAlidWlsdEluVHlwZQk6IFR5cGUgb2YgYnVpbHQtaW4gdHlwZXMuCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlTGlua1B0ciI+eG1sU2NoZW1hVHlwZUxpbmtQdHI8L2E+CW1lbWJlclR5cGVzCTogbWVtYmVyLXR5cGVzIGlmIGEgdW5pb24gdHlwZS4KKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0TGlua1B0ciI+eG1sU2NoZW1hRmFjZXRMaW5rUHRyPC9hPglmYWNldFNldAk6IEFsbCBmYWNldHMgKGluY2wuIGluaGVyaXRlZCkKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglyZWZQcmVmaXgJOiBEZXByZWNhdGVkOyBub3QgdXNlZAorICAgIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4JY29udGVudFR5cGVEZWYJOiBVc2VkIGZvciB0aGUgc2ltcGxlIGNvbnRlbnQgb2YgY29tcGxleAorICAgIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4JY29udE1vZGVsCTogSG9sZHMgdGhlIGF1dG9tYXRvbiBvZiB0aGUgY29udGVudCBtb2RlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdGFyZ2V0TmFtZXNwYWNlCisgICAgdm9pZCAqCWF0dHJVc2VzCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVR5cGVMaW5rIiBpZD0ieG1sU2NoZW1hVHlwZUxpbmsiPlN0cnVjdHVyZSB4bWxTY2hlbWFUeXBlTGluazwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hVHlwZUxpbms8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVR5cGVMaW5rIHsKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYVR5cGVMaW5rICoJbmV4dAk6IHRoZSBuZXh0IHR5cGUgbGluayAuLi4KKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CXR5cGUJOiB0aGUgbGlua2VkIHR5cGUKK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxTY2hlbWFUeXBlVHlwZSIgaWQ9InhtbFNjaGVtYVR5cGVUeXBlIj54bWxTY2hlbWFUeXBlVHlwZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFNjaGVtYVR5cGVUeXBlIHsKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQkFTSUMiIGlkPSJYTUxfU0NIRU1BX1RZUEVfQkFTSUMiPlhNTF9TQ0hFTUFfVFlQRV9CQVNJQzwvYT4gPSAxIDogQSBidWlsdC1pbiBkYXRhdHlwZQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BTlkiIGlkPSJYTUxfU0NIRU1BX1RZUEVfQU5ZIj5YTUxfU0NIRU1BX1RZUEVfQU5ZPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfRkFDRVQiIGlkPSJYTUxfU0NIRU1BX1RZUEVfRkFDRVQiPlhNTF9TQ0hFTUFfVFlQRV9GQUNFVDwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEUiPlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYIiBpZD0iWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVgiPlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UiIGlkPSJYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UiPlhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRTwvYT4gPSA2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0NIT0lDRSIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0UiPlhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0U8L2E+ID0gNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BTEwiIGlkPSJYTUxfU0NIRU1BX1RZUEVfQUxMIj5YTUxfU0NIRU1BX1RZUEVfQUxMPC9hPiA9IDgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfU0lNUExFX0NPTlRFTlQiIGlkPSJYTUxfU0NIRU1BX1RZUEVfU0lNUExFX0NPTlRFTlQiPlhNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVDwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVhfQ09OVEVOVCIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYX0NPTlRFTlQiPlhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYX0NPTlRFTlQ8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfVVIiIGlkPSJYTUxfU0NIRU1BX1RZUEVfVVIiPlhNTF9TQ0hFTUFfVFlQRV9VUjwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTiIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTiI+WE1MX1NDSEVNQV9UWVBFX1JFU1RSSUNUSU9OPC9hPiA9IDEyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0VYVEVOU0lPTiIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT04iPlhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT048L2E+ID0gMTMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVCIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UIj5YTUxfU0NIRU1BX1RZUEVfRUxFTUVOVDwvYT4gPSAxNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEUiIGlkPSJYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQIiBpZD0iWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA8L2E+ID0gMTYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfR1JPVVAiIGlkPSJYTUxfU0NIRU1BX1RZUEVfR1JPVVAiPlhNTF9TQ0hFTUFfVFlQRV9HUk9VUDwvYT4gPSAxNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTiIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTiI+WE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OPC9hPiA9IDE4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0xJU1QiIGlkPSJYTUxfU0NIRU1BX1RZUEVfTElTVCI+WE1MX1NDSEVNQV9UWVBFX0xJU1Q8L2E+ID0gMTkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfVU5JT04iIGlkPSJYTUxfU0NIRU1BX1RZUEVfVU5JT04iPlhNTF9TQ0hFTUFfVFlQRV9VTklPTjwvYT4gPSAyMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFIiBpZD0iWE1MX1NDSEVNQV9UWVBFX0FOWV9BVFRSSUJVVEUiPlhNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFPC9hPiA9IDIxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX0lEQ19VTklRVUUiIGlkPSJYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRSI+WE1MX1NDSEVNQV9UWVBFX0lEQ19VTklRVUU8L2E+ID0gMjIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfSURDX0tFWSIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZIj5YTUxfU0NIRU1BX1RZUEVfSURDX0tFWTwvYT4gPSAyMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGIiBpZD0iWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYiPlhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGPC9hPiA9IDI0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFIiBpZD0iWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFIj5YTUxfU0NIRU1BX1RZUEVfUEFSVElDTEU8L2E+ID0gMjUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRSIgaWQ9IlhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFIj5YTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRTwvYT4gPSAyNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFIiBpZD0iWE1MX1NDSEVNQV9GQUNFVF9NSU5JTkNMVVNJVkUiPlhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFPC9hPiA9IDEwMDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRSIgaWQ9IlhNTF9TQ0hFTUFfRkFDRVRfTUlORVhDTFVTSVZFIj5YTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRTwvYT4gPSAxMDAxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkUiIGlkPSJYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRSI+WE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU8L2E+ID0gMTAwMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFIiBpZD0iWE1MX1NDSEVNQV9GQUNFVF9NQVhFWENMVVNJVkUiPlhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFPC9hPiA9IDEwMDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX1RPVEFMRElHSVRTIiBpZD0iWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUyI+WE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUzwvYT4gPSAxMDA0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUyIgaWQ9IlhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFMiPlhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM8L2E+ID0gMTAwNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTiIgaWQ9IlhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTiI+WE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOPC9hPiA9IDEwMDYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OIiBpZD0iWE1MX1NDSEVNQV9GQUNFVF9FTlVNRVJBVElPTiI+WE1MX1NDSEVNQV9GQUNFVF9FTlVNRVJBVElPTjwvYT4gPSAxMDA3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFIiBpZD0iWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFIj5YTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0U8L2E+ID0gMTAwOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIIiBpZD0iWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEgiPlhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIPC9hPiA9IDEwMDkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSCIgaWQ9IlhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIIj5YTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDwvYT4gPSAxMDEwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEgiIGlkPSJYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSCI+WE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEg8L2E+ID0gMTAxMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfRVhUUkFfUU5BTUVSRUYiIGlkPSJYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGIj5YTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGPC9hPiA9IDIwMDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQiIgaWQ9IlhNTF9TQ0hFTUFfRVhUUkFfQVRUUl9VU0VfUFJPSElCIj5YTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQjwvYT4gPSAyMDAxCit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsIiBpZD0ieG1sU2NoZW1hVmFsIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hVmFsPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxTY2hlbWFWYWw8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVZhbCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxTY2hlbWFWYWxUeXBlIiBpZD0ieG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFNjaGVtYVZhbFR5cGUgeworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX1VOS05PV04iIGlkPSJYTUxfU0NIRU1BU19VTktOT1dOIj5YTUxfU0NIRU1BU19VTktOT1dOPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19TVFJJTkciIGlkPSJYTUxfU0NIRU1BU19TVFJJTkciPlhNTF9TQ0hFTUFTX1NUUklORzwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfTk9STVNUUklORyIgaWQ9IlhNTF9TQ0hFTUFTX05PUk1TVFJJTkciPlhNTF9TQ0hFTUFTX05PUk1TVFJJTkc8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0RFQ0lNQUwiIGlkPSJYTUxfU0NIRU1BU19ERUNJTUFMIj5YTUxfU0NIRU1BU19ERUNJTUFMPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19USU1FIiBpZD0iWE1MX1NDSEVNQVNfVElNRSI+WE1MX1NDSEVNQVNfVElNRTwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfR0RBWSIgaWQ9IlhNTF9TQ0hFTUFTX0dEQVkiPlhNTF9TQ0hFTUFTX0dEQVk8L2E+ID0gNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0dNT05USCIgaWQ9IlhNTF9TQ0hFTUFTX0dNT05USCI+WE1MX1NDSEVNQVNfR01PTlRIPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19HTU9OVEhEQVkiIGlkPSJYTUxfU0NIRU1BU19HTU9OVEhEQVkiPlhNTF9TQ0hFTUFTX0dNT05USERBWTwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfR1lFQVIiIGlkPSJYTUxfU0NIRU1BU19HWUVBUiI+WE1MX1NDSEVNQVNfR1lFQVI8L2E+ID0gOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0dZRUFSTU9OVEgiIGlkPSJYTUxfU0NIRU1BU19HWUVBUk1PTlRIIj5YTUxfU0NIRU1BU19HWUVBUk1PTlRIPC9hPiA9IDkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19EQVRFIiBpZD0iWE1MX1NDSEVNQVNfREFURSI+WE1MX1NDSEVNQVNfREFURTwvYT4gPSAxMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0RBVEVUSU1FIiBpZD0iWE1MX1NDSEVNQVNfREFURVRJTUUiPlhNTF9TQ0hFTUFTX0RBVEVUSU1FPC9hPiA9IDExCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRFVSQVRJT04iIGlkPSJYTUxfU0NIRU1BU19EVVJBVElPTiI+WE1MX1NDSEVNQVNfRFVSQVRJT048L2E+ID0gMTIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19GTE9BVCIgaWQ9IlhNTF9TQ0hFTUFTX0ZMT0FUIj5YTUxfU0NIRU1BU19GTE9BVDwvYT4gPSAxMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0RPVUJMRSIgaWQ9IlhNTF9TQ0hFTUFTX0RPVUJMRSI+WE1MX1NDSEVNQVNfRE9VQkxFPC9hPiA9IDE0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfQk9PTEVBTiIgaWQ9IlhNTF9TQ0hFTUFTX0JPT0xFQU4iPlhNTF9TQ0hFTUFTX0JPT0xFQU48L2E+ID0gMTUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19UT0tFTiIgaWQ9IlhNTF9TQ0hFTUFTX1RPS0VOIj5YTUxfU0NIRU1BU19UT0tFTjwvYT4gPSAxNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0xBTkdVQUdFIiBpZD0iWE1MX1NDSEVNQVNfTEFOR1VBR0UiPlhNTF9TQ0hFTUFTX0xBTkdVQUdFPC9hPiA9IDE3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfTk1UT0tFTiIgaWQ9IlhNTF9TQ0hFTUFTX05NVE9LRU4iPlhNTF9TQ0hFTUFTX05NVE9LRU48L2E+ID0gMTgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OTVRPS0VOUyIgaWQ9IlhNTF9TQ0hFTUFTX05NVE9LRU5TIj5YTUxfU0NIRU1BU19OTVRPS0VOUzwvYT4gPSAxOQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX05BTUUiIGlkPSJYTUxfU0NIRU1BU19OQU1FIj5YTUxfU0NIRU1BU19OQU1FPC9hPiA9IDIwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfUU5BTUUiIGlkPSJYTUxfU0NIRU1BU19RTkFNRSI+WE1MX1NDSEVNQVNfUU5BTUU8L2E+ID0gMjEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OQ05BTUUiIGlkPSJYTUxfU0NIRU1BU19OQ05BTUUiPlhNTF9TQ0hFTUFTX05DTkFNRTwvYT4gPSAyMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0lEIiBpZD0iWE1MX1NDSEVNQVNfSUQiPlhNTF9TQ0hFTUFTX0lEPC9hPiA9IDIzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfSURSRUYiIGlkPSJYTUxfU0NIRU1BU19JRFJFRiI+WE1MX1NDSEVNQVNfSURSRUY8L2E+ID0gMjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19JRFJFRlMiIGlkPSJYTUxfU0NIRU1BU19JRFJFRlMiPlhNTF9TQ0hFTUFTX0lEUkVGUzwvYT4gPSAyNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VOVElUWSIgaWQ9IlhNTF9TQ0hFTUFTX0VOVElUWSI+WE1MX1NDSEVNQVNfRU5USVRZPC9hPiA9IDI2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRU5USVRJRVMiIGlkPSJYTUxfU0NIRU1BU19FTlRJVElFUyI+WE1MX1NDSEVNQVNfRU5USVRJRVM8L2E+ID0gMjcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OT1RBVElPTiIgaWQ9IlhNTF9TQ0hFTUFTX05PVEFUSU9OIj5YTUxfU0NIRU1BU19OT1RBVElPTjwvYT4gPSAyOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0FOWVVSSSIgaWQ9IlhNTF9TQ0hFTUFTX0FOWVVSSSI+WE1MX1NDSEVNQVNfQU5ZVVJJPC9hPiA9IDI5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfSU5URUdFUiIgaWQ9IlhNTF9TQ0hFTUFTX0lOVEVHRVIiPlhNTF9TQ0hFTUFTX0lOVEVHRVI8L2E+ID0gMzAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19OUElOVEVHRVIiIGlkPSJYTUxfU0NIRU1BU19OUElOVEVHRVIiPlhNTF9TQ0hFTUFTX05QSU5URUdFUjwvYT4gPSAzMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX05JTlRFR0VSIiBpZD0iWE1MX1NDSEVNQVNfTklOVEVHRVIiPlhNTF9TQ0hFTUFTX05JTlRFR0VSPC9hPiA9IDMyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfTk5JTlRFR0VSIiBpZD0iWE1MX1NDSEVNQVNfTk5JTlRFR0VSIj5YTUxfU0NIRU1BU19OTklOVEVHRVI8L2E+ID0gMzMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19QSU5URUdFUiIgaWQ9IlhNTF9TQ0hFTUFTX1BJTlRFR0VSIj5YTUxfU0NIRU1BU19QSU5URUdFUjwvYT4gPSAzNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0lOVCIgaWQ9IlhNTF9TQ0hFTUFTX0lOVCI+WE1MX1NDSEVNQVNfSU5UPC9hPiA9IDM1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfVUlOVCIgaWQ9IlhNTF9TQ0hFTUFTX1VJTlQiPlhNTF9TQ0hFTUFTX1VJTlQ8L2E+ID0gMzYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19MT05HIiBpZD0iWE1MX1NDSEVNQVNfTE9ORyI+WE1MX1NDSEVNQVNfTE9ORzwvYT4gPSAzNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX1VMT05HIiBpZD0iWE1MX1NDSEVNQVNfVUxPTkciPlhNTF9TQ0hFTUFTX1VMT05HPC9hPiA9IDM4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfU0hPUlQiIGlkPSJYTUxfU0NIRU1BU19TSE9SVCI+WE1MX1NDSEVNQVNfU0hPUlQ8L2E+ID0gMzkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19VU0hPUlQiIGlkPSJYTUxfU0NIRU1BU19VU0hPUlQiPlhNTF9TQ0hFTUFTX1VTSE9SVDwvYT4gPSA0MAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0JZVEUiIGlkPSJYTUxfU0NIRU1BU19CWVRFIj5YTUxfU0NIRU1BU19CWVRFPC9hPiA9IDQxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfVUJZVEUiIGlkPSJYTUxfU0NIRU1BU19VQllURSI+WE1MX1NDSEVNQVNfVUJZVEU8L2E+ID0gNDIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19IRVhCSU5BUlkiIGlkPSJYTUxfU0NIRU1BU19IRVhCSU5BUlkiPlhNTF9TQ0hFTUFTX0hFWEJJTkFSWTwvYT4gPSA0MworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWSIgaWQ9IlhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWSI+WE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZPC9hPiA9IDQ0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfQU5ZVFlQRSIgaWQ9IlhNTF9TQ0hFTUFTX0FOWVRZUEUiPlhNTF9TQ0hFTUFTX0FOWVRZUEU8L2E+ID0gNDUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFIiBpZD0iWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSI+WE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRTwvYT4gPSA0NgorfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVdpbGRjYXJkIiBpZD0ieG1sU2NoZW1hV2lsZGNhcmQiPlN0cnVjdHVyZSB4bWxTY2hlbWFXaWxkY2FyZDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hV2lsZGNhcmQ8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVdpbGRjYXJkIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVUeXBlIj54bWxTY2hlbWFUeXBlVHlwZTwvYT4JdHlwZQk6IFRoZSBraW5kIG9mIHR5cGUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglpZAk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFBbm5vdFB0ciI+eG1sU2NoZW1hQW5ub3RQdHI8L2E+CWFubm90CisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglub2RlCisgICAgaW50CW1pbk9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CW1heE9jY3Vycwk6IERlcHJlY2F0ZWQ7IG5vdCB1c2VkCisgICAgaW50CXByb2Nlc3NDb250ZW50cworICAgIGludAlhbnkJOiBJbmRpY2F0ZXMgaWYgdGhlIG5zIGNvbnN0cmFpbnQgaXMgb2YgIyMKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVdpbGRjYXJkTnNQdHIiPnhtbFNjaGVtYVdpbGRjYXJkTnNQdHI8L2E+CW5zU2V0CTogVGhlIGxpc3Qgb2YgYWxsb3dlZCBuYW1lc3BhY2VzCisgICAgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIj54bWxTY2hlbWFXaWxkY2FyZE5zUHRyPC9hPgluZWdOc1NldAk6IFRoZSBuZWdhdGVkIG5hbWVzcGFjZQorICAgIGludAlmbGFncworfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFXaWxkY2FyZE5zIiBpZD0ieG1sU2NoZW1hV2lsZGNhcmROcyI+U3RydWN0dXJlIHhtbFNjaGVtYVdpbGRjYXJkTnM8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFNjaGVtYVdpbGRjYXJkTnM8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVdpbGRjYXJkTnMgeworICAgIHN0cnVjdCBfeG1sU2NoZW1hV2lsZGNhcmROcyAqCW5leHQJOiB0aGUgbmV4dCBjb25zdHJhaW50IGxpbmsgLi4uCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdmFsdWUJOiB0aGUgdmFsdWUKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRnJlZVR5cGUiIGlkPSJ4bWxTY2hlbWFGcmVlVHlwZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFGcmVlVHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hRnJlZVR5cGUJCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUpPGJyIC8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIGEgU2NoZW1hIFR5cGUgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHR5cGUgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRnJlZVdpbGRjYXJkIiBpZD0ieG1sU2NoZW1hRnJlZVdpbGRjYXJkIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYUZyZWVXaWxkY2FyZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hRnJlZVdpbGRjYXJkCQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFXaWxkY2FyZFB0ciI+eG1sU2NoZW1hV2lsZGNhcmRQdHI8L2E+IHdpbGRjYXJkKTxiciAvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZXMgYSB3aWxkY2FyZCBzdHJ1Y3R1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2lsZGNhcmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgd2lsZGNhcmQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXNjaGVtYXRyb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Njc0OThlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtc2NoZW1hdHJvbi5odG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSBzY2hlbWF0cm9uIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgc2NoZW1hdHJvbiBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCI+c2NoZW1hc0ludGVybmFsczwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sIj50aHJlYWRzPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+aW50ZXJmYWNlIHRvIHRoZSBYTUwgU2NoZW1hdHJvbiB2YWxpZGl0eSBjaGVja2luZy4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hdHJvbiI+eG1sU2NoZW1hdHJvbjwvYT48YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYXRyb24KK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hdHJvblBhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0PC9hPjxiciAvPnN0cnVjdCBfeG1sU2NoZW1hdHJvblBhcnNlckN0eHQKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiIGlkPSJ4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb24iPnhtbFNjaGVtYXRyb248L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hdHJvblB0ciIgaWQ9InhtbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uVmFsaWRDdHh0PC9hPjxiciAvPnN0cnVjdCBfeG1sU2NoZW1hdHJvblZhbGlkQ3R4dAorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHQiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciIgaWQ9InhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucyI+eG1sU2NoZW1hdHJvblZhbGlkT3B0aW9uczwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uRnJlZSI+eG1sU2NoZW1hdHJvbkZyZWU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUHRyIj54bWxTY2hlbWF0cm9uUHRyPC9hPiBzY2hlbWEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0Ij54bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIj54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCI+eG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCI+eG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQ8L2E+CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCQkJIGludCBzaXplKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQiPnhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIFVSTCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0Ij54bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUHRyIj54bWxTY2hlbWF0cm9uUHRyPC9hPiBzY2hlbWEsIDxiciAvPgkJCQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUHRyIj54bWxTY2hlbWF0cm9uUHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hdHJvblBhcnNlIj54bWxTY2hlbWF0cm9uUGFyc2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIj54bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIj54bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNjaGVtYXRyb25WYWxpZGF0ZURvYyI+eG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIj54bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBpbnN0YW5jZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jPC9hPgkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJCSAuLi4gLi4uKQorPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb24iIGlkPSJ4bWxTY2hlbWF0cm9uIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hdHJvbjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hdHJvbjxiciAvPnN0cnVjdCBfeG1sU2NoZW1hdHJvbiB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sU2NoZW1hdHJvblBhcnNlckN0eHQiIGlkPSJ4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCI+U3RydWN0dXJlIHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0PC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dDxiciAvPnN0cnVjdCBfeG1sU2NoZW1hdHJvblBhcnNlckN0eHQgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZEN0eHQiIGlkPSJ4bWxTY2hlbWF0cm9uVmFsaWRDdHh0Ij5TdHJ1Y3R1cmUgeG1sU2NoZW1hdHJvblZhbGlkQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hdHJvblZhbGlkQ3R4dDxiciAvPnN0cnVjdCBfeG1sU2NoZW1hdHJvblZhbGlkQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zIiBpZD0ieG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucyI+eG1sU2NoZW1hdHJvblZhbGlkT3B0aW9uczwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMgeworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVCIgaWQ9IlhNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVCI+WE1MX1NDSEVNQVRST05fT1VUX1FVSUVUPC9hPiA9IDEgOiBxdWlldCBubyByZXBvcnQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVFJPTl9PVVRfVEVYVCIgaWQ9IlhNTF9TQ0hFTUFUUk9OX09VVF9URVhUIj5YTUxfU0NIRU1BVFJPTl9PVVRfVEVYVDwvYT4gPSAyIDogYnVpbGQgYSB0ZXh0dWFsIHJlcG9ydAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFUUk9OX09VVF9YTUwiIGlkPSJYTUxfU0NIRU1BVFJPTl9PVVRfWE1MIj5YTUxfU0NIRU1BVFJPTl9PVVRfWE1MPC9hPiA9IDQgOiBvdXRwdXQgU1ZSTAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFUUk9OX09VVF9FUlJPUiIgaWQ9IlhNTF9TQ0hFTUFUUk9OX09VVF9FUlJPUiI+WE1MX1NDSEVNQVRST05fT1VUX0VSUk9SPC9hPiA9IDggOiBvdXRwdXQgdmlhIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05fT1VUX0ZJTEUiIGlkPSJYTUxfU0NIRU1BVFJPTl9PVVRfRklMRSI+WE1MX1NDSEVNQVRST05fT1VUX0ZJTEU8L2E+ID0gMjU2IDogb3V0cHV0IHRvIGEgZmlsZSBkZXNjcmlwdG9yCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05fT1VUX0JVRkZFUiIgaWQ9IlhNTF9TQ0hFTUFUUk9OX09VVF9CVUZGRVIiPlhNTF9TQ0hFTUFUUk9OX09VVF9CVUZGRVI8L2E+ID0gNTEyIDogb3V0cHV0IHRvIGEgYnVmZmVyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05fT1VUX0lPIiBpZD0iWE1MX1NDSEVNQVRST05fT1VUX0lPIj5YTUxfU0NIRU1BVFJPTl9PVVRfSU88L2E+ID0gMTAyNCA6IG91dHB1dCB0byBJL08gbWVjaGFuaXNtCit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sU2NoZW1hdHJvbkZyZWUiIGlkPSJ4bWxTY2hlbWF0cm9uRnJlZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWF0cm9uRnJlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hdHJvbkZyZWUJCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+IHNjaGVtYSk8YnIgLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgYSBTY2hlbWF0cm9uIHN0cnVjdHVyZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCIgaWQ9InhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dAkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5GcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0IiBpZD0ieG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5GcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQiIGlkPSJ4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPgl4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIFhNTCBTY2hlbWF0cm9ucyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IGRvY3VtZW50LiBOQi4gVGhlIGRvY3VtZW50IG1heSBiZSBtb2RpZmllZCBkdXJpbmcgdGhlIHBhcnNpbmcgcHJvY2Vzcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlcGFyc2VkIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCIgaWQ9InhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+CXhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0CShjb25zdCBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCQkJIGludCBzaXplKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIFhNTCBTY2hlbWF0cm9ucyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IG1lbW9yeSBidWZmZXIgZXhwZWN0ZWQgdG8gY29udGFpbiBhbiBYTUwgU2NoZW1hdHJvbnMgZmlsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgY29udGFpbmluZyB0aGUgc2NoZW1hczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQiIGlkPSJ4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyPC9hPgl4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIFVSTCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgU2NoZW1hdHJvbnMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBmaWxlL3Jlc291cmNlIGV4cGVjdGVkIHRvIGNvbnRhaW4gYW4gWE1MIFNjaGVtYXRyb25zIGZpbGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYXRpb24gb2YgdGhlIHNjaGVtYTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQiIGlkPSJ4bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0Ij48L2E+RnVuY3Rpb246IHhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+CXhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQJKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwjeG1sU2NoZW1hdHJvblB0ciI+eG1sU2NoZW1hdHJvblB0cjwvYT4gc2NoZW1hLCA8YnIgLz4JCQkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIFhNTCBTY2hlbWF0cm9ucyB2YWxpZGF0aW9uIGNvbnRleHQgYmFzZWQgb24gdGhlIGdpdmVuIHNjaGVtYS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlY29tcGlsZWQgWE1MIFNjaGVtYXRyb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMiPnhtbFNjaGVtYXRyb25WYWxpZE9wdGlvbnM8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25QYXJzZSIgaWQ9InhtbFNjaGVtYXRyb25QYXJzZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWF0cm9uUGFyc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25QdHIiPnhtbFNjaGVtYXRyb25QdHI8L2E+CXhtbFNjaGVtYXRyb25QYXJzZQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhIHNjaGVtYSBkZWZpbml0aW9uIHJlc291cmNlIGFuZCBidWlsZCBhbiBpbnRlcm5hbCBYTUwgU2hlbWEgc3RydXR1cmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5zdGFuY2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGludGVybmFsIFhNTCBTY2hlbWF0cm9uIHN0cnVjdHVyZSBidWlsdCBmcm9tIHRoZSByZXNvdXJjZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIiBpZD0ieG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycyI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hdHJvbi5odG1sI3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIiPnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBzZXJyb3IsIDxiciAvPgkJCQkJCSB2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTY2hlbWF0cm9uIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2Vycm9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RydWN0dXJlZCBlcnJvciBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb25zIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MiIGlkPSJ4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYwkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXRyb24uaHRtbCN4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIj54bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBpbnN0YW5jZSk8YnIgLz4KKzwvcHJlPjxwPlZhbGlkYXRlIGEgdHJlZSBpbnN0YW5jZSBhZ2FpbnN0IHRoZSBzY2hlbWF0cm9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmluc3RhbmNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgaW5zdGFjZSB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvciBhbmQgYW4gZXJyb3IgY291bnQgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyIgaWQ9InhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYwordm9pZAl4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT48cD5TaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhIFNjaGVtYXRyb24gdmFsaWRhdGlvbjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYyIgaWQ9InhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYwordm9pZAl4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYwkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJCSAuLi4gLi4uKQorPC9wcmU+PHA+U2lnbmF0dXJlIG9mIGEgd2FybmluZyBjYWxsYmFjayBmcm9tIGEgU2NoZW1hdHJvbiB2YWxpZGF0aW9uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC10aHJlYWRzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC10aHJlYWRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODEyMzM2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXRocmVhZHMuaHRtbApAQCAtMCwwICsxLDcyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgdGhyZWFkcyBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIHRocmVhZHMgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWF0cm9uLmh0bWwiPnNjaGVtYXRyb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+dHJlZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnNldCBvZiBnZW5lcmljIHRocmVhZGluZyByZWxhdGVkIHJvdXRpbmVzIHNob3VsZCB3b3JrIHdpdGggcHRocmVhZHMsIFdpbmRvd3MgbmF0aXZlIG9yIFRMUyB0aHJlYWRzIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbE11dGV4Ij54bWxNdXRleDwvYT48YnIgLz5zdHJ1Y3QgX3htbE11dGV4CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXgiPnhtbE11dGV4PC9hPiAqIDxhIG5hbWU9InhtbE11dGV4UHRyIiBpZD0ieG1sTXV0ZXhQdHIiPnhtbE11dGV4UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sUk11dGV4Ij54bWxSTXV0ZXg8L2E+PGJyIC8+c3RydWN0IF94bWxSTXV0ZXgKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCN4bWxSTXV0ZXgiPnhtbFJNdXRleDwvYT4gKiA8YSBuYW1lPSJ4bWxSTXV0ZXhQdHIiIGlkPSJ4bWxSTXV0ZXhQdHIiPnhtbFJNdXRleFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwVGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbERsbE1haW4iPnhtbERsbE1haW48L2E+CQkJKHZvaWQgKiBoaW5zdERMTCwgPGJyIC8+CQkJCQkgdW5zaWduZWQgbG9uZyBmZHdSZWFzb24sIDxiciAvPgkJCQkJIHZvaWQgKiBscHZSZXNlcnZlZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlTXV0ZXgiPnhtbEZyZWVNdXRleDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlUk11dGV4Ij54bWxGcmVlUk11dGV4PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxHbG9iYWxTdGF0ZVB0ciI+eG1sR2xvYmFsU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXRHbG9iYWxTdGF0ZSI+eG1sR2V0R2xvYmFsU3RhdGU8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sR2V0VGhyZWFkSWQiPnhtbEdldFRocmVhZElkPC9hPgkJCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEluaXRUaHJlYWRzIj54bWxJbml0VGhyZWFkczwvYT4JCQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbElzTWFpblRocmVhZCI+eG1sSXNNYWluVGhyZWFkPC9hPgkJCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbExvY2tMaWJyYXJ5Ij54bWxMb2NrTGlicmFyeTwvYT4JCQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxNdXRleExvY2siPnhtbE11dGV4TG9jazwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxNdXRleFVubG9jayI+eG1sTXV0ZXhVbmxvY2s8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhQdHIiPnhtbE11dGV4UHRyPC9hPiB0b2spPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdNdXRleCI+eG1sTmV3TXV0ZXg8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3Uk11dGV4Ij54bWxOZXdSTXV0ZXg8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxSTXV0ZXhMb2NrIj54bWxSTXV0ZXhMb2NrPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUk11dGV4VW5sb2NrIj54bWxSTXV0ZXhVbmxvY2s8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4UHRyIj54bWxSTXV0ZXhQdHI8L2E+IHRvayk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxVbmxvY2tMaWJyYXJ5Ij54bWxVbmxvY2tMaWJyYXJ5PC9hPgkJKHZvaWQpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbE11dGV4IiBpZD0ieG1sTXV0ZXgiPlN0cnVjdHVyZSB4bWxNdXRleDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sTXV0ZXg8YnIgLz5zdHJ1Y3QgX3htbE11dGV4IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxSTXV0ZXgiIGlkPSJ4bWxSTXV0ZXgiPlN0cnVjdHVyZSB4bWxSTXV0ZXg8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFJNdXRleDxiciAvPnN0cnVjdCBfeG1sUk11dGV4IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwVGhyZWFkcyIgaWQ9InhtbENsZWFudXBUaHJlYWRzIj48L2E+RnVuY3Rpb246IHhtbENsZWFudXBUaHJlYWRzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhbnVwVGhyZWFkcwkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD54bWxDbGVhbnVwVGhyZWFkcygpIGlzIHVzZWQgdG8gdG8gY2xlYW51cCBhbGwgdGhlIHRocmVhZCByZWxhdGVkIGRhdGEgb2YgdGhlIGxpYnhtbDIgbGlicmFyeSBvbmNlIHByb2Nlc3NpbmcgaGFzIGVuZGVkLiBXQVJOSU5HOiBpZiB5b3VyIGFwcGxpY2F0aW9uIGlzIG11bHRpdGhyZWFkZWQgb3IgaGFzIHBsdWdpbiBzdXBwb3J0IGNhbGxpbmcgdGhpcyBtYXkgY3Jhc2ggdGhlIGFwcGxpY2F0aW9uIGlmIGFub3RoZXIgdGhyZWFkIG9yIGEgcGx1Z2luIGlzIHN0aWxsIHVzaW5nIGxpYnhtbDIuIEl0J3Mgc29tZXRpbWVzIHZlcnkgaGFyZCB0byBndWVzcyBpZiBsaWJ4bWwyIGlzIGluIHVzZSBpbiB0aGUgYXBwbGljYXRpb24sIHNvbWUgbGlicmFyaWVzIG9yIHBsdWdpbnMgbWF5IHVzZSBpdCB3aXRob3V0IG5vdGljZS4gSW4gY2FzZSBvZiBkb3VidCBhYnN0YWluIGZyb20gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9yIGRvIGl0IGp1c3QgYmVmb3JlIGNhbGxpbmcgZXhpdCgpIHRvIGF2b2lkIGxlYWsgcmVwb3J0cyBmcm9tIHZhbGdyaW5kICE8L3A+Cis8aDM+PGEgbmFtZT0ieG1sRGxsTWFpbiIgaWQ9InhtbERsbE1haW4iPjwvYT5GdW5jdGlvbjogeG1sRGxsTWFpbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxEbGxNYWluCQkJKHZvaWQgKiBoaW5zdERMTCwgPGJyIC8+CQkJCQkgdW5zaWduZWQgbG9uZyBmZHdSZWFzb24sIDxiciAvPgkJCQkJIHZvaWQgKiBscHZSZXNlcnZlZCk8YnIgLz4KKzwvcHJlPjxwPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhpbnN0RExMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZkd1JlYXNvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5scHZSZXNlcnZlZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlTXV0ZXgiIGlkPSJ4bWxGcmVlTXV0ZXgiPjwvYT5GdW5jdGlvbjogeG1sRnJlZU11dGV4PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlTXV0ZXgJCQkoPGEgaHJlZj0ibGlieG1sLXRocmVhZHMuaHRtbCN4bWxNdXRleFB0ciI+eG1sTXV0ZXhQdHI8L2E+IHRvayk8YnIgLz4KKzwvcHJlPjxwPnhtbEZyZWVNdXRleCgpIGlzIHVzZWQgdG8gcmVjbGFpbSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIGEgbGlieG1sMiB0b2tlbiBzdHJ1Y3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2ltcGxlIG11dGV4PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZVJNdXRleCIgaWQ9InhtbEZyZWVSTXV0ZXgiPjwvYT5GdW5jdGlvbjogeG1sRnJlZVJNdXRleDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVJNdXRleAkJCSg8YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spPGJyIC8+Cis8L3ByZT48cD54bWxSRnJlZU11dGV4KCkgaXMgdXNlZCB0byByZWNsYWltIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggYSByZWVudHJhbnQgbXV0ZXguPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVlbnRyYW50IG11dGV4PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0R2xvYmFsU3RhdGUiIGlkPSJ4bWxHZXRHbG9iYWxTdGF0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRHbG9iYWxTdGF0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sR2xvYmFsU3RhdGVQdHIiPnhtbEdsb2JhbFN0YXRlUHRyPC9hPgl4bWxHZXRHbG9iYWxTdGF0ZQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPnhtbEdldEdsb2JhbFN0YXRlKCkgaXMgY2FsbGVkIHRvIHJldHJpZXZlIHRoZSBnbG9iYWwgc3RhdGUgZm9yIGEgdGhyZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0aHJlYWQgZ2xvYmFsIHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldFRocmVhZElkIiBpZD0ieG1sR2V0VGhyZWFkSWQiPjwvYT5GdW5jdGlvbjogeG1sR2V0VGhyZWFkSWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2V0VGhyZWFkSWQJCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPnhtbEdldFRocmVhZElkKCkgZmluZCB0aGUgY3VycmVudCB0aHJlYWQgSUQgbnVtYmVyIE5vdGUgdGhhdCB0aGlzIGlzIGxpa2VseSB0byBiZSBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgdXNpbmcgcHRocmVhZHMgYXMgdGhlIHNwZWNpZmljYXRpb24gZG9lc24ndCBtYW5kYXRlIHB0aHJlYWRfdCB0byBiZSBhbiBpbnRlZ2VyIHR5cGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCB0aHJlYWQgSUQgbnVtYmVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSW5pdFRocmVhZHMiIGlkPSJ4bWxJbml0VGhyZWFkcyI+PC9hPkZ1bmN0aW9uOiB4bWxJbml0VGhyZWFkczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sSW5pdFRocmVhZHMJCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPnhtbEluaXRUaHJlYWRzKCkgaXMgdXNlZCB0byB0byBpbml0aWFsaXplIGFsbCB0aGUgdGhyZWFkIHJlbGF0ZWQgZGF0YSBvZiB0aGUgbGlieG1sMiBsaWJyYXJ5LjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxJc01haW5UaHJlYWQiIGlkPSJ4bWxJc01haW5UaHJlYWQiPjwvYT5GdW5jdGlvbjogeG1sSXNNYWluVGhyZWFkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzTWFpblRocmVhZAkJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+eG1sSXNNYWluVGhyZWFkKCkgY2hlY2sgd2hldGhlciB0aGUgY3VycmVudCB0aHJlYWQgaXMgdGhlIG1haW4gdGhyZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIGN1cnJlbnQgdGhyZWFkIGlzIHRoZSBtYWluIHRocmVhZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxMb2NrTGlicmFyeSIgaWQ9InhtbExvY2tMaWJyYXJ5Ij48L2E+RnVuY3Rpb246IHhtbExvY2tMaWJyYXJ5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxMb2NrTGlicmFyeQkJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+eG1sTG9ja0xpYnJhcnkoKSBpcyB1c2VkIHRvIHRha2Ugb3V0IGEgcmUtZW50cmFudCBsb2NrIG9uIHRoZSBsaWJ4bWwyIGxpYnJhcnkuPC9wPgorPGgzPjxhIG5hbWU9InhtbE11dGV4TG9jayIgaWQ9InhtbE11dGV4TG9jayI+PC9hPkZ1bmN0aW9uOiB4bWxNdXRleExvY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE11dGV4TG9jawkJCSg8YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbE11dGV4UHRyIj54bWxNdXRleFB0cjwvYT4gdG9rKTxiciAvPgorPC9wcmU+PHA+eG1sTXV0ZXhMb2NrKCkgaXMgdXNlZCB0byBsb2NrIGEgbGlieG1sMiB0b2tlbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaW1wbGUgbXV0ZXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxNdXRleFVubG9jayIgaWQ9InhtbE11dGV4VW5sb2NrIj48L2E+RnVuY3Rpb246IHhtbE11dGV4VW5sb2NrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxNdXRleFVubG9jawkJCSg8YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbE11dGV4UHRyIj54bWxNdXRleFB0cjwvYT4gdG9rKTxiciAvPgorPC9wcmU+PHA+eG1sTXV0ZXhVbmxvY2soKSBpcyB1c2VkIHRvIHVubG9jayBhIGxpYnhtbDIgdG9rZW4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2ltcGxlIG11dGV4PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3TXV0ZXgiIGlkPSJ4bWxOZXdNdXRleCI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdNdXRleDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwjeG1sTXV0ZXhQdHIiPnhtbE11dGV4UHRyPC9hPgl4bWxOZXdNdXRleAkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD54bWxOZXdNdXRleCgpIGlzIHVzZWQgdG8gYWxsb2NhdGUgYSBsaWJ4bWwyIHRva2VuIHN0cnVjdCBmb3IgdXNlIGluIHN5bmNocm9uaXppbmcgYWNjZXNzIHRvIGRhdGEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgc2ltcGxlIG11dGV4IHBvaW50ZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3Uk11dGV4IiBpZD0ieG1sTmV3Uk11dGV4Ij48L2E+RnVuY3Rpb246IHhtbE5ld1JNdXRleDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwjeG1sUk11dGV4UHRyIj54bWxSTXV0ZXhQdHI8L2E+CXhtbE5ld1JNdXRleAkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD54bWxSTmV3TXV0ZXgoKSBpcyB1c2VkIHRvIGFsbG9jYXRlIGEgcmVlbnRyYW50IG11dGV4IGZvciB1c2UgaW4gc3luY2hyb25pemluZyBhY2Nlc3MgdG8gZGF0YS4gdG9rZW5fciBpcyBhIHJlLWVudHJhbnQgbG9jayBhbmQgdGh1cyB1c2VmdWwgZm9yIHN5bmNocm9uaXppbmcgYWNjZXNzIHRvIGRhdGEgc3RydWN0dXJlcyB0aGF0IG1heSBiZSBtYW5pcHVsYXRlZCBpbiBhIHJlY3Vyc2l2ZSBmYXNoaW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcmVlbnRyYW50IG11dGV4IHBvaW50ZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUk11dGV4TG9jayIgaWQ9InhtbFJNdXRleExvY2siPjwvYT5GdW5jdGlvbjogeG1sUk11dGV4TG9jazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUk11dGV4TG9jawkJCSg8YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spPGJyIC8+Cis8L3ByZT48cD54bWxSTXV0ZXhMb2NrKCkgaXMgdXNlZCB0byBsb2NrIGEgbGlieG1sMiB0b2tlbl9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvazwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlZW50cmFudCBtdXRleDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJNdXRleFVubG9jayIgaWQ9InhtbFJNdXRleFVubG9jayI+PC9hPkZ1bmN0aW9uOiB4bWxSTXV0ZXhVbmxvY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFJNdXRleFVubG9jawkJCSg8YSBocmVmPSJsaWJ4bWwtdGhyZWFkcy5odG1sI3htbFJNdXRleFB0ciI+eG1sUk11dGV4UHRyPC9hPiB0b2spPGJyIC8+Cis8L3ByZT48cD54bWxSTXV0ZXhVbmxvY2soKSBpcyB1c2VkIHRvIHVubG9jayBhIGxpYnhtbDIgdG9rZW5fci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWVudHJhbnQgbXV0ZXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVbmxvY2tMaWJyYXJ5IiBpZD0ieG1sVW5sb2NrTGlicmFyeSI+PC9hPkZ1bmN0aW9uOiB4bWxVbmxvY2tMaWJyYXJ5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxVbmxvY2tMaWJyYXJ5CQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPnhtbFVubG9ja0xpYnJhcnkoKSBpcyB1c2VkIHRvIHJlbGVhc2UgYSByZS1lbnRyYW50IGxvY2sgb24gdGhlIGxpYnhtbDIgbGlicmFyeS48L3A+Cis8cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXRyZWUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGNjNDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtdHJlZS5odG1sCkBAIC0wLDAgKzEsOTU4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgdHJlZSBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIHRyZWUgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC10aHJlYWRzLmh0bWwiPnRocmVhZHM8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sIj51cmk8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtdXJpLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnRoaXMgbW9kdWxlIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlcyBmb3VuZCBpbiBhbiB0cmVlIHJlc3VsdGluZyBmcm9tIGFuIFhNTCBvciBIVE1MIHBhcnNpbmcsIGFzIHdlbGwgYXMgdGhlIEFQSSBwcm92aWRlZCBmb3IgdmFyaW91cyBwcm9jZXNzaW5nIG9uIHRoYXQgdHJlZSA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjQkFTRV9CVUZGRVJfU0laRSI+QkFTRV9CVUZGRVJfU0laRTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0dFVF9DT05URU5UIj5YTUxfR0VUX0NPTlRFTlQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9HRVRfTElORSI+WE1MX0dFVF9MSU5FPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfTE9DQUxfTkFNRVNQQUNFIj5YTUxfTE9DQUxfTkFNRVNQQUNFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfWE1MX0lEIj5YTUxfWE1MX0lEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfWE1MX05BTUVTUEFDRSI+WE1MX1hNTF9OQU1FU1BBQ0U8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbENoaWxkcmVuTm9kZSI+eG1sQ2hpbGRyZW5Ob2RlPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxSb290Tm9kZSI+eG1sUm9vdE5vZGU8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sQXR0ciI+eG1sQXR0cjwvYT48YnIgLz5zdHJ1Y3QgX3htbEF0dHIKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0ciI+eG1sQXR0cjwvYT4gKiA8YSBuYW1lPSJ4bWxBdHRyUHRyIiBpZD0ieG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbEF0dHJpYnV0ZSI+eG1sQXR0cmlidXRlPC9hPjxiciAvPnN0cnVjdCBfeG1sQXR0cmlidXRlCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sQXR0cmlidXRlRGVmYXVsdCI+eG1sQXR0cmlidXRlRGVmYXVsdDwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlIj54bWxBdHRyaWJ1dGU8L2E+ICogPGEgbmFtZT0ieG1sQXR0cmlidXRlUHRyIiBpZD0ieG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbEJ1ZmZlciI+eG1sQnVmZmVyPC9hPjxiciAvPnN0cnVjdCBfeG1sQnVmZmVyCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyIj54bWxCdWZmZXI8L2E+ICogPGEgbmFtZT0ieG1sQnVmZmVyUHRyIiBpZD0ieG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxET01XcmFwQ3R4dCI+eG1sRE9NV3JhcEN0eHQ8L2E+PGJyIC8+c3RydWN0IF94bWxET01XcmFwQ3R4dAorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dCI+eG1sRE9NV3JhcEN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sRE9NV3JhcEN0eHRQdHIiIGlkPSJ4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxEb2MiPnhtbERvYzwvYT48YnIgLz5zdHJ1Y3QgX3htbERvYworPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbERvY1Byb3BlcnRpZXMiPnhtbERvY1Byb3BlcnRpZXM8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvYyI+eG1sRG9jPC9hPiAqIDxhIG5hbWU9InhtbERvY1B0ciIgaWQ9InhtbERvY1B0ciI+eG1sRG9jUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sRHRkIj54bWxEdGQ8L2E+PGJyIC8+c3RydWN0IF94bWxEdGQKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkIj54bWxEdGQ8L2E+ICogPGEgbmFtZT0ieG1sRHRkUHRyIiBpZD0ieG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxFbGVtZW50Ij54bWxFbGVtZW50PC9hPjxiciAvPnN0cnVjdCBfeG1sRWxlbWVudAorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sRWxlbWVudENvbnRlbnQiPnhtbEVsZW1lbnRDb250ZW50PC9hPjxiciAvPnN0cnVjdCBfeG1sRWxlbWVudENvbnRlbnQKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxFbGVtZW50Q29udGVudE9jY3VyIj54bWxFbGVtZW50Q29udGVudE9jY3VyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudCI+eG1sRWxlbWVudENvbnRlbnQ8L2E+ICogPGEgbmFtZT0ieG1sRWxlbWVudENvbnRlbnRQdHIiIGlkPSJ4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sRWxlbWVudENvbnRlbnRUeXBlIj54bWxFbGVtZW50Q29udGVudFR5cGU8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnQiPnhtbEVsZW1lbnQ8L2E+ICogPGEgbmFtZT0ieG1sRWxlbWVudFB0ciIgaWQ9InhtbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbEVsZW1lbnRUeXBlVmFsIj54bWxFbGVtZW50VHlwZVZhbDwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbEVudGl0eSI+eG1sRW50aXR5PC9hPjxiciAvPnN0cnVjdCBfeG1sRW50aXR5Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudGl0eSI+eG1sRW50aXR5PC9hPiAqIDxhIG5hbWU9InhtbEVudGl0eVB0ciIgaWQ9InhtbEVudGl0eVB0ciI+eG1sRW50aXR5UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sRW51bWVyYXRpb24iPnhtbEVudW1lcmF0aW9uPC9hPjxiciAvPnN0cnVjdCBfeG1sRW51bWVyYXRpb24KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRW51bWVyYXRpb24iPnhtbEVudW1lcmF0aW9uPC9hPiAqIDxhIG5hbWU9InhtbEVudW1lcmF0aW9uUHRyIiBpZD0ieG1sRW51bWVyYXRpb25QdHIiPnhtbEVudW1lcmF0aW9uUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sSUQiPnhtbElEPC9hPjxiciAvPnN0cnVjdCBfeG1sSUQKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sSUQiPnhtbElEPC9hPiAqIDxhIG5hbWU9InhtbElEUHRyIiBpZD0ieG1sSURQdHIiPnhtbElEUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sTm9kZSI+eG1sTm9kZTwvYT48YnIgLz5zdHJ1Y3QgX3htbE5vZGUKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZSI+eG1sTm9kZTwvYT4gKiA8YSBuYW1lPSJ4bWxOb2RlUHRyIiBpZD0ieG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbE5vdGF0aW9uIj54bWxOb3RhdGlvbjwvYT48YnIgLz5zdHJ1Y3QgX3htbE5vdGF0aW9uCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vdGF0aW9uIj54bWxOb3RhdGlvbjwvYT4gKiA8YSBuYW1lPSJ4bWxOb3RhdGlvblB0ciIgaWQ9InhtbE5vdGF0aW9uUHRyIj54bWxOb3RhdGlvblB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbE5zIj54bWxOczwvYT48YnIgLz5zdHJ1Y3QgX3htbE5zCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zIj54bWxOczwvYT4gKiA8YSBuYW1lPSJ4bWxOc1B0ciIgaWQ9InhtbE5zUHRyIj54bWxOc1B0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPiA8YSBuYW1lPSJ4bWxOc1R5cGUiIGlkPSJ4bWxOc1R5cGUiPnhtbE5zVHlwZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyPC9hPjxiciAvPnN0cnVjdCBfeG1sT3V0cHV0QnVmZmVyCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyPC9hPiAqIDxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlclB0ciIgaWQ9InhtbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sUGFyc2VyQ3R4dCI+eG1sUGFyc2VyQ3R4dDwvYT48YnIgLz5zdHJ1Y3QgX3htbFBhcnNlckN0eHQKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dCI+eG1sUGFyc2VyQ3R4dDwvYT4gKiA8YSBuYW1lPSJ4bWxQYXJzZXJDdHh0UHRyIiBpZD0ieG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFBhcnNlcklucHV0Ij54bWxQYXJzZXJJbnB1dDwvYT48YnIgLz5zdHJ1Y3QgX3htbFBhcnNlcklucHV0Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sUGFyc2VySW5wdXRCdWZmZXI8L2E+PGJyIC8+c3RydWN0IF94bWxQYXJzZXJJbnB1dEJ1ZmZlcgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlciI+eG1sUGFyc2VySW5wdXRCdWZmZXI8L2E+ICogPGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiIGlkPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0Ij54bWxQYXJzZXJJbnB1dDwvYT4gKiA8YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dFB0ciIgaWQ9InhtbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFJlZiI+eG1sUmVmPC9hPjxiciAvPnN0cnVjdCBfeG1sUmVmCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFJlZiI+eG1sUmVmPC9hPiAqIDxhIG5hbWU9InhtbFJlZlB0ciIgaWQ9InhtbFJlZlB0ciI+eG1sUmVmUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT48YnIgLz5zdHJ1Y3QgX3htbFNBWEhhbmRsZXIKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlciI+eG1sU0FYSGFuZGxlcjwvYT4gKiA8YSBuYW1lPSJ4bWxTQVhIYW5kbGVyUHRyIiBpZD0ieG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNBWExvY2F0b3IiPnhtbFNBWExvY2F0b3I8L2E+PGJyIC8+c3RydWN0IF94bWxTQVhMb2NhdG9yCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWExvY2F0b3IiPnhtbFNBWExvY2F0b3I8L2E+ICogPGEgbmFtZT0ieG1sU0FYTG9jYXRvclB0ciIgaWQ9InhtbFNBWExvY2F0b3JQdHIiPnhtbFNBWExvY2F0b3JQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkQ2hpbGQiPnhtbEFkZENoaWxkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGRDaGlsZExpc3QiPnhtbEFkZENoaWxkTGlzdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkTmV4dFNpYmxpbmciPnhtbEFkZE5leHRTaWJsaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGRQcmV2U2libGluZyI+eG1sQWRkUHJldlNpYmxpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEFkZFNpYmxpbmciPnhtbEFkZFNpYmxpbmc8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCI+eG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHJpbmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxCdWZmZXJBZGQiPnhtbEJ1ZmZlckFkZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxCdWZmZXJBZGRIZWFkIj54bWxCdWZmZXJBZGRIZWFkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQnVmZmVyQ0NhdCI+eG1sQnVmZmVyQ0NhdDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogc3RyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQnVmZmVyQ2F0Ij54bWxCdWZmZXJDYXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxCdWZmZXJDb250ZW50Ij54bWxCdWZmZXJDb250ZW50PC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxCdWZmZXJDcmVhdGUiPnhtbEJ1ZmZlckNyZWF0ZTwvYT4JCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxCdWZmZXJDcmVhdGVTaXplIj54bWxCdWZmZXJDcmVhdGVTaXplPC9hPgkoc2l6ZV90IHNpemUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sQnVmZmVyQ3JlYXRlU3RhdGljPC9hPgkodm9pZCAqIG1lbSwgPGJyIC8+CQkJCQkgc2l6ZV90IHNpemUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxCdWZmZXJEdW1wIj54bWxCdWZmZXJEdW1wPC9hPgkJCShGSUxFICogZmlsZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEJ1ZmZlckVtcHR5Ij54bWxCdWZmZXJFbXB0eTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEJ1ZmZlckZyZWUiPnhtbEJ1ZmZlckZyZWU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1Zik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEJ1ZmZlckdyb3ciPnhtbEJ1ZmZlckdyb3c8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgdW5zaWduZWQgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEJ1ZmZlckxlbmd0aCI+eG1sQnVmZmVyTGVuZ3RoPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxCdWZmZXJSZXNpemUiPnhtbEJ1ZmZlclJlc2l6ZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSB1bnNpZ25lZCBpbnQgc2l6ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+IHNjaGVtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEJ1ZmZlclNocmluayI+eG1sQnVmZmVyU2hyaW5rPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIHVuc2lnbmVkIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sQnVmZmVyV3JpdGVDSEFSIj54bWxCdWZmZXJXcml0ZUNIQVI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHJpbmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sQnVmZmVyV3JpdGVDaGFyIj54bWxCdWZmZXJXcml0ZUNoYXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogc3RyaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxCdWlsZFFOYW1lIj54bWxCdWlsZFFOYW1lPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5jbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBtZW1vcnksIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dW5zaWduZWQgbG9uZwk8YSBocmVmPSIjeG1sQ2hpbGRFbGVtZW50Q291bnQiPnhtbENoaWxkRWxlbWVudENvdW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlEb2MiPnhtbENvcHlEb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBpbnQgcmVjdXJzaXZlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5RHRkIj54bWxDb3B5RHRkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlOYW1lc3BhY2UiPnhtbENvcHlOYW1lc3BhY2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weU5hbWVzcGFjZUxpc3QiPnhtbENvcHlOYW1lc3BhY2VMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5Tm9kZSI+eG1sQ29weU5vZGU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBpbnQgZXh0ZW5kZWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weU5vZGVMaXN0Ij54bWxDb3B5Tm9kZUxpc3Q8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlQcm9wIj54bWxDb3B5UHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRhcmdldCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weVByb3BMaXN0Ij54bWxDb3B5UHJvcExpc3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0YXJnZXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDcmVhdGVJbnRTdWJzZXQiPnhtbENyZWF0ZUludFN1YnNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbiI+eG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9hPgorPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CTxhIGhyZWY9IiN4bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb24iPnhtbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHRQdHIiPnhtbERPTVdyYXBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNOYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNQcmVmaXgpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbERPTVdyYXBBZG9wdE5vZGUiPnhtbERPTVdyYXBBZG9wdE5vZGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IHNvdXJjZURvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkZXN0RG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGRlc3RQYXJlbnQsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sRE9NV3JhcENsb25lTm9kZSI+eG1sRE9NV3JhcENsb25lTm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gc291cmNlRG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiByZXNOb2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkZXN0RG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGRlc3RQYXJlbnQsIDxiciAvPgkJCQkJIGludCBkZWVwLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxET01XcmFwRnJlZUN0eHQiPnhtbERPTVdyYXBGcmVlQ3R4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbERPTVdyYXBOZXdDdHh0Ij54bWxET01XcmFwTmV3Q3R4dDwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyI+eG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbERPTVdyYXBSZW1vdmVOb2RlIj54bWxET01XcmFwUmVtb3ZlTm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbERvY0NvcHlOb2RlIj54bWxEb2NDb3B5Tm9kZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgaW50IGV4dGVuZGVkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbERvY0NvcHlOb2RlTGlzdCI+eG1sRG9jQ29weU5vZGVMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxEb2NEdW1wIj54bWxEb2NEdW1wPC9hPgkJCShGSUxFICogZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERvY0R1bXBGb3JtYXRNZW1vcnkiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbWVtLCA8YnIgLz4JCQkJCSBpbnQgKiBzaXplLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiPnhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBvdXRfZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogZG9jX3R4dF9wdHIsIDxiciAvPgkJCQkJIGludCAqIGRvY190eHRfbGVuLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogdHh0X2VuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERvY0R1bXBNZW1vcnkiPnhtbERvY0R1bXBNZW1vcnk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbWVtLCA8YnIgLz4JCQkJCSBpbnQgKiBzaXplKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbERvY0R1bXBNZW1vcnlFbmMiPnhtbERvY0R1bXBNZW1vcnlFbmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gb3V0X2RvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGRvY190eHRfcHRyLCA8YnIgLz4JCQkJCSBpbnQgKiBkb2NfdHh0X2xlbiwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHR4dF9lbmNvZGluZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbERvY0Zvcm1hdER1bXAiPnhtbERvY0Zvcm1hdER1bXA8L2E+CQkoRklMRSAqIGYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxEb2NHZXRSb290RWxlbWVudCI+eG1sRG9jR2V0Um9vdEVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRG9jU2V0Um9vdEVsZW1lbnQiPnhtbERvY1NldFJvb3RFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHJvb3QpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRWxlbUR1bXAiPnhtbEVsZW1EdW1wPC9hPgkJCShGSUxFICogZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxGaXJzdEVsZW1lbnRDaGlsZCI+eG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlRG9jIj54bWxGcmVlRG9jPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZUR0ZCI+eG1sRnJlZUR0ZDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVOb2RlIj54bWxGcmVlTm9kZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZU5vZGVMaXN0Ij54bWxGcmVlTm9kZUxpc3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVOcyI+eG1sRnJlZU5zPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVOc0xpc3QiPnhtbEZyZWVOc0xpc3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZVByb3AiPnhtbEZyZWVQcm9wPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlUHJvcExpc3QiPnhtbEZyZWVQcm9wTGlzdDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPgk8YSBocmVmPSIjeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxHZXRDb21wcmVzc01vZGUiPnhtbEdldENvbXByZXNzTW9kZTwvYT4JCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sR2V0RG9jQ29tcHJlc3NNb2RlIj54bWxHZXREb2NDb21wcmVzc01vZGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXRJbnRTdWJzZXQiPnhtbEdldEludFN1YnNldDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0TGFzdENoaWxkIj54bWxHZXRMYXN0Q2hpbGQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+bG9uZwk8YSBocmVmPSIjeG1sR2V0TGluZU5vIj54bWxHZXRMaW5lTm88L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sR2V0Tm9Oc1Byb3AiPnhtbEdldE5vTnNQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sR2V0Tm9kZVBhdGgiPnhtbEdldE5vZGVQYXRoPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gKgk8YSBocmVmPSIjeG1sR2V0TnNMaXN0Ij54bWxHZXROc0xpc3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbEdldE5zUHJvcCI+eG1sR2V0TnNQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZVNwYWNlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxIYXNOc1Byb3AiPnhtbEhhc05zUHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVTcGFjZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxIYXNQcm9wIj54bWxIYXNQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbElzQmxhbmtOb2RlIj54bWxJc0JsYW5rTm9kZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNYSFRNTCI+eG1sSXNYSFRNTDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbExhc3RFbGVtZW50Q2hpbGQiPnhtbExhc3RFbGVtZW50Q2hpbGQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdDRGF0YUJsb2NrIj54bWxOZXdDRGF0YUJsb2NrPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0NoYXJSZWYiPnhtbE5ld0NoYXJSZWY8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0NoaWxkIj54bWxOZXdDaGlsZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0NvbW1lbnQiPnhtbE5ld0NvbW1lbnQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RG9jIj54bWxOZXdEb2M8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmVyc2lvbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NDb21tZW50Ij54bWxOZXdEb2NDb21tZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0RvY0ZyYWdtZW50Ij54bWxOZXdEb2NGcmFnbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NOb2RlIj54bWxOZXdEb2NOb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0RvY05vZGVFYXROYW1lIj54bWxOZXdEb2NOb2RlRWF0TmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0RvY1BJIj54bWxOZXdEb2NQSTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3RG9jUHJvcCI+eG1sTmV3RG9jUHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0RvY1Jhd05vZGUiPnhtbE5ld0RvY1Jhd05vZGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NUZXh0Ij54bWxOZXdEb2NUZXh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NUZXh0TGVuIj54bWxOZXdEb2NUZXh0TGVuPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEdGQiPnhtbE5ld0R0ZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3R2xvYmFsTnMiPnhtbE5ld0dsb2JhbE5zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld05vZGUiPnhtbE5ld05vZGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld05vZGVFYXROYW1lIj54bWxOZXdOb2RlRWF0TmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JPGEgaHJlZj0iI3htbE5ld05zIj54bWxOZXdOczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGhyZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdOc1Byb3AiPnhtbE5ld05zUHJvcDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3TnNQcm9wRWF0TmFtZSI+eG1sTmV3TnNQcm9wRWF0TmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdQSSI+eG1sTmV3UEk8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdQcm9wIj54bWxOZXdQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3UmVmZXJlbmNlIj54bWxOZXdSZWZlcmVuY2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHQiPnhtbE5ld1RleHQ8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdUZXh0Q2hpbGQiPnhtbE5ld1RleHRDaGlsZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRMZW4iPnhtbE5ld1RleHRMZW48L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXh0RWxlbWVudFNpYmxpbmciPnhtbE5leHRFbGVtZW50U2libGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOb2RlQWRkQ29udGVudCI+eG1sTm9kZUFkZENvbnRlbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTm9kZUFkZENvbnRlbnRMZW4iPnhtbE5vZGVBZGRDb250ZW50TGVuPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTm9kZUJ1ZkdldENvbnRlbnQiPnhtbE5vZGVCdWZHZXRDb250ZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZmZlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxOb2RlRHVtcCI+eG1sTm9kZUR1bXA8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgaW50IGxldmVsLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbE5vZGVEdW1wT3V0cHV0Ij54bWxOb2RlRHVtcE91dHB1dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGludCBsZXZlbCwgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxOb2RlR2V0QmFzZSI+eG1sTm9kZUdldEJhc2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sTm9kZUdldENvbnRlbnQiPnhtbE5vZGVHZXRDb250ZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbE5vZGVHZXRMYW5nIj54bWxOb2RlR2V0TGFuZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE5vZGVHZXRTcGFjZVByZXNlcnZlIj54bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE5vZGVJc1RleHQiPnhtbE5vZGVJc1RleHQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciPnhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGxpc3QsIDxiciAvPgkJCQkJIGludCBpbkxpbmUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbE5vZGVMaXN0R2V0U3RyaW5nIj54bWxOb2RlTGlzdEdldFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBsaXN0LCA8YnIgLz4JCQkJCSBpbnQgaW5MaW5lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbE5vZGVTZXRCYXNlIj54bWxOb2RlU2V0QmFzZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHVyaSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOb2RlU2V0Q29udGVudCI+eG1sTm9kZVNldENvbnRlbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTm9kZVNldENvbnRlbnRMZW4iPnhtbE5vZGVTZXRDb250ZW50TGVuPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbE5vZGVTZXRMYW5nIj54bWxOb2RlU2V0TGFuZzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxhbmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTm9kZVNldE5hbWUiPnhtbE5vZGVTZXROYW1lPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSI+eG1sTm9kZVNldFNwYWNlUHJlc2VydmU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGludCB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sUHJldmlvdXNFbGVtZW50U2libGluZyI+eG1sUHJldmlvdXNFbGVtZW50U2libGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlY29uY2lsaWF0ZU5zIj54bWxSZWNvbmNpbGlhdGVOczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdHJlZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlbW92ZVByb3AiPnhtbFJlbW92ZVByb3A8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFJlcGxhY2VOb2RlIj54bWxSZXBsYWNlTm9kZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG9sZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTYXZlRmlsZSI+eG1sU2F2ZUZpbGU8L2E+CQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2F2ZUZpbGVFbmMiPnhtbFNhdmVGaWxlRW5jPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2F2ZUZpbGVUbyI+eG1sU2F2ZUZpbGVUbzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNhdmVGb3JtYXRGaWxlIj54bWxTYXZlRm9ybWF0RmlsZTwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNhdmVGb3JtYXRGaWxlRW5jIj54bWxTYXZlRm9ybWF0RmlsZUVuYzwvYT4JCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2F2ZUZvcm1hdEZpbGVUbyI+eG1sU2F2ZUZvcm1hdEZpbGVUbzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgk8YSBocmVmPSIjeG1sU2VhcmNoTnMiPnhtbFNlYXJjaE5zPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lU3BhY2UpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CTxhIGhyZWY9IiN4bWxTZWFyY2hOc0J5SHJlZiI+eG1sU2VhcmNoTnNCeUhyZWY8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj54bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lPC9hPiBzY2hlbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2V0Q29tcHJlc3NNb2RlIj54bWxTZXRDb21wcmVzc01vZGU8L2E+CQkoaW50IG1vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2V0RG9jQ29tcHJlc3NNb2RlIj54bWxTZXREb2NDb21wcmVzc01vZGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBpbnQgbW9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTZXRMaXN0RG9jIj54bWxTZXRMaXN0RG9jPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGxpc3QsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTZXROcyI+eG1sU2V0TnM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JPGEgaHJlZj0iI3htbFNldE5zUHJvcCI+eG1sU2V0TnNQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxTZXRQcm9wIj54bWxTZXRQcm9wPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2V0VHJlZURvYyI+eG1sU2V0VHJlZURvYzwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFNwbGl0UU5hbWUyIj54bWxTcGxpdFFOYW1lMjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogcHJlZml4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTcGxpdFFOYW1lMyI+eG1sU3BsaXRRTmFtZTM8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50ICogbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFN0cmluZ0dldE5vZGVMaXN0Ij54bWxTdHJpbmdHZXROb2RlTGlzdDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QiPnhtbFN0cmluZ0xlbkdldE5vZGVMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRDb25jYXQiPnhtbFRleHRDb25jYXQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxUZXh0TWVyZ2UiPnhtbFRleHRNZXJnZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGZpcnN0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHNlY29uZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxVbmxpbmtOb2RlIj54bWxVbmxpbmtOb2RlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVuc2V0TnNQcm9wIj54bWxVbnNldE5zUHJvcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVbnNldFByb3AiPnhtbFVuc2V0UHJvcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOQ05hbWUiPnhtbFZhbGlkYXRlTkNOYW1lPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgc3BhY2UpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU5NVG9rZW4iPnhtbFZhbGlkYXRlTk1Ub2tlbjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgaW50IHNwYWNlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOYW1lIj54bWxWYWxpZGF0ZU5hbWU8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgc3BhY2UpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZVFOYW1lIj54bWxWYWxpZGF0ZVFOYW1lPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgc3BhY2UpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IkJBU0VfQlVGRkVSX1NJWkUiIGlkPSJCQVNFX0JVRkZFUl9TSVpFIj48L2E+TWFjcm86IEJBU0VfQlVGRkVSX1NJWkU8L2gzPjxwcmU+I2RlZmluZSBCQVNFX0JVRkZFUl9TSVpFPC9wcmU+PHA+ZGVmYXVsdCBidWZmZXIgc2l6ZSA0MDAwLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfR0VUX0NPTlRFTlQiIGlkPSJYTUxfR0VUX0NPTlRFTlQiPjwvYT5NYWNybzogWE1MX0dFVF9DT05URU5UPC9oMz48cHJlPiNkZWZpbmUgWE1MX0dFVF9DT05URU5UPC9wcmU+PHA+TWFjcm8gdG8gZXh0cmFjdCB0aGUgY29udGVudCBwb2ludGVyIG9mIGEgbm9kZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX0dFVF9MSU5FIiBpZD0iWE1MX0dFVF9MSU5FIj48L2E+TWFjcm86IFhNTF9HRVRfTElORTwvaDM+PHByZT4jZGVmaW5lIFhNTF9HRVRfTElORTwvcHJlPjxwPk1hY3JvIHRvIGV4dHJhY3QgdGhlIGxpbmUgbnVtYmVyIG9mIGFuIGVsZW1lbnQgbm9kZS48L3A+Cis8aDM+PGEgbmFtZT0iWE1MX0xPQ0FMX05BTUVTUEFDRSIgaWQ9IlhNTF9MT0NBTF9OQU1FU1BBQ0UiPjwvYT5NYWNybzogWE1MX0xPQ0FMX05BTUVTUEFDRTwvaDM+PHByZT4jZGVmaW5lIFhNTF9MT0NBTF9OQU1FU1BBQ0U8L3ByZT48cD5BIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBub2RlLjwvcD4KKzxoMz48YSBuYW1lPSJYTUxfWE1MX0lEIiBpZD0iWE1MX1hNTF9JRCI+PC9hPk1hY3JvOiBYTUxfWE1MX0lEPC9oMz48cHJlPiNkZWZpbmUgWE1MX1hNTF9JRDwvcHJlPjxwPlRoaXMgaXMgdGhlIG5hbWUgZm9yIHRoZSBzcGVjaWFsIHhtbDppZCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC9wPgorPGgzPjxhIG5hbWU9IlhNTF9YTUxfTkFNRVNQQUNFIiBpZD0iWE1MX1hNTF9OQU1FU1BBQ0UiPjwvYT5NYWNybzogWE1MX1hNTF9OQU1FU1BBQ0U8L2gzPjxwcmU+I2RlZmluZSBYTUxfWE1MX05BTUVTUEFDRTwvcHJlPjxwPlRoaXMgaXMgdGhlIG5hbWVzcGFjZSBmb3IgdGhlIHNwZWNpYWwgeG1sOiBwcmVmaXggcHJlZGVmaW5lZCBpbiB0aGUgWE1MIE5hbWVzcGFjZSBzcGVjaWZpY2F0aW9uLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxDaGlsZHJlbk5vZGUiIGlkPSJ4bWxDaGlsZHJlbk5vZGUiPjwvYT5NYWNybzogeG1sQ2hpbGRyZW5Ob2RlPC9oMz48cHJlPiNkZWZpbmUgeG1sQ2hpbGRyZW5Ob2RlPC9wcmU+PHA+TWFjcm8gZm9yIGNvbXBhdGliaWxpdHkgbmFtaW5nIGxheWVyIHdpdGggbGlieG1sMS4gTWFwcyB0byAiY2hpbGRyZW4uIjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxSb290Tm9kZSIgaWQ9InhtbFJvb3ROb2RlIj48L2E+TWFjcm86IHhtbFJvb3ROb2RlPC9oMz48cHJlPiNkZWZpbmUgeG1sUm9vdE5vZGU8L3ByZT48cD5NYWNybyBmb3IgY29tcGF0aWJpbGl0eSBuYW1pbmcgbGF5ZXIgd2l0aCBsaWJ4bWwxLiBNYXBzIHRvICJjaGlsZHJlbiIuPC9wPgorPGgzPjxhIG5hbWU9InhtbEF0dHIiIGlkPSJ4bWxBdHRyIj5TdHJ1Y3R1cmUgeG1sQXR0cjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sQXR0cjxiciAvPnN0cnVjdCBfeG1sQXR0ciB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogYXBwbGljYXRpb24gZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPgl0eXBlCTogWE1MX0FUVFJJQlVURV9OT0RFLCBtdXN0IGJlIHNlY29uZCAhCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgIHN0cnVjdCBfeG1sTm9kZSAqCWNoaWxkcmVuCTogdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eQorICAgIHN0cnVjdCBfeG1sTm9kZSAqCWxhc3QJOiBOVUxMCisgICAgc3RydWN0IF94bWxOb2RlICoJcGFyZW50CTogY2hpbGQtJmd0O3BhcmVudCBsaW5rCisgICAgc3RydWN0IF94bWxBdHRyICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxBdHRyICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zIj54bWxOczwvYT4gKglucwk6IHBvaW50ZXIgdG8gdGhlIGFzc29jaWF0ZWQgbmFtZXNwYWNlCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVUeXBlIj54bWxBdHRyaWJ1dGVUeXBlPC9hPglhdHlwZQk6IHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHR5cGUgaWYgdmFsaWRhdGluZworICAgIHZvaWQgKglwc3ZpCTogZm9yIHR5cGUvUFNWSSBpbmZvcm1hdGlvbnMKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sQXR0cmlidXRlIiBpZD0ieG1sQXR0cmlidXRlIj5TdHJ1Y3R1cmUgeG1sQXR0cmlidXRlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxBdHRyaWJ1dGU8YnIgLz5zdHJ1Y3QgX3htbEF0dHJpYnV0ZSB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogYXBwbGljYXRpb24gZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPgl0eXBlCTogWE1MX0FUVFJJQlVURV9ERUNMLCBtdXN0IGJlIHNlY29uZCAhCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IEF0dHJpYnV0ZSBuYW1lCisgICAgc3RydWN0IF94bWxOb2RlICoJY2hpbGRyZW4JOiBOVUxMCisgICAgc3RydWN0IF94bWxOb2RlICoJbGFzdAk6IE5VTEwKKyAgICBzdHJ1Y3QgX3htbER0ZCAqCXBhcmVudAk6IC0mZ3Q7IERURAorICAgIHN0cnVjdCBfeG1sTm9kZSAqCW5leHQJOiBuZXh0IHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCXByZXYJOiBwcmV2aW91cyBzaWJsaW5nIGxpbmsKKyAgICBzdHJ1Y3QgX3htbERvYyAqCWRvYwk6IHRoZSBjb250YWluaW5nIGRvY3VtZW50CisgICAgc3RydWN0IF94bWxBdHRyaWJ1dGUgKgluZXh0aAk6IG5leHQgaW4gaGFzaCB0YWJsZQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT4JYXR5cGUJOiBUaGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0eXBlCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVEZWZhdWx0Ij54bWxBdHRyaWJ1dGVEZWZhdWx0PC9hPglkZWYJOiB0aGUgZGVmYXVsdAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWRlZmF1bHRWYWx1ZQk6IG9yIHRoZSBkZWZhdWx0IHZhbHVlCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+CXRyZWUJOiBvciB0aGUgZW51bWVyYXRpb24gdHJlZSBpZiBhbnkKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglwcmVmaXgJOiB0aGUgbmFtZXNwYWNlIHByZWZpeCBpZiBhbnkKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgllbGVtCTogRWxlbWVudCBob2xkaW5nIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+Cit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sQXR0cmlidXRlRGVmYXVsdCIgaWQ9InhtbEF0dHJpYnV0ZURlZmF1bHQiPnhtbEF0dHJpYnV0ZURlZmF1bHQ8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxBdHRyaWJ1dGVEZWZhdWx0IHsKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX05PTkUiIGlkPSJYTUxfQVRUUklCVVRFX05PTkUiPlhNTF9BVFRSSUJVVEVfTk9ORTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9SRVFVSVJFRCIgaWQ9IlhNTF9BVFRSSUJVVEVfUkVRVUlSRUQiPlhNTF9BVFRSSUJVVEVfUkVRVUlSRUQ8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfSU1QTElFRCIgaWQ9IlhNTF9BVFRSSUJVVEVfSU1QTElFRCI+WE1MX0FUVFJJQlVURV9JTVBMSUVEPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX0ZJWEVEIiBpZD0iWE1MX0FUVFJJQlVURV9GSVhFRCI+WE1MX0FUVFJJQlVURV9GSVhFRDwvYT4gPSA0Cit9Cis8L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxBdHRyaWJ1dGVUeXBlIiBpZD0ieG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbEF0dHJpYnV0ZVR5cGUgeworICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfQ0RBVEEiIGlkPSJYTUxfQVRUUklCVVRFX0NEQVRBIj5YTUxfQVRUUklCVVRFX0NEQVRBPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX0lEIiBpZD0iWE1MX0FUVFJJQlVURV9JRCI+WE1MX0FUVFJJQlVURV9JRDwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9JRFJFRiIgaWQ9IlhNTF9BVFRSSUJVVEVfSURSRUYiPlhNTF9BVFRSSUJVVEVfSURSRUY8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfSURSRUZTIiBpZD0iWE1MX0FUVFJJQlVURV9JRFJFRlMiPlhNTF9BVFRSSUJVVEVfSURSRUZTPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX0VOVElUWSIgaWQ9IlhNTF9BVFRSSUJVVEVfRU5USVRZIj5YTUxfQVRUUklCVVRFX0VOVElUWTwvYT4gPSA1CisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9FTlRJVElFUyIgaWQ9IlhNTF9BVFRSSUJVVEVfRU5USVRJRVMiPlhNTF9BVFRSSUJVVEVfRU5USVRJRVM8L2E+ID0gNgorICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfTk1UT0tFTiIgaWQ9IlhNTF9BVFRSSUJVVEVfTk1UT0tFTiI+WE1MX0FUVFJJQlVURV9OTVRPS0VOPC9hPiA9IDcKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX05NVE9LRU5TIiBpZD0iWE1MX0FUVFJJQlVURV9OTVRPS0VOUyI+WE1MX0FUVFJJQlVURV9OTVRPS0VOUzwvYT4gPSA4CisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTiIgaWQ9IlhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT04iPlhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT048L2E+ID0gOQorICAgIDxhIG5hbWU9IlhNTF9BVFRSSUJVVEVfTk9UQVRJT04iIGlkPSJYTUxfQVRUUklCVVRFX05PVEFUSU9OIj5YTUxfQVRUUklCVVRFX05PVEFUSU9OPC9hPiA9IDEwCit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sQnVmZmVyIiBpZD0ieG1sQnVmZmVyIj5TdHJ1Y3R1cmUgeG1sQnVmZmVyPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxCdWZmZXI8YnIgLz5zdHJ1Y3QgX3htbEJ1ZmZlciB7CisgICAgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJY29udGVudAk6IFRoZSBidWZmZXIgY29udGVudCBVVEY4CisgICAgdW5zaWduZWQgaW50CXVzZQk6IFRoZSBidWZmZXIgc2l6ZSB1c2VkCisgICAgdW5zaWduZWQgaW50CXNpemUJOiBUaGUgYnVmZmVyIHNpemUKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+CWFsbG9jCTogVGhlIHJlYWxsb2MgbWV0aG9kCisgICAgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJY29udGVudElPCTogaW4gSU8gbW9kZSB3ZSBtYXkgaGF2ZSBhIGRpZmZlcmVudCBiYXNlCit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSIgaWQ9InhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHsKKyAgICA8YSBuYW1lPSJYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIiBpZD0iWE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVCI+WE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVDwvYT4gPSAxIDogZG91YmxlIGVhY2ggdGltZSBvbmUgbmVlZCB0byBncm93CisgICAgPGEgbmFtZT0iWE1MX0JVRkZFUl9BTExPQ19FWEFDVCIgaWQ9IlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1QiPlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1Q8L2E+ID0gMiA6IGdyb3cgb25seSB0byB0aGUgbWluaW1hbCBzaXplCisgICAgPGEgbmFtZT0iWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUiIGlkPSJYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSI+WE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEU8L2E+ID0gMyA6IGltbXV0YWJsZSBidWZmZXIKKyAgICA8YSBuYW1lPSJYTUxfQlVGRkVSX0FMTE9DX0lPIiBpZD0iWE1MX0JVRkZFUl9BTExPQ19JTyI+WE1MX0JVRkZFUl9BTExPQ19JTzwvYT4gPSA0IDogc3BlY2lhbCBhbGxvY2F0aW9uIHNjaGVtZSB1c2VkIGZvciBJL08KK30KKzwvcHJlPjxoMz48YSBuYW1lPSJ4bWxET01XcmFwQ3R4dCIgaWQ9InhtbERPTVdyYXBDdHh0Ij5TdHJ1Y3R1cmUgeG1sRE9NV3JhcEN0eHQ8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbERPTVdyYXBDdHh0PGJyIC8+c3RydWN0IF94bWxET01XcmFwQ3R4dCB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogKiBUaGUgdHlwZSBvZiB0aGlzIGNvbnRleHQsIGp1c3QgaW4gY2FzZQorICAgIGludAl0eXBlCTogKiBJbnRlcm5hbCBuYW1lc3BhY2UgbWFwIHVzZWQgZm9yIHZhcmlvdQorICAgIHZvaWQgKgluYW1lc3BhY2VNYXAJOiAqIFVzZSB0aGlzIG9uZSB0byBhY3F1aXJlIGFuIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBpbgorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIj54bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb248L2E+CWdldE5zRm9yTm9kZUZ1bmMKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sRG9jIiBpZD0ieG1sRG9jIj5TdHJ1Y3R1cmUgeG1sRG9jPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxEb2M8YnIgLz5zdHJ1Y3QgX3htbERvYyB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogYXBwbGljYXRpb24gZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPgl0eXBlCTogWE1MX0RPQ1VNRU5UX05PREUsIG11c3QgYmUgc2Vjb25kICEKKyAgICBjaGFyICoJbmFtZQk6IG5hbWUvZmlsZW5hbWUvVVJJIG9mIHRoZSBkb2N1bWVudAorICAgIHN0cnVjdCBfeG1sTm9kZSAqCWNoaWxkcmVuCTogdGhlIGRvY3VtZW50IHRyZWUKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglsYXN0CTogbGFzdCBjaGlsZCBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJcGFyZW50CTogY2hpbGQtJmd0O3BhcmVudCBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogYXV0b3JlZmVyZW5jZSB0byBpdHNlbGYgRW5kIG9mIGNvbW1vbiBwCisgICAgaW50CWNvbXByZXNzaW9uCTogbGV2ZWwgb2YgemxpYiBjb21wcmVzc2lvbgorICAgIGludAlzdGFuZGFsb25lCTogc3RhbmRhbG9uZSBkb2N1bWVudCAobm8gZXh0ZXJuYWwgcmVmcykKKyAgICBzdHJ1Y3QgX3htbER0ZCAqCWludFN1YnNldAk6IHRoZSBkb2N1bWVudCBpbnRlcm5hbCBzdWJzZXQKKyAgICBzdHJ1Y3QgX3htbER0ZCAqCWV4dFN1YnNldAk6IHRoZSBkb2N1bWVudCBleHRlcm5hbCBzdWJzZXQKKyAgICBzdHJ1Y3QgX3htbE5zICoJb2xkTnMJOiBHbG9iYWwgbmFtZXNwYWNlLCB0aGUgb2xkIHdheQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXZlcnNpb24JOiB0aGUgWE1MIHZlcnNpb24gc3RyaW5nCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJZW5jb2RpbmcJOiBleHRlcm5hbCBpbml0aWFsIGVuY29kaW5nLCBpZiBhbnkKKyAgICB2b2lkICoJaWRzCTogSGFzaCB0YWJsZSBmb3IgSUQgYXR0cmlidXRlcyBpZiBhbnkKKyAgICB2b2lkICoJcmVmcwk6IEhhc2ggdGFibGUgZm9yIElEUkVGcyBhdHRyaWJ1dGVzIGlmIGFueQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCVVSTAk6IFRoZSBVUkkgZm9yIHRoYXQgZG9jdW1lbnQKKyAgICBpbnQJY2hhcnNldAk6IGVuY29kaW5nIG9mIHRoZSBpbi1tZW1vcnkgY29udGVudCBhY3R1YQorICAgIHN0cnVjdCBfeG1sRGljdCAqCWRpY3QJOiBkaWN0IHVzZWQgdG8gYWxsb2NhdGUgbmFtZXMgb3IgTlVMTAorICAgIHZvaWQgKglwc3ZpCTogZm9yIHR5cGUvUFNWSSBpbmZvcm1hdGlvbnMKKyAgICBpbnQJcGFyc2VGbGFncwk6IHNldCBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+IHVzZWQgdG8gcGFyc2UgdGgKKyAgICBpbnQJcHJvcGVydGllcwk6IHNldCBvZiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1Byb3BlcnRpZXMiPnhtbERvY1Byb3BlcnRpZXM8L2E+IGZvciB0aGlzIGRvY3VtZQorfTwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbERvY1Byb3BlcnRpZXMiIGlkPSJ4bWxEb2NQcm9wZXJ0aWVzIj54bWxEb2NQcm9wZXJ0aWVzPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sRG9jUHJvcGVydGllcyB7CisgICAgPGEgbmFtZT0iWE1MX0RPQ19XRUxMRk9STUVEIiBpZD0iWE1MX0RPQ19XRUxMRk9STUVEIj5YTUxfRE9DX1dFTExGT1JNRUQ8L2E+ID0gMSA6IGRvY3VtZW50IGlzIFhNTCB3ZWxsIGZvcm1lZAorICAgIDxhIG5hbWU9IlhNTF9ET0NfTlNWQUxJRCIgaWQ9IlhNTF9ET0NfTlNWQUxJRCI+WE1MX0RPQ19OU1ZBTElEPC9hPiA9IDIgOiBkb2N1bWVudCBpcyBOYW1lc3BhY2UgdmFsaWQKKyAgICA8YSBuYW1lPSJYTUxfRE9DX09MRDEwIiBpZD0iWE1MX0RPQ19PTEQxMCI+WE1MX0RPQ19PTEQxMDwvYT4gPSA0IDogcGFyc2VkIHdpdGggb2xkIFhNTC0xLjAgcGFyc2VyCisgICAgPGEgbmFtZT0iWE1MX0RPQ19EVERWQUxJRCIgaWQ9IlhNTF9ET0NfRFREVkFMSUQiPlhNTF9ET0NfRFREVkFMSUQ8L2E+ID0gOCA6IERURCB2YWxpZGF0aW9uIHdhcyBzdWNjZXNzZnVsCisgICAgPGEgbmFtZT0iWE1MX0RPQ19YSU5DTFVERSIgaWQ9IlhNTF9ET0NfWElOQ0xVREUiPlhNTF9ET0NfWElOQ0xVREU8L2E+ID0gMTYgOiBYSW5jbHVkZSBzdWJzdGl0dXRpb24gd2FzIGRvbmUKKyAgICA8YSBuYW1lPSJYTUxfRE9DX1VTRVJCVUlMVCIgaWQ9IlhNTF9ET0NfVVNFUkJVSUxUIj5YTUxfRE9DX1VTRVJCVUlMVDwvYT4gPSAzMiA6IERvY3VtZW50IHdhcyBidWlsdCB1c2luZyB0aGUgQVBJIGFuZCBub3QgYnkgcGFyc2luZyBhbiBpbnN0YW5jZQorICAgIDxhIG5hbWU9IlhNTF9ET0NfSU5URVJOQUwiIGlkPSJYTUxfRE9DX0lOVEVSTkFMIj5YTUxfRE9DX0lOVEVSTkFMPC9hPiA9IDY0IDogYnVpbHQgZm9yIGludGVybmFsIHByb2Nlc3NpbmcKKyAgICA8YSBuYW1lPSJYTUxfRE9DX0hUTUwiIGlkPSJYTUxfRE9DX0hUTUwiPlhNTF9ET0NfSFRNTDwvYT4gPSAxMjggOiBwYXJzZWQgb3IgYnVpbHQgSFRNTCBkb2N1bWVudAorfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbER0ZCIgaWQ9InhtbER0ZCI+U3RydWN0dXJlIHhtbER0ZDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sRHRkPGJyIC8+c3RydWN0IF94bWxEdGQgeworICAgIHZvaWQgKglfcHJpdmF0ZQk6IGFwcGxpY2F0aW9uIGRhdGEKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT4JdHlwZQk6IFhNTF9EVERfTk9ERSwgbXVzdCBiZSBzZWNvbmQgIQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiBOYW1lIG9mIHRoZSBEVEQKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKgljaGlsZHJlbgk6IHRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCWxhc3QJOiBsYXN0IGNoaWxkIGxpbmsKKyAgICBzdHJ1Y3QgX3htbERvYyAqCXBhcmVudAk6IGNoaWxkLSZndDtwYXJlbnQgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCW5leHQJOiBuZXh0IHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCXByZXYJOiBwcmV2aW91cyBzaWJsaW5nIGxpbmsKKyAgICBzdHJ1Y3QgX3htbERvYyAqCWRvYwk6IHRoZSBjb250YWluaW5nIGRvY3VtZW50IEVuZCBvZiBjb21tb24gcAorICAgIHZvaWQgKglub3RhdGlvbnMJOiBIYXNoIHRhYmxlIGZvciBub3RhdGlvbnMgaWYgYW55CisgICAgdm9pZCAqCWVsZW1lbnRzCTogSGFzaCB0YWJsZSBmb3IgZWxlbWVudHMgaWYgYW55CisgICAgdm9pZCAqCWF0dHJpYnV0ZXMJOiBIYXNoIHRhYmxlIGZvciBhdHRyaWJ1dGVzIGlmIGFueQorICAgIHZvaWQgKgllbnRpdGllcwk6IEhhc2ggdGFibGUgZm9yIGVudGl0aWVzIGlmIGFueQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCUV4dGVybmFsSUQJOiBFeHRlcm5hbCBpZGVudGlmaWVyIGZvciBQVUJMSUMgRFRECisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJU3lzdGVtSUQJOiBVUkkgZm9yIGEgU1lTVEVNIG9yIFBVQkxJQyBEVEQKKyAgICB2b2lkICoJcGVudGl0aWVzCTogSGFzaCB0YWJsZSBmb3IgcGFyYW0gZW50aXRpZXMgaWYgYW55Cit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbEVsZW1lbnQiIGlkPSJ4bWxFbGVtZW50Ij5TdHJ1Y3R1cmUgeG1sRWxlbWVudDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sRWxlbWVudDxiciAvPnN0cnVjdCBfeG1sRWxlbWVudCB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogYXBwbGljYXRpb24gZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPgl0eXBlCTogWE1MX0VMRU1FTlRfREVDTCwgbXVzdCBiZSBzZWNvbmQgIQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiBFbGVtZW50IG5hbWUKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKgljaGlsZHJlbgk6IE5VTEwKKyAgICBzdHJ1Y3QgX3htbE5vZGUgKglsYXN0CTogTlVMTAorICAgIHN0cnVjdCBfeG1sRHRkICoJcGFyZW50CTogLSZndDsgRFRECisgICAgc3RydWN0IF94bWxOb2RlICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlVmFsIj54bWxFbGVtZW50VHlwZVZhbDwvYT4JZXR5cGUJOiBUaGUgdHlwZQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgljb250ZW50CTogdGhlIGFsbG93ZWQgZWxlbWVudCBjb250ZW50CisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT4JYXR0cmlidXRlcwk6IExpc3Qgb2YgdGhlIGRlY2xhcmVkIGF0dHJpYnV0ZXMKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglwcmVmaXgJOiB0aGUgbmFtZXNwYWNlIHByZWZpeCBpZiBhbnkKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+CWNvbnRNb2RlbAk6IHRoZSB2YWxpZGF0aW5nIHJlZ2V4cAorICAgIHZvaWQgKgljb250TW9kZWwKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sRWxlbWVudENvbnRlbnQiIGlkPSJ4bWxFbGVtZW50Q29udGVudCI+U3RydWN0dXJlIHhtbEVsZW1lbnRDb250ZW50PC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxFbGVtZW50Q29udGVudDxiciAvPnN0cnVjdCBfeG1sRWxlbWVudENvbnRlbnQgeworICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRUeXBlIj54bWxFbGVtZW50Q29udGVudFR5cGU8L2E+CXR5cGUJOiBQQ0RBVEEsIEVMRU1FTlQsIFNFUSBvciBPUgorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRPY2N1ciI+eG1sRWxlbWVudENvbnRlbnRPY2N1cjwvYT4Jb2N1cgk6IE9OQ0UsIE9QVCwgTVVMVCBvciBQTFVTCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IEVsZW1lbnQgbmFtZQorICAgIHN0cnVjdCBfeG1sRWxlbWVudENvbnRlbnQgKgljMQk6IGZpcnN0IGNoaWxkCisgICAgc3RydWN0IF94bWxFbGVtZW50Q29udGVudCAqCWMyCTogc2Vjb25kIGNoaWxkCisgICAgc3RydWN0IF94bWxFbGVtZW50Q29udGVudCAqCXBhcmVudAk6IHBhcmVudAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXByZWZpeAk6IE5hbWVzcGFjZSBwcmVmaXgKK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxFbGVtZW50Q29udGVudE9jY3VyIiBpZD0ieG1sRWxlbWVudENvbnRlbnRPY2N1ciI+eG1sRWxlbWVudENvbnRlbnRPY2N1cjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbEVsZW1lbnRDb250ZW50T2NjdXIgeworICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRSIgaWQ9IlhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRSI+WE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX09QVCIgaWQ9IlhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUIj5YTUxfRUxFTUVOVF9DT05URU5UX09QVDwvYT4gPSAyCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUIiBpZD0iWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUIj5YTUxfRUxFTUVOVF9DT05URU5UX01VTFQ8L2E+ID0gMworICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfUExVUyIgaWQ9IlhNTF9FTEVNRU5UX0NPTlRFTlRfUExVUyI+WE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTPC9hPiA9IDQKK30KKzwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbEVsZW1lbnRDb250ZW50VHlwZSIgaWQ9InhtbEVsZW1lbnRDb250ZW50VHlwZSI+eG1sRWxlbWVudENvbnRlbnRUeXBlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sRWxlbWVudENvbnRlbnRUeXBlIHsKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQSIgaWQ9IlhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBIj5YTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UIiBpZD0iWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UIj5YTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQ8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRIiBpZD0iWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEiPlhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9DT05URU5UX09SIiBpZD0iWE1MX0VMRU1FTlRfQ09OVEVOVF9PUiI+WE1MX0VMRU1FTlRfQ09OVEVOVF9PUjwvYT4gPSA0Cit9Cis8L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxFbGVtZW50VHlwZSIgaWQ9InhtbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbEVsZW1lbnRUeXBlIHsKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9OT0RFIiBpZD0iWE1MX0VMRU1FTlRfTk9ERSI+WE1MX0VMRU1FTlRfTk9ERTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0FUVFJJQlVURV9OT0RFIiBpZD0iWE1MX0FUVFJJQlVURV9OT0RFIj5YTUxfQVRUUklCVVRFX05PREU8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9URVhUX05PREUiIGlkPSJYTUxfVEVYVF9OT0RFIj5YTUxfVEVYVF9OT0RFPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfQ0RBVEFfU0VDVElPTl9OT0RFIiBpZD0iWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSI+WE1MX0NEQVRBX1NFQ1RJT05fTk9ERTwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX0VOVElUWV9SRUZfTk9ERSIgaWQ9IlhNTF9FTlRJVFlfUkVGX05PREUiPlhNTF9FTlRJVFlfUkVGX05PREU8L2E+ID0gNQorICAgIDxhIG5hbWU9IlhNTF9FTlRJVFlfTk9ERSIgaWQ9IlhNTF9FTlRJVFlfTk9ERSI+WE1MX0VOVElUWV9OT0RFPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfUElfTk9ERSIgaWQ9IlhNTF9QSV9OT0RFIj5YTUxfUElfTk9ERTwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX0NPTU1FTlRfTk9ERSIgaWQ9IlhNTF9DT01NRU5UX05PREUiPlhNTF9DT01NRU5UX05PREU8L2E+ID0gOAorICAgIDxhIG5hbWU9IlhNTF9ET0NVTUVOVF9OT0RFIiBpZD0iWE1MX0RPQ1VNRU5UX05PREUiPlhNTF9ET0NVTUVOVF9OT0RFPC9hPiA9IDkKKyAgICA8YSBuYW1lPSJYTUxfRE9DVU1FTlRfVFlQRV9OT0RFIiBpZD0iWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERSI+WE1MX0RPQ1VNRU5UX1RZUEVfTk9ERTwvYT4gPSAxMAorICAgIDxhIG5hbWU9IlhNTF9ET0NVTUVOVF9GUkFHX05PREUiIGlkPSJYTUxfRE9DVU1FTlRfRlJBR19OT0RFIj5YTUxfRE9DVU1FTlRfRlJBR19OT0RFPC9hPiA9IDExCisgICAgPGEgbmFtZT0iWE1MX05PVEFUSU9OX05PREUiIGlkPSJYTUxfTk9UQVRJT05fTk9ERSI+WE1MX05PVEFUSU9OX05PREU8L2E+ID0gMTIKKyAgICA8YSBuYW1lPSJYTUxfSFRNTF9ET0NVTUVOVF9OT0RFIiBpZD0iWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSI+WE1MX0hUTUxfRE9DVU1FTlRfTk9ERTwvYT4gPSAxMworICAgIDxhIG5hbWU9IlhNTF9EVERfTk9ERSIgaWQ9IlhNTF9EVERfTk9ERSI+WE1MX0RURF9OT0RFPC9hPiA9IDE0CisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfREVDTCIgaWQ9IlhNTF9FTEVNRU5UX0RFQ0wiPlhNTF9FTEVNRU5UX0RFQ0w8L2E+ID0gMTUKKyAgICA8YSBuYW1lPSJYTUxfQVRUUklCVVRFX0RFQ0wiIGlkPSJYTUxfQVRUUklCVVRFX0RFQ0wiPlhNTF9BVFRSSUJVVEVfREVDTDwvYT4gPSAxNgorICAgIDxhIG5hbWU9IlhNTF9FTlRJVFlfREVDTCIgaWQ9IlhNTF9FTlRJVFlfREVDTCI+WE1MX0VOVElUWV9ERUNMPC9hPiA9IDE3CisgICAgPGEgbmFtZT0iWE1MX05BTUVTUEFDRV9ERUNMIiBpZD0iWE1MX05BTUVTUEFDRV9ERUNMIj5YTUxfTkFNRVNQQUNFX0RFQ0w8L2E+ID0gMTgKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfU1RBUlQiIGlkPSJYTUxfWElOQ0xVREVfU1RBUlQiPlhNTF9YSU5DTFVERV9TVEFSVDwvYT4gPSAxOQorICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9FTkQiIGlkPSJYTUxfWElOQ0xVREVfRU5EIj5YTUxfWElOQ0xVREVfRU5EPC9hPiA9IDIwCisgICAgPGEgbmFtZT0iWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERSIgaWQ9IlhNTF9ET0NCX0RPQ1VNRU5UX05PREUiPlhNTF9ET0NCX0RPQ1VNRU5UX05PREU8L2E+ID0gMjEKK30KKzwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbEVsZW1lbnRUeXBlVmFsIiBpZD0ieG1sRWxlbWVudFR5cGVWYWwiPnhtbEVsZW1lbnRUeXBlVmFsPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sRWxlbWVudFR5cGVWYWwgeworICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEIiBpZD0iWE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQiPlhNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9UWVBFX0VNUFRZIiBpZD0iWE1MX0VMRU1FTlRfVFlQRV9FTVBUWSI+WE1MX0VMRU1FTlRfVFlQRV9FTVBUWTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0VMRU1FTlRfVFlQRV9BTlkiIGlkPSJYTUxfRUxFTUVOVF9UWVBFX0FOWSI+WE1MX0VMRU1FTlRfVFlQRV9BTlk8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9FTEVNRU5UX1RZUEVfTUlYRUQiIGlkPSJYTUxfRUxFTUVOVF9UWVBFX01JWEVEIj5YTUxfRUxFTUVOVF9UWVBFX01JWEVEPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQiIGlkPSJYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQiPlhNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVDwvYT4gPSA0Cit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieG1sRW50aXR5IiBpZD0ieG1sRW50aXR5Ij5TdHJ1Y3R1cmUgeG1sRW50aXR5PC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxFbnRpdHk8YnIgLz5zdHJ1Y3QgX3htbEVudGl0eSB7CisgICAgdm9pZCAqCV9wcml2YXRlCTogYXBwbGljYXRpb24gZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGUiPnhtbEVsZW1lbnRUeXBlPC9hPgl0eXBlCTogWE1MX0VOVElUWV9ERUNMLCBtdXN0IGJlIHNlY29uZCAhCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IEVudGl0eSBuYW1lCisgICAgc3RydWN0IF94bWxOb2RlICoJY2hpbGRyZW4JOiBGaXJzdCBjaGlsZCBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJbGFzdAk6IExhc3QgY2hpbGQgbGluaworICAgIHN0cnVjdCBfeG1sRHRkICoJcGFyZW50CTogLSZndDsgRFRECisgICAgc3RydWN0IF94bWxOb2RlICoJbmV4dAk6IG5leHQgc2libGluZyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJcHJldgk6IHByZXZpb3VzIHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sRG9jICoJZG9jCTogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglvcmlnCTogY29udGVudCB3aXRob3V0IHJlZiBzdWJzdGl0dXRpb24KKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgljb250ZW50CTogY29udGVudCBvciBuZGF0YSBpZiB1bnBhcnNlZAorICAgIGludAlsZW5ndGgJOiB0aGUgY29udGVudCBsZW5ndGgKKyAgICA8YSBocmVmPSJsaWJ4bWwtZW50aXRpZXMuaHRtbCN4bWxFbnRpdHlUeXBlIj54bWxFbnRpdHlUeXBlPC9hPglldHlwZQk6IFRoZSBlbnRpdHkgdHlwZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCUV4dGVybmFsSUQJOiBFeHRlcm5hbCBpZGVudGlmaWVyIGZvciBQVUJMSUMKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglTeXN0ZW1JRAk6IFVSSSBmb3IgYSBTWVNURU0gb3IgUFVCTElDIEVudGl0eQorICAgIHN0cnVjdCBfeG1sRW50aXR5ICoJbmV4dGUJOiB1bnVzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglVUkkJOiB0aGUgZnVsbCBVUkkgYXMgY29tcHV0ZWQKKyAgICBpbnQJb3duZXIJOiBkb2VzIHRoZSBlbnRpdHkgb3duIHRoZSBjaGlsZHJlbnMKKyAgICBpbnQJY2hlY2tlZAk6IHdhcyB0aGUgZW50aXR5IGNvbnRlbnQgY2hlY2tlZCB0aGlzIGlzCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbEVudW1lcmF0aW9uIiBpZD0ieG1sRW51bWVyYXRpb24iPlN0cnVjdHVyZSB4bWxFbnVtZXJhdGlvbjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sRW51bWVyYXRpb248YnIgLz5zdHJ1Y3QgX3htbEVudW1lcmF0aW9uIHsKKyAgICBzdHJ1Y3QgX3htbEVudW1lcmF0aW9uICoJbmV4dAk6IG5leHQgb25lCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IEVudW1lcmF0aW9uIG5hbWUKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sSUQiIGlkPSJ4bWxJRCI+U3RydWN0dXJlIHhtbElEPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxJRDxiciAvPnN0cnVjdCBfeG1sSUQgeworICAgIHN0cnVjdCBfeG1sSUQgKgluZXh0CTogbmV4dCBJRAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXZhbHVlCTogVGhlIElEIG5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CWF0dHIJOiBUaGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBob2xkaW5nIGl0CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IFRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlmIGF0dHIgaXMgbm90IGF2YWlsYWJsZQorICAgIGludAlsaW5lbm8JOiBUaGUgbGluZSBudW1iZXIgaWYgYXR0ciBpcyBub3QgYXZhaWxhYmwKKyAgICBzdHJ1Y3QgX3htbERvYyAqCWRvYwk6IFRoZSBkb2N1bWVudCBob2xkaW5nIHRoZSBJRAorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxOb2RlIiBpZD0ieG1sTm9kZSI+U3RydWN0dXJlIHhtbE5vZGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbE5vZGU8YnIgLz5zdHJ1Y3QgX3htbE5vZGUgeworICAgIHZvaWQgKglfcHJpdmF0ZQk6IGFwcGxpY2F0aW9uIGRhdGEKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRUeXBlIj54bWxFbGVtZW50VHlwZTwvYT4JdHlwZQk6IHR5cGUgbnVtYmVyLCBtdXN0IGJlIHNlY29uZCAhCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHRoZSBuYW1lIG9mIHRoZSBub2RlLCBvciB0aGUgZW50aXR5CisgICAgc3RydWN0IF94bWxOb2RlICoJY2hpbGRyZW4JOiBwYXJlbnQtJmd0O2NoaWxkcyBsaW5rCisgICAgc3RydWN0IF94bWxOb2RlICoJbGFzdAk6IGxhc3QgY2hpbGQgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCXBhcmVudAk6IGNoaWxkLSZndDtwYXJlbnQgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCW5leHQJOiBuZXh0IHNpYmxpbmcgbGluaworICAgIHN0cnVjdCBfeG1sTm9kZSAqCXByZXYJOiBwcmV2aW91cyBzaWJsaW5nIGxpbmsKKyAgICBzdHJ1Y3QgX3htbERvYyAqCWRvYwk6IHRoZSBjb250YWluaW5nIGRvY3VtZW50IEVuZCBvZiBjb21tb24gcAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnMiPnhtbE5zPC9hPiAqCW5zCTogcG9pbnRlciB0byB0aGUgYXNzb2NpYXRlZCBuYW1lc3BhY2UKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgljb250ZW50CTogdGhlIGNvbnRlbnQKKyAgICBzdHJ1Y3QgX3htbEF0dHIgKglwcm9wZXJ0aWVzCTogcHJvcGVydGllcyBsaXN0CisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOcyI+eG1sTnM8L2E+ICoJbnNEZWYJOiBuYW1lc3BhY2UgZGVmaW5pdGlvbnMgb24gdGhpcyBub2RlCisgICAgdm9pZCAqCXBzdmkJOiBmb3IgdHlwZS9QU1ZJIGluZm9ybWF0aW9ucworICAgIHVuc2lnbmVkIHNob3J0CWxpbmUJOiBsaW5lIG51bWJlcgorICAgIHVuc2lnbmVkIHNob3J0CWV4dHJhCTogZXh0cmEgZGF0YSBmb3IgWFBhdGgvWFNMVAorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxOb3RhdGlvbiIgaWQ9InhtbE5vdGF0aW9uIj5TdHJ1Y3R1cmUgeG1sTm90YXRpb248L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbE5vdGF0aW9uPGJyIC8+c3RydWN0IF94bWxOb3RhdGlvbiB7CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IE5vdGF0aW9uIG5hbWUKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglQdWJsaWNJRAk6IFB1YmxpYyBpZGVudGlmaWVyLCBpZiBhbnkKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglTeXN0ZW1JRAk6IFN5c3RlbSBpZGVudGlmaWVyLCBpZiBhbnkKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sTnMiIGlkPSJ4bWxOcyI+U3RydWN0dXJlIHhtbE5zPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxOczxiciAvPnN0cnVjdCBfeG1sTnMgeworICAgIHN0cnVjdCBfeG1sTnMgKgluZXh0CTogbmV4dCBOcyBsaW5rIGZvciB0aGlzIG5vZGUKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zVHlwZSI+eG1sTnNUeXBlPC9hPgl0eXBlCTogZ2xvYmFsIG9yIGxvY2FsCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJaHJlZgk6IFVSTCBmb3IgdGhlIG5hbWVzcGFjZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXByZWZpeAk6IHByZWZpeCBmb3IgdGhlIG5hbWVzcGFjZQorICAgIHZvaWQgKglfcHJpdmF0ZQk6IGFwcGxpY2F0aW9uIGRhdGEKKyAgICBzdHJ1Y3QgX3htbERvYyAqCWNvbnRleHQJOiBub3JtYWxseSBhbiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvYyI+eG1sRG9jPC9hPgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXIiIGlkPSJ4bWxPdXRwdXRCdWZmZXIiPlN0cnVjdHVyZSB4bWxPdXRwdXRCdWZmZXI8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbE91dHB1dEJ1ZmZlcjxiciAvPnN0cnVjdCBfeG1sT3V0cHV0QnVmZmVyIHsKKyAgICB2b2lkICoJY29udGV4dAorICAgIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+CXdyaXRlY2FsbGJhY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIj54bWxPdXRwdXRDbG9zZUNhbGxiYWNrPC9hPgljbG9zZWNhbGxiYWNrCisgICAgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4JZW5jb2Rlcgk6IEkxOE4gY29udmVyc2lvbnMgdG8gVVRGLTgKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPglidWZmZXIJOiBMb2NhbCBidWZmZXIgZW5jb2RlZCBpbiBVVEYtOCBvciBJU09MYXQKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPgljb252CTogaWYgZW5jb2RlciAhPSBOVUxMIGJ1ZmZlciBmb3Igb3V0cHV0CisgICAgaW50CXdyaXR0ZW4JOiB0b3RhbCBudW1iZXIgb2YgYnl0ZSB3cml0dGVuCisgICAgaW50CWVycm9yCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFBhcnNlckN0eHQiIGlkPSJ4bWxQYXJzZXJDdHh0Ij5TdHJ1Y3R1cmUgeG1sUGFyc2VyQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sUGFyc2VyQ3R4dDxiciAvPnN0cnVjdCBfeG1sUGFyc2VyQ3R4dCB7CisgICAgc3RydWN0IF94bWxTQVhIYW5kbGVyICoJc2F4CTogVGhlIFNBWCBoYW5kbGVyCisgICAgdm9pZCAqCXVzZXJEYXRhCTogRm9yIFNBWCBpbnRlcmZhY2Ugb25seSwgdXNlZCBieSBET00gYnVpCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JbXlEb2MJOiB0aGUgZG9jdW1lbnQgYmVpbmcgYnVpbHQKKyAgICBpbnQJd2VsbEZvcm1lZAk6IGlzIHRoZSBkb2N1bWVudCB3ZWxsIGZvcm1lZAorICAgIGludAlyZXBsYWNlRW50aXRpZXMJOiBzaGFsbCB3ZSByZXBsYWNlIGVudGl0aWVzID8KKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl2ZXJzaW9uCTogdGhlIFhNTCB2ZXJzaW9uIHN0cmluZworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWVuY29kaW5nCTogdGhlIGRlY2xhcmVkIGVuY29kaW5nLCBpZiBhbnkKKyAgICBpbnQJc3RhbmRhbG9uZQk6IHN0YW5kYWxvbmUgZG9jdW1lbnQKKyAgICBpbnQJaHRtbAk6IGFuIEhUTUwoMSkvRG9jYm9vaygyKSBkb2N1bWVudCAqIDMgaXMgSAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPglpbnB1dAk6IEN1cnJlbnQgaW5wdXQgc3RyZWFtCisgICAgaW50CWlucHV0TnIJOiBOdW1iZXIgb2YgY3VycmVudCBpbnB1dCBzdHJlYW1zCisgICAgaW50CWlucHV0TWF4CTogTWF4IG51bWJlciBvZiBpbnB1dCBzdHJlYW1zCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+ICoJaW5wdXRUYWIJOiBzdGFjayBvZiBpbnB1dHMgTm9kZSBhbmFseXNpcyBzdGFjayBvbmwKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CW5vZGUJOiBDdXJyZW50IHBhcnNlZCBOb2RlCisgICAgaW50CW5vZGVOcgk6IERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrCisgICAgaW50CW5vZGVNYXgJOiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+ICoJbm9kZVRhYgk6IGFycmF5IG9mIG5vZGVzCisgICAgaW50CXJlY29yZF9pbmZvCTogV2hldGhlciBub2RlIGluZm8gc2hvdWxkIGJlIGtlcHQKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm9TZXEiPnhtbFBhcnNlck5vZGVJbmZvU2VxPC9hPglub2RlX3NlcQk6IGluZm8gYWJvdXQgZWFjaCBub2RlIHBhcnNlZAorICAgIGludAllcnJObwk6IGVycm9yIGNvZGUKKyAgICBpbnQJaGFzRXh0ZXJuYWxTdWJzZXQJOiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGFuZCBleHRlcm5hbCBzdWJzZXQKKyAgICBpbnQJaGFzUEVyZWZzCTogdGhlIGludGVybmFsIHN1YnNldCBoYXMgUEUgcmVmcworICAgIGludAlleHRlcm5hbAk6IGFyZSB3ZSBwYXJzaW5nIGFuIGV4dGVybmFsIGVudGl0eQorICAgIGludAl2YWxpZAk6IGlzIHRoZSBkb2N1bWVudCB2YWxpZAorICAgIGludAl2YWxpZGF0ZQk6IHNoYWxsIHdlIHRyeSB0byB2YWxpZGF0ZSA/CisgICAgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Ij54bWxWYWxpZEN0eHQ8L2E+CXZjdHh0CTogVGhlIHZhbGlkaXR5IGNvbnRleHQKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VySW5wdXRTdGF0ZSI+eG1sUGFyc2VySW5wdXRTdGF0ZTwvYT4JaW5zdGF0ZQk6IGN1cnJlbnQgdHlwZSBvZiBpbnB1dAorICAgIGludAl0b2tlbgk6IG5leHQgY2hhciBsb29rLWFoZWFkCisgICAgY2hhciAqCWRpcmVjdG9yeQk6IHRoZSBkYXRhIGRpcmVjdG9yeSBOb2RlIG5hbWUgc3RhY2sKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogQ3VycmVudCBwYXJzZWQgTm9kZQorICAgIGludAluYW1lTnIJOiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludAluYW1lTWF4CTogTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogKgluYW1lVGFiCTogYXJyYXkgb2Ygbm9kZXMKKyAgICBsb25nCW5iQ2hhcnMJOiBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHByb2Nlc3NlZAorICAgIGxvbmcJY2hlY2tJbmRleAk6IHVzZWQgYnkgcHJvZ3Jlc3NpdmUgcGFyc2luZyBsb29rdXAKKyAgICBpbnQJa2VlcEJsYW5rcwk6IHVnbHkgYnV0IC4uLgorICAgIGludAlkaXNhYmxlU0FYCTogU0FYIGNhbGxiYWNrcyBhcmUgZGlzYWJsZWQKKyAgICBpbnQJaW5TdWJzZXQJOiBQYXJzaW5nIGlzIGluIGludCAxL2V4dCAyIHN1YnNldAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWludFN1Yk5hbWUJOiBuYW1lIG9mIHN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWV4dFN1YlVSSQk6IFVSSSBvZiBleHRlcm5hbCBzdWJzZXQKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglleHRTdWJTeXN0ZW0JOiBTWVNURU0gSUQgb2YgZXh0ZXJuYWwgc3Vic2V0IHhtbDpzcGFjZQorICAgIGludCAqCXNwYWNlCTogU2hvdWxkIHRoZSBwYXJzZXIgcHJlc2VydmUgc3BhY2VzCisgICAgaW50CXNwYWNlTnIJOiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludAlzcGFjZU1heAk6IE1heCBkZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludCAqCXNwYWNlVGFiCTogYXJyYXkgb2Ygc3BhY2UgaW5mb3MKKyAgICBpbnQJZGVwdGgJOiB0byBwcmV2ZW50IGVudGl0eSBzdWJzdGl0dXRpb24gbG9vcHMKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4JZW50aXR5CTogdXNlZCB0byBjaGVjayBlbnRpdGllcyBib3VuZGFyaWVzCisgICAgaW50CWNoYXJzZXQJOiBlbmNvZGluZyBvZiB0aGUgaW4tbWVtb3J5IGNvbnRlbnQgYWN0dWEKKyAgICBpbnQJbm9kZWxlbgk6IFRob3NlIHR3byBmaWVsZHMgYXJlIHRoZXJlIHRvCisgICAgaW50CW5vZGVtZW0JOiBTcGVlZCB1cCBsYXJnZSBub2RlIHBhcnNpbmcKKyAgICBpbnQJcGVkYW50aWMJOiBzaWduYWwgcGVkYW50aWMgd2FybmluZ3MKKyAgICB2b2lkICoJX3ByaXZhdGUJOiBGb3IgdXNlciBkYXRhLCBsaWJ4bWwgd29uJ3QgdG91Y2ggaXQKKyAgICBpbnQJbG9hZHN1YnNldAk6IHNob3VsZCB0aGUgZXh0ZXJuYWwgc3Vic2V0IGJlIGxvYWRlZAorICAgIGludAlsaW5lbnVtYmVycwk6IHNldCBsaW5lIG51bWJlciBpbiBlbGVtZW50IGNvbnRlbnQKKyAgICB2b2lkICoJY2F0YWxvZ3MJOiBkb2N1bWVudCdzIG93biBjYXRhbG9nCisgICAgaW50CXJlY292ZXJ5CTogcnVuIGluIHJlY292ZXJ5IG1vZGUKKyAgICBpbnQJcHJvZ3Jlc3NpdmUJOiBpcyB0aGlzIGEgcHJvZ3Jlc3NpdmUgcGFyc2luZworICAgIDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4JZGljdAk6IGRpY3Rpb25uYXJ5IGZvciB0aGUgcGFyc2VyCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogKglhdHRzCTogYXJyYXkgZm9yIHRoZSBhdHRyaWJ1dGVzIGNhbGxiYWNrcworICAgIGludAltYXhhdHRzCTogdGhlIHNpemUgb2YgdGhlIGFycmF5CisgICAgaW50CWRvY2RpY3QJOiAqIHByZS1pbnRlcm5lZCBzdHJpbmdzICoKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglzdHJfeG1sCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJc3RyX3htbG5zCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJc3RyX3htbF9ucwk6ICogRXZlcnl0aGluZyBiZWxvdyBpcyB1c2VkIG9ubHkgYnkgdGhlIG4KKyAgICBpbnQJc2F4Mgk6IG9wZXJhdGluZyBpbiB0aGUgbmV3IFNBWCBtb2RlCisgICAgaW50CW5zTnIJOiB0aGUgbnVtYmVyIG9mIGluaGVyaXRlZCBuYW1lc3BhY2VzCisgICAgaW50CW5zTWF4CTogdGhlIHNpemUgb2YgdGhlIGFycmF5cworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqICoJbnNUYWIJOiB0aGUgYXJyYXkgb2YgcHJlZml4L25hbWVzcGFjZSBuYW1lCisgICAgaW50ICoJYXR0YWxsb2NzCTogd2hpY2ggPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3ZXJlIGFsbG9jYXRlZAorICAgIHZvaWQgKiAqCXB1c2hUYWIJOiBhcnJheSBvZiBkYXRhIGZvciBwdXNoCisgICAgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JYXR0c0RlZmF1bHQJOiBkZWZhdWx0ZWQgYXR0cmlidXRlcyBpZiBhbnkKKyAgICA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPglhdHRzU3BlY2lhbAk6IG5vbi1DREFUQSBhdHRyaWJ1dGVzIGlmIGFueQorICAgIGludAluc1dlbGxGb3JtZWQJOiBpcyB0aGUgZG9jdW1lbnQgWE1MIE5hbmVzcGFjZSBva2F5CisgICAgaW50CW9wdGlvbnMJOiAqIFRob3NlIGZpZWxkcyBhcmUgbmVlZGVkIG9ubHkgZm9yIHRyZWFtCisgICAgaW50CWRpY3ROYW1lcwk6IFVzZSBkaWN0aW9uYXJ5IG5hbWVzIGZvciB0aGUgdHJlZQorICAgIGludAlmcmVlRWxlbXNOcgk6IG51bWJlciBvZiBmcmVlZCBlbGVtZW50IG5vZGVzCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglmcmVlRWxlbXMJOiBMaXN0IG9mIGZyZWVkIGVsZW1lbnQgbm9kZXMKKyAgICBpbnQJZnJlZUF0dHJzTnIJOiBudW1iZXIgb2YgZnJlZWQgYXR0cmlidXRlcyBub2RlcworICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JZnJlZUF0dHJzCTogKiB0aGUgY29tcGxldGUgZXJyb3IgaW5mb3JtYXRpb25zIGZvciB0aAorICAgIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yIj54bWxFcnJvcjwvYT4JbGFzdEVycm9yCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck1vZGUiPnhtbFBhcnNlck1vZGU8L2E+CXBhcnNlTW9kZQk6IHRoZSBwYXJzZXIgbW9kZQorICAgIHVuc2lnbmVkIGxvbmcJbmJlbnRpdGllcwk6IG51bWJlciBvZiBlbnRpdGllcyByZWZlcmVuY2VzCisgICAgdW5zaWduZWQgbG9uZwlzaXplZW50aXRpZXMJOiBzaXplIG9mIHBhcnNlZCBlbnRpdGllcyBmb3IgdXNlIGJ5IEhUTUwKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPiAqCW5vZGVJbmZvCTogQ3VycmVudCBOb2RlSW5mbworICAgIGludAlub2RlSW5mb05yCTogRGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sKKyAgICBpbnQJbm9kZUluZm9NYXgJOiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyTm9kZUluZm8iPnhtbFBhcnNlck5vZGVJbmZvPC9hPiAqCW5vZGVJbmZvVGFiCTogYXJyYXkgb2Ygbm9kZUluZm9zCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0IiBpZD0ieG1sUGFyc2VySW5wdXQiPlN0cnVjdHVyZSB4bWxQYXJzZXJJbnB1dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sUGFyc2VySW5wdXQ8YnIgLz5zdHJ1Y3QgX3htbFBhcnNlcklucHV0IHsKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JYnVmCTogVVRGLTggZW5jb2RlZCBidWZmZXIKKyAgICBjb25zdCBjaGFyICoJZmlsZW5hbWUJOiBUaGUgZmlsZSBhbmFseXplZCwgaWYgYW55CisgICAgY29uc3QgY2hhciAqCWRpcmVjdG9yeQk6IHRoZSBkaXJlY3RvcnkvYmFzZSBvZiB0aGUgZmlsZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWJhc2UJOiBCYXNlIG9mIHRoZSBhcnJheSB0byBwYXJzZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWN1cgk6IEN1cnJlbnQgY2hhciBiZWluZyBwYXJzZWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgllbmQJOiBlbmQgb2YgdGhlIGFycmF5IHRvIHBhcnNlCisgICAgaW50CWxlbmd0aAk6IGxlbmd0aCBpZiBrbm93bgorICAgIGludAlsaW5lCTogQ3VycmVudCBsaW5lCisgICAgaW50CWNvbAk6ICogTk9URTogY29uc3VtZWQgaXMgb25seSB0ZXN0ZWQgZm9yIGVxdWEKKyAgICB1bnNpZ25lZCBsb25nCWNvbnN1bWVkCTogSG93IG1hbnkgeG1sQ2hhcnMgYWxyZWFkeSBjb25zdW1lZAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUiPnhtbFBhcnNlcklucHV0RGVhbGxvY2F0ZTwvYT4JZnJlZQk6IGZ1bmN0aW9uIHRvIGRlYWxsb2NhdGUgdGhlIGJhc2UKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgllbmNvZGluZwk6IHRoZSBlbmNvZGluZyBzdHJpbmcgZm9yIGVudGl0eQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXZlcnNpb24JOiB0aGUgdmVyc2lvbiBzdHJpbmcgZm9yIGVudGl0eQorICAgIGludAlzdGFuZGFsb25lCTogV2FzIHRoYXQgZW50aXR5IG1hcmtlZCBzdGFuZGFsb25lCisgICAgaW50CWlkCTogYW4gdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBlbnRpdHkKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXIiIGlkPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlciI+U3RydWN0dXJlIHhtbFBhcnNlcklucHV0QnVmZmVyPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlcjxiciAvPnN0cnVjdCBfeG1sUGFyc2VySW5wdXRCdWZmZXIgeworICAgIHZvaWQgKgljb250ZXh0CisgICAgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPglyZWFkY2FsbGJhY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4JY2xvc2VjYWxsYmFjaworICAgIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+CWVuY29kZXIJOiBJMThOIGNvbnZlcnNpb25zIHRvIFVURi04CisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4JYnVmZmVyCTogTG9jYWwgYnVmZmVyIGVuY29kZWQgaW4gVVRGLTgKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPglyYXcJOiBpZiBlbmNvZGVyICE9IE5VTEwgYnVmZmVyIGZvciByYXcgaW5wdXQKKyAgICBpbnQJY29tcHJlc3NlZAk6IC0xPXVua25vd24sIDA9bm90IGNvbXByZXNzZWQsIDE9Y29tcHJlcworICAgIGludAllcnJvcgorICAgIHVuc2lnbmVkIGxvbmcJcmF3Y29uc3VtZWQJOiBhbW91bnQgY29uc3VtZWQgZnJvbSByYXcKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sUmVmIiBpZD0ieG1sUmVmIj5TdHJ1Y3R1cmUgeG1sUmVmPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxSZWY8YnIgLz5zdHJ1Y3QgX3htbFJlZiB7CisgICAgc3RydWN0IF94bWxSZWYgKgluZXh0CTogbmV4dCBSZWYKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl2YWx1ZQk6IFRoZSBSZWYgbmFtZQorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JYXR0cgk6IFRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGhvbGRpbmcgaXQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogVGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaWYgYXR0ciBpcyBub3QgYXZhaWxhYmxlCisgICAgaW50CWxpbmVubwk6IFRoZSBsaW5lIG51bWJlciBpZiBhdHRyIGlzIG5vdCBhdmFpbGFibAorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTQVhIYW5kbGVyIiBpZD0ieG1sU0FYSGFuZGxlciI+U3RydWN0dXJlIHhtbFNBWEhhbmRsZXI8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFNBWEhhbmRsZXI8YnIgLz5zdHJ1Y3QgX3htbFNBWEhhbmRsZXIgeworICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNpbnRlcm5hbFN1YnNldFNBWEZ1bmMiPmludGVybmFsU3Vic2V0U0FYRnVuYzwvYT4JaW50ZXJuYWxTdWJzZXQKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjaXNTdGFuZGFsb25lU0FYRnVuYyI+aXNTdGFuZGFsb25lU0FYRnVuYzwvYT4JaXNTdGFuZGFsb25lCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2hhc0ludGVybmFsU3Vic2V0U0FYRnVuYyI+aGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPgloYXNJbnRlcm5hbFN1YnNldAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMiPmhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYzwvYT4JaGFzRXh0ZXJuYWxTdWJzZXQKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjcmVzb2x2ZUVudGl0eVNBWEZ1bmMiPnJlc29sdmVFbnRpdHlTQVhGdW5jPC9hPglyZXNvbHZlRW50aXR5CisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2dldEVudGl0eVNBWEZ1bmMiPmdldEVudGl0eVNBWEZ1bmM8L2E+CWdldEVudGl0eQorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNlbnRpdHlEZWNsU0FYRnVuYyI+ZW50aXR5RGVjbFNBWEZ1bmM8L2E+CWVudGl0eURlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjbm90YXRpb25EZWNsU0FYRnVuYyI+bm90YXRpb25EZWNsU0FYRnVuYzwvYT4Jbm90YXRpb25EZWNsCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2F0dHJpYnV0ZURlY2xTQVhGdW5jIj5hdHRyaWJ1dGVEZWNsU0FYRnVuYzwvYT4JYXR0cmlidXRlRGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNlbGVtZW50RGVjbFNBWEZ1bmMiPmVsZW1lbnREZWNsU0FYRnVuYzwvYT4JZWxlbWVudERlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyI+dW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYzwvYT4JdW5wYXJzZWRFbnRpdHlEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMiPnNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM8L2E+CXNldERvY3VtZW50TG9jYXRvcgorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNzdGFydERvY3VtZW50U0FYRnVuYyI+c3RhcnREb2N1bWVudFNBWEZ1bmM8L2E+CXN0YXJ0RG9jdW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjZW5kRG9jdW1lbnRTQVhGdW5jIj5lbmREb2N1bWVudFNBWEZ1bmM8L2E+CWVuZERvY3VtZW50CisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3N0YXJ0RWxlbWVudFNBWEZ1bmMiPnN0YXJ0RWxlbWVudFNBWEZ1bmM8L2E+CXN0YXJ0RWxlbWVudAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50U0FYRnVuYyI+ZW5kRWxlbWVudFNBWEZ1bmM8L2E+CWVuZEVsZW1lbnQKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjcmVmZXJlbmNlU0FYRnVuYyI+cmVmZXJlbmNlU0FYRnVuYzwvYT4JcmVmZXJlbmNlCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2NoYXJhY3RlcnNTQVhGdW5jIj5jaGFyYWN0ZXJzU0FYRnVuYzwvYT4JY2hhcmFjdGVycworICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyI+aWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmM8L2E+CWlnbm9yYWJsZVdoaXRlc3BhY2UKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYyI+cHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYzwvYT4JcHJvY2Vzc2luZ0luc3RydWN0aW9uCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2NvbW1lbnRTQVhGdW5jIj5jb21tZW50U0FYRnVuYzwvYT4JY29tbWVudAorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN3YXJuaW5nU0FYRnVuYyI+d2FybmluZ1NBWEZ1bmM8L2E+CXdhcm5pbmcKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjZXJyb3JTQVhGdW5jIj5lcnJvclNBWEZ1bmM8L2E+CWVycm9yCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2ZhdGFsRXJyb3JTQVhGdW5jIj5mYXRhbEVycm9yU0FYRnVuYzwvYT4JZmF0YWxFcnJvcgk6IHVudXNlZCBlcnJvcigpIGdldCBhbGwgdGhlIGVycm9ycworICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIj5nZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jPC9hPglnZXRQYXJhbWV0ZXJFbnRpdHkKKyAgICA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjY2RhdGFCbG9ja1NBWEZ1bmMiPmNkYXRhQmxvY2tTQVhGdW5jPC9hPgljZGF0YUJsb2NrCisgICAgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI2V4dGVybmFsU3Vic2V0U0FYRnVuYyI+ZXh0ZXJuYWxTdWJzZXRTQVhGdW5jPC9hPglleHRlcm5hbFN1YnNldAorICAgIHVuc2lnbmVkIGludAlpbml0aWFsaXplZAk6IFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBleHRlbnNpb25zIGF2YQorICAgIHZvaWQgKglfcHJpdmF0ZQorICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNzdGFydEVsZW1lbnROc1NBWDJGdW5jIj5zdGFydEVsZW1lbnROc1NBWDJGdW5jPC9hPglzdGFydEVsZW1lbnROcworICAgIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCNlbmRFbGVtZW50TnNTQVgyRnVuYyI+ZW5kRWxlbWVudE5zU0FYMkZ1bmM8L2E+CWVuZEVsZW1lbnROcworICAgIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+CXNlcnJvcgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTQVhMb2NhdG9yIiBpZD0ieG1sU0FYTG9jYXRvciI+U3RydWN0dXJlIHhtbFNBWExvY2F0b3I8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFNBWExvY2F0b3I8YnIgLz5zdHJ1Y3QgX3htbFNBWExvY2F0b3IgeworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKCpnZXRQdWJsaWNJZCkJZ2V0UHVibGljSWQKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKigqZ2V0U3lzdGVtSWQpCWdldFN5c3RlbUlkCisgICAgaW50KCpnZXRMaW5lTnVtYmVyKQlnZXRMaW5lTnVtYmVyCisgICAgaW50KCpnZXRDb2x1bW5OdW1iZXIpCWdldENvbHVtbk51bWJlcgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxBZGRDaGlsZCIgaWQ9InhtbEFkZENoaWxkIj48L2E+RnVuY3Rpb246IHhtbEFkZENoaWxkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxBZGRDaGlsZAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkFkZCBhIG5ldyBub2RlIHRvIEBwYXJlbnQsIGF0IHRoZSBlbmQgb2YgdGhlIGNoaWxkIChvciBwcm9wZXJ0eSkgbGlzdCBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKGluIHdoaWNoIGNhc2UgQGN1ciBpcyBmcmVlZCkgSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uIElmIHRoZXJlIGlzIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCBlcXVhbCBuYW1lLCBpdCBpcyBmaXJzdCBkZXN0cm95ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoaWxkIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGlsZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQWRkQ2hpbGRMaXN0IiBpZD0ieG1sQWRkQ2hpbGRMaXN0Ij48L2E+RnVuY3Rpb246IHhtbEFkZENoaWxkTGlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sQWRkQ2hpbGRMaXN0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+QWRkIGEgbGlzdCBvZiBub2RlIGF0IHRoZSBlbmQgb2YgdGhlIGNoaWxkIGxpc3Qgb2YgdGhlIHBhcmVudCBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKEBjdXIgbWF5IGJlIGZyZWVkKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhcmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGFzdCBjaGlsZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQWRkTmV4dFNpYmxpbmciIGlkPSJ4bWxBZGROZXh0U2libGluZyI+PC9hPkZ1bmN0aW9uOiB4bWxBZGROZXh0U2libGluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sQWRkTmV4dFNpYmxpbmcJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0pPGJyIC8+Cis8L3ByZT48cD5BZGQgYSBuZXcgbm9kZSBAZWxlbSBhcyB0aGUgbmV4dCBzaWJsaW5nIG9mIEBjdXIgSWYgdGhlIG5ldyBub2RlIHdhcyBhbHJlYWR5IGluc2VydGVkIGluIGEgZG9jdW1lbnQgaXQgaXMgZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC4gQXMgYSByZXN1bHQgb2YgdGV4dCBtZXJnaW5nIEBlbGVtIG1heSBiZSBmcmVlZC4gSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uIElmIHRoZXJlIGlzIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCBlcXVhbCBuYW1lLCBpdCBpcyBmaXJzdCBkZXN0cm95ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hpbGQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEFkZFByZXZTaWJsaW5nIiBpZD0ieG1sQWRkUHJldlNpYmxpbmciPjwvYT5GdW5jdGlvbjogeG1sQWRkUHJldlNpYmxpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbEFkZFByZXZTaWJsaW5nCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+QWRkIGEgbmV3IG5vZGUgQGVsZW0gYXMgdGhlIHByZXZpb3VzIHNpYmxpbmcgb2YgQGN1ciBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKEBlbGVtIG1heSBiZSBmcmVlZCkgSWYgdGhlIG5ldyBub2RlIHdhcyBhbHJlYWR5IGluc2VydGVkIGluIGEgZG9jdW1lbnQgaXQgaXMgZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC4gSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uIElmIHRoZXJlIGlzIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCBlcXVhbCBuYW1lLCBpdCBpcyBmaXJzdCBkZXN0cm95ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hpbGQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEFkZFNpYmxpbmciIGlkPSJ4bWxBZGRTaWJsaW5nIj48L2E+RnVuY3Rpb246IHhtbEFkZFNpYmxpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbEFkZFNpYmxpbmcJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+QWRkIGEgbmV3IGVsZW1lbnQgQGVsZW0gdG8gdGhlIGxpc3Qgb2Ygc2libGluZ3Mgb2YgQGN1ciBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKEBlbGVtIG1heSBiZSBmcmVlZCkgSWYgdGhlIG5ldyBlbGVtZW50IHdhcyBhbHJlYWR5IGluc2VydGVkIGluIGEgZG9jdW1lbnQgaXQgaXMgZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGlsZCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgZWxlbWVudCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQiIGlkPSJ4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCI+PC9hPkZ1bmN0aW9uOiB4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cmluZyk8YnIgLz4KKzwvcHJlPjxwPlNlcmlhbGl6ZSB0ZXh0IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzIHRvIGFuIHhtbCBzaW1wbGUgYnVmZmVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0ZXh0IGNvbnRlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJBZGQiIGlkPSJ4bWxCdWZmZXJBZGQiPjwvYT5GdW5jdGlvbjogeG1sQnVmZmVyQWRkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEJ1ZmZlckFkZAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPkFkZCBhIHN0cmluZyByYW5nZSB0byBhbiBYTUwgYnVmZmVyLiBpZiBsZW4gPT0gLTEsIHRoZSBsZW5ndGggb2Ygc3RyIGlzIHJlY29tcHV0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIGR1bXA8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlICN4bWxDaGFyIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mICN4bWxDaGFyIHRvIGFkZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBzdWNjZXNzZnVsLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyQWRkSGVhZCIgaWQ9InhtbEJ1ZmZlckFkZEhlYWQiPjwvYT5GdW5jdGlvbjogeG1sQnVmZmVyQWRkSGVhZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxCdWZmZXJBZGRIZWFkCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5BZGQgYSBzdHJpbmcgcmFuZ2UgdG8gdGhlIGJlZ2lubmluZyBvZiBhbiBYTUwgYnVmZmVyLiBpZiBsZW4gPT0gLTEsIHRoZSBsZW5ndGggb2YgQHN0ciBpcyByZWNvbXB1dGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgI3htbENoYXIgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgI3htbENoYXIgdG8gYWRkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIHN1Y2Nlc3NmdWwsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJDQ2F0IiBpZD0ieG1sQnVmZmVyQ0NhdCI+PC9hPkZ1bmN0aW9uOiB4bWxCdWZmZXJDQ2F0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEJ1ZmZlckNDYXQJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogc3RyKTxiciAvPgorPC9wcmU+PHA+QXBwZW5kIGEgemVybyB0ZXJtaW5hdGVkIEMgc3RyaW5nIHRvIGFuIFhNTCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIGR1bXA8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEMgY2hhciBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgc3VjY2Vzc2Z1bCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckNhdCIgaWQ9InhtbEJ1ZmZlckNhdCI+PC9hPkZ1bmN0aW9uOiB4bWxCdWZmZXJDYXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQnVmZmVyQ2F0CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxiciAvPgorPC9wcmU+PHA+QXBwZW5kIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZyB0byBhbiBYTUwgYnVmZmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlciB0byBhZGQgdG88L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlICN4bWxDaGFyIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBzdWNjZXNzZnVsLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyQ29udGVudCIgaWQ9InhtbEJ1ZmZlckNvbnRlbnQiPjwvYT5GdW5jdGlvbjogeG1sQnVmZmVyQ29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEJ1ZmZlckNvbnRlbnQJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1Zik8YnIgLz4KKzwvcHJlPjxwPkZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIGNvbnRlbnQgb2YgYSBidWZmZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnRlcm5hbCBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyQ3JlYXRlIiBpZD0ieG1sQnVmZmVyQ3JlYXRlIj48L2E+RnVuY3Rpb246IHhtbEJ1ZmZlckNyZWF0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CXhtbEJ1ZmZlckNyZWF0ZQkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5yb3V0aW5lIHRvIGNyZWF0ZSBhbiBYTUwgYnVmZmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RydWN0dXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckNyZWF0ZVNpemUiIGlkPSJ4bWxCdWZmZXJDcmVhdGVTaXplIj48L2E+RnVuY3Rpb246IHhtbEJ1ZmZlckNyZWF0ZVNpemU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPgl4bWxCdWZmZXJDcmVhdGVTaXplCShzaXplX3Qgc2l6ZSk8YnIgLz4KKzwvcHJlPjxwPnJvdXRpbmUgdG8gY3JlYXRlIGFuIFhNTCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5pdGlhbCBzaXplIG9mIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBzdHJ1Y3R1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyQ3JlYXRlU3RhdGljIiBpZD0ieG1sQnVmZmVyQ3JlYXRlU3RhdGljIj48L2E+RnVuY3Rpb246IHhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+CXhtbEJ1ZmZlckNyZWF0ZVN0YXRpYwkodm9pZCAqIG1lbSwgPGJyIC8+CQkJCQkgc2l6ZV90IHNpemUpPGJyIC8+Cis8L3ByZT48cD5yb3V0aW5lIHRvIGNyZWF0ZSBhbiBYTUwgYnVmZmVyIGZyb20gYW4gaW1tdXRhYmxlIG1lbW9yeSBhcmVhLiBUaGUgYXJlYSB3b24ndCBiZSBtb2RpZmllZCBub3IgY29waWVkLCBhbmQgaXMgZXhwZWN0ZWQgdG8gYmUgcHJlc2VudCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgbGlmZXRpbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVtb3J5IGFyZWE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIGluIGJ5dGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RydWN0dXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckR1bXAiIGlkPSJ4bWxCdWZmZXJEdW1wIj48L2E+RnVuY3Rpb246IHhtbEJ1ZmZlckR1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQnVmZmVyRHVtcAkJCShGSUxFICogZmlsZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmKTxiciAvPgorPC9wcmU+PHA+RHVtcHMgYW4gWE1MIGJ1ZmZlciB0byBhIEZJTEUgKi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlciB0byBkdW1wPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mICN4bWxDaGFyIHdyaXR0ZW48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJFbXB0eSIgaWQ9InhtbEJ1ZmZlckVtcHR5Ij48L2E+RnVuY3Rpb246IHhtbEJ1ZmZlckVtcHR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxCdWZmZXJFbXB0eQkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYpPGJyIC8+Cis8L3ByZT48cD5lbXB0eSBhIGJ1ZmZlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJGcmVlIiBpZD0ieG1sQnVmZmVyRnJlZSI+PC9hPkZ1bmN0aW9uOiB4bWxCdWZmZXJGcmVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxCdWZmZXJGcmVlCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1Zik8YnIgLz4KKzwvcHJlPjxwPkZyZWVzIGFuIFhNTCBidWZmZXIuIEl0IGZyZWVzIGJvdGggdGhlIGNvbnRlbnQgYW5kIHRoZSBzdHJ1Y3R1cmUgd2hpY2ggZW5jYXBzdWxhdGUgaXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIGZyZWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJHcm93IiBpZD0ieG1sQnVmZmVyR3JvdyI+PC9hPkZ1bmN0aW9uOiB4bWxCdWZmZXJHcm93PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEJ1ZmZlckdyb3cJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSB1bnNpZ25lZCBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+R3JvdyB0aGUgYXZhaWxhYmxlIHNwYWNlIG9mIGFuIFhNTCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtaW5pbXVtIGZyZWUgc2l6ZSB0byBhbGxvY2F0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBhdmFpbGFibGUgc3BhY2Ugb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlckxlbmd0aCIgaWQ9InhtbEJ1ZmZlckxlbmd0aCI+PC9hPkZ1bmN0aW9uOiB4bWxCdWZmZXJMZW5ndGg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQnVmZmVyTGVuZ3RoCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1Zik8YnIgLz4KKzwvcHJlPjxwPkZ1bmN0aW9uIHRvIGdldCB0aGUgbGVuZ3RoIG9mIGEgYnVmZmVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIGRhdGEgaW4gdGhlIGludGVybmFsIGNvbnRlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJSZXNpemUiIGlkPSJ4bWxCdWZmZXJSZXNpemUiPjwvYT5GdW5jdGlvbjogeG1sQnVmZmVyUmVzaXplPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEJ1ZmZlclJlc2l6ZQkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIHVuc2lnbmVkIGludCBzaXplKTxiciAvPgorPC9wcmU+PHA+UmVzaXplIGEgYnVmZmVyIHRvIGFjY29tbW9kYXRlIG1pbmltdW0gc2l6ZSBvZiBAc2l6ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWZmZXIgdG8gcmVzaXplPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVzaXJlZCBzaXplPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2YgcHJvYmxlbXMsIDEgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSIgaWQ9InhtbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUiPjwvYT5GdW5jdGlvbjogeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+IHNjaGVtZSk8YnIgLz4KKzwvcHJlPjxwPlNldHMgdGhlIGFsbG9jYXRpb24gc2NoZW1lIGZvciB0aGlzIGJ1ZmZlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1ZmZlciB0byB0dW5lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG9jYXRpb24gc2NoZW1lIHRvIHVzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlclNocmluayIgaWQ9InhtbEJ1ZmZlclNocmluayI+PC9hPkZ1bmN0aW9uOiB4bWxCdWZmZXJTaHJpbms8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQnVmZmVyU2hyaW5rCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgdW5zaWduZWQgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgYmVnaW5uaW5nIG9mIGFuIFhNTCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIGR1bXA8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gdG8gcmVtb3ZlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mICN4bWxDaGFyIHJlbW92ZWQsIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxCdWZmZXJXcml0ZUNIQVIiIGlkPSJ4bWxCdWZmZXJXcml0ZUNIQVIiPjwvYT5GdW5jdGlvbjogeG1sQnVmZmVyV3JpdGVDSEFSPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxCdWZmZXJXcml0ZUNIQVIJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cmluZyk8YnIgLz4KKzwvcHJlPjxwPnJvdXRpbmUgd2hpY2ggbWFuYWdlcyBhbmQgZ3Jvd3MgYW4gb3V0cHV0IGJ1ZmZlci4gVGhpcyBvbmUgYWRkcyB4bWxDaGFycyBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGFkZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlcldyaXRlQ2hhciIgaWQ9InhtbEJ1ZmZlcldyaXRlQ2hhciI+PC9hPkZ1bmN0aW9uOiB4bWxCdWZmZXJXcml0ZUNoYXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEJ1ZmZlcldyaXRlQ2hhcgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHN0cmluZyk8YnIgLz4KKzwvcHJlPjxwPnJvdXRpbmUgd2hpY2ggbWFuYWdlIGFuZCBncm93cyBhbiBvdXRwdXQgYnVmZmVyLiBUaGlzIG9uZSBhZGQgQyBjaGFycyBhdCB0aGUgZW5kIG9mIHRoZSBhcnJheS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGFkZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIiBpZD0ieG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmciPjwvYT5GdW5jdGlvbjogeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cmluZyk8YnIgLz4KKzwvcHJlPjxwPnJvdXRpbmUgd2hpY2ggbWFuYWdlIGFuZCBncm93cyBhbiBvdXRwdXQgYnVmZmVyLiBUaGlzIG9uZSB3cml0ZXMgYSBxdW90ZWQgb3IgZG91YmxlIHF1b3RlZCAjeG1sQ2hhciBzdHJpbmcsIGNoZWNraW5nIGZpcnN0IGlmIGl0IGhvbGRzIHF1b3RlIG9yIGRvdWJsZS1xdW90ZXMgaW50ZXJuYWxseTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmcgdG8gYWRkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQnVpbGRRTmFtZSIgaWQ9InhtbEJ1aWxkUU5hbWUiPjwvYT5GdW5jdGlvbjogeG1sQnVpbGRRTmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEJ1aWxkUU5hbWUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuY25hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbWVtb3J5LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+QnVpbGRzIHRoZSBRTmFtZSBAcHJlZml4OkBuY25hbWUgaW4gQG1lbW9yeSBpZiB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgYW5kIHByZWZpeCBpcyBub3QgTlVMTCBub3IgZW1wdHksIG90aGVyd2lzZSBhbGxvY2F0ZSBhIG5ldyBzdHJpbmcuIElmIHByZWZpeCBpcyBOVUxMIG9yIGVtcHR5IGl0IHJldHVybnMgbmNuYW1lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5jbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIE5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWVtb3J5PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wcmVhbGxvY2F0ZWQgbWVtb3J5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnByZWFsbG9jYXRlZCBtZW1vcnkgbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHN0cmluZyB3aGljaCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIgaWYgZGlmZmVyZW50IGZyb20gQG1lbW9yeSBhbmQgQG5jbmFtZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDaGlsZEVsZW1lbnRDb3VudCIgaWQ9InhtbENoaWxkRWxlbWVudENvdW50Ij48L2E+RnVuY3Rpb246IHhtbENoaWxkRWxlbWVudENvdW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dW5zaWduZWQgbG9uZwl4bWxDaGlsZEVsZW1lbnRDb3VudAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQpPGJyIC8+Cis8L3ByZT48cD5GaW5kcyB0aGUgY3VycmVudCBudW1iZXIgb2YgY2hpbGQgbm9kZXMgb2YgdGhhdCBlbGVtZW50IHdoaWNoIGFyZSBlbGVtZW50IG5vZGVzLiBOb3RlIHRoZSBoYW5kbGluZyBvZiBlbnRpdGllcyByZWZlcmVuY2VzIGlzIGRpZmZlcmVudCB0aGFuIGluIHRoZSBXM0MgRE9NIGVsZW1lbnQgdHJhdmVyc2FsIHNwZWMgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBiYWNrIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb3VudCBvZiBlbGVtZW50IGNoaWxkIG9yIDAgaWYgbm90IGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENvcHlEb2MiIGlkPSJ4bWxDb3B5RG9jIj48L2E+RnVuY3Rpb246IHhtbENvcHlEb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxDb3B5RG9jCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBpbnQgcmVjdXJzaXZlKTxiciAvPgorPC9wcmU+PHA+RG8gYSBjb3B5IG9mIHRoZSBkb2N1bWVudCBpbmZvLiBJZiByZWN1cnNpdmUsIHRoZSBjb250ZW50IHRyZWUgd2lsbCBiZSBjb3BpZWQgdG9vIGFzIHdlbGwgYXMgRFRELCBuYW1lc3BhY2VzIGFuZCBlbnRpdGllcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVjdXJzaXZlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiBub3QgemVybyBkbyBhIHJlY3Vyc2l2ZSBjb3B5LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbERvY1B0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENvcHlEdGQiIGlkPSJ4bWxDb3B5RHRkIj48L2E+RnVuY3Rpb246IHhtbENvcHlEdGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgl4bWxDb3B5RHRkCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkKTxiciAvPgorPC9wcmU+PHA+RG8gYSBjb3B5IG9mIHRoZSBkdGQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZHRkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyAjeG1sRHRkUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weU5hbWVzcGFjZSIgaWQ9InhtbENvcHlOYW1lc3BhY2UiPjwvYT5GdW5jdGlvbjogeG1sQ29weU5hbWVzcGFjZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgl4bWxDb3B5TmFtZXNwYWNlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+RG8gYSBjb3B5IG9mIHRoZSBuYW1lc3BhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyAjeG1sTnNQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDb3B5TmFtZXNwYWNlTGlzdCIgaWQ9InhtbENvcHlOYW1lc3BhY2VMaXN0Ij48L2E+RnVuY3Rpb246IHhtbENvcHlOYW1lc3BhY2VMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CXhtbENvcHlOYW1lc3BhY2VMaXN0CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+RG8gYSBjb3B5IG9mIGFuIG5hbWVzcGFjZSBsaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbE5zUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weU5vZGUiIGlkPSJ4bWxDb3B5Tm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxDb3B5Tm9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sQ29weU5vZGUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGludCBleHRlbmRlZCk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgY29weSBvZiB0aGUgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXh0ZW5kZWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlmIDEgZG8gYSByZWN1cnNpdmUgY29weSAocHJvcGVydGllcywgbmFtZXNwYWNlcyBhbmQgY2hpbGRyZW4gd2hlbiBhcHBsaWNhYmxlKSBpZiAyIGNvcHkgcHJvcGVydGllcyBhbmQgbmFtZXNwYWNlcyAod2hlbiBhcHBsaWNhYmxlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDb3B5Tm9kZUxpc3QiIGlkPSJ4bWxDb3B5Tm9kZUxpc3QiPjwvYT5GdW5jdGlvbjogeG1sQ29weU5vZGVMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxDb3B5Tm9kZUxpc3QJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5EbyBhIHJlY3Vyc2l2ZSBjb3B5IG9mIHRoZSBub2RlIGxpc3QuIFVzZSB4bWxEb2NDb3B5Tm9kZUxpc3QoKSBpZiBwb3NzaWJsZSB0byBlbnN1cmUgc3RyaW5nIGludGVybmluZy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3ICN4bWxOb2RlUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weVByb3AiIGlkPSJ4bWxDb3B5UHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxDb3B5UHJvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sQ29weVByb3AJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRhcmdldCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgdGhlIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YXJnZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IHdoZXJlIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHdpbGwgYmUgZ3JhZnRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbEF0dHJQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDb3B5UHJvcExpc3QiIGlkPSJ4bWxDb3B5UHJvcExpc3QiPjwvYT5GdW5jdGlvbjogeG1sQ29weVByb3BMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgl4bWxDb3B5UHJvcExpc3QJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRhcmdldCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhcmdldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgd2hlcmUgdGhlIGF0dHJpYnV0ZXMgd2lsbCBiZSBncmFmdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyAjeG1sQXR0clB0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENyZWF0ZUludFN1YnNldCIgaWQ9InhtbENyZWF0ZUludFN1YnNldCI+PC9hPkZ1bmN0aW9uOiB4bWxDcmVhdGVJbnRTdWJzZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgl4bWxDcmVhdGVJbnRTdWJzZXQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogRXh0ZXJuYWxJRCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogU3lzdGVtSUQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgdGhlIGludGVybmFsIHN1YnNldCBvZiBhIGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIERURCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5FeHRlcm5hbElEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0ZXJuYWwgKFBVQkxJQykgSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBEVEQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIiBpZD0ieG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uCis8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4JeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zTmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zUHJlZml4KQorPC9wcmU+PHA+QSBmdW5jdGlvbiBjYWxsZWQgdG8gYWNxdWlyZSBuYW1lc3BhY2VzICh4bWxOcykgZnJvbSB0aGUgd3JhcHBlci48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBET00gd3JhcHBlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCBub2RlIChlbGVtZW50IG9yIGF0dHJpYnV0ZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zTmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlcXVlc3RlZCBuYW1lc3BhY2UgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnNQcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBhbiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbERPTVdyYXBBZG9wdE5vZGUiIGlkPSJ4bWxET01XcmFwQWRvcHROb2RlIj48L2E+RnVuY3Rpb246IHhtbERPTVdyYXBBZG9wdE5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRE9NV3JhcEFkb3B0Tm9kZQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHRQdHIiPnhtbERPTVdyYXBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBzb3VyY2VEb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZGVzdERvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBkZXN0UGFyZW50LCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPlJlZmVyZW5jZXMgb2Ygb3V0LW9mIHNjb3BlIG5zLWRlY2xzIGFyZSByZW1hcHBlZCB0byBwb2ludCB0byBAZGVzdERvYzogMSkgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gbnNEZWYgZW50cmllcyBvbiBlbGVtZW50LW5vZGVzIGFyZSB1c2VkIDIpIElmICpubyogQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gQGRlc3REb2MtJmd0O29sZE5zIGVudHJpZXMgYXJlIHVzZWQgVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHlvdSBoYXZlIGFuIHVubGlrZWQgbm9kZSBhbmQganVzdCB3YW50IHRvIG1vdmUgaXQgdG8gdGhlIGNvbnRleHQgb2YgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIGl0IGVuc3VyZXMgdGhhdCB0aGUgdHJlZSBpcyBuYW1lc3BhY2Ugd2VsbGZvcm1lZCBieSBjcmVhdGluZyBhZGRpdGlvbmFsIG5zLWRlY2xzIHdoZXJlIG5lZWRlZC4gTm90ZSB0aGF0LCBzaW5jZSBwcmVmaXhlcyBvZiBhbHJlYWR5IGV4aXN0ZW50IG5zLWRlY2xzIGNhbiBiZSBzaGFkb3dlZCBieSB0aGlzIHByb2Nlc3MsIGl0IGNvdWxkIGJyZWFrIFFOYW1lcyBpbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlcyBvciBlbGVtZW50IGNvbnRlbnQuIE5PVEU6IFRoaXMgZnVuY3Rpb24gd2FzIG5vdCBpbnRlbnNpdmVseSB0ZXN0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9wdGlvbmFsIGNvbnRleHQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zb3VyY2VEb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb25hbCBzb3VyY2VEb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRvIHN0YXJ0IHdpdGg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlc3REb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkZXN0aW5hdGlvbiBkb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlc3RQYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb25hbCBuZXcgcGFyZW50IG9mIEBub2RlIGluIEBkZXN0RG9jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vcHRpb24gZmxhZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQsIDEgaWYgYSBub2RlIG9mIHVuc3VwcG9ydGVkIHR5cGUgd2FzIGdpdmVuLCAyIGlmIGEgbm9kZSBvZiBub3QgeWV0IHN1cHBvcnRlZCB0eXBlIHdhcyBnaXZlbiBhbmQgLTEgb24gQVBJL2ludGVybmFsIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxET01XcmFwQ2xvbmVOb2RlIiBpZD0ieG1sRE9NV3JhcENsb25lTm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxET01XcmFwQ2xvbmVOb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERPTVdyYXBDbG9uZU5vZGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gc291cmNlRG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKiByZXNOb2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkZXN0RG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGRlc3RQYXJlbnQsIDxiciAvPgkJCQkJIGludCBkZWVwLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPlJlZmVyZW5jZXMgb2Ygb3V0LW9mIHNjb3BlIG5zLWRlY2xzIGFyZSByZW1hcHBlZCB0byBwb2ludCB0byBAZGVzdERvYzogMSkgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gbnNEZWYgZW50cmllcyBvbiBlbGVtZW50LW5vZGVzIGFyZSB1c2VkIDIpIElmICpubyogQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gQGRlc3REb2MtJmd0O29sZE5zIGVudHJpZXMgYXJlIHVzZWQuIFRoaXMgaXMgdGhlIGNhc2Ugd2hlbiB5b3UgZG9uJ3Qga25vdyBhbHJlYWR5IHdoZXJlIHRoZSBjbG9uZWQgYnJhbmNoIHdpbGwgYmUgYWRkZWQgdG8uIElmIEBkZXN0UGFyZW50IGlzIGdpdmVuLCBpdCBlbnN1cmVzIHRoYXQgdGhlIHRyZWUgaXMgbmFtZXNwYWNlIHdlbGxmb3JtZWQgYnkgY3JlYXRpbmcgYWRkaXRpb25hbCBucy1kZWNscyB3aGVyZSBuZWVkZWQuIE5vdGUgdGhhdCwgc2luY2UgcHJlZml4ZXMgb2YgYWxyZWFkeSBleGlzdGVudCBucy1kZWNscyBjYW4gYmUgc2hhZG93ZWQgYnkgdGhpcyBwcm9jZXNzLCBpdCBjb3VsZCBicmVhayBRTmFtZXMgaW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMgb3IgZWxlbWVudCBjb250ZW50LiBUT0RPOiAxKSBXaGF0IHRvIGRvIHdpdGggWEluY2x1ZGU/IEN1cnJlbnRseSB0aGlzIHJldHVybnMgYW4gZXJyb3IgZm9yIFhJbmNsdWRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcHRpb25hbCBjb250ZXh0IGZvciBjdXN0b20gcHJvY2Vzc2luZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c291cmNlRG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3B0aW9uYWwgc291cmNlRG9jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSB0byBzdGFydCB3aXRoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXNOb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2xvbmUgb2YgdGhlIGdpdmVuIEBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXN0RG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZGVzdGluYXRpb24gZG9jPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXN0UGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3B0aW9uYWwgbmV3IHBhcmVudCBvZiBAbm9kZSBpbiBAZGVzdERvYzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVlcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZGVzY2VuZCBpbnRvIGNoaWxkIGlmIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9uIGZsYWdzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLCAxIGlmIGEgbm9kZSBvZiB1bnN1cHBvcnRlZCAob3Igbm90IHlldCBzdXBwb3J0ZWQpIHR5cGUgd2FzIGdpdmVuLCAtMSBvbiBBUEkvaW50ZXJuYWwgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERPTVdyYXBGcmVlQ3R4dCIgaWQ9InhtbERPTVdyYXBGcmVlQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxET01XcmFwRnJlZUN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERPTVdyYXBGcmVlQ3R4dAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRE9NV3JhcEN0eHRQdHIiPnhtbERPTVdyYXBDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+RnJlZXMgdGhlIERPTS13cmFwcGVyIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIERPTS13cmFwcGVyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxET01XcmFwTmV3Q3R4dCIgaWQ9InhtbERPTVdyYXBOZXdDdHh0Ij48L2E+RnVuY3Rpb246IHhtbERPTVdyYXBOZXdDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxET01XcmFwQ3R4dFB0ciI+eG1sRE9NV3JhcEN0eHRQdHI8L2E+CXhtbERPTVdyYXBOZXdDdHh0CSh2b2lkKTxiciAvPgorPC9wcmU+PHA+QWxsb2NhdGVzIGFuZCBpbml0aWFsaXplcyBhIG5ldyBET00td3JhcHBlciBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGFuIGludGVybmFsIGVycnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyIgaWQ9InhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzIj48L2E+RnVuY3Rpb246IHhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPkVuc3VyZXMgdGhhdCBucy1yZWZlcmVuY2VzIHBvaW50IHRvIG5zLWRlY2xzIGhvbGQgb24gZWxlbWVudC1ub2Rlcy4gRW5zdXJlcyB0aGF0IHRoZSB0cmVlIGlzIG5hbWVzcGFjZSB3ZWxsZm9ybWVkIGJ5IGNyZWF0aW5nIGFkZGl0aW9uYWwgbnMtZGVjbHMgd2hlcmUgbmVlZGVkLiBOb3RlIHRoYXQsIHNpbmNlIHByZWZpeGVzIG9mIGFscmVhZHkgZXhpc3RlbnQgbnMtZGVjbHMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRoaXMgcHJvY2VzcywgaXQgY291bGQgYnJlYWsgUU5hbWVzIGluIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzIG9yIGVsZW1lbnQgY29udGVudC4gTk9URTogVGhpcyBmdW5jdGlvbiB3YXMgbm90IGludGVuc2l2ZWx5IHRlc3RlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5ET00gd3JhcHBlciBjb250ZXh0LCB1bnVzZWQgYXQgdGhlIG1vbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQtbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9uIGZsYWdzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHN1Y2NlZWRlZCwgLTEgb3RoZXJ3aXNlIGFuZCBvbiBBUEkvaW50ZXJuYWwgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERPTVdyYXBSZW1vdmVOb2RlIiBpZD0ieG1sRE9NV3JhcFJlbW92ZU5vZGUiPjwvYT5GdW5jdGlvbjogeG1sRE9NV3JhcFJlbW92ZU5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRE9NV3JhcFJlbW92ZU5vZGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERPTVdyYXBDdHh0UHRyIj54bWxET01XcmFwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+VW5saW5rcyB0aGUgZ2l2ZW4gbm9kZSBmcm9tIGl0cyBvd25lci4gVGhpcyB3aWxsIHN1YnN0aXR1dGUgbnMtcmVmZXJlbmNlcyB0byBub2RlLSZndDtuc0RlZiBmb3IgbnMtcmVmZXJlbmNlcyB0byBkb2MtJmd0O29sZE5zLCB0aHVzIGVuc3VyaW5nIHRoZSByZW1vdmVkIGJyYW5jaCB0byBiZSBhdXRhcmsgd3J0IG5zLXJlZmVyZW5jZXMuIE5PVEU6IFRoaXMgZnVuY3Rpb24gd2FzIG5vdCBpbnRlbnNpdmVseSB0ZXN0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBET00gd3JhcHBlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHRvIGJlIHJlbW92ZWQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zZXQgb2Ygb3B0aW9ucywgdW51c2VkIGF0IHRoZSBtb21lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb24gc3VjY2VzcywgMSBpZiB0aGUgbm9kZSBpcyBub3Qgc3VwcG9ydGVkLCAtMSBvbiBBUEkgYW5kIGludGVybmFsIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEb2NDb3B5Tm9kZSIgaWQ9InhtbERvY0NvcHlOb2RlIj48L2E+RnVuY3Rpb246IHhtbERvY0NvcHlOb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxEb2NDb3B5Tm9kZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBpbnQgZXh0ZW5kZWQpPGJyIC8+Cis8L3ByZT48cD5EbyBhIGNvcHkgb2YgdGhlIG5vZGUgdG8gYSBnaXZlbiBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4dGVuZGVkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiAxIGRvIGEgcmVjdXJzaXZlIGNvcHkgKHByb3BlcnRpZXMsIG5hbWVzcGFjZXMgYW5kIGNoaWxkcmVuIHdoZW4gYXBwbGljYWJsZSkgaWYgMiBjb3B5IHByb3BlcnRpZXMgYW5kIG5hbWVzcGFjZXMgKHdoZW4gYXBwbGljYWJsZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3ICN4bWxOb2RlUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRG9jQ29weU5vZGVMaXN0IiBpZD0ieG1sRG9jQ29weU5vZGVMaXN0Ij48L2E+RnVuY3Rpb246IHhtbERvY0NvcHlOb2RlTGlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sRG9jQ29weU5vZGVMaXN0CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgcmVjdXJzaXZlIGNvcHkgb2YgdGhlIG5vZGUgbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEb2NEdW1wIiBpZD0ieG1sRG9jRHVtcCI+PC9hPkZ1bmN0aW9uOiB4bWxEb2NEdW1wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbERvY0R1bXAJCQkoRklMRSAqIGYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGFuIG9wZW4gRklMRS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERvY0R1bXBGb3JtYXRNZW1vcnkiIGlkPSJ4bWxEb2NEdW1wRm9ybWF0TWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbERvY0R1bXBGb3JtYXRNZW1vcnk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERvY0R1bXBGb3JtYXRNZW1vcnkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBtZW0sIDxiciAvPgkJCQkJIGludCAqIHNpemUsIDxiciAvPgkJCQkJIGludCBmb3JtYXQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIFhNTCBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHJldHVybiB0aGUgI3htbENoYXIgKiBhbmQgaXQncyBzaXplLiBJdCdzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5kZW50VHJlZU91dHB1dCI+eG1sSW5kZW50VHJlZU91dHB1dDwvYT4gPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5PVVQ6IHRoZSBtZW1vcnkgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+T1VUOiB0aGUgbWVtb3J5IGxlbmd0aDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiIGlkPSJ4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jIj48L2E+RnVuY3Rpb246IHhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IG91dF9kb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBkb2NfdHh0X3B0ciwgPGJyIC8+CQkJCQkgaW50ICogZG9jX3R4dF9sZW4sIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiB0eHRfZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBmb3JtYXQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIHRoZSBjdXJyZW50IERPTSB0cmVlIGludG8gbWVtb3J5IHVzaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIuIE5vdGUgaXQgaXMgdXAgdG8gdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZyZWUgdGhlIGFsbG9jYXRlZCBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxJbmRlbnRUcmVlT3V0cHV0Ij54bWxJbmRlbnRUcmVlT3V0cHV0PC9hPiA9IDEgb3IgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgd2FzIGNhbGxlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dF9kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkRvY3VtZW50IHRvIGdlbmVyYXRlIFhNTCB0ZXh0IGZyb208L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvY190eHRfcHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5NZW1vcnkgcG9pbnRlciBmb3IgYWxsb2NhdGVkIFhNTCB0ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2NfdHh0X2xlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR4dF9lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Q2hhcmFjdGVyIGVuY29kaW5nIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgWE1MIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEb2NEdW1wTWVtb3J5IiBpZD0ieG1sRG9jRHVtcE1lbW9yeSI+PC9hPkZ1bmN0aW9uOiB4bWxEb2NEdW1wTWVtb3J5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEb2NEdW1wTWVtb3J5CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbWVtLCA8YnIgLz4JCQkJCSBpbnQgKiBzaXplKTxiciAvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQgaW4gbWVtb3J5IGFuZCByZXR1cm4gdGhlICN4bWxDaGFyICogYW5kIGl0J3Mgc2l6ZSBpbiBieXRlcy4gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4gVGhlIHJlc3VsdGluZyBieXRlIGFycmF5IGlzIHplcm8gdGVybWluYXRlZCwgdGhvdWdoIHRoZSBsYXN0IDAgaXMgbm90IGluY2x1ZGVkIGluIHRoZSByZXR1cm5lZCBzaXplLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk9VVDogdGhlIG1lbW9yeSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5PVVQ6IHRoZSBtZW1vcnkgbGVuZ3RoPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRG9jRHVtcE1lbW9yeUVuYyIgaWQ9InhtbERvY0R1bXBNZW1vcnlFbmMiPjwvYT5GdW5jdGlvbjogeG1sRG9jRHVtcE1lbW9yeUVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRG9jRHVtcE1lbW9yeUVuYwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IG91dF9kb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBkb2NfdHh0X3B0ciwgPGJyIC8+CQkJCQkgaW50ICogZG9jX3R4dF9sZW4sIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiB0eHRfZW5jb2RpbmcpPGJyIC8+Cis8L3ByZT48cD5EdW1wIHRoZSBjdXJyZW50IERPTSB0cmVlIGludG8gbWVtb3J5IHVzaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIuIE5vdGUgaXQgaXMgdXAgdG8gdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZyZWUgdGhlIGFsbG9jYXRlZCBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0X2RvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+RG9jdW1lbnQgdG8gZ2VuZXJhdGUgWE1MIHRleHQgZnJvbTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jX3R4dF9wdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk1lbW9yeSBwb2ludGVyIGZvciBhbGxvY2F0ZWQgWE1MIHRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvY190eHRfbGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5MZW5ndGggb2YgdGhlIGdlbmVyYXRlZCBYTUwgdGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHh0X2VuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5DaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBYTUwgdGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbERvY0Zvcm1hdER1bXAiIGlkPSJ4bWxEb2NGb3JtYXREdW1wIj48L2E+RnVuY3Rpb246IHhtbERvY0Zvcm1hdER1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sRG9jRm9ybWF0RHVtcAkJKEZJTEUgKiBmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGludCBmb3JtYXQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIFhNTCBkb2N1bWVudCB0byBhbiBvcGVuIEZJTEUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4gTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiA8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbEluZGVudFRyZWVPdXRwdXQiPnhtbEluZGVudFRyZWVPdXRwdXQ8L2E+ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRG9jR2V0Um9vdEVsZW1lbnQiIGlkPSJ4bWxEb2NHZXRSb290RWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxEb2NHZXRSb290RWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sRG9jR2V0Um9vdEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZSBkb2N1bWVudCAoZG9jLSZndDtjaGlsZHJlbiBpcyBhIGxpc3QgY29udGFpbmluZyBwb3NzaWJseSBjb21tZW50cywgUElzLCBldGMgLi4uKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlICN4bWxOb2RlUHRyIGZvciB0aGUgcm9vdCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRG9jU2V0Um9vdEVsZW1lbnQiIGlkPSJ4bWxEb2NTZXRSb290RWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxEb2NTZXRSb290RWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sRG9jU2V0Um9vdEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiByb290KTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50IChkb2MtJmd0O2NoaWxkcmVuIGlzIGEgbGlzdCBjb250YWluaW5nIHBvc3NpYmx5IGNvbW1lbnRzLCBQSXMsIGV0YyAuLi4pLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yb290PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGRvY3VtZW50IHJvb3QgZWxlbWVudCwgaWYgcm9vdCBpcyBOVUxMIG5vIGFjdGlvbiBpcyB0YWtlbiwgdG8gcmVtb3ZlIGEgbm9kZSBmcm9tIGEgZG9jdW1lbnQgdXNlIHhtbFVubGlua05vZGUocm9vdCkgaW5zdGVhZC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvbGQgcm9vdCBlbGVtZW50IGlmIGFueSB3YXMgZm91bmQsIE5VTEwgaWYgcm9vdCB3YXMgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEVsZW1EdW1wIiBpZD0ieG1sRWxlbUR1bXAiPjwvYT5GdW5jdGlvbjogeG1sRWxlbUR1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEVsZW1EdW1wCQkJKEZJTEUgKiBmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwvSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLCBjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZpcnN0RWxlbWVudENoaWxkIiBpZD0ieG1sRmlyc3RFbGVtZW50Q2hpbGQiPjwvYT5GdW5jdGlvbjogeG1sRmlyc3RFbGVtZW50Q2hpbGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbEZpcnN0RWxlbWVudENoaWxkCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHBhcmVudCk8YnIgLz4KKzwvcHJlPjxwPkZpbmRzIHRoZSBmaXJzdCBjaGlsZCBub2RlIG9mIHRoYXQgZWxlbWVudCB3aGljaCBpcyBhIEVsZW1lbnQgbm9kZSBOb3RlIHRoZSBoYW5kbGluZyBvZiBlbnRpdGllcyByZWZlcmVuY2VzIGlzIGRpZmZlcmVudCB0aGFuIGluIHRoZSBXM0MgRE9NIGVsZW1lbnQgdHJhdmVyc2FsIHNwZWMgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBiYWNrIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBlbGVtZW50IGNoaWxkIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVEb2MiIGlkPSJ4bWxGcmVlRG9jIj48L2E+RnVuY3Rpb246IHhtbEZyZWVEb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVEb2MJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+RnJlZSB1cCBhbGwgdGhlIHN0cnVjdHVyZXMgdXNlZCBieSBhIGRvY3VtZW50LCB0cmVlIGluY2x1ZGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlRHRkIiBpZD0ieG1sRnJlZUR0ZCI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlRHRkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlRHRkCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkZyZWUgYSBEVEQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIERURCBzdHJ1Y3R1cmUgdG8gZnJlZSB1cDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVOb2RlIiBpZD0ieG1sRnJlZU5vZGUiPjwvYT5GdW5jdGlvbjogeG1sRnJlZU5vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVOb2RlCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+RnJlZSBhIG5vZGUsIHRoaXMgaXMgYSByZWN1cnNpdmUgYmVoYXZpb3VyLCBhbGwgdGhlIGNoaWxkcmVuIGFyZSBmcmVlZCB0b28uIFRoaXMgZG9lc24ndCB1bmxpbmsgdGhlIGNoaWxkIGZyb20gdGhlIGxpc3QsIHVzZSB4bWxVbmxpbmtOb2RlKCkgZmlyc3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVOb2RlTGlzdCIgaWQ9InhtbEZyZWVOb2RlTGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlTm9kZUxpc3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVOb2RlTGlzdAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkZyZWUgYSBub2RlIGFuZCBhbGwgaXRzIHNpYmxpbmdzLCB0aGlzIGlzIGEgcmVjdXJzaXZlIGJlaGF2aW91ciwgYWxsIHRoZSBjaGlsZHJlbiBhcmUgZnJlZWQgdG9vLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IG5vZGUgaW4gdGhlIGxpc3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlTnMiIGlkPSJ4bWxGcmVlTnMiPjwvYT5GdW5jdGlvbjogeG1sRnJlZU5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlTnMJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdXAgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byBhIG5hbWVzcGFjZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZU5zTGlzdCIgaWQ9InhtbEZyZWVOc0xpc3QiPjwvYT5GdW5jdGlvbjogeG1sRnJlZU5zTGlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZU5zTGlzdAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+RnJlZSB1cCBhbGwgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byB0aGUgY2hhaW5lZCBuYW1lc3BhY2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IG5hbWVzcGFjZSBwb2ludGVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZVByb3AiIGlkPSJ4bWxGcmVlUHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlUHJvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVByb3AJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5GcmVlIG9uZSBhdHRyaWJ1dGUsIGFsbCB0aGUgY29udGVudCBpcyBmcmVlZCB0b288L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlUHJvcExpc3QiIGlkPSJ4bWxGcmVlUHJvcExpc3QiPjwvYT5GdW5jdGlvbjogeG1sRnJlZVByb3BMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlUHJvcExpc3QJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5GcmVlIGEgcHJvcGVydHkgYW5kIGFsbCBpdHMgc2libGluZ3MsIGFsbCB0aGUgY2hpbGRyZW4gYXJlIGZyZWVkIHRvby48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCBwcm9wZXJ0eSBpbiB0aGUgbGlzdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiIGlkPSJ4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj48L2E+RnVuY3Rpb246IHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiPnhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2E+CXhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5UeXBlcyBhcmUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0VYQUNUIj5YTUxfQlVGRkVSX0FMTE9DX0VYQUNUPC9hPiAtIHVzZSBleGFjdCBzaXplcywga2VlcHMgbWVtb3J5IHVzYWdlIGRvd24gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCNYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIj5YTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUPC9hPiAtIGRvdWJsZSBidWZmZXIgd2hlbiBleHRyYSBuZWVkZWQsIGltcHJvdmVzIHBlcmZvcm1hbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgYWxsb2NhdGlvbiBzY2hlbWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXRDb21wcmVzc01vZGUiIGlkPSJ4bWxHZXRDb21wcmVzc01vZGUiPjwvYT5GdW5jdGlvbjogeG1sR2V0Q29tcHJlc3NNb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEdldENvbXByZXNzTW9kZQkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5nZXQgdGhlIGRlZmF1bHQgY29tcHJlc3Npb24gbW9kZSB1c2VkLCBaTElCIGJhc2VkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgKHVuY29tcHJlc3NlZCkgdG8gOSAobWF4IGNvbXByZXNzaW9uKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldERvY0NvbXByZXNzTW9kZSIgaWQ9InhtbEdldERvY0NvbXByZXNzTW9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxHZXREb2NDb21wcmVzc01vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2V0RG9jQ29tcHJlc3NNb2RlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+Z2V0IHRoZSBjb21wcmVzc2lvbiByYXRpbyBmb3IgYSBkb2N1bWVudCwgWkxJQiBiYXNlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wICh1bmNvbXByZXNzZWQpIHRvIDkgKG1heCBjb21wcmVzc2lvbik8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXRJbnRTdWJzZXQiIGlkPSJ4bWxHZXRJbnRTdWJzZXQiPjwvYT5GdW5jdGlvbjogeG1sR2V0SW50U3Vic2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4JeG1sR2V0SW50U3Vic2V0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBpbnRlcm5hbCBzdWJzZXQgb2YgYSBkb2N1bWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgRFREIHN0cnVjdHVyZSBvciBOVUxMIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldExhc3RDaGlsZCIgaWQ9InhtbEdldExhc3RDaGlsZCI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRMYXN0Q2hpbGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbEdldExhc3RDaGlsZAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50KTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBsYXN0IGNoaWxkIG9mIGEgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhc3QgY2hpbGQgb3IgTlVMTCBpZiBub25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldExpbmVObyIgaWQ9InhtbEdldExpbmVObyI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRMaW5lTm88L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5sb25nCXhtbEdldExpbmVObwkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5HZXQgbGluZSBudW1iZXIgb2YgQG5vZGUuIFRoaXMgcmVxdWlyZXMgYWN0aXZhdGlvbiBvZiB0aGlzIG9wdGlvbiBiZWZvcmUgaW52b2tpbmcgdGhlIHBhcnNlciBieSBjYWxsaW5nIHhtbExpbmVOdW1iZXJzRGVmYXVsdCgxKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnZhbGlkIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5lIG51bWJlciBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXROb05zUHJvcCIgaWQ9InhtbEdldE5vTnNQcm9wIj48L2E+RnVuY3Rpb246IHhtbEdldE5vTnNQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sR2V0Tm9Oc1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5TZWFyY2ggYW5kIGdldCB0aGUgdmFsdWUgb2YgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBhc3NvY2lhdGVkIHRvIGEgbm9kZSBUaGlzIGRvZXMgdGhlIGVudGl0eSBzdWJzdGl0dXRpb24uIFRoaXMgZnVuY3Rpb24gbG9va3MgaW4gRFREIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvciBkZWZhdWx0IGRlY2xhcmF0aW9uIHZhbHVlcyB1bmxlc3MgRFREIHVzZSBoYXMgYmVlbiB0dXJuZWQgb2ZmLiBUaGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPiBleGNlcHQgaXQgd2lsbCBhY2NlcHQgb25seSBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGluIG5vIG5hbWVzcGFjZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQuIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0Tm9kZVBhdGgiIGlkPSJ4bWxHZXROb2RlUGF0aCI+PC9hPkZ1bmN0aW9uOiB4bWxHZXROb2RlUGF0aDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEdldE5vZGVQYXRoCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxiciAvPgorPC9wcmU+PHA+QnVpbGQgYSBzdHJ1Y3R1cmUgYmFzZWQgUGF0aCBmb3IgdGhlIGdpdmVuIG5vZGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGF0aCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBjYWxsZXIgbXVzdCBmcmVlIHRoZSByZXR1cm5lZCBzdHJpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXROc0xpc3QiIGlkPSJ4bWxHZXROc0xpc3QiPjwvYT5GdW5jdGlvbjogeG1sR2V0TnNMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+ICoJeG1sR2V0TnNMaXN0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5TZWFyY2ggYWxsIHRoZSBuYW1lc3BhY2UgYXBwbHlpbmcgdG8gYSBnaXZlbiBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBOVUxMIHRlcm1pbmF0ZWQgYXJyYXkgb2YgYWxsIHRoZSAjeG1sTnNQdHIgZm91bmQgdGhhdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIgb3IgTlVMTCBpZiBubyBuYW1lc3BhY2UgaWYgZGVmaW5lZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldE5zUHJvcCIgaWQ9InhtbEdldE5zUHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxHZXROc1Byb3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxHZXROc1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVTcGFjZSk8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCBhbmQgZ2V0IHRoZSB2YWx1ZSBvZiBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGFzc29jaWF0ZWQgdG8gYSBub2RlIFRoaXMgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBoYXMgdG8gYmUgYW5jaG9yZWQgaW4gdGhlIG5hbWVzcGFjZSBzcGVjaWZpZWQuIFRoaXMgZG9lcyB0aGUgZW50aXR5IHN1YnN0aXR1dGlvbi4gVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWNsYXJhdGlvbiBmb3IgI0ZJWEVEIG9yIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVTcGFjZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgbmFtZXNwYWNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXRQcm9wIiBpZD0ieG1sR2V0UHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sR2V0UHJvcAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCBhbmQgZ2V0IHRoZSB2YWx1ZSBvZiBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGFzc29jaWF0ZWQgdG8gYSBub2RlIFRoaXMgZG9lcyB0aGUgZW50aXR5IHN1YnN0aXR1dGlvbi4gVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWNsYXJhdGlvbiBmb3IgI0ZJWEVEIG9yIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuIE5PVEU6IHRoaXMgZnVuY3Rpb24gYWN0cyBpbmRlcGVuZGVudGx5IG9mIG5hbWVzcGFjZXMgYXNzb2NpYXRlZCB0byB0aGUgYXR0cmlidXRlLiBVc2UgeG1sR2V0TnNQcm9wKCkgb3IgeG1sR2V0Tm9Oc1Byb3AoKSBmb3IgbmFtZXNwYWNlIGF3YXJlIHByb2Nlc3NpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kLiBJdCdzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEhhc05zUHJvcCIgaWQ9InhtbEhhc05zUHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNOc1Byb3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CXhtbEhhc05zUHJvcAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZVNwYWNlKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIGZvciBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGFzc29jaWF0ZWQgdG8gYSBub2RlIFRoaXMgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBoYXMgdG8gYmUgYW5jaG9yZWQgaW4gdGhlIG5hbWVzcGFjZSBzcGVjaWZpZWQuIFRoaXMgZG9lcyB0aGUgZW50aXR5IHN1YnN0aXR1dGlvbi4gVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWNsYXJhdGlvbiBmb3IgI0ZJWEVEIG9yIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuIE5vdGUgdGhhdCBhIG5hbWVzcGFjZSBvZiBOVUxMIGluZGljYXRlcyB0byB1c2UgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lU3BhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgb2YgdGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gb3IgTlVMTCBpZiBuZWl0aGVyIHdhcyBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxIYXNQcm9wIiBpZD0ieG1sSGFzUHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxIYXNQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgl4bWxIYXNQcm9wCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyBmdW5jdGlvbiBhbHNvIGxvb2tzIGluIERURCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlY2xhcmF0aW9uIGZvciAjRklYRUQgb3IgZGVmYXVsdCBkZWNsYXJhdGlvbiB2YWx1ZXMgdW5sZXNzIERURCB1c2UgaGFzIGJlZW4gdHVybmVkIG9mZi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gb3IgTlVMTCBpZiBuZWl0aGVyIHdhcyBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJc0JsYW5rTm9kZSIgaWQ9InhtbElzQmxhbmtOb2RlIj48L2E+RnVuY3Rpb246IHhtbElzQmxhbmtOb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzQmxhbmtOb2RlCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrcyB3aGV0aGVyIHRoaXMgbm9kZSBpcyBhbiBlbXB0eSBvciB3aGl0ZXNwYWNlIG9ubHkgKGFuZCBwb3NzaWJseSBpZ25vcmFibGUpIHRleHQtbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSB5ZXMsIDAgbm88L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJc1hIVE1MIiBpZD0ieG1sSXNYSFRNTCI+PC9hPkZ1bmN0aW9uOiB4bWxJc1hIVE1MPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElzWEhUTUwJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzdGVtSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmxpY0lEKTxiciAvPgorPC9wcmU+PHA+VHJ5IHRvIGZpbmQgaWYgdGhlIGRvY3VtZW50IGNvcnJlc3BvbmQgdG8gYW4gWEhUTUwgRFREPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzdGVtSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gaWRlbnRpZmllcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHVibGljSUQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgaWRlbnRpZmllcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlLCAwIGlmIG5vdCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbExhc3RFbGVtZW50Q2hpbGQiIGlkPSJ4bWxMYXN0RWxlbWVudENoaWxkIj48L2E+RnVuY3Rpb246IHhtbExhc3RFbGVtZW50Q2hpbGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbExhc3RFbGVtZW50Q2hpbGQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50KTxiciAvPgorPC9wcmU+PHA+RmluZHMgdGhlIGxhc3QgY2hpbGQgbm9kZSBvZiB0aGF0IGVsZW1lbnQgd2hpY2ggaXMgYSBFbGVtZW50IG5vZGUgTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbiB0aGUgVzNDIERPTSBlbGVtZW50IHRyYXZlcnNhbCBzcGVjIHNpbmNlIHdlIGRvbid0IGhhdmUgYmFjayA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGZyb20gZW50aXRpZXMgY29udGVudCB0byBlbnRpdGllcyByZWZlcmVuY2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhcmVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGFzdCBlbGVtZW50IGNoaWxkIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0NEYXRhQmxvY2siIGlkPSJ4bWxOZXdDRGF0YUJsb2NrIj48L2E+RnVuY3Rpb246IHhtbE5ld0NEYXRhQmxvY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0NEYXRhQmxvY2sJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgY29udGFpbmluZyBhIENEQVRBIGJsb2NrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgQ0RBVEEgYmxvY2sgY29udGVudCBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIGJsb2NrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdDaGFyUmVmIiBpZD0ieG1sTmV3Q2hhclJlZiI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdDaGFyUmVmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdDaGFyUmVmCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgY2hhcmFjdGVyIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNyZWZlcmVuY2UiPnJlZmVyZW5jZTwvYT4gbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXIgcmVmIHN0cmluZywgc3RhcnRpbmcgd2l0aCAjIG9yICImYW1wOyMgLi4uIDsiPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdDaGlsZCIgaWQ9InhtbE5ld0NoaWxkIj48L2E+RnVuY3Rpb246IHhtbE5ld0NoaWxkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdDaGlsZAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gcGFyZW50LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBjaGlsZCBlbGVtZW50LCBhZGRlZCBhdCB0aGUgZW5kIG9mIEBwYXJlbnQgY2hpbGRyZW4gbGlzdC4gQG5zIGFuZCBAY29udGVudCBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbCAoTlVMTCkuIElmIEBucyBpcyBOVUxMLCB0aGUgbmV3bHkgY3JlYXRlZCBlbGVtZW50IGluaGVyaXRzIHRoZSBuYW1lc3BhY2Ugb2YgQHBhcmVudC4gSWYgQGNvbnRlbnQgaXMgbm9uIE5VTEwsIGEgY2hpbGQgbGlzdCBjb250YWluaW5nIHRoZSBURVhUcyBhbmQgRU5USVRZX1JFRnMgbm9kZSB3aWxsIGJlIGNyZWF0ZWQuIE5PVEU6IEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIGEgcGllY2Ugb2YgWE1MIENEQVRBLCBzbyBpdCBhbGxvd3MgZW50aXR5IHJlZmVyZW5jZXMuIFhNTCBzcGVjaWFsIGNoYXJzIG11c3QgYmUgZXNjYXBlZCBmaXJzdCBieSB1c2luZyB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpLCBvciB4bWxOZXdUZXh0Q2hpbGQoKSBzaG91bGQgYmUgdXNlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXJlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmFtZXNwYWNlIGlmIGFueTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIGNoaWxkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGNvbnRlbnQgb2YgdGhlIGNoaWxkIGlmIGFueS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0NvbW1lbnQiIGlkPSJ4bWxOZXdDb21tZW50Ij48L2E+RnVuY3Rpb246IHhtbE5ld0NvbW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0NvbW1lbnQJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBjb250YWluaW5nIGEgY29tbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0RvYyIgaWQ9InhtbE5ld0RvYyI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdEb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPgl4bWxOZXdEb2MJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2ZXJzaW9uKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlcyBhIG5ldyBYTUwgZG9jdW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52ZXJzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nIGdpdmluZyB0aGUgdmVyc2lvbiBvZiBYTUwgIjEuMCI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGRvY3VtZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jQ29tbWVudCIgaWQ9InhtbE5ld0RvY0NvbW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sTmV3RG9jQ29tbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3RG9jQ29tbWVudAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBjb250YWluaW5nIGEgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+IHdpdGhpbiBhIGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NvbW1lbnQiPmNvbW1lbnQ8L2E+IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0RvY0ZyYWdtZW50IiBpZD0ieG1sTmV3RG9jRnJhZ21lbnQiPjwvYT5GdW5jdGlvbjogeG1sTmV3RG9jRnJhZ21lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0RvY0ZyYWdtZW50CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBGcmFnbWVudCBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IG93bmluZyB0aGUgZnJhZ21lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0RvY05vZGUiIGlkPSJ4bWxOZXdEb2NOb2RlIj48L2E+RnVuY3Rpb246IHhtbE5ld0RvY05vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0RvY05vZGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgZWxlbWVudCB3aXRoaW4gYSBkb2N1bWVudC4gQG5zIGFuZCBAY29udGVudCBhcmUgb3B0aW9uYWwgKE5VTEwpLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3cgZW50aXRpZXMgcmVmZXJlbmNlcywgYnV0IFhNTCBzcGVjaWFsIGNoYXJzIG5lZWQgdG8gYmUgZXNjYXBlZCBmaXJzdCBieSB1c2luZyB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpLiBVc2UgeG1sTmV3RG9jUmF3Tm9kZSgpIGlmIHlvdSBkb24ndCBuZWVkIGVudGl0aWVzIHN1cHBvcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0RvY05vZGVFYXROYW1lIiBpZD0ieG1sTmV3RG9jTm9kZUVhdE5hbWUiPjwvYT5GdW5jdGlvbjogeG1sTmV3RG9jTm9kZUVhdE5hbWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0RvY05vZGVFYXROYW1lCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgZWxlbWVudCB3aXRoaW4gYSBkb2N1bWVudC4gQG5zIGFuZCBAY29udGVudCBhcmUgb3B0aW9uYWwgKE5VTEwpLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3cgZW50aXRpZXMgcmVmZXJlbmNlcywgYnV0IFhNTCBzcGVjaWFsIGNoYXJzIG5lZWQgdG8gYmUgZXNjYXBlZCBmaXJzdCBieSB1c2luZyB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpLiBVc2UgeG1sTmV3RG9jUmF3Tm9kZSgpIGlmIHlvdSBkb24ndCBuZWVkIGVudGl0aWVzIHN1cHBvcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0RvY1BJIiBpZD0ieG1sTmV3RG9jUEkiPjwvYT5GdW5jdGlvbjogeG1sTmV3RG9jUEk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld0RvY1BJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgUEkgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jUHJvcCIgaWQ9InhtbE5ld0RvY1Byb3AiPjwvYT5GdW5jdGlvbjogeG1sTmV3RG9jUHJvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sTmV3RG9jUHJvcAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgcHJvcGVydHkgY2FycmllZCBieSBhIGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3RG9jUmF3Tm9kZSIgaWQ9InhtbE5ld0RvY1Jhd05vZGUiPjwvYT5GdW5jdGlvbjogeG1sTmV3RG9jUmF3Tm9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3RG9jUmF3Tm9kZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBub2RlIGVsZW1lbnQgd2l0aGluIGEgZG9jdW1lbnQuIEBucyBhbmQgQGNvbnRlbnQgYXJlIG9wdGlvbmFsIChOVUxMKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0ZXh0IGNvbnRlbnQgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdEb2NUZXh0IiBpZD0ieG1sTmV3RG9jVGV4dCI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdEb2NUZXh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdEb2NUZXh0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlIHdpdGhpbiBhIGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGV4dCBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdEb2NUZXh0TGVuIiBpZD0ieG1sTmV3RG9jVGV4dExlbiI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdEb2NUZXh0TGVuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdEb2NUZXh0TGVuCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyB0ZXh0IG5vZGUgd2l0aCBhbiBleHRyYSBjb250ZW50IGxlbmd0aCBwYXJhbWV0ZXIuIFRoZSB0ZXh0IG5vZGUgcGVydGFpbiB0byBhIGdpdmVuIGRvY3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGV4dCBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0ZXh0IGxlbi48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0R0ZCIgaWQ9InhtbE5ld0R0ZCI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdEdGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPgl4bWxOZXdEdGQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIEV4dGVybmFsSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgRFREIGZvciB0aGUgZXh0ZXJuYWwgc3Vic2V0LiBUbyBjcmVhdGUgYW4gaW50ZXJuYWwgc3Vic2V0LCB1c2UgeG1sQ3JlYXRlSW50U3Vic2V0KCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIERURCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5FeHRlcm5hbElEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXh0ZXJuYWwgSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIElEPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBEVEQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3R2xvYmFsTnMiIGlkPSJ4bWxOZXdHbG9iYWxOcyI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdHbG9iYWxOczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgl4bWxOZXdHbG9iYWxOcwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBOYW1lc3BhY2UsIHRoZSBvbGQgd2F5IHVzaW5nIFBJIGFuZCB3aXRob3V0IHNjb3BpbmcgREVQUkVDQVRFRCAhISE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBjYXJyeWluZyB0aGUgbmFtZXNwYWNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ocmVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGFzc29jaWF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWZpeCBmb3IgdGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCB0aGlzIGZ1bmN0aW9uYWxpdHkgaGFkIGJlZW4gcmVtb3ZlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld05vZGUiIGlkPSJ4bWxOZXdOb2RlIj48L2E+RnVuY3Rpb246IHhtbE5ld05vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld05vZGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyBub2RlIGVsZW1lbnQuIEBucyBpcyBvcHRpb25hbCAoTlVMTCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LiBVc2VzIHhtbFN0cmR1cCgpIHRvIG1ha2UgY29weSBvZiBAbmFtZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdOb2RlRWF0TmFtZSIgaWQ9InhtbE5ld05vZGVFYXROYW1lIj48L2E+RnVuY3Rpb246IHhtbE5ld05vZGVFYXROYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXdOb2RlRWF0TmFtZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBlbGVtZW50LiBAbnMgaXMgb3B0aW9uYWwgKE5VTEwpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgaWYgYW55PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdCwgd2l0aCBwb2ludGVyIEBuYW1lIGFzIG5ldyBub2RlJ3MgbmFtZS4gVXNlIHhtbE5ld05vZGUoKSBpZiBhIGNvcHkgb2YgQG5hbWUgc3RyaW5nIGlzIGlzIG5lZWRlZCBhcyBuZXcgbm9kZSdzIG5hbWUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3TnMiIGlkPSJ4bWxOZXdOcyI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdOczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPgl4bWxOZXdOcwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgTmFtZXNwYWNlLiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVmdXNlIHRvIGNyZWF0ZSBhIG5hbWVzcGFjZSB3aXRoIGEgc2ltaWxhciBwcmVmaXggdGhhbiBhbiBleGlzdGluZyBvbmUgcHJlc2VudCBvbiB0aGlzIG5vZGUuIFdlIHVzZSBocmVmPT1OVUxMIGluIHRoZSBjYXNlIG9mIGFuIGVsZW1lbnQgY3JlYXRpb24gd2hlcmUgdGhlIG5hbWVzcGFjZSB3YXMgbm90IGRlZmluZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgY2FycnlpbmcgdGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aHJlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBhc3NvY2lhdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggZm9yIHRoZSBuYW1lc3BhY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IG5hbWVzcGFjZSBwb2ludGVyIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdOc1Byb3AiIGlkPSJ4bWxOZXdOc1Byb3AiPjwvYT5GdW5jdGlvbjogeG1sTmV3TnNQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgl4bWxOZXdOc1Byb3AJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgcHJvcGVydHkgdGFnZ2VkIHdpdGggYSBuYW1lc3BhY2UgYW5kIGNhcnJpZWQgYnkgYSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBob2xkaW5nIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3TnNQcm9wRWF0TmFtZSIgaWQ9InhtbE5ld05zUHJvcEVhdE5hbWUiPjwvYT5GdW5jdGlvbjogeG1sTmV3TnNQcm9wRWF0TmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sTmV3TnNQcm9wRWF0TmFtZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IHByb3BlcnR5IHRhZ2dlZCB3aXRoIGEgbmFtZXNwYWNlIGFuZCBjYXJyaWVkIGJ5IGEgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaG9sZGluZyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld1BJIiBpZD0ieG1sTmV3UEkiPjwvYT5GdW5jdGlvbjogeG1sTmV3UEk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbE5ld1BJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBlbGVtZW50LiBVc2UgeG1sRG9jTmV3UEkgcHJlZmVyYWJseSB0byBnZXQgc3RyaW5nIGludGVybmluZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQSSBjb250ZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdQcm9wIiBpZD0ieG1sTmV3UHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgl4bWxOZXdQcm9wCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBwcm9wZXJ0eSBjYXJyaWVkIGJ5IGEgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaG9sZGluZyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3UmVmZXJlbmNlIiBpZD0ieG1sTmV3UmVmZXJlbmNlIj48L2E+RnVuY3Rpb246IHhtbE5ld1JlZmVyZW5jZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3UmVmZXJlbmNlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRpb24gb2YgYSBuZXcgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBuYW1lLCBvciB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBzdHJpbmcgd2l0aCAmYW1wOyBhbmQgOzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dCIgaWQ9InhtbE5ld1RleHQiPjwvYT5GdW5jdGlvbjogeG1sTmV3VGV4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3VGV4dAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyB0ZXh0IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRleHQgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dENoaWxkIiBpZD0ieG1sTmV3VGV4dENoaWxkIj48L2E+RnVuY3Rpb246IHhtbE5ld1RleHRDaGlsZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3VGV4dENoaWxkCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBwYXJlbnQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0aW9uIG9mIGEgbmV3IGNoaWxkIGVsZW1lbnQsIGFkZGVkIGF0IHRoZSBlbmQgb2YgQHBhcmVudCBjaGlsZHJlbiBsaXN0LiBAbnMgYW5kIEBjb250ZW50IHBhcmFtZXRlcnMgYXJlIG9wdGlvbmFsIChOVUxMKS4gSWYgQG5zIGlzIE5VTEwsIHRoZSBuZXdseSBjcmVhdGVkIGVsZW1lbnQgaW5oZXJpdHMgdGhlIG5hbWVzcGFjZSBvZiBAcGFyZW50LiBJZiBAY29udGVudCBpcyBub24gTlVMTCwgYSBjaGlsZCBURVhUIG5vZGUgd2lsbCBiZSBjcmVhdGVkIGNvbnRhaW5pbmcgdGhlIHN0cmluZyBAY29udGVudC4gTk9URTogVXNlIHhtbE5ld0NoaWxkKCkgaWYgQGNvbnRlbnQgd2lsbCBjb250YWluIGVudGl0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVzZXJ2ZWQuIFVzZSB0aGlzIGZ1bmN0aW9uLCB4bWxOZXdUZXh0Q2hpbGQoKSwgaWYgeW91IG5lZWQgdG8gZW5zdXJlIHRoYXQgcmVzZXJ2ZWQgWE1MIGNoYXJzIHRoYXQgbWlnaHQgYXBwZWFyIGluIEBjb250ZW50LCBzdWNoIGFzIHRoZSBhbXBlcnNhbmQsIGdyZWF0ZXItdGhhbiBvciBsZXNzLXRoYW4gc2lnbnMsIGFyZSBhdXRvbWF0aWNhbGx5IHJlcGxhY2VkIGJ5IHRoZWlyIFhNTCBlc2NhcGVkIGVudGl0eSByZXByZXNlbnRhdGlvbnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGFyZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5hbWVzcGFjZSBpZiBhbnk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBjaGlsZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRleHQgY29udGVudCBvZiB0aGUgY2hpbGQgaWYgYW55LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dExlbiIgaWQ9InhtbE5ld1RleHRMZW4iPjwvYT5GdW5jdGlvbjogeG1sTmV3VGV4dExlbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sTmV3VGV4dExlbgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5DcmVhdGlvbiBvZiBhIG5ldyB0ZXh0IG5vZGUgd2l0aCBhbiBleHRyYSBwYXJhbWV0ZXIgZm9yIHRoZSBjb250ZW50J3MgbGVuZ3RoPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRleHQgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGV4dCBsZW4uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXh0RWxlbWVudFNpYmxpbmciIGlkPSJ4bWxOZXh0RWxlbWVudFNpYmxpbmciPjwvYT5GdW5jdGlvbjogeG1sTmV4dEVsZW1lbnRTaWJsaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxOZXh0RWxlbWVudFNpYmxpbmcJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkZpbmRzIHRoZSBmaXJzdCBjbG9zZXN0IG5leHQgc2libGluZyBvZiB0aGUgbm9kZSB3aGljaCBpcyBhbiBlbGVtZW50IG5vZGUuIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4gdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IHNpYmxpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZUFkZENvbnRlbnQiIGlkPSJ4bWxOb2RlQWRkQ29udGVudCI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlQWRkQ29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZUFkZENvbnRlbnQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPkFwcGVuZCB0aGUgZXh0cmEgc3Vic3RyaW5nIHRvIHRoZSBub2RlIGNvbnRlbnQuIE5PVEU6IEluIGNvbnRyYXN0IHRvIHhtbE5vZGVTZXRDb250ZW50KCksIEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIHJhdyB0ZXh0LCBzbyB1bmVzY2FwZWQgWE1MIHNwZWNpYWwgY2hhcnMgYXJlIGFsbG93ZWQsIGVudGl0eSByZWZlcmVuY2VzIGFyZSBub3Qgc3VwcG9ydGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgbW9kaWZpZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGNvbnRlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOb2RlQWRkQ29udGVudExlbiIgaWQ9InhtbE5vZGVBZGRDb250ZW50TGVuIj48L2E+RnVuY3Rpb246IHhtbE5vZGVBZGRDb250ZW50TGVuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOb2RlQWRkQ29udGVudExlbgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+QXBwZW5kIHRoZSBleHRyYSBzdWJzdHJpbmcgdG8gdGhlIG5vZGUgY29udGVudC4gTk9URTogSW4gY29udHJhc3QgdG8geG1sTm9kZVNldENvbnRlbnRMZW4oKSwgQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUgcmF3IHRleHQsIHNvIHVuZXNjYXBlZCBYTUwgc3BlY2lhbCBjaGFycyBhcmUgYWxsb3dlZCwgZW50aXR5IHJlZmVyZW5jZXMgYXJlIG5vdCBzdXBwb3J0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBtb2RpZmllZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiBAY29udGVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5vZGVCdWZHZXRDb250ZW50IiBpZD0ieG1sTm9kZUJ1ZkdldENvbnRlbnQiPjwvYT5GdW5jdGlvbjogeG1sTm9kZUJ1ZkdldENvbnRlbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTm9kZUJ1ZkdldENvbnRlbnQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWZmZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+UmVhZCB0aGUgdmFsdWUgb2YgYSBub2RlIEBjdXIsIHRoaXMgY2FuIGJlIGVpdGhlciB0aGUgdGV4dCBjYXJyaWVkIGRpcmVjdGx5IGJ5IHRoaXMgbm9kZSBpZiBpdCdzIGEgVEVYVCBub2RlIG9yIHRoZSBhZ2dyZWdhdGUgc3RyaW5nIG9mIHRoZSB2YWx1ZXMgY2FycmllZCBieSB0aGlzIG5vZGUgY2hpbGQncyAoVEVYVCBhbmQgRU5USVRZX1JFRikuIEVudGl0eSByZWZlcmVuY2VzIGFyZSBzdWJzdGl0dXRlZC4gRmlsbHMgdXAgdGhlIGJ1ZmZlciBAYnVmZmVyIHdpdGggdGhpcyB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZUR1bXAiIGlkPSJ4bWxOb2RlRHVtcCI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlRHVtcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOb2RlRHVtcAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGludCBsZXZlbCwgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIDxhIGhyZWY9ImxpYnhtbC1nbG9iYWxzLmh0bWwjeG1sSW5kZW50VHJlZU91dHB1dCI+eG1sSW5kZW50VHJlZU91dHB1dDwvYT4gPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGV2ZWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbWJyaWNhdGlvbiBsZXZlbCBmb3IgaW5kZW50aW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlzIGZvcm1hdHRpbmcgYWxsb3dlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIHRoZSBidWZmZXIgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5vZGVEdW1wT3V0cHV0IiBpZD0ieG1sTm9kZUR1bXBPdXRwdXQiPjwvYT5GdW5jdGlvbjogeG1sTm9kZUR1bXBPdXRwdXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5vZGVEdW1wT3V0cHV0CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBpbnQgbGV2ZWwsIDxiciAvPgkJCQkJIGludCBmb3JtYXQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZyk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsIGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4gTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiA8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbEluZGVudFRyZWVPdXRwdXQiPnhtbEluZGVudFRyZWVPdXRwdXQ8L2E+ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxldmVsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW1icmljYXRpb24gbGV2ZWwgZm9yIGluZGVudGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pcyBmb3JtYXR0aW5nIGFsbG93ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBlbmNvZGluZyBzdHJpbmc8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOb2RlR2V0QmFzZSIgaWQ9InhtbE5vZGVHZXRCYXNlIj48L2E+RnVuY3Rpb246IHhtbE5vZGVHZXRCYXNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTm9kZUdldEJhc2UJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoZXMgZm9yIHRoZSBCQVNFIFVSTC4gVGhlIGNvZGUgc2hvdWxkIHdvcmsgb24gYm90aCBYTUwgYW5kIEhUTUwgZG9jdW1lbnQgZXZlbiBpZiBiYXNlIG1lY2hhbmlzbXMgYXJlIGNvbXBsZXRlbHkgZGlmZmVyZW50LiBJdCByZXR1cm5zIHRoZSBiYXNlIGFzIGRlZmluZWQgaW4gUkZDIDIzOTYgc2VjdGlvbnMgNS4xLjEuIEJhc2UgVVJJIHdpdGhpbiBEb2N1bWVudCBDb250ZW50IGFuZCA1LjEuMi4gQmFzZSBVUkkgZnJvbSB0aGUgRW5jYXBzdWxhdGluZyBFbnRpdHkgSG93ZXZlciBpdCBkb2VzIG5vdCByZXR1cm4gdGhlIGRvY3VtZW50IGJhc2UgKDUuMS4zKSwgdXNlIGRvYy0mZ3Q7VVJMIGluIHRoaXMgY2FzZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IHRoZSBub2RlIHBlcnRhaW5zIHRvPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGJlaW5nIGNoZWNrZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgYmFzZSBVUkwsIG9yIE5VTEwgaWYgbm90IGZvdW5kIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZUdldENvbnRlbnQiIGlkPSJ4bWxOb2RlR2V0Q29udGVudCI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlR2V0Q29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbE5vZGVHZXRDb250ZW50CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPlJlYWQgdGhlIHZhbHVlIG9mIGEgbm9kZSwgdGhpcyBjYW4gYmUgZWl0aGVyIHRoZSB0ZXh0IGNhcnJpZWQgZGlyZWN0bHkgYnkgdGhpcyBub2RlIGlmIGl0J3MgYSBURVhUIG5vZGUgb3IgdGhlIGFnZ3JlZ2F0ZSBzdHJpbmcgb2YgdGhlIHZhbHVlcyBjYXJyaWVkIGJ5IHRoaXMgbm9kZSBjaGlsZCdzIChURVhUIGFuZCBFTlRJVFlfUkVGKS4gRW50aXR5IHJlZmVyZW5jZXMgYXJlIHN1YnN0aXR1dGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgI3htbENoYXIgKiBvciBOVUxMIGlmIG5vIGNvbnRlbnQgaXMgYXZhaWxhYmxlLiBJdCdzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5vZGVHZXRMYW5nIiBpZD0ieG1sTm9kZUdldExhbmciPjwvYT5GdW5jdGlvbjogeG1sTm9kZUdldExhbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxOb2RlR2V0TGFuZwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoZXMgdGhlIGxhbmd1YWdlIG9mIGEgbm9kZSwgaS5lLiB0aGUgdmFsdWVzIG9mIHRoZSB4bWw6bGFuZyA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG9yIHRoZSBvbmUgY2FycmllZCBieSB0aGUgbmVhcmVzdCBhbmNlc3Rvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGJlaW5nIGNoZWNrZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbGFuZyB2YWx1ZSwgb3IgTlVMTCBpZiBub3QgZm91bmQgSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZSIgaWQ9InhtbE5vZGVHZXRTcGFjZVByZXNlcnZlIj48L2E+RnVuY3Rpb246IHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE5vZGVHZXRTcGFjZVByZXNlcnZlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5TZWFyY2hlcyB0aGUgc3BhY2UgcHJlc2VydmluZyBiZWhhdmlvdXIgb2YgYSBub2RlLCBpLmUuIHRoZSB2YWx1ZXMgb2YgdGhlIHhtbDpzcGFjZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG9yIHRoZSBvbmUgY2FycmllZCBieSB0aGUgbmVhcmVzdCBhbmNlc3Rvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGJlaW5nIGNoZWNrZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIGlmIHhtbDpzcGFjZSBpcyBub3QgaW5oZXJpdGVkLCAwIGlmICJkZWZhdWx0IiwgMSBpZiAicHJlc2VydmUiPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZUlzVGV4dCIgaWQ9InhtbE5vZGVJc1RleHQiPjwvYT5GdW5jdGlvbjogeG1sTm9kZUlzVGV4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxOb2RlSXNUZXh0CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPklzIHRoaXMgbm9kZSBhIFRleHQgbm9kZSA/PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgeWVzLCAwIG5vPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciIGlkPSJ4bWxOb2RlTGlzdEdldFJhd1N0cmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbGlzdCwgPGJyIC8+CQkJCQkgaW50IGluTGluZSk8YnIgLz4KKzwvcHJlPjxwPkJ1aWxkcyB0aGUgc3RyaW5nIGVxdWl2YWxlbnQgdG8gdGhlIHRleHQgY29udGFpbmVkIGluIHRoZSBOb2RlIGxpc3QgbWFkZSBvZiBURVhUcyBhbmQgRU5USVRZX1JFRnMsIGNvbnRyYXJ5IHRvIHhtbE5vZGVMaXN0R2V0U3RyaW5nKCkgdGhpcyBmdW5jdGlvbiBkb2Vzbid0IGRvIGFueSBjaGFyYWN0ZXIgZW5jb2RpbmcgaGFuZGxpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmxpc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgTm9kZSBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbkxpbmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCB3ZSByZXBsYWNlIGVudGl0eSBjb250ZW50cyBvciBzaG93IHRoZWlyIGV4dGVybmFsIGZvcm08L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgc3RyaW5nIGNvcHksIHRoZSBjYWxsZXIgbXVzdCBmcmVlIGl0IHdpdGggeG1sRnJlZSgpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5vZGVMaXN0R2V0U3RyaW5nIiBpZD0ieG1sTm9kZUxpc3RHZXRTdHJpbmciPjwvYT5GdW5jdGlvbjogeG1sTm9kZUxpc3RHZXRTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxOb2RlTGlzdEdldFN0cmluZwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGxpc3QsIDxiciAvPgkJCQkJIGludCBpbkxpbmUpPGJyIC8+Cis8L3ByZT48cD5CdWlsZCB0aGUgc3RyaW5nIGVxdWl2YWxlbnQgdG8gdGhlIHRleHQgY29udGFpbmVkIGluIHRoZSBOb2RlIGxpc3QgbWFkZSBvZiBURVhUcyBhbmQgRU5USVRZX1JFRnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGlzdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBOb2RlIGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluTGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+c2hvdWxkIHdlIHJlcGxhY2UgZW50aXR5IGNvbnRlbnRzIG9yIHNob3cgdGhlaXIgZXh0ZXJuYWwgZm9ybTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBzdHJpbmcgY29weSwgdGhlIGNhbGxlciBtdXN0IGZyZWUgaXQgd2l0aCB4bWxGcmVlKCkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldEJhc2UiIGlkPSJ4bWxOb2RlU2V0QmFzZSI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlU2V0QmFzZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZVNldEJhc2UJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHVyaSk8YnIgLz4KKzwvcHJlPjxwPlNldCAob3IgcmVzZXQpIHRoZSBiYXNlIFVSSSBvZiBhIG5vZGUsIGkuZS4gdGhlIHZhbHVlIG9mIHRoZSB4bWw6YmFzZSBhdHRyaWJ1dGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBjaGFuZ2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgYmFzZSBVUkk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOb2RlU2V0Q29udGVudCIgaWQ9InhtbE5vZGVTZXRDb250ZW50Ij48L2E+RnVuY3Rpb246IHhtbE5vZGVTZXRDb250ZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxOb2RlU2V0Q29udGVudAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+UmVwbGFjZSB0aGUgY29udGVudCBvZiBhIG5vZGUuIE5PVEU6IEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIGEgcGllY2Ugb2YgWE1MIENEQVRBLCBzbyBpdCBhbGxvd3MgZW50aXR5IHJlZmVyZW5jZXMsIGJ1dCBYTUwgc3BlY2lhbCBjaGFycyBuZWVkIHRvIGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQoKSByZXNwLiB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMoKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGJlaW5nIG1vZGlmaWVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHZhbHVlIG9mIHRoZSBjb250ZW50PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldENvbnRlbnRMZW4iIGlkPSJ4bWxOb2RlU2V0Q29udGVudExlbiI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlU2V0Q29udGVudExlbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZVNldENvbnRlbnRMZW4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPlJlcGxhY2UgdGhlIGNvbnRlbnQgb2YgYSBub2RlLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3dzIGVudGl0eSByZWZlcmVuY2VzLCBidXQgWE1MIHNwZWNpYWwgY2hhcnMgbmVlZCB0byBiZSBlc2NhcGVkIGZpcnN0IGJ5IHVzaW5nIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCkgcmVzcC4geG1sRW5jb2RlU3BlY2lhbENoYXJzKCkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBtb2RpZmllZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyB2YWx1ZSBvZiB0aGUgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiBAY29udGVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5vZGVTZXRMYW5nIiBpZD0ieG1sTm9kZVNldExhbmciPjwvYT5GdW5jdGlvbjogeG1sTm9kZVNldExhbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE5vZGVTZXRMYW5nCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsYW5nKTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBsYW5ndWFnZSBvZiBhIG5vZGUsIGkuZS4gdGhlIHZhbHVlcyBvZiB0aGUgeG1sOmxhbmcgYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgY2hhbmdlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGFuZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxhbmd1YWdlIGRlc2NyaXB0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldE5hbWUiIGlkPSJ4bWxOb2RlU2V0TmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlU2V0TmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZVNldE5hbWUJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5TZXQgKG9yIHJlc2V0KSB0aGUgbmFtZSBvZiBhIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBiZWluZyBjaGFuZ2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHRhZyBuYW1lPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTm9kZVNldFNwYWNlUHJlc2VydmUiIGlkPSJ4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSI+PC9hPkZ1bmN0aW9uOiB4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTm9kZVNldFNwYWNlUHJlc2VydmUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgaW50IHZhbCk8YnIgLz4KKzwvcHJlPjxwPlNldCAob3IgcmVzZXQpIHRoZSBzcGFjZSBwcmVzZXJ2aW5nIGJlaGF2aW91ciBvZiBhIG5vZGUsIGkuZS4gdGhlIHZhbHVlIG9mIHRoZSB4bWw6c3BhY2UgYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgYmVpbmcgY2hhbmdlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgeG1sOnNwYWNlIHZhbHVlICgiMCI6IGRlZmF1bHQsIDE6ICJwcmVzZXJ2ZSIpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUHJldmlvdXNFbGVtZW50U2libGluZyIgaWQ9InhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmciPjwvYT5GdW5jdGlvbjogeG1sUHJldmlvdXNFbGVtZW50U2libGluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sUHJldmlvdXNFbGVtZW50U2libGluZwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxiciAvPgorPC9wcmU+PHA+RmluZHMgdGhlIGZpcnN0IGNsb3Nlc3QgcHJldmlvdXMgc2libGluZyBvZiB0aGUgbm9kZSB3aGljaCBpcyBhbiBlbGVtZW50IG5vZGUuIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4gdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJldmlvdXMgZWxlbWVudCBzaWJsaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlY29uY2lsaWF0ZU5zIiBpZD0ieG1sUmVjb25jaWxpYXRlTnMiPjwvYT5GdW5jdGlvbjogeG1sUmVjb25jaWxpYXRlTnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVjb25jaWxpYXRlTnMJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdHJlZSk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoYXQgYWxsIHRoZSBuYW1lc3BhY2VzIGRlY2xhcmVkIHdpdGhpbiB0aGUgZ2l2ZW4gdHJlZSBhcmUgcHJvcGVybHkgZGVjbGFyZWQuIFRoaXMgaXMgbmVlZGVkIGZvciBleGFtcGxlIGFmdGVyIENvcHkgb3IgQ3V0IGFuZCB0aGVuIHBhc3RlIG9wZXJhdGlvbnMuIFRoZSBzdWJ0cmVlIG1heSBzdGlsbCBob2xkIHBvaW50ZXJzIHRvIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgb3V0c2lkZSB0aGUgc3VidHJlZSBvciBpbnZhbGlkL21hc2tlZC4gQXMgbXVjaCBhcyBwb3NzaWJsZSB0aGUgZnVuY3Rpb24gdHJ5IHRvIHJldXNlIHRoZSBleGlzdGluZyBuYW1lc3BhY2VzIGZvdW5kIGluIHRoZSBuZXcgZW52aXJvbm1lbnQuIElmIG5vdCBwb3NzaWJsZSB0aGUgbmV3IG5hbWVzcGFjZXMgYXJlIHJlZGVjbGFyZWQgb24gQHRyZWUgYXQgdGhlIHRvcCBvZiB0aGUgZ2l2ZW4gc3VidHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGRlZmluaW5nIHRoZSBzdWJ0cmVlIHRvIHJlY29uY2lsaWF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGNyZWF0ZWQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZW1vdmVQcm9wIiBpZD0ieG1sUmVtb3ZlUHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxSZW1vdmVQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbW92ZVByb3AJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5VbmxpbmsgYW5kIGZyZWUgb25lIGF0dHJpYnV0ZSwgYWxsIHRoZSBjb250ZW50IGlzIGZyZWVkIHRvbyBOb3RlIHRoaXMgZG9lc24ndCB3b3JrIGZvciBuYW1lc3BhY2UgZGVmaW5pdGlvbiBhdHRyaWJ1dGVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVwbGFjZU5vZGUiIGlkPSJ4bWxSZXBsYWNlTm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxSZXBsYWNlTm9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sUmVwbGFjZU5vZGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG9sZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5VbmxpbmsgdGhlIG9sZCBub2RlIGZyb20gaXRzIGN1cnJlbnQgY29udGV4dCwgcHJ1bmUgdGhlIG5ldyBvbmUgYXQgdGhlIHNhbWUgcGxhY2UuIElmIEBjdXIgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW4gYSBkb2N1bWVudCBpdCBpcyBmaXJzdCB1bmxpbmtlZCBmcm9tIGl0cyBleGlzdGluZyBjb250ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9sZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9sZCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgQG9sZCBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZpbGUiIGlkPSJ4bWxTYXZlRmlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxTYXZlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTYXZlRmlsZQkJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGEgZmlsZS4gV2lsbCB1c2UgY29tcHJlc3Npb24gaWYgY29tcGlsZWQgaW4gYW5kIGVuYWJsZWQuIElmIEBmaWxlbmFtZSBpcyAiLSIgdGhlIHN0ZG91dCBmaWxlIGlzIHVzZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSAob3IgVVJMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZpbGVFbmMiIGlkPSJ4bWxTYXZlRmlsZUVuYyI+PC9hPkZ1bmN0aW9uOiB4bWxTYXZlRmlsZUVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTYXZlRmlsZUVuYwkJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nKTxiciAvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQsIGNvbnZlcnRpbmcgaXQgdG8gdGhlIGdpdmVuIGVuY29kaW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSAob3IgVVJMKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiBhbiBlbmNvZGluZyAob3IgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZpbGVUbyIgaWQ9InhtbFNhdmVGaWxlVG8iPjwvYT5GdW5jdGlvbjogeG1sU2F2ZUZpbGVUbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTYXZlRmlsZVRvCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGFuIFhNTCBkb2N1bWVudCB0byBhbiBJL08gYnVmZmVyLiBXYXJuaW5nICEgVGhpcyBjYWxsIHhtbE91dHB1dEJ1ZmZlckNsb3NlKCkgb24gYnVmIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgYWZ0ZXIgdGhpcyBjYWxsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3V0cHV0IEkvTyBidWZmZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIGlmIGFueSBhc3N1bWluZyB0aGUgSS9PIGxheWVyIGhhbmRsZXMgdGhlIHRyYW5jb2Rpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZvcm1hdEZpbGUiIGlkPSJ4bWxTYXZlRm9ybWF0RmlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxTYXZlRm9ybWF0RmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTYXZlRm9ybWF0RmlsZQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTxiciAvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlLiBXaWxsIHVzZSBjb21wcmVzc2lvbiBpZiBjb21waWxlZCBpbiBhbmQgZW5hYmxlZC4gSWYgQGZpbGVuYW1lIGlzICItIiB0aGUgc3Rkb3V0IGZpbGUgaXMgdXNlZC4gSWYgQGZvcm1hdCBpcyBzZXQgdGhlbiB0aGUgZG9jdW1lbnQgd2lsbCBiZSBpbmRlbnRlZCBvbiBvdXRwdXQuIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgPGEgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCN4bWxJbmRlbnRUcmVlT3V0cHV0Ij54bWxJbmRlbnRUcmVlT3V0cHV0PC9hPiA9IDEgb3IgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgd2FzIGNhbGxlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZW5hbWUgKG9yIFVSTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNhdmVGb3JtYXRGaWxlRW5jIiBpZD0ieG1sU2F2ZUZvcm1hdEZpbGVFbmMiPjwvYT5GdW5jdGlvbjogeG1sU2F2ZUZvcm1hdEZpbGVFbmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZUZvcm1hdEZpbGVFbmMJCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgZm9ybWF0KTxiciAvPgorPC9wcmU+PHA+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlIG9yIGFuIFVSTC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lIG9yIFVSTCB0byBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGJlaW5nIHNhdmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIGVuY29kaW5nIHRvIHVzZSBvciBOVUxMLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmUgYWRkZWQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4gTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiA8YSBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sI3htbEluZGVudFRyZWVPdXRwdXQiPnhtbEluZGVudFRyZWVPdXRwdXQ8L2E+ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZUZvcm1hdEZpbGVUbyIgaWQ9InhtbFNhdmVGb3JtYXRGaWxlVG8iPjwvYT5GdW5jdGlvbjogeG1sU2F2ZUZvcm1hdEZpbGVUbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTYXZlRm9ybWF0RmlsZVRvCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IGZvcm1hdCk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGFuIEkvTyBidWZmZXIuIFdhcm5pbmcgISBUaGlzIGNhbGwgeG1sT3V0cHV0QnVmZmVyQ2xvc2UoKSBvbiBidWYgd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBhZnRlciB0aGlzIGNhbGwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvdXRwdXQgSS9PIGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgaWYgYW55IGFzc3VtaW5nIHRoZSBJL08gbGF5ZXIgaGFuZGxlcyB0aGUgdHJhbmNvZGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTZWFyY2hOcyIgaWQ9InhtbFNlYXJjaE5zIj48L2E+RnVuY3Rpb246IHhtbFNlYXJjaE5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CXhtbFNlYXJjaE5zCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVTcGFjZSk8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCBhIE5zIHJlZ2lzdGVyZWQgdW5kZXIgYSBnaXZlbiBuYW1lIHNwYWNlIGZvciBhIGRvY3VtZW50LiByZWN1cnNlIG9uIHRoZSBwYXJlbnRzIHVudGlsIGl0IGZpbmRzIHRoZSBkZWZpbmVkIG5hbWVzcGFjZSBvciByZXR1cm4gTlVMTCBvdGhlcndpc2UuIEBuYW1lU3BhY2UgY2FuIGJlIE5VTEwsIHRoaXMgaXMgYSBzZWFyY2ggZm9yIHRoZSBkZWZhdWx0IG5hbWVzcGFjZS4gV2UgZG9uJ3QgYWxsb3cgdG8gY3Jvc3MgZW50aXRpZXMgYm91bmRhcmllcy4gSWYgeW91IGRvbid0IGRlY2xhcmUgdGhlIG5hbWVzcGFjZSB3aXRoaW4gdGhvc2UgeW91IHdpbGwgYmUgaW4gdHJvdWJsZXMgISEhIEEgd2FybmluZyBpcyBnZW5lcmF0ZWQgdG8gY292ZXIgdGhpcyBjYXNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lU3BhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHBvaW50ZXIgb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTZWFyY2hOc0J5SHJlZiIgaWQ9InhtbFNlYXJjaE5zQnlIcmVmIj48L2E+RnVuY3Rpb246IHhtbFNlYXJjaE5zQnlIcmVmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+CXhtbFNlYXJjaE5zQnlIcmVmCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogaHJlZik8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCBhIE5zIGFsaWFzaW5nIGEgZ2l2ZW4gVVJJLiBSZWN1cnNlIG9uIHRoZSBwYXJlbnRzIHVudGlsIGl0IGZpbmRzIHRoZSBkZWZpbmVkIG5hbWVzcGFjZSBvciByZXR1cm4gTlVMTCBvdGhlcndpc2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhyZWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgcG9pbnRlciBvciBOVUxMLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiIGlkPSJ4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIj48L2E+RnVuY3Rpb246IHhtbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSI+eG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvYT4gc2NoZW1lKTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBidWZmZXIgYWxsb2NhdGlvbiBtZXRob2QuIFR5cGVzIGFyZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfRVhBQ1QiPlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1Q8L2E+IC0gdXNlIGV4YWN0IHNpemVzLCBrZWVwcyBtZW1vcnkgdXNhZ2UgZG93biA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI1hNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQiPlhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQ8L2E+IC0gZG91YmxlIGJ1ZmZlciB3aGVuIGV4dHJhIG5lZWRlZCwgaW1wcm92ZXMgcGVyZm9ybWFuY2U8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG9jYXRpb24gbWV0aG9kIHRvIHVzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNldENvbXByZXNzTW9kZSIgaWQ9InhtbFNldENvbXByZXNzTW9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxTZXRDb21wcmVzc01vZGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNldENvbXByZXNzTW9kZQkJKGludCBtb2RlKTxiciAvPgorPC9wcmU+PHA+c2V0IHRoZSBkZWZhdWx0IGNvbXByZXNzaW9uIG1vZGUgdXNlZCwgWkxJQiBiYXNlZCBDb3JyZWN0IHZhbHVlczogMCAodW5jb21wcmVzc2VkKSB0byA5IChtYXggY29tcHJlc3Npb24pPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bW9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXByZXNzaW9uIHJhdGlvPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2V0RG9jQ29tcHJlc3NNb2RlIiBpZD0ieG1sU2V0RG9jQ29tcHJlc3NNb2RlIj48L2E+RnVuY3Rpb246IHhtbFNldERvY0NvbXByZXNzTW9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2V0RG9jQ29tcHJlc3NNb2RlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBpbnQgbW9kZSk8YnIgLz4KKzwvcHJlPjxwPnNldCB0aGUgY29tcHJlc3Npb24gcmF0aW8gZm9yIGEgZG9jdW1lbnQsIFpMSUIgYmFzZWQgQ29ycmVjdCB2YWx1ZXM6IDAgKHVuY29tcHJlc3NlZCkgdG8gOSAobWF4IGNvbXByZXNzaW9uKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcHJlc3Npb24gcmF0aW88L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTZXRMaXN0RG9jIiBpZD0ieG1sU2V0TGlzdERvYyI+PC9hPkZ1bmN0aW9uOiB4bWxTZXRMaXN0RG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXRMaXN0RG9jCQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbGlzdCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+dXBkYXRlIGFsbCBub2RlcyBpbiB0aGUgbGlzdCB0byBwb2ludCB0byB0aGUgcmlnaHQgZG9jdW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saXN0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTZXROcyIgaWQ9InhtbFNldE5zIj48L2E+RnVuY3Rpb246IHhtbFNldE5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXROcwkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiBucyk8YnIgLz4KKzwvcHJlPjxwPkFzc29jaWF0ZSBhIG5hbWVzcGFjZSB0byBhIG5vZGUsIGEgcG9zdGVyaW9yaS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgaW4gdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuYW1lc3BhY2UgcG9pbnRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNldE5zUHJvcCIgaWQ9InhtbFNldE5zUHJvcCI+PC9hPkZ1bmN0aW9uOiB4bWxTZXROc1Byb3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+CXhtbFNldE5zUHJvcAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPlNldCAob3IgcmVzZXQpIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gY2FycmllZCBieSBhIG5vZGUuIFRoZSBucyBzdHJ1Y3R1cmUgbXVzdCBiZSBpbiBzY29wZSwgdGhpcyBpcyBub3QgY2hlY2tlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBkZWZpbml0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHBvaW50ZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2V0UHJvcCIgaWQ9InhtbFNldFByb3AiPjwvYT5GdW5jdGlvbjogeG1sU2V0UHJvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sU2V0UHJvcAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5TZXQgKG9yIHJlc2V0KSBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGNhcnJpZWQgYnkgYSBub2RlLiBJZiBAbmFtZSBoYXMgYSBwcmVmaXgsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbmFtZXNwYWNlLWJpbmRpbmcgd2lsbCBiZSB1c2VkLCBpZiBpbiBzY29wZTsgaXQgaXMgYW4gZXJyb3IgaXQgdGhlcmUncyBubyBzdWNoIG5zLWJpbmRpbmcgZm9yIHRoZSBwcmVmaXggaW4gc2NvcGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWUgKGEgUU5hbWUpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHBvaW50ZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2V0VHJlZURvYyIgaWQ9InhtbFNldFRyZWVEb2MiPjwvYT5GdW5jdGlvbjogeG1sU2V0VHJlZURvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2V0VHJlZURvYwkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRyZWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPnVwZGF0ZSBhbGwgbm9kZXMgdW5kZXIgdGhlIHRyZWUgdG8gcG9pbnQgdG8gdGhlIHJpZ2h0IGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRvcCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNwbGl0UU5hbWUyIiBpZD0ieG1sU3BsaXRRTmFtZTIiPjwvYT5GdW5jdGlvbjogeG1sU3BsaXRRTmFtZTI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTcGxpdFFOYW1lMgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBwcmVmaXgpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgcXVhbGlmaWVkIG5hbWUgc3RyaW5nIFtOUyA1XSBRTmFtZSA6Oj0gKFByZWZpeCAnOicpPyBMb2NhbFBhcnQgW05TIDZdIFByZWZpeCA6Oj0gTkNOYW1lIFtOUyA3XSBMb2NhbFBhcnQgOjo9IE5DTmFtZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdWxsIFFOYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIG5vdCBhIFFOYW1lLCBvdGhlcndpc2UgdGhlIGxvY2FsIHBhcnQsIGFuZCBwcmVmaXggaXMgdXBkYXRlZCB0byBnZXQgdGhlIFByZWZpeCBpZiBhbnkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3BsaXRRTmFtZTMiIGlkPSJ4bWxTcGxpdFFOYW1lMyI+PC9hPkZ1bmN0aW9uOiB4bWxTcGxpdFFOYW1lMzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFNwbGl0UU5hbWUzCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgaW50ICogbGVuKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIHF1YWxpZmllZCBuYW1lIHN0cmluZyxpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bGwgUU5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgaXQgaXMgbm90IGEgUXVhbGlmaWVkIE5hbWUsIG90aGVyd2lzZSwgdXBkYXRlIGxlbiB3aXRoIHRoZSBsZW5naHQgaW4gYnl0ZSBvZiB0aGUgcHJlZml4IGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgbmFtZSB3aXRob3V0IHRoZSBwcmVmaXg8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJpbmdHZXROb2RlTGlzdCIgaWQ9InhtbFN0cmluZ0dldE5vZGVMaXN0Ij48L2E+RnVuY3Rpb246IHhtbFN0cmluZ0dldE5vZGVMaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxTdHJpbmdHZXROb2RlTGlzdAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPlBhcnNlIHRoZSB2YWx1ZSBzdHJpbmcgYW5kIGJ1aWxkIHRoZSBub2RlIGxpc3QgYXNzb2NpYXRlZC4gU2hvdWxkIHByb2R1Y2UgYSBmbGF0IHRyZWUgd2l0aCBvbmx5IFRFWFRzIGFuZCBFTlRJVFlfUkVGcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBmaXJzdCBjaGlsZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmluZ0xlbkdldE5vZGVMaXN0IiBpZD0ieG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QiPjwvYT5GdW5jdGlvbjogeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFN0cmluZ0xlbkdldE5vZGVMaXN0CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+UGFyc2UgdGhlIHZhbHVlIHN0cmluZyBhbmQgYnVpbGQgdGhlIG5vZGUgbGlzdCBhc3NvY2lhdGVkLiBTaG91bGQgcHJvZHVjZSBhIGZsYXQgdHJlZSB3aXRoIG9ubHkgVEVYVHMgYW5kIEVOVElUWV9SRUZzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIG9mIHRoZSB0ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBmaXJzdCBjaGlsZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRDb25jYXQiIGlkPSJ4bWxUZXh0Q29uY2F0Ij48L2E+RnVuY3Rpb246IHhtbFRleHRDb25jYXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dENvbmNhdAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5Db25jYXQgdGhlIGdpdmVuIHN0cmluZyBhdCB0aGUgZW5kIG9mIHRoZSBleGlzdGluZyBub2RlIGNvbnRlbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QGNvbnRlbnQgbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRNZXJnZSIgaWQ9InhtbFRleHRNZXJnZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0TWVyZ2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFRleHRNZXJnZQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZmlyc3QsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc2Vjb25kKTxiciAvPgorPC9wcmU+PHA+TWVyZ2UgdHdvIHRleHQgbm9kZXMgaW50byBvbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maXJzdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IHRleHQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2Vjb25kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIHRleHQgbm9kZSBiZWluZyBtZXJnZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCB0ZXh0IG5vZGUgYXVnbWVudGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVW5saW5rTm9kZSIgaWQ9InhtbFVubGlua05vZGUiPjwvYT5GdW5jdGlvbjogeG1sVW5saW5rTm9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sVW5saW5rTm9kZQkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPlVubGluayBhIG5vZGUgZnJvbSBpdCdzIGN1cnJlbnQgY29udGV4dCwgdGhlIG5vZGUgaXMgbm90IGZyZWVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVuc2V0TnNQcm9wIiBpZD0ieG1sVW5zZXROc1Byb3AiPjwvYT5GdW5jdGlvbjogeG1sVW5zZXROc1Byb3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVW5zZXROc1Byb3AJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5SZW1vdmUgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBjYXJyaWVkIGJ5IGEgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgZGVmaW5pdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZXNzZnVsLCAtMSBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVbnNldFByb3AiIGlkPSJ4bWxVbnNldFByb3AiPjwvYT5GdW5jdGlvbjogeG1sVW5zZXRQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVuc2V0UHJvcAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5SZW1vdmUgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBjYXJyaWVkIGJ5IGEgbm9kZS4gVGhpcyBoYW5kbGVzIG9ubHkgYXR0cmlidXRlcyBpbiBubyBuYW1lc3BhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2Vzc2Z1bCwgLTEgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVOQ05hbWUiIGlkPSJ4bWxWYWxpZGF0ZU5DTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZU5DTmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU5DTmFtZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgc3BhY2UpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgTkNOYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3BhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZU5NVG9rZW4iIGlkPSJ4bWxWYWxpZGF0ZU5NVG9rZW4iPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRhdGVOTVRva2VuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlTk1Ub2tlbgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgc3BhY2UpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgTk1Ub2tlbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNwYWNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbGxvdyBzcGFjZXMgaW4gZnJvbnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVOYW1lIiBpZD0ieG1sVmFsaWRhdGVOYW1lIj48L2E+RnVuY3Rpb246IHhtbFZhbGlkYXRlTmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU5hbWUJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJIGludCBzcGFjZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiBOYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3BhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZVFOYW1lIiBpZD0ieG1sVmFsaWRhdGVRTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZVFOYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlUU5hbWUJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgaW50IHNwYWNlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgdGhhdCBhIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBsZXhpY2FsIHNwYWNlIG9mIFFOYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3BhY2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtdXJpLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC11cmkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjFkZGYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtdXJpLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHVyaSBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIHVyaSBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+dHJlZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+dmFsaWQ8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+bGlicmFyeSBvZiBnZW5lcmljIFVSSSByZWxhdGVkIHJvdXRpbmVzIEltcGxlbWVudHMgUkZDIDIzOTYgPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sVVJJIj54bWxVUkk8L2E+PGJyIC8+c3RydWN0IF94bWxVUkkKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUkkiPnhtbFVSSTwvYT4gKiA8YSBuYW1lPSJ4bWxVUklQdHIiIGlkPSJ4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQnVpbGRSZWxhdGl2ZVVSSSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYmFzZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQnVpbGRVUkkiPnhtbEJ1aWxkVVJJPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYmFzZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sQ2Fub25pY1BhdGgiPnhtbENhbm9uaWNQYXRoPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3JlYXRlVVJJIj54bWxDcmVhdGVVUkk8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlVVJJIj54bWxGcmVlVVJJPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdXJpLmh0bWwjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+IHVyaSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE5vcm1hbGl6ZVVSSVBhdGgiPnhtbE5vcm1hbGl6ZVVSSVBhdGg8L2E+CQkoY2hhciAqIHBhdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VVUkkiPnhtbFBhcnNlVVJJPC9hPgkJKGNvbnN0IGNoYXIgKiBzdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPgk8YSBocmVmPSIjeG1sUGFyc2VVUklSYXciPnhtbFBhcnNlVVJJUmF3PC9hPgkJKGNvbnN0IGNoYXIgKiBzdHIsIDxiciAvPgkJCQkJIGludCByYXcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXJzZVVSSVJlZmVyZW5jZSI+eG1sUGFyc2VVUklSZWZlcmVuY2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiB1cmksIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBzdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFBhdGhUb1VSSSI+eG1sUGF0aFRvVVJJPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUHJpbnRVUkkiPnhtbFByaW50VVJJPC9hPgkJCShGSUxFICogc3RyZWFtLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdXJpLmh0bWwjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+IHVyaSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU2F2ZVVyaSI+eG1sU2F2ZVVyaTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdXJpLmh0bWwjeG1sVVJJUHRyIj54bWxVUklQdHI8L2E+IHVyaSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVVJJRXNjYXBlIj54bWxVUklFc2NhcGU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxVUklFc2NhcGVTdHIiPnhtbFVSSUVzY2FwZVN0cjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGxpc3QpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y2hhciAqCTxhIGhyZWY9IiN4bWxVUklVbmVzY2FwZVN0cmluZyI+eG1sVVJJVW5lc2NhcGVTdHJpbmc8L2E+CQkoY29uc3QgY2hhciAqIHN0ciwgPGJyIC8+CQkJCQkgaW50IGxlbiwgPGJyIC8+CQkJCQkgY2hhciAqIHRhcmdldCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0ieG1sVVJJIiBpZD0ieG1sVVJJIj5TdHJ1Y3R1cmUgeG1sVVJJPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxVUkk8YnIgLz5zdHJ1Y3QgX3htbFVSSSB7CisgICAgY2hhciAqCXNjaGVtZQk6IHRoZSBVUkkgc2NoZW1lCisgICAgY2hhciAqCW9wYXF1ZQk6IG9wYXF1ZSBwYXJ0CisgICAgY2hhciAqCWF1dGhvcml0eQk6IHRoZSBhdXRob3JpdHkgcGFydAorICAgIGNoYXIgKglzZXJ2ZXIJOiB0aGUgc2VydmVyIHBhcnQKKyAgICBjaGFyICoJdXNlcgk6IHRoZSB1c2VyIHBhcnQKKyAgICBpbnQJcG9ydAk6IHRoZSBwb3J0IG51bWJlcgorICAgIGNoYXIgKglwYXRoCTogdGhlIHBhdGggc3RyaW5nCisgICAgY2hhciAqCXF1ZXJ5CTogdGhlIHF1ZXJ5IHN0cmluZyAoZGVwcmVjYXRlZCAtIHVzZSB3aXRoCisgICAgY2hhciAqCWZyYWdtZW50CTogdGhlIGZyYWdtZW50IGlkZW50aWZpZXIKKyAgICBpbnQJY2xlYW51cAk6IHBhcnNpbmcgcG90ZW50aWFsbHkgdW5jbGVhbiBVUkkKKyAgICBjaGFyICoJcXVlcnlfcmF3CTogdGhlIHF1ZXJ5IHN0cmluZyAoYXMgaXQgYXBwZWFycyBpbiB0aGUKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sQnVpbGRSZWxhdGl2ZVVSSSIgaWQ9InhtbEJ1aWxkUmVsYXRpdmVVUkkiPjwvYT5GdW5jdGlvbjogeG1sQnVpbGRSZWxhdGl2ZVVSSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEJ1aWxkUmVsYXRpdmVVUkkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFVSSSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYmFzZSk8YnIgLz4KKzwvcHJlPjxwPkV4cHJlc3NlcyB0aGUgVVJJIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGluIHRlcm1zIHJlbGF0aXZlIHRvIHRoZSBiYXNlLiBTb21lIGV4YW1wbGVzIG9mIHRoaXMgb3BlcmF0aW9uIGluY2x1ZGU6IGJhc2UgPSAiaHR0cDovL3NpdGUxLmNvbS9kb2NzL2Jvb2sxLmh0bWwiIFVSSSBpbnB1dCBVUkkgcmV0dXJuZWQgZG9jcy9waWMxLmdpZiBwaWMxLmdpZiBkb2NzL2ltZy9waWMxLmdpZiBpbWcvcGljMS5naWYgaW1nL3BpYzEuZ2lmIC4uL2ltZy9waWMxLmdpZiBodHRwOi8vc2l0ZTEuY29tL2RvY3MvcGljMS5naWYgcGljMS5naWYgaHR0cDovL3NpdGUyLmNvbS9kb2NzL3BpYzEuZ2lmIGh0dHA6Ly9zaXRlMi5jb20vZG9jcy9waWMxLmdpZiBiYXNlID0gImRvY3MvYm9vazEuaHRtbCIgVVJJIGlucHV0IFVSSSByZXR1cm5lZCBkb2NzL3BpYzEuZ2lmIHBpYzEuZ2lmIGRvY3MvaW1nL3BpYzEuZ2lmIGltZy9waWMxLmdpZiBpbWcvcGljMS5naWYgLi4vaW1nL3BpYzEuZ2lmIGh0dHA6Ly9zaXRlMS5jb20vZG9jcy9waWMxLmdpZiBodHRwOi8vc2l0ZTEuY29tL2RvY3MvcGljMS5naWYgTm90ZTogaWYgdGhlIFVSSSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGlzIHJlYWxseSB3aWVyZCBvciBjb21wbGljYXRlZCwgaXQgbWF5IGJlIHdvcnRod2hpbGUgdG8gZmlyc3QgY29udmVydCBpdCBpbnRvIGEgIm5pY2UiIG9uZSBieSBjYWxsaW5nIDxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxCdWlsZFVSSSI+eG1sQnVpbGRVUkk8L2E+ICh1c2luZyAnYmFzZScpIGJlZm9yZSBjYWxsaW5nIHRoaXMgcm91dGluZSwgc2luY2UgdGhpcyByb3V0aW5lIChmb3IgcmVhc29uYWJsZSBlZmZpY2llbmN5KSBhc3N1bWVzIFVSSSBoYXMgYWxyZWFkeSBiZWVuIHRocm91Z2ggc29tZSB2YWxpZGF0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHVuZGVyIGNvbnNpZGVyYXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJhc2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBVUkkgc3RyaW5nICh0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyKSBvciBOVUxMIGluIGNhc2UgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQnVpbGRVUkkiIGlkPSJ4bWxCdWlsZFVSSSI+PC9hPkZ1bmN0aW9uOiB4bWxCdWlsZFVSSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbEJ1aWxkVVJJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogVVJJLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBiYXNlKTxiciAvPgorPC9wcmU+PHA+Q29tcHV0ZXMgaGUgZmluYWwgVVJJIG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGRvbmUgYnkgY2hlY2tpbmcgdGhhdCB0aGUgZ2l2ZW4gVVJJIGlzIHZhbGlkLCBhbmQgYnVpbGRpbmcgdGhlIGZpbmFsIFVSSSB1c2luZyB0aGUgYmFzZSBVUkkuIFRoaXMgaXMgcHJvY2Vzc2VkIGFjY29yZGluZyB0byBzZWN0aW9uIDUuMiBvZiB0aGUgUkZDIDIzOTYgNS4yLiBSZXNvbHZpbmcgUmVsYXRpdmUgUmVmZXJlbmNlcyB0byBBYnNvbHV0ZSBGb3JtPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGluc3RhbmNlIGZvdW5kIGluIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YmFzZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IFVSSSBzdHJpbmcgKHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIpIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDYW5vbmljUGF0aCIgaWQ9InhtbENhbm9uaWNQYXRoIj48L2E+RnVuY3Rpb246IHhtbENhbm9uaWNQYXRoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2Fub25pY1BhdGgJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwYXRoKTxiciAvPgorPC9wcmU+PHA+Q29uc3RydWN0cyBhIGNhbm9uaWMgcGF0aCBmcm9tIHRoZSBzcGVjaWZpZWQgcGF0aC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzb3VyY2UgbG9jYXRvciBpbiBhIGZpbGVzeXN0ZW0gbm90YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGNhbm9uaWMgcGF0aCwgb3IgYSBkdXBsaWNhdGUgb2YgdGhlIHBhdGggcGFyYW1ldGVyIGlmIHRoZSBjb25zdHJ1Y3Rpb24gZmFpbHMuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcgdGhlIG1lbW9yeSBvY2N1cGllZCBieSB0aGUgcmV0dXJuZWQgc3RyaW5nLiBJZiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgbWVtb3J5IGF2YWlsYWJsZSwgb3IgdGhlIGFyZ3VtZW50IGlzIE5VTEwsIHRoZSBmdW5jdGlvbiByZXR1cm5zIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3JlYXRlVVJJIiBpZD0ieG1sQ3JlYXRlVVJJIj48L2E+RnVuY3Rpb246IHhtbENyZWF0ZVVSSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4JeG1sQ3JlYXRlVVJJCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPlNpbXBseSBjcmVhdGVzIGFuIGVtcHR5IDxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUkkiPnhtbFVSSTwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlVVJJIiBpZD0ieG1sRnJlZVVSSSI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlVVJJPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlVVJJCQkJKDxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4gdXJpKTxiciAvPgorPC9wcmU+PHA+RnJlZSB1cCB0aGUgPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPiBzdHJ1Y3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5vcm1hbGl6ZVVSSVBhdGgiIGlkPSJ4bWxOb3JtYWxpemVVUklQYXRoIj48L2E+RnVuY3Rpb246IHhtbE5vcm1hbGl6ZVVSSVBhdGg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTm9ybWFsaXplVVJJUGF0aAkJKGNoYXIgKiBwYXRoKTxiciAvPgorPC9wcmU+PHA+QXBwbGllcyB0aGUgNSBub3JtYWxpemF0aW9uIHN0ZXBzIHRvIGEgcGF0aCBzdHJpbmctLXRoYXQgaXMsIFJGQyAyMzk2IFNlY3Rpb24gNS4yLCBzdGVwcyA2LmMgdGhyb3VnaCA2LmcuIE5vcm1hbGl6YXRpb24gb2NjdXJzIGRpcmVjdGx5IG9uIHRoZSBzdHJpbmcsIG5vIG5ldyBhbGxvY2F0aW9uIGlzIGRvbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBwYXRoIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciBhbiBlcnJvciBjb2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VVUkkiIGlkPSJ4bWxQYXJzZVVSSSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZVVSSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4JeG1sUGFyc2VVUkkJCShjb25zdCBjaGFyICogc3RyKTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYW4gVVJJIGJhc2VkIG9uIFJGQyAzOTg2IFVSSS1yZWZlcmVuY2UgPSBbIGFic29sdXRlVVJJIHwgcmVsYXRpdmVVUkkgXSBbICIjIiBmcmFnbWVudCBdPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIHN0cmluZyB0byBhbmFseXplPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGJ1aWx0IDxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VVUklSYXciIGlkPSJ4bWxQYXJzZVVSSVJhdyI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZVVSSVJhdzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUklQdHIiPnhtbFVSSVB0cjwvYT4JeG1sUGFyc2VVUklSYXcJCShjb25zdCBjaGFyICogc3RyLCA8YnIgLz4JCQkJCSBpbnQgcmF3KTxiciAvPgorPC9wcmU+PHA+UGFyc2UgYW4gVVJJIGJ1dCBhbGxvd3MgdG8ga2VlcCBpbnRhY3QgdGhlIG9yaWdpbmFsIGZyYWdtZW50cy4gVVJJLXJlZmVyZW5jZSA9IFVSSSAvIHJlbGF0aXZlLXJlZjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBzdHJpbmcgdG8gYW5hbHl6ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmF3PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiAxIHVuZXNjYXBpbmcgb2YgVVJJIHBpZWNlcyBhcmUgZGlzYWJsZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3bHkgYnVpbHQgPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZVVSSVJlZmVyZW5jZSIgaWQ9InhtbFBhcnNlVVJJUmVmZXJlbmNlIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlVVJJUmVmZXJlbmNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFBhcnNlVVJJUmVmZXJlbmNlCQkoPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiB1cmksIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBzdHIpPGJyIC8+Cis8L3ByZT48cD5QYXJzZSBhbiBVUkkgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI3JlZmVyZW5jZSI+cmVmZXJlbmNlPC9hPiBzdHJpbmcgYmFzZWQgb24gUkZDIDM5ODYgYW5kIGZpbGxzIGluIHRoZSBhcHByb3ByaWF0ZSBmaWVsZHMgb2YgdGhlIEB1cmkgc3RydWN0dXJlIFVSSS1yZWZlcmVuY2UgPSBVUkkgLyByZWxhdGl2ZS1yZWY8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gVVJJIHN0cnVjdHVyZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGFuYWx5emU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgdGhlIGVycm9yIGNvZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXRoVG9VUkkiIGlkPSJ4bWxQYXRoVG9VUkkiPjwvYT5GdW5jdGlvbjogeG1sUGF0aFRvVVJJPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sUGF0aFRvVVJJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcGF0aCk8YnIgLz4KKzwvcHJlPjxwPkNvbnN0cnVjdHMgYW4gVVJJIGV4cHJlc3NpbmcgdGhlIGV4aXN0aW5nIHBhdGg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzb3VyY2UgbG9jYXRvciBpbiBhIGZpbGVzeXN0ZW0gbm90YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IFVSSSwgb3IgYSBkdXBsaWNhdGUgb2YgdGhlIHBhdGggcGFyYW1ldGVyIGlmIHRoZSBjb25zdHJ1Y3Rpb24gZmFpbHMuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcgdGhlIG1lbW9yeSBvY2N1cGllZCBieSB0aGUgcmV0dXJuZWQgc3RyaW5nLiBJZiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgbWVtb3J5IGF2YWlsYWJsZSwgb3IgdGhlIGFyZ3VtZW50IGlzIE5VTEwsIHRoZSBmdW5jdGlvbiByZXR1cm5zIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUHJpbnRVUkkiIGlkPSJ4bWxQcmludFVSSSI+PC9hPkZ1bmN0aW9uOiB4bWxQcmludFVSSTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUHJpbnRVUkkJCQkoRklMRSAqIHN0cmVhbSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiB1cmkpPGJyIC8+Cis8L3ByZT48cD5QcmludHMgdGhlIFVSSSBpbiB0aGUgc3RyZWFtIEBzdHJlYW0uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZWFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIEZJTEUqIGZvciB0aGUgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNhdmVVcmkiIGlkPSJ4bWxTYXZlVXJpIj48L2E+RnVuY3Rpb246IHhtbFNhdmVVcmk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTYXZlVXJpCQkoPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSVB0ciI+eG1sVVJJUHRyPC9hPiB1cmkpPGJyIC8+Cis8L3ByZT48cD5TYXZlIHRoZSBVUkkgYXMgYW4gZXNjYXBlZCBzdHJpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gYW4gPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFVSSSI+eG1sVVJJPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgc3RyaW5nICh0byBiZSBkZWFsbG9jYXRlZCBieSBjYWxsZXIpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVJJRXNjYXBlIiBpZD0ieG1sVVJJRXNjYXBlIj48L2E+RnVuY3Rpb246IHhtbFVSSUVzY2FwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFVSSUVzY2FwZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik8YnIgLz4KKzwvcHJlPjxwPkVzY2FwaW5nIHJvdXRpbmUsIGRvZXMgbm90IGRvIHZhbGlkaXR5IGNoZWNrcyAhIEl0IHdpbGwgdHJ5IHRvIGVzY2FwZSB0aGUgY2hhcnMgbmVlZGluZyB0aGlzLCBidXQgdGhpcyBpcyBoZXVyaXN0aWMgYmFzZWQgaXQncyBpbXBvc3NpYmxlIHRvIGJlIHN1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIG9mIHRoZSBVUkkgdG8gZXNjYXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBjb3B5IG9mIHRoZSBzdHJpbmcsIGJ1dCBlc2NhcGVkIDI1IE1heSAyMDAxIFVzZXMgPGEgaHJlZj0ibGlieG1sLXVyaS5odG1sI3htbFBhcnNlVVJJIj54bWxQYXJzZVVSSTwvYT4gYW5kIDxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCN4bWxVUklFc2NhcGVTdHIiPnhtbFVSSUVzY2FwZVN0cjwvYT4gdG8gdHJ5IHRvIGVzY2FwZSBjb3JyZWN0bHkgYWNjb3JkaW5nIHRvIFJGQzIzOTYuIC0gQ2FybCBEb3VnbGFzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVJJRXNjYXBlU3RyIiBpZD0ieG1sVVJJRXNjYXBlU3RyIj48L2E+RnVuY3Rpb246IHhtbFVSSUVzY2FwZVN0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFVSSUVzY2FwZVN0cgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbGlzdCk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgcm91dGluZSBlc2NhcGVzIGEgc3RyaW5nIHRvIGhleCwgaWdub3JpbmcgcmVzZXJ2ZWQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IChhLXopIGFuZCB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGluIHRoZSBleGNlcHRpb24gbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnN0cmluZyB0byBlc2NhcGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmxpc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4Y2VwdGlvbiBsaXN0IHN0cmluZyBvZiBjaGFycyBub3QgdG8gZXNjYXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBlc2NhcGVkIHN0cmluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVJJVW5lc2NhcGVTdHJpbmciIGlkPSJ4bWxVUklVbmVzY2FwZVN0cmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxVUklVbmVzY2FwZVN0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNoYXIgKgl4bWxVUklVbmVzY2FwZVN0cmluZwkJKGNvbnN0IGNoYXIgKiBzdHIsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNoYXIgKiB0YXJnZXQpPGJyIC8+Cis8L3ByZT48cD5VbmVzY2FwaW5nIHJvdXRpbmUsIGJ1dCBkb2VzIG5vdCBjaGVjayB0aGF0IHRoZSBzdHJpbmcgaXMgYW4gVVJJLiBUaGUgb3V0cHV0IGlzIGEgZGlyZWN0IHVuc2lnbmVkIGNoYXIgdHJhbnNsYXRpb24gb2YgJVhYIHZhbHVlcyAobm8gZW5jb2RpbmcpIE5vdGUgdGhhdCB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgY2FuIG9ubHkgYmUgc21hbGxlciBvciBzYW1lIHNpemUgYXMgdGhlIGlucHV0IHN0cmluZy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmcgdG8gdW5lc2NhcGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBpbiBieXRlcyB0byB1bmVzY2FwZSAob3IgJmx0Oz0gMCB0byBpbmRpY2F0ZSBmdWxsIHN0cmluZyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhcmdldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9uYWwgZGVzdGluYXRpb24gYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvcHkgb2YgdGhlIHN0cmluZywgYnV0IHVuZXNjYXBlZCwgd2lsbCByZXR1cm4gTlVMTCBvbmx5IGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwtdmFsaWQuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXZhbGlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmIyMjY5YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXZhbGlkLmh0bWwKQEAgLTAsMCArMSwyODkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB2YWxpZCBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIHZhbGlkIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwtdXJpLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC11cmkuaHRtbCI+dXJpPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC14aW5jbHVkZS5odG1sIj54aW5jbHVkZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14aW5jbHVkZS5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD5BUEkgZm9yIHRoZSBEVEQgaGFuZGxpbmcgYW5kIHRoZSB2YWxpZGl0eSBjaGVja2luZyA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX0NUWFRfRklOSVNIX0RURF8wIj5YTUxfQ1RYVF9GSU5JU0hfRFREXzA8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTF9DVFhUX0ZJTklTSF9EVERfMSI+WE1MX0NUWFRfRklOSVNIX0RURF8xPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbEF0dHJpYnV0ZVRhYmxlIj54bWxBdHRyaWJ1dGVUYWJsZTwvYT48YnIgLz5zdHJ1Y3QgX3htbEhhc2hUYWJsZQorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZSI+eG1sQXR0cmlidXRlVGFibGU8L2E+ICogPGEgbmFtZT0ieG1sQXR0cmlidXRlVGFibGVQdHIiIGlkPSJ4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxFbGVtZW50VGFibGUiPnhtbEVsZW1lbnRUYWJsZTwvYT48YnIgLz5zdHJ1Y3QgX3htbEhhc2hUYWJsZQorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGUiPnhtbEVsZW1lbnRUYWJsZTwvYT4gKiA8YSBuYW1lPSJ4bWxFbGVtZW50VGFibGVQdHIiIGlkPSJ4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbElEVGFibGUiPnhtbElEVGFibGU8L2E+PGJyIC8+c3RydWN0IF94bWxIYXNoVGFibGUKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sSURUYWJsZSI+eG1sSURUYWJsZTwvYT4gKiA8YSBuYW1lPSJ4bWxJRFRhYmxlUHRyIiBpZD0ieG1sSURUYWJsZVB0ciI+eG1sSURUYWJsZVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbE5vdGF0aW9uVGFibGUiPnhtbE5vdGF0aW9uVGFibGU8L2E+PGJyIC8+c3RydWN0IF94bWxIYXNoVGFibGUKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZSI+eG1sTm90YXRpb25UYWJsZTwvYT4gKiA8YSBuYW1lPSJ4bWxOb3RhdGlvblRhYmxlUHRyIiBpZD0ieG1sTm90YXRpb25UYWJsZVB0ciI+eG1sTm90YXRpb25UYWJsZVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFJlZlRhYmxlIj54bWxSZWZUYWJsZTwvYT48YnIgLz5zdHJ1Y3QgX3htbEhhc2hUYWJsZQorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxSZWZUYWJsZSI+eG1sUmVmVGFibGU8L2E+ICogPGEgbmFtZT0ieG1sUmVmVGFibGVQdHIiIGlkPSJ4bWxSZWZUYWJsZVB0ciI+eG1sUmVmVGFibGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxWYWxpZEN0eHQiPnhtbFZhbGlkQ3R4dDwvYT48YnIgLz5zdHJ1Y3QgX3htbFZhbGlkQ3R4dAorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0Ij54bWxWYWxpZEN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sVmFsaWRDdHh0UHRyIiBpZD0ieG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxWYWxpZFN0YXRlIj54bWxWYWxpZFN0YXRlPC9hPjxiciAvPnN0cnVjdCBfeG1sVmFsaWRTdGF0ZQorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZFN0YXRlIj54bWxWYWxpZFN0YXRlPC9hPiAqIDxhIG5hbWU9InhtbFZhbGlkU3RhdGVQdHIiIGlkPSJ4bWxWYWxpZFN0YXRlUHRyIj54bWxWYWxpZFN0YXRlUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGRBdHRyaWJ1dGVEZWNsIj54bWxBZGRBdHRyaWJ1dGVEZWNsPC9hPgkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZWxlbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT4gdHlwZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVEZWZhdWx0Ij54bWxBdHRyaWJ1dGVEZWZhdWx0PC9hPiBkZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGRlZmF1bHRWYWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IHRyZWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkRWxlbWVudERlY2wiPnhtbEFkZEVsZW1lbnREZWNsPC9hPgkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50VHlwZVZhbCI+eG1sRWxlbWVudFR5cGVWYWw8L2E+IHR5cGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sSURQdHIiPnhtbElEUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkSUQiPnhtbEFkZElEPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+CTxhIGhyZWY9IiN4bWxBZGROb3RhdGlvbkRlY2wiPnhtbEFkZE5vdGF0aW9uRGVjbDwvYT4JKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFB1YmxpY0lELCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBTeXN0ZW1JRCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFJlZlB0ciI+eG1sUmVmUHRyPC9hPgk8YSBocmVmPSIjeG1sQWRkUmVmIj54bWxBZGRSZWY8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5QXR0cmlidXRlVGFibGUiPnhtbENvcHlBdHRyaWJ1dGVUYWJsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4gdGFibGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQiPnhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weUVsZW1lbnRDb250ZW50Ij54bWxDb3B5RWxlbWVudENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZVB0ciI+eG1sRWxlbWVudFRhYmxlUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weUVsZW1lbnRUYWJsZSI+eG1sQ29weUVsZW1lbnRUYWJsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZVB0ciI+eG1sRWxlbWVudFRhYmxlUHRyPC9hPiB0YWJsZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JPGEgaHJlZj0iI3htbENvcHlFbnVtZXJhdGlvbiI+eG1sQ29weUVudW1lcmF0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxOb3RhdGlvblRhYmxlUHRyIj54bWxOb3RhdGlvblRhYmxlUHRyPC9hPgk8YSBocmVmPSIjeG1sQ29weU5vdGF0aW9uVGFibGUiPnhtbENvcHlOb3RhdGlvblRhYmxlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZVB0ciI+eG1sTm90YXRpb25UYWJsZVB0cjwvYT4gdGFibGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+CTxhIGhyZWY9IiN4bWxDcmVhdGVFbnVtZXJhdGlvbiI+eG1sQ3JlYXRlRW51bWVyYXRpb248L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbER1bXBBdHRyaWJ1dGVEZWNsIj54bWxEdW1wQXR0cmlidXRlRGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+IGF0dHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRHVtcEF0dHJpYnV0ZVRhYmxlIj54bWxEdW1wQXR0cmlidXRlVGFibGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+IHRhYmxlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbER1bXBFbGVtZW50RGVjbCI+eG1sRHVtcEVsZW1lbnREZWNsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbER1bXBFbGVtZW50VGFibGUiPnhtbER1bXBFbGVtZW50VGFibGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT4gdGFibGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRHVtcE5vdGF0aW9uRGVjbCI+eG1sRHVtcE5vdGF0aW9uRGVjbDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPiBub3RhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbER1bXBOb3RhdGlvblRhYmxlIj54bWxEdW1wTm90YXRpb25UYWJsZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVBdHRyaWJ1dGVUYWJsZSI+eG1sRnJlZUF0dHJpYnV0ZVRhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4gdGFibGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZURvY0VsZW1lbnRDb250ZW50Ij54bWxGcmVlRG9jRWxlbWVudENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZUVsZW1lbnRDb250ZW50Ij54bWxGcmVlRWxlbWVudENvbnRlbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlRWxlbWVudFRhYmxlIj54bWxGcmVlRWxlbWVudFRhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZVB0ciI+eG1sRWxlbWVudFRhYmxlUHRyPC9hPiB0YWJsZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlRW51bWVyYXRpb24iPnhtbEZyZWVFbnVtZXJhdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVJRFRhYmxlIj54bWxGcmVlSURUYWJsZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sSURUYWJsZVB0ciI+eG1sSURUYWJsZVB0cjwvYT4gdGFibGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZU5vdGF0aW9uVGFibGUiPnhtbEZyZWVOb3RhdGlvblRhYmxlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVSZWZUYWJsZSI+eG1sRnJlZVJlZlRhYmxlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxSZWZUYWJsZVB0ciI+eG1sUmVmVGFibGVQdHI8L2E+IHRhYmxlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVWYWxpZEN0eHQiPnhtbEZyZWVWYWxpZEN0eHQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0RHRkQXR0ckRlc2MiPnhtbEdldER0ZEF0dHJEZXNjPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4JPGEgaHJlZj0iI3htbEdldER0ZEVsZW1lbnREZXNjIj54bWxHZXREdGRFbGVtZW50RGVzYzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vdGF0aW9uUHRyIj54bWxOb3RhdGlvblB0cjwvYT4JPGEgaHJlZj0iI3htbEdldER0ZE5vdGF0aW9uRGVzYyI+eG1sR2V0RHRkTm90YXRpb25EZXNjPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxHZXREdGRRQXR0ckRlc2MiPnhtbEdldER0ZFFBdHRyRGVzYzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZWxlbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4JPGEgaHJlZj0iI3htbEdldER0ZFFFbGVtZW50RGVzYyI+eG1sR2V0RHRkUUVsZW1lbnREZXNjPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0SUQiPnhtbEdldElEPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogSUQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLWxpc3QuaHRtbCN4bWxMaXN0UHRyIj54bWxMaXN0UHRyPC9hPgk8YSBocmVmPSIjeG1sR2V0UmVmcyI+eG1sR2V0UmVmczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElEKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSXNJRCI+eG1sSXNJRDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbElzTWl4ZWRFbGVtZW50Ij54bWxJc01peGVkRWxlbWVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxJc1JlZiI+eG1sSXNSZWY8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdEb2NFbGVtZW50Q29udGVudCI+eG1sTmV3RG9jRWxlbWVudENvbnRlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT4gdHlwZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld0VsZW1lbnRDb250ZW50Ij54bWxOZXdFbGVtZW50Q29udGVudDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50VHlwZSI+eG1sRWxlbWVudENvbnRlbnRUeXBlPC9hPiB0eXBlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3VmFsaWRDdHh0Ij54bWxOZXdWYWxpZEN0eHQ8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlbW92ZUlEIj54bWxSZW1vdmVJRDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxSZW1vdmVSZWYiPnhtbFJlbW92ZVJlZjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU25wcmludGZFbGVtZW50Q29udGVudCI+eG1sU25wcmludGZFbGVtZW50Q29udGVudDwvYT4JKGNoYXIgKiBidWYsIDxiciAvPgkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCwgPGJyIC8+CQkJCQkgaW50IGVuZ2xvYik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiPnhtbFNwcmludGZFbGVtZW50Q29udGVudDwvYT4JKGNoYXIgKiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50LCA8YnIgLz4JCQkJCSBpbnQgZW5nbG9iKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbCI+eG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbDwvYT4JKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+IGVsZW0pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iPnhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW48L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50Ij54bWxFbGVtZW50Q29udGVudDwvYT4gKiBjdHJlZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzLCA8YnIgLz4JCQkJCSBpbnQgKiBsZW4sIDxiciAvPgkJCQkJIGludCBtYXgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPnhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZSI+eG1sTm9kZTwvYT4gKiBwcmV2LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGUiPnhtbE5vZGU8L2E+ICogbmV4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzLCA8YnIgLz4JCQkJCSBpbnQgbWF4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIj54bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPiBhdHRyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlVHlwZSI+eG1sQXR0cmlidXRlVHlwZTwvYT4gdHlwZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZURvY3VtZW50Ij54bWxWYWxpZGF0ZURvY3VtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwiPnhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvYT4JKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZUR0ZCI+eG1sVmFsaWRhdGVEdGQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlRHRkRmluYWwiPnhtbFZhbGlkYXRlRHRkRmluYWw8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlRWxlbWVudCI+eG1sVmFsaWRhdGVFbGVtZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlRWxlbWVudERlY2wiPnhtbFZhbGlkYXRlRWxlbWVudERlY2w8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOYW1lVmFsdWUiPnhtbFZhbGlkYXRlTmFtZVZhbHVlPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOYW1lc1ZhbHVlIj54bWxWYWxpZGF0ZU5hbWVzVmFsdWU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZSI+eG1sVmFsaWRhdGVObXRva2VuVmFsdWU8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUiPnhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPiBub3RhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVOb3RhdGlvblVzZSI+eG1sVmFsaWRhdGVOb3RhdGlvblVzZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBub3RhdGlvbk5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+eG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVPbmVFbGVtZW50Ij54bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiPnhtbFZhbGlkYXRlT25lTmFtZXNwYWNlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVmFsaWRhdGVQb3BFbGVtZW50Ij54bWxWYWxpZGF0ZVBvcEVsZW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBxbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlUHVzaENEYXRhIj54bWxWYWxpZGF0ZVB1c2hDRGF0YTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGF0YSwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlUHVzaEVsZW1lbnQiPnhtbFZhbGlkYXRlUHVzaEVsZW1lbnQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBxbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFZhbGlkYXRlUm9vdCI+eG1sVmFsaWRhdGVSb290PC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxWYWxpZGl0eUVycm9yRnVuYyI+eG1sVmFsaWRpdHlFcnJvckZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjeG1sVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKQorPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IlhNTF9DVFhUX0ZJTklTSF9EVERfMCIgaWQ9IlhNTF9DVFhUX0ZJTklTSF9EVERfMCI+PC9hPk1hY3JvOiBYTUxfQ1RYVF9GSU5JU0hfRFREXzA8L2gzPjxwcmU+I2RlZmluZSBYTUxfQ1RYVF9GSU5JU0hfRFREXzA8L3ByZT48cD5TcGVjaWFsIHZhbHVlIGZvciBmaW5pc2hEdGQgZmllbGQgd2hlbiBlbWJlZGRlZCBpbiBhbiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+PC9wPgorPGgzPjxhIG5hbWU9IlhNTF9DVFhUX0ZJTklTSF9EVERfMSIgaWQ9IlhNTF9DVFhUX0ZJTklTSF9EVERfMSI+PC9hPk1hY3JvOiBYTUxfQ1RYVF9GSU5JU0hfRFREXzE8L2gzPjxwcmU+I2RlZmluZSBYTUxfQ1RYVF9GSU5JU0hfRFREXzE8L3ByZT48cD5TcGVjaWFsIHZhbHVlIGZvciBmaW5pc2hEdGQgZmllbGQgd2hlbiBlbWJlZGRlZCBpbiBhbiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHQiPnhtbFBhcnNlckN0eHQ8L2E+PC9wPgorPGgzPjxhIG5hbWU9InhtbEF0dHJpYnV0ZVRhYmxlIiBpZD0ieG1sQXR0cmlidXRlVGFibGUiPlN0cnVjdHVyZSB4bWxBdHRyaWJ1dGVUYWJsZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sQXR0cmlidXRlVGFibGU8YnIgLz5zdHJ1Y3QgX3htbEhhc2hUYWJsZSB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sRWxlbWVudFRhYmxlIiBpZD0ieG1sRWxlbWVudFRhYmxlIj5TdHJ1Y3R1cmUgeG1sRWxlbWVudFRhYmxlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxFbGVtZW50VGFibGU8YnIgLz5zdHJ1Y3QgX3htbEhhc2hUYWJsZSB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sSURUYWJsZSIgaWQ9InhtbElEVGFibGUiPlN0cnVjdHVyZSB4bWxJRFRhYmxlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxJRFRhYmxlPGJyIC8+c3RydWN0IF94bWxIYXNoVGFibGUgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbE5vdGF0aW9uVGFibGUiIGlkPSJ4bWxOb3RhdGlvblRhYmxlIj5TdHJ1Y3R1cmUgeG1sTm90YXRpb25UYWJsZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sTm90YXRpb25UYWJsZTxiciAvPnN0cnVjdCBfeG1sSGFzaFRhYmxlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxSZWZUYWJsZSIgaWQ9InhtbFJlZlRhYmxlIj5TdHJ1Y3R1cmUgeG1sUmVmVGFibGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFJlZlRhYmxlPGJyIC8+c3RydWN0IF94bWxIYXNoVGFibGUgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFZhbGlkQ3R4dCIgaWQ9InhtbFZhbGlkQ3R4dCI+U3RydWN0dXJlIHhtbFZhbGlkQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sVmFsaWRDdHh0PGJyIC8+c3RydWN0IF94bWxWYWxpZEN0eHQgeworICAgIHZvaWQgKgl1c2VyRGF0YQk6IHVzZXIgc3BlY2lmaWMgZGF0YSBibG9jaworICAgIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkaXR5RXJyb3JGdW5jIj54bWxWYWxpZGl0eUVycm9yRnVuYzwvYT4JZXJyb3IJOiB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiBlcnJvcnMKKyAgICA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPgl3YXJuaW5nCTogdGhlIGNhbGxiYWNrIGluIGNhc2Ugb2Ygd2FybmluZyBOb2RlIGFuCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglub2RlCTogQ3VycmVudCBwYXJzZWQgTm9kZQorICAgIGludAlub2RlTnIJOiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaworICAgIGludAlub2RlTWF4CTogTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiAqCW5vZGVUYWIJOiBhcnJheSBvZiBub2RlcworICAgIHVuc2lnbmVkIGludAlmaW5pc2hEdGQJOiBmaW5pc2hlZCB2YWxpZGF0aW5nIHRoZSBEdGQgPworICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CWRvYwk6IHRoZSBkb2N1bWVudAorICAgIGludAl2YWxpZAk6IHRlbXBvcmFyeSB2YWxpZGl0eSBjaGVjayByZXN1bHQgc3RhdGUgcworICAgIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkU3RhdGUiPnhtbFZhbGlkU3RhdGU8L2E+ICoJdnN0YXRlCTogY3VycmVudCBzdGF0ZQorICAgIGludAl2c3RhdGVOcgk6IERlcHRoIG9mIHRoZSB2YWxpZGF0aW9uIHN0YWNrCisgICAgaW50CXZzdGF0ZU1heAk6IE1heCBkZXB0aCBvZiB0aGUgdmFsaWRhdGlvbiBzdGFjaworICAgIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkU3RhdGUiPnhtbFZhbGlkU3RhdGU8L2E+ICoJdnN0YXRlVGFiCTogYXJyYXkgb2YgdmFsaWRhdGlvbiBzdGF0ZXMKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+CWFtCTogdGhlIGF1dG9tYXRhCisgICAgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4Jc3RhdGUJOiB1c2VkIHRvIGJ1aWxkIHRoZSBhdXRvbWF0YQorICAgIHZvaWQgKglhbQorICAgIHZvaWQgKglzdGF0ZQorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxWYWxpZFN0YXRlIiBpZD0ieG1sVmFsaWRTdGF0ZSI+U3RydWN0dXJlIHhtbFZhbGlkU3RhdGU8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFZhbGlkU3RhdGU8YnIgLz5zdHJ1Y3QgX3htbFZhbGlkU3RhdGUgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbEFkZEF0dHJpYnV0ZURlY2wiIGlkPSJ4bWxBZGRBdHRyaWJ1dGVEZWNsIj48L2E+RnVuY3Rpb246IHhtbEFkZEF0dHJpYnV0ZURlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPgl4bWxBZGRBdHRyaWJ1dGVEZWNsCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBlbGVtLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVUeXBlIj54bWxBdHRyaWJ1dGVUeXBlPC9hPiB0eXBlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZURlZmF1bHQiPnhtbEF0dHJpYnV0ZURlZmF1bHQ8L2E+IGRlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZGVmYXVsdFZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gdHJlZSk8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gZGVjbGFyYXRpb24gTm90ZSB0aGF0IEB0cmVlIGJlY29tZXMgdGhlIG93bmVyc2hpcCBvZiB0aGUgRFREPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlZmF1bHQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGVmYXVsdFZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZhdWx0IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pZiBpdCdzIGFuIGVudW1lcmF0aW9uLCB0aGUgYXNzb2NpYXRlZCBsaXN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIG5vdCBuZXcsIG90aGVyd2lzZSB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWNsPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQWRkRWxlbWVudERlY2wiIGlkPSJ4bWxBZGRFbGVtZW50RGVjbCI+PC9hPkZ1bmN0aW9uOiB4bWxBZGRFbGVtZW50RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4JeG1sQWRkRWxlbWVudERlY2wJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFR5cGVWYWwiPnhtbEVsZW1lbnRUeXBlVmFsPC9hPiB0eXBlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IGVsZW1lbnQgZGVjbGFyYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBjb250ZW50IHRyZWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgZW50aXR5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQWRkSUQiIGlkPSJ4bWxBZGRJRCI+PC9hPkZ1bmN0aW9uOiB4bWxBZGRJRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sSURQdHIiPnhtbElEUHRyPC9hPgl4bWxBZGRJRAkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyBpZCBkZWNsYXJhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaG9sZGluZyB0aGUgSUQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbElEUHRyIj54bWxJRFB0cjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBZGROb3RhdGlvbkRlY2wiIGlkPSJ4bWxBZGROb3RhdGlvbkRlY2wiPjwvYT5GdW5jdGlvbjogeG1sQWRkTm90YXRpb25EZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+CXhtbEFkZE5vdGF0aW9uRGVjbAkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogUHVibGljSUQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIFN5c3RlbUlEKTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgbm90YXRpb24gZGVjbGFyYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVudGl0eSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5QdWJsaWNJRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlN5c3RlbUlEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgZW50aXR5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQWRkUmVmIiBpZD0ieG1sQWRkUmVmIj48L2E+RnVuY3Rpb246IHhtbEFkZFJlZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUmVmUHRyIj54bWxSZWZQdHI8L2E+CXhtbEFkZFJlZgkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyByZWYgZGVjbGFyYXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGhvbGRpbmcgdGhlIFJlZjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUmVmUHRyIj54bWxSZWZQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weUF0dHJpYnV0ZVRhYmxlIiBpZD0ieG1sQ29weUF0dHJpYnV0ZVRhYmxlIj48L2E+RnVuY3Rpb246IHhtbENvcHlBdHRyaWJ1dGVUYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4JeG1sQ29weUF0dHJpYnV0ZVRhYmxlCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+QnVpbGQgYSBjb3B5IG9mIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdGFibGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sQXR0cmlidXRlVGFibGVQdHIiPnhtbEF0dHJpYnV0ZVRhYmxlUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weURvY0VsZW1lbnRDb250ZW50IiBpZD0ieG1sQ29weURvY0VsZW1lbnRDb250ZW50Ij48L2E+RnVuY3Rpb246IHhtbENvcHlEb2NFbGVtZW50Q29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgl4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+QnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgY29udGVudCBkZXNjcmlwdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBvd25pbmcgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZWxlbWVudCBjb250ZW50IHBvaW50ZXIuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ29weUVsZW1lbnRDb250ZW50IiBpZD0ieG1sQ29weUVsZW1lbnRDb250ZW50Ij48L2E+RnVuY3Rpb246IHhtbENvcHlFbGVtZW50Q29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPgl4bWxDb3B5RWxlbWVudENvbnRlbnQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5CdWlsZCBhIGNvcHkgb2YgYW4gZWxlbWVudCBjb250ZW50IGRlc2NyaXB0aW9uLiBEZXByZWNhdGVkLCB1c2UgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sQ29weURvY0VsZW1lbnRDb250ZW50Ij54bWxDb3B5RG9jRWxlbWVudENvbnRlbnQ8L2E+IGluc3RlYWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVsZW1lbnQgY29udGVudCBwb2ludGVyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRDb250ZW50UHRyIj54bWxFbGVtZW50Q29udGVudFB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENvcHlFbGVtZW50VGFibGUiIGlkPSJ4bWxDb3B5RWxlbWVudFRhYmxlIj48L2E+RnVuY3Rpb246IHhtbENvcHlFbGVtZW50VGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT4JeG1sQ29weUVsZW1lbnRUYWJsZQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sRWxlbWVudFRhYmxlUHRyIj54bWxFbGVtZW50VGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+QnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgdGFibGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVsZW1lbnQgdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sRWxlbWVudFRhYmxlUHRyIj54bWxFbGVtZW50VGFibGVQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDb3B5RW51bWVyYXRpb24iIGlkPSJ4bWxDb3B5RW51bWVyYXRpb24iPjwvYT5GdW5jdGlvbjogeG1sQ29weUVudW1lcmF0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+CXhtbENvcHlFbnVtZXJhdGlvbgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbnVtZXJhdGlvblB0ciI+eG1sRW51bWVyYXRpb25QdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkNvcHkgYW4gZW51bWVyYXRpb24gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBub2RlIChyZWN1cnNpdmUpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRyZWUgdG8gY29weS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4ganVzdCBjcmVhdGVkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDb3B5Tm90YXRpb25UYWJsZSIgaWQ9InhtbENvcHlOb3RhdGlvblRhYmxlIj48L2E+RnVuY3Rpb246IHhtbENvcHlOb3RhdGlvblRhYmxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZVB0ciI+eG1sTm90YXRpb25UYWJsZVB0cjwvYT4JeG1sQ29weU5vdGF0aW9uVGFibGUJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+QnVpbGQgYSBjb3B5IG9mIGEgbm90YXRpb24gdGFibGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkEgbm90YXRpb24gdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sTm90YXRpb25UYWJsZVB0ciI+eG1sTm90YXRpb25UYWJsZVB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENyZWF0ZUVudW1lcmF0aW9uIiBpZD0ieG1sQ3JlYXRlRW51bWVyYXRpb24iPjwvYT5GdW5jdGlvbjogeG1sQ3JlYXRlRW51bWVyYXRpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4JeG1sQ3JlYXRlRW51bWVyYXRpb24JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5jcmVhdGUgYW5kIGluaXRpYWxpemUgYW4gZW51bWVyYXRpb24gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbnVtZXJhdGlvbiBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4ganVzdCBjcmVhdGVkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxEdW1wQXR0cmlidXRlRGVjbCIgaWQ9InhtbER1bXBBdHRyaWJ1dGVEZWNsIj48L2E+RnVuY3Rpb246IHhtbER1bXBBdHRyaWJ1dGVEZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxEdW1wQXR0cmlidXRlRGVjbAkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT4gYXR0cik8YnIgLz4KKzwvcHJlPjxwPlRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlY2xhcmF0aW9uIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlY2xhcmF0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRHVtcEF0dHJpYnV0ZVRhYmxlIiBpZD0ieG1sRHVtcEF0dHJpYnV0ZVRhYmxlIj48L2E+RnVuY3Rpb246IHhtbER1bXBBdHRyaWJ1dGVUYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRHVtcEF0dHJpYnV0ZVRhYmxlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxBdHRyaWJ1dGVUYWJsZVB0ciI+eG1sQXR0cmlidXRlVGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdGFibGUgYXMgYW4gWE1MIERURCBkZWZpbml0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGJ1ZmZlciBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHRhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRHVtcEVsZW1lbnREZWNsIiBpZD0ieG1sRHVtcEVsZW1lbnREZWNsIj48L2E+RnVuY3Rpb246IHhtbER1bXBFbGVtZW50RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRHVtcEVsZW1lbnREZWNsCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+IGVsZW0pPGJyIC8+Cis8L3ByZT48cD5UaGlzIHdpbGwgZHVtcCB0aGUgY29udGVudCBvZiB0aGUgZWxlbWVudCBkZWNsYXJhdGlvbiBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYTUwgYnVmZmVyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZWxlbWVudCB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbER1bXBFbGVtZW50VGFibGUiIGlkPSJ4bWxEdW1wRWxlbWVudFRhYmxlIj48L2E+RnVuY3Rpb246IHhtbER1bXBFbGVtZW50VGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbER1bXBFbGVtZW50VGFibGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEVsZW1lbnRUYWJsZVB0ciI+eG1sRWxlbWVudFRhYmxlUHRyPC9hPiB0YWJsZSk8YnIgLz4KKzwvcHJlPjxwPlRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBlbGVtZW50IHRhYmxlIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZWxlbWVudCB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbER1bXBOb3RhdGlvbkRlY2wiIGlkPSJ4bWxEdW1wTm90YXRpb25EZWNsIj48L2E+RnVuY3Rpb246IHhtbER1bXBOb3RhdGlvbkRlY2w8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbER1bXBOb3RhdGlvbkRlY2wJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm90YXRpb25QdHIiPnhtbE5vdGF0aW9uUHRyPC9hPiBub3RhKTxiciAvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgdGhlIG5vdGF0aW9uIGRlY2xhcmF0aW9uIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub3RhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BIG5vdGF0aW9uIGRlY2xhcmF0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRHVtcE5vdGF0aW9uVGFibGUiIGlkPSJ4bWxEdW1wTm90YXRpb25UYWJsZSI+PC9hPkZ1bmN0aW9uOiB4bWxEdW1wTm90YXRpb25UYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRHVtcE5vdGF0aW9uVGFibGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIG5vdGF0aW9uIHRhYmxlIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBidWZmZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBub3RhdGlvbiB0YWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVBdHRyaWJ1dGVUYWJsZSIgaWQ9InhtbEZyZWVBdHRyaWJ1dGVUYWJsZSI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlQXR0cmlidXRlVGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVBdHRyaWJ1dGVUYWJsZQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEF0dHJpYnV0ZVRhYmxlUHRyIj54bWxBdHRyaWJ1dGVUYWJsZVB0cjwvYT4gdGFibGUpPGJyIC8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbnRpdGllcyBoYXNoIHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHRhYmxlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZURvY0VsZW1lbnRDb250ZW50IiBpZD0ieG1sRnJlZURvY0VsZW1lbnRDb250ZW50Ij48L2E+RnVuY3Rpb246IHhtbEZyZWVEb2NFbGVtZW50Q29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZURvY0VsZW1lbnRDb250ZW50CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5GcmVlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUuIFRoZSB3aG9sZSBzdWJ0cmVlIGlzIHJlbW92ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgb3duaW5nIHRoZSBlbGVtZW50IGRlY2xhcmF0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IGNvbnRlbnQgdHJlZSB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZUVsZW1lbnRDb250ZW50IiBpZD0ieG1sRnJlZUVsZW1lbnRDb250ZW50Ij48L2E+RnVuY3Rpb246IHhtbEZyZWVFbGVtZW50Q29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZUVsZW1lbnRDb250ZW50CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkZyZWUgYW4gZWxlbWVudCBjb250ZW50IHN0cnVjdHVyZS4gVGhlIHdob2xlIHN1YnRyZWUgaXMgcmVtb3ZlZC4gRGVwcmVjYXRlZCwgdXNlIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbEZyZWVEb2NFbGVtZW50Q29udGVudCI+eG1sRnJlZURvY0VsZW1lbnRDb250ZW50PC9hPiBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBjb250ZW50IHRyZWUgdG8gZnJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVFbGVtZW50VGFibGUiIGlkPSJ4bWxGcmVlRWxlbWVudFRhYmxlIj48L2E+RnVuY3Rpb246IHhtbEZyZWVFbGVtZW50VGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVFbGVtZW50VGFibGUJCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxFbGVtZW50VGFibGVQdHIiPnhtbEVsZW1lbnRUYWJsZVB0cjwvYT4gdGFibGUpPGJyIC8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbGVtZW50IGhhc2ggdGFibGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFibGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVsZW1lbnQgdGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlRW51bWVyYXRpb24iIGlkPSJ4bWxGcmVlRW51bWVyYXRpb24iPjwvYT5GdW5jdGlvbjogeG1sRnJlZUVudW1lcmF0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlRW51bWVyYXRpb24JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVudW1lcmF0aW9uUHRyIj54bWxFbnVtZXJhdGlvblB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+ZnJlZSBhbiBlbnVtZXJhdGlvbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5vZGUgKHJlY3Vyc2l2ZSkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHJlZSB0byBmcmVlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVJRFRhYmxlIiBpZD0ieG1sRnJlZUlEVGFibGUiPjwvYT5GdW5jdGlvbjogeG1sRnJlZUlEVGFibGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVJRFRhYmxlCQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbElEVGFibGVQdHIiPnhtbElEVGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gSUQgaGFzaCB0YWJsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gaWQgdGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlTm90YXRpb25UYWJsZSIgaWQ9InhtbEZyZWVOb3RhdGlvblRhYmxlIj48L2E+RnVuY3Rpb246IHhtbEZyZWVOb3RhdGlvblRhYmxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlTm90YXRpb25UYWJsZQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbE5vdGF0aW9uVGFibGVQdHIiPnhtbE5vdGF0aW9uVGFibGVQdHI8L2E+IHRhYmxlKTxiciAvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gZW50aXRpZXMgaGFzaCB0YWJsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YWJsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gbm90YXRpb24gdGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlUmVmVGFibGUiIGlkPSJ4bWxGcmVlUmVmVGFibGUiPjwvYT5GdW5jdGlvbjogeG1sRnJlZVJlZlRhYmxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlUmVmVGFibGUJCQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sUmVmVGFibGVQdHIiPnhtbFJlZlRhYmxlUHRyPC9hPiB0YWJsZSk8YnIgLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIFJlZiBoYXNoIHRhYmxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhYmxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5BbiByZWYgdGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGcmVlVmFsaWRDdHh0IiBpZD0ieG1sRnJlZVZhbGlkQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlVmFsaWRDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxGcmVlVmFsaWRDdHh0CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPkZyZWUgYSB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dCB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0RHRkQXR0ckRlc2MiIGlkPSJ4bWxHZXREdGRBdHRyRGVzYyI+PC9hPkZ1bmN0aW9uOiB4bWxHZXREdGRBdHRyRGVzYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+CXhtbEdldER0ZEF0dHJEZXNjCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVsZW0sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5TZWFyY2ggdGhlIERURCBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvbiB0aGlzIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVB0ciI+eG1sQXR0cmlidXRlUHRyPC9hPiBpZiBmb3VuZCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0RHRkRWxlbWVudERlc2MiIGlkPSJ4bWxHZXREdGRFbGVtZW50RGVzYyI+PC9hPkZ1bmN0aW9uOiB4bWxHZXREdGRFbGVtZW50RGVzYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudFB0ciI+eG1sRWxlbWVudFB0cjwvYT4JeG1sR2V0RHRkRWxlbWVudERlc2MJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCB0aGUgRFREIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBlbGVtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEVsZW1lbnRQdHIiPnhtbEVsZW1lbnRQdHI8L2E+IGlmIGZvdW5kIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXREdGROb3RhdGlvbkRlc2MiIGlkPSJ4bWxHZXREdGROb3RhdGlvbkRlc2MiPjwvYT5GdW5jdGlvbjogeG1sR2V0RHRkTm90YXRpb25EZXNjPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+CXhtbEdldER0ZE5vdGF0aW9uRGVzYwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEdGRQdHIiPnhtbER0ZFB0cjwvYT4gZHRkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIG5vdGF0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub3RhdGlvbiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+IGlmIGZvdW5kIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXREdGRRQXR0ckRlc2MiIGlkPSJ4bWxHZXREdGRRQXR0ckRlc2MiPjwvYT5GdW5jdGlvbjogeG1sR2V0RHRkUUF0dHJEZXNjPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT4JeG1sR2V0RHRkUUF0dHJEZXNjCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGVsZW0sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCk8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCB0aGUgRFREIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBxdWFsaWZpZWQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvbiB0aGlzIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZHRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2g8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0cmlidXRlUHRyIj54bWxBdHRyaWJ1dGVQdHI8L2E+IGlmIGZvdW5kIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxHZXREdGRRRWxlbWVudERlc2MiIGlkPSJ4bWxHZXREdGRRRWxlbWVudERlc2MiPjwvYT5GdW5jdGlvbjogeG1sR2V0RHRkUUVsZW1lbnREZXNjPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPgl4bWxHZXREdGRRRWxlbWVudERlc2MJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRHRkUHRyIj54bWxEdGRQdHI8L2E+IGR0ZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGVsZW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgRHREIHRvIHNlYXJjaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBpZiBmb3VuZCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0SUQiIGlkPSJ4bWxHZXRJRCI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRJRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4JeG1sR2V0SUQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElEKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlY2xhcmluZyB0aGUgZ2l2ZW4gSUQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIElEIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGRlZmluaW5nIHRoZSBJRDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdldFJlZnMiIGlkPSJ4bWxHZXRSZWZzIj48L2E+RnVuY3Rpb246IHhtbEdldFJlZnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtbGlzdC5odG1sI3htbExpc3RQdHIiPnhtbExpc3RQdHI8L2E+CXhtbEdldFJlZnMJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIElEKTxiciAvPgorPC9wcmU+PHA+RmluZCB0aGUgc2V0IG9mIHJlZmVyZW5jZXMgZm9yIHRoZSBzdXBwbGllZCBJRC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5JRDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIElEIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5OVUxMIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIG5vZGUgc2V0IGZvciB0aGUgSUQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSXNJRCIgaWQ9InhtbElzSUQiPjwvYT5GdW5jdGlvbjogeG1sSXNJRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxJc0lECQkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJQdHIiPnhtbEF0dHJQdHI8L2E+IGF0dHIpPGJyIC8+Cis8L3ByZT48cD5EZXRlcm1pbmUgd2hldGhlciBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGlzIG9mIHR5cGUgSUQuIEluIGNhc2Ugd2UgaGF2ZSBEVEQocykgdGhlbiB0aGlzIGlzIGRvbmUgaWYgRFREIGxvYWRpbmcgaGFzIGJlZW4gcmVxdWVzdGVkLiBJbiB0aGUgY2FzZSBvZiBIVE1MIGRvY3VtZW50cyBwYXJzZWQgd2l0aCB0aGUgSFRNTCBwYXJzZXIsIHRoZW4gSUQgZGV0ZWN0aW9uIGlzIGRvbmUgc3lzdGVtYXRpY2FsbHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbGVtZW50IGNhcnJ5aW5nIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAxIGRlcGVuZGluZyBvbiB0aGUgbG9va3VwIHJlc3VsdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElzTWl4ZWRFbGVtZW50IiBpZD0ieG1sSXNNaXhlZEVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sSXNNaXhlZEVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNNaXhlZEVsZW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5TZWFyY2ggaW4gdGhlIER0RHMgd2hldGhlciBhbiBlbGVtZW50IGFjY2VwdCBNaXhlZCBjb250ZW50IChvciBBTlkpIGJhc2ljYWxseSBpZiBpdCBpcyBzdXBwb3NlZCB0byBhY2NlcHQgdGV4dCBjaGlsZHM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBubywgMSBpZiB5ZXMsIGFuZCAtMSBpZiBubyBlbGVtZW50IGRlc2NyaXB0aW9uIGlzIGF2YWlsYWJsZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElzUmVmIiBpZD0ieG1sSXNSZWYiPjwvYT5GdW5jdGlvbjogeG1sSXNSZWY8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSXNSZWYJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik8YnIgLz4KKzwvcHJlPjxwPkRldGVybWluZSB3aGV0aGVyIGFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaXMgb2YgdHlwZSBSZWYuIEluIGNhc2Ugd2UgaGF2ZSBEVEQocykgdGhlbiB0aGlzIGlzIHNpbXBsZSwgb3RoZXJ3aXNlIHdlIHVzZSBhbiBoZXVyaXN0aWM6IG5hbWUgUmVmICh1cHBlciBvciBsb3dlcmNhc2UpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIGxvb2t1cCByZXN1bHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdEb2NFbGVtZW50Q29udGVudCIgaWQ9InhtbE5ld0RvY0VsZW1lbnRDb250ZW50Ij48L2E+RnVuY3Rpb246IHhtbE5ld0RvY0VsZW1lbnRDb250ZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CXhtbE5ld0RvY0VsZW1lbnRDb250ZW50CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT4gdHlwZSk8YnIgLz4KKzwvcHJlPjxwPkFsbG9jYXRlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUgZm9yIHRoZSBkb2N1bWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN1YmVsZW1lbnQgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBvZiBlbGVtZW50IGNvbnRlbnQgZGVjbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+TlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdFbGVtZW50Q29udGVudCIgaWQ9InhtbE5ld0VsZW1lbnRDb250ZW50Ij48L2E+RnVuY3Rpb246IHhtbE5ld0VsZW1lbnRDb250ZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+CXhtbE5ld0VsZW1lbnRDb250ZW50CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFR5cGUiPnhtbEVsZW1lbnRDb250ZW50VHlwZTwvYT4gdHlwZSk8YnIgLz4KKzwvcHJlPjxwPkFsbG9jYXRlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUuIERlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sTmV3RG9jRWxlbWVudENvbnRlbnQiPnhtbE5ld0RvY0VsZW1lbnRDb250ZW50PC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdWJlbGVtZW50IG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgb2YgZWxlbWVudCBjb250ZW50IGRlY2w8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIG5ldyBlbGVtZW50IGNvbnRlbnQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VmFsaWRDdHh0IiBpZD0ieG1sTmV3VmFsaWRDdHh0Ij48L2E+RnVuY3Rpb246IHhtbE5ld1ZhbGlkQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPgl4bWxOZXdWYWxpZEN0eHQJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+QWxsb2NhdGUgYSB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIG5ldyB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVtb3ZlSUQiIGlkPSJ4bWxSZW1vdmVJRCI+PC9hPkZ1bmN0aW9uOiB4bWxSZW1vdmVJRDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZW1vdmVJRAkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgZ2l2ZW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBmcm9tIHRoZSBJRCB0YWJsZSBtYWludGFpbmVkIGludGVybmFsbHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpZiB0aGUgbG9va3VwIGZhaWxlZCBhbmQgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZW1vdmVSZWYiIGlkPSJ4bWxSZW1vdmVSZWYiPjwvYT5GdW5jdGlvbjogeG1sUmVtb3ZlUmVmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlbW92ZVJlZgkJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQXR0clB0ciI+eG1sQXR0clB0cjwvYT4gYXR0cik8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZSB0aGUgZ2l2ZW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBmcm9tIHRoZSBSZWYgdGFibGUgbWFpbnRhaW5lZCBpbnRlcm5hbGx5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hdHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaWYgdGhlIGxvb2t1cCBmYWlsZWQgYW5kIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU25wcmludGZFbGVtZW50Q29udGVudCIgaWQ9InhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQiPjwvYT5GdW5jdGlvbjogeG1sU25wcmludGZFbGVtZW50Q29udGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU25wcmludGZFbGVtZW50Q29udGVudAkoY2hhciAqIGJ1ZiwgPGJyIC8+CQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRWxlbWVudENvbnRlbnRQdHIiPnhtbEVsZW1lbnRDb250ZW50UHRyPC9hPiBjb250ZW50LCA8YnIgLz4JCQkJCSBpbnQgZW5nbG9iKTxiciAvPgorPC9wcmU+PHA+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgY29udGVudCBkZWZpbml0aW9uIEludGVuZGVkIGp1c3QgZm9yIHRoZSBkZWJ1ZyByb3V0aW5lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvdXRwdXQgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHNpemU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkFuIGVsZW1lbnQgdGFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZ2xvYjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBvbmUgbXVzdCBwcmludCB0aGUgZW5nbG9iaW5nIHBhcmVudGhlc2lzLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNwcmludGZFbGVtZW50Q29udGVudCIgaWQ9InhtbFNwcmludGZFbGVtZW50Q29udGVudCI+PC9hPkZ1bmN0aW9uOiB4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNwcmludGZFbGVtZW50Q29udGVudAkoY2hhciAqIGJ1ZiwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudFB0ciI+eG1sRWxlbWVudENvbnRlbnRQdHI8L2E+IGNvbnRlbnQsIDxiciAvPgkJCQkJIGludCBlbmdsb2IpPGJyIC8+Cis8L3ByZT48cD5EZXByZWNhdGVkLCB1bnNhZmUsIHVzZSA8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Ij54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3V0cHV0IGJ1ZmZlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QW4gZWxlbWVudCB0YWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5nbG9iPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIG9uZSBtdXN0IHByaW50IHRoZSBlbmdsb2JpbmcgcGFyZW50aGVzaXMsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbCIgaWQ9InhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+KFJlKUJ1aWxkIHRoZSBhdXRvbWF0YSBhc3NvY2lhdGVkIHRvIHRoZSBjb250ZW50IG1vZGVsIG9mIHRoaXMgZWxlbWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGRlY2xhcmF0aW9uIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBzdWNjZXNzLCAwIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSIgaWQ9InhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPkRvZXMgdGhlIHZhbGlkYXRpb24gcmVsYXRlZCBleHRyYSBzdGVwIG9mIHRoZSBub3JtYWxpemF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzOiBJZiB0aGUgZGVjbGFyZWQgdmFsdWUgaXMgbm90IENEQVRBLCB0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIG11c3QgZnVydGhlciBwcm9jZXNzIHRoZSBub3JtYWxpemVkIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgYnkgZGlzY2FyZGluZyBhbnkgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHNwYWNlICgjeDIwKSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYnkgc2luZ2xlIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXIuIEFsc28gY2hlY2sgVkM6IFN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb24gaW4gUDMyLCBhbmQgdXBkYXRlIGN0eHQtJmd0O3ZhbGlkIGFjY29yZGluZ2x5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcmVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBub3JtYWxpemVkIHN0cmluZyBpZiBub3JtYWxpemF0aW9uIGlzIG5lZWRlZCwgTlVMTCBvdGhlcndpc2UgdGhlIGNhbGxlciBtdXN0IGZyZWUgdGhlIHJldHVybmVkIHZhbHVlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4iIGlkPSJ4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuIj48L2E+RnVuY3Rpb246IHhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50Q29udGVudCI+eG1sRWxlbWVudENvbnRlbnQ8L2E+ICogY3RyZWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lcywgPGJyIC8+CQkJCQkgaW50ICogbGVuLCA8YnIgLz4JCQkJCSBpbnQgbWF4KTxiciAvPgorPC9wcmU+PHA+QnVpbGQvZXh0ZW5kIGEgbGlzdCBvZiBwb3RlbnRpYWwgY2hpbGRyZW4gYWxsb3dlZCBieSB0aGUgY29udGVudCB0cmVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3RyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgY29udGVudCB0cmVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXJyYXkgdG8gc3RvcmUgdGhlIGxpc3Qgb2YgY2hpbGQgbmFtZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgZWxlbWVudCBpbiB0aGUgbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZWxlbWVudCBpbiB0aGUgbGlzdCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiIGlkPSJ4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlIj54bWxOb2RlPC9hPiAqIHByZXYsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZSI+eG1sTm9kZTwvYT4gKiBuZXh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbmFtZXMsIDxiciAvPgkJCQkJIGludCBtYXgpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxpc3Qgb2YgYXV0aG9yaXplZCBjaGlsZHJlbiB0byBpbnNlcnQgd2l0aGluIGFuIGV4aXN0aW5nIHRyZWUgd2hpbGUgcmVzcGVjdGluZyB0aGUgdmFsaWRpdHkgY29uc3RyYWludHMgZm9yY2VkIGJ5IHRoZSBEdGQuIFRoZSBpbnNlcnRpb24gcG9pbnQgaXMgZGVmaW5lZCB1c2luZyBAcHJldiBhbmQgQG5leHQgaW4gdGhlIGZvbGxvd2luZyB3YXlzOiB0byBpbnNlcnQgYmVmb3JlICdub2RlJzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKG5vZGUtJmd0O3ByZXYsIG5vZGUsIC4uLiB0byBpbnNlcnQgbmV4dCAnbm9kZSc6IHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyhub2RlLCBub2RlLSZndDtuZXh0LCAuLi4gdG8gcmVwbGFjZSAnbm9kZSc6IHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyhub2RlLSZndDtwcmV2LCBub2RlLSZndDtuZXh0LCAuLi4gdG8gcHJlcGVuZCBhIGNoaWxkIHRvICdub2RlJzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKE5VTEwsIG5vZGUtJmd0O2NoaWxkcywgdG8gYXBwZW5kIGEgY2hpbGQgdG8gJ25vZGUnOiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMobm9kZS0mZ3Q7bGFzdCwgTlVMTCwgLi4uIHBvaW50ZXJzIHRvIHRoZSBlbGVtZW50IG5hbWVzIGFyZSBpbnNlcnRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheSBhbmQgZG8gbm90IG5lZWQgdG8gYmUgZnJlZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJldjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZWxlbWVudCB0byBpbnNlcnQgYWZ0ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5leHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgdG8gaW5zZXJ0IG5leHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhcnJheSB0byBzdG9yZSB0aGUgbGlzdCBvZiBjaGlsZCBuYW1lczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgZWxlbWVudCBpbiB0aGUgbGlzdCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4gSWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIHZhbHVlIEBtYXggdGhlIGNhbGxlciBpcyBpbnZpdGVkIHRvIGdyb3cgdGhlIHJlY2VpdmluZyBhcnJheSBhbmQgcmV0cnkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSIgaWQ9InhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPkRvZXMgdGhlIHZhbGlkYXRpb24gcmVsYXRlZCBleHRyYSBzdGVwIG9mIHRoZSBub3JtYWxpemF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWVzOiBJZiB0aGUgZGVjbGFyZWQgdmFsdWUgaXMgbm90IENEQVRBLCB0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIG11c3QgZnVydGhlciBwcm9jZXNzIHRoZSBub3JtYWxpemVkIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgYnkgZGlzY2FyZGluZyBhbnkgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHNwYWNlICgjeDIwKSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYnkgc2luZ2xlIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgbm9ybWFsaXplZCBzdHJpbmcgaWYgbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQsIE5VTEwgb3RoZXJ3aXNlIHRoZSBjYWxsZXIgbXVzdCBmcmVlIHRoZSByZXR1cm5lZCB2YWx1ZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiIGlkPSJ4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbAkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyaWJ1dGVQdHIiPnhtbEF0dHJpYnV0ZVB0cjwvYT4gYXR0cik8YnIgLz4KKzwvcHJlPjxwPlRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGRlZmluaXRpb24gYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IEF0dHJpYnV0ZSBEZWZhdWx0IExlZ2FsIF0gLSBbIFZDOiBFbnVtZXJhdGlvbiBdIC0gWyBWQzogSUQgQXR0cmlidXRlIERlZmF1bHQgXSBUaGUgSUQvSURSRUYgdW5pcXVlbmVzcyBhbmQgbWF0Y2hpbmcgYXJlIGRvbmUgc2VwYXJhdGVseTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXR0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBkZWZpbml0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSIgaWQ9InhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEF0dHJpYnV0ZVR5cGUiPnhtbEF0dHJpYnV0ZVR5cGU8L2E+IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+VmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBtYXRjaCB0aGUgcHJvcGVyIHByb2R1Y3Rpb24gWyBWQzogSUQgXSBWYWx1ZXMgb2YgdHlwZSBJRCBtdXN0IG1hdGNoIHRoZSBOYW1lIHByb2R1Y3Rpb24uLi4uIFsgVkM6IElEUkVGIF0gVmFsdWVzIG9mIHR5cGUgSURSRUYgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCBhbmQgdmFsdWVzIG9mIHR5cGUgSURSRUZTIG11c3QgbWF0Y2ggTmFtZXMgLi4uIFsgVkM6IEVudGl0eSBOYW1lIF0gVmFsdWVzIG9mIHR5cGUgRU5USVRZIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgdmFsdWVzIG9mIHR5cGUgRU5USVRJRVMgbXVzdCBtYXRjaCBOYW1lcyAuLi4gWyBWQzogTmFtZSBUb2tlbiBdIFZhbHVlcyBvZiB0eXBlIE5NVE9LRU4gbXVzdCBtYXRjaCB0aGUgTm10b2tlbiBwcm9kdWN0aW9uOyB2YWx1ZXMgb2YgdHlwZSBOTVRPS0VOUyBtdXN0IG1hdGNoIE5tdG9rZW5zLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZURvY3VtZW50IiBpZD0ieG1sVmFsaWRhdGVEb2N1bWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZURvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlRG9jdW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+VHJ5IHRvIHZhbGlkYXRlIHRoZSBkb2N1bWVudCBpbnN0YW5jZSBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgYWxsIHRoZSBjaGVja3MgZGVzY3JpYmVkIGJ5IHRoZSBYTUwgUmVjIGkuZS4gdmFsaWRhdGVzIHRoZSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgc3Vic2V0IChpZiBwcmVzZW50KSBhbmQgdmFsaWRhdGUgdGhlIGRvY3VtZW50IHRyZWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIiBpZD0ieG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIj48L2E+RnVuY3Rpb246IHhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyIC8+Cis8L3ByZT48cD5Eb2VzIHRoZSBmaW5hbCBzdGVwIGZvciB0aGUgZG9jdW1lbnQgdmFsaWRhdGlvbiBvbmNlIGFsbCB0aGUgaW5jcmVtZW50YWwgdmFsaWRhdGlvbiBzdGVwcyBoYXZlIGJlZW4gY29tcGxldGVkIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGRlc2NyaWJlZCBieSB0aGUgWE1MIFJlYyBDaGVjayBhbGwgdGhlIElEUkVGL0lEUkVGUyBhdHRyaWJ1dGVzIGRlZmluaXRpb24gZm9yIHZhbGlkaXR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVEdGQiIGlkPSJ4bWxWYWxpZGF0ZUR0ZCI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZUR0ZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZUR0ZAkJCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbER0ZFB0ciI+eG1sRHRkUHRyPC9hPiBkdGQpPGJyIC8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFnYWluc3QgdGhlIGR0ZCBpbnN0YW5jZSBCYXNpY2FsbHkgaXQgZG9lcyBjaGVjayBhbGwgdGhlIGRlZmluaXRpb25zIGluIHRoZSBEdEQuIE5vdGUgdGhlIHRoZSBpbnRlcm5hbCBzdWJzZXQgKGlmIHByZXNlbnQpIGlzIGRlLWNvdXBsZWQgKGkuZS4gbm90IHVzZWQpLCB3aGljaCBjb3VsZCBnaXZlIHByb2JsZW1zIGlmIElEIG9yIElEUkVGIGlzIHByZXNlbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kdGQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZHRkIGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVEdGRGaW5hbCIgaWQ9InhtbFZhbGlkYXRlRHRkRmluYWwiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRhdGVEdGRGaW5hbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZUR0ZEZpbmFsCQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPkRvZXMgdGhlIGZpbmFsIHN0ZXAgZm9yIHRoZSBkdGRzIHZhbGlkYXRpb24gb25jZSBhbGwgdGhlIHN1YnNldHMgaGF2ZSBiZWVuIHBhcnNlZCBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBkZXNjcmliZWQgYnkgdGhlIFhNTCBSZWMgLSBjaGVjayB0aGF0IEVOVElUWSBhbmQgRU5USVRJRVMgdHlwZSBhdHRyaWJ1dGVzIGRlZmF1bHQgb3IgcG9zc2libGUgdmFsdWVzIG1hdGNoZXMgb25lIG9mIHRoZSBkZWZpbmVkIGVudGl0aWVzLiAtIGNoZWNrIHRoYXQgTk9UQVRJT04gdHlwZSBhdHRyaWJ1dGVzIGRlZmF1bHQgb3IgcG9zc2libGUgdmFsdWVzIG1hdGNoZXMgb25lIG9mIHRoZSBkZWZpbmVkIG5vdGF0aW9ucy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBpZiBpbnZhbGlkIGFuZCAtMSBpZiBub3Qgd2VsbC1mb3JtZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZUVsZW1lbnQiIGlkPSJ4bWxWYWxpZGF0ZUVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRhdGVFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlRWxlbWVudAkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8YnIgLz4KKzwvcHJlPjxwPlRyeSB0byB2YWxpZGF0ZSB0aGUgc3VidHJlZSB1bmRlciBhbiBlbGVtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVFbGVtZW50RGVjbCIgaWQ9InhtbFZhbGlkYXRlRWxlbWVudERlY2wiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRhdGVFbGVtZW50RGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZUVsZW1lbnREZWNsCQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxFbGVtZW50UHRyIj54bWxFbGVtZW50UHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+VHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIGVsZW1lbnQgZGVmaW5pdGlvbiBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb246IC0gWyBWQzogT25lIElEIHBlciBFbGVtZW50IFR5cGUgXSAtIFsgVkM6IE5vIER1cGxpY2F0ZSBUeXBlcyBdIC0gWyBWQzogVW5pcXVlIEVsZW1lbnQgVHlwZSBEZWNsYXJhdGlvbiBdPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGRlZmluaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZU5hbWVWYWx1ZSIgaWQ9InhtbFZhbGlkYXRlTmFtZVZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFZhbGlkYXRlTmFtZVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlTmFtZVZhbHVlCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5WYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBtYXRjaCBOYW1lIHByb2R1Y3Rpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gTmFtZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlTmFtZXNWYWx1ZSIgaWQ9InhtbFZhbGlkYXRlTmFtZXNWYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZU5hbWVzVmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVOYW1lc1ZhbHVlCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5WYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBtYXRjaCBOYW1lcyBwcm9kdWN0aW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIE5hbWVzIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVObXRva2VuVmFsdWUiIGlkPSJ4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+VmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2ggTm10b2tlbiBwcm9kdWN0aW9uIFsgVkM6IE5hbWUgVG9rZW4gXTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBObXRva2VuIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIiBpZD0ieG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+VmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2ggTm10b2tlbnMgcHJvZHVjdGlvbiBbIFZDOiBOYW1lIFRva2VuIF08L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gTm10b2tlbnMgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCIgaWQ9InhtbFZhbGlkYXRlTm90YXRpb25EZWNsIj48L2E+RnVuY3Rpb246IHhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlTm90YXRpb25EZWNsCQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb3RhdGlvblB0ciI+eG1sTm90YXRpb25QdHI8L2E+IG5vdGEpPGJyIC8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgYSBzaW5nbGUgbm90YXRpb24gZGVmaW5pdGlvbiBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb246IC0gaXQgc2VlbXMgdGhhdCBubyB2YWxpZGl0eSBjb25zdHJhaW50IGV4aXN0cyBvbiBub3RhdGlvbiBkZWNsYXJhdGlvbnMgQnV0IHRoaXMgZnVuY3Rpb24gZ2V0IGNhbGxlZCBhbnl3YXkgLi4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub3RhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vdGF0aW9uIGRlZmluaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlIiBpZD0ieG1sVmFsaWRhdGVOb3RhdGlvblVzZSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlTm90YXRpb25Vc2UJCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBub3RhdGlvbk5hbWUpPGJyIC8+Cis8L3ByZT48cD5WYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiBuYW1lIG1hdGNoIGEgbm90YXRpb24gZGVjbGFyYXRpb24uIC0gWyBWQzogTm90YXRpb24gRGVjbGFyZWQgXTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub3RhdGlvbk5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub3RhdGlvbiBuYW1lIHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUiIGlkPSJ4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxBdHRyUHRyIj54bWxBdHRyUHRyPC9hPiBhdHRyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPlRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGZvciBhbiBlbGVtZW50IGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGFzIGRlc2NyaWJlZCBieSB0aGUgWE1MLTEuMCByZWNvbW1lbmRhdGlvbjogLSBbIFZDOiBBdHRyaWJ1dGUgVmFsdWUgVHlwZSBdIC0gWyBWQzogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgXSAtIFsgVkM6IEVudGl0eSBOYW1lIF0gLSBbIFZDOiBOYW1lIFRva2VuIF0gLSBbIFZDOiBJRCBdIC0gWyBWQzogSURSRUYgXSAtIFsgVkM6IEVudGl0eSBOYW1lIF0gLSBbIFZDOiBOb3RhdGlvbiBBdHRyaWJ1dGVzIF0gVGhlIElEL0lEUkVGIHVuaXF1ZW5lc3MgYW5kIG1hdGNoaW5nIGFyZSBkb25lIHNlcGFyYXRlbHk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVsZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGVsZW1lbnQgaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmF0dHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gaW5zdGFuY2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSAod2l0aG91dCBlbnRpdGllcyBwcm9jZXNzaW5nKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlT25lRWxlbWVudCIgaWQ9InhtbFZhbGlkYXRlT25lRWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZU9uZUVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVPbmVFbGVtZW50CQkoPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTxiciAvPgorPC9wcmU+PHA+VHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIGVsZW1lbnQgYW5kIGl0J3MgYXR0cmlidXRlcywgYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IEVsZW1lbnQgVmFsaWQgXSAtIFsgVkM6IFJlcXVpcmVkIEF0dHJpYnV0ZSBdIFRoZW4gY2FsbCB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSgpIGZvciBlYWNoIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gcHJlc2VudC4gVGhlIElEL0lEUkVGIGNoZWNraW5ncyBhcmUgZG9uZSBzZXBhcmF0ZWx5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UiIGlkPSJ4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+VHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBmb3IgYW4gZWxlbWVudCBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb246IC0gWyBWQzogQXR0cmlidXRlIFZhbHVlIFR5cGUgXSAtIFsgVkM6IEZpeGVkIEF0dHJpYnV0ZSBEZWZhdWx0IF0gLSBbIFZDOiBFbnRpdHkgTmFtZSBdIC0gWyBWQzogTmFtZSBUb2tlbiBdIC0gWyBWQzogSUQgXSAtIFsgVkM6IElEUkVGIF0gLSBbIFZDOiBFbnRpdHkgTmFtZSBdIC0gWyBWQzogTm90YXRpb24gQXR0cmlidXRlcyBdIFRoZSBJRC9JRFJFRiB1bmlxdWVuZXNzIGFuZCBtYXRjaGluZyBhcmUgZG9uZSBzZXBhcmF0ZWx5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgKHdpdGhvdXQgZW50aXRpZXMgcHJvY2Vzc2luZyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiIGlkPSJ4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVmFsaWRhdGVQb3BFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlUG9wRWxlbWVudAkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcW5hbWUpPGJyIC8+Cis8L3ByZT48cD5Qb3AgdGhlIGVsZW1lbnQgZW5kIGZyb20gdGhlIHZhbGlkYXRpb24gc3RhY2suPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IGluc3RhbmNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5xbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVmFsaWRhdGVQdXNoQ0RhdGEiIGlkPSJ4bWxWYWxpZGF0ZVB1c2hDRGF0YSI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZVB1c2hDRGF0YTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxWYWxpZGF0ZVB1c2hDRGF0YQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBkYXRhLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+Y2hlY2sgdGhlIENEYXRhIHBhcnNlZCBmb3IgdmFsaWRhdGlvbiBpbiB0aGUgY3VycmVudCBzdGFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNvbWUgY2hhcmFjdGVyIGRhdGEgcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ2h0IG9mIHRoZSBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIG5vIHZhbGlkYXRpb24gcHJvYmxlbSB3YXMgZm91bmQgb3IgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxWYWxpZGF0ZVB1c2hFbGVtZW50IiBpZD0ieG1sVmFsaWRhdGVQdXNoRWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZVB1c2hFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFZhbGlkYXRlUHVzaEVsZW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCN4bWxWYWxpZEN0eHRQdHIiPnhtbFZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVsZW0sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHFuYW1lKTxiciAvPgorPC9wcmU+PHA+UHVzaCBhIG5ldyBlbGVtZW50IHN0YXJ0IG9uIHRoZSB2YWxpZGF0aW9uIHN0YWNrLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZWxlbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZWxlbWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBxdWFsaWZpZWQgbmFtZSBhcyBhcHBlYXJpbmcgaW4gdGhlIHNlcmlhbGl6YXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFZhbGlkYXRlUm9vdCIgaWQ9InhtbFZhbGlkYXRlUm9vdCI+PC9hPkZ1bmN0aW9uOiB4bWxWYWxpZGF0ZVJvb3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVmFsaWRhdGVSb290CQkJKDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyIC8+Cis8L3ByZT48cD5UcnkgdG8gdmFsaWRhdGUgYSB0aGUgcm9vdCBlbGVtZW50IGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2sgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IFJvb3QgRWxlbWVudCBUeXBlIF0gaXQgZG9lc24ndCB0cnkgdG8gcmVjdXJzZSBvciBhcHBseSBvdGhlciBjaGVjayB0byB0aGUgZWxlbWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFZhbGlkaXR5RXJyb3JGdW5jIiBpZD0ieG1sVmFsaWRpdHlFcnJvckZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxWYWxpZGl0eUVycm9yRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFZhbGlkaXR5RXJyb3JGdW5jCit2b2lkCXhtbFZhbGlkaXR5RXJyb3JGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPjxwPkNhbGxiYWNrIGNhbGxlZCB3aGVuIGEgdmFsaWRpdHkgZXJyb3IgaXMgZm91bmQuIFRoaXMgaXMgYSBtZXNzYWdlIG9yaWVudGVkIGZ1bmN0aW9uIHNpbWlsYXIgdG8gYW4gKnByaW50ZiBmdW5jdGlvbi48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c3VhbGx5IGFuIDxhIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkQ3R4dFB0ciI+eG1sVmFsaWRDdHh0UHRyPC9hPiB0byBhIHZhbGlkaXR5IGVycm9yIGNvbnRleHQsIGJ1dCBjb21lcyBmcm9tIGN0eHQtJmd0O3VzZXJEYXRhICh3aGljaCBub3JtYWxseSBjb250YWlucyBzdWNoIGEgcG9pbnRlcik7IGN0eHQtJmd0O3VzZXJEYXRhIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSB1c2VyLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHRvIGZvcm1hdCAqcHJpbnRmIGxpa2UgdmFyYXJnPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJlbWFpbmluZyBhcmd1bWVudHMgdG8gdGhlIGZvcm1hdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sVmFsaWRpdHlXYXJuaW5nRnVuYyIgaWQ9InhtbFZhbGlkaXR5V2FybmluZ0Z1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxWYWxpZGl0eVdhcm5pbmdGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sVmFsaWRpdHlXYXJuaW5nRnVuYwordm9pZAl4bWxWYWxpZGl0eVdhcm5pbmdGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPjxwPkNhbGxiYWNrIGNhbGxlZCB3aGVuIGEgdmFsaWRpdHkgd2FybmluZyBpcyBmb3VuZC4gVGhpcyBpcyBhIG1lc3NhZ2Ugb3JpZW50ZWQgZnVuY3Rpb24gc2ltaWxhciB0byBhbiAqcHJpbnRmIGZ1bmN0aW9uLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVzdWFsbHkgYW4gPGEgaHJlZj0ibGlieG1sLXZhbGlkLmh0bWwjeG1sVmFsaWRDdHh0UHRyIj54bWxWYWxpZEN0eHRQdHI8L2E+IHRvIGEgdmFsaWRpdHkgZXJyb3IgY29udGV4dCwgYnV0IGNvbWVzIGZyb20gY3R4dC0mZ3Q7dXNlckRhdGEgKHdoaWNoIG5vcm1hbGx5IGNvbnRhaW5zIHN1Y2ggYSBwb2ludGVyKTsgY3R4dC0mZ3Q7dXNlckRhdGEgY2FuIGJlIGNoYW5nZWQgYnkgdGhlIHVzZXIuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmcgdG8gZm9ybWF0ICpwcmludGYgbGlrZSB2YXJhcmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cmVtYWluaW5nIGFyZ3VtZW50cyB0byB0aGUgZm9ybWF0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteGluY2x1ZGUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUyNTA2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhpbmNsdWRlLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHhpbmNsdWRlIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeGluY2x1ZGUgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC12YWxpZC5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwtdmFsaWQuaHRtbCI+dmFsaWQ8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwiPnhsaW5rPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPkFQSSB0byBoYW5kbGUgWEluY2x1ZGUgcHJvY2Vzc2luZywgaW1wbGVtZW50cyB0aGUgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSBMYXN0IENhbGwgV29ya2luZyBEcmFmdCAxMCBOb3ZlbWJlciAyMDAzPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX0ZBTExCQUNLIj5YSU5DTFVERV9GQUxMQkFDSzwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfSFJFRiI+WElOQ0xVREVfSFJFRjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfTk9ERSI+WElOQ0xVREVfTk9ERTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfTlMiPlhJTkNMVURFX05TPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9PTERfTlMiPlhJTkNMVURFX09MRF9OUzwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWElOQ0xVREVfUEFSU0UiPlhJTkNMVURFX1BBUlNFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9QQVJTRV9FTkNPRElORyI+WElOQ0xVREVfUEFSU0VfRU5DT0RJTkc8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX1BBUlNFX1RFWFQiPlhJTkNMVURFX1BBUlNFX1RFWFQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hJTkNMVURFX1BBUlNFX1hNTCI+WElOQ0xVREVfUEFSU0VfWE1MPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYSU5DTFVERV9QQVJTRV9YUE9JTlRFUiI+WElOQ0xVREVfUEFSU0VfWFBPSU5URVI8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sWEluY2x1ZGVDdHh0Ij54bWxYSW5jbHVkZUN0eHQ8L2E+PGJyIC8+c3RydWN0IF94bWxYSW5jbHVkZUN0eHQKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhpbmNsdWRlLmh0bWwjeG1sWEluY2x1ZGVDdHh0Ij54bWxYSW5jbHVkZUN0eHQ8L2E+ICogPGEgbmFtZT0ieG1sWEluY2x1ZGVDdHh0UHRyIiBpZD0ieG1sWEluY2x1ZGVDdHh0UHRyIj54bWxYSW5jbHVkZUN0eHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWEluY2x1ZGVGcmVlQ29udGV4dCI+eG1sWEluY2x1ZGVGcmVlQ29udGV4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFhJbmNsdWRlTmV3Q29udGV4dCI+eG1sWEluY2x1ZGVOZXdDb250ZXh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVQcm9jZXNzIj54bWxYSW5jbHVkZVByb2Nlc3M8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MiPnhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgaW50IGZsYWdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGE8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIGludCBmbGFncywgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dFB0ciI+eG1sWEluY2x1ZGVDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdHJlZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIgLz4JCQkJCSBpbnQgZmxhZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlLCA8YnIgLz4JCQkJCSBpbnQgZmxhZ3MsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWEluY2x1ZGVTZXRGbGFncyI+eG1sWEluY2x1ZGVTZXRGbGFnczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IGZsYWdzKTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJYSU5DTFVERV9GQUxMQkFDSyIgaWQ9IlhJTkNMVURFX0ZBTExCQUNLIj48L2E+TWFjcm86IFhJTkNMVURFX0ZBTExCQUNLPC9oMz48cHJlPiNkZWZpbmUgWElOQ0xVREVfRkFMTEJBQ0s8L3ByZT48cD5NYWNybyBkZWZpbmluZyAiZmFsbGJhY2siPC9wPgorPGgzPjxhIG5hbWU9IlhJTkNMVURFX0hSRUYiIGlkPSJYSU5DTFVERV9IUkVGIj48L2E+TWFjcm86IFhJTkNMVURFX0hSRUY8L2gzPjxwcmU+I2RlZmluZSBYSU5DTFVERV9IUkVGPC9wcmU+PHA+TWFjcm8gZGVmaW5pbmcgImhyZWYiPC9wPgorPGgzPjxhIG5hbWU9IlhJTkNMVURFX05PREUiIGlkPSJYSU5DTFVERV9OT0RFIj48L2E+TWFjcm86IFhJTkNMVURFX05PREU8L2gzPjxwcmU+I2RlZmluZSBYSU5DTFVERV9OT0RFPC9wcmU+PHA+TWFjcm8gZGVmaW5pbmcgImluY2x1ZGUiPC9wPgorPGgzPjxhIG5hbWU9IlhJTkNMVURFX05TIiBpZD0iWElOQ0xVREVfTlMiPjwvYT5NYWNybzogWElOQ0xVREVfTlM8L2gzPjxwcmU+I2RlZmluZSBYSU5DTFVERV9OUzwvcHJlPjxwPk1hY3JvIGRlZmluaW5nIHRoZSBYaW5jbHVkZSBuYW1lc3BhY2U6IGh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGU8L3A+Cis8aDM+PGEgbmFtZT0iWElOQ0xVREVfT0xEX05TIiBpZD0iWElOQ0xVREVfT0xEX05TIj48L2E+TWFjcm86IFhJTkNMVURFX09MRF9OUzwvaDM+PHByZT4jZGVmaW5lIFhJTkNMVURFX09MRF9OUzwvcHJlPjxwPk1hY3JvIGRlZmluaW5nIHRoZSBkcmFmdCBYaW5jbHVkZSBuYW1lc3BhY2U6IGh0dHA6Ly93d3cudzMub3JnLzIwMDEvWEluY2x1ZGU8L3A+Cis8aDM+PGEgbmFtZT0iWElOQ0xVREVfUEFSU0UiIGlkPSJYSU5DTFVERV9QQVJTRSI+PC9hPk1hY3JvOiBYSU5DTFVERV9QQVJTRTwvaDM+PHByZT4jZGVmaW5lIFhJTkNMVURFX1BBUlNFPC9wcmU+PHA+TWFjcm8gZGVmaW5pbmcgInBhcnNlIjwvcD4KKzxoMz48YSBuYW1lPSJYSU5DTFVERV9QQVJTRV9FTkNPRElORyIgaWQ9IlhJTkNMVURFX1BBUlNFX0VOQ09ESU5HIj48L2E+TWFjcm86IFhJTkNMVURFX1BBUlNFX0VOQ09ESU5HPC9oMz48cHJlPiNkZWZpbmUgWElOQ0xVREVfUEFSU0VfRU5DT0RJTkc8L3ByZT48cD5NYWNybyBkZWZpbmluZyAiZW5jb2RpbmciPC9wPgorPGgzPjxhIG5hbWU9IlhJTkNMVURFX1BBUlNFX1RFWFQiIGlkPSJYSU5DTFVERV9QQVJTRV9URVhUIj48L2E+TWFjcm86IFhJTkNMVURFX1BBUlNFX1RFWFQ8L2gzPjxwcmU+I2RlZmluZSBYSU5DTFVERV9QQVJTRV9URVhUPC9wcmU+PHA+TWFjcm8gZGVmaW5pbmcgInRleHQiPC9wPgorPGgzPjxhIG5hbWU9IlhJTkNMVURFX1BBUlNFX1hNTCIgaWQ9IlhJTkNMVURFX1BBUlNFX1hNTCI+PC9hPk1hY3JvOiBYSU5DTFVERV9QQVJTRV9YTUw8L2gzPjxwcmU+I2RlZmluZSBYSU5DTFVERV9QQVJTRV9YTUw8L3ByZT48cD5NYWNybyBkZWZpbmluZyAieG1sIjwvcD4KKzxoMz48YSBuYW1lPSJYSU5DTFVERV9QQVJTRV9YUE9JTlRFUiIgaWQ9IlhJTkNMVURFX1BBUlNFX1hQT0lOVEVSIj48L2E+TWFjcm86IFhJTkNMVURFX1BBUlNFX1hQT0lOVEVSPC9oMz48cHJlPiNkZWZpbmUgWElOQ0xVREVfUEFSU0VfWFBPSU5URVI8L3ByZT48cD5NYWNybyBkZWZpbmluZyAieHBvaW50ZXIiPC9wPgorPGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlQ3R4dCIgaWQ9InhtbFhJbmNsdWRlQ3R4dCI+U3RydWN0dXJlIHhtbFhJbmNsdWRlQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sWEluY2x1ZGVDdHh0PGJyIC8+c3RydWN0IF94bWxYSW5jbHVkZUN0eHQgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlRnJlZUNvbnRleHQiIGlkPSJ4bWxYSW5jbHVkZUZyZWVDb250ZXh0Ij48L2E+RnVuY3Rpb246IHhtbFhJbmNsdWRlRnJlZUNvbnRleHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhJbmNsdWRlRnJlZUNvbnRleHQJCSg8YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgYW4gWEluY2x1ZGUgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYSW5jbHVkZSBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWEluY2x1ZGVOZXdDb250ZXh0IiBpZD0ieG1sWEluY2x1ZGVOZXdDb250ZXh0Ij48L2E+RnVuY3Rpb246IHhtbFhJbmNsdWRlTmV3Q29udGV4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dFB0ciI+eG1sWEluY2x1ZGVDdHh0UHRyPC9hPgl4bWxYSW5jbHVkZU5ld0NvbnRleHQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZXMgYSBuZXcgWEluY2x1ZGUgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIERvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHNldDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlUHJvY2VzcyIgaWQ9InhtbFhJbmNsdWRlUHJvY2VzcyI+PC9hPkZ1bmN0aW9uOiB4bWxYSW5jbHVkZVByb2Nlc3M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWEluY2x1ZGVQcm9jZXNzCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gb24gdGhlIFhNTCBkb2N1bWVudCBAZG9jPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZCBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYSW5jbHVkZVByb2Nlc3NGbGFncyIgaWQ9InhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzIj48L2E+RnVuY3Rpb246IHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBpbnQgZmxhZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBvbiB0aGUgWE1MIGRvY3VtZW50IEBkb2M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmxhZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2V0IG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT4gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZCBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEiIGlkPSJ4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEiPjwvYT5GdW5jdGlvbjogeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCSBpbnQgZmxhZ3MsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gb24gdGhlIFhNTCBkb2N1bWVudCBAZG9jPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZsYWdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+IHVzZWQgZm9yIHBhcnNpbmcgWE1MIGluY2x1ZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hcHBsaWNhdGlvbiBkYXRhIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHBhcnNlciBjb250ZXh0IGluIHRoZSBfcHJpdmF0ZSBmaWVsZCBvZiB0aGUgcGFyc2VyIGNvbnRleHQocyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZCBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIiBpZD0ieG1sWEluY2x1ZGVQcm9jZXNzTm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhJbmNsdWRlUHJvY2Vzc05vZGUJCSg8YSBocmVmPSJsaWJ4bWwteGluY2x1ZGUuaHRtbCN4bWxYSW5jbHVkZUN0eHRQdHIiPnhtbFhJbmNsdWRlQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gZm9yIHRoZSBnaXZlbiBzdWJ0cmVlIHJldXNpbmcgdGhlIGluZm9ybWF0aW9ucyBhbmQgZGF0YSBjb21pbmcgZnJvbSB0aGUgZ2l2ZW4gY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBleGlzdGluZyBYSW5jbHVkZSBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQgb3IgdGhlIG51bWJlciBvZiBzdWJzdGl0dXRpb25zIGRvbmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWEluY2x1ZGVQcm9jZXNzVHJlZSIgaWQ9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWUiPjwvYT5GdW5jdGlvbjogeG1sWEluY2x1ZGVQcm9jZXNzVHJlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYSW5jbHVkZVByb2Nlc3NUcmVlCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0cmVlKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gZm9yIHRoZSBnaXZlbiBzdWJ0cmVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHJlZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIGluIGFuIFhNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyIgaWQ9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyI+PC9hPkZ1bmN0aW9uOiB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRyZWUsIDxiciAvPgkJCQkJIGludCBmbGFncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIGZvciB0aGUgZ2l2ZW4gc3VidHJlZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRyZWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZSBpbiBhbiBYTUwgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZsYWdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+IHVzZWQgZm9yIHBhcnNpbmcgWE1MIGluY2x1ZGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQgb3IgdGhlIG51bWJlciBvZiBzdWJzdGl0dXRpb25zIGRvbmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSIgaWQ9InhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEiPjwvYT5GdW5jdGlvbjogeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHRyZWUsIDxiciAvPgkJCQkJIGludCBmbGFncywgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBvbiB0aGUgWE1MIG5vZGUgQHRyZWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmxhZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2V0IG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT4gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFwcGxpY2F0aW9uIGRhdGEgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcGFyc2VyIGNvbnRleHQgaW4gdGhlIF9wcml2YXRlIGZpZWxkIG9mIHRoZSBwYXJzZXIgY29udGV4dChzKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhJbmNsdWRlU2V0RmxhZ3MiIGlkPSJ4bWxYSW5jbHVkZVNldEZsYWdzIj48L2E+RnVuY3Rpb246IHhtbFhJbmNsdWRlU2V0RmxhZ3M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWEluY2x1ZGVTZXRGbGFncwkJKDxhIGhyZWY9ImxpYnhtbC14aW5jbHVkZS5odG1sI3htbFhJbmNsdWRlQ3R4dFB0ciI+eG1sWEluY2x1ZGVDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgZmxhZ3MpPGJyIC8+Cis8L3ByZT48cD5TZXQgdGhlIGZsYWdzIHVzZWQgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZyBvZiBYTUwgcmVzb3VyY2VzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhJbmNsdWRlIHByb2Nlc3NpbmcgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmxhZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2V0IG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT4gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bGluay5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteGxpbmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzg2ZDNkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteGxpbmsuaHRtbApAQCAtMCwwICsxLDgyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgeGxpbmsgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4bGluayBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXhpbmNsdWRlLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC14aW5jbHVkZS5odG1sIj54aW5jbHVkZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCI+eG1sSU88L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+dW5maW5pc2hlZCBYTGluayBkZXRlY3Rpb24gbW9kdWxlIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bGlua0FjdHVhdGUiPnhsaW5rQWN0dWF0ZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIDxhIG5hbWU9InhsaW5rSFJlZiIgaWQ9InhsaW5rSFJlZiI+eGxpbmtIUmVmPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeGxpbmtIYW5kbGVyIj54bGlua0hhbmRsZXI8L2E+PGJyIC8+c3RydWN0IF94bGlua0hhbmRsZXIKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rSGFuZGxlciI+eGxpbmtIYW5kbGVyPC9hPiAqIDxhIG5hbWU9InhsaW5rSGFuZGxlclB0ciIgaWQ9InhsaW5rSGFuZGxlclB0ciI+eGxpbmtIYW5kbGVyUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogPGEgbmFtZT0ieGxpbmtSb2xlIiBpZD0ieGxpbmtSb2xlIj54bGlua1JvbGU8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeGxpbmtTaG93Ij54bGlua1Nob3c8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiA8YSBuYW1lPSJ4bGlua1RpdGxlIiBpZD0ieGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bGlua1R5cGUiPnhsaW5rVHlwZTwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeGxpbmtFeHRlbmRlZExpbmtGdW5rIj54bGlua0V4dGVuZGVkTGlua0Z1bms8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGludCBuYkxvY2F0b3JzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua0hSZWYiPnhsaW5rSFJlZjwvYT4gKiBocmVmcywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtSb2xlIj54bGlua1JvbGU8L2E+ICogcm9sZXMsIDxiciAvPgkJCQkJIGludCBuYkFyY3MsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIGZyb20sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiAqIHRvLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1Nob3ciPnhsaW5rU2hvdzwvYT4gKiBzaG93LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua0FjdHVhdGUiPnhsaW5rQWN0dWF0ZTwvYT4gKiBhY3R1YXRlLCA8YnIgLz4JCQkJCSBpbnQgbmJUaXRsZXMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rVGl0bGUiPnhsaW5rVGl0bGU8L2E+ICogdGl0bGVzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbGFuZ3MpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIj54bGlua0V4dGVuZGVkTGlua1NldEZ1bms8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgaW50IG5iTG9jYXRvcnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rSFJlZiI+eGxpbmtIUmVmPC9hPiAqIGhyZWZzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1JvbGUiPnhsaW5rUm9sZTwvYT4gKiByb2xlcywgPGJyIC8+CQkJCQkgaW50IG5iVGl0bGVzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1RpdGxlIj54bGlua1RpdGxlPC9hPiAqIHRpdGxlcywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGxhbmdzKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtOb2RlRGV0ZWN0RnVuYyI+eGxpbmtOb2RlRGV0ZWN0RnVuYzwvYT4JPGEgaHJlZj0iI3hsaW5rR2V0RGVmYXVsdERldGVjdCI+eGxpbmtHZXREZWZhdWx0RGV0ZWN0PC9hPgkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua0hhbmRsZXJQdHIiPnhsaW5rSGFuZGxlclB0cjwvYT4JPGEgaHJlZj0iI3hsaW5rR2V0RGVmYXVsdEhhbmRsZXIiPnhsaW5rR2V0RGVmYXVsdEhhbmRsZXI8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rVHlwZSI+eGxpbmtUeXBlPC9hPgk8YSBocmVmPSIjeGxpbmtJc0xpbmsiPnhsaW5rSXNMaW5rPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bGlua05vZGVEZXRlY3RGdW5jIj54bGlua05vZGVEZXRlY3RGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjeGxpbmtOb2RlRGV0ZWN0RnVuYyI+eGxpbmtOb2RlRGV0ZWN0RnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bGlua1NldERlZmF1bHREZXRlY3QiPnhsaW5rU2V0RGVmYXVsdERldGVjdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua05vZGVEZXRlY3RGdW5jIj54bGlua05vZGVEZXRlY3RGdW5jPC9hPiBmdW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3hsaW5rU2V0RGVmYXVsdEhhbmRsZXIiPnhsaW5rU2V0RGVmYXVsdEhhbmRsZXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtIYW5kbGVyUHRyIj54bGlua0hhbmRsZXJQdHI8L2E+IGhhbmRsZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3hsaW5rU2ltcGxlTGlua0Z1bmsiPnhsaW5rU2ltcGxlTGlua0Z1bms8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bGlua1NpbXBsZUxpbmtGdW5rIj54bGlua1NpbXBsZUxpbmtGdW5rPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtIUmVmIj54bGlua0hSZWY8L2E+IGhyZWYsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rUm9sZSI+eGxpbmtSb2xlPC9hPiByb2xlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1RpdGxlIj54bGlua1RpdGxlPC9hPiB0aXRsZSkKKzwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz5FbnVtIDxhIG5hbWU9InhsaW5rQWN0dWF0ZSIgaWQ9InhsaW5rQWN0dWF0ZSI+eGxpbmtBY3R1YXRlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geGxpbmtBY3R1YXRlIHsKKyAgICA8YSBuYW1lPSJYTElOS19BQ1RVQVRFX05PTkUiIGlkPSJYTElOS19BQ1RVQVRFX05PTkUiPlhMSU5LX0FDVFVBVEVfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWExJTktfQUNUVUFURV9BVVRPIiBpZD0iWExJTktfQUNUVUFURV9BVVRPIj5YTElOS19BQ1RVQVRFX0FVVE88L2E+ID0gMQorICAgIDxhIG5hbWU9IlhMSU5LX0FDVFVBVEVfT05SRVFVRVNUIiBpZD0iWExJTktfQUNUVUFURV9PTlJFUVVFU1QiPlhMSU5LX0FDVFVBVEVfT05SRVFVRVNUPC9hPiA9IDIKK30KKzwvcHJlPjxoMz48YSBuYW1lPSJ4bGlua0hhbmRsZXIiIGlkPSJ4bGlua0hhbmRsZXIiPlN0cnVjdHVyZSB4bGlua0hhbmRsZXI8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhsaW5rSGFuZGxlcjxiciAvPnN0cnVjdCBfeGxpbmtIYW5kbGVyIHsKKyAgICA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1NpbXBsZUxpbmtGdW5rIj54bGlua1NpbXBsZUxpbmtGdW5rPC9hPglzaW1wbGUKKyAgICA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua0Z1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rRnVuazwvYT4JZXh0ZW5kZWQKKyAgICA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsiPnhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvYT4Jc2V0Cit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieGxpbmtTaG93IiBpZD0ieGxpbmtTaG93Ij54bGlua1Nob3c8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bGlua1Nob3cgeworICAgIDxhIG5hbWU9IlhMSU5LX1NIT1dfTk9ORSIgaWQ9IlhMSU5LX1NIT1dfTk9ORSI+WExJTktfU0hPV19OT05FPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTElOS19TSE9XX05FVyIgaWQ9IlhMSU5LX1NIT1dfTkVXIj5YTElOS19TSE9XX05FVzwvYT4gPSAxCisgICAgPGEgbmFtZT0iWExJTktfU0hPV19FTUJFRCIgaWQ9IlhMSU5LX1NIT1dfRU1CRUQiPlhMSU5LX1NIT1dfRU1CRUQ8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhMSU5LX1NIT1dfUkVQTEFDRSIgaWQ9IlhMSU5LX1NIT1dfUkVQTEFDRSI+WExJTktfU0hPV19SRVBMQUNFPC9hPiA9IDMKK30KKzwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhsaW5rVHlwZSIgaWQ9InhsaW5rVHlwZSI+eGxpbmtUeXBlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geGxpbmtUeXBlIHsKKyAgICA8YSBuYW1lPSJYTElOS19UWVBFX05PTkUiIGlkPSJYTElOS19UWVBFX05PTkUiPlhMSU5LX1RZUEVfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWExJTktfVFlQRV9TSU1QTEUiIGlkPSJYTElOS19UWVBFX1NJTVBMRSI+WExJTktfVFlQRV9TSU1QTEU8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhMSU5LX1RZUEVfRVhURU5ERUQiIGlkPSJYTElOS19UWVBFX0VYVEVOREVEIj5YTElOS19UWVBFX0VYVEVOREVEPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTElOS19UWVBFX0VYVEVOREVEX1NFVCIgaWQ9IlhMSU5LX1RZUEVfRVhURU5ERURfU0VUIj5YTElOS19UWVBFX0VYVEVOREVEX1NFVDwvYT4gPSAzCit9Cis8L3ByZT48aDM+PGEgbmFtZT0ieGxpbmtFeHRlbmRlZExpbmtGdW5rIiBpZD0ieGxpbmtFeHRlbmRlZExpbmtGdW5rIj48L2E+RnVuY3Rpb24gdHlwZTogeGxpbmtFeHRlbmRlZExpbmtGdW5rPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeGxpbmtFeHRlbmRlZExpbmtGdW5rCit2b2lkCXhsaW5rRXh0ZW5kZWRMaW5rRnVuawkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgaW50IG5iTG9jYXRvcnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rSFJlZiI+eGxpbmtIUmVmPC9hPiAqIGhyZWZzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1JvbGUiPnhsaW5rUm9sZTwvYT4gKiByb2xlcywgPGJyIC8+CQkJCQkgaW50IG5iQXJjcywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtSb2xlIj54bGlua1JvbGU8L2E+ICogZnJvbSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtSb2xlIj54bGlua1JvbGU8L2E+ICogdG8sIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rU2hvdyI+eGxpbmtTaG93PC9hPiAqIHNob3csIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rQWN0dWF0ZSI+eGxpbmtBY3R1YXRlPC9hPiAqIGFjdHVhdGUsIDxiciAvPgkJCQkJIGludCBuYlRpdGxlcywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT4gKiB0aXRsZXMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBsYW5ncykKKzwvcHJlPjxwPlRoaXMgaXMgdGhlIHByb3RvdHlwZSBmb3IgYSBleHRlbmRlZCBsaW5rIGRldGVjdGlvbiBjYWxsYmFjay48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIGRhdGEgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgY2FycnlpbmcgdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iTG9jYXRvcnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgbG9jYXRvcnMgZGV0ZWN0ZWQgb24gdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhyZWZzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiBsb2NhdG9yIGhyZWZzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yb2xlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciByb2xlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJBcmNzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyY3MgZGV0ZWN0ZWQgb24gdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHNvdXJjZSByb2xlcyBmb3VuZCBvbiB0aGUgYXJjczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHRhcmdldCByb2xlcyBmb3VuZCBvbiB0aGUgYXJjczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2hvdzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YXJyYXkgb2YgdmFsdWVzIGZvciB0aGUgc2hvdyBhdHRyaWJ1dGVzIGZvdW5kIG9uIHRoZSBhcmNzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hY3R1YXRlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hcnJheSBvZiB2YWx1ZXMgZm9yIHRoZSBhY3R1YXRlIGF0dHJpYnV0ZXMgZm91bmQgb24gdGhlIGFyY3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iVGl0bGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHRpdGxlcyBkZXRlY3RlZCBvbiB0aGUgbGluazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGl0bGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxhbmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hcnJheSBvZiB4bWw6bGFuZyB2YWx1ZXMgZm9yIHRoZSB0aXRsZXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayIgaWQ9InhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuayI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuawordm9pZAl4bGlua0V4dGVuZGVkTGlua1NldEZ1bmsJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgaW50IG5iTG9jYXRvcnMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rSFJlZiI+eGxpbmtIUmVmPC9hPiAqIGhyZWZzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1JvbGUiPnhsaW5rUm9sZTwvYT4gKiByb2xlcywgPGJyIC8+CQkJCQkgaW50IG5iVGl0bGVzLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1RpdGxlIj54bGlua1RpdGxlPC9hPiAqIHRpdGxlcywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIGxhbmdzKQorPC9wcmU+PHA+VGhpcyBpcyB0aGUgcHJvdG90eXBlIGZvciBhIGV4dGVuZGVkIGxpbmsgc2V0IGRldGVjdGlvbiBjYWxsYmFjay48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIGRhdGEgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgY2FycnlpbmcgdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5iTG9jYXRvcnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgbG9jYXRvcnMgZGV0ZWN0ZWQgb24gdGhlIGxpbms8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmhyZWZzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiBsb2NhdG9yIGhyZWZzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yb2xlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciByb2xlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJUaXRsZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgdGl0bGVzIGRldGVjdGVkIG9uIHRoZSBsaW5rPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50aXRsZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGFuZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFycmF5IG9mIHhtbDpsYW5nIHZhbHVlcyBmb3IgdGhlIHRpdGxlczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieGxpbmtHZXREZWZhdWx0RGV0ZWN0IiBpZD0ieGxpbmtHZXREZWZhdWx0RGV0ZWN0Ij48L2E+RnVuY3Rpb246IHhsaW5rR2V0RGVmYXVsdERldGVjdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rTm9kZURldGVjdEZ1bmMiPnhsaW5rTm9kZURldGVjdEZ1bmM8L2E+CXhsaW5rR2V0RGVmYXVsdERldGVjdAkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgZGVmYXVsdCB4bGluayBkZXRlY3Rpb24gcm91dGluZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IGZ1bmN0aW9uIG9yIE5VTEw7PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieGxpbmtHZXREZWZhdWx0SGFuZGxlciIgaWQ9InhsaW5rR2V0RGVmYXVsdEhhbmRsZXIiPjwvYT5GdW5jdGlvbjogeGxpbmtHZXREZWZhdWx0SGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rSGFuZGxlclB0ciI+eGxpbmtIYW5kbGVyUHRyPC9hPgl4bGlua0dldERlZmF1bHRIYW5kbGVyCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBkZWZhdWx0IHhsaW5rIGhhbmRsZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtIYW5kbGVyUHRyIj54bGlua0hhbmRsZXJQdHI8L2E+IHZhbHVlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhsaW5rSXNMaW5rIiBpZD0ieGxpbmtJc0xpbmsiPjwvYT5GdW5jdGlvbjogeGxpbmtJc0xpbms8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1R5cGUiPnhsaW5rVHlwZTwvYT4JeGxpbmtJc0xpbmsJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIG5vZGUgY2FycmllcyB0aGUgYXR0cmlidXRlcyBuZWVkZWQgdG8gYmUgYSBsaW5rIGVsZW1lbnQgKG9yIGlzIG9uZSBvZiB0aGUgbGlua2luZyBlbGVtZW50cyBpc3N1ZWQgZnJvbSB0aGUgKFgpSFRNTCBEdERzKS4gVGhpcyByb3V0aW5lIGRvbid0IHRyeSB0byBkbyBmdWxsIGNoZWNraW5nIG9mIHRoZSBsaW5rIHZhbGlkaXR5IGJ1dCB0cmllcyB0byBkZXRlY3QgYW5kIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgbGluayB0eXBlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIHBvaW50ZXIgaXRzZWxmPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtUeXBlIj54bGlua1R5cGU8L2E+IG9mIHRoZSBub2RlIChYTElOS19UWVBFX05PTkUgaWYgdGhlcmUgaXMgbm8gbGluayBkZXRlY3RlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bGlua05vZGVEZXRlY3RGdW5jIiBpZD0ieGxpbmtOb2RlRGV0ZWN0RnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhsaW5rTm9kZURldGVjdEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bGlua05vZGVEZXRlY3RGdW5jCit2b2lkCXhsaW5rTm9kZURldGVjdEZ1bmMJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpCis8L3ByZT48cD5UaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIHRoZSBsaW5rIGRldGVjdGlvbiByb3V0aW5lLiBJdCBjYWxscyB0aGUgZGVmYXVsdCBsaW5rIGRldGVjdGlvbiBjYWxsYmFja3MgdXBvbiBsaW5rIGRldGVjdGlvbi48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD51c2VyIGRhdGEgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgdG8gY2hlY2s8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhsaW5rU2V0RGVmYXVsdERldGVjdCIgaWQ9InhsaW5rU2V0RGVmYXVsdERldGVjdCI+PC9hPkZ1bmN0aW9uOiB4bGlua1NldERlZmF1bHREZXRlY3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhsaW5rU2V0RGVmYXVsdERldGVjdAkJKDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rTm9kZURldGVjdEZ1bmMiPnhsaW5rTm9kZURldGVjdEZ1bmM8L2E+IGZ1bmMpPGJyIC8+Cis8L3ByZT48cD5TZXQgdGhlIGRlZmF1bHQgeGxpbmsgZGV0ZWN0aW9uIHJvdXRpbmU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBuZXcgZGV0ZWN0aW9uIHJvdXRpbmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieGxpbmtTZXREZWZhdWx0SGFuZGxlciIgaWQ9InhsaW5rU2V0RGVmYXVsdEhhbmRsZXIiPjwvYT5GdW5jdGlvbjogeGxpbmtTZXREZWZhdWx0SGFuZGxlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeGxpbmtTZXREZWZhdWx0SGFuZGxlcgkJKDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rSGFuZGxlclB0ciI+eGxpbmtIYW5kbGVyUHRyPC9hPiBoYW5kbGVyKTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBkZWZhdWx0IHhsaW5rIGhhbmRsZXJzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGFuZGxlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyB2YWx1ZSBmb3IgdGhlIHhsaW5rIGhhbmRsZXIgYmxvY2s8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bGlua1NpbXBsZUxpbmtGdW5rIiBpZD0ieGxpbmtTaW1wbGVMaW5rRnVuayI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhsaW5rU2ltcGxlTGlua0Z1bms8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bGlua1NpbXBsZUxpbmtGdW5rCit2b2lkCXhsaW5rU2ltcGxlTGlua0Z1bmsJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bGluay5odG1sI3hsaW5rSFJlZiI+eGxpbmtIUmVmPC9hPiBocmVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCN4bGlua1JvbGUiPnhsaW5rUm9sZTwvYT4gcm9sZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhsaW5rLmh0bWwjeGxpbmtUaXRsZSI+eGxpbmtUaXRsZTwvYT4gdGl0bGUpCis8L3ByZT48cD5UaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIGEgc2ltcGxlIGxpbmsgZGV0ZWN0aW9uIGNhbGxiYWNrLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnVzZXIgZGF0YSBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBjYXJyeWluZyB0aGUgbGluazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aHJlZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBvZiB0aGUgbGluazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cm9sZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJvbGUgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50aXRsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmsgdGl0bGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxJTy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sSU8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzhkODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sSU8uaHRtbApAQCAtMCwwICsxLDIwNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHhtbElPIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeG1sSU8gZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14bGluay5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteGxpbmsuaHRtbCI+eGxpbms8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwiPnhtbGF1dG9tYXRhPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPmludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlciA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbEFsbG9jT3V0cHV0QnVmZmVyIj54bWxBbGxvY091dHB1dEJ1ZmZlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyIj54bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENoZWNrRmlsZW5hbWUiPnhtbENoZWNrRmlsZW5hbWU8L2E+CQkoY29uc3QgY2hhciAqIHBhdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxDaGVja0hUVFBJbnB1dCI+eG1sQ2hlY2tIVFRQSW5wdXQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gcmV0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbENsZWFudXBJbnB1dENhbGxiYWNrcyI+eG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzPC9hPgkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzIj54bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzPC9hPgkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEZpbGVDbG9zZSI+eG1sRmlsZUNsb3NlPC9hPgkJCSh2b2lkICogY29udGV4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEZpbGVNYXRjaCI+eG1sRmlsZU1hdGNoPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxGaWxlT3BlbiI+eG1sRmlsZU9wZW48L2E+CQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEZpbGVSZWFkIj54bWxGaWxlUmVhZDwvYT4JCQkodm9pZCAqIGNvbnRleHQsIDxiciAvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyIj54bWxGcmVlUGFyc2VySW5wdXRCdWZmZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxJT0ZUUENsb3NlIj54bWxJT0ZUUENsb3NlPC9hPgkJCSh2b2lkICogY29udGV4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbElPRlRQTWF0Y2giPnhtbElPRlRQTWF0Y2g8L2E+CQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbElPRlRQT3BlbiI+eG1sSU9GVFBPcGVuPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxJT0ZUUFJlYWQiPnhtbElPRlRQUmVhZDwvYT4JCQkodm9pZCAqIGNvbnRleHQsIDxiciAvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxJT0hUVFBDbG9zZSI+eG1sSU9IVFRQQ2xvc2U8L2E+CQkJKHZvaWQgKiBjb250ZXh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSU9IVFRQTWF0Y2giPnhtbElPSFRUUE1hdGNoPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxJT0hUVFBPcGVuIj54bWxJT0hUVFBPcGVuPC9hPgkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxJT0hUVFBPcGVuVyI+eG1sSU9IVFRQT3Blblc8L2E+CQkJKGNvbnN0IGNoYXIgKiBwb3N0X3VyaSwgPGJyIC8+CQkJCQkgaW50IGNvbXByZXNzaW9uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sSU9IVFRQUmVhZCI+eG1sSU9IVFRQUmVhZDwvYT4JCQkodm9pZCAqIGNvbnRleHQsIDxiciAvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPgoraW50CTxhIGhyZWY9IiN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4JCSh2b2lkICogY29udGV4dCkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siPnhtbElucHV0TWF0Y2hDYWxsYmFjazwvYT4KK2ludAk8YSBocmVmPSIjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+CQkoY2hhciBjb25zdCAqIGZpbGVuYW1lKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbElucHV0T3BlbkNhbGxiYWNrIj54bWxJbnB1dE9wZW5DYWxsYmFjazwvYT4KK3ZvaWQgKgk8YSBocmVmPSIjeG1sSW5wdXRPcGVuQ2FsbGJhY2siPnhtbElucHV0T3BlbkNhbGxiYWNrPC9hPgkJKGNoYXIgY29uc3QgKiBmaWxlbmFtZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+CitpbnQJPGEgaHJlZj0iI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4JCSh2b2lkICogY29udGV4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IGxlbikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgk8YSBocmVmPSIjeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+eG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4JKGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJCQkgY29uc3QgY2hhciAqIElELCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sTm9ybWFsaXplV2luZG93c1BhdGgiPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcGF0aCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNsb3NlIj54bWxPdXRwdXRCdWZmZXJDbG9zZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmZmVyLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZkIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGZDwvYT4JKGludCBmZCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUiPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2E+CShGSUxFICogZmlsZSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+CShjb25zdCBjaGFyICogVVJJLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIsIDxiciAvPgkJCQkJCQkgaW50IGNvbXByZXNzaW9uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU88L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIj54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9hPiBpb3dyaXRlLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyIC8+CQkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxPdXRwdXRCdWZmZXJGbHVzaCI+eG1sT3V0cHV0QnVmZmVyRmx1c2g8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4gb3V0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sT3V0cHV0QnVmZmVyV3JpdGUiPnhtbE91dHB1dEJ1ZmZlcldyaXRlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgaW50IGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGJ1Zik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlIj54bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPiBlc2NhcGluZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj54bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHN0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4KK2ludAk8YSBocmVmPSIjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4JCSh2b2lkICogY29udGV4dCkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxPdXRwdXRNYXRjaENhbGxiYWNrIj54bWxPdXRwdXRNYXRjaENhbGxiYWNrPC9hPgoraW50CTxhIGhyZWY9IiN4bWxPdXRwdXRNYXRjaENhbGxiYWNrIj54bWxPdXRwdXRNYXRjaENhbGxiYWNrPC9hPgkJKGNoYXIgY29uc3QgKiBmaWxlbmFtZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxPdXRwdXRPcGVuQ2FsbGJhY2siPnhtbE91dHB1dE9wZW5DYWxsYmFjazwvYT4KK3ZvaWQgKgk8YSBocmVmPSIjeG1sT3V0cHV0T3BlbkNhbGxiYWNrIj54bWxPdXRwdXRPcGVuQ2FsbGJhY2s8L2E+CQkoY2hhciBjb25zdCAqIGZpbGVuYW1lKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+CitpbnQJPGEgaHJlZj0iI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+CQkodm9pZCAqIGNvbnRleHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBsZW4pCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jaGFyICoJPGEgaHJlZj0iI3htbFBhcnNlckdldERpcmVjdG9yeSI+eG1sUGFyc2VyR2V0RGlyZWN0b3J5PC9hPgkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQ8L2E+CShpbnQgZmQsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlPC9hPgkoRklMRSAqIGZpbGUsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JPGEgaHJlZj0iI3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L2E+CShjb25zdCBjaGFyICogVVJJLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L2E+CShjb25zdCBjaGFyICogbWVtLCA8YnIgLz4JCQkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM8L2E+CShjb25zdCBjaGFyICogbWVtLCA8YnIgLz4JCQkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciPnhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbiwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFBhcnNlcklucHV0QnVmZmVyUHVzaCI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGluLCA8YnIgLz4JCQkJCSBpbnQgbGVuLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYnVmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW4sIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxQb3BJbnB1dENhbGxiYWNrcyI+eG1sUG9wSW5wdXRDYWxsYmFja3M8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3M8L2E+CSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyI+eG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzPC9hPgkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzIj54bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzPC9hPgkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siPnhtbElucHV0TWF0Y2hDYWxsYmFjazwvYT4gbWF0Y2hGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE9wZW5DYWxsYmFjayI+eG1sSW5wdXRPcGVuQ2FsbGJhY2s8L2E+IG9wZW5GdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IHJlYWRGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gY2xvc2VGdW5jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MiPnhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT4gbWF0Y2hGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRPcGVuQ2FsbGJhY2siPnhtbE91dHB1dE9wZW5DYWxsYmFjazwvYT4gb3BlbkZ1bmMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+IHdyaXRlRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4gY2xvc2VGdW5jKTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJ4bWxBbGxvY091dHB1dEJ1ZmZlciIgaWQ9InhtbEFsbG9jT3V0cHV0QnVmZmVyIj48L2E+RnVuY3Rpb246IHhtbEFsbG9jT3V0cHV0QnVmZmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JeG1sQWxsb2NPdXRwdXRCdWZmZXIJKDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgb3V0cHV0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2RlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIiIGlkPSJ4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyIj48L2E+RnVuY3Rpb246IHhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcgkoPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgcHJvZ3Jlc3NpdmUgcGFyc2luZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxDaGVja0ZpbGVuYW1lIiBpZD0ieG1sQ2hlY2tGaWxlbmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxDaGVja0ZpbGVuYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbENoZWNrRmlsZW5hbWUJCShjb25zdCBjaGFyICogcGF0aCk8YnIgLz4KKzwvcHJlPjxwPmZ1bmN0aW9uIGNoZWNrcyB0byBzZWUgaWYgQHBhdGggaXMgYSB2YWxpZCBzb3VyY2UgKGZpbGUsIHNvY2tldC4uLikgZm9yIFhNTC4gaWYgc3RhdCBpcyBub3QgYXZhaWxhYmxlIG9uIHRoZSB0YXJnZXQgbWFjaGluZSw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGF0aCB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MS4gaWYgc3RhdCBmYWlscywgcmV0dXJucyAwIChpZiBjYWxsaW5nIHN0YXQgb24gdGhlIGZpbGVuYW1lIGZhaWxzLCBpdCBjYW4ndCBiZSByaWdodCkuIGlmIHN0YXQgc3VjY2VlZHMgYW5kIHRoZSBmaWxlIGlzIGEgZGlyZWN0b3J5LCByZXR1cm5zIDIuIG90aGVyd2lzZSByZXR1cm5zIDEuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2hlY2tIVFRQSW5wdXQiIGlkPSJ4bWxDaGVja0hUVFBJbnB1dCI+PC9hPkZ1bmN0aW9uOiB4bWxDaGVja0hUVFBJbnB1dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPgl4bWxDaGVja0hUVFBJbnB1dAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IHJldCk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIGFuIGlucHV0IGluIGNhc2UgaXQgd2FzIGNyZWF0ZWQgZnJvbSBhbiBIVFRQIHN0cmVhbSwgaW4gdGhhdCBjYXNlIGl0IHdpbGwgaGFuZGxlIGVuY29kaW5nIGFuZCB1cGRhdGUgb2YgdGhlIGJhc2UgVVJMIGluIGNhc2Ugb2YgcmVkaXJlY3Rpb24uIEl0IGFsc28gY2hlY2tzIGZvciBIVFRQIGVycm9ycyBpbiB3aGljaCBjYXNlIHRoZSBpbnB1dCBpcyBjbGVhbmx5IGZyZWVkIHVwIGFuZCBhbiBhcHByb3ByaWF0ZSBlcnJvciBpcyByYWlzZWQgaW4gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgb3IgTlVMTCBpbiBjYXNlIG9mIEhUVFAgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzIiBpZD0ieG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzIj48L2E+RnVuY3Rpb246IHhtbENsZWFudXBJbnB1dENhbGxiYWNrczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+Y2xlYXJzIHRoZSBlbnRpcmUgaW5wdXQgY2FsbGJhY2sgdGFibGUuIHRoaXMgaW5jbHVkZXMgdGhlIGNvbXBpbGVkLWluIEkvTy48L3A+Cis8aDM+PGEgbmFtZT0ieG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcyIgaWQ9InhtbENsZWFudXBPdXRwdXRDYWxsYmFja3MiPjwvYT5GdW5jdGlvbjogeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcwkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPmNsZWFycyB0aGUgZW50aXJlIG91dHB1dCBjYWxsYmFjayB0YWJsZS4gdGhpcyBpbmNsdWRlcyB0aGUgY29tcGlsZWQtaW4gSS9PIGNhbGxiYWNrcy48L3A+Cis8aDM+PGEgbmFtZT0ieG1sRmlsZUNsb3NlIiBpZD0ieG1sRmlsZUNsb3NlIj48L2E+RnVuY3Rpb246IHhtbEZpbGVDbG9zZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxGaWxlQ2xvc2UJCQkodm9pZCAqIGNvbnRleHQpPGJyIC8+Cis8L3ByZT48cD5DbG9zZSBhbiBJL08gY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRleHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBJL08gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRmlsZU1hdGNoIiBpZD0ieG1sRmlsZU1hdGNoIj48L2E+RnVuY3Rpb246IHhtbEZpbGVNYXRjaDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxGaWxlTWF0Y2gJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+aW5wdXQgZnJvbSBGSUxFICo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBmb3IgbWF0Y2hpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgbWF0Y2hlcywgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGaWxlT3BlbiIgaWQ9InhtbEZpbGVPcGVuIj48L2E+RnVuY3Rpb246IHhtbEZpbGVPcGVuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbEZpbGVPcGVuCQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPldyYXBwZXIgYXJvdW5kIHhtbEZpbGVPcGVuX3JlYWwgdGhhdCB0cnkgaXQgd2l0aCBhbiB1bmVzY2FwZWQgdmVyc2lvbiBvZiBAZmlsZW5hbWUsIGlmIHRoaXMgZmFpbHMgZmFsbGJhY2sgdG8gQGZpbGVuYW1lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgZm9yIG1hdGNoaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGhhbmRsZXIgb3IgTlVMTCBpbiBjYXNlIG9yIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxGaWxlUmVhZCIgaWQ9InhtbEZpbGVSZWFkIj48L2E+RnVuY3Rpb246IHhtbEZpbGVSZWFkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEZpbGVSZWFkCQkJKHZvaWQgKiBjb250ZXh0LCA8YnIgLz4JCQkJCSBjaGFyICogYnVmZmVyLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+UmVhZCBAbGVuIGJ5dGVzIHRvIEBidWZmZXIgZnJvbSB0aGUgSS9PIGNoYW5uZWwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGV4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIEkvTyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndoZXJlIHRvIGRyb3AgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5udW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAmbHQ7IDAgaW4gY2FzZSBvZiBmYWlsdXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRnJlZVBhcnNlcklucHV0QnVmZmVyIiBpZD0ieG1sRnJlZVBhcnNlcklucHV0QnVmZmVyIj48L2E+RnVuY3Rpb246IHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW4pPGJyIC8+Cis8L3ByZT48cD5GcmVlIHVwIHRoZSBtZW1vcnkgdXNlZCBieSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElPRlRQQ2xvc2UiIGlkPSJ4bWxJT0ZUUENsb3NlIj48L2E+RnVuY3Rpb246IHhtbElPRlRQQ2xvc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSU9GVFBDbG9zZQkJCSh2b2lkICogY29udGV4dCk8YnIgLz4KKzwvcHJlPjxwPkNsb3NlIGFuIEZUUCBJL08gY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRleHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBJL08gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElPRlRQTWF0Y2giIGlkPSJ4bWxJT0ZUUE1hdGNoIj48L2E+RnVuY3Rpb246IHhtbElPRlRQTWF0Y2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSU9GVFBNYXRjaAkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyIC8+Cis8L3ByZT48cD5jaGVjayBpZiB0aGUgVVJJIG1hdGNoZXMgYW4gRlRQIG9uZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGZvciBtYXRjaGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBtYXRjaGVzLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElPRlRQT3BlbiIgaWQ9InhtbElPRlRQT3BlbiI+PC9hPkZ1bmN0aW9uOiB4bWxJT0ZUUE9wZW48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sSU9GVFBPcGVuCQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPm9wZW4gYW4gRlRQIEkvTyBjaGFubmVsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgZm9yIG1hdGNoaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJT0ZUUFJlYWQiIGlkPSJ4bWxJT0ZUUFJlYWQiPjwvYT5GdW5jdGlvbjogeG1sSU9GVFBSZWFkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElPRlRQUmVhZAkJCSh2b2lkICogY29udGV4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPlJlYWQgQGxlbiBieXRlcyB0byBAYnVmZmVyIGZyb20gdGhlIEkvTyBjaGFubmVsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRleHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBJL08gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53aGVyZSB0byBkcm9wIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJT0hUVFBDbG9zZSIgaWQ9InhtbElPSFRUUENsb3NlIj48L2E+RnVuY3Rpb246IHhtbElPSFRUUENsb3NlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElPSFRUUENsb3NlCQkJKHZvaWQgKiBjb250ZXh0KTxiciAvPgorPC9wcmU+PHA+Q2xvc2UgYW4gSFRUUCBJL08gY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRleHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBJL08gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbElPSFRUUE1hdGNoIiBpZD0ieG1sSU9IVFRQTWF0Y2giPjwvYT5GdW5jdGlvbjogeG1sSU9IVFRQTWF0Y2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSU9IVFRQTWF0Y2gJCQkoY29uc3QgY2hhciAqIGZpbGVuYW1lKTxiciAvPgorPC9wcmU+PHA+Y2hlY2sgaWYgdGhlIFVSSSBtYXRjaGVzIGFuIEhUVFAgb25lPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBVUkkgZm9yIG1hdGNoaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIG1hdGNoZXMsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSU9IVFRQT3BlbiIgaWQ9InhtbElPSFRUUE9wZW4iPjwvYT5GdW5jdGlvbjogeG1sSU9IVFRQT3BlbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxJT0hUVFBPcGVuCQkJKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSk8YnIgLz4KKzwvcHJlPjxwPm9wZW4gYW4gSFRUUCBJL08gY2hhbm5lbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGZvciBtYXRjaGluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSU9IVFRQT3BlblciIGlkPSJ4bWxJT0hUVFBPcGVuVyI+PC9hPkZ1bmN0aW9uOiB4bWxJT0hUVFBPcGVuVzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxJT0hUVFBPcGVuVwkJCShjb25zdCBjaGFyICogcG9zdF91cmksIDxiciAvPgkJCQkJIGludCBjb21wcmVzc2lvbik8YnIgLz4KKzwvcHJlPjxwPk9wZW4gYSB0ZW1wb3JhcnkgYnVmZmVyIHRvIGNvbGxlY3QgdGhlIGRvY3VtZW50IGZvciBhIHN1YnNlcXVlbnQgSFRUUCBQT1NUIHJlcXVlc3QuIE5vbi1zdGF0aWMgYXMgaXMgY2FsbGVkIGZyb20gdGhlIG91dHB1dCBidWZmZXIgY3JlYXRpb24gcm91dGluZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wb3N0X3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGRlc3RpbmF0aW9uIFVSSSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wcmVzc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VGhlIGNvbXByZXNzaW9uIGRlc2lyZWQgZm9yIHRoZSBkb2N1bWVudC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxJT0hUVFBSZWFkIiBpZD0ieG1sSU9IVFRQUmVhZCI+PC9hPkZ1bmN0aW9uOiB4bWxJT0hUVFBSZWFkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbElPSFRUUFJlYWQJCQkodm9pZCAqIGNvbnRleHQsIDxiciAvPgkJCQkJIGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5SZWFkIEBsZW4gYnl0ZXMgdG8gQGJ1ZmZlciBmcm9tIHRoZSBJL08gY2hhbm5lbC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgSS9PIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2hlcmUgdG8gZHJvcCBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm51bWJlciBvZiBieXRlcyB0byB3cml0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sSW5wdXRDbG9zZUNhbGxiYWNrIiBpZD0ieG1sSW5wdXRDbG9zZUNhbGxiYWNrIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sSW5wdXRDbG9zZUNhbGxiYWNrCitpbnQJeG1sSW5wdXRDbG9zZUNhbGxiYWNrCQkodm9pZCAqIGNvbnRleHQpCis8L3ByZT48cD5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gSW5wdXQgQVBJIHRvIGNsb3NlIHRoZSByZXNvdXJjZTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJbnB1dCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbElucHV0TWF0Y2hDYWxsYmFjayIgaWQ9InhtbElucHV0TWF0Y2hDYWxsYmFjayI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbElucHV0TWF0Y2hDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbElucHV0TWF0Y2hDYWxsYmFjaworaW50CXhtbElucHV0TWF0Y2hDYWxsYmFjawkJKGNoYXIgY29uc3QgKiBmaWxlbmFtZSkKKzwvcHJlPjxwPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBJbnB1dCBBUEkgdG8gZGV0ZWN0IGlmIHRoZSBjdXJyZW50IGhhbmRsZXIgY2FuIHByb3ZpZGUgaW5wdXQgZm9uY3Rpb25uYWxpdGllcyBmb3IgdGhpcyByZXNvdXJjZS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSBvciBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgeWVzIGFuZCAwIGlmIGFub3RoZXIgSW5wdXQgbW9kdWxlIHNob3VsZCBiZSB1c2VkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxJbnB1dE9wZW5DYWxsYmFjayIgaWQ9InhtbElucHV0T3BlbkNhbGxiYWNrIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sSW5wdXRPcGVuQ2FsbGJhY2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxJbnB1dE9wZW5DYWxsYmFjawordm9pZCAqCXhtbElucHV0T3BlbkNhbGxiYWNrCQkoY2hhciBjb25zdCAqIGZpbGVuYW1lKQorPC9wcmU+PHA+Q2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIElucHV0IEFQSSB0byBvcGVuIHRoZSByZXNvdXJjZTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGVuYW1lIG9yIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSW5wdXQgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbElucHV0UmVhZENhbGxiYWNrIiBpZD0ieG1sSW5wdXRSZWFkQ2FsbGJhY2siPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxJbnB1dFJlYWRDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbElucHV0UmVhZENhbGxiYWNrCitpbnQJeG1sSW5wdXRSZWFkQ2FsbGJhY2sJCSh2b2lkICogY29udGV4dCwgPGJyIC8+CQkJCQkgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IGxlbikKKzwvcHJlPjxwPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBJbnB1dCBBUEkgdG8gcmVhZCB0aGUgcmVzb3VyY2U8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGV4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSW5wdXQgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIHRvIHN0b3JlIGRhdGEgcmVhZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gYnl0ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIiBpZD0ieG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciI+PC9hPkZ1bmN0aW9uOiB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+CXhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIJKGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJCQkgY29uc3QgY2hhciAqIElELCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VyQ3R4dFB0ciI+eG1sUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkEgc3BlY2lmaWMgZW50aXR5IGxvYWRlciBkaXNhYmxpbmcgbmV0d29yayBhY2Nlc3NlcywgdGhvdWdoIHN0aWxsIGFsbG93aW5nIGxvY2FsIGNhdGFsb2cgYWNjZXNzZXMgZm9yIHJlc29sdXRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PklEPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgU3lzdGVtIElEIGZvciB0aGUgZW50aXR5IHRvIGxvYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBlbnRpdHkgaXMgY2FsbGVkIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGFsbG9jYXRlZCB4bWxQYXJzZXJJbnB1dFB0ciwgb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCIgaWQ9InhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoIj48L2E+RnVuY3Rpb246IHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sTm9ybWFsaXplV2luZG93c1BhdGgJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdGgpPGJyIC8+Cis8L3ByZT48cD5UaGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlLiBQbGVhc2Ugc2VlIHhtbFVSSUZyb21QYXRoIGluIHVyaS5jIGZvciBhIGJldHRlciBzb2x1dGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wYXRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgZmlsZSBwYXRoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNhbm9uaWNhbGl6ZWQgdmVyc2lvbiBvZiB0aGUgcGF0aDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNsb3NlIiBpZD0ieG1sT3V0cHV0QnVmZmVyQ2xvc2UiPjwvYT5GdW5jdGlvbjogeG1sT3V0cHV0QnVmZmVyQ2xvc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sT3V0cHV0QnVmZmVyQ2xvc2UJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQpPGJyIC8+Cis8L3ByZT48cD5mbHVzaGVzIGFuZCBjbG9zZSB0aGUgb3V0cHV0IEkvTyBjaGFubmVsIGFuZCBmcmVlIHVwIGFsbCB0aGUgYXNzb2NpYXRlZCByZXNvdXJjZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyZWQgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciIgaWQ9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciI+PC9hPkZ1bmN0aW9uOiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPgl4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZmZlciwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyPC9hPiBlbmNvZGVyKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgYnVmZmVyZWQgb3V0cHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgc2F2aW5nIHRvIGEgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXIiPnhtbEJ1ZmZlcjwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCIgaWQ9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkIj48L2E+RnVuY3Rpb246IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQJKGludCBmZCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSBmaWxlIGRlc2NyaXB0b3I8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIG91dHB1dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSIgaWQ9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUiPjwvYT5GdW5jdGlvbjogeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUJKEZJTEUgKiBmaWxlLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSBGSUxFICogYnVmZmVyZWQgQyBJL088L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIEZJTEUqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIG91dHB1dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiIGlkPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+CXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lCShjb25zdCBjaGFyICogVVJJLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIiPnhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI8L2E+IGVuY29kZXIsIDxiciAvPgkJCQkJCQkgaW50IGNvbXByZXNzaW9uKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgYnVmZmVyZWQgb3V0cHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgc2F2aW5nIG9mIGEgZmlsZSBJZiBmaWxlbmFtZSBpcyAiLScgdGhlbiB3ZSB1c2Ugc3Rkb3V0IGFzIHRoZSBvdXRwdXQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIFRPRE86IGN1cnJlbnRseSBpZiBjb21wcmVzc2lvbiBpcyBzZXQsIHRoZSBsaWJyYXJ5IG9ubHkgc3VwcG9ydCB3cml0aW5nIHRvIGEgbG9jYWwgZmlsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgQyBzdHJpbmcgY29udGFpbmluZyB0aGUgVVJJIG9yIGZpbGVuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcHJlc3Npb24gcmF0aW9uICgwIG5vbmUsIDkgbWF4KS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgb3V0cHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyIgaWQ9InhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPIj48L2E+RnVuY3Rpb246IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxPdXRwdXRCdWZmZXJQdHIiPnhtbE91dHB1dEJ1ZmZlclB0cjwvYT4JeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8JKDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+IGlvd3JpdGUsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIj54bWxPdXRwdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjwvYT4gZW5jb2Rlcik8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIG91dHB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHNhdmluZyB0byBhbiBJL08gaGFuZGxlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmlvd3JpdGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyB3cml0ZSBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlckZsdXNoIiBpZD0ieG1sT3V0cHV0QnVmZmVyRmx1c2giPjwvYT5GdW5jdGlvbjogeG1sT3V0cHV0QnVmZmVyRmx1c2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sT3V0cHV0QnVmZmVyRmx1c2gJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQpPGJyIC8+Cis8L3ByZT48cD5mbHVzaGVzIHRoZSBvdXRwdXQgSS9PIGNoYW5uZWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyZWQgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlcldyaXRlIiBpZD0ieG1sT3V0cHV0QnVmZmVyV3JpdGUiPjwvYT5GdW5jdGlvbjogeG1sT3V0cHV0QnVmZmVyV3JpdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sT3V0cHV0QnVmZmVyV3JpdGUJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWYpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSB0aGUgY29udGVudCBvZiB0aGUgYXJyYXkgaW4gdGhlIG91dHB1dCBJL08gYnVmZmVyIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgZnJvbSBpbnRlcm5hbCBVVEYtOCBUaGUgYnVmZmVyIGlzIGxvc3NsZXNzLCBpLmUuIHdpbGwgc3RvcmUgaW4gY2FzZSBvZiBwYXJ0aWFsIG9yIGRlbGF5ZWQgd3JpdGVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBidWZmZXJlZCBwYXJzZXIgb3V0cHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBhcnJheS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBjaGFycyBpbW1lZGlhdGVseSB3cml0dGVuLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlIiBpZD0ieG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUiPjwvYT5GdW5jdGlvbjogeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IG91dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPiBlc2NhcGluZyk8YnIgLz4KKzwvcHJlPjxwPldyaXRlIHRoZSBjb250ZW50IG9mIHRoZSBzdHJpbmcgaW4gdGhlIG91dHB1dCBJL08gYnVmZmVyIFRoaXMgcm91dGluZSBlc2NhcGVzIHRoZSBjYXJhY3RlcnMgYW5kIHRoZW4gaGFuZGxlIHRoZSBJMThOIHRyYW5zY29kaW5nIGZyb20gaW50ZXJuYWwgVVRGLTggVGhlIGJ1ZmZlciBpcyBsb3NzbGVzcywgaS5lLiB3aWxsIHN0b3JlIGluIGNhc2Ugb2YgcGFydGlhbCBvciBkZWxheWVkIHdyaXRlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyZWQgcGFyc2VyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHplcm8gdGVybWluYXRlZCBVVEYtOCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVzY2FwaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcHRpb25hbCBlc2NhcGluZyBmdW5jdGlvbiAob3IgTlVMTCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgaW1tZWRpYXRlbHkgd3JpdHRlbiwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyIgaWQ9InhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBzdHIpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSB0aGUgY29udGVudCBvZiB0aGUgc3RyaW5nIGluIHRoZSBvdXRwdXQgSS9PIGJ1ZmZlciBUaGlzIHJvdXRpbmUgaGFuZGxlIHRoZSBJMThOIHRyYW5zY29kaW5nIGZyb20gaW50ZXJuYWwgVVRGLTggVGhlIGJ1ZmZlciBpcyBsb3NzbGVzcywgaS5lLiB3aWxsIHN0b3JlIGluIGNhc2Ugb2YgcGFydGlhbCBvciBkZWxheWVkIHdyaXRlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyZWQgcGFyc2VyIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHplcm8gdGVybWluYXRlZCBDIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBjaGFycyBpbW1lZGlhdGVseSB3cml0dGVuLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE91dHB1dENsb3NlQ2FsbGJhY2siIGlkPSJ4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbE91dHB1dENsb3NlQ2FsbGJhY2sKK2ludAl4bWxPdXRwdXRDbG9zZUNhbGxiYWNrCQkodm9pZCAqIGNvbnRleHQpCis8L3ByZT48cD5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gT3V0cHV0IEFQSSB0byBjbG9zZSB0aGUgcmVzb3VyY2U8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGV4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gT3V0cHV0IGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sT3V0cHV0TWF0Y2hDYWxsYmFjayIgaWQ9InhtbE91dHB1dE1hdGNoQ2FsbGJhY2siPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxPdXRwdXRNYXRjaENhbGxiYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sT3V0cHV0TWF0Y2hDYWxsYmFjaworaW50CXhtbE91dHB1dE1hdGNoQ2FsbGJhY2sJCShjaGFyIGNvbnN0ICogZmlsZW5hbWUpCis8L3ByZT48cD5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gT3V0cHV0IEFQSSB0byBkZXRlY3QgaWYgdGhlIGN1cnJlbnQgaGFuZGxlciBjYW4gcHJvdmlkZSBvdXRwdXQgZm9uY3Rpb25uYWxpdGllcyBmb3IgdGhpcyByZXNvdXJjZS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSBvciBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgeWVzIGFuZCAwIGlmIGFub3RoZXIgT3V0cHV0IG1vZHVsZSBzaG91bGQgYmUgdXNlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sT3V0cHV0T3BlbkNhbGxiYWNrIiBpZD0ieG1sT3V0cHV0T3BlbkNhbGxiYWNrIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sT3V0cHV0T3BlbkNhbGxiYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sT3V0cHV0T3BlbkNhbGxiYWNrCit2b2lkICoJeG1sT3V0cHV0T3BlbkNhbGxiYWNrCQkoY2hhciBjb25zdCAqIGZpbGVuYW1lKQorPC9wcmU+PHA+Q2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIE91dHB1dCBBUEkgdG8gb3BlbiB0aGUgcmVzb3VyY2U8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlbmFtZSBvciBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIE91dHB1dCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sT3V0cHV0V3JpdGVDYWxsYmFjayIgaWQ9InhtbE91dHB1dFdyaXRlQ2FsbGJhY2siPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sT3V0cHV0V3JpdGVDYWxsYmFjaworaW50CXhtbE91dHB1dFdyaXRlQ2FsbGJhY2sJCSh2b2lkICogY29udGV4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IGxlbikKKzwvcHJlPjxwPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBPdXRwdXQgQVBJIHRvIHdyaXRlIHRvIHRoZSByZXNvdXJjZTwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZXh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBPdXRwdXQgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVmZmVyIG9mIGRhdGEgdG8gd3JpdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGluIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sUGFyc2VyR2V0RGlyZWN0b3J5IiBpZD0ieG1sUGFyc2VyR2V0RGlyZWN0b3J5Ij48L2E+RnVuY3Rpb246IHhtbFBhcnNlckdldERpcmVjdG9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNoYXIgKgl4bWxQYXJzZXJHZXREaXJlY3RvcnkJCShjb25zdCBjaGFyICogZmlsZW5hbWUpPGJyIC8+Cis8L3ByZT48cD5sb29rdXAgdGhlIGRpcmVjdG9yeSBmb3IgdGhhdCBmaWxlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXRoIHRvIGEgZmlsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgYWxsb2NhdGVkIHN0cmluZyBjb250YWluaW5nIHRoZSBkaXJlY3RvcnksIG9yIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZCIgaWQ9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkCShpbnQgZmQsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgZm9yIHRoZSBpbnB1dCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBkZXNjcmlwdG9yIG51bWJlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSIgaWQ9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlCShGSUxFICogZmlsZSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2luZyBvZiBhIEZJTEUgKiBidWZmZXJlZCBDIEkvTzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgRklMRSo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lIiBpZD0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUJKGNvbnN0IGNoYXIgKiBVUkksIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgb2YgYSBmaWxlIElmIGZpbGVuYW1lIGlzICItJyB0aGVuIHdlIHVzZSBzdGRpbiBhcyB0aGUgaW5wdXQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIERvIGFuIGVuY29kaW5nIGNoZWNrIGlmIGVuYyA9PSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCNYTUxfQ0hBUl9FTkNPRElOR19OT05FIj5YTUxfQ0hBUl9FTkNPRElOR19OT05FPC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBDIHN0cmluZyBjb250YWluaW5nIHRoZSBVUkkgb3IgZmlsZW5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIiBpZD0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8JKDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIgLz4JCQkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmciPnhtbENoYXJFbmNvZGluZzwvYT4gZW5jKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2luZyBmb3IgdGhlIGlucHV0IGZyb20gYW4gSS9PIGhhbmRsZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb3JlYWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyByZWFkIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2Nsb3NlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gY2xvc2UgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBJL08gaGFuZGxlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtIiBpZD0ieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0iPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4JeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0JKGNvbnN0IGNoYXIgKiBtZW0sIDxiciAvPgkJCQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgZm9yIHRoZSBpbnB1dCBmcm9tIGEgbWVtb3J5IGFyZWEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVtb3J5IGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGVuZ3RoIG9mIHRoZSBtZW1vcnkgYmxvY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyIgaWQ9InhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+CXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljCShjb25zdCBjaGFyICogbWVtLCA8YnIgLz4JCQkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGZvciB0aGUgaW5wdXQgZnJvbSBhbiBpbW11dGFibGUgbWVtb3J5IGFyZWEuIFRoaXMgd2lsbCBub3QgY29weSB0aGUgbWVtb3J5IGFyZWEgdG8gdGhlIGJ1ZmZlciwgYnV0IHRoZSBtZW1vcnkgaXMgZXhwZWN0ZWQgdG8gYmUgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHBhcnNpbmcsIHRoaXMgaXMgdXNlZnVsIGZvciBleGFtcGxlIHdoZW4gdXNpbmcgbW1hcCdlZCBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1lbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lbW9yeSBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGJsb2NrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJHcm93IiBpZD0ieG1sUGFyc2VySW5wdXRCdWZmZXJHcm93Ij48L2E+RnVuY3Rpb246IHhtbFBhcnNlcklucHV0QnVmZmVyR3JvdzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbiwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPkdyb3cgdXAgdGhlIGNvbnRlbnQgb2YgdGhlIGlucHV0IGJ1ZmZlciwgdGhlIG9sZCBkYXRhIGFyZSBwcmVzZXJ2ZWQgVGhpcyByb3V0aW5lIGhhbmRsZSB0aGUgSTE4TiB0cmFuc2NvZGluZyB0byBpbnRlcm5hbCBVVEYtOCBUaGlzIHJvdXRpbmUgaXMgdXNlZCB3aGVuIG9wZXJhdGluZyB0aGUgcGFyc2VyIGluIG5vcm1hbCAocHVsbCkgbW9kZSBUT0RPOiBvbmUgc2hvdWxkIGJlIGFibGUgdG8gcmVtb3ZlIG9uZSBleHRyYSBjb3B5IGJ5IGNvcHlpbmcgZGlyZWN0bHkgb250byBpbi0mZ3Q7YnVmZmVyIG9yIGluLSZndDtyYXc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBidWZmZXJlZCBwYXJzZXIgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5kaWNhdGl2ZSB2YWx1ZSBvZiB0aGUgYW1vdW50IG9mIGNoYXJzIHRvIHJlYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgcmVhZCBhbmQgc3RvcmVkIGluIHRoZSBidWZmZXIsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIiBpZD0ieG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2gJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbiwgPGJyIC8+CQkJCQkgaW50IGxlbiwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGJ1Zik8YnIgLz4KKzwvcHJlPjxwPlB1c2ggdGhlIGNvbnRlbnQgb2YgdGhlIGFycnkgaW4gdGhlIGlucHV0IGJ1ZmZlciBUaGlzIHJvdXRpbmUgaGFuZGxlIHRoZSBJMThOIHRyYW5zY29kaW5nIHRvIGludGVybmFsIFVURi04IFRoaXMgaXMgdXNlZCB3aGVuIG9wZXJhdGluZyB0aGUgcGFyc2VyIGluIHByb2dyZXNzaXZlIChwdXNoKSBtb2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgYXJyYXkuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGNoYXIgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgcmVhZCBhbmQgc3RvcmVkIGluIHRoZSBidWZmZXIsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIiBpZD0ieG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbiwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPlJlZnJlc2ggdGhlIGNvbnRlbnQgb2YgdGhlIGlucHV0IGJ1ZmZlciwgdGhlIG9sZCBkYXRhIGFyZSBjb25zaWRlcmVkIGNvbnN1bWVkIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgdG8gaW50ZXJuYWwgVVRGLTg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBidWZmZXJlZCBwYXJzZXIgaW5wdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+aW5kaWNhdGl2ZSB2YWx1ZSBvZiB0aGUgYW1vdW50IG9mIGNoYXJzIHRvIHJlYWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgY2hhcnMgcmVhZCBhbmQgc3RvcmVkIGluIHRoZSBidWZmZXIsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUG9wSW5wdXRDYWxsYmFja3MiIGlkPSJ4bWxQb3BJbnB1dENhbGxiYWNrcyI+PC9hPkZ1bmN0aW9uOiB4bWxQb3BJbnB1dENhbGxiYWNrczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxQb3BJbnB1dENhbGxiYWNrcwkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5DbGVhciB0aGUgdG9wIGlucHV0IGNhbGxiYWNrIGZyb20gdGhlIGlucHV0IHN0YWNrLiB0aGlzIGluY2x1ZGVzIHRoZSBjb21waWxlZC1pbiBJL08uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBpbnB1dCBjYWxsYmFjayByZWdpc3RlcmVkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MiIGlkPSJ4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlcnMgdGhlIGRlZmF1bHQgY29tcGlsZWQtaW4gSS9PIGhhbmRsZXJzLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MiIGlkPSJ4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MiPjwvYT5GdW5jdGlvbjogeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlcnMgdGhlIGRlZmF1bHQgY29tcGlsZWQtaW4gSS9PIGhhbmRsZXJzLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzIiBpZD0ieG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+QnkgZGVmYXVsdCwgbGlieG1sIHN1Ym1pdHMgSFRUUCBvdXRwdXQgcmVxdWVzdHMgdXNpbmcgdGhlICJQVVQiIG1ldGhvZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBjaGFuZ2VzIHRoZSBIVFRQIG91dHB1dCBtZXRob2QgdG8gdXNlIHRoZSAiUE9TVCIgbWV0aG9kIGluc3RlYWQuPC9wPgorPGgzPjxhIG5hbWU9InhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiIGlkPSJ4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzIj48L2E+RnVuY3Rpb246IHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcwkoPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRNYXRjaENhbGxiYWNrIj54bWxJbnB1dE1hdGNoQ2FsbGJhY2s8L2E+IG1hdGNoRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRPcGVuQ2FsbGJhY2siPnhtbElucHV0T3BlbkNhbGxiYWNrPC9hPiBvcGVuRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiByZWFkRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGNsb3NlRnVuYyk8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IHNldCBvZiBJL08gY2FsbGJhY2sgZm9yIGhhbmRsaW5nIHBhcnNlciBpbnB1dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXRjaEZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dE1hdGNoQ2FsbGJhY2siPnhtbElucHV0TWF0Y2hDYWxsYmFjazwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wZW5GdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRPcGVuQ2FsbGJhY2siPnhtbElucHV0T3BlbkNhbGxiYWNrPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZEZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jbG9zZUZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWdpc3RlcmVkIGhhbmRsZXIgbnVtYmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyIgaWQ9InhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIj48L2E+RnVuY3Rpb246IHhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzCSg8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRNYXRjaENhbGxiYWNrIj54bWxPdXRwdXRNYXRjaENhbGxiYWNrPC9hPiBtYXRjaEZ1bmMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dE9wZW5DYWxsYmFjayI+eG1sT3V0cHV0T3BlbkNhbGxiYWNrPC9hPiBvcGVuRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4gd3JpdGVGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIj54bWxPdXRwdXRDbG9zZUNhbGxiYWNrPC9hPiBjbG9zZUZ1bmMpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyBzZXQgb2YgSS9PIGNhbGxiYWNrIGZvciBoYW5kbGluZyBvdXRwdXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF0Y2hGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayI+eG1sT3V0cHV0TWF0Y2hDYWxsYmFjazwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wZW5GdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0T3BlbkNhbGxiYWNrIj54bWxPdXRwdXRPcGVuQ2FsbGJhY2s8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZUZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIj54bWxPdXRwdXRXcml0ZUNhbGxiYWNrPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2xvc2VGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZWdpc3RlcmVkIGhhbmRsZXIgbnVtYmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sYXV0b21hdGEuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y3MDdiNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbGF1dG9tYXRhLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHhtbGF1dG9tYXRhIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeG1sYXV0b21hdGEgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCI+eG1sSU88L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwiPnhtbGVycm9yPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnRoZSBBUEkgdG8gYnVpbGQgcmVnZXhwIGF1dG9tYXRhIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbEF1dG9tYXRhIj54bWxBdXRvbWF0YTwvYT48YnIgLz5zdHJ1Y3QgX3htbEF1dG9tYXRhCitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhIj54bWxBdXRvbWF0YTwvYT4gKiA8YSBuYW1lPSJ4bWxBdXRvbWF0YVB0ciIgaWQ9InhtbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbEF1dG9tYXRhU3RhdGUiPnhtbEF1dG9tYXRhU3RhdGU8L2E+PGJyIC8+c3RydWN0IF94bWxBdXRvbWF0YVN0YXRlCitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGUiPnhtbEF1dG9tYXRhU3RhdGU8L2E+ICogPGEgbmFtZT0ieG1sQXV0b21hdGFTdGF0ZVB0ciIgaWQ9InhtbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFDb21waWxlIj54bWxBdXRvbWF0YUNvbXBpbGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YUdldEluaXRTdGF0ZSI+eG1sQXV0b21hdGFHZXRJbml0U3RhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQXV0b21hdGFJc0RldGVybWluaXN0Ij54bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3Q8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj54bWxBdXRvbWF0YU5ld0FsbFRyYW5zPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyIC8+CQkJCQkJIGludCBsYXgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JPGEgaHJlZj0iI3htbEF1dG9tYXRhTmV3Q291bnRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIgLz4JCQkJCQkJIGludCBtaW4sIDxiciAvPgkJCQkJCQkgaW50IG1heCwgPGJyIC8+CQkJCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiI+eG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbjIsIDxiciAvPgkJCQkJCQkgaW50IG1pbiwgPGJyIC8+CQkJCQkJCSBpbnQgbWF4LCA8YnIgLz4JCQkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCQkgaW50IGNvdW50ZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0NvdW50ZXIiPnhtbEF1dG9tYXRhTmV3Q291bnRlcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCSBpbnQgbWluLCA8YnIgLz4JCQkJCSBpbnQgbWF4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyI+eG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCQkgaW50IGNvdW50ZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JPGEgaHJlZj0iI3htbEF1dG9tYXRhTmV3RXBzaWxvbiI+eG1sQXV0b21hdGFOZXdFcHNpbG9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0byk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFOZXdOZWdUcmFucyI+eG1sQXV0b21hdGFOZXdOZWdUcmFuczwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuMiwgPGJyIC8+CQkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld09uY2VUcmFucyI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxiciAvPgkJCQkJCSBpbnQgbWluLCA8YnIgLz4JCQkJCQkgaW50IG1heCwgPGJyIC8+CQkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIiPnhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbjIsIDxiciAvPgkJCQkJCQkgaW50IG1pbiwgPGJyIC8+CQkJCQkJCSBpbnQgbWF4LCA8YnIgLz4JCQkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxBdXRvbWF0YU5ld1N0YXRlIj54bWxBdXRvbWF0YU5ld1N0YXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgk8YSBocmVmPSIjeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxiciAvPgkJCQkJCQkgdm9pZCAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JPGEgaHJlZj0iI3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIiPnhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjI8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4yLCA8YnIgLz4JCQkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlIj54bWxBdXRvbWF0YVNldEZpbmFsU3RhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBzdGF0ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxGcmVlQXV0b21hdGEiPnhtbEZyZWVBdXRvbWF0YTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdBdXRvbWF0YSI+eG1sTmV3QXV0b21hdGE8L2E+CQkodm9pZCk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0ieG1sQXV0b21hdGEiIGlkPSJ4bWxBdXRvbWF0YSI+U3RydWN0dXJlIHhtbEF1dG9tYXRhPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxBdXRvbWF0YTxiciAvPnN0cnVjdCBfeG1sQXV0b21hdGEgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+CisgICAgICBBIGxpYnhtbCBhdXRvbWF0YSBkZXNjcmlwdGlvbiwgSXQgY2FuIGJlIGNvbXBpbGVkIGludG8gYSByZWdleHAKKyAgICA8aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFTdGF0ZSIgaWQ9InhtbEF1dG9tYXRhU3RhdGUiPlN0cnVjdHVyZSB4bWxBdXRvbWF0YVN0YXRlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxBdXRvbWF0YVN0YXRlPGJyIC8+c3RydWN0IF94bWxBdXRvbWF0YVN0YXRlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPgorICAgICAgQSBzdGF0ZSBpbnQgdGhlIGF1dG9tYXRhIGRlc2NyaXB0aW9uLAorICAgIDxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YUNvbXBpbGUiIGlkPSJ4bWxBdXRvbWF0YUNvbXBpbGUiPjwvYT5GdW5jdGlvbjogeG1sQXV0b21hdGFDb21waWxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPgl4bWxBdXRvbWF0YUNvbXBpbGUJKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0pPGJyIC8+Cis8L3ByZT48cD5Db21waWxlIHRoZSBhdXRvbWF0YSBpbnRvIGEgUmVnIEV4cCByZWFkeSBmb3IgYmVpbmcgZXhlY3V0ZWQuIFRoZSBhdXRvbWF0YSBzaG91bGQgYmUgZnJlZSBhZnRlciB0aGlzIHBvaW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIHJlZ2V4cCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YUdldEluaXRTdGF0ZSIgaWQ9InhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFHZXRJbml0U3RhdGUJKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0pPGJyIC8+Cis8L3ByZT48cD5Jbml0aWFsIHN0YXRlIGxvb2t1cDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGF1dG9tYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFJc0RldGVybWluaXN0IiBpZD0ieG1sQXV0b21hdGFJc0RldGVybWluaXN0Ij48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QJKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0pPGJyIC8+Cis8L3ByZT48cD5DaGVja3MgaWYgYW4gYXV0b21hdGEgaXMgZGV0ZXJtaW5pc3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgbm90LCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhTmV3QWxsVHJhbnMiIGlkPSJ4bWxBdXRvbWF0YU5ld0FsbFRyYW5zIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhTmV3QWxsVHJhbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld0FsbFRyYW5zCSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIgLz4JCQkJCQkgaW50IGxheCk8YnIgLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgYW4gQUxMIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZS4gVGhhdCB0cmFuc2l0aW9uIGlzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBhbGxvd2VkIG9ubHkgd2hlbiBhbGwgdHJhbnNpdGlvbnMgZnJvbSB0aGUgQGZyb20gbm9kZSBoYXZlIGJlZW4gYWN0aXZhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJvbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50bzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFsbG93IHRvIHRyYW5zaXRpb24gaWYgbm90IGFsbCBhbGwgdHJhbnNpdGlvbnMgaGF2ZSBiZWVuIGFjdGl2YXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiIGlkPSJ4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMiPjwvYT5GdW5jdGlvbjogeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zCSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxiciAvPgkJCQkJCQkgaW50IG1pbiwgPGJyIC8+CQkJCQkJCSBpbnQgbWF4LCA8YnIgLz4JCQkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IGEgc3VjY2Vzc2lvbiBvZiBpbnB1dCBvZiB2YWx1ZSBAdG9rZW4gYW5kIHdob3NlIG51bWJlciBpcyBiZXR3ZWVuIEBtaW4gYW5kIEBtYXg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1pbmltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtYXhpbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczIiIGlkPSJ4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyCSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4yLCA8YnIgLz4JCQkJCQkJIGludCBtaW4sIDxiciAvPgkJCQkJCQkgaW50IG1heCwgPGJyIC8+CQkJCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIGFjdGl2YXRlZCBieSBhIHN1Y2Nlc3Npb24gb2YgaW5wdXQgb2YgdmFsdWUgQHRva2VuIGFuZCBAdG9rZW4yIGFuZCB3aG9zZSBudW1iZXIgaXMgYmV0d2VlbiBAbWluIGFuZCBAbWF4PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva2VuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5taW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRhdGEgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyIgaWQ9InhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4JeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMJKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyIC8+CQkJCQkJCSBpbnQgY291bnRlcik8YnIgLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIHdoaWNoIHdpbGwgaW5jcmVtZW50IHRoZSBjb3VudGVyIHByb3ZpZGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvdW50ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb3VudGVyIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhTmV3Q291bnRlciIgaWQ9InhtbEF1dG9tYXRhTmV3Q291bnRlciI+PC9hPkZ1bmN0aW9uOiB4bWxBdXRvbWF0YU5ld0NvdW50ZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQXV0b21hdGFOZXdDb3VudGVyCQkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkgaW50IG1pbiwgPGJyIC8+CQkJCQkgaW50IG1heCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBjb3VudGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5taW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtaW5pbWFsIHZhbHVlIG9uIHRoZSBjb3VudGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtYXhpbWFsIHZhbHVlIG9uIHRoZSBjb3VudGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY291bnRlciBudW1iZXIgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIiBpZD0ieG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMiPjwvYT5GdW5jdGlvbjogeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucwkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIgLz4JCQkJCQkJIGludCBjb3VudGVyKTxiciAvPgorPC9wcmU+PHA+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYW4gZXBzaWxvbiB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgd2hpY2ggd2lsbCBiZSBhbGxvd2VkIG9ubHkgaWYgdGhlIGNvdW50ZXIgaXMgd2l0aGluIHRoZSByaWdodCByYW5nZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y291bnRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvdW50ZXIgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdFcHNpbG9uIiBpZD0ieG1sQXV0b21hdGFOZXdFcHNpbG9uIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhTmV3RXBzaWxvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3RXBzaWxvbgkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0byk8YnIgLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdOZWdUcmFucyIgaWQ9InhtbEF1dG9tYXRhTmV3TmVnVHJhbnMiPjwvYT5GdW5jdGlvbjogeG1sQXV0b21hdGFOZXdOZWdUcmFuczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3TmVnVHJhbnMJKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gdG8sIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuMiwgPGJyIC8+CQkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IGFueSB2YWx1ZSBleGNlcHQgKEB0b2tlbixAdG9rZW4yKSBOb3RlIHRoYXQgaWYgQHRva2VuMiBpcyBub3QgTlVMTCwgdGhlbiAoWCwgTlVMTCkgd29uJ3QgbWF0Y2ggdG8gZm9sbG93ICMgdGhlIHNlbWFudGljIG9mIFhTRCAjI290aGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGF1dG9tYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcm9tPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva2VuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5kYXRhIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaWYgdGhlIHRyYW5zaXRpb24gaXMgYWN0aXZhdGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhTmV3T25jZVRyYW5zIiBpZD0ieG1sQXV0b21hdGFOZXdPbmNlVHJhbnMiPjwvYT5GdW5jdGlvbjogeG1sQXV0b21hdGFOZXdPbmNlVHJhbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld09uY2VUcmFucwkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIgLz4JCQkJCQkgaW50IG1pbiwgPGJyIC8+CQkJCQkJIGludCBtYXgsIDxiciAvPgkJCQkJCSB2b2lkICogZGF0YSk8YnIgLz4KKzwvcHJlPjxwPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIGFjdGl2YXRlZCBieSBhIHN1Y2Nlc3Npb24gb2YgaW5wdXQgb2YgdmFsdWUgQHRva2VuIGFuZCB3aG9zZSBudW1iZXIgaXMgYmV0d2VlbiBAbWluIGFuZCBAbWF4LCBtb3Jlb3ZlciB0aGF0IHRyYW5zaXRpb24gY2FuIG9ubHkgYmUgY3Jvc3NlZCBvbmNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJvbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50bzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWluPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWluaW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1heDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1heGltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5kYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIiBpZD0ieG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMgkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuMiwgPGJyIC8+CQkJCQkJCSBpbnQgbWluLCA8YnIgLz4JCQkJCQkJIGludCBtYXgsIDxiciAvPgkJCQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZSBhY3RpdmF0ZWQgYnkgYSBzdWNjZXNzaW9uIG9mIGlucHV0IG9mIHZhbHVlIEB0b2tlbiBhbmQgQHRva2VuMiBhbmQgd2hvc2UgbnVtYmVyIGlzIGJldHdlZW4gQG1pbiBhbmQgQG1heCwgbW9yZW92ZXIgdGhhdCB0cmFuc2l0aW9uIGNhbiBvbmx5IGJlIGNyb3NzZWQgb25jZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva2VuMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1pbmltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtYXhpbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEF1dG9tYXRhTmV3U3RhdGUiIGlkPSJ4bWxBdXRvbWF0YU5ld1N0YXRlIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhTmV3U3RhdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPgl4bWxBdXRvbWF0YU5ld1N0YXRlCSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IGRpc2Nvbm5lY3RlZCBzdGF0ZSBpbiB0aGUgYXV0b21hdGE8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIiBpZD0ieG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIj48L2E+RnVuY3Rpb246IHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbgkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiBmcm9tLCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+IHRvLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIgLz4JCQkJCQkJIHZvaWQgKiBkYXRhKTxiciAvPgorPC9wcmU+PHA+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IHRoZSB2YWx1ZSBvZiBAdG9rZW48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyb208L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmRhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpZiB0aGUgdHJhbnNpdGlvbiBpcyBhY3RpdmF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMiIgaWQ9InhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIiPjwvYT5GdW5jdGlvbjogeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhU3RhdGVQdHIiPnhtbEF1dG9tYXRhU3RhdGVQdHI8L2E+CXhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIJKDxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sI3htbEF1dG9tYXRhUHRyIj54bWxBdXRvbWF0YVB0cjwvYT4gYW0sIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gZnJvbSwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVN0YXRlUHRyIj54bWxBdXRvbWF0YVN0YXRlUHRyPC9hPiB0bywgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbiwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0b2tlbjIsIDxiciAvPgkJCQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZSBhY3RpdmF0ZWQgYnkgdGhlIHZhbHVlIG9mIEB0b2tlbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJvbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50bzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dG9rZW4yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZGF0YSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlmIHRoZSB0cmFuc2l0aW9uIGlzIGFjdGl2YXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUiIGlkPSJ4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUiPjwvYT5GdW5jdGlvbjogeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZQkoPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFQdHIiPnhtbEF1dG9tYXRhUHRyPC9hPiBhbSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwjeG1sQXV0b21hdGFTdGF0ZVB0ciI+eG1sQXV0b21hdGFTdGF0ZVB0cjwvYT4gc3RhdGUpPGJyIC8+Cis8L3ByZT48cD5NYWtlcyB0aGF0IHN0YXRlIGEgZmluYWwgc3RhdGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXRlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0YXRlIGluIHRoaXMgYXV0b21hdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEZyZWVBdXRvbWF0YSIgaWQ9InhtbEZyZWVBdXRvbWF0YSI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlQXV0b21hdGE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVBdXRvbWF0YQkJCSg8YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+IGFtKTxiciAvPgorPC9wcmU+PHA+RnJlZSBhbiBhdXRvbWF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBhdXRvbWF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE5ld0F1dG9tYXRhIiBpZD0ieG1sTmV3QXV0b21hdGEiPjwvYT5GdW5jdGlvbjogeG1sTmV3QXV0b21hdGE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sYXV0b21hdGEuaHRtbCN4bWxBdXRvbWF0YVB0ciI+eG1sQXV0b21hdGFQdHI8L2E+CXhtbE5ld0F1dG9tYXRhCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyBhdXRvbWF0YTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgb2JqZWN0IG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbGVycm9yLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxlcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlOWYzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxlcnJvci5odG1sCkBAIC0wLDAgKzEsODYyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgeG1sZXJyb3IgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4bWxlcnJvciBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXhtbGF1dG9tYXRhLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC14bWxhdXRvbWF0YS5odG1sIj54bWxhdXRvbWF0YTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteG1sZXhwb3J0cy5odG1sIj54bWxleHBvcnRzPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhtbGV4cG9ydHMuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+dGhlIEFQSSB1c2VkIHRvIHJlcG9ydCBlcnJvcnMgPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sRXJyb3IiPnhtbEVycm9yPC9hPjxiciAvPnN0cnVjdCBfeG1sRXJyb3IKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxFcnJvckRvbWFpbiI+eG1sRXJyb3JEb21haW48L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sRXJyb3JMZXZlbCI+eG1sRXJyb3JMZXZlbDwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yIj54bWxFcnJvcjwvYT4gKiA8YSBuYW1lPSJ4bWxFcnJvclB0ciIgaWQ9InhtbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxQYXJzZXJFcnJvcnMiPnhtbFBhcnNlckVycm9yczwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiNpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMiPmluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+ICogaGFuZGxlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbENvcHlFcnJvciI+eG1sQ29weUVycm9yPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxFcnJvclB0ciI+eG1sRXJyb3JQdHI8L2E+IGZyb20sIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gdG8pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPgk8YSBocmVmPSIjeG1sQ3R4dEdldExhc3RFcnJvciI+eG1sQ3R4dEdldExhc3RFcnJvcjwvYT4JKHZvaWQgKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sQ3R4dFJlc2V0TGFzdEVycm9yIj54bWxDdHh0UmVzZXRMYXN0RXJyb3I8L2E+CQkodm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+CQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4JPGEgaHJlZj0iI3htbEdldExhc3RFcnJvciI+eG1sR2V0TGFzdEVycm9yPC9hPgkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VyRXJyb3IiPnhtbFBhcnNlckVycm9yPC9hPgkJCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlclByaW50RmlsZUNvbnRleHQiPnhtbFBhcnNlclByaW50RmlsZUNvbnRleHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyI+eG1sUGFyc2VyUHJpbnRGaWxlSW5mbzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUGFyc2VyVmFsaWRpdHlFcnJvciI+eG1sUGFyc2VyVmFsaWRpdHlFcnJvcjwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFBhcnNlclZhbGlkaXR5V2FybmluZyI+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nPC9hPgkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxQYXJzZXJXYXJuaW5nIj54bWxQYXJzZXJXYXJuaW5nPC9hPgkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUmVzZXRFcnJvciI+eG1sUmVzZXRFcnJvcjwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPiBlcnIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUmVzZXRMYXN0RXJyb3IiPnhtbFJlc2V0TGFzdEVycm9yPC9hPgkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyI+eG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvYT4JCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxHZW5lcmljRXJyb3JGdW5jIj54bWxHZW5lcmljRXJyb3JGdW5jPC9hPiBoYW5kbGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBoYW5kbGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4JCSh2b2lkICogdXNlckRhdGEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gZXJyb3IpCis8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0ieG1sRXJyb3IiIGlkPSJ4bWxFcnJvciI+U3RydWN0dXJlIHhtbEVycm9yPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxFcnJvcjxiciAvPnN0cnVjdCBfeG1sRXJyb3IgeworICAgIGludAlkb21haW4JOiBXaGF0IHBhcnQgb2YgdGhlIGxpYnJhcnkgcmFpc2VkIHRoaXMgZXIKKyAgICBpbnQJY29kZQk6IFRoZSBlcnJvciBjb2RlLCBlLmcuIGFuIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbFBhcnNlckVycm9yIj54bWxQYXJzZXJFcnJvcjwvYT4KKyAgICBjaGFyICoJbWVzc2FnZQk6IGh1bWFuLXJlYWRhYmxlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZworICAgIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yTGV2ZWwiPnhtbEVycm9yTGV2ZWw8L2E+CWxldmVsCTogaG93IGNvbnNlcXVlbnQgaXMgdGhlIGVycm9yCisgICAgY2hhciAqCWZpbGUJOiB0aGUgZmlsZW5hbWUKKyAgICBpbnQJbGluZQk6IHRoZSBsaW5lIG51bWJlciBpZiBhdmFpbGFibGUKKyAgICBjaGFyICoJc3RyMQk6IGV4dHJhIHN0cmluZyBpbmZvcm1hdGlvbgorICAgIGNoYXIgKglzdHIyCTogZXh0cmEgc3RyaW5nIGluZm9ybWF0aW9uCisgICAgY2hhciAqCXN0cjMJOiBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24KKyAgICBpbnQJaW50MQk6IGV4dHJhIG51bWJlciBpbmZvcm1hdGlvbgorICAgIGludAlpbnQyCTogY29sdW1uIG51bWJlciBvZiB0aGUgZXJyb3Igb3IgMCBpZiBOL0EKKyAgICB2b2lkICoJY3R4dAk6IHRoZSBwYXJzZXIgY29udGV4dCBpZiBhdmFpbGFibGUKKyAgICB2b2lkICoJbm9kZQk6IHRoZSBub2RlIGluIHRoZSB0cmVlCit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sRXJyb3JEb21haW4iIGlkPSJ4bWxFcnJvckRvbWFpbiI+eG1sRXJyb3JEb21haW48L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxFcnJvckRvbWFpbiB7CisgICAgPGEgbmFtZT0iWE1MX0ZST01fTk9ORSIgaWQ9IlhNTF9GUk9NX05PTkUiPlhNTF9GUk9NX05PTkU8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1BBUlNFUiIgaWQ9IlhNTF9GUk9NX1BBUlNFUiI+WE1MX0ZST01fUEFSU0VSPC9hPiA9IDEgOiBUaGUgWE1MIHBhcnNlcgorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1RSRUUiIGlkPSJYTUxfRlJPTV9UUkVFIj5YTUxfRlJPTV9UUkVFPC9hPiA9IDIgOiBUaGUgdHJlZSBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9OQU1FU1BBQ0UiIGlkPSJYTUxfRlJPTV9OQU1FU1BBQ0UiPlhNTF9GUk9NX05BTUVTUEFDRTwvYT4gPSAzIDogVGhlIFhNTCBOYW1lc3BhY2UgbW9kdWxlCisgICAgPGEgbmFtZT0iWE1MX0ZST01fRFREIiBpZD0iWE1MX0ZST01fRFREIj5YTUxfRlJPTV9EVEQ8L2E+ID0gNCA6IFRoZSBYTUwgRFREIHZhbGlkYXRpb24gd2l0aCBwYXJzZXIgY29udGV4CisgICAgPGEgbmFtZT0iWE1MX0ZST01fSFRNTCIgaWQ9IlhNTF9GUk9NX0hUTUwiPlhNTF9GUk9NX0hUTUw8L2E+ID0gNSA6IFRoZSBIVE1MIHBhcnNlcgorICAgIDxhIG5hbWU9IlhNTF9GUk9NX01FTU9SWSIgaWQ9IlhNTF9GUk9NX01FTU9SWSI+WE1MX0ZST01fTUVNT1JZPC9hPiA9IDYgOiBUaGUgbWVtb3J5IGFsbG9jYXRvcgorICAgIDxhIG5hbWU9IlhNTF9GUk9NX09VVFBVVCIgaWQ9IlhNTF9GUk9NX09VVFBVVCI+WE1MX0ZST01fT1VUUFVUPC9hPiA9IDcgOiBUaGUgc2VyaWFsaXphdGlvbiBjb2RlCisgICAgPGEgbmFtZT0iWE1MX0ZST01fSU8iIGlkPSJYTUxfRlJPTV9JTyI+WE1MX0ZST01fSU88L2E+ID0gOCA6IFRoZSBJbnB1dC9PdXRwdXQgc3RhY2sKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9GVFAiIGlkPSJYTUxfRlJPTV9GVFAiPlhNTF9GUk9NX0ZUUDwvYT4gPSA5IDogVGhlIEZUUCBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9IVFRQIiBpZD0iWE1MX0ZST01fSFRUUCI+WE1MX0ZST01fSFRUUDwvYT4gPSAxMCA6IFRoZSBIVFRQIG1vZHVsZQorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1hJTkNMVURFIiBpZD0iWE1MX0ZST01fWElOQ0xVREUiPlhNTF9GUk9NX1hJTkNMVURFPC9hPiA9IDExIDogVGhlIFhJbmNsdWRlIHByb2Nlc3NpbmcKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9YUEFUSCIgaWQ9IlhNTF9GUk9NX1hQQVRIIj5YTUxfRlJPTV9YUEFUSDwvYT4gPSAxMiA6IFRoZSBYUGF0aCBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9YUE9JTlRFUiIgaWQ9IlhNTF9GUk9NX1hQT0lOVEVSIj5YTUxfRlJPTV9YUE9JTlRFUjwvYT4gPSAxMyA6IFRoZSBYUG9pbnRlciBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9SRUdFWFAiIGlkPSJYTUxfRlJPTV9SRUdFWFAiPlhNTF9GUk9NX1JFR0VYUDwvYT4gPSAxNCA6IFRoZSByZWd1bGFyIGV4cHJlc3Npb25zIG1vZHVsZQorICAgIDxhIG5hbWU9IlhNTF9GUk9NX0RBVEFUWVBFIiBpZD0iWE1MX0ZST01fREFUQVRZUEUiPlhNTF9GUk9NX0RBVEFUWVBFPC9hPiA9IDE1IDogVGhlIFczQyBYTUwgU2NoZW1hcyBEYXRhdHlwZSBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9TQ0hFTUFTUCIgaWQ9IlhNTF9GUk9NX1NDSEVNQVNQIj5YTUxfRlJPTV9TQ0hFTUFTUDwvYT4gPSAxNiA6IFRoZSBXM0MgWE1MIFNjaGVtYXMgcGFyc2VyIG1vZHVsZQorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1NDSEVNQVNWIiBpZD0iWE1MX0ZST01fU0NIRU1BU1YiPlhNTF9GUk9NX1NDSEVNQVNWPC9hPiA9IDE3IDogVGhlIFczQyBYTUwgU2NoZW1hcyB2YWxpZGF0aW9uIG1vZHVsZQorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1JFTEFYTkdQIiBpZD0iWE1MX0ZST01fUkVMQVhOR1AiPlhNTF9GUk9NX1JFTEFYTkdQPC9hPiA9IDE4IDogVGhlIFJlbGF4LU5HIHBhcnNlciBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9SRUxBWE5HViIgaWQ9IlhNTF9GUk9NX1JFTEFYTkdWIj5YTUxfRlJPTV9SRUxBWE5HVjwvYT4gPSAxOSA6IFRoZSBSZWxheC1ORyB2YWxpZGF0b3IgbW9kdWxlCisgICAgPGEgbmFtZT0iWE1MX0ZST01fQ0FUQUxPRyIgaWQ9IlhNTF9GUk9NX0NBVEFMT0ciPlhNTF9GUk9NX0NBVEFMT0c8L2E+ID0gMjAgOiBUaGUgQ2F0YWxvZyBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9DMTROIiBpZD0iWE1MX0ZST01fQzE0TiI+WE1MX0ZST01fQzE0TjwvYT4gPSAyMSA6IFRoZSBDYW5vbmljYWxpemF0aW9uIG1vZHVsZQorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1hTTFQiIGlkPSJYTUxfRlJPTV9YU0xUIj5YTUxfRlJPTV9YU0xUPC9hPiA9IDIyIDogVGhlIFhTTFQgZW5naW5lIGZyb20gbGlieHNsdAorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1ZBTElEIiBpZD0iWE1MX0ZST01fVkFMSUQiPlhNTF9GUk9NX1ZBTElEPC9hPiA9IDIzIDogVGhlIFhNTCBEVEQgdmFsaWRhdGlvbiB3aXRoIHZhbGlkIGNvbnRleHQKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9DSEVDSyIgaWQ9IlhNTF9GUk9NX0NIRUNLIj5YTUxfRlJPTV9DSEVDSzwvYT4gPSAyNCA6IFRoZSBlcnJvciBjaGVja2luZyBtb2R1bGUKKyAgICA8YSBuYW1lPSJYTUxfRlJPTV9XUklURVIiIGlkPSJYTUxfRlJPTV9XUklURVIiPlhNTF9GUk9NX1dSSVRFUjwvYT4gPSAyNSA6IFRoZSB4bWx3cml0ZXIgbW9kdWxlCisgICAgPGEgbmFtZT0iWE1MX0ZST01fTU9EVUxFIiBpZD0iWE1MX0ZST01fTU9EVUxFIj5YTUxfRlJPTV9NT0RVTEU8L2E+ID0gMjYgOiBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSBtb2R1bAorICAgIDxhIG5hbWU9IlhNTF9GUk9NX0kxOE4iIGlkPSJYTUxfRlJPTV9JMThOIj5YTUxfRlJPTV9JMThOPC9hPiA9IDI3IDogVGhlIG1vZHVsZSBoYW5kbGluZyBjaGFyYWN0ZXIgY29udmVyc2lvbgorICAgIDxhIG5hbWU9IlhNTF9GUk9NX1NDSEVNQVRST05WIiBpZD0iWE1MX0ZST01fU0NIRU1BVFJPTlYiPlhNTF9GUk9NX1NDSEVNQVRST05WPC9hPiA9IDI4IDogVGhlIFNjaGVtYXRyb24gdmFsaWRhdG9yIG1vZHVsZQorfQorPC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sRXJyb3JMZXZlbCIgaWQ9InhtbEVycm9yTGV2ZWwiPnhtbEVycm9yTGV2ZWw8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxFcnJvckxldmVsIHsKKyAgICA8YSBuYW1lPSJYTUxfRVJSX05PTkUiIGlkPSJYTUxfRVJSX05PTkUiPlhNTF9FUlJfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX0VSUl9XQVJOSU5HIiBpZD0iWE1MX0VSUl9XQVJOSU5HIj5YTUxfRVJSX1dBUk5JTkc8L2E+ID0gMSA6IEEgc2ltcGxlIHdhcm5pbmcKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VSUk9SIiBpZD0iWE1MX0VSUl9FUlJPUiI+WE1MX0VSUl9FUlJPUjwvYT4gPSAyIDogQSByZWNvdmVyYWJsZSBlcnJvcgorICAgIDxhIG5hbWU9IlhNTF9FUlJfRkFUQUwiIGlkPSJYTUxfRVJSX0ZBVEFMIj5YTUxfRVJSX0ZBVEFMPC9hPiA9IDMgOiBBIGZhdGFsIGVycm9yCit9Cis8L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxQYXJzZXJFcnJvcnMiIGlkPSJ4bWxQYXJzZXJFcnJvcnMiPnhtbFBhcnNlckVycm9yczwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFBhcnNlckVycm9ycyB7CisgICAgPGEgbmFtZT0iWE1MX0VSUl9PSyIgaWQ9IlhNTF9FUlJfT0siPlhNTF9FUlJfT0s8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhNTF9FUlJfSU5URVJOQUxfRVJST1IiIGlkPSJYTUxfRVJSX0lOVEVSTkFMX0VSUk9SIj5YTUxfRVJSX0lOVEVSTkFMX0VSUk9SPC9hPiA9IDEgOiAxCisgICAgPGEgbmFtZT0iWE1MX0VSUl9OT19NRU1PUlkiIGlkPSJYTUxfRVJSX05PX01FTU9SWSI+WE1MX0VSUl9OT19NRU1PUlk8L2E+ID0gMiA6IDIKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0RPQ1VNRU5UX1NUQVJUIiBpZD0iWE1MX0VSUl9ET0NVTUVOVF9TVEFSVCI+WE1MX0VSUl9ET0NVTUVOVF9TVEFSVDwvYT4gPSAzIDogMworICAgIDxhIG5hbWU9IlhNTF9FUlJfRE9DVU1FTlRfRU1QVFkiIGlkPSJYTUxfRVJSX0RPQ1VNRU5UX0VNUFRZIj5YTUxfRVJSX0RPQ1VNRU5UX0VNUFRZPC9hPiA9IDQgOiA0CisgICAgPGEgbmFtZT0iWE1MX0VSUl9ET0NVTUVOVF9FTkQiIGlkPSJYTUxfRVJSX0RPQ1VNRU5UX0VORCI+WE1MX0VSUl9ET0NVTUVOVF9FTkQ8L2E+ID0gNSA6IDUKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0lOVkFMSURfSEVYX0NIQVJSRUYiIGlkPSJYTUxfRVJSX0lOVkFMSURfSEVYX0NIQVJSRUYiPlhNTF9FUlJfSU5WQUxJRF9IRVhfQ0hBUlJFRjwvYT4gPSA2IDogNgorICAgIDxhIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiIgaWQ9IlhNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0RFQ19DSEFSUkVGPC9hPiA9IDcgOiA3CisgICAgPGEgbmFtZT0iWE1MX0VSUl9JTlZBTElEX0NIQVJSRUYiIGlkPSJYTUxfRVJSX0lOVkFMSURfQ0hBUlJFRiI+WE1MX0VSUl9JTlZBTElEX0NIQVJSRUY8L2E+ID0gOCA6IDgKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0lOVkFMSURfQ0hBUiIgaWQ9IlhNTF9FUlJfSU5WQUxJRF9DSEFSIj5YTUxfRVJSX0lOVkFMSURfQ0hBUjwvYT4gPSA5IDogOQorICAgIDxhIG5hbWU9IlhNTF9FUlJfQ0hBUlJFRl9BVF9FT0YiIGlkPSJYTUxfRVJSX0NIQVJSRUZfQVRfRU9GIj5YTUxfRVJSX0NIQVJSRUZfQVRfRU9GPC9hPiA9IDEwIDogMTAKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0NIQVJSRUZfSU5fUFJPTE9HIiBpZD0iWE1MX0VSUl9DSEFSUkVGX0lOX1BST0xPRyI+WE1MX0VSUl9DSEFSUkVGX0lOX1BST0xPRzwvYT4gPSAxMSA6IDExCisgICAgPGEgbmFtZT0iWE1MX0VSUl9DSEFSUkVGX0lOX0VQSUxPRyIgaWQ9IlhNTF9FUlJfQ0hBUlJFRl9JTl9FUElMT0ciPlhNTF9FUlJfQ0hBUlJFRl9JTl9FUElMT0c8L2E+ID0gMTIgOiAxMgorICAgIDxhIG5hbWU9IlhNTF9FUlJfQ0hBUlJFRl9JTl9EVEQiIGlkPSJYTUxfRVJSX0NIQVJSRUZfSU5fRFREIj5YTUxfRVJSX0NIQVJSRUZfSU5fRFREPC9hPiA9IDEzIDogMTMKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWVJFRl9BVF9FT0YiIGlkPSJYTUxfRVJSX0VOVElUWVJFRl9BVF9FT0YiPlhNTF9FUlJfRU5USVRZUkVGX0FUX0VPRjwvYT4gPSAxNCA6IDE0CisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HIiBpZD0iWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HIj5YTUxfRVJSX0VOVElUWVJFRl9JTl9QUk9MT0c8L2E+ID0gMTUgOiAxNQorICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZUkVGX0lOX0VQSUxPRyIgaWQ9IlhNTF9FUlJfRU5USVRZUkVGX0lOX0VQSUxPRyI+WE1MX0VSUl9FTlRJVFlSRUZfSU5fRVBJTE9HPC9hPiA9IDE2IDogMTYKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWVJFRl9JTl9EVEQiIGlkPSJYTUxfRVJSX0VOVElUWVJFRl9JTl9EVEQiPlhNTF9FUlJfRU5USVRZUkVGX0lOX0RURDwvYT4gPSAxNyA6IDE3CisgICAgPGEgbmFtZT0iWE1MX0VSUl9QRVJFRl9BVF9FT0YiIGlkPSJYTUxfRVJSX1BFUkVGX0FUX0VPRiI+WE1MX0VSUl9QRVJFRl9BVF9FT0Y8L2E+ID0gMTggOiAxOAorICAgIDxhIG5hbWU9IlhNTF9FUlJfUEVSRUZfSU5fUFJPTE9HIiBpZD0iWE1MX0VSUl9QRVJFRl9JTl9QUk9MT0ciPlhNTF9FUlJfUEVSRUZfSU5fUFJPTE9HPC9hPiA9IDE5IDogMTkKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1BFUkVGX0lOX0VQSUxPRyIgaWQ9IlhNTF9FUlJfUEVSRUZfSU5fRVBJTE9HIj5YTUxfRVJSX1BFUkVGX0lOX0VQSUxPRzwvYT4gPSAyMCA6IDIwCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QRVJFRl9JTl9JTlRfU1VCU0VUIiBpZD0iWE1MX0VSUl9QRVJFRl9JTl9JTlRfU1VCU0VUIj5YTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQ8L2E+ID0gMjEgOiAyMQorICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZUkVGX05PX05BTUUiIGlkPSJYTUxfRVJSX0VOVElUWVJFRl9OT19OQU1FIj5YTUxfRVJSX0VOVElUWVJFRl9OT19OQU1FPC9hPiA9IDIyIDogMjIKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWVJFRl9TRU1JQ09MX01JU1NJTkciIGlkPSJYTUxfRVJSX0VOVElUWVJFRl9TRU1JQ09MX01JU1NJTkciPlhNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORzwvYT4gPSAyMyA6IDIzCisgICAgPGEgbmFtZT0iWE1MX0VSUl9QRVJFRl9OT19OQU1FIiBpZD0iWE1MX0VSUl9QRVJFRl9OT19OQU1FIj5YTUxfRVJSX1BFUkVGX05PX05BTUU8L2E+ID0gMjQgOiAyNAorICAgIDxhIG5hbWU9IlhNTF9FUlJfUEVSRUZfU0VNSUNPTF9NSVNTSU5HIiBpZD0iWE1MX0VSUl9QRVJFRl9TRU1JQ09MX01JU1NJTkciPlhNTF9FUlJfUEVSRUZfU0VNSUNPTF9NSVNTSU5HPC9hPiA9IDI1IDogMjUKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1VOREVDTEFSRURfRU5USVRZIiBpZD0iWE1MX0VSUl9VTkRFQ0xBUkVEX0VOVElUWSI+WE1MX0VSUl9VTkRFQ0xBUkVEX0VOVElUWTwvYT4gPSAyNiA6IDI2CisgICAgPGEgbmFtZT0iWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWSIgaWQ9IlhNTF9XQVJfVU5ERUNMQVJFRF9FTlRJVFkiPlhNTF9XQVJfVU5ERUNMQVJFRF9FTlRJVFk8L2E+ID0gMjcgOiAyNworICAgIDxhIG5hbWU9IlhNTF9FUlJfVU5QQVJTRURfRU5USVRZIiBpZD0iWE1MX0VSUl9VTlBBUlNFRF9FTlRJVFkiPlhNTF9FUlJfVU5QQVJTRURfRU5USVRZPC9hPiA9IDI4IDogMjgKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWV9JU19FWFRFUk5BTCIgaWQ9IlhNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMIj5YTUxfRVJSX0VOVElUWV9JU19FWFRFUk5BTDwvYT4gPSAyOSA6IDI5CisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSIiBpZD0iWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSIj5YTUxfRVJSX0VOVElUWV9JU19QQVJBTUVURVI8L2E+ID0gMzAgOiAzMAorICAgIDxhIG5hbWU9IlhNTF9FUlJfVU5LTk9XTl9FTkNPRElORyIgaWQ9IlhNTF9FUlJfVU5LTk9XTl9FTkNPRElORyI+WE1MX0VSUl9VTktOT1dOX0VOQ09ESU5HPC9hPiA9IDMxIDogMzEKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HIiBpZD0iWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORyI+WE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORzwvYT4gPSAzMiA6IDMyCisgICAgPGEgbmFtZT0iWE1MX0VSUl9TVFJJTkdfTk9UX1NUQVJURUQiIGlkPSJYTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRCI+WE1MX0VSUl9TVFJJTkdfTk9UX1NUQVJURUQ8L2E+ID0gMzMgOiAzMworICAgIDxhIG5hbWU9IlhNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQiIGlkPSJYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VEIj5YTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VEPC9hPiA9IDM0IDogMzQKKyAgICA8YSBuYW1lPSJYTUxfRVJSX05TX0RFQ0xfRVJST1IiIGlkPSJYTUxfRVJSX05TX0RFQ0xfRVJST1IiPlhNTF9FUlJfTlNfREVDTF9FUlJPUjwvYT4gPSAzNSA6IDM1CisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfTk9UX1NUQVJURUQiIGlkPSJYTUxfRVJSX0VOVElUWV9OT1RfU1RBUlRFRCI+WE1MX0VSUl9FTlRJVFlfTk9UX1NUQVJURUQ8L2E+ID0gMzYgOiAzNgorICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9FTlRJVFlfTk9UX0ZJTklTSEVEPC9hPiA9IDM3IDogMzcKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0xUX0lOX0FUVFJJQlVURSIgaWQ9IlhNTF9FUlJfTFRfSU5fQVRUUklCVVRFIj5YTUxfRVJSX0xUX0lOX0FUVFJJQlVURTwvYT4gPSAzOCA6IDM4CisgICAgPGEgbmFtZT0iWE1MX0VSUl9BVFRSSUJVVEVfTk9UX1NUQVJURUQiIGlkPSJYTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRCI+WE1MX0VSUl9BVFRSSUJVVEVfTk9UX1NUQVJURUQ8L2E+ID0gMzkgOiAzOQorICAgIDxhIG5hbWU9IlhNTF9FUlJfQVRUUklCVVRFX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfQVRUUklCVVRFX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9BVFRSSUJVVEVfTk9UX0ZJTklTSEVEPC9hPiA9IDQwIDogNDAKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0FUVFJJQlVURV9XSVRIT1VUX1ZBTFVFIiBpZD0iWE1MX0VSUl9BVFRSSUJVVEVfV0lUSE9VVF9WQUxVRSI+WE1MX0VSUl9BVFRSSUJVVEVfV0lUSE9VVF9WQUxVRTwvYT4gPSA0MSA6IDQxCisgICAgPGEgbmFtZT0iWE1MX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEIiBpZD0iWE1MX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEIj5YTUxfRVJSX0FUVFJJQlVURV9SRURFRklORUQ8L2E+ID0gNDIgOiA0MgorICAgIDxhIG5hbWU9IlhNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCIgaWQ9IlhNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCI+WE1MX0VSUl9MSVRFUkFMX05PVF9TVEFSVEVEPC9hPiA9IDQzIDogNDMKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVEIiBpZD0iWE1MX0VSUl9MSVRFUkFMX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9MSVRFUkFMX05PVF9GSU5JU0hFRDwvYT4gPSA0NCA6IDQ0CisgICAgPGEgbmFtZT0iWE1MX0VSUl9DT01NRU5UX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQ8L2E+ID0gNDUgOiA0NQorICAgIDxhIG5hbWU9IlhNTF9FUlJfUElfTk9UX1NUQVJURUQiIGlkPSJYTUxfRVJSX1BJX05PVF9TVEFSVEVEIj5YTUxfRVJSX1BJX05PVF9TVEFSVEVEPC9hPiA9IDQ2IDogNDYKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1BJX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfUElfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX1BJX05PVF9GSU5JU0hFRDwvYT4gPSA0NyA6IDQ3CisgICAgPGEgbmFtZT0iWE1MX0VSUl9OT1RBVElPTl9OT1RfU1RBUlRFRCIgaWQ9IlhNTF9FUlJfTk9UQVRJT05fTk9UX1NUQVJURUQiPlhNTF9FUlJfTk9UQVRJT05fTk9UX1NUQVJURUQ8L2E+ID0gNDggOiA0OAorICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVEIiBpZD0iWE1MX0VSUl9OT1RBVElPTl9OT1RfRklOSVNIRUQiPlhNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVEPC9hPiA9IDQ5IDogNDkKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0FUVExJU1RfTk9UX1NUQVJURUQiIGlkPSJYTUxfRVJSX0FUVExJU1RfTk9UX1NUQVJURUQiPlhNTF9FUlJfQVRUTElTVF9OT1RfU1RBUlRFRDwvYT4gPSA1MCA6IDUwCisgICAgPGEgbmFtZT0iWE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfQVRUTElTVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfQVRUTElTVF9OT1RfRklOSVNIRUQ8L2E+ID0gNTEgOiA1MQorICAgIDxhIG5hbWU9IlhNTF9FUlJfTUlYRURfTk9UX1NUQVJURUQiIGlkPSJYTUxfRVJSX01JWEVEX05PVF9TVEFSVEVEIj5YTUxfRVJSX01JWEVEX05PVF9TVEFSVEVEPC9hPiA9IDUyIDogNTIKKyAgICA8YSBuYW1lPSJYTUxfRVJSX01JWEVEX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfTUlYRURfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX01JWEVEX05PVF9GSU5JU0hFRDwvYT4gPSA1MyA6IDUzCisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfU1RBUlRFRCIgaWQ9IlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX1NUQVJURUQiPlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX1NUQVJURUQ8L2E+ID0gNTQgOiA1NAorICAgIDxhIG5hbWU9IlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX0ZJTklTSEVEIiBpZD0iWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX0ZJTklTSEVEPC9hPiA9IDU1IDogNTUKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQiIGlkPSJYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQiPlhNTF9FUlJfWE1MREVDTF9OT1RfU1RBUlRFRDwvYT4gPSA1NiA6IDU2CisgICAgPGEgbmFtZT0iWE1MX0VSUl9YTUxERUNMX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfWE1MREVDTF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfWE1MREVDTF9OT1RfRklOSVNIRUQ8L2E+ID0gNTcgOiA1NworICAgIDxhIG5hbWU9IlhNTF9FUlJfQ09ORFNFQ19OT1RfU1RBUlRFRCIgaWQ9IlhNTF9FUlJfQ09ORFNFQ19OT1RfU1RBUlRFRCI+WE1MX0VSUl9DT05EU0VDX05PVF9TVEFSVEVEPC9hPiA9IDU4IDogNTgKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0NPTkRTRUNfTk9UX0ZJTklTSEVEIiBpZD0iWE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRDwvYT4gPSA1OSA6IDU5CisgICAgPGEgbmFtZT0iWE1MX0VSUl9FWFRfU1VCU0VUX05PVF9GSU5JU0hFRCIgaWQ9IlhNTF9FUlJfRVhUX1NVQlNFVF9OT1RfRklOSVNIRUQiPlhNTF9FUlJfRVhUX1NVQlNFVF9OT1RfRklOSVNIRUQ8L2E+ID0gNjAgOiA2MAorICAgIDxhIG5hbWU9IlhNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQiIGlkPSJYTUxfRVJSX0RPQ1RZUEVfTk9UX0ZJTklTSEVEIj5YTUxfRVJSX0RPQ1RZUEVfTk9UX0ZJTklTSEVEPC9hPiA9IDYxIDogNjEKKyAgICA8YSBuYW1lPSJYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQiIGlkPSJYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQiPlhNTF9FUlJfTUlTUExBQ0VEX0NEQVRBX0VORDwvYT4gPSA2MiA6IDYyCisgICAgPGEgbmFtZT0iWE1MX0VSUl9DREFUQV9OT1RfRklOSVNIRUQiIGlkPSJYTUxfRVJSX0NEQVRBX05PVF9GSU5JU0hFRCI+WE1MX0VSUl9DREFUQV9OT1RfRklOSVNIRUQ8L2E+ID0gNjMgOiA2MworICAgIDxhIG5hbWU9IlhNTF9FUlJfUkVTRVJWRURfWE1MX05BTUUiIGlkPSJYTUxfRVJSX1JFU0VSVkVEX1hNTF9OQU1FIj5YTUxfRVJSX1JFU0VSVkVEX1hNTF9OQU1FPC9hPiA9IDY0IDogNjQKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1NQQUNFX1JFUVVJUkVEIiBpZD0iWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCI+WE1MX0VSUl9TUEFDRV9SRVFVSVJFRDwvYT4gPSA2NSA6IDY1CisgICAgPGEgbmFtZT0iWE1MX0VSUl9TRVBBUkFUT1JfUkVRVUlSRUQiIGlkPSJYTUxfRVJSX1NFUEFSQVRPUl9SRVFVSVJFRCI+WE1MX0VSUl9TRVBBUkFUT1JfUkVRVUlSRUQ8L2E+ID0gNjYgOiA2NgorICAgIDxhIG5hbWU9IlhNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRCIgaWQ9IlhNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRCI+WE1MX0VSUl9OTVRPS0VOX1JFUVVJUkVEPC9hPiA9IDY3IDogNjcKKyAgICA8YSBuYW1lPSJYTUxfRVJSX05BTUVfUkVRVUlSRUQiIGlkPSJYTUxfRVJSX05BTUVfUkVRVUlSRUQiPlhNTF9FUlJfTkFNRV9SRVFVSVJFRDwvYT4gPSA2OCA6IDY4CisgICAgPGEgbmFtZT0iWE1MX0VSUl9QQ0RBVEFfUkVRVUlSRUQiIGlkPSJYTUxfRVJSX1BDREFUQV9SRVFVSVJFRCI+WE1MX0VSUl9QQ0RBVEFfUkVRVUlSRUQ8L2E+ID0gNjkgOiA2OQorICAgIDxhIG5hbWU9IlhNTF9FUlJfVVJJX1JFUVVJUkVEIiBpZD0iWE1MX0VSUl9VUklfUkVRVUlSRUQiPlhNTF9FUlJfVVJJX1JFUVVJUkVEPC9hPiA9IDcwIDogNzAKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1BVQklEX1JFUVVJUkVEIiBpZD0iWE1MX0VSUl9QVUJJRF9SRVFVSVJFRCI+WE1MX0VSUl9QVUJJRF9SRVFVSVJFRDwvYT4gPSA3MSA6IDcxCisgICAgPGEgbmFtZT0iWE1MX0VSUl9MVF9SRVFVSVJFRCIgaWQ9IlhNTF9FUlJfTFRfUkVRVUlSRUQiPlhNTF9FUlJfTFRfUkVRVUlSRUQ8L2E+ID0gNzIgOiA3MgorICAgIDxhIG5hbWU9IlhNTF9FUlJfR1RfUkVRVUlSRUQiIGlkPSJYTUxfRVJSX0dUX1JFUVVJUkVEIj5YTUxfRVJSX0dUX1JFUVVJUkVEPC9hPiA9IDczIDogNzMKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0xUU0xBU0hfUkVRVUlSRUQiIGlkPSJYTUxfRVJSX0xUU0xBU0hfUkVRVUlSRUQiPlhNTF9FUlJfTFRTTEFTSF9SRVFVSVJFRDwvYT4gPSA3NCA6IDc0CisgICAgPGEgbmFtZT0iWE1MX0VSUl9FUVVBTF9SRVFVSVJFRCIgaWQ9IlhNTF9FUlJfRVFVQUxfUkVRVUlSRUQiPlhNTF9FUlJfRVFVQUxfUkVRVUlSRUQ8L2E+ID0gNzUgOiA3NQorICAgIDxhIG5hbWU9IlhNTF9FUlJfVEFHX05BTUVfTUlTTUFUQ0giIGlkPSJYTUxfRVJSX1RBR19OQU1FX01JU01BVENIIj5YTUxfRVJSX1RBR19OQU1FX01JU01BVENIPC9hPiA9IDc2IDogNzYKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1RBR19OT1RfRklOSVNIRUQiIGlkPSJYTUxfRVJSX1RBR19OT1RfRklOSVNIRUQiPlhNTF9FUlJfVEFHX05PVF9GSU5JU0hFRDwvYT4gPSA3NyA6IDc3CisgICAgPGEgbmFtZT0iWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFIiBpZD0iWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFIj5YTUxfRVJSX1NUQU5EQUxPTkVfVkFMVUU8L2E+ID0gNzggOiA3OAorICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5DT0RJTkdfTkFNRSIgaWQ9IlhNTF9FUlJfRU5DT0RJTkdfTkFNRSI+WE1MX0VSUl9FTkNPRElOR19OQU1FPC9hPiA9IDc5IDogNzkKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0hZUEhFTl9JTl9DT01NRU5UIiBpZD0iWE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVCI+WE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVDwvYT4gPSA4MCA6IDgwCisgICAgPGEgbmFtZT0iWE1MX0VSUl9JTlZBTElEX0VOQ09ESU5HIiBpZD0iWE1MX0VSUl9JTlZBTElEX0VOQ09ESU5HIj5YTUxfRVJSX0lOVkFMSURfRU5DT0RJTkc8L2E+ID0gODEgOiA4MQorICAgIDxhIG5hbWU9IlhNTF9FUlJfRVhUX0VOVElUWV9TVEFOREFMT05FIiBpZD0iWE1MX0VSUl9FWFRfRU5USVRZX1NUQU5EQUxPTkUiPlhNTF9FUlJfRVhUX0VOVElUWV9TVEFOREFMT05FPC9hPiA9IDgyIDogODIKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0NPTkRTRUNfSU5WQUxJRCIgaWQ9IlhNTF9FUlJfQ09ORFNFQ19JTlZBTElEIj5YTUxfRVJSX0NPTkRTRUNfSU5WQUxJRDwvYT4gPSA4MyA6IDgzCisgICAgPGEgbmFtZT0iWE1MX0VSUl9WQUxVRV9SRVFVSVJFRCIgaWQ9IlhNTF9FUlJfVkFMVUVfUkVRVUlSRUQiPlhNTF9FUlJfVkFMVUVfUkVRVUlSRUQ8L2E+ID0gODQgOiA4NAorICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9UX1dFTExfQkFMQU5DRUQiIGlkPSJYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VEIj5YTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VEPC9hPiA9IDg1IDogODUKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VYVFJBX0NPTlRFTlQiIGlkPSJYTUxfRVJSX0VYVFJBX0NPTlRFTlQiPlhNTF9FUlJfRVhUUkFfQ09OVEVOVDwvYT4gPSA4NiA6IDg2CisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfQ0hBUl9FUlJPUiIgaWQ9IlhNTF9FUlJfRU5USVRZX0NIQVJfRVJST1IiPlhNTF9FUlJfRU5USVRZX0NIQVJfRVJST1I8L2E+ID0gODcgOiA4NworICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZX1BFX0lOVEVSTkFMIiBpZD0iWE1MX0VSUl9FTlRJVFlfUEVfSU5URVJOQUwiPlhNTF9FUlJfRU5USVRZX1BFX0lOVEVSTkFMPC9hPiA9IDg4IDogODgKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0VOVElUWV9MT09QIiBpZD0iWE1MX0VSUl9FTlRJVFlfTE9PUCI+WE1MX0VSUl9FTlRJVFlfTE9PUDwvYT4gPSA4OSA6IDg5CisgICAgPGEgbmFtZT0iWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlkiIGlkPSJYTUxfRVJSX0VOVElUWV9CT1VOREFSWSI+WE1MX0VSUl9FTlRJVFlfQk9VTkRBUlk8L2E+ID0gOTAgOiA5MAorICAgIDxhIG5hbWU9IlhNTF9FUlJfSU5WQUxJRF9VUkkiIGlkPSJYTUxfRVJSX0lOVkFMSURfVVJJIj5YTUxfRVJSX0lOVkFMSURfVVJJPC9hPiA9IDkxIDogOTEKKyAgICA8YSBuYW1lPSJYTUxfRVJSX1VSSV9GUkFHTUVOVCIgaWQ9IlhNTF9FUlJfVVJJX0ZSQUdNRU5UIj5YTUxfRVJSX1VSSV9GUkFHTUVOVDwvYT4gPSA5MiA6IDkyCisgICAgPGEgbmFtZT0iWE1MX1dBUl9DQVRBTE9HX1BJIiBpZD0iWE1MX1dBUl9DQVRBTE9HX1BJIj5YTUxfV0FSX0NBVEFMT0dfUEk8L2E+ID0gOTMgOiA5MworICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9fRFREIiBpZD0iWE1MX0VSUl9OT19EVEQiPlhNTF9FUlJfTk9fRFREPC9hPiA9IDk0IDogOTQKKyAgICA8YSBuYW1lPSJYTUxfRVJSX0NPTkRTRUNfSU5WQUxJRF9LRVlXT1JEIiBpZD0iWE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRCI+WE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRDwvYT4gPSA5NSA6IDk1CisgICAgPGEgbmFtZT0iWE1MX0VSUl9WRVJTSU9OX01JU1NJTkciIGlkPSJYTUxfRVJSX1ZFUlNJT05fTUlTU0lORyI+WE1MX0VSUl9WRVJTSU9OX01JU1NJTkc8L2E+ID0gOTYgOiA5NgorICAgIDxhIG5hbWU9IlhNTF9XQVJfVU5LTk9XTl9WRVJTSU9OIiBpZD0iWE1MX1dBUl9VTktOT1dOX1ZFUlNJT04iPlhNTF9XQVJfVU5LTk9XTl9WRVJTSU9OPC9hPiA9IDk3IDogOTcKKyAgICA8YSBuYW1lPSJYTUxfV0FSX0xBTkdfVkFMVUUiIGlkPSJYTUxfV0FSX0xBTkdfVkFMVUUiPlhNTF9XQVJfTEFOR19WQUxVRTwvYT4gPSA5OCA6IDk4CisgICAgPGEgbmFtZT0iWE1MX1dBUl9OU19VUkkiIGlkPSJYTUxfV0FSX05TX1VSSSI+WE1MX1dBUl9OU19VUkk8L2E+ID0gOTkgOiA5OQorICAgIDxhIG5hbWU9IlhNTF9XQVJfTlNfVVJJX1JFTEFUSVZFIiBpZD0iWE1MX1dBUl9OU19VUklfUkVMQVRJVkUiPlhNTF9XQVJfTlNfVVJJX1JFTEFUSVZFPC9hPiA9IDEwMCA6IDEwMAorICAgIDxhIG5hbWU9IlhNTF9FUlJfTUlTU0lOR19FTkNPRElORyIgaWQ9IlhNTF9FUlJfTUlTU0lOR19FTkNPRElORyI+WE1MX0VSUl9NSVNTSU5HX0VOQ09ESU5HPC9hPiA9IDEwMSA6IDEwMQorICAgIDxhIG5hbWU9IlhNTF9XQVJfU1BBQ0VfVkFMVUUiIGlkPSJYTUxfV0FSX1NQQUNFX1ZBTFVFIj5YTUxfV0FSX1NQQUNFX1ZBTFVFPC9hPiA9IDEwMiA6IDEwMgorICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9UX1NUQU5EQUxPTkUiIGlkPSJYTUxfRVJSX05PVF9TVEFOREFMT05FIj5YTUxfRVJSX05PVF9TVEFOREFMT05FPC9hPiA9IDEwMyA6IDEwMworICAgIDxhIG5hbWU9IlhNTF9FUlJfRU5USVRZX1BST0NFU1NJTkciIGlkPSJYTUxfRVJSX0VOVElUWV9QUk9DRVNTSU5HIj5YTUxfRVJSX0VOVElUWV9QUk9DRVNTSU5HPC9hPiA9IDEwNCA6IDEwNAorICAgIDxhIG5hbWU9IlhNTF9FUlJfTk9UQVRJT05fUFJPQ0VTU0lORyIgaWQ9IlhNTF9FUlJfTk9UQVRJT05fUFJPQ0VTU0lORyI+WE1MX0VSUl9OT1RBVElPTl9QUk9DRVNTSU5HPC9hPiA9IDEwNSA6IDEwNQorICAgIDxhIG5hbWU9IlhNTF9XQVJfTlNfQ09MVU1OIiBpZD0iWE1MX1dBUl9OU19DT0xVTU4iPlhNTF9XQVJfTlNfQ09MVU1OPC9hPiA9IDEwNiA6IDEwNgorICAgIDxhIG5hbWU9IlhNTF9XQVJfRU5USVRZX1JFREVGSU5FRCIgaWQ9IlhNTF9XQVJfRU5USVRZX1JFREVGSU5FRCI+WE1MX1dBUl9FTlRJVFlfUkVERUZJTkVEPC9hPiA9IDEwNyA6IDEwNworICAgIDxhIG5hbWU9IlhNTF9FUlJfVU5LTk9XTl9WRVJTSU9OIiBpZD0iWE1MX0VSUl9VTktOT1dOX1ZFUlNJT04iPlhNTF9FUlJfVU5LTk9XTl9WRVJTSU9OPC9hPiA9IDEwOCA6IDEwOAorICAgIDxhIG5hbWU9IlhNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCIgaWQ9IlhNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCI+WE1MX0VSUl9WRVJTSU9OX01JU01BVENIPC9hPiA9IDEwOSA6IDEwOQorICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSIgaWQ9IlhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSI+WE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFPC9hPiA9IDIwMAorICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSIgaWQ9IlhNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSI+WE1MX05TX0VSUl9VTkRFRklORURfTkFNRVNQQUNFPC9hPiA9IDIwMSA6IDIwMQorICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfUU5BTUUiIGlkPSJYTUxfTlNfRVJSX1FOQU1FIj5YTUxfTlNfRVJSX1FOQU1FPC9hPiA9IDIwMiA6IDIwMgorICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfQVRUUklCVVRFX1JFREVGSU5FRCIgaWQ9IlhNTF9OU19FUlJfQVRUUklCVVRFX1JFREVGSU5FRCI+WE1MX05TX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEPC9hPiA9IDIwMyA6IDIwMworICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfRU1QVFkiIGlkPSJYTUxfTlNfRVJSX0VNUFRZIj5YTUxfTlNfRVJSX0VNUFRZPC9hPiA9IDIwNCA6IDIwNAorICAgIDxhIG5hbWU9IlhNTF9OU19FUlJfQ09MT04iIGlkPSJYTUxfTlNfRVJSX0NPTE9OIj5YTUxfTlNfRVJSX0NPTE9OPC9hPiA9IDIwNSA6IDIwNQorICAgIDxhIG5hbWU9IlhNTF9EVERfQVRUUklCVVRFX0RFRkFVTFQiIGlkPSJYTUxfRFREX0FUVFJJQlVURV9ERUZBVUxUIj5YTUxfRFREX0FUVFJJQlVURV9ERUZBVUxUPC9hPiA9IDUwMAorICAgIDxhIG5hbWU9IlhNTF9EVERfQVRUUklCVVRFX1JFREVGSU5FRCIgaWQ9IlhNTF9EVERfQVRUUklCVVRFX1JFREVGSU5FRCI+WE1MX0RURF9BVFRSSUJVVEVfUkVERUZJTkVEPC9hPiA9IDUwMSA6IDUwMQorICAgIDxhIG5hbWU9IlhNTF9EVERfQVRUUklCVVRFX1ZBTFVFIiBpZD0iWE1MX0RURF9BVFRSSUJVVEVfVkFMVUUiPlhNTF9EVERfQVRUUklCVVRFX1ZBTFVFPC9hPiA9IDUwMiA6IDUwMgorICAgIDxhIG5hbWU9IlhNTF9EVERfQ09OVEVOVF9FUlJPUiIgaWQ9IlhNTF9EVERfQ09OVEVOVF9FUlJPUiI+WE1MX0RURF9DT05URU5UX0VSUk9SPC9hPiA9IDUwMyA6IDUwMworICAgIDxhIG5hbWU9IlhNTF9EVERfQ09OVEVOVF9NT0RFTCIgaWQ9IlhNTF9EVERfQ09OVEVOVF9NT0RFTCI+WE1MX0RURF9DT05URU5UX01PREVMPC9hPiA9IDUwNCA6IDUwNAorICAgIDxhIG5hbWU9IlhNTF9EVERfQ09OVEVOVF9OT1RfREVURVJNSU5JU1QiIGlkPSJYTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUIj5YTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUPC9hPiA9IDUwNSA6IDUwNQorICAgIDxhIG5hbWU9IlhNTF9EVERfRElGRkVSRU5UX1BSRUZJWCIgaWQ9IlhNTF9EVERfRElGRkVSRU5UX1BSRUZJWCI+WE1MX0RURF9ESUZGRVJFTlRfUFJFRklYPC9hPiA9IDUwNiA6IDUwNgorICAgIDxhIG5hbWU9IlhNTF9EVERfRUxFTV9ERUZBVUxUX05BTUVTUEFDRSIgaWQ9IlhNTF9EVERfRUxFTV9ERUZBVUxUX05BTUVTUEFDRSI+WE1MX0RURF9FTEVNX0RFRkFVTFRfTkFNRVNQQUNFPC9hPiA9IDUwNyA6IDUwNworICAgIDxhIG5hbWU9IlhNTF9EVERfRUxFTV9OQU1FU1BBQ0UiIGlkPSJYTUxfRFREX0VMRU1fTkFNRVNQQUNFIj5YTUxfRFREX0VMRU1fTkFNRVNQQUNFPC9hPiA9IDUwOCA6IDUwOAorICAgIDxhIG5hbWU9IlhNTF9EVERfRUxFTV9SRURFRklORUQiIGlkPSJYTUxfRFREX0VMRU1fUkVERUZJTkVEIj5YTUxfRFREX0VMRU1fUkVERUZJTkVEPC9hPiA9IDUwOSA6IDUwOQorICAgIDxhIG5hbWU9IlhNTF9EVERfRU1QVFlfTk9UQVRJT04iIGlkPSJYTUxfRFREX0VNUFRZX05PVEFUSU9OIj5YTUxfRFREX0VNUFRZX05PVEFUSU9OPC9hPiA9IDUxMCA6IDUxMAorICAgIDxhIG5hbWU9IlhNTF9EVERfRU5USVRZX1RZUEUiIGlkPSJYTUxfRFREX0VOVElUWV9UWVBFIj5YTUxfRFREX0VOVElUWV9UWVBFPC9hPiA9IDUxMSA6IDUxMQorICAgIDxhIG5hbWU9IlhNTF9EVERfSURfRklYRUQiIGlkPSJYTUxfRFREX0lEX0ZJWEVEIj5YTUxfRFREX0lEX0ZJWEVEPC9hPiA9IDUxMiA6IDUxMgorICAgIDxhIG5hbWU9IlhNTF9EVERfSURfUkVERUZJTkVEIiBpZD0iWE1MX0RURF9JRF9SRURFRklORUQiPlhNTF9EVERfSURfUkVERUZJTkVEPC9hPiA9IDUxMyA6IDUxMworICAgIDxhIG5hbWU9IlhNTF9EVERfSURfU1VCU0VUIiBpZD0iWE1MX0RURF9JRF9TVUJTRVQiPlhNTF9EVERfSURfU1VCU0VUPC9hPiA9IDUxNCA6IDUxNAorICAgIDxhIG5hbWU9IlhNTF9EVERfSU5WQUxJRF9DSElMRCIgaWQ9IlhNTF9EVERfSU5WQUxJRF9DSElMRCI+WE1MX0RURF9JTlZBTElEX0NISUxEPC9hPiA9IDUxNSA6IDUxNQorICAgIDxhIG5hbWU9IlhNTF9EVERfSU5WQUxJRF9ERUZBVUxUIiBpZD0iWE1MX0RURF9JTlZBTElEX0RFRkFVTFQiPlhNTF9EVERfSU5WQUxJRF9ERUZBVUxUPC9hPiA9IDUxNiA6IDUxNgorICAgIDxhIG5hbWU9IlhNTF9EVERfTE9BRF9FUlJPUiIgaWQ9IlhNTF9EVERfTE9BRF9FUlJPUiI+WE1MX0RURF9MT0FEX0VSUk9SPC9hPiA9IDUxNyA6IDUxNworICAgIDxhIG5hbWU9IlhNTF9EVERfTUlTU0lOR19BVFRSSUJVVEUiIGlkPSJYTUxfRFREX01JU1NJTkdfQVRUUklCVVRFIj5YTUxfRFREX01JU1NJTkdfQVRUUklCVVRFPC9hPiA9IDUxOCA6IDUxOAorICAgIDxhIG5hbWU9IlhNTF9EVERfTUlYRURfQ09SUlVQVCIgaWQ9IlhNTF9EVERfTUlYRURfQ09SUlVQVCI+WE1MX0RURF9NSVhFRF9DT1JSVVBUPC9hPiA9IDUxOSA6IDUxOQorICAgIDxhIG5hbWU9IlhNTF9EVERfTVVMVElQTEVfSUQiIGlkPSJYTUxfRFREX01VTFRJUExFX0lEIj5YTUxfRFREX01VTFRJUExFX0lEPC9hPiA9IDUyMCA6IDUyMAorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9fRE9DIiBpZD0iWE1MX0RURF9OT19ET0MiPlhNTF9EVERfTk9fRE9DPC9hPiA9IDUyMSA6IDUyMQorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9fRFREIiBpZD0iWE1MX0RURF9OT19EVEQiPlhNTF9EVERfTk9fRFREPC9hPiA9IDUyMiA6IDUyMgorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9fRUxFTV9OQU1FIiBpZD0iWE1MX0RURF9OT19FTEVNX05BTUUiPlhNTF9EVERfTk9fRUxFTV9OQU1FPC9hPiA9IDUyMyA6IDUyMworICAgIDxhIG5hbWU9IlhNTF9EVERfTk9fUFJFRklYIiBpZD0iWE1MX0RURF9OT19QUkVGSVgiPlhNTF9EVERfTk9fUFJFRklYPC9hPiA9IDUyNCA6IDUyNAorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9fUk9PVCIgaWQ9IlhNTF9EVERfTk9fUk9PVCI+WE1MX0RURF9OT19ST09UPC9hPiA9IDUyNSA6IDUyNQorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9UQVRJT05fUkVERUZJTkVEIiBpZD0iWE1MX0RURF9OT1RBVElPTl9SRURFRklORUQiPlhNTF9EVERfTk9UQVRJT05fUkVERUZJTkVEPC9hPiA9IDUyNiA6IDUyNgorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9UQVRJT05fVkFMVUUiIGlkPSJYTUxfRFREX05PVEFUSU9OX1ZBTFVFIj5YTUxfRFREX05PVEFUSU9OX1ZBTFVFPC9hPiA9IDUyNyA6IDUyNworICAgIDxhIG5hbWU9IlhNTF9EVERfTk9UX0VNUFRZIiBpZD0iWE1MX0RURF9OT1RfRU1QVFkiPlhNTF9EVERfTk9UX0VNUFRZPC9hPiA9IDUyOCA6IDUyOAorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9UX1BDREFUQSIgaWQ9IlhNTF9EVERfTk9UX1BDREFUQSI+WE1MX0RURF9OT1RfUENEQVRBPC9hPiA9IDUyOSA6IDUyOQorICAgIDxhIG5hbWU9IlhNTF9EVERfTk9UX1NUQU5EQUxPTkUiIGlkPSJYTUxfRFREX05PVF9TVEFOREFMT05FIj5YTUxfRFREX05PVF9TVEFOREFMT05FPC9hPiA9IDUzMCA6IDUzMAorICAgIDxhIG5hbWU9IlhNTF9EVERfUk9PVF9OQU1FIiBpZD0iWE1MX0RURF9ST09UX05BTUUiPlhNTF9EVERfUk9PVF9OQU1FPC9hPiA9IDUzMSA6IDUzMQorICAgIDxhIG5hbWU9IlhNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRSIgaWQ9IlhNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRSI+WE1MX0RURF9TVEFOREFMT05FX1dISVRFX1NQQUNFPC9hPiA9IDUzMiA6IDUzMgorICAgIDxhIG5hbWU9IlhNTF9EVERfVU5LTk9XTl9BVFRSSUJVVEUiIGlkPSJYTUxfRFREX1VOS05PV05fQVRUUklCVVRFIj5YTUxfRFREX1VOS05PV05fQVRUUklCVVRFPC9hPiA9IDUzMyA6IDUzMworICAgIDxhIG5hbWU9IlhNTF9EVERfVU5LTk9XTl9FTEVNIiBpZD0iWE1MX0RURF9VTktOT1dOX0VMRU0iPlhNTF9EVERfVU5LTk9XTl9FTEVNPC9hPiA9IDUzNCA6IDUzNAorICAgIDxhIG5hbWU9IlhNTF9EVERfVU5LTk9XTl9FTlRJVFkiIGlkPSJYTUxfRFREX1VOS05PV05fRU5USVRZIj5YTUxfRFREX1VOS05PV05fRU5USVRZPC9hPiA9IDUzNSA6IDUzNQorICAgIDxhIG5hbWU9IlhNTF9EVERfVU5LTk9XTl9JRCIgaWQ9IlhNTF9EVERfVU5LTk9XTl9JRCI+WE1MX0RURF9VTktOT1dOX0lEPC9hPiA9IDUzNiA6IDUzNgorICAgIDxhIG5hbWU9IlhNTF9EVERfVU5LTk9XTl9OT1RBVElPTiIgaWQ9IlhNTF9EVERfVU5LTk9XTl9OT1RBVElPTiI+WE1MX0RURF9VTktOT1dOX05PVEFUSU9OPC9hPiA9IDUzNyA6IDUzNworICAgIDxhIG5hbWU9IlhNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQiIGlkPSJYTUxfRFREX1NUQU5EQUxPTkVfREVGQVVMVEVEIj5YTUxfRFREX1NUQU5EQUxPTkVfREVGQVVMVEVEPC9hPiA9IDUzOCA6IDUzOAorICAgIDxhIG5hbWU9IlhNTF9EVERfWE1MSURfVkFMVUUiIGlkPSJYTUxfRFREX1hNTElEX1ZBTFVFIj5YTUxfRFREX1hNTElEX1ZBTFVFPC9hPiA9IDUzOSA6IDUzOQorICAgIDxhIG5hbWU9IlhNTF9EVERfWE1MSURfVFlQRSIgaWQ9IlhNTF9EVERfWE1MSURfVFlQRSI+WE1MX0RURF9YTUxJRF9UWVBFPC9hPiA9IDU0MCA6IDU0MAorICAgIDxhIG5hbWU9IlhNTF9EVERfRFVQX1RPS0VOIiBpZD0iWE1MX0RURF9EVVBfVE9LRU4iPlhNTF9EVERfRFVQX1RPS0VOPC9hPiA9IDU0MSA6IDU0MQorICAgIDxhIG5hbWU9IlhNTF9IVE1MX1NUUlVDVVJFX0VSUk9SIiBpZD0iWE1MX0hUTUxfU1RSVUNVUkVfRVJST1IiPlhNTF9IVE1MX1NUUlVDVVJFX0VSUk9SPC9hPiA9IDgwMAorICAgIDxhIG5hbWU9IlhNTF9IVE1MX1VOS05PV05fVEFHIiBpZD0iWE1MX0hUTUxfVU5LTk9XTl9UQUciPlhNTF9IVE1MX1VOS05PV05fVEFHPC9hPiA9IDgwMSA6IDgwMQorICAgIDxhIG5hbWU9IlhNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUiIgaWQ9IlhNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUiI+WE1MX1JOR1BfQU5ZTkFNRV9BVFRSX0FOQ0VTVE9SPC9hPiA9IDEwMDAKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9BVFRSX0NPTkZMSUNUIiBpZD0iWE1MX1JOR1BfQVRUUl9DT05GTElDVCI+WE1MX1JOR1BfQVRUUl9DT05GTElDVDwvYT4gPSAxMDAxIDogMTAwMQorICAgIDxhIG5hbWU9IlhNTF9STkdQX0FUVFJJQlVURV9DSElMRFJFTiIgaWQ9IlhNTF9STkdQX0FUVFJJQlVURV9DSElMRFJFTiI+WE1MX1JOR1BfQVRUUklCVVRFX0NISUxEUkVOPC9hPiA9IDEwMDIgOiAxMDAyCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfQVRUUklCVVRFX0NPTlRFTlQiIGlkPSJYTUxfUk5HUF9BVFRSSUJVVEVfQ09OVEVOVCI+WE1MX1JOR1BfQVRUUklCVVRFX0NPTlRFTlQ8L2E+ID0gMTAwMyA6IDEwMDMKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9BVFRSSUJVVEVfRU1QVFkiIGlkPSJYTUxfUk5HUF9BVFRSSUJVVEVfRU1QVFkiPlhNTF9STkdQX0FUVFJJQlVURV9FTVBUWTwvYT4gPSAxMDA0IDogMTAwNAorICAgIDxhIG5hbWU9IlhNTF9STkdQX0FUVFJJQlVURV9OT09QIiBpZD0iWE1MX1JOR1BfQVRUUklCVVRFX05PT1AiPlhNTF9STkdQX0FUVFJJQlVURV9OT09QPC9hPiA9IDEwMDUgOiAxMDA1CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfQ0hPSUNFX0NPTlRFTlQiIGlkPSJYTUxfUk5HUF9DSE9JQ0VfQ09OVEVOVCI+WE1MX1JOR1BfQ0hPSUNFX0NPTlRFTlQ8L2E+ID0gMTAwNiA6IDEwMDYKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9DSE9JQ0VfRU1QVFkiIGlkPSJYTUxfUk5HUF9DSE9JQ0VfRU1QVFkiPlhNTF9STkdQX0NIT0lDRV9FTVBUWTwvYT4gPSAxMDA3IDogMTAwNworICAgIDxhIG5hbWU9IlhNTF9STkdQX0NSRUFURV9GQUlMVVJFIiBpZD0iWE1MX1JOR1BfQ1JFQVRFX0ZBSUxVUkUiPlhNTF9STkdQX0NSRUFURV9GQUlMVVJFPC9hPiA9IDEwMDggOiAxMDA4CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfREFUQV9DT05URU5UIiBpZD0iWE1MX1JOR1BfREFUQV9DT05URU5UIj5YTUxfUk5HUF9EQVRBX0NPTlRFTlQ8L2E+ID0gMTAwOSA6IDEwMDkKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9ERUZfQ0hPSUNFX0FORF9JTlRFUkxFQVZFIiBpZD0iWE1MX1JOR1BfREVGX0NIT0lDRV9BTkRfSU5URVJMRUFWRSI+WE1MX1JOR1BfREVGX0NIT0lDRV9BTkRfSU5URVJMRUFWRTwvYT4gPSAxMDEwIDogMTAxMAorICAgIDxhIG5hbWU9IlhNTF9STkdQX0RFRklORV9DUkVBVEVfRkFJTEVEIiBpZD0iWE1MX1JOR1BfREVGSU5FX0NSRUFURV9GQUlMRUQiPlhNTF9STkdQX0RFRklORV9DUkVBVEVfRkFJTEVEPC9hPiA9IDEwMTEgOiAxMDExCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfREVGSU5FX0VNUFRZIiBpZD0iWE1MX1JOR1BfREVGSU5FX0VNUFRZIj5YTUxfUk5HUF9ERUZJTkVfRU1QVFk8L2E+ID0gMTAxMiA6IDEwMTIKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9ERUZJTkVfTUlTU0lORyIgaWQ9IlhNTF9STkdQX0RFRklORV9NSVNTSU5HIj5YTUxfUk5HUF9ERUZJTkVfTUlTU0lORzwvYT4gPSAxMDEzIDogMTAxMworICAgIDxhIG5hbWU9IlhNTF9STkdQX0RFRklORV9OQU1FX01JU1NJTkciIGlkPSJYTUxfUk5HUF9ERUZJTkVfTkFNRV9NSVNTSU5HIj5YTUxfUk5HUF9ERUZJTkVfTkFNRV9NSVNTSU5HPC9hPiA9IDEwMTQgOiAxMDE0CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRUxFTV9DT05URU5UX0VNUFRZIiBpZD0iWE1MX1JOR1BfRUxFTV9DT05URU5UX0VNUFRZIj5YTUxfUk5HUF9FTEVNX0NPTlRFTlRfRU1QVFk8L2E+ID0gMTAxNSA6IDEwMTUKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1IiIGlkPSJYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1IiPlhNTF9STkdQX0VMRU1fQ09OVEVOVF9FUlJPUjwvYT4gPSAxMDE2IDogMTAxNgorICAgIDxhIG5hbWU9IlhNTF9STkdQX0VMRU1FTlRfRU1QVFkiIGlkPSJYTUxfUk5HUF9FTEVNRU5UX0VNUFRZIj5YTUxfUk5HUF9FTEVNRU5UX0VNUFRZPC9hPiA9IDEwMTcgOiAxMDE3CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRUxFTUVOVF9DT05URU5UIiBpZD0iWE1MX1JOR1BfRUxFTUVOVF9DT05URU5UIj5YTUxfUk5HUF9FTEVNRU5UX0NPTlRFTlQ8L2E+ID0gMTAxOCA6IDEwMTgKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTEVNRU5UX05BTUUiIGlkPSJYTUxfUk5HUF9FTEVNRU5UX05BTUUiPlhNTF9STkdQX0VMRU1FTlRfTkFNRTwvYT4gPSAxMDE5IDogMTAxOQorICAgIDxhIG5hbWU9IlhNTF9STkdQX0VMRU1FTlRfTk9fQ09OVEVOVCIgaWQ9IlhNTF9STkdQX0VMRU1FTlRfTk9fQ09OVEVOVCI+WE1MX1JOR1BfRUxFTUVOVF9OT19DT05URU5UPC9hPiA9IDEwMjAgOiAxMDIwCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNUIiBpZD0iWE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNUIj5YTUxfUk5HUF9FTEVNX1RFWFRfQ09ORkxJQ1Q8L2E+ID0gMTAyMSA6IDEwMjEKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTVBUWSIgaWQ9IlhNTF9STkdQX0VNUFRZIj5YTUxfUk5HUF9FTVBUWTwvYT4gPSAxMDIyIDogMTAyMgorICAgIDxhIG5hbWU9IlhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCIgaWQ9IlhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCI+WE1MX1JOR1BfRU1QVFlfQ09OU1RSVUNUPC9hPiA9IDEwMjMgOiAxMDIzCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRU1QVFlfQ09OVEVOVCIgaWQ9IlhNTF9STkdQX0VNUFRZX0NPTlRFTlQiPlhNTF9STkdQX0VNUFRZX0NPTlRFTlQ8L2E+ID0gMTAyNCA6IDEwMjQKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FTVBUWV9OT1RfRU1QVFkiIGlkPSJYTUxfUk5HUF9FTVBUWV9OT1RfRU1QVFkiPlhNTF9STkdQX0VNUFRZX05PVF9FTVBUWTwvYT4gPSAxMDI1IDogMTAyNQorICAgIDxhIG5hbWU9IlhNTF9STkdQX0VSUk9SX1RZUEVfTElCIiBpZD0iWE1MX1JOR1BfRVJST1JfVFlQRV9MSUIiPlhNTF9STkdQX0VSUk9SX1RZUEVfTElCPC9hPiA9IDEwMjYgOiAxMDI2CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRVhDRVBUX0VNUFRZIiBpZD0iWE1MX1JOR1BfRVhDRVBUX0VNUFRZIj5YTUxfUk5HUF9FWENFUFRfRU1QVFk8L2E+ID0gMTAyNyA6IDEwMjcKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FWENFUFRfTUlTU0lORyIgaWQ9IlhNTF9STkdQX0VYQ0VQVF9NSVNTSU5HIj5YTUxfUk5HUF9FWENFUFRfTUlTU0lORzwvYT4gPSAxMDI4IDogMTAyOAorICAgIDxhIG5hbWU9IlhNTF9STkdQX0VYQ0VQVF9NVUxUSVBMRSIgaWQ9IlhNTF9STkdQX0VYQ0VQVF9NVUxUSVBMRSI+WE1MX1JOR1BfRVhDRVBUX01VTFRJUExFPC9hPiA9IDEwMjkgOiAxMDI5CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRVhDRVBUX05PX0NPTlRFTlQiIGlkPSJYTUxfUk5HUF9FWENFUFRfTk9fQ09OVEVOVCI+WE1MX1JOR1BfRVhDRVBUX05PX0NPTlRFTlQ8L2E+ID0gMTAzMCA6IDEwMzAKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9FWFRFUk5BTFJFRl9FTVRQWSIgaWQ9IlhNTF9STkdQX0VYVEVSTkFMUkVGX0VNVFBZIj5YTUxfUk5HUF9FWFRFUk5BTFJFRl9FTVRQWTwvYT4gPSAxMDMxIDogMTAzMQorICAgIDxhIG5hbWU9IlhNTF9STkdQX0VYVEVSTkFMX1JFRl9GQUlMVVJFIiBpZD0iWE1MX1JOR1BfRVhURVJOQUxfUkVGX0ZBSUxVUkUiPlhNTF9STkdQX0VYVEVSTkFMX1JFRl9GQUlMVVJFPC9hPiA9IDEwMzIgOiAxMDMyCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfRVhURVJOQUxSRUZfUkVDVVJTRSIgaWQ9IlhNTF9STkdQX0VYVEVSTkFMUkVGX1JFQ1VSU0UiPlhNTF9STkdQX0VYVEVSTkFMUkVGX1JFQ1VSU0U8L2E+ID0gMTAzMyA6IDEwMzMKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFIiBpZD0iWE1MX1JOR1BfRk9SQklEREVOX0FUVFJJQlVURSI+WE1MX1JOR1BfRk9SQklEREVOX0FUVFJJQlVURTwvYT4gPSAxMDM0IDogMTAzNAorICAgIDxhIG5hbWU9IlhNTF9STkdQX0ZPUkVJR05fRUxFTUVOVCIgaWQ9IlhNTF9STkdQX0ZPUkVJR05fRUxFTUVOVCI+WE1MX1JOR1BfRk9SRUlHTl9FTEVNRU5UPC9hPiA9IDEwMzUgOiAxMDM1CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfR1JBTU1BUl9DT05URU5UIiBpZD0iWE1MX1JOR1BfR1JBTU1BUl9DT05URU5UIj5YTUxfUk5HUF9HUkFNTUFSX0NPTlRFTlQ8L2E+ID0gMTAzNiA6IDEwMzYKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9HUkFNTUFSX0VNUFRZIiBpZD0iWE1MX1JOR1BfR1JBTU1BUl9FTVBUWSI+WE1MX1JOR1BfR1JBTU1BUl9FTVBUWTwvYT4gPSAxMDM3IDogMTAzNworICAgIDxhIG5hbWU9IlhNTF9STkdQX0dSQU1NQVJfTUlTU0lORyIgaWQ9IlhNTF9STkdQX0dSQU1NQVJfTUlTU0lORyI+WE1MX1JOR1BfR1JBTU1BUl9NSVNTSU5HPC9hPiA9IDEwMzggOiAxMDM4CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfR1JBTU1BUl9OT19TVEFSVCIgaWQ9IlhNTF9STkdQX0dSQU1NQVJfTk9fU1RBUlQiPlhNTF9STkdQX0dSQU1NQVJfTk9fU1RBUlQ8L2E+ID0gMTAzOSA6IDEwMzkKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNUIiBpZD0iWE1MX1JOR1BfR1JPVVBfQVRUUl9DT05GTElDVCI+WE1MX1JOR1BfR1JPVVBfQVRUUl9DT05GTElDVDwvYT4gPSAxMDQwIDogMTA0MAorICAgIDxhIG5hbWU9IlhNTF9STkdQX0hSRUZfRVJST1IiIGlkPSJYTUxfUk5HUF9IUkVGX0VSUk9SIj5YTUxfUk5HUF9IUkVGX0VSUk9SPC9hPiA9IDEwNDEgOiAxMDQxCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfSU5DTFVERV9FTVBUWSIgaWQ9IlhNTF9STkdQX0lOQ0xVREVfRU1QVFkiPlhNTF9STkdQX0lOQ0xVREVfRU1QVFk8L2E+ID0gMTA0MiA6IDEwNDIKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUiIGlkPSJYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUiPlhNTF9STkdQX0lOQ0xVREVfRkFJTFVSRTwvYT4gPSAxMDQzIDogMTA0MworICAgIDxhIG5hbWU9IlhNTF9STkdQX0lOQ0xVREVfUkVDVVJTRSIgaWQ9IlhNTF9STkdQX0lOQ0xVREVfUkVDVVJTRSI+WE1MX1JOR1BfSU5DTFVERV9SRUNVUlNFPC9hPiA9IDEwNDQgOiAxMDQ0CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfSU5URVJMRUFWRV9BREQiIGlkPSJYTUxfUk5HUF9JTlRFUkxFQVZFX0FERCI+WE1MX1JOR1BfSU5URVJMRUFWRV9BREQ8L2E+ID0gMTA0NSA6IDEwNDUKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQiIGlkPSJYTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQiPlhNTF9STkdQX0lOVEVSTEVBVkVfQ1JFQVRFX0ZBSUxFRDwvYT4gPSAxMDQ2IDogMTA0NgorICAgIDxhIG5hbWU9IlhNTF9STkdQX0lOVEVSTEVBVkVfRU1QVFkiIGlkPSJYTUxfUk5HUF9JTlRFUkxFQVZFX0VNUFRZIj5YTUxfUk5HUF9JTlRFUkxFQVZFX0VNUFRZPC9hPiA9IDEwNDcgOiAxMDQ3CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfSU5URVJMRUFWRV9OT19DT05URU5UIiBpZD0iWE1MX1JOR1BfSU5URVJMRUFWRV9OT19DT05URU5UIj5YTUxfUk5HUF9JTlRFUkxFQVZFX05PX0NPTlRFTlQ8L2E+ID0gMTA0OCA6IDEwNDgKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FIiBpZD0iWE1MX1JOR1BfSU5WQUxJRF9ERUZJTkVfTkFNRSI+WE1MX1JOR1BfSU5WQUxJRF9ERUZJTkVfTkFNRTwvYT4gPSAxMDQ5IDogMTA0OQorICAgIDxhIG5hbWU9IlhNTF9STkdQX0lOVkFMSURfVVJJIiBpZD0iWE1MX1JOR1BfSU5WQUxJRF9VUkkiPlhNTF9STkdQX0lOVkFMSURfVVJJPC9hPiA9IDEwNTAgOiAxMDUwCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfSU5WQUxJRF9WQUxVRSIgaWQ9IlhNTF9STkdQX0lOVkFMSURfVkFMVUUiPlhNTF9STkdQX0lOVkFMSURfVkFMVUU8L2E+ID0gMTA1MSA6IDEwNTEKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9NSVNTSU5HX0hSRUYiIGlkPSJYTUxfUk5HUF9NSVNTSU5HX0hSRUYiPlhNTF9STkdQX01JU1NJTkdfSFJFRjwvYT4gPSAxMDUyIDogMTA1MgorICAgIDxhIG5hbWU9IlhNTF9STkdQX05BTUVfTUlTU0lORyIgaWQ9IlhNTF9STkdQX05BTUVfTUlTU0lORyI+WE1MX1JOR1BfTkFNRV9NSVNTSU5HPC9hPiA9IDEwNTMgOiAxMDUzCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfTkVFRF9DT01CSU5FIiBpZD0iWE1MX1JOR1BfTkVFRF9DT01CSU5FIj5YTUxfUk5HUF9ORUVEX0NPTUJJTkU8L2E+ID0gMTA1NCA6IDEwNTQKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9OT1RBTExPV0VEX05PVF9FTVBUWSIgaWQ9IlhNTF9STkdQX05PVEFMTE9XRURfTk9UX0VNUFRZIj5YTUxfUk5HUF9OT1RBTExPV0VEX05PVF9FTVBUWTwvYT4gPSAxMDU1IDogMTA1NQorICAgIDxhIG5hbWU9IlhNTF9STkdQX05TTkFNRV9BVFRSX0FOQ0VTVE9SIiBpZD0iWE1MX1JOR1BfTlNOQU1FX0FUVFJfQU5DRVNUT1IiPlhNTF9STkdQX05TTkFNRV9BVFRSX0FOQ0VTVE9SPC9hPiA9IDEwNTYgOiAxMDU2CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfTlNOQU1FX05PX05TIiBpZD0iWE1MX1JOR1BfTlNOQU1FX05PX05TIj5YTUxfUk5HUF9OU05BTUVfTk9fTlM8L2E+ID0gMTA1NyA6IDEwNTcKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVJBTV9GT1JCSURERU4iIGlkPSJYTUxfUk5HUF9QQVJBTV9GT1JCSURERU4iPlhNTF9STkdQX1BBUkFNX0ZPUkJJRERFTjwvYT4gPSAxMDU4IDogMTA1OAorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORyIgaWQ9IlhNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORyI+WE1MX1JOR1BfUEFSQU1fTkFNRV9NSVNTSU5HPC9hPiA9IDEwNTkgOiAxMDU5CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFSRU5UUkVGX0NSRUFURV9GQUlMRUQiIGlkPSJYTUxfUk5HUF9QQVJFTlRSRUZfQ1JFQVRFX0ZBSUxFRCI+WE1MX1JOR1BfUEFSRU5UUkVGX0NSRUFURV9GQUlMRUQ8L2E+ID0gMTA2MCA6IDEwNjAKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVJFTlRSRUZfTkFNRV9JTlZBTElEIiBpZD0iWE1MX1JOR1BfUEFSRU5UUkVGX05BTUVfSU5WQUxJRCI+WE1MX1JOR1BfUEFSRU5UUkVGX05BTUVfSU5WQUxJRDwvYT4gPSAxMDYxIDogMTA2MQorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBUkVOVFJFRl9OT19OQU1FIiBpZD0iWE1MX1JOR1BfUEFSRU5UUkVGX05PX05BTUUiPlhNTF9STkdQX1BBUkVOVFJFRl9OT19OQU1FPC9hPiA9IDEwNjIgOiAxMDYyCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFSRU5UUkVGX05PX1BBUkVOVCIgaWQ9IlhNTF9STkdQX1BBUkVOVFJFRl9OT19QQVJFTlQiPlhNTF9STkdQX1BBUkVOVFJFRl9OT19QQVJFTlQ8L2E+ID0gMTA2MyA6IDEwNjMKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVJFTlRSRUZfTk9UX0VNUFRZIiBpZD0iWE1MX1JOR1BfUEFSRU5UUkVGX05PVF9FTVBUWSI+WE1MX1JOR1BfUEFSRU5UUkVGX05PVF9FTVBUWTwvYT4gPSAxMDY0IDogMTA2NAorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBUlNFX0VSUk9SIiBpZD0iWE1MX1JOR1BfUEFSU0VfRVJST1IiPlhNTF9STkdQX1BBUlNFX0VSUk9SPC9hPiA9IDEwNjUgOiAxMDY1CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0FOWU5BTUVfRVhDRVBUX0FOWU5BTUUiIGlkPSJYTUxfUk5HUF9QQVRfQU5ZTkFNRV9FWENFUFRfQU5ZTkFNRSI+WE1MX1JOR1BfUEFUX0FOWU5BTUVfRVhDRVBUX0FOWU5BTUU8L2E+ID0gMTA2NiA6IDEwNjYKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfQVRUUl9BVFRSIiBpZD0iWE1MX1JOR1BfUEFUX0FUVFJfQVRUUiI+WE1MX1JOR1BfUEFUX0FUVFJfQVRUUjwvYT4gPSAxMDY3IDogMTA2NworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9BVFRSX0VMRU0iIGlkPSJYTUxfUk5HUF9QQVRfQVRUUl9FTEVNIj5YTUxfUk5HUF9QQVRfQVRUUl9FTEVNPC9hPiA9IDEwNjggOiAxMDY4CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0FUVFIiIGlkPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfQVRUUiI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0FUVFI8L2E+ID0gMTA2OSA6IDEwNjkKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRUxFTSIgaWQ9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTEVNIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRUxFTTwvYT4gPSAxMDcwIDogMTA3MAorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTVBUWSIgaWQ9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTVBUWSI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VNUFRZPC9hPiA9IDEwNzEgOiAxMDcxCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQIiBpZD0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfR1JPVVA8L2E+ID0gMTA3MiA6IDEwNzIKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfSU5URVJMRUFWRSIgaWQ9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFIj5YTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfSU5URVJMRUFWRTwvYT4gPSAxMDczIDogMTA3MworICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9MSVNUIiBpZD0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0xJU1QiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9MSVNUPC9hPiA9IDEwNzQgOiAxMDc0CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX09ORU1PUkUiIGlkPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfT05FTU9SRSI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX09ORU1PUkU8L2E+ID0gMTA3NSA6IDEwNzUKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfUkVGIiBpZD0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1JFRiI+WE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1JFRjwvYT4gPSAxMDc2IDogMTA3NgorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhUIiBpZD0iWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1RFWFQiPlhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhUPC9hPiA9IDEwNzcgOiAxMDc3CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfQVRUUiIgaWQ9IlhNTF9STkdQX1BBVF9MSVNUX0FUVFIiPlhNTF9STkdQX1BBVF9MSVNUX0FUVFI8L2E+ID0gMTA3OCA6IDEwNzgKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfTElTVF9FTEVNIiBpZD0iWE1MX1JOR1BfUEFUX0xJU1RfRUxFTSI+WE1MX1JOR1BfUEFUX0xJU1RfRUxFTTwvYT4gPSAxMDc5IDogMTA3OQorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9MSVNUX0lOVEVSTEVBVkUiIGlkPSJYTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFIj5YTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFPC9hPiA9IDEwODAgOiAxMDgwCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX0xJU1RfTElTVCIgaWQ9IlhNTF9STkdQX1BBVF9MSVNUX0xJU1QiPlhNTF9STkdQX1BBVF9MSVNUX0xJU1Q8L2E+ID0gMTA4MSA6IDEwODEKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfTElTVF9SRUYiIGlkPSJYTUxfUk5HUF9QQVRfTElTVF9SRUYiPlhNTF9STkdQX1BBVF9MSVNUX1JFRjwvYT4gPSAxMDgyIDogMTA4MgorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9MSVNUX1RFWFQiIGlkPSJYTUxfUk5HUF9QQVRfTElTVF9URVhUIj5YTUxfUk5HUF9QQVRfTElTVF9URVhUPC9hPiA9IDEwODMgOiAxMDgzCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX05TTkFNRV9FWENFUFRfQU5ZTkFNRSIgaWQ9IlhNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX0FOWU5BTUUiPlhNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX0FOWU5BTUU8L2E+ID0gMTA4NCA6IDEwODQKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9OU05BTUUiIGlkPSJYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9OU05BTUUiPlhNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX05TTkFNRTwvYT4gPSAxMDg1IDogMTA4NQorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9PTkVNT1JFX0dST1VQX0FUVFIiIGlkPSJYTUxfUk5HUF9QQVRfT05FTU9SRV9HUk9VUF9BVFRSIj5YTUxfUk5HUF9QQVRfT05FTU9SRV9HUk9VUF9BVFRSPC9hPiA9IDEwODYgOiAxMDg2CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX09ORU1PUkVfSU5URVJMRUFWRV9BVFRSIiBpZD0iWE1MX1JOR1BfUEFUX09ORU1PUkVfSU5URVJMRUFWRV9BVFRSIj5YTUxfUk5HUF9QQVRfT05FTU9SRV9JTlRFUkxFQVZFX0FUVFI8L2E+ID0gMTA4NyA6IDEwODcKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfQVRUUiIgaWQ9IlhNTF9STkdQX1BBVF9TVEFSVF9BVFRSIj5YTUxfUk5HUF9QQVRfU1RBUlRfQVRUUjwvYT4gPSAxMDg4IDogMTA4OAorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9TVEFSVF9EQVRBIiBpZD0iWE1MX1JOR1BfUEFUX1NUQVJUX0RBVEEiPlhNTF9STkdQX1BBVF9TVEFSVF9EQVRBPC9hPiA9IDEwODkgOiAxMDg5CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX0VNUFRZIiBpZD0iWE1MX1JOR1BfUEFUX1NUQVJUX0VNUFRZIj5YTUxfUk5HUF9QQVRfU1RBUlRfRU1QVFk8L2E+ID0gMTA5MCA6IDEwOTAKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAiIGlkPSJYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAiPlhNTF9STkdQX1BBVF9TVEFSVF9HUk9VUDwvYT4gPSAxMDkxIDogMTA5MQorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9TVEFSVF9JTlRFUkxFQVZFIiBpZD0iWE1MX1JOR1BfUEFUX1NUQVJUX0lOVEVSTEVBVkUiPlhNTF9STkdQX1BBVF9TVEFSVF9JTlRFUkxFQVZFPC9hPiA9IDEwOTIgOiAxMDkyCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX0xJU1QiIGlkPSJYTUxfUk5HUF9QQVRfU1RBUlRfTElTVCI+WE1MX1JOR1BfUEFUX1NUQVJUX0xJU1Q8L2E+ID0gMTA5MyA6IDEwOTMKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QQVRfU1RBUlRfT05FTU9SRSIgaWQ9IlhNTF9STkdQX1BBVF9TVEFSVF9PTkVNT1JFIj5YTUxfUk5HUF9QQVRfU1RBUlRfT05FTU9SRTwvYT4gPSAxMDk0IDogMTA5NAorICAgIDxhIG5hbWU9IlhNTF9STkdQX1BBVF9TVEFSVF9URVhUIiBpZD0iWE1MX1JOR1BfUEFUX1NUQVJUX1RFWFQiPlhNTF9STkdQX1BBVF9TVEFSVF9URVhUPC9hPiA9IDEwOTUgOiAxMDk1CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUEFUX1NUQVJUX1ZBTFVFIiBpZD0iWE1MX1JOR1BfUEFUX1NUQVJUX1ZBTFVFIj5YTUxfUk5HUF9QQVRfU1RBUlRfVkFMVUU8L2E+ID0gMTA5NiA6IDEwOTYKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9QUkVGSVhfVU5ERUZJTkVEIiBpZD0iWE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRCI+WE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRDwvYT4gPSAxMDk3IDogMTA5NworICAgIDxhIG5hbWU9IlhNTF9STkdQX1JFRl9DUkVBVEVfRkFJTEVEIiBpZD0iWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQiPlhNTF9STkdQX1JFRl9DUkVBVEVfRkFJTEVEPC9hPiA9IDEwOTggOiAxMDk4CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUkVGX0NZQ0xFIiBpZD0iWE1MX1JOR1BfUkVGX0NZQ0xFIj5YTUxfUk5HUF9SRUZfQ1lDTEU8L2E+ID0gMTA5OSA6IDEwOTkKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9SRUZfTkFNRV9JTlZBTElEIiBpZD0iWE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRCI+WE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRDwvYT4gPSAxMTAwIDogMTEwMAorICAgIDxhIG5hbWU9IlhNTF9STkdQX1JFRl9OT19ERUYiIGlkPSJYTUxfUk5HUF9SRUZfTk9fREVGIj5YTUxfUk5HUF9SRUZfTk9fREVGPC9hPiA9IDExMDEgOiAxMTAxCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfUkVGX05PX05BTUUiIGlkPSJYTUxfUk5HUF9SRUZfTk9fTkFNRSI+WE1MX1JOR1BfUkVGX05PX05BTUU8L2E+ID0gMTEwMiA6IDExMDIKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9SRUZfTk9UX0VNUFRZIiBpZD0iWE1MX1JOR1BfUkVGX05PVF9FTVBUWSI+WE1MX1JOR1BfUkVGX05PVF9FTVBUWTwvYT4gPSAxMTAzIDogMTEwMworICAgIDxhIG5hbWU9IlhNTF9STkdQX1NUQVJUX0NIT0lDRV9BTkRfSU5URVJMRUFWRSIgaWQ9IlhNTF9STkdQX1NUQVJUX0NIT0lDRV9BTkRfSU5URVJMRUFWRSI+WE1MX1JOR1BfU1RBUlRfQ0hPSUNFX0FORF9JTlRFUkxFQVZFPC9hPiA9IDExMDQgOiAxMTA0CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfU1RBUlRfQ09OVEVOVCIgaWQ9IlhNTF9STkdQX1NUQVJUX0NPTlRFTlQiPlhNTF9STkdQX1NUQVJUX0NPTlRFTlQ8L2E+ID0gMTEwNSA6IDExMDUKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9TVEFSVF9FTVBUWSIgaWQ9IlhNTF9STkdQX1NUQVJUX0VNUFRZIj5YTUxfUk5HUF9TVEFSVF9FTVBUWTwvYT4gPSAxMTA2IDogMTEwNgorICAgIDxhIG5hbWU9IlhNTF9STkdQX1NUQVJUX01JU1NJTkciIGlkPSJYTUxfUk5HUF9TVEFSVF9NSVNTSU5HIj5YTUxfUk5HUF9TVEFSVF9NSVNTSU5HPC9hPiA9IDExMDcgOiAxMTA3CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVEVYVF9FWFBFQ1RFRCIgaWQ9IlhNTF9STkdQX1RFWFRfRVhQRUNURUQiPlhNTF9STkdQX1RFWFRfRVhQRUNURUQ8L2E+ID0gMTEwOCA6IDExMDgKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9URVhUX0hBU19DSElMRCIgaWQ9IlhNTF9STkdQX1RFWFRfSEFTX0NISUxEIj5YTUxfUk5HUF9URVhUX0hBU19DSElMRDwvYT4gPSAxMTA5IDogMTEwOQorICAgIDxhIG5hbWU9IlhNTF9STkdQX1RZUEVfTUlTU0lORyIgaWQ9IlhNTF9STkdQX1RZUEVfTUlTU0lORyI+WE1MX1JOR1BfVFlQRV9NSVNTSU5HPC9hPiA9IDExMTAgOiAxMTEwCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVFlQRV9OT1RfRk9VTkQiIGlkPSJYTUxfUk5HUF9UWVBFX05PVF9GT1VORCI+WE1MX1JOR1BfVFlQRV9OT1RfRk9VTkQ8L2E+ID0gMTExMSA6IDExMTEKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9UWVBFX1ZBTFVFIiBpZD0iWE1MX1JOR1BfVFlQRV9WQUxVRSI+WE1MX1JOR1BfVFlQRV9WQUxVRTwvYT4gPSAxMTEyIDogMTExMgorICAgIDxhIG5hbWU9IlhNTF9STkdQX1VOS05PV05fQVRUUklCVVRFIiBpZD0iWE1MX1JOR1BfVU5LTk9XTl9BVFRSSUJVVEUiPlhNTF9STkdQX1VOS05PV05fQVRUUklCVVRFPC9hPiA9IDExMTMgOiAxMTEzCisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FIiBpZD0iWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FIj5YTUxfUk5HUF9VTktOT1dOX0NPTUJJTkU8L2E+ID0gMTExNCA6IDExMTQKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9VTktOT1dOX0NPTlNUUlVDVCIgaWQ9IlhNTF9STkdQX1VOS05PV05fQ09OU1RSVUNUIj5YTUxfUk5HUF9VTktOT1dOX0NPTlNUUlVDVDwvYT4gPSAxMTE1IDogMTExNQorICAgIDxhIG5hbWU9IlhNTF9STkdQX1VOS05PV05fVFlQRV9MSUIiIGlkPSJYTUxfUk5HUF9VTktOT1dOX1RZUEVfTElCIj5YTUxfUk5HUF9VTktOT1dOX1RZUEVfTElCPC9hPiA9IDExMTYgOiAxMTE2CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVVJJX0ZSQUdNRU5UIiBpZD0iWE1MX1JOR1BfVVJJX0ZSQUdNRU5UIj5YTUxfUk5HUF9VUklfRlJBR01FTlQ8L2E+ID0gMTExNyA6IDExMTcKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9VUklfTk9UX0FCU09MVVRFIiBpZD0iWE1MX1JOR1BfVVJJX05PVF9BQlNPTFVURSI+WE1MX1JOR1BfVVJJX05PVF9BQlNPTFVURTwvYT4gPSAxMTE4IDogMTExOAorICAgIDxhIG5hbWU9IlhNTF9STkdQX1ZBTFVFX0VNUFRZIiBpZD0iWE1MX1JOR1BfVkFMVUVfRU1QVFkiPlhNTF9STkdQX1ZBTFVFX0VNUFRZPC9hPiA9IDExMTkgOiAxMTE5CisgICAgPGEgbmFtZT0iWE1MX1JOR1BfVkFMVUVfTk9fQ09OVEVOVCIgaWQ9IlhNTF9STkdQX1ZBTFVFX05PX0NPTlRFTlQiPlhNTF9STkdQX1ZBTFVFX05PX0NPTlRFTlQ8L2E+ID0gMTEyMCA6IDExMjAKKyAgICA8YSBuYW1lPSJYTUxfUk5HUF9YTUxOU19OQU1FIiBpZD0iWE1MX1JOR1BfWE1MTlNfTkFNRSI+WE1MX1JOR1BfWE1MTlNfTkFNRTwvYT4gPSAxMTIxIDogMTEyMQorICAgIDxhIG5hbWU9IlhNTF9STkdQX1hNTF9OUyIgaWQ9IlhNTF9STkdQX1hNTF9OUyI+WE1MX1JOR1BfWE1MX05TPC9hPiA9IDExMjIgOiAxMTIyCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX0VYUFJFU1NJT05fT0siIGlkPSJYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSyI+WE1MX1hQQVRIX0VYUFJFU1NJT05fT0s8L2E+ID0gMTIwMAorICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9OVU1CRVJfRVJST1IiIGlkPSJYTUxfWFBBVEhfTlVNQkVSX0VSUk9SIj5YTUxfWFBBVEhfTlVNQkVSX0VSUk9SPC9hPiA9IDEyMDEgOiAxMjAxCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiIgaWQ9IlhNTF9YUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1IiPlhNTF9YUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1I8L2E+ID0gMTIwMiA6IDEyMDIKKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiIgaWQ9IlhNTF9YUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SIj5YTUxfWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUjwvYT4gPSAxMjAzIDogMTIwMworICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IiIGlkPSJYTUxfWFBBVEhfVkFSSUFCTEVfUkVGX0VSUk9SIj5YTUxfWFBBVEhfVkFSSUFCTEVfUkVGX0VSUk9SPC9hPiA9IDEyMDQgOiAxMjA0CisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SIiBpZD0iWE1MX1hQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SIj5YTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1I8L2E+ID0gMTIwNSA6IDEyMDUKKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IiIGlkPSJYTUxfWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IiPlhNTF9YUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUjwvYT4gPSAxMjA2IDogMTIwNgorICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9FWFBSX0VSUk9SIiBpZD0iWE1MX1hQQVRIX0VYUFJfRVJST1IiPlhNTF9YUEFUSF9FWFBSX0VSUk9SPC9hPiA9IDEyMDcgOiAxMjA3CisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX1VOQ0xPU0VEX0VSUk9SIiBpZD0iWE1MX1hQQVRIX1VOQ0xPU0VEX0VSUk9SIj5YTUxfWFBBVEhfVU5DTE9TRURfRVJST1I8L2E+ID0gMTIwOCA6IDEyMDgKKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfVU5LTk9XTl9GVU5DX0VSUk9SIiBpZD0iWE1MX1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUiI+WE1MX1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUjwvYT4gPSAxMjA5IDogMTIwOQorICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX09QRVJBTkQiIGlkPSJYTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5EIj5YTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5EPC9hPiA9IDEyMTAgOiAxMjEwCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX0lOVkFMSURfVFlQRSIgaWQ9IlhNTF9YUEFUSF9JTlZBTElEX1RZUEUiPlhNTF9YUEFUSF9JTlZBTElEX1RZUEU8L2E+ID0gMTIxMSA6IDEyMTEKKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfSU5WQUxJRF9BUklUWSIgaWQ9IlhNTF9YUEFUSF9JTlZBTElEX0FSSVRZIj5YTUxfWFBBVEhfSU5WQUxJRF9BUklUWTwvYT4gPSAxMjEyIDogMTIxMgorICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfU0laRSIgaWQ9IlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfU0laRSI+WE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9TSVpFPC9hPiA9IDEyMTMgOiAxMjEzCisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTiIgaWQ9IlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iPlhNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT048L2E+ID0gMTIxNCA6IDEyMTQKKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfTUVNT1JZX0VSUk9SIiBpZD0iWE1MX1hQQVRIX01FTU9SWV9FUlJPUiI+WE1MX1hQQVRIX01FTU9SWV9FUlJPUjwvYT4gPSAxMjE1IDogMTIxNQorICAgIDxhIG5hbWU9IlhNTF9YUFRSX1NZTlRBWF9FUlJPUiIgaWQ9IlhNTF9YUFRSX1NZTlRBWF9FUlJPUiI+WE1MX1hQVFJfU1lOVEFYX0VSUk9SPC9hPiA9IDEyMTYgOiAxMjE2CisgICAgPGEgbmFtZT0iWE1MX1hQVFJfUkVTT1VSQ0VfRVJST1IiIGlkPSJYTUxfWFBUUl9SRVNPVVJDRV9FUlJPUiI+WE1MX1hQVFJfUkVTT1VSQ0VfRVJST1I8L2E+ID0gMTIxNyA6IDEyMTcKKyAgICA8YSBuYW1lPSJYTUxfWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1IiIGlkPSJYTUxfWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1IiPlhNTF9YUFRSX1NVQl9SRVNPVVJDRV9FUlJPUjwvYT4gPSAxMjE4IDogMTIxOAorICAgIDxhIG5hbWU9IlhNTF9YUEFUSF9VTkRFRl9QUkVGSVhfRVJST1IiIGlkPSJYTUxfWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SIj5YTUxfWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SPC9hPiA9IDEyMTkgOiAxMjE5CisgICAgPGEgbmFtZT0iWE1MX1hQQVRIX0VOQ09ESU5HX0VSUk9SIiBpZD0iWE1MX1hQQVRIX0VOQ09ESU5HX0VSUk9SIj5YTUxfWFBBVEhfRU5DT0RJTkdfRVJST1I8L2E+ID0gMTIyMCA6IDEyMjAKKyAgICA8YSBuYW1lPSJYTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SIiBpZD0iWE1MX1hQQVRIX0lOVkFMSURfQ0hBUl9FUlJPUiI+WE1MX1hQQVRIX0lOVkFMSURfQ0hBUl9FUlJPUjwvYT4gPSAxMjIxIDogMTIyMQorICAgIDxhIG5hbWU9IlhNTF9UUkVFX0lOVkFMSURfSEVYIiBpZD0iWE1MX1RSRUVfSU5WQUxJRF9IRVgiPlhNTF9UUkVFX0lOVkFMSURfSEVYPC9hPiA9IDEzMDAKKyAgICA8YSBuYW1lPSJYTUxfVFJFRV9JTlZBTElEX0RFQyIgaWQ9IlhNTF9UUkVFX0lOVkFMSURfREVDIj5YTUxfVFJFRV9JTlZBTElEX0RFQzwvYT4gPSAxMzAxIDogMTMwMQorICAgIDxhIG5hbWU9IlhNTF9UUkVFX1VOVEVSTUlOQVRFRF9FTlRJVFkiIGlkPSJYTUxfVFJFRV9VTlRFUk1JTkFURURfRU5USVRZIj5YTUxfVFJFRV9VTlRFUk1JTkFURURfRU5USVRZPC9hPiA9IDEzMDIgOiAxMzAyCisgICAgPGEgbmFtZT0iWE1MX1RSRUVfTk9UX1VURjgiIGlkPSJYTUxfVFJFRV9OT1RfVVRGOCI+WE1MX1RSRUVfTk9UX1VURjg8L2E+ID0gMTMwMyA6IDEzMDMKKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9OT1RfVVRGOCIgaWQ9IlhNTF9TQVZFX05PVF9VVEY4Ij5YTUxfU0FWRV9OT1RfVVRGODwvYT4gPSAxNDAwCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfQ0hBUl9JTlZBTElEIiBpZD0iWE1MX1NBVkVfQ0hBUl9JTlZBTElEIj5YTUxfU0FWRV9DSEFSX0lOVkFMSUQ8L2E+ID0gMTQwMSA6IDE0MDEKKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9OT19ET0NUWVBFIiBpZD0iWE1MX1NBVkVfTk9fRE9DVFlQRSI+WE1MX1NBVkVfTk9fRE9DVFlQRTwvYT4gPSAxNDAyIDogMTQwMgorICAgIDxhIG5hbWU9IlhNTF9TQVZFX1VOS05PV05fRU5DT0RJTkciIGlkPSJYTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HIj5YTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HPC9hPiA9IDE0MDMgOiAxNDAzCisgICAgPGEgbmFtZT0iWE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SIiBpZD0iWE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SIj5YTUxfUkVHRVhQX0NPTVBJTEVfRVJST1I8L2E+ID0gMTQ1MAorICAgIDxhIG5hbWU9IlhNTF9JT19VTktOT1dOIiBpZD0iWE1MX0lPX1VOS05PV04iPlhNTF9JT19VTktOT1dOPC9hPiA9IDE1MDAKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUFDQ0VTIiBpZD0iWE1MX0lPX0VBQ0NFUyI+WE1MX0lPX0VBQ0NFUzwvYT4gPSAxNTAxIDogMTUwMQorICAgIDxhIG5hbWU9IlhNTF9JT19FQUdBSU4iIGlkPSJYTUxfSU9fRUFHQUlOIj5YTUxfSU9fRUFHQUlOPC9hPiA9IDE1MDIgOiAxNTAyCisgICAgPGEgbmFtZT0iWE1MX0lPX0VCQURGIiBpZD0iWE1MX0lPX0VCQURGIj5YTUxfSU9fRUJBREY8L2E+ID0gMTUwMyA6IDE1MDMKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUJBRE1TRyIgaWQ9IlhNTF9JT19FQkFETVNHIj5YTUxfSU9fRUJBRE1TRzwvYT4gPSAxNTA0IDogMTUwNAorICAgIDxhIG5hbWU9IlhNTF9JT19FQlVTWSIgaWQ9IlhNTF9JT19FQlVTWSI+WE1MX0lPX0VCVVNZPC9hPiA9IDE1MDUgOiAxNTA1CisgICAgPGEgbmFtZT0iWE1MX0lPX0VDQU5DRUxFRCIgaWQ9IlhNTF9JT19FQ0FOQ0VMRUQiPlhNTF9JT19FQ0FOQ0VMRUQ8L2E+ID0gMTUwNiA6IDE1MDYKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUNISUxEIiBpZD0iWE1MX0lPX0VDSElMRCI+WE1MX0lPX0VDSElMRDwvYT4gPSAxNTA3IDogMTUwNworICAgIDxhIG5hbWU9IlhNTF9JT19FREVBRExLIiBpZD0iWE1MX0lPX0VERUFETEsiPlhNTF9JT19FREVBRExLPC9hPiA9IDE1MDggOiAxNTA4CisgICAgPGEgbmFtZT0iWE1MX0lPX0VET00iIGlkPSJYTUxfSU9fRURPTSI+WE1MX0lPX0VET008L2E+ID0gMTUwOSA6IDE1MDkKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUVYSVNUIiBpZD0iWE1MX0lPX0VFWElTVCI+WE1MX0lPX0VFWElTVDwvYT4gPSAxNTEwIDogMTUxMAorICAgIDxhIG5hbWU9IlhNTF9JT19FRkFVTFQiIGlkPSJYTUxfSU9fRUZBVUxUIj5YTUxfSU9fRUZBVUxUPC9hPiA9IDE1MTEgOiAxNTExCisgICAgPGEgbmFtZT0iWE1MX0lPX0VGQklHIiBpZD0iWE1MX0lPX0VGQklHIj5YTUxfSU9fRUZCSUc8L2E+ID0gMTUxMiA6IDE1MTIKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUlOUFJPR1JFU1MiIGlkPSJYTUxfSU9fRUlOUFJPR1JFU1MiPlhNTF9JT19FSU5QUk9HUkVTUzwvYT4gPSAxNTEzIDogMTUxMworICAgIDxhIG5hbWU9IlhNTF9JT19FSU5UUiIgaWQ9IlhNTF9JT19FSU5UUiI+WE1MX0lPX0VJTlRSPC9hPiA9IDE1MTQgOiAxNTE0CisgICAgPGEgbmFtZT0iWE1MX0lPX0VJTlZBTCIgaWQ9IlhNTF9JT19FSU5WQUwiPlhNTF9JT19FSU5WQUw8L2E+ID0gMTUxNSA6IDE1MTUKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUlPIiBpZD0iWE1MX0lPX0VJTyI+WE1MX0lPX0VJTzwvYT4gPSAxNTE2IDogMTUxNgorICAgIDxhIG5hbWU9IlhNTF9JT19FSVNESVIiIGlkPSJYTUxfSU9fRUlTRElSIj5YTUxfSU9fRUlTRElSPC9hPiA9IDE1MTcgOiAxNTE3CisgICAgPGEgbmFtZT0iWE1MX0lPX0VNRklMRSIgaWQ9IlhNTF9JT19FTUZJTEUiPlhNTF9JT19FTUZJTEU8L2E+ID0gMTUxOCA6IDE1MTgKKyAgICA8YSBuYW1lPSJYTUxfSU9fRU1MSU5LIiBpZD0iWE1MX0lPX0VNTElOSyI+WE1MX0lPX0VNTElOSzwvYT4gPSAxNTE5IDogMTUxOQorICAgIDxhIG5hbWU9IlhNTF9JT19FTVNHU0laRSIgaWQ9IlhNTF9JT19FTVNHU0laRSI+WE1MX0lPX0VNU0dTSVpFPC9hPiA9IDE1MjAgOiAxNTIwCisgICAgPGEgbmFtZT0iWE1MX0lPX0VOQU1FVE9PTE9ORyIgaWQ9IlhNTF9JT19FTkFNRVRPT0xPTkciPlhNTF9JT19FTkFNRVRPT0xPTkc8L2E+ID0gMTUyMSA6IDE1MjEKKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5GSUxFIiBpZD0iWE1MX0lPX0VORklMRSI+WE1MX0lPX0VORklMRTwvYT4gPSAxNTIyIDogMTUyMgorICAgIDxhIG5hbWU9IlhNTF9JT19FTk9ERVYiIGlkPSJYTUxfSU9fRU5PREVWIj5YTUxfSU9fRU5PREVWPC9hPiA9IDE1MjMgOiAxNTIzCisgICAgPGEgbmFtZT0iWE1MX0lPX0VOT0VOVCIgaWQ9IlhNTF9JT19FTk9FTlQiPlhNTF9JT19FTk9FTlQ8L2E+ID0gMTUyNCA6IDE1MjQKKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PRVhFQyIgaWQ9IlhNTF9JT19FTk9FWEVDIj5YTUxfSU9fRU5PRVhFQzwvYT4gPSAxNTI1IDogMTUyNQorICAgIDxhIG5hbWU9IlhNTF9JT19FTk9MQ0siIGlkPSJYTUxfSU9fRU5PTENLIj5YTUxfSU9fRU5PTENLPC9hPiA9IDE1MjYgOiAxNTI2CisgICAgPGEgbmFtZT0iWE1MX0lPX0VOT01FTSIgaWQ9IlhNTF9JT19FTk9NRU0iPlhNTF9JT19FTk9NRU08L2E+ID0gMTUyNyA6IDE1MjcKKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PU1BDIiBpZD0iWE1MX0lPX0VOT1NQQyI+WE1MX0lPX0VOT1NQQzwvYT4gPSAxNTI4IDogMTUyOAorICAgIDxhIG5hbWU9IlhNTF9JT19FTk9TWVMiIGlkPSJYTUxfSU9fRU5PU1lTIj5YTUxfSU9fRU5PU1lTPC9hPiA9IDE1MjkgOiAxNTI5CisgICAgPGEgbmFtZT0iWE1MX0lPX0VOT1RESVIiIGlkPSJYTUxfSU9fRU5PVERJUiI+WE1MX0lPX0VOT1RESVI8L2E+ID0gMTUzMCA6IDE1MzAKKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5PVEVNUFRZIiBpZD0iWE1MX0lPX0VOT1RFTVBUWSI+WE1MX0lPX0VOT1RFTVBUWTwvYT4gPSAxNTMxIDogMTUzMQorICAgIDxhIG5hbWU9IlhNTF9JT19FTk9UU1VQIiBpZD0iWE1MX0lPX0VOT1RTVVAiPlhNTF9JT19FTk9UU1VQPC9hPiA9IDE1MzIgOiAxNTMyCisgICAgPGEgbmFtZT0iWE1MX0lPX0VOT1RUWSIgaWQ9IlhNTF9JT19FTk9UVFkiPlhNTF9JT19FTk9UVFk8L2E+ID0gMTUzMyA6IDE1MzMKKyAgICA8YSBuYW1lPSJYTUxfSU9fRU5YSU8iIGlkPSJYTUxfSU9fRU5YSU8iPlhNTF9JT19FTlhJTzwvYT4gPSAxNTM0IDogMTUzNAorICAgIDxhIG5hbWU9IlhNTF9JT19FUEVSTSIgaWQ9IlhNTF9JT19FUEVSTSI+WE1MX0lPX0VQRVJNPC9hPiA9IDE1MzUgOiAxNTM1CisgICAgPGEgbmFtZT0iWE1MX0lPX0VQSVBFIiBpZD0iWE1MX0lPX0VQSVBFIj5YTUxfSU9fRVBJUEU8L2E+ID0gMTUzNiA6IDE1MzYKKyAgICA8YSBuYW1lPSJYTUxfSU9fRVJBTkdFIiBpZD0iWE1MX0lPX0VSQU5HRSI+WE1MX0lPX0VSQU5HRTwvYT4gPSAxNTM3IDogMTUzNworICAgIDxhIG5hbWU9IlhNTF9JT19FUk9GUyIgaWQ9IlhNTF9JT19FUk9GUyI+WE1MX0lPX0VST0ZTPC9hPiA9IDE1MzggOiAxNTM4CisgICAgPGEgbmFtZT0iWE1MX0lPX0VTUElQRSIgaWQ9IlhNTF9JT19FU1BJUEUiPlhNTF9JT19FU1BJUEU8L2E+ID0gMTUzOSA6IDE1MzkKKyAgICA8YSBuYW1lPSJYTUxfSU9fRVNSQ0giIGlkPSJYTUxfSU9fRVNSQ0giPlhNTF9JT19FU1JDSDwvYT4gPSAxNTQwIDogMTU0MAorICAgIDxhIG5hbWU9IlhNTF9JT19FVElNRURPVVQiIGlkPSJYTUxfSU9fRVRJTUVET1VUIj5YTUxfSU9fRVRJTUVET1VUPC9hPiA9IDE1NDEgOiAxNTQxCisgICAgPGEgbmFtZT0iWE1MX0lPX0VYREVWIiBpZD0iWE1MX0lPX0VYREVWIj5YTUxfSU9fRVhERVY8L2E+ID0gMTU0MiA6IDE1NDIKKyAgICA8YSBuYW1lPSJYTUxfSU9fTkVUV09SS19BVFRFTVBUIiBpZD0iWE1MX0lPX05FVFdPUktfQVRURU1QVCI+WE1MX0lPX05FVFdPUktfQVRURU1QVDwvYT4gPSAxNTQzIDogMTU0MworICAgIDxhIG5hbWU9IlhNTF9JT19FTkNPREVSIiBpZD0iWE1MX0lPX0VOQ09ERVIiPlhNTF9JT19FTkNPREVSPC9hPiA9IDE1NDQgOiAxNTQ0CisgICAgPGEgbmFtZT0iWE1MX0lPX0ZMVVNIIiBpZD0iWE1MX0lPX0ZMVVNIIj5YTUxfSU9fRkxVU0g8L2E+ID0gMTU0NSA6IDE1NDUKKyAgICA8YSBuYW1lPSJYTUxfSU9fV1JJVEUiIGlkPSJYTUxfSU9fV1JJVEUiPlhNTF9JT19XUklURTwvYT4gPSAxNTQ2IDogMTU0NgorICAgIDxhIG5hbWU9IlhNTF9JT19OT19JTlBVVCIgaWQ9IlhNTF9JT19OT19JTlBVVCI+WE1MX0lPX05PX0lOUFVUPC9hPiA9IDE1NDcgOiAxNTQ3CisgICAgPGEgbmFtZT0iWE1MX0lPX0JVRkZFUl9GVUxMIiBpZD0iWE1MX0lPX0JVRkZFUl9GVUxMIj5YTUxfSU9fQlVGRkVSX0ZVTEw8L2E+ID0gMTU0OCA6IDE1NDgKKyAgICA8YSBuYW1lPSJYTUxfSU9fTE9BRF9FUlJPUiIgaWQ9IlhNTF9JT19MT0FEX0VSUk9SIj5YTUxfSU9fTE9BRF9FUlJPUjwvYT4gPSAxNTQ5IDogMTU0OQorICAgIDxhIG5hbWU9IlhNTF9JT19FTk9UU09DSyIgaWQ9IlhNTF9JT19FTk9UU09DSyI+WE1MX0lPX0VOT1RTT0NLPC9hPiA9IDE1NTAgOiAxNTUwCisgICAgPGEgbmFtZT0iWE1MX0lPX0VJU0NPTk4iIGlkPSJYTUxfSU9fRUlTQ09OTiI+WE1MX0lPX0VJU0NPTk48L2E+ID0gMTU1MSA6IDE1NTEKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUNPTk5SRUZVU0VEIiBpZD0iWE1MX0lPX0VDT05OUkVGVVNFRCI+WE1MX0lPX0VDT05OUkVGVVNFRDwvYT4gPSAxNTUyIDogMTU1MgorICAgIDxhIG5hbWU9IlhNTF9JT19FTkVUVU5SRUFDSCIgaWQ9IlhNTF9JT19FTkVUVU5SRUFDSCI+WE1MX0lPX0VORVRVTlJFQUNIPC9hPiA9IDE1NTMgOiAxNTUzCisgICAgPGEgbmFtZT0iWE1MX0lPX0VBRERSSU5VU0UiIGlkPSJYTUxfSU9fRUFERFJJTlVTRSI+WE1MX0lPX0VBRERSSU5VU0U8L2E+ID0gMTU1NCA6IDE1NTQKKyAgICA8YSBuYW1lPSJYTUxfSU9fRUFMUkVBRFkiIGlkPSJYTUxfSU9fRUFMUkVBRFkiPlhNTF9JT19FQUxSRUFEWTwvYT4gPSAxNTU1IDogMTU1NQorICAgIDxhIG5hbWU9IlhNTF9JT19FQUZOT1NVUFBPUlQiIGlkPSJYTUxfSU9fRUFGTk9TVVBQT1JUIj5YTUxfSU9fRUFGTk9TVVBQT1JUPC9hPiA9IDE1NTYgOiAxNTU2CisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX1JFQ1VSU0lPTiIgaWQ9IlhNTF9YSU5DTFVERV9SRUNVUlNJT04iPlhNTF9YSU5DTFVERV9SRUNVUlNJT048L2E+ID0gMTYwMAorICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9QQVJTRV9WQUxVRSIgaWQ9IlhNTF9YSU5DTFVERV9QQVJTRV9WQUxVRSI+WE1MX1hJTkNMVURFX1BBUlNFX1ZBTFVFPC9hPiA9IDE2MDEgOiAxNjAxCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0VOVElUWV9ERUZfTUlTTUFUQ0giIGlkPSJYTUxfWElOQ0xVREVfRU5USVRZX0RFRl9NSVNNQVRDSCI+WE1MX1hJTkNMVURFX0VOVElUWV9ERUZfTUlTTUFUQ0g8L2E+ID0gMTYwMiA6IDE2MDIKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfTk9fSFJFRiIgaWQ9IlhNTF9YSU5DTFVERV9OT19IUkVGIj5YTUxfWElOQ0xVREVfTk9fSFJFRjwvYT4gPSAxNjAzIDogMTYwMworICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9OT19GQUxMQkFDSyIgaWQ9IlhNTF9YSU5DTFVERV9OT19GQUxMQkFDSyI+WE1MX1hJTkNMVURFX05PX0ZBTExCQUNLPC9hPiA9IDE2MDQgOiAxNjA0CisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0hSRUZfVVJJIiBpZD0iWE1MX1hJTkNMVURFX0hSRUZfVVJJIj5YTUxfWElOQ0xVREVfSFJFRl9VUkk8L2E+ID0gMTYwNSA6IDE2MDUKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfVEVYVF9GUkFHTUVOVCIgaWQ9IlhNTF9YSU5DTFVERV9URVhUX0ZSQUdNRU5UIj5YTUxfWElOQ0xVREVfVEVYVF9GUkFHTUVOVDwvYT4gPSAxNjA2IDogMTYwNgorICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9URVhUX0RPQ1VNRU5UIiBpZD0iWE1MX1hJTkNMVURFX1RFWFRfRE9DVU1FTlQiPlhNTF9YSU5DTFVERV9URVhUX0RPQ1VNRU5UPC9hPiA9IDE2MDcgOiAxNjA3CisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0lOVkFMSURfQ0hBUiIgaWQ9IlhNTF9YSU5DTFVERV9JTlZBTElEX0NIQVIiPlhNTF9YSU5DTFVERV9JTlZBTElEX0NIQVI8L2E+ID0gMTYwOCA6IDE2MDgKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEIiBpZD0iWE1MX1hJTkNMVURFX0JVSUxEX0ZBSUxFRCI+WE1MX1hJTkNMVURFX0JVSUxEX0ZBSUxFRDwvYT4gPSAxNjA5IDogMTYwOQorICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9VTktOT1dOX0VOQ09ESU5HIiBpZD0iWE1MX1hJTkNMVURFX1VOS05PV05fRU5DT0RJTkciPlhNTF9YSU5DTFVERV9VTktOT1dOX0VOQ09ESU5HPC9hPiA9IDE2MTAgOiAxNjEwCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX01VTFRJUExFX1JPT1QiIGlkPSJYTUxfWElOQ0xVREVfTVVMVElQTEVfUk9PVCI+WE1MX1hJTkNMVURFX01VTFRJUExFX1JPT1Q8L2E+ID0gMTYxMSA6IDE2MTEKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfWFBUUl9GQUlMRUQiIGlkPSJYTUxfWElOQ0xVREVfWFBUUl9GQUlMRUQiPlhNTF9YSU5DTFVERV9YUFRSX0ZBSUxFRDwvYT4gPSAxNjEyIDogMTYxMgorICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9YUFRSX1JFU1VMVCIgaWQ9IlhNTF9YSU5DTFVERV9YUFRSX1JFU1VMVCI+WE1MX1hJTkNMVURFX1hQVFJfUkVTVUxUPC9hPiA9IDE2MTMgOiAxNjEzCisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0lOQ0xVREVfSU5fSU5DTFVERSIgaWQ9IlhNTF9YSU5DTFVERV9JTkNMVURFX0lOX0lOQ0xVREUiPlhNTF9YSU5DTFVERV9JTkNMVURFX0lOX0lOQ0xVREU8L2E+ID0gMTYxNCA6IDE2MTQKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUiIGlkPSJYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUiPlhNTF9YSU5DTFVERV9GQUxMQkFDS1NfSU5fSU5DTFVERTwvYT4gPSAxNjE1IDogMTYxNQorICAgIDxhIG5hbWU9IlhNTF9YSU5DTFVERV9GQUxMQkFDS19OT1RfSU5fSU5DTFVERSIgaWQ9IlhNTF9YSU5DTFVERV9GQUxMQkFDS19OT1RfSU5fSU5DTFVERSI+WE1MX1hJTkNMVURFX0ZBTExCQUNLX05PVF9JTl9JTkNMVURFPC9hPiA9IDE2MTYgOiAxNjE2CisgICAgPGEgbmFtZT0iWE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlMiIGlkPSJYTUxfWElOQ0xVREVfREVQUkVDQVRFRF9OUyI+WE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlM8L2E+ID0gMTYxNyA6IDE2MTcKKyAgICA8YSBuYW1lPSJYTUxfWElOQ0xVREVfRlJBR01FTlRfSUQiIGlkPSJYTUxfWElOQ0xVREVfRlJBR01FTlRfSUQiPlhNTF9YSU5DTFVERV9GUkFHTUVOVF9JRDwvYT4gPSAxNjE4IDogMTYxOAorICAgIDxhIG5hbWU9IlhNTF9DQVRBTE9HX01JU1NJTkdfQVRUUiIgaWQ9IlhNTF9DQVRBTE9HX01JU1NJTkdfQVRUUiI+WE1MX0NBVEFMT0dfTUlTU0lOR19BVFRSPC9hPiA9IDE2NTAKKyAgICA8YSBuYW1lPSJYTUxfQ0FUQUxPR19FTlRSWV9CUk9LRU4iIGlkPSJYTUxfQ0FUQUxPR19FTlRSWV9CUk9LRU4iPlhNTF9DQVRBTE9HX0VOVFJZX0JST0tFTjwvYT4gPSAxNjUxIDogMTY1MQorICAgIDxhIG5hbWU9IlhNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRSIgaWQ9IlhNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRSI+WE1MX0NBVEFMT0dfUFJFRkVSX1ZBTFVFPC9hPiA9IDE2NTIgOiAxNjUyCisgICAgPGEgbmFtZT0iWE1MX0NBVEFMT0dfTk9UX0NBVEFMT0ciIGlkPSJYTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRyI+WE1MX0NBVEFMT0dfTk9UX0NBVEFMT0c8L2E+ID0gMTY1MyA6IDE2NTMKKyAgICA8YSBuYW1lPSJYTUxfQ0FUQUxPR19SRUNVUlNJT04iIGlkPSJYTUxfQ0FUQUxPR19SRUNVUlNJT04iPlhNTF9DQVRBTE9HX1JFQ1VSU0lPTjwvYT4gPSAxNjU0IDogMTY1NAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1BSRUZJWF9VTkRFRklORUQiIGlkPSJYTUxfU0NIRU1BUF9QUkVGSVhfVU5ERUZJTkVEIj5YTUxfU0NIRU1BUF9QUkVGSVhfVU5ERUZJTkVEPC9hPiA9IDE3MDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BVFRSRk9STURFRkFVTFRfVkFMVUUiIGlkPSJYTUxfU0NIRU1BUF9BVFRSRk9STURFRkFVTFRfVkFMVUUiPlhNTF9TQ0hFTUFQX0FUVFJGT1JNREVGQVVMVF9WQUxVRTwvYT4gPSAxNzAxIDogMTcwMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0FUVFJHUlBfTk9OQU1FX05PUkVGIiBpZD0iWE1MX1NDSEVNQVBfQVRUUkdSUF9OT05BTUVfTk9SRUYiPlhNTF9TQ0hFTUFQX0FUVFJHUlBfTk9OQU1FX05PUkVGPC9hPiA9IDE3MDIgOiAxNzAyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQVRUUl9OT05BTUVfTk9SRUYiIGlkPSJYTUxfU0NIRU1BUF9BVFRSX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfQVRUUl9OT05BTUVfTk9SRUY8L2E+ID0gMTcwMyA6IDE3MDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT01QTEVYVFlQRV9OT05BTUVfTk9SRUYiIGlkPSJYTUxfU0NIRU1BUF9DT01QTEVYVFlQRV9OT05BTUVfTk9SRUYiPlhNTF9TQ0hFTUFQX0NPTVBMRVhUWVBFX05PTkFNRV9OT1JFRjwvYT4gPSAxNzA0IDogMTcwNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0VMRU1GT1JNREVGQVVMVF9WQUxVRSIgaWQ9IlhNTF9TQ0hFTUFQX0VMRU1GT1JNREVGQVVMVF9WQUxVRSI+WE1MX1NDSEVNQVBfRUxFTUZPUk1ERUZBVUxUX1ZBTFVFPC9hPiA9IDE3MDUgOiAxNzA1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRUxFTV9OT05BTUVfTk9SRUYiIGlkPSJYTUxfU0NIRU1BUF9FTEVNX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfRUxFTV9OT05BTUVfTk9SRUY8L2E+ID0gMTcwNiA6IDE3MDYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9FWFRFTlNJT05fTk9fQkFTRSIgaWQ9IlhNTF9TQ0hFTUFQX0VYVEVOU0lPTl9OT19CQVNFIj5YTUxfU0NIRU1BUF9FWFRFTlNJT05fTk9fQkFTRTwvYT4gPSAxNzA3IDogMTcwNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0ZBQ0VUX05PX1ZBTFVFIiBpZD0iWE1MX1NDSEVNQVBfRkFDRVRfTk9fVkFMVUUiPlhNTF9TQ0hFTUFQX0ZBQ0VUX05PX1ZBTFVFPC9hPiA9IDE3MDggOiAxNzA4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRkFJTEVEX0JVSUxEX0lNUE9SVCIgaWQ9IlhNTF9TQ0hFTUFQX0ZBSUxFRF9CVUlMRF9JTVBPUlQiPlhNTF9TQ0hFTUFQX0ZBSUxFRF9CVUlMRF9JTVBPUlQ8L2E+ID0gMTcwOSA6IDE3MDkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9HUk9VUF9OT05BTUVfTk9SRUYiIGlkPSJYTUxfU0NIRU1BUF9HUk9VUF9OT05BTUVfTk9SRUYiPlhNTF9TQ0hFTUFQX0dST1VQX05PTkFNRV9OT1JFRjwvYT4gPSAxNzEwIDogMTcxMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lNUE9SVF9OQU1FU1BBQ0VfTk9UX1VSSSIgaWQ9IlhNTF9TQ0hFTUFQX0lNUE9SVF9OQU1FU1BBQ0VfTk9UX1VSSSI+WE1MX1NDSEVNQVBfSU1QT1JUX05BTUVTUEFDRV9OT1RfVVJJPC9hPiA9IDE3MTEgOiAxNzExCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU1QT1JUX1JFREVGSU5FX05TTkFNRSIgaWQ9IlhNTF9TQ0hFTUFQX0lNUE9SVF9SRURFRklORV9OU05BTUUiPlhNTF9TQ0hFTUFQX0lNUE9SVF9SRURFRklORV9OU05BTUU8L2E+ID0gMTcxMiA6IDE3MTIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTVBPUlRfU0NIRU1BX05PVF9VUkkiIGlkPSJYTUxfU0NIRU1BUF9JTVBPUlRfU0NIRU1BX05PVF9VUkkiPlhNTF9TQ0hFTUFQX0lNUE9SVF9TQ0hFTUFfTk9UX1VSSTwvYT4gPSAxNzEzIDogMTcxMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQk9PTEVBTiIgaWQ9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQk9PTEVBTiI+WE1MX1NDSEVNQVBfSU5WQUxJRF9CT09MRUFOPC9hPiA9IDE3MTQgOiAxNzE0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9FTlVNIiBpZD0iWE1MX1NDSEVNQVBfSU5WQUxJRF9FTlVNIj5YTUxfU0NIRU1BUF9JTlZBTElEX0VOVU08L2E+ID0gMTcxNSA6IDE3MTUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUIiBpZD0iWE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVCI+WE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVDwvYT4gPSAxNzE2IDogMTcxNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUUiIGlkPSJYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFIj5YTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFPC9hPiA9IDE3MTcgOiAxNzE3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9NQVhPQ0NVUlMiIGlkPSJYTUxfU0NIRU1BUF9JTlZBTElEX01BWE9DQ1VSUyI+WE1MX1NDSEVNQVBfSU5WQUxJRF9NQVhPQ0NVUlM8L2E+ID0gMTcxOCA6IDE3MTgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUyIgaWQ9IlhNTF9TQ0hFTUFQX0lOVkFMSURfTUlOT0NDVVJTIj5YTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUzwvYT4gPSAxNzE5IDogMTcxOQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfUkVGX0FORF9TVUJUWVBFIiBpZD0iWE1MX1NDSEVNQVBfSU5WQUxJRF9SRUZfQU5EX1NVQlRZUEUiPlhNTF9TQ0hFTUFQX0lOVkFMSURfUkVGX0FORF9TVUJUWVBFPC9hPiA9IDE3MjAgOiAxNzIwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9XSElURV9TUEFDRSIgaWQ9IlhNTF9TQ0hFTUFQX0lOVkFMSURfV0hJVEVfU1BBQ0UiPlhNTF9TQ0hFTUFQX0lOVkFMSURfV0hJVEVfU1BBQ0U8L2E+ID0gMTcyMSA6IDE3MjEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT0FUVFJfTk9SRUYiIGlkPSJYTUxfU0NIRU1BUF9OT0FUVFJfTk9SRUYiPlhNTF9TQ0hFTUFQX05PQVRUUl9OT1JFRjwvYT4gPSAxNzIyIDogMTcyMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX05PVEFUSU9OX05PX05BTUUiIGlkPSJYTUxfU0NIRU1BUF9OT1RBVElPTl9OT19OQU1FIj5YTUxfU0NIRU1BUF9OT1RBVElPTl9OT19OQU1FPC9hPiA9IDE3MjMgOiAxNzIzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfTk9UWVBFX05PUkVGIiBpZD0iWE1MX1NDSEVNQVBfTk9UWVBFX05PUkVGIj5YTUxfU0NIRU1BUF9OT1RZUEVfTk9SRUY8L2E+ID0gMTcyNCA6IDE3MjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9SRUZfQU5EX1NVQlRZUEUiIGlkPSJYTUxfU0NIRU1BUF9SRUZfQU5EX1NVQlRZUEUiPlhNTF9TQ0hFTUFQX1JFRl9BTkRfU1VCVFlQRTwvYT4gPSAxNzI1IDogMTcyNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFU1RSSUNUSU9OX05PTkFNRV9OT1JFRiIgaWQ9IlhNTF9TQ0hFTUFQX1JFU1RSSUNUSU9OX05PTkFNRV9OT1JFRiI+WE1MX1NDSEVNQVBfUkVTVFJJQ1RJT05fTk9OQU1FX05PUkVGPC9hPiA9IDE3MjYgOiAxNzI2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU0lNUExFVFlQRV9OT05BTUUiIGlkPSJYTUxfU0NIRU1BUF9TSU1QTEVUWVBFX05PTkFNRSI+WE1MX1NDSEVNQVBfU0lNUExFVFlQRV9OT05BTUU8L2E+ID0gMTcyNyA6IDE3MjcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9UWVBFX0FORF9TVUJUWVBFIiBpZD0iWE1MX1NDSEVNQVBfVFlQRV9BTkRfU1VCVFlQRSI+WE1MX1NDSEVNQVBfVFlQRV9BTkRfU1VCVFlQRTwvYT4gPSAxNzI4IDogMTcyOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQUxMX0NISUxEIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9BTExfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fQUxMX0NISUxEPC9hPiA9IDE3MjkgOiAxNzI5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9BTllBVFRSSUJVVEVfQ0hJTEQiIGlkPSJYTUxfU0NIRU1BUF9VTktOT1dOX0FOWUFUVFJJQlVURV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9BTllBVFRSSUJVVEVfQ0hJTEQ8L2E+ID0gMTczMCA6IDE3MzAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJfQ0hJTEQiIGlkPSJYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fQVRUUl9DSElMRDwvYT4gPSAxNzMxIDogMTczMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQVRUUkdSUF9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fQVRUUkdSUF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSR1JQX0NISUxEPC9hPiA9IDE3MzIgOiAxNzMyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSSUJVVEVfR1JPVVAiIGlkPSJYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJJQlVURV9HUk9VUCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSSUJVVEVfR1JPVVA8L2E+ID0gMTczMyA6IDE3MzMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0JBU0VfVFlQRSIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fQkFTRV9UWVBFIj5YTUxfU0NIRU1BUF9VTktOT1dOX0JBU0VfVFlQRTwvYT4gPSAxNzM0IDogMTczNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fQ0hPSUNFX0NISUxEIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9DSE9JQ0VfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fQ0hPSUNFX0NISUxEPC9hPiA9IDE3MzUgOiAxNzM1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYQ09OVEVOVF9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fQ09NUExFWENPTlRFTlRfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fQ09NUExFWENPTlRFTlRfQ0hJTEQ8L2E+ID0gMTczNiA6IDE3MzYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYVFlQRV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYVFlQRV9DSElMRDwvYT4gPSAxNzM3IDogMTczNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fRUxFTV9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fRUxFTV9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9FTEVNX0NISUxEPC9hPiA9IDE3MzggOiAxNzM4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9FWFRFTlNJT05fQ0hJTEQiIGlkPSJYTUxfU0NIRU1BUF9VTktOT1dOX0VYVEVOU0lPTl9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9FWFRFTlNJT05fQ0hJTEQ8L2E+ID0gMTczOSA6IDE3MzkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxEIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9DSElMRDwvYT4gPSAxNzQwIDogMTc0MAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfVFlQRSIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfVFlQRSI+WE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9UWVBFPC9hPiA9IDE3NDEgOiAxNzQxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9HUk9VUF9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fR1JPVVBfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fR1JPVVBfQ0hJTEQ8L2E+ID0gMTc0MiA6IDE3NDIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX0lNUE9SVF9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fSU1QT1JUX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0lNUE9SVF9DSElMRDwvYT4gPSAxNzQzIDogMTc0MworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fTElTVF9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fTElTVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9MSVNUX0NISUxEPC9hPiA9IDE3NDQgOiAxNzQ0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9OT1RBVElPTl9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQ8L2E+ID0gMTc0NSA6IDE3NDUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1BST0NFU1NDT05URU5UX0NISUxEIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRCI+WE1MX1NDSEVNQVBfVU5LTk9XTl9QUk9DRVNTQ09OVEVOVF9DSElMRDwvYT4gPSAxNzQ2IDogMTc0NgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fUkVGIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9SRUYiPlhNTF9TQ0hFTUFQX1VOS05PV05fUkVGPC9hPiA9IDE3NDcgOiAxNzQ3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9SRVNUUklDVElPTl9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fUkVTVFJJQ1RJT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fUkVTVFJJQ1RJT05fQ0hJTEQ8L2E+ID0gMTc0OCA6IDE3NDgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NDSEVNQVNfQ0hJTEQiIGlkPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NDSEVNQVNfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fU0NIRU1BU19DSElMRDwvYT4gPSAxNzQ5IDogMTc0OQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fU0VRVUVOQ0VfQ0hJTEQiIGlkPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NFUVVFTkNFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX1NFUVVFTkNFX0NISUxEPC9hPiA9IDE3NTAgOiAxNzUwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVDT05URU5UX0NISUxEIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVDT05URU5UX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRUNPTlRFTlRfQ0hJTEQ8L2E+ID0gMTc1MSA6IDE3NTEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRVRZUEVfQ0hJTEQiIGlkPSJYTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRVRZUEVfQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFVFlQRV9DSElMRDwvYT4gPSAxNzUyIDogMTc1MgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1VOS05PV05fVFlQRSIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fVFlQRSI+WE1MX1NDSEVNQVBfVU5LTk9XTl9UWVBFPC9hPiA9IDE3NTMgOiAxNzUzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9VTklPTl9DSElMRCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fVU5JT05fQ0hJTEQiPlhNTF9TQ0hFTUFQX1VOS05PV05fVU5JT05fQ0hJTEQ8L2E+ID0gMTc1NCA6IDE3NTQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQiIGlkPSJYTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQiPlhNTF9TQ0hFTUFQX0VMRU1fREVGQVVMVF9GSVhFRDwvYT4gPSAxNzU1IDogMTc1NQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFR0VYUF9JTlZBTElEIiBpZD0iWE1MX1NDSEVNQVBfUkVHRVhQX0lOVkFMSUQiPlhNTF9TQ0hFTUFQX1JFR0VYUF9JTlZBTElEPC9hPiA9IDE3NTYgOiAxNzU2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRkFJTEVEX0xPQUQiIGlkPSJYTUxfU0NIRU1BUF9GQUlMRURfTE9BRCI+WE1MX1NDSEVNQVBfRkFJTEVEX0xPQUQ8L2E+ID0gMTc1NyA6IDE3NTcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT1RISU5HX1RPX1BBUlNFIiBpZD0iWE1MX1NDSEVNQVBfTk9USElOR19UT19QQVJTRSI+WE1MX1NDSEVNQVBfTk9USElOR19UT19QQVJTRTwvYT4gPSAxNzU4IDogMTc1OAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX05PUk9PVCIgaWQ9IlhNTF9TQ0hFTUFQX05PUk9PVCI+WE1MX1NDSEVNQVBfTk9ST09UPC9hPiA9IDE3NTkgOiAxNzU5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVERUZJTkVEX0dST1VQIiBpZD0iWE1MX1NDSEVNQVBfUkVERUZJTkVEX0dST1VQIj5YTUxfU0NIRU1BUF9SRURFRklORURfR1JPVVA8L2E+ID0gMTc2MCA6IDE3NjAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9SRURFRklORURfVFlQRSIgaWQ9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9UWVBFIj5YTUxfU0NIRU1BUF9SRURFRklORURfVFlQRTwvYT4gPSAxNzYxIDogMTc2MQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9FTEVNRU5UIiBpZD0iWE1MX1NDSEVNQVBfUkVERUZJTkVEX0VMRU1FTlQiPlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9FTEVNRU5UPC9hPiA9IDE3NjIgOiAxNzYyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFJHUk9VUCIgaWQ9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSR1JPVVAiPlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSR1JPVVA8L2E+ID0gMTc2MyA6IDE3NjMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9SRURFRklORURfQVRUUiIgaWQ9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSIj5YTUxfU0NIRU1BUF9SRURFRklORURfQVRUUjwvYT4gPSAxNzY0IDogMTc2NAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9OT1RBVElPTiIgaWQ9IlhNTF9TQ0hFTUFQX1JFREVGSU5FRF9OT1RBVElPTiI+WE1MX1NDSEVNQVBfUkVERUZJTkVEX05PVEFUSU9OPC9hPiA9IDE3NjUgOiAxNzY1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRkFJTEVEX1BBUlNFIiBpZD0iWE1MX1NDSEVNQVBfRkFJTEVEX1BBUlNFIj5YTUxfU0NIRU1BUF9GQUlMRURfUEFSU0U8L2E+ID0gMTc2NiA6IDE3NjYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX1BSRUZJWCIgaWQ9IlhNTF9TQ0hFTUFQX1VOS05PV05fUFJFRklYIj5YTUxfU0NIRU1BUF9VTktOT1dOX1BSRUZJWDwvYT4gPSAxNzY3IDogMTc2NworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYIiBpZD0iWE1MX1NDSEVNQVBfREVGX0FORF9QUkVGSVgiPlhNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYPC9hPiA9IDE3NjggOiAxNzY4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfVU5LTk9XTl9JTkNMVURFX0NISUxEIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9JTkNMVURFX0NISUxEIj5YTUxfU0NIRU1BUF9VTktOT1dOX0lOQ0xVREVfQ0hJTEQ8L2E+ID0gMTc2OSA6IDE3NjkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9JTkNMVURFX1NDSEVNQV9OT1RfVVJJIiBpZD0iWE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9UX1VSSSI+WE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9UX1VSSTwvYT4gPSAxNzcwIDogMTc3MAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PX1VSSSIgaWQ9IlhNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PX1VSSSI+WE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9fVVJJPC9hPiA9IDE3NzEgOiAxNzcxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfTk9UX1NDSEVNQSIgaWQ9IlhNTF9TQ0hFTUFQX05PVF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX05PVF9TQ0hFTUE8L2E+ID0gMTc3MiA6IDE3NzIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTktOT1dOX01FTUJFUl9UWVBFIiBpZD0iWE1MX1NDSEVNQVBfVU5LTk9XTl9NRU1CRVJfVFlQRSI+WE1MX1NDSEVNQVBfVU5LTk9XTl9NRU1CRVJfVFlQRTwvYT4gPSAxNzczIDogMTc3MworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9VU0UiIGlkPSJYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfVVNFIj5YTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfVVNFPC9hPiA9IDE3NzQgOiAxNzc0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVDVVJTSVZFIiBpZD0iWE1MX1NDSEVNQVBfUkVDVVJTSVZFIj5YTUxfU0NIRU1BUF9SRUNVUlNJVkU8L2E+ID0gMTc3NSA6IDE3NzUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TVVBFUk5VTUVST1VTX0xJU1RfSVRFTV9UWVBFIiBpZD0iWE1MX1NDSEVNQVBfU1VQRVJOVU1FUk9VU19MSVNUX0lURU1fVFlQRSI+WE1MX1NDSEVNQVBfU1VQRVJOVU1FUk9VU19MSVNUX0lURU1fVFlQRTwvYT4gPSAxNzc2IDogMTc3NgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9DT01CSU5BVElPTiIgaWQ9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9DT01CSU5BVElPTiI+WE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0NPTUJJTkFUSU9OPC9hPiA9IDE3NzcgOiAxNzc3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0lOTElORV9DT01CSU5BVElPTiIgaWQ9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT04iPlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT048L2E+ID0gMTc3OCA6IDE3NzgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9NSVNTSU5HX1NJTVBMRVRZUEVfQ0hJTEQiIGlkPSJYTUxfU0NIRU1BUF9NSVNTSU5HX1NJTVBMRVRZUEVfQ0hJTEQiPlhNTF9TQ0hFTUFQX01JU1NJTkdfU0lNUExFVFlQRV9DSElMRDwvYT4gPSAxNzc5IDogMTc3OQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9OQU1FIiBpZD0iWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX05BTUUiPlhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9OQU1FPC9hPiA9IDE3ODAgOiAxNzgwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUkVGX0FORF9DT05URU5UIiBpZD0iWE1MX1NDSEVNQVBfUkVGX0FORF9DT05URU5UIj5YTUxfU0NIRU1BUF9SRUZfQU5EX0NPTlRFTlQ8L2E+ID0gMTc4MSA6IDE3ODEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzEiIGlkPSJYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMTwvYT4gPSAxNzgyIDogMTc4MgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMiIgaWQ9IlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMiI+WE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8yPC9hPiA9IDE3ODMgOiAxNzgzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8zIiBpZD0iWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzM8L2E+ID0gMTc4NCA6IDE3ODQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzQiIGlkPSJYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzQiPlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNDwvYT4gPSAxNzg1IDogMTc4NQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNSIgaWQ9IlhNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNSI+WE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF81PC9hPiA9IDE3ODYgOiAxNzg2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xIiBpZD0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzE8L2E+ID0gMTc4NyA6IDE3ODcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8xIiBpZD0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMSI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMTwvYT4gPSAxNzg4IDogMTc4OAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzIiIGlkPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8yIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8yPC9hPiA9IDE3ODkgOiAxNzg5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzIiIGlkPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMiI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzI8L2E+ID0gMTc5MCA6IDE3OTAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzMiIGlkPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzMiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMzwvYT4gPSAxNzkxIDogMTc5MQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1dJTERDQVJEX0lOVkFMSURfTlNfTUVNQkVSIiBpZD0iWE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVIiPlhNTF9TQ0hFTUFQX1dJTERDQVJEX0lOVkFMSURfTlNfTUVNQkVSPC9hPiA9IDE3OTIgOiAxNzkyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfSU5URVJTRUNUSU9OX05PVF9FWFBSRVNTSUJMRSIgaWQ9IlhNTF9TQ0hFTUFQX0lOVEVSU0VDVElPTl9OT1RfRVhQUkVTU0lCTEUiPlhNTF9TQ0hFTUFQX0lOVEVSU0VDVElPTl9OT1RfRVhQUkVTU0lCTEU8L2E+ID0gMTc5MyA6IDE3OTMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9VTklPTl9OT1RfRVhQUkVTU0lCTEUiIGlkPSJYTUxfU0NIRU1BUF9VTklPTl9OT1RfRVhQUkVTU0lCTEUiPlhNTF9TQ0hFTUFQX1VOSU9OX05PVF9FWFBSRVNTSUJMRTwvYT4gPSAxNzk0IDogMTc5NAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18xIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzEiPlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfM18xPC9hPiA9IDE3OTUgOiAxNzk1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzIiIGlkPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzNfMiI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzI8L2E+ID0gMTc5NiA6IDE3OTYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMSIgaWQ9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8xIj5YTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMTwvYT4gPSAxNzk3IDogMTc5NworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8yIiBpZD0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzIiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8yPC9hPiA9IDE3OTggOiAxNzk4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzMiIGlkPSJYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMyI+WE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzM8L2E+ID0gMTc5OSA6IDE3OTkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzMiIGlkPSJYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzMiPlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMzwvYT4gPSAxODAwIDogMTgwMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PUk9PVCIgaWQ9IlhNTF9TQ0hFTUFWX05PUk9PVCI+WE1MX1NDSEVNQVZfTk9ST09UPC9hPiA9IDE4MDEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9VTkRFQ0xBUkVERUxFTSIgaWQ9IlhNTF9TQ0hFTUFWX1VOREVDTEFSRURFTEVNIj5YTUxfU0NIRU1BVl9VTkRFQ0xBUkVERUxFTTwvYT4gPSAxODAyIDogMTgwMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PVFRPUExFVkVMIiBpZD0iWE1MX1NDSEVNQVZfTk9UVE9QTEVWRUwiPlhNTF9TQ0hFTUFWX05PVFRPUExFVkVMPC9hPiA9IDE4MDMgOiAxODAzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTUlTU0lORyIgaWQ9IlhNTF9TQ0hFTUFWX01JU1NJTkciPlhNTF9TQ0hFTUFWX01JU1NJTkc8L2E+ID0gMTgwNCA6IDE4MDQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9XUk9OR0VMRU0iIGlkPSJYTUxfU0NIRU1BVl9XUk9OR0VMRU0iPlhNTF9TQ0hFTUFWX1dST05HRUxFTTwvYT4gPSAxODA1IDogMTgwNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PVFlQRSIgaWQ9IlhNTF9TQ0hFTUFWX05PVFlQRSI+WE1MX1NDSEVNQVZfTk9UWVBFPC9hPiA9IDE4MDYgOiAxODA2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTk9ST0xMQkFDSyIgaWQ9IlhNTF9TQ0hFTUFWX05PUk9MTEJBQ0siPlhNTF9TQ0hFTUFWX05PUk9MTEJBQ0s8L2E+ID0gMTgwNyA6IDE4MDcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9JU0FCU1RSQUNUIiBpZD0iWE1MX1NDSEVNQVZfSVNBQlNUUkFDVCI+WE1MX1NDSEVNQVZfSVNBQlNUUkFDVDwvYT4gPSAxODA4IDogMTgwOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PVEVNUFRZIiBpZD0iWE1MX1NDSEVNQVZfTk9URU1QVFkiPlhNTF9TQ0hFTUFWX05PVEVNUFRZPC9hPiA9IDE4MDkgOiAxODA5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfRUxFTUNPTlQiIGlkPSJYTUxfU0NIRU1BVl9FTEVNQ09OVCI+WE1MX1NDSEVNQVZfRUxFTUNPTlQ8L2E+ID0gMTgxMCA6IDE4MTAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9IQVZFREVGQVVMVCIgaWQ9IlhNTF9TQ0hFTUFWX0hBVkVERUZBVUxUIj5YTUxfU0NIRU1BVl9IQVZFREVGQVVMVDwvYT4gPSAxODExIDogMTgxMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX05PVE5JTExBQkxFIiBpZD0iWE1MX1NDSEVNQVZfTk9UTklMTEFCTEUiPlhNTF9TQ0hFTUFWX05PVE5JTExBQkxFPC9hPiA9IDE4MTIgOiAxODEyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfRVhUUkFDT05URU5UIiBpZD0iWE1MX1NDSEVNQVZfRVhUUkFDT05URU5UIj5YTUxfU0NIRU1BVl9FWFRSQUNPTlRFTlQ8L2E+ID0gMTgxMyA6IDE4MTMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9JTlZBTElEQVRUUiIgaWQ9IlhNTF9TQ0hFTUFWX0lOVkFMSURBVFRSIj5YTUxfU0NIRU1BVl9JTlZBTElEQVRUUjwvYT4gPSAxODE0IDogMTgxNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0lOVkFMSURFTEVNIiBpZD0iWE1MX1NDSEVNQVZfSU5WQUxJREVMRU0iPlhNTF9TQ0hFTUFWX0lOVkFMSURFTEVNPC9hPiA9IDE4MTUgOiAxODE1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTk9UREVURVJNSU5JU1QiIGlkPSJYTUxfU0NIRU1BVl9OT1RERVRFUk1JTklTVCI+WE1MX1NDSEVNQVZfTk9UREVURVJNSU5JU1Q8L2E+ID0gMTgxNiA6IDE4MTYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DT05TVFJVQ1QiIGlkPSJYTUxfU0NIRU1BVl9DT05TVFJVQ1QiPlhNTF9TQ0hFTUFWX0NPTlNUUlVDVDwvYT4gPSAxODE3IDogMTgxNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0lOVEVSTkFMIiBpZD0iWE1MX1NDSEVNQVZfSU5URVJOQUwiPlhNTF9TQ0hFTUFWX0lOVEVSTkFMPC9hPiA9IDE4MTggOiAxODE4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTk9UU0lNUExFIiBpZD0iWE1MX1NDSEVNQVZfTk9UU0lNUExFIj5YTUxfU0NIRU1BVl9OT1RTSU1QTEU8L2E+ID0gMTgxOSA6IDE4MTkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9BVFRSVU5LTk9XTiIgaWQ9IlhNTF9TQ0hFTUFWX0FUVFJVTktOT1dOIj5YTUxfU0NIRU1BVl9BVFRSVU5LTk9XTjwvYT4gPSAxODIwIDogMTgyMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0FUVFJJTlZBTElEIiBpZD0iWE1MX1NDSEVNQVZfQVRUUklOVkFMSUQiPlhNTF9TQ0hFTUFWX0FUVFJJTlZBTElEPC9hPiA9IDE4MjEgOiAxODIxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfVkFMVUUiIGlkPSJYTUxfU0NIRU1BVl9WQUxVRSI+WE1MX1NDSEVNQVZfVkFMVUU8L2E+ID0gMTgyMiA6IDE4MjIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9GQUNFVCIgaWQ9IlhNTF9TQ0hFTUFWX0ZBQ0VUIj5YTUxfU0NIRU1BVl9GQUNFVDwvYT4gPSAxODIzIDogMTgyMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSI+WE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8xPC9hPiA9IDE4MjQgOiAxODI0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8yIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8yIj5YTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzI8L2E+ID0gMTgyNSA6IDE4MjUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzMiIGlkPSJYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzMiPlhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMzwvYT4gPSAxODI2IDogMTgyNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzEiPlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xPC9hPiA9IDE4MjcgOiAxODI3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzIiIGlkPSJYTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMiI+WE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzI8L2E+ID0gMTgyOCA6IDE4MjgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRkFDRVRfVkFMSUQiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRkFDRVRfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19GQUNFVF9WQUxJRDwvYT4gPSAxODI5IDogMTgyOQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19MRU5HVEhfVkFMSUQiIGlkPSJYTUxfU0NIRU1BVl9DVkNfTEVOR1RIX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfTEVOR1RIX1ZBTElEPC9hPiA9IDE4MzAgOiAxODMwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRCIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19NSU5MRU5HVEhfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19NSU5MRU5HVEhfVkFMSUQ8L2E+ID0gMTgzMSA6IDE4MzEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfTUFYTEVOR1RIX1ZBTElEIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRDwvYT4gPSAxODMyIDogMTgzMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19NSU5JTkNMVVNJVkVfVkFMSUQiIGlkPSJYTUxfU0NIRU1BVl9DVkNfTUlOSU5DTFVTSVZFX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfTUlOSU5DTFVTSVZFX1ZBTElEPC9hPiA9IDE4MzMgOiAxODMzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRCIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19NQVhJTkNMVVNJVkVfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19NQVhJTkNMVVNJVkVfVkFMSUQ8L2E+ID0gMTgzNCA6IDE4MzQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfTUlORVhDTFVTSVZFX1ZBTElEIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX01JTkVYQ0xVU0lWRV9WQUxJRCI+WE1MX1NDSEVNQVZfQ1ZDX01JTkVYQ0xVU0lWRV9WQUxJRDwvYT4gPSAxODM1IDogMTgzNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19NQVhFWENMVVNJVkVfVkFMSUQiIGlkPSJYTUxfU0NIRU1BVl9DVkNfTUFYRVhDTFVTSVZFX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfTUFYRVhDTFVTSVZFX1ZBTElEPC9hPiA9IDE4MzYgOiAxODM2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1RPVEFMRElHSVRTX1ZBTElEIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX1RPVEFMRElHSVRTX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQ8L2E+ID0gMTgzNyA6IDE4MzcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19GUkFDVElPTkRJR0lUU19WQUxJRDwvYT4gPSAxODM4IDogMTgzOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19QQVRURVJOX1ZBTElEIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX1BBVFRFUk5fVkFMSUQiPlhNTF9TQ0hFTUFWX0NWQ19QQVRURVJOX1ZBTElEPC9hPiA9IDE4MzkgOiAxODM5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEIj5YTUxfU0NIRU1BVl9DVkNfRU5VTUVSQVRJT05fVkFMSUQ8L2E+ID0gMTg0MCA6IDE4NDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMSIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMTwvYT4gPSAxODQxIDogMTg0MQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8yIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzIiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8yPC9hPiA9IDE4NDIgOiAxODQyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzMiIGlkPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMyI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzM8L2E+ID0gMTg0MyA6IDE4NDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfNCIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl80Ij5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfNDwvYT4gPSAxODQ0IDogMTg0NAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfMSIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF8xPC9hPiA9IDE4NDUgOiAxODQ1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF8yIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzI8L2E+ID0gMTg0NiA6IDE4NDYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMSIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMTwvYT4gPSAxODQ3IDogMTg0NworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzEiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xPC9hPiA9IDE4NDggOiAxODQ4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzJfMiIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzIiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzI8L2E+ID0gMTg0OSA6IDE4NDkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMSIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8xIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzRfMTwvYT4gPSAxODUwIDogMTg1MAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzIiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yPC9hPiA9IDE4NTEgOiAxODUxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzMiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMyI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzM8L2E+ID0gMTg1MiA6IDE4NTIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8xIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMSI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMTwvYT4gPSAxODUzIDogMTg1MworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8xXzIiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yIj5YTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yPC9hPiA9IDE4NTQgOiAxODU0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMSIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzE8L2E+ID0gMTg1NSA6IDE4NTUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzEiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMTwvYT4gPSAxODU2IDogMTg1NgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8xIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzEiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8xPC9hPiA9IDE4NTcgOiAxODU3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzIiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMiI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzI8L2E+ID0gMTg1OCA6IDE4NTgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzYiIGlkPSJYTUxfU0NIRU1BVl9DVkNfRUxUXzYiPlhNTF9TQ0hFTUFWX0NWQ19FTFRfNjwvYT4gPSAxODU5IDogMTg1OQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNyIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19FTFRfNyI+WE1MX1NDSEVNQVZfQ1ZDX0VMVF83PC9hPiA9IDE4NjAgOiAxODYwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8xIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8xIj5YTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzE8L2E+ID0gMTg2MSA6IDE4NjEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzIiIGlkPSJYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzIiPlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMjwvYT4gPSAxODYyIDogMTg2MgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMyIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMyI+WE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8zPC9hPiA9IDE4NjMgOiAxODYzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV80IiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV80Ij5YTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzQ8L2E+ID0gMTg2NCA6IDE4NjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMSIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMTwvYT4gPSAxODY1IDogMTg2NQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18yXzEiIGlkPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xPC9hPiA9IDE4NjYgOiAxODY2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzJfMiIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18yXzIiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18yXzI8L2E+ID0gMTg2NyA6IDE4NjcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzQiIGlkPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzQiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNDwvYT4gPSAxODY4IDogMTg2OAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8xIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzEiPlhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8xPC9hPiA9IDE4NjkgOiAxODY5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzIiIGlkPSJYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzVfMiI+WE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzI8L2E+ID0gMTg3MCA6IDE4NzAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQiIGlkPSJYTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQiPlhNTF9TQ0hFTUFWX0VMRU1FTlRfQ09OVEVOVDwvYT4gPSAxODcxIDogMTg3MQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0RPQ1VNRU5UX0VMRU1FTlRfTUlTU0lORyIgaWQ9IlhNTF9TQ0hFTUFWX0RPQ1VNRU5UX0VMRU1FTlRfTUlTU0lORyI+WE1MX1NDSEVNQVZfRE9DVU1FTlRfRUxFTUVOVF9NSVNTSU5HPC9hPiA9IDE4NzIgOiAxODcyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8xIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8xIj5YTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzE8L2E+ID0gMTg3MyA6IDE4NzMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfQVUiIGlkPSJYTUxfU0NIRU1BVl9DVkNfQVUiPlhNTF9TQ0hFTUFWX0NWQ19BVTwvYT4gPSAxODc0IDogMTg3NAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzEiIGlkPSJYTUxfU0NIRU1BVl9DVkNfVFlQRV8xIj5YTUxfU0NIRU1BVl9DVkNfVFlQRV8xPC9hPiA9IDE4NzUgOiAxODc1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMiIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzIiPlhNTF9TQ0hFTUFWX0NWQ19UWVBFXzI8L2E+ID0gMTg3NiA6IDE4NzYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVl9DVkNfSURDIiBpZD0iWE1MX1NDSEVNQVZfQ1ZDX0lEQyI+WE1MX1NDSEVNQVZfQ1ZDX0lEQzwvYT4gPSAxODc3IDogMTg3NworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFWX0NWQ19XSUxEQ0FSRCIgaWQ9IlhNTF9TQ0hFTUFWX0NWQ19XSUxEQ0FSRCI+WE1MX1NDSEVNQVZfQ1ZDX1dJTERDQVJEPC9hPiA9IDE4NzggOiAxODc4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVZfTUlTQyIgaWQ9IlhNTF9TQ0hFTUFWX01JU0MiPlhNTF9TQ0hFTUFWX01JU0M8L2E+ID0gMTg3OSA6IDE4NzkKKyAgICA8YSBuYW1lPSJYTUxfWFBUUl9VTktOT1dOX1NDSEVNRSIgaWQ9IlhNTF9YUFRSX1VOS05PV05fU0NIRU1FIj5YTUxfWFBUUl9VTktOT1dOX1NDSEVNRTwvYT4gPSAxOTAwCisgICAgPGEgbmFtZT0iWE1MX1hQVFJfQ0hJTERTRVFfU1RBUlQiIGlkPSJYTUxfWFBUUl9DSElMRFNFUV9TVEFSVCI+WE1MX1hQVFJfQ0hJTERTRVFfU1RBUlQ8L2E+ID0gMTkwMSA6IDE5MDEKKyAgICA8YSBuYW1lPSJYTUxfWFBUUl9FVkFMX0ZBSUxFRCIgaWQ9IlhNTF9YUFRSX0VWQUxfRkFJTEVEIj5YTUxfWFBUUl9FVkFMX0ZBSUxFRDwvYT4gPSAxOTAyIDogMTkwMgorICAgIDxhIG5hbWU9IlhNTF9YUFRSX0VYVFJBX09CSkVDVFMiIGlkPSJYTUxfWFBUUl9FWFRSQV9PQkpFQ1RTIj5YTUxfWFBUUl9FWFRSQV9PQkpFQ1RTPC9hPiA9IDE5MDMgOiAxOTAzCisgICAgPGEgbmFtZT0iWE1MX0MxNE5fQ1JFQVRFX0NUWFQiIGlkPSJYTUxfQzE0Tl9DUkVBVEVfQ1RYVCI+WE1MX0MxNE5fQ1JFQVRFX0NUWFQ8L2E+ID0gMTk1MAorICAgIDxhIG5hbWU9IlhNTF9DMTROX1JFUVVJUkVTX1VURjgiIGlkPSJYTUxfQzE0Tl9SRVFVSVJFU19VVEY4Ij5YTUxfQzE0Tl9SRVFVSVJFU19VVEY4PC9hPiA9IDE5NTEgOiAxOTUxCisgICAgPGEgbmFtZT0iWE1MX0MxNE5fQ1JFQVRFX1NUQUNLIiBpZD0iWE1MX0MxNE5fQ1JFQVRFX1NUQUNLIj5YTUxfQzE0Tl9DUkVBVEVfU1RBQ0s8L2E+ID0gMTk1MiA6IDE5NTIKKyAgICA8YSBuYW1lPSJYTUxfQzE0Tl9JTlZBTElEX05PREUiIGlkPSJYTUxfQzE0Tl9JTlZBTElEX05PREUiPlhNTF9DMTROX0lOVkFMSURfTk9ERTwvYT4gPSAxOTUzIDogMTk1MworICAgIDxhIG5hbWU9IlhNTF9DMTROX1VOS05PV19OT0RFIiBpZD0iWE1MX0MxNE5fVU5LTk9XX05PREUiPlhNTF9DMTROX1VOS05PV19OT0RFPC9hPiA9IDE5NTQgOiAxOTU0CisgICAgPGEgbmFtZT0iWE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFIiBpZD0iWE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFIj5YTUxfQzE0Tl9SRUxBVElWRV9OQU1FU1BBQ0U8L2E+ID0gMTk1NSA6IDE5NTUKKyAgICA8YSBuYW1lPSJYTUxfRlRQX1BBU1ZfQU5TV0VSIiBpZD0iWE1MX0ZUUF9QQVNWX0FOU1dFUiI+WE1MX0ZUUF9QQVNWX0FOU1dFUjwvYT4gPSAyMDAwCisgICAgPGEgbmFtZT0iWE1MX0ZUUF9FUFNWX0FOU1dFUiIgaWQ9IlhNTF9GVFBfRVBTVl9BTlNXRVIiPlhNTF9GVFBfRVBTVl9BTlNXRVI8L2E+ID0gMjAwMSA6IDIwMDEKKyAgICA8YSBuYW1lPSJYTUxfRlRQX0FDQ05UIiBpZD0iWE1MX0ZUUF9BQ0NOVCI+WE1MX0ZUUF9BQ0NOVDwvYT4gPSAyMDAyIDogMjAwMgorICAgIDxhIG5hbWU9IlhNTF9GVFBfVVJMX1NZTlRBWCIgaWQ9IlhNTF9GVFBfVVJMX1NZTlRBWCI+WE1MX0ZUUF9VUkxfU1lOVEFYPC9hPiA9IDIwMDMgOiAyMDAzCisgICAgPGEgbmFtZT0iWE1MX0hUVFBfVVJMX1NZTlRBWCIgaWQ9IlhNTF9IVFRQX1VSTF9TWU5UQVgiPlhNTF9IVFRQX1VSTF9TWU5UQVg8L2E+ID0gMjAyMAorICAgIDxhIG5hbWU9IlhNTF9IVFRQX1VTRV9JUCIgaWQ9IlhNTF9IVFRQX1VTRV9JUCI+WE1MX0hUVFBfVVNFX0lQPC9hPiA9IDIwMjEgOiAyMDIxCisgICAgPGEgbmFtZT0iWE1MX0hUVFBfVU5LTk9XTl9IT1NUIiBpZD0iWE1MX0hUVFBfVU5LTk9XTl9IT1NUIj5YTUxfSFRUUF9VTktOT1dOX0hPU1Q8L2E+ID0gMjAyMiA6IDIwMjIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMSIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8xIj5YTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMTwvYT4gPSAzMDAwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzIiIGlkPSJYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMiI+WE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzI8L2E+ID0gMzAwMSA6IDMwMDEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMyIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8zIj5YTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMzwvYT4gPSAzMDAyIDogMzAwMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV80IiBpZD0iWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzQiPlhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV80PC9hPiA9IDMwMDMgOiAzMDAzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUiIGlkPSJYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSI+WE1MX1NDSEVNQVBfU1JDX1JFU09MVkU8L2E+ID0gMzAwNCA6IDMwMDQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfUkVTVFJJQ1RJT05fQkFTRV9PUl9TSU1QTEVUWVBFIiBpZD0iWE1MX1NDSEVNQVBfU1JDX1JFU1RSSUNUSU9OX0JBU0VfT1JfU0lNUExFVFlQRSI+WE1MX1NDSEVNQVBfU1JDX1JFU1RSSUNUSU9OX0JBU0VfT1JfU0lNUExFVFlQRTwvYT4gPSAzMDA1IDogMzAwNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEUiIGlkPSJYTUxfU0NIRU1BUF9TUkNfTElTVF9JVEVNVFlQRV9PUl9TSU1QTEVUWVBFIj5YTUxfU0NIRU1BUF9TUkNfTElTVF9JVEVNVFlQRV9PUl9TSU1QTEVUWVBFPC9hPiA9IDMwMDYgOiAzMDA2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX1VOSU9OX01FTUJFUlRZUEVTX09SX1NJTVBMRVRZUEVTIiBpZD0iWE1MX1NDSEVNQVBfU1JDX1VOSU9OX01FTUJFUlRZUEVTX09SX1NJTVBMRVRZUEVTIj5YTUxfU0NIRU1BUF9TUkNfVU5JT05fTUVNQkVSVFlQRVNfT1JfU0lNUExFVFlQRVM8L2E+ID0gMzAwNyA6IDMwMDcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzEiIGlkPSJYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMTwvYT4gPSAzMDA4IDogMzAwOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMiIgaWQ9IlhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMiI+WE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8yPC9hPiA9IDMwMDkgOiAzMDA5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8zIiBpZD0iWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzM8L2E+ID0gMzAxMCA6IDMwMTAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMTwvYT4gPSAzMDExIDogMzAxMQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8yIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8yPC9hPiA9IDMwMTIgOiAzMDEyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzE8L2E+ID0gMzAxMyA6IDMwMTMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfM18yIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMiI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMjwvYT4gPSAzMDE0IDogMzAxNAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8xIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzEiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8xPC9hPiA9IDMwMTUgOiAzMDE1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8xIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzE8L2E+ID0gMzAxNiA6IDMwMTYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzIiIGlkPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMjwvYT4gPSAzMDE3IDogMzAxNworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8xPC9hPiA9IDMwMTggOiAzMDE4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8yIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8yIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzI8L2E+ID0gMzAxOSA6IDMwMTkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzMiIGlkPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzMiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMzwvYT4gPSAzMDIwIDogMzAyMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNCIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNCI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80PC9hPiA9IDMwMjEgOiAzMDIxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl81IiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl81Ij5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzU8L2E+ID0gMzAyMiA6IDMwMjIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMTwvYT4gPSAzMDIzIDogMzAyMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzEiIGlkPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xPC9hPiA9IDMwMjQgOiAzMDI0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMV8yIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMV8yIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xXzI8L2E+ID0gMzAyNSA6IDMwMjUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzIiIGlkPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMjwvYT4gPSAzMDI2IDogMzAyNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8xPC9hPiA9IDMwMjcgOiAzMDI3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8zIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8zIj5YTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzM8L2E+ID0gMzAyOCA6IDMwMjgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzQiIGlkPSJYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzQiPlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNDwvYT4gPSAzMDI5IDogMzAyOQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNSI+WE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl81PC9hPiA9IDMwMzAgOiAzMDMwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8xIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8xIj5YTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzE8L2E+ID0gMzAzMSA6IDMwMzEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzIiIGlkPSJYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzIiPlhNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMjwvYT4gPSAzMDMyIDogMzAzMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VEIiBpZD0iWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQiPlhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VEPC9hPiA9IDMwMzMgOiAzMDMzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUzRTX0VMRU1fTUlTU0lORyIgaWQ9IlhNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkciPlhNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkc8L2E+ID0gMzAzNCA6IDMwMzQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCIgaWQ9IlhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VEIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRDwvYT4gPSAzMDM1IDogMzAzNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkciIGlkPSJYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HIj5YTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HPC9hPiA9IDMwMzYgOiAzMDM2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSIgaWQ9IlhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUiPlhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUU8L2E+ID0gMzAzNyA6IDMwMzcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8xIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMSI+WE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMTwvYT4gPSAzMDM4IDogMzAzOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMSIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzJfMSI+WE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8xPC9hPiA9IDMwMzkgOiAzMDM5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8yIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8yIj5YTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzI8L2E+ID0gMzA0MCA6IDMwNDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8zIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMyI+WE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMzwvYT4gPSAzMDQxIDogMzA0MQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xIiBpZD0iWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzEiPlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xPC9hPiA9IDMwNDIgOiAzMDQyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMSIgaWQ9IlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzEiPlhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzE8L2E+ID0gMzA0MyA6IDMwNDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8yIiBpZD0iWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMiI+WE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMjwvYT4gPSAzMDQ0IDogMzA0NAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8yIiBpZD0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8yPC9hPiA9IDMwNDUgOiAzMDQ1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzMiIGlkPSJYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfMyI+WE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzM8L2E+ID0gMzA0NiA6IDMwNDYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNCIgaWQ9IlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF80Ij5YTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNDwvYT4gPSAzMDQ3IDogMzA0NworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF81IiBpZD0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzUiPlhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF81PC9hPiA9IDMwNDggOiAzMDQ4CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzYiIGlkPSJYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNiI+WE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzY8L2E+ID0gMzA0OSA6IDMwNDkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU5DTFVERSIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19JTkNMVURFIj5YTUxfU0NIRU1BUF9TUkNfSU5DTFVERTwvYT4gPSAzMDUwIDogMzA1MAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMSIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMSI+WE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8xPC9hPiA9IDMwNTEgOiAzMDUxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8yIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8yIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzI8L2E+ID0gMzA1MiA6IDMwNTIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMSIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18xIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMTwvYT4gPSAzMDUzIDogMzA1MworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18yIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8zXzIiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18yPC9hPiA9IDMwNTQgOiAzMDU0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV80IiBpZD0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV80Ij5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzQ8L2E+ID0gMzA1NSA6IDMwNTUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT19YTUxOUyIgaWQ9IlhNTF9TQ0hFTUFQX05PX1hNTE5TIj5YTUxfU0NIRU1BUF9OT19YTUxOUzwvYT4gPSAzMDU2IDogMzA1NgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX05PX1hTSSIgaWQ9IlhNTF9TQ0hFTUFQX05PX1hTSSI+WE1MX1NDSEVNQVBfTk9fWFNJPC9hPiA9IDMwNTcgOiAzMDU3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzEiPlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzE8L2E+ID0gMzA1OCA6IDMwNTgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzEiIGlkPSJYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzEiPlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMTwvYT4gPSAzMDU5IDogMzA1OQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8xIiBpZD0iWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzEiPlhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8xPC9hPiA9IDMwNjAgOiAzMDYwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzIiIGlkPSJYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzJfMiI+WE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzI8L2E+ID0gMzA2MSA6IDMwNjEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9DVkNfU0lNUExFX1RZUEUiIGlkPSJYTUxfU0NIRU1BUF9DVkNfU0lNUExFX1RZUEUiPlhNTF9TQ0hFTUFQX0NWQ19TSU1QTEVfVFlQRTwvYT4gPSAzMDYyIDogMzA2MgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSI+WE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xPC9hPiA9IDMwNjMgOiAzMDYzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8xXzEiIGlkPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMSI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8xXzE8L2E+ID0gMzA2NCA6IDMwNjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMiIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8yIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMjwvYT4gPSAzMDY1IDogMzA2NQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMiIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMiI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yPC9hPiA9IDMwNjYgOiAzMDY2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzEiIGlkPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMSI+WE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzE8L2E+ID0gMzA2NyA6IDMwNjcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMiIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8yIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMjwvYT4gPSAzMDY4IDogMzA2OAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0lOVEVSTkFMIiBpZD0iWE1MX1NDSEVNQVBfSU5URVJOQUwiPlhNTF9TQ0hFTUFQX0lOVEVSTkFMPC9hPiA9IDMwNjkgOiAzMDY5IG5vbi1XM0MKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQyIgaWQ9IlhNTF9TQ0hFTUFQX05PVF9ERVRFUk1JTklTVElDIj5YTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQzwvYT4gPSAzMDcwIDogMzA3MCBub24tVzNDCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8xIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8xIj5YTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzE8L2E+ID0gMzA3MSA6IDMwNzEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzIiIGlkPSJYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzIiPlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMjwvYT4gPSAzMDcyIDogMzA3MgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMyIgaWQ9IlhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMyI+WE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8zPC9hPiA9IDMwNzMgOiAzMDczCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfTUdfUFJPUFNfQ09SUkVDVF8xIiBpZD0iWE1MX1NDSEVNQVBfTUdfUFJPUFNfQ09SUkVDVF8xIj5YTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzE8L2E+ID0gMzA3NCA6IDMwNzQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzIiIGlkPSJYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMjwvYT4gPSAzMDc1IDogMzA3NQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19DVF8xIiBpZD0iWE1MX1NDSEVNQVBfU1JDX0NUXzEiPlhNTF9TQ0hFTUFQX1NSQ19DVF8xPC9hPiA9IDMwNzYgOiAzMDc2CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMyIgaWQ9IlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzMiPlhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzM8L2E+ID0gMzA3NyA6IDMwNzcKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUXzIiIGlkPSJYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1RfMjwvYT4gPSAzMDc4IDogMzA3OAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8yIiBpZD0iWE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzIiPlhNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8yPC9hPiA9IDMwNzkgOiAzMDc5CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQ19QUk9QU19DT1JSRUNUIiBpZD0iWE1MX1NDSEVNQVBfQ19QUk9QU19DT1JSRUNUIj5YTUxfU0NIRU1BUF9DX1BST1BTX0NPUlJFQ1Q8L2E+ID0gMzA4MCA6IDMwODAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUiIGlkPSJYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUiPlhNTF9TQ0hFTUFQX1NSQ19SRURFRklORTwvYT4gPSAzMDgxIDogMzA4MQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1NSQ19JTVBPUlQiIGlkPSJYTUxfU0NIRU1BUF9TUkNfSU1QT1JUIj5YTUxfU0NIRU1BUF9TUkNfSU1QT1JUPC9hPiA9IDMwODIgOiAzMDgyCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfV0FSTl9TS0lQX1NDSEVNQSIgaWQ9IlhNTF9TQ0hFTUFQX1dBUk5fU0tJUF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX1dBUk5fU0tJUF9TQ0hFTUE8L2E+ID0gMzA4MyA6IDMwODMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9XQVJOX1VOTE9DQVRFRF9TQ0hFTUEiIGlkPSJYTUxfU0NIRU1BUF9XQVJOX1VOTE9DQVRFRF9TQ0hFTUEiPlhNTF9TQ0hFTUFQX1dBUk5fVU5MT0NBVEVEX1NDSEVNQTwvYT4gPSAzMDg0IDogMzA4NAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9SRURFQ0xfUFJPSCIgaWQ9IlhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9SRURFQ0xfUFJPSCI+WE1MX1NDSEVNQVBfV0FSTl9BVFRSX1JFREVDTF9QUk9IPC9hPiA9IDMwODUgOiAzMDg1CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1BPSU5UTEVTU19QUk9IIiBpZD0iWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1BPSU5UTEVTU19QUk9IIj5YTUxfU0NIRU1BUF9XQVJOX0FUVFJfUE9JTlRMRVNTX1BST0g8L2E+ID0gMzA4NiA6IDMwODUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BR19QUk9QU19DT1JSRUNUIiBpZD0iWE1MX1NDSEVNQVBfQUdfUFJPUFNfQ09SUkVDVCI+WE1MX1NDSEVNQVBfQUdfUFJPUFNfQ09SUkVDVDwvYT4gPSAzMDg3IDogMzA4NgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMiIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMiI+WE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8yPC9hPiA9IDMwODggOiAzMDg3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVCIgaWQ9IlhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1QiPlhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1Q8L2E+ID0gMzA4OSA6IDMwODgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMyIgaWQ9IlhNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8zIj5YTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMzwvYT4gPSAzMDkwIDogMzA4OQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCIgaWQ9IlhNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCI+WE1MX1NDSEVNQVBfQ09TX0FMTF9MSU1JVEVEPC9hPiA9IDMwOTEgOiAzMDkwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVRST05WX0FTU0VSVCIgaWQ9IlhNTF9TQ0hFTUFUUk9OVl9BU1NFUlQiPlhNTF9TQ0hFTUFUUk9OVl9BU1NFUlQ8L2E+ID0gNDAwMCA6IDQwMDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BVFJPTlZfUkVQT1JUIiBpZD0iWE1MX1NDSEVNQVRST05WX1JFUE9SVCI+WE1MX1NDSEVNQVRST05WX1JFUE9SVDwvYT4gPSA0MDAxCisgICAgPGEgbmFtZT0iWE1MX01PRFVMRV9PUEVOIiBpZD0iWE1MX01PRFVMRV9PUEVOIj5YTUxfTU9EVUxFX09QRU48L2E+ID0gNDkwMCA6IDQ5MDAKKyAgICA8YSBuYW1lPSJYTUxfTU9EVUxFX0NMT1NFIiBpZD0iWE1MX01PRFVMRV9DTE9TRSI+WE1MX01PRFVMRV9DTE9TRTwvYT4gPSA0OTAxIDogNDkwMQorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19GT1VORF9FTEVNRU5UIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX0VMRU1FTlQiPlhNTF9DSEVDS19GT1VORF9FTEVNRU5UPC9hPiA9IDUwMDAKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfQVRUUklCVVRFIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX0FUVFJJQlVURSI+WE1MX0NIRUNLX0ZPVU5EX0FUVFJJQlVURTwvYT4gPSA1MDAxIDogNTAwMQorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19GT1VORF9URVhUIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX1RFWFQiPlhNTF9DSEVDS19GT1VORF9URVhUPC9hPiA9IDUwMDIgOiA1MDAyCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX0NEQVRBIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX0NEQVRBIj5YTUxfQ0hFQ0tfRk9VTkRfQ0RBVEE8L2E+ID0gNTAwMyA6IDUwMDMKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZUkVGIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRiI+WE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRjwvYT4gPSA1MDA0IDogNTAwNAorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19GT1VORF9FTlRJVFkiIGlkPSJYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZIj5YTUxfQ0hFQ0tfRk9VTkRfRU5USVRZPC9hPiA9IDUwMDUgOiA1MDA1CisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX1BJIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX1BJIj5YTUxfQ0hFQ0tfRk9VTkRfUEk8L2E+ID0gNTAwNiA6IDUwMDYKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfQ09NTUVOVCIgaWQ9IlhNTF9DSEVDS19GT1VORF9DT01NRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfQ09NTUVOVDwvYT4gPSA1MDA3IDogNTAwNworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19GT1VORF9ET0NUWVBFIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX0RPQ1RZUEUiPlhNTF9DSEVDS19GT1VORF9ET0NUWVBFPC9hPiA9IDUwMDggOiA1MDA4CisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0ZPVU5EX0ZSQUdNRU5UIiBpZD0iWE1MX0NIRUNLX0ZPVU5EX0ZSQUdNRU5UIj5YTUxfQ0hFQ0tfRk9VTkRfRlJBR01FTlQ8L2E+ID0gNTAwOSA6IDUwMDkKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfRk9VTkRfTk9UQVRJT04iIGlkPSJYTUxfQ0hFQ0tfRk9VTkRfTk9UQVRJT04iPlhNTF9DSEVDS19GT1VORF9OT1RBVElPTjwvYT4gPSA1MDEwIDogNTAxMAorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19VTktOT1dOX05PREUiIGlkPSJYTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFIj5YTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFPC9hPiA9IDUwMTEgOiA1MDExCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX0VOVElUWV9UWVBFIiBpZD0iWE1MX0NIRUNLX0VOVElUWV9UWVBFIj5YTUxfQ0hFQ0tfRU5USVRZX1RZUEU8L2E+ID0gNTAxMiA6IDUwMTIKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9fUEFSRU5UIiBpZD0iWE1MX0NIRUNLX05PX1BBUkVOVCI+WE1MX0NIRUNLX05PX1BBUkVOVDwvYT4gPSA1MDEzIDogNTAxMworICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT19ET0MiIGlkPSJYTUxfQ0hFQ0tfTk9fRE9DIj5YTUxfQ0hFQ0tfTk9fRE9DPC9hPiA9IDUwMTQgOiA1MDE0CisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PX05BTUUiIGlkPSJYTUxfQ0hFQ0tfTk9fTkFNRSI+WE1MX0NIRUNLX05PX05BTUU8L2E+ID0gNTAxNSA6IDUwMTUKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9fRUxFTSIgaWQ9IlhNTF9DSEVDS19OT19FTEVNIj5YTUxfQ0hFQ0tfTk9fRUxFTTwvYT4gPSA1MDE2IDogNTAxNgorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19XUk9OR19ET0MiIGlkPSJYTUxfQ0hFQ0tfV1JPTkdfRE9DIj5YTUxfQ0hFQ0tfV1JPTkdfRE9DPC9hPiA9IDUwMTcgOiA1MDE3CisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PX1BSRVYiIGlkPSJYTUxfQ0hFQ0tfTk9fUFJFViI+WE1MX0NIRUNLX05PX1BSRVY8L2E+ID0gNTAxOCA6IDUwMTgKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfV1JPTkdfUFJFViIgaWQ9IlhNTF9DSEVDS19XUk9OR19QUkVWIj5YTUxfQ0hFQ0tfV1JPTkdfUFJFVjwvYT4gPSA1MDE5IDogNTAxOQorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT19ORVhUIiBpZD0iWE1MX0NIRUNLX05PX05FWFQiPlhNTF9DSEVDS19OT19ORVhUPC9hPiA9IDUwMjAgOiA1MDIwCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX1dST05HX05FWFQiIGlkPSJYTUxfQ0hFQ0tfV1JPTkdfTkVYVCI+WE1MX0NIRUNLX1dST05HX05FWFQ8L2E+ID0gNTAyMSA6IDUwMjEKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9UX0RURCIgaWQ9IlhNTF9DSEVDS19OT1RfRFREIj5YTUxfQ0hFQ0tfTk9UX0RURDwvYT4gPSA1MDIyIDogNTAyMgorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT1RfQVRUUiIgaWQ9IlhNTF9DSEVDS19OT1RfQVRUUiI+WE1MX0NIRUNLX05PVF9BVFRSPC9hPiA9IDUwMjMgOiA1MDIzCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PVF9BVFRSX0RFQ0wiIGlkPSJYTUxfQ0hFQ0tfTk9UX0FUVFJfREVDTCI+WE1MX0NIRUNLX05PVF9BVFRSX0RFQ0w8L2E+ID0gNTAyNCA6IDUwMjQKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9UX0VMRU1fREVDTCIgaWQ9IlhNTF9DSEVDS19OT1RfRUxFTV9ERUNMIj5YTUxfQ0hFQ0tfTk9UX0VMRU1fREVDTDwvYT4gPSA1MDI1IDogNTAyNQorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT1RfRU5USVRZX0RFQ0wiIGlkPSJYTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMIj5YTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMPC9hPiA9IDUwMjYgOiA1MDI2CisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PVF9OU19ERUNMIiBpZD0iWE1MX0NIRUNLX05PVF9OU19ERUNMIj5YTUxfQ0hFQ0tfTk9UX05TX0RFQ0w8L2E+ID0gNTAyNyA6IDUwMjcKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9fSFJFRiIgaWQ9IlhNTF9DSEVDS19OT19IUkVGIj5YTUxfQ0hFQ0tfTk9fSFJFRjwvYT4gPSA1MDI4IDogNTAyOAorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19XUk9OR19QQVJFTlQiIGlkPSJYTUxfQ0hFQ0tfV1JPTkdfUEFSRU5UIj5YTUxfQ0hFQ0tfV1JPTkdfUEFSRU5UPC9hPiA9IDUwMjkgOiA1MDI5CisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05TX1NDT1BFIiBpZD0iWE1MX0NIRUNLX05TX1NDT1BFIj5YTUxfQ0hFQ0tfTlNfU0NPUEU8L2E+ID0gNTAzMCA6IDUwMzAKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTlNfQU5DRVNUT1IiIGlkPSJYTUxfQ0hFQ0tfTlNfQU5DRVNUT1IiPlhNTF9DSEVDS19OU19BTkNFU1RPUjwvYT4gPSA1MDMxIDogNTAzMQorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19OT1RfVVRGOCIgaWQ9IlhNTF9DSEVDS19OT1RfVVRGOCI+WE1MX0NIRUNLX05PVF9VVEY4PC9hPiA9IDUwMzIgOiA1MDMyCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX05PX0RJQ1QiIGlkPSJYTUxfQ0hFQ0tfTk9fRElDVCI+WE1MX0NIRUNLX05PX0RJQ1Q8L2E+ID0gNTAzMyA6IDUwMzMKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTk9UX05DTkFNRSIgaWQ9IlhNTF9DSEVDS19OT1RfTkNOQU1FIj5YTUxfQ0hFQ0tfTk9UX05DTkFNRTwvYT4gPSA1MDM0IDogNTAzNAorICAgIDxhIG5hbWU9IlhNTF9DSEVDS19PVVRTSURFX0RJQ1QiIGlkPSJYTUxfQ0hFQ0tfT1VUU0lERV9ESUNUIj5YTUxfQ0hFQ0tfT1VUU0lERV9ESUNUPC9hPiA9IDUwMzUgOiA1MDM1CisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX1dST05HX05BTUUiIGlkPSJYTUxfQ0hFQ0tfV1JPTkdfTkFNRSI+WE1MX0NIRUNLX1dST05HX05BTUU8L2E+ID0gNTAzNiA6IDUwMzYKKyAgICA8YSBuYW1lPSJYTUxfQ0hFQ0tfTkFNRV9OT1RfTlVMTCIgaWQ9IlhNTF9DSEVDS19OQU1FX05PVF9OVUxMIj5YTUxfQ0hFQ0tfTkFNRV9OT1RfTlVMTDwvYT4gPSA1MDM3IDogNTAzNworICAgIDxhIG5hbWU9IlhNTF9JMThOX05PX05BTUUiIGlkPSJYTUxfSTE4Tl9OT19OQU1FIj5YTUxfSTE4Tl9OT19OQU1FPC9hPiA9IDYwMDAKKyAgICA8YSBuYW1lPSJYTUxfSTE4Tl9OT19IQU5ETEVSIiBpZD0iWE1MX0kxOE5fTk9fSEFORExFUiI+WE1MX0kxOE5fTk9fSEFORExFUjwvYT4gPSA2MDAxIDogNjAwMQorICAgIDxhIG5hbWU9IlhNTF9JMThOX0VYQ0VTU19IQU5ETEVSIiBpZD0iWE1MX0kxOE5fRVhDRVNTX0hBTkRMRVIiPlhNTF9JMThOX0VYQ0VTU19IQU5ETEVSPC9hPiA9IDYwMDIgOiA2MDAyCisgICAgPGEgbmFtZT0iWE1MX0kxOE5fQ09OVl9GQUlMRUQiIGlkPSJYTUxfSTE4Tl9DT05WX0ZBSUxFRCI+WE1MX0kxOE5fQ09OVl9GQUlMRUQ8L2E+ID0gNjAwMyA6IDYwMDMKKyAgICA8YSBuYW1lPSJYTUxfSTE4Tl9OT19PVVRQVVQiIGlkPSJYTUxfSTE4Tl9OT19PVVRQVVQiPlhNTF9JMThOX05PX09VVFBVVDwvYT4gPSA2MDA0IDogNjAwNAorICAgIDxhIG5hbWU9IlhNTF9DSEVDS18iIGlkPSJYTUxfQ0hFQ0tfIj5YTUxfQ0hFQ0tfPC9hPiA9IDYwMDUgOiA1MDMzCisgICAgPGEgbmFtZT0iWE1MX0NIRUNLX1giIGlkPSJYTUxfQ0hFQ0tfWCI+WE1MX0NIRUNLX1g8L2E+ID0gNjAwNiA6IDUwMworfQorPC9wcmU+PGgzPjxhIG5hbWU9ImluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYyIgaWQ9ImluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYyI+PC9hPkZ1bmN0aW9uOiBpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCWluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYwkoPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sR2VuZXJpY0Vycm9yRnVuYyI+eG1sR2VuZXJpY0Vycm9yRnVuYzwvYT4gKiBoYW5kbGVyKTxiciAvPgorPC9wcmU+PHA+U2V0IG9yIHJlc2V0IChpZiBOVUxMKSB0aGUgZGVmYXVsdCBoYW5kbGVyIGZvciBnZW5lcmljIGVycm9ycyB0byB0aGUgYnVpbHRpbiBlcnJvciBmdW5jdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oYW5kbGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaGFuZGxlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENvcHlFcnJvciIgaWQ9InhtbENvcHlFcnJvciI+PC9hPkZ1bmN0aW9uOiB4bWxDb3B5RXJyb3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sQ29weUVycm9yCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gZnJvbSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sRXJyb3JQdHIiPnhtbEVycm9yUHRyPC9hPiB0byk8YnIgLz4KKzwvcHJlPjxwPlNhdmUgdGhlIG9yaWdpbmFsIGVycm9yIHRvIHRoZSBuZXcgcGxhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJvbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzb3VyY2UgZXJyb3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRvPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHRhcmdldCBlcnJvcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3R4dEdldExhc3RFcnJvciIgaWQ9InhtbEN0eHRHZXRMYXN0RXJyb3IiPjwvYT5GdW5jdGlvbjogeG1sQ3R4dEdldExhc3RFcnJvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4JeG1sQ3R4dEdldExhc3RFcnJvcgkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgbGFzdCBwYXJzaW5nIGVycm9yIHJlZ2lzdGVyZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm8gZXJyb3Igb2NjdXJlZCBvciBhIHBvaW50ZXIgdG8gdGhlIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ3R4dFJlc2V0TGFzdEVycm9yIiBpZD0ieG1sQ3R4dFJlc2V0TGFzdEVycm9yIj48L2E+RnVuY3Rpb246IHhtbEN0eHRSZXNldExhc3RFcnJvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sQ3R4dFJlc2V0TGFzdEVycm9yCQkodm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkNsZWFudXAgdGhlIGxhc3QgZ2xvYmFsIGVycm9yIHJlZ2lzdGVyZWQuIEZvciBwYXJzaW5nIGVycm9yIHRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSB3ZWxsLWZvcm1lZG5lc3MgcmVzdWx0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2VuZXJpY0Vycm9yRnVuYyIgaWQ9InhtbEdlbmVyaWNFcnJvckZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxHZW5lcmljRXJyb3JGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sR2VuZXJpY0Vycm9yRnVuYwordm9pZAl4bWxHZW5lcmljRXJyb3JGdW5jCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLikKKzwvcHJlPjxwPlNpZ25hdHVyZSBvZiB0aGUgZnVuY3Rpb24gdG8gdXNlIHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgYW5kIG5vIHBhcnNpbmcgb3IgdmFsaWRpdHkgY29udGV4dCBhdmFpbGFibGUgLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcGFyc2luZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHRyYSBhcmd1bWVudHMgb2YgdGhlIHZhcmFncyB0byBmb3JtYXQgdGhlIG1lc3NhZ2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbEdldExhc3RFcnJvciIgaWQ9InhtbEdldExhc3RFcnJvciI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRMYXN0RXJyb3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxFcnJvclB0ciI+eG1sRXJyb3JQdHI8L2E+CXhtbEdldExhc3RFcnJvcgkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5HZXQgdGhlIGxhc3QgZ2xvYmFsIGVycm9yIHJlZ2lzdGVyZWQuIFRoaXMgaXMgcGVyIHRocmVhZCBpZiBjb21waWxlZCB3aXRoIHRocmVhZCBzdXBwb3J0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPk5VTEwgaWYgbm8gZXJyb3Igb2NjdXJlZCBvciBhIHBvaW50ZXIgdG8gdGhlIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyRXJyb3IiIGlkPSJ4bWxQYXJzZXJFcnJvciI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJFcnJvcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VyRXJyb3IJCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLik8YnIgLz4KKzwvcHJlPjxwPkRpc3BsYXkgYW5kIGZvcm1hdCBhbiBlcnJvciBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwgcG9zaXRpb24gYW5kIGV4dHJhIHBhcmFtZXRlcnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dCIgaWQ9InhtbFBhcnNlclByaW50RmlsZUNvbnRleHQiPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlucHV0KTxiciAvPgorPC9wcmU+PHA+RGlzcGxheXMgY3VycmVudCBjb250ZXh0IHdpdGhpbiB0aGUgaW5wdXQgY29udGVudCBmb3IgZXJyb3IgdHJhY2tpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dFB0ciI+eG1sUGFyc2VySW5wdXRQdHI8L2E+IGlucHV0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyUHJpbnRGaWxlSW5mbyIgaWQ9InhtbFBhcnNlclByaW50RmlsZUluZm8iPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VyUHJpbnRGaWxlSW5mbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VyUHJpbnRGaWxlSW5mbwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRQdHIiPnhtbFBhcnNlcklucHV0UHRyPC9hPiBpbnB1dCk8YnIgLz4KKzwvcHJlPjxwPkRpc3BsYXlzIHRoZSBhc3NvY2lhdGVkIGZpbGUgYW5kIGxpbmUgaW5mb3JtYXRpb25zIGZvciB0aGUgY3VycmVudCBpbnB1dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0UHRyIj54bWxQYXJzZXJJbnB1dFB0cjwvYT4gaW5wdXQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxQYXJzZXJWYWxpZGl0eUVycm9yIiBpZD0ieG1sUGFyc2VyVmFsaWRpdHlFcnJvciI+PC9hPkZ1bmN0aW9uOiB4bWxQYXJzZXJWYWxpZGl0eUVycm9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxQYXJzZXJWYWxpZGl0eUVycm9yCQkodm9pZCAqIGN0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLik8YnIgLz4KKzwvcHJlPjxwPkRpc3BsYXkgYW5kIGZvcm1hdCBhbiB2YWxpZGl0eSBlcnJvciBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwgcG9zaXRpb24gYW5kIGV4dHJhIHBhcmFtZXRlcnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nIiBpZD0ieG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nIj48L2E+RnVuY3Rpb246IHhtbFBhcnNlclZhbGlkaXR5V2FybmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKTxiciAvPgorPC9wcmU+PHA+RGlzcGxheSBhbmQgZm9ybWF0IGEgdmFsaWRpdHkgd2FybmluZyBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwgcG9zaXRpb24gYW5kIGV4dHJhIHBhcmFtZXRlcnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUGFyc2VyV2FybmluZyIgaWQ9InhtbFBhcnNlcldhcm5pbmciPjwvYT5GdW5jdGlvbjogeG1sUGFyc2VyV2FybmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUGFyc2VyV2FybmluZwkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pPGJyIC8+Cis8L3ByZT48cD5EaXNwbGF5IGFuZCBmb3JtYXQgYSB3YXJuaW5nIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQgZXh0cmEgcGFyYW1ldGVycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZXNldEVycm9yIiBpZD0ieG1sUmVzZXRFcnJvciI+PC9hPkZ1bmN0aW9uOiB4bWxSZXNldEVycm9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZXNldEVycm9yCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gZXJyKTxiciAvPgorPC9wcmU+PHA+Q2xlYW51cCB0aGUgZXJyb3IuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZXNldExhc3RFcnJvciIgaWQ9InhtbFJlc2V0TGFzdEVycm9yIj48L2E+RnVuY3Rpb246IHhtbFJlc2V0TGFzdEVycm9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxSZXNldExhc3RFcnJvcgkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBsYXN0IGdsb2JhbCBlcnJvciByZWdpc3RlcmVkLiBGb3IgcGFyc2luZyBlcnJvciB0aGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgd2VsbC1mb3JtZWRuZXNzIHJlc3VsdC48L3A+Cis8aDM+PGEgbmFtZT0ieG1sU2V0R2VuZXJpY0Vycm9yRnVuYyIgaWQ9InhtbFNldEdlbmVyaWNFcnJvckZ1bmMiPjwvYT5GdW5jdGlvbjogeG1sU2V0R2VuZXJpY0Vycm9yRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2V0R2VuZXJpY0Vycm9yRnVuYwkJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEdlbmVyaWNFcnJvckZ1bmMiPnhtbEdlbmVyaWNFcnJvckZ1bmM8L2E+IGhhbmRsZXIpPGJyIC8+Cis8L3ByZT48cD5GdW5jdGlvbiB0byByZXNldCB0aGUgaGFuZGxlciBhbmQgdGhlIGVycm9yIGNvbnRleHQgZm9yIG91dCBvZiBjb250ZXh0IGVycm9yIG1lc3NhZ2VzLiBUaGlzIHNpbXBseSBtZWFucyB0aGF0IEBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkIGZvciBzdWJzZXF1ZW50IGVycm9yIG1lc3NhZ2VzIHdoaWxlIG5vdCBwYXJzaW5nIG5vciB2YWxpZGF0aW5nLiBBbmQgQGN0eCB3aWxsIGJlIHBhc3NlZCBhcyBmaXJzdCBhcmd1bWVudCB0byBAaGFuZGxlciBPbmUgY2FuIHNpbXBseSBmb3JjZSBtZXNzYWdlcyB0byBiZSBlbWl0dGVkIHRvIGFub3RoZXIgRklMRSAqIHRoYW4gc3RkZXJyIGJ5IHNldHRpbmcgQGN0eCB0byB0aGlzIGZpbGUgaGFuZGxlIGFuZCBAaGFuZGxlciB0byBOVUxMLiBGb3IgbXVsdGktdGhyZWFkZWQgYXBwbGljYXRpb25zLCB0aGlzIG11c3QgYmUgc2V0IHNlcGFyYXRlbHkgZm9yIGVhY2ggdGhyZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBlcnJvciBoYW5kbGluZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oYW5kbGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGhhbmRsZXIgZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jIiBpZD0ieG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyI+PC9hPkZ1bmN0aW9uOiB4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jCSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBoYW5kbGVyKTxiciAvPgorPC9wcmU+PHA+RnVuY3Rpb24gdG8gcmVzZXQgdGhlIGhhbmRsZXIgYW5kIHRoZSBlcnJvciBjb250ZXh0IGZvciBvdXQgb2YgY29udGV4dCBzdHJ1Y3R1cmVkIGVycm9yIG1lc3NhZ2VzLiBUaGlzIHNpbXBseSBtZWFucyB0aGF0IEBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkIGZvciBzdWJzZXF1ZW50IGVycm9yIG1lc3NhZ2VzIHdoaWxlIG5vdCBwYXJzaW5nIG5vciB2YWxpZGF0aW5nLiBBbmQgQGN0eCB3aWxsIGJlIHBhc3NlZCBhcyBmaXJzdCBhcmd1bWVudCB0byBAaGFuZGxlciBGb3IgbXVsdGktdGhyZWFkZWQgYXBwbGljYXRpb25zLCB0aGlzIG11c3QgYmUgc2V0IHNlcGFyYXRlbHkgZm9yIGVhY2ggdGhyZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBlcnJvciBoYW5kbGluZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5oYW5kbGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGhhbmRsZXIgZnVuY3Rpb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIiBpZD0ieG1sU3RydWN0dXJlZEVycm9yRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jCit2b2lkCXhtbFN0cnVjdHVyZWRFcnJvckZ1bmMJCSh2b2lkICogdXNlckRhdGEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yUHRyIj54bWxFcnJvclB0cjwvYT4gZXJyb3IpCis8L3ByZT48cD5TaWduYXR1cmUgb2YgdGhlIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGFuZCB0aGUgbW9kdWxlIGhhbmRsZXMgdGhlIG5ldyBlcnJvciByZXBvcnRpbmcgbWVjaGFuaXNtLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51c2VyRGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dXNlciBwcm92aWRlZCBkYXRhIGZvciB0aGUgZXJyb3IgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVycm9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgYmVpbmcgcmFpc2VkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbGV4cG9ydHMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbGV4cG9ydHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWRmNGMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sZXhwb3J0cy5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB4bWxleHBvcnRzIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeG1sZXhwb3J0cyBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwiPjxpbWcgc3JjPSJsZWZ0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iUHJldiIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sIj54bWxlcnJvcjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbG1lbW9yeTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+bWFjcm9zIGZvciBtYXJraW5nIHN5bWJvbHMgYXMgZXhwb3J0YWJsZS9pbXBvcnRhYmxlLiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0RMTF9JTVBPUlQiPkxJQlhNTF9ETExfSU1QT1JUPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxDQUxMIj5YTUxDQUxMPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxDREVDTCI+WE1MQ0RFQ0w8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hNTFBVQkZVTiI+WE1MUFVCRlVOPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxQVUJWQVIiPlhNTFBVQlZBUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjX1JFRU5UUkFOVCI+X1JFRU5UUkFOVDwvYT48L3ByZT48aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9ETExfSU1QT1JUIiBpZD0iTElCWE1MX0RMTF9JTVBPUlQiPjwvYT5NYWNybzogTElCWE1MX0RMTF9JTVBPUlQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfRExMX0lNUE9SVDwvcHJlPjxwPjwvcD4KKzxoMz48YSBuYW1lPSJYTUxDQUxMIiBpZD0iWE1MQ0FMTCI+PC9hPk1hY3JvOiBYTUxDQUxMPC9oMz48cHJlPiNkZWZpbmUgWE1MQ0FMTDwvcHJlPjxwPjwvcD4KKzxoMz48YSBuYW1lPSJYTUxDREVDTCIgaWQ9IlhNTENERUNMIj48L2E+TWFjcm86IFhNTENERUNMPC9oMz48cHJlPiNkZWZpbmUgWE1MQ0RFQ0w8L3ByZT48cD48L3A+Cis8aDM+PGEgbmFtZT0iWE1MUFVCRlVOIiBpZD0iWE1MUFVCRlVOIj48L2E+TWFjcm86IFhNTFBVQkZVTjwvaDM+PHByZT4jZGVmaW5lIFhNTFBVQkZVTjwvcHJlPjxwPjwvcD4KKzxoMz48YSBuYW1lPSJYTUxQVUJWQVIiIGlkPSJYTUxQVUJWQVIiPjwvYT5NYWNybzogWE1MUFVCVkFSPC9oMz48cHJlPiNkZWZpbmUgWE1MUFVCVkFSPC9wcmU+PHA+PC9wPgorPGgzPjxhIG5hbWU9Il9SRUVOVFJBTlQiIGlkPSJfUkVFTlRSQU5UIj48L2E+TWFjcm86IF9SRUVOVFJBTlQ8L2gzPjxwcmU+I2RlZmluZSBfUkVFTlRSQU5UPC9wcmU+PHA+PC9wPgorPHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0Mzk5Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbApAQCAtMCwwICsxLDEwNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHhtbG1lbW9yeSBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIHhtbG1lbW9yeSBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXhtbGV4cG9ydHMuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXhtbGV4cG9ydHMuaHRtbCI+eG1sZXhwb3J0czwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteG1sbW9kdWxlLmh0bWwiPnhtbG1vZHVsZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+cHJvdmlkZXMgaW50ZXJmYWNlcyBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IsIGluY2x1ZGluZyBkZWJ1Z2dpbmcgY2FwYWJpbGl0aWVzLiA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlZhcmlhYmxlIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPiA8YSBuYW1lPSJ4bWxNYWxsb2MiIGlkPSJ4bWxNYWxsb2MiPjwvYT54bWxNYWxsb2MKKworPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlZhcmlhYmxlIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPiA8YSBuYW1lPSJ4bWxNYWxsb2NBdG9taWMiIGlkPSJ4bWxNYWxsb2NBdG9taWMiPjwvYT54bWxNYWxsb2NBdG9taWMKKworPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlZhcmlhYmxlIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPiA8YSBuYW1lPSJ4bWxNZW1TdHJkdXAiIGlkPSJ4bWxNZW1TdHJkdXAiPjwvYT54bWxNZW1TdHJkdXAKKworPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlZhcmlhYmxlIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+IDxhIG5hbWU9InhtbFJlYWxsb2MiIGlkPSJ4bWxSZWFsbG9jIj48L2E+eG1sUmVhbGxvYworCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sQ2xlYW51cE1lbW9yeSI+eG1sQ2xlYW51cE1lbW9yeTwvYT4JCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+CQkJKHZvaWQgKiBtZW0pCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEdjTWVtR2V0Ij54bWxHY01lbUdldDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEZyZWVGdW5jIj54bWxGcmVlRnVuYzwvYT4gKiBmcmVlRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+ICogbWFsbG9jRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+ICogbWFsbG9jQXRvbWljRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT4gKiByZWFsbG9jRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+ICogc3RyZHVwRnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEdjTWVtU2V0dXAiPnhtbEdjTWVtU2V0dXA8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxGcmVlRnVuYyI+eG1sRnJlZUZ1bmM8L2E+IGZyZWVGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gbWFsbG9jRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+IG1hbGxvY0F0b21pY0Z1bmMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+IHJlYWxsb2NGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gc3RyZHVwRnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEluaXRNZW1vcnkiPnhtbEluaXRNZW1vcnk8L2E+CQkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxNYWxsb2NBdG9taWNMb2MiPnhtbE1hbGxvY0F0b21pY0xvYzwvYT4JCShzaXplX3Qgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxiciAvPgkJCQkJIGludCBsaW5lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPgordm9pZCAqCTxhIGhyZWY9IiN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPgkJCShzaXplX3Qgc2l6ZSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgk8YSBocmVmPSIjeG1sTWFsbG9jTG9jIj54bWxNYWxsb2NMb2M8L2E+CQkJKHNpemVfdCBzaXplLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyIC8+CQkJCQkgaW50IGxpbmUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxNZW1CbG9ja3MiPnhtbE1lbUJsb2NrczwvYT4JCQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxNZW1EaXNwbGF5Ij54bWxNZW1EaXNwbGF5PC9hPgkJCShGSUxFICogZnApPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sTWVtRGlzcGxheUxhc3QiPnhtbE1lbURpc3BsYXlMYXN0PC9hPgkJKEZJTEUgKiBmcCwgPGJyIC8+CQkJCQkgbG9uZyBuYkJ5dGVzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbE1lbUZyZWUiPnhtbE1lbUZyZWU8L2E+CQkJKHZvaWQgKiBwdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxNZW1HZXQiPnhtbE1lbUdldDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbEZyZWVGdW5jIj54bWxGcmVlRnVuYzwvYT4gKiBmcmVlRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+ICogbWFsbG9jRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFJlYWxsb2NGdW5jIj54bWxSZWFsbG9jRnVuYzwvYT4gKiByZWFsbG9jRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+ICogc3RyZHVwRnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbE1lbU1hbGxvYyI+eG1sTWVtTWFsbG9jPC9hPgkJCShzaXplX3Qgc2l6ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJPGEgaHJlZj0iI3htbE1lbVJlYWxsb2MiPnhtbE1lbVJlYWxsb2M8L2E+CQkJKHZvaWQgKiBwdHIsIDxiciAvPgkJCQkJIHNpemVfdCBzaXplKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTWVtU2V0dXAiPnhtbE1lbVNldHVwPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiBmcmVlRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+IG1hbGxvY0Z1bmMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+IHJlYWxsb2NGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gc3RyZHVwRnVuYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxNZW1TaG93Ij54bWxNZW1TaG93PC9hPgkJCShGSUxFICogZnAsIDxiciAvPgkJCQkJIGludCBucik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jaGFyICoJPGEgaHJlZj0iI3htbE1lbVN0cmR1cExvYyI+eG1sTWVtU3RyZHVwTG9jPC9hPgkJCShjb25zdCBjaGFyICogc3RyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyIC8+CQkJCQkgaW50IGxpbmUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxNZW1Vc2VkIj54bWxNZW1Vc2VkPC9hPgkJCSh2b2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbE1lbW9yeUR1bXAiPnhtbE1lbW9yeUR1bXA8L2E+CQkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y2hhciAqCTxhIGhyZWY9IiN4bWxNZW1vcnlTdHJkdXAiPnhtbE1lbW9yeVN0cmR1cDwvYT4JCQkoY29uc3QgY2hhciAqIHN0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPgordm9pZCAqCTxhIGhyZWY9IiN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+CQkJKHZvaWQgKiBtZW0sIDxiciAvPgkJCQkJIHNpemVfdCBzaXplKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxSZWFsbG9jTG9jIj54bWxSZWFsbG9jTG9jPC9hPgkJCSh2b2lkICogcHRyLCA8YnIgLz4JCQkJCSBzaXplX3Qgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxiciAvPgkJCQkJIGludCBsaW5lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPgorY2hhciAqCTxhIGhyZWY9IiN4bWxTdHJkdXBGdW5jIj54bWxTdHJkdXBGdW5jPC9hPgkJCShjb25zdCBjaGFyICogc3RyKQorPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IkRFQlVHX01FTU9SWSIgaWQ9IkRFQlVHX01FTU9SWSI+PC9hPk1hY3JvOiBERUJVR19NRU1PUlk8L2gzPjxwcmU+I2RlZmluZSBERUJVR19NRU1PUlk8L3ByZT48cD48YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjREVCVUdfTUVNT1JZIj5ERUJVR19NRU1PUlk8L2E+IHJlcGxhY2VzIHRoZSBhbGxvY2F0b3Igd2l0aCBhIGNvbGxlY3QgYW5kIGRlYnVnIHNoZWxsIHRvIHRoZSBsaWJjIGFsbG9jYXRvci4gPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI0RFQlVHX01FTU9SWSI+REVCVUdfTUVNT1JZPC9hPiBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWQgd2hlbiBkZWJ1Z2dpbmcgbGlieG1sIGkuZS4gaWYgbGlieG1sIGhhcyBiZWVuIGNvbmZpZ3VyZWQgd2l0aCAtLXdpdGgtZGVidWctbWVtIHRvby4gI2RlZmluZSBERUJVR19NRU1PUllfRlJFRUQgI2RlZmluZSA8YSBocmVmPSJsaWJ4bWwteG1sdmVyc2lvbi5odG1sI0RFQlVHX01FTU9SWV9MT0NBVElPTiI+REVCVUdfTUVNT1JZX0xPQ0FUSU9OPC9hPjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxDbGVhbnVwTWVtb3J5IiBpZD0ieG1sQ2xlYW51cE1lbW9yeSI+PC9hPkZ1bmN0aW9uOiB4bWxDbGVhbnVwTWVtb3J5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxDbGVhbnVwTWVtb3J5CQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdXAgYWxsIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSBsaWJyYXJ5IGZvciBpdHMgb3duIHVzZS4gVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBieSB1c2VyIGxldmVsIGNvZGUuPC9wPgorPGgzPjxhIG5hbWU9InhtbEZyZWVGdW5jIiBpZD0ieG1sRnJlZUZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxGcmVlRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbEZyZWVGdW5jCit2b2lkCXhtbEZyZWVGdW5jCQkJKHZvaWQgKiBtZW0pCis8L3ByZT48cD5TaWduYXR1cmUgZm9yIGEgZnJlZSgpIGltcGxlbWVudGF0aW9uLjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tZW08L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGFscmVhZHkgYWxsb2NhdGVkIGJsb2NrIG9mIG1lbW9yeTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sR2NNZW1HZXQiIGlkPSJ4bWxHY01lbUdldCI+PC9hPkZ1bmN0aW9uOiB4bWxHY01lbUdldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxHY01lbUdldAkJCSg8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiAqIGZyZWVGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gKiBtYWxsb2NGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gKiBtYWxsb2NBdG9taWNGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPiAqIHJlYWxsb2NGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gKiBzdHJkdXBGdW5jKTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIHNldCBjdXJyZW50bHkgaW4gdXNlIFRoZSBtYWxsb2NBdG9taWNGdW5jIGlzIHNwZWNpYWxpemVkIGZvciBhdG9taWMgYmxvY2sgYWxsb2NhdGlvbnMgKGkuZS4gb2YgYXJlYXMgdXNlZnVsIGZvciBnYXJiYWdlIGNvbGxlY3RlZCBtZW1vcnkgYWxsb2NhdG9yczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyZWVGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSBmcmVlKCkgZnVuY3Rpb24gaW4gdXNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tYWxsb2NGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSBtYWxsb2MoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1hbGxvY0F0b21pY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIGF0b21pYyBtYWxsb2MoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWxsb2NGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSByZWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJkdXBGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wbGFjZSB0byBzYXZlIHRoZSBzdHJkdXAoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb24gc3VjY2VzczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEdjTWVtU2V0dXAiIGlkPSJ4bWxHY01lbVNldHVwIj48L2E+RnVuY3Rpb246IHhtbEdjTWVtU2V0dXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sR2NNZW1TZXR1cAkJCSg8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiBmcmVlRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+IG1hbGxvY0Z1bmMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxNYWxsb2NGdW5jIj54bWxNYWxsb2NGdW5jPC9hPiBtYWxsb2NBdG9taWNGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPiByZWFsbG9jRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbFN0cmR1cEZ1bmMiPnhtbFN0cmR1cEZ1bmM8L2E+IHN0cmR1cEZ1bmMpPGJyIC8+Cis8L3ByZT48cD5PdmVycmlkZSB0aGUgZGVmYXVsdCBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucyB3aXRoIGEgbmV3IHNldCBUaGlzIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBsaWJ4bWwgcm91dGluZXMgISBUaGUgbWFsbG9jQXRvbWljRnVuYyBpcyBzcGVjaWFsaXplZCBmb3IgYXRvbWljIGJsb2NrIGFsbG9jYXRpb25zIChpLmUuIG9mIGFyZWFzIHVzZWZ1bCBmb3IgZ2FyYmFnZSBjb2xsZWN0ZWQgbWVtb3J5IGFsbG9jYXRvcnMgU2hvdWxkIHRoaXMgYmUgYmxvY2tlZCBpZiB0aGVyZSB3YXMgYWxyZWFkeSBzb21lIGFsbG9jYXRpb25zIGRvbmUgPzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZyZWVGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnJlZSgpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWFsbG9jRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1hbGxvYygpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWFsbG9jQXRvbWljRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1hbGxvYygpIGZ1bmN0aW9uIHRvIHVzZSBmb3IgYXRvbWljIGFsbG9jYXRpb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFsbG9jRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlYWxsb2MoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmR1cEZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJkdXAoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb24gc3VjY2VzczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEluaXRNZW1vcnkiIGlkPSJ4bWxJbml0TWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbEluaXRNZW1vcnk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sSW5pdE1lbW9yeQkJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgbWVtb3J5IGxheWVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb24gc3VjY2VzczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE1hbGxvY0F0b21pY0xvYyIgaWQ9InhtbE1hbGxvY0F0b21pY0xvYyI+PC9hPkZ1bmN0aW9uOiB4bWxNYWxsb2NBdG9taWNMb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sTWFsbG9jQXRvbWljTG9jCQkoc2l6ZV90IHNpemUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlLCA8YnIgLz4JCQkJCSBpbnQgbGluZSk8YnIgLz4KKzwvcHJlPjxwPmEgbWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxNYWxsb2NGdW5jIiBpZD0ieG1sTWFsbG9jRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbE1hbGxvY0Z1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxNYWxsb2NGdW5jCit2b2lkICoJeG1sTWFsbG9jRnVuYwkJCShzaXplX3Qgc2l6ZSkKKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgYSBtYWxsb2MoKSBpbXBsZW1lbnRhdGlvbi48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgcmVxdWVzdGVkIGluIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBibG9jayBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxNYWxsb2NMb2MiIGlkPSJ4bWxNYWxsb2NMb2MiPjwvYT5GdW5jdGlvbjogeG1sTWFsbG9jTG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE1hbGxvY0xvYwkJCShzaXplX3Qgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxiciAvPgkJCQkJIGludCBsaW5lKTxiciAvPgorPC9wcmU+PHA+YSBtYWxsb2MoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpbGUgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5saW5lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbGluZSBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE1lbUJsb2NrcyIgaWQ9InhtbE1lbUJsb2NrcyI+PC9hPkZ1bmN0aW9uOiB4bWxNZW1CbG9ja3M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sTWVtQmxvY2tzCQkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgbnVtYmVyIG9mIG1lbW9yeSBhcmVhcyBjdXJyZW50bHkgYWxsb2NhdGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIGJsb2NrczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE1lbURpc3BsYXkiIGlkPSJ4bWxNZW1EaXNwbGF5Ij48L2E+RnVuY3Rpb246IHhtbE1lbURpc3BsYXk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE1lbURpc3BsYXkJCQkoRklMRSAqIGZwKTxiciAvPgorPC9wcmU+PHA+c2hvdyBpbi1leHRlbnNvIHRoZSBtZW1vcnkgYmxvY2tzIGFsbG9jYXRlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIEZJTEUgZGVzY3JpcHRvciB1c2VkIGFzIHRoZSBvdXRwdXQgZmlsZSwgaWYgTlVMTCwgdGhlIHJlc3VsdCBpcyB3cml0dGVuIHRvIHRoZSBmaWxlIC5tZW1vcnlsaXN0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTWVtRGlzcGxheUxhc3QiIGlkPSJ4bWxNZW1EaXNwbGF5TGFzdCI+PC9hPkZ1bmN0aW9uOiB4bWxNZW1EaXNwbGF5TGFzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTWVtRGlzcGxheUxhc3QJCShGSUxFICogZnAsIDxiciAvPgkJCQkJIGxvbmcgbmJCeXRlcyk8YnIgLz4KKzwvcHJlPjxwPnRoZSBsYXN0IG5iQnl0ZXMgb2YgbWVtb3J5IGFsbG9jYXRlZCBhbmQgbm90IGZyZWVkLCB1c2VmdWwgZm9yIGR1bXBpbmcgdGhlIG1lbW9yeSBsZWZ0IGFsbG9jYXRlZCBiZXR3ZWVuIHR3byBwbGFjZXMgYXQgcnVudGltZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBGSUxFIGRlc2NyaXB0b3IgdXNlZCBhcyB0aGUgb3V0cHV0IGZpbGUsIGlmIE5VTEwsIHRoZSByZXN1bHQgaXMgd3JpdHRlbiB0byB0aGUgZmlsZSAubWVtb3J5bGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJCeXRlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gZHVtcDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbE1lbUZyZWUiIGlkPSJ4bWxNZW1GcmVlIj48L2E+RnVuY3Rpb246IHhtbE1lbUZyZWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbE1lbUZyZWUJCQkodm9pZCAqIHB0cik8YnIgLz4KKzwvcHJlPjxwPmEgZnJlZSgpIGVxdWl2YWxlbnQsIHdpdGggZXJyb3IgY2hlY2tpbmcuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVtb3J5IGJsb2NrIHBvaW50ZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxNZW1HZXQiIGlkPSJ4bWxNZW1HZXQiPjwvYT5GdW5jdGlvbjogeG1sTWVtR2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE1lbUdldAkJCSg8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiAqIGZyZWVGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sTWFsbG9jRnVuYyI+eG1sTWFsbG9jRnVuYzwvYT4gKiBtYWxsb2NGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sUmVhbGxvY0Z1bmMiPnhtbFJlYWxsb2NGdW5jPC9hPiAqIHJlYWxsb2NGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gKiBzdHJkdXBGdW5jKTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIHNldCBjdXJyZW50bHkgaW4gdXNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnJlZUZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIGZyZWUoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1hbGxvY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIG1hbGxvYygpIGZ1bmN0aW9uIGluIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhbGxvY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIHJlYWxsb2MoKSBmdW5jdGlvbiBpbiB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cmR1cEZ1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBsYWNlIHRvIHNhdmUgdGhlIHN0cmR1cCgpIGZ1bmN0aW9uIGluIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvbiBzdWNjZXNzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTWVtTWFsbG9jIiBpZD0ieG1sTWVtTWFsbG9jIj48L2E+RnVuY3Rpb246IHhtbE1lbU1hbGxvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQgKgl4bWxNZW1NYWxsb2MJCQkoc2l6ZV90IHNpemUpPGJyIC8+Cis8L3ByZT48cD5hIG1hbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNpemU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxNZW1SZWFsbG9jIiBpZD0ieG1sTWVtUmVhbGxvYyI+PC9hPkZ1bmN0aW9uOiB4bWxNZW1SZWFsbG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCXhtbE1lbVJlYWxsb2MJCQkodm9pZCAqIHB0ciwgPGJyIC8+CQkJCQkgc2l6ZV90IHNpemUpPGJyIC8+Cis8L3ByZT48cD5hIHJlYWxsb2MoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIG1lbW9yeSBibG9jayBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgYXJlYSBvciBOVUxMIGluIGNhc2Ugb2YgbGFjayBvZiBtZW1vcnkuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTWVtU2V0dXAiIGlkPSJ4bWxNZW1TZXR1cCI+PC9hPkZ1bmN0aW9uOiB4bWxNZW1TZXR1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxNZW1TZXR1cAkJCSg8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sRnJlZUZ1bmMiPnhtbEZyZWVGdW5jPC9hPiBmcmVlRnVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sI3htbE1hbGxvY0Z1bmMiPnhtbE1hbGxvY0Z1bmM8L2E+IG1hbGxvY0Z1bmMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCN4bWxSZWFsbG9jRnVuYyI+eG1sUmVhbGxvY0Z1bmM8L2E+IHJlYWxsb2NGdW5jLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sbWVtb3J5Lmh0bWwjeG1sU3RyZHVwRnVuYyI+eG1sU3RyZHVwRnVuYzwvYT4gc3RyZHVwRnVuYyk8YnIgLz4KKzwvcHJlPjxwPk92ZXJyaWRlIHRoZSBkZWZhdWx0IG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIHdpdGggYSBuZXcgc2V0IFRoaXMgaGFzIHRvIGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIGxpYnhtbCByb3V0aW5lcyAhIFNob3VsZCB0aGlzIGJlIGJsb2NrZWQgaWYgdGhlcmUgd2FzIGFscmVhZHkgc29tZSBhbGxvY2F0aW9ucyBkb25lID88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcmVlRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZyZWUoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1hbGxvY0Z1bmM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtYWxsb2MoKSBmdW5jdGlvbiB0byB1c2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWxsb2NGdW5jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVhbGxvYygpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyZHVwRnVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmR1cCgpIGZ1bmN0aW9uIHRvIHVzZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvbiBzdWNjZXNzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTWVtU2hvdyIgaWQ9InhtbE1lbVNob3ciPjwvYT5GdW5jdGlvbjogeG1sTWVtU2hvdzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sTWVtU2hvdwkJCShGSUxFICogZnAsIDxiciAvPgkJCQkJIGludCBucik8YnIgLz4KKzwvcHJlPjxwPnNob3cgYSBzaG93IGRpc3BsYXkgb2YgdGhlIG1lbW9yeSBhbGxvY2F0ZWQsIGFuZCBkdW1wIHRoZSBAbnIgbGFzdCBhbGxvY2F0ZWQgYXJlYXMgd2hpY2ggd2VyZSBub3QgZnJlZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBGSUxFIGRlc2NyaXB0b3IgdXNlZCBhcyB0aGUgb3V0cHV0IGZpbGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5udW1iZXIgb2YgZW50cmllcyB0byBkdW1wPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTWVtU3RyZHVwTG9jIiBpZD0ieG1sTWVtU3RyZHVwTG9jIj48L2E+RnVuY3Rpb246IHhtbE1lbVN0cmR1cExvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNoYXIgKgl4bWxNZW1TdHJkdXBMb2MJCQkoY29uc3QgY2hhciAqIHN0ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxiciAvPgkJCQkJIGludCBsaW5lKTxiciAvPgorPC9wcmU+PHA+YSBzdHJkdXAoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIHN0cmluZyBwb2ludGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5lIG51bWJlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgc3RyaW5nIG9yIE5VTEwgaWYgYWxsb2NhdGlvbiBlcnJvciBvY2N1cnJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxNZW1Vc2VkIiBpZD0ieG1sTWVtVXNlZCI+PC9hPkZ1bmN0aW9uOiB4bWxNZW1Vc2VkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbE1lbVVzZWQJCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSBhbW91bnQgb2YgbWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbnQgcmVwcmVzZW50aW5nIHRoZSBhbW91bnQgb2YgbWVtb3J5IGFsbG9jYXRlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxNZW1vcnlEdW1wIiBpZD0ieG1sTWVtb3J5RHVtcCI+PC9hPkZ1bmN0aW9uOiB4bWxNZW1vcnlEdW1wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxNZW1vcnlEdW1wCQkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5EdW1wIGluLWV4dGVuc28gdGhlIG1lbW9yeSBibG9ja3MgYWxsb2NhdGVkIHRvIHRoZSBmaWxlIC5tZW1vcnlsaXN0PC9wPgorPGgzPjxhIG5hbWU9InhtbE1lbW9yeVN0cmR1cCIgaWQ9InhtbE1lbW9yeVN0cmR1cCI+PC9hPkZ1bmN0aW9uOiB4bWxNZW1vcnlTdHJkdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jaGFyICoJeG1sTWVtb3J5U3RyZHVwCQkJKGNvbnN0IGNoYXIgKiBzdHIpPGJyIC8+Cis8L3ByZT48cD5hIHN0cmR1cCgpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluaXRpYWwgc3RyaW5nIHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgbmV3IHN0cmluZyBvciBOVUxMIGlmIGFsbG9jYXRpb24gZXJyb3Igb2NjdXJyZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhbGxvY0Z1bmMiIGlkPSJ4bWxSZWFsbG9jRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFJlYWxsb2NGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sUmVhbGxvY0Z1bmMKK3ZvaWQgKgl4bWxSZWFsbG9jRnVuYwkJCSh2b2lkICogbWVtLCA8YnIgLz4JCQkJCSBzaXplX3Qgc2l6ZSkKKzwvcHJlPjxwPlNpZ25hdHVyZSBmb3IgYSByZWFsbG9jKCkgaW1wbGVtZW50YXRpb24uPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1lbTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gYWxyZWFkeSBhbGxvY2F0ZWQgYmxvY2sgb2YgbWVtb3J5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHNpemUgcmVxdWVzdGVkIGluIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ld2x5IHJlYWxsb2NhdGVkIGJsb2NrIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFJlYWxsb2NMb2MiIGlkPSJ4bWxSZWFsbG9jTG9jIj48L2E+RnVuY3Rpb246IHhtbFJlYWxsb2NMb2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sUmVhbGxvY0xvYwkJCSh2b2lkICogcHRyLCA8YnIgLz4JCQkJCSBzaXplX3Qgc2l6ZSwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxiciAvPgkJCQkJIGludCBsaW5lKTxiciAvPgorPC9wcmU+PHA+YSByZWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBtZW1vcnkgYmxvY2sgcG9pbnRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWUgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGluZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxpbmUgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJkdXBGdW5jIiBpZD0ieG1sU3RyZHVwRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFN0cmR1cEZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxTdHJkdXBGdW5jCitjaGFyICoJeG1sU3RyZHVwRnVuYwkJCShjb25zdCBjaGFyICogc3RyKQorPC9wcmU+PHA+U2lnbmF0dXJlIGZvciBhbiBzdHJkdXAoKSBpbXBsZW1lbnRhdGlvbi48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHplcm8gdGVybWluYXRlZCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb3B5IG9mIHRoZSBzdHJpbmcgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sbW9kdWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdlNmJhZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbG1vZHVsZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB4bWxtb2R1bGUgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4bWxtb2R1bGUgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14bWxtZW1vcnkuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxtZW1vcnk8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPmJhc2ljIEFQSSBmb3IgZHluYW1pYyBtb2R1bGUgbG9hZGluZywgdXNlZCBieSBsaWJleHNsdCBhZGRlZCBpbiAyLjYuMTcgPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sTW9kdWxlIj54bWxNb2R1bGU8L2E+PGJyIC8+c3RydWN0IF94bWxNb2R1bGUKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbE1vZHVsZU9wdGlvbiI+eG1sTW9kdWxlT3B0aW9uPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZSI+eG1sTW9kdWxlPC9hPiAqIDxhIG5hbWU9InhtbE1vZHVsZVB0ciIgaWQ9InhtbE1vZHVsZVB0ciI+eG1sTW9kdWxlUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTW9kdWxlQ2xvc2UiPnhtbE1vZHVsZUNsb3NlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlUHRyIj54bWxNb2R1bGVQdHI8L2E+IG1vZHVsZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbE1vZHVsZUZyZWUiPnhtbE1vZHVsZUZyZWU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4gbW9kdWxlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4JPGEgaHJlZj0iI3htbE1vZHVsZU9wZW4iPnhtbE1vZHVsZU9wZW48L2E+CQkoY29uc3QgY2hhciAqIG5hbWUsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sTW9kdWxlU3ltYm9sIj54bWxNb2R1bGVTeW1ib2w8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4gbW9kdWxlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbmFtZSwgPGJyIC8+CQkJCQkgdm9pZCAqKiBzeW1ib2wpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbE1vZHVsZSIgaWQ9InhtbE1vZHVsZSI+U3RydWN0dXJlIHhtbE1vZHVsZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sTW9kdWxlPGJyIC8+c3RydWN0IF94bWxNb2R1bGUgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sTW9kdWxlT3B0aW9uIiBpZD0ieG1sTW9kdWxlT3B0aW9uIj54bWxNb2R1bGVPcHRpb248L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxNb2R1bGVPcHRpb24geworICAgIDxhIG5hbWU9IlhNTF9NT0RVTEVfTEFaWSIgaWQ9IlhNTF9NT0RVTEVfTEFaWSI+WE1MX01PRFVMRV9MQVpZPC9hPiA9IDEgOiBsYXp5IGJpbmRpbmcKKyAgICA8YSBuYW1lPSJYTUxfTU9EVUxFX0xPQ0FMIiBpZD0iWE1MX01PRFVMRV9MT0NBTCI+WE1MX01PRFVMRV9MT0NBTDwvYT4gPSAyIDogbG9jYWwgYmluZGluZworfQorPC9wcmU+CisgICAgICBBIGhhbmRsZSB0byBhIGR5bmFtaWNhbGx5IGxvYWRlZCBtb2R1bGUKKyAgICA8aDM+PGEgbmFtZT0ieG1sTW9kdWxlQ2xvc2UiIGlkPSJ4bWxNb2R1bGVDbG9zZSI+PC9hPkZ1bmN0aW9uOiB4bWxNb2R1bGVDbG9zZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxNb2R1bGVDbG9zZQkJCSg8YSBocmVmPSJsaWJ4bWwteG1sbW9kdWxlLmh0bWwjeG1sTW9kdWxlUHRyIj54bWxNb2R1bGVQdHI8L2E+IG1vZHVsZSk8YnIgLz4KKzwvcHJlPjxwPlRoZSBjbG9zZSBvcGVyYXRpb25zIHVubG9hZCB0aGUgYXNzb2NpYXRlZCBtb2R1bGUgYW5kIGZyZWUgdGhlIGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgbW9kdWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1vZHVsZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1vZHVsZSBoYW5kbGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGFyZ3VtZW50IGVycm9yIGFuZCAtMiBpZiB0aGUgbW9kdWxlIGNvdWxkIG5vdCBiZSBjbG9zZWQvdW5sb2FkZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTW9kdWxlRnJlZSIgaWQ9InhtbE1vZHVsZUZyZWUiPjwvYT5GdW5jdGlvbjogeG1sTW9kdWxlRnJlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxNb2R1bGVGcmVlCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCN4bWxNb2R1bGVQdHIiPnhtbE1vZHVsZVB0cjwvYT4gbW9kdWxlKTxiciAvPgorPC9wcmU+PHA+VGhlIGZyZWUgb3BlcmF0aW9ucyBmcmVlIHRoZSBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIG1vZHVsZSBidXQgZG9lcyBub3QgdW5sb2FkIHRoZSBhc3NvY2lhdGVkIHNoYXJlZCBsaWJyYXJ5IHdoaWNoIG1heSBzdGlsbCBiZSBpbiB1c2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bW9kdWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbW9kdWxlIGhhbmRsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgYXJndW1lbnQgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxNb2R1bGVPcGVuIiBpZD0ieG1sTW9kdWxlT3BlbiI+PC9hPkZ1bmN0aW9uOiB4bWxNb2R1bGVPcGVuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVB0ciI+eG1sTW9kdWxlUHRyPC9hPgl4bWxNb2R1bGVPcGVuCQkoY29uc3QgY2hhciAqIG5hbWUsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+T3BlbnMgYSBtb2R1bGUvc2hhcmVkIGxpYnJhcnkgZ2l2ZW4gaXRzIG5hbWUgb3IgcGF0aCBUT0RPOiBvcHRpb25zIGFyZSBub3QgeWV0IGltcGxlbWVudGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtb2R1bGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgPGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZU9wdGlvbiI+eG1sTW9kdWxlT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBoYW5kbGUgZm9yIHRoZSBtb2R1bGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTW9kdWxlU3ltYm9sIiBpZD0ieG1sTW9kdWxlU3ltYm9sIj48L2E+RnVuY3Rpb246IHhtbE1vZHVsZVN5bWJvbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxNb2R1bGVTeW1ib2wJCQkoPGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sI3htbE1vZHVsZVB0ciI+eG1sTW9kdWxlUHRyPC9hPiBtb2R1bGUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBuYW1lLCA8YnIgLz4JCQkJCSB2b2lkICoqIHN5bWJvbCk8YnIgLz4KKzwvcHJlPjxwPkxvb2t1cCBmb3IgYSBzeW1ib2wgYWRkcmVzcyBpbiB0aGUgZ2l2ZW4gbW9kdWxlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bW9kdWxlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbW9kdWxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgc3ltYm9sPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeW1ib2w8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgc3ltYm9sIGFkZHJlc3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIHN5bWJvbCB3YXMgZm91bmQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxyZWFkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDEwZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1scmVhZGVyLmh0bWwKQEAgLTAsMCArMSwzMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB4bWxyZWFkZXIgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4bWxyZWFkZXIgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14bWxtb2R1bGUuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXhtbG1vZHVsZS5odG1sIj54bWxtb2R1bGU8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sIj54bWxyZWdleHA8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPkFQSSBvZiB0aGUgWE1MIHN0cmVhbWluZyBBUEkgYmFzZWQgb24gQyMgaW50ZXJmYWNlcy4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbFBhcnNlclByb3BlcnRpZXMiPnhtbFBhcnNlclByb3BlcnRpZXM8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sUGFyc2VyU2V2ZXJpdGllcyI+eG1sUGFyc2VyU2V2ZXJpdGllczwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxSZWFkZXJUeXBlcyI+eG1sUmVhZGVyVHlwZXM8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyIj54bWxUZXh0UmVhZGVyPC9hPjxiciAvPnN0cnVjdCBfeG1sVGV4dFJlYWRlcgorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiB2b2lkICogPGEgbmFtZT0ieG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiIGlkPSJ4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sVGV4dFJlYWRlck1vZGUiPnhtbFRleHRSZWFkZXJNb2RlPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXIiPnhtbFRleHRSZWFkZXI8L2E+ICogPGEgbmFtZT0ieG1sVGV4dFJlYWRlclB0ciIgaWQ9InhtbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRnJlZVRleHRSZWFkZXIiPnhtbEZyZWVUZXh0UmVhZGVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdUZXh0UmVhZGVyIj54bWxOZXdUZXh0UmVhZGVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciI+eG1sUGFyc2VySW5wdXRCdWZmZXJQdHI8L2E+IGlucHV0LCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIFVSSSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRSZWFkZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lPC9hPgkoY29uc3QgY2hhciAqIFVSSSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JPGEgaHJlZj0iI3htbFJlYWRlckZvckRvYyI+eG1sUmVhZGVyRm9yRG9jPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZGVyRm9yRmQiPnhtbFJlYWRlckZvckZkPC9hPgkoaW50IGZkLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZGVyRm9yRmlsZSI+eG1sUmVhZGVyRm9yRmlsZTwvYT4JKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZGVyRm9ySU8iPnhtbFJlYWRlckZvcklPPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRSZWFkQ2FsbGJhY2siPnhtbElucHV0UmVhZENhbGxiYWNrPC9hPiBpb3JlYWQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0Q2xvc2VDYWxsYmFjayI+eG1sSW5wdXRDbG9zZUNhbGxiYWNrPC9hPiBpb2Nsb3NlLCA8YnIgLz4JCQkJCSB2b2lkICogaW9jdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxSZWFkZXJGb3JNZW1vcnkiPnhtbFJlYWRlckZvck1lbW9yeTwvYT4JKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlYWRlck5ld0RvYyI+eG1sUmVhZGVyTmV3RG9jPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxSZWFkZXJOZXdGZCI+eG1sUmVhZGVyTmV3RmQ8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGludCBmZCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlYWRlck5ld0ZpbGUiPnhtbFJlYWRlck5ld0ZpbGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUmVhZGVyTmV3SU8iPnhtbFJlYWRlck5ld0lPPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dFJlYWRDYWxsYmFjayI+eG1sSW5wdXRSZWFkQ2FsbGJhY2s8L2E+IGlvcmVhZCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sSW5wdXRDbG9zZUNhbGxiYWNrIj54bWxJbnB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlYWRlck5ld01lbW9yeSI+eG1sUmVhZGVyTmV3TWVtb3J5PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJIGludCBzaXplLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUmVhZGVyTmV3V2Fsa2VyIj54bWxSZWFkZXJOZXdXYWxrZXI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVhZGVyV2Fsa2VyIj54bWxSZWFkZXJXYWxrZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQiPnhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJCYXNlVXJpIj54bWxUZXh0UmVhZGVyQmFzZVVyaTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+bG9uZwk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQ2xvc2UiPnhtbFRleHRSZWFkZXJDbG9zZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpIj54bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmciPnhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lIj54bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQ29uc3ROYW1lIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmk8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgiPnhtbFRleHRSZWFkZXJDb25zdFByZWZpeDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJDb25zdFN0cmluZyI+eG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUiPnhtbFRleHRSZWFkZXJDb25zdFZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyI+eG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24iPnhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyQ3VycmVudERvYyI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFRleHRSZWFkZXJDdXJyZW50Tm9kZSI+eG1sVGV4dFJlYWRlckN1cnJlbnROb2RlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJEZXB0aCI+eG1sVGV4dFJlYWRlckRlcHRoPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbFRleHRSZWFkZXJFcnJvckZ1bmMiPnhtbFRleHRSZWFkZXJFcnJvckZ1bmM8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPgkJKHZvaWQgKiBhcmcsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxQYXJzZXJTZXZlcml0aWVzIj54bWxQYXJzZXJTZXZlcml0aWVzPC9hPiBzZXZlcml0eSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhdG9yUHRyIj54bWxUZXh0UmVhZGVyTG9jYXRvclB0cjwvYT4gbG9jYXRvcikKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFRleHRSZWFkZXJFeHBhbmQiPnhtbFRleHRSZWFkZXJFeHBhbmQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkJIGludCBubyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxOYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckVycm9yRnVuYyI+eG1sVGV4dFJlYWRlckVycm9yRnVuYzwvYT4gKiBmLCA8YnIgLz4JCQkJCSB2b2lkICoqIGFyZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIiPnhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGludCBwcm9wKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciI+eG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyI+eG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlckhhc1ZhbHVlIj54bWxUZXh0UmVhZGVySGFzVmFsdWU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJJc0RlZmF1bHQiPnhtbFRleHRSZWFkZXJJc0RlZmF1bHQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCI+eG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPnhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlcklzVmFsaWQiPnhtbFRleHRSZWFkZXJJc1ZhbGlkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJMb2NhbE5hbWUiPnhtbFRleHRSZWFkZXJMb2NhbE5hbWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkiPnhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IGxvY2F0b3IpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIiPnhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IGxvY2F0b3IpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiPnhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8iPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGludCBubyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcyI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxOYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkkpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCI+eG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlIj54bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUiPnhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck5hbWUiPnhtbFRleHRSZWFkZXJOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSI+eG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTmV4dCI+eG1sVGV4dFJlYWRlck5leHQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJOZXh0U2libGluZyI+eG1sVGV4dFJlYWRlck5leHRTaWJsaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJOb2RlVHlwZSI+eG1sVGV4dFJlYWRlck5vZGVUeXBlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbiI+eG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUHJlZml4Ij54bWxUZXh0UmVhZGVyUHJlZml4PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUHJlc2VydmUiPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIj54bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcGF0dGVybiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIG5hbWVzcGFjZXMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUXVvdGVDaGFyIj54bWxUZXh0UmVhZGVyUXVvdGVDaGFyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUmVhZCI+eG1sVGV4dFJlYWRlclJlYWQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUiPnhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIj54bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCI+eG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIj54bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJSZWFkU3RyaW5nIj54bWxUZXh0UmVhZGVyUmVhZFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSI+eG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWE8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+IHNjaGVtYSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUiPnhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogcm5nKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlIj54bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogeHNkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIiPnhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckVycm9yRnVuYyI+eG1sVGV4dFJlYWRlckVycm9yRnVuYzwvYT4gZiwgPGJyIC8+CQkJCQkgdm9pZCAqIGFyZyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wIj54bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGludCBwcm9wLCA8YnIgLz4JCQkJCSBpbnQgdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyU2V0U2NoZW1hIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+IHNjaGVtYSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlciI+eG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gZiwgPGJyIC8+CQkJCQkJIHZvaWQgKiBhcmcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyU2V0dXAiPnhtbFRleHRSZWFkZXJTZXR1cDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSI+eG1sVGV4dFJlYWRlclN0YW5kYWxvbmU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sVGV4dFJlYWRlclZhbHVlIj54bWxUZXh0UmVhZGVyVmFsdWU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxUZXh0UmVhZGVyWG1sTGFuZyI+eG1sVGV4dFJlYWRlclhtbExhbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz5FbnVtIDxhIG5hbWU9InhtbFBhcnNlclByb3BlcnRpZXMiIGlkPSJ4bWxQYXJzZXJQcm9wZXJ0aWVzIj54bWxQYXJzZXJQcm9wZXJ0aWVzPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sUGFyc2VyUHJvcGVydGllcyB7CisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9MT0FERFREIiBpZD0iWE1MX1BBUlNFUl9MT0FERFREIj5YTUxfUEFSU0VSX0xPQUREVEQ8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfREVGQVVMVEFUVFJTIiBpZD0iWE1MX1BBUlNFUl9ERUZBVUxUQVRUUlMiPlhNTF9QQVJTRVJfREVGQVVMVEFUVFJTPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1ZBTElEQVRFIiBpZD0iWE1MX1BBUlNFUl9WQUxJREFURSI+WE1MX1BBUlNFUl9WQUxJREFURTwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9TVUJTVF9FTlRJVElFUyIgaWQ9IlhNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVMiPlhNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVM8L2E+ID0gNAorfQorPC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sUGFyc2VyU2V2ZXJpdGllcyIgaWQ9InhtbFBhcnNlclNldmVyaXRpZXMiPnhtbFBhcnNlclNldmVyaXRpZXM8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxQYXJzZXJTZXZlcml0aWVzIHsKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX1dBUk5JTkciIGlkPSJYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX1dBUk5JTkciPlhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfV0FSTklORzwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9FUlJPUiIgaWQ9IlhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfRVJST1IiPlhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfRVJST1I8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9QQVJTRVJfU0VWRVJJVFlfV0FSTklORyIgaWQ9IlhNTF9QQVJTRVJfU0VWRVJJVFlfV0FSTklORyI+WE1MX1BBUlNFUl9TRVZFUklUWV9XQVJOSU5HPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfUEFSU0VSX1NFVkVSSVRZX0VSUk9SIiBpZD0iWE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUiI+WE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUjwvYT4gPSA0Cit9Cis8L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxSZWFkZXJUeXBlcyIgaWQ9InhtbFJlYWRlclR5cGVzIj54bWxSZWFkZXJUeXBlczwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFJlYWRlclR5cGVzIHsKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfTk9ORSIgaWQ9IlhNTF9SRUFERVJfVFlQRV9OT05FIj5YTUxfUkVBREVSX1RZUEVfTk9ORTwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0VMRU1FTlQiIGlkPSJYTUxfUkVBREVSX1RZUEVfRUxFTUVOVCI+WE1MX1JFQURFUl9UWVBFX0VMRU1FTlQ8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9BVFRSSUJVVEUiIGlkPSJYTUxfUkVBREVSX1RZUEVfQVRUUklCVVRFIj5YTUxfUkVBREVSX1RZUEVfQVRUUklCVVRFPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfVEVYVCIgaWQ9IlhNTF9SRUFERVJfVFlQRV9URVhUIj5YTUxfUkVBREVSX1RZUEVfVEVYVDwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0NEQVRBIiBpZD0iWE1MX1JFQURFUl9UWVBFX0NEQVRBIj5YTUxfUkVBREVSX1RZUEVfQ0RBVEE8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFIiBpZD0iWE1MX1JFQURFUl9UWVBFX0VOVElUWV9SRUZFUkVOQ0UiPlhNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfRU5USVRZIiBpZD0iWE1MX1JFQURFUl9UWVBFX0VOVElUWSI+WE1MX1JFQURFUl9UWVBFX0VOVElUWTwvYT4gPSA2CisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iIGlkPSJYTUxfUkVBREVSX1RZUEVfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiI+WE1MX1JFQURFUl9UWVBFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT048L2E+ID0gNworICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9DT01NRU5UIiBpZD0iWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQiPlhNTF9SRUFERVJfVFlQRV9DT01NRU5UPC9hPiA9IDgKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlQiIGlkPSJYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlQiPlhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVDwvYT4gPSA5CisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX1RZUEUiIGlkPSJYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfVFlQRSI+WE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX1RZUEU8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQiIGlkPSJYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQiPlhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9GUkFHTUVOVDwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9OT1RBVElPTiIgaWQ9IlhNTF9SRUFERVJfVFlQRV9OT1RBVElPTiI+WE1MX1JFQURFUl9UWVBFX05PVEFUSU9OPC9hPiA9IDEyCisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX1dISVRFU1BBQ0UiIGlkPSJYTUxfUkVBREVSX1RZUEVfV0hJVEVTUEFDRSI+WE1MX1JFQURFUl9UWVBFX1dISVRFU1BBQ0U8L2E+ID0gMTMKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfU0lHTklGSUNBTlRfV0hJVEVTUEFDRSIgaWQ9IlhNTF9SRUFERVJfVFlQRV9TSUdOSUZJQ0FOVF9XSElURVNQQUNFIj5YTUxfUkVBREVSX1RZUEVfU0lHTklGSUNBTlRfV0hJVEVTUEFDRTwvYT4gPSAxNAorICAgIDxhIG5hbWU9IlhNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVCIgaWQ9IlhNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVCI+WE1MX1JFQURFUl9UWVBFX0VORF9FTEVNRU5UPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFkiIGlkPSJYTUxfUkVBREVSX1RZUEVfRU5EX0VOVElUWSI+WE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFk8L2E+ID0gMTYKKyAgICA8YSBuYW1lPSJYTUxfUkVBREVSX1RZUEVfWE1MX0RFQ0xBUkFUSU9OIiBpZD0iWE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTiI+WE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTjwvYT4gPSAxNworfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXIiIGlkPSJ4bWxUZXh0UmVhZGVyIj5TdHJ1Y3R1cmUgeG1sVGV4dFJlYWRlcjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sVGV4dFJlYWRlcjxiciAvPnN0cnVjdCBfeG1sVGV4dFJlYWRlciB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTW9kZSIgaWQ9InhtbFRleHRSZWFkZXJNb2RlIj54bWxUZXh0UmVhZGVyTW9kZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFRleHRSZWFkZXJNb2RlIHsKKyAgICA8YSBuYW1lPSJYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUwiIGlkPSJYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUwiPlhNTF9URVhUUkVBREVSX01PREVfSU5JVElBTDwvYT4gPSAwCisgICAgPGEgbmFtZT0iWE1MX1RFWFRSRUFERVJfTU9ERV9JTlRFUkFDVElWRSIgaWQ9IlhNTF9URVhUUkVBREVSX01PREVfSU5URVJBQ1RJVkUiPlhNTF9URVhUUkVBREVSX01PREVfSU5URVJBQ1RJVkU8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhNTF9URVhUUkVBREVSX01PREVfRVJST1IiIGlkPSJYTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SIj5YTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYTUxfVEVYVFJFQURFUl9NT0RFX0VPRiIgaWQ9IlhNTF9URVhUUkVBREVSX01PREVfRU9GIj5YTUxfVEVYVFJFQURFUl9NT0RFX0VPRjwvYT4gPSAzCisgICAgPGEgbmFtZT0iWE1MX1RFWFRSRUFERVJfTU9ERV9DTE9TRUQiIGlkPSJYTUxfVEVYVFJFQURFUl9NT0RFX0NMT1NFRCI+WE1MX1RFWFRSRUFERVJfTU9ERV9DTE9TRUQ8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhNTF9URVhUUkVBREVSX01PREVfUkVBRElORyIgaWQ9IlhNTF9URVhUUkVBREVSX01PREVfUkVBRElORyI+WE1MX1RFWFRSRUFERVJfTU9ERV9SRUFESU5HPC9hPiA9IDUKK30KKzwvcHJlPgorICAgICAgUG9pbnRlciB0byBhbiB4bWxSZWFkZXIgY29udGV4dC4KKyAgICA8aDM+PGEgbmFtZT0ieG1sRnJlZVRleHRSZWFkZXIiIGlkPSJ4bWxGcmVlVGV4dFJlYWRlciI+PC9hPkZ1bmN0aW9uOiB4bWxGcmVlVGV4dFJlYWRlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sRnJlZVRleHRSZWFkZXIJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+RGVhbGxvY2F0ZSBhbGwgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSByZWFkZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdUZXh0UmVhZGVyIiBpZD0ieG1sTmV3VGV4dFJlYWRlciI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdUZXh0UmVhZGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+CXhtbE5ld1RleHRSZWFkZXIJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBVUkkpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYW4gPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXIiPnhtbFRleHRSZWFkZXI8L2E+IHN0cnVjdHVyZSBmZWQgd2l0aCBAaW5wdXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pbnB1dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiB1c2VkIHRvIHJlYWQgZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIGluZm9ybWF0aW9uIGZvciB0aGUgc291cmNlIGlmIGF2YWlsYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIiBpZD0ieG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIj48L2E+RnVuY3Rpb246IHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUJKGNvbnN0IGNoYXIgKiBVUkkpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYW4gPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXIiPnhtbFRleHRSZWFkZXI8L2E+IHN0cnVjdHVyZSBmZWQgd2l0aCB0aGUgcmVzb3VyY2UgYXQgQFVSSTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2UgdG8gcHJvY2VzczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyRm9yRG9jIiBpZD0ieG1sUmVhZGVyRm9yRG9jIj48L2E+RnVuY3Rpb246IHhtbFJlYWRlckZvckRvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxSZWFkZXJGb3JEb2MJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiB4bWx0ZXh0UmVhZGVyIGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHJlYWRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyRm9yRmQiIGlkPSJ4bWxSZWFkZXJGb3JGZCI+PC9hPkZ1bmN0aW9uOiB4bWxSZWFkZXJGb3JGZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxSZWFkZXJGb3JGZAkoaW50IGZkLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIHhtbHRleHRSZWFkZXIgZm9yIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIE5PVEUgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwgbm90IGJlIGNsb3NlZCB3aGVuIHRoZSByZWFkZXIgaXMgY2xvc2VkIG9yIHJlc2V0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBvcGVuIGZpbGUgZGVzY3JpcHRvcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlYWRlckZvckZpbGUiIGlkPSJ4bWxSZWFkZXJGb3JGaWxlIj48L2E+RnVuY3Rpb246IHhtbFJlYWRlckZvckZpbGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JeG1sUmVhZGVyRm9yRmlsZQkoY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBvciBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlYWRlckZvcklPIiBpZD0ieG1sUmVhZGVyRm9ySU8iPjwvYT5GdW5jdGlvbjogeG1sUmVhZGVyRm9ySU88L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JeG1sUmVhZGVyRm9ySU8JKDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyIC8+CQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIHhtbHRleHRSZWFkZXIgZm9yIGFuIFhNTCBkb2N1bWVudCBmcm9tIEkvTyBmdW5jdGlvbnMgYW5kIHNvdXJjZS4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvcmVhZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIHJlYWQgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY2xvc2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBjbG9zZSBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IHJlYWRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyRm9yTWVtb3J5IiBpZD0ieG1sUmVhZGVyRm9yTWVtb3J5Ij48L2E+RnVuY3Rpb246IHhtbFJlYWRlckZvck1lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPgl4bWxSZWFkZXJGb3JNZW1vcnkJKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJCSBpbnQgc2l6ZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiB4bWx0ZXh0UmVhZGVyIGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmZmVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2l6ZSBvZiB0aGUgYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWFkZXJOZXdEb2MiIGlkPSJ4bWxSZWFkZXJOZXdEb2MiPjwvYT5GdW5jdGlvbjogeG1sUmVhZGVyTmV3RG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlYWRlck5ld0RvYwkJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5TZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQuIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEByZWFkZXIgeG1sVGV4dFJlYWRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+VVJMPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWFkZXJOZXdGZCIgaWQ9InhtbFJlYWRlck5ld0ZkIj48L2E+RnVuY3Rpb246IHhtbFJlYWRlck5ld0ZkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlYWRlck5ld0ZkCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGludCBmZCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIFVSTCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPlNldHVwIGFuIHhtbHRleHRSZWFkZXIgdG8gcGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IuIE5PVEUgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwgbm90IGJlIGNsb3NlZCB3aGVuIHRoZSByZWFkZXIgaXMgY2xvc2VkIG9yIHJlc2V0LiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcmVhZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3BlbiBmaWxlIGRlc2NyaXB0b3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGNvbWJpbmF0aW9uIG9mIDxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCN4bWxQYXJzZXJPcHRpb24iPnhtbFBhcnNlck9wdGlvbjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVhZGVyTmV3RmlsZSIgaWQ9InhtbFJlYWRlck5ld0ZpbGUiPjwvYT5GdW5jdGlvbjogeG1sUmVhZGVyTmV3RmlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWFkZXJOZXdGaWxlCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQHJlYWRlciB4bWxUZXh0UmVhZGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWE1MIHJlYWRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBvciBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sI3htbFBhcnNlck9wdGlvbiI+eG1sUGFyc2VyT3B0aW9uPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWFkZXJOZXdJTyIgaWQ9InhtbFJlYWRlck5ld0lPIj48L2E+RnVuY3Rpb246IHhtbFJlYWRlck5ld0lPPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlYWRlck5ld0lPCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbElucHV0UmVhZENhbGxiYWNrIj54bWxJbnB1dFJlYWRDYWxsYmFjazwvYT4gaW9yZWFkLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sSU8uaHRtbCN4bWxJbnB1dENsb3NlQ2FsbGJhY2siPnhtbElucHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyIC8+CQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogVVJMLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+U2V0dXAgYW4geG1sdGV4dFJlYWRlciB0byBwYXJzZSBhbiBYTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UuIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEByZWFkZXIgeG1sVGV4dFJlYWRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvcmVhZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIHJlYWQgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlvY2xvc2U8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBjbG9zZSBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyBoYW5kbGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlYWRlck5ld01lbW9yeSIgaWQ9InhtbFJlYWRlck5ld01lbW9yeSI+PC9hPkZ1bmN0aW9uOiB4bWxSZWFkZXJOZXdNZW1vcnk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVhZGVyTmV3TWVtb3J5CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkgaW50IHNpemUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5TZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQuIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEByZWFkZXIgeG1sVGV4dFJlYWRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZmZlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIGEgY2hhciBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlYWRlck5ld1dhbGtlciIgaWQ9InhtbFJlYWRlck5ld1dhbGtlciI+PC9hPkZ1bmN0aW9uOiB4bWxSZWFkZXJOZXdXYWxrZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVhZGVyTmV3V2Fsa2VyCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+U2V0dXAgYW4geG1sdGV4dFJlYWRlciB0byBwYXJzZSBhIHByZXBhcnNlZCBYTUwgZG9jdW1lbnQuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYTUwgcmVhZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlcGFyc2VkIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlYWRlcldhbGtlciIgaWQ9InhtbFJlYWRlcldhbGtlciI+PC9hPkZ1bmN0aW9uOiB4bWxSZWFkZXJXYWxrZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4JeG1sUmVhZGVyV2Fsa2VyCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYW4geG1sdGV4dFJlYWRlciBmb3IgYSBwcmVwYXJzZWQgZG9jdW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZXBhcnNlZCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCIgaWQ9InhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50CSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIG9mIHRoZSBjdXJyZW50IG5vZGU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpIG5vIGF0dHJpYnV0ZXMsIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3IgdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gY291bnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQmFzZVVyaSIgaWQ9InhtbFRleHRSZWFkZXJCYXNlVXJpIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJCYXNlVXJpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckJhc2VVcmkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5UaGUgYmFzZSBVUkkgb2YgdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSSSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIiBpZD0ieG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+bG9uZwl4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+VGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgcGFyc2VyIHVzZWQgYnkgdGhlIHJlYWRlciwgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGVudGl0eS4gVGhpcyBmdW5jdGlvbiBhY3R1YWxseSBqdXN0IHdyYXBzIGEgY2FsbCB0byB4bWxCeXRlc0NvbnN1bWVkKCkgZm9yIHRoZSBwYXJzZXIgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggdGhlIHJlYWRlci4gU2VlIHhtbEJ5dGVzQ29uc3VtZWQoKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmRleCBpbiBieXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGVudGl0eSBvciAtMSBpbiBjYXNlIHRoZSBpbmRleCBjb3VsZCBub3QgYmUgY29tcHV0ZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNsb3NlIiBpZD0ieG1sVGV4dFJlYWRlckNsb3NlIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJDbG9zZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyQ2xvc2UJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+VGhpcyBtZXRob2QgcmVsZWFzZXMgYW55IHJlc291cmNlcyBhbGxvY2F0ZWQgYnkgdGhlIGN1cnJlbnQgaW5zdGFuY2UgY2hhbmdlcyB0aGUgc3RhdGUgdG8gQ2xvc2VkIGFuZCBjbG9zZSBhbnkgdW5kZXJseWluZyBpbnB1dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaSIgaWQ9InhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5UaGUgYmFzZSBVUkkgb2YgdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSSSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZSBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZyIgaWQ9InhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmcJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5EZXRlcm1pbmUgdGhlIGVuY29kaW5nIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyBjb250YWluaW5nIHRoZSBlbmNvZGluZyBvZiB0aGUgZG9jdW1lbnQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBUaGUgc3RyaW5nIGlzIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUiIGlkPSJ4bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+VGhlIGxvY2FsIG5hbWUgb2YgdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyB3aWxsIGJlIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3ROYW1lIiBpZD0ieG1sVGV4dFJlYWRlckNvbnN0TmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckNvbnN0TmFtZQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbm9kZSwgZXF1YWwgdG8gUHJlZml4IDpMb2NhbE5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIiBpZD0ieG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlRoZSBVUkkgZGVmaW5pbmcgdGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyB3aWxsIGJlIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJDb25zdFByZWZpeCIgaWQ9InhtbFRleHRSZWFkZXJDb25zdFByZWZpeCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5BIHNob3J0aGFuZCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIHRoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZml4IG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nIiBpZD0ieG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJDb25zdFN0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdFN0cmluZwkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik8YnIgLz4KKzwvcHJlPjxwPkdldCBhbiBpbnRlcm5lZCBzdHJpbmcgZnJvbSB0aGUgcmVhZGVyLCBhbGxvd3MgZm9yIGV4YW1wbGUgdG8gc3BlZWR1cCBzdHJpbmcgbmFtZSBjb21wYXJpc29uczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmcgdG8gaW50ZXJuLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gaW50ZXJuZWQgY29weSBvZiB0aGUgc3RyaW5nIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyB3aWxsIGJlIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZSIgaWQ9InhtbFRleHRSZWFkZXJDb25zdFZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJDb25zdFZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgdGV4dCB2YWx1ZSBvZiB0aGUgbm9kZSBpZiBwcmVzZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLiBUaGUgcmVzdWx0IHdpbGwgYmUgZGVhbGxvY2F0ZWQgb24gdGhlIG5leHQgUmVhZCgpIG9wZXJhdGlvbi48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nIiBpZD0ieG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZwkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlRoZSB4bWw6bGFuZyBzY29wZSB3aXRoaW4gd2hpY2ggdGhlIG5vZGUgcmVzaWRlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHhtbDpsYW5nIHZhbHVlIG9yIE5VTEwgaWYgbm9uZSBleGlzdHMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbiIgaWQ9InhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24iPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5EZXRlcm1pbmUgdGhlIFhNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyBjb250YWluaW5nIHRoZSBYTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBUaGUgc3RyaW5nIGlzIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyQ3VycmVudERvYyIgaWQ9InhtbFRleHRSZWFkZXJDdXJyZW50RG9jIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJDdXJyZW50RG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4JeG1sVGV4dFJlYWRlckN1cnJlbnREb2MJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5IYWNraW5nIGludGVyZmFjZSBhbGxvd2luZyB0byBnZXQgdGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGNvcnJlcG9uZGluZyB0byB0aGUgY3VycmVudCBkb2N1bWVudCBiZWluZyBhY2Nlc3NlZCBieSB0aGUgeG1sVGV4dFJlYWRlci4gTk9URTogYXMgYSByZXN1bHQgb2YgdGhpcyBjYWxsLCB0aGUgcmVhZGVyIHdpbGwgbm90IGRlc3Ryb3kgdGhlIGFzc29jaWF0ZWQgWE1MIGRvY3VtZW50IGFuZCBjYWxsaW5nIHhtbEZyZWVEb2MoKSBvbiB0aGUgcmVzdWx0IGlzIG5lZWRlZCBvbmNlIHRoZSByZWFkZXIgcGFyc2luZyBoYXMgZmluaXNoZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIiBpZD0ieG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+SGFja2luZyBpbnRlcmZhY2UgYWxsb3dpbmcgdG8gZ2V0IHRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGNvcnJlcG9uZGluZyB0byB0aGUgY3VycmVudCBub2RlIGJlaW5nIGFjY2Vzc2VkIGJ5IHRoZSB4bWxUZXh0UmVhZGVyLiBUaGlzIGlzIGRhbmdlcm91cyBiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIG5vZGUgbWF5IGJlIGRlc3Ryb3llZCBvbiB0aGUgbmV4dCBSZWFkcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJEZXB0aCIgaWQ9InhtbFRleHRSZWFkZXJEZXB0aCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyRGVwdGg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckRlcHRoCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlRoZSBkZXB0aCBvZiB0aGUgbm9kZSBpbiB0aGUgdHJlZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRlcHRoIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIiBpZD0ieG1sVGV4dFJlYWRlckVycm9yRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFRleHRSZWFkZXJFcnJvckZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxUZXh0UmVhZGVyRXJyb3JGdW5jCit2b2lkCXhtbFRleHRSZWFkZXJFcnJvckZ1bmMJCSh2b2lkICogYXJnLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUGFyc2VyU2V2ZXJpdGllcyI+eG1sUGFyc2VyU2V2ZXJpdGllczwvYT4gc2V2ZXJpdHksIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IGxvY2F0b3IpCis8L3ByZT48cD5TaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhIHJlYWRlciBwYXJzZXI8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBhcmd1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2V2ZXJpdHk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZXZlcml0eSBvZiB0aGUgZXJyb3I8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvY2F0b3I8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbG9jYXRvciBpbmRpY2F0aW5nIHdoZXJlIHRoZSBlcnJvciBvY2N1cmVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyRXhwYW5kIiBpZD0ieG1sVGV4dFJlYWRlckV4cGFuZCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyRXhwYW5kPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxUZXh0UmVhZGVyRXhwYW5kCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+UmVhZHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXJyZW50IG5vZGUgYW5kIHRoZSBmdWxsIHN1YnRyZWUuIEl0IHRoZW4gbWFrZXMgdGhlIHN1YnRyZWUgYXZhaWxhYmxlIHVudGlsIHRoZSBuZXh0IHhtbFRleHRSZWFkZXJSZWFkKCkgY2FsbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUgcG9pbnRlciB2YWxpZCB1bnRpbCB0aGUgbmV4dCB4bWxUZXh0UmVhZGVyUmVhZCgpIGNhbGwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUiIGlkPSJ4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSB2YWx1ZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIHRoZSBzcGVjaWZpZWQgcXVhbGlmaWVkIG5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgYXR0cmlidXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vIiBpZD0ieG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObwkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkJIGludCBubyk8YnIgLz4KKzwvcHJlPjxwPlByb3ZpZGVzIHRoZSB2YWx1ZSBvZiB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIHRoZSBzcGVjaWZpZWQgaW5kZXggcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHJlbGF0aXZlIHRvIHRoZSBjb250YWluaW5nIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcyIgaWQ9InhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsb2NhbE5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkkpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvY2FsTmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZVVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBVUkkgb2YgdGhlIGF0dHJpYnV0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIiIGlkPSJ4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIj54bWxUZXh0UmVhZGVyRXJyb3JGdW5jPC9hPiAqIGYsIDxiciAvPgkJCQkJIHZvaWQgKiogYXJnKTxiciAvPgorPC9wcmU+PHA+UmV0cmlldmUgdGhlIGVycm9yIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCB1c2VyIGFyZ3VtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2FsbGJhY2sgZnVuY3Rpb24gb3IgTlVMTCBpcyBubyBjYWxsYmFjayBoYXMgYmVlbiByZWdpc3RlcmVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdXNlciBhcmd1bWVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIiIGlkPSJ4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlByb3ZpZGUgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCByZWFkZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludCBvciAwIGlmIG5vdCBhdmFpbGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlciIgaWQ9InhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB1c2VyIGRhdGEgKFhNTCByZWFkZXIgY29udGV4dCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGludCBvciAwIGlmIG5vdCBhdmFpbGFibGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCIgaWQ9InhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSBpbnQgcHJvcCk8YnIgLz4KKzwvcHJlPjxwPlJlYWQgdGhlIHBhcnNlciBpbnRlcm5hbCBwcm9wZXJ0eS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJvcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxQYXJzZXJQcm9wZXJ0aWVzIj54bWxQYXJzZXJQcm9wZXJ0aWVzPC9hPiB0byBnZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSwgdXN1YWxseSAwIG9yIDEsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciIgaWQ9InhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXIiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPgl4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+TWV0aG9kIHRvIGdldCB0aGUgcmVtYWluZGVyIG9mIHRoZSBidWZmZXJlZCBYTUwuIHRoaXMgbWV0aG9kIHN0b3BzIHRoZSBwYXJzZXIsIHNldCBpdHMgc3RhdGUgdG8gRW5kIE9mIEZpbGUgYW5kIHJldHVybiB0aGUgaW5wdXQgc3RyZWFtIHdpdGggd2hhdCBpcyBsZWZ0IHRoYXQgdGhlIHBhcnNlciBkaWQgbm90IHVzZS4gVGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdCBnb29kLCB0aGUgcGFyc2VyIGNlcnRhaW5seSBwcm9jZ3Jlc3NlZCBwYXN0IHdoYXQncyBsZWZ0IGluIHJlYWRlci0mZ3Q7aW5wdXQsIGFuZCB0aGVyZSBpcyBhbiBhbGxvY2F0aW9uIHByb2JsZW0uIEJlc3Qgd291bGQgYmUgdG8gcmV3cml0ZSBpdCBkaWZmZXJlbnRseS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBhdHRhY2hlZCB0byB0aGUgWE1MIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyIgaWQ9InhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+V2hldGhlciB0aGUgbm9kZSBoYXMgYXR0cmlidXRlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlLCAwIGlmIGZhbHNlLCBhbmQgLTEgaW4gY2FzZSBvciBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJIYXNWYWx1ZSIgaWQ9InhtbFRleHRSZWFkZXJIYXNWYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVySGFzVmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckhhc1ZhbHVlCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPldoZXRoZXIgdGhlIG5vZGUgY2FuIGhhdmUgYSB0ZXh0IHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgZmFsc2UsIGFuZCAtMSBpbiBjYXNlIG9yIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlcklzRGVmYXVsdCIgaWQ9InhtbFRleHRSZWFkZXJJc0RlZmF1bHQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlcklzRGVmYXVsdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVySXNEZWZhdWx0CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPldoZXRoZXIgYW4gQXR0cmlidXRlIG5vZGUgd2FzIGdlbmVyYXRlZCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlIGRlZmluZWQgaW4gdGhlIERURCBvciBzY2hlbWEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgbm90IGRlZmF1bHRlZCwgMSBpZiBkZWZhdWx0ZWQsIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50IiBpZD0ieG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5DaGVjayBpZiB0aGUgY3VycmVudCBub2RlIGlzIGVtcHR5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgZW1wdHksIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCIgaWQ9InhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVySXNOYW1lc3BhY2VEZWNsCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+RGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGN1cnJlbnQgbm9kZSBpcyBhIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiByYXRoZXIgdGhhbiBhIHJlZ3VsYXIgYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgYSBuYW1lc3BhY2UgZGVjbGFyYXRpb24sIDAgaWYgaXQgaXMgYSByZWd1bGFyIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb3Igb3RoZXIgdHlwZSBvZiBub2RlLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJJc1ZhbGlkIiBpZD0ieG1sVGV4dFJlYWRlcklzVmFsaWQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlcklzVmFsaWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlcklzVmFsaWQJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+UmV0cmlldmUgdGhlIHZhbGlkaXR5IHN0YXR1cyBmcm9tIHRoZSBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmxhZyB2YWx1ZSAxIGlmIHZhbGlkLCAwIGlmIG5vLCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJMb2NhbE5hbWUiIGlkPSJ4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJMb2NhbE5hbWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyTG9jYWxOYW1lCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+VGhlIGxvY2FsIG5hbWUgb2YgdGhlIG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSIgaWQ9InhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IGxvY2F0b3IpPGJyIC8+Cis8L3ByZT48cD5PYnRhaW4gdGhlIGJhc2UgVVJJIGZvciB0aGUgZ2l2ZW4gbG9jYXRvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhdG9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJMb2NhdG9yUHRyIj54bWxUZXh0UmVhZGVyTG9jYXRvclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJhc2UgVVJJIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvciwgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlciIgaWQ9InhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlciI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiPnhtbFRleHRSZWFkZXJMb2NhdG9yUHRyPC9hPiBsb2NhdG9yKTxiciAvPgorPC9wcmU+PHA+T2J0YWluIHRoZSBsaW5lIG51bWJlciBmb3IgdGhlIGdpdmVuIGxvY2F0b3IuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bG9jYXRvcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI+eG1sVGV4dFJlYWRlckxvY2F0b3JQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5lIG51bWJlciBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UiIGlkPSJ4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTxiciAvPgorPC9wcmU+PHA+UmVzb2x2ZXMgYSBuYW1lc3BhY2UgcHJlZml4IGluIHRoZSBzY29wZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggd2hvc2UgbmFtZXNwYWNlIFVSSSBpcyB0byBiZSByZXNvbHZlZC4gVG8gcmV0dXJuIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSwgc3BlY2lmeSBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lc3BhY2UgVVJJIHRvIHdoaWNoIHRoZSBwcmVmaXggbWFwcyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUiIGlkPSJ4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPk1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIHRoZSBzcGVjaWZpZWQgcXVhbGlmaWVkIG5hbWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgYXR0cmlidXRlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vIiBpZD0ieG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGludCBubyk8YnIgLz4KKzwvcHJlPjxwPk1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIHRoZSBzcGVjaWZpZWQgaW5kZXggcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHJlbGF0aXZlIHRvIHRoZSBjb250YWluaW5nIGVsZW1lbnQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiBub3QgZm91bmQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMiIGlkPSJ4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcwkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxOYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkkpPGJyIC8+Cis8L3ByZT48cD5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gd2l0aCB0aGUgc3BlY2lmaWVkIGxvY2FsIG5hbWUgYW5kIG5hbWVzcGFjZSBVUkkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxvY2FsTmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZVVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBVUkkgb2YgdGhlIGF0dHJpYnV0ZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50IiBpZD0ieG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIG5vZGUgdGhhdCBjb250YWlucyB0aGUgY3VycmVudCBBdHRyaWJ1dGUgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IG1vdmVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlIiBpZD0ieG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIGZpcnN0IDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlIiBpZD0ieG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIG5leHQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbm9kZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck5hbWUiIGlkPSJ4bWxUZXh0UmVhZGVyTmFtZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyTmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJOYW1lCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+VGhlIHF1YWxpZmllZCBuYW1lIG9mIHRoZSBub2RlLCBlcXVhbCB0byBQcmVmaXggOkxvY2FsTmFtZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2FsIG5hbWUgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLCBpZiBub24gTlVMTCBpdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSIgaWQ9InhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5UaGUgVVJJIGRlZmluaW5nIHRoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIFVSSSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTmV4dCIgaWQ9InhtbFRleHRSZWFkZXJOZXh0Ij48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJOZXh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJOZXh0CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlNraXAgdG8gdGhlIG5vZGUgZm9sbG93aW5nIHRoZSBjdXJyZW50IG9uZSBpbiBkb2N1bWVudCBvcmRlciB3aGlsZSBhdm9pZGluZyB0aGUgc3VidHJlZSBpZiBhbnkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIG5vZGUgd2FzIHJlYWQgc3VjY2Vzc2Z1bGx5LCAwIGlmIHRoZXJlIGlzIG5vIG1vcmUgbm9kZXMgdG8gcmVhZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJOZXh0U2libGluZyIgaWQ9InhtbFRleHRSZWFkZXJOZXh0U2libGluZyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+U2tpcCB0byB0aGUgbm9kZSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgb25lIGluIGRvY3VtZW50IG9yZGVyIHdoaWxlIGF2b2lkaW5nIHRoZSBzdWJ0cmVlIGlmIGFueS4gQ3VycmVudGx5IGltcGxlbWVudGVkIG9ubHkgZm9yIFJlYWRlcnMgYnVpbHQgb24gYSBkb2N1bWVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZSBub2RlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseSwgMCBpZiB0aGVyZSBpcyBubyBtb3JlIG5vZGVzIHRvIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyTm9kZVR5cGUiIGlkPSJ4bWxUZXh0UmVhZGVyTm9kZVR5cGUiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlck5vZGVUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJOb2RlVHlwZQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5HZXQgdGhlIG5vZGUgdHlwZSBvZiB0aGUgY3VycmVudCBub2RlIFJlZmVyZW5jZTogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RvdGdudS9wbmV0bGliLWRvYy9TeXN0ZW0vWG1sL1htbE5vZGVUeXBlLmh0bWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHhtbE5vZGVUeXBlIG9mIHRoZSBjdXJyZW50IG5vZGUgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIiBpZD0ieG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24iPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5UaGUgdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRvIG5vcm1hbGl6ZSB3aGl0ZSBzcGFjZSBhbmQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZXMuIFNpbmNlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gdmFsdWUgYW5kIGVuZCBvZiBsaW5lIG5vcm1hbGl6YXRpb25zIGFyZSBhIE1VU1QgaW4gdGhlIFhNTCBzcGVjaWZpY2F0aW9uIG9ubHkgdGhlIHZhbHVlIHRydWUgaXMgYWNjZXB0ZWQuIFRoZSBicm9rZW4gYmFoYXZpb3VyIG9mIGFjY2VwdGluZyBvdXQgb2YgcmFuZ2UgY2hhcmFjdGVyIGVudGl0aWVzIGxpa2UgJmFtcDsjMDsgaXMgb2YgY291cnNlIG5vdCBzdXBwb3J0ZWQgZWl0aGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclByZWZpeCIgaWQ9InhtbFRleHRSZWFkZXJQcmVmaXgiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlclByZWZpeDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJQcmVmaXgJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5BIHNob3J0aGFuZCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IHRvIHRoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBub2RlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZml4IG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJQcmVzZXJ2ZSIgaWQ9InhtbFRleHRSZWFkZXJQcmVzZXJ2ZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyUHJlc2VydmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFRleHRSZWFkZXJQcmVzZXJ2ZQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlRoaXMgdGVsbHMgdGhlIFhNTCBSZWFkZXIgdG8gcHJlc2VydmUgdGhlIGN1cnJlbnQgbm9kZS4gVGhlIGNhbGxlciBtdXN0IGFsc28gdXNlIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jKCkgdG8ga2VlcCBhbiBoYW5kbGUgb24gdGhlIHJlc3VsdGluZyBkb2N1bWVudCBvbmNlIHBhcnNpbmcgaGFzIGZpbmlzaGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIiBpZD0ieG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4JKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHBhdHRlcm4sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBuYW1lc3BhY2VzKTxiciAvPgorPC9wcmU+PHA+VGhpcyB0ZWxscyB0aGUgWE1MIFJlYWRlciB0byBwcmVzZXJ2ZSBhbGwgbm9kZXMgbWF0Y2hlZCBieSB0aGUgcGF0dGVybi4gVGhlIGNhbGxlciBtdXN0IGFsc28gdXNlIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jKCkgdG8ga2VlcCBhbiBoYW5kbGUgb24gdGhlIHJlc3VsdGluZyBkb2N1bWVudCBvbmNlIHBhcnNpbmcgaGFzIGZpbmlzaGVkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBhdHRlcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHN1YnNldCBwYXR0ZXJuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lc3BhY2VzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZml4IGRlZmluaXRpb25zLCBhcnJheSBvZiBbVVJJLCBwcmVmaXhdIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9zaXRpdmUgbnVtYmVyIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJRdW90ZUNoYXIiIGlkPSJ4bWxUZXh0UmVhZGVyUXVvdGVDaGFyIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJRdW90ZUNoYXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclF1b3RlQ2hhcgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5UaGUgcXVvdGF0aW9uIG1hcmsgY2hhcmFjdGVyIHVzZWQgdG8gZW5jbG9zZSB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4iIG9yICcgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZCIgaWQ9InhtbFRleHRSZWFkZXJSZWFkIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJSZWFkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJSZWFkCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPk1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgbmV4dCBub2RlIGluIHRoZSBzdHJlYW0sIGV4cG9zaW5nIGl0cyBwcm9wZXJ0aWVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZSBub2RlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseSwgMCBpZiB0aGVyZSBpcyBubyBtb3JlIG5vZGVzIHRvIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlIiBpZD0ieG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5QYXJzZXMgYW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB2YWx1ZSBpbnRvIG9uZSBvciBtb3JlIFRleHQgYW5kIEVudGl0eVJlZmVyZW5jZSBub2Rlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIDAgaWYgdGhlIHJlYWRlciB3YXMgbm90IHBvc2l0aW9ubmVkIG9uIGFuIHR0cmlidXRlIG5vZGUgb3IgYWxsIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IHZhbHVlcyBoYXZlIGJlZW4gcmVhZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sIiBpZD0ieG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbAkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlJlYWRzIHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBub2RlLCBpbmNsdWRpbmcgY2hpbGQgbm9kZXMgYW5kIG1hcmt1cC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgWE1MIGNvbnRlbnQsIG9yIE5VTEwgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBuZWl0aGVyIGFuIGVsZW1lbnQgbm9yIGF0dHJpYnV0ZSwgb3IgaGFzIG5vIGNoaWxkIG5vZGVzLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sIiBpZD0ieG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbAkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPlJlYWRzIHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBub2RlLCBpbmNsdWRpbmcgY2hpbGQgbm9kZXMgYW5kIG1hcmt1cC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgWE1MIGNvbnRlbnQsIG9yIE5VTEwgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBuZWl0aGVyIGFuIGVsZW1lbnQgbm9yIGF0dHJpYnV0ZSwgb3IgaGFzIG5vIGNoaWxkIG5vZGVzLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZFN0YXRlIiBpZD0ieG1sVGV4dFJlYWRlclJlYWRTdGF0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJSZWFkU3RhdGUJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+R2V0cyB0aGUgcmVhZCBzdGF0ZSBvZiB0aGUgcmVhZGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhdGUgdmFsdWUsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVhZFN0cmluZyIgaWQ9InhtbFRleHRSZWFkZXJSZWFkU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIpPGJyIC8+Cis8L3ByZT48cD5SZWFkcyB0aGUgY29udGVudHMgb2YgYW4gZWxlbWVudCBvciBhIHRleHQgbm9kZSBhcyBhIHN0cmluZy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdHJpbmcgY29udGFpbmluZyB0aGUgY29udGVudHMgb2YgdGhlIEVsZW1lbnQgb3IgVGV4dCBub2RlLCBvciBOVUxMIGlmIHRoZSByZWFkZXIgaXMgcG9zaXRpb25lZCBvbiBhbnkgb3RoZXIgdHlwZSBvZiBub2RlLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSIgaWQ9InhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtcmVsYXhuZy5odG1sI3htbFJlbGF4TkdQdHIiPnhtbFJlbGF4TkdQdHI8L2E+IHNjaGVtYSk8YnIgLz4KKzwvcHJlPjxwPlVzZSBSZWxheE5HIHRvIHZhbGlkYXRlIHRoZSBkb2N1bWVudCBhcyBpdCBpcyBwcm9jZXNzZWQuIEFjdGl2YXRpb24gaXMgb25seSBwb3NzaWJsZSBiZWZvcmUgdGhlIGZpcnN0IFJlYWQoKS4gaWYgQHNjaGVtYSBpcyBOVUxMLCB0aGVuIFJlbGF4TkcgdmFsaWRhdGlvbiBpcyBkZXNhY3RpdmF0ZWQuIEAgVGhlIEBzY2hlbWEgc2hvdWxkIG5vdCBiZSBmcmVlZCB1bnRpbCB0aGUgcmVhZGVyIGlzIGRlYWxsb2NhdGVkIG9yIGl0cyB1c2UgaGFzIGJlZW4gZGVhY3RpdmF0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNjaGVtYTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwcmVjb21waWxlZCBSZWxheE5HIHNjaGVtYTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIHRoZSBSZWxheE5HIHZhbGlkYXRpb24gY291bGQgYmUgKGRlcylhY3RpdmF0ZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSIgaWQ9InhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogcm5nKTxiciAvPgorPC9wcmU+PHA+VXNlIFJlbGF4TkcgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4gQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLiBpZiBAcm5nIGlzIE5VTEwsIHRoZW4gUmVsYXhORyB2YWxpZGF0aW9uIGlzIGRlYWN0aXZhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ybmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXRoIHRvIGEgUmVsYXhORyBzY2hlbWEgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIHRoZSBSZWxheE5HIHZhbGlkYXRpb24gY291bGQgYmUgKGRlKWFjdGl2YXRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiIGlkPSJ4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHhzZCk8YnIgLz4KKzwvcHJlPjxwPlVzZSBXM0MgWFNEIHNjaGVtYSB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLiBBY3RpdmF0aW9uIGlzIG9ubHkgcG9zc2libGUgYmVmb3JlIHRoZSBmaXJzdCBSZWFkKCkuIElmIEB4c2QgaXMgTlVMTCwgdGhlbiBYTUwgU2NoZW1hIHZhbGlkYXRpb24gaXMgZGVhY3RpdmF0ZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnhzZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhdGggdG8gYSBXM0MgWFNEIHNjaGVtYSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2UgdGhlIHNjaGVtYXMgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGUpYWN0aXZhdGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQiIGlkPSJ4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0Ij48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dAkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5Vc2UgVzNDIFhTRCBzY2hlbWEgY29udGV4dCB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLiBBY3RpdmF0aW9uIGlzIG9ubHkgcG9zc2libGUgYmVmb3JlIHRoZSBmaXJzdCBSZWFkKCkuIElmIEBjdHh0IGlzIE5VTEwsIHRoZW4gWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGlzIGRlYWN0aXZhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9ucyAobm90IHVzZWQgeWV0KTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIHRoZSBzY2hlbWFzIHZhbGlkYXRpb24gY291bGQgYmUgKGRlKWFjdGl2YXRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyIiBpZD0ieG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlckVycm9yRnVuYyI+eG1sVGV4dFJlYWRlckVycm9yRnVuYzwvYT4gZiwgPGJyIC8+CQkJCQkgdm9pZCAqIGFyZyk8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBlcnJvciBhbmQgd2FybmluZ3MuIElmIEBmIGlzIE5VTEwsIHRoZSBkZWZhdWx0IGVycm9yIGFuZCB3YXJuaW5nIGhhbmRsZXJzIGFyZSByZXN0b3JlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gdXNlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXJyb3IgYW5kIHdhcm5pbmdzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdXNlciBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wIiBpZD0ieG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiByZWFkZXIsIDxiciAvPgkJCQkJIGludCBwcm9wLCA8YnIgLz4JCQkJCSBpbnQgdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5DaGFuZ2UgdGhlIHBhcnNlciBwcm9jZXNzaW5nIGJlaGF2aW91ciBieSBjaGFuZ2luZyBzb21lIG9mIGl0cyBpbnRlcm5hbCBwcm9wZXJ0aWVzLiBOb3RlIHRoYXQgc29tZSBwcm9wZXJ0aWVzIGNhbiBvbmx5IGJlIGNoYW5nZWQgYmVmb3JlIGFueSByZWFkIGhhcyBiZWVuIGRvbmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByb3A8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sUGFyc2VyUHJvcGVydGllcyI+eG1sUGFyc2VyUHJvcGVydGllczwvYT4gdG8gc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dXN1YWxseSAwIG9yIDEgdG8gKGRlKWFjdGl2YXRlIGl0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBjYWxsIHdhcyBzdWNjZXNzZnVsLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclNldFNjaGVtYSIgaWQ9InhtbFRleHRSZWFkZXJTZXRTY2hlbWEiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlclNldFNjaGVtYTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyU2V0U2NoZW1hCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQdHIiPnhtbFNjaGVtYVB0cjwvYT4gc2NoZW1hKTxiciAvPgorPC9wcmU+PHA+VXNlIFhTRCBTY2hlbWEgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4gQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLiBpZiBAc2NoZW1hIGlzIE5VTEwsIHRoZW4gU2NoZW1hIHZhbGlkYXRpb24gaXMgZGVzYWN0aXZhdGVkLiBAIFRoZSBAc2NoZW1hIHNob3VsZCBub3QgYmUgZnJlZWQgdW50aWwgdGhlIHJlYWRlciBpcyBkZWFsbG9jYXRlZCBvciBpdHMgdXNlIGhhcyBiZWVuIGRlYWN0aXZhdGVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcHJlY29tcGlsZWQgU2NoZW1hIHNjaGVtYTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIHRoZSBTY2hlbWEgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGVzKWFjdGl2YXRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlciIgaWQ9InhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlciwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IGYsIDxiciAvPgkJCQkJCSB2b2lkICogYXJnKTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIGVycm9yIGFuZCB3YXJuaW5ncy4gSWYgQGYgaXMgTlVMTCwgdGhlIGRlZmF1bHQgZXJyb3IgYW5kIHdhcm5pbmcgaGFuZGxlcnMgYXJlIHJlc3RvcmVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCBvbiBlcnJvciBhbmQgd2FybmluZ3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB1c2VyIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclNldHVwIiBpZD0ieG1sVGV4dFJlYWRlclNldHVwIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJTZXR1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0UmVhZGVyU2V0dXAJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gaW5wdXQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBVUkwsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5TZXR1cCBhbiBYTUwgcmVhZGVyIHdpdGggbmV3IG9wdGlvbnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZWFkZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhNTCByZWFkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlucHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlcklucHV0QnVmZmVyUHRyIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjwvYT4gdXNlZCB0byBmZWVkIHRoZSByZWFkZXIsIHdpbGwgYmUgZGVzdHJveWVkIHdpdGggaXQuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5VUkw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21iaW5hdGlvbiBvZiA8YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwjeG1sUGFyc2VyT3B0aW9uIj54bWxQYXJzZXJPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSIgaWQ9InhtbFRleHRSZWFkZXJTdGFuZGFsb25lIj48L2E+RnVuY3Rpb246IHhtbFRleHRSZWFkZXJTdGFuZGFsb25lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRSZWFkZXJTdGFuZGFsb25lCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHJlYWRlcik8YnIgLz4KKzwvcHJlPjxwPkRldGVybWluZSB0aGUgc3RhbmRhbG9uZSBzdGF0dXMgb2YgdGhlIGRvY3VtZW50IGJlaW5nIHJlYWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVhZGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sI3htbFRleHRSZWFkZXJQdHIiPnhtbFRleHRSZWFkZXJQdHI8L2E+IHVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIGRvY3VtZW50IHdhcyBkZWNsYXJlZCB0byBiZSBzdGFuZGFsb25lLCAwIGlmIGl0IHdhcyBkZWNsYXJlZCB0byBiZSBub3Qgc3RhbmRhbG9uZSwgb3IgLTEgaWYgdGhlIGRvY3VtZW50IGRpZCBub3Qgc3BlY2lmeSBpdHMgc3RhbmRhbG9uZSBzdGF0dXMgb3IgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0UmVhZGVyVmFsdWUiIGlkPSJ4bWxUZXh0UmVhZGVyVmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFJlYWRlclZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sVGV4dFJlYWRlclZhbHVlCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+UHJvdmlkZXMgdGhlIHRleHQgdmFsdWUgb2YgdGhlIG5vZGUgaWYgcHJlc2VudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZS4gVGhlIHJlc3VsdCBtdXN0IGJlIGRlYWxsb2NhdGVkIHdpdGggeG1sRnJlZSgpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFJlYWRlclhtbExhbmciIGlkPSJ4bWxUZXh0UmVhZGVyWG1sTGFuZyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0UmVhZGVyWG1sTGFuZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFRleHRSZWFkZXJYbWxMYW5nCSg8YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwjeG1sVGV4dFJlYWRlclB0ciI+eG1sVGV4dFJlYWRlclB0cjwvYT4gcmVhZGVyKTxiciAvPgorPC9wcmU+PHA+VGhlIHhtbDpsYW5nIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbm9kZSByZXNpZGVzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlYWRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCN4bWxUZXh0UmVhZGVyUHRyIj54bWxUZXh0UmVhZGVyUHRyPC9hPiB1c2VkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgeG1sOmxhbmcgdmFsdWUgb3IgTlVMTCBpZiBub25lIGV4aXN0cy4sIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxyZWdleHAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2Y1NWIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1scmVnZXhwLmh0bWwKQEAgLTAsMCArMSwxNDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB4bWxyZWdleHAgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4bWxyZWdleHAgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj54bWxyZWFkZXI8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPmJhc2ljIEFQSSBmb3IgbGlieG1sIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaGFuZGxpbmcgdXNlZCBmb3IgWE1MIFNjaGVtYXMgYW5kIHZhbGlkYXRpb24uIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbEV4cEN0eHQiPnhtbEV4cEN0eHQ8L2E+PGJyIC8+c3RydWN0IF94bWxFeHBDdHh0CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0Ij54bWxFeHBDdHh0PC9hPiAqIDxhIG5hbWU9InhtbEV4cEN0eHRQdHIiIGlkPSJ4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sRXhwTm9kZSI+eG1sRXhwTm9kZTwvYT48YnIgLz5zdHJ1Y3QgX3htbEV4cE5vZGUKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGUiPnhtbEV4cE5vZGU8L2E+ICogPGEgbmFtZT0ieG1sRXhwTm9kZVB0ciIgaWQ9InhtbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sRXhwTm9kZVR5cGUiPnhtbEV4cE5vZGVUeXBlPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sUmVnRXhlY0N0eHQiPnhtbFJlZ0V4ZWNDdHh0PC9hPjxiciAvPnN0cnVjdCBfeG1sUmVnRXhlY0N0eHQKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0Ij54bWxSZWdFeGVjQ3R4dDwvYT4gKiA8YSBuYW1lPSJ4bWxSZWdFeGVjQ3R4dFB0ciIgaWQ9InhtbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFJlZ2V4cCI+eG1sUmVnZXhwPC9hPjxiciAvPnN0cnVjdCBfeG1sUmVnZXhwCitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHAiPnhtbFJlZ2V4cDwvYT4gKiA8YSBuYW1lPSJ4bWxSZWdleHBQdHIiIGlkPSJ4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEV4cEN0eHROYkNvbnMiPnhtbEV4cEN0eHROYkNvbnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxFeHBDdHh0TmJOb2RlcyI+eG1sRXhwQ3R4dE5iTm9kZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sRXhwRHVtcCI+eG1sRXhwRHVtcDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEV4cEV4cERlcml2ZSI+eG1sRXhwRXhwRGVyaXZlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gc3ViKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEV4cEZyZWUiPnhtbEV4cEZyZWU8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEV4cEZyZWVDdHh0Ij54bWxFeHBGcmVlQ3R4dDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxFeHBHZXRMYW5ndWFnZSI+eG1sRXhwR2V0TGFuZ3VhZ2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHAsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiBsYW5nTGlzdCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbEV4cEdldFN0YXJ0Ij54bWxFeHBHZXRTdGFydDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHAsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiB0b2tMaXN0LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sRXhwSXNOaWxsYWJsZSI+eG1sRXhwSXNOaWxsYWJsZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sRXhwTWF4VG9rZW4iPnhtbEV4cE1heFRva2VuPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbEV4cE5ld0F0b20iPnhtbEV4cE5ld0F0b208L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxFeHBOZXdDdHh0Ij54bWxFeHBOZXdDdHh0PC9hPgkJKGludCBtYXhOb2RlcywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWRpY3QuaHRtbCN4bWxEaWN0UHRyIj54bWxEaWN0UHRyPC9hPiBkaWN0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwTmV3T3IiPnhtbEV4cE5ld09yPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gbGVmdCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IHJpZ2h0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwTmV3UmFuZ2UiPnhtbEV4cE5ld1JhbmdlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gc3Vic2V0LCA8YnIgLz4JCQkJCSBpbnQgbWluLCA8YnIgLz4JCQkJCSBpbnQgbWF4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwTmV3U2VxIj54bWxFeHBOZXdTZXE8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBsZWZ0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gcmlnaHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxFeHBQYXJzZSI+eG1sRXhwUGFyc2U8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBleHByKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEV4cFJlZiI+eG1sRXhwUmVmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sRXhwU3RyaW5nRGVyaXZlIj54bWxFeHBTdHJpbmdEZXJpdmU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sRXhwU3Vic3VtZSI+eG1sRXhwU3Vic3VtZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHAsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBzdWIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+Cit2b2lkCTxhIGhyZWY9IiN4bWxSZWdFeGVjQ2FsbGJhY2tzIj54bWxSZWdFeGVjQ2FsbGJhY2tzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRva2VuLCA8YnIgLz4JCQkJCSB2b2lkICogdHJhbnNkYXRhLCA8YnIgLz4JCQkJCSB2b2lkICogaW5wdXRkYXRhKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxSZWdFeGVjRXJySW5mbyI+eG1sUmVnRXhlY0VyckluZm88L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHN0cmluZywgPGJyIC8+CQkJCQkgaW50ICogbmJ2YWwsIDxiciAvPgkJCQkJIGludCAqIG5ibmVnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdmFsdWVzLCA8YnIgLz4JCQkJCSBpbnQgKiB0ZXJtaW5hbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlZ0V4ZWNOZXh0VmFsdWVzIj54bWxSZWdFeGVjTmV4dFZhbHVlczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIgLz4JCQkJCSBpbnQgKiBuYnZhbCwgPGJyIC8+CQkJCQkgaW50ICogbmJuZWcsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiB2YWx1ZXMsIDxiciAvPgkJCQkJIGludCAqIHRlcm1pbmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sUmVnRXhlY1B1c2hTdHJpbmciPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSB2b2lkICogZGF0YSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlZ0V4ZWNQdXNoU3RyaW5nMiI+eG1sUmVnRXhlY1B1c2hTdHJpbmcyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZTIsIDxiciAvPgkJCQkJIHZvaWQgKiBkYXRhKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFJlZ0ZyZWVFeGVjQ3R4dCI+eG1sUmVnRnJlZUV4ZWNDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sUmVnRnJlZVJlZ2V4cCI+eG1sUmVnRnJlZVJlZ2V4cDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnZXhwUHRyIj54bWxSZWdleHBQdHI8L2E+IHJlZ2V4cCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sUmVnTmV3RXhlY0N0eHQiPnhtbFJlZ05ld0V4ZWNDdHh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+IGNhbGxiYWNrLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPgk8YSBocmVmPSIjeG1sUmVnZXhwQ29tcGlsZSI+eG1sUmVnZXhwQ29tcGlsZTwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHJlZ2V4cCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlZ2V4cEV4ZWMiPnhtbFJlZ2V4cEV4ZWM8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4gY29tcCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFJlZ2V4cElzRGV0ZXJtaW5pc3QiPnhtbFJlZ2V4cElzRGV0ZXJtaW5pc3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFJlZ2V4cFByaW50Ij54bWxSZWdleHBQcmludDwvYT4JCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiByZWdleHApPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbEV4cEN0eHQiIGlkPSJ4bWxFeHBDdHh0Ij5TdHJ1Y3R1cmUgeG1sRXhwQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sRXhwQ3R4dDxiciAvPnN0cnVjdCBfeG1sRXhwQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sRXhwTm9kZSIgaWQ9InhtbEV4cE5vZGUiPlN0cnVjdHVyZSB4bWxFeHBOb2RlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxFeHBOb2RlPGJyIC8+c3RydWN0IF94bWxFeHBOb2RlIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz5FbnVtIDxhIG5hbWU9InhtbEV4cE5vZGVUeXBlIiBpZD0ieG1sRXhwTm9kZVR5cGUiPnhtbEV4cE5vZGVUeXBlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0geG1sRXhwTm9kZVR5cGUgeworICAgIDxhIG5hbWU9IlhNTF9FWFBfRU1QVFkiIGlkPSJYTUxfRVhQX0VNUFRZIj5YTUxfRVhQX0VNUFRZPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfRVhQX0ZPUkJJRCIgaWQ9IlhNTF9FWFBfRk9SQklEIj5YTUxfRVhQX0ZPUkJJRDwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX0VYUF9BVE9NIiBpZD0iWE1MX0VYUF9BVE9NIj5YTUxfRVhQX0FUT008L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9FWFBfU0VRIiBpZD0iWE1MX0VYUF9TRVEiPlhNTF9FWFBfU0VRPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfRVhQX09SIiBpZD0iWE1MX0VYUF9PUiI+WE1MX0VYUF9PUjwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX0VYUF9DT1VOVCIgaWQ9IlhNTF9FWFBfQ09VTlQiPlhNTF9FWFBfQ09VTlQ8L2E+ID0gNQorfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFJlZ0V4ZWNDdHh0IiBpZD0ieG1sUmVnRXhlY0N0eHQiPlN0cnVjdHVyZSB4bWxSZWdFeGVjQ3R4dDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sUmVnRXhlY0N0eHQ8YnIgLz5zdHJ1Y3QgX3htbFJlZ0V4ZWNDdHh0IHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPgorICAgICAgQSBsaWJ4bWwgcHJvZ3Jlc3NpdmUgcmVndWxhciBleHByZXNzaW9uIGV2YWx1YXRpb24gY29udGV4dAorICAgIDxoMz48YSBuYW1lPSJ4bWxSZWdleHAiIGlkPSJ4bWxSZWdleHAiPlN0cnVjdHVyZSB4bWxSZWdleHA8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFJlZ2V4cDxiciAvPnN0cnVjdCBfeG1sUmVnZXhwIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPgorICAgICAgQSBsaWJ4bWwgcmVndWxhciBleHByZXNzaW9uLCB0aGV5IGNhbiBhY3R1YWxseSBiZSBmYXIgbW9yZSBjb21wbGV4IHRoYW5rIHRoZSBQT1NJWCByZWdleCBleHByZXNzaW9ucy4KKyAgICA8aDM+PGEgbmFtZT0ieG1sRXhwQ3R4dE5iQ29ucyIgaWQ9InhtbEV4cEN0eHROYkNvbnMiPjwvYT5GdW5jdGlvbjogeG1sRXhwQ3R4dE5iQ29uczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBDdHh0TmJDb25zCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5EZWJ1Z2dpbmcgZmFjaWxpdHkgcHJvdmlkZXMgdGhlIG51bWJlciBvZiBhbGxvY2F0ZWQgbm9kZXMgb3ZlciBsaWZldGltZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBub2RlcyBldmVyIGFsbG9jYXRlZCBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwQ3R4dE5iTm9kZXMiIGlkPSJ4bWxFeHBDdHh0TmJOb2RlcyI+PC9hPkZ1bmN0aW9uOiB4bWxFeHBDdHh0TmJOb2RlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBDdHh0TmJOb2RlcwkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+RGVidWdnaW5nIGZhY2lsaXR5IHByb3ZpZGVzIHRoZSBudW1iZXIgb2YgYWxsb2NhdGVkIG5vZGVzIGF0IGEgdGhhdCBwb2ludDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBub2RlcyBpbiB1c2Ugb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEV4cER1bXAiIGlkPSJ4bWxFeHBEdW1wIj48L2E+RnVuY3Rpb246IHhtbEV4cER1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEV4cER1bXAJCQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwcik8YnIgLz4KKzwvcHJlPjxwPlNlcmlhbGl6ZSB0aGUgZXhwcmVzc2lvbiBhcyBjb21waWxlZCB0byB0aGUgYnVmZmVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4cHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb21waWxlZCBleHByZXNzaW9uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwRXhwRGVyaXZlIiBpZD0ieG1sRXhwRXhwRGVyaXZlIj48L2E+RnVuY3Rpb246IHhtbEV4cEV4cERlcml2ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgl4bWxFeHBFeHBEZXJpdmUJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IHN1Yik8YnIgLz4KKzwvcHJlPjxwPkV2YWx1YXRlcyB0aGUgZXhwcmVzc2lvbiByZXN1bHRpbmcgZnJvbSBAZXhwIGNvbnN1bWluZyBhIHN1YiBleHByZXNzaW9uIEBzdWIgQmFzZWQgb24gYWxnZWJyYWljIGRlcml2YXRpb24gYW5kIHNvbWV0aW1lcyBkaXJlY3QgQnJ6b3pvd3NraSBkZXJpdmF0aW9uIGl0IHVzdWFsbHkgdGF0a2VzIGxlc3MgdGhhbiBsaW5lYXIgdGltZSBhbmQgY2FuIGhhbmRsZSBleHByZXNzaW9ucyBnZW5lcmF0aW5nIGluZmluaXRlIGxhbmd1YWdlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbnMgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5nbG9iaW5nIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN1YjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN1YmV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZXhwcmVzc2lvbiBvciBOVUxMIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3IsIHRoZSByZXN1bHQgbXVzdCBiZSBmcmVlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEV4cEZyZWUiIGlkPSJ4bWxFeHBGcmVlIj48L2E+RnVuY3Rpb246IHhtbEV4cEZyZWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEV4cEZyZWUJCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHApPGJyIC8+Cis8L3ByZT48cD5EZXJlZmVyZW5jZSB0aGUgZXhwcmVzc2lvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4cDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBGcmVlQ3R4dCIgaWQ9InhtbEV4cEZyZWVDdHh0Ij48L2E+RnVuY3Rpb246IHhtbEV4cEZyZWVDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxFeHBGcmVlQ3R4dAkJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgYW4gZXhwcmVzc2lvbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwR2V0TGFuZ3VhZ2UiIGlkPSJ4bWxFeHBHZXRMYW5ndWFnZSI+PC9hPkZ1bmN0aW9uOiB4bWxFeHBHZXRMYW5ndWFnZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBHZXRMYW5ndWFnZQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogbGFuZ0xpc3QsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5GaW5kIGFsbCB0aGUgc3RyaW5ncyB1c2VkIGluIEBleHAgYW5kIHN0b3JlIHRoZW0gaW4gQGxpc3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sYW5nTGlzdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2hlcmUgdG8gc3RvcmUgdGhlIHRva2VuczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYWxsb2NhdGVkIGxlbmdodCBvZiBAbGlzdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiB1bmlxdWUgc3RyaW5ncyBmb3VuZCwgLTEgaW4gY2FzZSBvZiBlcnJvcnMgYW5kIC0yIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBAbGVuIHN0cmluZ3M8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBHZXRTdGFydCIgaWQ9InhtbEV4cEdldFN0YXJ0Ij48L2E+RnVuY3Rpb246IHhtbEV4cEdldFN0YXJ0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEV4cEdldFN0YXJ0CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdG9rTGlzdCwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPkZpbmQgYWxsIHRoZSBzdHJpbmdzIHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgdGhlIGxhbmd1YWdlcyBhY2NlcHRlZCBieSBAZXhwIGFuZCBzdG9yZSB0aGVtIGluIEBsaXN0LiBFLmcuIGZvciAoYSwgYikgfCBjIGl0IHdpbGwgcmV0dXJuIHRoZSBsaXN0IFthLCBjXTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmV4cDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRva0xpc3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPndoZXJlIHRvIHN0b3JlIHRoZSB0b2tlbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFsbG9jYXRlZCBsZW5naHQgb2YgQGxpc3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgdW5pcXVlIHN0cmluZ3MgZm91bmQsIC0xIGluIGNhc2Ugb2YgZXJyb3JzIGFuZCAtMiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gQGxlbiBzdHJpbmdzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwSXNOaWxsYWJsZSIgaWQ9InhtbEV4cElzTmlsbGFibGUiPjwvYT5GdW5jdGlvbjogeG1sRXhwSXNOaWxsYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBJc05pbGxhYmxlCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCk8YnIgLz4KKzwvcHJlPjxwPkZpbmRzIGlmIHRoZSBleHByZXNzaW9uIGlzIG5pbGxhYmxlLCBpLmUuIGlmIGl0IGFjY2VwdHMgdGhlIGVtcHR5IHNlcXVxbmNlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBuaWxsYWJsZSwgMCBpZiBub3QgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBNYXhUb2tlbiIgaWQ9InhtbEV4cE1heFRva2VuIj48L2E+RnVuY3Rpb246IHhtbEV4cE1heFRva2VuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbEV4cE1heFRva2VuCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBleHByKTxiciAvPgorPC9wcmU+PHA+SW5kaWNhdGUgdGhlIG1heGltdW0gbnVtYmVyIG9mIGlucHV0IGEgZXhwcmVzc2lvbiBjYW4gYWNjZXB0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb21waWxlZCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4aW11bSBsZW5ndGggb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEV4cE5ld0F0b20iIGlkPSJ4bWxFeHBOZXdBdG9tIj48L2E+RnVuY3Rpb246IHhtbEV4cE5ld0F0b208L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JeG1sRXhwTmV3QXRvbQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhpcyBuYW1lIGZyb20gdGhhdCBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGF0b20gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYXRvbSBuYW1lIGxlbmdodCBpbiBieXRlIChvciAtMSk7PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdDdHh0IiBpZD0ieG1sRXhwTmV3Q3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxFeHBOZXdDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+CXhtbEV4cE5ld0N0eHQJCShpbnQgbWF4Tm9kZXMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1kaWN0Lmh0bWwjeG1sRGljdFB0ciI+eG1sRGljdFB0cjwvYT4gZGljdCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZXMgYSBuZXcgY29udGV4dCBmb3IgbWFuaXB1bGF0aW5nIGV4cHJlc3Npb25zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4Tm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtYXhpbXVtIG51bWJlciBvZiBub2RlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGljdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+b3B0aW9uYWwgZGljdGlvbm5hcnkgdG8gdXNlIGludGVybmFsbHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEV4cE5ld09yIiBpZD0ieG1sRXhwTmV3T3IiPjwvYT5GdW5jdGlvbjogeG1sRXhwTmV3T3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JeG1sRXhwTmV3T3IJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGxlZnQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiByaWdodCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgYXRvbSBhc3NvY2lhdGVkIHRvIHRoZSBjaG9pY2UgQGxlZnQgfCBAcmlnaHQgTm90ZSB0aGF0IEBsZWZ0IGFuZCBAcmlnaHQgYXJlIGNvbnN1bWVkIGluIHRoZSBvcGVyYXRpb24sIHRvIGtlZXAgYW4gaGFuZGxlIG9uIHRoZW0gdXNlIHhtbEV4cFJlZigpIGFuZCB1c2UgeG1sRXhwRnJlZSgpIHRvIHJlbGVhc2UgdGhlbSwgdGhpcyBpcyB0cnVlIGV2ZW4gaW4gY2FzZSBvZiBmYWlsdXJlICh1bmxlc3MgY3R4dCA9PSBOVUxMKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZWZ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5sZWZ0IGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJpZ2h0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5yaWdodCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBOZXdSYW5nZSIgaWQ9InhtbEV4cE5ld1JhbmdlIj48L2E+RnVuY3Rpb246IHhtbEV4cE5ld1JhbmdlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+CXhtbEV4cE5ld1JhbmdlCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cEN0eHRQdHIiPnhtbEV4cEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiBzdWJzZXQsIDxiciAvPgkJCQkJIGludCBtaW4sIDxiciAvPgkJCQkJIGludCBtYXgpPGJyIC8+Cis8L3ByZT48cD5HZXQgdGhlIGF0b20gYXNzb2NpYXRlZCB0byB0aGUgcmFuZ2UgKEBzdWJzZXQpe0BtaW4sIEBtYXh9IE5vdGUgdGhhdCBAc3Vic2V0IGlzIGNvbnN1bWVkIGluIHRoZSBvcGVyYXRpb24sIHRvIGtlZXAgYW4gaGFuZGxlIG9uIGl0IHVzZSB4bWxFeHBSZWYoKSBhbmQgdXNlIHhtbEV4cEZyZWUoKSB0byByZWxlYXNlIGl0LCB0aGlzIGlzIHRydWUgZXZlbiBpbiBjYXNlIG9mIGZhaWx1cmUgKHVubGVzcyBjdHh0ID09IE5VTEwpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN1YnNldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGV4cHJlc3Npb24gdG8gYmUgcmVwZWF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1pbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvd2VyIGJvdW5kIGZvciB0aGUgcmVwZXRpdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bWF4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXBwZXIgYm91bmQgZm9yIHRoZSByZXBldGl0aW9uLCAtMSBtZWFucyBpbmZpbml0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwTmV3U2VxIiBpZD0ieG1sRXhwTmV3U2VxIj48L2E+RnVuY3Rpb246IHhtbEV4cE5ld1NlcTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPgl4bWxFeHBOZXdTZXEJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGxlZnQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBOb2RlUHRyIj54bWxFeHBOb2RlUHRyPC9hPiByaWdodCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgYXRvbSBhc3NvY2lhdGVkIHRvIHRoZSBzZXF1ZW5jZSBAbGVmdCAsIEByaWdodCBOb3RlIHRoYXQgQGxlZnQgYW5kIEByaWdodCBhcmUgY29uc3VtZWQgaW4gdGhlIG9wZXJhdGlvbiwgdG8ga2VlcCBhbiBoYW5kbGUgb24gdGhlbSB1c2UgeG1sRXhwUmVmKCkgYW5kIHVzZSB4bWxFeHBGcmVlKCkgdG8gcmVsZWFzZSB0aGVtLCB0aGlzIGlzIHRydWUgZXZlbiBpbiBjYXNlIG9mIGZhaWx1cmUgKHVubGVzcyBjdHh0ID09IE5VTEwpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlZnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmxlZnQgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmlnaHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJpZ2h0IGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEV4cFBhcnNlIiBpZD0ieG1sRXhwUGFyc2UiPjwvYT5GdW5jdGlvbjogeG1sRXhwUGFyc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JeG1sRXhwUGFyc2UJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGV4cHIpPGJyIC8+Cis8L3ByZT48cD5NaW5pbWFsIHBhcnNlciBmb3IgcmVnZXhwcywgaXQgdW5kZXJzdGFuZCB0aGUgZm9sbG93aW5nIGNvbnN0cnVjdHMgLSBzdHJpbmcgdGVybWluYWxzIC0gY2hvaWNlIG9wZXJhdG9yIHwgLSBzZXF1ZW5jZSBvcGVyYXRvciAsIC0gc3ViZXhwcmVzc2lvbnMgKC4uLikgLSB1c3VhbCBjYXJkaW5hbGl0eSBvcGVyYXRvcnMgKyAqIGFuZCA/IC0gZmluaXRlIHNlcXVlbmNlcyB7IG1pbiwgbWF4IH0gLSBpbmZpbml0ZSBzZXF1ZW5jZXMgeyBtaW4sICogfSBUaGVyZSBpcyBtaW5pbWFsIGNoZWNraW5ncyBtYWRlIGVzcGVjaWFsbHkgbm8gY2hlY2tpbmcgb24gc3RyaW5ncyB2YWx1ZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbnMgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDAgdGVybWluYXRlZCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxFeHBSZWYiIGlkPSJ4bWxFeHBSZWYiPjwvYT5GdW5jdGlvbjogeG1sRXhwUmVmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxFeHBSZWYJCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCk8YnIgLz4KKzwvcHJlPjxwPkluY3JlYXNlIHRoZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjcmVmZXJlbmNlIj5yZWZlcmVuY2U8L2E+IGNvdW50IG9mIHRoZSBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbEV4cFN0cmluZ0Rlcml2ZSIgaWQ9InhtbEV4cFN0cmluZ0Rlcml2ZSI+PC9hPkZ1bmN0aW9uOiB4bWxFeHBTdHJpbmdEZXJpdmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4JeG1sRXhwU3RyaW5nRGVyaXZlCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwQ3R4dFB0ciI+eG1sRXhwQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbEV4cE5vZGVQdHIiPnhtbEV4cE5vZGVQdHI8L2E+IGV4cCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+RG8gb25lIHN0ZXAgb2YgQnJ6b3pvd3NraSBkZXJpdmF0aW9uIG9mIHRoZSBleHByZXNzaW9uIEBleHAgd2l0aCByZXNwZWN0IHRvIHRoZSBpbnB1dCBzdHJpbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leHA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0cmluZyBsZW4gaW4gYnl0ZXMgaWYgYXZhaWxhYmxlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sRXhwU3Vic3VtZSIgaWQ9InhtbEV4cFN1YnN1bWUiPjwvYT5GdW5jdGlvbjogeG1sRXhwU3Vic3VtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxFeHBTdWJzdW1lCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxFeHBDdHh0UHRyIj54bWxFeHBDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gZXhwLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sRXhwTm9kZVB0ciI+eG1sRXhwTm9kZVB0cjwvYT4gc3ViKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciBAZXhwIGFjY2VwdHMgYWxsIHRoZSBsYW5ndWFnZXMgYWNjZXhwdGVkIGJ5IEBzdWIgdGhlIGlucHV0IGJlaW5nIGEgc3ViZXhwcmVzc2lvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXhwcmVzc2lvbnMgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5nbG9iaW5nIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN1YjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN1YmV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIGlmIGZhbHNlIGFuZCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnRXhlY0NhbGxiYWNrcyIgaWQ9InhtbFJlZ0V4ZWNDYWxsYmFja3MiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxSZWdFeGVjQ2FsbGJhY2tzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sUmVnRXhlY0NhbGxiYWNrcwordm9pZAl4bWxSZWdFeGVjQ2FsbGJhY2tzCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdG9rZW4sIDxiciAvPgkJCQkJIHZvaWQgKiB0cmFuc2RhdGEsIDxiciAvPgkJCQkJIHZvaWQgKiBpbnB1dGRhdGEpCis8L3ByZT48cD5DYWxsYmFjayBmdW5jdGlvbiB3aGVuIGRvaW5nIGEgdHJhbnNpdGlvbiBpbiB0aGUgYXV0b21hdGE8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhlYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50b2tlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgdG9rZW4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50cmFuc2RhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRyYW5zaXRpb24gZGF0YTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXRkYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbnB1dCBkYXRhPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxSZWdFeGVjRXJySW5mbyIgaWQ9InhtbFJlZ0V4ZWNFcnJJbmZvIj48L2E+RnVuY3Rpb246IHhtbFJlZ0V4ZWNFcnJJbmZvPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlZ0V4ZWNFcnJJbmZvCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHN0cmluZywgPGJyIC8+CQkJCQkgaW50ICogbmJ2YWwsIDxiciAvPgkJCQkJIGludCAqIG5ibmVnLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogdmFsdWVzLCA8YnIgLz4JCQkJCSBpbnQgKiB0ZXJtaW5hbCk8YnIgLz4KKzwvcHJlPjxwPkV4dHJhY3QgZXJyb3IgaW5mb3JtYXRpb25zIGZyb20gdGhlIHJlZ2V4cCBleGVjdXRpb24sIHRoZSBwYXJhbWV0ZXIgQHN0cmluZyB3aWxsIGJlIHVwZGF0ZWQgd2l0aCB0aGUgdmFsdWUgcHVzaGVkIGFuZCBub3QgYWNjZXB0ZWQsIHRoZSBwYXJhbWV0ZXIgQHZhbHVlcyBtdXN0IHBvaW50IHRvIGFuIGFycmF5IG9mIEBuYnZhbCBzdHJpbmcgcG9pbnRlcnMgb24gcmV0dXJuIG5idmFsIHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIHN0cmluZ3MgaW4gdGhhdCBzdGF0ZSBhbmQgdGhlIEB2YWx1ZXMgYXJyYXkgd2lsbCBiZSB1cGRhdGVkIHdpdGggdGhlbS4gVGhlIHN0cmluZyB2YWx1ZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leGVjPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBnZW5lcmF0aW5nIGFuIGVycm9yPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJldHVybiB2YWx1ZSBmb3IgdGhlIGVycm9yIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJ2YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBhY2NlcHRlZCB2YWx1ZXMgSU4vT1VUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYm5lZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cmV0dXJuIG51bWJlciBvZiBuZWdhdGl2ZSB0cmFuc2l0aW9uczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBhcnJheSBvZiBhY2NlcHRhYmxlIHZhbHVlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGVybWluYWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJldHVybiB2YWx1ZSBpZiB0aGlzIHdhcyBhIHRlcm1pbmFsIHN0YXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD53aWxsIGJlIGZyZWVkIHdpdGggdGhlIEBleGVjIGNvbnRleHQgYW5kIGRvbid0IG5lZWQgdG8gYmUgZGVhbGxvY2F0ZWQuIFJldHVybnM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnRXhlY05leHRWYWx1ZXMiIGlkPSJ4bWxSZWdFeGVjTmV4dFZhbHVlcyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWdFeGVjTmV4dFZhbHVlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWdFeGVjTmV4dFZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdFeGVjQ3R4dFB0ciI+eG1sUmVnRXhlY0N0eHRQdHI8L2E+IGV4ZWMsIDxiciAvPgkJCQkJIGludCAqIG5idmFsLCA8YnIgLz4JCQkJCSBpbnQgKiBuYm5lZywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoqIHZhbHVlcywgPGJyIC8+CQkJCQkgaW50ICogdGVybWluYWwpPGJyIC8+Cis8L3ByZT48cD5FeHRyYWN0IGluZm9ybWF0aW9ucyBmcm9tIHRoZSByZWdleHAgZXhlY3V0aW9uLCB0aGUgcGFyYW1ldGVyIEB2YWx1ZXMgbXVzdCBwb2ludCB0byBhbiBhcnJheSBvZiBAbmJ2YWwgc3RyaW5nIHBvaW50ZXJzIG9uIHJldHVybiBuYnZhbCB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBwb3NzaWJsZSBzdHJpbmdzIGluIHRoYXQgc3RhdGUgYW5kIHRoZSBAdmFsdWVzIGFycmF5IHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZW0uIFRoZSBzdHJpbmcgdmFsdWVzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhlYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSByZWdleHAgZXhlY3V0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5idmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgYWNjZXB0ZWQgdmFsdWVzIElOL09VVDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmJuZWc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJldHVybiBudW1iZXIgb2YgbmVnYXRpdmUgdHJhbnNpdGlvbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgYXJyYXkgb2YgYWNjZXB0YWJsZSB2YWx1ZXM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRlcm1pbmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5yZXR1cm4gdmFsdWUgaWYgdGhpcyB3YXMgYSB0ZXJtaW5hbCBzdGF0ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+d2lsbCBiZSBmcmVlZCB3aXRoIHRoZSBAZXhlYyBjb250ZXh0IGFuZCBkb24ndCBuZWVkIHRvIGJlIGRlYWxsb2NhdGVkLiBSZXR1cm5zOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlZ0V4ZWNQdXNoU3RyaW5nIiBpZD0ieG1sUmVnRXhlY1B1c2hTdHJpbmciPjwvYT5GdW5jdGlvbjogeG1sUmVnRXhlY1B1c2hTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVnRXhlY1B1c2hTdHJpbmcJCSg8YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPiBleGVjLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5QdXNoIG9uZSBpbnB1dCB0b2tlbiBpbiB0aGUgZXhlY3V0aW9uIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leGVjPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZyB0b2tlbiBpbnB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSB0b2tlbiB0byByZXVzZSBpbiBjYWxsYmFja3M8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIHJlZ2V4cCByZWFjaGVkIGEgZmluYWwgc3RhdGUsIDAgaWYgbm9uLWZpbmFsLCBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlZ0V4ZWNQdXNoU3RyaW5nMiIgaWQ9InhtbFJlZ0V4ZWNQdXNoU3RyaW5nMiI+PC9hPkZ1bmN0aW9uOiB4bWxSZWdFeGVjUHVzaFN0cmluZzI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sUmVnRXhlY1B1c2hTdHJpbmcyCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYywgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlMiwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5QdXNoIG9uZSBpbnB1dCB0b2tlbiBpbiB0aGUgZXhlY3V0aW9uIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leGVjPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3Qgc3RyaW5nIHRva2VuIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgc3RyaW5nIHRva2VuIGlucHV0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kYXRhPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5kYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRva2VuIHRvIHJldXNlIGluIGNhbGxiYWNrczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgcmVnZXhwIHJlYWNoZWQgYSBmaW5hbCBzdGF0ZSwgMCBpZiBub24tZmluYWwsIGFuZCBhIG5lZ2F0aXZlIHZhbHVlIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnRnJlZUV4ZWNDdHh0IiBpZD0ieG1sUmVnRnJlZUV4ZWNDdHh0Ij48L2E+RnVuY3Rpb246IHhtbFJlZ0ZyZWVFeGVjQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnRnJlZUV4ZWNDdHh0CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDdHh0UHRyIj54bWxSZWdFeGVjQ3R4dFB0cjwvYT4gZXhlYyk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBldmF1bGF0aW9uIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXhlYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSByZWd1bGFyIGV4cHJlc3Npb24gZXZhdWxhdGlvbiBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnRnJlZVJlZ2V4cCIgaWQ9InhtbFJlZ0ZyZWVSZWdleHAiPjwvYT5GdW5jdGlvbjogeG1sUmVnRnJlZVJlZ2V4cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnRnJlZVJlZ2V4cAkJKDxhIGhyZWY9ImxpYnhtbC14bWxyZWdleHAuaHRtbCN4bWxSZWdleHBQdHIiPnhtbFJlZ2V4cFB0cjwvYT4gcmVnZXhwKTxiciAvPgorPC9wcmU+PHA+RnJlZSBhIHJlZ2V4cDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlZ2V4cDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlZ2V4cDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFJlZ05ld0V4ZWNDdHh0IiBpZD0ieG1sUmVnTmV3RXhlY0N0eHQiPjwvYT5GdW5jdGlvbjogeG1sUmVnTmV3RXhlY0N0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwjeG1sUmVnRXhlY0N0eHRQdHIiPnhtbFJlZ0V4ZWNDdHh0UHRyPC9hPgl4bWxSZWdOZXdFeGVjQ3R4dAkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ0V4ZWNDYWxsYmFja3MiPnhtbFJlZ0V4ZWNDYWxsYmFja3M8L2E+IGNhbGxiYWNrLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5CdWlsZCBhIGNvbnRleHQgdXNlZCBmb3IgcHJvZ3Jlc3NpdmUgZXZhbHVhdGlvbiBvZiBhIHJlZ2V4cC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZWNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2FsbGJhY2s8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBmb3IgaGFuZGxpbmcgcHJvZ3Jlc3NlcyBpbiB0aGUgYXV0b21hdGEgbWF0Y2hpbmcgcGhhc2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgY2FsbGJhY2sgaW4gdGhpcyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWdleHBDb21waWxlIiBpZD0ieG1sUmVnZXhwQ29tcGlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxSZWdleHBDb21waWxlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPgl4bWxSZWdleHBDb21waWxlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiByZWdleHApPGJyIC8+Cis8L3ByZT48cD5QYXJzZXMgYSByZWd1bGFyIGV4cHJlc3Npb24gY29uZm9ybWluZyB0byBYTUwgU2NoZW1hcyBQYXJ0IDIgRGF0YXR5cGUgQXBwZW5kaXggRiBhbmQgYnVpbGRzIGFuIGF1dG9tYXRhIHN1aXRhYmxlIGZvciB0ZXN0aW5nIHN0cmluZ3MgYWdhaW5zdCB0aGF0IHJlZ3VsYXIgZXhwcmVzc2lvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnJlZ2V4cDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcGlsZWQgZXhwcmVzc2lvbiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxSZWdleHBFeGVjIiBpZD0ieG1sUmVnZXhwRXhlYyI+PC9hPkZ1bmN0aW9uOiB4bWxSZWdleHBFeGVjPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFJlZ2V4cEV4ZWMJCQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgaWYgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBnZW5lcmF0ZXMgdGhlIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIHRvIGNoZWNrIGFnYWluc3QgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBpdCBtYXRjaGVzLCAwIGlmIG5vdCBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnZXhwSXNEZXRlcm1pbmlzdCIgaWQ9InhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QiPjwvYT5GdW5jdGlvbjogeG1sUmVnZXhwSXNEZXRlcm1pbmlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxSZWdleHBJc0RldGVybWluaXN0CQkoPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiBjb21wKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgaWYgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyBkZXRlcm1pbmlzdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgaXQgeWVzLCAwIGlmIG5vdCBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sUmVnZXhwUHJpbnQiIGlkPSJ4bWxSZWdleHBQcmludCI+PC9hPkZ1bmN0aW9uOiB4bWxSZWdleHBQcmludDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sUmVnZXhwUHJpbnQJCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sI3htbFJlZ2V4cFB0ciI+eG1sUmVnZXhwUHRyPC9hPiByZWdleHApPGJyIC8+Cis8L3ByZT48cD5QcmludCB0aGUgY29udGVudCBvZiB0aGUgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBmb3IgdGhlIG91dHB1dCBkZWJ1ZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmVnZXhwPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29tcGlsZWQgcmVnZXhwPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHNhdmUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHNhdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDQyYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sc2F2ZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB4bWxzYXZlIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeG1sc2F2ZSBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXhtbHJlZ2V4cC5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteG1scmVnZXhwLmh0bWwiPnhtbHJlZ2V4cDwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sIj54bWxzY2hlbWFzPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+QVBJIHRvIHNhdmUgZG9jdW1lbnQgb3Igc3VidHJlZSBvZiBkb2N1bWVudCA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTYXZlQ3R4dCI+eG1sU2F2ZUN0eHQ8L2E+PGJyIC8+c3RydWN0IF94bWxTYXZlQ3R4dAorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0Ij54bWxTYXZlQ3R4dDwvYT4gKiA8YSBuYW1lPSJ4bWxTYXZlQ3R4dFB0ciIgaWQ9InhtbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxTYXZlT3B0aW9uIj54bWxTYXZlT3B0aW9uPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2F2ZUNsb3NlIj54bWxTYXZlQ2xvc2U8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmxvbmcJPGEgaHJlZj0iI3htbFNhdmVEb2MiPnhtbFNhdmVEb2M8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTYXZlRmx1c2giPnhtbFNhdmVGbHVzaDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTYXZlU2V0QXR0ckVzY2FwZSI+eG1sU2F2ZVNldEF0dHJFc2NhcGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IGVzY2FwZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNhdmVTZXRFc2NhcGUiPnhtbFNhdmVTZXRFc2NhcGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMiPnhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmM8L2E+IGVzY2FwZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNhdmVUb0J1ZmZlciI+eG1sU2F2ZVRvQnVmZmVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQnVmZmVyUHRyIj54bWxCdWZmZXJQdHI8L2E+IGJ1ZmZlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFNhdmVUb0ZkIj54bWxTYXZlVG9GZDwvYT4JCShpbnQgZmQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTYXZlVG9GaWxlbmFtZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L2E+CShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTYXZlVG9JTyI+eG1sU2F2ZVRvSU88L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0V3JpdGVDYWxsYmFjayI+eG1sT3V0cHV0V3JpdGVDYWxsYmFjazwvYT4gaW93cml0ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbElPLmh0bWwjeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayI+eG1sT3V0cHV0Q2xvc2VDYWxsYmFjazwvYT4gaW9jbG9zZSwgPGJyIC8+CQkJCQkgdm9pZCAqIGlvY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZW5jb2RpbmcsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmxvbmcJPGEgaHJlZj0iI3htbFNhdmVUcmVlIj54bWxTYXZlVHJlZTwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0ieG1sU2F2ZUN0eHQiIGlkPSJ4bWxTYXZlQ3R4dCI+U3RydWN0dXJlIHhtbFNhdmVDdHh0PC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxTYXZlQ3R4dDxiciAvPnN0cnVjdCBfeG1sU2F2ZUN0eHQgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sU2F2ZU9wdGlvbiIgaWQ9InhtbFNhdmVPcHRpb24iPnhtbFNhdmVPcHRpb248L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxTYXZlT3B0aW9uIHsKKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9GT1JNQVQiIGlkPSJYTUxfU0FWRV9GT1JNQVQiPlhNTF9TQVZFX0ZPUk1BVDwvYT4gPSAxIDogZm9ybWF0IHNhdmUgb3V0cHV0CisgICAgPGEgbmFtZT0iWE1MX1NBVkVfTk9fREVDTCIgaWQ9IlhNTF9TQVZFX05PX0RFQ0wiPlhNTF9TQVZFX05PX0RFQ0w8L2E+ID0gMiA6IGRyb3AgdGhlIHhtbCBkZWNsYXJhdGlvbgorICAgIDxhIG5hbWU9IlhNTF9TQVZFX05PX0VNUFRZIiBpZD0iWE1MX1NBVkVfTk9fRU1QVFkiPlhNTF9TQVZFX05PX0VNUFRZPC9hPiA9IDQgOiBubyBlbXB0eSB0YWdzCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfTk9fWEhUTUwiIGlkPSJYTUxfU0FWRV9OT19YSFRNTCI+WE1MX1NBVkVfTk9fWEhUTUw8L2E+ID0gOCA6IGRpc2FibGUgWEhUTUwxIHNwZWNpZmljIHJ1bGVzCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfWEhUTUwiIGlkPSJYTUxfU0FWRV9YSFRNTCI+WE1MX1NBVkVfWEhUTUw8L2E+ID0gMTYgOiBmb3JjZSBYSFRNTDEgc3BlY2lmaWMgcnVsZXMKKyAgICA8YSBuYW1lPSJYTUxfU0FWRV9BU19YTUwiIGlkPSJYTUxfU0FWRV9BU19YTUwiPlhNTF9TQVZFX0FTX1hNTDwvYT4gPSAzMiA6IGZvcmNlIFhNTCBzZXJpYWxpemF0aW9uIG9uIEhUTUwgZG9jCisgICAgPGEgbmFtZT0iWE1MX1NBVkVfQVNfSFRNTCIgaWQ9IlhNTF9TQVZFX0FTX0hUTUwiPlhNTF9TQVZFX0FTX0hUTUw8L2E+ID0gNjQgOiBmb3JjZSBIVE1MIHNlcmlhbGl6YXRpb24gb24gWE1MIGRvYworfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFNhdmVDbG9zZSIgaWQ9InhtbFNhdmVDbG9zZSI+PC9hPkZ1bmN0aW9uOiB4bWxTYXZlQ2xvc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZUNsb3NlCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+Q2xvc2UgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCwgaS5lLiBtYWtlIHN1cmUgdGhhdCBhbGwgYnl0ZXMgaGF2ZSBiZWVuIG91dHB1dCBhbmQgZnJlZSB0aGUgYXNzb2NpYXRlZCBkYXRhLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZURvYyIgaWQ9InhtbFNhdmVEb2MiPjwvYT5GdW5jdGlvbjogeG1sU2F2ZURvYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmxvbmcJeG1sU2F2ZURvYwkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+U2F2ZSBhIGZ1bGwgZG9jdW1lbnQgdG8gYSBzYXZpbmcgY29udGV4dCBUT0RPOiBUaGUgZnVuY3Rpb24gaXMgbm90IGZ1bGx5IGltcGxlbWVudGVkIHlldCBhcyBpdCBkb2VzIG5vdCByZXR1cm4gdGhlIGJ5dGUgY291bnQgYnV0IDAgaW5zdGVhZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNhdmVGbHVzaCIgaWQ9InhtbFNhdmVGbHVzaCI+PC9hPkZ1bmN0aW9uOiB4bWxTYXZlRmx1c2g8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZUZsdXNoCQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+Rmx1c2ggYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCwgaS5lLiBtYWtlIHN1cmUgdGhhdCBhbGwgYnl0ZXMgaGF2ZSBiZWVuIG91dHB1dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IHNhdmluZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNhdmVTZXRBdHRyRXNjYXBlIiBpZD0ieG1sU2F2ZVNldEF0dHJFc2NhcGUiPjwvYT5GdW5jdGlvbjogeG1sU2F2ZVNldEF0dHJFc2NhcGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZVNldEF0dHJFc2NhcGUJCSg8YSBocmVmPSJsaWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyI+eG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYzwvYT4gZXNjYXBlKTxiciAvPgorPC9wcmU+PHA+U2V0IGEgY3VzdG9tIGVzY2FwaW5nIGZ1bmN0aW9uIHRvIGJlIHVzZWQgZm9yIHRleHQgaW4gPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBjb250ZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBzYXZpbmcgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXNjYXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXNjYXBpbmcgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2Vzc2Z1bCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNhdmVTZXRFc2NhcGUiIGlkPSJ4bWxTYXZlU2V0RXNjYXBlIj48L2E+RnVuY3Rpb246IHhtbFNhdmVTZXRFc2NhcGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2F2ZVNldEVzY2FwZQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtZW5jb2RpbmcuaHRtbCN4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIj54bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jPC9hPiBlc2NhcGUpPGJyIC8+Cis8L3ByZT48cD5TZXQgYSBjdXN0b20gZXNjYXBpbmcgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgdGV4dCBpbiBlbGVtZW50IGNvbnRlbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGRvY3VtZW50IHNhdmluZyBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lc2NhcGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlc2NhcGluZyBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZXNzZnVsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZVRvQnVmZmVyIiBpZD0ieG1sU2F2ZVRvQnVmZmVyIj48L2E+RnVuY3Rpb246IHhtbFNhdmVUb0J1ZmZlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPgl4bWxTYXZlVG9CdWZmZXIJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWZmZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCBzZXJpYWxpemluZyB0byBhIGJ1ZmZlciB3aXRoIHRoZSBlbmNvZGluZyBhbmQgdGhlIG9wdGlvbnMgZ2l2ZW48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgYnVmZmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuY29kaW5nIG5hbWUgdG8gdXNlIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2V0IG9mIHhtbFNhdmVPcHRpb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyBzZXJpYWxpemF0aW9uIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNhdmVUb0ZkIiBpZD0ieG1sU2F2ZVRvRmQiPjwvYT5GdW5jdGlvbjogeG1sU2F2ZVRvRmQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2F2ZS5odG1sI3htbFNhdmVDdHh0UHRyIj54bWxTYXZlQ3R4dFB0cjwvYT4JeG1sU2F2ZVRvRmQJCShpbnQgZmQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCBzZXJpYWxpemluZyB0byBhIGZpbGUgZGVzY3JpcHRvciB3aXRoIHRoZSBlbmNvZGluZyBhbmQgdGhlIG9wdGlvbnMgZ2l2ZW4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlsZSBkZXNjcmlwdG9yIG51bWJlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBuYW1lIHRvIHVzZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNldCBvZiB4bWxTYXZlT3B0aW9uczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgc2VyaWFsaXphdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTYXZlVG9GaWxlbmFtZSIgaWQ9InhtbFNhdmVUb0ZpbGVuYW1lIj48L2E+RnVuY3Rpb246IHhtbFNhdmVUb0ZpbGVuYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+CXhtbFNhdmVUb0ZpbGVuYW1lCShjb25zdCBjaGFyICogZmlsZW5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgaW50IG9wdGlvbnMpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCBzZXJpYWxpemluZyB0byBhIGZpbGVuYW1lIG9yIHBvc3NpYmx5IHRvIGFuIFVSTCAoYnV0IHRoaXMgaXMgbGVzcyByZWxpYWJsZSkgd2l0aCB0aGUgZW5jb2RpbmcgYW5kIHRoZSBvcHRpb25zIGdpdmVuLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIGZpbGUgbmFtZSBvciBhbiBVUkw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSB0byB1c2Ugb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgeG1sU2F2ZU9wdGlvbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZVRvSU8iIGlkPSJ4bWxTYXZlVG9JTyI+PC9hPkZ1bmN0aW9uOiB4bWxTYXZlVG9JTzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzYXZlLmh0bWwjeG1sU2F2ZUN0eHRQdHIiPnhtbFNhdmVDdHh0UHRyPC9hPgl4bWxTYXZlVG9JTwkJKDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dFdyaXRlQ2FsbGJhY2siPnhtbE91dHB1dFdyaXRlQ2FsbGJhY2s8L2E+IGlvd3JpdGUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxJTy5odG1sI3htbE91dHB1dENsb3NlQ2FsbGJhY2siPnhtbE91dHB1dENsb3NlQ2FsbGJhY2s8L2E+IGlvY2xvc2UsIDxiciAvPgkJCQkJIHZvaWQgKiBpb2N0eCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGVuY29kaW5nLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0IHNlcmlhbGl6aW5nIHRvIGEgZmlsZSBkZXNjcmlwdG9yIHdpdGggdGhlIGVuY29kaW5nIGFuZCB0aGUgb3B0aW9ucyBnaXZlbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmlvd3JpdGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIEkvTyB3cml0ZSBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW9jbG9zZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGNsb3NlIGZ1bmN0aW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5pb2N0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gSS9PIGhhbmRsZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5jb2RpbmcgbmFtZSB0byB1c2Ugb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXQgb2YgeG1sU2F2ZU9wdGlvbnM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2F2ZVRyZWUiIGlkPSJ4bWxTYXZlVHJlZSI+PC9hPkZ1bmN0aW9uOiB4bWxTYXZlVHJlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmxvbmcJeG1sU2F2ZVRyZWUJCQkoPGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCN4bWxTYXZlQ3R4dFB0ciI+eG1sU2F2ZUN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPlNhdmUgYSBzdWJ0cmVlIHN0YXJ0aW5nIGF0IHRoZSBub2RlIHBhcmFtZXRlciB0byBhIHNhdmluZyBjb250ZXh0IFRPRE86IFRoZSBmdW5jdGlvbiBpcyBub3QgZnVsbHkgaW1wbGVtZW50ZWQgeWV0IGFzIGl0IGRvZXMgbm90IHJldHVybiB0aGUgYnl0ZSBjb3VudCBidXQgMCBpbnN0ZWFkPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb2N1bWVudCBzYXZpbmcgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHRvcCBub2RlIG9mIHRoZSBzdWJ0cmVlIHRvIHNhdmU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sc2NoZW1hcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYTg1YjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxzY2hlbWFzLmh0bWwKQEAgLTAsMCArMSwxNzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB4bWxzY2hlbWFzIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeG1sc2NoZW1hcyBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXhtbHNhdmUuaHRtbCI+eG1sc2F2ZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwiPnhtbHNjaGVtYXN0eXBlczwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+aW50ZXJmYWNlIHRvIHRoZSBYTUwgU2NoZW1hcyBoYW5kbGluZyBhbmQgc2NoZW1hIHZhbGlkaXR5IGNoZWNraW5nLCBpdCBpcyBpbmNvbXBsZXRlIHJpZ2h0IG5vdy4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sU2NoZW1hIj54bWxTY2hlbWE8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWEKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFNjaGVtYVBhcnNlckN0eHQiPnhtbFNjaGVtYVBhcnNlckN0eHQ8L2E+PGJyIC8+c3RydWN0IF94bWxTY2hlbWFQYXJzZXJDdHh0CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dCI+eG1sU2NoZW1hUGFyc2VyQ3R4dDwvYT4gKiA8YSBuYW1lPSJ4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIiBpZD0ieG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hIj54bWxTY2hlbWE8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hUHRyIiBpZD0ieG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiPnhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3Q8L2E+ICogPGEgbmFtZT0ieG1sU2NoZW1hU0FYUGx1Z1B0ciIgaWQ9InhtbFNjaGVtYVNBWFBsdWdQdHIiPnhtbFNjaGVtYVNBWFBsdWdQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTY2hlbWFTQVhQbHVnU3RydWN0Ij54bWxTY2hlbWFTQVhQbHVnU3RydWN0PC9hPjxiciAvPnN0cnVjdCBfeG1sU2NoZW1hU0FYUGx1ZworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZEN0eHQiPnhtbFNjaGVtYVZhbGlkQ3R4dDwvYT48YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVZhbGlkQ3R4dAorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dCI+eG1sU2NoZW1hVmFsaWRDdHh0PC9hPiAqIDxhIG5hbWU9InhtbFNjaGVtYVZhbGlkQ3R4dFB0ciIgaWQ9InhtbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkRXJyb3IiPnhtbFNjaGVtYVZhbGlkRXJyb3I8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRPcHRpb24iPnhtbFNjaGVtYVZhbGlkT3B0aW9uPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYUR1bXAiPnhtbFNjaGVtYUR1bXA8L2E+CQkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUHRyIj54bWxTY2hlbWFQdHI8L2E+IHNjaGVtYSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFGcmVlIj54bWxTY2hlbWFGcmVlPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPiBzY2hlbWEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQiPnhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFGcmVlVmFsaWRDdHh0Ij54bWxTY2hlbWFGcmVlVmFsaWRDdHh0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiPnhtbFNjaGVtYUdldFBhcnNlckVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2E+ICogZXJyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+ICogd2FybiwgPGJyIC8+CQkJCQkgdm9pZCAqKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hR2V0VmFsaWRFcnJvcnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2E+ICogZXJyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+ICogd2FybiwgPGJyIC8+CQkJCQkgdm9pZCAqKiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFJc1ZhbGlkIj54bWxTY2hlbWFJc1ZhbGlkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCI+eG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0Ij54bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIGJ1ZmZlciwgPGJyIC8+CQkJCQkJCSBpbnQgc2l6ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWFOZXdQYXJzZXJDdHh0Ij54bWxTY2hlbWFOZXdQYXJzZXJDdHh0PC9hPgkoY29uc3QgY2hhciAqIFVSTCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hTmV3VmFsaWRDdHh0Ij54bWxTY2hlbWFOZXdWYWxpZEN0eHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPiBzY2hlbWEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQdHIiPnhtbFNjaGVtYVB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYVBhcnNlIj54bWxTY2hlbWFQYXJzZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnUHRyIj54bWxTY2hlbWFTQVhQbHVnUHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hU0FYUGx1ZyI+eG1sU2NoZW1hU0FYUGx1ZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFNBWEhhbmRsZXJQdHIiPnhtbFNBWEhhbmRsZXJQdHI8L2E+ICogc2F4LCA8YnIgLz4JCQkJCQkgdm9pZCAqKiB1c2VyX2RhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFTQVhVbnBsdWciPnhtbFNjaGVtYVNBWFVucGx1ZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVNBWFBsdWdQdHIiPnhtbFNjaGVtYVNBWFBsdWdQdHI8L2E+IHBsdWcpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9hPiBlcnIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gd2FybiwgPGJyIC8+CQkJCQkgdm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj54bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGN0eCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyI+eG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2E+IGVyciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiB3YXJuLCA8YnIgLz4JCQkJCSB2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIj54bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMiPnhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9yczwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPiBzZXJyb3IsIDxiciAvPgkJCQkJCSB2b2lkICogY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9uczwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZGF0ZURvYyI+eG1sU2NoZW1hVmFsaWRhdGVEb2M8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRhdGVGaWxlIj54bWxTY2hlbWFWYWxpZGF0ZUZpbGU8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCI+eG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbGVtKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iPnhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4JKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4KK3ZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMiPnhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2E+CSh2b2lkICogY3R4LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogbXNnLCA8YnIgLz4JCQkJCSAuLi4gLi4uKQorPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbFNjaGVtYSIgaWQ9InhtbFNjaGVtYSI+U3RydWN0dXJlIHhtbFNjaGVtYTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hPGJyIC8+c3RydWN0IF94bWxTY2hlbWEgeworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiBzY2hlbWEgbmFtZQorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXRhcmdldE5hbWVzcGFjZQk6IHRoZSB0YXJnZXQgbmFtZXNwYWNlCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJdmVyc2lvbgorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWlkCTogT2Jzb2xldGUKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPglkb2MKKyAgICA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUFubm90UHRyIj54bWxTY2hlbWFBbm5vdFB0cjwvYT4JYW5ub3QKKyAgICBpbnQJZmxhZ3MKKyAgICA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPgl0eXBlRGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CWF0dHJEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JYXR0cmdycERlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPgllbGVtRGVjbAorICAgIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CW5vdGFEZWNsCisgICAgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4Jc2NoZW1hc0ltcG9ydHMKKyAgICB2b2lkICoJX3ByaXZhdGUJOiB1bnVzZWQgYnkgdGhlIGxpYnJhcnkgZm9yIHVzZXJzIG9yIGJpbmQKKyAgICA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPglncm91cERlY2wKKyAgICA8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+CWRpY3QKKyAgICB2b2lkICoJaW5jbHVkZXMJOiB0aGUgaW5jbHVkZXMsIHRoaXMgaXMgb3BhcXVlIGZvciBub3cKKyAgICBpbnQJcHJlc2VydmUJOiB3aGV0aGVyIHRvIGZyZWUgdGhlIGRvY3VtZW50CisgICAgaW50CWNvdW50ZXIJOiB1c2VkIHRvIGdpdmUgb25vbnltb3VzIGNvbXBvbmVudHMgdW5pcXUKKyAgICA8YSBocmVmPSJsaWJ4bWwtaGFzaC5odG1sI3htbEhhc2hUYWJsZVB0ciI+eG1sSGFzaFRhYmxlUHRyPC9hPglpZGNEZWYJOiBBbGwgaWRlbnRpdHktY29uc3RyYWludCBkZWZzLgorICAgIHZvaWQgKgl2b2xhdGlsZXMJOiBPYnNvbGV0ZQorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFQYXJzZXJDdHh0IiBpZD0ieG1sU2NoZW1hUGFyc2VyQ3R4dCI+U3RydWN0dXJlIHhtbFNjaGVtYVBhcnNlckN0eHQ8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFNjaGVtYVBhcnNlckN0eHQ8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVBhcnNlckN0eHQgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3QiIGlkPSJ4bWxTY2hlbWFTQVhQbHVnU3RydWN0Ij5TdHJ1Y3R1cmUgeG1sU2NoZW1hU0FYUGx1Z1N0cnVjdDwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sU2NoZW1hU0FYUGx1Z1N0cnVjdDxiciAvPnN0cnVjdCBfeG1sU2NoZW1hU0FYUGx1ZyB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRDdHh0IiBpZD0ieG1sU2NoZW1hVmFsaWRDdHh0Ij5TdHJ1Y3R1cmUgeG1sU2NoZW1hVmFsaWRDdHh0PC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxTY2hlbWFWYWxpZEN0eHQ8YnIgLz5zdHJ1Y3QgX3htbFNjaGVtYVZhbGlkQ3R4dCB7CitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZEVycm9yIiBpZD0ieG1sU2NoZW1hVmFsaWRFcnJvciI+eG1sU2NoZW1hVmFsaWRFcnJvcjwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFNjaGVtYVZhbGlkRXJyb3IgeworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9PSyIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9PSyI+WE1MX1NDSEVNQVNfRVJSX09LPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9ST09UIiBpZD0iWE1MX1NDSEVNQVNfRVJSX05PUk9PVCI+WE1MX1NDSEVNQVNfRVJSX05PUk9PVDwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX1VOREVDTEFSRURFTEVNIiBpZD0iWE1MX1NDSEVNQVNfRVJSX1VOREVDTEFSRURFTEVNIj5YTUxfU0NIRU1BU19FUlJfVU5ERUNMQVJFREVMRU08L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RUT1BMRVZFTCIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9OT1RUT1BMRVZFTCI+WE1MX1NDSEVNQVNfRVJSX05PVFRPUExFVkVMPC9hPiA9IDMKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTUlTU0lORyIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9NSVNTSU5HIj5YTUxfU0NIRU1BU19FUlJfTUlTU0lORzwvYT4gPSA0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX1dST05HRUxFTSIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9XUk9OR0VMRU0iPlhNTF9TQ0hFTUFTX0VSUl9XUk9OR0VMRU08L2E+ID0gNQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RZUEUiIGlkPSJYTUxfU0NIRU1BU19FUlJfTk9UWVBFIj5YTUxfU0NIRU1BU19FUlJfTk9UWVBFPC9hPiA9IDYKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9ST0xMQkFDSyIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9OT1JPTExCQUNLIj5YTUxfU0NIRU1BU19FUlJfTk9ST0xMQkFDSzwvYT4gPSA3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lTQUJTVFJBQ1QiIGlkPSJYTUxfU0NIRU1BU19FUlJfSVNBQlNUUkFDVCI+WE1MX1NDSEVNQVNfRVJSX0lTQUJTVFJBQ1Q8L2E+ID0gOAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9OT1RFTVBUWSIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9OT1RFTVBUWSI+WE1MX1NDSEVNQVNfRVJSX05PVEVNUFRZPC9hPiA9IDkKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfRUxFTUNPTlQiIGlkPSJYTUxfU0NIRU1BU19FUlJfRUxFTUNPTlQiPlhNTF9TQ0hFTUFTX0VSUl9FTEVNQ09OVDwvYT4gPSAxMAorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9IQVZFREVGQVVMVCIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9IQVZFREVGQVVMVCI+WE1MX1NDSEVNQVNfRVJSX0hBVkVERUZBVUxUPC9hPiA9IDExCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX05PVE5JTExBQkxFIiBpZD0iWE1MX1NDSEVNQVNfRVJSX05PVE5JTExBQkxFIj5YTUxfU0NIRU1BU19FUlJfTk9UTklMTEFCTEU8L2E+ID0gMTIKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfRVhUUkFDT05URU5UIiBpZD0iWE1MX1NDSEVNQVNfRVJSX0VYVFJBQ09OVEVOVCI+WE1MX1NDSEVNQVNfRVJSX0VYVFJBQ09OVEVOVDwvYT4gPSAxMworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9JTlZBTElEQVRUUiIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9JTlZBTElEQVRUUiI+WE1MX1NDSEVNQVNfRVJSX0lOVkFMSURBVFRSPC9hPiA9IDE0CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lOVkFMSURFTEVNIiBpZD0iWE1MX1NDSEVNQVNfRVJSX0lOVkFMSURFTEVNIj5YTUxfU0NIRU1BU19FUlJfSU5WQUxJREVMRU08L2E+ID0gMTUKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9UREVURVJNSU5JU1QiIGlkPSJYTUxfU0NIRU1BU19FUlJfTk9UREVURVJNSU5JU1QiPlhNTF9TQ0hFTUFTX0VSUl9OT1RERVRFUk1JTklTVDwvYT4gPSAxNgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9DT05TVFJVQ1QiIGlkPSJYTUxfU0NIRU1BU19FUlJfQ09OU1RSVUNUIj5YTUxfU0NIRU1BU19FUlJfQ09OU1RSVUNUPC9hPiA9IDE3CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0lOVEVSTkFMIiBpZD0iWE1MX1NDSEVNQVNfRVJSX0lOVEVSTkFMIj5YTUxfU0NIRU1BU19FUlJfSU5URVJOQUw8L2E+ID0gMTgKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfTk9UU0lNUExFIiBpZD0iWE1MX1NDSEVNQVNfRVJSX05PVFNJTVBMRSI+WE1MX1NDSEVNQVNfRVJSX05PVFNJTVBMRTwvYT4gPSAxOQorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9BVFRSVU5LTk9XTiIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9BVFRSVU5LTk9XTiI+WE1MX1NDSEVNQVNfRVJSX0FUVFJVTktOT1dOPC9hPiA9IDIwCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSX0FUVFJJTlZBTElEIiBpZD0iWE1MX1NDSEVNQVNfRVJSX0FUVFJJTlZBTElEIj5YTUxfU0NIRU1BU19FUlJfQVRUUklOVkFMSUQ8L2E+ID0gMjEKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfVkFMVUUiIGlkPSJYTUxfU0NIRU1BU19FUlJfVkFMVUUiPlhNTF9TQ0hFTUFTX0VSUl9WQUxVRTwvYT4gPSAyMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFTX0VSUl9GQUNFVCIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl9GQUNFVCI+WE1MX1NDSEVNQVNfRVJSX0ZBQ0VUPC9hPiA9IDIzCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQVNfRVJSXyIgaWQ9IlhNTF9TQ0hFTUFTX0VSUl8iPlhNTF9TQ0hFTUFTX0VSUl88L2E+ID0gMjQKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BU19FUlJfWFhYIiBpZD0iWE1MX1NDSEVNQVNfRVJSX1hYWCI+WE1MX1NDSEVNQVNfRVJSX1hYWDwvYT4gPSAyNQorfQorPC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRPcHRpb24iIGlkPSJ4bWxTY2hlbWFWYWxpZE9wdGlvbiI+eG1sU2NoZW1hVmFsaWRPcHRpb248L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxTY2hlbWFWYWxpZE9wdGlvbiB7CisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9WQUxfVkNfSV9DUkVBVEUiIGlkPSJYTUxfU0NIRU1BX1ZBTF9WQ19JX0NSRUFURSI+WE1MX1NDSEVNQV9WQUxfVkNfSV9DUkVBVEU8L2E+ID0gMSA6IERlZmF1bHQvZml4ZWQ6IGNyZWF0ZSBhbiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IG5vZGUgKiBvciBhbiBlbGVtZW50J3MgdGV4dCBub2RlIG9uIHRoZSBpbnN0YW5jZS4gKgorfQorPC9wcmU+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUR1bXAiIGlkPSJ4bWxTY2hlbWFEdW1wIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYUR1bXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUR1bXAJCQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQdHIiPnhtbFNjaGVtYVB0cjwvYT4gc2NoZW1hKTxiciAvPgorPC9wcmU+PHA+RHVtcCBhIFNjaGVtYSBzdHJ1Y3R1cmUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlsZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNjaGVtYTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgc3RydWN0dXJlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hRnJlZSIgaWQ9InhtbFNjaGVtYUZyZWUiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hRnJlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hRnJlZQkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPiBzY2hlbWEpPGJyIC8+Cis8L3ByZT48cD5EZWFsbG9jYXRlIGEgU2NoZW1hIHN0cnVjdHVyZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zY2hlbWE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHN0cnVjdHVyZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0IiBpZD0ieG1sU2NoZW1hRnJlZVBhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+RnJlZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGcmVlVmFsaWRDdHh0IiBpZD0ieG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFGcmVlVmFsaWRDdHh0CQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiIGlkPSJ4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYUdldFBhcnNlckVycm9ycwkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIj54bWxTY2hlbWFQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIj54bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYzwvYT4gKiBlcnIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gKiB3YXJuLCA8YnIgLz4JCQkJCSB2b2lkICoqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPkdldCB0aGUgY2FsbGJhY2sgaW5mb3JtYXRpb24gdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHBhcnNlciBjb250ZXh0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBYTWwtU2NoZW1hIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lcnI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBjYWxsYmFjayByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3YXJuaW5nIGNhbGxiYWNrIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb250ZXh0dWFsIGRhdGEgZm9yIHRoZSBjYWxsYmFja3MgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMiIGlkPSJ4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFHZXRWYWxpZEVycm9yczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFHZXRWYWxpZEVycm9ycwkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9hPiAqIGVyciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiAqIHdhcm4sIDxiciAvPgkJCQkJIHZvaWQgKiogY3R4KTxiciAvPgorPC9wcmU+PHA+R2V0IHRoZSBlcnJvciBhbmQgd2FybmluZyBjYWxsYmFjayBpbmZvcm1hdGlvbnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFhNTC1TY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lcnI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBmdW5jdGlvbiByZXN1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3YXJuaW5nIGZ1bmN0aW9uIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb25zIGNvbnRleHQgcmVzdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpbiBjYXNlIG9mIGVycm9yIGFuZCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUlzVmFsaWQiIGlkPSJ4bWxTY2hlbWFJc1ZhbGlkIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYUlzVmFsaWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hSXNWYWxpZAkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5DaGVjayBpZiBhbnkgZXJyb3Igd2FzIGRldGVjdGVkIGR1cmluZyB2YWxpZGF0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHZhbGlkIHNvIGZhciwgMCBpZiBlcnJvcnMgd2VyZSBkZXRlY3RlZCwgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCIgaWQ9InhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4JeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGFuIFhNTCBTY2hlbWFzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZG9jdW1lbnQuIE5CLiBUaGUgZG9jdW1lbnQgbWF5IGJlIG1vZGlmaWVkIGR1cmluZyB0aGUgcGFyc2luZyBwcm9jZXNzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwcmVwYXJzZWQgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQiIGlkPSJ4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0Ij48L2E+RnVuY3Rpb246IHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVBhcnNlckN0eHRQdHIiPnhtbFNjaGVtYVBhcnNlckN0eHRQdHI8L2E+CXhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQJKGNvbnN0IGNoYXIgKiBidWZmZXIsIDxiciAvPgkJCQkJCQkgaW50IHNpemUpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFNjaGVtYXMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBtZW1vcnkgYnVmZmVyIGV4cGVjdGVkIHRvIGNvbnRhaW4gYW4gWE1MIFNjaGVtYXMgZmlsZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5idWZmZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgY29udGFpbmluZyB0aGUgc2NoZW1hczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNpemUgb2YgdGhlIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCIgaWQ9InhtbFNjaGVtYU5ld1BhcnNlckN0eHQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4JeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqIFVSTCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhbiBYTUwgU2NoZW1hcyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IGZpbGUvcmVzb3VyY2UgZXhwZWN0ZWQgdG8gY29udGFpbiBhbiBYTUwgU2NoZW1hcyBmaWxlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlVSTDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvY2F0aW9uIG9mIHRoZSBzY2hlbWE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFOZXdWYWxpZEN0eHQiIGlkPSJ4bWxTY2hlbWFOZXdWYWxpZEN0eHQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hTmV3VmFsaWRDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4JeG1sU2NoZW1hTmV3VmFsaWRDdHh0CSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPiBzY2hlbWEpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYW4gWE1MIFNjaGVtYXMgdmFsaWRhdGlvbiBjb250ZXh0IGJhc2VkIG9uIHRoZSBnaXZlbiBzY2hlbWEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2NoZW1hPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHByZWNvbXBpbGVkIFhNTCBTY2hlbWFzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVBhcnNlIiBpZD0ieG1sU2NoZW1hUGFyc2UiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hUGFyc2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVB0ciI+eG1sU2NoZW1hUHRyPC9hPgl4bWxTY2hlbWFQYXJzZQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGEgc2NoZW1hIGRlZmluaXRpb24gcmVzb3VyY2UgYW5kIGJ1aWxkIGFuIGludGVybmFsIFhNTCBTaGVtYSBzdHJ1dHVyZSB3aGljaCBjYW4gYmUgdXNlZCB0byB2YWxpZGF0ZSBpbnN0YW5jZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZXJuYWwgWE1MIFNjaGVtYSBzdHJ1Y3R1cmUgYnVpbHQgZnJvbSB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hU0FYUGx1ZyIgaWQ9InhtbFNjaGVtYVNBWFBsdWciPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hU0FYUGx1ZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1Z1B0ciI+eG1sU2NoZW1hU0FYUGx1Z1B0cjwvYT4JeG1sU2NoZW1hU0FYUGx1ZwkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT4gKiBzYXgsIDxiciAvPgkJCQkJCSB2b2lkICoqIHVzZXJfZGF0YSk8YnIgLz4KKzwvcHJlPjxwPlBsdWcgYSBTQVggYmFzZWQgdmFsaWRhdGlvbiBsYXllciBpbiBhIFNBWCBwYXJzaW5nIGV2ZW50IGZsb3cuIFRoZSBvcmlnaW5hbCBAc2F4cHRyIGFuZCBAZGF0YXB0ciBkYXRhIGFyZSByZXBsYWNlZCBieSBuZXcgcG9pbnRlcnMgYnV0IHRoZSBjYWxscyB0byB0aGUgb3JpZ2luYWwgd2lsbCBiZSBtYWludGFpbmVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sU0FYSGFuZGxlclB0ciI+eG1sU0FYSGFuZGxlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBvcmlnaW5hbCBTQVggdXNlciBkYXRhIHBvaW50ZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byBhIGRhdGEgc3RydWN0dXJlIG5lZWRlZCB0byB1bnBsdWcgdGhlIHZhbGlkYXRpb24gbGF5ZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFTQVhVbnBsdWciIGlkPSJ4bWxTY2hlbWFTQVhVbnBsdWciPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hU0FYVW5wbHVnPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVNBWFVucGx1ZwkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hU0FYUGx1Z1B0ciI+eG1sU2NoZW1hU0FYUGx1Z1B0cjwvYT4gcGx1Zyk8YnIgLz4KKzwvcHJlPjxwPlVucGx1ZyBhIFNBWCBiYXNlZCB2YWxpZGF0aW9uIGxheWVyIGluIGEgU0FYIHBhcnNpbmcgZXZlbnQgZmxvdy4gVGhlIG9yaWdpbmFsIHBvaW50ZXJzIHVzZWQgaW4gdGhlIGNhbGwgYXJlIHJlc3RvcmVkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBsdWc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZGF0YSBzdHJ1Y3R1cmUgcmV0dXJuZWQgYnkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFTQVhQbHVnIj54bWxTY2hlbWFTQVhQbHVnPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMiIGlkPSJ4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmM8L2E+IGVyciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIj54bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jPC9hPiB3YXJuLCA8YnIgLz4JCQkJCSB2b2lkICogY3R4KTxiciAvPgorPC9wcmU+PHA+U2V0IHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZXJyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZXJyb3IgY2FsbGJhY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pndhcm48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3YXJuaW5nIGNhbGxiYWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMiIGlkPSJ4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbFN0cnVjdHVyZWRFcnJvckZ1bmMiPnhtbFN0cnVjdHVyZWRFcnJvckZ1bmM8L2E+IHNlcnJvciwgPGJyIC8+CQkJCQkJIHZvaWQgKiBjdHgpPGJyIC8+Cis8L3ByZT48cD5TZXQgdGhlIHN0cnVjdHVyZWQgZXJyb3IgY2FsbGJhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2Vycm9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RydWN0dXJlZCBlcnJvciBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb25zIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyIgaWQ9InhtbFNjaGVtYVNldFZhbGlkRXJyb3JzIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVNldFZhbGlkRXJyb3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFTZXRWYWxpZEVycm9ycwkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiPnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9hPiBlcnIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+eG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzwvYT4gd2FybiwgPGJyIC8+CQkJCQkgdm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlNldCB0aGUgZXJyb3IgYW5kIHdhcm5pbmcgY2FsbGJhY2sgaW5mb3JtYXRpb25zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lcnI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d2FybjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdhcm5pbmcgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9ucyBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIiBpZD0ieG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVNldFZhbGlkT3B0aW9uczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+U2V0cyB0aGUgb3B0aW9ucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgdmFsaWRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9wdGlvbnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgY29tYmluYXRpb24gb2YgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZE9wdGlvbiI+eG1sU2NoZW1hVmFsaWRPcHRpb248L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBhbiBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIiBpZD0ieG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9yczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzCSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbGVycm9yLmh0bWwjeG1sU3RydWN0dXJlZEVycm9yRnVuYyI+eG1sU3RydWN0dXJlZEVycm9yRnVuYzwvYT4gc2Vycm9yLCA8YnIgLz4JCQkJCQkgdm9pZCAqIGN0eCk8YnIgLz4KKzwvcHJlPjxwPlNldCB0aGUgc3RydWN0dXJlZCBlcnJvciBjYWxsYmFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2Vycm9yPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RydWN0dXJlZCBlcnJvciBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb25zIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zIiBpZD0ieG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5HZXQgdGhlIHZhbGlkYXRpb24gY29udGV4dCBvcHRpb25zLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9wdGlvbiBjb21iaW5hdGlvbiBvciAtMSBvbiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0IiBpZD0ieG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPgl4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0CSg8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sI3htbFNjaGVtYVZhbGlkQ3R4dFB0ciI+eG1sU2NoZW1hVmFsaWRDdHh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+YWxsb3cgYWNjZXNzIHRvIHRoZSBwYXJzZXIgY29udGV4dCBvZiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBhcnNlciBjb250ZXh0IG9mIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZURvYyIgaWQ9InhtbFNjaGVtYVZhbGlkYXRlRG9jIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVZhbGlkYXRlRG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbGlkYXRlRG9jCQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTxiciAvPgorPC9wcmU+PHA+VmFsaWRhdGUgYSBkb2N1bWVudCB0cmVlIGluIG1lbW9yeS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwYXJzZWQgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgZG9jdW1lbnQgaXMgc2NoZW1hcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlRmlsZSIgaWQ9InhtbFNjaGVtYVZhbGlkYXRlRmlsZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWxpZGF0ZUZpbGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsaWRhdGVGaWxlCQkoPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXMuaHRtbCN4bWxTY2hlbWFWYWxpZEN0eHRQdHIiPnhtbFNjaGVtYVZhbGlkQ3R4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGVuYW1lLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8YnIgLz4KKzwvcHJlPjxwPkRvIGEgc2NoZW1hcyB2YWxpZGF0aW9uIG9mIHRoZSBnaXZlbiByZXNvdXJjZSwgaXQgd2lsbCB1c2UgdGhlIFNBWCBzdHJlYW1hYmxlIHZhbGlkYXRpb24gaW50ZXJuYWxseS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgVVJJIG9mIHRoZSBpbnN0YW5jZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3B0aW9uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBmdXR1cmUgc2V0IG9mIG9wdGlvbnMsIGN1cnJlbnRseSB1bnVzZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIGRvY3VtZW50IGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50IiBpZD0ieG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZWxlbSk8YnIgLz4KKzwvcHJlPjxwPlZhbGlkYXRlIGEgYnJhbmNoIG9mIGEgdHJlZSwgc3RhcnRpbmcgd2l0aCB0aGUgZ2l2ZW4gQGVsZW0uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbGVtPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBlbGVtZW50IG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIGVsZW1lbnQgYW5kIGl0cyBzdWJ0cmVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iIGlkPSJ4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbQkJKDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hVmFsaWRDdHh0UHRyIj54bWxTY2hlbWFWYWxpZEN0eHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIiPnhtbFBhcnNlcklucHV0QnVmZmVyUHRyPC9hPiBpbnB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxTQVhIYW5kbGVyUHRyIj54bWxTQVhIYW5kbGVyUHRyPC9hPiBzYXgsIDxiciAvPgkJCQkJIHZvaWQgKiB1c2VyX2RhdGEpPGJyIC8+Cis8L3ByZT48cD5WYWxpZGF0ZSBhbiBpbnB1dCBiYXNlZCBvbiBhIGZsb3cgb2YgU0FYIGV2ZW50IGZyb20gdGhlIHBhcnNlciBhbmQgZm9yd2FyZCB0aGUgZXZlbnRzIHRvIHRoZSBAc2F4IGhhbmRsZXIgd2l0aCB0aGUgcHJvdmlkZWQgQHVzZXJfZGF0YSB0aGUgdXNlciBwcm92aWRlZCBAc2F4IGhhbmRsZXIgbXVzdCBiZSBhIFNBWDIgb25lLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5wdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCB0byB1c2UgZm9yIHJlYWRpbmcgdGhlIGRhdGE8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gb3B0aW9uYWwgZW5jb2RpbmcgaW5mb3JtYXRpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBTQVggaGFuZGxlciBmb3IgdGhlIHJlc3VsdGluZyBldmVudHM8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVzZXJfZGF0YTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbnRleHQgdG8gcHJvdmlkZSB0byB0aGUgU0FYIGhhbmRsZXIuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBkb2N1bWVudCBpcyBzY2hlbWFzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMiIGlkPSJ4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMKK3ZvaWQJeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT48cD5TaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhbiBYU0QgdmFsaWRhdGlvbjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWxpZGF0aW9uIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm1zZzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG1lc3NhZ2U8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48YnIgLz4KKzxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIiBpZD0ieG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyI+PC9hPkZ1bmN0aW9uIHR5cGU6IHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiB4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jCit2b2lkCXhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMJKHZvaWQgKiBjdHgsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBtc2csIDxiciAvPgkJCQkJIC4uLiAuLi4pCis8L3ByZT48cD5TaWduYXR1cmUgb2YgYSB3YXJuaW5nIGNhbGxiYWNrIGZyb20gYW4gWFNEIHZhbGlkYXRpb248L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsaWRhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5tc2c8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBtZXNzYWdlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYyNTgwOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sCkBAIC0wLDAgKzEsMTIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgeG1sc2NoZW1hc3R5cGVzIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeG1sc2NoZW1hc3R5cGVzIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hcy5odG1sIj54bWxzY2hlbWFzPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCI+eG1sc3RyaW5nPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD5tb2R1bGUgcHJvdmlkaW5nIHRoZSBYTUwgU2NoZW1hIERhdGF0eXBlcyBpbXBsZW1lbnRhdGlvbiBib3RoIGRlZmluaXRpb24gYW5kIHZhbGlkaXR5IGNoZWNraW5nIDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIDxhIGhyZWY9IiN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2NoZW1hQ2hlY2tGYWNldCI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gdHlwZURlY2wsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gcGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sU2NoZW1hQ2xlYW51cFR5cGVzIj54bWxTY2hlbWFDbGVhbnVwVHlwZXM8L2E+CQkodm9pZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmciPnhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFDb21wYXJlVmFsdWVzIj54bWxTY2hlbWFDb21wYXJlVmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHkpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AiPnhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcDwvYT4JKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHgsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiB4d3MsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHksIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiB5d3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYUNvcHlWYWx1ZSI+eG1sU2NoZW1hQ29weVZhbHVlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYUZyZWVGYWNldCI+eG1sU2NoZW1hRnJlZUZhY2V0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxTY2hlbWFGcmVlVmFsdWUiPnhtbFNjaGVtYUZyZWVWYWx1ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWx1ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSI+eG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUiPnhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPiB0eXBlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiByZXRWYWx1ZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogcmV0VmFsdWUsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiB3cyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj51bnNpZ25lZCBsb25nCTxhIGhyZWY9IiN4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZyI+eG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPgk8YSBocmVmPSIjeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+CTxhIGhyZWY9IiN4bWxTY2hlbWFHZXRWYWxUeXBlIj54bWxTY2hlbWFHZXRWYWxUeXBlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFNjaGVtYUluaXRUeXBlcyI+eG1sU2NoZW1hSW5pdFR5cGVzPC9hPgkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQiPnhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gdHlwZSwgPGJyIC8+CQkJCQkgaW50IGZhY2V0VHlwZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld0ZhY2V0Ij54bWxTY2hlbWFOZXdGYWNldDwvYT4JKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUiPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld1FOYW1lVmFsdWUiPnhtbFNjaGVtYU5ld1FOYW1lVmFsdWU8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VOYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBsb2NhbE5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlIj54bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4gdHlwZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiAqIHZhbCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0iPnhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtPC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiAqIHZhbCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlRmFjZXQiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiBiYXNlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcDwvYT4JKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IGZ3cywgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPiB2YWxUeXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4gd3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0Ij54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxiciAvPgkJCQkJIHVuc2lnbmVkIGxvbmcgKiBsZW5ndGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvYT4JKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4gdmFsVHlwZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsLCA8YnIgLz4JCQkJCQkgdW5zaWduZWQgbG9uZyAqIGxlbmd0aCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiB3cyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCI+eG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJCSB1bnNpZ25lZCBsb25nIGFjdHVhbExlbiwgPGJyIC8+CQkJCQkJIHVuc2lnbmVkIGxvbmcgKiBleHBlY3RlZExlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUiPnhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiAqIHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFNjaGVtYVZhbHVlQXBwZW5kIj54bWxTY2hlbWFWYWx1ZUFwcGVuZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiBwcmV2LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbiI+eG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW48L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmciPnhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JPGEgaHJlZj0iI3htbFNjaGVtYVZhbHVlR2V0TmV4dCI+eG1sU2NoZW1hVmFsdWVHZXROZXh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSI+eG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2U8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+RW51bSA8YSBuYW1lPSJ4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIiBpZD0ieG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgeworICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOIiBpZD0iWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04iPlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOPC9hPiA9IDAKKyAgICA8YSBuYW1lPSJYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkUiIGlkPSJYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkUiPlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRTwvYT4gPSAxCisgICAgPGEgbmFtZT0iWE1MX1NDSEVNQV9XSElURVNQQUNFX1JFUExBQ0UiIGlkPSJYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRSI+WE1MX1NDSEVNQV9XSElURVNQQUNFX1JFUExBQ0U8L2E+ID0gMgorICAgIDxhIG5hbWU9IlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSIgaWQ9IlhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSI+WE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFPC9hPiA9IDMKK30KKzwvcHJlPjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFDaGVja0ZhY2V0IiBpZD0ieG1sU2NoZW1hQ2hlY2tGYWNldCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFDaGVja0ZhY2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYUNoZWNrRmFjZXQJCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gdHlwZURlY2wsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzLmh0bWwjeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciI+eG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjwvYT4gcGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5DaGVja3MgYW5kIGNvbXB1dGVzIHRoZSB2YWx1ZXMgb2YgZmFjZXRzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZhY2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGVEZWNsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2NoZW1hIHR5cGUgZGVmaW5pdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQgb3IgTlVMTDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9wdGlvbmFsIG5hbWUgb2YgdGhlIHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBpZiBub3QgdmFsaWQgYW5kIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUNsZWFudXBUeXBlcyIgaWQ9InhtbFNjaGVtYUNsZWFudXBUeXBlcyI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFDbGVhbnVwVHlwZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUNsZWFudXBUeXBlcwkJKHZvaWQpPGJyIC8+Cis8L3ByZT48cD5DbGVhbnVwIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeTwvcD4KKzxoMz48YSBuYW1lPSJ4bWxTY2hlbWFDb2xsYXBzZVN0cmluZyIgaWQ9InhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+UmVtb3ZlcyBhbmQgbm9ybWFsaXplIHdoaXRlIHNwYWNlcyBpbiB0aGUgc3RyaW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RyaW5nIG9yIE5VTEwgaWYgbm8gY2hhbmdlIHdhcyByZXF1aXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFDb21wYXJlVmFsdWVzIiBpZD0ieG1sU2NoZW1hQ29tcGFyZVZhbHVlcyI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFDb21wYXJlVmFsdWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB5KTxiciAvPgorPC9wcmU+PHA+Q29tcGFyZSAyIHZhbHVlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Png8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlyc3QgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pnk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2Vjb25kIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4tMSBpZiB4ICZsdDsgeSwgMCBpZiB4ID09IHksIDEgaWYgeCAmZ3Q7IHksIDIgaWYgeCAmbHQ7Jmd0OyB5LCBhbmQgLTIgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcCIgaWQ9InhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4geHdzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB5LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4geXdzKTxiciAvPgorPC9wcmU+PHA+Q29tcGFyZSAyIHZhbHVlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Png8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZmlyc3QgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pnh3czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdoaXRlc3BhY2UgdmFsdWUgb2YgeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+eTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZWNvbmQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pnl3czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdoaXRlc3BhY2UgdmFsdWUgb2YgeTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaWYgeCAmbHQ7IHksIDAgaWYgeCA9PSB5LCAxIGlmIHggJmd0OyB5LCAyIGlmIHggJmx0OyZndDsgeSwgYW5kIC0yIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFDb3B5VmFsdWUiIGlkPSJ4bWxTY2hlbWFDb3B5VmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hQ29weVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JeG1sU2NoZW1hQ29weVZhbHVlCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5Db3BpZXMgdGhlIHByZWNvbXB1dGVkIHZhbHVlLiBUaGlzIGR1cGxpY2F0ZXMgYW55IHN0cmluZyB3aXRoaW4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcHV0ZWQgdmFsdWUgdG8gYmUgY29waWVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29weSBvciBOVUxMIGlmIGEgY29weSBmb3IgYSBkYXRhLXR5cGUgaXMgbm90IGltcGxlbWVudGVkLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUZyZWVGYWNldCIgaWQ9InhtbFNjaGVtYUZyZWVGYWNldCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFGcmVlRmFjZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFNjaGVtYUZyZWVGYWNldAkJKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hRmFjZXRQdHIiPnhtbFNjaGVtYUZhY2V0UHRyPC9hPiBmYWNldCk8YnIgLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgYSBTY2hlbWEgRmFjZXQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZhY2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHNjaGVtYSBmYWNldCBzdHJ1Y3R1cmU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFGcmVlVmFsdWUiIGlkPSJ4bWxTY2hlbWFGcmVlVmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hRnJlZVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxTY2hlbWFGcmVlVmFsdWUJCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPkNsZWFudXAgdGhlIGRlZmF1bHQgWE1MIFNjaGVtYXMgdHlwZSBsaWJyYXJ5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiIGlkPSJ4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4JeG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUJKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gdHlwZSk8YnIgLz4KKzwvcHJlPjxwPkxvb2t1cCBmdW5jdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWlsdC1pbiBzaW1wbGUgdHlwZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpdGVtIHR5cGUgb2YgQHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgYnVpbHQtaW4gZGF0YXR5cGUgaGllcmFyY2h5IG9mIFhNTCBTY2hlbWEgUGFydCAyOiBEYXRhdHlwZXMsIG9yIE5VTEwgaW4gY2FzZSBvZiBhbiBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSIgaWQ9InhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPgl4bWxTY2hlbWFHZXRCdWlsdEluVHlwZQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxUeXBlIj54bWxTY2hlbWFWYWxUeXBlPC9hPiB0eXBlKTxiciAvPgorPC9wcmU+PHA+R2l2ZXMgeW91IHRoZSB0eXBlIHN0cnVjdCBmb3IgYSBidWlsdC1pbiB0eXBlIGJ5IGl0cyB0eXBlIGlkLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB0eXBlIG9mIHRoZSBidWlsdCBpbiB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSIgaWQ9InhtbFNjaGVtYUdldENhbm9uVmFsdWUiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFHZXRDYW5vblZhbHVlCQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiogcmV0VmFsdWUpPGJyIC8+Cis8L3ByZT48cD5HZXQgYSB0aGUgY29ub25pY2FsIGxleGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLiBUaGUgY2FsbGVyIGhhcyB0byBGUkVFIHRoZSByZXR1cm5lZCByZXRWYWx1ZS4gV0FSTklORzogU29tZSB2YWx1ZSB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQsIHJlc3VsdGluZyBpbiBhIEByZXRWYWx1ZSBvZiAiPz8/Ii4gVE9ETzogWE1MIFNjaGVtYSAxLjAgZG9lcyBub3QgZGVmaW5lIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbnMgZm9yOiBkdXJhdGlvbiwgZ1llYXJNb250aCwgZ1llYXIsIGdNb250aERheSwgZ01vbnRoLCBnRGF5LCBhbnlVUkksIFFOYW1lLCBOT1RBVElPTi4gVGhpcyB3aWxsIGJlIGZpeGVkIGluIFhNTCBTY2hlbWEgMS4xLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXB1dGVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXRWYWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJldHVybmVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSB2YWx1ZSBjb3VsZCBiZSBidWlsdCwgMSBpZiB0aGUgdmFsdWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgLTEgaW4gY2FzZSBvZiBBUEkgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCIgaWQ9InhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqKiByZXRWYWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sI3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUiPnhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU8L2E+IHdzKTxiciAvPgorPC9wcmU+PHA+R2V0IGEgdGhlIGNvbm9uaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUuIFRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIHJldHVybmVkIEByZXRWYWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVjb21wdXRlZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cmV0VmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm5lZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSB2YWx1ZSBjb3VsZCBiZSBidWlsdCwgMSBpZiB0aGUgdmFsdWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgLTEgaW4gY2FzZSBvZiBBUEkgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nIiBpZD0ieG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmciPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj51bnNpZ25lZCBsb25nCXhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQpPGJyIC8+Cis8L3ByZT48cD5FeHRyYWN0IHRoZSB2YWx1ZSBvZiBhIGZhY2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIHNjaGVtYXMgdHlwZSBmYWNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIGFzIGEgbG9uZzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlIiBpZD0ieG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+CXhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zKTxiciAvPgorPC9wcmU+PHA+TG9va3VwIGEgdHlwZSBpbiB0aGUgZGVmYXVsdCBYTUwgU2NoZW1hcyB0eXBlIGxpYnJhcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdHlwZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgbmFtZXNwYWNlIHVzdWFsbHkgImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHR5cGUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hR2V0VmFsVHlwZSIgaWQ9InhtbFNjaGVtYUdldFZhbFR5cGUiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hR2V0VmFsVHlwZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4JeG1sU2NoZW1hR2V0VmFsVHlwZQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+QWNjZXNzb3IgZm9yIHRoZSB0eXBlIG9mIGEgdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2NoZW1hcyB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsVHlwZSI+eG1sU2NoZW1hVmFsVHlwZTwvYT4gb2YgdGhlIHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hSW5pdFR5cGVzIiBpZD0ieG1sU2NoZW1hSW5pdFR5cGVzIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYUluaXRUeXBlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sU2NoZW1hSW5pdFR5cGVzCQkodm9pZCk8YnIgLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgWE1MIFNjaGVtYXMgdHlwZSBsaWJyYXJ5PC9wPgorPGgzPjxhIG5hbWU9InhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCIgaWQ9InhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0CSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVR5cGVQdHIiPnhtbFNjaGVtYVR5cGVQdHI8L2E+IHR5cGUsIDxiciAvPgkJCQkJIGludCBmYWNldFR5cGUpPGJyIC8+Cis8L3ByZT48cD5FdmFsdWF0ZXMgaWYgYSBzcGVjaWZpYyBmYWNldCBjYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdHlwZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVpbHQtaW4gdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXRUeXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgZmFjZXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgZ2l2ZW4gYnVpbHQtaW4gdHlwZSwgMCBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2UgdGhlIHR5cGUgaXMgbm90IGEgYnVpbHQtaW4gdHlwZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFOZXdGYWNldCIgaWQ9InhtbFNjaGVtYU5ld0ZhY2V0Ij48L2E+RnVuY3Rpb246IHhtbFNjaGVtYU5ld0ZhY2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+CXhtbFNjaGVtYU5ld0ZhY2V0CSh2b2lkKTxiciAvPgorPC9wcmU+PHA+QWxsb2NhdGUgYSBuZXcgRmFjZXQgc3RydWN0dXJlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBhbGxvY2F0ZWQgc3RydWN0dXJlIG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUiIGlkPSJ4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPgl4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnMpPGJyIC8+Cis8L3ByZT48cD5BbGxvY2F0ZSBhIG5ldyBOT1RBVElPTiB2YWx1ZS4gVGhlIGdpdmVuIHZhbHVlcyBhcmUgY29uc3VtZWQgYW5kIGZyZWVkIHdpdGggdGhlIHN0cnVjdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm90YXRpb24gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub3RhdGlvbiBuYW1lc3BhY2UgbmFtZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFOZXdRTmFtZVZhbHVlIiBpZD0ieG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFOZXdRTmFtZVZhbHVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4JeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlTmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbG9jYWxOYW1lKTxiciAvPgorPC9wcmU+PHA+QWxsb2NhdGUgYSBuZXcgUU5hbWUgdmFsdWUuIFRoZSBnaXZlbiB2YWx1ZXMgYXJlIGNvbnN1bWVkIGFuZCBmcmVlZCB3aXRoIHRoZSBzdHJ1Y3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlTmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sb2NhbE5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb2NhbCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgYW4gZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUiIGlkPSJ4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+CXhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+IHR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+QWxsb2NhdGUgYSBuZXcgc2ltcGxlIHR5cGUgdmFsdWUuIFRoZSB0eXBlIGNhbiBiZSBvZiBYTUxfU0NIRU1BU19TVFJJTkcuIFdBUk5JTkc6IFRoaXMgb25lIGlzIGludGVuZGVkIHRvIGJlIGV4cGFuZGVkIGZvciBvdGhlciBzdHJpbmcgYmFzZWQgdHlwZXMuIFdlIG5lZWQgdGhpcyBmb3IgYW55U2ltcGxlVHlwZSBhcyB3ZWxsLiBUaGUgZ2l2ZW4gdmFsdWUgaXMgY29uc3VtZWQgYW5kIGZyZWVkIHdpdGggdGhlIHN0cnVjdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBwb2ludGVyIHRvIHRoZSBuZXcgdmFsdWUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUiIGlkPSJ4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gKiB2YWwsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiB0aGUgcHJlZGVmaW5lZCB0eXBlLiBpZiB0cnVlIGEgdmFsdWUgaXMgY29tcHV0ZWQgYW5kIHJldHVybmVkIGluIEB2YWwuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWRlZmluZWQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmV0dXJuIGNvbXB1dGVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBjb250YWluaW5nIHRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIiBpZD0ieG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0iPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm08L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0JKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gdHlwZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gKiB2YWwsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgdGhlIHByZWRlZmluZWQgdHlwZS4gaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLiBUaGlzIG9uZSBkb2VzIGFwcGx5IGFueSBub3JtYWxpemF0aW9uIHRvIHRoZSB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlZGVmaW5lZCB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlIGNvbnRhaW5pbmcgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsaWRhdGVGYWNldCIgaWQ9InhtbFNjaGVtYVZhbGlkYXRlRmFjZXQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hVmFsaWRhdGVGYWNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0CQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiBiYXNlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5DaGVjayBhIHZhbHVlIGFnYWluc3QgYSBmYWNldCBjb25kaXRpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5iYXNlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYmFzZSB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mYWNldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZhY2V0IHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxleGljYWwgcmVwciBvZiB0aGUgdmFsdWUgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXB1dGVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBlbGVtZW50IGlzIHNjaGVtYXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiIGlkPSJ4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcAkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4gZndzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+IHZhbFR5cGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCN4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIj54bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlPC9hPiB3cyk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIGEgdmFsdWUgYWdhaW5zdCBhIGZhY2V0IGNvbmRpdGlvbi4gVGhpcyB0YWtlcyB2YWx1ZSBub3JtYWxpemF0aW9uIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHdoaXRlc3BhY2UgdHlwZXMgaW50byBhY2NvdW50LiBOb3RlIHRoYXQgQHZhbHVlIG5lZWRzIHRvIGJlIHRoZSAqbm9ybWFsaXplZCogdmFsdWUgaWYgdGhlIGZhY2V0IGlzIG9mIHR5cGUgInBhdHRlcm4iLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZhY2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZ3czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdoaXRlc3BhY2UgdHlwZSBvZiB0aGUgZmFjZXQncyB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsVHlwZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ1aWx0LWluIHR5cGUgb2YgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxleGljYWwgKG9yIG5vcm1hbGl6ZWQgZm9yIHBhdHRlcm4pIHJlcHIgb2YgdGhlIHZhbHVlIHRvIHZhbGlkYXRlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVjb21wdXRlZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGlmIHRoZSBlbGVtZW50IGlzIHNjaGVtYXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0IiBpZD0ieG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQJKDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVHlwZVB0ciI+eG1sU2NoZW1hVHlwZVB0cjwvYT4gdHlwZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsLCA8YnIgLz4JCQkJCSB1bnNpZ25lZCBsb25nICogbGVuZ3RoKTxiciAvPgorPC9wcmU+PHA+Q2hlY2thIGEgdmFsdWUgYWdhaW5zdCBhICJsZW5ndGgiLCAibWluTGVuZ3RoIiBhbmQgIm1heExlbmd0aCIgZmFjZXQ7IHNldHMgQGxlbmd0aCB0byB0aGUgY29tcHV0ZWQgbGVuZ3RoIG9mIEB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnVpbHQtaW4gdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmFjZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmYWNldCB0byBjaGVjazwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZXhpY2FsIHJlcHIuIG9mIHRoZSB2YWx1ZSB0byBiZSB2YWxpZGF0ZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHByZWNvbXB1dGVkIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW5ndGg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCIgaWQ9InhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYUZhY2V0UHRyIj54bWxTY2hlbWFGYWNldFB0cjwvYT4gZmFjZXQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFR5cGUiPnhtbFNjaGVtYVZhbFR5cGU8L2E+IHZhbFR5cGUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+IHZhbCwgPGJyIC8+CQkJCQkJIHVuc2lnbmVkIGxvbmcgKiBsZW5ndGgsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteG1sc2NoZW1hc3R5cGVzLmh0bWwjeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSI+eG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTwvYT4gd3MpPGJyIC8+Cis8L3ByZT48cD5DaGVja2EgYSB2YWx1ZSBhZ2FpbnN0IGEgImxlbmd0aCIsICJtaW5MZW5ndGgiIGFuZCAibWF4TGVuZ3RoIiBmYWNldDsgc2V0cyBAbGVuZ3RoIHRvIHRoZSBjb21wdXRlZCBsZW5ndGggb2YgQHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZhY2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmFjZXQgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbFR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBidWlsdC1pbiB0eXBlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxleGljYWwgcmVwci4gb2YgdGhlIHZhbHVlIHRvIGJlIHZhbGlkYXRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHJlY29tcHV0ZWQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pmxlbmd0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGFjdHVhbCBsZW5ndGggb2YgdGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53czwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHdoaXRlc3BhY2UgdHlwZSBvZiB0aGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQiIGlkPSJ4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldAkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFGYWNldFB0ciI+eG1sU2NoZW1hRmFjZXRQdHI8L2E+IGZhY2V0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWUsIDxiciAvPgkJCQkJCSB1bnNpZ25lZCBsb25nIGFjdHVhbExlbiwgPGJyIC8+CQkJCQkJIHVuc2lnbmVkIGxvbmcgKiBleHBlY3RlZExlbik8YnIgLz4KKzwvcHJlPjxwPkNoZWNrcyB0aGUgdmFsdWUgb2YgYSBsaXN0IHNpbXBsZSB0eXBlIGFnYWluc3QgYSBmYWNldC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mYWNldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZhY2V0IHRvIGNoZWNrPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxleGljYWwgcmVwciBvZiB0aGUgdmFsdWUgdG8gdmFsaWRhdGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFjdHVhbExlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBsaXN0IGl0ZW1zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5leHBlY3RlZExlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdGluZyBleHBlY3RlZCBudW1iZXIgb2YgbGlzdCBpdGVtczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUiIGlkPSJ4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZQkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFUeXBlUHRyIj54bWxTY2hlbWFUeXBlUHRyPC9hPiB0eXBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWx1ZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gKiB2YWwpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgdGhlIHByZWRlZmluZWQgdHlwZS4gaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnR5cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVkZWZpbmVkIHR5cGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbHVlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWUgdG8gY2hlY2s8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJldHVybiBjb21wdXRlZCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbHVlQXBwZW5kIiBpZD0ieG1sU2NoZW1hVmFsdWVBcHBlbmQiPjwvYT5GdW5jdGlvbjogeG1sU2NoZW1hVmFsdWVBcHBlbmQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU2NoZW1hVmFsdWVBcHBlbmQJCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiBwcmV2LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5BcHBlbmRzIGEgbmV4dCBzaWJsaW5nIHRvIGEgbGlzdCBvZiBjb21wdXRlZCB2YWx1ZXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJldjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZSB0byBiZSBhcHBlbmRlZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiBzdWNjZWVkZWQgYW5kIC0xIG9uIEFQSSBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4iIGlkPSJ4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbiI+PC9hPkZ1bmN0aW9uOiB4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbgkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+QWNjZXNzb3IgZm9yIHRoZSBib29sZWFuIHZhbHVlIG9mIGEgY29tcHV0ZWQgdmFsdWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSBhbmQgMCBpZiBmYWxzZSwgb3IgaW4gY2FzZSBvZiBhbiBlcnJvci4gSG1tLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmciIGlkPSJ4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwtc2NoZW1hc0ludGVybmFscy5odG1sI3htbFNjaGVtYVZhbFB0ciI+eG1sU2NoZW1hVmFsUHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5BY2Nlc3NvciBmb3IgdGhlIHN0cmluZyB2YWx1ZSBvZiBhIGNvbXB1dGVkIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nIHZhbHVlIG9yIE5VTEwgaWYgdGhlcmUgd2FzIG5vbmUsIG9yIG9uIEFQSSBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU2NoZW1hVmFsdWVHZXROZXh0IiBpZD0ieG1sU2NoZW1hVmFsdWVHZXROZXh0Ij48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVZhbHVlR2V0TmV4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1zY2hlbWFzSW50ZXJuYWxzLmh0bWwjeG1sU2NoZW1hVmFsUHRyIj54bWxTY2hlbWFWYWxQdHI8L2E+CXhtbFNjaGVtYVZhbHVlR2V0TmV4dAkoPGEgaHJlZj0ibGlieG1sLXNjaGVtYXNJbnRlcm5hbHMuaHRtbCN4bWxTY2hlbWFWYWxQdHIiPnhtbFNjaGVtYVZhbFB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+QWNjZXNzb3IgZm9yIHRoZSBuZXh0IHNpYmxpbmcgb2YgYSBsaXN0IG9mIGNvbXB1dGVkIHZhbHVlcy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgdmFsdWUgb3IgTlVMTCBpZiB0aGVyZSB3YXMgbm9uZSwgb3Igb24gQVBJIGVycm9ycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSIgaWQ9InhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlIj48L2E+RnVuY3Rpb246IHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbHVlKTxiciAvPgorPC9wcmU+PHA+UmVwbGFjZXMgMHhkLCAweDkgYW5kIDB4YSB3aXRoIGEgc3BhY2UuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgc3RyaW5nIG9yIE5VTEwgaWYgbm8gY2hhbmdlIHdhcyByZXF1aXJlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWxzdHJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWI2MmRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sc3RyaW5nLmh0bWwKQEAgLTAsMCArMSwxMDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgZGl2LmRlcHJlY2F0ZWQgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtib3JkZXItY29sb3I6cmVkfQorICAgICAgcHJlLnByb2dyYW1saXN0aW5nIHtib3JkZXItc3R5bGU6IGRvdWJsZTtiYWNrZ3JvdW5kOiAjRUVDRkExfQorICAgIDwvc3R5bGU+PHRpdGxlPk1vZHVsZSB4bWxzdHJpbmcgZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4bWxzdHJpbmcgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14bWxzY2hlbWFzdHlwZXMuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXhtbHNjaGVtYXN0eXBlcy5odG1sIj54bWxzY2hlbWFzdHlwZXM8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhtbHVuaWNvZGUuaHRtbCI+eG1sdW5pY29kZTwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14bWx1bmljb2RlLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPnR5cGUgYW5kIGludGVyZmFjZXMgbmVlZGVkIGZvciB0aGUgaW50ZXJuYWwgc3RyaW5nIGhhbmRsaW5nIG9mIHRoZSBsaWJyYXJ5LCBlc3BlY2lhbGx5IFVURjggcHJvY2Vzc2luZy4gPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0JBRF9DQVNUIj5CQURfQ0FTVDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiB1bnNpZ25lZCBjaGFyIDxhIG5hbWU9InhtbENoYXIiIGlkPSJ4bWxDaGFyIj54bWxDaGFyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxDaGFyU3RyZHVwIj54bWxDaGFyU3RyZHVwPC9hPgkJKGNvbnN0IGNoYXIgKiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbENoYXJTdHJuZHVwIj54bWxDaGFyU3RybmR1cDwvYT4JCShjb25zdCBjaGFyICogY3VyLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sQ2hlY2tVVEY4Ij54bWxDaGVja1VURjg8L2E+CQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiB1dGYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxHZXRVVEY4Q2hhciI+eG1sR2V0VVRGOENoYXI8L2E+CQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiB1dGYsIDxiciAvPgkJCQkJIGludCAqIGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0ckVxdWFsIj54bWxTdHJFcXVhbDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0clByaW50ZiI+eG1sU3RyUHJpbnRmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0clFFcXVhbCI+eG1sU3RyUUVxdWFsPC9hPgkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTdHJWUHJpbnRmIj54bWxTdHJWUHJpbnRmPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1zZywgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0cmNhc2VjbXAiPnhtbFN0cmNhc2VjbXA8L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjEsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cmNhc2VzdHIiPnhtbFN0cmNhc2VzdHI8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cmNhdCI+eG1sU3RyY2F0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYWRkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJjaHIiPnhtbFN0cmNocjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxTdHJjbXAiPnhtbFN0cmNtcDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RyZHVwIj54bWxTdHJkdXA8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU3RybGVuIj54bWxTdHJsZW48L2E+CQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFN0cm5jYXNlY21wIj54bWxTdHJuY2FzZWNtcDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMiwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RybmNhdCI+eG1sU3RybmNhdDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFkZCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RybmNhdE5ldyI+eG1sU3RybmNhdE5ldzwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIxLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIyLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sU3RybmNtcCI+eG1sU3RybmNtcDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMiwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sU3RybmR1cCI+eG1sU3RybmR1cDwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFN0cnN0ciI+eG1sU3Ryc3RyPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxTdHJzdWIiPnhtbFN0cnN1YjwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIGludCBzdGFydCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVURjhDaGFyY21wIj54bWxVVEY4Q2hhcmNtcDwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmMik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVURjhTaXplIj54bWxVVEY4U2l6ZTwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVVRGOFN0cmxlbiI+eG1sVVRGOFN0cmxlbjwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVVRGOFN0cmxvYyI+eG1sVVRGOFN0cmxvYzwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGZjaGFyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxVVEY4U3RybmR1cCI+eG1sVVRGOFN0cm5kdXA8L2E+CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxVVEY4U3RycG9zIj54bWxVVEY4U3RycG9zPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyIC8+CQkJCQkgaW50IHBvcyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVURjhTdHJzaXplIj54bWxVVEY4U3Ryc2l6ZTwvYT4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxVVEY4U3Ryc3ViIj54bWxVVEY4U3Ryc3ViPC9hPgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0ZiwgPGJyIC8+CQkJCQkgaW50IHN0YXJ0LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJCQURfQ0FTVCIgaWQ9IkJBRF9DQVNUIj48L2E+TWFjcm86IEJBRF9DQVNUPC9oMz48cHJlPiNkZWZpbmUgQkFEX0NBU1Q8L3ByZT48cD5NYWNybyB0byBjYXN0IGEgc3RyaW5nIHRvIGFuIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHdoZW4gb25lIGtub3cgaXRzIHNhZmUuPC9wPgorCisgICAgICBUaGlzIGlzIGEgYmFzaWMgYnl0ZSBpbiBhbiBVVEYtOCBlbmNvZGVkIHN0cmluZy4gSXQncyB1bnNpZ25lZCBhbGxvd2luZyB0byBwaW5wb2ludCBjYXNlIHdoZXJlIGNoYXIgKiBhcmUgYXNzaWduZWQgdG8geG1sQ2hhciAqIChwb3NzaWJseSBtYWtpbmcgc2VyaWFsaXphdGlvbiBiYWNrIGltcG9zc2libGUpLgorICAgIDxoMz48YSBuYW1lPSJ4bWxDaGFyU3RyZHVwIiBpZD0ieG1sQ2hhclN0cmR1cCI+PC9hPkZ1bmN0aW9uOiB4bWxDaGFyU3RyZHVwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sQ2hhclN0cmR1cAkJKGNvbnN0IGNoYXIgKiBjdXIpPGJyIC8+Cis8L3ByZT48cD5hIHN0cmR1cCBmb3IgY2hhcidzIHRvIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IGNoYXIgKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbENoYXJTdHJuZHVwIiBpZD0ieG1sQ2hhclN0cm5kdXAiPjwvYT5GdW5jdGlvbjogeG1sQ2hhclN0cm5kdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxDaGFyU3RybmR1cAkJKGNvbnN0IGNoYXIgKiBjdXIsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5hIHN0cm5kdXAgZm9yIGNoYXIncyB0byB4bWxDaGFyJ3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBjaGFyICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbiBvZiBAY3VyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sQ2hlY2tVVEY4IiBpZD0ieG1sQ2hlY2tVVEY4Ij48L2E+RnVuY3Rpb246IHhtbENoZWNrVVRGODwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxDaGVja1VURjgJCQkoY29uc3QgdW5zaWduZWQgY2hhciAqIHV0Zik8YnIgLz4KKzwvcHJlPjxwPkNoZWNrcyBAdXRmIGZvciBiZWluZyB2YWxpZCBVVEYtOC4gQHV0ZiBpcyBhc3N1bWVkIHRvIGJlIG51bGwtdGVybWluYXRlZC4gVGhpcyBmdW5jdGlvbiBpcyBub3Qgc3VwZXItc3RyaWN0LCBhcyBpdCB3aWxsIGFsbG93IGxvbmdlciBVVEYtOCBzZXF1ZW5jZXMgdGhhbiBuZWNlc3NhcnkuIE5vdGUgdGhhdCBKYXZhIGlzIGNhcGFibGUgb2YgcHJvZHVjaW5nIHRoZXNlIHNlcXVlbmNlcyBpZiBwcm92b2tlZC4gQWxzbyBub3RlLCB0aGlzIHJvdXRpbmUgY2hlY2tzIGZvciB0aGUgNC1ieXRlIG1heGltdW0gc2l6ZSwgYnV0IGRvZXMgbm90IGNoZWNrIGZvciAweDEwZmZmZiBtYXhpbXVtIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+UG9pbnRlciB0byBwdXRhdGl2ZSBVVEYtOCBlbmNvZGVkIHN0cmluZy48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnZhbHVlOiB0cnVlIGlmIEB1dGYgaXMgdmFsaWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sR2V0VVRGOENoYXIiIGlkPSJ4bWxHZXRVVEY4Q2hhciI+PC9hPkZ1bmN0aW9uOiB4bWxHZXRVVEY4Q2hhcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxHZXRVVEY4Q2hhcgkJCShjb25zdCB1bnNpZ25lZCBjaGFyICogdXRmLCA8YnIgLz4JCQkJCSBpbnQgKiBsZW4pPGJyIC8+Cis8L3ByZT48cD5SZWFkIHRoZSBmaXJzdCBVVEY4IGNoYXJhY3RlciBmcm9tIEB1dGY8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51dGY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2VxdWVuY2Ugb2YgVVRGLTggZW5jb2RlZCBieXRlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIHByZXNlbnQgaW4gdGhlIHNlcXVlbmNlLiBUaGlzIGlzIHVzZWQgdG8gYXNzdXJlIHRoZSBuZXh0IGNoYXJhY3RlciBpcyBjb21wbGV0ZWx5IGNvbnRhaW5lZCB3aXRoaW4gdGhlIHNlcXVlbmNlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNoYXIgdmFsdWUgb3IgLTEgaW4gY2FzZSBvZiBlcnJvciwgYW5kIHNldHMgKmxlbiB0byB0aGUgYWN0dWFsIG51bWJlciBvZiBieXRlcyBjb25zdW1lZCAoMCBpbiBjYXNlIG9mIGVycm9yKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0ckVxdWFsIiBpZD0ieG1sU3RyRXF1YWwiPjwvYT5GdW5jdGlvbjogeG1sU3RyRXF1YWw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyRXF1YWwJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIGlmIGJvdGggc3RyaW5ncyBhcmUgZXF1YWwgb2YgaGF2ZSBzYW1lIGNvbnRlbnQuIFNob3VsZCBiZSBhIGJpdCBtb3JlIHJlYWRhYmxlIGFuZCBmYXN0ZXIgdGhhbiB4bWxTdHJjbXAoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGV5IGFyZSBlcXVhbCwgMCBpZiB0aGV5IGFyZSBkaWZmZXJlbnQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJQcmludGYiIGlkPSJ4bWxTdHJQcmludGYiPjwvYT5GdW5jdGlvbjogeG1sU3RyUHJpbnRmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0clByaW50ZgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1zZywgPGJyIC8+CQkJCQkgLi4uIC4uLik8YnIgLz4KKzwvcHJlPjxwPkZvcm1hdHMgQG1zZyBhbmQgcGxhY2VzIHJlc3VsdCBpbnRvIEBidWYuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0IGJ1ZmZlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdCBidWZmZXIgbGVuZ3RoLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZSB3aXRoIHByaW50ZiBmb3JtYXR0aW5nLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IHdyaXR0ZW4gdG8gQGJ1ZiBvciAtMSBpZiBhbiBlcnJvciBvY2N1cnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RyUUVxdWFsIiBpZD0ieG1sU3RyUUVxdWFsIj48L2E+RnVuY3Rpb246IHhtbFN0clFFcXVhbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJRRXF1YWwJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZiwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgaWYgYSBRTmFtZSBpcyBFcXVhbCB0byBhIGdpdmVuIHN0cmluZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVmaXggb2YgdGhlIFFOYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbG9jYWxuYW1lIG9mIHRoZSBRTmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRoZXkgYXJlIGVxdWFsLCAwIGlmIHRoZXkgYXJlIGRpZmZlcmVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0clZQcmludGYiIGlkPSJ4bWxTdHJWUHJpbnRmIj48L2E+RnVuY3Rpb246IHhtbFN0clZQcmludGY8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyVlByaW50ZgkJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBidWYsIDxiciAvPgkJCQkJIGludCBsZW4sIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG1zZywgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcCk8YnIgLz4KKzwvcHJlPjxwPkZvcm1hdHMgQG1zZyBhbmQgcGxhY2VzIHJlc3VsdCBpbnRvIEBidWYuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YnVmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0IGJ1ZmZlci48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHJlc3VsdCBidWZmZXIgbGVuZ3RoLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bXNnPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWVzc2FnZSB3aXRoIHByaW50ZiBmb3JtYXR0aW5nLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJjYXNlY21wIiBpZD0ieG1sU3RyY2FzZWNtcCI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJjYXNlY21wPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFN0cmNhc2VjbXAJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMik8YnIgLz4KKzwvcHJlPjxwPmEgc3RyY2FzZWNtcCBmb3IgeG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJjYXNlc3RyIiBpZD0ieG1sU3RyY2FzZXN0ciI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJjYXNlc3RyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Y29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3RyY2FzZXN0cgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTxiciAvPgorPC9wcmU+PHA+YSBjYXNlLWlnbm9yaW5nIHN0cnN0ciBmb3IgeG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYXJyYXkgKGhheXN0YWNrKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHRvIHNlYXJjaCAobmVlZGxlKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBOVUxMLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmNhdCIgaWQ9InhtbFN0cmNhdCI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJjYXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTdHJjYXQJCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjdXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFkZCk8YnIgLz4KKzwvcHJlPjxwPmEgc3RyY2F0IGZvciBhcnJheSBvZiB4bWxDaGFyJ3MuIFNpbmNlIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGJlIGVuY29kZWQgaW4gVVRGLTggb3IgYW4gZW5jb2Rpbmcgd2l0aCA4Yml0IGJhc2VkIGNoYXJzLCB3ZSBhc3N1bWUgYSB0ZXJtaW5hdGlvbiBtYXJrIG9mICcwJy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvcmlnaW5hbCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YWRkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYXJyYXkgYWRkZWQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRhaW5pbmcgdGhlIGNvbmNhdGVuYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RyY2hyIiBpZD0ieG1sU3RyY2hyIj48L2E+RnVuY3Rpb246IHhtbFN0cmNocjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFN0cmNocgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHZhbCk8YnIgLz4KKzwvcHJlPjxwPmEgc3RyY2hyIGZvciB4bWxDaGFyJ3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+IHRvIHNlYXJjaDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBOVUxMLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cmNtcCIgaWQ9InhtbFN0cmNtcCI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJjbXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RyY21wCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjEsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjIpPGJyIC8+Cis8L3ByZT48cD5hIHN0cmNtcCBmb3IgeG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHIyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJkdXAiIGlkPSJ4bWxTdHJkdXAiPjwvYT5GdW5jdGlvbjogeG1sU3RyZHVwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3RyZHVwCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY3VyKTxiciAvPgorPC9wcmU+PHA+YSBzdHJkdXAgZm9yIGFycmF5IG9mIHhtbENoYXIncy4gU2luY2UgdGhleSBhcmUgc3VwcG9zZWQgdG8gYmUgZW5jb2RlZCBpbiBVVEYtOCBvciBhbiBlbmNvZGluZyB3aXRoIDhiaXQgYmFzZWQgY2hhcnMsIHdlIGFzc3VtZSBhIHRlcm1pbmF0aW9uIG1hcmsgb2YgJzAnLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RybGVuIiBpZD0ieG1sU3RybGVuIj48L2E+RnVuY3Rpb246IHhtbFN0cmxlbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJsZW4JCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxiciAvPgorPC9wcmU+PHA+bGVuZ3RoIG9mIGEgeG1sQ2hhcidzIHN0cmluZzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFycmF5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBjb250YWluZWQgaW4gdGhlIEFSUkFZLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cm5jYXNlY21wIiBpZD0ieG1sU3RybmNhc2VjbXAiPjwvYT5GdW5jdGlvbjogeG1sU3RybmNhc2VjbXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sU3RybmNhc2VjbXAJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMiwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPmEgc3RybmNhc2VjbXAgZm9yIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4IGNvbXBhcmlzb24gbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJuY2F0IiBpZD0ieG1sU3RybmNhdCI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJuY2F0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3RybmNhdAkJKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYWRkLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+YSBzdHJuY2F0IGZvciBhcnJheSBvZiB4bWxDaGFyJ3MsIGl0IHdpbGwgZXh0ZW5kIEBjdXIgd2l0aCB0aGUgbGVuIGZpcnN0IGJ5dGVzIG9mIEBhZGQuIE5vdGUgdGhhdCBpZiBAbGVuICZsdDsgMCB0aGVuIHRoaXMgaXMgYW4gQVBJIGVycm9yIGFuZCBOVUxMIHdpbGwgYmUgcmV0dXJuZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb3JpZ2luYWwgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYXJyYXk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFkZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFycmF5IGFkZGVkPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW5ndGggb2YgQGFkZDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuZXcgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICosIHRoZSBvcmlnaW5hbCBAY3VyIGlzIHJlYWxsb2NhdGVkIGlmIG5lZWRlZCBhbmQgc2hvdWxkIG5vdCBiZSBmcmVlZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFN0cm5jYXROZXciIGlkPSJ4bWxTdHJuY2F0TmV3Ij48L2E+RnVuY3Rpb246IHhtbFN0cm5jYXROZXc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxTdHJuY2F0TmV3CQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyMiwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPnNhbWUgYXMgeG1sU3RybmNhdCwgYnV0IGNyZWF0ZXMgYSBuZXcgc3RyaW5nLiBUaGUgb3JpZ2luYWwgdHdvIHN0cmluZ3MgYXJlIG5vdCBmcmVlZC4gSWYgQGxlbiBpcyAmbHQ7IDAgdGhlbiB0aGUgbGVuZ3RoIHdpbGwgYmUgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZpcnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnNlY29uZCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsZW4gb2YgQHN0cjIgb3IgJmx0OyAwPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3RybmNtcCIgaWQ9InhtbFN0cm5jbXAiPjwvYT5GdW5jdGlvbjogeG1sU3RybmNtcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxTdHJuY21wCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjEsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0cjIsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5hIHN0cm5jbXAgZm9yIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaXJzdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHNlY29uZCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbWF4IGNvbXBhcmlzb24gbGVuZ3RoPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb248L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJuZHVwIiBpZD0ieG1sU3RybmR1cCI+PC9hPkZ1bmN0aW9uOiB4bWxTdHJuZHVwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3RybmR1cAkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGN1ciwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPmEgc3RybmR1cCBmb3IgYXJyYXkgb2YgeG1sQ2hhcidzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5wdXQgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbiBvZiBAY3VyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sU3Ryc3RyIiBpZD0ieG1sU3Ryc3RyIj48L2E+RnVuY3Rpb246IHhtbFN0cnN0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFN0cnN0cgkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsKTxiciAvPgorPC9wcmU+PHA+YSBzdHJzdHIgZm9yIHhtbENoYXInczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGFycmF5IChoYXlzdGFjayk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiB0byBzZWFyY2ggKG5lZWRsZSk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb3IgTlVMTC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxTdHJzdWIiIGlkPSJ4bWxTdHJzdWIiPjwvYT5GdW5jdGlvbjogeG1sU3Ryc3ViPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sU3Ryc3ViCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSBpbnQgc3RhcnQsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5FeHRyYWN0IGEgc3Vic3RyaW5nIG9mIGEgZ2l2ZW4gc3RyaW5nPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogYXJyYXkgKGhheXN0YWNrKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RhcnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhciAoemVybyBiYXNlZCk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbmd0aCBvZiB0aGUgc3Vic3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogZm9yIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9yIE5VTEwuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVRGOENoYXJjbXAiIGlkPSJ4bWxVVEY4Q2hhcmNtcCI+PC9hPkZ1bmN0aW9uOiB4bWxVVEY4Q2hhcmNtcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVVEY4Q2hhcmNtcAkJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYxLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYyKTxiciAvPgorPC9wcmU+PHA+Y29tcGFyZXMgdGhlIHR3byBVQ1M0IHZhbHVlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gZmlyc3QgVVRGOCBjaGFyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51dGYyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHNlY29uZCBVVEY4IGNoYXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJlc3VsdCBvZiB0aGUgY29tcGFyZSBhcyB3aXRoIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxTdHJuY21wIj54bWxTdHJuY21wPC9hPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVURjhTaXplIiBpZD0ieG1sVVRGOFNpemUiPjwvYT5GdW5jdGlvbjogeG1sVVRGOFNpemU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVVRGOFNpemUJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmKTxiciAvPgorPC9wcmU+PHA+Y2FsY3VsYXRlcyB0aGUgaW50ZXJuYWwgc2l6ZSBvZiBhIFVURjggY2hhcmFjdGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBVVEY4IGNoYXJhY3RlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlcnMgb2YgYnl0ZXMgaW4gdGhlIGNoYXJhY3RlciwgLTEgb24gZm9ybWF0IGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVRGOFN0cmxlbiIgaWQ9InhtbFVURjhTdHJsZW4iPjwvYT5GdW5jdGlvbjogeG1sVVRGOFN0cmxlbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVVEY4U3RybGVuCQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHV0Zik8YnIgLz4KKzwvcHJlPjxwPmNvbXB1dGUgdGhlIGxlbmd0aCBvZiBhbiBVVEY4IHN0cmluZywgaXQgZG9lc24ndCBkbyBhIGZ1bGwgVVRGOCBjaGVja2luZyBvZiB0aGUgY29udGVudCBvZiB0aGUgc3RyaW5nLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXF1ZW5jZSBvZiBVVEYtOCBlbmNvZGVkIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiBpbiB0aGUgc3RyaW5nIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVVEY4U3RybG9jIiBpZD0ieG1sVVRGOFN0cmxvYyI+PC9hPkZ1bmN0aW9uOiB4bWxVVEY4U3RybG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVURjhTdHJsb2MJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGZjaGFyKTxiciAvPgorPC9wcmU+PHA+YSBmdW5jdGlvbiB0byBwcm92aWRlIHRoZSByZWxhdGl2ZSBsb2NhdGlvbiBvZiBhIFVURjggY2hhcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IFVURjggKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXRmY2hhcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVURjggY2hhcmFjdGVyIHRvIGJlIGZvdW5kPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcmVsYXRpdmUgY2hhcmFjdGVyIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGNoYXIgb3IgLTEgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVRGOFN0cm5kdXAiIGlkPSJ4bWxVVEY4U3RybmR1cCI+PC9hPkZ1bmN0aW9uOiB4bWxVVEY4U3RybmR1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFVURjhTdHJuZHVwCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+YSBzdHJuZHVwIGZvciBhcnJheSBvZiBVVEY4J3M8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51dGY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbnB1dCBVVEY4ICo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxlbiBvZiBAdXRmIChpbiBjaGFycyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbmV3IFVURjggKiBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVRGOFN0cnBvcyIgaWQ9InhtbFVURjhTdHJwb3MiPjwvYT5GdW5jdGlvbjogeG1sVVRGOFN0cnBvczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFVURjhTdHJwb3MJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYsIDxiciAvPgkJCQkJIGludCBwb3MpPGJyIC8+Cis8L3ByZT48cD5hIGZ1bmN0aW9uIHRvIHByb3ZpZGUgdGhlIGVxdWl2YWxlbnQgb2YgZmV0Y2hpbmcgYSBjaGFyYWN0ZXIgZnJvbSBhIHN0cmluZyBhcnJheTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGlucHV0IFVURjggKjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cG9zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcG9zaXRpb24gb2YgdGhlIGRlc2lyZWQgVVRGOCBjaGFyIChpbiBjaGFycyk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgcG9pbnRlciB0byB0aGUgVVRGOCBjaGFyYWN0ZXIgb3IgTlVMTDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVURjhTdHJzaXplIiBpZD0ieG1sVVRGOFN0cnNpemUiPjwvYT5GdW5jdGlvbjogeG1sVVRGOFN0cnNpemU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVVRGOFN0cnNpemUJCQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdXRmLCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+c3RvcmFnZSBzaXplIG9mIGFuIFVURjggc3RyaW5nIHRoZSBiZWhhdmlvdXIgaXMgbm90IGdhcmFudGVlZCBpZiB0aGUgaW5wdXQgc3RyaW5nIGlzIG5vdCBVVEYtODwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnV0ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzZXF1ZW5jZSBvZiBVVEYtOCBlbmNvZGVkIGJ5dGVzPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGluIHRoZSBhcnJheTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0b3JhZ2Ugc2l6ZSBvZiB0aGUgZmlyc3QgJ2xlbicgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IG9mIEFSUkFZPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVVRGOFN0cnN1YiIgaWQ9InhtbFVURjhTdHJzdWIiPjwvYT5GdW5jdGlvbjogeG1sVVRGOFN0cnN1YjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFVURjhTdHJzdWIJCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB1dGYsIDxiciAvPgkJCQkJIGludCBzdGFydCwgPGJyIC8+CQkJCQkgaW50IGxlbik8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIHN1YnN0cmluZyBmcm9tIGEgZ2l2ZW4gVVRGLTggc3RyaW5nIE5vdGU6IHBvc2l0aW9ucyBhcmUgZ2l2ZW4gaW4gdW5pdHMgb2YgVVRGLTggY2hhcnM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD51dGY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc2VxdWVuY2Ugb2YgVVRGLTggZW5jb2RlZCBieXRlczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RhcnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnJlbGF0aXZlIHBvcyBvZiBmaXJzdCBjaGFyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5sZW48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRvdGFsIG51bWJlciB0byBjb3B5PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHBvaW50ZXIgdG8gYSBuZXdseSBjcmVhdGVkIHN0cmluZyBvciBOVUxMIGlmIGFueSBwcm9ibGVtPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHVuaWNvZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzUxNGQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sdW5pY29kZS5odG1sCkBAIC0wLDAgKzEsNTEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgeG1sdW5pY29kZSBmcm9tIGxpYnhtbDI8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iLi4vZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Ii4uL2dub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9Ii4uL3czYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSIuLi9yZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9Ii4uL0xpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+PC9oMT48aDI+TW9kdWxlIHhtbHVuaWNvZGUgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2IiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sIj54bWxzdHJpbmc8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhtbHZlcnNpb24uaHRtbCI+eG1sdmVyc2lvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14bWx2ZXJzaW9uLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPkFQSSBmb3IgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIEFQSXMgIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBVQ1MgZGVzY3JpcHRpb24gZmlsZXMgb2YgdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNBZWdlYW5OdW1iZXJzIj54bWxVQ1NJc0FlZ2Vhbk51bWJlcnM8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyI+eG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQXJhYmljIj54bWxVQ1NJc0FyYWJpYzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQSI+eG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0E8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCIj54bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQjwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNBcm1lbmlhbiI+eG1sVUNTSXNBcm1lbmlhbjwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQXJyb3dzIj54bWxVQ1NJc0Fycm93czwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0Jhc2ljTGF0aW4iPnhtbFVDU0lzQmFzaWNMYXRpbjwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQmVuZ2FsaSI+eG1sVUNTSXNCZW5nYWxpPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQmxvY2siPnhtbFVDU0lzQmxvY2s8L2E+CQkJKGludCBjb2RlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYmxvY2spPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0Jsb2NrRWxlbWVudHMiPnhtbFVDU0lzQmxvY2tFbGVtZW50czwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQm9wb21vZm8iPnhtbFVDU0lzQm9wb21vZm88L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQiPnhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZDwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNCb3hEcmF3aW5nIj54bWxVQ1NJc0JveERyYXdpbmc8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJucyI+eG1sVUNTSXNCcmFpbGxlUGF0dGVybnM8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0J1aGlkIj54bWxVQ1NJc0J1aGlkPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMiPnhtbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5PC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcyI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMiPnhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50Ij54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudDwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQiPnhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50PC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbiI+eG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb248L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BIj54bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQTwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdCI+eG1sVUNTSXNDYXQ8L2E+CQkJKGludCBjb2RlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogY2F0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRDIj54bWxVQ1NJc0NhdEM8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRDYyI+eG1sVUNTSXNDYXRDYzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdENmIj54bWxVQ1NJc0NhdENmPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0Q28iPnhtbFVDU0lzQ2F0Q288L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRDcyI+eG1sVUNTSXNDYXRDczwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdEwiPnhtbFVDU0lzQ2F0TDwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdExsIj54bWxVQ1NJc0NhdExsPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0TG0iPnhtbFVDU0lzQ2F0TG08L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRMbyI+eG1sVUNTSXNDYXRMbzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdEx0Ij54bWxVQ1NJc0NhdEx0PC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0THUiPnhtbFVDU0lzQ2F0THU8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRNIj54bWxVQ1NJc0NhdE08L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRNYyI+eG1sVUNTSXNDYXRNYzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdE1lIj54bWxVQ1NJc0NhdE1lPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0TW4iPnhtbFVDU0lzQ2F0TW48L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXROIj54bWxVQ1NJc0NhdE48L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXROZCI+eG1sVUNTSXNDYXROZDwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdE5sIj54bWxVQ1NJc0NhdE5sPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0Tm8iPnhtbFVDU0lzQ2F0Tm88L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQIj54bWxVQ1NJc0NhdFA8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQYyI+eG1sVUNTSXNDYXRQYzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFBkIj54bWxVQ1NJc0NhdFBkPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0UGUiPnhtbFVDU0lzQ2F0UGU8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQZiI+eG1sVUNTSXNDYXRQZjwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFBpIj54bWxVQ1NJc0NhdFBpPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0UG8iPnhtbFVDU0lzQ2F0UG88L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRQcyI+eG1sVUNTSXNDYXRQczwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFMiPnhtbFVDU0lzQ2F0UzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFNjIj54bWxVQ1NJc0NhdFNjPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0U2siPnhtbFVDU0lzQ2F0U2s8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRTbSI+eG1sVUNTSXNDYXRTbTwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFNvIj54bWxVQ1NJc0NhdFNvPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0WiI+eG1sVUNTSXNDYXRaPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2F0WmwiPnhtbFVDU0lzQ2F0Wmw8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDYXRacCI+eG1sVUNTSXNDYXRacDwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NhdFpzIj54bWxVQ1NJc0NhdFpzPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ2hlcm9rZWUiPnhtbFVDU0lzQ2hlcm9rZWU8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MiPnhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyI+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MiPnhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scyI+eG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ29udHJvbFBpY3R1cmVzIj54bWxVQ1NJc0NvbnRyb2xQaWN0dXJlczwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ3VycmVuY3lTeW1ib2xzIj54bWxVQ1NJc0N1cnJlbmN5U3ltYm9sczwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeSI+eG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5PC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0N5cmlsbGljIj54bWxVQ1NJc0N5cmlsbGljPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQiPnhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50PC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0Rlc2VyZXQiPnhtbFVDU0lzRGVzZXJldDwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0RldmFuYWdhcmkiPnhtbFVDU0lzRGV2YW5hZ2FyaTwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzRGluZ2JhdHMiPnhtbFVDU0lzRGluZ2JhdHM8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcyI+eG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3M8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzIj54bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRoczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNFdGhpb3BpYyI+eG1sVUNTSXNFdGhpb3BpYzwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uIj54bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbjwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMiPnhtbFVDU0lzR2VvbWV0cmljU2hhcGVzPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNHZW9yZ2lhbiI+eG1sVUNTSXNHZW9yZ2lhbjwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzR290aGljIj54bWxVQ1NJc0dvdGhpYzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0dyZWVrIj54bWxVQ1NJc0dyZWVrPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzR3JlZWtFeHRlbmRlZCI+eG1sVUNTSXNHcmVla0V4dGVuZGVkPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNHcmVla2FuZENvcHRpYyI+eG1sVUNTSXNHcmVla2FuZENvcHRpYzwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzR3VqYXJhdGkiPnhtbFVDU0lzR3VqYXJhdGk8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0d1cm11a2hpIj54bWxVQ1NJc0d1cm11a2hpPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcyI+eG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyI+eG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbzwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNIYW5ndWxKYW1vIj54bWxVQ1NJc0hhbmd1bEphbW88L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcyI+eG1sVUNTSXNIYW5ndWxTeWxsYWJsZXM8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hhbnVub28iPnhtbFVDU0lzSGFudW5vbzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hlYnJldyI+eG1sVUNTSXNIZWJyZXc8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMiPnhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzIj54bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNIaXJhZ2FuYSI+eG1sVUNTSXNIaXJhZ2FuYTwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzSVBBRXh0ZW5zaW9ucyI+eG1sVUNTSXNJUEFFeHRlbnNpb25zPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyI+eG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVyczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNLYW5idW4iPnhtbFVDU0lzS2FuYnVuPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzS2FuZ3hpUmFkaWNhbHMiPnhtbFVDU0lzS2FuZ3hpUmFkaWNhbHM8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0thbm5hZGEiPnhtbFVDU0lzS2FubmFkYTwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0thdGFrYW5hIj54bWxVQ1NJc0thdGFrYW5hPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucyI+eG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9uczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNLaG1lciI+eG1sVUNTSXNLaG1lcjwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0tobWVyU3ltYm9scyI+eG1sVUNTSXNLaG1lclN5bWJvbHM8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0xhbyI+eG1sVUNTSXNMYW88L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50Ij54bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQ8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzTGF0aW5FeHRlbmRlZEEiPnhtbFVDU0lzTGF0aW5FeHRlbmRlZEE8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRCPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scyI+eG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9sczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNMaW1idSI+eG1sVUNTSXNMaW1idTwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiPnhtbFVDU0lzTGluZWFyQklkZW9ncmFtczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5Ij54bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnk8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzTG93U3Vycm9nYXRlcyI+eG1sVUNTSXNMb3dTdXJyb2dhdGVzPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNNYWxheWFsYW0iPnhtbFVDU0lzTWFsYXlhbGFtPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIj54bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzIj54bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9yczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EiPnhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQiI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0I8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMiPnhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3MiPnhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3M8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc01vbmdvbGlhbiI+eG1sVUNTSXNNb25nb2xpYW48L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc011c2ljYWxTeW1ib2xzIj54bWxVQ1NJc011c2ljYWxTeW1ib2xzPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNNeWFubWFyIj54bWxVQ1NJc015YW5tYXI8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNOdW1iZXJGb3JtcyI+eG1sVUNTSXNOdW1iZXJGb3JtczwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzT2doYW0iPnhtbFVDU0lzT2doYW08L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNPbGRJdGFsaWMiPnhtbFVDU0lzT2xkSXRhbGljPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24iPnhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc09yaXlhIj54bWxVQ1NJc09yaXlhPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzT3NtYW55YSI+eG1sVUNTSXNPc21hbnlhPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zIj54bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9uczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNQcml2YXRlVXNlIj54bWxVQ1NJc1ByaXZhdGVVc2U8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhIj54bWxVQ1NJc1ByaXZhdGVVc2VBcmVhPC9hPgkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNSdW5pYyI+eG1sVUNTSXNSdW5pYzwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1NoYXZpYW4iPnhtbFVDU0lzU2hhdmlhbjwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1NpbmhhbGEiPnhtbFVDU0lzU2luaGFsYTwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzIj54bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMiPnhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVyczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNTcGVjaWFscyI+eG1sVUNTSXNTcGVjaWFsczwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyI+eG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EiPnhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQTwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCIj54bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0I8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzIj54bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9yczwvYT4JKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBIj54bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUE8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQiI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1N5cmlhYyI+eG1sVUNTSXNTeXJpYWM8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNUYWdhbG9nIj54bWxVQ1NJc1RhZ2Fsb2c8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNUYWdiYW53YSI+eG1sVUNTSXNUYWdiYW53YTwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzVGFncyI+eG1sVUNTSXNUYWdzPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzVGFpTGUiPnhtbFVDU0lzVGFpTGU8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMiPnhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RhbWlsIj54bWxVQ1NJc1RhbWlsPC9hPgkJCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzVGVsdWd1Ij54bWxVQ1NJc1RlbHVndTwvYT4JCQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1RoYWFuYSI+eG1sVUNTSXNUaGFhbmE8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNUaGFpIj54bWxVQ1NJc1RoYWk8L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNUaWJldGFuIj54bWxVQ1NJc1RpYmV0YW48L2E+CQkJKGludCBjb2RlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVUNTSXNVZ2FyaXRpYyI+eG1sVUNTSXNVZ2FyaXRpYzwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyI+eG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzPC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycyI+eG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudCI+eG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50PC9hPgkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1lpUmFkaWNhbHMiPnhtbFVDU0lzWWlSYWRpY2FsczwvYT4JCShpbnQgY29kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFVDU0lzWWlTeWxsYWJsZXMiPnhtbFVDU0lzWWlTeWxsYWJsZXM8L2E+CQkoaW50IGNvZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scyI+eG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHM8L2E+CShpbnQgY29kZSk8L3ByZT4KKzxoMj5EZXNjcmlwdGlvbjwvaDI+Cis8aDM+PGEgbmFtZT0ieG1sVUNTSXNBZWdlYW5OdW1iZXJzIiBpZD0ieG1sVUNTSXNBZWdlYW5OdW1iZXJzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQWVnZWFuTnVtYmVyczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFlZ2Vhbk51bWJlcnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zIiBpZD0ieG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0FyYWJpYyIgaWQ9InhtbFVDU0lzQXJhYmljIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQXJhYmljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQXJhYmljCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQXJhYmljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQSIgaWQ9InhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFyYWJpY1ByZXNlbnRhdGlvbkZvcm1zLUEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCIiBpZD0ieG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQXJhYmljUHJlc2VudGF0aW9uRm9ybXMtQiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNBcm1lbmlhbiIgaWQ9InhtbFVDU0lzQXJtZW5pYW4iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNBcm1lbmlhbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0FybWVuaWFuCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcm1lbmlhbiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNBcnJvd3MiIGlkPSJ4bWxVQ1NJc0Fycm93cyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0Fycm93czwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0Fycm93cwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFycm93cyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNCYXNpY0xhdGluIiBpZD0ieG1sVUNTSXNCYXNpY0xhdGluIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQmFzaWNMYXRpbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0Jhc2ljTGF0aW4JCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJhc2ljTGF0aW4gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQmVuZ2FsaSIgaWQ9InhtbFVDU0lzQmVuZ2FsaSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0JlbmdhbGk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNCZW5nYWxpCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQmVuZ2FsaSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNCbG9jayIgaWQ9InhtbFVDU0lzQmxvY2siPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNCbG9jazwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0Jsb2NrCQkJKGludCBjb2RlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogYmxvY2spPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiB0aGUgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJsb2NrPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgYmxvY2sgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlLCAwIGlmIGZhbHNlIGFuZCAtMSBvbiB1bmtub3duIGJsb2NrPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNCbG9ja0VsZW1lbnRzIiBpZD0ieG1sVUNTSXNCbG9ja0VsZW1lbnRzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQmxvY2tFbGVtZW50czwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0Jsb2NrRWxlbWVudHMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJsb2NrRWxlbWVudHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQm9wb21vZm8iIGlkPSJ4bWxVQ1NJc0JvcG9tb2ZvIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQm9wb21vZm88L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNCb3BvbW9mbwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQm9wb21vZm8gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZCIgaWQ9InhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZCI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJvcG9tb2ZvRXh0ZW5kZWQgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQm94RHJhd2luZyIgaWQ9InhtbFVDU0lzQm94RHJhd2luZyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0JveERyYXdpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNCb3hEcmF3aW5nCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCb3hEcmF3aW5nIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJucyIgaWQ9InhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCcmFpbGxlUGF0dGVybnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQnVoaWQiIGlkPSJ4bWxVQ1NJc0J1aGlkIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQnVoaWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNCdWhpZAkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJ1aGlkIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzIiBpZD0ieG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSIgaWQ9InhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5CShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHkgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zIiBpZD0ieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLQ29tcGF0aWJpbGl0eUZvcm1zIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIiBpZD0ieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50IiBpZD0ieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudCIgaWQ9InhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50CShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1JhZGljYWxzU3VwcGxlbWVudCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24iIGlkPSJ4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbgkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMiIGlkPSJ4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktVbmlmaWVkSWRlb2dyYXBocyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEiIGlkPSJ4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CIiBpZD0ieG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdCIgaWQ9InhtbFVDU0lzQ2F0Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0CQkJKGludCBjb2RlLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogY2F0KTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgdGhlIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBDYXRlZ29yeSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUsIDAgaWYgZmFsc2UgYW5kIC0xIG9uIHVua25vd24gY2F0ZWdvcnk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdEMiIGlkPSJ4bWxVQ1NJc0NhdEMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRDPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0QwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEMgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0Q2MiIGlkPSJ4bWxVQ1NJc0NhdENjIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0Q2M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRDYwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENjIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdENmIiBpZD0ieG1sVUNTSXNDYXRDZiI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdENmPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0Q2YJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDZiBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRDbyIgaWQ9InhtbFVDU0lzQ2F0Q28iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRDbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdENvCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ28gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0Q3MiIGlkPSJ4bWxVQ1NJc0NhdENzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0Q3M8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRDcwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENzIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdEwiIGlkPSJ4bWxVQ1NJc0NhdEwiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRMPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TAkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEwgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0TGwiIGlkPSJ4bWxVQ1NJc0NhdExsIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0TGw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRMbAkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExsIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdExtIiBpZD0ieG1sVUNTSXNDYXRMbSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdExtPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TG0JCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMbSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRMbyIgaWQ9InhtbFVDU0lzQ2F0TG8iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRMbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdExvCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTG8gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0THQiIGlkPSJ4bWxVQ1NJc0NhdEx0Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0THQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRMdAkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEx0IFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdEx1IiBpZD0ieG1sVUNTSXNDYXRMdSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdEx1PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0THUJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMdSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRNIiBpZD0ieG1sVUNTSXNDYXRNIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0TTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdE0JCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdE1jIiBpZD0ieG1sVUNTSXNDYXRNYyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdE1jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TWMJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNYyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRNZSIgaWQ9InhtbFVDU0lzQ2F0TWUiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRNZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdE1lCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWUgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0TW4iIGlkPSJ4bWxVQ1NJc0NhdE1uIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0TW48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRNbgkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1uIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdE4iIGlkPSJ4bWxVQ1NJc0NhdE4iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXROPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TgkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE4gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0TmQiIGlkPSJ4bWxVQ1NJc0NhdE5kIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0TmQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXROZAkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE5kIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdE5sIiBpZD0ieG1sVUNTSXNDYXRObCI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdE5sPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0TmwJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBObCBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRObyIgaWQ9InhtbFVDU0lzQ2F0Tm8iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRObzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdE5vCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTm8gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0UCIgaWQ9InhtbFVDU0lzQ2F0UCI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdFA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUCBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQYyIgaWQ9InhtbFVDU0lzQ2F0UGMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRQYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFBjCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGMgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0UGQiIGlkPSJ4bWxVQ1NJc0NhdFBkIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0UGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQZAkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFBkIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFBlIiBpZD0ieG1sVUNTSXNDYXRQZSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdFBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0UGUJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQZSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQZiIgaWQ9InhtbFVDU0lzQ2F0UGYiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRQZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFBmCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGYgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0UGkiIGlkPSJ4bWxVQ1NJc0NhdFBpIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0UGk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRQaQkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFBpIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFBvIiBpZD0ieG1sVUNTSXNDYXRQbyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdFBvPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0UG8JCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQbyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRQcyIgaWQ9InhtbFVDU0lzQ2F0UHMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRQczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFBzCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUHMgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0UyIgaWQ9InhtbFVDU0lzQ2F0UyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdFM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRTCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRTYyIgaWQ9InhtbFVDU0lzQ2F0U2MiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRTYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFNjCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU2MgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0U2siIGlkPSJ4bWxVQ1NJc0NhdFNrIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0U2s8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRTawkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFNrIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFNtIiBpZD0ieG1sVUNTSXNDYXRTbSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdFNtPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0U20JCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTbSBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRTbyIgaWQ9InhtbFVDU0lzQ2F0U28iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRTbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFNvCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU28gVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0WiIgaWQ9InhtbFVDU0lzQ2F0WiI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdFo8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRaCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWiBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDYXRabCIgaWQ9InhtbFVDU0lzQ2F0WmwiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDYXRabDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NhdFpsCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWmwgVUNTIENhdGVnb3J5PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ2F0WnAiIGlkPSJ4bWxVQ1NJc0NhdFpwIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ2F0WnA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDYXRacAkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFpwIFVDUyBDYXRlZ29yeTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NhdFpzIiBpZD0ieG1sVUNTSXNDYXRacyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NhdFpzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ2F0WnMJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBacyBVQ1MgQ2F0ZWdvcnk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDaGVyb2tlZSIgaWQ9InhtbFVDU0lzQ2hlcm9rZWUiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDaGVyb2tlZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NoZXJva2VlCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDaGVyb2tlZSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIiBpZD0ieG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyIgaWQ9InhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrcyIgaWQ9InhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbWJpbmluZ0hhbGZNYXJrcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMiIGlkPSJ4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9sczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzQ29udHJvbFBpY3R1cmVzIiBpZD0ieG1sVUNTSXNDb250cm9sUGljdHVyZXMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDb250cm9sUGljdHVyZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNDb250cm9sUGljdHVyZXMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbnRyb2xQaWN0dXJlcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMiIGlkPSJ4bWxVQ1NJc0N1cnJlbmN5U3ltYm9scyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0N1cnJlbmN5U3ltYm9sczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0N1cnJlbmN5U3ltYm9scwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3VycmVuY3lTeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkiIGlkPSJ4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDeXByaW90U3lsbGFiYXJ5IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0N5cmlsbGljIiBpZD0ieG1sVUNTSXNDeXJpbGxpYyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0N5cmlsbGljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ3lyaWxsaWMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEN5cmlsbGljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudCIgaWQ9InhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50CShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEN5cmlsbGljU3VwcGxlbWVudCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNEZXNlcmV0IiBpZD0ieG1sVUNTSXNEZXNlcmV0Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzRGVzZXJldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0Rlc2VyZXQJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBEZXNlcmV0IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0RldmFuYWdhcmkiIGlkPSJ4bWxVQ1NJc0RldmFuYWdhcmkiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNEZXZhbmFnYXJpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzRGV2YW5hZ2FyaQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRGV2YW5hZ2FyaSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNEaW5nYmF0cyIgaWQ9InhtbFVDU0lzRGluZ2JhdHMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNEaW5nYmF0czwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0RpbmdiYXRzCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBEaW5nYmF0cyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MiIGlkPSJ4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBFbmNsb3NlZEFscGhhbnVtZXJpY3MgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzIiBpZD0ieG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0V0aGlvcGljIiBpZD0ieG1sVUNTSXNFdGhpb3BpYyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0V0aGlvcGljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzRXRoaW9waWMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEV0aGlvcGljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbiIgaWQ9InhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdlbmVyYWxQdW5jdHVhdGlvbiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMiIGlkPSJ4bWxVQ1NJc0dlb21ldHJpY1NoYXBlcyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0dlb21ldHJpY1NoYXBlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0dlb21ldHJpY1NoYXBlcwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR2VvbWV0cmljU2hhcGVzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0dlb3JnaWFuIiBpZD0ieG1sVUNTSXNHZW9yZ2lhbiI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0dlb3JnaWFuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR2VvcmdpYW4JCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdlb3JnaWFuIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0dvdGhpYyIgaWQ9InhtbFVDU0lzR290aGljIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzR290aGljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR290aGljCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR290aGljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0dyZWVrIiBpZD0ieG1sVUNTSXNHcmVlayI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0dyZWVrPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzR3JlZWsJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHcmVlayBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNHcmVla0V4dGVuZGVkIiBpZD0ieG1sVUNTSXNHcmVla0V4dGVuZGVkIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzR3JlZWtFeHRlbmRlZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdyZWVrRXh0ZW5kZWQgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzR3JlZWthbmRDb3B0aWMiIGlkPSJ4bWxVQ1NJc0dyZWVrYW5kQ29wdGljIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzR3JlZWthbmRDb3B0aWM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNHcmVla2FuZENvcHRpYwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR3JlZWthbmRDb3B0aWMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzR3VqYXJhdGkiIGlkPSJ4bWxVQ1NJc0d1amFyYXRpIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzR3VqYXJhdGk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNHdWphcmF0aQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR3VqYXJhdGkgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzR3VybXVraGkiIGlkPSJ4bWxVQ1NJc0d1cm11a2hpIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzR3VybXVraGk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNHdXJtdWtoaQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR3VybXVraGkgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMiIGlkPSJ4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyIgaWQ9InhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbmd1bENvbXBhdGliaWxpdHlKYW1vIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hhbmd1bEphbW8iIGlkPSJ4bWxVQ1NJc0hhbmd1bEphbW8iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNIYW5ndWxKYW1vPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSGFuZ3VsSmFtbwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGFuZ3VsSmFtbyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMiIGlkPSJ4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGFuZ3VsU3lsbGFibGVzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hhbnVub28iIGlkPSJ4bWxVQ1NJc0hhbnVub28iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNIYW51bm9vPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSGFudW5vbwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbnVub28gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzSGVicmV3IiBpZD0ieG1sVUNTSXNIZWJyZXciPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNIZWJyZXc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNIZWJyZXcJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIZWJyZXcgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIiBpZD0ieG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzIiBpZD0ieG1sVUNTSXNIaWdoU3Vycm9nYXRlcyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSGlnaFN1cnJvZ2F0ZXMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhpZ2hTdXJyb2dhdGVzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0hpcmFnYW5hIiBpZD0ieG1sVUNTSXNIaXJhZ2FuYSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0hpcmFnYW5hPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSGlyYWdhbmEJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhpcmFnYW5hIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0lQQUV4dGVuc2lvbnMiIGlkPSJ4bWxVQ1NJc0lQQUV4dGVuc2lvbnMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNJUEFFeHRlbnNpb25zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzSVBBRXh0ZW5zaW9ucwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSVBBRXh0ZW5zaW9ucyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyIgaWQ9InhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVyczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIElkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0thbmJ1biIgaWQ9InhtbFVDU0lzS2FuYnVuIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzS2FuYnVuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzS2FuYnVuCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2FuYnVuIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0thbmd4aVJhZGljYWxzIiBpZD0ieG1sVUNTSXNLYW5neGlSYWRpY2FscyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0thbmd4aVJhZGljYWxzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzS2FuZ3hpUmFkaWNhbHMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthbmd4aVJhZGljYWxzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0thbm5hZGEiIGlkPSJ4bWxVQ1NJc0thbm5hZGEiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNLYW5uYWRhPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzS2FubmFkYQkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthbm5hZGEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzS2F0YWthbmEiIGlkPSJ4bWxVQ1NJc0thdGFrYW5hIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzS2F0YWthbmE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNLYXRha2FuYQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2F0YWthbmEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMiIGlkPSJ4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNLaG1lciIgaWQ9InhtbFVDU0lzS2htZXIiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNLaG1lcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0tobWVyCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2htZXIgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzS2htZXJTeW1ib2xzIiBpZD0ieG1sVUNTSXNLaG1lclN5bWJvbHMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNLaG1lclN5bWJvbHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNLaG1lclN5bWJvbHMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEtobWVyU3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNMYW8iIGlkPSJ4bWxVQ1NJc0xhbyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0xhbzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xhbwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExhbyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50IiBpZD0ieG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGF0aW4tMVN1cHBsZW1lbnQgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzTGF0aW5FeHRlbmRlZEEiIGlkPSJ4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzTGF0aW5FeHRlbmRlZEE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNMYXRpbkV4dGVuZGVkQQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGF0aW5FeHRlbmRlZC1BIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsIiBpZD0ieG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzTGF0aW5FeHRlbmRlZEIiIGlkPSJ4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzTGF0aW5FeHRlbmRlZEI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNMYXRpbkV4dGVuZGVkQgkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGF0aW5FeHRlbmRlZC1CIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzIiBpZD0ieG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGV0dGVybGlrZVN5bWJvbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzTGltYnUiIGlkPSJ4bWxVQ1NJc0xpbWJ1Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzTGltYnU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNMaW1idQkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExpbWJ1IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiIGlkPSJ4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTGluZWFyQklkZW9ncmFtcwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMaW5lYXJCSWRlb2dyYW1zIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkiIGlkPSJ4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTGluZWFyQlN5bGxhYmFyeQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMaW5lYXJCU3lsbGFiYXJ5IFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMiIGlkPSJ4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNMb3dTdXJyb2dhdGVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTG93U3Vycm9nYXRlcwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTG93U3Vycm9nYXRlcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNNYWxheWFsYW0iIGlkPSJ4bWxVQ1NJc01hbGF5YWxhbSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc01hbGF5YWxhbTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc01hbGF5YWxhbQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWFsYXlhbGFtIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMiIGlkPSJ4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9ycyIgaWQ9InhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1hdGhlbWF0aWNhbE9wZXJhdG9ycyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EiIGlkPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9scy1BIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQiIgaWQ9InhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzLUIgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMiIGlkPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzU3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cyIgaWQ9InhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3MiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93czwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwiIGlkPSJ4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbAkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzVGVjaG5pY2FsIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc01vbmdvbGlhbiIgaWQ9InhtbFVDU0lzTW9uZ29saWFuIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzTW9uZ29saWFuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzTW9uZ29saWFuCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNb25nb2xpYW4gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzTXVzaWNhbFN5bWJvbHMiIGlkPSJ4bWxVQ1NJc011c2ljYWxTeW1ib2xzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzTXVzaWNhbFN5bWJvbHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNdXNpY2FsU3ltYm9scwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTXVzaWNhbFN5bWJvbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzTXlhbm1hciIgaWQ9InhtbFVDU0lzTXlhbm1hciI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc015YW5tYXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNNeWFubWFyCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTXlhbm1hciBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNOdW1iZXJGb3JtcyIgaWQ9InhtbFVDU0lzTnVtYmVyRm9ybXMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNOdW1iZXJGb3JtczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc051bWJlckZvcm1zCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBOdW1iZXJGb3JtcyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNPZ2hhbSIgaWQ9InhtbFVDU0lzT2doYW0iPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNPZ2hhbTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc09naGFtCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgT2doYW0gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzT2xkSXRhbGljIiBpZD0ieG1sVUNTSXNPbGRJdGFsaWMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNPbGRJdGFsaWM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNPbGRJdGFsaWMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE9sZEl0YWxpYyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24iIGlkPSJ4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbgkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24gVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzT3JpeWEiIGlkPSJ4bWxVQ1NJc09yaXlhIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzT3JpeWE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNPcml5YQkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE9yaXlhIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc09zbWFueWEiIGlkPSJ4bWxVQ1NJc09zbWFueWEiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNPc21hbnlhPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzT3NtYW55YQkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE9zbWFueWEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zIiBpZD0ieG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGhvbmV0aWNFeHRlbnNpb25zIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1ByaXZhdGVVc2UiIGlkPSJ4bWxVQ1NJc1ByaXZhdGVVc2UiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNQcml2YXRlVXNlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzUHJpdmF0ZVVzZQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUHJpdmF0ZVVzZSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNQcml2YXRlVXNlQXJlYSIgaWQ9InhtbFVDU0lzUHJpdmF0ZVVzZUFyZWEiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNQcml2YXRlVXNlQXJlYTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQcml2YXRlVXNlQXJlYSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNSdW5pYyIgaWQ9InhtbFVDU0lzUnVuaWMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNSdW5pYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1J1bmljCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUnVuaWMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzU2hhdmlhbiIgaWQ9InhtbFVDU0lzU2hhdmlhbiI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1NoYXZpYW48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTaGF2aWFuCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU2hhdmlhbiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNTaW5oYWxhIiBpZD0ieG1sVUNTSXNTaW5oYWxhIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzU2luaGFsYTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1NpbmhhbGEJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTaW5oYWxhIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzIiBpZD0ieG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzU21hbGxGb3JtVmFyaWFudHMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU21hbGxGb3JtVmFyaWFudHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyIgaWQ9InhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFNwYWNpbmdNb2RpZmllckxldHRlcnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3BlY2lhbHMiIGlkPSJ4bWxVQ1NJc1NwZWNpYWxzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzU3BlY2lhbHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTcGVjaWFscwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3BlY2lhbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyIgaWQ9InhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSIgaWQ9InhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0E8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhbEFycm93cy1BIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IiIGlkPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQgkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YWxBcnJvd3MtQiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMiIGlkPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9yczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSIgaWQ9InhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1BIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUIiIGlkPSJ4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUIiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQgkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWEtQiBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNTeXJpYWMiIGlkPSJ4bWxVQ1NJc1N5cmlhYyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1N5cmlhYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1N5cmlhYwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN5cmlhYyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNUYWdhbG9nIiBpZD0ieG1sVUNTSXNUYWdhbG9nIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzVGFnYWxvZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1RhZ2Fsb2cJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUYWdhbG9nIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RhZ2JhbndhIiBpZD0ieG1sVUNTSXNUYWdiYW53YSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1RhZ2JhbndhPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGFnYmFud2EJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhZ2JhbndhIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RhZ3MiIGlkPSJ4bWxVQ1NJc1RhZ3MiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNUYWdzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGFncwkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhZ3MgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzVGFpTGUiIGlkPSJ4bWxVQ1NJc1RhaUxlIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzVGFpTGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNUYWlMZQkJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhaUxlIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9scyIgaWQ9InhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhaVh1YW5KaW5nU3ltYm9scyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNUYW1pbCIgaWQ9InhtbFVDU0lzVGFtaWwiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNUYW1pbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1RhbWlsCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFtaWwgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzVGVsdWd1IiBpZD0ieG1sVUNTSXNUZWx1Z3UiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNUZWx1Z3U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNUZWx1Z3UJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUZWx1Z3UgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzVGhhYW5hIiBpZD0ieG1sVUNTSXNUaGFhbmEiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNUaGFhbmE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNUaGFhbmEJCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUaGFhbmEgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzVGhhaSIgaWQ9InhtbFVDU0lzVGhhaSI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1RoYWk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNUaGFpCQkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGhhaSBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNUaWJldGFuIiBpZD0ieG1sVUNTSXNUaWJldGFuIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzVGliZXRhbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1RpYmV0YW4JCQkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUaWJldGFuIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1VnYXJpdGljIiBpZD0ieG1sVUNTSXNVZ2FyaXRpYyI+PC9hPkZ1bmN0aW9uOiB4bWxVQ1NJc1VnYXJpdGljPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVWdhcml0aWMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFVnYXJpdGljIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MiIGlkPSJ4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcwkoaW50IGNvZGUpPGJyIC8+Cis8L3ByZT48cD5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycyIgaWQ9InhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFZhcmlhdGlvblNlbGVjdG9ycyBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50IiBpZD0ieG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudCBVQ1MgQmxvY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5VQ1MgY29kZSBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVUNTSXNZaVJhZGljYWxzIiBpZD0ieG1sVUNTSXNZaVJhZGljYWxzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzWWlSYWRpY2FsczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxVQ1NJc1lpUmFkaWNhbHMJCShpbnQgY29kZSk8YnIgLz4KKzwvcHJlPjxwPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFlpUmFkaWNhbHMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzWWlTeWxsYWJsZXMiIGlkPSJ4bWxVQ1NJc1lpU3lsbGFibGVzIj48L2E+RnVuY3Rpb246IHhtbFVDU0lzWWlTeWxsYWJsZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNZaVN5bGxhYmxlcwkJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWWlTeWxsYWJsZXMgVUNTIEJsb2NrPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VUNTIGNvZGUgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdHJ1ZSAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzIiBpZD0ieG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMiPjwvYT5GdW5jdGlvbjogeG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMJKGludCBjb2RlKTxiciAvPgorPC9wcmU+PHA+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWWlqaW5nSGV4YWdyYW1TeW1ib2xzIFVDUyBCbG9jazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvZGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlVDUyBjb2RlIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIGlmIHRydWUgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sdmVyc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1YTZlZjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14bWx2ZXJzaW9uLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHhtbHZlcnNpb24gZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4bWx2ZXJzaW9uIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwteG1sdW5pY29kZS5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteG1sdW5pY29kZS5odG1sIj54bWx1bmljb2RlPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCI+eG1sd3JpdGVyPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD5jb21waWxlLXRpbWUgdmVyc2lvbiBpbmZvcm1hdGlvbnMgZm9yIHRoZSBYTUwgbGlicmFyeSA8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjQVRUUklCVVRFX1VOVVNFRCI+QVRUUklCVVRFX1VOVVNFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjREVCVUdfTUVNT1JZX0xPQ0FUSU9OIj5ERUJVR19NRU1PUllfTE9DQVRJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9BVFRSX0FMTE9DX1NJWkUiPkxJQlhNTF9BVFRSX0FMTE9DX1NJWkU8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9BVFRSX0ZPUk1BVCI+TElCWE1MX0FUVFJfRk9STUFUPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCI+TElCWE1MX0FVVE9NQVRBX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9DMTROX0VOQUJMRUQiPkxJQlhNTF9DMTROX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9DQVRBTE9HX0VOQUJMRUQiPkxJQlhNTF9DQVRBTE9HX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9ERUJVR19FTkFCTEVEIj5MSUJYTUxfREVCVUdfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0RFQlVHX1JVTlRJTUUiPkxJQlhNTF9ERUJVR19SVU5USU1FPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfRE9DQl9FTkFCTEVEIj5MSUJYTUxfRE9DQl9FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfRE9UVEVEX1ZFUlNJT04iPkxJQlhNTF9ET1RURURfVkVSU0lPTjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0VYUFJfRU5BQkxFRCI+TElCWE1MX0VYUFJfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0ZUUF9FTkFCTEVEIj5MSUJYTUxfRlRQX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9IVE1MX0VOQUJMRUQiPkxJQlhNTF9IVE1MX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9IVFRQX0VOQUJMRUQiPkxJQlhNTF9IVFRQX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9JQ09OVl9FTkFCTEVEIj5MSUJYTUxfSUNPTlZfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQiPkxJQlhNTF9JU084ODU5WF9FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfTEVHQUNZX0VOQUJMRUQiPkxJQlhNTF9MRUdBQ1lfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX01PRFVMRVNfRU5BQkxFRCI+TElCWE1MX01PRFVMRVNfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX01PRFVMRV9FWFRFTlNJT04iPkxJQlhNTF9NT0RVTEVfRVhURU5TSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfT1VUUFVUX0VOQUJMRUQiPkxJQlhNTF9PVVRQVVRfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1BBVFRFUk5fRU5BQkxFRCI+TElCWE1MX1BBVFRFUk5fRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1BVU0hfRU5BQkxFRCI+TElCWE1MX1BVU0hfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1JFQURFUl9FTkFCTEVEIj5MSUJYTUxfUkVBREVSX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9SRUdFWFBfRU5BQkxFRCI+TElCWE1MX1JFR0VYUF9FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfU0FYMV9FTkFCTEVEIj5MSUJYTUxfU0FYMV9FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfU0NIRU1BU19FTkFCTEVEIj5MSUJYTUxfU0NIRU1BU19FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEIj5MSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfVEVTVF9WRVJTSU9OIj5MSUJYTUxfVEVTVF9WRVJTSU9OPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfVEhSRUFEX0VOQUJMRUQiPkxJQlhNTF9USFJFQURfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1RSRUVfRU5BQkxFRCI+TElCWE1MX1RSRUVfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1VOSUNPREVfRU5BQkxFRCI+TElCWE1MX1VOSUNPREVfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1ZBTElEX0VOQUJMRUQiPkxJQlhNTF9WQUxJRF9FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfVkVSU0lPTiI+TElCWE1MX1ZFUlNJT048L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9WRVJTSU9OX0VYVFJBIj5MSUJYTUxfVkVSU0lPTl9FWFRSQTwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1ZFUlNJT05fU1RSSU5HIj5MSUJYTUxfVkVSU0lPTl9TVFJJTkc8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9XUklURVJfRU5BQkxFRCI+TElCWE1MX1dSSVRFUl9FTkFCTEVEPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCI+TElCWE1MX1hJTkNMVURFX0VOQUJMRUQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0xJQlhNTF9YUEFUSF9FTkFCTEVEIj5MSUJYTUxfWFBBVEhfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1hQVFJfRU5BQkxFRCI+TElCWE1MX1hQVFJfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjTElCWE1MX1pMSUJfRU5BQkxFRCI+TElCWE1MX1pMSUJfRU5BQkxFRDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjV0lUSE9VVF9UUklPIj5XSVRIT1VUX1RSSU88L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1dJVEhfVFJJTyI+V0lUSF9UUklPPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxDaGVja1ZlcnNpb24iPnhtbENoZWNrVmVyc2lvbjwvYT4JCQkoaW50IHZlcnNpb24pPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IkFUVFJJQlVURV9VTlVTRUQiIGlkPSJBVFRSSUJVVEVfVU5VU0VEIj48L2E+TWFjcm86IEFUVFJJQlVURV9VTlVTRUQ8L2gzPjxwcmU+I2RlZmluZSBBVFRSSUJVVEVfVU5VU0VEPC9wcmU+PHA+TWFjcm8gdXNlZCB0byBzaWduYWwgdG8gR0NDIHVudXNlZCBmdW5jdGlvbiBwYXJhbWV0ZXJzPC9wPgorPGgzPjxhIG5hbWU9IkRFQlVHX01FTU9SWV9MT0NBVElPTiIgaWQ9IkRFQlVHX01FTU9SWV9MT0NBVElPTiI+PC9hPk1hY3JvOiBERUJVR19NRU1PUllfTE9DQVRJT048L2gzPjxwcmU+I2RlZmluZSBERUJVR19NRU1PUllfTE9DQVRJT048L3ByZT48cD5XaGV0aGVyIHRoZSBtZW1vcnkgZGVidWdnaW5nIGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX0FUVFJfQUxMT0NfU0laRSIgaWQ9IkxJQlhNTF9BVFRSX0FMTE9DX1NJWkUiPjwvYT5NYWNybzogTElCWE1MX0FUVFJfQUxMT0NfU0laRTwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9BVFRSX0FMTE9DX1NJWkU8L3ByZT48cD5NYWNybyB1c2VkIHRvIGluZGljYXRlIHRvIEdDQyB0aGlzIGlzIGFuIGFsbG9jYXRvciBmdW5jdGlvbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfQVRUUl9GT1JNQVQiIGlkPSJMSUJYTUxfQVRUUl9GT1JNQVQiPjwvYT5NYWNybzogTElCWE1MX0FUVFJfRk9STUFUPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX0FUVFJfRk9STUFUPC9wcmU+PHA+TWFjcm8gdXNlZCB0byBpbmRpY2F0ZSB0byBHQ0MgdGhlIHBhcmFtZXRlciBhcmUgcHJpbnRmIGxpa2U8L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQiIGlkPSJMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgYXV0b21hdGEgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX0MxNE5fRU5BQkxFRCIgaWQ9IkxJQlhNTF9DMTROX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX0MxNE5fRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9DMTROX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSBDYW5vbmljYWxpemF0aW9uIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfQ0FUQUxPR19FTkFCTEVEIiBpZD0iTElCWE1MX0NBVEFMT0dfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVEPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX0NBVEFMT0dfRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgdGhlIENhdGFsb2cgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9ERUJVR19FTkFCTEVEIiBpZD0iTElCWE1MX0RFQlVHX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX0RFQlVHX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfREVCVUdfRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgRGVidWdnaW5nIG1vZHVsZSBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9ERUJVR19SVU5USU1FIiBpZD0iTElCWE1MX0RFQlVHX1JVTlRJTUUiPjwvYT5NYWNybzogTElCWE1MX0RFQlVHX1JVTlRJTUU8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfREVCVUdfUlVOVElNRTwvcHJlPjxwPldoZXRoZXIgdGhlIHJ1bnRpbWUgZGVidWdnaW5nIGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX0RPQ0JfRU5BQkxFRCIgaWQ9IkxJQlhNTF9ET0NCX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX0RPQ0JfRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9ET0NCX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSBTR01MIERvY2Jvb2sgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9ET1RURURfVkVSU0lPTiIgaWQ9IkxJQlhNTF9ET1RURURfVkVSU0lPTiI+PC9hPk1hY3JvOiBMSUJYTUxfRE9UVEVEX1ZFUlNJT048L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfRE9UVEVEX1ZFUlNJT048L3ByZT48cD50aGUgdmVyc2lvbiBzdHJpbmcgbGlrZSAiMS4yLjMiPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9FWFBSX0VOQUJMRUQiIGlkPSJMSUJYTUxfRVhQUl9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9FWFBSX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfRVhQUl9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgZm9ybWFsIGV4cHJlc3Npb25zIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9GVFBfRU5BQkxFRCIgaWQ9IkxJQlhNTF9GVFBfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfRlRQX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfRlRQX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSBGVFAgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9IVE1MX0VOQUJMRUQiIGlkPSJMSUJYTUxfSFRNTF9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9IVE1MX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfSFRNTF9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgSFRNTCBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX0hUVFBfRU5BQkxFRCIgaWQ9IkxJQlhNTF9IVFRQX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX0hUVFBfRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9IVFRQX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSBIVFRQIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfSUNPTlZfRU5BQkxFRCIgaWQ9IkxJQlhNTF9JQ09OVl9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9JQ09OVl9FTkFCTEVEPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX0lDT05WX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIGljb252IHN1cHBvcnQgaXMgYXZhaWxhYmxlPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9JU084ODU5WF9FTkFCTEVEIiBpZD0iTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfSVNPODg1OVhfRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgSVNPLTg4NTktKiBzdXBwb3J0IGlzIG1hZGUgYXZhaWxhYmxlIGluIGNhc2UgaWNvbnYgaXMgbm90PC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9MRUdBQ1lfRU5BQkxFRCIgaWQ9IkxJQlhNTF9MRUdBQ1lfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfTEVHQUNZX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSBkZXByZWNhdGVkIEFQSXMgYXJlIGNvbXBpbGVkIGluIGZvciBjb21wYXRpYmlsaXR5PC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9NT0RVTEVTX0VOQUJMRUQiIGlkPSJMSUJYTUxfTU9EVUxFU19FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9NT0RVTEVTX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfTU9EVUxFU19FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgbW9kdWxlIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9NT0RVTEVfRVhURU5TSU9OIiBpZD0iTElCWE1MX01PRFVMRV9FWFRFTlNJT04iPjwvYT5NYWNybzogTElCWE1MX01PRFVMRV9FWFRFTlNJT048L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfTU9EVUxFX0VYVEVOU0lPTjwvcHJlPjxwPnRoZSBzdHJpbmcgc3VmZml4IHVzZWQgYnkgZHluYW1pYyBtb2R1bGVzICh1c3VhbGx5IHNoYXJlZCBsaWJyYXJpZXMpPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9PVVRQVVRfRU5BQkxFRCIgaWQ9IkxJQlhNTF9PVVRQVVRfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfT1VUUFVUX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSBzZXJpYWxpemF0aW9uL3NhdmluZyBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX1BBVFRFUk5fRU5BQkxFRCIgaWQ9IkxJQlhNTF9QQVRURVJOX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX1BBVFRFUk5fRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9QQVRURVJOX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSA8YSBocmVmPSJsaWJ4bWwtcGF0dGVybi5odG1sI3htbFBhdHRlcm4iPnhtbFBhdHRlcm48L2E+IG5vZGUgc2VsZWN0aW9uIGludGVyZmFjZSBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9QVVNIX0VOQUJMRUQiIGlkPSJMSUJYTUxfUFVTSF9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9QVVNIX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfUFVTSF9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgcHVzaCBwYXJzaW5nIGludGVyZmFjZXMgYXJlIGNvbmZpZ3VyZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX1JFQURFUl9FTkFCTEVEIiBpZD0iTElCWE1MX1JFQURFUl9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9SRUFERVJfRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9SRUFERVJfRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgdGhlIHhtbFJlYWRlciBwYXJzaW5nIGludGVyZmFjZSBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9SRUdFWFBfRU5BQkxFRCIgaWQ9IkxJQlhNTF9SRUdFWFBfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfUkVHRVhQX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9TQVgxX0VOQUJMRUQiIGlkPSJMSUJYTUxfU0FYMV9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9TQVgxX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfU0FYMV9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgb2xkZXIgU0FYMSBpbnRlcmZhY2UgaXMgY29uZmlndXJlZCBpbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfU0NIRU1BU19FTkFCTEVEIiBpZD0iTElCWE1MX1NDSEVNQVNfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX1NDSEVNQVNfRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgdGhlIFNjaGVtYXMgdmFsaWRhdGlvbiBpbnRlcmZhY2VzIGFyZSBjb21waWxlZCBpbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEIiBpZD0iTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgdGhlIFNjaGVtYXRyb24gdmFsaWRhdGlvbiBpbnRlcmZhY2VzIGFyZSBjb21waWxlZCBpbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfVEVTVF9WRVJTSU9OIiBpZD0iTElCWE1MX1RFU1RfVkVSU0lPTiI+PC9hPk1hY3JvOiBMSUJYTUxfVEVTVF9WRVJTSU9OPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX1RFU1RfVkVSU0lPTjwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoYXQgdGhlIGxpYnhtbCB2ZXJzaW9uIGluIHVzZSBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHZlcnNpb24gdGhlIHNvZnR3YXJlIGhhcyBiZWVuIGNvbXBpbGVkIGFnYWluc3Q8L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX1RIUkVBRF9FTkFCTEVEIiBpZD0iTElCWE1MX1RIUkVBRF9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9USFJFQURfRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9USFJFQURfRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgdGhlIHRocmVhZCBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX1RSRUVfRU5BQkxFRCIgaWQ9IkxJQlhNTF9UUkVFX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX1RSRUVfRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9UUkVFX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIHRoZSBET00gbGlrZSB0cmVlIG1hbmlwdWxhdGlvbiBBUEkgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9VTklDT0RFX0VOQUJMRUQiIGlkPSJMSUJYTUxfVU5JQ09ERV9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9VTklDT0RFX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfVU5JQ09ERV9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgVW5pY29kZSByZWxhdGVkIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9WQUxJRF9FTkFCTEVEIiBpZD0iTElCWE1MX1ZBTElEX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX1ZBTElEX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfVkFMSURfRU5BQkxFRDwvcHJlPjxwPldoZXRoZXIgdGhlIERURCB2YWxpZGF0aW9uIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfVkVSU0lPTiIgaWQ9IkxJQlhNTF9WRVJTSU9OIj48L2E+TWFjcm86IExJQlhNTF9WRVJTSU9OPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX1ZFUlNJT048L3ByZT48cD50aGUgdmVyc2lvbiBudW1iZXI6IDEuMi4zIHZhbHVlIGlzIDEwMjAzPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9WRVJTSU9OX0VYVFJBIiBpZD0iTElCWE1MX1ZFUlNJT05fRVhUUkEiPjwvYT5NYWNybzogTElCWE1MX1ZFUlNJT05fRVhUUkE8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfVkVSU0lPTl9FWFRSQTwvcHJlPjxwPmV4dHJhIHZlcnNpb24gaW5mb3JtYXRpb24sIHVzZWQgdG8gc2hvdyBhIENWUyBjb21waWxhdGlvbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfVkVSU0lPTl9TVFJJTkciIGlkPSJMSUJYTUxfVkVSU0lPTl9TVFJJTkciPjwvYT5NYWNybzogTElCWE1MX1ZFUlNJT05fU1RSSU5HPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX1ZFUlNJT05fU1RSSU5HPC9wcmU+PHA+dGhlIHZlcnNpb24gbnVtYmVyIHN0cmluZywgMS4yLjMgdmFsdWUgaXMgIjEwMjAzIjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfV1JJVEVSX0VOQUJMRUQiIGlkPSJMSUJYTUxfV1JJVEVSX0VOQUJMRUQiPjwvYT5NYWNybzogTElCWE1MX1dSSVRFUl9FTkFCTEVEPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX1dSSVRFUl9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgeG1sV3JpdGVyIHNhdmluZyBpbnRlcmZhY2UgaXMgY29uZmlndXJlZCBpbjwvcD4KKzxoMz48YSBuYW1lPSJMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCIgaWQ9IkxJQlhNTF9YSU5DTFVERV9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9YSU5DTFVERV9FTkFCTEVEPC9oMz48cHJlPiNkZWZpbmUgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQ8L3ByZT48cD5XaGV0aGVyIFhJbmNsdWRlIGlzIGNvbmZpZ3VyZWQgaW48L3A+Cis8aDM+PGEgbmFtZT0iTElCWE1MX1hQQVRIX0VOQUJMRUQiIGlkPSJMSUJYTUxfWFBBVEhfRU5BQkxFRCI+PC9hPk1hY3JvOiBMSUJYTUxfWFBBVEhfRU5BQkxFRDwvaDM+PHByZT4jZGVmaW5lIExJQlhNTF9YUEFUSF9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciBYUGF0aCBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9YUFRSX0VOQUJMRUQiIGlkPSJMSUJYTUxfWFBUUl9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9YUFRSX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfWFBUUl9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciBYUG9pbnRlciBpcyBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IkxJQlhNTF9aTElCX0VOQUJMRUQiIGlkPSJMSUJYTUxfWkxJQl9FTkFCTEVEIj48L2E+TWFjcm86IExJQlhNTF9aTElCX0VOQUJMRUQ8L2gzPjxwcmU+I2RlZmluZSBMSUJYTUxfWkxJQl9FTkFCTEVEPC9wcmU+PHA+V2hldGhlciB0aGUgWmxpYiBzdXBwb3J0IGlzIGNvbXBpbGVkIGluPC9wPgorPGgzPjxhIG5hbWU9IldJVEhPVVRfVFJJTyIgaWQ9IldJVEhPVVRfVFJJTyI+PC9hPk1hY3JvOiBXSVRIT1VUX1RSSU88L2gzPjxwcmU+I2RlZmluZSBXSVRIT1VUX1RSSU88L3ByZT48cD5kZWZpbmVkIGlmIHRoZSB0cmlvIHN1cHBvcnQgc2hvdWxkIG5vdCBiZSBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9IldJVEhfVFJJTyIgaWQ9IldJVEhfVFJJTyI+PC9hPk1hY3JvOiBXSVRIX1RSSU88L2gzPjxwcmU+I2RlZmluZSBXSVRIX1RSSU88L3ByZT48cD5kZWZpbmVkIGlmIHRoZSB0cmlvIHN1cHBvcnQgbmVlZCB0byBiZSBjb25maWd1cmVkIGluPC9wPgorPGgzPjxhIG5hbWU9InhtbENoZWNrVmVyc2lvbiIgaWQ9InhtbENoZWNrVmVyc2lvbiI+PC9hPkZ1bmN0aW9uOiB4bWxDaGVja1ZlcnNpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbENoZWNrVmVyc2lvbgkJCShpbnQgdmVyc2lvbik8YnIgLz4KKzwvcHJlPjxwPmNoZWNrIHRoZSBjb21waWxlZCBsaWIgdmVyc2lvbiBhZ2FpbnN0IHRoZSBpbmNsdWRlIG9uZS4gVGhpcyBjYW4gd2FybiBvciBpbW1lZGlhdGVseSBraWxsIHRoZSBhcHBsaWNhdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZlcnNpb248L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbmNsdWRlIHZlcnNpb24gbnVtYmVyPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteG1sd3JpdGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgwNGNlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhtbHdyaXRlci5odG1sCkBAIC0wLDAgKzEsMjU4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgeG1sd3JpdGVyIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeG1sd3JpdGVyIGZyb20gbGlieG1sMjwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9kb2NzLmh0bWwiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9leGFtcGxlcy9pbmRleC5odG1sIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSJpbmRleC5odG1sIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtcGFyc2VyLmh0bWwiPlBhcnNlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXhtbHJlYWRlci5odG1sIj5SZWFkZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL2d1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iLi4vQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHRhYmxlIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwteG1sdmVyc2lvbi5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteG1sdmVyc2lvbi5odG1sIj54bWx2ZXJzaW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJpbmRleC5odG1sIj5BUEkgZG9jdW1lbnRhdGlvbjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSJob21lLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iSG9tZSIgLz48L2E+PC90ZD48dGggYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvYT48L3RoPjx0aCBhbGlnbj0icmlnaHQiPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj54cGF0aDwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0IiAvPjwvYT48L3RkPjwvdHI+PC90YWJsZT48cD50ZXh0IHdyaXRpbmcgQVBJIGZvciBYTUwgPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURvY1R5cGUiPnhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGU8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbiI+eG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFRleHRXcml0ZXIiPnhtbFRleHRXcml0ZXI8L2E+PGJyIC8+c3RydWN0IF94bWxUZXh0V3JpdGVyCitUaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyIj54bWxUZXh0V3JpdGVyPC9hPiAqIDxhIG5hbWU9InhtbFRleHRXcml0ZXJQdHIiIGlkPSJ4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbEZyZWVUZXh0V3JpdGVyIj54bWxGcmVlVGV4dFdyaXRlcjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3VGV4dFdyaXRlciI+eG1sTmV3VGV4dFdyaXRlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+IG91dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRXcml0ZXJEb2MiPnhtbE5ld1RleHRXcml0ZXJEb2M8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiAqIGRvYywgPGJyIC8+CQkJCQkJIGludCBjb21wcmVzc2lvbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZSI+eG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lPC9hPgkoY29uc3QgY2hhciAqIHVyaSwgPGJyIC8+CQkJCQkJCSBpbnQgY29tcHJlc3Npb24pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CTxhIGhyZWY9IiN4bWxOZXdUZXh0V3JpdGVyTWVtb3J5Ij54bWxOZXdUZXh0V3JpdGVyTWVtb3J5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT4gYnVmLCA8YnIgLz4JCQkJCQkgaW50IGNvbXByZXNzaW9uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgk8YSBocmVmPSIjeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIiPnhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIGludCBjb21wcmVzc2lvbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4JPGEgaHJlZj0iI3htbE5ld1RleHRXcml0ZXJUcmVlIj54bWxOZXdUZXh0V3JpdGVyVHJlZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYywgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkJIGludCBjb21wcmVzc2lvbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZENEQVRBIj54bWxUZXh0V3JpdGVyRW5kQ0RBVEE8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJFbmRDb21tZW50Ij54bWxUZXh0V3JpdGVyRW5kQ29tbWVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZERURCI+eG1sVGV4dFdyaXRlckVuZERURDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJFbmREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5Ij54bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJFbmREb2N1bWVudCI+eG1sVGV4dFdyaXRlckVuZERvY3VtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJFbmRFbGVtZW50Ij54bWxUZXh0V3JpdGVyRW5kRWxlbWVudDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlckVuZFBJIj54bWxUZXh0V3JpdGVyRW5kUEk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJGbHVzaCI+eG1sVGV4dFdyaXRlckZsdXNoPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiPnhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU2V0SW5kZW50Ij54bWxUZXh0V3JpdGVyU2V0SW5kZW50PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGludCBpbmRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIj54bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkkpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSI+eG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEE8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydENvbW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0RFREIj54bWxUZXh0V3JpdGVyU3RhcnREVEQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgaW50IHBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQiPnhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHZlcnNpb24sIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHN0YW5kYWxvbmUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50Ij54bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyI+eG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkkpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyU3RhcnRQSSI+eG1sVGV4dFdyaXRlclN0YXJ0UEk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdGFyZ2V0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQiPnhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIgLz4JCQkJCSBpbnQgc3RhcnQsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgiPnhtbFRleHRXcml0ZXJXcml0ZUJpbkhleDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIgLz4JCQkJCSBpbnQgc3RhcnQsIDxiciAvPgkJCQkJIGludCBsZW4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVDREFUQSI+eG1sVGV4dFdyaXRlcldyaXRlQ0RBVEE8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRFREIj54bWxUZXh0V3JpdGVyV3JpdGVEVEQ8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdWJzZXQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHk8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBpbnQgcGUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmlkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmRhdGFpZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCSBpbnQgcGUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5kYXRhaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzIj54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuZGF0YWlkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkiPnhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGludCBwZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24iPnhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSAuLi4gLi4uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgLi4uIC4uLik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgLi4uIC4uLik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCSAuLi4gLi4uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgLi4uIC4uLik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5Ij54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCQkgaW50IHBlLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkJCSAuLi4gLi4uKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSSI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEk8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmciPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVQSSI+eG1sVGV4dFdyaXRlcldyaXRlUEk8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdGFyZ2V0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlUmF3Ij54bWxUZXh0V3JpdGVyV3JpdGVSYXc8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVJhd0xlbiI+eG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCwgPGJyIC8+CQkJCQkgaW50IGxlbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVN0cmluZyI+eG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIHZhX2xpc3QgYXJncHRyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIHZhX2xpc3QgYXJncHRyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudCI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJCSBpbnQgcGUsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkJIHZhX2xpc3QgYXJncHRyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3Ij54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGUiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlIj48L2E+TWFjcm86IHhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGU8L2gzPjxwcmU+I2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlPC9wcmU+PHA+dGhpcyBtYWNybyBtYXBzIHRvIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyV3JpdGVEVEQiPnhtbFRleHRXcml0ZXJXcml0ZURURDwvYT48L3A+Cis8aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uIj48L2E+TWFjcm86IHhtbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvaDM+PHByZT4jZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbjwvcHJlPjxwPlRoaXMgbWFjcm8gbWFwcyB0byA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlcldyaXRlUEkiPnhtbFRleHRXcml0ZXJXcml0ZVBJPC9hPjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyIiBpZD0ieG1sVGV4dFdyaXRlciI+U3RydWN0dXJlIHhtbFRleHRXcml0ZXI8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFRleHRXcml0ZXI8YnIgLz5zdHJ1Y3QgX3htbFRleHRXcml0ZXIgeworVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbEZyZWVUZXh0V3JpdGVyIiBpZD0ieG1sRnJlZVRleHRXcml0ZXIiPjwvYT5GdW5jdGlvbjogeG1sRnJlZVRleHRXcml0ZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbEZyZWVUZXh0V3JpdGVyCQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIgLz4KKzwvcHJlPjxwPkRlYWxsb2NhdGUgYWxsIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgd3JpdGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dFdyaXRlciIgaWQ9InhtbE5ld1RleHRXcml0ZXIiPjwvYT5GdW5jdGlvbjogeG1sTmV3VGV4dFdyaXRlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgl4bWxOZXdUZXh0V3JpdGVyCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBvdXQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+IHN0cnVjdHVyZSB1c2luZyBhbiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE91dHB1dEJ1ZmZlclB0ciI+eG1sT3V0cHV0QnVmZmVyUHRyPC9hPiBOT1RFOiB0aGUgQG91dCBwYXJhbWV0ZXIgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aGVuIHRoZSB3cml0ZXIgaXMgY2xvc2VkIChpZiB0aGUgY2FsbCBzdWNjZWVkLik8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sT3V0cHV0QnVmZmVyUHRyIj54bWxPdXRwdXRCdWZmZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdUZXh0V3JpdGVyRG9jIiBpZD0ieG1sTmV3VGV4dFdyaXRlckRvYyI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdUZXh0V3JpdGVyRG9jPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CXhtbE5ld1RleHRXcml0ZXJEb2MJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+ICogZG9jLCA8YnIgLz4JCQkJCQkgaW50IGNvbXByZXNzaW9uKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPiBzdHJ1Y3R1cmUgd2l0aCBAKmRvYyBhcyBvdXRwdXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFkZHJlc3Mgb2YgYSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiB0byBob2xkIHRoZSBuZXcgWE1MIGRvY3VtZW50IHRyZWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb21wcmVzcyB0aGUgb3V0cHV0PzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lIiBpZD0ieG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lIj48L2E+RnVuY3Rpb246IHhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgl4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUJKGNvbnN0IGNoYXIgKiB1cmksIDxiciAvPgkJCQkJCQkgaW50IGNvbXByZXNzaW9uKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxOZXdUZXh0V3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyPC9hPiBzdHJ1Y3R1cmUgd2l0aCBAdXJpIGFzIG91dHB1dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnVyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFVSSSBvZiB0aGUgcmVzb3VyY2UgZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb21wcmVzcyB0aGUgb3V0cHV0PzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dFdyaXRlck1lbW9yeSIgaWQ9InhtbE5ld1RleHRXcml0ZXJNZW1vcnkiPjwvYT5GdW5jdGlvbjogeG1sTmV3VGV4dFdyaXRlck1lbW9yeTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgl4bWxOZXdUZXh0V3JpdGVyTWVtb3J5CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbEJ1ZmZlclB0ciI+eG1sQnVmZmVyUHRyPC9hPiBidWYsIDxiciAvPgkJCQkJCSBpbnQgY29tcHJlc3Npb24pPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+IHN0cnVjdHVyZSB3aXRoIEBidWYgYXMgb3V0cHV0IFRPRE86IGhhbmRsZSBjb21wcmVzc2lvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmJ1ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxCdWZmZXJQdHIiPnhtbEJ1ZmZlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXByZXNzaW9uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb21wcmVzcyB0aGUgb3V0cHV0PzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIiIGlkPSJ4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI+PC9hPkZ1bmN0aW9uOiB4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPgl4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxQYXJzZXJDdHh0UHRyIj54bWxQYXJzZXJDdHh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIGludCBjb21wcmVzc2lvbik8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sTmV3VGV4dFdyaXRlciI+eG1sTmV3VGV4dFdyaXRlcjwvYT4gc3RydWN0dXJlIHdpdGggQGN0eHQgYXMgb3V0cHV0IE5PVEU6IHRoZSBAY3R4dCBjb250ZXh0IHdpbGwgYmUgZnJlZWQgd2l0aCB0aGUgcmVzdWx0aW5nIHdyaXRlciAoaWYgdGhlIGNhbGwgc3VjY2VlZHMpLiBUT0RPOiBoYW5kbGUgY29tcHJlc3Npb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbFBhcnNlckN0eHRQdHIiPnhtbFBhcnNlckN0eHRQdHI8L2E+IHRvIGhvbGQgdGhlIG5ldyBYTUwgZG9jdW1lbnQgdHJlZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcHJlc3Npb248L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbXByZXNzIHRoZSBvdXRwdXQ/PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxOZXdUZXh0V3JpdGVyVHJlZSIgaWQ9InhtbE5ld1RleHRXcml0ZXJUcmVlIj48L2E+RnVuY3Rpb246IHhtbE5ld1RleHRXcml0ZXJUcmVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+CXhtbE5ld1RleHRXcml0ZXJUcmVlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUsIDxiciAvPgkJCQkJCSBpbnQgY29tcHJlc3Npb24pPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbE5ld1RleHRXcml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L2E+IHN0cnVjdHVyZSB3aXRoIEBkb2MgYXMgb3V0cHV0IHN0YXJ0aW5nIGF0IEBub2RlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBvciBOVUxMIGZvciBkb2MtJmd0O2NoaWxkcmVuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb21wcmVzc2lvbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Y29tcHJlc3MgdGhlIG91dHB1dD88L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUiIGlkPSJ4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIgLz4KKzwvcHJlPjxwPkVuZCB0aGUgY3VycmVudCB4bWwgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJFbmRDREFUQSIgaWQ9InhtbFRleHRXcml0ZXJFbmRDREFUQSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyRW5kQ0RBVEE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlckVuZENEQVRBCQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIgLz4KKzwvcHJlPjxwPkVuZCBhbiB4bWwgQ0RBVEEgc2VjdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJFbmRDb21tZW50IiBpZD0ieG1sVGV4dFdyaXRlckVuZENvbW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlckVuZENvbW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlckVuZENvbW1lbnQJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTxiciAvPgorPC9wcmU+PHA+RW5kIHRoZSBjdXJyZW50IHhtbCBjb21lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFREIiBpZD0ieG1sVGV4dFdyaXRlckVuZERURCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyRW5kRFREPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmREVEQJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTxiciAvPgorPC9wcmU+PHA+RW5kIGFuIHhtbCBEVEQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCIgaWQ9InhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTxiciAvPgorPC9wcmU+PHA+RW5kIGFuIHhtbCBEVEQgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIgLz4KKzwvcHJlPjxwPkVuZCBhbiB4bWwgRFREIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5IiBpZD0ieG1sVGV4dFdyaXRlckVuZERUREVudGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyIC8+Cis8L3ByZT48cD5FbmQgYW4geG1sIERURCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlckVuZERvY3VtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmREb2N1bWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIgLz4KKzwvcHJlPjxwPkVuZCBhbiB4bWwgZG9jdW1lbnQuIEFsbCBvcGVuIGVsZW1lbnRzIGFyZSBjbG9zZWQsIGFuZCB0aGUgY29udGVudCBpcyBmbHVzaGVkIHRvIHRoZSBvdXRwdXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlckVuZEVsZW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyRW5kRWxlbWVudAkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyIC8+Cis8L3ByZT48cD5FbmQgdGhlIGN1cnJlbnQgeG1sIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRW5kUEkiIGlkPSJ4bWxUZXh0V3JpdGVyRW5kUEkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlckVuZFBJPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJFbmRQSQkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyIC8+Cis8L3ByZT48cD5FbmQgdGhlIGN1cnJlbnQgeG1sIFBJLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlckZsdXNoIiBpZD0ieG1sVGV4dFdyaXRlckZsdXNoIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJGbHVzaDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyRmx1c2gJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTxiciAvPgorPC9wcmU+PHA+Rmx1c2ggdGhlIG91dHB1dCBidWZmZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlcik8YnIgLz4KKzwvcHJlPjxwPkVuZCB0aGUgY3VycmVudCB4bWwgZWxlbWVudC4gV3JpdGVzIGFuIGVuZCB0YWcgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBlbXB0eTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclNldEluZGVudCIgaWQ9InhtbFRleHRXcml0ZXJTZXRJbmRlbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlclNldEluZGVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU2V0SW5kZW50CQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgaW50IGluZGVudCk8YnIgLz4KKzwvcHJlPjxwPlNldCBpbmRlbnRhdGlvbiBvdXRwdXQuIGluZGVudCA9IDAgZG8gbm90IGluZGVudGF0aW9uLiBpbmRlbnQgJmd0OyAwIGRvIGluZGVudGF0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW5kZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5kbyBpbmRlbnRhdGlvbj88L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIG9uIGVycm9yIG9yIDAgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmciIGlkPSJ4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxiciAvPgorPC9wcmU+PHA+U2V0IHN0cmluZyBpbmRlbnRhdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPi0xIG9uIGVycm9yIG9yIDAgb3RoZXJ3aXNlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZSIgaWQ9InhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+U3RhcnQgYW4geG1sIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMiIGlkPSJ4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkkpPGJyIC8+Cis8L3ByZT48cD5TdGFydCBhbiB4bWwgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiB3aXRoIG5hbWVzcGFjZSBzdXBwb3J0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgcHJlZml4IG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydENEQVRBIiBpZD0ieG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyKTxiciAvPgorPC9wcmU+PHA+U3RhcnQgYW4geG1sIENEQVRBIHNlY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50IiBpZD0ieG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJTdGFydENvbW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIpPGJyIC8+Cis8L3ByZT48cD5TdGFydCBhbiB4bWwgY29tbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydERURCIgaWQ9InhtbFRleHRXcml0ZXJTdGFydERURCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyU3RhcnREVEQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0RFRECQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkKTxiciAvPgorPC9wcmU+PHA+U3RhcnQgYW4geG1sIERURC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0IiBpZD0ieG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3QJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5TdGFydCBhbiB4bWwgRFREIEFUVExJU1QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIEFUVExJU1Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBEVEQgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5IiBpZD0ieG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGludCBwZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBEVEQgQVRUTElTVC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5UUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHZlcnNpb24sIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBlbmNvZGluZywgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIHN0YW5kYWxvbmUpPGJyIC8+Cis8L3ByZT48cD5TdGFydCBhIG5ldyB4bWwgZG9jdW1lbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZlcnNpb248L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB4bWwgdmVyc2lvbiAoIjEuMCIpIG9yIE5VTEwgZm9yIGRlZmF1bHQgKCIxLjAiKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmNvZGluZyBvciBOVUxMIGZvciBkZWZhdWx0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFuZGFsb25lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4ieWVzIiBvciAibm8iIG9yIE5VTEwgZm9yIGRlZmF1bHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlN0YXJ0IGFuIHhtbCBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMiIGlkPSJ4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkkpPGJyIC8+Cis8L3ByZT48cD5TdGFydCBhbiB4bWwgZWxlbWVudCB3aXRoIG5hbWVzcGFjZSBzdXBwb3J0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgcHJlZml4IG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJTdGFydFBJIiBpZD0ieG1sVGV4dFdyaXRlclN0YXJ0UEkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlclN0YXJ0UEk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlclN0YXJ0UEkJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQpPGJyIC8+Cis8L3ByZT48cD5TdGFydCBhbiB4bWwgUEkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YXJnZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlBJIHRhcmdldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlMJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZXNwYWNlVVJJLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYW4geG1sIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnByZWZpeDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIHByZWZpeDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBsb2NhbCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lc3BhY2VVUkk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBkYXRhLCA8YnIgLz4JCQkJCSBpbnQgc3RhcnQsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhbiBiYXNlNjQgZW5jb2RlZCB4bWwgdGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmJpbmFyeSBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgZGF0YSBvZiB0aGUgZmlyc3QgYnl0ZSB0byBlbmNvZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUJpbkhleCIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZUJpbkhleCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXg8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZGF0YSwgPGJyIC8+CQkJCQkgaW50IHN0YXJ0LCA8YnIgLz4JCQkJCSBpbnQgbGVuKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBCaW5IZXggZW5jb2RlZCB4bWwgdGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmJpbmFyeSBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgZGF0YSBvZiB0aGUgZmlyc3QgYnl0ZSB0byBlbmNvZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxlbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUNEQVRBIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlQ0RBVEE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYW4geG1sIENEQVRBLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Q0RBVEEgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYW4geG1sIGNvbW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY29tbWVudCI+Y29tbWVudDwvYT4gc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVEQiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVEQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlRFREPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZURURAkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHB1YmlkLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzeXNpZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3Vic2V0KTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c2lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3Vic2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5zdHJpbmcgY29udGVudCBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIERURCBBVFRMSVNULjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb250ZW50IG9mIHRoZSBBVFRMSVNUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIERURCBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5jb250ZW50IG9mIHRoZSBlbGVtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgaW50IHBlLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5kYXRhaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIERURCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5kYXRhaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB4bWwgbm90YXRpb24gbmFtZS48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRlbnQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHkiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGludCBwZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmRhdGFpZCk8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgRFREIGV4dGVybmFsIGVudGl0eS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYmVlbiBzdGFydGVkIHdpdGggPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5PC9hPjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnB1YmlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3lzaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uZGF0YWlkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgeG1sIG5vdGF0aW9uIG5hbWUuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHlDb250ZW50cyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmRhdGFpZCk8YnIgLz4KKzwvcHJlPjxwPldyaXRlIHRoZSBjb250ZW50cyBvZiBhIERURCBleHRlcm5hbCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c2lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmRhdGFpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHhtbCBub3RhdGlvbiBuYW1lLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGludCBwZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgaW50ZXJuYWwgZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbnRlbnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmNvbnRlbnQgb2YgdGhlIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24iIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbgkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgZW50aXR5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIHhtbCBub3RhdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHViaWQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zeXNpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbGVtZW50IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCBlbGVtZW50IHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbGVtZW50IGNvbnRlbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSAuLi4gLi4uKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUyIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSAuLi4gLi4uKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGF0dHJpYnV0ZS53aXRoIG5hbWVzcGFjZSBzdXBwb3J0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgQ0RBVEEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgLi4uIC4uLik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCBjb21tZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURAkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHViaWQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN5c2lkLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCSAuLi4gLi4uKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgd2l0aCBhIGZvcm1hdHRlZCBtYXJrdXAgZGVjbGFyYXRpb25zIHBhcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c2lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkJIC4uLiAuLi4pPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCBEVEQgQVRUTElTVC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkJIC4uLiAuLi4pPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCBEVEQgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkJIGludCBwZSwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCQkgLi4uIC4uLik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIERURCBpbnRlcm5hbCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgZWxlbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Li4uPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5leHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgLi4uIC4uLik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50IHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPm5hbWVzcGFjZSBwcmVmaXg8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVsZW1lbnQgbG9jYWwgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZXNwYWNlVVJJPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHRhcmdldCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgLi4uIC4uLik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIFBJLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dGFyZ2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5QSSB0YXJnZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pi4uLjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXcJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIC4uLiAuLi4pPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCByYXcgeG1sIHRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZyIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCSAuLi4gLi4uKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIHRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD4uLi48L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVBJIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlUEkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlUEk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlUEkJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB0YXJnZXQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgUEkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50YXJnZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPlBJIHRhcmdldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+UEkgY29udGVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlUmF3IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlUmF3Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVJhdzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVSYXcJCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBjb250ZW50KTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSByYXcgeG1sIHRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50ZXh0IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4JKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIGNvbnRlbnQsIDxiciAvPgkJCQkJIGludCBsZW4pPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgdGV4dC4gVE9ETzogd2hhdCBhYm91dCBlbnRpdGllcyBhbmQgc3BlY2lhbCBjaGFycz8/PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jb250ZW50PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50ZXh0IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bGVuPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5sZW5ndGggb2YgdGhlIHRleHQgc3RyaW5nPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmciIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmciPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVN0cmluZwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogY29udGVudCk8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGFuIHhtbCB0ZXh0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29udGVudDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGV4dCBzdHJpbmc8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgYXR0cmlidXRlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+PGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyI+PC9hPkZ1bmN0aW9uOiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TCSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWVzcGFjZVVSSSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBhdHRyaWJ1dGUud2l0aCBuYW1lc3BhY2Ugc3VwcG9ydDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD48YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGxvY2FsIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZVVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJncHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgQ0RBVEEuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhbiB4bWwgY29tbWVudC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRECSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwdWJpZCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3lzaWQsIDxiciAvPgkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJIHZhX2xpc3QgYXJncHRyKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBEVEQgd2l0aCBhIGZvcm1hdHRlZCBtYXJrdXAgZGVjbGFyYXRpb25zIHBhcnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wdWJpZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN5c2lkPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJncHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdCIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIERURCBBVFRMSVNULjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkJIHZhX2xpc3QgYXJncHRyKTxiciAvPgorPC9wcmU+PHA+V3JpdGUgYSBmb3JtYXR0ZWQgRFREIGVsZW1lbnQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5IiBpZD0ieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkJKDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPiB3cml0ZXIsIDxiciAvPgkJCQkJCQkgaW50IHBlLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIERURCBpbnRlcm5hbCBlbnRpdHkuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+VFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJncHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCIgaWQ9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50CSg8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT4gd3JpdGVyLCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IGNoYXIgKiBmb3JtYXQsIDxiciAvPgkJCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+ZWxlbWVudCBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlMiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50TlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lc3BhY2VVUkksIDxiciAvPgkJCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgZWxlbWVudCB3aXRoIG5hbWVzcGFjZSBzdXBwb3J0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PndyaXRlcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14bWx3cml0ZXIuaHRtbCN4bWxUZXh0V3JpdGVyUHRyIj54bWxUZXh0V3JpdGVyUHRyPC9hPjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5uYW1lc3BhY2UgcHJlZml4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5lbGVtZW50IGxvY2FsIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWVzcGFjZVVSSTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZXNwYWNlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Zm9ybWF0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5mb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+YXJncHRyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5wb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3I8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkiIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkiPjwvYT5GdW5jdGlvbjogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSQkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdGFyZ2V0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZm9ybWF0LCA8YnIgLz4JCQkJCSB2YV9saXN0IGFyZ3B0cik8YnIgLz4KKzwvcHJlPjxwPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBQSS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRhcmdldDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+UEkgdGFyZ2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXciIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3Ij48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCByYXcgeG1sIHRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+d3JpdGVyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5mb3JtYXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hcmdwdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmciIGlkPSJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZwkoPGEgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sI3htbFRleHRXcml0ZXJQdHIiPnhtbFRleHRXcml0ZXJQdHI8L2E+IHdyaXRlciwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZvcm1hdCwgPGJyIC8+CQkJCQkgdmFfbGlzdCBhcmdwdHIpPGJyIC8+Cis8L3ByZT48cD5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgdGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD53cml0ZXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwjeG1sVGV4dFdyaXRlclB0ciI+eG1sVGV4dFdyaXRlclB0cjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZvcm1hdDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+Zm9ybWF0IHN0cmluZyAoc2VlIHByaW50Zik8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmFyZ3B0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+cG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48cD48YSBocmVmPSIuLi9idWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhwYXRoLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14cGF0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNjY1MDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14cGF0aC5odG1sCkBAIC0wLDAgKzEsMzA3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPjx0aXRsZT5Nb2R1bGUgeHBhdGggZnJvbSBsaWJ4bWwyPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9Ii4uL2VwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSIuLi9nbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSIuLi93M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0iLi4vcmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSIuLi9MaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPjwvaDE+PGgyPk1vZHVsZSB4cGF0aCBmcm9tIGxpYnhtbDI8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSIuLi9zZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZG9jcy5odG1sIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iLi4vZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgaHJlZj0iaW5kZXguaHRtbCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwiPlRyZWUgQVBJPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC14bWxyZWFkZXIuaHRtbCI+UmVhZGVyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Ii4uL0FQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx0YWJsZSBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLXhtbHdyaXRlci5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteG1sd3JpdGVyLmh0bWwiPnhtbHdyaXRlcjwvYT48L3RoPjx0ZD48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD48dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCI+eHBhdGhJbnRlcm5hbHM8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCI+PGltZyBzcmM9InJpZ2h0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iTmV4dCIgLz48L2E+PC90ZD48L3RyPjwvdGFibGU+PHA+QVBJIGZvciB0aGUgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb24gIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uIFhQYXRoIGlzIGEgbGFuZ3VhZ2UgZm9yIGFkZHJlc3NpbmcgcGFydHMgb2YgYW4gWE1MIGRvY3VtZW50LCBkZXNpZ25lZCB0byBiZSB1c2VkIGJ5IGJvdGggWFNMVCBhbmQgWFBvaW50ZXI8L3A+PGgyPlRhYmxlIG9mIENvbnRlbnRzPC9oMj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWE1MX1hQQVRIX0NIRUNLTlMiPlhNTF9YUEFUSF9DSEVDS05TPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNYTUxfWFBBVEhfTk9WQVIiPlhNTF9YUEFUSF9OT1ZBUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIj54bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGg8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldElzRW1wdHkiPnhtbFhQYXRoTm9kZVNldElzRW1wdHk8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEl0ZW0iPnhtbFhQYXRoTm9kZVNldEl0ZW08L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sTm9kZVNldCI+eG1sTm9kZVNldDwvYT48YnIgLz5zdHJ1Y3QgX3htbE5vZGVTZXQKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXQiPnhtbE5vZGVTZXQ8L2E+ICogPGEgbmFtZT0ieG1sTm9kZVNldFB0ciIgaWQ9InhtbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxYUGF0aEF4aXMiPnhtbFhQYXRoQXhpczwvYT48YnIgLz5zdHJ1Y3QgX3htbFhQYXRoQXhpcworPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzIj54bWxYUGF0aEF4aXM8L2E+ICogPGEgbmFtZT0ieG1sWFBhdGhBeGlzUHRyIiBpZD0ieG1sWFBhdGhBeGlzUHRyIj54bWxYUGF0aEF4aXNQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxYUGF0aENvbXBFeHByIj54bWxYUGF0aENvbXBFeHByPC9hPjxiciAvPnN0cnVjdCBfeG1sWFBhdGhDb21wRXhwcgorVGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByIj54bWxYUGF0aENvbXBFeHByPC9hPiAqIDxhIG5hbWU9InhtbFhQYXRoQ29tcEV4cHJQdHIiIGlkPSJ4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+PGJyIC8+c3RydWN0IF94bWxYUGF0aENvbnRleHQKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5UeXBlZGVmIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dCI+eG1sWFBhdGhDb250ZXh0PC9hPiAqIDxhIG5hbWU9InhtbFhQYXRoQ29udGV4dFB0ciIgaWQ9InhtbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkVudW0gPGEgaHJlZj0iI3htbFhQYXRoRXJyb3IiPnhtbFhQYXRoRXJyb3I8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0Ij54bWxYUGF0aEZ1bmN0PC9hPiAqIDxhIG5hbWU9InhtbFhQYXRoRnVuY1B0ciIgaWQ9InhtbFhQYXRoRnVuY1B0ciI+eG1sWFBhdGhGdW5jUHRyPC9hPgorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSA8YSBocmVmPSIjeG1sWFBhdGhGdW5jdCI+eG1sWFBhdGhGdW5jdDwvYT48YnIgLz5zdHJ1Y3QgX3htbFhQYXRoRnVuY3QKKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbFhQYXRoT2JqZWN0Ij54bWxYUGF0aE9iamVjdDwvYT48YnIgLz5zdHJ1Y3QgX3htbFhQYXRoT2JqZWN0Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdCI+eG1sWFBhdGhPYmplY3Q8L2E+ICogPGEgbmFtZT0ieG1sWFBhdGhPYmplY3RQdHIiIGlkPSJ4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSA8YSBocmVmPSIjeG1sWFBhdGhPYmplY3RUeXBlIj54bWxYUGF0aE9iamVjdFR5cGU8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxYUGF0aFBhcnNlckNvbnRleHQiPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvYT48YnIgLz5zdHJ1Y3QgX3htbFhQYXRoUGFyc2VyQ29udGV4dAorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij54bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+ICogPGEgbmFtZT0ieG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIiBpZD0ieG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxYUGF0aFR5cGUiPnhtbFhQYXRoVHlwZTwvYT48YnIgLz5zdHJ1Y3QgX3htbFhQYXRoVHlwZQorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhUeXBlIj54bWxYUGF0aFR5cGU8L2E+ICogPGEgbmFtZT0ieG1sWFBhdGhUeXBlUHRyIiBpZD0ieG1sWFBhdGhUeXBlUHRyIj54bWxYUGF0aFR5cGVQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIDxhIGhyZWY9IiN4bWxYUGF0aFZhcmlhYmxlIj54bWxYUGF0aFZhcmlhYmxlPC9hPjxiciAvPnN0cnVjdCBfeG1sWFBhdGhWYXJpYWJsZQorPC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlR5cGVkZWYgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhWYXJpYWJsZSI+eG1sWFBhdGhWYXJpYWJsZTwvYT4gKiA8YSBuYW1lPSJ4bWxYUGF0aFZhcmlhYmxlUHRyIiBpZD0ieG1sWFBhdGhWYXJpYWJsZVB0ciI+eG1sWFBhdGhWYXJpYWJsZVB0cjwvYT4KKzwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5GdW5jdGlvbiB0eXBlOiA8YSBocmVmPSIjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT4KKzxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoQXhpc0Z1bmMiPnhtbFhQYXRoQXhpc0Z1bmM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gY3VyKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCTxhIGhyZWY9IiN4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIiPnhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcjwvYT4JKGludCB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyI+eG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nPC9hPgkoaW50IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW48L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5kb3VibGUJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlciI+eG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZyI+eG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbnMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCTxhIGhyZWY9IiN4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXIiPnhtbFhQYXRoQ2FzdE5vZGVUb051bWJlcjwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nIj54bWxYUGF0aENhc3ROb2RlVG9TdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbjwvYT4JKGRvdWJsZSB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nIj54bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZzwvYT4JKGRvdWJsZSB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4iPnhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbjwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5kb3VibGUJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyIj54bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcjwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFhQYXRoQ2FzdFRvQm9vbGVhbiI+eG1sWFBhdGhDYXN0VG9Cb29sZWFuPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmRvdWJsZQk8YSBocmVmPSIjeG1sWFBhdGhDYXN0VG9OdW1iZXIiPnhtbFhQYXRoQ2FzdFRvTnVtYmVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxYUGF0aENhc3RUb1N0cmluZyI+eG1sWFBhdGhDYXN0VG9TdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFhQYXRoQ21wTm9kZXMiPnhtbFhQYXRoQ21wTm9kZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlMik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhDb21waWxlIj54bWxYUGF0aENvbXBpbGU8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhDb21waWxlZEV2YWwiPnhtbFhQYXRoQ29tcGlsZWRFdmFsPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb21wRXhwclB0ciI+eG1sWFBhdGhDb21wRXhwclB0cjwvYT4gY29tcCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiI+eG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW48L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFhQYXRoQ29udGV4dFNldENhY2hlIj54bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IGFjdGl2ZSwgPGJyIC8+CQkJCQkgaW50IHZhbHVlLCA8YnIgLz4JCQkJCSBpbnQgb3B0aW9ucyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aENvbnZlcnRCb29sZWFuIj54bWxYUGF0aENvbnZlcnRCb29sZWFuPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbFhQYXRoQ29udmVydEZ1bmMiPnhtbFhQYXRoQ29udmVydEZ1bmM8L2E+CitpbnQJPGEgaHJlZj0iI3htbFhQYXRoQ29udmVydEZ1bmMiPnhtbFhQYXRoQ29udmVydEZ1bmM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmosIDxiciAvPgkJCQkJIGludCB0eXBlKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhDb252ZXJ0TnVtYmVyIj54bWxYUGF0aENvbnZlcnROdW1iZXI8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aENvbnZlcnRTdHJpbmciPnhtbFhQYXRoQ29udmVydFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aEN0eHRDb21waWxlIj54bWxYUGF0aEN0eHRDb21waWxlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhFdmFsIj54bWxYUGF0aEV2YWw8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhFdmFsRXhwcmVzc2lvbiI+eG1sWFBhdGhFdmFsRXhwcmVzc2lvbjwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxYUGF0aEV2YWxGdW5jIj54bWxYUGF0aEV2YWxGdW5jPC9hPgordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhFdmFsRnVuYyI+eG1sWFBhdGhFdmFsRnVuYzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aEV2YWxQcmVkaWNhdGUiPnhtbFhQYXRoRXZhbFByZWRpY2F0ZTwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiByZXMpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGcmVlQ29tcEV4cHIiPnhtbFhQYXRoRnJlZUNvbXBFeHByPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+IGNvbXApPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGcmVlQ29udGV4dCI+eG1sWFBhdGhGcmVlQ29udGV4dDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aEZyZWVOb2RlU2V0Ij54bWxYUGF0aEZyZWVOb2RlU2V0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG9iaik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCI+eG1sWFBhdGhGcmVlTm9kZVNldExpc3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmopPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGcmVlT2JqZWN0Ij54bWxYUGF0aEZyZWVPYmplY3Q8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmopPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogPGEgaHJlZj0iI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+Cis8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhGdW5jTG9va3VwRnVuYyI+eG1sWFBhdGhGdW5jTG9va3VwRnVuYzwvYT4JKHZvaWQgKiBjdHh0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSkKKzwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPgordm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKQorPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhJbml0Ij54bWxYUGF0aEluaXQ8L2E+CQkJKHZvaWQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aElzSW5mIj54bWxYUGF0aElzSW5mPC9hPgkJCShkb3VibGUgdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWFBhdGhJc05hTiI+eG1sWFBhdGhJc05hTjwvYT4JCQkoZG91YmxlIHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV3Q29udGV4dCI+eG1sWFBhdGhOZXdDb250ZXh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5vZGVTZXRDcmVhdGUiPnhtbFhQYXRoTm9kZVNldENyZWF0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoT2JqZWN0Q29weSI+eG1sWFBhdGhPYmplY3RDb3B5PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+bG9uZwk8YSBocmVmPSIjeG1sWFBhdGhPcmRlckRvY0VsZW1zIj54bWxYUGF0aE9yZGVyRG9jRWxlbXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IDxhIGhyZWY9IiN4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmM8L2E+Cis8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmM8L2E+CSh2b2lkICogY3R4dCwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSkKKzwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJYTUxfWFBBVEhfQ0hFQ0tOUyIgaWQ9IlhNTF9YUEFUSF9DSEVDS05TIj48L2E+TWFjcm86IFhNTF9YUEFUSF9DSEVDS05TPC9oMz48cHJlPiNkZWZpbmUgWE1MX1hQQVRIX0NIRUNLTlM8L3ByZT48cD5jaGVjayBuYW1lc3BhY2VzIGF0IGNvbXBpbGF0aW9uPC9wPgorPGgzPjxhIG5hbWU9IlhNTF9YUEFUSF9OT1ZBUiIgaWQ9IlhNTF9YUEFUSF9OT1ZBUiI+PC9hPk1hY3JvOiBYTUxfWFBBVEhfTk9WQVI8L2gzPjxwcmU+I2RlZmluZSBYTUxfWFBBVEhfTk9WQVI8L3ByZT48cD5mb3JiaWQgdmFyaWFibGVzIGluIGV4cHJlc3Npb248L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIiBpZD0ieG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoIj48L2E+TWFjcm86IHhtbFhQYXRoTm9kZVNldEdldExlbmd0aDwvaDM+PHByZT4jZGVmaW5lIHhtbFhQYXRoTm9kZVNldEdldExlbmd0aDwvcHJlPjxwPkltcGxlbWVudCBhIGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0byB0aGUgRE9NIE5vZGVMaXN0Lmxlbmd0aC4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBub2RlLXNldC48L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0SXNFbXB0eSIgaWQ9InhtbFhQYXRoTm9kZVNldElzRW1wdHkiPjwvYT5NYWNybzogeG1sWFBhdGhOb2RlU2V0SXNFbXB0eTwvaDM+PHByZT4jZGVmaW5lIHhtbFhQYXRoTm9kZVNldElzRW1wdHk8L3ByZT48cD5DaGVja3Mgd2hldGhlciBAbnMgaXMgZW1wdHkgb3Igbm90LiBSZXR1cm5zICVUUlVFIGlmIEBucyBpcyBhbiBlbXB0eSBub2RlLXNldC48L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0SXRlbSIgaWQ9InhtbFhQYXRoTm9kZVNldEl0ZW0iPjwvYT5NYWNybzogeG1sWFBhdGhOb2RlU2V0SXRlbTwvaDM+PHByZT4jZGVmaW5lIHhtbFhQYXRoTm9kZVNldEl0ZW08L3ByZT48cD5JbXBsZW1lbnRzIGEgZnVuY3Rpb25hbGl0eSBzaW1pbGFyIHRvIHRoZSBET00gTm9kZUxpc3QuaXRlbSgpLiBSZXR1cm5zIHRoZSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGF0IHRoZSBnaXZlbiBAaW5kZXggaW4gQG5zIG9yIE5VTEwgaWYgQGluZGV4IGlzIG91dCBvZiByYW5nZSAoMCB0byBsZW5ndGgtMSk8L3A+Cis8aDM+PGEgbmFtZT0ieG1sTm9kZVNldCIgaWQ9InhtbE5vZGVTZXQiPlN0cnVjdHVyZSB4bWxOb2RlU2V0PC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxOb2RlU2V0PGJyIC8+c3RydWN0IF94bWxOb2RlU2V0IHsKKyAgICBpbnQJbm9kZU5yCTogbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBzZXQKKyAgICBpbnQJbm9kZU1heAk6IHNpemUgb2YgdGhlIGFycmF5IGFzIGFsbG9jYXRlZAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gKglub2RlVGFiCTogYXJyYXkgb2Ygbm9kZXMgaW4gbm8gcGFydGljdWxhciBvcmRlciBACit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFhQYXRoQXhpcyIgaWQ9InhtbFhQYXRoQXhpcyI+U3RydWN0dXJlIHhtbFhQYXRoQXhpczwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgeG1sWFBhdGhBeGlzPGJyIC8+c3RydWN0IF94bWxYUGF0aEF4aXMgeworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiB0aGUgYXhpcyBuYW1lCisgICAgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhBeGlzRnVuYyI+eG1sWFBhdGhBeGlzRnVuYzwvYT4JZnVuYwk6IHRoZSBzZWFyY2ggZnVuY3Rpb24KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb21wRXhwciIgaWQ9InhtbFhQYXRoQ29tcEV4cHIiPlN0cnVjdHVyZSB4bWxYUGF0aENvbXBFeHByPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxYUGF0aENvbXBFeHByPGJyIC8+c3RydWN0IF94bWxYUGF0aENvbXBFeHByIHsKK1RoZSBjb250ZW50IG9mIHRoaXMgc3RydWN0dXJlIGlzIG5vdCBtYWRlIHB1YmxpYyBieSB0aGUgQVBJLgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbnRleHQiIGlkPSJ4bWxYUGF0aENvbnRleHQiPlN0cnVjdHVyZSB4bWxYUGF0aENvbnRleHQ8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFhQYXRoQ29udGV4dDxiciAvPnN0cnVjdCBfeG1sWFBhdGhDb250ZXh0IHsKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPglkb2MJOiBUaGUgY3VycmVudCBkb2N1bWVudAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4Jbm9kZQk6IFRoZSBjdXJyZW50IG5vZGUKKyAgICBpbnQJbmJfdmFyaWFibGVzX3VudXNlZAk6IHVudXNlZCAoaGFzaCB0YWJsZSkKKyAgICBpbnQJbWF4X3ZhcmlhYmxlc191bnVzZWQJOiB1bnVzZWQgKGhhc2ggdGFibGUpCisgICAgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JdmFySGFzaAk6IEhhc2ggdGFibGUgb2YgZGVmaW5lZCB2YXJpYWJsZXMKKyAgICBpbnQJbmJfdHlwZXMJOiBudW1iZXIgb2YgZGVmaW5lZCB0eXBlcworICAgIGludAltYXhfdHlwZXMJOiBtYXggbnVtYmVyIG9mIHR5cGVzCisgICAgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhUeXBlUHRyIj54bWxYUGF0aFR5cGVQdHI8L2E+CXR5cGVzCTogQXJyYXkgb2YgZGVmaW5lZCB0eXBlcworICAgIGludAluYl9mdW5jc191bnVzZWQJOiB1bnVzZWQgKGhhc2ggdGFibGUpCisgICAgaW50CW1heF9mdW5jc191bnVzZWQJOiB1bnVzZWQgKGhhc2ggdGFibGUpCisgICAgPGEgaHJlZj0ibGlieG1sLWhhc2guaHRtbCN4bWxIYXNoVGFibGVQdHIiPnhtbEhhc2hUYWJsZVB0cjwvYT4JZnVuY0hhc2gJOiBIYXNoIHRhYmxlIG9mIGRlZmluZWQgZnVuY3MKKyAgICBpbnQJbmJfYXhpcwk6IG51bWJlciBvZiBkZWZpbmVkIGF4aXMKKyAgICBpbnQJbWF4X2F4aXMJOiBtYXggbnVtYmVyIG9mIGF4aXMKKyAgICA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEF4aXNQdHIiPnhtbFhQYXRoQXhpc1B0cjwvYT4JYXhpcwk6IEFycmF5IG9mIGRlZmluZWQgYXhpcyB0aGUgbmFtZXNwYWNlIG5vZAorICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTnNQdHIiPnhtbE5zUHRyPC9hPiAqCW5hbWVzcGFjZXMJOiBBcnJheSBvZiBuYW1lc3BhY2VzCisgICAgaW50CW5zTnIJOiBudW1iZXIgb2YgbmFtZXNwYWNlIGluIHNjb3BlCisgICAgdm9pZCAqCXVzZXIJOiBmdW5jdGlvbiB0byBmcmVlIGV4dHJhIHZhcmlhYmxlcworICAgIGludAljb250ZXh0U2l6ZQk6IHRoZSBjb250ZXh0IHNpemUKKyAgICBpbnQJcHJveGltaXR5UG9zaXRpb24JOiB0aGUgcHJveGltaXR5IHBvc2l0aW9uIGV4dHJhIHN0dWZmIGZvcgorICAgIGludAl4cHRyCTogaXMgdGhpcyBhbiBYUG9pbnRlciBjb250ZXh0PworICAgIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JaGVyZQk6IGZvciBoZXJlKCkKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CW9yaWdpbgk6IGZvciBvcmlnaW4oKSB0aGUgc2V0IG9mIG5hbWVzcGFjZSBkZWNsYQorICAgIDxhIGhyZWY9ImxpYnhtbC1oYXNoLmh0bWwjeG1sSGFzaFRhYmxlUHRyIj54bWxIYXNoVGFibGVQdHI8L2E+CW5zSGFzaAk6IFRoZSBuYW1lc3BhY2VzIGhhc2ggdGFibGUKKyAgICA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmM8L2E+CXZhckxvb2t1cEZ1bmMJOiB2YXJpYWJsZSBsb29rdXAgZnVuYworICAgIHZvaWQgKgl2YXJMb29rdXBEYXRhCTogdmFyaWFibGUgbG9va3VwIGRhdGEgUG9zc2liaWxpdHkgdG8gbGluCisgICAgdm9pZCAqCWV4dHJhCTogbmVlZGVkIGZvciBYU0xUIFRoZSBmdW5jdGlvbiBuYW1lIGFuZCBVCisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJZnVuY3Rpb24KKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglmdW5jdGlvblVSSQk6IGZ1bmN0aW9uIGxvb2t1cCBmdW5jdGlvbiBhbmQgZGF0YQorICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMiPnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmM8L2E+CWZ1bmNMb29rdXBGdW5jCTogZnVuY3Rpb24gbG9va3VwIGZ1bmMKKyAgICB2b2lkICoJZnVuY0xvb2t1cERhdGEJOiBmdW5jdGlvbiBsb29rdXAgZGF0YSB0ZW1wb3JhcnkgbmFtZXNwYWMKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gKgl0bXBOc0xpc3QJOiBBcnJheSBvZiBuYW1lc3BhY2VzCisgICAgaW50CXRtcE5zTnIJOiBudW1iZXIgb2YgbmFtZXNwYWNlcyBpbiBzY29wZSBlcnJvciByZXAKKyAgICB2b2lkICoJdXNlckRhdGEJOiB1c2VyIHNwZWNpZmljIGRhdGEgYmxvY2sKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sZXJyb3IuaHRtbCN4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIj54bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9hPgllcnJvcgk6IHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIGVycm9ycworICAgIDxhIGhyZWY9ImxpYnhtbC14bWxlcnJvci5odG1sI3htbEVycm9yIj54bWxFcnJvcjwvYT4JbGFzdEVycm9yCTogdGhlIGxhc3QgZXJyb3IKKyAgICA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CWRlYnVnTm9kZQk6IHRoZSBzb3VyY2Ugbm9kZSBYU0xUIGRpY3Rpb25hcnkKKyAgICA8YSBocmVmPSJsaWJ4bWwtZGljdC5odG1sI3htbERpY3RQdHIiPnhtbERpY3RQdHI8L2E+CWRpY3QJOiBkaWN0aW9uYXJ5IGlmIGFueQorICAgIGludAlmbGFncwk6IGZsYWdzIHRvIGNvbnRyb2wgY29tcGlsYXRpb24gQ2FjaGUgZm9yCisgICAgdm9pZCAqCWNhY2hlCit9PC9wcmU+PGgzPkVudW0gPGEgbmFtZT0ieG1sWFBhdGhFcnJvciIgaWQ9InhtbFhQYXRoRXJyb3IiPnhtbFhQYXRoRXJyb3I8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RW51bSB4bWxYUGF0aEVycm9yIHsKKyAgICA8YSBuYW1lPSJYUEFUSF9FWFBSRVNTSU9OX09LIiBpZD0iWFBBVEhfRVhQUkVTU0lPTl9PSyI+WFBBVEhfRVhQUkVTU0lPTl9PSzwvYT4gPSAwCisgICAgPGEgbmFtZT0iWFBBVEhfTlVNQkVSX0VSUk9SIiBpZD0iWFBBVEhfTlVNQkVSX0VSUk9SIj5YUEFUSF9OVU1CRVJfRVJST1I8L2E+ID0gMQorICAgIDxhIG5hbWU9IlhQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiIgaWQ9IlhQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUiI+WFBBVEhfVU5GSU5JU0hFRF9MSVRFUkFMX0VSUk9SPC9hPiA9IDIKKyAgICA8YSBuYW1lPSJYUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SIiBpZD0iWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiI+WFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUjwvYT4gPSAzCisgICAgPGEgbmFtZT0iWFBBVEhfVkFSSUFCTEVfUkVGX0VSUk9SIiBpZD0iWFBBVEhfVkFSSUFCTEVfUkVGX0VSUk9SIj5YUEFUSF9WQVJJQUJMRV9SRUZfRVJST1I8L2E+ID0gNAorICAgIDxhIG5hbWU9IlhQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SIiBpZD0iWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IiPlhQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SPC9hPiA9IDUKKyAgICA8YSBuYW1lPSJYUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUiIgaWQ9IlhQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SIj5YUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUjwvYT4gPSA2CisgICAgPGEgbmFtZT0iWFBBVEhfRVhQUl9FUlJPUiIgaWQ9IlhQQVRIX0VYUFJfRVJST1IiPlhQQVRIX0VYUFJfRVJST1I8L2E+ID0gNworICAgIDxhIG5hbWU9IlhQQVRIX1VOQ0xPU0VEX0VSUk9SIiBpZD0iWFBBVEhfVU5DTE9TRURfRVJST1IiPlhQQVRIX1VOQ0xPU0VEX0VSUk9SPC9hPiA9IDgKKyAgICA8YSBuYW1lPSJYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiIGlkPSJYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IiPlhQQVRIX1VOS05PV05fRlVOQ19FUlJPUjwvYT4gPSA5CisgICAgPGEgbmFtZT0iWFBBVEhfSU5WQUxJRF9PUEVSQU5EIiBpZD0iWFBBVEhfSU5WQUxJRF9PUEVSQU5EIj5YUEFUSF9JTlZBTElEX09QRVJBTkQ8L2E+ID0gMTAKKyAgICA8YSBuYW1lPSJYUEFUSF9JTlZBTElEX1RZUEUiIGlkPSJYUEFUSF9JTlZBTElEX1RZUEUiPlhQQVRIX0lOVkFMSURfVFlQRTwvYT4gPSAxMQorICAgIDxhIG5hbWU9IlhQQVRIX0lOVkFMSURfQVJJVFkiIGlkPSJYUEFUSF9JTlZBTElEX0FSSVRZIj5YUEFUSF9JTlZBTElEX0FSSVRZPC9hPiA9IDEyCisgICAgPGEgbmFtZT0iWFBBVEhfSU5WQUxJRF9DVFhUX1NJWkUiIGlkPSJYUEFUSF9JTlZBTElEX0NUWFRfU0laRSI+WFBBVEhfSU5WQUxJRF9DVFhUX1NJWkU8L2E+ID0gMTMKKyAgICA8YSBuYW1lPSJYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iIGlkPSJYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04iPlhQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTjwvYT4gPSAxNAorICAgIDxhIG5hbWU9IlhQQVRIX01FTU9SWV9FUlJPUiIgaWQ9IlhQQVRIX01FTU9SWV9FUlJPUiI+WFBBVEhfTUVNT1JZX0VSUk9SPC9hPiA9IDE1CisgICAgPGEgbmFtZT0iWFBUUl9TWU5UQVhfRVJST1IiIGlkPSJYUFRSX1NZTlRBWF9FUlJPUiI+WFBUUl9TWU5UQVhfRVJST1I8L2E+ID0gMTYKKyAgICA8YSBuYW1lPSJYUFRSX1JFU09VUkNFX0VSUk9SIiBpZD0iWFBUUl9SRVNPVVJDRV9FUlJPUiI+WFBUUl9SRVNPVVJDRV9FUlJPUjwvYT4gPSAxNworICAgIDxhIG5hbWU9IlhQVFJfU1VCX1JFU09VUkNFX0VSUk9SIiBpZD0iWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1IiPlhQVFJfU1VCX1JFU09VUkNFX0VSUk9SPC9hPiA9IDE4CisgICAgPGEgbmFtZT0iWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SIiBpZD0iWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SIj5YUEFUSF9VTkRFRl9QUkVGSVhfRVJST1I8L2E+ID0gMTkKKyAgICA8YSBuYW1lPSJYUEFUSF9FTkNPRElOR19FUlJPUiIgaWQ9IlhQQVRIX0VOQ09ESU5HX0VSUk9SIj5YUEFUSF9FTkNPRElOR19FUlJPUjwvYT4gPSAyMAorICAgIDxhIG5hbWU9IlhQQVRIX0lOVkFMSURfQ0hBUl9FUlJPUiIgaWQ9IlhQQVRIX0lOVkFMSURfQ0hBUl9FUlJPUiI+WFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SPC9hPiA9IDIxCisgICAgPGEgbmFtZT0iWFBBVEhfSU5WQUxJRF9DVFhUIiBpZD0iWFBBVEhfSU5WQUxJRF9DVFhUIj5YUEFUSF9JTlZBTElEX0NUWFQ8L2E+ID0gMjIKK30KKzwvcHJlPjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZ1bmN0IiBpZD0ieG1sWFBhdGhGdW5jdCI+U3RydWN0dXJlIHhtbFhQYXRoRnVuY3Q8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFhQYXRoRnVuY3Q8YnIgLz5zdHJ1Y3QgX3htbFhQYXRoRnVuY3QgeworICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCW5hbWUJOiB0aGUgZnVuY3Rpb24gbmFtZQorICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRXZhbEZ1bmMiPnhtbFhQYXRoRXZhbEZ1bmM8L2E+CWZ1bmMJOiB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbgorfTwvcHJlPjxoMz48YSBuYW1lPSJ4bWxYUGF0aE9iamVjdCIgaWQ9InhtbFhQYXRoT2JqZWN0Ij5TdHJ1Y3R1cmUgeG1sWFBhdGhPYmplY3Q8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFhQYXRoT2JqZWN0PGJyIC8+c3RydWN0IF94bWxYUGF0aE9iamVjdCB7CisgICAgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RUeXBlIj54bWxYUGF0aE9iamVjdFR5cGU8L2E+CXR5cGUKKyAgICA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPglub2Rlc2V0dmFsCisgICAgaW50CWJvb2x2YWwKKyAgICBkb3VibGUJZmxvYXR2YWwKKyAgICA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKglzdHJpbmd2YWwKKyAgICB2b2lkICoJdXNlcgorICAgIGludAlpbmRleAorICAgIHZvaWQgKgl1c2VyMgorICAgIGludAlpbmRleDIKK308L3ByZT48aDM+RW51bSA8YSBuYW1lPSJ4bWxYUGF0aE9iamVjdFR5cGUiIGlkPSJ4bWxYUGF0aE9iamVjdFR5cGUiPnhtbFhQYXRoT2JqZWN0VHlwZTwvYT48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5FbnVtIHhtbFhQYXRoT2JqZWN0VHlwZSB7CisgICAgPGEgbmFtZT0iWFBBVEhfVU5ERUZJTkVEIiBpZD0iWFBBVEhfVU5ERUZJTkVEIj5YUEFUSF9VTkRFRklORUQ8L2E+ID0gMAorICAgIDxhIG5hbWU9IlhQQVRIX05PREVTRVQiIGlkPSJYUEFUSF9OT0RFU0VUIj5YUEFUSF9OT0RFU0VUPC9hPiA9IDEKKyAgICA8YSBuYW1lPSJYUEFUSF9CT09MRUFOIiBpZD0iWFBBVEhfQk9PTEVBTiI+WFBBVEhfQk9PTEVBTjwvYT4gPSAyCisgICAgPGEgbmFtZT0iWFBBVEhfTlVNQkVSIiBpZD0iWFBBVEhfTlVNQkVSIj5YUEFUSF9OVU1CRVI8L2E+ID0gMworICAgIDxhIG5hbWU9IlhQQVRIX1NUUklORyIgaWQ9IlhQQVRIX1NUUklORyI+WFBBVEhfU1RSSU5HPC9hPiA9IDQKKyAgICA8YSBuYW1lPSJYUEFUSF9QT0lOVCIgaWQ9IlhQQVRIX1BPSU5UIj5YUEFUSF9QT0lOVDwvYT4gPSA1CisgICAgPGEgbmFtZT0iWFBBVEhfUkFOR0UiIGlkPSJYUEFUSF9SQU5HRSI+WFBBVEhfUkFOR0U8L2E+ID0gNgorICAgIDxhIG5hbWU9IlhQQVRIX0xPQ0FUSU9OU0VUIiBpZD0iWFBBVEhfTE9DQVRJT05TRVQiPlhQQVRIX0xPQ0FUSU9OU0VUPC9hPiA9IDcKKyAgICA8YSBuYW1lPSJYUEFUSF9VU0VSUyIgaWQ9IlhQQVRIX1VTRVJTIj5YUEFUSF9VU0VSUzwvYT4gPSA4CisgICAgPGEgbmFtZT0iWFBBVEhfWFNMVF9UUkVFIiBpZD0iWFBBVEhfWFNMVF9UUkVFIj5YUEFUSF9YU0xUX1RSRUU8L2E+ID0gOSA6IEFuIFhTTFQgdmFsdWUgdHJlZSwgbm9uIG1vZGlmaWFibGUKK30KKzwvcHJlPjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBhcnNlckNvbnRleHQiIGlkPSJ4bWxYUGF0aFBhcnNlckNvbnRleHQiPlN0cnVjdHVyZSB4bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbFhQYXRoUGFyc2VyQ29udGV4dDxiciAvPnN0cnVjdCBfeG1sWFBhdGhQYXJzZXJDb250ZXh0IHsKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgljdXIJOiB0aGUgY3VycmVudCBjaGFyIGJlaW5nIHBhcnNlZAorICAgIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCWJhc2UJOiB0aGUgZnVsbCBleHByZXNzaW9uCisgICAgaW50CWVycm9yCTogZXJyb3IgY29kZQorICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPgljb250ZXh0CTogdGhlIGV2YWx1YXRpb24gY29udGV4dAorICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JdmFsdWUJOiB0aGUgY3VycmVudCB2YWx1ZQorICAgIGludAl2YWx1ZU5yCTogbnVtYmVyIG9mIHZhbHVlcyBzdGFja2VkCisgICAgaW50CXZhbHVlTWF4CTogbWF4IG51bWJlciBvZiB2YWx1ZXMgc3RhY2tlZAorICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gKgl2YWx1ZVRhYgk6IHN0YWNrIG9mIHZhbHVlcworICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+CWNvbXAJOiB0aGUgcHJlY29tcGlsZWQgZXhwcmVzc2lvbgorICAgIGludAl4cHRyCTogaXQgdGhpcyBhbiBYUG9pbnRlciBleHByZXNzaW9uCisgICAgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPglhbmNlc3Rvcgk6IHVzZWQgZm9yIHdhbGtpbmcgcHJlY2VkaW5nIGF4aXMKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sWFBhdGhUeXBlIiBpZD0ieG1sWFBhdGhUeXBlIj5TdHJ1Y3R1cmUgeG1sWFBhdGhUeXBlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxYUGF0aFR5cGU8YnIgLz5zdHJ1Y3QgX3htbFhQYXRoVHlwZSB7CisgICAgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJbmFtZQk6IHRoZSB0eXBlIG5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnZlcnRGdW5jIj54bWxYUGF0aENvbnZlcnRGdW5jPC9hPglmdW5jCTogdGhlIGNvbnZlcnNpb24gZnVuY3Rpb24KK308L3ByZT48aDM+PGEgbmFtZT0ieG1sWFBhdGhWYXJpYWJsZSIgaWQ9InhtbFhQYXRoVmFyaWFibGUiPlN0cnVjdHVyZSB4bWxYUGF0aFZhcmlhYmxlPC9hPjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlN0cnVjdHVyZSB4bWxYUGF0aFZhcmlhYmxlPGJyIC8+c3RydWN0IF94bWxYUGF0aFZhcmlhYmxlIHsKKyAgICBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgluYW1lCTogdGhlIHZhcmlhYmxlIG5hbWUKKyAgICA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXZhbHVlCTogdGhlIHZhbHVlCit9PC9wcmU+PGgzPjxhIG5hbWU9InhtbFhQYXRoQXhpc0Z1bmMiIGlkPSJ4bWxYUGF0aEF4aXNGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sWFBhdGhBeGlzRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFhQYXRoQXhpc0Z1bmMKKzxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhBeGlzRnVuYwkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGN1cikKKzwvcHJlPjxwPkFuIGF4aXMgdHJhdmVyc2FsIGZ1bmN0aW9uLiBUbyB0cmF2ZXJzZSBhbiBheGlzLCB0aGUgZW5naW5lIGNhbGxzIHRoZSBmaXJzdCB0aW1lIHdpdGggY3VyID09IE5VTEwgYW5kIHJlcGVhdCB1bnRpbCB0aGUgZnVuY3Rpb24gcmV0dXJucyBOVUxMIGluZGljYXRpbmcgdGhlIGVuZCBvZiB0aGUgYXhpcyB0cmF2ZXJzYWwuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBpbnRlcnByZXRlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmV2aW91cyBub2RlIGJlaW5nIGV4cGxvcmVkIG9uIHRoYXQgYXhpczwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgbm9kZSBpbiB0aGF0IGF4aXMgb3IgTlVMTCBpZiBhdCB0aGUgZW5kIG9mIHRoZSBheGlzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyIiBpZD0ieG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmRvdWJsZQl4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIJKGludCB2YWwpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIGJvb2xlYW4gdG8gaXRzIG51bWJlciB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBib29sZWFuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nIiBpZD0ieG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZwkoaW50IHZhbCk8YnIgLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGEgYm9vbGVhbiB0byBpdHMgc3RyaW5nIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBib29sZWFuPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbiIgaWQ9InhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBucyk8YnIgLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGEgbm9kZS1zZXQgdG8gaXRzIGJvb2xlYW4gdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJvb2xlYW4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiIGlkPSJ4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCXhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbnMpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIG5vZGUtc2V0IHRvIGl0cyBudW1iZXIgdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciB2YWx1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZyIgaWQ9InhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5zKTxiciAvPgorPC9wcmU+PHA+Q29udmVydHMgYSBub2RlLXNldCB0byBpdHMgc3RyaW5nIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyIiBpZD0ieG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdE5vZGVUb051bWJlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmRvdWJsZQl4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXIJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGEgbm9kZSB0byBpdHMgbnVtYmVyIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nIiBpZD0ieG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBub2RlKTxiciAvPgorPC9wcmU+PHA+Q29udmVydHMgYSBub2RlIHRvIGl0cyBzdHJpbmcgdmFsdWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIiBpZD0ieG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4JKGRvdWJsZSB2YWwpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIG51bWJlciB0byBpdHMgYm9vbGVhbiB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBudW1iZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBib29sZWFuIHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmciIGlkPSJ4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nCShkb3VibGUgdmFsKTxiciAvPgorPC9wcmU+PHA+Q29udmVydHMgYSBudW1iZXIgdG8gaXRzIHN0cmluZyB2YWx1ZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbnVtYmVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuIiBpZD0ieG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbCk8YnIgLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGEgc3RyaW5nIHRvIGl0cyBib29sZWFuIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJvb2xlYW4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlciIgaWQ9InhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCXhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0cyBhIHN0cmluZyB0byBpdHMgbnVtYmVyIHZhbHVlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciB2YWx1ZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ2FzdFRvQm9vbGVhbiIgaWQ9InhtbFhQYXRoQ2FzdFRvQm9vbGVhbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aENhc3RUb0Jvb2xlYW48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhDYXN0VG9Cb29sZWFuCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0cyBhbiBYUGF0aCBvYmplY3QgdG8gaXRzIGJvb2xlYW4gdmFsdWU8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIG9iamVjdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGJvb2xlYW4gdmFsdWU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aENhc3RUb051bWJlciIgaWQ9InhtbFhQYXRoQ2FzdFRvTnVtYmVyIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ2FzdFRvTnVtYmVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+ZG91YmxlCXhtbFhQYXRoQ2FzdFRvTnVtYmVyCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0cyBhbiBYUGF0aCBvYmplY3QgdG8gaXRzIG51bWJlciB2YWx1ZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggb2JqZWN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIHZhbHVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDYXN0VG9TdHJpbmciIGlkPSJ4bWxYUGF0aENhc3RUb1N0cmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aENhc3RUb1N0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCXhtbFhQYXRoQ2FzdFRvU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8YnIgLz4KKzwvcHJlPjxwPkNvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgc3RyaW5nKCkgZXF1aXZhbGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggb2JqZWN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYWxsb2NhdGVkIHN0cmluZyB2YWx1ZSBvZiB0aGUgb2JqZWN0LCBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBzdHJpbmcgbWVtb3J5IHdpdGggeG1sRnJlZSgpLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ21wTm9kZXMiIGlkPSJ4bWxYUGF0aENtcE5vZGVzIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ21wTm9kZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhDbXBOb2RlcwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZTIpPGJyIC8+Cis8L3ByZT48cD5Db21wYXJlIHR3byBub2RlcyB3LnIudCBkb2N1bWVudCBvcmRlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGUxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3Qgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzZWNvbmQgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTIgaW4gY2FzZSBvZiBlcnJvciAxIGlmIGZpcnN0IHBvaW50ICZsdDsgc2Vjb25kIHBvaW50LCAwIGlmIGl0J3MgdGhlIHNhbWUgbm9kZSwgLTEgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb21waWxlIiBpZD0ieG1sWFBhdGhDb21waWxlIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ29tcGlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+CXhtbFhQYXRoQ29tcGlsZQkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxiciAvPgorPC9wcmU+PHA+Q29tcGlsZSBhbiBYUGF0aCBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+IHJlc3VsdGluZyBmcm9tIHRoZSBjb21waWxhdGlvbiBvciBOVUxMLiB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb21waWxlZEV2YWwiIGlkPSJ4bWxYUGF0aENvbXBpbGVkRXZhbCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aENvbXBpbGVkRXZhbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhDb21waWxlZEV2YWwJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+IGNvbXAsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4KTxiciAvPgorPC9wcmU+PHA+RXZhbHVhdGUgdGhlIFByZWNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGdpdmVuIGNvbnRleHQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHJlc3VsdGluZyBmcm9tIHRoZSBldmFsdWF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiIgaWQ9InhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkFwcGxpZXMgdGhlIFhQYXRoIGJvb2xlYW4oKSBmdW5jdGlvbiBvbiB0aGUgcmVzdWx0IG9mIHRoZSBnaXZlbiBjb21waWxlZCBleHByZXNzaW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjb21waWxlZCBYUGF0aCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgZXhwcmVzc2lvbiBldmFsdWF0ZWQgdG8gdHJ1ZSwgMCBpZiB0byBmYWxzZSBhbmQgLTEgaW4gQVBJIGFuZCBpbnRlcm5hbCBlcnJvcnMuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUiIGlkPSJ4bWxYUGF0aENvbnRleHRTZXRDYWNoZSI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aENvbnRleHRTZXRDYWNoZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aENvbnRleHRTZXRDYWNoZQkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgYWN0aXZlLCA8YnIgLz4JCQkJCSBpbnQgdmFsdWUsIDxiciAvPgkJCQkJIGludCBvcHRpb25zKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlcy9mcmVlcyBhbiBvYmplY3QgY2FjaGUgb24gdGhlIFhQYXRoIGNvbnRleHQuIElmIGFjdGl2YXRlcyBYUGF0aCBvYmplY3RzICh4bWxYUGF0aE9iamVjdCkgd2lsbCBiZSBjYWNoZWQgaW50ZXJuYWxseSB0byBiZSByZXVzZWQuIEBvcHRpb25zOiAwOiBUaGlzIHdpbGwgc2V0IHRoZSBYUGF0aCBvYmplY3QgY2FjaGluZzogQHZhbHVlOiBUaGlzIHdpbGwgc2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBYUGF0aCBvYmplY3RzIHRvIGJlIGNhY2hlZCBwZXIgc2xvdCBUaGVyZSBhcmUgNSBzbG90cyBmb3I6IG5vZGUtc2V0LCBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiwgYW5kIG1pc2Mgb2JqZWN0cy4gVXNlICZsdDswIGZvciB0aGUgZGVmYXVsdCBudW1iZXIgKDEwMCkuIE90aGVyIHZhbHVlcyBmb3IgQG9wdGlvbnMgaGF2ZSBjdXJyZW50bHkgbm8gZWZmZWN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5hY3RpdmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmVuYWJsZXMvZGlzYWJsZXMgKGNyZWF0ZXMvZnJlZXMpIHRoZSBjYWNoZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgdmFsdWUgd2l0aCBzZW1hbnRpY3MgZGVwZW5kYW50IG9uIEBvcHRpb25zPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vcHRpb25zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5vcHRpb25zIChjdXJyZW50bHkgb25seSB0aGUgdmFsdWUgMCBpcyB1c2VkKTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MCBpZiB0aGUgc2V0dGluZyBzdWNjZWVkZWQsIGFuZCAtMSBvbiBBUEkgb3IgaW50ZXJuYWwgZXJyb3JzLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ29udmVydEJvb2xlYW4iIGlkPSJ4bWxYUGF0aENvbnZlcnRCb29sZWFuIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ29udmVydEJvb2xlYW48L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoQ29udmVydEJvb2xlYW4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+Q29udmVydHMgYW4gZXhpc3Rpbmcgb2JqZWN0IHRvIGl0cyBib29sZWFuKCkgZXF1aXZhbGVudDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggb2JqZWN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3IG9iamVjdCwgdGhlIG9sZCBvbmUgaXMgZnJlZWQgKG9yIHRoZSBvcGVyYXRpb24gaXMgZG9uZSBkaXJlY3RseSBvbiBAdmFsKTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ29udmVydEZ1bmMiIGlkPSJ4bWxYUGF0aENvbnZlcnRGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sWFBhdGhDb252ZXJ0RnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFhQYXRoQ29udmVydEZ1bmMKK2ludAl4bWxYUGF0aENvbnZlcnRGdW5jCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmosIDxiciAvPgkJCQkJIGludCB0eXBlKQorPC9wcmU+PHA+QSBjb252ZXJzaW9uIGZ1bmN0aW9uIGlzIGFzc29jaWF0ZWQgdG8gYSB0eXBlIGFuZCB1c2VkIHRvIGNhc3QgdGhlIG5ldyB0eXBlIHRvIHByaW1pdGl2ZSB2YWx1ZXMuPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9iajwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggb2JqZWN0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD50eXBlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIHRoZSB0YXJnZXQgdHlwZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+LTEgaW4gY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoQ29udmVydE51bWJlciIgaWQ9InhtbFhQYXRoQ29udmVydE51bWJlciI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aENvbnZlcnROdW1iZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoQ29udmVydE51bWJlcgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5Db252ZXJ0cyBhbiBleGlzdGluZyBvYmplY3QgdG8gaXRzIG51bWJlcigpIGVxdWl2YWxlbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIG9iamVjdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ldyBvYmplY3QsIHRoZSBvbGQgb25lIGlzIGZyZWVkIChvciB0aGUgb3BlcmF0aW9uIGlzIGRvbmUgZGlyZWN0bHkgb24gQHZhbCk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbnZlcnRTdHJpbmciIGlkPSJ4bWxYUGF0aENvbnZlcnRTdHJpbmciPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhDb252ZXJ0U3RyaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aENvbnZlcnRTdHJpbmcJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+Q29udmVydHMgYW4gZXhpc3Rpbmcgb2JqZWN0IHRvIGl0cyBzdHJpbmcoKSBlcXVpdmFsZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbiBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDdHh0Q29tcGlsZSIgaWQ9InhtbFhQYXRoQ3R4dENvbXBpbGUiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhDdHh0Q29tcGlsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+CXhtbFhQYXRoQ3R4dENvbXBpbGUJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTxiciAvPgorPC9wcmU+PHA+Q29tcGlsZSBhbiBYUGF0aCBleHByZXNzaW9uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+IHJlc3VsdGluZyBmcm9tIHRoZSBjb21waWxhdGlvbiBvciBOVUxMLiB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhFdmFsIiBpZD0ieG1sWFBhdGhFdmFsIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoRXZhbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhFdmFsCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHgpPGJyIC8+Cis8L3ByZT48cD5FdmFsdWF0ZSB0aGUgWFBhdGggTG9jYXRpb24gUGF0aCBpbiB0aGUgZ2l2ZW4gY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiByZXN1bHRpbmcgZnJvbSB0aGUgZXZhbHVhdGlvbiBvciBOVUxMLiB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhFdmFsRXhwcmVzc2lvbiIgaWQ9InhtbFhQYXRoRXZhbEV4cHJlc3Npb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhFdmFsRXhwcmVzc2lvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhFdmFsRXhwcmVzc2lvbgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5FdmFsdWF0ZSB0aGUgWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgZ2l2ZW4gY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gcmVzdWx0aW5nIGZyb20gdGhlIGV2YWx1YXRpb24gb3IgTlVMTC4gdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRXZhbEZ1bmMiIGlkPSJ4bWxYUGF0aEV2YWxGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sWFBhdGhFdmFsRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFhQYXRoRXZhbEZ1bmMKK3ZvaWQJeG1sWFBhdGhFdmFsRnVuYwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpCis8L3ByZT48cD5BbiBYUGF0aCBldmFsdWF0aW9uIGZ1bmN0aW9uLCB0aGUgcGFyYW1ldGVycyBhcmUgb24gdGhlIFhQYXRoIGNvbnRleHQgc3RhY2suPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhFdmFsUHJlZGljYXRlIiBpZD0ieG1sWFBhdGhFdmFsUHJlZGljYXRlIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoRXZhbFByZWRpY2F0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aEV2YWxQcmVkaWNhdGUJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiByZXMpPGJyIC8+Cis8L3ByZT48cD5FdmFsdWF0ZSBhIHByZWRpY2F0ZSByZXN1bHQgZm9yIHRoZSBjdXJyZW50IG5vZGUuIEEgUHJlZGljYXRlRXhwciBpcyBldmFsdWF0ZWQgYnkgZXZhbHVhdGluZyB0aGUgRXhwciBhbmQgY29udmVydGluZyB0aGUgcmVzdWx0IHRvIGEgYm9vbGVhbi4gSWYgdGhlIHJlc3VsdCBpcyBhIG51bWJlciwgdGhlIHJlc3VsdCB3aWxsIGJlIGNvbnZlcnRlZCB0byB0cnVlIGlmIHRoZSBudW1iZXIgaXMgZXF1YWwgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gdGhlIGNvbnRleHQgbm9kZSBsaXN0IChhcyByZXR1cm5lZCBieSB0aGUgcG9zaXRpb24gZnVuY3Rpb24pIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBmYWxzZSBvdGhlcndpc2U7IGlmIHRoZSByZXN1bHQgaXMgbm90IGEgbnVtYmVyLCB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZSBjb252ZXJ0ZWQgYXMgaWYgYnkgYSBjYWxsIHRvIHRoZSBib29sZWFuIGZ1bmN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQcmVkaWNhdGUgRXhwcmVzc2lvbiBldmFsdWF0aW9uIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBwcmVkaWNhdGUgaXMgdHJ1ZSwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZyZWVDb21wRXhwciIgaWQ9InhtbFhQYXRoRnJlZUNvbXBFeHByIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoRnJlZUNvbXBFeHByPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEZyZWVDb21wRXhwcgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29tcEV4cHJQdHIiPnhtbFhQYXRoQ29tcEV4cHJQdHI8L2E+IGNvbXApPGJyIC8+Cis8L3ByZT48cD5GcmVlIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IEBjb21wPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y29tcDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBBVEggY29tcDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnJlZUNvbnRleHQiIGlkPSJ4bWxYUGF0aEZyZWVDb250ZXh0Ij48L2E+RnVuY3Rpb246IHhtbFhQYXRoRnJlZUNvbnRleHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZUNvbnRleHQJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdXAgYW4gPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGNvbnRleHQgdG8gZnJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnJlZU5vZGVTZXQiIGlkPSJ4bWxYUGF0aEZyZWVOb2RlU2V0Ij48L2E+RnVuY3Rpb246IHhtbFhQYXRoRnJlZU5vZGVTZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZU5vZGVTZXQJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBvYmopPGJyIC8+Cis8L3ByZT48cD5GcmVlIHRoZSBOb2RlU2V0IGNvbXBvdW5kIChub3QgdGhlIGFjdHVhbCBub2RlcyAhKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vYmo8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhGcmVlTm9kZVNldExpc3QiIGlkPSJ4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhGcmVlTm9kZVNldExpc3QJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9iaik8YnIgLz4KKzwvcHJlPjxwPkZyZWUgdXAgdGhlIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gQG9iaiBidXQgZG9uJ3QgZGVhbGxvY2F0ZSB0aGUgb2JqZWN0cyBpbiB0aGUgbGlzdCBjb250cmFyeSB0byB4bWxYUGF0aEZyZWVPYmplY3QoKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vYmo8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGV4aXN0aW5nIE5vZGVTZXRMaXN0IG9iamVjdDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnJlZU9iamVjdCIgaWQ9InhtbFhQYXRoRnJlZU9iamVjdCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEZyZWVPYmplY3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZU9iamVjdAkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2JqKTxiciAvPgorPC9wcmU+PHA+RnJlZSB1cCBhbiA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9iamVjdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vYmo8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvYmplY3QgdG8gZnJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnVuY0xvb2t1cEZ1bmMiIGlkPSJ4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIj48L2E+RnVuY3Rpb24gdHlwZTogeG1sWFBhdGhGdW5jTG9va3VwRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFhQYXRoRnVuY0xvb2t1cEZ1bmMKKzxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+CXhtbFhQYXRoRnVuY0xvb2t1cEZ1bmMJKHZvaWQgKiBjdHh0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSkKKzwvcHJlPjxwPlByb3RvdHlwZSBmb3IgY2FsbGJhY2tzIHVzZWQgdG8gcGx1ZyBmdW5jdGlvbiBsb29rdXAgaW4gdGhlIFhQYXRoIGVuZ2luZS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZSBvZiB0aGUgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zX3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lIGhvc3RpbmcgdGhpcyBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGZ1bmN0aW9uIG9yIE5VTEwgaWYgbm90IGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGJyIC8+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhGdW5jdGlvbiIgaWQ9InhtbFhQYXRoRnVuY3Rpb24iPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxYUGF0aEZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+RnVuY3Rpb24gdHlwZTogeG1sWFBhdGhGdW5jdGlvbgordm9pZAl4bWxYUGF0aEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncykKKzwvcHJlPjxwPkFuIFhQYXRoIGZ1bmN0aW9uLiBUaGUgYXJndW1lbnRzIChpZiBhbnkpIGFyZSBwb3BwZWQgb3V0IGZyb20gdGhlIGNvbnRleHQgc3RhY2sgYW5kIHRoZSByZXN1bHQgaXMgcHVzaGVkIG9uIHRoZSBzdGFjay48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGludGVycHJlc3RhdGlvbiBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoSW5pdCIgaWQ9InhtbFhQYXRoSW5pdCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEluaXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoSW5pdAkJCSh2b2lkKTxiciAvPgorPC9wcmU+PHA+SW5pdGlhbGl6ZSB0aGUgWFBhdGggZW52aXJvbm1lbnQ8L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhJc0luZiIgaWQ9InhtbFhQYXRoSXNJbmYiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhJc0luZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aElzSW5mCQkJKGRvdWJsZSB2YWwpPGJyIC8+Cis8L3ByZT48cD5Qcm92aWRlcyBhIHBvcnRhYmxlIGlzaW5mKCkgZnVuY3Rpb24gdG8gZGV0ZWN0IHdoZXRoZXIgYSBkb3VibGUgaXMgYSArSW5maW5pdGUgb3IgLUluZmluaXRlLiBCYXNlZCBvbiB0cmlvIGNvZGUgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9jdHJpby88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgZG91YmxlIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4xIHZpIHRoZSB2YWx1ZSBpcyArSW5maW5pdGUsIC0xIGlmIC1JbmZpbml0ZSwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aElzTmFOIiBpZD0ieG1sWFBhdGhJc05hTiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aElzTmFOPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoSXNOYU4JCQkoZG91YmxlIHZhbCk8YnIgLz4KKzwvcHJlPjxwPlByb3ZpZGVzIGEgcG9ydGFibGUgaXNuYW4oKSBmdW5jdGlvbiB0byBkZXRlY3Qgd2hldGhlciBhIGRvdWJsZSBpcyBhIE5vdGFOdW1iZXIuIEJhc2VkIG9uIHRyaW8gY29kZSBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2N0cmlvLzwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBkb3VibGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjEgaWYgdGhlIHZhbHVlIGlzIGEgTmFOLCAwIG90aGVyd2lzZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV3Q29udGV4dCIgaWQ9InhtbFhQYXRoTmV3Q29udGV4dCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5ld0NvbnRleHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4JeG1sWFBhdGhOZXdDb250ZXh0CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZG9jPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWE1MIGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0Ij54bWxYUGF0aENvbnRleHQ8L2E+IGp1c3QgYWxsb2NhdGVkLiBUaGUgY2FsbGVyIHdpbGwgbmVlZCB0byBmcmVlIGl0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVNldENyZWF0ZSIgaWQ9InhtbFhQYXRoTm9kZVNldENyZWF0ZSI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vZGVTZXRDcmVhdGU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aE5vZGVTZXRDcmVhdGUJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG9mIHR5cGUgZG91YmxlIGFuZCBvZiB2YWx1ZSBAdmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbml0aWFsIHhtbE5vZGVQdHIsIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE9iamVjdENvcHkiIGlkPSJ4bWxYUGF0aE9iamVjdENvcHkiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhPYmplY3RDb3B5PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE9iamVjdENvcHkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+YWxsb2NhdGUgYSBuZXcgY29weSBvZiBhIGdpdmVuIG9iamVjdDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG9yaWdpbmFsIG9iamVjdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoT3JkZXJEb2NFbGVtcyIgaWQ9InhtbFhQYXRoT3JkZXJEb2NFbGVtcyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE9yZGVyRG9jRWxlbXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5sb25nCXhtbFhQYXRoT3JkZXJEb2NFbGVtcwkJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sRG9jUHRyIj54bWxEb2NQdHI8L2E+IGRvYyk8YnIgLz4KKzwvcHJlPjxwPkNhbGwgdGhpcyByb3V0aW5lIHRvIHNwZWVkIHVwIFhQYXRoIGNvbXB1dGF0aW9uIG9uIHN0YXRpYyBkb2N1bWVudHMuIFRoaXMgc3RhbXBzIGFsbCB0aGUgZWxlbWVudCBub2RlcyB3aXRoIHRoZSBkb2N1bWVudCBvcmRlciBMaWtlIGZvciBsaW5lIGluZm9ybWF0aW9uLCB0aGUgb3JkZXIgaXMga2VwdCBpbiB0aGUgZWxlbWVudC0mZ3Q7Y29udGVudCBmaWVsZCwgdGhlIHZhbHVlIHN0b3JlZCBpcyBhY3R1YWxseSAtIHRoZSBub2RlIG51bWJlciAoc3RhcnRpbmcgYXQgLTEpIHRvIGJlIGFibGUgdG8gZGlmZmVyZW50aWF0ZSBmcm9tIGxpbmUgbnVtYmVycy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kb2M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIGlucHV0IGRvY3VtZW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGZvdW5kIGluIHRoZSBkb2N1bWVudCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIiBpZD0ieG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMiPjwvYT5GdW5jdGlvbiB0eXBlOiB4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPkZ1bmN0aW9uIHR5cGU6IHhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jCis8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jCSh2b2lkICogY3R4dCwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5zX3VyaSkKKzwvcHJlPjxwPlByb3RvdHlwZSBmb3IgY2FsbGJhY2tzIHVzZWQgdG8gcGx1ZyB2YXJpYWJsZSBsb29rdXAgaW4gdGhlIFhQYXRoIGVuZ2luZS48L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bmFtZSBvZiB0aGUgdmFyaWFibGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zX3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lIGhvc3RpbmcgdGhpcyB2YXJpYWJsZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIG9iamVjdCB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxiciAvPgorPHA+PGEgaHJlZj0iLi4vYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9odG1sL2xpYnhtbC14cGF0aEludGVybmFscy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzc3ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbApAQCAtMCwwICsxLDM5NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHhwYXRoSW50ZXJuYWxzIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeHBhdGhJbnRlcm5hbHMgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCI+eHBhdGg8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PHRoIGFsaWduPSJyaWdodCI+PGEgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwiPnhwb2ludGVyPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwiPjxpbWcgc3JjPSJyaWdodC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiIC8+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxwPmludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uIHVzZWQgdG8gYnVpbGQgbmV3IG1vZHVsZXMgb24gdG9wIG9mIFhQYXRoIGxpa2UgWFBvaW50ZXIgYW5kIFhTTFQgPC9wPjxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0NBU1RfVE9fQk9PTEVBTiI+Q0FTVF9UT19CT09MRUFOPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNDQVNUX1RPX05VTUJFUiI+Q0FTVF9UT19OVU1CRVI8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0NBU1RfVE9fU1RSSU5HIj5DQVNUX1RPX1NUUklORzwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjQ0hFQ0tfQVJJVFkiPkNIRUNLX0FSSVRZPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNDSEVDS19FUlJPUiI+Q0hFQ0tfRVJST1I8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI0NIRUNLX0VSUk9SMCI+Q0hFQ0tfRVJST1IwPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNDSEVDS19UWVBFIj5DSEVDS19UWVBFPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiNDSEVDS19UWVBFMCI+Q0hFQ0tfVFlQRTA8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI1hQX0VSUk9SIj5YUF9FUlJPUjwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjWFBfRVJST1IwIj5YUF9FUlJPUjA8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoQ2hlY2tFcnJvciI+eG1sWFBhdGhDaGVja0Vycm9yPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aEVtcHR5Tm9kZVNldCI+eG1sWFBhdGhFbXB0eU5vZGVTZXQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoR2V0Q29udGV4dE5vZGUiPnhtbFhQYXRoR2V0Q29udGV4dE5vZGU8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoR2V0RG9jdW1lbnQiPnhtbFhQYXRoR2V0RG9jdW1lbnQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoR2V0RXJyb3IiPnhtbFhQYXRoR2V0RXJyb3I8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuQm9vbGVhbiI+eG1sWFBhdGhSZXR1cm5Cb29sZWFuPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldCI+eG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQ8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmciPnhtbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmc8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuRXh0ZXJuYWwiPnhtbFhQYXRoUmV0dXJuRXh0ZXJuYWw8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuRmFsc2UiPnhtbFhQYXRoUmV0dXJuRmFsc2U8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuTm9kZVNldCI+eG1sWFBhdGhSZXR1cm5Ob2RlU2V0PC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFJldHVybk51bWJlciI+eG1sWFBhdGhSZXR1cm5OdW1iZXI8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoUmV0dXJuU3RyaW5nIj54bWxYUGF0aFJldHVyblN0cmluZzwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhSZXR1cm5UcnVlIj54bWxYUGF0aFJldHVyblRydWU8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoU2V0QXJpdHlFcnJvciI+eG1sWFBhdGhTZXRBcml0eUVycm9yPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFNldEVycm9yIj54bWxYUGF0aFNldEVycm9yPC9hPjwvcHJlPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4jZGVmaW5lIDxhIGhyZWY9IiN4bWxYUGF0aFNldFR5cGVFcnJvciI+eG1sWFBhdGhTZXRUeXBlRXJyb3I8L2E+PC9wcmU+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiNkZWZpbmUgPGEgaHJlZj0iI3htbFhQYXRoU3RhY2tJc0V4dGVybmFsIj54bWxYUGF0aFN0YWNrSXNFeHRlcm5hbDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+I2RlZmluZSA8YSBocmVmPSIjeG1sWFBhdGhTdGFja0lzTm9kZVNldCI+eG1sWFBhdGhTdGFja0lzTm9kZVNldDwvYT48L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjdmFsdWVQb3AiPnZhbHVlUG9wPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN2YWx1ZVB1c2giPnZhbHVlUHVzaDwvYT4JCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsdWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhBZGRWYWx1ZXMiPnhtbFhQYXRoQWRkVmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIj54bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIj54bWxYUGF0aENlaWxpbmdGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWFBhdGhDb21wYXJlVmFsdWVzIj54bWxYUGF0aENvbXBhcmVWYWx1ZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBpbmYsIDxiciAvPgkJCQkJIGludCBzdHJpY3QpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhDb25jYXRGdW5jdGlvbiI+eG1sWFBhdGhDb25jYXRGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbiI+eG1sWFBhdGhDb250YWluc0Z1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aENvdW50RnVuY3Rpb24iPnhtbFhQYXRoQ291bnRGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIiPnhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHI8L2E+CShGSUxFICogb3V0cHV0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QiPnhtbFhQYXRoRGVidWdEdW1wT2JqZWN0PC9hPgkJKEZJTEUgKiBvdXRwdXQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoRGlmZmVyZW5jZSI+eG1sWFBhdGhEaWZmZXJlbmNlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoRGlzdGluY3QiPnhtbFhQYXRoRGlzdGluY3Q8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2Rlcyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhEaXN0aW5jdFNvcnRlZCI+eG1sWFBhdGhEaXN0aW5jdFNvcnRlZDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoRGl2VmFsdWVzIj54bWxYUGF0aERpdlZhbHVlczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFhQYXRoRXF1YWxWYWx1ZXMiPnhtbFhQYXRoRXF1YWxWYWx1ZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhFcnIiPnhtbFhQYXRoRXJyPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IGVycm9yKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoRXZhbEV4cHIiPnhtbFhQYXRoRXZhbEV4cHI8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0Ij54bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gcmVzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoRmFsc2VGdW5jdGlvbiI+eG1sWFBhdGhGYWxzZUZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhGbG9vckZ1bmN0aW9uIj54bWxYUGF0aEZsb29yRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0Ij54bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoRnVuY3Rpb25Mb29rdXAiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXA8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoRnVuY3Rpb25Mb29rdXBOUyI+eG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmkpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aEhhc1NhbWVOb2RlcyI+eG1sWFBhdGhIYXNTYW1lTm9kZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhJZEZ1bmN0aW9uIj54bWxYUGF0aElkRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhJbnRlcnNlY3Rpb24iPnhtbFhQYXRoSW50ZXJzZWN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aElzTm9kZVR5cGUiPnhtbFhQYXRoSXNOb2RlVHlwZTwvYT4JCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTGFuZ0Z1bmN0aW9uIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTGFzdEZ1bmN0aW9uIj54bWxYUGF0aExhc3RGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aExlYWRpbmciPnhtbFhQYXRoTGVhZGluZzwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhMZWFkaW5nU29ydGVkIj54bWxYUGF0aExlYWRpbmdTb3J0ZWQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uIj54bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aE1vZFZhbHVlcyI+eG1sWFBhdGhNb2RWYWx1ZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhNdWx0VmFsdWVzIj54bWxYUGF0aE11bHRWYWx1ZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbiI+eG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXdCb29sZWFuIj54bWxYUGF0aE5ld0Jvb2xlYW48L2E+CShpbnQgdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV3Q1N0cmluZyI+eG1sWFBhdGhOZXdDU3RyaW5nPC9hPgkoY29uc3QgY2hhciAqIHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5ld0Zsb2F0Ij54bWxYUGF0aE5ld0Zsb2F0PC9hPgkoZG91YmxlIHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5ld05vZGVTZXQiPnhtbFhQYXRoTmV3Tm9kZVNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV3Tm9kZVNldExpc3QiPnhtbFhQYXRoTmV3Tm9kZVNldExpc3Q8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQiPnhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dDwvYT4JKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHN0ciwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5ld1N0cmluZyI+eG1sWFBhdGhOZXdTdHJpbmc8L2E+CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXdWYWx1ZVRyZWUiPnhtbFhQYXRoTmV3VmFsdWVUcmVlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0QW5jZXN0b3IiPnhtbFhQYXRoTmV4dEFuY2VzdG9yPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmIj54bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0QXR0cmlidXRlIj54bWxYUGF0aE5leHRBdHRyaWJ1dGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0Q2hpbGQiPnhtbFhQYXRoTmV4dENoaWxkPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTmV4dERlc2NlbmRhbnQiPnhtbFhQYXRoTmV4dERlc2NlbmRhbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiI+eG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0Rm9sbG93aW5nIj54bWxYUGF0aE5leHRGb2xsb3dpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0TmFtZXNwYWNlIj54bWxYUGF0aE5leHROYW1lc3BhY2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0UGFyZW50Ij54bWxYUGF0aE5leHRQYXJlbnQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0UHJlY2VkaW5nIj54bWxYUGF0aE5leHRQcmVjZWRpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyI+eG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOZXh0U2VsZiI+eG1sWFBhdGhOZXh0U2VsZjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOb2RlTGVhZGluZyI+eG1sWFBhdGhOb2RlTGVhZGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aE5vZGVTZXRBZGQiPnhtbFhQYXRoTm9kZVNldEFkZDwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEFkZE5zIj54bWxYUGF0aE5vZGVTZXRBZGROczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSI+eG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldENvbnRhaW5zIj54bWxYUGF0aE5vZGVTZXRDb250YWluczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldERlbCI+eG1sWFBhdGhOb2RlU2V0RGVsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhOb2RlU2V0RnJlZU5zIj54bWxYUGF0aE5vZGVTZXRGcmVlTnM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aE5vZGVTZXRNZXJnZSI+eG1sWFBhdGhOb2RlU2V0TWVyZ2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiB2YWwxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiB2YWwyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm9kZVNldFJlbW92ZSI+eG1sWFBhdGhOb2RlU2V0UmVtb3ZlPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgaW50IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aE5vZGVTZXRTb3J0Ij54bWxYUGF0aE5vZGVTZXRTb3J0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHNldCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOb2RlVHJhaWxpbmciPnhtbFhQYXRoTm9kZVRyYWlsaW5nPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiPnhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbiI+eG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIj54bWxYUGF0aE5vdEVxdWFsVmFsdWVzPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoTm90RnVuY3Rpb24iPnhtbFhQYXRoTm90RnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgk8YSBocmVmPSIjeG1sWFBhdGhOc0xvb2t1cCI+eG1sWFBhdGhOc0xvb2t1cDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBwcmVmaXgpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhOdW1iZXJGdW5jdGlvbiI+eG1sWFBhdGhOdW1iZXJGdW5jdGlvbjwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxYUGF0aFBhcnNlTkNOYW1lIj54bWxYUGF0aFBhcnNlTkNOYW1lPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJPGEgaHJlZj0iI3htbFhQYXRoUGFyc2VOYW1lIj54bWxYUGF0aFBhcnNlTmFtZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWFBhdGhQb3BCb29sZWFuIj54bWxYUGF0aFBvcEJvb2xlYW48L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAqCTxhIGhyZWY9IiN4bWxYUGF0aFBvcEV4dGVybmFsIj54bWxYUGF0aFBvcEV4dGVybmFsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFBvcE5vZGVTZXQiPnhtbFhQYXRoUG9wTm9kZVNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmRvdWJsZQk8YSBocmVmPSIjeG1sWFBhdGhQb3BOdW1iZXIiPnhtbFhQYXRoUG9wTnVtYmVyPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqCTxhIGhyZWY9IiN4bWxYUGF0aFBvcFN0cmluZyI+eG1sWFBhdGhQb3BTdHJpbmc8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24iPnhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucyI+eG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9uczwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAk8YSBocmVmPSIjeG1sWFBhdGhSZWdpc3RlckZ1bmMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPiBmKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwIj54bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIj54bWxYUGF0aEZ1bmNMb29rdXBGdW5jPC9hPiBmLCA8YnIgLz4JCQkJCSB2b2lkICogZnVuY0N0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIj54bWxYUGF0aFJlZ2lzdGVyRnVuY05TPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmksIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+IGYpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyTnMiPnhtbFhQYXRoUmVnaXN0ZXJOczwvYT4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmkpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUiPnhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvYT4gZiwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyI+eG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlM8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNfdXJpLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbHVlKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cCI+eG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwIj54bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXA8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwIj54bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhSb290Ij54bWxYUGF0aFJvb3Q8L2E+CQkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoUm91bmRGdW5jdGlvbiI+eG1sWFBhdGhSb3VuZEZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24iPnhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5kb3VibGUJPGEgaHJlZj0iI3htbFhQYXRoU3RyaW5nRXZhbE51bWJlciI+eG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIj54bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aFN1YlZhbHVlcyI+eG1sWFBhdGhTdWJWYWx1ZXM8L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIj54bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPnhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb248L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQYXRoU3VtRnVuY3Rpb24iPnhtbFhQYXRoU3VtRnVuY3Rpb248L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhUcmFpbGluZyI+eG1sWFBhdGhUcmFpbGluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj54bWxYUGF0aFRyYWlsaW5nU29ydGVkPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbiI+eG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbjwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhUcnVlRnVuY3Rpb24iPnhtbFhQYXRoVHJ1ZUZ1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFBhdGhWYWx1ZUZsaXBTaWduIj54bWxYUGF0aFZhbHVlRmxpcFNpZ248L2E+CQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhWYXJpYWJsZUxvb2t1cCI+eG1sWFBhdGhWYXJpYWJsZUxvb2t1cDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXBOUzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNfdXJpKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoV3JhcENTdHJpbmciPnhtbFhQYXRoV3JhcENTdHJpbmc8L2E+CShjaGFyICogdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQYXRoV3JhcEV4dGVybmFsIj54bWxYUGF0aFdyYXBFeHRlcm5hbDwvYT4JKHZvaWQgKiB2YWwpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFBhdGhXcmFwTm9kZVNldCI+eG1sWFBhdGhXcmFwTm9kZVNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUGF0aFdyYXBTdHJpbmciPnhtbFhQYXRoV3JhcFN0cmluZzwvYT4JKDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUGF0aGVycm9yIj54bWxYUGF0aGVycm9yPC9hPgkJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgY2hhciAqIGZpbGUsIDxiciAvPgkJCQkJIGludCBsaW5lLCA8YnIgLz4JCQkJCSBpbnQgbm8pPC9wcmU+Cis8aDI+RGVzY3JpcHRpb248L2gyPgorPGgzPjxhIG5hbWU9IkNBU1RfVE9fQk9PTEVBTiIgaWQ9IkNBU1RfVE9fQk9PTEVBTiI+PC9hPk1hY3JvOiBDQVNUX1RPX0JPT0xFQU48L2gzPjxwcmU+I2RlZmluZSBDQVNUX1RPX0JPT0xFQU48L3ByZT48cD5NYWNybyB0byB0cnkgdG8gY2FzdCB0aGUgdmFsdWUgb24gdGhlIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgdG8gYSBib29sZWFuLjwvcD4KKzxoMz48YSBuYW1lPSJDQVNUX1RPX05VTUJFUiIgaWQ9IkNBU1RfVE9fTlVNQkVSIj48L2E+TWFjcm86IENBU1RfVE9fTlVNQkVSPC9oMz48cHJlPiNkZWZpbmUgQ0FTVF9UT19OVU1CRVI8L3ByZT48cD5NYWNybyB0byB0cnkgdG8gY2FzdCB0aGUgdmFsdWUgb24gdGhlIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgdG8gYSBudW1iZXIuPC9wPgorPGgzPjxhIG5hbWU9IkNBU1RfVE9fU1RSSU5HIiBpZD0iQ0FTVF9UT19TVFJJTkciPjwvYT5NYWNybzogQ0FTVF9UT19TVFJJTkc8L2gzPjxwcmU+I2RlZmluZSBDQVNUX1RPX1NUUklORzwvcHJlPjxwPk1hY3JvIHRvIHRyeSB0byBjYXN0IHRoZSB2YWx1ZSBvbiB0aGUgdG9wIG9mIHRoZSBYUGF0aCBzdGFjayB0byBhIHN0cmluZy48L3A+Cis8aDM+PGEgbmFtZT0iQ0hFQ0tfQVJJVFkiIGlkPSJDSEVDS19BUklUWSI+PC9hPk1hY3JvOiBDSEVDS19BUklUWTwvaDM+PHByZT4jZGVmaW5lIENIRUNLX0FSSVRZPC9wcmU+PHA+TWFjcm8gdG8gY2hlY2sgdGhhdCB0aGUgbnVtYmVyIG9mIGFyZ3MgcGFzc2VkIHRvIGFuIFhQYXRoIGZ1bmN0aW9uIG1hdGNoZXMuPC9wPgorPGgzPjxhIG5hbWU9IkNIRUNLX0VSUk9SIiBpZD0iQ0hFQ0tfRVJST1IiPjwvYT5NYWNybzogQ0hFQ0tfRVJST1I8L2gzPjxwcmU+I2RlZmluZSBDSEVDS19FUlJPUjwvcHJlPjxwPk1hY3JvIHRvIHJldHVybiBmcm9tIHRoZSBmdW5jdGlvbiBpZiBhbiBYUGF0aCBlcnJvciB3YXMgZGV0ZWN0ZWQuPC9wPgorPGgzPjxhIG5hbWU9IkNIRUNLX0VSUk9SMCIgaWQ9IkNIRUNLX0VSUk9SMCI+PC9hPk1hY3JvOiBDSEVDS19FUlJPUjA8L2gzPjxwcmU+I2RlZmluZSBDSEVDS19FUlJPUjA8L3ByZT48cD5NYWNybyB0byByZXR1cm4gMCBmcm9tIHRoZSBmdW5jdGlvbiBpZiBhbiBYUGF0aCBlcnJvciB3YXMgZGV0ZWN0ZWQuPC9wPgorPGgzPjxhIG5hbWU9IkNIRUNLX1RZUEUiIGlkPSJDSEVDS19UWVBFIj48L2E+TWFjcm86IENIRUNLX1RZUEU8L2gzPjxwcmU+I2RlZmluZSBDSEVDS19UWVBFPC9wcmU+PHA+TWFjcm8gdG8gY2hlY2sgdGhhdCB0aGUgdmFsdWUgb24gdG9wIG9mIHRoZSBYUGF0aCBzdGFjayBpcyBvZiBhIGdpdmVuIHR5cGUuPC9wPgorPGgzPjxhIG5hbWU9IkNIRUNLX1RZUEUwIiBpZD0iQ0hFQ0tfVFlQRTAiPjwvYT5NYWNybzogQ0hFQ0tfVFlQRTA8L2gzPjxwcmU+I2RlZmluZSBDSEVDS19UWVBFMDwvcHJlPjxwPk1hY3JvIHRvIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9uIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgaXMgb2YgYSBnaXZlbiB0eXBlLiBSZXR1cm4oMCkgaW4gY2FzZSBvZiBmYWlsdXJlPC9wPgorPGgzPjxhIG5hbWU9IlhQX0VSUk9SIiBpZD0iWFBfRVJST1IiPjwvYT5NYWNybzogWFBfRVJST1I8L2gzPjxwcmU+I2RlZmluZSBYUF9FUlJPUjwvcHJlPjxwPk1hY3JvIHRvIHJhaXNlIGFuIFhQYXRoIGVycm9yIGFuZCByZXR1cm4uPC9wPgorPGgzPjxhIG5hbWU9IlhQX0VSUk9SMCIgaWQ9IlhQX0VSUk9SMCI+PC9hPk1hY3JvOiBYUF9FUlJPUjA8L2gzPjxwcmU+I2RlZmluZSBYUF9FUlJPUjA8L3ByZT48cD5NYWNybyB0byByYWlzZSBhbiBYUGF0aCBlcnJvciBhbmQgcmV0dXJuIDAuPC9wPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoQ2hlY2tFcnJvciIgaWQ9InhtbFhQYXRoQ2hlY2tFcnJvciI+PC9hPk1hY3JvOiB4bWxYUGF0aENoZWNrRXJyb3I8L2gzPjxwcmU+I2RlZmluZSB4bWxYUGF0aENoZWNrRXJyb3I8L3ByZT48cD5DaGVjayBpZiBhbiBYUGF0aCBlcnJvciB3YXMgcmFpc2VkLiBSZXR1cm5zIHRydWUgaWYgYW4gZXJyb3IgaGFzIGJlZW4gcmFpc2VkLCBmYWxzZSBvdGhlcndpc2UuPC9wPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoRW1wdHlOb2RlU2V0IiBpZD0ieG1sWFBhdGhFbXB0eU5vZGVTZXQiPjwvYT5NYWNybzogeG1sWFBhdGhFbXB0eU5vZGVTZXQ8L2gzPjxwcmU+I2RlZmluZSB4bWxYUGF0aEVtcHR5Tm9kZVNldDwvcHJlPjxwPkVtcHRpZXMgYSBub2RlLXNldC48L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhHZXRDb250ZXh0Tm9kZSIgaWQ9InhtbFhQYXRoR2V0Q29udGV4dE5vZGUiPjwvYT5NYWNybzogeG1sWFBhdGhHZXRDb250ZXh0Tm9kZTwvaDM+PHByZT4jZGVmaW5lIHhtbFhQYXRoR2V0Q29udGV4dE5vZGU8L3ByZT48cD5HZXQgdGhlIGNvbnRleHQgbm9kZSBvZiBhbiBYUGF0aCBjb250ZXh0LiBSZXR1cm5zIHRoZSBjb250ZXh0IG5vZGUuPC9wPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoR2V0RG9jdW1lbnQiIGlkPSJ4bWxYUGF0aEdldERvY3VtZW50Ij48L2E+TWFjcm86IHhtbFhQYXRoR2V0RG9jdW1lbnQ8L2gzPjxwcmU+I2RlZmluZSB4bWxYUGF0aEdldERvY3VtZW50PC9wcmU+PHA+R2V0IHRoZSBkb2N1bWVudCBvZiBhbiBYUGF0aCBjb250ZXh0LiBSZXR1cm5zIHRoZSBjb250ZXh0IGRvY3VtZW50LjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aEdldEVycm9yIiBpZD0ieG1sWFBhdGhHZXRFcnJvciI+PC9hPk1hY3JvOiB4bWxYUGF0aEdldEVycm9yPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhHZXRFcnJvcjwvcHJlPjxwPkdldCB0aGUgZXJyb3IgY29kZSBvZiBhbiBYUGF0aCBjb250ZXh0LiBSZXR1cm5zIHRoZSBjb250ZXh0IGVycm9yLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVybkJvb2xlYW4iIGlkPSJ4bWxYUGF0aFJldHVybkJvb2xlYW4iPjwvYT5NYWNybzogeG1sWFBhdGhSZXR1cm5Cb29sZWFuPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhSZXR1cm5Cb29sZWFuPC9wcmU+PHA+UHVzaGVzIHRoZSBib29sZWFuIEB2YWwgb24gdGhlIGNvbnRleHQgc3RhY2suPC9wPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoUmV0dXJuRW1wdHlOb2RlU2V0IiBpZD0ieG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQiPjwvYT5NYWNybzogeG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQ8L2gzPjxwcmU+I2RlZmluZSB4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldDwvcHJlPjxwPlB1c2hlcyBhbiBlbXB0eSBub2RlLXNldCBvbiB0aGUgY29udGV4dCBzdGFjay48L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhSZXR1cm5FbXB0eVN0cmluZyIgaWQ9InhtbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmciPjwvYT5NYWNybzogeG1sWFBhdGhSZXR1cm5FbXB0eVN0cmluZzwvaDM+PHByZT4jZGVmaW5lIHhtbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmc8L3ByZT48cD5QdXNoZXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBzdGFjay48L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhSZXR1cm5FeHRlcm5hbCIgaWQ9InhtbFhQYXRoUmV0dXJuRXh0ZXJuYWwiPjwvYT5NYWNybzogeG1sWFBhdGhSZXR1cm5FeHRlcm5hbDwvaDM+PHByZT4jZGVmaW5lIHhtbFhQYXRoUmV0dXJuRXh0ZXJuYWw8L3ByZT48cD5QdXNoZXMgdXNlciBkYXRhIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVybkZhbHNlIiBpZD0ieG1sWFBhdGhSZXR1cm5GYWxzZSI+PC9hPk1hY3JvOiB4bWxYUGF0aFJldHVybkZhbHNlPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhSZXR1cm5GYWxzZTwvcHJlPjxwPlB1c2hlcyBmYWxzZSBvbiB0aGUgY29udGV4dCBzdGFjay48L3A+Cis8aDM+PGEgbmFtZT0ieG1sWFBhdGhSZXR1cm5Ob2RlU2V0IiBpZD0ieG1sWFBhdGhSZXR1cm5Ob2RlU2V0Ij48L2E+TWFjcm86IHhtbFhQYXRoUmV0dXJuTm9kZVNldDwvaDM+PHByZT4jZGVmaW5lIHhtbFhQYXRoUmV0dXJuTm9kZVNldDwvcHJlPjxwPlB1c2hlcyB0aGUgbm9kZS1zZXQgQG5zIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVybk51bWJlciIgaWQ9InhtbFhQYXRoUmV0dXJuTnVtYmVyIj48L2E+TWFjcm86IHhtbFhQYXRoUmV0dXJuTnVtYmVyPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhSZXR1cm5OdW1iZXI8L3ByZT48cD5QdXNoZXMgdGhlIGRvdWJsZSBAdmFsIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVyblN0cmluZyIgaWQ9InhtbFhQYXRoUmV0dXJuU3RyaW5nIj48L2E+TWFjcm86IHhtbFhQYXRoUmV0dXJuU3RyaW5nPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhSZXR1cm5TdHJpbmc8L3ByZT48cD5QdXNoZXMgdGhlIHN0cmluZyBAc3RyIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFJldHVyblRydWUiIGlkPSJ4bWxYUGF0aFJldHVyblRydWUiPjwvYT5NYWNybzogeG1sWFBhdGhSZXR1cm5UcnVlPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhSZXR1cm5UcnVlPC9wcmU+PHA+UHVzaGVzIHRydWUgb24gdGhlIGNvbnRleHQgc3RhY2suPC9wPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoU2V0QXJpdHlFcnJvciIgaWQ9InhtbFhQYXRoU2V0QXJpdHlFcnJvciI+PC9hPk1hY3JvOiB4bWxYUGF0aFNldEFyaXR5RXJyb3I8L2gzPjxwcmU+I2RlZmluZSB4bWxYUGF0aFNldEFyaXR5RXJyb3I8L3ByZT48cD5SYWlzZXMgYW4gPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9BUklUWSI+WFBBVEhfSU5WQUxJRF9BUklUWTwvYT4gZXJyb3IuPC9wPgorPGgzPjxhIG5hbWU9InhtbFhQYXRoU2V0RXJyb3IiIGlkPSJ4bWxYUGF0aFNldEVycm9yIj48L2E+TWFjcm86IHhtbFhQYXRoU2V0RXJyb3I8L2gzPjxwcmU+I2RlZmluZSB4bWxYUGF0aFNldEVycm9yPC9wcmU+PHA+UmFpc2VzIGFuIGVycm9yLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFNldFR5cGVFcnJvciIgaWQ9InhtbFhQYXRoU2V0VHlwZUVycm9yIj48L2E+TWFjcm86IHhtbFhQYXRoU2V0VHlwZUVycm9yPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhTZXRUeXBlRXJyb3I8L3ByZT48cD5SYWlzZXMgYW4gPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjWFBBVEhfSU5WQUxJRF9UWVBFIj5YUEFUSF9JTlZBTElEX1RZUEU8L2E+IGVycm9yLjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFN0YWNrSXNFeHRlcm5hbCIgaWQ9InhtbFhQYXRoU3RhY2tJc0V4dGVybmFsIj48L2E+TWFjcm86IHhtbFhQYXRoU3RhY2tJc0V4dGVybmFsPC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhTdGFja0lzRXh0ZXJuYWw8L3ByZT48cD5DaGVja3MgaWYgdGhlIGN1cnJlbnQgdmFsdWUgb24gdGhlIFhQYXRoIHN0YWNrIGlzIGFuIGV4dGVybmFsIG9iamVjdC4gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IG9iamVjdCBvbiB0aGUgc3RhY2sgaXMgYW4gZXh0ZXJuYWwgb2JqZWN0LjwvcD4KKzxoMz48YSBuYW1lPSJ4bWxYUGF0aFN0YWNrSXNOb2RlU2V0IiBpZD0ieG1sWFBhdGhTdGFja0lzTm9kZVNldCI+PC9hPk1hY3JvOiB4bWxYUGF0aFN0YWNrSXNOb2RlU2V0PC9oMz48cHJlPiNkZWZpbmUgeG1sWFBhdGhTdGFja0lzTm9kZVNldDwvcHJlPjxwPkNoZWNrIGlmIHRoZSBjdXJyZW50IHZhbHVlIG9uIHRoZSBYUGF0aCBzdGFjayBpcyBhIG5vZGUgc2V0IG9yIGFuIFhTTFQgdmFsdWUgdHJlZS4gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IG9iamVjdCBvbiB0aGUgc3RhY2sgaXMgYSBub2RlLXNldC48L3A+Cis8aDM+PGEgbmFtZT0idmFsdWVQb3AiIGlkPSJ2YWx1ZVBvcCI+PC9hPkZ1bmN0aW9uOiB2YWx1ZVBvcDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JdmFsdWVQb3AJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+UG9wcyB0aGUgdG9wIFhQYXRoIG9iamVjdCBmcm9tIHRoZSB2YWx1ZSBzdGFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIG9iamVjdCBqdXN0IHJlbW92ZWQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ2YWx1ZVB1c2giIGlkPSJ2YWx1ZVB1c2giPjwvYT5GdW5jdGlvbjogdmFsdWVQdXNoPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXZhbHVlUHVzaAkJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiB2YWx1ZSk8YnIgLz4KKzwvcHJlPjxwPlB1c2hlcyBhIG5ldyBYUGF0aCBvYmplY3Qgb24gdG9wIG9mIHRoZSB2YWx1ZSBzdGFjazwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgaXRlbXMgb24gdGhlIHZhbHVlIHN0YWNrPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhBZGRWYWx1ZXMiIGlkPSJ4bWxYUGF0aEFkZFZhbHVlcyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEFkZFZhbHVlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhBZGRWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgYWRkIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzOiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmIGJ5IGNhbGxpbmcgdGhlIG51bWJlciBmdW5jdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbiIgaWQ9InhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGJvb2xlYW4oKSBYUGF0aCBmdW5jdGlvbiBib29sZWFuIGJvb2xlYW4ob2JqZWN0KSBUaGUgYm9vbGVhbiBmdW5jdGlvbiBjb252ZXJ0cyBpdHMgYXJndW1lbnQgdG8gYSBib29sZWFuIGFzIGZvbGxvd3M6IC0gYSBudW1iZXIgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiBpdCBpcyBuZWl0aGVyIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIHplcm8gbm9yIE5hTiAtIGEgbm9kZS1zZXQgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiBpdCBpcyBub24tZW1wdHkgLSBhIHN0cmluZyBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0cyBsZW5ndGggaXMgbm9uLXplcm88L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIiBpZD0ieG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhDZWlsaW5nRnVuY3Rpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgY2VpbGluZygpIFhQYXRoIGZ1bmN0aW9uIG51bWJlciBjZWlsaW5nKG51bWJlcikgVGhlIGNlaWxpbmcgZnVuY3Rpb24gcmV0dXJucyB0aGUgc21hbGxlc3QgKGNsb3Nlc3QgdG8gbmVnYXRpdmUgaW5maW5pdHkpIG51bWJlciB0aGF0IGlzIG5vdCBsZXNzIHRoYW4gdGhlIGFyZ3VtZW50IGFuZCB0aGF0IGlzIGFuIGludGVnZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aENvbXBhcmVWYWx1ZXMiIGlkPSJ4bWxYUGF0aENvbXBhcmVWYWx1ZXMiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhDb21wYXJlVmFsdWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoQ29tcGFyZVZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgaW5mLCA8YnIgLz4JCQkJCSBpbnQgc3RyaWN0KTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBjb21wYXJlIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzOiBAYXJnMSAmbHQ7IEBhcmcyICgxLCAxLCAuLi4gQGFyZzEgJmx0Oz0gQGFyZzIgKDEsIDAsIC4uLiBAYXJnMSAmZ3Q7IEBhcmcyICgwLCAxLCAuLi4gQGFyZzEgJmd0Oz0gQGFyZzIgKDAsIDAsIC4uLiBXaGVuIG5laXRoZXIgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIGlzIGEgbm9kZS1zZXQgYW5kIHRoZSBvcGVyYXRvciBpcyAmbHQ7PSwgJmx0OywgJmd0Oz0sICZndDssIHRoZW4gdGhlIG9iamVjdHMgYXJlIGNvbXBhcmVkIGJ5IGNvbnZlcnRlZCBib3RoIG9iamVjdHMgdG8gbnVtYmVycyBhbmQgY29tcGFyaW5nIHRoZSBudW1iZXJzIGFjY29yZGluZyB0byBJRUVFIDc1NC4gVGhlICZsdDsgY29tcGFyaXNvbiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGZpcnN0IG51bWJlciBpcyBsZXNzIHRoYW4gdGhlIHNlY29uZCBudW1iZXIuIFRoZSAmbHQ7PSBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgbnVtYmVyIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgc2Vjb25kIG51bWJlci4gVGhlICZndDsgY29tcGFyaXNvbiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGZpcnN0IG51bWJlciBpcyBncmVhdGVyIHRoYW4gdGhlIHNlY29uZCBudW1iZXIuIFRoZSAmZ3Q7PSBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgbnVtYmVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2Vjb25kIG51bWJlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmluZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+bGVzcyB0aGFuICgxKSBvciBncmVhdGVyIHRoYW4gKDApPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHJpY3Q8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmlzIHRoZSBjb21wYXJpc29uIHN0cmljdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0aGUgY29tcGFyaXNvbiBzdWNjZWVkZWQsIDAgaWYgaXQgZmFpbGVkPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb25jYXRGdW5jdGlvbiIgaWQ9InhtbFhQYXRoQ29uY2F0RnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhDb25jYXRGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhDb25jYXRGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGNvbmNhdCgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBjb25jYXQoc3RyaW5nLCBzdHJpbmcsIHN0cmluZyopIFRoZSBjb25jYXQgZnVuY3Rpb24gcmV0dXJucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiBpdHMgYXJndW1lbnRzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb250YWluc0Z1bmN0aW9uIiBpZD0ieG1sWFBhdGhDb250YWluc0Z1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhDb250YWluc0Z1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBjb250YWlucygpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gY29udGFpbnMoc3RyaW5nLCBzdHJpbmcpIFRoZSBjb250YWlucyBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBjb250YWlucyB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZywgYW5kIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhDb3VudEZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhDb3VudEZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoQ291bnRGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhDb3VudEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgY291bnQoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgY291bnQobm9kZS1zZXQpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByIiBpZD0ieG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByCShGSUxFICogb3V0cHV0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbXBFeHByUHRyIj54bWxYUGF0aENvbXBFeHByUHRyPC9hPiBjb21wLCA8YnIgLz4JCQkJCSBpbnQgZGVwdGgpPGJyIC8+Cis8L3ByZT48cD5EdW1wcyB0aGUgdHJlZSBvZiB0aGUgY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5vdXRwdXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmNvbXA8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBwcmVjb21waWxlZCBYUGF0aCBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5kZXB0aDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGluZGVudGF0aW9uIGxldmVsLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRGVidWdEdW1wT2JqZWN0IiBpZD0ieG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRGVidWdEdW1wT2JqZWN0CQkoRklMRSAqIG91dHB1dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGludCBkZXB0aCk8YnIgLz4KKzwvcHJlPjxwPkR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIG9iamVjdCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0cHV0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgRklMRSAqIHRvIGR1bXAgdGhlIG91dHB1dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgb2JqZWN0IHRvIGluc3BlY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRlcHRoPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5pbmRlbnRhdGlvbiBsZXZlbDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRGlmZmVyZW5jZSIgaWQ9InhtbFhQYXRoRGlmZmVyZW5jZSI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aERpZmZlcmVuY2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aERpZmZlcmVuY2UJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGRpZmZlcmVuY2UoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OmRpZmZlcmVuY2UgKG5vZGUtc2V0LCBub2RlLXNldCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIG5vZGUgc2V0cywgb3Igbm9kZXMxIGlmIG5vZGVzMiBpcyBlbXB0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRGlzdGluY3QiIGlkPSJ4bWxYUGF0aERpc3RpbmN0Ij48L2E+RnVuY3Rpb246IHhtbFhQYXRoRGlzdGluY3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aERpc3RpbmN0CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2Rlcyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaXN0aW5jdCgpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6ZGlzdGluY3QgKG5vZGUtc2V0KSBAbm9kZXMgaXMgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyLCB0aGVuICNleHNsU2V0c0Rpc3RpbmN0U29ydGVkIGlzIGNhbGxlZCB3aXRoIHRoZSBzb3J0ZWQgbm9kZS1zZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBzdWJzZXQgb2YgdGhlIG5vZGVzIGNvbnRhaW5lZCBpbiBAbm9kZXMsIG9yIEBub2RlcyBpZiBpdCBpcyBlbXB0eTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRGlzdGluY3RTb3J0ZWQiIGlkPSJ4bWxYUGF0aERpc3RpbmN0U29ydGVkIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoRGlzdGluY3RTb3J0ZWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aERpc3RpbmN0U29ydGVkCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2Rlcyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaXN0aW5jdCgpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6ZGlzdGluY3QgKG5vZGUtc2V0KTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgc3Vic2V0IG9mIHRoZSBub2RlcyBjb250YWluZWQgaW4gQG5vZGVzLCBvciBAbm9kZXMgaWYgaXQgaXMgZW1wdHk8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aERpdlZhbHVlcyIgaWQ9InhtbFhQYXRoRGl2VmFsdWVzIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoRGl2VmFsdWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aERpdlZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBkaXYgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHMgQGFyZzEgLyBAYXJnMjogVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhFcXVhbFZhbHVlcyIgaWQ9InhtbFhQYXRoRXF1YWxWYWx1ZXMiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhFcXVhbFZhbHVlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aEVxdWFsVmFsdWVzCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGVxdWFsIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzIGNvbnRlbnQ6IEBhcmcxID09IEBhcmcyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRXJyIiBpZD0ieG1sWFBhdGhFcnIiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhFcnI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRXJyCQkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgZXJyb3IpPGJyIC8+Cis8L3ByZT48cD5IYW5kbGUgYW4gWFBhdGggZXJyb3I8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lcnJvcjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVycm9yIGNvZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aEV2YWxFeHByIiBpZD0ieG1sWFBhdGhFdmFsRXhwciI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEV2YWxFeHByPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEV2YWxFeHByCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5QYXJzZSBhbmQgZXZhbHVhdGUgYW4gWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgZ2l2ZW4gY29udGV4dCwgdGhlbiBwdXNoIHRoZSByZXN1bHQgb24gdGhlIGNvbnRleHQgc3RhY2s8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0IiBpZD0ieG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHJlcyk8YnIgLz4KKzwvcHJlPjxwPkV2YWx1YXRlIGEgcHJlZGljYXRlIHJlc3VsdCBmb3IgdGhlIGN1cnJlbnQgbm9kZS4gQSBQcmVkaWNhdGVFeHByIGlzIGV2YWx1YXRlZCBieSBldmFsdWF0aW5nIHRoZSBFeHByIGFuZCBjb252ZXJ0aW5nIHRoZSByZXN1bHQgdG8gYSBib29sZWFuLiBJZiB0aGUgcmVzdWx0IGlzIGEgbnVtYmVyLCB0aGUgcmVzdWx0IHdpbGwgYmUgY29udmVydGVkIHRvIHRydWUgaWYgdGhlIG51bWJlciBpcyBlcXVhbCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRleHQgbm9kZSBpbiB0aGUgY29udGV4dCBub2RlIGxpc3QgKGFzIHJldHVybmVkIGJ5IHRoZSBwb3NpdGlvbiBmdW5jdGlvbikgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGZhbHNlIG90aGVyd2lzZTsgaWYgdGhlIHJlc3VsdCBpcyBub3QgYSBudW1iZXIsIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlIGNvbnZlcnRlZCBhcyBpZiBieSBhIGNhbGwgdG8gdGhlIGJvb2xlYW4gZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5yZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBQcmVkaWNhdGUgRXhwcmVzc2lvbiBldmFsdWF0aW9uIHJlc3VsdDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiBwcmVkaWNhdGUgaXMgdHJ1ZSwgMCBvdGhlcndpc2U8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aEZhbHNlRnVuY3Rpb24iIGlkPSJ4bWxYUGF0aEZhbHNlRnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhGYWxzZUZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aEZhbHNlRnVuY3Rpb24JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBmYWxzZSgpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gZmFsc2UoKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhGbG9vckZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhGbG9vckZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoRmxvb3JGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhGbG9vckZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgZmxvb3IoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgZmxvb3IobnVtYmVyKSBUaGUgZmxvb3IgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGFyZ2VzdCAoY2xvc2VzdCB0byBwb3NpdGl2ZSBpbmZpbml0eSkgbnVtYmVyIHRoYXQgaXMgbm90IGdyZWF0ZXIgdGhhbiB0aGUgYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQiIGlkPSJ4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0Ij48L2E+RnVuY3Rpb246IHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+RnJlZSB1cCBhbiA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHQiPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY29udGV4dCB0byBmcmVlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhGdW5jdGlvbkxvb2t1cCIgaWQ9InhtbFhQYXRoRnVuY3Rpb25Mb29rdXAiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhGdW5jdGlvbkxvb2t1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+CXhtbFhQYXRoRnVuY3Rpb25Mb29rdXAJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSk8YnIgLz4KKzwvcHJlPjxwPlNlYXJjaCBpbiB0aGUgRnVuY3Rpb24gYXJyYXkgb2YgdGhlIGNvbnRleHQgZm9yIHRoZSBnaXZlbiBmdW5jdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPiBvciBOVUxMIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUyIgaWQ9InhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmN0aW9uIj54bWxYUGF0aEZ1bmN0aW9uPC9hPgl4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNfdXJpKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIGluIHRoZSBGdW5jdGlvbiBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIGZ1bmN0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb24gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnNfdXJpPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb24gbmFtZXNwYWNlIFVSSTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+IG9yIE5VTEwgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhIYXNTYW1lTm9kZXMiIGlkPSJ4bWxYUGF0aEhhc1NhbWVOb2RlcyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aEhhc1NhbWVOb2RlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aEhhc1NhbWVOb2RlcwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMyKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGhhcy1zYW1lLW5vZGVzIGZ1bmN0aW9uOiBib29sZWFuIHNldDpoYXMtc2FtZS1ub2RlKG5vZGUtc2V0LCBub2RlLXNldCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSAoMSkgaWYgQG5vZGVzMSBzaGFyZXMgYW55IG5vZGUgd2l0aCBAbm9kZXMyLCBmYWxzZSAoMCkgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhJZEZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhJZEZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoSWRGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhJZEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgaWQoKSBYUGF0aCBmdW5jdGlvbiBub2RlLXNldCBpZChvYmplY3QpIFRoZSBpZCBmdW5jdGlvbiBzZWxlY3RzIGVsZW1lbnRzIGJ5IHRoZWlyIHVuaXF1ZSBJRCAoc2VlIFs1LjIuMSBVbmlxdWUgSURzXSkuIFdoZW4gdGhlIGFyZ3VtZW50IHRvIGlkIGlzIG9mIHR5cGUgbm9kZS1zZXQsIHRoZW4gdGhlIHJlc3VsdCBpcyB0aGUgdW5pb24gb2YgdGhlIHJlc3VsdCBvZiBhcHBseWluZyBpZCB0byB0aGUgc3RyaW5nIHZhbHVlIG9mIGVhY2ggb2YgdGhlIG5vZGVzIGluIHRoZSBhcmd1bWVudCBub2RlLXNldC4gV2hlbiB0aGUgYXJndW1lbnQgdG8gaWQgaXMgb2YgYW55IG90aGVyIHR5cGUsIHRoZSBhcmd1bWVudCBpcyBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgYXMgaWYgYnkgYSBjYWxsIHRvIHRoZSBzdHJpbmcgZnVuY3Rpb247IHRoZSBzdHJpbmcgaXMgc3BsaXQgaW50byBhIHdoaXRlc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgdG9rZW5zICh3aGl0ZXNwYWNlIGlzIGFueSBzZXF1ZW5jZSBvZiA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gbWF0Y2hpbmcgdGhlIHByb2R1Y3Rpb24gUyk7IHRoZSByZXN1bHQgaXMgYSBub2RlLXNldCBjb250YWluaW5nIHRoZSBlbGVtZW50cyBpbiB0aGUgc2FtZSBkb2N1bWVudCBhcyB0aGUgY29udGV4dCBub2RlIHRoYXQgaGF2ZSBhIHVuaXF1ZSBJRCBlcXVhbCB0byBhbnkgb2YgdGhlIHRva2VucyBpbiB0aGUgbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoSW50ZXJzZWN0aW9uIiBpZD0ieG1sWFBhdGhJbnRlcnNlY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhJbnRlcnNlY3Rpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aEludGVyc2VjdGlvbgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gbm9kZXMxLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczIpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgaW50ZXJzZWN0aW9uKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDppbnRlcnNlY3Rpb24gKG5vZGUtc2V0LCBub2RlLXNldCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlIHNldCBjb21wcmlzaW5nIHRoZSBub2RlcyB0aGF0IGFyZSB3aXRoaW4gYm90aCB0aGUgbm9kZSBzZXRzIHBhc3NlZCBhcyBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aElzTm9kZVR5cGUiIGlkPSJ4bWxYUGF0aElzTm9kZVR5cGUiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhJc05vZGVUeXBlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoSXNOb2RlVHlwZQkJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIG5hbWUpPGJyIC8+Cis8L3ByZT48cD5JcyB0aGUgbmFtZSBnaXZlbiBhIE5vZGVUeXBlIG9uZS4gWzM4XSBOb2RlVHlwZSA6Oj0gJ2NvbW1lbnQnIHwgJ3RleHQnIHwgJ3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24nIHwgJ25vZGUnPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBuYW1lIHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+MSBpZiB0cnVlIDAgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhMYW5nRnVuY3Rpb24iIGlkPSJ4bWxYUGF0aExhbmdGdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aExhbmdGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhMYW5nRnVuY3Rpb24JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBsYW5nKCkgWFBhdGggZnVuY3Rpb24gYm9vbGVhbiBsYW5nKHN0cmluZykgVGhlIGxhbmcgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBsYW5ndWFnZSBvZiB0aGUgY29udGV4dCBub2RlIGFzIHNwZWNpZmllZCBieSB4bWw6bGFuZyBhdHRyaWJ1dGVzIGlzIHRoZSBzYW1lIGFzIG9yIGlzIGEgc3VibGFuZ3VhZ2Ugb2YgdGhlIGxhbmd1YWdlIHNwZWNpZmllZCBieSB0aGUgYXJndW1lbnQgc3RyaW5nLiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIGNvbnRleHQgbm9kZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgeG1sOmxhbmcgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBvbiB0aGUgY29udGV4dCBub2RlLCBvciwgaWYgdGhlIGNvbnRleHQgbm9kZSBoYXMgbm8geG1sOmxhbmcgYXR0cmlidXRlLCBieSB0aGUgdmFsdWUgb2YgdGhlIHhtbDpsYW5nIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gb24gdGhlIG5lYXJlc3QgYW5jZXN0b3Igb2YgdGhlIGNvbnRleHQgbm9kZSB0aGF0IGhhcyBhbiB4bWw6bGFuZyBhdHRyaWJ1dGUuIElmIHRoZXJlIGlzIG5vIHN1Y2ggYXR0cmlidXRlLCB0aGVuIGxhbmc8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTGFzdEZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhMYXN0RnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhMYXN0RnVuY3Rpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTGFzdEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgbGFzdCgpIFhQYXRoIGZ1bmN0aW9uIG51bWJlciBsYXN0KCkgVGhlIGxhc3QgZnVuY3Rpb24gcmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBjb250ZXh0IG5vZGUgbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTGVhZGluZyIgaWQ9InhtbFhQYXRoTGVhZGluZyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aExlYWRpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aExlYWRpbmcJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBsZWFkaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpIEBub2RlczEgYW5kIEBub2RlczIgYXJlIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciwgdGhlbiAjZXhzbFNldHNMZWFkaW5nU29ydGVkIGlzIGNhbGxlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGVzIGluIEBub2RlczEgdGhhdCBwcmVjZWRlIHRoZSBmaXJzdCBub2RlIGluIEBub2RlczIgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlczEgaWYgQG5vZGVzMiBpcyBOVUxMIG9yIGVtcHR5IG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlczEgZG9lc24ndCBjb250YWluIEBub2RlczI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aExlYWRpbmdTb3J0ZWQiIGlkPSJ4bWxYUGF0aExlYWRpbmdTb3J0ZWQiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhMZWFkaW5nU29ydGVkPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhMZWFkaW5nU29ydGVkCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBsZWFkaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXMxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZXMgaW4gQG5vZGVzMSB0aGF0IHByZWNlZGUgdGhlIGZpcnN0IG5vZGUgaW4gQG5vZGVzMiBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzMSBpZiBAbm9kZXMyIGlzIE5VTEwgb3IgZW1wdHkgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzMSBkb2Vzbid0IGNvbnRhaW4gQG5vZGVzMjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24iIGlkPSJ4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIGxvY2FsLW5hbWUoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgbG9jYWwtbmFtZShub2RlLXNldD8pIFRoZSBsb2NhbC1uYW1lIGZ1bmN0aW9uIHJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgbG9jYWwgcGFydCBvZiB0aGUgbmFtZSBvZiB0aGUgbm9kZSBpbiB0aGUgYXJndW1lbnQgbm9kZS1zZXQgdGhhdCBpcyBmaXJzdCBpbiBkb2N1bWVudCBvcmRlci4gSWYgdGhlIG5vZGUtc2V0IGlzIGVtcHR5IG9yIHRoZSBmaXJzdCBub2RlIGhhcyBubyBuYW1lLCBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkIGl0IGRlZmF1bHRzIHRvIHRoZSBjb250ZXh0IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE1vZFZhbHVlcyIgaWQ9InhtbFhQYXRoTW9kVmFsdWVzIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTW9kVmFsdWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE1vZFZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBtb2Qgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHM6IEBhcmcxIC8gQGFyZzIgVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhNdWx0VmFsdWVzIiBpZD0ieG1sWFBhdGhNdWx0VmFsdWVzIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTXVsdFZhbHVlczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhNdWx0VmFsdWVzCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIG11bHRpcGx5IG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzOiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmIGJ5IGNhbGxpbmcgdGhlIG51bWJlciBmdW5jdGlvbi48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBuYW1lc3BhY2UtdXJpKCkgWFBhdGggZnVuY3Rpb24gc3RyaW5nIG5hbWVzcGFjZS11cmkobm9kZS1zZXQ/KSBUaGUgbmFtZXNwYWNlLXVyaSBmdW5jdGlvbiByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWVzcGFjZSBVUkkgb2YgdGhlIGV4cGFuZGVkIG5hbWUgb2YgdGhlIG5vZGUgaW4gdGhlIGFyZ3VtZW50IG5vZGUtc2V0IHRoYXQgaXMgZmlyc3QgaW4gZG9jdW1lbnQgb3JkZXIuIElmIHRoZSBub2RlLXNldCBpcyBlbXB0eSwgdGhlIGZpcnN0IG5vZGUgaGFzIG5vIG5hbWUsIG9yIHRoZSBleHBhbmRlZCBuYW1lIGhhcyBubyBuYW1lc3BhY2UgVVJJLCBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkIGl0IGRlZmF1bHRzIHRvIHRoZSBjb250ZXh0IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld0Jvb2xlYW4iIGlkPSJ4bWxYUGF0aE5ld0Jvb2xlYW4iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOZXdCb29sZWFuPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE5ld0Jvb2xlYW4JKGludCB2YWwpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIGJvb2xlYW4gYW5kIG9mIHZhbHVlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBib29sZWFuIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXdDU3RyaW5nIiBpZD0ieG1sWFBhdGhOZXdDU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTmV3Q1N0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhOZXdDU3RyaW5nCShjb25zdCBjaGFyICogdmFsKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSBzdHJpbmcgYW5kIG9mIHZhbHVlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyICogdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld0Zsb2F0IiBpZD0ieG1sWFBhdGhOZXdGbG9hdCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5ld0Zsb2F0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE5ld0Zsb2F0CShkb3VibGUgdmFsKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSBkb3VibGUgYW5kIG9mIHZhbHVlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBkb3VibGUgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld05vZGVTZXQiIGlkPSJ4bWxYUGF0aE5ld05vZGVTZXQiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOZXdOb2RlU2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE5ld05vZGVTZXQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSBOb2RlU2V0IGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIHNpbmdsZSBOb2RlIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBOb2RlUHRyIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXdOb2RlU2V0TGlzdCIgaWQ9InhtbFhQYXRoTmV3Tm9kZVNldExpc3QiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOZXdOb2RlU2V0TGlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhOZXdOb2RlU2V0TGlzdAkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSBOb2RlU2V0IGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIE5vZGVzZXQgQHZhbDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnZhbDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gZXhpc3RpbmcgTm9kZVNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dCIgaWQ9InhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4JeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0CShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0Ij54bWxYUGF0aFBhcnNlckNvbnRleHQ8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggZXhwcmVzc2lvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHQiPnhtbFhQYXRoUGFyc2VyQ29udGV4dDwvYT4ganVzdCBhbGxvY2F0ZWQuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXdTdHJpbmciIGlkPSJ4bWxYUGF0aE5ld1N0cmluZyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5ld1N0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhOZXdTdHJpbmcJKGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHZhbCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgc3RyaW5nIGFuZCBvZiB2YWx1ZSBAdmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5ld1ZhbHVlVHJlZSIgaWQ9InhtbFhQYXRoTmV3VmFsdWVUcmVlIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTmV3VmFsdWVUcmVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aE5ld1ZhbHVlVHJlZQkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIFZhbHVlIFRyZWUgKFhTTFQpIGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIHRyZWUgcm9vdCBAdmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgTm9kZVB0ciB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dEFuY2VzdG9yIiBpZD0ieG1sWFBhdGhOZXh0QW5jZXN0b3IiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOZXh0QW5jZXN0b3I8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dEFuY2VzdG9yCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiYW5jZXN0b3IiIGRpcmVjdGlvbiB0aGUgYW5jZXN0b3IgYXhpcyBjb250YWlucyB0aGUgYW5jZXN0b3JzIG9mIHRoZSBjb250ZXh0IG5vZGU7IHRoZSBhbmNlc3RvcnMgb2YgdGhlIGNvbnRleHQgbm9kZSBjb25zaXN0IG9mIHRoZSBwYXJlbnQgb2YgY29udGV4dCBub2RlIGFuZCB0aGUgcGFyZW50J3MgcGFyZW50IGFuZCBzbyBvbjsgdGhlIG5vZGVzIGFyZSBvcmRlcmVkIGluIHJldmVyc2UgZG9jdW1lbnQgb3JkZXI7IHRodXMgdGhlIHBhcmVudCBpcyB0aGUgZmlyc3Qgbm9kZSBvbiB0aGUgYXhpcywgYW5kIHRoZSBwYXJlbnQncyBwYXJlbnQgaXMgdGhlIHNlY29uZCBub2RlIG9uIHRoZSBheGlzPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYiIGlkPSJ4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiYW5jZXN0b3Itb3Itc2VsZiIgZGlyZWN0aW9uIGhlIGFuY2VzdG9yLW9yLXNlbGYgYXhpcyBjb250YWlucyB0aGUgY29udGV4dCBub2RlIGFuZCBhbmNlc3RvcnMgb2YgdGhlIGNvbnRleHQgbm9kZSBpbiByZXZlcnNlIGRvY3VtZW50IG9yZGVyOyB0aHVzIHRoZSBjb250ZXh0IG5vZGUgaXMgdGhlIGZpcnN0IG5vZGUgb24gdGhlIGF4aXMsIGFuZCB0aGUgY29udGV4dCBub2RlJ3MgcGFyZW50IHRoZSBzZWNvbmQ7IHBhcmVudCBoZXJlIGlzIGRlZmluZWQgdGhlIHNhbWUgYXMgd2l0aCB0aGUgcGFyZW50IGF4aXMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0QXR0cmlidXRlIiBpZD0ieG1sWFBhdGhOZXh0QXR0cmlidXRlIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTmV4dEF0dHJpYnV0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0QXR0cmlidXRlCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiYXR0cmlidXRlIiBkaXJlY3Rpb24gVE9ETzogc3VwcG9ydCBEVEQgaW5oZXJpdGVkIGRlZmF1bHQgYXR0cmlidXRlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGluIHRoZSB0cmF2ZXJzYWw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dENoaWxkIiBpZD0ieG1sWFBhdGhOZXh0Q2hpbGQiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOZXh0Q2hpbGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dENoaWxkCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiY2hpbGQiIGRpcmVjdGlvbiBUaGUgY2hpbGQgYXhpcyBjb250YWlucyB0aGUgY2hpbGRyZW4gb2YgdGhlIGNvbnRleHQgbm9kZSBpbiBkb2N1bWVudCBvcmRlci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5leHREZXNjZW5kYW50IiBpZD0ieG1sWFBhdGhOZXh0RGVzY2VuZGFudCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5leHREZXNjZW5kYW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHREZXNjZW5kYW50CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiZGVzY2VuZGFudCIgZGlyZWN0aW9uIHRoZSBkZXNjZW5kYW50IGF4aXMgY29udGFpbnMgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXI7IGEgZGVzY2VuZGFudCBpcyBhIGNoaWxkIG9yIGEgY2hpbGQgb2YgYSBjaGlsZCBhbmQgc28gb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiIgaWQ9InhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGYiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJkZXNjZW5kYW50LW9yLXNlbGYiIGRpcmVjdGlvbiB0aGUgZGVzY2VuZGFudC1vci1zZWxmIGF4aXMgY29udGFpbnMgdGhlIGNvbnRleHQgbm9kZSBhbmQgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXI7IHRodXMgdGhlIGNvbnRleHQgbm9kZSBpcyB0aGUgZmlyc3Qgbm9kZSBvbiB0aGUgYXhpcywgYW5kIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgY29udGV4dCBub2RlIGlzIHRoZSBzZWNvbmQgbm9kZSBvbiB0aGUgYXhpczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dEZvbGxvd2luZyIgaWQ9InhtbFhQYXRoTmV4dEZvbGxvd2luZyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5leHRGb2xsb3dpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dEZvbGxvd2luZwkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgImZvbGxvd2luZyIgZGlyZWN0aW9uIFRoZSBmb2xsb3dpbmcgYXhpcyBjb250YWlucyBhbGwgbm9kZXMgaW4gdGhlIHNhbWUgZG9jdW1lbnQgYXMgdGhlIGNvbnRleHQgbm9kZSB0aGF0IGFyZSBhZnRlciB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBleGNsdWRpbmcgYW55IGRlc2NlbmRhbnRzIGFuZCBleGNsdWRpbmcgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBub2RlcyBhbmQgbmFtZXNwYWNlIG5vZGVzOyB0aGUgbm9kZXMgYXJlIG9yZGVyZWQgaW4gZG9jdW1lbnQgb3JkZXI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nIiBpZD0ieG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgImZvbGxvd2luZy1zaWJsaW5nIiBkaXJlY3Rpb24gVGhlIGZvbGxvd2luZy1zaWJsaW5nIGF4aXMgY29udGFpbnMgdGhlIGZvbGxvd2luZyBzaWJsaW5ncyBvZiB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dE5hbWVzcGFjZSIgaWQ9InhtbFhQYXRoTmV4dE5hbWVzcGFjZSI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5leHROYW1lc3BhY2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dE5hbWVzcGFjZQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgIm5hbWVzcGFjZSIgZGlyZWN0aW9uIHRoZSBuYW1lc3BhY2UgYXhpcyBjb250YWlucyB0aGUgbmFtZXNwYWNlIG5vZGVzIG9mIHRoZSBjb250ZXh0IG5vZGU7IHRoZSBvcmRlciBvZiBub2RlcyBvbiB0aGlzIGF4aXMgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZDsgdGhlIGF4aXMgd2lsbCBiZSBlbXB0eSB1bmxlc3MgdGhlIGNvbnRleHQgbm9kZSBpcyBhbiBlbGVtZW50IFdlIGtlZXAgdGhlIFhNTCBuYW1lc3BhY2Ugbm9kZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L2E+IGluIHRoZSB0cmF2ZXJzYWw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dFBhcmVudCIgaWQ9InhtbFhQYXRoTmV4dFBhcmVudCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5leHRQYXJlbnQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dFBhcmVudAkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gY3VyKTxiciAvPgorPC9wcmU+PHA+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgInBhcmVudCIgZGlyZWN0aW9uIFRoZSBwYXJlbnQgYXhpcyBjb250YWlucyB0aGUgcGFyZW50IG9mIHRoZSBjb250ZXh0IG5vZGUsIGlmIHRoZXJlIGlzIG9uZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5leHRQcmVjZWRpbmciIGlkPSJ4bWxYUGF0aE5leHRQcmVjZWRpbmciPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOZXh0UHJlY2VkaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgl4bWxYUGF0aE5leHRQcmVjZWRpbmcJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJwcmVjZWRpbmciIGRpcmVjdGlvbiB0aGUgcHJlY2VkaW5nIGF4aXMgY29udGFpbnMgYWxsIG5vZGVzIGluIHRoZSBzYW1lIGRvY3VtZW50IGFzIHRoZSBjb250ZXh0IG5vZGUgdGhhdCBhcmUgYmVmb3JlIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsIGV4Y2x1ZGluZyBhbnkgYW5jZXN0b3JzIGFuZCBleGNsdWRpbmcgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9hPiBub2RlcyBhbmQgbmFtZXNwYWNlIG5vZGVzOyB0aGUgbm9kZXMgYXJlIG9yZGVyZWQgaW4gcmV2ZXJzZSBkb2N1bWVudCBvcmRlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmciIGlkPSJ4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmcJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBjdXIpPGJyIC8+Cis8L3ByZT48cD5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAicHJlY2VkaW5nLXNpYmxpbmciIGRpcmVjdGlvbiBUaGUgcHJlY2VkaW5nLXNpYmxpbmcgYXhpcyBjb250YWlucyB0aGUgcHJlY2VkaW5nIHNpYmxpbmdzIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gcmV2ZXJzZSBkb2N1bWVudCBvcmRlcjsgdGhlIGZpcnN0IHByZWNlZGluZyBzaWJsaW5nIGlzIGZpcnN0IG9uIHRoZSBheGlzOyB0aGUgc2libGluZyBwcmVjZWRpbmcgdGhhdCBub2RlIGlzIHRoZSBzZWNvbmQgb24gdGhlIGF4aXMgYW5kIHNvIG9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTmV4dFNlbGYiIGlkPSJ4bWxYUGF0aE5leHRTZWxmIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTmV4dFNlbGY8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+CXhtbFhQYXRoTmV4dFNlbGYJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGN1cik8YnIgLz4KKzwvcHJlPjxwPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJzZWxmIiBkaXJlY3Rpb24gVGhlIHNlbGYgYXhpcyBjb250YWlucyBqdXN0IHRoZSBjb250ZXh0IG5vZGUgaXRzZWxmPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlTGVhZGluZyIgaWQ9InhtbFhQYXRoTm9kZUxlYWRpbmciPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOb2RlTGVhZGluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CXhtbFhQYXRoTm9kZUxlYWRpbmcJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgbGVhZGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6bGVhZGluZyAobm9kZS1zZXQsIG5vZGUtc2V0KSBAbm9kZXMgaXMgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyLCB0aGVuICNleHNsU2V0c05vZGVMZWFkaW5nU29ydGVkIGlzIGNhbGxlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgcHJlY2VkZSBAbm9kZSBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzIGlmIEBub2RlIGlzIE5VTEwgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzIGRvZXNuJ3QgY29udGFpbiBAbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQiIGlkPSJ4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBsZWFkaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgcHJlY2VkZSBAbm9kZSBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzIGlmIEBub2RlIGlzIE5VTEwgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzIGRvZXNuJ3QgY29udGFpbiBAbm9kZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVNldEFkZCIgaWQ9InhtbFhQYXRoTm9kZVNldEFkZCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vZGVTZXRBZGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTm9kZVNldEFkZAkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5hZGQgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0byBhbiBleGlzdGluZyBOb2RlU2V0PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBub2RlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0QWRkTnMiIGlkPSJ4bWxYUGF0aE5vZGVTZXRBZGROcyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vZGVTZXRBZGROczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhOb2RlU2V0QWRkTnMJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOc1B0ciI+eG1sTnNQdHI8L2E+IG5zKTxiciAvPgorPC9wcmU+PHA+YWRkIGEgbmV3IG5hbWVzcGFjZSBub2RlIHRvIGFuIGV4aXN0aW5nIE5vZGVTZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIG5vZGUgc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaG9zdGluZyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSB0aGUgbmFtZXNwYWNlIG5vZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUiIGlkPSJ4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5hZGQgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB0byBhbiBleGlzdGluZyBOb2RlU2V0LCBvcHRpbWl6ZWQgdmVyc2lvbiB3aGVuIHdlIGFyZSBzdXJlIHRoZSBub2RlIGlzIG5vdCBhbHJlYWR5IGluIHRoZSBzZXQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBub2RlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0Q29udGFpbnMiIGlkPSJ4bWxYUGF0aE5vZGVTZXRDb250YWlucyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vZGVTZXRDb250YWluczwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aE5vZGVTZXRDb250YWlucwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiB2YWwpPGJyIC8+Cis8L3ByZT48cD5jaGVja3Mgd2hldGhlciBAY3VyIGNvbnRhaW5zIEB2YWw8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dHJ1ZSAoMSkgaWYgQGN1ciBjb250YWlucyBAdmFsLCBmYWxzZSAoMCkgb3RoZXJ3aXNlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0RGVsIiBpZD0ieG1sWFBhdGhOb2RlU2V0RGVsIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTm9kZVNldERlbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhOb2RlU2V0RGVsCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHZhbCk8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZXMgYW4gPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBmcm9tIGFuIGV4aXN0aW5nIE5vZGVTZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIG5vZGUgc2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVTZXRGcmVlTnMiIGlkPSJ4bWxYUGF0aE5vZGVTZXRGcmVlTnMiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vZGVTZXRGcmVlTnMJCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5zUHRyIj54bWxOc1B0cjwvYT4gbnMpPGJyIC8+Cis8L3ByZT48cD5OYW1lc3BhY2Ugbm9kZXMgaW4gbGlieG1sIGRvbid0IG1hdGNoIHRoZSBYUGF0aCBzZW1hbnRpYy4gSW4gYSBub2RlIHNldCB0aGUgbmFtZXNwYWNlIG5vZGVzIGFyZSBkdXBsaWNhdGVkIGFuZCB0aGUgbmV4dCBwb2ludGVyIGlzIHNldCB0byB0aGUgcGFyZW50IG5vZGUgaW4gdGhlIFhQYXRoIHNlbWFudGljLiBDaGVjayBpZiBzdWNoIGEgbm9kZSBuZWVkcyB0byBiZSBmcmVlZDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggbmFtZXNwYWNlIG5vZGUgZm91bmQgaW4gYSBub2Rlc2V0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVNldE1lcmdlIiBpZD0ieG1sWFBhdGhOb2RlU2V0TWVyZ2UiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOb2RlU2V0TWVyZ2U8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aE5vZGVTZXRNZXJnZQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdmFsMSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdmFsMik8YnIgLz4KKzwvcHJlPjxwPk1lcmdlcyB0d28gbm9kZXNldHMsIGFsbCBub2RlcyBmcm9tIEB2YWwyIGFyZSBhZGRlZCB0byBAdmFsMSBpZiBAdmFsMSBpcyBOVUxMLCBhIG5ldyBzZXQgaXMgY3JlYXRlZCBhbmQgY29waWVkIGZyb20gQHZhbDI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWwxPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZmlyc3QgTm9kZVNldCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWwyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIE5vZGVTZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPkB2YWwxIG9uY2UgZXh0ZW5kZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTm9kZVNldFJlbW92ZSIgaWQ9InhtbFhQYXRoTm9kZVNldFJlbW92ZSI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vZGVTZXRSZW1vdmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoTm9kZVNldFJlbW92ZQkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgaW50IHZhbCk8YnIgLz4KKzwvcHJlPjxwPlJlbW92ZXMgYW4gZW50cnkgZnJvbSBhbiBleGlzdGluZyBOb2RlU2V0IGxpc3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3VyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5pdGlhbCBub2RlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5kZXggdG8gcmVtb3ZlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlU2V0U29ydCIgaWQ9InhtbFhQYXRoTm9kZVNldFNvcnQiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOb2RlU2V0U29ydDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhOb2RlU2V0U29ydAkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IHNldCk8YnIgLz4KKzwvcHJlPjxwPlNvcnQgdGhlIG5vZGUgc2V0IGluIGRvY3VtZW50IG9yZGVyPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2V0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZSBzZXQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vZGVUcmFpbGluZyIgaWQ9InhtbFhQYXRoTm9kZVRyYWlsaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTm9kZVRyYWlsaW5nPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhOb2RlVHJhaWxpbmcJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG5vZGUpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgdHJhaWxpbmcoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OnRyYWlsaW5nIChub2RlLXNldCwgbm9kZS1zZXQpIEBub2RlcyBpcyBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIGlzIGNhbGxlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgZm9sbG93IEBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMgaWYgQG5vZGUgaXMgTlVMTCBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMgZG9lc24ndCBjb250YWluIEBub2RlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQiIGlkPSJ4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+CXhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlcywgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gbm9kZSk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyB0cmFpbGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBpbiBAbm9kZXMgdGhhdCBmb2xsb3cgQG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlcyBpZiBAbm9kZSBpcyBOVUxMIG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlcyBkb2Vzbid0IGNvbnRhaW4gQG5vZGU8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBub3JtYWxpemUtc3BhY2UoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgbm9ybWFsaXplLXNwYWNlKHN0cmluZz8pIFRoZSBub3JtYWxpemUtc3BhY2UgZnVuY3Rpb24gcmV0dXJucyB0aGUgYXJndW1lbnQgc3RyaW5nIHdpdGggd2hpdGUgc3BhY2Ugbm9ybWFsaXplZCBieSBzdHJpcHBpbmcgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjaW5nIHNlcXVlbmNlcyBvZiB3aGl0ZXNwYWNlIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiBieSBhIHNpbmdsZSBzcGFjZS4gV2hpdGVzcGFjZSA8YSBocmVmPSJsaWJ4bWwtU0FYLmh0bWwjY2hhcmFjdGVycyI+Y2hhcmFjdGVyczwvYT4gYXJlIHRoZSBzYW1lIGFsbG93ZWQgYnkgdGhlIFMgcHJvZHVjdGlvbiBpbiBYTUwuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB0aGUgY29udGV4dCBub2RlIGNvbnZlcnRlZCB0byBhIHN0cmluZywgaW4gb3RoZXIgd29yZHMgdGhlIHZhbHVlIG9mIHRoZSBjb250ZXh0IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIiBpZD0ieG1sWFBhdGhOb3RFcXVhbFZhbHVlcyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aE5vdEVxdWFsVmFsdWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50CXhtbFhQYXRoTm90RXF1YWxWYWx1ZXMJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgZXF1YWwgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHMgY29udGVudDogQGFyZzEgPT0gQGFyZzI8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOb3RGdW5jdGlvbiIgaWQ9InhtbFhQYXRoTm90RnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOb3RGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhOb3RGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIG5vdCgpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gbm90KGJvb2xlYW4pIFRoZSBub3QgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIGl0cyBhcmd1bWVudCBpcyBmYWxzZSwgYW5kIGZhbHNlIG90aGVyd2lzZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoTnNMb29rdXAiIGlkPSJ4bWxYUGF0aE5zTG9va3VwIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoTnNMb29rdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5jb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aE5zTG9va3VwCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogcHJlZml4KTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIGluIHRoZSBuYW1lc3BhY2UgZGVjbGFyYXRpb24gYXJyYXkgb2YgdGhlIGNvbnRleHQgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2UgbmFtZSBhc3NvY2lhdGVkIHRvIHRoZSBnaXZlbiBwcmVmaXg8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+cHJlZml4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIHByZWZpeCB2YWx1ZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhOdW1iZXJGdW5jdGlvbiIgaWQ9InhtbFhQYXRoTnVtYmVyRnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhOdW1iZXJGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhOdW1iZXJGdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIG51bWJlcigpIFhQYXRoIGZ1bmN0aW9uIG51bWJlciBudW1iZXIob2JqZWN0Pyk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUGFyc2VOQ05hbWUiIGlkPSJ4bWxYUGF0aFBhcnNlTkNOYW1lIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUGFyc2VOQ05hbWU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aFBhcnNlTkNOYW1lCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPnBhcnNlIGFuIFhNTCBuYW1lc3BhY2Ugbm9uIHF1YWxpZmllZCBuYW1lLiBbTlMgM10gTkNOYW1lIDo6PSAoTGV0dGVyIHwgJ18nKSAoTkNOYW1lQ2hhcikqIFtOUyA0XSBOQ05hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlcjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5hbWVzcGFjZSBuYW1lIG9yIE5VTEw8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBhcnNlTmFtZSIgaWQ9InhtbFhQYXRoUGFyc2VOYW1lIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUGFyc2VOYW1lPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICoJeG1sWFBhdGhQYXJzZU5hbWUJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+cGFyc2UgYW4gWE1MIG5hbWUgWzRdIE5hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8ICc6JyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlciBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgbmFtZSBvciBOVUxMPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhQb3BCb29sZWFuIiBpZD0ieG1sWFBhdGhQb3BCb29sZWFuIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUG9wQm9vbGVhbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aFBvcEJvb2xlYW4JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPlBvcHMgYSBib29sZWFuIGZyb20gdGhlIHN0YWNrLCBoYW5kbGluZyBjb252ZXJzaW9uIGlmIG5lZWRlZC4gQ2hlY2sgZXJyb3Igd2l0aCAjeG1sWFBhdGhDaGVja0Vycm9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYm9vbGVhbjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUG9wRXh0ZXJuYWwiIGlkPSJ4bWxYUGF0aFBvcEV4dGVybmFsIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUG9wRXh0ZXJuYWw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkICoJeG1sWFBhdGhQb3BFeHRlcm5hbAkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+UG9wcyBhbiBleHRlcm5hbCBvYmplY3QgZnJvbSB0aGUgc3RhY2ssIGhhbmRsaW5nIGNvbnZlcnNpb24gaWYgbmVlZGVkLiBDaGVjayBlcnJvciB3aXRoICN4bWxYUGF0aENoZWNrRXJyb3IuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YW4gWFBhdGggcGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBvYmplY3Q8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFBvcE5vZGVTZXQiIGlkPSJ4bWxYUGF0aFBvcE5vZGVTZXQiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhQb3BOb2RlU2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4JeG1sWFBhdGhQb3BOb2RlU2V0CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPlBvcHMgYSBub2RlLXNldCBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUtc2V0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhQb3BOdW1iZXIiIGlkPSJ4bWxYUGF0aFBvcE51bWJlciI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFBvcE51bWJlcjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmRvdWJsZQl4bWxYUGF0aFBvcE51bWJlcgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+UG9wcyBhIG51bWJlciBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBYUGF0aCBwYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUG9wU3RyaW5nIiBpZD0ieG1sWFBhdGhQb3BTdHJpbmciPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhQb3BTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKgl4bWxYUGF0aFBvcFN0cmluZwkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5Qb3BzIGEgc3RyaW5nIGZyb20gdGhlIHN0YWNrLCBoYW5kbGluZyBjb252ZXJzaW9uIGlmIG5lZWRlZC4gQ2hlY2sgZXJyb3Igd2l0aCAjeG1sWFBhdGhDaGVja0Vycm9yLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmFuIFhQYXRoIHBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RyaW5nPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBwb3NpdGlvbigpIFhQYXRoIGZ1bmN0aW9uIG51bWJlciBwb3NpdGlvbigpIFRoZSBwb3NpdGlvbiBmdW5jdGlvbiByZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udGV4dCBub2RlIGluIHRoZSBjb250ZXh0IG5vZGUgbGlzdC4gVGhlIGZpcnN0IHBvc2l0aW9uIGlzIDEsIGFuZCBzbyB0aGUgbGFzdCBwb3NpdGlvbiB3aWxsIGJlIGVxdWFsIHRvIGxhc3QoKS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMiIGlkPSJ4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXJzIGFsbCBkZWZhdWx0IFhQYXRoIGZ1bmN0aW9ucyBpbiB0aGlzIGNvbnRleHQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJGdW5jIiBpZD0ieG1sWFBhdGhSZWdpc3RlckZ1bmMiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhSZWdpc3RlckZ1bmM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhSZWdpc3RlckZ1bmMJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhGdW5jdGlvbiI+eG1sWFBhdGhGdW5jdGlvbjwvYT4gZik8YnIgLz4KKzwvcHJlPjxwPlJlZ2lzdGVyIGEgbmV3IGZ1bmN0aW9uLiBJZiBAZiBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzIHRoZSBmdW5jdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZnVuY3Rpb24gbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAiIGlkPSJ4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIj54bWxYUGF0aEZ1bmNMb29rdXBGdW5jPC9hPiBmLCA8YnIgLz4JCQkJCSB2b2lkICogZnVuY0N0eHQpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlcnMgYW4gZXh0ZXJuYWwgbWVjaGFuaXNtIHRvIGRvIGZ1bmN0aW9uIGxvb2t1cC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGxvb2t1cCBmdW5jdGlvbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZnVuY0N0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb29rdXAgZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJGdW5jTlMiIGlkPSJ4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUmVnaXN0ZXJGdW5jTlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhSZWdpc3RlckZ1bmNOUwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmksIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoRnVuY3Rpb24iPnhtbFhQYXRoRnVuY3Rpb248L2E+IGYpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyBmdW5jdGlvbi4gSWYgQGYgaXMgTlVMTCBpdCB1bnJlZ2lzdGVycyB0aGUgZnVuY3Rpb248L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFtZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5zX3VyaTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZ1bmN0aW9uIG5hbWVzcGFjZSBVUkk8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJOcyIgaWQ9InhtbFhQYXRoUmVnaXN0ZXJOcyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFJlZ2lzdGVyTnM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhSZWdpc3Rlck5zCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGNvbnN0IDxhIGhyZWY9ImxpYnhtbC14bWxzdHJpbmcuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqIHByZWZpeCwgPGJyIC8+CQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbnNfdXJpKTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgbmFtZXNwYWNlLiBJZiBAbnNfdXJpIGlzIE5VTEwgaXQgdW5yZWdpc3RlcnMgdGhlIG5hbWVzcGFjZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5wcmVmaXg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuYW1lc3BhY2UgcHJlZml4IGNhbm5vdCBiZSBOVUxMIG9yIGVtcHR5IHN0cmluZzwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bnNfdXJpPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmFtZXNwYWNlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlIiBpZD0ieG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPmludAl4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbHVlKTxiciAvPgorPC9wcmU+PHA+UmVnaXN0ZXIgYSBuZXcgdmFyaWFibGUgdmFsdWUuIElmIEB2YWx1ZSBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzIHRoZSB2YXJpYWJsZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFyaWFibGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsdWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YXJpYWJsZSB2YWx1ZSBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD4wIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvcjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCIgaWQ9InhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cAkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzwvYT4gZiwgPGJyIC8+CQkJCQkgdm9pZCAqIGRhdGEpPGJyIC8+Cis8L3ByZT48cD5yZWdpc3RlciBhbiBleHRlcm5hbCBtZWNoYW5pc20gdG8gZG8gdmFyaWFibGUgbG9va3VwPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmY8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb29rdXAgZnVuY3Rpb248L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRhdGE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsb29rdXAgZGF0YTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TIiBpZD0ieG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQJeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lLCA8YnIgLz4JCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmksIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsdWUpPGJyIC8+Cis8L3ByZT48cD5SZWdpc3RlciBhIG5ldyB2YXJpYWJsZSB2YWx1ZS4gSWYgQHZhbHVlIGlzIE5VTEwgaXQgdW5yZWdpc3RlcnMgdGhlIHZhcmlhYmxlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YXJpYWJsZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uc191cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YXJpYWJsZSBuYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWx1ZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHZhcmlhYmxlIHZhbHVlIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwIiBpZD0ieG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkNsZWFudXAgdGhlIFhQYXRoIGNvbnRleHQgZGF0YSBhc3NvY2lhdGVkIHRvIHJlZ2lzdGVyZWQgZnVuY3Rpb25zPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAiIGlkPSJ4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+Q2xlYW51cCB0aGUgWFBhdGggY29udGV4dCBkYXRhIGFzc29jaWF0ZWQgdG8gcmVnaXN0ZXJlZCB2YXJpYWJsZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAiIGlkPSJ4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXA8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+Q2xlYW51cCB0aGUgWFBhdGggY29udGV4dCBkYXRhIGFzc29jaWF0ZWQgdG8gcmVnaXN0ZXJlZCB2YXJpYWJsZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggY29udGV4dDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoUm9vdCIgaWQ9InhtbFhQYXRoUm9vdCI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFJvb3Q8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoUm9vdAkJCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8YnIgLz4KKzwvcHJlPjxwPkluaXRpYWxpemUgdGhlIGNvbnRleHQgdG8gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhSb3VuZEZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhSb3VuZEZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoUm91bmRGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhSb3VuZEZ1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgcm91bmQoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgcm91bmQobnVtYmVyKSBUaGUgcm91bmQgZnVuY3Rpb24gcmV0dXJucyB0aGUgbnVtYmVyIHRoYXQgaXMgY2xvc2VzdCB0byB0aGUgYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci4gSWYgdGhlcmUgYXJlIHR3byBzdWNoIG51bWJlcnMsIHRoZW4gdGhlIG9uZSB0aGF0IGlzIGV2ZW4gaXMgcmV0dXJuZWQuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbiIgaWQ9InhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgc3RhcnRzLXdpdGgoKSBYUGF0aCBmdW5jdGlvbiBib29sZWFuIHN0YXJ0cy13aXRoKHN0cmluZywgc3RyaW5nKSBUaGUgc3RhcnRzLXdpdGggZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgc3RhcnRzIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcsIGFuZCBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoU3RyaW5nRXZhbE51bWJlciIgaWQ9InhtbFhQYXRoU3RyaW5nRXZhbE51bWJlciI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXI8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5kb3VibGUJeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIpPGJyIC8+Cis8L3ByZT48cD5bMzBhXSBGbG9hdCA6Oj0gTnVtYmVyICgnZScgRGlnaXRzPyk/IFszMF0gTnVtYmVyIDo6PSBEaWdpdHMgKCcuJyBEaWdpdHM/KT8gfCAnLicgRGlnaXRzIFszMV0gRGlnaXRzIDo6PSBbMC05XSsgQ29tcGlsZSBhIE51bWJlciBpbiB0aGUgc3RyaW5nIEluIGNvbXBsZW1lbnQgb2YgdGhlIE51bWJlciBleHByZXNzaW9uLCB0aGlzIGZ1bmN0aW9uIGFsc28gaGFuZGxlcyBuZWdhdGl2ZSB2YWx1ZXMgOiAnLScgTnVtYmVyLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0cjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+QSBzdHJpbmcgdG8gc2NhbjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGRvdWJsZSB2YWx1ZS48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIiBpZD0ieG1sWFBhdGhTdHJpbmdGdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgc3RyaW5nKCkgWFBhdGggZnVuY3Rpb24gc3RyaW5nIHN0cmluZyhvYmplY3Q/KSBUaGUgc3RyaW5nIGZ1bmN0aW9uIGNvbnZlcnRzIGFuIG9iamVjdCB0byBhIHN0cmluZyBhcyBmb2xsb3dzOiAtIEEgbm9kZS1zZXQgaXMgY29udmVydGVkIHRvIGEgc3RyaW5nIGJ5IHJldHVybmluZyB0aGUgdmFsdWUgb2YgdGhlIG5vZGUgaW4gdGhlIG5vZGUtc2V0IHRoYXQgaXMgZmlyc3QgaW4gZG9jdW1lbnQgb3JkZXIuIElmIHRoZSBub2RlLXNldCBpcyBlbXB0eSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLiAtIEEgbnVtYmVyIGlzIGNvbnZlcnRlZCB0byBhIHN0cmluZyBhcyBmb2xsb3dzICsgTmFOIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIE5hTiArIHBvc2l0aXZlIHplcm8gaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgMCArIG5lZ2F0aXZlIHplcm8gaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgMCArIHBvc2l0aXZlIGluZmluaXR5IGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIEluZmluaXR5ICsgbmVnYXRpdmUgaW5maW5pdHkgaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgLUluZmluaXR5ICsgaWYgdGhlIG51bWJlciBpcyBhbiBpbnRlZ2VyLCB0aGUgbnVtYmVyIGlzIHJlcHJlc2VudGVkIGluIGRlY2ltYWwgZm9ybSBhcyBhIE51bWJlciB3aXRoIG5vIGRlY2ltYWwgcG9pbnQgYW5kIG5vIGxlYWRpbmcgemVyb3MsIHByZWNlZGVkIGJ5IGEgbWludXMgc2lnbiAoLSkgaWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZSArIG90aGVyd2lzZSwgdGhlIG51bWJlciBpcyByZXByZXNlbnRlZCBpbiBkZWNpbWFsIGZvcm0gYXMgYSBOdW1iZXIgaW5jbHVkaW5nIGEgZGVjaW1hbCBwb2ludCB3aXRoIGF0IGxlYXN0IG9uZSBkaWdpdCBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQgYW5kIGF0IGxlYXN0IG9uZSBkaWdpdCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCwgcHJlY2VkZWQgYnkgYSBtaW51cyBzaWduICgtKSBpZiB0aGUgbnVtYmVyIGlzIG5lZ2F0aXZlOyB0aGVyZSBtdXN0IGJlIG5vIGxlYWRpbmcgemVyb3MgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGFwYXJ0IHBvc3NpYmx5IGZyb20gdGhlIG9uZSByZXF1aXJlZCBkaWdpdCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQ7IGJleW9uZCB0aGUgb25lIHJlcXVpcmVkIGRpZ2l0IGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IHRoZXJlIG11c3QgYmUgYXMgbWFueSwgYnV0IG9ubHkgYXMgbWFueSwgbW9yZSBkaWdpdHMgYXMgYXJlIG5lZWRlZCB0byB1bmlxdWVseSBkaXN0aW5ndWlzaCB0aGUgbnVtYmVyIGZyb20gYWxsIG90aGVyIElFRUUgNzU0IG51bWVyaWMgdmFsdWVzLiAtIFRoZSBib29sZWFuIGZhbHNlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIGZhbHNlLiBUaGUgYm9vbGVhbiB0cnVlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIHRydWUuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBhIG5vZGUtc2V0IHdpdGggdGhlIGNvbnRleHQgbm9kZSBhcyBpdHMgb25seSBtZW1iZXIuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBzdHJpbmctbGVuZ3RoKCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIHN0cmluZy1sZW5ndGgoc3RyaW5nPykgVGhlIHN0cmluZy1sZW5ndGggcmV0dXJucyB0aGUgbnVtYmVyIG9mIDxhIGhyZWY9ImxpYnhtbC1TQVguaHRtbCNjaGFyYWN0ZXJzIj5jaGFyYWN0ZXJzPC9hPiBpbiB0aGUgc3RyaW5nIChzZWUgWzMuNiBTdHJpbmdzXSkuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB0aGUgY29udGV4dCBub2RlIGNvbnZlcnRlZCB0byBhIHN0cmluZywgaW4gb3RoZXIgd29yZHMgdGhlIHZhbHVlIG9mIHRoZSBjb250ZXh0IG5vZGUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYXJnczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG51bWJlciBvZiBhcmd1bWVudHM8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFN1YlZhbHVlcyIgaWQ9InhtbFhQYXRoU3ViVmFsdWVzIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoU3ViVmFsdWVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFN1YlZhbHVlcwkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBzdWJ0cmFjdGlvbiBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0czogVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSBzdWJzdHJpbmctYWZ0ZXIoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgc3Vic3RyaW5nLWFmdGVyKHN0cmluZywgc3RyaW5nKSBUaGUgc3Vic3RyaW5nLWFmdGVyIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1YnN0cmluZyBvZiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIHRoYXQgZm9sbG93cyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZyBpbiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nLCBvciB0aGUgZW1wdHkgc3RyaW5naSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIGRvZXMgbm90IGNvbnRhaW4gdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcuIEZvciBleGFtcGxlLCBzdWJzdHJpbmctYWZ0ZXIoIjE5OTkvMDQvMDEiLCIvIikgcmV0dXJucyAwNC8wMSwgYW5kIHN1YnN0cmluZy1hZnRlcigiMTk5OS8wNC8wMSIsIjE5IikgcmV0dXJucyA5OS8wNC8wMS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24iIGlkPSJ4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHN1YnN0cmluZy1iZWZvcmUoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgc3Vic3RyaW5nLWJlZm9yZShzdHJpbmcsIHN0cmluZykgVGhlIHN1YnN0cmluZy1iZWZvcmUgZnVuY3Rpb24gcmV0dXJucyB0aGUgc3Vic3RyaW5nIG9mIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgdGhhdCBwcmVjZWRlcyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZyBpbiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nLCBvciB0aGUgZW1wdHkgc3RyaW5nIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgZG9lcyBub3QgY29udGFpbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZy4gRm9yIGV4YW1wbGUsIHN1YnN0cmluZy1iZWZvcmUoIjE5OTkvMDQvMDEiLCIvIikgcmV0dXJucyAxOTk5LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiIgaWQ9InhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgc3Vic3RyaW5nKCkgWFBhdGggZnVuY3Rpb24gc3RyaW5nIHN1YnN0cmluZyhzdHJpbmcsIG51bWJlciwgbnVtYmVyPykgVGhlIHN1YnN0cmluZyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdWJzdHJpbmcgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IHN0YXJ0aW5nIGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgaW4gdGhlIHNlY29uZCBhcmd1bWVudCB3aXRoIGxlbmd0aCBzcGVjaWZpZWQgaW4gdGhlIHRoaXJkIGFyZ3VtZW50LiBGb3IgZXhhbXBsZSwgc3Vic3RyaW5nKCIxMjM0NSIsMiwzKSByZXR1cm5zICIyMzQiLiBJZiB0aGUgdGhpcmQgYXJndW1lbnQgaXMgbm90IHNwZWNpZmllZCwgaXQgcmV0dXJucyB0aGUgc3Vic3RyaW5nIHN0YXJ0aW5nIGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgaW4gdGhlIHNlY29uZCBhcmd1bWVudCBhbmQgY29udGludWluZyB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuIEZvciBleGFtcGxlLCBzdWJzdHJpbmcoIjEyMzQ1IiwyKSByZXR1cm5zICIyMzQ1Ii4gTW9yZSBwcmVjaXNlbHksIGVhY2ggY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcgKHNlZSBbMy42IFN0cmluZ3NdKSBpcyBjb25zaWRlcmVkIHRvIGhhdmUgYSBudW1lcmljIHBvc2l0aW9uOiB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpcyAxLCB0aGUgcG9zaXRpb24gb2YgdGhlIHNlY29uZCBjaGFyYWN0ZXIgaXMgMiBhbmQgc28gb24uIFRoZSByZXR1cm5lZCBzdWJzdHJpbmcgY29udGFpbnMgdGhvc2UgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGZvciB3aGljaCB0aGUgcG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNlY29uZCBhcmd1bWVudCBhbmQsIGlmIHRoZSB0aGlyZCBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIGxlc3MgdGhhbiB0aGUgc3VtIG9mIHRoZSBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50czsgdGhlIGNvbXBhcmlzb25zIGFuZCBhZGRpdGlvbiB1c2VkIGZvciB0aGUgYWJvdmUgZm9sbG93IHRoZSBzdGFuZGFyZCBJRUVFIDc1NCBydWxlcy4gVGh1czogLSBzdWJzdHJpbmcoIjEyMzQ1IiwgMS41LCAyLjYpIHJldHVybnMgIjIzNCIgLSBzdWJzdHJpbmcoIjEyMzQ1IiwgMCwgMykgcmV0dXJucyAiMTIiIC0gc3Vic3RyaW5nKCIxMjM0NSIsIDAgZGl2IDAsIDMpIHJldHVybnMgIiIgLSBzdWJzdHJpbmcoIjEyMzQ1IiwgMSwgMCBkaXYgMCkgcmV0dXJucyAiIiAtIHN1YnN0cmluZygiMTIzNDUiLCAtNDIsIDEgZGl2IDApIHJldHVybnMgIjEyMzQ1IiAtIHN1YnN0cmluZygiMTIzNDUiLCAtMSBkaXYgMCwgMSBkaXYgMCkgcmV0dXJucyAiIjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhTdW1GdW5jdGlvbiIgaWQ9InhtbFhQYXRoU3VtRnVuY3Rpb24iPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhTdW1GdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhTdW1GdW5jdGlvbgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPGJyIC8+Cis8L3ByZT48cD5JbXBsZW1lbnQgdGhlIHN1bSgpIFhQYXRoIGZ1bmN0aW9uIG51bWJlciBzdW0obm9kZS1zZXQpIFRoZSBzdW0gZnVuY3Rpb24gcmV0dXJucyB0aGUgc3VtIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIG5vZGVzIGluIHRoZSBhcmd1bWVudCBub2RlLXNldC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoVHJhaWxpbmciIGlkPSJ4bWxYUGF0aFRyYWlsaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoVHJhaWxpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aFRyYWlsaW5nCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyB0cmFpbGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCkgQG5vZGVzMSBhbmQgQG5vZGVzMiBhcmUgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyLCB0aGVuICN4bWxYUGF0aFRyYWlsaW5nU29ydGVkIGlzIGNhbGxlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5vZGVzMjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBub2RlLXNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGVzIGluIEBub2RlczEgdGhhdCBmb2xsb3cgdGhlIGZpcnN0IG5vZGUgaW4gQG5vZGVzMiBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzMSBpZiBAbm9kZXMyIGlzIE5VTEwgb3IgZW1wdHkgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzMSBkb2Vzbid0IGNvbnRhaW4gQG5vZGVzMjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQiIGlkPSJ4bWxYUGF0aFRyYWlsaW5nU29ydGVkIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPgl4bWxYUGF0aFRyYWlsaW5nU29ydGVkCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBub2RlczEsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbE5vZGVTZXRQdHIiPnhtbE5vZGVTZXRQdHI8L2E+IG5vZGVzMik8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyB0cmFpbGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5ub2RlczE8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm9kZXMyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXI8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBub2RlcyBpbiBAbm9kZXMxIHRoYXQgZm9sbG93IHRoZSBmaXJzdCBub2RlIGluIEBub2RlczIgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlczEgaWYgQG5vZGVzMiBpcyBOVUxMIG9yIGVtcHR5IG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlczEgZG9lc24ndCBjb250YWluIEBub2RlczI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIiBpZD0ieG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSB0cmFuc2xhdGUoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgdHJhbnNsYXRlKHN0cmluZywgc3RyaW5nLCBzdHJpbmcpIFRoZSB0cmFuc2xhdGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIHdpdGggb2NjdXJyZW5jZXMgb2YgPGEgaHJlZj0ibGlieG1sLVNBWC5odG1sI2NoYXJhY3RlcnMiPmNoYXJhY3RlcnM8L2E+IGluIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nIHJlcGxhY2VkIGJ5IHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gdGhlIHRoaXJkIGFyZ3VtZW50IHN0cmluZy4gRm9yIGV4YW1wbGUsIHRyYW5zbGF0ZSgiYmFyIiwiYWJjIiwiQUJDIikgcmV0dXJucyB0aGUgc3RyaW5nIEJBci4gSWYgdGhlcmUgaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcgd2l0aCBubyBjaGFyYWN0ZXIgYXQgYSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZSB0aGlyZCBhcmd1bWVudCBzdHJpbmcgKGJlY2F1c2UgdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcgaXMgbG9uZ2VyIHRoYW4gdGhlIHRoaXJkIGFyZ3VtZW50IHN0cmluZyksIHRoZW4gb2NjdXJyZW5jZXMgb2YgdGhhdCBjaGFyYWN0ZXIgaW4gdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBhcmUgcmVtb3ZlZC4gRm9yIGV4YW1wbGUsIHRyYW5zbGF0ZSgiLS1hYWEtLSIsImFiYy0iLCJBQkMiKTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJndW1lbnRzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhUcnVlRnVuY3Rpb24iIGlkPSJ4bWxYUGF0aFRydWVGdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFRydWVGdW5jdGlvbjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFBhdGhUcnVlRnVuY3Rpb24JCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCwgPGJyIC8+CQkJCQkgaW50IG5hcmdzKTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSB0cnVlKCkgWFBhdGggZnVuY3Rpb24gYm9vbGVhbiB0cnVlKCk8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hcmdzPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbnVtYmVyIG9mIGFyZ3VtZW50czwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoVmFsdWVGbGlwU2lnbiIgaWQ9InhtbFhQYXRoVmFsdWVGbGlwU2lnbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFZhbHVlRmxpcFNpZ248L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQYXRoVmFsdWVGbGlwU2lnbgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0KTxiciAvPgorPC9wcmU+PHA+SW1wbGVtZW50IHRoZSB1bmFyeSAtIG9wZXJhdGlvbiBvbiBhbiBYUGF0aCBvYmplY3QgVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIFBhcnNlciBjb250ZXh0PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhWYXJpYWJsZUxvb2t1cCIgaWQ9InhtbFhQYXRoVmFyaWFibGVMb29rdXAiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhWYXJpYWJsZUxvb2t1cDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhWYXJpYWJsZUxvb2t1cAkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuYW1lKTxiciAvPgorPC9wcmU+PHA+U2VhcmNoIGluIHRoZSBWYXJpYWJsZSBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIHZhcmlhYmxlIHZhbHVlLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUGF0aCBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uYW1lPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdmFyaWFibGUgbmFtZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+YSBjb3B5IG9mIHRoZSB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoVmFyaWFibGVMb29rdXBOUyIgaWQ9InhtbFhQYXRoVmFyaWFibGVMb29rdXBOUyI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoVmFyaWFibGVMb29rdXBOUwkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJCQkgY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogbmFtZSwgPGJyIC8+CQkJCQkJCSBjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBuc191cmkpPGJyIC8+Cis8L3ByZT48cD5TZWFyY2ggaW4gdGhlIFZhcmlhYmxlIGFycmF5IG9mIHRoZSBjb250ZXh0IGZvciB0aGUgZ2l2ZW4gdmFyaWFibGUgdmFsdWUuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhQYXRoIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm5hbWU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YXJpYWJsZSBuYW1lPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5uc191cmk8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSB2YXJpYWJsZSBuYW1lc3BhY2UgVVJJPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQYXRoV3JhcENTdHJpbmciIGlkPSJ4bWxYUGF0aFdyYXBDU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoV3JhcENTdHJpbmc8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQYXRoV3JhcENTdHJpbmcJKGNoYXIgKiB2YWwpPGJyIC8+Cis8L3ByZT48cD5XcmFwcyBhIHN0cmluZyBpbnRvIGFuIFhQYXRoIG9iamVjdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBjaGFyICogdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aFdyYXBFeHRlcm5hbCIgaWQ9InhtbFhQYXRoV3JhcEV4dGVybmFsIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoV3JhcEV4dGVybmFsPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUGF0aFdyYXBFeHRlcm5hbAkodm9pZCAqIHZhbCk8YnIgLz4KKzwvcHJlPjxwPldyYXBzIHRoZSBAdmFsIGRhdGEgaW50byBhbiBYUGF0aCBvYmplY3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgdXNlciBkYXRhPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhXcmFwTm9kZVNldCIgaWQ9InhtbFhQYXRoV3JhcE5vZGVTZXQiPjwvYT5GdW5jdGlvbjogeG1sWFBhdGhXcmFwTm9kZVNldDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhXcmFwTm9kZVNldAkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+V3JhcCB0aGUgTm9kZXNldCBAdmFsIGluIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWw8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBOb2RlUHRyIHZhbHVlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFBhdGhXcmFwU3RyaW5nIiBpZD0ieG1sWFBhdGhXcmFwU3RyaW5nIj48L2E+RnVuY3Rpb246IHhtbFhQYXRoV3JhcFN0cmluZzwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFBhdGhXcmFwU3RyaW5nCSg8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiB2YWwpPGJyIC8+Cis8L3ByZT48cD5XcmFwcyB0aGUgQHZhbCBzdHJpbmcgaW50byBhbiBYUGF0aCBvYmplY3QuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUGF0aGVycm9yIiBpZD0ieG1sWFBhdGhlcnJvciI+PC9hPkZ1bmN0aW9uOiB4bWxYUGF0aGVycm9yPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUGF0aGVycm9yCQkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBjb25zdCBjaGFyICogZmlsZSwgPGJyIC8+CQkJCQkgaW50IGxpbmUsIDxiciAvPgkJCQkJIGludCBubyk8YnIgLz4KKzwvcHJlPjxwPkZvcm1hdHMgYW4gZXJyb3IgbWVzc2FnZS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBhdGggUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBmaWxlIG5hbWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmxpbmU8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBsaW5lIG51bWJlcjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bm88L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlcnJvciBudW1iZXI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9saWJ4bWwteHBvaW50ZXIuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU0ZWIxMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2h0bWwvbGlieG1sLXhwb2ludGVyLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBkaXYuZGVwcmVjYXRlZCBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JvcmRlci1jb2xvcjpyZWR9CisgICAgICBwcmUucHJvZ3JhbWxpc3Rpbmcge2JvcmRlci1zdHlsZTogZG91YmxlO2JhY2tncm91bmQ6ICNFRUNGQTF9CisgICAgPC9zdHlsZT48dGl0bGU+TW9kdWxlIHhwb2ludGVyIGZyb20gbGlieG1sMjwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSIuLi9lcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iLi4vZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0iLi4vdzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9Ii4uL3JlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iLi4vTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5Nb2R1bGUgeHBvaW50ZXIgZnJvbSBsaWJ4bWwyPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0iLi4vc2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIiBocmVmPSIuLi9pbmRleC5odG1sIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2RvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9Ii4uL2V4YW1wbGVzL2luZGV4Lmh0bWwiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnhtbC1wYXJzZXIuaHRtbCI+UGFyc2VyIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sIj5UcmVlIEFQSTwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9DaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSIuLi9BUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii4uL0FQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iLi4vQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj48dHIgdmFsaWduPSJtaWRkbGUiPjx0ZD48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpYnhtbC14cGF0aEludGVybmFscy5odG1sIj48aW1nIHNyYz0ibGVmdC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiIC8+PC9hPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJsaWJ4bWwteHBhdGhJbnRlcm5hbHMuaHRtbCI+eHBhdGhJbnRlcm5hbHM8L2E+PC90aD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0idXAucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJVcCIgLz48L2E+PC90ZD48dGggYWxpZ249ImxlZnQiPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBkb2N1bWVudGF0aW9uPC9hPjwvdGg+PHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIiAvPjwvYT48L3RkPjx0aCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9hPjwvdGg+PC90cj48L3RhYmxlPjxwPkFQSSB0byBoYW5kbGUgWE1MIFBvaW50ZXJzIEJhc2UgaW1wbGVtZW50YXRpb24gd2FzIG1hZGUgYWNjb3JkaW5nbHkgdG8gVzNDIENhbmRpZGF0ZSBSZWNvbW1lbmRhdGlvbiA3IEp1bmUgMjAwMDwvcD48aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5TdHJ1Y3R1cmUgPGEgaHJlZj0iI3htbExvY2F0aW9uU2V0Ij54bWxMb2NhdGlvblNldDwvYT48YnIgLz5zdHJ1Y3QgX3htbExvY2F0aW9uU2V0Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+VHlwZWRlZiA8YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldCI+eG1sTG9jYXRpb25TZXQ8L2E+ICogPGEgbmFtZT0ieG1sTG9jYXRpb25TZXRQdHIiIGlkPSJ4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+Cis8L3ByZT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ckJ1aWxkTm9kZUxpc3QiPnhtbFhQdHJCdWlsZE5vZGVMaXN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvYmopPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ckV2YWwiPnhtbFhQdHJFdmFsPC9hPgkoY29uc3QgPGEgaHJlZj0ibGlieG1sLXhtbHN0cmluZy5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICogc3RyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aENvbnRleHRQdHIiPnhtbFhQYXRoQ29udGV4dFB0cjwvYT4gY3R4KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUiPnhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiPnhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cjwvYT4gY3R4dCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUHRyRnJlZUxvY2F0aW9uU2V0Ij54bWxYUHRyRnJlZUxvY2F0aW9uU2V0PC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gb2JqKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQdHJMb2NhdGlvblNldEFkZCI+eG1sWFB0ckxvY2F0aW9uU2V0QWRkPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUiPnhtbFhQdHJMb2NhdGlvblNldENyZWF0ZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJPGEgaHJlZj0iI3htbFhQdHJMb2NhdGlvblNldERlbCI+eG1sWFB0ckxvY2F0aW9uU2V0RGVsPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+IHZhbDEsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+IHZhbDIpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAk8YSBocmVmPSIjeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlIj54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L2E+CSg8YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+IGN1ciwgPGJyIC8+CQkJCQkgaW50IHZhbCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UiPnhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZTwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhDb250ZXh0UHRyIj54bWxYUGF0aENvbnRleHRQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3Q29udGV4dCI+eG1sWFB0ck5ld0NvbnRleHQ8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbERvY1B0ciI+eG1sRG9jUHRyPC9hPiBkb2MsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGhlcmUsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IG9yaWdpbik8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0Ij54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sTm9kZVNldFB0ciI+eG1sTm9kZVNldFB0cjwvYT4gc2V0KTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIj54bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlczwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbmQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ck5ld1JhbmdlIj54bWxYUHRyTmV3UmFuZ2U8L2E+CSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHN0YXJ0LCA8YnIgLz4JCQkJCSBpbnQgc3RhcnRpbmRleCwgPGJyIC8+CQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbmQsIDxiciAvPgkJCQkJIGludCBlbmRpbmRleCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0Ij54bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0PC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGVuZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiPnhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludDwvYT4JKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBlbmQpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0ck5ld1JhbmdlTm9kZXMiPnhtbFhQdHJOZXdSYW5nZU5vZGVzPC9hPgkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZW5kKTwvcHJlPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JPGEgaHJlZj0iI3htbFhQdHJOZXdSYW5nZVBvaW50Tm9kZSI+eG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlPC9hPgkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBzdGFydCwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CTxhIGhyZWY9IiN4bWxYUHRyTmV3UmFuZ2VQb2ludHMiPnhtbFhQdHJOZXdSYW5nZVBvaW50czwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gc3RhcnQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGVuZCk8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCTxhIGhyZWY9IiN4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uIj54bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uPC9hPgkJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoUGFyc2VyQ29udGV4dFB0ciI+eG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyPC9hPiBjdHh0LCA8YnIgLz4JCQkJCSBpbnQgbmFyZ3MpPC9wcmU+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgk8YSBocmVmPSIjeG1sWFB0cldyYXBMb2NhdGlvblNldCI+eG1sWFB0cldyYXBMb2NhdGlvblNldDwvYT4JKDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gdmFsKTwvcHJlPgorPGgyPkRlc2NyaXB0aW9uPC9oMj4KKzxoMz48YSBuYW1lPSJ4bWxMb2NhdGlvblNldCIgaWQ9InhtbExvY2F0aW9uU2V0Ij5TdHJ1Y3R1cmUgeG1sTG9jYXRpb25TZXQ8L2E+PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U3RydWN0dXJlIHhtbExvY2F0aW9uU2V0PGJyIC8+c3RydWN0IF94bWxMb2NhdGlvblNldCB7CisgICAgaW50CWxvY05yCTogbnVtYmVyIG9mIGxvY2F0aW9ucyBpbiB0aGUgc2V0CisgICAgaW50CWxvY01heAk6IHNpemUgb2YgdGhlIGFycmF5IGFzIGFsbG9jYXRlZAorICAgIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gKglsb2NUYWIJOiBhcnJheSBvZiBsb2NhdGlvbnMKK308L3ByZT48aDM+PGEgbmFtZT0ieG1sWFB0ckJ1aWxkTm9kZUxpc3QiIGlkPSJ4bWxYUHRyQnVpbGROb2RlTGlzdCI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyQnVpbGROb2RlTGlzdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4JeG1sWFB0ckJ1aWxkTm9kZUxpc3QJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2JqKTxiciAvPgorPC9wcmU+PHA+QnVpbGQgYSBub2RlIGxpc3QgdHJlZSBjb3B5IG9mIHRoZSBYUG9pbnRlciByZXN1bHQuIFRoaXMgd2lsbCBkcm9wIEF0dHJpYnV0ZXMgYW5kIE5hbWVzcGFjZSBkZWNsYXJhdGlvbnMuPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b2JqPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBvaW50ZXIgcmVzdWx0IGZyb20gdGhlIGV2YWx1YXRpb24uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGxpc3Qgb3IgTlVMTC4gdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgbm9kZSB0cmVlLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQdHJFdmFsIiBpZD0ieG1sWFB0ckV2YWwiPjwvYT5GdW5jdGlvbjogeG1sWFB0ckV2YWw8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJFdmFsCShjb25zdCA8YSBocmVmPSJsaWJ4bWwteG1sc3RyaW5nLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKiBzdHIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPiBjdHgpPGJyIC8+Cis8L3ByZT48cD5FdmFsdWF0ZSB0aGUgWFBhdGggTG9jYXRpb24gUGF0aCBpbiB0aGUgZ2l2ZW4gY29udGV4dC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdHI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUG9pbnRlciBleHByZXNzaW9uPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHg8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUG9pbnRlciBjb250ZXh0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiByZXN1bHRpbmcgZnJvbSB0aGUgZXZhbHVhdGlvbiBvciBOVUxMLiB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZSIgaWQ9InhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUiPjwvYT5GdW5jdGlvbjogeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQpPGJyIC8+Cis8L3ByZT48cD5bOF0gUHJlZGljYXRlIDo6PSAnWycgUHJlZGljYXRlRXhwciAnXScgWzldIFByZWRpY2F0ZUV4cHIgOjo9IEV4cHIgRXZhbHVhdGUgYSBwcmVkaWNhdGUgYXMgaW4geG1sWFBhdGhFdmFsUHJlZGljYXRlKCkgYnV0IGZvciBhIExvY2F0aW9uIFNldCBpbnN0ZWFkIG9mIGEgbm9kZSBzZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgWFBvaW50ZXIgUGFyc2VyIGNvbnRleHQ8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUHRyRnJlZUxvY2F0aW9uU2V0IiBpZD0ieG1sWFB0ckZyZWVMb2NhdGlvblNldCI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUHRyRnJlZUxvY2F0aW9uU2V0CQkoPGEgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiBvYmopPGJyIC8+Cis8L3ByZT48cD5GcmVlIHRoZSBMb2NhdGlvblNldCBjb21wb3VuZCAobm90IHRoZSBhY3R1YWwgcmFuZ2VzICEpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9iajwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gdG8gZnJlZTwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQdHJMb2NhdGlvblNldEFkZCIgaWQ9InhtbFhQdHJMb2NhdGlvblNldEFkZCI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyTG9jYXRpb25TZXRBZGQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQdHJMb2NhdGlvblNldEFkZAkJKDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gY3VyLCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8YnIgLz4KKzwvcHJlPjxwPmFkZCBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHRvIGFuIGV4aXN0aW5nIExvY2F0aW9uU2V0IElmIHRoZSBsb2NhdGlvbiBhbHJlYWR5IGV4aXN0IGluIHRoZSBzZXQgQHZhbCBpcyBmcmVlZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIHJhbmdlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlIiBpZD0ieG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlIj48L2E+RnVuY3Rpb246IHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4JeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHZhbCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBvaW50ZXIuaHRtbCN4bWxMb2NhdGlvblNldFB0ciI+eG1sTG9jYXRpb25TZXRQdHI8L2E+IG9mIHR5cGUgZG91YmxlIGFuZCBvZiB2YWx1ZSBAdmFsPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiBpbml0aWFsIHhtbFhQYXRoT2JqZWN0UHRyLCBvciBOVUxMPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ckxvY2F0aW9uU2V0RGVsIiBpZD0ieG1sWFB0ckxvY2F0aW9uU2V0RGVsIj48L2E+RnVuY3Rpb246IHhtbFhQdHJMb2NhdGlvblNldERlbDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnZvaWQJeG1sWFB0ckxvY2F0aW9uU2V0RGVsCQkoPGEgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+UmVtb3ZlcyBhbiA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGZyb20gYW4gZXhpc3RpbmcgTG9jYXRpb25TZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIHJhbmdlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD5hbiA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UiIGlkPSJ4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyTG9jYXRpb25TZXRNZXJnZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4JeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UJKDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gdmFsMSwgPGJyIC8+CQkJCQkJIDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gdmFsMik8YnIgLz4KKzwvcHJlPjxwPk1lcmdlcyB0d28gcmFuZ2VzZXRzLCBhbGwgcmFuZ2VzIGZyb20gQHZhbDIgYXJlIGFkZGVkIHRvIEB2YWwxPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsMTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGZpcnN0IExvY2F0aW9uU2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD52YWwyPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc2Vjb25kIExvY2F0aW9uU2V0PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD52YWwxIG9uY2UgZXh0ZW5kZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQdHJMb2NhdGlvblNldFJlbW92ZSIgaWQ9InhtbFhQdHJMb2NhdGlvblNldFJlbW92ZSI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj52b2lkCXhtbFhQdHJMb2NhdGlvblNldFJlbW92ZQkoPGEgaHJlZj0ibGlieG1sLXhwb2ludGVyLmh0bWwjeG1sTG9jYXRpb25TZXRQdHIiPnhtbExvY2F0aW9uU2V0UHRyPC9hPiBjdXIsIDxiciAvPgkJCQkJIGludCB2YWwpPGJyIC8+Cis8L3ByZT48cD5SZW1vdmVzIGFuIGVudHJ5IGZyb20gYW4gZXhpc3RpbmcgTG9jYXRpb25TZXQgbGlzdC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBpbml0aWFsIHJhbmdlIHNldDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgaW5kZXggdG8gcmVtb3ZlPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIiBpZD0ieG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIj48L2E+RnVuY3Rpb246IHhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHN0YXJ0KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSByYW5nZSB1c2luZyBhIHNpbmdsZSBub2RlczwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgYW5kIGVuZGluZyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld0NvbnRleHQiIGlkPSJ4bWxYUHRyTmV3Q29udGV4dCI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyTmV3Q29udGV4dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dFB0ciI+eG1sWFBhdGhDb250ZXh0UHRyPC9hPgl4bWxYUHRyTmV3Q29udGV4dAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gZG9jLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBoZXJlLCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBvcmlnaW4pPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgWFBvaW50ZXIgY29udGV4dDwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmRvYzwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIFhNTCBkb2N1bWVudDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aGVyZTwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5vZGUgdGhhdCBkaXJlY3RseSBjb250YWlucyB0aGUgWFBvaW50ZXIgYmVpbmcgZXZhbHVhdGVkIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm9yaWdpbjwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVsZW1lbnQgZnJvbSB3aGljaCBhIHVzZXIgb3IgcHJvZ3JhbSBpbml0aWF0ZWQgdHJhdmVyc2FsIG9mIHRoZSBsaW5rLCBvciBOVUxMLjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoQ29udGV4dCI+eG1sWFBhdGhDb250ZXh0PC9hPiBqdXN0IGFsbG9jYXRlZC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0IiBpZD0ieG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0CSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxOb2RlU2V0UHRyIj54bWxOb2RlU2V0UHRyPC9hPiBzZXQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIExvY2F0aW9uU2V0IGFuZCBpbml0aWFsaXplIGl0IHdpdGggYWxsIHRoZSBub2RlcyBmcm9tIEBzZXQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zZXQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPmEgbm9kZSBzZXQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyIgaWQ9InhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIj48L2E+RnVuY3Rpb246IHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcwkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgTG9jYXRpb25TZXQgYW5kIGluaXRpYWxpemUgaXQgd2l0aCB0aGUgc2luZ2xlIHJhbmdlIG1hZGUgb2YgdGhlIHR3byBub2RlcyBAc3RhcnQgYW5kIEBlbmQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0IE5vZGVQdHIgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuZCBOb2RlUHRyIHZhbHVlIG9yIE5VTEw8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUHRyTmV3UmFuZ2UiIGlkPSJ4bWxYUHRyTmV3UmFuZ2UiPjwvYT5GdW5jdGlvbjogeG1sWFB0ck5ld1JhbmdlPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyTmV3UmFuZ2UJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQsIDxiciAvPgkJCQkJIGludCBzdGFydGluZGV4LCA8YnIgLz4JCQkJCSA8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IGVuZCwgPGJyIC8+CQkJCQkgaW50IGVuZGluZGV4KTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSByYW5nZTwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnN0YXJ0PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgc3RhcnRpbmcgbm9kZTwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RhcnRpbmRleDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0IGluZGV4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmRpbmcgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZGluZGV4PC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5kaW5nIGluZGV4PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCIgaWQ9InhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QiPjwvYT5GdW5jdGlvbjogeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdAkoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBzdGFydCwgPGJyIC8+CQkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGVuZCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgcmFuZ2UgZnJvbSBhIG5vdCB0byBhbiBvYmplY3Q8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuZGluZyBvYmplY3Q8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiIGlkPSJ4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiPjwvYT5GdW5jdGlvbjogeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50PC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQJKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gc3RhcnQsIDxiciAvPgkJCQkJCQkgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBlbmQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIHJhbmdlIGZyb20gYSBub2RlIHRvIGEgcG9pbnQ8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuZGluZyBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+UmV0dXJuczwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQdHJOZXdSYW5nZU5vZGVzIiBpZD0ieG1sWFB0ck5ld1JhbmdlTm9kZXMiPjwvYT5GdW5jdGlvbjogeG1sWFB0ck5ld1JhbmdlTm9kZXM8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJOZXdSYW5nZU5vZGVzCSg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbE5vZGVQdHIiPnhtbE5vZGVQdHI8L2E+IHN0YXJ0LCA8YnIgLz4JCQkJCQkgPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxOb2RlUHRyIj54bWxOb2RlUHRyPC9hPiBlbmQpPGJyIC8+Cis8L3ByZT48cD5DcmVhdGUgYSBuZXcgPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPiBvZiB0eXBlIHJhbmdlIHVzaW5nIDIgbm9kZXM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuZDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIGVuZGluZyBub2RlPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48aDM+PGEgbmFtZT0ieG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIiBpZD0ieG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlIj48L2E+RnVuY3Rpb246IHhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4JeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlCSg8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IHN0YXJ0LCA8YnIgLz4JCQkJCQkJIDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gZW5kKTxiciAvPgorPC9wcmU+PHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gb2YgdHlwZSByYW5nZSBmcm9tIGEgcG9pbnQgdG8gYSBub2RlPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c3RhcnQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBzdGFydGluZyBwb2ludDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5kPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgZW5kaW5nIG5vZGU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUHRyTmV3UmFuZ2VQb2ludHMiIGlkPSJ4bWxYUHRyTmV3UmFuZ2VQb2ludHMiPjwvYT5GdW5jdGlvbjogeG1sWFB0ck5ld1JhbmdlUG9pbnRzPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhPYmplY3RQdHIiPnhtbFhQYXRoT2JqZWN0UHRyPC9hPgl4bWxYUHRyTmV3UmFuZ2VQb2ludHMJKDxhIGhyZWY9ImxpYnhtbC14cGF0aC5odG1sI3htbFhQYXRoT2JqZWN0UHRyIj54bWxYUGF0aE9iamVjdFB0cjwvYT4gc3RhcnQsIDxiciAvPgkJCQkJCSA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IGVuZCk8YnIgLz4KKzwvcHJlPjxwPkNyZWF0ZSBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+IG9mIHR5cGUgcmFuZ2UgdXNpbmcgMiBQb2ludHM8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIC8+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zdGFydDwvdHQ+PC9pPjo8L3NwYW4+PC90ZD48dGQ+dGhlIHN0YXJ0aW5nIHBvaW50PC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBlbmRpbmcgcG9pbnQ8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxoMz48YSBuYW1lPSJ4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uIiBpZD0ieG1sWFB0clJhbmdlVG9GdW5jdGlvbiI+PC9hPkZ1bmN0aW9uOiB4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZAl4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uCQkoPGEgaHJlZj0ibGlieG1sLXhwYXRoLmh0bWwjeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIj54bWxYUGF0aFBhcnNlckNvbnRleHRQdHI8L2E+IGN0eHQsIDxiciAvPgkJCQkJIGludCBuYXJncyk8YnIgLz4KKzwvcHJlPjxwPkltcGxlbWVudCB0aGUgcmFuZ2UtdG8oKSBYUG9pbnRlciBmdW5jdGlvbjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgLz48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN0eHQ8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBYUG9pbnRlciBQYXJzZXIgY29udGV4dDwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+bmFyZ3M8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBudW1iZXIgb2YgYXJnczwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGgzPjxhIG5hbWU9InhtbFhQdHJXcmFwTG9jYXRpb25TZXQiIGlkPSJ4bWxYUHRyV3JhcExvY2F0aW9uU2V0Ij48L2E+RnVuY3Rpb246IHhtbFhQdHJXcmFwTG9jYXRpb25TZXQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+CXhtbFhQdHJXcmFwTG9jYXRpb25TZXQJKDxhIGhyZWY9ImxpYnhtbC14cG9pbnRlci5odG1sI3htbExvY2F0aW9uU2V0UHRyIj54bWxMb2NhdGlvblNldFB0cjwvYT4gdmFsKTxiciAvPgorPC9wcmU+PHA+V3JhcCB0aGUgTG9jYXRpb25TZXQgQHZhbCBpbiBhIG5ldyA8YSBocmVmPSJsaWJ4bWwteHBhdGguaHRtbCN4bWxYUGF0aE9iamVjdFB0ciI+eG1sWFBhdGhPYmplY3RQdHI8L2E+PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiAvPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dmFsPC90dD48L2k+Ojwvc3Bhbj48L3RkPjx0ZD50aGUgTG9jYXRpb25TZXQgdmFsdWU8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxwPjxhIGhyZWY9Ii4uL2J1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9yaWdodC5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL3JpZ2h0LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjgzMmUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC9yaWdodC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC91cC5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy9odG1sL3VwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIzZTJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaHRtbC91cC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaW5kZXguaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVlYjMzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwzMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KKyAgICA8bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+CisgICAgPHRpdGxlPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L3RpdGxlPgorICA8L2hlYWQ+CisgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkIHdpZHRoPSIxMjAiPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPgorICAgICAgICAgICAgPGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkIHdpZHRoPSIxODAiPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+CisgICAgICAgICAgICA8aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz4KKyAgICAgICAgICA8L2E+CisgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj4KKyAgICAgICAgICAgICAgPGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPgorICAgICAgICAgICAgPC9hPgorICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPgorICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgICAgICAgPGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPgorICAgICAgICAgICAgICAgICAgICAgIDxoMj5saWJ4bWw8L2gyPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgPHRyPgorICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjZW50ZXI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5NYWluIE1lbnU8L2I+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jZW50ZXI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Im5ld3MuaHRtbCI+UmVsZWFzZXM8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJYTUxpbmZvLmh0bWwiPlhNTDwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+QVBJIE1lbnU8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNlbnRlcj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPlJlbGF0ZWQgbGlua3M8L2I+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jZW50ZXI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij4KKyAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48L3A+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtc2l6ZTogMTBwdCI+IlByb2dyYW1taW5nCit3aXRoIGxpYnhtbDIgaXMgbGlrZSB0aGUgdGhyaWxsaW5nIGVtYnJhY2Ugb2YgYW4gZXhvdGljIHN0cmFuZ2VyLiIgPGEgaHJlZj0iaHR0cDovL2RpdmVpbnRvbWFyay5vcmcvYXJjaGl2ZXMvMjAwNC8wMi8xOC9saWJ4bWwyIj5NYXJrCitQaWxncmltPC9hPjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5MaWJ4bWwyIGlzIHRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgZGV2ZWxvcGVkIGZvciB0aGUgR25vbWUgcHJvamVjdAorKGJ1dCB1c2FibGUgb3V0c2lkZSBvZiB0aGUgR25vbWUgcGxhdGZvcm0pLCBpdCBpcyBmcmVlIHNvZnR3YXJlIGF2YWlsYWJsZQordW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UuaHRtbCI+TUlUCitMaWNlbnNlPC9hPi4gWE1MIGl0c2VsZiBpcyBhIG1ldGFsYW5ndWFnZSB0byBkZXNpZ24gbWFya3VwIGxhbmd1YWdlcywgaS5lLgordGV4dCBsYW5ndWFnZSB3aGVyZSBzZW1hbnRpYyBhbmQgc3RydWN0dXJlIGFyZSBhZGRlZCB0byB0aGUgY29udGVudCB1c2luZworZXh0cmEgIm1hcmt1cCIgaW5mb3JtYXRpb24gZW5jbG9zZWQgYmV0d2VlbiBhbmdsZSBicmFja2V0cy4gSFRNTCBpcyB0aGUgbW9zdAord2VsbC1rbm93biBtYXJrdXAgbGFuZ3VhZ2UuIFRob3VnaCB0aGUgbGlicmFyeSBpcyB3cml0dGVuIGluIEMgPGEgaHJlZj0icHl0aG9uLmh0bWwiPmEgdmFyaWV0eSBvZiBsYW5ndWFnZSBiaW5kaW5nczwvYT4gbWFrZSBpdCBhdmFpbGFibGUgaW4KK290aGVyIGVudmlyb25tZW50cy48L3A+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TGlieG1sMiBpcyBrbm93biB0byBiZSB2ZXJ5IHBvcnRhYmxlLCB0aGUgbGlicmFyeSBzaG91bGQgYnVpbGQgYW5kIHdvcmsKK3dpdGhvdXQgc2VyaW91cyB0cm91YmxlcyBvbiBhIHZhcmlldHkgb2Ygc3lzdGVtcyAoTGludXgsIFVuaXgsIFdpbmRvd3MsCitDeWdXaW4sIE1hY09TLCBNYWNPUyBYLCBSSVNDIE9zLCBPUy8yLCBWTVMsIFFOWCwgTVZTLCBWeFdvcmtzLCAuLi4pPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxpYnhtbDIgaW1wbGVtZW50cyBhIG51bWJlciBvZiBleGlzdGluZyBzdGFuZGFyZHMgcmVsYXRlZCB0byBtYXJrdXAKK2xhbmd1YWdlczo8L3A+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPjxsaT50aGUgWE1MIHN0YW5kYXJkOiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj5odHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sPC9hPjwvbGk+CisgIDxsaT5OYW1lc3BhY2VzIGluIFhNTDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy8iPmh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMvPC9hPjwvbGk+CisgIDxsaT5YTUwgQmFzZTogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sYmFzZS8iPmh0dHA6Ly93d3cudzMub3JnL1RSL3htbGJhc2UvPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNpcy5vaGlvLXN0YXRlLmVkdS9yZmMvcmZjMjM5Ni50eHQiPlJGQyAyMzk2PC9hPiA6CisgICAgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVycyA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCI+aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQ8L2E+PC9saT4KKyAgPGxpPlhNTCBQYXRoIExhbmd1YWdlIChYUGF0aCkgMS4wOiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aCI+aHR0cDovL3d3dy53My5vcmcvVFIveHBhdGg8L2E+PC9saT4KKyAgPGxpPkhUTUw0IHBhcnNlcjogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQwMS8iPmh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0MDEvPC9hPjwvbGk+CisgIDxsaT5YTUwgUG9pbnRlciBMYW5ndWFnZSAoWFBvaW50ZXIpIFZlcnNpb24gMS4wOiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94cHRyIj5odHRwOi8vd3d3LnczLm9yZy9UUi94cHRyPC9hPjwvbGk+CisgIDxsaT5YTUwgSW5jbHVzaW9ucyAoWEluY2x1ZGUpIFZlcnNpb24gMS4wOiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aW5jbHVkZS8iPmh0dHA6Ly93d3cudzMub3JnL1RSL3hpbmNsdWRlLzwvYT48L2xpPgorICA8bGk+SVNPLTg4NTkteCBlbmNvZGluZ3MsIGFzIHdlbGwgYXMgPGEgaHJlZj0iaHR0cDovL3d3dy5jaXMub2hpby1zdGF0ZS5lZHUvcmZjL3JmYzIwNDQudHh0Ij5yZmMyMDQ0PC9hPiBbVVRGLThdCisgICAgYW5kIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2lzLm9oaW8tc3RhdGUuZWR1L3JmYy9yZmMyNzgxLnR4dCI+cmZjMjc4MTwvYT4KKyAgICBbVVRGLTE2XSBVbmljb2RlIGVuY29kaW5ncywgYW5kIG1vcmUgaWYgdXNpbmcgaWNvbnYgc3VwcG9ydDwvbGk+CisgIDxsaT5wYXJ0IG9mIFNHTUwgT3BlbiBUZWNobmljYWwgUmVzb2x1dGlvbiBUUjk0MDE6MTk5NzwvbGk+CisgIDxsaT5YTUwgQ2F0YWxvZ3MgV29ya2luZyBEcmFmdCAwNiBBdWd1c3QgMjAwMTogPGEgaHJlZj0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLTIwMDEtMDgtMDYuaHRtbCI+aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLTIwMDEtMDgtMDYuaHRtbDwvYT48L2xpPgorICA8bGk+Q2Fub25pY2FsIFhNTCBWZXJzaW9uIDEuMDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4iPmh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuPC9hPgorICAgIGFuZCB0aGUgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uIENSIGRyYWZ0IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0biI+aHR0cDovL3d3dy53My5vcmcvVFIveG1sLWV4Yy1jMTRuPC9hPjwvbGk+CisgIDxsaT5SZWxheCBORywgSVNPL0lFQyAxOTc1Ny0yOjIwMDMsIDxhIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9yZWxheC1uZy9zcGVjLTIwMDExMjAzLmh0bWwiPmh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9yZWxheC1uZy9zcGVjLTIwMDExMjAzLmh0bWw8L2E+PC9saT4KKyAgPGxpPlczQyBYTUwgU2NoZW1hcyBQYXJ0IDI6IERhdGF0eXBlcyA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWxzY2hlbWEtMi0yMDAxMDUwMi8iPlJFQyAwMiBNYXkKKyAgICAyMDAxPC9hPjwvbGk+CisgIDxsaT5XM0MgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWlkLyI+eG1sOmlkPC9hPiBXb3JraW5nIERyYWZ0IDcKKyAgICBBcHJpbCAyMDA0PC9saT4KKzwvdWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+SW4gbW9zdCBjYXNlcyBsaWJ4bWwyIHRyaWVzIHRvIGltcGxlbWVudCB0aGUgc3BlY2lmaWNhdGlvbnMgaW4gYQorcmVsYXRpdmVseSBzdHJpY3RseSBjb21wbGlhbnQgd2F5LiBBcyBvZiByZWxlYXNlIDIuNC4xNiwgbGlieG1sMiBwYXNzZWQgYWxsCisxODAwKyB0ZXN0cyBmcm9tIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMveG1sLWNvbmZvcm1hbmNlLyI+T0FTSVMgWE1MIFRlc3RzCitTdWl0ZTwvYT4uPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRvIHNvbWUgZXh0ZW50IGxpYnhtbDIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsCitzcGVjaWZpY2F0aW9ucyBidXQgZG9lc24ndCBjbGFpbSB0byBpbXBsZW1lbnQgdGhlbSBjb21wbGV0ZWx5OjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+PGxpPkRvY3VtZW50IE9iamVjdCBNb2RlbCAoRE9NKSA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMi1Db3JlLyI+aHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTItQ29yZS88L2E+CisgICAgdGhlIGRvY3VtZW50IG1vZGVsLCBidXQgaXQgZG9lc24ndCBpbXBsZW1lbnQgdGhlIEFQSSBpdHNlbGYsIGdkb21lMiBkb2VzCisgICAgdGhpcyBvbiB0b3Agb2YgbGlieG1sMjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNpcy5vaGlvLXN0YXRlLmVkdS9yZmMvcmZjOTU5LnR4dCI+UkZDIDk1OTwvYT4gOgorICAgIGxpYnhtbDIgaW1wbGVtZW50cyBhIGJhc2ljIEZUUCBjbGllbnQgY29kZTwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNpcy5vaGlvLXN0YXRlLmVkdS9yZmMvcmZjMTk0NS50eHQiPlJGQyAxOTQ1PC9hPiA6CisgICAgSFRUUC8xLjAsIGFnYWluIGEgYmFzaWMgSFRUUCBjbGllbnQgY29kZTwvbGk+CisgIDxsaT5TQVg6IGEgU0FYMiBsaWtlIGludGVyZmFjZSBhbmQgYSBtaW5pbWFsIFNBWDEgaW1wbGVtZW50YXRpb24gY29tcGF0aWJsZQorICAgIHdpdGggZWFybHkgZXhwYXQgdmVyc2lvbnM8L2xpPgorPC91bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5BIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sc2NoZW1hLTEtMjAwMTA1MDIvIj5YTUwgU2NoZW1hcyBQYXJ0CisxOiBTdHJ1Y3R1cmU8L2E+IGlzIGJlaW5nIHdvcmtlZCBvbiBidXQgaXQgd291bGQgYmUgZmFyIHRvbyBlYXJseSB0byBtYWtlIGFueQorY29uZm9ybWFuY2Ugc3RhdGVtZW50IGFib3V0IGl0IGF0IHRoZSBtb21lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlNlcGFyYXRlIGRvY3VtZW50czo8L3A+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPnRoZSBsaWJ4c2x0IHBhZ2U8L2E+IHByb3ZpZGluZyBhbgorICAgIGltcGxlbWVudGF0aW9uIG9mIFhTTFQgMS4wIGFuZCBjb21tb24gZXh0ZW5zaW9ucyBsaWtlIEVYU0xUIGZvcgorICBsaWJ4bWwyPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9nZG9tZTIuY3MudW5pYm8uaXQvIj50aGUgZ2RvbWUyIHBhZ2U8L2E+CisgICAgOiBhIHN0YW5kYXJkIERPTTIgaW1wbGVtZW50YXRpb24gZm9yIGxpYnhtbDI8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj50aGUgWE1MU2VjIHBhZ2U8L2E+OiBhbgorICAgIGltcGxlbWVudGF0aW9uIG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWctY29yZS8iPlczQyBYTUwKKyAgICBEaWdpdGFsIFNpZ25hdHVyZTwvYT4gZm9yIGxpYnhtbDI8L2xpPgorICA8bGk+YWxzbyBjaGVjayB0aGUgcmVsYXRlZCBsaW5rcyBzZWN0aW9uIGZvciBtb3JlIHJlbGF0ZWQgYW5kIGFjdGl2ZQorICAgIHByb2plY3RzLjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPiBIb3N0aW5nIHNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFvZW1lZGlhLmRlL29wZW5zb3VyY2UtY21zLmh0bWwiPk9wZW4gU291cmNlIENNUyBzZXJ2aWNlczwvYT4gZnJvbSBBT0UgbWVkaWEuPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvZ28gZGVzaWduZWQgYnkgPGEgaHJlZj0ibWFpbHRvOmxpeWFuYWdlQGFjY2Vzcy5jaCI+TWFyYyBMaXlhbmFnZTwvYT4uPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9pbmRleC5weSBiL2xpYnhtbDItMi43LjcvZG9jL2luZGV4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3OGYyODgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9pbmRleC5weQpAQCAtMCwwICsxLDEyNTggQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CisjCisjIGltcG9ydHMgdGhlIEFQSSBkZXNjcmlwdGlvbiBhbmQgZmlsbHMgdXAgYSBkYXRhYmFzZSB3aXRoCisjIG5hbWUgcmVsZXZhbmNlIHRvIG1vZHVsZXMsIGZ1bmN0aW9ucyBvciB3ZWIgcGFnZXMKKyMKKyMgT3BlcmF0aW9uIG5lZWRlZDoKKyMgPT09PT09PT09PT09PT09PT0KKyMKKyMgaW5zdGFsbCBteXNxbGQsIHRoZSBweXRob24gd3JhcHBlcnMgZm9yIG15c3FsIGFuZCBsaWJ4bWwyLCBzdGFydCBteXNxbGQKKyMgQ2hhbmdlIHRoZSByb290IHBhc3N3ZCBvZiBteXNxbDoKKyMgICAgbXlzcWxhZG1pbiAtdSByb290IHBhc3N3b3JkIG5ld19wYXNzd29yZAorIyBDcmVhdGUgdGhlIG5ldyBkYXRhYmFzZSB4bWxzb2Z0CisjICAgIG15c3FsYWRtaW4gLXAgY3JlYXRlIHhtbHNvZnQKKyMgQ3JlYXRlIGEgZGF0YWJhc2UgdXNlciAndmVpbGxhcmQnIGFuZCBnaXZlIGhpbSBwYXNzb3JkIGFjY2VzcworIyBjaGFuZ2UgdmVpbGxhcmQgYW5kIGFiY2RlIHdpdGggdGhlIHJpZ2h0IHVzZXIgbmFtZSBhbmQgcGFzc3dkCisjICAgIG15c3FsIC1wCisjICAgIHBhc3N3b3JkOgorIyAgICBteXNxbD4gR1JBTlQgQUxMIFBSSVZJTEVHRVMgT04geG1sc29mdCBUTyB2ZWlsbGFyZEBsb2NhbGhvc3QKKyMgICAgICAgICAgIElERU5USUZJRUQgQlkgJ2FiY2RlJyBXSVRIIEdSQU5UIE9QVElPTjsKKyMKKyMgQXMgdGhlIHVzZXIgY2hlY2sgdGhlIGFjY2VzczoKKyMgICAgbXlzcWwgLXAgeG1sc29mdAorIyAgICBFbnRlciBwYXNzd29yZDoKKyMgICAgV2VsY29tZSB0byB0aGUgTXlTUUwgbW9uaXRvci4uLi4KKyMgICAgbXlzcWw+IHVzZSB4bWxzb2Z0CisjICAgIERhdGFiYXNlIGNoYW5nZWQKKyMgICAgbXlzcWw+IHF1aXQKKyMgICAgQnllCisjCisjIFRoZW4gcnVuIHRoZSBzY3JpcHQgaW4gdGhlIGRvYyBzdWJkaXIsIGl0IHdpbGwgY3JlYXRlIHRoZSBzeW1ib2xzIGFuZAorIyB3b3JkIHRhYmxlcyBhbmQgcG9wdWxhdGUgdGhlbSB3aXRoIGluZm9ybWF0aW9ucyBleHRyYWN0ZWQgZnJvbSAKKyMgdGhlIGxpYnhtbDItYXBpLnhtbCBBUEkgZGVzY3JpcHRpb24sIGFuZCBtYWtlIHRoZW4gYWNjZXNzaWJsZSByZWFkLW9ubHkKKyMgYnkgbm9ib2R5QGxvYWNsaG9zdCB0aGUgdXNlciBleHBlY3RlZCB0byBiZSBBcGFjaGUncyBvbmUKKyMKKyMgT24gdGhlIEFwYWNoZSBjb25maWd1cmF0aW9uLCBtYWtlIHN1cmUgeW91IGhhdmUgcGhwIHN1cHBvcnQgZW5hYmxlZAorIworCitpbXBvcnQgTXlTUUxkYgoraW1wb3J0IGxpYnhtbDIKK2ltcG9ydCBzeXMKK2ltcG9ydCBzdHJpbmcKK2ltcG9ydCBvcworCisjCisjIFdlIGFyZSBub3QgaW50ZXJlc3RlZCBpbiBwYXJzaW5nIGVycm9ycyBoZXJlCisjCitkZWYgY2FsbGJhY2soY3R4LCBzdHIpOgorICAgIHJldHVybgorbGlieG1sMi5yZWdpc3RlckVycm9ySGFuZGxlcihjYWxsYmFjaywgTm9uZSkKKworIworIyBUaGUgZGljdGlvbm5hcnkgb2YgdGFibGVzIHJlcXVpcmVkIGFuZCB0aGUgU1FMIGNvbW1hbmQgbmVlZGVkCisjIHRvIGNyZWF0ZSB0aGVtCisjCitUQUJMRVM9eworICAic3ltYm9scyIgOiAiIiJDUkVBVEUgVEFCTEUgc3ltYm9scyAoCisgICAgICAgICAgIG5hbWUgdmFyY2hhcigyNTUpIEJJTkFSWSBOT1QgTlVMTCwKKwkgICBtb2R1bGUgdmFyY2hhcigyNTUpIEJJTkFSWSBOT1QgTlVMTCwKKyAgICAgICAgICAgdHlwZSB2YXJjaGFyKDI1KSBOT1QgTlVMTCwKKwkgICBkZXNjciB2YXJjaGFyKDI1NSksCisJICAgVU5JUVVFIEtFWSBuYW1lIChuYW1lKSwKKwkgICBLRVkgbW9kdWxlIChtb2R1bGUpKSIiIiwKKyAgIndvcmRzIiA6ICIiIkNSRUFURSBUQUJMRSB3b3JkcyAoCisgICAgICAgICAgIG5hbWUgdmFyY2hhcig1MCkgQklOQVJZIE5PVCBOVUxMLAorCSAgIHN5bWJvbCB2YXJjaGFyKDI1NSkgQklOQVJZIE5PVCBOVUxMLAorICAgICAgICAgICByZWxldmFuY2UgaW50LAorCSAgIEtFWSBuYW1lIChuYW1lKSwKKwkgICBLRVkgc3ltYm9sIChzeW1ib2wpLAorCSAgIFVOSVFVRSBLRVkgSUQgKG5hbWUsIHN5bWJvbCkpIiIiLAorICAid29yZHNIVE1MIiA6ICIiIkNSRUFURSBUQUJMRSB3b3Jkc0hUTUwgKAorICAgICAgICAgICBuYW1lIHZhcmNoYXIoNTApIEJJTkFSWSBOT1QgTlVMTCwKKwkgICByZXNvdXJjZSB2YXJjaGFyKDI1NSkgQklOQVJZIE5PVCBOVUxMLAorCSAgIHNlY3Rpb24gdmFyY2hhcigyNTUpLAorCSAgIGlkIHZhcmNoYXIoNTApLAorICAgICAgICAgICByZWxldmFuY2UgaW50LAorCSAgIEtFWSBuYW1lIChuYW1lKSwKKwkgICBLRVkgcmVzb3VyY2UgKHJlc291cmNlKSwKKwkgICBVTklRVUUgS0VZIHJlZiAobmFtZSwgcmVzb3VyY2UpKSIiIiwKKyAgIndvcmRzQXJjaGl2ZSIgOiAiIiJDUkVBVEUgVEFCTEUgd29yZHNBcmNoaXZlICgKKyAgICAgICAgICAgbmFtZSB2YXJjaGFyKDUwKSBCSU5BUlkgTk9UIE5VTEwsCisJICAgSUQgaW50KDExKSBOT1QgTlVMTCwKKyAgICAgICAgICAgcmVsZXZhbmNlIGludCwKKwkgICBLRVkgbmFtZSAobmFtZSksCisJICAgVU5JUVVFIEtFWSByZWYgKG5hbWUsIElEKSkiIiIsCisgICJwYWdlcyIgOiAiIiJDUkVBVEUgVEFCTEUgcGFnZXMgKAorICAgICAgICAgICByZXNvdXJjZSB2YXJjaGFyKDI1NSkgQklOQVJZIE5PVCBOVUxMLAorCSAgIHRpdGxlIHZhcmNoYXIoMjU1KSBCSU5BUlkgTk9UIE5VTEwsCisJICAgVU5JUVVFIEtFWSBuYW1lIChyZXNvdXJjZSkpIiIiLAorICAiYXJjaGl2ZXMiIDogIiIiQ1JFQVRFIFRBQkxFIGFyY2hpdmVzICgKKyAgICAgICAgICAgSUQgaW50KDExKSBOT1QgTlVMTCBhdXRvX2luY3JlbWVudCwKKyAgICAgICAgICAgcmVzb3VyY2UgdmFyY2hhcigyNTUpIEJJTkFSWSBOT1QgTlVMTCwKKwkgICB0aXRsZSB2YXJjaGFyKDI1NSkgQklOQVJZIE5PVCBOVUxMLAorCSAgIFVOSVFVRSBLRVkgaWQgKElELHJlc291cmNlKDI1NSkpLAorCSAgIElOREVYIChJRCksCisJICAgSU5ERVggKHJlc291cmNlKSkiIiIsCisgICJRdWVyaWVzIiA6ICIiIkNSRUFURSBUQUJMRSBRdWVyaWVzICgKKyAgICAgICAgICAgSUQgaW50KDExKSBOT1QgTlVMTCBhdXRvX2luY3JlbWVudCwKKwkgICBWYWx1ZSB2YXJjaGFyKDUwKSBOT1QgTlVMTCwKKwkgICBDb3VudCBpbnQoMTEpIE5PVCBOVUxMLAorCSAgIFVOSVFVRSBLRVkgaWQgKElELFZhbHVlKDM1KSksCisJICAgSU5ERVggKElEKSkiIiIsCisgICJBbGxRdWVyaWVzIiA6ICIiIkNSRUFURSBUQUJMRSBBbGxRdWVyaWVzICgKKyAgICAgICAgICAgSUQgaW50KDExKSBOT1QgTlVMTCBhdXRvX2luY3JlbWVudCwKKwkgICBWYWx1ZSB2YXJjaGFyKDUwKSBOT1QgTlVMTCwKKwkgICBDb3VudCBpbnQoMTEpIE5PVCBOVUxMLAorCSAgIFVOSVFVRSBLRVkgaWQgKElELFZhbHVlKDM1KSksCisJICAgSU5ERVggKElEKSkiIiIsCit9CisKKyMKKyMgVGhlIFhNTCBBUEkgZGVzY3JpcHRpb24gZmlsZSB0byBwYXJzZQorIworQVBJPSJsaWJ4bWwyLWFwaS54bWwiCitEQj1Ob25lCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMJCQkJCQkJCQkjCisjICAgICAgICAgICAgICAgICAgTXlTUUwgZGF0YWJhc2UgaW50ZXJmYWNlcwkJCQkjCisjCQkJCQkJCQkJIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZGVmIGNyZWF0ZVRhYmxlKGRiLCBuYW1lKToKKyAgICBnbG9iYWwgVEFCTEVTCisKKyAgICBpZiBkYiA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiBuYW1lID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGMgPSBkYi5jdXJzb3IoKQorCisgICAgcmV0ID0gYy5leGVjdXRlKCJEUk9QIFRBQkxFIElGIEVYSVNUUyAlcyIgJSAobmFtZSkpCisgICAgaWYgcmV0ID09IDE6CisgICAgICAgIHByaW50ICJSZW1vdmVkIHRhYmxlICVzIiAlIChuYW1lKQorICAgIHByaW50ICJDcmVhdGluZyB0YWJsZSAlcyIgJSAobmFtZSkKKyAgICB0cnk6CisgICAgICAgIHJldCA9IGMuZXhlY3V0ZShUQUJMRVNbbmFtZV0pCisgICAgZXhjZXB0OgorICAgICAgICBwcmludCAiRmFpbGVkIHRvIGNyZWF0ZSB0YWJsZSAlcyIgJSAobmFtZSkKKwlyZXR1cm4gLTEKKyAgICByZXR1cm4gcmV0CisKK2RlZiBjaGVja1RhYmxlcyhkYiwgdmVyYm9zZSA9IDEpOgorICAgIGdsb2JhbCBUQUJMRVMKKworICAgIGlmIGRiID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGMgPSBkYi5jdXJzb3IoKQorICAgIG5idGFibGVzID0gYy5leGVjdXRlKCJzaG93IHRhYmxlcyIpCisgICAgaWYgdmVyYm9zZToKKwlwcmludCAiRm91bmQgJWQgdGFibGVzIiAlIChuYnRhYmxlcykKKyAgICB0YWJsZXMgPSB7fQorICAgIGkgPSAwCisgICAgd2hpbGUgaSA8IG5idGFibGVzOgorICAgICAgICBsID0gYy5mZXRjaG9uZSgpCisJbmFtZSA9IGxbMF0KKwl0YWJsZXNbbmFtZV0gPSB7fQorICAgICAgICBpID0gaSArIDEKKworICAgIGZvciB0YWJsZSBpbiBUQUJMRVMua2V5cygpOgorICAgICAgICBpZiBub3QgdGFibGVzLmhhc19rZXkodGFibGUpOgorCSAgICBwcmludCAidGFibGUgJXMgbWlzc2luZyIgJSAodGFibGUpCisJICAgIGNyZWF0ZVRhYmxlKGRiLCB0YWJsZSkKKwl0cnk6CisJICAgIHJldCA9IGMuZXhlY3V0ZSgiU0VMRUNUIGNvdW50KCopIGZyb20gJXMiICUgdGFibGUpOworCSAgICByb3cgPSBjLmZldGNob25lKCkKKwkgICAgaWYgdmVyYm9zZToKKwkJcHJpbnQgIlRhYmxlICVzIGNvbnRhaW5zICVkIHJlY29yZHMiICUgKHRhYmxlLCByb3dbMF0pCisJZXhjZXB0OgorCSAgICBwcmludCAiVHJvdWJsZXMgd2l0aCB0YWJsZSAlcyA6IHJlcGFpcmluZyIgJSAodGFibGUpCisJICAgIHJldCA9IGMuZXhlY3V0ZSgicmVwYWlyIHRhYmxlICVzIiAlIHRhYmxlKTsKKwkgICAgcHJpbnQgInJlcGFpcmluZyByZXR1cm5lZCAlZCIgJSAocmV0KQorCSAgICByZXQgPSBjLmV4ZWN1dGUoIlNFTEVDVCBjb3VudCgqKSBmcm9tICVzIiAlIHRhYmxlKTsKKwkgICAgcm93ID0gYy5mZXRjaG9uZSgpCisJICAgIHByaW50ICJUYWJsZSAlcyBjb250YWlucyAlZCByZWNvcmRzIiAlICh0YWJsZSwgcm93WzBdKQorICAgIGlmIHZlcmJvc2U6CisJcHJpbnQgImNoZWNrVGFibGVzIGZpbmlzaGVkIgorCisgICAgIyBtYWtlIHN1cmUgYXBhY2hlIGNhbiBhY2Nlc3MgdGhlIHRhYmxlcyByZWFkLW9ubHkKKyAgICB0cnk6CisJcmV0ID0gYy5leGVjdXRlKCJHUkFOVCBTRUxFQ1QgT04geG1sc29mdC4qIFRPIG5vYm9keUBsb2NhbGhvc3QiKQorCXJldCA9IGMuZXhlY3V0ZSgiR1JBTlQgSU5TRVJULFNFTEVDVCxVUERBVEUgIE9OIHhtbHNvZnQuUXVlcmllcyBUTyBub2JvZHlAbG9jYWxob3N0IikKKyAgICBleGNlcHQ6CisgICAgICAgIHBhc3MKKyAgICByZXR1cm4gMAorICAgIAorZGVmIG9wZW5NeVNRTChkYj0ieG1sc29mdCIsIHBhc3N3ZD1Ob25lLCB2ZXJib3NlID0gMSk6CisgICAgZ2xvYmFsIERCCisKKyAgICBpZiBwYXNzd2QgPT0gTm9uZToKKyAgICAgICAgdHJ5OgorCSAgICBwYXNzd2QgPSBvcy5lbnZpcm9uWyJNeVNRTF9QQVNTIl0KKwlleGNlcHQ6CisJICAgIHByaW50ICJObyBwYXNzd29yZCBhdmFpbGFibGUsIHNldCBlbnZpcm9ubWVudCBNeVNRTF9QQVNTIgorCSAgICBzeXMuZXhpdCgxKQorCisgICAgREIgPSBNeVNRTGRiLmNvbm5lY3QocGFzc3dkPXBhc3N3ZCwgZGI9ZGIpCisgICAgaWYgREIgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgcmV0ID0gY2hlY2tUYWJsZXMoREIsIHZlcmJvc2UpCisgICAgcmV0dXJuIHJldAorCitkZWYgdXBkYXRlV29yZChuYW1lLCBzeW1ib2wsIHJlbGV2YW5jZSk6CisgICAgZ2xvYmFsIERCCisKKyAgICBpZiBEQiA9PSBOb25lOgorICAgICAgICBvcGVuTXlTUUwoKQorICAgIGlmIERCID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGlmIG5hbWUgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgc3ltYm9sID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorCisgICAgYyA9IERCLmN1cnNvcigpCisgICAgdHJ5OgorCXJldCA9IGMuZXhlY3V0ZSgKKyIiIklOU0VSVCBJTlRPIHdvcmRzIChuYW1lLCBzeW1ib2wsIHJlbGV2YW5jZSkgVkFMVUVTICgnJXMnLCclcycsICVkKSIiIiAlCisJCShuYW1lLCBzeW1ib2wsIHJlbGV2YW5jZSkpCisgICAgZXhjZXB0OgorICAgICAgICB0cnk6CisJICAgIHJldCA9IGMuZXhlY3V0ZSgKKyAgICAiIiJVUERBVEUgd29yZHMgU0VUIHJlbGV2YW5jZSA9ICVkIHdoZXJlIG5hbWUgPSAnJXMnIGFuZCBzeW1ib2wgPSAnJXMnIiIiICUKKwkJICAgIChyZWxldmFuY2UsIG5hbWUsIHN5bWJvbCkpCisJZXhjZXB0OgorCSAgICBwcmludCAiVXBkYXRlIHdvcmQgKCVzLCAlcywgJXMpIGZhaWxlZCBjb21tYW5kIiAlIChuYW1lLCBzeW1ib2wsIHJlbGV2YW5jZSkKKwkgICAgcHJpbnQgIlVQREFURSB3b3JkcyBTRVQgcmVsZXZhbmNlID0gJWQgd2hlcmUgbmFtZSA9ICclcycgYW5kIHN5bWJvbCA9ICclcyciICUgKHJlbGV2YW5jZSwgbmFtZSwgc3ltYm9sKQorCSAgICBwcmludCBzeXMuZXhjX3R5cGUsIHN5cy5leGNfdmFsdWUKKwkgICAgcmV0dXJuIC0xCisJICAgICAKKyAgICByZXR1cm4gcmV0CisKK2RlZiB1cGRhdGVTeW1ib2wobmFtZSwgbW9kdWxlLCB0eXBlLCBkZXNjKToKKyAgICBnbG9iYWwgREIKKworICAgIHVwZGF0ZVdvcmQobmFtZSwgbmFtZSwgNTApCisgICAgaWYgREIgPT0gTm9uZToKKyAgICAgICAgb3Blbk15U1FMKCkKKyAgICBpZiBEQiA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiBuYW1lID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGlmIG1vZHVsZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiB0eXBlID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorCisgICAgdHJ5OgorCWRlc2MgPSBzdHJpbmcucmVwbGFjZShkZXNjLCAiJyIsICIgIikKKwlsID0gc3RyaW5nLnNwbGl0KGRlc2MsICIuIikKKwlkZXNjID0gbFswXQorCWRlc2MgPSBkZXNjWzA6OTldCisgICAgZXhjZXB0OgorICAgICAgICBkZXNjID0gIiIKKworICAgIGMgPSBEQi5jdXJzb3IoKQorICAgIHRyeToKKwlyZXQgPSBjLmV4ZWN1dGUoCisiIiJJTlNFUlQgSU5UTyBzeW1ib2xzIChuYW1lLCBtb2R1bGUsIHR5cGUsIGRlc2NyKSBWQUxVRVMgKCclcycsJyVzJywgJyVzJywgJyVzJykiIiIgJQorICAgICAgICAgICAgICAgICAgICAobmFtZSwgbW9kdWxlLCB0eXBlLCBkZXNjKSkKKyAgICBleGNlcHQ6CisgICAgICAgIHRyeToKKwkgICAgcmV0ID0gYy5leGVjdXRlKAorIiIiVVBEQVRFIHN5bWJvbHMgU0VUIG1vZHVsZT0nJXMnLCB0eXBlPSclcycsIGRlc2NyPSclcycgd2hlcmUgbmFtZT0nJXMnIiIiICUKKyAgICAgICAgICAgICAgICAgICAgKG1vZHVsZSwgdHlwZSwgZGVzYywgbmFtZSkpCisgICAgICAgIGV4Y2VwdDoKKwkgICAgcHJpbnQgIlVwZGF0ZSBzeW1ib2wgKCVzLCAlcywgJXMpIGZhaWxlZCBjb21tYW5kIiAlIChuYW1lLCBtb2R1bGUsIHR5cGUpCisJICAgIHByaW50ICIiIlVQREFURSBzeW1ib2xzIFNFVCBtb2R1bGU9JyVzJywgdHlwZT0nJXMnLCBkZXNjcj0nJXMnIHdoZXJlIG5hbWU9JyVzJyIiIiAlIChtb2R1bGUsIHR5cGUsIGRlc2MsIG5hbWUpCisJICAgIHByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCSAgICByZXR1cm4gLTEKKwkgICAgIAorICAgIHJldHVybiByZXQKKyAgICAgICAgCitkZWYgYWRkRnVuY3Rpb24obmFtZSwgbW9kdWxlLCBkZXNjID0gIiIpOgorICAgIHJldHVybiB1cGRhdGVTeW1ib2wobmFtZSwgbW9kdWxlLCAnZnVuY3Rpb24nLCBkZXNjKQorCitkZWYgYWRkTWFjcm8obmFtZSwgbW9kdWxlLCBkZXNjID0gIiIpOgorICAgIHJldHVybiB1cGRhdGVTeW1ib2wobmFtZSwgbW9kdWxlLCAnbWFjcm8nLCBkZXNjKQorCitkZWYgYWRkRW51bShuYW1lLCBtb2R1bGUsIGRlc2MgPSAiIik6CisgICAgcmV0dXJuIHVwZGF0ZVN5bWJvbChuYW1lLCBtb2R1bGUsICdlbnVtJywgZGVzYykKKworZGVmIGFkZFN0cnVjdChuYW1lLCBtb2R1bGUsIGRlc2MgPSAiIik6CisgICAgcmV0dXJuIHVwZGF0ZVN5bWJvbChuYW1lLCBtb2R1bGUsICdzdHJ1Y3QnLCBkZXNjKQorCitkZWYgYWRkQ29uc3QobmFtZSwgbW9kdWxlLCBkZXNjID0gIiIpOgorICAgIHJldHVybiB1cGRhdGVTeW1ib2wobmFtZSwgbW9kdWxlLCAnY29uc3QnLCBkZXNjKQorCitkZWYgYWRkVHlwZShuYW1lLCBtb2R1bGUsIGRlc2MgPSAiIik6CisgICAgcmV0dXJuIHVwZGF0ZVN5bWJvbChuYW1lLCBtb2R1bGUsICd0eXBlJywgZGVzYykKKworZGVmIGFkZEZ1bmN0eXBlKG5hbWUsIG1vZHVsZSwgZGVzYyA9ICIiKToKKyAgICByZXR1cm4gdXBkYXRlU3ltYm9sKG5hbWUsIG1vZHVsZSwgJ2Z1bmN0eXBlJywgZGVzYykKKworZGVmIGFkZFBhZ2UocmVzb3VyY2UsIHRpdGxlKToKKyAgICBnbG9iYWwgREIKKworICAgIGlmIERCID09IE5vbmU6CisgICAgICAgIG9wZW5NeVNRTCgpCisgICAgaWYgREIgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgcmVzb3VyY2UgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisKKyAgICBjID0gREIuY3Vyc29yKCkKKyAgICB0cnk6CisJcmV0ID0gYy5leGVjdXRlKAorCSAgICAiIiJJTlNFUlQgSU5UTyBwYWdlcyAocmVzb3VyY2UsIHRpdGxlKSBWQUxVRVMgKCclcycsJyVzJykiIiIgJQorICAgICAgICAgICAgICAgICAgICAocmVzb3VyY2UsIHRpdGxlKSkKKyAgICBleGNlcHQ6CisgICAgICAgIHRyeToKKwkgICAgcmV0ID0gYy5leGVjdXRlKAorCQkiIiJVUERBVEUgcGFnZXMgU0VUIHRpdGxlPSclcycgV0hFUkUgcmVzb3VyY2U9JyVzJyIiIiAlCisgICAgICAgICAgICAgICAgICAgICh0aXRsZSwgcmVzb3VyY2UpKQorICAgICAgICBleGNlcHQ6CisJICAgIHByaW50ICJVcGRhdGUgc3ltYm9sICglcywgJXMsICVzKSBmYWlsZWQgY29tbWFuZCIgJSAobmFtZSwgbW9kdWxlLCB0eXBlKQorCSAgICBwcmludCAiIiJVUERBVEUgcGFnZXMgU0VUIHRpdGxlPSclcycgV0hFUkUgcmVzb3VyY2U9JyVzJyIiIiAlICh0aXRsZSwgcmVzb3VyY2UpCisJICAgIHByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCSAgICByZXR1cm4gLTEKKwkgICAgIAorICAgIHJldHVybiByZXQKKworZGVmIHVwZGF0ZVdvcmRIVE1MKG5hbWUsIHJlc291cmNlLCBkZXNjLCBpZCwgcmVsZXZhbmNlKToKKyAgICBnbG9iYWwgREIKKworICAgIGlmIERCID09IE5vbmU6CisgICAgICAgIG9wZW5NeVNRTCgpCisgICAgaWYgREIgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgbmFtZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiByZXNvdXJjZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiBpZCA9PSBOb25lOgorICAgICAgICBpZCA9ICIiCisgICAgaWYgZGVzYyA9PSBOb25lOgorICAgICAgICBkZXNjID0gIiIKKyAgICBlbHNlOgorCXRyeToKKwkgICAgZGVzYyA9IHN0cmluZy5yZXBsYWNlKGRlc2MsICInIiwgIiAiKQorCSAgICBkZXNjID0gZGVzY1swOjk5XQorCWV4Y2VwdDoKKwkgICAgZGVzYyA9ICIiCisKKyAgICBjID0gREIuY3Vyc29yKCkKKyAgICB0cnk6CisJcmV0ID0gYy5leGVjdXRlKAorIiIiSU5TRVJUIElOVE8gd29yZHNIVE1MIChuYW1lLCByZXNvdXJjZSwgc2VjdGlvbiwgaWQsIHJlbGV2YW5jZSkgVkFMVUVTICgnJXMnLCclcycsICclcycsICclcycsICclZCcpIiIiICUKKyAgICAgICAgICAgICAgICAgICAgKG5hbWUsIHJlc291cmNlLCBkZXNjLCBpZCwgcmVsZXZhbmNlKSkKKyAgICBleGNlcHQ6CisgICAgICAgIHRyeToKKwkgICAgcmV0ID0gYy5leGVjdXRlKAorIiIiVVBEQVRFIHdvcmRzSFRNTCBTRVQgc2VjdGlvbj0nJXMnLCBpZD0nJXMnLCByZWxldmFuY2U9JyVkJyB3aGVyZSBuYW1lPSclcycgYW5kIHJlc291cmNlPSclcyciIiIgJQorICAgICAgICAgICAgICAgICAgICAoZGVzYywgaWQsIHJlbGV2YW5jZSwgbmFtZSwgcmVzb3VyY2UpKQorICAgICAgICBleGNlcHQ6CisJICAgIHByaW50ICJVcGRhdGUgc3ltYm9sICglcywgJXMsICVkKSBmYWlsZWQgY29tbWFuZCIgJSAobmFtZSwgcmVzb3VyY2UsIHJlbGV2YW5jZSkKKwkgICAgcHJpbnQgIiIiVVBEQVRFIHdvcmRzSFRNTCBTRVQgc2VjdGlvbj0nJXMnLCBpZD0nJXMnLCByZWxldmFuY2U9JyVkJyB3aGVyZSBuYW1lPSclcycgYW5kIHJlc291cmNlPSclcyciIiIgJSAoZGVzYywgaWQsIHJlbGV2YW5jZSwgbmFtZSwgcmVzb3VyY2UpCisJICAgIHByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCSAgICByZXR1cm4gLTEKKwkgICAgIAorICAgIHJldHVybiByZXQKKworZGVmIGNoZWNrWE1MTXNnQXJjaGl2ZSh1cmwpOgorICAgIGdsb2JhbCBEQgorCisgICAgaWYgREIgPT0gTm9uZToKKyAgICAgICAgb3Blbk15U1FMKCkKKyAgICBpZiBEQiA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiB1cmwgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisKKyAgICBjID0gREIuY3Vyc29yKCkKKyAgICB0cnk6CisJcmV0ID0gYy5leGVjdXRlKAorCSAgICAiIiJTRUxFQ1QgSUQgRlJPTSBhcmNoaXZlcyBXSEVSRSByZXNvdXJjZT0nJXMnIiIiICUgKHVybCkpCisJcm93ID0gYy5mZXRjaG9uZSgpCisJaWYgcm93ID09IE5vbmU6CisJICAgIHJldHVybiAtMQorICAgIGV4Y2VwdDoKKwlyZXR1cm4gLTEKKwkgICAgIAorICAgIHJldHVybiByb3dbMF0KKyAgICAKK2RlZiBhZGRYTUxNc2dBcmNoaXZlKHVybCwgdGl0bGUpOgorICAgIGdsb2JhbCBEQgorCisgICAgaWYgREIgPT0gTm9uZToKKyAgICAgICAgb3Blbk15U1FMKCkKKyAgICBpZiBEQiA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiB1cmwgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgdGl0bGUgPT0gTm9uZToKKyAgICAgICAgdGl0bGUgPSAiIgorICAgIGVsc2U6CisJdGl0bGUgPSBzdHJpbmcucmVwbGFjZSh0aXRsZSwgIiciLCAiICIpCisJdGl0bGUgPSB0aXRsZVswOjk5XQorCisgICAgYyA9IERCLmN1cnNvcigpCisgICAgdHJ5OgorICAgICAgICBjbWQgPSAiIiJJTlNFUlQgSU5UTyBhcmNoaXZlcyAocmVzb3VyY2UsIHRpdGxlKSBWQUxVRVMgKCclcycsJyVzJykiIiIgJSAodXJsLCB0aXRsZSkKKyAgICAgICAgcmV0ID0gYy5leGVjdXRlKGNtZCkKKwljbWQgPSAiIiJTRUxFQ1QgSUQgRlJPTSBhcmNoaXZlcyBXSEVSRSByZXNvdXJjZT0nJXMnIiIiICUgKHVybCkKKyAgICAgICAgcmV0ID0gYy5leGVjdXRlKGNtZCkKKwlyb3cgPSBjLmZldGNob25lKCkKKwlpZiByb3cgPT0gTm9uZToKKwkgICAgcHJpbnQgImFkZFhNTE1zZ0FyY2hpdmUgZmFpbGVkIHRvIGdldCB0aGUgSUQ6ICVzIiAlICh1cmwpCisJICAgIHJldHVybiAtMQorICAgIGV4Y2VwdDoKKyAgICAgICAgcHJpbnQgImFkZFhNTE1zZ0FyY2hpdmUgZmFpbGVkIGNvbW1hbmQ6ICVzIiAlIChjbWQpCisJcmV0dXJuIC0xCisJICAgICAKKyAgICByZXR1cm4oKGludCkocm93WzBdKSkKKworZGVmIHVwZGF0ZVdvcmRBcmNoaXZlKG5hbWUsIGlkLCByZWxldmFuY2UpOgorICAgIGdsb2JhbCBEQgorCisgICAgaWYgREIgPT0gTm9uZToKKyAgICAgICAgb3Blbk15U1FMKCkKKyAgICBpZiBEQiA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiBuYW1lID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGlmIGlkID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorCisgICAgYyA9IERCLmN1cnNvcigpCisgICAgdHJ5OgorCXJldCA9IGMuZXhlY3V0ZSgKKyIiIklOU0VSVCBJTlRPIHdvcmRzQXJjaGl2ZSAobmFtZSwgaWQsIHJlbGV2YW5jZSkgVkFMVUVTICgnJXMnLCAnJWQnLCAnJWQnKSIiIiAlCisgICAgICAgICAgICAgICAgICAgIChuYW1lLCBpZCwgcmVsZXZhbmNlKSkKKyAgICBleGNlcHQ6CisgICAgICAgIHRyeToKKwkgICAgcmV0ID0gYy5leGVjdXRlKAorIiIiVVBEQVRFIHdvcmRzQXJjaGl2ZSBTRVQgcmVsZXZhbmNlPSclZCcgd2hlcmUgbmFtZT0nJXMnIGFuZCBJRD0nJWQnIiIiICUKKyAgICAgICAgICAgICAgICAgICAgKHJlbGV2YW5jZSwgbmFtZSwgaWQpKQorICAgICAgICBleGNlcHQ6CisJICAgIHByaW50ICJVcGRhdGUgd29yZCBhcmNoaXZlICglcywgJWQsICVkKSBmYWlsZWQgY29tbWFuZCIgJSAobmFtZSwgaWQsIHJlbGV2YW5jZSkKKwkgICAgcHJpbnQgIiIiVVBEQVRFIHdvcmRzQXJjaGl2ZSBTRVQgcmVsZXZhbmNlPSclZCcgd2hlcmUgbmFtZT0nJXMnIGFuZCBJRD0nJWQnIiIiICUgKHJlbGV2YW5jZSwgbmFtZSwgaWQpCisJICAgIHByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCSAgICByZXR1cm4gLTEKKwkgICAgIAorICAgIHJldHVybiByZXQKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwkJCQkJCQkJCSMKKyMgICAgICAgICAgICAgICAgICBXb3JkIGRpY3Rpb25uYXJ5IGFuZCBhbmFseXNpcyByb3V0aW5lcwkJIworIwkJCQkJCQkJCSMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIworIyB0b3AgMTAwIGVuZ2xpc2ggd29yZCB3aXRob3V0IHRoZSBvbmUgbGVuIDwgMyArIG93biBzZXQKKyMKK2Ryb3BXb3JkcyA9IHsKKyAgICAndGhlJzowLCAndGhpcyc6MCwgJ2Nhbic6MCwgJ21hbic6MCwgJ2hhZCc6MCwgJ2hpbSc6MCwgJ29ubHknOjAsCisgICAgJ2FuZCc6MCwgJ25vdCc6MCwgJ2JlZW4nOjAsICdvdGhlcic6MCwgJ2V2ZW4nOjAsICdhcmUnOjAsICd3YXMnOjAsCisgICAgJ25ldyc6MCwgJ21vc3QnOjAsICdidXQnOjAsICd3aGVuJzowLCAnc29tZSc6MCwgJ21hZGUnOjAsICdmcm9tJzowLAorICAgICd3aG8nOjAsICdjb3VsZCc6MCwgJ2FmdGVyJzowLCAndGhhdCc6MCwgJ3dpbGwnOjAsICd0aW1lJzowLCAnYWxzbyc6MCwKKyAgICAnaGF2ZSc6MCwgJ21vcmUnOjAsICd0aGVzZSc6MCwgJ2RpZCc6MCwgJ3dhcyc6MCwgJ3R3byc6MCwgJ21hbnknOjAsCisgICAgJ3RoZXknOjAsICdtYXknOjAsICdiZWZvcmUnOjAsICdmb3InOjAsICd3aGljaCc6MCwgJ291dCc6MCwgJ3RoZW4nOjAsCisgICAgJ211c3QnOjAsICdvbmUnOjAsICd0aHJvdWdoJzowLCAnd2l0aCc6MCwgJ3lvdSc6MCwgJ3NhaWQnOjAsCisgICAgJ2ZpcnN0JzowLCAnYmFjayc6MCwgJ3dlcmUnOjAsICd3aGF0JzowLCAnYW55JzowLCAneWVhcnMnOjAsICdoaXMnOjAsCisgICAgJ2hlcic6MCwgJ3doZXJlJzowLCAnYWxsJzowLCAnaXRzJzowLCAnbm93JzowLCAnbXVjaCc6MCwgJ3NoZSc6MCwKKyAgICAnYWJvdXQnOjAsICdzdWNoJzowLCAneW91cic6MCwgJ3RoZXJlJzowLCAnaW50byc6MCwgJ2xpa2UnOjAsICdtYXknOjAsCisgICAgJ3dvdWxkJzowLCAndGhhbic6MCwgJ291cic6MCwgJ3dlbGwnOjAsICd0aGVpcic6MCwgJ3RoZW0nOjAsICdvdmVyJzowLAorICAgICdkb3duJzowLAorICAgICduZXQnOjAsICd3d3cnOjAsICdiYWQnOjAsICdPa2F5JzowLCAnYmluJzowLCAnY3VyJzowLAorfQorCit3b3Jkc0RpY3QgPSB7fQord29yZHNEaWN0SFRNTCA9IHt9Cit3b3Jkc0RpY3RBcmNoaXZlID0ge30KKworZGVmIGNsZWFudXBXb3Jkc1N0cmluZyhzdHIpOgorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIi4iLCAiICIpCisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiISIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICI/IiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIiwiLCAiICIpCisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiJyIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICciJywgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIjsiLCAiICIpCisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiKCIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICIpIiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgInsiLCAiICIpCisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAifSIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICI8IiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIj4iLCAiICIpCisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiPSIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICIvIiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIioiLCAiICIpCisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiOiIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICIjIiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIlxcIiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIlxuIiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIlxyIiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIlx4YzIiLCAiICIpCisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiXHhhMCIsICIgIikKKyAgICByZXR1cm4gc3RyCisgICAgCitkZWYgY2xlYW51cERlc2NyU3RyaW5nKHN0cik6CisgICAgc3RyID0gc3RyaW5nLnJlcGxhY2Uoc3RyLCAiJyIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICJcbiIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICJcciIsICIgIikKKyAgICBzdHIgPSBzdHJpbmcucmVwbGFjZShzdHIsICJceGMyIiwgIiAiKQorICAgIHN0ciA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIlx4YTAiLCAiICIpCisgICAgbCA9IHN0cmluZy5zcGxpdChzdHIpCisgICAgc3RyID0gc3RyaW5nLmpvaW4oc3RyKQorICAgIHJldHVybiBzdHIKKworZGVmIHNwbGl0SWRlbnRpZmllcihzdHIpOgorICAgIHJldCA9IFtdCisgICAgd2hpbGUgc3RyICE9ICIiOgorICAgICAgICBjdXIgPSBzdHJpbmcubG93ZXIoc3RyWzBdKQorCXN0ciA9IHN0clsxOl0KKwlpZiAoKGN1ciA8ICdhJykgb3IgKGN1ciA+ICd6JykpOgorCSAgICBjb250aW51ZQorCXdoaWxlIChzdHIgIT0gIiIpIGFuZCAoc3RyWzBdID49ICdBJykgYW5kIChzdHJbMF0gPD0gJ1onKToKKwkgICAgY3VyID0gY3VyICsgc3RyaW5nLmxvd2VyKHN0clswXSkKKwkgICAgc3RyID0gc3RyWzE6XQorCXdoaWxlIChzdHIgIT0gIiIpIGFuZCAoc3RyWzBdID49ICdhJykgYW5kIChzdHJbMF0gPD0gJ3onKToKKwkgICAgY3VyID0gY3VyICsgc3RyWzBdCisJICAgIHN0ciA9IHN0clsxOl0KKwl3aGlsZSAoc3RyICE9ICIiKSBhbmQgKHN0clswXSA+PSAnMCcpIGFuZCAoc3RyWzBdIDw9ICc5Jyk6CisJICAgIHN0ciA9IHN0clsxOl0KKwlyZXQuYXBwZW5kKGN1cikKKyAgICByZXR1cm4gcmV0CisKK2RlZiBhZGRXb3JkKHdvcmQsIG1vZHVsZSwgc3ltYm9sLCByZWxldmFuY2UpOgorICAgIGdsb2JhbCB3b3Jkc0RpY3QKKworICAgIGlmIHdvcmQgPT0gTm9uZSBvciBsZW4od29yZCkgPCAzOgorICAgICAgICByZXR1cm4gLTEKKyAgICBpZiBtb2R1bGUgPT0gTm9uZSBvciBzeW1ib2wgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgZHJvcFdvcmRzLmhhc19rZXkod29yZCk6CisgICAgICAgIHJldHVybiAwCisgICAgaWYgb3JkKHdvcmRbMF0pID4gMHg4MDoKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGlmIHdvcmRzRGljdC5oYXNfa2V5KHdvcmQpOgorICAgICAgICBkID0gd29yZHNEaWN0W3dvcmRdCisJaWYgZCA9PSBOb25lOgorCSAgICByZXR1cm4gMAorCWlmIGxlbihkKSA+IDUwMDoKKwkgICAgd29yZHNEaWN0W3dvcmRdID0gTm9uZQorCSAgICByZXR1cm4gMAorCXRyeToKKwkgICAgcmVsZXZhbmNlID0gcmVsZXZhbmNlICsgZFsobW9kdWxlLCBzeW1ib2wpXQorCWV4Y2VwdDoKKwkgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIHdvcmRzRGljdFt3b3JkXSA9IHt9CisgICAgd29yZHNEaWN0W3dvcmRdWyhtb2R1bGUsIHN5bWJvbCldID0gcmVsZXZhbmNlCisgICAgcmV0dXJuIHJlbGV2YW5jZQorICAgIAorZGVmIGFkZFN0cmluZyhzdHIsIG1vZHVsZSwgc3ltYm9sLCByZWxldmFuY2UpOgorICAgIGlmIHN0ciA9PSBOb25lIG9yIGxlbihzdHIpIDwgMzoKKyAgICAgICAgcmV0dXJuIC0xCisgICAgcmV0ID0gMAorICAgIHN0ciA9IGNsZWFudXBXb3Jkc1N0cmluZyhzdHIpCisgICAgbCA9IHN0cmluZy5zcGxpdChzdHIpCisgICAgZm9yIHdvcmQgaW4gbDoKKwlpZiBsZW4od29yZCkgPiAyOgorCSAgICByZXQgPSByZXQgKyBhZGRXb3JkKHdvcmQsIG1vZHVsZSwgc3ltYm9sLCA1KQorCisgICAgcmV0dXJuIHJldAorCitkZWYgYWRkV29yZEhUTUwod29yZCwgcmVzb3VyY2UsIGlkLCBzZWN0aW9uLCByZWxldmFuY2UpOgorICAgIGdsb2JhbCB3b3Jkc0RpY3RIVE1MCisKKyAgICBpZiB3b3JkID09IE5vbmUgb3IgbGVuKHdvcmQpIDwgMzoKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgcmVzb3VyY2UgPT0gTm9uZSBvciBzZWN0aW9uID09IE5vbmU6CisgICAgICAgIHJldHVybiAtMQorICAgIGlmIGRyb3BXb3Jkcy5oYXNfa2V5KHdvcmQpOgorICAgICAgICByZXR1cm4gMAorICAgIGlmIG9yZCh3b3JkWzBdKSA+IDB4ODA6CisgICAgICAgIHJldHVybiAwCisKKyAgICBzZWN0aW9uID0gY2xlYW51cERlc2NyU3RyaW5nKHNlY3Rpb24pCisKKyAgICBpZiB3b3Jkc0RpY3RIVE1MLmhhc19rZXkod29yZCk6CisgICAgICAgIGQgPSB3b3Jkc0RpY3RIVE1MW3dvcmRdCisJaWYgZCA9PSBOb25lOgorCSAgICBwcmludCAic2tpcHBlZCAlcyIgJSAod29yZCkKKwkgICAgcmV0dXJuIDAKKwl0cnk6CisJICAgIChyLGkscykgPSBkW3Jlc291cmNlXQorCSAgICBpZiBpICE9IE5vbmU6CisJICAgICAgICBpZCA9IGkKKwkgICAgaWYgcyAhPSBOb25lOgorCSAgICAgICAgc2VjdGlvbiA9IHMKKwkgICAgcmVsZXZhbmNlID0gcmVsZXZhbmNlICsgcgorCWV4Y2VwdDoKKwkgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIHdvcmRzRGljdEhUTUxbd29yZF0gPSB7fQorICAgIGQgPSB3b3Jkc0RpY3RIVE1MW3dvcmRdOworICAgIGRbcmVzb3VyY2VdID0gKHJlbGV2YW5jZSwgaWQsIHNlY3Rpb24pCisgICAgcmV0dXJuIHJlbGV2YW5jZQorICAgIAorZGVmIGFkZFN0cmluZ0hUTUwoc3RyLCByZXNvdXJjZSwgaWQsIHNlY3Rpb24sIHJlbGV2YW5jZSk6CisgICAgaWYgc3RyID09IE5vbmUgb3IgbGVuKHN0cikgPCAzOgorICAgICAgICByZXR1cm4gLTEKKyAgICByZXQgPSAwCisgICAgc3RyID0gY2xlYW51cFdvcmRzU3RyaW5nKHN0cikKKyAgICBsID0gc3RyaW5nLnNwbGl0KHN0cikKKyAgICBmb3Igd29yZCBpbiBsOgorCWlmIGxlbih3b3JkKSA+IDI6CisJICAgIHRyeToKKwkJciA9IGFkZFdvcmRIVE1MKHdvcmQsIHJlc291cmNlLCBpZCwgc2VjdGlvbiwgcmVsZXZhbmNlKQorCQlpZiByIDwgMDoKKwkJICAgIHByaW50ICJhZGRXb3JkSFRNTCBmYWlsZWQ6ICVzICVzIiAlICh3b3JkLCByZXNvdXJjZSkKKwkJcmV0ID0gcmV0ICsgcgorCSAgICBleGNlcHQ6CisJCXByaW50ICJhZGRXb3JkSFRNTCBmYWlsZWQ6ICVzICVzICVkIiAlICh3b3JkLCByZXNvdXJjZSwgcmVsZXZhbmNlKQorCQlwcmludCBzeXMuZXhjX3R5cGUsIHN5cy5leGNfdmFsdWUKKworICAgIHJldHVybiByZXQKKworZGVmIGFkZFdvcmRBcmNoaXZlKHdvcmQsIGlkLCByZWxldmFuY2UpOgorICAgIGdsb2JhbCB3b3Jkc0RpY3RBcmNoaXZlCisKKyAgICBpZiB3b3JkID09IE5vbmUgb3IgbGVuKHdvcmQpIDwgMzoKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgaWQgPT0gTm9uZSBvciBpZCA9PSAtMToKKyAgICAgICAgcmV0dXJuIC0xCisgICAgaWYgZHJvcFdvcmRzLmhhc19rZXkod29yZCk6CisgICAgICAgIHJldHVybiAwCisgICAgaWYgb3JkKHdvcmRbMF0pID4gMHg4MDoKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGlmIHdvcmRzRGljdEFyY2hpdmUuaGFzX2tleSh3b3JkKToKKyAgICAgICAgZCA9IHdvcmRzRGljdEFyY2hpdmVbd29yZF0KKwlpZiBkID09IE5vbmU6CisJICAgIHByaW50ICJza2lwcGVkICVzIiAlICh3b3JkKQorCSAgICByZXR1cm4gMAorCXRyeToKKwkgICAgciA9IGRbaWRdCisJICAgIHJlbGV2YW5jZSA9IHJlbGV2YW5jZSArIHIKKwlleGNlcHQ6CisJICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAgICB3b3Jkc0RpY3RBcmNoaXZlW3dvcmRdID0ge30KKyAgICBkID0gd29yZHNEaWN0QXJjaGl2ZVt3b3JkXTsKKyAgICBkW2lkXSA9IHJlbGV2YW5jZQorICAgIHJldHVybiByZWxldmFuY2UKKyAgICAKK2RlZiBhZGRTdHJpbmdBcmNoaXZlKHN0ciwgaWQsIHJlbGV2YW5jZSk6CisgICAgaWYgc3RyID09IE5vbmUgb3IgbGVuKHN0cikgPCAzOgorICAgICAgICByZXR1cm4gLTEKKyAgICByZXQgPSAwCisgICAgc3RyID0gY2xlYW51cFdvcmRzU3RyaW5nKHN0cikKKyAgICBsID0gc3RyaW5nLnNwbGl0KHN0cikKKyAgICBmb3Igd29yZCBpbiBsOgorICAgICAgICBpID0gbGVuKHdvcmQpCisJaWYgaSA+IDI6CisJICAgIHRyeToKKwkJciA9IGFkZFdvcmRBcmNoaXZlKHdvcmQsIGlkLCByZWxldmFuY2UpCisJCWlmIHIgPCAwOgorCQkgICAgcHJpbnQgImFkZFdvcmRBcmNoaXZlIGZhaWxlZDogJXMgJXMiICUgKHdvcmQsIGlkKQorCQllbHNlOgorCQkgICAgcmV0ID0gcmV0ICsgcgorCSAgICBleGNlcHQ6CisJCXByaW50ICJhZGRXb3JkQXJjaGl2ZSBmYWlsZWQ6ICVzICVzICVkIiAlICh3b3JkLCBpZCwgcmVsZXZhbmNlKQorCQlwcmludCBzeXMuZXhjX3R5cGUsIHN5cy5leGNfdmFsdWUKKyAgICByZXR1cm4gcmV0CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMJCQkJCQkJCQkjCisjICAgICAgICAgICAgICAgICAgWE1MIEFQSSBkZXNjcmlwdGlvbiBhbmFseXNpcwkJCQkjCisjCQkJCQkJCQkJIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitkZWYgbG9hZEFQSShmaWxlbmFtZSk6CisgICAgZG9jID0gbGlieG1sMi5wYXJzZUZpbGUoZmlsZW5hbWUpCisgICAgcHJpbnQgImxvYWRlZCAlcyIgJSAoZmlsZW5hbWUpCisgICAgcmV0dXJuIGRvYworCitkZWYgZm91bmRFeHBvcnQoZmlsZSwgc3ltYm9sKToKKyAgICBpZiBmaWxlID09IE5vbmU6CisgICAgICAgIHJldHVybiAwCisgICAgaWYgc3ltYm9sID09IE5vbmU6CisgICAgICAgIHJldHVybiAwCisgICAgYWRkRnVuY3Rpb24oc3ltYm9sLCBmaWxlKQorICAgIGwgPSBzcGxpdElkZW50aWZpZXIoc3ltYm9sKQorICAgIGZvciB3b3JkIGluIGw6CisJYWRkV29yZCh3b3JkLCBmaWxlLCBzeW1ib2wsIDEwKQorICAgIHJldHVybiAxCisgICAgIAorZGVmIGFuYWx5emVBUElGaWxlKHRvcCk6CisgICAgY291bnQgPSAwCisgICAgbmFtZSA9IHRvcC5wcm9wKCJuYW1lIikKKyAgICBjdXIgPSB0b3AuY2hpbGRyZW4KKyAgICB3aGlsZSBjdXIgIT0gTm9uZToKKyAgICAgICAgaWYgY3VyLnR5cGUgPT0gJ3RleHQnOgorCSAgICBjdXIgPSBjdXIubmV4dAorCSAgICBjb250aW51ZQorCWlmIGN1ci5uYW1lID09ICJleHBvcnRzIjoKKwkgICAgY291bnQgPSBjb3VudCArIGZvdW5kRXhwb3J0KG5hbWUsIGN1ci5wcm9wKCJzeW1ib2wiKSkKKwllbHNlOgorCSAgICBwcmludCAidW5leHBlY3RlZCBlbGVtZW50ICVzIGluIEFQSSBkb2MgPGZpbGUgbmFtZT0nJXMnPiIgJSAobmFtZSkKKyAgICAgICAgY3VyID0gY3VyLm5leHQKKyAgICByZXR1cm4gY291bnQKKworZGVmIGFuYWx5emVBUElGaWxlcyh0b3ApOgorICAgIGNvdW50ID0gMAorICAgIGN1ciA9IHRvcC5jaGlsZHJlbgorICAgICAgICAKKyAgICB3aGlsZSBjdXIgIT0gTm9uZToKKyAgICAgICAgaWYgY3VyLnR5cGUgPT0gJ3RleHQnOgorCSAgICBjdXIgPSBjdXIubmV4dAorCSAgICBjb250aW51ZQorCWlmIGN1ci5uYW1lID09ICJmaWxlIjoKKwkgICAgY291bnQgPSBjb3VudCArIGFuYWx5emVBUElGaWxlKGN1cikKKwllbHNlOgorCSAgICBwcmludCAidW5leHBlY3RlZCBlbGVtZW50ICVzIGluIEFQSSBkb2MgPGZpbGVzPiIgJSAoY3VyLm5hbWUpCisgICAgICAgIGN1ciA9IGN1ci5uZXh0CisgICAgcmV0dXJuIGNvdW50CisKK2RlZiBhbmFseXplQVBJRW51bSh0b3ApOgorICAgIGZpbGUgPSB0b3AucHJvcCgiZmlsZSIpCisgICAgaWYgZmlsZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gMAorICAgIHN5bWJvbCA9IHRvcC5wcm9wKCJuYW1lIikKKyAgICBpZiBzeW1ib2wgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGFkZEVudW0oc3ltYm9sLCBmaWxlKQorICAgIGwgPSBzcGxpdElkZW50aWZpZXIoc3ltYm9sKQorICAgIGZvciB3b3JkIGluIGw6CisJYWRkV29yZCh3b3JkLCBmaWxlLCBzeW1ib2wsIDEwKQorCisgICAgcmV0dXJuIDEKKworZGVmIGFuYWx5emVBUElDb25zdCh0b3ApOgorICAgIGZpbGUgPSB0b3AucHJvcCgiZmlsZSIpCisgICAgaWYgZmlsZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gMAorICAgIHN5bWJvbCA9IHRvcC5wcm9wKCJuYW1lIikKKyAgICBpZiBzeW1ib2wgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGFkZENvbnN0KHN5bWJvbCwgZmlsZSkKKyAgICBsID0gc3BsaXRJZGVudGlmaWVyKHN5bWJvbCkKKyAgICBmb3Igd29yZCBpbiBsOgorCWFkZFdvcmQod29yZCwgZmlsZSwgc3ltYm9sLCAxMCkKKworICAgIHJldHVybiAxCisKK2RlZiBhbmFseXplQVBJVHlwZSh0b3ApOgorICAgIGZpbGUgPSB0b3AucHJvcCgiZmlsZSIpCisgICAgaWYgZmlsZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gMAorICAgIHN5bWJvbCA9IHRvcC5wcm9wKCJuYW1lIikKKyAgICBpZiBzeW1ib2wgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGFkZFR5cGUoc3ltYm9sLCBmaWxlKQorICAgIGwgPSBzcGxpdElkZW50aWZpZXIoc3ltYm9sKQorICAgIGZvciB3b3JkIGluIGw6CisJYWRkV29yZCh3b3JkLCBmaWxlLCBzeW1ib2wsIDEwKQorICAgIHJldHVybiAxCisKK2RlZiBhbmFseXplQVBJRnVuY3R5cGUodG9wKToKKyAgICBmaWxlID0gdG9wLnByb3AoImZpbGUiKQorICAgIGlmIGZpbGUgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIDAKKyAgICBzeW1ib2wgPSB0b3AucHJvcCgibmFtZSIpCisgICAgaWYgc3ltYm9sID09IE5vbmU6CisgICAgICAgIHJldHVybiAwCisKKyAgICBhZGRGdW5jdHlwZShzeW1ib2wsIGZpbGUpCisgICAgbCA9IHNwbGl0SWRlbnRpZmllcihzeW1ib2wpCisgICAgZm9yIHdvcmQgaW4gbDoKKwlhZGRXb3JkKHdvcmQsIGZpbGUsIHN5bWJvbCwgMTApCisgICAgcmV0dXJuIDEKKworZGVmIGFuYWx5emVBUElTdHJ1Y3QodG9wKToKKyAgICBmaWxlID0gdG9wLnByb3AoImZpbGUiKQorICAgIGlmIGZpbGUgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIDAKKyAgICBzeW1ib2wgPSB0b3AucHJvcCgibmFtZSIpCisgICAgaWYgc3ltYm9sID09IE5vbmU6CisgICAgICAgIHJldHVybiAwCisKKyAgICBhZGRTdHJ1Y3Qoc3ltYm9sLCBmaWxlKQorICAgIGwgPSBzcGxpdElkZW50aWZpZXIoc3ltYm9sKQorICAgIGZvciB3b3JkIGluIGw6CisJYWRkV29yZCh3b3JkLCBmaWxlLCBzeW1ib2wsIDEwKQorCisgICAgaW5mbyA9IHRvcC5wcm9wKCJpbmZvIikKKyAgICBpZiBpbmZvICE9IE5vbmU6CisJaW5mbyA9IHN0cmluZy5yZXBsYWNlKGluZm8sICInIiwgIiAiKQorCWluZm8gPSBzdHJpbmcuc3RyaXAoaW5mbykKKwlsID0gc3RyaW5nLnNwbGl0KGluZm8pCisJZm9yIHdvcmQgaW4gbDoKKwkgICAgaWYgbGVuKHdvcmQpID4gMjoKKwkJYWRkV29yZCh3b3JkLCBmaWxlLCBzeW1ib2wsIDUpCisgICAgcmV0dXJuIDEKKworZGVmIGFuYWx5emVBUElNYWNybyh0b3ApOgorICAgIGZpbGUgPSB0b3AucHJvcCgiZmlsZSIpCisgICAgaWYgZmlsZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gMAorICAgIHN5bWJvbCA9IHRvcC5wcm9wKCJuYW1lIikKKyAgICBpZiBzeW1ib2wgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIDAKKyAgICBzeW1ib2wgPSBzdHJpbmcucmVwbGFjZShzeW1ib2wsICInIiwgIiAiKQorICAgIHN5bWJvbCA9IHN0cmluZy5zdHJpcChzeW1ib2wpCisKKyAgICBpbmZvID0gTm9uZQorICAgIGN1ciA9IHRvcC5jaGlsZHJlbgorICAgIHdoaWxlIGN1ciAhPSBOb25lOgorICAgICAgICBpZiBjdXIudHlwZSA9PSAndGV4dCc6CisJICAgIGN1ciA9IGN1ci5uZXh0CisJICAgIGNvbnRpbnVlCisJaWYgY3VyLm5hbWUgPT0gImluZm8iOgorCSAgICBpbmZvID0gY3VyLmNvbnRlbnQKKwkgICAgYnJlYWsKKyAgICAgICAgY3VyID0gY3VyLm5leHQKKworICAgIGwgPSBzcGxpdElkZW50aWZpZXIoc3ltYm9sKQorICAgIGZvciB3b3JkIGluIGw6CisJYWRkV29yZCh3b3JkLCBmaWxlLCBzeW1ib2wsIDEwKQorCisgICAgaWYgaW5mbyA9PSBOb25lOgorCWFkZE1hY3JvKHN5bWJvbCwgZmlsZSkKKyAgICAgICAgcHJpbnQgIk1hY3JvICVzIGRlc2NyaXB0aW9uIGhhcyBubyA8aW5mbz4iICUgKHN5bWJvbCkKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGluZm8gPSBzdHJpbmcucmVwbGFjZShpbmZvLCAiJyIsICIgIikKKyAgICBpbmZvID0gc3RyaW5nLnN0cmlwKGluZm8pCisgICAgYWRkTWFjcm8oc3ltYm9sLCBmaWxlLCBpbmZvKQorICAgIGwgPSBzdHJpbmcuc3BsaXQoaW5mbykKKyAgICBmb3Igd29yZCBpbiBsOgorCWlmIGxlbih3b3JkKSA+IDI6CisJICAgIGFkZFdvcmQod29yZCwgZmlsZSwgc3ltYm9sLCA1KQorICAgIHJldHVybiAxCisKK2RlZiBhbmFseXplQVBJRnVuY3Rpb24odG9wKToKKyAgICBmaWxlID0gdG9wLnByb3AoImZpbGUiKQorICAgIGlmIGZpbGUgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuIDAKKyAgICBzeW1ib2wgPSB0b3AucHJvcCgibmFtZSIpCisgICAgaWYgc3ltYm9sID09IE5vbmU6CisgICAgICAgIHJldHVybiAwCisKKyAgICBzeW1ib2wgPSBzdHJpbmcucmVwbGFjZShzeW1ib2wsICInIiwgIiAiKQorICAgIHN5bWJvbCA9IHN0cmluZy5zdHJpcChzeW1ib2wpCisgICAgaW5mbyA9IE5vbmUKKyAgICBjdXIgPSB0b3AuY2hpbGRyZW4KKyAgICB3aGlsZSBjdXIgIT0gTm9uZToKKyAgICAgICAgaWYgY3VyLnR5cGUgPT0gJ3RleHQnOgorCSAgICBjdXIgPSBjdXIubmV4dAorCSAgICBjb250aW51ZQorCWlmIGN1ci5uYW1lID09ICJpbmZvIjoKKwkgICAgaW5mbyA9IGN1ci5jb250ZW50CisJZWxpZiBjdXIubmFtZSA9PSAicmV0dXJuIjoKKwkgICAgcmluZm8gPSBjdXIucHJvcCgiaW5mbyIpCisJICAgIGlmIHJpbmZvICE9IE5vbmU6CisJCXJpbmZvID0gc3RyaW5nLnJlcGxhY2UocmluZm8sICInIiwgIiAiKQorCQlyaW5mbyA9IHN0cmluZy5zdHJpcChyaW5mbykKKwkgICAgICAgIGFkZFN0cmluZyhyaW5mbywgZmlsZSwgc3ltYm9sLCA3KQorCWVsaWYgY3VyLm5hbWUgPT0gImFyZyI6CisJICAgIGFpbmZvID0gY3VyLnByb3AoImluZm8iKQorCSAgICBpZiBhaW5mbyAhPSBOb25lOgorCQlhaW5mbyA9IHN0cmluZy5yZXBsYWNlKGFpbmZvLCAiJyIsICIgIikKKwkJYWluZm8gPSBzdHJpbmcuc3RyaXAoYWluZm8pCisJICAgICAgICBhZGRTdHJpbmcoYWluZm8sIGZpbGUsIHN5bWJvbCwgNSkKKwkgICAgbmFtZSA9IGN1ci5wcm9wKCJuYW1lIikKKwkgICAgaWYgbmFtZSAhPSBOb25lOgorCQluYW1lID0gc3RyaW5nLnJlcGxhY2UobmFtZSwgIiciLCAiICIpCisJCW5hbWUgPSBzdHJpbmcuc3RyaXAobmFtZSkKKwkgICAgICAgIGFkZFdvcmQobmFtZSwgZmlsZSwgc3ltYm9sLCA3KQorICAgICAgICBjdXIgPSBjdXIubmV4dAorICAgIGlmIGluZm8gPT0gTm9uZToKKyAgICAgICAgcHJpbnQgIkZ1bmN0aW9uICVzIGRlc2NyaXB0aW9uIGhhcyBubyA8aW5mbz4iICUgKHN5bWJvbCkKKwlhZGRGdW5jdGlvbihzeW1ib2wsIGZpbGUsICIiKQorICAgIGVsc2U6CisgICAgICAgIGluZm8gPSBzdHJpbmcucmVwbGFjZShpbmZvLCAiJyIsICIgIikKKwlpbmZvID0gc3RyaW5nLnN0cmlwKGluZm8pCisJYWRkRnVuY3Rpb24oc3ltYm9sLCBmaWxlLCBpbmZvKQorICAgICAgICBhZGRTdHJpbmcoaW5mbywgZmlsZSwgc3ltYm9sLCA1KQorCisgICAgbCA9IHNwbGl0SWRlbnRpZmllcihzeW1ib2wpCisgICAgZm9yIHdvcmQgaW4gbDoKKwlhZGRXb3JkKHdvcmQsIGZpbGUsIHN5bWJvbCwgMTApCisKKyAgICByZXR1cm4gMQorCitkZWYgYW5hbHl6ZUFQSVN5bWJvbHModG9wKToKKyAgICBjb3VudCA9IDAKKyAgICBjdXIgPSB0b3AuY2hpbGRyZW4KKyAgICAgICAgCisgICAgd2hpbGUgY3VyICE9IE5vbmU6CisgICAgICAgIGlmIGN1ci50eXBlID09ICd0ZXh0JzoKKwkgICAgY3VyID0gY3VyLm5leHQKKwkgICAgY29udGludWUKKwlpZiBjdXIubmFtZSA9PSAibWFjcm8iOgorCSAgICBjb3VudCA9IGNvdW50ICsgYW5hbHl6ZUFQSU1hY3JvKGN1cikKKwllbGlmIGN1ci5uYW1lID09ICJmdW5jdGlvbiI6CisJICAgIGNvdW50ID0gY291bnQgKyBhbmFseXplQVBJRnVuY3Rpb24oY3VyKQorCWVsaWYgY3VyLm5hbWUgPT0gImNvbnN0IjoKKwkgICAgY291bnQgPSBjb3VudCArIGFuYWx5emVBUElDb25zdChjdXIpCisJZWxpZiBjdXIubmFtZSA9PSAidHlwZWRlZiI6CisJICAgIGNvdW50ID0gY291bnQgKyBhbmFseXplQVBJVHlwZShjdXIpCisJZWxpZiBjdXIubmFtZSA9PSAic3RydWN0IjoKKwkgICAgY291bnQgPSBjb3VudCArIGFuYWx5emVBUElTdHJ1Y3QoY3VyKQorCWVsaWYgY3VyLm5hbWUgPT0gImVudW0iOgorCSAgICBjb3VudCA9IGNvdW50ICsgYW5hbHl6ZUFQSUVudW0oY3VyKQorCWVsaWYgY3VyLm5hbWUgPT0gImZ1bmN0eXBlIjoKKwkgICAgY291bnQgPSBjb3VudCArIGFuYWx5emVBUElGdW5jdHlwZShjdXIpCisJZWxzZToKKwkgICAgcHJpbnQgInVuZXhwZWN0ZWQgZWxlbWVudCAlcyBpbiBBUEkgZG9jIDxmaWxlcz4iICUgKGN1ci5uYW1lKQorICAgICAgICBjdXIgPSBjdXIubmV4dAorICAgIHJldHVybiBjb3VudAorCitkZWYgYW5hbHl6ZUFQSShkb2MpOgorICAgIGNvdW50ID0gMAorICAgIGlmIGRvYyA9PSBOb25lOgorICAgICAgICByZXR1cm4gLTEKKyAgICByb290ID0gZG9jLmdldFJvb3RFbGVtZW50KCkKKyAgICBpZiByb290Lm5hbWUgIT0gImFwaSI6CisgICAgICAgIHByaW50ICJVbmV4cGVjdGVkIHJvb3QgbmFtZSIKKyAgICAgICAgcmV0dXJuIC0xCisgICAgY3VyID0gcm9vdC5jaGlsZHJlbgorICAgIHdoaWxlIGN1ciAhPSBOb25lOgorICAgICAgICBpZiBjdXIudHlwZSA9PSAndGV4dCc6CisJICAgIGN1ciA9IGN1ci5uZXh0CisJICAgIGNvbnRpbnVlCisJaWYgY3VyLm5hbWUgPT0gImZpbGVzIjoKKwkgICAgcGFzcworIwkgICAgY291bnQgPSBjb3VudCArIGFuYWx5emVBUElGaWxlcyhjdXIpCisJZWxpZiBjdXIubmFtZSA9PSAic3ltYm9scyI6CisJICAgIGNvdW50ID0gY291bnQgKyBhbmFseXplQVBJU3ltYm9scyhjdXIpCisJZWxzZToKKwkgICAgcHJpbnQgInVuZXhwZWN0ZWQgZWxlbWVudCAlcyBpbiBBUEkgZG9jIiAlIChjdXIubmFtZSkKKyAgICAgICAgY3VyID0gY3VyLm5leHQKKyAgICByZXR1cm4gY291bnQKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwkJCQkJCQkJCSMKKyMgICAgICAgICAgICAgICAgICBXZWIgcGFnZXMgcGFyc2luZyBhbmQgYW5hbHlzaXMJCQkjCisjCQkJCQkJCQkJIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgZ2xvYgorCitkZWYgYW5hbHl6ZUhUTUxUZXh0KGRvYywgcmVzb3VyY2UsIHAsIHNlY3Rpb24sIGlkKToKKyAgICB3b3JkcyA9IDAKKyAgICB0cnk6CisJY29udGVudCA9IHAuY29udGVudAorCXdvcmRzID0gd29yZHMgKyBhZGRTdHJpbmdIVE1MKGNvbnRlbnQsIHJlc291cmNlLCBpZCwgc2VjdGlvbiwgNSkKKyAgICBleGNlcHQ6CisgICAgICAgIHJldHVybiAtMQorICAgIHJldHVybiB3b3JkcworCitkZWYgYW5hbHl6ZUhUTUxQYXJhKGRvYywgcmVzb3VyY2UsIHAsIHNlY3Rpb24sIGlkKToKKyAgICB3b3JkcyA9IDAKKyAgICB0cnk6CisJY29udGVudCA9IHAuY29udGVudAorCXdvcmRzID0gd29yZHMgKyBhZGRTdHJpbmdIVE1MKGNvbnRlbnQsIHJlc291cmNlLCBpZCwgc2VjdGlvbiwgNSkKKyAgICBleGNlcHQ6CisgICAgICAgIHJldHVybiAtMQorICAgIHJldHVybiB3b3JkcworCitkZWYgYW5hbHl6ZUhUTUxQcmUoZG9jLCByZXNvdXJjZSwgcCwgc2VjdGlvbiwgaWQpOgorICAgIHdvcmRzID0gMAorICAgIHRyeToKKwljb250ZW50ID0gcC5jb250ZW50CisJd29yZHMgPSB3b3JkcyArIGFkZFN0cmluZ0hUTUwoY29udGVudCwgcmVzb3VyY2UsIGlkLCBzZWN0aW9uLCA1KQorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuIC0xCisgICAgcmV0dXJuIHdvcmRzCisKK2RlZiBhbmFseXplSFRNTChkb2MsIHJlc291cmNlLCBwLCBzZWN0aW9uLCBpZCk6CisgICAgd29yZHMgPSAwCisgICAgdHJ5OgorCWNvbnRlbnQgPSBwLmNvbnRlbnQKKwl3b3JkcyA9IHdvcmRzICsgYWRkU3RyaW5nSFRNTChjb250ZW50LCByZXNvdXJjZSwgaWQsIHNlY3Rpb24sIDUpCisgICAgZXhjZXB0OgorICAgICAgICByZXR1cm4gLTEKKyAgICByZXR1cm4gd29yZHMKKworZGVmIGFuYWx5emVIVE1MKGRvYywgcmVzb3VyY2UpOgorICAgIHBhcmEgPSAwOworICAgIGN0eHQgPSBkb2MueHBhdGhOZXdDb250ZXh0KCkKKyAgICB0cnk6CisJcmVzID0gY3R4dC54cGF0aEV2YWwoIi8vaGVhZC90aXRsZSIpCisJdGl0bGUgPSByZXNbMF0uY29udGVudAorICAgIGV4Y2VwdDoKKyAgICAgICAgdGl0bGUgPSAiUGFnZSAlcyIgJSAocmVzb3VyY2UpCisgICAgYWRkUGFnZShyZXNvdXJjZSwgdGl0bGUpCisgICAgdHJ5OgorCWl0ZW1zID0gY3R4dC54cGF0aEV2YWwoIi8vaDEgfCAvL2gyIHwgLy9oMyB8IC8vdGV4dCgpIikKKwlzZWN0aW9uID0gdGl0bGUKKwlpZCA9ICIiCisJZm9yIGl0ZW0gaW4gaXRlbXM6CisJICAgIGlmIGl0ZW0ubmFtZSA9PSAnaDEnIG9yIGl0ZW0ubmFtZSA9PSAnaDInIG9yIGl0ZW0ubmFtZSA9PSAnaDMnOgorCSAgICAgICAgc2VjdGlvbiA9IGl0ZW0uY29udGVudAorCQlpZiBpdGVtLnByb3AoImlkIik6CisJCSAgICBpZCA9IGl0ZW0ucHJvcCgiaWQiKQorCQllbGlmIGl0ZW0ucHJvcCgibmFtZSIpOgorCQkgICAgaWQgPSBpdGVtLnByb3AoIm5hbWUiKQorCSAgICBlbGlmIGl0ZW0udHlwZSA9PSAndGV4dCc6CisJICAgICAgICBhbmFseXplSFRNTFRleHQoZG9jLCByZXNvdXJjZSwgaXRlbSwgc2VjdGlvbiwgaWQpCisJCXBhcmEgPSBwYXJhICsgMQorCSAgICBlbGlmIGl0ZW0ubmFtZSA9PSAncCc6CisJICAgICAgICBhbmFseXplSFRNTFBhcmEoZG9jLCByZXNvdXJjZSwgaXRlbSwgc2VjdGlvbiwgaWQpCisJCXBhcmEgPSBwYXJhICsgMQorCSAgICBlbGlmIGl0ZW0ubmFtZSA9PSAncHJlJzoKKwkgICAgICAgIGFuYWx5emVIVE1MUHJlKGRvYywgcmVzb3VyY2UsIGl0ZW0sIHNlY3Rpb24sIGlkKQorCQlwYXJhID0gcGFyYSArIDEKKwkgICAgZWxzZToKKwkgICAgICAgIHByaW50ICJQYWdlICVzLCB1bmV4cGVjdGVkICVzIGVsZW1lbnQiICUgKHJlc291cmNlLCBpdGVtLm5hbWUpCisgICAgZXhjZXB0OgorICAgICAgICBwcmludCAiUGFnZSAlczogcHJvYmxlbSBhbmFseXppbmciICUgKHJlc291cmNlKQorCXByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCisgICAgcmV0dXJuIHBhcmEKKworZGVmIGFuYWx5emVIVE1MUGFnZXMoKToKKyAgICByZXQgPSAwCisgICAgSFRNTGZpbGVzID0gZ2xvYi5nbG9iKCIqLmh0bWwiKSArIGdsb2IuZ2xvYigidHV0b3JpYWwvKi5odG1sIikKKyAgICBmb3IgaHRtbCBpbiBIVE1MZmlsZXM6CisJaWYgaHRtbFswOjNdID09ICJBUEkiOgorCSAgICBjb250aW51ZQorCWlmIGh0bWwgPT0gInhtbC5odG1sIjoKKwkgICAgY29udGludWUKKwl0cnk6CisJICAgIGRvYyA9IGxpYnhtbDIucGFyc2VGaWxlKGh0bWwpCisJZXhjZXB0OgorCSAgICBkb2MgPSBsaWJ4bWwyLmh0bWxQYXJzZUZpbGUoaHRtbCwgTm9uZSkKKwl0cnk6CisJICAgIHJlcyA9IGFuYWx5emVIVE1MKGRvYywgaHRtbCkKKwkgICAgcHJpbnQgIlBhcnNlZCAlcyA6ICVkIHBhcmFncmFwaHMiICUgKGh0bWwsIHJlcykKKwkgICAgcmV0ID0gcmV0ICsgMQorCWV4Y2VwdDoKKwkgICAgcHJpbnQgImNvdWxkIG5vdCBwYXJzZSAlcyIgJSAoaHRtbCkKKyAgICByZXR1cm4gcmV0CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMJCQkJCQkJCQkjCisjICAgICAgICAgICAgICAgICAgTWFpbCBhcmNoaXZlcyBwYXJzaW5nIGFuZCBhbmFseXNpcwkJCSMKKyMJCQkJCQkJCQkjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB0aW1lCisKK2RlZiBnZXRYTUxEYXRlQXJjaGl2ZSh0ID0gTm9uZSk6CisgICAgaWYgdCA9PSBOb25lOgorCXQgPSB0aW1lLnRpbWUoKQorICAgIFQgPSB0aW1lLmdtdGltZSh0KQorICAgIG1vbnRoID0gdGltZS5zdHJmdGltZSgiJUIiLCBUKQorICAgIHllYXIgPSBUWzBdCisgICAgdXJsID0gImh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvJWQtJXMvZGF0ZS5odG1sIiAlICh5ZWFyLCBtb250aCkKKyAgICByZXR1cm4gdXJsCisKK2RlZiBzY2FuWE1MTXNnQXJjaGl2ZSh1cmwsIHRpdGxlLCBmb3JjZSA9IDApOgorICAgIGlmIHVybCA9PSBOb25lIG9yIHRpdGxlID09IE5vbmU6CisgICAgICAgIHJldHVybiAwCisKKyAgICBJRCA9IGNoZWNrWE1MTXNnQXJjaGl2ZSh1cmwpCisgICAgaWYgZm9yY2UgPT0gMCBhbmQgSUQgIT0gLTE6CisgICAgICAgIHJldHVybiAwCisKKyAgICBpZiBJRCA9PSAtMToKKwlJRCA9IGFkZFhNTE1zZ0FyY2hpdmUodXJsLCB0aXRsZSkKKwlpZiBJRCA9PSAtMToKKwkgICAgcmV0dXJuIDAKKworICAgIHRyeToKKyAgICAgICAgcHJpbnQgIkxvYWRpbmcgJXMiICUgKHVybCkKKyAgICAgICAgZG9jID0gbGlieG1sMi5odG1sUGFyc2VGaWxlKHVybCwgTm9uZSk7CisgICAgZXhjZXB0OgorICAgICAgICBkb2MgPSBOb25lCisgICAgaWYgZG9jID09IE5vbmU6CisgICAgICAgIHByaW50ICJGYWlsZWQgdG8gcGFyc2UgJXMiICUgKHVybCkKKwlyZXR1cm4gMAorCisgICAgYWRkU3RyaW5nQXJjaGl2ZSh0aXRsZSwgSUQsIDIwKQorICAgIGN0eHQgPSBkb2MueHBhdGhOZXdDb250ZXh0KCkKKyAgICB0ZXh0cyA9IGN0eHQueHBhdGhFdmFsKCIvL3ByZS8vdGV4dCgpIikKKyAgICBmb3IgdGV4dCBpbiB0ZXh0czoKKyAgICAgICAgYWRkU3RyaW5nQXJjaGl2ZSh0ZXh0LmNvbnRlbnQsIElELCA1KQorCisgICAgcmV0dXJuIDEKKworZGVmIHNjYW5YTUxEYXRlQXJjaGl2ZSh0ID0gTm9uZSwgZm9yY2UgPSAwKToKKyAgICBnbG9iYWwgd29yZHNEaWN0QXJjaGl2ZQorCisgICAgd29yZHNEaWN0QXJjaGl2ZSA9IHt9CisKKyAgICB1cmwgPSBnZXRYTUxEYXRlQXJjaGl2ZSh0KQorICAgIHByaW50ICJsb2FkaW5nICVzIiAlICh1cmwpCisgICAgdHJ5OgorCWRvYyA9IGxpYnhtbDIuaHRtbFBhcnNlRmlsZSh1cmwsIE5vbmUpOworICAgIGV4Y2VwdDoKKyAgICAgICAgZG9jID0gTm9uZQorICAgIGlmIGRvYyA9PSBOb25lOgorICAgICAgICBwcmludCAiRmFpbGVkIHRvIHBhcnNlICVzIiAlICh1cmwpCisJcmV0dXJuIC0xCisgICAgY3R4dCA9IGRvYy54cGF0aE5ld0NvbnRleHQoKQorICAgIGFuY2hvcnMgPSBjdHh0LnhwYXRoRXZhbCgiLy9hW0BocmVmXSIpCisgICAgbGlua3MgPSAwCisgICAgbmV3bXNnID0gMAorICAgIGZvciBhbmNob3IgaW4gYW5jaG9yczoKKwlocmVmID0gYW5jaG9yLnByb3AoImhyZWYiKQorCWlmIGhyZWYgPT0gTm9uZSBvciBocmVmWzA6M10gIT0gIm1zZyI6CisJICAgIGNvbnRpbnVlCisgICAgICAgIHRyeToKKwkgICAgbGlua3MgPSBsaW5rcyArIDEKKworCSAgICBtc2cgPSBsaWJ4bWwyLmJ1aWxkVVJJKGhyZWYsIHVybCkKKwkgICAgdGl0bGUgPSBhbmNob3IuY29udGVudAorCSAgICBpZiB0aXRsZSAhPSBOb25lIGFuZCB0aXRsZVswOjRdID09ICdSZTogJzoKKwkgICAgICAgIHRpdGxlID0gdGl0bGVbNDpdCisJICAgIGlmIHRpdGxlICE9IE5vbmUgYW5kIHRpdGxlWzA6Nl0gPT0gJ1t4bWxdICc6CisJICAgICAgICB0aXRsZSA9IHRpdGxlWzY6XQorCSAgICBuZXdtc2cgPSBuZXdtc2cgKyBzY2FuWE1MTXNnQXJjaGl2ZShtc2csIHRpdGxlLCBmb3JjZSkKKworCWV4Y2VwdDoKKwkgICAgcGFzcworCisgICAgcmV0dXJuIG5ld21zZworICAgIAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCQkJCQkJCQkJIworIyAgICAgICAgICBNYWluIGNvZGU6IG9wZW4gdGhlIERCLCB0aGUgQVBJIFhNTCBhbmQgYW5hbHl6ZSBpdAkJIworIwkJCQkJCQkJCSMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2RlZiBhbmFseXplQXJjaGl2ZXModCA9IE5vbmUsIGZvcmNlID0gMCk6CisgICAgZ2xvYmFsIHdvcmRzRGljdEFyY2hpdmUKKworICAgIHJldCA9IHNjYW5YTUxEYXRlQXJjaGl2ZSh0LCBmb3JjZSkKKyAgICBwcmludCAiSW5kZXhlZCAlZCB3b3JkcyBpbiAlZCBhcmNoaXZlIHBhZ2VzIiAlIChsZW4od29yZHNEaWN0QXJjaGl2ZSksIHJldCkKKworICAgIGkgPSAwCisgICAgc2tpcHBlZCA9IDAKKyAgICBmb3Igd29yZCBpbiB3b3Jkc0RpY3RBcmNoaXZlLmtleXMoKToKKwlyZWZzID0gd29yZHNEaWN0QXJjaGl2ZVt3b3JkXQorCWlmIHJlZnMgID09IE5vbmU6CisJICAgIHNraXBwZWQgPSBza2lwcGVkICsgMQorCSAgICBjb250aW51ZTsKKwlmb3IgaWQgaW4gcmVmcy5rZXlzKCk6CisJICAgIHJlbGV2YW5jZSA9IHJlZnNbaWRdCisJICAgIHVwZGF0ZVdvcmRBcmNoaXZlKHdvcmQsIGlkLCByZWxldmFuY2UpCisJICAgIGkgPSBpICsgMQorCisgICAgcHJpbnQgIkZvdW5kICVkIGFzc29jaWF0aW9ucyBpbiBIVE1MIHBhZ2VzIiAlIChpKQorCitkZWYgYW5hbHl6ZUhUTUxUb3AoKToKKyAgICBnbG9iYWwgd29yZHNEaWN0SFRNTAorCisgICAgcmV0ID0gYW5hbHl6ZUhUTUxQYWdlcygpCisgICAgcHJpbnQgIkluZGV4ZWQgJWQgd29yZHMgaW4gJWQgSFRNTCBwYWdlcyIgJSAobGVuKHdvcmRzRGljdEhUTUwpLCByZXQpCisKKyAgICBpID0gMAorICAgIHNraXBwZWQgPSAwCisgICAgZm9yIHdvcmQgaW4gd29yZHNEaWN0SFRNTC5rZXlzKCk6CisJcmVmcyA9IHdvcmRzRGljdEhUTUxbd29yZF0KKwlpZiByZWZzICA9PSBOb25lOgorCSAgICBza2lwcGVkID0gc2tpcHBlZCArIDEKKwkgICAgY29udGludWU7CisJZm9yIHJlc291cmNlIGluIHJlZnMua2V5cygpOgorCSAgICAocmVsZXZhbmNlLCBpZCwgc2VjdGlvbikgPSByZWZzW3Jlc291cmNlXQorCSAgICB1cGRhdGVXb3JkSFRNTCh3b3JkLCByZXNvdXJjZSwgc2VjdGlvbiwgaWQsIHJlbGV2YW5jZSkKKwkgICAgaSA9IGkgKyAxCisKKyAgICBwcmludCAiRm91bmQgJWQgYXNzb2NpYXRpb25zIGluIEhUTUwgcGFnZXMiICUgKGkpCisKK2RlZiBhbmFseXplQVBJVG9wKCk6CisgICAgZ2xvYmFsIHdvcmRzRGljdAorICAgIGdsb2JhbCBBUEkKKworICAgIHRyeToKKwlkb2MgPSBsb2FkQVBJKEFQSSkKKwlyZXQgPSBhbmFseXplQVBJKGRvYykKKwlwcmludCAiQW5hbHl6ZWQgJWQgYmxvY3MiICUgKHJldCkKKwlkb2MuZnJlZURvYygpCisgICAgZXhjZXB0OgorCXByaW50ICJGYWlsZWQgdG8gcGFyc2UgYW5kIGFuYWx5emUgJXMiICUgKEFQSSkKKwlwcmludCBzeXMuZXhjX3R5cGUsIHN5cy5leGNfdmFsdWUKKwlzeXMuZXhpdCgxKQorCisgICAgcHJpbnQgIkluZGV4ZWQgJWQgd29yZHMiICUgKGxlbih3b3Jkc0RpY3QpKQorICAgIGkgPSAwCisgICAgc2tpcHBlZCA9IDAKKyAgICBmb3Igd29yZCBpbiB3b3Jkc0RpY3Qua2V5cygpOgorCXJlZnMgPSB3b3Jkc0RpY3Rbd29yZF0KKwlpZiByZWZzICA9PSBOb25lOgorCSAgICBza2lwcGVkID0gc2tpcHBlZCArIDEKKwkgICAgY29udGludWU7CisJZm9yIChtb2R1bGUsIHN5bWJvbCkgaW4gcmVmcy5rZXlzKCk6CisJICAgIHVwZGF0ZVdvcmQod29yZCwgc3ltYm9sLCByZWZzWyhtb2R1bGUsIHN5bWJvbCldKQorCSAgICBpID0gaSArIDEKKworICAgIHByaW50ICJGb3VuZCAlZCBhc3NvY2lhdGlvbnMsIHNraXBwZWQgJWQgd29yZHMiICUgKGksIHNraXBwZWQpCisKK2RlZiB1c2FnZSgpOgorICAgIHByaW50ICJVc2FnZSBpbmRleC5weSBbLS1mb3JjZV0gWy0tYXJjaGl2ZV0gIFstLWFyY2hpdmUteWVhciB5ZWFyXSBbLS1hcmNoaXZlLW1vbnRoIG1vbnRoXSBbLS1BUEldIFstLWRvY3NdIgorICAgIHN5cy5leGl0KDEpCisKK2RlZiBtYWluKCk6CisgICAgdHJ5OgorCW9wZW5NeVNRTCgpCisgICAgZXhjZXB0OgorCXByaW50ICJGYWlsZWQgdG8gb3BlbiB0aGUgZGF0YWJhc2UiCisJcHJpbnQgc3lzLmV4Y190eXBlLCBzeXMuZXhjX3ZhbHVlCisJc3lzLmV4aXQoMSkKKworICAgIGFyZ3MgPSBzeXMuYXJndlsxOl0KKyAgICBmb3JjZSA9IDAKKyAgICBpZiBhcmdzOgorICAgICAgICBpID0gMAorCXdoaWxlIGkgPCBsZW4oYXJncyk6CisJICAgIGlmIGFyZ3NbaV0gPT0gJy0tZm9yY2UnOgorCSAgICAgICAgZm9yY2UgPSAxCisJICAgIGVsaWYgYXJnc1tpXSA9PSAnLS1hcmNoaXZlJzoKKwkgICAgICAgIGFuYWx5emVBcmNoaXZlcyhOb25lLCBmb3JjZSkKKwkgICAgZWxpZiBhcmdzW2ldID09ICctLWFyY2hpdmUteWVhcic6CisJICAgICAgICBpID0gaSArIDE7CisJCXllYXIgPSBhcmdzW2ldCisJCW1vbnRocyA9IFsiSmFudWFyeSIgLCAiRmVicnVhcnkiLCAiTWFyY2giLCAiQXByaWwiLCAiTWF5IiwKKwkJCSAgIkp1bmUiLCAiSnVseSIsICJBdWd1c3QiLCAiU2VwdGVtYmVyIiwgIk9jdG9iZXIiLAorCQkJICAiTm92ZW1iZXIiLCAiRGVjZW1iZXIiXTsKKwkgICAgICAgIGZvciBtb250aCBpbiBtb250aHM6CisJCSAgICB0cnk6CisJCSAgICAgICAgc3RyID0gIiVzLSVzIiAlICh5ZWFyLCBtb250aCkKKwkJCVQgPSB0aW1lLnN0cnB0aW1lKHN0ciwgIiVZLSVCIikKKwkJCXQgPSB0aW1lLm1rdGltZShUKSArIDM2MDAgKiAyNCAqIDEwOworCQkJYW5hbHl6ZUFyY2hpdmVzKHQsIGZvcmNlKQorCQkgICAgZXhjZXB0OgorCQkJcHJpbnQgIkZhaWxlZCB0byBpbmRleCBtb250aCBhcmNoaXZlOiIKKwkJCXByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCSAgICBlbGlmIGFyZ3NbaV0gPT0gJy0tYXJjaGl2ZS1tb250aCc6CisJICAgICAgICBpID0gaSArIDE7CisJCW1vbnRoID0gYXJnc1tpXQorCQl0cnk6CisJCSAgICBUID0gdGltZS5zdHJwdGltZShtb250aCwgIiVZLSVCIikKKwkJICAgIHQgPSB0aW1lLm1rdGltZShUKSArIDM2MDAgKiAyNCAqIDEwOworCQkgICAgYW5hbHl6ZUFyY2hpdmVzKHQsIGZvcmNlKQorCQlleGNlcHQ6CisJCSAgICBwcmludCAiRmFpbGVkIHRvIGluZGV4IG1vbnRoIGFyY2hpdmU6IgorCQkgICAgcHJpbnQgc3lzLmV4Y190eXBlLCBzeXMuZXhjX3ZhbHVlCisJICAgIGVsaWYgYXJnc1tpXSA9PSAnLS1BUEknOgorCSAgICAgICAgYW5hbHl6ZUFQSVRvcCgpCisJICAgIGVsaWYgYXJnc1tpXSA9PSAnLS1kb2NzJzoKKwkgICAgICAgIGFuYWx5emVIVE1MVG9wKCkKKwkgICAgZWxzZToKKwkgICAgICAgIHVzYWdlKCkKKwkgICAgaSA9IGkgKyAxCisgICAgZWxzZToKKyAgICAgICAgdXNhZ2UoKQorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvaW50ZXJmYWNlLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9pbnRlcmZhY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2RiMTNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvaW50ZXJmYWNlLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5UaGUgU0FYIGludGVyZmFjZTwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+VGhlIFNBWCBpbnRlcmZhY2U8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48cD5Tb21ldGltZXMgdGhlIERPTSB0cmVlIG91dHB1dCBpcyBqdXN0IHRvbyBsYXJnZSB0byBmaXQgcmVhc29uYWJseSBpbnRvCittZW1vcnkuIEluIHRoYXQgY2FzZSAoYW5kIGlmIHlvdSBkb24ndCBleHBlY3QgdG8gc2F2ZSBiYWNrIHRoZSBYTUwgZG9jdW1lbnQKK2xvYWRlZCB1c2luZyBsaWJ4bWwpLCBpdCdzIGJldHRlciB0byB1c2UgdGhlIFNBWCBpbnRlcmZhY2Ugb2YgbGlieG1sLiBTQVggaXMKK2EgPHN0cm9uZz5jYWxsYmFjay1iYXNlZCBpbnRlcmZhY2U8L3N0cm9uZz4gdG8gdGhlIHBhcnNlci4gQmVmb3JlIHBhcnNpbmcsCit0aGUgYXBwbGljYXRpb24gbGF5ZXIgcmVnaXN0ZXJzIGEgY3VzdG9taXplZCBzZXQgb2YgY2FsbGJhY2tzIHdoaWNoIGFyZQorY2FsbGVkIGJ5IHRoZSBsaWJyYXJ5IGFzIGl0IHByb2dyZXNzZXMgdGhyb3VnaCB0aGUgWE1MIGlucHV0LjwvcD48cD5UbyBnZXQgbW9yZSBkZXRhaWxlZCBzdGVwLWJ5LXN0ZXAgZ3VpZGFuY2Ugb24gdXNpbmcgdGhlIFNBWCBpbnRlcmZhY2Ugb2YKK2xpYnhtbCwgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmRhYS5jb20uYXUvfmphbWVzL2dub21lL3htbC1zYXgveG1sLXNheC5odG1sIj5uaWNlCitkb2N1bWVudGF0aW9uPC9hPi53cml0dGVuIGJ5IDxhIGhyZWY9Im1haWx0bzpqYW1lc0BkYWEuY29tLmF1Ij5KYW1lcworSGVuc3RyaWRnZTwvYT4uPC9wPjxwPllvdSBjYW4gZGVidWcgdGhlIFNBWCBiZWhhdmlvdXIgYnkgdXNpbmcgdGhlIDxzdHJvbmc+dGVzdFNBWDwvc3Ryb25nPgorcHJvZ3JhbSBsb2NhdGVkIGluIHRoZSBnbm9tZS14bWwgbW9kdWxlIChpdCdzIHVzdWFsbHkgbm90IHNoaXBwZWQgaW4gdGhlCitiaW5hcnkgcGFja2FnZXMgb2YgbGlieG1sLCBidXQgeW91IGNhbiBmaW5kIGl0IGluIHRoZSB0YXIgc291cmNlCitkaXN0cmlidXRpb24pLiBIZXJlIGlzIHRoZSBzZXF1ZW5jZSBvZiBjYWxsYmFja3MgdGhhdCB3b3VsZCBiZSByZXBvcnRlZCBieQordGVzdFNBWCB3aGVuIHBhcnNpbmcgdGhlIGV4YW1wbGUgWE1MIGRvY3VtZW50IHNob3duIGVhcmxpZXI6PC9wPjxwcmU+U0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguZ2V0RW50aXR5KGFtcCkKK1NBWC5zdGFydEVsZW1lbnQoRVhBTVBMRSwgcHJvcDE9J2dub21lIGlzIGdyZWF0JywgcHJvcDI9JyZhbXA7YW1wOyBsaW51eCB0b28nKQorU0FYLmNoYXJhY3RlcnMoICAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmNoYXJhY3RlcnMoICAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhXZWxjb21lIHRvIEdub21lLCAxNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoICAgLCAzKQorU0FYLmVuZEVsZW1lbnQoaGVhZCkKK1NBWC5jaGFyYWN0ZXJzKCAgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoY2hhcHRlcikKK1NBWC5jaGFyYWN0ZXJzKCAgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoVGhlIExpbnV4IGFkdmVudHVyZSwgMTkpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKCAgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhibGEgYmxhIGJsYSAuLi4sIDE1KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCAgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KGltYWdlLCBocmVmPSdsaW51cy5naWYnKQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyggICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoLi4uLCAzKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCAgICwgMykKK1NBWC5lbmRFbGVtZW50KGNoYXB0ZXIpCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLmVuZEVsZW1lbnQoRVhBTVBMRSkKK1NBWC5lbmREb2N1bWVudCgpPC9wcmU+PHA+TW9zdCBvZiB0aGUgb3RoZXIgaW50ZXJmYWNlcyBvZiBsaWJ4bWwyIGFyZSBiYXNlZCBvbiB0aGUgRE9NIHRyZWUtYnVpbGRpbmcKK2ZhY2lsaXR5LCBzbyBuZWFybHkgZXZlcnl0aGluZyB1cCB0byB0aGUgZW5kIG9mIHRoaXMgZG9jdW1lbnQgcHJlc3VwcG9zZXMgdGhlCit1c2Ugb2YgdGhlIHN0YW5kYXJkIERPTSB0cmVlIGJ1aWxkLiBOb3RlIHRoYXQgdGhlIERPTSB0cmVlIGl0c2VsZiBpcyBidWlsdCBieQorYSBzZXQgb2YgcmVnaXN0ZXJlZCBkZWZhdWx0IGNhbGxiYWNrcywgd2l0aG91dCBpbnRlcm5hbCBzcGVjaWZpYworaW50ZXJmYWNlLjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL2ludHJvLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9pbnRyby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZjI0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9pbnRyby5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5JbnRyb2R1Y3Rpb248L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPjxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvY3MuaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPjxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5SZWxlYXNlczwvYT48L2xpPjxsaT48YSBocmVmPSJYTUxpbmZvLmh0bWwiPlhNTDwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPjxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5SZWNlbnQgQ2hhbmdlczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPlRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGxpYnhtbCwgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1hNTC8iPlhNTDwvYT4gQyBwYXJzZXIgYW5kIHRvb2xraXQgZGV2ZWxvcGVkIGZvciB0aGUKKzxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+R25vbWU8L2E+IHByb2plY3QuIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1hNTC8iPlhNTCBpcyBhIHN0YW5kYXJkPC9hPiBmb3IgYnVpbGRpbmcgdGFnLWJhc2VkCitzdHJ1Y3R1cmVkIGRvY3VtZW50cy9kYXRhLjwvcD48cD5IZXJlIGFyZSBzb21lIGtleSBwb2ludHMgYWJvdXQgbGlieG1sOjwvcD48dWw+PGxpPkxpYnhtbDIgZXhwb3J0cyBQdXNoIChwcm9ncmVzc2l2ZSkgYW5kIFB1bGwgKGJsb2NraW5nKSB0eXBlIHBhcnNlcgorICAgIGludGVyZmFjZXMgZm9yIGJvdGggWE1MIGFuZCBIVE1MLjwvbGk+CisgIDxsaT5MaWJ4bWwyIGNhbiBkbyBEVEQgdmFsaWRhdGlvbiBhdCBwYXJzZSB0aW1lLCB1c2luZyBhIHBhcnNlZCBkb2N1bWVudAorICAgIGluc3RhbmNlLCBvciB3aXRoIGFuIGFyYml0cmFyeSBEVEQuPC9saT4KKyAgPGxpPkxpYnhtbDIgaW5jbHVkZXMgY29tcGxldGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveHBhdGgiPlhQYXRoPC9hPiwgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveHB0ciI+WFBvaW50ZXI8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aW5jbHVkZSI+WEluY2x1ZGU8L2E+IGltcGxlbWVudGF0aW9ucy48L2xpPgorICA8bGk+SXQgaXMgd3JpdHRlbiBpbiBwbGFpbiBDLCBtYWtpbmcgYXMgZmV3IGFzc3VtcHRpb25zIGFzIHBvc3NpYmxlLCBhbmQKKyAgICBzdGlja2luZyBjbG9zZWx5IHRvIEFOU0kgQy9QT1NJWCBmb3IgZWFzeSBlbWJlZGRpbmcuIFdvcmtzIG9uCisgICAgTGludXgvVW5peC9XaW5kb3dzLCBwb3J0ZWQgdG8gYSBudW1iZXIgb2Ygb3RoZXIgcGxhdGZvcm1zLjwvbGk+CisgIDxsaT5CYXNpYyBzdXBwb3J0IGZvciBIVFRQIGFuZCBGVFAgY2xpZW50IGFsbG93aW5nIGFwcGxpY2F0aW9ucyB0byBmZXRjaAorICAgIHJlbW90ZSByZXNvdXJjZXMuPC9saT4KKyAgPGxpPlRoZSBkZXNpZ24gaXMgbW9kdWxhciwgbW9zdCBvZiB0aGUgZXh0ZW5zaW9ucyBjYW4gYmUgY29tcGlsZWQgb3V0LjwvbGk+CisgIDxsaT5UaGUgaW50ZXJuYWwgZG9jdW1lbnQgcmVwcmVzZW50YXRpb24gaXMgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0RPTS8iPkRPTTwvYT4gaW50ZXJmYWNlcy48L2xpPgorICA8bGk+TGlieG1sMiBhbHNvIGhhcyBhIDxhIGhyZWY9Imh0dHA6Ly93d3cubWVnZ2luc29uLmNvbS9TQVgvaW5kZXguaHRtbCI+U0FYIGxpa2UgaW50ZXJmYWNlPC9hPjsKKyAgICB0aGUgaW50ZXJmYWNlIGlzIGRlc2lnbmVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCA8YSBocmVmPSJodHRwOi8vd3d3LmpjbGFyay5jb20veG1sL2V4cGF0Lmh0bWwiPkV4cGF0PC9hPi48L2xpPgorICA8bGk+VGhpcyBsaWJyYXJ5IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLmh0bWwiPk1JVAorICAgIExpY2Vuc2U8L2E+LiBTZWUgdGhlIENvcHlyaWdodCBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIHRoZSBwcmVjaXNlCisgICAgd29yZGluZy48L2xpPgorPC91bD48cD5XYXJuaW5nOiB1bmxlc3MgeW91IGFyZSBmb3JjZWQgdG8gYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGxpbmtzIHdpdGggYQorR25vbWUtMS5YIGxpYnJhcnkgcmVxdWlyaW5nIGl0LCAgPHN0cm9uZz48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMCI+RG8gTm90IFVzZSBsaWJ4bWwxPC9zcGFuPjwvc3Ryb25nPiwgdXNlCitsaWJ4bWwyPC9wPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvbGlicmFyeS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvbGlicmFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5NThiYWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9saWJyYXJ5Lmh0bWwKQEAgLTAsMCArMSwxNDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48cD5UaGlzIHNlY3Rpb24gaXMgZGlyZWN0bHkgaW50ZW5kZWQgdG8gaGVscCBwcm9ncmFtbWVycyBnZXR0aW5nIGJvb3RzdHJhcHBlZAordXNpbmcgdGhlIFhNTCB0b2xsa2l0IGZyb20gdGhlIEMgbGFuZ3VhZ2UuIEl0IGlzIG5vdCBpbnRlbmRlZCB0byBiZQorZXh0ZW5zaXZlLiBJIGhvcGUgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGRvY3VtZW50cyB3aWxsIHByb3ZpZGUgdGhlCitjb21wbGV0ZW5lc3MgcmVxdWlyZWQsIGJ1dCBhcyBhIHNlcGFyYXRlIHNldCBvZiBkb2N1bWVudHMuIFRoZSBpbnRlcmZhY2VzIG9mCit0aGUgWE1MIHBhcnNlciBhcmUgYnkgcHJpbmNpcGxlIGxvdyBsZXZlbCwgVGhvc2UgaW50ZXJlc3RlZCBpbiBhIGhpZ2hlciBsZXZlbAorQVBJIHNob3VsZCA8YSBocmVmPSIjRE9NIj5sb29rIGF0IERPTTwvYT4uPC9wPjxwPlRoZSA8YSBocmVmPSJodG1sL2xpYnhtbC1wYXJzZXIuaHRtbCI+cGFyc2VyIGludGVyZmFjZXMgZm9yIFhNTDwvYT4gYXJlCitzZXBhcmF0ZWQgZnJvbSB0aGUgPGEgaHJlZj0iaHRtbC9saWJ4bWwtaHRtbHBhcnNlci5odG1sIj5IVE1MIHBhcnNlcgoraW50ZXJmYWNlczwvYT4uICBMZXQncyBoYXZlIGEgbG9vayBhdCBob3cgdGhlIFhNTCBwYXJzZXIgY2FuIGJlIGNhbGxlZDo8L3A+PGgzPjxhIG5hbWU9Ikludm9raW5nIiBpZD0iSW52b2tpbmciPkludm9raW5nIHRoZSBwYXJzZXIgOiB0aGUgcHVsbCBtZXRob2Q8L2E+PC9oMz48cD5Vc3VhbGx5LCB0aGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMgdG8gcmVhZCBhbiBYTUwgaW5wdXQuIFRoZSBwYXJzZXIgYWNjZXB0cworZG9jdW1lbnRzIGVpdGhlciBmcm9tIGluLW1lbW9yeSBzdHJpbmdzIG9yIGZyb20gZmlsZXMuICBUaGUgZnVuY3Rpb25zIGFyZQorZGVmaW5lZCBpbiAicGFyc2VyLmgiOjwvcD48ZGw+PGR0Pjxjb2RlPnhtbERvY1B0ciB4bWxQYXJzZU1lbW9yeShjaGFyICpidWZmZXIsIGludCBzaXplKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+UGFyc2UgYSBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50LjwvcD4KKyAgICA8L2RkPgorPC9kbD48ZGw+PGR0Pjxjb2RlPnhtbERvY1B0ciB4bWxQYXJzZUZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5QYXJzZSBhbiBYTUwgZG9jdW1lbnQgY29udGFpbmVkIGluIGEgKHBvc3NpYmx5IGNvbXByZXNzZWQpCisgICAgICBmaWxlLjwvcD4KKyAgICA8L2RkPgorPC9kbD48cD5UaGUgcGFyc2VyIHJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUgKG9yIE5VTEwgaW4gY2FzZSBvZgorZmFpbHVyZSkuPC9wPjxoMyBpZD0iSW52b2tpbmcxIj5JbnZva2luZyB0aGUgcGFyc2VyOiB0aGUgcHVzaCBtZXRob2Q8L2gzPjxwPkluIG9yZGVyIGZvciB0aGUgYXBwbGljYXRpb24gdG8ga2VlcCB0aGUgY29udHJvbCB3aGVuIHRoZSBkb2N1bWVudCBpcworYmVpbmcgZmV0Y2hlZCAod2hpY2ggaXMgY29tbW9uIGZvciBHVUkgYmFzZWQgcHJvZ3JhbXMpIGxpYnhtbDIgcHJvdmlkZXMgYQorcHVzaCBpbnRlcmZhY2UsIHRvbywgYXMgb2YgdmVyc2lvbiAxLjguMy4gSGVyZSBhcmUgdGhlIGludGVyZmFjZQorZnVuY3Rpb25zOjwvcD48cHJlPnhtbFBhcnNlckN0eHRQdHIgeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoeG1sU0FYSGFuZGxlclB0ciBzYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2h1bmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlbmFtZSk7CitpbnQgICAgICAgICAgICAgIHhtbFBhcnNlQ2h1bmsgICAgICAgICAgKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2h1bmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVybWluYXRlKTs8L3ByZT48cD5hbmQgaGVyZSBpcyBhIHNpbXBsZSBleGFtcGxlIHNob3dpbmcgaG93IHRvIHVzZSB0aGUgaW50ZXJmYWNlOjwvcD48cHJlPiAgICAgICAgICAgIEZJTEUgKmY7CisKKyAgICAgICAgICAgIGYgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyAgICAgICAgICAgIGlmIChmICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzLCBzaXplID0gMTAyNDsKKyAgICAgICAgICAgICAgICBjaGFyIGNoYXJzWzEwMjRdOworICAgICAgICAgICAgICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgICAgICAgICAgICAgIHJlcyA9IGZyZWFkKGNoYXJzLCAxLCA0LCBmKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzICZndDsgMCkgeworICAgICAgICAgICAgICAgICAgICBjdHh0ID0geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMsIHJlcywgZmlsZW5hbWUpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHJlcyA9IGZyZWFkKGNoYXJzLCAxLCBzaXplLCBmKSkgJmd0OyAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZUNodW5rKGN0eHQsIGNoYXJzLCByZXMsIDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHhtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworICAgICAgICAgICAgICAgICAgICBkb2MgPSBjdHh0LSZndDtteURvYzsKKyAgICAgICAgICAgICAgICAgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTwvcHJlPjxwPlRoZSBIVE1MIHBhcnNlciBlbWJlZGRlZCBpbnRvIGxpYnhtbDIgYWxzbyBoYXMgYSBwdXNoIGludGVyZmFjZTsgdGhlCitmdW5jdGlvbnMgYXJlIGp1c3QgcHJlZml4ZWQgYnkgImh0bWwiIHJhdGhlciB0aGFuICJ4bWwiLjwvcD48aDMgaWQ9Ikludm9raW5nMiI+SW52b2tpbmcgdGhlIHBhcnNlcjogdGhlIFNBWCBpbnRlcmZhY2U8L2gzPjxwPlRoZSB0cmVlLWJ1aWxkaW5nIGludGVyZmFjZSBtYWtlcyB0aGUgcGFyc2VyIG1lbW9yeS1odW5ncnksIGZpcnN0IGxvYWRpbmcKK3RoZSBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHRoZW4gYnVpbGRpbmcgdGhlIHRyZWUgaXRzZWxmLiBSZWFkaW5nIGEgZG9jdW1lbnQKK3dpdGhvdXQgYnVpbGRpbmcgdGhlIHRyZWUgaXMgcG9zc2libGUgdXNpbmcgdGhlIFNBWCBpbnRlcmZhY2VzIChzZWUgU0FYLmggYW5kCis8YSBocmVmPSJodHRwOi8vd3d3LmRhYS5jb20uYXUvfmphbWVzL2dub21lL3htbC1zYXgveG1sLXNheC5odG1sIj5KYW1lcworSGVuc3RyaWRnZSdzIGRvY3VtZW50YXRpb248L2E+KS4gTm90ZSBhbHNvIHRoYXQgdGhlIHB1c2ggaW50ZXJmYWNlIGNhbiBiZQorbGltaXRlZCB0byBTQVg6IGp1c3QgdXNlIHRoZSB0d28gZmlyc3QgYXJndW1lbnRzIG9mCis8Y29kZT54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCgpPC9jb2RlPi48L3A+PGgzPjxhIG5hbWU9IkJ1aWxkaW5nIiBpZD0iQnVpbGRpbmciPkJ1aWxkaW5nIGEgdHJlZSBmcm9tIHNjcmF0Y2g8L2E+PC9oMz48cD5UaGUgb3RoZXIgd2F5IHRvIGdldCBhbiBYTUwgdHJlZSBpbiBtZW1vcnkgaXMgYnkgYnVpbGRpbmcgaXQuIEJhc2ljYWxseQordGhlcmUgaXMgYSBzZXQgb2YgZnVuY3Rpb25zIGRlZGljYXRlZCB0byBidWlsZGluZyBuZXcgZWxlbWVudHMuIChUaGVzZSBhcmUKK2Fsc28gZGVzY3JpYmVkIGluICZsdDtsaWJ4bWwvdHJlZS5oJmd0Oy4pIEZvciBleGFtcGxlLCBoZXJlIGlzIGEgcGllY2Ugb2YKK2NvZGUgdGhhdCBwcm9kdWNlcyB0aGUgWE1MIGRvY3VtZW50IHVzZWQgaW4gdGhlIHByZXZpb3VzIGV4YW1wbGVzOjwvcD48cHJlPiAgICAjaW5jbHVkZSAmbHQ7bGlieG1sL3RyZWUuaCZndDsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbE5vZGVQdHIgdHJlZSwgc3VidHJlZTsKKworICAgIGRvYyA9IHhtbE5ld0RvYygiMS4wIik7CisgICAgZG9jLSZndDtjaGlsZHJlbiA9IHhtbE5ld0RvY05vZGUoZG9jLCBOVUxMLCAiRVhBTVBMRSIsIE5VTEwpOworICAgIHhtbFNldFByb3AoZG9jLSZndDtjaGlsZHJlbiwgInByb3AxIiwgImdub21lIGlzIGdyZWF0Iik7CisgICAgeG1sU2V0UHJvcChkb2MtJmd0O2NoaWxkcmVuLCAicHJvcDIiLCAiJmFtcDsgbGludXggdG9vIik7CisgICAgdHJlZSA9IHhtbE5ld0NoaWxkKGRvYy0mZ3Q7Y2hpbGRyZW4sIE5VTEwsICJoZWFkIiwgTlVMTCk7CisgICAgc3VidHJlZSA9IHhtbE5ld0NoaWxkKHRyZWUsIE5VTEwsICJ0aXRsZSIsICJXZWxjb21lIHRvIEdub21lIik7CisgICAgdHJlZSA9IHhtbE5ld0NoaWxkKGRvYy0mZ3Q7Y2hpbGRyZW4sIE5VTEwsICJjaGFwdGVyIiwgTlVMTCk7CisgICAgc3VidHJlZSA9IHhtbE5ld0NoaWxkKHRyZWUsIE5VTEwsICJ0aXRsZSIsICJUaGUgTGludXggYWR2ZW50dXJlIik7CisgICAgc3VidHJlZSA9IHhtbE5ld0NoaWxkKHRyZWUsIE5VTEwsICJwIiwgImJsYSBibGEgYmxhIC4uLiIpOworICAgIHN1YnRyZWUgPSB4bWxOZXdDaGlsZCh0cmVlLCBOVUxMLCAiaW1hZ2UiLCBOVUxMKTsKKyAgICB4bWxTZXRQcm9wKHN1YnRyZWUsICJocmVmIiwgImxpbnVzLmdpZiIpOzwvcHJlPjxwPk5vdCByZWFsbHkgcm9ja2V0IHNjaWVuY2UgLi4uPC9wPjxoMz48YSBuYW1lPSJUcmF2ZXJzaW5nIiBpZD0iVHJhdmVyc2luZyI+VHJhdmVyc2luZyB0aGUgdHJlZTwvYT48L2gzPjxwPkJhc2ljYWxseSBieSA8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwiPmluY2x1ZGluZyAidHJlZS5oIjwvYT4geW91cgorY29kZSBoYXMgYWNjZXNzIHRvIHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmUgb2YgYWxsIHRoZSBlbGVtZW50cyBvZiB0aGUgdHJlZS4KK1RoZSBuYW1lcyBzaG91bGQgYmUgc29tZXdoYXQgc2ltcGxlIGxpa2UgPHN0cm9uZz5wYXJlbnQ8L3N0cm9uZz4sCis8c3Ryb25nPmNoaWxkcmVuPC9zdHJvbmc+LCA8c3Ryb25nPm5leHQ8L3N0cm9uZz4sIDxzdHJvbmc+cHJldjwvc3Ryb25nPiwKKzxzdHJvbmc+cHJvcGVydGllczwvc3Ryb25nPiwgZXRjLi4uIEZvciBleGFtcGxlLCBzdGlsbCB3aXRoIHRoZSBwcmV2aW91cworZXhhbXBsZTo8L3A+PHByZT48Y29kZT5kb2MtJmd0O2NoaWxkcmVuLSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW48L2NvZGU+PC9wcmU+PHA+cG9pbnRzIHRvIHRoZSB0aXRsZSBlbGVtZW50LDwvcD48cHJlPmRvYy0mZ3Q7Y2hpbGRyZW4tJmd0O2NoaWxkcmVuLSZndDtuZXh0LSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW48L3ByZT48cD5wb2ludHMgdG8gdGhlIHRleHQgbm9kZSBjb250YWluaW5nIHRoZSBjaGFwdGVyIHRpdGxlICJUaGUgTGludXgKK2FkdmVudHVyZSIuPC9wPjxwPjxzdHJvbmc+Tk9URTwvc3Ryb25nPjogWE1MIGFsbG93cyA8ZW0+UEk8L2VtPnMgYW5kIDxlbT5jb21tZW50czwvZW0+IHRvIGJlCitwcmVzZW50IGJlZm9yZSB0aGUgZG9jdW1lbnQgcm9vdCwgc28gPGNvZGU+ZG9jLSZndDtjaGlsZHJlbjwvY29kZT4gbWF5IHBvaW50Cit0byBhbiBlbGVtZW50IHdoaWNoIGlzIG5vdCB0aGUgZG9jdW1lbnQgUm9vdCBFbGVtZW50OyBhIGZ1bmN0aW9uCis8Y29kZT54bWxEb2NHZXRSb290RWxlbWVudCgpPC9jb2RlPiB3YXMgYWRkZWQgZm9yIHRoaXMgcHVycG9zZS48L3A+PGgzPjxhIG5hbWU9Ik1vZGlmeWluZyIgaWQ9Ik1vZGlmeWluZyI+TW9kaWZ5aW5nIHRoZSB0cmVlPC9hPjwvaDM+PHA+RnVuY3Rpb25zIGFyZSBwcm92aWRlZCBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgZG9jdW1lbnQgY29udGVudC4gSGVyZQoraXMgYW4gZXhjZXJwdCBmcm9tIHRoZSA8YSBocmVmPSJodG1sL2xpYnhtbC10cmVlLmh0bWwiPnRyZWUgQVBJPC9hPjo8L3A+PGRsPjxkdD48Y29kZT54bWxBdHRyUHRyIHhtbFNldFByb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyICpuYW1lLCBjb25zdAorICB4bWxDaGFyICp2YWx1ZSk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlRoaXMgc2V0cyAob3IgY2hhbmdlcykgYW4gYXR0cmlidXRlIGNhcnJpZWQgYnkgYW4gRUxFTUVOVCBub2RlLgorICAgICAgVGhlIHZhbHVlIGNhbiBiZSBOVUxMLjwvcD4KKyAgICA8L2RkPgorPC9kbD48ZGw+PGR0Pjxjb2RlPmNvbnN0IHhtbENoYXIgKnhtbEdldFByb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyCisgICpuYW1lKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+VGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgcG9pbnRlciB0byBuZXcgY29weSBvZiB0aGUgcHJvcGVydHkKKyAgICAgIGNvbnRlbnQuIE5vdGUgdGhhdCB0aGUgdXNlciBtdXN0IGRlYWxsb2NhdGUgdGhlIHJlc3VsdC48L3A+CisgICAgPC9kZD4KKzwvZGw+PHA+VHdvIGZ1bmN0aW9ucyBhcmUgcHJvdmlkZWQgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgdGhlIHRleHQgYXNzb2NpYXRlZAord2l0aCBlbGVtZW50czo8L3A+PGRsPjxkdD48Y29kZT54bWxOb2RlUHRyIHhtbFN0cmluZ0dldE5vZGVMaXN0KHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIKKyAgKnZhbHVlKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+VGhpcyBmdW5jdGlvbiB0YWtlcyBhbiAiZXh0ZXJuYWwiIHN0cmluZyBhbmQgY29udmVydHMgaXQgdG8gb25lCisgICAgICB0ZXh0IG5vZGUgb3IgcG9zc2libHkgdG8gYSBsaXN0IG9mIGVudGl0eSBhbmQgdGV4dCBub2Rlcy4gQWxsCisgICAgICBub24tcHJlZGVmaW5lZCBlbnRpdHkgcmVmZXJlbmNlcyBsaWtlICZhbXA7R25vbWU7IHdpbGwgYmUgc3RvcmVkCisgICAgICBpbnRlcm5hbGx5IGFzIGVudGl0eSBub2RlcywgaGVuY2UgdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24gbWF5IG5vdCBiZQorICAgICAgYSBzaW5nbGUgbm9kZS48L3A+CisgICAgPC9kZD4KKzwvZGw+PGRsPjxkdD48Y29kZT54bWxDaGFyICp4bWxOb2RlTGlzdEdldFN0cmluZyh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGxpc3QsIGludAorICBpbkxpbmUpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5UaGlzIGZ1bmN0aW9uIGlzIHRoZSBpbnZlcnNlIG9mCisgICAgICA8Y29kZT54bWxTdHJpbmdHZXROb2RlTGlzdCgpPC9jb2RlPi4gSXQgZ2VuZXJhdGVzIGEgbmV3IHN0cmluZworICAgICAgY29udGFpbmluZyB0aGUgY29udGVudCBvZiB0aGUgdGV4dCBhbmQgZW50aXR5IG5vZGVzLiBOb3RlIHRoZSBleHRyYQorICAgICAgYXJndW1lbnQgaW5MaW5lLiBJZiB0aGlzIGFyZ3VtZW50IGlzIHNldCB0byAxLCB0aGUgZnVuY3Rpb24gd2lsbCBleHBhbmQKKyAgICAgIGVudGl0eSByZWZlcmVuY2VzLiAgRm9yIGV4YW1wbGUsIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSAmYW1wO0dub21lOworICAgICAgWE1MIGVuY29kaW5nIGluIHRoZSBzdHJpbmcsIGl0IHdpbGwgc3Vic3RpdHV0ZSBpdCB3aXRoIGl0cyB2YWx1ZSAoc2F5LAorICAgICAgIkdOVSBOZXR3b3JrIE9iamVjdCBNb2RlbCBFbnZpcm9ubWVudCIpLjwvcD4KKyAgICA8L2RkPgorPC9kbD48aDM+PGEgbmFtZT0iU2F2aW5nIiBpZD0iU2F2aW5nIj5TYXZpbmcgYSB0cmVlPC9hPjwvaDM+PHA+QmFzaWNhbGx5IDMgb3B0aW9ucyBhcmUgcG9zc2libGU6PC9wPjxkbD48ZHQ+PGNvZGU+dm9pZCB4bWxEb2NEdW1wTWVtb3J5KHhtbERvY1B0ciBjdXIsIHhtbENoYXIqKm1lbSwgaW50CisgICpzaXplKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+UmV0dXJucyBhIGJ1ZmZlciBpbnRvIHdoaWNoIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBzYXZlZC48L3A+CisgICAgPC9kZD4KKzwvZGw+PGRsPjxkdD48Y29kZT5leHRlcm4gdm9pZCB4bWxEb2NEdW1wKEZJTEUgKmYsIHhtbERvY1B0ciBkb2MpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5EdW1wcyBhIGRvY3VtZW50IHRvIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yLjwvcD4KKyAgICA8L2RkPgorPC9kbD48ZGw+PGR0Pjxjb2RlPmludCB4bWxTYXZlRmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSwgeG1sRG9jUHRyIGN1cik7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlNhdmVzIHRoZSBkb2N1bWVudCB0byBhIGZpbGUuIEluIHRoaXMgY2FzZSwgdGhlIGNvbXByZXNzaW9uCisgICAgICBpbnRlcmZhY2UgaXMgdHJpZ2dlcmVkIGlmIGl0IGhhcyBiZWVuIHR1cm5lZCBvbi48L3A+CisgICAgPC9kZD4KKzwvZGw+PGgzPjxhIG5hbWU9IkNvbXByZXNzaW8iIGlkPSJDb21wcmVzc2lvIj5Db21wcmVzc2lvbjwvYT48L2gzPjxwPlRoZSBsaWJyYXJ5IHRyYW5zcGFyZW50bHkgaGFuZGxlcyBjb21wcmVzc2lvbiB3aGVuIGRvaW5nIGZpbGUtYmFzZWQKK2FjY2Vzc2VzLiBUaGUgbGV2ZWwgb2YgY29tcHJlc3Npb24gb24gc2F2ZXMgY2FuIGJlIHR1cm5lZCBvbiBlaXRoZXIgZ2xvYmFsbHkKK29yIGluZGl2aWR1YWxseSBmb3Igb25lIGZpbGU6PC9wPjxkbD48ZHQ+PGNvZGU+aW50ICB4bWxHZXREb2NDb21wcmVzc01vZGUgKHhtbERvY1B0ciBkb2MpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5HZXRzIHRoZSBkb2N1bWVudCBjb21wcmVzc2lvbiByYXRpbyAoMC05KS48L3A+CisgICAgPC9kZD4KKzwvZGw+PGRsPjxkdD48Y29kZT52b2lkIHhtbFNldERvY0NvbXByZXNzTW9kZSAoeG1sRG9jUHRyIGRvYywgaW50IG1vZGUpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5TZXRzIHRoZSBkb2N1bWVudCBjb21wcmVzc2lvbiByYXRpby48L3A+CisgICAgPC9kZD4KKzwvZGw+PGRsPjxkdD48Y29kZT5pbnQgIHhtbEdldENvbXByZXNzTW9kZSh2b2lkKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+R2V0cyB0aGUgZGVmYXVsdCBjb21wcmVzc2lvbiByYXRpby48L3A+CisgICAgPC9kZD4KKzwvZGw+PGRsPjxkdD48Y29kZT52b2lkIHhtbFNldENvbXByZXNzTW9kZShpbnQgbW9kZSk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlNldHMgdGhlIGRlZmF1bHQgY29tcHJlc3Npb24gcmF0aW8uPC9wPgorICAgIDwvZGQ+Cis8L2RsPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvbGlieG1sLmdpZiBiL2xpYnhtbDItMi43LjcvZG9jL2xpYnhtbC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI0YWRmOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL2xpYnhtbC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvbGlieG1sMi1hcGkueG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvbGlieG1sMi1hcGkueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NmJlM2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9saWJ4bWwyLWFwaS54bWwKQEAgLTAsMCArMSwxODI4NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGFwaSBuYW1lPSdsaWJ4bWwyJz4KKyAgPGZpbGVzPgorICAgIDxmaWxlIG5hbWU9J0RPQ0JwYXJzZXInPgorICAgICA8c3VtbWFyeT5vbGQgRG9jQm9vayBTR01MIHBhcnNlcjwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPmludGVyZmFjZSBmb3IgYSBEb2NCb29rIFNHTUwgbm9uLXZlcmlmeWluZyBwYXJzZXIgVGhpcyBjb2RlIGlzIERFUFJFQ0FURUQsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS4gPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxkZXByZWNhdGVkLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdkb2NiUGFyc2VySW5wdXRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdkb2NiUGFyc2VyQ3R4dCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2RvY2JQYXJzZXJDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYlBhcnNlcklucHV0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYkRvY1B0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2RvY2JTQVhIYW5kbGVyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYlNBWEhhbmRsZXJQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdkb2NiRnJlZVBhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYlBhcnNlRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2RvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdkb2NiU0FYUGFyc2VGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2RvY2JTQVhQYXJzZURvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYkVuY29kZUVudGl0aWVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2RvY2JQYXJzZUZpbGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYlBhcnNlRG9jdW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYlBhcnNlQ2h1bmsnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J0hUTUxwYXJzZXInPgorICAgICA8c3VtbWFyeT5pbnRlcmZhY2UgZm9yIGFuIEhUTUwgNC4wIG5vbi12ZXJpZnlpbmcgcGFyc2VyPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGhpcyBtb2R1bGUgaW1wbGVtZW50cyBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlciB3aXRoIEFQSSBjb21wYXRpYmxlIHdpdGggdGhlIFhNTCBwYXJzZXIgb25lcy4gSXQgc2hvdWxkIGJlIGFibGUgdG8gcGFyc2UgJnF1b3Q7cmVhbCB3b3JsZCZxdW90OyBIVE1MLCBldmVuIGlmIHNldmVyZWx5IGJyb2tlbiBmcm9tIGEgc3BlY2lmaWNhdGlvbiBwb2ludCBvZiB2aWV3LiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRGVmYXVsdFN1YmVsZW1lbnQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFJlcXVpcmVkQXR0cnMnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSFRNTF9SRVFVSVJFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0hUTUxfSU5WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0hUTUxfUEFSU0VfTk9ORVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdIVE1MX05BJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSFRNTF9QQVJTRV9DT01QQUNUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSFRNTF9WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0hUTUxfUEFSU0VfTk9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0hUTUxfUEFSU0VfTk9CTEFOS1MnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdIVE1MX0RFUFJFQ0FURUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdIVE1MX1BBUlNFX1BFREFOVElDJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSFRNTF9QQVJTRV9SRUNPVkVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSFRNTF9QQVJTRV9OT0lNUExJRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdIVE1MX1BBUlNFX05PV0FSTklORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZXJOb2RlSW5mbycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZXJJbnB1dCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZXJDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEVudGl0eURlc2MnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRG9jUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFNBWEhhbmRsZXJQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sU3RhdHVzJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbE5vZGVQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRWxlbURlc2NQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRWxlbURlc2MnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sU0FYSGFuZGxlcicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZXJJbnB1dFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZXJPcHRpb24nIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRW50aXR5RGVzY1B0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZXJDdHh0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX2h0bWxFbnRpdHlEZXNjJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfaHRtbEVsZW1EZXNjJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sSXNTY3JpcHRBdHRyaWJ1dGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEhhbmRsZU9taXR0ZWRFbGVtJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxSZWFkRmQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFJlYWRJTycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sUGFyc2VGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxDdHh0UmVhZERvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sQXV0b0Nsb3NlVGFnJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZUNodW5rJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxUYWdMb29rdXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEN0eHRSZXNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRWxlbWVudEFsbG93ZWRIZXJlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxDdHh0UmVhZElPJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sUmVhZE1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sSXNBdXRvQ2xvc2VkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZUNoYXJSZWYnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFJlYWREb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEVuY29kZUVudGl0aWVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxOb2RlU3RhdHVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxBdHRyQWxsb3dlZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sU0FYUGFyc2VGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZUVudGl0eVJlZicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRWxlbWVudFN0YXR1c0hlcmUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEVudGl0eVZhbHVlTG9va3VwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxQYXJzZUVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nVVRGOFRvSHRtbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRW50aXR5TG9va3VwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxGcmVlUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sQ3R4dFJlYWRNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEN0eHRSZWFkRmQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFJlYWRGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxDdHh0UmVhZEZpbGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFBhcnNlRG9jdW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbE5ld1BhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFNBWFBhcnNlRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxDdHh0VXNlT3B0aW9ucycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sUGFyc2VEb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J0hUTUx0cmVlJz4KKyAgICAgPHN1bW1hcnk+c3BlY2lmaWMgQVBJcyB0byBwcm9jZXNzIEhUTUwgdHJlZSwgZXNwZWNpYWxseSBzZXJpYWxpemF0aW9uPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGhpcyBtb2R1bGUgaW1wbGVtZW50cyBhIGZldyBmdW5jdGlvbiBuZWVkZWQgdG8gcHJvY2VzcyB0cmVlIGluIGFuIEhUTUwgc3BlY2lmaWMgd2F5LiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdIVE1MX0VOVElUWV9SRUZfTk9ERScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdIVE1MX0NPTU1FTlRfTk9ERScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdIVE1MX1BSRVNFUlZFX05PREUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSFRNTF9URVhUX05PREUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSFRNTF9QSV9OT0RFJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbERvY0R1bXBNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFNhdmVGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxEb2NEdW1wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxJc0Jvb2xlYW5BdHRyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxTYXZlRmlsZUZvcm1hdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbFNldE1ldGFFbmNvZGluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sU2F2ZUZpbGVFbmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbE5vZGVEdW1wT3V0cHV0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxOb2RlRHVtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sTmV3RG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxHZXRNZXRhRW5jb2RpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbE5vZGVEdW1wRmlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbE5ld0RvY05vRHREJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxEb2NDb250ZW50RHVtcE91dHB1dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0nU0FYJz4KKyAgICAgPHN1bW1hcnk+T2xkIFNBWCB2ZXJzaW9uIDEgaGFuZGxlciwgZGVwcmVjYXRlZDwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPkRFUFJFQ0FURUQgc2V0IG9mIFNBWCB2ZXJzaW9uIDEgaW50ZXJmYWNlcyB1c2VkIHRvIGJ1aWxkIHRoZSBET00gdHJlZS4gPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxkZXByZWNhdGVkLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdjb21tZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2NoZWNrTmFtZXNwYWNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2dldENvbHVtbk51bWJlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdlbnRpdHlEZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2F0dHJpYnV0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdnZXROYW1lc3BhY2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nc2V0RG9jdW1lbnRMb2NhdG9yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2luaXR4bWxEZWZhdWx0U0FYSGFuZGxlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdpZ25vcmFibGVXaGl0ZXNwYWNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2hhc0V4dGVybmFsU3Vic2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3VucGFyc2VkRW50aXR5RGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdnbG9iYWxOYW1lc3BhY2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naGFzSW50ZXJuYWxTdWJzZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0ncmVmZXJlbmNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J25vdGF0aW9uRGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdnZXRTeXN0ZW1JZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdleHRlcm5hbFN1YnNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdyZXNvbHZlRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3N0YXJ0RG9jdW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nc2V0TmFtZXNwYWNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2NkYXRhQmxvY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZ2V0UHVibGljSWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZW5kRWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSduYW1lc3BhY2VEZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2luaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZ2V0RW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2NoYXJhY3RlcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZWxlbWVudERlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nc3RhcnRFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2dldFBhcmFtZXRlckVudGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdhdHRyaWJ1dGVEZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2lzU3RhbmRhbG9uZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdpbnRlcm5hbFN1YnNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdlbmREb2N1bWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdnZXRMaW5lTnVtYmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSdTQVgyJz4KKyAgICAgPHN1bW1hcnk+U0FYMiBwYXJzZXIgaW50ZXJmYWNlIHVzZWQgdG8gYnVpbGQgdGhlIERPTSB0cmVlPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGhvc2UgYXJlIHRoZSBkZWZhdWx0IFNBWDIgaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBsaWJyYXJ5IHdoZW4gYnVpbGRpbmcgRE9NIHRyZWUuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJFbmRFbGVtZW50TnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMlJlZmVyZW5jZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyRWxlbWVudERlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMkF0dHJpYnV0ZURlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMkNvbW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMkdldENvbHVtbk51bWJlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyR2V0RW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJVbnBhcnNlZEVudGl0eURlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYVmVyc2lvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyTm90YXRpb25EZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJTdGFydERvY3VtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJFbmRFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJSZXNvbHZlRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJFeHRlcm5hbFN1YnNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyR2V0UHVibGljSWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMklzU3RhbmRhbG9uZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyRW5kRG9jdW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgySW50ZXJuYWxTdWJzZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMkNoYXJhY3RlcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYRGVmYXVsdFZlcnNpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMlN0YXJ0RWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJDRGF0YUJsb2NrJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJTdGFydEVsZW1lbnROcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyR2V0TGluZU51bWJlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWDJHZXRTeXN0ZW1JZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVgyRW50aXR5RGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0nYzE0bic+CisgICAgIDxzdW1tYXJ5PlByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGhlIGMxNG4gbW9kdWxlcyBwcm92aWRlcyBhICAmcXVvdDtDYW5vbmljYWwgWE1MJnF1b3Q7IGltcGxlbWVudGF0aW9uPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5BbGVrc2V5IFNhbmluICZsdDthbGVrc2V5QGFsZWtzZXkuY29tJmd0OyA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQzE0Tl8xXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQzE0Tl8xXzAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQzE0Tl9FWENMVVNJVkVfMV8wJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQzE0Tk1vZGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDMTRORXhlY3V0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDMTRORG9jU2F2ZVRvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEMxNE5Jc1Zpc2libGVDYWxsYmFjaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDMTRORG9jU2F2ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDMTRORG9jRHVtcE1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0nY2F0YWxvZyc+CisgICAgIDxzdW1tYXJ5PmludGVyZmFjZXMgdG8gdGhlIENhdGFsb2cgaGFuZGxpbmcgc3lzdGVtPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGhlIGNhdGFsb2cgbW9kdWxlIGltcGxlbWVudHMgdGhlIHN1cHBvcnQgZm9yIFhNTCBDYXRhbG9ncyBhbmQgU0dNTCBjYXRhbG9ncyA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0FUQUxPR19QSScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DQVRBX0FMTE9XX05PTkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0FUQV9QUkVGRVJfTk9ORScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DQVRBX0FMTE9XX0dMT0JBTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DQVRBX1BSRUZFUl9QVUJMSUMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0FUQV9BTExPV19ET0NVTUVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DQVRBX0FMTE9XX0FMTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DQVRBX1BSRUZFUl9TWVNURU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDYXRhbG9nQWxsb3cnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDYXRhbG9nUHJlZmVyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlQ2F0YWxvZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMb2FkQ2F0YWxvZ3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBQ2F0YWxvZ0FkZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ0dldERlZmF1bHRzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEFDYXRhbG9nUmVtb3ZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEFDYXRhbG9nUmVzb2x2ZVVSSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDYXRhbG9nQWRkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dSZXNvbHZlUHVibGljJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dHZXRTeXN0ZW0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSW5pdGlhbGl6ZUNhdGFsb2cnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTG9hZENhdGFsb2cnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ1JlbW92ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDYXRhbG9nSXNFbXB0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBQ2F0YWxvZ0R1bXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ0ZyZWVMb2NhbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBQ2F0YWxvZ1Jlc29sdmUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTG9hZFNHTUxTdXBlckNhdGFsb2cnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ0NvbnZlcnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ0dldFB1YmxpYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMb2FkQUNhdGFsb2cnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dMb2NhbFJlc29sdmVVUkknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ29udmVydFNHTUxDYXRhbG9nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dBZGRMb2NhbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdDYXRhbG9nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlQ2F0YWxvZ0ZpbGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2F0YWxvZ1NldERlYnVnJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dSZXNvbHZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhdGFsb2dTZXREZWZhdWx0cycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDYXRhbG9nRHVtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDYXRhbG9nQ2xlYW51cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDYXRhbG9nUmVzb2x2ZVVSSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0nY2h2YWxpZCc+CisgICAgIDxzdW1tYXJ5PlVuaWNvZGUgY2hhcmFjdGVyIHJhbmdlIGNoZWNraW5nPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGhpcyBtb2R1bGUgZXhwb3J0cyBpbnRlcmZhY2VzIGZvciB0aGUgY2hhcmFjdGVyIHJhbmdlIHZhbGlkYXRpb24gQVBJcyAgVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGN2cyBzb3VyY2UgZGVmaW5pdGlvbiBmaWxlcyB1c2luZyB0aGUgZ2VuQ2hSYW5nZXMucHkgUHl0aG9uIHNjcmlwdCA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPldpbGxpYW0gQnJhY2sgJmx0O3dicmFja0BtbW0uY29tLmhrJmd0OyA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0V4dGVuZGVyX2NoJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzUHViaWRDaGFyUScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc1B1YmlkQ2hhcl9jaCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0lkZW9ncmFwaGljUScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0V4dGVuZGVyUScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0NoYXJfY2gnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNEaWdpdFEnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNEaWdpdF9jaCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0Jhc2VDaGFyX2NoJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzQ29tYmluaW5nUScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0JsYW5rUScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0NoYXJRJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzQmFzZUNoYXJRJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzQmxhbmtfY2gnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hMUmFuZ2UnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDaFNSYW5nZVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENoTFJhbmdlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hSYW5nZUdyb3VwUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hTUmFuZ2UnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDaFJhbmdlR3JvdXAnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sQ2hTUmFuZ2UnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxDaExSYW5nZScgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbENoUmFuZ2VHcm91cCcgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNCYXNlQ2hhckdyb3VwJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzSWRlb2dyYXBoaWNHcm91cCcgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0RpZ2l0R3JvdXAnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNFeHRlbmRlckdyb3VwJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzUHViaWRDaGFyX3RhYicgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0NoYXJHcm91cCcgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0NvbWJpbmluZ0dyb3VwJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzQ2hhcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0RpZ2l0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzQmxhbmsnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNJZGVvZ3JhcGhpYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDaGFySW5SYW5nZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc1B1YmlkQ2hhcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0NvbWJpbmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc0Jhc2VDaGFyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzRXh0ZW5kZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J2RlYnVnWE1MJz4KKyAgICAgPHN1bW1hcnk+VHJlZSBkZWJ1Z2dpbmcgQVBJczwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPkludGVyZmFjZXMgdG8gYSBzZXQgb2Ygcm91dGluZXMgdXNlZCBmb3IgZGVidWdnaW5nIHRoZSB0cmVlIHByb2R1Y2VkIGJ5IHRoZSBYTUwgcGFyc2VyLiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbEN0eHQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbEN0eHRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sU2hlbGxDdHh0JyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZWJ1Z0R1bXBBdHRyTGlzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMc09uZU5vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2hlbGxSZWFkbGluZUZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2hlbGxTYXZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJvb2xUb1RleHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2hlbGxXcml0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbER1JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNoZWxsVmFsaWRhdGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGVidWdDaGVja0RvY3VtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNoZWxsUHJpbnRYUGF0aFJlc3VsdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbENtZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbExvYWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGVidWdEdW1wU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNoZWxsQmFzZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbENhdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZWJ1Z0R1bXBEVEQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGVidWdEdW1wTm9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZWJ1Z0R1bXBFbnRpdGllcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbFByaW50Tm9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbFB3ZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZWJ1Z0R1bXBOb2RlTGlzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZWJ1Z0R1bXBBdHRyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERlYnVnRHVtcERvY3VtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExzQ291bnROb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNoZWxsUHJpbnRYUGF0aEVycm9yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNoZWxsRGlyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERlYnVnRHVtcE9uZU5vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2hlbGxMaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERlYnVnRHVtcERvY3VtZW50SGVhZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTaGVsbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0nZGljdCc+CisgICAgIDxzdW1tYXJ5PnN0cmluZyBkaWN0aW9ubmFyeTwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPmRpY3Rpb25hcnkgb2YgcmV1c2FibGUgc3RyaW5ncywganVzdCB1c2VkIHRvIGF2b2lkIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb3BlcmF0aW9ucy4gPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGljdCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERpY3RQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEaWN0UmVmZXJlbmNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERpY3RDbGVhbnVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERpY3RTaXplJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERpY3RFeGlzdHMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGljdE93bnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGljdFFMb29rdXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGljdENyZWF0ZVN1YicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEaWN0RnJlZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEaWN0TG9va3VwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERpY3RDcmVhdGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J2VuY29kaW5nJz4KKyAgICAgPHN1bW1hcnk+aW50ZXJmYWNlIGZvciB0aGUgZW5jb2RpbmcgY29udmVyc2lvbiBmdW5jdGlvbnM8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5pbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucyBuZWVkZWQgZm9yIFhNTCBiYXNpYyBlbmNvZGluZyBhbmQgaWNvbnYoKSBzdXBwb3J0LiAgUmVsYXRlZCBzcGVjcyBhcmUgcmZjMjA0NCAgICAgICAgKFVURi04IGFuZCBVVEYtMTYpIEYuIFllcmdlYXUgQWxpcyBUZWNobm9sb2dpZXMgW0lTTy0xMDY0Nl0gICAgVVRGLTggYW5kIFVURi0xNiBpbiBBbm5leGVzIFtJU08tODg1OS0xXSAgIElTTyBMYXRpbi0xIGNoYXJhY3RlcnMgY29kZXMuIFtVTklDT0RFXSAgICAgIFRoZSBVbmljb2RlIENvbnNvcnRpdW0sICZxdW90O1RoZSBVbmljb2RlIFN0YW5kYXJkIC0tIFdvcmxkd2lkZSBDaGFyYWN0ZXIgRW5jb2RpbmcgLS0gVmVyc2lvbiAxLjAmcXVvdDssIEFkZGlzb24tIFdlc2xleSwgVm9sdW1lIDEsIDE5OTEsIFZvbHVtZSAyLCAxOTkyLiAgVVRGLTggaXMgZGVzY3JpYmVkIGluIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAjNC4gW1VTLUFTQ0lJXSAgICAgQ29kZWQgQ2hhcmFjdGVyIFNldC0tNy1iaXQgQW1lcmljYW4gU3RhbmRhcmQgQ29kZSBmb3IgSW5mb3JtYXRpb24gSW50ZXJjaGFuZ2UsIEFOU0kgWDMuNC0xOTg2LiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hBUl9FTkNPRElOR19VQ1M0TEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hBUl9FTkNPRElOR19FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HX0VCQ0RJQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HX0FTQ0lJJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIQVJfRU5DT0RJTkdfTk9ORScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIQVJfRU5DT0RJTkdfU0hJRlRfSklTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIQVJfRU5DT0RJTkdfVUNTNEJFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HX1VDUzRfMzQxMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEFSX0VOQ09ESU5HX1VURjgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hBUl9FTkNPRElOR19VQ1MyJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hhckVuY29kaW5nJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hhckVuY29kaW5nSGFuZGxlcicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sQ2hhckVuY29kaW5nSGFuZGxlcicgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGVsRW5jb2RpbmdBbGlhcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRFbmNvZGluZ0FsaWFzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdVVEY4VG9pc29sYXQxJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBZGRFbmNvZGluZ0FsaWFzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENsZWFudXBFbmNvZGluZ0FsaWFzZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hhckVuY091dEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VDaGFyRW5jb2RpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naXNvbGF0MVRvVVRGOCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDaGFyRW5jSW5GdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hhckVuY0ZpcnN0TGluZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZXRlY3RDaGFyRW5jb2RpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hhckVuY0Nsb3NlRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRDaGFyRW5jb2RpbmdOYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSdlbnRpdGllcyc+CisgICAgIDxzdW1tYXJ5PmludGVyZmFjZSBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZzwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPnRoaXMgbW9kdWxlIHByb3ZpZGVzIHNvbWUgb2YgdGhlIGVudGl0eSBBUEkgbmVlZGVkIGZvciB0aGUgcGFyc2VyIGFuZCBhcHBsaWNhdGlvbnMuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JTlRFUk5BTF9QQVJBTUVURVJfRU5USVRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRW50aXR5VHlwZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVudGl0aWVzVGFibGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFbnRpdGllc1RhYmxlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbEVudGl0eScgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQWRkRG9jRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0VudGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXREb2NFbnRpdHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RHRkRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEFkZER0ZEVudGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDb3B5RW50aXRpZXNUYWJsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlRW50aXRpZXNUYWJsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRQYXJhbWV0ZXJFbnRpdHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRHVtcEVudGl0aWVzVGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRHVtcEVudGl0eURlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDcmVhdGVFbnRpdGllc1RhYmxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVuY29kZUVudGl0aWVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVuY29kZVNwZWNpYWxDaGFycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRQcmVkZWZpbmVkRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J2dsb2JhbHMnPgorICAgICA8c3VtbWFyeT5pbnRlcmZhY2UgZm9yIGFsbCBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5PC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+YWxsIHRoZSBnbG9iYWwgdmFyaWFibGVzIGFuZCB0aHJlYWQgaGFuZGxpbmcgZm9yIHRob3NlIHZhcmlhYmxlcyBpcyBoYW5kbGVkIGJ5IHRoaXMgbW9kdWxlLiAgVGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYnVpbGRfZ2xvYi5weSBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb24gZmlsZSBnbG9iYWwuZGF0YSA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkdhcnkgUGVubmluZ3RvbiAmbHQ7R2FyeS5QZW5uaW5ndG9uQHVrLnN1bi5jb20mZ3Q7LCBEYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2xvYmFsU3RhdGVQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHbG9iYWxTdGF0ZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxHbG9iYWxTdGF0ZScgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVHJlZUluZGVudFN0cmluZycgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJbmRlbnRUcmVlT3V0cHV0JyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERlZmF1bHRCdWZmZXJTaXplJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZScgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZScgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdkb2NiRGVmYXVsdFNBWEhhbmRsZXInIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2VuZXJpY0Vycm9yQ29udGV4dCcgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZScgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZW5lcmljRXJyb3InIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWFsbG9jJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlclZlcnNpb24nIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RydWN0dXJlZEVycm9yJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cnVjdHVyZWRFcnJvckNvbnRleHQnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nb2xkWE1MV0Rjb21wYXRpYmlsaXR5JyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWxsb2MnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWVtU3RyZHVwJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxEZWZhdWx0U0FYSGFuZGxlcicgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlTm9FbXB0eVRhZ3MnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1hbGxvY0F0b21pYycgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJBbGxvY1NjaGVtZScgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWUnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZScgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMYXN0RXJyb3InIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGVmYXVsdFNBWEhhbmRsZXInIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGVmYXVsdFNBWExvY2F0b3InIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRockRlZkRlZmF1bHRCdWZmZXJTaXplJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGhyRGVmUGFyc2VyRGVidWdFbnRpdGllcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDbGVhbnVwR2xvYmFscycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ2lzdGVyTm9kZUZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRockRlZkluZGVudFRyZWVPdXRwdXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEluaXRHbG9iYWxzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRockRlZlRyZWVJbmRlbnRTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J2hhc2gnPgorICAgICA8c3VtbWFyeT5DaGFpbmVkIGhhc2ggdGFibGVzPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+VGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgaGFzaCB0YWJsZSBzdXBwb3J0IHVzZWQgaW4gdmFyaW91cyBwbGFjZXMgaW4gdGhlIGxpYnJhcnkuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+Qmpvcm4gUmVlc2UgJmx0O2Jqb3JuLnJlZXNlQHN5c3RlbWF0aWMuZGsmZ3Q7IDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DQVNUX0ZQVFInIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFRhYmxlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFRhYmxlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFNjYW5GdWxsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hTY2FuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hTY2FubmVyRnVsbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoQ3JlYXRlRGljdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoQWRkRW50cnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFVwZGF0ZUVudHJ5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hRTG9va3VwMycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoUUxvb2t1cDInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFNjYW4zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hTY2FubmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hEZWFsbG9jYXRvcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoQ3JlYXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hGcmVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hMb29rdXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFFMb29rdXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFVwZGF0ZUVudHJ5MicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoUmVtb3ZlRW50cnkyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hSZW1vdmVFbnRyeTMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaENvcHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaFNjYW5GdWxsMycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoVXBkYXRlRW50cnkzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hMb29rdXAzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hMb29rdXAyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hSZW1vdmVFbnRyeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoQ29waWVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhc2hBZGRFbnRyeTInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzaEFkZEVudHJ5MycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNoU2l6ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0nbGlzdCc+CisgICAgIDxzdW1tYXJ5Pmxpc3RzIGludGVyZmFjZXM8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj50aGlzIG1vZHVsZSBpbXBsZW1lbnQgdGhlIGxpc3Qgc3VwcG9ydCB1c2VkIGluIHZhcmlvdXMgcGxhY2UgaW4gdGhlIGxpYnJhcnkuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+R2FyeSBQZW5uaW5ndG9uICZsdDtHYXJ5LlBlbm5pbmd0b25AdWsuc3VuLmNvbSZndDsgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGluaycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpbmtQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RJbnNlcnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdEVtcHR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RTb3J0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3REZWFsbG9jYXRvcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0TWVyZ2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdENyZWF0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0RHVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RSZW1vdmVMYXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RXYWxrJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RSZW1vdmVBbGwnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdENvcHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdFBvcEZyb250JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RTZWFyY2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdFdhbGtlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0UmVtb3ZlRmlyc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdFJldmVyc2VXYWxrJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpbmtHZXREYXRhJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RDbGVhcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0QXBwZW5kJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RSZXZlcnNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3REYXRhQ29tcGFyZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0U2l6ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0UHVzaEZyb250JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RFbmQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdFBvcEJhY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdFJldmVyc2VTZWFyY2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTGlzdFB1c2hCYWNrJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExpc3RGcm9udCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaXN0RGVsZXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSduYW5vZnRwJz4KKyAgICAgPHN1bW1hcnk+bWluaW1hbCBGVFAgaW1wbGVtZW50YXRpb248L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5taW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbiBhbGxvd2luZyB0byBmZXRjaCByZXNvdXJjZXMgbGlrZSBleHRlcm5hbCBzdWJzZXQuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9GVFBRdWl0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9GVFBDbG9zZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdmdHBMaXN0Q2FsbGJhY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQUHJveHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0ZUUFVwZGF0ZVVSTCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQRGVsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQTmV3Q3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQU2NhblByb3h5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2Z0cERhdGFDYWxsYmFjaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQR2V0UmVzcG9uc2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0ZUUEN3ZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQSW5pdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQQ29ubmVjdFRvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9GVFBMaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9GVFBPcGVuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9GVFBDb25uZWN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9GVFBHZXRTb2NrZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0ZUUEdldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQUmVhZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vRlRQRnJlZUN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0ZUUENsZWFudXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J25hbm9odHRwJz4KKyAgICAgPHN1bW1hcnk+bWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+bWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uIGFsbG93aW5nIHRvIGZldGNoIHJlc291cmNlcyBsaWtlIGV4dGVybmFsIHN1YnNldC4gPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0hUVFBSZWFkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9IVFRQU2F2ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vSFRUUFJlZGlyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9IVFRQQXV0aEhlYWRlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vSFRUUEZldGNoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9IVFRQQ29udGVudExlbmd0aCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vSFRUUE1pbWVUeXBlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9IVFRQQ2xvc2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0hUVFBDbGVhbnVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9IVFRQTWV0aG9kJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9IVFRQSW5pdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vSFRUUE9wZW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0hUVFBPcGVuUmVkaXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFub0hUVFBNZXRob2RSZWRpcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vSFRUUFNjYW5Qcm94eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW5vSFRUUEVuY29kaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbm9IVFRQUmV0dXJuQ29kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0ncGFyc2VyJz4KKyAgICAgPHN1bW1hcnk+dGhlIGNvcmUgcGFyc2VyIG1vZHVsZTwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPkludGVyZmFjZXMsIGNvbnN0YW50cyBhbmQgdHlwZXMgcmVsYXRlZCB0byB0aGUgWE1MIHBhcnNlciA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ09NUExFVEVfQVRUUlMnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NLSVBfSURTJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQVgyX01BR0lDJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9ERVRFQ1RfSURTJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9ERUZBVUxUX1ZFUlNJT04nIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfTk9ORScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX1NDSEVNQVRST04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX0VOVElUWV9ERUNMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9DT05URU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX05PQkxBTktTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfUEFUVEVSTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9OT0RJQ1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfUkVHRVhQJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9QSScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9VTktOT1dOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfWFBBVEgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9IVE1MJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX09MRFNBWCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX1dSSVRFUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX0MxNE4nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VfUFVTSF9ET00nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX1BST0xPRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9OT05FVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX0hUVFAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX0VQSUxPRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRVJfRU5EX1RBRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX0RFQlVHJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX0RURFZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX0RPTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX1BVU0hfU0FYJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfVFJFRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9SRUNPVkVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfU0NIRU1BUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9QRURBTlRJQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRVJfRU9GJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfTEVHQUNZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX1hJTkNMVURFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX05PWElOQ05PREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VfTk9CQVNFRklYJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfT1VUUFVUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfWElOQ0xVREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9QVVNIJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX1JFQURFUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX1RIUkVBRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9TQVgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VfTk9FTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX0VOVElUWV9WQUxVRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9EVERMT0FEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX0RUREFUVFInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VfTk9XQVJOSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX09MRDEwJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX05PRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9JU084ODU5WCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX0VYUFInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VfTlNDTEVBTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX1VOSUNPREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9DQVRBTE9HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfTU9EVUxFUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX1hQVFInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VfTk9DREFUQScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRV9DT01QQUNUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX1NBWDEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9aTElCJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfUkVBREVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9EVEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX01JU0MnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX1NUQVJUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfREVCVUdfTUVNJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFX0hVR0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9GVFAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX1NUQVJUX1RBRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRVJfSUdOT1JFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9DT01NRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9QVUJMSUNfTElURVJBTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XSVRIX0lDT05WJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfQVVUT01BVEEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9ERUJVR19SVU4nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0lUSF9TQVgxJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dJVEhfVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJOb2RlSW5mb1NlcVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWEhhbmRsZXJWMScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlcklucHV0U3RhdGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJOb2RlSW5mb1B0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlck5vZGVJbmZvU2VxJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRmVhdHVyZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlck1vZGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJPcHRpb24nIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVhIYW5kbGVyVjFQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJOb2RlSW5mbycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxQYXJzZXJOb2RlSW5mbycgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFBhcnNlckN0eHQnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxTQVhIYW5kbGVyVjEnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxQYXJzZXJJbnB1dCcgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFNBWEhhbmRsZXInIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxQYXJzZXJOb2RlSW5mb1NlcScgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFNBWExvY2F0b3InIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNldHVwUGFyc2VyRm9yQnVmZmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEN0eHRSZWFkRmlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdhdHRyaWJ1dGVEZWNsU0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdnZXRFbnRpdHlTQVhGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3N0YXJ0RWxlbWVudFNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nY2hhcmFjdGVyc1NBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2xlYXJOb2RlSW5mb1NlcScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUNodW5rJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlY292ZXJGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEN0eHRSZWFkRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ3JlYXRlSU9QYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlSW5Ob2RlQ29udGV4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdyZWZlcmVuY2VTQVhGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2hhc0V4dGVybmFsU3Vic2V0U0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVhQYXJzZURvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkTWVtb3J5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlTWVtb3J5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0lPSW5wdXRTdHJlYW0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0ncHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEluaXRQYXJzZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdlcnJvclNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYUGFyc2VNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVjb3Zlck1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHRlcm5hbEVudGl0eUxvYWRlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nY2RhdGFCbG9ja1NBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYUGFyc2VGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlcklucHV0RGVhbGxvY2F0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDdHh0UmVhZElPJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RmVhdHVyZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJT1BhcnNlRFREJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRFREJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlY292ZXJEb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nY29tbWVudFNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSW5pdFBhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nYXR0cmlidXRlU0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJJbnB1dEdyb3cnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ3R4dFJlYWRNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZXh0ZXJuYWxTdWJzZXRTQVhGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3Jlc29sdmVFbnRpdHlTQVhGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVhQYXJzZUVudGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZURvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMaW5lTnVtYmVyc0RlZmF1bHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZWxlbWVudERlY2xTQVhGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEN0eHRVc2VPcHRpb25zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlckFkZE5vZGVJbmZvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEN0eHRSZWFkRmQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naW50ZXJuYWxTdWJzZXRTQVhGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld1BhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZW5kRG9jdW1lbnRTQVhGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRmlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZURvY3VtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJbml0Tm9kZUluZm9TZXEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdlbmRFbGVtZW50U0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCeXRlQ29uc3VtZWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ3R4dFJlc2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNldEZlYXR1cmUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sS2VlcEJsYW5rc0RlZmF1bHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRSZWFkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWRGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdldEZlYXR1cmVzTGlzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNGZWF0dXJlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3VucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYVXNlclBhcnNlRmlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdmYXRhbEVycm9yU0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVhQYXJzZURURCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJGaW5kTm9kZUluZm8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZW50aXR5RGVjbFNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTG9hZEV4dGVybmFsRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0b3BQYXJzZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVhZEZkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRXh0UGFyc2VkRW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWRJTycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNBWFVzZXJQYXJzZU1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nZW5kRWxlbWVudE5zU0FYMkZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2xlYW51cFBhcnNlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDdHh0UmVzZXRQdXNoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2lzU3RhbmRhbG9uZVNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nc3RhcnREb2N1bWVudFNBWEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2xlYXJQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRXh0ZXJuYWxFbnRpdHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nbm90YXRpb25EZWNsU0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd3YXJuaW5nU0FYRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgPHN1bW1hcnk+aW50ZXJuYWxzIHJvdXRpbmVzIGV4cG9ydGVkIGJ5IHRoZSBwYXJzZXIuPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGhpcyBtb2R1bGUgZXhwb3J0cyBhIG51bWJlciBvZiBpbnRlcm5hbCBwYXJzaW5nIHJvdXRpbmVzIHRoZXkgYXJlIG5vdCByZWFsbHkgYWxsIGludGVuZGVkIGZvciBhcHBsaWNhdGlvbnMgYnV0IGNhbiBwcm92ZSB1c2VmdWwgZG9pbmcgbG93IGxldmVsIHByb2Nlc3NpbmcuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TVUJTVElUVVRFX1JFRicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdJU19CTEFOSycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdJU19CWVRFX0NIQVInIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSVNfUFVCSURDSEFSJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX0RJR0lUX0NIJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX0VYVEVOREVSJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX0FTQ0lJX0RJR0lUJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX0NPTUJJTklOR19DSCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdJU19DSEFSJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX0xFVFRFUicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdJU19JREVPR1JBUEhJQycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdNT1ZFVE9fU1RBUlRUQUcnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSVNfQVNDSUlfTEVUVEVSJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX0RJR0lUJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TVUJTVElUVVRFX1BFUkVGJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J01PVkVUT19FTkRUQUcnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nU0tJUF9FT0wnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSVNfRVhURU5ERVJfQ0gnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSVNfQkxBTktfQ0gnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nSVNfTEVUVEVSX0NIJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9NQVhfVEVYVF9MRU5HVEgnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NVQlNUSVRVVEVfTk9ORScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdJU19DT01CSU5JTkcnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX01BWF9OQU1FTEVOJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX0JBU0VDSEFSJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lOUFVUX0NIVU5LJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0lTX1BVQklEQ0hBUl9DSCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdJU19DSEFSX0NIJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TVUJTVElUVVRFX0JPVEgnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyaW5nVGV4dE5vZW5jJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cmluZ0NvbW1lbnQnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyaW5nVGV4dCcgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJNYXhEZXB0aCcgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdub2RlUG9wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlTm90YXRpb25EZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRXh0ZXJuYWxTdWJzZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VNaXNjJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN3aXRjaElucHV0RW5jb2RpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VFeHRlcm5hbElEJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjYW5OYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRWxlbWVudERlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VNYXJrdXBEZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2h0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdpbnB1dFB1c2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nbmFtZVBvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUNvbnRlbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3SW5wdXRTdHJlYW0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmFtZXNwYWNlUGFyc2VRTmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdJbnB1dEZyb21GaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cmluZ0RlY29kZUVudGl0aWVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENyZWF0ZUZpbGVQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlQ2hhclJlZicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VUZXh0RGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDb3B5Q2hhck11bHRpQnl0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlQ2hhckRhdGEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VWZXJzaW9uSW5mbycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZVNERGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUVudW1lcmF0ZWRUeXBlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEhhbmRsZUVudGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDdXJyZW50Q2hhcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTa2lwQmxhbmtDaGFycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZU5vdGF0aW9uVHlwZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJJbnB1dFNocmluaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVJbnB1dFN0cmVhbScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZVBFUmVmZXJlbmNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENyZWF0ZVVSTFBhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNMZXR0ZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hlY2tMYW5ndWFnZUlEJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5leHRDaGFyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRW51bWVyYXRpb25UeXBlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlQXR0cmlidXRlVHlwZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZURlZmF1bHREZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlU3lzdGVtTGl0ZXJhbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUF0dFZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZU5hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VFbmNOYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J25vZGVQdXNoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN3aXRjaEVuY29kaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN3aXRjaFRvRW5jb2RpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VFbnRpdHlSZWYnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VBdHRyaWJ1dGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VFbmRUYWcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VFbmNvZGluZ0RlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0naHRtbEluaXRBdXRvQ2xvc2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTcGxpdFFOYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZVBJVGFyZ2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlRWxlbWVudENvbnRlbnREZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2lucHV0UG9wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBvcElucHV0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlUHViaWRMaXRlcmFsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFB1c2hJbnB1dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUVudGl0eVZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERlY29kZUVudGl0aWVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlVmVyc2lvbk51bScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZVhNTERlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRW50aXR5UmVmZXJlbmNlRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlUXVvdGVkU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5hbWVzcGFjZVBhcnNlTlNEZWYnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VDRFNlY3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyaW5nQ3VycmVudENoYXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VDb21tZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVyck1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZU5tdG9rZW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VSZWZlcmVuY2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nbmFtZVB1c2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VOYW1lc3BhY2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ29weUNoYXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VQSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZURvY1R5cGVEZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlU3RhcnRUYWcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VFbnRpdHlEZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSdwYXR0ZXJuJz4KKyAgICAgPHN1bW1hcnk+cGF0dGVybiBleHByZXNzaW9uIGhhbmRsaW5nPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+YWxsb3dzIHRvIGNvbXBpbGUgYW5kIHRlc3QgcGF0dGVybiBleHByZXNzaW9ucyBmb3Igbm9kZXMgZWl0aGVyIGluIGEgdHJlZSBvciBiYXNlZCBvbiBhIHBhcnNlciBzdGF0ZS4gPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBVFRFUk5fREVGQVVMVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVRURVJOX1hTRklFTEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFUVEVSTl9YU1NFTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVRURVJOX1hQQVRIJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyZWFtQ3R4dFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhdHRlcm5GbGFncycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cmVhbUN0eHQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXR0ZXJuJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGF0dGVyblB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhdHRlcm5NaW5EZXB0aCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXR0ZXJuRnJvbVJvb3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRnJlZVBhdHRlcm5MaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhdHRlcm5TdHJlYW1hYmxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cmVhbVB1c2hBdHRyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhdHRlcm5NYXRjaCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTdHJlYW1XYW50c0FueU5vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyZWFtUG9wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVQYXR0ZXJuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cmVhbVB1c2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGF0dGVybk1heERlcHRoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhdHRlcm5jb21waWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cmVhbVB1c2hOb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVTdHJlYW1DdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSdyZWxheG5nJz4KKyAgICAgPHN1bW1hcnk+aW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbGF4LU5HIHZhbGlkYXRpb248L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5pbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfRFVQSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfVkFMRUxFTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfTElTVEVMRU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfTElTVEVYVFJBJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0FUVFJOT05TJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9FTEVNTk9OUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9FTEVNRVhUUkFOUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9EQVRBVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9UWVBFQ01QJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX05PR1JBTU1BUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9JTlRFUlNFUScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9MQUNLREFUQScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HUF9GUkVFX0RPQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9BVFRSTkFNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9FTEVNTk9URU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19PSycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9JTlRFUk5PREFUQScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9BVFRSV1JPTkdOUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR1BfTk9ORScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfTElTVEVNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0FUVFJFWFRSQU5TJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdQX0NSTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfVEVYVFdST05HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0lOVkFMSURBVFRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0NPTlRFTlRWQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9UWVBFVkFMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0xJU1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9OT0VMRU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfTUVNT1JZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0VMRU1OQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX0RBVEFFTEVNJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX05PREVGSU5FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFTEFYTkdfRVJSX05PU1RBVEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVMQVhOR19FUlJfSU5URVJFWFRSQScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUxBWE5HX0VSUl9OT1RFTEVNJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhORycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HVmFsaWRFcnInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HUGFyc2VyQ3R4dCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR1BhcnNlckZsYWcnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HVmFsaWRDdHh0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdGcmVlVmFsaWRDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdTZXRWYWxpZEVycm9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HRHVtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdQYXJzZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR0ZyZWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR1ZhbGlkYXRlRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdHZXRWYWxpZEVycm9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HSW5pdFR5cGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdEdW1wVHJlZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheE5HQ2xlYW51cFR5cGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWxheFBhcnNlclNldEZsYWcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICA8c3VtbWFyeT5pbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgU2NoZW1hczwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPmludGVybmFsIGludGVyZmFjZXMgZm9yIHRoZSBYTUwgU2NoZW1hcyBoYW5kbGluZyBhbmQgc2NoZW1hIHZhbGlkaXR5IGNoZWNraW5nIFRoZSBTY2hlbWFzIGRldmVsb3BtZW50IGlzIGEgV29yayBJbiBQcm9ncmVzcy4gU29tZSBvZiB0aG9zZSBpbnRlcmZhY2VzIGFyZSBub3QgZ2FyYW50ZWVkIHRvIGJlIEFQSSBvciBBQkkgc3RhYmxlICEgPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzEnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1FVQUxJRl9BVFRSJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19GQUNFVF9DT0xMQVBTRScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0UnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FOWV9TVFJJQ1QnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9SRVNPTFZFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19RVUFMSUZfRUxFTScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9SRURFRklORUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0ZJWEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1RZUEVfT1dORURfQVRUUl9XSUxEQ0FSRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04nIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BVFRSX0dMT0JBTCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BTllBVFRSX1NLSVAnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04nIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQU5ZQVRUUl9MQVgnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9BQlNUUkFDVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX01JWEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FUVFJfRklYRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9SRVNPTFZFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BTllfU0tJUCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1QnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VMRU1fTlNERUZBVUxUJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQU5ZX0xBWCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0FCU0VOVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1QnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT04nIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9VTklPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0RFRkFVTFQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0UnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfQUJTRU5UJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUwnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRUxFTV9SRUYnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19OTVRPS0VOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19USU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVUJZVEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19EQVRFVElNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX05OSU5URUdFUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0hFWEJJTkFSWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9VTklPTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1VOS05PV04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19VSU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfTlBJTlRFR0VSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfR01PTlRIREFZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9GQUNFVF9NQVhFWENMVVNJVkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19VTE9ORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1BJTlRFR0VSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9UWVBFX0NIT0lDRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0RFQ0lNQUwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfVVInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19ET1VCTEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19OSU5URUdFUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX05PUk1TVFJJTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfUEFSVElDTEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRURfT1JfRUxFTUVOVFMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfU0lNUExFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfTkNOQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfTE9ORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfQk9PTEVBTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VOVElUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9HUk9VUCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0dZRUFSTU9OVEgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0ZBQ0VUX0ZSQUNUSU9ORElHSVRTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfSURSRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1FOQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfVE9LRU4nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9DT05URU5UX1VOS05PV04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0dNT05USCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0dZRUFSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9FWFRSQV9BVFRSX1VTRV9QUk9ISUInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19CWVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9UWVBFX0FMTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfTk9UQVRJT04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfTElTVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfR0RBWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9BTlknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BTllVUkknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfQ09NUExFWCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9CQVNJQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0lEUkVGUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9JRENfVU5JUVVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfU0hPUlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19MQU5HVUFHRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19BTllUWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRFVSQVRJT04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfRkFDRVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19OTVRPS0VOUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX1VTSE9SVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0lOVEVHRVInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1RZUEVfSURDX0tFWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0ZMT0FUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRU5USVRJRVMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19EQVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfU1RSSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfSU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9DT05URU5UX0FOWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9UWVBFX1JFU1RSSUNUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hRWxlbWVudFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUZhY2V0TGlua1B0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUF0dHJpYnV0ZUxpbmtQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFUeXBlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hQW5ub3QnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFBbm5vdFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUVsZW1lbnQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFXaWxkY2FyZCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVdpbGRjYXJkUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hRmFjZXRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFUeXBlTGluaycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFGYWNldExpbmsnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFXaWxkY2FyZE5zUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hQXR0cmlidXRlR3JvdXAnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFUeXBlTGlua1B0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVdpbGRjYXJkTnMnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFBdHRyaWJ1dGVQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFOb3RhdGlvblB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbFR5cGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFUeXBlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hTm90YXRpb24nIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFGYWNldCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUNvbnRlbnRUeXBlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hVHlwZVR5cGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFBdHRyaWJ1dGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sU2NoZW1hV2lsZGNhcmROcycgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFNjaGVtYU5vdGF0aW9uJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sU2NoZW1hQXR0cmlidXRlJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sU2NoZW1hVHlwZScgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFNjaGVtYUF0dHJpYnV0ZUdyb3VwJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sU2NoZW1hRmFjZXRMaW5rJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sU2NoZW1hRWxlbWVudCcgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFNjaGVtYScgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxTY2hlbWFGYWNldCcgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFNjaGVtYVdpbGRjYXJkJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sU2NoZW1hVHlwZUxpbmsnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxTY2hlbWFBbm5vdCcgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hRnJlZVR5cGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hRnJlZVdpbGRjYXJkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSdzY2hlbWF0cm9uJz4KKyAgICAgPHN1bW1hcnk+WE1MIFNjaGVtYXN0cm9uIGltcGxlbWVudGF0aW9uPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+aW50ZXJmYWNlIHRvIHRoZSBYTUwgU2NoZW1hdHJvbiB2YWxpZGl0eSBjaGVja2luZy4gPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVRST05fT1VUX0lPJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVRST05fT1VUX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVRST05fT1VUX0JVRkZFUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFUUk9OX09VVF9GSUxFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVRST05fT1VUX1hNTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFUUk9OX09VVF9URVhUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVRST05fT1VUX1FVSUVUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvblZhbGlkQ3R4dCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWF0cm9uUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvblBhcnNlckN0eHQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWF0cm9uJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvbkZyZWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWF0cm9uUGFyc2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0ndGhyZWFkcyc+CisgICAgIDxzdW1tYXJ5PmludGVyZmFjZXMgZm9yIHRocmVhZCBoYW5kbGluZzwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPnNldCBvZiBnZW5lcmljIHRocmVhZGluZyByZWxhdGVkIHJvdXRpbmVzIHNob3VsZCB3b3JrIHdpdGggcHRocmVhZHMsIFdpbmRvd3MgbmF0aXZlIG9yIFRMUyB0aHJlYWRzIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE11dGV4JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUk11dGV4JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUk11dGV4UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTXV0ZXhQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlUk11dGV4JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdldFRocmVhZElkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE11dGV4VW5sb2NrJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENsZWFudXBUaHJlYWRzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExvY2tMaWJyYXJ5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld1JNdXRleCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNdXRleExvY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNNYWluVGhyZWFkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJNdXRleFVubG9jaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRHbG9iYWxTdGF0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdNdXRleCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEbGxNYWluJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVNdXRleCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVbmxvY2tMaWJyYXJ5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEluaXRUaHJlYWRzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJNdXRleExvY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3RyZWUnPgorICAgICA8c3VtbWFyeT5pbnRlcmZhY2VzIGZvciB0cmVlIG1hbmlwdWxhdGlvbjwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPnRoaXMgbW9kdWxlIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlcyBmb3VuZCBpbiBhbiB0cmVlIHJlc3VsdGluZyBmcm9tIGFuIFhNTCBvciBIVE1MIHBhcnNpbmcsIGFzIHdlbGwgYXMgdGhlIEFQSSBwcm92aWRlZCBmb3IgdmFyaW91cyBwcm9jZXNzaW5nIG9uIHRoYXQgdHJlZSA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfTE9DQUxfTkFNRVNQQUNFJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YTUxfTkFNRVNQQUNFJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YTUxfSUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUm9vdE5vZGUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0dFVF9MSU5FJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9HRVRfQ09OVEVOVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDaGlsZHJlbk5vZGUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nQkFTRV9CVUZGRVJfU0laRScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQVRUUklCVVRFX0lNUExJRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRU5USVRZX1JFRl9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0FUVFJJQlVURV9JRFJFRlMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hJTkNMVURFX0VORCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9BVFRSSUJVVEVfTk9ERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9BVFRSSUJVVEVfTk1UT0tFTlMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQVRUUklCVVRFX0lEUkVGJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1RFWFRfTk9ERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DREFUQV9TRUNUSU9OX05PREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRUxFTUVOVF9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VMRU1FTlRfREVDTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9ET0NfVVNFUkJVSUxUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RPQ19JTlRFUk5BTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9BVFRSSUJVVEVfUkVRVUlSRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRE9DVU1FTlRfRlJBR19OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RPQ19EVERWQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FTEVNRU5UX1RZUEVfQU5ZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RPQ19OU1ZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQVRUUklCVVRFX0ZJWEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9ET0NfSFRNTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FTEVNRU5UX0NPTlRFTlRfT1BUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX05BTUVTUEFDRV9ERUNMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0FUVFJJQlVURV9OT1RBVElPTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FTEVNRU5UX1RZUEVfTUlYRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfU1RBUlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRE9DX1hJTkNMVURFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0JVRkZFUl9BTExPQ19FWEFDVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9BVFRSSUJVVEVfRU5USVRJRVMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9OT1RBVElPTl9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRUxFTUVOVF9UWVBFX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9ET0NfT0xEMTAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSFRNTF9ET0NVTUVOVF9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRE9DVU1FTlRfTk9ERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9ET0NCX0RPQ1VNRU5UX05PREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ09NTUVOVF9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0FUVFJJQlVURV9OT05FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VMRU1FTlRfQ09OVEVOVF9PUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9BVFRSSUJVVEVfTk1UT0tFTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QSV9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0JVRkZFUl9BTExPQ19JTycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FTlRJVFlfTk9ERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9BVFRSSUJVVEVfRU5USVRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RPQ19XRUxMRk9STUVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0FUVFJJQlVURV9ERUNMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VOVElUWV9ERUNMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0FUVFJJQlVURV9JRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9BVFRSSUJVVEVfQ0RBVEEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRUxFTUVOVF9DT05URU5UX01VTFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRUxFTUVOVF9DT05URU5UX1BMVVMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOcycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1ZmZlclB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVudW1lcmF0aW9uUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVhMb2NhdG9yUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFbGVtZW50JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTnNUeXBlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEb2NQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFbGVtZW50Q29udGVudCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERPTVdyYXBDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVmUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRCdWZmZXInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWYnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxET01XcmFwQ3R4dCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJDdHh0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRHRkUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXR0cmlidXRlRGVmYXVsdCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vdGF0aW9uJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRWxlbWVudFR5cGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFbnRpdHknIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBdHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXR0cmlidXRlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRWxlbWVudFR5cGVWYWwnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb3RhdGlvblB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVsZW1lbnRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFbGVtZW50Q29udGVudE9jY3VyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXR0clB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERvYycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElEJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VyQ3R4dFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVudGl0eVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVudW1lcmF0aW9uJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXR0cmlidXRlVHlwZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5zUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRCdWZmZXJQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTQVhIYW5kbGVyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYTG9jYXRvcicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVsZW1lbnRDb250ZW50UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRWxlbWVudENvbnRlbnRUeXBlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRG9jUHJvcGVydGllcycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElEUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRHRkJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXR0cmlidXRlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU0FYSGFuZGxlclB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxCdWZmZXInIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxBdHRyaWJ1dGUnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxFbnVtZXJhdGlvbicgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbE5zJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sTm9kZScgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbERvYycgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbEVsZW1lbnQnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxJRCcgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbE5vdGF0aW9uJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sRHRkJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sUmVmJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sQXR0cicgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbERPTVdyYXBDdHh0JyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sRWxlbWVudENvbnRlbnQnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERvY0NvcHlOb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0RvY1Jhd05vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0UHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdOc1Byb3BFYXROYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0NEYXRhQmxvY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyV3JpdGVDSEFSJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVHZXRCYXNlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1ZmZlckVtcHR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1aWxkUU5hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2F2ZUZvcm1hdEZpbGVFbmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQWRkU2libGluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJDcmVhdGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3RG9jRnJhZ21lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRG9jR2V0Um9vdEVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyaW5nR2V0Tm9kZUxpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVOYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVRTmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxIYXNOc1Byb3AnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQWRkUHJldlNpYmxpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyQWRkSGVhZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdQSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENoaWxkRWxlbWVudENvdW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVsZW1EdW1wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNhdmVGb3JtYXRGaWxlVG8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0SW50U3Vic2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVCdWZHZXRDb250ZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5leHRFbGVtZW50U2libGluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJXcml0ZUNoYXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyRnJlZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxET01XcmFwQ2xvbmVOb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld05vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2F2ZUZpbGVUbycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdUZXh0TGVuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld1RleHRDaGlsZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb2RlU2V0Q29udGVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJBZGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm9kZUR1bXBPdXRwdXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ29weU5hbWVzcGFjZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZWFyY2hOc0J5SHJlZicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBZGRDaGlsZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWNvbmNpbGlhdGVOcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxWYWxpZGF0ZU5DTmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdEb2NDb21tZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdldENvbXByZXNzTW9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb2RlRHVtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJDcmVhdGVTaXplJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVMaXN0R2V0U3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNldENvbXByZXNzTW9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZXRUcmVlRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERPTVdyYXBBZG9wdE5vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ29weU5vZGVMaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0RvY05vZGVFYXROYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEFkZENoaWxkTGlzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXROb2RlUGF0aCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlUHJvcExpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm9kZUFkZENvbnRlbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVW5zZXROc1Byb3AnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRmlyc3RFbGVtZW50Q2hpbGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQWRkTmV4dFNpYmxpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSXNCbGFua05vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3R2xvYmFsTnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyRHVtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb2RlR2V0Q29udGVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDb3B5RG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERPTVdyYXBOZXdDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERvY0R1bXBNZW1vcnlFbmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dE1lcmdlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERvY0R1bXBNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3RG9jUEknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRnJlZU5zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERvY0R1bXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRnJlZVByb3AnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0Tm9Oc1Byb3AnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3BsaXRRTmFtZTInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3UHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0Q29uY2F0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVHZXRTcGFjZVByZXNlcnZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1ZmZlclNocmluaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVTZXRDb250ZW50TGVuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVBZGRDb250ZW50TGVuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENvcHlQcm9wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlcGxhY2VOb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNldERvY0NvbXByZXNzTW9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDb3B5Tm9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVbmxpbmtOb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNwbGl0UU5hbWUzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEb2NTZXRSb290RWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRMaW5lTm8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyQ29udGVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZW1vdmVQcm9wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExhc3RFbGVtZW50Q2hpbGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm9kZUdldExhbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RG9jQ29tcHJlc3NNb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdldE5zUHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdEb2NQcm9wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVOb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld05zUHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxET01XcmFwRnJlZUN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVOTVRva2VuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3Q2hpbGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2VhcmNoTnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2F2ZUZvcm1hdEZpbGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ29weVByb3BMaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERvY0Zvcm1hdER1bXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm9kZVNldFNwYWNlUHJlc2VydmUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSGFzUHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJDYXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ3JlYXRlSW50U3Vic2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0RvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdDaGFyUmVmJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENvcHlOYW1lc3BhY2VMaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld05vZGVFYXROYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1ZmZlclJlc2l6ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb2RlU2V0QmFzZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdDb21tZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEJ1ZmZlckxlbmd0aCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdUZXh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVuc2V0UHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNhdmVGaWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbERvY0NvcHlOb2RlTGlzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZXROcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdOcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxET01XcmFwUmVtb3ZlTm9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDb3B5RHRkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0RvY1RleHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVmZmVyQ3JlYXRlU3RhdGljJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld1JlZmVyZW5jZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJDQ2F0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdldE5zTGlzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWZmZXJHcm93JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVJc1RleHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2V0UHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc1hIVE1MJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVTZXRMYW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVEdGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRnJlZU5vZGVMaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVEb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3RG9jTm9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlRmlsZUVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZXROc1Byb3AnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRG9jRHVtcEZvcm1hdE1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZXRMaXN0RG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5vZGVTZXROYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0RvY1RleHRMZW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3RHRkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVOc0xpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0TGFzdENoaWxkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSd1cmknPgorICAgICA8c3VtbWFyeT5saWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXM8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5saWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXMgSW1wbGVtZW50cyBSRkMgMjM5NiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVUkknIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVUklQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sVVJJJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb3JtYWxpemVVUklQYXRoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFByaW50VVJJJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlVVJJUmF3JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVSSVVuZXNjYXBlU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlVVJJJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENyZWF0ZVVSSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVUklFc2NhcGVTdHInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGF0aFRvVVJJJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENhbm9uaWNQYXRoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVVUkknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VVUklSZWZlcmVuY2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQnVpbGRSZWxhdGl2ZVVSSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlVXJpJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVSSUVzY2FwZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxCdWlsZFVSSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0ndmFsaWQnPgorICAgICA8c3VtbWFyeT5UaGUgRFREIHZhbGlkYXRpb248L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5BUEkgZm9yIHRoZSBEVEQgaGFuZGxpbmcgYW5kIHRoZSB2YWxpZGl0eSBjaGVja2luZyA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ1RYVF9GSU5JU0hfRFREXzAnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NUWFRfRklOSVNIX0RURF8xJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVsZW1lbnRUYWJsZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkU3RhdGVQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJRFRhYmxlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm90YXRpb25UYWJsZVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkQ3R4dCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVsZW1lbnRUYWJsZVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZlRhYmxlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm90YXRpb25UYWJsZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZlRhYmxlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRTdGF0ZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF0dHJpYnV0ZVRhYmxlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXR0cmlidXRlVGFibGVQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJRFRhYmxlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFZhbGlkQ3R4dCcgdHlwZT0nc3RydWN0Jy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRnJlZU5vdGF0aW9uVGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVOYW1lVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU25wcmludGZFbGVtZW50Q29udGVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBZGRSZWYnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRHVtcEF0dHJpYnV0ZURlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkYXRlRHRkRmluYWwnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRHVtcEF0dHJpYnV0ZVRhYmxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENyZWF0ZUVudW1lcmF0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkYXRlT25lQXR0cmlidXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJc01peGVkRWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxEdW1wTm90YXRpb25EZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzSUQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RHRkUUF0dHJEZXNjJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld0RvY0VsZW1lbnRDb250ZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVBdHRyaWJ1dGVUYWJsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxWYWxpZGl0eUVycm9yRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RHRkUUVsZW1lbnREZXNjJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENvcHlOb3RhdGlvblRhYmxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkYXRlRG9jdW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBZGROb3RhdGlvbkRlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVFbGVtZW50RGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBZGRBdHRyaWJ1dGVEZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdldElEJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENvcHlFbGVtZW50VGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0UmVmcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVPbmVFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkYXRlTm10b2tlblZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbER1bXBFbGVtZW50VGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRHVtcEVsZW1lbnREZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVFbGVtZW50Q29udGVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxWYWxpZGF0ZVB1c2hFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElzUmVmJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENvcHlEb2NFbGVtZW50Q29udGVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBZGRJRCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlUmVmVGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVOYW1lc1ZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlbW92ZUlEJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVFbGVtZW50VGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRnJlZUlEVGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRnJlZVZhbGlkQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDb3B5QXR0cmlidXRlVGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ29weUVsZW1lbnRDb250ZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVtb3ZlUmVmJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkaXR5V2FybmluZ0Z1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVQb3BFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVFbnVtZXJhdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDb3B5RW51bWVyYXRpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RHRkQXR0ckRlc2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVEdGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3VmFsaWRDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbER1bXBOb3RhdGlvblRhYmxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEFkZEVsZW1lbnREZWNsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxWYWxpZGF0ZUVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVOb3RhdGlvblVzZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxWYWxpZGF0ZVJvb3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3RWxlbWVudENvbnRlbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RHRkRWxlbWVudERlc2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0RHRkTm90YXRpb25EZXNjJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkYXRlUHVzaENEYXRhJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFZhbGlkYXRlTm10b2tlbnNWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3hpbmNsdWRlJz4KKyAgICAgPHN1bW1hcnk+aW1wbGVtZW50YXRpb24gb2YgWEluY2x1ZGU8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5BUEkgdG8gaGFuZGxlIFhJbmNsdWRlIHByb2Nlc3NpbmcsIGltcGxlbWVudHMgdGhlIFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0gTGFzdCBDYWxsIFdvcmtpbmcgRHJhZnQgMTAgTm92ZW1iZXIgMjAwMzwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hJTkNMVURFX1BBUlNFX1RFWFQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWElOQ0xVREVfUEFSU0VfWFBPSU5URVInIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWElOQ0xVREVfSFJFRicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYSU5DTFVERV9GQUxMQkFDSycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYSU5DTFVERV9OUycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYSU5DTFVERV9QQVJTRScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYSU5DTFVERV9OT0RFJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hJTkNMVURFX1BBUlNFX1hNTCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYSU5DTFVERV9QQVJTRV9FTkNPRElORycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYSU5DTFVERV9PTERfTlMnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWEluY2x1ZGVDdHh0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWEluY2x1ZGVDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWEluY2x1ZGVQcm9jZXNzVHJlZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYSW5jbHVkZVByb2Nlc3NOb2RlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhJbmNsdWRlRnJlZUNvbnRleHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWEluY2x1ZGVTZXRGbGFncycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYSW5jbHVkZVByb2Nlc3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWEluY2x1ZGVOZXdDb250ZXh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0neGxpbmsnPgorICAgICA8c3VtbWFyeT51bmZpbmlzaGVkIFhMaW5rIGRldGVjdGlvbiBtb2R1bGU8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj51bmZpbmlzaGVkIFhMaW5rIGRldGVjdGlvbiBtb2R1bGUgPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWExJTktfQUNUVUFURV9OT05FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWExJTktfU0hPV19ORVcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTElOS19BQ1RVQVRFX0FVVE8nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTElOS19UWVBFX05PTkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTElOS19TSE9XX1JFUExBQ0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTElOS19BQ1RVQVRFX09OUkVRVUVTVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hMSU5LX1RZUEVfRVhURU5ERUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTElOS19UWVBFX0VYVEVOREVEX1NFVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hMSU5LX1NIT1dfTk9ORScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hMSU5LX1NIT1dfRU1CRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTElOS19UWVBFX1NJTVBMRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3hsaW5rVGl0bGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua1Nob3cnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua0hSZWYnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua0FjdHVhdGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua0hhbmRsZXInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua1JvbGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua0hhbmRsZXJQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua1R5cGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeGxpbmtIYW5kbGVyJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua1NldERlZmF1bHREZXRlY3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neGxpbmtTZXREZWZhdWx0SGFuZGxlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua0V4dGVuZGVkTGlua0Z1bmsnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3hsaW5rU2ltcGxlTGlua0Z1bmsnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neGxpbmtOb2RlRGV0ZWN0RnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bGlua0dldERlZmF1bHRIYW5kbGVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3hsaW5rSXNMaW5rJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3hsaW5rR2V0RGVmYXVsdERldGVjdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0neG1sSU8nPgorICAgICA8c3VtbWFyeT5pbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXI8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5pbnRlcmZhY2UgZm9yIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXIgPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFBhcnNlcklucHV0QnVmZmVyJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sT3V0cHV0QnVmZmVyJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJT0hUVFBSZWFkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElucHV0TWF0Y2hDYWxsYmFjaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRmlsZUNsb3NlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE91dHB1dE1hdGNoQ2FsbGJhY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElPRlRQUmVhZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElPRlRQT3BlbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJT0ZUUENsb3NlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZpbGVPcGVuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hlY2tGaWxlbmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxPdXRwdXRPcGVuQ2FsbGJhY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxPdXRwdXRCdWZmZXJDbG9zZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUlPJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE91dHB1dFdyaXRlQ2FsbGJhY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyRmx1c2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hlY2tIVFRQSW5wdXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSU9GVFBNYXRjaCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0Q2xvc2VDYWxsYmFjaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBbGxvY091dHB1dEJ1ZmZlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJT0hUVFBNYXRjaCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJT0hUVFBPcGVuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm9ybWFsaXplV2luZG93c1BhdGgnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSW5wdXRSZWFkQ2FsbGJhY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSU9IVFRQQ2xvc2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJbnB1dE9wZW5DYWxsYmFjaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRmlsZU1hdGNoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBvcElucHV0Q2FsbGJhY2tzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZpbGVSZWFkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJHZXREaXJlY3RvcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sT3V0cHV0QnVmZmVyV3JpdGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbElucHV0Q2xvc2VDYWxsYmFjaycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxJT0hUVFBPcGVuVycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSd4bWxhdXRvbWF0YSc+CisgICAgIDxzdW1tYXJ5PkFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGE8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj50aGUgQVBJIHRvIGJ1aWxkIHJlZ2V4cCBhdXRvbWF0YSA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGEnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBdXRvbWF0YVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhU3RhdGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlQXV0b21hdGEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFOZXdDb3VudGVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhR2V0SW5pdFN0YXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFOZXdTdGF0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhTmV3QWxsVHJhbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFDb21waWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhTmV3TmVnVHJhbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFOZXdFcHNpbG9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3QXV0b21hdGEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhTmV3T25jZVRyYW5zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3htbGVycm9yJz4KKyAgICAgPHN1bW1hcnk+ZXJyb3IgaGFuZGxpbmc8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj50aGUgQVBJIHVzZWQgdG8gcmVwb3J0IGVycm9ycyA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX0FUVFJJQlVURV9WQUxVRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBUkVOVFJFRl9OT19QQVJFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRUlTQ09OTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1ZBTFVFX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfSU1QT1JUX1NDSEVNQV9OT1RfVVJJJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfRUxFTV9OT05BTUVfTk9SRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfTk9UX0RURCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfSU1QT1JUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfVU5LTk9XTl9GVU5DX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9ET0NVTUVOVF9TVEFSVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQUdfUFJPUFNfQ09SUkVDVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9OT1RfU1RBTkRBTE9ORScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9IVFRQX1VTRV9JUCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfWE1MREVDTF9OT1RfU1RBUlRFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0RPQ1VNRU5UX0VMRU1FTlRfTUlTU0lORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0VMRU1FTlRfQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzFfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fU0NIRU1BU19DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTFRfSU5fQVRUUklCVVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hJTkNMVURFX0VOVElUWV9ERUZfTUlTTUFUQ0gnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0FWRV9OT1RfVVRGOCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfR1RfUkVRVUlSRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBUUl9FWFRSQV9PQkpFQ1RTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX1VTRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19VTktOT1dOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfSU5URVJMRUFWRV9FTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRUNISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfTkFNRV9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9DT05EU0VDX05PVF9TVEFSVEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYQ09OVEVOVF9DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VJTlRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9YTUxOU19OQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfQVRUUklCVVRFX05PT1AnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9SRURFRklORURfR1JPVVAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTVBPUlRfTkFNRVNQQUNFX05PVF9VUkknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0NIQVJSRUZfSU5fRVBJTE9HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9JRF9TVUJTRVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9GQUlMRURfQlVJTERfSU1QT1JUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSR1JQX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQVFJfQ0hJTERTRVFfU1RBUlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fRFREJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05PVF9BVFRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9BVFRSSUJVVEVfREVGQVVMVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX01PRFVMRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0VYVFJBQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0VMRU1fQ09OVEVOVF9FTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1dBUk5fVU5MT0NBVEVEX1NDSEVNQScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FTUxJTksnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfWCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9QSV9OT1RfU1RBUlRFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1NUQVJUX0NPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0dST1VQX0FUVFJfQ09ORkxJQ1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9FTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRE9DVU1FTlRfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfUkVDVVJTSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfRkFDRVRfVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9SRVNUUklDVElPTl9OT05BTUVfTk9SRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSTE4Tl9OT19PVVRQVVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfRk9VTkRfQVRUUklCVVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWV9MT09QJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VJTlBST0dSRVNTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfUkVERUZJTkVEX05PVEFUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0hUTUxfU1RSVUNVUkVfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX0lOVkFMSURfREVGQVVMVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX1NDSEVNQVRST05WJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9FTVBUWV9OT1RBVElPTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0VMRU1FTlRfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PVF9VUkknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9JTlZBTElEX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFVFlQRV9DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfUEVSRUZfQVRfRU9GJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9OT1RfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVRfU1RBUlRfTElTVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTFRfUkVRVUlSRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1RfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfQVRUTElTVF9OT1RfU1RBUlRFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfUENEQVRBX1JFUVVJUkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfSU5URVJOQUwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FTlRJVFlSRUZfSU5fRFREJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX05TTkFNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FQ0FOQ0VMRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9OT1RTSU1QTEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfTUlORVhDTFVTSVZFX1ZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VBRERSSU5VU0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX0xJU1RfQ0hJTEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX1VOS05PV05fSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRURPTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19OT1RfRUxFTV9ERUNMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfREVGSU5FX0NSRUFURV9GQUlMRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9JTlZBTElEX1VSSScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9MSVNUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfRVhDRVBUX05PX0NPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9FWFRFUk5BTFJFRl9FTVRQWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfU1BBQ0VfUkVRVUlSRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfTUFYTEVOR1RIX1ZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9ESUZGRVJFTlRfUFJFRklYJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfTk9UREVURVJNSU5JU1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX0VYVEVOU0lPTl9DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX01JU1NJTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRUZBVUxUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hJTkNMVURFX1hQVFJfRkFJTEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fRlRQJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFSRU5UUkVGX0NSRUFURV9GQUlMRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1JFU0VSVkVEX1hNTF9OQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzNfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FQkFETVNHJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQVFJfUkVTT1VSQ0VfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9BVFRSX0NPTkZMSUNUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9FTEVNX1JFREVGSU5FRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YSU5DTFVERV9VTktOT1dOX0VOQ09ESU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NBVEFMT0dfUFJFRkVSX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9QRVJFRl9TRU1JQ09MX01JU1NJTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVFlQRV9BTkRfU1VCVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX05PX1hNTE5TJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VOT1RESVInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0FWRV9DSEFSX0lOVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWVJFRl9OT19OQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9JRF9GSVhFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0FSX05TX0NPTFVNTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRVhUUkFfQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fU0VRVUVOQ0VfQ0hJTEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfR1JPVVAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0xJVEVSQUxfTk9UX1NUQVJURUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTlZBTElEX1JFRl9BTkRfU1VCVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0VMRU1fVEVYVF9DT05GTElDVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19UWVBFXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05PX0RJQ1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfWFBUUl9SRVNVTFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRU5YSU8nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfRlJBR01FTlRfSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9IVFRQJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9OT1RBVElPTl9SRURFRklORUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0FSX0xBTkdfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9TRVBBUkFUT1JfUkVRVUlSRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YSU5DTFVERV9GQUxMQkFDS19OT1RfSU5fSU5DTFVERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0FUVFJJQlVURV9DT05URU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9YTUxJRF9UWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfSU5URVJMRUFWRV9BREQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX0FUVFJJQlVURV9SRURFRklORUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9VTktOT1dOX0FUVFJJQlVURScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1BVQklEX1JFUVVJUkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VOT1RTT0NLJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX1NUQVJUX0dST1VQJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfTk9UQUxMT1dFRF9OT1RfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9QUkVGSVhfVU5ERUZJTkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX0FUVFJfRUxFTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZUUF9BQ0NOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX1NUQVJUX0RBVEEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRU5PRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fQzE0TicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FSU8nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX05PVF9QQ0RBVEEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfQ09NQklOQVRJT04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVJBTV9GT1JCSURERU4nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX1BST0NFU1NDT05URU5UX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fV1JJVEVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX0FOWU5BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWVJFRl9JTl9QUk9MT0cnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfSURDJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VOT1RUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1dBUk5fU0tJUF9TQ0hFTUEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX1VOS05PV05fTk9UQVRJT04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9EQVRBVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfV0FSTklORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0FUVFJGT1JNREVGQVVMVF9WQUxVRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FSVNESVInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfTVVMVElQTEVfUk9PVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fVU5JT05fQ0hJTEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfTUVNT1JZX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfTk9ST09UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1JFREVDTF9QUk9IJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzJfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfVU5DTE9TRURfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfRk9VTkRfTk9UQVRJT04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfTk9fTkVYVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19OT1RfQVRUUl9ERUNMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05PX1BBUkVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRU5PTENLJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9DSE9JQ0VfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FTlRJVFlSRUZfU0VNSUNPTF9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9NVUxUSVBMRV9JRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX1hQQVRIJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1RSRUVfSU5WQUxJRF9ERUMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9FWFRFTlNJT05fTk9fQkFTRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF81JyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfRk9VTkRfRE9DVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJJQlVURV9HUk9VUCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX05PX1hTSScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfTk9fTkFNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfQ09ORFNFQ19OT1RfRklOSVNIRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfRk9VTkRfUEknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VRVUFMX1JFUVVJUkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfSU5WQUxJRF9XSElURV9TUEFDRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9EVERfVU5LTk9XTl9BVFRSSUJVVEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfSU5URVJMRUFWRV9DUkVBVEVfRkFJTEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VBR0FJTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTk9UQVRJT05fTk9UX1NUQVJURUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX0VOVElUWV9UWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9HUkFNTUFSX0NPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlRQX1VSTF9TWU5UQVgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX05PTkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhUWVBFX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQQVRIX05VTUJFUl9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9TVEFSVF9PTkVNT1JFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9DT05EU0VDX0lOVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfSU5DTFVERV9JTl9JTkNMVURFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FTlRJVFlSRUZfSU5fRVBJTE9HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfR1JBTU1BUl9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfR1JBTU1BUl9OT19TVEFSVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1dJTERDQVJEX0lOVkFMSURfTlNfTUVNQkVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX0xJU1RfSU5URVJMRUFWRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9SRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9JMThOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FTUZJTEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9FTVBUWV9OT1RfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1ZFUlNJT05fTUlTU0lORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19OT19JTlBVVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19NSU5MRU5HVEhfVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfV0lMRENBUkQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fV1JJVEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWV9QRV9JTlRFUk5BTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9EVERfWE1MSURfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfTk9UX05TX0RFQ0wnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRUxFTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19ORVRXT1JLX0FUVEVNUFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfTU9EVUxFX0NMT1NFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX1NUQVJUX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YSU5DTFVERV9URVhUX0ZSQUdNRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfRkFJTEVEX0xPQUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0FUVFJJQlVURV9XSVRIT1VUX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQVFJfU1lOVEFYX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9UWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX1dST05HX0RPQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9OU19FUlJfWE1MX05BTUVTUEFDRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9OU05BTUVfTk9fTlMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX0lOQ0xVREVfQ0hJTEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19GT1VORF9FTEVNRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFSRU5UUkVGX05BTUVfSU5WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9OU19FUlJfUU5BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX05PVEFUSU9OX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8zJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0kxOE5fTk9fTkFNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0VYQ0VQVF9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fQUxMX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9NSVhFRF9DT1JSVVBUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9FTEVNRk9STURFRkFVTFRfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSTE4Tl9FWENFU1NfSEFORExFUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0RBVEFfQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfU1RSSU5HX05PVF9TVEFSVEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfRVhDRVBUX01VTFRJUExFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VERUFETEsnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0FUVFJJQlVURV9OT1RfRklOSVNIRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfTElTVF9JVEVNVFlQRV9PUl9TSU1QTEVUWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VJTlZBTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FTkFNRVRPT0xPTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9FWFRFUk5BTF9SRUZfRkFJTFVSRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9TVEFSVF9URVhUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05PX0RPQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9EVERfSU5WQUxJRF9DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19QQVRURVJOX1ZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfVFlQRV9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9UQUdfTkFNRV9NSVNNQVRDSCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRU5DT0RJTkdfTkFNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX01JU0MnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRUNPTk5SRUZVU0VEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9YTUxERUNMX05PVF9GSU5JU0hFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX0ZPVU5EX0VOVElUWVJFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YSU5DTFVERV9CVUlMRF9GQUlMRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1BFUkVGX05PX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWVJFRl9BVF9FT0YnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9OT0FUVFJfTk9SRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9BVFRSSUJVVEVfQ0hJTERSRU4nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NBVkVfTk9fRE9DVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfUEVSRUZfSU5fRVBJTE9HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV80JyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF80JyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9VUklfRlJBR01FTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRVNQSVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9OT19ET0MnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9OT1RfU0NIRU1BJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fU0NIRU1BU1YnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9TQ0hFTUFTUCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfM18xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTUlYRURfTk9UX0ZJTklTSEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9TVEFOREFMT05FX1dISVRFX1NQQUNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FTk9URU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9XUk9OR0VMRU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9UWVBFX05PVF9GT1VORCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19CVUZGRVJfRlVMTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF82JyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9DT05URU5UX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9NRU1CRVJfVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX05PUk9PVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9UWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9DREFUQV9OT1RfRklOSVNIRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfVFlQRV8zXzFfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05TX0FOQ0VTVE9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9ET0NVTUVOVF9FTkQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWV9OT1RfU1RBUlRFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTlVNRVJBVElPTl9WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0cnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NBVkVfVU5LTk9XTl9FTkNPRElORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfQ09ORFNFQ19JTlZBTElEX0tFWVdPUkQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9OT1RZUEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX05PX01FTU9SWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX0lPJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0hUTUxfVU5LTk9XTl9UQUcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfTkFNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9TVEFSVF9BVFRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX1dST05HX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9OT1RFTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTk1UT0tFTl9SRVFVSVJFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FUk9GUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FWERFVicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YSU5DTFVERV9OT19GQUxMQkFDSycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1VSSV9GUkFHTUVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX01FTU9SWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTUlTU0lOR19FTkNPRElORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0VMRU1FTlRfQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1VOS05PV05fVFlQRV9MSUInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YUEFUSF9FWFBSRVNTSU9OX09LJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0hUVFBfVU5LTk9XTl9IT1NUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FTlRJVFlfTk9UX0ZJTklTSEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9OT19EVEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVRfT05FTU9SRV9HUk9VUF9BVFRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9WQUxVRV9SRVFVSVJFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9MSVNUX1RFWFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9VUklfTk9UX0FCU09MVVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5JT05fTk9UX0VYUFJFU1NJQkxFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0FUVFInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlRQX1BBU1ZfQU5TV0VSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9WRVJTSU9OX01JU01BVENIJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfSU5WQUxJRF9CT09MRUFOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX0VMRU1fREVGQVVMVF9OQU1FU1BBQ0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9SRUdFWFBfSU5WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DMTROX0NSRUFURV9TVEFDSycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fQU5ZQVRUUklCVVRFX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX1JFTEFYTkdWJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX0FOWU5BTUVfRVhDRVBUX0FOWU5BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfRU5USVRZX1RZUEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DT05TVFJVQ1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9FWFRFUk5BTFJFRl9SRUNVUlNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfQ0hPSUNFX0NPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9VTktOT1dOX0NPTUJJTkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9TVEFSVF9FTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FTkNPREVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dBUl9OU19VUkknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TUkNfVU5JT05fTUVNQkVSVFlQRVNfT1JfU0lNUExFVFlQRVMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9BVFRSR1JQX05PTkFNRV9OT1JFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0FUVFJVTktOT1dOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VOT0RFVicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9QQVJTRVInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQzE0Tl9DUkVBVEVfQ1RYVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YSU5DTFVERV9URVhUX0RPQ1VNRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9QUkVGSVgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfSU5WQUxJRF9UWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05TX1NDT1BFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0ZMVVNIJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NBVEFMT0dfRU5UUllfQlJPS0VOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19MRU5HVEhfVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX1NUQU5EQUxPTkVfREVGQVVMVEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9VTktOT1dOX0VMRU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0FSX1NQQUNFX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX05PVEFUSU9OX05PX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX1NUQVJURUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0NPTU1FTlRfTk9UX0ZJTklTSEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMV8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VNU0dTSVpFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fQ0FUQUxPRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0FUVFJJTlZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX05TX0VSUl9FTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX0hUTUwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTlZBTElEX01BWE9DQ1VSUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fUkVTVFJJQ1RJT05fQ0hJTEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9FTEVNRU5UX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVRfU1RBUlRfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfSU5WQUxJRF9BUklUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0VSUk9SX1RZUEVfTElCJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQVFJfRVZBTF9GQUlMRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX05PX1JPT1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTVBPUlRfUkVERUZJTkVfTlNOQU1FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9VTktOT1dOX0VOQ09ESU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUkVGX05PX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQzE0Tl9VTktOT1dfTk9ERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1JFRl9BTkRfU1VCVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9PTkVNT1JFX0lOVEVSTEVBVkVfQVRUUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DMTROX0lOVkFMSURfTk9ERScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1RFWFRfRVhQRUNURUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9OT1JPTExCQUNLJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfRkFDRVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0lOVkFMSURfREVDX0NIQVJSRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9ORUVEX0NPTUJJTkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9OT1RUT1BMRVZFTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DQVRBTE9HX01JU1NJTkdfQVRUUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9MSVNUX0xJU1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfVFlQRV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfRVhDRVBUX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0lOVEVSTEVBVkVfTk9fQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfSU5WQUxJRF9IRVhfQ0hBUlJFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPTVBMRVhUWVBFX05PTkFNRV9OT1JFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfQ0hBUlJFRl9JTl9EVEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRU5GSUxFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0kxOE5fQ09OVl9GQUlMRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfV1JPTkdfUEFSRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFSRU5UUkVGX05PX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRVBFUk0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRU5FVFVOUkVBQ0gnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0NIQVJSRUZfQVRfRU9GJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VOT01FTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FTk9TUEMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9OT05FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfVFlQRV9WQUxVRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX1JFR0VYUCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0RFRl9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfVFJFRV9VTlRFUk1JTkFURURfRU5USVRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9VUklfUkVRVUlSRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9UUkVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FWFRfRU5USVRZX1NUQU5EQUxPTkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfVFJFRV9JTlZBTElEX0hFWCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DMTROX1JFUVVJUkVTX1VURjgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWV9QUk9DRVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fWElOQ0xVREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DVkNfU0lNUExFX1RZUEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9HUkFNTUFSX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05PVF9OQ05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9FTEVNRU5UX05PX0NPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfTk9fSFJFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YUEFUSF9JTlZBTElEX09QRVJBTkQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRU5PRVhFQycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9MSVNUX1JFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YSU5DTFVERV9IUkVGX1VSSScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0ZBSUxFRF9QQVJTRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0hSRUZfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0FUVFJfTk9OQU1FX05PUkVGJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0lOVEVSU0VDVElPTl9OT1RfRVhQUkVTU0lCTEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfTU9EVUxFX09QRU4nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0VOVElUWV9DSEFSX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9VTktOT1dOX0VOVElUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBUlNFX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9OT1RBVElPTl9QUk9DRVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfWE1MX05TJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9NSVNQTEFDRURfQ0RBVEFfRU5EJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX09ORU1PUkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX1JPT1RfTkFNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1JFRl9OT1RfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfTk9fSFJFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fQ0hPSUNFX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfRUxFTV9DT05URU5UX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfSEFWRURFRkFVTFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSTE4Tl9OT19IQU5ETEVSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfTUlTU0lOR19IUkVGJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9QSV9OT1RfRklOSVNIRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1VOS05PV05fVkVSU0lPTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX1JFTEFYTkdQJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fVkFMSUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX0ZPVU5EX1RFWFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX05PX0RURCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1NUQVJUX0NIT0lDRV9BTkRfSU5URVJMRUFWRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9GUk9NX1hTTFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVRfTElTVF9BVFRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VBQ0NFUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVRST05WX0FTU0VSVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0lOVkFMSURBVFRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfUkVDVVJTSVZFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0hUVFBfVVJMX1NZTlRBWCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0dST1VQX05PTkFNRV9OT1JFRicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9EVERfRFVQX1RPS0VOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80JyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfUzRTX0VMRU1fTUlTU0lORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNV8xXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfRk9VTkRfRlJBR01FTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX0xPQURfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfVU5LTk9XTl9OT1RBVElPTl9DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NfUFJPUFNfQ09SUkVDVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19DVF8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfRU1QVFlfQ09OVEVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FQUxSRUFEWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FUkFOR0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRU5PU1lTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfTk9USElOR19UT19QQVJTRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfSU5WQUxJRF9DVFhUX1NJWkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfTk9fRUxFTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9YUEFUSF9FWFBSX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9fVVJJJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfREVGSU5FX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NIRUNLX05BTUVfTk9UX05VTEwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS18nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfTUFYRVhDTFVTSVZFX1ZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VQSVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfTk9UWVBFX05PUkVGJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfQVRUUklCVVRFX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfTUlTU0lOR19TSU1QTEVUWVBFX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fTE9BRF9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19OT1RfRU5USVRZX0RFQ0wnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9DUkVBVEVfRkFJTFVSRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FQkFERicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BSRUZJWF9VTkRFRklORUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0hZUEhFTl9JTl9DT01NRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX1JFU1RSSUNUSU9OX0JBU0VfT1JfU0lNUExFVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0lOQ0xVREVfRU1QVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9QQVJFTlRSRUZfTk9UX0VNUFRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfRkFDRVRfTk9fVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX05PVF9TVEFOREFMT05FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfU1RBUlRfTUlTU0lORycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9EVERfTk9fUFJFRklYJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0NBVEFMT0dfUkVDVVJTSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfVU5LTk9XTl9DT05TVFJVQ1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1VOUEFSU0VEX0VOVElUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fSU1QT1JUX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZUUF9FUFNWX0FOU1dFUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19OT1RfVVRGOCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRkFUQUwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9EVERfSURfUkVERUZJTkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1hQQVRIX0VOQ09ESU5HX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU1JDX0lOQ0xVREUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9OU05BTUVfQVRUUl9BTkNFU1RPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1NSQ19SRURFRklORScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1JFRl9DWUNMRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9BVFRSX0FUVFInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBUUl9VTktOT1dOX1NDSEVNRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9DSEVDSycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0VMRU1DT05UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfUkVGX0FORF9DT05URU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUEFUX1NUQVJUX0lOVEVSTEVBVkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9OT19FTEVNX05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfTk9fUFJFVicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1ZBTFVFX05PX0NPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX1NJTVBMRUNPTlRFTlRfQ0hJTEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfVFJFRV9OT1RfVVRGOCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FQUZOT1NVUFBPUlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FRkJJRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19GT1VORF9DT01NRU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JOR1BfUkVGX05BTUVfSU5WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9FTEVNX05BTUVTUEFDRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19PVVRTSURFX0RJQ1QnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8xJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0FSX0NBVEFMT0dfUEknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVHRVhQX0NPTVBJTEVfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfTUlOSU5DTFVTSVZFX1ZBTElEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfSVNBQlNUUkFDVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0RFRklORV9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9OU19ERUNMX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9JTlRFUk5BTF9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVFJPTlZfUkVQT1JUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9OQU1FU1BBQ0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfSU9fRUJVU1knIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9JTkNMVURFX1JFQ1VSU0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0lOVkFMSURfVVJJJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VTUkNIJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0ZST01fWFBPSU5URVInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1BFUkVGX0lOX1BST0xPRycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1RFWFRfSEFTX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfTk9UTklMTEFCTEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9SRURFRklORURfRUxFTUVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1JFRl9OT19ERUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF81JyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9JTlZBTElEX0NIQVJSRUYnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0lOVkFMSURfQ0hBUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0ZPUkVJR05fRUxFTUVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9NSVhFRF9OT1RfU1RBUlRFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19GT1VORF9DREFUQScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0lOVEVSTkFMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfSU5WQUxJREVMRU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQVUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfQ0hFQ0tfV1JPTkdfTkVYVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfVEFHX05PVF9GSU5JU0hFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTFRTTEFTSF9SRVFVSVJFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9BVFRSR1JPVVAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9XQVJOX0FUVFJfUE9JTlRMRVNTX1BST0gnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX0JBU0VfVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX1VOS05PV05fRUxFTV9DSElMRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9XQVJfVU5LTk9XTl9WRVJTSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0RURF9DT05URU5UX01PREVMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzJfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfT0snIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfTlNfRVJSX0NPTE9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1dBUl9FTlRJVFlfUkVERUZJTkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfU0lNUExFVFlQRV9OT05BTUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9VTktOT1dOX0dST1VQX0NISUxEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VOT1RTVVAnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfV0FSX05TX1VSSV9SRUxBVElWRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9OU19FUlJfQVRUUklCVVRFX1JFREVGSU5FRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FUlJfTkFNRV9SRVFVSVJFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9JT19FVElNRURPVVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9JTlZBTElEX0VOVU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUk5HUF9ERUZJTkVfTkFNRV9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX0ZPUkJJRERFTl9BVFRSSUJVVEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRlJPTV9PVVRQVVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9DSEVDS19XUk9OR19QUkVWJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0lPX0VFWElTVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9STkdQX1BBVF9MSVNUX0VMRU0nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BVl9VTkRFQ0xBUkVERUxFTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8yJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzMnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWElOQ0xVREVfSU5WQUxJRF9DSEFSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFcnJvclB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVycm9yTGV2ZWwnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJFcnJvcnMnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFcnJvckRvbWFpbicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEVycm9yJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbEVycm9yJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJWYWxpZGl0eUVycm9yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdlbmVyaWNFcnJvckZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2V0R2VuZXJpY0Vycm9yRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJQcmludEZpbGVJbmZvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEN0eHRSZXNldExhc3RFcnJvcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZXNldExhc3RFcnJvcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ29weUVycm9yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlclZhbGlkaXR5V2FybmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlckVycm9yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlcldhcm5pbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RydWN0dXJlZEVycm9yRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlc2V0RXJyb3InIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0TGFzdEVycm9yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEN0eHRHZXRMYXN0RXJyb3InIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3htbGV4cG9ydHMnPgorICAgICA8c3VtbWFyeT5tYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+bWFjcm9zIGZvciBtYXJraW5nIHN5bWJvbHMgYXMgZXhwb3J0YWJsZS9pbXBvcnRhYmxlLiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPklnb3IgWmxhdG92aWMgJmx0O2lnb3JAemxhdGtvdmljLmNvbSZndDsgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX1JFRU5UUkFOVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxDREVDTCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxQVUJWQVInIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0RMTF9JTVBPUlQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MQ0FMTCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxQVUJGVU4nIHR5cGU9J21hY3JvJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3htbG1lbW9yeSc+CisgICAgIDxzdW1tYXJ5PmludGVyZmFjZSBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3I8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5wcm92aWRlcyBpbnRlcmZhY2VzIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvciwgaW5jbHVkaW5nIGRlYnVnZ2luZyBjYXBhYmlsaXRpZXMuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWxsb2MnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWFsbG9jJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1hbGxvY0F0b21pYycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdERUJVR19NRU1PUlknIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWVtU3RyZHVwJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1lbVJlYWxsb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sSW5pdE1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNZW1GcmVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1lbU1hbGxvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNZW1EaXNwbGF5TGFzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNZW1HZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWVtb3J5RHVtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNYWxsb2NMb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWVtRGlzcGxheScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNZW1CbG9ja3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2NNZW1HZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyZHVwRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNZW1TaG93JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1hbGxvY0F0b21pY0xvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFsbG9jTG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENsZWFudXBNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWVtVXNlZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNZW1TZXR1cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFsbG9jRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxNYWxsb2NGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEdjTWVtU2V0dXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTWVtb3J5U3RyZHVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1lbVN0cmR1cExvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0neG1sbW9kdWxlJz4KKyAgICAgPHN1bW1hcnk+ZHluYW1pYyBtb2R1bGUgbG9hZGluZzwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPmJhc2ljIEFQSSBmb3IgZHluYW1pYyBtb2R1bGUgbG9hZGluZywgdXNlZCBieSBsaWJleHNsdCBhZGRlZCBpbiAyLjYuMTcgPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5Kb2VsIFcuIFJlZWQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX01PRFVMRV9MQVpZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX01PRFVMRV9MT0NBTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1vZHVsZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1vZHVsZVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1vZHVsZU9wdGlvbicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1vZHVsZUZyZWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTW9kdWxlU3ltYm9sJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE1vZHVsZU9wZW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTW9kdWxlQ2xvc2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3htbHJlYWRlcic+CisgICAgIDxzdW1tYXJ5PnRoZSBYTUxSZWFkZXIgaW1wbGVtZW50YXRpb248L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5BUEkgb2YgdGhlIFhNTCBzdHJlYW1pbmcgQVBJIGJhc2VkIG9uIEMjIGludGVyZmFjZXMuIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9GUkFHTUVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRVJfU0VWRVJJVFlfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVBREVSX1RZUEVfRUxFTUVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9URVhUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9OT05FJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1RFWFRSRUFERVJfTU9ERV9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9BVFRSSUJVVEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX1NFVkVSSVRZX1dBUk5JTkcnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfVFlQRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9XSElURVNQQUNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFQURFUl9UWVBFX05PVEFUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9TVUJTVF9FTlRJVElFUycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfVEVYVFJFQURFUl9NT0RFX0NMT1NFRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9QQVJTRVJfREVGQVVMVEFUVFJTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFQURFUl9UWVBFX0VOVElUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9SRUFERVJfVFlQRV9TSUdOSUZJQ0FOVF9XSElURVNQQUNFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFknIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX1ZBTElEQVRFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1RFWFRSRUFERVJfTU9ERV9SRUFESU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1RFWFRSRUFERVJfTU9ERV9FT0YnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUkVBREVSX1RZUEVfQ0RBVEEnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfUEFSU0VSX0xPQUREVEQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFBhcnNlclNldmVyaXRpZXMnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxQYXJzZXJQcm9wZXJ0aWVzJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlck1vZGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckxvY2F0b3JQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkZXJUeXBlcycgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld1RleHRSZWFkZXJGaWxlbmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyUmVhZFN0YXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWRlckZvckZpbGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJDdXJyZW50RG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJFeHBhbmQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclhtbExhbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVhZGVyRm9yRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWRlck5ld0lPJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJDbG9zZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJDb25zdEVuY29kaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclF1b3RlQ2hhcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyU2V0U2NoZW1hJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVySXNWYWxpZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdUZXh0UmVhZGVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckNvbnN0TmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyRGVwdGgnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclJlYWRTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlcklzRGVmYXVsdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkZXJOZXdXYWxrZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckNvbnN0UHJlZml4JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWRlcldhbGtlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlck5vZGVUeXBlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEZyZWVUZXh0UmVhZGVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJOYW1lJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJSZWFkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkZXJOZXdNZW1vcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVySGFzVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyQmFzZVVyaScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyTmV4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkZXJGb3JJTycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJQcmVmaXgnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckVycm9yRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkZXJGb3JGZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJMb2NhbE5hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclByZXNlcnZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJDdXJyZW50Tm9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkZXJOZXdEb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVhZGVyTmV3RmlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWFkZXJOZXdGZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlYWRlckZvck1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyU2V0dXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFJlYWRlclN0YW5kYWxvbmUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3htbHJlZ2V4cCc+CisgICAgIDxzdW1tYXJ5PnJlZ3VsYXIgZXhwcmVzc2lvbnMgaGFuZGxpbmc8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5iYXNpYyBBUEkgZm9yIGxpYnhtbCByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nIHVzZWQgZm9yIFhNTCBTY2hlbWFzIGFuZCB2YWxpZGF0aW9uLiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfRVhQX0NPVU5UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VYUF9FTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FWFBfU0VRJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VYUF9BVE9NJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX0VYUF9PUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9FWFBfRk9SQklEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVnRXhlY0N0eHRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBDdHh0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwTm9kZVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEV4cEN0eHRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBOb2RlVHlwZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ0V4ZWNDdHh0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwTm9kZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ2V4cCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ2V4cFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J2ZvcmJpZGRlbkV4cCcgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdlbXB0eUV4cCcgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdFeGVjQ2FsbGJhY2tzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ05ld0V4ZWNDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEV4cE5ld09yJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ0ZyZWVSZWdleHAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwUmVmJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFJlZ2V4cElzRGV0ZXJtaW5pc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVnRXhlY0VyckluZm8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVnRnJlZUV4ZWNDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEV4cEN0eHROYkNvbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwU3Vic3VtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdFeGVjUHVzaFN0cmluZzInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVnRXhlY05leHRWYWx1ZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwRXhwRGVyaXZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEV4cElzTmlsbGFibGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwRnJlZUN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwRHVtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBOZXdTZXEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sRXhwRnJlZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBOZXdSYW5nZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdleHBDb21waWxlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEV4cE5ld0F0b20nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sUmVnZXhwRXhlYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdFeGVjUHVzaFN0cmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBHZXRTdGFydCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBQYXJzZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBOZXdDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEV4cEdldExhbmd1YWdlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbEV4cFN0cmluZ0Rlcml2ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBDdHh0TmJOb2RlcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxFeHBNYXhUb2tlbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxSZWdleHBQcmludCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0neG1sc2F2ZSc+CisgICAgIDxzdW1tYXJ5PnRoZSBYTUwgZG9jdW1lbnQgc2VyaWFsaXplcjwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPkFQSSB0byBzYXZlIGRvY3VtZW50IG9yIHN1YnRyZWUgb2YgZG9jdW1lbnQgPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NBVkVfWEhUTUwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0FWRV9BU19YTUwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0FWRV9OT19FTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQVZFX05PX1hIVE1MJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NBVkVfTk9fREVDTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQVZFX0FTX0hUTUwnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0FWRV9GT1JNQVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlT3B0aW9uJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2F2ZUN0eHQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlQ3R4dFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNhdmVUb0lPJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNhdmVUb0ZkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNhdmVDbG9zZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlU2V0QXR0ckVzY2FwZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlVG9CdWZmZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2F2ZVRvRmlsZW5hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2F2ZUZsdXNoJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNhdmVEb2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2F2ZVNldEVzY2FwZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTYXZlVHJlZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0neG1sc2NoZW1hcyc+CisgICAgIDxzdW1tYXJ5PmluY29tcGxldGUgWE1MIFNjaGVtYXMgc3RydWN0dXJlIGltcGxlbWVudGF0aW9uPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+aW50ZXJmYWNlIHRvIHRoZSBYTUwgU2NoZW1hcyBoYW5kbGluZyBhbmQgc2NoZW1hIHZhbGlkaXR5IGNoZWNraW5nLCBpdCBpcyBpbmNvbXBsZXRlIHJpZ2h0IG5vdy4gPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX05PVE5JTExBQkxFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX09LJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX05PUk9PVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9YWFgnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1ZBTF9WQ19JX0NSRUFURScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9JU0FCU1RSQUNUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX0FUVFJVTktOT1dOJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX1dST05HRUxFTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9OT1RERVRFUk1JTklTVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9JTlRFUk5BTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9NSVNTSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX0lOVkFMSURBVFRSJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX0NPTlNUUlVDVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9GQUNFVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9OT1RZUEUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FUlJfVkFMVUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FUlJfTk9ST0xMQkFDSycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9OT1RUT1BMRVZFTCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9OT1RFTVBUWScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9JTlZBTElERUxFTScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9BVFRSSU5WQUxJRCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFTX0VSUl9FWFRSQUNPTlRFTlQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BU19FUlJfTk9UU0lNUExFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX1VOREVDTEFSRURFTEVNJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX0hBVkVERUZBVUxUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSX0VMRU1DT05UJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQVNfRVJSXycgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVBhcnNlckN0eHQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZE9wdGlvbicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVNBWFBsdWdQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFTQVhQbHVnU3RydWN0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hVmFsaWRDdHh0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hUGFyc2VyQ3R4dFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbGlkRXJyb3InIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZEN0eHQnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVNBWFVucGx1ZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFQYXJzZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFOZXdQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUlzVmFsaWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hU0FYUGx1ZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFTZXRWYWxpZEVycm9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbGlkYXRlRmlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZGF0ZURvYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFGcmVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYU5ld01lbVBhcnNlckN0eHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVNldFBhcnNlckVycm9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUR1bXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hTmV3VmFsaWRDdHh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICA8c3VtbWFyeT5pbXBsZW1lbnRhdGlvbiBvZiBYTUwgU2NoZW1hIERhdGF0eXBlczwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPm1vZHVsZSBwcm92aWRpbmcgdGhlIFhNTCBTY2hlbWEgRGF0YXR5cGVzIGltcGxlbWVudGF0aW9uIGJvdGggZGVmaW5pdGlvbiBhbmQgdmFsaWRpdHkgY2hlY2tpbmcgPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUnIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFHZXRDYW5vblZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFDb2xsYXBzZVN0cmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYU5ld0ZhY2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbHVlQXBwZW5kJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUNvbXBhcmVWYWx1ZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFHZXRWYWxUeXBlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hRnJlZUZhY2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFGcmVlVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hVmFsdWVHZXROZXh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hQ29weVZhbHVlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hTmV3UU5hbWVWYWx1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFDbGVhbnVwVHlwZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hR2V0QnVpbHRJblR5cGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU2NoZW1hSW5pdFR5cGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTY2hlbWFDaGVja0ZhY2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSd4bWxzdHJpbmcnPgorICAgICA8c3VtbWFyeT5zZXQgb2Ygcm91dGluZXMgdG8gcHJvY2VzcyBzdHJpbmdzPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dHlwZSBhbmQgaW50ZXJmYWNlcyBuZWVkZWQgZm9yIHRoZSBpbnRlcm5hbCBzdHJpbmcgaGFuZGxpbmcgb2YgdGhlIGxpYnJhcnksIGVzcGVjaWFsbHkgVVRGOCBwcm9jZXNzaW5nLiA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdCQURfQ0FTVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxDaGFyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyY21wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENoYXJTdHJuZHVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cmNhc2VzdHInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyY2F0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0clByaW50ZicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTdHJzdHInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVVRGOFNpemUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyUUVxdWFsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cm5jYXROZXcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVVRGOFN0cnBvcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTdHJkdXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hhclN0cmR1cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTdHJjaHInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RybGVuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cm5jbXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3Ryc3ViJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cm5jYXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sR2V0VVRGOENoYXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sU3RyY2FzZWNtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTdHJuZHVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0clZQcmludGYnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVVRGOFN0cnNpemUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sQ2hlY2tVVEY4JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFN0cm5jYXNlY21wJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVURjhTdHJsZW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVVRGOFN0cnN1YicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxTdHJFcXVhbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVVEY4Q2hhcmNtcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVVEY4U3RybmR1cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVVEY4U3RybG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSd4bWx1bmljb2RlJz4KKyAgICAgPHN1bW1hcnk+VW5pY29kZSBjaGFyYWN0ZXIgQVBJczwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPkFQSSBmb3IgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIEFQSXMgIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBVQ1MgZGVzY3JpcHRpb24gZmlsZXMgb2YgdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlPC9kZXNjcmlwdGlvbj4KKyAgICAgPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQgPC9hdXRob3I+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNCbG9ja0VsZW1lbnRzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQm9wb21vZm8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNEaW5nYmF0cycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNUaWJldGFuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzWWlSYWRpY2FscycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0Jhc2ljTGF0aW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRTYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdFNvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTGltYnUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRTbScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdFNrJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzS2htZXJTeW1ib2xzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTW9uZ29saWFuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTWFsYXlhbGFtJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1RoYWFuYScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc015YW5tYXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNUYWdzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNUZWx1Z3UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNMb3dTdXJyb2dhdGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzT3NtYW55YScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1N5cmlhYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0V0aGlvcGljJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQm94RHJhd2luZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNHcmVla2FuZENvcHRpYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0thbm5hZGEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdENzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0Q2YnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0Q2MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRDbycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NoZXJva2VlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzR290aGljJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzS2htZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc09naGFtJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzT3JpeWEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQmxvY2snIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzSGFuZ3VsSmFtbycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1RhZ2JhbndhJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ3lyaWxsaWMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNBcnJvd3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDb250cm9sUGljdHVyZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdE5sJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0Tm8nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQmVuZ2FsaScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1ByaXZhdGVVc2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNNdXNpY2FsU3ltYm9scycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNEZXZhbmFnYXJpJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0InIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNOdW1iZXJGb3JtcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRQYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdFBmJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0UGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRQaScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdFBvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRQcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTGFvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQnJhaWxsZVBhdHRlcm5zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzRGVzZXJldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0THUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRMdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1lpU3lsbGFibGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzU2hhdmlhbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdExvJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0TG0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRMbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNVZ2FyaXRpYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNUYW1pbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdEMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXROJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0TCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdE0nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0UycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdFAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNTaW5oYWxhJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzR2VvcmdpYW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRaJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzSVBBRXh0ZW5zaW9ucycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0thbmd4aVJhZGljYWxzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzR3JlZWsnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRQZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0hhbnVub28nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNBcm1lbmlhbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9ucycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0FyYWJpYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0hlYnJldycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc09sZEl0YWxpYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdFpwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0WnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0InIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRabCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1RhZ2Fsb2cnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNTcGVjaWFscycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0d1amFyYXRpJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzS2F0YWthbmEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTGF0aW5FeHRlbmRlZEEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNCdWhpZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzVGFpTGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNHdXJtdWtoaScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0N1cnJlbmN5U3ltYm9scycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0thbmJ1bicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc1RoYWknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNSdW5pYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdE5kJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNIaXJhZ2FuYScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxVQ1NJc0NhdE1uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFVDU0lzQ2F0TWMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVUNTSXNDYXRNZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0neG1sdmVyc2lvbic+CisgICAgIDxzdW1tYXJ5PmNvbXBpbGUtdGltZSB2ZXJzaW9uIGluZm9ybWF0aW9uczwvc3VtbWFyeT4KKyAgICAgPGRlc2NyaXB0aW9uPmNvbXBpbGUtdGltZSB2ZXJzaW9uIGluZm9ybWF0aW9ucyBmb3IgdGhlIFhNTCBsaWJyYXJ5IDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9WRVJTSU9OX0VYVFJBJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9NT0RVTEVTX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0xFR0FDWV9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9SRUFERVJfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfVEhSRUFEX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0RPVFRFRF9WRVJTSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9JU084ODU5WF9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9ERUJVR19FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9YSU5DTFVERV9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0FUVFJJQlVURV9VTlVTRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0RPQ0JfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfUFVTSF9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9TQVgxX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nV0lUSE9VVF9UUklPJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0hUVFBfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfT1VUUFVUX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nV0lUSF9UUklPJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9ERUJVR19SVU5USU1FJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9WRVJTSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9YUFRSX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX1ZFUlNJT05fU1RSSU5HJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9DQVRBTE9HX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0FUVFJfQUxMT0NfU0laRScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfUkVHRVhQX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX01PRFVMRV9FWFRFTlNJT04nIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0lDT05WX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX0hUTUxfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfVU5JQ09ERV9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9GVFBfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfWkxJQl9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9XUklURVJfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfQzE0Tl9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9TQ0hFTUFTX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nREVCVUdfTUVNT1JZX0xPQ0FUSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9BVFRSX0ZPUk1BVCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfVEVTVF9WRVJTSU9OJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9YUEFUSF9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0xJQlhNTF9FWFBSX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX1ZBTElEX0VOQUJMRUQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nTElCWE1MX1RSRUVfRU5BQkxFRCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdMSUJYTUxfUEFUVEVSTl9FTkFCTEVEJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbENoZWNrVmVyc2lvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgICAgPGZpbGUgbmFtZT0neG1sd3JpdGVyJz4KKyAgICAgPHN1bW1hcnk+dGV4dCB3cml0aW5nIEFQSSBmb3IgWE1MPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+dGV4dCB3cml0aW5nIEFQSSBmb3IgWE1MIDwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+QWxmcmVkIE1pY2thdXRzY2ggJmx0O2FsZnJlZEBtaWNrYXV0c2NoLmRlJmd0OyA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlRG9jVHlwZScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJTdGFydERvY3VtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJFbmRQSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxGcmVlVGV4dFdyaXRlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyRW5kQ29tbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHlDb250ZW50cycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyU2V0SW5kZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJFbmREb2N1bWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyRW5kQ0RBVEEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJFbmREVERFbnRpdHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3VGV4dFdyaXRlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclN0YXJ0UEknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlckVuZERURCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJFbmRFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJTdGFydENEQVRBJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbE5ld1RleHRXcml0ZXJGaWxlbmFtZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZVBJJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyRmx1c2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclN0YXJ0RFREJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOZXdUZXh0V3JpdGVyRG9jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3VGV4dFdyaXRlclRyZWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTmV3VGV4dFdyaXRlck1lbW9yeScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlUmF3JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlRFREJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHknIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3hwYXRoJz4KKyAgICAgPHN1bW1hcnk+WE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb248L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5BUEkgZm9yIHRoZSBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbiAgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb24gWFBhdGggaXMgYSBsYW5ndWFnZSBmb3IgYWRkcmVzc2luZyBwYXJ0cyBvZiBhbiBYTUwgZG9jdW1lbnQsIGRlc2lnbmVkIHRvIGJlIHVzZWQgYnkgYm90aCBYU0xUIGFuZCBYUG9pbnRlcjwvZGVzY3JpcHRpb24+CisgICAgIDxhdXRob3I+RGFuaWVsIFZlaWxsYXJkIDwvYXV0aG9yPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTm9kZVNldEdldExlbmd0aCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfQ0hFQ0tOUycgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYTUxfWFBBVEhfTk9WQVInIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlU2V0SXRlbScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5vZGVTZXRJc0VtcHR5JyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hQQVRIX05VTUJFUl9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hQQVRIX0JPT0xFQU4nIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfVU5DTE9TRURfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9JTlZBTElEX0NIQVJfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hQQVRIX0VYUFJFU1NJT05fT0snIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9OT0RFU0VUJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBUUl9TVUJfUkVTT1VSQ0VfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9WQVJJQUJMRV9SRUZfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9FTkNPRElOR19FUlJPUicgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hQVFJfUkVTT1VSQ0VfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9OVU1CRVInIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9QT0lOVCcgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hQQVRIX1VTRVJTJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfVU5LTk9XTl9GVU5DX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfSU5WQUxJRF9DVFhUX1NJWkUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9SQU5HRScgdHlwZT0nZW51bScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hQVFJfU1lOVEFYX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfTE9DQVRJT05TRVQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9JTlZBTElEX0NUWFQnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9JTlZBTElEX0FSSVRZJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfU1RSSU5HJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1InIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9YU0xUX1RSRUUnIHR5cGU9J2VudW0nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdYUEFUSF9FWFBSX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfSU5WQUxJRF9UWVBFJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfSU5WQUxJRF9DVFhUX1BPU0lUSU9OJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfVU5ERUZJTkVEJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfTUVNT1JZX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfVU5GSU5JU0hFRF9MSVRFUkFMX0VSUk9SJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBBVEhfSU5WQUxJRF9PUEVSQU5EJyB0eXBlPSdlbnVtJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhPYmplY3RUeXBlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhWYXJpYWJsZVB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ29udGV4dCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRXJyb3InIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEZ1bmN0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhUeXBlUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhUeXBlJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sTm9kZVNldFB0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRnVuY1B0cicgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ29tcEV4cHJQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE9iamVjdCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ29tcEV4cHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENvbnRleHRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIHR5cGU9J3R5cGVkZWYnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxOb2RlU2V0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhWYXJpYWJsZScgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoT2JqZWN0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhBeGlzJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhBeGlzUHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhQYXJzZXJDb250ZXh0JyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbFhQYXRoRnVuY3QnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxYUGF0aFZhcmlhYmxlJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sWFBhdGhQYXJzZXJDb250ZXh0JyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sWFBhdGhUeXBlJyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSdfeG1sWFBhdGhPYmplY3QnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxYUGF0aENvbnRleHQnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxYUGF0aEF4aXMnIHR5cGU9J3N0cnVjdCcvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J194bWxOb2RlU2V0JyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5BTicgdHlwZT0ndmFyaWFibGUnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFBJTkYnIHR5cGU9J3ZhcmlhYmxlJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOSU5GJyB0eXBlPSd2YXJpYWJsZScvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhGdW5jTG9va3VwRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhJc05hTicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENvbnRleHRTZXRDYWNoZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENvbnZlcnRTdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhJc0luZicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE9yZGVyRG9jRWxlbXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlU2V0Q3JlYXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhBeGlzRnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENhc3RUb051bWJlcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhGcmVlT2JqZWN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRXZhbFByZWRpY2F0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEZyZWVDb250ZXh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoT2JqZWN0Q29weScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEV2YWwnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ29tcGlsZWRFdmFsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRXZhbEV4cHJlc3Npb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhJbml0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ29udmVydEJvb2xlYW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDb252ZXJ0RnVuYycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEZ1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ21wTm9kZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDYXN0VG9TdHJpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDdHh0Q29tcGlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEV2YWxGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhGcmVlTm9kZVNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEZyZWVDb21wRXhwcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5ld0NvbnRleHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDb252ZXJ0TnVtYmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ29tcGlsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDYXN0VG9Cb29sZWFuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgIDwvZmlsZT4KKyAgICA8ZmlsZSBuYW1lPSd4cGF0aEludGVybmFscyc+CisgICAgIDxzdW1tYXJ5PmludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uPC9zdW1tYXJ5PgorICAgICA8ZGVzY3JpcHRpb24+aW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb24gdXNlZCB0byBidWlsZCBuZXcgbW9kdWxlcyBvbiB0b3Agb2YgWFBhdGggbGlrZSBYUG9pbnRlciBhbmQgWFNMVCA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFN0YWNrSXNFeHRlcm5hbCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J1hQX0VSUk9SMCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFNldFR5cGVFcnJvcicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFJldHVyblRydWUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhSZXR1cm5Cb29sZWFuJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoR2V0Q29udGV4dE5vZGUnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nQ0FTVF9UT19OVU1CRVInIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nQ0hFQ0tfQVJJVFknIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nQ0hFQ0tfVFlQRTAnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nQ0FTVF9UT19TVFJJTkcnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhSZXR1cm5FeHRlcm5hbCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFN0YWNrSXNOb2RlU2V0JyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ2hlY2tFcnJvcicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFNldEVycm9yJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0NIRUNLX0VSUk9SJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmV0dXJuU3RyaW5nJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0NBU1RfVE9fQk9PTEVBTicgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFNldEFyaXR5RXJyb3InIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nQ0hFQ0tfVFlQRScgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFJldHVybkZhbHNlJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmV0dXJuTnVtYmVyJyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J0NIRUNLX0VSUk9SMCcgdHlwZT0nbWFjcm8nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEdldERvY3VtZW50JyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoR2V0RXJyb3InIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nWFBfRVJST1InIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhFbXB0eU5vZGVTZXQnIHR5cGU9J21hY3JvJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhSZXR1cm5Ob2RlU2V0JyB0eXBlPSdtYWNybycvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTm9kZVNldE1lcmdlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTnVtYmVyRnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOc0xvb2t1cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5ld05vZGVTZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlU2V0UmVtb3ZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTmV3Tm9kZVNldExpc3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhQb3BCb29sZWFuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTmV3U3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXh0Q2hpbGQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFBvcFN0cmluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQ29tcGFyZVZhbHVlcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENvbmNhdEZ1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTm9kZVNldENvbnRhaW5zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoZXJyb3InIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXh0QW5jZXN0b3InIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhCb29sZWFuRnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhSb290JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aElzTm9kZVR5cGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXh0Rm9sbG93aW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoQWRkVmFsdWVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd2YWx1ZVBvcCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENlaWxpbmdGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEludGVyc2VjdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlU2V0U29ydCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5vZGVMZWFkaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoU3VtRnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb3RFcXVhbFZhbHVlcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRXJyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTmV4dFByZWNlZGluZycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhGdW5jdGlvbkxvb2t1cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTmV3RmxvYXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhSZWdpc3Rlck5zJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTmV4dFBhcmVudCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5vZGVTZXRGcmVlTnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhIYXNTYW1lTm9kZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhEaXN0aW5jdFNvcnRlZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd2YWx1ZVB1c2gnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRmxvb3JGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aElkRnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhMYXN0RnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5leHRTZWxmJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRGVidWdEdW1wQ29tcEV4cHInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhGYWxzZUZ1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoVmFsdWVGbGlwU2lnbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUG9wTnVtYmVyJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUm91bmRGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFBvcE5vZGVTZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhDb3VudEZ1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUGFyc2VOQ05hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhUcnVlRnVuY3Rpb24nIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXdCb29sZWFuJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoU3ViVmFsdWVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRXF1YWxWYWx1ZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhUcmFpbGluZ1NvcnRlZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE11bHRWYWx1ZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhNb2RWYWx1ZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoV3JhcE5vZGVTZXQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhXcmFwU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTGFuZ0Z1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJGdW5jTlMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlU2V0QWRkTnMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aERpZmZlcmVuY2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhMZWFkaW5nU29ydGVkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhQb3BFeHRlcm5hbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5vZGVTZXREZWwnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXdDU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJGdW5jJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5leHREZXNjZW5kYW50JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTmV4dE5hbWVzcGFjZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFdyYXBDU3RyaW5nJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoRnJlZVBhcnNlckNvbnRleHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlVHJhaWxpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb2RlU2V0QWRkJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5ld1ZhbHVlVHJlZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aERpc3RpbmN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoVmFyaWFibGVMb29rdXAnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOb3RGdW5jdGlvbicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXInIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aFdyYXBFeHRlcm5hbCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aE5leHRBdHRyaWJ1dGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhEaXZWYWx1ZXMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQYXRoVHJhaWxpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhFdmFsRXhwcicgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aERlYnVnRHVtcE9iamVjdCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUGF0aExlYWRpbmcnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFBhdGhQYXJzZU5hbWUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgPC9maWxlPgorICAgIDxmaWxlIG5hbWU9J3hwb2ludGVyJz4KKyAgICAgPHN1bW1hcnk+QVBJIHRvIGhhbmRsZSBYTUwgUG9pbnRlcnM8L3N1bW1hcnk+CisgICAgIDxkZXNjcmlwdGlvbj5BUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVycyBCYXNlIGltcGxlbWVudGF0aW9uIHdhcyBtYWRlIGFjY29yZGluZ2x5IHRvIFczQyBDYW5kaWRhdGUgUmVjb21tZW5kYXRpb24gNyBKdW5lIDIwMDA8L2Rlc2NyaXB0aW9uPgorICAgICA8YXV0aG9yPkRhbmllbCBWZWlsbGFyZCA8L2F1dGhvcj4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxMb2NhdGlvblNldCcgdHlwZT0ndHlwZWRlZicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbExvY2F0aW9uU2V0UHRyJyB0eXBlPSd0eXBlZGVmJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0nX3htbExvY2F0aW9uU2V0JyB0eXBlPSdzdHJ1Y3QnLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUHRyTmV3UmFuZ2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFB0ckZyZWVMb2NhdGlvblNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUHRyV3JhcExvY2F0aW9uU2V0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQdHJCdWlsZE5vZGVMaXN0JyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQdHJFdmFsJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQdHJOZXdSYW5nZU5vZGVzJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQdHJMb2NhdGlvblNldEFkZCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQdHJOZXdDb2xsYXBzZWRSYW5nZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUHRyTmV3UmFuZ2VQb2ludHMnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFB0ck5ld0NvbnRleHQnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlJyB0eXBlPSdmdW5jdGlvbicvPgorICAgICA8ZXhwb3J0cyBzeW1ib2w9J3htbFhQdHJOZXdSYW5nZU5vZGVQb2ludCcgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUHRyTG9jYXRpb25TZXREZWwnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UnIHR5cGU9J2Z1bmN0aW9uJy8+CisgICAgIDxleHBvcnRzIHN5bWJvbD0neG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZScgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICAgPGV4cG9ydHMgc3ltYm9sPSd4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcycgdHlwZT0nZnVuY3Rpb24nLz4KKyAgICA8L2ZpbGU+CisgIDwvZmlsZXM+CisgIDxzeW1ib2xzPgorICAgIDxtYWNybyBuYW1lPSdBVFRSSUJVVEVfVU5VU0VEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPk1hY3JvIHVzZWQgdG8gc2lnbmFsIHRvIEdDQyB1bnVzZWQgZnVuY3Rpb24gcGFyYW1ldGVyczwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdCQURfQ0FTVCcgZmlsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIGNhc3QgYSBzdHJpbmcgdG8gYW4geG1sQ2hhciAqIHdoZW4gb25lIGtub3cgaXRzIHNhZmUuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0JBU0VfQlVGRkVSX1NJWkUnIGZpbGU9J3RyZWUnPgorICAgICAgPGluZm8+ZGVmYXVsdCBidWZmZXIgc2l6ZSA0MDAwLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdDQVNUX1RPX0JPT0xFQU4nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIHRyeSB0byBjYXN0IHRoZSB2YWx1ZSBvbiB0aGUgdG9wIG9mIHRoZSBYUGF0aCBzdGFjayB0byBhIGJvb2xlYW4uPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0NBU1RfVE9fTlVNQkVSJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byB0cnkgdG8gY2FzdCB0aGUgdmFsdWUgb24gdGhlIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgdG8gYSBudW1iZXIuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0NBU1RfVE9fU1RSSU5HJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byB0cnkgdG8gY2FzdCB0aGUgdmFsdWUgb24gdGhlIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgdG8gYSBzdHJpbmcuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0NIRUNLX0FSSVRZJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayB0aGF0IHRoZSBudW1iZXIgb2YgYXJncyBwYXNzZWQgdG8gYW4gWFBhdGggZnVuY3Rpb24gbWF0Y2hlcy48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J3gnIGluZm89J3RoZSBudW1iZXIgb2YgZXhwZWN0ZWQgYXJncycvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0NIRUNLX0VSUk9SJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byByZXR1cm4gZnJvbSB0aGUgZnVuY3Rpb24gaWYgYW4gWFBhdGggZXJyb3Igd2FzIGRldGVjdGVkLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdDSEVDS19FUlJPUjAnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIHJldHVybiAwIGZyb20gdGhlIGZ1bmN0aW9uIGlmIGFuIFhQYXRoIGVycm9yIHdhcyBkZXRlY3RlZC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nQ0hFQ0tfVFlQRScgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+TWFjcm8gdG8gY2hlY2sgdGhhdCB0aGUgdmFsdWUgb24gdG9wIG9mIHRoZSBYUGF0aCBzdGFjayBpcyBvZiBhIGdpdmVuIHR5cGUuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSd0eXBldmFsJyBpbmZvPSd0aGUgWFBhdGggdHlwZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0NIRUNLX1RZUEUwJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvbiB0b3Agb2YgdGhlIFhQYXRoIHN0YWNrIGlzIG9mIGEgZ2l2ZW4gdHlwZS4gUmV0dXJuKDApIGluIGNhc2Ugb2YgZmFpbHVyZTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZXZhbCcgaW5mbz0ndGhlIFhQYXRoIHR5cGUnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdERUJVR19NRU1PUlknIGZpbGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5ERUJVR19NRU1PUlkgcmVwbGFjZXMgdGhlIGFsbG9jYXRvciB3aXRoIGEgY29sbGVjdCBhbmQgZGVidWcgc2hlbGwgdG8gdGhlIGxpYmMgYWxsb2NhdG9yLiBERUJVR19NRU1PUlkgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkIHdoZW4gZGVidWdnaW5nIGxpYnhtbCBpLmUuIGlmIGxpYnhtbCBoYXMgYmVlbiBjb25maWd1cmVkIHdpdGggLS13aXRoLWRlYnVnLW1lbSB0b28uICNkZWZpbmUgREVCVUdfTUVNT1JZX0ZSRUVEICNkZWZpbmUgREVCVUdfTUVNT1JZX0xPQ0FUSU9OPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0RFQlVHX01FTU9SWV9MT0NBVElPTicgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBtZW1vcnkgZGVidWdnaW5nIGlzIGNvbmZpZ3VyZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSFRNTF9DT01NRU5UX05PREUnIGZpbGU9J0hUTUx0cmVlJz4KKyAgICAgIDxpbmZvPk1hY3JvLiBBIGNvbW1lbnQgaW4gYSBIVE1MIGRvY3VtZW50IGlzIHJlYWxseSBpbXBsZW1lbnRlZCB0aGUgc2FtZSB3YXkgYXMgYSBjb21tZW50IGluIGFuIFhNTCBkb2N1bWVudC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSFRNTF9FTlRJVFlfUkVGX05PREUnIGZpbGU9J0hUTUx0cmVlJz4KKyAgICAgIDxpbmZvPk1hY3JvLiBBbiBlbnRpdHkgcmVmZXJlbmNlIGluIGEgSFRNTCBkb2N1bWVudCBpcyByZWFsbHkgaW1wbGVtZW50ZWQgdGhlIHNhbWUgd2F5IGFzIGFuIGVudGl0eSByZWZlcmVuY2UgaW4gYW4gWE1MIGRvY3VtZW50LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdIVE1MX1BJX05PREUnIGZpbGU9J0hUTUx0cmVlJz4KKyAgICAgIDxpbmZvPk1hY3JvLiBBIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaW4gYSBIVE1MIGRvY3VtZW50IGlzIHJlYWxseSBpbXBsZW1lbnRlZCB0aGUgc2FtZSB3YXkgYXMgYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGluIGFuIFhNTCBkb2N1bWVudC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSFRNTF9QUkVTRVJWRV9OT0RFJyBmaWxlPSdIVE1MdHJlZSc+CisgICAgICA8aW5mbz5NYWNyby4gQSBwcmVzZXJ2ZWQgbm9kZSBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkIHRoZSBzYW1lIHdheSBhcyBhIENEQVRBIHNlY3Rpb24gaW4gYW4gWE1MIGRvY3VtZW50LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdIVE1MX1RFWFRfTk9ERScgZmlsZT0nSFRNTHRyZWUnPgorICAgICAgPGluZm8+TWFjcm8uIEEgdGV4dCBub2RlIGluIGEgSFRNTCBkb2N1bWVudCBpcyByZWFsbHkgaW1wbGVtZW50ZWQgdGhlIHNhbWUgd2F5IGFzIGEgdGV4dCBub2RlIGluIGFuIFhNTCBkb2N1bWVudC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSU5QVVRfQ0hVTksnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5UaGUgcGFyc2VyIHRyaWVzIHRvIGFsd2F5cyBoYXZlIHRoYXQgYW1vdW50IG9mIGlucHV0IHJlYWR5LiBPbmUgb2YgdGhlIHBvaW50IGlzIHByb3ZpZGluZyBjb250ZXh0IHdoZW4gcmVwb3J0aW5nIGVycm9ycy48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfQVNDSUlfRElHSVQnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayBbMC05XTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4geG1sQ2hhciB2YWx1ZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0lTX0FTQ0lJX0xFVFRFUicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIGNoZWNrIFthLXpBLVpdPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiB4bWxDaGFyIHZhbHVlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfQkFTRUNIQVInIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiAgWzg1XSBCYXNlQ2hhciA6Oj0gLi4uIGxvbmcgbGlzdCBzZWUgUkVDIC4uLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4gVU5JQ09ERSB2YWx1ZSAoaW50KScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0lTX0JMQU5LJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+TWFjcm8gdG8gY2hlY2sgdGhlIGZvbGxvd2luZyBwcm9kdWN0aW9uIGluIHRoZSBYTUwgc3BlYzogIFszXSBTIDo6PSAoI3gyMCB8ICN4OSB8ICN4RCB8ICN4QSkrPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiBVTklDT0RFIHZhbHVlIChpbnQpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfQkxBTktfQ0gnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5CZWhhdmlvdXIgc2FtZSBhcyBJU19CTEFOSzwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4geG1sQ2hhciB2YWx1ZSAobm9ybWFsbHkgdW5zaWduZWQgY2hhciknLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdJU19CWVRFX0NIQVInIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiAgWzJdIENoYXIgOjo9ICN4OSB8ICN4QSB8ICN4RCB8IFsjeDIwLi4uXSBhbnkgYnl0ZSBjaGFyYWN0ZXIgaW4gdGhlIGFjY2VwdGVkIHJhbmdlPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiBieXRlIHZhbHVlIChpbnQpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfQ0hBUicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6ICBbMl0gQ2hhciA6Oj0gI3g5IHwgI3hBIHwgI3hEIHwgWyN4MjAtI3hEN0ZGXSB8IFsjeEUwMDAtI3hGRkZEXSB8IFsjeDEwMDAwLSN4MTBGRkZGXSBhbnkgVW5pY29kZSBjaGFyYWN0ZXIsIGV4Y2x1ZGluZyB0aGUgc3Vycm9nYXRlIGJsb2NrcywgRkZGRSwgYW5kIEZGRkYuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiBVTklDT0RFIHZhbHVlIChpbnQpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfQ0hBUl9DSCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkJlaGF2ZXMgbGlrZSBJU19DSEFSIG9uIHNpbmdsZS1ieXRlIHZhbHVlPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiB4bWxDaGFyICh1c3VhbGx5IGFuIHVuc2lnbmVkIGNoYXIpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfQ09NQklOSU5HJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+TWFjcm8gdG8gY2hlY2sgdGhlIGZvbGxvd2luZyBwcm9kdWN0aW9uIGluIHRoZSBYTUwgc3BlYzogIFs4N10gQ29tYmluaW5nQ2hhciA6Oj0gLi4uIGxvbmcgbGlzdCBzZWUgUkVDIC4uLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4gVU5JQ09ERSB2YWx1ZSAoaW50KScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0lTX0NPTUJJTklOR19DSCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkFsd2F5cyBmYWxzZSAoYWxsIGNvbWJpbmluZyBjaGFycyAmZ3Q7IDB4ZmYpPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiB4bWxDaGFyICh1c3VhbGx5IGFuIHVuc2lnbmVkIGNoYXIpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfRElHSVQnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiAgWzg4XSBEaWdpdCA6Oj0gLi4uIGxvbmcgbGlzdCBzZWUgUkVDIC4uLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4gVU5JQ09ERSB2YWx1ZSAoaW50KScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0lTX0RJR0lUX0NIJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+QmVoYXZlcyBsaWtlIElTX0RJR0lUIGJ1dCB3aXRoIGEgc2luZ2xlIGJ5dGUgYXJndW1lbnQ8L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2MnIGluZm89J2FuIHhtbENoYXIgdmFsdWUgKHVzdWFsbHkgYW4gdW5zaWduZWQgY2hhciknLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdJU19FWFRFTkRFUicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6ICAgWzg5XSBFeHRlbmRlciA6Oj0gI3gwMEI3IHwgI3gwMkQwIHwgI3gwMkQxIHwgI3gwMzg3IHwgI3gwNjQwIHwgI3gwRTQ2IHwgI3gwRUM2IHwgI3gzMDA1IHwgWyN4MzAzMS0jeDMwMzVdIHwgWyN4MzA5RC0jeDMwOUVdIHwgWyN4MzBGQy0jeDMwRkVdPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiBVTklDT0RFIHZhbHVlIChpbnQpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfRVhURU5ERVJfQ0gnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5CZWhhdmVzIGxpa2UgSVNfRVhURU5ERVIgYnV0IHdpdGggYSBzaW5nbGUtYnl0ZSBhcmd1bWVudDwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4geG1sQ2hhciB2YWx1ZSAodXN1YWxseSBhbiB1bnNpZ25lZCBjaGFyKScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0lTX0lERU9HUkFQSElDJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+TWFjcm8gdG8gY2hlY2sgdGhlIGZvbGxvd2luZyBwcm9kdWN0aW9uIGluIHRoZSBYTUwgc3BlYzogICBbODZdIElkZW9ncmFwaGljIDo6PSBbI3g0RTAwLSN4OUZBNV0gfCAjeDMwMDcgfCBbI3gzMDIxLSN4MzAyOV08L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2MnIGluZm89J2FuIFVOSUNPREUgdmFsdWUgKGludCknLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdJU19MRVRURVInIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiAgIFs4NF0gTGV0dGVyIDo6PSBCYXNlQ2hhciB8IElkZW9ncmFwaGljPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdhbiBVTklDT0RFIHZhbHVlIChpbnQpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nSVNfTEVUVEVSX0NIJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+TWFjcm8gYmVoYXZlcyBsaWtlIElTX0xFVFRFUiwgYnV0IG9ubHkgY2hlY2sgYmFzZSBjaGFyczwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4geG1sQ2hhciB2YWx1ZSAobm9ybWFsbHkgdW5zaWduZWQgY2hhciknLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdJU19QVUJJRENIQVInIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOiAgIFsxM10gUHViaWRDaGFyIDo6PSAjeDIwIHwgI3hEIHwgI3hBIHwgW2EtekEtWjAtOV0gfCBbLSZhcG9zOygpKywuLzo9PzshKiNAJF8lXTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nYW4gVU5JQ09ERSB2YWx1ZSAoaW50KScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0lTX1BVQklEQ0hBUl9DSCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlNhbWUgYXMgSVNfUFVCSURDSEFSIGJ1dCBmb3Igc2luZ2xlLWJ5dGUgdmFsdWU8L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2MnIGluZm89J2FuIHhtbENoYXIgdmFsdWUgKG5vcm1hbGx5IHVuc2lnbmVkIGNoYXIpJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0FUVFJfQUxMT0NfU0laRScgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5NYWNybyB1c2VkIHRvIGluZGljYXRlIHRvIEdDQyB0aGlzIGlzIGFuIGFsbG9jYXRvciBmdW5jdGlvbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfQVRUUl9GT1JNQVQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+TWFjcm8gdXNlZCB0byBpbmRpY2F0ZSB0byBHQ0MgdGhlIHBhcmFtZXRlciBhcmUgcHJpbnRmIGxpa2U8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgYXV0b21hdGEgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0MxNE5fRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBDYW5vbmljYWxpemF0aW9uIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfQ0FUQUxPR19FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIENhdGFsb2cgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9ERUJVR19FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgRGVidWdnaW5nIG1vZHVsZSBpcyBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9ERUJVR19SVU5USU1FJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIHJ1bnRpbWUgZGVidWdnaW5nIGlzIGNvbmZpZ3VyZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0RMTF9JTVBPUlQnIGZpbGU9J3htbGV4cG9ydHMnPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9ET0NCX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgU0dNTCBEb2Nib29rIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfRE9UVEVEX1ZFUlNJT04nIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+dGhlIHZlcnNpb24gc3RyaW5nIGxpa2UgJnF1b3Q7MS4yLjMmcXVvdDs8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0VYUFJfRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBmb3JtYWwgZXhwcmVzc2lvbnMgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0ZUUF9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIEZUUCBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0hUTUxfRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBIVE1MIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfSFRUUF9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIEhUVFAgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9JQ09OVl9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgaWNvbnYgc3VwcG9ydCBpcyBhdmFpbGFibGU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciBJU08tODg1OS0qIHN1cHBvcnQgaXMgbWFkZSBhdmFpbGFibGUgaW4gY2FzZSBpY29udiBpcyBub3Q8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX0xFR0FDWV9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIGRlcHJlY2F0ZWQgQVBJcyBhcmUgY29tcGlsZWQgaW4gZm9yIGNvbXBhdGliaWxpdHk8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX01PRFVMRVNfRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBtb2R1bGUgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX01PRFVMRV9FWFRFTlNJT04nIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+dGhlIHN0cmluZyBzdWZmaXggdXNlZCBieSBkeW5hbWljIG1vZHVsZXMgKHVzdWFsbHkgc2hhcmVkIGxpYnJhcmllcyk8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX09VVFBVVF9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIHNlcmlhbGl6YXRpb24vc2F2aW5nIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfUEFUVEVSTl9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIHhtbFBhdHRlcm4gbm9kZSBzZWxlY3Rpb24gaW50ZXJmYWNlIGlzIGNvbmZpZ3VyZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX1BVU0hfRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBwdXNoIHBhcnNpbmcgaW50ZXJmYWNlcyBhcmUgY29uZmlndXJlZCBpbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfUkVBREVSX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgeG1sUmVhZGVyIHBhcnNpbmcgaW50ZXJmYWNlIGlzIGNvbmZpZ3VyZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX1JFR0VYUF9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX1NBWDFfRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBvbGRlciBTQVgxIGludGVyZmFjZSBpcyBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9TQ0hFTUFTX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgU2NoZW1hcyB2YWxpZGF0aW9uIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgU2NoZW1hdHJvbiB2YWxpZGF0aW9uIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9URVNUX1ZFUlNJT04nIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+TWFjcm8gdG8gY2hlY2sgdGhhdCB0aGUgbGlieG1sIHZlcnNpb24gaW4gdXNlIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgdmVyc2lvbiB0aGUgc29mdHdhcmUgaGFzIGJlZW4gY29tcGlsZWQgYWdhaW5zdDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfVEhSRUFEX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgdGhyZWFkIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfVFJFRV9FTkFCTEVEJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhlIERPTSBsaWtlIHRyZWUgbWFuaXB1bGF0aW9uIEFQSSBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX1VOSUNPREVfRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIHRoZSBVbmljb2RlIHJlbGF0ZWQgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX1ZBTElEX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgRFREIHZhbGlkYXRpb24gc3VwcG9ydCBpcyBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9WRVJTSU9OJyBmaWxlPSd4bWx2ZXJzaW9uJz4KKyAgICAgIDxpbmZvPnRoZSB2ZXJzaW9uIG51bWJlcjogMS4yLjMgdmFsdWUgaXMgMTAyMDM8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX1ZFUlNJT05fRVhUUkEnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+ZXh0cmEgdmVyc2lvbiBpbmZvcm1hdGlvbiwgdXNlZCB0byBzaG93IGEgQ1ZTIGNvbXBpbGF0aW9uPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9WRVJTSU9OX1NUUklORycgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz50aGUgdmVyc2lvbiBudW1iZXIgc3RyaW5nLCAxLjIuMyB2YWx1ZSBpcyAmcXVvdDsxMDIwMyZxdW90OzwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfV1JJVEVSX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgeG1sV3JpdGVyIHNhdmluZyBpbnRlcmZhY2UgaXMgY29uZmlndXJlZCBpbjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCcgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5XaGV0aGVyIFhJbmNsdWRlIGlzIGNvbmZpZ3VyZWQgaW48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nTElCWE1MX1hQQVRIX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciBYUGF0aCBpcyBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9YUFRSX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciBYUG9pbnRlciBpcyBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J0xJQlhNTF9aTElCX0VOQUJMRUQnIGZpbGU9J3htbHZlcnNpb24nPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgWmxpYiBzdXBwb3J0IGlzIGNvbXBpbGVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J01PVkVUT19FTkRUQUcnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5Ta2lwcyB0byB0aGUgbmV4dCAmYXBvczsmZ3Q7JmFwb3M7IGNoYXIuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdwJyBpbmZvPSdhbmQgVVRGOCBzdHJpbmcgcG9pbnRlcicvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J01PVkVUT19TVEFSVFRBRycgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlNraXBzIHRvIHRoZSBuZXh0ICZhcG9zOyZsdDsmYXBvczsgY2hhci48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J3AnIGluZm89J2FuZCBVVEY4IHN0cmluZyBwb2ludGVyJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nU0tJUF9FT0wnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5Ta2lwcyB0aGUgZW5kIG9mIGxpbmUgY2hhcnMuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdwJyBpbmZvPSdhbmQgVVRGOCBzdHJpbmcgcG9pbnRlcicvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1dJVEhPVVRfVFJJTycgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5kZWZpbmVkIGlmIHRoZSB0cmlvIHN1cHBvcnQgc2hvdWxkIG5vdCBiZSBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1dJVEhfVFJJTycgZmlsZT0neG1sdmVyc2lvbic+CisgICAgICA8aW5mbz5kZWZpbmVkIGlmIHRoZSB0cmlvIHN1cHBvcnQgbmVlZCB0byBiZSBjb25maWd1cmVkIGluPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hJTkNMVURFX0ZBTExCQUNLJyBmaWxlPSd4aW5jbHVkZSc+CisgICAgICA8aW5mbz5NYWNybyBkZWZpbmluZyAmcXVvdDtmYWxsYmFjayZxdW90OzwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYSU5DTFVERV9IUkVGJyBmaWxlPSd4aW5jbHVkZSc+CisgICAgICA8aW5mbz5NYWNybyBkZWZpbmluZyAmcXVvdDtocmVmJnF1b3Q7PC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hJTkNMVURFX05PREUnIGZpbGU9J3hpbmNsdWRlJz4KKyAgICAgIDxpbmZvPk1hY3JvIGRlZmluaW5nICZxdW90O2luY2x1ZGUmcXVvdDs8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWElOQ0xVREVfTlMnIGZpbGU9J3hpbmNsdWRlJz4KKyAgICAgIDxpbmZvPk1hY3JvIGRlZmluaW5nIHRoZSBYaW5jbHVkZSBuYW1lc3BhY2U6IGh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWElOQ0xVREVfT0xEX05TJyBmaWxlPSd4aW5jbHVkZSc+CisgICAgICA8aW5mbz5NYWNybyBkZWZpbmluZyB0aGUgZHJhZnQgWGluY2x1ZGUgbmFtZXNwYWNlOiBodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hJTkNMVURFX1BBUlNFJyBmaWxlPSd4aW5jbHVkZSc+CisgICAgICA8aW5mbz5NYWNybyBkZWZpbmluZyAmcXVvdDtwYXJzZSZxdW90OzwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYSU5DTFVERV9QQVJTRV9FTkNPRElORycgZmlsZT0neGluY2x1ZGUnPgorICAgICAgPGluZm8+TWFjcm8gZGVmaW5pbmcgJnF1b3Q7ZW5jb2RpbmcmcXVvdDs8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWElOQ0xVREVfUEFSU0VfVEVYVCcgZmlsZT0neGluY2x1ZGUnPgorICAgICAgPGluZm8+TWFjcm8gZGVmaW5pbmcgJnF1b3Q7dGV4dCZxdW90OzwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYSU5DTFVERV9QQVJTRV9YTUwnIGZpbGU9J3hpbmNsdWRlJz4KKyAgICAgIDxpbmZvPk1hY3JvIGRlZmluaW5nICZxdW90O3htbCZxdW90OzwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYSU5DTFVERV9QQVJTRV9YUE9JTlRFUicgZmlsZT0neGluY2x1ZGUnPgorICAgICAgPGluZm8+TWFjcm8gZGVmaW5pbmcgJnF1b3Q7eHBvaW50ZXImcXVvdDs8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MQ0FMTCcgZmlsZT0neG1sZXhwb3J0cyc+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MQ0RFQ0wnIGZpbGU9J3htbGV4cG9ydHMnPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTFBVQkZVTicgZmlsZT0neG1sZXhwb3J0cyc+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MUFVCVkFSJyBmaWxlPSd4bWxleHBvcnRzJz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfQ0FTVF9GUFRSJyBmaWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIGRvIGEgY2FzdGluZyBmcm9tIGFuIG9iamVjdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gcG9pbnRlciB3aXRob3V0IGVuY291bnRlcmluZyBhIHdhcm5pbmcgZnJvbSBnY2MgICNkZWZpbmUgWE1MX0NBU1RfRlBUUihmcHRyKSAoKih2b2lkICoqKSgmYW1wO2ZwdHIpKSBUaGlzIG1hY3JvIHZpb2xhdGVkIElTTyBDIGFsaWFzaW5nIHJ1bGVzIChnY2M0IG9uIHMzOTAgYnJva2UpIHNvIGl0IGlzIGRpc2FibGVkIG5vdzwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nZnB0cicgaW5mbz0ncG9pbnRlciB0byBhIGZ1bmN0aW9uJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX0NBVEFMT0dTX05BTUVTUEFDRScgZmlsZT0nY2F0YWxvZyc+CisgICAgICA8aW5mbz5UaGUgbmFtZXNwYWNlIGZvciB0aGUgWE1MIENhdGFsb2dzIGVsZW1lbnRzLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfQ0FUQUxPR19QSScgZmlsZT0nY2F0YWxvZyc+CisgICAgICA8aW5mbz5UaGUgc3BlY2lmaWMgWE1MIENhdGFsb2cgUHJvY2Vzc2luZyBJbnN0dWN0aW9uIG5hbWUuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9DT01QTEVURV9BVFRSUycgZmlsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkJpdCBpbiB0aGUgbG9hZHN1YnNldCBjb250ZXh0IGZpZWxkIHRvIHRlbGwgdG8gZG8gY29tcGxldGUgdGhlIGVsZW1lbnRzIGF0dHJpYnV0ZXMgbGlzdHMgd2l0aCB0aGUgb25lcyBkZWZhdWx0ZWQgZnJvbSB0aGUgRFREcy4gVXNlIGl0IHRvIGluaXRpYWxpemUgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZS48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX0NUWFRfRklOSVNIX0RURF8wJyBmaWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5TcGVjaWFsIHZhbHVlIGZvciBmaW5pc2hEdGQgZmllbGQgd2hlbiBlbWJlZGRlZCBpbiBhbiB4bWxQYXJzZXJDdHh0PC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9DVFhUX0ZJTklTSF9EVERfMScgZmlsZT0ndmFsaWQnPgorICAgICAgPGluZm8+U3BlY2lhbCB2YWx1ZSBmb3IgZmluaXNoRHRkIGZpZWxkIHdoZW4gZW1iZWRkZWQgaW4gYW4geG1sUGFyc2VyQ3R4dDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfREVGQVVMVF9WRVJTSU9OJyBmaWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+VGhlIGRlZmF1bHQgdmVyc2lvbiBvZiBYTUwgdXNlZDogMS4wPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9ERVRFQ1RfSURTJyBmaWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+Qml0IGluIHRoZSBsb2Fkc3Vic2V0IGNvbnRleHQgZmllbGQgdG8gdGVsbCB0byBkbyBJRC9SRUZzIGxvb2t1cHMuIFVzZSBpdCB0byBpbml0aWFsaXplIHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9HRVRfQ09OVEVOVCcgZmlsZT0ndHJlZSc+CisgICAgICA8aW5mbz5NYWNybyB0byBleHRyYWN0IHRoZSBjb250ZW50IHBvaW50ZXIgb2YgYSBub2RlLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfR0VUX0xJTkUnIGZpbGU9J3RyZWUnPgorICAgICAgPGluZm8+TWFjcm8gdG8gZXh0cmFjdCB0aGUgbGluZSBudW1iZXIgb2YgYW4gZWxlbWVudCBub2RlLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfTE9DQUxfTkFNRVNQQUNFJyBmaWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkEgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIG5vZGUuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9NQVhfTkFNRUxFTicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPklkZW50aWZpZXJzIGNhbiBiZSBsb25nZXIsIGJ1dCB0aGlzIHdpbGwgYmUgbW9yZSBjb3N0bHkgYXQgcnVudGltZS48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX01BWF9URVhUX0xFTkdUSCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1heGltdW0gc2l6ZSBhbGxvd2VkIGZvciBhIHNpbmdsZSB0ZXh0IG5vZGUgd2hlbiBidWlsZGluZyBhIHRyZWUuIFRoaXMgaXMgbm90IGEgbGltaXRhdGlvbiBvZiB0aGUgcGFyc2VyIGJ1dCBhIHNhZmV0eSBib3VuZGFyeSBmZWF0dXJlLCB1c2UgWE1MX1BBUlNFX0hVR0Ugb3B0aW9uIHRvIG92ZXJyaWRlIGl0LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0FYMl9NQUdJQycgZmlsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlNwZWNpYWwgY29uc3RhbnQgZm91bmQgaW4gU0FYMiBibG9ja3MgaW5pdGlhbGl6ZWQgZmllbGRzPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0FOWUFUVFJfTEFYJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPklnbm9yZSB2YWxpZGF0aW9uIG5vbiBkZWZpbml0aW9uIG9uIGF0dHJpYnV0ZXMgT2Jzb2xldGUsIG5vdCB1c2VkIGFueW1vcmUuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5Ta2lwIHVua25vd24gYXR0cmlidXRlIGZyb20gdmFsaWRhdGlvbiBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQU5ZQVRUUl9TVFJJQ1QnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+QXBwbHkgc3RyaWN0IHZhbGlkYXRpb24gcnVsZXMgb24gYXR0cmlidXRlcyBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQU5ZX0xBWCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5Vc2VkIGJ5IHdpbGRjYXJkcy4gVmFsaWRhdGUgaWYgdHlwZSBmb3VuZCwgZG9uJmFwb3M7dCB3b3JyeSBpZiBub3QgZm91bmQ8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQU5ZX1NLSVAnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+U2tpcCB1bmtub3duIGF0dHJpYnV0ZSBmcm9tIHZhbGlkYXRpb248L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQU5ZX1NUUklDVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5Vc2VkIGJ5IHdpbGRjYXJkcy4gQXBwbHkgc3RyaWN0IHZhbGlkYXRpb24gcnVsZXM8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5UaGUgYXR0cmlidXRlIHdpbGRjYXJkIGhhcyBiZWVuIGFscmVhZHkgYnVpbGRlZC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgdGhpcyBhdHRyLiBncm91cCBjb250YWlucyBhdHRyLiBncm91cCByZWZlcmVuY2VzLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1hcmtzIHRoZSBhdHRyIGdyb3VwIGFzIG1hcmtlZDsgdXNlZCBmb3IgY2lyY3VsYXIgY2hlY2tzLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlRoZSBhdHRyIGdyb3VwIHdhcyByZWRlZmluZWQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlRoZSBhdHRyaWJ1dGUgd2lsZGNhcmQgaGFzIGJlZW4gYWxyZWFkeSBidWlsZGVkLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19BVFRSX0ZJWEVEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBhdHRyaWJ1dGUgaGFzIGEgZml4ZWQgdmFsdWU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+YWxsb3cgZWxlbWVudHMgaW4gbm8gbmFtZXNwYWNlPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhpcyBpcyBzZXQgd2hlbiB0aGUgJnF1b3Q7dHlwZSZxdW90OyBhbmQgJnF1b3Q7cmVmJnF1b3Q7IHJlZmVyZW5jZXMgaGF2ZSBiZWVuIHJlc29sdmVkLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5hbGxvdyBlbGVtZW50cyBpbiBubyBuYW1lc3BhY2U8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQVRUUl9VU0VfT1BUSU9OQUwnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+VGhlIGF0dHJpYnV0ZSBpcyBvcHRpb25hbC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5Vc2VkIGJ5IHdpbGRjYXJkcy4gVGhlIGF0dHJpYnV0ZSBpcyBwcm9oaWJpdGVkLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5UaGUgYXR0cmlidXRlIGlzIHJlcXVpcmVkLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTicgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgc2NoZW1hIGhhcyAmcXVvdDtleHRlbnNpb24mcXVvdDsgaW4gdGhlIHNldCBvZiBibG9ja0RlZmF1bHQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfUkVTVFJJQ1RJT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIHNjaGVtYSBoYXMgJnF1b3Q7cmVzdHJpY3Rpb24mcXVvdDsgaW4gdGhlIHNldCBvZiBibG9ja0RlZmF1bHQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzY2hlbWEgaGFzICZxdW90O3N1YnN0aXR1dGlvbiZxdW90OyBpbiB0aGUgc2V0IG9mIGJsb2NrRGVmYXVsdC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRUxFTV9BQlNUUkFDVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgZWxlbWVudCBpcyBhYnN0cmFjdDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0FCU0VOVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgJnF1b3Q7YmxvY2smcXVvdDsgYXR0cmlidXRlIGlzIGFic2VudDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTicgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5kaXNhbGxvd2VkIHN1YnN0aXR1dGlvbnMgYXJlIGFic2VudDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmRpc2FsbG93ZWQgc3Vic3RpdHV0aW9uczogJnF1b3Q7cmVzdHJpY3Rpb24mcXVvdDs8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+ZGlzYWxsb3dlZCBzdWJzdGl0dXRpb25zOiAmcXVvdDtzdWJzdGl0dWlvbiZxdW90OzwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX0NJUkNVTEFSJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmEgaGVscGVyIGZsYWcgZm9yIHRoZSBzZWFyY2ggb2YgY2lyY3VsYXIgcmVmZXJlbmNlcy48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBlbGVtZW50IGhhcyBhIGRlZmF1bHQgdmFsdWU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+c3Vic3RpdHV0aW9uIGdyb3VwIGV4Y2x1c2lvbnMgYXJlIGFic2VudDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTicgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5zdWJzdGl0dXRpb24gZ3JvdXAgZXhjbHVzaW9uczogJnF1b3Q7ZXh0ZW5zaW9uJnF1b3Q7PC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+c3Vic3RpdHV0aW9uIGdyb3VwIGV4Y2x1c2lvbnM6ICZxdW90O3Jlc3RyaWN0aW9uJnF1b3Q7PC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0VMRU1fRklYRUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIGVsZW1lbnQgaGFzIGEgZml4ZWQgdmFsdWU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIGVsZW1lbnQgaXMgZ2xvYmFsPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGlzIGlzIHNldCB3aGVuIHRoZSBlbGVtIGRlY2wgaGFzIGJlZW4gY2hlY2tlZCBhZ2FpbnN0IGFsbCBjb25zdHJhaW50czwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoaXMgaXMgc2V0IHdoZW4gJnF1b3Q7dHlwZSZxdW90OywgJnF1b3Q7cmVmJnF1b3Q7LCAmcXVvdDtzdWJzdGl0dXRpb25Hcm91cCZxdW90OyByZWZlcmVuY2VzIGhhdmUgYmVlbiByZXNvbHZlZC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRScgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgZWxlbWVudCBpcyBuaWxsYWJsZTwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5hbGxvdyBlbGVtZW50cyBpbiBubyBuYW1lc3BhY2UgT2Jzb2xldGUsIG5vdCB1c2VkIGFueW1vcmUuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0VMRU1fUkVGJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBlbGVtZW50IGlzIGEgcmVmZXJlbmNlIHRvIGEgdHlwZTwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIGRlY2xhcmF0aW9uIGlzIGEgc3Vic3RpdHV0aW9uIGdyb3VwIGhlYWQ8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgZWxlbWVudCBpcyB0b3AgbGV2ZWwgb2Jzb2xldGU6IHVzZSBYTUxfU0NIRU1BU19FTEVNX0dMT0JBTCBpbnN0ZWFkPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmNvbGxhcHNlIHRoZSB0eXBlcyBvZiB0aGUgZmFjZXQ8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+cHJlc2VydmUgdGhlIHR5cGUgb2YgdGhlIGZhY2V0PC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0UnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+cmVwbGFjZSB0aGUgdHlwZSBvZiB0aGUgZmFjZXQ8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRkFDRVRfVU5LTk9XTicgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz51bmtub3duIGZhY2V0IGhhbmRsaW5nPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfRVhURU5TSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzY2hlbWEgaGFzICZxdW90O2V4dGVuc2lvbiZxdW90OyBpbiB0aGUgc2V0IG9mIGZpbmFsRGVmYXVsdC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBjc2hlbWEgaGFzICZxdW90O2xpc3QmcXVvdDsgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIHNjaGVtYSBoYXMgJnF1b3Q7cmVzdHJpY3Rpb24mcXVvdDsgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfVU5JT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIHNjaGVtYSBoYXMgJnF1b3Q7dW5pb24mcXVvdDsgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzY2hlbWEgaXMgY3VycmVudGx5IGluY2x1ZGluZyBhbiBvdGhlciBzY2hlbWEgd2l0aCBubyB0YXJnZXQgbmFtZXNwYWNlLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19RVUFMSUZfQVRUUicgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5SZWZsZWN0cyBhdHRyaWJ1dGVGb3JtRGVmYXVsdCA9PSBxdWFsaWZpZWQgaW4gYW4gWE1MIHNjaGVtYSBkb2N1bWVudC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+UmVmbGVjdHMgZWxlbWVudEZvcm1EZWZhdWx0ID09IHF1YWxpZmllZCBpbiBhbiBYTUwgc2NoZW1hIGRvY3VtZW50LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzaW1wbGUvY29tcGxleFR5cGUgaXMgYWJzdHJhY3QuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfREVGQVVMVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgY29tcGxleFR5cGUgZGlkIG5vdCBzcGVjaWZ5ICZhcG9zO2Jsb2NrJmFwb3M7IHNvIHVzZSB0aGUgZGVmYXVsdCBvZiB0aGUgJmx0O3NjaGVtYSZndDsgaXRlbS48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIGNvbXBsZXhUeXBlIGhhcyBhICZhcG9zO2Jsb2NrJmFwb3M7IG9mICZxdW90O2V4dGVuc2lvbiZxdW90Oy48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTicgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgY29tcGxleFR5cGUgaGFzIGEgJmFwb3M7YmxvY2smYXBvczsgb2YgJnF1b3Q7cmVzdHJpY3Rpb24mcXVvdDsuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+TWFya3MgdGhlIGl0ZW0gYXMgYSBidWlsdGluIHByaW1pdGl2ZS48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIHNpbXBsZSBvciBjb21wbGV4IHR5cGUgaGFzIGEgZGVyaXZhdGlvbiBtZXRob2Qgb2YgJnF1b3Q7ZXh0ZW5zaW9uJnF1b3Q7LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX1JFU1RSSUNUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzaW1wbGUgb3IgY29tcGxleCB0eXBlIGhhcyBhIGRlcml2YXRpb24gbWV0aG9kIG9mICZxdW90O3Jlc3RyaWN0aW9uJnF1b3Q7LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRScgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz5pbmRpY2F0ZXMgaWYgdGhlIGZhY2V0cyBuZWVkIGEgY29tcHV0ZWQgdmFsdWU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzaW1wbGVUeXBlIGhhcyBhIGZpbmFsIG9mICZxdW90O2RlZmF1bHQmcXVvdDsuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBjb21wbGV4VHlwZSBoYXMgYSBmaW5hbCBvZiAmcXVvdDtleHRlbnNpb24mcXVvdDsuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgc2ltcGxlVHlwZSBoYXMgYSBmaW5hbCBvZiAmcXVvdDtsaXN0JnF1b3Q7LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzaW1wbGVUeXBlL2NvbXBsZXhUeXBlIGhhcyBhIGZpbmFsIG9mICZxdW90O3Jlc3RyaWN0aW9uJnF1b3Q7LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSBzaW1wbGVUeXBlIGhhcyBhIGZpbmFsIG9mICZxdW90O3VuaW9uJnF1b3Q7LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzEnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+Rmlyc3Qgc3RhZ2Ugb2YgZml4dXAgd2FzIGRvbmUuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPnRoZSB0eXBlIGlzIGdsb2JhbDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFMnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+aGFzIGZhY2V0czwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+aW5kaWNhdGVzIHRoYXQgdGhlIHR5cGUgaXMgaW52YWxpZDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmluZGljYXRlcyB0aGF0IHRoZSB0eXBlIHdhcyB0eXBlZml4ZWQ8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+TWFya3MgdGhlIGl0ZW0gYXMgbWFya2VkOyB1c2VkIGZvciBjaXJjdWxhciBjaGVja3MuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfTUlYRUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIGVsZW1lbnQgY29udGVudCB0eXBlIGlzIG1peGVkPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmluZGljYXRlcyBpZiB0aGUgZmFjZXRzIChwYXR0ZXJuKSBuZWVkIGEgbm9ybWFsaXplZCB2YWx1ZTwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX09XTkVEX0FUVFJfV0lMRENBUkQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIGNvbXBsZXhUeXBlIG93bnMgYW4gYXR0cmlidXRlIHdpbGRjYXJkLCBpLmUuIGl0IGNhbiBiZSBmcmVlZCBieSB0aGUgY29tcGxleFR5cGU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+VGhlIHR5cGUgd2FzIHJlZGVmaW5lZC48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscyc+CisgICAgICA8aW5mbz50aGUgc2ltcGxlVHlwZSBoYXMgYSB2YXJpZXR5IG9mICZxdW90O2Fic2VudCZxdW90Oy4gVE9ETzogQWN0dWFsbHkgbm90IG5lY2Vzc2FyeSA6LS8sIHNpbmNlIGlmIG5vbmUgb2YgdGhlIHZhcmlldHkgZmxhZ3Mgb2NjdXIgdGhlbiBpdCZhcG9zO3MgYXV0b21hdGljYWxseSBhYnNlbnQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9BVE9NSUMnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAmcXVvdDt1bmlvbiZxdW90Oy48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1QnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAmcXVvdDtsaXN0JnF1b3Q7LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+dGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAmcXVvdDt1bmlvbiZxdW90Oy48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmEgd2hpdGVzcGFjZS1mYWNldCB2YWx1ZSBvZiAmcXVvdDtjb2xsYXBzZSZxdW90OzwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnPgorICAgICAgPGluZm8+YSB3aGl0ZXNwYWNlLWZhY2V0IHZhbHVlIG9mICZxdW90O3ByZXNlcnZlJnF1b3Q7PC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmEgd2hpdGVzcGFjZS1mYWNldCB2YWx1ZSBvZiAmcXVvdDtyZXBsYWNlJnF1b3Q7PC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPklmIHRoZSB3aWxkY2FyZCBpcyBjb21wbGV0ZS48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NLSVBfSURTJyBmaWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+Qml0IGluIHRoZSBsb2Fkc3Vic2V0IGNvbnRleHQgZmllbGQgdG8gdGVsbCB0byBub3QgZG8gSUQvUkVGcyByZWdpc3RyYXRpb24uIFVzZWQgdG8gaW5pdGlhbGl6ZSB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIGluIHNvbWUgc3BlY2lhbCBjYXNlcy48L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1NVQlNUSVRVVEVfQk9USCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkJvdGggZ2VuZXJhbCBhbmQgcGFyYW1ldGVyIGVudGl0aWVzIG5lZWQgdG8gYmUgc3Vic3RpdHV0ZWQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TVUJTVElUVVRFX05PTkUnIGZpbGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5JZiBubyBlbnRpdGllcyBuZWVkIHRvIGJlIHN1YnN0aXR1dGVkLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfU1VCU1RJVFVURV9QRVJFRicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgcGFyYW1ldGVyIGVudGl0aWVzIG5lZWQgdG8gYmUgc3Vic3RpdHV0ZWQuPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9TVUJTVElUVVRFX1JFRicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPldoZXRoZXIgZ2VuZXJhbCBlbnRpdGllcyBuZWVkIHRvIGJlIHN1YnN0aXR1dGVkLjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYTUxfWE1MX0lEJyBmaWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlRoaXMgaXMgdGhlIG5hbWUgZm9yIHRoZSBzcGVjaWFsIHhtbDppZCBhdHRyaWJ1dGU8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nWE1MX1hNTF9OQU1FU1BBQ0UnIGZpbGU9J3RyZWUnPgorICAgICAgPGluZm8+VGhpcyBpcyB0aGUgbmFtZXNwYWNlIGZvciB0aGUgc3BlY2lhbCB4bWw6IHByZWZpeCBwcmVkZWZpbmVkIGluIHRoZSBYTUwgTmFtZXNwYWNlIHNwZWNpZmljYXRpb24uPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9YUEFUSF9DSEVDS05TJyBmaWxlPSd4cGF0aCc+CisgICAgICA8aW5mbz5jaGVjayBuYW1lc3BhY2VzIGF0IGNvbXBpbGF0aW9uPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hNTF9YUEFUSF9OT1ZBUicgZmlsZT0neHBhdGgnPgorICAgICAgPGluZm8+Zm9yYmlkIHZhcmlhYmxlcyBpbiBleHByZXNzaW9uPC9pbmZvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J1hQX0VSUk9SJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5NYWNybyB0byByYWlzZSBhbiBYUGF0aCBlcnJvciBhbmQgcmV0dXJuLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nWCcgaW5mbz0ndGhlIGVycm9yIGNvZGUnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSdYUF9FUlJPUjAnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPk1hY3JvIHRvIHJhaXNlIGFuIFhQYXRoIGVycm9yIGFuZCByZXR1cm4gMC48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J1gnIGluZm89J3RoZSBlcnJvciBjb2RlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0nX1JFRU5UUkFOVCcgZmlsZT0neG1sZXhwb3J0cyc+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0naHRtbERlZmF1bHRTdWJlbGVtZW50JyBmaWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxpbmZvPlJldHVybnMgdGhlIGRlZmF1bHQgc3ViZWxlbWVudCBmb3IgdGhpcyBlbGVtZW50PC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdlbHQnIGluZm89J0hUTUwgZWxlbWVudCcvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J2h0bWxFbGVtZW50QWxsb3dlZEhlcmVEZXNjJyBmaWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxpbmZvPkNoZWNrcyB3aGV0aGVyIGFuIEhUTUwgZWxlbWVudCBkZXNjcmlwdGlvbiBtYXkgYmUgYSBkaXJlY3QgY2hpbGQgb2YgdGhlIHNwZWNpZmllZCBlbGVtZW50LiAgUmV0dXJucyAxIGlmIGFsbG93ZWQ7IDAgb3RoZXJ3aXNlLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0ncGFyZW50JyBpbmZvPSdIVE1MIHBhcmVudCBlbGVtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VsdCcgaW5mbz0nSFRNTCBlbGVtZW50Jy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0naHRtbFJlcXVpcmVkQXR0cnMnIGZpbGU9J0hUTUxwYXJzZXInPgorICAgICAgPGluZm8+UmV0dXJucyB0aGUgYXR0cmlidXRlcyByZXF1aXJlZCBmb3IgdGhlIHNwZWNpZmllZCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nZWx0JyBpbmZvPSdIVE1MIGVsZW1lbnQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxDaGlsZHJlbk5vZGUnIGZpbGU9J3RyZWUnPgorICAgICAgPGluZm8+TWFjcm8gZm9yIGNvbXBhdGliaWxpdHkgbmFtaW5nIGxheWVyIHdpdGggbGlieG1sMS4gTWFwcyB0byAmcXVvdDtjaGlsZHJlbi4mcXVvdDs8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sSXNCYXNlQ2hhclEnIGZpbGU9J2NodmFsaWQnPgorICAgICAgPGluZm8+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2MnIGluZm89J2NoYXIgdG8gdmFsaWRhdGUnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxJc0Jhc2VDaGFyX2NoJyBmaWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdjaGFyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sSXNCbGFua1EnIGZpbGU9J2NodmFsaWQnPgorICAgICAgPGluZm8+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2MnIGluZm89J2NoYXIgdG8gdmFsaWRhdGUnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxJc0JsYW5rX2NoJyBmaWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdjaGFyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sSXNDaGFyUScgZmlsZT0nY2h2YWxpZCc+CisgICAgICA8aW5mbz5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nY2hhciB0byB2YWxpZGF0ZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbElzQ2hhcl9jaCcgZmlsZT0nY2h2YWxpZCc+CisgICAgICA8aW5mbz5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nY2hhciB0byB2YWxpZGF0ZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbElzQ29tYmluaW5nUScgZmlsZT0nY2h2YWxpZCc+CisgICAgICA8aW5mbz5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nY2hhciB0byB2YWxpZGF0ZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbElzRGlnaXRRJyBmaWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdjaGFyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sSXNEaWdpdF9jaCcgZmlsZT0nY2h2YWxpZCc+CisgICAgICA8aW5mbz5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nY2hhciB0byB2YWxpZGF0ZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbElzRXh0ZW5kZXJRJyBmaWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdjaGFyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sSXNFeHRlbmRlcl9jaCcgZmlsZT0nY2h2YWxpZCc+CisgICAgICA8aW5mbz5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weTwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nYycgaW5mbz0nY2hhciB0byB2YWxpZGF0ZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbElzSWRlb2dyYXBoaWNRJyBmaWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdjaGFyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sSXNQdWJpZENoYXJRJyBmaWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5PC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjJyBpbmZvPSdjaGFyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sSXNQdWJpZENoYXJfY2gnIGZpbGU9J2NodmFsaWQnPgorICAgICAgPGluZm8+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHk8L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2MnIGluZm89J2NoYXIgdG8gdmFsaWRhdGUnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxSb290Tm9kZScgZmlsZT0ndHJlZSc+CisgICAgICA8aW5mbz5NYWNybyBmb3IgY29tcGF0aWJpbGl0eSBuYW1pbmcgbGF5ZXIgd2l0aCBsaWJ4bWwxLiBNYXBzIHRvICZxdW90O2NoaWxkcmVuJnF1b3Q7LjwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVEb2NUeXBlJyBmaWxlPSd4bWx3cml0ZXInPgorICAgICAgPGluZm8+dGhpcyBtYWNybyBtYXBzIHRvIHhtbFRleHRXcml0ZXJXcml0ZURURDwvaW5mbz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nIGZpbGU9J3htbHdyaXRlcic+CisgICAgICA8aW5mbz5UaGlzIG1hY3JvIG1hcHMgdG8geG1sVGV4dFdyaXRlcldyaXRlUEk8L2luZm8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sWFBhdGhDaGVja0Vycm9yJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5DaGVjayBpZiBhbiBYUGF0aCBlcnJvciB3YXMgcmFpc2VkLiAgUmV0dXJucyB0cnVlIGlmIGFuIGVycm9yIGhhcyBiZWVuIHJhaXNlZCwgZmFsc2Ugb3RoZXJ3aXNlLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aEVtcHR5Tm9kZVNldCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+RW1wdGllcyBhIG5vZGUtc2V0LjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aEdldENvbnRleHROb2RlJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5HZXQgdGhlIGNvbnRleHQgbm9kZSBvZiBhbiBYUGF0aCBjb250ZXh0LiAgUmV0dXJucyB0aGUgY29udGV4dCBub2RlLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aEdldERvY3VtZW50JyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5HZXQgdGhlIGRvY3VtZW50IG9mIGFuIFhQYXRoIGNvbnRleHQuICBSZXR1cm5zIHRoZSBjb250ZXh0IGRvY3VtZW50LjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aEdldEVycm9yJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5HZXQgdGhlIGVycm9yIGNvZGUgb2YgYW4gWFBhdGggY29udGV4dC4gIFJldHVybnMgdGhlIGNvbnRleHQgZXJyb3IuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyBpbmZvPSdhbiBYUGF0aCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbFhQYXRoTm9kZVNldEdldExlbmd0aCcgZmlsZT0neHBhdGgnPgorICAgICAgPGluZm8+SW1wbGVtZW50IGEgZnVuY3Rpb25hbGl0eSBzaW1pbGFyIHRvIHRoZSBET00gTm9kZUxpc3QubGVuZ3RoLiAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBub2RlLXNldC48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J25zJyBpbmZvPSdhIG5vZGUtc2V0Jy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sWFBhdGhOb2RlU2V0SXNFbXB0eScgZmlsZT0neHBhdGgnPgorICAgICAgPGluZm8+Q2hlY2tzIHdoZXRoZXIgQG5zIGlzIGVtcHR5IG9yIG5vdC4gIFJldHVybnMgJVRSVUUgaWYgQG5zIGlzIGFuIGVtcHR5IG5vZGUtc2V0LjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aE5vZGVTZXRJdGVtJyBmaWxlPSd4cGF0aCc+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIGEgZnVuY3Rpb25hbGl0eSBzaW1pbGFyIHRvIHRoZSBET00gTm9kZUxpc3QuaXRlbSgpLiAgUmV0dXJucyB0aGUgeG1sTm9kZVB0ciBhdCB0aGUgZ2l2ZW4gQGluZGV4IGluIEBucyBvciBOVUxMIGlmIEBpbmRleCBpcyBvdXQgb2YgcmFuZ2UgKDAgdG8gbGVuZ3RoLTEpPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSducycgaW5mbz0nYSBub2RlLXNldCcvPgorICAgICAgPGFyZyBuYW1lPSdpbmRleCcgaW5mbz0naW5kZXggb2YgYSBub2RlIGluIHRoZSBzZXQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFJldHVybkJvb2xlYW4nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlB1c2hlcyB0aGUgYm9vbGVhbiBAdmFsIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyBpbmZvPSdhIGJvb2xlYW4nLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+UHVzaGVzIGFuIGVtcHR5IG5vZGUtc2V0IG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFJldHVybkVtcHR5U3RyaW5nJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5QdXNoZXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBzdGFjay48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sWFBhdGhSZXR1cm5FeHRlcm5hbCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+UHVzaGVzIHVzZXIgZGF0YSBvbiB0aGUgY29udGV4dCBzdGFjay48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgaW5mbz0ndXNlciBkYXRhJy8+CisgICAgPC9tYWNybz4KKyAgICA8bWFjcm8gbmFtZT0neG1sWFBhdGhSZXR1cm5GYWxzZScgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+UHVzaGVzIGZhbHNlIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFJldHVybk5vZGVTZXQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlB1c2hlcyB0aGUgbm9kZS1zZXQgQG5zIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFJldHVybk51bWJlcicgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+UHVzaGVzIHRoZSBkb3VibGUgQHZhbCBvbiB0aGUgY29udGV4dCBzdGFjay48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgaW5mbz0nYSBkb3VibGUnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFJldHVyblN0cmluZycgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+UHVzaGVzIHRoZSBzdHJpbmcgQHN0ciBvbiB0aGUgY29udGV4dCBzdGFjay48L2luZm8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgaW5mbz0nYSBzdHJpbmcnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFJldHVyblRydWUnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlB1c2hlcyB0cnVlIG9uIHRoZSBjb250ZXh0IHN0YWNrLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFNldEFyaXR5RXJyb3InIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlJhaXNlcyBhbiBYUEFUSF9JTlZBTElEX0FSSVRZIGVycm9yLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFNldEVycm9yJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5SYWlzZXMgYW4gZXJyb3IuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyBpbmZvPSdhbiBYUGF0aCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlcnInIGluZm89J2FuIHhtbFhQYXRoRXJyb3IgY29kZScvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbFhQYXRoU2V0VHlwZUVycm9yJyBmaWxlPSd4cGF0aEludGVybmFscyc+CisgICAgICA8aW5mbz5SYWlzZXMgYW4gWFBBVEhfSU5WQUxJRF9UWVBFIGVycm9yLjwvaW5mbz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L21hY3JvPgorICAgIDxtYWNybyBuYW1lPSd4bWxYUGF0aFN0YWNrSXNFeHRlcm5hbCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnPgorICAgICAgPGluZm8+Q2hlY2tzIGlmIHRoZSBjdXJyZW50IHZhbHVlIG9uIHRoZSBYUGF0aCBzdGFjayBpcyBhbiBleHRlcm5hbCBvYmplY3QuICBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgb2JqZWN0IG9uIHRoZSBzdGFjayBpcyBhbiBleHRlcm5hbCBvYmplY3QuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyBpbmZvPSdhbiBYUGF0aCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvbWFjcm8+CisgICAgPG1hY3JvIG5hbWU9J3htbFhQYXRoU3RhY2tJc05vZGVTZXQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkNoZWNrIGlmIHRoZSBjdXJyZW50IHZhbHVlIG9uIHRoZSBYUGF0aCBzdGFjayBpcyBhIG5vZGUgc2V0IG9yIGFuIFhTTFQgdmFsdWUgdHJlZS4gIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBvYmplY3Qgb24gdGhlIHN0YWNrIGlzIGEgbm9kZS1zZXQuPC9pbmZvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyBpbmZvPSdhbiBYUGF0aCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvbWFjcm8+CisgICAgPGVudW0gbmFtZT0nSFRNTF9ERVBSRUNBVEVEJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nMicgdHlwZT0naHRtbFN0YXR1cycvPgorICAgIDxlbnVtIG5hbWU9J0hUTUxfSU5WQUxJRCcgZmlsZT0nSFRNTHBhcnNlcicgdmFsdWU9JzEnIHR5cGU9J2h0bWxTdGF0dXMnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX05BJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nMCcgdHlwZT0naHRtbFN0YXR1cycgaW5mbz0nc29tZXRoaW5nIHdlIGRvbiZhcG9zO3QgY2hlY2sgYXQgYWxsJy8+CisgICAgPGVudW0gbmFtZT0nSFRNTF9QQVJTRV9DT01QQUNUJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nNjU1MzYnIHR5cGU9J2h0bWxQYXJzZXJPcHRpb24nIGluZm89JyBjb21wYWN0IHNtYWxsIHRleHQgbm9kZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX1BBUlNFX05PQkxBTktTJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nMjU2JyB0eXBlPSdodG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdyZW1vdmUgYmxhbmsgbm9kZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX1BBUlNFX05PRVJST1InIGZpbGU9J0hUTUxwYXJzZXInIHZhbHVlPSczMicgdHlwZT0naHRtbFBhcnNlck9wdGlvbicgaW5mbz0nc3VwcHJlc3MgZXJyb3IgcmVwb3J0cycvPgorICAgIDxlbnVtIG5hbWU9J0hUTUxfUEFSU0VfTk9JTVBMSUVEJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nODE5MicgdHlwZT0naHRtbFBhcnNlck9wdGlvbicgaW5mbz0nRG8gbm90IGFkZCBpbXBsaWVkIGh0bWwvYm9keS4uLiBlbGVtZW50cycvPgorICAgIDxlbnVtIG5hbWU9J0hUTUxfUEFSU0VfTk9ORVQnIGZpbGU9J0hUTUxwYXJzZXInIHZhbHVlPScyMDQ4JyB0eXBlPSdodG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdGb3JiaWQgbmV0d29yayBhY2Nlc3MnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX1BBUlNFX05PV0FSTklORycgZmlsZT0nSFRNTHBhcnNlcicgdmFsdWU9JzY0JyB0eXBlPSdodG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdzdXBwcmVzcyB3YXJuaW5nIHJlcG9ydHMnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX1BBUlNFX1BFREFOVElDJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nMTI4JyB0eXBlPSdodG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdwZWRhbnRpYyBlcnJvciByZXBvcnRpbmcnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX1BBUlNFX1JFQ09WRVInIGZpbGU9J0hUTUxwYXJzZXInIHZhbHVlPScxJyB0eXBlPSdodG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdSZWxheGVkIHBhcnNpbmcnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX1JFUVVJUkVEJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nMTInIHR5cGU9J2h0bWxTdGF0dXMnIGluZm89JyBWQUxJRCBiaXQgc2V0IHNvICggJmFtcDsgSFRNTF9WQUxJRCApIGlzIFRSVUUnLz4KKyAgICA8ZW51bSBuYW1lPSdIVE1MX1ZBTElEJyBmaWxlPSdIVE1McGFyc2VyJyB2YWx1ZT0nNCcgdHlwZT0naHRtbFN0YXR1cycvPgorICAgIDxlbnVtIG5hbWU9J1hMSU5LX0FDVFVBVEVfQVVUTycgZmlsZT0neGxpbmsnIHZhbHVlPScxJyB0eXBlPSd4bGlua0FjdHVhdGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTElOS19BQ1RVQVRFX05PTkUnIGZpbGU9J3hsaW5rJyB2YWx1ZT0nMCcgdHlwZT0neGxpbmtBY3R1YXRlJy8+CisgICAgPGVudW0gbmFtZT0nWExJTktfQUNUVUFURV9PTlJFUVVFU1QnIGZpbGU9J3hsaW5rJyB2YWx1ZT0nMicgdHlwZT0neGxpbmtBY3R1YXRlJy8+CisgICAgPGVudW0gbmFtZT0nWExJTktfU0hPV19FTUJFRCcgZmlsZT0neGxpbmsnIHZhbHVlPScyJyB0eXBlPSd4bGlua1Nob3cnLz4KKyAgICA8ZW51bSBuYW1lPSdYTElOS19TSE9XX05FVycgZmlsZT0neGxpbmsnIHZhbHVlPScxJyB0eXBlPSd4bGlua1Nob3cnLz4KKyAgICA8ZW51bSBuYW1lPSdYTElOS19TSE9XX05PTkUnIGZpbGU9J3hsaW5rJyB2YWx1ZT0nMCcgdHlwZT0neGxpbmtTaG93Jy8+CisgICAgPGVudW0gbmFtZT0nWExJTktfU0hPV19SRVBMQUNFJyBmaWxlPSd4bGluaycgdmFsdWU9JzMnIHR5cGU9J3hsaW5rU2hvdycvPgorICAgIDxlbnVtIG5hbWU9J1hMSU5LX1RZUEVfRVhURU5ERUQnIGZpbGU9J3hsaW5rJyB2YWx1ZT0nMicgdHlwZT0neGxpbmtUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWExJTktfVFlQRV9FWFRFTkRFRF9TRVQnIGZpbGU9J3hsaW5rJyB2YWx1ZT0nMycgdHlwZT0neGxpbmtUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWExJTktfVFlQRV9OT05FJyBmaWxlPSd4bGluaycgdmFsdWU9JzAnIHR5cGU9J3hsaW5rVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hMSU5LX1RZUEVfU0lNUExFJyBmaWxlPSd4bGluaycgdmFsdWU9JzEnIHR5cGU9J3hsaW5rVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9BVFRSSUJVVEVfQ0RBVEEnIGZpbGU9J3RyZWUnIHZhbHVlPScxJyB0eXBlPSd4bWxBdHRyaWJ1dGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0FUVFJJQlVURV9ERUNMJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMTYnIHR5cGU9J3htbEVsZW1lbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0FUVFJJQlVURV9FTlRJVElFUycgZmlsZT0ndHJlZScgdmFsdWU9JzYnIHR5cGU9J3htbEF0dHJpYnV0ZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQVRUUklCVVRFX0VOVElUWScgZmlsZT0ndHJlZScgdmFsdWU9JzUnIHR5cGU9J3htbEF0dHJpYnV0ZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OJyBmaWxlPSd0cmVlJyB2YWx1ZT0nOScgdHlwZT0neG1sQXR0cmlidXRlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9BVFRSSUJVVEVfRklYRUQnIGZpbGU9J3RyZWUnIHZhbHVlPSc0JyB0eXBlPSd4bWxBdHRyaWJ1dGVEZWZhdWx0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0FUVFJJQlVURV9JRCcgZmlsZT0ndHJlZScgdmFsdWU9JzInIHR5cGU9J3htbEF0dHJpYnV0ZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQVRUUklCVVRFX0lEUkVGJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMycgdHlwZT0neG1sQXR0cmlidXRlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9BVFRSSUJVVEVfSURSRUZTJyBmaWxlPSd0cmVlJyB2YWx1ZT0nNCcgdHlwZT0neG1sQXR0cmlidXRlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9BVFRSSUJVVEVfSU1QTElFRCcgZmlsZT0ndHJlZScgdmFsdWU9JzMnIHR5cGU9J3htbEF0dHJpYnV0ZURlZmF1bHQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQVRUUklCVVRFX05NVE9LRU4nIGZpbGU9J3RyZWUnIHZhbHVlPSc3JyB0eXBlPSd4bWxBdHRyaWJ1dGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0FUVFJJQlVURV9OTVRPS0VOUycgZmlsZT0ndHJlZScgdmFsdWU9JzgnIHR5cGU9J3htbEF0dHJpYnV0ZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQVRUUklCVVRFX05PREUnIGZpbGU9J3RyZWUnIHZhbHVlPScyJyB0eXBlPSd4bWxFbGVtZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9BVFRSSUJVVEVfTk9ORScgZmlsZT0ndHJlZScgdmFsdWU9JzEnIHR5cGU9J3htbEF0dHJpYnV0ZURlZmF1bHQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQVRUUklCVVRFX05PVEFUSU9OJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMTAnIHR5cGU9J3htbEF0dHJpYnV0ZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQVRUUklCVVRFX1JFUVVJUkVEJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMicgdHlwZT0neG1sQXR0cmlidXRlRGVmYXVsdCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQnIGZpbGU9J3RyZWUnIHZhbHVlPScxJyB0eXBlPSd4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lJyBpbmZvPSdkb3VibGUgZWFjaCB0aW1lIG9uZSBuZWVkIHRvIGdyb3cnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQlVGRkVSX0FMTE9DX0VYQUNUJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMicgdHlwZT0neG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZScgaW5mbz0nZ3JvdyBvbmx5IHRvIHRoZSBtaW5pbWFsIHNpemUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRScgZmlsZT0ndHJlZScgdmFsdWU9JzMnIHR5cGU9J3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIGluZm89J2ltbXV0YWJsZSBidWZmZXInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQlVGRkVSX0FMTE9DX0lPJyBmaWxlPSd0cmVlJyB2YWx1ZT0nNCcgdHlwZT0neG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZScgaW5mbz0nIHNwZWNpYWwgYWxsb2NhdGlvbiBzY2hlbWUgdXNlZCBmb3IgSS9PJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0MxNE5fMV8wJyBmaWxlPSdjMTRuJyB2YWx1ZT0nMCcgdHlwZT0neG1sQzE0Tk1vZGUnIGluZm89J09yaWdpYW5hbCBDMTROIDEuMCBzcGVjJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0MxNE5fMV8xJyBmaWxlPSdjMTRuJyB2YWx1ZT0nMicgdHlwZT0neG1sQzE0Tk1vZGUnIGluZm89JyBDMTROIDEuMSBzcGVjJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0MxNE5fQ1JFQVRFX0NUWFQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTk1MCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0MxNE5fQ1JFQVRFX1NUQUNLJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE5NTInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTk1MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DMTROX0VYQ0xVU0lWRV8xXzAnIGZpbGU9J2MxNG4nIHZhbHVlPScxJyB0eXBlPSd4bWxDMTROTW9kZScgaW5mbz0nRXhjbHVzaXZlIEMxNE4gMS4wIHNwZWMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQzE0Tl9JTlZBTElEX05PREUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTk1MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxOTUzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0MxNE5fUkVMQVRJVkVfTkFNRVNQQUNFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE5NTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTk1NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DMTROX1JFUVVJUkVTX1VURjgnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTk1MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxOTUxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0MxNE5fVU5LTk9XX05PREUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTk1NCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxOTU0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NBVEFMT0dfRU5UUllfQlJPS0VOJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2NTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTY1MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DQVRBTE9HX01JU1NJTkdfQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjUwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0FUQUxPR19OT1RfQ0FUQUxPRycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjUzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2NTMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0FUQUxPR19QUkVGRVJfVkFMVUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTY1MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNjUyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NBVEFMT0dfUkVDVVJTSU9OJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2NTQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTY1NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DQVRBX0FMTE9XX0FMTCcgZmlsZT0nY2F0YWxvZycgdmFsdWU9JzMnIHR5cGU9J3htbENhdGFsb2dBbGxvdycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DQVRBX0FMTE9XX0RPQ1VNRU5UJyBmaWxlPSdjYXRhbG9nJyB2YWx1ZT0nMicgdHlwZT0neG1sQ2F0YWxvZ0FsbG93Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NBVEFfQUxMT1dfR0xPQkFMJyBmaWxlPSdjYXRhbG9nJyB2YWx1ZT0nMScgdHlwZT0neG1sQ2F0YWxvZ0FsbG93Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NBVEFfQUxMT1dfTk9ORScgZmlsZT0nY2F0YWxvZycgdmFsdWU9JzAnIHR5cGU9J3htbENhdGFsb2dBbGxvdycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DQVRBX1BSRUZFUl9OT05FJyBmaWxlPSdjYXRhbG9nJyB2YWx1ZT0nMCcgdHlwZT0neG1sQ2F0YWxvZ1ByZWZlcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DQVRBX1BSRUZFUl9QVUJMSUMnIGZpbGU9J2NhdGFsb2cnIHZhbHVlPScxJyB0eXBlPSd4bWxDYXRhbG9nUHJlZmVyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NBVEFfUFJFRkVSX1NZU1RFTScgZmlsZT0nY2F0YWxvZycgdmFsdWU9JzInIHR5cGU9J3htbENhdGFsb2dQcmVmZXInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0RBVEFfU0VDVElPTl9OT0RFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nNCcgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQJyBmaWxlPSdlbmNvZGluZycgdmFsdWU9JzE5JyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J0lTTy0yMDIyLUpQJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8xJyBmaWxlPSdlbmNvZGluZycgdmFsdWU9JzEwJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J0lTTy04ODU5LTEgSVNPIExhdGluIDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR184ODU5XzInIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nMTEnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nSVNPLTg4NTktMiBJU08gTGF0aW4gMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMycgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPScxMicgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdJU08tODg1OS0zJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfODg1OV80JyBmaWxlPSdlbmNvZGluZycgdmFsdWU9JzEzJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J0lTTy04ODU5LTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR184ODU5XzUnIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nMTQnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nSVNPLTg4NTktNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNicgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPScxNScgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdJU08tODg1OS02Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfODg1OV83JyBmaWxlPSdlbmNvZGluZycgdmFsdWU9JzE2JyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J0lTTy04ODU5LTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR184ODU5XzgnIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nMTcnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nSVNPLTg4NTktOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOScgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPScxOCcgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdJU08tODg1OS05Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfQVNDSUknIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nMjInIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nIHB1cmUgQVNDSUknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR19FQkNESUMnIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nNicgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdFQkNESUMgdWghJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfRVJST1InIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nLTEnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nTm8gY2hhciBlbmNvZGluZyBkZXRlY3RlZCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUCcgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPScyMScgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdFVUMtSlAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR19OT05FJyBmaWxlPSdlbmNvZGluZycgdmFsdWU9JzAnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nTm8gY2hhciBlbmNvZGluZyBkZXRlY3RlZCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEFSX0VOQ09ESU5HX1NISUZUX0pJUycgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPScyMCcgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdTaGlmdF9KSVMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR19VQ1MyJyBmaWxlPSdlbmNvZGluZycgdmFsdWU9JzknIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nVUNTLTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkUnIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nNScgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdVQ1MtNCBiaWcgZW5kaWFuJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFJyBmaWxlPSdlbmNvZGluZycgdmFsdWU9JzQnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nVUNTLTQgbGl0dGxlIGVuZGlhbicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEFSX0VOQ09ESU5HX1VDUzRfMjE0MycgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPSc3JyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J1VDUy00IHVudXN1YWwgb3JkZXJpbmcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTInIGZpbGU9J2VuY29kaW5nJyB2YWx1ZT0nOCcgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdVQ1MtNCB1bnVzdWFsIG9yZGVyaW5nJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZCRScgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPSczJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J1VURi0xNiBiaWcgZW5kaWFuJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRScgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPScyJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J1VURi0xNiBsaXR0bGUgZW5kaWFuJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCcgZmlsZT0nZW5jb2RpbmcnIHZhbHVlPScxJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J1VURi04Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLXycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc2MDA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMzMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfRU5USVRZX1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAxMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDEyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX0ZPVU5EX0FUVFJJQlVURScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfRk9VTkRfQ0RBVEEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAwMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDAzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX0ZPVU5EX0NPTU1FTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAwNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDA3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX0ZPVU5EX0RPQ1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAwOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDA4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX0ZPVU5EX0VMRU1FTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAwMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX0ZPVU5EX0VOVElUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZUkVGJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMDQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAwNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19GT1VORF9GUkFHTUVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDA5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMDknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfRk9VTkRfTk9UQVRJT04nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAxMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDEwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX0ZPVU5EX1BJJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMDYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAwNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19GT1VORF9URVhUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMDInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAwMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19OQU1FX05PVF9OVUxMJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMzcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAzNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19OT1RfQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDIzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9UX0FUVFJfREVDTCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDI0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9UX0RURCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDIyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9UX0VMRU1fREVDTCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDI1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9UX0VOVElUWV9ERUNMJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMjYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAyNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19OT1RfTkNOQU1FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMzQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAzNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19OT1RfTlNfREVDTCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDI3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9UX1VURjgnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAzMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDMyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX05PX0RJQ1QnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAzMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDMzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX05PX0RPQycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDE0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9fRUxFTScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDE2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9fSFJFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDI4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDE1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMTUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9fTkVYVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDIwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTk9fUEFSRU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMTMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAxMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19OT19QUkVWJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMTgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAxOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19OU19BTkNFU1RPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDMxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMzEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfTlNfU0NPUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAzMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDMwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX09VVFNJREVfRElDVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDM1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMzUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAxMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9DSEVDS19XUk9OR19ET0MnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAxNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDE3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX1dST05HX05BTUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAzNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDM2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX1dST05HX05FWFQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAyMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDIxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0NIRUNLX1dST05HX1BBUkVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDI5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMjknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfV1JPTkdfUFJFVicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDE5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMTknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ0hFQ0tfWCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc2MDA2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JyA1MDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfQ09NTUVOVF9OT0RFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nOCcgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRE9DQl9ET0NVTUVOVF9OT0RFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMjEnIHR5cGU9J3htbEVsZW1lbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERScgZmlsZT0ndHJlZScgdmFsdWU9JzExJyB0eXBlPSd4bWxFbGVtZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9ET0NVTUVOVF9OT0RFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nOScgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRE9DVU1FTlRfVFlQRV9OT0RFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMTAnIHR5cGU9J3htbEVsZW1lbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RPQ19EVERWQUxJRCcgZmlsZT0ndHJlZScgdmFsdWU9JzgnIHR5cGU9J3htbERvY1Byb3BlcnRpZXMnIGluZm89J0RURCB2YWxpZGF0aW9uIHdhcyBzdWNjZXNzZnVsJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RPQ19IVE1MJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMTI4JyB0eXBlPSd4bWxEb2NQcm9wZXJ0aWVzJyBpbmZvPScgcGFyc2VkIG9yIGJ1aWx0IEhUTUwgZG9jdW1lbnQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRE9DX0lOVEVSTkFMJyBmaWxlPSd0cmVlJyB2YWx1ZT0nNjQnIHR5cGU9J3htbERvY1Byb3BlcnRpZXMnIGluZm89J2J1aWx0IGZvciBpbnRlcm5hbCBwcm9jZXNzaW5nJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RPQ19OU1ZBTElEJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMicgdHlwZT0neG1sRG9jUHJvcGVydGllcycgaW5mbz0nZG9jdW1lbnQgaXMgTmFtZXNwYWNlIHZhbGlkJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RPQ19PTEQxMCcgZmlsZT0ndHJlZScgdmFsdWU9JzQnIHR5cGU9J3htbERvY1Byb3BlcnRpZXMnIGluZm89J3BhcnNlZCB3aXRoIG9sZCBYTUwtMS4wIHBhcnNlcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9ET0NfVVNFUkJVSUxUJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMzInIHR5cGU9J3htbERvY1Byb3BlcnRpZXMnIGluZm89J0RvY3VtZW50IHdhcyBidWlsdCB1c2luZyB0aGUgQVBJCithbmQgbm90IGJ5IHBhcnNpbmcgYW4gaW5zdGFuY2UnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRE9DX1dFTExGT1JNRUQnIGZpbGU9J3RyZWUnIHZhbHVlPScxJyB0eXBlPSd4bWxEb2NQcm9wZXJ0aWVzJyBpbmZvPSdkb2N1bWVudCBpcyBYTUwgd2VsbCBmb3JtZWQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRE9DX1hJTkNMVURFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMTYnIHR5cGU9J3htbERvY1Byb3BlcnRpZXMnIGluZm89J1hJbmNsdWRlIHN1YnN0aXR1dGlvbiB3YXMgZG9uZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfQVRUUklCVVRFX0RFRkFVTFQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0FUVFJJQlVURV9SRURFRklORUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfQVRUUklCVVRFX1ZBTFVFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0NPTlRFTlRfRVJST1InIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUwMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfQ09OVEVOVF9NT0RFTCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTA0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9DT05URU5UX05PVF9ERVRFUk1JTklTVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MDUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTA1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9ESUZGRVJFTlRfUFJFRklYJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0RVUF9UT0tFTicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1NDEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTQxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9FTEVNX0RFRkFVTFRfTkFNRVNQQUNFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0VMRU1fTkFNRVNQQUNFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0VMRU1fUkVERUZJTkVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUwOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MDknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0VNUFRZX05PVEFUSU9OJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUxMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0VOVElUWV9UWVBFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUxMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MTEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0lEX0ZJWEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUxMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX0lEX1JFREVGSU5FRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MTMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTEzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9JRF9TVUJTRVQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTE0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUxNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfSU5WQUxJRF9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTE1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9JTlZBTElEX0RFRkFVTFQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTE2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUxNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfTE9BRF9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTE3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MTgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTE4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9NSVhFRF9DT1JSVVBUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUxOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MTknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX01VTFRJUExFX0lEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUyMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX05PREUnIGZpbGU9J3RyZWUnIHZhbHVlPScxNCcgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX05PVEFUSU9OX1JFREVGSU5FRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MjYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTI2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9OT1RBVElPTl9WQUxVRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MjcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTI3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9OT1RfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTI4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUyOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfTk9UX1BDREFUQScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MjknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTI5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9OT1RfU1RBTkRBTE9ORScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MzAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTMwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9OT19ET0MnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTIxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfTk9fRFREJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUyMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MjInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX05PX0VMRU1fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MjMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTIzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9OT19QUkVGSVgnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTI0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUyNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfTk9fUk9PVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MjUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTI1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9ST09UX05BTUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTMxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUzMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTM4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUzOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MzInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTMyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9VTktOT1dOX0FUVFJJQlVURScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MzMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTMzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9VTktOT1dOX0VMRU0nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTM0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUzNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfVU5LTk9XTl9FTlRJVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTM1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUzNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfVU5LTk9XTl9JRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MzYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTM2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0RURF9VTktOT1dOX05PVEFUSU9OJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUzNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MzcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRFREX1hNTElEX1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTQwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzU0MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9EVERfWE1MSURfVkFMVUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTM5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzUzOScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCcgZmlsZT0ndHJlZScgdmFsdWU9JzInIHR5cGU9J3htbEVsZW1lbnRDb250ZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVCcgZmlsZT0ndHJlZScgdmFsdWU9JzMnIHR5cGU9J3htbEVsZW1lbnRDb250ZW50T2NjdXInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRUxFTUVOVF9DT05URU5UX09OQ0UnIGZpbGU9J3RyZWUnIHZhbHVlPScxJyB0eXBlPSd4bWxFbGVtZW50Q29udGVudE9jY3VyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQnIGZpbGU9J3RyZWUnIHZhbHVlPScyJyB0eXBlPSd4bWxFbGVtZW50Q29udGVudE9jY3VyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VMRU1FTlRfQ09OVEVOVF9PUicgZmlsZT0ndHJlZScgdmFsdWU9JzQnIHR5cGU9J3htbEVsZW1lbnRDb250ZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMScgdHlwZT0neG1sRWxlbWVudENvbnRlbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTJyBmaWxlPSd0cmVlJyB2YWx1ZT0nNCcgdHlwZT0neG1sRWxlbWVudENvbnRlbnRPY2N1cicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX0NPTlRFTlRfU0VRJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMycgdHlwZT0neG1sRWxlbWVudENvbnRlbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VMRU1FTlRfREVDTCcgZmlsZT0ndHJlZScgdmFsdWU9JzE1JyB0eXBlPSd4bWxFbGVtZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX05PREUnIGZpbGU9J3RyZWUnIHZhbHVlPScxJyB0eXBlPSd4bWxFbGVtZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX1RZUEVfQU5ZJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMicgdHlwZT0neG1sRWxlbWVudFR5cGVWYWwnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQnIGZpbGU9J3RyZWUnIHZhbHVlPSc0JyB0eXBlPSd4bWxFbGVtZW50VHlwZVZhbCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX1RZUEVfRU1QVFknIGZpbGU9J3RyZWUnIHZhbHVlPScxJyB0eXBlPSd4bWxFbGVtZW50VHlwZVZhbCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX1RZUEVfTUlYRUQnIGZpbGU9J3RyZWUnIHZhbHVlPSczJyB0eXBlPSd4bWxFbGVtZW50VHlwZVZhbCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMCcgdHlwZT0neG1sRWxlbWVudFR5cGVWYWwnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRU5USVRZX0RFQ0wnIGZpbGU9J3RyZWUnIHZhbHVlPScxNycgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRU5USVRZX05PREUnIGZpbGU9J3RyZWUnIHZhbHVlPSc2JyB0eXBlPSd4bWxFbGVtZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FTlRJVFlfUkVGX05PREUnIGZpbGU9J3RyZWUnIHZhbHVlPSc1JyB0eXBlPSd4bWxFbGVtZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfQVRUTElTVF9OT1RfRklOSVNIRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0FUVExJU1RfTk9UX1NUQVJURUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0FUVFJJQlVURV9OT1RfRklOSVNIRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNDAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNDAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczOScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfQVRUUklCVVRFX1JFREVGSU5FRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc0MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc0MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfQVRUUklCVVRFX1dJVEhPVVRfVkFMVUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNDEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0NEQVRBX05PVF9GSU5JU0hFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc2MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc2MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfQ0hBUlJFRl9BVF9FT0YnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0NIQVJSRUZfSU5fRFREJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9DSEFSUkVGX0lOX0VQSUxPRycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfQ0hBUlJFRl9JTl9QUk9MT0cnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0NPTU1FTlRfTk9UX0ZJTklTSEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQ1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzQ1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9DT05EU0VDX0lOVkFMSUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nODMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nODMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0NPTkRTRUNfSU5WQUxJRF9LRVlXT1JEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzk1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzk1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfQ09ORFNFQ19OT1RfU1RBUlRFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNjEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0RPQ1VNRU5UX0VNUFRZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRE9DVU1FTlRfRU5EJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRE9DVU1FTlRfU1RBUlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzU0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzU0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTkNPRElOR19OQU1FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzc5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzc5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlSRUZfQVRfRU9GJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlSRUZfSU5fRFREJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlSRUZfSU5fRVBJTE9HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlSRUZfSU5fUFJPTE9HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlSRUZfTk9fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRU5USVRZX0JPVU5EQVJZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzkwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzkwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlfQ0hBUl9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc4NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc4NycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzI5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzI5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlfTE9PUCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc4OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc4OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRU5USVRZX05PVF9GSU5JU0hFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfRU5USVRZX05PVF9TVEFSVEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzM2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzM2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FTlRJVFlfUEVfSU5URVJOQUwnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nODgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nODgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0VOVElUWV9QUk9DRVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0VRVUFMX1JFUVVJUkVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzc1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzc1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyJyB0eXBlPSd4bWxFcnJvckxldmVsJyBpbmZvPSdBIHJlY292ZXJhYmxlIGVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FWFRSQV9DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzg2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzg2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9FWFRfRU5USVRZX1NUQU5EQUxPTkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nODInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nODInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzYwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzYwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9GQVRBTCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczJyB0eXBlPSd4bWxFcnJvckxldmVsJyBpbmZvPScgQSBmYXRhbCBlcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfR1RfUkVRVUlSRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNzMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNzMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0hZUEhFTl9JTl9DT01NRU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzgwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzgwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9JTlRFUk5BTF9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0lOVkFMSURfQ0hBUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0lOVkFMSURfQ0hBUlJFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0lOVkFMSURfREVDX0NIQVJSRUYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9JTlZBTElEX0VOQ09ESU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzgxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzgxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfSU5WQUxJRF9VUkknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nOTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nOTEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQ0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzQ0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9MSVRFUkFMX05PVF9TVEFSVEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzQzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9MVFNMQVNIX1JFUVVJUkVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzc0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzc0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9MVF9JTl9BVFRSSUJVVEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX0xUX1JFUVVJUkVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzcyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzcyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9NSVNQTEFDRURfQ0RBVEFfRU5EJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzYyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzYyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9NSVNTSU5HX0VOQ09ESU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX01JWEVEX05PVF9GSU5JU0hFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc1MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc1MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfTUlYRURfTk9UX1NUQVJURUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX05BTUVfUkVRVUlSRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNjgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNjgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX05NVE9LRU5fUkVRVUlSRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNjcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNjcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX05PTkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMCcgdHlwZT0neG1sRXJyb3JMZXZlbCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQ5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzQ5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9OT1RBVElPTl9OT1RfU1RBUlRFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc0OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc0OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfTk9UQVRJT05fUFJPQ0VTU0lORycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9OT1RfU1RBTkRBTE9ORScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc4NScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc4NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfTk9fRFREJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzk0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzk0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9OT19NRU1PUlknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9OU19ERUNMX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzM1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzM1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9PSycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1BDREFUQV9SRVFVSVJFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc2OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc2OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfUEVSRUZfQVRfRU9GJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9QRVJFRl9JTl9FUElMT0cnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1BFUkVGX0lOX1BST0xPRycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxOScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfUEVSRUZfTk9fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfUEVSRUZfU0VNSUNPTF9NSVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzI1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzI1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9QSV9OT1RfRklOSVNIRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNDcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNDcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1BJX05PVF9TVEFSVEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQ2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzQ2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9QVUJJRF9SRVFVSVJFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc3MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc3MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfUkVTRVJWRURfWE1MX05BTUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNjQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNjQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1NFUEFSQVRPUl9SRVFVSVJFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc2NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc2NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfU1BBQ0VfUkVRVUlSRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNjUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNjUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1NUQU5EQUxPTkVfVkFMVUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNzgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNzgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzM0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzM0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9TVFJJTkdfTk9UX1NUQVJURUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1RBR19OQU1FX01JU01BVENIJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzc2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzc2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9Jzc3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89Jzc3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9VTkRFQ0xBUkVEX0VOVElUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfVU5LTk9XTl9FTkNPRElORycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfVU5LTk9XTl9WRVJTSU9OJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1VOUEFSU0VEX0VOVElUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1VSSV9GUkFHTUVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc5MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc5MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfVVJJX1JFUVVJUkVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzcwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzcwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9WQUxVRV9SRVFVSVJFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc4NCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc4NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfVkVSU0lPTl9NSVNNQVRDSCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VSUl9WRVJTSU9OX01JU1NJTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nOTYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nOTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1dBUk5JTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMScgdHlwZT0neG1sRXJyb3JMZXZlbCcgaW5mbz0nQSBzaW1wbGUgd2FybmluZycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FUlJfWE1MREVDTF9OT1RfRklOSVNIRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNTYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVhQX0FUT00nIGZpbGU9J3htbHJlZ2V4cCcgdmFsdWU9JzInIHR5cGU9J3htbEV4cE5vZGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VYUF9DT1VOVCcgZmlsZT0neG1scmVnZXhwJyB2YWx1ZT0nNScgdHlwZT0neG1sRXhwTm9kZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVhQX0VNUFRZJyBmaWxlPSd4bWxyZWdleHAnIHZhbHVlPScwJyB0eXBlPSd4bWxFeHBOb2RlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FWFBfRk9SQklEJyBmaWxlPSd4bWxyZWdleHAnIHZhbHVlPScxJyB0eXBlPSd4bWxFeHBOb2RlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9FWFBfT1InIGZpbGU9J3htbHJlZ2V4cCcgdmFsdWU9JzQnIHR5cGU9J3htbEV4cE5vZGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VYUF9TRVEnIGZpbGU9J3htbHJlZ2V4cCcgdmFsdWU9JzMnIHR5cGU9J3htbEV4cE5vZGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWScgZmlsZT0nZW50aXRpZXMnIHZhbHVlPScyJyB0eXBlPSd4bWxFbnRpdHlUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZJyBmaWxlPSdlbnRpdGllcycgdmFsdWU9JzMnIHR5cGU9J3htbEVudGl0eVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWScgZmlsZT0nZW50aXRpZXMnIHZhbHVlPSc1JyB0eXBlPSd4bWxFbnRpdHlUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZST01fQzE0TicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMScgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSBDYW5vbmljYWxpemF0aW9uIG1vZHVsZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX0NBVEFMT0cnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjAnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgQ2F0YWxvZyBtb2R1bGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9DSEVDSycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyNCcgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSBlcnJvciBjaGVja2luZyBtb2R1bGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9EQVRBVFlQRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNScgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSBXM0MgWE1MIFNjaGVtYXMgRGF0YXR5cGUgbW9kdWxlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZST01fRFREJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgWE1MIERURCB2YWxpZGF0aW9uIHdpdGggcGFyc2VyIGNvbnRleCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX0ZUUCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc5JyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIEZUUCBtb2R1bGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9IVE1MJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzUnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgSFRNTCBwYXJzZXInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9IVFRQJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwJyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIEhUVFAgbW9kdWxlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZST01fSTE4TicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyNycgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSBtb2R1bGUgaGFuZGxpbmcgY2hhcmFjdGVyIGNvbnZlcnNpb24nLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9JTycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc4JyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIElucHV0L091dHB1dCBzdGFjaycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX01FTU9SWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc2JyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIG1lbW9yeSBhbGxvY2F0b3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9NT0RVTEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjYnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSBtb2R1bCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX05BTUVTUEFDRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczJyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIFhNTCBOYW1lc3BhY2UgbW9kdWxlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZST01fTk9ORScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScwJyB0eXBlPSd4bWxFcnJvckRvbWFpbicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX09VVFBVVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc3JyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIHNlcmlhbGl6YXRpb24gY29kZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX1BBUlNFUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxJyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIFhNTCBwYXJzZXInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9SRUdFWFAnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTQnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgcmVndWxhciBleHByZXNzaW9ucyBtb2R1bGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9SRUxBWE5HUCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxOCcgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSBSZWxheC1ORyBwYXJzZXIgbW9kdWxlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZST01fUkVMQVhOR1YnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTknIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgUmVsYXgtTkcgdmFsaWRhdG9yIG1vZHVsZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX1NDSEVNQVNQJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2JyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIFczQyBYTUwgU2NoZW1hcyBwYXJzZXIgbW9kdWxlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZST01fU0NIRU1BU1YnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgVzNDIFhNTCBTY2hlbWFzIHZhbGlkYXRpb24gbW9kdWxlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZST01fU0NIRU1BVFJPTlYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjgnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPScgVGhlIFNjaGVtYXRyb24gdmFsaWRhdG9yIG1vZHVsZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX1RSRUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMicgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSB0cmVlIG1vZHVsZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX1ZBTElEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzIzJyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIFhNTCBEVEQgdmFsaWRhdGlvbiB3aXRoIHZhbGlkIGNvbnRleHQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9XUklURVInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjUnIHR5cGU9J3htbEVycm9yRG9tYWluJyBpbmZvPSdUaGUgeG1sd3JpdGVyIG1vZHVsZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GUk9NX1hJTkNMVURFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExJyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIFhJbmNsdWRlIHByb2Nlc3NpbmcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9YUEFUSCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMicgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSBYUGF0aCBtb2R1bGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9YUE9JTlRFUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMycgdHlwZT0neG1sRXJyb3JEb21haW4nIGluZm89J1RoZSBYUG9pbnRlciBtb2R1bGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlJPTV9YU0xUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzIyJyB0eXBlPSd4bWxFcnJvckRvbWFpbicgaW5mbz0nVGhlIFhTTFQgZW5naW5lIGZyb20gbGlieHNsdCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GVFBfQUNDTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjAwMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyMDAyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0ZUUF9FUFNWX0FOU1dFUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMDAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzIwMDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfRlRQX1BBU1ZfQU5TV0VSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzIwMDAnIHR5cGU9J3htbFBhcnNlckVycm9ycycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9GVFBfVVJMX1NZTlRBWCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMDAzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzIwMDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSFRNTF9ET0NVTUVOVF9OT0RFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nMTMnIHR5cGU9J3htbEVsZW1lbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0hUTUxfU1RSVUNVUkVfRVJST1InIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nODAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSFRNTF9VTktOT1dOX1RBRycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc4MDEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nODAxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0hUVFBfVU5LTk9XTl9IT1NUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzIwMjInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjAyMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9IVFRQX1VSTF9TWU5UQVgnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjAyMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0hUVFBfVVNFX0lQJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzIwMjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjAyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JMThOX0NPTlZfRkFJTEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzYwMDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNjAwMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JMThOX0VYQ0VTU19IQU5ETEVSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzYwMDInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNjAwMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JMThOX05PX0hBTkRMRVInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNjAwMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc2MDAxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0kxOE5fTk9fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc2MDAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSTE4Tl9OT19PVVRQVVQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNjAwNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc2MDA0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZJyBmaWxlPSdlbnRpdGllcycgdmFsdWU9JzEnIHR5cGU9J3htbEVudGl0eVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWScgZmlsZT0nZW50aXRpZXMnIHZhbHVlPSc0JyB0eXBlPSd4bWxFbnRpdHlUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZJyBmaWxlPSdlbnRpdGllcycgdmFsdWU9JzYnIHR5cGU9J3htbEVudGl0eVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fQlVGRkVSX0ZVTEwnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTU0OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTQ4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VBQ0NFUycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUFERFJJTlVTRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTU0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1NTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUFGTk9TVVBQT1JUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1NTYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTU1NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FQUdBSU4nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUwMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTAyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VBTFJFQURZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1NTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTU1NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FQkFERicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTAzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUJBRE1TRycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTA0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUJVU1knIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUwNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTA1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VDQU5DRUxFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTA2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MDYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUNISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MDcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUwNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FQ09OTlJFRlVTRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTU1MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTUyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VERUFETEsnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUwOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTA4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VET00nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUwOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTA5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VFWElTVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTEwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUZBVUxUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUxMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FRkJJRycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTEyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUlOUFJPR1JFU1MnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUxMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTEzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VJTlRSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MTQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUxNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FSU5WQUwnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUxNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTE1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VJTycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTE2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUlTQ09OTicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTUxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1NTEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRUlTRElSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUxNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FTUZJTEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUxOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTE4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VNTElOSycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTE5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MTknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU1TR1NJWkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUyMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTIwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VOQU1FVE9PTE9ORycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTIxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MjEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5DT0RFUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTQ0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1NDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5FVFVOUkVBQ0gnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTU1MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTUzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VORklMRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTIyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MjInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5PREVWJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MjMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUyMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FTk9FTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUyNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTI0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VOT0VYRUMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUyNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTI1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VOT0xDSycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTI2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MjYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5PTUVNJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MjcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUyNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FTk9TUEMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUyOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTI4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VOT1NZUycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTI5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MjknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5PVERJUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTMwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MzAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5PVEVNUFRZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MzEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUzMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FTk9UU09DSycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTUwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1NTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5PVFNVUCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTMyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MzInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRU5PVFRZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MzMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUzMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FTlhJTycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTM0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1MzQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fRVBFUk0nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUzNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTM1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VQSVBFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MzYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUzNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FUkFOR0UnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUzNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTM3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VST0ZTJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1MzgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTUzOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FU1BJUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTUzOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTM5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VTUkNIJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1NDAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTU0MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19FVElNRURPVVQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTU0MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTQxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX0lPX0VYREVWJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1NDInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTU0MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19GTFVTSCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTQ1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1NDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fTE9BRF9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTQ5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1NDknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fTkVUV09SS19BVFRFTVBUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE1NDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTU0MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9JT19OT19JTlBVVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTQ3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE1NDcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fVU5LTk9XTicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNTAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfSU9fV1JJVEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTU0NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNTQ2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX01PRFVMRV9DTE9TRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc0OTAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzQ5MDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfTU9EVUxFX0xBWlknIGZpbGU9J3htbG1vZHVsZScgdmFsdWU9JzEnIHR5cGU9J3htbE1vZHVsZU9wdGlvbicgaW5mbz0nbGF6eSBiaW5kaW5nJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX01PRFVMRV9MT0NBTCcgZmlsZT0neG1sbW9kdWxlJyB2YWx1ZT0nMicgdHlwZT0neG1sTW9kdWxlT3B0aW9uJyBpbmZvPScgbG9jYWwgYmluZGluZycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9NT0RVTEVfT1BFTicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc0OTAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzQ5MDAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfTkFNRVNQQUNFX0RFQ0wnIGZpbGU9J3RyZWUnIHZhbHVlPScxOCcgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfTk9UQVRJT05fTk9ERScgZmlsZT0ndHJlZScgdmFsdWU9JzEyJyB0eXBlPSd4bWxFbGVtZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9OU19FUlJfQVRUUklCVVRFX1JFREVGSU5FRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjAzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX05TX0VSUl9DT0xPTicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMDUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjA1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX05TX0VSUl9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMDQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjA0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX05TX0VSUl9RTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScyMDInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMjAyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX05TX0VSUl9VTkRFRklORURfTkFNRVNQQUNFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzIwMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScyMDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMjAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRScgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTInIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J3dpdGhpbiBhbiBhdHRyaWJ1dGUgdmFsdWUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX0NEQVRBX1NFQ1RJT04nIGZpbGU9J3BhcnNlcicgdmFsdWU9JzgnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J3dpdGhpbiBhIENEQVRBIHNlY3Rpb24nLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX0NPTU1FTlQnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzUnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J3dpdGhpbiBhIGNvbW1lbnQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX0NPTlRFTlQnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzcnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J3dpdGhpbiB0aGUgY29udGVudCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfREVGQVVMVEFUVFJTJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPScyJyB0eXBlPSd4bWxQYXJzZXJQcm9wZXJ0aWVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9EVEQnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzMnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J3dpdGhpbiBzb21lIERURCBjb250ZW50Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9FTkRfVEFHJyBmaWxlPSdwYXJzZXInIHZhbHVlPSc5JyB0eXBlPSd4bWxQYXJzZXJJbnB1dFN0YXRlJyBpbmZvPSd3aXRoaW4gYSBjbG9zaW5nIHRhZycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfRU5USVRZX0RFQ0wnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzEwJyB0eXBlPSd4bWxQYXJzZXJJbnB1dFN0YXRlJyBpbmZvPSd3aXRoaW4gYW4gZW50aXR5IGRlY2xhcmF0aW9uJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUUnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzExJyB0eXBlPSd4bWxQYXJzZXJJbnB1dFN0YXRlJyBpbmZvPSd3aXRoaW4gYW4gZW50aXR5IHZhbHVlIGluIGEgZGVjbCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfRU9GJyBmaWxlPSdwYXJzZXInIHZhbHVlPSctMScgdHlwZT0neG1sUGFyc2VySW5wdXRTdGF0ZScgaW5mbz0nbm90aGluZyBpcyB0byBiZSBwYXJzZWQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX0VQSUxPRycgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTQnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J3RoZSBNaXNjKiBhZnRlciB0aGUgbGFzdCBlbmQgdGFnJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9JR05PUkUnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzE1JyB0eXBlPSd4bWxQYXJzZXJJbnB1dFN0YXRlJyBpbmZvPSd3aXRoaW4gYW4gSUdOT1JFRCBzZWN0aW9uJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9MT0FERFREJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPScxJyB0eXBlPSd4bWxQYXJzZXJQcm9wZXJ0aWVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9NSVNDJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxJyB0eXBlPSd4bWxQYXJzZXJJbnB1dFN0YXRlJyBpbmZvPSdNaXNjKiBiZWZvcmUgaW50IHN1YnNldCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfUEknIGZpbGU9J3BhcnNlcicgdmFsdWU9JzInIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J1dpdGhpbiBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24nLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX1BST0xPRycgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nNCcgdHlwZT0neG1sUGFyc2VySW5wdXRTdGF0ZScgaW5mbz0nTWlzYyogYWZ0ZXIgaW50ZXJuYWwgc3Vic2V0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9QVUJMSUNfTElURVJBTCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTYnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89JyB3aXRoaW4gYSBQVUJMSUMgdmFsdWUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX1NFVkVSSVRZX0VSUk9SJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPSc0JyB0eXBlPSd4bWxQYXJzZXJTZXZlcml0aWVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9FUlJPUicgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMicgdHlwZT0neG1sUGFyc2VyU2V2ZXJpdGllcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfV0FSTklORycgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMScgdHlwZT0neG1sUGFyc2VyU2V2ZXJpdGllcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfU0VWRVJJVFlfV0FSTklORycgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMycgdHlwZT0neG1sUGFyc2VyU2V2ZXJpdGllcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfU1RBUlQnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzAnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J25vdGhpbmcgaGFzIGJlZW4gcGFyc2VkJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9TVEFSVF9UQUcnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzYnIHR5cGU9J3htbFBhcnNlcklucHV0U3RhdGUnIGluZm89J3dpdGhpbiBhIHN0YXJ0IHRhZycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVMnIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzQnIHR5cGU9J3htbFBhcnNlclByb3BlcnRpZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxMycgdHlwZT0neG1sUGFyc2VySW5wdXRTdGF0ZScgaW5mbz0nd2l0aGluIGEgU1lTVEVNIHZhbHVlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFUl9WQUxJREFURScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMycgdHlwZT0neG1sUGFyc2VyUHJvcGVydGllcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9DT01QQUNUJyBmaWxlPSdwYXJzZXInIHZhbHVlPSc2NTUzNicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdjb21wYWN0IHNtYWxsIHRleHQgbm9kZXM7IG5vIG1vZGlmaWNhdGlvbiBvZgordGhlIHRyZWUgYWxsb3dlZCBhZnRlcndhcmRzICh3aWxsIHBvc3NpYmx5CitjcmFzaCBpZiB5b3UgdHJ5IHRvIG1vZGlmeSB0aGUgdHJlZSknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfRE9NJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxJyB0eXBlPSd4bWxQYXJzZXJNb2RlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX0RUREFUVFInIGZpbGU9J3BhcnNlcicgdmFsdWU9JzgnIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0nZGVmYXVsdCBEVEQgYXR0cmlidXRlcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9EVERMT0FEJyBmaWxlPSdwYXJzZXInIHZhbHVlPSc0JyB0eXBlPSd4bWxQYXJzZXJPcHRpb24nIGluZm89J2xvYWQgdGhlIGV4dGVybmFsIHN1YnNldCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9EVERWQUxJRCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTYnIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0ndmFsaWRhdGUgd2l0aCB0aGUgRFREJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX0hVR0UnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzUyNDI4OCcgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdyZWxheCBhbnkgaGFyZGNvZGVkIGxpbWl0IGZyb20gdGhlIHBhcnNlcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT0JBU0VGSVgnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzI2MjE0NCcgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdkbyBub3QgZml4dXAgWElOQ0xVREUgeG1sOmJhc2UgdXJpcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT0JMQU5LUycgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMjU2JyB0eXBlPSd4bWxQYXJzZXJPcHRpb24nIGluZm89J3JlbW92ZSBibGFuayBub2RlcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT0NEQVRBJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxNjM4NCcgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdtZXJnZSBDREFUQSBhcyB0ZXh0IG5vZGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX05PRElDVCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nNDA5NicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdEbyBub3QgcmV1c2UgdGhlIGNvbnRleHQgZGljdGlvbm5hcnknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfTk9FTlQnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzInIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0nc3Vic3RpdHV0ZSBlbnRpdGllcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT0VSUk9SJyBmaWxlPSdwYXJzZXInIHZhbHVlPSczMicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdzdXBwcmVzcyBlcnJvciByZXBvcnRzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX05PTkVUJyBmaWxlPSdwYXJzZXInIHZhbHVlPScyMDQ4JyB0eXBlPSd4bWxQYXJzZXJPcHRpb24nIGluZm89J0ZvcmJpZCBuZXR3b3JrIGFjY2VzcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT1dBUk5JTkcnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzY0JyB0eXBlPSd4bWxQYXJzZXJPcHRpb24nIGluZm89J3N1cHByZXNzIHdhcm5pbmcgcmVwb3J0cycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9OT1hJTkNOT0RFJyBmaWxlPSdwYXJzZXInIHZhbHVlPSczMjc2OCcgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdkbyBub3QgZ2VuZXJhdGUgWElOQ0xVREUgU1RBUlQvRU5EIG5vZGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX05TQ0xFQU4nIGZpbGU9J3BhcnNlcicgdmFsdWU9JzgxOTInIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0ncmVtb3ZlIHJlZHVuZGFudCBuYW1lc3BhY2VzIGRlY2xhcmF0aW9ucycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9PTEQxMCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTMxMDcyJyB0eXBlPSd4bWxQYXJzZXJPcHRpb24nIGluZm89J3BhcnNlIHVzaW5nIFhNTC0xLjAgYmVmb3JlIHVwZGF0ZSA1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX09MRFNBWCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTA0ODU3NicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPScgcGFyc2UgdXNpbmcgU0FYMiBpbnRlcmZhY2UgZnJvbSBiZWZvcmUgMi43LjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfUEVEQU5USUMnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzEyOCcgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdwZWRhbnRpYyBlcnJvciByZXBvcnRpbmcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfUFVTSF9ET00nIGZpbGU9J3BhcnNlcicgdmFsdWU9JzMnIHR5cGU9J3htbFBhcnNlck1vZGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfUFVTSF9TQVgnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzQnIHR5cGU9J3htbFBhcnNlck1vZGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfUkVBREVSJyBmaWxlPSdwYXJzZXInIHZhbHVlPSc1JyB0eXBlPSd4bWxQYXJzZXJNb2RlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX1JFQ09WRVInIGZpbGU9J3BhcnNlcicgdmFsdWU9JzEnIHR5cGU9J3htbFBhcnNlck9wdGlvbicgaW5mbz0ncmVjb3ZlciBvbiBlcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfU0FYJyBmaWxlPSdwYXJzZXInIHZhbHVlPScyJyB0eXBlPSd4bWxQYXJzZXJNb2RlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBUlNFX1NBWDEnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzUxMicgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSd1c2UgdGhlIFNBWDEgaW50ZXJmYWNlIGludGVybmFsbHknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFSU0VfVU5LTk9XTicgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMCcgdHlwZT0neG1sUGFyc2VyTW9kZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVJTRV9YSU5DTFVERScgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTAyNCcgdHlwZT0neG1sUGFyc2VyT3B0aW9uJyBpbmZvPSdJbXBsZW1lbnQgWEluY2x1ZGUgc3Vic3RpdGl0aW9uJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1BBVFRFUk5fREVGQVVMVCcgZmlsZT0ncGF0dGVybicgdmFsdWU9JzAnIHR5cGU9J3htbFBhdHRlcm5GbGFncycgaW5mbz0nc2ltcGxlIHBhdHRlcm4gbWF0Y2gnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUEFUVEVSTl9YUEFUSCcgZmlsZT0ncGF0dGVybicgdmFsdWU9JzEnIHR5cGU9J3htbFBhdHRlcm5GbGFncycgaW5mbz0nc3RhbmRhcmQgWFBhdGggcGF0dGVybicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVRURVJOX1hTRklFTEQnIGZpbGU9J3BhdHRlcm4nIHZhbHVlPSc0JyB0eXBlPSd4bWxQYXR0ZXJuRmxhZ3MnIGluZm89JyBYUGF0aCBzdWJzZXQgZm9yIHNjaGVtYSBmaWVsZCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QQVRURVJOX1hTU0VMJyBmaWxlPSdwYXR0ZXJuJyB2YWx1ZT0nMicgdHlwZT0neG1sUGF0dGVybkZsYWdzJyBpbmZvPSdYUGF0aCBzdWJzZXQgZm9yIHNjaGVtYSBzZWxlY3RvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9QSV9OT0RFJyBmaWxlPSd0cmVlJyB2YWx1ZT0nNycgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfQVRUUklCVVRFJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPScyJyB0eXBlPSd4bWxSZWFkZXJUeXBlcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUFERVJfVFlQRV9DREFUQScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nNCcgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfQ09NTUVOVCcgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nOCcgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlQnIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzknIHR5cGU9J3htbFJlYWRlclR5cGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX0ZSQUdNRU5UJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPScxMScgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfVFlQRScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMTAnIHR5cGU9J3htbFJlYWRlclR5cGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFQURFUl9UWVBFX0VMRU1FTlQnIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzEnIHR5cGU9J3htbFJlYWRlclR5cGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFQURFUl9UWVBFX0VORF9FTEVNRU5UJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPScxNScgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfRU5EX0VOVElUWScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMTYnIHR5cGU9J3htbFJlYWRlclR5cGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFQURFUl9UWVBFX0VOVElUWScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nNicgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfRU5USVRZX1JFRkVSRU5DRScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nNScgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfTk9ORScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMCcgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfTk9UQVRJT04nIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzEyJyB0eXBlPSd4bWxSZWFkZXJUeXBlcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUFERVJfVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPSc3JyB0eXBlPSd4bWxSZWFkZXJUeXBlcycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUFERVJfVFlQRV9TSUdOSUZJQ0FOVF9XSElURVNQQUNFJyBmaWxlPSd4bWxyZWFkZXInIHZhbHVlPScxNCcgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfVEVYVCcgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMycgdHlwZT0neG1sUmVhZGVyVHlwZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVBREVSX1RZUEVfV0hJVEVTUEFDRScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMTMnIHR5cGU9J3htbFJlYWRlclR5cGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFQURFUl9UWVBFX1hNTF9ERUNMQVJBVElPTicgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMTcnIHR5cGU9J3htbFJlYWRlclR5cGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE0NTAnIHR5cGU9J3htbFBhcnNlckVycm9ycycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HUF9DUk5HJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMicgdHlwZT0neG1sUmVsYXhOR1BhcnNlckZsYWcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR1BfRlJFRV9ET0MnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPScxJyB0eXBlPSd4bWxSZWxheE5HUGFyc2VyRmxhZycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HUF9OT05FJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMCcgdHlwZT0neG1sUmVsYXhOR1BhcnNlckZsYWcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfQVRUUkVYVFJBTlMnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPScyMCcgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0FUVFJOQU1FJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMTQnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9BVFRSTk9OUycgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzE2JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfQVRUUlZBTElEJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMjQnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9BVFRSV1JPTkdOUycgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzE4JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfQ09OVEVOVFZBTElEJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMjUnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9EQVRBRUxFTScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzI4JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfREFUQVRZUEUnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPSczMScgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0RVUElEJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nNCcgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMTknIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9FTEVNTkFNRScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzEzJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfRUxFTU5PTlMnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPScxNScgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzIxJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMzgnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkdOUycgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzE3JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfRVhUUkFDT05URU5UJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMjYnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9FWFRSQURBVEEnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPSczNScgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0lOVEVSRVhUUkEnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPScxMicgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0lOVEVSTkFMJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMzcnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9JTlRFUk5PREFUQScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzEwJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfSU5URVJTRVEnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPScxMScgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0lOVkFMSURBVFRSJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMjcnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9MQUNLREFUQScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzM2JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfTElTVCcgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzMzJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfTElTVEVMRU0nIGZpbGU9J3JlbGF4bmcnIHZhbHVlPSczMCcgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX0xJU1RFTVBUWScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzknIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9MSVNURVhUUkEnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPSc4JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfTUVNT1JZJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMScgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX05PREVGSU5FJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nNycgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX05PRUxFTScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzIyJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nMzQnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9OT1NUQVRFJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nNicgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX05PVEVMRU0nIGZpbGU9J3JlbGF4bmcnIHZhbHVlPScyMycgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORycgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzM5JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfVFlQRScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzInIHR5cGU9J3htbFJlbGF4TkdWYWxpZEVycicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9SRUxBWE5HX0VSUl9UWVBFQ01QJyBmaWxlPSdyZWxheG5nJyB2YWx1ZT0nNScgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfRVJSX1RZUEVWQUwnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPSczJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfVkFMRUxFTScgZmlsZT0ncmVsYXhuZycgdmFsdWU9JzI5JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUkVMQVhOR19FUlJfVkFMVUUnIGZpbGU9J3JlbGF4bmcnIHZhbHVlPSczMicgdHlwZT0neG1sUmVsYXhOR1ZhbGlkRXJyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JFTEFYTkdfT0snIGZpbGU9J3JlbGF4bmcnIHZhbHVlPScwJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRFcnInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9BTllOQU1FX0FUVFJfQU5DRVNUT1InIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAwMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfQVRUUklCVVRFX0NISUxEUkVOJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMDInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAwMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0FUVFJJQlVURV9DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAwMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0FUVFJJQlVURV9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDA0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9BVFRSSUJVVEVfTk9PUCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9BVFRSX0NPTkZMSUNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMDEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAwMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0NIT0lDRV9DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMDYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAwNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0NIT0lDRV9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDA3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMDcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9DUkVBVEVfRkFJTFVSRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDA4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMDgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9EQVRBX0NPTlRFTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAwOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDA5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfREVGSU5FX0NSRUFURV9GQUlMRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAxMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDExJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfREVGSU5FX0VNUFRZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMTInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAxMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0RFRklORV9NSVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMTMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAxMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0RFRklORV9OQU1FX01JU1NJTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAxNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDE0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfREVGX0NIT0lDRV9BTkRfSU5URVJMRUFWRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDEwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9FTEVNRU5UX0NPTlRFTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAxOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDE4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfRUxFTUVOVF9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDE3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9FTEVNRU5UX05BTUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAxOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDE5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfRUxFTUVOVF9OT19DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMjAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAyMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0VMRU1fQ09OVEVOVF9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDE1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMTUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1InIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAxNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDE2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0VNUFRZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMjInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAyMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDIzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMjMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9FTVBUWV9DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMjQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAyNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0VNUFRZX05PVF9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDI1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMjUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9FUlJPUl9UWVBFX0xJQicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDI2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMjYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9FWENFUFRfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAyNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDI3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfRVhDRVBUX01JU1NJTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAyOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDI4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfRVhDRVBUX01VTFRJUExFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMjknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAyOScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0VYQ0VQVF9OT19DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMzAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAzMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0VYVEVSTkFMUkVGX0VNVFBZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMzEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAzMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0VYVEVSTkFMUkVGX1JFQ1VSU0UnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAzMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDMzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfRVhURVJOQUxfUkVGX0ZBSUxVUkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAzMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDMyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfRk9SQklEREVOX0FUVFJJQlVURScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDM0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwMzQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9GT1JFSUdOX0VMRU1FTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAzNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDM1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfR1JBTU1BUl9DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMzYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAzNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0dSQU1NQVJfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAzNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDM3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfR1JBTU1BUl9NSVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMzgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTAzOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0dSQU1NQVJfTk9fU1RBUlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTAzOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDM5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfR1JPVVBfQVRUUl9DT05GTElDVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDQwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNDAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9IUkVGX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNDEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA0MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0lOQ0xVREVfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA0MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDQyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfSU5DTFVERV9GQUlMVVJFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA0MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX0lOQ0xVREVfUkVDVVJTRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDQ0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9JTlRFUkxFQVZFX0FERCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDQ1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA0NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDQ2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfSU5URVJMRUFWRV9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDQ3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNDcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9JTlRFUkxFQVZFX05PX0NPTlRFTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA0OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDQ4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfSU5WQUxJRF9ERUZJTkVfTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDQ5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNDknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9JTlZBTElEX1VSSScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDUwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9JTlZBTElEX1ZBTFVFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA1MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX01JU1NJTkdfSFJFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDUyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9OQU1FX01JU1NJTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA1MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDUzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfTkVFRF9DT01CSU5FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNTQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA1NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX05PVEFMTE9XRURfTk9UX0VNUFRZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA1NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX05TTkFNRV9BVFRSX0FOQ0VTVE9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNTYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA1NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX05TTkFNRV9OT19OUycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDU3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVJBTV9GT1JCSURERU4nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA1OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDU4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFSQU1fTkFNRV9NSVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNTknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA1OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBUkVOVFJFRl9DUkVBVEVfRkFJTEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNjAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA2MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBUkVOVFJFRl9OQU1FX0lOVkFMSUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA2MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDYxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFSRU5UUkVGX05PVF9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDY0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNjQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVJFTlRSRUZfTk9fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDYyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNjInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVJFTlRSRUZfTk9fUEFSRU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNjMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA2MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBUlNFX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNjUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA2NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9BTllOQU1FX0VYQ0VQVF9BTllOQU1FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNjYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA2NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9BVFRSX0FUVFInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA2NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDY3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFUX0FUVFJfRUxFTScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDY4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNjgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDY5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNjknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRUxFTScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDcwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNzAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA3MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDcxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNzInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA3MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNzMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA3MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9MSVNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNzQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA3NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9PTkVNT1JFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNzUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA3NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA3NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDc2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1RFWFQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA3NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDc3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFUX0xJU1RfQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDc4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNzgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfTElTVF9FTEVNJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNzknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA3OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9MSVNUX0lOVEVSTEVBVkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA4MCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDgwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFUX0xJU1RfTElTVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDgxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwODEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfTElTVF9SRUYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA4MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDgyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFUX0xJU1RfVEVYVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDgzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwODMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9BTllOQU1FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwODQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA4NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9OU05BTUVfRVhDRVBUX05TTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDg1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwODUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfT05FTU9SRV9HUk9VUF9BVFRSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwODYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA4NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9PTkVNT1JFX0lOVEVSTEVBVkVfQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDg3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwODcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfU1RBUlRfQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDg4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwODgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfU1RBUlRfREFUQScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDg5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwODknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QQVRfU1RBUlRfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA5MCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDkwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUEFUX1NUQVJUX0dST1VQJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9TVEFSVF9JTlRFUkxFQVZFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOTInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9TVEFSVF9MSVNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOTMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9TVEFSVF9PTkVNT1JFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOTQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9TVEFSVF9URVhUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1BBVF9TVEFSVF9WQUxVRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDk2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwOTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9QUkVGSVhfVU5ERUZJTkVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5NycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1JFRl9DUkVBVEVfRkFJTEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwOTgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTA5OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1JFRl9DWUNMRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMDk5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwOTknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9SRUZfTkFNRV9JTlZBTElEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMDAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTEwMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1JFRl9OT1RfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTEwMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTAzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfUkVGX05PX0RFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMTAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzExMDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9SRUZfTk9fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMTAyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzExMDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9TVEFSVF9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTEwNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTA0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfU1RBUlRfQ09OVEVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMTA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzExMDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9TVEFSVF9FTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMTA2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzExMDYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9TVEFSVF9NSVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMDcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTEwNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1RFWFRfRVhQRUNURUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTEwOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTA4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfVEVYVF9IQVNfQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTEwOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTA5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfVFlQRV9NSVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMTAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTExMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1RZUEVfTk9UX0ZPVU5EJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTExMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1RZUEVfVkFMVUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTExMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTEyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfVU5LTk9XTl9BVFRSSUJVVEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTExMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTEzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMTQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTExNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1VOS05PV05fQ09OU1RSVUNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTExNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1VOS05PV05fVFlQRV9MSUInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTExNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTE2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfVVJJX0ZSQUdNRU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTExNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1VSSV9OT1RfQUJTT0xVVEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTExOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTE4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfVkFMVUVfRU1QVFknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTExOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMTE5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1JOR1BfVkFMVUVfTk9fQ09OVEVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMTIwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzExMjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfUk5HUF9YTUxOU19OQU1FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzExMjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTEyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9STkdQX1hNTF9OUycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMTIyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzExMjInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0FWRV9BU19IVE1MJyBmaWxlPSd4bWxzYXZlJyB2YWx1ZT0nNjQnIHR5cGU9J3htbFNhdmVPcHRpb24nIGluZm89JyBmb3JjZSBIVE1MIHNlcmlhbGl6YXRpb24gb24gWE1MIGRvYycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQVZFX0FTX1hNTCcgZmlsZT0neG1sc2F2ZScgdmFsdWU9JzMyJyB0eXBlPSd4bWxTYXZlT3B0aW9uJyBpbmZvPSdmb3JjZSBYTUwgc2VyaWFsaXphdGlvbiBvbiBIVE1MIGRvYycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQVZFX0NIQVJfSU5WQUxJRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNDAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE0MDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0FWRV9GT1JNQVQnIGZpbGU9J3htbHNhdmUnIHZhbHVlPScxJyB0eXBlPSd4bWxTYXZlT3B0aW9uJyBpbmZvPSdmb3JtYXQgc2F2ZSBvdXRwdXQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0FWRV9OT1RfVVRGOCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNDAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0FWRV9OT19ERUNMJyBmaWxlPSd4bWxzYXZlJyB2YWx1ZT0nMicgdHlwZT0neG1sU2F2ZU9wdGlvbicgaW5mbz0nZHJvcCB0aGUgeG1sIGRlY2xhcmF0aW9uJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NBVkVfTk9fRE9DVFlQRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNDAyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE0MDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0FWRV9OT19FTVBUWScgZmlsZT0neG1sc2F2ZScgdmFsdWU9JzQnIHR5cGU9J3htbFNhdmVPcHRpb24nIGluZm89J25vIGVtcHR5IHRhZ3MnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0FWRV9OT19YSFRNTCcgZmlsZT0neG1sc2F2ZScgdmFsdWU9JzgnIHR5cGU9J3htbFNhdmVPcHRpb24nIGluZm89J2Rpc2FibGUgWEhUTUwxIHNwZWNpZmljIHJ1bGVzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NBVkVfVU5LTk9XTl9FTkNPRElORycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNDAzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE0MDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0FWRV9YSFRNTCcgZmlsZT0neG1sc2F2ZScgdmFsdWU9JzE2JyB0eXBlPSd4bWxTYXZlT3B0aW9uJyBpbmZvPSdmb3JjZSBYSFRNTDEgc3BlY2lmaWMgcnVsZXMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9BR19QUk9QU19DT1JSRUNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwODcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA4NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0FUVFJGT1JNREVGQVVMVF9WQUxVRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9BVFRSR1JQX05PTkFNRV9OT1JFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzAyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9BVFRSX05PTkFNRV9OT1JFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzAzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwODknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA4OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1RfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDc4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNzgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDc5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNzknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDkwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwODknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT01QTEVYVFlQRV9OT05BTUVfTk9SRUYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcwNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzA0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX0FMTF9MSU1JVEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwOTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA5MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDYzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNjMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA4OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDg3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8zJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MDAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgwMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDMxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMzEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAzMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDMyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAxMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDExJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAxMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDEyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDEzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMTMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfM18yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMTQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAxNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAxNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDE2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAxNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDE3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMTgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAxOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDE5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMTknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAyMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDIwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80JyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDIyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMjInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDIzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMjMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMjQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAyNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzFfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDI1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMjUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAyNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDI3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMjYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAyNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDI4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMjgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAyOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDI5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl81JyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMzAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAzMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA1OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDU4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNTknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA1OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNjAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA2MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMl8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA2MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzgyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3ODInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc4MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzgzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ1RfUFJPUFNfQ09SUkVDVF8zJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3ODQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc4NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NUX1BST1BTX0NPUlJFQ1RfNCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzg1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3ODUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc4NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzg2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfQ1ZDX1NJTVBMRV9UWVBFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNjInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA2MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0NfUFJPUFNfQ09SUkVDVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDgwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwODAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9ERUZfQU5EX1BSRUZJWCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzY4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NjgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc4NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzg3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzg4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3ODgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3ODknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc4OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA3NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDc3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc5MCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzkwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8zJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3OTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc5MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3OTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc5NycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3OTgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc5OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8zJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3OTknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc5OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0VMRU1GT1JNREVGQVVMVF9WQUxVRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc1NScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzU1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRUxFTV9OT05BTUVfTk9SRUYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcwNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzA2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRVhURU5TSU9OX05PX0JBU0UnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcwNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzA3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA0NScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDQ1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA0NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDQ2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA0NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDQ3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA0OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDQ4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA0OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDQ5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRkFDRVRfTk9fVkFMVUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcwOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzA4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfRkFJTEVEX0JVSUxEX0lNUE9SVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzA5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MDknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9GQUlMRURfTE9BRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzU3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9GQUlMRURfUEFSU0UnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc2NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzY2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfR1JPVVBfTk9OQU1FX05PUkVGJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MTAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTcxMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0lNUE9SVF9OQU1FU1BBQ0VfTk9UX1VSSScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzExJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MTEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTVBPUlRfUkVERUZJTkVfTlNOQU1FJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MTInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTcxMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0lNUE9SVF9TQ0hFTUFfTk9UX1VSSScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzEzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MTMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTkNMVURFX1NDSEVNQV9OT1RfVVJJJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NzAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc3MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PX1VSSScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzcxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NzEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTlRFUk5BTCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDY5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNjkgbm9uLVczQycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0lOVEVSU0VDVElPTl9OT1RfRVhQUkVTU0lCTEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc5MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzkzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX0NPTUJJTkFUSU9OJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NzcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc3NycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9JTkxJTkVfQ09NQklOQVRJT04nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc3OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzc4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX05BTUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc4MCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzgwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX1VTRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzc0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NzQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTlZBTElEX0JPT0xFQU4nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcxNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzE0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfSU5WQUxJRF9FTlVNJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTcxNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcxNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzE2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVF9WQUxVRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzE3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTlZBTElEX01BWE9DQ1VSUycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzE4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MTgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzE5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MTknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTlZBTElEX1JFRl9BTkRfU1VCVFlQRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzIwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9JTlZBTElEX1dISVRFX1NQQUNFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTcyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX01HX1BST1BTX0NPUlJFQ1RfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDc0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNzQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA3NScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDc1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfTUlTU0lOR19TSU1QTEVUWVBFX0NISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NzknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc3OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX05PQVRUUl9OT1JFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzIyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MjInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9OT1JPT1QnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc1OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzU5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfTk9UQVRJT05fTk9fTkFNRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzIzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MjMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9OT1RISU5HX1RPX1BBUlNFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NTgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc1OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX05PVFlQRV9OT1JFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzI0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MjQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9OT1RfREVURVJNSU5JU1RJQycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDcwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNzAgbm9uLVczQycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX05PVF9TQ0hFTUEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc3MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzcyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfTk9fWE1MTlMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA1NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDU2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfTk9fWFNJJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA1NycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1BSRUZJWF9VTkRFRklORUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcwMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA0MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDQyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDQzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNDQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA0NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1JFQ1VSU0lWRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzc1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NzUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9SRURFRklORURfQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzY0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NjQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9SRURFRklORURfQVRUUkdST1VQJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NjMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc2MycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9FTEVNRU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NjInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc2MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1JFREVGSU5FRF9HUk9VUCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzYwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9SRURFRklORURfTk9UQVRJT04nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc2NScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzY1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfUkVERUZJTkVEX1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc2MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzYxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfUkVGX0FORF9DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3ODEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc4MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1JFRl9BTkRfU1VCVFlQRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzI1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MjUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9SRUdFWFBfSU5WQUxJRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzU2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9SRVNUUklDVElPTl9OT05BTUVfTk9SRUYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcyNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzI2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDM3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMzcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMzYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAzNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMzUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAzNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAzNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDM0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAzMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDMzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU0lNUExFVFlQRV9OT05BTUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTcyNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzI3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA1MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDUyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDUzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNTMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDU0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA1NScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDU1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV9HUk9VUF8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNzEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA3MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDcyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNzInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA3MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDczJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0NUXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA3NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDc2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDM4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMzgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAzOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDM5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwNDAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA0MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA0MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDQxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0lNUE9SVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDgyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwODInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDY0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNjQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzFfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDY1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwNjUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA2NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDY2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA2NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDY3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA2OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDY4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc5NScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzk1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc5NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzk2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0lOQ0xVREUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA1MCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDUwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX0xJU1RfSVRFTVRZUEVfT1JfU0lNUExFVFlQRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDA2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMDYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA4MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDgxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAwNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDA0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1JDX1JFU1RSSUNUSU9OX0JBU0VfT1JfU0lNUExFVFlQRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMycgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDAyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfNCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDAzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TUkNfVU5JT05fTUVNQkVSVFlQRVNfT1JfU0lNUExFVFlQRVMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAwNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDA3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwMDgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzAwOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPSczMDA5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzMwMDknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzAxMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDEwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfU1VQRVJOVU1FUk9VU19MSVNUX0lURU1fVFlQRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzc2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NzYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9UWVBFX0FORF9TVUJUWVBFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MjgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTcyOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOSU9OX05PVF9FWFBSRVNTSUJMRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzk0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3OTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX0FMTF9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzI5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MjknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX0FOWUFUVFJJQlVURV9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzMwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MzAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJHUlBfQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTczMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzMyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSSUJVVEVfR1JPVVAnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTczMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzMzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9BVFRSX0NISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MzEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTczMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fQkFTRV9UWVBFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MzQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTczNCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fQ0hPSUNFX0NISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3MzUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTczNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fQ09NUExFWENPTlRFTlRfQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTczNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzM2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYVFlQRV9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzM3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3MzcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX0VMRU1fQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTczOCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzM4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9FWFRFTlNJT05fQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTczOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzM5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzQwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NDAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc0MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzQxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9HUk9VUF9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzQyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX0lNUE9SVF9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzQzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX0lOQ0xVREVfQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc2OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzY5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9MSVNUX0NISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NDQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc0NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fTUVNQkVSX1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc3MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzczJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9OT1RBVElPTl9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzQ1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX1BSRUZJWCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzY3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NjcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX1BST0NFU1NDT05URU5UX0NISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NDYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc0NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fUkVGJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NDcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc0NycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fUkVTVFJJQ1RJT05fQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc0OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzQ4Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9TQ0hFTUFTX0NISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NDknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc0OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fU0VRVUVOQ0VfQ0hJTEQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc1MCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzUwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9TSU1QTEVDT05URU5UX0NISUxEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3NTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc1MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFVFlQRV9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzUyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9VTktOT1dOX1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTc1MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNzUzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfVU5LTk9XTl9VTklPTl9DSElMRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNzU0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE3NTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BUF9XQVJOX0FUVFJfUE9JTlRMRVNTX1BST0gnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA4NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDg1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1JFREVDTF9QUk9IJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwODUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA4NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1dBUk5fU0tJUF9TQ0hFTUEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMzA4MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSczMDgzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVBfV0FSTl9VTkxPQ0FURURfU0NIRU1BJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzMwODQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMzA4NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFQX1dJTERDQVJEX0lOVkFMSURfTlNfTUVNQkVSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE3OTInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTc5MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc0NicgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0FOWVRZUEUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc0NScgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0FOWVVSSScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzI5JyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNDQnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19CT09MRUFOJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTUnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19CWVRFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNDEnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19EQVRFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTAnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19EQVRFVElNRScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzExJyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfREVDSU1BTCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzMnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19ET1VCTEUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxNCcgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0RVUkFUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTInIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FTlRJVElFUycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzI3JyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRU5USVRZJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMjYnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nMjQnIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfQVRUUklOVkFMSUQnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScyMScgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9BVFRSVU5LTk9XTicgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzIwJyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX0NPTlNUUlVDVCcgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzE3JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX0VMRU1DT05UJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nMTAnIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfRVhUUkFDT05URU5UJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nMTMnIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfRkFDRVQnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScyMycgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9IQVZFREVGQVVMVCcgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzExJyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX0lOVEVSTkFMJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nMTgnIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfSU5WQUxJREFUVFInIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScxNCcgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9JTlZBTElERUxFTScgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzE1JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX0lTQUJTVFJBQ1QnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPSc4JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX01JU1NJTkcnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPSc0JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX05PUk9MTEJBQ0snIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPSc3JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX05PUk9PVCcgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzEnIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfTk9UREVURVJNSU5JU1QnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScxNicgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9OT1RFTVBUWScgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzknIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfTk9UTklMTEFCTEUnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScxMicgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9OT1RTSU1QTEUnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScxOScgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9OT1RUT1BMRVZFTCcgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzMnIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfTk9UWVBFJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nNicgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9PSycgZmlsZT0neG1sc2NoZW1hcycgdmFsdWU9JzAnIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfVU5ERUNMQVJFREVMRU0nIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScyJyB0eXBlPSd4bWxTY2hlbWFWYWxpZEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfRVJSX1ZBTFVFJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nMjInIHR5cGU9J3htbFNjaGVtYVZhbGlkRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19FUlJfV1JPTkdFTEVNJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nNScgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0VSUl9YWFgnIGZpbGU9J3htbHNjaGVtYXMnIHZhbHVlPScyNScgdHlwZT0neG1sU2NoZW1hVmFsaWRFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0ZMT0FUJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTMnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19HREFZJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNScgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0dNT05USCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzYnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19HTU9OVEhEQVknIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc3JyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfR1lFQVInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc4JyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfR1lFQVJNT05USCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzknIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19IRVhCSU5BUlknIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc0MycgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0lEJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMjMnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19JRFJFRicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzI0JyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfSURSRUZTJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMjUnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19JTlQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSczNScgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0lOVEVHRVInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSczMCcgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX0xBTkdVQUdFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTcnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19MT05HJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMzcnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19OQU1FJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMjAnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19OQ05BTUUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScyMicgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX05JTlRFR0VSJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMzInIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19OTVRPS0VOJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTgnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19OTVRPS0VOUycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzE5JyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfTk5JTlRFR0VSJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMzMnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19OT1JNU1RSSU5HJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMicgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX05PVEFUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMjgnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19OUElOVEVHRVInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSczMScgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX1BJTlRFR0VSJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMzQnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19RTkFNRScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzIxJyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfU0hPUlQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSczOScgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX1NUUklORycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19USU1FJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNCcgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX1RPS0VOJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTYnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BU19VQllURScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzQyJyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfVUlOVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzM2JyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfVUxPTkcnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSczOCcgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFTX1VOS05PV04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScwJyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVNfVVNIT1JUJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNDAnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVFJPTlZfQVNTRVJUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzQwMDAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nNDAwMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFUUk9OVl9SRVBPUlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nNDAwMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVRST05fT1VUX0JVRkZFUicgZmlsZT0nc2NoZW1hdHJvbicgdmFsdWU9JzUxMicgdHlwZT0neG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucycgaW5mbz0nb3V0cHV0IHRvIGEgYnVmZmVyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVRST05fT1VUX0VSUk9SJyBmaWxlPSdzY2hlbWF0cm9uJyB2YWx1ZT0nOCcgdHlwZT0neG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucycgaW5mbz0nb3V0cHV0IHZpYSB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVRST05fT1VUX0ZJTEUnIGZpbGU9J3NjaGVtYXRyb24nIHZhbHVlPScyNTYnIHR5cGU9J3htbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMnIGluZm89J291dHB1dCB0byBhIGZpbGUgZGVzY3JpcHRvcicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFUUk9OX09VVF9JTycgZmlsZT0nc2NoZW1hdHJvbicgdmFsdWU9JzEwMjQnIHR5cGU9J3htbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMnIGluZm89JyBvdXRwdXQgdG8gSS9PIG1lY2hhbmlzbScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVCcgZmlsZT0nc2NoZW1hdHJvbicgdmFsdWU9JzEnIHR5cGU9J3htbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMnIGluZm89J3F1aWV0IG5vIHJlcG9ydCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFUUk9OX09VVF9URVhUJyBmaWxlPSdzY2hlbWF0cm9uJyB2YWx1ZT0nMicgdHlwZT0neG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucycgaW5mbz0nYnVpbGQgYSB0ZXh0dWFsIHJlcG9ydCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFUUk9OX09VVF9YTUwnIGZpbGU9J3NjaGVtYXRyb24nIHZhbHVlPSc0JyB0eXBlPSd4bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zJyBpbmZvPSdvdXRwdXQgU1ZSTCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0FUVFJJTlZBTElEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0FUVFJVTktOT1dOJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MjAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgyMCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NPTlNUUlVDVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODE3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg2MScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODYxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NjInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg2MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODYzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NjMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQVRUUklCVVRFXzQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg2NCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODY0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0FVJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NzQnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg3NCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODczJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NzMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODQxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODQyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODQzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfNCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODQ0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODY1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NjUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NjYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg2NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18yXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg2NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODY3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV80JyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NjgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg2OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NjknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg2OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NzAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg3MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODI0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MjQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgyNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODI1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8zJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MjYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgyNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODQ1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzInIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg0NicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODQ2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg0NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODQ3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzJfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODQ4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NDgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NDknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg0OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NTAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg1MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg1MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNF8zJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NTInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg1MicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNV8xXzEnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg1MycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODUzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODU0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NTUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg1NScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODU2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODU3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODU4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NTgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfRUxUXzYnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg1OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODU5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0VMVF83JyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NjAnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg2MCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19FTlVNRVJBVElPTl9WQUxJRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODQwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NDAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfRkFDRVRfVkFMSUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgyOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODI5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0ZSQUNUSU9ORElHSVRTX1ZBTElEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MzgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgzOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19JREMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg3NycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODc3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODMwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MzAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfTUFYRVhDTFVTSVZFX1ZBTElEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MzYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgzNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19NQVhJTkNMVVNJVkVfVkFMSUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgzNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODM0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODMyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MzInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfTUlORVhDTFVTSVZFX1ZBTElEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MzUnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgzNScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19NSU5JTkNMVVNJVkVfVkFMSUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgzMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODMzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODMxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MzEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfUEFUVEVSTl9WQUxJRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODM5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MzknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgzNycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODM3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODc1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NzUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9DVkNfVFlQRV8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NzYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg3NicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MjcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgyNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8yJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MjgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgyOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0NWQ19XSUxEQ0FSRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODc4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4NzgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9ET0NVTUVOVF9FTEVNRU5UX01JU1NJTkcnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg3MicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODcyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfRUxFTUNPTlQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgxMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODEwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfRUxFTUVOVF9DT05URU5UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4NzEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTg3MScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX0VYVFJBQ09OVEVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODEzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9GQUNFVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODIzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MjMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9IQVZFREVGQVVMVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODExJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9JTlRFUk5BTCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODE4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9JTlZBTElEQVRUUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODE0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9JTlZBTElERUxFTScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODE1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9JU0FCU1RSQUNUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MDgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgwOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX01JU0MnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTg3OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODc5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfTUlTU0lORycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODA0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9OT1JPTExCQUNLJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MDcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgwNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX05PUk9PVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9OT1RERVRFUk1JTklTVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODE2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9OT1RFTVBUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODA5JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MDknLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9OT1ROSUxMQUJMRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODEyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BVl9OT1RTSU1QTEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgxOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODE5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfTk9UVE9QTEVWRUwnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTgwMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxODAzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQVZfTk9UWVBFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MDYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgwNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX1VOREVDTEFSRURFTEVNJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MDInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgwMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX1ZBTFVFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE4MjInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTgyMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFWX1dST05HRUxFTScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxODA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE4MDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX0NPTlRFTlRfQU5ZJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNycgdHlwZT0neG1sU2NoZW1hQ29udGVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUMnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc2JyB0eXBlPSd4bWxTY2hlbWFDb250ZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzInIHR5cGU9J3htbFNjaGVtYUNvbnRlbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMScgdHlwZT0neG1sU2NoZW1hQ29udGVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSczJyB0eXBlPSd4bWxTY2hlbWFDb250ZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRF9PUl9FTEVNRU5UUycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzUnIHR5cGU9J3htbFNjaGVtYUNvbnRlbnRUeXBlJyBpbmZvPSdPYnNvbGV0ZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc0JyB0eXBlPSd4bWxTY2hlbWFDb250ZW50VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfQ09OVEVOVF9VTktOT1dOJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMCcgdHlwZT0neG1sU2NoZW1hQ29udGVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzIwMDEnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzIwMDAnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9GQUNFVF9FTlVNRVJBVElPTicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEwMDcnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEwMDUnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEgnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxMDA5JyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTAwMycgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEwMDInIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEgnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxMDEwJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfRkFDRVRfTUlORVhDTFVTSVZFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTAwMScgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEwMDAnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEgnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxMDExJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEwMDYnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEwMDQnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTAwOCcgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfQUxMJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nOCcgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfQU5ZJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMicgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfQU5ZX0FUVFJJQlVURScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzIxJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxNScgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVAnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxNicgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzI2JyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9CQVNJQycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzEnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJyBpbmZvPSdBIGJ1aWx0LWluIGRhdGF0eXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9UWVBFX0NIT0lDRScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzcnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVgnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc1JyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9DT01QTEVYX0NPTlRFTlQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxMCcgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzE0JyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT04nIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScxMycgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfRkFDRVQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSczJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9HUk9VUCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzE3JyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9JRENfS0VZJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMjMnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPScyNCcgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzIyJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9MSVNUJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTknIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTgnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMjUnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9UWVBFX1JFU1RSSUNUSU9OJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nMTInIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNicgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfU0lNUExFJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB2YWx1ZT0nNCcgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1RZUEVfU0lNUExFX0NPTlRFTlQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHZhbHVlPSc5JyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9VTklPTicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzIwJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVFlQRV9VUicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdmFsdWU9JzExJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfVkFMX1ZDX0lfQ1JFQVRFJyBmaWxlPSd4bWxzY2hlbWFzJyB2YWx1ZT0nMScgdHlwZT0neG1sU2NoZW1hVmFsaWRPcHRpb24nIGluZm89JyBEZWZhdWx0L2ZpeGVkOiBjcmVhdGUgYW4gYXR0cmlidXRlIG5vZGUKKyogb3IgYW4gZWxlbWVudCZhcG9zO3MgdGV4dCBub2RlIG9uIHRoZSBpbnN0YW5jZS4KKyonLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgdmFsdWU9JzMnIHR5cGU9J3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkUnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgdmFsdWU9JzEnIHR5cGU9J3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRScgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyB2YWx1ZT0nMicgdHlwZT0neG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIHZhbHVlPScwJyB0eXBlPSd4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RFWFRSRUFERVJfTU9ERV9DTE9TRUQnIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzQnIHR5cGU9J3htbFRleHRSZWFkZXJNb2RlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RFWFRSRUFERVJfTU9ERV9FT0YnIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzMnIHR5cGU9J3htbFRleHRSZWFkZXJNb2RlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RFWFRSRUFERVJfTU9ERV9FUlJPUicgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMicgdHlwZT0neG1sVGV4dFJlYWRlck1vZGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUwnIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzAnIHR5cGU9J3htbFRleHRSZWFkZXJNb2RlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RFWFRSRUFERVJfTU9ERV9JTlRFUkFDVElWRScgZmlsZT0neG1scmVhZGVyJyB2YWx1ZT0nMScgdHlwZT0neG1sVGV4dFJlYWRlck1vZGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfVEVYVFJFQURFUl9NT0RFX1JFQURJTkcnIGZpbGU9J3htbHJlYWRlcicgdmFsdWU9JzUnIHR5cGU9J3htbFRleHRSZWFkZXJNb2RlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RFWFRfTk9ERScgZmlsZT0ndHJlZScgdmFsdWU9JzMnIHR5cGU9J3htbEVsZW1lbnRUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RSRUVfSU5WQUxJRF9ERUMnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTMwMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMzAxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RSRUVfSU5WQUxJRF9IRVgnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTMwMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RSRUVfTk9UX1VURjgnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTMwMycgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMzAzJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1RSRUVfVU5URVJNSU5BVEVEX0VOVElUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMzAyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEzMDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0FSX0NBVEFMT0dfUEknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nOTMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nOTMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0FSX0VOVElUWV9SRURFRklORUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTA3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEwNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XQVJfTEFOR19WQUxVRScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc5OCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc5OCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XQVJfTlNfQ09MVU1OJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0FSX05TX1VSSScgZmlsZT0neG1sZXJyb3InIHZhbHVlPSc5OScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPSc5OScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XQVJfTlNfVVJJX1JFTEFUSVZFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0FSX1NQQUNFX1ZBTFVFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEwMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzI3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzI3Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dBUl9VTktOT1dOX1ZFUlNJT04nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nOTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nOTcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9BVVRPTUFUQScgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMjMnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9DMTROJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxNCcgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX0NBVEFMT0cnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzE1JyB0eXBlPSd4bWxGZWF0dXJlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dJVEhfREVCVUcnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzI4JyB0eXBlPSd4bWxGZWF0dXJlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dJVEhfREVCVUdfTUVNJyBmaWxlPSdwYXJzZXInIHZhbHVlPScyOScgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX0RFQlVHX1JVTicgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMzAnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9FWFBSJyBmaWxlPSdwYXJzZXInIHZhbHVlPScyNCcgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX0ZUUCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nOScgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX0hUTUwnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzEyJyB0eXBlPSd4bWxGZWF0dXJlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dJVEhfSFRUUCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTAnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9JQ09OVicgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMTknIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9JU084ODU5WCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMjAnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9MRUdBQ1knIGZpbGU9J3BhcnNlcicgdmFsdWU9JzEzJyB0eXBlPSd4bWxGZWF0dXJlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dJVEhfTU9EVUxFUycgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMjcnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9OT05FJyBmaWxlPSdwYXJzZXInIHZhbHVlPSc5OTk5OScgdHlwZT0neG1sRmVhdHVyZScgaW5mbz0nIGp1c3QgdG8gYmUgc3VyZSBvZiBhbGxvY2F0aW9uIHNpemUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9PVVRQVVQnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzMnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9QQVRURVJOJyBmaWxlPSdwYXJzZXInIHZhbHVlPSc2JyB0eXBlPSd4bWxGZWF0dXJlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dJVEhfUFVTSCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nNCcgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1JFQURFUicgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nNScgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1JFR0VYUCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMjInIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9TQVgxJyBmaWxlPSdwYXJzZXInIHZhbHVlPSc4JyB0eXBlPSd4bWxGZWF0dXJlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dJVEhfU0NIRU1BUycgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMjUnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9TQ0hFTUFUUk9OJyBmaWxlPSdwYXJzZXInIHZhbHVlPScyNicgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1RIUkVBRCcgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMScgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1RSRUUnIGZpbGU9J3BhcnNlcicgdmFsdWU9JzInIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfV0lUSF9VTklDT0RFJyBmaWxlPSdwYXJzZXInIHZhbHVlPScyMScgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1ZBTElEJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxMScgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1dSSVRFUicgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nNycgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1hJTkNMVURFJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxOCcgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1hQQVRIJyBmaWxlPSdwYXJzZXInIHZhbHVlPScxNicgdHlwZT0neG1sRmVhdHVyZScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9XSVRIX1hQVFInIGZpbGU9J3BhcnNlcicgdmFsdWU9JzE3JyB0eXBlPSd4bWxGZWF0dXJlJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1dJVEhfWkxJQicgZmlsZT0ncGFyc2VyJyB2YWx1ZT0nMzEnIHR5cGU9J3htbEZlYXR1cmUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfQlVJTERfRkFJTEVEJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2MDknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTYwOScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YSU5DTFVERV9ERVBSRUNBVEVEX05TJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2MTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTYxNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YSU5DTFVERV9FTkQnIGZpbGU9J3RyZWUnIHZhbHVlPScyMCcgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfRU5USVRZX0RFRl9NSVNNQVRDSCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjAyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfRkFMTEJBQ0tTX0lOX0lOQ0xVREUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTYxNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNjE1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hJTkNMVURFX0ZBTExCQUNLX05PVF9JTl9JTkNMVURFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2MTYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTYxNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YSU5DTFVERV9GUkFHTUVOVF9JRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjE4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MTgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfSFJFRl9VUkknIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTYwNScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNjA1Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hJTkNMVURFX0lOQ0xVREVfSU5fSU5DTFVERScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjE0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MTQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfSU5WQUxJRF9DSEFSJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2MDgnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTYwOCcvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YSU5DTFVERV9NVUxUSVBMRV9ST09UJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2MTEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTYxMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YSU5DTFVERV9OT19GQUxMQkFDSycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjA0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfTk9fSFJFRicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjAzJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MDMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTYwMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNjAxJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hJTkNMVURFX1JFQ1VSU0lPTicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfU1RBUlQnIGZpbGU9J3RyZWUnIHZhbHVlPScxOScgdHlwZT0neG1sRWxlbWVudFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfVEVYVF9ET0NVTUVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjA3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MDcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfVEVYVF9GUkFHTUVOVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjA2JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MDYnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfVU5LTk9XTl9FTkNPRElORycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxNjEwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE2MTAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWElOQ0xVREVfWFBUUl9GQUlMRUQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTYxMicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxNjEyJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hJTkNMVURFX1hQVFJfUkVTVUxUJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE2MTMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTYxMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9FTkNPRElOR19FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjIwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMjAnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSycgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjAwJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBBVEhfRVhQUl9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjA3JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMDcnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBBVEhfSU5WQUxJRF9BUklUWScgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjEyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMTInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMjEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIyMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04nIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTIxNCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMjE0Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9TSVpFJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMTMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIxMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9JTlZBTElEX09QRVJBTkQnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTIxMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMjEwJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMDYnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIwNicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9JTlZBTElEX1RZUEUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTIxMScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMjExJy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hQQVRIX01FTU9SWV9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjE1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMTUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBBVEhfTlVNQkVSX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMDEnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIwMScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIwMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9VTkNMT1NFRF9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjA4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMDgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBBVEhfVU5ERUZfUFJFRklYX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMTknIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIxOScvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9VTkRFRl9WQVJJQUJMRV9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjA1JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMDUnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBBVEhfVU5GSU5JU0hFRF9MSVRFUkFMX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMDInIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIwMicvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUEFUSF9VTktOT1dOX0ZVTkNfRVJST1InIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTIwOScgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMjA5Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hQQVRIX1ZBUklBQkxFX1JFRl9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjA0JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMDQnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBUUl9DSElMRFNFUV9TVEFSVCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxOTAxJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE5MDEnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBUUl9FVkFMX0ZBSUxFRCcgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxOTAyJyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzE5MDInLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBUUl9FWFRSQV9PQkpFQ1RTJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzE5MDMnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTkwMycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUFRSX1JFU09VUkNFX0VSUk9SJyBmaWxlPSd4bWxlcnJvcicgdmFsdWU9JzEyMTcnIHR5cGU9J3htbFBhcnNlckVycm9ycycgaW5mbz0nMTIxNycvPgorICAgIDxlbnVtIG5hbWU9J1hNTF9YUFRSX1NVQl9SRVNPVVJDRV9FUlJPUicgZmlsZT0neG1sZXJyb3InIHZhbHVlPScxMjE4JyB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89JzEyMTgnLz4KKyAgICA8ZW51bSBuYW1lPSdYTUxfWFBUUl9TWU5UQVhfRVJST1InIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTIxNicgdHlwZT0neG1sUGFyc2VyRXJyb3JzJyBpbmZvPScxMjE2Jy8+CisgICAgPGVudW0gbmFtZT0nWE1MX1hQVFJfVU5LTk9XTl9TQ0hFTUUnIGZpbGU9J3htbGVycm9yJyB2YWx1ZT0nMTkwMCcgdHlwZT0neG1sUGFyc2VyRXJyb3JzJy8+CisgICAgPGVudW0gbmFtZT0nWFBBVEhfQk9PTEVBTicgZmlsZT0neHBhdGgnIHZhbHVlPScyJyB0eXBlPSd4bWxYUGF0aE9iamVjdFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9FTkNPRElOR19FUlJPUicgZmlsZT0neHBhdGgnIHZhbHVlPScyMCcgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX0VYUFJFU1NJT05fT0snIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMCcgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX0VYUFJfRVJST1InIGZpbGU9J3hwYXRoJyB2YWx1ZT0nNycgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX0lOVkFMSURfQVJJVFknIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMTInIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9JTlZBTElEX0NIQVJfRVJST1InIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMjEnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9JTlZBTElEX0NUWFQnIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMjInIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9JTlZBTElEX0NUWFRfUE9TSVRJT04nIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMTQnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9JTlZBTElEX0NUWFRfU0laRScgZmlsZT0neHBhdGgnIHZhbHVlPScxMycgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX0lOVkFMSURfT1BFUkFORCcgZmlsZT0neHBhdGgnIHZhbHVlPScxMCcgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzYnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9JTlZBTElEX1RZUEUnIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMTEnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9MT0NBVElPTlNFVCcgZmlsZT0neHBhdGgnIHZhbHVlPSc3JyB0eXBlPSd4bWxYUGF0aE9iamVjdFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9NRU1PUllfRVJST1InIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMTUnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9OT0RFU0VUJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzEnIHR5cGU9J3htbFhQYXRoT2JqZWN0VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX05VTUJFUicgZmlsZT0neHBhdGgnIHZhbHVlPSczJyB0eXBlPSd4bWxYUGF0aE9iamVjdFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9OVU1CRVJfRVJST1InIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMScgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX1BPSU5UJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzUnIHR5cGU9J3htbFhQYXRoT2JqZWN0VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX1JBTkdFJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzYnIHR5cGU9J3htbFhQYXRoT2JqZWN0VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX1NUQVJUX0xJVEVSQUxfRVJST1InIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMycgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX1NUUklORycgZmlsZT0neHBhdGgnIHZhbHVlPSc0JyB0eXBlPSd4bWxYUGF0aE9iamVjdFR5cGUnLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9VTkNMT1NFRF9FUlJPUicgZmlsZT0neHBhdGgnIHZhbHVlPSc4JyB0eXBlPSd4bWxYUGF0aEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWFBBVEhfVU5ERUZJTkVEJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzAnIHR5cGU9J3htbFhQYXRoT2JqZWN0VHlwZScvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX1VOREVGX1BSRUZJWF9FUlJPUicgZmlsZT0neHBhdGgnIHZhbHVlPScxOScgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzUnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1InIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMicgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQQVRIX1VOS05PV05fRlVOQ19FUlJPUicgZmlsZT0neHBhdGgnIHZhbHVlPSc5JyB0eXBlPSd4bWxYUGF0aEVycm9yJy8+CisgICAgPGVudW0gbmFtZT0nWFBBVEhfVVNFUlMnIGZpbGU9J3hwYXRoJyB2YWx1ZT0nOCcgdHlwZT0neG1sWFBhdGhPYmplY3RUeXBlJy8+CisgICAgPGVudW0gbmFtZT0nWFBBVEhfVkFSSUFCTEVfUkVGX0VSUk9SJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzQnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUEFUSF9YU0xUX1RSRUUnIGZpbGU9J3hwYXRoJyB2YWx1ZT0nOScgdHlwZT0neG1sWFBhdGhPYmplY3RUeXBlJyBpbmZvPScgQW4gWFNMVCB2YWx1ZSB0cmVlLCBub24gbW9kaWZpYWJsZScvPgorICAgIDxlbnVtIG5hbWU9J1hQVFJfUkVTT1VSQ0VfRVJST1InIGZpbGU9J3hwYXRoJyB2YWx1ZT0nMTcnIHR5cGU9J3htbFhQYXRoRXJyb3InLz4KKyAgICA8ZW51bSBuYW1lPSdYUFRSX1NVQl9SRVNPVVJDRV9FUlJPUicgZmlsZT0neHBhdGgnIHZhbHVlPScxOCcgdHlwZT0neG1sWFBhdGhFcnJvcicvPgorICAgIDxlbnVtIG5hbWU9J1hQVFJfU1lOVEFYX0VSUk9SJyBmaWxlPSd4cGF0aCcgdmFsdWU9JzE2JyB0eXBlPSd4bWxYUGF0aEVycm9yJy8+CisgICAgPHR5cGVkZWYgbmFtZT0nZG9jYkRvY1B0cicgZmlsZT0nRE9DQnBhcnNlcicgdHlwZT0neG1sRG9jUHRyJy8+CisgICAgPHR5cGVkZWYgbmFtZT0nZG9jYlBhcnNlckN0eHQnIGZpbGU9J0RPQ0JwYXJzZXInIHR5cGU9J3htbFBhcnNlckN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSdkb2NiUGFyc2VyQ3R4dFB0cicgZmlsZT0nRE9DQnBhcnNlcicgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicvPgorICAgIDx0eXBlZGVmIG5hbWU9J2RvY2JQYXJzZXJJbnB1dCcgZmlsZT0nRE9DQnBhcnNlcicgdHlwZT0neG1sUGFyc2VySW5wdXQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSdkb2NiUGFyc2VySW5wdXRQdHInIGZpbGU9J0RPQ0JwYXJzZXInIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJy8+CisgICAgPHR5cGVkZWYgbmFtZT0nZG9jYlNBWEhhbmRsZXInIGZpbGU9J0RPQ0JwYXJzZXInIHR5cGU9J3htbFNBWEhhbmRsZXInLz4KKyAgICA8dHlwZWRlZiBuYW1lPSdkb2NiU0FYSGFuZGxlclB0cicgZmlsZT0nRE9DQnBhcnNlcicgdHlwZT0neG1sU0FYSGFuZGxlclB0cicvPgorICAgIDx0eXBlZGVmIG5hbWU9J2h0bWxEb2NQdHInIGZpbGU9J0hUTUxwYXJzZXInIHR5cGU9J3htbERvY1B0cicvPgorICAgIDxzdHJ1Y3QgbmFtZT0naHRtbEVsZW1EZXNjJyBmaWxlPSdIVE1McGFyc2VyJyB0eXBlPSdzdHJ1Y3QgX2h0bWxFbGVtRGVzYyc+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPScgVGhlIHRhZyBuYW1lJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3RhcnRUYWcnIHR5cGU9J2NoYXInIGluZm89JyBXaGV0aGVyIHRoZSBzdGFydCB0YWcgY2FuIGJlIGltcGxpZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlbmRUYWcnIHR5cGU9J2NoYXInIGluZm89JyBXaGV0aGVyIHRoZSBlbmQgdGFnIGNhbiBiZSBpbXBsaWVkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc2F2ZUVuZFRhZycgdHlwZT0nY2hhcicgaW5mbz0nIFdoZXRoZXIgdGhlIGVuZCB0YWcgc2hvdWxkIGJlIHNhdmVkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZW1wdHknIHR5cGU9J2NoYXInIGluZm89JyBJcyB0aGlzIGFuIGVtcHR5IGVsZW1lbnQgPycvPgorICAgICAgPGZpZWxkIG5hbWU9J2RlcHInIHR5cGU9J2NoYXInIGluZm89JyBJcyB0aGlzIGEgZGVwcmVjYXRlZCBlbGVtZW50ID8nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkdGQnIHR5cGU9J2NoYXInIGluZm89JyAxOiBvbmx5IGluIExvb3NlIERURCwgMjogb25seSBGcmFtZXNldCBvbmUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpc2lubGluZScgdHlwZT0nY2hhcicgaW5mbz0nIGlzIHRoaXMgYSBibG9jayAwIG9yIGlubGluZSAxIGVsZW1lbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkZXNjJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89JyB0aGUgZGVzY3JpcHRpb24gTlJLIEphbi4yMDAzCisqIE5ldyBmaWVsZHMgZW5jYXBzdWxhdGluZyBIVE1MIHN0cnVjdHVyZQorKgorKiBCdWdzOgorKglUaGlzIGlzIGEgdmVyeSBsaW1pdGVkIHJlcHJlc2VudGF0aW9uLiAgSXQgZmFpbHMgdG8gdGVsbCB1cyB3aGVuCisqCWFuIGVsZW1lbnQgKnJlcXVpcmVzKiBzdWJlbGVtZW50cyAod2Ugb25seSBoYXZlIHdoZXRoZXIgdGhleSZhcG9zO3JlCisqCWFsbG93ZWQgb3Igbm90KSwgYW5kIGl0IGRvZXNuJmFwb3M7dCB0ZWxsIHVzIHdoZXJlIENEQVRBIGFuZCBQQ0RBVEEKKyoJYXJlIGFsbG93ZWQuICBTb21lIGVsZW1lbnQgcmVsYXRpb25zaGlwcyBhcmUgbm90IGZ1bGx5IHJlcHJlc2VudGVkOgorKgl0aGVzZSBhcmUgZmxhZ2dlZCB3aXRoIHRoZSB3b3JkIE1PRElGSUVSCisqJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3ViZWx0cycgdHlwZT0nY29uc3QgY2hhciAqKicgaW5mbz0nIGFsbG93ZWQgc3ViLWVsZW1lbnRzIG9mIHRoaXMgZWxlbWVudCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2RlZmF1bHRzdWJlbHQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nIHN1YmVsZW1lbnQgZm9yIHN1Z2dlc3RlZCBhdXRvLXJlcGFpcgoraWYgbmVjZXNzYXJ5IG9yIE5VTEwnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhdHRyc19vcHQnIHR5cGU9J2NvbnN0IGNoYXIgKionIGluZm89JyBPcHRpb25hbCBBdHRyaWJ1dGVzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0cnNfZGVwcicgdHlwZT0nY29uc3QgY2hhciAqKicgaW5mbz0nIEFkZGl0aW9uYWwgZGVwcmVjYXRlZCBhdHRyaWJ1dGVzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0cnNfcmVxJyB0eXBlPSdjb25zdCBjaGFyICoqJyBpbmZvPScgUmVxdWlyZWQgYXR0cmlidXRlcycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J2h0bWxFbGVtRGVzY1B0cicgZmlsZT0nSFRNTHBhcnNlcicgdHlwZT0naHRtbEVsZW1EZXNjIConLz4KKyAgICA8c3RydWN0IG5hbWU9J2h0bWxFbnRpdHlEZXNjJyBmaWxlPSdIVE1McGFyc2VyJyB0eXBlPSdzdHJ1Y3QgX2h0bWxFbnRpdHlEZXNjJz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2YWx1ZScgdHlwZT0ndW5zaWduZWQgaW50JyBpbmZvPScgdGhlIFVOSUNPREUgdmFsdWUgZm9yIHRoZSBjaGFyYWN0ZXInLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89JyBUaGUgZW50aXR5IG5hbWUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkZXNjJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89JyB0aGUgZGVzY3JpcHRpb24nLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSdodG1sRW50aXR5RGVzY1B0cicgZmlsZT0nSFRNTHBhcnNlcicgdHlwZT0naHRtbEVudGl0eURlc2MgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J2h0bWxOb2RlUHRyJyBmaWxlPSdIVE1McGFyc2VyJyB0eXBlPSd4bWxOb2RlUHRyJy8+CisgICAgPHR5cGVkZWYgbmFtZT0naHRtbFBhcnNlckN0eHQnIGZpbGU9J0hUTUxwYXJzZXInIHR5cGU9J3htbFBhcnNlckN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSdodG1sUGFyc2VyQ3R4dFB0cicgZmlsZT0nSFRNTHBhcnNlcicgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicvPgorICAgIDx0eXBlZGVmIG5hbWU9J2h0bWxQYXJzZXJJbnB1dCcgZmlsZT0nSFRNTHBhcnNlcicgdHlwZT0neG1sUGFyc2VySW5wdXQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSdodG1sUGFyc2VySW5wdXRQdHInIGZpbGU9J0hUTUxwYXJzZXInIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJy8+CisgICAgPHR5cGVkZWYgbmFtZT0naHRtbFBhcnNlck5vZGVJbmZvJyBmaWxlPSdIVE1McGFyc2VyJyB0eXBlPSd4bWxQYXJzZXJOb2RlSW5mbycvPgorICAgIDx0eXBlZGVmIG5hbWU9J2h0bWxQYXJzZXJPcHRpb24nIGZpbGU9J0hUTUxwYXJzZXInIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSdodG1sU0FYSGFuZGxlcicgZmlsZT0nSFRNTHBhcnNlcicgdHlwZT0neG1sU0FYSGFuZGxlcicvPgorICAgIDx0eXBlZGVmIG5hbWU9J2h0bWxTQVhIYW5kbGVyUHRyJyBmaWxlPSdIVE1McGFyc2VyJyB0eXBlPSd4bWxTQVhIYW5kbGVyUHRyJy8+CisgICAgPHR5cGVkZWYgbmFtZT0naHRtbFN0YXR1cycgZmlsZT0nSFRNTHBhcnNlcicgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3hsaW5rQWN0dWF0ZScgZmlsZT0neGxpbmsnIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bGlua0hSZWYnIGZpbGU9J3hsaW5rJyB0eXBlPSd4bWxDaGFyIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3hsaW5rSGFuZGxlcicgZmlsZT0neGxpbmsnIHR5cGU9J3N0cnVjdCBfeGxpbmtIYW5kbGVyJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzaW1wbGUnIHR5cGU9J3hsaW5rU2ltcGxlTGlua0Z1bmsnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2V4dGVuZGVkJyB0eXBlPSd4bGlua0V4dGVuZGVkTGlua0Z1bmsnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3NldCcgdHlwZT0neGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rJyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bGlua0hhbmRsZXJQdHInIGZpbGU9J3hsaW5rJyB0eXBlPSd4bGlua0hhbmRsZXIgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3hsaW5rUm9sZScgZmlsZT0neGxpbmsnIHR5cGU9J3htbENoYXIgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3hsaW5rU2hvdycgZmlsZT0neGxpbmsnIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bGlua1RpdGxlJyBmaWxlPSd4bGluaycgdHlwZT0neG1sQ2hhciAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neGxpbmtUeXBlJyBmaWxlPSd4bGluaycgdHlwZT0nZW51bScvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sQXR0cicgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxBdHRyJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdfcHJpdmF0ZScgdHlwZT0ndm9pZCAqJyBpbmZvPScgYXBwbGljYXRpb24gZGF0YScvPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbEVsZW1lbnRUeXBlJyBpbmZvPScgWE1MX0FUVFJJQlVURV9OT0RFLCBtdXN0IGJlIHNlY29uZCAhJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nY2hpbGRyZW4nIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eScvPgorICAgICAgPGZpZWxkIG5hbWU9J2xhc3QnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgTlVMTCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3BhcmVudCcgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBjaGlsZC0mZ3Q7cGFyZW50IGxpbmsnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbEF0dHIgKicgaW5mbz0nIG5leHQgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J3ByZXYnIHR5cGU9J3N0cnVjdCBfeG1sQXR0ciAqJyBpbmZvPScgcHJldmlvdXMgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J2RvYycgdHlwZT0nc3RydWN0IF94bWxEb2MgKicgaW5mbz0nIHRoZSBjb250YWluaW5nIGRvY3VtZW50Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nbnMnIHR5cGU9J3htbE5zIConIGluZm89JyBwb2ludGVyIHRvIHRoZSBhc3NvY2lhdGVkIG5hbWVzcGFjZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0eXBlJyB0eXBlPSd4bWxBdHRyaWJ1dGVUeXBlJyBpbmZvPScgdGhlIGF0dHJpYnV0ZSB0eXBlIGlmIHZhbGlkYXRpbmcnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdwc3ZpJyB0eXBlPSd2b2lkIConIGluZm89JyBmb3IgdHlwZS9QU1ZJIGluZm9ybWF0aW9ucycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbEF0dHJQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbEF0dHIgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sQXR0cmlidXRlJyBmaWxlPSd0cmVlJyB0eXBlPSdzdHJ1Y3QgX3htbEF0dHJpYnV0ZSc+CisgICAgICA8ZmllbGQgbmFtZT0nX3ByaXZhdGUnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIGFwcGxpY2F0aW9uIGRhdGEnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0eXBlJyB0eXBlPSd4bWxFbGVtZW50VHlwZScgaW5mbz0nIFhNTF9BVFRSSUJVVEVfREVDTCwgbXVzdCBiZSBzZWNvbmQgIScvPgorICAgICAgPGZpZWxkIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIEF0dHJpYnV0ZSBuYW1lJy8+CisgICAgICA8ZmllbGQgbmFtZT0nY2hpbGRyZW4nIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgTlVMTCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2xhc3QnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgTlVMTCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3BhcmVudCcgdHlwZT0nc3RydWN0IF94bWxEdGQgKicgaW5mbz0nIC0mZ3Q7IERURCcvPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgbmV4dCBzaWJsaW5nIGxpbmsgJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncHJldicgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBwcmV2aW91cyBzaWJsaW5nIGxpbmsgJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZG9jJyB0eXBlPSdzdHJ1Y3QgX3htbERvYyAqJyBpbmZvPScgdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0aCcgdHlwZT0nc3RydWN0IF94bWxBdHRyaWJ1dGUgKicgaW5mbz0nIG5leHQgaW4gaGFzaCB0YWJsZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0eXBlJyB0eXBlPSd4bWxBdHRyaWJ1dGVUeXBlJyBpbmZvPScgVGhlIGF0dHJpYnV0ZSB0eXBlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZGVmJyB0eXBlPSd4bWxBdHRyaWJ1dGVEZWZhdWx0JyBpbmZvPScgdGhlIGRlZmF1bHQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkZWZhdWx0VmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIG9yIHRoZSBkZWZhdWx0IHZhbHVlJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndHJlZScgdHlwZT0neG1sRW51bWVyYXRpb25QdHInIGluZm89JyBvciB0aGUgZW51bWVyYXRpb24gdHJlZSBpZiBhbnknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIHRoZSBuYW1lc3BhY2UgcHJlZml4IGlmIGFueScvPgorICAgICAgPGZpZWxkIG5hbWU9J2VsZW0nIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIEVsZW1lbnQgaG9sZGluZyB0aGUgYXR0cmlidXRlJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sQXR0cmlidXRlRGVmYXVsdCcgZmlsZT0ndHJlZScgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbEF0dHJpYnV0ZVB0cicgZmlsZT0ndHJlZScgdHlwZT0neG1sQXR0cmlidXRlIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbEF0dHJpYnV0ZVRhYmxlJyBmaWxlPSd2YWxpZCcgdHlwZT0nc3RydWN0IF94bWxIYXNoVGFibGUnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxBdHRyaWJ1dGVUYWJsZVB0cicgZmlsZT0ndmFsaWQnIHR5cGU9J3htbEF0dHJpYnV0ZVRhYmxlIConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxBdHRyaWJ1dGVUeXBlJyBmaWxlPSd0cmVlJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxBdXRvbWF0YScgZmlsZT0neG1sYXV0b21hdGEnIHR5cGU9J3N0cnVjdCBfeG1sQXV0b21hdGEnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxBdXRvbWF0YVB0cicgZmlsZT0neG1sYXV0b21hdGEnIHR5cGU9J3htbEF1dG9tYXRhIConPgorICAgICAgPGluZm8+QSBsaWJ4bWwgYXV0b21hdGEgZGVzY3JpcHRpb24sIEl0IGNhbiBiZSBjb21waWxlZCBpbnRvIGEgcmVnZXhwPC9pbmZvPgorICAgIDwvdHlwZWRlZj4KKyAgICA8c3RydWN0IG5hbWU9J3htbEF1dG9tYXRhU3RhdGUnIGZpbGU9J3htbGF1dG9tYXRhJyB0eXBlPSdzdHJ1Y3QgX3htbEF1dG9tYXRhU3RhdGUnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBmaWxlPSd4bWxhdXRvbWF0YScgdHlwZT0neG1sQXV0b21hdGFTdGF0ZSAqJz4KKyAgICAgIDxpbmZvPkEgc3RhdGUgaW50IHRoZSBhdXRvbWF0YSBkZXNjcmlwdGlvbiw8L2luZm8+CisgICAgPC90eXBlZGVmPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sQnVmZmVyJyBmaWxlPSd0cmVlJyB0eXBlPSdzdHJ1Y3QgX3htbEJ1ZmZlcic+CisgICAgICA8ZmllbGQgbmFtZT0nY29udGVudCcgdHlwZT0neG1sQ2hhciAqJyBpbmZvPScgVGhlIGJ1ZmZlciBjb250ZW50IFVURjgnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd1c2UnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nIFRoZSBidWZmZXIgc2l6ZSB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc2l6ZScgdHlwZT0ndW5zaWduZWQgaW50JyBpbmZvPScgVGhlIGJ1ZmZlciBzaXplJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYWxsb2MnIHR5cGU9J3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIGluZm89JyBUaGUgcmVhbGxvYyBtZXRob2QnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZW50SU8nIHR5cGU9J3htbENoYXIgKicgaW5mbz0nIGluIElPIG1vZGUgd2UgbWF5IGhhdmUgYSBkaWZmZXJlbnQgYmFzZScvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIGZpbGU9J3RyZWUnIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxCdWZmZXJQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbEJ1ZmZlciAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sQzE0Tk1vZGUnIGZpbGU9J2MxNG4nIHR5cGU9J2VudW0nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbENhdGFsb2cnIGZpbGU9J2NhdGFsb2cnIHR5cGU9J3N0cnVjdCBfeG1sQ2F0YWxvZycvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbENhdGFsb2dBbGxvdycgZmlsZT0nY2F0YWxvZycgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbENhdGFsb2dQcmVmZXInIGZpbGU9J2NhdGFsb2cnIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxDYXRhbG9nUHRyJyBmaWxlPSdjYXRhbG9nJyB0eXBlPSd4bWxDYXRhbG9nIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbENoTFJhbmdlJyBmaWxlPSdjaHZhbGlkJyB0eXBlPSdzdHJ1Y3QgX3htbENoTFJhbmdlJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsb3cnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naGlnaCcgdHlwZT0ndW5zaWduZWQgaW50JyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxDaExSYW5nZVB0cicgZmlsZT0nY2h2YWxpZCcgdHlwZT0neG1sQ2hMUmFuZ2UgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sQ2hSYW5nZUdyb3VwJyBmaWxlPSdjaHZhbGlkJyB0eXBlPSdzdHJ1Y3QgX3htbENoUmFuZ2VHcm91cCc+CisgICAgICA8ZmllbGQgbmFtZT0nbmJTaG9ydFJhbmdlJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J25iTG9uZ1JhbmdlJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3Nob3J0UmFuZ2UnIHR5cGU9J2NvbnN0IHhtbENoU1JhbmdlIConIGluZm89JyBwb2ludHMgdG8gYW4gYXJyYXkgb2YgcmFuZ2VzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbG9uZ1JhbmdlJyB0eXBlPSdjb25zdCB4bWxDaExSYW5nZSAqJyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxDaFJhbmdlR3JvdXBQdHInIGZpbGU9J2NodmFsaWQnIHR5cGU9J3htbENoUmFuZ2VHcm91cCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxDaFNSYW5nZScgZmlsZT0nY2h2YWxpZCcgdHlwZT0nc3RydWN0IF94bWxDaFNSYW5nZSc+CisgICAgICA8ZmllbGQgbmFtZT0nbG93JyB0eXBlPSd1bnNpZ25lZCBzaG9ydCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naGlnaCcgdHlwZT0ndW5zaWduZWQgc2hvcnQnIGluZm89JycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbENoU1JhbmdlUHRyJyBmaWxlPSdjaHZhbGlkJyB0eXBlPSd4bWxDaFNSYW5nZSAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sQ2hhcicgZmlsZT0neG1sc3RyaW5nJyB0eXBlPSd1bnNpZ25lZCBjaGFyJz4KKyAgICAgIDxpbmZvPlRoaXMgaXMgYSBiYXNpYyBieXRlIGluIGFuIFVURi04IGVuY29kZWQgc3RyaW5nLiBJdCZhcG9zO3MgdW5zaWduZWQgYWxsb3dpbmcgdG8gcGlucG9pbnQgY2FzZSB3aGVyZSBjaGFyICogYXJlIGFzc2lnbmVkIHRvIHhtbENoYXIgKiAocG9zc2libHkgbWFraW5nIHNlcmlhbGl6YXRpb24gYmFjayBpbXBvc3NpYmxlKS48L2luZm8+CisgICAgPC90eXBlZGVmPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbENoYXJFbmNvZGluZycgZmlsZT0nZW5jb2RpbmcnIHR5cGU9J2VudW0nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXInIGZpbGU9J2VuY29kaW5nJyB0eXBlPSdzdHJ1Y3QgX3htbENoYXJFbmNvZGluZ0hhbmRsZXInPgorICAgICAgPGZpZWxkIG5hbWU9J25hbWUnIHR5cGU9J2NoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naW5wdXQnIHR5cGU9J3htbENoYXJFbmNvZGluZ0lucHV0RnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nb3V0cHV0JyB0eXBlPSd4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpY29udl9pbicgdHlwZT0naWNvbnZfdCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naWNvbnZfb3V0JyB0eXBlPSdpY29udl90JyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyJyBmaWxlPSdlbmNvZGluZycgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlciAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxET01XcmFwQ3R4dCcgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxET01XcmFwQ3R4dCc+CisgICAgICA8ZmllbGQgbmFtZT0nX3ByaXZhdGUnIHR5cGU9J3ZvaWQgKicgaW5mbz0nKiBUaGUgdHlwZSBvZiB0aGlzIGNvbnRleHQsIGp1c3QgaW4gY2FzZSB3ZSBuZWVkIHNwZWNpYWxpemVkCisqIGNvbnRleHRzIGluIHRoZSBmdXR1cmUuCisqJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZScgdHlwZT0naW50JyBpbmZvPScqIEludGVybmFsIG5hbWVzcGFjZSBtYXAgdXNlZCBmb3IgdmFyaW91cyBvcGVyYXRpb25zLgorKicvPgorICAgICAgPGZpZWxkIG5hbWU9J25hbWVzcGFjZU1hcCcgdHlwZT0ndm9pZCAqJyBpbmZvPScqIFVzZSB0aGlzIG9uZSB0byBhY3F1aXJlIGFuIHhtbE5zUHRyIGludGVuZGVkIGZvciBub2RlLSZndDtucy4KKyogKE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBpbnRlbmRlZCBmb3IgZWxlbS0mZ3Q7bnNEZWYpLgorKicvPgorICAgICAgPGZpZWxkIG5hbWU9J2dldE5zRm9yTm9kZUZ1bmMnIHR5cGU9J3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbicgaW5mbz0nJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRE9NV3JhcEN0eHRQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbERPTVdyYXBDdHh0IConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbERpY3QnIGZpbGU9J2RpY3QnIHR5cGU9J3N0cnVjdCBfeG1sRGljdCcvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbERpY3RQdHInIGZpbGU9J2RpY3QnIHR5cGU9J3htbERpY3QgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sRG9jJyBmaWxlPSd0cmVlJyB0eXBlPSdzdHJ1Y3QgX3htbERvYyc+CisgICAgICA8ZmllbGQgbmFtZT0nX3ByaXZhdGUnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIGFwcGxpY2F0aW9uIGRhdGEnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0eXBlJyB0eXBlPSd4bWxFbGVtZW50VHlwZScgaW5mbz0nIFhNTF9ET0NVTUVOVF9OT0RFLCBtdXN0IGJlIHNlY29uZCAhJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY2hhciAqJyBpbmZvPScgbmFtZS9maWxlbmFtZS9VUkkgb2YgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nY2hpbGRyZW4nIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgdGhlIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsYXN0JyB0eXBlPSdzdHJ1Y3QgX3htbE5vZGUgKicgaW5mbz0nIGxhc3QgY2hpbGQgbGluaycvPgorICAgICAgPGZpZWxkIG5hbWU9J3BhcmVudCcgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBjaGlsZC0mZ3Q7cGFyZW50IGxpbmsnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbE5vZGUgKicgaW5mbz0nIG5leHQgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J3ByZXYnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgcHJldmlvdXMgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J2RvYycgdHlwZT0nc3RydWN0IF94bWxEb2MgKicgaW5mbz0nIGF1dG9yZWZlcmVuY2UgdG8gaXRzZWxmIEVuZCBvZiBjb21tb24gcGFydCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvbXByZXNzaW9uJyB0eXBlPSdpbnQnIGluZm89JyBsZXZlbCBvZiB6bGliIGNvbXByZXNzaW9uJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3RhbmRhbG9uZScgdHlwZT0naW50JyBpbmZvPScgc3RhbmRhbG9uZSBkb2N1bWVudCAobm8gZXh0ZXJuYWwgcmVmcykKKzEgaWYgc3RhbmRhbG9uZT0mcXVvdDt5ZXMmcXVvdDsKKzAgaWYgc3RhbmRhbG9uZT0mcXVvdDtubyZxdW90OworLTEgaWYgdGhlcmUgaXMgbm8gWE1MIGRlY2xhcmF0aW9uCistMiBpZiB0aGVyZSBpcyBhbiBYTUwgZGVjbGFyYXRpb24sIGJ1dCBubworc3RhbmRhbG9uZSBhdHRyaWJ1dGUgd2FzIHNwZWNpZmllZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2ludFN1YnNldCcgdHlwZT0nc3RydWN0IF94bWxEdGQgKicgaW5mbz0nIHRoZSBkb2N1bWVudCBpbnRlcm5hbCBzdWJzZXQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdleHRTdWJzZXQnIHR5cGU9J3N0cnVjdCBfeG1sRHRkIConIGluZm89JyB0aGUgZG9jdW1lbnQgZXh0ZXJuYWwgc3Vic2V0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nb2xkTnMnIHR5cGU9J3N0cnVjdCBfeG1sTnMgKicgaW5mbz0nIEdsb2JhbCBuYW1lc3BhY2UsIHRoZSBvbGQgd2F5Jy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmVyc2lvbicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIFhNTCB2ZXJzaW9uIHN0cmluZycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBleHRlcm5hbCBpbml0aWFsIGVuY29kaW5nLCBpZiBhbnknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpZHMnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIEhhc2ggdGFibGUgZm9yIElEIGF0dHJpYnV0ZXMgaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVmcycgdHlwZT0ndm9pZCAqJyBpbmZvPScgSGFzaCB0YWJsZSBmb3IgSURSRUZzIGF0dHJpYnV0ZXMgaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBUaGUgVVJJIGZvciB0aGF0IGRvY3VtZW50Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nY2hhcnNldCcgdHlwZT0naW50JyBpbmZvPScgZW5jb2Rpbmcgb2YgdGhlIGluLW1lbW9yeSBjb250ZW50CithY3R1YWxseSBhbiB4bWxDaGFyRW5jb2RpbmcnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkaWN0JyB0eXBlPSdzdHJ1Y3QgX3htbERpY3QgKicgaW5mbz0nIGRpY3QgdXNlZCB0byBhbGxvY2F0ZSBuYW1lcyBvciBOVUxMJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncHN2aScgdHlwZT0ndm9pZCAqJyBpbmZvPScgZm9yIHR5cGUvUFNWSSBpbmZvcm1hdGlvbnMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdwYXJzZUZsYWdzJyB0eXBlPSdpbnQnIGluZm89JyBzZXQgb2YgeG1sUGFyc2VyT3B0aW9uIHVzZWQgdG8gcGFyc2UgdGhlCitkb2N1bWVudCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3Byb3BlcnRpZXMnIHR5cGU9J2ludCcgaW5mbz0nIHNldCBvZiB4bWxEb2NQcm9wZXJ0aWVzIGZvciB0aGlzIGRvY3VtZW50CitzZXQgYXQgdGhlIGVuZCBvZiBwYXJzaW5nJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRG9jUHJvcGVydGllcycgZmlsZT0ndHJlZScgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbERvY1B0cicgZmlsZT0ndHJlZScgdHlwZT0neG1sRG9jIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbER0ZCcgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxEdGQnPgorICAgICAgPGZpZWxkIG5hbWU9J19wcml2YXRlJyB0eXBlPSd2b2lkIConIGluZm89JyBhcHBsaWNhdGlvbiBkYXRhJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZScgdHlwZT0neG1sRWxlbWVudFR5cGUnIGluZm89JyBYTUxfRFREX05PREUsIG11c3QgYmUgc2Vjb25kICEnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBOYW1lIG9mIHRoZSBEVEQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjaGlsZHJlbicgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGxpbmsnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsYXN0JyB0eXBlPSdzdHJ1Y3QgX3htbE5vZGUgKicgaW5mbz0nIGxhc3QgY2hpbGQgbGluaycvPgorICAgICAgPGZpZWxkIG5hbWU9J3BhcmVudCcgdHlwZT0nc3RydWN0IF94bWxEb2MgKicgaW5mbz0nIGNoaWxkLSZndDtwYXJlbnQgbGluaycvPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgbmV4dCBzaWJsaW5nIGxpbmsgJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncHJldicgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBwcmV2aW91cyBzaWJsaW5nIGxpbmsgJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZG9jJyB0eXBlPSdzdHJ1Y3QgX3htbERvYyAqJyBpbmZvPScgdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQgRW5kIG9mIGNvbW1vbiBwYXJ0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm90YXRpb25zJyB0eXBlPSd2b2lkIConIGluZm89JyBIYXNoIHRhYmxlIGZvciBub3RhdGlvbnMgaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nZWxlbWVudHMnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIEhhc2ggdGFibGUgZm9yIGVsZW1lbnRzIGlmIGFueScvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHJpYnV0ZXMnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIEhhc2ggdGFibGUgZm9yIGF0dHJpYnV0ZXMgaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nZW50aXRpZXMnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIEhhc2ggdGFibGUgZm9yIGVudGl0aWVzIGlmIGFueScvPgorICAgICAgPGZpZWxkIG5hbWU9J0V4dGVybmFsSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIEV4dGVybmFsIGlkZW50aWZpZXIgZm9yIFBVQkxJQyBEVEQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdTeXN0ZW1JRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgVVJJIGZvciBhIFNZU1RFTSBvciBQVUJMSUMgRFREJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncGVudGl0aWVzJyB0eXBlPSd2b2lkIConIGluZm89JyBIYXNoIHRhYmxlIGZvciBwYXJhbSBlbnRpdGllcyBpZiBhbnknLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxEdGRQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbER0ZCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxFbGVtZW50JyBmaWxlPSd0cmVlJyB0eXBlPSdzdHJ1Y3QgX3htbEVsZW1lbnQnPgorICAgICAgPGZpZWxkIG5hbWU9J19wcml2YXRlJyB0eXBlPSd2b2lkIConIGluZm89JyBhcHBsaWNhdGlvbiBkYXRhJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZScgdHlwZT0neG1sRWxlbWVudFR5cGUnIGluZm89JyBYTUxfRUxFTUVOVF9ERUNMLCBtdXN0IGJlIHNlY29uZCAhJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgRWxlbWVudCBuYW1lJy8+CisgICAgICA8ZmllbGQgbmFtZT0nY2hpbGRyZW4nIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgTlVMTCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2xhc3QnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgTlVMTCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3BhcmVudCcgdHlwZT0nc3RydWN0IF94bWxEdGQgKicgaW5mbz0nIC0mZ3Q7IERURCcvPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgbmV4dCBzaWJsaW5nIGxpbmsgJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncHJldicgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBwcmV2aW91cyBzaWJsaW5nIGxpbmsgJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZG9jJyB0eXBlPSdzdHJ1Y3QgX3htbERvYyAqJyBpbmZvPScgdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdldHlwZScgdHlwZT0neG1sRWxlbWVudFR5cGVWYWwnIGluZm89JyBUaGUgdHlwZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvbnRlbnQnIHR5cGU9J3htbEVsZW1lbnRDb250ZW50UHRyJyBpbmZvPScgdGhlIGFsbG93ZWQgZWxlbWVudCBjb250ZW50Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0cmlidXRlcycgdHlwZT0neG1sQXR0cmlidXRlUHRyJyBpbmZvPScgTGlzdCBvZiB0aGUgZGVjbGFyZWQgYXR0cmlidXRlcycvPgorICAgICAgPGZpZWxkIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIG5hbWVzcGFjZSBwcmVmaXggaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nY29udE1vZGVsJyB0eXBlPSd4bWxSZWdleHBQdHInIGluZm89JyB0aGUgdmFsaWRhdGluZyByZWdleHAnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250TW9kZWwnIHR5cGU9J3ZvaWQgKicgaW5mbz0nJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxFbGVtZW50Q29udGVudCcgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxFbGVtZW50Q29udGVudCc+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZScgdHlwZT0neG1sRWxlbWVudENvbnRlbnRUeXBlJyBpbmZvPScgUENEQVRBLCBFTEVNRU5ULCBTRVEgb3IgT1InLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdvY3VyJyB0eXBlPSd4bWxFbGVtZW50Q29udGVudE9jY3VyJyBpbmZvPScgT05DRSwgT1BULCBNVUxUIG9yIFBMVVMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBFbGVtZW50IG5hbWUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjMScgdHlwZT0nc3RydWN0IF94bWxFbGVtZW50Q29udGVudCAqJyBpbmZvPScgZmlyc3QgY2hpbGQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjMicgdHlwZT0nc3RydWN0IF94bWxFbGVtZW50Q29udGVudCAqJyBpbmZvPScgc2Vjb25kIGNoaWxkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncGFyZW50JyB0eXBlPSdzdHJ1Y3QgX3htbEVsZW1lbnRDb250ZW50IConIGluZm89JyBwYXJlbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIE5hbWVzcGFjZSBwcmVmaXgnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxFbGVtZW50Q29udGVudE9jY3VyJyBmaWxlPSd0cmVlJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRWxlbWVudENvbnRlbnRQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbEVsZW1lbnRDb250ZW50IConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxFbGVtZW50Q29udGVudFR5cGUnIGZpbGU9J3RyZWUnIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxFbGVtZW50UHRyJyBmaWxlPSd0cmVlJyB0eXBlPSd4bWxFbGVtZW50IConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbEVsZW1lbnRUYWJsZScgZmlsZT0ndmFsaWQnIHR5cGU9J3N0cnVjdCBfeG1sSGFzaFRhYmxlJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRWxlbWVudFRhYmxlUHRyJyBmaWxlPSd2YWxpZCcgdHlwZT0neG1sRWxlbWVudFRhYmxlIConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxFbGVtZW50VHlwZScgZmlsZT0ndHJlZScgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbEVsZW1lbnRUeXBlVmFsJyBmaWxlPSd0cmVlJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxFbnRpdGllc1RhYmxlJyBmaWxlPSdlbnRpdGllcycgdHlwZT0nc3RydWN0IF94bWxIYXNoVGFibGUnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxFbnRpdGllc1RhYmxlUHRyJyBmaWxlPSdlbnRpdGllcycgdHlwZT0neG1sRW50aXRpZXNUYWJsZSAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxFbnRpdHknIGZpbGU9J3RyZWUnIHR5cGU9J3N0cnVjdCBfeG1sRW50aXR5Jz4KKyAgICAgIDxmaWVsZCBuYW1lPSdfcHJpdmF0ZScgdHlwZT0ndm9pZCAqJyBpbmZvPScgYXBwbGljYXRpb24gZGF0YScvPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbEVsZW1lbnRUeXBlJyBpbmZvPScgWE1MX0VOVElUWV9ERUNMLCBtdXN0IGJlIHNlY29uZCAhJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgRW50aXR5IG5hbWUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjaGlsZHJlbicgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBGaXJzdCBjaGlsZCBsaW5rJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbGFzdCcgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBMYXN0IGNoaWxkIGxpbmsnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdwYXJlbnQnIHR5cGU9J3N0cnVjdCBfeG1sRHRkIConIGluZm89JyAtJmd0OyBEVEQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbE5vZGUgKicgaW5mbz0nIG5leHQgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J3ByZXYnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgcHJldmlvdXMgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J2RvYycgdHlwZT0nc3RydWN0IF94bWxEb2MgKicgaW5mbz0nIHRoZSBjb250YWluaW5nIGRvY3VtZW50Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nb3JpZycgdHlwZT0neG1sQ2hhciAqJyBpbmZvPScgY29udGVudCB3aXRob3V0IHJlZiBzdWJzdGl0dXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZW50JyB0eXBlPSd4bWxDaGFyIConIGluZm89JyBjb250ZW50IG9yIG5kYXRhIGlmIHVucGFyc2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbGVuZ3RoJyB0eXBlPSdpbnQnIGluZm89JyB0aGUgY29udGVudCBsZW5ndGgnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdldHlwZScgdHlwZT0neG1sRW50aXR5VHlwZScgaW5mbz0nIFRoZSBlbnRpdHkgdHlwZScvPgorICAgICAgPGZpZWxkIG5hbWU9J0V4dGVybmFsSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIEV4dGVybmFsIGlkZW50aWZpZXIgZm9yIFBVQkxJQycvPgorICAgICAgPGZpZWxkIG5hbWU9J1N5c3RlbUlEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBVUkkgZm9yIGEgU1lTVEVNIG9yIFBVQkxJQyBFbnRpdHknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0ZScgdHlwZT0nc3RydWN0IF94bWxFbnRpdHkgKicgaW5mbz0nIHVudXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J1VSSScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIGZ1bGwgVVJJIGFzIGNvbXB1dGVkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nb3duZXInIHR5cGU9J2ludCcgaW5mbz0nIGRvZXMgdGhlIGVudGl0eSBvd24gdGhlIGNoaWxkcmVucycvPgorICAgICAgPGZpZWxkIG5hbWU9J2NoZWNrZWQnIHR5cGU9J2ludCcgaW5mbz0nIHdhcyB0aGUgZW50aXR5IGNvbnRlbnQgY2hlY2tlZCB0aGlzIGlzIGFsc28gdXNlZCB0byBjb3VudCBlbnRpdGVzCisqIHJlZmVyZW5jZXMgZG9uZSBmcm9tIHRoYXQgZW50aXR5Jy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRW50aXR5UHRyJyBmaWxlPSd0cmVlJyB0eXBlPSd4bWxFbnRpdHkgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbEVudGl0eVR5cGUnIGZpbGU9J2VudGl0aWVzJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxFbnVtZXJhdGlvbicgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxFbnVtZXJhdGlvbic+CisgICAgICA8ZmllbGQgbmFtZT0nbmV4dCcgdHlwZT0nc3RydWN0IF94bWxFbnVtZXJhdGlvbiAqJyBpbmZvPScgbmV4dCBvbmUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBFbnVtZXJhdGlvbiBuYW1lJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRW51bWVyYXRpb25QdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbEVudW1lcmF0aW9uIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbEVycm9yJyBmaWxlPSd4bWxlcnJvcicgdHlwZT0nc3RydWN0IF94bWxFcnJvcic+CisgICAgICA8ZmllbGQgbmFtZT0nZG9tYWluJyB0eXBlPSdpbnQnIGluZm89JyBXaGF0IHBhcnQgb2YgdGhlIGxpYnJhcnkgcmFpc2VkIHRoaXMgZXJyb3InLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89JyBUaGUgZXJyb3IgY29kZSwgZS5nLiBhbiB4bWxQYXJzZXJFcnJvcicvPgorICAgICAgPGZpZWxkIG5hbWU9J21lc3NhZ2UnIHR5cGU9J2NoYXIgKicgaW5mbz0nIGh1bWFuLXJlYWRhYmxlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2UnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsZXZlbCcgdHlwZT0neG1sRXJyb3JMZXZlbCcgaW5mbz0nIGhvdyBjb25zZXF1ZW50IGlzIHRoZSBlcnJvcicvPgorICAgICAgPGZpZWxkIG5hbWU9J2ZpbGUnIHR5cGU9J2NoYXIgKicgaW5mbz0nIHRoZSBmaWxlbmFtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2xpbmUnIHR5cGU9J2ludCcgaW5mbz0nIHRoZSBsaW5lIG51bWJlciBpZiBhdmFpbGFibGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdHIxJyB0eXBlPSdjaGFyIConIGluZm89JyBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdHIyJyB0eXBlPSdjaGFyIConIGluZm89JyBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdHIzJyB0eXBlPSdjaGFyIConIGluZm89JyBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpbnQxJyB0eXBlPSdpbnQnIGluZm89JyBleHRyYSBudW1iZXIgaW5mb3JtYXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpbnQyJyB0eXBlPSdpbnQnIGluZm89JyBjb2x1bW4gbnVtYmVyIG9mIHRoZSBlcnJvciBvciAwIGlmIE4vQSAodG9kbzogcmVuYW1lIHRoaXMgZmllbGQgd2hlbiB3ZSB3b3VsZCBicmVhayBBQkkpJy8+CisgICAgICA8ZmllbGQgbmFtZT0nY3R4dCcgdHlwZT0ndm9pZCAqJyBpbmZvPScgdGhlIHBhcnNlciBjb250ZXh0IGlmIGF2YWlsYWJsZScvPgorICAgICAgPGZpZWxkIG5hbWU9J25vZGUnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIHRoZSBub2RlIGluIHRoZSB0cmVlJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRXJyb3JEb21haW4nIGZpbGU9J3htbGVycm9yJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRXJyb3JMZXZlbCcgZmlsZT0neG1sZXJyb3InIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxFcnJvclB0cicgZmlsZT0neG1sZXJyb3InIHR5cGU9J3htbEVycm9yIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbEV4cEN0eHQnIGZpbGU9J3htbHJlZ2V4cCcgdHlwZT0nc3RydWN0IF94bWxFeHBDdHh0Jy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRXhwQ3R4dFB0cicgZmlsZT0neG1scmVnZXhwJyB0eXBlPSd4bWxFeHBDdHh0IConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbEV4cE5vZGUnIGZpbGU9J3htbHJlZ2V4cCcgdHlwZT0nc3RydWN0IF94bWxFeHBOb2RlJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRXhwTm9kZVB0cicgZmlsZT0neG1scmVnZXhwJyB0eXBlPSd4bWxFeHBOb2RlIConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxFeHBOb2RlVHlwZScgZmlsZT0neG1scmVnZXhwJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sRmVhdHVyZScgZmlsZT0ncGFyc2VyJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxHbG9iYWxTdGF0ZScgZmlsZT0nZ2xvYmFscycgdHlwZT0nc3RydWN0IF94bWxHbG9iYWxTdGF0ZSc+CisgICAgICA8ZmllbGQgbmFtZT0neG1sUGFyc2VyVmVyc2lvbicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxEZWZhdWx0U0FYTG9jYXRvcicgdHlwZT0neG1sU0FYTG9jYXRvcicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sRGVmYXVsdFNBWEhhbmRsZXInIHR5cGU9J3htbFNBWEhhbmRsZXJWMScgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZG9jYkRlZmF1bHRTQVhIYW5kbGVyJyB0eXBlPSd4bWxTQVhIYW5kbGVyVjEnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2h0bWxEZWZhdWx0U0FYSGFuZGxlcicgdHlwZT0neG1sU0FYSGFuZGxlclYxJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxGcmVlJyB0eXBlPSd4bWxGcmVlRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sTWFsbG9jJyB0eXBlPSd4bWxNYWxsb2NGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxNZW1TdHJkdXAnIHR5cGU9J3htbFN0cmR1cEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbFJlYWxsb2MnIHR5cGU9J3htbFJlYWxsb2NGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxHZW5lcmljRXJyb3InIHR5cGU9J3htbEdlbmVyaWNFcnJvckZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbFN0cnVjdHVyZWRFcnJvcicgdHlwZT0neG1sU3RydWN0dXJlZEVycm9yRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sR2VuZXJpY0Vycm9yQ29udGV4dCcgdHlwZT0ndm9pZCAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdvbGRYTUxXRGNvbXBhdGliaWxpdHknIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sQnVmZmVyQWxsb2NTY2hlbWUnIHR5cGU9J3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbERlZmF1bHRCdWZmZXJTaXplJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZScgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZScgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZScgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbFBhcnNlckRlYnVnRW50aXRpZXMnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sU2F2ZU5vRW1wdHlUYWdzJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbEluZGVudFRyZWVPdXRwdXQnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sVHJlZUluZGVudFN0cmluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUnIHR5cGU9J3htbFJlZ2lzdGVyTm9kZUZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlJyB0eXBlPSd4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3htbE1hbGxvY0F0b21pYycgdHlwZT0neG1sTWFsbG9jRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sTGFzdEVycm9yJyB0eXBlPSd4bWxFcnJvcicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlJyB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZScgdHlwZT0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0JyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbEdsb2JhbFN0YXRlUHRyJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSd4bWxHbG9iYWxTdGF0ZSAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxIYXNoVGFibGUnIGZpbGU9J2hhc2gnIHR5cGU9J3N0cnVjdCBfeG1sSGFzaFRhYmxlJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sSGFzaFRhYmxlUHRyJyBmaWxlPSdoYXNoJyB0eXBlPSd4bWxIYXNoVGFibGUgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sSUQnIGZpbGU9J3RyZWUnIHR5cGU9J3N0cnVjdCBfeG1sSUQnPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sSUQgKicgaW5mbz0nIG5leHQgSUQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgVGhlIElEIG5hbWUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhdHRyJyB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPScgVGhlIGF0dHJpYnV0ZSBob2xkaW5nIGl0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgVGhlIGF0dHJpYnV0ZSBpZiBhdHRyIGlzIG5vdCBhdmFpbGFibGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsaW5lbm8nIHR5cGU9J2ludCcgaW5mbz0nIFRoZSBsaW5lIG51bWJlciBpZiBhdHRyIGlzIG5vdCBhdmFpbGFibGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkb2MnIHR5cGU9J3N0cnVjdCBfeG1sRG9jIConIGluZm89JyBUaGUgZG9jdW1lbnQgaG9sZGluZyB0aGUgSUQnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxJRFB0cicgZmlsZT0ndHJlZScgdHlwZT0neG1sSUQgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sSURUYWJsZScgZmlsZT0ndmFsaWQnIHR5cGU9J3N0cnVjdCBfeG1sSGFzaFRhYmxlJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sSURUYWJsZVB0cicgZmlsZT0ndmFsaWQnIHR5cGU9J3htbElEVGFibGUgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sTGluaycgZmlsZT0nbGlzdCcgdHlwZT0nc3RydWN0IF94bWxMaW5rJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sTGlua1B0cicgZmlsZT0nbGlzdCcgdHlwZT0neG1sTGluayAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxMaXN0JyBmaWxlPSdsaXN0JyB0eXBlPSdzdHJ1Y3QgX3htbExpc3QnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxMaXN0UHRyJyBmaWxlPSdsaXN0JyB0eXBlPSd4bWxMaXN0IConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbExvY2F0aW9uU2V0JyBmaWxlPSd4cG9pbnRlcicgdHlwZT0nc3RydWN0IF94bWxMb2NhdGlvblNldCc+CisgICAgICA8ZmllbGQgbmFtZT0nbG9jTnInIHR5cGU9J2ludCcgaW5mbz0nIG51bWJlciBvZiBsb2NhdGlvbnMgaW4gdGhlIHNldCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2xvY01heCcgdHlwZT0naW50JyBpbmZvPScgc2l6ZSBvZiB0aGUgYXJyYXkgYXMgYWxsb2NhdGVkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbG9jVGFiJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0ciAqJyBpbmZvPScgYXJyYXkgb2YgbG9jYXRpb25zJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sTG9jYXRpb25TZXRQdHInIGZpbGU9J3hwb2ludGVyJyB0eXBlPSd4bWxMb2NhdGlvblNldCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxNb2R1bGUnIGZpbGU9J3htbG1vZHVsZScgdHlwZT0nc3RydWN0IF94bWxNb2R1bGUnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxNb2R1bGVPcHRpb24nIGZpbGU9J3htbG1vZHVsZScgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbE1vZHVsZVB0cicgZmlsZT0neG1sbW9kdWxlJyB0eXBlPSd4bWxNb2R1bGUgKic+CisgICAgICA8aW5mbz5BIGhhbmRsZSB0byBhIGR5bmFtaWNhbGx5IGxvYWRlZCBtb2R1bGU8L2luZm8+CisgICAgPC90eXBlZGVmPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sTXV0ZXgnIGZpbGU9J3RocmVhZHMnIHR5cGU9J3N0cnVjdCBfeG1sTXV0ZXgnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxNdXRleFB0cicgZmlsZT0ndGhyZWFkcycgdHlwZT0neG1sTXV0ZXggKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sTm9kZScgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxOb2RlJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdfcHJpdmF0ZScgdHlwZT0ndm9pZCAqJyBpbmZvPScgYXBwbGljYXRpb24gZGF0YScvPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbEVsZW1lbnRUeXBlJyBpbmZvPScgdHlwZSBudW1iZXIsIG11c3QgYmUgc2Vjb25kICEnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyB0aGUgbmFtZSBvZiB0aGUgbm9kZSwgb3IgdGhlIGVudGl0eScvPgorICAgICAgPGZpZWxkIG5hbWU9J2NoaWxkcmVuJyB0eXBlPSdzdHJ1Y3QgX3htbE5vZGUgKicgaW5mbz0nIHBhcmVudC0mZ3Q7Y2hpbGRzIGxpbmsnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsYXN0JyB0eXBlPSdzdHJ1Y3QgX3htbE5vZGUgKicgaW5mbz0nIGxhc3QgY2hpbGQgbGluaycvPgorICAgICAgPGZpZWxkIG5hbWU9J3BhcmVudCcgdHlwZT0nc3RydWN0IF94bWxOb2RlIConIGluZm89JyBjaGlsZC0mZ3Q7cGFyZW50IGxpbmsnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbE5vZGUgKicgaW5mbz0nIG5leHQgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J3ByZXYnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgcHJldmlvdXMgc2libGluZyBsaW5rICcvPgorICAgICAgPGZpZWxkIG5hbWU9J2RvYycgdHlwZT0nc3RydWN0IF94bWxEb2MgKicgaW5mbz0nIHRoZSBjb250YWluaW5nIGRvY3VtZW50IEVuZCBvZiBjb21tb24gcGFydCcvPgorICAgICAgPGZpZWxkIG5hbWU9J25zJyB0eXBlPSd4bWxOcyAqJyBpbmZvPScgcG9pbnRlciB0byB0aGUgYXNzb2NpYXRlZCBuYW1lc3BhY2UnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZW50JyB0eXBlPSd4bWxDaGFyIConIGluZm89JyB0aGUgY29udGVudCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3Byb3BlcnRpZXMnIHR5cGU9J3N0cnVjdCBfeG1sQXR0ciAqJyBpbmZvPScgcHJvcGVydGllcyBsaXN0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nbnNEZWYnIHR5cGU9J3htbE5zIConIGluZm89JyBuYW1lc3BhY2UgZGVmaW5pdGlvbnMgb24gdGhpcyBub2RlJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncHN2aScgdHlwZT0ndm9pZCAqJyBpbmZvPScgZm9yIHR5cGUvUFNWSSBpbmZvcm1hdGlvbnMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsaW5lJyB0eXBlPSd1bnNpZ25lZCBzaG9ydCcgaW5mbz0nIGxpbmUgbnVtYmVyJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZXh0cmEnIHR5cGU9J3Vuc2lnbmVkIHNob3J0JyBpbmZvPScgZXh0cmEgZGF0YSBmb3IgWFBhdGgvWFNMVCcvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbE5vZGVQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbE5vZGUgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sTm9kZVNldCcgZmlsZT0neHBhdGgnIHR5cGU9J3N0cnVjdCBfeG1sTm9kZVNldCc+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZU5yJyB0eXBlPSdpbnQnIGluZm89JyBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIHNldCcvPgorICAgICAgPGZpZWxkIG5hbWU9J25vZGVNYXgnIHR5cGU9J2ludCcgaW5mbz0nIHNpemUgb2YgdGhlIGFycmF5IGFzIGFsbG9jYXRlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J25vZGVUYWInIHR5cGU9J3htbE5vZGVQdHIgKicgaW5mbz0nIGFycmF5IG9mIG5vZGVzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgQEAgd2l0aF9ucyB0byBjaGVjayB3ZXRoZXIgbmFtZXNwYWNlIG5vZGVzIHNob3VsZCBiZSBsb29rZWQgYXQgQEAnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxOb2RlU2V0UHRyJyBmaWxlPSd4cGF0aCcgdHlwZT0neG1sTm9kZVNldCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxOb3RhdGlvbicgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxOb3RhdGlvbic+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgTm90YXRpb24gbmFtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J1B1YmxpY0lEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBQdWJsaWMgaWRlbnRpZmllciwgaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIFN5c3RlbSBpZGVudGlmaWVyLCBpZiBhbnknLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxOb3RhdGlvblB0cicgZmlsZT0ndHJlZScgdHlwZT0neG1sTm90YXRpb24gKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sTm90YXRpb25UYWJsZScgZmlsZT0ndmFsaWQnIHR5cGU9J3N0cnVjdCBfeG1sSGFzaFRhYmxlJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sTm90YXRpb25UYWJsZVB0cicgZmlsZT0ndmFsaWQnIHR5cGU9J3htbE5vdGF0aW9uVGFibGUgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sTnMnIGZpbGU9J3RyZWUnIHR5cGU9J3N0cnVjdCBfeG1sTnMnPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sTnMgKicgaW5mbz0nIG5leHQgTnMgbGluayBmb3IgdGhpcyBub2RlICcvPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbE5zVHlwZScgaW5mbz0nIGdsb2JhbCBvciBsb2NhbCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2hyZWYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIFVSTCBmb3IgdGhlIG5hbWVzcGFjZScvPgorICAgICAgPGZpZWxkIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgcHJlZml4IGZvciB0aGUgbmFtZXNwYWNlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nX3ByaXZhdGUnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIGFwcGxpY2F0aW9uIGRhdGEnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbERvYyAqJyBpbmZvPScgbm9ybWFsbHkgYW4geG1sRG9jJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sTnNQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbE5zIConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxOc1R5cGUnIGZpbGU9J3RyZWUnIHR5cGU9J3htbEVsZW1lbnRUeXBlJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxPdXRwdXRCdWZmZXInIGZpbGU9J3RyZWUnIHR5cGU9J3N0cnVjdCBfeG1sT3V0cHV0QnVmZmVyJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZXh0JyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3dyaXRlY2FsbGJhY2snIHR5cGU9J3htbE91dHB1dFdyaXRlQ2FsbGJhY2snIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2Nsb3NlY2FsbGJhY2snIHR5cGU9J3htbE91dHB1dENsb3NlQ2FsbGJhY2snIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VuY29kZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIGluZm89JyBJMThOIGNvbnZlcnNpb25zIHRvIFVURi04Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nYnVmZmVyJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89JyBMb2NhbCBidWZmZXIgZW5jb2RlZCBpbiBVVEYtOCBvciBJU09MYXRpbicvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvbnYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0nIGlmIGVuY29kZXIgIT0gTlVMTCBidWZmZXIgZm9yIG91dHB1dCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3dyaXR0ZW4nIHR5cGU9J2ludCcgaW5mbz0nIHRvdGFsIG51bWJlciBvZiBieXRlIHdyaXR0ZW4nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlcnJvcicgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxPdXRwdXRCdWZmZXJQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbE91dHB1dEJ1ZmZlciAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxQYXJzZXJDdHh0JyBmaWxlPSd0cmVlJyB0eXBlPSdzdHJ1Y3QgX3htbFBhcnNlckN0eHQnPgorICAgICAgPGZpZWxkIG5hbWU9J3NheCcgdHlwZT0nc3RydWN0IF94bWxTQVhIYW5kbGVyIConIGluZm89JyBUaGUgU0FYIGhhbmRsZXInLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd1c2VyRGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPScgRm9yIFNBWCBpbnRlcmZhY2Ugb25seSwgdXNlZCBieSBET00gYnVpbGQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdteURvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPScgdGhlIGRvY3VtZW50IGJlaW5nIGJ1aWx0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nd2VsbEZvcm1lZCcgdHlwZT0naW50JyBpbmZvPScgaXMgdGhlIGRvY3VtZW50IHdlbGwgZm9ybWVkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVwbGFjZUVudGl0aWVzJyB0eXBlPSdpbnQnIGluZm89JyBzaGFsbCB3ZSByZXBsYWNlIGVudGl0aWVzID8nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2ZXJzaW9uJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyB0aGUgWE1MIHZlcnNpb24gc3RyaW5nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIHRoZSBkZWNsYXJlZCBlbmNvZGluZywgaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3RhbmRhbG9uZScgdHlwZT0naW50JyBpbmZvPScgc3RhbmRhbG9uZSBkb2N1bWVudCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2h0bWwnIHR5cGU9J2ludCcgaW5mbz0nIGFuIEhUTUwoMSkvRG9jYm9vaygyKSBkb2N1bWVudAorKiAzIGlzIEhUTUwgYWZ0ZXIgJmx0O2hlYWQmZ3Q7CisqIDEwIGlzIEhUTUwgYWZ0ZXIgJmx0O2JvZHkmZ3Q7CisqIElucHV0IHN0cmVhbSBzdGFjaycvPgorICAgICAgPGZpZWxkIG5hbWU9J2lucHV0JyB0eXBlPSd4bWxQYXJzZXJJbnB1dFB0cicgaW5mbz0nIEN1cnJlbnQgaW5wdXQgc3RyZWFtJy8+CisgICAgICA8ZmllbGQgbmFtZT0naW5wdXROcicgdHlwZT0naW50JyBpbmZvPScgTnVtYmVyIG9mIGN1cnJlbnQgaW5wdXQgc3RyZWFtcycvPgorICAgICAgPGZpZWxkIG5hbWU9J2lucHV0TWF4JyB0eXBlPSdpbnQnIGluZm89JyBNYXggbnVtYmVyIG9mIGlucHV0IHN0cmVhbXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpbnB1dFRhYicgdHlwZT0neG1sUGFyc2VySW5wdXRQdHIgKicgaW5mbz0nIHN0YWNrIG9mIGlucHV0cyBOb2RlIGFuYWx5c2lzIHN0YWNrIG9ubHkgdXNlZCBmb3IgRE9NIGJ1aWxkaW5nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nIEN1cnJlbnQgcGFyc2VkIE5vZGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlTnInIHR5cGU9J2ludCcgaW5mbz0nIERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZU1heCcgdHlwZT0naW50JyBpbmZvPScgTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZVRhYicgdHlwZT0neG1sTm9kZVB0ciAqJyBpbmZvPScgYXJyYXkgb2Ygbm9kZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZWNvcmRfaW5mbycgdHlwZT0naW50JyBpbmZvPScgV2hldGhlciBub2RlIGluZm8gc2hvdWxkIGJlIGtlcHQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlX3NlcScgdHlwZT0neG1sUGFyc2VyTm9kZUluZm9TZXEnIGluZm89JyBpbmZvIGFib3V0IGVhY2ggbm9kZSBwYXJzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlcnJObycgdHlwZT0naW50JyBpbmZvPScgZXJyb3IgY29kZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2hhc0V4dGVybmFsU3Vic2V0JyB0eXBlPSdpbnQnIGluZm89JyByZWZlcmVuY2UgYW5kIGV4dGVybmFsIHN1YnNldCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2hhc1BFcmVmcycgdHlwZT0naW50JyBpbmZvPScgdGhlIGludGVybmFsIHN1YnNldCBoYXMgUEUgcmVmcycvPgorICAgICAgPGZpZWxkIG5hbWU9J2V4dGVybmFsJyB0eXBlPSdpbnQnIGluZm89JyBhcmUgd2UgcGFyc2luZyBhbiBleHRlcm5hbCBlbnRpdHknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2YWxpZCcgdHlwZT0naW50JyBpbmZvPScgaXMgdGhlIGRvY3VtZW50IHZhbGlkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmFsaWRhdGUnIHR5cGU9J2ludCcgaW5mbz0nIHNoYWxsIHdlIHRyeSB0byB2YWxpZGF0ZSA/Jy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmN0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dCcgaW5mbz0nIFRoZSB2YWxpZGl0eSBjb250ZXh0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0naW5zdGF0ZScgdHlwZT0neG1sUGFyc2VySW5wdXRTdGF0ZScgaW5mbz0nIGN1cnJlbnQgdHlwZSBvZiBpbnB1dCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3Rva2VuJyB0eXBlPSdpbnQnIGluZm89JyBuZXh0IGNoYXIgbG9vay1haGVhZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2RpcmVjdG9yeScgdHlwZT0nY2hhciAqJyBpbmZvPScgdGhlIGRhdGEgZGlyZWN0b3J5IE5vZGUgbmFtZSBzdGFjaycvPgorICAgICAgPGZpZWxkIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIEN1cnJlbnQgcGFyc2VkIE5vZGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lTnInIHR5cGU9J2ludCcgaW5mbz0nIERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZU1heCcgdHlwZT0naW50JyBpbmZvPScgTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZVRhYicgdHlwZT0nY29uc3QgeG1sQ2hhciAqIConIGluZm89JyBhcnJheSBvZiBub2RlcycvPgorICAgICAgPGZpZWxkIG5hbWU9J25iQ2hhcnMnIHR5cGU9J2xvbmcnIGluZm89JyBudW1iZXIgb2YgeG1sQ2hhciBwcm9jZXNzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjaGVja0luZGV4JyB0eXBlPSdsb25nJyBpbmZvPScgdXNlZCBieSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGxvb2t1cCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2tlZXBCbGFua3MnIHR5cGU9J2ludCcgaW5mbz0nIHVnbHkgYnV0IC4uLicvPgorICAgICAgPGZpZWxkIG5hbWU9J2Rpc2FibGVTQVgnIHR5cGU9J2ludCcgaW5mbz0nIFNBWCBjYWxsYmFja3MgYXJlIGRpc2FibGVkJy8+CisgICAgICA8ZmllbGQgbmFtZT0naW5TdWJzZXQnIHR5cGU9J2ludCcgaW5mbz0nIFBhcnNpbmcgaXMgaW4gaW50IDEvZXh0IDIgc3Vic2V0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0naW50U3ViTmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgbmFtZSBvZiBzdWJzZXQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdleHRTdWJVUkknIHR5cGU9J3htbENoYXIgKicgaW5mbz0nIFVSSSBvZiBleHRlcm5hbCBzdWJzZXQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdleHRTdWJTeXN0ZW0nIHR5cGU9J3htbENoYXIgKicgaW5mbz0nIFNZU1RFTSBJRCBvZiBleHRlcm5hbCBzdWJzZXQgeG1sOnNwYWNlIHZhbHVlcycvPgorICAgICAgPGZpZWxkIG5hbWU9J3NwYWNlJyB0eXBlPSdpbnQgKicgaW5mbz0nIFNob3VsZCB0aGUgcGFyc2VyIHByZXNlcnZlIHNwYWNlcycvPgorICAgICAgPGZpZWxkIG5hbWU9J3NwYWNlTnInIHR5cGU9J2ludCcgaW5mbz0nIERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3BhY2VNYXgnIHR5cGU9J2ludCcgaW5mbz0nIE1heCBkZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjaycvPgorICAgICAgPGZpZWxkIG5hbWU9J3NwYWNlVGFiJyB0eXBlPSdpbnQgKicgaW5mbz0nIGFycmF5IG9mIHNwYWNlIGluZm9zJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZGVwdGgnIHR5cGU9J2ludCcgaW5mbz0nIHRvIHByZXZlbnQgZW50aXR5IHN1YnN0aXR1dGlvbiBsb29wcycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VudGl0eScgdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89JyB1c2VkIHRvIGNoZWNrIGVudGl0aWVzIGJvdW5kYXJpZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjaGFyc2V0JyB0eXBlPSdpbnQnIGluZm89JyBlbmNvZGluZyBvZiB0aGUgaW4tbWVtb3J5IGNvbnRlbnQKK2FjdHVhbGx5IGFuIHhtbENoYXJFbmNvZGluZycvPgorICAgICAgPGZpZWxkIG5hbWU9J25vZGVsZW4nIHR5cGU9J2ludCcgaW5mbz0nIFRob3NlIHR3byBmaWVsZHMgYXJlIHRoZXJlIHRvJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZW1lbScgdHlwZT0naW50JyBpbmZvPScgU3BlZWQgdXAgbGFyZ2Ugbm9kZSBwYXJzaW5nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncGVkYW50aWMnIHR5cGU9J2ludCcgaW5mbz0nIHNpZ25hbCBwZWRhbnRpYyB3YXJuaW5ncycvPgorICAgICAgPGZpZWxkIG5hbWU9J19wcml2YXRlJyB0eXBlPSd2b2lkIConIGluZm89JyBGb3IgdXNlciBkYXRhLCBsaWJ4bWwgd29uJmFwb3M7dCB0b3VjaCBpdCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2xvYWRzdWJzZXQnIHR5cGU9J2ludCcgaW5mbz0nIHNob3VsZCB0aGUgZXh0ZXJuYWwgc3Vic2V0IGJlIGxvYWRlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2xpbmVudW1iZXJzJyB0eXBlPSdpbnQnIGluZm89JyBzZXQgbGluZSBudW1iZXIgaW4gZWxlbWVudCBjb250ZW50Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nY2F0YWxvZ3MnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIGRvY3VtZW50JmFwb3M7cyBvd24gY2F0YWxvZycvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlY292ZXJ5JyB0eXBlPSdpbnQnIGluZm89JyBydW4gaW4gcmVjb3ZlcnkgbW9kZScvPgorICAgICAgPGZpZWxkIG5hbWU9J3Byb2dyZXNzaXZlJyB0eXBlPSdpbnQnIGluZm89JyBpcyB0aGlzIGEgcHJvZ3Jlc3NpdmUgcGFyc2luZycvPgorICAgICAgPGZpZWxkIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89JyBkaWN0aW9ubmFyeSBmb3IgdGhlIHBhcnNlcicvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKiAqJyBpbmZvPScgYXJyYXkgZm9yIHRoZSBhdHRyaWJ1dGVzIGNhbGxiYWNrcycvPgorICAgICAgPGZpZWxkIG5hbWU9J21heGF0dHMnIHR5cGU9J2ludCcgaW5mbz0nIHRoZSBzaXplIG9mIHRoZSBhcnJheScvPgorICAgICAgPGZpZWxkIG5hbWU9J2RvY2RpY3QnIHR5cGU9J2ludCcgaW5mbz0nKiBwcmUtaW50ZXJuZWQgc3RyaW5ncworKicvPgorICAgICAgPGZpZWxkIG5hbWU9J3N0cl94bWwnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3RyX3htbG5zJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3N0cl94bWxfbnMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nKiBFdmVyeXRoaW5nIGJlbG93IGlzIHVzZWQgb25seSBieSB0aGUgbmV3IFNBWCBtb2RlCisqJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc2F4MicgdHlwZT0naW50JyBpbmZvPScgb3BlcmF0aW5nIGluIHRoZSBuZXcgU0FYIG1vZGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduc05yJyB0eXBlPSdpbnQnIGluZm89JyB0aGUgbnVtYmVyIG9mIGluaGVyaXRlZCBuYW1lc3BhY2VzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbnNNYXgnIHR5cGU9J2ludCcgaW5mbz0nIHRoZSBzaXplIG9mIHRoZSBhcnJheXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduc1RhYicgdHlwZT0nY29uc3QgeG1sQ2hhciAqIConIGluZm89JyB0aGUgYXJyYXkgb2YgcHJlZml4L25hbWVzcGFjZSBuYW1lJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0YWxsb2NzJyB0eXBlPSdpbnQgKicgaW5mbz0nIHdoaWNoIGF0dHJpYnV0ZSB3ZXJlIGFsbG9jYXRlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3B1c2hUYWInIHR5cGU9J3ZvaWQgKiAqJyBpbmZvPScgYXJyYXkgb2YgZGF0YSBmb3IgcHVzaCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHNEZWZhdWx0JyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JyBkZWZhdWx0ZWQgYXR0cmlidXRlcyBpZiBhbnknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhdHRzU3BlY2lhbCcgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPScgbm9uLUNEQVRBIGF0dHJpYnV0ZXMgaWYgYW55Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nbnNXZWxsRm9ybWVkJyB0eXBlPSdpbnQnIGluZm89JyBpcyB0aGUgZG9jdW1lbnQgWE1MIE5hbmVzcGFjZSBva2F5Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPScqIFRob3NlIGZpZWxkcyBhcmUgbmVlZGVkIG9ubHkgZm9yIHRyZWFtaW5nIHBhcnNpbmcgc28gZmFyCisqJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZGljdE5hbWVzJyB0eXBlPSdpbnQnIGluZm89JyBVc2UgZGljdGlvbmFyeSBuYW1lcyBmb3IgdGhlIHRyZWUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmcmVlRWxlbXNOcicgdHlwZT0naW50JyBpbmZvPScgbnVtYmVyIG9mIGZyZWVkIGVsZW1lbnQgbm9kZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmcmVlRWxlbXMnIHR5cGU9J3htbE5vZGVQdHInIGluZm89JyBMaXN0IG9mIGZyZWVkIGVsZW1lbnQgbm9kZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmcmVlQXR0cnNOcicgdHlwZT0naW50JyBpbmZvPScgbnVtYmVyIG9mIGZyZWVkIGF0dHJpYnV0ZXMgbm9kZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmcmVlQXR0cnMnIHR5cGU9J3htbEF0dHJQdHInIGluZm89JyogdGhlIGNvbXBsZXRlIGVycm9yIGluZm9ybWF0aW9ucyBmb3IgdGhlIGxhc3QgZXJyb3IuCisqJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbGFzdEVycm9yJyB0eXBlPSd4bWxFcnJvcicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncGFyc2VNb2RlJyB0eXBlPSd4bWxQYXJzZXJNb2RlJyBpbmZvPScgdGhlIHBhcnNlciBtb2RlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmJlbnRpdGllcycgdHlwZT0ndW5zaWduZWQgbG9uZycgaW5mbz0nIG51bWJlciBvZiBlbnRpdGllcyByZWZlcmVuY2VzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc2l6ZWVudGl0aWVzJyB0eXBlPSd1bnNpZ25lZCBsb25nJyBpbmZvPScgc2l6ZSBvZiBwYXJzZWQgZW50aXRpZXMgZm9yIHVzZSBieSBIVE1MIG5vbi1yZWN1cnNpdmUgcGFyc2VyJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZUluZm8nIHR5cGU9J3htbFBhcnNlck5vZGVJbmZvIConIGluZm89JyBDdXJyZW50IE5vZGVJbmZvJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZUluZm9OcicgdHlwZT0naW50JyBpbmZvPScgRGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2snLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlSW5mb01heCcgdHlwZT0naW50JyBpbmZvPScgTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZUluZm9UYWInIHR5cGU9J3htbFBhcnNlck5vZGVJbmZvIConIGluZm89JyBhcnJheSBvZiBub2RlSW5mb3MnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxQYXJzZXJDdHh0UHRyJyBmaWxlPSd0cmVlJyB0eXBlPSd4bWxQYXJzZXJDdHh0IConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxQYXJzZXJFcnJvcnMnIGZpbGU9J3htbGVycm9yJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxQYXJzZXJJbnB1dCcgZmlsZT0ndHJlZScgdHlwZT0nc3RydWN0IF94bWxQYXJzZXJJbnB1dCc+CisgICAgICA8ZmllbGQgbmFtZT0nYnVmJyB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0nIFVURi04IGVuY29kZWQgYnVmZmVyJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nIFRoZSBmaWxlIGFuYWx5emVkLCBpZiBhbnknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkaXJlY3RvcnknIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nIHRoZSBkaXJlY3RvcnkvYmFzZSBvZiB0aGUgZmlsZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2Jhc2UnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIEJhc2Ugb2YgdGhlIGFycmF5IHRvIHBhcnNlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nY3VyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBDdXJyZW50IGNoYXIgYmVpbmcgcGFyc2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZW5kJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBlbmQgb2YgdGhlIGFycmF5IHRvIHBhcnNlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbGVuZ3RoJyB0eXBlPSdpbnQnIGluZm89JyBsZW5ndGggaWYga25vd24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsaW5lJyB0eXBlPSdpbnQnIGluZm89JyBDdXJyZW50IGxpbmUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb2wnIHR5cGU9J2ludCcgaW5mbz0nKiBOT1RFOiBjb25zdW1lZCBpcyBvbmx5IHRlc3RlZCBmb3IgZXF1YWxpdHkgaW4gdGhlIHBhcnNlciBjb2RlLAorKiAgICAgICBzbyBldmVuIGlmIHRoZXJlIGlzIGFuIG92ZXJmbG93IHRoaXMgc2hvdWxkIG5vdCBnaXZlIHRyb3VibGVzCisqICAgICAgIGZvciBwYXJzaW5nIHZlcnkgbGFyZ2UgaW5zdGFuY2VzLgorKicvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvbnN1bWVkJyB0eXBlPSd1bnNpZ25lZCBsb25nJyBpbmZvPScgSG93IG1hbnkgeG1sQ2hhcnMgYWxyZWFkeSBjb25zdW1lZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2ZyZWUnIHR5cGU9J3htbFBhcnNlcklucHV0RGVhbGxvY2F0ZScgaW5mbz0nIGZ1bmN0aW9uIHRvIGRlYWxsb2NhdGUgdGhlIGJhc2UnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIGVuY29kaW5nIHN0cmluZyBmb3IgZW50aXR5Jy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmVyc2lvbicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIHZlcnNpb24gc3RyaW5nIGZvciBlbnRpdHknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdGFuZGFsb25lJyB0eXBlPSdpbnQnIGluZm89JyBXYXMgdGhhdCBlbnRpdHkgbWFya2VkIHN0YW5kYWxvbmUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpZCcgdHlwZT0naW50JyBpbmZvPScgYW4gdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBlbnRpdHknLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8c3RydWN0IG5hbWU9J3htbFBhcnNlcklucHV0QnVmZmVyJyBmaWxlPSd0cmVlJyB0eXBlPSdzdHJ1Y3QgX3htbFBhcnNlcklucHV0QnVmZmVyJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZXh0JyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlYWRjYWxsYmFjaycgdHlwZT0neG1sSW5wdXRSZWFkQ2FsbGJhY2snIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2Nsb3NlY2FsbGJhY2snIHR5cGU9J3htbElucHV0Q2xvc2VDYWxsYmFjaycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZW5jb2RlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicgaW5mbz0nIEkxOE4gY29udmVyc2lvbnMgdG8gVVRGLTgnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdidWZmZXInIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0nIExvY2FsIGJ1ZmZlciBlbmNvZGVkIGluIFVURi04Jy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmF3JyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89JyBpZiBlbmNvZGVyICE9IE5VTEwgYnVmZmVyIGZvciByYXcgaW5wdXQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb21wcmVzc2VkJyB0eXBlPSdpbnQnIGluZm89JyAtMT11bmtub3duLCAwPW5vdCBjb21wcmVzc2VkLCAxPWNvbXByZXNzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlcnJvcicgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyYXdjb25zdW1lZCcgdHlwZT0ndW5zaWduZWQgbG9uZycgaW5mbz0nIGFtb3VudCBjb25zdW1lZCBmcm9tIHJhdycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFBhcnNlcklucHV0QnVmZmVyUHRyJyBmaWxlPSd0cmVlJyB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlciAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sUGFyc2VySW5wdXRQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbFBhcnNlcklucHV0IConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxQYXJzZXJJbnB1dFN0YXRlJyBmaWxlPSdwYXJzZXInIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxQYXJzZXJNb2RlJyBmaWxlPSdwYXJzZXInIHR5cGU9J2VudW0nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFBhcnNlck5vZGVJbmZvJyBmaWxlPSdwYXJzZXInIHR5cGU9J3N0cnVjdCBfeG1sUGFyc2VyTm9kZUluZm8nPgorICAgICAgPGZpZWxkIG5hbWU9J25vZGUnIHR5cGU9J2NvbnN0IHN0cnVjdCBfeG1sTm9kZSAqJyBpbmZvPScgUG9zaXRpb24gJmFtcDsgbGluZSAjIHRoYXQgdGV4dCB0aGF0IGNyZWF0ZWQgdGhlIG5vZGUgYmVnaW5zICZhbXA7IGVuZHMgb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdiZWdpbl9wb3MnIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2JlZ2luX2xpbmUnIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VuZF9wb3MnIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VuZF9saW5lJyB0eXBlPSd1bnNpZ25lZCBsb25nJyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxQYXJzZXJOb2RlSW5mb1B0cicgZmlsZT0ncGFyc2VyJyB0eXBlPSd4bWxQYXJzZXJOb2RlSW5mbyAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxQYXJzZXJOb2RlSW5mb1NlcScgZmlsZT0ncGFyc2VyJyB0eXBlPSdzdHJ1Y3QgX3htbFBhcnNlck5vZGVJbmZvU2VxJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdtYXhpbXVtJyB0eXBlPSd1bnNpZ25lZCBsb25nJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdsZW5ndGgnIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2J1ZmZlcicgdHlwZT0neG1sUGFyc2VyTm9kZUluZm8gKicgaW5mbz0nJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sUGFyc2VyTm9kZUluZm9TZXFQdHInIGZpbGU9J3BhcnNlcicgdHlwZT0neG1sUGFyc2VyTm9kZUluZm9TZXEgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFBhcnNlck9wdGlvbicgZmlsZT0ncGFyc2VyJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sUGFyc2VyUHJvcGVydGllcycgZmlsZT0neG1scmVhZGVyJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sUGFyc2VyU2V2ZXJpdGllcycgZmlsZT0neG1scmVhZGVyJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxQYXR0ZXJuJyBmaWxlPSdwYXR0ZXJuJyB0eXBlPSdzdHJ1Y3QgX3htbFBhdHRlcm4nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxQYXR0ZXJuRmxhZ3MnIGZpbGU9J3BhdHRlcm4nIHR5cGU9J2VudW0nLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxQYXR0ZXJuUHRyJyBmaWxlPSdwYXR0ZXJuJyB0eXBlPSd4bWxQYXR0ZXJuIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFJNdXRleCcgZmlsZT0ndGhyZWFkcycgdHlwZT0nc3RydWN0IF94bWxSTXV0ZXgnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxSTXV0ZXhQdHInIGZpbGU9J3RocmVhZHMnIHR5cGU9J3htbFJNdXRleCAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sUmVhZGVyVHlwZXMnIGZpbGU9J3htbHJlYWRlcicgdHlwZT0nZW51bScvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sUmVmJyBmaWxlPSd0cmVlJyB0eXBlPSdzdHJ1Y3QgX3htbFJlZic+CisgICAgICA8ZmllbGQgbmFtZT0nbmV4dCcgdHlwZT0nc3RydWN0IF94bWxSZWYgKicgaW5mbz0nIG5leHQgUmVmJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIFRoZSBSZWYgbmFtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHInIHR5cGU9J3htbEF0dHJQdHInIGluZm89JyBUaGUgYXR0cmlidXRlIGhvbGRpbmcgaXQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBUaGUgYXR0cmlidXRlIGlmIGF0dHIgaXMgbm90IGF2YWlsYWJsZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2xpbmVubycgdHlwZT0naW50JyBpbmZvPScgVGhlIGxpbmUgbnVtYmVyIGlmIGF0dHIgaXMgbm90IGF2YWlsYWJsZScvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFJlZlB0cicgZmlsZT0ndHJlZScgdHlwZT0neG1sUmVmIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFJlZlRhYmxlJyBmaWxlPSd2YWxpZCcgdHlwZT0nc3RydWN0IF94bWxIYXNoVGFibGUnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxSZWZUYWJsZVB0cicgZmlsZT0ndmFsaWQnIHR5cGU9J3htbFJlZlRhYmxlIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFJlZ0V4ZWNDdHh0JyBmaWxlPSd4bWxyZWdleHAnIHR5cGU9J3N0cnVjdCBfeG1sUmVnRXhlY0N0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxSZWdFeGVjQ3R4dFB0cicgZmlsZT0neG1scmVnZXhwJyB0eXBlPSd4bWxSZWdFeGVjQ3R4dCAqJz4KKyAgICAgIDxpbmZvPkEgbGlieG1sIHByb2dyZXNzaXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBldmFsdWF0aW9uIGNvbnRleHQ8L2luZm8+CisgICAgPC90eXBlZGVmPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sUmVnZXhwJyBmaWxlPSd4bWxyZWdleHAnIHR5cGU9J3N0cnVjdCBfeG1sUmVnZXhwJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sUmVnZXhwUHRyJyBmaWxlPSd4bWxyZWdleHAnIHR5cGU9J3htbFJlZ2V4cCAqJz4KKyAgICAgIDxpbmZvPkEgbGlieG1sIHJlZ3VsYXIgZXhwcmVzc2lvbiwgdGhleSBjYW4gYWN0dWFsbHkgYmUgZmFyIG1vcmUgY29tcGxleCB0aGFuayB0aGUgUE9TSVggcmVnZXggZXhwcmVzc2lvbnMuPC9pbmZvPgorICAgIDwvdHlwZWRlZj4KKyAgICA8c3RydWN0IG5hbWU9J3htbFJlbGF4TkcnIGZpbGU9J3JlbGF4bmcnIHR5cGU9J3N0cnVjdCBfeG1sUmVsYXhORycvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sUmVsYXhOR1BhcnNlckN0eHQnIGZpbGU9J3JlbGF4bmcnIHR5cGU9J3N0cnVjdCBfeG1sUmVsYXhOR1BhcnNlckN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cicgZmlsZT0ncmVsYXhuZycgdHlwZT0neG1sUmVsYXhOR1BhcnNlckN0eHQgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFJlbGF4TkdQYXJzZXJGbGFnJyBmaWxlPSdyZWxheG5nJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sUmVsYXhOR1B0cicgZmlsZT0ncmVsYXhuZycgdHlwZT0neG1sUmVsYXhORyAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxSZWxheE5HVmFsaWRDdHh0JyBmaWxlPSdyZWxheG5nJyB0eXBlPSdzdHJ1Y3QgX3htbFJlbGF4TkdWYWxpZEN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxSZWxheE5HVmFsaWRDdHh0UHRyJyBmaWxlPSdyZWxheG5nJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRDdHh0IConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxSZWxheE5HVmFsaWRFcnInIGZpbGU9J3JlbGF4bmcnIHR5cGU9J2VudW0nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNBWEhhbmRsZXInIGZpbGU9J3RyZWUnIHR5cGU9J3N0cnVjdCBfeG1sU0FYSGFuZGxlcic+CisgICAgICA8ZmllbGQgbmFtZT0naW50ZXJuYWxTdWJzZXQnIHR5cGU9J2ludGVybmFsU3Vic2V0U0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naXNTdGFuZGFsb25lJyB0eXBlPSdpc1N0YW5kYWxvbmVTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdoYXNJbnRlcm5hbFN1YnNldCcgdHlwZT0naGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdoYXNFeHRlcm5hbFN1YnNldCcgdHlwZT0naGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZXNvbHZlRW50aXR5JyB0eXBlPSdyZXNvbHZlRW50aXR5U0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZ2V0RW50aXR5JyB0eXBlPSdnZXRFbnRpdHlTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlbnRpdHlEZWNsJyB0eXBlPSdlbnRpdHlEZWNsU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm90YXRpb25EZWNsJyB0eXBlPSdub3RhdGlvbkRlY2xTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhdHRyaWJ1dGVEZWNsJyB0eXBlPSdhdHRyaWJ1dGVEZWNsU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZWxlbWVudERlY2wnIHR5cGU9J2VsZW1lbnREZWNsU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndW5wYXJzZWRFbnRpdHlEZWNsJyB0eXBlPSd1bnBhcnNlZEVudGl0eURlY2xTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzZXREb2N1bWVudExvY2F0b3InIHR5cGU9J3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3N0YXJ0RG9jdW1lbnQnIHR5cGU9J3N0YXJ0RG9jdW1lbnRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlbmREb2N1bWVudCcgdHlwZT0nZW5kRG9jdW1lbnRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdGFydEVsZW1lbnQnIHR5cGU9J3N0YXJ0RWxlbWVudFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VuZEVsZW1lbnQnIHR5cGU9J2VuZEVsZW1lbnRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZWZlcmVuY2UnIHR5cGU9J3JlZmVyZW5jZVNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2NoYXJhY3RlcnMnIHR5cGU9J2NoYXJhY3RlcnNTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpZ25vcmFibGVXaGl0ZXNwYWNlJyB0eXBlPSdpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncHJvY2Vzc2luZ0luc3RydWN0aW9uJyB0eXBlPSdwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb21tZW50JyB0eXBlPSdjb21tZW50U0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nd2FybmluZycgdHlwZT0nd2FybmluZ1NBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2Vycm9yJyB0eXBlPSdlcnJvclNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2ZhdGFsRXJyb3InIHR5cGU9J2ZhdGFsRXJyb3JTQVhGdW5jJyBpbmZvPScgdW51c2VkIGVycm9yKCkgZ2V0IGFsbCB0aGUgZXJyb3JzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZ2V0UGFyYW1ldGVyRW50aXR5JyB0eXBlPSdnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjZGF0YUJsb2NrJyB0eXBlPSdjZGF0YUJsb2NrU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZXh0ZXJuYWxTdWJzZXQnIHR5cGU9J2V4dGVybmFsU3Vic2V0U0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naW5pdGlhbGl6ZWQnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBleHRlbnNpb25zIGF2YWlsYWJsZSBvbmx5IG9uIHZlcnNpb24gMicvPgorICAgICAgPGZpZWxkIG5hbWU9J19wcml2YXRlJyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3N0YXJ0RWxlbWVudE5zJyB0eXBlPSdzdGFydEVsZW1lbnROc1NBWDJGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlbmRFbGVtZW50TnMnIHR5cGU9J2VuZEVsZW1lbnROc1NBWDJGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzZXJyb3InIHR5cGU9J3htbFN0cnVjdHVyZWRFcnJvckZ1bmMnIGluZm89JycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNBWEhhbmRsZXJQdHInIGZpbGU9J3RyZWUnIHR5cGU9J3htbFNBWEhhbmRsZXIgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sU0FYSGFuZGxlclYxJyBmaWxlPSdwYXJzZXInIHR5cGU9J3N0cnVjdCBfeG1sU0FYSGFuZGxlclYxJz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpbnRlcm5hbFN1YnNldCcgdHlwZT0naW50ZXJuYWxTdWJzZXRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpc1N0YW5kYWxvbmUnIHR5cGU9J2lzU3RhbmRhbG9uZVNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2hhc0ludGVybmFsU3Vic2V0JyB0eXBlPSdoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2hhc0V4dGVybmFsU3Vic2V0JyB0eXBlPSdoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3Jlc29sdmVFbnRpdHknIHR5cGU9J3Jlc29sdmVFbnRpdHlTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdnZXRFbnRpdHknIHR5cGU9J2dldEVudGl0eVNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VudGl0eURlY2wnIHR5cGU9J2VudGl0eURlY2xTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub3RhdGlvbkRlY2wnIHR5cGU9J25vdGF0aW9uRGVjbFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHJpYnV0ZURlY2wnIHR5cGU9J2F0dHJpYnV0ZURlY2xTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlbGVtZW50RGVjbCcgdHlwZT0nZWxlbWVudERlY2xTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd1bnBhcnNlZEVudGl0eURlY2wnIHR5cGU9J3VucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3NldERvY3VtZW50TG9jYXRvcicgdHlwZT0nc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3RhcnREb2N1bWVudCcgdHlwZT0nc3RhcnREb2N1bWVudFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VuZERvY3VtZW50JyB0eXBlPSdlbmREb2N1bWVudFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3N0YXJ0RWxlbWVudCcgdHlwZT0nc3RhcnRFbGVtZW50U0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZW5kRWxlbWVudCcgdHlwZT0nZW5kRWxlbWVudFNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlZmVyZW5jZScgdHlwZT0ncmVmZXJlbmNlU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nY2hhcmFjdGVycycgdHlwZT0nY2hhcmFjdGVyc1NBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2lnbm9yYWJsZVdoaXRlc3BhY2UnIHR5cGU9J2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nIHR5cGU9J3Byb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvbW1lbnQnIHR5cGU9J2NvbW1lbnRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd3YXJuaW5nJyB0eXBlPSd3YXJuaW5nU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZXJyb3InIHR5cGU9J2Vycm9yU0FYRnVuYycgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZmF0YWxFcnJvcicgdHlwZT0nZmF0YWxFcnJvclNBWEZ1bmMnIGluZm89JyB1bnVzZWQgZXJyb3IoKSBnZXQgYWxsIHRoZSBlcnJvcnMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdnZXRQYXJhbWV0ZXJFbnRpdHknIHR5cGU9J2dldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2NkYXRhQmxvY2snIHR5cGU9J2NkYXRhQmxvY2tTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdleHRlcm5hbFN1YnNldCcgdHlwZT0nZXh0ZXJuYWxTdWJzZXRTQVhGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpbml0aWFsaXplZCcgdHlwZT0ndW5zaWduZWQgaW50JyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTQVhIYW5kbGVyVjFQdHInIGZpbGU9J3BhcnNlcicgdHlwZT0neG1sU0FYSGFuZGxlclYxIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNBWExvY2F0b3InIGZpbGU9J3RyZWUnIHR5cGU9J3N0cnVjdCBfeG1sU0FYTG9jYXRvcic+CisgICAgICA8ZmllbGQgbmFtZT0nZ2V0UHVibGljSWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKigqZ2V0UHVibGljSWQpJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdnZXRTeXN0ZW1JZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqKCpnZXRTeXN0ZW1JZCknIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2dldExpbmVOdW1iZXInIHR5cGU9J2ludCgqZ2V0TGluZU51bWJlciknIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2dldENvbHVtbk51bWJlcicgdHlwZT0naW50KCpnZXRDb2x1bW5OdW1iZXIpJyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTQVhMb2NhdG9yUHRyJyBmaWxlPSd0cmVlJyB0eXBlPSd4bWxTQVhMb2NhdG9yIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNhdmVDdHh0JyBmaWxlPSd4bWxzYXZlJyB0eXBlPSdzdHJ1Y3QgX3htbFNhdmVDdHh0Jy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2F2ZUN0eHRQdHInIGZpbGU9J3htbHNhdmUnIHR5cGU9J3htbFNhdmVDdHh0IConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTYXZlT3B0aW9uJyBmaWxlPSd4bWxzYXZlJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWEnIGZpbGU9J3htbHNjaGVtYXMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hJz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBzY2hlbWEgbmFtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J3RhcmdldE5hbWVzcGFjZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIHRhcmdldCBuYW1lc3BhY2UnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2ZXJzaW9uJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBPYnNvbGV0ZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhbm5vdCcgdHlwZT0neG1sU2NoZW1hQW5ub3RQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2ZsYWdzJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGVEZWNsJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHJEZWNsJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHJncnBEZWNsJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2VsZW1EZWNsJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J25vdGFEZWNsJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3NjaGVtYXNJbXBvcnRzJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J19wcml2YXRlJyB0eXBlPSd2b2lkIConIGluZm89JyB1bnVzZWQgYnkgdGhlIGxpYnJhcnkgZm9yIHVzZXJzIG9yIGJpbmRpbmdzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZ3JvdXBEZWNsJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2luY2x1ZGVzJyB0eXBlPSd2b2lkIConIGluZm89JyB0aGUgaW5jbHVkZXMsIHRoaXMgaXMgb3BhcXVlIGZvciBub3cnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdwcmVzZXJ2ZScgdHlwZT0naW50JyBpbmZvPScgd2hldGhlciB0byBmcmVlIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvdW50ZXInIHR5cGU9J2ludCcgaW5mbz0nIHVzZWQgdG8gZ2l2ZSBvbm9ueW1vdXMgY29tcG9uZW50cyB1bmlxdWUgbmFtZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpZGNEZWYnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0nIEFsbCBpZGVudGl0eS1jb25zdHJhaW50IGRlZnMuJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndm9sYXRpbGVzJyB0eXBlPSd2b2lkIConIGluZm89JyBPYnNvbGV0ZScvPgorICAgIDwvc3RydWN0PgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sU2NoZW1hQW5ub3QnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hQW5ub3QnPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hQW5ub3QgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nY29udGVudCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nIHRoZSBhbm5vdGF0aW9uJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2NoZW1hQW5ub3RQdHInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3htbFNjaGVtYUFubm90IConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNjaGVtYUF0dHJpYnV0ZScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGUnPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZSAqJyBpbmZvPScgdGhlIG5leHQgYXR0cmlidXRlIChub3QgdXNlZD8pJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIG5hbWUgb2YgdGhlIGRlY2xhcmF0aW9uJy8+CisgICAgICA8ZmllbGQgbmFtZT0naWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVmJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlZk5zJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGVOYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgdHlwZSBkZWZpbml0aW9uJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZU5zJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyB0aGUgbnMgVVJJIG9mIHRoZSB0eXBlIGRlZmluaXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhbm5vdCcgdHlwZT0neG1sU2NoZW1hQW5ub3RQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2Jhc2UnIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J29jY3VycycgdHlwZT0naW50JyBpbmZvPScgRGVwcmVjYXRlZDsgbm90IHVzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkZWZWYWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgVGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIHZhbHVlIGNvbnN0cmFpbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdWJ0eXBlcycgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0nIHRoZSB0eXBlIGRlZmluaXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0YXJnZXROYW1lc3BhY2UnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZmxhZ3MnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVmUHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2RlZlZhbCcgdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPScgVGhlIGNvbXBpbGVkIHZhbHVlIGNvbnN0cmFpbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZWZEZWNsJyB0eXBlPSd4bWxTY2hlbWFBdHRyaWJ1dGVQdHInIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgIDwvc3RydWN0PgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sU2NoZW1hQXR0cmlidXRlR3JvdXAnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlR3JvdXAnPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJyBpbmZvPScgVGhlIGtpbmQgb2YgdHlwZScvPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlIConIGluZm89JyB0aGUgbmV4dCBhdHRyaWJ1dGUgaWYgaW4gYSBncm91cCAuLi4nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlZicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgRGVwcmVjYXRlZDsgbm90IHVzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZWZOcycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgRGVwcmVjYXRlZDsgbm90IHVzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhbm5vdCcgdHlwZT0neG1sU2NoZW1hQW5ub3RQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHJpYnV0ZXMnIHR5cGU9J3htbFNjaGVtYUF0dHJpYnV0ZVB0cicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZmxhZ3MnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0cmlidXRlV2lsZGNhcmQnIHR5cGU9J3htbFNjaGVtYVdpbGRjYXJkUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZWZQcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVmSXRlbScgdHlwZT0neG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHInIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3RhcmdldE5hbWVzcGFjZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhdHRyVXNlcycgdHlwZT0ndm9pZCAqJyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0cicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0neG1sU2NoZW1hQXR0cmlidXRlR3JvdXAgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sU2NoZW1hQXR0cmlidXRlTGluaycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGVMaW5rJz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsgKicgaW5mbz0nIHRoZSBuZXh0IGF0dHJpYnV0ZSBsaW5rIC4uLicvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHInIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlIConIGluZm89JyB0aGUgbGlua2VkIGF0dHJpYnV0ZScvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYUF0dHJpYnV0ZUxpbmtQdHInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYUF0dHJpYnV0ZVB0cicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0neG1sU2NoZW1hQXR0cmlidXRlIConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTY2hlbWFDb250ZW50VHlwZScgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0nZW51bScvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sU2NoZW1hRWxlbWVudCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFFbGVtZW50Jz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0eXBlJyB0eXBlPSd4bWxTY2hlbWFUeXBlVHlwZScgaW5mbz0nIFRoZSBraW5kIG9mIHR5cGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYVR5cGUgKicgaW5mbz0nIE5vdCB1c2VkPycvPgorICAgICAgPGZpZWxkIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVmJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlZk5zJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2Fubm90JyB0eXBlPSd4bWxTY2hlbWFBbm5vdFB0cicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3VidHlwZXMnIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89JyB0aGUgdHlwZSBkZWZpbml0aW9uJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0cmlidXRlcycgdHlwZT0neG1sU2NoZW1hQXR0cmlidXRlUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdtaW5PY2N1cnMnIHR5cGU9J2ludCcgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbWF4T2NjdXJzJyB0eXBlPSdpbnQnIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2ZsYWdzJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3RhcmdldE5hbWVzcGFjZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lZFR5cGUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZWRUeXBlTnMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3Vic3RHcm91cCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdWJzdEdyb3VwTnMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc2NvcGUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIFRoZSBvcmlnaW5hbCB2YWx1ZSBvZiB0aGUgdmFsdWUgY29uc3RyYWludC4nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZWZEZWNsJyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYUVsZW1lbnQgKicgaW5mbz0nIFRoaXMgd2lsbCBub3cgYmUgdXNlZCBmb3IgdGhlCitzdWJzdGl0dXRpb24gZ3JvdXAgYWZmaWxpYXRpb24nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250TW9kZWwnIHR5cGU9J3htbFJlZ2V4cFB0cicgaW5mbz0nIE9ic29sZXRlIGZvciBXWFMsIG1heWJlIHVzZWQgZm9yIFJlbGF4TkcnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZW50VHlwZScgdHlwZT0neG1sU2NoZW1hQ29udGVudFR5cGUnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlZlByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgRGVwcmVjYXRlZDsgbm90IHVzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkZWZWYWwnIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0nIFRoZSBjb21waWxlZCB2YWx1ZSBjb250cmFpbnQuJy8+CisgICAgICA8ZmllbGQgbmFtZT0naWRjcycgdHlwZT0ndm9pZCAqJyBpbmZvPScgVGhlIGlkZW50aXR5LWNvbnN0cmFpbnQgZGVmcycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYUVsZW1lbnRQdHInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3htbFNjaGVtYUVsZW1lbnQgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sU2NoZW1hRmFjZXQnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hRmFjZXQnPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVUeXBlJyBpbmZvPScgVGhlIGtpbmQgb2YgdHlwZScvPgorICAgICAgPGZpZWxkIG5hbWU9J25leHQnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hRmFjZXQgKicgaW5mbz0nIHRoZSBuZXh0IHR5cGUgaWYgaW4gYSBzZXF1ZW5jZSAuLi4nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgVGhlIG9yaWdpbmFsIHZhbHVlJy8+CisgICAgICA8ZmllbGQgbmFtZT0naWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIE9ic29sZXRlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYW5ub3QnIHR5cGU9J3htbFNjaGVtYUFubm90UHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmaXhlZCcgdHlwZT0naW50JyBpbmZvPScgWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUsIGV0Yy4nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd3aGl0ZXNwYWNlJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3ZhbCcgdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPScgVGhlIGNvbXBpbGVkIHZhbHVlJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVnZXhwJyB0eXBlPSd4bWxSZWdleHBQdHInIGluZm89JyBUaGUgcmVnZXggZm9yIHBhdHRlcm5zJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWFGYWNldExpbmsnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hRmFjZXRMaW5rJz4KKyAgICAgIDxmaWVsZCBuYW1lPSduZXh0JyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYUZhY2V0TGluayAqJyBpbmZvPScgdGhlIG5leHQgZmFjZXQgbGluayAuLi4nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmYWNldCcgdHlwZT0neG1sU2NoZW1hRmFjZXRQdHInIGluZm89JyB0aGUgbGlua2VkIGZhY2V0Jy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2NoZW1hRmFjZXRMaW5rUHRyJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB0eXBlPSd4bWxTY2hlbWFGYWNldExpbmsgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYUZhY2V0UHRyJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB0eXBlPSd4bWxTY2hlbWFGYWNldCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWFOb3RhdGlvbicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFOb3RhdGlvbic+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZScgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnIGluZm89JyBUaGUga2luZCBvZiB0eXBlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhbm5vdCcgdHlwZT0neG1sU2NoZW1hQW5ub3RQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2lkZW50aWZpZXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndGFyZ2V0TmFtZXNwYWNlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYU5vdGF0aW9uUHRyJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB0eXBlPSd4bWxTY2hlbWFOb3RhdGlvbiAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWFQYXJzZXJDdHh0JyBmaWxlPSd4bWxzY2hlbWFzJyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYVBhcnNlckN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTY2hlbWFQYXJzZXJDdHh0UHRyJyBmaWxlPSd4bWxzY2hlbWFzJyB0eXBlPSd4bWxTY2hlbWFQYXJzZXJDdHh0IConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTY2hlbWFQdHInIGZpbGU9J3htbHNjaGVtYXMnIHR5cGU9J3htbFNjaGVtYSAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2NoZW1hU0FYUGx1Z1B0cicgZmlsZT0neG1sc2NoZW1hcycgdHlwZT0neG1sU2NoZW1hU0FYUGx1Z1N0cnVjdCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWFTQVhQbHVnU3RydWN0JyBmaWxlPSd4bWxzY2hlbWFzJyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYVNBWFBsdWcnLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNjaGVtYVR5cGUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hVHlwZSc+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZScgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnIGluZm89JyBUaGUga2luZCBvZiB0eXBlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmV4dCcgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFUeXBlIConIGluZm89JyB0aGUgbmV4dCB0eXBlIGlmIGluIGEgc2VxdWVuY2UgLi4uJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgRGVwcmVjYXRlZDsgbm90IHVzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdyZWYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVmTnMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYW5ub3QnIHR5cGU9J3htbFNjaGVtYUFubm90UHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdzdWJ0eXBlcycgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0cmlidXRlcycgdHlwZT0neG1sU2NoZW1hQXR0cmlidXRlUHRyJyBpbmZvPScgRGVwcmVjYXRlZDsgbm90IHVzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdtaW5PY2N1cnMnIHR5cGU9J2ludCcgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbWF4T2NjdXJzJyB0eXBlPSdpbnQnIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2ZsYWdzJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvbnRlbnRUeXBlJyB0eXBlPSd4bWxTY2hlbWFDb250ZW50VHlwZScgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYmFzZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgQmFzZSB0eXBlJmFwb3M7cyBsb2NhbCBuYW1lJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYmFzZU5zJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBCYXNlIHR5cGUmYXBvcztzIHRhcmdldCBuYW1lc3BhY2UnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdiYXNlVHlwZScgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0nIFRoZSBiYXNlIHR5cGUgY29tcG9uZW50Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nZmFjZXRzJyB0eXBlPSd4bWxTY2hlbWFGYWNldFB0cicgaW5mbz0nIExvY2FsIGZhY2V0cycvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlZGVmJyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYVR5cGUgKicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncmVjdXJzZScgdHlwZT0naW50JyBpbmZvPScgT2Jzb2xldGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhdHRyaWJ1dGVVc2VzJyB0eXBlPSd4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rUHRyIConIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J2F0dHJpYnV0ZVdpbGRjYXJkJyB0eXBlPSd4bWxTY2hlbWFXaWxkY2FyZFB0cicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYnVpbHRJblR5cGUnIHR5cGU9J2ludCcgaW5mbz0nIFR5cGUgb2YgYnVpbHQtaW4gdHlwZXMuJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbWVtYmVyVHlwZXMnIHR5cGU9J3htbFNjaGVtYVR5cGVMaW5rUHRyJyBpbmZvPScgbWVtYmVyLXR5cGVzIGlmIGEgdW5pb24gdHlwZS4nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmYWNldFNldCcgdHlwZT0neG1sU2NoZW1hRmFjZXRMaW5rUHRyJyBpbmZvPScgQWxsIGZhY2V0cyAoaW5jbC4gaW5oZXJpdGVkKScvPgorICAgICAgPGZpZWxkIG5hbWU9J3JlZlByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgRGVwcmVjYXRlZDsgbm90IHVzZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZW50VHlwZURlZicgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0nIFVzZWQgZm9yIHRoZSBzaW1wbGUgY29udGVudCBvZiBjb21wbGV4IHR5cGVzLgorQ291bGQgd2UgdXNlIEBzdWJ0eXBlcyBmb3IgdGhpcz8nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250TW9kZWwnIHR5cGU9J3htbFJlZ2V4cFB0cicgaW5mbz0nIEhvbGRzIHRoZSBhdXRvbWF0b24gb2YgdGhlIGNvbnRlbnQgbW9kZWwnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0YXJnZXROYW1lc3BhY2UnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYXR0clVzZXMnIHR5cGU9J3ZvaWQgKicgaW5mbz0nJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWFUeXBlTGluaycgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFUeXBlTGluayc+CisgICAgICA8ZmllbGQgbmFtZT0nbmV4dCcgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFUeXBlTGluayAqJyBpbmZvPScgdGhlIG5leHQgdHlwZSBsaW5rIC4uLicvPgorICAgICAgPGZpZWxkIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89JyB0aGUgbGlua2VkIHR5cGUnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTY2hlbWFUeXBlTGlua1B0cicgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0neG1sU2NoZW1hVHlwZUxpbmsgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYVR5cGVQdHInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3htbFNjaGVtYVR5cGUgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYVR5cGVUeXBlJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWFWYWwnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hVmFsJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2NoZW1hVmFsUHRyJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB0eXBlPSd4bWxTY2hlbWFWYWwgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYVZhbFR5cGUnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J2VudW0nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNjaGVtYVZhbGlkQ3R4dCcgZmlsZT0neG1sc2NoZW1hcycgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFWYWxpZEN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTY2hlbWFWYWxpZEN0eHRQdHInIGZpbGU9J3htbHNjaGVtYXMnIHR5cGU9J3htbFNjaGVtYVZhbGlkQ3R4dCAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2NoZW1hVmFsaWRFcnJvcicgZmlsZT0neG1sc2NoZW1hcycgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYVZhbGlkT3B0aW9uJyBmaWxlPSd4bWxzY2hlbWFzJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZScgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyB0eXBlPSdlbnVtJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWFXaWxkY2FyZCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFXaWxkY2FyZCc+CisgICAgICA8ZmllbGQgbmFtZT0ndHlwZScgdHlwZT0neG1sU2NoZW1hVHlwZVR5cGUnIGluZm89JyBUaGUga2luZCBvZiB0eXBlJy8+CisgICAgICA8ZmllbGQgbmFtZT0naWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYW5ub3QnIHR5cGU9J3htbFNjaGVtYUFubm90UHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdtaW5PY2N1cnMnIHR5cGU9J2ludCcgaW5mbz0nIERlcHJlY2F0ZWQ7IG5vdCB1c2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbWF4T2NjdXJzJyB0eXBlPSdpbnQnIGluZm89JyBEZXByZWNhdGVkOyBub3QgdXNlZCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3Byb2Nlc3NDb250ZW50cycgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhbnknIHR5cGU9J2ludCcgaW5mbz0nIEluZGljYXRlcyBpZiB0aGUgbnMgY29uc3RyYWludCBpcyBvZiAjI2FueScvPgorICAgICAgPGZpZWxkIG5hbWU9J25zU2V0JyB0eXBlPSd4bWxTY2hlbWFXaWxkY2FyZE5zUHRyJyBpbmZvPScgVGhlIGxpc3Qgb2YgYWxsb3dlZCBuYW1lc3BhY2VzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmVnTnNTZXQnIHR5cGU9J3htbFNjaGVtYVdpbGRjYXJkTnNQdHInIGluZm89JyBUaGUgbmVnYXRlZCBuYW1lc3BhY2UnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmbGFncycgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNjaGVtYVdpbGRjYXJkTnMnIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hV2lsZGNhcmROcyc+CisgICAgICA8ZmllbGQgbmFtZT0nbmV4dCcgdHlwZT0nc3RydWN0IF94bWxTY2hlbWFXaWxkY2FyZE5zIConIGluZm89JyB0aGUgbmV4dCBjb25zdHJhaW50IGxpbmsgLi4uJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIHRoZSB2YWx1ZScvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYVdpbGRjYXJkTnNQdHInIGZpbGU9J3NjaGVtYXNJbnRlcm5hbHMnIHR5cGU9J3htbFNjaGVtYVdpbGRjYXJkTnMgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYVdpbGRjYXJkUHRyJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyB0eXBlPSd4bWxTY2hlbWFXaWxkY2FyZCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTY2hlbWF0cm9uJyBmaWxlPSdzY2hlbWF0cm9uJyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYXRyb24nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNjaGVtYXRyb25QYXJzZXJDdHh0JyBmaWxlPSdzY2hlbWF0cm9uJyB0eXBlPSdzdHJ1Y3QgX3htbFNjaGVtYXRyb25QYXJzZXJDdHh0Jy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHInIGZpbGU9J3NjaGVtYXRyb24nIHR5cGU9J3htbFNjaGVtYXRyb25QYXJzZXJDdHh0IConLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTY2hlbWF0cm9uUHRyJyBmaWxlPSdzY2hlbWF0cm9uJyB0eXBlPSd4bWxTY2hlbWF0cm9uIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNjaGVtYXRyb25WYWxpZEN0eHQnIGZpbGU9J3NjaGVtYXRyb24nIHR5cGU9J3N0cnVjdCBfeG1sU2NoZW1hdHJvblZhbGlkQ3R4dCcvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHInIGZpbGU9J3NjaGVtYXRyb24nIHR5cGU9J3htbFNjaGVtYXRyb25WYWxpZEN0eHQgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNjaGVtYXRyb25WYWxpZE9wdGlvbnMnIGZpbGU9J3NjaGVtYXRyb24nIHR5cGU9J2VudW0nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFNoZWxsQ3R4dCcgZmlsZT0nZGVidWdYTUwnIHR5cGU9J3N0cnVjdCBfeG1sU2hlbGxDdHh0Jz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY2hhciAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncGN0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbG9hZGVkJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J291dHB1dCcgdHlwZT0nRklMRSAqJyBpbmZvPScnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdpbnB1dCcgdHlwZT0neG1sU2hlbGxSZWFkbGluZUZ1bmMnIGluZm89JycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFNoZWxsQ3R4dFB0cicgZmlsZT0nZGVidWdYTUwnIHR5cGU9J3htbFNoZWxsQ3R4dCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxTdHJlYW1DdHh0JyBmaWxlPSdwYXR0ZXJuJyB0eXBlPSdzdHJ1Y3QgX3htbFN0cmVhbUN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxTdHJlYW1DdHh0UHRyJyBmaWxlPSdwYXR0ZXJuJyB0eXBlPSd4bWxTdHJlYW1DdHh0IConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFRleHRSZWFkZXInIGZpbGU9J3htbHJlYWRlcicgdHlwZT0nc3RydWN0IF94bWxUZXh0UmVhZGVyJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sVGV4dFJlYWRlckxvY2F0b3JQdHInIGZpbGU9J3htbHJlYWRlcicgdHlwZT0ndm9pZCAqJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sVGV4dFJlYWRlck1vZGUnIGZpbGU9J3htbHJlYWRlcicgdHlwZT0nZW51bScvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFRleHRSZWFkZXJQdHInIGZpbGU9J3htbHJlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlciAqJz4KKyAgICAgIDxpbmZvPlBvaW50ZXIgdG8gYW4geG1sUmVhZGVyIGNvbnRleHQuPC9pbmZvPgorICAgIDwvdHlwZWRlZj4KKyAgICA8c3RydWN0IG5hbWU9J3htbFRleHRXcml0ZXInIGZpbGU9J3htbHdyaXRlcicgdHlwZT0nc3RydWN0IF94bWxUZXh0V3JpdGVyJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sVGV4dFdyaXRlclB0cicgZmlsZT0neG1sd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyIConLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFVSSScgZmlsZT0ndXJpJyB0eXBlPSdzdHJ1Y3QgX3htbFVSSSc+CisgICAgICA8ZmllbGQgbmFtZT0nc2NoZW1lJyB0eXBlPSdjaGFyIConIGluZm89JyB0aGUgVVJJIHNjaGVtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J29wYXF1ZScgdHlwZT0nY2hhciAqJyBpbmZvPScgb3BhcXVlIHBhcnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdhdXRob3JpdHknIHR5cGU9J2NoYXIgKicgaW5mbz0nIHRoZSBhdXRob3JpdHkgcGFydCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3NlcnZlcicgdHlwZT0nY2hhciAqJyBpbmZvPScgdGhlIHNlcnZlciBwYXJ0Jy8+CisgICAgICA8ZmllbGQgbmFtZT0ndXNlcicgdHlwZT0nY2hhciAqJyBpbmZvPScgdGhlIHVzZXIgcGFydCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3BvcnQnIHR5cGU9J2ludCcgaW5mbz0nIHRoZSBwb3J0IG51bWJlcicvPgorICAgICAgPGZpZWxkIG5hbWU9J3BhdGgnIHR5cGU9J2NoYXIgKicgaW5mbz0nIHRoZSBwYXRoIHN0cmluZycvPgorICAgICAgPGZpZWxkIG5hbWU9J3F1ZXJ5JyB0eXBlPSdjaGFyIConIGluZm89JyB0aGUgcXVlcnkgc3RyaW5nIChkZXByZWNhdGVkIC0gdXNlIHdpdGggY2F1dGlvbiknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmcmFnbWVudCcgdHlwZT0nY2hhciAqJyBpbmZvPScgdGhlIGZyYWdtZW50IGlkZW50aWZpZXInLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjbGVhbnVwJyB0eXBlPSdpbnQnIGluZm89JyBwYXJzaW5nIHBvdGVudGlhbGx5IHVuY2xlYW4gVVJJJy8+CisgICAgICA8ZmllbGQgbmFtZT0ncXVlcnlfcmF3JyB0eXBlPSdjaGFyIConIGluZm89JyB0aGUgcXVlcnkgc3RyaW5nIChhcyBpdCBhcHBlYXJzIGluIHRoZSBVUkkpJy8+CisgICAgPC9zdHJ1Y3Q+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sVVJJUHRyJyBmaWxlPSd1cmknIHR5cGU9J3htbFVSSSAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxWYWxpZEN0eHQnIGZpbGU9J3ZhbGlkJyB0eXBlPSdzdHJ1Y3QgX3htbFZhbGlkQ3R4dCc+CisgICAgICA8ZmllbGQgbmFtZT0ndXNlckRhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIHVzZXIgc3BlY2lmaWMgZGF0YSBibG9jaycvPgorICAgICAgPGZpZWxkIG5hbWU9J2Vycm9yJyB0eXBlPSd4bWxWYWxpZGl0eUVycm9yRnVuYycgaW5mbz0nIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIGVycm9ycycvPgorICAgICAgPGZpZWxkIG5hbWU9J3dhcm5pbmcnIHR5cGU9J3htbFZhbGlkaXR5V2FybmluZ0Z1bmMnIGluZm89JyB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiB3YXJuaW5nIE5vZGUgYW5hbHlzaXMgc3RhY2sgdXNlZCB3aGVuIHZhbGlkYXRpbmcgd2l0aGluIGVudGl0aWVzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nIEN1cnJlbnQgcGFyc2VkIE5vZGUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlTnInIHR5cGU9J2ludCcgaW5mbz0nIERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZU1heCcgdHlwZT0naW50JyBpbmZvPScgTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbm9kZVRhYicgdHlwZT0neG1sTm9kZVB0ciAqJyBpbmZvPScgYXJyYXkgb2Ygbm9kZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmaW5pc2hEdGQnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nIGZpbmlzaGVkIHZhbGlkYXRpbmcgdGhlIER0ZCA/Jy8+CisgICAgICA8ZmllbGQgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89JyB0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2YWxpZCcgdHlwZT0naW50JyBpbmZvPScgdGVtcG9yYXJ5IHZhbGlkaXR5IGNoZWNrIHJlc3VsdCBzdGF0ZSBzdGF0ZSB1c2VkIGZvciBub24tZGV0ZXJtaW5pc3QgY29udGVudCB2YWxpZGF0aW9uJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndnN0YXRlJyB0eXBlPSd4bWxWYWxpZFN0YXRlIConIGluZm89JyBjdXJyZW50IHN0YXRlJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndnN0YXRlTnInIHR5cGU9J2ludCcgaW5mbz0nIERlcHRoIG9mIHRoZSB2YWxpZGF0aW9uIHN0YWNrJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndnN0YXRlTWF4JyB0eXBlPSdpbnQnIGluZm89JyBNYXggZGVwdGggb2YgdGhlIHZhbGlkYXRpb24gc3RhY2snLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2c3RhdGVUYWInIHR5cGU9J3htbFZhbGlkU3RhdGUgKicgaW5mbz0nIGFycmF5IG9mIHZhbGlkYXRpb24gc3RhdGVzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPScgdGhlIGF1dG9tYXRhJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3RhdGUnIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89JyB1c2VkIHRvIGJ1aWxkIHRoZSBhdXRvbWF0YScvPgorICAgICAgPGZpZWxkIG5hbWU9J2FtJyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3N0YXRlJyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFZhbGlkQ3R4dFB0cicgZmlsZT0ndmFsaWQnIHR5cGU9J3htbFZhbGlkQ3R4dCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxWYWxpZFN0YXRlJyBmaWxlPSd2YWxpZCcgdHlwZT0nc3RydWN0IF94bWxWYWxpZFN0YXRlJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sVmFsaWRTdGF0ZVB0cicgZmlsZT0ndmFsaWQnIHR5cGU9J3htbFZhbGlkU3RhdGUgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sWEluY2x1ZGVDdHh0JyBmaWxlPSd4aW5jbHVkZScgdHlwZT0nc3RydWN0IF94bWxYSW5jbHVkZUN0eHQnLz4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxYSW5jbHVkZUN0eHRQdHInIGZpbGU9J3hpbmNsdWRlJyB0eXBlPSd4bWxYSW5jbHVkZUN0eHQgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sWFBhdGhBeGlzJyBmaWxlPSd4cGF0aCcgdHlwZT0nc3RydWN0IF94bWxYUGF0aEF4aXMnPgorICAgICAgPGZpZWxkIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIHRoZSBheGlzIG5hbWUnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmdW5jJyB0eXBlPSd4bWxYUGF0aEF4aXNGdW5jJyBpbmZvPScgdGhlIHNlYXJjaCBmdW5jdGlvbicvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFhQYXRoQXhpc1B0cicgZmlsZT0neHBhdGgnIHR5cGU9J3htbFhQYXRoQXhpcyAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxYUGF0aENvbXBFeHByJyBmaWxlPSd4cGF0aCcgdHlwZT0nc3RydWN0IF94bWxYUGF0aENvbXBFeHByJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sWFBhdGhDb21wRXhwclB0cicgZmlsZT0neHBhdGgnIHR5cGU9J3htbFhQYXRoQ29tcEV4cHIgKicvPgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sWFBhdGhDb250ZXh0JyBmaWxlPSd4cGF0aCcgdHlwZT0nc3RydWN0IF94bWxYUGF0aENvbnRleHQnPgorICAgICAgPGZpZWxkIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPScgVGhlIGN1cnJlbnQgZG9jdW1lbnQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScgVGhlIGN1cnJlbnQgbm9kZScvPgorICAgICAgPGZpZWxkIG5hbWU9J25iX3ZhcmlhYmxlc191bnVzZWQnIHR5cGU9J2ludCcgaW5mbz0nIHVudXNlZCAoaGFzaCB0YWJsZSknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdtYXhfdmFyaWFibGVzX3VudXNlZCcgdHlwZT0naW50JyBpbmZvPScgdW51c2VkIChoYXNoIHRhYmxlKScvPgorICAgICAgPGZpZWxkIG5hbWU9J3Zhckhhc2gnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0nIEhhc2ggdGFibGUgb2YgZGVmaW5lZCB2YXJpYWJsZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYl90eXBlcycgdHlwZT0naW50JyBpbmZvPScgbnVtYmVyIG9mIGRlZmluZWQgdHlwZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdtYXhfdHlwZXMnIHR5cGU9J2ludCcgaW5mbz0nIG1heCBudW1iZXIgb2YgdHlwZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0eXBlcycgdHlwZT0neG1sWFBhdGhUeXBlUHRyJyBpbmZvPScgQXJyYXkgb2YgZGVmaW5lZCB0eXBlcycvPgorICAgICAgPGZpZWxkIG5hbWU9J25iX2Z1bmNzX3VudXNlZCcgdHlwZT0naW50JyBpbmZvPScgdW51c2VkIChoYXNoIHRhYmxlKScvPgorICAgICAgPGZpZWxkIG5hbWU9J21heF9mdW5jc191bnVzZWQnIHR5cGU9J2ludCcgaW5mbz0nIHVudXNlZCAoaGFzaCB0YWJsZSknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmdW5jSGFzaCcgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPScgSGFzaCB0YWJsZSBvZiBkZWZpbmVkIGZ1bmNzJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmJfYXhpcycgdHlwZT0naW50JyBpbmZvPScgbnVtYmVyIG9mIGRlZmluZWQgYXhpcycvPgorICAgICAgPGZpZWxkIG5hbWU9J21heF9heGlzJyB0eXBlPSdpbnQnIGluZm89JyBtYXggbnVtYmVyIG9mIGF4aXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdheGlzJyB0eXBlPSd4bWxYUGF0aEF4aXNQdHInIGluZm89JyBBcnJheSBvZiBkZWZpbmVkIGF4aXMgdGhlIG5hbWVzcGFjZSBub2RlcyBvZiB0aGUgY29udGV4dCBub2RlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZXNwYWNlcycgdHlwZT0neG1sTnNQdHIgKicgaW5mbz0nIEFycmF5IG9mIG5hbWVzcGFjZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSduc05yJyB0eXBlPSdpbnQnIGluZm89JyBudW1iZXIgb2YgbmFtZXNwYWNlIGluIHNjb3BlJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndXNlcicgdHlwZT0ndm9pZCAqJyBpbmZvPScgZnVuY3Rpb24gdG8gZnJlZSBleHRyYSB2YXJpYWJsZXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjb250ZXh0U2l6ZScgdHlwZT0naW50JyBpbmZvPScgdGhlIGNvbnRleHQgc2l6ZScvPgorICAgICAgPGZpZWxkIG5hbWU9J3Byb3hpbWl0eVBvc2l0aW9uJyB0eXBlPSdpbnQnIGluZm89JyB0aGUgcHJveGltaXR5IHBvc2l0aW9uIGV4dHJhIHN0dWZmIGZvciBYUG9pbnRlcicvPgorICAgICAgPGZpZWxkIG5hbWU9J3hwdHInIHR5cGU9J2ludCcgaW5mbz0nIGlzIHRoaXMgYW4gWFBvaW50ZXIgY29udGV4dD8nLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdoZXJlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScgZm9yIGhlcmUoKScvPgorICAgICAgPGZpZWxkIG5hbWU9J29yaWdpbicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nIGZvciBvcmlnaW4oKSB0aGUgc2V0IG9mIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgaW4gc2NvcGUgZm9yIHRoZSBleHByZXNzaW9uJy8+CisgICAgICA8ZmllbGQgbmFtZT0nbnNIYXNoJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89JyBUaGUgbmFtZXNwYWNlcyBoYXNoIHRhYmxlJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmFyTG9va3VwRnVuYycgdHlwZT0neG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMnIGluZm89JyB2YXJpYWJsZSBsb29rdXAgZnVuYycvPgorICAgICAgPGZpZWxkIG5hbWU9J3Zhckxvb2t1cERhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIHZhcmlhYmxlIGxvb2t1cCBkYXRhIFBvc3NpYmlsaXR5IHRvIGxpbmsgaW4gYW4gZXh0cmEgaXRlbScvPgorICAgICAgPGZpZWxkIG5hbWU9J2V4dHJhJyB0eXBlPSd2b2lkIConIGluZm89JyBuZWVkZWQgZm9yIFhTTFQgVGhlIGZ1bmN0aW9uIG5hbWUgYW5kIFVSSSB3aGVuIGNhbGxpbmcgYSBmdW5jdGlvbicvPgorICAgICAgPGZpZWxkIG5hbWU9J2Z1bmN0aW9uJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2Z1bmN0aW9uVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyBmdW5jdGlvbiBsb29rdXAgZnVuY3Rpb24gYW5kIGRhdGEnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmdW5jTG9va3VwRnVuYycgdHlwZT0neG1sWFBhdGhGdW5jTG9va3VwRnVuYycgaW5mbz0nIGZ1bmN0aW9uIGxvb2t1cCBmdW5jJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZnVuY0xvb2t1cERhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nIGZ1bmN0aW9uIGxvb2t1cCBkYXRhIHRlbXBvcmFyeSBuYW1lc3BhY2UgbGlzdHMga2VwdCBmb3Igd2Fsa2luZyB0aGUgbmFtZXNwYWNlIGF4aXMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0bXBOc0xpc3QnIHR5cGU9J3htbE5zUHRyIConIGluZm89JyBBcnJheSBvZiBuYW1lc3BhY2VzJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndG1wTnNOcicgdHlwZT0naW50JyBpbmZvPScgbnVtYmVyIG9mIG5hbWVzcGFjZXMgaW4gc2NvcGUgZXJyb3IgcmVwb3J0aW5nIG1lY2hhbmlzbScvPgorICAgICAgPGZpZWxkIG5hbWU9J3VzZXJEYXRhJyB0eXBlPSd2b2lkIConIGluZm89JyB1c2VyIHNwZWNpZmljIGRhdGEgYmxvY2snLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdlcnJvcicgdHlwZT0neG1sU3RydWN0dXJlZEVycm9yRnVuYycgaW5mbz0nIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIGVycm9ycycvPgorICAgICAgPGZpZWxkIG5hbWU9J2xhc3RFcnJvcicgdHlwZT0neG1sRXJyb3InIGluZm89JyB0aGUgbGFzdCBlcnJvcicvPgorICAgICAgPGZpZWxkIG5hbWU9J2RlYnVnTm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nIHRoZSBzb3VyY2Ugbm9kZSBYU0xUIGRpY3Rpb25hcnknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPScgZGljdGlvbmFyeSBpZiBhbnknLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdmbGFncycgdHlwZT0naW50JyBpbmZvPScgZmxhZ3MgdG8gY29udHJvbCBjb21waWxhdGlvbiBDYWNoZSBmb3IgcmV1c2FsIG9mIFhQYXRoIG9iamVjdHMnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjYWNoZScgdHlwZT0ndm9pZCAqJyBpbmZvPScnLz4KKyAgICA8L3N0cnVjdD4KKyAgICA8dHlwZWRlZiBuYW1lPSd4bWxYUGF0aENvbnRleHRQdHInIGZpbGU9J3hwYXRoJyB0eXBlPSd4bWxYUGF0aENvbnRleHQgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFhQYXRoRXJyb3InIGZpbGU9J3hwYXRoJyB0eXBlPSdlbnVtJy8+CisgICAgPHR5cGVkZWYgbmFtZT0neG1sWFBhdGhGdW5jUHRyJyBmaWxlPSd4cGF0aCcgdHlwZT0neG1sWFBhdGhGdW5jdCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxYUGF0aEZ1bmN0JyBmaWxlPSd4cGF0aCcgdHlwZT0nc3RydWN0IF94bWxYUGF0aEZ1bmN0Jz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyB0aGUgZnVuY3Rpb24gbmFtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2Z1bmMnIHR5cGU9J3htbFhQYXRoRXZhbEZ1bmMnIGluZm89JyB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbicvPgorICAgIDwvc3RydWN0PgorICAgIDxzdHJ1Y3QgbmFtZT0neG1sWFBhdGhPYmplY3QnIGZpbGU9J3hwYXRoJyB0eXBlPSdzdHJ1Y3QgX3htbFhQYXRoT2JqZWN0Jz4KKyAgICAgIDxmaWVsZCBuYW1lPSd0eXBlJyB0eXBlPSd4bWxYUGF0aE9iamVjdFR5cGUnIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J25vZGVzZXR2YWwnIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J2Jvb2x2YWwnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nZmxvYXR2YWwnIHR5cGU9J2RvdWJsZScgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0nc3RyaW5ndmFsJyB0eXBlPSd4bWxDaGFyIConIGluZm89JycvPgorICAgICAgPGZpZWxkIG5hbWU9J3VzZXInIHR5cGU9J3ZvaWQgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naW5kZXgnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndXNlcjInIHR5cGU9J3ZvaWQgKicgaW5mbz0nJy8+CisgICAgICA8ZmllbGQgbmFtZT0naW5kZXgyJyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFhQYXRoT2JqZWN0UHRyJyBmaWxlPSd4cGF0aCcgdHlwZT0neG1sWFBhdGhPYmplY3QgKicvPgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFhQYXRoT2JqZWN0VHlwZScgZmlsZT0neHBhdGgnIHR5cGU9J2VudW0nLz4KKyAgICA8c3RydWN0IG5hbWU9J3htbFhQYXRoUGFyc2VyQ29udGV4dCcgZmlsZT0neHBhdGgnIHR5cGU9J3N0cnVjdCBfeG1sWFBhdGhQYXJzZXJDb250ZXh0Jz4KKyAgICAgIDxmaWVsZCBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nIHRoZSBjdXJyZW50IGNoYXIgYmVpbmcgcGFyc2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0nYmFzZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIGZ1bGwgZXhwcmVzc2lvbicvPgorICAgICAgPGZpZWxkIG5hbWU9J2Vycm9yJyB0eXBlPSdpbnQnIGluZm89JyBlcnJvciBjb2RlJy8+CisgICAgICA8ZmllbGQgbmFtZT0nY29udGV4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPScgdGhlIGV2YWx1YXRpb24gY29udGV4dCcvPgorICAgICAgPGZpZWxkIG5hbWU9J3ZhbHVlJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nIHRoZSBjdXJyZW50IHZhbHVlJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmFsdWVOcicgdHlwZT0naW50JyBpbmZvPScgbnVtYmVyIG9mIHZhbHVlcyBzdGFja2VkJy8+CisgICAgICA8ZmllbGQgbmFtZT0ndmFsdWVNYXgnIHR5cGU9J2ludCcgaW5mbz0nIG1heCBudW1iZXIgb2YgdmFsdWVzIHN0YWNrZWQnLz4KKyAgICAgIDxmaWVsZCBuYW1lPSd2YWx1ZVRhYicgdHlwZT0neG1sWFBhdGhPYmplY3RQdHIgKicgaW5mbz0nIHN0YWNrIG9mIHZhbHVlcycvPgorICAgICAgPGZpZWxkIG5hbWU9J2NvbXAnIHR5cGU9J3htbFhQYXRoQ29tcEV4cHJQdHInIGluZm89JyB0aGUgcHJlY29tcGlsZWQgZXhwcmVzc2lvbicvPgorICAgICAgPGZpZWxkIG5hbWU9J3hwdHInIHR5cGU9J2ludCcgaW5mbz0nIGl0IHRoaXMgYW4gWFBvaW50ZXIgZXhwcmVzc2lvbicvPgorICAgICAgPGZpZWxkIG5hbWU9J2FuY2VzdG9yJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPScgdXNlZCBmb3Igd2Fsa2luZyBwcmVjZWRpbmcgYXhpcycvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgZmlsZT0neHBhdGgnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dCAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxYUGF0aFR5cGUnIGZpbGU9J3hwYXRoJyB0eXBlPSdzdHJ1Y3QgX3htbFhQYXRoVHlwZSc+CisgICAgICA8ZmllbGQgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPScgdGhlIHR5cGUgbmFtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J2Z1bmMnIHR5cGU9J3htbFhQYXRoQ29udmVydEZ1bmMnIGluZm89JyB0aGUgY29udmVyc2lvbiBmdW5jdGlvbicvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFhQYXRoVHlwZVB0cicgZmlsZT0neHBhdGgnIHR5cGU9J3htbFhQYXRoVHlwZSAqJy8+CisgICAgPHN0cnVjdCBuYW1lPSd4bWxYUGF0aFZhcmlhYmxlJyBmaWxlPSd4cGF0aCcgdHlwZT0nc3RydWN0IF94bWxYUGF0aFZhcmlhYmxlJz4KKyAgICAgIDxmaWVsZCBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89JyB0aGUgdmFyaWFibGUgbmFtZScvPgorICAgICAgPGZpZWxkIG5hbWU9J3ZhbHVlJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nIHRoZSB2YWx1ZScvPgorICAgIDwvc3RydWN0PgorICAgIDx0eXBlZGVmIG5hbWU9J3htbFhQYXRoVmFyaWFibGVQdHInIGZpbGU9J3hwYXRoJyB0eXBlPSd4bWxYUGF0aFZhcmlhYmxlIConLz4KKyAgICA8dmFyaWFibGUgbmFtZT0nZG9jYkRlZmF1bHRTQVhIYW5kbGVyJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSd4bWxTQVhIYW5kbGVyVjEnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0nZW1wdHlFeHAnIGZpbGU9J3htbHJlZ2V4cCcgdHlwZT0neG1sRXhwTm9kZVB0cicvPgorICAgIDx2YXJpYWJsZSBuYW1lPSdmb3JiaWRkZW5FeHAnIGZpbGU9J3htbHJlZ2V4cCcgdHlwZT0neG1sRXhwTm9kZVB0cicvPgorICAgIDx2YXJpYWJsZSBuYW1lPSdodG1sRGVmYXVsdFNBWEhhbmRsZXInIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbFNBWEhhbmRsZXJWMScvPgorICAgIDx2YXJpYWJsZSBuYW1lPSdvbGRYTUxXRGNvbXBhdGliaWxpdHknIGZpbGU9J2dsb2JhbHMnIHR5cGU9J2ludCcvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxCdWZmZXJBbGxvY1NjaGVtZScgZmlsZT0nZ2xvYmFscycgdHlwZT0neG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZScvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxEZWZhdWx0QnVmZmVyU2l6ZScgZmlsZT0nZ2xvYmFscycgdHlwZT0naW50Jy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbERlZmF1bHRTQVhIYW5kbGVyJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSd4bWxTQVhIYW5kbGVyVjEnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sRGVmYXVsdFNBWExvY2F0b3InIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbFNBWExvY2F0b3InLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUnIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbERlcmVnaXN0ZXJOb2RlRnVuYycvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUnIGZpbGU9J2dsb2JhbHMnIHR5cGU9J2ludCcvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxGcmVlJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSd4bWxGcmVlRnVuYycvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxHZW5lcmljRXJyb3InIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbEdlbmVyaWNFcnJvckZ1bmMnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sR2VuZXJpY0Vycm9yQ29udGV4dCcgZmlsZT0nZ2xvYmFscycgdHlwZT0ndm9pZCAqJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSdpbnQnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sSW5kZW50VHJlZU91dHB1dCcgZmlsZT0nZ2xvYmFscycgdHlwZT0naW50Jy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbElzQmFzZUNoYXJHcm91cCcgZmlsZT0nY2h2YWxpZCcgdHlwZT0nY29uc3QgeG1sQ2hSYW5nZUdyb3VwJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbElzQ2hhckdyb3VwJyBmaWxlPSdjaHZhbGlkJyB0eXBlPSdjb25zdCB4bWxDaFJhbmdlR3JvdXAnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sSXNDb21iaW5pbmdHcm91cCcgZmlsZT0nY2h2YWxpZCcgdHlwZT0nY29uc3QgeG1sQ2hSYW5nZUdyb3VwJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbElzRGlnaXRHcm91cCcgZmlsZT0nY2h2YWxpZCcgdHlwZT0nY29uc3QgeG1sQ2hSYW5nZUdyb3VwJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbElzRXh0ZW5kZXJHcm91cCcgZmlsZT0nY2h2YWxpZCcgdHlwZT0nY29uc3QgeG1sQ2hSYW5nZUdyb3VwJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbElzSWRlb2dyYXBoaWNHcm91cCcgZmlsZT0nY2h2YWxpZCcgdHlwZT0nY29uc3QgeG1sQ2hSYW5nZUdyb3VwJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbElzUHViaWRDaGFyX3RhYicgZmlsZT0nY2h2YWxpZCcgdHlwZT0nY29uc3QgdW5zaWduZWQgY2hhcnhtbElzUHViaWRDaGFyX3RhYlsyNTZdJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUnIGZpbGU9J2dsb2JhbHMnIHR5cGU9J2ludCcvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxMYXN0RXJyb3InIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbEVycm9yJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSdpbnQnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZScgZmlsZT0nZ2xvYmFscycgdHlwZT0naW50Jy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbE1hbGxvYycgZmlsZT0nZ2xvYmFscycgdHlwZT0neG1sTWFsbG9jRnVuYycvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxNYWxsb2NBdG9taWMnIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbE1hbGxvY0Z1bmMnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sTWVtU3RyZHVwJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSd4bWxTdHJkdXBGdW5jJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUnIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYycvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSdpbnQnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYycvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxQYXJzZXJNYXhEZXB0aCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyB0eXBlPSd1bnNpZ25lZCBpbnQnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sUGFyc2VyVmVyc2lvbicgZmlsZT0nZ2xvYmFscycgdHlwZT0nY29uc3QgY2hhciAqJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSdpbnQnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sUmVhbGxvYycgZmlsZT0nZ2xvYmFscycgdHlwZT0neG1sUmVhbGxvY0Z1bmMnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyB0eXBlPSd4bWxSZWdpc3Rlck5vZGVGdW5jJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbFNhdmVOb0VtcHR5VGFncycgZmlsZT0nZ2xvYmFscycgdHlwZT0naW50Jy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbFN0cmluZ0NvbW1lbnQnIGZpbGU9J3BhcnNlckludGVybmFscycgdHlwZT0nY29uc3QgeG1sQ2hhcnhtbFN0cmluZ0NvbW1lbnRbXScvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxTdHJpbmdUZXh0JyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIHR5cGU9J2NvbnN0IHhtbENoYXJ4bWxTdHJpbmdUZXh0W10nLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sU3RyaW5nVGV4dE5vZW5jJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIHR5cGU9J2NvbnN0IHhtbENoYXJ4bWxTdHJpbmdUZXh0Tm9lbmNbXScvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxTdHJ1Y3R1cmVkRXJyb3InIGZpbGU9J2dsb2JhbHMnIHR5cGU9J3htbFN0cnVjdHVyZWRFcnJvckZ1bmMnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sU3RydWN0dXJlZEVycm9yQ29udGV4dCcgZmlsZT0nZ2xvYmFscycgdHlwZT0ndm9pZCAqJy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZScgZmlsZT0nZ2xvYmFscycgdHlwZT0naW50Jy8+CisgICAgPHZhcmlhYmxlIG5hbWU9J3htbFRyZWVJbmRlbnRTdHJpbmcnIGZpbGU9J2dsb2JhbHMnIHR5cGU9J2NvbnN0IGNoYXIgKicvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxYUGF0aE5BTicgZmlsZT0neHBhdGgnIHR5cGU9J2RvdWJsZScvPgorICAgIDx2YXJpYWJsZSBuYW1lPSd4bWxYUGF0aE5JTkYnIGZpbGU9J3hwYXRoJyB0eXBlPSdkb3VibGUnLz4KKyAgICA8dmFyaWFibGUgbmFtZT0neG1sWFBhdGhQSU5GJyBmaWxlPSd4cGF0aCcgdHlwZT0nZG91YmxlJy8+CisgICAgPGZ1bmN0aW9uIG5hbWU9J1VURjhUb0h0bWwnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBBU0NJSSBwbHVzIEhUTUwgZW50aXRpZXMgYmxvY2sgb2YgY2hhcnMgb3V0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywgb3IgLTEgb3RoZXJ3aXNlIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGFzIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLicvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J3Vuc2lnbmVkIGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0bGVuJyB0eXBlPSdpbnQgKicgaW5mbz0ndGhlIGxlbmd0aCBvZiBAb3V0Jy8+CisgICAgICA8YXJnIG5hbWU9J2luJyB0eXBlPSdjb25zdCB1bnNpZ25lZCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycycvPgorICAgICAgPGFyZyBuYW1lPSdpbmxlbicgdHlwZT0naW50IConIGluZm89J3RoZSBsZW5ndGggb2YgQGluJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nVVRGOFRvaXNvbGF0MScgZmlsZT0nZW5jb2RpbmcnIG1vZHVsZT0nZW5jb2RpbmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBJU08gTGF0aW4gMSBibG9jayBvZiBjaGFycyBvdXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBpZiBzdWNjZXNzLCAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMsIG9yIC0xIG90aGVyd2lzZSBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZCBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGFibGUuIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0JyB0eXBlPSd1bnNpZ25lZCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0Jy8+CisgICAgICA8YXJnIG5hbWU9J291dGxlbicgdHlwZT0naW50IConIGluZm89J3RoZSBsZW5ndGggb2YgQG91dCcvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0nY29uc3QgdW5zaWduZWQgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnMnLz4KKyAgICAgIDxhcmcgbmFtZT0naW5sZW4nIHR5cGU9J2ludCAqJyBpbmZvPSd0aGUgbGVuZ3RoIG9mIEBpbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2F0dHJpYnV0ZScgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5IYW5kbGUgYW4gYXR0cmlidXRlIHRoYXQgaGFzIGJlZW4gcmVhZCBieSB0aGUgcGFyc2VyLiBUaGUgZGVmYXVsdCBoYW5kbGluZyBpcyB0byBjb252ZXJ0IHRoZSBhdHRyaWJ1dGUgaW50byBhbiBET00gc3VidHJlZSBhbmQgcGFzdCBpdCBpbiBhIG5ldyB4bWxBdHRyIGVsZW1lbnQgYWRkZWQgdG8gdGhlIGVsZW1lbnQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyQXR0cmlidXRlKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVsbG5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIGF0dHJpYnV0ZSBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgYXR0cmlidXRlIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nYXR0cmlidXRlRGVjbCcgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJBdHRyaWJ1dGVEZWNsKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgZWxlbWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdmdWxsbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0naW50JyBpbmZvPSd0aGUgYXR0cmlidXRlIHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVmJyB0eXBlPSdpbnQnIGluZm89J3RoZSB0eXBlIG9mIGRlZmF1bHQgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVmYXVsdFZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgZGVmYXVsdCB2YWx1ZScvPgorICAgICAgPGFyZyBuYW1lPSd0cmVlJyB0eXBlPSd4bWxFbnVtZXJhdGlvblB0cicgaW5mbz0ndGhlIHRyZWUgb2YgZW51bWVyYXRlZCB2YWx1ZSBzZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSdhdHRyaWJ1dGVEZWNsU0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5BbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVsbG5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGF0dHJpYnV0ZSB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J2RlZicgdHlwZT0naW50JyBpbmZvPSd0aGUgdHlwZSBvZiBkZWZhdWx0IHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J2RlZmF1bHRWYWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIGRlZmF1bHQgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJlZScgdHlwZT0neG1sRW51bWVyYXRpb25QdHInIGluZm89J3RoZSB0cmVlIG9mIGVudW1lcmF0ZWQgdmFsdWUgc2V0Jy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nYXR0cmlidXRlU0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5IYW5kbGUgYW4gYXR0cmlidXRlIHRoYXQgaGFzIGJlZW4gcmVhZCBieSB0aGUgcGFyc2VyLiBUaGUgZGVmYXVsdCBoYW5kbGluZyBpcyB0byBjb252ZXJ0IHRoZSBhdHRyaWJ1dGUgaW50byBhbiBET00gc3VidHJlZSBhbmQgcGFzdCBpdCBpbiBhIG5ldyB4bWxBdHRyIGVsZW1lbnQgYWRkZWQgdG8gdGhlIGVsZW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIGF0dHJpYnV0ZSBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgYXR0cmlidXRlIHZhbHVlJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nY2RhdGFCbG9jaycgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5jYWxsZWQgd2hlbiBhIHBjZGF0YSBibG9jayBoYXMgYmVlbiBwYXJzZWQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJDRGF0YUJsb2NrKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHBjZGF0YSBjb250ZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgYmxvY2sgbGVuZ3RoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nY2RhdGFCbG9ja1NBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+Q2FsbGVkIHdoZW4gYSBwY2RhdGEgYmxvY2sgaGFzIGJlZW4gcGFyc2VkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgcGNkYXRhIGNvbnRlbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBibG9jayBsZW5ndGgnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdjaGFyYWN0ZXJzJyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnJlY2VpdmluZyBzb21lIGNoYXJzIGZyb20gdGhlIHBhcnNlci4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJDaGFyYWN0ZXJzKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSB4bWxDaGFyIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiB4bWxDaGFyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nY2hhcmFjdGVyc1NBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+UmVjZWl2aW5nIHNvbWUgY2hhcnMgZnJvbSB0aGUgcGFyc2VyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSdjaCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHhtbENoYXIgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIHhtbENoYXInLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdjaGVja05hbWVzcGFjZScgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB0aGF0IHRoZSBjdXJyZW50IGVsZW1lbnQgbmFtZXNwYWNlIGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUgcmVhZCB1cG9uIHBhcnNpbmcuIERFUFJFQ0FURUQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWVzcGFjZScgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIHRvIGNoZWNrIGFnYWluc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdjb21tZW50JyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkEgY29tbWVudCBoYXMgYmVlbiBwYXJzZWQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyQ29tbWVudCgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBjb21tZW50IGNvbnRlbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSdjb21tZW50U0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5BIGNvbW1lbnQgaGFzIGJlZW4gcGFyc2VkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgY29tbWVudCBjb250ZW50Jy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0JyBmaWxlPSdET0NCcGFyc2VyJyBtb2R1bGU9J0RPQ0JwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhIGZpbGUgY29udGVudC4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2RvY2JQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBTR01MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0JyBmaWxlPSdET0NCcGFyc2VyJyBtb2R1bGU9J0RPQ0JwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciB1c2luZyB0aGUgRG9jQm9vayBTR01MIHBhcnNlciBpbiBwdXNoIG1vZGUgVG8gYWxsb3cgY29udGVudCBlbmNvZGluZyBkZXRlY3Rpb24sIEBzaXplIHNob3VsZCBiZSAmZ3Q7PSA0IFRoZSB2YWx1ZSBvZiBAZmlsZW5hbWUgaXMgdXNlZCBmb3IgZmV0Y2hpbmcgZXh0ZXJuYWwgZW50aXRpZXMgYW5kIGVycm9yL3dhcm5pbmcgcmVwb3J0cy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2RvY2JQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSdkb2NiU0FYSGFuZGxlclB0cicgaW5mbz0nYSBTQVggaGFuZGxlcicvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyX2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzJy8+CisgICAgICA8YXJnIG5hbWU9J2NodW5rJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiBjaGFycycvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J251bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYW4gb3B0aW9uYWwgZmlsZSBuYW1lIG9yIFVSSScvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nYW4gb3B0aW9uYWwgZW5jb2RpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgU0FYIGhhbmRsZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdkb2NiRW5jb2RlRW50aXRpZXMnIGZpbGU9J0RPQ0JwYXJzZXInIG1vZHVsZT0nRE9DQnBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBBU0NJSSBwbHVzIFNHTUwgZW50aXRpZXMgYmxvY2sgb2YgY2hhcnMgb3V0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywgb3IgLTEgb3RoZXJ3aXNlIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGFzIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLicvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J3Vuc2lnbmVkIGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0bGVuJyB0eXBlPSdpbnQgKicgaW5mbz0ndGhlIGxlbmd0aCBvZiBAb3V0Jy8+CisgICAgICA8YXJnIG5hbWU9J2luJyB0eXBlPSdjb25zdCB1bnNpZ25lZCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycycvPgorICAgICAgPGFyZyBuYW1lPSdpbmxlbicgdHlwZT0naW50IConIGluZm89J3RoZSBsZW5ndGggb2YgQGluJy8+CisgICAgICA8YXJnIG5hbWU9J3F1b3RlQ2hhcicgdHlwZT0naW50JyBpbmZvPSd0aGUgcXVvdGUgY2hhcmFjdGVyIHRvIGVzY2FwZSAoJmFwb3M7IG9yICZxdW90Oykgb3IgemVyby4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdkb2NiRnJlZVBhcnNlckN0eHQnIGZpbGU9J0RPQ0JwYXJzZXInIG1vZHVsZT0nRE9DQnBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSBhbGwgdGhlIG1lbW9yeSB1c2VkIGJ5IGEgcGFyc2VyIGNvbnRleHQuIEhvd2V2ZXIgdGhlIHBhcnNlZCBkb2N1bWVudCBpbiBjdHh0LSZndDtteURvYyBpcyBub3QgZnJlZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2RvY2JQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBTR01MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZG9jYlBhcnNlQ2h1bmsnIGZpbGU9J0RPQ0JwYXJzZXInIG1vZHVsZT0nRE9DQnBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UGFyc2UgYSBDaHVuayBvZiBtZW1vcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nemVybyBpZiBubyBlcnJvciwgdGhlIHhtbFBhcnNlckVycm9ycyBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2RvY2JQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2h1bmsnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYW4gY2hhciBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIGluIGJ5dGUgb2YgdGhlIGNodW5rJy8+CisgICAgICA8YXJnIG5hbWU9J3Rlcm1pbmF0ZScgdHlwZT0naW50JyBpbmZvPSdsYXN0IGNodW5rIGluZGljYXRvcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2RvY2JQYXJzZURvYycgZmlsZT0nRE9DQnBhcnNlcicgbW9kdWxlPSdET0NCcGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBTR01MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nZG9jYkRvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcicvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBTR01MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZG9jYlBhcnNlRG9jdW1lbnQnIGZpbGU9J0RPQ0JwYXJzZXInIG1vZHVsZT0nRE9DQnBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gU0dNTCBkb2N1bWVudCAoYW5kIGJ1aWxkIGEgdHJlZSBpZiB1c2luZyB0aGUgc3RhbmRhcmQgU0FYIGludGVyZmFjZSkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAsIC0xIGluIGNhc2Ugb2YgZXJyb3IuIHRoZSBwYXJzZXIgY29udGV4dCBpcyBhdWdtZW50ZWQgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2RvY2JQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBTR01MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZG9jYlBhcnNlRmlsZScgZmlsZT0nRE9DQnBhcnNlcicgbW9kdWxlPSdET0NCcGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhIERvY2Jvb2sgU0dNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdkb2NiRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdkb2NiU0FYUGFyc2VEb2MnIGZpbGU9J0RPQ0JwYXJzZXInIG1vZHVsZT0nRE9DQnBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gU0dNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdkb2NiRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIFNHTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSdkb2NiU0FYSGFuZGxlclB0cicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyIGJsb2NrJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJEYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2lmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2RvY2JTQVhQYXJzZUZpbGUnIGZpbGU9J0RPQ0JwYXJzZXInIG1vZHVsZT0nRE9DQnBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gU0dNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIEl0IHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4gSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nZG9jYkRvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBTR01MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J3NheCcgdHlwZT0nZG9jYlNBWEhhbmRsZXJQdHInIGluZm89J3RoZSBTQVggaGFuZGxlciBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyRGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdpZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdlbGVtZW50RGVjbCcgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BbiBlbGVtZW50IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyRWxlbWVudERlY2woKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0naW50JyBpbmZvPSd0aGUgZWxlbWVudCB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J3htbEVsZW1lbnRDb250ZW50UHRyJyBpbmZvPSd0aGUgZWxlbWVudCB2YWx1ZSB0cmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nZWxlbWVudERlY2xTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkFuIGVsZW1lbnQgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVsZW1lbnQgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSd0eXBlJyB0eXBlPSdpbnQnIGluZm89J3RoZSBlbGVtZW50IHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0neG1sRWxlbWVudENvbnRlbnRQdHInIGluZm89J3RoZSBlbGVtZW50IHZhbHVlIHRyZWUnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdlbmREb2N1bWVudCcgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5jYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkVuZERvY3VtZW50KCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSdlbmREb2N1bWVudFNBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+Q2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdlbmRFbGVtZW50JyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFbmRFbGVtZW50KCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgZWxlbWVudCBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nZW5kRWxlbWVudE5zU0FYMkZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+U0FYMiBjYWxsYmFjayB3aGVuIGFuIGVsZW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkIGJ5IHRoZSBwYXJzZXIuIEl0IHByb3ZpZGVzIHRoZSBuYW1lc3BhY2UgaW5mb3JtYXRpb25zIGZvciB0aGUgZWxlbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbG9jYWxuYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBsb2NhbCBuYW1lIG9mIHRoZSBlbGVtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVsZW1lbnQgbmFtZXNwYWNlIG5hbWUgaWYgYXZhaWxhYmxlJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nZW5kRWxlbWVudFNBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+Q2FsbGVkIHdoZW4gdGhlIGVuZCBvZiBhbiBlbGVtZW50IGhhcyBiZWVuIGRldGVjdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBlbGVtZW50IG5hbWUnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdlbnRpdHlEZWNsJyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkVudGl0eURlY2woKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSd0eXBlJyB0eXBlPSdpbnQnIGluZm89J3RoZSBlbnRpdHkgdHlwZScvPgorICAgICAgPGFyZyBuYW1lPSdwdWJsaWNJZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nc3lzdGVtSWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSdlbnRpdHlEZWNsU0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5BbiBlbnRpdHkgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGVudGl0eSB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmxpY0lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdzeXN0ZW1JZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgZW50aXR5IHZhbHVlICh3aXRob3V0IHByb2Nlc3NpbmcpLicvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0eXBlIG5hbWU9J2Vycm9yU0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5EaXNwbGF5IGFuZCBmb3JtYXQgYW4gZXJyb3IgbWVzc2FnZXMsIGNhbGxiYWNrLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0Jy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5Jy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZXh0ZXJuYWxTdWJzZXQnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2FsbGJhY2sgb24gZXh0ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkV4dGVybmFsU3Vic2V0KCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcm9vdCBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZXh0ZXJuYWwgSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nZXh0ZXJuYWxTdWJzZXRTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIG9uIGV4dGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcm9vdCBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZXh0ZXJuYWwgSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nZmF0YWxFcnJvclNBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+RGlzcGxheSBhbmQgZm9ybWF0IGZhdGFsIGVycm9yIG1lc3NhZ2VzLCBjYWxsYmFjay4gTm90ZTogc28gZmFyIGZhdGFsRXJyb3IoKSBTQVggY2FsbGJhY2tzIGFyZSBub3QgdXNlZCwgZXJyb3IoKSBnZXQgYWxsIHRoZSBjYWxsYmFja3MgZm9yIGVycm9ycy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdtc2cnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdCcvPgorICAgICAgPGFyZyBuYW1lPScuLi4nIHR5cGU9Jy4uLicgaW5mbz0nZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0eXBlIG5hbWU9J2Z0cERhdGFDYWxsYmFjaycgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkEgY2FsbGJhY2sgZm9yIHRoZSB4bWxOYW5vRlRQR2V0IGNvbW1hbmQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJEYXRhJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIHByb3ZpZGVkIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZGF0YSByZWNlaXZlZCcvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0naXRzIHNpemUgaW4gYnl0ZXMnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSdmdHBMaXN0Q2FsbGJhY2snIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BIGNhbGxiYWNrIGZvciB0aGUgeG1sTmFub0ZUUExpc3QgY29tbWFuZC4gTm90ZSB0aGF0IG9ubHkgb25lIG9mIHllYXIgYW5kIGRheTptaW51dGUgYXJlIHNwZWNpZmllZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlckRhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndXNlciBwcm92aWRlZCBkYXRhIGZvciB0aGUgY2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGUgbmFtZSAoaW5jbHVkaW5nICZxdW90Oy0mZ3Q7JnF1b3Q7IHdoZW4gbGlua3MgYXJlIHNob3duKScvPgorICAgICAgPGFyZyBuYW1lPSdhdHRyaWInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3duZXInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG93bmVyIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdncm91cCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZ3JvdXAgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89J3RoZSBmaWxlIHNpemUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGlua3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxpbmsgY291bnQnLz4KKyAgICAgIDxhcmcgbmFtZT0neWVhcicgdHlwZT0naW50JyBpbmZvPSd0aGUgeWVhcicvPgorICAgICAgPGFyZyBuYW1lPSdtb250aCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbW9udGgnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF5JyB0eXBlPSdpbnQnIGluZm89J3RoZSBkYXknLz4KKyAgICAgIDxhcmcgbmFtZT0naG91cicgdHlwZT0naW50JyBpbmZvPSd0aGUgaG91cicvPgorICAgICAgPGFyZyBuYW1lPSdtaW51dGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG1pbnV0ZScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2dldENvbHVtbk51bWJlcicgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qcm92aWRlIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBjdXJyZW50IHBhcnNpbmcgcG9pbnQuIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyR2V0Q29sdW1uTnVtYmVyKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nYW4gaW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZ2V0RW50aXR5JyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkdldCBhbiBlbnRpdHkgYnkgbmFtZSBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldEVudGl0eSgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J3RoZSB4bWxFbnRpdHlQdHIgaWYgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIGVudGl0eSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nZ2V0RW50aXR5U0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5HZXQgYW4gZW50aXR5IGJ5IG5hbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J3RoZSB4bWxFbnRpdHlQdHIgaWYgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIGVudGl0eSBuYW1lJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZ2V0TGluZU51bWJlcicgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qcm92aWRlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50LiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldExpbmVOdW1iZXIoKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSdhbiBpbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdnZXROYW1lc3BhY2UnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IHRoZSBjdXJyZW50IGVsZW1lbnQgbmFtZXNwYWNlLiBERVBSRUNBVEVEPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOc1B0cicgaW5mbz0ndGhlIHhtbE5zUHRyIG9yIE5VTEwgaWYgbm9uZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2dldFBhcmFtZXRlckVudGl0eScgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgYSBwYXJhbWV0ZXIgZW50aXR5IGJ5IG5hbWUgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkoKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW50aXR5UHRyJyBpbmZvPSd0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J2dldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+R2V0IGEgcGFyYW1ldGVyIGVudGl0eSBieSBuYW1lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW50aXR5UHRyJyBpbmZvPSd0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2dldFB1YmxpY0lkJyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByb3ZpZGVzIHRoZSBwdWJsaWMgSUQgZS5nLiAmcXVvdDstLy9TR01MU09VUkNFLy9EVEQgREVNTy8vRU4mcXVvdDsgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRQdWJsaWNJZCgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgeG1sQ2hhciAqJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nZ2V0U3lzdGVtSWQnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdmlkZXMgdGhlIHN5c3RlbSBJRCwgYmFzaWNhbGx5IFVSTCBvciBmaWxlbmFtZSBlLmcuIGh0dHA6Ly93d3cuc2dtbHNvdXJjZS5jb20vZHRkcy9tZW1vLmR0ZCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldFN5c3RlbUlkKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSB4bWxDaGFyIConLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdnbG9iYWxOYW1lc3BhY2UnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QW4gb2xkIGdsb2JhbCBuYW1lc3BhY2UgaGFzIGJlZW4gcGFyc2VkLiBERVBSRUNBVEVEPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2hyZWYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIFVSTicvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSBwcmVmaXgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdoYXNFeHRlcm5hbFN1YnNldCcgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Eb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGV4dGVybmFsIHN1YnNldCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0KCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0naGFzRXh0ZXJuYWxTdWJzZXRTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0PzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdoYXNJbnRlcm5hbFN1YnNldCcgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Eb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGludGVybmFsIHN1YnNldCBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0KCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0naGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkRvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sQXR0ckFsbG93ZWQnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2tzIHdoZXRoZXIgYW4gYXR0cmlidXRlIGlzIHZhbGlkIGZvciBhbiBlbGVtZW50IEhhcyBmdWxsIGtub3dsZWRnZSBvZiBSZXF1aXJlZCBhbmQgRGVwcmVjYXRlZCBhdHRyaWJ1dGVzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sU3RhdHVzJyBpbmZvPSdvbmUgb2YgSFRNTF9SRVFVSVJFRCwgSFRNTF9WQUxJRCwgSFRNTF9ERVBSRUNBVEVELCBIVE1MX0lOVkFMSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWx0JyB0eXBlPSdjb25zdCBodG1sRWxlbURlc2MgKicgaW5mbz0nSFRNTCBlbGVtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2F0dHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nSFRNTCBhdHRyaWJ1dGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVnYWN5JyB0eXBlPSdpbnQnIGluZm89J3doZXRoZXIgdG8gYWxsb3cgZGVwcmVjYXRlZCBhdHRyaWJ1dGVzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbEF1dG9DbG9zZVRhZycgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGUgSFRNTCBEVEQgYWxsb3dzIGEgdGFnIHRvIGltcGxpY2l0bHkgY2xvc2Ugb3RoZXIgdGFncy4gVGhlIGxpc3QgaXMga2VwdCBpbiBodG1sU3RhcnRDbG9zZSBhcnJheS4gVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGVsZW1lbnQgb3Igb25lIG9mIGl0JmFwb3M7cyBjaGlsZHJlbiB3b3VsZCBhdXRvY2xvc2UgdGhlIGdpdmVuIHRhZy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBhdXRvY2xvc2UsIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0naHRtbERvY1B0cicgaW5mbz0ndGhlIEhUTUwgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgdGFnIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0naHRtbE5vZGVQdHInIGluZm89J3RoZSBIVE1MIGVsZW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYSBmaWxlIGNvbnRlbnQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGFuIEhUTUwgaW4tbWVtb3J5IGRvY3VtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdidWZmZXInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIG9mIHRoZSBhcnJheScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCcgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9QVVNIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIHVzaW5nIHRoZSBIVE1MIHBhcnNlciBpbiBwdXNoIG1vZGUgVGhlIHZhbHVlIG9mIEBmaWxlbmFtZSBpcyB1c2VkIGZvciBmZXRjaGluZyBleHRlcm5hbCBlbnRpdGllcyBhbmQgZXJyb3Ivd2FybmluZyByZXBvcnRzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdzYXgnIHR5cGU9J2h0bWxTQVhIYW5kbGVyUHRyJyBpbmZvPSdhIFNBWCBoYW5kbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJfZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2h1bmsnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGNoYXJzJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0nbnVtYmVyIG9mIGNoYXJzIGluIHRoZSBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJJy8+CisgICAgICA8YXJnIG5hbWU9J2VuYycgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdhbiBvcHRpb25hbCBlbmNvZGluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxDdHh0UmVhZERvYycgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2h0bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBIVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbEN0eHRSZWFkRmQnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0naHRtbFBhcnNlckN0eHRQdHInIGluZm89J2FuIEhUTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmQnIHR5cGU9J2ludCcgaW5mbz0nYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3InLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sQ3R4dFJlYWRGaWxlJyBmaWxlPSdIVE1McGFyc2VyJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0gb3IgdGhlIG5ldHdvcmsuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2h0bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBIVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZmlsZSBvciBVUkwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbEN0eHRSZWFkSU8nIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gSFRNTCBkb2N1bWVudCBmcm9tIEkvTyBmdW5jdGlvbnMgYW5kIHNvdXJjZSBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSdodG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gSFRNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdpb3JlYWQnIHR5cGU9J3htbElucHV0UmVhZENhbGxiYWNrJyBpbmZvPSdhbiBJL08gcmVhZCBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2Nsb3NlJyB0eXBlPSd4bWxJbnB1dENsb3NlQ2FsbGJhY2snIGluZm89J2FuIEkvTyBjbG9zZSBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJL08gaGFuZGxlcicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxDdHh0UmVhZE1lbW9yeScgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2h0bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBIVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgb2YgdGhlIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbEN0eHRSZXNldCcgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZXNldCBhIHBhcnNlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2h0bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBIVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbEN0eHRVc2VPcHRpb25zJyBmaWxlPSdIVE1McGFyc2VyJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFwcGxpZXMgdGhlIG9wdGlvbnMgdG8gdGhlIHBhcnNlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCB0aGUgc2V0IG9mIHVua25vd24gb3IgdW5pbXBsZW1lbnRlZCBvcHRpb25zIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2h0bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBIVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCcgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IFNBWCBoYW5kbGVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0JyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1MdHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBIVE1MIGRvY3VtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIEhUTUwgYnVmZmVyIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBlbmNvZGluZyBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdpbnQnIGluZm89J3Nob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbERvY0NvbnRlbnREdW1wT3V0cHV0JyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1MdHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBIVE1MIGRvY3VtZW50LiBGb3JtYXRpbmcgcmV0dXJuL3NwYWNlcyBhcmUgYWRkZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSd0aGUgSFRNTCBidWZmZXIgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGVuY29kaW5nIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxEb2NEdW1wJyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1MdHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBIVE1MIGRvY3VtZW50IHRvIGFuIG9wZW4gRklMRS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLicvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBGSUxFKicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbERvY0R1bXBNZW1vcnknIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUx0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIEhUTUwgZG9jdW1lbnQgaW4gbWVtb3J5IGFuZCByZXR1cm4gdGhlIHhtbENoYXIgKiBhbmQgaXQmYXBvcztzIHNpemUuIEl0JmFwb3M7cyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdtZW0nIHR5cGU9J3htbENoYXIgKionIGluZm89J09VVDogdGhlIG1lbW9yeSBwb2ludGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCAqJyBpbmZvPSdPVVQ6IHRoZSBtZW1vcnkgbGVuZ3RoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbERvY0R1bXBNZW1vcnlGb3JtYXQnIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUx0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIEhUTUwgZG9jdW1lbnQgaW4gbWVtb3J5IGFuZCByZXR1cm4gdGhlIHhtbENoYXIgKiBhbmQgaXQmYXBvcztzIHNpemUuIEl0JmFwb3M7cyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdtZW0nIHR5cGU9J3htbENoYXIgKionIGluZm89J09VVDogdGhlIG1lbW9yeSBwb2ludGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCAqJyBpbmZvPSdPVVQ6IHRoZSBtZW1vcnkgbGVuZ3RoJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0naW50JyBpbmZvPSdzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxFbGVtZW50QWxsb3dlZEhlcmUnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2tzIHdoZXRoZXIgYW4gSFRNTCBlbGVtZW50IG1heSBiZSBhIGRpcmVjdCBjaGlsZCBvZiBhIHBhcmVudCBlbGVtZW50LiBOb3RlIC0gZG9lc24mYXBvczt0IGNoZWNrIGZvciBkZXByZWNhdGVkIGVsZW1lbnRzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgYWxsb3dlZDsgMCBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J3BhcmVudCcgdHlwZT0nY29uc3QgaHRtbEVsZW1EZXNjIConIGluZm89J0hUTUwgcGFyZW50IGVsZW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWx0JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J0hUTUwgZWxlbWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxFbGVtZW50U3RhdHVzSGVyZScgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVja3Mgd2hldGhlciBhbiBIVE1MIGVsZW1lbnQgbWF5IGJlIGEgZGlyZWN0IGNoaWxkIG9mIGEgcGFyZW50IGVsZW1lbnQuIGFuZCBpZiBzbyB3aGV0aGVyIGl0IGlzIHZhbGlkIG9yIGRlcHJlY2F0ZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sU3RhdHVzJyBpbmZvPSdvbmUgb2YgSFRNTF9WQUxJRCwgSFRNTF9ERVBSRUNBVEVELCBIVE1MX0lOVkFMSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncGFyZW50JyB0eXBlPSdjb25zdCBodG1sRWxlbURlc2MgKicgaW5mbz0nSFRNTCBwYXJlbnQgZWxlbWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbHQnIHR5cGU9J2NvbnN0IGh0bWxFbGVtRGVzYyAqJyBpbmZvPSdIVE1MIGVsZW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sRW5jb2RlRW50aXRpZXMnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBBU0NJSSBwbHVzIEhUTUwgZW50aXRpZXMgYmxvY2sgb2YgY2hhcnMgb3V0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywgb3IgLTEgb3RoZXJ3aXNlIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGFzIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4gVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLicvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J3Vuc2lnbmVkIGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0bGVuJyB0eXBlPSdpbnQgKicgaW5mbz0ndGhlIGxlbmd0aCBvZiBAb3V0Jy8+CisgICAgICA8YXJnIG5hbWU9J2luJyB0eXBlPSdjb25zdCB1bnNpZ25lZCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycycvPgorICAgICAgPGFyZyBuYW1lPSdpbmxlbicgdHlwZT0naW50IConIGluZm89J3RoZSBsZW5ndGggb2YgQGluJy8+CisgICAgICA8YXJnIG5hbWU9J3F1b3RlQ2hhcicgdHlwZT0naW50JyBpbmZvPSd0aGUgcXVvdGUgY2hhcmFjdGVyIHRvIGVzY2FwZSAoJmFwb3M7IG9yICZxdW90Oykgb3IgemVyby4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sRW50aXR5TG9va3VwJyBmaWxlPSdIVE1McGFyc2VyJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkxvb2t1cCB0aGUgZ2l2ZW4gZW50aXR5IGluIEVudGl0aWVzVGFibGUgIFRPRE86IHRoZSBsaW5lYXIgc2NhbiBpcyByZWFsbHkgdWdseSwgYW4gaGFzaCB0YWJsZSBpcyByZWFsbHkgbmVlZGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgaHRtbEVudGl0eURlc2MgKicgaW5mbz0ndGhlIGFzc29jaWF0ZWQgaHRtbEVudGl0eURlc2NQdHIgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlLicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxFbnRpdHlWYWx1ZUxvb2t1cCcgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb29rdXAgdGhlIGdpdmVuIGVudGl0eSBpbiBFbnRpdGllc1RhYmxlICBUT0RPOiB0aGUgbGluZWFyIHNjYW4gaXMgcmVhbGx5IHVnbHksIGFuIGhhc2ggdGFibGUgaXMgcmVhbGx5IG5lZWRlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IGh0bWxFbnRpdHlEZXNjIConIGluZm89J3RoZSBhc3NvY2lhdGVkIGh0bWxFbnRpdHlEZXNjUHRyIGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0ndGhlIGVudGl0eSZhcG9zO3MgdW5pY29kZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxGcmVlUGFyc2VyQ3R4dCcgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GcmVlIGFsbCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBwYXJzZXIgY29udGV4dC4gSG93ZXZlciB0aGUgcGFyc2VkIGRvY3VtZW50IGluIGN0eHQtJmd0O215RG9jIGlzIG5vdCBmcmVlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0naHRtbFBhcnNlckN0eHRQdHInIGluZm89J2FuIEhUTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sR2V0TWV0YUVuY29kaW5nJyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1MdHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RW5jb2RpbmcgZGVmaW5pdGlvbiBsb29rdXAgaW4gdGhlIE1ldGEgdGFnczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgY3VycmVudCBlbmNvZGluZyBhcyBmbGFnZ2VkIGluIHRoZSBIVE1MIHNvdXJjZScvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxIYW5kbGVPbWl0dGVkRWxlbScgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGhhbmRsaW5nIEhUTUwgb21pdHRlZCB0YWdzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbGFzdCB2YWx1ZSBmb3IgMCBmb3Igbm8gaGFuZGxpbmcsIDEgZm9yIGF1dG8gaW5zZXJ0aW9uLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2ludCcgaW5mbz0naW50IDAgb3IgMScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxJbml0QXV0b0Nsb3NlJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW5pdGlhbGl6ZSB0aGUgaHRtbFN0YXJ0Q2xvc2VJbmRleCBmb3IgZmFzdCBsb29rdXAgb2YgY2xvc2luZyB0YWdzIG5hbWVzLiBUaGlzIGlzIG5vdCByZWVudHJhbnQuIENhbGwgeG1sSW5pdFBhcnNlcigpIG9uY2UgYmVmb3JlIHByb2Nlc3NpbmcgaW4gY2FzZSBvZiB1c2UgaW4gbXVsdGl0aHJlYWRlZCBwcm9ncmFtcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sSXNBdXRvQ2xvc2VkJyBmaWxlPSdIVE1McGFyc2VyJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBIVE1MIERURCBhbGxvd3MgYSB0YWcgdG8gaW1wbGljaXRseSBjbG9zZSBvdGhlciB0YWdzLiBUaGUgbGlzdCBpcyBrZXB0IGluIGh0bWxTdGFydENsb3NlIGFycmF5LiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBhIHRhZyBpcyBhdXRvY2xvc2VkIGJ5IG9uZSBvZiBpdCZhcG9zO3MgY2hpbGQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBhdXRvY2xvc2VkLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSBIVE1MIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J2h0bWxOb2RlUHRyJyBpbmZvPSd0aGUgSFRNTCBlbGVtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbElzQm9vbGVhbkF0dHInIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUx0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZXRlcm1pbmUgaWYgYSBnaXZlbiBhdHRyaWJ1dGUgaXMgYSBib29sZWFuIGF0dHJpYnV0ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nZmFsc2UgaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgYm9vbGVhbiwgdHJ1ZSBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0byBjaGVjaycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxJc1NjcmlwdEF0dHJpYnV0ZScgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayBpZiBhbiBhdHRyaWJ1dGUgaXMgb2YgY29udGVudCB0eXBlIFNjcmlwdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlzIHRoZSBhdHRyaWJ1dGUgaXMgYSBzY3JpcHQgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhbiBhdHRyaWJ1dGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxOZXdEb2MnIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZXMgYSBuZXcgSFRNTCBkb2N1bWVudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbERvY1B0cicgaW5mbz0nYSBuZXcgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1VSSSBmb3IgdGhlIGR0ZCwgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdFeHRlcm5hbElEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBleHRlcm5hbCBJRCBvZiB0aGUgRFRELCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbE5ld0RvY05vRHREJyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGVzIGEgbmV3IEhUTUwgZG9jdW1lbnQgd2l0aG91dCBhIERURCBub2RlIGlmIEBVUkkgYW5kIEBFeHRlcm5hbElEIGFyZSBOVUxMPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sRG9jUHRyJyBpbmZvPSdhIG5ldyBkb2N1bWVudCwgZG8gbm90IGluaXRpYWxpemUgdGhlIERURCBpZiBub3QgcHJvdmlkZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1VSSSBmb3IgdGhlIGR0ZCwgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdFeHRlcm5hbElEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBleHRlcm5hbCBJRCBvZiB0aGUgRFRELCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbE5ld1BhcnNlckN0eHQnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgcGFyc2VyIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIGh0bWxQYXJzZXJDdHh0UHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBhbGxvY2F0aW9uIGVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbE5vZGVEdW1wJyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1MdHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBIVE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLCBhbmQgZm9ybWF0dGluZyByZXR1cm5zIGFyZSBhZGRlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIEhUTUwgYnVmZmVyIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxOb2RlRHVtcEZpbGUnIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUx0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIEhUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91cixjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28sIGFuZCBmb3JtYXR0aW5nIHJldHVybnMgYXJlIGFkZGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgcG9pbnRlcicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQnIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUx0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIEhUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91cixjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28uICBUT0RPOiBpZiBlbmNvZGluZyA9PSBOVUxMIHRyeSB0byBzYXZlIGluIHRoZSBkb2MgZW5jb2Rpbmc8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLicvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgcG9pbnRlcicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdpbnQnIGluZm89J3Nob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0JyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1MdHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBIVE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIEhUTUwgYnVmZmVyIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZW5jb2Rpbmcgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0naW50JyBpbmZvPSdzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxOb2RlRHVtcE91dHB1dCcgZmlsZT0nSFRNTHRyZWUnIG1vZHVsZT0nSFRNTHRyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvbywgYW5kIGZvcm1hdHRpbmcgcmV0dXJucy9zcGFjZXMgYXJlIGFkZGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIEhUTUwgYnVmZmVyIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZW5jb2Rpbmcgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbE5vZGVTdGF0dXMnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2tzIHdoZXRoZXIgdGhlIHRyZWUgbm9kZSBpcyB2YWxpZC4gIEV4cGVyaW1lbnRhbCAodGhlIGF1dGhvciBvbmx5IHVzZXMgdGhlIEhUTUwgZW5oYW5jZW1lbnRzIGluIGEgU0FYIHBhcnNlcik8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2h0bWxTdGF0dXMnIGluZm89J2ZvciBFbGVtZW50IG5vZGVzLCBhIHJldHVybiBmcm9tIGh0bWxFbGVtZW50QWxsb3dlZEhlcmUgKGlmIGxlZ2FjeSBhbGxvd2VkKSBvciBodG1sRWxlbWVudFN0YXR1c0hlcmUgKG90aGVyd2lzZSkuIGZvciBBdHRyaWJ1dGUgbm9kZXMsIGEgcmV0dXJuIGZyb20gaHRtbEF0dHJBbGxvd2VkIGZvciBvdGhlciBub2RlcywgSFRNTF9OQSAobm8gY2hlY2tzIHBlcmZvcm1lZCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0nY29uc3QgaHRtbE5vZGVQdHInIGluZm89J2FuIGh0bWxOb2RlUHRyIGluIGEgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdsZWdhY3knIHR5cGU9J2ludCcgaW5mbz0nd2hldGhlciB0byBhbGxvdyBkZXByZWNhdGVkIGVsZW1lbnRzIChZRVMgaXMgZmFzdGVyIGhlcmUgZm9yIEVsZW1lbnQgbm9kZXMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbFBhcnNlQ2hhclJlZicgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBSZWZlcmVuY2UgZGVjbGFyYXRpb25zICBbNjZdIENoYXJSZWYgOjo9ICZhcG9zOyZhbXA7IyZhcG9zOyBbMC05XSsgJmFwb3M7OyZhcG9zOyB8ICZhcG9zOyZhbXA7I3gmYXBvczsgWzAtOWEtZkEtRl0rICZhcG9zOzsmYXBvczs8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIHZhbHVlIHBhcnNlZCAoYXMgYW4gaW50KScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSdodG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gSFRNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxQYXJzZUNodW5rJyBmaWxlPSdIVE1McGFyc2VyJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1BVU0hfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5QYXJzZSBhIENodW5rIG9mIG1lbW9yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd6ZXJvIGlmIG5vIGVycm9yLCB0aGUgeG1sUGFyc2VyRXJyb3JzIG90aGVyd2lzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0naHRtbFBhcnNlckN0eHRQdHInIGluZm89J2FuIEhUTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2h1bmsnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYW4gY2hhciBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIGluIGJ5dGUgb2YgdGhlIGNodW5rJy8+CisgICAgICA8YXJnIG5hbWU9J3Rlcm1pbmF0ZScgdHlwZT0naW50JyBpbmZvPSdsYXN0IGNodW5rIGluZGljYXRvcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxQYXJzZURvYycgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBIVE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcicvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbFBhcnNlRG9jdW1lbnQnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gSFRNTCBkb2N1bWVudCAoYW5kIGJ1aWxkIGEgdHJlZSBpZiB1c2luZyB0aGUgc3RhbmRhcmQgU0FYIGludGVyZmFjZSkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAsIC0xIGluIGNhc2Ugb2YgZXJyb3IuIHRoZSBwYXJzZXIgY29udGV4dCBpcyBhdWdtZW50ZWQgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2h0bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBIVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbFBhcnNlRWxlbWVudCcgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBIVE1MIGVsZW1lbnQsIHRoaXMgaXMgaGlnaGx5IHJlY3Vyc2l2ZSB0aGlzIGlzIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyBjb2RlIHZlcnNpb25zICBbMzldIGVsZW1lbnQgOjo9IEVtcHR5RWxlbVRhZyB8IFNUYWcgY29udGVudCBFVGFnICBbNDFdIEF0dHJpYnV0ZSA6Oj0gTmFtZSBFcSBBdHRWYWx1ZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSdodG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gSFRNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxQYXJzZUVudGl0eVJlZicgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBIVE1MIEVOVElUWSByZWZlcmVuY2VzICBbNjhdIEVudGl0eVJlZiA6Oj0gJmFwb3M7JmFtcDsmYXBvczsgTmFtZSAmYXBvczs7JmFwb3M7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCBodG1sRW50aXR5RGVzYyAqJyBpbmZvPSd0aGUgYXNzb2NpYXRlZCBodG1sRW50aXR5RGVzY1B0ciBpZiBmb3VuZCwgb3IgTlVMTCBvdGhlcndpc2UsIGlmIG5vbi1OVUxMICpzdHIgd2lsbCBoYXZlIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J2h0bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBIVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0nbG9jYXRpb24gdG8gc3RvcmUgdGhlIGVudGl0eSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbFBhcnNlRmlsZScgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBIVE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZW5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgSFRNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxSZWFkRG9jJyBmaWxlPSdIVE1McGFyc2VyJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxSZWFkRmQnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgYW5kIGJ1aWxkIGEgdHJlZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdmZCcgdHlwZT0naW50JyBpbmZvPSdhbiBvcGVuIGZpbGUgZGVzY3JpcHRvcicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxSZWFkRmlsZScgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naHRtbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZmlsZSBvciBVUkwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbFJlYWRJTycgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBIVE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlIGFuZCBidWlsZCBhIHRyZWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0naW9yZWFkJyB0eXBlPSd4bWxJbnB1dFJlYWRDYWxsYmFjaycgaW5mbz0nYW4gSS9PIHJlYWQgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jbG9zZScgdHlwZT0neG1sSW5wdXRDbG9zZUNhbGxiYWNrJyBpbmZvPSdhbiBJL08gY2xvc2UgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gSS9PIGhhbmRsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sUmVhZE1lbW9yeScgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhIGNoYXIgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocyknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sU0FYUGFyc2VEb2MnIGZpbGU9J0hUTUxwYXJzZXInIG1vZHVsZT0nSFRNTHBhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UGFyc2UgYW4gSFRNTCBpbi1tZW1vcnkgZG9jdW1lbnQuIElmIHNheCBpcyBub3QgTlVMTCwgdXNlIHRoZSBTQVggY2FsbGJhY2tzIHRvIGhhbmRsZSBwYXJzZSBldmVudHMuIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gYmVoYXZpb3IgYW5kIHJldHVybiBhIHRyZWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdodG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgdW5sZXNzIFNBWCBpcyBOVUxMIG9yIHRoZSBkb2N1bWVudCBpcyBub3Qgd2VsbCBmb3JtZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcicvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J3NheCcgdHlwZT0naHRtbFNBWEhhbmRsZXJQdHInIGluZm89J3RoZSBTQVggaGFuZGxlciBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyRGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdpZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sU0FYUGFyc2VGaWxlJyBmaWxlPSdIVE1McGFyc2VyJyBtb2R1bGU9J0hUTUxwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIEhUTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLiBJdCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jayB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSB1bmxlc3MgU0FYIGlzIE5VTEwgb3IgdGhlIGRvY3VtZW50IGlzIG5vdCB3ZWxsIGZvcm1lZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSdodG1sU0FYSGFuZGxlclB0cicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyIGJsb2NrJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJEYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2lmIHVzaW5nIFNBWCwgdGhpcyBwb2ludGVyIHdpbGwgYmUgcHJvdmlkZWQgb24gY2FsbGJhY2tzLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxTYXZlRmlsZScgZmlsZT0nSFRNTHRyZWUnIG1vZHVsZT0nSFRNTHRyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gSFRNTCBkb2N1bWVudCB0byBhIGZpbGUuIElmIEBmaWxlbmFtZSBpcyAmcXVvdDstJnF1b3Q7IHRoZSBzdGRvdXQgZmlsZSBpcyB1c2VkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZSAob3IgVVJMKScvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbFNhdmVGaWxlRW5jJyBmaWxlPSdIVE1MdHJlZScgbW9kdWxlPSdIVE1MdHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBIVE1MIGRvY3VtZW50IHRvIGEgZmlsZSB1c2luZyBhIGdpdmVuIGVuY29kaW5nIGFuZCBmb3JtYXR0aW5nIHJldHVybnMvc3BhY2VzIGFyZSBhZGRlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLicvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZW5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sU2F2ZUZpbGVGb3JtYXQnIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUx0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIEhUTUwgZG9jdW1lbnQgdG8gYSBmaWxlIHVzaW5nIGEgZ2l2ZW4gZW5jb2RpbmcuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0naW50JyBpbmZvPSdzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxTZXRNZXRhRW5jb2RpbmcnIGZpbGU9J0hUTUx0cmVlJyBtb2R1bGU9J0hUTUx0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXRzIHRoZSBjdXJyZW50IGVuY29kaW5nIGluIHRoZSBNZXRhIHRhZ3MgTk9URTogdGhpcyB3aWxsIG5vdCBjaGFuZ2UgdGhlIGRvY3VtZW50IGNvbnRlbnQgZW5jb2RpbmcsIGp1c3QgdGhlIE1FVEEgZmxhZyBhc3NvY2lhdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J2h0bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZW5jb2Rpbmcgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naHRtbFRhZ0xvb2t1cCcgZmlsZT0nSFRNTHBhcnNlcicgbW9kdWxlPSdIVE1McGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb29rdXAgdGhlIEhUTUwgdGFnIGluIHRoZSBFbGVtZW50VGFibGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IGh0bWxFbGVtRGVzYyAqJyBpbmZvPSd0aGUgcmVsYXRlZCBodG1sRWxlbURlc2NQdHIgb3IgTlVMTCBpZiBub3QgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J3RhZycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgdGFnIG5hbWUgaW4gbG93ZXJjYXNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naWdub3JhYmxlV2hpdGVzcGFjZScgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5yZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSBjaGFyYWN0ZXJzIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2NoJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgeG1sQ2hhciBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgeG1sQ2hhcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J2lnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlJlY2VpdmluZyBzb21lIGlnbm9yYWJsZSB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBwYXJzZXIuIFVOVVNFRDogYnkgZGVmYXVsdCB0aGUgRE9NIGJ1aWxkaW5nIHdpbGwgdXNlIGNoYXJhY3RlcnMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2NoJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgeG1sQ2hhciBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgeG1sQ2hhcicvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2luaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYycgZmlsZT0neG1sZXJyb3InIG1vZHVsZT0nZXJyb3InPgorICAgICAgPGluZm8+U2V0IG9yIHJlc2V0IChpZiBOVUxMKSB0aGUgZGVmYXVsdCBoYW5kbGVyIGZvciBnZW5lcmljIGVycm9ycyB0byB0aGUgYnVpbHRpbiBlcnJvciBmdW5jdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0naGFuZGxlcicgdHlwZT0neG1sR2VuZXJpY0Vycm9yRnVuYyAqJyBpbmZvPSd0aGUgaGFuZGxlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2luaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXInIGZpbGU9J1NBWCcgbW9kdWxlPSdTQVgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IERvY0Jvb2sgU0FYIHZlcnNpb24gMSBoYW5kbGVyIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcigpIGZvciB0aGUgbmV3IFNBWDIgYmxvY2tzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2hkbHInIHR5cGU9J3htbFNBWEhhbmRsZXJWMSAqJyBpbmZvPSd0aGUgU0FYIGhhbmRsZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyJyBmaWxlPSdTQVgnIG1vZHVsZT0nU0FYJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBIVE1MIFNBWCB2ZXJzaW9uIDEgaGFuZGxlciBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIoKSBmb3IgdGhlIG5ldyBTQVgyIGJsb2NrczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdoZGxyJyB0eXBlPSd4bWxTQVhIYW5kbGVyVjEgKicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyJyBmaWxlPSdTQVgnIG1vZHVsZT0nU0FYJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IFhNTCBTQVggdmVyc2lvbiAxIGhhbmRsZXIgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIoKSBmb3IgdGhlIG5ldyBTQVgyIGJsb2NrczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdoZGxyJyB0eXBlPSd4bWxTQVhIYW5kbGVyVjEgKicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3dhcm5pbmcnIHR5cGU9J2ludCcgaW5mbz0nZmxhZyBpZiBub24temVybyBzZXRzIHRoZSBoYW5kbGVyIHdhcm5pbmcgcHJvY2VkdXJlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naW5wdXRQb3AnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+UG9wcyB0aGUgdG9wIHBhcnNlciBpbnB1dCBmcm9tIHRoZSBpbnB1dCBzdGFjazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J3RoZSBpbnB1dCBqdXN0IHJlbW92ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naW5wdXRQdXNoJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlB1c2hlcyBhIG5ldyBwYXJzZXIgaW5wdXQgb24gdG9wIG9mIHRoZSBpbnB1dCBzdGFjazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpbiBjYXNlIG9mIGVycm9yLCB0aGUgaW5kZXggaW4gdGhlIHN0YWNrIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGlucHV0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naW50ZXJuYWxTdWJzZXQnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2FsbGJhY2sgb24gaW50ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkludGVybmFsU3Vic2V0KCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcm9vdCBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZXh0ZXJuYWwgSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0naW50ZXJuYWxTdWJzZXRTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIG9uIGludGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcm9vdCBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZXh0ZXJuYWwgSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naXNTdGFuZGFsb25lJyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPklzIHRoaXMgZG9jdW1lbnQgdGFnZ2VkIHN0YW5kYWxvbmUgPyBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMklzU3RhbmRhbG9uZSgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J2lzU3RhbmRhbG9uZVNBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+SXMgdGhpcyBkb2N1bWVudCB0YWdnZWQgc3RhbmRhbG9uZT88L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0naXNvbGF0MVRvVVRGOCcgZmlsZT0nZW5jb2RpbmcnIG1vZHVsZT0nZW5jb2RpbmcnPgorICAgICAgPGluZm8+VGFrZSBhIGJsb2NrIG9mIElTTyBMYXRpbiAxIGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBVVEYtOCBibG9jayBvZiBjaGFycyBvdXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBpZiBzdWNjZXNzLCBvciAtMSBvdGhlcndpc2UgVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J291dCcgdHlwZT0ndW5zaWduZWQgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRsZW4nIHR5cGU9J2ludCAqJyBpbmZvPSd0aGUgbGVuZ3RoIG9mIEBvdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0naW4nIHR5cGU9J2NvbnN0IHVuc2lnbmVkIGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIElTTyBMYXRpbiAxIGNoYXJzJy8+CisgICAgICA8YXJnIG5hbWU9J2lubGVuJyB0eXBlPSdpbnQgKicgaW5mbz0ndGhlIGxlbmd0aCBvZiBAaW4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSduYW1lUG9wJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlBvcHMgdGhlIHRvcCBlbGVtZW50IG5hbWUgZnJvbSB0aGUgbmFtZSBzdGFjazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBqdXN0IHJlbW92ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nbmFtZVB1c2gnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+UHVzaGVzIGEgbmV3IGVsZW1lbnQgbmFtZSBvbiB0b3Agb2YgdGhlIG5hbWUgc3RhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBlcnJvciwgdGhlIGluZGV4IGluIHRoZSBzdGFjayBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSduYW1lc3BhY2VEZWNsJyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkEgbmFtZXNwYWNlIGhhcyBiZWVuIHBhcnNlZC4gREVQUkVDQVRFRDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSdocmVmJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCBVUk4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgcHJlZml4Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nbm9kZVBvcCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5Qb3BzIHRoZSB0b3AgZWxlbWVudCBub2RlIGZyb20gdGhlIG5vZGUgc3RhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIGp1c3QgcmVtb3ZlZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdub2RlUHVzaCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5QdXNoZXMgYSBuZXcgZWxlbWVudCBub2RlIG9uIHRvcCBvZiB0aGUgbm9kZSBzdGFjazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpbiBjYXNlIG9mIGVycm9yLCB0aGUgaW5kZXggaW4gdGhlIHN0YWNrIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBlbGVtZW50IG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdub3RhdGlvbkRlY2wnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V2hhdCB0byBkbyB3aGVuIGEgbm90YXRpb24gZGVjbGFyYXRpb24gaGFzIGJlZW4gcGFyc2VkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMk5vdGF0aW9uRGVjbCgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmxpY0lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdzeXN0ZW1JZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSdub3RhdGlvbkRlY2xTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPldoYXQgdG8gZG8gd2hlbiBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHBhcnNlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgbmFtZSBvZiB0aGUgbm90YXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ncHVibGljSWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J3N5c3RlbUlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3Byb2Nlc3NpbmdJbnN0cnVjdGlvbicgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaGFzIGJlZW4gcGFyc2VkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbigpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J3RhcmdldCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdGFyZ2V0IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgUEkgZGF0YSZhcG9zO3MnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSdwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBoYXMgYmVlbiBwYXJzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J3RhcmdldCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdGFyZ2V0IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgUEkgZGF0YSZhcG9zO3MnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdyZWZlcmVuY2UnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Y2FsbGVkIHdoZW4gYW4gZW50aXR5IHJlZmVyZW5jZSBpcyBkZXRlY3RlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJSZWZlcmVuY2UoKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3JlZmVyZW5jZVNBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+Q2FsbGVkIHdoZW4gYW4gZW50aXR5IHJlZmVyZW5jZSBpcyBkZXRlY3RlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgZW50aXR5IG5hbWUnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdyZXNvbHZlRW50aXR5JyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBlbnRpdHkgbG9hZGVyLCB0byBjb250cm9sIHRoZSBsb2FkaW5nIG9mIGV4dGVybmFsIGVudGl0aWVzLCB0aGUgYXBwbGljYXRpb24gY2FuIGVpdGhlcjogLSBvdmVycmlkZSB0aGlzIHJlc29sdmVFbnRpdHkoKSBjYWxsYmFjayBpbiB0aGUgU0FYIGJsb2NrIC0gb3IgYmV0dGVyIHVzZSB0aGUgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKSBmdW5jdGlvbiB0byBzZXQgdXAgaXQmYXBvcztzIG93biBlbnRpdHkgcmVzb2x1dGlvbiByb3V0aW5lIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyUmVzb2x2ZUVudGl0eSgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dFB0cicgaW5mbz0ndGhlIHhtbFBhcnNlcklucHV0UHRyIGlmIGlubGluZWQgb3IgTlVMTCBmb3IgRE9NIGJlaGF2aW91ci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0ncHVibGljSWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J3N5c3RlbUlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3Jlc29sdmVFbnRpdHlTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrOiBUaGUgZW50aXR5IGxvYWRlciwgdG8gY29udHJvbCB0aGUgbG9hZGluZyBvZiBleHRlcm5hbCBlbnRpdGllcywgdGhlIGFwcGxpY2F0aW9uIGNhbiBlaXRoZXI6IC0gb3ZlcnJpZGUgdGhpcyByZXNvbHZlRW50aXR5KCkgY2FsbGJhY2sgaW4gdGhlIFNBWCBibG9jayAtIG9yIGJldHRlciB1c2UgdGhlIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKCkgZnVuY3Rpb24gdG8gc2V0IHVwIGl0JmFwb3M7cyBvd24gZW50aXR5IHJlc29sdXRpb24gcm91dGluZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J3RoZSB4bWxQYXJzZXJJbnB1dFB0ciBpZiBpbmxpbmVkIG9yIE5VTEwgZm9yIERPTSBiZWhhdmlvdXIuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmxpY0lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdzeXN0ZW1JZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHknLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSdzZXREb2N1bWVudExvY2F0b3InIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVjZWl2ZSB0aGUgZG9jdW1lbnQgbG9jYXRvciBhdCBzdGFydHVwLCBhY3R1YWxseSB4bWxEZWZhdWx0U0FYTG9jYXRvciBFdmVyeXRoaW5nIGlzIGF2YWlsYWJsZSBvbiB0aGUgY29udGV4dCwgc28gdGhpcyBpcyB1c2VsZXNzIGluIG91ciBjYXNlLiBERVBSRUNBVEVEPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2xvYycgdHlwZT0neG1sU0FYTG9jYXRvclB0cicgaW5mbz0nQSBTQVggTG9jYXRvcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3NldERvY3VtZW50TG9jYXRvclNBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+UmVjZWl2ZSB0aGUgZG9jdW1lbnQgbG9jYXRvciBhdCBzdGFydHVwLCBhY3R1YWxseSB4bWxEZWZhdWx0U0FYTG9jYXRvci4gRXZlcnl0aGluZyBpcyBhdmFpbGFibGUgb24gdGhlIGNvbnRleHQsIHNvIHRoaXMgaXMgdXNlbGVzcyBpbiBvdXIgY2FzZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbG9jJyB0eXBlPSd4bWxTQVhMb2NhdG9yUHRyJyBpbmZvPSdBIFNBWCBMb2NhdG9yJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nc2V0TmFtZXNwYWNlJyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCB0aGUgY3VycmVudCBlbGVtZW50IG5hbWVzcGFjZS4gREVQUkVDQVRFRDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgcHJlZml4Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nc3RhcnREb2N1bWVudCcgZmlsZT0nU0FYJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5jYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgc3RhcnQgYmVpbmcgcHJvY2Vzc2VkLiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMlN0YXJ0RG9jdW1lbnQoKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3N0YXJ0RG9jdW1lbnRTQVhGdW5jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNhbGxlZCB3aGVuIHRoZSBkb2N1bWVudCBzdGFydCBiZWluZyBwcm9jZXNzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0nc3RhcnRFbGVtZW50JyBmaWxlPSdTQVgnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmNhbGxlZCB3aGVuIGFuIG9wZW5pbmcgdGFnIGhhcyBiZWVuIHByb2Nlc3NlZC4gREVQUkVDQVRFRDogdXNlIHhtbFNBWDJTdGFydEVsZW1lbnQoKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSdmdWxsbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgZWxlbWVudCBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSdhdHRzJyB0eXBlPSdjb25zdCB4bWxDaGFyICoqJyBpbmZvPSdBbiBhcnJheSBvZiBuYW1lL3ZhbHVlIGF0dHJpYnV0ZXMgcGFpcnMsIE5VTEwgdGVybWluYXRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3N0YXJ0RWxlbWVudE5zU0FYMkZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+U0FYMiBjYWxsYmFjayB3aGVuIGFuIGVsZW1lbnQgc3RhcnQgaGFzIGJlZW4gZGV0ZWN0ZWQgYnkgdGhlIHBhcnNlci4gSXQgcHJvdmlkZXMgdGhlIG5hbWVzcGFjZSBpbmZvcm1hdGlvbnMgZm9yIHRoZSBlbGVtZW50LCBhcyB3ZWxsIGFzIHRoZSBuZXcgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBvbiB0aGUgZWxlbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbG9jYWxuYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBsb2NhbCBuYW1lIG9mIHRoZSBlbGVtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVsZW1lbnQgbmFtZXNwYWNlIG5hbWUgaWYgYXZhaWxhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J25iX25hbWVzcGFjZXMnIHR5cGU9J2ludCcgaW5mbz0nbnVtYmVyIG9mIG5hbWVzcGFjZSBkZWZpbml0aW9ucyBvbiB0aGF0IG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlcycgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0ncG9pbnRlciB0byB0aGUgYXJyYXkgb2YgcHJlZml4L1VSSSBwYWlycyBuYW1lc3BhY2UgZGVmaW5pdGlvbnMnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmJfYXR0cmlidXRlcycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgb24gdGhhdCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25iX2RlZmF1bHRlZCcgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGRlZmF1bHRlZCBhdHRyaWJ1dGVzLiBUaGUgZGVmYXVsdGVkIG9uZXMgYXJlIGF0IHRoZSBlbmQgb2YgdGhlIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J2F0dHJpYnV0ZXMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKionIGluZm89J3BvaW50ZXIgdG8gdGhlIGFycmF5IG9mIChsb2NhbG5hbWUvcHJlZml4L1VSSS92YWx1ZS9lbmQpIGF0dHJpYnV0ZSB2YWx1ZXMuJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nc3RhcnRFbGVtZW50U0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5DYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIGVsZW1lbnQgbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXgnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXR0cycgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0nQW4gYXJyYXkgb2YgbmFtZS92YWx1ZSBhdHRyaWJ1dGVzIHBhaXJzLCBOVUxMIHRlcm1pbmF0ZWQnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd1bnBhcnNlZEVudGl0eURlY2wnIGZpbGU9J1NBWCcgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V2hhdCB0byBkbyB3aGVuIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBpcyBwYXJzZWQgREVQUkVDQVRFRDogdXNlIHhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2woKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBuYW1lIG9mIHRoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0ncHVibGljSWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J3N5c3RlbUlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdub3RhdGlvbk5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0ndW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5XaGF0IHRvIGRvIHdoZW4gYW4gdW5wYXJzZWQgZW50aXR5IGRlY2xhcmF0aW9uIGlzIHBhcnNlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgbmFtZSBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmxpY0lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdzeXN0ZW1JZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nbm90YXRpb25OYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBub3RhdGlvbicvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3ZhbHVlUG9wJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlBvcHMgdGhlIHRvcCBYUGF0aCBvYmplY3QgZnJvbSB0aGUgdmFsdWUgc3RhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgWFBhdGggb2JqZWN0IGp1c3QgcmVtb3ZlZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J2FuIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3ZhbHVlUHVzaCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5QdXNoZXMgYSBuZXcgWFBhdGggb2JqZWN0IG9uIHRvcCBvZiB0aGUgdmFsdWUgc3RhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBpdGVtcyBvbiB0aGUgdmFsdWUgc3RhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSdhbiBYUGF0aCBldmFsdWF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgWFBhdGggb2JqZWN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0nd2FybmluZ1NBWEZ1bmMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+RGlzcGxheSBhbmQgZm9ybWF0IGEgd2FybmluZyBtZXNzYWdlcywgY2FsbGJhY2suPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbXNnJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXknLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bGlua0V4dGVuZGVkTGlua0Z1bmsnIGZpbGU9J3hsaW5rJyBtb2R1bGU9J3hsaW5rJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIGEgZXh0ZW5kZWQgbGluayBkZXRlY3Rpb24gY2FsbGJhY2suPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd1c2VyIGRhdGEgcG9pbnRlcicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBjYXJyeWluZyB0aGUgbGluaycvPgorICAgICAgPGFyZyBuYW1lPSduYkxvY2F0b3JzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgbG9jYXRvcnMgZGV0ZWN0ZWQgb24gdGhlIGxpbmsnLz4KKyAgICAgIDxhcmcgbmFtZT0naHJlZnMnIHR5cGU9J2NvbnN0IHhsaW5rSFJlZiAqJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBsb2NhdG9yIGhyZWZzJy8+CisgICAgICA8YXJnIG5hbWU9J3JvbGVzJyB0eXBlPSdjb25zdCB4bGlua1JvbGUgKicgaW5mbz0ncG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciByb2xlcycvPgorICAgICAgPGFyZyBuYW1lPSduYkFyY3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmNzIGRldGVjdGVkIG9uIHRoZSBsaW5rJy8+CisgICAgICA8YXJnIG5hbWU9J2Zyb20nIHR5cGU9J2NvbnN0IHhsaW5rUm9sZSAqJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBzb3VyY2Ugcm9sZXMgZm91bmQgb24gdGhlIGFyY3MnLz4KKyAgICAgIDxhcmcgbmFtZT0ndG8nIHR5cGU9J2NvbnN0IHhsaW5rUm9sZSAqJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBhcnJheSBvZiB0YXJnZXQgcm9sZXMgZm91bmQgb24gdGhlIGFyY3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2hvdycgdHlwZT0neGxpbmtTaG93IConIGluZm89J2FycmF5IG9mIHZhbHVlcyBmb3IgdGhlIHNob3cgYXR0cmlidXRlcyBmb3VuZCBvbiB0aGUgYXJjcycvPgorICAgICAgPGFyZyBuYW1lPSdhY3R1YXRlJyB0eXBlPSd4bGlua0FjdHVhdGUgKicgaW5mbz0nYXJyYXkgb2YgdmFsdWVzIGZvciB0aGUgYWN0dWF0ZSBhdHRyaWJ1dGVzIGZvdW5kIG9uIHRoZSBhcmNzJy8+CisgICAgICA8YXJnIG5hbWU9J25iVGl0bGVzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgdGl0bGVzIGRldGVjdGVkIG9uIHRoZSBsaW5rJy8+CisgICAgICA8YXJnIG5hbWU9J3RpdGxlcycgdHlwZT0nY29uc3QgeGxpbmtUaXRsZSAqJyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGFuZ3MnIHR5cGU9J2NvbnN0IHhtbENoYXIgKionIGluZm89J2FycmF5IG9mIHhtbDpsYW5nIHZhbHVlcyBmb3IgdGhlIHRpdGxlcycvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3hsaW5rRXh0ZW5kZWRMaW5rU2V0RnVuaycgZmlsZT0neGxpbmsnIG1vZHVsZT0neGxpbmsnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgaXMgdGhlIHByb3RvdHlwZSBmb3IgYSBleHRlbmRlZCBsaW5rIHNldCBkZXRlY3Rpb24gY2FsbGJhY2suPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd1c2VyIGRhdGEgcG9pbnRlcicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBjYXJyeWluZyB0aGUgbGluaycvPgorICAgICAgPGFyZyBuYW1lPSduYkxvY2F0b3JzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgbG9jYXRvcnMgZGV0ZWN0ZWQgb24gdGhlIGxpbmsnLz4KKyAgICAgIDxhcmcgbmFtZT0naHJlZnMnIHR5cGU9J2NvbnN0IHhsaW5rSFJlZiAqJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBsb2NhdG9yIGhyZWZzJy8+CisgICAgICA8YXJnIG5hbWU9J3JvbGVzJyB0eXBlPSdjb25zdCB4bGlua1JvbGUgKicgaW5mbz0ncG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciByb2xlcycvPgorICAgICAgPGFyZyBuYW1lPSduYlRpdGxlcycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIHRpdGxlcyBkZXRlY3RlZCBvbiB0aGUgbGluaycvPgorICAgICAgPGFyZyBuYW1lPSd0aXRsZXMnIHR5cGU9J2NvbnN0IHhsaW5rVGl0bGUgKicgaW5mbz0nJy8+CisgICAgICA8YXJnIG5hbWU9J2xhbmdzJyB0eXBlPSdjb25zdCB4bWxDaGFyICoqJyBpbmZvPSdhcnJheSBvZiB4bWw6bGFuZyB2YWx1ZXMgZm9yIHRoZSB0aXRsZXMnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bGlua0dldERlZmF1bHREZXRlY3QnIGZpbGU9J3hsaW5rJyBtb2R1bGU9J3hsaW5rJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGRlZmF1bHQgeGxpbmsgZGV0ZWN0aW9uIHJvdXRpbmU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3hsaW5rTm9kZURldGVjdEZ1bmMnIGluZm89J3RoZSBjdXJyZW50IGZ1bmN0aW9uIG9yIE5VTEw7Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neGxpbmtHZXREZWZhdWx0SGFuZGxlcicgZmlsZT0neGxpbmsnIG1vZHVsZT0neGxpbmsnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkdldCB0aGUgZGVmYXVsdCB4bGluayBoYW5kbGVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neGxpbmtIYW5kbGVyUHRyJyBpbmZvPSd0aGUgY3VycmVudCB4bGlua0hhbmRsZXJQdHIgdmFsdWUuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neGxpbmtJc0xpbmsnIGZpbGU9J3hsaW5rJyBtb2R1bGU9J3hsaW5rJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBub2RlIGNhcnJpZXMgdGhlIGF0dHJpYnV0ZXMgbmVlZGVkIHRvIGJlIGEgbGluayBlbGVtZW50IChvciBpcyBvbmUgb2YgdGhlIGxpbmtpbmcgZWxlbWVudHMgaXNzdWVkIGZyb20gdGhlIChYKUhUTUwgRHREcykuIFRoaXMgcm91dGluZSBkb24mYXBvczt0IHRyeSB0byBkbyBmdWxsIGNoZWNraW5nIG9mIHRoZSBsaW5rIHZhbGlkaXR5IGJ1dCB0cmllcyB0byBkZXRlY3QgYW5kIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgbGluayB0eXBlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neGxpbmtUeXBlJyBpbmZvPSd0aGUgeGxpbmtUeXBlIG9mIHRoZSBub2RlIChYTElOS19UWVBFX05PTkUgaWYgdGhlcmUgaXMgbm8gbGluayBkZXRlY3RlZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCBjb250YWluaW5nIHRoZSBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIHBvaW50ZXIgaXRzZWxmJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neGxpbmtOb2RlRGV0ZWN0RnVuYycgZmlsZT0neGxpbmsnIG1vZHVsZT0neGxpbmsnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgaXMgdGhlIHByb3RvdHlwZSBmb3IgdGhlIGxpbmsgZGV0ZWN0aW9uIHJvdXRpbmUuIEl0IGNhbGxzIHRoZSBkZWZhdWx0IGxpbmsgZGV0ZWN0aW9uIGNhbGxiYWNrcyB1cG9uIGxpbmsgZGV0ZWN0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndXNlciBkYXRhIHBvaW50ZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgdG8gY2hlY2snLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bGlua1NldERlZmF1bHREZXRlY3QnIGZpbGU9J3hsaW5rJyBtb2R1bGU9J3hsaW5rJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgdGhlIGRlZmF1bHQgeGxpbmsgZGV0ZWN0aW9uIHJvdXRpbmU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVuYycgdHlwZT0neGxpbmtOb2RlRGV0ZWN0RnVuYycgaW5mbz0ncG9pbnRlciB0byB0aGUgbmV3IGRldGVjdGlvbiByb3V0aW5lLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3hsaW5rU2V0RGVmYXVsdEhhbmRsZXInIGZpbGU9J3hsaW5rJyBtb2R1bGU9J3hsaW5rJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgdGhlIGRlZmF1bHQgeGxpbmsgaGFuZGxlcnM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0naGFuZGxlcicgdHlwZT0neGxpbmtIYW5kbGVyUHRyJyBpbmZvPSd0aGUgbmV3IHZhbHVlIGZvciB0aGUgeGxpbmsgaGFuZGxlciBibG9jaycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3hsaW5rU2ltcGxlTGlua0Z1bmsnIGZpbGU9J3hsaW5rJyBtb2R1bGU9J3hsaW5rJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIGEgc2ltcGxlIGxpbmsgZGV0ZWN0aW9uIGNhbGxiYWNrLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndXNlciBkYXRhIHBvaW50ZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgY2FycnlpbmcgdGhlIGxpbmsnLz4KKyAgICAgIDxhcmcgbmFtZT0naHJlZicgdHlwZT0nY29uc3QgeGxpbmtIUmVmJyBpbmZvPSd0aGUgdGFyZ2V0IG9mIHRoZSBsaW5rJy8+CisgICAgICA8YXJnIG5hbWU9J3JvbGUnIHR5cGU9J2NvbnN0IHhsaW5rUm9sZScgaW5mbz0ndGhlIHJvbGUgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J3RpdGxlJyB0eXBlPSdjb25zdCB4bGlua1RpdGxlJyBpbmZvPSd0aGUgbGluayB0aXRsZScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEFDYXRhbG9nQWRkJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFkZCBhbiBlbnRyeSBpbiB0aGUgY2F0YWxvZywgaXQgbWF5IG92ZXJ3cml0ZSBleGlzdGluZyBidXQgZGlmZmVyZW50IGVudHJpZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NhdGFsJyB0eXBlPSd4bWxDYXRhbG9nUHRyJyBpbmZvPSdhIENhdGFsb2cnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdHlwZSBvZiByZWNvcmQgdG8gYWRkIHRvIHRoZSBjYXRhbG9nJy8+CisgICAgICA8YXJnIG5hbWU9J29yaWcnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN5c3RlbSwgcHVibGljIG9yIHByZWZpeCB0byBtYXRjaCcvPgorICAgICAgPGFyZyBuYW1lPSdyZXBsYWNlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIG1hdGNoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQUNhdGFsb2dEdW1wJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgdGhlIGdpdmVuIGNhdGFsb2cgdG8gdGhlIGdpdmVuIGZpbGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2NhdGFsJyB0eXBlPSd4bWxDYXRhbG9nUHRyJyBpbmZvPSdhIENhdGFsb2cnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0JyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBmaWxlLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEFDYXRhbG9nUmVtb3ZlJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlbW92ZSBhbiBlbnRyeSBmcm9tIHRoZSBjYXRhbG9nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgZW50cmllcyByZW1vdmVkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjYXRhbCcgdHlwZT0neG1sQ2F0YWxvZ1B0cicgaW5mbz0nYSBDYXRhbG9nJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YWx1ZSB0byByZW1vdmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBQ2F0YWxvZ1Jlc29sdmUnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RG8gYSBjb21wbGV0ZSByZXNvbHV0aW9uIGxvb2t1cCBvZiBhbiBFeHRlcm5hbCBJZGVudGlmaWVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBVUkkgb2YgdGhlIHJlc291cmNlIG9yIE5VTEwgaWYgbm90IGZvdW5kLCBpdCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J2NhdGFsJyB0eXBlPSd4bWxDYXRhbG9nUHRyJyBpbmZvPSdhIENhdGFsb2cnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHViSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHB1YmxpYyBJRCBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3lzSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN5c3RlbSBJRCBzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJ5IHRvIGxvb2t1cCB0aGUgY2F0YWxvZyBsb2NhbCByZWZlcmVuY2UgYXNzb2NpYXRlZCB0byBhIHB1YmxpYyBJRCBpbiB0aGF0IGNhdGFsb2c8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIGxvY2FsIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLCB0aGUgdmFsdWUgcmV0dXJuZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdjYXRhbCcgdHlwZT0neG1sQ2F0YWxvZ1B0cicgaW5mbz0nYSBDYXRhbG9nJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YklEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwdWJsaWMgSUQgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgcmVzb3VyY2UgZm9yIGEgc3lzdGVtIElEPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSByZXNvdXJjZSBpZiBmb3VuZCBvciBOVUxMIG90aGVyd2lzZSwgdGhlIHZhbHVlIHJldHVybmVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY2F0YWwnIHR5cGU9J3htbENhdGFsb2dQdHInIGluZm89J2EgQ2F0YWxvZycvPgorICAgICAgPGFyZyBuYW1lPSdzeXNJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIElEIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEFDYXRhbG9nUmVzb2x2ZVVSSScgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdjYXRhbCcgdHlwZT0neG1sQ2F0YWxvZ1B0cicgaW5mbz0nYSBDYXRhbG9nJy8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQWRkQXR0cmlidXRlRGVjbCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+UmVnaXN0ZXIgYSBuZXcgYXR0cmlidXRlIGRlY2xhcmF0aW9uIE5vdGUgdGhhdCBAdHJlZSBiZWNvbWVzIHRoZSBvd25lcnNoaXAgb2YgdGhlIERURDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXR0cmlidXRlUHRyJyBpbmZvPSdOVUxMIGlmIG5vdCBuZXcsIG90aGVyd2lzZSB0aGUgYXR0cmlidXRlIGRlY2wnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2R0ZCcgdHlwZT0neG1sRHRkUHRyJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBEVEQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZWxlbWVudCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZXNwYWNlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSd0eXBlJyB0eXBlPSd4bWxBdHRyaWJ1dGVUeXBlJyBpbmZvPSd0aGUgYXR0cmlidXRlIHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVmJyB0eXBlPSd4bWxBdHRyaWJ1dGVEZWZhdWx0JyBpbmZvPSd0aGUgYXR0cmlidXRlIGRlZmF1bHQgdHlwZScvPgorICAgICAgPGFyZyBuYW1lPSdkZWZhdWx0VmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J3RyZWUnIHR5cGU9J3htbEVudW1lcmF0aW9uUHRyJyBpbmZvPSdpZiBpdCZhcG9zO3MgYW4gZW51bWVyYXRpb24sIHRoZSBhc3NvY2lhdGVkIGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBZGRDaGlsZCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkFkZCBhIG5ldyBub2RlIHRvIEBwYXJlbnQsIGF0IHRoZSBlbmQgb2YgdGhlIGNoaWxkIChvciBwcm9wZXJ0eSkgbGlzdCBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKGluIHdoaWNoIGNhc2UgQGN1ciBpcyBmcmVlZCkgSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uIElmIHRoZXJlIGlzIGFuIGF0dHJpYnV0ZSB3aXRoIGVxdWFsIG5hbWUsIGl0IGlzIGZpcnN0IGRlc3Ryb3llZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBjaGlsZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3BhcmVudCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHBhcmVudCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGNoaWxkIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBZGRDaGlsZExpc3QnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5BZGQgYSBsaXN0IG9mIG5vZGUgYXQgdGhlIGVuZCBvZiB0aGUgY2hpbGQgbGlzdCBvZiB0aGUgcGFyZW50IG1lcmdpbmcgYWRqYWNlbnQgVEVYVCBub2RlcyAoQGN1ciBtYXkgYmUgZnJlZWQpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbGFzdCBjaGlsZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3BhcmVudCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHBhcmVudCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGZpcnN0IG5vZGUgaW4gdGhlIGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBZGREb2NFbnRpdHknIGZpbGU9J2VudGl0aWVzJyBtb2R1bGU9J2VudGl0aWVzJz4KKyAgICAgIDxpbmZvPlJlZ2lzdGVyIGEgbmV3IGVudGl0eSBmb3IgdGhpcyBkb2N1bWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVudGl0eVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZW50aXR5IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0naW50JyBpbmZvPSd0aGUgZW50aXR5IHR5cGUgWE1MX3h4eF95eXlfRU5USVRZJy8+CisgICAgICA8YXJnIG5hbWU9J0V4dGVybmFsSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBleHRlcm5hbCBJRCBpZiBhdmFpbGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBzeXN0ZW0gSUQgaWYgYXZhaWxhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQWRkRHRkRW50aXR5JyBmaWxlPSdlbnRpdGllcycgbW9kdWxlPSdlbnRpdGllcyc+CisgICAgICA8aW5mbz5SZWdpc3RlciBhIG5ldyBlbnRpdHkgZm9yIHRoaXMgZG9jdW1lbnQgRFREIGV4dGVybmFsIHN1YnNldC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVudGl0eVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZW50aXR5IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0naW50JyBpbmZvPSd0aGUgZW50aXR5IHR5cGUgWE1MX3h4eF95eXlfRU5USVRZJy8+CisgICAgICA8YXJnIG5hbWU9J0V4dGVybmFsSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBleHRlcm5hbCBJRCBpZiBhdmFpbGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBzeXN0ZW0gSUQgaWYgYXZhaWxhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQWRkRWxlbWVudERlY2wnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPlJlZ2lzdGVyIGEgbmV3IGVsZW1lbnQgZGVjbGFyYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVsZW1lbnRQdHInIGluZm89J05VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxWYWxpZEN0eHRQdHInIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZHRkJyB0eXBlPSd4bWxEdGRQdHInIGluZm89J3BvaW50ZXIgdG8gdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSd0eXBlJyB0eXBlPSd4bWxFbGVtZW50VHlwZVZhbCcgaW5mbz0ndGhlIGVsZW1lbnQgdHlwZScvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSd4bWxFbGVtZW50Q29udGVudFB0cicgaW5mbz0ndGhlIGVsZW1lbnQgY29udGVudCB0cmVlIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBZGRFbmNvZGluZ0FsaWFzJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5SZWdpc3RlcnMgYW4gYWxpYXMgQGFsaWFzIGZvciBhbiBlbmNvZGluZyBuYW1lZCBAbmFtZS4gRXhpc3RpbmcgYWxpYXMgd2lsbCBiZSBvdmVyd3JpdHRlbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZW5jb2RpbmcgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpJy8+CisgICAgICA8YXJnIG5hbWU9J2FsaWFzJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBhbGlhcyBuYW1lIGFzIHBhcnNlZCwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBZGRJRCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+UmVnaXN0ZXIgYSBuZXcgaWQgZGVjbGFyYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbElEUHRyJyBpbmZvPSdOVUxMIGlmIG5vdCwgb3RoZXJ3aXNlIHRoZSBuZXcgeG1sSURQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdhdHRyJyB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSd0aGUgYXR0cmlidXRlIGhvbGRpbmcgdGhlIElEJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQWRkTmV4dFNpYmxpbmcnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5BZGQgYSBuZXcgbm9kZSBAZWxlbSBhcyB0aGUgbmV4dCBzaWJsaW5nIG9mIEBjdXIgSWYgdGhlIG5ldyBub2RlIHdhcyBhbHJlYWR5IGluc2VydGVkIGluIGEgZG9jdW1lbnQgaXQgaXMgZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC4gQXMgYSByZXN1bHQgb2YgdGV4dCBtZXJnaW5nIEBlbGVtIG1heSBiZSBmcmVlZC4gSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uIElmIHRoZXJlIGlzIGFuIGF0dHJpYnV0ZSB3aXRoIGVxdWFsIG5hbWUsIGl0IGlzIGZpcnN0IGRlc3Ryb3llZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBuZXcgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGNoaWxkIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5ldyBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQWRkTm90YXRpb25EZWNsJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5SZWdpc3RlciBhIG5ldyBub3RhdGlvbiBkZWNsYXJhdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm90YXRpb25QdHInIGluZm89J05VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxWYWxpZEN0eHRQdHInIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZHRkJyB0eXBlPSd4bWxEdGRQdHInIGluZm89J3BvaW50ZXIgdG8gdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdQdWJsaWNJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIGlkZW50aWZpZXIgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdTeXN0ZW1JRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIGlkZW50aWZpZXIgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEFkZFByZXZTaWJsaW5nJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BZGQgYSBuZXcgbm9kZSBAZWxlbSBhcyB0aGUgcHJldmlvdXMgc2libGluZyBvZiBAY3VyIG1lcmdpbmcgYWRqYWNlbnQgVEVYVCBub2RlcyAoQGVsZW0gbWF5IGJlIGZyZWVkKSBJZiB0aGUgbmV3IG5vZGUgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW4gYSBkb2N1bWVudCBpdCBpcyBmaXJzdCB1bmxpbmtlZCBmcm9tIGl0cyBleGlzdGluZyBjb250ZXh0LiBJZiB0aGUgbmV3IG5vZGUgaXMgQVRUUklCVVRFLCBpdCBpcyBhZGRlZCBpbnRvIHByb3BlcnRpZXMgaW5zdGVhZCBvZiBjaGlsZHJlbi4gSWYgdGhlcmUgaXMgYW4gYXR0cmlidXRlIHdpdGggZXF1YWwgbmFtZSwgaXQgaXMgZmlyc3QgZGVzdHJveWVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5ldyBub2RlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY2hpbGQgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbmV3IG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBZGRSZWYnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPlJlZ2lzdGVyIGEgbmV3IHJlZiBkZWNsYXJhdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUmVmUHRyJyBpbmZvPSdOVUxMIGlmIG5vdCwgb3RoZXJ3aXNlIHRoZSBuZXcgeG1sUmVmUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ncG9pbnRlciB0byB0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXR0cicgdHlwZT0neG1sQXR0clB0cicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBob2xkaW5nIHRoZSBSZWYnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBZGRTaWJsaW5nJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+QWRkIGEgbmV3IGVsZW1lbnQgQGVsZW0gdG8gdGhlIGxpc3Qgb2Ygc2libGluZ3Mgb2YgQGN1ciBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKEBlbGVtIG1heSBiZSBmcmVlZCkgSWYgdGhlIG5ldyBlbGVtZW50IHdhcyBhbHJlYWR5IGluc2VydGVkIGluIGEgZG9jdW1lbnQgaXQgaXMgZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBuZXcgZWxlbWVudCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGNoaWxkIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5ldyBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQWxsb2NPdXRwdXRCdWZmZXInIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicgaW5mbz0ndGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcicgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+Q3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciBwcm9ncmVzc2l2ZSBwYXJzaW5nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0ndGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCcgZmlsZT0ndHJlZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNlcmlhbGl6ZSB0ZXh0IGF0dHJpYnV0ZSB2YWx1ZXMgdG8gYW4geG1sIHNpbXBsZSBidWZmZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J3RoZSBYTUwgYnVmZmVyIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2F0dHInIHR5cGU9J3htbEF0dHJQdHInIGluZm89J3RoZSBhdHRyaWJ1dGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdzdHJpbmcnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHRleHQgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEF1dG9tYXRhQ29tcGlsZScgZmlsZT0neG1sYXV0b21hdGEnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29tcGlsZSB0aGUgYXV0b21hdGEgaW50byBhIFJlZyBFeHAgcmVhZHkgZm9yIGJlaW5nIGV4ZWN1dGVkLiBUaGUgYXV0b21hdGEgc2hvdWxkIGJlIGZyZWUgYWZ0ZXIgdGhpcyBwb2ludC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFJlZ2V4cFB0cicgaW5mbz0ndGhlIGNvbXBpbGVkIHJlZ2V4cCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPSdhbiBhdXRvbWF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEF1dG9tYXRhR2V0SW5pdFN0YXRlJyBmaWxlPSd4bWxhdXRvbWF0YScgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Jbml0aWFsIHN0YXRlIGxvb2t1cDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGF1dG9tYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2FtJyB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0nYW4gYXV0b21hdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QnIGZpbGU9J3htbGF1dG9tYXRhJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrcyBpZiBhbiBhdXRvbWF0YSBpcyBkZXRlcm1pbmlzdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlLCAwIGlmIG5vdCwgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPSdhbiBhdXRvbWF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEF1dG9tYXRhTmV3QWxsVHJhbnMnIGZpbGU9J3htbGF1dG9tYXRhJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgYW4gQUxMIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZS4gVGhhdCB0cmFuc2l0aW9uIGlzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBhbGxvd2VkIG9ubHkgd2hlbiBhbGwgdHJhbnNpdGlvbnMgZnJvbSB0aGUgQGZyb20gbm9kZSBoYXZlIGJlZW4gYWN0aXZhdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPSdhbiBhdXRvbWF0YScvPgorICAgICAgPGFyZyBuYW1lPSdmcm9tJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ndG8nIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdsYXgnIHR5cGU9J2ludCcgaW5mbz0nYWxsb3cgdG8gdHJhbnNpdGlvbiBpZiBub3QgYWxsIGFsbCB0cmFuc2l0aW9ucyBoYXZlIGJlZW4gYWN0aXZhdGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQXV0b21hdGFOZXdDb3VudFRyYW5zJyBmaWxlPSd4bWxhdXRvbWF0YScgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZSBhY3RpdmF0ZWQgYnkgYSBzdWNjZXNzaW9uIG9mIGlucHV0IG9mIHZhbHVlIEB0b2tlbiBhbmQgd2hvc2UgbnVtYmVyIGlzIGJldHdlZW4gQG1pbiBhbmQgQG1heDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPSdhbiBhdXRvbWF0YScvPgorICAgICAgPGFyZyBuYW1lPSdmcm9tJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ndG8nIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSd0b2tlbicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J21pbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbWluaW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbWF4JyB0eXBlPSdpbnQnIGluZm89J3RoZSBtYXhpbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbicvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2RhdGEgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNpdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczInIGZpbGU9J3htbGF1dG9tYXRhJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIGFjdGl2YXRlZCBieSBhIHN1Y2Nlc3Npb24gb2YgaW5wdXQgb2YgdmFsdWUgQHRva2VuIGFuZCBAdG9rZW4yIGFuZCB3aG9zZSBudW1iZXIgaXMgYmV0d2VlbiBAbWluIGFuZCBAbWF4PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdhbScgdHlwZT0neG1sQXV0b21hdGFQdHInIGluZm89J2FuIGF1dG9tYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2Zyb20nIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSd0bycgdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J3Rva2VuJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ndG9rZW4yJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzZWNvbmQgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J21pbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbWluaW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbWF4JyB0eXBlPSdpbnQnIGluZm89J3RoZSBtYXhpbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbicvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2RhdGEgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNpdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zJyBmaWxlPSd4bWxhdXRvbWF0YScgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhbiBlcHNpbG9uIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZSB3aGljaCB3aWxsIGluY3JlbWVudCB0aGUgY291bnRlciBwcm92aWRlZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPSdhbiBhdXRvbWF0YScvPgorICAgICAgPGFyZyBuYW1lPSdmcm9tJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ndG8nIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjb3VudGVyJyB0eXBlPSdpbnQnIGluZm89J3RoZSBjb3VudGVyIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQXV0b21hdGFOZXdDb3VudGVyJyBmaWxlPSd4bWxhdXRvbWF0YScgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgY291bnRlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgY291bnRlciBudW1iZXIgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdhbScgdHlwZT0neG1sQXV0b21hdGFQdHInIGluZm89J2FuIGF1dG9tYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J21pbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbWluaW1hbCB2YWx1ZSBvbiB0aGUgY291bnRlcicvPgorICAgICAgPGFyZyBuYW1lPSdtYXgnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG1heGltYWwgdmFsdWUgb24gdGhlIGNvdW50ZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucycgZmlsZT0neG1sYXV0b21hdGEnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYW4gZXBzaWxvbiB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgd2hpY2ggd2lsbCBiZSBhbGxvd2VkIG9ubHkgaWYgdGhlIGNvdW50ZXIgaXMgd2l0aGluIHRoZSByaWdodCByYW5nZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2FtJyB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0nYW4gYXV0b21hdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnJvbScgdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3RvJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY291bnRlcicgdHlwZT0naW50JyBpbmZvPSd0aGUgY291bnRlciBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEF1dG9tYXRhTmV3RXBzaWxvbicgZmlsZT0neG1sYXV0b21hdGEnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYW4gZXBzaWxvbiB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2FtJyB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0nYW4gYXV0b21hdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnJvbScgdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3RvJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBdXRvbWF0YU5ld05lZ1RyYW5zJyBmaWxlPSd4bWxhdXRvbWF0YScgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZSBhY3RpdmF0ZWQgYnkgYW55IHZhbHVlIGV4Y2VwdCAoQHRva2VuLEB0b2tlbjIpIE5vdGUgdGhhdCBpZiBAdG9rZW4yIGlzIG5vdCBOVUxMLCB0aGVuIChYLCBOVUxMKSB3b24mYXBvczt0IG1hdGNoIHRvIGZvbGxvdyAjIHRoZSBzZW1hbnRpYyBvZiBYU0QgIyNvdGhlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPSdhbiBhdXRvbWF0YScvPgorICAgICAgPGFyZyBuYW1lPSdmcm9tJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ndG8nIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSd0b2tlbicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZmlyc3QgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3Rva2VuMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc2Vjb25kIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2RhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpZiB0aGUgdHJhbnNpdGlvbiBpcyBhY3RpdmF0ZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBdXRvbWF0YU5ld09uY2VUcmFucycgZmlsZT0neG1sYXV0b21hdGEnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IGEgc3VjY2Vzc2lvbiBvZiBpbnB1dCBvZiB2YWx1ZSBAdG9rZW4gYW5kIHdob3NlIG51bWJlciBpcyBiZXR3ZWVuIEBtaW4gYW5kIEBtYXgsIG1vcmVvdmVyIHRoYXQgdHJhbnNpdGlvbiBjYW4gb25seSBiZSBjcm9zc2VkIG9uY2UuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdhbScgdHlwZT0neG1sQXV0b21hdGFQdHInIGluZm89J2FuIGF1dG9tYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2Zyb20nIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSd0bycgdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J3Rva2VuJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nbWluJyB0eXBlPSdpbnQnIGluZm89J3RoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbicvPgorICAgICAgPGFyZyBuYW1lPSdtYXgnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG1heGltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuJy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSB0cmFuc2l0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyJyBmaWxlPSd4bWxhdXRvbWF0YScgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEgYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZSBhY3RpdmF0ZWQgYnkgYSBzdWNjZXNzaW9uIG9mIGlucHV0IG9mIHZhbHVlIEB0b2tlbiBhbmQgQHRva2VuMiBhbmQgd2hvc2UgbnVtYmVyIGlzIGJldHdlZW4gQG1pbiBhbmQgQG1heCwgbW9yZW92ZXIgdGhhdCB0cmFuc2l0aW9uIGNhbiBvbmx5IGJlIGNyb3NzZWQgb25jZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2FtJyB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0nYW4gYXV0b21hdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnJvbScgdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3RvJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0ndG9rZW4nIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSd0b2tlbjInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHNlY29uZCBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nbWluJyB0eXBlPSdpbnQnIGluZm89J3RoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbicvPgorICAgICAgPGFyZyBuYW1lPSdtYXgnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG1heGltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuJy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSB0cmFuc2l0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQXV0b21hdGFOZXdTdGF0ZScgZmlsZT0neG1sYXV0b21hdGEnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IGRpc2Nvbm5lY3RlZCBzdGF0ZSBpbiB0aGUgYXV0b21hdGE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSBuZXcgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2FtJyB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0nYW4gYXV0b21hdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24nIGZpbGU9J3htbGF1dG9tYXRhJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPklmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YSBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlIGFjdGl2YXRlZCBieSB0aGUgdmFsdWUgb2YgQHRva2VuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdhbScgdHlwZT0neG1sQXV0b21hdGFQdHInIGluZm89J2FuIGF1dG9tYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2Zyb20nIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSd0bycgdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J3Rva2VuJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdkYXRhIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaWYgdGhlIHRyYW5zaXRpb24gaXMgYWN0aXZhdGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMicgZmlsZT0neG1sYXV0b21hdGEnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUgYWN0aXZhdGVkIGJ5IHRoZSB2YWx1ZSBvZiBAdG9rZW48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J3RoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2FtJyB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0nYW4gYXV0b21hdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnJvbScgdHlwZT0neG1sQXV0b21hdGFTdGF0ZVB0cicgaW5mbz0ndGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3RvJyB0eXBlPSd4bWxBdXRvbWF0YVN0YXRlUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0ndG9rZW4nIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGZpcnN0IGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSd0b2tlbjInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHNlY29uZCBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdkYXRhIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaWYgdGhlIHRyYW5zaXRpb24gaXMgYWN0aXZhdGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlJyBmaWxlPSd4bWxhdXRvbWF0YScgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5NYWtlcyB0aGF0IHN0YXRlIGEgZmluYWwgc3RhdGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2FtJyB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0nYW4gYXV0b21hdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RhdGUnIHR5cGU9J3htbEF1dG9tYXRhU3RhdGVQdHInIGluZm89J2Egc3RhdGUgaW4gdGhpcyBhdXRvbWF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEJvb2xUb1RleHQnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVuaWVudCB3YXkgdG8gdHVybiBib29sIGludG8gdGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gZWl0aGVyICZxdW90O1RydWUmcXVvdDsgb3IgJnF1b3Q7RmFsc2UmcXVvdDsnLz4KKyAgICAgIDxhcmcgbmFtZT0nYm9vbHZhbCcgdHlwZT0naW50JyBpbmZvPSdhIGJvb2wgdG8gdHVybiBpbnRvIHRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWZmZXJBZGQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5BZGQgYSBzdHJpbmcgcmFuZ2UgdG8gYW4gWE1MIGJ1ZmZlci4gaWYgbGVuID09IC0xLCB0aGUgbGVuZ3RoIG9mIHN0ciBpcyByZWNvbXB1dGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIHN1Y2Nlc3NmdWwsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J3RoZSBidWZmZXIgdG8gZHVtcCcvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlICN4bWxDaGFyIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiAjeG1sQ2hhciB0byBhZGQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWZmZXJBZGRIZWFkJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+QWRkIGEgc3RyaW5nIHJhbmdlIHRvIHRoZSBiZWdpbm5pbmcgb2YgYW4gWE1MIGJ1ZmZlci4gaWYgbGVuID09IC0xLCB0aGUgbGVuZ3RoIG9mIEBzdHIgaXMgcmVjb21wdXRlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBzdWNjZXNzZnVsLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgYnVmZmVyJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgI3htbENoYXIgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mICN4bWxDaGFyIHRvIGFkZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEJ1ZmZlckNDYXQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5BcHBlbmQgYSB6ZXJvIHRlcm1pbmF0ZWQgQyBzdHJpbmcgdG8gYW4gWE1MIGJ1ZmZlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBzdWNjZXNzZnVsLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgYnVmZmVyIHRvIGR1bXAnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBDIGNoYXIgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyQ2F0JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+QXBwZW5kIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZyB0byBhbiBYTUwgYnVmZmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIHN1Y2Nlc3NmdWwsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J3RoZSBidWZmZXIgdG8gYWRkIHRvJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgI3htbENoYXIgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyQ29udGVudCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIGNvbnRlbnQgb2YgYSBidWZmZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGludGVybmFsIGNvbnRlbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSdjb25zdCB4bWxCdWZmZXJQdHInIGluZm89J3RoZSBidWZmZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWZmZXJDcmVhdGUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5yb3V0aW5lIHRvIGNyZWF0ZSBhbiBYTUwgYnVmZmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgbmV3IHN0cnVjdHVyZS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWZmZXJDcmVhdGVTaXplJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+cm91dGluZSB0byBjcmVhdGUgYW4gWE1MIGJ1ZmZlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBzdHJ1Y3R1cmUuJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J3NpemVfdCcgaW5mbz0naW5pdGlhbCBzaXplIG9mIGJ1ZmZlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEJ1ZmZlckNyZWF0ZVN0YXRpYycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPnJvdXRpbmUgdG8gY3JlYXRlIGFuIFhNTCBidWZmZXIgZnJvbSBhbiBpbW11dGFibGUgbWVtb3J5IGFyZWEuIFRoZSBhcmVhIHdvbiZhcG9zO3QgYmUgbW9kaWZpZWQgbm9yIGNvcGllZCwgYW5kIGlzIGV4cGVjdGVkIHRvIGJlIHByZXNlbnQgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIGxpZmV0aW1lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgbmV3IHN0cnVjdHVyZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbWVtJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBtZW1vcnkgYXJlYScvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdzaXplX3QnIGluZm89J3RoZSBzaXplIGluIGJ5dGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWZmZXJEdW1wJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RHVtcHMgYW4gWE1MIGJ1ZmZlciB0byAgYSBGSUxFICouPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgI3htbENoYXIgd3JpdHRlbicvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlJyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBmaWxlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIGJ1ZmZlciB0byBkdW1wJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyRW1wdHknIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5lbXB0eSBhIGJ1ZmZlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J3RoZSBidWZmZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWZmZXJGcmVlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RnJlZXMgYW4gWE1MIGJ1ZmZlci4gSXQgZnJlZXMgYm90aCB0aGUgY29udGVudCBhbmQgdGhlIHN0cnVjdHVyZSB3aGljaCBlbmNhcHN1bGF0ZSBpdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J3RoZSBidWZmZXIgdG8gZnJlZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEJ1ZmZlckdyb3cnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5Hcm93IHRoZSBhdmFpbGFibGUgc3BhY2Ugb2YgYW4gWE1MIGJ1ZmZlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG5ldyBhdmFpbGFibGUgc3BhY2Ugb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIGJ1ZmZlcicvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0ndGhlIG1pbmltdW0gZnJlZSBzaXplIHRvIGFsbG9jYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyTGVuZ3RoJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RnVuY3Rpb24gdG8gZ2V0IHRoZSBsZW5ndGggb2YgYSBidWZmZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxlbmd0aCBvZiBkYXRhIGluIHRoZSBpbnRlcm5hbCBjb250ZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0nY29uc3QgeG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgYnVmZmVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyUmVzaXplJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+UmVzaXplIGEgYnVmZmVyIHRvIGFjY29tbW9kYXRlIG1pbmltdW0gc2l6ZSBvZiBAc2l6ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHByb2JsZW1zLCAxIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIGJ1ZmZlciB0byByZXNpemUnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0ndW5zaWduZWQgaW50JyBpbmZvPSd0aGUgZGVzaXJlZCBzaXplJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlNldHMgdGhlIGFsbG9jYXRpb24gc2NoZW1lIGZvciB0aGlzIGJ1ZmZlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIGJ1ZmZlciB0byB0dW5lJy8+CisgICAgICA8YXJnIG5hbWU9J3NjaGVtZScgdHlwZT0neG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZScgaW5mbz0nYWxsb2NhdGlvbiBzY2hlbWUgdG8gdXNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyU2hyaW5rJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+UmVtb3ZlIHRoZSBiZWdpbm5pbmcgb2YgYW4gWE1MIGJ1ZmZlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiAjeG1sQ2hhciByZW1vdmVkLCBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgYnVmZmVyIHRvIGR1bXAnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSd1bnNpZ25lZCBpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgeG1sQ2hhciB0byByZW1vdmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWZmZXJXcml0ZUNIQVInIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5yb3V0aW5lIHdoaWNoIG1hbmFnZXMgYW5kIGdyb3dzIGFuIG91dHB1dCBidWZmZXIuIFRoaXMgb25lIGFkZHMgeG1sQ2hhcnMgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIFhNTCBidWZmZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyaW5nJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzdHJpbmcgdG8gYWRkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVmZmVyV3JpdGVDaGFyJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+cm91dGluZSB3aGljaCBtYW5hZ2UgYW5kIGdyb3dzIGFuIG91dHB1dCBidWZmZXIuIFRoaXMgb25lIGFkZCBDIGNoYXJzIGF0IHRoZSBlbmQgb2YgdGhlIGFycmF5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIFhNTCBidWZmZXIgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgc3RyaW5nIHRvIGFkZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+cm91dGluZSB3aGljaCBtYW5hZ2UgYW5kIGdyb3dzIGFuIG91dHB1dCBidWZmZXIuIFRoaXMgb25lIHdyaXRlcyBhIHF1b3RlZCBvciBkb3VibGUgcXVvdGVkICN4bWxDaGFyIHN0cmluZywgY2hlY2tpbmcgZmlyc3QgaWYgaXQgaG9sZHMgcXVvdGUgb3IgZG91YmxlLXF1b3RlcyBpbnRlcm5hbGx5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgWE1MIGJ1ZmZlciBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyaW5nJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzdHJpbmcgdG8gYWRkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVpbGRRTmFtZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkJ1aWxkcyB0aGUgUU5hbWUgQHByZWZpeDpAbmNuYW1lIGluIEBtZW1vcnkgaWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIGFuZCBwcmVmaXggaXMgbm90IE5VTEwgbm9yIGVtcHR5LCBvdGhlcndpc2UgYWxsb2NhdGUgYSBuZXcgc3RyaW5nLiBJZiBwcmVmaXggaXMgTlVMTCBvciBlbXB0eSBpdCByZXR1cm5zIG5jbmFtZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5ldyBzdHJpbmcgd2hpY2ggbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyIGlmIGRpZmZlcmVudCBmcm9tIEBtZW1vcnkgYW5kIEBuY25hbWUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J25jbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgTmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSdtZW1vcnknIHR5cGU9J3htbENoYXIgKicgaW5mbz0ncHJlYWxsb2NhdGVkIG1lbW9yeScvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ncHJlYWxsb2NhdGVkIG1lbW9yeSBsZW5ndGgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCdWlsZFJlbGF0aXZlVVJJJyBmaWxlPSd1cmknIG1vZHVsZT0ndXJpJz4KKyAgICAgIDxpbmZvPkV4cHJlc3NlcyB0aGUgVVJJIG9mIHRoZSByZWZlcmVuY2UgaW4gdGVybXMgcmVsYXRpdmUgdG8gdGhlIGJhc2UuICBTb21lIGV4YW1wbGVzIG9mIHRoaXMgb3BlcmF0aW9uIGluY2x1ZGU6IGJhc2UgPSAmcXVvdDtodHRwOi8vc2l0ZTEuY29tL2RvY3MvYm9vazEuaHRtbCZxdW90OyBVUkkgaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICBVUkkgcmV0dXJuZWQgZG9jcy9waWMxLmdpZiAgICAgICAgICAgICAgICAgICAgcGljMS5naWYgZG9jcy9pbWcvcGljMS5naWYgICAgICAgICAgICAgICAgaW1nL3BpYzEuZ2lmIGltZy9waWMxLmdpZiAgICAgICAgICAgICAgICAgICAgIC4uL2ltZy9waWMxLmdpZiBodHRwOi8vc2l0ZTEuY29tL2RvY3MvcGljMS5naWYgICBwaWMxLmdpZiBodHRwOi8vc2l0ZTIuY29tL2RvY3MvcGljMS5naWYgICBodHRwOi8vc2l0ZTIuY29tL2RvY3MvcGljMS5naWYgIGJhc2UgPSAmcXVvdDtkb2NzL2Jvb2sxLmh0bWwmcXVvdDsgVVJJIGlucHV0ICAgICAgICAgICAgICAgICAgICAgICAgVVJJIHJldHVybmVkIGRvY3MvcGljMS5naWYgICAgICAgICAgICAgICAgICAgIHBpYzEuZ2lmIGRvY3MvaW1nL3BpYzEuZ2lmICAgICAgICAgICAgICAgIGltZy9waWMxLmdpZiBpbWcvcGljMS5naWYgICAgICAgICAgICAgICAgICAgICAuLi9pbWcvcGljMS5naWYgaHR0cDovL3NpdGUxLmNvbS9kb2NzL3BpYzEuZ2lmICAgaHR0cDovL3NpdGUxLmNvbS9kb2NzL3BpYzEuZ2lmICAgTm90ZTogaWYgdGhlIFVSSSByZWZlcmVuY2UgaXMgcmVhbGx5IHdpZXJkIG9yIGNvbXBsaWNhdGVkLCBpdCBtYXkgYmUgd29ydGh3aGlsZSB0byBmaXJzdCBjb252ZXJ0IGl0IGludG8gYSAmcXVvdDtuaWNlJnF1b3Q7IG9uZSBieSBjYWxsaW5nIHhtbEJ1aWxkVVJJICh1c2luZyAmYXBvcztiYXNlJmFwb3M7KSBiZWZvcmUgY2FsbGluZyB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoaXMgcm91dGluZSAoZm9yIHJlYXNvbmFibGUgZWZmaWNpZW5jeSkgYXNzdW1lcyBVUkkgaGFzIGFscmVhZHkgYmVlbiB0aHJvdWdoIHNvbWUgdmFsaWRhdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXcgVVJJIHN0cmluZyAodG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlcikgb3IgTlVMTCBpbiBjYXNlIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFVSSSByZWZlcmVuY2UgdW5kZXIgY29uc2lkZXJhdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdiYXNlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBiYXNlIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQnVpbGRVUkknIGZpbGU9J3VyaScgbW9kdWxlPSd1cmknPgorICAgICAgPGluZm8+Q29tcHV0ZXMgaGUgZmluYWwgVVJJIG9mIHRoZSByZWZlcmVuY2UgZG9uZSBieSBjaGVja2luZyB0aGF0IHRoZSBnaXZlbiBVUkkgaXMgdmFsaWQsIGFuZCBidWlsZGluZyB0aGUgZmluYWwgVVJJIHVzaW5nIHRoZSBiYXNlIFVSSS4gVGhpcyBpcyBwcm9jZXNzZWQgYWNjb3JkaW5nIHRvIHNlY3Rpb24gNS4yIG9mIHRoZSBSRkMgMjM5NiAgNS4yLiBSZXNvbHZpbmcgUmVsYXRpdmUgUmVmZXJlbmNlcyB0byBBYnNvbHV0ZSBGb3JtPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgbmV3IFVSSSBzdHJpbmcgKHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIpIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBVUkkgaW5zdGFuY2UgZm91bmQgaW4gdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2Jhc2UnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGJhc2UgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxCeXRlQ29uc3VtZWQnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBjdXJyZW50IGluZGV4IG9mIHRoZSBwYXJzZXIgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGVudGl0eS4gVGhpcyBmdW5jdGlvbiBpcyBjb21wdXRlZCBpbiBieXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgc3RhcnRpbmcgYXQgemVybyBhbmQgZmluaXNoaW5nIGF0IHRoZSBzaXplIGluIGJ5dGUgb2YgdGhlIGZpbGUgaWYgcGFyc2luZyBhIGZpbGUuIFRoZSBmdW5jdGlvbiBpcyBvZiBjb25zdGFudCBjb3N0IGlmIHRoZSBpbnB1dCBpcyBVVEYtOCBidXQgY2FuIGJlIGNvc3RseSBpZiBydW4gb24gbm9uLVVURi04IGlucHV0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nbG9uZycgaW5mbz0ndGhlIGluZGV4IGluIGJ5dGVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZW50aXR5IG9yIC0xIGluIGNhc2UgdGhlIGluZGV4IGNvdWxkIG5vdCBiZSBjb21wdXRlZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQzE0TkRvY0R1bXBNZW1vcnknIGZpbGU9J2MxNG4nIG1vZHVsZT0nYzE0bic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DMTROX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcHMgdGhlIGNhbm9uaXplZCBpbWFnZSBvZiBnaXZlbiBYTUwgZG9jdW1lbnQgaW50byBtZW1vcnkuIEZvciBkZXRhaWxzIHNlZSAmcXVvdDtDYW5vbmljYWwgWE1MJnF1b3Q7IChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bikgb3IgJnF1b3Q7RXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uJnF1b3Q7IChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgdmFsdWUgb24gZmFpbCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIFhNTCBkb2N1bWVudCBmb3IgY2Fub25pemF0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgbm9kZXMgc2V0IHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb3IgTlVMTCBpZiBhbGwgZG9jdW1lbnQgbm9kZXMgc2hvdWxkIGJlIGluY2x1ZGVkJy8+CisgICAgICA8YXJnIG5hbWU9J21vZGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGMxNG4gbW9kZSAoc2VlIEB4bWxDMTROTW9kZSknLz4KKyAgICAgIDxhcmcgbmFtZT0naW5jbHVzaXZlX25zX3ByZWZpeGVzJyB0eXBlPSd4bWxDaGFyICoqJyBpbmZvPSd0aGUgbGlzdCBvZiBpbmNsdXNpdmUgbmFtZXNwYWNlIHByZWZpeGVzIGVuZGVkIHdpdGggYSBOVUxMIG9yIE5VTEwgaWYgdGhlcmUgaXMgbm8gaW5jbHVzaXZlIG5hbWVzcGFjZXMgKG9ubHkgZm9yIGV4Y2x1c2l2ZSBjYW5vbmljYWxpemF0aW9uLCBpZ25vcmVkIG90aGVyd2lzZSknLz4KKyAgICAgIDxhcmcgbmFtZT0nd2l0aF9jb21tZW50cycgdHlwZT0naW50JyBpbmZvPSdpbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90ICg9PTApJy8+CisgICAgICA8YXJnIG5hbWU9J2RvY190eHRfcHRyJyB0eXBlPSd4bWxDaGFyICoqJyBpbmZvPSd0aGUgbWVtb3J5IHBvaW50ZXIgZm9yIGFsbG9jYXRlZCBjYW5vbmljYWwgWE1MIHRleHQ7IHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbnMgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgeG1sRnJlZSgpIHRvIGZyZWUgYWxsb2NhdGVkIG1lbW9yeScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEMxNE5Eb2NTYXZlJyBmaWxlPSdjMTRuJyBtb2R1bGU9J2MxNG4nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQzE0Tl9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gdGhlIGZpbGUuIEZvciBkZXRhaWxzIHNlZSAmcXVvdDtDYW5vbmljYWwgWE1MJnF1b3Q7IChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bikgb3IgJnF1b3Q7RXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uJnF1b3Q7IChodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4pPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgdmFsdWUgb24gZmFpbCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIFhNTCBkb2N1bWVudCBmb3IgY2Fub25pemF0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgbm9kZXMgc2V0IHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb3IgTlVMTCBpZiBhbGwgZG9jdW1lbnQgbm9kZXMgc2hvdWxkIGJlIGluY2x1ZGVkJy8+CisgICAgICA8YXJnIG5hbWU9J21vZGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGMxNG4gbW9kZSAoc2VlIEB4bWxDMTROTW9kZSknLz4KKyAgICAgIDxhcmcgbmFtZT0naW5jbHVzaXZlX25zX3ByZWZpeGVzJyB0eXBlPSd4bWxDaGFyICoqJyBpbmZvPSd0aGUgbGlzdCBvZiBpbmNsdXNpdmUgbmFtZXNwYWNlIHByZWZpeGVzIGVuZGVkIHdpdGggYSBOVUxMIG9yIE5VTEwgaWYgdGhlcmUgaXMgbm8gaW5jbHVzaXZlIG5hbWVzcGFjZXMgKG9ubHkgZm9yIGV4Y2x1c2l2ZSBjYW5vbmljYWxpemF0aW9uLCBpZ25vcmVkIG90aGVyd2lzZSknLz4KKyAgICAgIDxhcmcgbmFtZT0nd2l0aF9jb21tZW50cycgdHlwZT0naW50JyBpbmZvPSdpbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90ICg9PTApJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZSB0byBzdG9yZSBjYW5vbmljYWwgWE1MIGltYWdlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbXByZXNzaW9uJyB0eXBlPSdpbnQnIGluZm89J3RoZSBjb21wcmVzc2lvbiBsZXZlbCAoemxpYiByZXF1cmVkKTogLTEgLSBsaWJ4bWwgZGVmYXVsdCwgMCAtIHVuY29tcHJlc3NlZCwgJmd0OzAgLSBjb21wcmVzc2lvbiBsZXZlbCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEMxNE5Eb2NTYXZlVG8nIGZpbGU9J2MxNG4nIG1vZHVsZT0nYzE0bic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DMTROX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcHMgdGhlIGNhbm9uaXplZCBpbWFnZSBvZiBnaXZlbiBYTUwgZG9jdW1lbnQgaW50byB0aGUgcHJvdmlkZWQgYnVmZmVyLiBGb3IgZGV0YWlscyBzZWUgJnF1b3Q7Q2Fub25pY2FsIFhNTCZxdW90OyAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG4pIG9yICZxdW90O0V4Y2x1c2l2ZSBYTUwgQ2Fub25pY2FsaXphdGlvbiZxdW90OyAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sLWV4Yy1jMTRuKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSdub24tbmVnYXRpdmUgdmFsdWUgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIHZhbHVlIG9uIGZhaWwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlcycgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0ndGhlIG5vZGVzIHNldCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgY2Fub25pemVkIGltYWdlIG9yIE5VTEwgaWYgYWxsIGRvY3VtZW50IG5vZGVzIHNob3VsZCBiZSBpbmNsdWRlZCcvPgorICAgICAgPGFyZyBuYW1lPSdtb2RlJyB0eXBlPSdpbnQnIGluZm89J3RoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpJy8+CisgICAgICA8YXJnIG5hbWU9J2luY2x1c2l2ZV9uc19wcmVmaXhlcycgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0ndGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyBlbmRlZCB3aXRoIGEgTlVMTCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vIGluY2x1c2l2ZSBuYW1lc3BhY2VzIChvbmx5IGZvciBleGNsdXNpdmUgY2Fub25pY2FsaXphdGlvbiwgaWdub3JlZCBvdGhlcndpc2UpJy8+CisgICAgICA8YXJnIG5hbWU9J3dpdGhfY29tbWVudHMnIHR5cGU9J2ludCcgaW5mbz0naW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKScvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG91dHB1dCBidWZmZXIgdG8gc3RvcmUgY2Fub25pY2FsIFhNTDsgdGhpcyBidWZmZXIgTVVTVCBoYXZlIGVuY29kZXI9PU5VTEwgYmVjYXVzZSBDMTROIHJlcXVpcmVzIFVURi04IG91dHB1dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEMxNE5FeGVjdXRlJyBmaWxlPSdjMTRuJyBtb2R1bGU9J2MxNG4nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQzE0Tl9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXBzIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb2YgZ2l2ZW4gWE1MIGRvY3VtZW50IGludG8gdGhlIHByb3ZpZGVkIGJ1ZmZlci4gRm9yIGRldGFpbHMgc2VlICZxdW90O0Nhbm9uaWNhbCBYTUwmcXVvdDsgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1jMTRuKSBvciAmcXVvdDtFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24mcXVvdDsgKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bik8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nbm9uLW5lZ2F0aXZlIHZhbHVlIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBmYWlsJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgWE1MIGRvY3VtZW50IGZvciBjYW5vbml6YXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naXNfdmlzaWJsZV9jYWxsYmFjaycgdHlwZT0neG1sQzE0TklzVmlzaWJsZUNhbGxiYWNrJyBpbmZvPSd0aGUgZnVuY3Rpb24gdG8gdXNlIHRvIGRldGVybWluZSBpcyBub2RlIHZpc2libGUgb3Igbm90Jy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJfZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgZmlyc3QgcGFyYW1ldGVyIGZvciBAaXNfdmlzaWJsZV9jYWxsYmFjayBmdW5jdGlvbiAoaW4gbW9zdCBjYXNlcywgaXQgaXMgbm9kZXMgc2V0KScvPgorICAgICAgPGFyZyBuYW1lPSdtb2RlJyB0eXBlPSdpbnQnIGluZm89J3RoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpJy8+CisgICAgICA8YXJnIG5hbWU9J2luY2x1c2l2ZV9uc19wcmVmaXhlcycgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0ndGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyBlbmRlZCB3aXRoIGEgTlVMTCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vIGluY2x1c2l2ZSBuYW1lc3BhY2VzIChvbmx5IGZvciBleGNsdXNpdmUgY2Fub25pY2FsaXphdGlvbiwgaWdub3JlZCBvdGhlcndpc2UpJy8+CisgICAgICA8YXJnIG5hbWU9J3dpdGhfY29tbWVudHMnIHR5cGU9J2ludCcgaW5mbz0naW5jbHVkZSBjb21tZW50cyBpbiB0aGUgcmVzdWx0ICghPTApIG9yIG5vdCAoPT0wKScvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG91dHB1dCBidWZmZXIgdG8gc3RvcmUgY2Fub25pY2FsIFhNTDsgdGhpcyBidWZmZXIgTVVTVCBoYXZlIGVuY29kZXI9PU5VTEwgYmVjYXVzZSBDMTROIHJlcXVpcmVzIFVURi04IG91dHB1dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbEMxNE5Jc1Zpc2libGVDYWxsYmFjaycgZmlsZT0nYzE0bicgbW9kdWxlPSdjMTRuJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0MxNE5fRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TaWduYXR1cmUgZm9yIGEgQzE0TiBjYWxsYmFjayBvbiB2aXNpYmxlIG5vZGVzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdGhlIG5vZGUgc2hvdWxkIGJlIGluY2x1ZGVkJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJfZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSd1c2VyIGRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cmVudCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J3BhcmVudCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHBhcmVudCBub2RlJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2Fub25pY1BhdGgnIGZpbGU9J3VyaScgbW9kdWxlPSd1cmknPgorICAgICAgPGluZm8+Q29uc3RydWN0cyBhIGNhbm9uaWMgcGF0aCBmcm9tIHRoZSBzcGVjaWZpZWQgcGF0aC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXcgY2Fub25pYyBwYXRoLCBvciBhIGR1cGxpY2F0ZSBvZiB0aGUgcGF0aCBwYXJhbWV0ZXIgaWYgdGhlIGNvbnN0cnVjdGlvbiBmYWlscy4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXR1cm5lZCBzdHJpbmcuIElmIHRoZXJlIGlzIGluc3VmZmljaWVudCBtZW1vcnkgYXZhaWxhYmxlLCBvciB0aGUgYXJndW1lbnQgaXMgTlVMTCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncGF0aCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcmVzb3VyY2UgbG9jYXRvciBpbiBhIGZpbGVzeXN0ZW0gbm90YXRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDYXRhbG9nQWRkJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFkZCBhbiBlbnRyeSBpbiB0aGUgY2F0YWxvZywgaXQgbWF5IG92ZXJ3cml0ZSBleGlzdGluZyBidXQgZGlmZmVyZW50IGVudHJpZXMuIElmIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIGNhdGFsb2cgcm91dGluZSwgYWxsb3dzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHNoYXJlZCBjYXRhbG9nIHB1dCBpbiBwbGFjZSBieSB4bWxJbml0aWFsaXplQ2F0YWxvZygpOzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSd0eXBlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB0eXBlIG9mIHJlY29yZCB0byBhZGQgdG8gdGhlIGNhdGFsb2cnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3JpZycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtLCBwdWJsaWMgb3IgcHJlZml4IHRvIG1hdGNoJy8+CisgICAgICA8YXJnIG5hbWU9J3JlcGxhY2UnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHJlcGxhY2VtZW50IHZhbHVlIGZvciB0aGUgbWF0Y2gnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDYXRhbG9nQWRkTG9jYWwnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QWRkIHRoZSBuZXcgZW50cnkgdG8gdGhlIGNhdGFsb2cgbGlzdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXBkYXRlZCBsaXN0Jy8+CisgICAgICA8YXJnIG5hbWU9J2NhdGFsb2dzJyB0eXBlPSd2b2lkIConIGluZm89J2EgZG9jdW1lbnQmYXBvcztzIGxpc3Qgb2YgY2F0YWxvZ3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBVUkwgdG8gYSBuZXcgbG9jYWwgY2F0YWxvZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dDbGVhbnVwJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgdXAgYWxsIHRoZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIGNhdGFsb2dzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2F0YWxvZ0NvbnZlcnQnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydCBhbGwgdGhlIFNHTUwgY2F0YWxvZyBlbnRyaWVzIGFzIFhNTCBvbmVzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgZW50cmllcyBjb252ZXJ0ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2F0YWxvZ0R1bXAnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbGwgdGhlIGdsb2JhbCBjYXRhbG9nIGNvbnRlbnQgdG8gdGhlIGdpdmVuIGZpbGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J291dCcgdHlwZT0nRklMRSAqJyBpbmZvPSd0aGUgZmlsZS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDYXRhbG9nRnJlZUxvY2FsJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgdXAgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHRvIHRoZSBjYXRhbG9nIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2F0YWxvZ3MnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYSBkb2N1bWVudCZhcG9zO3MgbGlzdCBvZiBjYXRhbG9ncycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dHZXREZWZhdWx0cycgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Vc2VkIHRvIGdldCB0aGUgdXNlciBwcmVmZXJlbmNlIHcuci50LiB0byB3aGF0IGNhdGFsb2dzIHNob3VsZCBiZSBhY2NlcHRlZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2F0YWxvZ0FsbG93JyBpbmZvPSd0aGUgY3VycmVudCB4bWxDYXRhbG9nQWxsb3cgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDYXRhbG9nR2V0UHVibGljJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgcmVmZXJlbmNlIGFzc29jaWF0ZWQgdG8gYSBwdWJsaWMgSUQgREVQUkVDQVRFRCwgdXNlIHhtbENhdGFsb2dSZXNvbHZlUHVibGljKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLicvPgorICAgICAgPGFyZyBuYW1lPSdwdWJJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIElEIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dHZXRTeXN0ZW0nIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJ5IHRvIGxvb2t1cCB0aGUgY2F0YWxvZyByZWZlcmVuY2UgYXNzb2NpYXRlZCB0byBhIHN5c3RlbSBJRCBERVBSRUNBVEVELCB1c2UgeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0oKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcmVzb3VyY2UgaWYgZm91bmQgb3IgTlVMTCBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J3N5c0lEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzeXN0ZW0gSUQgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2F0YWxvZ0lzRW1wdHknIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgaXMgYSBjYXRhbG9nIGlzIGVtcHR5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdGhlIGNhdGFsb2cgaXMgZW1wdHksIDAgaWYgbm90LCBhbWQgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY2F0YWwnIHR5cGU9J3htbENhdGFsb2dQdHInIGluZm89J3Nob3VsZCB0aGlzIGNyZWF0ZSBhbiBTR01MIGNhdGFsb2cnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDYXRhbG9nTG9jYWxSZXNvbHZlJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gRXh0ZXJuYWwgSWRlbnRpZmllciB1c2luZyBhIGRvY3VtZW50JmFwb3M7cyBwcml2YXRlIGNhdGFsb2cgbGlzdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdjYXRhbG9ncycgdHlwZT0ndm9pZCAqJyBpbmZvPSdhIGRvY3VtZW50JmFwb3M7cyBsaXN0IG9mIGNhdGFsb2dzJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YklEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwdWJsaWMgSUQgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J3N5c0lEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzeXN0ZW0gSUQgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSScgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIFVSSSB1c2luZyBhIGRvY3VtZW50JmFwb3M7cyBwcml2YXRlIGNhdGFsb2cgbGlzdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdjYXRhbG9ncycgdHlwZT0ndm9pZCAqJyBpbmZvPSdhIGRvY3VtZW50JmFwb3M7cyBsaXN0IG9mIGNhdGFsb2dzJy8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2F0YWxvZ1JlbW92ZScgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgY2F0YWxvZzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGVudHJpZXMgcmVtb3ZlZCBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlIHRvIHJlbW92ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dSZXNvbHZlJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRvIGEgY29tcGxldGUgcmVzb2x1dGlvbiBsb29rdXAgb2YgYW4gRXh0ZXJuYWwgSWRlbnRpZmllcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdwdWJJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIElEIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdzeXNJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIElEIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dSZXNvbHZlUHVibGljJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgcmVmZXJlbmNlIGFzc29jaWF0ZWQgdG8gYSBwdWJsaWMgSUQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHJlc291cmNlIGlmIGZvdW5kIG9yIE5VTEwgb3RoZXJ3aXNlLCB0aGUgdmFsdWUgcmV0dXJuZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdwdWJJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIElEIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dSZXNvbHZlU3lzdGVtJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byBsb29rdXAgdGhlIGNhdGFsb2cgcmVzb3VyY2UgZm9yIGEgc3lzdGVtIElEPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSByZXNvdXJjZSBpZiBmb3VuZCBvciBOVUxMIG90aGVyd2lzZSwgdGhlIHZhbHVlIHJldHVybmVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3lzSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN5c3RlbSBJRCBzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDYXRhbG9nUmVzb2x2ZVVSSScgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EbyBhIGNvbXBsZXRlIHJlc29sdXRpb24gbG9va3VwIG9mIGFuIFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBvciBOVUxMIGlmIG5vdCBmb3VuZCwgaXQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFVSSScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dTZXREZWJ1ZycgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Vc2VkIHRvIHNldCB0aGUgZGVidWcgbGV2ZWwgZm9yIGNhdGFsb2cgb3BlcmF0aW9uLCAwIGRpc2FibGUgZGVidWdnaW5nLCAxIGVuYWJsZSBpdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGNhdGFsb2cgZGVidWdnaW5nIGxldmVsJy8+CisgICAgICA8YXJnIG5hbWU9J2xldmVsJyB0eXBlPSdpbnQnIGluZm89J3RoZSBkZWJ1ZyBsZXZlbCBvZiBjYXRhbG9ncyByZXF1aXJlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFsbG93cyB0byBzZXQgdGhlIHByZWZlcmVuY2UgYmV0d2VlbiBwdWJsaWMgYW5kIHN5c3RlbSBmb3IgZGVsZXRpb24gaW4gWE1MIENhdGFsb2cgcmVzb2x1dGlvbi4gQy5mLiBzZWN0aW9uIDQuMS4xIG9mIHRoZSBzcGVjIFZhbHVlcyBhY2NlcHRlZCBhcmUgWE1MX0NBVEFfUFJFRkVSX1BVQkxJQyBvciBYTUxfQ0FUQV9QUkVGRVJfU1lTVEVNPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDYXRhbG9nUHJlZmVyJyBpbmZvPSd0aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSBmb3IgZGVsZWdhdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmZXInIHR5cGU9J3htbENhdGFsb2dQcmVmZXInIGluZm89J3RoZSBkZWZhdWx0IHByZWZlcmVuY2UgZm9yIGRlbGVnYXRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDYXRhbG9nU2V0RGVmYXVsdHMnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VXNlZCB0byBzZXQgdGhlIHVzZXIgcHJlZmVyZW5jZSB3LnIudC4gdG8gd2hhdCBjYXRhbG9ncyBzaG91bGQgYmUgYWNjZXB0ZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYWxsb3cnIHR5cGU9J3htbENhdGFsb2dBbGxvdycgaW5mbz0nd2hhdCBjYXRhbG9ncyBzaG91bGQgYmUgYWNjZXB0ZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDaGFyRW5jQ2xvc2VGdW5jJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5HZW5lcmljIGZyb250LWVuZCBmb3IgZW5jb2RpbmcgaGFuZGxlciBjbG9zZSBmdW5jdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3MsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0naGFuZGxlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlciAqJyBpbmZvPSdjaGFyIGVuY29uZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENoYXJFbmNGaXJzdExpbmUnIGZpbGU9J2VuY29kaW5nJyBtb2R1bGU9J2VuY29kaW5nJz4KKyAgICAgIDxpbmZvPkZyb250LWVuZCBmb3IgdGhlIGVuY29kaW5nIGhhbmRsZXIgaW5wdXQgZnVuY3Rpb24sIGJ1dCBoYW5kbGUgb25seSB0aGUgdmVyeSBmaXJzdCBsaW5lLCBpLmUuIGxpbWl0IGl0c2VsZiB0byA0NSBjaGFycy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgLTEgZ2VuZXJhbCBlcnJvciAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGZvciAqaW4gaXMgbm90IHZhbGlkIHV0Zjggc3RyaW5nIG9yIHRoZSByZXN1bHQgb2YgdHJhbnNmb3JtYXRpb24gY2FuJmFwb3M7dCBmaXQgaW50byB0aGUgZW5jb2Rpbmcgd2Ugd2FudCksIG9yJy8+CisgICAgICA8YXJnIG5hbWU9J2hhbmRsZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXIgKicgaW5mbz0nY2hhciBlbmNvbmRpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0JyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J2FuIHhtbEJ1ZmZlciBmb3IgdGhlIG91dHB1dC4nLz4KKyAgICAgIDxhcmcgbmFtZT0naW4nIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0nYW4geG1sQnVmZmVyIGZvciB0aGUgaW5wdXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDaGFyRW5jSW5GdW5jJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5HZW5lcmljIGZyb250LWVuZCBmb3IgdGhlIGVuY29kaW5nIGhhbmRsZXIgaW5wdXQgZnVuY3Rpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgLTEgZ2VuZXJhbCBlcnJvciAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGZvciAqaW4gaXMgbm90IHZhbGlkIHV0Zjggc3RyaW5nIG9yIHRoZSByZXN1bHQgb2YgdHJhbnNmb3JtYXRpb24gY2FuJmFwb3M7dCBmaXQgaW50byB0aGUgZW5jb2Rpbmcgd2Ugd2FudCksIG9yJy8+CisgICAgICA8YXJnIG5hbWU9J2hhbmRsZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXIgKicgaW5mbz0nY2hhciBlbmNvZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZScvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0nYW4geG1sQnVmZmVyIGZvciB0aGUgb3V0cHV0LicvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSdhbiB4bWxCdWZmZXIgZm9yIHRoZSBpbnB1dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENoYXJFbmNPdXRGdW5jJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5HZW5lcmljIGZyb250LWVuZCBmb3IgdGhlIGVuY29kaW5nIGhhbmRsZXIgb3V0cHV0IGZ1bmN0aW9uIGEgZmlyc3QgY2FsbCB3aXRoIEBpbiA9PSBOVUxMIGhhcyB0byBiZSBtYWRlIGZpcnMgdG8gaW5pdGlhdGUgdGhlIG91dHB1dCBpbiBjYXNlIG9mIG5vbi1zdGF0ZWxlc3MgZW5jb2RpbmcgbmVlZGluZyB0byBpbml0aWF0ZSB0aGVpciBzdGF0ZSBvciB0aGUgb3V0cHV0IChsaWtlIHRoZSBCT00gaW4gVVRGMTYpLiBJbiBjYXNlIG9mIFVURjggc2VxdWVuY2UgY29udmVyc2lvbiBlcnJvcnMgZm9yIHRoZSBnaXZlbiBlbmNvZGVyLCB0aGUgY29udGVudCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVtYXBwZWQgdG8gYSBDaGFyUmVmIHNlcXVlbmNlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBpZiBzdWNjZXNzLCBvciAtMSBnZW5lcmFsIGVycm9yIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscyAoZm9yICppbiBpcyBub3QgdmFsaWQgdXRmOCBzdHJpbmcgb3IgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1hdGlvbiBjYW4mYXBvczt0IGZpdCBpbnRvIHRoZSBlbmNvZGluZyB3ZSB3YW50KSwgb3InLz4KKyAgICAgIDxhcmcgbmFtZT0naGFuZGxlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlciAqJyBpbmZvPSdjaGFyIGVuY29uZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZScvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0nYW4geG1sQnVmZmVyIGZvciB0aGUgb3V0cHV0LicvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSdhbiB4bWxCdWZmZXIgZm9yIHRoZSBpbnB1dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbENoYXJFbmNvZGluZ0lucHV0RnVuYycgZmlsZT0nZW5jb2RpbmcnIG1vZHVsZT0nZW5jb2RpbmcnPgorICAgICAgPGluZm8+VGFrZSBhIGJsb2NrIG9mIGNoYXJzIGluIHRoZSBvcmlnaW5hbCBlbmNvZGluZyBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gVVRGLTggYmxvY2sgb2YgY2hhcnMgb3V0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIC0xIGlmIGxhY2sgb2Ygc3BhY2UsIG9yIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlsZWQuIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0aWFibGUuIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0JyB0eXBlPSd1bnNpZ25lZCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgVVRGLTggcmVzdWx0Jy8+CisgICAgICA8YXJnIG5hbWU9J291dGxlbicgdHlwZT0naW50IConIGluZm89J3RoZSBsZW5ndGggb2YgQG91dCcvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0nY29uc3QgdW5zaWduZWQgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnMgaW4gdGhlIG9yaWdpbmFsIGVuY29kaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2lubGVuJyB0eXBlPSdpbnQgKicgaW5mbz0ndGhlIGxlbmd0aCBvZiBAaW4nLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5UYWtlIGEgYmxvY2sgb2YgVVRGLTggY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFub3RoZXIgZW5jb2RpbmcuIE5vdGU6IGEgZmlyc3QgY2FsbCBkZXNpZ25lZCB0byBwcm9kdWNlIGhlYWRpbmcgaW5mbyBpcyBjYWxsZWQgd2l0aCBpbiA9IE5VTEwuIElmIHN0YXRlZnVsIHRoaXMgc2hvdWxkIGFsc28gaW5pdGlhbGl6ZSB0aGUgZW5jb2RlciBzdGF0ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLCAtMSBpZiBsYWNrIG9mIHNwYWNlLCBvciAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbGVkLiBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZCBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGlhYmxlLiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgcHJvZHVjZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J291dCcgdHlwZT0ndW5zaWduZWQgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRsZW4nIHR5cGU9J2ludCAqJyBpbmZvPSd0aGUgbGVuZ3RoIG9mIEBvdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0naW4nIHR5cGU9J2NvbnN0IHVuc2lnbmVkIGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzJy8+CisgICAgICA8YXJnIG5hbWU9J2lubGVuJyB0eXBlPSdpbnQgKicgaW5mbz0ndGhlIGxlbmd0aCBvZiBAaW4nLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDaGFySW5SYW5nZScgZmlsZT0nY2h2YWxpZCcgbW9kdWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPkRvZXMgYSBiaW5hcnkgc2VhcmNoIG9mIHRoZSByYW5nZSB0YWJsZSB0byBkZXRlcm1pbmUgaWYgY2hhciBpcyB2YWxpZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGNoYXJhY3RlciB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0ndW5zaWduZWQgaW50JyBpbmZvPSdjaGFyYWN0ZXIgdG8gYmUgdmFsaWRhdGVkJy8+CisgICAgICA8YXJnIG5hbWU9J3JwdHInIHR5cGU9J2NvbnN0IHhtbENoUmFuZ2VHcm91cCAqJyBpbmZvPSdwb2ludGVyIHRvIHJhbmdlIHRvIGJlIHVzZWQgdG8gdmFsaWRhdGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDaGFyU3RyZHVwJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmEgc3RyZHVwIGZvciBjaGFyJmFwb3M7cyB0byB4bWxDaGFyJmFwb3M7czwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIG5ldyB4bWxDaGFyICogb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGlucHV0IGNoYXIgKicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENoYXJTdHJuZHVwJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmEgc3RybmR1cCBmb3IgY2hhciZhcG9zO3MgdG8geG1sQ2hhciZhcG9zO3M8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXcgeG1sQ2hhciAqIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBpbnB1dCBjaGFyIConLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW4gb2YgQGN1cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENoZWNrRmlsZW5hbWUnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPmZ1bmN0aW9uIGNoZWNrcyB0byBzZWUgaWYgQHBhdGggaXMgYSB2YWxpZCBzb3VyY2UgKGZpbGUsIHNvY2tldC4uLikgZm9yIFhNTC4gIGlmIHN0YXQgaXMgbm90IGF2YWlsYWJsZSBvbiB0aGUgdGFyZ2V0IG1hY2hpbmUsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEuICBpZiBzdGF0IGZhaWxzLCByZXR1cm5zIDAgKGlmIGNhbGxpbmcgc3RhdCBvbiB0aGUgZmlsZW5hbWUgZmFpbHMsIGl0IGNhbiZhcG9zO3QgYmUgcmlnaHQpLiBpZiBzdGF0IHN1Y2NlZWRzIGFuZCB0aGUgZmlsZSBpcyBhIGRpcmVjdG9yeSwgcmV0dXJucyAyLiAgb3RoZXJ3aXNlIHJldHVybnMgMS4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncGF0aCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgcGF0aCB0byBjaGVjaycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENoZWNrSFRUUElucHV0JyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5DaGVjayBhbiBpbnB1dCBpbiBjYXNlIGl0IHdhcyBjcmVhdGVkIGZyb20gYW4gSFRUUCBzdHJlYW0sIGluIHRoYXQgY2FzZSBpdCB3aWxsIGhhbmRsZSBlbmNvZGluZyBhbmQgdXBkYXRlIG9mIHRoZSBiYXNlIFVSTCBpbiBjYXNlIG9mIHJlZGlyZWN0aW9uLiBJdCBhbHNvIGNoZWNrcyBmb3IgSFRUUCBlcnJvcnMgaW4gd2hpY2ggY2FzZSB0aGUgaW5wdXQgaXMgY2xlYW5seSBmcmVlZCB1cCBhbmQgYW4gYXBwcm9wcmlhdGUgZXJyb3IgaXMgcmFpc2VkIGluIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSd0aGUgaW5wdXQgb3IgTlVMTCBpbiBjYXNlIG9mIEhUVFAgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdyZXQnIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGlucHV0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2hlY2tMYW5ndWFnZUlEJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNoZWNrcyB0aGF0IHRoZSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgTGFuZ3VhZ2VJRCBwcm9kdWN0aW9uOiAgTk9URTogdGhpcyBpcyBzb21ld2hhdCBkZXByZWNhdGVkLCB0aG9zZSBwcm9kdWN0aW9ucyB3ZXJlIHJlbW92ZWQgZnJvbSB0aGUgWE1MIFNlY29uZCBlZGl0aW9uLiAgWzMzXSBMYW5ndWFnZUlEIDo6PSBMYW5nY29kZSAoJmFwb3M7LSZhcG9zOyBTdWJjb2RlKSogWzM0XSBMYW5nY29kZSA6Oj0gSVNPNjM5Q29kZSB8ICBJYW5hQ29kZSB8ICBVc2VyQ29kZSBbMzVdIElTTzYzOUNvZGUgOjo9IChbYS16XSB8IFtBLVpdKSAoW2Etel0gfCBbQS1aXSkgWzM2XSBJYW5hQ29kZSA6Oj0gKCZhcG9zO2kmYXBvczsgfCAmYXBvcztJJmFwb3M7KSAmYXBvczstJmFwb3M7IChbYS16XSB8IFtBLVpdKSsgWzM3XSBVc2VyQ29kZSA6Oj0gKCZhcG9zO3gmYXBvczsgfCAmYXBvcztYJmFwb3M7KSAmYXBvczstJmFwb3M7IChbYS16XSB8IFtBLVpdKSsgWzM4XSBTdWJjb2RlIDo6PSAoW2Etel0gfCBbQS1aXSkrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgY29ycmVjdCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdsYW5nJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3BvaW50ZXIgdG8gdGhlIHN0cmluZyB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENoZWNrVVRGOCcgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5DaGVja3MgQHV0ZiBmb3IgYmVpbmcgdmFsaWQgVVRGLTguIEB1dGYgaXMgYXNzdW1lZCB0byBiZSBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgZnVuY3Rpb24gaXMgbm90IHN1cGVyLXN0cmljdCwgYXMgaXQgd2lsbCBhbGxvdyBsb25nZXIgVVRGLTggc2VxdWVuY2VzIHRoYW4gbmVjZXNzYXJ5LiBOb3RlIHRoYXQgSmF2YSBpcyBjYXBhYmxlIG9mIHByb2R1Y2luZyB0aGVzZSBzZXF1ZW5jZXMgaWYgcHJvdm9rZWQuIEFsc28gbm90ZSwgdGhpcyByb3V0aW5lIGNoZWNrcyBmb3IgdGhlIDQtYnl0ZSBtYXhpbXVtIHNpemUsIGJ1dCBkb2VzIG5vdCBjaGVjayBmb3IgMHgxMGZmZmYgbWF4aW11bSB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndmFsdWU6IHRydWUgaWYgQHV0ZiBpcyB2YWxpZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndXRmJyB0eXBlPSdjb25zdCB1bnNpZ25lZCBjaGFyIConIGluZm89J1BvaW50ZXIgdG8gcHV0YXRpdmUgVVRGLTggZW5jb2RlZCBzdHJpbmcuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2hlY2tWZXJzaW9uJyBmaWxlPSd4bWx2ZXJzaW9uJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5jaGVjayB0aGUgY29tcGlsZWQgbGliIHZlcnNpb24gYWdhaW5zdCB0aGUgaW5jbHVkZSBvbmUuIFRoaXMgY2FuIHdhcm4gb3IgaW1tZWRpYXRlbHkga2lsbCB0aGUgYXBwbGljYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmVyc2lvbicgdHlwZT0naW50JyBpbmZvPSd0aGUgaW5jbHVkZSB2ZXJzaW9uIG51bWJlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENoaWxkRWxlbWVudENvdW50JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZpbmRzIHRoZSBjdXJyZW50IG51bWJlciBvZiBjaGlsZCBub2RlcyBvZiB0aGF0IGVsZW1lbnQgd2hpY2ggYXJlIGVsZW1lbnQgbm9kZXMuIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4gdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24mYXBvczt0IGhhdmUgYmFjayByZWZlcmVuY2UgZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd1bnNpZ25lZCBsb25nJyBpbmZvPSd0aGUgY291bnQgb2YgZWxlbWVudCBjaGlsZCBvciAwIGlmIG5vdCBhdmFpbGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0ncGFyZW50JyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgcGFyZW50IG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMnIGZpbGU9J2VuY29kaW5nJyBtb2R1bGU9J2VuY29kaW5nJz4KKyAgICAgIDxpbmZvPkNsZWFudXAgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBjaGFyIGVuY29kaW5nIHN1cHBvcnQsIGl0IHVucmVnaXN0ZXJzIGFsbCB0aGUgZW5jb2RpbmcgaGFuZGxlcnMgYW5kIHRoZSBhbGlhc2VzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENsZWFudXBFbmNvZGluZ0FsaWFzZXMnIGZpbGU9J2VuY29kaW5nJyBtb2R1bGU9J2VuY29kaW5nJz4KKyAgICAgIDxpbmZvPlVucmVnaXN0ZXJzIGFsbCBhbGlhc2VzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2xlYW51cEdsb2JhbHMnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz5BZGRpdGlvbmFsIGNsZWFudXAgZm9yIG11bHRpLXRocmVhZGluZzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENsZWFudXBJbnB1dENhbGxiYWNrcycgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+Y2xlYXJzIHRoZSBlbnRpcmUgaW5wdXQgY2FsbGJhY2sgdGFibGUuIHRoaXMgaW5jbHVkZXMgdGhlIGNvbXBpbGVkLWluIEkvTy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDbGVhbnVwTWVtb3J5JyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPkZyZWUgdXAgYWxsIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSBsaWJyYXJ5IGZvciBpdHMgb3duIHVzZS4gVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBieSB1c2VyIGxldmVsIGNvZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcycgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Y2xlYXJzIHRoZSBlbnRpcmUgb3V0cHV0IGNhbGxiYWNrIHRhYmxlLiB0aGlzIGluY2x1ZGVzIHRoZSBjb21waWxlZC1pbiBJL08gY2FsbGJhY2tzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENsZWFudXBQYXJzZXInIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+VGhpcyBmdW5jdGlvbiBuYW1lIGlzIHNvbWV3aGF0IG1pc2xlYWRpbmcuIEl0IGRvZXMgbm90IGNsZWFuIHVwIHBhcnNlciBzdGF0ZSwgaXQgY2xlYW5zIHVwIG1lbW9yeSBhbGxvY2F0ZWQgYnkgdGhlIGxpYnJhcnkgaXRzZWxmLiBJdCBpcyBhIGNsZWFudXAgZnVuY3Rpb24gZm9yIHRoZSBYTUwgbGlicmFyeS4gSXQgdHJpZXMgdG8gcmVjbGFpbSBhbGwgcmVsYXRlZCBnbG9iYWwgbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhlIGxpYnJhcnkgcHJvY2Vzc2luZy4gSXQgZG9lc24mYXBvczt0IGRlYWxsb2NhdGUgYW55IGRvY3VtZW50IHJlbGF0ZWQgbWVtb3J5LiBPbmUgc2hvdWxkIGNhbGwgeG1sQ2xlYW51cFBhcnNlcigpIG9ubHkgd2hlbiB0aGUgcHJvY2VzcyBoYXMgZmluaXNoZWQgdXNpbmcgdGhlIGxpYnJhcnkgYW5kIGFsbCBYTUwvSFRNTCBkb2N1bWVudHMgYnVpbHQgd2l0aCBpdC4gU2VlIGFsc28geG1sSW5pdFBhcnNlcigpIHdoaWNoIGhhcyB0aGUgb3Bwb3NpdGUgZnVuY3Rpb24gb2YgcHJlcGFyaW5nIHRoZSBsaWJyYXJ5IGZvciBvcGVyYXRpb25zLiAgV0FSTklORzogaWYgeW91ciBhcHBsaWNhdGlvbiBpcyBtdWx0aXRocmVhZGVkIG9yIGhhcyBwbHVnaW4gc3VwcG9ydCBjYWxsaW5nIHRoaXMgbWF5IGNyYXNoIHRoZSBhcHBsaWNhdGlvbiBpZiBhbm90aGVyIHRocmVhZCBvciBhIHBsdWdpbiBpcyBzdGlsbCB1c2luZyBsaWJ4bWwyLiBJdCZhcG9zO3Mgc29tZXRpbWVzIHZlcnkgaGFyZCB0byBndWVzcyBpZiBsaWJ4bWwyIGlzIGluIHVzZSBpbiB0aGUgYXBwbGljYXRpb24sIHNvbWUgbGlicmFyaWVzIG9yIHBsdWdpbnMgbWF5IHVzZSBpdCB3aXRob3V0IG5vdGljZS4gSW4gY2FzZSBvZiBkb3VidCBhYnN0YWluIGZyb20gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9yIGRvIGl0IGp1c3QgYmVmb3JlIGNhbGxpbmcgZXhpdCgpIHRvIGF2b2lkIGxlYWsgcmVwb3J0cyBmcm9tIHZhbGdyaW5kICE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzJyBmaWxlPSdlbnRpdGllcycgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2xlYW51cCB1cCB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcyB0YWJsZS4gRGVwcmVjYXRlZCBjYWxsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ2xlYW51cFRocmVhZHMnIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz54bWxDbGVhbnVwVGhyZWFkcygpIGlzIHVzZWQgdG8gdG8gY2xlYW51cCBhbGwgdGhlIHRocmVhZCByZWxhdGVkIGRhdGEgb2YgdGhlIGxpYnhtbDIgbGlicmFyeSBvbmNlIHByb2Nlc3NpbmcgaGFzIGVuZGVkLiAgV0FSTklORzogaWYgeW91ciBhcHBsaWNhdGlvbiBpcyBtdWx0aXRocmVhZGVkIG9yIGhhcyBwbHVnaW4gc3VwcG9ydCBjYWxsaW5nIHRoaXMgbWF5IGNyYXNoIHRoZSBhcHBsaWNhdGlvbiBpZiBhbm90aGVyIHRocmVhZCBvciBhIHBsdWdpbiBpcyBzdGlsbCB1c2luZyBsaWJ4bWwyLiBJdCZhcG9zO3Mgc29tZXRpbWVzIHZlcnkgaGFyZCB0byBndWVzcyBpZiBsaWJ4bWwyIGlzIGluIHVzZSBpbiB0aGUgYXBwbGljYXRpb24sIHNvbWUgbGlicmFyaWVzIG9yIHBsdWdpbnMgbWF5IHVzZSBpdCB3aXRob3V0IG5vdGljZS4gSW4gY2FzZSBvZiBkb3VidCBhYnN0YWluIGZyb20gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9yIGRvIGl0IGp1c3QgYmVmb3JlIGNhbGxpbmcgZXhpdCgpIHRvIGF2b2lkIGxlYWsgcmVwb3J0cyBmcm9tIHZhbGdyaW5kICE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDbGVhck5vZGVJbmZvU2VxJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPi0tIENsZWFyIChyZWxlYXNlIG1lbW9yeSBhbmQgcmVpbml0aWFsaXplKSBub2RlIGluZm8gc2VxdWVuY2U8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2VxJyB0eXBlPSd4bWxQYXJzZXJOb2RlSW5mb1NlcVB0cicgaW5mbz0nYSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENsZWFyUGFyc2VyQ3R4dCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5DbGVhciAocmVsZWFzZSBvd25lZCByZXNvdXJjZXMpIGFuZCByZWluaXRpYWxpemUgYSBwYXJzZXIgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDb252ZXJ0U0dNTENhdGFsb2cnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydCBhbGwgdGhlIFNHTUwgY2F0YWxvZyBlbnRyaWVzIGFzIFhNTCBvbmVzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgZW50cmllcyBjb252ZXJ0ZWQgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NhdGFsJyB0eXBlPSd4bWxDYXRhbG9nUHRyJyBpbmZvPSd0aGUgY2F0YWxvZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENvcHlBdHRyaWJ1dGVUYWJsZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkJ1aWxkIGEgY29weSBvZiBhbiBhdHRyaWJ1dGUgdGFibGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdHRyaWJ1dGVUYWJsZVB0cicgaW5mbz0ndGhlIG5ldyB4bWxBdHRyaWJ1dGVUYWJsZVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxBdHRyaWJ1dGVUYWJsZVB0cicgaW5mbz0nQW4gYXR0cmlidXRlIHRhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ29weUNoYXInIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+YXBwZW5kIHRoZSBjaGFyIHZhbHVlIGluIHRoZSBhcnJheTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIHhtbENoYXIgd3JpdHRlbicvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0nSWdub3JlZCwgY29tcGF0aWJpbGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdvdXQnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ncG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0naW50JyBpbmZvPSd0aGUgY2hhciB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENvcHlDaGFyTXVsdGlCeXRlJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmFwcGVuZCB0aGUgY2hhciB2YWx1ZSBpbiB0aGUgYXJyYXk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiB4bWxDaGFyIHdyaXR0ZW4nLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0JyB0eXBlPSd4bWxDaGFyIConIGluZm89J3BvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGNoYXIgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDb3B5RG9jJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RG8gYSBjb3B5IG9mIHRoZSBkb2N1bWVudCBpbmZvLiBJZiByZWN1cnNpdmUsIHRoZSBjb250ZW50IHRyZWUgd2lsbCBiZSBjb3BpZWQgdG9vIGFzIHdlbGwgYXMgRFRELCBuYW1lc3BhY2VzIGFuZCBlbnRpdGllcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBuZXcgI3htbERvY1B0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J3JlY3Vyc2l2ZScgdHlwZT0naW50JyBpbmZvPSdpZiBub3QgemVybyBkbyBhIHJlY3Vyc2l2ZSBjb3B5LicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENvcHlEb2NFbGVtZW50Q29udGVudCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+QnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgY29udGVudCBkZXNjcmlwdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVsZW1lbnRDb250ZW50UHRyJyBpbmZvPSd0aGUgbmV3IHhtbEVsZW1lbnRDb250ZW50UHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCBvd25pbmcgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxFbGVtZW50Q29udGVudFB0cicgaW5mbz0nQW4gZWxlbWVudCBjb250ZW50IHBvaW50ZXIuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ29weUR0ZCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EbyBhIGNvcHkgb2YgdGhlIGR0ZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbER0ZFB0cicgaW5mbz0nYSBuZXcgI3htbER0ZFB0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdkdGQnIHR5cGU9J3htbER0ZFB0cicgaW5mbz0ndGhlIGR0ZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENvcHlFbGVtZW50Q29udGVudCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+QnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgY29udGVudCBkZXNjcmlwdGlvbi4gRGVwcmVjYXRlZCwgdXNlIHhtbENvcHlEb2NFbGVtZW50Q29udGVudCBpbnN0ZWFkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbGVtZW50Q29udGVudFB0cicgaW5mbz0ndGhlIG5ldyB4bWxFbGVtZW50Q29udGVudFB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRWxlbWVudENvbnRlbnRQdHInIGluZm89J0FuIGVsZW1lbnQgY29udGVudCBwb2ludGVyLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENvcHlFbGVtZW50VGFibGUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5CdWlsZCBhIGNvcHkgb2YgYW4gZWxlbWVudCB0YWJsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVsZW1lbnRUYWJsZVB0cicgaW5mbz0ndGhlIG5ldyB4bWxFbGVtZW50VGFibGVQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sRWxlbWVudFRhYmxlUHRyJyBpbmZvPSdBbiBlbGVtZW50IHRhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ29weUVudGl0aWVzVGFibGUnIGZpbGU9J2VudGl0aWVzJyBtb2R1bGU9J2VudGl0aWVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5CdWlsZCBhIGNvcHkgb2YgYW4gZW50aXR5IHRhYmxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW50aXRpZXNUYWJsZVB0cicgaW5mbz0ndGhlIG5ldyB4bWxFbnRpdGllc1RhYmxlUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEVudGl0aWVzVGFibGVQdHInIGluZm89J0FuIGVudGl0eSB0YWJsZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENvcHlFbnVtZXJhdGlvbicgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvcHkgYW4gZW51bWVyYXRpb24gYXR0cmlidXRlIG5vZGUgKHJlY3Vyc2l2ZSkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnVtZXJhdGlvblB0cicgaW5mbz0ndGhlIHhtbEVudW1lcmF0aW9uUHRyIGp1c3QgY3JlYXRlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRW51bWVyYXRpb25QdHInIGluZm89J3RoZSB0cmVlIHRvIGNvcHkuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ29weUVycm9yJyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSdlcnJvcic+CisgICAgICA8aW5mbz5TYXZlIHRoZSBvcmlnaW5hbCBlcnJvciB0byB0aGUgbmV3IHBsYWNlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZnJvbScgdHlwZT0neG1sRXJyb3JQdHInIGluZm89J2Egc291cmNlIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3RvJyB0eXBlPSd4bWxFcnJvclB0cicgaW5mbz0nYSB0YXJnZXQgZXJyb3InLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDb3B5TmFtZXNwYWNlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RG8gYSBjb3B5IG9mIHRoZSBuYW1lc3BhY2UuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOc1B0cicgaW5mbz0nYSBuZXcgI3htbE5zUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTnNQdHInIGluZm89J3RoZSBuYW1lc3BhY2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDb3B5TmFtZXNwYWNlTGlzdCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkRvIGEgY29weSBvZiBhbiBuYW1lc3BhY2UgbGlzdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5zUHRyJyBpbmZvPSdhIG5ldyAjeG1sTnNQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOc1B0cicgaW5mbz0ndGhlIGZpcnN0IG5hbWVzcGFjZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENvcHlOb2RlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RG8gYSBjb3B5IG9mIHRoZSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0nY29uc3QgeG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXh0ZW5kZWQnIHR5cGU9J2ludCcgaW5mbz0naWYgMSBkbyBhIHJlY3Vyc2l2ZSBjb3B5IChwcm9wZXJ0aWVzLCBuYW1lc3BhY2VzIGFuZCBjaGlsZHJlbiB3aGVuIGFwcGxpY2FibGUpIGlmIDIgY29weSBwcm9wZXJ0aWVzIGFuZCBuYW1lc3BhY2VzICh3aGVuIGFwcGxpY2FibGUpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ29weU5vZGVMaXN0JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RG8gYSByZWN1cnNpdmUgY29weSBvZiB0aGUgbm9kZSBsaXN0LiBVc2UgeG1sRG9jQ29weU5vZGVMaXN0KCkgaWYgcG9zc2libGUgdG8gZW5zdXJlIHN0cmluZyBpbnRlcm5pbmcuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5ldyAjeG1sTm9kZVB0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSdjb25zdCB4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDb3B5Tm90YXRpb25UYWJsZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkJ1aWxkIGEgY29weSBvZiBhIG5vdGF0aW9uIHRhYmxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm90YXRpb25UYWJsZVB0cicgaW5mbz0ndGhlIG5ldyB4bWxOb3RhdGlvblRhYmxlUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbE5vdGF0aW9uVGFibGVQdHInIGluZm89J0Egbm90YXRpb24gdGFibGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDb3B5UHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkRvIGEgY29weSBvZiB0aGUgYXR0cmlidXRlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXR0clB0cicgaW5mbz0nYSBuZXcgI3htbEF0dHJQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFyZ2V0JyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZWxlbWVudCB3aGVyZSB0aGUgYXR0cmlidXRlIHdpbGwgYmUgZ3JhZnRlZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbEF0dHJQdHInIGluZm89J3RoZSBhdHRyaWJ1dGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDb3B5UHJvcExpc3QnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5EbyBhIGNvcHkgb2YgYW4gYXR0cmlidXRlIGxpc3QuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSdhIG5ldyAjeG1sQXR0clB0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd0YXJnZXQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBlbGVtZW50IHdoZXJlIHRoZSBhdHRyaWJ1dGVzIHdpbGwgYmUgZ3JhZnRlZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbEF0dHJQdHInIGluZm89J3RoZSBmaXJzdCBhdHRyaWJ1dGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDcmVhdGVEb2NQYXJzZXJDdHh0JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNyZWF0ZXMgYSBwYXJzZXIgY29udGV4dCBmb3IgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDcmVhdGVFbnRpdGllc1RhYmxlJyBmaWxlPSdlbnRpdGllcycgbW9kdWxlPSdlbnRpdGllcyc+CisgICAgICA8aW5mbz5jcmVhdGUgYW5kIGluaXRpYWxpemUgYW4gZW1wdHkgZW50aXRpZXMgaGFzaCB0YWJsZS4gVGhpcyByZWFsbHkgZG9lc24mYXBvczt0IG1ha2Ugc2Vuc2UgYW5kIHNob3VsZCBiZSBkZXByZWNhdGVkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnRpdGllc1RhYmxlUHRyJyBpbmZvPSd0aGUgeG1sRW50aXRpZXNUYWJsZVB0ciBqdXN0IGNyZWF0ZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+Q3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGFuIGV4dGVybmFsIGVudGl0eSBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcyBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZW50aXR5IFVSTCcvPgorICAgICAgPGFyZyBuYW1lPSdJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZW50aXR5IFBVQkxJQyBJRCcvPgorICAgICAgPGFyZyBuYW1lPSdiYXNlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgcG9zc2libGUgYmFzZSBmb3IgdGhlIHRhcmdldCBVUkknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDcmVhdGVFbnVtZXJhdGlvbicgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+Y3JlYXRlIGFuZCBpbml0aWFsaXplIGFuIGVudW1lcmF0aW9uIGF0dHJpYnV0ZSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW51bWVyYXRpb25QdHInIGluZm89J3RoZSB4bWxFbnVtZXJhdGlvblB0ciBqdXN0IGNyZWF0ZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnVtZXJhdGlvbiBuYW1lIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5DcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgYSBmaWxlIGNvbnRlbnQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3JlYXRlSU9QYXJzZXJDdHh0JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciB1c2luZyB0aGUgWE1MIHBhcnNlciB3aXRoIGFuIGV4aXN0aW5nIEkvTyBzdHJlYW08L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdzYXgnIHR5cGU9J3htbFNBWEhhbmRsZXJQdHInIGluZm89J2EgU0FYIGhhbmRsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcl9kYXRhJyB0eXBlPSd2b2lkIConIGluZm89J1RoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcycvPgorICAgICAgPGFyZyBuYW1lPSdpb3JlYWQnIHR5cGU9J3htbElucHV0UmVhZENhbGxiYWNrJyBpbmZvPSdhbiBJL08gcmVhZCBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2Nsb3NlJyB0eXBlPSd4bWxJbnB1dENsb3NlQ2FsbGJhY2snIGluZm89J2FuIEkvTyBjbG9zZSBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJL08gaGFuZGxlcicvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0ndGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDcmVhdGVJbnRTdWJzZXQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5DcmVhdGUgdGhlIGludGVybmFsIHN1YnNldCBvZiBhIGRvY3VtZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEdGRQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IERURCBzdHJ1Y3R1cmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCBwb2ludGVyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIERURCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J0V4dGVybmFsSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGV4dGVybmFsIChQVUJMSUMpIElEJy8+CisgICAgICA8YXJnIG5hbWU9J1N5c3RlbUlEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzeXN0ZW0gSUQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0JyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgb2YgdGhlIGFycmF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUFVTSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciB1c2luZyB0aGUgWE1MIHBhcnNlciBpbiBwdXNoIG1vZGUuIElmIEBidWZmZXIgYW5kIEBzaXplIGFyZSBub24tTlVMTCwgdGhlIGRhdGEgaXMgdXNlZCB0byBkZXRlY3QgdGhlIGVuY29kaW5nLiAgVGhlIHJlbWFpbmluZyBjaGFyYWN0ZXJzIHdpbGwgYmUgcGFyc2VkIHNvIHRoZXkgZG9uJmFwb3M7dCBuZWVkIHRvIGJlIGZlZCBpbiBhZ2FpbiB0aHJvdWdoIHhtbFBhcnNlQ2h1bmsuIFRvIGFsbG93IGNvbnRlbnQgZW5jb2RpbmcgZGV0ZWN0aW9uLCBAc2l6ZSBzaG91bGQgYmUgJmd0Oz0gNCBUaGUgdmFsdWUgb2YgQGZpbGVuYW1lIGlzIHVzZWQgZm9yIGZldGNoaW5nIGV4dGVybmFsIGVudGl0aWVzIGFuZCBlcnJvci93YXJuaW5nIHJlcG9ydHMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSd4bWxTQVhIYW5kbGVyUHRyJyBpbmZvPSdhIFNBWCBoYW5kbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJfZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2h1bmsnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGNoYXJzJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0nbnVtYmVyIG9mIGNoYXJzIGluIHRoZSBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3JlYXRlVVJJJyBmaWxlPSd1cmknIG1vZHVsZT0ndXJpJz4KKyAgICAgIDxpbmZvPlNpbXBseSBjcmVhdGVzIGFuIGVtcHR5IHhtbFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgbmV3IHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDcmVhdGVVUkxQYXJzZXJDdHh0JyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhIGZpbGUgb3IgVVJMIGNvbnRlbnQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUgYW5kIGZvciBmaWxlIGFjY2Vzc2VzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lIG9yIFVSTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3R4dEdldExhc3RFcnJvcicgZmlsZT0neG1sZXJyb3InIG1vZHVsZT0nZXJyb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBsYXN0IHBhcnNpbmcgZXJyb3IgcmVnaXN0ZXJlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVycm9yUHRyJyBpbmZvPSdOVUxMIGlmIG5vIGVycm9yIG9jY3VyZWQgb3IgYSBwb2ludGVyIHRvIHRoZSBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3R4dFJlYWREb2MnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3R4dFJlYWRGZCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciBhbmQgYnVpbGQgYSB0cmVlLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQgTk9URSB0aGF0IHRoZSBmaWxlIGRlc2NyaXB0b3Igd2lsbCBub3QgYmUgY2xvc2VkIHdoZW4gdGhlIHJlYWRlciBpcyBjbG9zZWQgb3IgcmVzZXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmQnIHR5cGU9J2ludCcgaW5mbz0nYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3InLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEN0eHRSZWFkRmlsZScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGZpbGUgb3IgVVJMJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3R4dFJlYWRJTycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZG9jdW1lbnQgZnJvbSBJL08gZnVuY3Rpb25zIGFuZCBzb3VyY2UgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0naW9yZWFkJyB0eXBlPSd4bWxJbnB1dFJlYWRDYWxsYmFjaycgaW5mbz0nYW4gSS9PIHJlYWQgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jbG9zZScgdHlwZT0neG1sSW5wdXRDbG9zZUNhbGxiYWNrJyBpbmZvPSdhbiBJL08gY2xvc2UgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gSS9PIGhhbmRsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEN0eHRSZWFkTWVtb3J5JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhIGNoYXIgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEN0eHRSZXNldCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5SZXNldCBhIHBhcnNlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEN0eHRSZXNldExhc3RFcnJvcicgZmlsZT0neG1sZXJyb3InIG1vZHVsZT0nZXJyb3InPgorICAgICAgPGluZm8+Q2xlYW51cCB0aGUgbGFzdCBnbG9iYWwgZXJyb3IgcmVnaXN0ZXJlZC4gRm9yIHBhcnNpbmcgZXJyb3IgdGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHdlbGwtZm9ybWVkbmVzcyByZXN1bHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDdHh0UmVzZXRQdXNoJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlJlc2V0IGEgcHVzaCBwYXJzZXIgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdjaHVuaycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnMnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSdudW1iZXIgb2YgY2hhcnMgaW4gdGhlIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2FuIG9wdGlvbmFsIGZpbGUgbmFtZSBvciBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3R4dFVzZU9wdGlvbnMnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+QXBwbGllcyB0aGUgb3B0aW9ucyB0byB0aGUgcGFyc2VyIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIHRoZSBzZXQgb2YgdW5rbm93biBvciB1bmltcGxlbWVudGVkIG9wdGlvbnMgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxDdXJyZW50Q2hhcicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5UaGUgY3VycmVudCBjaGFyIHZhbHVlLCBpZiB1c2luZyBVVEYtOCB0aGlzIG1heSBhY3R1YWxseSBzcGFuIG11bHRpcGxlIGJ5dGVzIGluIHRoZSBpbnB1dCBidWZmZXIuIEltcGxlbWVudCB0aGUgZW5kIG9mIGxpbmUgbm9ybWFsaXphdGlvbjogMi4xMSBFbmQtb2YtTGluZSBIYW5kbGluZyBXaGVyZXZlciBhbiBleHRlcm5hbCBwYXJzZWQgZW50aXR5IG9yIHRoZSBsaXRlcmFsIGVudGl0eSB2YWx1ZSBvZiBhbiBpbnRlcm5hbCBwYXJzZWQgZW50aXR5IGNvbnRhaW5zIGVpdGhlciB0aGUgbGl0ZXJhbCB0d28tY2hhcmFjdGVyIHNlcXVlbmNlICZxdW90OyN4RCN4QSZxdW90OyBvciBhIHN0YW5kYWxvbmUgbGl0ZXJhbCAjeEQsIGFuIFhNTCBwcm9jZXNzb3IgbXVzdCBwYXNzIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGUgc2luZ2xlIGNoYXJhY3RlciAjeEEuIFRoaXMgYmVoYXZpb3IgY2FuIGNvbnZlbmllbnRseSBiZSBwcm9kdWNlZCBieSBub3JtYWxpemluZyBhbGwgbGluZSBicmVha3MgdG8gI3hBIG9uIGlucHV0LCBiZWZvcmUgcGFyc2luZy4pPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBjdXJyZW50IGNoYXIgdmFsdWUgYW5kIGl0cyBsZW5ndGgnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCAqJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIGNoYXIgcmVhZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbERPTVdyYXBBY3F1aXJlTnNGdW5jdGlvbicgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkEgZnVuY3Rpb24gY2FsbGVkIHRvIGFjcXVpcmUgbmFtZXNwYWNlcyAoeG1sTnMpIGZyb20gdGhlIHdyYXBwZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOc1B0cicgaW5mbz0nYW4geG1sTnNQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGFuIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxET01XcmFwQ3R4dFB0cicgaW5mbz0nYSBET00gd3JhcHBlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBjb250ZXh0IG5vZGUgKGVsZW1lbnQgb3IgYXR0cmlidXRlKScvPgorICAgICAgPGFyZyBuYW1lPSduc05hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHJlcXVlc3RlZCBuYW1lc3BhY2UgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSduc1ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcmVxdWVzdGVkIG5hbWVzcGFjZSBwcmVmaXgnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxET01XcmFwQWRvcHROb2RlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+UmVmZXJlbmNlcyBvZiBvdXQtb2Ygc2NvcGUgbnMtZGVjbHMgYXJlIHJlbWFwcGVkIHRvIHBvaW50IHRvIEBkZXN0RG9jOiAxKSBJZiBAZGVzdFBhcmVudCBpcyBnaXZlbiwgdGhlbiBuc0RlZiBlbnRyaWVzIG9uIGVsZW1lbnQtbm9kZXMgYXJlIHVzZWQgMikgSWYgKm5vKiBAZGVzdFBhcmVudCBpcyBnaXZlbiwgdGhlbiBAZGVzdERvYy0mZ3Q7b2xkTnMgZW50cmllcyBhcmUgdXNlZCBUaGlzIGlzIHRoZSBjYXNlIHdoZW4geW91IGhhdmUgYW4gdW5saWtlZCBub2RlIGFuZCBqdXN0IHdhbnQgdG8gbW92ZSBpdCB0byB0aGUgY29udGV4dCBvZiAgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIGl0IGVuc3VyZXMgdGhhdCB0aGUgdHJlZSBpcyBuYW1lc3BhY2Ugd2VsbGZvcm1lZCBieSBjcmVhdGluZyBhZGRpdGlvbmFsIG5zLWRlY2xzIHdoZXJlIG5lZWRlZC4gTm90ZSB0aGF0LCBzaW5jZSBwcmVmaXhlcyBvZiBhbHJlYWR5IGV4aXN0ZW50IG5zLWRlY2xzIGNhbiBiZSBzaGFkb3dlZCBieSB0aGlzIHByb2Nlc3MsIGl0IGNvdWxkIGJyZWFrIFFOYW1lcyBpbiBhdHRyaWJ1dGUgdmFsdWVzIG9yIGVsZW1lbnQgY29udGVudC4gTk9URTogVGhpcyBmdW5jdGlvbiB3YXMgbm90IGludGVuc2l2ZWx5IHRlc3RlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCwgMSBpZiBhIG5vZGUgb2YgdW5zdXBwb3J0ZWQgdHlwZSB3YXMgZ2l2ZW4sIDIgaWYgYSBub2RlIG9mIG5vdCB5ZXQgc3VwcG9ydGVkIHR5cGUgd2FzIGdpdmVuIGFuZCAtMSBvbiBBUEkvaW50ZXJuYWwgZXJyb3JzLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxET01XcmFwQ3R4dFB0cicgaW5mbz0ndGhlIG9wdGlvbmFsIGNvbnRleHQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J3NvdXJjZURvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgb3B0aW9uYWwgc291cmNlRG9jJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIHRvIHN0YXJ0IHdpdGgnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVzdERvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZGVzdGluYXRpb24gZG9jJy8+CisgICAgICA8YXJnIG5hbWU9J2Rlc3RQYXJlbnQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBvcHRpb25hbCBuZXcgcGFyZW50IG9mIEBub2RlIGluIEBkZXN0RG9jJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nb3B0aW9uIGZsYWdzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRE9NV3JhcENsb25lTm9kZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlJlZmVyZW5jZXMgb2Ygb3V0LW9mIHNjb3BlIG5zLWRlY2xzIGFyZSByZW1hcHBlZCB0byBwb2ludCB0byBAZGVzdERvYzogMSkgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gbnNEZWYgZW50cmllcyBvbiBlbGVtZW50LW5vZGVzIGFyZSB1c2VkIDIpIElmICpubyogQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gQGRlc3REb2MtJmd0O29sZE5zIGVudHJpZXMgYXJlIHVzZWQuIFRoaXMgaXMgdGhlIGNhc2Ugd2hlbiB5b3UgZG9uJmFwb3M7dCBrbm93IGFscmVhZHkgd2hlcmUgdGhlIGNsb25lZCBicmFuY2ggd2lsbCBiZSBhZGRlZCB0by4gIElmIEBkZXN0UGFyZW50IGlzIGdpdmVuLCBpdCBlbnN1cmVzIHRoYXQgdGhlIHRyZWUgaXMgbmFtZXNwYWNlIHdlbGxmb3JtZWQgYnkgY3JlYXRpbmcgYWRkaXRpb25hbCBucy1kZWNscyB3aGVyZSBuZWVkZWQuIE5vdGUgdGhhdCwgc2luY2UgcHJlZml4ZXMgb2YgYWxyZWFkeSBleGlzdGVudCBucy1kZWNscyBjYW4gYmUgc2hhZG93ZWQgYnkgdGhpcyBwcm9jZXNzLCBpdCBjb3VsZCBicmVhayBRTmFtZXMgaW4gYXR0cmlidXRlIHZhbHVlcyBvciBlbGVtZW50IGNvbnRlbnQuIFRPRE86IDEpIFdoYXQgdG8gZG8gd2l0aCBYSW5jbHVkZT8gQ3VycmVudGx5IHRoaXMgcmV0dXJucyBhbiBlcnJvciBmb3IgWEluY2x1ZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQsIDEgaWYgYSBub2RlIG9mIHVuc3VwcG9ydGVkIChvciBub3QgeWV0IHN1cHBvcnRlZCkgdHlwZSB3YXMgZ2l2ZW4sIC0xIG9uIEFQSS9pbnRlcm5hbCBlcnJvcnMuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbERPTVdyYXBDdHh0UHRyJyBpbmZvPSd0aGUgb3B0aW9uYWwgY29udGV4dCBmb3IgY3VzdG9tIHByb2Nlc3NpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nc291cmNlRG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBvcHRpb25hbCBzb3VyY2VEb2MnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgdG8gc3RhcnQgd2l0aCcvPgorICAgICAgPGFyZyBuYW1lPSdyZXNOb2RlJyB0eXBlPSd4bWxOb2RlUHRyIConIGluZm89J3RoZSBjbG9uZSBvZiB0aGUgZ2l2ZW4gQG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVzdERvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZGVzdGluYXRpb24gZG9jJy8+CisgICAgICA8YXJnIG5hbWU9J2Rlc3RQYXJlbnQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBvcHRpb25hbCBuZXcgcGFyZW50IG9mIEBub2RlIGluIEBkZXN0RG9jJy8+CisgICAgICA8YXJnIG5hbWU9J2RlZXAnIHR5cGU9J2ludCcgaW5mbz0nZGVzY2VuZCBpbnRvIGNoaWxkIGlmIHNldCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J29wdGlvbiBmbGFncycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERPTVdyYXBGcmVlQ3R4dCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkZyZWVzIHRoZSBET00td3JhcHBlciBjb250ZXh0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxET01XcmFwQ3R4dFB0cicgaW5mbz0ndGhlIERPTS13cmFwcGVyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxET01XcmFwTmV3Q3R4dCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkFsbG9jYXRlcyBhbmQgaW5pdGlhbGl6ZXMgYSBuZXcgRE9NLXdyYXBwZXIgY29udGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERPTVdyYXBDdHh0UHRyJyBpbmZvPSd0aGUgeG1sRE9NV3JhcEN0eHRQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGFuIGludGVybmFsIGVycnJvci4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkVuc3VyZXMgdGhhdCBucy1yZWZlcmVuY2VzIHBvaW50IHRvIG5zLWRlY2xzIGhvbGQgb24gZWxlbWVudC1ub2Rlcy4gRW5zdXJlcyB0aGF0IHRoZSB0cmVlIGlzIG5hbWVzcGFjZSB3ZWxsZm9ybWVkIGJ5IGNyZWF0aW5nIGFkZGl0aW9uYWwgbnMtZGVjbHMgd2hlcmUgbmVlZGVkLiBOb3RlIHRoYXQsIHNpbmNlIHByZWZpeGVzIG9mIGFscmVhZHkgZXhpc3RlbnQgbnMtZGVjbHMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRoaXMgcHJvY2VzcywgaXQgY291bGQgYnJlYWsgUU5hbWVzIGluIGF0dHJpYnV0ZSB2YWx1ZXMgb3IgZWxlbWVudCBjb250ZW50LiAgTk9URTogVGhpcyBmdW5jdGlvbiB3YXMgbm90IGludGVuc2l2ZWx5IHRlc3RlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiBzdWNjZWVkZWQsIC0xIG90aGVyd2lzZSBhbmQgb24gQVBJL2ludGVybmFsIGVycm9ycy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sRE9NV3JhcEN0eHRQdHInIGluZm89J0RPTSB3cmFwcGVyIGNvbnRleHQsIHVudXNlZCBhdCB0aGUgbW9tZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBlbGVtZW50LW5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdvcHRpb24gZmxhZ3MnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxET01XcmFwUmVtb3ZlTm9kZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlVubGlua3MgdGhlIGdpdmVuIG5vZGUgZnJvbSBpdHMgb3duZXIuIFRoaXMgd2lsbCBzdWJzdGl0dXRlIG5zLXJlZmVyZW5jZXMgdG8gbm9kZS0mZ3Q7bnNEZWYgZm9yIG5zLXJlZmVyZW5jZXMgdG8gZG9jLSZndDtvbGROcywgdGh1cyBlbnN1cmluZyB0aGUgcmVtb3ZlZCBicmFuY2ggdG8gYmUgYXV0YXJrIHdydCBucy1yZWZlcmVuY2VzLiAgTk9URTogVGhpcyBmdW5jdGlvbiB3YXMgbm90IGludGVuc2l2ZWx5IHRlc3RlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvbiBzdWNjZXNzLCAxIGlmIHRoZSBub2RlIGlzIG5vdCBzdXBwb3J0ZWQsIC0xIG9uIEFQSSBhbmQgaW50ZXJuYWwgZXJyb3JzLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxET01XcmFwQ3R4dFB0cicgaW5mbz0nYSBET00gd3JhcHBlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIHRvIGJlIHJlbW92ZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nc2V0IG9mIG9wdGlvbnMsIHVudXNlZCBhdCB0aGUgbW9tZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGVidWdDaGVja0RvY3VtZW50JyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHRoZSBkb2N1bWVudCBmb3IgcG90ZW50aWFsIGNvbnRlbnQgcHJvYmxlbXMsIGFuZCBvdXRwdXQgdGhlIGVycm9ycyB0byBAb3V0cHV0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgZXJyb3JzIGZvdW5kJy8+CisgICAgICA8YXJnIG5hbWU9J291dHB1dCcgdHlwZT0nRklMRSAqJyBpbmZvPSd0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEZWJ1Z0R1bXBBdHRyJyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgYXR0cmlidXRlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J291dHB1dCcgdHlwZT0nRklMRSAqJyBpbmZvPSd0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2F0dHInIHR5cGU9J3htbEF0dHJQdHInIGluZm89J3RoZSBhdHRyaWJ1dGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVwdGgnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGluZGVudGF0aW9uIGxldmVsLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERlYnVnRHVtcEF0dHJMaXN0JyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXBzIGRlYnVnIGluZm9ybWF0aW9uIGZvciB0aGUgYXR0cmlidXRlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0cHV0JyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXR0cicgdHlwZT0neG1sQXR0clB0cicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBsaXN0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RlcHRoJyB0eXBlPSdpbnQnIGluZm89J3RoZSBpbmRlbnRhdGlvbiBsZXZlbC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEZWJ1Z0R1bXBEVEQnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIHRoZSBEVEQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0cHV0JyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZHRkJyB0eXBlPSd4bWxEdGRQdHInIGluZm89J3RoZSBEVEQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEZWJ1Z0R1bXBEb2N1bWVudCcgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGRvY3VtZW50LCBpdCZhcG9zO3MgcmVjdXJzaXZlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J291dHB1dCcgdHlwZT0nRklMRSAqJyBpbmZvPSd0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gY25jZXJuaW5nIHRoZSBkb2N1bWVudCwgbm90IHJlY3Vyc2l2ZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGVidWdEdW1wRW50aXRpZXMnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcHMgZGVidWcgaW5mb3JtYXRpb24gZm9yIGFsbCB0aGUgZW50aXRpZXMgaW4gdXNlIGJ5IHRoZSBkb2N1bWVudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGVidWdEdW1wTm9kZScgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGVsZW1lbnQgbm9kZSwgaXQgaXMgcmVjdXJzaXZlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J291dHB1dCcgdHlwZT0nRklMRSAqJyBpbmZvPSd0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J2RlcHRoJyB0eXBlPSdpbnQnIGluZm89J3RoZSBpbmRlbnRhdGlvbiBsZXZlbC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEZWJ1Z0R1bXBOb2RlTGlzdCcgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGxpc3Qgb2YgZWxlbWVudCBub2RlLCBpdCBpcyByZWN1cnNpdmU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0cHV0JyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdkZXB0aCcgdHlwZT0naW50JyBpbmZvPSd0aGUgaW5kZW50YXRpb24gbGV2ZWwuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGVidWdEdW1wT25lTm9kZScgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wcyBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGVsZW1lbnQgbm9kZSwgaXQgaXMgbm90IHJlY3Vyc2l2ZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdkZXB0aCcgdHlwZT0naW50JyBpbmZvPSd0aGUgaW5kZW50YXRpb24gbGV2ZWwuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGVidWdEdW1wU3RyaW5nJyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXBzIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgc3RyaW5nLCBzaG9ydGVuIGl0IGlmIG5lY2Vzc2FyeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERlY29kZUVudGl0aWVzJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCwgd2Ugbm93IGFsd2F5cyBwcm9jZXNzIGVudGl0aWVzIGNvbnRlbnQgdGhyb3VnaCB4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyAgVE9ETzogcmVtb3ZlIGl0IGluIG5leHQgbWFqb3IgcmVsZWFzZS4gIFs2N10gUmVmZXJlbmNlIDo6PSBFbnRpdHlSZWYgfCBDaGFyUmVmICBbNjldIFBFUmVmZXJlbmNlIDo6PSAmYXBvczslJmFwb3M7IE5hbWUgJmFwb3M7OyZhcG9zOzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdBIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIGRvbmUuIFRoZSBjYWxsZXIgbXVzdCBkZWFsbG9jYXRlIGl0ICEnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbGVuIHRvIGRlY29kZSAoaW4gYnl0ZXMgISksIC0xIGZvciBubyBzaXplIGxpbWl0Jy8+CisgICAgICA8YXJnIG5hbWU9J3doYXQnIHR5cGU9J2ludCcgaW5mbz0nY29tYmluYXRpb24gb2YgWE1MX1NVQlNUSVRVVEVfUkVGIGFuZCBYTUxfU1VCU1RJVFVURV9QRVJFRicvPgorICAgICAgPGFyZyBuYW1lPSdlbmQnIHR5cGU9J3htbENoYXInIGluZm89J2FuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lJy8+CisgICAgICA8YXJnIG5hbWU9J2VuZDInIHR5cGU9J3htbENoYXInIGluZm89J2FuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lJy8+CisgICAgICA8YXJnIG5hbWU9J2VuZDMnIHR5cGU9J3htbENoYXInIGluZm89J2FuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBTQVgyIGhhbmRsZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEZWxFbmNvZGluZ0FsaWFzJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5VbnJlZ2lzdGVycyBhbiBlbmNvZGluZyBhbGlhcyBAYWxpYXM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYWxpYXMnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGFsaWFzIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCcgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSdnbG9iYWxzJz4KKyAgICAgIDxpbmZvPlJlZ2lzdGVycyBhIGNhbGxiYWNrIGZvciBub2RlIGRlc3RydWN0aW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMnIGluZm89J3RoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgZGVyZWdpc3RyYXRpb24gZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVuYycgdHlwZT0neG1sRGVyZWdpc3Rlck5vZGVGdW5jJyBpbmZvPSdmdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgRGVyZWdpc3Rlck5vZGVGdW5jJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sRGVyZWdpc3Rlck5vZGVGdW5jJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+U2lnbmF0dXJlIGZvciB0aGUgZGVyZWdpc3RyYXRpb24gY2FsbGJhY2sgb2YgYSBkaXNjYXJkZWQgbm9kZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGV0ZWN0Q2hhckVuY29kaW5nJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5HdWVzcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIGVudGl0eSB1c2luZyB0aGUgZmlyc3QgYnl0ZXMgb2YgdGhlIGVudGl0eSBjb250ZW50IGFjY29yZGluZyB0byB0aGUgbm9uLW5vcm1hdGl2ZSBhcHBlbmRpeCBGIG9mIHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSdvbmUgb2YgdGhlIFhNTF9DSEFSX0VOQ09ESU5HXy4uLiB2YWx1ZXMuJy8+CisgICAgICA8YXJnIG5hbWU9J2luJyB0eXBlPSdjb25zdCB1bnNpZ25lZCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgZmlyc3QgYnl0ZXMgb2YgdGhlIFhNTCBlbnRpdHksIG11c3QgYmUgYXQgbGVhc3QgMiBieXRlcyBsb25nIChhdCBsZWFzdCA0IGlmIGVuY29kaW5nIGlzIFVURjQgdmFyaWFudCkuJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RDbGVhbnVwJyBmaWxlPSdkaWN0JyBtb2R1bGU9J2RpY3QnPgorICAgICAgPGluZm8+RnJlZSB0aGUgZGljdGlvbmFyeSBtdXRleC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0Q3JlYXRlJyBmaWxlPSdkaWN0JyBtb2R1bGU9J2RpY3QnPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IGRpY3Rpb25hcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIGRpY3Rpb25uYXJ5LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGljdENyZWF0ZVN1YicgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5LCBpbmhlcml0aW5nIHN0cmluZ3MgZnJvbSB0aGUgcmVhZC1vbmx5IGRpY3Rpb25uYXJ5IEBzdWIuIE9uIGxvb2t1cCwgc3RyaW5ncyBhcmUgZmlyc3Qgc2VhcmNoZWQgaW4gdGhlIG5ldyBkaWN0aW9ubmFyeSwgdGhlbiBpbiBAc3ViLCBhbmQgaWYgbm90IGZvdW5kIGFyZSBjcmVhdGVkIGluIHRoZSBuZXcgZGljdGlvbm5hcnkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBkaWN0aW9ubmFyeSwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLicvPgorICAgICAgPGFyZyBuYW1lPSdzdWInIHR5cGU9J3htbERpY3RQdHInIGluZm89J2FuIGV4aXN0aW5nIGRpY3Rpb25uYXJ5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGljdEV4aXN0cycgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KKyAgICAgIDxpbmZvPkNoZWNrIGlmIHRoZSBAbmFtZSBleGlzdHMgaW4gdGhlIGRpY3Rpb25uYXJ5IEBkaWN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgaW50ZXJuYWwgY29weSBvZiB0aGUgbmFtZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZGljdCcgdHlwZT0neG1sRGljdFB0cicgaW5mbz0ndGhlIGRpY3Rpb25uYXJ5Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lLCBpZiAtMSBpdCBpcyByZWNvbXB1dGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRGljdEZyZWUnIGZpbGU9J2RpY3QnIG1vZHVsZT0nZGljdCc+CisgICAgICA8aW5mbz5GcmVlIHRoZSBoYXNoIEBkaWN0IGFuZCBpdHMgY29udGVudHMuIFRoZSB1c2VyZGF0YSBpcyBkZWFsbG9jYXRlZCB3aXRoIEBmIGlmIHByb3ZpZGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbm5hcnknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0TG9va3VwJyBmaWxlPSdkaWN0JyBtb2R1bGU9J2RpY3QnPgorICAgICAgPGluZm8+QWRkIHRoZSBAbmFtZSB0byB0aGUgZGljdGlvbm5hcnkgQGRpY3QgaWYgbm90IHByZXNlbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnRlcm5hbCBjb3B5IG9mIHRoZSBuYW1lIG9yIE5VTEwgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbm5hcnknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0T3ducycgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KKyAgICAgIDxpbmZvPmNoZWNrIGlmIGEgc3RyaW5nIGlzIG93bmVkIGJ5IHRoZSBkaXNjdGlvbmFyeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUsIDAgaWYgZmFsc2UgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbm5hcnknLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0UUxvb2t1cCcgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KKyAgICAgIDxpbmZvPkFkZCB0aGUgUU5hbWUgQHByZWZpeDpAbmFtZSB0byB0aGUgaGFzaCBAZGljdCBpZiBub3QgcHJlc2VudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGludGVybmFsIGNvcHkgb2YgdGhlIFFOYW1lIG9yIE5VTEwgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbm5hcnknLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwcmVmaXgnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERpY3RSZWZlcmVuY2UnIGZpbGU9J2RpY3QnIG1vZHVsZT0nZGljdCc+CisgICAgICA8aW5mbz5JbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudGVyIG9mIGEgZGljdGlvbmFyeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0UHRyJyBpbmZvPSd0aGUgZGljdGlvbm5hcnknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEaWN0U2l6ZScgZmlsZT0nZGljdCcgbW9kdWxlPSdkaWN0Jz4KKyAgICAgIDxpbmZvPlF1ZXJ5IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW5zdGFsbGVkIGluIHRoZSBoYXNoIEBkaWN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkaWN0aW9ubmFyeSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J3RoZSBkaWN0aW9ubmFyeScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERsbE1haW4nIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8YXJnIG5hbWU9J2hpbnN0RExMJyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSdmZHdSZWFzb24nIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSdscHZSZXNlcnZlZCcgdHlwZT0ndm9pZCAqJyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEb2NDb3B5Tm9kZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkRvIGEgY29weSBvZiB0aGUgbm9kZSB0byBhIGdpdmVuIGRvY3VtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0nY29uc3QgeG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdleHRlbmRlZCcgdHlwZT0naW50JyBpbmZvPSdpZiAxIGRvIGEgcmVjdXJzaXZlIGNvcHkgKHByb3BlcnRpZXMsIG5hbWVzcGFjZXMgYW5kIGNoaWxkcmVuIHdoZW4gYXBwbGljYWJsZSkgaWYgMiBjb3B5IHByb3BlcnRpZXMgYW5kIG5hbWVzcGFjZXMgKHdoZW4gYXBwbGljYWJsZSknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEb2NDb3B5Tm9kZUxpc3QnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5EbyBhIHJlY3Vyc2l2ZSBjb3B5IG9mIHRoZSBub2RlIGxpc3QuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5ldyAjeG1sTm9kZVB0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIHRhcmdldCBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSdjb25zdCB4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEb2NEdW1wJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYW4gb3BlbiBGSUxFLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLicvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBGSUxFKicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRG9jRHVtcEZvcm1hdE1lbW9yeScgZmlsZT0ndHJlZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gWE1MIGRvY3VtZW50IGluIG1lbW9yeSBhbmQgcmV0dXJuIHRoZSAjeG1sQ2hhciAqIGFuZCBpdCZhcG9zO3Mgc2l6ZS4gSXQmYXBvcztzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIHhtbEluZGVudFRyZWVPdXRwdXQgPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdtZW0nIHR5cGU9J3htbENoYXIgKionIGluZm89J09VVDogdGhlIG1lbW9yeSBwb2ludGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCAqJyBpbmZvPSdPVVQ6IHRoZSBtZW1vcnkgbGVuZ3RoJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0naW50JyBpbmZvPSdzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMnIGZpbGU9J3RyZWUnIG1vZHVsZT0neG1sc2F2ZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIHRoZSBjdXJyZW50IERPTSB0cmVlIGludG8gbWVtb3J5IHVzaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIuICBOb3RlIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB0byBmcmVlIHRoZSBhbGxvY2F0ZWQgbWVtb3J5IHdpdGggeG1sRnJlZSgpLiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIHhtbEluZGVudFRyZWVPdXRwdXQgPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0X2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdEb2N1bWVudCB0byBnZW5lcmF0ZSBYTUwgdGV4dCBmcm9tJy8+CisgICAgICA8YXJnIG5hbWU9J2RvY190eHRfcHRyJyB0eXBlPSd4bWxDaGFyICoqJyBpbmZvPSdNZW1vcnkgcG9pbnRlciBmb3IgYWxsb2NhdGVkIFhNTCB0ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvY190eHRfbGVuJyB0eXBlPSdpbnQgKicgaW5mbz0nTGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHh0X2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J0NoYXJhY3RlciBlbmNvZGluZyB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIFhNTCB0ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0naW50JyBpbmZvPSdzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERvY0R1bXBNZW1vcnknIGZpbGU9J3RyZWUnIG1vZHVsZT0neG1sc2F2ZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIFhNTCBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHJldHVybiB0aGUgI3htbENoYXIgKiBhbmQgaXQmYXBvcztzIHNpemUgaW4gYnl0ZXMuIEl0JmFwb3M7cyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4gVGhlIHJlc3VsdGluZyBieXRlIGFycmF5IGlzIHplcm8gdGVybWluYXRlZCwgdGhvdWdoIHRoZSBsYXN0IDAgaXMgbm90IGluY2x1ZGVkIGluIHRoZSByZXR1cm5lZCBzaXplLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J21lbScgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0nT1VUOiB0aGUgbWVtb3J5IHBvaW50ZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50IConIGluZm89J09VVDogdGhlIG1lbW9yeSBsZW5ndGgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEb2NEdW1wTWVtb3J5RW5jJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCB0aGUgY3VycmVudCBET00gdHJlZSBpbnRvIG1lbW9yeSB1c2luZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHNwZWNpZmllZCBieSB0aGUgY2FsbGVyLiAgTm90ZSBpdCBpcyB1cCB0byB0aGUgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24gdG8gZnJlZSB0aGUgYWxsb2NhdGVkIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0X2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdEb2N1bWVudCB0byBnZW5lcmF0ZSBYTUwgdGV4dCBmcm9tJy8+CisgICAgICA8YXJnIG5hbWU9J2RvY190eHRfcHRyJyB0eXBlPSd4bWxDaGFyICoqJyBpbmZvPSdNZW1vcnkgcG9pbnRlciBmb3IgYWxsb2NhdGVkIFhNTCB0ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvY190eHRfbGVuJyB0eXBlPSdpbnQgKicgaW5mbz0nTGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHh0X2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J0NoYXJhY3RlciBlbmNvZGluZyB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIFhNTCB0ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRG9jRm9ybWF0RHVtcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGFuIG9wZW4gRklMRS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4gTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiB4bWxJbmRlbnRUcmVlT3V0cHV0ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUqJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdpbnQnIGluZm89J3Nob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRG9jR2V0Um9vdEVsZW1lbnQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5HZXQgdGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgKGRvYy0mZ3Q7Y2hpbGRyZW4gaXMgYSBsaXN0IGNvbnRhaW5pbmcgcG9zc2libHkgY29tbWVudHMsIFBJcywgZXRjIC4uLikuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgI3htbE5vZGVQdHIgZm9yIHRoZSByb290IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbERvY1NldFJvb3RFbGVtZW50JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgdGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgKGRvYy0mZ3Q7Y2hpbGRyZW4gaXMgYSBsaXN0IGNvbnRhaW5pbmcgcG9zc2libHkgY29tbWVudHMsIFBJcywgZXRjIC4uLikuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgb2xkIHJvb3QgZWxlbWVudCBpZiBhbnkgd2FzIGZvdW5kLCBOVUxMIGlmIHJvb3Qgd2FzIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdyb290JyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbmV3IGRvY3VtZW50IHJvb3QgZWxlbWVudCwgaWYgcm9vdCBpcyBOVUxMIG5vIGFjdGlvbiBpcyB0YWtlbiwgdG8gcmVtb3ZlIGEgbm9kZSBmcm9tIGEgZG9jdW1lbnQgdXNlIHhtbFVubGlua05vZGUocm9vdCkgaW5zdGVhZC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEdW1wQXR0cmlidXRlRGVjbCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J3RoZSBYTUwgYnVmZmVyIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdhdHRyJyB0eXBlPSd4bWxBdHRyaWJ1dGVQdHInIGluZm89J0FuIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbER1bXBBdHRyaWJ1dGVUYWJsZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGF0dHJpYnV0ZSB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J3RoZSBYTUwgYnVmZmVyIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sQXR0cmlidXRlVGFibGVQdHInIGluZm89J0FuIGF0dHJpYnV0ZSB0YWJsZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbER1bXBFbGVtZW50RGVjbCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24gYXMgYW4gWE1MIERURCBkZWZpbml0aW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgWE1MIGJ1ZmZlciBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0neG1sRWxlbWVudFB0cicgaW5mbz0nQW4gZWxlbWVudCB0YWJsZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbER1bXBFbGVtZW50VGFibGUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBlbGVtZW50IHRhYmxlIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIFhNTCBidWZmZXIgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxFbGVtZW50VGFibGVQdHInIGluZm89J0FuIGVsZW1lbnQgdGFibGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEdW1wRW50aXRpZXNUYWJsZScgZmlsZT0nZW50aXRpZXMnIG1vZHVsZT0nZW50aXRpZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J0FuIFhNTCBidWZmZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxFbnRpdGllc1RhYmxlUHRyJyBpbmZvPSdBbiBlbnRpdHkgdGFibGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEdW1wRW50aXR5RGVjbCcgZmlsZT0nZW50aXRpZXMnIG1vZHVsZT0nZW50aXRpZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J0FuIFhNTCBidWZmZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J2VudCcgdHlwZT0neG1sRW50aXR5UHRyJyBpbmZvPSdBbiBlbnRpdHkgdGFibGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEdW1wTm90YXRpb25EZWNsJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIHdpbGwgZHVtcCB0aGUgY29udGVudCB0aGUgbm90YXRpb24gZGVjbGFyYXRpb24gYXMgYW4gWE1MIERURCBkZWZpbml0aW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd0aGUgWE1MIGJ1ZmZlciBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm90YScgdHlwZT0neG1sTm90YXRpb25QdHInIGluZm89J0Egbm90YXRpb24gZGVjbGFyYXRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEdW1wTm90YXRpb25UYWJsZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIG5vdGF0aW9uIHRhYmxlIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIFhNTCBidWZmZXIgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxOb3RhdGlvblRhYmxlUHRyJyBpbmZvPSdBIG5vdGF0aW9uIHRhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRWxlbUR1bXAnIGZpbGU9J3RyZWUnIG1vZHVsZT0neG1sc2F2ZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIFhNTC9IVE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsIGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZicgdHlwZT0nRklMRSAqJyBpbmZvPSd0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRW5jb2RlRW50aXRpZXMnIGZpbGU9J2VudGl0aWVzJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UT0RPOiByZW1vdmUgeG1sRW5jb2RlRW50aXRpZXMsIG9uY2Ugd2UgYXJlIG5vdCBhZnJhaWQgb2YgYnJlYWtpbmcgYmluYXJ5IGNvbXBhdGliaWxpdHkgIFBlb3BsZSBtdXN0IG1pZ3JhdGUgdGhlaXIgY29kZSB0byB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCAhIFRoaXMgcm91dGluZSB3aWxsIGlzc3VlIGEgd2FybmluZyB3aGVuIGVuY291bnRlcmVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2lucHV0JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J0Egc3RyaW5nIHRvIGNvbnZlcnQgdG8gWE1MLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50JyBmaWxlPSdlbnRpdGllcycgbW9kdWxlPSdlbnRpdGllcyc+CisgICAgICA8aW5mbz5EbyBhIGdsb2JhbCBlbmNvZGluZyBvZiBhIHN0cmluZywgcmVwbGFjaW5nIHRoZSBwcmVkZWZpbmVkIGVudGl0aWVzIGFuZCBub24gQVNDSUkgdmFsdWVzIHdpdGggdGhlaXIgZW50aXRpZXMgYW5kIENoYXJSZWYgY291bnRlcnBhcnRzLiBDb250cmFyeSB0byB4bWxFbmNvZGVFbnRpdGllcywgdGhpcyByb3V0aW5lIGlzIHJlZW50cmFudCwgYW5kIHJlc3VsdCBtdXN0IGJlIGRlYWxsb2NhdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdBIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIGRvbmUuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2lucHV0JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J0Egc3RyaW5nIHRvIGNvbnZlcnQgdG8gWE1MLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEVuY29kZVNwZWNpYWxDaGFycycgZmlsZT0nZW50aXRpZXMnIG1vZHVsZT0nZW50aXRpZXMnPgorICAgICAgPGluZm8+RG8gYSBnbG9iYWwgZW5jb2Rpbmcgb2YgYSBzdHJpbmcsIHJlcGxhY2luZyB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcyB0aGlzIHJvdXRpbmUgaXMgcmVlbnRyYW50LCBhbmQgcmVzdWx0IG11c3QgYmUgZGVhbGxvY2F0ZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J0EgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCBjb250YWluaW5nIHRoZSBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0naW5wdXQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nQSBzdHJpbmcgdG8gY29udmVydCB0byBYTUwuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sRW50aXR5UmVmZXJlbmNlRnVuYycgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHdoZW4gb25lIG5lZWRzIHRvIGJlIGFibGUgdG8gdHJhY2sgYmFjayB0aGUgcHJvdmVuYW5jZSBvZiBhIGNodW5rIG9mIG5vZGVzIGluaGVyaXRlZCBmcm9tIGFuIGVudGl0eSByZXBsYWNlbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW50JyB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J3RoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlyc3ROb2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZmlzdCBub2RlIGluIHRoZSBjaHVuaycvPgorICAgICAgPGFyZyBuYW1lPSdsYXN0Tm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGxhc3Qgbm9kIGluIHRoZSBjaHVuaycvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEVyck1lbW9yeScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5IYW5kbGUgYSByZWRlZmluaXRpb24gb2YgYXR0cmlidXRlIGVycm9yPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdleHRyYScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdleHRyYSBpbmZvcm1hdGlvbnMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBDdHh0TmJDb25zJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZWJ1Z2dpbmcgZmFjaWxpdHkgcHJvdmlkZXMgdGhlIG51bWJlciBvZiBhbGxvY2F0ZWQgbm9kZXMgb3ZlciBsaWZldGltZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIG5vZGVzIGV2ZXIgYWxsb2NhdGVkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sRXhwQ3R4dFB0cicgaW5mbz0nYW4gZXhwcmVzc2lvbiBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXhwQ3R4dE5iTm9kZXMnIGZpbGU9J3htbHJlZ2V4cCcgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRlYnVnZ2luZyBmYWNpbGl0eSBwcm92aWRlcyB0aGUgbnVtYmVyIG9mIGFsbG9jYXRlZCBub2RlcyBhdCBhIHRoYXQgcG9pbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBub2RlcyBpbiB1c2Ugb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxFeHBDdHh0UHRyJyBpbmZvPSdhbiBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBEdW1wJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXJpYWxpemUgdGhlIGV4cHJlc3Npb24gYXMgY29tcGlsZWQgdG8gdGhlIGJ1ZmZlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0nYSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2V4cHInIHR5cGU9J3htbEV4cE5vZGVQdHInIGluZm89J3RoZSBjb21waWxlZCBleHByZXNzaW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXhwRXhwRGVyaXZlJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FdmFsdWF0ZXMgdGhlIGV4cHJlc3Npb24gcmVzdWx0aW5nIGZyb20gQGV4cCBjb25zdW1pbmcgYSBzdWIgZXhwcmVzc2lvbiBAc3ViIEJhc2VkIG9uIGFsZ2VicmFpYyBkZXJpdmF0aW9uIGFuZCBzb21ldGltZXMgZGlyZWN0IEJyem96b3dza2kgZGVyaXZhdGlvbiBpdCB1c3VhbGx5IHRhdGtlcyBsZXNzIHRoYW4gbGluZWFyIHRpbWUgYW5kIGNhbiBoYW5kbGUgZXhwcmVzc2lvbnMgZ2VuZXJhdGluZyBpbmZpbml0ZSBsYW5ndWFnZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yLCB0aGUgcmVzdWx0IG11c3QgYmUgZnJlZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sRXhwQ3R4dFB0cicgaW5mbz0ndGhlIGV4cHJlc3Npb25zIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhwJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgZW5nbG9iaW5nIGV4cHJlc3Npb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3ViJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgc3ViZXhwcmVzc2lvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEV4cEZyZWUnIGZpbGU9J3htbHJlZ2V4cCcgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRlcmVmZXJlbmNlIHRoZSBleHByZXNzaW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhwJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgZXhwcmVzc2lvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEV4cEZyZWVDdHh0JyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GcmVlIGFuIGV4cHJlc3Npb24gY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxFeHBDdHh0UHRyJyBpbmZvPSdhbiBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBHZXRMYW5ndWFnZScgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RmluZCBhbGwgdGhlIHN0cmluZ3MgdXNlZCBpbiBAZXhwIGFuZCBzdG9yZSB0aGVtIGluIEBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgdW5pcXVlIHN0cmluZ3MgZm91bmQsIC0xIGluIGNhc2Ugb2YgZXJyb3JzIGFuZCAtMiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gQGxlbiBzdHJpbmdzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhwJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgZXhwcmVzc2lvbicvPgorICAgICAgPGFyZyBuYW1lPSdsYW5nTGlzdCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0nd2hlcmUgdG8gc3RvcmUgdGhlIHRva2VucycvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIGFsbG9jYXRlZCBsZW5naHQgb2YgQGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBHZXRTdGFydCcgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RmluZCBhbGwgdGhlIHN0cmluZ3MgdGhhdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiB0aGUgbGFuZ3VhZ2VzIGFjY2VwdGVkIGJ5IEBleHAgYW5kIHN0b3JlIHRoZW0gaW4gQGxpc3QuIEUuZy4gZm9yIChhLCBiKSB8IGMgaXQgd2lsbCByZXR1cm4gdGhlIGxpc3QgW2EsIGNdPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgdW5pcXVlIHN0cmluZ3MgZm91bmQsIC0xIGluIGNhc2Ugb2YgZXJyb3JzIGFuZCAtMiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gQGxlbiBzdHJpbmdzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhwJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgZXhwcmVzc2lvbicvPgorICAgICAgPGFyZyBuYW1lPSd0b2tMaXN0JyB0eXBlPSdjb25zdCB4bWxDaGFyICoqJyBpbmZvPSd3aGVyZSB0byBzdG9yZSB0aGUgdG9rZW5zJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgYWxsb2NhdGVkIGxlbmdodCBvZiBAbGlzdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEV4cElzTmlsbGFibGUnIGZpbGU9J3htbHJlZ2V4cCcgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZpbmRzIGlmIHRoZSBleHByZXNzaW9uIGlzIG5pbGxhYmxlLCBpLmUuIGlmIGl0IGFjY2VwdHMgdGhlIGVtcHR5IHNlcXVxbmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgbmlsbGFibGUsIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2V4cCcgdHlwZT0neG1sRXhwTm9kZVB0cicgaW5mbz0ndGhlIGV4cHJlc3Npb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBNYXhUb2tlbicgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW5kaWNhdGUgdGhlIG1heGltdW0gbnVtYmVyIG9mIGlucHV0IGEgZXhwcmVzc2lvbiBjYW4gYWNjZXB0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBtYXhpbXVtIGxlbmd0aCBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2V4cHInIHR5cGU9J3htbEV4cE5vZGVQdHInIGluZm89J2EgY29tcGlsZWQgZXhwcmVzc2lvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEV4cE5ld0F0b20nIGZpbGU9J3htbHJlZ2V4cCcgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkdldCB0aGUgYXRvbSBhc3NvY2lhdGVkIHRvIHRoaXMgbmFtZSBmcm9tIHRoYXQgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRXhwTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXRvbSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgYXRvbSBuYW1lIGxlbmdodCBpbiBieXRlIChvciAtMSk7Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXhwTmV3Q3R4dCcgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlcyBhIG5ldyBjb250ZXh0IGZvciBtYW5pcHVsYXRpbmcgZXhwcmVzc2lvbnM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdtYXhOb2RlcycgdHlwZT0naW50JyBpbmZvPSd0aGUgbWF4aW11bSBudW1iZXIgb2Ygbm9kZXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGljdCcgdHlwZT0neG1sRGljdFB0cicgaW5mbz0nb3B0aW9uYWwgZGljdGlvbm5hcnkgdG8gdXNlIGludGVybmFsbHknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBOZXdPcicgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhlIGNob2ljZSBAbGVmdCB8IEByaWdodCBOb3RlIHRoYXQgQGxlZnQgYW5kIEByaWdodCBhcmUgY29uc3VtZWQgaW4gdGhlIG9wZXJhdGlvbiwgdG8ga2VlcCBhbiBoYW5kbGUgb24gdGhlbSB1c2UgeG1sRXhwUmVmKCkgYW5kIHVzZSB4bWxFeHBGcmVlKCkgdG8gcmVsZWFzZSB0aGVtLCB0aGlzIGlzIHRydWUgZXZlbiBpbiBjYXNlIG9mIGZhaWx1cmUgKHVubGVzcyBjdHh0ID09IE5VTEwpLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRXhwTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVmdCcgdHlwZT0neG1sRXhwTm9kZVB0cicgaW5mbz0nbGVmdCBleHByZXNzaW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3JpZ2h0JyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSdyaWdodCBleHByZXNzaW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXhwTmV3UmFuZ2UnIGZpbGU9J3htbHJlZ2V4cCcgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkdldCB0aGUgYXRvbSBhc3NvY2lhdGVkIHRvIHRoZSByYW5nZSAoQHN1YnNldCl7QG1pbiwgQG1heH0gTm90ZSB0aGF0IEBzdWJzZXQgaXMgY29uc3VtZWQgaW4gdGhlIG9wZXJhdGlvbiwgdG8ga2VlcCBhbiBoYW5kbGUgb24gaXQgdXNlIHhtbEV4cFJlZigpIGFuZCB1c2UgeG1sRXhwRnJlZSgpIHRvIHJlbGVhc2UgaXQsIHRoaXMgaXMgdHJ1ZSBldmVuIGluIGNhc2Ugb2YgZmFpbHVyZSAodW5sZXNzIGN0eHQgPT0gTlVMTCkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sRXhwQ3R4dFB0cicgaW5mbz0ndGhlIGV4cHJlc3Npb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdzdWJzZXQnIHR5cGU9J3htbEV4cE5vZGVQdHInIGluZm89J3RoZSBleHByZXNzaW9uIHRvIGJlIHJlcGVhdGVkJy8+CisgICAgICA8YXJnIG5hbWU9J21pbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbG93ZXIgYm91bmQgZm9yIHRoZSByZXBldGl0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J21heCcgdHlwZT0naW50JyBpbmZvPSd0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSByZXBldGl0aW9uLCAtMSBtZWFucyBpbmZpbml0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEV4cE5ld1NlcScgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhlIHNlcXVlbmNlIEBsZWZ0ICwgQHJpZ2h0IE5vdGUgdGhhdCBAbGVmdCBhbmQgQHJpZ2h0IGFyZSBjb25zdW1lZCBpbiB0aGUgb3BlcmF0aW9uLCB0byBrZWVwIGFuIGhhbmRsZSBvbiB0aGVtIHVzZSB4bWxFeHBSZWYoKSBhbmQgdXNlIHhtbEV4cEZyZWUoKSB0byByZWxlYXNlIHRoZW0sIHRoaXMgaXMgdHJ1ZSBldmVuIGluIGNhc2Ugb2YgZmFpbHVyZSAodW5sZXNzIGN0eHQgPT0gTlVMTCkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sRXhwQ3R4dFB0cicgaW5mbz0ndGhlIGV4cHJlc3Npb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdsZWZ0JyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSdsZWZ0IGV4cHJlc3Npb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmlnaHQnIHR5cGU9J3htbEV4cE5vZGVQdHInIGluZm89J3JpZ2h0IGV4cHJlc3Npb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBQYXJzZScgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+TWluaW1hbCBwYXJzZXIgZm9yIHJlZ2V4cHMsIGl0IHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBjb25zdHJ1Y3RzIC0gc3RyaW5nIHRlcm1pbmFscyAtIGNob2ljZSBvcGVyYXRvciB8IC0gc2VxdWVuY2Ugb3BlcmF0b3IgLCAtIHN1YmV4cHJlc3Npb25zICguLi4pIC0gdXN1YWwgY2FyZGluYWxpdHkgb3BlcmF0b3JzICsgKiBhbmQgPyAtIGZpbml0ZSBzZXF1ZW5jZXMgIHsgbWluLCBtYXggfSAtIGluZmluaXRlIHNlcXVlbmNlcyB7IG1pbiwgKiB9IFRoZXJlIGlzIG1pbmltYWwgY2hlY2tpbmdzIG1hZGUgZXNwZWNpYWxseSBubyBjaGVja2luZyBvbiBzdHJpbmdzIHZhbHVlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRXhwTm9kZVB0cicgaW5mbz0nYSBuZXcgZXhwcmVzc2lvbiBvciBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxFeHBDdHh0UHRyJyBpbmZvPSd0aGUgZXhwcmVzc2lvbnMgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdleHByJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSAwIHRlcm1pbmF0ZWQgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXhwUmVmJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBleHByZXNzaW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2V4cCcgdHlwZT0neG1sRXhwTm9kZVB0cicgaW5mbz0ndGhlIGV4cHJlc3Npb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFeHBTdHJpbmdEZXJpdmUnIGZpbGU9J3htbHJlZ2V4cCcgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRvIG9uZSBzdGVwIG9mIEJyem96b3dza2kgZGVyaXZhdGlvbiBvZiB0aGUgZXhwcmVzc2lvbiBAZXhwIHdpdGggcmVzcGVjdCB0byB0aGUgaW5wdXQgc3RyaW5nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbEV4cEN0eHRQdHInIGluZm89J3RoZSBleHByZXNzaW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhwJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgZXhwcmVzc2lvbicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIHN0cmluZyBsZW4gaW4gYnl0ZXMgaWYgYXZhaWxhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXhwU3Vic3VtZScgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciBAZXhwIGFjY2VwdHMgYWxsIHRoZSBsYW5ndWFnZXMgYWNjZXhwdGVkIGJ5IEBzdWIgdGhlIGlucHV0IGJlaW5nIGEgc3ViZXhwcmVzc2lvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgaWYgZmFsc2UgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sRXhwQ3R4dFB0cicgaW5mbz0ndGhlIGV4cHJlc3Npb25zIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhwJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgZW5nbG9iaW5nIGV4cHJlc3Npb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3ViJyB0eXBlPSd4bWxFeHBOb2RlUHRyJyBpbmZvPSd0aGUgc3ViZXhwcmVzc2lvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbEV4dGVybmFsRW50aXR5TG9hZGVyJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkV4dGVybmFsIGVudGl0eSBsb2FkZXJzIHR5cGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J3RoZSBlbnRpdHkgaW5wdXQgcGFyc2VyLicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nVGhlIFN5c3RlbSBJRCBvZiB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkJy8+CisgICAgICA8YXJnIG5hbWU9J0lEJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1RoZSBQdWJsaWMgSUQgb2YgdGhlIHJlc291cmNlIHJlcXVlc3RlZCcvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZXh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRmlsZUNsb3NlJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5DbG9zZSBhbiBJL08gY2hhbm5lbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGV4dCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgSS9PIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGaWxlTWF0Y2gnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPmlucHV0IGZyb20gRklMRSAqPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgbWF0Y2hlcywgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIFVSSSBmb3IgbWF0Y2hpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGaWxlT3BlbicgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+V3JhcHBlciBhcm91bmQgeG1sRmlsZU9wZW5fcmVhbCB0aGF0IHRyeSBpdCB3aXRoIGFuIHVuZXNjYXBlZCB2ZXJzaW9uIG9mIEBmaWxlbmFtZSwgaWYgdGhpcyBmYWlscyBmYWxsYmFjayB0byBAZmlsZW5hbWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nYSBoYW5kbGVyIG9yIE5VTEwgaW4gY2FzZSBvciBmYWlsdXJlJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBVUkkgZm9yIG1hdGNoaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRmlsZVJlYWQnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPlJlYWQgQGxlbiBieXRlcyB0byBAYnVmZmVyIGZyb20gdGhlIEkvTyBjaGFubmVsLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgJmx0OyAwIGluIGNhc2Ugb2YgZmFpbHVyZScvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZXh0JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBJL08gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdidWZmZXInIHR5cGU9J2NoYXIgKicgaW5mbz0nd2hlcmUgdG8gZHJvcCBkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSdudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcicgZmlsZT0nZW5jb2RpbmcnIG1vZHVsZT0nZW5jb2RpbmcnPgorICAgICAgPGluZm8+U2VhcmNoIGluIHRoZSByZWdpc3RlcmVkIHNldCB0aGUgaGFuZGxlciBhYmxlIHRvIHJlYWQvd3JpdGUgdGhhdCBlbmNvZGluZy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIGluZm89J3RoZSBoYW5kbGVyIG9yIE5VTEwgaWYgbm90IGZvdW5kJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY2hhciBlbmNvZGluZy4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGaXJzdEVsZW1lbnRDaGlsZCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GaW5kcyB0aGUgZmlyc3QgY2hpbGQgbm9kZSBvZiB0aGF0IGVsZW1lbnQgd2hpY2ggaXMgYSBFbGVtZW50IG5vZGUgTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbiB0aGUgVzNDIERPTSBlbGVtZW50IHRyYXZlcnNhbCBzcGVjIHNpbmNlIHdlIGRvbiZhcG9zO3QgaGF2ZSBiYWNrIHJlZmVyZW5jZSBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBmaXJzdCBlbGVtZW50IGNoaWxkIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdwYXJlbnQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBwYXJlbnQgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVBdHRyaWJ1dGVUYWJsZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+RGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gZW50aXRpZXMgaGFzaCB0YWJsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEF0dHJpYnV0ZVRhYmxlUHRyJyBpbmZvPSdBbiBhdHRyaWJ1dGUgdGFibGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlQXV0b21hdGEnIGZpbGU9J3htbGF1dG9tYXRhJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgYW4gYXV0b21hdGE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYW0nIHR5cGU9J3htbEF1dG9tYXRhUHRyJyBpbmZvPSdhbiBhdXRvbWF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVDYXRhbG9nJyBmaWxlPSdjYXRhbG9nJyBtb2R1bGU9J2NhdGFsb2cnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgdG8gYSBDYXRhbG9nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2NhdGFsJyB0eXBlPSd4bWxDYXRhbG9nUHRyJyBpbmZvPSdhIENhdGFsb2cnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlRG9jJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RnJlZSB1cCBhbGwgdGhlIHN0cnVjdHVyZXMgdXNlZCBieSBhIGRvY3VtZW50LCB0cmVlIGluY2x1ZGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ncG9pbnRlciB0byB0aGUgZG9jdW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPkZyZWUgYW4gZWxlbWVudCBjb250ZW50IHN0cnVjdHVyZS4gVGhlIHdob2xlIHN1YnRyZWUgaXMgcmVtb3ZlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCBvd25pbmcgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxFbGVtZW50Q29udGVudFB0cicgaW5mbz0ndGhlIGVsZW1lbnQgY29udGVudCB0cmVlIHRvIGZyZWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlRHRkJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RnJlZSBhIERURCBzdHJ1Y3R1cmUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRHRkUHRyJyBpbmZvPSd0aGUgRFREIHN0cnVjdHVyZSB0byBmcmVlIHVwJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZUVsZW1lbnRDb250ZW50JyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5GcmVlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUuIFRoZSB3aG9sZSBzdWJ0cmVlIGlzIHJlbW92ZWQuIERlcHJlY2F0ZWQsIHVzZSB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbEVsZW1lbnRDb250ZW50UHRyJyBpbmZvPSd0aGUgZWxlbWVudCBjb250ZW50IHRyZWUgdG8gZnJlZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVFbGVtZW50VGFibGUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPkRlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIGVsZW1lbnQgaGFzaCB0YWJsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEVsZW1lbnRUYWJsZVB0cicgaW5mbz0nQW4gZWxlbWVudCB0YWJsZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVFbnRpdGllc1RhYmxlJyBmaWxlPSdlbnRpdGllcycgbW9kdWxlPSdlbnRpdGllcyc+CisgICAgICA8aW5mbz5EZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbnRpdGllcyBoYXNoIHRhYmxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sRW50aXRpZXNUYWJsZVB0cicgaW5mbz0nQW4gZW50aXR5IHRhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZUVudW1lcmF0aW9uJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5mcmVlIGFuIGVudW1lcmF0aW9uIGF0dHJpYnV0ZSBub2RlIChyZWN1cnNpdmUpLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbEVudW1lcmF0aW9uUHRyJyBpbmZvPSd0aGUgdHJlZSB0byBmcmVlLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbEZyZWVGdW5jJyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPlNpZ25hdHVyZSBmb3IgYSBmcmVlKCkgaW1wbGVtZW50YXRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J21lbScgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBhbHJlYWR5IGFsbG9jYXRlZCBibG9jayBvZiBtZW1vcnknLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlSURUYWJsZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+RGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gSUQgaGFzaCB0YWJsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbElEVGFibGVQdHInIGluZm89J0FuIGlkIHRhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZUlucHV0U3RyZWFtJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkZyZWUgdXAgYW4gaW5wdXQgc3RyZWFtLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdpbnB1dCcgdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J2FuIHhtbFBhcnNlcklucHV0UHRyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZU11dGV4JyBmaWxlPSd0aHJlYWRzJyBtb2R1bGU9J3RocmVhZHMnPgorICAgICAgPGluZm8+eG1sRnJlZU11dGV4KCkgaXMgdXNlZCB0byByZWNsYWltIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggYSBsaWJ4bWwyIHRva2VuIHN0cnVjdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndG9rJyB0eXBlPSd4bWxNdXRleFB0cicgaW5mbz0ndGhlIHNpbXBsZSBtdXRleCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVOb2RlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RnJlZSBhIG5vZGUsIHRoaXMgaXMgYSByZWN1cnNpdmUgYmVoYXZpb3VyLCBhbGwgdGhlIGNoaWxkcmVuIGFyZSBmcmVlZCB0b28uIFRoaXMgZG9lc24mYXBvczt0IHVubGluayB0aGUgY2hpbGQgZnJvbSB0aGUgbGlzdCwgdXNlIHhtbFVubGlua05vZGUoKSBmaXJzdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVOb2RlTGlzdCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkZyZWUgYSBub2RlIGFuZCBhbGwgaXRzIHNpYmxpbmdzLCB0aGlzIGlzIGEgcmVjdXJzaXZlIGJlaGF2aW91ciwgYWxsIHRoZSBjaGlsZHJlbiBhcmUgZnJlZWQgdG9vLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZU5vdGF0aW9uVGFibGUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPkRlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIGVudGl0aWVzIGhhc2ggdGFibGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxOb3RhdGlvblRhYmxlUHRyJyBpbmZvPSdBbiBub3RhdGlvbiB0YWJsZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVOcycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkZyZWUgdXAgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byBhIG5hbWVzcGFjZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5zUHRyJyBpbmZvPSd0aGUgbmFtZXNwYWNlIHBvaW50ZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlTnNMaXN0JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+RnJlZSB1cCBhbGwgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byB0aGUgY2hhaW5lZCBuYW1lc3BhY2VzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5zUHRyJyBpbmZvPSd0aGUgZmlyc3QgbmFtZXNwYWNlIHBvaW50ZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlUGFyc2VyQ3R4dCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5GcmVlIGFsbCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBwYXJzZXIgY29udGV4dC4gSG93ZXZlciB0aGUgcGFyc2VkIGRvY3VtZW50IGluIGN0eHQtJmd0O215RG9jIGlzIG5vdCBmcmVlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZVBhcnNlcklucHV0QnVmZmVyJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5GcmVlIHVwIHRoZSBtZW1vcnkgdXNlZCBieSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0neG1sUGFyc2VySW5wdXRCdWZmZXJQdHInIGluZm89J2EgYnVmZmVyZWQgcGFyc2VyIGlucHV0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZVBhdHRlcm4nIGZpbGU9J3BhdHRlcm4nIG1vZHVsZT0ncGF0dGVybic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB1cCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBieSBAY29tcDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjb21wJyB0eXBlPSd4bWxQYXR0ZXJuUHRyJyBpbmZvPSdhbiBYU0xUIGNvbXAnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlUGF0dGVybkxpc3QnIGZpbGU9J3BhdHRlcm4nIG1vZHVsZT0ncGF0dGVybic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB1cCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBieSBhbGwgdGhlIGVsZW1lbnRzIG9mIEBjb21wPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbXAnIHR5cGU9J3htbFBhdHRlcm5QdHInIGluZm89J2FuIFhTTFQgY29tcCBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZVByb3AnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5GcmVlIG9uZSBhdHRyaWJ1dGUsIGFsbCB0aGUgY29udGVudCBpcyBmcmVlZCB0b288L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSdhbiBhdHRyaWJ1dGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlUHJvcExpc3QnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5GcmVlIGEgcHJvcGVydHkgYW5kIGFsbCBpdHMgc2libGluZ3MsIGFsbCB0aGUgY2hpbGRyZW4gYXJlIGZyZWVkIHRvby48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSd0aGUgZmlyc3QgcHJvcGVydHkgaW4gdGhlIGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlUk11dGV4JyBmaWxlPSd0aHJlYWRzJyBtb2R1bGU9J3RocmVhZHMnPgorICAgICAgPGluZm8+eG1sUkZyZWVNdXRleCgpIGlzIHVzZWQgdG8gcmVjbGFpbSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIGEgcmVlbnRyYW50IG11dGV4LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSd0b2snIHR5cGU9J3htbFJNdXRleFB0cicgaW5mbz0ndGhlIHJlZW50cmFudCBtdXRleCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVSZWZUYWJsZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+RGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gUmVmIGhhc2ggdGFibGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxSZWZUYWJsZVB0cicgaW5mbz0nQW4gcmVmIHRhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZVN0cmVhbUN0eHQnIGZpbGU9J3BhdHRlcm4nIG1vZHVsZT0ncGF0dGVybic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB0aGUgc3RyZWFtIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyZWFtJyB0eXBlPSd4bWxTdHJlYW1DdHh0UHRyJyBpbmZvPSd0aGUgc3RyZWFtIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlVGV4dFJlYWRlcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZWFsbG9jYXRlIGFsbCB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHJlYWRlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRnJlZVRleHRXcml0ZXInIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RGVhbGxvY2F0ZSBhbGwgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSB3cml0ZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEZyZWVVUkknIGZpbGU9J3VyaScgbW9kdWxlPSd1cmknPgorICAgICAgPGluZm8+RnJlZSB1cCB0aGUgeG1sVVJJIHN0cnVjdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSd1cmknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ncG9pbnRlciB0byBhbiB4bWxVUkknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxGcmVlVmFsaWRDdHh0JyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgYSB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCB0byBmcmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2NNZW1HZXQnIGZpbGU9J3htbG1lbW9yeScgbW9kdWxlPSd4bWxtZW1vcnknPgorICAgICAgPGluZm8+UHJvdmlkZXMgdGhlIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIHNldCBjdXJyZW50bHkgaW4gdXNlIFRoZSBtYWxsb2NBdG9taWNGdW5jIGlzIHNwZWNpYWxpemVkIGZvciBhdG9taWMgYmxvY2sgYWxsb2NhdGlvbnMgKGkuZS4gb2YgYXJlYXMgIHVzZWZ1bCBmb3IgZ2FyYmFnZSBjb2xsZWN0ZWQgbWVtb3J5IGFsbG9jYXRvcnM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvbiBzdWNjZXNzJy8+CisgICAgICA8YXJnIG5hbWU9J2ZyZWVGdW5jJyB0eXBlPSd4bWxGcmVlRnVuYyAqJyBpbmZvPSdwbGFjZSB0byBzYXZlIHRoZSBmcmVlKCkgZnVuY3Rpb24gaW4gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J21hbGxvY0Z1bmMnIHR5cGU9J3htbE1hbGxvY0Z1bmMgKicgaW5mbz0ncGxhY2UgdG8gc2F2ZSB0aGUgbWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J21hbGxvY0F0b21pY0Z1bmMnIHR5cGU9J3htbE1hbGxvY0Z1bmMgKicgaW5mbz0ncGxhY2UgdG8gc2F2ZSB0aGUgYXRvbWljIG1hbGxvYygpIGZ1bmN0aW9uIGluIHVzZScvPgorICAgICAgPGFyZyBuYW1lPSdyZWFsbG9jRnVuYycgdHlwZT0neG1sUmVhbGxvY0Z1bmMgKicgaW5mbz0ncGxhY2UgdG8gc2F2ZSB0aGUgcmVhbGxvYygpIGZ1bmN0aW9uIGluIHVzZScvPgorICAgICAgPGFyZyBuYW1lPSdzdHJkdXBGdW5jJyB0eXBlPSd4bWxTdHJkdXBGdW5jIConIGluZm89J3BsYWNlIHRvIHNhdmUgdGhlIHN0cmR1cCgpIGZ1bmN0aW9uIGluIHVzZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdjTWVtU2V0dXAnIGZpbGU9J3htbG1lbW9yeScgbW9kdWxlPSd4bWxtZW1vcnknPgorICAgICAgPGluZm8+T3ZlcnJpZGUgdGhlIGRlZmF1bHQgbWVtb3J5IGFjY2VzcyBmdW5jdGlvbnMgd2l0aCBhIG5ldyBzZXQgVGhpcyBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgbGlieG1sIHJvdXRpbmVzICEgVGhlIG1hbGxvY0F0b21pY0Z1bmMgaXMgc3BlY2lhbGl6ZWQgZm9yIGF0b21pYyBibG9jayBhbGxvY2F0aW9ucyAoaS5lLiBvZiBhcmVhcyAgdXNlZnVsIGZvciBnYXJiYWdlIGNvbGxlY3RlZCBtZW1vcnkgYWxsb2NhdG9ycyAgU2hvdWxkIHRoaXMgYmUgYmxvY2tlZCBpZiB0aGVyZSB3YXMgYWxyZWFkeSBzb21lIGFsbG9jYXRpb25zIGRvbmUgPzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIG9uIHN1Y2Nlc3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnJlZUZ1bmMnIHR5cGU9J3htbEZyZWVGdW5jJyBpbmZvPSd0aGUgZnJlZSgpIGZ1bmN0aW9uIHRvIHVzZScvPgorICAgICAgPGFyZyBuYW1lPSdtYWxsb2NGdW5jJyB0eXBlPSd4bWxNYWxsb2NGdW5jJyBpbmZvPSd0aGUgbWFsbG9jKCkgZnVuY3Rpb24gdG8gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J21hbGxvY0F0b21pY0Z1bmMnIHR5cGU9J3htbE1hbGxvY0Z1bmMnIGluZm89J3RoZSBtYWxsb2MoKSBmdW5jdGlvbiB0byB1c2UgZm9yIGF0b21pYyBhbGxvY2F0aW9ucycvPgorICAgICAgPGFyZyBuYW1lPSdyZWFsbG9jRnVuYycgdHlwZT0neG1sUmVhbGxvY0Z1bmMnIGluZm89J3RoZSByZWFsbG9jKCkgZnVuY3Rpb24gdG8gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmR1cEZ1bmMnIHR5cGU9J3htbFN0cmR1cEZ1bmMnIGluZm89J3RoZSBzdHJkdXAoKSBmdW5jdGlvbiB0byB1c2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxHZW5lcmljRXJyb3JGdW5jJyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSd4bWxlcnJvcic+CisgICAgICA8aW5mbz5TaWduYXR1cmUgb2YgdGhlIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGFuZCBubyBwYXJzaW5nIG9yIHZhbGlkaXR5IGNvbnRleHQgYXZhaWxhYmxlIC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2EgcGFyc2luZyBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZScvPgorICAgICAgPGFyZyBuYW1lPScuLi4nIHR5cGU9Jy4uLicgaW5mbz0ndGhlIGV4dHJhIGFyZ3VtZW50cyBvZiB0aGUgdmFyYWdzIHRvIGZvcm1hdCB0aGUgbWVzc2FnZScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5UeXBlcyBhcmUgWE1MX0JVRkZFUl9BTExPQ19FWEFDVCAtIHVzZSBleGFjdCBzaXplcywga2VlcHMgbWVtb3J5IHVzYWdlIGRvd24gWE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVCAtIGRvdWJsZSBidWZmZXIgd2hlbiBleHRyYSBuZWVkZWQsIGltcHJvdmVzIHBlcmZvcm1hbmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lJyBpbmZvPSd0aGUgY3VycmVudCBhbGxvY2F0aW9uIHNjaGVtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXInIGZpbGU9J2VuY29kaW5nJyBtb2R1bGU9J2VuY29kaW5nJz4KKyAgICAgIDxpbmZvPlNlYXJjaCBpbiB0aGUgcmVnaXN0ZXJlZCBzZXQgdGhlIGhhbmRsZXIgYWJsZSB0byByZWFkL3dyaXRlIHRoYXQgZW5jb2RpbmcuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyJyBpbmZvPSd0aGUgaGFuZGxlciBvciBOVUxMIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nYW4geG1sQ2hhckVuY29kaW5nIHZhbHVlLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldENoYXJFbmNvZGluZ05hbWUnIGZpbGU9J2VuY29kaW5nJyBtb2R1bGU9J2VuY29kaW5nJz4KKyAgICAgIDxpbmZvPlRoZSAmcXVvdDtjYW5vbmljYWwmcXVvdDsgbmFtZSBmb3IgWE1MIGVuY29kaW5nLiBDLmYuIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjY2hhcmVuY29kaW5nIFNlY3Rpb24gNC4zLjMgIENoYXJhY3RlciBFbmNvZGluZyBpbiBFbnRpdGllczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgY2Fub25pY2FsIG5hbWUgZm9yIHRoZSBnaXZlbiBlbmNvZGluZycvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0ndGhlIGVuY29kaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0Q29tcHJlc3NNb2RlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Z2V0IHRoZSBkZWZhdWx0IGNvbXByZXNzaW9uIG1vZGUgdXNlZCwgWkxJQiBiYXNlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCAodW5jb21wcmVzc2VkKSB0byA5IChtYXggY29tcHJlc3Npb24pJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0RG9jQ29tcHJlc3NNb2RlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Z2V0IHRoZSBjb21wcmVzc2lvbiByYXRpbyBmb3IgYSBkb2N1bWVudCwgWkxJQiBiYXNlZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwICh1bmNvbXByZXNzZWQpIHRvIDkgKG1heCBjb21wcmVzc2lvbiknLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldERvY0VudGl0eScgZmlsZT0nZW50aXRpZXMnIG1vZHVsZT0nZW50aXRpZXMnPgorICAgICAgPGluZm8+RG8gYW4gZW50aXR5IGxvb2t1cCBpbiB0aGUgZG9jdW1lbnQgZW50aXR5IGhhc2ggdGFibGUgYW5kPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J3RoZSBjb3JyZXNwb25kaW5nIGVudGl0eSwgb3RoZXJ3aXNlIGEgbG9va3VwIGlzIGRvbmUgaW4gdGhlIHByZWRlZmluZWQgZW50aXRpZXMgdG9vLiAgUmV0dXJucyBBIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBzdHJ1Y3R1cmUgb3IgTlVMTCBpZiBub3QgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldER0ZEF0dHJEZXNjJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5TZWFyY2ggdGhlIERURCBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgYXR0cmlidXRlIG9uIHRoaXMgZWxlbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF0dHJpYnV0ZVB0cicgaW5mbz0ndGhlIHhtbEF0dHJpYnV0ZVB0ciBpZiBmb3VuZCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2R0ZCcgdHlwZT0neG1sRHRkUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2gnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZWxlbWVudCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0RHRkRWxlbWVudERlc2MnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPlNlYXJjaCB0aGUgRFREIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBlbGVtZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbGVtZW50UHRyJyBpbmZvPSd0aGUgeG1sRWxlbWVudFB0ciBpZiBmb3VuZCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2R0ZCcgdHlwZT0neG1sRHRkUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2gnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZWxlbWVudCBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0RHRkRW50aXR5JyBmaWxlPSdlbnRpdGllcycgbW9kdWxlPSdlbnRpdGllcyc+CisgICAgICA8aW5mbz5EbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBEVEQgZW50aXR5IGhhc2ggdGFibGUgYW5kPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J3RoZSBjb3JyZXNwb25kaW5nIGVudGl0eSwgaWYgZm91bmQuIE5vdGU6IHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgZG9jdW1lbnQgbm9kZSwgbm90IHRoZSBEVEQgbm9kZS4gIFJldHVybnMgQSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgc3RydWN0dXJlIG9yIE5VTEwgaWYgbm90IGZvdW5kLicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50IHJlZmVyZW5jaW5nIHRoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZW50aXR5IG5hbWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXREdGROb3RhdGlvbkRlc2MnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPlNlYXJjaCB0aGUgRFREIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBub3RhdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm90YXRpb25QdHInIGluZm89J3RoZSB4bWxOb3RhdGlvblB0ciBpZiBmb3VuZCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2R0ZCcgdHlwZT0neG1sRHRkUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2gnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbm90YXRpb24gbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldER0ZFFBdHRyRGVzYycgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+U2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHF1YWxpZmllZCBhdHRyaWJ1dGUgb24gdGhpcyBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXR0cmlidXRlUHRyJyBpbmZvPSd0aGUgeG1sQXR0cmlidXRlUHRyIGlmIGZvdW5kIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZHRkJyB0eXBlPSd4bWxEdGRQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgRHREIHRvIHNlYXJjaCcvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZXNwYWNlIHByZWZpeCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldER0ZFFFbGVtZW50RGVzYycgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+U2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGVsZW1lbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVsZW1lbnRQdHInIGluZm89J3RoZSB4bWxFbGVtZW50UHRyIGlmIGZvdW5kIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZHRkJyB0eXBlPSd4bWxEdGRQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgRHREIHRvIHNlYXJjaCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXRFbmNvZGluZ0FsaWFzJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5Mb29rdXAgYW4gZW5jb2RpbmcgbmFtZSBmb3IgdGhlIGdpdmVuIGFsaWFzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdOVUxMIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHRoZSBvcmlnaW5hbCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2FsaWFzJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBhbGlhcyBuYW1lIGFzIHBhcnNlZCwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcicgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkdldCB0aGUgZGVmYXVsdCBleHRlcm5hbCBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb24gZm9yIHRoZSBhcHBsaWNhdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXInIGluZm89J3RoZSB4bWxFeHRlcm5hbEVudGl0eUxvYWRlciBmdW5jdGlvbiBwb2ludGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0RmVhdHVyZScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWFkIHRoZSBjdXJyZW50IHZhbHVlIG9mIG9uZSBmZWF0dXJlIG9mIHRoaXMgcGFyc2VyIGluc3RhbmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluIGNhc2Ugb3IgZXJyb3IsIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTC9IVE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZlYXR1cmUgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdyZXN1bHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0nbG9jYXRpb24gdG8gc3RvcmUgdGhlIHJlc3VsdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldEZlYXR1cmVzTGlzdCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db3B5IGF0IG1vc3QgKkBsZW4gZmVhdHVyZSBuYW1lcyBpbnRvIHRoZSBAcmVzdWx0IGFycmF5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluIGNhc2Ugb3IgZXJyb3IsIG9yIHRoZSB0b3RhbCBudW1iZXIgb2YgZmVhdHVyZXMsIGxlbiBpcyB1cGRhdGVkIHdpdGggdGhlIG51bWJlciBvZiBzdHJpbmdzIGNvcGllZCwgc3RyaW5ncyBtdXN0IG5vdCBiZSBkZWFsbG9jYXRlZCcvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCAqJyBpbmZvPSd0aGUgbGVuZ3RoIG9mIHRoZSBmZWF0dXJlcyBuYW1lIGFycmF5IChpbnB1dC9vdXRwdXQpJy8+CisgICAgICA8YXJnIG5hbWU9J3Jlc3VsdCcgdHlwZT0nY29uc3QgY2hhciAqKicgaW5mbz0nYW4gYXJyYXkgb2Ygc3RyaW5nIHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBmZWF0dXJlcyBuYW1lLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldEdsb2JhbFN0YXRlJyBmaWxlPSd0aHJlYWRzJyBtb2R1bGU9J3RocmVhZHMnPgorICAgICAgPGluZm8+eG1sR2V0R2xvYmFsU3RhdGUoKSBpcyBjYWxsZWQgdG8gcmV0cmlldmUgdGhlIGdsb2JhbCBzdGF0ZSBmb3IgYSB0aHJlYWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxHbG9iYWxTdGF0ZVB0cicgaW5mbz0ndGhlIHRocmVhZCBnbG9iYWwgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0SUQnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPlNlYXJjaCB0aGUgYXR0cmlidXRlIGRlY2xhcmluZyB0aGUgZ2l2ZW4gSUQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF0dHJQdHInIGluZm89J05VTEwgaWYgbm90IGZvdW5kLCBvdGhlcndpc2UgdGhlIHhtbEF0dHJQdHIgZGVmaW5pbmcgdGhlIElEJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgSUQgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXRJbnRTdWJzZXQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5HZXQgdGhlIGludGVybmFsIHN1YnNldCBvZiBhIGRvY3VtZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEdGRQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgRFREIHN0cnVjdHVyZSBvciBOVUxMIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50IHBvaW50ZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXRMYXN0Q2hpbGQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5TZWFyY2ggdGhlIGxhc3QgY2hpbGQgb2YgYSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGxhc3QgY2hpbGQgb3IgTlVMTCBpZiBub25lLicvPgorICAgICAgPGFyZyBuYW1lPSdwYXJlbnQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBwYXJlbnQgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldExhc3RFcnJvcicgZmlsZT0neG1sZXJyb3InIG1vZHVsZT0nZXJyb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBsYXN0IGdsb2JhbCBlcnJvciByZWdpc3RlcmVkLiBUaGlzIGlzIHBlciB0aHJlYWQgaWYgY29tcGlsZWQgd2l0aCB0aHJlYWQgc3VwcG9ydC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVycm9yUHRyJyBpbmZvPSdOVUxMIGlmIG5vIGVycm9yIG9jY3VyZWQgb3IgYSBwb2ludGVyIHRvIHRoZSBlcnJvcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldExpbmVObycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkdldCBsaW5lIG51bWJlciBvZiBAbm9kZS4gVGhpcyByZXF1aXJlcyBhY3RpdmF0aW9uIG9mIHRoaXMgb3B0aW9uIGJlZm9yZSBpbnZva2luZyB0aGUgcGFyc2VyIGJ5IGNhbGxpbmcgeG1sTGluZU51bWJlcnNEZWZhdWx0KDEpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdsb25nJyBpbmZvPSd0aGUgbGluZSBudW1iZXIgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3ZhbGlkIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXROb05zUHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlNlYXJjaCBhbmQgZ2V0IHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyBkb2VzIHRoZSBlbnRpdHkgc3Vic3RpdHV0aW9uLiBUaGlzIGZ1bmN0aW9uIGxvb2tzIGluIERURCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvciBkZWZhdWx0IGRlY2xhcmF0aW9uIHZhbHVlcyB1bmxlc3MgRFREIHVzZSBoYXMgYmVlbiB0dXJuZWQgb2ZmLiBUaGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8geG1sR2V0UHJvcCBleGNlcHQgaXQgd2lsbCBhY2NlcHQgb25seSBhbiBhdHRyaWJ1dGUgaW4gbm8gbmFtZXNwYWNlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kLiBJdCZhcG9zO3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0Tm9kZVBhdGgnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QnVpbGQgYSBzdHJ1Y3R1cmUgYmFzZWQgUGF0aCBmb3IgdGhlIGdpdmVuIG5vZGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5ldyBwYXRoIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIGNhbGxlciBtdXN0IGZyZWUgdGhlIHJldHVybmVkIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXROc0xpc3QnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZWFyY2ggYWxsIHRoZSBuYW1lc3BhY2UgYXBwbHlpbmcgdG8gYSBnaXZlbiBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTnNQdHIgKicgaW5mbz0nYW4gTlVMTCB0ZXJtaW5hdGVkIGFycmF5IG9mIGFsbCB0aGUgI3htbE5zUHRyIGZvdW5kIHRoYXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyIG9yIE5VTEwgaWYgbm8gbmFtZXNwYWNlIGlmIGRlZmluZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0TnNQcm9wJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+U2VhcmNoIGFuZCBnZXQgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHRvIGEgbm9kZSBUaGlzIGF0dHJpYnV0ZSBoYXMgdG8gYmUgYW5jaG9yZWQgaW4gdGhlIG5hbWVzcGFjZSBzcGVjaWZpZWQuIFRoaXMgZG9lcyB0aGUgZW50aXR5IHN1YnN0aXR1dGlvbi4gVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGZvciAjRklYRUQgb3IgZGVmYXVsdCBkZWNsYXJhdGlvbiB2YWx1ZXMgdW5sZXNzIERURCB1c2UgaGFzIGJlZW4gdHVybmVkIG9mZi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4gSXQmYXBvcztzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lU3BhY2UnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFVSSSBvZiB0aGUgbmFtZXNwYWNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0UGFyYW1ldGVyRW50aXR5JyBmaWxlPSdlbnRpdGllcycgbW9kdWxlPSdlbnRpdGllcyc+CisgICAgICA8aW5mbz5EbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgc3Vic2V0cyBhbmQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVudGl0eVB0cicgaW5mbz0ndGhlIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyIGVudGl0eSwgaWYgZm91bmQuICBSZXR1cm5zIEEgcG9pbnRlciB0byB0aGUgZW50aXR5IHN0cnVjdHVyZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCByZWZlcmVuY2luZyB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0UHJlZGVmaW5lZEVudGl0eScgZmlsZT0nZW50aXRpZXMnIG1vZHVsZT0nZW50aXRpZXMnPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGlzIG5hbWUgaXMgYW4gcHJlZGVmaW5lZCBlbnRpdHkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J05VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldFByb3AnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5TZWFyY2ggYW5kIGdldCB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIGFzc29jaWF0ZWQgdG8gYSBub2RlIFRoaXMgZG9lcyB0aGUgZW50aXR5IHN1YnN0aXR1dGlvbi4gVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGZvciAjRklYRUQgb3IgZGVmYXVsdCBkZWNsYXJhdGlvbiB2YWx1ZXMgdW5sZXNzIERURCB1c2UgaGFzIGJlZW4gdHVybmVkIG9mZi4gTk9URTogdGhpcyBmdW5jdGlvbiBhY3RzIGluZGVwZW5kZW50bHkgb2YgbmFtZXNwYWNlcyBhc3NvY2lhdGVkIHRvIHRoZSBhdHRyaWJ1dGUuIFVzZSB4bWxHZXROc1Byb3AoKSBvciB4bWxHZXROb05zUHJvcCgpIGZvciBuYW1lc3BhY2UgYXdhcmUgcHJvY2Vzc2luZy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4gSXQmYXBvcztzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEdldFJlZnMnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPkZpbmQgdGhlIHNldCBvZiByZWZlcmVuY2VzIGZvciB0aGUgc3VwcGxpZWQgSUQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdOVUxMIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIG5vZGUgc2V0IGZvciB0aGUgSUQuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgSUQgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxHZXRUaHJlYWRJZCcgZmlsZT0ndGhyZWFkcycgbW9kdWxlPSd0aHJlYWRzJz4KKyAgICAgIDxpbmZvPnhtbEdldFRocmVhZElkKCkgZmluZCB0aGUgY3VycmVudCB0aHJlYWQgSUQgbnVtYmVyIE5vdGUgdGhhdCB0aGlzIGlzIGxpa2VseSB0byBiZSBicm9rZW4gb24gc29tZSBwbGF0Zm9ybXMgdXNpbmcgcHRocmVhZHMgYXMgdGhlIHNwZWNpZmljYXRpb24gZG9lc24mYXBvczt0IG1hbmRhdGUgcHRocmVhZF90IHRvIGJlIGFuIGludGVnZXIgdHlwZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgY3VycmVudCB0aHJlYWQgSUQgbnVtYmVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sR2V0VVRGOENoYXInIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+UmVhZCB0aGUgZmlyc3QgVVRGOCBjaGFyYWN0ZXIgZnJvbSBAdXRmPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBjaGFyIHZhbHVlIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IsIGFuZCBzZXRzICpsZW4gdG8gdGhlIGFjdHVhbCBudW1iZXIgb2YgYnl0ZXMgY29uc3VtZWQgKDAgaW4gY2FzZSBvZiBlcnJvciknLz4KKyAgICAgIDxhcmcgbmFtZT0ndXRmJyB0eXBlPSdjb25zdCB1bnNpZ25lZCBjaGFyIConIGluZm89J2Egc2VxdWVuY2Ugb2YgVVRGLTggZW5jb2RlZCBieXRlcycvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIHByZXNlbnQgaW4gdGhlIHNlcXVlbmNlLiAgVGhpcyBpcyB1c2VkIHRvIGFzc3VyZSB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgY29tcGxldGVseSBjb250YWluZWQgd2l0aGluIHRoZSBzZXF1ZW5jZS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYW5kbGVFbnRpdHknIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RGVmYXVsdCBoYW5kbGluZyBvZiBkZWZpbmVkIGVudGl0aWVzLCB3aGVuIHNob3VsZCB3ZSBkZWZpbmUgYSBuZXcgaW5wdXQgc3RyZWFtID8gV2hlbiBkbyB3ZSBqdXN0IGhhbmRsZSB0aGF0IGFzIGEgc2V0IG9mIGNoYXJzID8gIE9CU09MRVRFOiB0byBiZSByZW1vdmVkIGF0IHNvbWUgcG9pbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlbnRpdHknIHR5cGU9J3htbEVudGl0eVB0cicgaW5mbz0nYW4gWE1MIGVudGl0eSBwb2ludGVyLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc0ZlYXR1cmUnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+RXhhbWluZXMgaWYgdGhlIGxpYnJhcnkgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBhIGdpdmVuIGZlYXR1cmUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J2Egbm9uLXplcm8gdmFsdWUgaWYgdGhlIGZlYXR1cmUgZXhpc3QsIG90aGVyd2lzZSB6ZXJvLiBSZXR1cm5zIHplcm8gKDApIGlmIHRoZSBmZWF0dXJlIGRvZXMgbm90IGV4aXN0IG9yIGFuIHVua25vd24gdW5rbm93biBmZWF0dXJlIGlzIHJlcXVlc3RlZCwgbm9uLXplcm8gb3RoZXJ3aXNlLicvPgorICAgICAgPGFyZyBuYW1lPSdmZWF0dXJlJyB0eXBlPSd4bWxGZWF0dXJlJyBpbmZvPSd0aGUgZmVhdHVyZSB0byBiZSBleGFtaW5lZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc05zUHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlNlYXJjaCBmb3IgYW4gYXR0cmlidXRlIGFzc29jaWF0ZWQgdG8gYSBub2RlIFRoaXMgYXR0cmlidXRlIGhhcyB0byBiZSBhbmNob3JlZCBpbiB0aGUgbmFtZXNwYWNlIHNwZWNpZmllZC4gVGhpcyBkb2VzIHRoZSBlbnRpdHkgc3Vic3RpdHV0aW9uLiBUaGlzIGZ1bmN0aW9uIGxvb2tzIGluIERURCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvciBkZWZhdWx0IGRlY2xhcmF0aW9uIHZhbHVlcyB1bmxlc3MgRFREIHVzZSBoYXMgYmVlbiB0dXJuZWQgb2ZmLiBOb3RlIHRoYXQgYSBuYW1lc3BhY2Ugb2YgTlVMTCBpbmRpY2F0ZXMgdG8gdXNlIHRoZSBkZWZhdWx0IG5hbWVzcGFjZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF0dHJQdHInIGluZm89J3RoZSBhdHRyaWJ1dGUgb3IgdGhlIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBvciBOVUxMIGlmIG5laXRoZXIgd2FzIGZvdW5kLicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lU3BhY2UnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFVSSSBvZiB0aGUgbmFtZXNwYWNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzUHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlNlYXJjaCBhbiBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB0byBhIG5vZGUgVGhpcyBmdW5jdGlvbiBhbHNvIGxvb2tzIGluIERURCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvciBkZWZhdWx0IGRlY2xhcmF0aW9uIHZhbHVlcyB1bmxlc3MgRFREIHVzZSBoYXMgYmVlbiB0dXJuZWQgb2ZmLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXR0clB0cicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBvciB0aGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uIG9yIE5VTEwgaWYgbmVpdGhlciB3YXMgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaEFkZEVudHJ5JyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIEBuYW1lLiBEdXBsaWNhdGUgbmFtZXMgZ2VuZXJhdGUgZXJyb3JzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIHRoZSBhZGRpdGlvbiBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYXNoQWRkRW50cnkyJyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+QWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZS4gRHVwbGljYXRlIHR1cGxlcyBnZW5lcmF0ZSBlcnJvcnMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcmRhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hBZGRFbnRyeTMnIGZpbGU9J2hhc2gnIG1vZHVsZT0naGFzaCc+CisgICAgICA8aW5mbz5BZGQgdGhlIEB1c2VyZGF0YSB0byB0aGUgaGFzaCBAdGFibGUuIFRoaXMgY2FuIGxhdGVyIGJlIHJldHJpZXZlZCBieSB1c2luZyB0aGUgdHVwbGUgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykuIER1cGxpY2F0ZSBlbnRyaWVzIGdlbmVyYXRlIGVycm9ycy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPSd0aGUgaGFzaCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lMycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxIYXNoQ29waWVyJyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+Q2FsbGJhY2sgdG8gY29weSBkYXRhIGZyb20gYSBoYXNoLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSdhIGNvcHkgb2YgdGhlIGRhdGEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdwYXlsb2FkJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBkYXRhIGluIHRoZSBoYXNoJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgYXNzb2NpYXRlZCcvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hDb3B5JyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+U2NhbiB0aGUgaGFzaCBAdGFibGUgYW5kIGFwcGxpZWQgQGYgdG8gZWFjaCB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIG5ldyB0YWJsZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbEhhc2hDb3BpZXInIGluZm89J3RoZSBjb3BpZXIgZnVuY3Rpb24gZm9yIGl0ZW1zIGluIHRoZSBoYXNoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaENyZWF0ZScgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxIYXNoVGFibGVQdHIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdCwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLicvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIG9mIHRoZSBoYXNoIHRhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaENyZWF0ZURpY3QnIGZpbGU9J2hhc2gnIG1vZHVsZT0naGFzaCc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sSGFzaFRhYmxlUHRyIHdoaWNoIHdpbGwgdXNlIEBkaWN0IGFzIHRoZSBpbnRlcm5hbCBkaWN0aW9uYXJ5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdCwgb3IgTlVMTCBpZiBhbiBlcnJvciBvY2N1cmVkLicvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIG9mIHRoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2RpY3QnIHR5cGU9J3htbERpY3RQdHInIGluZm89J2EgZGljdGlvbmFyeSB0byB1c2UgZm9yIHRoZSBoYXNoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sSGFzaERlYWxsb2NhdG9yJyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+Q2FsbGJhY2sgdG8gZnJlZSBkYXRhIGZyb20gYSBoYXNoLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdwYXlsb2FkJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBkYXRhIGluIHRoZSBoYXNoJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgYXNzb2NpYXRlZCcvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hGcmVlJyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+RnJlZSB0aGUgaGFzaCBAdGFibGUgYW5kIGl0cyBjb250ZW50cy4gVGhlIHVzZXJkYXRhIGlzIGRlYWxsb2NhdGVkIHdpdGggQGYgaWYgcHJvdmlkZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbEhhc2hEZWFsbG9jYXRvcicgaW5mbz0ndGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hMb29rdXAnIGZpbGU9J2hhc2gnIG1vZHVsZT0naGFzaCc+CisgICAgICA8aW5mbz5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIEBuYW1lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYXNoTG9va3VwMicgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgKEBuYW1lLCBAbmFtZTIpIHR1cGxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYXNoTG9va3VwMycgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykgdHVwbGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J3RoZSBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2Egc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUzJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYXNoUUxvb2t1cCcgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgUU5hbWUgQHByZWZpeDpAbmFtZS9AbmFtZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHJlZml4IG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hRTG9va3VwMicgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkZpbmQgdGhlIHVzZXJkYXRhIHNwZWNpZmllZCBieSB0aGUgUU5hbWVzIHR1cGxlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J3RoZSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPSd0aGUgaGFzaCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHByZWZpeCBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4MicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc2Vjb25kIHByZWZpeCBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYXNoUUxvb2t1cDMnIGZpbGU9J2hhc2gnIG1vZHVsZT0naGFzaCc+CisgICAgICA8aW5mbz5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgYSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPSd0aGUgaGFzaCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHByZWZpeCBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4MicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc2Vjb25kIHByZWZpeCBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4MycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdGhpcmQgcHJlZml4IG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lMycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaFJlbW92ZUVudHJ5JyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+RmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSBAbmFtZSBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIGhhc2ggQHRhYmxlLiBFeGlzdGluZyB1c2VyZGF0YSBmb3IgdGhpcyB0dXBsZSB3aWxsIGJlIHJlbW92ZWQgYW5kIGZyZWVkIHdpdGggQGYuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIHJlbW92YWwgc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yIG9yIG5vdCBmb3VuZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nZicgdHlwZT0neG1sSGFzaERlYWxsb2NhdG9yJyBpbmZvPSd0aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlbW92ZWQgaXRlbSAoaWYgYW55KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hSZW1vdmVFbnRyeTInIGZpbGU9J2hhc2gnIG1vZHVsZT0naGFzaCc+CisgICAgICA8aW5mbz5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZSBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIGhhc2ggQHRhYmxlLiBFeGlzdGluZyB1c2VyZGF0YSBmb3IgdGhpcyB0dXBsZSB3aWxsIGJlIHJlbW92ZWQgYW5kIGZyZWVkIHdpdGggQGYuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIHJlbW92YWwgc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yIG9yIG5vdCBmb3VuZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nZicgdHlwZT0neG1sSGFzaERlYWxsb2NhdG9yJyBpbmZvPSd0aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlbW92ZWQgaXRlbSAoaWYgYW55KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hSZW1vdmVFbnRyeTMnIGZpbGU9J2hhc2gnIG1vZHVsZT0naGFzaCc+CisgICAgICA8aW5mbz5GaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgaGFzaCBAdGFibGUuIEV4aXN0aW5nIHVzZXJkYXRhIGZvciB0aGlzIHR1cGxlIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgcmVtb3ZhbCBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3Igbm90IGZvdW5kLicvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPSd0aGUgaGFzaCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lMycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbEhhc2hEZWFsbG9jYXRvcicgaW5mbz0ndGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZW1vdmVkIGl0ZW0gKGlmIGFueSknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYXNoU2NhbicgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPlNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbEhhc2hTY2FubmVyJyBpbmZvPSd0aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2gnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdleHRyYSBkYXRhIHBhc3NlZCB0byBmJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaFNjYW4zJyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+U2NhbiB0aGUgaGFzaCBAdGFibGUgYW5kIGFwcGxpZWQgQGYgdG8gZWFjaCB2YWx1ZSBtYXRjaGluZyAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKSB0dXBsZS4gSWYgb25lIG9mIHRoZSBuYW1lcyBpcyBudWxsLCB0aGUgY29tcGFyaXNvbiBpcyBjb25zaWRlcmVkIHRvIG1hdGNoLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPSd0aGUgaGFzaCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2Egc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbEhhc2hTY2FubmVyJyBpbmZvPSd0aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2gnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdleHRyYSBkYXRhIHBhc3NlZCB0byBmJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaFNjYW5GdWxsJyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+U2NhbiB0aGUgaGFzaCBAdGFibGUgYW5kIGFwcGxpZWQgQGYgdG8gZWFjaCB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZicgdHlwZT0neG1sSGFzaFNjYW5uZXJGdWxsJyBpbmZvPSd0aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2gnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdleHRyYSBkYXRhIHBhc3NlZCB0byBmJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaFNjYW5GdWxsMycgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPlNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUgbWF0Y2hpbmcgKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykgdHVwbGUuIElmIG9uZSBvZiB0aGUgbmFtZXMgaXMgbnVsbCwgdGhlIGNvbXBhcmlzb24gaXMgY29uc2lkZXJlZCB0byBtYXRjaC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUzJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxIYXNoU2Nhbm5lckZ1bGwnIGluZm89J3RoZSBzY2FubmVyIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaCcvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2V4dHJhIGRhdGEgcGFzc2VkIHRvIGYnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxIYXNoU2Nhbm5lcicgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIHdoZW4gc2Nhbm5pbmcgZGF0YSBpbiBhIGhhc2ggd2l0aCB0aGUgc2ltcGxlIHNjYW5uZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3BheWxvYWQnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGRhdGEgaW4gdGhlIGhhc2gnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdleHRyYSBzY2Fubm5lciBkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgYXNzb2NpYXRlZCcvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbEhhc2hTY2FubmVyRnVsbCcgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIHdoZW4gc2Nhbm5pbmcgZGF0YSBpbiBhIGhhc2ggd2l0aCB0aGUgZnVsbCBzY2FubmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdwYXlsb2FkJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBkYXRhIGluIHRoZSBoYXNoJy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nZXh0cmEgc2Nhbm5uZXIgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIGFzc29jaWF0ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHNlY29uZCBuYW1lIGFzc29jaWF0ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZTMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHRoaXJkIG5hbWUgYXNzb2NpYXRlZCcvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEhhc2hTaXplJyBmaWxlPSdoYXNoJyBtb2R1bGU9J2hhc2gnPgorICAgICAgPGluZm8+UXVlcnkgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbnN0YWxsZWQgaW4gdGhlIGhhc2ggQHRhYmxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBoYXNoIHRhYmxlIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFibGUnIHR5cGU9J3htbEhhc2hUYWJsZVB0cicgaW5mbz0ndGhlIGhhc2ggdGFibGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxIYXNoVXBkYXRlRW50cnknIGZpbGU9J2hhc2gnIG1vZHVsZT0naGFzaCc+CisgICAgICA8aW5mbz5BZGQgdGhlIEB1c2VyZGF0YSB0byB0aGUgaGFzaCBAdGFibGUuIFRoaXMgY2FuIGxhdGVyIGJlIHJldHJpZXZlZCBieSB1c2luZyB0aGUgQG5hbWUuIEV4aXN0aW5nIGVudHJ5IGZvciB0aGlzIEBuYW1lIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZiBpZiBmb3VuZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPSd0aGUgaGFzaCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbEhhc2hEZWFsbG9jYXRvcicgaW5mbz0ndGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZXBsYWNlZCBpdGVtIChpZiBhbnkpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaFVwZGF0ZUVudHJ5MicgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZSAoQG5hbWUsIEBuYW1lMikgdHVwbGUuIEV4aXN0aW5nIGVudHJ5IGZvciB0aGlzIHR1cGxlIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZiBpZiBmb3VuZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd0YWJsZScgdHlwZT0neG1sSGFzaFRhYmxlUHRyJyBpbmZvPSd0aGUgaGFzaCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbEhhc2hEZWFsbG9jYXRvcicgaW5mbz0ndGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZXBsYWNlZCBpdGVtIChpZiBhbnkpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSGFzaFVwZGF0ZUVudHJ5MycgZmlsZT0naGFzaCcgbW9kdWxlPSdoYXNoJz4KKyAgICAgIDxpbmZvPkFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZSB0dXBsZSAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKS4gRXhpc3RpbmcgZW50cnkgZm9yIHRoaXMgdHVwbGUgd2lsbCBiZSByZW1vdmVkIGFuZCBmcmVlZCB3aXRoIEBmIGlmIGZvdW5kLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIHRoZSBhZGRpdGlvbiBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3RhYmxlJyB0eXBlPSd4bWxIYXNoVGFibGVQdHInIGluZm89J3RoZSBoYXNoIHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2Egc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUzJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcmRhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxIYXNoRGVhbGxvY2F0b3InIGluZm89J3RoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVwbGFjZWQgaXRlbSAoaWYgYW55KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbElPRlRQQ2xvc2UnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNsb3NlIGFuIEZUUCBJL08gY2hhbm5lbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRleHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIEkvTyBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSU9GVFBNYXRjaCcgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Y2hlY2sgaWYgdGhlIFVSSSBtYXRjaGVzIGFuIEZUUCBvbmU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBtYXRjaGVzLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJJIGZvciBtYXRjaGluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbElPRlRQT3BlbicgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+b3BlbiBhbiBGVFAgSS9PIGNoYW5uZWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gSS9PIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBVUkkgZm9yIG1hdGNoaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSU9GVFBSZWFkJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWFkIEBsZW4gYnl0ZXMgdG8gQGJ1ZmZlciBmcm9tIHRoZSBJL08gY2hhbm5lbC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRleHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIEkvTyBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY2hhciAqJyBpbmZvPSd3aGVyZSB0byBkcm9wIGRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J251bWJlciBvZiBieXRlcyB0byB3cml0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbElPSFRUUENsb3NlJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2xvc2UgYW4gSFRUUCBJL08gY2hhbm5lbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRleHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIEkvTyBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSU9IVFRQTWF0Y2gnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5jaGVjayBpZiB0aGUgVVJJIG1hdGNoZXMgYW4gSFRUUCBvbmU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBtYXRjaGVzLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJJIGZvciBtYXRjaGluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbElPSFRUUE9wZW4nIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5vcGVuIGFuIEhUVFAgSS9PIGNoYW5uZWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gSS9PIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBVUkkgZm9yIG1hdGNoaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSU9IVFRQT3BlblcnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5PcGVuIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBjb2xsZWN0IHRoZSBkb2N1bWVudCBmb3IgYSBzdWJzZXF1ZW50IEhUVFAgUE9TVCByZXF1ZXN0LiAgTm9uLXN0YXRpYyBhcyBpcyBjYWxsZWQgZnJvbSB0aGUgb3V0cHV0IGJ1ZmZlciBjcmVhdGlvbiByb3V0aW5lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJL08gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3Bvc3RfdXJpJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1RoZSBkZXN0aW5hdGlvbiBVUkkgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdjb21wcmVzc2lvbicgdHlwZT0naW50JyBpbmZvPSdUaGUgY29tcHJlc3Npb24gZGVzaXJlZCBmb3IgdGhlIGRvY3VtZW50LicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbElPSFRUUFJlYWQnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWFkIEBsZW4gYnl0ZXMgdG8gQGJ1ZmZlciBmcm9tIHRoZSBJL08gY2hhbm5lbC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRleHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIEkvTyBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY2hhciAqJyBpbmZvPSd3aGVyZSB0byBkcm9wIGRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J251bWJlciBvZiBieXRlcyB0byB3cml0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbElPUGFyc2VEVEQnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb2FkIGFuZCBwYXJzZSBhIERURDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRHRkUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIHhtbER0ZFB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIEBpbnB1dCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBmdW5jdGlvbiBpbiBhbnkgY2FzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSd4bWxTQVhIYW5kbGVyUHRyJyBpbmZvPSd0aGUgU0FYIGhhbmRsZXIgYmxvY2sgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdpbnB1dCcgdHlwZT0neG1sUGFyc2VySW5wdXRCdWZmZXJQdHInIGluZm89J2FuIElucHV0IEJ1ZmZlcicvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0ndGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMnIGZpbGU9J2VuY29kaW5nJyBtb2R1bGU9J2VuY29kaW5nJz4KKyAgICAgIDxpbmZvPkluaXRpYWxpemUgdGhlIGNoYXIgZW5jb2Rpbmcgc3VwcG9ydCwgaXQgcmVnaXN0ZXJzIHRoZSBkZWZhdWx0IGVuY29kaW5nIHN1cHBvcnRlZC4gTk9URTogd2hpbGUgcHVibGljLCB0aGlzIGZ1bmN0aW9uIHVzdWFsbHkgZG9lc24mYXBvczt0IG5lZWQgdG8gYmUgY2FsbGVkIGluIG5vcm1hbCBwcm9jZXNzaW5nLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEluaXRHbG9iYWxzJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+QWRkaXRpb25hbCBpbml0aWFsaXNhdGlvbiBmb3IgbXVsdGktdGhyZWFkaW5nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSW5pdE1lbW9yeScgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5Jbml0aWFsaXplIHRoZSBtZW1vcnkgbGF5ZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb24gc3VjY2VzcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEluaXROb2RlSW5mb1NlcScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz4tLSBJbml0aWFsaXplIChzZXQgdG8gaW5pdGlhbCBzdGF0ZSkgbm9kZSBpbmZvIHNlcXVlbmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3NlcScgdHlwZT0neG1sUGFyc2VyTm9kZUluZm9TZXFQdHInIGluZm89J2Egbm9kZSBpbmZvIHNlcXVlbmNlIHBvaW50ZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxJbml0UGFyc2VyJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPkluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgWE1MIHBhcnNlci4gVGhpcyBpcyBub3QgcmVlbnRyYW50LiBDYWxsIG9uY2UgYmVmb3JlIHByb2Nlc3NpbmcgaW4gY2FzZSBvZiB1c2UgaW4gbXVsdGl0aHJlYWRlZCBwcm9ncmFtcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxJbml0UGFyc2VyQ3R4dCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5Jbml0aWFsaXplIGEgcGFyc2VyIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSW5pdFRocmVhZHMnIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz54bWxJbml0VGhyZWFkcygpIGlzIHVzZWQgdG8gdG8gaW5pdGlhbGl6ZSBhbGwgdGhlIHRocmVhZCByZWxhdGVkIGRhdGEgb2YgdGhlIGxpYnhtbDIgbGlicmFyeS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxJbml0aWFsaXplQ2F0YWxvZycgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EbyB0aGUgY2F0YWxvZyBpbml0aWFsaXphdGlvbi4gdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUsIGNhdGFsb2cgaW5pdGlhbGl6YXRpb24gc2hvdWxkIHByZWZlcmFibHkgYmUgZG9uZSBvbmNlIGF0IHN0YXJ0dXA8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz54bWxJbml0aWFsaXplR2xvYmFsU3RhdGUoKSBpbml0aWFsaXplIGEgZ2xvYmFsIHN0YXRlIHdpdGggYWxsIHRoZSBkZWZhdWx0IHZhbHVlcyBvZiB0aGUgbGlicmFyeS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZ3MnIHR5cGU9J3htbEdsb2JhbFN0YXRlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSBuZXdseSBhbGxvY2F0ZWQgZ2xvYmFsIHN0YXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllcycgZmlsZT0nZW50aXRpZXMnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCB1cCB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcy4gRGVwcmVjYXRlZCBjYWxsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sSW5wdXRDbG9zZUNhbGxiYWNrJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gSW5wdXQgQVBJIHRvIGNsb3NlIHRoZSByZXNvdXJjZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGV4dCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJbnB1dCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sSW5wdXRNYXRjaENhbGxiYWNrJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gSW5wdXQgQVBJIHRvIGRldGVjdCBpZiB0aGUgY3VycmVudCBoYW5kbGVyIGNhbiBwcm92aWRlIGlucHV0IGZvbmN0aW9ubmFsaXRpZXMgZm9yIHRoaXMgcmVzb3VyY2UuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgeWVzIGFuZCAwIGlmIGFub3RoZXIgSW5wdXQgbW9kdWxlIHNob3VsZCBiZSB1c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjaGFyIGNvbnN0IConIGluZm89J3RoZSBmaWxlbmFtZSBvciBVUkknLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxJbnB1dE9wZW5DYWxsYmFjaycgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+Q2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIElucHV0IEFQSSB0byBvcGVuIHRoZSByZXNvdXJjZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJbnB1dCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY2hhciBjb25zdCAqJyBpbmZvPSd0aGUgZmlsZW5hbWUgb3IgVVJJJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sSW5wdXRSZWFkQ2FsbGJhY2snIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBJbnB1dCBBUEkgdG8gcmVhZCB0aGUgcmVzb3VyY2U8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyByZWFkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGV4dCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJbnB1dCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY2hhciAqJyBpbmZvPSd0aGUgYnVmZmVyIHRvIHN0b3JlIGRhdGEgcmVhZCcvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGluIGJ5dGVzJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNCYXNlQ2hhcicgZmlsZT0nY2h2YWxpZCcgbW9kdWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIHhtbElzQmFzZUNoYXJfY2ggb3IgeG1sSXNCYXNlQ2hhclEgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNCbGFuaycgZmlsZT0nY2h2YWxpZCcgbW9kdWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIHhtbElzQmxhbmtfY2ggb3IgeG1sSXNCbGFua1EgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNCbGFua05vZGUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5DaGVja3Mgd2hldGhlciB0aGlzIG5vZGUgaXMgYW4gZW1wdHkgb3Igd2hpdGVzcGFjZSBvbmx5IChhbmQgcG9zc2libHkgaWdub3JhYmxlKSB0ZXh0LW5vZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgeWVzLCAwIG5vJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNDaGFyJyBmaWxlPSdjaHZhbGlkJyBtb2R1bGU9J2NodmFsaWQnPgorICAgICAgPGluZm8+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgeG1sSXNDaGFyX2NoIG9yIHhtbElzQ2hhclEgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNDb21iaW5pbmcnIGZpbGU9J2NodmFsaWQnIG1vZHVsZT0nY2h2YWxpZCc+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuIFVzZSB4bWxJc0NvbWJpbmluZ1EgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNEaWdpdCcgZmlsZT0nY2h2YWxpZCcgbW9kdWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIHhtbElzRGlnaXRfY2ggb3IgeG1sSXNEaWdpdFEgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNFeHRlbmRlcicgZmlsZT0nY2h2YWxpZCcgbW9kdWxlPSdjaHZhbGlkJz4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gaXMgREVQUkVDQVRFRC4gVXNlIHhtbElzRXh0ZW5kZXJfY2ggb3IgeG1sSXNFeHRlbmRlclEgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNJRCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+RGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0cmlidXRlIGlzIG9mIHR5cGUgSUQuIEluIGNhc2Ugd2UgaGF2ZSBEVEQocykgdGhlbiB0aGlzIGlzIGRvbmUgaWYgRFREIGxvYWRpbmcgaGFzIGJlZW4gcmVxdWVzdGVkLiBJbiB0aGUgY2FzZSBvZiBIVE1MIGRvY3VtZW50cyBwYXJzZWQgd2l0aCB0aGUgSFRNTCBwYXJzZXIsIHRoZW4gSUQgZGV0ZWN0aW9uIGlzIGRvbmUgc3lzdGVtYXRpY2FsbHkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIGxvb2t1cCByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgYXR0cmlidXRlJy8+CisgICAgICA8YXJnIG5hbWU9J2F0dHInIHR5cGU9J3htbEF0dHJQdHInIGluZm89J3RoZSBhdHRyaWJ1dGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxJc0lkZW9ncmFwaGljJyBmaWxlPSdjaHZhbGlkJyBtb2R1bGU9J2NodmFsaWQnPgorICAgICAgPGluZm8+VGhpcyBmdW5jdGlvbiBpcyBERVBSRUNBVEVELiBVc2UgeG1sSXNJZGVvZ3JhcGhpY1EgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNMZXR0ZXInIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGFsbG93ZWQgYnkgdGhlIHByb2R1Y3Rpb24gWzg0XSBMZXR0ZXIgOjo9IEJhc2VDaGFyIHwgSWRlb2dyYXBoaWM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiBub3QsIG5vbi16ZXJvIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjJyB0eXBlPSdpbnQnIGluZm89J2FuIHVuaWNvZGUgY2hhcmFjdGVyIChpbnQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNNYWluVGhyZWFkJyBmaWxlPSd0aHJlYWRzJyBtb2R1bGU9J3RocmVhZHMnPgorICAgICAgPGluZm8+eG1sSXNNYWluVGhyZWFkKCkgY2hlY2sgd2hldGhlciB0aGUgY3VycmVudCB0aHJlYWQgaXMgdGhlIG1haW4gdGhyZWFkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZSBjdXJyZW50IHRocmVhZCBpcyB0aGUgbWFpbiB0aHJlYWQsIDAgb3RoZXJ3aXNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNNaXhlZEVsZW1lbnQnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPlNlYXJjaCBpbiB0aGUgRHREcyB3aGV0aGVyIGFuIGVsZW1lbnQgYWNjZXB0IE1peGVkIGNvbnRlbnQgKG9yIEFOWSkgYmFzaWNhbGx5IGlmIGl0IGlzIHN1cHBvc2VkIHRvIGFjY2VwdCB0ZXh0IGNoaWxkczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIG5vLCAxIGlmIHllcywgYW5kIC0xIGlmIG5vIGVsZW1lbnQgZGVzY3JpcHRpb24gaXMgYXZhaWxhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZWxlbWVudCBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNQdWJpZENoYXInIGZpbGU9J2NodmFsaWQnIG1vZHVsZT0nY2h2YWxpZCc+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIGlzIERFUFJFQ0FURUQuIFVzZSB4bWxJc1B1YmlkQ2hhcl9jaCBvciB4bWxJc1B1YmlkQ2hhclEgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0cnVlIGlmIGFyZ3VtZW50IHZhbGlkLCBmYWxzZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2gnIHR5cGU9J3Vuc2lnbmVkIGludCcgaW5mbz0nY2hhcmFjdGVyIHRvIHZhbGlkYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sSXNSZWYnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPkRldGVybWluZSB3aGV0aGVyIGFuIGF0dHJpYnV0ZSBpcyBvZiB0eXBlIFJlZi4gSW4gY2FzZSB3ZSBoYXZlIERURChzKSB0aGVuIHRoaXMgaXMgc2ltcGxlLCBvdGhlcndpc2Ugd2UgdXNlIGFuIGhldXJpc3RpYzogbmFtZSBSZWYgKHVwcGVyIG9yIGxvd2VyY2FzZSkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIGxvb2t1cCByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgYXR0cmlidXRlJy8+CisgICAgICA8YXJnIG5hbWU9J2F0dHInIHR5cGU9J3htbEF0dHJQdHInIGluZm89J3RoZSBhdHRyaWJ1dGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxJc1hIVE1MJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGluZm8+VHJ5IHRvIGZpbmQgaWYgdGhlIGRvY3VtZW50IGNvcnJlc3BvbmQgdG8gYW4gWEhUTUwgRFREPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSwgMCBpZiBub3QgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nc3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN5c3RlbSBpZGVudGlmaWVyJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmxpY0lEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwdWJsaWMgaWRlbnRpZmllcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEtlZXBCbGFua3NEZWZhdWx0JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlNldCBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgZGVmYXVsdCBibGFua3MgdGV4dCBub2RlcyBzdXBwb3J0LiBUaGUgMS54IHZlcnNpb24gb2YgdGhlIHBhcnNlciB1c2VkIGFuIGhldXJpc3RpYyB0byB0cnkgdG8gZGV0ZWN0IGlnbm9yYWJsZSB3aGl0ZSBzcGFjZXMuIEFzIGEgcmVzdWx0IHRoZSBTQVggY2FsbGJhY2sgd2FzIGdlbmVyYXRpbmcgeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UoKSBjYWxsYmFja3MgaW5zdGVhZCBvZiBjaGFyYWN0ZXJzKCkgb25lLCBhbmQgd2hlbiB1c2luZyB0aGUgRE9NIG91dHB1dCB0ZXh0IG5vZGVzIGNvbnRhaW5pbmcgdGhvc2UgYmxhbmtzIHdlcmUgbm90IGdlbmVyYXRlZC4gVGhlIDIueCBhbmQgbGF0ZXIgdmVyc2lvbiB3aWxsIHN3aXRjaCB0byB0aGUgWE1MIHN0YW5kYXJkIHdheSBhbmQgaWdub3JhYmxlV2hpdGVzcGFjZSgpIGFyZSBvbmx5IGdlbmVyYXRlZCB3aGVuIHJ1bm5pbmcgdGhlIHBhcnNlciBpbiB2YWxpZGF0aW5nIG1vZGUgYW5kIHdoZW4gdGhlIGN1cnJlbnQgZWxlbWVudCBkb2VzbiZhcG9zO3QgYWxsb3cgQ0RBVEEgb3IgbWl4ZWQgY29udGVudC4gVGhpcyBmdW5jdGlvbiBpcyBwcm92aWRlZCBhcyBhIHdheSB0byBmb3JjZSB0aGUgc3RhbmRhcmQgYmVoYXZpb3Igb24gMS5YIGxpYnMgYW5kIHRvIHN3aXRjaCBiYWNrIHRvIHRoZSBvbGQgbW9kZSBmb3IgY29tcGF0aWJpbGl0eSB3aGVuIHJ1bm5pbmcgMS5YIGNsaWVudCBjb2RlIG9uIDIuWCAuIFVwZ3JhZGUgb2YgMS5YIGNvZGUgc2hvdWxkIGJlIGRvbmUgYnkgdXNpbmcgeG1sSXNCbGFua05vZGUoKSBjb21tb2RpdHkgZnVuY3Rpb24gdG8gZGV0ZWN0IHRoZSAmcXVvdDtlbXB0eSZxdW90OyBub2RlcyBnZW5lcmF0ZWQuIFRoaXMgdmFsdWUgYWxzbyBhZmZlY3QgYXV0b2dlbmVyYXRpb24gb2YgaW5kZW50YXRpb24gd2hlbiBzYXZpbmcgY29kZSBpZiBibGFua3Mgc2VjdGlvbnMgYXJlIGtlcHQsIGluZGVudGF0aW9uIGlzIG5vdCBnZW5lcmF0ZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBzdWJzdGl0dXRpb24sIDEgZm9yIHN1YnN0aXR1dGlvbi4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdpbnQnIGluZm89J2ludCAwIG9yIDEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMYXN0RWxlbWVudENoaWxkJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZpbmRzIHRoZSBsYXN0IGNoaWxkIG5vZGUgb2YgdGhhdCBlbGVtZW50IHdoaWNoIGlzIGEgRWxlbWVudCBub2RlIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4gdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24mYXBvczt0IGhhdmUgYmFjayByZWZlcmVuY2UgZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbGFzdCBlbGVtZW50IGNoaWxkIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdwYXJlbnQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBwYXJlbnQgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExpbmVOdW1iZXJzRGVmYXVsdCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5TZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGVuYWJsaW5nIGxpbmUgbnVtYmVycyBpbiBlbGVtZW50cyBjb250ZW50cy4gVGhpcyBtYXkgYnJlYWsgb24gb2xkIGFwcGxpY2F0aW9uIGFuZCBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBzdWJzdGl0dXRpb24sIDEgZm9yIHN1YnN0aXR1dGlvbi4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdpbnQnIGluZm89J2ludCAwIG9yIDEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMaW5rR2V0RGF0YScgZmlsZT0nbGlzdCcgbW9kdWxlPSdsaXN0Jz4KKyAgICAgIDxpbmZvPlNlZSBSZXR1cm5zLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIGRhdGEgcmVmZXJlbmNlZCBmcm9tIHRoaXMgbGluaycvPgorICAgICAgPGFyZyBuYW1lPSdsaycgdHlwZT0neG1sTGlua1B0cicgaW5mbz0nYSBsaW5rJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdEFwcGVuZCcgZmlsZT0nbGlzdCcgbW9kdWxlPSdsaXN0Jz4KKyAgICAgIDxpbmZvPkluc2VydCBkYXRhIGluIHRoZSBvcmRlcmVkIGxpc3QgYXQgdGhlIGVuZCBmb3IgdGhpcyB2YWx1ZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcywgMSBpbiBjYXNlIG9mIGZhaWx1cmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMaXN0Q2xlYXInIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5SZW1vdmUgdGhlIGFsbCBkYXRhIGluIHRoZSBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2wnIHR5cGU9J3htbExpc3RQdHInIGluZm89J2EgbGlzdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExpc3RDb3B5JyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+TW92ZSBhbGwgdGhlIGVsZW1lbnQgZnJvbSB0aGUgb2xkIGxpc3QgaW4gdGhlIG5ldyBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzIDEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbExpc3RQdHInIGluZm89J3RoZSBuZXcgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdvbGQnIHR5cGU9J2NvbnN0IHhtbExpc3RQdHInIGluZm89J3RoZSBvbGQgbGlzdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExpc3RDcmVhdGUnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgbGlzdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTGlzdFB0cicgaW5mbz0ndGhlIG5ldyBsaXN0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkZWFsbG9jYXRvcicgdHlwZT0neG1sTGlzdERlYWxsb2NhdG9yJyBpbmZvPSdhbiBvcHRpb25hbCBkZWFsbG9jYXRvciBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdjb21wYXJlJyB0eXBlPSd4bWxMaXN0RGF0YUNvbXBhcmUnIGluZm89J2FuIG9wdGlvbmFsIGNvbXBhcmlzb24gZnVuY3Rpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxMaXN0RGF0YUNvbXBhcmUnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHRvIGNvbXBhcmUgMiBkYXRhLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlzIGVxdWFsaXR5LCAtMSBvciAxIG90aGVyd2lzZSBkZXBlbmRpbmcgb24gdGhlIG9yZGVyaW5nLicvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhMCcgdHlwZT0nY29uc3Qgdm9pZCAqJyBpbmZvPSd0aGUgZmlyc3QgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhMScgdHlwZT0nY29uc3Qgdm9pZCAqJyBpbmZvPSd0aGUgc2Vjb25kIGRhdGEnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxMaXN0RGVhbGxvY2F0b3InIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5DYWxsYmFjayBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgZGF0YSBmcm9tIGEgbGlzdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGsnIHR5cGU9J3htbExpbmtQdHInIGluZm89J3RoZSBkYXRhIHRvIGRlYWxsb2NhdGUnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMaXN0RGVsZXRlJyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+RGVsZXRlcyB0aGUgbGlzdCBhbmQgaXRzIGFzc29jaWF0ZWQgZGF0YTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMaXN0RHVwJyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+RHVwbGljYXRlIHRoZSBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIG5ldyBjb3B5IG9mIHRoZSBsaXN0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdvbGQnIHR5cGU9J2NvbnN0IHhtbExpc3RQdHInIGluZm89J3RoZSBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdEVtcHR5JyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+SXMgdGhlIGxpc3QgZW1wdHkgPzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZSBsaXN0IGlzIGVtcHR5LCAwIGlmIG5vdCBlbXB0eSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMaXN0RW5kJyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+R2V0IHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbExpbmtQdHInIGluZm89J3RoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3QsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdEZyb250JyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+R2V0IHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxMaW5rUHRyJyBpbmZvPSd0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbGlzdCwgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMaXN0SW5zZXJ0JyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+SW5zZXJ0IGRhdGEgaW4gdGhlIG9yZGVyZWQgbGlzdCBhdCB0aGUgYmVnaW5uaW5nIGZvciB0aGlzIHZhbHVlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCAxIGluIGNhc2Ugb2YgZmFpbHVyZScvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgZGF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExpc3RNZXJnZScgZmlsZT0nbGlzdCcgbW9kdWxlPSdsaXN0Jz4KKyAgICAgIDxpbmZvPmluY2x1ZGUgYWxsIHRoZSBlbGVtZW50cyBvZiB0aGUgc2Vjb25kIGxpc3QgaW4gdGhlIGZpcnN0IG9uZSBhbmQgY2xlYXIgdGhlIHNlY29uZCBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2wxJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSd0aGUgb3JpZ2luYWwgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdsMicgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0ndGhlIG5ldyBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFBvcEJhY2snIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5SZW1vdmVzIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFBvcEZyb250JyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+UmVtb3ZlcyB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbGlzdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMaXN0UHVzaEJhY2snIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5hZGQgdGhlIG5ldyBkYXRhIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBzdWNjZXNzZnVsLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSduZXcgZGF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExpc3RQdXNoRnJvbnQnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5hZGQgdGhlIG5ldyBkYXRhIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBzdWNjZXNzZnVsLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSduZXcgZGF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExpc3RSZW1vdmVBbGwnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5SZW1vdmUgdGhlIGFsbCBpbnN0YW5jZSBhc3NvY2lhdGVkIHRvIGRhdGEgaW4gdGhlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBkZWFsbG9jYXRpb24sIG9yIDAgaWYgbm90IGZvdW5kJy8+CisgICAgICA8YXJnIG5hbWU9J2wnIHR5cGU9J3htbExpc3RQdHInIGluZm89J2EgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2xpc3QgZGF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExpc3RSZW1vdmVGaXJzdCcgZmlsZT0nbGlzdCcgbW9kdWxlPSdsaXN0Jz4KKyAgICAgIDxpbmZvPlJlbW92ZSB0aGUgZmlyc3QgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgYSBkZWFsbG9jYXRpb24gb2NjdXJlZCwgb3IgMCBpZiBub3QgZm91bmQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nbGlzdCBkYXRhJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFJlbW92ZUxhc3QnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5SZW1vdmUgdGhlIGxhc3QgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgYSBkZWFsbG9jYXRpb24gb2NjdXJlZCwgb3IgMCBpZiBub3QgZm91bmQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nbGlzdCBkYXRhJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFJldmVyc2UnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5SZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFJldmVyc2VTZWFyY2gnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5TZWFyY2ggdGhlIGxpc3QgaW4gcmV2ZXJzZSBvcmRlciBmb3IgYW4gZXhpc3RpbmcgdmFsdWUgb2YgQGRhdGE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gQGRhdGEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2wnIHR5cGU9J3htbExpc3RQdHInIGluZm89J2EgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2Egc2VhcmNoIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFJldmVyc2VXYWxrJyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+V2FsayBhbGwgdGhlIGVsZW1lbnQgb2YgdGhlIGxpc3QgaW4gcmV2ZXJzZSBvcmRlciBhbmQgYXBwbHkgdGhlIHdhbGtlciBmdW5jdGlvbiB0byBpdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdsJyB0eXBlPSd4bWxMaXN0UHRyJyBpbmZvPSdhIGxpc3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nd2Fsa2VyJyB0eXBlPSd4bWxMaXN0V2Fsa2VyJyBpbmZvPSdhIHByb2Nlc3NpbmcgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcicgdHlwZT0nY29uc3Qgdm9pZCAqJyBpbmZvPSdhIHVzZXIgcGFyYW1ldGVyIHBhc3NlZCB0byB0aGUgd2Fsa2VyIGZ1bmN0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFNlYXJjaCcgZmlsZT0nbGlzdCcgbW9kdWxlPSdsaXN0Jz4KKyAgICAgIDxpbmZvPlNlYXJjaCB0aGUgbGlzdCBmb3IgYW4gZXhpc3RpbmcgdmFsdWUgb2YgQGRhdGE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gQGRhdGEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2wnIHR5cGU9J3htbExpc3RQdHInIGluZm89J2EgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2Egc2VhcmNoIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFNpemUnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5HZXQgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbGlzdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsaXN0IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFNvcnQnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5Tb3J0IGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIGxpc3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbCcgdHlwZT0neG1sTGlzdFB0cicgaW5mbz0nYSBsaXN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTGlzdFdhbGsnIGZpbGU9J2xpc3QnIG1vZHVsZT0nbGlzdCc+CisgICAgICA8aW5mbz5XYWxrIGFsbCB0aGUgZWxlbWVudCBvZiB0aGUgZmlyc3QgZnJvbSBmaXJzdCB0byBsYXN0IGFuZCBhcHBseSB0aGUgd2Fsa2VyIGZ1bmN0aW9uIHRvIGl0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2wnIHR5cGU9J3htbExpc3RQdHInIGluZm89J2EgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSd3YWxrZXInIHR5cGU9J3htbExpc3RXYWxrZXInIGluZm89J2EgcHJvY2Vzc2luZyBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyJyB0eXBlPSdjb25zdCB2b2lkIConIGluZm89J2EgdXNlciBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoZSB3YWxrZXIgZnVuY3Rpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxMaXN0V2Fsa2VyJyBmaWxlPSdsaXN0JyBtb2R1bGU9J2xpc3QnPgorICAgICAgPGluZm8+Q2FsbGJhY2sgZnVuY3Rpb24gdXNlZCB3aGVuIHdhbGtpbmcgYSBsaXN0IHdpdGggeG1sTGlzdFdhbGsoKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCB0byBzdG9wIHdhbGtpbmcgdGhlIGxpc3QsIDEgb3RoZXJ3aXNlLicvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSdjb25zdCB2b2lkIConIGluZm89J3RoZSBkYXRhIGZvdW5kIGluIHRoZSBsaXN0Jy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXInIHR5cGU9J2NvbnN0IHZvaWQgKicgaW5mbz0nZXh0cmEgdXNlciBwcm92aWRlZCBkYXRhIHRvIHRoZSB3YWxrZXInLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMb2FkQUNhdGFsb2cnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+TG9hZCB0aGUgY2F0YWxvZyBhbmQgYnVpbGQgdGhlIGFzc29jaWF0ZWQgZGF0YSBzdHJ1Y3R1cmVzLiBUaGlzIGNhbiBiZSBlaXRoZXIgYW4gWE1MIENhdGFsb2cgb3IgYW4gU0dNTCBDYXRhbG9nIEl0IHdpbGwgcmVjdXJzZSBpbiBTR01MIENBVEFMT0cgZW50cmllcy4gT24gdGhlIG90aGVyIGhhbmQgWE1MIENhdGFsb2dzIGFyZSBub3QgaGFuZGxlZCByZWN1cnNpdmVseS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENhdGFsb2dQdHInIGluZm89J3RoZSBjYXRhbG9nIHBhcnNlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBmaWxlIHBhdGgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMb2FkQ2F0YWxvZycgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb2FkIHRoZSBjYXRhbG9nIGFuZCBtYWtlcyBpdHMgZGVmaW5pdGlvbnMgZWZmZWN0aXZlIGZvciB0aGUgZGVmYXVsdCBleHRlcm5hbCBlbnRpdHkgbG9hZGVyLiBJdCB3aWxsIHJlY3Vyc2UgaW4gU0dNTCBDQVRBTE9HIGVudHJpZXMuIHRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZCBzYWZlLCBjYXRhbG9nIGluaXRpYWxpemF0aW9uIHNob3VsZCBwcmVmZXJhYmx5IGJlIGRvbmUgb25jZSBhdCBzdGFydHVwPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBmaWxlIHBhdGgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMb2FkQ2F0YWxvZ3MnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+TG9hZCB0aGUgY2F0YWxvZ3MgYW5kIG1ha2VzIHRoZWlyIGRlZmluaXRpb25zIGVmZmVjdGl2ZSBmb3IgdGhlIGRlZmF1bHQgZXh0ZXJuYWwgZW50aXR5IGxvYWRlci4gdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUsIGNhdGFsb2cgaW5pdGlhbGl6YXRpb24gc2hvdWxkIHByZWZlcmFibHkgYmUgZG9uZSBvbmNlIGF0IHN0YXJ0dXA8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncGF0aHNzJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgbGlzdCBvZiBkaXJlY3RvcmllcyBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBvciBhIHNwYWNlLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExvYWRFeHRlcm5hbEVudGl0eScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkxvYWQgYW4gZXh0ZXJuYWwgZW50aXR5LCBub3RlIHRoYXQgdGhlIHVzZSBvZiB0aGlzIGZ1bmN0aW9uIGZvciB1bnBhcnNlZCBlbnRpdGllcyBtYXkgZ2VuZXJhdGUgcHJvYmxlbXM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSd0aGUgeG1sUGFyc2VySW5wdXRQdHIgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIFVSTCBmb3IgdGhlIGVudGl0eSB0byBsb2FkJy8+CisgICAgICA8YXJnIG5hbWU9J0lEJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBQdWJsaWMgSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgY29udGV4dCBpbiB3aGljaCB0aGUgZW50aXR5IGlzIGNhbGxlZCBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTG9hZFNHTUxTdXBlckNhdGFsb2cnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+TG9hZCBhbiBTR01MIHN1cGVyIGNhdGFsb2cuIEl0IHdvbiZhcG9zO3QgZXhwYW5kIENBVEFMT0cgb3IgREVMRUdBVEUgcmVmZXJlbmNlcy4gVGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgbWFuaXB1bGF0aW5nIFNHTUwgU3VwZXIgQ2F0YWxvZ3MgbGlrZSBhZGRpbmcgYW5kIHJlbW92aW5nIENBVEFMT0cgb3IgREVMRUdBVEUgZW50cmllcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENhdGFsb2dQdHInIGluZm89J3RoZSBjYXRhbG9nIHBhcnNlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBmaWxlIHBhdGgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMb2NrTGlicmFyeScgZmlsZT0ndGhyZWFkcycgbW9kdWxlPSd0aHJlYWRzJz4KKyAgICAgIDxpbmZvPnhtbExvY2tMaWJyYXJ5KCkgaXMgdXNlZCB0byB0YWtlIG91dCBhIHJlLWVudHJhbnQgbG9jayBvbiB0aGUgbGlieG1sMiBsaWJyYXJ5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbExzQ291bnROb2RlJyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvdW50IHRoZSBjaGlsZHJlbiBvZiBAbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBjaGlsZHJlbiBvZiBAbm9kZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgdG8gY291bnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxMc09uZU5vZGUnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCB0byBAb3V0cHV0IHRoZSB0eXBlIGFuZCBuYW1lIG9mIEBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSB0byBkdW1wJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTWFsbG9jQXRvbWljTG9jJyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPmEgbWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LicvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdzaXplX3QnIGluZm89J2FuIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGUgbmFtZSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2xpbmUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxpbmUgbnVtYmVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sTWFsbG9jRnVuYycgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5TaWduYXR1cmUgZm9yIGEgbWFsbG9jKCkgaW1wbGVtZW50YXRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIGJsb2NrIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0nc2l6ZV90JyBpbmZvPSd0aGUgc2l6ZSByZXF1ZXN0ZWQgaW4gYnl0ZXMnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxNYWxsb2NMb2MnIGZpbGU9J3htbG1lbW9yeScgbW9kdWxlPSd4bWxtZW1vcnknPgorICAgICAgPGluZm8+YSBtYWxsb2MoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgYXJlYSBvciBOVUxMIGluIGNhc2Ugb2YgbGFjayBvZiBtZW1vcnkuJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J3NpemVfdCcgaW5mbz0nYW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZSBuYW1lIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGluZScgdHlwZT0naW50JyBpbmZvPSd0aGUgbGluZSBudW1iZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxNZW1CbG9ja3MnIGZpbGU9J3htbG1lbW9yeScgbW9kdWxlPSd4bWxtZW1vcnknPgorICAgICAgPGluZm8+UHJvdmlkZXMgdGhlIG51bWJlciBvZiBtZW1vcnkgYXJlYXMgY3VycmVudGx5IGFsbG9jYXRlZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSdhbiBpbnQgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2YgYmxvY2tzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTWVtRGlzcGxheScgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5zaG93IGluLWV4dGVuc28gdGhlIG1lbW9yeSBibG9ja3MgYWxsb2NhdGVkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2ZwJyB0eXBlPSdGSUxFIConIGluZm89J2EgRklMRSBkZXNjcmlwdG9yIHVzZWQgYXMgdGhlIG91dHB1dCBmaWxlLCBpZiBOVUxMLCB0aGUgcmVzdWx0IGlzIHdyaXR0ZW4gdG8gdGhlIGZpbGUgLm1lbW9yeWxpc3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxNZW1EaXNwbGF5TGFzdCcgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz50aGUgbGFzdCBuYkJ5dGVzIG9mIG1lbW9yeSBhbGxvY2F0ZWQgYW5kIG5vdCBmcmVlZCwgdXNlZnVsIGZvciBkdW1waW5nIHRoZSBtZW1vcnkgbGVmdCBhbGxvY2F0ZWQgYmV0d2VlbiB0d28gcGxhY2VzIGF0IHJ1bnRpbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2ZwJyB0eXBlPSdGSUxFIConIGluZm89J2EgRklMRSBkZXNjcmlwdG9yIHVzZWQgYXMgdGhlIG91dHB1dCBmaWxlLCBpZiBOVUxMLCB0aGUgcmVzdWx0IGlzIHdyaXR0ZW4gdG8gdGhlIGZpbGUgLm1lbW9yeWxpc3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmJCeXRlcycgdHlwZT0nbG9uZycgaW5mbz0ndGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gZHVtcCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE1lbUZyZWUnIGZpbGU9J3htbG1lbW9yeScgbW9kdWxlPSd4bWxtZW1vcnknPgorICAgICAgPGluZm8+YSBmcmVlKCkgZXF1aXZhbGVudCwgd2l0aCBlcnJvciBjaGVja2luZy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHRyJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBtZW1vcnkgYmxvY2sgcG9pbnRlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE1lbUdldCcgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5Qcm92aWRlcyB0aGUgbWVtb3J5IGFjY2VzcyBmdW5jdGlvbnMgc2V0IGN1cnJlbnRseSBpbiB1c2U8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvbiBzdWNjZXNzJy8+CisgICAgICA8YXJnIG5hbWU9J2ZyZWVGdW5jJyB0eXBlPSd4bWxGcmVlRnVuYyAqJyBpbmZvPSdwbGFjZSB0byBzYXZlIHRoZSBmcmVlKCkgZnVuY3Rpb24gaW4gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J21hbGxvY0Z1bmMnIHR5cGU9J3htbE1hbGxvY0Z1bmMgKicgaW5mbz0ncGxhY2UgdG8gc2F2ZSB0aGUgbWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWxsb2NGdW5jJyB0eXBlPSd4bWxSZWFsbG9jRnVuYyAqJyBpbmZvPSdwbGFjZSB0byBzYXZlIHRoZSByZWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmR1cEZ1bmMnIHR5cGU9J3htbFN0cmR1cEZ1bmMgKicgaW5mbz0ncGxhY2UgdG8gc2F2ZSB0aGUgc3RyZHVwKCkgZnVuY3Rpb24gaW4gdXNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTWVtTWFsbG9jJyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPmEgbWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LicvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdzaXplX3QnIGluZm89J2FuIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTWVtUmVhbGxvYycgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5hIHJlYWxsb2MoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgYXJlYSBvciBOVUxMIGluIGNhc2Ugb2YgbGFjayBvZiBtZW1vcnkuJy8+CisgICAgICA8YXJnIG5hbWU9J3B0cicgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgaW5pdGlhbCBtZW1vcnkgYmxvY2sgcG9pbnRlcicvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdzaXplX3QnIGluZm89J2FuIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTWVtU2V0dXAnIGZpbGU9J3htbG1lbW9yeScgbW9kdWxlPSd4bWxtZW1vcnknPgorICAgICAgPGluZm8+T3ZlcnJpZGUgdGhlIGRlZmF1bHQgbWVtb3J5IGFjY2VzcyBmdW5jdGlvbnMgd2l0aCBhIG5ldyBzZXQgVGhpcyBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgbGlieG1sIHJvdXRpbmVzICEgIFNob3VsZCB0aGlzIGJlIGJsb2NrZWQgaWYgdGhlcmUgd2FzIGFscmVhZHkgc29tZSBhbGxvY2F0aW9ucyBkb25lID88L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvbiBzdWNjZXNzJy8+CisgICAgICA8YXJnIG5hbWU9J2ZyZWVGdW5jJyB0eXBlPSd4bWxGcmVlRnVuYycgaW5mbz0ndGhlIGZyZWUoKSBmdW5jdGlvbiB0byB1c2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nbWFsbG9jRnVuYycgdHlwZT0neG1sTWFsbG9jRnVuYycgaW5mbz0ndGhlIG1hbGxvYygpIGZ1bmN0aW9uIHRvIHVzZScvPgorICAgICAgPGFyZyBuYW1lPSdyZWFsbG9jRnVuYycgdHlwZT0neG1sUmVhbGxvY0Z1bmMnIGluZm89J3RoZSByZWFsbG9jKCkgZnVuY3Rpb24gdG8gdXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmR1cEZ1bmMnIHR5cGU9J3htbFN0cmR1cEZ1bmMnIGluZm89J3RoZSBzdHJkdXAoKSBmdW5jdGlvbiB0byB1c2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxNZW1TaG93JyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPnNob3cgYSBzaG93IGRpc3BsYXkgb2YgdGhlIG1lbW9yeSBhbGxvY2F0ZWQsIGFuZCBkdW1wIHRoZSBAbnIgbGFzdCBhbGxvY2F0ZWQgYXJlYXMgd2hpY2ggd2VyZSBub3QgZnJlZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnAnIHR5cGU9J0ZJTEUgKicgaW5mbz0nYSBGSUxFIGRlc2NyaXB0b3IgdXNlZCBhcyB0aGUgb3V0cHV0IGZpbGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbnInIHR5cGU9J2ludCcgaW5mbz0nbnVtYmVyIG9mIGVudHJpZXMgdG8gZHVtcCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE1lbVN0cmR1cExvYycgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5hIHN0cmR1cCgpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpZiBhbGxvY2F0aW9uIGVycm9yIG9jY3VycmVkLicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGluaXRpYWwgc3RyaW5nIHBvaW50ZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZSBuYW1lIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGluZScgdHlwZT0naW50JyBpbmZvPSd0aGUgbGluZSBudW1iZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxNZW1Vc2VkJyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPlByb3ZpZGVzIHRoZSBhbW91bnQgb2YgbWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nYW4gaW50IHJlcHJlc2VudGluZyB0aGUgYW1vdW50IG9mIG1lbW9yeSBhbGxvY2F0ZWQuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTWVtb3J5RHVtcCcgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5EdW1wIGluLWV4dGVuc28gdGhlIG1lbW9yeSBibG9ja3MgYWxsb2NhdGVkIHRvIHRoZSBmaWxlIC5tZW1vcnlsaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTWVtb3J5U3RyZHVwJyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPmEgc3RyZHVwKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjaGFyIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IHN0cmluZyBvciBOVUxMIGlmIGFsbG9jYXRpb24gZXJyb3Igb2NjdXJyZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgaW5pdGlhbCBzdHJpbmcgcG9pbnRlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE1vZHVsZUNsb3NlJyBmaWxlPSd4bWxtb2R1bGUnIG1vZHVsZT0neG1sbW9kdWxlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX01PRFVMRVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGUgY2xvc2Ugb3BlcmF0aW9ucyB1bmxvYWQgdGhlIGFzc29jaWF0ZWQgbW9kdWxlIGFuZCBmcmVlIHRoZSBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIG1vZHVsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgYXJndW1lbnQgZXJyb3IgYW5kIC0yIGlmIHRoZSBtb2R1bGUgY291bGQgbm90IGJlIGNsb3NlZC91bmxvYWRlZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbW9kdWxlJyB0eXBlPSd4bWxNb2R1bGVQdHInIGluZm89J3RoZSBtb2R1bGUgaGFuZGxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTW9kdWxlRnJlZScgZmlsZT0neG1sbW9kdWxlJyBtb2R1bGU9J3htbG1vZHVsZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9NT0RVTEVTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhlIGZyZWUgb3BlcmF0aW9ucyBmcmVlIHRoZSBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIG1vZHVsZSBidXQgZG9lcyBub3QgdW5sb2FkIHRoZSBhc3NvY2lhdGVkIHNoYXJlZCBsaWJyYXJ5IHdoaWNoIG1heSBzdGlsbCBiZSBpbiB1c2UuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGFyZ3VtZW50IGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J21vZHVsZScgdHlwZT0neG1sTW9kdWxlUHRyJyBpbmZvPSd0aGUgbW9kdWxlIGhhbmRsZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE1vZHVsZU9wZW4nIGZpbGU9J3htbG1vZHVsZScgbW9kdWxlPSd4bWxtb2R1bGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTU9EVUxFU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPk9wZW5zIGEgbW9kdWxlL3NoYXJlZCBsaWJyYXJ5IGdpdmVuIGl0cyBuYW1lIG9yIHBhdGggVE9ETzogb3B0aW9ucyBhcmUgbm90IHlldCBpbXBsZW1lbnRlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE1vZHVsZVB0cicgaW5mbz0nYSBoYW5kbGUgZm9yIHRoZSBtb2R1bGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG1vZHVsZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBzZXQgb2YgeG1sTW9kdWxlT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTW9kdWxlU3ltYm9sJyBmaWxlPSd4bWxtb2R1bGUnIG1vZHVsZT0neG1sbW9kdWxlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX01PRFVMRVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb29rdXAgZm9yIGEgc3ltYm9sIGFkZHJlc3MgaW4gdGhlIGdpdmVuIG1vZHVsZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoZSBzeW1ib2wgd2FzIGZvdW5kLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J21vZHVsZScgdHlwZT0neG1sTW9kdWxlUHRyJyBpbmZvPSd0aGUgbW9kdWxlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIHN5bWJvbCcvPgorICAgICAgPGFyZyBuYW1lPSdzeW1ib2wnIHR5cGU9J3ZvaWQgKionIGluZm89J3RoZSByZXN1bHRpbmcgc3ltYm9sIGFkZHJlc3MnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxNdXRleExvY2snIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz54bWxNdXRleExvY2soKSBpcyB1c2VkIHRvIGxvY2sgYSBsaWJ4bWwyIHRva2VuLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSd0b2snIHR5cGU9J3htbE11dGV4UHRyJyBpbmZvPSd0aGUgc2ltcGxlIG11dGV4Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTXV0ZXhVbmxvY2snIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz54bWxNdXRleFVubG9jaygpIGlzIHVzZWQgdG8gdW5sb2NrIGEgbGlieG1sMiB0b2tlbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndG9rJyB0eXBlPSd4bWxNdXRleFB0cicgaW5mbz0ndGhlIHNpbXBsZSBtdXRleCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBuYW1lc3BhY2UgbmFtZS4gIFRPRE86IHRoaXMgc2VlbXMgbm90IGluIHVzZSBhbnltb3JlLCB0aGUgbmFtZXNwYWNlIGhhbmRsaW5nIGlzIGRvbmUgb24gdG9wIG9mIHRoZSBTQVggaW50ZXJmYWNlcywgaS5lLiBub3Qgb24gcmF3IGlucHV0LiAgW05TIDNdIE5DTmFtZSA6Oj0gKExldHRlciB8ICZhcG9zO18mYXBvczspIChOQ05hbWVDaGFyKSogIFtOUyA0XSBOQ05hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICZhcG9zOy4mYXBvczsgfCAmYXBvczstJmFwb3M7IHwgJmFwb3M7XyZhcG9zOyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIG5hbWUgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW1lc3BhY2VQYXJzZU5TRGVmJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGEgbmFtZXNwYWNlIHByZWZpeCBkZWNsYXJhdGlvbiAgVE9ETzogdGhpcyBzZWVtcyBub3QgaW4gdXNlIGFueW1vcmUsIHRoZSBuYW1lc3BhY2UgaGFuZGxpbmcgaXMgZG9uZSBvbiB0b3Agb2YgdGhlIFNBWCBpbnRlcmZhY2VzLCBpLmUuIG5vdCBvbiByYXcgaW5wdXQuICBbTlMgMV0gTlNEZWYgOjo9IFByZWZpeERlZiBFcSBTeXN0ZW1MaXRlcmFsICBbTlMgMl0gUHJlZml4RGVmIDo6PSAmYXBvczt4bWxucyZhcG9zOyAoJmFwb3M7OiZhcG9zOyBOQ05hbWUpPzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFtZXNwYWNlUGFyc2VRTmFtZScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J2xlZ2FjeSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UT0RPOiB0aGlzIHNlZW1zIG5vdCBpbiB1c2UgYW55bW9yZSwgdGhlIG5hbWVzcGFjZSBoYW5kbGluZyBpcyBkb25lIG9uIHRvcCBvZiB0aGUgU0FYIGludGVyZmFjZXMsIGkuZS4gbm90IG9uIHJhdyBpbnB1dC4gIHBhcnNlIGFuIFhNTCBxdWFsaWZpZWQgbmFtZSAgW05TIDVdIFFOYW1lIDo6PSAoUHJlZml4ICZhcG9zOzomYXBvczspPyBMb2NhbFBhcnQgIFtOUyA2XSBQcmVmaXggOjo9IE5DTmFtZSAgW05TIDddIExvY2FsUGFydCA6Oj0gTkNOYW1lPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBsb2NhbCBwYXJ0LCBhbmQgcHJlZml4IGlzIHVwZGF0ZWQgdG8gZ2V0IHRoZSBQcmVmaXggaWYgYW55LicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSd4bWxDaGFyICoqJyBpbmZvPSdhIHhtbENoYXIgKionLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZScgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIGlmIHRoZXJlIGlzIGEgcmVzcG9uc2UgZnJvbSB0aGUgRlRQIHNlcnZlciBhZnRlciBhIGNvbW1hbmQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBjb2RlIG51bWJlciwgb3IgMCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gRlRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vRlRQQ2xlYW51cCcgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNsZWFudXAgdGhlIEZUUCBwcm90b2NvbCBsYXllci4gVGhpcyBjbGVhbnVwIHByb3h5IGluZm9ybWF0aW9ucy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vRlRQQ2xvc2UnIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DbG9zZSB0aGUgY29ubmVjdGlvbiBhbmQgYm90aCBjb250cm9sIGFuZCB0cmFuc3BvcnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gRlRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uJyBmaWxlPSduYW5vZnRwJyBtb2R1bGU9J25hbm9mdHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2xvc2UgdGhlIGRhdGEgY29ubmVjdGlvbiBmcm9tIHRoZSBzZXJ2ZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gRlRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vRlRQQ29ubmVjdCcgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyaWVzIHRvIG9wZW4gYSBjb250cm9sIGNvbm5lY3Rpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUENvbm5lY3RUbycgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyaWVzIHRvIG9wZW4gYSBjb250cm9sIGNvbm5lY3Rpb24gdG8gdGhlIGdpdmVuIHNlcnZlci9wb3J0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2FuIGZUUCBjb250ZXh0IG9yIE5VTEwgaWYgaXQgZmFpbGVkJy8+CisgICAgICA8YXJnIG5hbWU9J3NlcnZlcicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhbiBGVFAgc2VydmVyIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ncG9ydCcgdHlwZT0naW50JyBpbmZvPSd0aGUgcG9ydCAodXNlIDIxIGlmIDApJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUEN3ZCcgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyaWVzIHRvIGNoYW5nZSB0aGUgcmVtb3RlIGRpcmVjdG9yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpbmNhc2Ugb2YgZXJyb3IsIDEgaWYgQ1dEIHdvcmtlZCwgMCBpZiBpdCBmYWlsZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RpcmVjdG9yeScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGRpcmVjdG9yeSBvbiB0aGUgc2VydmVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUERlbGUnIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcmllcyB0byBkZWxldGUgYW4gaXRlbSAoZmlsZSBvciBkaXJlY3RvcnkpIGZyb20gc2VydmVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluY2FzZSBvZiBlcnJvciwgMSBpZiBERUxFIHdvcmtlZCwgMCBpZiBpdCBmYWlsZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBmaWxlIG9yIGRpcmVjdG9yeSBvbiB0aGUgc2VydmVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUEZyZWVDdHh0JyBmaWxlPSduYW5vZnRwJyBtb2R1bGU9J25hbm9mdHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZXMgdGhlIGNvbnRleHQgYWZ0ZXIgY2xvc2luZyB0aGUgY29ubmVjdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUEdldCcgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZldGNoIHRoZSBnaXZlbiBmaWxlIGZyb20gdGhlIHNlcnZlci4gQWxsIGRhdGEgYXJlIHBhc3NlZCBiYWNrIGluIHRoZSBjYWxsYmFja3MuIFRoZSBsYXN0IGNhbGxiYWNrIGhhcyBhIHNpemUgb2YgMCBibG9jay48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gRlRQIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY2FsbGJhY2snIHR5cGU9J2Z0cERhdGFDYWxsYmFjaycgaW5mbz0ndGhlIHVzZXIgY2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlckRhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgY2FsbGJhY2sgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZSB0byByZXRyaWV2ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9GVFBHZXRDb25uZWN0aW9uJyBmaWxlPSduYW5vZnRwJyBtb2R1bGU9J25hbm9mdHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJ5IHRvIG9wZW4gYSBkYXRhIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlci4gQ3VycmVudGx5IG9ubHkgcGFzc2l2ZSBtb2RlIGlzIHN1cHBvcnRlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gRlRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vRlRQR2V0UmVzcG9uc2UnIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEZUUCBzZXJ2ZXIgYWZ0ZXIgYSBjb21tYW5kLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgY29kZSBudW1iZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUEdldFNvY2tldCcgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkluaXRpYXRlIGZldGNoIG9mIHRoZSBnaXZlbiBmaWxlIGZyb20gdGhlIHNlcnZlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNvY2tldCBmb3IgdGhlIGRhdGEgY29ubmVjdGlvbiwgb3IgJmx0OzAgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gRlRQIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGUgdG8gcmV0cmlldmUgKG9yIE5VTEwgaWYgcGF0aCBpcyBpbiBjb250ZXh0KS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vRlRQSW5pdCcgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkluaXRpYWxpemUgdGhlIEZUUCBwcm90b2NvbCBsYXllci4gQ3VycmVudGx5IGl0IGp1c3QgY2hlY2tzIGZvciBwcm94eSBpbmZvcm1hdGlvbnMsIGFuZCBnZXQgdGhlIGhvc3RuYW1lPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUExpc3QnIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EbyBhIGxpc3Rpbmcgb24gdGhlIHNlcnZlci4gQWxsIGZpbGVzIGluZm8gYXJlIHBhc3NlZCBiYWNrIGluIHRoZSBjYWxsYmFja3MuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2NhbGxiYWNrJyB0eXBlPSdmdHBMaXN0Q2FsbGJhY2snIGluZm89J3RoZSB1c2VyIGNhbGxiYWNrJy8+CisgICAgICA8YXJnIG5hbWU9J3VzZXJEYXRhJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGNhbGxiYWNrIGRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nb3B0aW9uYWwgZmlsZXMgdG8gbGlzdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9GVFBOZXdDdHh0JyBmaWxlPSduYW5vZnRwJyBtb2R1bGU9J25hbm9mdHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgRlRQIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1RoZSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUE9wZW4nIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TdGFydCB0byBmZXRjaCB0aGUgZ2l2ZW4gZnRwOi8vIHJlc291cmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0LCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJMIHRvIHRoZSByZXNvdXJjZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9GVFBQcm94eScgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldHVwIHRoZSBGVFAgcHJveHkgaW5mb3JtYXRpb25zLiBUaGlzIGNhbiBhbHNvIGJlIGRvbmUgYnkgdXNpbmcgZnRwX3Byb3h5IGZ0cF9wcm94eV91c2VyIGFuZCBmdHBfcHJveHlfcGFzc3dvcmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdob3N0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBwcm94eSBob3N0IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ncG9ydCcgdHlwZT0naW50JyBpbmZvPSd0aGUgcHJveHkgcG9ydCcvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBwcm94eSB1c2VyIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ncGFzc3dkJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBwcm94eSBwYXNzd29yZCcvPgorICAgICAgPGFyZyBuYW1lPSd0eXBlJyB0eXBlPSdpbnQnIGluZm89J3RoZSB0eXBlIG9mIHByb3h5IDEgZm9yIHVzaW5nIFNJVEUsIDIgZm9yIFVTRVIgYUBiJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUFF1aXQnIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZW5kIGEgUVVJVCBjb21tYW5kIHRvIHRoZSBzZXJ2ZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEZUUCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUFJlYWQnIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlYWQgQGxlbiBieXRlcyBmcm9tIHRoZSBleGlzdGluZyBGVFAgY29ubmVjdGlvbiBhbmQgc2F2ZXMgdGhlbSBpbiBAZGVzdC4gVGhpcyBpcyBhIGJsb2NraW5nIGNhbGwuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZSByZWFkLiAwIGlzIGFuIGluZGljYXRpb24gb2YgYW4gZW5kIG9mIGNvbm5lY3Rpb24uIC0xIGluZGljYXRlcyBhIHBhcmFtZXRlciBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBGVFAgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkZXN0JyB0eXBlPSd2b2lkIConIGluZm89J2EgYnVmZmVyJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgYnVmZmVyIGxlbmd0aCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9GVFBTY2FuUHJveHknIGZpbGU9J25hbm9mdHAnIG1vZHVsZT0nbmFub2Z0cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz4oUmUpSW5pdGlhbGl6ZSB0aGUgRlRQIFByb3h5IGNvbnRleHQgYnkgcGFyc2luZyB0aGUgVVJMIGFuZCBmaW5kaW5nIHRoZSBwcm90b2NvbCBob3N0IHBvcnQgaXQgaW5kaWNhdGVzLiBTaG91bGQgYmUgbGlrZSBmdHA6Ly9teXByb3h5LyBvciBmdHA6Ly9teXByb3h5OjMxMjgvIEEgTlVMTCBVUkwgY2xlYW5zIHVwIHByb3h5IGluZm9ybWF0aW9ucy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1RoZSBwcm94eSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwcm94eSBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0ZUUFVwZGF0ZVVSTCcgZmlsZT0nbmFub2Z0cCcgbW9kdWxlPSduYW5vZnRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlVwZGF0ZSBhbiBGVFAgY29udGV4dCBieSBwYXJzaW5nIHRoZSBVUkwgYW5kIGZpbmRpbmcgbmV3IHBhdGggaXQgaW5kaWNhdGVzLiBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbiB0aGUgcHJvdG9jb2wsIGhvc3RuYW1lLCBwb3J0IG9yIG90aGVyIGluZm9ybWF0aW9uLCB0aGUgZXJyb3IgaXMgcmFpc2VkLiBJdCBpbmRpY2F0ZXMgYSBuZXcgY29ubmVjdGlvbiBoYXMgdG8gYmUgZXN0YWJsaXNoZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgT2ssIC0xIGluIGNhc2Ugb2YgZXJyb3IgKG90aGVyIGhvc3QpLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gRlRQIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1RoZSBVUkwgdXNlZCB0byB1cGRhdGUgdGhlIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUEF1dGhIZWFkZXInIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGF1dGhlbnRpY2F0aW9uIGhlYWRlciBvZiBhbiBIVFRQIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIHN0YXNoZWQgdmFsdWUgb2YgdGhlIFdXVy1BdXRoZW50aWNhdGUgb3IgUHJveHktQXV0aGVudGljYXRlIGhlYWRlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBIVFRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUENsZWFudXAnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DbGVhbnVwIHRoZSBIVFRQIHByb3RvY29sIGxheWVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9IVFRQQ2xvc2UnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIGNsb3NlcyBhbiBIVFRQIGNvbnRleHQsIGl0IGVuZHMgdXAgdGhlIGNvbm5lY3Rpb24gYW5kIGZyZWUgYWxsIGRhdGEgcmVsYXRlZCB0byBpdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBIVFRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qcm92aWRlcyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgbGVuZ3RoIGZyb20gdGhlIEhUVFAgaGVhZGVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgc3BlY2lmaWVkIGNvbnRlbnQgbGVuZ3RoIGZyb20gdGhlIEhUVFAgaGVhZGVyLiAgTm90ZSB0aGF0IGEgdmFsdWUgb2YgLTEgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbnRlbnQgbGVuZ3RoIGVsZW1lbnQgd2FzIG5vdCBpbmNsdWRlZCBpbiB0aGUgcmVzcG9uc2UgaGVhZGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIEhUVFAgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9IVFRQRW5jb2RpbmcnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qcm92aWRlcyB0aGUgc3BlY2lmaWVkIGVuY29kaW5nIGlmIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgc3BlY2lmaWVkIGVuY29kaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIEhUVFAgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9IVFRQRmV0Y2gnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHRyeSB0byBmZXRjaCB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIEdFVCBhbmQgc2F2ZSBpdCZhcG9zO3MgY29udGVudCBpbiB0aGUgZmlsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCAwIGluY2FzZSBvZiBzdWNjZXNzLiBUaGUgY29udGVudFR5cGUsIGlmIHByb3ZpZGVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlcicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nVGhlIFVSTCB0byBsb2FkJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZSB3aGVyZSB0aGUgY29udGVudCBzaG91bGQgYmUgc2F2ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudFR5cGUnIHR5cGU9J2NoYXIgKionIGluZm89J2lmIGF2YWlsYWJsZSB0aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIHdpbGwgYmUgcmV0dXJuZWQgYXQgdGhhdCBsb2NhdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5hbm9IVFRQSW5pdCcgZmlsZT0nbmFub2h0dHAnIG1vZHVsZT0nbmFub2h0dHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkluaXRpYWxpemUgdGhlIEhUVFAgcHJvdG9jb2wgbGF5ZXIuIEN1cnJlbnRseSBpdCBqdXN0IGNoZWNrcyBmb3IgcHJveHkgaW5mb3JtYXRpb25zPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0hUVFBNZXRob2QnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHRyeSB0byBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIHVzaW5nIHRoZSBnaXZlbiBAbWV0aG9kLCBhZGRpbmcgdGhlIGdpdmVuIGV4dHJhIGhlYWRlcnMgYW5kIHRoZSBpbnB1dCBidWZmZXIgZm9yIHRoZSByZXF1ZXN0IGNvbnRlbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J05VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLCBvdGhlcndpc2UgYSByZXF1ZXN0IGhhbmRsZXIuIFRoZSBjb250ZW50VHlwZSwgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdUaGUgVVJMIHRvIGxvYWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbWV0aG9kJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBIVFRQIG1ldGhvZCB0byB1c2UnLz4KKyAgICAgIDxhcmcgbmFtZT0naW5wdXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGlucHV0IHN0cmluZyBpZiBhbnknLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudFR5cGUnIHR5cGU9J2NoYXIgKionIGluZm89J3RoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gSU4gYW5kIE9VVCcvPgorICAgICAgPGFyZyBuYW1lPSdoZWFkZXJzJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBleHRyYSBoZWFkZXJzJy8+CisgICAgICA8YXJnIG5hbWU9J2lsZW4nIHR5cGU9J2ludCcgaW5mbz0naW5wdXQgbGVuZ3RoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0hUVFBNZXRob2RSZWRpcicgZmlsZT0nbmFub2h0dHAnIG1vZHVsZT0nbmFub2h0dHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gdHJ5IHRvIG9wZW4gYSBjb25uZWN0aW9uIHRvIHRoZSBpbmRpY2F0ZWQgcmVzb3VyY2UgdmlhIEhUVFAgdXNpbmcgdGhlIGdpdmVuIEBtZXRob2QsIGFkZGluZyB0aGUgZ2l2ZW4gZXh0cmEgaGVhZGVycyBhbmQgdGhlIGlucHV0IGJ1ZmZlciBmb3IgdGhlIHJlcXVlc3QgY29udGVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUsIG90aGVyd2lzZSBhIHJlcXVlc3QgaGFuZGxlci4gVGhlIGNvbnRlbnRUeXBlLCBvciByZWRpciwgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdUaGUgVVJMIHRvIGxvYWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbWV0aG9kJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBIVFRQIG1ldGhvZCB0byB1c2UnLz4KKyAgICAgIDxhcmcgbmFtZT0naW5wdXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGlucHV0IHN0cmluZyBpZiBhbnknLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudFR5cGUnIHR5cGU9J2NoYXIgKionIGluZm89J3RoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gSU4gYW5kIE9VVCcvPgorICAgICAgPGFyZyBuYW1lPSdyZWRpcicgdHlwZT0nY2hhciAqKicgaW5mbz0ndGhlIHJlZGlyZWN0ZWQgVVJMIE9VVCcvPgorICAgICAgPGFyZyBuYW1lPSdoZWFkZXJzJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBleHRyYSBoZWFkZXJzJy8+CisgICAgICA8YXJnIG5hbWU9J2lsZW4nIHR5cGU9J2ludCcgaW5mbz0naW5wdXQgbGVuZ3RoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0hUVFBNaW1lVHlwZScgZmlsZT0nbmFub2h0dHAnIG1vZHVsZT0nbmFub2h0dHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgTWltZS1UeXBlIGlmIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgc3BlY2lmaWVkIE1pbWUtVHlwZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBIVFRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUE9wZW4nIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHRyeSB0byBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIEdFVC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUsIG90aGVyd2lzZSBhIHJlcXVlc3QgaGFuZGxlci4gVGhlIGNvbnRlbnRUeXBlLCBpZiBwcm92aWRlZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1RoZSBVUkwgdG8gbG9hZCcvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50VHlwZScgdHlwZT0nY2hhciAqKicgaW5mbz0naWYgYXZhaWxhYmxlIHRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gd2lsbCBiZSByZXR1cm5lZCBhdCB0aGF0IGxvY2F0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0hUVFBPcGVuUmVkaXInIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHRyeSB0byBvcGVuIGEgY29ubmVjdGlvbiB0byB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIEdFVC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0nTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUsIG90aGVyd2lzZSBhIHJlcXVlc3QgaGFuZGxlci4gVGhlIGNvbnRlbnRUeXBlLCBpZiBwcm92aWRlZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1RoZSBVUkwgdG8gbG9hZCcvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50VHlwZScgdHlwZT0nY2hhciAqKicgaW5mbz0naWYgYXZhaWxhYmxlIHRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gd2lsbCBiZSByZXR1cm5lZCBhdCB0aGF0IGxvY2F0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3JlZGlyJyB0eXBlPSdjaGFyICoqJyBpbmZvPSdpZiBhdmFpbGFibGUgdGhlIHJlZGlyZWN0ZWQgVVJMIHdpbGwgYmUgcmV0dXJuZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUFJlYWQnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlYWQgQGxlbiBieXRlcyBmcm9tIHRoZSBleGlzdGluZyBIVFRQIGNvbm5lY3Rpb24gYW5kIHNhdmVzIHRoZW0gaW4gQGRlc3QuIFRoaXMgaXMgYSBibG9ja2luZyBjYWxsLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGJ5dGUgcmVhZC4gMCBpcyBhbiBpbmRpY2F0aW9uIG9mIGFuIGVuZCBvZiBjb25uZWN0aW9uLiAtMSBpbmRpY2F0ZXMgYSBwYXJhbWV0ZXIgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgSFRUUCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2Rlc3QnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYSBidWZmZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBidWZmZXIgbGVuZ3RoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmFub0hUVFBSZWRpcicgZmlsZT0nbmFub2h0dHAnIG1vZHVsZT0nbmFub2h0dHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgcmVkaXJlY3Rpb24gVVJMIGlmIGF2YWlsYWJsZSBmcm9tIHRoZSBIVFRQIGhlYWRlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIHNwZWNpZmllZCByZWRpcmVjdGlvbiBVUkwgb3IgTlVMTCBpZiBub3QgcmVkaXJlY3RlZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBIVFRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUFJldHVybkNvZGUnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGxhdGVzdCBIVFRQIHJldHVybiBjb2RlIHJlY2VpdmVkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBIVFRQIHJldHVybiBjb2RlIGZvciB0aGUgcmVxdWVzdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBIVFRQIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUFNhdmUnIGZpbGU9J25hbm9odHRwJyBtb2R1bGU9J25hbm9odHRwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHNhdmVzIHRoZSBvdXRwdXQgb2YgdGhlIEhUVFAgdHJhbnNhY3Rpb24gdG8gYSBmaWxlIEl0IGNsb3NlcyBhbmQgZnJlZSB0aGUgY29udGV4dCBhdCB0aGUgZW5kPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBpbmNhc2Ugb2Ygc3VjY2Vzcy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgSFRUUCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZSB3aGVyZSB0aGUgY29udGVudCBzaG91bGQgYmUgc2F2ZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOYW5vSFRUUFNjYW5Qcm94eScgZmlsZT0nbmFub2h0dHAnIG1vZHVsZT0nbmFub2h0dHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPihSZSlJbml0aWFsaXplIHRoZSBIVFRQIFByb3h5IGNvbnRleHQgYnkgcGFyc2luZyB0aGUgVVJMIGFuZCBmaW5kaW5nIHRoZSBwcm90b2NvbCBob3N0IHBvcnQgaXQgaW5kaWNhdGVzLiBTaG91bGQgYmUgbGlrZSBodHRwOi8vbXlwcm94eS8gb3IgaHR0cDovL215cHJveHk6MzEyOC8gQSBOVUxMIFVSTCBjbGVhbnMgdXAgcHJveHkgaW5mb3JtYXRpb25zLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nVGhlIHByb3h5IFVSTCB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHByb3h5IGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdBdXRvbWF0YScgZmlsZT0neG1sYXV0b21hdGEnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IGF1dG9tYXRhPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdXRvbWF0YVB0cicgaW5mbz0ndGhlIG5ldyBvYmplY3Qgb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdDRGF0YUJsb2NrJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBjb250YWluaW5nIGEgQ0RBVEEgYmxvY2suPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBDREFUQSBibG9jayBjb250ZW50IGNvbnRlbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5ndGggb2YgdGhlIGJsb2NrJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3Q2F0YWxvZycgZmlsZT0nY2F0YWxvZycgbW9kdWxlPSdjYXRhbG9nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5jcmVhdGUgYSBuZXcgQ2F0YWxvZy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENhdGFsb2dQdHInIGluZm89J3RoZSB4bWxDYXRhbG9nUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdzZ21sJyB0eXBlPSdpbnQnIGluZm89J3Nob3VsZCB0aGlzIGNyZWF0ZSBhbiBTR01MIGNhdGFsb2cnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5DcmVhdGUgYW5kIHJlZ2lzdGVycyBhbiB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicgaW5mbz0ndGhlIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgY3JlYXRlZCAob3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yKS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZW5jb2RpbmcgbmFtZSwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSknLz4KKyAgICAgIDxhcmcgbmFtZT0naW5wdXQnIHR5cGU9J3htbENoYXJFbmNvZGluZ0lucHV0RnVuYycgaW5mbz0ndGhlIHhtbENoYXJFbmNvZGluZ0lucHV0RnVuYyB0byByZWFkIHRoYXQgZW5jb2RpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0cHV0JyB0eXBlPSd4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jJyBpbmZvPSd0aGUgeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyB0byB3cml0ZSB0aGF0IGVuY29kaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3Q2hhclJlZicgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IGNoYXJhY3RlciByZWZlcmVuY2Ugbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGNoYXIgcmVmIHN0cmluZywgc3RhcnRpbmcgd2l0aCAjIG9yICZxdW90OyZhbXA7IyAuLi4gOyZxdW90OycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld0NoaWxkJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgY2hpbGQgZWxlbWVudCwgYWRkZWQgYXQgdGhlIGVuZCBvZiBAcGFyZW50IGNoaWxkcmVuIGxpc3QuIEBucyBhbmQgQGNvbnRlbnQgcGFyYW1ldGVycyBhcmUgb3B0aW9uYWwgKE5VTEwpLiBJZiBAbnMgaXMgTlVMTCwgdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudCBpbmhlcml0cyB0aGUgbmFtZXNwYWNlIG9mIEBwYXJlbnQuIElmIEBjb250ZW50IGlzIG5vbiBOVUxMLCBhIGNoaWxkIGxpc3QgY29udGFpbmluZyB0aGUgVEVYVHMgYW5kIEVOVElUWV9SRUZzIG5vZGUgd2lsbCBiZSBjcmVhdGVkLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3dzIGVudGl0eSByZWZlcmVuY2VzLiBYTUwgc3BlY2lhbCBjaGFycyBtdXN0IGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQoKSwgb3IgeG1sTmV3VGV4dENoaWxkKCkgc2hvdWxkIGJlIHVzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncGFyZW50JyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgcGFyZW50IG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIHR5cGU9J3htbE5zUHRyJyBpbmZvPSdhIG5hbWVzcGFjZSBpZiBhbnknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgY2hpbGQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgWE1MIGNvbnRlbnQgb2YgdGhlIGNoaWxkIGlmIGFueS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdDb21tZW50JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBjb250YWluaW5nIGEgY29tbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBjb21tZW50IGNvbnRlbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdEb2MnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5DcmVhdGVzIGEgbmV3IFhNTCBkb2N1bWVudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIG5ldyBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSd2ZXJzaW9uJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3htbENoYXIgc3RyaW5nIGdpdmluZyB0aGUgdmVyc2lvbiBvZiBYTUwgJnF1b3Q7MS4wJnF1b3Q7Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3RG9jQ29tbWVudCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgY29udGFpbmluZyBhIGNvbW1lbnQgd2l0aGluIGEgZG9jdW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBjb21tZW50IGNvbnRlbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdEb2NFbGVtZW50Q29udGVudCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+QWxsb2NhdGUgYW4gZWxlbWVudCBjb250ZW50IHN0cnVjdHVyZSBmb3IgdGhlIGRvY3VtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRWxlbWVudENvbnRlbnRQdHInIGluZm89J05VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIG5ldyBlbGVtZW50IGNvbnRlbnQgc3RydWN0dXJlJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3ViZWxlbWVudCBuYW1lIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0neG1sRWxlbWVudENvbnRlbnRUeXBlJyBpbmZvPSd0aGUgdHlwZSBvZiBlbGVtZW50IGNvbnRlbnQgZGVjbCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld0RvY0ZyYWdtZW50JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IEZyYWdtZW50IG5vZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCBvd25pbmcgdGhlIGZyYWdtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3RG9jTm9kZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgZWxlbWVudCB3aXRoaW4gYSBkb2N1bWVudC4gQG5zIGFuZCBAY29udGVudCBhcmUgb3B0aW9uYWwgKE5VTEwpLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3cgZW50aXRpZXMgcmVmZXJlbmNlcywgYnV0IFhNTCBzcGVjaWFsIGNoYXJzIG5lZWQgdG8gYmUgZXNjYXBlZCBmaXJzdCBieSB1c2luZyB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpLiBVc2UgeG1sTmV3RG9jUmF3Tm9kZSgpIGlmIHlvdSBkb24mYXBvczt0IG5lZWQgZW50aXRpZXMgc3VwcG9ydC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOc1B0cicgaW5mbz0nbmFtZXNwYWNlIGlmIGFueScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBub2RlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdEb2NOb2RlRWF0TmFtZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgZWxlbWVudCB3aXRoaW4gYSBkb2N1bWVudC4gQG5zIGFuZCBAY29udGVudCBhcmUgb3B0aW9uYWwgKE5VTEwpLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3cgZW50aXRpZXMgcmVmZXJlbmNlcywgYnV0IFhNTCBzcGVjaWFsIGNoYXJzIG5lZWQgdG8gYmUgZXNjYXBlZCBmaXJzdCBieSB1c2luZyB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpLiBVc2UgeG1sTmV3RG9jUmF3Tm9kZSgpIGlmIHlvdSBkb24mYXBvczt0IG5lZWQgZW50aXRpZXMgc3VwcG9ydC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOc1B0cicgaW5mbz0nbmFtZXNwYWNlIGlmIGFueScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBub2RlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdEb2NQSScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgdGFyZ2V0IGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBQSSBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3RG9jUHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyBwcm9wZXJ0eSBjYXJyaWVkIGJ5IGEgZG9jdW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIGF0dHJpYnV0ZScvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld0RvY1Jhd05vZGUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBlbGVtZW50IHdpdGhpbiBhIGRvY3VtZW50LiBAbnMgYW5kIEBjb250ZW50IGFyZSBvcHRpb25hbCAoTlVMTCkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0neG1sTnNQdHInIGluZm89J25hbWVzcGFjZSBpZiBhbnknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbm9kZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHRleHQgY29udGVudCBpZiBhbnknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdEb2NUZXh0JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlIHdpdGhpbiBhIGRvY3VtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdGV4dCBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3RG9jVGV4dExlbicgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IHRleHQgbm9kZSB3aXRoIGFuIGV4dHJhIGNvbnRlbnQgbGVuZ3RoIHBhcmFtZXRlci4gVGhlIHRleHQgbm9kZSBwZXJ0YWluIHRvIGEgZ2l2ZW4gZG9jdW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB0ZXh0IGNvbnRlbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSB0ZXh0IGxlbi4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdEdGQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5DcmVhdGlvbiBvZiBhIG5ldyBEVEQgZm9yIHRoZSBleHRlcm5hbCBzdWJzZXQuIFRvIGNyZWF0ZSBhbiBpbnRlcm5hbCBzdWJzZXQsIHVzZSB4bWxDcmVhdGVJbnRTdWJzZXQoKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbER0ZFB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBuZXcgRFREIHN0cnVjdHVyZScvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50IHBvaW50ZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgRFREIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZXh0ZXJuYWwgSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN5c3RlbSBJRCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld0VsZW1lbnRDb250ZW50JyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5BbGxvY2F0ZSBhbiBlbGVtZW50IGNvbnRlbnQgc3RydWN0dXJlLiBEZXByZWNhdGVkIGluIGZhdm9yIG9mIHhtbE5ld0RvY0VsZW1lbnRDb250ZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbGVtZW50Q29udGVudFB0cicgaW5mbz0nTlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3ViZWxlbWVudCBuYW1lIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0neG1sRWxlbWVudENvbnRlbnRUeXBlJyBpbmZvPSd0aGUgdHlwZSBvZiBlbGVtZW50IGNvbnRlbnQgZGVjbCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld0VudGl0eScgZmlsZT0nZW50aXRpZXMnIG1vZHVsZT0nZW50aXRpZXMnPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IGVudGl0eSwgdGhpcyBkaWZmZXJzIGZyb20geG1sQWRkRG9jRW50aXR5KCkgdGhhdCBpZiB0aGUgZG9jdW1lbnQgaXMgTlVMTCBvciBoYXMgbm8gaW50ZXJuYWwgc3Vic2V0IGRlZmluZWQsIHRoZW4gYW4gdW5saW5rZWQgZW50aXR5IHN0cnVjdHVyZSB3aWxsIGJlIHJldHVybmVkLCBpdCBpcyB0aGVuIHRoZSByZXNwb25zYWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIGxpbmsgaXQgdG8gdGhlIGRvY3VtZW50IGxhdGVyIG9yIGZyZWUgaXQgd2hlbiBub3QgbmVlZGVkIGFueW1vcmUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgZW50aXR5IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGVudGl0eSB0eXBlIFhNTF94eHhfeXl5X0VOVElUWScvPgorICAgICAgPGFyZyBuYW1lPSdFeHRlcm5hbElEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgZXh0ZXJuYWwgSUQgaWYgYXZhaWxhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J1N5c3RlbUlEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgc3lzdGVtIElEIGlmIGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbnRpdHkgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld0VudGl0eUlucHV0U3RyZWFtJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gYmFzZWQgb24gYW4geG1sRW50aXR5UHRyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dFB0cicgaW5mbz0ndGhlIG5ldyBpbnB1dCBzdHJlYW0gb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW50aXR5JyB0eXBlPSd4bWxFbnRpdHlQdHInIGluZm89J2FuIEVudGl0eSBwb2ludGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3R2xvYmFsTnMnIGZpbGU9J3RyZWUnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgTmFtZXNwYWNlLCB0aGUgb2xkIHdheSB1c2luZyBQSSBhbmQgd2l0aG91dCBzY29waW5nIERFUFJFQ0FURUQgISEhPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOc1B0cicgaW5mbz0nTlVMTCB0aGlzIGZ1bmN0aW9uYWxpdHkgaGFkIGJlZW4gcmVtb3ZlZCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50IGNhcnJ5aW5nIHRoZSBuYW1lc3BhY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0naHJlZicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJIGFzc29jaWF0ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwcmVmaXggZm9yIHRoZSBuYW1lc3BhY2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdJT0lucHV0U3RyZWFtJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gc3RydWN0dXJlIGVuY2Fwc3VsYXRpbmcgdGhlIEBpbnB1dCBpbnRvIGEgc3RyZWFtIHN1aXRhYmxlIGZvciB0aGUgcGFyc2VyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J3RoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2lucHV0JyB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0nYW4gSS9PIElucHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuYycgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSd0aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld0lucHV0RnJvbUZpbGUnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IGlucHV0IHN0cmVhbSBiYXNlZCBvbiBhIGZpbGUgb3IgYW4gVVJMLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J3RoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lIHRvIHVzZSBhcyBlbnRpdHknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdJbnB1dFN0cmVhbScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgaW5wdXQgc3RyZWFtIHN0cnVjdHVyZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J3RoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3TXV0ZXgnIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz54bWxOZXdNdXRleCgpIGlzIHVzZWQgdG8gYWxsb2NhdGUgYSBsaWJ4bWwyIHRva2VuIHN0cnVjdCBmb3IgdXNlIGluIHN5bmNocm9uaXppbmcgYWNjZXNzIHRvIGRhdGEuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxNdXRleFB0cicgaW5mbz0nYSBuZXcgc2ltcGxlIG11dGV4IHBvaW50ZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3Tm9kZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IG5vZGUgZWxlbWVudC4gQG5zIGlzIG9wdGlvbmFsIChOVUxMKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LiBVc2VzIHhtbFN0cmR1cCgpIHRvIG1ha2UgY29weSBvZiBAbmFtZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIHR5cGU9J3htbE5zUHRyJyBpbmZvPSduYW1lc3BhY2UgaWYgYW55Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5vZGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld05vZGVFYXROYW1lJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgbm9kZSBlbGVtZW50LiBAbnMgaXMgb3B0aW9uYWwgKE5VTEwpLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QsIHdpdGggcG9pbnRlciBAbmFtZSBhcyBuZXcgbm9kZSZhcG9zO3MgbmFtZS4gVXNlIHhtbE5ld05vZGUoKSBpZiBhIGNvcHkgb2YgQG5hbWUgc3RyaW5nIGlzIGlzIG5lZWRlZCBhcyBuZXcgbm9kZSZhcG9zO3MgbmFtZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIHR5cGU9J3htbE5zUHRyJyBpbmZvPSduYW1lc3BhY2UgaWYgYW55Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5vZGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld05zJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgTmFtZXNwYWNlLiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVmdXNlIHRvIGNyZWF0ZSBhIG5hbWVzcGFjZSB3aXRoIGEgc2ltaWxhciBwcmVmaXggdGhhbiBhbiBleGlzdGluZyBvbmUgcHJlc2VudCBvbiB0aGlzIG5vZGUuIFdlIHVzZSBocmVmPT1OVUxMIGluIHRoZSBjYXNlIG9mIGFuIGVsZW1lbnQgY3JlYXRpb24gd2hlcmUgdGhlIG5hbWVzcGFjZSB3YXMgbm90IGRlZmluZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOc1B0cicgaW5mbz0nYSBuZXcgbmFtZXNwYWNlIHBvaW50ZXIgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgbmFtZXNwYWNlJy8+CisgICAgICA8YXJnIG5hbWU9J2hyZWYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFVSSSBhc3NvY2lhdGVkJy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHJlZml4IGZvciB0aGUgbmFtZXNwYWNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3TnNQcm9wJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHByb3BlcnR5IHRhZ2dlZCB3aXRoIGEgbmFtZXNwYWNlIGFuZCBjYXJyaWVkIGJ5IGEgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEF0dHJQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgYXR0cmlidXRlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBob2xkaW5nIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIHR5cGU9J3htbE5zUHRyJyBpbmZvPSd0aGUgbmFtZXNwYWNlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld05zUHJvcEVhdE5hbWUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgcHJvcGVydHkgdGFnZ2VkIHdpdGggYSBuYW1lc3BhY2UgYW5kIGNhcnJpZWQgYnkgYSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXR0clB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBhdHRyaWJ1dGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGhvbGRpbmcgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0neG1sTnNQdHInIGluZm89J3RoZSBuYW1lc3BhY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3UEknIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5DcmVhdGlvbiBvZiBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gZWxlbWVudC4gVXNlIHhtbERvY05ld1BJIHByZWZlcmFibHkgdG8gZ2V0IHN0cmluZyBpbnRlcm5pbmc8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgUEkgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1BhcnNlckN0eHQnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+QWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgcGFyc2VyIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgeG1sUGFyc2VyQ3R4dFB0ciBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3UHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHByb3BlcnR5IGNhcnJpZWQgYnkgYSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXR0clB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBhdHRyaWJ1dGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGhvbGRpbmcgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdSTXV0ZXgnIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz54bWxSTmV3TXV0ZXgoKSBpcyB1c2VkIHRvIGFsbG9jYXRlIGEgcmVlbnRyYW50IG11dGV4IGZvciB1c2UgaW4gc3luY2hyb25pemluZyBhY2Nlc3MgdG8gZGF0YS4gdG9rZW5fciBpcyBhIHJlLWVudHJhbnQgbG9jayBhbmQgdGh1cyB1c2VmdWwgZm9yIHN5bmNocm9uaXppbmcgYWNjZXNzIHRvIGRhdGEgc3RydWN0dXJlcyB0aGF0IG1heSBiZSBtYW5pcHVsYXRlZCBpbiBhIHJlY3Vyc2l2ZSBmYXNoaW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUk11dGV4UHRyJyBpbmZvPSd0aGUgbmV3IHJlZW50cmFudCBtdXRleCBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1JlZmVyZW5jZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNyZWF0aW9uIG9mIGEgbmV3IHJlZmVyZW5jZSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcmVmZXJlbmNlIG5hbWUsIG9yIHRoZSByZWZlcmVuY2Ugc3RyaW5nIHdpdGggJmFtcDsgYW5kIDsnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgaW5wdXQgc3RyZWFtIGJhc2VkIG9uIGEgbWVtb3J5IGJ1ZmZlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSd0aGUgbmV3IGlucHV0IHN0cmVhbScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2FuIG1lbW9yeSBidWZmZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdUZXh0JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+Q3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHRleHQgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1RleHRDaGlsZCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGlvbiBvZiBhIG5ldyBjaGlsZCBlbGVtZW50LCBhZGRlZCBhdCB0aGUgZW5kIG9mIEBwYXJlbnQgY2hpbGRyZW4gbGlzdC4gQG5zIGFuZCBAY29udGVudCBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbCAoTlVMTCkuIElmIEBucyBpcyBOVUxMLCB0aGUgbmV3bHkgY3JlYXRlZCBlbGVtZW50IGluaGVyaXRzIHRoZSBuYW1lc3BhY2Ugb2YgQHBhcmVudC4gSWYgQGNvbnRlbnQgaXMgbm9uIE5VTEwsIGEgY2hpbGQgVEVYVCBub2RlIHdpbGwgYmUgY3JlYXRlZCBjb250YWluaW5nIHRoZSBzdHJpbmcgQGNvbnRlbnQuIE5PVEU6IFVzZSB4bWxOZXdDaGlsZCgpIGlmIEBjb250ZW50IHdpbGwgY29udGFpbiBlbnRpdGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlc2VydmVkLiBVc2UgdGhpcyBmdW5jdGlvbiwgeG1sTmV3VGV4dENoaWxkKCksIGlmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IHJlc2VydmVkIFhNTCBjaGFycyB0aGF0IG1pZ2h0IGFwcGVhciBpbiBAY29udGVudCwgc3VjaCBhcyB0aGUgYW1wZXJzYW5kLCBncmVhdGVyLXRoYW4gb3IgbGVzcy10aGFuIHNpZ25zLCBhcmUgYXV0b21hdGljYWxseSByZXBsYWNlZCBieSB0aGVpciBYTUwgZXNjYXBlZCBlbnRpdHkgcmVwcmVzZW50YXRpb25zLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3BhcmVudCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHBhcmVudCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOc1B0cicgaW5mbz0nYSBuYW1lc3BhY2UgaWYgYW55Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIGNoaWxkJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHRleHQgY29udGVudCBvZiB0aGUgY2hpbGQgaWYgYW55LicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1RleHRMZW4nIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5DcmVhdGlvbiBvZiBhIG5ldyB0ZXh0IG5vZGUgd2l0aCBhbiBleHRyYSBwYXJhbWV0ZXIgZm9yIHRoZSBjb250ZW50JmFwb3M7cyBsZW5ndGg8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB0ZXh0IGNvbnRlbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSB0ZXh0IGxlbi4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdUZXh0UmVhZGVyJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhbiB4bWxUZXh0UmVhZGVyIHN0cnVjdHVyZSBmZWQgd2l0aCBAaW5wdXQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSBuZXcgeG1sVGV4dFJlYWRlclB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0naW5wdXQnIHR5cGU9J3htbFBhcnNlcklucHV0QnVmZmVyUHRyJyBpbmZvPSd0aGUgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgdXNlZCB0byByZWFkIGRhdGEnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBVUkkgaW5mb3JtYXRpb24gZm9yIHRoZSBzb3VyY2UgaWYgYXZhaWxhYmxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhbiB4bWxUZXh0UmVhZGVyIHN0cnVjdHVyZSBmZWQgd2l0aCB0aGUgcmVzb3VyY2UgYXQgQFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIG5ldyB4bWxUZXh0UmVhZGVyUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIFVSSSBvZiB0aGUgcmVzb3VyY2UgdG8gcHJvY2VzcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1RleHRXcml0ZXInIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbE5ld1RleHRXcml0ZXIgc3RydWN0dXJlIHVzaW5nIGFuIHhtbE91dHB1dEJ1ZmZlclB0ciBOT1RFOiB0aGUgQG91dCBwYXJhbWV0ZXIgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aGVuIHRoZSB3cml0ZXIgaXMgY2xvc2VkIChpZiB0aGUgY2FsbCBzdWNjZWVkLik8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSBuZXcgeG1sVGV4dFdyaXRlclB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0JyB0eXBlPSd4bWxPdXRwdXRCdWZmZXJQdHInIGluZm89J2FuIHhtbE91dHB1dEJ1ZmZlclB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1RleHRXcml0ZXJEb2MnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbE5ld1RleHRXcml0ZXIgc3RydWN0dXJlIHdpdGggQCpkb2MgYXMgb3V0cHV0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgbmV3IHhtbFRleHRXcml0ZXJQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyIConIGluZm89J2FkZHJlc3Mgb2YgYSB4bWxEb2NQdHIgdG8gaG9sZCB0aGUgbmV3IFhNTCBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbXByZXNzaW9uJyB0eXBlPSdpbnQnIGluZm89J2NvbXByZXNzIHRoZSBvdXRwdXQ/Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxOZXdUZXh0V3JpdGVyIHN0cnVjdHVyZSB3aXRoIEB1cmkgYXMgb3V0cHV0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgbmV3IHhtbFRleHRXcml0ZXJQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3VyaScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBmb3IgdGhlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdjb21wcmVzc2lvbicgdHlwZT0naW50JyBpbmZvPSdjb21wcmVzcyB0aGUgb3V0cHV0PycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1RleHRXcml0ZXJNZW1vcnknIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbE5ld1RleHRXcml0ZXIgc3RydWN0dXJlIHdpdGggQGJ1ZiBhcyBvdXRwdXQgVE9ETzogaGFuZGxlIGNvbXByZXNzaW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgbmV3IHhtbFRleHRXcml0ZXJQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSd4bWxCdWZmZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nY29tcHJlc3Npb24nIHR5cGU9J2ludCcgaW5mbz0nY29tcHJlc3MgdGhlIG91dHB1dD8nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcicgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sTmV3VGV4dFdyaXRlciBzdHJ1Y3R1cmUgd2l0aCBAY3R4dCBhcyBvdXRwdXQgTk9URTogdGhlIEBjdHh0IGNvbnRleHQgd2lsbCBiZSBmcmVlZCB3aXRoIHRoZSByZXN1bHRpbmcgd3JpdGVyIChpZiB0aGUgY2FsbCBzdWNjZWVkcykuIFRPRE86IGhhbmRsZSBjb21wcmVzc2lvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIG5ldyB4bWxUZXh0V3JpdGVyUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd4bWxQYXJzZXJDdHh0UHRyIHRvIGhvbGQgdGhlIG5ldyBYTUwgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjb21wcmVzc2lvbicgdHlwZT0naW50JyBpbmZvPSdjb21wcmVzcyB0aGUgb3V0cHV0PycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld1RleHRXcml0ZXJUcmVlJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxOZXdUZXh0V3JpdGVyIHN0cnVjdHVyZSB3aXRoIEBkb2MgYXMgb3V0cHV0IHN0YXJ0aW5nIGF0IEBub2RlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgbmV3IHhtbFRleHRXcml0ZXJQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd4bWxEb2NQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0neG1sTm9kZVB0ciBvciBOVUxMIGZvciBkb2MtJmd0O2NoaWxkcmVuJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbXByZXNzaW9uJyB0eXBlPSdpbnQnIGluZm89J2NvbXByZXNzIHRoZSBvdXRwdXQ/Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTmV3VmFsaWRDdHh0JyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFsbG9jYXRlIGEgdmFsaWRhdGlvbiBjb250ZXh0IHN0cnVjdHVyZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0nTlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IHZhbGlkYXRpb24gY29udGV4dCBzdHJ1Y3R1cmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOZXh0Q2hhcicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5Ta2lwIHRvIHRoZSBuZXh0IGNoYXIgaW5wdXQgY2hhci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5leHRFbGVtZW50U2libGluZycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GaW5kcyB0aGUgZmlyc3QgY2xvc2VzdCBuZXh0IHNpYmxpbmcgb2YgdGhlIG5vZGUgd2hpY2ggaXMgYW4gZWxlbWVudCBub2RlLiBOb3RlIHRoZSBoYW5kbGluZyBvZiBlbnRpdGllcyByZWZlcmVuY2VzIGlzIGRpZmZlcmVudCB0aGFuIGluIHRoZSBXM0MgRE9NIGVsZW1lbnQgdHJhdmVyc2FsIHNwZWMgc2luY2Ugd2UgZG9uJmFwb3M7dCBoYXZlIGJhY2sgcmVmZXJlbmNlIGZyb20gZW50aXRpZXMgY29udGVudCB0byBlbnRpdGllcyByZWZlcmVuY2VzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBzaWJsaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcicgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+QSBzcGVjaWZpYyBlbnRpdHkgbG9hZGVyIGRpc2FibGluZyBuZXR3b3JrIGFjY2Vzc2VzLCB0aG91Z2ggc3RpbGwgYWxsb3dpbmcgbG9jYWwgY2F0YWxvZyBhY2Nlc3NlcyBmb3IgcmVzb2x1dGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSdhIG5ldyBhbGxvY2F0ZWQgeG1sUGFyc2VySW5wdXRQdHIsIG9yIE5VTEwuJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nSUQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBlbnRpdHkgaXMgY2FsbGVkIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOb2RlQWRkQ29udGVudCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkFwcGVuZCB0aGUgZXh0cmEgc3Vic3RyaW5nIHRvIHRoZSBub2RlIGNvbnRlbnQuIE5PVEU6IEluIGNvbnRyYXN0IHRvIHhtbE5vZGVTZXRDb250ZW50KCksIEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIHJhdyB0ZXh0LCBzbyB1bmVzY2FwZWQgWE1MIHNwZWNpYWwgY2hhcnMgYXJlIGFsbG93ZWQsIGVudGl0eSByZWZlcmVuY2VzIGFyZSBub3Qgc3VwcG9ydGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIGJlaW5nIG1vZGlmaWVkJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nZXh0cmEgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5vZGVBZGRDb250ZW50TGVuJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+QXBwZW5kIHRoZSBleHRyYSBzdWJzdHJpbmcgdG8gdGhlIG5vZGUgY29udGVudC4gTk9URTogSW4gY29udHJhc3QgdG8geG1sTm9kZVNldENvbnRlbnRMZW4oKSwgQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUgcmF3IHRleHQsIHNvIHVuZXNjYXBlZCBYTUwgc3BlY2lhbCBjaGFycyBhcmUgYWxsb3dlZCwgZW50aXR5IHJlZmVyZW5jZXMgYXJlIG5vdCBzdXBwb3J0ZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgYmVpbmcgbW9kaWZpZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdleHRyYSBjb250ZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiBAY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5vZGVCdWZHZXRDb250ZW50JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+UmVhZCB0aGUgdmFsdWUgb2YgYSBub2RlIEBjdXIsIHRoaXMgY2FuIGJlIGVpdGhlciB0aGUgdGV4dCBjYXJyaWVkIGRpcmVjdGx5IGJ5IHRoaXMgbm9kZSBpZiBpdCZhcG9zO3MgYSBURVhUIG5vZGUgb3IgdGhlIGFnZ3JlZ2F0ZSBzdHJpbmcgb2YgdGhlIHZhbHVlcyBjYXJyaWVkIGJ5IHRoaXMgbm9kZSBjaGlsZCZhcG9zO3MgKFRFWFQgYW5kIEVOVElUWV9SRUYpLiBFbnRpdHkgcmVmZXJlbmNlcyBhcmUgc3Vic3RpdHV0ZWQuIEZpbGxzIHVwIHRoZSBidWZmZXIgQGJ1ZmZlciB3aXRoIHRoaXMgdmFsdWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSdhIGJ1ZmZlcicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIGJlaW5nIHJlYWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOb2RlRHVtcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gWE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIHhtbEluZGVudFRyZWVPdXRwdXQgPSAxIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIHRoZSBidWZmZXIgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J3htbEJ1ZmZlclB0cicgaW5mbz0ndGhlIFhNTCBidWZmZXIgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J2xldmVsJyB0eXBlPSdpbnQnIGluZm89J3RoZSBpbWJyaWNhdGlvbiBsZXZlbCBmb3IgaW5kZW50aW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0naW50JyBpbmZvPSdpcyBmb3JtYXR0aW5nIGFsbG93ZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOb2RlRHVtcE91dHB1dCcgZmlsZT0ndHJlZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gWE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsIGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4gTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiB4bWxJbmRlbnRUcmVlT3V0cHV0ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSd0aGUgWE1MIGJ1ZmZlciBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBjdXJyZW50IG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGV2ZWwnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGltYnJpY2F0aW9uIGxldmVsIGZvciBpbmRlbnRpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdpbnQnIGluZm89J2lzIGZvcm1hdHRpbmcgYWxsb3dlZCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhbiBvcHRpb25hbCBlbmNvZGluZyBzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOb2RlR2V0QmFzZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlNlYXJjaGVzIGZvciB0aGUgQkFTRSBVUkwuIFRoZSBjb2RlIHNob3VsZCB3b3JrIG9uIGJvdGggWE1MIGFuZCBIVE1MIGRvY3VtZW50IGV2ZW4gaWYgYmFzZSBtZWNoYW5pc21zIGFyZSBjb21wbGV0ZWx5IGRpZmZlcmVudC4gSXQgcmV0dXJucyB0aGUgYmFzZSBhcyBkZWZpbmVkIGluIFJGQyAyMzk2IHNlY3Rpb25zIDUuMS4xLiBCYXNlIFVSSSB3aXRoaW4gRG9jdW1lbnQgQ29udGVudCBhbmQgNS4xLjIuIEJhc2UgVVJJIGZyb20gdGhlIEVuY2Fwc3VsYXRpbmcgRW50aXR5IEhvd2V2ZXIgaXQgZG9lcyBub3QgcmV0dXJuIHRoZSBkb2N1bWVudCBiYXNlICg1LjEuMyksIHVzZSBkb2MtJmd0O1VSTCBpbiB0aGlzIGNhc2U8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBiYXNlIFVSTCwgb3IgTlVMTCBpZiBub3QgZm91bmQgSXQmYXBvcztzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50IHRoZSBub2RlIHBlcnRhaW5zIHRvJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgYmVpbmcgY2hlY2tlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5vZGVHZXRDb250ZW50JyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+UmVhZCB0aGUgdmFsdWUgb2YgYSBub2RlLCB0aGlzIGNhbiBiZSBlaXRoZXIgdGhlIHRleHQgY2FycmllZCBkaXJlY3RseSBieSB0aGlzIG5vZGUgaWYgaXQmYXBvcztzIGEgVEVYVCBub2RlIG9yIHRoZSBhZ2dyZWdhdGUgc3RyaW5nIG9mIHRoZSB2YWx1ZXMgY2FycmllZCBieSB0aGlzIG5vZGUgY2hpbGQmYXBvcztzIChURVhUIGFuZCBFTlRJVFlfUkVGKS4gRW50aXR5IHJlZmVyZW5jZXMgYXJlIHN1YnN0aXR1dGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIG5ldyAjeG1sQ2hhciAqIG9yIE5VTEwgaWYgbm8gY29udGVudCBpcyBhdmFpbGFibGUuIEl0JmFwb3M7cyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBiZWluZyByZWFkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZUdldExhbmcnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5TZWFyY2hlcyB0aGUgbGFuZ3VhZ2Ugb2YgYSBub2RlLCBpLmUuIHRoZSB2YWx1ZXMgb2YgdGhlIHhtbDpsYW5nIGF0dHJpYnV0ZSBvciB0aGUgb25lIGNhcnJpZWQgYnkgdGhlIG5lYXJlc3QgYW5jZXN0b3IuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgbGFuZyB2YWx1ZSwgb3IgTlVMTCBpZiBub3QgZm91bmQgSXQmYXBvcztzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IHdpdGggeG1sRnJlZSgpLicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIGJlaW5nIGNoZWNrZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlNlYXJjaGVzIHRoZSBzcGFjZSBwcmVzZXJ2aW5nIGJlaGF2aW91ciBvZiBhIG5vZGUsIGkuZS4gdGhlIHZhbHVlcyBvZiB0aGUgeG1sOnNwYWNlIGF0dHJpYnV0ZSBvciB0aGUgb25lIGNhcnJpZWQgYnkgdGhlIG5lYXJlc3QgYW5jZXN0b3IuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGlmIHhtbDpzcGFjZSBpcyBub3QgaW5oZXJpdGVkLCAwIGlmICZxdW90O2RlZmF1bHQmcXVvdDssIDEgaWYgJnF1b3Q7cHJlc2VydmUmcXVvdDsnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBiZWluZyBjaGVja2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZUlzVGV4dCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPklzIHRoaXMgbm9kZSBhIFRleHQgbm9kZSA/PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgeWVzLCAwIG5vJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QnVpbGRzIHRoZSBzdHJpbmcgZXF1aXZhbGVudCB0byB0aGUgdGV4dCBjb250YWluZWQgaW4gdGhlIE5vZGUgbGlzdCBtYWRlIG9mIFRFWFRzIGFuZCBFTlRJVFlfUkVGcywgY29udHJhcnkgdG8geG1sTm9kZUxpc3RHZXRTdHJpbmcoKSB0aGlzIGZ1bmN0aW9uIGRvZXNuJmFwb3M7dCBkbyBhbnkgY2hhcmFjdGVyIGVuY29kaW5nIGhhbmRsaW5nLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIHN0cmluZyBjb3B5LCB0aGUgY2FsbGVyIG11c3QgZnJlZSBpdCB3aXRoIHhtbEZyZWUoKS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdsaXN0JyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIE5vZGUgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdpbkxpbmUnIHR5cGU9J2ludCcgaW5mbz0nc2hvdWxkIHdlIHJlcGxhY2UgZW50aXR5IGNvbnRlbnRzIG9yIHNob3cgdGhlaXIgZXh0ZXJuYWwgZm9ybScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5vZGVMaXN0R2V0U3RyaW5nJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+QnVpbGQgdGhlIHN0cmluZyBlcXVpdmFsZW50IHRvIHRoZSB0ZXh0IGNvbnRhaW5lZCBpbiB0aGUgTm9kZSBsaXN0IG1hZGUgb2YgVEVYVHMgYW5kIEVOVElUWV9SRUZzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgc3RyaW5nIGNvcHksIHRoZSBjYWxsZXIgbXVzdCBmcmVlIGl0IHdpdGggeG1sRnJlZSgpLicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2xpc3QnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgTm9kZSBsaXN0Jy8+CisgICAgICA8YXJnIG5hbWU9J2luTGluZScgdHlwZT0naW50JyBpbmZvPSdzaG91bGQgd2UgcmVwbGFjZSBlbnRpdHkgY29udGVudHMgb3Igc2hvdyB0aGVpciBleHRlcm5hbCBmb3JtJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZVNldEJhc2UnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IChvciByZXNldCkgdGhlIGJhc2UgVVJJIG9mIGEgbm9kZSwgaS5lLiB0aGUgdmFsdWUgb2YgdGhlIHhtbDpiYXNlIGF0dHJpYnV0ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBiZWluZyBjaGFuZ2VkJy8+CisgICAgICA8YXJnIG5hbWU9J3VyaScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmV3IGJhc2UgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZVNldENvbnRlbnQnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5SZXBsYWNlIHRoZSBjb250ZW50IG9mIGEgbm9kZS4gTk9URTogQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUgYSBwaWVjZSBvZiBYTUwgQ0RBVEEsIHNvIGl0IGFsbG93cyBlbnRpdHkgcmVmZXJlbmNlcywgYnV0IFhNTCBzcGVjaWFsIGNoYXJzIG5lZWQgdG8gYmUgZXNjYXBlZCBmaXJzdCBieSB1c2luZyB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpIHJlc3AuIHhtbEVuY29kZVNwZWNpYWxDaGFycygpLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIGJlaW5nIG1vZGlmaWVkJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5ldyB2YWx1ZSBvZiB0aGUgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5vZGVTZXRDb250ZW50TGVuJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlcGxhY2UgdGhlIGNvbnRlbnQgb2YgYSBub2RlLiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3dzIGVudGl0eSByZWZlcmVuY2VzLCBidXQgWE1MIHNwZWNpYWwgY2hhcnMgbmVlZCB0byBiZSBlc2NhcGVkIGZpcnN0IGJ5IHVzaW5nIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCkgcmVzcC4geG1sRW5jb2RlU3BlY2lhbENoYXJzKCkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgYmVpbmcgbW9kaWZpZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmV3IHZhbHVlIG9mIHRoZSBjb250ZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiBAY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5vZGVTZXRMYW5nJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCB0aGUgbGFuZ3VhZ2Ugb2YgYSBub2RlLCBpLmUuIHRoZSB2YWx1ZXMgb2YgdGhlIHhtbDpsYW5nIGF0dHJpYnV0ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBiZWluZyBjaGFuZ2VkJy8+CisgICAgICA8YXJnIG5hbWU9J2xhbmcnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxhbmd1YWdlIGRlc2NyaXB0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZVNldE5hbWUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IChvciByZXNldCkgdGhlIG5hbWUgb2YgYSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIGJlaW5nIGNoYW5nZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmV3IHRhZyBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZVNldFNwYWNlUHJlc2VydmUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IChvciByZXNldCkgdGhlIHNwYWNlIHByZXNlcnZpbmcgYmVoYXZpb3VyIG9mIGEgbm9kZSwgaS5lLiB0aGUgdmFsdWUgb2YgdGhlIHhtbDpzcGFjZSBhdHRyaWJ1dGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgYmVpbmcgY2hhbmdlZCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHhtbDpzcGFjZSB2YWx1ZSAoJnF1b3Q7MCZxdW90OzogZGVmYXVsdCwgMTogJnF1b3Q7cHJlc2VydmUmcXVvdDspJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9ybWFsaXplVVJJUGF0aCcgZmlsZT0ndXJpJyBtb2R1bGU9J3VyaSc+CisgICAgICA8aW5mbz5BcHBsaWVzIHRoZSA1IG5vcm1hbGl6YXRpb24gc3RlcHMgdG8gYSBwYXRoIHN0cmluZy0tdGhhdCBpcywgUkZDIDIzOTYgU2VjdGlvbiA1LjIsIHN0ZXBzIDYuYyB0aHJvdWdoIDYuZy4gIE5vcm1hbGl6YXRpb24gb2NjdXJzIGRpcmVjdGx5IG9uIHRoZSBzdHJpbmcsIG5vIG5ldyBhbGxvY2F0aW9uIGlzIGRvbmU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvciBhbiBlcnJvciBjb2RlJy8+CisgICAgICA8YXJnIG5hbWU9J3BhdGgnIHR5cGU9J2NoYXIgKicgaW5mbz0ncG9pbnRlciB0byB0aGUgcGF0aCBzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxOb3JtYWxpemVXaW5kb3dzUGF0aCcgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+VGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZS4gUGxlYXNlIHNlZSB4bWxVUklGcm9tUGF0aCBpbiB1cmkuYyBmb3IgYSBiZXR0ZXIgc29sdXRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgY2Fub25pY2FsaXplZCB2ZXJzaW9uIG9mIHRoZSBwYXRoJy8+CisgICAgICA8YXJnIG5hbWU9J3BhdGgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGlucHV0IGZpbGUgcGF0aCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE91dHB1dEJ1ZmZlckNsb3NlJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5mbHVzaGVzIGFuZCBjbG9zZSB0aGUgb3V0cHV0IEkvTyBjaGFubmVsIGFuZCBmcmVlIHVwIGFsbCB0aGUgYXNzb2NpYXRlZCByZXNvdXJjZXM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0JyB0eXBlPSd4bWxPdXRwdXRCdWZmZXJQdHInIGluZm89J2EgYnVmZmVyZWQgb3V0cHV0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSB4bWxCdWZmZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSd4bWxCdWZmZXJQdHInIGluZm89J2EgeG1sQnVmZmVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIGluZm89J3RoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZkJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSBmaWxlIGRlc2NyaXB0b3I8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmQnIHR5cGU9J2ludCcgaW5mbz0nYSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIGluZm89J3RoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGJ1ZmZlcmVkIG91dHB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHNhdmluZyB0byBhIEZJTEUgKiBidWZmZXJlZCBDIEkvTzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSd0aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlJyB0eXBlPSdGSUxFIConIGluZm89J2EgRklMRSonLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicgaW5mbz0ndGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGJ1ZmZlcmVkICBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgb2YgYSBmaWxlIElmIGZpbGVuYW1lIGlzICZxdW90Oy0mYXBvczsgdGhlbiB3ZSB1c2Ugc3Rkb3V0IGFzIHRoZSBvdXRwdXQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIFRPRE86IGN1cnJlbnRseSBpZiBjb21wcmVzc2lvbiBpcyBzZXQsIHRoZSBsaWJyYXJ5IG9ubHkgc3VwcG9ydCB3cml0aW5nIHRvIGEgbG9jYWwgZmlsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBvdXRwdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBDIHN0cmluZyBjb250YWluaW5nIHRoZSBVUkkgb3IgZmlsZW5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicgaW5mbz0ndGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbXByZXNzaW9uJyB0eXBlPSdpbnQnIGluZm89J3RoZSBjb21wcmVzc2lvbiByYXRpb24gKDAgbm9uZSwgOSBtYXgpLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCcgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5SZWdpc3RlcnMgYSBjYWxsYmFjayBmb3IgVVJJIG91dHB1dCBmaWxlIGhhbmRsaW5nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMnIGluZm89J3RoZSBvbGQgdmFsdWUgb2YgdGhlIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdmdW5jJyB0eXBlPSd4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMnIGluZm89J2Z1bmN0aW9uIHBvaW50ZXIgdG8gdGhlIG5ldyBPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz5TaWduYXR1cmUgZm9yIHRoZSBmdW5jdGlvbiBkb2luZyB0aGUgbG9va3VwIGZvciBhIHN1aXRhYmxlIG91dHB1dCBtZXRob2QgY29ycmVzcG9uZGluZyB0byBhbiBVUkkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxPdXRwdXRCdWZmZXJQdHInIGluZm89J3RoZSBuZXcgeG1sT3V0cHV0QnVmZmVyUHRyIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciBOVUxMIGlmIG5vIG1ldGhvZCB3YXMgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJJIHRvIHdyaXRlIHRvJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSdjb21wcmVzc2lvbicgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTycgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgYnVmZmVyZWQgb3V0cHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgc2F2aW5nIHRvIGFuIEkvTyBoYW5kbGVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxPdXRwdXRCdWZmZXJQdHInIGluZm89J3RoZSBuZXcgcGFyc2VyIG91dHB1dCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2lvd3JpdGUnIHR5cGU9J3htbE91dHB1dFdyaXRlQ2FsbGJhY2snIGluZm89J2FuIEkvTyB3cml0ZSBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2Nsb3NlJyB0eXBlPSd4bWxPdXRwdXRDbG9zZUNhbGxiYWNrJyBpbmZvPSdhbiBJL08gY2xvc2UgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gSS9PIGhhbmRsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicgaW5mbz0ndGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxPdXRwdXRCdWZmZXJGbHVzaCcgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Zmx1c2hlcyB0aGUgb3V0cHV0IEkvTyBjaGFubmVsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J291dCcgdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSdhIGJ1ZmZlcmVkIG91dHB1dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE91dHB1dEJ1ZmZlcldyaXRlJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSB0aGUgY29udGVudCBvZiB0aGUgYXJyYXkgaW4gdGhlIG91dHB1dCBJL08gYnVmZmVyIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgZnJvbSBpbnRlcm5hbCBVVEYtOCBUaGUgYnVmZmVyIGlzIGxvc3NsZXNzLCBpLmUuIHdpbGwgc3RvcmUgaW4gY2FzZSBvZiBwYXJ0aWFsIG9yIGRlbGF5ZWQgd3JpdGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGNoYXJzIGltbWVkaWF0ZWx5IHdyaXR0ZW4sIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J291dCcgdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSdhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2FuIGNoYXIgYXJyYXknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZScgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgdGhlIGNvbnRlbnQgb2YgdGhlIHN0cmluZyBpbiB0aGUgb3V0cHV0IEkvTyBidWZmZXIgVGhpcyByb3V0aW5lIGVzY2FwZXMgdGhlIGNhcmFjdGVycyBhbmQgdGhlbiBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgZnJvbSBpbnRlcm5hbCBVVEYtOCBUaGUgYnVmZmVyIGlzIGxvc3NsZXNzLCBpLmUuIHdpbGwgc3RvcmUgaW4gY2FzZSBvZiBwYXJ0aWFsIG9yIGRlbGF5ZWQgd3JpdGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGNoYXJzIGltbWVkaWF0ZWx5IHdyaXR0ZW4sIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J291dCcgdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSdhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgemVybyB0ZXJtaW5hdGVkIFVURi04IHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdlc2NhcGluZycgdHlwZT0neG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYycgaW5mbz0nYW4gb3B0aW9uYWwgZXNjYXBpbmcgZnVuY3Rpb24gKG9yIE5VTEwpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIHRoZSBjb250ZW50IG9mIHRoZSBzdHJpbmcgaW4gdGhlIG91dHB1dCBJL08gYnVmZmVyIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgZnJvbSBpbnRlcm5hbCBVVEYtOCBUaGUgYnVmZmVyIGlzIGxvc3NsZXNzLCBpLmUuIHdpbGwgc3RvcmUgaW4gY2FzZSBvZiBwYXJ0aWFsIG9yIGRlbGF5ZWQgd3JpdGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGNoYXJzIGltbWVkaWF0ZWx5IHdyaXR0ZW4sIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J291dCcgdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSdhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgemVybyB0ZXJtaW5hdGVkIEMgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sT3V0cHV0Q2xvc2VDYWxsYmFjaycgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIE91dHB1dCBBUEkgdG8gY2xvc2UgdGhlIHJlc291cmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZXh0JyB0eXBlPSd2b2lkIConIGluZm89J2FuIE91dHB1dCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sT3V0cHV0TWF0Y2hDYWxsYmFjaycgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIE91dHB1dCBBUEkgdG8gZGV0ZWN0IGlmIHRoZSBjdXJyZW50IGhhbmRsZXIgY2FuIHByb3ZpZGUgb3V0cHV0IGZvbmN0aW9ubmFsaXRpZXMgZm9yIHRoaXMgcmVzb3VyY2UuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgeWVzIGFuZCAwIGlmIGFub3RoZXIgT3V0cHV0IG1vZHVsZSBzaG91bGQgYmUgdXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY2hhciBjb25zdCAqJyBpbmZvPSd0aGUgZmlsZW5hbWUgb3IgVVJJJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sT3V0cHV0T3BlbkNhbGxiYWNrJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DYWxsYmFjayB1c2VkIGluIHRoZSBJL08gT3V0cHV0IEFQSSB0byBvcGVuIHRoZSByZXNvdXJjZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBPdXRwdXQgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NoYXIgY29uc3QgKicgaW5mbz0ndGhlIGZpbGVuYW1lIG9yIFVSSScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbE91dHB1dFdyaXRlQ2FsbGJhY2snIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBPdXRwdXQgQVBJIHRvIHdyaXRlIHRvIHRoZSByZXNvdXJjZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZXh0JyB0eXBlPSd2b2lkIConIGluZm89J2FuIE91dHB1dCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgYnVmZmVyIG9mIGRhdGEgdG8gd3JpdGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlciBpbiBieXRlcycvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQXR0VmFsdWUnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYSB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlIE5vdGU6IHRoZSBwYXJzZXIgd29uJmFwb3M7dCBkbyBzdWJzdGl0dXRpb24gb2YgZW50aXRpZXMgaGVyZSwgdGhpcyB3aWxsIGJlIGhhbmRsZWQgbGF0ZXIgaW4geG1sU3RyaW5nR2V0Tm9kZUxpc3QgIFsxMF0gQXR0VmFsdWUgOjo9ICZhcG9zOyZxdW90OyZhcG9zOyAoW14mbHQ7JmFtcDsmcXVvdDtdIHwgUmVmZXJlbmNlKSogJmFwb3M7JnF1b3Q7JmFwb3M7IHwgJnF1b3Q7JmFwb3M7JnF1b3Q7IChbXiZsdDsmYW1wOyZhcG9zO10gfCBSZWZlcmVuY2UpKiAmcXVvdDsmYXBvczsmcXVvdDsgIDMuMy4zIEF0dHJpYnV0ZS1WYWx1ZSBOb3JtYWxpemF0aW9uOiBCZWZvcmUgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBpcyBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yIGNoZWNrZWQgZm9yIHZhbGlkaXR5LCB0aGUgWE1MIHByb2Nlc3NvciBtdXN0IG5vcm1hbGl6ZSBpdCBhcyBmb2xsb3dzOiAtIGEgY2hhcmFjdGVyIHJlZmVyZW5jZSBpcyBwcm9jZXNzZWQgYnkgYXBwZW5kaW5nIHRoZSByZWZlcmVuY2VkIGNoYXJhY3RlciB0byB0aGUgYXR0cmlidXRlIHZhbHVlIC0gYW4gZW50aXR5IHJlZmVyZW5jZSBpcyBwcm9jZXNzZWQgYnkgcmVjdXJzaXZlbHkgcHJvY2Vzc2luZyB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiB0aGUgZW50aXR5IC0gYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAoI3gyMCwgI3hELCAjeEEsICN4OSkgaXMgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyAjeDIwIHRvIHRoZSBub3JtYWxpemVkIHZhbHVlLCBleGNlcHQgdGhhdCBvbmx5IGEgc2luZ2xlICN4MjAgaXMgYXBwZW5kZWQgZm9yIGEgJnF1b3Q7I3hEI3hBJnF1b3Q7IHNlcXVlbmNlIHRoYXQgaXMgcGFydCBvZiBhbiBleHRlcm5hbCBwYXJzZWQgZW50aXR5IG9yIHRoZSBsaXRlcmFsIGVudGl0eSB2YWx1ZSBvZiBhbiBpbnRlcm5hbCBwYXJzZWQgZW50aXR5IC0gb3RoZXIgY2hhcmFjdGVycyBhcmUgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyB0aGVtIHRvIHRoZSBub3JtYWxpemVkIHZhbHVlIElmIHRoZSBkZWNsYXJlZCB2YWx1ZSBpcyBub3QgQ0RBVEEsIHRoZW4gdGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBmdXJ0aGVyIHByb2Nlc3MgdGhlIG5vcm1hbGl6ZWQgYXR0cmlidXRlIHZhbHVlIGJ5IGRpc2NhcmRpbmcgYW55IGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXJzLCBhbmQgYnkgcmVwbGFjaW5nIHNlcXVlbmNlcyBvZiBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycyBieSBhIHNpbmdsZSBzcGFjZSAoI3gyMCkgY2hhcmFjdGVyLiBBbGwgYXR0cmlidXRlcyBmb3Igd2hpY2ggbm8gZGVjbGFyYXRpb24gaGFzIGJlZW4gcmVhZCBzaG91bGQgYmUgdHJlYXRlZCBieSBhIG5vbi12YWxpZGF0aW5nIHBhcnNlciBhcyBpZiBkZWNsYXJlZCBDREFUQS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIEF0dFZhbHVlIHBhcnNlZCBvciBOVUxMLiBUaGUgdmFsdWUgaGFzIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQXR0cmlidXRlJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBhdHRyaWJ1dGUgIFs0MV0gQXR0cmlidXRlIDo6PSBOYW1lIEVxIEF0dFZhbHVlICBbIFdGQzogTm8gRXh0ZXJuYWwgRW50aXR5IFJlZmVyZW5jZXMgXSBBdHRyaWJ1dGUgdmFsdWVzIGNhbm5vdCBjb250YWluIGRpcmVjdCBvciBpbmRpcmVjdCBlbnRpdHkgcmVmZXJlbmNlcyB0byBleHRlcm5hbCBlbnRpdGllcy4gIFsgV0ZDOiBObyAmbHQ7IGluIEF0dHJpYnV0ZSBWYWx1ZXMgXSBUaGUgcmVwbGFjZW1lbnQgdGV4dCBvZiBhbnkgZW50aXR5IHJlZmVycmVkIHRvIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgaW4gYW4gYXR0cmlidXRlIHZhbHVlIChvdGhlciB0aGFuICZxdW90OyZhbXA7bHQ7JnF1b3Q7KSBtdXN0IG5vdCBjb250YWluIGEgJmx0Oy4gIFsgVkM6IEF0dHJpYnV0ZSBWYWx1ZSBUeXBlIF0gVGhlIGF0dHJpYnV0ZSBtdXN0IGhhdmUgYmVlbiBkZWNsYXJlZDsgdGhlIHZhbHVlIG11c3QgYmUgb2YgdGhlIHR5cGUgZGVjbGFyZWQgZm9yIGl0LiAgWzI1XSBFcSA6Oj0gUz8gJmFwb3M7PSZhcG9zOyBTPyAgV2l0aCBuYW1lc3BhY2U6ICBbTlMgMTFdIEF0dHJpYnV0ZSA6Oj0gUU5hbWUgRXEgQXR0VmFsdWUgIEFsc28gdGhlIGNhc2UgUU5hbWUgPT0geG1sbnM6Pz8/IGlzIGhhbmRsZWQgaW5kZXBlbmRlbnRseSBhcyBhIG5hbWVzcGFjZSBkZWZpbml0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIG5hbWUsIGFuZCB0aGUgdmFsdWUgaW4gKnZhbHVlLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J3htbENoYXIgKionIGluZm89J2EgeG1sQ2hhciAqKiB1c2VkIHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz46IHBhcnNlIHRoZSBBdHRyaWJ1dGUgbGlzdCBkZWYgZm9yIGFuIGVsZW1lbnQgIFs1Ml0gQXR0bGlzdERlY2wgOjo9ICZhcG9zOyZsdDshQVRUTElTVCZhcG9zOyBTIE5hbWUgQXR0RGVmKiBTPyAmYXBvczsmZ3Q7JmFwb3M7ICBbNTNdIEF0dERlZiA6Oj0gUyBOYW1lIFMgQXR0VHlwZSBTIERlZmF1bHREZWNsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQXR0cmlidXRlVHlwZScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSB0aGUgQXR0cmlidXRlIGxpc3QgZGVmIGZvciBhbiBlbGVtZW50ICBbNTRdIEF0dFR5cGUgOjo9IFN0cmluZ1R5cGUgfCBUb2tlbml6ZWRUeXBlIHwgRW51bWVyYXRlZFR5cGUgIFs1NV0gU3RyaW5nVHlwZSA6Oj0gJmFwb3M7Q0RBVEEmYXBvczsgIFs1Nl0gVG9rZW5pemVkVHlwZSA6Oj0gJmFwb3M7SUQmYXBvczsgfCAmYXBvcztJRFJFRiZhcG9zOyB8ICZhcG9zO0lEUkVGUyZhcG9zOyB8ICZhcG9zO0VOVElUWSZhcG9zOyB8ICZhcG9zO0VOVElUSUVTJmFwb3M7IHwgJmFwb3M7Tk1UT0tFTiZhcG9zOyB8ICZhcG9zO05NVE9LRU5TJmFwb3M7ICBWYWxpZGl0eSBjb25zdHJhaW50cyBmb3IgYXR0cmlidXRlIHZhbHVlcyBzeW50YXggYXJlIGNoZWNrZWQgaW4geG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSgpICBbIFZDOiBJRCBdIFZhbHVlcyBvZiB0eXBlIElEIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbi4gQSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiBhbiBYTUwgZG9jdW1lbnQgYXMgYSB2YWx1ZSBvZiB0aGlzIHR5cGU7IGkuZS4sIElEIHZhbHVlcyBtdXN0IHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBlbGVtZW50cyB3aGljaCBiZWFyIHRoZW0uICBbIFZDOiBPbmUgSUQgcGVyIEVsZW1lbnQgVHlwZSBdIE5vIGVsZW1lbnQgdHlwZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIElEIGF0dHJpYnV0ZSBzcGVjaWZpZWQuICBbIFZDOiBJRCBBdHRyaWJ1dGUgRGVmYXVsdCBdIEFuIElEIGF0dHJpYnV0ZSBtdXN0IGhhdmUgYSBkZWNsYXJlZCBkZWZhdWx0IG9mICNJTVBMSUVEIG9yICNSRVFVSVJFRC4gIFsgVkM6IElEUkVGIF0gVmFsdWVzIG9mIHR5cGUgSURSRUYgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCBhbmQgdmFsdWVzIG9mIHR5cGUgSURSRUZTIG11c3QgbWF0Y2ggTmFtZXM7IGVhY2ggSURSRUYgTmFtZSBtdXN0IG1hdGNoIHRoZSB2YWx1ZSBvZiBhbiBJRCBhdHRyaWJ1dGUgb24gc29tZSBlbGVtZW50IGluIHRoZSBYTUwgZG9jdW1lbnQ7IGkuZS4gSURSRUYgdmFsdWVzIG11c3QgbWF0Y2ggdGhlIHZhbHVlIG9mIHNvbWUgSUQgYXR0cmlidXRlLiAgWyBWQzogRW50aXR5IE5hbWUgXSBWYWx1ZXMgb2YgdHlwZSBFTlRJVFkgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCB2YWx1ZXMgb2YgdHlwZSBFTlRJVElFUyBtdXN0IG1hdGNoIE5hbWVzOyBlYWNoIEVudGl0eSBOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gdW5wYXJzZWQgZW50aXR5IGRlY2xhcmVkIGluIHRoZSBEVEQuICBbIFZDOiBOYW1lIFRva2VuIF0gVmFsdWVzIG9mIHR5cGUgTk1UT0tFTiBtdXN0IG1hdGNoIHRoZSBObXRva2VuIHByb2R1Y3Rpb247IHZhbHVlcyBvZiB0eXBlIE5NVE9LRU5TIG11c3QgbWF0Y2ggTm10b2tlbnMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBhdHRyaWJ1dGUgdHlwZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJlZScgdHlwZT0neG1sRW51bWVyYXRpb25QdHIgKicgaW5mbz0ndGhlIGVudW1lcmF0aW9uIHRyZWUgYnVpbHQgd2hpbGUgcGFyc2luZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UGFyc2UgYSB3ZWxsLWJhbGFuY2VkIGNodW5rIG9mIGFuIFhNTCBkb2N1bWVudCBjYWxsZWQgYnkgdGhlIHBhcnNlciBUaGUgYWxsb3dlZCBzZXF1ZW5jZSBmb3IgdGhlIFdlbGwgQmFsYW5jZWQgQ2h1bmsgaXMgdGhlIG9uZSBkZWZpbmVkIGJ5IHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOiAgWzQzXSBjb250ZW50IDo6PSAoZWxlbWVudCB8IENoYXJEYXRhIHwgUmVmZXJlbmNlIHwgQ0RTZWN0IHwgUEkgfCBDb21tZW50KSo8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgY2h1bmsgaXMgd2VsbCBiYWxhbmNlZCwgLTEgaW4gY2FzZSBvZiBhcmdzIHByb2JsZW0gYW5kIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCB0aGUgY2h1bmsgcGVydGFpbnMgdG8nLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSd4bWxTQVhIYW5kbGVyUHRyJyBpbmZvPSd0aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCknLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcl9kYXRhJyB0eXBlPSd2b2lkIConIGluZm89J1RoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcyAocG9zc2libHkgTlVMTCknLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVwdGgnIHR5cGU9J2ludCcgaW5mbz0nVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmluZycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgaW5wdXQgc3RyaW5nIGluIFVURjggb3IgSVNPLUxhdGluICh6ZXJvIHRlcm1pbmF0ZWQpJy8+CisgICAgICA8YXJnIG5hbWU9J2xzdCcgdHlwZT0neG1sTm9kZVB0ciAqJyBpbmZvPSd0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXInIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlBhcnNlIGEgd2VsbC1iYWxhbmNlZCBjaHVuayBvZiBhbiBYTUwgZG9jdW1lbnQgY2FsbGVkIGJ5IHRoZSBwYXJzZXIgVGhlIGFsbG93ZWQgc2VxdWVuY2UgZm9yIHRoZSBXZWxsIEJhbGFuY2VkIENodW5rIGlzIHRoZSBvbmUgZGVmaW5lZCBieSB0aGUgY29udGVudCBwcm9kdWN0aW9uIGluIHRoZSBYTUwgZ3JhbW1hcjogIFs0M10gY29udGVudCA6Oj0gKGVsZW1lbnQgfCBDaGFyRGF0YSB8IFJlZmVyZW5jZSB8IENEU2VjdCB8IFBJIHwgQ29tbWVudCkqPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIGNodW5rIGlzIHdlbGwgYmFsYW5jZWQsIC0xIGluIGNhc2Ugb2YgYXJncyBwcm9ibGVtIGFuZCB0aGUgcGFyc2VyIGVycm9yIGNvZGUgb3RoZXJ3aXNlICBJbiBjYXNlIHJlY292ZXIgaXMgc2V0IHRvIDEsIHRoZSBub2RlbGlzdCB3aWxsIG5vdCBiZSBlbXB0eSBldmVuIGlmIHRoZSBwYXJzZWQgY2h1bmsgaXMgbm90IHdlbGwgYmFsYW5jZWQsIGFzc3VtaW5nIHRoZSBwYXJzaW5nIHN1Y2NlZWRlZCB0byBzb21lIGV4dGVudC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCB0aGUgY2h1bmsgcGVydGFpbnMgdG8nLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSd4bWxTQVhIYW5kbGVyUHRyJyBpbmZvPSd0aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCknLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcl9kYXRhJyB0eXBlPSd2b2lkIConIGluZm89J1RoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcyAocG9zc2libHkgTlVMTCknLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVwdGgnIHR5cGU9J2ludCcgaW5mbz0nVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmluZycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgaW5wdXQgc3RyaW5nIGluIFVURjggb3IgSVNPLUxhdGluICh6ZXJvIHRlcm1pbmF0ZWQpJy8+CisgICAgICA8YXJnIG5hbWU9J2xzdCcgdHlwZT0neG1sTm9kZVB0ciAqJyBpbmZvPSd0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlcycvPgorICAgICAgPGFyZyBuYW1lPSdyZWNvdmVyJyB0eXBlPSdpbnQnIGluZm89J3JldHVybiBub2RlcyBldmVuIGlmIHRoZSBkYXRhIGlzIGJyb2tlbiAodXNlIDApJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VDRFNlY3QnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+UGFyc2UgZXNjYXBlZCBwdXJlIHJhdyBjb250ZW50LiAgWzE4XSBDRFNlY3QgOjo9IENEU3RhcnQgQ0RhdGEgQ0RFbmQgIFsxOV0gQ0RTdGFydCA6Oj0gJmFwb3M7Jmx0OyFbQ0RBVEFbJmFwb3M7ICBbMjBdIERhdGEgOjo9IChDaGFyKiAtIChDaGFyKiAmYXBvcztdXSZndDsmYXBvczsgQ2hhciopKSAgWzIxXSBDREVuZCA6Oj0gJmFwb3M7XV0mZ3Q7JmFwb3M7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQ2F0YWxvZ0ZpbGUnIGZpbGU9J2NhdGFsb2cnIG1vZHVsZT0nY2F0YWxvZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gSXQmYXBvcztzIGxpa2UgeG1sUGFyc2VGaWxlKCkgZXhjZXB0IGl0IGJ5cGFzcyBhbGwgY2F0YWxvZyBsb29rdXBzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQ2hhckRhdGEnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYSBDaGFyRGF0YSBzZWN0aW9uLiBpZiB3ZSBhcmUgd2l0aGluIGEgQ0RBVEEgc2VjdGlvbiAmYXBvcztdXSZndDsmYXBvczsgbWFya3MgYW4gZW5kIG9mIHNlY3Rpb24uICBUaGUgcmlnaHQgYW5nbGUgYnJhY2tldCAoJmd0OykgbWF5IGJlIHJlcHJlc2VudGVkIHVzaW5nIHRoZSBzdHJpbmcgJnF1b3Q7JmFtcDtndDsmcXVvdDssIGFuZCBtdXN0LCBmb3IgY29tcGF0aWJpbGl0eSwgYmUgZXNjYXBlZCB1c2luZyAmcXVvdDsmYW1wO2d0OyZxdW90OyBvciBhIGNoYXJhY3RlciByZWZlcmVuY2Ugd2hlbiBpdCBhcHBlYXJzIGluIHRoZSBzdHJpbmcgJnF1b3Q7XV0mZ3Q7JnF1b3Q7IGluIGNvbnRlbnQsIHdoZW4gdGhhdCBzdHJpbmcgaXMgbm90IG1hcmtpbmcgdGhlIGVuZCBvZiBhIENEQVRBIHNlY3Rpb24uICBbMTRdIENoYXJEYXRhIDo6PSBbXiZsdDsmYW1wO10qIC0gKFteJmx0OyZhbXA7XSogJmFwb3M7XV0mZ3Q7JmFwb3M7IFteJmx0OyZhbXA7XSopPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdjZGF0YScgdHlwZT0naW50JyBpbmZvPSdpbnQgaW5kaWNhdGluZyB3aGV0aGVyIHdlIGFyZSB3aXRoaW4gYSBDREFUQSBzZWN0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VDaGFyRW5jb2RpbmcnIGZpbGU9J2VuY29kaW5nJyBtb2R1bGU9J2VuY29kaW5nJz4KKyAgICAgIDxpbmZvPkNvbXBhcmUgdGhlIHN0cmluZyB0byB0aGUgZW5jb2Rpbmcgc2NoZW1lcyBhbHJlYWR5IGtub3duLiBOb3RlIHRoYXQgdGhlIGNvbXBhcmlzb24gaXMgY2FzZSBpbnNlbnNpdGl2ZSBhY2NvcmRpbmdseSB0byB0aGUgc2VjdGlvbiBbWE1MXSA0LjMuMyBDaGFyYWN0ZXIgRW5jb2RpbmcgaW4gRW50aXRpZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J29uZSBvZiB0aGUgWE1MX0NIQVJfRU5DT0RJTkdfLi4uIHZhbHVlcyBvciBYTUxfQ0hBUl9FTkNPRElOR19OT05FIGlmIG5vdCByZWNvZ25pemVkLicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBlbmNvZGluZyBuYW1lIGFzIHBhcnNlZCwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUNoYXJSZWYnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgUmVmZXJlbmNlIGRlY2xhcmF0aW9ucyAgWzY2XSBDaGFyUmVmIDo6PSAmYXBvczsmYW1wOyMmYXBvczsgWzAtOV0rICZhcG9zOzsmYXBvczsgfCAmYXBvczsmYW1wOyN4JmFwb3M7IFswLTlhLWZBLUZdKyAmYXBvczs7JmFwb3M7ICBbIFdGQzogTGVnYWwgQ2hhcmFjdGVyIF0gQ2hhcmFjdGVycyByZWZlcnJlZCB0byB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IG1hdGNoIHRoZSBwcm9kdWN0aW9uIGZvciBDaGFyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgdmFsdWUgcGFyc2VkIChhcyBhbiBpbnQpLCAwIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VDaHVuaycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QVVNIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UGFyc2UgYSBDaHVuayBvZiBtZW1vcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nemVybyBpZiBubyBlcnJvciwgdGhlIHhtbFBhcnNlckVycm9ycyBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdjaHVuaycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhbiBjaGFyIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgaW4gYnl0ZSBvZiB0aGUgY2h1bmsnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGVybWluYXRlJyB0eXBlPSdpbnQnIGluZm89J2xhc3QgY2h1bmsgaW5kaWNhdG9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VDb21tZW50JyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlNraXAgYW4gWE1MIChTR01MKSBjb21tZW50ICZsdDshLS0gLi4uLiAtLSZndDsgVGhlIHNwZWMgc2F5cyB0aGF0ICZxdW90O0ZvciBjb21wYXRpYmlsaXR5LCB0aGUgc3RyaW5nICZxdW90Oy0tJnF1b3Q7IChkb3VibGUtaHlwaGVuKSBtdXN0IG5vdCBvY2N1ciB3aXRoaW4gY29tbWVudHMuICZxdW90OyAgWzE1XSBDb21tZW50IDo6PSAmYXBvczsmbHQ7IS0tJmFwb3M7ICgoQ2hhciAtICZhcG9zOy0mYXBvczspIHwgKCZhcG9zOy0mYXBvczsgKENoYXIgLSAmYXBvczstJmFwb3M7KSkpKiAmYXBvczstLSZndDsmYXBvczs8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VDb250ZW50JyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlBhcnNlIGEgY29udGVudDogIFs0M10gY29udGVudCA6Oj0gKGVsZW1lbnQgfCBDaGFyRGF0YSB8IFJlZmVyZW5jZSB8IENEU2VjdCB8IFBJIHwgQ29tbWVudCkqPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlBhcnNlIGFuIGV4dGVybmFsIGdlbmVyYWwgZW50aXR5IHdpdGhpbiBhbiBleGlzdGluZyBwYXJzaW5nIGNvbnRleHQgQW4gZXh0ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZCBleHRQYXJzZWRFbnQuICBbNzhdIGV4dFBhcnNlZEVudCA6Oj0gVGV4dERlY2w/IGNvbnRlbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgZW50aXR5IGlzIHdlbGwgZm9ybWVkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQgdGhlIHBhcnNlciBlcnJvciBjb2RlIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBleGlzdGluZyBwYXJzaW5nIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZCcvPgorICAgICAgPGFyZyBuYW1lPSdJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgU3lzdGVtIElEIGZvciB0aGUgZW50aXR5IHRvIGxvYWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbHN0JyB0eXBlPSd4bWxOb2RlUHRyIConIGluZm89J3RoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VEVEQnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb2FkIGFuZCBwYXJzZSBhbiBleHRlcm5hbCBzdWJzZXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEdGRQdHInIGluZm89J3RoZSByZXN1bHRpbmcgeG1sRHRkUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIE5BTUUqIGNvbnRhaW5pbmcgdGhlIEV4dGVybmFsIElEIG9mIHRoZSBEVEQnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBOQU1FKiBjb250YWluaW5nIHRoZSBVUkwgdG8gdGhlIERURCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRGVmYXVsdERlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+UGFyc2UgYW4gYXR0cmlidXRlIGRlZmF1bHQgZGVjbGFyYXRpb24gIFs2MF0gRGVmYXVsdERlY2wgOjo9ICZhcG9zOyNSRVFVSVJFRCZhcG9zOyB8ICZhcG9zOyNJTVBMSUVEJmFwb3M7IHwgKCgmYXBvczsjRklYRUQmYXBvczsgUyk/IEF0dFZhbHVlKSAgWyBWQzogUmVxdWlyZWQgQXR0cmlidXRlIF0gaWYgdGhlIGRlZmF1bHQgZGVjbGFyYXRpb24gaXMgdGhlIGtleXdvcmQgI1JFUVVJUkVELCB0aGVuIHRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGFsbCBlbGVtZW50cyBvZiB0aGUgdHlwZSBpbiB0aGUgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uICBbIFZDOiBBdHRyaWJ1dGUgRGVmYXVsdCBMZWdhbCBdIFRoZSBkZWNsYXJlZCBkZWZhdWx0IHZhbHVlIG11c3QgbWVldCB0aGUgbGV4aWNhbCBjb25zdHJhaW50cyBvZiB0aGUgZGVjbGFyZWQgYXR0cmlidXRlIHR5cGUgYy5mLiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2woKSAgWyBWQzogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgXSBpZiBhbiBhdHRyaWJ1dGUgaGFzIGEgZGVmYXVsdCB2YWx1ZSBkZWNsYXJlZCB3aXRoIHRoZSAjRklYRUQga2V5d29yZCwgaW5zdGFuY2VzIG9mIHRoYXQgYXR0cmlidXRlIG11c3QgbWF0Y2ggdGhlIGRlZmF1bHQgdmFsdWUuICBbIFdGQzogTm8gJmx0OyBpbiBBdHRyaWJ1dGUgVmFsdWVzIF0gaGFuZGxlZCBpbiB4bWxQYXJzZUF0dFZhbHVlKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nWE1MX0FUVFJJQlVURV9OT05FLCBYTUxfQVRUUklCVVRFX1JFUVVJUkVELCBYTUxfQVRUUklCVVRFX0lNUExJRUQgb3IgWE1MX0FUVFJJQlVURV9GSVhFRC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSd4bWxDaGFyICoqJyBpbmZvPSdSZWNlaXZlIGEgcG9zc2libGUgZml4ZWQgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRG9jJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZURvY1R5cGVEZWNsJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGEgRE9DVFlQRSBkZWNsYXJhdGlvbiAgWzI4XSBkb2N0eXBlZGVjbCA6Oj0gJmFwb3M7Jmx0OyFET0NUWVBFJmFwb3M7IFMgTmFtZSAoUyBFeHRlcm5hbElEKT8gUz8gKCZhcG9zO1smYXBvczsgKG1hcmt1cGRlY2wgfCBQRVJlZmVyZW5jZSB8IFMpKiAmYXBvcztdJmFwb3M7IFM/KT8gJmFwb3M7Jmd0OyZhcG9zOyAgWyBWQzogUm9vdCBFbGVtZW50IFR5cGUgXSBUaGUgTmFtZSBpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBtdXN0IG1hdGNoIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIHJvb3QgZWxlbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VEb2N1bWVudCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZG9jdW1lbnQgKGFuZCBidWlsZCBhIHRyZWUgaWYgdXNpbmcgdGhlIHN0YW5kYXJkIFNBWCBpbnRlcmZhY2UpLiAgWzFdIGRvY3VtZW50IDo6PSBwcm9sb2cgZWxlbWVudCBNaXNjKiAgWzIyXSBwcm9sb2cgOjo9IFhNTERlY2w/IE1pc2MqIChkb2N0eXBlZGVjbCBNaXNjKik/PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAsIC0xIGluIGNhc2Ugb2YgZXJyb3IuIHRoZSBwYXJzZXIgY29udGV4dCBpcyBhdWdtZW50ZWQgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRWxlbWVudCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZWxlbWVudCwgdGhpcyBpcyBoaWdobHkgcmVjdXJzaXZlICBbMzldIGVsZW1lbnQgOjo9IEVtcHR5RWxlbVRhZyB8IFNUYWcgY29udGVudCBFVGFnICBbIFdGQzogRWxlbWVudCBUeXBlIE1hdGNoIF0gVGhlIE5hbWUgaW4gYW4gZWxlbWVudCZhcG9zO3MgZW5kLXRhZyBtdXN0IG1hdGNoIHRoZSBlbGVtZW50IHR5cGUgaW4gdGhlIHN0YXJ0LXRhZy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSB0aGUgZGVjbGFyYXRpb24gZm9yIGEgTWl4ZWQgRWxlbWVudCBjb250ZW50IFRoZSBsZWFkaW5nICZhcG9zOygmYXBvczsgYW5kIHNwYWNlcyBoYXZlIGJlZW4gc2tpcHBlZCBpbiB4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCAgWzQ3XSBjaGlsZHJlbiA6Oj0gKGNob2ljZSB8IHNlcSkgKCZhcG9zOz8mYXBvczsgfCAmYXBvczsqJmFwb3M7IHwgJmFwb3M7KyZhcG9zOyk/ICBbNDhdIGNwIDo6PSAoTmFtZSB8IGNob2ljZSB8IHNlcSkgKCZhcG9zOz8mYXBvczsgfCAmYXBvczsqJmFwb3M7IHwgJmFwb3M7KyZhcG9zOyk/ICBbNDldIGNob2ljZSA6Oj0gJmFwb3M7KCZhcG9zOyBTPyBjcCAoIFM/ICZhcG9zO3wmYXBvczsgUz8gY3AgKSogUz8gJmFwb3M7KSZhcG9zOyAgWzUwXSBzZXEgOjo9ICZhcG9zOygmYXBvczsgUz8gY3AgKCBTPyAmYXBvczssJmFwb3M7IFM/IGNwICkqIFM/ICZhcG9zOykmYXBvczsgIFsgVkM6IFByb3BlciBHcm91cC9QRSBOZXN0aW5nIF0gYXBwbGllcyB0byBbNDldIGFuZCBbNTBdIFRPRE8gUGFyYW1ldGVyLWVudGl0eSByZXBsYWNlbWVudCB0ZXh0IG11c3QgYmUgcHJvcGVybHkgbmVzdGVkIHdpdGggcGFyZW50aGVzaXplZCBncm91cHMuIFRoYXQgaXMgdG8gc2F5LCBpZiBlaXRoZXIgb2YgdGhlIG9wZW5pbmcgb3IgY2xvc2luZyBwYXJlbnRoZXNlcyBpbiBhIGNob2ljZSwgc2VxLCBvciBNaXhlZCBjb25zdHJ1Y3QgaXMgY29udGFpbmVkIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciBhIHBhcmFtZXRlciBlbnRpdHksIGJvdGggbXVzdCBiZSBjb250YWluZWQgaW4gdGhlIHNhbWUgcmVwbGFjZW1lbnQgdGV4dC4gRm9yIGludGVyb3BlcmFiaWxpdHksIGlmIGEgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UgYXBwZWFycyBpbiBhIGNob2ljZSwgc2VxLCBvciBNaXhlZCBjb25zdHJ1Y3QsIGl0cyByZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBub3QgYmUgZW1wdHksIGFuZCBuZWl0aGVyIHRoZSBmaXJzdCBub3IgbGFzdCBub24tYmxhbmsgY2hhcmFjdGVyIG9mIHRoZSByZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBiZSBhIGNvbm5lY3RvciAofCBvciAsKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEVsZW1lbnRDb250ZW50UHRyJyBpbmZvPSd0aGUgdHJlZSBvZiB4bWxFbGVtZW50Q29udGVudFB0ciBkZXNjcmliaW5nIHRoZSBlbGVtZW50IGhpZXJhcmNoeS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2lucHV0Y2hrJyB0eXBlPSdpbnQnIGluZm89J3RoZSBpbnB1dCB1c2VkIGZvciB0aGUgY3VycmVudCBlbnRpdHksIG5lZWRlZCBmb3IgYm91bmRhcnkgY2hlY2tzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgdGhlIGRlY2xhcmF0aW9uIGZvciBhbiBFbGVtZW50IGNvbnRlbnQgZWl0aGVyIE1peGVkIG9yIENoaWxkcmVuLCB0aGUgY2FzZXMgRU1QVFkgYW5kIEFOWSBhcmUgaGFuZGxlZCBkaXJlY3RseSBpbiB4bWxQYXJzZUVsZW1lbnREZWNsICBbNDZdIGNvbnRlbnRzcGVjIDo6PSAmYXBvcztFTVBUWSZhcG9zOyB8ICZhcG9zO0FOWSZhcG9zOyB8IE1peGVkIHwgY2hpbGRyZW48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIHR5cGUgb2YgZWxlbWVudCBjb250ZW50IFhNTF9FTEVNRU5UX1RZUEVfeHh4Jy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBlbGVtZW50IGJlaW5nIGRlZmluZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J3Jlc3VsdCcgdHlwZT0neG1sRWxlbWVudENvbnRlbnRQdHIgKicgaW5mbz0ndGhlIEVsZW1lbnQgQ29udGVudCBwb2ludGVyIHdpbGwgYmUgc3RvcmVkIGhlcmUgaWYgYW55Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VFbGVtZW50RGVjbCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBFbGVtZW50IGRlY2xhcmF0aW9uLiAgWzQ1XSBlbGVtZW50ZGVjbCA6Oj0gJmFwb3M7Jmx0OyFFTEVNRU5UJmFwb3M7IFMgTmFtZSBTIGNvbnRlbnRzcGVjIFM/ICZhcG9zOyZndDsmYXBvczsgIFsgVkM6IFVuaXF1ZSBFbGVtZW50IFR5cGUgRGVjbGFyYXRpb24gXSBObyBlbGVtZW50IHR5cGUgbWF5IGJlIGRlY2xhcmVkIG1vcmUgdGhhbiBvbmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSB0eXBlIG9mIHRoZSBlbGVtZW50LCBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgdGhlIGRlY2xhcmF0aW9uIGZvciBhIE1peGVkIEVsZW1lbnQgY29udGVudCBUaGUgbGVhZGluZyAmYXBvczsoJmFwb3M7IGFuZCBzcGFjZXMgaGF2ZSBiZWVuIHNraXBwZWQgaW4geG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wgIFs1MV0gTWl4ZWQgOjo9ICZhcG9zOygmYXBvczsgUz8gJmFwb3M7I1BDREFUQSZhcG9zOyAoUz8gJmFwb3M7fCZhcG9zOyBTPyBOYW1lKSogUz8gJmFwb3M7KSomYXBvczsgfCAmYXBvczsoJmFwb3M7IFM/ICZhcG9zOyNQQ0RBVEEmYXBvczsgUz8gJmFwb3M7KSZhcG9zOyAgWyBWQzogUHJvcGVyIEdyb3VwL1BFIE5lc3RpbmcgXSBhcHBsaWVzIHRvIFs1MV0gdG9vIChzZWUgWzQ5XSkgIFsgVkM6IE5vIER1cGxpY2F0ZSBUeXBlcyBdIFRoZSBzYW1lIG5hbWUgbXVzdCBub3QgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIGEgc2luZ2xlIG1peGVkLWNvbnRlbnQgZGVjbGFyYXRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxFbGVtZW50Q29udGVudFB0cicgaW5mbz0ndGhlIGxpc3Qgb2YgdGhlIHhtbEVsZW1lbnRDb250ZW50UHRyIGRlc2NyaWJpbmcgdGhlIGVsZW1lbnQgY2hvaWNlcycvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0naW5wdXRjaGsnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGlucHV0IHVzZWQgZm9yIHRoZSBjdXJyZW50IGVudGl0eSwgbmVlZGVkIGZvciBib3VuZGFyeSBjaGVja3MnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUVuY05hbWUnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgdGhlIFhNTCBlbmNvZGluZyBuYW1lICBbODFdIEVuY05hbWUgOjo9IFtBLVphLXpdIChbQS1aYS16MC05Ll9dIHwgJmFwb3M7LSZhcG9zOykqPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBlbmNvZGluZyBuYW1lIHZhbHVlIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VFbmNvZGluZ0RlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgdGhlIFhNTCBlbmNvZGluZyBkZWNsYXJhdGlvbiAgWzgwXSBFbmNvZGluZ0RlY2wgOjo9IFMgJmFwb3M7ZW5jb2RpbmcmYXBvczsgRXEgKCZhcG9zOyZxdW90OyZhcG9zOyBFbmNOYW1lICZhcG9zOyZxdW90OyZhcG9zOyB8ICAmcXVvdDsmYXBvczsmcXVvdDsgRW5jTmFtZSAmcXVvdDsmYXBvczsmcXVvdDspICB0aGlzIHNldHVwcyB0aGUgY29udmVyc2lvbiBmaWx0ZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZW5jb2RpbmcgdmFsdWUgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUVuZFRhZycgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gZW5kIG9mIHRhZyAgWzQyXSBFVGFnIDo6PSAmYXBvczsmbHQ7LyZhcG9zOyBOYW1lIFM/ICZhcG9zOyZndDsmYXBvczsgIFdpdGggbmFtZXNwYWNlICBbTlMgOV0gRVRhZyA6Oj0gJmFwb3M7Jmx0Oy8mYXBvczsgUU5hbWUgUz8gJmFwb3M7Jmd0OyZhcG9zOzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUVudGl0eScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGV4dGVybmFsIGVudGl0eSBvdXQgb2YgY29udGV4dCBhbmQgYnVpbGQgYSB0cmVlLiAgWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50ICBUaGlzIGNvcnJlc3BvbmQgdG8gYSAmcXVvdDtXZWxsIEJhbGFuY2VkJnF1b3Q7IGNodW5rPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZW5hbWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUVudGl0eURlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgJmx0OyFFTlRJVFkgZGVjbGFyYXRpb25zICBbNzBdIEVudGl0eURlY2wgOjo9IEdFRGVjbCB8IFBFRGVjbCAgWzcxXSBHRURlY2wgOjo9ICZhcG9zOyZsdDshRU5USVRZJmFwb3M7IFMgTmFtZSBTIEVudGl0eURlZiBTPyAmYXBvczsmZ3Q7JmFwb3M7ICBbNzJdIFBFRGVjbCA6Oj0gJmFwb3M7Jmx0OyFFTlRJVFkmYXBvczsgUyAmYXBvczslJmFwb3M7IFMgTmFtZSBTIFBFRGVmIFM/ICZhcG9zOyZndDsmYXBvczsgIFs3M10gRW50aXR5RGVmIDo6PSBFbnRpdHlWYWx1ZSB8IChFeHRlcm5hbElEIE5EYXRhRGVjbD8pICBbNzRdIFBFRGVmIDo6PSBFbnRpdHlWYWx1ZSB8IEV4dGVybmFsSUQgIFs3Nl0gTkRhdGFEZWNsIDo6PSBTICZhcG9zO05EQVRBJmFwb3M7IFMgTmFtZSAgWyBWQzogTm90YXRpb24gRGVjbGFyZWQgXSBUaGUgTmFtZSBtdXN0IG1hdGNoIHRoZSBkZWNsYXJlZCBuYW1lIG9mIGEgbm90YXRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRW50aXR5UmVmJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIEVOVElUWSByZWZlcmVuY2VzIGRlY2xhcmF0aW9ucyAgWzY4XSBFbnRpdHlSZWYgOjo9ICZhcG9zOyZhbXA7JmFwb3M7IE5hbWUgJmFwb3M7OyZhcG9zOyAgWyBXRkM6IEVudGl0eSBEZWNsYXJlZCBdIEluIGEgZG9jdW1lbnQgd2l0aG91dCBhbnkgRFRELCBhIGRvY3VtZW50IHdpdGggb25seSBhbiBpbnRlcm5hbCBEVEQgc3Vic2V0IHdoaWNoIGNvbnRhaW5zIG5vIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlcywgb3IgYSBkb2N1bWVudCB3aXRoICZxdW90O3N0YW5kYWxvbmU9JmFwb3M7eWVzJmFwb3M7JnF1b3Q7LCB0aGUgTmFtZSBnaXZlbiBpbiB0aGUgZW50aXR5IHJlZmVyZW5jZSBtdXN0IG1hdGNoIHRoYXQgaW4gYW4gZW50aXR5IGRlY2xhcmF0aW9uLCBleGNlcHQgdGhhdCB3ZWxsLWZvcm1lZCBkb2N1bWVudHMgbmVlZCBub3QgZGVjbGFyZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBlbnRpdGllczogYW1wLCBsdCwgZ3QsIGFwb3MsIHF1b3QuICBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0LiAgU2ltaWxhcmx5LCB0aGUgZGVjbGFyYXRpb24gb2YgYSBnZW5lcmFsIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdCB3aGljaCBhcHBlYXJzIGluIGEgZGVmYXVsdCB2YWx1ZSBpbiBhbiBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbi4gTm90ZSB0aGF0IGlmIGVudGl0aWVzIGFyZSBkZWNsYXJlZCBpbiB0aGUgZXh0ZXJuYWwgc3Vic2V0IG9yIGluIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdGllcywgYSBub24tdmFsaWRhdGluZyBwcm9jZXNzb3IgaXMgbm90IG9ibGlnYXRlZCB0byByZWFkIGFuZCBwcm9jZXNzIHRoZWlyIGRlY2xhcmF0aW9uczsgZm9yIHN1Y2ggZG9jdW1lbnRzLCB0aGUgcnVsZSB0aGF0IGFuIGVudGl0eSBtdXN0IGJlIGRlY2xhcmVkIGlzIGEgd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnQgb25seSBpZiBzdGFuZGFsb25lPSZhcG9zO3llcyZhcG9zOy4gIFsgV0ZDOiBQYXJzZWQgRW50aXR5IF0gQW4gZW50aXR5IHJlZmVyZW5jZSBtdXN0IG5vdCBjb250YWluIHRoZSBuYW1lIG9mIGFuIHVucGFyc2VkIGVudGl0eTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW50aXR5UHRyJyBpbmZvPSd0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLCBvciBOVUxMIG90aGVyd2lzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VFbnRpdHlWYWx1ZScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhIHZhbHVlIGZvciBFTlRJVFkgZGVjbGFyYXRpb25zICBbOV0gRW50aXR5VmFsdWUgOjo9ICZhcG9zOyZxdW90OyZhcG9zOyAoW14lJmFtcDsmcXVvdDtdIHwgUEVSZWZlcmVuY2UgfCBSZWZlcmVuY2UpKiAmYXBvczsmcXVvdDsmYXBvczsgfCAmcXVvdDsmYXBvczsmcXVvdDsgKFteJSZhbXA7JmFwb3M7XSB8IFBFUmVmZXJlbmNlIHwgUmVmZXJlbmNlKSogJnF1b3Q7JmFwb3M7JnF1b3Q7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBFbnRpdHlWYWx1ZSBwYXJzZWQgd2l0aCByZWZlcmVuY2Ugc3Vic3RpdHV0ZWQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3JpZycgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0naWYgbm9uLU5VTEwgc3RvcmUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBlbnRpdHkgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUVudW1lcmF0ZWRUeXBlJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIEVudW1lcmF0ZWQgYXR0cmlidXRlIHR5cGUuICBbNTddIEVudW1lcmF0ZWRUeXBlIDo6PSBOb3RhdGlvblR5cGUgfCBFbnVtZXJhdGlvbiAgWzU4XSBOb3RhdGlvblR5cGUgOjo9ICZhcG9zO05PVEFUSU9OJmFwb3M7IFMgJmFwb3M7KCZhcG9zOyBTPyBOYW1lIChTPyAmYXBvczt8JmFwb3M7IFM/IE5hbWUpKiBTPyAmYXBvczspJmFwb3M7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J1hNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT04gb3IgWE1MX0FUVFJJQlVURV9OT1RBVElPTicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJlZScgdHlwZT0neG1sRW51bWVyYXRpb25QdHIgKicgaW5mbz0ndGhlIGVudW1lcmF0aW9uIHRyZWUgYnVpbHQgd2hpbGUgcGFyc2luZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRW51bWVyYXRpb25UeXBlJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIEVudW1lcmF0aW9uIGF0dHJpYnV0ZSB0eXBlLiAgWzU5XSBFbnVtZXJhdGlvbiA6Oj0gJmFwb3M7KCZhcG9zOyBTPyBObXRva2VuIChTPyAmYXBvczt8JmFwb3M7IFM/IE5tdG9rZW4pKiBTPyAmYXBvczspJmFwb3M7ICBbIFZDOiBFbnVtZXJhdGlvbiBdIFZhbHVlcyBvZiB0aGlzIHR5cGUgbXVzdCBtYXRjaCBvbmUgb2YgdGhlIE5tdG9rZW4gdG9rZW5zIGluIHRoZSBkZWNsYXJhdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW51bWVyYXRpb25QdHInIGluZm89J3RoZSBlbnVtZXJhdGlvbiBhdHRyaWJ1dGUgdHJlZSBidWlsdCB3aGlsZSBwYXJzaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRXh0UGFyc2VkRW50JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGEgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IEFuIGV4dGVybmFsIGdlbmVyYWwgcGFyc2VkIGVudGl0eSBpcyB3ZWxsLWZvcm1lZCBpZiBpdCBtYXRjaGVzIHRoZSBwcm9kdWN0aW9uIGxhYmVsZWQgZXh0UGFyc2VkRW50LiAgWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAsIC0xIGluIGNhc2Ugb2YgZXJyb3IuIHRoZSBwYXJzZXIgY29udGV4dCBpcyBhdWdtZW50ZWQgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRXh0ZXJuYWxFbnRpdHknIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlBhcnNlIGFuIGV4dGVybmFsIGdlbmVyYWwgZW50aXR5IEFuIGV4dGVybmFsIGdlbmVyYWwgcGFyc2VkIGVudGl0eSBpcyB3ZWxsLWZvcm1lZCBpZiBpdCBtYXRjaGVzIHRoZSBwcm9kdWN0aW9uIGxhYmVsZWQgZXh0UGFyc2VkRW50LiAgWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIGVudGl0eSBpcyB3ZWxsIGZvcm1lZCwgLTEgaW4gY2FzZSBvZiBhcmdzIHByb2JsZW0gYW5kIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCB0aGUgY2h1bmsgcGVydGFpbnMgdG8nLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSd4bWxTQVhIYW5kbGVyUHRyJyBpbmZvPSd0aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCknLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcl9kYXRhJyB0eXBlPSd2b2lkIConIGluZm89J1RoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcyAocG9zc2libHkgTlVMTCknLz4KKyAgICAgIDxhcmcgbmFtZT0nZGVwdGgnIHR5cGU9J2ludCcgaW5mbz0nVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkJy8+CisgICAgICA8YXJnIG5hbWU9J2xzdCcgdHlwZT0neG1sTm9kZVB0ciAqJyBpbmZvPSd0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlRXh0ZXJuYWxJRCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5QYXJzZSBhbiBFeHRlcm5hbCBJRCBvciBhIFB1YmxpYyBJRCAgTk9URTogUHJvZHVjdGlvbnMgWzc1XSBhbmQgWzgzXSBpbnRlcmFjdCBiYWRseSBzaW5jZSBbNzVdIGNhbiBnZW5lcmF0ZSAmYXBvcztQVUJMSUMmYXBvczsgUyBQdWJpZExpdGVyYWwgUyBTeXN0ZW1MaXRlcmFsICBbNzVdIEV4dGVybmFsSUQgOjo9ICZhcG9zO1NZU1RFTSZhcG9zOyBTIFN5c3RlbUxpdGVyYWwgfCAmYXBvcztQVUJMSUMmYXBvczsgUyBQdWJpZExpdGVyYWwgUyBTeXN0ZW1MaXRlcmFsICBbODNdIFB1YmxpY0lEIDo6PSAmYXBvcztQVUJMSUMmYXBvczsgUyBQdWJpZExpdGVyYWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIGZ1bmN0aW9uIHJldHVybnMgU3lzdGVtTGl0ZXJhbCBhbmQgaW4gdGhlIHNlY29uZCBjYXNlIHB1YmxpY0lEIHJlY2VpdmVzIFB1YmlkTGl0ZXJhbCwgaXMgc3RyaWN0IGlzIG9mZiBpdCBpcyBwb3NzaWJsZSB0byByZXR1cm4gTlVMTCBhbmQgaGF2ZSBwdWJsaWNJRCBzZXQuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdwdWJsaWNJRCcgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0nYSB4bWxDaGFyKiogcmVjZWl2aW5nIFB1YmlkTGl0ZXJhbCcvPgorICAgICAgPGFyZyBuYW1lPSdzdHJpY3QnIHR5cGU9J2ludCcgaW5mbz0naW5kaWNhdGUgd2hldGhlciB3ZSBzaG91bGQgcmVzdHJpY3QgcGFyc2luZyB0byBvbmx5IHByb2R1Y3Rpb24gWzc1XSwgc2VlIE5PVEUgYmVsb3cnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUV4dGVybmFsU3Vic2V0JyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIE1hcmt1cCBkZWNsYXJhdGlvbnMgZnJvbSBhbiBleHRlcm5hbCBzdWJzZXQgIFszMF0gZXh0U3Vic2V0IDo6PSB0ZXh0RGVjbD8gZXh0U3Vic2V0RGVjbCAgWzMxXSBleHRTdWJzZXREZWNsIDo6PSAobWFya3VwZGVjbCB8IGNvbmRpdGlvbmFsU2VjdCB8IFBFUmVmZXJlbmNlIHwgUykgKjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZXh0ZXJuYWwgaWRlbnRpZmllcicvPgorICAgICAgPGFyZyBuYW1lPSdTeXN0ZW1JRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIGlkZW50aWZpZXIgKG9yIFVSTCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZUZpbGUnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSBpZiB0aGUgZmlsZSB3YXMgd2VsbGZvcm1lZCwgTlVMTCBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlSW5Ob2RlQ29udGV4dCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5QYXJzZSBhIHdlbGwtYmFsYW5jZWQgY2h1bmsgb2YgYW4gWE1MIGRvY3VtZW50IHdpdGhpbiB0aGUgY29udGV4dCAoRFRELCBuYW1lc3BhY2VzLCBldGMgLi4uKSBvZiB0aGUgZ2l2ZW4gbm9kZS4gIFRoZSBhbGxvd2VkIHNlcXVlbmNlIGZvciB0aGUgZGF0YSBpcyBhIFdlbGwgQmFsYW5jZWQgQ2h1bmsgZGVmaW5lZCBieSB0aGUgY29udGVudCBwcm9kdWN0aW9uIGluIHRoZSBYTUwgZ3JhbW1hcjogIFs0M10gY29udGVudCA6Oj0gKGVsZW1lbnQgfCBDaGFyRGF0YSB8IFJlZmVyZW5jZSB8IENEU2VjdCB8IFBJIHwgQ29tbWVudCkqPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJFcnJvcnMnIGluZm89J1hNTF9FUlJfT0sgaWYgdGhlIGNodW5rIGlzIHdlbGwgYmFsYW5jZWQsIGFuZCB0aGUgcGFyc2VyIGVycm9yIGNvZGUgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBjb250ZXh0IG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgaW5wdXQgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGFsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIGlucHV0IHN0cmluZyBsZW5ndGggaW4gYnl0ZXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdsc3QnIHR5cGU9J3htbE5vZGVQdHIgKicgaW5mbz0ndGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIHNldCBvZiBwYXJzZWQgbm9kZXMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZU1hcmt1cERlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgTWFya3VwIGRlY2xhcmF0aW9ucyAgWzI5XSBtYXJrdXBkZWNsIDo6PSBlbGVtZW50ZGVjbCB8IEF0dGxpc3REZWNsIHwgRW50aXR5RGVjbCB8IE5vdGF0aW9uRGVjbCB8IFBJIHwgQ29tbWVudCAgWyBWQzogUHJvcGVyIERlY2xhcmF0aW9uL1BFIE5lc3RpbmcgXSBQYXJhbWV0ZXItZW50aXR5IHJlcGxhY2VtZW50IHRleHQgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgd2l0aCBtYXJrdXAgZGVjbGFyYXRpb25zLiBUaGF0IGlzIHRvIHNheSwgaWYgZWl0aGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3IgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbWFya3VwIGRlY2xhcmF0aW9uIChtYXJrdXBkZWNsIGFib3ZlKSBpcyBjb250YWluZWQgaW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIGEgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UsIGJvdGggbXVzdCBiZSBjb250YWluZWQgaW4gdGhlIHNhbWUgcmVwbGFjZW1lbnQgdGV4dC4gIFsgV0ZDOiBQRXMgaW4gSW50ZXJuYWwgU3Vic2V0IF0gSW4gdGhlIGludGVybmFsIERURCBzdWJzZXQsIHBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBjYW4gb2NjdXIgb25seSB3aGVyZSBtYXJrdXAgZGVjbGFyYXRpb25zIGNhbiBvY2N1ciwgbm90IHdpdGhpbiBtYXJrdXAgZGVjbGFyYXRpb25zLiAoVGhpcyBkb2VzIG5vdCBhcHBseSB0byByZWZlcmVuY2VzIHRoYXQgb2NjdXIgaW4gZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIG9yIHRvIHRoZSBleHRlcm5hbCBzdWJzZXQuKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZU1lbW9yeScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgYnVpbGQgYSB0cmVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2FuIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgb2YgdGhlIGFycmF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VNaXNjJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBNaXNjKiBvcHRpb25hbCBmaWVsZC4gIFsyN10gTWlzYyA6Oj0gQ29tbWVudCB8IFBJIHwgIFM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VOYW1lJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBuYW1lLiAgWzRdIE5hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICZhcG9zOy4mYXBvczsgfCAmYXBvczstJmFwb3M7IHwgJmFwb3M7XyZhcG9zOyB8ICZhcG9zOzomYXBvczsgfCBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXIgIFs1XSBOYW1lIDo6PSAoTGV0dGVyIHwgJmFwb3M7XyZhcG9zOyB8ICZhcG9zOzomYXBvczspIChOYW1lQ2hhcikqICBbNl0gTmFtZXMgOjo9IE5hbWUgKCN4MjAgTmFtZSkqPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBOYW1lIHBhcnNlZCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlTmFtZXNwYWNlJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnhtbFBhcnNlTmFtZXNwYWNlOiBwYXJzZSBzcGVjaWZpYyBQSSAmYXBvczsmbHQ7P25hbWVzcGFjZSAuLi4mYXBvczsgY29uc3RydWN0cy4gIFRoaXMgaXMgd2hhdCB0aGUgb2xkZXIgeG1sLW5hbWUgV29ya2luZyBEcmFmdCBzcGVjaWZpZWQsIGEgYnVuY2ggb2Ygb3RoZXIgc3R1ZmYgbWF5IHN0aWxsIHJlbHkgb24gaXQsIHNvIHN1cHBvcnQgaXMgc3RpbGwgaGVyZSBhcyBpZiBpdCB3YXMgZGVjbGFyZWQgb24gdGhlIHJvb3Qgb2YgdGhlIFRyZWU6LSggIFRPRE86IHJlbW92ZSBmcm9tIGxpYnJhcnkgIFRvIGJlIHJlbW92ZWQgYXQgbmV4dCBkcm9wIG9mIGJpbmFyeSBjb21wYXRpYmlsaXR5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlTm10b2tlbicgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgTm10b2tlbi4gIFs3XSBObXRva2VuIDo6PSAoTmFtZUNoYXIpKyAgWzhdIE5tdG9rZW5zIDo6PSBObXRva2VuICgjeDIwIE5tdG9rZW4pKjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgTm10b2tlbiBwYXJzZWQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZU5vdGF0aW9uRGVjbCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uICBbODJdIE5vdGF0aW9uRGVjbCA6Oj0gJmFwb3M7Jmx0OyFOT1RBVElPTiZhcG9zOyBTIE5hbWUgUyAoRXh0ZXJuYWxJRCB8ICBQdWJsaWNJRCkgUz8gJmFwb3M7Jmd0OyZhcG9zOyAgSGVuY2UgdGhlcmUgaXMgYWN0dWFsbHkgMyBjaG9pY2VzOiAmYXBvcztQVUJMSUMmYXBvczsgUyBQdWJpZExpdGVyYWwgJmFwb3M7UFVCTElDJmFwb3M7IFMgUHViaWRMaXRlcmFsIFMgU3lzdGVtTGl0ZXJhbCBhbmQgJmFwb3M7U1lTVEVNJmFwb3M7IFMgU3lzdGVtTGl0ZXJhbCAgU2VlIHRoZSBOT1RFIG9uIHhtbFBhcnNlRXh0ZXJuYWxJRCgpLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZU5vdGF0aW9uVHlwZScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBOb3RhdGlvbiBhdHRyaWJ1dGUgdHlwZS4gIE5vdGU6IHRoZSBsZWFkaW5nICZhcG9zO05PVEFUSU9OJmFwb3M7IFMgcGFydCBoYXMgYWxyZWFkeSBiZWluZyBwYXJzZWQuLi4gIFs1OF0gTm90YXRpb25UeXBlIDo6PSAmYXBvcztOT1RBVElPTiZhcG9zOyBTICZhcG9zOygmYXBvczsgUz8gTmFtZSAoUz8gJmFwb3M7fCZhcG9zOyBTPyBOYW1lKSogUz8gJmFwb3M7KSZhcG9zOyAgWyBWQzogTm90YXRpb24gQXR0cmlidXRlcyBdIFZhbHVlcyBvZiB0aGlzIHR5cGUgbXVzdCBtYXRjaCBvbmUgb2YgdGhlIG5vdGF0aW9uIG5hbWVzIGluY2x1ZGVkIGluIHRoZSBkZWNsYXJhdGlvbjsgYWxsIG5vdGF0aW9uIG5hbWVzIGluIHRoZSBkZWNsYXJhdGlvbiBtdXN0IGJlIGRlY2xhcmVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW51bWVyYXRpb25QdHInIGluZm89J3RoZSBub3RhdGlvbiBhdHRyaWJ1dGUgdHJlZSBidWlsdCB3aGlsZSBwYXJzaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlUEVSZWZlcmVuY2UnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgUEVSZWZlcmVuY2UgZGVjbGFyYXRpb25zIFRoZSBlbnRpdHkgY29udGVudCBpcyBoYW5kbGVkIGRpcmVjdGx5IGJ5IHB1c2hpbmcgaXQmYXBvcztzIGNvbnRlbnQgYXMgYSBuZXcgaW5wdXQgc3RyZWFtLiAgWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJmFwb3M7JSZhcG9zOyBOYW1lICZhcG9zOzsmYXBvczsgIFsgV0ZDOiBObyBSZWN1cnNpb24gXSBBIHBhcnNlZCBlbnRpdHkgbXVzdCBub3QgY29udGFpbiBhIHJlY3Vyc2l2ZSByZWZlcmVuY2UgdG8gaXRzZWxmLCBlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4gIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSBJbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4gaW50ZXJuYWwgRFREIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQgd2l0aCAmcXVvdDtzdGFuZGFsb25lPSZhcG9zO3llcyZhcG9zOyZxdW90OywgLi4uICAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdC4uLiAgWyBWQzogRW50aXR5IERlY2xhcmVkIF0gSW4gYSBkb2N1bWVudCB3aXRoIGFuIGV4dGVybmFsIHN1YnNldCBvciBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMgd2l0aCAmcXVvdDtzdGFuZGFsb25lPSZhcG9zO25vJmFwb3M7JnF1b3Q7LCAuLi4gIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0Li4uICBbIFdGQzogSW4gRFREIF0gUGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzIG1heSBvbmx5IGFwcGVhciBpbiB0aGUgRFRELiBOT1RFOiBtaXNsZWFkaW5nIGJ1dCB0aGlzIGlzIGhhbmRsZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlUEknIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIFByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb24uICBbMTZdIFBJIDo6PSAmYXBvczsmbHQ7PyZhcG9zOyBQSVRhcmdldCAoUyAoQ2hhciogLSAoQ2hhciogJmFwb3M7PyZndDsmYXBvczsgQ2hhciopKSk/ICZhcG9zOz8mZ3Q7JmFwb3M7ICBUaGUgcHJvY2Vzc2luZyBpcyB0cmFuc2ZlcmVkIHRvIFNBWCBvbmNlIHBhcnNlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VQSVRhcmdldCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSB0aGUgbmFtZSBvZiBhIFBJICBbMTddIFBJVGFyZ2V0IDo6PSBOYW1lIC0gKCgmYXBvcztYJmFwb3M7IHwgJmFwb3M7eCZhcG9zOykgKCZhcG9zO00mYXBvczsgfCAmYXBvczttJmFwb3M7KSAoJmFwb3M7TCZhcG9zOyB8ICZhcG9zO2wmYXBvczspKTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgUElUYXJnZXQgbmFtZSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlUHViaWRMaXRlcmFsJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBwdWJsaWMgbGl0ZXJhbCAgWzEyXSBQdWJpZExpdGVyYWwgOjo9ICZhcG9zOyZxdW90OyZhcG9zOyBQdWJpZENoYXIqICZhcG9zOyZxdW90OyZhcG9zOyB8ICZxdW90OyZhcG9zOyZxdW90OyAoUHViaWRDaGFyIC0gJnF1b3Q7JmFwb3M7JnF1b3Q7KSogJnF1b3Q7JmFwb3M7JnF1b3Q7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBQdWJpZExpdGVyYWwgcGFyc2VkIG9yIE5VTEwuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlUXVvdGVkU3RyaW5nJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlBhcnNlIGFuZCByZXR1cm4gYSBzdHJpbmcgYmV0d2VlbiBxdW90ZXMgb3IgZG91YmxlcXVvdGVzICBUT0RPOiBEZXByZWNhdGVkLCB0byAgYmUgcmVtb3ZlZCBhdCBuZXh0IGRyb3Agb2YgYmluYXJ5IGNvbXBhdGliaWxpdHk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZyBwYXJzZXIgb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VSZWZlcmVuY2UnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYW5kIGhhbmRsZSBlbnRpdHkgcmVmZXJlbmNlcyBpbiBjb250ZW50LCBkZXBlbmRpbmcgb24gdGhlIFNBWCBpbnRlcmZhY2UsIHRoaXMgbWF5IGVuZC11cCBpbiBhIGNhbGwgdG8gY2hhcmFjdGVyKCkgaWYgdGhpcyBpcyBhIENoYXJSZWYsIGEgcHJlZGVmaW5lZCBlbnRpdHksIGlmIHRoZXJlIGlzIG5vIHJlZmVyZW5jZSgpIGNhbGxiYWNrLiBvciBpZiB0aGUgcGFyc2VyIHdhcyBhc2tlZCB0byBzd2l0Y2ggdG8gdGhhdCBtb2RlLiAgWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWY8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VTRERlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgdGhlIFhNTCBzdGFuZGFsb25lIGRlY2xhcmF0aW9uICBbMzJdIFNERGVjbCA6Oj0gUyAmYXBvcztzdGFuZGFsb25lJmFwb3M7IEVxICgoJnF1b3Q7JmFwb3M7JnF1b3Q7ICgmYXBvczt5ZXMmYXBvczsgfCAmYXBvcztubyZhcG9zOykgJnF1b3Q7JmFwb3M7JnF1b3Q7KSB8ICgmYXBvczsmcXVvdDsmYXBvczsgKCZhcG9zO3llcyZhcG9zOyB8ICZhcG9zO25vJmFwb3M7KSZhcG9zOyZxdW90OyZhcG9zOykpICBbIFZDOiBTdGFuZGFsb25lIERvY3VtZW50IERlY2xhcmF0aW9uIF0gVE9ETyBUaGUgc3RhbmRhbG9uZSBkb2N1bWVudCBkZWNsYXJhdGlvbiBtdXN0IGhhdmUgdGhlIHZhbHVlICZxdW90O25vJnF1b3Q7IGlmIGFueSBleHRlcm5hbCBtYXJrdXAgZGVjbGFyYXRpb25zIGNvbnRhaW4gZGVjbGFyYXRpb25zIG9mOiAtIGF0dHJpYnV0ZXMgd2l0aCBkZWZhdWx0IHZhbHVlcywgaWYgZWxlbWVudHMgdG8gd2hpY2ggdGhlc2UgYXR0cmlidXRlcyBhcHBseSBhcHBlYXIgaW4gdGhlIGRvY3VtZW50IHdpdGhvdXQgc3BlY2lmaWNhdGlvbnMgb2YgdmFsdWVzIGZvciB0aGVzZSBhdHRyaWJ1dGVzLCBvciAtIGVudGl0aWVzIChvdGhlciB0aGFuIGFtcCwgbHQsIGd0LCBhcG9zLCBxdW90KSwgaWYgcmVmZXJlbmNlcyB0byB0aG9zZSBlbnRpdGllcyBhcHBlYXIgaW4gdGhlIGRvY3VtZW50LCBvciAtIGF0dHJpYnV0ZXMgd2l0aCB2YWx1ZXMgc3ViamVjdCB0byBub3JtYWxpemF0aW9uLCB3aGVyZSB0aGUgYXR0cmlidXRlIGFwcGVhcnMgaW4gdGhlIGRvY3VtZW50IHdpdGggYSB2YWx1ZSB3aGljaCB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdCBvZiBub3JtYWxpemF0aW9uLCBvciAtIGVsZW1lbnQgdHlwZXMgd2l0aCBlbGVtZW50IGNvbnRlbnQsIGlmIHdoaXRlIHNwYWNlIG9jY3VycyBkaXJlY3RseSB3aXRoaW4gYW55IGluc3RhbmNlIG9mIHRob3NlIHR5cGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHN0YW5kYWxvbmU9JnF1b3Q7eWVzJnF1b3Q7IDAgaWYgc3RhbmRhbG9uZT0mcXVvdDtubyZxdW90OyAtMiBpZiBzdGFuZGFsb25lIGF0dHJpYnV0ZSBpcyBtaXNzaW5nIG9yIGludmFsaWQgKEEgc3RhbmRhbG9uZSB2YWx1ZSBvZiAtMiBtZWFucyB0aGF0IHRoZSBYTUwgZGVjbGFyYXRpb24gd2FzIGZvdW5kLCBidXQgbm8gdmFsdWUgd2FzIHNwZWNpZmllZCBmb3IgdGhlIHN0YW5kYWxvbmUgYXR0cmlidXRlKS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VTdGFydFRhZycgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYSBzdGFydCBvZiB0YWcgZWl0aGVyIGZvciBydWxlIGVsZW1lbnQgb3IgRW1wdHlFbGVtZW50LiBJbiBib3RoIGNhc2Ugd2UgZG9uJmFwb3M7dCBwYXJzZSB0aGUgdGFnIGNsb3NpbmcgY2hhcnMuICBbNDBdIFNUYWcgOjo9ICZhcG9zOyZsdDsmYXBvczsgTmFtZSAoUyBBdHRyaWJ1dGUpKiBTPyAmYXBvczsmZ3Q7JmFwb3M7ICBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0gTm8gYXR0cmlidXRlIG5hbWUgbWF5IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBzdGFydC10YWcgb3IgZW1wdHktZWxlbWVudCB0YWcuICBbNDRdIEVtcHR5RWxlbVRhZyA6Oj0gJmFwb3M7Jmx0OyZhcG9zOyBOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICZhcG9zOy8mZ3Q7JmFwb3M7ICBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0gTm8gYXR0cmlidXRlIG5hbWUgbWF5IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBzdGFydC10YWcgb3IgZW1wdHktZWxlbWVudCB0YWcuICBXaXRoIG5hbWVzcGFjZTogIFtOUyA4XSBTVGFnIDo6PSAmYXBvczsmbHQ7JmFwb3M7IFFOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICZhcG9zOyZndDsmYXBvczsgIFtOUyAxMF0gRW1wdHlFbGVtZW50IDo6PSAmYXBvczsmbHQ7JmFwb3M7IFFOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICZhcG9zOy8mZ3Q7JmFwb3M7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWUgcGFyc2VkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlU3lzdGVtTGl0ZXJhbCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgTGl0ZXJhbCAgWzExXSBTeXN0ZW1MaXRlcmFsIDo6PSAoJmFwb3M7JnF1b3Q7JmFwb3M7IFteJnF1b3Q7XSogJmFwb3M7JnF1b3Q7JmFwb3M7KSB8ICgmcXVvdDsmYXBvczsmcXVvdDsgW14mYXBvcztdKiAmcXVvdDsmYXBvczsmcXVvdDspPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBTeXN0ZW1MaXRlcmFsIHBhcnNlZCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlVGV4dERlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGRlY2xhcmF0aW9uIGhlYWRlciBmb3IgZXh0ZXJuYWwgZW50aXRpZXMgIFs3N10gVGV4dERlY2wgOjo9ICZhcG9zOyZsdDs/eG1sJmFwb3M7IFZlcnNpb25JbmZvPyBFbmNvZGluZ0RlY2wgUz8gJmFwb3M7PyZndDsmYXBvczs8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VVUkknIGZpbGU9J3VyaScgbW9kdWxlPSd1cmknPgorICAgICAgPGluZm8+UGFyc2UgYW4gVVJJIGJhc2VkIG9uIFJGQyAzOTg2ICBVUkktcmVmZXJlbmNlID0gWyBhYnNvbHV0ZVVSSSB8IHJlbGF0aXZlVVJJIF0gWyAmcXVvdDsjJnF1b3Q7IGZyYWdtZW50IF08L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFVSSVB0cicgaW5mbz0nYSBuZXdseSBidWlsdCB4bWxVUklQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJJIHN0cmluZyB0byBhbmFseXplJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VVUklSYXcnIGZpbGU9J3VyaScgbW9kdWxlPSd1cmknPgorICAgICAgPGluZm8+UGFyc2UgYW4gVVJJIGJ1dCBhbGxvd3MgdG8ga2VlcCBpbnRhY3QgdGhlIG9yaWdpbmFsIGZyYWdtZW50cy4gIFVSSS1yZWZlcmVuY2UgPSBVUkkgLyByZWxhdGl2ZS1yZWY8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFVSSVB0cicgaW5mbz0nYSBuZXdseSBidWlsdCB4bWxVUklQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgVVJJIHN0cmluZyB0byBhbmFseXplJy8+CisgICAgICA8YXJnIG5hbWU9J3JhdycgdHlwZT0naW50JyBpbmZvPSdpZiAxIHVuZXNjYXBpbmcgb2YgVVJJIHBpZWNlcyBhcmUgZGlzYWJsZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZVVSSVJlZmVyZW5jZScgZmlsZT0ndXJpJyBtb2R1bGU9J3VyaSc+CisgICAgICA8aW5mbz5QYXJzZSBhbiBVUkkgcmVmZXJlbmNlIHN0cmluZyBiYXNlZCBvbiBSRkMgMzk4NiBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcyBvZiB0aGUgQHVyaSBzdHJ1Y3R1cmUgIFVSSS1yZWZlcmVuY2UgPSBVUkkgLyByZWxhdGl2ZS1yZWY8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvciB0aGUgZXJyb3IgY29kZScvPgorICAgICAgPGFyZyBuYW1lPSd1cmknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ncG9pbnRlciB0byBhbiBVUkkgc3RydWN0dXJlJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgc3RyaW5nIHRvIGFuYWx5emUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZVZlcnNpb25JbmZvJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIHRoZSBYTUwgdmVyc2lvbi4gIFsyNF0gVmVyc2lvbkluZm8gOjo9IFMgJmFwb3M7dmVyc2lvbiZhcG9zOyBFcSAoJmFwb3M7IFZlcnNpb25OdW0gJmFwb3M7IHwgJnF1b3Q7IFZlcnNpb25OdW0gJnF1b3Q7KSAgWzI1XSBFcSA6Oj0gUz8gJmFwb3M7PSZhcG9zOyBTPzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgdmVyc2lvbiBzdHJpbmcsIGUuZy4gJnF1b3Q7MS4wJnF1b3Q7Jy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlVmVyc2lvbk51bScgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSB0aGUgWE1MIHZlcnNpb24gdmFsdWUuICBbMjZdIFZlcnNpb25OdW0gOjo9ICZhcG9zOzEuJmFwb3M7IFswLTldKyAgSW4gcHJhY3RpY2UgYWxsb3cgWzAtOV0uWzAtOV0rIGF0IHRoYXQgbGV2ZWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZyBnaXZpbmcgdGhlIFhNTCB2ZXJzaW9uIG51bWJlciwgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZVhNTERlY2wnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGRlY2xhcmF0aW9uIGhlYWRlciAgWzIzXSBYTUxEZWNsIDo6PSAmYXBvczsmbHQ7P3htbCZhcG9zOyBWZXJzaW9uSW5mbyBFbmNvZGluZ0RlY2w/IFNERGVjbD8gUz8gJmFwb3M7PyZndDsmYXBvczs8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VyQWRkTm9kZUluZm8nIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+SW5zZXJ0IG5vZGUgaW5mbyByZWNvcmQgaW50byB0aGUgc29ydGVkIHNlcXVlbmNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdpbmZvJyB0eXBlPSdjb25zdCB4bWxQYXJzZXJOb2RlSW5mb1B0cicgaW5mbz0nYSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlckVycm9yJyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSdlcnJvcic+CisgICAgICA8aW5mbz5EaXNwbGF5IGFuZCBmb3JtYXQgYW4gZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0Jy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VyRmluZE5vZGVJbmZvJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPkZpbmQgdGhlIHBhcnNlciBub2RlIGluZm8gc3RydWN0IGZvciBhIGdpdmVuIG5vZGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbFBhcnNlck5vZGVJbmZvIConIGluZm89J2FuIHhtbFBhcnNlck5vZGVJbmZvIGJsb2NrIHBvaW50ZXIgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J2NvbnN0IHhtbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSdjb25zdCB4bWxOb2RlUHRyJyBpbmZvPSdhbiBYTUwgbm9kZSB3aXRoaW4gdGhlIHRyZWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz54bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCA6IEZpbmQgdGhlIGluZGV4IHRoYXQgdGhlIGluZm8gcmVjb3JkIGZvciB0aGUgZ2l2ZW4gbm9kZSBpcyBvciBzaG91bGQgYmUgYXQgaW4gYSBzb3J0ZWQgc2VxdWVuY2U8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89J2EgbG9uZyBpbmRpY2F0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmVjb3JkJy8+CisgICAgICA8YXJnIG5hbWU9J3NlcScgdHlwZT0nY29uc3QgeG1sUGFyc2VyTm9kZUluZm9TZXFQdHInIGluZm89J2Egbm9kZSBpbmZvIHNlcXVlbmNlIHBvaW50ZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0nY29uc3QgeG1sTm9kZVB0cicgaW5mbz0nYW4gWE1MIG5vZGUgcG9pbnRlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlckdldERpcmVjdG9yeScgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+bG9va3VwIHRoZSBkaXJlY3RvcnkgZm9yIHRoYXQgZmlsZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY2hhciAqJyBpbmZvPSdhIG5ldyBhbGxvY2F0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeSwgb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIHBhdGggdG8gYSBmaWxlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+WzY5XSBQRVJlZmVyZW5jZSA6Oj0gJmFwb3M7JSZhcG9zOyBOYW1lICZhcG9zOzsmYXBvczsgIFsgV0ZDOiBObyBSZWN1cnNpb24gXSBBIHBhcnNlZCBlbnRpdHkgbXVzdCBub3QgY29udGFpbiBhIHJlY3Vyc2l2ZSByZWZlcmVuY2UgdG8gaXRzZWxmLCBlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4gIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSBJbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4gaW50ZXJuYWwgRFREIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQgd2l0aCAmcXVvdDtzdGFuZGFsb25lPSZhcG9zO3llcyZhcG9zOyZxdW90OywgLi4uICAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdC4uLiAgWyBWQzogRW50aXR5IERlY2xhcmVkIF0gSW4gYSBkb2N1bWVudCB3aXRoIGFuIGV4dGVybmFsIHN1YnNldCBvciBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMgd2l0aCAmcXVvdDtzdGFuZGFsb25lPSZhcG9zO25vJmFwb3M7JnF1b3Q7LCAuLi4gIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0Li4uICBbIFdGQzogSW4gRFREIF0gUGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzIG1heSBvbmx5IGFwcGVhciBpbiB0aGUgRFRELiBOT1RFOiBtaXNsZWFkaW5nIGJ1dCB0aGlzIGlzIGhhbmRsZWQuICBBIFBFUmVmZXJlbmNlIG1heSBoYXZlIGJlZW4gZGV0ZWN0ZWQgaW4gdGhlIGN1cnJlbnQgaW5wdXQgc3RyZWFtIHRoZSBoYW5kbGluZyBpcyBkb25lIGFjY29yZGluZ2x5IHRvIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjZW50cHJvYyBpLmUuIC0gSW5jbHVkZWQgaW4gbGl0ZXJhbCBpbiBlbnRpdHkgdmFsdWVzIC0gSW5jbHVkZWQgYXMgUGFyYW1ldGVyIEVudGl0eSByZWZlcmVuY2Ugd2l0aGluIERURHM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRPRE86IFJlbW92ZSwgbm93IGRlcHJlY2F0ZWQgLi4uIHRoZSB0ZXN0IGlzIGRvbmUgZGlyZWN0bHkgaW4gdGhlIGNvbnRlbnQgcGFyc2luZyByb3V0aW5lcy4gIFs2N10gUmVmZXJlbmNlIDo6PSBFbnRpdHlSZWYgfCBDaGFyUmVmICBbNjhdIEVudGl0eVJlZiA6Oj0gJmFwb3M7JmFtcDsmYXBvczsgTmFtZSAmYXBvczs7JmFwb3M7ICBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0gdGhlIE5hbWUgZ2l2ZW4gaW4gdGhlIGVudGl0eSByZWZlcmVuY2UgbXVzdCBtYXRjaCB0aGF0IGluIGFuIGVudGl0eSBkZWNsYXJhdGlvbiwgZXhjZXB0IHRoYXQgd2VsbC1mb3JtZWQgZG9jdW1lbnRzIG5lZWQgbm90IGRlY2xhcmUgYW55IG9mIHRoZSBmb2xsb3dpbmcgZW50aXRpZXM6IGFtcCwgbHQsIGd0LCBhcG9zLCBxdW90LiAgWyBXRkM6IFBhcnNlZCBFbnRpdHkgXSBBbiBlbnRpdHkgcmVmZXJlbmNlIG11c3Qgbm90IGNvbnRhaW4gdGhlIG5hbWUgb2YgYW4gdW5wYXJzZWQgZW50aXR5ICBbNjZdIENoYXJSZWYgOjo9ICZhcG9zOyZhbXA7IyZhcG9zOyBbMC05XSsgJmFwb3M7OyZhcG9zOyB8ICZhcG9zOyZhbXA7I3gmYXBvczsgWzAtOWEtZkEtRl0rICZhcG9zOzsmYXBvczsgIEEgUEVSZWZlcmVuY2UgbWF5IGhhdmUgYmVlbiBkZXRlY3RlZCBpbiB0aGUgY3VycmVudCBpbnB1dCBzdHJlYW0gdGhlIGhhbmRsaW5nIGlzIGRvbmUgYWNjb3JkaW5nbHkgdG8gaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNlbnRwcm9jPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgZm9yIHRoZSBpbnB1dCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdmZCcgdHlwZT0naW50JyBpbmZvPSdhIGZpbGUgZGVzY3JpcHRvciBudW1iZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J3RoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIG9mIGEgRklMRSAqIGJ1ZmZlcmVkIEMgSS9PPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlJyB0eXBlPSdGSUxFIConIGluZm89J2EgRklMRSonLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J3RoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZScgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+Q3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2luZyBvZiBhIGZpbGUgSWYgZmlsZW5hbWUgaXMgJnF1b3Q7LSZhcG9zOyB0aGVuIHdlIHVzZSBzdGRpbiBhcyB0aGUgaW5wdXQuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIERvIGFuIGVuY29kaW5nIGNoZWNrIGlmIGVuYyA9PSBYTUxfQ0hBUl9FTkNPRElOR19OT05FPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBDIHN0cmluZyBjb250YWluaW5nIHRoZSBVUkkgb3IgZmlsZW5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmcnIGluZm89J3RoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+UmVnaXN0ZXJzIGEgY2FsbGJhY2sgZm9yIFVSSSBpbnB1dCBmaWxlIGhhbmRsaW5nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYycgaW5mbz0ndGhlIG9sZCB2YWx1ZSBvZiB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J2Z1bmMnIHR5cGU9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jJyBpbmZvPSdmdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYycgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSdnbG9iYWxzJz4KKyAgICAgIDxpbmZvPlNpZ25hdHVyZSBmb3IgdGhlIGZ1bmN0aW9uIGRvaW5nIHRoZSBsb29rdXAgZm9yIGEgc3VpdGFibGUgaW5wdXQgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8gYW4gVVJJLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRCdWZmZXJQdHInIGluZm89J3RoZSBuZXcgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIE5VTEwgaWYgbm8gbWV0aG9kIHdhcyBmb3VuZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBVUkkgdG8gcmVhZCBmcm9tJy8+CisgICAgICA8YXJnIG5hbWU9J2VuYycgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSd0aGUgcmVxdWVzdGVkIHNvdXJjZSBlbmNvZGluZycvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8nIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgZm9yIHRoZSBpbnB1dCBmcm9tIGFuIEkvTyBoYW5kbGVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdpb3JlYWQnIHR5cGU9J3htbElucHV0UmVhZENhbGxiYWNrJyBpbmZvPSdhbiBJL08gcmVhZCBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2Nsb3NlJyB0eXBlPSd4bWxJbnB1dENsb3NlQ2FsbGJhY2snIGluZm89J2FuIEkvTyBjbG9zZSBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJL08gaGFuZGxlcicvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0ndGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbScgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+Q3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2luZyBmb3IgdGhlIGlucHV0IGZyb20gYSBtZW1vcnkgYXJlYS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlcklucHV0QnVmZmVyUHRyJyBpbmZvPSd0aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J21lbScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVtb3J5IGlucHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGJsb2NrJy8+CisgICAgICA8YXJnIG5hbWU9J2VuYycgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSd0aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGZvciB0aGUgaW5wdXQgZnJvbSBhbiBpbW11dGFibGUgbWVtb3J5IGFyZWEuIFRoaXMgd2lsbCBub3QgY29weSB0aGUgbWVtb3J5IGFyZWEgdG8gdGhlIGJ1ZmZlciwgYnV0IHRoZSBtZW1vcnkgaXMgZXhwZWN0ZWQgdG8gYmUgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHBhcnNpbmcsIHRoaXMgaXMgdXNlZnVsIGZvciBleGFtcGxlIHdoZW4gdXNpbmcgbW1hcCZhcG9zO2VkIGZpbGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIG5ldyBwYXJzZXIgaW5wdXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdtZW0nIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG1lbW9yeSBpbnB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5ndGggb2YgdGhlIG1lbW9yeSBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0ndGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkdyb3cgdXAgdGhlIGNvbnRlbnQgb2YgdGhlIGlucHV0IGJ1ZmZlciwgdGhlIG9sZCBkYXRhIGFyZSBwcmVzZXJ2ZWQgVGhpcyByb3V0aW5lIGhhbmRsZSB0aGUgSTE4TiB0cmFuc2NvZGluZyB0byBpbnRlcm5hbCBVVEYtOCBUaGlzIHJvdXRpbmUgaXMgdXNlZCB3aGVuIG9wZXJhdGluZyB0aGUgcGFyc2VyIGluIG5vcm1hbCAocHVsbCkgbW9kZSAgVE9ETzogb25lIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSBvbmUgZXh0cmEgY29weSBieSBjb3B5aW5nIGRpcmVjdGx5IG9udG8gaW4tJmd0O2J1ZmZlciBvciBpbi0mZ3Q7cmF3PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgY2hhcnMgcmVhZCBhbmQgc3RvcmVkIGluIHRoZSBidWZmZXIsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2luJyB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0nYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J2luZGljYXRpdmUgdmFsdWUgb2YgdGhlIGFtb3VudCBvZiBjaGFycyB0byByZWFkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5QdXNoIHRoZSBjb250ZW50IG9mIHRoZSBhcnJ5IGluIHRoZSBpbnB1dCBidWZmZXIgVGhpcyByb3V0aW5lIGhhbmRsZSB0aGUgSTE4TiB0cmFuc2NvZGluZyB0byBpbnRlcm5hbCBVVEYtOCBUaGlzIGlzIHVzZWQgd2hlbiBvcGVyYXRpbmcgdGhlIHBhcnNlciBpbiBwcm9ncmVzc2l2ZSAocHVzaCkgbW9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBjaGFycyByZWFkIGFuZCBzdG9yZWQgaW4gdGhlIGJ1ZmZlciwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0naW4nIHR5cGU9J3htbFBhcnNlcklucHV0QnVmZmVyUHRyJyBpbmZvPSdhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGFycmF5LicvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYW4gY2hhciBhcnJheScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCcgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGluZm8+UmVmcmVzaCB0aGUgY29udGVudCBvZiB0aGUgaW5wdXQgYnVmZmVyLCB0aGUgb2xkIGRhdGEgYXJlIGNvbnNpZGVyZWQgY29uc3VtZWQgVGhpcyByb3V0aW5lIGhhbmRsZSB0aGUgSTE4TiB0cmFuc2NvZGluZyB0byBpbnRlcm5hbCBVVEYtODwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGNoYXJzIHJlYWQgYW5kIHN0b3JlZCBpbiB0aGUgYnVmZmVyLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0neG1sUGFyc2VySW5wdXRCdWZmZXJQdHInIGluZm89J2EgYnVmZmVyZWQgcGFyc2VyIGlucHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSdpbmRpY2F0aXZlIHZhbHVlIG9mIHRoZSBhbW91bnQgb2YgY2hhcnMgdG8gcmVhZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbFBhcnNlcklucHV0RGVhbGxvY2F0ZScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5DYWxsYmFjayBmb3IgZnJlZWluZyBzb21lIHBhcnNlciBpbnB1dCBhbGxvY2F0aW9ucy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBzdHJpbmcgdG8gZGVhbGxvY2F0ZScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlcklucHV0R3JvdycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIGluY3JlYXNlIHRoZSBpbnB1dCBmb3IgdGhlIHBhcnNlci4gSXQgdHJpZXMgdG8gcHJlc2VydmUgcG9pbnRlcnMgdG8gdGhlIGlucHV0IGJ1ZmZlciwgYW5kIGtlZXAgYWxyZWFkeSByZWFkIGRhdGE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiB4bWxDaGFycyByZWFkLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGluZGljYXRlIHRoZSBlbmQgb2YgdGhpcyBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0naW4nIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGlucHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSdhbiBpbmRpY2F0aXZlIHNpemUgZm9yIHRoZSBsb29rYWhlYWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJJbnB1dFJlYWQnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+VGhpcyBmdW5jdGlvbiByZWZyZXNoIHRoZSBpbnB1dCBmb3IgdGhlIHBhcnNlci4gSXQgZG9lc24mYXBvczt0IHRyeSB0byBwcmVzZXJ2ZSBwb2ludGVycyB0byB0aGUgaW5wdXQgYnVmZmVyLCBhbmQgZGlzY2FyZCBhbHJlYWR5IHJlYWQgZGF0YTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIHhtbENoYXJzIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaW5kaWNhdGUgdGhlIGVuZCBvZiB0aGlzIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgaW5wdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J2FuIGluZGljYXRpdmUgc2l6ZSBmb3IgdGhlIGxvb2thaGVhZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlcklucHV0U2hyaW5rJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB1c2VkIGlucHV0IGZvciB0aGUgcGFyc2VyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdpbicgdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgaW5wdXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0JyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSdlcnJvcic+CisgICAgICA8aW5mbz5EaXNwbGF5cyBjdXJyZW50IGNvbnRleHQgd2l0aGluIHRoZSBpbnB1dCBjb250ZW50IGZvciBlcnJvciB0cmFja2luZzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdpbnB1dCcgdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J2FuIHhtbFBhcnNlcklucHV0UHRyIGlucHV0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VyUHJpbnRGaWxlSW5mbycgZmlsZT0neG1sZXJyb3InIG1vZHVsZT0nZXJyb3InPgorICAgICAgPGluZm8+RGlzcGxheXMgdGhlIGFzc29jaWF0ZWQgZmlsZSBhbmQgbGluZSBpbmZvcm1hdGlvbnMgZm9yIHRoZSBjdXJyZW50IGlucHV0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2lucHV0JyB0eXBlPSd4bWxQYXJzZXJJbnB1dFB0cicgaW5mbz0nYW4geG1sUGFyc2VySW5wdXRQdHIgaW5wdXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJWYWxpZGl0eUVycm9yJyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSdlcnJvcic+CisgICAgICA8aW5mbz5EaXNwbGF5IGFuZCBmb3JtYXQgYW4gdmFsaWRpdHkgZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0Jy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nJyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSdlcnJvcic+CisgICAgICA8aW5mbz5EaXNwbGF5IGFuZCBmb3JtYXQgYSB2YWxpZGl0eSB3YXJuaW5nIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQgZXh0cmEgcGFyYW1ldGVycy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdtc2cnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdCcvPgorICAgICAgPGFyZyBuYW1lPScuLi4nIHR5cGU9Jy4uLicgaW5mbz0nZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlcldhcm5pbmcnIGZpbGU9J3htbGVycm9yJyBtb2R1bGU9J2Vycm9yJz4KKyAgICAgIDxpbmZvPkRpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0Jy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGF0aFRvVVJJJyBmaWxlPSd1cmknIG1vZHVsZT0ndXJpJz4KKyAgICAgIDxpbmZvPkNvbnN0cnVjdHMgYW4gVVJJIGV4cHJlc3NpbmcgdGhlIGV4aXN0aW5nIHBhdGg8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXcgVVJJLCBvciBhIGR1cGxpY2F0ZSBvZiB0aGUgcGF0aCBwYXJhbWV0ZXIgaWYgdGhlIGNvbnN0cnVjdGlvbiBmYWlscy4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXR1cm5lZCBzdHJpbmcuIElmIHRoZXJlIGlzIGluc3VmZmljaWVudCBtZW1vcnkgYXZhaWxhYmxlLCBvciB0aGUgYXJndW1lbnQgaXMgTlVMTCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncGF0aCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcmVzb3VyY2UgbG9jYXRvciBpbiBhIGZpbGVzeXN0ZW0gbm90YXRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXR0ZXJuRnJvbVJvb3QnIGZpbGU9J3BhdHRlcm4nIG1vZHVsZT0ncGF0dGVybic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgaWYgdGhlIHBhdHRlcm4gbXVzdCBiZSBsb29rZWQgYXQgZnJvbSB0aGUgcm9vdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlLCAwIGlmIGZhbHNlIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbXAnIHR5cGU9J3htbFBhdHRlcm5QdHInIGluZm89J3RoZSBwcmVjb21waWxlZCBwYXR0ZXJuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGF0dGVybkdldFN0cmVhbUN0eHQnIGZpbGU9J3BhdHRlcm4nIG1vZHVsZT0ncGF0dGVybic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IGEgc3RyZWFtaW5nIGNvbnRleHQgZm9yIHRoYXQgcGF0dGVybiBVc2UgeG1sRnJlZVN0cmVhbUN0eHQgdG8gZnJlZSB0aGUgY29udGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFN0cmVhbUN0eHRQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZScvPgorICAgICAgPGFyZyBuYW1lPSdjb21wJyB0eXBlPSd4bWxQYXR0ZXJuUHRyJyBpbmZvPSd0aGUgcHJlY29tcGlsZWQgcGF0dGVybicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhdHRlcm5NYXRjaCcgZmlsZT0ncGF0dGVybicgbW9kdWxlPSdwYXR0ZXJuJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UZXN0IHdoZXRoZXIgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgcGF0dGVybjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIGl0IG1hdGNoZXMsIDAgaWYgaXQgZG9lc24mYXBvczt0IGFuZCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29tcCcgdHlwZT0neG1sUGF0dGVyblB0cicgaW5mbz0ndGhlIHByZWNvbXBpbGVkIHBhdHRlcm4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGF0dGVybk1heERlcHRoJyBmaWxlPSdwYXR0ZXJuJyBtb2R1bGU9J3BhdHRlcm4nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHRoZSBtYXhpbXVtIGRlcHRoIHJlYWNoYWJsZSBieSBhIHBhdHRlcm48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTIgaWYgbm8gbGltaXQgKHVzaW5nIC8vKSwgb3RoZXJ3aXNlIHRoZSBkZXB0aCwgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY29tcCcgdHlwZT0neG1sUGF0dGVyblB0cicgaW5mbz0ndGhlIHByZWNvbXBpbGVkIHBhdHRlcm4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXR0ZXJuTWluRGVwdGgnIGZpbGU9J3BhdHRlcm4nIG1vZHVsZT0ncGF0dGVybic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgdGhlIG1pbmltdW0gZGVwdGggcmVhY2hhYmxlIGJ5IGEgcGF0dGVybiwgMCBtZWFuIHRoZSAvIG9yIC4gYXJlIHBhcnQgb2YgdGhlIHNldC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBlcnJvciBvdGhlcndpc2UgdGhlIGRlcHRoLCcvPgorICAgICAgPGFyZyBuYW1lPSdjb21wJyB0eXBlPSd4bWxQYXR0ZXJuUHRyJyBpbmZvPSd0aGUgcHJlY29tcGlsZWQgcGF0dGVybicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhdHRlcm5TdHJlYW1hYmxlJyBmaWxlPSdwYXR0ZXJuJyBtb2R1bGU9J3BhdHRlcm4nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIGlmIHRoZSBwYXR0ZXJuIGlzIHN0cmVhbWFibGUgaS5lLiB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCgpIHNob3VsZCB3b3JrLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHN0cmVhbWFibGUsIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjb21wJyB0eXBlPSd4bWxQYXR0ZXJuUHRyJyBpbmZvPSd0aGUgcHJlY29tcGlsZWQgcGF0dGVybicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhdHRlcm5jb21waWxlJyBmaWxlPSdwYXR0ZXJuJyBtb2R1bGU9J3BhdHRlcm4nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvbXBpbGUgYSBwYXR0ZXJuLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGF0dGVyblB0cicgaW5mbz0ndGhlIGNvbXBpbGVkIGZvcm0gb2YgdGhlIHBhdHRlcm4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3BhdHRlcm4nIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHBhdHRlcm4gdG8gY29tcGlsZScvPgorICAgICAgPGFyZyBuYW1lPSdkaWN0JyB0eXBlPSd4bWxEaWN0IConIGluZm89J2FuIG9wdGlvbmFsIGRpY3Rpb25hcnkgZm9yIGludGVybmVkIHN0cmluZ3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmxhZ3MnIHR5cGU9J2ludCcgaW5mbz0nY29tcGlsYXRpb24gZmxhZ3MsIHNlZSB4bWxQYXR0ZXJuRmxhZ3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlcycgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0ndGhlIHByZWZpeCBkZWZpbml0aW9ucywgYXJyYXkgb2YgW1VSSSwgcHJlZml4XSBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPlNldCBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgZW5hYmxpbmcgcGVkYW50aWMgd2FybmluZ3MuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBzdWJzdGl0dXRpb24sIDEgZm9yIHN1YnN0aXR1dGlvbi4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdpbnQnIGluZm89J2ludCAwIG9yIDEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQb3BJbnB1dCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz54bWxQb3BJbnB1dDogdGhlIGN1cnJlbnQgaW5wdXQgcG9pbnRlZCBieSBjdHh0LSZndDtpbnB1dCBjYW1lIHRvIGFuIGVuZCBwb3AgaXQgYW5kIHJldHVybiB0aGUgbmV4dCBjaGFyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhcicgaW5mbz0ndGhlIGN1cnJlbnQgeG1sQ2hhciBpbiB0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUG9wSW5wdXRDYWxsYmFja3MnIGZpbGU9J3htbElPJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkNsZWFyIHRoZSB0b3AgaW5wdXQgY2FsbGJhY2sgZnJvbSB0aGUgaW5wdXQgc3RhY2suIHRoaXMgaW5jbHVkZXMgdGhlIGNvbXBpbGVkLWluIEkvTy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBpbnB1dCBjYWxsYmFjayByZWdpc3RlcmVkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUHJldmlvdXNFbGVtZW50U2libGluZycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GaW5kcyB0aGUgZmlyc3QgY2xvc2VzdCBwcmV2aW91cyBzaWJsaW5nIG9mIHRoZSBub2RlIHdoaWNoIGlzIGFuIGVsZW1lbnQgbm9kZS4gTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbiB0aGUgVzNDIERPTSBlbGVtZW50IHRyYXZlcnNhbCBzcGVjIHNpbmNlIHdlIGRvbiZhcG9zO3QgaGF2ZSBiYWNrIHJlZmVyZW5jZSBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBwcmV2aW91cyBlbGVtZW50IHNpYmxpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBjdXJyZW50IG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQcmludFVSSScgZmlsZT0ndXJpJyBtb2R1bGU9J3VyaSc+CisgICAgICA8aW5mbz5QcmludHMgdGhlIFVSSSBpbiB0aGUgc3RyZWFtIEBzdHJlYW0uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmVhbScgdHlwZT0nRklMRSAqJyBpbmZvPSdhIEZJTEUqIGZvciB0aGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J3VyaScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSdwb2ludGVyIHRvIGFuIHhtbFVSSScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFB1c2hJbnB1dCcgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz54bWxQdXNoSW5wdXQ6IHN3aXRjaCB0byBhIG5ldyBpbnB1dCBzdHJlYW0gd2hpY2ggaXMgc3RhY2tlZCBvbiB0b3Agb2YgdGhlIHByZXZpb3VzIG9uZShzKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBlcnJvciBvciB0aGUgaW5kZXggaW4gdGhlIGlucHV0IHN0YWNrJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdpbnB1dCcgdHlwZT0neG1sUGFyc2VySW5wdXRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgaW5wdXQgZnJhZ21lbnQgKGVudGl0eSwgWE1MIGZyYWdtZW50IC4uLikuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUk11dGV4TG9jaycgZmlsZT0ndGhyZWFkcycgbW9kdWxlPSd0aHJlYWRzJz4KKyAgICAgIDxpbmZvPnhtbFJNdXRleExvY2soKSBpcyB1c2VkIHRvIGxvY2sgYSBsaWJ4bWwyIHRva2VuX3IuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3RvaycgdHlwZT0neG1sUk11dGV4UHRyJyBpbmZvPSd0aGUgcmVlbnRyYW50IG11dGV4Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUk11dGV4VW5sb2NrJyBmaWxlPSd0aHJlYWRzJyBtb2R1bGU9J3RocmVhZHMnPgorICAgICAgPGluZm8+eG1sUk11dGV4VW5sb2NrKCkgaXMgdXNlZCB0byB1bmxvY2sgYSBsaWJ4bWwyIHRva2VuX3IuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3RvaycgdHlwZT0neG1sUk11dGV4UHRyJyBpbmZvPSd0aGUgcmVlbnRyYW50IG11dGV4Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVhZERvYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVhZEZkJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIGFuZCBidWlsZCBhIHRyZWUuIE5PVEUgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwgbm90IGJlIGNsb3NlZCB3aGVuIHRoZSByZWFkZXIgaXMgY2xvc2VkIG9yIHJlc2V0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmQnIHR5cGU9J2ludCcgaW5mbz0nYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3InLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRGaWxlJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0gb3IgdGhlIG5ldHdvcmsuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIGZpbGUgb3IgVVJMJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVhZElPJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBkb2N1bWVudCBmcm9tIEkvTyBmdW5jdGlvbnMgYW5kIHNvdXJjZSBhbmQgYnVpbGQgYSB0cmVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0naW9yZWFkJyB0eXBlPSd4bWxJbnB1dFJlYWRDYWxsYmFjaycgaW5mbz0nYW4gSS9PIHJlYWQgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jbG9zZScgdHlwZT0neG1sSW5wdXRDbG9zZUNhbGxiYWNrJyBpbmZvPSdhbiBJL08gY2xvc2UgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gSS9PIGhhbmRsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRNZW1vcnknIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhIGNoYXIgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRlckZvckRvYycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4geG1sdGV4dFJlYWRlciBmb3IgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVhZGVyRm9yRmQnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGFuIHhtbHRleHRSZWFkZXIgZm9yIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIE5PVEUgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwgbm90IGJlIGNsb3NlZCB3aGVuIHRoZSByZWFkZXIgaXMgY2xvc2VkIG9yIHJlc2V0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdmZCcgdHlwZT0naW50JyBpbmZvPSdhbiBvcGVuIGZpbGUgZGVzY3JpcHRvcicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVhZGVyRm9yRmlsZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZmlsZSBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIHRoZSBuZXR3b3JrLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgbmV3IHJlYWRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZmlsZSBvciBVUkwnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWFkZXJGb3JJTycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4geG1sdGV4dFJlYWRlciBmb3IgYW4gWE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgbmV3IHJlYWRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2lvcmVhZCcgdHlwZT0neG1sSW5wdXRSZWFkQ2FsbGJhY2snIGluZm89J2FuIEkvTyByZWFkIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J2lvY2xvc2UnIHR5cGU9J3htbElucHV0Q2xvc2VDYWxsYmFjaycgaW5mbz0nYW4gSS9PIGNsb3NlIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J2lvY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2FuIEkvTyBoYW5kbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWFkZXJGb3JNZW1vcnknIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGFuIHhtbHRleHRSZWFkZXIgZm9yIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQuIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhIGNoYXIgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRlck5ld0RvYycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQuIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEByZWFkZXIgeG1sVGV4dFJlYWRlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSdhbiBYTUwgcmVhZGVyJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWFkZXJOZXdGZCcgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGFuIFhNTCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yLiBOT1RFIHRoYXQgdGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsIG5vdCBiZSBjbG9zZWQgd2hlbiB0aGUgcmVhZGVyIGlzIGNsb3NlZCBvciByZXNldC4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQHJlYWRlciB4bWxUZXh0UmVhZGVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J2FuIFhNTCByZWFkZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nZmQnIHR5cGU9J2ludCcgaW5mbz0nYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3InLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRlck5ld0ZpbGUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQHJlYWRlciB4bWxUZXh0UmVhZGVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J2FuIFhNTCByZWFkZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBmaWxlIG9yIFVSTCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRlck5ld0lPJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldHVwIGFuIHhtbHRleHRSZWFkZXIgdG8gcGFyc2UgYW4gWE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlLiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0nYW4gWE1MIHJlYWRlcicvPgorICAgICAgPGFyZyBuYW1lPSdpb3JlYWQnIHR5cGU9J3htbElucHV0UmVhZENhbGxiYWNrJyBpbmZvPSdhbiBJL08gcmVhZCBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2Nsb3NlJyB0eXBlPSd4bWxJbnB1dENsb3NlQ2FsbGJhY2snIGluZm89J2FuIEkvTyBjbG9zZSBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSdhbiBJL08gaGFuZGxlcicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVhZGVyTmV3TWVtb3J5JyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldHVwIGFuIHhtbHRleHRSZWFkZXIgdG8gcGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC4gVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQHJlYWRlciB4bWxUZXh0UmVhZGVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J2FuIFhNTCByZWFkZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhIGNoYXIgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRlck5ld1dhbGtlcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGEgcHJlcGFyc2VkIFhNTCBkb2N1bWVudC4gVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEByZWFkZXIgeG1sVGV4dFJlYWRlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSdhbiBYTUwgcmVhZGVyJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIHByZXBhcnNlZCBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWRlcldhbGtlcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4geG1sdGV4dFJlYWRlciBmb3IgYSBwcmVwYXJzZWQgZG9jdW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgbmV3IHJlYWRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIHByZXBhcnNlZCBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbFJlYWxsb2NGdW5jJyBmaWxlPSd4bWxtZW1vcnknIG1vZHVsZT0neG1sbWVtb3J5Jz4KKyAgICAgIDxpbmZvPlNpZ25hdHVyZSBmb3IgYSByZWFsbG9jKCkgaW1wbGVtZW50YXRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgbmV3bHkgcmVhbGxvY2F0ZWQgYmxvY2sgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdtZW0nIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gYWxyZWFkeSBhbGxvY2F0ZWQgYmxvY2sgb2YgbWVtb3J5Jy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J3NpemVfdCcgaW5mbz0ndGhlIG5ldyBzaXplIHJlcXVlc3RlZCBpbiBieXRlcycvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlYWxsb2NMb2MnIGZpbGU9J3htbG1lbW9yeScgbW9kdWxlPSd4bWxtZW1vcnknPgorICAgICAgPGluZm8+YSByZWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LicvPgorICAgICAgPGFyZyBuYW1lPSdwdHInIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGluaXRpYWwgbWVtb3J5IGJsb2NrIHBvaW50ZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0nc2l6ZV90JyBpbmZvPSdhbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLicvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlIG5hbWUgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdsaW5lJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsaW5lIG51bWJlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlY29uY2lsaWF0ZU5zJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoYXQgYWxsIHRoZSBuYW1lc3BhY2VzIGRlY2xhcmVkIHdpdGhpbiB0aGUgZ2l2ZW4gdHJlZSBhcmUgcHJvcGVybHkgZGVjbGFyZWQuIFRoaXMgaXMgbmVlZGVkIGZvciBleGFtcGxlIGFmdGVyIENvcHkgb3IgQ3V0IGFuZCB0aGVuIHBhc3RlIG9wZXJhdGlvbnMuIFRoZSBzdWJ0cmVlIG1heSBzdGlsbCBob2xkIHBvaW50ZXJzIHRvIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgb3V0c2lkZSB0aGUgc3VidHJlZSBvciBpbnZhbGlkL21hc2tlZC4gQXMgbXVjaCBhcyBwb3NzaWJsZSB0aGUgZnVuY3Rpb24gdHJ5IHRvIHJldXNlIHRoZSBleGlzdGluZyBuYW1lc3BhY2VzIGZvdW5kIGluIHRoZSBuZXcgZW52aXJvbm1lbnQuIElmIG5vdCBwb3NzaWJsZSB0aGUgbmV3IG5hbWVzcGFjZXMgYXJlIHJlZGVjbGFyZWQgb24gQHRyZWUgYXQgdGhlIHRvcCBvZiB0aGUgZ2l2ZW4gc3VidHJlZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGNyZWF0ZWQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSd0cmVlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUgZGVmaW5pbmcgdGhlIHN1YnRyZWUgdG8gcmVjb25jaWxpYXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVjb3ZlckRvYycgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLiBJbiB0aGUgY2FzZSB0aGUgZG9jdW1lbnQgaXMgbm90IFdlbGwgRm9ybWVkLCBhIGF0dGVtcHQgdG8gYnVpbGQgYSB0cmVlIGlzIHRyaWVkIGFueXdheTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUgb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVjb3ZlckZpbGUnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIEluIHRoZSBjYXNlIHRoZSBkb2N1bWVudCBpcyBub3QgV2VsbCBGb3JtZWQsIGl0IGF0dGVtcHRzIHRvIGJ1aWxkIGEgdHJlZSBhbnl3YXk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlY292ZXJNZW1vcnknIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgYmxvY2sgYW5kIGJ1aWxkIGEgdHJlZS4gSW4gdGhlIGNhc2UgdGhlIGRvY3VtZW50IGlzIG5vdCBXZWxsIEZvcm1lZCwgYW4gYXR0ZW1wdCB0byBidWlsZCBhIHRyZWUgaXMgdHJpZWQgYW55d2F5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2FuIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5Jy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgb2YgdGhlIGFycmF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sUmVnRXhlY0NhbGxiYWNrcycgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DYWxsYmFjayBmdW5jdGlvbiB3aGVuIGRvaW5nIGEgdHJhbnNpdGlvbiBpbiB0aGUgYXV0b21hdGE8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhlYycgdHlwZT0neG1sUmVnRXhlY0N0eHRQdHInIGluZm89J3RoZSByZWd1bGFyIGV4cHJlc3Npb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSd0b2tlbicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgY3VycmVudCB0b2tlbiBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJhbnNkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J3RyYW5zaXRpb24gZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdpbnB1dGRhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0naW5wdXQgZGF0YScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlZ0V4ZWNFcnJJbmZvJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkV4dHJhY3QgZXJyb3IgaW5mb3JtYXRpb25zIGZyb20gdGhlIHJlZ2V4cCBleGVjdXRpb24sIHRoZSBwYXJhbWV0ZXIgQHN0cmluZyB3aWxsIGJlIHVwZGF0ZWQgd2l0aCB0aGUgdmFsdWUgcHVzaGVkIGFuZCBub3QgYWNjZXB0ZWQsIHRoZSBwYXJhbWV0ZXIgQHZhbHVlcyBtdXN0IHBvaW50IHRvIGFuIGFycmF5IG9mIEBuYnZhbCBzdHJpbmcgcG9pbnRlcnMgb24gcmV0dXJuIG5idmFsIHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIHN0cmluZ3MgaW4gdGhhdCBzdGF0ZSBhbmQgdGhlIEB2YWx1ZXMgYXJyYXkgd2lsbCBiZSB1cGRhdGVkIHdpdGggdGhlbS4gVGhlIHN0cmluZyB2YWx1ZXM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nd2lsbCBiZSBmcmVlZCB3aXRoIHRoZSBAZXhlYyBjb250ZXh0IGFuZCBkb24mYXBvczt0IG5lZWQgdG8gYmUgZGVhbGxvY2F0ZWQuICBSZXR1cm5zOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdleGVjJyB0eXBlPSd4bWxSZWdFeGVjQ3R4dFB0cicgaW5mbz0nYSByZWdleHAgZXhlY3V0aW9uIGNvbnRleHQgZ2VuZXJhdGluZyBhbiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdzdHJpbmcnIHR5cGU9J2NvbnN0IHhtbENoYXIgKionIGluZm89J3JldHVybiB2YWx1ZSBmb3IgdGhlIGVycm9yIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSduYnZhbCcgdHlwZT0naW50IConIGluZm89J3BvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBhY2NlcHRlZCB2YWx1ZXMgSU4vT1VUJy8+CisgICAgICA8YXJnIG5hbWU9J25ibmVnJyB0eXBlPSdpbnQgKicgaW5mbz0ncmV0dXJuIG51bWJlciBvZiBuZWdhdGl2ZSB0cmFuc2l0aW9ucycvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZXMnIHR5cGU9J3htbENoYXIgKionIGluZm89J3BvaW50ZXIgdG8gdGhlIGFycmF5IG9mIGFjY2VwdGFibGUgdmFsdWVzJy8+CisgICAgICA8YXJnIG5hbWU9J3Rlcm1pbmFsJyB0eXBlPSdpbnQgKicgaW5mbz0ncmV0dXJuIHZhbHVlIGlmIHRoaXMgd2FzIGEgdGVybWluYWwgc3RhdGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWdFeGVjTmV4dFZhbHVlcycgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FeHRyYWN0IGluZm9ybWF0aW9ucyBmcm9tIHRoZSByZWdleHAgZXhlY3V0aW9uLCB0aGUgcGFyYW1ldGVyIEB2YWx1ZXMgbXVzdCBwb2ludCB0byBhbiBhcnJheSBvZiBAbmJ2YWwgc3RyaW5nIHBvaW50ZXJzIG9uIHJldHVybiBuYnZhbCB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBwb3NzaWJsZSBzdHJpbmdzIGluIHRoYXQgc3RhdGUgYW5kIHRoZSBAdmFsdWVzIGFycmF5IHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZW0uIFRoZSBzdHJpbmcgdmFsdWVzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3dpbGwgYmUgZnJlZWQgd2l0aCB0aGUgQGV4ZWMgY29udGV4dCBhbmQgZG9uJmFwb3M7dCBuZWVkIHRvIGJlIGRlYWxsb2NhdGVkLiAgUmV0dXJuczogMCBpbiBjYXNlIG9mIHN1Y2Nlc3Mgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhlYycgdHlwZT0neG1sUmVnRXhlY0N0eHRQdHInIGluZm89J2EgcmVnZXhwIGV4ZWN1dGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25idmFsJyB0eXBlPSdpbnQgKicgaW5mbz0ncG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGFjY2VwdGVkIHZhbHVlcyBJTi9PVVQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmJuZWcnIHR5cGU9J2ludCAqJyBpbmZvPSdyZXR1cm4gbnVtYmVyIG9mIG5lZ2F0aXZlIHRyYW5zaXRpb25zJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlcycgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0ncG9pbnRlciB0byB0aGUgYXJyYXkgb2YgYWNjZXB0YWJsZSB2YWx1ZXMnLz4KKyAgICAgIDxhcmcgbmFtZT0ndGVybWluYWwnIHR5cGU9J2ludCAqJyBpbmZvPSdyZXR1cm4gdmFsdWUgaWYgdGhpcyB3YXMgYSB0ZXJtaW5hbCBzdGF0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlZ0V4ZWNQdXNoU3RyaW5nJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlB1c2ggb25lIGlucHV0IHRva2VuIGluIHRoZSBleGVjdXRpb24gY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZSByZWdleHAgcmVhY2hlZCBhIGZpbmFsIHN0YXRlLCAwIGlmIG5vbi1maW5hbCwgYW5kIGEgbmVnYXRpdmUgdmFsdWUgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhlYycgdHlwZT0neG1sUmVnRXhlY0N0eHRQdHInIGluZm89J2EgcmVnZXhwIGV4ZWN1dGlvbiBjb250ZXh0IG9yIE5VTEwgdG8gaW5kaWNhdGUgdGhlIGVuZCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZyB0b2tlbiBpbnB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2RhdGEgYXNzb2NpYXRlZCB0byB0aGUgdG9rZW4gdG8gcmV1c2UgaW4gY2FsbGJhY2tzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVnRXhlY1B1c2hTdHJpbmcyJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlB1c2ggb25lIGlucHV0IHRva2VuIGluIHRoZSBleGVjdXRpb24gY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZSByZWdleHAgcmVhY2hlZCBhIGZpbmFsIHN0YXRlLCAwIGlmIG5vbi1maW5hbCwgYW5kIGEgbmVnYXRpdmUgdmFsdWUgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhlYycgdHlwZT0neG1sUmVnRXhlY0N0eHRQdHInIGluZm89J2EgcmVnZXhwIGV4ZWN1dGlvbiBjb250ZXh0IG9yIE5VTEwgdG8gaW5kaWNhdGUgdGhlIGVuZCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZmlyc3Qgc3RyaW5nIHRva2VuIGlucHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc2Vjb25kIHN0cmluZyB0b2tlbiBpbnB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2RhdGEgYXNzb2NpYXRlZCB0byB0aGUgdG9rZW4gdG8gcmV1c2UgaW4gY2FsbGJhY2tzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVnRnJlZUV4ZWNDdHh0JyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBldmF1bGF0aW9uIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2V4ZWMnIHR5cGU9J3htbFJlZ0V4ZWNDdHh0UHRyJyBpbmZvPSdhIHJlZ3VsYXIgZXhwcmVzc2lvbiBldmF1bGF0aW9uIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWdGcmVlUmVnZXhwJyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgYSByZWdleHA8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVnZXhwJyB0eXBlPSd4bWxSZWdleHBQdHInIGluZm89J3RoZSByZWdleHAnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWdOZXdFeGVjQ3R4dCcgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5CdWlsZCBhIGNvbnRleHQgdXNlZCBmb3IgcHJvZ3Jlc3NpdmUgZXZhbHVhdGlvbiBvZiBhIHJlZ2V4cC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFJlZ0V4ZWNDdHh0UHRyJyBpbmZvPSd0aGUgbmV3IGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29tcCcgdHlwZT0neG1sUmVnZXhwUHRyJyBpbmZvPSdhIHByZWNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbicvPgorICAgICAgPGFyZyBuYW1lPSdjYWxsYmFjaycgdHlwZT0neG1sUmVnRXhlY0NhbGxiYWNrcycgaW5mbz0nYSBjYWxsYmFjayBmdW5jdGlvbiB1c2VkIGZvciBoYW5kbGluZyBwcm9ncmVzc2VzIGluIHRoZSBhdXRvbWF0YSBtYXRjaGluZyBwaGFzZScvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgY2FsbGJhY2sgaW4gdGhpcyBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVnZXhwQ29tcGlsZScgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5QYXJzZXMgYSByZWd1bGFyIGV4cHJlc3Npb24gY29uZm9ybWluZyB0byBYTUwgU2NoZW1hcyBQYXJ0IDIgRGF0YXR5cGUgQXBwZW5kaXggRiBhbmQgYnVpbGRzIGFuIGF1dG9tYXRhIHN1aXRhYmxlIGZvciB0ZXN0aW5nIHN0cmluZ3MgYWdhaW5zdCB0aGF0IHJlZ3VsYXIgZXhwcmVzc2lvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUmVnZXhwUHRyJyBpbmZvPSd0aGUgY29tcGlsZWQgZXhwcmVzc2lvbiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVnZXhwJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgcmVndWxhciBleHByZXNzaW9uIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlZ2V4cEV4ZWMnIGZpbGU9J3htbHJlZ2V4cCcgbW9kdWxlPSd4bWxyZWdleHAnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgaWYgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBnZW5lcmF0ZXMgdGhlIHZhbHVlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgaXQgbWF0Y2hlcywgMCBpZiBub3QgYW5kIGEgbmVnYXRpdmUgdmFsdWUgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjb21wJyB0eXBlPSd4bWxSZWdleHBQdHInIGluZm89J3RoZSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgdG8gY2hlY2sgYWdhaW5zdCB0aGUgcmVndWxhciBleHByZXNzaW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVnZXhwSXNEZXRlcm1pbmlzdCcgZmlsZT0neG1scmVnZXhwJyBtb2R1bGU9J3htbHJlZ2V4cCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayBpZiB0aGUgcmVndWxhciBleHByZXNzaW9uIGlzIGRldGVybWluaXN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgaXQgeWVzLCAwIGlmIG5vdCBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbXAnIHR5cGU9J3htbFJlZ2V4cFB0cicgaW5mbz0ndGhlIGNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlZ2V4cFByaW50JyBmaWxlPSd4bWxyZWdleHAnIG1vZHVsZT0neG1scmVnZXhwJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByaW50IHRoZSBjb250ZW50IG9mIHRoZSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0cHV0JyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBmaWxlIGZvciB0aGUgb3V0cHV0IGRlYnVnJy8+CisgICAgICA8YXJnIG5hbWU9J3JlZ2V4cCcgdHlwZT0neG1sUmVnZXhwUHRyJyBpbmZvPSd0aGUgY29tcGlsZWQgcmVnZXhwJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyJyBmaWxlPSdlbmNvZGluZycgbW9kdWxlPSdlbmNvZGluZyc+CisgICAgICA8aW5mbz5SZWdpc3RlciB0aGUgY2hhciBlbmNvZGluZyBoYW5kbGVyLCBzdXJwcmlzaW5nLCBpc24mYXBvczt0IGl0ID88L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0naGFuZGxlcicgdHlwZT0neG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cicgaW5mbz0ndGhlIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciBibG9jaycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5SZWdpc3RlcnMgdGhlIGRlZmF1bHQgY29tcGlsZWQtaW4gSS9PIGhhbmRsZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcycgZmlsZT0neG1sSU8nIG1vZHVsZT0neG1sSU8nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVnaXN0ZXJzIHRoZSBkZWZhdWx0IGNvbXBpbGVkLWluIEkvTyBoYW5kbGVycy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QnkgZGVmYXVsdCwgbGlieG1sIHN1Ym1pdHMgSFRUUCBvdXRwdXQgcmVxdWVzdHMgdXNpbmcgdGhlICZxdW90O1BVVCZxdW90OyBtZXRob2QuIENhbGxpbmcgdGhpcyBtZXRob2QgY2hhbmdlcyB0aGUgSFRUUCBvdXRwdXQgbWV0aG9kIHRvIHVzZSB0aGUgJnF1b3Q7UE9TVCZxdW90OyBtZXRob2QgaW5zdGVhZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8aW5mbz5SZWdpc3RlciBhIG5ldyBzZXQgb2YgSS9PIGNhbGxiYWNrIGZvciBoYW5kbGluZyBwYXJzZXIgaW5wdXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSByZWdpc3RlcmVkIGhhbmRsZXIgbnVtYmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nbWF0Y2hGdW5jJyB0eXBlPSd4bWxJbnB1dE1hdGNoQ2FsbGJhY2snIGluZm89J3RoZSB4bWxJbnB1dE1hdGNoQ2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nb3BlbkZ1bmMnIHR5cGU9J3htbElucHV0T3BlbkNhbGxiYWNrJyBpbmZvPSd0aGUgeG1sSW5wdXRPcGVuQ2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZEZ1bmMnIHR5cGU9J3htbElucHV0UmVhZENhbGxiYWNrJyBpbmZvPSd0aGUgeG1sSW5wdXRSZWFkQ2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nY2xvc2VGdW5jJyB0eXBlPSd4bWxJbnB1dENsb3NlQ2FsbGJhY2snIGluZm89J3RoZSB4bWxJbnB1dENsb3NlQ2FsbGJhY2snLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWdpc3Rlck5vZGVEZWZhdWx0JyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+UmVnaXN0ZXJzIGEgY2FsbGJhY2sgZm9yIG5vZGUgY3JlYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFJlZ2lzdGVyTm9kZUZ1bmMnIGluZm89J3RoZSBvbGQgdmFsdWUgb2YgdGhlIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdmdW5jJyB0eXBlPSd4bWxSZWdpc3Rlck5vZGVGdW5jJyBpbmZvPSdmdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgUmVnaXN0ZXJOb2RlRnVuYycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbFJlZ2lzdGVyTm9kZUZ1bmMnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz5TaWduYXR1cmUgZm9yIHRoZSByZWdpc3RyYXRpb24gY2FsbGJhY2sgb2YgYSBjcmVhdGVkIG5vZGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzJyBmaWxlPSd4bWxJTycgbW9kdWxlPSd4bWxJTyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWdpc3RlciBhIG5ldyBzZXQgb2YgSS9PIGNhbGxiYWNrIGZvciBoYW5kbGluZyBvdXRwdXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSByZWdpc3RlcmVkIGhhbmRsZXIgbnVtYmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nbWF0Y2hGdW5jJyB0eXBlPSd4bWxPdXRwdXRNYXRjaENhbGxiYWNrJyBpbmZvPSd0aGUgeG1sT3V0cHV0TWF0Y2hDYWxsYmFjaycvPgorICAgICAgPGFyZyBuYW1lPSdvcGVuRnVuYycgdHlwZT0neG1sT3V0cHV0T3BlbkNhbGxiYWNrJyBpbmZvPSd0aGUgeG1sT3V0cHV0T3BlbkNhbGxiYWNrJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlRnVuYycgdHlwZT0neG1sT3V0cHV0V3JpdGVDYWxsYmFjaycgaW5mbz0ndGhlIHhtbE91dHB1dFdyaXRlQ2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nY2xvc2VGdW5jJyB0eXBlPSd4bWxPdXRwdXRDbG9zZUNhbGxiYWNrJyBpbmZvPSd0aGUgeG1sT3V0cHV0Q2xvc2VDYWxsYmFjaycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlbGF4TkdDbGVhbnVwVHlwZXMnIGZpbGU9J3JlbGF4bmcnIG1vZHVsZT0ncmVsYXhuZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2xlYW51cCB0aGUgZGVmYXVsdCBTY2hlbWFzIHR5cGUgbGlicmFyeSBhc3NvY2lhdGVkIHRvIFJlbGF4Tkc8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWxheE5HRHVtcCcgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGEgUmVsYXhORyBzdHJ1Y3R1cmUgYmFjazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIGZpbGUgb3V0cHV0Jy8+CisgICAgICA8YXJnIG5hbWU9J3NjaGVtYScgdHlwZT0neG1sUmVsYXhOR1B0cicgaW5mbz0nYSBzY2hlbWEgc3RydWN0dXJlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR0R1bXBUcmVlJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgdGhlIHRyYW5zZm9ybWVkIFJlbGF4TkcgdHJlZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0cHV0JyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBmaWxlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdzY2hlbWEnIHR5cGU9J3htbFJlbGF4TkdQdHInIGluZm89J2Egc2NoZW1hIHN0cnVjdHVyZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlbGF4TkdGcmVlJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRlYWxsb2NhdGUgYSBSZWxheE5HIHN0cnVjdHVyZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2NoZW1hJyB0eXBlPSd4bWxSZWxheE5HUHRyJyBpbmZvPSdhIHNjaGVtYSBzdHJ1Y3R1cmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQnIGZpbGU9J3JlbGF4bmcnIG1vZHVsZT0ncmVsYXhuZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlbGF4TkdGcmVlVmFsaWRDdHh0JyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEN0eHRQdHInIGluZm89J3RoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR0dldFBhcnNlckVycm9ycycgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGNhbGxiYWNrIGluZm9ybWF0aW9uIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSB2YWxpZGF0aW9uIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCAwIG90aGVyd2lzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUmVsYXhOR1BhcnNlckN0eHRQdHInIGluZm89J2EgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2VycicgdHlwZT0neG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIConIGluZm89J3RoZSBlcnJvciBjYWxsYmFjayByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nd2FybicgdHlwZT0neG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMgKicgaW5mbz0ndGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqKicgaW5mbz0nY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzIHJlc3VsdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlbGF4TkdHZXRWYWxpZEVycm9ycycgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGVycm9yIGFuZCB3YXJuaW5nIGNhbGxiYWNrIGluZm9ybWF0aW9uczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpbiBjYXNlIG9mIGVycm9yIGFuZCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRDdHh0UHRyJyBpbmZvPSdhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlcnInIHR5cGU9J3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyAqJyBpbmZvPSd0aGUgZXJyb3IgZnVuY3Rpb24gcmVzdWx0Jy8+CisgICAgICA8YXJnIG5hbWU9J3dhcm4nIHR5cGU9J3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIConIGluZm89J3RoZSB3YXJuaW5nIGZ1bmN0aW9uIHJlc3VsdCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKionIGluZm89J3RoZSBmdW5jdGlvbnMgY29udGV4dCByZXN1bHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWxheE5HSW5pdFR5cGVzJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkluaXRpbGl6ZSB0aGUgZGVmYXVsdCB0eXBlIGxpYnJhcmllcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQnIGZpbGU9J3JlbGF4bmcnIG1vZHVsZT0ncmVsYXhuZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGFuIFhNTCBSZWxheE5HcyBwYXJzZXIgY29udGV4dCBmb3IgdGhhdCBkb2N1bWVudC4gTm90ZTogc2luY2UgdGhlIHByb2Nlc3Mgb2YgY29tcGlsaW5nIGEgUmVsYXhORyBzY2hlbWFzIG1vZGlmaWVzIHRoZSBkb2N1bWVudCwgdGhlIEBkb2MgcGFyYW1ldGVyIGlzIGR1cGxpY2F0ZWQgaW50ZXJuYWxseS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIHByZXBhcnNlZCBkb2N1bWVudCB0cmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQnIGZpbGU9J3JlbGF4bmcnIG1vZHVsZT0ncmVsYXhuZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGFuIFhNTCBSZWxheE5HcyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IG1lbW9yeSBidWZmZXIgZXhwZWN0ZWQgdG8gY29udGFpbiBhbiBYTUwgUmVsYXhOR3MgZmlsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5IGNvbnRhaW5pbmcgdGhlIHNjaGVtYXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCcgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZmlsZS9yZXNvdXJjZSBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBSZWxheE5HcyBmaWxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUmVsYXhOR1BhcnNlckN0eHRQdHInIGluZm89J3RoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJMJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCcgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHZhbGlkYXRpb24gY29udGV4dCBiYXNlZCBvbiB0aGUgZ2l2ZW4gc2NoZW1hPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxSZWxheE5HVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdzY2hlbWEnIHR5cGU9J3htbFJlbGF4TkdQdHInIGluZm89J2EgcHJlY29tcGlsZWQgWE1MIFJlbGF4TkdzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR1BhcnNlJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGEgc2NoZW1hIGRlZmluaXRpb24gcmVzb3VyY2UgYW5kIGJ1aWxkIGFuIGludGVybmFsIFhNTCBTaGVtYSBzdHJ1dHVyZSB3aGljaCBjYW4gYmUgdXNlZCB0byB2YWxpZGF0ZSBpbnN0YW5jZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxSZWxheE5HUHRyJyBpbmZvPSd0aGUgaW50ZXJuYWwgWE1MIFJlbGF4Tkcgc3RydWN0dXJlIGJ1aWx0IGZyb20gdGhlIHJlc291cmNlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cicgaW5mbz0nYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMnIGZpbGU9J3JlbGF4bmcnIG1vZHVsZT0ncmVsYXhuZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHZhbGlkYXRpb24gY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cicgaW5mbz0nYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXJyJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMnIGluZm89J3RoZSBlcnJvciBjYWxsYmFjaycvPgorICAgICAgPGFyZyBuYW1lPSd3YXJuJyB0eXBlPSd4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYycgaW5mbz0ndGhlIHdhcm5pbmcgY2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2NvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSBwYXJzaW5nIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUmVsYXhOR1BhcnNlckN0eHRQdHInIGluZm89J2EgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2Vycm9yJyB0eXBlPSd4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBpbmZvPSd0aGUgZXJyb3IgY2FsbGJhY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J2NvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFJlbGF4TkdTZXRWYWxpZEVycm9ycycgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgdGhlIGVycm9yIGFuZCB3YXJuaW5nIGNhbGxiYWNrIGluZm9ybWF0aW9uczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRDdHh0UHRyJyBpbmZvPSdhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlcnInIHR5cGU9J3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYycgaW5mbz0ndGhlIGVycm9yIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3dhcm4nIHR5cGU9J3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jJyBpbmZvPSd0aGUgd2FybmluZyBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGZ1bmN0aW9ucyBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycycgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgdGhlIHN0cnVjdHVyZWQgZXJyb3IgY2FsbGJhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cicgaW5mbz0nYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2Vycm9yJyB0eXBlPSd4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBpbmZvPSd0aGUgc3RydWN0dXJlZCBlcnJvciBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGZ1bmN0aW9ucyBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR1ZhbGlkYXRlRG9jJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlZhbGlkYXRlIGEgZG9jdW1lbnQgdHJlZSBpbiBtZW1vcnkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIGRvY3VtZW50IGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEN0eHRQdHInIGluZm89J2EgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIHBhcnNlZCBkb2N1bWVudCB0cmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQnIGZpbGU9J3JlbGF4bmcnIG1vZHVsZT0ncmVsYXhuZyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VmFsaWRhdGUgYSBmdWxsIHN1YnRyZWUgd2hlbiB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCgpIHJldHVybmVkIDAgYW5kIHRoZSBjb250ZW50IG9mIHRoZSBub2RlIGhhcyBiZWVuIGV4cGFuZGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIG5vIHZhbGlkYXRpb24gcHJvYmxlbSB3YXMgZm91bmQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhbiBlbGVtZW50IGluc3RhbmNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCcgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qb3AgdGhlIGVsZW1lbnQgZW5kIGZyb20gdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBzdGFjay48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEN0eHRQdHInIGluZm89J3RoZSBSZWxheE5HIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhbiBlbGVtZW50IGluc3RhbmNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmNoZWNrIHRoZSBDRGF0YSBwYXJzZWQgZm9yIHZhbGlkYXRpb24gaW4gdGhlIGN1cnJlbnQgc3RhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIC0xIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxSZWxheE5HVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgUmVsYXhORyB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdzb21lIGNoYXJhY3RlciBkYXRhIHJlYWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5naHQgb2YgdGhlIGRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCcgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5QdXNoIGEgbmV3IGVsZW1lbnQgc3RhcnQgb24gdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBzdGFjay48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgaWYgdmFsaWRhdGluZyB0aGUgZWxlbWVudCByZXF1aXJlcyBhIGZ1bGwgbm9kZSwgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFJlbGF4TkdWYWxpZEN0eHRQdHInIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J2EgZG9jdW1lbnQgaW5zdGFuY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYW4gZWxlbWVudCBpbnN0YW5jZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYycgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhIFJlbGF4LU5HIHZhbGlkYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbXNnJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBtZXNzYWdlJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYycgZmlsZT0ncmVsYXhuZycgbW9kdWxlPSdyZWxheG5nJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TaWduYXR1cmUgb2YgYSB3YXJuaW5nIGNhbGxiYWNrIGZyb20gYSBSZWxheC1ORyB2YWxpZGF0aW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZScvPgorICAgICAgPGFyZyBuYW1lPScuLi4nIHR5cGU9Jy4uLicgaW5mbz0nZXh0cmEgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVsYXhQYXJzZXJTZXRGbGFnJyBmaWxlPSdyZWxheG5nJyBtb2R1bGU9J3JlbGF4bmcnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNlbWkgcHJpdmF0ZSBmdW5jdGlvbiB1c2VkIHRvIHBhc3MgaW5mb3JtYXRpb25zIHRvIGEgcGFyc2VyIGNvbnRleHQgd2hpY2ggYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUmVsYXhOR1BhcnNlckZsYWcgLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUmVsYXhOR1BhcnNlckN0eHRQdHInIGluZm89J2EgUmVsYXhORyBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdmbGFncycgdHlwZT0naW50JyBpbmZvPSdhIHNldCBvZiBmbGFncyB2YWx1ZXMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZW1vdmVJRCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGluZm8+UmVtb3ZlIHRoZSBnaXZlbiBhdHRyaWJ1dGUgZnJvbSB0aGUgSUQgdGFibGUgbWFpbnRhaW5lZCBpbnRlcm5hbGx5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpZiB0aGUgbG9va3VwIGZhaWxlZCBhbmQgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdhdHRyJyB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSd0aGUgYXR0cmlidXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVtb3ZlUHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlVubGluayBhbmQgZnJlZSBvbmUgYXR0cmlidXRlLCBhbGwgdGhlIGNvbnRlbnQgaXMgZnJlZWQgdG9vIE5vdGUgdGhpcyBkb2VzbiZhcG9zO3Qgd29yayBmb3IgbmFtZXNwYWNlIGRlZmluaXRpb24gYXR0cmlidXRlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sQXR0clB0cicgaW5mbz0nYW4gYXR0cmlidXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVtb3ZlUmVmJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5SZW1vdmUgdGhlIGdpdmVuIGF0dHJpYnV0ZSBmcm9tIHRoZSBSZWYgdGFibGUgbWFpbnRhaW5lZCBpbnRlcm5hbGx5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpZiB0aGUgbG9va3VwIGZhaWxlZCBhbmQgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdhdHRyJyB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSd0aGUgYXR0cmlidXRlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVwbGFjZU5vZGUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlVubGluayB0aGUgb2xkIG5vZGUgZnJvbSBpdHMgY3VycmVudCBjb250ZXh0LCBwcnVuZSB0aGUgbmV3IG9uZSBhdCB0aGUgc2FtZSBwbGFjZS4gSWYgQGN1ciB3YXMgYWxyZWFkeSBpbnNlcnRlZCBpbiBhIGRvY3VtZW50IGl0IGlzIGZpcnN0IHVubGlua2VkIGZyb20gaXRzIGV4aXN0aW5nIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgQG9sZCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J29sZCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG9sZCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZXNldEVycm9yJyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSdlcnJvcic+CisgICAgICA8aW5mbz5DbGVhbnVwIHRoZSBlcnJvci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXJyJyB0eXBlPSd4bWxFcnJvclB0cicgaW5mbz0ncG9pbnRlciB0byB0aGUgZXJyb3IuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUmVzZXRMYXN0RXJyb3InIGZpbGU9J3htbGVycm9yJyBtb2R1bGU9J2Vycm9yJz4KKyAgICAgIDxpbmZvPkNsZWFudXAgdGhlIGxhc3QgZ2xvYmFsIGVycm9yIHJlZ2lzdGVyZWQuIEZvciBwYXJzaW5nIGVycm9yIHRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSB3ZWxsLWZvcm1lZG5lc3MgcmVzdWx0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJBdHRyaWJ1dGVEZWNsJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+QW4gYXR0cmlidXRlIGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVsbG5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGF0dHJpYnV0ZSB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J2RlZicgdHlwZT0naW50JyBpbmZvPSd0aGUgdHlwZSBvZiBkZWZhdWx0IHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J2RlZmF1bHRWYWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIGRlZmF1bHQgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJlZScgdHlwZT0neG1sRW51bWVyYXRpb25QdHInIGluZm89J3RoZSB0cmVlIG9mIGVudW1lcmF0ZWQgdmFsdWUgc2V0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkNEYXRhQmxvY2snIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5jYWxsZWQgd2hlbiBhIHBjZGF0YSBibG9jayBoYXMgYmVlbiBwYXJzZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHBjZGF0YSBjb250ZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgYmxvY2sgbGVuZ3RoJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkNoYXJhY3RlcnMnIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5yZWNlaXZpbmcgc29tZSBjaGFycyBmcm9tIHRoZSBwYXJzZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2NoJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgeG1sQ2hhciBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgeG1sQ2hhcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJDb21tZW50JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+QSB4bWxTQVgyQ29tbWVudCBoYXMgYmVlbiBwYXJzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxTQVgyQ29tbWVudCBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkVsZW1lbnREZWNsJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+QW4gZWxlbWVudCBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0naW50JyBpbmZvPSd0aGUgZWxlbWVudCB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J3htbEVsZW1lbnRDb250ZW50UHRyJyBpbmZvPSd0aGUgZWxlbWVudCB2YWx1ZSB0cmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkVuZERvY3VtZW50JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+Y2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVgyRW5kRWxlbWVudCcgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgZWxlbWVudCBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkVuZEVsZW1lbnROcycgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPlNBWDIgY2FsbGJhY2sgd2hlbiBhbiBlbGVtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZCBieSB0aGUgcGFyc2VyLiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2xvY2FsbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVsZW1lbnQgbmFtZXNwYWNlIHByZWZpeCBpZiBhdmFpbGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJFbnRpdHlEZWNsJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+QW4gZW50aXR5IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVudGl0eSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGVudGl0eSB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmxpY0lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdzeXN0ZW1JZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgZW50aXR5IHZhbHVlICh3aXRob3V0IHByb2Nlc3NpbmcpLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJFeHRlcm5hbFN1YnNldCcgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIG9uIGV4dGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcm9vdCBlbGVtZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nRXh0ZXJuYWxJRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZXh0ZXJuYWwgSUQnLz4KKyAgICAgIDxhcmcgbmFtZT0nU3lzdGVtSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkdldENvbHVtbk51bWJlcicgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPlByb3ZpZGUgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nYW4gaW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkdldEVudGl0eScgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPkdldCBhbiBlbnRpdHkgYnkgbmFtZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW50aXR5UHRyJyBpbmZvPSd0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJHZXRMaW5lTnVtYmVyJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+UHJvdmlkZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nYW4gaW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkdldFBhcmFtZXRlckVudGl0eScgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPkdldCBhIHBhcmFtZXRlciBlbnRpdHkgYnkgbmFtZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sRW50aXR5UHRyJyBpbmZvPSd0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJHZXRQdWJsaWNJZCcgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPlByb3ZpZGVzIHRoZSBwdWJsaWMgSUQgZS5nLiAmcXVvdDstLy9TR01MU09VUkNFLy9EVEQgREVNTy8vRU4mcXVvdDs8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSB4bWxDaGFyIConLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVgyR2V0U3lzdGVtSWQnIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5Qcm92aWRlcyB0aGUgc3lzdGVtIElELCBiYXNpY2FsbHkgVVJMIG9yIGZpbGVuYW1lIGUuZy4gaHR0cDovL3d3dy5zZ21sc291cmNlLmNvbS9kdGRzL21lbW8uZHRkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgeG1sQ2hhciAqJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+RG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBleHRlcm5hbCBzdWJzZXQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkhhc0ludGVybmFsU3Vic2V0JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+RG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBpbnRlcm5hbCBzdWJzZXQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UnIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5yZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSB4bWxTQVgyQ2hhcmFjdGVyczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSdjaCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHhtbENoYXIgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIHhtbENoYXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBYTUwgU0FYMiBoYW5kbGVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2hkbHInIHR5cGU9J3htbFNBWEhhbmRsZXIgKicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3dhcm5pbmcnIHR5cGU9J2ludCcgaW5mbz0nZmxhZyBpZiBub24temVybyBzZXRzIHRoZSBoYW5kbGVyIHdhcm5pbmcgcHJvY2VkdXJlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXInIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBEb2NCb29rIFNBWDIgaGFuZGxlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdoZGxyJyB0eXBlPSd4bWxTQVhIYW5kbGVyIConIGluZm89J3RoZSBTQVggaGFuZGxlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkluaXRpYWxpemUgdGhlIGRlZmF1bHQgSFRNTCBTQVgyIGhhbmRsZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0naGRscicgdHlwZT0neG1sU0FYSGFuZGxlciAqJyBpbmZvPSd0aGUgU0FYIGhhbmRsZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVgySW50ZXJuYWxTdWJzZXQnIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5DYWxsYmFjayBvbiBpbnRlcm5hbCBzdWJzZXQgZGVjbGFyYXRpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHJvb3QgZWxlbWVudCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J0V4dGVybmFsSUQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGV4dGVybmFsIElEJy8+CisgICAgICA8YXJnIG5hbWU9J1N5c3RlbUlEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBTWVNURU0gSUQgKGUuZy4gZmlsZW5hbWUgb3IgVVJMKScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJJc1N0YW5kYWxvbmUnIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5JcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lID88L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMk5vdGF0aW9uRGVjbCcgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPldoYXQgdG8gZG8gd2hlbiBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHBhcnNlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgbmFtZSBvZiB0aGUgbm90YXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ncHVibGljSWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J3N5c3RlbUlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5BIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaGFzIGJlZW4gcGFyc2VkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSd0YXJnZXQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHRhcmdldCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFBJIGRhdGEmYXBvcztzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYMlJlZmVyZW5jZScgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPmNhbGxlZCB3aGVuIGFuIGVudGl0eSB4bWxTQVgyUmVmZXJlbmNlIGlzIGRldGVjdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBlbnRpdHkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJSZXNvbHZlRW50aXR5JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+VGhlIGVudGl0eSBsb2FkZXIsIHRvIGNvbnRyb2wgdGhlIGxvYWRpbmcgb2YgZXh0ZXJuYWwgZW50aXRpZXMsIHRoZSBhcHBsaWNhdGlvbiBjYW4gZWl0aGVyOiAtIG92ZXJyaWRlIHRoaXMgeG1sU0FYMlJlc29sdmVFbnRpdHkoKSBjYWxsYmFjayBpbiB0aGUgU0FYIGJsb2NrIC0gb3IgYmV0dGVyIHVzZSB0aGUgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKSBmdW5jdGlvbiB0byBzZXQgdXAgaXQmYXBvcztzIG93biBlbnRpdHkgcmVzb2x1dGlvbiByb3V0aW5lPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dFB0cicgaW5mbz0ndGhlIHhtbFBhcnNlcklucHV0UHRyIGlmIGlubGluZWQgb3IgTlVMTCBmb3IgRE9NIGJlaGF2aW91ci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0ncHVibGljSWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J3N5c3RlbUlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJTZXREb2N1bWVudExvY2F0b3InIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5SZWNlaXZlIHRoZSBkb2N1bWVudCBsb2NhdG9yIGF0IHN0YXJ0dXAsIGFjdHVhbGx5IHhtbERlZmF1bHRTQVhMb2NhdG9yIEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2xvYycgdHlwZT0neG1sU0FYTG9jYXRvclB0cicgaW5mbz0nQSBTQVggTG9jYXRvcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJTdGFydERvY3VtZW50JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+Y2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IHN0YXJ0IGJlaW5nIHByb2Nlc3NlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVgyU3RhcnRFbGVtZW50JyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Y2FsbGVkIHdoZW4gYW4gb3BlbmluZyB0YWcgaGFzIGJlZW4gcHJvY2Vzc2VkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KScvPgorICAgICAgPGFyZyBuYW1lPSdmdWxsbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgZWxlbWVudCBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSdhdHRzJyB0eXBlPSdjb25zdCB4bWxDaGFyICoqJyBpbmZvPSdBbiBhcnJheSBvZiBuYW1lL3ZhbHVlIGF0dHJpYnV0ZXMgcGFpcnMsIE5VTEwgdGVybWluYXRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWDJTdGFydEVsZW1lbnROcycgZmlsZT0nU0FYMicgbW9kdWxlPSdTQVgyJz4KKyAgICAgIDxpbmZvPlNBWDIgY2FsbGJhY2sgd2hlbiBhbiBlbGVtZW50IHN0YXJ0IGhhcyBiZWVuIGRldGVjdGVkIGJ5IHRoZSBwYXJzZXIuIEl0IHByb3ZpZGVzIHRoZSBuYW1lc3BhY2UgaW5mb3JtYXRpb25zIGZvciB0aGUgZWxlbWVudCwgYXMgd2VsbCBhcyB0aGUgbmV3IG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgb24gdGhlIGVsZW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpJy8+CisgICAgICA8YXJnIG5hbWU9J2xvY2FsbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGVsZW1lbnQgbmFtZXNwYWNlIHByZWZpeCBpZiBhdmFpbGFibGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSduYl9uYW1lc3BhY2VzJyB0eXBlPSdpbnQnIGluZm89J251bWJlciBvZiBuYW1lc3BhY2UgZGVmaW5pdGlvbnMgb24gdGhhdCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWVzcGFjZXMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKionIGluZm89J3BvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHByZWZpeC9VUkkgcGFpcnMgbmFtZXNwYWNlIGRlZmluaXRpb25zJy8+CisgICAgICA8YXJnIG5hbWU9J25iX2F0dHJpYnV0ZXMnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIG9uIHRoYXQgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSduYl9kZWZhdWx0ZWQnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBkZWZhdWx0ZWQgYXR0cmlidXRlcy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYXR0cmlidXRlcycgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0ncG9pbnRlciB0byB0aGUgYXJyYXkgb2YgKGxvY2FsbmFtZS9wcmVmaXgvVVJJL3ZhbHVlL2VuZCkgYXR0cmlidXRlIHZhbHVlcy4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGluZm8+V2hhdCB0byBkbyB3aGVuIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBpcyBwYXJzZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCknLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgbmFtZSBvZiB0aGUgZW50aXR5Jy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmxpY0lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1RoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdzeXN0ZW1JZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nbm90YXRpb25OYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBub3RhdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWERlZmF1bHRWZXJzaW9uJyBmaWxlPSdTQVgyJyBtb2R1bGU9J1NBWDInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCB0aGUgZGVmYXVsdCB2ZXJzaW9uIG9mIFNBWCB1c2VkIGdsb2JhbGx5IGJ5IHRoZSBsaWJyYXJ5LiBCeSBkZWZhdWx0LCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gdGhlIGRlZmF1bHQgaXMgc2V0IHRvIDIuIE5vdGUgdGhhdCBpdCBpcyBnZW5lcmFsbHkgYSBiZXR0ZXIgY29kaW5nIHN0eWxlIHRvIHVzZSB4bWxTQVhWZXJzaW9uKCkgdG8gc2V0IHVwIHRoZSB2ZXJzaW9uIGV4cGxpY2l0bHkgZm9yIGEgZ2l2ZW4gcGFyc2luZyBjb250ZXh0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgcHJldmlvdXMgdmFsdWUgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd2ZXJzaW9uJyB0eXBlPSdpbnQnIGluZm89J3RoZSB2ZXJzaW9uLCAxIG9yIDInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVhQYXJzZURURCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkxvYWQgYW5kIHBhcnNlIGFuIGV4dGVybmFsIHN1YnNldC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbER0ZFB0cicgaW5mbz0ndGhlIHJlc3VsdGluZyB4bWxEdGRQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdzYXgnIHR5cGU9J3htbFNBWEhhbmRsZXJQdHInIGluZm89J3RoZSBTQVggaGFuZGxlciBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSdFeHRlcm5hbElEJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgTkFNRSogY29udGFpbmluZyB0aGUgRXh0ZXJuYWwgSUQgb2YgdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSdTeXN0ZW1JRCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIE5BTUUqIGNvbnRhaW5pbmcgdGhlIFVSTCB0byB0aGUgRFREJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYUGFyc2VEb2MnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdzYXgnIHR5cGU9J3htbFNBWEhhbmRsZXJQdHInIGluZm89J3RoZSBTQVggaGFuZGxlciBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXInLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVjb3ZlcnknIHR5cGU9J2ludCcgaW5mbz0nd29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm8gV2VsbCBGb3JtZWQgZG9jdW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYUGFyc2VFbnRpdHknIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBleHRlcm5hbCBlbnRpdHkgb3V0IG9mIGNvbnRleHQgYW5kIGJ1aWxkIGEgdHJlZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuICBbNzhdIGV4dFBhcnNlZEVudCA6Oj0gVGV4dERlY2w/IGNvbnRlbnQgIFRoaXMgY29ycmVzcG9uZCB0byBhICZxdW90O1dlbGwgQmFsYW5jZWQmcXVvdDsgY2h1bms8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J3NheCcgdHlwZT0neG1sU0FYSGFuZGxlclB0cicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyIGJsb2NrJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWFBhcnNlRmlsZScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS4gSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdzYXgnIHR5cGU9J3htbFNBWEhhbmRsZXJQdHInIGluZm89J3RoZSBTQVggaGFuZGxlciBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZW5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVjb3ZlcnknIHR5cGU9J2ludCcgaW5mbz0nd29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm8gV2VsbCBGb3JtZWQgZG9jdW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYUGFyc2VGaWxlV2l0aERhdGEnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuIEl0IHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4gSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLiAgVXNlciBkYXRhICh2b2lkICopIGlzIHN0b3JlZCB3aXRoaW4gdGhlIHBhcnNlciBjb250ZXh0IGluIHRoZSBjb250ZXh0JmFwb3M7cyBfcHJpdmF0ZSBtZW1iZXIsIHNvIGl0IGlzIGF2YWlsYWJsZSBuZWFybHkgZXZlcnl3aGVyZSBpbiBsaWJ4bWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J3NheCcgdHlwZT0neG1sU0FYSGFuZGxlclB0cicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyIGJsb2NrJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdyZWNvdmVyeScgdHlwZT0naW50JyBpbmZvPSd3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZCBkb2N1bWVudHMnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVhQYXJzZU1lbW9yeScgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdzYXgnIHR5cGU9J3htbFNBWEhhbmRsZXJQdHInIGluZm89J3RoZSBTQVggaGFuZGxlciBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSdidWZmZXInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nc2l6ZScgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVjb3ZlcnknIHR5cGU9J2ludCcgaW5mbz0nd29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm90IFdlbGwgRm9ybWVkIGRvY3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEnIGZpbGU9J3BhcnNlcicgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPnBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgYmxvY2sgYW5kIHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4gSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLiAgVXNlciBkYXRhICh2b2lkICopIGlzIHN0b3JlZCB3aXRoaW4gdGhlIHBhcnNlciBjb250ZXh0IGluIHRoZSBjb250ZXh0JmFwb3M7cyBfcHJpdmF0ZSBtZW1iZXIsIHNvIGl0IGlzIGF2YWlsYWJsZSBuZWFybHkgZXZlcnl3aGVyZSBpbiBsaWJ4bWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlJy8+CisgICAgICA8YXJnIG5hbWU9J3NheCcgdHlwZT0neG1sU0FYSGFuZGxlclB0cicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyIGJsb2NrJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdhbiBwb2ludGVyIHRvIGEgY2hhciBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIG9mIHRoZSBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdyZWNvdmVyeScgdHlwZT0naW50JyBpbmZvPSd3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZCBkb2N1bWVudHMnLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlcmRhdGEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTQVhVc2VyUGFyc2VGaWxlJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgZmlsZSBhbmQgY2FsbCB0aGUgZ2l2ZW4gU0FYIGhhbmRsZXIgcm91dGluZXMuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3Mgb3IgYSBlcnJvciBudW1iZXIgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3NheCcgdHlwZT0neG1sU0FYSGFuZGxlclB0cicgaW5mbz0nYSBTQVggaGFuZGxlcicvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyX2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZmlsZSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU0FYVXNlclBhcnNlTWVtb3J5JyBmaWxlPSdwYXJzZXInIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BIGJldHRlciBTQVggcGFyc2luZyByb3V0aW5lLiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGJ1ZmZlciBhbmQgY2FsbCB0aGUgZ2l2ZW4gU0FYIGhhbmRsZXIgcm91dGluZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIGEgZXJyb3IgbnVtYmVyIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdzYXgnIHR5cGU9J3htbFNBWEhhbmRsZXJQdHInIGluZm89J2EgU0FYIGhhbmRsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcl9kYXRhJyB0eXBlPSd2b2lkIConIGluZm89J1RoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcycvPgorICAgICAgPGFyZyBuYW1lPSdidWZmZXInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYW4gaW4tbWVtb3J5IFhNTCBkb2N1bWVudCBpbnB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5ndGggb2YgdGhlIFhNTCBkb2N1bWVudCBpbiBieXRlcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWFZlcnNpb24nIGZpbGU9J1NBWDInIG1vZHVsZT0nU0FYMic+CisgICAgICA8aW5mbz5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IFhNTCBTQVggaGFuZGxlciBhY2NvcmRpbmcgdG8gdGhlIHZlcnNpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2hkbHInIHR5cGU9J3htbFNBWEhhbmRsZXIgKicgaW5mbz0ndGhlIFNBWCBoYW5kbGVyJy8+CisgICAgICA8YXJnIG5hbWU9J3ZlcnNpb24nIHR5cGU9J2ludCcgaW5mbz0ndGhlIHZlcnNpb24sIDEgb3IgMicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNhdmVDbG9zZScgZmlsZT0neG1sc2F2ZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNsb3NlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQsIGkuZS4gbWFrZSBzdXJlIHRoYXQgYWxsIGJ5dGVzIGhhdmUgYmVlbiBvdXRwdXQgYW5kIGZyZWUgdGhlIGFzc29jaWF0ZWQgZGF0YS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2F2ZUN0eHRQdHInIGluZm89J2EgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTYXZlRG9jJyBmaWxlPSd4bWxzYXZlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2F2ZSBhIGZ1bGwgZG9jdW1lbnQgdG8gYSBzYXZpbmcgY29udGV4dCBUT0RPOiBUaGUgZnVuY3Rpb24gaXMgbm90IGZ1bGx5IGltcGxlbWVudGVkIHlldCBhcyBpdCBkb2VzIG5vdCByZXR1cm4gdGhlIGJ5dGUgY291bnQgYnV0IDAgaW5zdGVhZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nbG9uZycgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTYXZlQ3R4dFB0cicgaW5mbz0nYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNhdmVGaWxlJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlLiBXaWxsIHVzZSBjb21wcmVzc2lvbiBpZiBjb21waWxlZCBpbiBhbmQgZW5hYmxlZC4gSWYgQGZpbGVuYW1lIGlzICZxdW90Oy0mcXVvdDsgdGhlIHN0ZG91dCBmaWxlIGlzIHVzZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZSAob3IgVVJMKScvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2F2ZUZpbGVFbmMnIGZpbGU9J3RyZWUnIG1vZHVsZT0neG1sc2F2ZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGFuIFhNTCBkb2N1bWVudCwgY29udmVydGluZyBpdCB0byB0aGUgZ2l2ZW4gZW5jb2Rpbmc8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGZpbGVuYW1lIChvciBVUkwpJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgYW4gZW5jb2RpbmcgKG9yIE5VTEwpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2F2ZUZpbGVUbycgZmlsZT0ndHJlZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGFuIEkvTyBidWZmZXIuIFdhcm5pbmcgISBUaGlzIGNhbGwgeG1sT3V0cHV0QnVmZmVyQ2xvc2UoKSBvbiBidWYgd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBhZnRlciB0aGlzIGNhbGwuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sT3V0cHV0QnVmZmVyUHRyJyBpbmZvPSdhbiBvdXRwdXQgSS9PIGJ1ZmZlcicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBlbmNvZGluZyBpZiBhbnkgYXNzdW1pbmcgdGhlIEkvTyBsYXllciBoYW5kbGVzIHRoZSB0cmFuY29kaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2F2ZUZsdXNoJyBmaWxlPSd4bWxzYXZlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Rmx1c2ggYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCwgaS5lLiBtYWtlIHN1cmUgdGhhdCBhbGwgYnl0ZXMgaGF2ZSBiZWVuIG91dHB1dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2F2ZUN0eHRQdHInIGluZm89J2EgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTYXZlRm9ybWF0RmlsZScgZmlsZT0ndHJlZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGEgZmlsZS4gV2lsbCB1c2UgY29tcHJlc3Npb24gaWYgY29tcGlsZWQgaW4gYW5kIGVuYWJsZWQuIElmIEBmaWxlbmFtZSBpcyAmcXVvdDstJnF1b3Q7IHRoZSBzdGRvdXQgZmlsZSBpcyB1c2VkLiBJZiBAZm9ybWF0IGlzIHNldCB0aGVuIHRoZSBkb2N1bWVudCB3aWxsIGJlIGluZGVudGVkIG9uIG91dHB1dC4gTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiB4bWxJbmRlbnRUcmVlT3V0cHV0ID0gMSBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmaWxlbmFtZSAob3IgVVJMKScvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0naW50JyBpbmZvPSdzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNhdmVGb3JtYXRGaWxlRW5jJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlIG9yIGFuIFVSTC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgeG1sSW5kZW50VHJlZU91dHB1dCA9IDEgb3IgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgd2FzIGNhbGxlZCcvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZW5hbWUgb3IgVVJMIHRvIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50IGJlaW5nIHNhdmVkJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBlbmNvZGluZyB0byB1c2Ugb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdpbnQnIGluZm89J3Nob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZSBhZGRlZC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTYXZlRm9ybWF0RmlsZVRvJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYW4gSS9PIGJ1ZmZlci4gV2FybmluZyAhIFRoaXMgY2FsbCB4bWxPdXRwdXRCdWZmZXJDbG9zZSgpIG9uIGJ1ZiB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGFmdGVyIHRoaXMgY2FsbC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxPdXRwdXRCdWZmZXJQdHInIGluZm89J2FuIG91dHB1dCBJL08gYnVmZmVyJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGVuY29kaW5nIGlmIGFueSBhc3N1bWluZyB0aGUgSS9PIGxheWVyIGhhbmRsZXMgdGhlIHRyYW5jb2RpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdpbnQnIGluZm89J3Nob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2F2ZVNldEF0dHJFc2NhcGUnIGZpbGU9J3htbHNhdmUnIG1vZHVsZT0neG1sc2F2ZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgYSBjdXN0b20gZXNjYXBpbmcgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgdGV4dCBpbiBhdHRyaWJ1dGUgY29udGVudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3NmdWwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2F2ZUN0eHRQdHInIGluZm89J2EgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXNjYXBlJyB0eXBlPSd4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jJyBpbmZvPSd0aGUgZXNjYXBpbmcgZnVuY3Rpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTYXZlU2V0RXNjYXBlJyBmaWxlPSd4bWxzYXZlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IGEgY3VzdG9tIGVzY2FwaW5nIGZ1bmN0aW9uIHRvIGJlIHVzZWQgZm9yIHRleHQgaW4gZWxlbWVudCBjb250ZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgc3VjY2Vzc2Z1bCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTYXZlQ3R4dFB0cicgaW5mbz0nYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlc2NhcGUnIHR5cGU9J3htbENoYXJFbmNvZGluZ091dHB1dEZ1bmMnIGluZm89J3RoZSBlc2NhcGluZyBmdW5jdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNhdmVUb0J1ZmZlcicgZmlsZT0neG1sc2F2ZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0IHNlcmlhbGl6aW5nIHRvIGEgYnVmZmVyIHdpdGggdGhlIGVuY29kaW5nIGFuZCB0aGUgb3B0aW9ucyBnaXZlbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2F2ZUN0eHRQdHInIGluZm89J2EgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZmZlcicgdHlwZT0neG1sQnVmZmVyUHRyJyBpbmZvPSdhIGJ1ZmZlcicvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZW5jb2RpbmcgbmFtZSB0byB1c2Ugb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2Egc2V0IG9mIHhtbFNhdmVPcHRpb25zJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2F2ZVRvRmQnIGZpbGU9J3htbHNhdmUnIG1vZHVsZT0neG1sc2F2ZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCBzZXJpYWxpemluZyB0byBhIGZpbGUgZGVzY3JpcHRvciB3aXRoIHRoZSBlbmNvZGluZyBhbmQgdGhlIG9wdGlvbnMgZ2l2ZW4uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTYXZlQ3R4dFB0cicgaW5mbz0nYSBuZXcgc2VyaWFsaXphdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmQnIHR5cGU9J2ludCcgaW5mbz0nYSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBlbmNvZGluZyBuYW1lIHRvIHVzZSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBzZXQgb2YgeG1sU2F2ZU9wdGlvbnMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTYXZlVG9GaWxlbmFtZScgZmlsZT0neG1sc2F2ZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0IHNlcmlhbGl6aW5nIHRvIGEgZmlsZW5hbWUgb3IgcG9zc2libHkgdG8gYW4gVVJMIChidXQgdGhpcyBpcyBsZXNzIHJlbGlhYmxlKSB3aXRoIHRoZSBlbmNvZGluZyBhbmQgdGhlIG9wdGlvbnMgZ2l2ZW4uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTYXZlQ3R4dFB0cicgaW5mbz0nYSBuZXcgc2VyaWFsaXphdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nYSBmaWxlIG5hbWUgb3IgYW4gVVJMJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBlbmNvZGluZyBuYW1lIHRvIHVzZSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBzZXQgb2YgeG1sU2F2ZU9wdGlvbnMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTYXZlVG9JTycgZmlsZT0neG1sc2F2ZScgbW9kdWxlPSd4bWxzYXZlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0IHNlcmlhbGl6aW5nIHRvIGEgZmlsZSBkZXNjcmlwdG9yIHdpdGggdGhlIGVuY29kaW5nIGFuZCB0aGUgb3B0aW9ucyBnaXZlbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2F2ZUN0eHRQdHInIGluZm89J2EgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2lvd3JpdGUnIHR5cGU9J3htbE91dHB1dFdyaXRlQ2FsbGJhY2snIGluZm89J2FuIEkvTyB3cml0ZSBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdpb2Nsb3NlJyB0eXBlPSd4bWxPdXRwdXRDbG9zZUNhbGxiYWNrJyBpbmZvPSdhbiBJL08gY2xvc2UgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0naW9jdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gSS9PIGhhbmRsZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGVuY29kaW5nIG5hbWUgdG8gdXNlIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIHNldCBvZiB4bWxTYXZlT3B0aW9ucycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNhdmVUcmVlJyBmaWxlPSd4bWxzYXZlJyBtb2R1bGU9J3htbHNhdmUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2F2ZSBhIHN1YnRyZWUgc3RhcnRpbmcgYXQgdGhlIG5vZGUgcGFyYW1ldGVyIHRvIGEgc2F2aW5nIGNvbnRleHQgVE9ETzogVGhlIGZ1bmN0aW9uIGlzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCB5ZXQgYXMgaXQgZG9lcyBub3QgcmV0dXJuIHRoZSBieXRlIGNvdW50IGJ1dCAwIGluc3RlYWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2xvbmcnIGluZm89J3RoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2F2ZUN0eHRQdHInIGluZm89J2EgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHRvcCBub2RlIG9mIHRoZSBzdWJ0cmVlIHRvIHNhdmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTYXZlVXJpJyBmaWxlPSd1cmknIG1vZHVsZT0ndXJpJz4KKyAgICAgIDxpbmZvPlNhdmUgdGhlIFVSSSBhcyBhbiBlc2NhcGVkIHN0cmluZzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIG5ldyBzdHJpbmcgKHRvIGJlIGRlYWxsb2NhdGVkIGJ5IGNhbGxlciknLz4KKyAgICAgIDxhcmcgbmFtZT0ndXJpJyB0eXBlPSd4bWxVUklQdHInIGluZm89J3BvaW50ZXIgdG8gYW4geG1sVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2Nhbk5hbWUnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdsZWdhY3knPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJpY2tlcnk6IHBhcnNlIGFuIFhNTCBuYW1lIGJ1dCB3aXRob3V0IGNvbnN1bWluZyB0aGUgaW5wdXQgZmxvdyBOZWVkZWQgZm9yIHJvbGxiYWNrIGNhc2VzLiBVc2VkIG9ubHkgd2hlbiBwYXJzaW5nIGVudGl0aWVzIHJlZmVyZW5jZXMuICBUT0RPOiBzZWVtcyBkZXByZWNhdGVkIG5vdywgb25seSB1c2VkIGluIHRoZSBkZWZhdWx0IHBhcnQgb2YgeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlICBbNF0gTmFtZUNoYXIgOjo9IExldHRlciB8IERpZ2l0IHwgJmFwb3M7LiZhcG9zOyB8ICZhcG9zOy0mYXBvczsgfCAmYXBvcztfJmFwb3M7IHwgJmFwb3M7OiZhcG9zOyB8IENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlciAgWzVdIE5hbWUgOjo9IChMZXR0ZXIgfCAmYXBvcztfJmFwb3M7IHwgJmFwb3M7OiZhcG9zOykgKE5hbWVDaGFyKSogIFs2XSBOYW1lcyA6Oj0gTmFtZSAoUyBOYW1lKSo8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIE5hbWUgcGFyc2VkIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hQ2hlY2tGYWNldCcgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrcyBhbmQgY29tcHV0ZXMgdGhlIHZhbHVlcyBvZiBmYWNldHMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBpZiBub3QgdmFsaWQgYW5kIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdmYWNldCcgdHlwZT0neG1sU2NoZW1hRmFjZXRQdHInIGluZm89J3RoZSBmYWNldCcvPgorICAgICAgPGFyZyBuYW1lPSd0eXBlRGVjbCcgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0ndGhlIHNjaGVtYSB0eXBlIGRlZmluaXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0ncGN0eHQnIHR5cGU9J3htbFNjaGVtYVBhcnNlckN0eHRQdHInIGluZm89J3RoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBvcHRpb25hbCBuYW1lIG9mIHRoZSB0eXBlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hQ2xlYW51cFR5cGVzJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DbGVhbnVwIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZW1vdmVzIGFuZCBub3JtYWxpemUgd2hpdGUgc3BhY2VzIGluIHRoZSBzdHJpbmc8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpZiBubyBjaGFuZ2Ugd2FzIHJlcXVpcmVkLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hQ29tcGFyZVZhbHVlcycgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXN0eXBlcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29tcGFyZSAyIHZhbHVlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpZiB4ICZsdDsgeSwgMCBpZiB4ID09IHksIDEgaWYgeCAmZ3Q7IHksIDIgaWYgeCAmbHQ7Jmd0OyB5LCBhbmQgLTIgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd4JyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J2EgZmlyc3QgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0neScgdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPSdhIHNlY29uZCB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcCcgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXN0eXBlcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29tcGFyZSAyIHZhbHVlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpZiB4ICZsdDsgeSwgMCBpZiB4ID09IHksIDEgaWYgeCAmZ3Q7IHksIDIgaWYgeCAmbHQ7Jmd0OyB5LCBhbmQgLTIgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd4JyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J2EgZmlyc3QgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0neHdzJyB0eXBlPSd4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlJyBpbmZvPSd0aGUgd2hpdGVzcGFjZSB2YWx1ZSBvZiB4Jy8+CisgICAgICA8YXJnIG5hbWU9J3knIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0nYSBzZWNvbmQgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0neXdzJyB0eXBlPSd4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlJyBpbmZvPSd0aGUgd2hpdGVzcGFjZSB2YWx1ZSBvZiB5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hQ29weVZhbHVlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db3BpZXMgdGhlIHByZWNvbXB1dGVkIHZhbHVlLiBUaGlzIGR1cGxpY2F0ZXMgYW55IHN0cmluZyB3aXRoaW4uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J3RoZSBjb3B5IG9yIE5VTEwgaWYgYSBjb3B5IGZvciBhIGRhdGEtdHlwZSBpcyBub3QgaW1wbGVtZW50ZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPSd0aGUgcHJlY29tcHV0ZWQgdmFsdWUgdG8gYmUgY29waWVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hRHVtcCcgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIGEgU2NoZW1hIHN0cnVjdHVyZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3V0cHV0JyB0eXBlPSdGSUxFIConIGluZm89J3RoZSBmaWxlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdzY2hlbWEnIHR5cGU9J3htbFNjaGVtYVB0cicgaW5mbz0nYSBzY2hlbWEgc3RydWN0dXJlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hRnJlZScgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZWFsbG9jYXRlIGEgU2NoZW1hIHN0cnVjdHVyZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2NoZW1hJyB0eXBlPSd4bWxTY2hlbWFQdHInIGluZm89J2Egc2NoZW1hIHN0cnVjdHVyZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUZyZWVGYWNldCcgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRlYWxsb2NhdGUgYSBTY2hlbWEgRmFjZXQgc3RydWN0dXJlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdmYWNldCcgdHlwZT0neG1sU2NoZW1hRmFjZXRQdHInIGluZm89J2Egc2NoZW1hIGZhY2V0IHN0cnVjdHVyZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUZyZWVQYXJzZXJDdHh0JyBmaWxlPSd4bWxzY2hlbWFzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUZyZWVUeXBlJyBmaWxlPSdzY2hlbWFzSW50ZXJuYWxzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRlYWxsb2NhdGUgYSBTY2hlbWEgVHlwZSBzdHJ1Y3R1cmUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89J2Egc2NoZW1hIHR5cGUgc3RydWN0dXJlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCcgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEN0eHRQdHInIGluZm89J3RoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hRnJlZVZhbHVlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DbGVhbnVwIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPSd0aGUgdmFsdWUgdG8gZnJlZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUZyZWVXaWxkY2FyZCcgZmlsZT0nc2NoZW1hc0ludGVybmFscycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZWFsbG9jYXRlcyBhIHdpbGRjYXJkIHN0cnVjdHVyZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nd2lsZGNhcmQnIHR5cGU9J3htbFNjaGVtYVdpbGRjYXJkUHRyJyBpbmZvPSdhIHdpbGRjYXJkIHN0cnVjdHVyZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb29rdXAgZnVuY3Rpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89J3RoZSBpdGVtIHR5cGUgb2YgQHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgYnVpbHQtaW4gZGF0YXR5cGUgaGllcmFyY2h5IG9mIFhNTCBTY2hlbWEgUGFydCAyOiBEYXRhdHlwZXMsIG9yIE5VTEwgaW4gY2FzZSBvZiBhbiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0ndGhlIGJ1aWx0LWluIHNpbXBsZSB0eXBlLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUdldEJ1aWx0SW5UeXBlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HaXZlcyB5b3UgdGhlIHR5cGUgc3RydWN0IGZvciBhIGJ1aWx0LWluIHR5cGUgYnkgaXRzIHR5cGUgaWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWFUeXBlUHRyJyBpbmZvPSd0aGUgdHlwZSBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVZhbFR5cGUnIGluZm89J3RoZSB0eXBlIG9mIHRoZSBidWlsdCBpbiB0eXBlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hR2V0Q2Fub25WYWx1ZScgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXN0eXBlcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IGEgdGhlIGNvbm9uaWNhbCBsZXhpY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS4gVGhlIGNhbGxlciBoYXMgdG8gRlJFRSB0aGUgcmV0dXJuZWQgcmV0VmFsdWUuICBXQVJOSU5HOiBTb21lIHZhbHVlIHR5cGVzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCwgcmVzdWx0aW5nIGluIGEgQHJldFZhbHVlIG9mICZxdW90Oz8/PyZxdW90Oy4gIFRPRE86IFhNTCBTY2hlbWEgMS4wIGRvZXMgbm90IGRlZmluZSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb25zIGZvcjogZHVyYXRpb24sIGdZZWFyTW9udGgsIGdZZWFyLCBnTW9udGhEYXksIGdNb250aCwgZ0RheSwgYW55VVJJLCBRTmFtZSwgTk9UQVRJT04uIFRoaXMgd2lsbCBiZSBmaXhlZCBpbiBYTUwgU2NoZW1hIDEuMS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgdmFsdWUgY291bGQgYmUgYnVpbHQsIDEgaWYgdGhlIHZhbHVlIHR5cGUgaXMgbm90IHN1cHBvcnRlZCB5ZXQgYW5kIC0xIGluIGNhc2Ugb2YgQVBJIGVycm9ycy4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J3RoZSBwcmVjb21wdXRlZCB2YWx1ZScvPgorICAgICAgPGFyZyBuYW1lPSdyZXRWYWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0ndGhlIHJldHVybmVkIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgYSB0aGUgY29ub25pY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS4gVGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgcmV0dXJuZWQgQHJldFZhbHVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoZSB2YWx1ZSBjb3VsZCBiZSBidWlsdCwgMSBpZiB0aGUgdmFsdWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgLTEgaW4gY2FzZSBvZiBBUEkgZXJyb3JzLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0ndGhlIHByZWNvbXB1dGVkIHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J3JldFZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyICoqJyBpbmZvPSd0aGUgcmV0dXJuZWQgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nd3MnIHR5cGU9J3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUnIGluZm89J3RoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmcnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkV4dHJhY3QgdGhlIHZhbHVlIG9mIGEgZmFjZXQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3Vuc2lnbmVkIGxvbmcnIGluZm89J3RoZSB2YWx1ZSBhcyBhIGxvbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmFjZXQnIHR5cGU9J3htbFNjaGVtYUZhY2V0UHRyJyBpbmZvPSdhbiBzY2hlbWFzIHR5cGUgZmFjZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IHRoZSBjYWxsYmFjayBpbmZvcm1hdGlvbiB1c2VkIHRvIGhhbmRsZSBlcnJvcnMgZm9yIGEgcGFyc2VyIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTY2hlbWFQYXJzZXJDdHh0UHRyJyBpbmZvPSdhIFhNbC1TY2hlbWEgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXJyJyB0eXBlPSd4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyAqJyBpbmZvPSd0aGUgZXJyb3IgY2FsbGJhY2sgcmVzdWx0Jy8+CisgICAgICA8YXJnIG5hbWU9J3dhcm4nIHR5cGU9J3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMgKicgaW5mbz0ndGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqKicgaW5mbz0nY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzIHJlc3VsdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Mb29rdXAgYSB0eXBlIGluIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0ndGhlIHR5cGUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHR5cGUgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgVVJJIG9mIHRoZSBuYW1lc3BhY2UgdXN1YWxseSAmcXVvdDtodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSZxdW90OycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUdldFZhbFR5cGUnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFjY2Vzc29yIGZvciB0aGUgdHlwZSBvZiBhIHZhbHVlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJyBpbmZvPSd0aGUgeG1sU2NoZW1hVmFsVHlwZSBvZiB0aGUgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J2Egc2NoZW1hcyB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUdldFZhbGlkRXJyb3JzJyBmaWxlPSd4bWxzY2hlbWFzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkdldCB0aGUgZXJyb3IgYW5kIHdhcm5pbmcgY2FsbGJhY2sgaW5mb3JtYXRpb25zPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluIGNhc2Ugb2YgZXJyb3IgYW5kIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYVZhbGlkQ3R4dFB0cicgaW5mbz0nYSBYTUwtU2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlcnInIHR5cGU9J3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIConIGluZm89J3RoZSBlcnJvciBmdW5jdGlvbiByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nd2FybicgdHlwZT0neG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyAqJyBpbmZvPSd0aGUgd2FybmluZyBmdW5jdGlvbiByZXN1bHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkICoqJyBpbmZvPSd0aGUgZnVuY3Rpb25zIGNvbnRleHQgcmVzdWx0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hSW5pdFR5cGVzJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Jbml0aWFsaXplIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCcgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXN0eXBlcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RXZhbHVhdGVzIGlmIGEgc3BlY2lmaWMgZmFjZXQgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhIHR5cGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdGhlIGZhY2V0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGdpdmVuIGJ1aWx0LWluIHR5cGUsIDAgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIHRoZSB0eXBlIGlzIG5vdCBhIGJ1aWx0LWluIHR5cGUuJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89J3RoZSBidWlsdC1pbiB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J2ZhY2V0VHlwZScgdHlwZT0naW50JyBpbmZvPSd0aGUgZmFjZXQgdHlwZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYUlzVmFsaWQnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgaWYgYW55IGVycm9yIHdhcyBkZXRlY3RlZCBkdXJpbmcgdmFsaWRhdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB2YWxpZCBzbyBmYXIsIDAgaWYgZXJyb3JzIHdlcmUgZGV0ZWN0ZWQsIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEN0eHRQdHInIGluZm89J3RoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCcgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4gWE1MIFNjaGVtYXMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBkb2N1bWVudC4gTkIuIFRoZSBkb2N1bWVudCBtYXkgYmUgbW9kaWZpZWQgZHVyaW5nIHRoZSBwYXJzaW5nIHByb2Nlc3MuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWFQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIHByZXBhcnNlZCBkb2N1bWVudCB0cmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hTmV3RmFjZXQnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BbGxvY2F0ZSBhIG5ldyBGYWNldCBzdHJ1Y3R1cmUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWFGYWNldFB0cicgaW5mbz0ndGhlIG5ld2x5IGFsbG9jYXRlZCBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCcgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4gWE1MIFNjaGVtYXMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBtZW1vcnkgYnVmZmVyIGV4cGVjdGVkIHRvIGNvbnRhaW4gYW4gWE1MIFNjaGVtYXMgZmlsZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFNjaGVtYVBhcnNlckN0eHRQdHInIGluZm89J3RoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgY29udGFpbmluZyB0aGUgc2NoZW1hcycvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIG9mIHRoZSBhcnJheScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFsbG9jYXRlIGEgbmV3IE5PVEFUSU9OIHZhbHVlLiBUaGUgZ2l2ZW4gdmFsdWVzIGFyZSBjb25zdW1lZCBhbmQgZnJlZWQgd2l0aCB0aGUgc3RydWN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbm90YXRpb24gbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbm90YXRpb24gbmFtZXNwYWNlIG5hbWUgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYU5ld1BhcnNlckN0eHQnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGFuIFhNTCBTY2hlbWFzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZmlsZS9yZXNvdXJjZSBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBTY2hlbWFzIGZpbGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWFQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J1VSTCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbG9jYXRpb24gb2YgdGhlIHNjaGVtYScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYU5ld1FOYW1lVmFsdWUnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFsbG9jYXRlIGEgbmV3IFFOYW1lIHZhbHVlLiBUaGUgZ2l2ZW4gdmFsdWVzIGFyZSBjb25zdW1lZCBhbmQgZnJlZWQgd2l0aCB0aGUgc3RydWN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgYW4gZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWVzcGFjZU5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2xvY2FsTmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbG9jYWwgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BbGxvY2F0ZSBhIG5ldyBzaW1wbGUgdHlwZSB2YWx1ZS4gVGhlIHR5cGUgY2FuIGJlIG9mIFhNTF9TQ0hFTUFTX1NUUklORy4gV0FSTklORzogVGhpcyBvbmUgaXMgaW50ZW5kZWQgdG8gYmUgZXhwYW5kZWQgZm9yIG90aGVyIHN0cmluZyBiYXNlZCB0eXBlcy4gV2UgbmVlZCB0aGlzIGZvciBhbnlTaW1wbGVUeXBlIGFzIHdlbGwuIFRoZSBnaXZlbiB2YWx1ZSBpcyBjb25zdW1lZCBhbmQgZnJlZWQgd2l0aCB0aGUgc3RydWN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScgaW5mbz0ndGhlIHZhbHVlIHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hTmV3VmFsaWRDdHh0JyBmaWxlPSd4bWxzY2hlbWFzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhbiBYTUwgU2NoZW1hcyB2YWxpZGF0aW9uIGNvbnRleHQgYmFzZWQgb24gdGhlIGdpdmVuIHNjaGVtYS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFNjaGVtYVZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nc2NoZW1hJyB0eXBlPSd4bWxTY2hlbWFQdHInIGluZm89J2EgcHJlY29tcGlsZWQgWE1MIFNjaGVtYXMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFQYXJzZScgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhIHNjaGVtYSBkZWZpbml0aW9uIHJlc291cmNlIGFuZCBidWlsZCBhbiBpbnRlcm5hbCBYTUwgU2hlbWEgc3RydXR1cmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5zdGFuY2VzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hUHRyJyBpbmZvPSd0aGUgaW50ZXJuYWwgWE1MIFNjaGVtYSBzdHJ1Y3R1cmUgYnVpbHQgZnJvbSB0aGUgcmVzb3VyY2Ugb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYVBhcnNlckN0eHRQdHInIGluZm89J2Egc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVNBWFBsdWcnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UGx1ZyBhIFNBWCBiYXNlZCB2YWxpZGF0aW9uIGxheWVyIGluIGEgU0FYIHBhcnNpbmcgZXZlbnQgZmxvdy4gVGhlIG9yaWdpbmFsIEBzYXhwdHIgYW5kIEBkYXRhcHRyIGRhdGEgYXJlIHJlcGxhY2VkIGJ5IG5ldyBwb2ludGVycyBidXQgdGhlIGNhbGxzIHRvIHRoZSBvcmlnaW5hbCB3aWxsIGJlIG1haW50YWluZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWFTQVhQbHVnUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSBkYXRhIHN0cnVjdHVyZSBuZWVkZWQgdG8gdW5wbHVnIHRoZSB2YWxpZGF0aW9uIGxheWVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcnMuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYVZhbGlkQ3R4dFB0cicgaW5mbz0nYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3NheCcgdHlwZT0neG1sU0FYSGFuZGxlclB0ciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIHhtbFNBWEhhbmRsZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcl9kYXRhJyB0eXBlPSd2b2lkICoqJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIFNBWCB1c2VyIGRhdGEgcG9pbnRlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVNBWFVucGx1ZycgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5VbnBsdWcgYSBTQVggYmFzZWQgdmFsaWRhdGlvbiBsYXllciBpbiBhIFNBWCBwYXJzaW5nIGV2ZW50IGZsb3cuIFRoZSBvcmlnaW5hbCBwb2ludGVycyB1c2VkIGluIHRoZSBjYWxsIGFyZSByZXN0b3JlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncGx1ZycgdHlwZT0neG1sU2NoZW1hU0FYUGx1Z1B0cicgaW5mbz0nYSBkYXRhIHN0cnVjdHVyZSByZXR1cm5lZCBieSB4bWxTY2hlbWFTQVhQbHVnJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzJyBmaWxlPSd4bWxzY2hlbWFzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSB2YWxpZGF0aW9uIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hUGFyc2VyQ3R4dFB0cicgaW5mbz0nYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2VycicgdHlwZT0neG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMnIGluZm89J3RoZSBlcnJvciBjYWxsYmFjaycvPgorICAgICAgPGFyZyBuYW1lPSd3YXJuJyB0eXBlPSd4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jJyBpbmZvPSd0aGUgd2FybmluZyBjYWxsYmFjaycvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0nY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycycgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgdGhlIHN0cnVjdHVyZWQgZXJyb3IgY2FsbGJhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hUGFyc2VyQ3R4dFB0cicgaW5mbz0nYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2Vycm9yJyB0eXBlPSd4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBpbmZvPSd0aGUgc3RydWN0dXJlZCBlcnJvciBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGZ1bmN0aW9ucyBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IHRoZSBlcnJvciBhbmQgd2FybmluZyBjYWxsYmFjayBpbmZvcm1hdGlvbnM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hVmFsaWRDdHh0UHRyJyBpbmZvPSdhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXJyJyB0eXBlPSd4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYycgaW5mbz0ndGhlIGVycm9yIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J3dhcm4nIHR5cGU9J3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMnIGluZm89J3RoZSB3YXJuaW5nIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgZnVuY3Rpb25zIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0cyB0aGUgb3B0aW9ucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgdmFsaWRhdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgYW4gQVBJIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEN0eHRQdHInIGluZm89J2Egc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sU2NoZW1hVmFsaWRPcHRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYVZhbGlkQ3R4dFB0cicgaW5mbz0nYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3NlcnJvcicgdHlwZT0neG1sU3RydWN0dXJlZEVycm9yRnVuYycgaW5mbz0ndGhlIHN0cnVjdHVyZWQgZXJyb3IgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBmdW5jdGlvbnMgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgdGhlIHByZWRlZmluZWQgdHlwZS4gaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89J3RoZSBwcmVkZWZpbmVkIHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlIHRvIGNoZWNrJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sU2NoZW1hVmFsUHRyIConIGluZm89J3RoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUgY29udGFpbmluZyB0aGUgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybScgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXN0eXBlcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgdGhhdCBhIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBsZXhpY2FsIHNwYWNlIG9mIHRoZSBwcmVkZWZpbmVkIHR5cGUuIGlmIHRydWUgYSB2YWx1ZSBpcyBjb21wdXRlZCBhbmQgcmV0dXJuZWQgaW4gQHZhbC4gVGhpcyBvbmUgZG9lcyBhcHBseSBhbnkgbm9ybWFsaXphdGlvbiB0byB0aGUgdmFsdWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0ndGhlIHByZWRlZmluZWQgdHlwZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgdG8gY2hlY2snLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxTY2hlbWFWYWxQdHIgKicgaW5mbz0ndGhlIHJldHVybiBjb21wdXRlZCB2YWx1ZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZSBjb250YWluaW5nIHRoZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgb3B0aW9ucy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG9wdGlvbiBjb21iaW5hdGlvbiBvciAtMSBvbiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hVmFsaWRDdHh0UHRyJyBpbmZvPSdhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0JyBmaWxlPSd4bWxzY2hlbWFzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmFsbG93IGFjY2VzcyB0byB0aGUgcGFyc2VyIGNvbnRleHQgb2YgdGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBwYXJzZXIgY29udGV4dCBvZiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYVZhbGlkQ3R4dFB0cicgaW5mbz0nYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hVmFsaWRhdGVEb2MnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VmFsaWRhdGUgYSBkb2N1bWVudCB0cmVlIGluIG1lbW9yeS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgZG9jdW1lbnQgaXMgc2NoZW1hcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEN0eHRQdHInIGluZm89J2Egc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBwYXJzZWQgZG9jdW1lbnQgdHJlZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbGlkYXRlRmFjZXQnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIGEgdmFsdWUgYWdhaW5zdCBhIGZhY2V0IGNvbmRpdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoZSBlbGVtZW50IGlzIHNjaGVtYXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYmFzZScgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0ndGhlIGJhc2UgdHlwZScvPgorICAgICAgPGFyZyBuYW1lPSdmYWNldCcgdHlwZT0neG1sU2NoZW1hRmFjZXRQdHInIGluZm89J3RoZSBmYWNldCB0byBjaGVjaycvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbGV4aWNhbCByZXByIG9mIHRoZSB2YWx1ZSB0byB2YWxpZGF0ZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0ndGhlIHByZWNvbXB1dGVkIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayBhIHZhbHVlIGFnYWluc3QgYSBmYWNldCBjb25kaXRpb24uIFRoaXMgdGFrZXMgdmFsdWUgbm9ybWFsaXphdGlvbiBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCB3aGl0ZXNwYWNlIHR5cGVzIGludG8gYWNjb3VudC4gTm90ZSB0aGF0IEB2YWx1ZSBuZWVkcyB0byBiZSB0aGUgKm5vcm1hbGl6ZWQqIHZhbHVlIGlmIHRoZSBmYWNldCBpcyBvZiB0eXBlICZxdW90O3BhdHRlcm4mcXVvdDsuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIGVsZW1lbnQgaXMgc2NoZW1hcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdmYWNldCcgdHlwZT0neG1sU2NoZW1hRmFjZXRQdHInIGluZm89J3RoZSBmYWNldCB0byBjaGVjaycvPgorICAgICAgPGFyZyBuYW1lPSdmd3MnIHR5cGU9J3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUnIGluZm89J3RoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIGZhY2V0JmFwb3M7cyB2YWx1ZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWxUeXBlJyB0eXBlPSd4bWxTY2hlbWFWYWxUeXBlJyBpbmZvPSd0aGUgYnVpbHQtaW4gdHlwZSBvZiB0aGUgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxleGljYWwgKG9yIG5vcm1hbGl6ZWQgZm9yIHBhdHRlcm4pIHJlcHIgb2YgdGhlIHZhbHVlIHRvIHZhbGlkYXRlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sU2NoZW1hVmFsUHRyJyBpbmZvPSd0aGUgcHJlY29tcHV0ZWQgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nd3MnIHR5cGU9J3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUnIGluZm89J3RoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hVmFsaWRhdGVGaWxlJyBmaWxlPSd4bWxzY2hlbWFzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRvIGEgc2NoZW1hcyB2YWxpZGF0aW9uIG9mIHRoZSBnaXZlbiByZXNvdXJjZSwgaXQgd2lsbCB1c2UgdGhlIFNBWCBzdHJlYW1hYmxlIHZhbGlkYXRpb24gaW50ZXJuYWxseS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgZG9jdW1lbnQgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hVmFsaWRDdHh0UHRyJyBpbmZvPSdhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZW5hbWUnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIFVSSSBvZiB0aGUgaW5zdGFuY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nb3B0aW9ucycgdHlwZT0naW50JyBpbmZvPSdhIGZ1dHVyZSBzZXQgb2Ygb3B0aW9ucywgY3VycmVudGx5IHVudXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrYSBhIHZhbHVlIGFnYWluc3QgYSAmcXVvdDtsZW5ndGgmcXVvdDssICZxdW90O21pbkxlbmd0aCZxdW90OyBhbmQgJnF1b3Q7bWF4TGVuZ3RoJnF1b3Q7IGZhY2V0OyBzZXRzIEBsZW5ndGggdG8gdGhlIGNvbXB1dGVkIGxlbmd0aCBvZiBAdmFsdWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndHlwZScgdHlwZT0neG1sU2NoZW1hVHlwZVB0cicgaW5mbz0ndGhlIGJ1aWx0LWluIHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmFjZXQnIHR5cGU9J3htbFNjaGVtYUZhY2V0UHRyJyBpbmZvPSd0aGUgZmFjZXQgdG8gY2hlY2snLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxleGljYWwgcmVwci4gb2YgdGhlIHZhbHVlIHRvIGJlIHZhbGlkYXRlZCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0ndGhlIHByZWNvbXB1dGVkIHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbmd0aCcgdHlwZT0ndW5zaWduZWQgbG9uZyAqJyBpbmZvPSd0aGUgYWN0dWFsIGxlbmd0aCBvZiB0aGUgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrYSBhIHZhbHVlIGFnYWluc3QgYSAmcXVvdDtsZW5ndGgmcXVvdDssICZxdW90O21pbkxlbmd0aCZxdW90OyBhbmQgJnF1b3Q7bWF4TGVuZ3RoJnF1b3Q7IGZhY2V0OyBzZXRzIEBsZW5ndGggdG8gdGhlIGNvbXB1dGVkIGxlbmd0aCBvZiBAdmFsdWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmFjZXQnIHR5cGU9J3htbFNjaGVtYUZhY2V0UHRyJyBpbmZvPSd0aGUgZmFjZXQgdG8gY2hlY2snLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsVHlwZScgdHlwZT0neG1sU2NoZW1hVmFsVHlwZScgaW5mbz0ndGhlIGJ1aWx0LWluIHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxleGljYWwgcmVwci4gb2YgdGhlIHZhbHVlIHRvIGJlIHZhbGlkYXRlZCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0ndGhlIHByZWNvbXB1dGVkIHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbmd0aCcgdHlwZT0ndW5zaWduZWQgbG9uZyAqJyBpbmZvPSd0aGUgYWN0dWFsIGxlbmd0aCBvZiB0aGUgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nd3MnIHR5cGU9J3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUnIGluZm89J3RoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0JyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVja3MgdGhlIHZhbHVlIG9mIGEgbGlzdCBzaW1wbGUgdHlwZSBhZ2FpbnN0IGEgZmFjZXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZmFjZXQnIHR5cGU9J3htbFNjaGVtYUZhY2V0UHRyJyBpbmZvPSd0aGUgZmFjZXQgdG8gY2hlY2snLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxleGljYWwgcmVwciBvZiB0aGUgdmFsdWUgdG8gdmFsaWRhdGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nYWN0dWFsTGVuJyB0eXBlPSd1bnNpZ25lZCBsb25nJyBpbmZvPSd0aGUgbnVtYmVyIG9mIGxpc3QgaXRlbXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nZXhwZWN0ZWRMZW4nIHR5cGU9J3Vuc2lnbmVkIGxvbmcgKicgaW5mbz0ndGhlIHJlc3VsdGluZyBleHBlY3RlZCBudW1iZXIgb2YgbGlzdCBpdGVtcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCcgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5WYWxpZGF0ZSBhIGJyYW5jaCBvZiBhIHRyZWUsIHN0YXJ0aW5nIHdpdGggdGhlIGdpdmVuIEBlbGVtLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoZSBlbGVtZW50IGFuZCBpdHMgc3VidHJlZSBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTY2hlbWFWYWxpZEN0eHRQdHInIGluZm89J2Egc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhbiBlbGVtZW50IG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgdGhlIHByZWRlZmluZWQgdHlwZS4gaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J3htbFNjaGVtYVR5cGVQdHInIGluZm89J3RoZSBwcmVkZWZpbmVkIHR5cGUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlIHRvIGNoZWNrJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sU2NoZW1hVmFsUHRyIConIGluZm89J3RoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbScgZmlsZT0neG1sc2NoZW1hcycgbW9kdWxlPSd4bWxzY2hlbWFzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5WYWxpZGF0ZSBhbiBpbnB1dCBiYXNlZCBvbiBhIGZsb3cgb2YgU0FYIGV2ZW50IGZyb20gdGhlIHBhcnNlciBhbmQgZm9yd2FyZCB0aGUgZXZlbnRzIHRvIHRoZSBAc2F4IGhhbmRsZXIgd2l0aCB0aGUgcHJvdmlkZWQgQHVzZXJfZGF0YSB0aGUgdXNlciBwcm92aWRlZCBAc2F4IGhhbmRsZXIgbXVzdCBiZSBhIFNBWDIgb25lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoZSBkb2N1bWVudCBpcyBzY2hlbWFzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYVZhbGlkQ3R4dFB0cicgaW5mbz0nYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2lucHV0JyB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cicgaW5mbz0ndGhlIGlucHV0IHRvIHVzZSBmb3IgcmVhZGluZyB0aGUgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdlbmMnIHR5cGU9J3htbENoYXJFbmNvZGluZycgaW5mbz0nYW4gb3B0aW9uYWwgZW5jb2RpbmcgaW5mb3JtYXRpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nc2F4JyB0eXBlPSd4bWxTQVhIYW5kbGVyUHRyJyBpbmZvPSdhIFNBWCBoYW5kbGVyIGZvciB0aGUgcmVzdWx0aW5nIGV2ZW50cycvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyX2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGNvbnRleHQgdG8gcHJvdmlkZSB0byB0aGUgU0FYIGhhbmRsZXIuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMnIGZpbGU9J3htbHNjaGVtYXMnIG1vZHVsZT0neG1sc2NoZW1hcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2lnbmF0dXJlIG9mIGFuIGVycm9yIGNhbGxiYWNrIGZyb20gYW4gWFNEIHZhbGlkYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbXNnJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBtZXNzYWdlJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jJyBmaWxlPSd4bWxzY2hlbWFzJyBtb2R1bGU9J3htbHNjaGVtYXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNpZ25hdHVyZSBvZiBhIHdhcm5pbmcgY2FsbGJhY2sgZnJvbSBhbiBYU0QgdmFsaWRhdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdtc2cnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIG1lc3NhZ2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbHVlQXBwZW5kJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BcHBlbmRzIGEgbmV4dCBzaWJsaW5nIHRvIGEgbGlzdCBvZiBjb21wdXRlZCB2YWx1ZXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgc3VjY2VlZGVkIGFuZCAtMSBvbiBBUEkgZXJyb3JzLicvPgorICAgICAgPGFyZyBuYW1lPSdwcmV2JyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J3RoZSB2YWx1ZScvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0ndGhlIHZhbHVlIHRvIGJlIGFwcGVuZGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4nIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFjY2Vzc29yIGZvciB0aGUgYm9vbGVhbiB2YWx1ZSBvZiBhIGNvbXB1dGVkIHZhbHVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgYW5kIDAgaWYgZmFsc2UsIG9yIGluIGNhc2Ugb2YgYW4gZXJyb3IuIEhtbS4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J3RoZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmcnIGZpbGU9J3htbHNjaGVtYXN0eXBlcycgbW9kdWxlPSd4bWxzY2hlbWFzdHlwZXMnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkFjY2Vzc29yIGZvciB0aGUgc3RyaW5nIHZhbHVlIG9mIGEgY29tcHV0ZWQgdmFsdWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzdHJpbmcgdmFsdWUgb3IgTlVMTCBpZiB0aGVyZSB3YXMgbm9uZSwgb3Igb24gQVBJIGVycm9ycy4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J3RoZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVZhbHVlR2V0TmV4dCcgZmlsZT0neG1sc2NoZW1hc3R5cGVzJyBtb2R1bGU9J3htbHNjaGVtYXN0eXBlcyc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QWNjZXNzb3IgZm9yIHRoZSBuZXh0IHNpYmxpbmcgb2YgYSBsaXN0IG9mIGNvbXB1dGVkIHZhbHVlcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFNjaGVtYVZhbFB0cicgaW5mbz0ndGhlIG5leHQgdmFsdWUgb3IgTlVMTCBpZiB0aGVyZSB3YXMgbm9uZSwgb3Igb24gQVBJIGVycm9ycy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxTY2hlbWFWYWxQdHInIGluZm89J3RoZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlJyBmaWxlPSd4bWxzY2hlbWFzdHlwZXMnIG1vZHVsZT0neG1sc2NoZW1hc3R5cGVzJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZXBsYWNlcyAweGQsIDB4OSBhbmQgMHhhIHdpdGggYSBzcGFjZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpZiBubyBjaGFuZ2Ugd2FzIHJlcXVpcmVkLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hdHJvbkZyZWUnIGZpbGU9J3NjaGVtYXRyb24nIG1vZHVsZT0nc2NoZW1hdHJvbic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RGVhbGxvY2F0ZSBhIFNjaGVtYXRyb24gc3RydWN0dXJlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdzY2hlbWEnIHR5cGU9J3htbFNjaGVtYXRyb25QdHInIGluZm89J2Egc2NoZW1hIHN0cnVjdHVyZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCcgZmlsZT0nc2NoZW1hdHJvbicgbW9kdWxlPSdzY2hlbWF0cm9uJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQnIGZpbGU9J3NjaGVtYXRyb24nIG1vZHVsZT0nc2NoZW1hdHJvbic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCcgZmlsZT0nc2NoZW1hdHJvbicgbW9kdWxlPSdzY2hlbWF0cm9uJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4gWE1MIFNjaGVtYXRyb25zIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZG9jdW1lbnQuIE5CLiBUaGUgZG9jdW1lbnQgbWF5IGJlIG1vZGlmaWVkIGR1cmluZyB0aGUgcGFyc2luZyBwcm9jZXNzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHInIGluZm89J3RoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J2EgcHJlcGFyc2VkIGRvY3VtZW50IHRyZWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCcgZmlsZT0nc2NoZW1hdHJvbicgbW9kdWxlPSdzY2hlbWF0cm9uJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYW4gWE1MIFNjaGVtYXRyb25zIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgbWVtb3J5IGJ1ZmZlciBleHBlY3RlZCB0byBjb250YWluIGFuIFhNTCBTY2hlbWF0cm9ucyBmaWxlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHInIGluZm89J3RoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmZmVyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgY29udGFpbmluZyB0aGUgc2NoZW1hcycvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzaXplIG9mIHRoZSBhcnJheScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0JyBmaWxlPSdzY2hlbWF0cm9uJyBtb2R1bGU9J3NjaGVtYXRyb24nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhbiBYTUwgU2NoZW1hdHJvbnMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBmaWxlL3Jlc291cmNlIGV4cGVjdGVkIHRvIGNvbnRhaW4gYW4gWE1MIFNjaGVtYXRyb25zIGZpbGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGxvY2F0aW9uIG9mIHRoZSBzY2hlbWEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0JyBmaWxlPSdzY2hlbWF0cm9uJyBtb2R1bGU9J3NjaGVtYXRyb24nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhbiBYTUwgU2NoZW1hdHJvbnMgdmFsaWRhdGlvbiBjb250ZXh0IGJhc2VkIG9uIHRoZSBnaXZlbiBzY2hlbWEuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdzY2hlbWEnIHR5cGU9J3htbFNjaGVtYXRyb25QdHInIGluZm89J2EgcHJlY29tcGlsZWQgWE1MIFNjaGVtYXRyb25zJy8+CisgICAgICA8YXJnIG5hbWU9J29wdGlvbnMnIHR5cGU9J2ludCcgaW5mbz0nYSBzZXQgb2YgeG1sU2NoZW1hdHJvblZhbGlkT3B0aW9ucycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYXRyb25QYXJzZScgZmlsZT0nc2NoZW1hdHJvbicgbW9kdWxlPSdzY2hlbWF0cm9uJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhIHNjaGVtYSBkZWZpbml0aW9uIHJlc291cmNlIGFuZCBidWlsZCBhbiBpbnRlcm5hbCBYTUwgU2hlbWEgc3RydXR1cmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5zdGFuY2VzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sU2NoZW1hdHJvblB0cicgaW5mbz0ndGhlIGludGVybmFsIFhNTCBTY2hlbWF0cm9uIHN0cnVjdHVyZSBidWlsdCBmcm9tIHRoZSByZXNvdXJjZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHInIGluZm89J2Egc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMnIGZpbGU9J3NjaGVtYXRyb24nIG1vZHVsZT0nc2NoZW1hdHJvbic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHInIGluZm89J2EgU2NoZW1hdHJvbiB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2Vycm9yJyB0eXBlPSd4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBpbmZvPSd0aGUgc3RydWN0dXJlZCBlcnJvciBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdjdHgnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGZ1bmN0aW9ucyBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jJyBmaWxlPSdzY2hlbWF0cm9uJyBtb2R1bGU9J3NjaGVtYXRyb24nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlZhbGlkYXRlIGEgdHJlZSBpbnN0YW5jZSBhZ2FpbnN0IHRoZSBzY2hlbWF0cm9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yIGFuZCBhbiBlcnJvciBjb3VudCBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHInIGluZm89J3RoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2luc3RhbmNlJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCBpbnN0YWNlIHRyZWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxTY2hlbWF0cm9uVmFsaWRpdHlFcnJvckZ1bmMnIGZpbGU9J3NjaGVtYXRyb24nIG1vZHVsZT0nc2NoZW1hdHJvbic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2lnbmF0dXJlIG9mIGFuIGVycm9yIGNhbGxiYWNrIGZyb20gYSBTY2hlbWF0cm9uIHZhbGlkYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbXNnJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBtZXNzYWdlJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYycgZmlsZT0nc2NoZW1hdHJvbicgbW9kdWxlPSdzY2hlbWF0cm9uJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TaWduYXR1cmUgb2YgYSB3YXJuaW5nIGNhbGxiYWNrIGZyb20gYSBTY2hlbWF0cm9uIHZhbGlkYXRpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbXNnJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBtZXNzYWdlJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZWFyY2hOcycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlNlYXJjaCBhIE5zIHJlZ2lzdGVyZWQgdW5kZXIgYSBnaXZlbiBuYW1lIHNwYWNlIGZvciBhIGRvY3VtZW50LiByZWN1cnNlIG9uIHRoZSBwYXJlbnRzIHVudGlsIGl0IGZpbmRzIHRoZSBkZWZpbmVkIG5hbWVzcGFjZSBvciByZXR1cm4gTlVMTCBvdGhlcndpc2UuIEBuYW1lU3BhY2UgY2FuIGJlIE5VTEwsIHRoaXMgaXMgYSBzZWFyY2ggZm9yIHRoZSBkZWZhdWx0IG5hbWVzcGFjZS4gV2UgZG9uJmFwb3M7dCBhbGxvdyB0byBjcm9zcyBlbnRpdGllcyBib3VuZGFyaWVzLiBJZiB5b3UgZG9uJmFwb3M7dCBkZWNsYXJlIHRoZSBuYW1lc3BhY2Ugd2l0aGluIHRob3NlIHlvdSB3aWxsIGJlIGluIHRyb3VibGVzICEhISBBIHdhcm5pbmcgaXMgZ2VuZXJhdGVkIHRvIGNvdmVyIHRoaXMgY2FzZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5zUHRyJyBpbmZvPSd0aGUgbmFtZXNwYWNlIHBvaW50ZXIgb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWVTcGFjZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIHByZWZpeCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNlYXJjaE5zQnlIcmVmJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+U2VhcmNoIGEgTnMgYWxpYXNpbmcgYSBnaXZlbiBVUkkuIFJlY3Vyc2Ugb24gdGhlIHBhcmVudHMgdW50aWwgaXQgZmluZHMgdGhlIGRlZmluZWQgbmFtZXNwYWNlIG9yIHJldHVybiBOVUxMIG90aGVyd2lzZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5zUHRyJyBpbmZvPSd0aGUgbmFtZXNwYWNlIHBvaW50ZXIgb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J2hyZWYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5TZXQgdGhlIGJ1ZmZlciBhbGxvY2F0aW9uIG1ldGhvZC4gIFR5cGVzIGFyZSBYTUxfQlVGRkVSX0FMTE9DX0VYQUNUIC0gdXNlIGV4YWN0IHNpemVzLCBrZWVwcyBtZW1vcnkgdXNhZ2UgZG93biBYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUIC0gZG91YmxlIGJ1ZmZlciB3aGVuIGV4dHJhIG5lZWRlZCwgaW1wcm92ZXMgcGVyZm9ybWFuY2U8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2NoZW1lJyB0eXBlPSd4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lJyBpbmZvPSdhbGxvY2F0aW9uIG1ldGhvZCB0byB1c2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXRDb21wcmVzc01vZGUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5zZXQgdGhlIGRlZmF1bHQgY29tcHJlc3Npb24gbW9kZSB1c2VkLCBaTElCIGJhc2VkIENvcnJlY3QgdmFsdWVzOiAwICh1bmNvbXByZXNzZWQpIHRvIDkgKG1heCBjb21wcmVzc2lvbik8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbW9kZScgdHlwZT0naW50JyBpbmZvPSd0aGUgY29tcHJlc3Npb24gcmF0aW8nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXREb2NDb21wcmVzc01vZGUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5zZXQgdGhlIGNvbXByZXNzaW9uIHJhdGlvIGZvciBhIGRvY3VtZW50LCBaTElCIGJhc2VkIENvcnJlY3QgdmFsdWVzOiAwICh1bmNvbXByZXNzZWQpIHRvIDkgKG1heCBjb21wcmVzc2lvbik8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdtb2RlJyB0eXBlPSdpbnQnIGluZm89J3RoZSBjb21wcmVzc2lvbiByYXRpbycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IHRoZSBmdW5jdGlvbiB0byBjYWxsIGNhbGwgYmFjayB3aGVuIGEgeG1sIHJlZmVyZW5jZSBoYXMgYmVlbiBtYWRlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2Z1bmMnIHR5cGU9J3htbEVudGl0eVJlZmVyZW5jZUZ1bmMnIGluZm89J0EgdmFsaWQgZnVuY3Rpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcicgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3htbElPJz4KKyAgICAgIDxpbmZvPkNoYW5nZXMgdGhlIGRlZmF1bHRleHRlcm5hbCBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb24gZm9yIHRoZSBhcHBsaWNhdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxFeHRlcm5hbEVudGl0eUxvYWRlcicgaW5mbz0ndGhlIG5ldyBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXRGZWF0dXJlJyBmaWxlPSdwYXJzZXInIG1vZHVsZT0nbGVnYWN5Jz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoYW5nZSB0aGUgY3VycmVudCB2YWx1ZSBvZiBvbmUgZmVhdHVyZSBvZiB0aGlzIHBhcnNlciBpbnN0YW5jZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpbiBjYXNlIG9yIGVycm9yLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwvSFRNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBmZWF0dXJlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J3ZvaWQgKicgaW5mbz0ncG9pbnRlciB0byB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldyB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNldEdlbmVyaWNFcnJvckZ1bmMnIGZpbGU9J3htbGVycm9yJyBtb2R1bGU9J2Vycm9yJz4KKyAgICAgIDxpbmZvPkZ1bmN0aW9uIHRvIHJlc2V0IHRoZSBoYW5kbGVyIGFuZCB0aGUgZXJyb3IgY29udGV4dCBmb3Igb3V0IG9mIGNvbnRleHQgZXJyb3IgbWVzc2FnZXMuIFRoaXMgc2ltcGx5IG1lYW5zIHRoYXQgQGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQgZm9yIHN1YnNlcXVlbnQgZXJyb3IgbWVzc2FnZXMgd2hpbGUgbm90IHBhcnNpbmcgbm9yIHZhbGlkYXRpbmcuIEFuZCBAY3R4IHdpbGwgYmUgcGFzc2VkIGFzIGZpcnN0IGFyZ3VtZW50IHRvIEBoYW5kbGVyIE9uZSBjYW4gc2ltcGx5IGZvcmNlIG1lc3NhZ2VzIHRvIGJlIGVtaXR0ZWQgdG8gYW5vdGhlciBGSUxFICogdGhhbiBzdGRlcnIgYnkgc2V0dGluZyBAY3R4IHRvIHRoaXMgZmlsZSBoYW5kbGUgYW5kIEBoYW5kbGVyIHRvIE5VTEwuIEZvciBtdWx0aS10aHJlYWRlZCBhcHBsaWNhdGlvbnMsIHRoaXMgbXVzdCBiZSBzZXQgc2VwYXJhdGVseSBmb3IgZWFjaCB0aHJlYWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgbmV3IGVycm9yIGhhbmRsaW5nIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0naGFuZGxlcicgdHlwZT0neG1sR2VuZXJpY0Vycm9yRnVuYycgaW5mbz0ndGhlIG5ldyBoYW5kbGVyIGZ1bmN0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2V0TGlzdERvYycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPnVwZGF0ZSBhbGwgbm9kZXMgaW4gdGhlIGxpc3QgdG8gcG9pbnQgdG8gdGhlIHJpZ2h0IGRvY3VtZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2xpc3QnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBmaXJzdCBlbGVtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXROcycgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkFzc29jaWF0ZSBhIG5hbWVzcGFjZSB0byBhIG5vZGUsIGEgcG9zdGVyaW9yaS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBub2RlIGluIHRoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0neG1sTnNQdHInIGluZm89J2EgbmFtZXNwYWNlIHBvaW50ZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXROc1Byb3AnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCAob3IgcmVzZXQpIGFuIGF0dHJpYnV0ZSBjYXJyaWVkIGJ5IGEgbm9kZS4gVGhlIG5zIHN0cnVjdHVyZSBtdXN0IGJlIGluIHNjb3BlLCB0aGlzIGlzIG5vdCBjaGVja2VkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxBdHRyUHRyJyBpbmZvPSd0aGUgYXR0cmlidXRlIHBvaW50ZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOc1B0cicgaW5mbz0ndGhlIG5hbWVzcGFjZSBkZWZpbml0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXRQcm9wJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgKG9yIHJlc2V0KSBhbiBhdHRyaWJ1dGUgY2FycmllZCBieSBhIG5vZGUuIElmIEBuYW1lIGhhcyBhIHByZWZpeCwgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBuYW1lc3BhY2UtYmluZGluZyB3aWxsIGJlIHVzZWQsIGlmIGluIHNjb3BlOyBpdCBpcyBhbiBlcnJvciBpdCB0aGVyZSZhcG9zO3Mgbm8gc3VjaCBucy1iaW5kaW5nIGZvciB0aGUgcHJlZml4IGluIHNjb3BlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQXR0clB0cicgaW5mbz0ndGhlIGF0dHJpYnV0ZSBwb2ludGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZSAoYSBRTmFtZSknLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMnIGZpbGU9J3htbGVycm9yJyBtb2R1bGU9J2Vycm9yJz4KKyAgICAgIDxpbmZvPkZ1bmN0aW9uIHRvIHJlc2V0IHRoZSBoYW5kbGVyIGFuZCB0aGUgZXJyb3IgY29udGV4dCBmb3Igb3V0IG9mIGNvbnRleHQgc3RydWN0dXJlZCBlcnJvciBtZXNzYWdlcy4gVGhpcyBzaW1wbHkgbWVhbnMgdGhhdCBAaGFuZGxlciB3aWxsIGJlIGNhbGxlZCBmb3Igc3Vic2VxdWVudCBlcnJvciBtZXNzYWdlcyB3aGlsZSBub3QgcGFyc2luZyBub3IgdmFsaWRhdGluZy4gQW5kIEBjdHggd2lsbCBiZSBwYXNzZWQgYXMgZmlyc3QgYXJndW1lbnQgdG8gQGhhbmRsZXIgRm9yIG11bHRpLXRocmVhZGVkIGFwcGxpY2F0aW9ucywgdGhpcyBtdXN0IGJlIHNldCBzZXBhcmF0ZWx5IGZvciBlYWNoIHRocmVhZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3RoZSBuZXcgZXJyb3IgaGFuZGxpbmcgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdoYW5kbGVyJyB0eXBlPSd4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBpbmZvPSd0aGUgbmV3IGhhbmRsZXIgZnVuY3Rpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXRUcmVlRG9jJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGluZm8+dXBkYXRlIGFsbCBub2RlcyB1bmRlciB0aGUgdHJlZSB0byBwb2ludCB0byB0aGUgcmlnaHQgZG9jdW1lbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJlZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHRvcCBlbGVtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTZXR1cFBhcnNlckZvckJ1ZmZlcicgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0dXAgdGhlIHBhcnNlciBjb250ZXh0IHRvIHBhcnNlIGEgbmV3IGJ1ZmZlcjsgQ2xlYXJzIGFueSBwcmlvciBjb250ZW50cyBmcm9tIHRoZSBwYXJzZXIgY29udGV4dC4gVGhlIGJ1ZmZlciBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgTlVMTCwgYnV0IHRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgY2FuIGJlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J2FuIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdidWZmZXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSB4bWxDaGFyICogYnVmZmVyJy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgZmlsZSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2hlbGwnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgVGhpcyBhbGxvdyB0byBsb2FkLCB2YWxpZGF0ZSwgdmlldywgbW9kaWZ5IGFuZCBzYXZlIGEgZG9jdW1lbnQgdXNpbmcgYSBlbnZpcm9ubWVudCBzaW1pbGFyIHRvIGEgVU5JWCBjb21tYW5kbGluZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBpbml0aWFsIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjaGFyIConIGluZm89J3RoZSBvdXRwdXQgYnVmZmVyJy8+CisgICAgICA8YXJnIG5hbWU9J2lucHV0JyB0eXBlPSd4bWxTaGVsbFJlYWRsaW5lRnVuYycgaW5mbz0ndGhlIGxpbmUgcmVhZGluZyBmdW5jdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIG91dHB1dCBGSUxFKiwgZGVmYXVsdHMgdG8gc3Rkb3V0IGlmIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTaGVsbEJhc2UnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gJnF1b3Q7YmFzZSZxdW90OyBkdW1wcyB0aGUgY3VycmVudCBYTUwgYmFzZSBvZiB0aGUgbm9kZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNoZWxsQ3R4dFB0cicgaW5mbz0ndGhlIHNoZWxsIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJnJyB0eXBlPSdjaGFyIConIGluZm89J3VudXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZTInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3VudXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNoZWxsQ2F0JyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICZxdW90O2NhdCZxdW90OyBkdW1wcyB0aGUgc2VyaWFsaXphdGlvbiBub2RlIGNvbnRlbnQgKFhNTCBvciBIVE1MKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTaGVsbEN0eHRQdHInIGluZm89J3RoZSBzaGVsbCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2FyZycgdHlwZT0nY2hhciAqJyBpbmZvPSd1bnVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd1bnVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxTaGVsbENtZCcgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgaXMgYSBnZW5lcmljIHNpZ25hdHVyZSBmb3IgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbnMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J2FuIGludCwgbmVnYXRpdmUgcmV0dXJucyBpbmRpY2F0aW5nIGVycm9ycy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2hlbGxDdHh0UHRyJyBpbmZvPSdhIHNoZWxsIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJnJyB0eXBlPSdjaGFyIConIGluZm89J2Egc3RyaW5nIGFyZ3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgZmlyc3Qgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlMicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBzZWNvbmQgbm9kZScvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNoZWxsRGlyJyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICZxdW90O2RpciZxdW90OyBkdW1wcyBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIG5vZGUgKG5hbWVzcGFjZSwgYXR0cmlidXRlcywgY29udGVudCkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2hlbGxDdHh0UHRyJyBpbmZvPSd0aGUgc2hlbGwgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdhcmcnIHR5cGU9J2NoYXIgKicgaW5mbz0ndW51c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2Egbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlMicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndW51c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2hlbGxEdScgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAmcXVvdDtkdSZxdW90OyBzaG93IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHN1YnRyZWUgdW5kZXIgbm9kZSBAdHJlZSBJZiBAdHJlZSBpcyBudWxsLCB0aGUgY29tbWFuZCB3b3JrcyBvbiB0aGUgY3VycmVudCBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2hlbGxDdHh0UHRyJyBpbmZvPSd0aGUgc2hlbGwgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdhcmcnIHR5cGU9J2NoYXIgKicgaW5mbz0ndW51c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J3RyZWUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2Egbm9kZSBkZWZpbmluZyBhIHN1YnRyZWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZTInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3VudXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNoZWxsTGlzdCcgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAmcXVvdDtscyZxdW90OyBEb2VzIGFuIFVuaXggbGlrZSBsaXN0aW5nIG9mIHRoZSBnaXZlbiBub2RlIChsaWtlIGEgZGlyZWN0b3J5KTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFNoZWxsQ3R4dFB0cicgaW5mbz0ndGhlIHNoZWxsIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJnJyB0eXBlPSdjaGFyIConIGluZm89J3VudXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZTInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3VudXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNoZWxsTG9hZCcgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAmcXVvdDtsb2FkJnF1b3Q7IGxvYWRzIGEgbmV3IGRvY3VtZW50IHNwZWNpZmllZCBieSB0aGUgZmlsZW5hbWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBvciAtMSBpZiBsb2FkaW5nIGZhaWxlZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTaGVsbEN0eHRQdHInIGluZm89J3RoZSBzaGVsbCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjaGFyIConIGluZm89J3RoZSBmaWxlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndW51c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd1bnVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTaGVsbFByaW50Tm9kZScgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByaW50IG5vZGUgdG8gdGhlIG91dHB1dCBGSUxFPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2Egbm9uLW51bGwgbm9kZSB0byBwcmludCB0byB0aGUgb3V0cHV0IEZJTEUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTaGVsbFByaW50WFBhdGhFcnJvcicgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByaW50IHRoZSB4cGF0aCBlcnJvciB0byBsaWJ4bWwgZGVmYXVsdCBlcnJvciBjaGFubmVsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2Vycm9yVHlwZScgdHlwZT0naW50JyBpbmZvPSd2YWxpZCB4cGF0aCBlcnJvciBpZCcvPgorICAgICAgPGFyZyBuYW1lPSdhcmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGFyZ3VtZW50IHRoYXQgY2F1c2UgeHBhdGggdG8gZmFpbCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNoZWxsUHJpbnRYUGF0aFJlc3VsdCcgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByaW50cyByZXN1bHQgdG8gdGhlIG91dHB1dCBGSUxFPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2xpc3QnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSdhIHZhbGlkIHJlc3VsdCBnZW5lcmF0ZWQgYnkgYW4geHBhdGggZXZhbHVhdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNoZWxsUHdkJyBmaWxlPSdkZWJ1Z1hNTCcgbW9kdWxlPSdkZWJ1Z1hNTCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50cyB0aGUgWE1MIHNoZWxsIGZ1bmN0aW9uICZxdW90O3B3ZCZxdW90OyBTaG93IHRoZSBmdWxsIHBhdGggZnJvbSB0aGUgcm9vdCB0byB0aGUgbm9kZSwgaWYgbmVlZGVkIGJ1aWxkaW5nIHRodW1ibGVycyB3aGVuIHNpbWlsYXIgZWxlbWVudHMgZXhpc3RzIGF0IGEgZ2l2ZW4gYW5jZXN0b3IgbGV2ZWwuIFRoZSBvdXRwdXQgaXMgY29tcGF0aWJsZSB3aXRoIFhQYXRoIGNvbW1hbmRzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2hlbGxDdHh0UHRyJyBpbmZvPSd0aGUgc2hlbGwgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdidWZmZXInIHR5cGU9J2NoYXIgKicgaW5mbz0ndGhlIG91dHB1dCBidWZmZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd1bnVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxTaGVsbFJlYWRsaW5lRnVuYycgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgaXMgYSBnZW5lcmljIHNpZ25hdHVyZSBmb3IgdGhlIFhNTCBzaGVsbCBpbnB1dCBmdW5jdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NoYXIgKicgaW5mbz0nYSBzdHJpbmcgd2hpY2ggd2lsbCBiZSBmcmVlZCBieSB0aGUgU2hlbGwuJy8+CisgICAgICA8YXJnIG5hbWU9J3Byb21wdCcgdHlwZT0nY2hhciAqJyBpbmZvPSdhIHN0cmluZyBwcm9tcHQnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTaGVsbFNhdmUnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBYTUwgc2hlbGwgZnVuY3Rpb24gJnF1b3Q7c2F2ZSZxdW90OyBXcml0ZSB0aGUgY3VycmVudCBkb2N1bWVudCB0byB0aGUgZmlsZW5hbWUsIG9yIGl0JmFwb3M7cyBvcmlnaW5hbCBuYW1lPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTaGVsbEN0eHRQdHInIGluZm89J3RoZSBzaGVsbCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGVuYW1lJyB0eXBlPSdjaGFyIConIGluZm89J3RoZSBmaWxlIG5hbWUgKG9wdGlvbmFsKScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd1bnVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZTInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3VudXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNoZWxsVmFsaWRhdGUnIGZpbGU9J2RlYnVnWE1MJyBtb2R1bGU9J2RlYnVnWE1MJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAmcXVvdDt2YWxpZGF0ZSZxdW90OyBWYWxpZGF0ZSB0aGUgZG9jdW1lbnQsIGlmIGEgRFREIHBhdGggaXMgcHJvdmlkZWQsIHRoZW4gdGhlIHZhbGlkYXRpb24gaXMgZG9uZSBhZ2FpbnN0IHRoZSBnaXZlbiBEVEQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxTaGVsbEN0eHRQdHInIGluZm89J3RoZSBzaGVsbCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2R0ZCcgdHlwZT0nY2hhciAqJyBpbmZvPSd0aGUgRFREIFVSSSAob3B0aW9uYWwpJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3VudXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlMicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndW51c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2hlbGxXcml0ZScgZmlsZT0nZGVidWdYTUwnIG1vZHVsZT0nZGVidWdYTUwnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbiAmcXVvdDt3cml0ZSZxdW90OyBXcml0ZSB0aGUgY3VycmVudCBub2RlIHRvIHRoZSBmaWxlbmFtZSwgaXQgc2F2ZXMgdGhlIHNlcmlhbGl6YXRpb24gb2YgdGhlIHN1YnRyZWUgdW5kZXIgdGhlIEBub2RlIHNwZWNpZmllZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2hlbGxDdHh0UHRyJyBpbmZvPSd0aGUgc2hlbGwgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdmaWxlbmFtZScgdHlwZT0nY2hhciAqJyBpbmZvPSd0aGUgZmlsZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2Egbm9kZSBpbiB0aGUgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlMicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndW51c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU2tpcEJsYW5rQ2hhcnMnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+c2tpcCBhbGwgYmxhbmtzIGNoYXJhY3RlciBmb3VuZCBhdCB0aGF0IHBvaW50IGluIHRoZSBpbnB1dCBzdHJlYW1zLiBJdCBwb3BzIHVwIGZpbmlzaGVkIGVudGl0aWVzIGluIHRoZSBwcm9jZXNzIGlmIGFsbG93YWJsZSBhdCB0aGF0IHBvaW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIHNwYWNlIGNoYXJzIHNraXBwZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIFhNTCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNucHJpbnRmRWxlbWVudENvbnRlbnQnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPlRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBlbGVtZW50IGNvbnRlbnQgZGVmaW5pdGlvbiBJbnRlbmRlZCBqdXN0IGZvciB0aGUgZGVidWcgcm91dGluZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdidWYnIHR5cGU9J2NoYXIgKicgaW5mbz0nYW4gb3V0cHV0IGJ1ZmZlcicvPgorICAgICAgPGFyZyBuYW1lPSdzaXplJyB0eXBlPSdpbnQnIGluZm89J3RoZSBidWZmZXIgc2l6ZScvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSd4bWxFbGVtZW50Q29udGVudFB0cicgaW5mbz0nQW4gZWxlbWVudCB0YWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmdsb2InIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBvbmUgbXVzdCBwcmludCB0aGUgZW5nbG9iaW5nIHBhcmVudGhlc2lzLCAwIG90aGVyd2lzZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNwbGl0UU5hbWUnIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXInPgorICAgICAgPGluZm8+cGFyc2UgYW4gVVRGOCBlbmNvZGVkIFhNTCBxdWFsaWZpZWQgbmFtZSBzdHJpbmcgIFtOUyA1XSBRTmFtZSA6Oj0gKFByZWZpeCAmYXBvczs6JmFwb3M7KT8gTG9jYWxQYXJ0ICBbTlMgNl0gUHJlZml4IDo6PSBOQ05hbWUgIFtOUyA3XSBMb2NhbFBhcnQgOjo9IE5DTmFtZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgbG9jYWwgcGFydCwgYW5kIHByZWZpeCBpcyB1cGRhdGVkIHRvIGdldCB0aGUgUHJlZml4IGlmIGFueS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYW4gWE1MIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0nYSB4bWxDaGFyICoqJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3BsaXRRTmFtZTInIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgcXVhbGlmaWVkIG5hbWUgc3RyaW5nICBbTlMgNV0gUU5hbWUgOjo9IChQcmVmaXggJmFwb3M7OiZhcG9zOyk/IExvY2FsUGFydCAgW05TIDZdIFByZWZpeCA6Oj0gTkNOYW1lICBbTlMgN10gTG9jYWxQYXJ0IDo6PSBOQ05hbWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nTlVMTCBpZiBub3QgYSBRTmFtZSwgb3RoZXJ3aXNlIHRoZSBsb2NhbCBwYXJ0LCBhbmQgcHJlZml4IGlzIHVwZGF0ZWQgdG8gZ2V0IHRoZSBQcmVmaXggaWYgYW55LicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBmdWxsIFFOYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0neG1sQ2hhciAqKicgaW5mbz0nYSB4bWxDaGFyICoqJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3BsaXRRTmFtZTMnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgcXVhbGlmaWVkIG5hbWUgc3RyaW5nLGk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nTlVMTCBpZiBpdCBpcyBub3QgYSBRdWFsaWZpZWQgTmFtZSwgb3RoZXJ3aXNlLCB1cGRhdGUgbGVuIHdpdGggdGhlIGxlbmdodCBpbiBieXRlIG9mIHRoZSBwcmVmaXggYW5kIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBuYW1lIHdpdGhvdXQgdGhlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBmdWxsIFFOYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50IConIGluZm89J2FuIGludCAqJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3ByaW50ZkVsZW1lbnRDb250ZW50JyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZXByZWNhdGVkLCB1bnNhZmUsIHVzZSB4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0nY2hhciAqJyBpbmZvPSdhbiBvdXRwdXQgYnVmZmVyJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J3htbEVsZW1lbnRDb250ZW50UHRyJyBpbmZvPSdBbiBlbGVtZW50IHRhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J2VuZ2xvYicgdHlwZT0naW50JyBpbmZvPScxIGlmIG9uZSBtdXN0IHByaW50IHRoZSBlbmdsb2JpbmcgcGFyZW50aGVzaXMsIDAgb3RoZXJ3aXNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3RvcFBhcnNlcicgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlcic+CisgICAgICA8aW5mbz5CbG9ja3MgZnVydGhlciBwYXJzZXIgcHJvY2Vzc2luZzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSdhbiBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJFcXVhbCcgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5DaGVjayBpZiBib3RoIHN0cmluZ3MgYXJlIGVxdWFsIG9mIGhhdmUgc2FtZSBjb250ZW50LiBTaG91bGQgYmUgYSBiaXQgbW9yZSByZWFkYWJsZSBhbmQgZmFzdGVyIHRoYW4geG1sU3RyY21wKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0aGV5IGFyZSBlcXVhbCwgMCBpZiB0aGV5IGFyZSBkaWZmZXJlbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyMScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZmlyc3QgeG1sQ2hhciAqJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cjInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHNlY29uZCB4bWxDaGFyIConLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJQcmludGYnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+Rm9ybWF0cyBAbXNnIGFuZCBwbGFjZXMgcmVzdWx0IGludG8gQGJ1Zi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdyaXR0ZW4gdG8gQGJ1ZiBvciAtMSBpZiBhbiBlcnJvciBvY2N1cnMuJy8+CisgICAgICA8YXJnIG5hbWU9J2J1ZicgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgcmVzdWx0IGJ1ZmZlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSByZXN1bHQgYnVmZmVyIGxlbmd0aC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbXNnJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBtZXNzYWdlIHdpdGggcHJpbnRmIGZvcm1hdHRpbmcuJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJRRXF1YWwnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+Q2hlY2sgaWYgYSBRTmFtZSBpcyBFcXVhbCB0byBhIGdpdmVuIHN0cmluZzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZXkgYXJlIGVxdWFsLCAwIGlmIHRoZXkgYXJlIGRpZmZlcmVudCcvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwcmVmaXggb2YgdGhlIFFOYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxvY2FsbmFtZSBvZiB0aGUgUU5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzZWNvbmQgeG1sQ2hhciAqJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3RyVlByaW50ZicgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5Gb3JtYXRzIEBtc2cgYW5kIHBsYWNlcyByZXN1bHQgaW50byBAYnVmLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYnVmJyB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSByZXN1bHQgYnVmZmVyLicvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIHJlc3VsdCBidWZmZXIgbGVuZ3RoLicvPgorICAgICAgPGFyZyBuYW1lPSdtc2cnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG1lc3NhZ2Ugd2l0aCBwcmludGYgZm9ybWF0dGluZy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nYXAnIHR5cGU9J3ZhX2xpc3QnIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmNhc2VjbXAnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+YSBzdHJjYXNlY21wIGZvciB4bWxDaGFyJmFwb3M7czwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyMScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZmlyc3QgeG1sQ2hhciAqJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cjInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHNlY29uZCB4bWxDaGFyIConLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJjYXNlc3RyJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmEgY2FzZS1pZ25vcmluZyBzdHJzdHIgZm9yIHhtbENoYXImYXBvcztzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyICogZm9yIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9yIE5VTEwuJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgeG1sQ2hhciAqIGFycmF5IChoYXlzdGFjayknLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyIHRvIHNlYXJjaCAobmVlZGxlKScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmNhdCcgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5hIHN0cmNhdCBmb3IgYXJyYXkgb2YgeG1sQ2hhciZhcG9zO3MuIFNpbmNlIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGJlIGVuY29kZWQgaW4gVVRGLTggb3IgYW4gZW5jb2Rpbmcgd2l0aCA4Yml0IGJhc2VkIGNoYXJzLCB3ZSBhc3N1bWUgYSB0ZXJtaW5hdGlvbiBtYXJrIG9mICZhcG9zOzAmYXBvczsuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgbmV3IHhtbENoYXIgKiBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgc3RyaW5nLicvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG9yaWdpbmFsIHhtbENoYXIgKiBhcnJheScvPgorICAgICAgPGFyZyBuYW1lPSdhZGQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHhtbENoYXIgKiBhcnJheSBhZGRlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmNocicgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5hIHN0cmNociBmb3IgeG1sQ2hhciZhcG9zO3M8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHhtbENoYXIgKiBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyICogYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxDaGFyJyBpbmZvPSd0aGUgeG1sQ2hhciB0byBzZWFyY2gnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJjbXAnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+YSBzdHJjbXAgZm9yIHhtbENoYXImYXBvcztzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBpbnRlZ2VyIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbicvPgorICAgICAgPGFyZyBuYW1lPSdzdHIxJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBmaXJzdCB4bWxDaGFyIConLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc2Vjb25kIHhtbENoYXIgKicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmR1cCcgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5hIHN0cmR1cCBmb3IgYXJyYXkgb2YgeG1sQ2hhciZhcG9zO3MuIFNpbmNlIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGJlIGVuY29kZWQgaW4gVVRGLTggb3IgYW4gZW5jb2Rpbmcgd2l0aCA4Yml0IGJhc2VkIGNoYXJzLCB3ZSBhc3N1bWUgYSB0ZXJtaW5hdGlvbiBtYXJrIG9mICZhcG9zOzAmYXBvczsuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgbmV3IHhtbENoYXIgKiBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgaW5wdXQgeG1sQ2hhciAqJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sU3RyZHVwRnVuYycgZmlsZT0neG1sbWVtb3J5JyBtb2R1bGU9J3htbG1lbW9yeSc+CisgICAgICA8aW5mbz5TaWduYXR1cmUgZm9yIGFuIHN0cmR1cCgpIGltcGxlbWVudGF0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY2hhciAqJyBpbmZvPSd0aGUgY29weSBvZiB0aGUgc3RyaW5nIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2EgemVybyB0ZXJtaW5hdGVkIHN0cmluZycvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmVhbVBvcCcgZmlsZT0ncGF0dGVybicgbW9kdWxlPSdwYXR0ZXJuJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wdXNoIG9uZSBsZXZlbCBmcm9tIHRoZSBzdHJlYW0uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgb3RoZXJ3aXNlLicvPgorICAgICAgPGFyZyBuYW1lPSdzdHJlYW0nIHR5cGU9J3htbFN0cmVhbUN0eHRQdHInIGluZm89J3RoZSBzdHJlYW0gY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmVhbVB1c2gnIGZpbGU9J3BhdHRlcm4nIG1vZHVsZT0ncGF0dGVybic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHVzaCBuZXcgZGF0YSBvbnRvIHRoZSBzdHJlYW0uIE5PVEU6IGlmIHRoZSBjYWxsIHhtbFBhdHRlcm5jb21waWxlKCkgaW5kaWNhdGVkIGEgZGljdGlvbmFyeSwgdGhlbiBzdHJpbmdzIGZvciBuYW1lIGFuZCBucyB3aWxsIGJlIGV4cGVjdGVkIHRvIGNvbWUgZnJvbSB0aGUgZGljdGlvbmFyeS4gQm90aCBAbmFtZSBhbmQgQG5zIGJlaW5nIE5VTEwgbWVhbnMgdGhlIC8gaS5lLiB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnQuIFRoaXMgY2FuIGFsc28gYWN0IGFzIGEgcmVzZXQuIE90aGVyd2lzZSB0aGUgZnVuY3Rpb24gd2lsbCBhY3QgYXMgaWYgaXQgaGFzIGJlZW4gZ2l2ZW4gYW4gZWxlbWVudC1ub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpbiBjYXNlIG9mIGVycm9yLCAxIGlmIHRoZSBjdXJyZW50IHN0YXRlIGluIHRoZSBzdHJlYW0gaXMgYSBtYXRjaCBhbmQgMCBvdGhlcndpc2UuJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cmVhbScgdHlwZT0neG1sU3RyZWFtQ3R4dFB0cicgaW5mbz0ndGhlIHN0cmVhbSBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGN1cnJlbnQgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIG5hbWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJlYW1QdXNoQXR0cicgZmlsZT0ncGF0dGVybicgbW9kdWxlPSdwYXR0ZXJuJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5QdXNoIG5ldyBhdHRyaWJ1dGUgZGF0YSBvbnRvIHRoZSBzdHJlYW0uIE5PVEU6IGlmIHRoZSBjYWxsIHhtbFBhdHRlcm5jb21waWxlKCkgaW5kaWNhdGVkIGEgZGljdGlvbmFyeSwgdGhlbiBzdHJpbmdzIGZvciBuYW1lIGFuZCBucyB3aWxsIGJlIGV4cGVjdGVkIHRvIGNvbWUgZnJvbSB0aGUgZGljdGlvbmFyeS4gQm90aCBAbmFtZSBhbmQgQG5zIGJlaW5nIE5VTEwgbWVhbnMgdGhlIC8gaS5lLiB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnQuIFRoaXMgY2FuIGFsc28gYWN0IGFzIGEgcmVzZXQuIE90aGVyd2lzZSB0aGUgZnVuY3Rpb24gd2lsbCBhY3QgYXMgaWYgaXQgaGFzIGJlZW4gZ2l2ZW4gYW4gYXR0cmlidXRlLW5vZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89Jy0xIGluIGNhc2Ugb2YgZXJyb3IsIDEgaWYgdGhlIGN1cnJlbnQgc3RhdGUgaW4gdGhlIHN0cmVhbSBpcyBhIG1hdGNoIGFuZCAwIG90aGVyd2lzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyZWFtJyB0eXBlPSd4bWxTdHJlYW1DdHh0UHRyJyBpbmZvPSd0aGUgc3RyZWFtIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgY3VycmVudCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmVhbVB1c2hOb2RlJyBmaWxlPSdwYXR0ZXJuJyBtb2R1bGU9J3BhdHRlcm4nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlB1c2ggbmV3IGRhdGEgb250byB0aGUgc3RyZWFtLiBOT1RFOiBpZiB0aGUgY2FsbCB4bWxQYXR0ZXJuY29tcGlsZSgpIGluZGljYXRlZCBhIGRpY3Rpb25hcnksIHRoZW4gc3RyaW5ncyBmb3IgbmFtZSBhbmQgbnMgd2lsbCBiZSBleHBlY3RlZCB0byBjb21lIGZyb20gdGhlIGRpY3Rpb25hcnkuIEJvdGggQG5hbWUgYW5kIEBucyBiZWluZyBOVUxMIG1lYW5zIHRoZSAvIGkuZS4gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50LiBUaGlzIGNhbiBhbHNvIGFjdCBhcyBhIHJlc2V0LiBEaWZmZXJlbnQgZnJvbSB4bWxTdHJlYW1QdXNoKCkgdGhpcyBmdW5jdGlvbiBjYW4gYmUgZmVkIHdpdGggbm9kZXMgb2YgdHlwZTogZWxlbWVudC0sIGF0dHJpYnV0ZS0sIHRleHQtLCBjZGF0YS1zZWN0aW9uLSwgY29tbWVudC0gYW5kIHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBlcnJvciwgMSBpZiB0aGUgY3VycmVudCBzdGF0ZSBpbiB0aGUgc3RyZWFtIGlzIGEgbWF0Y2ggYW5kIDAgb3RoZXJ3aXNlLicvPgorICAgICAgPGFyZyBuYW1lPSdzdHJlYW0nIHR5cGU9J3htbFN0cmVhbUN0eHRQdHInIGluZm89J3RoZSBzdHJlYW0gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBjdXJyZW50IG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbnMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVUeXBlJyB0eXBlPSdpbnQnIGluZm89J3RoZSB0eXBlIG9mIHRoZSBub2RlIGJlaW5nIHB1c2hlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmVhbVdhbnRzQW55Tm9kZScgZmlsZT0ncGF0dGVybicgbW9kdWxlPSdwYXR0ZXJuJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5RdWVyeSBpZiB0aGUgc3RyZWFtaW5nIHBhdHRlcm4gYWRkaXRpb25hbGx5IG5lZWRzIHRvIGJlIGZlZCB3aXRoIHRleHQtLCBjZGF0YS1zZWN0aW9uLSwgY29tbWVudC0gYW5kIHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tbm9kZXMuIElmIHRoZSByZXN1bHQgaXMgMCB0aGVuIG9ubHkgZWxlbWVudC1ub2RlcyBhbmQgYXR0cmlidXRlLW5vZGVzIG5lZWQgdG8gYmUgcHVzaGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGluIGNhc2Ugb2YgbmVlZCBvZiBub2RlcyBvZiB0aGUgYWJvdmUgZGVzY3JpYmVkIHR5cGVzLCAwIG90aGVyd2lzZS4gLTEgb24gQVBJIGVycm9ycy4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyZWFtQ3R4dCcgdHlwZT0neG1sU3RyZWFtQ3R4dFB0cicgaW5mbz0ndGhlIHN0cmVhbSBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3RyaW5nQ3VycmVudENoYXInIGZpbGU9J3BhcnNlckludGVybmFscycgbW9kdWxlPSdwYXJzZXJJbnRlcm5hbHMnPgorICAgICAgPGluZm8+VGhlIGN1cnJlbnQgY2hhciB2YWx1ZSwgaWYgdXNpbmcgVVRGLTggdGhpcyBtYXkgYWN0dWFsbHkgc3BhbiBtdWx0aXBsZSBieXRlcyBpbiB0aGUgaW5wdXQgYnVmZmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgY3VycmVudCBjaGFyIHZhbHVlIGFuZCBpdHMgbGVuZ3RoJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBYTUwgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3BvaW50ZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY2hhcicvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCAqJyBpbmZvPSdwb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIGNoYXIgcmVhZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmluZ0RlY29kZUVudGl0aWVzJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlRha2VzIGEgZW50aXR5IHN0cmluZyBjb250ZW50IGFuZCBwcm9jZXNzIHRvIGRvIHRoZSBhZGVxdWF0ZSBzdWJzdGl0dXRpb25zLiAgWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgIFs2OV0gUEVSZWZlcmVuY2UgOjo9ICZhcG9zOyUmYXBvczsgTmFtZSAmYXBvczs7JmFwb3M7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J0EgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4gVGhlIGNhbGxlciBtdXN0IGRlYWxsb2NhdGUgaXQgIScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnB1dCBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nd2hhdCcgdHlwZT0naW50JyBpbmZvPSdjb21iaW5hdGlvbiBvZiBYTUxfU1VCU1RJVFVURV9SRUYgYW5kIFhNTF9TVUJTVElUVVRFX1BFUkVGJy8+CisgICAgICA8YXJnIG5hbWU9J2VuZCcgdHlwZT0neG1sQ2hhcicgaW5mbz0nYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5kMicgdHlwZT0neG1sQ2hhcicgaW5mbz0nYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5kMycgdHlwZT0neG1sQ2hhcicgaW5mbz0nYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJpbmdHZXROb2RlTGlzdCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlBhcnNlIHRoZSB2YWx1ZSBzdHJpbmcgYW5kIGJ1aWxkIHRoZSBub2RlIGxpc3QgYXNzb2NpYXRlZC4gU2hvdWxkIHByb2R1Y2UgYSBmbGF0IHRyZWUgd2l0aCBvbmx5IFRFWFRzIGFuZCBFTlRJVFlfUkVGcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgcG9pbnRlciB0byB0aGUgZmlyc3QgY2hpbGQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSBkb2N1bWVudCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VyJz4KKyAgICAgIDxpbmZvPlRha2VzIGEgZW50aXR5IHN0cmluZyBjb250ZW50IGFuZCBwcm9jZXNzIHRvIGRvIHRoZSBhZGVxdWF0ZSBzdWJzdGl0dXRpb25zLiAgWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYgIFs2OV0gUEVSZWZlcmVuY2UgOjo9ICZhcG9zOyUmYXBvczsgTmFtZSAmYXBvczs7JmFwb3M7PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J0EgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4gVGhlIGNhbGxlciBtdXN0IGRlYWxsb2NhdGUgaXQgIScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnB1dCBzdHJpbmcnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBzdHJpbmcgbGVuZ3RoJy8+CisgICAgICA8YXJnIG5hbWU9J3doYXQnIHR5cGU9J2ludCcgaW5mbz0nY29tYmluYXRpb24gb2YgWE1MX1NVQlNUSVRVVEVfUkVGIGFuZCBYTUxfU1VCU1RJVFVURV9QRVJFRicvPgorICAgICAgPGFyZyBuYW1lPSdlbmQnIHR5cGU9J3htbENoYXInIGluZm89J2FuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lJy8+CisgICAgICA8YXJnIG5hbWU9J2VuZDInIHR5cGU9J3htbENoYXInIGluZm89J2FuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lJy8+CisgICAgICA8YXJnIG5hbWU9J2VuZDMnIHR5cGU9J3htbENoYXInIGluZm89J2FuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5QYXJzZSB0aGUgdmFsdWUgc3RyaW5nIGFuZCBidWlsZCB0aGUgbm9kZSBsaXN0IGFzc29jaWF0ZWQuIFNob3VsZCBwcm9kdWNlIGEgZmxhdCB0cmVlIHdpdGggb25seSBURVhUcyBhbmQgRU5USVRZX1JFRnMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGNoaWxkJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlIG9mIHRoZSB0ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJsZW4nIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+bGVuZ3RoIG9mIGEgeG1sQ2hhciZhcG9zO3Mgc3RyaW5nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgeG1sQ2hhciBjb250YWluZWQgaW4gdGhlIEFSUkFZLicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHhtbENoYXIgKiBhcnJheScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cm5jYXNlY21wJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmEgc3RybmNhc2VjbXAgZm9yIHhtbENoYXImYXBvcztzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBpbnRlZ2VyIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbicvPgorICAgICAgPGFyZyBuYW1lPSdzdHIxJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBmaXJzdCB4bWxDaGFyIConLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyMicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc2Vjb25kIHhtbENoYXIgKicvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIG1heCBjb21wYXJpc29uIGxlbmd0aCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cm5jYXQnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+YSBzdHJuY2F0IGZvciBhcnJheSBvZiB4bWxDaGFyJmFwb3M7cywgaXQgd2lsbCBleHRlbmQgQGN1ciB3aXRoIHRoZSBsZW4gZmlyc3QgYnl0ZXMgb2YgQGFkZC4gTm90ZSB0aGF0IGlmIEBsZW4gJmx0OyAwIHRoZW4gdGhpcyBpcyBhbiBBUEkgZXJyb3IgYW5kIE5VTEwgd2lsbCBiZSByZXR1cm5lZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXcgeG1sQ2hhciAqLCB0aGUgb3JpZ2luYWwgQGN1ciBpcyByZWFsbG9jYXRlZCBpZiBuZWVkZWQgYW5kIHNob3VsZCBub3QgYmUgZnJlZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBvcmlnaW5hbCB4bWxDaGFyICogYXJyYXknLz4KKyAgICAgIDxhcmcgbmFtZT0nYWRkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyICogYXJyYXkgYWRkZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW5ndGggb2YgQGFkZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cm5jYXROZXcnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+c2FtZSBhcyB4bWxTdHJuY2F0LCBidXQgY3JlYXRlcyBhIG5ldyBzdHJpbmcuICBUaGUgb3JpZ2luYWwgdHdvIHN0cmluZ3MgYXJlIG5vdCBmcmVlZC4gSWYgQGxlbiBpcyAmbHQ7IDAgdGhlbiB0aGUgbGVuZ3RoIHdpbGwgYmUgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIG5ldyB4bWxDaGFyICogb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdzdHIxJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2ZpcnN0IHhtbENoYXIgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cjInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nc2Vjb25kIHhtbENoYXIgc3RyaW5nJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbGVuIG9mIEBzdHIyIG9yICZsdDsgMCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cm5jbXAnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+YSBzdHJuY21wIGZvciB4bWxDaGFyJmFwb3M7czwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyMScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZmlyc3QgeG1sQ2hhciAqJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cjInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHNlY29uZCB4bWxDaGFyIConLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBtYXggY29tcGFyaXNvbiBsZW5ndGgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTdHJuZHVwJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmEgc3RybmR1cCBmb3IgYXJyYXkgb2YgeG1sQ2hhciZhcG9zO3M8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXcgeG1sQ2hhciAqIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBpbnB1dCB4bWxDaGFyIConLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RoZSBsZW4gb2YgQGN1cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFN0cnN0cicgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5hIHN0cnN0ciBmb3IgeG1sQ2hhciZhcG9zO3M8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHhtbENoYXIgKiBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyICogYXJyYXkgKGhheXN0YWNrKScvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHhtbENoYXIgdG8gc2VhcmNoIChuZWVkbGUpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3Ryc3ViJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPkV4dHJhY3QgYSBzdWJzdHJpbmcgb2YgYSBnaXZlbiBzdHJpbmc8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHhtbENoYXIgKiBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb3IgTlVMTC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyICogYXJyYXkgKGhheXN0YWNrKScvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0naW50JyBpbmZvPSd0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXIgKHplcm8gYmFzZWQpJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbGVuZ3RoIG9mIHRoZSBzdWJzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBmaWxlPSd4bWxlcnJvcicgbW9kdWxlPSd4bWxlcnJvcic+CisgICAgICA8aW5mbz5TaWduYXR1cmUgb2YgdGhlIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGFuZCB0aGUgbW9kdWxlIGhhbmRsZXMgdGhlIG5ldyBlcnJvciByZXBvcnRpbmcgbWVjaGFuaXNtLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSd1c2VyRGF0YScgdHlwZT0ndm9pZCAqJyBpbmZvPSd1c2VyIHByb3ZpZGVkIGRhdGEgZm9yIHRoZSBlcnJvciBjYWxsYmFjaycvPgorICAgICAgPGFyZyBuYW1lPSdlcnJvcicgdHlwZT0neG1sRXJyb3JQdHInIGluZm89J3RoZSBlcnJvciBiZWluZyByYWlzZWQuJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCcgZmlsZT0ncGFyc2VyJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5TZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGRlZmF1bHQgZW50aXR5IHN1cHBvcnQuIEluaXRpYWxseSB0aGUgcGFyc2VyIGFsd2F5cyBrZWVwIGVudGl0eSByZWZlcmVuY2VzIGluc3RlYWQgb2Ygc3Vic3RpdHV0aW5nIGVudGl0eSB2YWx1ZXMgaW4gdGhlIG91dHB1dC4gVGhpcyBmdW5jdGlvbiBoYXMgdG8gYmUgdXNlZCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgcGFyc2VyIGJlaGF2aW9yIFNBWDo6c3Vic3RpdHV0ZUVudGl0aWVzKCkgaGFzIHRvIGJlIHVzZWQgZm9yIGNoYW5naW5nIHRoYXQgb24gYSBmaWxlIGJ5IGZpbGUgYmFzaXMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBsYXN0IHZhbHVlIGZvciAwIGZvciBubyBzdWJzdGl0dXRpb24sIDEgZm9yIHN1YnN0aXR1dGlvbi4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdpbnQnIGluZm89J2ludCAwIG9yIDEnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTd2l0Y2hFbmNvZGluZycgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5jaGFuZ2UgdGhlIGlucHV0IGZ1bmN0aW9ucyB3aGVuIGRpc2NvdmVyaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgYSBnaXZlbiBlbnRpdHkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuYycgdHlwZT0neG1sQ2hhckVuY29kaW5nJyBpbmZvPSd0aGUgZW5jb2RpbmcgdmFsdWUgKG51bWJlciknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxTd2l0Y2hJbnB1dEVuY29kaW5nJyBmaWxlPSdwYXJzZXJJbnRlcm5hbHMnIG1vZHVsZT0ncGFyc2VySW50ZXJuYWxzJz4KKyAgICAgIDxpbmZvPmNoYW5nZSB0aGUgaW5wdXQgZnVuY3Rpb25zIHdoZW4gZGlzY292ZXJpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiBhIGdpdmVuIGVudGl0eS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0naW5wdXQnIHR5cGU9J3htbFBhcnNlcklucHV0UHRyJyBpbmZvPSd0aGUgaW5wdXQgc3RyZWFtJy8+CisgICAgICA8YXJnIG5hbWU9J2hhbmRsZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIGluZm89J3RoZSBlbmNvZGluZyBoYW5kbGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sU3dpdGNoVG9FbmNvZGluZycgZmlsZT0ncGFyc2VySW50ZXJuYWxzJyBtb2R1bGU9J3BhcnNlckludGVybmFscyc+CisgICAgICA8aW5mbz5jaGFuZ2UgdGhlIGlucHV0IGZ1bmN0aW9ucyB3aGVuIGRpc2NvdmVyaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgYSBnaXZlbiBlbnRpdHkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2hhbmRsZXInIHR5cGU9J3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHInIGluZm89J3RoZSBlbmNvZGluZyBoYW5kbGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dENvbmNhdCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPkNvbmNhdCB0aGUgZ2l2ZW4gc3RyaW5nIGF0IHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIG5vZGUgY29udGVudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBjb250ZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSdAY29udGVudCBsZW5ndGgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0TWVyZ2UnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8aW5mbz5NZXJnZSB0d28gdGV4dCBub2RlcyBpbnRvIG9uZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGZpcnN0IHRleHQgbm9kZSBhdWdtZW50ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlyc3QnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBmaXJzdCB0ZXh0IG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2Vjb25kJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgc2Vjb25kIHRleHQgbm9kZSBiZWluZyBtZXJnZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdmlkZXMgdGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIG9mIHRoZSBjdXJyZW50IG5vZGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpIG5vIGF0dHJpYnV0ZXMsIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3IgdGhlIGF0dHJpYnV0ZSBjb3VudCcvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyQmFzZVVyaScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGUgYmFzZSBVUkkgb2YgdGhlIG5vZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBiYXNlIFVSSSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCcgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBjdXJyZW50IGluZGV4IG9mIHRoZSBwYXJzZXIgdXNlZCBieSB0aGUgcmVhZGVyLCByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgZW50aXR5LiBUaGlzIGZ1bmN0aW9uIGFjdHVhbGx5IGp1c3Qgd3JhcHMgYSBjYWxsIHRvIHhtbEJ5dGVzQ29uc3VtZWQoKSBmb3IgdGhlIHBhcnNlciBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVhZGVyLiBTZWUgeG1sQnl0ZXNDb25zdW1lZCgpIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nbG9uZycgaW5mbz0ndGhlIGluZGV4IGluIGJ5dGVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZW50aXR5IG9yIC0xIGluIGNhc2UgdGhlIGluZGV4IGNvdWxkIG5vdCBiZSBjb21wdXRlZC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSdhbiBYTUwgcmVhZGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckNsb3NlJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgbWV0aG9kIHJlbGVhc2VzIGFueSByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5IHRoZSBjdXJyZW50IGluc3RhbmNlIGNoYW5nZXMgdGhlIHN0YXRlIHRvIENsb3NlZCBhbmQgY2xvc2UgYW55IHVuZGVybHlpbmcgaW5wdXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBiYXNlIFVSSSBvZiB0aGUgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyB3aWxsIGJlIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZXRlcm1pbmUgdGhlIGVuY29kaW5nIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZyBjb250YWluaW5nIHRoZSBlbmNvZGluZyBvZiB0aGUgZG9jdW1lbnQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiAgVGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGUgbG9jYWwgbmFtZSBvZiB0aGUgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxvY2FsIG5hbWUgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLCB0aGUgc3RyaW5nIHdpbGwgYmUgZGVhbGxvY2F0ZWQgd2l0aCB0aGUgcmVhZGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3ROYW1lJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbm9kZSwgZXF1YWwgdG8gUHJlZml4IDpMb2NhbE5hbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBsb2NhbCBuYW1lIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGUgVVJJIGRlZmluaW5nIHRoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIFVSSSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZSBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXInLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckNvbnN0UHJlZml4JyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkEgc2hvcnRoYW5kIHJlZmVyZW5jZSB0byB0aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHByZWZpeCBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZSBzdHJpbmcgaXMgZGVhbGxvY2F0ZWQgd2l0aCB0aGUgcmVhZGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IGFuIGludGVybmVkIHN0cmluZyBmcm9tIHRoZSByZWFkZXIsIGFsbG93cyBmb3IgZXhhbXBsZSB0byBzcGVlZHVwIHN0cmluZyBuYW1lIGNvbXBhcmlzb25zPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2FuIGludGVybmVkIGNvcHkgb2YgdGhlIHN0cmluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZyB0byBpbnRlcm4uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckNvbnN0VmFsdWUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdmlkZXMgdGhlIHRleHQgdmFsdWUgb2YgdGhlIG5vZGUgaWYgcHJlc2VudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3RyaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZS4gVGhlIHJlc3VsdCB3aWxsIGJlIGRlYWxsb2NhdGVkIG9uIHRoZSBuZXh0IFJlYWQoKSBvcGVyYXRpb24uJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJDb25zdFhtbExhbmcnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VGhlIHhtbDpsYW5nIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbm9kZSByZXNpZGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgeG1sOmxhbmcgdmFsdWUgb3IgTlVMTCBpZiBub25lIGV4aXN0cy4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZXRlcm1pbmUgdGhlIFhNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZyBjb250YWluaW5nIHRoZSBYTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiAgVGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJDdXJyZW50RG9jJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkhhY2tpbmcgaW50ZXJmYWNlIGFsbG93aW5nIHRvIGdldCB0aGUgeG1sRG9jUHRyIGNvcnJlcG9uZGluZyB0byB0aGUgY3VycmVudCBkb2N1bWVudCBiZWluZyBhY2Nlc3NlZCBieSB0aGUgeG1sVGV4dFJlYWRlci4gTk9URTogYXMgYSByZXN1bHQgb2YgdGhpcyBjYWxsLCB0aGUgcmVhZGVyIHdpbGwgbm90IGRlc3Ryb3kgdGhlIGFzc29jaWF0ZWQgWE1MIGRvY3VtZW50IGFuZCBjYWxsaW5nIHhtbEZyZWVEb2MoKSBvbiB0aGUgcmVzdWx0IGlzIG5lZWRlZCBvbmNlIHRoZSByZWFkZXIgcGFyc2luZyBoYXMgZmluaXNoZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxEb2NQdHInIGluZm89J3RoZSB4bWxEb2NQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SGFja2luZyBpbnRlcmZhY2UgYWxsb3dpbmcgdG8gZ2V0IHRoZSB4bWxOb2RlUHRyIGNvcnJlcG9uZGluZyB0byB0aGUgY3VycmVudCBub2RlIGJlaW5nIGFjY2Vzc2VkIGJ5IHRoZSB4bWxUZXh0UmVhZGVyLiBUaGlzIGlzIGRhbmdlcm91cyBiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIG5vZGUgbWF5IGJlIGRlc3Ryb3llZCBvbiB0aGUgbmV4dCBSZWFkcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSB4bWxOb2RlUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckRlcHRoJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBkZXB0aCBvZiB0aGUgbm9kZSBpbiB0aGUgdHJlZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGRlcHRoIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sVGV4dFJlYWRlckVycm9yRnVuYycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhIHJlYWRlciBwYXJzZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJnJyB0eXBlPSd2b2lkIConIGluZm89J3RoZSB1c2VyIGFyZ3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgbWVzc2FnZScvPgorICAgICAgPGFyZyBuYW1lPSdzZXZlcml0eScgdHlwZT0neG1sUGFyc2VyU2V2ZXJpdGllcycgaW5mbz0ndGhlIHNldmVyaXR5IG9mIHRoZSBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdsb2NhdG9yJyB0eXBlPSd4bWxUZXh0UmVhZGVyTG9jYXRvclB0cicgaW5mbz0nYSBsb2NhdG9yIGluZGljYXRpbmcgd2hlcmUgdGhlIGVycm9yIG9jY3VyZWQnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyRXhwYW5kJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlYWRzIHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBub2RlIGFuZCB0aGUgZnVsbCBzdWJ0cmVlLiBJdCB0aGVuIG1ha2VzIHRoZSBzdWJ0cmVlIGF2YWlsYWJsZSB1bnRpbCB0aGUgbmV4dCB4bWxUZXh0UmVhZGVyUmVhZCgpIGNhbGw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2Egbm9kZSBwb2ludGVyIHZhbGlkIHVudGlsIHRoZSBuZXh0IHhtbFRleHRSZWFkZXJSZWFkKCkgY2FsbCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdmlkZXMgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgd2l0aCB0aGUgc3BlY2lmaWVkIHF1YWxpZmllZCBuYW1lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZSwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHF1YWxpZmllZCBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByb3ZpZGVzIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlIHdpdGggdGhlIHNwZWNpZmllZCBpbmRleCByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZSwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J25vJyB0eXBlPSdpbnQnIGluZm89J3RoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSBhdHRyaWJ1dGUgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qcm92aWRlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdsb2NhbE5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxvY2FsIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgVVJJIG9mIHRoZSBhdHRyaWJ1dGUuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZXRyaWV2ZSB0aGUgZXJyb3IgY2FsbGJhY2sgZnVuY3Rpb24gYW5kIHVzZXIgYXJndW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIConIGluZm89J3RoZSBjYWxsYmFjayBmdW5jdGlvbiBvciBOVUxMIGlzIG5vIGNhbGxiYWNrIGhhcyBiZWVuIHJlZ2lzdGVyZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJnJyB0eXBlPSd2b2lkICoqJyBpbmZvPSdhIHVzZXIgYXJndW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlByb3ZpZGUgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nYW4gaW50IG9yIDAgaWYgbm90IGF2YWlsYWJsZScvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB1c2VyIGRhdGEgKFhNTCByZWFkZXIgY29udGV4dCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qcm92aWRlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSdhbiBpbnQgb3IgMCBpZiBub3QgYXZhaWxhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHVzZXIgZGF0YSAoWE1MIHJlYWRlciBjb250ZXh0KScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlYWQgdGhlIHBhcnNlciBpbnRlcm5hbCBwcm9wZXJ0eS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIHZhbHVlLCB1c3VhbGx5IDAgb3IgMSwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J3Byb3AnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHhtbFBhcnNlclByb3BlcnRpZXMgdG8gZ2V0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5NZXRob2QgdG8gZ2V0IHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlcmVkIFhNTC4gdGhpcyBtZXRob2Qgc3RvcHMgdGhlIHBhcnNlciwgc2V0IGl0cyBzdGF0ZSB0byBFbmQgT2YgRmlsZSBhbmQgcmV0dXJuIHRoZSBpbnB1dCBzdHJlYW0gd2l0aCB3aGF0IGlzIGxlZnQgdGhhdCB0aGUgcGFyc2VyIGRpZCBub3QgdXNlLiAgVGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdCBnb29kLCB0aGUgcGFyc2VyIGNlcnRhaW5seSBwcm9jZ3Jlc3NlZCBwYXN0IHdoYXQmYXBvcztzIGxlZnQgaW4gcmVhZGVyLSZndDtpbnB1dCwgYW5kIHRoZXJlIGlzIGFuIGFsbG9jYXRpb24gcHJvYmxlbS4gQmVzdCB3b3VsZCBiZSB0byByZXdyaXRlIGl0IGRpZmZlcmVudGx5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VySW5wdXRCdWZmZXJQdHInIGluZm89J3RoZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBhdHRhY2hlZCB0byB0aGUgWE1MIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgbm9kZSBoYXMgYXR0cmlidXRlcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlLCAwIGlmIGZhbHNlLCBhbmQgLTEgaW4gY2FzZSBvciBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVySGFzVmFsdWUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V2hldGhlciB0aGUgbm9kZSBjYW4gaGF2ZSBhIHRleHQgdmFsdWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSwgYW5kIC0xIGluIGNhc2Ugb3IgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlcklzRGVmYXVsdCcgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5XaGV0aGVyIGFuIEF0dHJpYnV0ZSAgbm9kZSB3YXMgZ2VuZXJhdGVkIGZyb20gdGhlIGRlZmF1bHQgdmFsdWUgZGVmaW5lZCBpbiB0aGUgRFREIG9yIHNjaGVtYS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiBub3QgZGVmYXVsdGVkLCAxIGlmIGRlZmF1bHRlZCwgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50JyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgZW1wdHk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBlbXB0eSwgMCBpZiBub3QgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCcgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EZXRlcm1pbmUgd2hldGhlciB0aGUgY3VycmVudCBub2RlIGlzIGEgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIHJhdGhlciB0aGFuIGEgcmVndWxhciBhdHRyaWJ1dGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBhIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiwgMCBpZiBpdCBpcyBhIHJlZ3VsYXIgYXR0cmlidXRlIG9yIG90aGVyIHR5cGUgb2Ygbm9kZSwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlcklzVmFsaWQnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmV0cmlldmUgdGhlIHZhbGlkaXR5IHN0YXR1cyBmcm9tIHRoZSBwYXJzZXIgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgZmxhZyB2YWx1ZSAxIGlmIHZhbGlkLCAwIGlmIG5vLCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyTG9jYWxOYW1lJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBsb2NhbCBuYW1lIG9mIHRoZSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgbG9jYWwgbmFtZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPk9idGFpbiB0aGUgYmFzZSBVUkkgZm9yIHRoZSBnaXZlbiBsb2NhdG9yLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgYmFzZSBVUkkgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLCBpZiBub24gTlVMTCBpdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J2xvY2F0b3InIHR5cGU9J3htbFRleHRSZWFkZXJMb2NhdG9yUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5PYnRhaW4gdGhlIGxpbmUgbnVtYmVyIGZvciB0aGUgZ2l2ZW4gbG9jYXRvci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxpbmUgbnVtYmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2xvY2F0b3InIHR5cGU9J3htbFRleHRSZWFkZXJMb2NhdG9yUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVzb2x2ZXMgYSBuYW1lc3BhY2UgcHJlZml4IGluIHRoZSBzY29wZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lc3BhY2UgVVJJIHRvIHdoaWNoIHRoZSBwcmVmaXggbWFwcyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwcmVmaXggd2hvc2UgbmFtZXNwYWNlIFVSSSBpcyB0byBiZSByZXNvbHZlZC4gVG8gcmV0dXJuIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSwgc3BlY2lmeSBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIGF0dHJpYnV0ZSB3aXRoIHRoZSBzcGVjaWZpZWQgcXVhbGlmaWVkIG5hbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8nIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+TW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBhdHRyaWJ1dGUgd2l0aCB0aGUgc3BlY2lmaWVkIGluZGV4IHJlbGF0aXZlIHRvIHRoZSBjb250YWluaW5nIGVsZW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm8nIHR5cGU9J2ludCcgaW5mbz0ndGhlIHplcm8tYmFzZWQgaW5kZXggb2YgdGhlIGF0dHJpYnV0ZSByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50LicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Nb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIGF0dHJpYnV0ZSB3aXRoIHRoZSBzcGVjaWZpZWQgbG9jYWwgbmFtZSBhbmQgbmFtZXNwYWNlIFVSSS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdsb2NhbE5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGxvY2FsIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgVVJJIG9mIHRoZSBhdHRyaWJ1dGUuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+TW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBub2RlIHRoYXQgY29udGFpbnMgdGhlIGN1cnJlbnQgQXR0cmlidXRlICBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiBub3QgbW92ZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPk1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgZmlyc3QgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiBub3QgZm91bmQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+TW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBuZXh0IGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJOYW1lJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbm9kZSwgZXF1YWwgdG8gUHJlZml4IDpMb2NhbE5hbWUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBsb2NhbCBuYW1lIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSBVUkkgZGVmaW5pbmcgdGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5vZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyTmV4dCcgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Ta2lwIHRvIHRoZSBub2RlIGZvbGxvd2luZyB0aGUgY3VycmVudCBvbmUgaW4gZG9jdW1lbnQgb3JkZXIgd2hpbGUgYXZvaWRpbmcgdGhlIHN1YnRyZWUgaWYgYW55LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZSBub2RlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseSwgMCBpZiB0aGVyZSBpcyBubyBtb3JlIG5vZGVzIHRvIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlck5leHRTaWJsaW5nJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNraXAgdG8gdGhlIG5vZGUgZm9sbG93aW5nIHRoZSBjdXJyZW50IG9uZSBpbiBkb2N1bWVudCBvcmRlciB3aGlsZSBhdm9pZGluZyB0aGUgc3VidHJlZSBpZiBhbnkuIEN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbmx5IGZvciBSZWFkZXJzIGJ1aWx0IG9uIGEgZG9jdW1lbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0aGUgbm9kZSB3YXMgcmVhZCBzdWNjZXNzZnVsbHksIDAgaWYgdGhlcmUgaXMgbm8gbW9yZSBub2RlcyB0byByZWFkLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJOb2RlVHlwZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIG5vZGUgdHlwZSBvZiB0aGUgY3VycmVudCBub2RlIFJlZmVyZW5jZTogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RvdGdudS9wbmV0bGliLWRvYy9TeXN0ZW0vWG1sL1htbE5vZGVUeXBlLmh0bWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIHhtbE5vZGVUeXBlIG9mIHRoZSBjdXJyZW50IG5vZGUgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGUgdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRvIG5vcm1hbGl6ZSB3aGl0ZSBzcGFjZSBhbmQgYXR0cmlidXRlIHZhbHVlcy4gU2luY2UgYXR0cmlidXRlIHZhbHVlIGFuZCBlbmQgb2YgbGluZSBub3JtYWxpemF0aW9ucyBhcmUgYSBNVVNUIGluIHRoZSBYTUwgc3BlY2lmaWNhdGlvbiBvbmx5IHRoZSB2YWx1ZSB0cnVlIGlzIGFjY2VwdGVkLiBUaGUgYnJva2VuIGJhaGF2aW91ciBvZiBhY2NlcHRpbmcgb3V0IG9mIHJhbmdlIGNoYXJhY3RlciBlbnRpdGllcyBsaWtlICZhbXA7IzA7IGlzIG9mIGNvdXJzZSBub3Qgc3VwcG9ydGVkIGVpdGhlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBvciAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyUHJlZml4JyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkEgc2hvcnRoYW5kIHJlZmVyZW5jZSB0byB0aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHByZWZpeCBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclByZXNlcnZlJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgdGVsbHMgdGhlIFhNTCBSZWFkZXIgdG8gcHJlc2VydmUgdGhlIGN1cnJlbnQgbm9kZS4gVGhlIGNhbGxlciBtdXN0IGFsc28gdXNlIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jKCkgdG8ga2VlcCBhbiBoYW5kbGUgb24gdGhlIHJlc3VsdGluZyBkb2N1bWVudCBvbmNlIHBhcnNpbmcgaGFzIGZpbmlzaGVkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgeG1sTm9kZVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4nIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgdGVsbHMgdGhlIFhNTCBSZWFkZXIgdG8gcHJlc2VydmUgYWxsIG5vZGVzIG1hdGNoZWQgYnkgdGhlIHBhdHRlcm4uIFRoZSBjYWxsZXIgbXVzdCBhbHNvIHVzZSB4bWxUZXh0UmVhZGVyQ3VycmVudERvYygpIHRvIGtlZXAgYW4gaGFuZGxlIG9uIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgb25jZSBwYXJzaW5nIGhhcyBmaW5pc2hlZDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSdhIHBvc2l0aXZlIG51bWJlciBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J3BhdHRlcm4nIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYW4gWFBhdGggc3Vic2V0IHBhdHRlcm4nLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlcycgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0ndGhlIHByZWZpeCBkZWZpbml0aW9ucywgYXJyYXkgb2YgW1VSSSwgcHJlZml4XSBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclF1b3RlQ2hhcicgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UaGUgcXVvdGF0aW9uIG1hcmsgY2hhcmFjdGVyIHVzZWQgdG8gZW5jbG9zZSB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScmcXVvdDsgb3IgJmFwb3M7IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJSZWFkJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPk1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgbmV4dCBub2RlIGluIHRoZSBzdHJlYW0sIGV4cG9zaW5nIGl0cyBwcm9wZXJ0aWVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZSBub2RlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseSwgMCBpZiB0aGVyZSBpcyBubyBtb3JlIG5vZGVzIHRvIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5QYXJzZXMgYW4gYXR0cmlidXRlIHZhbHVlIGludG8gb25lIG9yIG1vcmUgVGV4dCBhbmQgRW50aXR5UmVmZXJlbmNlIG5vZGVzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGluIGNhc2Ugb2Ygc3VjY2VzcywgMCBpZiB0aGUgcmVhZGVyIHdhcyBub3QgcG9zaXRpb25uZWQgb24gYW4gdHRyaWJ1dGUgbm9kZSBvciBhbGwgdGhlIGF0dHJpYnV0ZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVhZHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXJyZW50IG5vZGUsIGluY2x1ZGluZyBjaGlsZCBub2RlcyBhbmQgbWFya3VwLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZyBjb250YWluaW5nIHRoZSBYTUwgY29udGVudCwgb3IgTlVMTCBpZiB0aGUgY3VycmVudCBub2RlIGlzIG5laXRoZXIgYW4gZWxlbWVudCBub3IgYXR0cmlidXRlLCBvciBoYXMgbm8gY2hpbGQgbm9kZXMuIFRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlYWRzIHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBub2RlLCBpbmNsdWRpbmcgY2hpbGQgbm9kZXMgYW5kIG1hcmt1cC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBzdHJpbmcgY29udGFpbmluZyB0aGUgWE1MIGNvbnRlbnQsIG9yIE5VTEwgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBuZWl0aGVyIGFuIGVsZW1lbnQgbm9yIGF0dHJpYnV0ZSwgb3IgaGFzIG5vIGNoaWxkIG5vZGVzLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclJlYWRTdGF0ZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXRzIHRoZSByZWFkIHN0YXRlIG9mIHRoZSByZWFkZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBzdGF0ZSB2YWx1ZSwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyUmVhZFN0cmluZycgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWFkcyB0aGUgY29udGVudHMgb2YgYW4gZWxlbWVudCBvciBhIHRleHQgbm9kZSBhcyBhIHN0cmluZy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBzdHJpbmcgY29udGFpbmluZyB0aGUgY29udGVudHMgb2YgdGhlIEVsZW1lbnQgb3IgVGV4dCBub2RlLCBvciBOVUxMIGlmIHRoZSByZWFkZXIgaXMgcG9zaXRpb25lZCBvbiBhbnkgb3RoZXIgdHlwZSBvZiBub2RlLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlVzZSBSZWxheE5HIHRvIHZhbGlkYXRlIHRoZSBkb2N1bWVudCBhcyBpdCBpcyBwcm9jZXNzZWQuIEFjdGl2YXRpb24gaXMgb25seSBwb3NzaWJsZSBiZWZvcmUgdGhlIGZpcnN0IFJlYWQoKS4gaWYgQHNjaGVtYSBpcyBOVUxMLCB0aGVuIFJlbGF4TkcgdmFsaWRhdGlvbiBpcyBkZXNhY3RpdmF0ZWQuIEAgVGhlIEBzY2hlbWEgc2hvdWxkIG5vdCBiZSBmcmVlZCB1bnRpbCB0aGUgcmVhZGVyIGlzIGRlYWxsb2NhdGVkIG9yIGl0cyB1c2UgaGFzIGJlZW4gZGVhY3RpdmF0ZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSB0aGUgUmVsYXhORyB2YWxpZGF0aW9uIGNvdWxkIGJlIChkZXMpYWN0aXZhdGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2NoZW1hJyB0eXBlPSd4bWxSZWxheE5HUHRyJyBpbmZvPSdhIHByZWNvbXBpbGVkIFJlbGF4Tkcgc2NoZW1hJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VXNlIFJlbGF4TkcgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4gQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLiBpZiBAcm5nIGlzIE5VTEwsIHRoZW4gUmVsYXhORyB2YWxpZGF0aW9uIGlzIGRlYWN0aXZhdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2UgdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGUpYWN0aXZhdGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncm5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBwYXRoIHRvIGEgUmVsYXhORyBzY2hlbWEgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VXNlIFczQyBYU0Qgc2NoZW1hIHRvIHZhbGlkYXRlIHRoZSBkb2N1bWVudCBhcyBpdCBpcyBwcm9jZXNzZWQuIEFjdGl2YXRpb24gaXMgb25seSBwb3NzaWJsZSBiZWZvcmUgdGhlIGZpcnN0IFJlYWQoKS4gSWYgQHhzZCBpcyBOVUxMLCB0aGVuIFhNTCBTY2hlbWEgdmFsaWRhdGlvbiBpcyBkZWFjdGl2YXRlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIHRoZSBzY2hlbWFzIHZhbGlkYXRpb24gY291bGQgYmUgKGRlKWFjdGl2YXRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVhZGVyJyB0eXBlPSd4bWxUZXh0UmVhZGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkJy8+CisgICAgICA8YXJnIG5hbWU9J3hzZCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgcGF0aCB0byBhIFczQyBYU0Qgc2NoZW1hIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0JyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Vc2UgVzNDIFhTRCBzY2hlbWEgY29udGV4dCB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLiBBY3RpdmF0aW9uIGlzIG9ubHkgcG9zc2libGUgYmVmb3JlIHRoZSBmaXJzdCBSZWFkKCkuIElmIEBjdHh0IGlzIE5VTEwsIHRoZW4gWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGlzIGRlYWN0aXZhdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2UgdGhlIHNjaGVtYXMgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGUpYWN0aXZhdGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sU2NoZW1hVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J29wdGlvbnMgKG5vdCB1c2VkIHlldCknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBlcnJvciBhbmQgd2FybmluZ3MuICBJZiBAZiBpcyBOVUxMLCB0aGUgZGVmYXVsdCBlcnJvciBhbmQgd2FybmluZyBoYW5kbGVycyBhcmUgcmVzdG9yZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxUZXh0UmVhZGVyRXJyb3JGdW5jJyBpbmZvPSd0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCBvbiBlcnJvciBhbmQgd2FybmluZ3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJnJyB0eXBlPSd2b2lkIConIGluZm89J2EgdXNlciBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoYW5nZSB0aGUgcGFyc2VyIHByb2Nlc3NpbmcgYmVoYXZpb3VyIGJ5IGNoYW5naW5nIHNvbWUgb2YgaXRzIGludGVybmFsIHByb3BlcnRpZXMuIE5vdGUgdGhhdCBzb21lIHByb3BlcnRpZXMgY2FuIG9ubHkgYmUgY2hhbmdlZCBiZWZvcmUgYW55IHJlYWQgaGFzIGJlZW4gZG9uZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGUgY2FsbCB3YXMgc3VjY2Vzc2Z1bCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJvcCcgdHlwZT0naW50JyBpbmZvPSd0aGUgeG1sUGFyc2VyUHJvcGVydGllcyB0byBzZXQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2ludCcgaW5mbz0ndXN1YWxseSAwIG9yIDEgdG8gKGRlKWFjdGl2YXRlIGl0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclNldFNjaGVtYScgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VXNlIFhTRCBTY2hlbWEgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4gQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLiBpZiBAc2NoZW1hIGlzIE5VTEwsIHRoZW4gU2NoZW1hIHZhbGlkYXRpb24gaXMgZGVzYWN0aXZhdGVkLiBAIFRoZSBAc2NoZW1hIHNob3VsZCBub3QgYmUgZnJlZWQgdW50aWwgdGhlIHJlYWRlciBpcyBkZWFsbG9jYXRlZCBvciBpdHMgdXNlIGhhcyBiZWVuIGRlYWN0aXZhdGVkLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2UgdGhlIFNjaGVtYSB2YWxpZGF0aW9uIGNvdWxkIGJlIChkZXMpYWN0aXZhdGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2NoZW1hJyB0eXBlPSd4bWxTY2hlbWFQdHInIGluZm89J2EgcHJlY29tcGlsZWQgU2NoZW1hIHNjaGVtYScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBlcnJvciBhbmQgd2FybmluZ3MuICBJZiBAZiBpcyBOVUxMLCB0aGUgZGVmYXVsdCBlcnJvciBhbmQgd2FybmluZyBoYW5kbGVycyBhcmUgcmVzdG9yZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBpbmZvPSd0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCBvbiBlcnJvciBhbmQgd2FybmluZ3MnLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJnJyB0eXBlPSd2b2lkIConIGluZm89J2EgdXNlciBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJTZXR1cCcgZmlsZT0neG1scmVhZGVyJyBtb2R1bGU9J3htbHJlYWRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXR1cCBhbiBYTUwgcmVhZGVyIHdpdGggbmV3IG9wdGlvbnM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0nYW4gWE1MIHJlYWRlcicvPgorICAgICAgPGFyZyBuYW1lPSdpbnB1dCcgdHlwZT0neG1sUGFyc2VySW5wdXRCdWZmZXJQdHInIGluZm89J3htbFBhcnNlcklucHV0QnVmZmVyUHRyIHVzZWQgdG8gZmVlZCB0aGUgcmVhZGVyLCB3aWxsIGJlIGRlc3Ryb3llZCB3aXRoIGl0LicvPgorICAgICAgPGFyZyBuYW1lPSdVUkwnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J2EgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFJlYWRlclN0YW5kYWxvbmUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RGV0ZXJtaW5lIHRoZSBzdGFuZGFsb25lIHN0YXR1cyBvZiB0aGUgZG9jdW1lbnQgYmVpbmcgcmVhZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0aGUgZG9jdW1lbnQgd2FzIGRlY2xhcmVkIHRvIGJlIHN0YW5kYWxvbmUsIDAgaWYgaXQgd2FzIGRlY2xhcmVkIHRvIGJlIG5vdCBzdGFuZGFsb25lLCBvciAtMSBpZiB0aGUgZG9jdW1lbnQgZGlkIG5vdCBzcGVjaWZ5IGl0cyBzdGFuZGFsb25lIHN0YXR1cyBvciBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdyZWFkZXInIHR5cGU9J3htbFRleHRSZWFkZXJQdHInIGluZm89J3RoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0UmVhZGVyVmFsdWUnIGZpbGU9J3htbHJlYWRlcicgbW9kdWxlPSd4bWxyZWFkZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdmlkZXMgdGhlIHRleHQgdmFsdWUgb2YgdGhlIG5vZGUgaWYgcHJlc2VudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgc3RyaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZS4gVGhlIHJlc3VsdCBtdXN0IGJlIGRlYWxsb2NhdGVkIHdpdGggeG1sRnJlZSgpJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRSZWFkZXJYbWxMYW5nJyBmaWxlPSd4bWxyZWFkZXInIG1vZHVsZT0neG1scmVhZGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoZSB4bWw6bGFuZyBzY29wZSB3aXRoaW4gd2hpY2ggdGhlIG5vZGUgcmVzaWRlcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHhtbDpsYW5nIHZhbHVlIG9yIE5VTEwgaWYgbm9uZSBleGlzdHMuLCBpZiBub24gTlVMTCBpdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J3JlYWRlcicgdHlwZT0neG1sVGV4dFJlYWRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RW5kIHRoZSBjdXJyZW50IHhtbCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJFbmRDREFUQScgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FbmQgYW4geG1sIENEQVRBIHNlY3Rpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlckVuZENvbW1lbnQnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RW5kIHRoZSBjdXJyZW50IHhtbCBjb21lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlckVuZERURCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FbmQgYW4geG1sIERURC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FbmQgYW4geG1sIERURCBhdHRyaWJ1dGUgbGlzdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FbmQgYW4geG1sIERURCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJFbmREVERFbnRpdHknIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RW5kIGFuIHhtbCBEVEQgZW50aXR5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJFbmREb2N1bWVudCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FbmQgYW4geG1sIGRvY3VtZW50LiBBbGwgb3BlbiBlbGVtZW50cyBhcmUgY2xvc2VkLCBhbmQgdGhlIGNvbnRlbnQgaXMgZmx1c2hlZCB0byB0aGUgb3V0cHV0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FbmQgdGhlIGN1cnJlbnQgeG1sIGVsZW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlckVuZFBJJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkVuZCB0aGUgY3VycmVudCB4bWwgUEkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlckZsdXNoJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZsdXNoIHRoZSBvdXRwdXQgYnVmZmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FbmQgdGhlIGN1cnJlbnQgeG1sIGVsZW1lbnQuIFdyaXRlcyBhbiBlbmQgdGFnIGV2ZW4gaWYgdGhlIGVsZW1lbnQgaXMgZW1wdHk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU2V0SW5kZW50JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCBpbmRlbnRhdGlvbiBvdXRwdXQuIGluZGVudCA9IDAgZG8gbm90IGluZGVudGF0aW9uLiBpbmRlbnQgJmd0OyAwIGRvIGluZGVudGF0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBvbiBlcnJvciBvciAwIG90aGVyd2lzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdpbmRlbnQnIHR5cGU9J2ludCcgaW5mbz0nZG8gaW5kZW50YXRpb24/Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZycgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgc3RyaW5nIGluZGVudGF0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSctMSBvbiBlcnJvciBvciAwIG90aGVyd2lzZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHhtbENoYXIgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlN0YXJ0IGFuIHhtbCBhdHRyaWJ1dGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nZWxlbWVudCBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U3RhcnQgYW4geG1sIGF0dHJpYnV0ZSB3aXRoIG5hbWVzcGFjZSBzdXBwb3J0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nbmFtZXNwYWNlIHByZWZpeCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nZWxlbWVudCBsb2NhbCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWVzcGFjZVVSSScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSduYW1lc3BhY2UgVVJJIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnRDREFUQScgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TdGFydCBhbiB4bWwgQ0RBVEEgc2VjdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlN0YXJ0IGFuIHhtbCBjb21tZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJTdGFydERURCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TdGFydCBhbiB4bWwgRFRELjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBEVEQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHViaWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nc3lzaWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlN0YXJ0IGFuIHhtbCBEVEQgQVRUTElTVC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgRFREIEFUVExJU1QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlN0YXJ0IGFuIHhtbCBEVEQgZWxlbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgRFREIGVsZW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHknIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U3RhcnQgYW4geG1sIERURCBBVFRMSVNULjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdwZScgdHlwZT0naW50JyBpbmZvPSdUUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgRFREIEFUVExJU1QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TdGFydCBhIG5ldyB4bWwgZG9jdW1lbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0ndmVyc2lvbicgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgeG1sIHZlcnNpb24gKCZxdW90OzEuMCZxdW90Oykgb3IgTlVMTCBmb3IgZGVmYXVsdCAoJnF1b3Q7MS4wJnF1b3Q7KScvPgorICAgICAgPGFyZyBuYW1lPSdlbmNvZGluZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZW5jb2Rpbmcgb3IgTlVMTCBmb3IgZGVmYXVsdCcvPgorICAgICAgPGFyZyBuYW1lPSdzdGFuZGFsb25lJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89JyZxdW90O3llcyZxdW90OyBvciAmcXVvdDtubyZxdW90OyBvciBOVUxMIGZvciBkZWZhdWx0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TdGFydCBhbiB4bWwgZWxlbWVudC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdlbGVtZW50IG5hbWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U3RhcnQgYW4geG1sIGVsZW1lbnQgd2l0aCBuYW1lc3BhY2Ugc3VwcG9ydC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J25hbWVzcGFjZSBwcmVmaXggb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2VsZW1lbnQgbG9jYWwgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lc3BhY2VVUkknIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nbmFtZXNwYWNlIFVSSSBvciBOVUxMJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlclN0YXJ0UEknIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U3RhcnQgYW4geG1sIFBJLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSd0YXJnZXQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nUEkgdGFyZ2V0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGFuIHhtbCBhdHRyaWJ1dGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYXR0cmlidXRlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhdHRyaWJ1dGUgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGFuIHhtbCBhdHRyaWJ1dGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSduYW1lc3BhY2UgcHJlZml4Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYXR0cmlidXRlIGxvY2FsIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J25hbWVzcGFjZSBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhdHRyaWJ1dGUgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhbiBiYXNlNjQgZW5jb2RlZCB4bWwgdGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdiaW5hcnkgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0naW50JyBpbmZvPSd0aGUgcG9zaXRpb24gd2l0aGluIHRoZSBkYXRhIG9mIHRoZSBmaXJzdCBieXRlIHRvIGVuY29kZScvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBCaW5IZXggZW5jb2RlZCB4bWwgdGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nZGF0YScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdiaW5hcnkgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0naW50JyBpbmZvPSd0aGUgcG9zaXRpb24gd2l0aGluIHRoZSBkYXRhIG9mIHRoZSBmaXJzdCBieXRlIHRvIGVuY29kZScvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVDREFUQScgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhbiB4bWwgQ0RBVEEuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nQ0RBVEEgY29udGVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYW4geG1sIGNvbW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nY29tbWVudCBzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVEVEQnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBEVEQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSdwdWJpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcicvPgorICAgICAgPGFyZyBuYW1lPSdzeXNpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSdzdWJzZXQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nc3RyaW5nIGNvbnRlbnQgb2YgdGhlIERURCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBEVEQgQVRUTElTVC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgRFREIEFUVExJU1QnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdjb250ZW50IG9mIHRoZSBBVFRMSVNUJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudCcgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhIERURCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2NvbnRlbnQgb2YgdGhlIGVsZW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHknIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBEVEQgZW50aXR5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdwZScgdHlwZT0naW50JyBpbmZvPSdUUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdwdWJpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcicvPgorICAgICAgPGFyZyBuYW1lPSdzeXNpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSduZGF0YWlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWwgbm90YXRpb24gbmFtZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdjb250ZW50IG9mIHRoZSBlbnRpdHknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eScgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhIERURCBleHRlcm5hbCBlbnRpdHkuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGJlZW4gc3RhcnRlZCB3aXRoIHhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdwZScgdHlwZT0naW50JyBpbmZvPSdUUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdwdWJpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcicvPgorICAgICAgPGFyZyBuYW1lPSdzeXNpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSduZGF0YWlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWwgbm90YXRpb24gbmFtZS4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIHRoZSBjb250ZW50cyBvZiBhIERURCBleHRlcm5hbCBlbnRpdHkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J3B1YmlkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyJy8+CisgICAgICA8YXJnIG5hbWU9J3N5c2lkJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFREJy8+CisgICAgICA8YXJnIG5hbWU9J25kYXRhaWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHhtbCBub3RhdGlvbiBuYW1lLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgRFREIGludGVybmFsIGVudGl0eS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0ncGUnIHR5cGU9J2ludCcgaW5mbz0nVFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdjb250ZW50IG9mIHRoZSBlbnRpdHknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbicgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhIERURCBlbnRpdHkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIHhtbCBub3RhdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSdwdWJpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcicvPgorICAgICAgPGFyZyBuYW1lPSdzeXNpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYW4geG1sIGVsZW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nZWxlbWVudCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nZWxlbWVudCBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGFuIHhtbCBlbGVtZW50IHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSduYW1lc3BhY2UgcHJlZml4Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nZWxlbWVudCBsb2NhbCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWVzcGFjZVVSSScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSduYW1lc3BhY2UgVVJJJy8+CisgICAgICA8YXJnIG5hbWU9J2NvbnRlbnQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nZWxlbWVudCBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBhdHRyaWJ1dGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYXR0cmlidXRlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2Zvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGF0dHJpYnV0ZS53aXRoIG5hbWVzcGFjZSBzdXBwb3J0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSduYW1lc3BhY2UgcHJlZml4Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYXR0cmlidXRlIGxvY2FsIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J25hbWVzcGFjZSBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2Zvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIENEQVRBLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGFuIHhtbCBjb21tZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBEVEQgd2l0aCBhIGZvcm1hdHRlZCBtYXJrdXAgZGVjbGFyYXRpb25zIHBhcnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSdwdWJpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcicvPgorICAgICAgPGFyZyBuYW1lPSdzeXNpZCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCcvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIERURCBBVFRMSVNULjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVCcvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIERURCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudCcvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eScgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhIGZvcm1hdHRlZCBEVEQgaW50ZXJuYWwgZW50aXR5LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdwZScgdHlwZT0naW50JyBpbmZvPSdUUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3QnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eScvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2VsZW1lbnQgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGVsZW1lbnQgd2l0aCBuYW1lc3BhY2Ugc3VwcG9ydC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J25hbWVzcGFjZSBwcmVmaXgnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdlbGVtZW50IGxvY2FsIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXNwYWNlVVJJJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J25hbWVzcGFjZSBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2Zvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEknIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgUEkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J3RhcmdldCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdQSSB0YXJnZXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2Zvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHJhdyB4bWwgdGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2Zvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHhtbCB0ZXh0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nLi4uJyB0eXBlPScuLi4nIGluZm89J2V4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVQSScgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhbiB4bWwgUEkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J3RhcmdldCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdQSSB0YXJnZXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdQSSBjb250ZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlUmF3JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgcmF3IHhtbCB0ZXh0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdjb250ZW50JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RleHQgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGFuIHhtbCB0ZXh0LiBUT0RPOiB3aGF0IGFib3V0IGVudGl0aWVzIGFuZCBzcGVjaWFsIGNoYXJzPz88L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0ZXh0IHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0nbGVuZ3RoIG9mIHRoZSB0ZXh0IHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZVN0cmluZycgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhbiB4bWwgdGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nY29udGVudCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0ZXh0IHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGF0dHJpYnV0ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhdHRyaWJ1dGUgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJncHRyJyB0eXBlPSd2YV9saXN0JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBhdHRyaWJ1dGUud2l0aCBuYW1lc3BhY2Ugc3VwcG9ydDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nbmFtZXNwYWNlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2F0dHJpYnV0ZSBsb2NhbCBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWVzcGFjZVVSSScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSduYW1lc3BhY2UgVVJJJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKScvPgorICAgICAgPGFyZyBuYW1lPSdhcmdwdHInIHR5cGU9J3ZhX2xpc3QnIGluZm89J3BvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgeG1sIENEQVRBLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJncHRyJyB0eXBlPSd2YV9saXN0JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYW4geG1sIGNvbW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKScvPgorICAgICAgPGFyZyBuYW1lPSdhcmdwdHInIHR5cGU9J3ZhX2xpc3QnIGluZm89J3BvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgRFREIHdpdGggYSBmb3JtYXR0ZWQgbWFya3VwIGRlY2xhcmF0aW9ucyBwYXJ0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBEVEQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHViaWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nc3lzaWQnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2Zvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpJy8+CisgICAgICA8YXJnIG5hbWU9J2FyZ3B0cicgdHlwZT0ndmFfbGlzdCcgaW5mbz0ncG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIERURCBBVFRMSVNULjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVCcvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJncHRyJyB0eXBlPSd2YV9saXN0JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQnIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgRFREIGVsZW1lbnQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIERURCBlbGVtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKScvPgorICAgICAgPGFyZyBuYW1lPSdhcmdwdHInIHR5cGU9J3ZhX2xpc3QnIGluZm89J3BvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHknIGZpbGU9J3htbHdyaXRlcicgbW9kdWxlPSd4bWx3cml0ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JpdGUgYSBmb3JtYXR0ZWQgRFREIGludGVybmFsIGVudGl0eS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0ncGUnIHR5cGU9J2ludCcgaW5mbz0nVFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nZm9ybWF0JyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J2Zvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpJy8+CisgICAgICA8YXJnIG5hbWU9J2FyZ3B0cicgdHlwZT0ndmFfbGlzdCcgaW5mbz0ncG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50JyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2VsZW1lbnQgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJncHRyJyB0eXBlPSd2YV9saXN0JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUycgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhIGZvcm1hdHRlZCB4bWwgZWxlbWVudCB3aXRoIG5hbWVzcGFjZSBzdXBwb3J0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdwcmVmaXgnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nbmFtZXNwYWNlIHByZWZpeCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2VsZW1lbnQgbG9jYWwgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lc3BhY2VVUkknIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nbmFtZXNwYWNlIFVSSScvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJncHRyJyB0eXBlPSd2YV9saXN0JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHhtbCBQSS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J3dyaXRlcicgdHlwZT0neG1sVGV4dFdyaXRlclB0cicgaW5mbz0ndGhlIHhtbFRleHRXcml0ZXJQdHInLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFyZ2V0JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J1BJIHRhcmdldCcvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJncHRyJyB0eXBlPSd2YV9saXN0JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdycgZmlsZT0neG1sd3JpdGVyJyBtb2R1bGU9J3htbHdyaXRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Xcml0ZSBhIGZvcm1hdHRlZCByYXcgeG1sIHRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd3cml0ZXInIHR5cGU9J3htbFRleHRXcml0ZXJQdHInIGluZm89J3RoZSB4bWxUZXh0V3JpdGVyUHRyJy8+CisgICAgICA8YXJnIG5hbWU9J2Zvcm1hdCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKScvPgorICAgICAgPGFyZyBuYW1lPSdhcmdwdHInIHR5cGU9J3ZhX2xpc3QnIGluZm89J3BvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nJyBmaWxlPSd4bWx3cml0ZXInIG1vZHVsZT0neG1sd3JpdGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPldyaXRlIGEgZm9ybWF0dGVkIHhtbCB0ZXh0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nd3JpdGVyJyB0eXBlPSd4bWxUZXh0V3JpdGVyUHRyJyBpbmZvPSd0aGUgeG1sVGV4dFdyaXRlclB0cicvPgorICAgICAgPGFyZyBuYW1lPSdmb3JtYXQnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZiknLz4KKyAgICAgIDxhcmcgbmFtZT0nYXJncHRyJyB0eXBlPSd2YV9saXN0JyBpbmZvPSdwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSd2JyB0eXBlPSd4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lJyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZScgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSdnbG9iYWxzJz4KKyAgICAgIDxpbmZvPjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0ndicgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERlcmVnaXN0ZXJOb2RlRnVuYycgaW5mbz0nJy8+CisgICAgICA8YXJnIG5hbWU9J2Z1bmMnIHR5cGU9J3htbERlcmVnaXN0ZXJOb2RlRnVuYycgaW5mbz0nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSd2JyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSd2JyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRockRlZkluZGVudFRyZWVPdXRwdXQnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgICA8YXJnIG5hbWU9J3YnIHR5cGU9J2ludCcgaW5mbz0nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZScgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSdnbG9iYWxzJz4KKyAgICAgIDxpbmZvPjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0ndicgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZScgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSdnbG9iYWxzJz4KKyAgICAgIDxpbmZvPjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0ndicgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSd2JyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCcgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSdnbG9iYWxzJz4KKyAgICAgIDxpbmZvPjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVuYycgdHlwZT0neG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jJyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSd2JyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0JyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYycgaW5mbz0nJy8+CisgICAgICA8YXJnIG5hbWU9J2Z1bmMnIHR5cGU9J3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jJyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZScgZmlsZT0nZ2xvYmFscycgbW9kdWxlPSdnbG9iYWxzJz4KKyAgICAgIDxpbmZvPjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0ndicgdHlwZT0naW50JyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0JyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxSZWdpc3Rlck5vZGVGdW5jJyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVuYycgdHlwZT0neG1sUmVnaXN0ZXJOb2RlRnVuYycgaW5mbz0nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSd2JyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSdoYW5kbGVyJyB0eXBlPSd4bWxHZW5lcmljRXJyb3JGdW5jJyBpbmZvPScnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0ndm9pZCAqJyBpbmZvPScnLz4KKyAgICAgIDxhcmcgbmFtZT0naGFuZGxlcicgdHlwZT0neG1sU3RydWN0dXJlZEVycm9yRnVuYycgaW5mbz0nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlJyBmaWxlPSdnbG9iYWxzJyBtb2R1bGU9J2dsb2JhbHMnPgorICAgICAgPGluZm8+PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JycvPgorICAgICAgPGFyZyBuYW1lPSd2JyB0eXBlPSdpbnQnIGluZm89JycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFRockRlZlRyZWVJbmRlbnRTdHJpbmcnIGZpbGU9J2dsb2JhbHMnIG1vZHVsZT0nZ2xvYmFscyc+CisgICAgICA8aW5mbz48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nJy8+CisgICAgICA8YXJnIG5hbWU9J3YnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNBZWdlYW5OdW1iZXJzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFlZ2Vhbk51bWJlcnMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQXJhYmljJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFyYWJpYyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcmFiaWNQcmVzZW50YXRpb25Gb3Jtcy1BIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFyYWJpY1ByZXNlbnRhdGlvbkZvcm1zLUIgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNBcm1lbmlhbicgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcm1lbmlhbiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0Fycm93cycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcnJvd3MgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNCYXNpY0xhdGluJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJhc2ljTGF0aW4gVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNCZW5nYWxpJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJlbmdhbGkgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNCbG9jaycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiB0aGUgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgb24gdW5rbm93biBibG9jaycvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2Jsb2NrJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J1VDUyBibG9jayBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNCbG9ja0VsZW1lbnRzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJsb2NrRWxlbWVudHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNCb3BvbW9mbycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCb3BvbW9mbyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQm9wb21vZm9FeHRlbmRlZCBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0JveERyYXdpbmcnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQm94RHJhd2luZyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJucycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCcmFpbGxlUGF0dGVybnMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNCdWhpZCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCdWhpZCBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJ5emFudGluZU11c2ljYWxTeW1ib2xzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktDb21wYXRpYmlsaXR5IFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHlGb3JtcyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50JyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudCBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktSYWRpY2Fsc1N1cHBsZW1lbnQgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLVW5pZmllZElkZW9ncmFwaHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiB0aGUgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgb24gdW5rbm93biBjYXRlZ29yeScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2NhdCcgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSdVQ1MgQ2F0ZWdvcnkgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0QycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0Q2MnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ2MgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRDZicgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDZiBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdENvJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0Q3MnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3MgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRMJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEwgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRMbCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMbCBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdExtJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExtIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0TG8nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTG8gVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRMdCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMdCBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdEx1JyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEx1IFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0TScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0TWMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWMgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRNZScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNZSBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdE1uJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1uIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0TicgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBOIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0TmQnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTmQgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRObCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBObCBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdE5vJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE5vIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0UCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0UGMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGMgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRQZCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQZCBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdFBlJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFBlIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0UGYnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGYgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRQaScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQaSBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdFBvJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFBvIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0UHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUHMgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRTJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFMgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRTYycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTYyBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdFNrJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFNrIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0U20nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU20gVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRTbycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTbyBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdFonIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWiBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NhdFpsJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFpsIFVDUyBDYXRlZ29yeTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ2F0WnAnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWnAgVUNTIENhdGVnb3J5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDYXRacycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBacyBVQ1MgQ2F0ZWdvcnk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NoZXJva2VlJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENoZXJva2VlIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ29tYmluaW5nSGFsZk1hcmtzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbWJpbmluZ01hcmtzZm9yU3ltYm9scyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0NvbnRyb2xQaWN0dXJlcycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDb250cm9sUGljdHVyZXMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3VycmVuY3lTeW1ib2xzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDeXByaW90U3lsbGFiYXJ5IFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzQ3lyaWxsaWMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3lyaWxsaWMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3lyaWxsaWNTdXBwbGVtZW50IFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzRGVzZXJldCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBEZXNlcmV0IFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzRGV2YW5hZ2FyaScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBEZXZhbmFnYXJpIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzRGluZ2JhdHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRGluZ2JhdHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRW5jbG9zZWRBbHBoYW51bWVyaWNzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEVuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0V0aGlvcGljJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEV0aGlvcGljIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdlbmVyYWxQdW5jdHVhdGlvbiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0dlb21ldHJpY1NoYXBlcycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHZW9tZXRyaWNTaGFwZXMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNHZW9yZ2lhbicgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHZW9yZ2lhbiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0dvdGhpYycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHb3RoaWMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNHcmVlaycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHcmVlayBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR3JlZWtFeHRlbmRlZCBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0dyZWVrYW5kQ29wdGljJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdyZWVrYW5kQ29wdGljIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzR3VqYXJhdGknIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR3VqYXJhdGkgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNHdXJtdWtoaScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHdXJtdWtoaSBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8gVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNIYW5ndWxKYW1vJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbmd1bEphbW8gVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGFuZ3VsU3lsbGFibGVzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzSGFudW5vbycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIYW51bm9vIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzSGVicmV3JyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhlYnJldyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlcycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNIaWdoU3Vycm9nYXRlcycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIaWdoU3Vycm9nYXRlcyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0hpcmFnYW5hJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhpcmFnYW5hIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzSVBBRXh0ZW5zaW9ucycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBJUEFFeHRlbnNpb25zIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNLYW5idW4nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2FuYnVuIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzS2FuZ3hpUmFkaWNhbHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2FuZ3hpUmFkaWNhbHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNLYW5uYWRhJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthbm5hZGEgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNLYXRha2FuYScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLYXRha2FuYSBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzS2htZXInIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2htZXIgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNLaG1lclN5bWJvbHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2htZXJTeW1ib2xzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTGFvJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExhbyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGF0aW4tMVN1cHBsZW1lbnQgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNMYXRpbkV4dGVuZGVkQScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMYXRpbkV4dGVuZGVkLUEgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExhdGluRXh0ZW5kZWQtQiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExldHRlcmxpa2VTeW1ib2xzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTGltYnUnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGltYnUgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExpbmVhckJJZGVvZ3JhbXMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5JyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExpbmVhckJTeWxsYWJhcnkgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNMb3dTdXJyb2dhdGVzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExvd1N1cnJvZ2F0ZXMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNNYWxheWFsYW0nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWFsYXlhbGFtIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1hdGhlbWF0aWNhbE9wZXJhdG9ycyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9scy1BIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzLUIgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzU3ltYm9scyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCcgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNaXNjZWxsYW5lb3VzVGVjaG5pY2FsIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTW9uZ29saWFuJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1vbmdvbGlhbiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc011c2ljYWxTeW1ib2xzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE11c2ljYWxTeW1ib2xzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTXlhbm1hcicgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNeWFubWFyIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzTnVtYmVyRm9ybXMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTnVtYmVyRm9ybXMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNPZ2hhbScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBPZ2hhbSBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc09sZEl0YWxpYycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBPbGRJdGFsaWMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzT3JpeWEnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgT3JpeWEgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNPc21hbnlhJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE9zbWFueWEgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGhvbmV0aWNFeHRlbnNpb25zIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzUHJpdmF0ZVVzZScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQcml2YXRlVXNlIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzUHJpdmF0ZVVzZUFyZWEnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUHJpdmF0ZVVzZUFyZWEgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNSdW5pYycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBSdW5pYyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1NoYXZpYW4nIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU2hhdmlhbiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1NpbmhhbGEnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU2luaGFsYSBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFNtYWxsRm9ybVZhcmlhbnRzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzU3BlY2lhbHMnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3BlY2lhbHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhbEFycm93cy1BIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQicgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YWxBcnJvd3MtQiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1BIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQicgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWEtQiBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1N5cmlhYycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTeXJpYWMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNUYWdhbG9nJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhZ2Fsb2cgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNUYWdiYW53YScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUYWdiYW53YSBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1RhZ3MnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFncyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1RhaUxlJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhaUxlIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhaVh1YW5KaW5nU3ltYm9scyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1RhbWlsJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhbWlsIFVDUyBCbG9jazwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29kZScgdHlwZT0naW50JyBpbmZvPSdVQ1MgY29kZSBwb2ludCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVDU0lzVGVsdWd1JyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRlbHVndSBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1RoYWFuYScgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUaGFhbmEgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNUaGFpJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRoYWkgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNUaWJldGFuJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRpYmV0YW4gVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNVZ2FyaXRpYycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBVZ2FyaXRpYyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MnIGZpbGU9J3htbHVuaWNvZGUnIG1vZHVsZT0neG1sdW5pY29kZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBWYXJpYXRpb25TZWxlY3RvcnMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50JyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNZaVJhZGljYWxzJyBmaWxlPSd4bWx1bmljb2RlJyBtb2R1bGU9J3htbHVuaWNvZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFlpUmFkaWNhbHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVUNTSXNZaVN5bGxhYmxlcycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBZaVN5bGxhYmxlcyBVQ1MgQmxvY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB0cnVlIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2NvZGUnIHR5cGU9J2ludCcgaW5mbz0nVUNTIGNvZGUgcG9pbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scycgZmlsZT0neG1sdW5pY29kZScgbW9kdWxlPSd4bWx1bmljb2RlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBZaWppbmdIZXhhZ3JhbVN5bWJvbHMgVUNTIEJsb2NrPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdHJ1ZSAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjb2RlJyB0eXBlPSdpbnQnIGluZm89J1VDUyBjb2RlIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJRXNjYXBlJyBmaWxlPSd1cmknIG1vZHVsZT0ndXJpJz4KKyAgICAgIDxpbmZvPkVzY2FwaW5nIHJvdXRpbmUsIGRvZXMgbm90IGRvIHZhbGlkaXR5IGNoZWNrcyAhIEl0IHdpbGwgdHJ5IHRvIGVzY2FwZSB0aGUgY2hhcnMgbmVlZGluZyB0aGlzLCBidXQgdGhpcyBpcyBoZXVyaXN0aWMgYmFzZWQgaXQmYXBvcztzIGltcG9zc2libGUgdG8gYmUgc3VyZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYW4gY29weSBvZiB0aGUgc3RyaW5nLCBidXQgZXNjYXBlZCAgMjUgTWF5IDIwMDEgVXNlcyB4bWxQYXJzZVVSSSBhbmQgeG1sVVJJRXNjYXBlU3RyIHRvIHRyeSB0byBlc2NhcGUgY29ycmVjdGx5IGFjY29yZGluZyB0byBSRkMyMzk2LiAtIENhcmwgRG91Z2xhcycvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZyBvZiB0aGUgVVJJIHRvIGVzY2FwZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSUVzY2FwZVN0cicgZmlsZT0ndXJpJyBtb2R1bGU9J3VyaSc+CisgICAgICA8aW5mbz5UaGlzIHJvdXRpbmUgZXNjYXBlcyBhIHN0cmluZyB0byBoZXgsIGlnbm9yaW5nIHJlc2VydmVkIGNoYXJhY3RlcnMgKGEteikgYW5kIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBleGNlcHRpb24gbGlzdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXcgZXNjYXBlZCBzdHJpbmcgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nc3RyaW5nIHRvIGVzY2FwZScvPgorICAgICAgPGFyZyBuYW1lPSdsaXN0JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2V4Y2VwdGlvbiBsaXN0IHN0cmluZyBvZiBjaGFycyBub3QgdG8gZXNjYXBlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJVW5lc2NhcGVTdHJpbmcnIGZpbGU9J3VyaScgbW9kdWxlPSd1cmknPgorICAgICAgPGluZm8+VW5lc2NhcGluZyByb3V0aW5lLCBidXQgZG9lcyBub3QgY2hlY2sgdGhhdCB0aGUgc3RyaW5nIGlzIGFuIFVSSS4gVGhlIG91dHB1dCBpcyBhIGRpcmVjdCB1bnNpZ25lZCBjaGFyIHRyYW5zbGF0aW9uIG9mICVYWCB2YWx1ZXMgKG5vIGVuY29kaW5nKSBOb3RlIHRoYXQgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IGNhbiBvbmx5IGJlIHNtYWxsZXIgb3Igc2FtZSBzaXplIGFzIHRoZSBpbnB1dCBzdHJpbmcuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjaGFyIConIGluZm89J2EgY29weSBvZiB0aGUgc3RyaW5nLCBidXQgdW5lc2NhcGVkLCB3aWxsIHJldHVybiBOVUxMIG9ubHkgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0ndGhlIHN0cmluZyB0byB1bmVzY2FwZScvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxlbmd0aCBpbiBieXRlcyB0byB1bmVzY2FwZSAob3IgJmx0Oz0gMCB0byBpbmRpY2F0ZSBmdWxsIHN0cmluZyknLz4KKyAgICAgIDxhcmcgbmFtZT0ndGFyZ2V0JyB0eXBlPSdjaGFyIConIGluZm89J29wdGlvbmFsIGRlc3RpbmF0aW9uIGJ1ZmZlcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVURjhDaGFyY21wJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmNvbXBhcmVzIHRoZSB0d28gVUNTNCB2YWx1ZXM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ncmVzdWx0IG9mIHRoZSBjb21wYXJlIGFzIHdpdGggeG1sU3RybmNtcCcvPgorICAgICAgPGFyZyBuYW1lPSd1dGYxJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3BvaW50ZXIgdG8gZmlyc3QgVVRGOCBjaGFyJy8+CisgICAgICA8YXJnIG5hbWU9J3V0ZjInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ncG9pbnRlciB0byBzZWNvbmQgVVRGOCBjaGFyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVRGOFNpemUnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+Y2FsY3VsYXRlcyB0aGUgaW50ZXJuYWwgc2l6ZSBvZiBhIFVURjggY2hhcmFjdGVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXJzIG9mIGJ5dGVzIGluIHRoZSBjaGFyYWN0ZXIsIC0xIG9uIGZvcm1hdCBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSd1dGYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ncG9pbnRlciB0byB0aGUgVVRGOCBjaGFyYWN0ZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVVEY4U3RybGVuJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmNvbXB1dGUgdGhlIGxlbmd0aCBvZiBhbiBVVEY4IHN0cmluZywgaXQgZG9lc24mYXBvczt0IGRvIGEgZnVsbCBVVEY4IGNoZWNraW5nIG9mIHRoZSBjb250ZW50IG9mIHRoZSBzdHJpbmcuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0ndXRmJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2Egc2VxdWVuY2Ugb2YgVVRGLTggZW5jb2RlZCBieXRlcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVURjhTdHJsb2MnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+YSBmdW5jdGlvbiB0byBwcm92aWRlIHRoZSByZWxhdGl2ZSBsb2NhdGlvbiBvZiBhIFVURjggY2hhcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgcmVsYXRpdmUgY2hhcmFjdGVyIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGNoYXIgb3IgLTEgaWYgbm90IGZvdW5kJy8+CisgICAgICA8YXJnIG5hbWU9J3V0ZicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgaW5wdXQgVVRGOCAqJy8+CisgICAgICA8YXJnIG5hbWU9J3V0ZmNoYXInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFVURjggY2hhcmFjdGVyIHRvIGJlIGZvdW5kJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVRGOFN0cm5kdXAnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+YSBzdHJuZHVwIGZvciBhcnJheSBvZiBVVEY4JmFwb3M7czwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIG5ldyBVVEY4ICogb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSd1dGYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGlucHV0IFVURjggKicvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxlbiBvZiBAdXRmIChpbiBjaGFycyknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVVEY4U3RycG9zJyBmaWxlPSd4bWxzdHJpbmcnIG1vZHVsZT0neG1sc3RyaW5nJz4KKyAgICAgIDxpbmZvPmEgZnVuY3Rpb24gdG8gcHJvdmlkZSB0aGUgZXF1aXZhbGVudCBvZiBmZXRjaGluZyBhIGNoYXJhY3RlciBmcm9tIGEgc3RyaW5nIGFycmF5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2EgcG9pbnRlciB0byB0aGUgVVRGOCBjaGFyYWN0ZXIgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSd1dGYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGlucHV0IFVURjggKicvPgorICAgICAgPGFyZyBuYW1lPSdwb3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIFVURjggY2hhciAoaW4gY2hhcnMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVRGOFN0cnNpemUnIGZpbGU9J3htbHN0cmluZycgbW9kdWxlPSd4bWxzdHJpbmcnPgorICAgICAgPGluZm8+c3RvcmFnZSBzaXplIG9mIGFuIFVURjggc3RyaW5nIHRoZSBiZWhhdmlvdXIgaXMgbm90IGdhcmFudGVlZCBpZiB0aGUgaW5wdXQgc3RyaW5nIGlzIG5vdCBVVEYtODwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgc3RvcmFnZSBzaXplIG9mIHRoZSBmaXJzdCAmYXBvcztsZW4mYXBvczsgY2hhcmFjdGVycyBvZiBBUlJBWScvPgorICAgICAgPGFyZyBuYW1lPSd1dGYnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0nYSBzZXF1ZW5jZSBvZiBVVEYtOCBlbmNvZGVkIGJ5dGVzJy8+CisgICAgICA8YXJnIG5hbWU9J2xlbicgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIGFycmF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVRGOFN0cnN1YicgZmlsZT0neG1sc3RyaW5nJyBtb2R1bGU9J3htbHN0cmluZyc+CisgICAgICA8aW5mbz5DcmVhdGUgYSBzdWJzdHJpbmcgZnJvbSBhIGdpdmVuIFVURi04IHN0cmluZyBOb3RlOiAgcG9zaXRpb25zIGFyZSBnaXZlbiBpbiB1bml0cyBvZiBVVEYtOCBjaGFyczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIHBvaW50ZXIgdG8gYSBuZXdseSBjcmVhdGVkIHN0cmluZyBvciBOVUxMIGlmIGFueSBwcm9ibGVtJy8+CisgICAgICA8YXJnIG5hbWU9J3V0ZicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RhcnQnIHR5cGU9J2ludCcgaW5mbz0ncmVsYXRpdmUgcG9zIG9mIGZpcnN0IGNoYXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQnIGluZm89J3RvdGFsIG51bWJlciB0byBjb3B5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVW5saW5rTm9kZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxpbmZvPlVubGluayBhIG5vZGUgZnJvbSBpdCZhcG9zO3MgY3VycmVudCBjb250ZXh0LCB0aGUgbm9kZSBpcyBub3QgZnJlZWQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVubG9ja0xpYnJhcnknIGZpbGU9J3RocmVhZHMnIG1vZHVsZT0ndGhyZWFkcyc+CisgICAgICA8aW5mbz54bWxVbmxvY2tMaWJyYXJ5KCkgaXMgdXNlZCB0byByZWxlYXNlIGEgcmUtZW50cmFudCBsb2NrIG9uIHRoZSBsaWJ4bWwyIGxpYnJhcnkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVW5zZXROc1Byb3AnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZW1vdmUgYW4gYXR0cmlidXRlIGNhcnJpZWQgYnkgYSBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3NmdWwsIC0xIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0neG1sTnNQdHInIGluZm89J3RoZSBuYW1lc3BhY2UgZGVmaW5pdGlvbicvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVuc2V0UHJvcCcgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlbW92ZSBhbiBhdHRyaWJ1dGUgY2FycmllZCBieSBhIG5vZGUuIFRoaXMgaGFuZGxlcyBvbmx5IGF0dHJpYnV0ZXMgaW4gbm8gbmFtZXNwYWNlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHN1Y2Nlc3NmdWwsIC0xIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkQnVpbGRDb250ZW50TW9kZWwnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+KFJlKUJ1aWxkIHRoZSBhdXRvbWF0YSBhc3NvY2lhdGVkIHRvIHRoZSBjb250ZW50IG1vZGVsIG9mIHRoaXMgZWxlbWVudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGluIGNhc2Ugb2Ygc3VjY2VzcywgMCBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0nYSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0neG1sRWxlbWVudFB0cicgaW5mbz0nYW4gZWxlbWVudCBkZWNsYXJhdGlvbiBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RG9lcyB0aGUgdmFsaWRhdGlvbiByZWxhdGVkIGV4dHJhIHN0ZXAgb2YgdGhlIG5vcm1hbGl6YXRpb24gb2YgYXR0cmlidXRlIHZhbHVlczogIElmIHRoZSBkZWNsYXJlZCB2YWx1ZSBpcyBub3QgQ0RBVEEsIHRoZW4gdGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBmdXJ0aGVyIHByb2Nlc3MgdGhlIG5vcm1hbGl6ZWQgYXR0cmlidXRlIHZhbHVlIGJ5IGRpc2NhcmRpbmcgYW55IGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXJzLCBhbmQgYnkgcmVwbGFjaW5nIHNlcXVlbmNlcyBvZiBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycyBieSBzaW5nbGUgc3BhY2UgKCN4MjApIGNoYXJhY3Rlci4gIEFsc28gIGNoZWNrIFZDOiBTdGFuZGFsb25lIERvY3VtZW50IERlY2xhcmF0aW9uIGluIFAzMiwgYW5kIHVwZGF0ZSBjdHh0LSZndDt2YWxpZCBhY2NvcmRpbmdseTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdhIG5ldyBub3JtYWxpemVkIHN0cmluZyBpZiBub3JtYWxpemF0aW9uIGlzIG5lZWRlZCwgTlVMTCBvdGhlcndpc2UgdGhlIGNhbGxlciBtdXN0IGZyZWUgdGhlIHJldHVybmVkIHZhbHVlLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxWYWxpZEN0eHRQdHInIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBwYXJlbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGF0dHJpYnV0ZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4nIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QnVpbGQvZXh0ZW5kIGEgbGlzdCBvZiAgcG90ZW50aWFsIGNoaWxkcmVuIGFsbG93ZWQgYnkgdGhlIGNvbnRlbnQgdHJlZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGVsZW1lbnQgaW4gdGhlIGxpc3QsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0cmVlJyB0eXBlPSd4bWxFbGVtZW50Q29udGVudCAqJyBpbmZvPSdhbiBlbGVtZW50IGNvbnRlbnQgdHJlZScvPgorICAgICAgPGFyZyBuYW1lPSduYW1lcycgdHlwZT0nY29uc3QgeG1sQ2hhciAqKicgaW5mbz0nYW4gYXJyYXkgdG8gc3RvcmUgdGhlIGxpc3Qgb2YgY2hpbGQgbmFtZXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nbGVuJyB0eXBlPSdpbnQgKicgaW5mbz0nYSBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgZWxlbWVudCBpbiB0aGUgbGlzdCcvPgorICAgICAgPGFyZyBuYW1lPSdtYXgnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgb2YgdGhlIGFycmF5Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGlzdCBvZiBhdXRob3JpemVkIGNoaWxkcmVuIHRvIGluc2VydCB3aXRoaW4gYW4gZXhpc3RpbmcgdHJlZSB3aGlsZSByZXNwZWN0aW5nIHRoZSB2YWxpZGl0eSBjb25zdHJhaW50cyBmb3JjZWQgYnkgdGhlIER0ZC4gVGhlIGluc2VydGlvbiBwb2ludCBpcyBkZWZpbmVkIHVzaW5nIEBwcmV2IGFuZCBAbmV4dCBpbiB0aGUgZm9sbG93aW5nIHdheXM6IHRvIGluc2VydCBiZWZvcmUgJmFwb3M7bm9kZSZhcG9zOzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKG5vZGUtJmd0O3ByZXYsIG5vZGUsIC4uLiB0byBpbnNlcnQgbmV4dCAmYXBvcztub2RlJmFwb3M7OiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMobm9kZSwgbm9kZS0mZ3Q7bmV4dCwgLi4uIHRvIHJlcGxhY2UgJmFwb3M7bm9kZSZhcG9zOzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKG5vZGUtJmd0O3ByZXYsIG5vZGUtJmd0O25leHQsIC4uLiB0byBwcmVwZW5kIGEgY2hpbGQgdG8gJmFwb3M7bm9kZSZhcG9zOzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKE5VTEwsIG5vZGUtJmd0O2NoaWxkcywgdG8gYXBwZW5kIGEgY2hpbGQgdG8gJmFwb3M7bm9kZSZhcG9zOzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKG5vZGUtJmd0O2xhc3QsIE5VTEwsIC4uLiAgcG9pbnRlcnMgdG8gdGhlIGVsZW1lbnQgbmFtZXMgYXJlIGluc2VydGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5IGFuZCBkbyBub3QgbmVlZCB0byBiZSBmcmVlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBlbGVtZW50IGluIHRoZSBsaXN0LCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgQG1heCB0aGUgY2FsbGVyIGlzIGludml0ZWQgdG8gZ3JvdyB0aGUgcmVjZWl2aW5nIGFycmF5IGFuZCByZXRyeS4nLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJldicgdHlwZT0neG1sTm9kZSAqJyBpbmZvPSdhbiBlbGVtZW50IHRvIGluc2VydCBhZnRlcicvPgorICAgICAgPGFyZyBuYW1lPSduZXh0JyB0eXBlPSd4bWxOb2RlIConIGluZm89J2FuIGVsZW1lbnQgdG8gaW5zZXJ0IG5leHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZXMnIHR5cGU9J2NvbnN0IHhtbENoYXIgKionIGluZm89J2FuIGFycmF5IHRvIHN0b3JlIHRoZSBsaXN0IG9mIGNoaWxkIG5hbWVzJy8+CisgICAgICA8YXJnIG5hbWU9J21heCcgdHlwZT0naW50JyBpbmZvPSd0aGUgc2l6ZSBvZiB0aGUgYXJyYXknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRvZXMgdGhlIHZhbGlkYXRpb24gcmVsYXRlZCBleHRyYSBzdGVwIG9mIHRoZSBub3JtYWxpemF0aW9uIG9mIGF0dHJpYnV0ZSB2YWx1ZXM6ICBJZiB0aGUgZGVjbGFyZWQgdmFsdWUgaXMgbm90IENEQVRBLCB0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIG11c3QgZnVydGhlciBwcm9jZXNzIHRoZSBub3JtYWxpemVkIGF0dHJpYnV0ZSB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycywgYW5kIGJ5IHJlcGxhY2luZyBzZXF1ZW5jZXMgb2Ygc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMgYnkgc2luZ2xlIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J2EgbmV3IG5vcm1hbGl6ZWQgc3RyaW5nIGlmIG5vcm1hbGl6YXRpb24gaXMgbmVlZGVkLCBOVUxMIG90aGVyd2lzZSB0aGUgY2FsbGVyIG11c3QgZnJlZSB0aGUgcmV0dXJuZWQgdmFsdWUuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZWxlbScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHBhcmVudCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb246IC0gWyBWQzogQXR0cmlidXRlIERlZmF1bHQgTGVnYWwgXSAtIFsgVkM6IEVudW1lcmF0aW9uIF0gLSBbIFZDOiBJRCBBdHRyaWJ1dGUgRGVmYXVsdCBdICBUaGUgSUQvSURSRUYgdW5pcXVlbmVzcyBhbmQgbWF0Y2hpbmcgYXJlIGRvbmUgc2VwYXJhdGVseTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSdhdHRyJyB0eXBlPSd4bWxBdHRyaWJ1dGVQdHInIGluZm89J2FuIGF0dHJpYnV0ZSBkZWZpbml0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5WYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiBhdHRyaWJ1dGUgdmFsdWUgbWF0Y2ggIHRoZSBwcm9wZXIgcHJvZHVjdGlvbiAgWyBWQzogSUQgXSBWYWx1ZXMgb2YgdHlwZSBJRCBtdXN0IG1hdGNoIHRoZSBOYW1lIHByb2R1Y3Rpb24uLi4uICBbIFZDOiBJRFJFRiBdIFZhbHVlcyBvZiB0eXBlIElEUkVGIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgYW5kIHZhbHVlcyBvZiB0eXBlIElEUkVGUyBtdXN0IG1hdGNoIE5hbWVzIC4uLiAgWyBWQzogRW50aXR5IE5hbWUgXSBWYWx1ZXMgb2YgdHlwZSBFTlRJVFkgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCB2YWx1ZXMgb2YgdHlwZSBFTlRJVElFUyBtdXN0IG1hdGNoIE5hbWVzIC4uLiAgWyBWQzogTmFtZSBUb2tlbiBdIFZhbHVlcyBvZiB0eXBlIE5NVE9LRU4gbXVzdCBtYXRjaCB0aGUgTm10b2tlbiBwcm9kdWN0aW9uOyB2YWx1ZXMgb2YgdHlwZSBOTVRPS0VOUyBtdXN0IG1hdGNoIE5tdG9rZW5zLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J3htbEF0dHJpYnV0ZVR5cGUnIGluZm89J2FuIGF0dHJpYnV0ZSB0eXBlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2FuIGF0dHJpYnV0ZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkYXRlRG9jdW1lbnQnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJ5IHRvIHZhbGlkYXRlIHRoZSBkb2N1bWVudCBpbnN0YW5jZSAgYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGFsbCB0aGUgY2hlY2tzIGRlc2NyaWJlZCBieSB0aGUgWE1MIFJlYyBpLmUuIHZhbGlkYXRlcyB0aGUgaW50ZXJuYWwgYW5kIGV4dGVybmFsIHN1YnNldCAoaWYgcHJlc2VudCkgYW5kIHZhbGlkYXRlIHRoZSBkb2N1bWVudCB0cmVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Eb2VzIHRoZSBmaW5hbCBzdGVwIGZvciB0aGUgZG9jdW1lbnQgdmFsaWRhdGlvbiBvbmNlIGFsbCB0aGUgaW5jcmVtZW50YWwgdmFsaWRhdGlvbiBzdGVwcyBoYXZlIGJlZW4gY29tcGxldGVkICBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBkZXNjcmliZWQgYnkgdGhlIFhNTCBSZWMgIENoZWNrIGFsbCB0aGUgSURSRUYvSURSRUZTIGF0dHJpYnV0ZXMgZGVmaW5pdGlvbiBmb3IgdmFsaWRpdHk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxWYWxpZEN0eHRQdHInIGluZm89J3RoZSB2YWxpZGF0aW9uIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J2EgZG9jdW1lbnQgaW5zdGFuY2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZUR0ZCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcnkgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFnYWluc3QgdGhlIGR0ZCBpbnN0YW5jZSAgQmFzaWNhbGx5IGl0IGRvZXMgY2hlY2sgYWxsIHRoZSBkZWZpbml0aW9ucyBpbiB0aGUgRHRELiBOb3RlIHRoZSB0aGUgaW50ZXJuYWwgc3Vic2V0IChpZiBwcmVzZW50KSBpcyBkZS1jb3VwbGVkIChpLmUuIG5vdCB1c2VkKSwgd2hpY2ggY291bGQgZ2l2ZSBwcm9ibGVtcyBpZiBJRCBvciBJRFJFRiBpcyBwcmVzZW50LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSdkdGQnIHR5cGU9J3htbER0ZFB0cicgaW5mbz0nYSBkdGQgaW5zdGFuY2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZUR0ZEZpbmFsJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkRvZXMgdGhlIGZpbmFsIHN0ZXAgZm9yIHRoZSBkdGRzIHZhbGlkYXRpb24gb25jZSBhbGwgdGhlIHN1YnNldHMgaGF2ZSBiZWVuIHBhcnNlZCAgYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgZGVzY3JpYmVkIGJ5IHRoZSBYTUwgUmVjIC0gY2hlY2sgdGhhdCBFTlRJVFkgYW5kIEVOVElUSUVTIHR5cGUgYXR0cmlidXRlcyBkZWZhdWx0IG9yIHBvc3NpYmxlIHZhbHVlcyBtYXRjaGVzIG9uZSBvZiB0aGUgZGVmaW5lZCBlbnRpdGllcy4gLSBjaGVjayB0aGF0IE5PVEFUSU9OIHR5cGUgYXR0cmlidXRlcyBkZWZhdWx0IG9yIHBvc3NpYmxlIHZhbHVlcyBtYXRjaGVzIG9uZSBvZiB0aGUgZGVmaW5lZCBub3RhdGlvbnMuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdmFsaWQgb3IgMCBpZiBpbnZhbGlkIGFuZCAtMSBpZiBub3Qgd2VsbC1mb3JtZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIGRvY3VtZW50IGluc3RhbmNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVFbGVtZW50JyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byB2YWxpZGF0ZSB0aGUgc3VidHJlZSB1bmRlciBhbiBlbGVtZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIGRvY3VtZW50IGluc3RhbmNlJy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2FuIGVsZW1lbnQgaW5zdGFuY2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZUVsZW1lbnREZWNsJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSBlbGVtZW50IGRlZmluaXRpb24gYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IE9uZSBJRCBwZXIgRWxlbWVudCBUeXBlIF0gLSBbIFZDOiBObyBEdXBsaWNhdGUgVHlwZXMgXSAtIFsgVkM6IFVuaXF1ZSBFbGVtZW50IFR5cGUgRGVjbGFyYXRpb24gXTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxFbGVtZW50UHRyJyBpbmZvPSdhbiBlbGVtZW50IGRlZmluaXRpb24nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZU5DTmFtZScgZmlsZT0ndHJlZScgbW9kdWxlPSd0cmVlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSB8fCBkZWZpbmVkIChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgTkNOYW1lPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsdWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhbHVlIHRvIGNoZWNrJy8+CisgICAgICA8YXJnIG5hbWU9J3NwYWNlJyB0eXBlPSdpbnQnIGluZm89J2FsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmcnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZU5NVG9rZW4nIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgTk1Ub2tlbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YWx1ZSB0byBjaGVjaycvPgorICAgICAgPGFyZyBuYW1lPSdzcGFjZScgdHlwZT0naW50JyBpbmZvPSdhbGxvdyBzcGFjZXMgaW4gZnJvbnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVOYW1lJyBmaWxlPSd0cmVlJyBtb2R1bGU9J3RyZWUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2hlY2sgdGhhdCBhIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBsZXhpY2FsIHNwYWNlIG9mIE5hbWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgdG8gY2hlY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nc3BhY2UnIHR5cGU9J2ludCcgaW5mbz0nYWxsb3cgc3BhY2VzIGluIGZyb250IGFuZCBlbmQgb2YgdGhlIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkYXRlTmFtZVZhbHVlJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIHZhbHVlIG1hdGNoIE5hbWUgcHJvZHVjdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2FuIE5hbWUgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZU5hbWVzVmFsdWUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2ggTmFtZXMgcHJvZHVjdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2FuIE5hbWVzIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVObXRva2VuVmFsdWUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2ggTm10b2tlbiBwcm9kdWN0aW9uICBbIFZDOiBOYW1lIFRva2VuIF08L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhbiBObXRva2VuIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIHZhbHVlIG1hdGNoIE5tdG9rZW5zIHByb2R1Y3Rpb24gIFsgVkM6IE5hbWUgVG9rZW4gXTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2FuIE5tdG9rZW5zIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIG5vdGF0aW9uIGRlZmluaXRpb24gYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIGl0IHNlZW1zIHRoYXQgbm8gdmFsaWRpdHkgY29uc3RyYWludCBleGlzdHMgb24gbm90YXRpb24gZGVjbGFyYXRpb25zIEJ1dCB0aGlzIGZ1bmN0aW9uIGdldCBjYWxsZWQgYW55d2F5IC4uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSdub3RhJyB0eXBlPSd4bWxOb3RhdGlvblB0cicgaW5mbz0nYSBub3RhdGlvbiBkZWZpbml0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVOb3RhdGlvblVzZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIG5hbWUgbWF0Y2ggYSBub3RhdGlvbiBkZWNsYXJhdGlvbi4gLSBbIFZDOiBOb3RhdGlvbiBEZWNsYXJlZCBdPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgZG9jdW1lbnQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm90YXRpb25OYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBub3RhdGlvbiBuYW1lIHRvIGNoZWNrJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIGF0dHJpYnV0ZSBmb3IgYW4gZWxlbWVudCBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlIFhNTC0xLjAgcmVjb21tZW5kYXRpb246IC0gWyBWQzogQXR0cmlidXRlIFZhbHVlIFR5cGUgXSAtIFsgVkM6IEZpeGVkIEF0dHJpYnV0ZSBEZWZhdWx0IF0gLSBbIFZDOiBFbnRpdHkgTmFtZSBdIC0gWyBWQzogTmFtZSBUb2tlbiBdIC0gWyBWQzogSUQgXSAtIFsgVkM6IElEUkVGIF0gLSBbIFZDOiBFbnRpdHkgTmFtZSBdIC0gWyBWQzogTm90YXRpb24gQXR0cmlidXRlcyBdICBUaGUgSUQvSURSRUYgdW5pcXVlbmVzcyBhbmQgbWF0Y2hpbmcgYXJlIGRvbmUgc2VwYXJhdGVseTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYSBkb2N1bWVudCBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSdlbGVtJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhbiBlbGVtZW50IGluc3RhbmNlJy8+CisgICAgICA8YXJnIG5hbWU9J2F0dHInIHR5cGU9J3htbEF0dHJQdHInIGluZm89J2FuIGF0dHJpYnV0ZSBpbnN0YW5jZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgYXR0cmlidXRlIHZhbHVlICh3aXRob3V0IGVudGl0aWVzIHByb2Nlc3NpbmcpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVmFsaWRhdGVPbmVFbGVtZW50JyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSBlbGVtZW50IGFuZCBpdCZhcG9zO3MgYXR0cmlidXRlcywgYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IEVsZW1lbnQgVmFsaWQgXSAtIFsgVkM6IFJlcXVpcmVkIEF0dHJpYnV0ZSBdIFRoZW4gY2FsbCB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSgpIGZvciBlYWNoIGF0dHJpYnV0ZSBwcmVzZW50LiAgVGhlIElEL0lEUkVGIGNoZWNraW5ncyBhcmUgZG9uZSBzZXBhcmF0ZWx5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIGRvY3VtZW50IGluc3RhbmNlJy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2FuIGVsZW1lbnQgaW5zdGFuY2UnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZScgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcnkgdG8gdmFsaWRhdGUgYSBzaW5nbGUgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGZvciBhbiBlbGVtZW50IGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGFzIGRlc2NyaWJlZCBieSB0aGUgWE1MLTEuMCByZWNvbW1lbmRhdGlvbjogLSBbIFZDOiBBdHRyaWJ1dGUgVmFsdWUgVHlwZSBdIC0gWyBWQzogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgXSAtIFsgVkM6IEVudGl0eSBOYW1lIF0gLSBbIFZDOiBOYW1lIFRva2VuIF0gLSBbIFZDOiBJRCBdIC0gWyBWQzogSURSRUYgXSAtIFsgVkM6IEVudGl0eSBOYW1lIF0gLSBbIFZDOiBOb3RhdGlvbiBBdHRyaWJ1dGVzIF0gIFRoZSBJRC9JRFJFRiB1bmlxdWVuZXNzIGFuZCBtYXRjaGluZyBhcmUgZG9uZSBzZXBhcmF0ZWx5PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIGRvY3VtZW50IGluc3RhbmNlJy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2FuIGVsZW1lbnQgaW5zdGFuY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgcHJlZml4Jy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOc1B0cicgaW5mbz0nYW4gbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGluc3RhbmNlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBhdHRyaWJ1dGUgdmFsdWUgKHdpdGhvdXQgZW50aXRpZXMgcHJvY2Vzc2luZyknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxWYWxpZGF0ZVBvcEVsZW1lbnQnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UG9wIHRoZSBlbGVtZW50IGVuZCBmcm9tIHRoZSB2YWxpZGF0aW9uIHN0YWNrLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIG5vIHZhbGlkYXRpb24gcHJvYmxlbSB3YXMgZm91bmQgb3IgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIGRvY3VtZW50IGluc3RhbmNlJy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2FuIGVsZW1lbnQgaW5zdGFuY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0ncW5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkYXRlUHVzaENEYXRhJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKSAmYW1wOyZhbXA7IGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmNoZWNrIHRoZSBDRGF0YSBwYXJzZWQgZm9yIHZhbGlkYXRpb24gaW4gdGhlIGN1cnJlbnQgc3RhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFZhbGlkQ3R4dFB0cicgaW5mbz0ndGhlIHZhbGlkYXRpb24gY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3NvbWUgY2hhcmFjdGVyIGRhdGEgcmVhZCcvPgorICAgICAgPGFyZyBuYW1lPSdsZW4nIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxlbmdodCBvZiB0aGUgZGF0YScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkYXRlUHVzaEVsZW1lbnQnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHVzaCBhIG5ldyBlbGVtZW50IHN0YXJ0IG9uIHRoZSB2YWxpZGF0aW9uIHN0YWNrLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIG5vIHZhbGlkYXRpb24gcHJvYmxlbSB3YXMgZm91bmQgb3IgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIGRvY3VtZW50IGluc3RhbmNlJy8+CisgICAgICA8YXJnIG5hbWU9J2VsZW0nIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2FuIGVsZW1lbnQgaW5zdGFuY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0ncW5hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkYXRlUU5hbWUnIGZpbGU9J3RyZWUnIG1vZHVsZT0ndHJlZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgUU5hbWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgdmFsdWUgdG8gY2hlY2snLz4KKyAgICAgIDxhcmcgbmFtZT0nc3BhY2UnIHR5cGU9J2ludCcgaW5mbz0nYWxsb3cgc3BhY2VzIGluIGZyb250IGFuZCBlbmQgb2YgdGhlIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFZhbGlkYXRlUm9vdCcgZmlsZT0ndmFsaWQnIG1vZHVsZT0ndmFsaWQnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcnkgdG8gdmFsaWRhdGUgYSB0aGUgcm9vdCBlbGVtZW50IGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2sgYXMgZGVzY3JpYmVkIGJ5IHRoZSBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOiAtIFsgVkM6IFJvb3QgRWxlbWVudCBUeXBlIF0gaXQgZG9lc24mYXBvczt0IHRyeSB0byByZWN1cnNlIG9yIGFwcGx5IG90aGVyIGNoZWNrIHRvIHRoZSBlbGVtZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sVmFsaWRDdHh0UHRyJyBpbmZvPSd0aGUgdmFsaWRhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhIGRvY3VtZW50IGluc3RhbmNlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sVmFsaWRpdHlFcnJvckZ1bmMnIGZpbGU9J3ZhbGlkJyBtb2R1bGU9J3ZhbGlkJz4KKyAgICAgIDxpbmZvPkNhbGxiYWNrIGNhbGxlZCB3aGVuIGEgdmFsaWRpdHkgZXJyb3IgaXMgZm91bmQuIFRoaXMgaXMgYSBtZXNzYWdlIG9yaWVudGVkIGZ1bmN0aW9uIHNpbWlsYXIgdG8gYW4gKnByaW50ZiBmdW5jdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3VzdWFsbHkgYW4geG1sVmFsaWRDdHh0UHRyIHRvIGEgdmFsaWRpdHkgZXJyb3IgY29udGV4dCwgYnV0IGNvbWVzIGZyb20gY3R4dC0mZ3Q7dXNlckRhdGEgKHdoaWNoIG5vcm1hbGx5IGNvbnRhaW5zIHN1Y2ggYSBwb2ludGVyKTsgY3R4dC0mZ3Q7dXNlckRhdGEgY2FuIGJlIGNoYW5nZWQgYnkgdGhlIHVzZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgc3RyaW5nIHRvIGZvcm1hdCAqcHJpbnRmIGxpa2UgdmFyYXJnJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdyZW1haW5pbmcgYXJndW1lbnRzIHRvIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdHlwZSBuYW1lPSd4bWxWYWxpZGl0eVdhcm5pbmdGdW5jJyBmaWxlPSd2YWxpZCcgbW9kdWxlPSd2YWxpZCc+CisgICAgICA8aW5mbz5DYWxsYmFjayBjYWxsZWQgd2hlbiBhIHZhbGlkaXR5IHdhcm5pbmcgaXMgZm91bmQuIFRoaXMgaXMgYSBtZXNzYWdlIG9yaWVudGVkIGZ1bmN0aW9uIHNpbWlsYXIgdG8gYW4gKnByaW50ZiBmdW5jdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd2b2lkIConIGluZm89J3VzdWFsbHkgYW4geG1sVmFsaWRDdHh0UHRyIHRvIGEgdmFsaWRpdHkgZXJyb3IgY29udGV4dCwgYnV0IGNvbWVzIGZyb20gY3R4dC0mZ3Q7dXNlckRhdGEgKHdoaWNoIG5vcm1hbGx5IGNvbnRhaW5zIHN1Y2ggYSBwb2ludGVyKTsgY3R4dC0mZ3Q7dXNlckRhdGEgY2FuIGJlIGNoYW5nZWQgYnkgdGhlIHVzZXIuJy8+CisgICAgICA8YXJnIG5hbWU9J21zZycgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgc3RyaW5nIHRvIGZvcm1hdCAqcHJpbnRmIGxpa2UgdmFyYXJnJy8+CisgICAgICA8YXJnIG5hbWU9Jy4uLicgdHlwZT0nLi4uJyBpbmZvPSdyZW1haW5pbmcgYXJndW1lbnRzIHRvIHRoZSBmb3JtYXQnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYSW5jbHVkZUZyZWVDb250ZXh0JyBmaWxlPSd4aW5jbHVkZScgbW9kdWxlPSd4aW5jbHVkZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgYW4gWEluY2x1ZGUgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYSW5jbHVkZUN0eHRQdHInIGluZm89J3RoZSBYSW5jbHVkZSBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWEluY2x1ZGVOZXdDb250ZXh0JyBmaWxlPSd4aW5jbHVkZScgbW9kdWxlPSd4aW5jbHVkZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZXMgYSBuZXcgWEluY2x1ZGUgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWEluY2x1ZGVDdHh0UHRyJyBpbmZvPSd0aGUgbmV3IHNldCcvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYW4gWE1MIERvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWEluY2x1ZGVQcm9jZXNzJyBmaWxlPSd4aW5jbHVkZScgbW9kdWxlPSd4aW5jbHVkZSc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIG9uIHRoZSBYTUwgZG9jdW1lbnQgQGRvYzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQgb3IgdGhlIG51bWJlciBvZiBzdWJzdGl0dXRpb25zIGRvbmUuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSdhbiBYTUwgZG9jdW1lbnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYSW5jbHVkZVByb2Nlc3NGbGFncycgZmlsZT0neGluY2x1ZGUnIG1vZHVsZT0neGluY2x1ZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBvbiB0aGUgWE1MIGRvY3VtZW50IEBkb2M8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYW4gWE1MIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZsYWdzJyB0eXBlPSdpbnQnIGluZm89J2Egc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YScgZmlsZT0neGluY2x1ZGUnIG1vZHVsZT0neGluY2x1ZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBvbiB0aGUgWE1MIGRvY3VtZW50IEBkb2M8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0nYW4gWE1MIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZsYWdzJyB0eXBlPSdpbnQnIGluZm89J2Egc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcycvPgorICAgICAgPGFyZyBuYW1lPSdkYXRhJyB0eXBlPSd2b2lkIConIGluZm89J2FwcGxpY2F0aW9uIGRhdGEgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcGFyc2VyIGNvbnRleHQgaW4gdGhlIF9wcml2YXRlIGZpZWxkIG9mIHRoZSBwYXJzZXIgY29udGV4dChzKScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhJbmNsdWRlUHJvY2Vzc05vZGUnIGZpbGU9J3hpbmNsdWRlJyBtb2R1bGU9J3hpbmNsdWRlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gZm9yIHRoZSBnaXZlbiBzdWJ0cmVlIHJldXNpbmcgdGhlIGluZm9ybWF0aW9ucyBhbmQgZGF0YSBjb21pbmcgZnJvbSB0aGUgZ2l2ZW4gY29udGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYSW5jbHVkZUN0eHRQdHInIGluZm89J2FuIGV4aXN0aW5nIFhJbmNsdWRlIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBub2RlIGluIGFuIFhNTCBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhJbmNsdWRlUHJvY2Vzc1RyZWUnIGZpbGU9J3hpbmNsdWRlJyBtb2R1bGU9J3hpbmNsdWRlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gZm9yIHRoZSBnaXZlbiBzdWJ0cmVlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZCBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJlZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBub2RlIGluIGFuIFhNTCBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncycgZmlsZT0neGluY2x1ZGUnIG1vZHVsZT0neGluY2x1ZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBmb3IgdGhlIGdpdmVuIHN1YnRyZWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLicvPgorICAgICAgPGFyZyBuYW1lPSd0cmVlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2ZsYWdzJyB0eXBlPSdpbnQnIGluZm89J2Egc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEnIGZpbGU9J3hpbmNsdWRlJyBtb2R1bGU9J3hpbmNsdWRlJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gb24gdGhlIFhNTCBub2RlIEB0cmVlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZCBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndHJlZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYW4gWE1MIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmxhZ3MnIHR5cGU9J2ludCcgaW5mbz0nYSBzZXQgb2YgeG1sUGFyc2VyT3B0aW9uIHVzZWQgZm9yIHBhcnNpbmcgWE1MIGluY2x1ZGVzJy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYXBwbGljYXRpb24gZGF0YSB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBwYXJzZXIgY29udGV4dCBpbiB0aGUgX3ByaXZhdGUgZmllbGQgb2YgdGhlIHBhcnNlciBjb250ZXh0KHMpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWEluY2x1ZGVTZXRGbGFncycgZmlsZT0neGluY2x1ZGUnIG1vZHVsZT0neGluY2x1ZGUnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZXQgdGhlIGZsYWdzIHVzZWQgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZyBvZiBYTUwgcmVzb3VyY2VzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWEluY2x1ZGVDdHh0UHRyJyBpbmZvPSdhbiBYSW5jbHVkZSBwcm9jZXNzaW5nIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmxhZ3MnIHR5cGU9J2ludCcgaW5mbz0nYSBzZXQgb2YgeG1sUGFyc2VyT3B0aW9uIHVzZWQgZm9yIHBhcnNpbmcgWE1MIGluY2x1ZGVzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhBZGRWYWx1ZXMnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBhZGQgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHM6IFRoZSBudW1lcmljIG9wZXJhdG9ycyBjb252ZXJ0IHRoZWlyIG9wZXJhbmRzIHRvIG51bWJlcnMgYXMgaWYgYnkgY2FsbGluZyB0aGUgbnVtYmVyIGZ1bmN0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0eXBlIG5hbWU9J3htbFhQYXRoQXhpc0Z1bmMnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QW4gYXhpcyB0cmF2ZXJzYWwgZnVuY3Rpb24uIFRvIHRyYXZlcnNlIGFuIGF4aXMsIHRoZSBlbmdpbmUgY2FsbHMgdGhlIGZpcnN0IHRpbWUgd2l0aCBjdXIgPT0gTlVMTCBhbmQgcmVwZWF0IHVudGlsIHRoZSBmdW5jdGlvbiByZXR1cm5zIE5VTEwgaW5kaWNhdGluZyB0aGUgZW5kIG9mIHRoZSBheGlzIHRyYXZlcnNhbC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV4dCBub2RlIGluIHRoYXQgYXhpcyBvciBOVUxMIGlmIGF0IHRoZSBlbmQgb2YgdGhlIGF4aXMuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGludGVycHJldGVyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIHByZXZpb3VzIG5vZGUgYmVpbmcgZXhwbG9yZWQgb24gdGhhdCBheGlzJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhCb29sZWFuRnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBib29sZWFuKCkgWFBhdGggZnVuY3Rpb24gYm9vbGVhbiBib29sZWFuKG9iamVjdCkgVGhlIGJvb2xlYW4gZnVuY3Rpb24gY29udmVydHMgaXRzIGFyZ3VtZW50IHRvIGEgYm9vbGVhbiBhcyBmb2xsb3dzOiAtIGEgbnVtYmVyIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgaXQgaXMgbmVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSB6ZXJvIG5vciBOYU4gLSBhIG5vZGUtc2V0IGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgaXQgaXMgbm9uLWVtcHR5IC0gYSBzdHJpbmcgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiBpdHMgbGVuZ3RoIGlzIG5vbi16ZXJvPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvbnZlcnRzIGEgYm9vbGVhbiB0byBpdHMgbnVtYmVyIHZhbHVlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdkb3VibGUnIGluZm89J3RoZSBudW1iZXIgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdpbnQnIGluZm89J2EgYm9vbGVhbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZycgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db252ZXJ0cyBhIGJvb2xlYW4gdG8gaXRzIHN0cmluZyB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2ludCcgaW5mbz0nYSBib29sZWFuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbicgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db252ZXJ0cyBhIG5vZGUtc2V0IHRvIGl0cyBib29sZWFuIHZhbHVlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RoZSBib29sZWFuIHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdhIG5vZGUtc2V0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvbnZlcnRzIGEgbm9kZS1zZXQgdG8gaXRzIG51bWJlciB2YWx1ZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nZG91YmxlJyBpbmZvPSd0aGUgbnVtYmVyIHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdhIG5vZGUtc2V0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvbnZlcnRzIGEgbm9kZS1zZXQgdG8gaXRzIHN0cmluZyB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nLicvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ2FzdE5vZGVUb051bWJlcicgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db252ZXJ0cyBhIG5vZGUgdG8gaXRzIG51bWJlciB2YWx1ZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nZG91YmxlJyBpbmZvPSd0aGUgbnVtYmVyIHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2Egbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ2FzdE5vZGVUb1N0cmluZycgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db252ZXJ0cyBhIG5vZGUgdG8gaXRzIHN0cmluZyB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nLicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4nIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydHMgYSBudW1iZXIgdG8gaXRzIGJvb2xlYW4gdmFsdWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJvb2xlYW4gdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdkb3VibGUnIGluZm89J2EgbnVtYmVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmcnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydHMgYSBudW1iZXIgdG8gaXRzIHN0cmluZyB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2RvdWJsZScgaW5mbz0nYSBudW1iZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4nIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydHMgYSBzdHJpbmcgdG8gaXRzIGJvb2xlYW4gdmFsdWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJvb2xlYW4gdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J2Egc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXInIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydHMgYSBzdHJpbmcgdG8gaXRzIG51bWJlciB2YWx1ZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nZG91YmxlJyBpbmZvPSd0aGUgbnVtYmVyIHZhbHVlJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIHN0cmluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ2FzdFRvQm9vbGVhbicgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db252ZXJ0cyBhbiBYUGF0aCBvYmplY3QgdG8gaXRzIGJvb2xlYW4gdmFsdWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndGhlIGJvb2xlYW4gdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nYW4gWFBhdGggb2JqZWN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDYXN0VG9OdW1iZXInIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydHMgYW4gWFBhdGggb2JqZWN0IHRvIGl0cyBudW1iZXIgdmFsdWU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2RvdWJsZScgaW5mbz0ndGhlIG51bWJlciB2YWx1ZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSdhbiBYUGF0aCBvYmplY3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aENhc3RUb1N0cmluZycgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db252ZXJ0cyBhbiBleGlzdGluZyBvYmplY3QgdG8gaXRzIHN0cmluZygpIGVxdWl2YWxlbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIGFsbG9jYXRlZCBzdHJpbmcgdmFsdWUgb2YgdGhlIG9iamVjdCwgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBJdCZhcG9zO3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBzdHJpbmcgbWVtb3J5IHdpdGggeG1sRnJlZSgpLicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSdhbiBYUGF0aCBvYmplY3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aENlaWxpbmdGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIGNlaWxpbmcoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgY2VpbGluZyhudW1iZXIpIFRoZSBjZWlsaW5nIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNtYWxsZXN0IChjbG9zZXN0IHRvIG5lZ2F0aXZlIGluZmluaXR5KSBudW1iZXIgdGhhdCBpcyBub3QgbGVzcyB0aGFuIHRoZSBhcmd1bWVudCBhbmQgdGhhdCBpcyBhbiBpbnRlZ2VyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ21wTm9kZXMnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29tcGFyZSB0d28gbm9kZXMgdy5yLnQgZG9jdW1lbnQgb3JkZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTIgaW4gY2FzZSBvZiBlcnJvciAxIGlmIGZpcnN0IHBvaW50ICZsdDsgc2Vjb25kIHBvaW50LCAwIGlmIGl0JmFwb3M7cyB0aGUgc2FtZSBub2RlLCAtMSBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZTEnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBmaXJzdCBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgc2Vjb25kIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aENvbXBhcmVWYWx1ZXMnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBjb21wYXJlIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzOiBAYXJnMSAmbHQ7IEBhcmcyICAgICgxLCAxLCAuLi4gQGFyZzEgJmx0Oz0gQGFyZzIgICAoMSwgMCwgLi4uIEBhcmcxICZndDsgQGFyZzIgICAgKDAsIDEsIC4uLiBAYXJnMSAmZ3Q7PSBAYXJnMiAgICgwLCAwLCAuLi4gIFdoZW4gbmVpdGhlciBvYmplY3QgdG8gYmUgY29tcGFyZWQgaXMgYSBub2RlLXNldCBhbmQgdGhlIG9wZXJhdG9yIGlzICZsdDs9LCAmbHQ7LCAmZ3Q7PSwgJmd0OywgdGhlbiB0aGUgb2JqZWN0cyBhcmUgY29tcGFyZWQgYnkgY29udmVydGVkIGJvdGggb2JqZWN0cyB0byBudW1iZXJzIGFuZCBjb21wYXJpbmcgdGhlIG51bWJlcnMgYWNjb3JkaW5nIHRvIElFRUUgNzU0LiBUaGUgJmx0OyBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgbnVtYmVyIGlzIGxlc3MgdGhhbiB0aGUgc2Vjb25kIG51bWJlci4gVGhlICZsdDs9IGNvbXBhcmlzb24gd2lsbCBiZSB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBmaXJzdCBudW1iZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZWNvbmQgbnVtYmVyLiBUaGUgJmd0OyBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUgZmlyc3QgbnVtYmVyIGlzIGdyZWF0ZXIgdGhhbiB0aGUgc2Vjb25kIG51bWJlci4gVGhlICZndDs9IGNvbXBhcmlzb24gd2lsbCBiZSB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBmaXJzdCBudW1iZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZWNvbmQgbnVtYmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRoZSBjb21wYXJpc29uIHN1Y2NlZWRlZCwgMCBpZiBpdCBmYWlsZWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0naW5mJyB0eXBlPSdpbnQnIGluZm89J2xlc3MgdGhhbiAoMSkgb3IgZ3JlYXRlciB0aGFuICgwKScvPgorICAgICAgPGFyZyBuYW1lPSdzdHJpY3QnIHR5cGU9J2ludCcgaW5mbz0naXMgdGhlIGNvbXBhcmlzb24gc3RyaWN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDb21waWxlJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvbXBpbGUgYW4gWFBhdGggZXhwcmVzc2lvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhDb21wRXhwclB0cicgaW5mbz0ndGhlIHhtbFhQYXRoQ29tcEV4cHJQdHIgcmVzdWx0aW5nIGZyb20gdGhlIGNvbXBpbGF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBYUGF0aCBleHByZXNzaW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDb21waWxlZEV2YWwnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RXZhbHVhdGUgdGhlIFByZWNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGdpdmVuIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIHhtbFhQYXRoT2JqZWN0UHRyIHJlc3VsdGluZyBmcm9tIHRoZSBldmFsdWF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nY29tcCcgdHlwZT0neG1sWFBhdGhDb21wRXhwclB0cicgaW5mbz0ndGhlIGNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW4nIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+QXBwbGllcyB0aGUgWFBhdGggYm9vbGVhbigpIGZ1bmN0aW9uIG9uIHRoZSByZXN1bHQgb2YgdGhlIGdpdmVuIGNvbXBpbGVkIGV4cHJlc3Npb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdGhlIGV4cHJlc3Npb24gZXZhbHVhdGVkIHRvIHRydWUsIDAgaWYgdG8gZmFsc2UgYW5kIC0xIGluIEFQSSBhbmQgaW50ZXJuYWwgZXJyb3JzLicvPgorICAgICAgPGFyZyBuYW1lPSdjb21wJyB0eXBlPSd4bWxYUGF0aENvbXBFeHByUHRyJyBpbmZvPSd0aGUgY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDb25jYXRGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIGNvbmNhdCgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBjb25jYXQoc3RyaW5nLCBzdHJpbmcsIHN0cmluZyopIFRoZSBjb25jYXQgZnVuY3Rpb24gcmV0dXJucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiBpdHMgYXJndW1lbnRzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIGNvbnRhaW5zKCkgWFBhdGggZnVuY3Rpb24gYm9vbGVhbiBjb250YWlucyhzdHJpbmcsIHN0cmluZykgVGhlIGNvbnRhaW5zIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIGNvbnRhaW5zIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nLCBhbmQgb3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlcy9mcmVlcyBhbiBvYmplY3QgY2FjaGUgb24gdGhlIFhQYXRoIGNvbnRleHQuIElmIGFjdGl2YXRlcyBYUGF0aCBvYmplY3RzICh4bWxYUGF0aE9iamVjdCkgd2lsbCBiZSBjYWNoZWQgaW50ZXJuYWxseSB0byBiZSByZXVzZWQuIEBvcHRpb25zOiAwOiBUaGlzIHdpbGwgc2V0IHRoZSBYUGF0aCBvYmplY3QgY2FjaGluZzogQHZhbHVlOiBUaGlzIHdpbGwgc2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBYUGF0aCBvYmplY3RzIHRvIGJlIGNhY2hlZCBwZXIgc2xvdCBUaGVyZSBhcmUgNSBzbG90cyBmb3I6IG5vZGUtc2V0LCBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiwgYW5kIG1pc2Mgb2JqZWN0cy4gVXNlICZsdDswIGZvciB0aGUgZGVmYXVsdCBudW1iZXIgKDEwMCkuIE90aGVyIHZhbHVlcyBmb3IgQG9wdGlvbnMgaGF2ZSBjdXJyZW50bHkgbm8gZWZmZWN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGlmIHRoZSBzZXR0aW5nIHN1Y2NlZWRlZCwgYW5kIC0xIG9uIEFQSSBvciBpbnRlcm5hbCBlcnJvcnMuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nYWN0aXZlJyB0eXBlPSdpbnQnIGluZm89J2VuYWJsZXMvZGlzYWJsZXMgKGNyZWF0ZXMvZnJlZXMpIHRoZSBjYWNoZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWx1ZScgdHlwZT0naW50JyBpbmZvPSdhIHZhbHVlIHdpdGggc2VtYW50aWNzIGRlcGVuZGFudCBvbiBAb3B0aW9ucycvPgorICAgICAgPGFyZyBuYW1lPSdvcHRpb25zJyB0eXBlPSdpbnQnIGluZm89J29wdGlvbnMgKGN1cnJlbnRseSBvbmx5IHRoZSB2YWx1ZSAwIGlzIHVzZWQpJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDb252ZXJ0Qm9vbGVhbicgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Db252ZXJ0cyBhbiBleGlzdGluZyBvYmplY3QgdG8gaXRzIGJvb2xlYW4oKSBlcXVpdmFsZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ldyBvYmplY3QsIHRoZSBvbGQgb25lIGlzIGZyZWVkIChvciB0aGUgb3BlcmF0aW9uIGlzIGRvbmUgZGlyZWN0bHkgb24gQHZhbCknLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nYW4gWFBhdGggb2JqZWN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sWFBhdGhDb252ZXJ0RnVuYycgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BIGNvbnZlcnNpb24gZnVuY3Rpb24gaXMgYXNzb2NpYXRlZCB0byBhIHR5cGUgYW5kIHVzZWQgdG8gY2FzdCB0aGUgbmV3IHR5cGUgdG8gcHJpbWl0aXZlIHZhbHVlcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nb2JqJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nYW4gWFBhdGggb2JqZWN0Jy8+CisgICAgICA8YXJnIG5hbWU9J3R5cGUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiB0aGUgdGFyZ2V0IHR5cGUnLz4KKyAgICA8L2Z1bmN0eXBlPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aENvbnZlcnROdW1iZXInIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29udmVydHMgYW4gZXhpc3Rpbmcgb2JqZWN0IHRvIGl0cyBudW1iZXIoKSBlcXVpdmFsZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ldyBvYmplY3QsIHRoZSBvbGQgb25lIGlzIGZyZWVkIChvciB0aGUgb3BlcmF0aW9uIGlzIGRvbmUgZGlyZWN0bHkgb24gQHZhbCknLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nYW4gWFBhdGggb2JqZWN0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhDb252ZXJ0U3RyaW5nJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgc3RyaW5nKCkgZXF1aXZhbGVudDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXcgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbiBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J2FuIFhQYXRoIG9iamVjdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ291bnRGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIGNvdW50KCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIGNvdW50KG5vZGUtc2V0KTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoQ3R4dENvbXBpbGUnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q29tcGlsZSBhbiBYUGF0aCBleHByZXNzaW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aENvbXBFeHByUHRyJyBpbmZvPSd0aGUgeG1sWFBhdGhDb21wRXhwclB0ciByZXN1bHRpbmcgZnJvbSB0aGUgY29tcGlsYXRpb24gb3IgTlVMTC4gdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J2FuIFhQYXRoIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBYUGF0aCBleHByZXNzaW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgJmFtcDsmYW1wOyBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkR1bXBzIHRoZSB0cmVlIG9mIHRoZSBjb21waWxlZCBYUGF0aCBleHByZXNzaW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCcvPgorICAgICAgPGFyZyBuYW1lPSdjb21wJyB0eXBlPSd4bWxYUGF0aENvbXBFeHByUHRyJyBpbmZvPSd0aGUgcHJlY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbicvPgorICAgICAgPGFyZyBuYW1lPSdkZXB0aCcgdHlwZT0naW50JyBpbmZvPSd0aGUgaW5kZW50YXRpb24gbGV2ZWwuJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICZhbXA7JmFtcDsgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5EdW1wIHRoZSBjb250ZW50IG9mIHRoZSBvYmplY3QgZm9yIGRlYnVnZ2luZyBwdXJwb3NlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvdXRwdXQnIHR5cGU9J0ZJTEUgKicgaW5mbz0ndGhlIEZJTEUgKiB0byBkdW1wIHRoZSBvdXRwdXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG9iamVjdCB0byBpbnNwZWN0Jy8+CisgICAgICA8YXJnIG5hbWU9J2RlcHRoJyB0eXBlPSdpbnQnIGluZm89J2luZGVudGF0aW9uIGxldmVsJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhEaWZmZXJlbmNlJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaWZmZXJlbmNlKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDpkaWZmZXJlbmNlIChub2RlLXNldCwgbm9kZS1zZXQpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gbm9kZSBzZXRzLCBvciBub2RlczEgaWYgbm9kZXMyIGlzIGVtcHR5Jy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzMScgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlczInIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aERpc3RpbmN0JyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaXN0aW5jdCgpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6ZGlzdGluY3QgKG5vZGUtc2V0KSBAbm9kZXMgaXMgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyLCB0aGVuICNleHNsU2V0c0Rpc3RpbmN0U29ydGVkIGlzIGNhbGxlZCB3aXRoIHRoZSBzb3J0ZWQgbm9kZS1zZXQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egc3Vic2V0IG9mIHRoZSBub2RlcyBjb250YWluZWQgaW4gQG5vZGVzLCBvciBAbm9kZXMgaWYgaXQgaXMgZW1wdHknLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZXMnIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aERpc3RpbmN0U29ydGVkJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaXN0aW5jdCgpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6ZGlzdGluY3QgKG5vZGUtc2V0KTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBzdWJzZXQgb2YgdGhlIG5vZGVzIGNvbnRhaW5lZCBpbiBAbm9kZXMsIG9yIEBub2RlcyBpZiBpdCBpcyBlbXB0eScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlcycgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhEaXZWYWx1ZXMnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBkaXYgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHMgQGFyZzEgLyBAYXJnMjogVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhFcXVhbFZhbHVlcycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIGVxdWFsIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzIGNvbnRlbnQ6IEBhcmcxID09IEBhcmcyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3QuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhFcnInIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SGFuZGxlIGFuIFhQYXRoIGVycm9yPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0nYSBYUGF0aCBwYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdlcnJvcicgdHlwZT0naW50JyBpbmZvPSd0aGUgZXJyb3IgY29kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoRXZhbCcgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FdmFsdWF0ZSB0aGUgWFBhdGggTG9jYXRpb24gUGF0aCBpbiB0aGUgZ2l2ZW4gY29udGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgeG1sWFBhdGhPYmplY3RQdHIgcmVzdWx0aW5nIGZyb20gdGhlIGV2YWx1YXRpb24gb3IgTlVMTC4gdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFhQYXRoIGV4cHJlc3Npb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhFdmFsRXhwcicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5QYXJzZSBhbmQgZXZhbHVhdGUgYW4gWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgZ2l2ZW4gY29udGV4dCwgdGhlbiBwdXNoIHRoZSByZXN1bHQgb24gdGhlIGNvbnRleHQgc3RhY2s8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEV2YWxFeHByZXNzaW9uJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkV2YWx1YXRlIHRoZSBYUGF0aCBleHByZXNzaW9uIGluIHRoZSBnaXZlbiBjb250ZXh0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSB4bWxYUGF0aE9iamVjdFB0ciByZXN1bHRpbmcgZnJvbSB0aGUgZXZhbHVhdGlvbiBvciBOVUxMLiB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3N0cicgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgWFBhdGggZXhwcmVzc2lvbicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sWFBhdGhFdmFsRnVuYycgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BbiBYUGF0aCBldmFsdWF0aW9uIGZ1bmN0aW9uLCB0aGUgcGFyYW1ldGVycyBhcmUgb24gdGhlIFhQYXRoIGNvbnRleHQgc3RhY2suPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0nYW4gWFBhdGggcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFyZ3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbicvPgorICAgIDwvZnVuY3R5cGU+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoRXZhbFByZWRpY2F0ZScgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5FdmFsdWF0ZSBhIHByZWRpY2F0ZSByZXN1bHQgZm9yIHRoZSBjdXJyZW50IG5vZGUuIEEgUHJlZGljYXRlRXhwciBpcyBldmFsdWF0ZWQgYnkgZXZhbHVhdGluZyB0aGUgRXhwciBhbmQgY29udmVydGluZyB0aGUgcmVzdWx0IHRvIGEgYm9vbGVhbi4gSWYgdGhlIHJlc3VsdCBpcyBhIG51bWJlciwgdGhlIHJlc3VsdCB3aWxsIGJlIGNvbnZlcnRlZCB0byB0cnVlIGlmIHRoZSBudW1iZXIgaXMgZXF1YWwgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gdGhlIGNvbnRleHQgbm9kZSBsaXN0IChhcyByZXR1cm5lZCBieSB0aGUgcG9zaXRpb24gZnVuY3Rpb24pIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBmYWxzZSBvdGhlcndpc2U7IGlmIHRoZSByZXN1bHQgaXMgbm90IGEgbnVtYmVyLCB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZSBjb252ZXJ0ZWQgYXMgaWYgYnkgYSBjYWxsIHRvIHRoZSBib29sZWFuIGZ1bmN0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHByZWRpY2F0ZSBpcyB0cnVlLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3JlcycgdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBQcmVkaWNhdGUgRXhwcmVzc2lvbiBldmFsdWF0aW9uIHJlc3VsdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RXZhbHVhdGUgYSBwcmVkaWNhdGUgcmVzdWx0IGZvciB0aGUgY3VycmVudCBub2RlLiBBIFByZWRpY2F0ZUV4cHIgaXMgZXZhbHVhdGVkIGJ5IGV2YWx1YXRpbmcgdGhlIEV4cHIgYW5kIGNvbnZlcnRpbmcgdGhlIHJlc3VsdCB0byBhIGJvb2xlYW4uIElmIHRoZSByZXN1bHQgaXMgYSBudW1iZXIsIHRoZSByZXN1bHQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdHJ1ZSBpZiB0aGUgbnVtYmVyIGlzIGVxdWFsIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udGV4dCBub2RlIGluIHRoZSBjb250ZXh0IG5vZGUgbGlzdCAoYXMgcmV0dXJuZWQgYnkgdGhlIHBvc2l0aW9uIGZ1bmN0aW9uKSBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gZmFsc2Ugb3RoZXJ3aXNlOyBpZiB0aGUgcmVzdWx0IGlzIG5vdCBhIG51bWJlciwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgY29udmVydGVkIGFzIGlmIGJ5IGEgY2FsbCB0byB0aGUgYm9vbGVhbiBmdW5jdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMSBpZiBwcmVkaWNhdGUgaXMgdHJ1ZSwgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVzJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIFByZWRpY2F0ZSBFeHByZXNzaW9uIGV2YWx1YXRpb24gcmVzdWx0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhGYWxzZUZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgZmFsc2UoKSBYUGF0aCBmdW5jdGlvbiBib29sZWFuIGZhbHNlKCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFyZ3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEZsb29yRnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBmbG9vcigpIFhQYXRoIGZ1bmN0aW9uIG51bWJlciBmbG9vcihudW1iZXIpIFRoZSBmbG9vciBmdW5jdGlvbiByZXR1cm5zIHRoZSBsYXJnZXN0IChjbG9zZXN0IHRvIHBvc2l0aXZlIGluZmluaXR5KSBudW1iZXIgdGhhdCBpcyBub3QgZ3JlYXRlciB0aGFuIHRoZSBhcmd1bWVudCBhbmQgdGhhdCBpcyBhbiBpbnRlZ2VyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoRnJlZUNvbXBFeHByJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZyZWUgdXAgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgYnkgQGNvbXA8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY29tcCcgdHlwZT0neG1sWFBhdGhDb21wRXhwclB0cicgaW5mbz0nYW4gWFBBVEggY29tcCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoRnJlZUNvbnRleHQnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB1cCBhbiB4bWxYUGF0aENvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgY29udGV4dCB0byBmcmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhGcmVlTm9kZVNldCcgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GcmVlIHRoZSBOb2RlU2V0IGNvbXBvdW5kIChub3QgdGhlIGFjdHVhbCBub2RlcyAhKS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nb2JqJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgeG1sTm9kZVNldFB0ciB0byBmcmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhGcmVlTm9kZVNldExpc3QnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB1cCB0aGUgeG1sWFBhdGhPYmplY3RQdHIgQG9iaiBidXQgZG9uJmFwb3M7dCBkZWFsbG9jYXRlIHRoZSBvYmplY3RzIGluIHRoZSBsaXN0IGNvbnRyYXJ5IHRvIHhtbFhQYXRoRnJlZU9iamVjdCgpLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvYmonIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSdhbiBleGlzdGluZyBOb2RlU2V0TGlzdCBvYmplY3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEZyZWVPYmplY3QnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB1cCBhbiB4bWxYUGF0aE9iamVjdFB0ciBvYmplY3QuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J29iaicgdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBvYmplY3QgdG8gZnJlZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoRnJlZVBhcnNlckNvbnRleHQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RnJlZSB1cCBhbiB4bWxYUGF0aFBhcnNlckNvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgY29udGV4dCB0byBmcmVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sWFBhdGhGdW5jTG9va3VwRnVuYycgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qcm90b3R5cGUgZm9yIGNhbGxiYWNrcyB1c2VkIHRvIHBsdWcgZnVuY3Rpb24gbG9va3VwIGluIHRoZSBYUGF0aCBlbmdpbmUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aEZ1bmN0aW9uJyBpbmZvPSd0aGUgWFBhdGggZnVuY3Rpb24gb3IgTlVMTCBpZiBub3QgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gWFBhdGggY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J25hbWUgb2YgdGhlIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J25zX3VyaScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIG5hbWUgaG9zdGluZyB0aGlzIGZ1bmN0aW9uJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sWFBhdGhGdW5jdGlvbicgZmlsZT0neHBhdGgnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5BbiBYUGF0aCBmdW5jdGlvbi4gVGhlIGFyZ3VtZW50cyAoaWYgYW55KSBhcmUgcG9wcGVkIG91dCBmcm9tIHRoZSBjb250ZXh0IHN0YWNrIGFuZCB0aGUgcmVzdWx0IGlzIHB1c2hlZCBvbiB0aGUgc3RhY2suPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGludGVycHJlc3RhdGlvbiBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhGdW5jdGlvbkxvb2t1cCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5TZWFyY2ggaW4gdGhlIEZ1bmN0aW9uIGFycmF5IG9mIHRoZSBjb250ZXh0IGZvciB0aGUgZ2l2ZW4gZnVuY3Rpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aEZ1bmN0aW9uJyBpbmZvPSd0aGUgeG1sWFBhdGhGdW5jdGlvbiBvciBOVUxMIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIGZ1bmN0aW9uIG5hbWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2VhcmNoIGluIHRoZSBGdW5jdGlvbiBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIGZ1bmN0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhGdW5jdGlvbicgaW5mbz0ndGhlIHhtbFhQYXRoRnVuY3Rpb24gb3IgTlVMTCBpZiBub3QgZm91bmQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBmdW5jdGlvbiBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25zX3VyaScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZnVuY3Rpb24gbmFtZXNwYWNlIFVSSScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoSGFzU2FtZU5vZGVzJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBoYXMtc2FtZS1ub2RlcyBmdW5jdGlvbjogYm9vbGVhbiBzZXQ6aGFzLXNhbWUtbm9kZShub2RlLXNldCwgbm9kZS1zZXQpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89J3RydWUgKDEpIGlmIEBub2RlczEgc2hhcmVzIGFueSBub2RlIHdpdGggQG5vZGVzMiwgZmFsc2UgKDApIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlczEnIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZXMyJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdhIG5vZGUtc2V0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhJZEZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgaWQoKSBYUGF0aCBmdW5jdGlvbiBub2RlLXNldCBpZChvYmplY3QpIFRoZSBpZCBmdW5jdGlvbiBzZWxlY3RzIGVsZW1lbnRzIGJ5IHRoZWlyIHVuaXF1ZSBJRCAoc2VlIFs1LjIuMSBVbmlxdWUgSURzXSkuIFdoZW4gdGhlIGFyZ3VtZW50IHRvIGlkIGlzIG9mIHR5cGUgbm9kZS1zZXQsIHRoZW4gdGhlIHJlc3VsdCBpcyB0aGUgdW5pb24gb2YgdGhlIHJlc3VsdCBvZiBhcHBseWluZyBpZCB0byB0aGUgc3RyaW5nIHZhbHVlIG9mIGVhY2ggb2YgdGhlIG5vZGVzIGluIHRoZSBhcmd1bWVudCBub2RlLXNldC4gV2hlbiB0aGUgYXJndW1lbnQgdG8gaWQgaXMgb2YgYW55IG90aGVyIHR5cGUsIHRoZSBhcmd1bWVudCBpcyBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgYXMgaWYgYnkgYSBjYWxsIHRvIHRoZSBzdHJpbmcgZnVuY3Rpb247IHRoZSBzdHJpbmcgaXMgc3BsaXQgaW50byBhIHdoaXRlc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgdG9rZW5zICh3aGl0ZXNwYWNlIGlzIGFueSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIG1hdGNoaW5nIHRoZSBwcm9kdWN0aW9uIFMpOyB0aGUgcmVzdWx0IGlzIGEgbm9kZS1zZXQgY29udGFpbmluZyB0aGUgZWxlbWVudHMgaW4gdGhlIHNhbWUgZG9jdW1lbnQgYXMgdGhlIGNvbnRleHQgbm9kZSB0aGF0IGhhdmUgYSB1bmlxdWUgSUQgZXF1YWwgdG8gYW55IG9mIHRoZSB0b2tlbnMgaW4gdGhlIGxpc3QuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhJbml0JyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW5pdGlhbGl6ZSB0aGUgWFBhdGggZW52aXJvbm1lbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEludGVyc2VjdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgaW50ZXJzZWN0aW9uKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDppbnRlcnNlY3Rpb24gKG5vZGUtc2V0LCBub2RlLXNldCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZSBzZXQgY29tcHJpc2luZyB0aGUgbm9kZXMgdGhhdCBhcmUgd2l0aGluIGJvdGggdGhlIG5vZGUgc2V0cyBwYXNzZWQgYXMgYXJndW1lbnRzJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzMScgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlczInIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aElzSW5mJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdmlkZXMgYSBwb3J0YWJsZSBpc2luZigpIGZ1bmN0aW9uIHRvIGRldGVjdCB3aGV0aGVyIGEgZG91YmxlIGlzIGEgK0luZmluaXRlIG9yIC1JbmZpbml0ZS4gQmFzZWQgb24gdHJpbyBjb2RlIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvY3RyaW8vPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgdmkgdGhlIHZhbHVlIGlzICtJbmZpbml0ZSwgLTEgaWYgLUluZmluaXRlLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2RvdWJsZScgaW5mbz0nYSBkb3VibGUgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aElzTmFOJyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdmlkZXMgYSBwb3J0YWJsZSBpc25hbigpIGZ1bmN0aW9uIHRvIGRldGVjdCB3aGV0aGVyIGEgZG91YmxlIGlzIGEgTm90YU51bWJlci4gQmFzZWQgb24gdHJpbyBjb2RlIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvY3RyaW8vPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzEgaWYgdGhlIHZhbHVlIGlzIGEgTmFOLCAwIG90aGVyd2lzZScvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2RvdWJsZScgaW5mbz0nYSBkb3VibGUgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aElzTm9kZVR5cGUnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SXMgdGhlIG5hbWUgZ2l2ZW4gYSBOb2RlVHlwZSBvbmUuICBbMzhdICAgTm9kZVR5cGUgOjo9ICAgJmFwb3M7Y29tbWVudCZhcG9zOyB8ICZhcG9zO3RleHQmYXBvczsgfCAmYXBvcztwcm9jZXNzaW5nLWluc3RydWN0aW9uJmFwb3M7IHwgJmFwb3M7bm9kZSZhcG9zOzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScxIGlmIHRydWUgMCBvdGhlcndpc2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSdhIG5hbWUgc3RyaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhMYW5nRnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBsYW5nKCkgWFBhdGggZnVuY3Rpb24gYm9vbGVhbiBsYW5nKHN0cmluZykgVGhlIGxhbmcgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBsYW5ndWFnZSBvZiB0aGUgY29udGV4dCBub2RlIGFzIHNwZWNpZmllZCBieSB4bWw6bGFuZyBhdHRyaWJ1dGVzIGlzIHRoZSBzYW1lIGFzIG9yIGlzIGEgc3VibGFuZ3VhZ2Ugb2YgdGhlIGxhbmd1YWdlIHNwZWNpZmllZCBieSB0aGUgYXJndW1lbnQgc3RyaW5nLiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIGNvbnRleHQgbm9kZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgeG1sOmxhbmcgYXR0cmlidXRlIG9uIHRoZSBjb250ZXh0IG5vZGUsIG9yLCBpZiB0aGUgY29udGV4dCBub2RlIGhhcyBubyB4bWw6bGFuZyBhdHRyaWJ1dGUsIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgeG1sOmxhbmcgYXR0cmlidXRlIG9uIHRoZSBuZWFyZXN0IGFuY2VzdG9yIG9mIHRoZSBjb250ZXh0IG5vZGUgdGhhdCBoYXMgYW4geG1sOmxhbmcgYXR0cmlidXRlLiBJZiB0aGVyZSBpcyBubyBzdWNoIGF0dHJpYnV0ZSwgdGhlbiBsYW5nPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhMYXN0RnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBsYXN0KCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIGxhc3QoKSBUaGUgbGFzdCBmdW5jdGlvbiByZXR1cm5zIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIGNvbnRleHQgbm9kZSBsaXN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTGVhZGluZycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgbGVhZGluZygpIGZ1bmN0aW9uOiBub2RlLXNldCBzZXQ6bGVhZGluZyAobm9kZS1zZXQsIG5vZGUtc2V0KSBAbm9kZXMxIGFuZCBAbm9kZXMyIGFyZSBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI2V4c2xTZXRzTGVhZGluZ1NvcnRlZCBpcyBjYWxsZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgbm9kZXMgaW4gQG5vZGVzMSB0aGF0IHByZWNlZGUgdGhlIGZpcnN0IG5vZGUgaW4gQG5vZGVzMiBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzMSBpZiBAbm9kZXMyIGlzIE5VTEwgb3IgZW1wdHkgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzMSBkb2VzbiZhcG9zO3QgY29udGFpbiBAbm9kZXMyJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzMScgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlczInIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZS1zZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aExlYWRpbmdTb3J0ZWQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGxlYWRpbmcoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OmxlYWRpbmcgKG5vZGUtc2V0LCBub2RlLXNldCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J3RoZSBub2RlcyBpbiBAbm9kZXMxIHRoYXQgcHJlY2VkZSB0aGUgZmlyc3Qgbm9kZSBpbiBAbm9kZXMyIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMxIGlmIEBub2RlczIgaXMgTlVMTCBvciBlbXB0eSBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMxIGRvZXNuJmFwb3M7dCBjb250YWluIEBub2RlczInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZXMxJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdhIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZXMyJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdhIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgbG9jYWwtbmFtZSgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBsb2NhbC1uYW1lKG5vZGUtc2V0PykgVGhlIGxvY2FsLW5hbWUgZnVuY3Rpb24gcmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBsb2NhbCBwYXJ0IG9mIHRoZSBuYW1lIG9mIHRoZSBub2RlIGluIHRoZSBhcmd1bWVudCBub2RlLXNldCB0aGF0IGlzIGZpcnN0IGluIGRvY3VtZW50IG9yZGVyLiBJZiB0aGUgbm9kZS1zZXQgaXMgZW1wdHkgb3IgdGhlIGZpcnN0IG5vZGUgaGFzIG5vIG5hbWUsIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC4gSWYgdGhlIGFyZ3VtZW50IGlzIG9taXR0ZWQgaXQgZGVmYXVsdHMgdG8gdGhlIGNvbnRleHQgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFyZ3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE1vZFZhbHVlcycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIG1vZCBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0czogQGFyZzEgLyBAYXJnMiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmIGJ5IGNhbGxpbmcgdGhlIG51bWJlciBmdW5jdGlvbi48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE11bHRWYWx1ZXMnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBtdWx0aXBseSBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0czogVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIG5hbWVzcGFjZS11cmkoKSBYUGF0aCBmdW5jdGlvbiBzdHJpbmcgbmFtZXNwYWNlLXVyaShub2RlLXNldD8pIFRoZSBuYW1lc3BhY2UtdXJpIGZ1bmN0aW9uIHJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZXNwYWNlIFVSSSBvZiB0aGUgZXhwYW5kZWQgbmFtZSBvZiB0aGUgbm9kZSBpbiB0aGUgYXJndW1lbnQgbm9kZS1zZXQgdGhhdCBpcyBmaXJzdCBpbiBkb2N1bWVudCBvcmRlci4gSWYgdGhlIG5vZGUtc2V0IGlzIGVtcHR5LCB0aGUgZmlyc3Qgbm9kZSBoYXMgbm8gbmFtZSwgb3IgdGhlIGV4cGFuZGVkIG5hbWUgaGFzIG5vIG5hbWVzcGFjZSBVUkksIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC4gSWYgdGhlIGFyZ3VtZW50IGlzIG9taXR0ZWQgaXQgZGVmYXVsdHMgdG8gdGhlIGNvbnRleHQgbm9kZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFyZ3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5ld0Jvb2xlYW4nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgYm9vbGVhbiBhbmQgb2YgdmFsdWUgQHZhbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdpbnQnIGluZm89J3RoZSBib29sZWFuIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOZXdDU3RyaW5nJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHN0cmluZyBhbmQgb2YgdmFsdWUgQHZhbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdjb25zdCBjaGFyIConIGluZm89J3RoZSBjaGFyICogdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5ld0NvbnRleHQnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbFhQYXRoQ29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgeG1sWFBhdGhDb250ZXh0IGp1c3QgYWxsb2NhdGVkLiBUaGUgY2FsbGVyIHdpbGwgbmVlZCB0byBmcmVlIGl0LicvPgorICAgICAgPGFyZyBuYW1lPSdkb2MnIHR5cGU9J3htbERvY1B0cicgaW5mbz0ndGhlIFhNTCBkb2N1bWVudCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTmV3RmxvYXQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgZG91YmxlIGFuZCBvZiB2YWx1ZSBAdmFsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2RvdWJsZScgaW5mbz0ndGhlIGRvdWJsZSB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTmV3Tm9kZVNldCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBOb2RlU2V0IGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIHNpbmdsZSBOb2RlIEB2YWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIE5vZGVQdHIgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5ld05vZGVTZXRMaXN0JyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIE5vZGVTZXQgYW5kIGluaXRpYWxpemUgaXQgd2l0aCB0aGUgTm9kZXNldCBAdmFsPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2FuIGV4aXN0aW5nIE5vZGVTZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbFhQYXRoUGFyc2VyQ29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgeG1sWFBhdGhQYXJzZXJDb250ZXh0IGp1c3QgYWxsb2NhdGVkLicvPgorICAgICAgPGFyZyBuYW1lPSdzdHInIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIFhQYXRoIGV4cHJlc3Npb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTmV3U3RyaW5nJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHN0cmluZyBhbmQgb2YgdmFsdWUgQHZhbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyICogdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5ld1ZhbHVlVHJlZScgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBWYWx1ZSBUcmVlIChYU0xUKSBhbmQgaW5pdGlhbGl6ZSBpdCB3aXRoIHRoZSB0cmVlIHJvb3QgQHZhbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgTm9kZVB0ciB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTmV4dEFuY2VzdG9yJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICZxdW90O2FuY2VzdG9yJnF1b3Q7IGRpcmVjdGlvbiB0aGUgYW5jZXN0b3IgYXhpcyBjb250YWlucyB0aGUgYW5jZXN0b3JzIG9mIHRoZSBjb250ZXh0IG5vZGU7IHRoZSBhbmNlc3RvcnMgb2YgdGhlIGNvbnRleHQgbm9kZSBjb25zaXN0IG9mIHRoZSBwYXJlbnQgb2YgY29udGV4dCBub2RlIGFuZCB0aGUgcGFyZW50JmFwb3M7cyBwYXJlbnQgYW5kIHNvIG9uOyB0aGUgbm9kZXMgYXJlIG9yZGVyZWQgaW4gcmV2ZXJzZSBkb2N1bWVudCBvcmRlcjsgdGh1cyB0aGUgcGFyZW50IGlzIHRoZSBmaXJzdCBub2RlIG9uIHRoZSBheGlzLCBhbmQgdGhlIHBhcmVudCZhcG9zO3MgcGFyZW50IGlzIHRoZSBzZWNvbmQgbm9kZSBvbiB0aGUgYXhpczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgJnF1b3Q7YW5jZXN0b3Itb3Itc2VsZiZxdW90OyBkaXJlY3Rpb24gaGUgYW5jZXN0b3Itb3Itc2VsZiBheGlzIGNvbnRhaW5zIHRoZSBjb250ZXh0IG5vZGUgYW5kIGFuY2VzdG9ycyBvZiB0aGUgY29udGV4dCBub2RlIGluIHJldmVyc2UgZG9jdW1lbnQgb3JkZXI7IHRodXMgdGhlIGNvbnRleHQgbm9kZSBpcyB0aGUgZmlyc3Qgbm9kZSBvbiB0aGUgYXhpcywgYW5kIHRoZSBjb250ZXh0IG5vZGUmYXBvcztzIHBhcmVudCB0aGUgc2Vjb25kOyBwYXJlbnQgaGVyZSBpcyBkZWZpbmVkIHRoZSBzYW1lIGFzIHdpdGggdGhlIHBhcmVudCBheGlzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOZXh0QXR0cmlidXRlJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICZxdW90O2F0dHJpYnV0ZSZxdW90OyBkaXJlY3Rpb24gVE9ETzogc3VwcG9ydCBEVEQgaW5oZXJpdGVkIGRlZmF1bHQgYXR0cmlidXRlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgYXR0cmlidXRlIGluIHRoZSB0cmF2ZXJzYWwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5leHRDaGlsZCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAmcXVvdDtjaGlsZCZxdW90OyBkaXJlY3Rpb24gVGhlIGNoaWxkIGF4aXMgY29udGFpbnMgdGhlIGNoaWxkcmVuIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5leHREZXNjZW5kYW50JyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICZxdW90O2Rlc2NlbmRhbnQmcXVvdDsgZGlyZWN0aW9uIHRoZSBkZXNjZW5kYW50IGF4aXMgY29udGFpbnMgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXI7IGEgZGVzY2VuZGFudCBpcyBhIGNoaWxkIG9yIGEgY2hpbGQgb2YgYSBjaGlsZCBhbmQgc28gb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICZxdW90O2Rlc2NlbmRhbnQtb3Itc2VsZiZxdW90OyBkaXJlY3Rpb24gdGhlIGRlc2NlbmRhbnQtb3Itc2VsZiBheGlzIGNvbnRhaW5zIHRoZSBjb250ZXh0IG5vZGUgYW5kIHRoZSBkZXNjZW5kYW50cyBvZiB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyOyB0aHVzIHRoZSBjb250ZXh0IG5vZGUgaXMgdGhlIGZpcnN0IG5vZGUgb24gdGhlIGF4aXMsIGFuZCB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlIGNvbnRleHQgbm9kZSBpcyB0aGUgc2Vjb25kIG5vZGUgb24gdGhlIGF4aXM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcycvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTmV4dEZvbGxvd2luZycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAmcXVvdDtmb2xsb3dpbmcmcXVvdDsgZGlyZWN0aW9uIFRoZSBmb2xsb3dpbmcgYXhpcyBjb250YWlucyBhbGwgbm9kZXMgaW4gdGhlIHNhbWUgZG9jdW1lbnQgYXMgdGhlIGNvbnRleHQgbm9kZSB0aGF0IGFyZSBhZnRlciB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBleGNsdWRpbmcgYW55IGRlc2NlbmRhbnRzIGFuZCBleGNsdWRpbmcgYXR0cmlidXRlIG5vZGVzIGFuZCBuYW1lc3BhY2Ugbm9kZXM7IHRoZSBub2RlcyBhcmUgb3JkZXJlZCBpbiBkb2N1bWVudCBvcmRlcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAmcXVvdDtmb2xsb3dpbmctc2libGluZyZxdW90OyBkaXJlY3Rpb24gVGhlIGZvbGxvd2luZy1zaWJsaW5nIGF4aXMgY29udGFpbnMgdGhlIGZvbGxvd2luZyBzaWJsaW5ncyBvZiB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOZXh0TmFtZXNwYWNlJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICZxdW90O25hbWVzcGFjZSZxdW90OyBkaXJlY3Rpb24gdGhlIG5hbWVzcGFjZSBheGlzIGNvbnRhaW5zIHRoZSBuYW1lc3BhY2Ugbm9kZXMgb2YgdGhlIGNvbnRleHQgbm9kZTsgdGhlIG9yZGVyIG9mIG5vZGVzIG9uIHRoaXMgYXhpcyBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkOyB0aGUgYXhpcyB3aWxsIGJlIGVtcHR5IHVubGVzcyB0aGUgY29udGV4dCBub2RlIGlzIGFuIGVsZW1lbnQgIFdlIGtlZXAgdGhlIFhNTCBuYW1lc3BhY2Ugbm9kZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgYXR0cmlidXRlIGluIHRoZSB0cmF2ZXJzYWwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5leHRQYXJlbnQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgJnF1b3Q7cGFyZW50JnF1b3Q7IGRpcmVjdGlvbiBUaGUgcGFyZW50IGF4aXMgY29udGFpbnMgdGhlIHBhcmVudCBvZiB0aGUgY29udGV4dCBub2RlLCBpZiB0aGVyZSBpcyBvbmUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5leHRQcmVjZWRpbmcnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+VHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgJnF1b3Q7cHJlY2VkaW5nJnF1b3Q7IGRpcmVjdGlvbiB0aGUgcHJlY2VkaW5nIGF4aXMgY29udGFpbnMgYWxsIG5vZGVzIGluIHRoZSBzYW1lIGRvY3VtZW50IGFzIHRoZSBjb250ZXh0IG5vZGUgdGhhdCBhcmUgYmVmb3JlIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsIGV4Y2x1ZGluZyBhbnkgYW5jZXN0b3JzIGFuZCBleGNsdWRpbmcgYXR0cmlidXRlIG5vZGVzIGFuZCBuYW1lc3BhY2Ugbm9kZXM7IHRoZSBub2RlcyBhcmUgb3JkZXJlZCBpbiByZXZlcnNlIGRvY3VtZW50IG9yZGVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICZxdW90O3ByZWNlZGluZy1zaWJsaW5nJnF1b3Q7IGRpcmVjdGlvbiBUaGUgcHJlY2VkaW5nLXNpYmxpbmcgYXhpcyBjb250YWlucyB0aGUgcHJlY2VkaW5nIHNpYmxpbmdzIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gcmV2ZXJzZSBkb2N1bWVudCBvcmRlcjsgdGhlIGZpcnN0IHByZWNlZGluZyBzaWJsaW5nIGlzIGZpcnN0IG9uIHRoZSBheGlzOyB0aGUgc2libGluZyBwcmVjZWRpbmcgdGhhdCBub2RlIGlzIHRoZSBzZWNvbmQgb24gdGhlIGF4aXMgYW5kIHNvIG9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOZXh0U2VsZicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5UcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAmcXVvdDtzZWxmJnF1b3Q7IGRpcmVjdGlvbiBUaGUgc2VsZiBheGlzIGNvbnRhaW5zIGp1c3QgdGhlIGNvbnRleHQgbm9kZSBpdHNlbGY8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcycvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTm9kZUxlYWRpbmcnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGxlYWRpbmcoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OmxlYWRpbmcgKG5vZGUtc2V0LCBub2RlLXNldCkgQG5vZGVzIGlzIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciwgdGhlbiAjZXhzbFNldHNOb2RlTGVhZGluZ1NvcnRlZCBpcyBjYWxsZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgcHJlY2VkZSBAbm9kZSBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzIGlmIEBub2RlIGlzIE5VTEwgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzIGRvZXNuJmFwb3M7dCBjb250YWluIEBub2RlJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdhIG5vZGUtc2V0Jy8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2Egbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGxlYWRpbmcoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OmxlYWRpbmcgKG5vZGUtc2V0LCBub2RlLXNldCk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J3RoZSBub2RlcyBpbiBAbm9kZXMgdGhhdCBwcmVjZWRlIEBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMgaWYgQG5vZGUgaXMgTlVMTCBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMgZG9lc24mYXBvczt0IGNvbnRhaW4gQG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZXMnIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVTZXRBZGQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+YWRkIGEgbmV3IHhtbE5vZGVQdHIgdG8gYW4gZXhpc3RpbmcgTm9kZVNldDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J3RoZSBpbml0aWFsIG5vZGUgc2V0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYSBuZXcgeG1sTm9kZVB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTm9kZVNldEFkZE5zJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmFkZCBhIG5ldyBuYW1lc3BhY2Ugbm9kZSB0byBhbiBleGlzdGluZyBOb2RlU2V0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0ndGhlIGluaXRpYWwgbm9kZSBzZXQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZScgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGhvc3Rpbmcgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSducycgdHlwZT0neG1sTnNQdHInIGluZm89J2EgdGhlIG5hbWVzcGFjZSBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmFkZCBhIG5ldyB4bWxOb2RlUHRyIHRvIGFuIGV4aXN0aW5nIE5vZGVTZXQsIG9wdGltaXplZCB2ZXJzaW9uIHdoZW4gd2UgYXJlIHN1cmUgdGhlIG5vZGUgaXMgbm90IGFscmVhZHkgaW4gdGhlIHNldC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgaW5pdGlhbCBub2RlIHNldCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J2EgbmV3IHhtbE5vZGVQdHInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVTZXRDb250YWlucycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5jaGVja3Mgd2hldGhlciBAY3VyIGNvbnRhaW5zIEB2YWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0ndHJ1ZSAoMSkgaWYgQGN1ciBjb250YWlucyBAdmFsLCBmYWxzZSAoMCkgb3RoZXJ3aXNlJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0ndGhlIG5vZGUtc2V0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVTZXRDcmVhdGUnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbE5vZGVTZXRQdHIgb2YgdHlwZSBkb3VibGUgYW5kIG9mIHZhbHVlIEB2YWw8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhbiBpbml0aWFsIHhtbE5vZGVQdHIsIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVTZXREZWwnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVtb3ZlcyBhbiB4bWxOb2RlUHRyIGZyb20gYW4gZXhpc3RpbmcgTm9kZVNldDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J3RoZSBpbml0aWFsIG5vZGUgc2V0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYW4geG1sTm9kZVB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTm9kZVNldEZyZWVOcycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5OYW1lc3BhY2Ugbm9kZXMgaW4gbGlieG1sIGRvbiZhcG9zO3QgbWF0Y2ggdGhlIFhQYXRoIHNlbWFudGljLiBJbiBhIG5vZGUgc2V0IHRoZSBuYW1lc3BhY2Ugbm9kZXMgYXJlIGR1cGxpY2F0ZWQgYW5kIHRoZSBuZXh0IHBvaW50ZXIgaXMgc2V0IHRvIHRoZSBwYXJlbnQgbm9kZSBpbiB0aGUgWFBhdGggc2VtYW50aWMuIENoZWNrIGlmIHN1Y2ggYSBub2RlIG5lZWRzIHRvIGJlIGZyZWVkPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J25zJyB0eXBlPSd4bWxOc1B0cicgaW5mbz0ndGhlIFhQYXRoIG5hbWVzcGFjZSBub2RlIGZvdW5kIGluIGEgbm9kZXNldC4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVTZXRNZXJnZScgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5NZXJnZXMgdHdvIG5vZGVzZXRzLCBhbGwgbm9kZXMgZnJvbSBAdmFsMiBhcmUgYWRkZWQgdG8gQHZhbDEgaWYgQHZhbDEgaXMgTlVMTCwgYSBuZXcgc2V0IGlzIGNyZWF0ZWQgYW5kIGNvcGllZCBmcm9tIEB2YWwyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdAdmFsMSBvbmNlIGV4dGVuZGVkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsMScgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0ndGhlIGZpcnN0IE5vZGVTZXQgb3IgTlVMTCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwyJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgc2Vjb25kIE5vZGVTZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVTZXRSZW1vdmUnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVtb3ZlcyBhbiBlbnRyeSBmcm9tIGFuIGV4aXN0aW5nIE5vZGVTZXQgbGlzdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3VyJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgaW5pdGlhbCBub2RlIHNldCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGluZGV4IHRvIHJlbW92ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTm9kZVNldFNvcnQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U29ydCB0aGUgbm9kZSBzZXQgaW4gZG9jdW1lbnQgb3JkZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nc2V0JyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgbm9kZSBzZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVUcmFpbGluZycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgdHJhaWxpbmcoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OnRyYWlsaW5nIChub2RlLXNldCwgbm9kZS1zZXQpIEBub2RlcyBpcyBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIGlzIGNhbGxlZC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J3RoZSBub2RlcyBpbiBAbm9kZXMgdGhhdCBmb2xsb3cgQG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlcyBpZiBAbm9kZSBpcyBOVUxMIG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlcyBkb2VzbiZhcG9zO3QgY29udGFpbiBAbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdub2RlcycgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCcvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgdHJhaWxpbmcoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OnRyYWlsaW5nIChub2RlLXNldCwgbm9kZS1zZXQpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgZm9sbG93IEBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMgaWYgQG5vZGUgaXMgTlVMTCBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMgZG9lc24mYXBvczt0IGNvbnRhaW4gQG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZXMnIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcicvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSdhIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgbm9ybWFsaXplLXNwYWNlKCkgWFBhdGggZnVuY3Rpb24gc3RyaW5nIG5vcm1hbGl6ZS1zcGFjZShzdHJpbmc/KSBUaGUgbm9ybWFsaXplLXNwYWNlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50IHN0cmluZyB3aXRoIHdoaXRlIHNwYWNlIG5vcm1hbGl6ZWQgYnkgc3RyaXBwaW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgYW5kIHJlcGxhY2luZyBzZXF1ZW5jZXMgb2Ygd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGJ5IGEgc2luZ2xlIHNwYWNlLiBXaGl0ZXNwYWNlIGNoYXJhY3RlcnMgYXJlIHRoZSBzYW1lIGFsbG93ZWQgYnkgdGhlIFMgcHJvZHVjdGlvbiBpbiBYTUwuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB0aGUgY29udGV4dCBub2RlIGNvbnZlcnRlZCB0byBhIHN0cmluZywgaW4gb3RoZXIgd29yZHMgdGhlIHZhbHVlIG9mIHRoZSBjb250ZXh0IG5vZGUuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOb3RFcXVhbFZhbHVlcycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIGVxdWFsIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzIGNvbnRlbnQ6IEBhcmcxID09IEBhcmcyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3QuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhOb3RGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIG5vdCgpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gbm90KGJvb2xlYW4pIFRoZSBub3QgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIGl0cyBhcmd1bWVudCBpcyBmYWxzZSwgYW5kIGZhbHNlIG90aGVyd2lzZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFyZ3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE5zTG9va3VwJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNlYXJjaCBpbiB0aGUgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGFycmF5IG9mIHRoZSBjb250ZXh0IGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlIG5hbWUgYXNzb2NpYXRlZCB0byB0aGUgZ2l2ZW4gcHJlZml4PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3ByZWZpeCcgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIHByZWZpeCB2YWx1ZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoTnVtYmVyRnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBudW1iZXIoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgbnVtYmVyKG9iamVjdD8pPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhPYmplY3RDb3B5JyBmaWxlPSd4cGF0aCcgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmFsbG9jYXRlIGEgbmV3IGNvcHkgb2YgYSBnaXZlbiBvYmplY3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBvcmlnaW5hbCBvYmplY3QnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aE9yZGVyRG9jRWxlbXMnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2FsbCB0aGlzIHJvdXRpbmUgdG8gc3BlZWQgdXAgWFBhdGggY29tcHV0YXRpb24gb24gc3RhdGljIGRvY3VtZW50cy4gVGhpcyBzdGFtcHMgYWxsIHRoZSBlbGVtZW50IG5vZGVzIHdpdGggdGhlIGRvY3VtZW50IG9yZGVyIExpa2UgZm9yIGxpbmUgaW5mb3JtYXRpb24sIHRoZSBvcmRlciBpcyBrZXB0IGluIHRoZSBlbGVtZW50LSZndDtjb250ZW50IGZpZWxkLCB0aGUgdmFsdWUgc3RvcmVkIGlzIGFjdHVhbGx5IC0gdGhlIG5vZGUgbnVtYmVyIChzdGFydGluZyBhdCAtMSkgdG8gYmUgYWJsZSB0byBkaWZmZXJlbnRpYXRlIGZyb20gbGluZSBudW1iZXJzLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nbG9uZycgaW5mbz0ndGhlIG51bWJlciBvZiBlbGVtZW50cyBmb3VuZCBpbiB0aGUgZG9jdW1lbnQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0nZG9jJyB0eXBlPSd4bWxEb2NQdHInIGluZm89J2FuIGlucHV0IGRvY3VtZW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhQYXJzZU5DTmFtZScgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgbmFtZXNwYWNlIG5vbiBxdWFsaWZpZWQgbmFtZS4gIFtOUyAzXSBOQ05hbWUgOjo9IChMZXR0ZXIgfCAmYXBvcztfJmFwb3M7KSAoTkNOYW1lQ2hhcikqICBbTlMgNF0gTkNOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAmYXBvczsuJmFwb3M7IHwgJmFwb3M7LSZhcG9zOyB8ICZhcG9zO18mYXBvczsgfCBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSBuYW1lIG9yIE5VTEwnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFBhcnNlTmFtZScgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5wYXJzZSBhbiBYTUwgbmFtZSAgWzRdIE5hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICZhcG9zOy4mYXBvczsgfCAmYXBvczstJmFwb3M7IHwgJmFwb3M7XyZhcG9zOyB8ICZhcG9zOzomYXBvczsgfCBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXIgIFs1XSBOYW1lIDo6PSAoTGV0dGVyIHwgJmFwb3M7XyZhcG9zOyB8ICZhcG9zOzomYXBvczspIChOYW1lQ2hhcikqPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgbmFtZSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhQb3BCb29sZWFuJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlBvcHMgYSBib29sZWFuIGZyb20gdGhlIHN0YWNrLCBoYW5kbGluZyBjb252ZXJzaW9uIGlmIG5lZWRlZC4gQ2hlY2sgZXJyb3Igd2l0aCAjeG1sWFBhdGhDaGVja0Vycm9yLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSd0aGUgYm9vbGVhbicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhQb3BFeHRlcm5hbCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5Qb3BzIGFuIGV4dGVybmFsIG9iamVjdCBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIG9iamVjdCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhQb3BOb2RlU2V0JyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlBvcHMgYSBub2RlLXNldCBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J3RoZSBub2RlLXNldCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhQb3BOdW1iZXInIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UG9wcyBhIG51bWJlciBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2RvdWJsZScgaW5mbz0ndGhlIG51bWJlcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhQb3BTdHJpbmcnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UG9wcyBhIHN0cmluZyBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J2FuIFhQYXRoIHBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgcG9zaXRpb24oKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgcG9zaXRpb24oKSBUaGUgcG9zaXRpb24gZnVuY3Rpb24gcmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRleHQgbm9kZSBpbiB0aGUgY29udGV4dCBub2RlIGxpc3QuIFRoZSBmaXJzdCBwb3NpdGlvbiBpcyAxLCBhbmQgc28gdGhlIGxhc3QgcG9zaXRpb24gd2lsbCBiZSBlcXVhbCB0byBsYXN0KCkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWdpc3RlcnMgYWxsIGRlZmF1bHQgWFBhdGggZnVuY3Rpb25zIGluIHRoaXMgY29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSZWdpc3RlckZ1bmMnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVnaXN0ZXIgYSBuZXcgZnVuY3Rpb24uIElmIEBmIGlzIE5VTEwgaXQgdW5yZWdpc3RlcnMgdGhlIGZ1bmN0aW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZnVuY3Rpb24gbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxYUGF0aEZ1bmN0aW9uJyBpbmZvPSd0aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlZ2lzdGVycyBhbiBleHRlcm5hbCBtZWNoYW5pc20gdG8gZG8gZnVuY3Rpb24gbG9va3VwLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMnIGluZm89J3RoZSBsb29rdXAgZnVuY3Rpb24nLz4KKyAgICAgIDxhcmcgbmFtZT0nZnVuY0N0eHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGxvb2t1cCBkYXRhJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSZWdpc3RlckZ1bmNOUycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWdpc3RlciBhIG5ldyBmdW5jdGlvbi4gSWYgQGYgaXMgTlVMTCBpdCB1bnJlZ2lzdGVycyB0aGUgZnVuY3Rpb248L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBmdW5jdGlvbiBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J25zX3VyaScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgZnVuY3Rpb24gbmFtZXNwYWNlIFVSSScvPgorICAgICAgPGFyZyBuYW1lPSdmJyB0eXBlPSd4bWxYUGF0aEZ1bmN0aW9uJyBpbmZvPSd0aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoUmVnaXN0ZXJOcycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5SZWdpc3RlciBhIG5ldyBuYW1lc3BhY2UuIElmIEBuc191cmkgaXMgTlVMTCBpdCB1bnJlZ2lzdGVycyB0aGUgbmFtZXNwYWNlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89JzAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncHJlZml4JyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBuYW1lc3BhY2UgcHJlZml4IGNhbm5vdCBiZSBOVUxMIG9yIGVtcHR5IHN0cmluZycvPgorICAgICAgPGFyZyBuYW1lPSduc191cmknIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlZ2lzdGVyIGEgbmV3IHZhcmlhYmxlIHZhbHVlLiBJZiBAdmFsdWUgaXMgTlVMTCBpdCB1bnJlZ2lzdGVycyB0aGUgdmFyaWFibGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0nMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YXJpYWJsZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIHZhcmlhYmxlIHZhbHVlIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+cmVnaXN0ZXIgYW4gZXh0ZXJuYWwgbWVjaGFuaXNtIHRvIGRvIHZhcmlhYmxlIGxvb2t1cDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3htbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jJyBpbmZvPSd0aGUgbG9va3VwIGZ1bmN0aW9uJy8+CisgICAgICA8YXJnIG5hbWU9J2RhdGEnIHR5cGU9J3ZvaWQgKicgaW5mbz0ndGhlIGxvb2t1cCBkYXRhJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UmVnaXN0ZXIgYSBuZXcgdmFyaWFibGUgdmFsdWUuIElmIEB2YWx1ZSBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzIHRoZSB2YXJpYWJsZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPScwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvcicvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhcmlhYmxlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbnNfdXJpJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YXJpYWJsZSBuYW1lc3BhY2UgVVJJJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbHVlJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIHZhcmlhYmxlIHZhbHVlIG9yIE5VTEwnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q2xlYW51cCB0aGUgWFBhdGggY29udGV4dCBkYXRhIGFzc29jaWF0ZWQgdG8gcmVnaXN0ZXJlZCBmdW5jdGlvbnM8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DbGVhbnVwIHRoZSBYUGF0aCBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byByZWdpc3RlcmVkIHZhcmlhYmxlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DbGVhbnVwIHRoZSBYUGF0aCBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byByZWdpc3RlcmVkIHZhcmlhYmxlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSb290JyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkluaXRpYWxpemUgdGhlIGNvbnRleHQgdG8gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhSb3VuZEZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgcm91bmQoKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgcm91bmQobnVtYmVyKSBUaGUgcm91bmQgZnVuY3Rpb24gcmV0dXJucyB0aGUgbnVtYmVyIHRoYXQgaXMgY2xvc2VzdCB0byB0aGUgYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci4gSWYgdGhlcmUgYXJlIHR3byBzdWNoIG51bWJlcnMsIHRoZW4gdGhlIG9uZSB0aGF0IGlzIGV2ZW4gaXMgcmV0dXJuZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBzdGFydHMtd2l0aCgpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gc3RhcnRzLXdpdGgoc3RyaW5nLCBzdHJpbmcpIFRoZSBzdGFydHMtd2l0aCBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBzdGFydHMgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZywgYW5kIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoU3RyaW5nRXZhbE51bWJlcicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5bMzBhXSAgRmxvYXQgIDo6PSBOdW1iZXIgKCZhcG9zO2UmYXBvczsgRGlnaXRzPyk/ICBbMzBdICAgTnVtYmVyIDo6PSAgIERpZ2l0cyAoJmFwb3M7LiZhcG9zOyBEaWdpdHM/KT8gfCAmYXBvczsuJmFwb3M7IERpZ2l0cyBbMzFdICAgRGlnaXRzIDo6PSAgIFswLTldKyAgQ29tcGlsZSBhIE51bWJlciBpbiB0aGUgc3RyaW5nIEluIGNvbXBsZW1lbnQgb2YgdGhlIE51bWJlciBleHByZXNzaW9uLCB0aGlzIGZ1bmN0aW9uIGFsc28gaGFuZGxlcyBuZWdhdGl2ZSB2YWx1ZXMgOiAmYXBvczstJmFwb3M7IE51bWJlci48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2RvdWJsZScgaW5mbz0ndGhlIGRvdWJsZSB2YWx1ZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J0Egc3RyaW5nIHRvIHNjYW4nLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgc3RyaW5nKCkgWFBhdGggZnVuY3Rpb24gc3RyaW5nIHN0cmluZyhvYmplY3Q/KSBUaGUgc3RyaW5nIGZ1bmN0aW9uIGNvbnZlcnRzIGFuIG9iamVjdCB0byBhIHN0cmluZyBhcyBmb2xsb3dzOiAtIEEgbm9kZS1zZXQgaXMgY29udmVydGVkIHRvIGEgc3RyaW5nIGJ5IHJldHVybmluZyB0aGUgdmFsdWUgb2YgdGhlIG5vZGUgaW4gdGhlIG5vZGUtc2V0IHRoYXQgaXMgZmlyc3QgaW4gZG9jdW1lbnQgb3JkZXIuIElmIHRoZSBub2RlLXNldCBpcyBlbXB0eSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLiAtIEEgbnVtYmVyIGlzIGNvbnZlcnRlZCB0byBhIHN0cmluZyBhcyBmb2xsb3dzICsgTmFOIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIE5hTiArIHBvc2l0aXZlIHplcm8gaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgMCArIG5lZ2F0aXZlIHplcm8gaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgMCArIHBvc2l0aXZlIGluZmluaXR5IGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIEluZmluaXR5ICsgbmVnYXRpdmUgaW5maW5pdHkgaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgLUluZmluaXR5ICsgaWYgdGhlIG51bWJlciBpcyBhbiBpbnRlZ2VyLCB0aGUgbnVtYmVyIGlzIHJlcHJlc2VudGVkIGluIGRlY2ltYWwgZm9ybSBhcyBhIE51bWJlciB3aXRoIG5vIGRlY2ltYWwgcG9pbnQgYW5kIG5vIGxlYWRpbmcgemVyb3MsIHByZWNlZGVkIGJ5IGEgbWludXMgc2lnbiAoLSkgaWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZSArIG90aGVyd2lzZSwgdGhlIG51bWJlciBpcyByZXByZXNlbnRlZCBpbiBkZWNpbWFsIGZvcm0gYXMgYSBOdW1iZXIgaW5jbHVkaW5nIGEgZGVjaW1hbCBwb2ludCB3aXRoIGF0IGxlYXN0IG9uZSBkaWdpdCBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQgYW5kIGF0IGxlYXN0IG9uZSBkaWdpdCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCwgcHJlY2VkZWQgYnkgYSBtaW51cyBzaWduICgtKSBpZiB0aGUgbnVtYmVyIGlzIG5lZ2F0aXZlOyB0aGVyZSBtdXN0IGJlIG5vIGxlYWRpbmcgemVyb3MgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGFwYXJ0IHBvc3NpYmx5IGZyb20gdGhlIG9uZSByZXF1aXJlZCBkaWdpdCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQ7IGJleW9uZCB0aGUgb25lIHJlcXVpcmVkIGRpZ2l0IGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IHRoZXJlIG11c3QgYmUgYXMgbWFueSwgYnV0IG9ubHkgYXMgbWFueSwgbW9yZSBkaWdpdHMgYXMgYXJlIG5lZWRlZCB0byB1bmlxdWVseSBkaXN0aW5ndWlzaCB0aGUgbnVtYmVyIGZyb20gYWxsIG90aGVyIElFRUUgNzU0IG51bWVyaWMgdmFsdWVzLiAtIFRoZSBib29sZWFuIGZhbHNlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIGZhbHNlLiBUaGUgYm9vbGVhbiB0cnVlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byB0aGUgc3RyaW5nIHRydWUuICBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYSBub2RlLXNldCB3aXRoIHRoZSBjb250ZXh0IG5vZGUgYXMgaXRzIG9ubHkgbWVtYmVyLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBzdHJpbmctbGVuZ3RoKCkgWFBhdGggZnVuY3Rpb24gbnVtYmVyIHN0cmluZy1sZW5ndGgoc3RyaW5nPykgVGhlIHN0cmluZy1sZW5ndGggcmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyAoc2VlIFszLjYgU3RyaW5nc10pLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gdGhlIGNvbnRleHQgbm9kZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcsIGluIG90aGVyIHdvcmRzIHRoZSB2YWx1ZSBvZiB0aGUgY29udGV4dCBub2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoU3ViVmFsdWVzJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgc3VidHJhY3Rpb24gb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHM6IFRoZSBudW1lcmljIG9wZXJhdG9ycyBjb252ZXJ0IHRoZWlyIG9wZXJhbmRzIHRvIG51bWJlcnMgYXMgaWYgYnkgY2FsbGluZyB0aGUgbnVtYmVyIGZ1bmN0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIHN1YnN0cmluZy1hZnRlcigpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBzdWJzdHJpbmctYWZ0ZXIoc3RyaW5nLCBzdHJpbmcpIFRoZSBzdWJzdHJpbmctYWZ0ZXIgZnVuY3Rpb24gcmV0dXJucyB0aGUgc3Vic3RyaW5nIG9mIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgdGhhdCBmb2xsb3dzIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nIGluIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcsIG9yIHRoZSBlbXB0eSBzdHJpbmdpIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgZG9lcyBub3QgY29udGFpbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZy4gRm9yIGV4YW1wbGUsIHN1YnN0cmluZy1hZnRlcigmcXVvdDsxOTk5LzA0LzAxJnF1b3Q7LCZxdW90Oy8mcXVvdDspIHJldHVybnMgMDQvMDEsIGFuZCBzdWJzdHJpbmctYWZ0ZXIoJnF1b3Q7MTk5OS8wNC8wMSZxdW90OywmcXVvdDsxOSZxdW90OykgcmV0dXJucyA5OS8wNC8wMS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFyZ3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgc3Vic3RyaW5nLWJlZm9yZSgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyBzdWJzdHJpbmctYmVmb3JlKHN0cmluZywgc3RyaW5nKSBUaGUgc3Vic3RyaW5nLWJlZm9yZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdWJzdHJpbmcgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyB0aGF0IHByZWNlZGVzIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nIGluIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcsIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBkb2VzIG5vdCBjb250YWluIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3Vic3RyaW5nLWJlZm9yZSgmcXVvdDsxOTk5LzA0LzAxJnF1b3Q7LCZxdW90Oy8mcXVvdDspIHJldHVybnMgMTk5OS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFyZ3MnIHR5cGU9J2ludCcgaW5mbz0ndGhlIG51bWJlciBvZiBhcmd1bWVudHMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgc3Vic3RyaW5nKCkgWFBhdGggZnVuY3Rpb24gc3RyaW5nIHN1YnN0cmluZyhzdHJpbmcsIG51bWJlciwgbnVtYmVyPykgVGhlIHN1YnN0cmluZyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdWJzdHJpbmcgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IHN0YXJ0aW5nIGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgaW4gdGhlIHNlY29uZCBhcmd1bWVudCB3aXRoIGxlbmd0aCBzcGVjaWZpZWQgaW4gdGhlIHRoaXJkIGFyZ3VtZW50LiBGb3IgZXhhbXBsZSwgc3Vic3RyaW5nKCZxdW90OzEyMzQ1JnF1b3Q7LDIsMykgcmV0dXJucyAmcXVvdDsyMzQmcXVvdDsuIElmIHRoZSB0aGlyZCBhcmd1bWVudCBpcyBub3Qgc3BlY2lmaWVkLCBpdCByZXR1cm5zIHRoZSBzdWJzdHJpbmcgc3RhcnRpbmcgYXQgdGhlIHBvc2l0aW9uIHNwZWNpZmllZCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50IGFuZCBjb250aW51aW5nIHRvIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4gRm9yIGV4YW1wbGUsIHN1YnN0cmluZygmcXVvdDsxMjM0NSZxdW90OywyKSByZXR1cm5zICZxdW90OzIzNDUmcXVvdDsuICBNb3JlIHByZWNpc2VseSwgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZyAoc2VlIFszLjYgU3RyaW5nc10pIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBhIG51bWVyaWMgcG9zaXRpb246IHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIDEsIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vjb25kIGNoYXJhY3RlciBpcyAyIGFuZCBzbyBvbi4gVGhlIHJldHVybmVkIHN1YnN0cmluZyBjb250YWlucyB0aG9zZSBjaGFyYWN0ZXJzIGZvciB3aGljaCB0aGUgcG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNlY29uZCBhcmd1bWVudCBhbmQsIGlmIHRoZSB0aGlyZCBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIGxlc3MgdGhhbiB0aGUgc3VtIG9mIHRoZSBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50czsgdGhlIGNvbXBhcmlzb25zIGFuZCBhZGRpdGlvbiB1c2VkIGZvciB0aGUgYWJvdmUgZm9sbG93IHRoZSBzdGFuZGFyZCBJRUVFIDc1NCBydWxlcy4gVGh1czogLSBzdWJzdHJpbmcoJnF1b3Q7MTIzNDUmcXVvdDssIDEuNSwgMi42KSByZXR1cm5zICZxdW90OzIzNCZxdW90OyAtIHN1YnN0cmluZygmcXVvdDsxMjM0NSZxdW90OywgMCwgMykgcmV0dXJucyAmcXVvdDsxMiZxdW90OyAtIHN1YnN0cmluZygmcXVvdDsxMjM0NSZxdW90OywgMCBkaXYgMCwgMykgcmV0dXJucyAmcXVvdDsmcXVvdDsgLSBzdWJzdHJpbmcoJnF1b3Q7MTIzNDUmcXVvdDssIDEsIDAgZGl2IDApIHJldHVybnMgJnF1b3Q7JnF1b3Q7IC0gc3Vic3RyaW5nKCZxdW90OzEyMzQ1JnF1b3Q7LCAtNDIsIDEgZGl2IDApIHJldHVybnMgJnF1b3Q7MTIzNDUmcXVvdDsgLSBzdWJzdHJpbmcoJnF1b3Q7MTIzNDUmcXVvdDssIC0xIGRpdiAwLCAxIGRpdiAwKSByZXR1cm5zICZxdW90OyZxdW90OzwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoU3VtRnVuY3Rpb24nIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50IHRoZSBzdW0oKSBYUGF0aCBmdW5jdGlvbiBudW1iZXIgc3VtKG5vZGUtc2V0KSBUaGUgc3VtIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1bSBvZiB0aGUgdmFsdWVzIG9mIHRoZSBub2RlcyBpbiB0aGUgYXJndW1lbnQgbm9kZS1zZXQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhUcmFpbGluZycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgdHJhaWxpbmcoKSBmdW5jdGlvbjogbm9kZS1zZXQgc2V0OnRyYWlsaW5nIChub2RlLXNldCwgbm9kZS1zZXQpIEBub2RlczEgYW5kIEBub2RlczIgYXJlIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciwgdGhlbiAjeG1sWFBhdGhUcmFpbGluZ1NvcnRlZCBpcyBjYWxsZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSd0aGUgbm9kZXMgaW4gQG5vZGVzMSB0aGF0IGZvbGxvdyB0aGUgZmlyc3Qgbm9kZSBpbiBAbm9kZXMyIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMxIGlmIEBub2RlczIgaXMgTlVMTCBvciBlbXB0eSBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMxIGRvZXNuJmFwb3M7dCBjb250YWluIEBub2RlczInLz4KKyAgICAgIDxhcmcgbmFtZT0nbm9kZXMxJyB0eXBlPSd4bWxOb2RlU2V0UHRyJyBpbmZvPSdhIG5vZGUtc2V0Jy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzMicgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+SW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIHRyYWlsaW5nKCkgZnVuY3Rpb246IG5vZGUtc2V0IHNldDp0cmFpbGluZyAobm9kZS1zZXQsIG5vZGUtc2V0KTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0ndGhlIG5vZGVzIGluIEBub2RlczEgdGhhdCBmb2xsb3cgdGhlIGZpcnN0IG5vZGUgaW4gQG5vZGVzMiBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzMSBpZiBAbm9kZXMyIGlzIE5VTEwgb3IgZW1wdHkgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzMSBkb2VzbiZhcG9zO3QgY29udGFpbiBAbm9kZXMyJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzMScgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyJy8+CisgICAgICA8YXJnIG5hbWU9J25vZGVzMicgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0nYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbicgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5JbXBsZW1lbnQgdGhlIHRyYW5zbGF0ZSgpIFhQYXRoIGZ1bmN0aW9uIHN0cmluZyB0cmFuc2xhdGUoc3RyaW5nLCBzdHJpbmcsIHN0cmluZykgVGhlIHRyYW5zbGF0ZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcgd2l0aCBvY2N1cnJlbmNlcyBvZiBjaGFyYWN0ZXJzIGluIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nIHJlcGxhY2VkIGJ5IHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gdGhlIHRoaXJkIGFyZ3VtZW50IHN0cmluZy4gRm9yIGV4YW1wbGUsIHRyYW5zbGF0ZSgmcXVvdDtiYXImcXVvdDssJnF1b3Q7YWJjJnF1b3Q7LCZxdW90O0FCQyZxdW90OykgcmV0dXJucyB0aGUgc3RyaW5nIEJBci4gSWYgdGhlcmUgaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcgd2l0aCBubyBjaGFyYWN0ZXIgYXQgYSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZSB0aGlyZCBhcmd1bWVudCBzdHJpbmcgKGJlY2F1c2UgdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcgaXMgbG9uZ2VyIHRoYW4gdGhlIHRoaXJkIGFyZ3VtZW50IHN0cmluZyksIHRoZW4gb2NjdXJyZW5jZXMgb2YgdGhhdCBjaGFyYWN0ZXIgaW4gdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBhcmUgcmVtb3ZlZC4gRm9yIGV4YW1wbGUsIHRyYW5zbGF0ZSgmcXVvdDstLWFhYS0tJnF1b3Q7LCZxdW90O2FiYy0mcXVvdDssJnF1b3Q7QUJDJnF1b3Q7KTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoVHJ1ZUZ1bmN0aW9uJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgdHJ1ZSgpIFhQYXRoIGZ1bmN0aW9uIGJvb2xlYW4gdHJ1ZSgpPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIFBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hcmdzJyB0eXBlPSdpbnQnIGluZm89J3RoZSBudW1iZXIgb2YgYXJndW1lbnRzJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhWYWx1ZUZsaXBTaWduJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgdW5hcnkgLSBvcGVyYXRpb24gb24gYW4gWFBhdGggb2JqZWN0IFRoZSBudW1lcmljIG9wZXJhdG9ycyBjb252ZXJ0IHRoZWlyIG9wZXJhbmRzIHRvIG51bWJlcnMgYXMgaWYgYnkgY2FsbGluZyB0aGUgbnVtYmVyIGZ1bmN0aW9uLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBQYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoVmFyaWFibGVMb29rdXAnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2VhcmNoIGluIHRoZSBWYXJpYWJsZSBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIHZhcmlhYmxlIHZhbHVlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J2EgY29weSBvZiB0aGUgdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YXJpYWJsZSBuYW1lJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3R5cGUgbmFtZT0neG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMnIGZpbGU9J3hwYXRoJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+UHJvdG90eXBlIGZvciBjYWxsYmFja3MgdXNlZCB0byBwbHVnIHZhcmlhYmxlIGxvb2t1cCBpbiB0aGUgWFBhdGggZW5naW5lLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBYUGF0aCBvYmplY3QgdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQuJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3ZvaWQgKicgaW5mbz0nYW4gWFBhdGggY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYW1lJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J25hbWUgb2YgdGhlIHZhcmlhYmxlJy8+CisgICAgICA8YXJnIG5hbWU9J25zX3VyaScgdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSd0aGUgbmFtZXNwYWNlIG5hbWUgaG9zdGluZyB0aGlzIHZhcmlhYmxlJy8+CisgICAgPC9mdW5jdHlwZT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNlYXJjaCBpbiB0aGUgVmFyaWFibGUgYXJyYXkgb2YgdGhlIGNvbnRleHQgZm9yIHRoZSBnaXZlbiB2YXJpYWJsZSB2YWx1ZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J2NvbnN0IHhtbENoYXIgKicgaW5mbz0ndGhlIHZhcmlhYmxlIG5hbWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nbnNfdXJpJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSB2YXJpYWJsZSBuYW1lc3BhY2UgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhXcmFwQ1N0cmluZycgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5XcmFwcyBhIHN0cmluZyBpbnRvIGFuIFhQYXRoIG9iamVjdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0nY2hhciAqJyBpbmZvPSd0aGUgY2hhciAqIHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhXcmFwRXh0ZXJuYWwnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JhcHMgdGhlIEB2YWwgZGF0YSBpbnRvIGFuIFhQYXRoIG9iamVjdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0ndm9pZCAqJyBpbmZvPSd0aGUgdXNlciBkYXRhJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFBhdGhXcmFwTm9kZVNldCcgZmlsZT0neHBhdGhJbnRlcm5hbHMnIG1vZHVsZT0neHBhdGgnPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5XcmFwIHRoZSBOb2Rlc2V0IEB2YWwgaW4gYSBuZXcgeG1sWFBhdGhPYmplY3RQdHI8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3ZhbCcgdHlwZT0neG1sTm9kZVNldFB0cicgaW5mbz0ndGhlIE5vZGVQdHIgdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFdyYXBTdHJpbmcnIGZpbGU9J3hwYXRoSW50ZXJuYWxzJyBtb2R1bGU9J3hwYXRoJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JhcHMgdGhlIEB2YWwgc3RyaW5nIGludG8gYW4gWFBhdGggb2JqZWN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxDaGFyIConIGluZm89J3RoZSB4bWxDaGFyICogdmFsdWUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aGVycm9yJyBmaWxlPSd4cGF0aEludGVybmFscycgbW9kdWxlPSd4cGF0aCc+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkZvcm1hdHMgYW4gZXJyb3IgbWVzc2FnZS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZScgdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSd0aGUgZmlsZSBuYW1lJy8+CisgICAgICA8YXJnIG5hbWU9J2xpbmUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIGxpbmUgbnVtYmVyJy8+CisgICAgICA8YXJnIG5hbWU9J25vJyB0eXBlPSdpbnQnIGluZm89J3RoZSBlcnJvciBudW1iZXInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyQnVpbGROb2RlTGlzdCcgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkJ1aWxkIGEgbm9kZSBsaXN0IHRyZWUgY29weSBvZiB0aGUgWFBvaW50ZXIgcmVzdWx0LiBUaGlzIHdpbGwgZHJvcCBBdHRyaWJ1dGVzIGFuZCBOYW1lc3BhY2UgZGVjbGFyYXRpb25zLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0nYW4geG1sTm9kZVB0ciBsaXN0IG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG5vZGUgdHJlZS4nLz4KKyAgICAgIDxhcmcgbmFtZT0nb2JqJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIFhQb2ludGVyIHJlc3VsdCBmcm9tIHRoZSBldmFsdWF0aW9uLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJFdmFsJyBmaWxlPSd4cG9pbnRlcicgbW9kdWxlPSd4cG9pbnRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+RXZhbHVhdGUgdGhlIFhQYXRoIExvY2F0aW9uIFBhdGggaW4gdGhlIGdpdmVuIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIHhtbFhQYXRoT2JqZWN0UHRyIHJlc3VsdGluZyBmcm9tIHRoZSBldmFsdWF0aW9uIG9yIE5VTEwuIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RyJyB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89J3RoZSBYUG9pbnRlciBleHByZXNzaW9uJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBvaW50ZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUnIGZpbGU9J3hwb2ludGVyJyBtb2R1bGU9J3hwb2ludGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5bOF0gICBQcmVkaWNhdGUgOjo9ICAgJmFwb3M7WyZhcG9zOyBQcmVkaWNhdGVFeHByICZhcG9zO10mYXBvczsgWzldICAgUHJlZGljYXRlRXhwciA6Oj0gICBFeHByICBFdmFsdWF0ZSBhIHByZWRpY2F0ZSBhcyBpbiB4bWxYUGF0aEV2YWxQcmVkaWNhdGUoKSBidXQgZm9yIGEgTG9jYXRpb24gU2V0IGluc3RlYWQgb2YgYSBub2RlIHNldDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUG9pbnRlciBQYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJGcmVlTG9jYXRpb25TZXQnIGZpbGU9J3hwb2ludGVyJyBtb2R1bGU9J3hwb2ludGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5GcmVlIHRoZSBMb2NhdGlvblNldCBjb21wb3VuZCAobm90IHRoZSBhY3R1YWwgcmFuZ2VzICEpLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdvYmonIHR5cGU9J3htbExvY2F0aW9uU2V0UHRyJyBpbmZvPSd0aGUgeG1sTG9jYXRpb25TZXRQdHIgdG8gZnJlZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJMb2NhdGlvblNldEFkZCcgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPmFkZCBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciB0byBhbiBleGlzdGluZyBMb2NhdGlvblNldCBJZiB0aGUgbG9jYXRpb24gYWxyZWFkeSBleGlzdCBpbiB0aGUgc2V0IEB2YWwgaXMgZnJlZWQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N1cicgdHlwZT0neG1sTG9jYXRpb25TZXRQdHInIGluZm89J3RoZSBpbml0aWFsIHJhbmdlIHNldCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSdhIG5ldyB4bWxYUGF0aE9iamVjdFB0cicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJMb2NhdGlvblNldENyZWF0ZScgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxMb2NhdGlvblNldFB0ciBvZiB0eXBlIGRvdWJsZSBhbmQgb2YgdmFsdWUgQHZhbDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTG9jYXRpb25TZXRQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nYW4gaW5pdGlhbCB4bWxYUGF0aE9iamVjdFB0ciwgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJMb2NhdGlvblNldERlbCcgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlbW92ZXMgYW4geG1sWFBhdGhPYmplY3RQdHIgZnJvbSBhbiBleGlzdGluZyBMb2NhdGlvblNldDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbExvY2F0aW9uU2V0UHRyJyBpbmZvPSd0aGUgaW5pdGlhbCByYW5nZSBzZXQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0nYW4geG1sWFBhdGhPYmplY3RQdHInLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyTG9jYXRpb25TZXRNZXJnZScgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPk1lcmdlcyB0d28gcmFuZ2VzZXRzLCBhbGwgcmFuZ2VzIGZyb20gQHZhbDIgYXJlIGFkZGVkIHRvIEB2YWwxPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxMb2NhdGlvblNldFB0cicgaW5mbz0ndmFsMSBvbmNlIGV4dGVuZGVkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsMScgdHlwZT0neG1sTG9jYXRpb25TZXRQdHInIGluZm89J3RoZSBmaXJzdCBMb2NhdGlvblNldCcvPgorICAgICAgPGFyZyBuYW1lPSd2YWwyJyB0eXBlPSd4bWxMb2NhdGlvblNldFB0cicgaW5mbz0ndGhlIHNlY29uZCBMb2NhdGlvblNldCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJMb2NhdGlvblNldFJlbW92ZScgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlbW92ZXMgYW4gZW50cnkgZnJvbSBhbiBleGlzdGluZyBMb2NhdGlvblNldCBsaXN0LjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdXInIHR5cGU9J3htbExvY2F0aW9uU2V0UHRyJyBpbmZvPSd0aGUgaW5pdGlhbCByYW5nZSBzZXQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSdpbnQnIGluZm89J3RoZSBpbmRleCB0byByZW1vdmUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UnIGZpbGU9J3hwb2ludGVyJyBtb2R1bGU9J3hwb2ludGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSByYW5nZSB1c2luZyBhIHNpbmdsZSBub2RlczwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RhcnQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBzdGFydGluZyBhbmQgZW5kaW5nIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyTmV3Q29udGV4dCcgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyBYUG9pbnRlciBjb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSB4bWxYUGF0aENvbnRleHQganVzdCBhbGxvY2F0ZWQuJy8+CisgICAgICA8YXJnIG5hbWU9J2RvYycgdHlwZT0neG1sRG9jUHRyJyBpbmZvPSd0aGUgWE1MIGRvY3VtZW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2hlcmUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlIHRoYXQgZGlyZWN0bHkgY29udGFpbnMgdGhlIFhQb2ludGVyIGJlaW5nIGV2YWx1YXRlZCBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J29yaWdpbicgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIGVsZW1lbnQgZnJvbSB3aGljaCBhIHVzZXIgb3IgcHJvZ3JhbSBpbml0aWF0ZWQgdHJhdmVyc2FsIG9mIHRoZSBsaW5rLCBvciBOVUxMLicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQnIGZpbGU9J3hwb2ludGVyJyBtb2R1bGU9J3hwb2ludGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBMb2NhdGlvblNldCBhbmQgaW5pdGlhbGl6ZSBpdCB3aXRoIGFsbCB0aGUgbm9kZXMgZnJvbSBAc2V0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdzZXQnIHR5cGU9J3htbE5vZGVTZXRQdHInIGluZm89J2Egbm9kZSBzZXQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcycgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIExvY2F0aW9uU2V0IGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIHNpbmdsZSByYW5nZSBtYWRlIG9mIHRoZSB0d28gbm9kZXMgQHN0YXJ0IGFuZCBAZW5kPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHN0YXJ0IE5vZGVQdHIgdmFsdWUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5kJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZW5kIE5vZGVQdHIgdmFsdWUgb3IgTlVMTCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJOZXdSYW5nZScgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHJhbmdlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHN0YXJ0aW5nIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nc3RhcnRpbmRleCcgdHlwZT0naW50JyBpbmZvPSd0aGUgc3RhcnQgaW5kZXgnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5kJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZW5kaW5nIHBvaW50Jy8+CisgICAgICA8YXJnIG5hbWU9J2VuZGluZGV4JyB0eXBlPSdpbnQnIGluZm89J3RoZSBlbmRpbmcgaW5kZXgnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0JyBmaWxlPSd4cG9pbnRlcicgbW9kdWxlPSd4cG9pbnRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+Q3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgcmFuZ2UgZnJvbSBhIG5vdCB0byBhbiBvYmplY3Q8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3N0YXJ0JyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgc3RhcnRpbmcgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmQnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgZW5kaW5nIG9iamVjdCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJOZXdSYW5nZU5vZGVQb2ludCcgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHJhbmdlIGZyb20gYSBub2RlIHRvIGEgcG9pbnQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuJy8+CisgICAgICA8YXJnIG5hbWU9J3N0YXJ0JyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgc3RhcnRpbmcgbm9kZScvPgorICAgICAgPGFyZyBuYW1lPSdlbmQnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgZW5kaW5nIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFB0ck5ld1JhbmdlTm9kZXMnIGZpbGU9J3hwb2ludGVyJyBtb2R1bGU9J3hwb2ludGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSByYW5nZSB1c2luZyAyIG5vZGVzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0neG1sTm9kZVB0cicgaW5mbz0ndGhlIHN0YXJ0aW5nIG5vZGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5kJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgZW5kaW5nIG5vZGUnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUnIGZpbGU9J3hwb2ludGVyJyBtb2R1bGU9J3hwb2ludGVyJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSByYW5nZSBmcm9tIGEgcG9pbnQgdG8gYSBub2RlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBzdGFydGluZyBwb2ludCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmQnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBlbmRpbmcgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQdHJOZXdSYW5nZVBvaW50cycgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHJhbmdlIHVzaW5nIDIgUG9pbnRzPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aE9iamVjdFB0cicgaW5mbz0ndGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LicvPgorICAgICAgPGFyZyBuYW1lPSdzdGFydCcgdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBzdGFydGluZyBwb2ludCcvPgorICAgICAgPGFyZyBuYW1lPSdlbmQnIHR5cGU9J3htbFhQYXRoT2JqZWN0UHRyJyBpbmZvPSd0aGUgZW5kaW5nIHBvaW50Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sWFB0clJhbmdlVG9GdW5jdGlvbicgZmlsZT0neHBvaW50ZXInIG1vZHVsZT0neHBvaW50ZXInPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkltcGxlbWVudCB0aGUgcmFuZ2UtdG8oKSBYUG9pbnRlciBmdW5jdGlvbjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUG9pbnRlciBQYXJzZXIgY29udGV4dCcvPgorICAgICAgPGFyZyBuYW1lPSduYXJncycgdHlwZT0naW50JyBpbmZvPSd0aGUgbnVtYmVyIG9mIGFyZ3MnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUHRyV3JhcExvY2F0aW9uU2V0JyBmaWxlPSd4cG9pbnRlcicgbW9kdWxlPSd4cG9pbnRlcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+V3JhcCB0aGUgTG9jYXRpb25TZXQgQHZhbCBpbiBhIG5ldyB4bWxYUGF0aE9iamVjdFB0cjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sWFBhdGhPYmplY3RQdHInIGluZm89J3RoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4nLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsJyB0eXBlPSd4bWxMb2NhdGlvblNldFB0cicgaW5mbz0ndGhlIExvY2F0aW9uU2V0IHZhbHVlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgPC9zeW1ib2xzPgorPC9hcGk+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9saWJ4bWwyLnhzYSBiL2xpYnhtbDItMi43LjcvZG9jL2xpYnhtbDIueHNhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhM2U4YjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9saWJ4bWwyLnhzYQpAQCAtMCwwICsxLDI5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB4c2EgUFVCTElDICItLy9MTSBHYXJzaG9sLy9EVEQgWE1MIFNvZnR3YXJlIEF1dG91cGRhdGUgMS4wLy9FTi8vWE1MIiAiaHR0cDovL3d3dy5nYXJzaG9sLnByaXYubm8vZG93bmxvYWQveHNhL3hzYS5kdGQiPgorPHhzYT4KKyAgPHZlbmRvcj4KKyAgICA8bmFtZT5EYW5pZWwgVmVpbGxhcmQ8L25hbWU+CisgICAgPGVtYWlsPmRhbmllbEB2ZWlsbGFyZC5jb208L2VtYWlsPgorICAgIDx1cmw+aHR0cDovL3ZlaWxsYXJkLmNvbS88L3VybD4KKyAgPC92ZW5kb3I+CisgIDxwcm9kdWN0IGlkPSJsaWJ4bWwyIj4KKyAgICA8bmFtZT5saWJ4bWwyPC9uYW1lPgorICAgIDx2ZXJzaW9uPjIuNy41PC92ZXJzaW9uPgorICAgIDxsYXN0LXJlbGVhc2U+IFNlcCAyNCAyMDA5PC9sYXN0LXJlbGVhc2U+CisgICAgPGluZm8tdXJsPmh0dHA6Ly94bWxzb2Z0Lm9yZy88L2luZm8tdXJsPgorICAgIDxjaGFuZ2VzPiAgIC0gIEJ1ZyBGaXhlczoKKyAgICBSZXN0b3JlIGJlaGF2aW9yIG9mIC0td2l0aC10aHJlYWRzIHdpdGhvdXQgYXJndW1lbnQgKEFuZHJldyBXLiBOb3NlbmtvKSwKKyAgICBGaXggbWVtb3J5IGxlYWsgd2hlbiBkb2MgaXMgTlVMTCAoUm9iIFJpY2hhcmRzKSwKKyAgICA1OTU3OTIgZml4aW5nIGEgUmVsYXhORyBidWcgaW50cm9kdWNlZCBpbiAyLjcuNCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggYSBSZWxheG5nIGJ1ZyByYWlzZWQgYnkgbGlidmlydCB0ZXN0IHN1aXRlIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBhIHBhcnNpbmcgcHJvYmxlbSB3aXRoIGxpdHRsZSBkYXRhIGF0IHN0YXJ0dXAgKERhbmllbCBWZWlsbGFyZCksCisgICAgbGluayBweXRob24gbW9kdWxlIHdpdGggcHl0aG9uIGxpYnJhcnkgKEZyZWRlcmljIENyb3phdCksCisgICAgNTk0ODc0IEZvcmdvdCBhbiBmY2xvc2UgaW4geG1sbGludCAoRGFuaWVsIFZlaWxsYXJkKQorICAKKyAgIC0gIENsZWFudXA6CisgICAgQWRkaW5nIHN5bWJvbHMueG1sIHRvIEVYVFJBX0RJU1QgKERhbmllbCBWZWlsbGFyZCkKKyAgCisKKzwvY2hhbmdlcz4KKyAgPC9wcm9kdWN0PgorPC94c2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9uYW1lc3BhY2VzLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9uYW1lc3BhY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ4YmQ1YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL25hbWVzcGFjZXMuaHRtbApAQCAtMCwwICsxLDUwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPk5hbWVzcGFjZXM8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPk5hbWVzcGFjZXM8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludHJvLmh0bWwiPkludHJvZHVjdGlvbjwvYT48L2xpPjxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvY3MuaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkRldmVsb3BlciBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPjxsaT48YSBocmVmPSJoZWxwLmh0bWwiPkhvdyB0byBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRvd25sb2Fkcy5odG1sIj5Eb3dubG9hZHM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5SZWxlYXNlczwvYT48L2xpPjxsaT48YSBocmVmPSJYTUxpbmZvLmh0bWwiPlhNTDwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sZHRkLmh0bWwiPlZhbGlkYXRpb24gJmFtcDsgRFREczwvYT48L2xpPjxsaT48YSBocmVmPSJlbmNvZGluZy5odG1sIj5FbmNvZGluZ3Mgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJjYXRhbG9nLmh0bWwiPkNhdGFsb2cgc3VwcG9ydDwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iY29udHJpYnMuaHRtbCI+Q29udHJpYnV0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5BUEkgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5SZWNlbnQgQ2hhbmdlczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPlRoZSBsaWJ4bWwyIGxpYnJhcnkgaW1wbGVtZW50cyA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLW5hbWVzLyI+WE1MIG5hbWVzcGFjZXM8L2E+IHN1cHBvcnQgYnkKK3JlY29nbml6aW5nIG5hbWVzcGFjZSBjb25zdHJ1Y3RzIGluIHRoZSBpbnB1dCwgYW5kIGRvZXMgbmFtZXNwYWNlIGxvb2t1cAorYXV0b21hdGljYWxseSB3aGVuIGJ1aWxkaW5nIHRoZSBET00gdHJlZS4gQSBuYW1lc3BhY2UgZGVjbGFyYXRpb24gaXMKK2Fzc29jaWF0ZWQgd2l0aCBhbiBpbi1tZW1vcnkgc3RydWN0dXJlIGFuZCBhbGwgZWxlbWVudHMgb3IgYXR0cmlidXRlcyB3aXRoaW4KK3RoYXQgbmFtZXNwYWNlIHBvaW50IHRvIGl0LiBIZW5jZSB0ZXN0aW5nIHRoZSBuYW1lc3BhY2UgaXMgYSBzaW1wbGUgYW5kIGZhc3QKK2VxdWFsaXR5IG9wZXJhdGlvbiBhdCB0aGUgdXNlciBsZXZlbC48L3A+PHA+SSBzdWdnZXN0IHRoYXQgcGVvcGxlIHVzaW5nIGxpYnhtbDIgdXNlIGEgbmFtZXNwYWNlLCBhbmQgZGVjbGFyZSBpdCBpbiB0aGUKK3Jvb3QgZWxlbWVudCBvZiB0aGVpciBkb2N1bWVudCBhcyB0aGUgZGVmYXVsdCBuYW1lc3BhY2UuIFRoZW4gdGhleSBkb24ndCBuZWVkCit0byB1c2UgdGhlIHByZWZpeCBpbiB0aGUgY29udGVudCBidXQgd2Ugd2lsbCBoYXZlIGEgYmFzaXMgZm9yIGZ1dHVyZSBzZW1hbnRpYworcmVmaW5lbWVudCBhbmQgIG1lcmdpbmcgb2YgZGF0YSBmcm9tIGRpZmZlcmVudCBzb3VyY2VzLiBUaGlzIGRvZXNuJ3QgaW5jcmVhc2UKK3RoZSBzaXplIG9mIHRoZSBYTUwgb3V0cHV0IHNpZ25pZmljYW50bHksIGJ1dCBzaWduaWZpY2FudGx5IGluY3JlYXNlcyBpdHMKK3ZhbHVlIGluIHRoZSBsb25nLXRlcm0uIEV4YW1wbGU6PC9wPjxwcmU+Jmx0O215ZG9jIHhtbG5zPSJodHRwOi8vbXlkb2MuZXhhbXBsZS5vcmcvc2NoZW1hcy8iJmd0OworICAgJmx0O2VsZW0xJmd0Oy4uLiZsdDsvZWxlbTEmZ3Q7CisgICAmbHQ7ZWxlbTImZ3Q7Li4uJmx0Oy9lbGVtMiZndDsKKyZsdDsvbXlkb2MmZ3Q7PC9wcmU+PHA+VGhlIG5hbWVzcGFjZSB2YWx1ZSBoYXMgdG8gYmUgYW4gYWJzb2x1dGUgVVJMLCBidXQgdGhlIFVSTCBkb2Vzbid0IGhhdmUgdG8KK3BvaW50IHRvIGFueSBleGlzdGluZyByZXNvdXJjZSBvbiB0aGUgV2ViLiBJdCB3aWxsIGJpbmQgYWxsIHRoZSBlbGVtZW50IGFuZAorYXR0cmlidXRlcyB3aXRoIHRoYXQgVVJMLiBJIHN1Z2dlc3QgdG8gdXNlIGFuIFVSTCB3aXRoaW4gYSBkb21haW4geW91Citjb250cm9sLCBhbmQgdGhhdCB0aGUgVVJMIHNob3VsZCBjb250YWluIHNvbWUga2luZCBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uIGlmCitwb3NzaWJsZS4gRm9yIGV4YW1wbGUsIDxjb2RlPiJodHRwOi8vd3d3Lmdub21lLm9yZy9nbnVtZXJpYy8xLjAvIjwvY29kZT4gaXMgYQorZ29vZCBuYW1lc3BhY2Ugc2NoZW1lLjwvcD48cD5UaGVuIHdoZW4geW91IGxvYWQgYSBmaWxlLCBtYWtlIHN1cmUgdGhhdCBhIG5hbWVzcGFjZSBjYXJyeWluZyB0aGUKK3ZlcnNpb24taW5kZXBlbmRlbnQgcHJlZml4IGlzIGluc3RhbGxlZCBvbiB0aGUgcm9vdCBlbGVtZW50IG9mIHlvdXIgZG9jdW1lbnQsCithbmQgaWYgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gZG9uJ3QgbWF0Y2ggc29tZXRoaW5nIHlvdSBrbm93LCB3YXJuIHRoZSB1c2VyCithbmQgYmUgbGliZXJhbCBpbiB3aGF0IHlvdSBhY2NlcHQgYXMgdGhlIGlucHV0LiBBbHNvIGRvICpub3QqIHRyeSB0byBiYXNlCituYW1lc3BhY2UgY2hlY2tpbmcgb24gdGhlIHByZWZpeCB2YWx1ZS4gJmx0O2Zvbzp0ZXh0Jmd0OyBtYXkgYmUgZXhhY3RseSB0aGUKK3NhbWUgYXMgJmx0O2Jhcjp0ZXh0Jmd0OyBpbiBhbm90aGVyIGRvY3VtZW50LiBXaGF0IHJlYWxseSBtYXR0ZXJzIGlzIHRoZSBVUkkKK2Fzc29jaWF0ZWQgd2l0aCB0aGUgZWxlbWVudCBvciB0aGUgYXR0cmlidXRlLCBub3QgdGhlIHByZWZpeCBzdHJpbmcgKHdoaWNoIGlzCitqdXN0IGEgc2hvcnRjdXQgZm9yIHRoZSBmdWxsIFVSSSkuIEluIGxpYnhtbCwgZWxlbWVudCBhbmQgYXR0cmlidXRlcyBoYXZlIGFuCis8Y29kZT5uczwvY29kZT4gZmllbGQgcG9pbnRpbmcgdG8gYW4geG1sTnMgc3RydWN0dXJlIGRldGFpbGluZyB0aGUgbmFtZXNwYWNlCitwcmVmaXggYW5kIGl0cyBVUkkuPC9wPjxwPkBASW50ZXJmYWNlc0BAPC9wPjxwcmU+eG1sTm9kZVB0ciBub2RlOworaWYoIXN0cm5jbXAobm9kZS0mZ3Q7bmFtZSwibXl0YWciLDUpCisgICZhbXA7JmFtcDsgbm9kZS0mZ3Q7bnMKKyAgJmFtcDsmYW1wOyAhc3RyY21wKG5vZGUtJmd0O25zLSZndDtocmVmLCJodHRwOi8vd3d3Lm15c2l0ZS5jb20vbXlucy8xLjAiKSkgeworICAuLi4KK308L3ByZT48cD5Vc3VhbGx5IHBlb3BsZSBvYmplY3QgdG8gdXNpbmcgbmFtZXNwYWNlcyB0b2dldGhlciB3aXRoIHZhbGlkaXR5IGNoZWNraW5nLgorSSB3aWxsIHRyeSB0byBtYWtlIHN1cmUgdGhhdCB1c2luZyBuYW1lc3BhY2VzIHdvbid0IGJyZWFrIHZhbGlkaXR5IGNoZWNraW5nLAorc28gZXZlbiBpZiB5b3UgcGxhbiB0byB1c2Ugb3IgY3VycmVudGx5IGFyZSB1c2luZyB2YWxpZGF0aW9uIEkgc3Ryb25nbHkKK3N1Z2dlc3QgYWRkaW5nIG5hbWVzcGFjZXMgdG8geW91ciBkb2N1bWVudC4gQSBkZWZhdWx0IG5hbWVzcGFjZSBzY2hlbWUKKzxjb2RlPnhtbG5zPSJodHRwOi8vLi4uLiI8L2NvZGU+IHNob3VsZCBub3QgYnJlYWsgdmFsaWRpdHkgZXZlbiBvbiBsZXNzCitmbGV4aWJsZSBwYXJzZXJzLiBVc2luZyBuYW1lc3BhY2VzIHRvIG1peCBhbmQgZGlmZmVyZW50aWF0ZSBjb250ZW50IGNvbWluZworZnJvbSBtdWx0aXBsZSBEVERzIHdpbGwgY2VydGFpbmx5IGJyZWFrIGN1cnJlbnQgdmFsaWRhdGlvbiBzY2hlbWVzLiBUbyBjaGVjaworc3VjaCBkb2N1bWVudHMgb25lIG5lZWRzIHRvIHVzZSBzY2hlbWEtdmFsaWRhdGlvbiwgd2hpY2ggaXMgc3VwcG9ydGVkIGluCitsaWJ4bWwyIGFzIHdlbGwuIFNlZSA8YSBocmVmPSJodHRwOi8vd3d3LnJlbGF4bmcub3JnLyI+cmVsYWd4LW5nPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL3d3dy53M2Mub3JnL1hNTC9TY2hlbWEiPnczYy1zY2hlbWE8L2E+LjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL25ld2FwaS54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy9uZXdhcGkueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNzA5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9uZXdhcGkueHNsCkBAIC0wLDAgKzEsNzY2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0KKyAgU3R5bGVzaGVldCB0byBnZW5lcmF0ZSB0aGUgSFRNTCBkb2N1bWVudGF0aW9uIGZyb20gYW4gWE1MIEFQSSBkZXNjcmlwdGlvbnM6CisgIHhzbHRwcm9jIG5ld2FwaS54c2wgbGlieG1sMi1hcGkueG1sCisKKyAgRGFuaWVsIFZlaWxsYXJkCistLT4KKzx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiCisgIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgorICB4bWxuczpleHNsPSJodHRwOi8vZXhzbHQub3JnL2NvbW1vbiIKKyAgeG1sbnM6c3RyPSJodHRwOi8vZXhzbHQub3JnL3N0cmluZ3MiCisgIGV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJleHNsIHN0ciIKKyAgZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM9ImV4c2wgc3RyIj4KKworICA8IS0tIEltcG9ydCB0aGUgbWFpbiBwYXJ0IG9mIHRoZSBzaXRlIHN0eWxlc2hlZXRzIC0tPgorICA8eHNsOmltcG9ydCBocmVmPSJzaXRlLnhzbCIvPgorCisgIDwhLS0gR2VuZXJhdGUgWEhUTUwtMS4wIHRyYW5zaXRpb25hbCAtLT4KKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ4bWwiIGVuY29kaW5nPSJJU08tODg1OS0xIiBpbmRlbnQ9InllcyIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIi8+CisKKyAgPCEtLSBCdWlsZCBrZXlzIGZvciBhbGwgc3ltYm9scyAtLT4KKyAgPHhzbDprZXkgbmFtZT0ic3ltYm9scyIgbWF0Y2g9Ii9hcGkvc3ltYm9scy8qIiB1c2U9IkBuYW1lIi8+CisKKyAgPCEtLSB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBmb3IgdGhlIEhUTUwgb3V0cHV0IC0tPgorICA8eHNsOnZhcmlhYmxlIG5hbWU9Imh0bWxkaXIiPmh0bWw8L3hzbDp2YXJpYWJsZT4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJocmVmX2Jhc2UiPi4uLzwveHNsOnZhcmlhYmxlPgorCisgIDwhLS0gVGhlIHRhYmxlIG9mIGNvbnRlbnQgZm9yIHRoZSBIVE1MIEFQSSBwYWdlcyAtLT4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJtZW51X25hbWUiPkFQSSBNZW51PC94c2w6dmFyaWFibGU+CisgIDx4c2w6dmFyaWFibGUgbmFtZT0iYXBpdG9jIj4KKyAgICA8Zm9ybSBhY3Rpb249Ii4uL3NlYXJjaC5waHAiCisgICAgICAgICAgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+CisgICAgICA8aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIi8+CisgICAgICA8aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIi8+CisgICAgPC9mb3JtPgorICAgIDx1bD48IS0tIHN0eWxlPSJtYXJnaW4tbGVmdDogLTFlbSIgLS0+CisgICAgICA8bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiCisgICAgICAgICAgICAgaHJlZj0ieyRocmVmX2Jhc2V9aW5kZXguaHRtbCI+TWFpbiBNZW51PC9hPjwvbGk+CisgICAgICA8bGk+PGEgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiIAorICAgICAgICAgICAgIGhyZWY9InskaHJlZl9iYXNlfWRvY3MuaHRtbCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT4KKyAgICAgIDxsaT48YSBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCIgCisgICAgICAgICAgICAgaHJlZj0ieyRocmVmX2Jhc2V9ZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPgorICAgICAgPGxpPjxhIHN0eWxlPSJmb250LXdlaWdodDpib2xkIgorICAgICAgICAgICAgIGhyZWY9ImluZGV4Lmh0bWwiPkFQSSBNZW51PC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0ibGlieG1sLXBhcnNlci5odG1sIj5QYXJzZXIgQVBJPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCI+VHJlZSBBUEk8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJsaWJ4bWwteG1scmVhZGVyLmh0bWwiPlJlYWRlciBBUEk8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJ7JGhyZWZfYmFzZX1ndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0ieyRocmVmX2Jhc2V9Q2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPgorICAgIDwvdWw+CisgIDwveHNsOnZhcmlhYmxlPgorICA8eHNsOnRlbXBsYXRlIG5hbWU9ImFwaXRvYyI+CisgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgIDxjZW50ZXI+CisgICAgICAgICAgICAgICAgICA8Yj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG1lbnVfbmFtZSIvPjwvYj4KKyAgICAgICAgICAgICAgICA8L2NlbnRlcj4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj4KKyAgICAgICAgICAgICAgICA8eHNsOmNvcHktb2Ygc2VsZWN0PSIkYXBpdG9jIi8+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICA8Y2VudGVyPgorICAgICAgICAgICAgICAgICAgPGI+QVBJIEluZGV4ZXM8L2I+CisgICAgICAgICAgICAgICAgPC9jZW50ZXI+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisgICAgICAgICAgICAgICAgPHhzbDpjb3B5LW9mIHNlbGVjdD0iJGFwaSIvPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgPGNlbnRlcj4KKyAgICAgICAgICAgICAgICAgIDxiPlJlbGF0ZWQgbGlua3M8L2I+CisgICAgICAgICAgICAgICAgPC9jZW50ZXI+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisgICAgICAgICAgICAgICAgPHhzbDpjb3B5LW9mIHNlbGVjdD0iJHJlbGF0ZWQiLz4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkb2NzdHlsZSI+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7YmFja2dyb3VuZDogI0VFQ0ZBMX0KKyAgICA8L3N0eWxlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJuYXZiYXIiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icHJldmlvdXMiIHNlbGVjdD0icHJlY2VkaW5nLXNpYmxpbmc6OmZpbGVbMV0iLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5leHQiIHNlbGVjdD0iZm9sbG93aW5nLXNpYmxpbmc6OmZpbGVbMV0iLz4KKyAgICA8dGFibGUgY2xhc3M9Im5hdmlnYXRpb24iIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciIKKyAgICAgICAgICAgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICAgIDx0ciB2YWxpZ249Im1pZGRsZSI+CisgICAgICAgIDx4c2w6aWYgdGVzdD0iJHByZXZpb3VzIj4KKyAgICAgICAgICA8dGQ+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWJ4bWwteyRwcmV2aW91cy9AbmFtZX0uaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2ltZz48L2E+PC90ZD4KKwkgIDx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0ibGlieG1sLXskcHJldmlvdXMvQG5hbWV9Lmh0bWwiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkcHJldmlvdXMvQG5hbWUiLz48L2E+PC90aD4KKwk8L3hzbDppZj4KKyAgICAgICAgPHRkPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9InVwLnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvaW1nPjwvYT48L3RkPgorCTx0aCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaW5kZXguaHRtbCI+QVBJIGRvY3VtZW50YXRpb248L2E+PC90aD4KKyAgICAgICAgPHRkPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBzcmM9ImhvbWUucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJIb21lIj48L2ltZz48L2E+PC90ZD4KKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2E+PC90aD4KKyAgICAgICAgPHhzbDppZiB0ZXN0PSIkbmV4dCI+CisJICA8dGggYWxpZ249InJpZ2h0Ij48YSBocmVmPSJsaWJ4bWwteyRuZXh0L0BuYW1lfS5odG1sIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5leHQvQG5hbWUiLz48L2E+PC90aD4KKyAgICAgICAgICA8dGQ+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWJ4bWwteyRuZXh0L0BuYW1lfS5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2ltZz48L2E+PC90ZD4KKyAgICAgICAgPC94c2w6aWY+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDwhLS0gVGhpcyBpcyBjb252b2x1dGVkIGJ1dCBuZWVkZWQgdG8gZm9yY2UgdGhlIGN1cnJlbnQgZG9jdW1lbnQgdG8KKyAgICAgICBiZSB0aGUgQVBJIG9uZSBhbmQgbm90IHRoZSByZXN1bHQgdHJlZSBmcm9tIHRoZSB0b2tlbml6ZSgpIHJlc3VsdCwKKyAgICAgICBiZWNhdXNlIHRoZSBrZXlzIGFyZSBvbmx5IGRlZmluZWQgb24gdGhlIG1haW4gZG9jdW1lbnQgLS0+CisgIDx4c2w6dGVtcGxhdGUgbW9kZT0iZHVtcHRva2VuIiBtYXRjaD0nKic+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0b2tlbiIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icmVmIiBzZWxlY3Q9ImtleSgnc3ltYm9scycsICR0b2tlbikiLz4KKyAgICA8eHNsOmNob29zZT4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkcmVmIj4KKyAgICAgICAgPGEgaHJlZj0ibGlieG1sLXskcmVmL0BmaWxlfS5odG1sI3skcmVmL0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0b2tlbiIvPjwvYT4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0b2tlbiIvPgorICAgICAgPC94c2w6b3RoZXJ3aXNlPgorICAgIDwveHNsOmNob29zZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPCEtLSBkdW1wcyBhIHN0cmluZywgbWFraW5nIGNyb3NzLXJlZmVyZW5jZSBsaW5rcyAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0ZXh0Ii8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJjdHh0IiBzZWxlY3Q9Jy4nLz4KKyAgICA8IS0tIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGV4dCIvPiAtLT4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0ic3RyOnRva2VuaXplKCR0ZXh0LCAnICYjOTsnKSI+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IiRjdHh0IiBtb2RlPSdkdW1wdG9rZW4nPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idG9rZW4iIHNlbGVjdD0ic3RyaW5nKC4pIi8+CisgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgIT0gbGFzdCgpIj4KKyAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6aWY+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1hY3JvIiBtb2RlPSJ0b2MiPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+I2RlZmluZSA8L3hzbDp0ZXh0PjxhIGhyZWY9IiN7QG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InZhcmlhYmxlIiBtb2RlPSJ0b2MiPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+VmFyaWFibGUgPC94c2w6dGV4dD4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0ic3RyaW5nKEB0eXBlKSIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgorICAgIDxhIG5hbWU9IntAbmFtZX0iPjwvYT4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8eHNsOnRleHQ+CisKKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InR5cGVkZWYiIG1vZGU9InRvYyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDpjaG9vc2U+CisgICAgICA8eHNsOndoZW4gdGVzdD0iQHR5cGUgPSAnZW51bSciPgorCTx4c2w6dGV4dD5FbnVtIDwveHNsOnRleHQ+CisJPGEgaHJlZj0iI3skbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvYT4KKwk8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6b3RoZXJ3aXNlPgorCTx4c2w6dGV4dD5UeXBlZGVmIDwveHNsOnRleHQ+CisJPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKwkgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9IkB0eXBlIi8+CisJPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwk8eHNsOnRleHQ+IDwveHNsOnRleHQ+CisJPGEgbmFtZT0ieyRuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9hPgorCTx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPgorICAgIDwvcHJlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0eXBlZGVmW0B0eXBlID0gJ2VudW0nXSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8aDM+RW51bSA8YSBuYW1lPSJ7JG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+PC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgICA8eHNsOnRleHQ+RW51bSA8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICA8eHNsOnRleHQ+IHsKKzwveHNsOnRleHQ+CisgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iL2FwaS9zeW1ib2xzL2VudW1bQHR5cGUgPSAkbmFtZV0iPgorICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAdmFsdWUiIGRhdGEtdHlwZT0ibnVtYmVyIiBvcmRlcj0iYXNjZW5kaW5nIi8+CisgICAgICAgIDx4c2w6dGV4dD4gICAgPC94c2w6dGV4dD4KKyAgICAgICAgPGEgbmFtZT0ie0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgorICAgICAgICA8eHNsOnRleHQ+ID0gPC94c2w6dGV4dD4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB2YWx1ZSIvPgorICAgICAgICA8eHNsOmlmIHRlc3Q9IkBpbmZvICE9ICcnIj4KKwkgIDx4c2w6dGV4dD4gOiA8L3hzbDp0ZXh0PgorCSAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKwkgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQGluZm8iLz4KKwkgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwveHNsOmlmPgorICAgICAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8eHNsOnRleHQ+fQorPC94c2w6dGV4dD4KKyAgICA8L3ByZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ic3RydWN0IiBtb2RlPSJ0b2MiPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+U3RydWN0dXJlIDwveHNsOnRleHQ+PGEgaHJlZj0iI3tAbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT48YnIvPgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAdHlwZSIvPjx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoZmllbGQpIj4KKyAgICAgIDx4c2w6dGV4dD5UaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InN0cnVjdCI+CisgICAgPGgzPjxhIG5hbWU9IntAbmFtZX0iPlN0cnVjdHVyZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+PC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDp0ZXh0PlN0cnVjdHVyZSA8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjxici8+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB0eXBlIi8+PHhzbDp0ZXh0PiB7Cis8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0ibm90KGZpZWxkKSI+CisgICAgICA8eHNsOnRleHQ+VGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJmaWVsZCI+CisgICAgICAgIDx4c2w6dGV4dD4gICAgPC94c2w6dGV4dD4KKwk8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQHR5cGUiLz4KKwk8L3hzbDpjYWxsLXRlbXBsYXRlPgorCTx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKwk8eHNsOmlmIHRlc3Q9IkBpbmZvICE9ICcnIj4KKwkgIDx4c2w6dGV4dD4mIzk7OiA8L3hzbDp0ZXh0PgorCSAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKwkgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0ic3Vic3RyaW5nKEBpbmZvLCAxLCA0MCkiLz4KKwkgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJPC94c2w6aWY+CisJPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8eHNsOnRleHQ+fTwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1hY3JvIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDxoMz48YSBuYW1lPSJ7JG5hbWV9Ij48L2E+TWFjcm86IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvaDM+CisgICAgPHByZT48eHNsOnRleHQ+I2RlZmluZSA8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvcHJlPgorICAgIDxwPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJpbmZvIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3A+PHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZnVuY3Rpb24iIG1vZGU9InRvYyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5sZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aCgkbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRsZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aChyZXR1cm4vQHR5cGUpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJibGVuIiBzZWxlY3Q9IigoJG5sZW4gKyA4KSAtICgoJG5sZW4gKyA4KSBtb2QgOCkpICsgKCgkdGxlbiArIDgpIC0gKCgkdGxlbiArIDgpIG1vZCA4KSkiLz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AdHlwZSIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDxhIGhyZWY9IiN7QG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD4KKyAgICA8L3ByZT48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmdW5jdHlwZSIgbW9kZT0idG9jIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKCRuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKHJldHVybi9AdHlwZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsZW4iIHNlbGVjdD0iKCgkbmxlbiArIDgpIC0gKCgkbmxlbiArIDgpIG1vZCA4KSkgKyAoKCR0bGVuICsgOCkgLSAoKCR0bGVuICsgOCkgbW9kIDgpKSIvPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+RnVuY3Rpb24gdHlwZTogPC94c2w6dGV4dD4KKyAgICA8YSBocmVmPSIjeyRuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9hPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AdHlwZSIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDxhIGhyZWY9IiN7JG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pCis8L3hzbDp0ZXh0PgorICAgIDwvcHJlPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZ1bmN0eXBlIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKCRuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKHJldHVybi9AdHlwZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsZW4iIHNlbGVjdD0iKCgkbmxlbiArIDgpIC0gKCgkbmxlbiArIDgpIG1vZCA4KSkgKyAoKCR0bGVuICsgOCkgLSAoKCR0bGVuICsgOCkgbW9kIDgpKSIvPgorICAgIDxoMz4KKyAgICAgIDxhIG5hbWU9InskbmFtZX0iPjwvYT4KKyAgICAgIDx4c2w6dGV4dD5GdW5jdGlvbiB0eXBlOiA8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgPC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDp0ZXh0PkZ1bmN0aW9uIHR5cGU6IDwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0B0eXBlIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pCis8L3hzbDp0ZXh0PgorICAgIDwvcHJlPgorICAgIDxwPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJpbmZvIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3A+CisgICAgPHhzbDppZiB0ZXN0PSJhcmcgfCByZXR1cm4iPgorICAgICAgPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5PgorICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L3R0PjwvaT46PC9zcGFuPjwvdGQ+CisJICA8dGQ+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisJICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQGluZm8iLz4KKwkgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwkgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgIDx4c2w6aWYgdGVzdD0icmV0dXJuL0BpbmZvIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+CisJICA8dGQ+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisJICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0BpbmZvIi8+CisJICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC94c2w6aWY+CisgICAgICA8L3Rib2R5PjwvdGFibGU+PC9kaXY+CisgICAgPC94c2w6aWY+CisgICAgPGJyLz4KKyAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmdW5jdGlvbiI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5sZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aCgkbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRsZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aChyZXR1cm4vQHR5cGUpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJibGVuIiBzZWxlY3Q9IigoJG5sZW4gKyA4KSAtICgoJG5sZW4gKyA4KSBtb2QgOCkpICsgKCgkdGxlbiArIDgpIC0gKCgkdGxlbiArIDgpIG1vZCA4KSkiLz4KKyAgICA8aDM+PGEgbmFtZT0ieyRuYW1lfSI+PC9hPkZ1bmN0aW9uOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2gzPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0B0eXBlIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD48YnIvPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgICAgPHA+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9ImluZm8iLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcD48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0iYXJnIHwgcmV0dXJuL0BpbmZvIj4KKyAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJhcmciPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9IkBpbmZvIi8+CisJICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8eHNsOmlmIHRlc3Q9InJldHVybi9AaW5mbyI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AaW5mbyIvPgorCSAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorCSAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwveHNsOmlmPgorICAgICAgPC90Ym9keT48L3RhYmxlPjwvZGl2PgorICAgIDwveHNsOmlmPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJleHBvcnRzIiBtb2RlPSJ0b2MiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ia2V5KCdzeW1ib2xzJywgc3RyaW5nKEBzeW1ib2wpKVsxXSIgbW9kZT0idG9jIi8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImV4cG9ydHMiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ia2V5KCdzeW1ib2xzJywgc3RyaW5nKEBzeW1ib2wpKVsxXSIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG5hbWU9ImRlc2NyaXB0aW9uIj4KKyAgICA8eHNsOmlmIHRlc3Q9ImRlcHJlY2F0ZWQiPgorICAgICAgPGgyIHN0eWxlPSJmb250LXdlaWdodDpib2xkO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlciI+VGhpcyBtb2R1bGUgaXMgZGVwcmVjYXRlZDwvaDI+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDppZiB0ZXN0PSJkZXNjcmlwdGlvbiI+CisgICAgICA8cD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iZGVzY3JpcHRpb24iLz48L3A+CisgICAgPC94c2w6aWY+CisgIDwveHNsOnRlbXBsYXRlPgorCis8IS0tCisgIDx4c2w6dGVtcGxhdGUgbmFtZT0iZG9jb21wb25lbnRzIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9Im1vZGUiLz4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J21hY3JvJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdlbnVtJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSd0eXBlZGVmJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdzdHJ1Y3QnXSIgbW9kZT0iJG1vZGUiPgorICAgICAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J2Z1bmN0aW9uJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgIDwveHNsOnRlbXBsYXRlPgorLS0+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZmlsZSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0aXRsZSI+TW9kdWxlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPiBmcm9tIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvYXBpL0BuYW1lIi8+PC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJ7JGh0bWxkaXJ9L2xpYnhtbC17JG5hbWV9Lmh0bWwiIG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKwk8aHRtbD4KKwkgIDxoZWFkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3R5bGUiLz4KKwkgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRvY3N0eWxlIi8+CisJICAgIDx0aXRsZT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHRpdGxlIi8+PC90aXRsZT4KKwkgIDwvaGVhZD4KKwkgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKwkgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRpdGxlYm94Ij4KKwkgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiIHNlbGVjdD0iJHRpdGxlIi8+CisJICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj4KKwkgICAgPHRyPgorCSAgICAgIDx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij4KKwkJPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisJCSAgPHRyPgorCQkgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij4KKwkJICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImFwaXRvYyIvPgorCQkgICAgPC90ZD4KKwkJICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+CisJCSAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPgorCQkJPHRyPgorCQkJICA8dGQ+CisJCQkgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisJCQkgICAgICA8dHI+CisJCQkJPHRkPgorCQkJCSAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisJCQkJICAgIDx0cj4KKwkJCQkgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmFjZCI+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJuYXZiYXIiLz4KKwkgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRlc2NyaXB0aW9uIi8+CisJICAgIDx4c2w6Y2hvb3NlPgorCSAgICAgIDx4c2w6d2hlbiB0ZXN0PSJkZXByZWNhdGVkIj4KKwkgICAgICAgIDxkaXYgY2xhc3M9ImRlcHJlY2F0ZWQiPgorCQkgIDxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+CisJCSAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzIiBtb2RlPSJ0b2MiLz4KKwkJICA8aDI+RGVzY3JpcHRpb248L2gyPgorCQkgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisJCSAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzIi8+CisJCTwvZGl2PgorCSAgICAgIDwveHNsOndoZW4+CisJICAgICAgPHhzbDpvdGhlcndpc2U+CisJCTxoMj5UYWJsZSBvZiBDb250ZW50czwvaDI+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0c1tAdHlwZT0nbWFjcm8nXSIgbW9kZT0idG9jIj4KKwkJICA8eHNsOnNvcnQgc2VsZWN0PSdAc3ltYm9sJy8+CisJCTwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdlbnVtJ10iIG1vZGU9InRvYyI+CisJCSAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorCQk8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0c1tAdHlwZT0ndHlwZWRlZiddIiBtb2RlPSJ0b2MiPgorCQkgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKwkJPC94c2w6YXBwbHktdGVtcGxhdGVzPgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J3N0cnVjdCddIiBtb2RlPSJ0b2MiPgorCQkgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKwkJPC94c2w6YXBwbHktdGVtcGxhdGVzPgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J2Z1bmN0aW9uJ10iIG1vZGU9InRvYyI+CisJCSAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorCQk8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisJCTxoMj5EZXNjcmlwdGlvbjwvaDI+CisJCTx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0c1tAdHlwZT0nbWFjcm8nXSI+CisJCSAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorCQk8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0c1tAdHlwZT0nZW51bSddIj4KKwkJICA8eHNsOnNvcnQgc2VsZWN0PSdAc3ltYm9sJy8+CisJCTwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSd0eXBlZGVmJ10iPgorCQkgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKwkJPC94c2w6YXBwbHktdGVtcGxhdGVzPgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J3N0cnVjdCddIj4KKwkJICA8eHNsOnNvcnQgc2VsZWN0PSdAc3ltYm9sJy8+CisJCTwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdmdW5jdGlvbiddIj4KKwkJICA8eHNsOnNvcnQgc2VsZWN0PSdAc3ltYm9sJy8+CisJCTwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKwkgICAgICA8L3hzbDpvdGhlcndpc2U+CisJICAgIDwveHNsOmNob29zZT4KKwkJCQkJPHA+PGEgaHJlZj0ieyRocmVmX2Jhc2V9YnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgorCQkJCSAgICAgIDwvdGQ+CisJCQkJICAgIDwvdHI+CisJCQkJICA8L3RhYmxlPgorCQkJCTwvdGQ+CisJCQkgICAgICA8L3RyPgorCQkJICAgIDwvdGFibGU+CisJCQkgIDwvdGQ+CisJCQk8L3RyPgorCQkgICAgICA8L3RhYmxlPgorCQkgICAgPC90ZD4KKwkJICA8L3RyPgorCQk8L3RhYmxlPgorCSAgICAgIDwvdGQ+CisJICAgIDwvdHI+CisJICA8L3RhYmxlPgorCSAgPC9ib2R5PgorCTwvaHRtbD4KKyAgICA8L3hzbDpkb2N1bWVudD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZmlsZSIgbW9kZT0idG9jIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8bGk+CisgICAgICA8YSBocmVmPSJsaWJ4bWwteyRuYW1lfS5odG1sIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+CisgICAgICA8eHNsOnRleHQ+OiA8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1bW1hcnkiLz4KKyAgICA8L2xpPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG5hbWU9Im1haW5wYWdlIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9ImZpbGUiIHNlbGVjdD0iY29uY2F0KCRodG1sZGlyLCAnL2luZGV4Lmh0bWwnKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGl0bGUiPlJlZmVyZW5jZSBNYW51YWwgZm9yIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvYXBpL0BuYW1lIi8+PC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJ7JGZpbGV9IiBtZXRob2Q9InhtbCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiCisgICAgICBkb2N0eXBlLXB1YmxpYz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICBkb2N0eXBlLXN5c3RlbT0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisJPGh0bWw+CisJICA8aGVhZD4KKwkgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkb2NzdHlsZSIvPgorCSAgICA8dGl0bGU+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0aXRsZSIvPjwvdGl0bGU+CisJICA8L2hlYWQ+CisJICA8Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJ0aXRsZWJveCI+CisJICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRpdGxlIiBzZWxlY3Q9IiR0aXRsZSIvPgorCSAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorCSAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+CisJICAgIDx0cj4KKwkgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisJCTx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPgorCQkgIDx0cj4KKwkJICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisJCSAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhcGl0b2MiLz4KKwkJICAgIDwvdGQ+CisJCSAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPgorCQkgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKwkJCTx0cj4KKwkJCSAgPHRkPgorCQkJICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPgorCQkJICAgICAgPHRyPgorCQkJCTx0ZD4KKwkJCQkgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPgorCQkJCSAgICA8dHI+CisJCQkJICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorCSAgICA8aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPgorCSAgICA8dWw+CisJICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iL2FwaS9maWxlcy9maWxlIiBtb2RlPSJ0b2MiLz4KKwkgICAgPC91bD4KKwkJCQkJPHA+PGEgaHJlZj0ieyRocmVmX2Jhc2V9YnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgorCQkJCSAgICAgIDwvdGQ+CisJCQkJICAgIDwvdHI+CisJCQkJICA8L3RhYmxlPgorCQkJCTwvdGQ+CisJCQkgICAgICA8L3RyPgorCQkJICAgIDwvdGFibGU+CisJCQkgIDwvdGQ+CisJCQk8L3RyPgorCQkgICAgICA8L3RhYmxlPgorCQkgICAgPC90ZD4KKwkJICA8L3RyPgorCQk8L3RhYmxlPgorCSAgICAgIDwvdGQ+CisJICAgIDwvdHI+CisJICA8L3RhYmxlPgorCSAgPC9ib2R5PgorCTwvaHRtbD4KKyAgICA8L3hzbDpkb2N1bWVudD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+CisgICAgPCEtLSBTYXZlIHRoZSBtYWluIGluZGV4Lmh0bWwgYXMgd2VsbCBhcyBhIGNvdXBsZSBvZiBjb3BpZXMgLS0+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9Im1haW5wYWdlIi8+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9Im1haW5wYWdlIj4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJmaWxlIiBzZWxlY3Q9ImNvbmNhdCgkaHRtbGRpciwgJy9ib29rMS5odG1sJykiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJtYWlucGFnZSI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0iZmlsZSIgc2VsZWN0PSJjb25jYXQoJGh0bWxkaXIsICcvbGlieG1sLWxpYi5odG1sJykiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwhLS0gbm93IGJ1aWxkIHRoZSBmaWxlIGZvciBlYWNoIG9mIHRoZSBtb2R1bGVzIC0tPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iL2FwaS9maWxlcy9maWxlIi8+CisgIDwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvbmV3cy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvbmV3cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2YjJmNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9uZXdzLmh0bWwKQEAgLTAsMCArMSwxNTkzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPlJlbGVhc2VzPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5SZWxlYXNlczwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+PC9saT48bGk+PGEgaHJlZj0iZG9jcy5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGV2ZWxvcGVyIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iYnVncy5odG1sIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPjxsaT48YSBocmVmPSJuZXdzLmh0bWwiPlJlbGVhc2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhNTGluZm8uaHRtbCI+WE1MPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJjb250cmlicy5odG1sIj5Db250cmlidXRpb25zPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPlJlY2VudCBDaGFuZ2VzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+SXRlbXMgbm90IGZpbmlzaGVkIGFuZCB3b3JrZWQgb24sIGdldCBpbiB0b3VjaCB3aXRoIHRoZSBsaXN0IGlmIHlvdSB3YW50Cit0byBoZWxwIHRob3NlPC9wPjx1bD48bGk+TW9yZSB0ZXN0aW5nIG9uIFJlbGF4Tkc8L2xpPgorICA8bGk+RmluaXNoaW5nIHVwIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0xLyI+WE1MCisgIFNjaGVtYXM8L2E+PC9saT4KKzwvdWw+PHA+VGhlIDxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5jaGFuZ2UgbG9nPC9hPiBkZXNjcmliZXMgdGhlIHJlY2VudHMgY29tbWl0cwordG8gdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdm4uZ25vbWUub3JnL3ZpZXd2Yy9saWJ4bWwyL3RydW5rLyI+U1ZOPC9hPiBjb2RlIGJhc2UuPC9wPjxwPkhlcmUgaXMgdGhlIGxpc3Qgb2YgcHVibGljIHJlbGVhc2VzOjwvcD48aDM+Mi43LjY6IE9jdCAgNiAyMDA5PC9oMz48dWw+PGxpPiBCdWcgRml4ZXM6CisgICAgIFJlc3RvcmUgdGhyZWFkIHN1cHBvcnQgaW4gZGVmYXVsdCBjb25maWd1cmF0aW9uIChBbmRyZXcgVy4gTm9zZW5rbyksCisgICAgIFVSSSB3aXRoIG5vIHBhdGggcGFyc2luZyBwcm9ibGVtIChEYW5pZWwgVmVpbGxhcmQpLAorICAgICBNaW5vciBwYXRjaCBmb3IgY29uZGl0aW9uYWwgZGVmaW5lcyBpbiB0aHJlYWRzLmMgKEVyaWMgWnVyY2hlcikKKyAgPC9saT4KKzwvdWw+PGgzPjIuNy41OiBTZXAgMjQgMjAwOTwvaDM+PHVsPjxsaT4gQnVnIEZpeGVzOgorICAgIFJlc3RvcmUgYmVoYXZpb3Igb2YgLS13aXRoLXRocmVhZHMgd2l0aG91dCBhcmd1bWVudCAoQW5kcmV3IFcuIE5vc2Vua28pLAorICAgIEZpeCBtZW1vcnkgbGVhayB3aGVuIGRvYyBpcyBOVUxMIChSb2IgUmljaGFyZHMpLAorICAgIDU5NTc5MiBmaXhpbmcgYSBSZWxheE5HIGJ1ZyBpbnRyb2R1Y2VkIGluIDIuNy40IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBhIFJlbGF4bmcgYnVnIHJhaXNlZCBieSBsaWJ2aXJ0IHRlc3Qgc3VpdGUgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGEgcGFyc2luZyBwcm9ibGVtIHdpdGggbGl0dGxlIGRhdGEgYXQgc3RhcnR1cCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBsaW5rIHB5dGhvbiBtb2R1bGUgd2l0aCBweXRob24gbGlicmFyeSAoRnJlZGVyaWMgQ3JvemF0KSwKKyAgICA1OTQ4NzQgRm9yZ290IGFuIGZjbG9zZSBpbiB4bWxsaW50IChEYW5pZWwgVmVpbGxhcmQpCisgIDwvbGk+CisgIDxsaT4gQ2xlYW51cDoKKyAgICBBZGRpbmcgc3ltYm9scy54bWwgdG8gRVhUUkFfRElTVCAoRGFuaWVsIFZlaWxsYXJkKQorICA8L2xpPgorPC91bD48aDM+Mi43LjQ6IFNlcCAxMCAyMDA5PC9oMz48dWw+PGxpPkltcHJvdmVtZW50czoKKyAgICBTd2l0Y2ggdG8gR0lUIChHTk9NRSksCisgICAgQWRkIHN5bWJvbCB2ZXJzaW9uaW5nIHRvIGxpYnhtbDIgc2hhcmVkIGxpYnMgKERhbmllbCBWZWlsbGFyZCkKKyAgPC9saT4KKyAgPGxpPlBvcnRhYmlsaXR5OgorICAgIDU5Mzg1NyB0cnkgdG8gd29yayBhcm91bmQgdGhyZWFkIHBibSBNaW5HVyA0LjQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTk0MjUwIHJlbmFtZSBBVFRSSUJVVEVfQUxMT0NfU0laRSB0byBhdm9pZCBjbGFzaGVzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBXaW5kb3dzIGJ1aWxkICogcmVsYXhuZy5jOiBmaXggd2luZG93cyBidWlsZCAoUm9iIFJpY2hhcmRzKSwKKyAgICBGaXggdGhlIGdsb2JhbHMuaCB0byB1c2UgWE1MUFVCRlVOIChQYXVsIFNtaXRoKSwKKyAgICBQcm9ibGVtIHdpdGggZXh0ZXJuIGV4dGVybiBpbiBoZWFkZXIgKERhbmllbCBWZWlsbGFyZCksCisgICAgQWRkIC1sbmV0d29yayBmb3IgY29tcGlsaW5nIG9uIEhhaWt1IChTY290dCBNY0NyZWFyeSksCisgICAgUnVudGVzdCBwb3J0YWJpbGl0eSBwYXRjaCBmb3IgU29sYXJpcyAoVGltIFJpY2UpLAorICAgIFNtYWxsIHBhdGNoIHRvIGFjY29tb2RhdGUgdGhlIEhhaWt1IE9TIChTY290dCBNY0NyZWFyeSksCisgICAgNTg0NjA1IHBhY2thZ2UgVnhXb3JrcyBmb2xkZXIgaW4gdGhlIGRpc3RyaWJ1dGlvbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NzQwMTcgUmVhbGxvYyB0b28gZXhwZW5zaXZlIG9uIG1vc3QgcGxhdGZvcm0gKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IHdpbmRvd3MgYnVpbGQgKFJvYiBSaWNoYXJkcyksCisgICAgNTQ1NTc5IGRvZXNuJ3QgY29tcGlsZSB3aXRob3V0IHNjaGVtYSBzdXBwb3J0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIHhtbGxpbnQgdXNlIHhtbEdldE5vZGVQYXRoIHdoZW4gbm90IGNvbXBpbGVkIGluIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIFRyeSB0byBhdm9pZCBfX2ltcF9feG1sRnJlZSBsaW5rIHRyb3VibGUgb24gbXN5cyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBBbGxvdyB0byBzZWxlY3QgdGhlIHRocmVhZGluZyBzeXN0ZW0gb24gV2luZG93cyAoTFJOKSwKKyAgICBGaXggU29sYXJpcyBiaW5hcnkgbGlua3MsIGNsZWFudXBzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEJ1ZyA1NzEwNTkg4oCTIE1TVkMgZG9lc24ndCB3b3JrIHdpdGggdGhlIGJha2VmaWxlIChJbnRyb24pLAorICAgIGZpeCBBVFRSSUJVVEVfUFJJTlRGIGhlYWRlciBjbGFzaCAoQmVsZ2Fib3IgYW5kIE1pa2UgSG9tbWV5KSwKKyAgICBmaXhlcyBmb3IgQm9ybGFuZC9Db2RlR2Vhci9FbWJhcmNhZGVybyBjb21waWxlcnMgKEVyaWMgWnVyY2hlcikKKyAgPC9saT4KKyAgPGxpPkRvY3VtZW50YXRpb246CisgICAgNTQ0OTEwIHR5cG86ICJyZW5jaWxpYXRlTnMiIChMZW9uaWQgRXZkb2tpbW92KSwKKyAgICBBZGQgVnhXb3JrcyB0byBsaXN0IG9mIE9TZXMgKERhbmllbCBWZWlsbGFyZCksCisgICAgUmVnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgdXBkYXRlIGZvciBnaXQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTYwNTI0IMK/IHhtbFRleHRSZWFkZXJMb2NhbE5hbWUgZGVzY3JpcHRpb24gKERhbmllbCBWZWlsbGFyZCksCisgICAgQWRkZWQgc3BvbnNvcmluZyBieSBBT0UgbWVkaWEgZm9yIHRoZSBzZXJ2ZXIgKERhbmllbCBWZWlsbGFyZCksCisgICAgdXBkYXRlZCBVUkxzIGZvciBHTk9NRSAoVmluY2VudCBMZWZldnJlKSwKKyAgICBtb3JlIHdhcm5pbmdzIGFib3V0IHhtbENsZWFudXBUaHJlYWRzIGFuZCB4bWxDbGVhbnVwUGFyc2VyIChEYW5pZWwgVmVpbGxhcmQpCisgIDwvbGk+CisgIDxsaT5CdWcgZml4ZXM6CisgICAgNTk0NTE0IG1lbW9yeSBsZWFrcyAtIGR1cGxpY2F0ZSBpbml0aWFsaXphdGlvbiAoTU9EKSwKKyAgICBXcm9uZyBibG9jayBvcGVuaW5nIGluIGh0bWxOb2RlRHVtcE91dHB1dEludGVybmFsIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDQ5MjMxNyBGaXggIFJlbGF4LU5HIHZhbGlkYXRpb24gcHJvYmxlbXMgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTU4NDUyIGZpZ2h0IHdpdGggcmVnIHRlc3QgYW5kIGVycm9yIHJlcG9ydCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NTg0NTIgUk5HIGNvbXBpbGF0aW9uIG9mIG9wdGlvbmFsIG11bHRpcGxlIGNoaWxkIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU3OTc0NiBYU0QgdmFsaWRhdGlvbiBub3QgY29ycmVjdCAvIG5pbGFibGUgZ3JvdXBzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDUwMjk2MCBwcm92aWRlIG5hbWVzcGFjZSBzdGFjayB3aGVuIHBhcnNpbmcgZW50aXR5IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU2NjAxMiBwYXJ0IDIgZml4IHJlZ3Jlc2lvbiB0ZXN0cyBhbmQgcHVzaCBtb2RlIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU2NjAxMiBhdXRvZGV0ZWN0ZWQgZW5jb2RpbmcgYW5kIGVuY29kaW5nIGNvbmZsaWN0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU4NDIyMCB4cG9pbnRlcigvKSBhbmQgeGluY2x1ZGUgcHJvYmxlbXMgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTg3NjYzIEluY29ycmVjdCBBdHRyaWJ1dGUtVmFsdWUgTm9ybWFsaXphdGlvbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA0NDQ5OTQgSFRNTCBjaHVua2VkIGZhaWx1cmUgZm9yIGF0dHJpYnV0ZSB3aXRoICZsdDsmZ3Q7IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBlbmQgb2YgYnVmZmVyIGNoYXIgYmVpbmcgc3BsaXQgaW4gWE1MIHBhcnNlciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBOb24gQVNDSUkgY2hhcmFjdGVyIG1heSBiZSBzcGxpdCBhdCBidWZmZXIgZW5kIChBZGllbCBNaXR0bWFubiksCisgICAgNDQwMjI2IEFkZCB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIEFQSSAoU3RlZmFuIEJlaG5lbCksCisgICAgNTcyMTI5IHNwZWVkIHVwIHBhcnNpbmcgb2YgbGFyZ2UgSFRNTCB0ZXh0IG5vZGVzIChNYXJrdXMgS3VsbCksCisgICAgRml4IEhUTUwgcGFyc2luZyB3aXRoIDAgY2hhcmFjdGVyIGluIENEQVRBIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBTZXRHZW5lcmljRXJyb3JGdW5jIGFuZCBTZXRTdHJ1Y3R1cmVkIGNsYXNoIChXYW5nIExhbSksCisgICAgNTY2MDEyICBJbmNvbXBsZXRlIEVCQ0RJQyBwYXJzaW5nIHN1cHBvcnQgKE1hcnRpbiBLb2dsZXIpLAorICAgIDU0MTMzNSBIVE1MIGF2b2lkIGNyZWF0aW5nIDIgaGVhZCBvciAyIGJvZHkgZWxlbWVudCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NDEyMzcgZXJyb3IgY29ycmVjdGluZyBtaXNzaW5nIGVuZCB0YWdzIGluIEhUTUwgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTgzNDM5IG1pc3NpbmcgbGluZSBudW1iZXJzIGluIHB1c2ggbW9kZSAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODc4NjcgeG1sbGludCAtLWh0bWwgLS14bWxvdXQgc2VyaWFsaXppbmcgYXMgSFRNTCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NTk1MDEgYXZvaWQgc2VsZWN0IGFuZCB1c2UgcG9sbCBmb3IgbmFub2h0dHAgKFJhcGhhZWwgUHJldm9zdCksCisgICAgNTU5NDEwIC0gIFJlZ2V4cCBidWcgb24gKC4uLik/IGNvbnN0cnVjdHMgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGEgc21hbGwgcHJvYmxlbSBvbiBwcmV2aW91cyBIVE1MIHBhcnNlciBwYXRjaCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1OTI0MzAgLSAgSFRNTCBwYXJzZXIgcnVucyBpbnRvIGVuZGxlc3MgbG9vcCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA0NDc4OTkgcG90ZW50aWFsIGRvdWJsZSBmcmVlIGluIHhtbEZyZWVUZXh0UmVhZGVyIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDQ0NjYxMyBzbWFsbCB2YWxpZGF0aW9uIGJ1ZyBtaXhlZCBjb250ZW50IHdpdGggTlMgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IHRoZSBwcm9ibGVtIG9mIHJldmFsaWRhdGluZyBhIGRvYyB3aXRoIFJORyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggeG1sS2VlcEJsYW5rc0RlZmF1bHQgdG8gbm90IGJyZWFrIGluZGVudCAoTmljayBXZWxsbmhvZmVyKSwKKyAgICA1MTIxMzEgcmVmcyBmcm9tIGV4dGVybmFsUmVmIHBhcnQgbmVlZCB0byBiZSBhZGRlZCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1MTIxMzEgY3Jhc2ggaW4geG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTg4NDQxIGFsbG93ICcuJyBpbiBIVE1MIE5hbWVzIGV2ZW4gaWYgaW52YWxpZCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODI5MTMgRml4IGh0bWxTZXRNZXRhRW5jb2RpbmcoKSB0byBiZSBuaWNlciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NzkzMTcgVHJ5IHRvIGZpbmQgdGhlIEhUTUwgZW5jb2RpbmcgaW5mb3JtYXRpb24gKERhbmllbCBWZWlsbGFyZCksCisgICAgNTc1ODc1IGRvbid0IG91dHB1dCBjaGFyc2V0PWh0bWwgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTcxMjcxIGZpeCBzZW1hbnRpYyBvZiB4c2Q6YWxsIHdpdGggbWluT2NjdXJzPTAgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTcwNzAyIGZpeCBhIGJ1ZyBpbiByZWdleHAgZGV0ZXJtaW5pc20gY2hlY2tpbmcgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTY3NjE5IHhtbFZhbGlkYXRlTm90YXRpb25Vc2UgbWlzc2luZyBwYXJhbSB0ZXN0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU3NDM5MyDCvyB1dGYtOCBmaWxlbmFtZSBtYWdpYyBmb3IgY29tcHJlc3NlZCBmaWxlcyAoSGFucyBCcmV1ZXIpLAorICAgIEZpeCBhIGNvdXBsZSBvZiBwcm9ibGVtcyBpbiB0aGUgcGFyc2VyIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU4NTUwNSDCvyBEb2N1bWVudCBpZHMgYW5kIHJlZnMgcG9wdWxhdGVkIGJ5IFhTRCAoV2F5bmUgSmVuc2VuKSwKKyAgICA1ODI5MDYgWFNEIHZhbGlkYXRpbmcgbXVsdGlwbGUgaW1wb3J0cyBvZiB0aGUgc2FtZSBzY2hlbWEgKEphc29uIENoaWxkcyksCisgICAgQnVnIDU4Mjg4NyDCvyBwcm9ibGVtcyB2YWxpZGF0aW5nIGNvbXBsZXggc2NoZW1hcyAoSmFzb24gQ2hpbGRzKSwKKyAgICBCdWcgNTc5NzI5IMK/IGZpeCBYU0Qgc2NoZW1hcyBwYXJzaW5nIGNyYXNoIChNaXJvc2xhdiBCYWp0b3MpLAorICAgIDU3NjM2OCDCvyBodG1sQ2h1bmtQYXJzZXIgd2l0aCBzcGVjaWFsIGF0dHJpYnV0ZXMgKEppcmkgTmV0b2xpY2t5KSwKKyAgICBCdWcgNTY1NzQ3IMK/IHJlbGF4IGFueVVSSSBkYXRhIGNoYXJhY3RlciBjaGVja2luZyAoVmluY2VudCBMZWZldnJlKSwKKyAgICBQcmVzZXJ2ZSBhdHRyaWJ1dGVzIG9mIGluY2x1ZGUgc3RhcnQgb24gdHJlZSBjb3B5IChQZXRyIFBhamFzKSwKKyAgICBTa2lwIHNpbGVudGx5IHVucmVjb2duaXplZCBYUG9pbnRlciBzY2hlbWVzIChKYWt1YiBXaWxrKSwKKyAgICBGaXggbGVhayBvbiBTQVgxLCB4bWxsaW50IC0tc2F4MSBvcHRpb24gYW5kIGRlYnVnIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIHBvdGVudGlhbCBOVUxMIGRlcmVmZXJlbmNlIG9uIG5vbi1nbGliYyAoSmltIE1leWVyaW5nKSwKKyAgICBGaXggYW4gWFNEIHZhbGlkYXRpb24gY3Jhc2ggKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGEgcmVncmVzc2lvbiBpbiBzdHJlYW1pbmcgZW50aXRpZXMgc3VwcG9ydCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggYSBjb3VwbGUgb2YgQUJJIGlzc3VlcyB3aXRoIEMxNE4gMS4xIChBbGVrc2V5IFNhbmluKSwKKyAgICBBbGVrc2V5IFNhbmluIHN1cHBvcnQgZm9yIGMxNG4gMS4xIChBbGVrc2V5IFNhbmluKSwKKyAgICByZWFkZXIgYnVnIGZpeCB3aXRoIGVudGl0aWVzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIHVzZSBvcHRpb25zIGZyb20gY3VycmVudCBwYXJzZXIgY3R4dCBmb3IgZXh0ZXJuYWwgZW50aXRpZXMgKFJvYiBSaWNoYXJkcyksCisgICAgNTgxNjEyIHVzZSAlcyB0byBwcmludGYgc3RyaW5ncyAoQ2hyaXN0aWFuIFBlcnNjaCksCisgICAgNTg0NjA1IGNoYW5nZSB0aGUgdGhyZWFkaW5nIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIChJZ29yIE5vdm9zZWx0c2V2KSwKKyAgICA1ODA3MDUga2VlcCBsaW5lIG51bWJlcnMgaW4gSFRNTCBwYXJzZXIgKEFhcm9uIFBhdHRlcnNvbiksCisgICAgNTgxODAzIGJyb2tlbiBIVE1MIHRhYmxlIGF0dHJpYnV0ZXMgaW5pdCAoUm9sYW5kIFN0ZWluZXIpLAorICAgIGRvIG5vdCBzZXQgZXJyb3IgY29kZSBpbiB4bWxOc1dhcm4gKFJvYiBSaWNoYXJkcyksCisgICAgNTY0MjE3IGZpeCBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsaW5nIHByb2JsZW1zLAorICAgIHJldXNlIG9wdGlvbnMgZnJvbSBjdXJyZW50IHBhcnNlciBmb3IgZW50aXRpZXMgKFJvYiBSaWNoYXJkcyksCisgICAgeG1sWFBhdGhSZWdpc3Rlck5zIHNob3VsZCBub3QgYWxsb3cgZW5wdHkgcHJlZml4ZXMgKERhbmllbCBWZWlsbGFyZCksCisgICAgYWRkIGEgbWlzc2luZyBjaGVjayBpbiB4bWxBZGRTaWJsaW5nIChLcmlzIEJyZXVrZXIpLAorICAgIGF2b2lkIGxlYWtzIG9uIGVycm9ycyAoSmlubWVpIFRhdHV5YSkKKyAgPC9saT4KKyAgPGxpPkNsZWFudXA6CisgICAgQ2hhc2luZyBkZWFkIGFzc2lnbm1lbnRzIHJlcG9ydGVkIGJ5IGNsYW5nLXNjYW4gKERhbmllbCBWZWlsbGFyZCksCisgICAgQSBmZXcgbW9yZSBzYWZldHkgY2xlYW51cCByYWlzZWQgYnkgc2NhbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXhpbmcgYXNzb3J0ZWQgcG90ZW50aWFsIHByb2JsZW1zIHJhaXNlZCBieSBzY2FuIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIFBvdGVudGlhbCB1bmluaXRpYWxpemVkIGFyZ3VtZW50cyByYWlzZWQgYnkgc2NhbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggYSBidW5jaCBvZiBzY2FuICdkZWFkIGluY3JlbWVudHMnIGFuZCBjbGVhbnVwIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIFJlbW92ZSBhIHBlZGFudGljIHdhcm5pbmcgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTU1ODMzIGFsd2F5cyB1c2Ugcm0gLWYgaW4gdW5pbnN0YWxsLWxvY2FsIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU0MjM5NCB4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcyBNQVhfSU5QVVRfQ0FMTEJBQ0sgKERhbmllbCBWZWlsbGFyZCksCisgICAgQXV0b3JlZ2VuZXJhdGUgbGlieG1sMi5zeW1zIGF1dG9tYXRlZCBjaGVja2luZ3MgKERhbmllbCBWZWlsbGFyZCksCisgICAgTWFrZSB4bWxSZWNvdmVyRG9jIGNvbnN0IChNYXJ0aW4gVHJhcHBlbCkgKERhbmllbCBWZWlsbGFyZCksCisgICAgQm90aCBhcmdzIG9mIHhtbFN0cmNhc2VzdHIgYXJlIGNvbnN0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIGhpZGUgdGhlIG5iUGFyc2UqIHZhcmlhYmxlcyB1c2VkIGZvciBkZWJ1Z2dpbmcgKE1pa2UgSG9tbWV5KSwKKyAgICA1NzA4MDYgY2hhbmdlZCBpbmNsdWRlIG9mIGNvbmZpZy5oIChXaWxsaWFtIE0uIEJyYWNrKSwKKyAgICBjbGVhbnVwcyBhbmQgZXJyb3IgcmVwb3J0cyB3aGVuIHhtbFRleHRXcml0ZXJWU3ByaW50ZiBmYWlscyAoSmlubWVpIFRhdHV5YSkKKyAgPC9saT4KKzwvdWw+PGgzPjIuNy4zOiBKYW4gMTggMjAwOTwvaDM+PHVsPjxsaT5CdWlsZCBmaXg6IGZpeCBidWlsZCB3aGVuIEhUTUwgc3VwcG9ydCBpcyBub3QgaW5jbHVkZWQuPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogYXZvaWQgbWVtb3J5IG92ZXJmbG93IGluIGdpZ2FudGljIHRleHQgbm9kZXMsCisgICAgICBpbmRlbnRhdGlvbiBwcm9ibGVtIG9uIHRoZSB3cml0ZWQgKFJvYiBSaWNoYXJkcyksCisgICAgICB4bWxBZGRDaGlsZExpc3QgcG9pbnRlciBwcm9ibGVtIChSb2IgUmljaGFyZHMgYW5kIEtldmluIE1pbGJ1cm4pLAorICAgICAgeG1sQWRkQ2hpbGQgcHJvYmxlbSB3aXRoIGF0dHJpYnV0ZSAoUm9iIFJpY2hhcmRzIGFuZCBLcmlzIEJyZXVrZXIpLAorICAgICAgYXZvaWQgYSBtZW1vcnkgbGVhayBpbiBhbiBlZGdlIGNhc2UgKERhbmllbCBaaW1tZXJtYW5uKSwKKyAgICAgIGRlYWxsb2NhdGUgc29tZSBwdGhyZWFkIGRhdGEgKEFsZXggT3R0KS48L2xpPgorICA8bGk+SW1wcm92ZW1lbnRzOiBjb25maWd1cmUgb3B0aW9uIHRvIGF2b2lkIHJlYnVpbGRpbmcgZG9jcyAoQWRyaWFuIEJ1bmspLAorICAgICAgbGltaXQgdGV4dCBub2RlcyB0byAxME1CIG1heCBieSBkZWZhdWx0LCBhZGQgZWxlbWVudCB0cmF2ZXJzYWwKKyAgICAgIEFQSXMsIGFkZCBhIHBhcnNlciBvcHRpb24gdG8gZW5hYmxlIHByZSAyLjcgU0FYIGJlaGF2aW9yIChSb2IgUmljaGFyZHMpLAorICAgICAgYWRkIGdjYyBtYWxsb2MgY2hlY2tpbmcgKE1hcmN1cyBNZWlzc25lciksIGFkZCBnY2MgcHJpbnRmIGxpa2UgZnVuY3Rpb25zCisgICAgICBwYXJhbWV0ZXJzIGNoZWNraW5nIChNYXJjdXMgTWVpc3NuZXIpLjwvbGk+Cis8L3VsPjxoMz4yLjcuMjogT2N0IDMgMjAwODwvaDM+PHVsPjxsaT5Qb3J0YWJpbGl0eSBmaXg6IGZpeCBzb2xhcmlzIGNvbXBpbGF0aW9uIHByb2JsZW0sIGZpeCBjb21waWxhdGlvbgorICAgICAgICBpZiBYUGF0aCBpcyBub3QgY29uZmlndXJlZCBpbjwvbGk+CisgICAgPGxpPkJ1ZyBmaXhlczogbmFzdHkgZW50aXR5IGJ1ZyBpbnRyb2R1Y2VkIGluIDIuNy4wLCByZXN0b3JlIG9sZCBiZWhhdmlvdXIKKyAgICAgICAgd2hlbiBzYXZpbmcgYW4gSFRNTCBkb2Mgd2l0aCBhbiB4bWwgZHVtcCBmdW5jdGlvbiwgSFRNTCBVVEYtOCBwYXJzaW5nCisgICAgICAgIGJ1ZywgZml4IHJlYWRlciBjdXN0b20gZXJyb3IgaGFuZGxlcnMgKFJpY2NhcmRvIFNjdXNzYXQpCisgICAgPC9saT48bGk+SW1wcm92ZW1lbnQ6IHhtbFNhdmUgb3B0aW9ucyBmb3IgbW9yZSBmbGV4aWJpbGl0eSB0byBzYXZlIGFzCisgICAgICAgIFhNTC9IVE1ML1hIVE1MLCBoYW5kbGUgbGVhZGluZyBCT00gaW4gSFRNTCBkb2N1bWVudHM8L2xpPgorPC91bD48aDM+Mi43LjE6IFNlcCAxIDIwMDg8L2gzPjx1bD48bGk+UG9ydGFiaWxpdHkgZml4OiBCb3JsYW5kIEMgZml4IChNb3JpdHogQm90aCk8L2xpPgorICAgIDxsaT5CdWcgZml4ZXM6IHB5dGhvbiBzZXJpYWxpemF0aW9uIHdyYXBwZXJzLCBYUGF0aCBRTmFtZSBjb3JuZXIKKyAgICAgICAgY2FzZSBoYW5ka2luZyBhbmQgbGVha3MgKE1hcnRpbik8L2xpPgorICAgIDxsaT5JbXByb3ZlbWVudDogZXh0ZW5kIHRoZSB4bWxTYXZlIHRvIGhhbmRsZSBIVE1MIGRvY3VtZW50cyBhbmQgdHJlZXM8L2xpPgorICAgIDxsaT5DbGVhbnVwOiBweXRob24gc2VyaWFsaXphdGlvbiB3cmFwcGVyczwvbGk+Cis8L3VsPjxoMz4yLjcuMDogQXVnIDMwIDIwMDg8L2gzPjx1bD48bGk+RG9jdW1lbnRhdGlvbjogc3dpdGNoIENoYW5nZUxvZyB0byBVVEYtOCwgaW1wcm92ZSBtdXRpdGhyZWFkcyBhbmQKKyAgICAgIHhtbFBhcnNlckNsZWFudXAgZG9jczwvbGk+CisgIDxsaT5Qb3J0YWJpbGl0eSBmaXhlczogT2xkZXIgV2luMzIgcGxhdGZvcm1zIChSb2IgUmljaGFyZHMpLCBNU1ZDCisgICAgICBwb3J0aW5nIGZpeCAoUm9iIFJpY2hhcmRzKSwgTWFjIE9TIFggcmVncmVzc2lvbiB0ZXN0cyAoU3ZlbiBIZXJ6YmVyZyksCisgICAgICBub24gR05VQ0MgYnVpbGRzIChSb2IgUmljaGFyZHMpLCBjb21waWxhdGlvbiBvbiBIYWlrdSAoQW5kcmVhcyBGw6RyYmVyKQorICAgICAgPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogdmFyaW91cyByZWFsbG9jIHByb2JsZW1zIChBc2h3aW4pLCBwb3RlbnRpYWwgZG91YmxlLWZyZWUKKyAgICAgIChBc2h3aW4pLCByZWdleHAgY3Jhc2gsIGljcmFzaCB3aXRoIGludmFsaWQgd2hpdGVzcGFjZSBmYWNldHMgKFJvYgorICAgICAgUmljaGFyZHMpLCBwYXR0ZXJuIGZpeCB3aGVuIHN0cmVhbWluZyAoV2lsbGlhbSBCcmFjayksIHZhcmlvdXMgWE1MCisgICAgICBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGZpeGVzIGJhc2VkIG9uIHRoZSBXM0MgcmVncmVzc2lvbiB0ZXN0cywgcmVhZGVyCisgICAgICB0cmVlIHNraXBwaW5nIGZ1bmN0aW9uIGZpeCAoQXNod2luKSwgU2NoZW1hcyByZWdleHBzIGVzY2FwaW5nIGZpeAorICAgICAgKFZvbGtlciBHcmFic2NoKSwgaGFuZGxpbmcgb2YgZW50aXR5IHB1c2ggZXJyb3JzIChBc2h3aW4pLCBmaXggYSBzbG93ZG93bgorICAgICAgd2hlbiBlbmNvZGVyIGNhbnQgc2VyaWFsaXplIGNoYXJhY3RlcnMgb24gb3V0cHV0PC9saT4KKyAgPGxpPkNvZGUgY2xlYW51cDogY29tcGlsYXRpb24gZml4IHdpdGhvdXQgdGhlIHJlYWRlciwgd2l0aG91dCB0aGUgb3V0cHV0CisgICAgICAoUm9iZXJ0IFNjaHdlYmVsKSwgcHl0aG9uIHdoaXRlc3BhY2UgKE1hcnRpbiksIG1hbnkgc3BhY2UvdGFicyBjbGVhbnVwcywKKyAgICAgIHNlcmlvdXMgY2xlYW51cCBvZiB0aGUgZW50aXR5IGhhbmRsaW5nIGNvZGU8L2xpPgorICA8bGk+SW1wcm92ZW1lbnQ6IHN3aXRjaCBwYXJzZXIgdG8gWE1MLTEuMCA1dGggZWRpdGlvbiwgYWRkIHBhcnNpbmcgZmxhZ3MKKyAgICAgIGZvciBvbGQgdmVyc2lvbnMsIHN3aXRjaCBVUkkgcGFyc2luZyB0byBSRkMgMzk4NiwKKyAgICAgIGFkZCB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0IChIb2xnZXIgS2FlbGJlcmVyKSwKKyAgICAgIG5ldyBoYXNoaW5nIGZ1bmN0aW9ucyBmb3IgZGljdGlvbm5hcmllcyAoYmFzZWQgb24gU3RlZmFuIEJlaG5lbCB3b3JrKSwKKyAgICAgIGltcHJvdmUgaGFuZGxpbmcgb2YgbWlzcGxhY2VkIGh0bWwvaGVhZC9ib2R5IGluIEhUTUwgcGFyc2VyLCBiZXR0ZXIKKyAgICAgIHJlZ3Jlc3Npb24gdGVzdCB0b29scyBhbmQgY29kZSBjb3ZlcmFnZSBkaXNwbGF5LCBiZXR0ZXIgYWxnb3JpdGhtcworICAgICAgdG8gZGV0ZWN0IHZhcmlvdXMgdmVyc2lvbnMgb2YgdGhlIGJpbGxpb24gbGF1Z2h0cyBhdHRhY2tzLCBtYWtlCisgICAgICBhcmJpdHJhcnkgcGFyc2VyIGxpbWl0cyBhdm9pZGFibGUgYXMgYSBwYXJzZXIgb3B0aW9uPC9saT4KKzwvdWw+PGgzPjIuNi4zMjogQXByIDggMjAwODwvaDM+PHVsPjxsaT5Eb2N1bWVudGF0aW9uOiByZXR1cm5pbmcgaGVhcCBtZW1vcnkgdG8ga2VybmVsIChXb2xmcmFtIFNhbmcpLAorICAgICAgdHJ5aW5nIHRvIGNsYXJpZnkgeG1sQ2xlYW51cFBhcnNlcigpIHVzZSwgeG1sWFBhdGhDb250ZXh0IGltcHJvdmVtZW50CisgICAgICAoSmFjayBKYW5zZW4pLCBpbXByb3ZlIHRoZSAqUmVjb3ZlciogZnVuY3Rpb25zIGRvY3VtZW50YXRpb24sCisgICAgICBYbWxOb2RlVHlwZSBkb2MgbGluayBmaXggKE1hcnRpam4gQXJ0cyk8L2xpPgorICA8bGk+QnVnIGZpeGVzOiBpbnRlcm5hbCBzdWJzZXQgbWVtb3J5IGxlYWsgKEFzaHdpbiksIGF2b2lkIHByb2JsZW0gd2l0aAorICAgICAgcGF0aHMgc3RhcnRpbmcgd2l0aCAvLyAoUGV0ciBTdW1iZXJhKSwgc3RyZWFtaW5nIFhTRCB2YWxpZGF0aW9uIGNhbGxiYWNrCisgICAgICBwYXRjaGVzIChBc2h3aW4pLCBmaXggcmVkaXJlY3Rpb24gb24gcG9ydCBvdGhlciB0aGFuIDgwIChXaWxsaWFtIEJyYWNrKSwKKyAgICAgIFNBWDIgbGVhayAoQXNod2luKSwgWEluY2x1ZGUgZnJhZ21lbnQgb2Ygb3duIGRvY3VtZW50IChDaHJpcyBSeWFuKSwKKyAgICAgIHJlZ2V4cCBidWcgd2l0aCAnLicgKEFuZHJldyBUb3NoKSwgZmx1c2ggdGhlIHdyaXRlciBhdCB0aGUgZW5kIG9mIHRoZQorICAgICAgZG9jdW1lbnQgKEFsZnJlZCBNaWNrYXV0c2NoKSwgb3V0cHV0IEkvTyBidWcgZml4IChXaWxsaWFtIEJyYWNrKSwKKyAgICAgIHdyaXRlciBDREFUQSBvdXRwdXQgYWZ0ZXIgYSB0ZXh0IG5vZGUgKEFsZXggS2hlc2luKSwgVVRGLTE2IGVuY29kaW5nCisgICAgICBkZXRlY3Rpb24gKFdpbGxpYW0gQnJhY2spLCBmaXggaGFuZGxpbmcgb2YgZW1wdHkgQ0RBVEEgbm9kZXMgZm9yIFNhZmFyaQorICAgICAgdGVhbSwgcHl0aG9uIGJpbmRpbmcgcHJvYmxlbSB3aXRoIG5hbWVzcGFjZSBub2RlcywgaW1wcm92ZSBIVE1MIHBhcnNpbmcKKyAgICAgIChBcm5vbGQgSGVuZHJpa3MpLCByZWdleHAgYXV0b21hdGEgYnVpbGQgYnVnLCBtZW1vcnkgbGVhayBmaXggKFZhc2lseQorICAgICAgQ2hla2Fsa2luKSwgWFNEIHRlc3QgY3Jhc2gsIHdlaXJkIHN5c3RlbSBwYXJhbWV0ZXIgZW50aXR5IHBhcnNpbmcgcHJvYmxlbSwKKyAgICAgIGFsbG93IHNhdmUgdG8gZmlsZTovLy9YOi8gd2luZG93cyBwYXRocywgdmFyaW91cyBhdHRyaWJ1dGUgbm9ybWFsaXNhdGlvbgorICAgICAgcHJvYmxlbXMsIGV4dGVybmFsU3Vic2V0U3BsaXQgZml4IChBc2h3aW4pLCBhdHRyaWJ1dGUgcmVkZWZpbml0aW9uIGluCisgICAgICB0aGUgRFREIChBc2h3aW4pLCBmaXggaW4gY2hhciByZWYgcGFyc2luZyBjaGVjayAoQWxleCBLaGVzaW4pLCBtYW55CisgICAgICBvdXQgb2YgbWVtb3J5IGhhbmRsaW5nIGZpeGVzIChBc2h3aW4pLCBYUGF0aCBvdXQgb2YgbWVtb3J5IGhhbmRsaW5nIGZpeGVzCisgICAgICAoQWx2YXJvIEhlcnJlcmEpLCB2YXJpb3VzIHJlYWxsb2MgcHJvYmxlbXMgKEFzaHdpbiksIFVDUzQgZW5jb2RpbmcKKyAgICAgIGNvbnZlcnNpb24gYnVmZmVyIHNpemUgKENocmlzdGlhbiBGcnV0aCksIHByb2JsZW1zIHdpdGggRWF0TmFtZQorICAgICAgZnVuY3Rpb25zIG9uIG1lbW9yeSBlcnJvcnMsIEJPTSBoYW5kbGluZyBpbiBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMKKyAgICAgIChNYXJrIFJvd2UpPC9saT4KKyAgPGxpPkNvZGUgY2xlYW51cDogZml4IGJ1aWxkIHVuZGVyIFZTIDIwMDggKERhdmlkIFdpbXNleSksIHJlbW92ZSB1c2VsZXNzCisgICAgICBtdXRleCBpbiB4bWxEaWN0IChGbG9yZW50IEd1aWxpYW4pLCBNaW5ndzMyIGNvbXBpbGF0aW9uIGZpeCAoQ2FybG8KKyAgICAgIEJyYW1pbmkpLCBXaW4gYW5kIE1hY09TIEVPTCBjbGVhbnVwcyAoRmxvcmVudCBHdWlsaWFuaSksIGljb252IG5lZWQKKyAgICAgIGEgY29uc3QgZGV0ZWN0aW9uIChSb3VtZW4gUGV0cm92KSwgc2ltcGxpZnkgeG1sU2V0UHJvcCAoSnVsaWVuIENoYXJib24pLAorICAgICAgY3Jvc3MgY29tcGlsYXRpb24gZml4ZXMgZm9yIE1pbmd3IChSb3VtZW4gUGV0cm92KSwgU0NPIE9wZW5zZXJ2ZXIgYnVpbGQKKyAgICAgIGZpeCAoRmxvcmVudCBHdWlsaWFuaSksIGljb252IHVzZXMgY29uc3Qgb24gV2luMzIgKFJvYiBSaWNoYXJkcyksCisgICAgICBkdXBsaWNhdGUgY29kZSByZW1vdmFsIChBc2h3aW4pLCBtaXNzaW5nIG1hbGxvYyB0ZXN0IGFuZCBlcnJvciByZXBvcnRzCisgICAgICAoQXNod2luKSwgVk1TIG1ha2VmaWxlIGZpeCAoVHljaG8gSGlsaG9yc3QpPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogYmV0dGVyIHBsdWcgb2Ygc2NoZW1hdHJvbiBpbiB0aGUgbm9ybWFsIGVycm9yIGhhbmRsaW5nCisgICAgICAoVG9iaWFzIE1pbmljaCk8L2xpPgorPC91bD48aDM+Mi42LjMxOiBKYW4gMTEgMjAwODwvaDM+PHVsPjxsaT5TZWN1cml0eSBmaXg6IG1pc3Npbmcgb2YgY2hlY2tzIGluIFVURi04IHBhcnNpbmc8L2xpPgorICA8bGk+QnVnIGZpeGVzOiByZWdleHAgYnVnLCBkdW1wIGF0dHJpYnV0ZSBmcm9tIFhIVE1MIGRvY3VtZW50LCBmaXgKKyAgICAgIHhtbEZyZWUoTlVMTCkgdG8gbm90IGNyYXNoIGluIGRlYnVnIG1vZGUsIFNjaGVtYXRyb24gcGFyc2luZyBjcmFzaAorICAgICAgKFJvYiBSaWNoYXJkcyksIGdsb2JhbCBsb2NrIGZyZWUgb24gV2luZG93cyAoTWFyYy1BbnRvaW5lIFJ1ZWwpLAorICAgICAgWFNEIGNyYXNoIGR1ZSB0byBkb3VibGUgZnJlZSAoUm9iIFJpY2hhcmRzKSwgaW5kZW50YXRpb24gZml4IGluCisgICAgICB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQgKEZlbGlwZSBQZW5hKSwgZXJyb3IgaW4gYXR0cmlidXRlIHR5cGUKKyAgICAgIHBhcnNpbmcgaWYgYXR0cmlidXRlIHJlZGVjbGFyZWQsIGF2b2lkIGNyYXNoIGluIGhhc2ggbGlzdCBzY2FubmVyIGlmCisgICAgICBkZWxldGluZyBlbGVtZW50cywgY29sdW1uIGNvdW50ZXIgYnVnIGZpeCAoQ2hyaXN0aWFuIFNjaG1pZHQpLAorICAgICAgSFRNTCBlbWJlZCBlbGVtZW50IHNhdmluZyBmaXggKFN0ZWZhbiBCZWhuZWwpLCBhdm9pZCAtTC91c3IvbGliCisgICAgICBvdXRwdXQgZnJvbSB4bWwyLWNvbmZpZyAoRnJlZCBDcm96YXQpLCBhdm9pZCBhbiB4bWxsaW50IGNyYXNoIAorICAgICAgKFN0ZWZhbiBLb3N0KSwgZG9uJ3Qgc3RvcCBIVE1MIHBhcnNpbmcgb24gb3V0IG9mIHJhbmdlIGNoYXJzLgorICAgICAgPC9saT4KKyAgPGxpPkNvZGUgY2xlYW51cDogZml4IG9wZW4oKSBjYWxsIHRoaXJkIGFyZ3VtZW50LCByZWdleHAgY3V0J24gcGFzdGUKKyAgICAgIGNvcHkgZXJyb3IsIHVudXNlZCB2YXJpYWJsZSBpbiBfX3htbEdsb2JhbEluaXRNdXRleExvY2sgKEhhbm5lcyBFZGVyKSwKKyAgICAgIHNvbWUgbWFrZSBkaXN0Y2hlY2sgcmVhbHRlZCBmaXhlcyAoSm9obiBDYXJyKTwvbGk+CisgIDxsaT5JbXByb3ZlbWVudHM6IEhUVFAgSGVhZGVyOiBpbmNsdWRlcyBwb3J0IG51bWJlciAoV2lsbGlhbSBCcmFjayksCisgICAgICB0ZXN0VVJJIC0tZGVidWcgb3B0aW9uLCA8L2xpPgorPC91bD48aDM+Mi42LjMwOiBBdWcgMjMgMjAwNzwvaDM+PHVsPjxsaT5Qb3J0YWJpbGl0eTogU29sYXJpcyBjcmFzaCBvbiBlcnJvciBoYW5kbGluZywgd2luZG93cyBwYXRoIGZpeGVzCisgICAgICAoUm9sYW5kIFNjaHdhcnogYW5kIFJvYiBSaWNoYXJkcyksIG1pbmd3IGJ1aWxkIChSb2xhbmQgU2Nod2Fyeik8L2xpPgorICA8bGk+QnVnZml4ZXM6IHhtbFhQYXRoTm9kZVNldFNvcnQgcHJvYmxlbSAoV2lsbGlhbSBCcmFjayksIGxlYWsgd2hlbgorICAgICAgcmV1c2luZyBhIHdyaXRlciBmb3IgYSBuZXcgZG9jdW1lbnQgKERvZGppIFNla2V0ZWxpKSwgU2NoZW1hcworICAgICAgeHNpOm5pbCBoYW5kbGluZyBwYXRjaCAoRnJhbmsgR3Jvc3MpLCByZWxhdGl2ZSBVUkkgYnVpbGQgcHJvYmxlbQorICAgICAgKFBhdHJpayBGaW1tbCksIGNyYXNoIGluIHhtbERvY0Zvcm1hdER1bXAsIGludmFsaWQgY2hhciBpbiBjb21tZW50CisgICAgICBkZXRlY3Rpb24gYnVnLCBmaXggZGlzcGFyaXR5IHdpdGggeG1sU0FYVXNlclBhcnNlTWVtb3J5LCBhdXRvbWF0YQorICAgICAgZ2VuZXJhdGlvbiBmb3IgY29tcGxleCByZWdleHAgY291bnRzIHByb2JsZW1zLCBTY2hlbWFzIElEQyBpbXBvcnQKKyAgICAgIHByb2JsZW1zIChGcmFuayBHcm9zcyksIHhwYXRoIHByZWRpY2F0ZSBldmFpbGF0aW9uIGVycm9yIGhhbmRsaW5nCisgICAgICAoV2lsbGlhbSBCcmFjayk8L2xpPgorPC91bD48aDM+Mi42LjI5OiBKdW4gMTIgMjAwNzwvaDM+PHVsPjxsaT5Qb3J0YWJpbGl0eTogcGF0Y2hlcyBmcm9tIEFuZHJlYXMgU3RyaWNrZSBmb3IgV2luQ0VpLAorICAgICAgZml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzIChXaWxsaWFtIEJyYWNrKSwgYXZvaWQgd2FybmluZ3Mgb24gQXBwbGUgT1MvWAorICAgICAgKFdlbmR5IERveWxlIGFuZCBNYXJrIFJvd2UpLCBXaW5kb3dzIGNvbXBpbGF0aW9uIGFuZCB0aHJlYWRpbmcKKyAgICAgIGltcHJvdmVtZW50cyAoUm9iIFJpY2hhcmRzKSwgY29tcGlsYXRpb24gYWdhaW5zdCBvbGQgUHl0aG9uIHZlcnNpb25zLAorICAgICAgbmV3IEdOVSB0YXIgY2hhbmdlcyAoUnlhbiBIaWxsKTwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOiB4bWxVUklVbmVzY2FwZVN0cmluZyBjb21tZW50LCA8L2xpPgorICA8bGk+QnVnZml4ZXM6IHhtbEJ1ZmZlckFkZCBwcm9ibGVtIChSaWNoYXJkIEpvbmVzKSwgJ21ha2UgdmFsZ3JpbmQnCisgICAgICBmbGFnIGZpeCAoUmljaGFyZCBKb25lcyksIHJlZ2V4cCBpbnRlcnByZXRhdGlvbiBvZiBcLAorICAgICAgaHRtbENyZWF0ZURvY1BhcnNlckN0eHQgKEplYW4tRGFuaWVsIER1cGFzKSwgY29uZmlndXJlLmluCisgICAgICB0eXBvIChCam9ybiBSZWVzZSksIGVudGl0eSBjb250ZW50IGZhaWx1cmUsIHhtbExpc3RBcHBlbmQoKSBmaXgKKyAgICAgIChHZW9yZ2VzLUFuZHLDqSBTaWxiZXIpLCBYUGF0aCBudW1iZXIgc2VyaWFsaXphdGlvbiAoV2lsbGlhbSBCcmFjayksCisgICAgICBuYW5vaHR0cCBnemlwcGVkIHN0cmVhbSBmaXggKFdpbGxpYW0gQnJhY2sgYW5kIEFsZXggQ29ybmVqbyksCisgICAgICB4bWxDaGFyRW5jRmlyc3RMaW5lIHR5cG8gKE1hcmsgUm93ZSksIHVyaSBidWcgKEZyYW7Dp29pcyBEZWx5b24pLAorICAgICAgWFBhdGggc3RyaW5nIHZhbHVlIG9mIFBJIG5vZGVzIChXaWxsaWFtIEJyYWNrKSwgWFBhdGggbm9kZSBzZXQKKyAgICAgIHNvcnRpbmcgYnVncyAoV2lsbGlhbSBCcmFjayksIGF2b2lkIG91dHB1dHRpbmcgbmFtZXNwYWNlIGRlY2wKKyAgICAgIGR1cHMgaW4gdGhlIHdyaXRlciAoUm9iIFJpY2hhcmRzKSwgeG1sQ3R4dFJlc2V0IGJ1ZywgVVRGLTggZW5jb2RpbmcKKyAgICAgIGVycm9yIGhhbmRsaW5nLCByZWN1c3Rpb24gb24gbmV4dCBpbiBjYXRhbG9ncywgZml4IGEgUmVsYXgtTkcgY3Jhc2gsCisgICAgICB3b3JrYXJvdW5kIHdyb25nIGZpbGU6IFVSSXMsIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCBvbiBhdHRyaWJ1dGVzLAorICAgICAgaW52YWxpZCBjaGFyYWN0ZXIgaW4gYXR0cmlidXRlIGRldGVjdGlvbiBidWcsIGJpZyBjb21tZW50cyBiZWZvcmUgCisgICAgICBpbnRlcm5hbCBzdWJzZXQgc3RyZWFtaW5nIGJ1ZywgSFRNTCBwYXJzaW5nIG9mIGF0dHJpYnV0ZXMgd2l0aCA6IGluCisgICAgICB0aGUgbmFtZSwgSURuZXNzIG9mIG5hbWUgaW4gSFRNTCAoRGFnZmlubiBJLiBNYW5uc8Ola2VyKSA8L2xpPgorICA8bGk+SW1wcm92ZW1lbnQ6IGtlZXAgVVJJIHF1ZXJ5IHBhcnRzIGluIHJhdyBmb3JtIChSaWNoYXJkIEpvbmVzKSwKKyAgICAgIGVtYmVkIHRhZyBzdXBwb3J0IGluIEhUTUwgKE1pY2hhZWwgRGF5KSA8L2xpPgorPC91bD48aDM+Mi42LjI4OiBBcHIgMTcgMjAwNzwvaDM+PHVsPjxsaT5Eb2N1bWVudGF0aW9uOiBjb21tZW50IGZpeGVzIChNYXJrdXMgS2VpbSksIHhwYXRoIGNvbW1lbnRzIGZpeGVzIHRvbworICAgICAgKEphbWVzIERlbm5ldHQpPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogWFBhdGggYnVnIChXaWxsaWFtIEJyYWNrKSwgSFRNTCBwYXJzZXIgYXV0b2Nsb3NlIHN0YWNrIHVzYWdlCisgICAgICAoVXNhbWFoIE1hbGlrKSwgdmFyaW91cyByZWdleHAgYnVnIGZpeGVzIChEViBhbmQgV2lsbGlhbSksIHBhdGggY29udmVyc2lvbgorICAgICAgb24gV2luZG93cyAoSWdvciBabGF0a292aWMpLCBodG1sQ3R4dFJlc2V0IGZpeCAoTWljaGFlbCBEYXkpLCBYUGF0aAorICAgICAgcHJpbmNpcGFsIG5vZGUgb2YgYXhpcyBidWcsIEhUTUwgc2VyaWFsaXphdGlvbiBvZiBzb21lIGNvZGVwb2ludAorICAgICAgKFN0ZXZlbiBSYWlud2F0ZXIpLCB1c2VyIGRhdGEgcHJvcGFnYXRpb24gaW4gWEluY2x1ZGUgKE1pY2hhZWwgRGF5KSwKKyAgICAgIHN0YW5kYWxvbmUgYW5kIFhNTCBkZWNsIGRldGVjdGlvbiAoTWljaGFlbCBEYXkpLCBQeXRob24gaWQgb3VwdHV0CisgICAgICBmb3Igc29tZSBpZCwgZml4IHRoZSBiaWcgcHl0aG9uIHN0cmluZyBtZW1vcnkgbGVhaywgVVJJIHBhcnNpbmcgZml4ZXMKKyAgICAgIChTdMOpcGhhbmUgQmlkb3VsIGFuZCBXaWxsaWFtKSwgbG9uZyBjb21tZW50cyBwYXJzaW5nIGJ1ZyAoV2lsbGlhbSksCisgICAgICBjb25jdXJyZW50IHRocmVhZHMgaW5pdGlhbGl6YXRpb24gKFRlZCBQaGVscHMpLCBpbnZhbGlkIGNoYXIKKyAgICAgIGluIHRleHQgWEluY2x1ZGUgKFdpbGxpYW0pLCBYUGF0aCBtZW1vcnkgbGVhayAoV2lsbGlhbSksIHRhYiBpbgorICAgICAgcHl0aG9uIHByb2JsZW1zIChBbmRyZWFzIEhhbmtlKSwgWFBhdGggbm9kZSBjb21wYXJpc29uIGVycm9yCisgICAgICAoT2xlZyBQYXJhc2NoZW5rbyksIGNsZWFudXAgcGF0Y2ggZm9yIHJlYWRlciAoSnVsaWVuIFJlaWNoZWwpLAorICAgICAgWE1MIFNjaGVtYXMgYXR0cmlidXRlIGdyb3VwIChXaWxsaWFtKSwgSFRNTCBwYXJzaW5nIHByb2JsZW0gKFdpbGxpYW0pLAorICAgICAgZml4IGNoYXIgMHgyZCBpbiByZWdleHBzIChXaWxsaWFtKSwgcmVnZXhwIHF1YW50aWZpZXIgcmFuZ2Ugd2l0aAorICAgICAgbWluIG9jY3VycyBvZiAwIChXaWxsaWFtKSwgSFRNTCBzY3JpcHQvc3R5bGUgcGFyc2luZyAoTWlrZSBEYXkpPC9saT4KKyAgPGxpPkltcHJvdmVtZW50OiBtYWtlIHhtbFRleHRSZWFkZXJTZXR1cCgpIHB1YmxpYzwvbGk+CisgIDxsaT5Db21waWxhdGlvbiBhbmQgcG9zdGFiaWxpdHk6IGZpeCBhIG1pc3NpbmcgaW5jbHVkZSBwcm9ibGVtIChXaWxsaWFtKSwKKyAgICAgIF9fc3NfZmFtaWxseSBvbiBBSVggYWdhaW4gKEJqw7ZybiBXaWJlcmcpLCBjb21waWxhdGlvbiB3aXRob3V0IHpsaWIKKyAgICAgIChNaWNoYWVsIERheSksIGNhdGFsb2cgcGF0Y2ggZm9yIFdpbjMyIChDaHJpc3RpYW4gRWhybGljaGVyKSwKKyAgICAgIFdpbmRvd3MgQ0UgZml4ZXMgKEFuZHJlYXMgU3RyaWNrZSk8L2xpPgorICA8bGk+VmFyaW91cyBDVlMgdG8gU1ZOIGluZnJhc3RydWN0dXJlIGNoYW5nZXM8L2xpPgorPC91bD48aDM+Mi42LjI3OiBPY3QgMjUgMjAwNjwvaDM+PHVsPjxsaT5Qb3J0YWJpbGl0eSBmaXhlczogZmlsZSBuYW1lcyBvbiB3aW5kb3dzIChSb2xhbmQgU2Nod2luZ2VsLCAKKyAgICAgIEVtZWx5YW5vdiBBbGV4ZXkpLCB3aW5kb3dzIGNvbXBpbGUgZml4dXAgKFJvYiBSaWNoYXJkcyksIAorICAgICAgQUlYIGljb252KCkgaXMgYXBwYXJlbnRseSBjYXNlIHNlbnNpdGl2ZTwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IFB5dGhvbiBYUGF0aCB0eXBlcyBtYXBwaW5nIChOaWMgRmVycmllciksIFhQYXRoIG9wdGltaXphdGlvbgorICAgICAgKEthc2ltaWVyKSwgYWRkIHhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuIChLYXNpbWllciksIFB5dGhvbiBub2RlCisgICAgICBlcXVhbGl0eSBhbmQgY29tcGFyaXNvbiAoQW5kcmVhcyBQYWt1bGF0KSwgeG1sWFBhdGhDb2xsZWN0QW5kVGVzdAorICAgICAgaW1wcm92ZW1lbXQgKEthc2ltaWVyKSwgZXhwb3NlIGlmIGxpYnJhcnkgd2FzIGNvbXBpbGVkIHdpdGggemxpYiAKKyAgICAgIHN1cHBvcnQgKEFuZHJldyBOb3NlbmtvKSwgY2FjaGUgZm9yIHhtbFNjaGVtYUlEQ01hdGNoZXIgc3RydWN0cworICAgICAgKEthc2ltaWVyKSwgeG1sVGV4dENvbmNhdCBzaG91bGQgd29yayB3aXRoIGNvbW1lbnRzIGFuZCBQSXMgKFJvYgorICAgICAgUmljaGFyZHMpLCBleHBvcnQgaHRtbE5ld1BhcnNlckN0eHQgbmVlZGVkIGJ5IE1pY2hhZWwgRGF5LCByZWZhY3RvcmluZworICAgICAgb2YgY2F0YWxvZyBlbnRpdHkgbG9hZGVycyAoTWljaGFlbCBEYXkpLCBhZGQgWFBvaW50ZXIgc3VwcG9ydCB0byAKKyAgICAgIHB5dGhvbiBiaW5kaW5ncyAoUm9zcyBSZWVkc3Ryb20sIEJyaWFuIFdlc3QgYW5kIFN0ZWZhbiBBbmNhKSwgCisgICAgICB0cnkgdG8gc29ydCBvdXQgbW9zdCBmaWxlIHBhdGggdG8gVVJJIGNvbnZlcnNpb25zIGFuZCB4bWxQYXRoVG9VcmksCisgICAgICBhZGQgLS1odG1sIC0tbWVtb3J5IGNhc2UgdG8geG1sbGludDwvbGk+CisgIDxsaT5idWlsZGluZyBmaXg6IGZpeCAtLXdpdGgtbWluaW11bSAoRmVsaXBlIENvbnRyZXJhcyksIFZNUyBmaXgsIAorICAgICAgY29uc3QnaWZpY2F0aW9uIG9mIEhUTUwgcGFyc2VyIHN0cnVjdHVyZXMgKE1hdHRoaWFzIENsYXNlbiksCisgICAgICBwb3J0YWJpbGl0eSBmaXggKEVtZWx5YW5vdiBBbGV4ZXkpLCB3Z2V0IGF1dG9kZXRlY3Rpb24gKFBldGVyCisgICAgICBCcmVpdGVubG9obmVyKSwgIHJlbW92ZSB0aGUgYnVpbGQgcGF0aCByZWNvcmRlZCBpbiB0aGUgcHl0aG9uCisgICAgICBzaGFyZWQgbW9kdWxlLCBzZXBhcmF0ZSBsaWJyYXJ5IGZsYWdzIGZvciBzaGFyZWQgYW5kIHN0YXRpYyBidWlsZHMKKyAgICAgIChNaWtoYWlsIFphYmFsdWV2KSwgZml4IC0td2l0aC1taW5pbXVtIC0td2l0aC1zYXgxIGJ1aWxkcywgZml4CisgICAgICAtLXdpdGgtbWluaW11bSAtLXdpdGgtc2NoZW1hcyBidWlsZHM8L2xpPgorICA8bGk+YnVnIGZpeDogeG1sR2V0Tm9kZVBhdGggZml4IChLYXNpbWllciksIHhtbERPTVdyYXBBZG9wdE5vZGUgYW5kCisgICAgICBhdHRyaWJ1dGUgKEthc2ltaWVyKSwgY3Jhc2ggd2hlbiB1c2luZyB0aGUgcmVjb3ZlciBtb2RlLCAKKyAgICAgIHhtbFhQYXRoRXZhbEV4cHIgcHJvYmxlbSAoS2FzaW1pZXIpLCB4bWxYUGF0aENvbXBFeHByQWRkIGJ1ZyAoS2FzaW1pZXIpLAorICAgICAgbWlzc2luZyBkZXN0cnkgaW4geG1sRnJlZVJNdXRleCAoQW5kcmV3IE5vc2Vua28pLCBYTUwgU2NoZW1hcyBmaXhlcworICAgICAgKEthc2ltaWVyKSwgd2FybmluZyBvbiBlbnRpdGllcyBwcm9jZXNzaW5nLCBYSFRNTCBzY3JpcHQgYW5kIHN0eWxlCisgICAgICBzZXJpYWxpemF0aW9uIChLYXNpbWllciksIHB5dGhvbiBnZW5lcmF0b3IgZm9yIGxvbmcgdHlwZXMsIGJ1ZyBpbgorICAgICAgeG1sU2NoZW1hQ2xlYXJWYWxpZEN0eHQgKEJlcnRyYW5kIEZyaXRzY2gpLCB4bWxTY2hlbWFYUGF0aEV2YWx1YXRlCisgICAgICBhbGxvY2F0aW9uIGJ1ZyAoTWFydG9uIElsbGVzKSwgZXJyb3IgbWVzc2FnZSBlbmQgb2YgbGluZSAoUm9iIFJpY2hhcmRzKSwKKyAgICAgIGZpeCBhdHRyaWJ1dGUgc2VyaWFsaXphdGlvbiBpbiB3cml0ZXIgKFJvYiBSaWNoYXJkcyksIFBIUDQgRFREIHZhbGlkYXRpb24KKyAgICAgIGNyYXNoZXIsIHBhcnNlciBzYWZldHkgcGF0Y2ggKEJlbiBEYXJuZWxsKSwgX3ByaXZhdGUgY29udGV4dCBwcm9wYWdhdGlvbgorICAgICAgd2hlbiBwYXJzaW5nIGVudGl0aWVzICh3aXRoIE1pY2hhZWwgRGF5KSwgZml4IGVudGl0aWVzIGJlaGF2aW91ciB3aGVuIAorICAgICAgdXNpbmcgU0FYLCBVUkkgdG8gZmlsZSBwYXRoIGZpeCAoTWlraGFpbCBaYWJhbHVldiksIGRpc2FwZWFyaW5nIHZhbGlkaXR5CisgICAgICBjb250ZXh0LCBhcmcgZXJyb3IgaW4gU0FYIGNhbGxiYWNrIChNaWtlIEhvbW1leSksIGZpeCBtaXhlZC1jb250ZW50CisgICAgICBhdXRvZGV0ZWN0IHdoZW4gdXNpbmcgLS1ub2JsYW5rcywgZml4IHhtbElPUGFyc2VEVEQgZXJyb3IgaGFuZGxpbmcsCisgICAgICBmaXggYnVnIGluIHhtbFNwbGl0UU5hbWUgb24gc3BlY2lhbCBOYW1lcywgZml4IFJlbGF4LU5HIGVsZW1lbnQgY29udGVudAorICAgICAgdmFsaWRhdGlvbiBidWcsIGZpeCB4bWxSZWNvbmNpbGlhdGVOcyBidWcsIGZpeCBwb3RlbnRpYWwgYXR0cmlidXRlIAorICAgICAgWE1MIHBhcnNpbmcgYnVnLCBmaXggbGluZS9jb2x1bW4gYWNjb3VudGluZyBpbiBYTUwgcGFyc2VyLCBjaHVua2luZyBidWcKKyAgICAgIGluIHRoZSBIVE1MIHBhcnNlciBvbiBzY3JpcHQsIHRyeSB0byBkZXRlY3Qgb2J2aW91c2x5IGJ1Z2d5IEhUTUwKKyAgICAgIG1ldGEgZW5jb2RpbmcgaW5kaWNhdGlvbnMsIGJ1Z3Mgd2l0aCBlbmNvZGluZyBCT00gYW5kIHhtbFNhdmVEb2MsIAorICAgICAgSFRNTCBlbnRpdGllcyBpbiBhdHRyaWJ1dGVzIHBhcnNpbmcsIEhUTUwgbWluaW1pemVkIGF0dHJpYnV0ZSB2YWx1ZXMsCisgICAgICBodG1sUmVhZERvYyBhbmQgaHRtbFJlYWRJTyB3ZXJlIGJyb2tlbiwgZXJyb3IgaGFuZGxpbmcgYnVnIGluCisgICAgICB4bWxYUGF0aEV2YWxFeHByZXNzaW9uIChPbGFmIFdhbGtvd2lhayksIGZpeCBhIHByb2JsZW0gaW4KKyAgICAgIGh0bWxDdHh0VXNlT3B0aW9ucywgeG1sTmV3SW5wdXRGcm9tRmlsZSBjb3VsZCBsZWFrIChNYXJpdXMgS29uaXR6ZXIpLAorICAgICAgYnVnIG9uIG1pc2Zvcm1lZCBTU0QgcmVnZXhwcyAoQ2hyaXN0b3BoZXIgQm91bWVub3QpCisgICAgICA8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbjogd2FybmluZyBhYm91dCBYTUxfUEFSU0VfQ09NUEFDVCAoS2FzaW1pZXIgQnVjaGNpayksCisgICAgICBmaXggeG1sWFBhdGhDYXN0VG9TdHJpbmcgZG9jdW1lbnRhdGlvbiwgaW1wcm92ZSBtYW4gcGFnZXMgZm9yCisgICAgICB4bWxsaXRuIGFuZCB4bWxjYXRhbG9nIChEYW5pZWwgTGVpZGVydCksIGZpeGVkIGNvbW1lbnRzIG9mIGEgZmV3CisgICAgICBmdW5jdGlvbnM8L2xpPgorPC91bD48aDM+Mi42LjI2OiBKdW4gNiAyMDA2PC9oMz48dWw+PGxpPnBvcnRhYmlsaXR5IGZpeGVzOiBQeXRob24gZGV0ZWN0aW9uIChKb3NlcGggU2FjY28pLCBjb21waWxhdGlvbgorICAgIGVycm9yKFdpbGxpYW0gQnJhY2sgYW5kIEdyYWhhbSBCZW5uZXR0KSwgTHlueE9TIHBhdGNoIChPbGxpIFNhdmlhKTwvbGk+CisgIDxsaT5idWcgZml4ZXM6IGVuY29kaW5nIGJ1ZmZlciBwcm9ibGVtLCBtaXggb2YgY29kZSBhbmQgZGF0YSBpbgorICAgIHhtbElPLmMoS2phcnRhbiBNYXJhYXMpLCBlbnRpdGllcyBpbiBYU0QgdmFsaWRhdGlvbiAoS2FzaW1pZXIgQnVjaGNpayksCisgICAgdmFyaW91c1hTRCB2YWxpZGF0aW9uIGZpeGVzIChLYXNpbWllciksIG1lbW9yeSBsZWFrIGluIHBhdHRlcm4gKFJvYgorICAgIFJpY2hhcmRzIGFuZEthc2ltaWVyKSwgYXR0cmlidXRlIHdpdGggY29sb24gaW4gbmFtZSAoUm9iIFJpY2hhcmRzKSwgWFBhdGgKKyAgICBsZWFrIGluZXJyb3IgcmVwb3J0aW5nIChBbGVrc2V5IFNhbmluKSwgWEluY2x1ZGUgdGV4dCBpbmNsdWRlIG9mCisgICAgc2VsZmRvY3VtZW50LjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IFhwYXRoIG9wdGltaXphdGlvbnMgKEthc2ltaWVyKSwgWFBhdGggb2JqZWN0CisgICAgY2FjaGUoS2FzaW1pZXIpPC9saT4KKzwvdWw+PGgzPjIuNi4yNTogSnVuIDYgMjAwNjo8L2gzPjxwPkRvIG5vdCB1c2Ugb3IgcGFja2FnZSAyLjYuMjU8L3A+PGgzPjIuNi4yNDogQXByIDI4IDIwMDY8L2gzPjx1bD48bGk+UG9ydGFiaWxpdHkgZml4ZXM6IGNvbmZpZ3VyZSBvbiBXaW5kb3dzLCB0ZXN0YXBpIGNvbXBpbGUgb24gd2luZG93cworICAgICAgKEthc2ltaWVyIEJ1Y2hjaWssIHZlbmthdCBuYWlkdSksIEJvcmxhbmQgQysrIDYgY29tcGlsZSAoRXJpYyBadXJjaGVyKSwKKyAgICAgIEhQLVVYIGNvbXBpbGVyIHdvcmthcm91bmQgKFJpY2sgSm9uZXMpLCB4bWwyLWNvbmZpZyBidWdmaXgsIGdjYy00LjEKKyAgICAgIGNsZWFudXBzLCBQeXRob24gZGV0ZWN0aW9uIHNjaGVtZSAoSm9zZXBoIFNhY2NvKSwgVVRGLTggZmlsZSBwYXRocyBvbgorICAgICAgV2luZG93cyAoUm9sYW5kIFNjaHdpbmdlbCkuCisgICAgICA8L2xpPgorICA8bGk+SW1wcm92ZW1lbnRzOiB4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyB4bWxET01XcmFwQ2xvbmVOb2RlIChLYXNpbWllcgorICAgICAgQnVjaGNpayksIFhNTCBjYXRhbG9nIGRlYnVnZ2luZyAoUmljayBKb25lcyksIHVwZGF0ZSB0byBVbmljb2RlIDQuMDEuPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogeG1sUGFyc2VDaHVuaygpIHByb2JsZW0gaW4gMi42LjIzLCB4bWxQYXJzZUluTm9kZUNvbnRleHQoKQorICAgICAgb24gSFRNTCBkb2NzLCBVUkkgYmVoYXZpb3VyIG9uIFdpbmRvd3MgKFJvYiBSaWNoYXJkcyksIGNvbW1lbnQgc3RyZWFtaW5nCisgICAgICBidWcsIHhtbFBhcnNlQ29tbWVudCAod2l0aCBXaWxsaWFtIEJyYWNrKSwgcmVnZXhwIGJ1ZyBmaXhlcyAoRFYgJmFtcDsKKyAgICAgIFlvdXJpIEdvbG92YW5vdiksIHhtbEdldE5vZGVQYXRoIG9uIHRleHQvQ0RBVEEgKEthc2ltaWVyKSwKKyAgICAgIG9uZSBSZWxheC1ORyBpbnRlcmxlYXZlIGJ1ZywgeG1sbGludCAtLXBhdGggYW5kIC0tdmFsaWQsCisgICAgICBYU0QgYnVnZml4ZXMgKEthc2ltaWVyKSwgcmVtb3ZlIGRlYnVnCisgICAgICBsZWZ0IGluIFB5dGhvbiBiaW5kaW5ncyAoTmljIEZlcnJpZXIpLCB4bWxDYXRhbG9nQWRkIGJ1ZyAoTWFydGluIENvbGUpLAorICAgICAgeG1sU2V0UHJvcCBmaXhlcyAoUm9iIFJpY2hhcmRzKSwgSFRNTCBJRG5lc3MgKFJvYiBSaWNoYXJkcyksIGEgbGFyZ2UKKyAgICAgIG51bWJlciBvZiBjbGVhbnVwcyBhbmQgc21hbGwgZml4ZXMgYmFzZWQgb24gQ292ZXJpdHkgcmVwb3J0cywgYnVnCisgICAgICBpbiBjaGFyYWN0ZXIgcmFuZ2VzLCBVbmljb2RlIHRhYmxlcyBjb25zdCAoQWl2YXJzIEthbHZhbnMpLCBzY2hlbWFzCisgICAgICBmaXggKFN0ZWZhbiBLb3N0KSwgeG1sUmVsYXhOR1BhcnNlIGVycm9yIGRlYWxsb2NhdGlvbiwgCisgICAgICB4bWxTY2hlbWFBZGRTY2hlbWFEb2MgZXJyb3IgZGVhbGxvY2F0aW9uLCBlcnJvciBoYW5kbGluZyBvbiB1bmFsbG93ZWQKKyAgICAgIGNvZGUgcG9pbnQsIGl4bWxsaW50IC0tbm9uZXQgdG8gbmV2ZXIgcmVhY2ggdGhlIG5ldCAoR2FyeSBDb2FkeSksCisgICAgICBsaW5lIGJyZWFrIGluIHdyaXRlciBhZnRlciBlbmQgUEkgKEphc29uIFZpZXJzKS4gPC9saT4KKyAgPGxpPkRvY3VtZW50YXRpb246IG1hbiBwYWdlcyB1cGRhdGVzIGFuZCBjbGVhbnVwcyAoRGFuaWVsIExlaWRlcnQpLjwvbGk+CisgIDxsaT5OZXcgZmVhdHVyZXM6IFJlbGF4IE5HIHN0cnVjdHVyZSBlcnJvciBoYW5kbGVycy48L2xpPgorPC91bD48aDM+Mi42LjIzOiBKYW4gNSAyMDA2PC9oMz48dWw+PGxpPnBvcnRhYmlsaXR5IGZpeGVzOiBXaW5kb3dzIChSb2IgUmljaGFyZHMpLCBnZXRhZGRyaW5mbyBvbiBXaW5kb3dzCisgICAgKEtvbGphIE5vd2FrLCBSb2IgUmljaGFyZHMpLCBpY2Mgd2FybmluZ3MgKEtqYXJ0YW4gTWFyYWFzKSwKKyAgICAtLXdpdGgtbWluaW11bSBjb21waWxhdGlvbiBmaXhlcyAoV2lsbGlhbSBCcmFjayksIGVycm9yIGNhc2UgaGFuZGxpbmcgZml4CisgICAgb24gU29sYXJpcyAoQWxiZXJ0IENoaW4pLCBkb24ndCB1c2UgJ2xpc3QnIGFzIHBhcmFtZXRlciBuYW1lIHJlcG9ydGVkIGJ5CisgICAgU2FtdWVsIERpYXogR2FyY2lhLCBtb3JlIG9sZCBVbmljZXMgcG9ydGFiaWxpdHkgZml4ZXMgKEFsYmVydCBDaGluKSwKKyAgICBNaW5HVyBjb21waWxhdGlvbiAoTWFyayBKdW5rZXIpLCBIUC1VWCBjb21waWxlciB3YXJuaW5ncyAoUmljaworICBKb25lcyksPC9saT4KKyAgPGxpPmNvZGUgY2xlYW51cDogeG1sUmVwb3J0RXJyb3IgKEFkcmlhbiBNb3VhdCksIHJlbW92ZSB4bWxCdWZmZXJDbG9zZQorICAgIChHZWVydCBKYW5zZW4pLCB1bnJlYWNoYWJsZSBjb2RlIChPbGVrc2FuZHIgS29ub25lbmtvKSwgcmVmYWN0b3JpbmcKKyAgICBwYXJzaW5nIGNvZGUgKEJqb3JuIFJlZXNlKTwvbGk+CisgIDxsaT5idWcgZml4ZXM6IHhtbEJ1aWxkUmVsYXRpdmVVUkkgYW5kIGVtcHR5IHBhdGggKFdpbGxpYW0gQnJhY2spLAorICAgIGNvbWJpbmF0b3J5IGV4cGxvc2lvbiBhbmQgcGVyZm9ybWFuY2VzIGluIHJlZ2V4cCBjb2RlLCBsZWFrIGluCisgICAgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcoKSwgeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMgcHJvYmxlbSAoTWFzc2ltbworICAgIE1vcmFyYSksIElkZW50aXR5IENvbnN0cmFpbnRzIGJ1Z3MgYW5kIGEgc2VnZmF1bHQgKEthc2ltaWVyIEJ1Y2hjaWspLAorICAgIFhQYXRoIHBhdHRlcm4gYmFzZWQgZXZhbHVhdGlvbiBidWdzIChEViAmYW1wOyBLYXNpbWllciksCisgICAgeG1sU2NoZW1hQ29udGVudE1vZGVsRHVtcCgpIG1lbW9yeSBsZWFrIChLYXNpbWllciksIHBvdGVudGlhbCBsZWFrIGluCisgICAgeG1sU2NoZW1hQ2hlY2tDU2VsZWN0b3JYUGF0aCgpLCB4bWxUZXh0V3JpdGVyVlNwcmludGYoKSBtaXN1c2Ugb2YKKyAgICB2c25wcmludGYgKFdpbGxpYW0gQnJhY2spLCBYSFRNTCBzZXJpYWxpemF0aW9uIGZpeCAoUm9iIFJpY2hhcmRzKSwgQ1JMRgorICAgIHNwbGl0IHByb2JsZW0gKFdpbGxpYW0pLCBpc3N1ZXMgd2l0aCBub24tbmFtZXNwYWNlZCBhdHRyaWJ1dGVzIGluCisgICAgeG1sQWRkQ2hpbGQoKSB4bWxBZGROZXh0U2libGluZygpIGFuZCB4bWxBZGRQcmV2U2libGluZygpIChSb2IgUmljaGFyZHMpLAorICAgIEhUTUwgcGFyc2luZyBvZiBzY3JpcHQsIFB5dGhvbiBtdXN0IG5vdCBvdXRwdXQgdG8gc3Rkb3V0IChOaWMgRmVycmllciksCisgICAgZXhjbHVzaXZlIEMxNE4gbmFtZXNwYWNlIHZpc2liaWxpdHkgKEFsZWtzZXkgU2FuaW4pLCBYU0QgZGF0YXlwZQorICAgIHRvdGFsRGlnaXRzIGJ1ZyAoS2FzaW1pZXIgQnVjaGNpayksIGVycm9yIGhhbmRsaW5nIHdoZW4gd3JpdGluZyB0byBhbgorICAgIHhtbEJ1ZmZlciAoUm9iIFJpY2hhcmRzKSwgcnVudGVzdCBzY2hlbWFzIGVycm9yIG5vdCByZXBvcnRlZCAoSGlzYXNoaQorICAgIEZ1amluYWthKSwgc2lnbmVkL3Vuc2lnbmVkIHByb2JsZW0gaW4gZGF0ZS90aW1lIGNvZGUgKEFsYmVydCBDaGluKSwgZml4CisgICAgWFNJIGRyaXZlbiBYU0QgdmFsaWRhdGlvbiAoS2FzaW1pZXIpLCBwYXJzaW5nIG9mIHhzOmRlY2ltYWwgKEthc2ltaWVyKSwKKyAgICBmaXggRFREIHdyaXRlciBvdXRwdXQgKFJvYiBSaWNoYXJkcyksIGxlYWsgaW4geG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbAorICAgIChHYXJ5IENvYWR5KSwgcmVnZXhwIGJ1ZyBhZmZlY3Rpbmcgc2NoZW1hcyAoS2FzaW1pZXIpLCBjb25maWd1cmF0aW9uIG9mCisgICAgcnVudGltZSBkZWJ1Z2dpbmcgKEthc2ltaWVyKSwgeG1sTm9kZUJ1ZkdldENvbnRlbnQgYnVnIG9uIGVudGl0eSByZWZzCisgICAgKE9sZWtzYW5kciBLb25vbmVua28pLCB4bWxSZWdFeGVjUHVzaFN0cmluZzIgYnVnIChTcmVlbmkgTmFpciksCisgICAgY29tcGlsYXRpb24gYW5kIGJ1aWxkIGZpeGVzIChNaWNoYWVsIERheSksIHJlbW92ZWQgZGVwZW5kYW5jaWVzIG9uCisgICAgeG1sU2NoZW1hVmFsaWRFcnJvciAoS2FzaW1pZXIpLCBidWcgd2l0aCAmbHQ7eG1sOmZvby8mZ3Q7LCBtb3JlIFhQYXRoCisgICAgcGF0dGVybiBiYXNlZCBldmFsdWF0aW9uIGZpeGVzIChLYXNpbWllcik8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBYU0QgU2NoZW1hcyByZWRlZmluaXRpb25zL3Jlc3RyaWN0aW9ucyAoS2FzaW1pZXIKKyAgICBCdWNoY2lrKSwgbm9kZSBjb3B5IGNoZWNrcyBhbmQgZml4IGZvciBhdHRyaWJ1dGUgKFJvYiBSaWNoYXJkcyksIGNvdW50ZWQKKyAgICB0cmFuc2l0aW9uIGJ1ZyBpbiByZWdleHBzLCBjdHh0LSZndDtzdGFuZGFsb25lID0gLTIgdG8gaW5kaWNhdGUgbm8KKyAgICBzdGFuZGFsb25lIGF0dHJpYnV0ZSB3YXMgZm91bmQsIGFkZCB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKCkKKyAgICAoS2FzaW1pZXIgQnVjaGNpayksIGFkZCB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0KCkgdG8gQVBJCisgICAgKEthc2ltaWVyKSwgaGFuZGxlIGd6aXBwZWQgSFRUUCByZXNvdXJjZXMgKEdhcnkgQ29hZHkpLCBhZGQKKyAgICBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdC4gKFJvYiBSaWNoYXJkcyksPC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb246IHR5cG8gKE1pY2hhZWwgRGF5KSwgbGlieG1sIG1hbiBwYWdlIChBbGJlcnQgQ2hpbiksIHNhdmUKKyAgICBmdW5jdGlvbiB0byBYTUwgYnVmZmVyIChHZWVydCBKYW5zZW4pLCBzbWFsbCBkb2MgZml4IChBcm9uIFN0YW5zdmlrKSw8L2xpPgorPC91bD48aDM+Mi42LjIyOiBTZXAgMTIgMjAwNTwvaDM+PHVsPjxsaT5idWlsZCBmaXhlczogY29tcGlsZSB3aXRob3V0IHNjaGVtYXRyb24gKFN0w6lwaGFuZSBCaWRvdWwpPC9saT4KKyAgPGxpPmJ1ZyBmaXhlczogeG1sRGVidWdEdW1wTm9kZSBvbiBuYW1lc3BhY2Ugbm9kZSAoT2xlZyBQYXJhc2NoZW5rbylpLAorICAgIENEQVRBIHB1c2ggcGFyc2VyIGJ1ZywgeG1sRWxlbUR1bXAgcHJvYmxlbSB3aXRoIFhIVE1MMSBkb2MsCisgICAgWE1MX0ZFQVRVUkVfeHh4IGNsYXNoIHdpdGggZXhwYXQgaGVhZGVycyByZW5hbWVkIFhNTF9XSVRIX3h4eCwgZml4IHNvbWUKKyAgICBvdXRwdXQgZm9ybWF0dGluZyBmb3IgbWV0YSBlbGVtZW50IChSb2IgUmljaGFyZHMpLCBzY3JpcHQgYW5kIHN0eWxlCisgICAgWEhUTUwxIHNlcmlhbGl6YXRpb24gKERhdmlkIE1hZG9yZSksIEF0dHJpYnV0ZSBkZXJpdmF0aW9uIGZpeHVwcyBpbiBYU0QKKyAgICAoS2FzaW1pZXIgQnVjaGNpayksIGJldHRlciBJREMgZXJyb3IgcmVwb3J0cyAoS2FzaW1pZXIgQnVjaGNpayk8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBhZGQgWE1MX1NBVkVfTk9fRU1QVFkgeG1sU2F2ZU9wdGlvbiAoUm9iIFJpY2hhcmRzKSwgYWRkCisgICAgWE1MX1NBVkVfTk9fWEhUTUwgeG1sU2F2ZU9wdGlvbiwgWE1MIFNjaGVtYXMgaW1wcm92ZW1lbnRzIHByZXBhcmluZyBmb3IKKyAgICBkZXJpdmUgKEthc2ltaWVyIEJ1Y2hjaWspLjwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiBnZW5lcmF0aW9uIG9mIGd0ay1kb2MgbGlrZSBkb2NzLCBpbnRlZ3JhdGlvbiB3aXRoCisgICAgZGV2aGVscC48L2xpPgorPC91bD48aDM+Mi42LjIxOiBTZXAgNCAyMDA1PC9oMz48dWw+PGxpPmJ1aWxkIGZpeGVzOiBDeWd3aW4gcG9ydGFiaWxpdHkgZml4ZXMgKEdlcnJpdCBQLiBIYWFzZSksIGNhbGxpbmcKKyAgICBjb252ZW50aW9uIHByb2JsZW1zIG9uIFdpbmRvd3MgKE1hcmN1cyBCb2VyZ2VyKSwgY2xlYW51cHMgYmFzZWQgb24gTGludXMnCisgICAgc3BhcnNlIHRvb2wsIHVwZGF0ZSBvZiB3aW4zMi9jb25maWd1cmUuanMgKFJvYiBSaWNoYXJkcyksIHJlbW92ZSB3YXJuaW5ncworICAgIG9uIFdpbmRvd3MoTWFyY3VzIEJvZXJnZXIpLCBjb21waWxhdGlvbiB3aXRob3V0IFNBWDEsIGRldGVjdGlvbiBvZiB0aGUKKyAgICBQeXRob24gYmluYXJ5LCB1c2UgJEdDQyBpbmVzdGFkIG9mICRDQyA9ICdnY2MnIChBbmRyZXcgVy4gTm9zZW5rbyksCisgICAgY29tcGlsYXRpb24vbGluayB3aXRoIHRocmVhZHMgYW5kIG9sZCBnY2MsIGNvbXBpbGUgcHJvYmxlbSBieSBDMzcwIG9uCisgICAgWi9PUyw8L2xpPgorICA8bGk+YnVnIGZpeGVzOiBodHRwX3Byb3h5IGVudmlyb25tZW50cyAoUGV0ZXIgQnJlaXRlbmxvaG5lciksIEhUTUwgVVRGLTgKKyAgICBidWcgKEppcmkgTmV0b2xpY2t5KSwgWFBhdGggTmFOIGNvbXBhcmUgYnVnIChXaWxsaWFtIEJyYWNrKSwKKyAgICBodG1sUGFyc2VTY3JpcHQgcG90ZW50aWFsIGJ1ZywgU2NoZW1hcyByZWdleHAgaGFuZGxpbmcgb2Ygc3BhY2VzLCBCYXNlNjQKKyAgICBTY2hlbWFzIGNvbXBhcmlzb25zIE5JU1QgcGFzc2VzLCBhdXRvbWF0YSBidWlsZCBlcnJvciB4c2Q6YWxsLAorICAgIHhtbEdldE5vZGVQYXRoIGZvciBuYW1lc3BhY2VkIGF0dHJpYnV0ZXMgKEFsZXhhbmRlciBQb2hveWRhKSwgeG1sU2NoZW1hcworICAgIGZvcmVpZ24gbmFtZXNwYWNlcyBoYW5kbGluZywgWE1MIFNjaGVtYXMgZmFjZXQgY29tcGFyaXNvbiAoS3Vwcml5YW5vdgorICAgIEFuYXRvbGlqKSwgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIgZXJyb3IgcmVwb3J0IChLYXNpbWllciBCdWNoY2lrKSwgeG1sOgorICAgIG5hbWVzcGFjZSBhaG5kbGluZyBpbiBTY2hlbWFzIChLYXNpbWllciksIGVtcHR5IG1vZGVsIGdyb3VwIGluIFNjaGVtYXMKKyAgICAoS2FzaW1pZXIpLCB3aWxjYXJkIGluIFNjaGVtYXMgKEthc2ltaWVyKSwgVVJJIGNvbXBvc2l0aW9uIChXaWxsaWFtKSwKKyAgICB4czphbnlUeXBlIGluIFNjaGVtYXMgKEthc2ltaWVyKSwgUHl0aG9uIHJlc29sdmVyIGVtbWl0dGluZyBlcnJvcgorICAgIG1lc3NhZ2VzIGRpcmVjdGx5LCBQeXRob24geG1sQXR0ci5wYXJlbnQgKEpha3ViIFBpb3RyIENsYXBhKSwgdHJ5aW5nIHRvCisgICAgZml4IHRoZSBmaWxlIHBhdGgvVVJJIGNvbnZlcnNpb24sIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUgZml4IChSb2IKKyAgICBSaWNoYXJkcyksIHhtbFNjaGVtYUZyZWVBbm5vdCBtZW1sZWFrIChLYXNpbWllciksIEhUTUwgVVRGLTgKKyAgICBzZXJpYWxpemF0aW9uLCBzdHJlYW1pbmcgWFBhdGgsIFNjaGVtYXMgZGV0ZXJtaW5pc20gZGV0ZWN0aW9uIHByb2JsZW0sCisgICAgWEluY2x1ZGUgYnVnLCBTY2hlbWFzIGNvbnRleHQgdHlwZSAoRGVhbiBIaWxsKSwgdmFsaWRhdGlvbiBmaXggKERlcmVrCisgICAgUG9vbiksIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVbTnNdIG5hbWVzcGFjZXMgKFJvYiBSaWNoYXJkcyksIFNjaGVtYXMKKyAgICB0eXBlIGZpeCAoS3ViYSBOb3dha293c2tpKSwgVVRGLTggcGFyc2VyIGJ1ZywgZXJyb3IgaW4gZW5jb2RpbmcgaGFuZGxpbmcsCisgICAgeG1sR2V0TGluZU5vIGZpeGVzLCBidWcgb24gZW50aXRpZXMgaGFuZGxpbmcsIGVudGl0eSBuYW1lIGV4dHJhY3Rpb24gaW4KKyAgICBlcnJvciBoYW5kbGluZyB3aXRoIFhJbmNsdWRlLCB0ZXh0IG5vZGVzIGluIEhUTUwgYm9keSB0YWdzIChHYXJ5IENvYWR5KSwKKyAgICB4bWw6aWQgYW5kIElEbmVzcyBhdCB0aGUgdHJlZWUgbGV2ZWwgZml4ZXMsIFhQYXRoIHN0cmVhbWluZyBwYXR0ZXJucworICBidWdzLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IHN0cnVjdHVyZWQgaW50ZXJmYWNlcyBmb3Igc2NoZW1hcyBhbmQgUk5HIGVycm9yIHJlcG9ydHMKKyAgICAoTWFyY3VzIEJvZXJnZXIpLCBvcHRpbWl6YXRpb24gb2YgdGhlIGNoYXIgZGF0YSBpbm5lciBsb29wIHBhcnNpbmcKKyAgICAodGhhbmtzIHRvIEJlaGRhZCBFc2ZhaGJvZCBmb3IgdGhlIGlkZWEpLCBzY2hlbWF0cm9uIHZhbGlkYXRpb24gdGhvdWdoCisgICAgbm90IGZpbmlzaGVkIHlldCwgeG1sU2F2ZU9wdGlvbiB0byBvbWl0IFhNTCBkZWNsYXJhdGlvbiwga2V5cmVmIG1hdGNoCisgICAgZXJyb3IgcmVwb3J0cyAoS2FzaW1pZXIpLCBmb3JtYWwgZXhwcmVzc2lvbiBoYW5kbGluZyBjb2RlIG5vdCBwbHVnZ2VkCisgICAgeWV0LCBtb3JlIGxheCBtb2RlIGZvciB0aGUgSFRNTCBwYXJzZXIsIHBhcnNlciBYTUxfUEFSU0VfQ09NUEFDVCBvcHRpb24KKyAgICBmb3IgdGV4dCBub2RlcyBhbGxvY2F0aW9uLjwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiB4bWxsaW50IG1hbiBwYWdlIGhhZCAtLW5vbmV0IGR1cGxpY2F0ZWQ8L2xpPgorPC91bD48aDM+Mi42LjIwOiBKdWwgMTAgMjAwNTwvaDM+PHVsPjxsaT5idWlsZCBmaXhlczogV2luZG93cyBidWlsZCAoUm9iIFJpY2hhcmRzKSwgTWluZ3cgY29tcGlsYXRpb24gKElnb3IKKyAgICBabGF0a292aWMpLCBXaW5kb3dzIE1ha2VmaWxlIChJZ29yKSwgZ2NjIHdhcm5pbmdzIChLYXNpbWllciBhbmQKKyAgICBhbmRyaXlAZ29vZ2xlLmNvbSksIHVzZSBnY2Mgd2VhayByZWZlcmVuY2VzIHRvIHB0aHJlYWQgdG8gYXZvaWQgdGhlCisgICAgcHRocmVhZCBkZXBlbmRhbmN5IG9uIExpbnV4LCBjb21waWxhdGlvbiBwcm9ibGVtIChTdGV2ZSBOYWlybiksIGNvbXBpbGluZworICAgIG9mIHN1YnNldCAoTW9ydGVuIFdlbGluZGVyKSwgSVB2Ni9zc19mYW1pbHkgY29tcGlsYXRpb24gKFdpbGxpYW0gQnJhY2spLAorICAgIGNvbXBpbGF0aW9uIHdoZW4gZGlzYWJsaW5nIHBhcnRzIG9mIHRoZSBsaWJyYXJ5LCBzdGFuZGFsb25lIHRlc3QKKyAgICBkaXN0cmlidXRpb24uPC9saT4KKyAgPGxpPmJ1ZyBmaXhlczogYnVnIGluIGxhbmcoKSwgbWVtb3J5IGNsZWFudXAgb24gZXJyb3JzIChXaWxsaWFtIEJyYWNrKSwKKyAgICBIVFRQIHF1ZXJ5IHN0cmluZ3MgKEFyb24gU3RhbnN2aWspLCBtZW1vcnkgbGVhayBpbiBEVEQgKFdpbGxpYW0pLCBpbnRlZ2VyCisgICAgb3ZlcmZsb3cgaW4gWFBhdGggKFdpbGxpYW0pLCBuYW5vZnRwIGJ1ZmZlciBzaXplLCBwYXR0ZXJuICIuIiBhcHRoIGZpeHVwCisgICAgKEthc2ltaWVyKSwgbGVhayBpbiB0cmVlIHJlcG9ydGVkIGJ5IE1hbGNvbG0gUm93ZSwgcmVwbGFjZU5vZGUgcGF0Y2gKKyAgICAoQnJlbnQgSGVuZHJpY2tzKSwgQ0RBVEEgd2l0aCBOVUxMIGNvbnRlbnQgKE1hcmsgVmFrb2MpLCB4bWw6YmFzZSBmaXh1cAorICAgIG9uIFhJbmNsdWRlIChXaWxsaWFtKSwgcGF0dGVybiBmaXhlcyAoV2lsbGlhbSksIGF0dHJpYnV0ZSBidWcgaW4KKyAgICBleGNsdXNpdmUgYzE0biAoQWxla3NleSBTYW5pbiksIHhtbDpzcGFjZSBhbmQgeG1sOmxhbmcgd2l0aCBTQVgyIChSb2IKKyAgICBSaWNoYXJkcyksIG5hbWVzcGFjZSB0cm91YmxlIGluIGNvbXBsZXggcGFyc2luZyAoTWFsY29sbSBSb3dlKSwgWFNEIHR5cGUKKyAgICBRTmFtZXMgZml4ZXMgKEthc2ltaWVyKSwgWFBhdGggc3RyZWFtaW5nIGZpeHVwcyAoV2lsbGlhbSksIFJlbGF4TkcgYnVnCisgICAgKFJvYiBSaWNoYXJkcyksIFNjaGVtYXMgZm9yIFNjaGVtYXMgZml4ZXMgKEthc2ltaWVyKSwgcmVtb3ZhbCBvZiBJRCAoUm9iCisgICAgUmljaGFyZHMpLCBhIHNtYWxsIFJlbGF4TkcgbGVhaywgSFRNTCBwYXJzaW5nIGluIHB1c2ggbW9kZSBidWcgKEphbWVzCisgICAgQnVyc2EpLCBmYWlsdXJlIHRvIGRldGVjdCBVVEYtOCBwYXJzaW5nIGJ1Z3MgaW4gQ0RBVEEgc2VjdGlvbnMsCisgICAgYXJlQmxhbmtzKCkgaGV1cmlzdGljIGZhaWx1cmUsIGR1cGxpY2F0ZSBhdHRyaWJ1dGVzIGluIERURCBidWcKKyAgKFdpbGxpYW0pLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IGxvdCBvZiB3b3JrIG9uIFNjaGVtYXMgYnkgS2FzaW1pZXIgQnVjaGNpayBib3RoIG9uCisgICAgY29uZm9ybWFuY2UgYW5kIHN0cmVhbWluZywgU2NoZW1hcyB2YWxpZGF0aW9uIG1lc3NhZ2VzIChLYXNpbWllciBCdWNoY2lrLAorICAgIE1hdHRoZXcgQnVyZ2VzcyksIG5hbWVzcGFjZSByZW1vdmFsIGF0IHRoZSBweXRob24gbGV2ZWwgKEJyZW50CisgICAgSGVuZHJpY2tzKSwgVXBkYXRlIHRvIG5ldyBTY2hlbWFzIHJlZ3Jlc3Npb24gdGVzdHMgZnJvbSBXM0MvTmlzdAorICAgIChLYXNpbWllciksIHhtbFNjaGVtYVZhbGlkYXRlRmlsZSgpIChLYXNpbWllciksIGltcGxlbWVudGF0aW9uIG9mCisgICAgeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCBhbmQgeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCAoSmFtZXMgV2VydCksCisgICAgc3RhbmRhbG9uZSB0ZXN0IGZyYW1ld29yayBhbmQgcHJvZ3JhbXMsIG5ldyBET00gaW1wb3J0IEFQSXMKKyAgICB4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcygpIHhtbERPTVdyYXBBZG9wdE5vZGUoKSBhbmQKKyAgICB4bWxET01XcmFwUmVtb3ZlTm9kZSgpLCBleHRlbnNpb24gb2YgeG1sbGludCBjYXBhYmlsaXRpZXMgZm9yIFNBWCBhbmQKKyAgICBTY2hlbWFzIHJlZ3Jlc3Npb24gdGVzdHMsIHhtbFN0b3BQYXJzZXIoKSBhdmFpbGFibGUgaW4gcHVsbCBtb2RlIHRvbywKKyAgICBpZW5oYW5jZW1lbnQgdG8geG1sbGludCAtLXNoZWxsIG5hbWVzcGFjZXMgc3VwcG9ydCwgV2luZG93cyBwb3J0IG9mIHRoZQorICAgIHN0YW5kYWxvbmUgdGVzdGluZyB0b29scyAoS2FzaW1pZXIgYW5kIFdpbGxpYW0pLAorICAgIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtKCkgeG1sU2NoZW1hU0FYUGx1ZygpIGFuZCB4bWxTY2hlbWFTQVhVbnBsdWcoKSBTQVgKKyAgICBTY2hlbWFzIEFQSXMsIFNjaGVtYXMgeG1sUmVhZGVyIHN1cHBvcnQuPC9saT4KKzwvdWw+PGgzPjIuNi4xOTogQXByIDAyIDIwMDU8L2gzPjx1bD48bGk+YnVpbGQgZml4ZXM6IGRyb3AgLmxhIGZyb20gUlBNcywgLS13aXRoLW1pbmltdW0gYnVpbGQgZml4IChXaWxsaWFtCisgICAgQnJhY2spLCB1c2UgWE1MX1NPQ0tMRU5fVCBpbnN0ZWFkIG9mIFNPQ0tMRU5fVCBiZWNhdXNlIGl0IGJyZWFrcyB3aXRoIEFJWAorICAgIDUuMyBjb21waWxlciwgZml4ZWQgZWxmZ2NjaGFjay5oIGdlbmVyYXRpb24gYW5kIFBMVCByZWR1Y3Rpb24gY29kZSBvbgorICAgIExpbnV4L0VMRi9nY2M0PC9saT4KKyAgPGxpPmJ1ZyBmaXhlczogc2NoZW1hcyB0eXBlIGRlY2ltYWwgZml4dXBzIChXaWxsaWFtIEJyYWNrKSwgeG1tbGludCByZXR1cm4KKyAgICBjb2RlIChHZXJyeSBNdXJwaHkpLCBzbWFsbCBzY2hlbWFzIGZpeGVzIChNYXR0aGV3IEJ1cmdlc3MgYW5kIEdVWQorICAgIEZhYnJpY2UpLCB3b3JrYXJvdW5kICJEQVY6IiBuYW1lc3BhY2UgYnJva2VuZXNzIGluIGMxNG4gKEFsZWtzZXkgU2FuaW4pLAorICAgIHNlZ2ZhdWx0IGluIFNjaGVtYXMgKEthc2ltaWVyIEJ1Y2hjaWspLCBTY2hlbWFzIGF0dHJpYnV0ZSB2YWxpZGF0aW9uCisgICAgKEthc2ltaWVyKSwgUHJvcCByZWxhdGVkIGZ1bmN0aW9ucyBhbmQgeG1sTmV3Tm9kZUVhdE5hbWUgKFJvYiBSaWNoYXJkcyksCisgICAgSFRNTCBzZXJpYWxpemF0aW9uIG9mIG5hbWUgYXR0cmlidXRlIG9uIGEgZWxlbWVudHMsIFB5dGhvbiBlcnJvciBoYW5kbGVycworICAgIGxlYWtzIGFuZCBpbXByb3ZlbWVudCAoQnJlbnQgSGVuZHJpY2tzKSwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpbgorICAgIGVuY29kaW5nIGNvZGUsIFJlbGF4LU5HIHZhbGlkYXRpb24gYnVnLCBwb3RlbnRpYWwgY3Jhc2ggaWYKKyAgICBnbm9yYWJsZVdoaXRlc3BhY2UgaXMgTlVMTCwgeG1sU0FYUGFyc2VEb2MgYW5kIHhtbFBhcnNlRG9jIHNpZ25hdHVyZXMsCisgICAgc3dpdGNoZWQgYmFjayB0byBhc3N1bWluZyBVVEYtOCBpbiBjYXNlIG5vIGVuY29kaW5nIGlzIGdpdmVuIGF0CisgICAgc2VyaWFsaXphdGlvbiB0aW1lPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogbG90IG9mIHdvcmsgb24gU2NoZW1hcyBieSBLYXNpbWllciBCdWNoY2lrIG9uIGZhY2V0cworICAgIGNoZWNraW5nIGFuZCBhbHNvIG1peGVkIGhhbmRsaW5nLjwvbGk+CisgIDxsaT48L2xpPgorPC91bD48aDM+Mi42LjE4OiBNYXIgMTMgMjAwNTwvaDM+PHVsPjxsaT5idWlsZCBmaXhlczogd2FybmluZ3MgKFBldGVyIEJyZWl0ZW5sb2huZXIpLCB0ZXN0YXBpLmMgZ2VuZXJhdGlvbiwKKyAgICBCYWtlZmlsZSBzdXBwb3J0IChGcmFuY2VzY28gTW9udG9yc2kpLCBXaW5kb3dzIGNvbXBpbGF0aW9uIChKb2VsIFJlZWQpLAorICAgIHNvbWUgZ2NjNCBmaXhlcywgSFAtVVggcG9ydGFiaWxpdHkgZml4ZXMgKFJpY2sgSm9uZXMpLjwvbGk+CisgIDxsaT5idWcgZml4ZXM6IHhtbFNjaGVtYUVsZW1lbnREdW1wIG5hbWVzcGFjZSAoS2FzaW1pZXIgQnVjaGNpayksIHB1c2ggYW5kCisgICAgeG1scmVhZGVyIHN0b3BwaW5nIG9uIG5vbi1mYXRhbCBlcnJvcnMsIHRocmVhZCBzdXBwb3J0IGZvciBkaWN0aW9ubmFyaWVzCisgICAgcmVmZXJlbmNlIGNvdW50aW5nIChHYXJ5IENvYWR5KSwgaW50ZXJuYWwgc3Vic2V0IGFuZCBwdXNoIHByb2JsZW0sIFVSTAorICAgIHNhdmVkIGluIHhtbENvcHlEb2MsIHZhcmlvdXMgc2NoZW1hcyBidWcgZml4ZXMgKEthc2ltaWVyKSwgUHl0aG9uIHBhdGhzCisgICAgZml4dXAgKFN0ZXBoYW5lIEJpZG91bCksIHhtbEdldE5vZGVQYXRoIGFuZCBuYW1lc3BhY2VzLCB4bWxTZXROc1Byb3AgZml4CisgICAgKE1pa2UgSG9tbWV5KSwgd2FybmluZyBzaG91bGQgbm90IGNvdW50IGFzIGVycm9yIChXaWxsaWFtIEJyYWNrKSwKKyAgICB4bWxDcmVhdGVQdXNoUGFyc2VyIGVtcHR5IGNodW5rLCBYSW5jbHVkZSBwYXJzZXIgZmxhZ3MgKFdpbGxpYW0pLCBjbGVhbnVwCisgICAgRlRQIGFuZCBIVFRQIGNvZGUgdG8gcmV1c2UgdGhlIHVyaSBwYXJzaW5nIGFuZCBJUHY2IChXaWxsaWFtKSwKKyAgICB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyBmaXggKFJvYiBSaWNoYXJkcyksIFhNTExJTlRfSU5ERU5UIGJlaW5nCisgICAgZW1wdHkgKFdpbGxpYW0pLCB4bWxXcml0ZXIgYnVncyAoUm9iIFJpY2hhcmRzKSwgbXVsdGl0aHJlYWRpbmcgb24gV2luZG93cworICAgIChSaWNoIFNhbHopLCB4bWxTZWFyY2hOc0J5SHJlZiBmaXggKEthc2ltaWVyKSwgUHl0aG9uIGJpbmRpbmcgbGVhayAoQnJlbnQKKyAgICBIZW5kcmlja3MpLCBhbGlhc2luZyBidWcgZXhwb3NlZCBieSBnY2M0IG9uIHMzOTAsIHhtbFRleHRSZWFkZXJOZXh0IGJ1ZworICAgIChSb2IgUmljaGFyZHMpLCBTY2hlbWFzIGRlY2ltYWwgdHlwZSBmaXhlcyAoV2lsbGlhbSBCcmFjayksCisgICAgeG1sQnl0ZUNvbnN1bWVkIHN0YXRpYyBidWZmZXIgKEJlbiBNYXVyZXIpLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudDogc3BlZWR1cCBwYXJzaW5nIGNvbW1lbnRzIGFuZCBEVERzLCBkaWN0aW9ubmFyeSBzdXBwb3J0IGZvcgorICAgIGhhc2ggdGFibGVzLCBTY2hlbWFzIElkZW50aXR5IGNvbnN0cmFpbnRzIChLYXNpbWllciksIHN0cmVhbWluZyBYUGF0aAorICAgIHN1YnNldCwgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcgYWRkZWQgKEJqb3JuIFJlZXNlKSwgU2NoZW1hcyBjYW5vbmljYWwKKyAgICB2YWx1ZXMgaGFuZGxpbmcgKEthc2ltaWVyKSwgYWRkIHhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQgKEFyb24KKyAgU3RhbnN2aWspLDwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOiBXaWtpIHN1cHBvcnQgKEpvZWwgUmVlZCk8L2xpPgorPC91bD48aDM+Mi42LjE3OiBKYW4gMTYgMjAwNTwvaDM+PHVsPjxsaT5idWlsZCBmaXhlczogV2luZG93cywgd2FybmluZ3MgcmVtb3ZhbCAoV2lsbGlhbSBCcmFjayksCisgICAgbWFpbnRhaW5lci1jbGVhbiBkZXBlbmRlbmN5KFdpbGxpYW0pLCBidWlsZCBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnkKKyAgICAoV2lsbGlhbSksIGZpeGluZyAtLXdpdGgtbWluaW11bSBjb25maWd1cmUgYnVpbGQgKFdpbGxpYW0pLCBCZU9TIGJ1aWxkCisgICAgKE1hcmNpbiBLb25pY2tpKSwgUHl0aG9uLTIuNCBkZXRlY3Rpb24gKFdpbGxpYW0pLCBjb21waWxhdGlvbiBvbiBBSVggKERhbgorICAgIE1jTmljaG9sKTwvbGk+CisgIDxsaT5idWcgZml4ZXM6IHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzIChSb2IgUmljaGFyZHMpLCB4bWxDdHh0UmVhZEZpbGUoKQorICAgIHRvIHVzZSB0aGUgY2F0YWxvZyhzKSwgbG9vcCBvbiBvdXRwdXQgKFdpbGxpYW0gQnJhY2spLCBYUGF0aCBtZW1vcnkgbGVhaywKKyAgICBJRCBkZWFsbG9jYXRpb24gcHJvYmxlbSAoU3RldmUgU2hlcGFyZCksIGRlYnVnRHVtcE5vZGUgY3Jhc2ggKFdpbGxpYW0pLAorICAgIHdhcm5pbmcgbm90IHVzaW5nIGVycm9yIGNhbGxiYWNrIChXaWxsaWFtKSwgeG1sU3RvcFBhcnNlciBidWcgKFdpbGxpYW0pLAorICAgIFVURi0xNiB3aXRoIEJPTSBvbiBEVERzIChXaWxsaWFtKSwgbmFtZXNwYWNlIGJ1ZyBvbiBlbXB0eSBlbGVtZW50cyBpbgorICAgIHB1c2ggbW9kZSAoUm9iIFJpY2hhcmRzKSwgbGluZSBhbmQgY29sIGNvbXB1dGF0aW9ucyBmaXh1cHMgKEFsZWtzZXkKKyAgICBTYW5pbiksIHhtbFVSSUVzY2FwZSBmaXggKFdpbGxpYW0pLCB4bWxYUGF0aEVyciBvbiBiYWQgcmFuZ2UgKFdpbGxpYW0pLAorICAgIHBhdHRlcm5zIHdpdGggdG9vIG1hbnkgc3RlcHMsIGJ1ZyBpbiBSTkcgY2hvaWNlIG9wdGltaXphdGlvbiwgbGluZSBudW1iZXIKKyAgICBzb21ldGltZXMgbWlzc2luZy48L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBYU0QgU2NoZW1hcyAoS2FzaW1pZXIgQnVjaGNpayksIHB5dGhvbiBnZW5lcmF0b3IKKyAgICAoV2lsbGlhbSksIHhtbFVURjhTdHJwb3Mgc3BlZWR1cCAoV2lsbGlhbSksIHVuaWNvZGUgUHl0aG9uIHN0cmluZ3MKKyAgICAoV2lsbGlhbSksIFhTRCBlcnJvciByZXBvcnRzIChLYXNpbWllciBCdWNoY2lrKSwgUHl0aG9uIF9fc3RyX18gY2FsbAorICAgIHNlcmlhbGl6ZSgpLjwvbGk+CisgIDxsaT5uZXcgQVBJczogYWRkZWQgeG1sRGljdEV4aXN0cygpLCBHZXRMaW5lTnVtYmVyIGFuZCBHZXRDb2x1bW5OdW1iZXIgZm9yCisgICAgdGhlIHhtbFJlYWRlciAoQWxla3NleSBTYW5pbiksIER5bmFtaWMgU2hhcmVkIExpYnJhcmllcyBBUElzIChtb3N0bHkgSm9lbAorICAgIFJlZWQpLCBlcnJvciBleHRyYWN0aW9uIEFQSSBmcm9tIHJlZ2V4cHMsIG5ldyBYTUxTYXZlIG9wdGlvbiBmb3IgZm9ybWF0CisgICAgKFBoaWwgU2hhZmVyKTwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiBzaXRlIGltcHJvdmVtZW50IChKb2huIEZsZWNrKSwgRkFRIGVudHJpZXMKKyAgKFdpbGxpYW0pLjwvbGk+Cis8L3VsPjxoMz4yLjYuMTY6IE5vdiAxMCAyMDA0PC9oMz48dWw+PGxpPmdlbmVyYWwgaGFyZGVuaW5nIGFuZCBidWcgZml4aW5nIGNyb3NzaW5nIGFsbCB0aGUgQVBJIGJhc2VkIG9uIG5ldworICAgIGF1dG9tYXRlZCByZWdyZXNzaW9uIHRlc3Rpbmc8L2xpPgorICA8bGk+YnVpbGQgZml4OiBJUHY2IGJ1aWxkIGFuZCB0ZXN0IG9uIEFJWCAoRG9kamkgU2VrZXRlbGkpPC9saT4KKyAgPGxpPmJ1ZyBmaXhlczogcHJvYmxlbSB3aXRoIFhNTDo6TGlieG1sIHJlcG9ydGVkIGJ5IFBldHIgUGFqYXMsICBlbmNvZGluZworICAgIGNvbnZlcnNpb24gZnVuY3Rpb25zIHJldHVybiB2YWx1ZXMsIFVURi04IGJ1ZyBhZmZlY3RpbmcgWFBhdGggcmVwb3J0ZWQgYnkKKyAgICBNYXJrdXMgQmVydGhlYXUsIGNhdGFsb2cgcHJvYmxlbSB3aXRoIE5VTEwgZW50cmllcyAoV2lsbGlhbSBCcmFjayk8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbjogZml4IHRvIHhtbGxpbnQgbWFuIHBhZ2UsIHNvbWUgQVBJIGZ1bmN0aW9uIGRlc2NyaXRwaW9uCisgICAgd2VyZSB1cGRhdGVkLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IERURCB2YWxpZGF0aW9uIEFQSXMgcHJvdmlkZWQgYXQgdGhlIFB5dGhvbiBsZXZlbCAoQnJlbnQKKyAgICBIZW5kcmlja3MpPC9saT4KKzwvdWw+PGgzPjIuNi4xNTogT2N0IDI3IDIwMDQ8L2gzPjx1bD48bGk+c2VjdXJpdHkgZml4ZXMgb24gdGhlIG5hbm9mdHAgYW5kIG5hbm9odHRwIG1vZHVsZXM8L2xpPgorICA8bGk+YnVpbGQgZml4ZXM6IHhtbGxpbnQgZGV0ZWN0aW9uIGJ1ZyBpbiBjb25maWd1cmUsIGJ1aWxkaW5nIG91dHNpZGUgdGhlCisgICAgc291cmNlIHRyZWUgKFRob21hcyBGaXR6c2ltbW9ucyk8L2xpPgorICA8bGk+YnVnIGZpeGVzOiBIVE1MIHBhcnNlciBvbiBicm9rZW4gQVNDSUkgY2hhcnMgaW4gbmFtZXMgKFdpbGxpYW0pLCBQeXRob24KKyAgICBwYXRocyAoTWFsY29sbSBUcmVkaW5uaWNrKSwgeG1sSGFzTnNQcm9wIGFuZCBkZWZhdWx0IG5hbWVzcGFjZSAoV2lsbGlhbSksCisgICAgc2F2aW5nIHRvIHB5dGhvbiBmaWxlIG9iamVjdHMgKE1hbGNvbG0gVHJlZGlubmljayksIERURCBsb29rdXAgZml4CisgICAgKE1hbGNvbG0pLCBzYXZlIGJhY2sgJmx0O2dyb3VwJmd0OyBpbiBjYXRhbG9ncyAoV2lsbGlhbSksIHRyZWUgYnVpbGQKKyAgICBmaXhlcyAoRFYgYW5kIFJvYiBSaWNoYXJkcyksIFNjaGVtYXMgbWVtb3J5IGJ1Zywgc3RydWN0dXJlZCBlcnJvciBoYW5kbGVyCisgICAgb24gUHl0aG9uIDY0Yml0cywgdGhyZWFkIGxvY2FsIG1lbW9yeSBkZWFsbG9jYXRpb24sIG1lbW9yeSBsZWFrIHJlcG9ydGVkCisgICAgYnkgVm9sa2VyIFJvdGgsIHhtbFZhbGlkYXRlRHRkIGluIHRoZSBwcmVzZW5jZSBvZiBhbiBpbnRlcm5hbCBzdWJzZXQsCisgICAgZW50aXRpZXMgYW5kIF9wcml2YXRlIHByb2JsZW0gKFdpbGxpYW0pLCB4bWxCdWlsZFJlbGF0aXZlVVJJIGVycm9yCisgICAgKFdpbGxpYW0pLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IGJldHRlciBYSW5jbHVkZSBlcnJvciByZXBvcnRzIChXaWxsaWFtKSwgdHJlZSBkZWJ1Z2dpbmcKKyAgICBtb2R1bGUgYW5kIHRlc3RzLCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgYXQgdGhlIFJlYWRlciBBUEkgKEdyYWhhbQorICAgIEJlbm5ldHQpLCBhZGQgc3VwcG9ydCBmb3IgUEkgaW4gdGhlIEhUTUwgcGFyc2VyLjwvbGk+Cis8L3VsPjxoMz4yLjYuMTQ6IFNlcCAyOSAyMDA0PC9oMz48dWw+PGxpPmJ1aWxkIGZpeGVzOiBjb25maWd1cmUgcGF0aHMgZm9yIHhtbGxpbnQgYW5kIHhzbHRwcm9jLCBjb21waWxhdGlvbgorICAgIHdpdGhvdXQgSFRNTCBwYXJzZXIsIGNvbXBpbGF0aW9uIHdhcm5pbmcgY2xlYW51cHMgKFdpbGxpYW0gQnJhY2sgJmFtcDsKKyAgICBNYWxjb2xtIFRyZWRpbm5pY2spLCBWTVMgbWFrZWZpbGUgdXBkYXRlIChDcmFpZyBCZXJyeSksPC9saT4KKyAgPGxpPmJ1ZyBmaXhlczogeG1sR2V0VVRGOENoYXIgKFdpbGxpYW0gQnJhY2spLCBRTmFtZSBwcm9wZXJ0aWVzIChLYXNpbWllcgorICAgIEJ1Y2hjaWspLCBYSW5jbHVkZSB0ZXN0aW5nLCBOb3RhdGlvbiBzZXJpYWxpemF0aW9uLCBVVEY4VG9JU084ODU5eAorICAgIHRyYW5zY29kaW5nIChNYXJrIEl0emNvdml0eiksIGxvdHMgb2YgWE1MIFNjaGVtYXMgY2xlYW51cCBhbmQgZml4ZXMKKyAgICAoS2FzaW1pZXIpLCBDaGFuZ2VMb2cgY2xlYW51cCAoU3RlcGFuIEthc2FsKSwgbWVtb3J5IGZpeGVzIChNYXJrIFZha29jKSwKKyAgICBoYW5kbGluZyBvZiBmYWlsZWQgcmVhbGxvYygpLCBvdXQgb2YgYm91bmQgYXJyYXkgYWRyZXNzaW5nIGluIFNjaGVtYXMKKyAgICBkYXRlIGhhbmRsaW5nLCBQeXRob24gc3BhY2UvdGFicyBjbGVhbnVwcyAoTWFsY29sbSBUcmVkaW5uaWNrKSwgTk1UT0tFTlMKKyAgICBFMjAgdmFsaWRhdGlvbiBmaXggKE1hbGNvbG0pLDwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IGFkZGVkIFczQyBYTUwgU2NoZW1hcyB0ZXN0c3VpdGUgKEthc2ltaWVyIEJ1Y2hjaWspLCBhZGQKKyAgICB4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQgKEthc2ltaWVyKSwgUHl0aG9uIGV4Y2VwdGlvbiBoaWVyZWFyY2h5CisgICAgKE1hbGNvbG0gVHJlZGlubmljayksIFB5dGhvbiBsaWJ4bWwyIGRyaXZlciBpbXByb3ZlbWVudCAoTWFsY29sbQorICAgIFRyZWRpbm5pY2spLCBTY2hlbWFzIHN1cHBvcnQgZm9yIHhzaTpzY2hlbWFMb2NhdGlvbiwKKyAgICB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbiwgeHNpOnR5cGUgKEthc2ltaWVyIEJ1Y2hjaWspPC9saT4KKzwvdWw+PGgzPjIuNi4xMzogQXVnIDMxIDIwMDQ8L2gzPjx1bD48bGk+YnVpbGQgZml4ZXM6IFdpbmRvd3MgYW5kIHpsaWIgKElnb3IgWmxhdGtvdmljKSwgLU8gZmxhZyB3aXRoIGdjYywKKyAgICBTb2xhcmlzIGNvbXBpbGVyIHdhcm5pbmcsIGZpeGluZyBSUE0gQnVpbGRSZXF1aXJlcyw8L2xpPgorICA8bGk+Zml4ZXM6IERURCBsb2FkaW5nIG9uIFdpbmRvd3MgKElnb3IpLCBTY2hlbWFzIGVycm9yIHJlcG9ydHMgQVBJcworICAgIChLYXNpbWllciBCdWNoY2lrKSwgU2NoZW1hcyB2YWxpZGF0aW9uIGNyYXNoLCB4bWxDaGVja1VURjggKFdpbGxpYW0gQnJhY2sKKyAgICBhbmQgSnVsaXVzIE1pdHRlbnp3ZWkpLCBTY2hlbWFzIGZhY2V0IGNoZWNrIChLYXNpbWllciksIGRlZmF1bHQgbmFtZXNwYWNlCisgICAgcHJvYmxlbSAoV2lsbGlhbSksIFNjaGVtYXMgaGV4YmluYXJ5IGVtcHR5IHZhbHVlcywgZW5jb2RpbmcgZXJyb3IgY291bGQKKyAgICBnZW5yYXRlIGEgc2VyaWFsaXphdGlvbiBsb29wLjwvbGk+CisgIDxsaT5JbXByb3ZlbWVudHM6IFNjaGVtYXMgdmFsaWRpdHkgaW1wcm92ZW1lbnRzIChLYXNpbWllciksIGFkZGVkIC0tcGF0aAorICAgIGFuZCAtLWxvYWQtdHJhY2Ugb3B0aW9ucyB0byB4bWxsaW50PC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb246IHR1dG9yaWFsIHVwZGF0ZSAoSm9obiBGbGVjayk8L2xpPgorPC91bD48aDM+Mi42LjEyOiBBdWcgMjIgMjAwNDwvaDM+PHVsPjxsaT5idWlsZCBmaXhlczogZml4IC0td2l0aC1taW5pbXVtLCBlbGZnY2NoYWNrLmggZml4ZXMgKFBldGVyCisgICAgQnJlaXRlbmxvaG5lciksIHBlcmwgcGF0aCBsb29rdXAgKFdpbGxpYW0pLCBkaWZmIG9uIFNvbGFyaXMgKEFsYmVydAorICAgIENoaW4pLCBzb21lIDY0Yml0cyBjbGVhbnVwcy48L2xpPgorICA8bGk+UHl0aG9uOiBhdm9pZCBhIHdhcm5pbmcgd2l0aCAyLjMgKFdpbGxpYW0gQnJhY2spLCB0YWIgYW5kIHNwYWNlIG1peGVzCisgICAgKFdpbGxpYW0pLCB3cmFwcGVyIGdlbmVyYXRvciBmaXhlcyAoV2lsbGlhbSksIEN5Z3dpbiBzdXBwb3J0IChHZXJyaXQgUC4KKyAgICBIYWFzZSksIG5vZGUgd3JhcHBlciBmaXggKE1hcmMtQW50b2luZSBQYXJlbnQpLCBYTUwgU2NoZW1hcyBzdXBwb3J0CisgICAgKFRvcmtlbCBMeW5nKTwvbGk+CisgIDxsaT5TY2hlbWFzOiBhIGxvdCBvZiBidWcgZml4ZXMgYW5kIGltcHJvdmVtZW50cyBmcm9tIEthc2ltaWVyIEJ1Y2hjaWs8L2xpPgorICA8bGk+Zml4ZXM6IFJWVCBmaXhlcyAoV2lsbGlhbSksIFhQYXRoIGNvbnRleHQgcmVzZXRzIGJ1ZyAoV2lsbGlhbSksIG1lbW9yeQorICAgIGRlYnVnIChTdGV2ZSBIYXkpLCBjYXRhbG9nIHdoaXRlIHNwYWNlIGhhbmRsaW5nIChQZXRlciBCcmVpdGVubG9obmVyKSwKKyAgICB4bWxSZWFkZXIgc3RhdGUgYWZ0ZXIgYXR0cmlidXRlIHJlYWRpbmcgKFdpbGxpYW0pLCBzdHJ1Y3R1cmVkIGVycm9yCisgICAgaGFuZGxlciAoV2lsbGlhbSksIFhJbmNsdWRlIGdlbmVyYXRlZCB4bWw6YmFzZSBmaXh1cCAoV2lsbGlhbSksIFdpbmRvd3MKKyAgICBtZW1vcnkgcmVhbGxvY2F0aW9uIHByb2JsZW0gKFN0ZXZlIEhheSksIE91dCBvZiBNZW1vcnkgY29uZGl0aW9ucworICAgIGhhbmRsaW5nIChXaWxsaWFtIGFuZCBPbGl2aWVyIEFuZHJpZXUpLCBodG1sTmV3RG9jKCkgY2hhcnNldCBidWcsCisgICAgaHRtbFJlYWRNZW1vcnkgaW5pdCAoV2lsbGlhbSksIGEgcG9zdGVyaW9yaSB2YWxpZGF0aW9uIERURCBiYXNlCisgICAgKFdpbGxpYW0pLCBub3RhdGlvbnMgc2VyaWFsaXphdGlvbiBtaXNzaW5nLCB4bWxHZXROb2RlUGF0aCAoRG9kamkpLAorICAgIHhtbENoZWNrVVRGOCAoRGllZ28gVGFydGFyYSksIG1pc3NpbmcgbGluZSBudW1iZXJzIG9uIGVudGl0eQorICAoV2lsbGlhbSk8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBEb2NCb29rIGNhdGFsb2cgYnVpbGQgc2NyaXAgKFdpbGxpYW0pLCB4bWxjYXRhbG9nIHRvb2wKKyAgICAoQWxiZXJ0IENoaW4pLCB4bWxsaW50IC0tYzE0biBvcHRpb24sIG5vX3Byb3h5IGVudmlyb25tZW50IChNaWtlIEhvbW1leSksCisgICAgeG1sUGFyc2VJbk5vZGVDb250ZXh0KCkgYWRkaXRpb24sIGV4dGVuZCB4bWxsaW50IC0tc2hlbGwsIGFsbG93IFhJbmNsdWRlCisgICAgdG8gbm90IGdlbmVyYXRlIHN0YXJ0L2VuZCBub2RlcywgZXh0ZW5kIHhtbGxpbnQgLS12ZXJzaW9uIHRvIGluY2x1ZGUgQ1ZTCisgICAgdGFnIChXaWxsaWFtKTwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiB3ZWIgcGFnZXMgZml4ZXMsIHZhbGlkaXR5IEFQSSBkb2NzIGZpeGVzIChXaWxsaWFtKQorICAgIHNjaGVtYXMgQVBJIGZpeCAoRXJpYyBIYXN6bGFraWV3aWN6KSwgeG1sbGludCBtYW4gcGFnZSAoSm9obiBGbGVjayk8L2xpPgorPC91bD48aDM+Mi42LjExOiBKdWx5IDUgMjAwNDwvaDM+PHVsPjxsaT5TY2hlbWFzOiBhIGxvdCBvZiBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMgYnkgS2FzaW1pZXIgQnVjaGNpayBmb3IKKyAgICBhdHRyaWJ1dGVzLCBuYW1lc3BhY2VzIGFuZCBzaW1wbGUgdHlwZXMuPC9saT4KKyAgPGxpPmJ1aWxkIGZpeGVzOiAtLXdpdGgtbWluaW11bSAoV2lsbGlhbSBCcmFjayksICBzb21lIGdjYyBjbGVhbnVwCisgICAgKFdpbGxpYW0pLCAtLXdpdGgtdGhyZWFkLWFsbG9jIChXaWxsaWFtKTwvbGk+CisgIDxsaT5wb3J0YWJpbGl0eTogV2luZG93cyBiaW5hcnkgcGFja2FnZSBjaGFuZ2UgKElnb3IgWmxhdGtvdmljKSwgQ2F0YWxvZworICAgIHBhdGggb24gV2luZG93czwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiB1cGRhdGUgdG8gdGhlIHR1dG9yaWFsIChKb2huIEZsZWNrKSwgeG1sbGludCByZXR1cm4gY29kZQorICAgIChKb2huIEZsZWNrKSwgbWFuIHBhZ2VzIChWaWxsZSBTa3l0dGEpLDwvbGk+CisgIDxsaT5idWcgZml4ZXM6IEMxNE4gYnVnIHNlcmlhbGl6aW5nIG5hbWVzcGFjZXMgKEFsZWtzZXkgU2FuaW4pLCB0ZXN0U0FYCisgICAgcHJvcGVybHkgaW5pdGlhbGl6ZSB0aGUgbGlicmFyeSAoV2lsbGlhbSksIGVtcHR5IG5vZGUgc2V0IGluIFhQYXRoCisgICAgKFdpbGxpYW0pLCB4bWxTY2hlbWFzIGVycm9ycyAoV2lsbGlhbSksIGludmFsaWQgY2hhcnJlZiBwcm9ibGVtIHBvaW50ZWQKKyAgICBieSBNb3J1cyBXYWx0ZXIsIFhJbmNsdWRlIHhtbDpiYXNlIGdlbmVyYXRpb24gKFdpbGxpYW0pLCBSZWxheC1ORyBidWcKKyAgICB3aXRoIGRpdiBwcm9jZXNzaW5nIChXaWxsaWFtKSwgWFBvaW50ZXIgYW5kIHhtbDpiYXNlIHByb2JsZW0oV2lsbGlhbSksCisgICAgUmVhZGVyIGFuZCBlbnRpdGllcywgeG1sbGludCByZXR1cm4gY29kZSBmb3Igc2NoZW1hcyAoV2lsbGlhbSksIHJlYWRlcgorICAgIHN0cmVhbWluZyBwcm9ibGVtIChTdGV2ZSBCYWxsKSwgRFREIHNlcmlhbGl6YXRpb24gcHJvYmxlbSAoV2lsbGlhbSksCisgICAgbGlieG1sLm00IGZpeGVzIChNaWtlIEhvbW1leSksIGRvIG5vdCBwcm92aWRlIGRlc3RydWN0b3JzIGFzIG1ldGhvZHMgb24KKyAgICBQeXRob24gY2xhc3NlcywgeG1sUmVhZGVyIGJ1ZmZlciBidWcsIFB5dGhvbiBiaW5kaW5ncyBtZW1vcnkgaW50ZXJmYWNlcworICAgIGltcHJvdmVtZW50ICh3aXRoIFN0w6lwaGFuZSBCaWRvdWwpLCBGaXhlZCB0aGUgcHVzaCBwYXJzZXIgdG8gYmUgYmFjayB0bworICAgIHN5bmNocm9ub3VzIGJlaGF2aW91ci48L2xpPgorICA8bGk+aW1wcm92ZW1lbnQ6IGN1c3RvbSBwZXItdGhyZWFkIEkvTyBlbmhhbmNlbWVudCAoUm9iIFJpY2hhcmRzKSwgcmVnaXN0ZXIKKyAgICBuYW1lc3BhY2UgaW4gZGVidWcgc2hlbGwgKFN0ZWZhbm8gRGViZW5lZGV0dGkpLCBQeXRob24gYmFzZWQgcmVncmVzc2lvbgorICAgIHRlc3QgZm9yIG5vbi1Vbml4IHVzZXJzIChXaWxsaWFtKSwgZHluYW1pY2FsbHkgaW5jcmVhc2UgdGhlIG51bWJlciBvZgorICAgIFhQYXRoIGV4dGVuc2lvbiBmdW5jdGlvbnMgaW4gUHl0aG9uIGFuZCBmaXggYSBtZW1vcnkgbGVhayAoTWFyYy1BbnRvaW5lCisgICAgUGFyZW50IGFuZCBXaWxsaWFtKTwvbGk+CisgIDxsaT5wZXJmb3JtYW5jZTogaGFjayBkb25lIHdpdGggQXJqYW4gdmFuIGRlIFZlbiB0byByZWR1Y2UgRUxGIGZvb3RwcmludAorICAgIGFuZCBnZW5lcmF0ZWQgY29kZSBvbiBMaW51eCwgcGx1cyB1c2UgZ2NjIHJ1bnRpbWUgcHJvZmlsaW5nIHRvIG9wdGltaXplCisgICAgdGhlIGNvZGUgZ2VuZXJhdGVkIGluIHRoZSBSUE0gcGFja2FnZXMuPC9saT4KKzwvdWw+PGgzPjIuNi4xMDogTWF5IDE3IDIwMDQ8L2gzPjx1bD48bGk+V2ViIHBhZ2UgZ2VuZXJhdGVkIGZvciBDaGFuZ2VMb2c8L2xpPgorICA8bGk+YnVpbGQgZml4ZXM6IC0td2l0aG91dC1odG1sIHByb2JsZW1zLCBtYWtlIGNoZWNrIHdpdGhvdXQgbWFrZSBhbGw8L2xpPgorICA8bGk+cG9ydGFiaWxpdHk6IHByb2JsZW0gd2l0aCB4cGF0aC5jIG9uIFdpbmRvd3MgKE1TQyBhbmQgQm9ybGFuZCksIG1lbWNtcAorICAgIHZzLiBzdHJuY21wIG9uIFNvbGFyaXMsIFhQYXRoIHRlc3RzIG9uIFdpbmRvd3MgKE1hcmsgVmFrb2MpLCBDKysgZG8gbm90CisgICAgdXNlICJsaXN0IiBhcyBwYXJhbWV0ZXIgbmFtZSwgbWFrZSB0ZXN0cyB3b3JrIHdpdGggUHl0aG9uIDEuNSAoRWQKKyAgRGF2aXMpLDwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IG1hZGUgeG1sVGV4dFJlYWRlck1vZGUgcHVibGljLCBzbWFsbCBidWZmZXJzIHJlc2l6aW5nCisgICAgKE1vcnRlbiBXZWxpbmRlciksIGFkZCAtLW1heG1lbSBvcHRpb24gdG8geG1sbGludCwgYWRkCisgICAgeG1sUG9wSW5wdXRDYWxsYmFjaygpIGZvciBNYXR0IFNlcmdlYW50LCByZWZhY3RvcmluZyBvZiBzZXJpYWxpemF0aW9uCisgICAgZXNjYXBpbmcsIGFkZGVkIGVzY2FwaW5nIGN1c3RvbWl6YXRpb248L2xpPgorICA8bGk+YnVnZml4ZXM6IHhzZDpleHRlbnNpb24gKFRhaWhlaSBHb2kpLCBhc3NvcnRlZCByZWdleHAgYnVncyAoV2lsbGlhbQorICAgIEJyYWNrKSwgeG1sUmVhZGVyIGVuZCBvZiBzdHJlYW0gcHJvYmxlbSwgbm9kZSBkZXJlZ2lzdHJhdGlvbiB3aXRoIHJlYWRlciwKKyAgICBVUkkgZXNjYXBpbmcgYW5kIGZpbGVtYW5lcywgIFhIVE1MMSBmb3JtYXR0aW5nIChOaWNrIFdlbGxuaG9mZXIpLCByZWdleHAKKyAgICB0cmFuc2l0aW9uIHJlZHVjdGlvbiAoV2lsbGlhbSksIHZhcmlvdXMgWFNEIFNjaGVtYXMgZml4ZXMgKEthc2ltaWVyCisgICAgQnVjaGNpayksIFhJbmNsdWRlIGZhbGxiYWNrIHByb2JsZW0gKFdpbGxpYW0pLCB3ZWlyZCBwcm9ibGVtcyB3aXRoIERURAorICAgIChXaWxsaWFtKSwgc3RydWN0dXJlZCBlcnJvciBoYW5kbGVyIGNhbGxiYWNrIGNvbnRleHQgKFdpbGxpYW0pLCByZXZlcnNlCisgICAgeG1sRW5jb2RlU3BlY2lhbENoYXJzKCkgYmVoYXZpb3VyIGJhY2sgdG8gZXNjYXBpbmcgJyInPC9saT4KKzwvdWw+PGgzPjIuNi45OiBBcHIgMTggMjAwNDwvaDM+PHVsPjxsaT5pbXBsZW1lbnQgeG1sOmlkIFdvcmtpbmcgRHJhZnQsIHJlbGF4ZWQgWFBhdGggaWQoKSBjaGVja2luZzwvbGk+CisgIDxsaT5idWdmaXhlczogeG1sQ3R4dFJlc2V0IChCcmVudCBIZW5kcmlja3MpLCBsaW5lIG51bWJlciBhbmQgQ0RBVEEgKERhdmUKKyAgICBCZWNrZXR0KSwgUmVsYXgtTkcgY29tcGlsYXRpb24gKFdpbGxpYW0gQnJhY2spLCBSZWdleHAgcGF0Y2hlcyAod2l0aAorICAgIFdpbGxpYW0pLCB4bWxVcmlFc2NhcGUgKE1hcmsgVmFrb2MpLCBhIFJlbGF4LU5HIG5vdEFsbG93ZWQgcHJvYmxlbSAod2l0aAorICAgIFdpbGxpYW0pLCBSZWxheC1ORyBuYW1lIGNsYXNzZXMgY29tcGFyZXMgKFdpbGxpYW0pLCBYSW5jbHVkZSBkdXBsaWNhdGUKKyAgICBmYWxsYmFjayAoV2lsbGlhbSksIGV4dGVybmFsIERURCBlbmNvZGluZyBkZXRlY3Rpb24gKFdpbGxpYW0pLCBhIERURAorICAgIHZhbGlkYXRpb24gYnVnIChXaWxsaWFtKSwgeG1sUmVhZGVyIENsb3NlKCkgZml4LCByZWN1c2l2ZSBleHRlbnRpb24KKyAgICBzY2hlbWFzPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogdXNlIHhtbFJlYWQqIEFQSXMgaW4gdGVzdCB0b29scyAoTWFyayBWYWtvYyksIGluZGVudGluZworICAgIHNhdmUgb3B0aW1pemF0aW9uLCBiZXR0ZXIgaGFuZGxlIElJUyBicm9rZW4gSFRUUCByZWRpcmVjdCAgYmVoYXZpb3VyIChJYW4KKyAgICBIdW1tZWwpLCBIVE1MIHBhcnNlciBmcmFtZXNldCAoSmFtZXMgQnVyc2EpLCBsaWJ4bWwyLXB5dGhvbiBSUE0KKyAgICBkZXBlbmRhbmN5LCBYTUwgU2NoZW1hcyB1bmlvbiBzdXBwb3J0IChLYXNpbWllciBCdWNoY2lrKSwgd2FybmluZyByZW1vdmFsCisgICAgY2xhbnVwIChXaWxsaWFtKSwga2VlcCBDaGFuZ2VMb2cgY29tcHJlc3NlZCB3aGVuIGluc3RhbGxpbmcgZnJvbSBSUE1zPC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb246IGV4YW1wbGVzIGFuZCB4bWxEb2NEdW1wTWVtb3J5IGRvY3MgKEpvaG4gRmxlY2spLCBuZXcKKyAgICBleGFtcGxlIChsb2FkLCB4cGF0aCwgbW9kaWZ5LCBzYXZlKSwgeG1sQ2F0YWxvZ0R1bXAoKSBjb21tZW50cyw8L2xpPgorICA8bGk+V2luZG93czogQm9ybGFuZCBDKysgYnVpbGRlciAoRXJpYyBadXJjaGVyKSwgd29yayBhcm91bmQgTWljcm9zb2Z0CisgICAgY29tcGlsZXIgTmFOIGhhbmRsaW5nIGJ1ZyAoTWFyayBWYWtvYyk8L2xpPgorPC91bD48aDM+Mi42Ljg6IE1hciAyMyAyMDA0PC9oMz48dWw+PGxpPkZpcnN0IHN0ZXAgb2YgdGhlIGNsZWFudXAgb2YgdGhlIHNlcmlhbGl6YXRpb24gY29kZSBhbmQgQVBJczwvbGk+CisgIDxsaT5YTUwgU2NoZW1hczogbWl4ZWQgY29udGVudCAoQWRhbSBEaWNrbWVpc3MpLCBRTmFtZSBoYW5kbGluZyBmaXhlcyAoQWRhbQorICAgIERpY2ttZWlzcyksIGFueVVSSSBmb3IgIiIgKEpvaG4gQmVsbW9udGUpPC9saT4KKyAgPGxpPlB5dGhvbjogQ2Fub25pY2FsaXphdGlvbiBDMTROIHN1cHBvcnQgYWRkZWQgKEFudGhvbnkgQ2Fycmljbyk8L2xpPgorICA8bGk+eG1sRG9jQ29weU5vZGUoKSBleHRlbnNpb24gKFdpbGxpYW0pPC9saT4KKyAgPGxpPlJlbGF4LU5HOiBmaXggd2hlbiBwcm9jZXNzaW5nIFhJbmNsdWRlIHJlc3VsdHMgKFdpbGxpYW0pLCBleHRlcm5hbAorICAgIHJlZmVyZW5jZSBpbiBpbnRlcmxlYXZlIChXaWxsaWFtKSwgbWlzc2luZyBlcnJvciBvbiAmbHQ7Y2hvaWNlJmd0OworICAgIGZhaWx1cmUgKFdpbGxpYW0pLCBtZW1vcnkgbGVhayBpbiBzY2hlbWFzIGRhdGF0eXBlIGZhY2V0cy48L2xpPgorICA8bGk+eG1sV3JpdGVyOiBwYXRjaCBmb3IgYmV0dGVyIERURCBzdXBwb3J0IChBbGZyZWQgTWlja2F1dHNjaCk8L2xpPgorICA8bGk+YnVnIGZpeGVzOiB4bWxYUGF0aExhbmdGdW5jdGlvbiBtZW1vcnkgbGVhayAoTWlrZSBIb21tZXkgYW5kIFdpbGxpYW0KKyAgICBCcmFjayksIG5vIElEIGVycm9ycyBpZiB1c2luZyBIVE1MX1BBUlNFX05PRVJST1IsIHhtbGNhdGFsb2cgZmFsbGJhY2tzIHRvCisgICAgVVJJIG9uIFNZU1RFTSBsb29rdXAgZmFpbHVyZSwgWEluY2x1ZGUgcGFyc2UgZmxhZ3MgaW5oZXJpdGFuY2UgKFdpbGxpYW0pLAorICAgIFhJbmNsdWRlIGFuZCBYUG9pbnRlciBmaXhlcyBmb3IgZW50aXRpZXMgKFdpbGxpYW0pLCBYTUwgcGFyc2VyIGJ1ZworICAgIHJlcG9ydGVkIGJ5IEhvbGdlciBSYXVjaCwgbmFub2h0dHAgZmQgbGVhayAoV2lsbGlhbSksICByZWdleHBzIGNoYXIKKyAgICBncm91cHMgJy0nIGhhbmRsaW5nIChXaWxsaWFtKSwgZGljdGlvbm5hcnkgcmVmZXJlbmNlIGNvdW50aW5nIHByb2JsZW1zLAorICAgIGRvIG5vdCBjbG9zZSBzdGRlcnIuPC9saT4KKyAgPGxpPnBlcmZvcm1hbmNlIHBhdGNoZXMgZnJvbSBQZXRyIFBhamFzPC9saT4KKyAgPGxpPkRvY3VtZW50YXRpb24gZml4ZXM6IFhNTF9DQVRBTE9HX0ZJTEVTIGluIG1hbiBwYWdlcyAoTWlrZSBIb21tZXkpPC9saT4KKyAgPGxpPmNvbXBpbGF0aW9uIGFuZCBwb3J0YWJpbGl0eSBmaXhlczogLS13aXRob3V0LXZhbGlkLCBjYXRhbG9nIGNsZWFudXBzCisgICAgKFBldGVyIEJyZWl0ZW5sb2huZXIpLCBNaW5nVyBwYXRjaCAoUm9sYW5kIFNjaHdpbmdlbCksIGNyb3NzLWNvbXBpbGF0aW9uCisgICAgdG8gV2luZG93cyAoQ2hyaXN0b3BoZSBkZSBWaWVubmUpLCAgLS13aXRoLWh0bWwtZGlyIGZpeHVwIChKdWxpbyBNZXJpbm8KKyAgICBWaWRhbCksIFdpbmRvd3MgYnVpbGQgKEVyaWMgWnVyY2hlcik8L2xpPgorPC91bD48aDM+Mi42Ljc6IEZlYiAyMyAyMDA0PC9oMz48dWw+PGxpPmRvY3VtZW50YXRpb246IHR1dG9yaWFsIHVwZGF0ZXMgKEpvaG4gRmxlY2spLCBiZW5jaG1hcmsgcmVzdWx0czwvbGk+CisgIDxsaT54bWxXcml0ZXI6IHVwZGF0ZXMgYW5kIGZpeGVzIChBbGZyZWQgTWlja2F1dHNjaCwgTHVjYXMgQnJhc2lsaW5vKTwvbGk+CisgIDxsaT5YUGF0aCBvcHRpbWl6YXRpb24gKFBldHIgUGFqYXMpPC9saT4KKyAgPGxpPkRURCBJRCBoYW5kbGluZyBvcHRpbWl6YXRpb248L2xpPgorICA8bGk+YnVnZml4ZXM6IHhwYXRoIG51bWJlciB3aXRoICAmZ3Q7IDE5IGZyYWN0aW9uYWwgKFdpbGxpYW0gQnJhY2spLCBwdXNoCisgICAgbW9kZSB3aXRoIHVuZXNjYXBlZCAnJmd0OycgY2hhcmFjdGVycywgZml4IHhtbGxpbnQgLS1zdHJlYW0gLS10aW1pbmcsIGZpeAorICAgIHhtbGxpbnQgLS1tZW1vcnkgLS1zdHJlYW0gbWVtb3J5IHVzYWdlLCB4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudAorICAgIGhhbmRsaW5nIE5VTEwsIHRyeWluZyB0byBmaXggUmVsYXgtTkcvUGVybCBpbnRlcmZhY2UuPC9saT4KKyAgPGxpPnB5dGhvbjogMi4zIGNvbXBhdGliaWxpdHksIHdoaXRlc3BhY2UgZml4ZXMgKE1hbGNvbG0gVHJlZGlubmljayk8L2xpPgorICA8bGk+QWRkZWQgcmVsYXhuZyBvcHRpb24gdG8geG1sbGludCAtLXNoZWxsPC9saT4KKzwvdWw+PGgzPjIuNi42OiBGZWIgMTIgMjAwNDwvaDM+PHVsPjxsaT5uYW5vaHR0cCBhbmQgbmFub2Z0cDogYnVmZmVyIG92ZXJmbG93IGVycm9yIG9uIFVSSSBwYXJzaW5nIChJZ29yIGFuZAorICAgIFdpbGxpYW0pIHJlcG9ydGVkIGJ5IFl1dWljaGkgVGVyYW5pc2hpPC9saT4KKyAgPGxpPmJ1Z2ZpeGVzOiBtYWtlIHRlc3QgYW5kIHBhdGggaXNzdWVzLCB4bWxXcml0ZXIgYXR0cmlidXRlIHNlcmlhbGl6YXRpb24KKyAgICAoV2lsbGlhbSBCcmFjayksIHhtbFdyaXRlciBpbmRlbnRhdGlvbiAoV2lsbGlhbSksIHNjaGVtYXMgdmFsaWRhdGlvbgorICAgIChFcmljIEhhc3psYWtpZXdpY3opLCBYSW5jbHVkZSBkaWN0aW9ubmFyaWVzIGlzc3VlcyAoV2lsbGlhbSBhbmQgT2xlZworICAgIFBhcmFzY2hlbmtvKSwgWEluY2x1ZGUgZW1wdHkgZmFsbGJhY2sgKFdpbGxpYW0pLCBIVE1MIHdhcm5pbmdzIChXaWxsaWFtKSwKKyAgICBYUG9pbnRlciBpbiBYSW5jbHVkZSAoV2lsbGlhbSksIFB5dGhvbiBuYW1lc3BhY2Ugc2VyaWFsaXphdGlvbiwKKyAgICBpc29sYXQxVG9VVEY4IGJvdW5kIGVycm9yIChBbGZyZWQgTWlja2F1dHNjaCksIG91dHB1dCBvZiBwYXJhbWV0ZXIKKyAgICBlbnRpdGllcyBpbiBpbnRlcm5hbCBzdWJzZXQgKFdpbGxpYW0pLCBpbnRlcm5hbCBzdWJzZXQgYnVnIGluIHB1c2ggbW9kZSwKKyAgICAmbHQ7eHM6YWxsJmd0OyBmaXggKEFsZXhleSBTYXJ5dGNoZXYpPC9saT4KKyAgPGxpPkJ1aWxkOiBmaXggZm9yIGF1dG9tYWtlLTEuOCAoQWxleGFuZGVyIFdpbnN0b24pLCB3YXJuaW5ncyByZW1vdmFsCisgICAgKFBoaWxpcCBMdWRsYW0pLCBTT0NLTEVOX1QgZGV0ZWN0aW9uIGZpeGVzIChEYW5pZWwgUmljaGFyZCksIGZpeAorICAgIC0td2l0aC1taW5pbXVtIGNvbmZpZ3VyYXRpb24uPC9saT4KKyAgPGxpPlhJbmNsdWRlOiBhbGxvdyB0aGUgMjAwMSBuYW1lc3BhY2Ugd2l0aG91dCB3YXJuaW5nLjwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOiBtaXNzaW5nIGV4YW1wbGUvaW5kZXguaHRtbCAoSm9obiBGbGVjayksIHZlcnNpb24KKyAgICBkZXBlbmRhbmNpZXMgKEpvaG4gRmxlY2spPC9saT4KKyAgPGxpPnJlYWRlciBBUEk6IHN0cnVjdHVyZWQgZXJyb3IgcmVwb3J0aW5nIChTdGV2ZSBCYWxsKTwvbGk+CisgIDxsaT5XaW5kb3dzIGNvbXBpbGF0aW9uOiBtaW5ndywgbXN5cyAoTWlraGFpbCBHcnVzaGluc2tpeSksIGZ1bmN0aW9uCisgICAgcHJvdG90eXBlIChDYW1lcm9uIEpvaG5zb24pLCBNU1ZDNiBjb21waWxlciB3YXJuaW5ncywgX1dJTlNPQ0tBUElfCisgIHBhdGNoPC9saT4KKyAgPGxpPlBhcnNlcnM6IGFkZGVkIHhtbEJ5dGVDb25zdW1lZChjdHh0KSBBUEkgdG8gZ2V0IHRoZSBieXRlIG9mZmVzdCBpbgorICAgIGlucHV0LjwvbGk+Cis8L3VsPjxoMz4yLjYuNTogSmFuIDI1IDIwMDQ8L2gzPjx1bD48bGk+QnVnZml4ZXM6IGRpY3Rpb25uYXJpZXMgZm9yIHNjaGVtYXMgKFdpbGxpYW0gQnJhY2spLCByZWdleHAgc2VnZmF1bHQKKyAgICAoV2lsbGlhbSksIHhzOmFsbCBwcm9ibGVtIChXaWxsaWFtKSwgYSBudW1iZXIgb2YgWFBvaW50ZXIgYnVnZml4ZXMKKyAgICAoV2lsbGlhbSksIHhtbGxpbnQgZXJyb3IgZ28gdG8gc3RkZXJyLCBEVEQgdmFsaWRhdGlvbiBwcm9ibGVtIHdpdGgKKyAgICBuYW1lc3BhY2UsIG1lbW9yeSBsZWFrIChXaWxsaWFtKSwgU0FYMSBjbGVhbnVwIGFuZCBtaW5pbWFsIG9wdGlvbnMgZml4ZXMKKyAgICAoTWFyayBWYWRvYyksIHBhcnNlciBjb250ZXh0IHJlc2V0IG9uIGVycm9yIChTaGF1biBNY0NhbmNlKSwgWFBhdGggdW5pb24KKyAgICBldmFsdWF0aW9uIHByb2JsZW0gKFdpbGxpYW0pICwgeG1sUmVhbGxvY0xvYyB3aXRoIE5VTEwgKEFsZWtzZXkgU2FuaW4pLAorICAgIFhNTCBTY2hlbWFzIGRvdWJsZSBmcmVlIChTdGV2ZSBCYWxsKSwgWEluY2x1ZGUgd2l0aCBubyBocmVmLCBhcmd1bWVudAorICAgIGNhbGxiYWNrcyBvcmRlciBmb3IgWFBhdGggY2FsbGJhY2tzIChGcmVkZXJpYyBQZXRlcnMpPC9saT4KKyAgPGxpPkRvY3VtZW50YXRpb246IHB5dGhvbiBzY3JpcHRzIChXaWxsaWFtIEJyYWNrKSwgeHNsdCBzdHlsZXNoZWV0cyAoSm9obgorICAgIEZsZWNrKSwgZG9jIChTdmVuIFppbW1lcm1hbiksIEkvTyBleGFtcGxlLjwvbGk+CisgIDxsaT5QeXRob24gYmluZGluZ3M6IGZpeGVzIChXaWxsaWFtKSwgZW51bSBzdXBwb3J0IChTdMOpcGhhbmUgQmlkb3VsKSwKKyAgICBzdHJ1Y3R1cmVkIGVycm9yIHJlcG9ydGluZyAoU3TDqXBoYW5lIEJpZG91bCk8L2xpPgorICA8bGk+WEluY2x1ZGU6IHZhcmlvdXMgZml4ZXMgZm9yIGNvbmZvcm1hbmNlLCBwcm9ibGVtIHJlbGF0ZWQgdG8gZGljdGlvbm5hcnkKKyAgICByZWZlcmVuY2VzIChXaWxsaWFtICZhbXA7IG1lKSwgcmVjdXJzaW9uIChXaWxsaWFtKTwvbGk+CisgIDxsaT54bWxXcml0ZXI6IGluZGVudGF0aW9uIChMdWNhcyBCcmFzaWxpbm8pLCBtZW1vcnkgbGVha3MgKEFsZnJlZAorICAgIE1pY2thdXRzY2gpLDwvbGk+CisgIDxsaT54bWxTY2hlbWFzOiBub3JtYWxpemVkU3RyaW5nIGRhdGF0eXBlIChKb2huIEJlbG1vbnRlKTwvbGk+CisgIDxsaT5jb2RlIGNsZWFudXAgZm9yIHN0cmluZ3MgZnVuY3Rpb25zIChXaWxsaWFtKTwvbGk+CisgIDxsaT5XaW5kb3dzOiBjb21waWxlciBwYXRjaGVzIChNYXJrIFZha29jKTwvbGk+CisgIDxsaT5QYXJzZXIgb3B0aW1pemF0aW9ucywgYSBmZXcgbmV3IFhQYXRoIGFuZCBkaWN0aW9ubmFyeSBBUElzIGZvciBmdXR1cmUKKyAgICBYU0xUIG9wdGltaXphdGlvbnMuPC9saT4KKzwvdWw+PGgzPjIuNi40OiBEZWMgMjQgMjAwMzwvaDM+PHVsPjxsaT5XaW5kb3dzIGJ1aWxkIGZpeGVzIChJZ29yIFpsYXRrb3ZpYyk8L2xpPgorICA8bGk+U29tZSBzZXJpb3VzIFhJbmNsdWRlIHByb2JsZW1zIHJlcG9ydGVkIGJ5IE9sZWcgUGFyYXNjaGVua28gYW5kPC9saT4KKyAgPGxpPlVuaXggYW5kIE1ha2VmaWxlIHBhY2thZ2luZyBmaXhlcyAobWUsIFdpbGxpYW0gQnJhY2ssPC9saT4KKyAgPGxpPkRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzIChKb2huIEZsZWNrLCBXaWxsaWFtIEJyYWNrKSwgZXhhbXBsZSBmaXgKKyAgICAoTHVjYXMgQnJhc2lsaW5vKTwvbGk+CisgIDxsaT5idWdmaXhlczogeG1sVGV4dFJlYWRlckV4cGFuZCgpIHdpdGggeG1sUmVhZGVyV2Fsa2VyLCBYUGF0aCBoYW5kbGluZyBvZgorICAgIE5VTEwgc3RyaW5ncyAoV2lsbGlhbSBCcmFjaykgLCBBUEkgYnVpbGRpbmcgcmVhZGVyIG9yIHBhcnNlciBmcm9tCisgICAgZmlsZWRlc2NyaXB0b3Igc2hvdWxkIG5vdCBjbG9zZSBpdCwgY2hhbmdlZCBYUGF0aCBzb3J0aW5nIHRvIGJlIHN0YWJsZQorICAgIGFnYWluIChXaWxsaWFtIEJyYWNrKSwgeG1sR2V0Tm9kZVBhdGgoKSBnZW5lcmF0aW5nICcobnVsbCknIChXaWxsaWFtCisgICAgQnJhY2spLCBEVEQgdmFsaWRhdGlvbiBhbmQgbmFtZXNwYWNlIGJ1ZyAoV2lsbGlhbSBCcmFjayksIFhNTCBTY2hlbWFzCisgICAgZG91YmxlIGluY2x1c2lvbiBiZWhhdmlvdXI8L2xpPgorPC91bD48aDM+Mi42LjM6IERlYyAxMCAyMDAzPC9oMz48dWw+PGxpPmRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgY2xlYW51cCAoRFYsIFdpbGxpYW0gQnJhY2ssIEpvaG4gRmxlY2spPC9saT4KKyAgPGxpPmFkZGVkIGEgcmVwb3NpdG9yeSBvZiBleGFtcGxlcywgZXhhbXBsZXMgZnJvbSBBbGVrc2V5IFNhbmluLCBEb2RqaQorICAgIFNla2V0ZWxpLCBBbGZyZWQgTWlja2F1dHNjaDwvbGk+CisgIDxsaT5XaW5kb3dzIHVwZGF0ZXM6IE1hcmsgVmFrb2MsIElnb3IgWmxhdGtvdmljLCBFcmljIFp1cmNoZXIsIE1pbmd3CisgICAgKEtlbm5ldGggSGFsZXkpPC9saT4KKyAgPGxpPlVuaWNvZGUgcmFuZ2UgY2hlY2tpbmcgKFdpbGxpYW0gQnJhY2spPC9saT4KKyAgPGxpPmNvZGUgY2xlYW51cCAoV2lsbGlhbSBCcmFjayk8L2xpPgorICA8bGk+UHl0aG9uIGJpbmRpbmdzOiBkb2MgKEpvaG4gRmxlY2spLCAgYnVnIGZpeGVzPC9saT4KKyAgPGxpPlVURi0xNiBjbGVhbnVwIGFuZCBCT00gaXNzdWVzIChXaWxsaWFtIEJyYWNrKTwvbGk+CisgIDxsaT5idWcgZml4ZXM6IElEIGFuZCB4bWxSZWFkZXIgdmFsaWRhdGlvbiwgWFBhdGggKFdpbGxpYW0gQnJhY2spLAorICAgIHhtbFdyaXRlciAoQWxmcmVkIE1pY2thdXRzY2gpLCBoYXNoLmggaW5jbHVzaW9uIHByb2JsZW0sIEhUTUwgcGFyc2VyCisgICAgKEphbWVzIEJ1cnNhKSwgYXR0cmlidXRlIGRlZmF1bHRpbmcgYW5kIHZhbGlkYXRpb24sIHNvbWUgc2VyaWFsaXphdGlvbgorICAgIGNsZWFudXBzLCBYTUxfR0VUX0xJTkUgbWFjcm8sIG1lbW9yeSBkZWJ1ZyB3aGVuIHVzaW5nIHRocmVhZHMgKFdpbGxpYW0KKyAgICBCcmFjayksIHNlcmlhbGl6YXRpb24gb2YgYXR0cmlidXRlcyBhbmQgZW50aXRpZXMgY29udGVudCwgeG1sV3JpdGVyCisgICAgKERhbmllbCBTY2h1bG1hbik8L2xpPgorICA8bGk+WEluY2x1ZGUgYnVnZml4LCBuZXcgQVBJcyBhbmQgdXBkYXRlIHRvIHRoZSBsYXN0IHZlcnNpb24gaW5jbHVkaW5nIHRoZQorICAgIG5hbWVzcGFjZSBjaGFuZ2UuPC9saT4KKyAgPGxpPlhNTCBTY2hlbWFzIGltcHJvdmVtZW50czogaW5jbHVkZSAoUm9iZXJ0IFN0ZXBhbmVrKSwgaW1wb3J0IGFuZAorICAgIG5hbWVzcGFjZSBoYW5kbGluZywgZml4ZWQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdHJvdWJsZXMsIGFkZGVkIGV4YW1wbGVzCisgICAgYmFzZWQgb24gRXJpYyB2YW4gZGVyIFZsaXN0IGJvb2ssIHJlZ2V4cCBmaXhlczwvbGk+CisgIDxsaT5wcmVsaW1pbmFyeSBwYXR0ZXJuIHN1cHBvcnQgZm9yIHN0cmVhbWluZyAobmVlZGVkIGZvciBzY2hlbWFzCisgICAgY29uc3RyYWludHMpLCBhZGRlZCB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuKCkgdG8gY29sbGVjdCBzdWJkb2N1bWVudAorICAgIHdoZW4gc3RyZWFtaW5nLjwvbGk+CisgIDxsaT52YXJpb3VzIGZpeGVzIGluIHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsaW5nPC9saT4KKzwvdWw+PGgzPjIuNi4yOiBOb3YgNCAyMDAzPC9oMz48dWw+PGxpPlhQYXRoIGNvbnRleHQgdW5yZWdpc3RyYXRpb24gZml4ZXM8L2xpPgorICA8bGk+dGV4dCBub2RlIGNvYWxlc2NpbmcgZml4ZXMgKE1hcmsgTGlsYmFjayk8L2xpPgorICA8bGk+QVBJIHRvIHNjcmVhdGUgYSBXM0MgU2NoZW1hcyBmcm9tIGFuIGV4aXN0aW5nIGRvY3VtZW50IChTdGV2ZSBCYWxsKTwvbGk+CisgIDxsaT5CZU9TIHBhdGNoZXMgKE1hcmNpbiAnU2hhcmQnIEtvbmlja2kpPC9saT4KKyAgPGxpPnhtbFN0clZQcmludGYgZnVuY3Rpb24gYWRkZWQgKEFsZWtzZXkgU2FuaW4pPC9saT4KKyAgPGxpPmNvbXBpbGF0aW9uIGZpeGVzIChNYXJrIFZha29jKTwvbGk+CisgIDxsaT5zdGRpbiBwYXJzaW5nIGZpeCAoV2lsbGlhbSBCcmFjayk8L2xpPgorICA8bGk+YSBwb3N0ZXJpb3JpIERURCB2YWxpZGF0aW9uIGZpeGVzPC9saT4KKyAgPGxpPnhtbFJlYWRlciBidWcgZml4ZXM6IFdhbGtlciBmaXhlcywgcHl0aG9uIGJpbmRpbmdzPC9saT4KKyAgPGxpPmZpeGVkIHhtbFN0b3BQYXJzZXIoKSB0byByZWFsbHkgc3RvcCB0aGUgcGFyc2VyIGFuZCBlcnJvcnM8L2xpPgorICA8bGk+YWx3YXlzIGdlbmVyYXRlIGxpbmUgbnVtYmVycyB3aGVuIHVzaW5nIHRoZSBuZXcgeG1sUmVhZHh4eAorICBmdW5jdGlvbnM8L2xpPgorICA8bGk+YWRkZWQgWEluY2x1ZGUgc3VwcG9ydCB0byB0aGUgeG1sUmVhZGVyIGludGVyZmFjZTwvbGk+CisgIDxsaT5pbXBsZW1lbnRlZCBYTUxfUEFSU0VfTk9ORVQgcGFyc2VyIG9wdGlvbjwvbGk+CisgIDxsaT5Eb2NCb29rIFhTTFQgcHJvY2Vzc2luZyBidWcgZml4ZWQ8L2xpPgorICA8bGk+SFRNTCBzZXJpYWxpemF0aW9uIGZvciAmbHQ7cCZndDsgZWxlbWVudHMgKFdpbGxpYW0gQnJhY2sgYW5kIG1lKTwvbGk+CisgIDxsaT5YUG9pbnRlciBmYWlsdXJlIGluIFhJbmNsdWRlIGFyZSBub3cgaGFuZGxlZCBhcyByZXNvdXJjZSBlcnJvcnM8L2xpPgorICA8bGk+Zml4ZWQgeG1sbGludCAtLWh0bWwgdG8gdXNlIHRoZSBIVE1MIHNlcmlhbGl6ZXIgb24gb3V0cHV0IChhZGRlZAorICAgIC0teG1sb3V0IHRvIGltcGxlbWVudCB0aGUgcHJldmlvdXMgYmVoYXZpb3VyIG9mIHNhdmluZyBpdCB1c2luZyB0aGUgWE1MCisgICAgc2VyaWFsaXplcik8L2xpPgorPC91bD48aDM+Mi42LjE6IE9jdCAyOCAyMDAzPC9oMz48dWw+PGxpPk1vc3RseSBidWdmaXhlcyBhZnRlciB0aGUgYmlnIDIuNi4wIGNoYW5nZXM8L2xpPgorICA8bGk+VW5peCBjb21waWxhdGlvbiBwYXRjaGVzOiBsaWJ4bWwubTQgKFBhdHJpY2sgV2VsY2hlKSwgd2FybmluZ3MgY2xlYW51cAorICAgIChXaWxsaWFtIEJyYWNrKTwvbGk+CisgIDxsaT5XaW5kb3dzIGNvbXBpbGF0aW9uIHBhdGNoZXMgKEpvYWNoaW0gQmF1Y2gsIFN0ZXBoYW5lIEJpZG91bCwgSWdvcgorICAgIFpsYXRrb3ZpYyk8L2xpPgorICA8bGk+eG1sV3JpdGVyIGJ1Z2ZpeCAoQWxmcmVkIE1pY2thdXRzY2gpPC9saT4KKyAgPGxpPmNodmFsaWQuW2NoXTogY291cGxlIG9mIGZpeGVzIGZyb20gU3RlcGhhbmUgQmlkb3VsPC9saT4KKyAgPGxpPmNvbnRleHQgcmVzZXQ6IGVycm9yIHN0YXRlIHJlc2V0LCBwdXNoIHBhcnNlciByZXNldCAoR3JhaGFtCisgIEJlbm5ldHQpPC9saT4KKyAgPGxpPmNvbnRleHQgcmV1c2U6IGdlbmVyYXRlIGVycm9ycyBpZiBmaWxlIGlzIG5vdCByZWFkYWJsZTwvbGk+CisgIDxsaT5kZWZhdWx0ZWQgYXR0cmlidXRlcyBmb3IgZWxlbWVudCBjb21pbmcgZnJvbSBpbnRlcm5hbCBlbnRpdGllcworICAgIChTdGVwaGFuZSBCaWRvdWwpPC9saT4KKyAgPGxpPlB5dGhvbjogdGFiIGFuZCBzcGFjZXMgbWl4IChXaWxsaWFtIEJyYWNrKTwvbGk+CisgIDxsaT5FcnJvciBoYW5kbGVyIGNvdWxkIGNyYXNoIGluIERURCB2YWxpZGF0aW9uIGluIDIuNi4wPC9saT4KKyAgPGxpPnhtbFJlYWRlcjogZG8gbm90IHVzZSB0aGUgZG9jdW1lbnQgb3IgZWxlbWVudCBfcHJpdmF0ZSBmaWVsZDwvbGk+CisgIDxsaT50ZXN0U0FYLmM6IGF2b2lkIGEgcHJvYmxlbSB3aXRoIHNvbWUgUElzIChNYXNzaW1vIE1vcmFyYSk8L2xpPgorICA8bGk+Z2VuZXJhbCBidWcgZml4ZXM6IG1hbmRhdG9yeSBlbmNvZGluZyBpbiB0ZXh0IGRlY2wsIHNlcmlhbGl6aW5nCisgICAgRG9jdW1lbnQgRnJhZ21lbnQgbm9kZXMsIHhtbFNlYXJjaE5zIDIuNi4wIHByb2JsZW0gKEthc2ltaWVyIEJ1Y2hjaWspLAorICAgIFhQYXRoIGVycm9ycyBub3QgcmVwb3J0ZWQsICBzbG93IEhUTUwgcGFyc2luZyBvZiBsYXJnZSBkb2N1bWVudHMuPC9saT4KKzwvdWw+PGgzPjIuNi4wOiBPY3QgMjAgMjAwMzwvaDM+PHVsPjxsaT5NYWpvciByZXZpc2lvbiByZWxlYXNlOiBzaG91bGQgYmUgQVBJIGFuZCBBQkkgY29tcGF0aWJsZSBidXQgZ290IGEgbG90CisgICAgb2YgY2hhbmdlPC9saT4KKyAgPGxpPkluY3JlYXNlZCB0aGUgbGlicmFyeSBtb2R1bGFyaXR5LCBmYXIgbW9yZSBvcHRpb25zIGNhbiBiZSBzdHJpcHBlZCBvdXQsCisgICAgYSAtLXdpdGgtbWluaW11bSBjb25maWd1cmF0aW9uIHdpbGwgd2VpZ2h0IGFyb3VuZCAxNjBLQnl0ZXM8L2xpPgorICA8bGk+VXNlIHBlciBwYXJzZXIgYW5kIHBlciBkb2N1bWVudCBkaWN0aW9ubmFyeSwgYWxsb2NhdGUgbmFtZXMgYW5kIHNtYWxsCisgICAgdGV4dCBub2RlcyBmcm9tIHRoZSBkaWN0aW9ubmFyeTwvbGk+CisgIDxsaT5Td2l0Y2ggdG8gYSBTQVgyIGxpa2UgcGFyc2VyIHJld3JvdGUgbW9zdCBvZiB0aGUgWE1MIHBhcnNlciBjb3JlLAorICAgIHByb3ZpZGVzIG5hbWVzcGFjZSByZXNvbHV0aW9uIGFuZCBkZWZhdWx0ZWQgYXR0cmlidXRlcywgbWluaW1pemUgbWVtb3J5CisgICAgYWxsb2NhdGlvbnMgYW5kIGNvcGllcywgbmFtZXNwYWNlIGNoZWNraW5nIGFuZCBzcGVjaWZpYyBlcnJvciBoYW5kbGluZywKKyAgICBpbW11dGFibGUgYnVmZmVycywgbWFrZSBwcmVkZWZpbmVkIGVudGl0aWVzIHN0YXRpYyBzdHJ1Y3R1cmVzLCBldGMuLi48L2xpPgorICA8bGk+cmV3cm90ZSBhbGwgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBsaWJyYXJ5LCBhbGwgZXJyb3JzIGNhbiBiZQorICAgIGludGVyY2VwdGVkIGF0IGEgc3RydWN0dXJlZCBsZXZlbCwgd2l0aCBwcmVjaXNlIGluZm9ybWF0aW9uCisgIGF2YWlsYWJsZS48L2xpPgorICA8bGk+TmV3IHNpbXBsZXIgYW5kIG1vcmUgZ2VuZXJpYyBYTUwgYW5kIEhUTUwgcGFyc2VyIEFQSXMsIGFsbG93aW5nIHRvCisgICAgZWFzaWxseSBtb2RpZnkgdGhlIHBhcnNpbmcgb3B0aW9ucyBhbmQgcmV1c2UgcGFyc2VyIGNvbnRleHQgZm9yIG11bHRpcGxlCisgICAgY29uc2VjdXRpdmUgZG9jdW1lbnRzLjwvbGk+CisgIDxsaT5TaW1pbGFyIG5ldyBBUElzIGZvciB0aGUgeG1sUmVhZGVyLCBmb3Igb3B0aW9ucyBhbmQgcmV1c2UsIHByb3ZpZGVkIG5ldworICAgIGZ1bmN0aW9ucyB0byBhY2Nlc3MgY29udGVudCBhcyBjb25zdCBzdHJpbmdzLCB1c2UgdGhlbSBmb3IgUHl0aG9uCisgIGJpbmRpbmdzPC9saT4KKyAgPGxpPmEgIGxvdCBvZiBvdGhlciBzbWFsbGVyIEFQSSBpbXByb3ZlbWVudHM6IHhtbFN0clByaW50ZiAoQWxla3NleSBTYW5pbiksCisgICAgV2Fsa2VyIGkuZS4gcmVhZGVyIG9uIGEgZG9jdW1lbnQgdHJlZSBiYXNlZCBvbiBBbGZyZWQgTWlja2F1dHNjaCBjb2RlLAorICAgIG1ha2Ugcm9vbSBpbiBub2RlcyBmb3IgbGluZSBudW1iZXJzLCByZWZlcmVuY2UgY291bnRpbmcgYW5kIGZ1dHVyZSBQU1ZJCisgICAgZXh0ZW5zaW9ucywgZ2VuZXJhdGlvbiBvZiBjaGFyYWN0ZXIgcmFuZ2VzIHRvIGJlIGNoZWNrZWQgd2l0aCBmYXN0ZXIKKyAgICBhbGdvcml0aG0gKFdpbGxpYW0pLCAgeG1sUGFyc2VyTWF4RGVwdGggKENydXRjaGVyIER1bm5hdmFudCksIGJ1ZmZlcgorICAgIGFjY2VzczwvbGk+CisgIDxsaT5OZXcgeG1sV3JpdGVyIEFQSSBwcm92aWRlZCBieSBBbGZyZWQgTWlja2F1dHNjaDwvbGk+CisgIDxsaT5TY2hlbWFzOiBiYXNlNjQgc3VwcG9ydCBieSBBbnRob255IENhcnJpY288L2xpPgorICA8bGk+UGFyc2VyJmx0Oy0mZ3Q7SFRUUCBpbnRlZ3JhdGlvbiBmaXgsIHByb3BlciBwcm9jZXNzaW5nIG9mIHRoZSBNaW1lLVR5cGUKKyAgICBhbmQgY2hhcnNldCBpbmZvcm1hdGlvbiBpZiBhdmFpbGFibGUuPC9saT4KKyAgPGxpPlJlbGF4LU5HOiBidWcgZml4ZXMgaW5jbHVkaW5nIHRoZSBvbmUgcmVwb3J0ZWQgYnkgTWFydGlqbiBGYWFzc2VuIGFuZAorICAgIHplcm9Pck1vcmUsIGJldHRlciBlcnJvciByZXBvcnRpbmcuPC9saT4KKyAgPGxpPlB5dGhvbiBiaW5kaW5ncyAoU3TDqXBoYW5lIEJpZG91bCksIG5ldmVyIHVzZSBzdGRvdXQgZm9yIGVycm9ycworICBvdXRwdXQ8L2xpPgorICA8bGk+UG9ydGFiaWxpdHk6IGFsbCB0aGUgaGVhZGVycyBoYXZlIG1hY3JvcyBmb3IgZXhwb3J0IGFuZCBjYWxsaW5nCisgICAgY29udmVudGlvbiBkZWZpbml0aW9ucyAoSWdvciBabGF0a292aWMpLCBWTVMgdXBkYXRlIChDcmFpZyBBLiBCZXJyeSksCisgICAgV2luZG93czogdGhyZWFkcyAoSmVzc2UgUGVsdG9uKSwgQm9ybGFuZCBjb21waWxlciAoRXJpYyBadXJjaGVyLCAgSWdvciksCisgICAgTWluZ3cgKElnb3IpLCB0eXBvcyAoTWFyayBWYWtvYyksICBiZXRhIHZlcnNpb24gKFN0ZXBoYW5lIEJpZG91bCksCisgICAgd2FybmluZyBjbGVhbnVwcyBvbiBBSVggYW5kIE1JUFMgY29tcGlsZXJzIChXaWxsaWFtIEJyYWNrKSwgQmVPUyAoTWFyY2luCisgICAgJ1NoYXJkJyBLb25pY2tpKTwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uIGZpeGVzIGFuZCBSRUFETUUgKFdpbGxpYW0gQnJhY2spLCBzZWFyY2ggZml4IChXaWxsaWFtKSwKKyAgICB0dXRvcmlhbCB1cGRhdGVzIChKb2huIEZsZWNrKSwgbmFtZXNwYWNlIGRvY3MgKFN0ZWZhbiBLb3N0KTwvbGk+CisgIDxsaT5CdWcgZml4ZXM6IHhtbENsZWFudXBQYXJzZXIgKERhdmUgQmVja2V0dCksIHRocmVhZGluZyB1bmluaXRpYWxpemVkCisgICAgbXV0ZXhlcywgSFRNTCBkb2N0eXBlIGxvd2VyY2FzZSwgIFNBWC9JTyAoV2lsbGlhbSksIGNvbXByZXNzaW9uIGRldGVjdGlvbgorICAgIGFuZCByZXN0b3JlIChXaWxsaWFtKSwgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGluIERURHMgKFdpbGxpYW0pLCBuYW1lc3BhY2UKKyAgICBvbiBhdHRyaWJ1dGUgaW4gSFRNTCBvdXRwdXQgKFdpbGxpYW0pLCBpbnB1dCBmaWxlbmFtZSAoUm9iIFJpY2hhcmRzKSwKKyAgICBuYW1lc3BhY2UgRFREIHZhbGlkYXRpb24sIHhtbFJlcGxhY2VOb2RlIChDaHJpcyBSeWxhbmQpLCBJL08gY2FsbGJhY2tzCisgICAgKE1hcmt1cyBLZWltKSwgQ0RBVEEgc2VyaWFsaXphdGlvbiAoU2hhdW4gTWNDYW5jZSksIHhtbFJlYWRlciAoUGV0ZXIKKyAgICBEZXJyKSwgaGlnaCBjb2RlcG9pbnQgY2hhcnJlZiBsaWtlICZhbXA7I3gxMEZGRkY7LCBidWZmZXIgYWNjZXNzIGluIHB1c2gKKyAgICBtb2RlIChKdXN0aW4gRmxldGNoZXIpLCBUTFMgdGhyZWFkcyBvbiBXaW5kb3dzIChKZXNzZSBQZWx0b24pLCBYUGF0aCBidWcKKyAgICAoV2lsbGlhbSksIHhtbENsZWFudXBQYXJzZXIgKE1hcmMgTGl5YW5hZ2UpLCBDREFUQSBvdXRwdXQgKFdpbGxpYW0pLCBIVFRQCisgICAgZXJyb3IgaGFuZGxpbmcuPC9saT4KKyAgPGxpPnhtbGxpbnQgb3B0aW9uczogLS1kdGR2YWxpZGZwaSBmb3IgVG9iaWFzIFJlaWYsIC0tc2F4MSBmb3IgY29tcGF0CisgICAgdGVzdGluZywgIC0tbm9kaWN0IGZvciBidWlsZGluZyB3aXRob3V0IHRyZWUgZGljdGlvbm5hcnksIC0tbm9jZGF0YSB0bworICAgIHJlcGxhY2UgQ0RBVEEgYnkgdGV4dCwgLS1uc2NsZWFuIHRvIHJlbW92ZSBzdXJwZXJmbHVvdXMgIG5hbWVzcGFjZQorICAgIGRlY2xhcmF0aW9uczwvbGk+CisgIDxsaT5hZGRlZCB4bWwyLWNvbmZpZyAtLWxpYnRvb2wtbGlicyBvcHRpb24gZnJvbSBLZXZpbiBQLiBGbGVtaW5nPC9saT4KKyAgPGxpPmEgbG90IG9mIHByb2ZpbGluZyBhbmQgdHVuaW5nIG9mIHRoZSBjb2RlLCBzcGVlZHVwIHBhdGNoIGZvcgorICAgIHhtbFNlYXJjaE5zKCkgYnkgTHVjYSBQYWRvdmFuaS4gVGhlIHhtbFJlYWRlciBzaG91bGQgZG8gZmFyIGxlc3MKKyAgICBhbGxvY2F0aW9uIGFuZCBpdCBzcGVlZCBzaG91bGQgZ2V0IGNsb3NlciB0byBTQVguIENocmlzIEFuZGVyc29uIHdvcmtlZAorICAgIG9uIHNwZWVkaW5nIGFuZCBjbGVhbmluZyB1cCByZXBldGl0aXZlIGNoZWNraW5nIGNvZGUuPC9saT4KKyAgPGxpPmNsZWFudXAgb2YgIm1ha2UgdGVzdHMiPC9saT4KKyAgPGxpPmxpYnhtbC0yLjAtdW5pbnN0YWxsZWQucGMgZnJvbSBNYWxjb2xtIFRyZWRpbm5pY2s8L2xpPgorICA8bGk+ZGVhY3RpdmF0ZWQgdGhlIGJyb2tlbiBkb2NCb29rIFNHTUwgcGFyc2VyIGNvZGUgYW5kIHBsdWdnZWQgdGhlIFhNTAorICAgIHBhcnNlciBpbnN0ZWFkLjwvbGk+Cis8L3VsPjxoMz4yLjUuMTE6IFNlcCA5IDIwMDM8L2gzPjxwPkEgYnVnZml4IG9ubHkgcmVsZWFzZTo8L3A+PHVsPjxsaT5yaXNrIG9mIGNyYXNoIGluIFJlbGF4LU5HPC9saT4KKyAgPGxpPnJpc2sgb2YgY3Jhc2ggd2hlbiB1c2luZyBtdWx0aXRocmVhZGVkIHByb2dyYW1zPC9saT4KKzwvdWw+PGgzPjIuNS4xMDogQXVnIDE1IDIwMDM8L2gzPjxwPkEgYnVnZml4ZXMgb25seSByZWxlYXNlPC9wPjx1bD48bGk+V2luZG93cyBNYWtlZmlsZXMgKFdpbGxpYW0gQnJhY2spPC9saT4KKyAgPGxpPlVURi0xNiBzdXBwb3J0IGZpeGVzIChNYXJrIEl0emNvdml0eik8L2xpPgorICA8bGk+TWFrZWZpbGUgYW5kIHBvcnRhYmlsaXR5IChXaWxsaWFtIEJyYWNrKSBhdXRvbWFrZSwgTGludXggYWxwaGEsIE1pbmd3CisgICAgb24gV2luZG93cyAoTWlraGFpbCBHcnVzaGluc2tpeSk8L2xpPgorICA8bGk+SFRNTCBwYXJzZXIgKE9saXZlciBTdG9lbmViZXJnKTwvbGk+CisgIDxsaT5YSW5jbHVkZSBwZXJmb3JtYW5jZSBwcm9ibGVtIHJlcG9ydGVkIGJ5IEtldmluIFJ1c2NvZTwvbGk+CisgIDxsaT5YTUwgcGFyc2VyIHBlcmZvcm1hbmNlIHByb2JsZW0gcmVwb3J0ZWQgYnkgR3JhbnQgR29vZGFsZTwvbGk+CisgIDxsaT54bWxTQVhQYXJzZURURCgpIGJ1ZyBmaXggZnJvbSBNYWxjb2xtIFRyZWRpbm5pY2s8L2xpPgorICA8bGk+YW5kIGEgY291cGxlIG90aGVyIGNsZWFudXA8L2xpPgorPC91bD48aDM+Mi41Ljk6IEF1ZyA5IDIwMDM8L2gzPjx1bD48bGk+YnVnZml4ZXM6IElQdjYgcG9ydGFiaWxpdHksIHhtbEhhc05zUHJvcCAoTWFya3VzIEtlaW0pLCBXaW5kb3dzIGJ1aWxkCisgICAgKFdpbGlhbSBCcmFrZSwgSmVzc2UgUGVsdG9uLCBJZ29yKSwgU2NoZW1hcyAoUGV0ZXIgU29iaXNjaCksIHRocmVhZGluZworICAgIChSb2IgUmljaGFyZHMpLCBoZXhCaW5hcnkgdHlwZSAoKSwgVVRGLTE2IEJPTSAoRG9kamkgU2VrZXRlbGkpLAorICAgIHhtbFJlYWRlciwgUmVsYXgtTkcgc2NoZW1hcyBjb21waWxhdGlvbiwgbmFtZXNwYWNlIGhhbmRsaW5nLCAgRVhTTFQgKFNlYW4KKyAgICBHcmlmZmluKSwgSFRNTCBwYXJzaW5nIHByb2JsZW0gKFdpbGxpYW0gQnJhY2spLCBEVEQgdmFsaWRhdGlvbiBmb3IgbWl4ZWQKKyAgICBjb250ZW50ICsgbmFtZXNwYWNlcywgSFRNTCBzZXJpYWxpemF0aW9uLCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uLAorICAgIHByb2dyZXNzaXZlIEhUTUwgcGFyc2VyPC9saT4KKyAgPGxpPmJldHRlciBpbnRlcmZhY2VzIGZvciBSZWxheC1ORyBlcnJvciBoYW5kbGluZyAoSm9hY2hpbSBCYXVjaCwgKTwvbGk+CisgIDxsaT5hZGRpbmcgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZSgpIGZvciBYSW5jbHVkJ2luZyBpbiBhIHN1YnRyZWU8L2xpPgorICA8bGk+ZG9jIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMgKEpvaG4gRmxlY2spPC9saT4KKyAgPGxpPmNvbmZpZ3VyZSBmbGFnIGZvciAtd2l0aC1mZXhjZXB0aW9ucyB3aGVuIGVtYmVkZGluZyBpbiBDKys8L2xpPgorICA8bGk+Y291cGxlIG9mIG5ldyBVVEYtOCBoZWxwZXIgZnVuY3Rpb25zIChXaWxsaWFtIEJyYWNrKTwvbGk+CisgIDxsaT5nZW5lcmFsIGVuY29kaW5nIGNsZWFudXAgKyBJU08tODg1OS14IHdpdGhvdXQgaWNvbnYgKFBldGVyIEphY29iaSk8L2xpPgorICA8bGk+eG1sVGV4dFJlYWRlciBjbGVhbnVwICsgZW51bSBmb3Igbm9kZSB0eXBlcyAoQmpvcm4gUmVlc2UpPC9saT4KKyAgPGxpPmdlbmVyYWwgY29tcGlsYXRpb24vd2FybmluZyBjbGVhbnVwIFNvbGFyaXMvSFAtVVgvLi4uIChXaWxsaWFtCisgIEJyYWNrKTwvbGk+Cis8L3VsPjxoMz4yLjUuODogSnVsIDYgMjAwMzwvaDM+PHVsPjxsaT5idWdmaXhlczogWFBhdGgsIFhJbmNsdWRlLCBmaWxlL1VSSSBtYXBwaW5nLCBVVEYtMTYgc2F2ZSAoTWFyaworICAgIEl0emNvdml0eiksIFVURi04IGNoZWNraW5nLCBVUkkgc2F2aW5nLCBlcnJvciBwcmludGluZyAoV2lsbGlhbSBCcmFjayksCisgICAgUEkgcmVsYXRlZCBtZW1sZWFrLCBjb21waWxhdGlvbiB3aXRob3V0IHNjaGVtYXMgb3Igd2l0aG91dCB4cGF0aCAoSm9lcmcKKyAgICBTY2htaXR6LUxpbm5ld2ViZXIvR2FycnkgUGVubmluZ3RvbiksIHhtbFVubGlua05vZGUgcHJvYmxlbSB3aXRoIERURHMsCisgICAgcnBtIHByb2JsZW0gb24gLCBpODZfNjQsIHJlbW92ZWQgYSBmZXcgY29tcGlsYXRpb24gcHJvYmxlbXMgZnJvbSAyLjUuNywKKyAgICB4bWxJT1BhcnNlRFRELCBhbmQgeG1sU0FYUGFyc2VEVEQgKE1hbGNvbG0gVHJlZGlubmljayk8L2xpPgorICA8bGk+cG9ydGFiaWxpdHk6IERKR1BQIChNc0RvcykgLCBPcGVuVk1TIChDcmFpZyBBLiBCZXJyeSk8L2xpPgorICA8bGk+V2lsbGlhbSBCcmFjayBmaXhlZCBtdWx0aXRocmVhZGluZyBsb2NrIHByb2JsZW1zPC9saT4KKyAgPGxpPklQdjYgcGF0Y2ggZm9yIEZUUCBhbmQgSFRUUCBhY2Nlc3NlcyAoQXJjaGFuYSBTaGFoL1dpcHJvKTwvbGk+CisgIDxsaT5XaW5kb3dzIGZpeGVzIChJZ29yIFpsYXRrb3ZpYywgIEVyaWMgWnVyY2hlciksIHRocmVhZGluZyAoU3TDqXBoYW5lCisgICAgQmlkb3VsKTwvbGk+CisgIDxsaT5BIGZldyBXM0MgU2NoZW1hcyBTdHJ1Y3R1cmUgaW1wcm92ZW1lbnRzPC9saT4KKyAgPGxpPlczQyBTY2hlbWFzIERhdGF0eXBlIGltcHJvdmVtZW50cyAoQ2hhcmxpZSBCb3plbWFuKTwvbGk+CisgIDxsaT5QeXRob24gYmluZGluZ3MgZm9yIHRocmVhZCBnbG9iYWxzIChTdMOpcGhhbmUgQmlkb3VsKSwgYW5kIG1ldGhvZC9jbGFzcworICAgIGdlbmVyYXRvcjwvbGk+CisgIDxsaT5hZGRlZCAtLW5vbmV0IG9wdGlvbiB0byB4bWxsaW50PC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzIChKb2huIEZsZWNrKTwvbGk+Cis8L3VsPjxoMz4yLjUuNzogQXByIDI1IDIwMDM8L2gzPjx1bD48bGk+UmVsYXgtTkc6IENvbXBpbGluZyB0byByZWdleHAgYW5kIHN0cmVhbWluZyB2YWxpZGF0aW9uIG9uIHRvcCBvZiB0aGUKKyAgICB4bWxSZWFkZXIgaW50ZXJmYWNlLCBhZGRlZCB0byB4bWxsaW50IC0tc3RyZWFtPC9saT4KKyAgPGxpPnhtbFJlYWRlcjogRXhwYW5kKCksIE5leHQoKSBhbmQgRE9NIGFjY2VzcyBnbHVlLCBidWcgZml4ZXM8L2xpPgorICA8bGk+U3VwcG9ydCBmb3IgbGFyZ2UgZmlsZXM6IFJHTiB2YWxpZGF0ZWQgYSA0LjVHQiBpbnN0YW5jZTwvbGk+CisgIDxsaT5UaHJlYWQgc3VwcG9ydCBpcyBub3cgY29uZmlndXJlZCBpbiBieSBkZWZhdWx0PC9saT4KKyAgPGxpPkZpeGVzOiB1cGRhdGUgb2YgdGhlIFRyaW8gY29kZSAoQmpvcm4pLCBXWFMgRGF0ZSBhbmQgRHVyYXRpb24gZml4ZXMKKyAgICAoQ2hhcmxlcyBCb3plbWFuKSwgRFREIGFuZCBuYW1lc3BhY2VzIChCcmVudCBIZW5kcmlja3MpLCBIVE1MIHB1c2ggcGFyc2VyCisgICAgYW5kIHplcm8gYnl0ZXMgaGFuZGxpbmcsIHNvbWUgbWlzc2luZyBXaW5kb3dzIGZpbGUgcGF0aCBjb252ZXJzaW9ucywKKyAgICBiZWhhdmlvdXIgb2YgdGhlIHBhcnNlciBhbmQgdmFsaWRhdG9yIGluIHRoZSBwcmVzZW5jZSBvZiAib3V0IG9mIG1lbW9yeSIKKyAgICBlcnJvciBjb25kaXRpb25zPC9saT4KKyAgPGxpPmV4dGVuZGVkIHRoZSBBUEkgdG8gYmUgYWJsZSB0byBwbHVnIGEgZ2FyYmFnZSBjb2xsZWN0aW5nIG1lbW9yeQorICAgIGFsbG9jYXRvciwgYWRkZWQgeG1sTWFsbG9jQXRvbWljKCkgYW5kIG1vZGlmaWVkIHRoZSBhbGxvY2F0aW9ucworICAgIGFjY29yZGluZ2x5LjwvbGk+CisgIDxsaT5QZXJmb3JtYW5jZXM6IHJlbW92ZWQgZXhjZXNzaXZlIG1hbGxvYygpIGNhbGxzLCBzcGVlZHVwIG9mIHRoZSBwdXNoIGFuZAorICAgIHhtbFJlYWRlciBpbnRlcmZhY2VzLCByZW1vdmVkIGV4Y2Vzc2l2ZSB0aHJlYWQgbG9ja2luZzwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOiBtYW4gcGFnZSAoSm9obiBGbGVjayksIHhtbFJlYWRlciBkb2N1bWVudGF0aW9uPC9saT4KKyAgPGxpPlB5dGhvbjogYWRkaW5nIGJpbmRpbmcgZm9yIHhtbENhdGFsb2dBZGRMb2NhbCAoQnJlbnQgTSBIZW5kcmlja3MpPC9saT4KKzwvdWw+PGgzPjIuNS42OiBBcHIgMSAyMDAzPC9oMz48dWw+PGxpPkZpeGVkIFczQyBYTUwgU2NoZW1hcyBkYXRhdHlwZSwgc2hvdWxkIGJlIGNvbXBsaWFudCBub3cgZXhjZXB0IGZvcgorICAgIGJpbkhleCBhbmQgYmFzZTY0IHdoaWNoIGFyZSBub3Qgc3VwcG9ydGVkIHlldC48L2xpPgorICA8bGk+YnVnIGZpeGVzOiBub24tQVNDSUkgSURzLCBIVE1MIG91dHB1dCwgWEluY2x1ZGUgb24gbGFyZ2UgZG9jcyBhbmQKKyAgICBYSW5jbHVkZSBlbnRpdGllcyBoYW5kbGluZywgZW5jb2RpbmcgZGV0ZWN0aW9uIG9uIGV4dGVybmFsIHN1YnNldHMsIFhNTAorICAgIFNjaGVtYXMgYnVncyBhbmQgbWVtb3J5IGxlYWtzLCBIVE1MIHBhcnNlciAoSmFtZXMgQnVyc2EpPC9saT4KKyAgPGxpPnBvcnRhYmlsaXR5OiBweXRob24vdHJpbyAoQWxiZXJ0IENoaW4pLCBTdW4gY29tcGlsZXIgd2FybmluZ3M8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbjogYWRkZWQgLS1yZWxheG5nIG9wdGlvbiB0byB4bWxsaW50IG1hbiBwYWdlIChKb2huKTwvbGk+CisgIDxsaT5pbXByb3ZlZCBlcnJvciByZXBvcnRpbmc6IHhtbDpzcGFjZSwgc3RhcnQvZW5kIHRhZyBtaXNtYXRjaGVzLCBSZWxheCBORworICAgIGVycm9yczwvbGk+Cis8L3VsPjxoMz4yLjUuNTogTWFyIDI0IDIwMDM8L2gzPjx1bD48bGk+TG90IG9mIGZpeGVzIG9uIHRoZSBSZWxheCBORyBpbXBsZW1lbnRhdGlvbi4gTW9yZSB0ZXN0aW5nIGluY2x1ZGluZworICAgIERvY0Jvb2sgYW5kIFRFSSBleGFtcGxlcy48L2xpPgorICA8bGk+SW5jcmVhc2VkIHRoZSBzdXBwb3J0IGZvciBXM0MgWE1MIFNjaGVtYXMgZGF0YXR5cGU8L2xpPgorICA8bGk+U2V2ZXJhbCBidWcgZml4ZXMgaW4gdGhlIFVSSSBoYW5kbGluZyBsYXllcjwvbGk+CisgIDxsaT5CdWcgZml4ZXM6IEhUTUwgcGFyc2VyLCB4bWxSZWFkZXIsIERURCB2YWxpZGF0aW9uLCBYUGF0aCwgZW5jb2RpbmcKKyAgICBjb252ZXJzaW9uLCBsaW5lIGNvdW50aW5nIGluIHRoZSBwYXJzZXIuPC9saT4KKyAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yICRYTUxMSU5UX0lOREVOVCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgRlRQIGRlbGV0ZTwvbGk+CisgIDxsaT5GaXhlZCB0aGUgUlBNIHNwZWMgZmlsZSBuYW1lPC9saT4KKzwvdWw+PGgzPjIuNS40OiBGZWIgMjAgMjAwMzwvaDM+PHVsPjxsaT5Db25mb3JtYW5jZSB0ZXN0aW5nIGFuZCBsb3Qgb2YgZml4ZXMgb24gUmVsYXggTkcgYW5kIFhJbmNsdWRlCisgICAgaW1wbGVtZW50YXRpb248L2xpPgorICA8bGk+SW1wbGVtZW50YXRpb24gb2YgWFBvaW50ZXIgZWxlbWVudCgpIHNjaGVtZTwvbGk+CisgIDxsaT5CdWcgZml4ZXM6IFhNTCBwYXJzZXIsIFhJbmNsdWRlIGVudGl0aWVzIG1lcmdlLCB2YWxpZGl0eSBjaGVja2luZyBvbgorICAgIG5hbWVzcGFjZXMsCisgICAgPHA+MiBzZXJpYWxpemF0aW9uIGJ1Z3MsIG5vZGUgaW5mbyBnZW5lcmF0aW9uIHByb2JsZW1zLCBhIERURCByZWdleHAKKyAgICBnZW5lcmF0aW9uIHByb2JsZW0uPC9wPgorICA8L2xpPgorICA8bGk+UG9ydGFiaWxpdHk6IHdpbmRvd3MgdXBkYXRlcyBhbmQgcGF0aCBjYW5vbmljYWxpemF0aW9uIChJZ29yKTwvbGk+CisgIDxsaT5BIGZldyB0eXBvIGZpeGVzIChLamFydGFuIE1hcmFhcyk8L2xpPgorICA8bGk+UHl0aG9uIGJpbmRpbmdzIGdlbmVyYXRvciBmaXhlcyAoU3RlcGhhbmUgQmlkb3VsKTwvbGk+Cis8L3VsPjxoMz4yLjUuMzogRmViIDEwIDIwMDM8L2gzPjx1bD48bGk+UmVsYXhORyBhbmQgWE1MIFNjaGVtYXMgZGF0YXR5cGVzIGltcHJvdmVtZW50cywgYW5kIGFkZGVkIGEgZmlyc3QKKyAgICB2ZXJzaW9uIG9mIFJlbGF4TkcgUHl0aG9uIGJpbmRpbmdzPC9saT4KKyAgPGxpPkZpeGVzOiBYTGluayAoU2VhbiBDaGl0dGVuZGVuKSwgWEluY2x1ZGUgKFNlYW4gQ2hpdHRlbmRlbiksIEFQSSBmaXggZm9yCisgICAgc2VyaWFsaXppbmcgbmFtZXNwYWNlIG5vZGVzLCBlbmNvZGluZyBjb252ZXJzaW9uIGJ1ZywgWEhUTUwxCisgIHNlcmlhbGl6YXRpb248L2xpPgorICA8bGk+UG9ydGFiaWxpdHkgZml4ZXM6IFdpbmRvd3MgKElnb3IpLCBBTUQgNjRiaXRzIFJQTSBzcGVjIGZpbGU8L2xpPgorPC91bD48aDM+Mi41LjI6IEZlYiA1IDIwMDM8L2gzPjx1bD48bGk+Rmlyc3QgaW1wbGVtZW50YXRpb24gb2YgUmVsYXhORywgYWRkZWQgLS1yZWxheG5nIGZsYWcgdG8geG1sbGludDwvbGk+CisgIDxsaT5TY2hlbWFzIHN1cHBvcnQgbm93IGNvbXBpbGVkIGluIGJ5IGRlZmF1bHQuPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogRFREIHZhbGlkYXRpb24sIG5hbWVzcGFjZSBjaGVja2luZywgWEluY2x1ZGUgYW5kIGVudGl0aWVzLAorICAgIGRlbGVnYXRlVVJJIGluIFhNTCBDYXRhbG9ncywgSFRNTCBwYXJzZXIsIFhNTCByZWFkZXIgKFN0w6lwaGFuZSBCaWRvdWwpLAorICAgIFhQYXRoIHBhcnNlciBhbmQgZXZhbHVhdGlvbiwgIFVURjhUb1VURjggc2VyaWFsaXphdGlvbiwgWE1MIHJlYWRlciBtZW1vcnkKKyAgICBjb25zdW1wdGlvbiwgSFRNTCBwYXJzZXIsIEhUTUwgc2VyaWFsaXphdGlvbiBpbiB0aGUgcHJlc2VuY2Ugb2YKKyAgbmFtZXNwYWNlczwvbGk+CisgIDxsaT5hZGRlZCBhbiBIVE1MIEFQSSB0byBjaGVjayBlbGVtZW50cyBhbmQgYXR0cmlidXRlcy48L2xpPgorICA8bGk+RG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudCwgUERGIGZvciB0aGUgdHV0b3JpYWwgKEpvaG4gRmxlY2spLCBkb2MKKyAgICBwYXRjaGVzIChTdGVmYW4gS29zdCk8L2xpPgorICA8bGk+UG9ydGFiaWxpdHkgZml4ZXM6IE5ldEJTRCAoSnVsaW8gTWVyaW5vKSwgV2luZG93cyAoSWdvciBabGF0a292aWMpPC9saT4KKyAgPGxpPkFkZGVkIHB5dGhvbiBiaW5kaW5ncyBmb3IgWFBvaW50ZXIsIGNvbnRleHR1YWwgZXJyb3IgcmVwb3J0aW5nCisgICAgKFN0w6lwaGFuZSBCaWRvdWwpPC9saT4KKyAgPGxpPlVSSS9maWxlIGVzY2FwaW5nIHByb2JsZW1zIChTdGVmYW5vIFphY2NoaXJvbGkpPC9saT4KKzwvdWw+PGgzPjIuNS4xOiBKYW4gOCAyMDAzPC9oMz48dWw+PGxpPkZpeGVzIGEgbWVtb3J5IGxlYWsgYW5kIGNvbmZpZ3VyYXRpb24vY29tcGlsYXRpb24gcHJvYmxlbXMgaW4gMi41LjA8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbiB1cGRhdGVzIChKb2huKTwvbGk+CisgIDxsaT5hIGNvdXBsZSBvZiBYbWxUZXh0UmVhZGVyIGZpeGVzPC9saT4KKzwvdWw+PGgzPjIuNS4wOiBKYW4gNiAyMDAzPC9oMz48dWw+PGxpPk5ldyA8YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+WG1sdGV4dFJlYWRlciBpbnRlcmZhY2U8L2E+IGJhc2VkIG9uIEMjCisgICAgQVBJICh3aXRoIGhlbHAgb2YgU3TDqXBoYW5lIEJpZG91bCk8L2xpPgorICA8bGk+V2luZG93czogbW9yZSBleHBvcnRzLCBpbmNsdWRpbmcgdGhlIG5ldyBBUEkgKElnb3IpPC9saT4KKyAgPGxpPlhJbmNsdWRlIGZhbGxiYWNrIGZpeDwvbGk+CisgIDxsaT5QeXRob246IGJpbmRpbmdzIGZvciB0aGUgbmV3IEFQSSwgcGFja2FnaW5nIChTdMOpcGhhbmUgQmlkb3VsKSwKKyAgICBkcnZfbGlieG1sMi5weSBQeXRob24geG1sLnNheCBkcml2ZXIgKFN0w6lwaGFuZSBCaWRvdWwpLCBmaXhlcywgc3BlZWR1cAorICAgIGFuZCBpdGVyYXRvcnMgZm9yIFB5dGhvbi0yLjIgKEhhbm51IEtyb3NpbmcpPC9saT4KKyAgPGxpPlR1dG9yaWFsIGZpeGVzIChqb2huIEZsZWNrIGFuZCBOaXJhaiBUb2xpYSkgeG1sbGludCBtYW4gdXBkYXRlCisgIChKb2huKTwvbGk+CisgIDxsaT5GaXggYW4gWE1MIHBhcnNlciBidWcgcmFpc2VkIGJ5IFZ5YWNoZXNsYXYgUGluZHl1cmE8L2xpPgorICA8bGk+Rml4IGZvciBWTVMgc2VyaWFsaXphdGlvbiAoTmlnZWwgSGFsbCkgYW5kIGNvbmZpZyAoQ3JhaWcgQS4gQmVycnkpPC9saT4KKyAgPGxpPkVudGl0aWVzIGhhbmRsaW5nIGZpeGVzPC9saT4KKyAgPGxpPm5ldyBBUEkgdG8gb3B0aW9uYWxseSB0cmFjayBub2RlIGNyZWF0aW9uIGFuZCBkZWxldGlvbiAoTHVrYXMKKyAgU2Nocm9lZGVyKTwvbGk+CisgIDxsaT5BZGRlZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgWG1sdGV4dFJlYWRlciBpbnRlcmZhY2UgYW5kIHNvbWUgPGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgZ3VpZGVsaW5lczwvYT48L2xpPgorPC91bD48aDM+Mi40LjMwOiBEZWMgMTIgMjAwMjwvaDM+PHVsPjxsaT4yLjQuMjkgYnJva2UgdGhlIHB5dGhvbiBiaW5kaW5ncywgcmVyZWxlYXNpbmc8L2xpPgorICA8bGk+SW1wcm92ZW1lbnQvZml4ZXMgb2YgdGhlIFhNTCBBUEkgZ2VuZXJhdG9yLCBhbmQgY291cGxlIG9mIG1pbm9yIGNvZGUKKyAgICBmaXhlcy48L2xpPgorPC91bD48aDM+Mi40LjI5OiBEZWMgMTEgMjAwMjwvaDM+PHVsPjxsaT5XaW5kb3dzIGZpeGVzIChJZ29yKTogV2luZG93cyBDRSBwb3J0LCBwdGhyZWFkIGxpbmtpbmcsIHB5dGhvbiBiaW5kaW5ncworICAgIChTdMOpcGhhbmUgQmlkb3VsKSwgTWluZ3cgKE1hZ251cyBIZW5vY2gpLCBhbmQgZXhwb3J0IGxpc3QgdXBkYXRlczwvbGk+CisgIDxsaT5GaXggZm9yIHByZXYgaW4gcHl0aG9uIGJpbmRpbmdzIChFUkRJIEdlcmdvKTwvbGk+CisgIDxsaT5GaXggZm9yIGVudGl0aWVzIGhhbmRsaW5nIChNYXJjdXMgQ2xhcmtlKTwvbGk+CisgIDxsaT5SZWZhY3RvcmVkIHRoZSBYTUwgYW5kIEhUTUwgZHVtcHMgdG8gYSBzaW5nbGUgY29kZSBwYXRoLCBmaXhlZCBYSFRNTDEKKyAgICBkdW1wPC9saT4KKyAgPGxpPkZpeCBmb3IgVVJJIHBhcnNpbmcgd2hlbiBoYW5kbGluZyBVUk5zIHdpdGggZnJhZ21lbnQgaWRlbnRpZmllcnM8L2xpPgorICA8bGk+Rml4IGZvciBIVFRQIFVSTCBlc2NhcGluZyBwcm9ibGVtPC9saT4KKyAgPGxpPmFkZGVkIGFuIFRleHRYbWxSZWFkZXIgKEMjKSBsaWtlIEFQSSAod29yayBpbiBwcm9ncmVzcyk8L2xpPgorICA8bGk+UmV3cm90ZSB0aGUgQVBJIGluIFhNTCBnZW5lcmF0aW9uIHNjcmlwdCwgaW5jbHVkZXMgYSBDIHBhcnNlciBhbmQgc2F2ZXMKKyAgICBtb3JlIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgQyMgYmluZGluZ3M8L2xpPgorPC91bD48aDM+Mi40LjI4OiBOb3YgMjIgMjAwMjwvaDM+PHVsPjxsaT5hIGNvdXBsZSBvZiBweXRob24gYmluZGluZyBmaXhlczwvbGk+CisgIDxsaT4yIGJ1ZyBmaXhlcyBpbiB0aGUgWE1MIHB1c2ggcGFyc2VyPC9saT4KKyAgPGxpPnBvdGVudGlhbCBtZW1vcnkgbGVhayByZW1vdmVkIChNYXJ0aW4gU3RvaWxvdik8L2xpPgorICA8bGk+Zml4IHRvIHRoZSBjb25maWd1cmUgc2NyaXB0IGZvciBVbml4IChEaW1pdHJpIFBhcGFkb3BvdWxvcyk8L2xpPgorICA8bGk+YWRkZWQgZW5jb2Rpbmcgc3VwcG9ydCBmb3IgWEluY2x1ZGUgcGFyc2U9InRleHQiPC9saT4KKyAgPGxpPmF1dG9kZXRlY3Rpb24gb2YgWEhUTUwxIGFuZCBzcGVjaWZpYyBzZXJpYWxpemF0aW9uIHJ1bGVzIGFkZGVkPC9saT4KKyAgPGxpPm5hc3R5IHRocmVhZGluZyBidWcgZml4ZWQgKFdpbGxpYW0gQnJhY2spPC9saT4KKzwvdWw+PGgzPjIuNC4yNzogTm92IDE3IDIwMDI8L2gzPjx1bD48bGk+Zml4ZXMgZm9yIHRoZSBQeXRob24gYmluZGluZ3M8L2xpPgorICA8bGk+YSBudW1iZXIgb2YgYnVnIGZpeGVzOiBTR01MIGNhdGFsb2dzLCB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkoKSwKKyAgICBIVE1MIHBhcnNlciwgIFNjaGVtYXMgKENoYXJsZXMgQm96ZW1hbiksIGRvY3VtZW50IGZyYWdtZW50IHN1cHBvcnQKKyAgICAoQ2hyaXN0aWFuIEdsYWhuKSwgeG1sUmVjb25jaWxpYXRlTnMgKEJyaWFuIFN0YWZmb3JkKSwgWFBvaW50ZXIsCisgICAgeG1sRnJlZU5vZGUoKSwgeG1sU0FYUGFyc2VNZW1vcnkgKFBldGVyIEpvbmVzKSwgeG1sR2V0Tm9kZVBhdGggKFBldHIKKyAgICBQYWphcyksIGVudGl0aWVzIHByb2Nlc3Npbmc8L2xpPgorICA8bGk+YWRkZWQgZ3JlcCB0byB4bWxsaW50IC0tc2hlbGw8L2xpPgorICA8bGk+Vk1TIHVwZGF0ZSBwYXRjaCBmcm9tIENyYWlnIEEuIEJlcnJ5PC9saT4KKyAgPGxpPmNsZWFudXAgb2YgdGhlIFdpbmRvd3MgYnVpbGQgd2l0aCBzdXBwb3J0IGZvciBtb3JlIGNvbXBpbGVycyAoSWdvciksCisgICAgYmV0dGVyIHRocmVhZCBzdXBwb3J0IG9uIFdpbmRvd3M8L2xpPgorICA8bGk+Y2xlYW51cCBvZiBVbml4IE1ha2VmaWxlcyBhbmQgc3BlYyBmaWxlPC9saT4KKyAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgZG9jdW1lbnRhdGlvbiAoSm9obiBGbGVjayk8L2xpPgorPC91bD48aDM+Mi40LjI2OiBPY3QgMTggMjAwMjwvaDM+PHVsPjxsaT5QYXRjaGVzIGZvciBXaW5kb3dzIENFIHBvcnQsIGltcHJvdmVtZW50cyBvbiBXaW5kb3dzIHBhdGhzIGhhbmRsaW5nPC9saT4KKyAgPGxpPkZpeGVzIHRvIHRoZSB2YWxpZGF0aW9uICBjb2RlIChEVEQgYW5kIFNjaGVtYXMpLCB4bWxOb2RlR2V0UGF0aCgpICwKKyAgICBIVE1MIHNlcmlhbGl6YXRpb24sIE5hbWVzcGFjZSBjb21wbGlhbmNlLCAgYW5kIGEgbnVtYmVyIG9mIHNtYWxsCisgIHByb2JsZW1zPC9saT4KKzwvdWw+PGgzPjIuNC4yNTogU2VwIDI2IDIwMDI8L2gzPjx1bD48bGk+QSBudW1iZXIgb2YgYnVnIGZpeGVzOiBYUGF0aCwgdmFsaWRhdGlvbiwgUHl0aG9uIGJpbmRpbmdzLCBET00gYW5kCisgICAgdHJlZSwgeG1sSS9PLCAgSHRtbDwvbGk+CisgIDxsaT5TZXJpb3VzIHJld3JpdGUgb2YgWEluY2x1ZGU8L2xpPgorICA8bGk+TWFkZSBYTUwgU2NoZW1hcyByZWdleHAgcGFydCBvZiB0aGUgZGVmYXVsdCBidWlsZCBhbmQgQVBJcywgc21hbGwgZml4CisgICAgYW5kIGltcHJvdmVtZW50IG9mIHRoZSByZWdleHAgY29yZTwvbGk+CisgIDxsaT5DaGFuZ2VkIHRoZSB2YWxpZGF0aW9uIGNvZGUgdG8gcmV1c2UgWE1MIFNjaGVtYXMgcmVnZXhwIEFQSXM8L2xpPgorICA8bGk+QmV0dGVyIGhhbmRsaW5nIG9mIFdpbmRvd3MgZmlsZSBwYXRocywgaW1wcm92ZW1lbnQgb2YgTWFrZWZpbGVzIChJZ29yLAorICAgIERhbmllbCBHZWhyaWdlciwgTWFyayBWYWtvYyk8L2xpPgorICA8bGk+SW1wcm92ZWQgdGhlIHB5dGhvbiBJL08gYmluZGluZ3MsIHRoZSB0ZXN0cywgYWRkZWQgcmVzb2x2ZXIgYW5kIHJlZ2V4cAorICAgIEFQSXM8L2xpPgorICA8bGk+TmV3IGxvZ29zIGZyb20gTWFyYyBMaXlhbmFnZTwvbGk+CisgIDxsaT5UdXRvcmlhbCBpbXByb3ZlbWVudHM6IEpvaG4gRmxlY2ssIENocmlzdG9waGVyIEhhcnJpczwvbGk+CisgIDxsaT5NYWtlZmlsZTogRml4ZXMgZm9yIEFNRCB4ODZfNjQgKE1hbmRyYWtlKSwgREVTVERJUiAoQ2hyaXN0b3BoZQorICBNZXJsZXQpPC9saT4KKyAgPGxpPnJlbW92YWwgb2YgYWxsIHN0ZGVyci9wZXJyb3IgdXNlIGZvciBlcnJvciByZXBvcnRpbmc8L2xpPgorICA8bGk+QmV0dGVyIGVycm9yIHJlcG9ydGluZzogWFBhdGggYW5kIERURCB2YWxpZGF0aW9uPC9saT4KKyAgPGxpPnVwZGF0ZSBvZiB0aGUgdHJpbyBwb3J0YWJpbGl0eSBsYXllciAoQmpvcm4gUmVlc2UpPC9saT4KKzwvdWw+PHA+PHN0cm9uZz4yLjQuMjQ6IEF1ZyAyMiAyMDAyPC9zdHJvbmc+PC9wPjx1bD48bGk+WFBhdGggZml4ZXMgKFdpbGxpYW0pLCB4Zjplc2NhcGUtdXJpKCkgKFdlc2xleSBUZXJwc3RyYSk8L2xpPgorICA8bGk+UHl0aG9uIGJpbmRpbmcgZml4ZXM6IG1ha2VmaWxlcyAoV2lsbGlhbSksIGdlbmVyYXRvciwgcnBtIGJ1aWxkLCB4ODYtNjQKKyAgICAoZmNyb3phdCk8L2xpPgorICA8bGk+SFRNTCAmbHQ7c3R5bGUmZ3Q7IGFuZCBib29sZWFuIGF0dHJpYnV0ZXMgc2VyaWFsaXplciBmaXhlczwvbGk+CisgIDxsaT5DMTROIGltcHJvdmVtZW50cyBieSBBbGVrc2V5PC9saT4KKyAgPGxpPmRvYyBjbGVhbnVwczogUmljayBKb25lczwvbGk+CisgIDxsaT5XaW5kb3dzIGNvbXBpbGVyIG1ha2VmaWxlIHVwZGF0ZXM6IElnb3IgYW5kIEVsaXphYmV0aCBCYXJoYW08L2xpPgorICA8bGk+WEluY2x1ZGU6IGltcGxlbWVudGF0aW9uIG9mIGZhbGxiYWNrIGFuZCB4bWw6YmFzZSBmaXh1cCBhZGRlZDwvbGk+Cis8L3VsPjxoMz4yLjQuMjM6IEp1bHkgNiAyMDAyPC9oMz48dWw+PGxpPnBlcmZvcm1hbmNlcyBwYXRjaGVzOiBQZXRlciBKYWNvYmk8L2xpPgorICA8bGk+YzE0biBmaXhlcywgdGVzdHN1aXRlIGFuZCBwZXJmb3JtYW5jZXM6IEFsZWtzZXkgU2FuaW48L2xpPgorICA8bGk+YWRkZWQgeG1sRG9jRm9ybWF0RHVtcDogQ2hlbWEgQ2Vsb3JpbzwvbGk+CisgIDxsaT5uZXcgdHV0b3JpYWw6IEpvaG4gRmxlY2s8L2xpPgorICA8bGk+bmV3IGhhc2ggZnVuY3Rpb25zIGFuZCBwZXJmb3JtYW5jZXM6IFNhbmRlciBWZXNpaywgcG9ydGFiaWxpdHkgZml4IGZyb20KKyAgICBQZXRlciBKYWNvYmk8L2xpPgorICA8bGk+YSBudW1iZXIgb2YgYnVnIGZpeGVzOiBYUGF0aCAoV2lsbGlhbSBCcmFjaywgUmljaGFyZCBKaW5rcyksIFhNTCBhbmQKKyAgICBIVE1MIHBhcnNlcnMsIElEIGxvb2t1cCBmdW5jdGlvbjwvbGk+CisgIDxsaT5yZW1vdmFsIG9mIGFsbCByZW1haW5pbmcgc3ByaW50ZjogQWxla3NleSBTYW5pbjwvbGk+Cis8L3VsPjxoMz4yLjQuMjI6IE1heSAyNyAyMDAyPC9oMz48dWw+PGxpPmEgbnVtYmVyIG9mIGJ1ZyBmaXhlczogY29uZmlndXJlIHNjcmlwdHMsIGJhc2UgaGFuZGxpbmcsIHBhcnNlciwgbWVtb3J5CisgICAgdXNhZ2UsIEhUTUwgcGFyc2VyLCBYUGF0aCwgZG9jdW1lbnRhdGlvbiAoQ2hyaXN0aWFuIENvcm5lbHNzZW4pLAorICAgIGluZGVudGF0aW9uLCBVUkkgcGFyc2luZzwvbGk+CisgIDxsaT5PcHRpbWl6YXRpb25zIGZvciBYTUxTZWMsIGZpeGluZyBhbmQgbWFraW5nIHB1YmxpYyBzb21lIG9mIHRoZSBuZXR3b3JrCisgICAgcHJvdG9jb2wgaGFuZGxlcnMgKEFsZWtzZXkpPC9saT4KKyAgPGxpPnBlcmZvcm1hbmNlIHBhdGNoIGZyb20gR2FyeSBQZW5uaW5ndG9uPC9saT4KKyAgPGxpPkNoYXJsZXMgQm96ZW1hbiBwcm92aWRlZCBkYXRlIGFuZCB0aW1lIHN1cHBvcnQgZm9yIFhNTCBTY2hlbWFzCisgIGRhdGF0eXBlczwvbGk+Cis8L3VsPjxoMz4yLjQuMjE6IEFwciAyOSAyMDAyPC9oMz48cD5UaGlzIHJlbGVhc2UgaXMgYm90aCBhIGJ1ZyBmaXggcmVsZWFzZSBhbmQgYWxzbyBjb250YWlucyB0aGUgZWFybHkgWE1MCitTY2hlbWFzIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0xLyI+c3RydWN0dXJlczwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0yLyI+ZGF0YXR5cGVzPC9hPiBjb2RlLCBiZXdhcmUsIGFsbAoraW50ZXJmYWNlcyBhcmUgbGlrZWx5IHRvIGNoYW5nZSwgdGhlcmUgaXMgaHVnZSBob2xlcywgaXQgaXMgY2xlYXJseSBhIHdvcmsgaW4KK3Byb2dyZXNzIGFuZCBkb24ndCBldmVuIHRoaW5rIG9mIHB1dHRpbmcgdGhpcyBjb2RlIGluIGEgcHJvZHVjdGlvbiBzeXN0ZW0sCitpdCdzIGFjdHVhbGx5IG5vdCBjb21waWxlZCBpbiBieSBkZWZhdWx0LiBUaGUgcmVhbCBmaXhlcyBhcmU6PC9wPjx1bD48bGk+YSBjb3VwbGUgb2YgYnVncyBvciBsaW1pdGF0aW9ucyBpbnRyb2R1Y2VkIGluIDIuNC4yMDwvbGk+CisgIDxsaT5wYXRjaGVzIGZvciBCb3JsYW5kIEMrKyBhbmQgTVNDIGJ5IElnb3I8L2xpPgorICA8bGk+c29tZSBmaXhlcyBvbiBYUGF0aCBzdHJpbmdzIGFuZCBjb25mb3JtYW5jZSBwYXRjaGVzIGJ5IFJpY2hhcmQKKyAgSmlua3M8L2xpPgorICA8bGk+cGF0Y2ggZnJvbSBBbGVrc2V5IGZvciB0aGUgRXhjQzE0TiBzcGVjaWZpY2F0aW9uPC9saT4KKyAgPGxpPk9TRi8xIGJ1ZyBmaXggYnkgQmpvcm48L2xpPgorPC91bD48aDM+Mi40LjIwOiBBcHIgMTUgMjAwMjwvaDM+PHVsPjxsaT5idWcgZml4ZXM6IGZpbGUgZGVzY3JpcHRvciBsZWFrLCBYUGF0aCwgSFRNTCBvdXRwdXQsIERURCB2YWxpZGF0aW9uPC9saT4KKyAgPGxpPlhQYXRoIGNvbmZvcm1hbmNlIHRlc3RpbmcgYnkgUmljaGFyZCBKaW5rczwvbGk+CisgIDxsaT5Qb3J0YWJpbGl0eSBmaXhlczogU29sYXJpcywgTVBFL2lYLCBXaW5kb3dzLCBPU0YvMSwgcHl0aG9uIGJpbmRpbmdzLAorICAgIGxpYnhtbC5tNDwvbGk+Cis8L3VsPjxoMz4yLjQuMTk6IE1hciAyNSAyMDAyPC9oMz48dWw+PGxpPmJ1ZyBmaXhlczogaGFsZiBhIGRvemVuIFhQYXRoIGJ1Z3MsIFZhbGlkYXRpb24sIElTTy1MYXRpbiB0byBVVEY4CisgICAgZW5jb2RlcjwvbGk+CisgIDxsaT5wb3J0YWJpbGl0eSBmaXhlcyBpbiB0aGUgSFRUUCBjb2RlPC9saT4KKyAgPGxpPm1lbW9yeSBhbGxvY2F0aW9uIGNoZWNrcyB1c2luZyB2YWxncmluZCwgYW5kIHByb2ZpbGluZyB0ZXN0czwvbGk+CisgIDxsaT5yZXZhbXAgb2YgdGhlIFdpbmRvd3MgYnVpbGQgYW5kIE1ha2VmaWxlczwvbGk+Cis8L3VsPjxoMz4yLjQuMTg6IE1hciAxOCAyMDAyPC9oMz48dWw+PGxpPmJ1ZyBmaXhlczogdHJlZSwgU0FYLCBjYW5vbmljYWxpemF0aW9uLCB2YWxpZGF0aW9uLCBwb3J0YWJpbGl0eSwKKyAgWFBhdGg8L2xpPgorICA8bGk+cmVtb3ZlZCB0aGUgLS13aXRoLWJ1ZmZlciBvcHRpb24gaXQgd2FzIGJlY29taW5nIHVubWFpbnRhaW5hYmxlPC9saT4KKyAgPGxpPnNlcmlvdXMgY2xlYW51cCBvZiB0aGUgUHl0aG9uIG1ha2VmaWxlczwvbGk+CisgIDxsaT5zcGVlZHVwIHBhdGNoIHRvIFhQYXRoIHZlcnkgZWZmZWN0aXZlIGZvciBEb2NCb29rIHN0eWxlc2hlZXRzPC9saT4KKyAgPGxpPkZpeGVzIGZvciBXaW5kb3dzIGJ1aWxkLCBjbGVhbnVwIG9mIHRoZSBkb2N1bWVudGF0aW9uPC9saT4KKzwvdWw+PGgzPjIuNC4xNzogTWFyIDggMjAwMjwvaDM+PHVsPjxsaT5hIGxvdCBvZiBidWcgZml4ZXMsIGluY2x1ZGluZyAibmFtZXNwYWNlIG5vZGVzIGhhdmUgbm8gcGFyZW50cyBpbgorICBYUGF0aCI8L2xpPgorICA8bGk+Zml4ZWQvaW1wcm92ZWQgdGhlIFB5dGhvbiB3cmFwcGVycywgYWRkZWQgbW9yZSBleGFtcGxlcyBhbmQgbW9yZQorICAgIHJlZ3Jlc3Npb24gdGVzdHMsIFhQYXRoIGV4dGVuc2lvbiBmdW5jdGlvbnMgY2FuIG5vdyByZXR1cm4gbm9kZS1zZXRzPC9saT4KKyAgPGxpPmFkZGVkIHRoZSBYTUwgQ2Fub25pY2FsaXphdGlvbiBzdXBwb3J0IGZyb20gQWxla3NleSBTYW5pbjwvbGk+Cis8L3VsPjxoMz4yLjQuMTY6IEZlYiAyMCAyMDAyPC9oMz48dWw+PGxpPmEgbG90IG9mIGJ1ZyBmaXhlcywgbW9zdCBvZiB0aGVtIHdlcmUgdHJpZ2dlcmVkIGJ5IHRoZSBYTUwgVGVzdHN1aXRlCisgICAgZnJvbSBPQVNJUyBhbmQgVzNDLiBDb21wbGlhbmNlIGhhcyBiZWVuIHNpZ25pZmljYW50bHkgaW1wcm92ZWQuPC9saT4KKyAgPGxpPmEgY291cGxlIG9mIHBvcnRhYmlsaXR5IGZpeGVzIHRvby48L2xpPgorPC91bD48aDM+Mi40LjE1OiBGZWIgMTEgMjAwMjwvaDM+PHVsPjxsaT5GaXhlZCB0aGUgTWFrZWZpbGVzLCBlc3BlY2lhbGx5IHRoZSBweXRob24gbW9kdWxlIG9uZXM8L2xpPgorICA8bGk+QSBmZXcgYnVnIGZpeGVzIGFuZCBjbGVhbnVwPC9saT4KKyAgPGxpPkluY2x1ZGVzIGNsZWFudXA8L2xpPgorPC91bD48aDM+Mi40LjE0OiBGZWIgOCAyMDAyPC9oMz48dWw+PGxpPkNoYW5nZSBvZiBMaWNlbnNlIHRvIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLmh0bWwiPk1JVAorICAgIExpY2Vuc2U8L2E+IGJhc2ljYWxseSBmb3IgaW50ZWdyYXRpb24gaW4gWEZyZWU4NiBjb2RlYmFzZSwgYW5kIHJlbW92aW5nCisgICAgY29uZnVzaW9uIGFyb3VuZCB0aGUgcHJldmlvdXMgZHVhbC1saWNlbnNpbmc8L2xpPgorICA8bGk+YWRkZWQgUHl0aG9uIGJpbmRpbmdzLCBiZXRhIHNvZnR3YXJlIGJ1dCBzaG91bGQgYWxyZWFkeSBiZSBxdWl0ZQorICAgIGNvbXBsZXRlPC9saT4KKyAgPGxpPmEgbGFyZ2UgbnVtYmVyIG9mIGZpeGVzIGFuZCBjbGVhbnVwcywgZXNwZWNpYWxseSBmb3IgYWxsIHRyZWUKKyAgICBtYW5pcHVsYXRpb25zPC9saT4KKyAgPGxpPmNsZWFudXAgb2YgdGhlIGhlYWRlcnMsIGdlbmVyYXRpb24gb2YgYSByZWZlcmVuY2UgQVBJIGRlZmluaXRpb24gaW4KKyAgWE1MPC9saT4KKzwvdWw+PGgzPjIuNC4xMzogSmFuIDE0IDIwMDI8L2gzPjx1bD48bGk+dXBkYXRlIG9mIHRoZSBkb2N1bWVudGF0aW9uOiBKb2huIEZsZWNrIGFuZCBDaGFybGllIEJvemVtYW48L2xpPgorICA8bGk+Y2xlYW51cCBvZiB0aW1pbmcgY29kZSBmcm9tIEp1c3RpbiBGbGV0Y2hlcjwvbGk+CisgIDxsaT5maXhlcyBmb3IgV2luZG93cyBhbmQgaW5pdGlhbCB0aHJlYWQgc3VwcG9ydCBvbiBXaW4zMjogSWdvciBhbmQgU2VyZ3VlaQorICAgIE5hcm9qbnlpPC9saT4KKyAgPGxpPkN5Z3dpbiBwYXRjaCBmcm9tIFJvYmVydCBDb2xsaW5zPC9saT4KKyAgPGxpPmFkZGVkIHhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMoKSBmb3IgS2VpdGggSXNkYWxlIHdvcmsgb24geHNsZGJnPC9saT4KKzwvdWw+PGgzPjIuNC4xMjogRGVjIDcgMjAwMTwvaDM+PHVsPjxsaT5hIGZldyBidWcgZml4ZXM6IHRocmVhZCAoR2FyeSBQZW5uaW5ndG9uKSwgeG1sbGludCAoR2VlcnQgS2xvb3N0ZXJtYW4pLAorICAgIFhNTCBwYXJzZXIgKFJvYmluIEJlcmpvbiksIFhQb2ludGVyIChEYW5ueSBKYW1zaHkpLCBJL08gY2xlYW51cHMKKyAgKHJvYmVydCk8L2xpPgorICA8bGk+RXJpYyBMYXZpZ25lIGNvbnRyaWJ1dGVkIHByb2plY3QgZmlsZXMgZm9yIE1hY09TPC9saT4KKyAgPGxpPnNvbWUgbWFrZWZpbGVzIGNsZWFudXBzPC9saT4KKzwvdWw+PGgzPjIuNC4xMTogTm92IDI2IDIwMDE8L2gzPjx1bD48bGk+Zml4ZWQgYSBjb3VwbGUgb2YgZXJyb3JzIGluIHRoZSBpbmNsdWRlcywgZml4ZWQgYSBmZXcgYnVncywgc29tZSBjb2RlCisgICAgY2xlYW51cHM8L2xpPgorICA8bGk+eG1sbGludCBtYW4gcGFnZXMgaW1wcm92ZW1lbnQgYnkgSGVpa28gUnVwcDwvbGk+CisgIDxsaT51cGRhdGVkIFZNUyBidWlsZCBpbnN0cnVjdGlvbnMgZnJvbSBKb2huIEEgRm90aGVyaW5naGFtPC9saT4KKyAgPGxpPldpbmRvd3MgTWFrZWZpbGVzIHVwZGF0ZXMgZnJvbSBJZ29yPC9saT4KKzwvdWw+PGgzPjIuNC4xMDogTm92IDEwIDIwMDE8L2gzPjx1bD48bGk+VVJJIGVzY2FwaW5nIGZpeCAoSm9lbCBZb3VuZyk8L2xpPgorICA8bGk+YWRkZWQgeG1sR2V0Tm9kZVBhdGgoKSAoZm9yIHBhdGhzIG9yIFhQb2ludGVycyBnZW5lcmF0aW9uKTwvbGk+CisgIDxsaT5GaXhlcyBuYW1lc3BhY2UgaGFuZGxpbmcgcHJvYmxlbXMgd2hlbiB1c2luZyBEVEQgYW5kIHZhbGlkYXRpb248L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzIG9uIHhtbGxpbnQ6IE1vcnVzIFdhbHRlciBwYXRjaGVzIGZvciAtLWZvcm1hdCBhbmQKKyAgICAtLWVuY29kZSwgU3RlZmFuIEtvc3QgYW5kIEhlaWtvIFJ1cHAgaW1wcm92ZW1lbnRzIG9uIHRoZSAtLXNoZWxsPC9saT4KKyAgPGxpPmZpeGVzIGZvciB4bWxjYXRhbG9nIGxpbmtpbmcgcG9pbnRlZCBieSBXZWlxaSBHYW88L2xpPgorICA8bGk+Zml4ZXMgdG8gdGhlIEhUTUwgcGFyc2VyPC9saT4KKzwvdWw+PGgzPjIuNC45OiBOb3YgNiAyMDAxPC9oMz48dWw+PGxpPmZpeGVzIG1vcmUgY2F0YWxvZyBidWdzPC9saT4KKyAgPGxpPmF2b2lkIGEgY29tcGlsYXRpb24gcHJvYmxlbSwgaW1wcm92ZSB4bWxHZXRMaW5lTm8oKTwvbGk+Cis8L3VsPjxoMz4yLjQuODogTm92IDQgMjAwMTwvaDM+PHVsPjxsaT5maXhlZCBTR01MIGNhdGFsb2dzIGJyb2tlbiBpbiBwcmV2aW91cyByZWxlYXNlLCB1cGRhdGVkIHhtbGNhdGFsb2cKKyAgdG9vbDwvbGk+CisgIDxsaT5maXhlZCBhIGNvbXBpbGUgZXJyb3JzIGFuZCBzb21lIGluY2x1ZGVzIHRyb3VibGVzLjwvbGk+Cis8L3VsPjxoMz4yLjQuNzogT2N0IDMwIDIwMDE8L2gzPjx1bD48bGk+ZXhwb3J0ZWQgc29tZSBkZWJ1Z2dpbmcgaW50ZXJmYWNlczwvbGk+CisgIDxsaT5zZXJpb3VzIHJld3JpdGUgb2YgdGhlIGNhdGFsb2cgY29kZTwvbGk+CisgIDxsaT5pbnRlZ3JhdGVkIEdhcnkgUGVubmluZ3RvbiB0aHJlYWQgc2FmZXR5IHBhdGNoLCBhZGRlZCBjb25maWd1cmUgb3B0aW9uCisgICAgYW5kIHJlZ3Jlc3Npb24gdGVzdHM8L2xpPgorICA8bGk+cmVtb3ZlZCBhbiBIVE1MIHBhcnNlciBidWc8L2xpPgorICA8bGk+Zml4ZWQgYSBjb3VwbGUgb2YgcG90ZW50aWFsbHkgc2VyaW91cyB2YWxpZGF0aW9uIGJ1Z3M8L2xpPgorICA8bGk+aW50ZWdyYXRlZCB0aGUgU0dNTCBEb2NCb29rIHN1cHBvcnQgaW4geG1sbGludDwvbGk+CisgIDxsaT5jaGFuZ2VkIHRoZSBuYW5vZnRwIGFub255bW91cyBsb2dpbiBwYXNzd2Q8L2xpPgorICA8bGk+c29tZSBJL08gY2xlYW51cCBhbmQgYSBjb3VwbGUgb2YgaW50ZXJmYWNlcyBmb3IgUGVybCB3cmFwcGVyPC9saT4KKyAgPGxpPmdlbmVyYWwgYnVnIGZpeGVzPC9saT4KKyAgPGxpPnVwZGF0ZWQgeG1sbGludCBtYW4gcGFnZSBieSBKb2huIEZsZWNrPC9saT4KKyAgPGxpPnNvbWUgVk1TIGFuZCBXaW5kb3dzIHVwZGF0ZXM8L2xpPgorPC91bD48aDM+Mi40LjY6IE9jdCAxMCAyMDAxPC9oMz48dWw+PGxpPmFkZGVkIGFuIHVwZGF0ZWQgbWFuIHBhZ2VzIGJ5IEpvaG4gRmxlY2s8L2xpPgorICA8bGk+cG9ydGFiaWxpdHkgYW5kIGNvbmZpZ3VyZSBmaXhlczwvbGk+CisgIDxsaT5hbiBpbmZpbml0ZSBsb29wIG9uIHRoZSBIVE1MIHBhcnNlciB3YXMgcmVtb3ZlZCAoV2lsbGlhbSk8L2xpPgorICA8bGk+V2luZG93cyBtYWtlZmlsZSBwYXRjaGVzIGZyb20gSWdvcjwvbGk+CisgIDxsaT5maXhlZCBoYWxmIGEgZG96ZW4gYnVncyByZXBvcnRlZCBmb3IgbGlieG1sIG9yIGxpYnhzbHQ8L2xpPgorICA8bGk+dXBkYXRlZCB4bWxjYXRhbG9nIHRvIGJlIGFibGUgdG8gbW9kaWZ5IFNHTUwgc3VwZXIgY2F0YWxvZ3M8L2xpPgorPC91bD48aDM+Mi40LjU6IFNlcCAxNCAyMDAxPC9oMz48dWw+PGxpPlJlbW92ZSBhIGZldyBhbm5veWluZyBidWdzIGluIDIuNC40PC9saT4KKyAgPGxpPmZvcmNlcyB0aGUgSFRNTCBzZXJpYWxpemVyIHRvIG91dHB1dCBkZWNpbWFsIGNoYXJyZWZzIHNpbmNlIHNvbWUKKyAgICB2ZXJzaW9uIG9mIE5ldHNjYXBlIGNhbid0IGhhbmRsZSBoZXhhZGVjaW1hbCBvbmVzPC9saT4KKzwvdWw+PGgzPjEuOC4xNjogU2VwIDE0IDIwMDE8L2gzPjx1bD48bGk+bWFpbnRlbmFuY2UgcmVsZWFzZSBvZiB0aGUgb2xkIGxpYnhtbDEgYnJhbmNoLCBjb3VwbGUgb2YgYnVnIGFuZAorICAgIHBvcnRhYmlsaXR5IGZpeGVzPC9saT4KKzwvdWw+PGgzPjIuNC40OiBTZXAgMTIgMjAwMTwvaDM+PHVsPjxsaT5hZGRlZCAtLWNvbnZlcnQgdG8geG1sY2F0YWxvZywgYnVnIGZpeGVzIGFuZCBjbGVhbnVwcyBvZiBYTUwKKyAgQ2F0YWxvZzwvbGk+CisgIDxsaT5hIGZldyBidWcgZml4ZXMgYW5kIHNvbWUgcG9ydGFiaWxpdHkgY2hhbmdlczwvbGk+CisgIDxsaT5zb21lIGRvY3VtZW50YXRpb24gY2xlYW51cHM8L2xpPgorPC91bD48aDM+Mi40LjM6ICBBdWcgMjMgMjAwMTwvaDM+PHVsPjxsaT5YTUwgQ2F0YWxvZyBzdXBwb3J0IHNlZSB0aGUgZG9jPC9saT4KKyAgPGxpPk5ldyBOYU4vSW5maW5pdHkgZmxvYXRpbmcgcG9pbnQgY29kZTwvbGk+CisgIDxsaT5BIGZldyBidWcgZml4ZXM8L2xpPgorPC91bD48aDM+Mi40LjI6ICBBdWcgMTUgMjAwMTwvaDM+PHVsPjxsaT5hZGRzIHhtbExpbmVOdW1iZXJzRGVmYXVsdCgpIHRvIGNvbnRyb2wgbGluZSBudW1iZXIgZ2VuZXJhdGlvbjwvbGk+CisgIDxsaT5sb3Qgb2YgYnVnIGZpeGVzPC9saT4KKyAgPGxpPnRoZSBNaWNyb3NvZnQgTVNDIHByb2plY3RzIGZpbGVzIHNob3VsZCBub3cgYmUgdXAgdG8gZGF0ZTwvbGk+CisgIDxsaT5pbmhlcml0YW5jZSBvZiBuYW1lc3BhY2VzIGZyb20gRFREIGRlZmF1bHRlZCBhdHRyaWJ1dGVzPC9saT4KKyAgPGxpPmZpeGVzIGEgc2VyaW91cyBwb3RlbnRpYWwgc2VjdXJpdHkgYnVnPC9saT4KKyAgPGxpPmFkZGVkIGEgLS1mb3JtYXQgb3B0aW9uIHRvIHhtbGxpbnQ8L2xpPgorPC91bD48aDM+Mi40LjE6ICBKdWx5IDI0IDIwMDE8L2gzPjx1bD48bGk+cG9zc2liaWxpdHkgdG8ga2VlcCBsaW5lIG51bWJlcnMgaW4gdGhlIHRyZWU8L2xpPgorICA8bGk+c29tZSBjb21wdXRhdGlvbiBOYU4gZml4ZXM8L2xpPgorICA8bGk+ZXh0ZW5zaW9uIG9mIHRoZSBYUGF0aCBBUEk8L2xpPgorICA8bGk+Y2xlYW51cCBmb3IgYWxwaGEgYW5kIGlhNjQgdGFyZ2V0czwvbGk+CisgIDxsaT5wYXRjaCB0byBhbGxvdyBzYXZpbmcgdGhyb3VnaCBIVFRQIFBVVCBvciBQT1NUPC9saT4KKzwvdWw+PGgzPjIuNC4wOiBKdWx5IDEwIDIwMDE8L2gzPjx1bD48bGk+Rml4ZWQgYSBmZXcgYnVncyBpbiBYUGF0aCwgdmFsaWRhdGlvbiwgYW5kIHRyZWUgaGFuZGxpbmcuPC9saT4KKyAgPGxpPkZpeGVkIFhNTCBCYXNlIGltcGxlbWVudGF0aW9uLCBhZGRlZCBhIGNvdXBsZSBvZiBleGFtcGxlcyB0byB0aGUKKyAgICByZWdyZXNzaW9uIHRlc3RzPC9saT4KKyAgPGxpPkEgYml0IG9mIGNsZWFudXA8L2xpPgorPC91bD48aDM+Mi4zLjE0OiBKdWx5IDUgMjAwMTwvaDM+PHVsPjxsaT5maXhlZCBzb21lIGVudGl0aWVzIHByb2JsZW1zIGFuZCByZWR1Y2UgbWVtb3J5IHJlcXVpcmVtZW50IHdoZW4KKyAgICBzdWJzdGl0dXRpbmcgdGhlbTwvbGk+CisgIDxsaT5sb3RzIG9mIGltcHJvdmVtZW50cyBpbiB0aGUgWFBhdGggcXVlcmllcyBpbnRlcnByZXRlciBjYW4gYmUKKyAgICBzdWJzdGFudGlhbGx5IGZhc3RlcjwvbGk+CisgIDxsaT5NYWtlZmlsZXMgYW5kIGNvbmZpZ3VyZSBjbGVhbnVwczwvbGk+CisgIDxsaT5GaXhlcyB0byBYUGF0aCB2YXJpYWJsZSBldmFsLCBhbmQgY29tcGFyZSBvbiBlbXB0eSBub2RlIHNldDwvbGk+CisgIDxsaT5IVE1MIHRhZyBjbG9zaW5nIGJ1ZyBmaXhlZDwvbGk+CisgIDxsaT5GaXhlZCBhbiBVUkkgcmVmZXJlbmNlIGNvbXB1dGF0aW9uIHByb2JsZW0gd2hlbiB2YWxpZGF0aW5nPC9saT4KKzwvdWw+PGgzPjIuMy4xMzogSnVuZSAyOCAyMDAxPC9oMz48dWw+PGxpPjIuMy4xMiBjb25maWd1cmUuaW4gd2FzIGJyb2tlbiBhcyB3ZWxsIGFzIHRoZSBwdXNoIG1vZGUgWE1MIHBhcnNlcjwvbGk+CisgIDxsaT5hIGZldyBtb3JlIGZpeGVzIGZvciBjb21waWxhdGlvbiBvbiBXaW5kb3dzIE1TQyBieSBZb24gRGVyZWs8L2xpPgorPC91bD48aDM+MS44LjE0OiBKdW5lIDI4IDIwMDE8L2gzPjx1bD48bGk+WmJpZ25pZXcgQ2h5bGEgZ2F2ZSBhIHBhdGNoIHRvIHVzZSB0aGUgb2xkIFhNTCBwYXJzZXIgaW4gcHVzaCBtb2RlPC9saT4KKyAgPGxpPlNtYWxsIE1ha2VmaWxlIGZpeDwvbGk+Cis8L3VsPjxoMz4yLjMuMTI6IEp1bmUgMjYgMjAwMTwvaDM+PHVsPjxsaT5sb3RzIG9mIGNsZWFudXA8L2xpPgorICA8bGk+YSBjb3VwbGUgb2YgdmFsaWRhdGlvbiBmaXg8L2xpPgorICA8bGk+Zml4ZWQgbGluZSBudW1iZXIgY291bnRpbmc8L2xpPgorICA8bGk+Zml4ZWQgc2VyaW91cyBwcm9ibGVtcyBpbiB0aGUgWEluY2x1ZGUgcHJvY2Vzc2luZzwvbGk+CisgIDxsaT5hZGRlZCBzdXBwb3J0IGZvciBVVEY4IEJPTSBhdCBiZWdpbm5pbmcgb2YgZW50aXRpZXM8L2xpPgorICA8bGk+Zml4ZWQgYSBzdHJhbmdlIGdjYyBvcHRpbWl6ZXIgYnVncyBpbiB4cGF0aCBoYW5kbGluZyBvZiBmbG9hdCwgZ2NjLTMuMAorICAgIG1pc2NvbXBpbGUgdXJpLmMgKFdpbGxpYW0pLCBUaG9tYXMgTGVpdG5lciBwcm92aWRlZCBhIGZpeCBmb3IgdGhlCisgICAgb3B0aW1pemVyIG9uIFRydTY0PC9saT4KKyAgPGxpPmluY29ycG9yYXRlZCBZb24gRGVyZWsgYW5kIElnb3IgWmxhdGtvdmljICBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIGZvcgorICAgIGNvbXBpbGF0aW9uIG9uIFdpbmRvd3MgTVNDPC9saT4KKyAgPGxpPnVwZGF0ZSBvZiBsaWJ4bWwtZG9jLmVsIChGZWxpeCBOYXR0ZXIpPC9saT4KKyAgPGxpPmZpeGVkIDIgYnVncyBpbiBVUkkgbm9ybWFsaXphdGlvbiBjb2RlPC9saT4KKzwvdWw+PGgzPjIuMy4xMTogSnVuZSAxNyAyMDAxPC9oMz48dWw+PGxpPnVwZGF0ZXMgdG8gdHJpbywgTWFrZWZpbGVzIGFuZCBjb25maWd1cmUgc2hvdWxkIGZpeCBzb21lIHBvcnRhYmlsaXR5CisgICAgcHJvYmxlbXMgKGFscGhhKTwvbGk+CisgIDxsaT5maXhlZCBzb21lIEhUTUwgc2VyaWFsaXphdGlvbiBwcm9ibGVtcyAocHJlLCBzY3JpcHQsIGFuZCBibG9jay9pbmxpbmUKKyAgICBoYW5kbGluZyksIGFkZGVkIGVuY29kaW5nIGF3YXJlIEFQSXMsIGNsZWFudXAgb2YgdGhpcyBjb2RlPC9saT4KKyAgPGxpPmFkZGVkIHhtbEhhc05zUHJvcCgpPC9saT4KKyAgPGxpPmltcGxlbWVudGVkIGEgc3BlY2lmaWMgUEkgZm9yIGVuY29kaW5nIHN1cHBvcnQgaW4gdGhlIERvY0Jvb2sgU0dNTAorICAgIHBhcnNlcjwvbGk+CisgIDxsaT5zb21lIFhQYXRoIGZpeGVzICgtSW5maW5pdHksIC8gYXMgYSBmdW5jdGlvbiBwYXJhbWV0ZXIgYW5kIG5hbWVzcGFjZXMKKyAgICBub2RlIHNlbGVjdGlvbik8L2xpPgorICA8bGk+Zml4ZWQgYSBwZXJmb3JtYW5jZSBwcm9ibGVtIGFuZCBhbiBlcnJvciBpbiB0aGUgdmFsaWRhdGlvbiBjb2RlPC9saT4KKyAgPGxpPmZpeGVkIFhJbmNsdWRlIHJvdXRpbmUgdG8gaW1wbGVtZW50IHRoZSByZWN1cnNpdmUgYmVoYXZpb3VyPC9saT4KKyAgPGxpPmZpeGVkIHhtbEZyZWVOb2RlIHByb2JsZW0gd2hlbiBsaWJ4bWwgaXMgaW5jbHVkZWQgc3RhdGljYWxseSB0d2ljZTwvbGk+CisgIDxsaT5hZGRlZCAtLXZlcnNpb24gdG8geG1sbGludCBmb3IgYnVnIHJlcG9ydHM8L2xpPgorPC91bD48aDM+Mi4zLjEwOiBKdW5lIDEgMjAwMTwvaDM+PHVsPjxsaT5maXhlZCB0aGUgU0dNTCBjYXRhbG9nIHN1cHBvcnQ8L2xpPgorICA8bGk+YSBudW1iZXIgb2YgcmVwb3J0ZWQgYnVncyBnb3QgZml4ZWQsIGluIFhQYXRoLCBpY29udiBkZXRlY3Rpb24sCisgICAgWEluY2x1ZGUgcHJvY2Vzc2luZzwvbGk+CisgIDxsaT5YUGF0aCBzdHJpbmcgZnVuY3Rpb24gc2hvdWxkIG5vdyBoYW5kbGUgdW5pY29kZSBjb3JyZWN0bHk8L2xpPgorPC91bD48aDM+Mi4zLjk6IE1heSAxOSAyMDAxPC9oMz48cD5Mb3RzIG9mIGJ1Z2ZpeGVzLCBhbmQgYWRkZWQgYSBiYXNpYyBTR01MIGNhdGFsb2cgc3VwcG9ydDo8L3A+PHVsPjxsaT5IVE1MIHB1c2ggYnVnZml4ICM1NDg5MSBhbmQgYW5vdGhlciBwYXRjaCBmcm9tIEpvbmFzIEJvcmdzdHLDtm08L2xpPgorICA8bGk+c29tZSBzZXJpb3VzIHNwZWVkIG9wdGltaXphdGlvbiBhZ2FpbjwvbGk+CisgIDxsaT5zb21lIGRvY3VtZW50YXRpb24gY2xlYW51cHM8L2xpPgorICA8bGk+dHJ5aW5nIHRvIGdldCBiZXR0ZXIgbGlua2luZyBvbiBTb2xhcmlzICgtUik8L2xpPgorICA8bGk+WFBhdGggQVBJIGNsZWFudXAgZnJvbSBUaG9tYXMgQnJveWVyPC9saT4KKyAgPGxpPlZhbGlkYXRpb24gYnVnIGZpeGVkICM1NDYzMSwgYWRkZWQgYSBwYXRjaCBmcm9tIEdhcnkgUGVubmluZ3RvbiwgZml4ZWQKKyAgICB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMoKTwvbGk+CisgIDxsaT5BZGRlZCBhbiBJTlNUQUxMIGZpbGU8L2xpPgorICA8bGk+QXR0cmlidXRlIHJlbW92YWwgYWRkZWQgdG8gQVBJOiAjNTQ0MzM8L2xpPgorICA8bGk+YWRkZWQgYSBiYXNpYyBzdXBwb3J0IGZvciBTR01MIGNhdGFsb2dzPC9saT4KKyAgPGxpPmZpeGVkIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIEFQSTwvbGk+CisgIDxsaT5idWdmaXggaW4geG1sTm9kZUdldExhbmcoKTwvbGk+CisgIDxsaT5maXhlZCBhIHNtYWxsIGNvbmZpZ3VyZSBwb3J0YWJpbGl0eSBwcm9ibGVtPC9saT4KKyAgPGxpPmZpeGVkIGFuIGludmVyc2lvbiBvZiBTWVNURU0gYW5kIFBVQkxJQyBpZGVudGlmaWVyIGluIEhUTUwgZG9jdW1lbnQ8L2xpPgorPC91bD48aDM+MS44LjEzOiBNYXkgMTQgMjAwMTwvaDM+PHVsPjxsaT5idWdmaXhlcyByZWxlYXNlIG9mIHRoZSBvbGQgbGlieG1sMSBicmFuY2ggdXNlZCBieSBHbm9tZTwvbGk+Cis8L3VsPjxoMz4yLjMuODogTWF5IDMgMjAwMTwvaDM+PHVsPjxsaT5JbnRlZ3JhdGVkIGFuIFNHTUwgRG9jQm9vayBwYXJzZXIgZm9yIHRoZSBHbm9tZSBwcm9qZWN0PC9saT4KKyAgPGxpPkZpeGVkIGEgZmV3IHRoaW5ncyBpbiB0aGUgSFRNTCBwYXJzZXI8L2xpPgorICA8bGk+Rml4ZWQgc29tZSBYUGF0aCBidWdzIHJhaXNlZCBieSBYU0xUIHVzZSwgdHJpZWQgdG8gZml4IHRoZSBmbG9hdGluZworICAgIHBvaW50IHBvcnRhYmlsaXR5IGlzc3VlPC9saT4KKyAgPGxpPlNwZWVkIGltcHJvdmVtZW50ICg4TS9zIGZvciBTQVgsIDNNL3MgZm9yIERPTSwgMS41TS9zIGZvcgorICAgIERPTSt2YWxpZGF0aW9uIHVzaW5nIHRoZSBYTUwgUkVDIGFzIGlucHV0IGFuZCBhIDcwME1IeiBjZWxlcm9uKS48L2xpPgorICA8bGk+aW5jb3Jwb3JhdGVkIG1vcmUgV2luZG93cyBjbGVhbnVwPC9saT4KKyAgPGxpPmFkZGVkIHhtbFNhdmVGb3JtYXRGaWxlKCk8L2xpPgorICA8bGk+Zml4ZWQgcHJvYmxlbXMgaW4gY29weWluZyBub2RlcyB3aXRoIGVudGl0aWVzIHJlZmVyZW5jZXMgKGdkb21lKTwvbGk+CisgIDxsaT5yZW1vdmVkIHNvbWUgdHJvdWJsZXMgc3Vycm91bmRpbmcgdGhlIG5ldyB2YWxpZGF0aW9uIG1vZHVsZTwvbGk+Cis8L3VsPjxoMz4yLjMuNzogQXByaWwgMjIgMjAwMTwvaDM+PHVsPjxsaT5sb3RzIG9mIHNtYWxsIGJ1ZyBmaXhlcywgY29ycmVjdGVkIFhQb2ludGVyPC9saT4KKyAgPGxpPk5vbiBkZXRlcm1pbmlzdGljIGNvbnRlbnQgbW9kZWwgdmFsaWRhdGlvbiBzdXBwb3J0PC9saT4KKyAgPGxpPmFkZGVkIHhtbERvY0NvcHlOb2RlIGZvciBnZG9tZTI8L2xpPgorICA8bGk+cmV2YW1wZWQgdGhlIHdheSB0aGUgSFRNTCBwYXJzZXIgaGFuZGxlcyBlbmQgb2YgdGFnczwvbGk+CisgIDxsaT5YUGF0aDogY29ycmVjdGlvbnMgb2YgbmFtZXNwYWNlcyBzdXBwb3J0IGFuZCBudW1iZXIgZm9ybWF0dGluZzwvbGk+CisgIDxsaT5XaW5kb3dzOiBJZ29yIFpsYXRrb3ZpYyBwYXRjaGVzIGZvciBNU0MgY29tcGlsYXRpb248L2xpPgorICA8bGk+SFRNTCBvdXRwdXQgZml4ZXMgZnJvbSBQIEMgQ2hvdyBhbmQgV2lsbGlhbSBNLiBCcmFjazwvbGk+CisgIDxsaT5JbXByb3ZlZCB2YWxpZGF0aW9uIHNwZWVkIHNlbnNpYmxlIGZvciBEb2NCb29rPC9saT4KKyAgPGxpPmZpeGVkIGEgYmlnIGJ1ZyB3aXRoIElEIGRlY2xhcmVkIGluIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllczwvbGk+CisgIDxsaT5wb3J0YWJpbGl0eSBmaXhlcywgdXBkYXRlIG9mIFRyaW8gZnJvbSBCam9ybiBSZWVzZTwvbGk+Cis8L3VsPjxoMz4yLjMuNjogQXByaWwgOCAyMDAxPC9oMz48dWw+PGxpPkNvZGUgY2xlYW51cCB1c2luZyBleHRyZW1lIGdjYyBjb21waWxlciB3YXJuaW5nIG9wdGlvbnMsIGZvdW5kIGFuZAorICAgIGNsZWFyZWQgaGFsZiBhIGRvemVuIHBvdGVudGlhbCBwcm9ibGVtPC9saT4KKyAgPGxpPnRoZSBFYXplbCB0ZWFtIGZvdW5kIGFuIFhNTCBwYXJzZXIgYnVnPC9saT4KKyAgPGxpPmNsZWFuZWQgdXAgdGhlIHVzZXIgb2Ygc29tZSBvZiB0aGUgc3RyaW5nIGZvcm1hdHRpbmcgZnVuY3Rpb24uIHVzZWQgdGhlCisgICAgdHJpbyBsaWJyYXJ5IGNvZGUgdG8gcHJvdmlkZSB0aGUgb25lIG5lZWRlZCB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBtaXNzaW5nCisgICAgdGhlbTwvbGk+CisgIDxsaT54cGF0aDogcmVtb3ZlZCBhIG1lbW9yeSBsZWFrIGFuZCBmaXhlZCB0aGUgcHJlZGljYXRlIGV2YWx1YXRpb24KKyAgICBwcm9ibGVtLCBleHRlbmRlZCB0aGUgdGVzdHN1aXRlIGFuZCBjbGVhbmVkIHVwIHRoZSByZXN1bHQuIFhQb2ludGVyIHNlZW1zCisgICAgYnJva2VuIC4uLjwvbGk+Cis8L3VsPjxoMz4yLjMuNTogTWFyIDIzIDIwMDE8L2gzPjx1bD48bGk+QmlnZ2VzdCBjaGFuZ2UgaXMgc2VwYXJhdGUgcGFyc2luZyBhbmQgZXZhbHVhdGlvbiBvZiBYUGF0aCBleHByZXNzaW9ucywKKyAgICB0aGVyZSBpcyBzb21lIG5ldyBBUElzIGZvciB0aGlzIHRvbzwvbGk+CisgIDxsaT5pbmNsdWRlZCBhIG51bWJlciBvZiBidWcgZml4ZXMoWE1MIHB1c2ggcGFyc2VyLCA1MTg3Niwgbm90YXRpb25zLAorICA1MjI5OSk8L2xpPgorICA8bGk+Rml4ZWQgc29tZSBwb3J0YWJpbGl0eSBpc3N1ZXM8L2xpPgorPC91bD48aDM+Mi4zLjQ6IE1hciAxMCAyMDAxPC9oMz48dWw+PGxpPkZpeGVkIGJ1Z3MgIzUxODYwIGFuZCAjNTE4NjE8L2xpPgorICA8bGk+QWRkZWQgYSBnbG9iYWwgdmFyaWFibGUgeG1sRGVmYXVsdEJ1ZmZlclNpemUgdG8gYWxsb3cgZGVmYXVsdCBidWZmZXIKKyAgICBzaXplIHRvIGJlIGFwcGxpY2F0aW9uIHR1bmFibGUuPC9saT4KKyAgPGxpPlNvbWUgY2xlYW51cCBpbiB0aGUgdmFsaWRhdGlvbiBjb2RlLCBzdGlsbCBhIGJ1ZyBsZWZ0IGFuZCB0aGlzIHBhcnQKKyAgICBzaG91bGQgcHJvYmFibHkgYmUgcmV3cml0dGVuIHRvIHN1cHBvcnQgYW1iaWd1b3VzIGNvbnRlbnQgbW9kZWwgOi1cPC9saT4KKyAgPGxpPkZpeCBhIGNvdXBsZSBvZiBzZXJpb3VzIGJ1Z3MgaW50cm9kdWNlZCBvciByYWlzZWQgYnkgY2hhbmdlcyBpbiAyLjMuMworICAgIHBhcnNlcjwvbGk+CisgIDxsaT5GaXhlZCBhbm90aGVyIGJ1ZyBpbiB4bWxOb2RlR2V0Q29udGVudCgpPC9saT4KKyAgPGxpPkJqb3JuIGZpeGVkIFhQYXRoIG5vZGUgY29sbGVjdGlvbiBhbmQgTnVtYmVyIGZvcm1hdHRpbmc8L2xpPgorICA8bGk+Rml4ZWQgYSBsb29wIHJlcG9ydGVkIGluIHRoZSBIVE1MIHBhcnNpbmc8L2xpPgorICA8bGk+Ymxhbmsgc3BhY2UgYXJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIER0ZCBjb250ZW50IG1vZGVsIHByb3ZlcyB0aGF0IHRoZXkKKyAgICBhcmUgZm9ybWF0dGluZyBzcGFjZXMsIHRoaXMgaXMgZm9yIFhNTCBjb25mb3JtYW5jZTwvbGk+Cis8L3VsPjxoMz4yLjMuMzogTWFyIDEgMjAwMTwvaDM+PHVsPjxsaT5zbWFsbCBjaGFuZ2UgaW4gWFBhdGggZm9yIFhTTFQ8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbiBjbGVhbnVwczwvbGk+CisgIDxsaT5maXggaW4gdmFsaWRhdGlvbiBieSBHYXJ5IFBlbm5pbmd0b248L2xpPgorICA8bGk+c2VyaW91cyBwYXJzaW5nIHBlcmZvcm1hbmNlcyBpbXByb3ZlbWVudHM8L2xpPgorPC91bD48aDM+Mi4zLjI6IEZlYiAyNCAyMDAxPC9oMz48dWw+PGxpPmNoYXNpbmcgWFBhdGggYnVncywgZm91bmQgYSBidW5jaCwgY29tcGxldGVkIHNvbWUgVE9ETzwvbGk+CisgIDxsaT5maXhlZCBhIER0ZCBwYXJzaW5nIGJ1ZzwvbGk+CisgIDxsaT5maXhlZCBhIGJ1ZyBpbiB4bWxOb2RlR2V0Q29udGVudDwvbGk+CisgIDxsaT5JRC9JRFJFRiBzdXBwb3J0IHBhcnRseSByZXdyaXR0ZW4gYnkgR2FyeSBQZW5uaW5ndG9uPC9saT4KKzwvdWw+PGgzPjIuMy4xOiBGZWIgMTUgMjAwMTwvaDM+PHVsPjxsaT5zb21lIFhQYXRoIGFuZCBIVE1MIGJ1ZyBmaXhlcyBmb3IgWFNMVDwvbGk+CisgIDxsaT5zbWFsbCBleHRlbnNpb24gb2YgdGhlIGhhc2ggdGFibGUgaW50ZXJmYWNlcyBmb3IgRE9NIGdkb21lMgorICAgIGltcGxlbWVudGF0aW9uPC9saT4KKyAgPGxpPkEgZmV3IGJ1ZyBmaXhlczwvbGk+Cis8L3VsPjxoMz4yLjMuMDogRmViIDggMjAwMSAoMi4yLjEyIHdhcyBvbiAyNSBKYW4gYnV0IEkgZGlkbid0IGtlcHQgdHJhY2spPC9oMz48dWw+PGxpPkxvdHMgb2YgWFBhdGggYnVnIGZpeGVzPC9saT4KKyAgPGxpPkFkZCBhIG1vZGUgd2l0aCBEdGQgbG9va3VwIGJ1dCB3aXRob3V0IHZhbGlkYXRpb24gZXJyb3IgcmVwb3J0aW5nIGZvcgorICAgIFhTTFQ8L2xpPgorICA8bGk+QWRkIHN1cHBvcnQgZm9yIHRleHQgbm9kZSB3aXRob3V0IGVzY2FwaW5nIChYU0xUKTwvbGk+CisgIDxsaT5idWcgZml4ZXMgZm9yIHhtbENoZWNrRmlsZW5hbWU8L2xpPgorICA8bGk+dmFsaWRhdGlvbiBjb2RlIGJ1ZyBmaXhlcyBmcm9tIEdhcnkgUGVubmluZ3RvbjwvbGk+CisgIDxsaT5QYXRjaCBmcm9tIFBhdWwgRC4gU21pdGggY29ycmVjdGluZyBVUkkgcGF0aCBub3JtYWxpemF0aW9uPC9saT4KKyAgPGxpPlBhdGNoIHRvIGFsbG93IHNpbXVsdGFuZW91cyBpbnN0YWxsIG9mIGxpYnhtbC1kZXZlbCBhbmQKKyAgbGlieG1sMi1kZXZlbDwvbGk+CisgIDxsaT50aGUgZXhhbXBsZSBNYWtlZmlsZSBpcyBub3cgZml4ZWQ8L2xpPgorICA8bGk+YWRkZWQgSFRNTCB0byB0aGUgUlBNIHBhY2thZ2VzPC9saT4KKyAgPGxpPnRyZWUgY29weWluZyBidWdmaXhlczwvbGk+CisgIDxsaT51cGRhdGVzIHRvIFdpbmRvd3MgbWFrZWZpbGVzPC9saT4KKyAgPGxpPm9wdGltaXphdGlvbiBwYXRjaCBmcm9tIEJqb3JuIFJlZXNlPC9saT4KKzwvdWw+PGgzPjIuMi4xMTogSmFuIDQgMjAwMTwvaDM+PHVsPjxsaT5idW5jaCBvZiBidWcgZml4ZXMgKG1lbW9yeSBJL08sIHhwYXRoLCBmdHAvaHR0cCwgLi4uKTwvbGk+CisgIDxsaT5hZGRlZCBodG1sSGFuZGxlT21pdHRlZEVsZW0oKTwvbGk+CisgIDxsaT5BcHBsaWVkIEJqb3JuIFJlZXNlJ3MgSVBWNiBmaXJzdCBwYXRjaDwvbGk+CisgIDxsaT5BcHBsaWVkIFBhdWwgRC4gU21pdGggcGF0Y2hlcyBmb3IgdmFsaWRhdGlvbiBvZiBYSW5jbHVkZSByZXN1bHRzPC9saT4KKyAgPGxpPmFkZGVkIFhQb2ludGVyIHhtbG5zKCkgbmV3IHNjaGVtZSBzdXBwb3J0PC9saT4KKzwvdWw+PGgzPjIuMi4xMDogTm92IDI1IDIwMDA8L2gzPjx1bD48bGk+Rml4IHRoZSBXaW5kb3dzIHByb2JsZW1zIG9mIDIuMi44PC9saT4KKyAgPGxpPmludGVncmF0ZSBPcGVuVk1TIHBhdGNoZXM8L2xpPgorICA8bGk+YmV0dGVyIGhhbmRsaW5nIG9mIHNvbWUgbmFzdHkgSFRNTCBpbnB1dDwvbGk+CisgIDxsaT5JbXByb3ZlZCB0aGUgWFBvaW50ZXIgaW1wbGVtZW50YXRpb248L2xpPgorICA8bGk+aW50ZWdyYXRlIGEgbnVtYmVyIG9mIHByb3ZpZGVkIHBhdGNoZXM8L2xpPgorPC91bD48aDM+Mi4yLjk6IE5vdiAyNSAyMDAwPC9oMz48dWw+PGxpPmVycm9uZW91cyByZWxlYXNlIDotKDwvbGk+Cis8L3VsPjxoMz4yLjIuODogTm92IDEzIDIwMDA8L2gzPjx1bD48bGk+Rmlyc3QgdmVyc2lvbiBvZiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aW5jbHVkZSI+WEluY2x1ZGU8L2E+CisgICAgc3VwcG9ydDwvbGk+CisgIDxsaT5QYXRjaCBpbiBjb25kaXRpb25hbCBzZWN0aW9uIGhhbmRsaW5nPC9saT4KKyAgPGxpPnVwZGF0ZWQgTVMgY29tcGlsZXIgcHJvamVjdDwvbGk+CisgIDxsaT5maXhlZCBzb21lIFhQYXRoIHByb2JsZW1zPC9saT4KKyAgPGxpPmFkZGVkIGFuIFVSSSBlc2NhcGluZyBmdW5jdGlvbjwvbGk+CisgIDxsaT5zb21lIG90aGVyIGJ1ZyBmaXhlczwvbGk+Cis8L3VsPjxoMz4yLjIuNzogT2N0IDMxIDIwMDA8L2gzPjx1bD48bGk+YWRkZWQgbWVzc2FnZSByZWRpcmVjdGlvbjwvbGk+CisgIDxsaT5YUGF0aCBpbXByb3ZlbWVudHMgKHRoYW5rcyBUT00gISk8L2xpPgorICA8bGk+eG1sSU9QYXJzZURURCgpIGFkZGVkPC9saT4KKyAgPGxpPnZhcmlvdXMgc21hbGwgZml4ZXMgaW4gdGhlIEhUTUwsIFVSSSwgSFRUUCBhbmQgWFBvaW50ZXIgc3VwcG9ydDwvbGk+CisgIDxsaT5zb21lIGNsZWFudXAgb2YgdGhlIE1ha2VmaWxlLCBhdXRvY29uZiBhbmQgdGhlIGRpc3RyaWJ1dGlvbiBjb250ZW50PC9saT4KKzwvdWw+PGgzPjIuMi42OiBPY3QgMjUgMjAwMDo8L2gzPjx1bD48bGk+QWRkZWQgYW4gaGFzaCB0YWJsZSBtb2R1bGUsIG1pZ3JhdGVkIGEgbnVtYmVyIG9mIGludGVybmFsIHN0cnVjdHVyZSB0bworICAgIHRob3NlPC9saT4KKyAgPGxpPkZpeGVkIGEgcG9zdGVyaW9yaSB2YWxpZGF0aW9uIHByb2JsZW1zPC9saT4KKyAgPGxpPkhUVFAgbW9kdWxlIGNsZWFudXBzPC9saT4KKyAgPGxpPkhUTUwgcGFyc2VyIGltcHJvdmVtZW50cyAodGFnIGVycm9ycywgc2NyaXB0L3N0eWxlIGhhbmRsaW5nLCBhdHRyaWJ1dGUKKyAgICBub3JtYWxpemF0aW9uKTwvbGk+CisgIDxsaT5jb2FsZXNjaW5nIG9mIGFkamFjZW50IHRleHQgbm9kZXM8L2xpPgorICA8bGk+Y291cGxlIG9mIFhQYXRoIGJ1ZyBmaXhlcywgZXhwb3J0ZWQgdGhlIGludGVybmFsIEFQSTwvbGk+Cis8L3VsPjxoMz4yLjIuNTogT2N0IDE1IDIwMDA6PC9oMz48dWw+PGxpPlhQb2ludGVyIGltcGxlbWVudGF0aW9uIGFuZCB0ZXN0c3VpdGU8L2xpPgorICA8bGk+TG90IG9mIFhQYXRoIGZpeGVzLCBhZGRlZCB2YXJpYWJsZSBhbmQgZnVuY3Rpb25zIHJlZ2lzdHJhdGlvbiwgbW9yZQorICAgIHRlc3RzPC9saT4KKyAgPGxpPlBvcnRhYmlsaXR5IGZpeGVzLCBsb3RzIG9mIGVuaGFuY2VtZW50cyB0b3dhcmQgYW4gZWFzeSBXaW5kb3dzIGJ1aWxkCisgICAgYW5kIHJlbGVhc2U8L2xpPgorICA8bGk+TGF0ZSB2YWxpZGF0aW9uIGZpeGVzPC9saT4KKyAgPGxpPkludGVncmF0ZWQgYSBsb3Qgb2YgY29udHJpYnV0ZWQgcGF0Y2hlczwvbGk+CisgIDxsaT5hZGRlZCBtZW1vcnkgbWFuYWdlbWVudCBkb2NzPC9saT4KKyAgPGxpPmEgcGVyZm9ybWFuY2UgcHJvYmxlbSB3aGVuIHVzaW5nIGxhcmdlIGJ1ZmZlciBzZWVtcyBmaXhlZDwvbGk+Cis8L3VsPjxoMz4yLjIuNDogT2N0IDEgMjAwMDo8L2gzPjx1bD48bGk+bWFpbiBYUGF0aCBwcm9ibGVtIGZpeGVkPC9saT4KKyAgPGxpPkludGVncmF0ZWQgcG9ydGFiaWxpdHkgcGF0Y2hlcyBmb3IgV2luZG93czwvbGk+CisgIDxsaT5TZXJpb3VzIGJ1ZyBmaXhlcyBvbiB0aGUgVVJJIGFuZCBIVE1MIGNvZGU8L2xpPgorPC91bD48aDM+Mi4yLjM6IFNlcCAxNyAyMDAwPC9oMz48dWw+PGxpPmJ1ZyBmaXhlczwvbGk+CisgIDxsaT5jbGVhbnVwIG9mIGVudGl0eSBoYW5kbGluZyBjb2RlPC9saT4KKyAgPGxpPm92ZXJhbGwgcmV2aWV3IG9mIGFsbCBsb29wcyBpbiB0aGUgcGFyc2VycywgYWxsIHNwcmludGYgdXNhZ2UgaGFzIGJlZW4KKyAgICBjaGVja2VkIHRvbzwvbGk+CisgIDxsaT5GYXIgYmV0dGVyIGhhbmRsaW5nIG9mIGxhcmdlcyBEdGQuIFZhbGlkYXRpbmcgYWdhaW5zdCBEb2NCb29rIFhNTCBEdGQKKyAgICB3b3JrcyBzbW9vdGhseSBub3cuPC9saT4KKzwvdWw+PGgzPjEuOC4xMDogU2VwIDYgMjAwMDwvaDM+PHVsPjxsaT5idWcgZml4IHJlbGVhc2UgZm9yIHNvbWUgR25vbWUgcHJvamVjdHM8L2xpPgorPC91bD48aDM+Mi4yLjI6IEF1Z3VzdCAxMiAyMDAwPC9oMz48dWw+PGxpPm1vc3RseSBidWcgZml4ZXM8L2xpPgorICA8bGk+c3RhcnRlZCBhZGRpbmcgcm91dGluZXMgdG8gYWNjZXNzIHhtbCBwYXJzZXIgY29udGV4dCBvcHRpb25zPC9saT4KKzwvdWw+PGgzPjIuMi4xOiBKdWx5IDIxIDIwMDA8L2gzPjx1bD48bGk+YSBwdXJlbHkgYnVnIGZpeGVzIHJlbGVhc2U8L2xpPgorICA8bGk+Zml4ZWQgYW4gZW5jb2Rpbmcgc3VwcG9ydCBwcm9ibGVtIHdoZW4gcGFyc2luZyBmcm9tIGEgbWVtb3J5IGJsb2NrPC9saT4KKyAgPGxpPmZpeGVkIGEgRE9DVFlQRSBwYXJzaW5nIHByb2JsZW08L2xpPgorICA8bGk+cmVtb3ZlZCBhIGJ1ZyBpbiB0aGUgZnVuY3Rpb24gYWxsb3dpbmcgdG8gb3ZlcnJpZGUgdGhlIG1lbW9yeQorICAgIGFsbG9jYXRpb24gcm91dGluZXM8L2xpPgorPC91bD48aDM+Mi4yLjA6IEp1bHkgMTQgMjAwMDwvaDM+PHVsPjxsaT5hcHBsaWVkIGEgbG90IG9mIHBvcnRhYmlsaXR5IGZpeGVzPC9saT4KKyAgPGxpPmJldHRlciBlbmNvZGluZyBzdXBwb3J0L2NsZWFudXAgYW5kIHNhdmluZyAoY29udGVudCBpcyBub3cgYWx3YXlzCisgICAgZW5jb2RlZCBpbiBVVEYtOCk8L2xpPgorICA8bGk+dGhlIEhUTUwgcGFyc2VyIG5vdyBjb3JyZWN0bHkgaGFuZGxlcyBlbmNvZGluZ3M8L2xpPgorICA8bGk+YWRkZWQgeG1sSGFzUHJvcCgpPC9saT4KKyAgPGxpPmZpeGVkIGEgc2VyaW91cyBwcm9ibGVtIHdpdGggJmFtcDsjMzg7PC9saT4KKyAgPGxpPnByb3BhZ2F0ZWQgdGhlIGZpeCB0byBGVFAgY2xpZW50PC9saT4KKyAgPGxpPmNsZWFudXAsIGJ1Z2ZpeGVzLCBldGMgLi4uPC9saT4KKyAgPGxpPkFkZGVkIGEgcGFnZSBhYm91dCA8YSBocmVmPSJlbmNvZGluZy5odG1sIj5saWJ4bWwgSW50ZXJuYXRpb25hbGl6YXRpb24KKyAgICBzdXBwb3J0PC9hPjwvbGk+Cis8L3VsPjxoMz4xLjguOTogIEp1bHkgOSAyMDAwPC9oMz48dWw+PGxpPmZpeGVkIHRoZSBzcGVjIHRoZSBSUE1zIHNob3VsZCBiZSBiZXR0ZXI8L2xpPgorICA8bGk+Zml4ZWQgYSBzZXJpb3VzIGJ1ZyBpbiB0aGUgRlRQIGltcGxlbWVudGF0aW9uLCByZWxlYXNlZCAxLjguOSB0byBzb2x2ZQorICAgIHJwbWZpbmQgdXNlcnMgcHJvYmxlbTwvbGk+Cis8L3VsPjxoMz4yLjEuMTogSnVseSAxIDIwMDA8L2gzPjx1bD48bGk+Zml4ZXMgYSBjb3VwbGUgb2YgYnVncyBpbiB0aGUgMi4xLjAgcGFja2FnaW5nPC9saT4KKyAgPGxpPmltcHJvdmVtZW50cyBvbiB0aGUgSFRNTCBwYXJzZXI8L2xpPgorPC91bD48aDM+Mi4xLjAgYW5kIDEuOC44OiBKdW5lIDI5IDIwMDA8L2gzPjx1bD48bGk+MS44LjggaXMgbW9zdGx5IGEgY29tbW9kaXR5IHBhY2thZ2UgZm9yIHVwZ3JhZGluZyB0byBsaWJ4bWwyIGFjY29yZGluZworICAgIHRvIDxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+bmV3IGluc3RydWN0aW9uczwvYT4uIEl0IGZpeGVzIGEgbmFzdHkgcHJvYmxlbQorICAgIGFib3V0ICZhbXA7IzM4OyBjaGFycmVmIHBhcnNpbmc8L2xpPgorICA8bGk+Mi4xLjAgYWxzbyBlYXNlIHRoZSB1cGdyYWRlIGZyb20gbGlieG1sIHYxIHRvIHRoZSByZWNlbnQgdmVyc2lvbi4gaXQKKyAgICBhbHNvIGNvbnRhaW5zIG51bWVyb3VzIGZpeGVzIGFuZCBlbmhhbmNlbWVudHM6CisgICAgPHVsPjxsaT5hZGRlZCB4bWxTdG9wUGFyc2VyKCkgdG8gc3RvcCBwYXJzaW5nPC9saT4KKyAgICAgIDxsaT5pbXByb3ZlZCBhIGxvdCBwYXJzaW5nIHNwZWVkIHdoZW4gdGhlcmUgaXMgbGFyZ2UgQ0RBVEEgYmxvY3M8L2xpPgorICAgICAgPGxpPmluY2x1ZGVzIFhQYXRoIHBhdGNoZXMgcHJvdmlkZWQgYnkgUGljZGFyIFRlY2hub2xvZ3k8L2xpPgorICAgICAgPGxpPnRyaWVkIHRvIGZpeCBhcyBtdWNoIGFzIHBvc3NpYmxlIERURCB2YWxpZGF0aW9uIGFuZCBuYW1lc3BhY2UKKyAgICAgICAgcmVsYXRlZCBwcm9ibGVtczwvbGk+CisgICAgICA8bGk+b3V0cHV0IHRvIGEgZ2l2ZW4gZW5jb2RpbmcgaGFzIGJlZW4gYWRkZWQvdGVzdGVkPC9saT4KKyAgICAgIDxsaT5sb3Qgb2YgdmFyaW91cyBmaXhlczwvbGk+CisgICAgPC91bD48L2xpPgorPC91bD48aDM+Mi4wLjA6IEFwciAxMiAyMDAwPC9oMz48dWw+PGxpPkZpcnN0IHB1YmxpYyByZWxlYXNlIG9mIGxpYnhtbDIuIElmIHlvdSBhcmUgdXNpbmcgbGlieG1sLCBpdCdzIGEgZ29vZAorICAgIGlkZWEgdG8gY2hlY2sgdGhlIDEueCB0byAyLnggdXBncmFkZSBpbnN0cnVjdGlvbnMuIE5PVEU6IHdoaWxlIGluaXRpYWxseQorICAgIHNjaGVkdWxlZCBmb3IgQXByIDMgdGhlIHJlbGVhc2Ugb2NjdXJyZWQgb25seSBvbiBBcHIgMTIgZHVlIHRvIG1hc3NpdmUKKyAgICB3b3JrbG9hZC48L2xpPgorICA8bGk+VGhlIGluY2x1ZGUgYXJlIG5vdyBsb2NhdGVkIHVuZGVyICRwcmVmaXgvaW5jbHVkZS9saWJ4bWwgKGluc3RlYWQgb2YKKyAgICAkcHJlZml4L2luY2x1ZGUvZ25vbWUteG1sKSwgdGhleSBhbHNvIGFyZSByZWZlcmVuY2VkIGJ5CisgICAgPHByZT4jaW5jbHVkZSAmbHQ7bGlieG1sL3h4eC5oJmd0OzwvcHJlPgorICAgIDxwPmluc3RlYWQgb2Y8L3A+CisgICAgPHByZT4jaW5jbHVkZSAieHh4LmgiPC9wcmU+CisgIDwvbGk+CisgIDxsaT5hIG5ldyBVUkkgbW9kdWxlIGZvciBwYXJzaW5nIFVSSXMgYW5kIGZvbGxvd2luZyBzdHJpY3RseSBSRkMgMjM5NjwvbGk+CisgIDxsaT50aGUgbWVtb3J5IGFsbG9jYXRpb24gcm91dGluZXMgdXNlZCBieSBsaWJ4bWwgY2FuIG5vdyBiZSBvdmVybG9hZGVkCisgICAgZHluYW1pY2FsbHkgYnkgdXNpbmcgeG1sTWVtU2V0dXAoKTwvbGk+CisgIDxsaT5UaGUgcHJldmlvdXNseSBDVlMgb25seSB0b29sIHRlc3RlciBoYXMgYmVlbiByZW5hbWVkCisgICAgPHN0cm9uZz54bWxsaW50PC9zdHJvbmc+IGFuZCBpcyBub3cgaW5zdGFsbGVkIGFzIHBhcnQgb2YgdGhlIGxpYnhtbDIKKyAgICBwYWNrYWdlPC9saT4KKyAgPGxpPlRoZSBJL08gaW50ZXJmYWNlIGhhcyBiZWVuIHJldmFtcGVkLiBUaGVyZSBpcyBub3cgd2F5cyB0byBwbHVnIGluCisgICAgc3BlY2lmaWMgSS9PIG1vZHVsZXMsIGVpdGhlciBhdCB0aGUgVVJJIHNjaGVtZSBkZXRlY3Rpb24gbGV2ZWwgdXNpbmcKKyAgICB4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzKCkgIG9yIGJ5IHBhc3NpbmcgSS9PIGZ1bmN0aW9ucyB3aGVuIGNyZWF0aW5nIGEKKyAgICBwYXJzZXIgY29udGV4dCB1c2luZyB4bWxDcmVhdGVJT1BhcnNlckN0eHQoKTwvbGk+CisgIDxsaT50aGVyZSBpcyBhIEMgcHJlcHJvY2Vzc29yIG1hY3JvIExJQlhNTF9WRVJTSU9OIHByb3ZpZGluZyB0aGUgdmVyc2lvbgorICAgIG51bWJlciBvZiB0aGUgbGlieG1sIG1vZHVsZSBpbiB1c2U8L2xpPgorICA8bGk+YSBudW1iZXIgb2Ygb3B0aW9uYWwgZmVhdHVyZXMgb2YgbGlieG1sIGNhbiBub3cgYmUgZXhjbHVkZWQgYXQKKyAgICBjb25maWd1cmUgdGltZSAoRlRQL0hUVFAvSFRNTC9YUGF0aC9EZWJ1Zyk8L2xpPgorPC91bD48aDM+Mi4wLjBiZXRhOiBNYXIgMTQgMjAwMDwvaDM+PHVsPjxsaT5UaGlzIGlzIGEgZmlyc3QgQmV0YSByZWxlYXNlIG9mIGxpYnhtbCB2ZXJzaW9uIDI8L2xpPgorICA8bGk+SXQncyBhdmFpbGFibGUgb25seSBmcm9tPGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi8iPnhtbHNvZnQub3JnCisgICAgRlRQPC9hPiwgaXQncyBwYWNrYWdlZCBhcyBsaWJ4bWwyLTIuMC4wYmV0YSBhbmQgYXZhaWxhYmxlIGFzIHRhciBhbmQKKyAgUlBNczwvbGk+CisgIDxsaT5UaGlzIHZlcnNpb24gaXMgbm93IHRoZSBoZWFkIGluIHRoZSBHbm9tZSBDVlMgYmFzZSwgdGhlIG9sZCBvbmUgaXMKKyAgICBhdmFpbGFibGUgdW5kZXIgdGhlIHRhZyBMSUJfWE1MXzFfWDwvbGk+CisgIDxsaT5UaGlzIGluY2x1ZGVzIGEgdmVyeSBsYXJnZSBzZXQgb2YgY2hhbmdlcy4gRnJvbSBhICBwcm9ncmFtbWF0aWMgcG9pbnQKKyAgICBvZiB2aWV3IGFwcGxpY2F0aW9ucyBzaG91bGQgbm90IGhhdmUgdG8gYmUgbW9kaWZpZWQgdG9vIG11Y2gsIGNoZWNrIHRoZQorICAgIDxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+dXBncmFkZSBwYWdlPC9hPjwvbGk+CisgIDxsaT5Tb21lIGludGVyZmFjZXMgbWF5IGNoYW5nZXMgKGVzcGVjaWFsbHkgYSBiaXQgYWJvdXQgZW5jb2RpbmcpLjwvbGk+CisgIDxsaT50aGUgdXBkYXRlcyBpbmNsdWRlczoKKyAgICA8dWw+PGxpPmZpeCBJMThOIHN1cHBvcnQuIElTTy1MYXRpbi14L1VURi04L1VURi0xNiAobmVhcmx5KSBzZWVtcyBjb3JyZWN0bHkKKyAgICAgICAgaGFuZGxlZCBub3c8L2xpPgorICAgICAgPGxpPkJldHRlciBoYW5kbGluZyBvZiBlbnRpdGllcywgZXNwZWNpYWxseSB3ZWxsLWZvcm1lZG5lc3MgY2hlY2tpbmcKKyAgICAgICAgYW5kIHByb3BlciBQRXJlZiBleHRlbnNpb25zIGluIGV4dGVybmFsIHN1YnNldHM8L2xpPgorICAgICAgPGxpPkRURCBjb25kaXRpb25hbCBzZWN0aW9uczwvbGk+CisgICAgICA8bGk+VmFsaWRhdGlvbiBub3cgY29ycmVjdGx5IGhhbmRsZSBlbnRpdGllcyBjb250ZW50PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvdG9vbHMvZ2RvbWUvbWVzc2FnZXMvMDAzOS5odG1sIj5jaGFuZ2UKKyAgICAgICAgc3RydWN0dXJlcyB0byBhY2NvbW1vZGF0ZSBET008L2E+PC9saT4KKyAgICA8L3VsPjwvbGk+CisgIDxsaT5TZXJpb3VzIHByb2dyZXNzIHdlcmUgbWFkZSB0b3dhcmQgY29tcGxpYW5jZSwgPGEgaHJlZj0iY29uZi9yZXN1bHQuaHRtbCI+aGVyZSBhcmUgdGhlIHJlc3VsdCBvZiB0aGUgdGVzdDwvYT4gYWdhaW5zdCB0aGUKKyAgICBPQVNJUyB0ZXN0c3VpdGUgKGV4Y2VwdCB0aGUgSmFwYW5lc2UgdGVzdHMgc2luY2UgSSBkb24ndCBzdXBwb3J0IHRoYXQKKyAgICBlbmNvZGluZyB5ZXQpLiBUaGlzIFVSTCBpcyByZWJ1aWx0IGV2ZXJ5IGNvdXBsZSBvZiBob3VycyB1c2luZyB0aGUgQ1ZTCisgICAgaGVhZCB2ZXJzaW9uLjwvbGk+Cis8L3VsPjxoMz4xLjguNzogTWFyIDYgMjAwMDwvaDM+PHVsPjxsaT5UaGlzIGlzIGEgYnVnIGZpeCByZWxlYXNlOjwvbGk+CisgIDxsaT5JdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSBpZ25vcmFibGUgYmxhbmtzIGhldXJpc3RpYyB1c2VkIGJ5CisgICAgbGlieG1sLTEueCwgYSBuZXcgZnVuY3Rpb24gIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdpbGwgYWxsb3cgdGhpcy4gTm90ZQorICAgIHRoYXQgZm9yIGFkaGVyZW5jZSB0byBYTUwgc3BlYywgdGhpcyBiZWhhdmlvdXIgd2lsbCBiZSBkaXNhYmxlZCBieQorICAgIGRlZmF1bHQgaW4gMi54IC4gVGhlIHNhbWUgZnVuY3Rpb24gd2lsbCBhbGxvdyB0byBrZWVwIGNvbXBhdGliaWxpdHkgZm9yCisgICAgb2xkIGNvZGUuPC9saT4KKyAgPGxpPkJsYW5rcyBpbiAmbHQ7YSZndDsgICZsdDsvYSZndDsgY29uc3RydWN0cyBhcmUgbm90IGlnbm9yZWQgYW55bW9yZSwKKyAgICBhdm9pZGluZyBoZXVyaXN0aWMgaXMgcmVhbGx5IHRoZSBSaWdodCBXYXkgOi1cPC9saT4KKyAgPGxpPlRoZSB1bmNoZWNrZWQgdXNlIG9mIHNucHJpbnRmIHdoaWNoIHdhcyBicmVha2luZyBsaWJ4bWwtMS44LjYKKyAgICBjb21waWxhdGlvbiBvbiBzb21lIHBsYXRmb3JtcyBoYXMgYmVlbiBmaXhlZDwvbGk+CisgIDxsaT5uYW5vZnRwLmMgbmFub2h0dHAuYzogRml4ZWQgJyMnIGFuZCAnPycgc3RyaXBwaW5nIHdoZW4gcHJvY2Vzc2luZworICBVUklzPC9saT4KKzwvdWw+PGgzPjEuOC42OiBKYW4gMzEgMjAwMDwvaDM+PHVsPjxsaT5hZGRlZCBhIG5hbm9GVFAgdHJhbnNwb3J0IG1vZHVsZSwgZGVidWdnZWQgdW50aWwgdGhlIG5ldyB2ZXJzaW9uIG9mIDxhIGhyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9ycG0yaHRtbC9ycG1maW5kLmh0bWwiPnJwbWZpbmQ8L2E+IGNhbiB1c2UKKyAgICBpdCB3aXRob3V0IHRyb3VibGVzPC9saT4KKzwvdWw+PGgzPjEuOC41OiBKYW4gMjEgMjAwMDwvaDM+PHVsPjxsaT5hZGRpbmcgQVBJcyB0byBwYXJzZSBhIHdlbGwgYmFsYW5jZWQgY2h1bmsgb2YgWE1MIChwcm9kdWN0aW9uIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjTlQtY29udGVudCI+WzQzXSBjb250ZW50PC9hPiBvZiB0aGUKKyAgICBYTUwgc3BlYyk8L2xpPgorICA8bGk+Zml4ZWQgYSBoaWRlb3VzIGJ1ZyBpbiB4bWxHZXRQcm9wIHBvaW50ZWQgYnkgUnVuZS5EanVyaHV1c0BmYXN0Lm5vPC9saT4KKyAgPGxpPkpvZHkgR29sZGJlcmcgJmx0O2pnb2xkYmVyZ0Bob21lLmNvbSZndDsgcHJvdmlkZWQgYW5vdGhlciBwYXRjaCB0cnlpbmcKKyAgICB0byBzb2x2ZSB0aGUgemxpYiBjaGVja3MgcHJvYmxlbXM8L2xpPgorICA8bGk+VGhlIGN1cnJlbnQgc3RhdGUgaW4gZ25vbWUgQ1ZTIGJhc2UgaXMgZXhwZWN0ZWQgdG8gc2hpcCBhcyAxLjguNSB3aXRoCisgICAgZ251bWVyaWMgc29vbjwvbGk+Cis8L3VsPjxoMz4xLjguNDogSmFuIDEzIDIwMDA8L2gzPjx1bD48bGk+YnVnIGZpeGVzLCByZWludHJvZHVjZWQgeG1sTmV3R2xvYmFsTnMoKSwgZml4ZWQgeG1sTmV3TnMoKTwvbGk+CisgIDxsaT5hbGwgZXhpdCgpIGNhbGwgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gbGlieG1sPC9saT4KKyAgPGxpPmZpeGVkIGEgcHJvYmxlbSB3aXRoIElOQ0xVREVfV0lOU09DSyBvbiBXSU4zMiBwbGF0Zm9ybTwvbGk+CisgIDxsaT5hZGRlZCBuZXdEb2NGcmFnbWVudCgpPC9saT4KKzwvdWw+PGgzPjEuOC4zOiBKYW4gNSAyMDAwPC9oMz48dWw+PGxpPmEgUHVzaCBpbnRlcmZhY2UgZm9yIHRoZSBYTUwgYW5kIEhUTUwgcGFyc2VyczwvbGk+CisgIDxsaT5hIHNoZWxsLWxpa2UgaW50ZXJmYWNlIHRvIHRoZSBkb2N1bWVudCB0cmVlICh0cnkgdGVzdGVyIC0tc2hlbGwgOi0pPC9saT4KKyAgPGxpPmxvdHMgb2YgYnVnIGZpeGVzIGFuZCBpbXByb3ZlbWVudCBhZGRlZCBvdmVyIFhNYXMgaG9saWRheXM8L2xpPgorICA8bGk+Zml4ZWQgdGhlIERURCBwYXJzaW5nIGNvZGUgdG8gd29yayB3aXRoIHRoZSB4aHRtbCBEVEQ8L2xpPgorICA8bGk+YWRkZWQgeG1sUmVtb3ZlUHJvcCgpLCB4bWxSZW1vdmVJRCgpIGFuZCB4bWxSZW1vdmVSZWYoKTwvbGk+CisgIDxsaT5GaXhlZCBidWdzIGluIHhtbE5ld05zKCk8L2xpPgorICA8bGk+RXh0ZXJuYWwgZW50aXR5IGxvYWRpbmcgY29kZSBoYXMgYmVlbiByZXZhbXBlZCwgbm93IGl0IHVzZXMKKyAgICB4bWxMb2FkRXh0ZXJuYWxFbnRpdHkoKSwgc29tZSBmaXggb24gZW50aXRpZXMgcHJvY2Vzc2luZyB3ZXJlIGFkZGVkPC9saT4KKyAgPGxpPmNsZWFuZWQgdXAgV0lOMzIgaW5jbHVkZXMgb2Ygc29ja2V0IHN0dWZmPC9saT4KKzwvdWw+PGgzPjEuOC4yOiBEZWMgMjEgMTk5OTwvaDM+PHVsPjxsaT5JIGdvdCBhbm90aGVyIHByb2JsZW0gd2l0aCBpbmNsdWRlcyBhbmQgQysrLCBJIGhvcGUgdGhpcyBpc3N1ZSBpcyBmaXhlZAorICAgIGZvciBnb29kIHRoaXMgdGltZTwvbGk+CisgIDxsaT5BZGRlZCBhIGZldyB0cmVlIG1vZGlmaWNhdGlvbiBmdW5jdGlvbnM6IHhtbFJlcGxhY2VOb2RlLAorICAgIHhtbEFkZFByZXZTaWJsaW5nLCB4bWxBZGROZXh0U2libGluZywgeG1sTm9kZVNldE5hbWUgYW5kCisgICAgeG1sRG9jU2V0Um9vdEVsZW1lbnQ8L2xpPgorICA8bGk+VHJpZWQgdG8gaW1wcm92ZSB0aGUgSFRNTCBvdXRwdXQgd2l0aCBoZWxwIGZyb20gPGEgaHJlZj0ibWFpbHRvOmNsYWhleUB1bWljaC5lZHUiPkNocmlzIExhaGV5PC9hPjwvbGk+Cis8L3VsPjxoMz4xLjguMTogRGVjIDE4IDE5OTk8L2gzPjx1bD48bGk+dmFyaW91cyBwYXRjaGVzIHRvIGF2b2lkIHRyb3VibGVzIHdoZW4gdXNpbmcgbGlieG1sIHdpdGggQysrIGNvbXBpbGVycworICAgIHRoZSAibmFtZXNwYWNlIiBrZXl3b3JkIGFuZCBDIGVzY2FwaW5nIGluIGluY2x1ZGUgZmlsZXM8L2xpPgorICA8bGk+YSBwcm9ibGVtIGluIG9uZSBvZiB0aGUgY29yZSBtYWNyb3MgSVNfQ0hBUiB3YXMgY29ycmVjdGVkPC9saT4KKyAgPGxpPmZpeGVkIGEgYnVnIGludHJvZHVjZWQgaW4gMS44LjAgYnJlYWtpbmcgZGVmYXVsdCBuYW1lc3BhY2UgcHJvY2Vzc2luZywKKyAgICBhbmQgbW9yZSBzcGVjaWZpY2FsbHkgdGhlIERpYSBhcHBsaWNhdGlvbjwvbGk+CisgIDxsaT5maXhlZCBhIHBvc3RlcmlvcmkgdmFsaWRhdGlvbiAodmFsaWRhdGlvbiBhZnRlciBwYXJzaW5nLCBvciBieSB1c2luZyBhCisgICAgRHRkIG5vdCBzcGVjaWZpZWQgaW4gdGhlIG9yaWdpbmFsIGRvY3VtZW50KTwvbGk+CisgIDxsaT5maXhlZCBhIGJ1ZyBpbjwvbGk+Cis8L3VsPjxoMz4xLjguMDogRGVjIDEyIDE5OTk8L2gzPjx1bD48bGk+Y2xlYW51cCwgZXNwZWNpYWxseSBtZW1vcnkgd2lzZTwvbGk+CisgIDxsaT50aGUgcGFyc2VyIHNob3VsZCBiZSBtb3JlIHJlbGlhYmxlLCBlc3BlY2lhbGx5IHRoZSBIVE1MIG9uZSwgaXQgc2hvdWxkCisgICAgbm90IGNyYXNoLCB3aGF0ZXZlciB0aGUgaW5wdXQgITwvbGk+CisgIDxsaT5JbnRlZ3JhdGVkIHZhcmlvdXMgcGF0Y2hlcywgZXNwZWNpYWxseSBhIHNwZWVkdXAgaW1wcm92ZW1lbnQgZm9yIGxhcmdlCisgICAgZGF0YXNldCBmcm9tIDxhIGhyZWY9Im1haWx0bzpjbnlnYXJkQGJlbGxhdGxhbnRpYy5uZXQiPkNhcmwgTnlnYXJkPC9hPiwKKyAgICBjb25maWd1cmUgd2l0aCAtLXdpdGgtYnVmZmVycyB0byBlbmFibGUgdGhlbS48L2xpPgorICA8bGk+YXR0cmlidXRlIG5vcm1hbGl6YXRpb24sIG9vcHMgc2hvdWxkIGhhdmUgYmVlbiBhZGRlZCBsb25nIGFnbyAhPC9saT4KKyAgPGxpPmF0dHJpYnV0ZXMgZGVmYXVsdGVkIGZyb20gRFREcyBzaG91bGQgYmUgYXZhaWxhYmxlLCB4bWxTZXRQcm9wKCkgbm93CisgICAgZG9lcyBlbnRpdGllcyBlc2NhcGluZyBieSBkZWZhdWx0LjwvbGk+Cis8L3VsPjxoMz4xLjcuNDogT2N0IDI1IDE5OTk8L2gzPjx1bD48bGk+TG90cyBvZiBIVE1MIGltcHJvdmVtZW50PC9saT4KKyAgPGxpPkZpeGVkIHNvbWUgZXJyb3JzIHdoZW4gc2F2aW5nIGJvdGggWE1MIGFuZCBIVE1MPC9saT4KKyAgPGxpPk1vcmUgZXhhbXBsZXMsIHRoZSByZWdyZXNzaW9uIHRlc3RzIHNob3VsZCBub3cgbG9vayBjbGVhbjwvbGk+CisgIDxsaT5GaXhlZCBhIGJ1ZyB3aXRoIGNvbnRpZ3VvdXMgY2hhcnJlZjwvbGk+Cis8L3VsPjxoMz4xLjcuMzogU2VwIDI5IDE5OTk8L2gzPjx1bD48bGk+cG9ydGFiaWxpdHkgcHJvYmxlbXMgZml4ZWQ8L2xpPgorICA8bGk+c25wcmludGYgd2FzIHVzZWQgdW5jb25kaXRpb25hbGx5LCBsZWFkaW5nIHRvIGxpbmsgcHJvYmxlbXMgb24gc3lzdGVtCisgICAgd2VyZSBpdCdzIG5vdCBhdmFpbGFibGUsIGZpeGVkPC9saT4KKzwvdWw+PGgzPjEuNy4xOiBTZXAgMjQgMTk5OTwvaDM+PHVsPjxsaT5UaGUgYmFzaWMgdHlwZSBmb3Igc3RyaW5ncyBtYW5pcHVsYXRlZCBieSBsaWJ4bWwgaGFzIGJlZW4gcmVuYW1lZCBpbgorICAgIDEuNy4xIGZyb20gPHN0cm9uZz5DSEFSPC9zdHJvbmc+IHRvIDxzdHJvbmc+eG1sQ2hhcjwvc3Ryb25nPi4gVGhlIHJlYXNvbgorICAgIGlzIHRoYXQgQ0hBUiB3YXMgY29uZmxpY3Rpbmcgd2l0aCBhIHByZWRlZmluZWQgdHlwZSBvbiBXaW5kb3dzLiBIb3dldmVyCisgICAgb24gbm9uIFdJTjMyIGVudmlyb25tZW50LCBjb21wYXRpYmlsaXR5IGlzIHByb3ZpZGVkIGJ5IHRoZSB3YXkgb2YgIGEKKyAgICA8c3Ryb25nPiNkZWZpbmUgPC9zdHJvbmc+LjwvbGk+CisgIDxsaT5DaGFuZ2VkIGFub3RoZXIgZXJyb3IgOiB0aGUgdXNlIG9mIGEgc3RydWN0dXJlIGZpZWxkIGNhbGxlZCBlcnJubywgYW5kCisgICAgbGVhZGluZyB0byB0cm91YmxlcyBvbiBwbGF0Zm9ybXMgd2hlcmUgaXQncyBhIG1hY3JvPC9saT4KKzwvdWw+PGgzPjEuNy4wOiBTZXAgMjMgMTk5OTwvaDM+PHVsPjxsaT5BZGRlZCB0aGUgYWJpbGl0eSB0byBmZXRjaCByZW1vdGUgRFREIG9yIHBhcnNlZCBlbnRpdGllcywgc2VlIHRoZSA8YSBocmVmPSJodG1sL2xpYnhtbC1uYW5vaHR0cC5odG1sIj5uYW5vaHR0cDwvYT4gbW9kdWxlLjwvbGk+CisgIDxsaT5BZGRlZCBhbiBlcnJubyB0byByZXBvcnQgZXJyb3JzIGJ5IGFub3RoZXIgbWVhbiB0aGFuIGEgc2ltcGxlIHByaW50ZgorICAgIGxpa2UgY2FsbGJhY2s8L2xpPgorICA8bGk+RmluaXNoZWQgSUQvSURSRUYgc3VwcG9ydCBhbmQgY2hlY2tpbmcgd2hlbiB2YWxpZGF0aW9uPC9saT4KKyAgPGxpPlNlcmlvdXMgbWVtb3J5IGxlYWtzIGZpeGVkICh0aGVyZSBpcyBub3cgYSA8YSBocmVmPSJodG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+bWVtb3J5IHdyYXBwZXI8L2E+IG1vZHVsZSk8L2xpPgorICA8bGk+SW1wcm92ZW1lbnQgb2YgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveHBhdGgiPlhQYXRoPC9hPgorICAgIGltcGxlbWVudGF0aW9uPC9saT4KKyAgPGxpPkFkZGVkIGFuIEhUTUwgcGFyc2VyIGZyb250LWVuZDwvbGk+Cis8L3VsPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvbmV3cy54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy9uZXdzLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDA4OWViCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvbmV3cy54c2wKQEAgLTAsMCArMSw0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCisgICAgICAgICAgICAgICAgeG1sbnM6eGh0bWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCisgICAgICAgICAgICAgICAgdmVyc2lvbj0iMS4wIj4KKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ0ZXh0IiBlbmNvZGluZz0iVVRGLTgiLz4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4KKyAgICA8eHNsOnRleHQ+CisgICAgICAgIE5FV1MgZmlsZSBmb3IgbGlieG1sMgorCisgIE5vdGUgdGhhdCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIG5ld3Mgd2VicGFnZSBhdDoKKyAgICAgICBodHRwOi8veG1sc29mdC5vcmcvbmV3cy5odG1sCisKKzwveHNsOnRleHQ+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIvL3hodG1sOmgzWzFdLy4uIi8+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDpoMyI+CisgICAgPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+CisgICAgPHhzbDp0ZXh0PjoKKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDp1bCI+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuLy94aHRtbDpsaSIvPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDpsaSI+CisgICAgPHhzbDp0ZXh0PiAgIC0gPC94c2w6dGV4dD4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ4aHRtbDphIj4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPgorICAgIDx4c2w6dGV4dD4gYXQgCis8L3hzbDp0ZXh0PgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAaHJlZiIvPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVldD4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvcHl0aG9uLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy9weXRob24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDZmZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvcHl0aG9uLmh0bWwKQEAgLTAsMCArMSwyNTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+UHl0aG9uIGFuZCBiaW5kaW5nczwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+UHl0aG9uIGFuZCBiaW5kaW5nczwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPlRoZXJlIGFyZSBhIG51bWJlciBvZiBsYW5ndWFnZSBiaW5kaW5ncyBhbmQgd3JhcHBlcnMgYXZhaWxhYmxlIGZvcgorbGlieG1sMiwgdGhlIGxpc3QgYmVsb3cgaXMgbm90IGV4aGF1c3RpdmUuIFBsZWFzZSBjb250YWN0IHRoZSA8YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvbWFpbG1hbi9saXN0aW5mby94bWwtYmluZGluZ3MiPnhtbC1iaW5kaW5nc0Bnbm9tZS5vcmc8L2E+CisoPGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC1iaW5kaW5ncy8iPmFyY2hpdmVzPC9hPikgaW4KK29yZGVyIHRvIGdldCB1cGRhdGVzIHRvIHRoaXMgbGlzdCBvciB0byBkaXNjdXNzIHRoZSBzcGVjaWZpYyB0b3BpYyBvZiBsaWJ4bWwyCitvciBsaWJ4c2x0IHdyYXBwZXJzIG9yIGJpbmRpbmdzOjwvcD48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5MaWJ4bWwrKzwvYT4gc2VlbXMgdGhlCisgICAgbW9zdCB1cC10by1kYXRlIEMrKyBiaW5kaW5ncyBmb3IgbGlieG1sMiwgY2hlY2sgdGhlIDxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvcmVmZXJlbmNlL2h0bWwvaGllcmFyY2h5Lmh0bWwiPmRvY3VtZW50YXRpb248L2E+CisgICAgYW5kIHRoZSA8YSBocmVmPSJodHRwOi8vY3ZzLnNvdXJjZWZvcmdlLm5ldC9jZ2ktYmluL3ZpZXdjdnMuY2dpL2xpYnhtbHBsdXNwbHVzL2xpYnhtbCUyYiUyYi9leGFtcGxlcy8iPmV4YW1wbGVzPC9hPi48L2xpPgorICA8bGk+VGhlcmUgaXMgYW5vdGhlciA8YSBocmVmPSJodHRwOi8vbGliZ2RvbWUtY3BwLmJlcmxpb3MuZGUvIj5DKysgd3JhcHBlcgorICAgIGJhc2VkIG9uIHRoZSBnZG9tZTIgYmluZGluZ3M8L2E+IG1haW50YWluZWQgYnkgVG9iaWFzIFBldGVycy48L2xpPgorICA8bGk+YW5kIGEgdGhpcmQgQysrIHdyYXBwZXIgYnkgUGV0ZXIgSm9uZXMgJmx0O3Bqb25lc0BwbWFkZS5vcmcmZ3Q7CisgICAgPHA+V2Vic2l0ZTogPGEgaHJlZj0iaHR0cDovL3BtYWRlLm9yZy9wam9uZXMvc29mdHdhcmUveG1sd3JhcHAvIj5odHRwOi8vcG1hZGUub3JnL3Bqb25lcy9zb2Z0d2FyZS94bWx3cmFwcC88L2E+PC9wPgorICA8L2xpPgorICA8bGk+WE1MOjpMaWJYTUwgPGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybAorICAgICAgYmluZGluZ3M8L2E+IGFyZSBhdmFpbGFibGUgb24gQ1BBTiwgYXMgd2VsbCBhcyBYTUw6OkxpYlhTTFQKKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYU0xUIj5QZXJsIGxpYnhzbHQKKyAgICAgIGJpbmRpbmdzPC9hPi48L2xpPgorICA8bGk+SWYgeW91J3JlIGludGVyZXN0ZWQgaW50byBzY3JpcHRpbmcgWE1MIHByb2Nlc3NpbmcsIGhhdmUgYSBsb29rIGF0IDxhIGhyZWY9Imh0dHA6Ly94c2guc291cmNlZm9yZ2UubmV0LyI+WFNIPC9hPiBhbiBYTUwgZWRpdGluZyBzaGVsbCBiYXNlZCBvbgorICAgIExpYnhtbDIgUGVybCBiaW5kaW5ncy48L2xpPgorICA8bGk+PGEgaHJlZj0ibWFpbHRvOmRrdWhsbWFuQGN1dHRlci5yZXh4LmNvbSI+RGF2ZSBLdWhsbWFuPC9hPiBwcm92aWRlcyBhbgorICAgIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGUgbGlieG1sL2xpYnhzbHQgPGEgaHJlZj0iaHR0cDovL3d3dy5yZXh4LmNvbS9+ZGt1aGxtYW4iPndyYXBwZXJzIGZvciBQeXRob248L2E+LjwvbGk+CisgIDxsaT5Hb3BhbC5WIGFuZCBQZXRlciBNaW50ZW4gZGV2ZWxvcCA8YSBocmVmPSJodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9wcm9qZWN0cy9saWJ4bWxzaGFycCI+bGlieG1sIzwvYT4sIGEgc2V0IG9mCisgICAgQyMgbGlieG1sMiBiaW5kaW5ncy48L2xpPgorICA8bGk+UGV0ciBLb3plbGthIHByb3ZpZGVzIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMiPlBhc2NhbCB1bml0cyB0byBnbHVlCisgICAgbGlieG1sMjwvYT4gd2l0aCBLeWxpeCwgRGVscGhpIGFuZCBvdGhlciBQYXNjYWwgY29tcGlsZXJzLjwvbGk+CisgIDxsaT5Vd2UgRmVjaG5lciBhbHNvIHByb3ZpZGVzIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvaWRvbTItcGFzLyI+aWRvbTI8L2E+LCBhIERPTTIKKyAgICBpbXBsZW1lbnRhdGlvbiBmb3IgS3lsaXgyL0Q1L0Q2IGZyb20gQm9ybGFuZC48L2xpPgorICA8bGk+VGhlcmUgaXMgPGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+YmluZGluZ3MgZm9yIFJ1Ynk8L2E+IAorICAgIGFuZCBsaWJ4bWwyIGJpbmRpbmdzIGFyZSBhbHNvIGF2YWlsYWJsZSBpbiBSdWJ5IHRocm91Z2ggdGhlIDxhIGhyZWY9Imh0dHA6Ly9saWJnZG9tZS1ydWJ5LmJlcmxpb3MuZGUvIj5saWJnZG9tZS1ydWJ5PC9hPiBtb2R1bGUKKyAgICBtYWludGFpbmVkIGJ5IFRvYmlhcyBQZXRlcnMuPC9saT4KKyAgPGxpPlN0ZXZlIEJhbGwgYW5kIGNvbnRyaWJ1dG9ycyBtYWludGFpbnMgPGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5saWJ4bWwyIGFuZCBsaWJ4c2x0IGJpbmRpbmdzIGZvcgorICAgIFRjbDwvYT4uPC9saT4KKyAgPGxpPmxpYnhtbDIgYW5kIGxpYnhzbHQgYXJlIHRoZSBkZWZhdWx0IFhNTCBsaWJyYXJpZXMgZm9yIFBIUDUuPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9zYXZhbm5haC5nbnUub3JnL3Byb2plY3RzL2NsYXNzcGF0aHgvIj5MaWJ4bWxKPC9hPiBpcworICAgIGFuIGVmZm9ydCB0byBjcmVhdGUgYSAxMDAlIEpBWFAtY29tcGF0aWJsZSBKYXZhIHdyYXBwZXIgZm9yIGxpYnhtbDIgYW5kCisgICAgbGlieHNsdCBhcyBwYXJ0IG9mIEdOVSBDbGFzc3BhdGhYIHByb2plY3QuPC9saT4KKyAgPGxpPlBhdHJpY2sgTWNQaGVlIHByb3ZpZGVzIFJleHggYmluZGluZ3MgZm9mIGxpYnhtbDIgYW5kIGxpYnhzbHQsIGxvb2sgZm9yCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5pbnRlcmxvZy5jb20vfnB0am0vc29mdHdhcmUuaHRtbCI+UmV4eFhNTDwvYT4uPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuc2F0aW1hZ2UuZnIvc29mdHdhcmUvZW4veG1sX3N1aXRlLmh0bWwiPlNhdGltYWdlPC9hPgorICAgIHByb3ZpZGVzIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2F0aW1hZ2UuZnIvc29mdHdhcmUvZW4vZG93bmxvYWRzX29zYXhlbi5odG1sIj5YTUxMaWIKKyAgICBvc2F4PC9hPi4gVGhpcyBpcyBhbiBvc2F4IGZvciBNYWMgT1MgWCB3aXRoIGEgc2V0IG9mIGNvbW1hbmRzIHRvCisgICAgaW1wbGVtZW50IGluIEFwcGxlU2NyaXB0IHRoZSBYTUwgRE9NLCBYUEFUSCBhbmQgWFNMVC4gQWxzbyBpbmNsdWRlcworICAgIGNvbW1hbmRzIGZvciBQcm9wZXJ0eS1saXN0cyAoQXBwbGUncyBmYXN0IGxvb2t1cCB0YWJsZSBYTUwgZm9ybWF0Lik8L2xpPgorICA8bGk+RnJhbmNlc2NvIE1vbnRvcnNpIGRldmVsb3BwZWQgPGEgaHJlZj0iaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9zaG93ZmlsZXMucGhwP2dyb3VwX2lkPTUxMzA1JmFtcDtwYWNrYWdlX2lkPTQ1MTgyIj53eFhtbDI8L2E+CisgICAgd3JhcHBlcnMgdGhhdCBpbnRlcmZhY2UgbGlieG1sMiwgYWxsb3dpbmcgd3hXaWRnZXRzIGFwcGxpY2F0aW9ucyB0bworICAgIGxvYWQvc2F2ZS9lZGl0IFhNTCBpbnN0YW5jZXMuPC9saT4KKzwvdWw+PHA+VGhlIGRpc3RyaWJ1dGlvbiBpbmNsdWRlcyBhIHNldCBvZiBQeXRob24gYmluZGluZ3MsIHdoaWNoIGFyZSBndWFyYW50ZWVkCit0byBiZSBtYWludGFpbmVkIGFzIHBhcnQgb2YgdGhlIGxpYnJhcnkgaW4gdGhlIGZ1dHVyZSwgdGhvdWdoIHRoZSBQeXRob24KK2ludGVyZmFjZSBoYXZlIG5vdCB5ZXQgcmVhY2hlZCB0aGUgY29tcGxldGVuZXNzIG9mIHRoZSBDIEFQSS48L3A+PHA+Tm90ZSB0aGF0IHNvbWUgb2YgdGhlIFB5dGhvbiBwdXJpc3QgZGlzbGlrZSB0aGUgZGVmYXVsdCBzZXQgb2YgUHl0aG9uCitiaW5kaW5ncywgcmF0aGVyIHRoYW4gY29tcGxhaW5pbmcgSSBzdWdnZXN0IHRoZXkgaGF2ZSBhIGxvb2sgYXQgPGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgdGhlIG1vcmUgcHl0aG9uaWMgYmluZGluZ3MgZm9yIGxpYnhtbDIKK2FuZCBsaWJ4c2x0PC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbWFpbG1hbi9saXN0aW5mby9seG1sLWRldiI+aGVscCBNYXJ0aWpuCitGYWFzc2VuPC9hPiBjb21wbGV0ZSB0aG9zZS48L3A+PHA+PGEgaHJlZj0ibWFpbHRvOnN0ZXBoYW5lLmJpZG91bEBzb2Z0d2FyZWFnLmNvbSI+U3TDqXBoYW5lIEJpZG91bDwvYT4KK21haW50YWlucyA8YSBocmVmPSJodHRwOi8vdXNlcnMuc2t5bmV0LmJlL3NiaS9saWJ4bWwtcHl0aG9uLyI+YSBXaW5kb3dzIHBvcnQKK29mIHRoZSBQeXRob24gYmluZGluZ3M8L2E+LjwvcD48cD5Ob3RlIHRvIHBlb3BsZSBpbnRlcmVzdGVkIGluIGJ1aWxkaW5nIGJpbmRpbmdzLCB0aGUgQVBJIGlzIGZvcm1hbGl6ZWQgYXMKKzxhIGhyZWY9ImxpYnhtbDItYXBpLnhtbCI+YW4gWE1MIEFQSSBkZXNjcmlwdGlvbiBmaWxlPC9hPiB3aGljaCBhbGxvd3MgdG8KK2F1dG9tYXRlIGEgbGFyZ2UgcGFydCBvZiB0aGUgUHl0aG9uIGJpbmRpbmdzLCB0aGlzIGluY2x1ZGVzIGZ1bmN0aW9uCitkZXNjcmlwdGlvbnMsIGVudW1zLCBzdHJ1Y3R1cmVzLCB0eXBlZGVmcywgZXRjLi4uIFRoZSBQeXRob24gc2NyaXB0IHVzZWQgdG8KK2J1aWxkIHRoZSBiaW5kaW5ncyBpcyBweXRob24vZ2VuZXJhdG9yLnB5IGluIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uLjwvcD48cD5UbyBpbnN0YWxsIHRoZSBQeXRob24gYmluZGluZ3MgdGhlcmUgYXJlIDIgb3B0aW9uczo8L3A+PHVsPjxsaT5JZiB5b3UgdXNlIGFuIFJQTSBiYXNlZCBkaXN0cmlidXRpb24sIHNpbXBseSBpbnN0YWxsIHRoZSA8YSBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvcnBtMmh0bWwvc2VhcmNoLnBocD9xdWVyeT1saWJ4bWwyLXB5dGhvbiI+bGlieG1sMi1weXRob24KKyAgICBSUE08L2E+IChhbmQgaWYgbmVlZGVkIHRoZSA8YSBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvcnBtMmh0bWwvc2VhcmNoLnBocD9xdWVyeT1saWJ4c2x0LXB5dGhvbiI+bGlieHNsdC1weXRob24KKyAgICBSUE08L2E+KS48L2xpPgorICA8bGk+T3RoZXJ3aXNlIHVzZSB0aGUgPGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi9weXRob24vIj5saWJ4bWwyLXB5dGhvbgorICAgIG1vZHVsZSBkaXN0cmlidXRpb248L2E+IGNvcnJlc3BvbmRpbmcgdG8geW91ciBpbnN0YWxsZWQgdmVyc2lvbiBvZgorICAgIGxpYnhtbDIgYW5kIGxpYnhzbHQuIE5vdGUgdGhhdCB0byBpbnN0YWxsIGl0IHlvdSB3aWxsIG5lZWQgYm90aCBsaWJ4bWwyCisgICAgYW5kIGxpYnhzbHQgaW5zdGFsbGVkIGFuZCBydW4gInB5dGhvbiBzZXR1cC5weSBidWlsZCBpbnN0YWxsIiBpbiB0aGUKKyAgICBtb2R1bGUgdHJlZS48L2xpPgorPC91bD48cD5UaGUgZGlzdHJpYnV0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIGV4YW1wbGVzIGFuZCByZWdyZXNzaW9uIHRlc3RzIGZvciB0aGUKK3B5dGhvbiBiaW5kaW5ncyBpbiB0aGUgPGNvZGU+cHl0aG9uL3Rlc3RzPC9jb2RlPiBkaXJlY3RvcnkuIEhlcmUgYXJlIHNvbWUKK2V4Y2VycHRzIGZyb20gdGhvc2UgdGVzdHM6PC9wPjxoMz50c3QucHk6PC9oMz48cD5UaGlzIGlzIGEgYmFzaWMgdGVzdCBvZiB0aGUgZmlsZSBpbnRlcmZhY2UgYW5kIERPTSBuYXZpZ2F0aW9uOjwvcD48cHJlPmltcG9ydCBsaWJ4bWwyLCBzeXMKKworZG9jID0gbGlieG1sMi5wYXJzZUZpbGUoInRzdC54bWwiKQoraWYgZG9jLm5hbWUgIT0gInRzdC54bWwiOgorICAgIHByaW50ICJkb2MubmFtZSBmYWlsZWQiCisgICAgc3lzLmV4aXQoMSkKK3Jvb3QgPSBkb2MuY2hpbGRyZW4KK2lmIHJvb3QubmFtZSAhPSAiZG9jIjoKKyAgICBwcmludCAicm9vdC5uYW1lIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorY2hpbGQgPSByb290LmNoaWxkcmVuCitpZiBjaGlsZC5uYW1lICE9ICJmb28iOgorICAgIHByaW50ICJjaGlsZC5uYW1lIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorZG9jLmZyZWVEb2MoKTwvcHJlPjxwPlRoZSBQeXRob24gbW9kdWxlIGlzIGNhbGxlZCBsaWJ4bWwyOyBwYXJzZUZpbGUgaXMgdGhlIGVxdWl2YWxlbnQgb2YKK3htbFBhcnNlRmlsZSAobW9zdCBvZiB0aGUgYmluZGluZ3MgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLCBhbmQgdGhlIHhtbAorcHJlZml4IGlzIHJlbW92ZWQgYW5kIHRoZSBjYXNpbmcgY29udmVudGlvbiBhcmUga2VwdCkuIEFsbCBub2RlIHNlZW4gYXQgdGhlCitiaW5kaW5nIGxldmVsIHNoYXJlIHRoZSBzYW1lIHN1YnNldCBvZiBhY2Nlc3NvcnM6PC9wPjx1bD48bGk+PGNvZGU+bmFtZTwvY29kZT4gOiByZXR1cm5zIHRoZSBub2RlIG5hbWU8L2xpPgorICA8bGk+PGNvZGU+dHlwZTwvY29kZT4gOiByZXR1cm5zIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIG5vZGUgdHlwZTwvbGk+CisgIDxsaT48Y29kZT5jb250ZW50PC9jb2RlPiA6IHJldHVybnMgdGhlIGNvbnRlbnQgb2YgdGhlIG5vZGUsIGl0IGlzIGJhc2VkIG9uCisgICAgeG1sTm9kZUdldENvbnRlbnQoKSBhbmQgaGVuY2UgaXMgcmVjdXJzaXZlLjwvbGk+CisgIDxsaT48Y29kZT5wYXJlbnQ8L2NvZGU+ICwgPGNvZGU+Y2hpbGRyZW48L2NvZGU+LCA8Y29kZT5sYXN0PC9jb2RlPiwKKyAgICA8Y29kZT5uZXh0PC9jb2RlPiwgPGNvZGU+cHJldjwvY29kZT4sIDxjb2RlPmRvYzwvY29kZT4sCisgICAgPGNvZGU+cHJvcGVydGllczwvY29kZT46IHBvaW50aW5nIHRvIHRoZSBhc3NvY2lhdGVkIGVsZW1lbnQgaW4gdGhlIHRyZWUsCisgICAgdGhvc2UgbWF5IHJldHVybiBOb25lIGluIGNhc2Ugbm8gc3VjaCBsaW5rIGV4aXN0cy48L2xpPgorPC91bD48cD5BbHNvIG5vdGUgdGhlIG5lZWQgdG8gZXhwbGljaXRseSBkZWFsbG9jYXRlIGRvY3VtZW50cyB3aXRoIGZyZWVEb2MoKSAuCitSZWZlcmVuY2UgY291bnRpbmcgZm9yIGxpYnhtbDIgdHJlZXMgd291bGQgbmVlZCBxdWl0ZSBhIGxvdCBvZiB3b3JrIHRvCitmdW5jdGlvbiBwcm9wZXJseSwgYW5kIHJhdGhlciB0aGFuIHJpc2sgbWVtb3J5IGxlYWtzIGlmIG5vdCBpbXBsZW1lbnRlZAorY29ycmVjdGx5IGl0IHNvdW5kcyBzYWZlciB0byBoYXZlIGFuIGV4cGxpY2l0IGZ1bmN0aW9uIHRvIGZyZWUgYSB0cmVlLiBUaGUKK3dyYXBwZXIgcHl0aG9uIG9iamVjdHMgbGlrZSBkb2MsIHJvb3Qgb3IgY2hpbGQgYXJlIHRoZW0gYXV0b21hdGljYWxseSBnYXJiYWdlCitjb2xsZWN0ZWQuPC9wPjxoMz52YWxpZGF0ZS5weTo8L2gzPjxwPlRoaXMgdGVzdCBjaGVjayB0aGUgdmFsaWRhdGlvbiBpbnRlcmZhY2VzIGFuZCByZWRpcmVjdGlvbiBvZiBlcnJvcgorbWVzc2FnZXM6PC9wPjxwcmU+aW1wb3J0IGxpYnhtbDIKKworI2RlYWN0aXZhdGUgZXJyb3IgbWVzc2FnZXMgZnJvbSB0aGUgdmFsaWRhdGlvbgorZGVmIG5vZXJyKGN0eCwgc3RyKToKKyAgICBwYXNzCisKK2xpYnhtbDIucmVnaXN0ZXJFcnJvckhhbmRsZXIobm9lcnIsIE5vbmUpCisKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZUZpbGVQYXJzZXJDdHh0KCJpbnZhbGlkLnhtbCIpCitjdHh0LnZhbGlkYXRlKDEpCitjdHh0LnBhcnNlRG9jdW1lbnQoKQorZG9jID0gY3R4dC5kb2MoKQordmFsaWQgPSBjdHh0LmlzVmFsaWQoKQorZG9jLmZyZWVEb2MoKQoraWYgdmFsaWQgIT0gMDoKKyAgICBwcmludCAidmFsaWRpdHkgY2hlY2sgZmFpbGVkIjwvcHJlPjxwPlRoZSBmaXJzdCB0aGluZyB0byBub3RpY2UgaXMgdGhlIGNhbGwgdG8gcmVnaXN0ZXJFcnJvckhhbmRsZXIoKSwgaXQKK2RlZmluZXMgYSBuZXcgZXJyb3IgaGFuZGxlciBnbG9iYWwgdG8gdGhlIGxpYnJhcnkuIEl0IGlzIHVzZWQgdG8gYXZvaWQgc2VlaW5nCit0aGUgZXJyb3IgbWVzc2FnZXMgd2hlbiB0cnlpbmcgdG8gdmFsaWRhdGUgdGhlIGludmFsaWQgZG9jdW1lbnQuPC9wPjxwPlRoZSBtYWluIGludGVyZXN0IG9mIHRoYXQgdGVzdCBpcyB0aGUgY3JlYXRpb24gb2YgYSBwYXJzZXIgY29udGV4dCB3aXRoCitjcmVhdGVGaWxlUGFyc2VyQ3R4dCgpIGFuZCBob3cgdGhlIGJlaGF2aW91ciBjYW4gYmUgY2hhbmdlZCBiZWZvcmUgY2FsbGluZworcGFyc2VEb2N1bWVudCgpIC4gU2ltaWxhcmx5IHRoZSBpbmZvcm1hdGlvbiByZXN1bHRpbmcgZnJvbSB0aGUgcGFyc2luZyBwaGFzZQoraXMgYWxzbyBhdmFpbGFibGUgdXNpbmcgY29udGV4dCBtZXRob2RzLjwvcD48cD5Db250ZXh0cyBsaWtlIG5vZGVzIGFyZSBkZWZpbmVkIGFzIGNsYXNzIGFuZCB0aGUgbGlieG1sMiB3cmFwcGVycyBtYXBzIHRoZQorQyBmdW5jdGlvbiBpbnRlcmZhY2VzIGluIHRlcm1zIG9mIG9iamVjdHMgbWV0aG9kIGFzIG11Y2ggYXMgcG9zc2libGUuIFRoZQorYmVzdCB0byBnZXQgYSBjb21wbGV0ZSB2aWV3IG9mIHdoYXQgbWV0aG9kcyBhcmUgc3VwcG9ydGVkIGlzIHRvIGxvb2sgYXQgdGhlCitsaWJ4bWwyLnB5IG1vZHVsZSBjb250YWluaW5nIGFsbCB0aGUgd3JhcHBlcnMuPC9wPjxoMz5wdXNoLnB5OjwvaDM+PHA+VGhpcyB0ZXN0IHNob3cgaG93IHRvIGFjdGl2YXRlIHRoZSBwdXNoIHBhcnNlciBpbnRlcmZhY2U6PC9wPjxwcmU+aW1wb3J0IGxpYnhtbDIKKworY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihOb25lLCAiJmx0O2ZvbyIsIDQsICJ0ZXN0LnhtbCIpCitjdHh0LnBhcnNlQ2h1bmsoIi8mZ3Q7IiwgMiwgMSkKK2RvYyA9IGN0eHQuZG9jKCkKKworZG9jLmZyZWVEb2MoKTwvcHJlPjxwPlRoZSBjb250ZXh0IGlzIGNyZWF0ZWQgd2l0aCBhIHNwZWNpYWwgY2FsbCBiYXNlZCBvbiB0aGUKK3htbENyZWF0ZVB1c2hQYXJzZXIoKSBmcm9tIHRoZSBDIGxpYnJhcnkuIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBvcHRpb25hbAorU0FYIGNhbGxiYWNrIG9iamVjdCwgdGhlbiB0aGUgaW5pdGlhbCBzZXQgb2YgZGF0YSwgdGhlIGxlbmd0aCBhbmQgdGhlIG5hbWUgb2YKK3RoZSByZXNvdXJjZSBpbiBjYXNlIFVSSS1SZWZlcmVuY2VzIG5lZWQgdG8gYmUgY29tcHV0ZWQgYnkgdGhlIHBhcnNlci48L3A+PHA+VGhlbiB0aGUgZGF0YSBhcmUgcHVzaGVkIHVzaW5nIHRoZSBwYXJzZUNodW5rKCkgbWV0aG9kLCB0aGUgbGFzdCBjYWxsCitzZXR0aW5nIHRoZSB0aGlyZCBhcmd1bWVudCB0ZXJtaW5hdGUgdG8gMS48L3A+PGgzPnB1c2hTQVgucHk6PC9oMz48cD50aGlzIHRlc3Qgc2hvdyB0aGUgdXNlIG9mIHRoZSBldmVudCBiYXNlZCBwYXJzaW5nIGludGVyZmFjZXMuIEluIHRoaXMgY2FzZQordGhlIHBhcnNlciBkb2VzIG5vdCBidWlsZCBhIGRvY3VtZW50LCBidXQgcHJvdmlkZXMgY2FsbGJhY2sgaW5mb3JtYXRpb24gYXMKK3RoZSBwYXJzZXIgbWFrZXMgcHJvZ3Jlc3NlcyBhbmFseXppbmcgdGhlIGRhdGEgYmVpbmcgcHJvdmlkZWQ6PC9wPjxwcmU+aW1wb3J0IGxpYnhtbDIKK2xvZyA9ICIiCisKK2NsYXNzIGNhbGxiYWNrOgorICAgIGRlZiBzdGFydERvY3VtZW50KHNlbGYpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJzdGFydERvY3VtZW50OiIKKworICAgIGRlZiBlbmREb2N1bWVudChzZWxmKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZW5kRG9jdW1lbnQ6IgorCisgICAgZGVmIHN0YXJ0RWxlbWVudChzZWxmLCB0YWcsIGF0dHJzKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAic3RhcnRFbGVtZW50ICVzICVzOiIgJSAodGFnLCBhdHRycykKKworICAgIGRlZiBlbmRFbGVtZW50KHNlbGYsIHRhZyk6CisgICAgICAgIGdsb2JhbCBsb2cKKyAgICAgICAgbG9nID0gbG9nICsgImVuZEVsZW1lbnQgJXM6IiAlICh0YWcpCisKKyAgICBkZWYgY2hhcmFjdGVycyhzZWxmLCBkYXRhKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiY2hhcmFjdGVyczogJXM6IiAlIChkYXRhKQorCisgICAgZGVmIHdhcm5pbmcoc2VsZiwgbXNnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAid2FybmluZzogJXM6IiAlIChtc2cpCisKKyAgICBkZWYgZXJyb3Ioc2VsZiwgbXNnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZXJyb3I6ICVzOiIgJSAobXNnKQorCisgICAgZGVmIGZhdGFsRXJyb3Ioc2VsZiwgbXNnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZmF0YWxFcnJvcjogJXM6IiAlIChtc2cpCisKK2hhbmRsZXIgPSBjYWxsYmFjaygpCisKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZVB1c2hQYXJzZXIoaGFuZGxlciwgIiZsdDtmb28iLCA0LCAidGVzdC54bWwiKQorY2h1bmsgPSAiIHVybD0ndHN0JyZndDtiIgorY3R4dC5wYXJzZUNodW5rKGNodW5rLCBsZW4oY2h1bmspLCAwKQorY2h1bmsgPSAiYXImbHQ7L2ZvbyZndDsiCitjdHh0LnBhcnNlQ2h1bmsoY2h1bmssIGxlbihjaHVuayksIDEpCisKK3JlZmVyZW5jZSA9ICJzdGFydERvY3VtZW50OnN0YXJ0RWxlbWVudCBmb28geyd1cmwnOiAndHN0J306IiArIFwgCisgICAgICAgICAgICAiY2hhcmFjdGVyczogYmFyOmVuZEVsZW1lbnQgZm9vOmVuZERvY3VtZW50OiIKK2lmIGxvZyAhPSByZWZlcmVuY2U6CisgICAgcHJpbnQgIkVycm9yIGdvdDogJXMiICUgbG9nCisgICAgcHJpbnQgIkV4cGVjdGVkOiAlcyIgJSByZWZlcmVuY2U8L3ByZT48cD5UaGUga2V5IG9iamVjdCBpbiB0aGF0IHRlc3QgaXMgdGhlIGhhbmRsZXIsIGl0IHByb3ZpZGVzIGEgbnVtYmVyIG9mIGVudHJ5Citwb2ludHMgd2hpY2ggY2FuIGJlIGNhbGxlZCBieSB0aGUgcGFyc2VyIGFzIGl0IG1ha2VzIHByb2dyZXNzZXMgdG8gaW5kaWNhdGUKK3RoZSBpbmZvcm1hdGlvbiBzZXQgb2J0YWluZWQuIFRoZSBmdWxsIHNldCBvZiBjYWxsYmFjayBpcyBsYXJnZXIgdGhhbiB3aGF0Cit0aGUgY2FsbGJhY2sgY2xhc3MgaW4gdGhhdCBzcGVjaWZpYyBleGFtcGxlIGltcGxlbWVudHMgKHNlZSB0aGUgU0FYCitkZWZpbml0aW9uIGZvciBhIGNvbXBsZXRlIGxpc3QpLiBUaGUgd3JhcHBlciB3aWxsIG9ubHkgY2FsbCB0aG9zZSBzdXBwbGllZCBieQordGhlIG9iamVjdCB3aGVuIGFjdGl2YXRlZC4gVGhlIHN0YXJ0RWxlbWVudCByZWNlaXZlcyB0aGUgbmFtZXMgb2YgdGhlIGVsZW1lbnQKK2FuZCBhIGRpY3Rpb25hcnkgY29udGFpbmluZyB0aGUgYXR0cmlidXRlcyBjYXJyaWVkIGJ5IHRoaXMgZWxlbWVudC48L3A+PHA+QWxzbyBub3RlIHRoYXQgdGhlIHJlZmVyZW5jZSBzdHJpbmcgZ2VuZXJhdGVkIGZyb20gdGhlIGNhbGxiYWNrIHNob3dzIGEKK3NpbmdsZSBjaGFyYWN0ZXIgY2FsbCBldmVuIHRob3VnaCB0aGUgc3RyaW5nICJiYXIiIGlzIHBhc3NlZCB0byB0aGUgcGFyc2VyCitmcm9tIDIgZGlmZmVyZW50IGNhbGwgdG8gcGFyc2VDaHVuaygpPC9wPjxoMz54cGF0aC5weTo8L2gzPjxwPlRoaXMgaXMgYSBiYXNpYyB0ZXN0IG9mIFhQYXRoIHdyYXBwZXJzIHN1cHBvcnQ8L3A+PHByZT5pbXBvcnQgbGlieG1sMgorCitkb2MgPSBsaWJ4bWwyLnBhcnNlRmlsZSgidHN0LnhtbCIpCitjdHh0ID0gZG9jLnhwYXRoTmV3Q29udGV4dCgpCityZXMgPSBjdHh0LnhwYXRoRXZhbCgiLy8qIikKK2lmIGxlbihyZXMpICE9IDI6CisgICAgcHJpbnQgInhwYXRoIHF1ZXJ5OiB3cm9uZyBub2RlIHNldCBzaXplIgorICAgIHN5cy5leGl0KDEpCitpZiByZXNbMF0ubmFtZSAhPSAiZG9jIiBvciByZXNbMV0ubmFtZSAhPSAiZm9vIjoKKyAgICBwcmludCAieHBhdGggcXVlcnk6IHdyb25nIG5vZGUgc2V0IHZhbHVlIgorICAgIHN5cy5leGl0KDEpCitkb2MuZnJlZURvYygpCitjdHh0LnhwYXRoRnJlZUNvbnRleHQoKTwvcHJlPjxwPlRoaXMgdGVzdCBwYXJzZXMgYSBmaWxlLCB0aGVuIGNyZWF0ZSBhbiBYUGF0aCBjb250ZXh0IHRvIGV2YWx1YXRlIFhQYXRoCitleHByZXNzaW9uIG9uIGl0LiBUaGUgeHBhdGhFdmFsKCkgbWV0aG9kIGV4ZWN1dGUgYW4gWFBhdGggcXVlcnkgYW5kIHJldHVybnMKK3RoZSByZXN1bHQgbWFwcGVkIGluIGEgUHl0aG9uIHdheS4gU3RyaW5nIGFuZCBudW1iZXJzIGFyZSBuYXRpdmVseSBjb252ZXJ0ZWQsCithbmQgbm9kZSBzZXRzIGFyZSByZXR1cm5lZCBhcyBhIHR1cGxlIG9mIGxpYnhtbDIgUHl0aG9uIG5vZGVzIHdyYXBwZXJzLiBMaWtlCit0aGUgZG9jdW1lbnQsIHRoZSBYUGF0aCBjb250ZXh0IG5lZWQgdG8gYmUgZnJlZWQgZXhwbGljaXRseSwgYWxzbyBub3QgdGhhdAordGhlIHJlc3VsdCBvZiB0aGUgWFBhdGggcXVlcnkgbWF5IHBvaW50IGJhY2sgdG8gdGhlIGRvY3VtZW50IHRyZWUgYW5kIGhlbmNlCit0aGUgZG9jdW1lbnQgbXVzdCBiZSBmcmVlZCBhZnRlciB0aGUgcmVzdWx0IG9mIHRoZSBxdWVyeSBpcyB1c2VkLjwvcD48aDM+eHBhdGhleHQucHk6PC9oMz48cD5UaGlzIHRlc3Qgc2hvd3MgaG93IHRvIGV4dGVuZCB0aGUgWFBhdGggZW5naW5lIHdpdGggZnVuY3Rpb25zIHdyaXR0ZW4gaW4KK3B5dGhvbjo8L3A+PHByZT5pbXBvcnQgbGlieG1sMgorCitkZWYgZm9vKGN0eCwgeCk6CisgICAgcmV0dXJuIHggKyAxCisKK2RvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJ0c3QueG1sIikKK2N0eHQgPSBkb2MueHBhdGhOZXdDb250ZXh0KCkKK2xpYnhtbDIucmVnaXN0ZXJYUGF0aEZ1bmN0aW9uKGN0eHQuX28sICJmb28iLCBOb25lLCBmb28pCityZXMgPSBjdHh0LnhwYXRoRXZhbCgiZm9vKDEpIikKK2lmIHJlcyAhPSAyOgorICAgIHByaW50ICJ4cGF0aCBleHRlbnNpb24gZmFpbHVyZSIKK2RvYy5mcmVlRG9jKCkKK2N0eHQueHBhdGhGcmVlQ29udGV4dCgpPC9wcmU+PHA+Tm90ZSBob3cgdGhlIGV4dGVuc2lvbiBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIHdpdGggdGhlIGNvbnRleHQgKGJ1dCB0aGF0CitwYXJ0IGlzIG5vdCB5ZXQgZmluYWxpemVkLCB0aGlzIG1heSBjaGFuZ2Ugc2xpZ2h0bHkgaW4gdGhlIGZ1dHVyZSkuPC9wPjxoMz50c3R4cGF0aC5weTo8L2gzPjxwPlRoaXMgdGVzdCBpcyBzaW1pbGFyIHRvIHRoZSBwcmV2aW91cyBvbmUgYnV0IHNob3dzIGhvdyB0aGUgZXh0ZW5zaW9uCitmdW5jdGlvbiBjYW4gYWNjZXNzIHRoZSBYUGF0aCBldmFsdWF0aW9uIGNvbnRleHQ6PC9wPjxwcmU+ZGVmIGZvbyhjdHgsIHgpOgorICAgIGdsb2JhbCBjYWxsZWQKKworICAgICMKKyAgICAjIHRlc3QgdGhhdCBhY2Nlc3MgdG8gdGhlIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dHMKKyAgICAjCisgICAgcGN0eHQgPSBsaWJ4bWwyLnhwYXRoUGFyc2VyQ29udGV4dChfb2JqPWN0eCkKKyAgICBjdHh0ID0gcGN0eHQuY29udGV4dCgpCisgICAgY2FsbGVkID0gY3R4dC5mdW5jdGlvbigpCisgICAgcmV0dXJuIHggKyAxPC9wcmU+PHA+QWxsIHRoZSBpbnRlcmZhY2VzIGFyb3VuZCB0aGUgWFBhdGggcGFyc2VyKG9yIHJhdGhlciBldmFsdWF0aW9uKSBjb250ZXh0CithcmUgbm90IGZpbmFsaXplZCwgYnV0IGl0IHNob3VsZCBiZSBzdWZmaWNpZW50IHRvIGRvIGNvbnRleHR1YWwgd29yayBhdCB0aGUKK2V2YWx1YXRpb24gcG9pbnQuPC9wPjxoMz5NZW1vcnkgZGVidWdnaW5nOjwvaDM+PHA+bGFzdCBidXQgbm90IGxlYXN0LCBhbGwgdGVzdHMgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBwcm9sb2d1ZTo8L3A+PHByZT4jbWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpPC9wcmU+PHA+YW5kIGVuZHMgd2l0aCB0aGUgZm9sbG93aW5nIGVwaWxvZ3VlOjwvcD48cHJlPiNtZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCk8L3ByZT48cD5UaG9zZSBhY3RpdmF0ZSB0aGUgbWVtb3J5IGRlYnVnZ2luZyBpbnRlcmZhY2Ugb2YgbGlieG1sMiB3aGVyZSBhbGwKK2FsbG9jYXRlZCBibG9jayBpbiB0aGUgbGlicmFyeSBhcmUgdHJhY2tlZC4gVGhlIHByb2xvZ3VlIHRoZW4gY2xlYW5zIHVwIHRoZQorbGlicmFyeSBzdGF0ZSBhbmQgY2hlY2tzIHRoYXQgYWxsIGFsbG9jYXRlZCBtZW1vcnkgaGFzIGJlZW4gZnJlZWQuIElmIG5vdCBpdAorY2FsbHMgZHVtcE1lbW9yeSgpIHdoaWNoIHNhdmVzIHRoYXQgbGlzdCBpbiBhIDxjb2RlPi5tZW1kdW1wPC9jb2RlPiBmaWxlLjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3JlZGhhdC5naWYgYi9saWJ4bWwyLTIuNy43L2RvYy9yZWRoYXQuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmZjNkNzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9yZWRoYXQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3NlYXJjaC5waHAgYi9saWJ4bWwyLTIuNy43L2RvYy9zZWFyY2gucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMWEyNWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9zZWFyY2gucGhwCkBAIC0wLDAgKzEsNDc2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMtaHRtbDQwMS0xOTk5MTIyNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tCitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorLS0+PC9zdHlsZT4KKzx0aXRsZT5TZWFyY2ggdGhlIGRvY3VtZW50YXRpb24gb24gWE1MU29mdC5vcmc8L3RpdGxlPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAwMDAwMCIgdmxpbms9IiMwMDAwMDAiPgorPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPgorPHRkIHdpZHRoPSIxODAiPgorPGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iPjwvYT48L2Rpdj4KKzwvdGQ+Cis8dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+Cis8aDE+VGhlIFhNTCBDIGxpYnJhcnkgZm9yIEdub21lPC9oMT4KKzxoMj5TZWFyY2ggZW5naW5lPC9oMj4KKzwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+Cis8L3RyPjwvdGFibGU+Cis8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD4KKzxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRvY3MuaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImhlbHAuaHRtbCI+SG93IHRvIGhlbHA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkb3dubG9hZHMuaHRtbCI+RG93bmxvYWRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iWE1MaW5mby5odG1sIj5YTUw8L2E+PC9saT4KKzxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNhdGFsb2cuaHRtbCI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPgorPGxpPgorPGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPgorPC9saT4KKzwvdWw+PC90ZD48L3RyPgorPC90YWJsZT4KKzx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KKzx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPgorPGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+Cis8L3VsPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KKzx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj4KKzx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL2dhcnlwZW5uaW5ndG9uLm5ldC9saWJ4bWwyLyI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuenZlbm8uY29tL29wZW5fc291cmNlL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sJmFtcDtwcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+Cis8L3VsPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj4KKzw/cGhwCisgICAgJHF1ZXJ5ID0gJEhUVFBfR0VUX1ZBUlNbICJxdWVyeSIgXTsKKyAgICAkc2NvcGUgPSAkSFRUUF9HRVRfVkFSU1sgInNjb3BlIiBdOworICAgIC8vIFdlIGhhbmRsZSBvbmx5IHRoZSBmaXJzdCBhcmd1bWVudCBzbyBmYXIKKyAgICAkcXVlcnkgPSAkX0dFVFsncXVlcnknXTsKKyAgICAkcXVlcnkgPSBsdHJpbSAoJHF1ZXJ5KTsKKyAgICBpZiAoISAkcXVlcnkpIHsKKyAgICAgICAgZWNobyAiPGgxIGFsaWduPSdjZW50ZXInPlNlYXJjaCB0aGUgZG9jdW1lbnRhdGlvbiBvbiBYTUxTb2Z0Lm9yZzwvaDE+IjsKKyAgICB9CisgICAgaWYgKCRzY29wZSA9PSBOVUxMKQorICAgICAgICAkc2NvcGUgPSAiYW55IjsKKyAgICAkc2NvcGUgPSBsdHJpbSAoJHNjb3BlKTsKKyAgICBpZiAoJHNjb3BlID09ICIiKQorICAgICAgICAkc2NvcGUgPSAiYW55IjsKKworPz4KKzxwPiBUaGUgc2VhcmNoIHNlcnZpY2UgaW5kZXhlcyB0aGUgbGlieG1sMiBhbmQgbGlieHNsdCBBUElzIGFuZCBkb2N1bWVudGF0aW9uIGFzIHdlbGwgYXMgdGhlIHhtbEBnbm9tZS5vcmcgYW5kIHhzbHRAZ25vbWUub3JnIG1haWxpbmctbGlzdCBhcmNoaXZlcy4gVG8gdXNlIGl0IHNpbXBseSBwcm92aWRlIGEgc2V0IG9mIGtleXdvcmRzOgorPHA+Cis8Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gIiRQSFBfU0VMRiIsICI/cXVlcnk9IiwgcmF3dXJsZW5jb2RlKCRxdWVyeSkgPz4iCisgICAgICBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iR0VUIj4KKyAgPGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJURVhUIiBzaXplPSI1MCIgdmFsdWU9Ijw/cGhwIGVjaG8gJHF1ZXJ5Pz4iPgorICA8c2VsZWN0IG5hbWU9InNjb3BlIj4KKyAgICA8b3B0aW9uIHZhbHVlPSJhbnkiPlNlYXJjaCBBbGw8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJYTUwiIDw/cGhwIGlmICgkc2NvcGUgPT0gJ1hNTCcpIHByaW50ICJzZWxlY3RlZCI/Pj5YTUwgcmVzb3VyY2VzPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0iWFNMVCIgPD9waHAgaWYgKCRzY29wZSA9PSAnWFNMVCcpIHByaW50ICJzZWxlY3RlZCI/Pj5YU0xUIHJlc291cmNlczwvb3B0aW9uPgorICAgIDxvcHRpb24gdmFsdWU9IkFQSSIgPD9waHAgaWYgKCRzY29wZSA9PSAnQVBJJykgcHJpbnQgInNlbGVjdGVkIj8+Pk9ubHkgdGhlIEFQSXM8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJYTUxBUEkiIDw/cGhwIGlmICgkc2NvcGUgPT0gJ1hNTEFQSScpIHByaW50ICJzZWxlY3RlZCI/Pj5Pbmx5IHRoZSBYTUwgQVBJPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0iWFNMVEFQSSIgPD9waHAgaWYgKCRzY29wZSA9PSAnWFNMVEFQSScpIHByaW50ICJzZWxlY3RlZCI/Pj5Pbmx5IHRoZSBYU0xUIEFQSTwvb3B0aW9uPgorICAgIDxvcHRpb24gdmFsdWU9IkRPQ1MiIDw/cGhwIGlmICgkc2NvcGUgPT0gJ0RPQ1MnKSBwcmludCAic2VsZWN0ZWQiPz4+T25seSB0aGUgRG9jdW1lbnRhdGlvbjwvb3B0aW9uPgorICAgIDxvcHRpb24gdmFsdWU9IlhNTERPQyIgPD9waHAgaWYgKCRzY29wZSA9PSAnWE1MRE9DJykgcHJpbnQgInNlbGVjdGVkIj8+Pk9ubHkgdGhlIFhNTCBEb2N1bWVudGF0aW9uPC9vcHRpb24+CisgICAgPG9wdGlvbiB2YWx1ZT0iWFNMVERPQyIgPD9waHAgaWYgKCRzY29wZSA9PSAnWFNMVERPQycpIHByaW50ICJzZWxlY3RlZCI/Pj5Pbmx5IHRoZSBYU0xUIERvY3VtZW50YXRpb248L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJMSVNUUyIgPD9waHAgaWYgKCRzY29wZSA9PSAnTElTVFMnKSBwcmludCAic2VsZWN0ZWQiPz4+T25seSB0aGUgbGlzdHMgYXJjaGl2ZXM8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJYTUxMSVNUIiA8P3BocCBpZiAoJHNjb3BlID09ICdYTUxMSVNUJykgcHJpbnQgInNlbGVjdGVkIj8+Pk9ubHkgdGhlIFhNTCBsaXN0IGFyY2hpdmU8L29wdGlvbj4KKyAgICA8b3B0aW9uIHZhbHVlPSJYU0xUTElTVCIgPD9waHAgaWYgKCRzY29wZSA9PSAnWFNMVExJU1QnKSBwcmludCAic2VsZWN0ZWQiPz4+T25seSB0aGUgWFNMVCBsaXN0IGFyY2hpdmU8L29wdGlvbj4KKyAgPC9zZWxlY3Q+CisgIDxpbnB1dCBuYW1lPXN1Ym1pdCB0eXBlPXN1Ym1pdCB2YWx1ZT0iU2VhcmNoIC4uLiI+Cis8L2Zvcm0+Cis8P3BocAorICAgIGZ1bmN0aW9uIGxvZ1F1ZXJ5V29yZCgkd29yZCkgeworICAgICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkgKCJTRUxFQ1QgSUQsQ291bnQgRlJPTSBRdWVyaWVzIFdIRVJFIFZhbHVlPSckd29yZCciKTsKKwlpZiAoJHJlc3VsdCkgeworCSAgICAkaSA9IG15c3FsX251bV9yb3dzKCRyZXN1bHQpOworCSAgICBpZiAoJGkgPT0gMCkgeworCSAgICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisJCW15c3FsX3F1ZXJ5ICgiSU5TRVJUIElOVE8gUXVlcmllcyAoVmFsdWUsQ291bnQpIFZBTFVFUyAoJyR3b3JkJywxKSIpOworCSAgICB9IGVsc2UgeworCSAgICAgICAgJGlkID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsIDAsIDApOworCQkkY291bnQgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgMCwgMSk7CisJCSRjb3VudCArKzsKKwkJbXlzcWxfcXVlcnkgKCJVUERBVEUgUXVlcmllcyBTRVQgQ291bnQ9JGNvdW50IFdIRVJFIElEPSRpZCIpOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgbXlzcWxfcXVlcnkgKCJJTlNFUlQgSU5UTyBRdWVyaWVzIChWYWx1ZSxDb3VudCkgVkFMVUVTICgnJHdvcmQnLDEpIik7CisJfQorICAgIH0KKyAgICBmdW5jdGlvbiBxdWVyeVdvcmQoJHdvcmQpIHsKKyAgICAgICAgJHJlc3VsdCA9IE5VTEw7CisJJGogPSAwOworICAgICAgICBpZiAoJHdvcmQpIHsKKwkgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5ICgiU0VMRUNUIHdvcmRzLnJlbGV2YW5jZSwgc3ltYm9scy5uYW1lLCBzeW1ib2xzLnR5cGUsIHN5bWJvbHMubW9kdWxlLCBzeW1ib2xzLmRlc2NyIEZST00gd29yZHMsIHN5bWJvbHMgV0hFUkUgTENBU0Uod29yZHMubmFtZSkgTElLRSBMQ0FTRSgnJHdvcmQnKSBhbmQgd29yZHMuc3ltYm9sID0gc3ltYm9scy5uYW1lIE9SREVSIEJZIHdvcmRzLnJlbGV2YW5jZSBERVNDIExJTUlUIDc1Iik7CisJICAgIGlmICgkcmVzdWx0KSB7CisJCSRqID0gbXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCk7CisJCWlmICgkaiA9PSAwKSAKKwkJICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOworCSAgICB9CisJICAgIGxvZ1F1ZXJ5V29yZCgkd29yZCk7CisJfQorCXJldHVybiBhcnJheSgkcmVzdWx0LCAkaik7CisgICAgfQorICAgIGZ1bmN0aW9uIHF1ZXJ5SFRNTFdvcmQoJHdvcmQpIHsKKyAgICAgICAgJHJlc3VsdCA9IE5VTEw7CisJJGogPSAwOworICAgICAgICBpZiAoJHdvcmQpIHsKKwkgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5ICgiU0VMRUNUIHJlbGV2YW5jZSwgbmFtZSwgaWQsIHJlc291cmNlLCBzZWN0aW9uIEZST00gd29yZHNIVE1MIFdIRVJFIExDQVNFKG5hbWUpIExJS0UgTENBU0UoJyR3b3JkJykgT1JERVIgQlkgcmVsZXZhbmNlIERFU0MgTElNSVQgNzUiKTsKKwkgICAgaWYgKCRyZXN1bHQpIHsKKwkJJGogPSBteXNxbF9udW1fcm93cygkcmVzdWx0KTsKKwkJaWYgKCRqID09IDApIAorCQkgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisJICAgIH0KKwkgICAgbG9nUXVlcnlXb3JkKCR3b3JkKTsKKwl9CisJcmV0dXJuIGFycmF5KCRyZXN1bHQsICRqKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcXVlcnlBcmNoaXZlV29yZCgkd29yZCkgeworICAgICAgICAkcmVzdWx0ID0gTlVMTDsKKwkkaiA9IDA7CisgICAgICAgIGlmICgkd29yZCkgeworCSAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkgKCJTRUxFQ1Qgd29yZHNBcmNoaXZlLnJlbGV2YW5jZSwgd29yZHNBcmNoaXZlLm5hbWUsICd4bWwtbGlzdCcsIGFyY2hpdmVzLnJlc291cmNlLCBhcmNoaXZlcy50aXRsZSBGUk9NIHdvcmRzQXJjaGl2ZSwgYXJjaGl2ZXMgV0hFUkUgTENBU0Uod29yZHNBcmNoaXZlLm5hbWUpIExJS0UgTENBU0UoJyR3b3JkJykgYW5kIHdvcmRzQXJjaGl2ZS5JRCA9IGFyY2hpdmVzLklEIE9SREVSIEJZIHJlbGV2YW5jZSBERVNDIExJTUlUIDc1Iik7CisJICAgIGlmICgkcmVzdWx0KSB7CisJCSRqID0gbXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCk7CisJCWlmICgkaiA9PSAwKSAKKwkJICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOworCSAgICB9CisJICAgIGxvZ1F1ZXJ5V29yZCgkd29yZCk7CisJfQorCXJldHVybiBhcnJheSgkcmVzdWx0LCAkaik7CisgICAgfQorICAgIGZ1bmN0aW9uIFhTTFRxdWVyeVdvcmQoJHdvcmQpIHsKKyAgICAgICAgJHJlc3VsdCA9IE5VTEw7CisJJGogPSAwOworICAgICAgICBpZiAoJHdvcmQpIHsKKwkgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5ICgiU0VMRUNUIFhTTFR3b3Jkcy5yZWxldmFuY2UsIFhTTFRzeW1ib2xzLm5hbWUsIFhTTFRzeW1ib2xzLnR5cGUsIFhTTFRzeW1ib2xzLm1vZHVsZSwgWFNMVHN5bWJvbHMuZGVzY3IgRlJPTSBYU0xUd29yZHMsIFhTTFRzeW1ib2xzIFdIRVJFIExDQVNFKFhTTFR3b3Jkcy5uYW1lKSBMSUtFIExDQVNFKCckd29yZCcpIGFuZCBYU0xUd29yZHMuc3ltYm9sID0gWFNMVHN5bWJvbHMubmFtZSBPUkRFUiBCWSBYU0xUd29yZHMucmVsZXZhbmNlIERFU0MgTElNSVQgNzUiKTsKKwkgICAgaWYgKCRyZXN1bHQpIHsKKwkJJGogPSBteXNxbF9udW1fcm93cygkcmVzdWx0KTsKKwkJaWYgKCRqID09IDApIAorCQkgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisJICAgIH0KKwkgICAgbG9nUXVlcnlXb3JkKCR3b3JkKTsKKwl9CisJcmV0dXJuIGFycmF5KCRyZXN1bHQsICRqKTsKKyAgICB9CisgICAgZnVuY3Rpb24gWFNMVHF1ZXJ5SFRNTFdvcmQoJHdvcmQpIHsKKyAgICAgICAgJHJlc3VsdCA9IE5VTEw7CisJJGogPSAwOworICAgICAgICBpZiAoJHdvcmQpIHsKKwkgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5ICgiU0VMRUNUIHJlbGV2YW5jZSwgbmFtZSwgaWQsIHJlc291cmNlLCBzZWN0aW9uIEZST00gWFNMVHdvcmRzSFRNTCBXSEVSRSBMQ0FTRShuYW1lKSBMSUtFIExDQVNFKCckd29yZCcpIE9SREVSIEJZIHJlbGV2YW5jZSBERVNDIExJTUlUIDc1Iik7CisJICAgIGlmICgkcmVzdWx0KSB7CisJCSRqID0gbXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCk7CisJCWlmICgkaiA9PSAwKSAKKwkJICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOworCSAgICB9CisJICAgIGxvZ1F1ZXJ5V29yZCgkd29yZCk7CisJfQorCXJldHVybiBhcnJheSgkcmVzdWx0LCAkaik7CisgICAgfQorICAgIGZ1bmN0aW9uIFhTTFRxdWVyeUFyY2hpdmVXb3JkKCR3b3JkKSB7CisgICAgICAgICRyZXN1bHQgPSBOVUxMOworCSRqID0gMDsKKyAgICAgICAgaWYgKCR3b3JkKSB7CisJICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSAoIlNFTEVDVCBYU0xUd29yZHNBcmNoaXZlLnJlbGV2YW5jZSwgWFNMVHdvcmRzQXJjaGl2ZS5uYW1lLCAneHNsdC1saXN0JywgYXJjaGl2ZXMucmVzb3VyY2UsIGFyY2hpdmVzLnRpdGxlIEZST00gWFNMVHdvcmRzQXJjaGl2ZSwgYXJjaGl2ZXMgV0hFUkUgTENBU0UoWFNMVHdvcmRzQXJjaGl2ZS5uYW1lKSBMSUtFIExDQVNFKCckd29yZCcpIGFuZCBYU0xUd29yZHNBcmNoaXZlLklEID0gYXJjaGl2ZXMuSUQgT1JERVIgQlkgcmVsZXZhbmNlIERFU0MgTElNSVQgNzUiKTsKKwkgICAgaWYgKCRyZXN1bHQpIHsKKwkJJGogPSBteXNxbF9udW1fcm93cygkcmVzdWx0KTsKKwkJaWYgKCRqID09IDApIAorCQkgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisJICAgIH0KKwkgICAgbG9nUXVlcnlXb3JkKCR3b3JkKTsKKwl9CisJcmV0dXJuIGFycmF5KCRyZXN1bHQsICRqKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcmVzU29ydCAoJGEsICRiKSB7CisJbGlzdCgkcmEsJHRhLCRtYSwkbmEsJGRhKSA9ICRhOworCWxpc3QoJHJiLCR0YiwkbWIsJG5iLCRkYikgPSAkYjsKKwlpZiAoJHJhID09ICRyYikgcmV0dXJuIDA7CisJcmV0dXJuICgkcmEgPiAkcmIpID8gLTEgOiAxOworICAgIH0KKyAgICBpZiAoKCRxdWVyeSkgJiYgKHN0cmxlbigkcXVlcnkpIDw9IDUwKSkgeworCSRsaW5rID0gbXlzcWxfY29ubmVjdCAoImxvY2FsaG9zdCIsICJub2JvZHkiKTsKKwlpZiAoISRsaW5rKSB7CisJICAgIGVjaG8gIjxwPiBDb3VsZCBub3QgY29ubmVjdCB0byB0aGUgZGF0YWJhc2U6ICIsIG15c3FsX2Vycm9yKCk7CisJfSBlbHNlIHsKKwkgICAgbXlzcWxfc2VsZWN0X2RiKCJ4bWxzb2Z0IiwgJGxpbmspOworCSAgICAkbGlzdCA9IGV4cGxvZGUgKCIgIiwgJHF1ZXJ5KTsKKwkgICAgJHJlc3VsdHMgPSBhcnJheSgpOworCSAgICAkbnVtYmVyID0gMDsKKwkgICAgZm9yICgkbnVtYmVyID0gMDskbnVtYmVyIDwgY291bnQoJGxpc3QpOyRudW1iZXIrKykgeworCisJCSR3b3JkID0gJGxpc3RbJG51bWJlcl07CisJCWlmICgoJHNjb3BlID09ICdhbnknKSB8fCAoJHNjb3BlID09ICdYTUwnKSB8fAorCQkgICAgKCRzY29wZSA9PSAnQVBJJykgfHwgKCRzY29wZSA9PSAnWE1MQVBJJykpIHsKKwkJICAgIGxpc3QoJHJlc3VsdCwgJGopID0gcXVlcnlXb3JkKCR3b3JkKTsKKwkJICAgIGlmICgkaiA+IDApIHsKKwkJCWZvciAoJGkgPSAwOyAkaSA8ICRqOyAkaSsrKSB7CisJCQkgICAgJHJlbGV2YW5jZSA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgMCk7CisJCQkgICAgJG5hbWUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDEpOworCQkJICAgICR0eXBlID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAyKTsKKwkJCSAgICAkbW9kdWxlID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAzKTsKKwkJCSAgICAkZGVzYyA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgNCk7CisJCQkgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJG5hbWUsICRyZXN1bHRzKSkgeworCQkJCWxpc3QoJHIsJHQsJG0sJGQsJHcsJHUpID0gJHJlc3VsdHNbJG5hbWVdOworCQkJCSRyZXN1bHRzWyRuYW1lXSA9IGFycmF5KCgkciArICRyZWxldmFuY2UpICogMiwKKwkJCQkJCQkkdCwkbSwkZCwkdywkdSk7CisJCQkgICAgfSBlbHNlIHsKKwkJCQkkaWQgPSAkbmFtZTsKKwkJCQkkbSA9IHN0cnRvbG93ZXIoJG1vZHVsZSk7CisJCQkJJHVybCA9ICJodG1sL2xpYnhtbC0kbW9kdWxlLmh0bWwjJGlkIjsKKwkJCQkkcmVzdWx0c1skbmFtZV0gPSBhcnJheSgkcmVsZXZhbmNlLCR0eXBlLAorCQkJCQkJJG1vZHVsZSwgJGRlc2MsICRuYW1lLCAkdXJsKTsKKwkJCSAgICB9CisJCQl9CisJCQlteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKKwkJICAgIH0KKwkJfQorCQlpZiAoKCRzY29wZSA9PSAnYW55JykgfHwgKCRzY29wZSA9PSAnWFNMVCcpIHx8CisJCSAgICAoJHNjb3BlID09ICdBUEknKSB8fCAoJHNjb3BlID09ICdYU0xUQVBJJykpIHsKKwkJICAgIGxpc3QoJHJlc3VsdCwgJGopID0gWFNMVHF1ZXJ5V29yZCgkd29yZCk7CisJCSAgICBpZiAoJGogPiAwKSB7CisJCQlmb3IgKCRpID0gMDsgJGkgPCAkajsgJGkrKykgeworCQkJICAgICRyZWxldmFuY2UgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDApOworCQkJICAgICRuYW1lID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAxKTsKKwkJCSAgICAkdHlwZSA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgMik7CisJCQkgICAgJG1vZHVsZSA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgMyk7CisJCQkgICAgJGRlc2MgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDQpOworCQkJICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRuYW1lLCAkcmVzdWx0cykpIHsKKwkJCQlsaXN0KCRyLCR0LCRtLCRkLCR3LCR1KSA9ICRyZXN1bHRzWyRuYW1lXTsKKwkJCQkkcmVzdWx0c1skbmFtZV0gPSBhcnJheSgoJHIgKyAkcmVsZXZhbmNlKSAqIDIsCisJCQkJCQkJJHQsJG0sJGQsJHcsJHUpOworCQkJICAgIH0gZWxzZSB7CisJCQkJJGlkID0gJG5hbWU7CisJCQkJJG0gPSBzdHJ0b2xvd2VyKCRtb2R1bGUpOworCQkJCSR1cmwgPSAiWFNMVC9odG1sL2xpYnhzbHQtJG1vZHVsZS5odG1sIyRpZCI7CisJCQkJJHJlc3VsdHNbJG5hbWVdID0gYXJyYXkoJHJlbGV2YW5jZSwkdHlwZSwKKwkJCQkJCSRtb2R1bGUsICRkZXNjLCAkbmFtZSwgJHVybCk7CisJCQkgICAgfQorCQkJfQorCQkJbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisJCSAgICB9CisJCX0KKwkJaWYgKCgkc2NvcGUgPT0gJ2FueScpIHx8ICgkc2NvcGUgPT0gJ1hNTCcpIHx8CisJCSAgICAoJHNjb3BlID09ICdET0NTJykgfHwgKCRzY29wZSA9PSAnWE1MRE9DJykpIHsKKwkJICAgIGxpc3QoJHJlc3VsdCwgJGspID0gcXVlcnlIVE1MV29yZCgkd29yZCk7CisJCSAgICBpZiAoJGsgPiAwKSB7CisJCQlmb3IgKCRpID0gMDsgJGkgPCAkazsgJGkrKykgeworCQkJICAgICRyZWxldmFuY2UgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDApOworCQkJICAgICRuYW1lID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAxKTsKKwkJCSAgICAkaWQgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDIpOworCQkJICAgICRtb2R1bGUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDMpOworCQkJICAgICRkZXNjID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCA0KTsKKwkJCSAgICBpZiAoc3RybmNtcCgkbW9kdWxlLCAibGlieG1sLSIsIDcpID09IDApCisJCQkgICAgICAgICR1cmwgPSAiaHRtbC8kbW9kdWxlIjsKKwkJCSAgICBpZiAoJGlkICE9ICIiKSB7CisJCQkJJHVybCA9ICR1cmwgKyAiIyRpZCI7CisJCQkgICAgfQorCQkJICAgICRyZXN1bHRzWyIkbmFtZSBfaHRtbF8gJG51bWJlciBfICRpIl0gPQorCQkJCQkgIGFycmF5KCRyZWxldmFuY2UsICJYTUwgZG9jcyIsCisJCQkJCQkkbW9kdWxlLCAkZGVzYywgJG5hbWUsICR1cmwpOworCQkJfQorCQkJbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisJCSAgICB9CisJCX0KKwkJaWYgKCgkc2NvcGUgPT0gJ2FueScpIHx8ICgkc2NvcGUgPT0gJ1hTTFQnKSB8fAorCQkgICAgKCRzY29wZSA9PSAnRE9DUycpIHx8ICgkc2NvcGUgPT0gJ1hTTFRET0MnKSkgeworCQkgICAgbGlzdCgkcmVzdWx0LCAkaykgPSBYU0xUcXVlcnlIVE1MV29yZCgkd29yZCk7CisJCSAgICBpZiAoJGsgPiAwKSB7CisJCQlmb3IgKCRpID0gMDsgJGkgPCAkazsgJGkrKykgeworCQkJICAgICRyZWxldmFuY2UgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDApOworCQkJICAgICRuYW1lID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAxKTsKKwkJCSAgICAkaWQgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDIpOworCQkJICAgICRtb2R1bGUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDMpOworCQkJICAgICRkZXNjID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCA0KTsKKwkJCSAgICAkdXJsID0gIlhTTFQvJG1vZHVsZSI7CisJCQkgICAgaWYgKCRpZCAhPSAiIikgeworCQkJCSR1cmwgPSAkdXJsICsgIiMkaWQiOworCQkJICAgIH0KKwkJCSAgICAkcmVzdWx0c1siJG5hbWUgeHNsdGh0bWwgJG51bWJlciBfICRpICJdID0KKwkJCQkJICBhcnJheSgkcmVsZXZhbmNlLCAiWFNMVCBkb2NzIiwKKwkJCQkJCSRtb2R1bGUsICRkZXNjLCAkbmFtZSwgJHVybCk7CisJCQl9CisJCQlteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKKwkJICAgIH0KKwkJfQorCQlpZiAoKCRzY29wZSA9PSAnYW55JykgfHwgKCRzY29wZSA9PSAnWE1MJykgfHwKKwkJICAgICgkc2NvcGUgPT0gJ0xJU1RTJykgfHwgKCRzY29wZSA9PSAnWE1MTElTVCcpKSB7CisJCSAgICBsaXN0KCRyZXN1bHQsICRqKSA9IHF1ZXJ5QXJjaGl2ZVdvcmQoJHdvcmQpOworCQkgICAgaWYgKCRqID4gMCkgeworCQkJZm9yICgkaSA9IDA7ICRpIDwgJGo7ICRpKyspIHsKKwkJCSAgICAkcmVsZXZhbmNlID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAwKTsKKwkJCSAgICAkbmFtZSA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgMSk7CisJCQkgICAgJHR5cGUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDIpOworCQkJICAgICR1cmwgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDMpOworCQkJICAgICRkZXNjID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCA0KTsKKwkJCSAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkdXJsLCAkcmVzdWx0cykpIHsKKwkJCQlsaXN0KCRyLCR0LCRtLCRkLCR3LCR1KSA9ICRyZXN1bHRzWyR1cmxdOworCQkJCSRyZXN1bHRzWyRuYW1lXSA9IGFycmF5KCgkciArICRyZWxldmFuY2UpICogMiwKKwkJCQkJCQkkdCwkbSwkZCwkdywkdSk7CisJCQkgICAgfSBlbHNlIHsKKwkJCQkkaWQgPSAkbmFtZTsKKwkJCQkkbSA9IHN0cnRvbG93ZXIoJG1vZHVsZSk7CisJCQkJJHUgPSBzdHJfcmVwbGFjZSgKKwkJCSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyIsICIiLCAkdXJsKTsKKwkJCQkkcmVzdWx0c1skdXJsXSA9IGFycmF5KCRyZWxldmFuY2UsJHR5cGUsCisJCQkJCQkkdSwgJGRlc2MsICRuYW1lLCAkdXJsKTsKKwkJCSAgICB9CisJCQl9CisJCQlteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKKwkJICAgIH0KKwkJfQorCQlpZiAoKCRzY29wZSA9PSAnYW55JykgfHwgKCRzY29wZSA9PSAnWFNMVCcpIHx8CisJCSAgICAoJHNjb3BlID09ICdMSVNUUycpIHx8ICgkc2NvcGUgPT0gJ1hTTFRMSVNUJykpIHsKKwkJICAgIGxpc3QoJHJlc3VsdCwgJGopID0gWFNMVHF1ZXJ5QXJjaGl2ZVdvcmQoJHdvcmQpOworCQkgICAgaWYgKCRqID4gMCkgeworCQkJZm9yICgkaSA9IDA7ICRpIDwgJGo7ICRpKyspIHsKKwkJCSAgICAkcmVsZXZhbmNlID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAwKTsKKwkJCSAgICAkbmFtZSA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgMSk7CisJCQkgICAgJHR5cGUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDIpOworCQkJICAgICR1cmwgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDMpOworCQkJICAgICRkZXNjID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCA0KTsKKwkJCSAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkdXJsLCAkcmVzdWx0cykpIHsKKwkJCQlsaXN0KCRyLCR0LCRtLCRkLCR3LCR1KSA9ICRyZXN1bHRzWyR1cmxdOworCQkJCSRyZXN1bHRzWyRuYW1lXSA9IGFycmF5KCgkciArICRyZWxldmFuY2UpICogMiwKKwkJCQkJCQkkdCwkbSwkZCwkdywkdSk7CisJCQkgICAgfSBlbHNlIHsKKwkJCQkkaWQgPSAkbmFtZTsKKwkJCQkkbSA9IHN0cnRvbG93ZXIoJG1vZHVsZSk7CisJCQkJJHUgPSBzdHJfcmVwbGFjZSgKKwkJCSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveHNsdC8iLCAiIiwgJHVybCk7CisJCQkJJHJlc3VsdHNbJHVybF0gPSBhcnJheSgkcmVsZXZhbmNlLCR0eXBlLAorCQkJCQkJJHUsICRkZXNjLCAkbmFtZSwgJHVybCk7CisJCQkgICAgfQorCQkJfQorCQkJbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBpZiAoKGNvdW50KCRyZXN1bHRzKSA9PSAwKSAmJiAoY291bnQoJGxpc3QpID09IDEpKSB7CisJCSR3b3JkID0gJGxpc3RbMF07CisJCWlmICgoJHNjb3BlID09ICdhbnknKSB8fCAoJHNjb3BlID09ICdYTUwnKSB8fAorCQkgICAgKCRzY29wZSA9PSAnQVBJJykgfHwgKCRzY29wZSA9PSAnWE1MQVBJJykpIHsKKwkJICAgIGxpc3QoJHJlc3VsdCwgJGopID0gcXVlcnlXb3JkKCJ4bWwkd29yZCIpOworCQkgICAgaWYgKCRqID4gMCkgeworCQkJZm9yICgkaSA9IDA7ICRpIDwgJGo7ICRpKyspIHsKKwkJCSAgICAkcmVsZXZhbmNlID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAwKTsKKwkJCSAgICAkbmFtZSA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgMSk7CisJCQkgICAgJHR5cGUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDIpOworCQkJICAgICRtb2R1bGUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDMpOworCQkJICAgICRkZXNjID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCA0KTsKKwkJCSAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwgJHJlc3VsdHMpKSB7CisJCQkJbGlzdCgkciwkdCwkbSwkZCwkdywkdSkgPSAkcmVzdWx0c1skbmFtZV07CisJCQkJJHJlc3VsdHNbJG5hbWVdID0gYXJyYXkoKCRyICsgJHJlbGV2YW5jZSkgKiAyLAorCQkJCQkJCSR0LCRtLCRkLCR3LCR1KTsKKwkJCSAgICB9IGVsc2UgeworCQkJCSRpZCA9ICRuYW1lOworCQkJCSRtID0gc3RydG9sb3dlcigkbW9kdWxlKTsKKwkJCQkkdXJsID0gImh0bWwvbGlieG1sLSRtb2R1bGUuaHRtbCMkaWQiOworCQkJCSRyZXN1bHRzWyRuYW1lXSA9IGFycmF5KCRyZWxldmFuY2UsJHR5cGUsCisJCQkJCQkkbW9kdWxlLCAkZGVzYywgJG5hbWUsICR1cmwpOworCQkJICAgIH0KKwkJCX0KKwkJCW15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOworCQkgICAgfQorCQl9CisJCWlmICgoJHNjb3BlID09ICdhbnknKSB8fCAoJHNjb3BlID09ICdYU0xUJykgfHwKKwkJICAgICgkc2NvcGUgPT0gJ0FQSScpIHx8ICgkc2NvcGUgPT0gJ1hTTFRBUEknKSkgeworCQkgICAgbGlzdCgkcmVzdWx0LCAkaikgPSBYU0xUcXVlcnlXb3JkKCJ4c2x0JHdvcmQiKTsKKwkJICAgIGlmICgkaiA+IDApIHsKKwkJCWZvciAoJGkgPSAwOyAkaSA8ICRqOyAkaSsrKSB7CisJCQkgICAgJHJlbGV2YW5jZSA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgMCk7CisJCQkgICAgJG5hbWUgPSBteXNxbF9yZXN1bHQoJHJlc3VsdCwgJGksIDEpOworCQkJICAgICR0eXBlID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAyKTsKKwkJCSAgICAkbW9kdWxlID0gbXlzcWxfcmVzdWx0KCRyZXN1bHQsICRpLCAzKTsKKwkJCSAgICAkZGVzYyA9IG15c3FsX3Jlc3VsdCgkcmVzdWx0LCAkaSwgNCk7CisJCQkgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJG5hbWUsICRyZXN1bHRzKSkgeworCQkJCWxpc3QoJHIsJHQsJG0sJGQsJHcsJHUpID0gJHJlc3VsdHNbJG5hbWVdOworCQkJCSRyZXN1bHRzWyRuYW1lXSA9IGFycmF5KCgkciArICRyZWxldmFuY2UpICogMiwKKwkJCQkJCQkkdCwkbSwkZCwkdywkdSk7CisJCQkgICAgfSBlbHNlIHsKKwkJCQkkaWQgPSAkbmFtZTsKKwkJCQkkbSA9IHN0cnRvbG93ZXIoJG1vZHVsZSk7CisJCQkJJHVybCA9ICJYU0xUL2h0bWwvbGlieHNsdC0kbW9kdWxlLmh0bWwjJGlkIjsKKwkJCQkkcmVzdWx0c1skbmFtZV0gPSBhcnJheSgkcmVsZXZhbmNlLCR0eXBlLAorCQkJCQkJJG1vZHVsZSwgJGRlc2MsICRuYW1lLCAkdXJsKTsKKwkJCSAgICB9CisJCQl9CisJCQlteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJICAgIG15c3FsX2Nsb3NlKCRsaW5rKTsKKwkgICAgJG5iID0gY291bnQoJHJlc3VsdHMpOworCSAgICBlY2hvICI8aDMgYWxpZ249J2NlbnRlcic+Rm91bmQgJG5iIHJlc3VsdHMgZm9yIHF1ZXJ5ICRxdWVyeTwvaDM+XG4iOworCSAgICB1c29ydCgkcmVzdWx0cywgInJlc1NvcnQiKTsKKworICAgICAgICAgICAgaWYgKCRuYiA+IDApIHsKKwkJcHJpbnRmKCI8dGFibGU+PHRib2R5PlxuIik7CisJCXByaW50ZigiPHRyPjx0ZD5RdWFsaXR5PC90ZD48dGQ+U3ltYm9sPC90ZD48dGQ+VHlwZTwvdGQ+PHRkPm1vZHVsZTwvdGQ+PHRkPkRlc2NyaXB0aW9uPC90ZD48L3RyPlxuIik7CisJCSRpID0gMDsKKwkJd2hpbGUgKGxpc3QgKCRuYW1lLCAkdmFsKSA9IGVhY2ggKCRyZXN1bHRzKSkgeworCQkgICAgbGlzdCgkciwkdCwkbSwkZCwkcywkdSkgPSAkdmFsOworCQkgICAgJG0gPSBzdHJfcmVwbGFjZSgiPCIsICImbHQ7IiwgJG0pOworCQkgICAgJHMgPSBzdHJfcmVwbGFjZSgiPCIsICImbHQ7IiwgJHMpOworCQkgICAgJGQgPSBzdHJfcmVwbGFjZSgiPCIsICImbHQ7IiwgJGQpOworCQkgICAgZWNobyAiPHRyPjx0ZD4kcjwvdGQ+PHRkPjxhIGhyZWY9JyR1Jz4kczwvYT48L3RkPjx0ZD4kdDwvdGQ+PHRkPiRtPC90ZD48dGQ+JGQ8L3RkPjwvdHI+IjsKKwkJICAgICRpID0gJGkgKyAxOworCQkgICAgaWYgKCRpID4gNzUpCisJCSAgICAgICAgYnJlYWs7CisJCX0KKwkJcHJpbnRmKCI8L3Rib2R5PjwvdGFibGU+XG4iKTsKKwkgICAgfQorCX0KKyAgICB9Cis/PgorCis8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgorPC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9zZWFyY2hlcy5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2Mvc2VhcmNoZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjJiOGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2Mvc2VhcmNoZXMuaHRtbApAQCAtMCwwICsxLDYxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPlNlYXJjaCBzdGF0aXN0aWNzIGZvciAyMDA0MDQwODwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT48L2gxPjxoMj5TZWFyY2ggc3RhdGlzdGljcyBmb3IgMjAwNDA0MDg8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+TWFpbiBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vZ2FyeXBlbm5pbmd0b24ubmV0L2xpYnhtbDIvIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuenZlbm8uY29tL29wZW5fc291cmNlL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxoMj4gd2Vla2x5IHN0YXRpc3RpY3M6IDwvaDI+PHA+NDE2NDM1IHRvdGFsIHdvcmRzLAorICAgICAgOTg3NSB1bmlxIHdvcmRzLjwvcD48cD4gVG9wIDUwIHF1ZXJpZXM6PC9wPjxwPjxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9bGlieG1sMiI+bGlieG1sMjwvYT4gMTE4MTIgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9bGlieG1sIj5saWJ4bWw8L2E+IDEwMTcwIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhwYXRoIj54cGF0aDwvYT4gNjE3MiB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1zY2hlbWEiPnNjaGVtYTwvYT4gNTc5OCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT14bWxsaW50Ij54bWxsaW50PC9hPiA1NDcyIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PVhNTCI+WE1MPC9hPiA1NDM1IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhtbFBhcnNlRmlsZSI+eG1sUGFyc2VGaWxlPC9hPiA0MjE5IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXBocCI+cGhwPC9hPiAzOTM1IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PURURCI+RFREPC9hPiAzMjcwIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PWVuY29kaW5nIj5lbmNvZGluZzwvYT4gMzEwMSB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT14bWxHZXRQcm9wIj54bWxHZXRQcm9wPC9hPiAzMDg0IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhzbHRwcm9jIj54c2x0cHJvYzwvYT4gMzA3NCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1kb3dubG9hZCI+ZG93bmxvYWQ8L2E+IDI5NzEgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9eG1sTm9kZUxpc3RHZXRTdHJpbmciPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9hPiAyOTE3IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXB5dGhvbiI+cHl0aG9uPC9hPiAyNzg5IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PVNBWCI+U0FYPC9hPiAyNjIxIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhtbFBhcnNlTWVtb3J5Ij54bWxQYXJzZU1lbW9yeTwvYT4gMjQ3MiB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1wZXJsIj5wZXJsPC9hPiAyMzg1IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PWljb252Ij5pY29udjwvYT4gMjMxOCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1lcnJvciI+ZXJyb3I8L2E+IDIyOTggdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9aHRtbCI+aHRtbDwvYT4gMjI1NSB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT14bWxDaGFyIj54bWxDaGFyPC9hPiAyMTM2IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PWxpYnhzbHQiPmxpYnhzbHQ8L2E+IDIwNTUgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9YysrIj5jKys8L2E+IDIwMjAgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9eG1sTm9kZVB0ciI+eG1sTm9kZVB0cjwvYT4gMTkyOCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT13aW5kb3dzIj53aW5kb3dzPC9hPiAxOTE4IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXRvIj50bzwvYT4gMTg5MSB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1ub2RlIj5ub2RlPC9hPiAxODYwIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhtbEZyZWUiPnhtbEZyZWU8L2E+IDE4NTQgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9ZXhhbXBsZSI+ZXhhbXBsZTwvYT4gMTc4NCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1pbnN0YWxsIj5pbnN0YWxsPC9hPiAxNzYzIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXBhcnNlciI+cGFyc2VyPC9hPiAxNzE1IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhtbE5ld0RvYyI+eG1sTmV3RG9jPC9hPiAxNjk1IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PW5hbWVzcGFjZSI+bmFtZXNwYWNlPC9hPiAxNjkzIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhtbFN0cmNtcCI+eG1sU3RyY21wPC9hPiAxNTY0IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXhtbG5vZGUiPnhtbG5vZGU8L2E+IDE1NTggdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9cGFyc2UiPnBhcnNlPC9hPiAxNTE3IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PW1lbW9yeSI+bWVtb3J5PC9hPiAxNDg0IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PWRvbSI+ZG9tPC9hPiAxNDU3IHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PVhJbmNsdWRlIj5YSW5jbHVkZTwvYT4gMTQ0NCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1lbnRpdHkiPmVudGl0eTwvYT4gMTQyMyB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT14bWxTYXZlRm9ybWF0RmlsZSI+eG1sU2F2ZUZvcm1hdEZpbGU8L2E+IDEzOTAgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9eHNsdCI+eHNsdDwvYT4gMTM2MSB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT1hdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvYT4gMTM2MCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT14bWxEb2NQdHIiPnhtbERvY1B0cjwvYT4gMTM1MCB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT14c2QiPnhzZDwvYT4gMTMxOSB0aW1lcy4KKyAgPGJyIC8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT14bWxEb2NHZXRSb290RWxlbWVudCI+eG1sRG9jR2V0Um9vdEVsZW1lbnQ8L2E+IDEyODUgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9dmFsaWRhdGUiPnZhbGlkYXRlPC9hPiAxMjcwIHRpbWVzLgorICA8YnIgLz48YSBocmVmPSJzZWFyY2gucGhwP3F1ZXJ5PXZhbGlkYXRpb24iPnZhbGlkYXRpb248L2E+IDEyMzQgdGltZXMuCisgIDxiciAvPjxhIGhyZWY9InNlYXJjaC5waHA/cXVlcnk9dHV0b3JpYWwiPnR1dG9yaWFsPC9hPiAxMTQwIHRpbWVzLgorICA8L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9zZWFyY2hlcy54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy9zZWFyY2hlcy54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFkYjMzNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3NlYXJjaGVzLnhzbApAQCAtMCwwICsxLDk3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0gdGhpcyBzdHlsZXNoZWV0IGJ1aWxkcyB0aGUgQVBJKi5odG1sICwgaXQgd29ya3MgYmFzZWQgb24gbGlieG1sMi1yZWZzLnhtbAorICAtLT4KKzx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiCisgIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgorICB4bWxuczpleHNsPSJodHRwOi8vZXhzbHQub3JnL2NvbW1vbiIKKyAgZXh0ZW5zaW9uLWVsZW1lbnQtcHJlZml4ZXM9ImV4c2wiCisgIGV4Y2x1ZGUtcmVzdWx0LXByZWZpeGVzPSJleHNsIj4KKworICA8IS0tIEltcG9ydCB0aGUgcmVzdCBvZiB0aGUgc2l0ZSBzdHlsZXNoZWV0cyAtLT4KKyAgPHhzbDppbXBvcnQgaHJlZj0ic2l0ZS54c2wiLz4KKworICA8IS0tIEdlbmVyYXRlIFhIVE1MLTEuMCB0cmFuc2l0aW9uYWwgLS0+CisgIDx4c2w6b3V0cHV0IG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgaW5kZW50PSJ5ZXMiCisgICAgICBkb2N0eXBlLXB1YmxpYz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICBkb2N0eXBlLXN5c3RlbT0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCIvPgorCisgIDx4c2w6dmFyaWFibGUgbmFtZT0iaHJlZl9iYXNlIiBzZWxlY3Q9IicnIi8+CisKKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJzdGF0aXN0aWNzIj4KKyAgICAgIDxoMj4gd2Vla2x5IHN0YXRpc3RpY3M6IDwvaDI+CisgICAgICA8cD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHRvdGFsIi8+IHRvdGFsIHdvcmRzLAorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB1bmlxIi8+IHVuaXEgd29yZHMuPC9wPgorICAgICAgPHA+IFRvcCA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5yIi8+IHF1ZXJpZXM6PC9wPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJxdWVyeSI+CisgICAgIDxici8+PGEgaHJlZj0ic2VhcmNoLnBocD9xdWVyeT17c3RyaW5nKC4pfSI+PHhzbDp2YWx1ZS1vZgorICAgICAgICAgIHNlbGVjdD0ic3RyaW5nKC4pIi8+PC9hPgorCSAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAY291bnQiLz4gdGltZXMuCisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InF1ZXJpZXMiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZGF0ZSIgc2VsZWN0PSJAZGF0ZSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGl0bGUiPlNlYXJjaCBzdGF0aXN0aWNzIGZvciA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGRhdGUiLz48L3hzbDp2YXJpYWJsZT4KKyAgICA8eHNsOmRvY3VtZW50IGhyZWY9InNlYXJjaGVzLmh0bWwiIG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJPHhzbDplbGVtZW50IG5hbWU9InRpdGxlIj4KKwkgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz4KKwk8L3hzbDplbGVtZW50PgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGl0bGVib3giPgorCSAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiIHNlbGVjdD0iJHRpdGxlIi8+CisJICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRvYyIvPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorCQkJCSAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0YXRpc3RpY3MiLz4KKwkJCQkJPHA+CisJCQkJICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9InF1ZXJ5Ii8+CisJCQkJCTwvcD4KKwkJCQkJPHA+PGEgaHJlZj0ieyRocmVmX2Jhc2V9YnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2JvZHk+CisgICAgICA8L2h0bWw+CisgICAgPC94c2w6ZG9jdW1lbnQ+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0icXVlcmllcyIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3NpdGUueHNsIGIvbGlieG1sMi0yLjcuNy9kb2Mvc2l0ZS54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY5OTBmMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3NpdGUueHNsCkBAIC0wLDAgKzEsNzQxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIj4KKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ4bWwiIGVuY29kaW5nPSJJU08tODg1OS0xIiBpbmRlbnQ9InllcyIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIi8+CisKKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJocmVmX2Jhc2UiIHNlbGVjdD0iJyciLz4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJtZW51X25hbWUiPk1haW4gTWVudTwveHNsOnZhcmlhYmxlPgorPCEtLQorIC0gcmV0dXJucyB0aGUgZmlsZW5hbWUgYXNzb2NpYXRlZCB0byBhbiBJRCBpbiB0aGUgb3JpZ2luYWwgZmlsZQorIC0tPgorICA8eHNsOnRlbXBsYXRlIG5hbWU9InRvY2ZpbGVuYW1lIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBocmVmKSIvPgorICAgIDx4c2w6Y2hvb3NlPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNJbnRyb2R1Y3RpJyI+CisgICAgICAgIDx4c2w6dGV4dD5pbnRyby5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0RvY3VtZW50YXQnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmRvY3MuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNSZXBvcnRpbmcnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmJ1Z3MuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNoZWxwJyI+CisgICAgICAgIDx4c2w6dGV4dD5oZWxwLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjSGVscCciPgorICAgICAgICA8eHNsOnRleHQ+aGVscC5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0Rvd25sb2FkcyciPgorICAgICAgICA8eHNsOnRleHQ+ZG93bmxvYWRzLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTmV3cyciPgorICAgICAgICA8eHNsOnRleHQ+bmV3cy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0NvbnRyaWJ1dGknIj4KKyAgICAgICAgPHhzbDp0ZXh0PmNvbnRyaWJzLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjeHNsdHByb2MnIj4KKyAgICAgICAgPHhzbDp0ZXh0PnhzbHRwcm9jMi5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0FQSSciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1hTTFQnIj4KKyAgICAgICAgPHhzbDp0ZXh0PlhTTFQuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNYTUwnIj4KKyAgICAgICAgPHhzbDp0ZXh0PlhNTGluZm8uaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNWYWxpZGF0aW9uJyI+CisgICAgICAgIDx4c2w6dGV4dD54bWxkdGQuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyN0cmVlJyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjbGlicmFyeSciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2ludGVyZmFjZSciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0V4YW1wbGUnIj4KKyAgICAgICAgPHhzbDp0ZXh0PjwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNFbnRpdGllcyciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2FyY2hpdGVjdHVyZSciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI05hbWVzcGFjZXMnIj4KKyAgICAgICAgPHhzbDp0ZXh0Pm5hbWVzcGFjZXMuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNET00nIj4KKyAgICAgICAgPHhzbDp0ZXh0PjwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNDYXRhbG9nJyI+CisgICAgICAgIDx4c2w6dGV4dD5jYXRhbG9nLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjVXBncmFkaW5nJyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjRW5jb2RpbmdzJyI+CisgICAgICAgIDx4c2w6dGV4dD5lbmNvZGluZy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0lPJyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTWVtb3J5JyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjVGhyZWFkJyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjRkFRJyI+CisgICAgICAgIDx4c2w6dGV4dD5GQVEuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNQeXRob24nIj4KKyAgICAgICAgPHhzbDp0ZXh0PjwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyciPgorICAgICAgICA8eHNsOnRleHQ+dW5rbm93bi5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkb2NmaWxlbmFtZSI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAaHJlZikiLz4KKyAgICA8eHNsOmNob29zZT4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjSW50cm9kdWN0aSciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0RvY3VtZW50YXQnIj4KKyAgICAgICAgPHhzbDp0ZXh0PjwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNSZXBvcnRpbmcnIj4KKyAgICAgICAgPHhzbDp0ZXh0PjwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNoZWxwJyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjSGVscCciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0Rvd25sb2FkcyciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI05ld3MnIj4KKyAgICAgICAgPHhzbDp0ZXh0PjwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNDb250cmlidXRpJyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjeHNsdHByb2MnIj4KKyAgICAgICAgPHhzbDp0ZXh0PnhzbHRwcm9jMi5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0FQSSciPgorICAgICAgICA8eHNsOnRleHQ+QVBJLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjWFNMVCciPgorICAgICAgICA8eHNsOnRleHQ+WFNMVC5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1hNTCciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1ZhbGlkYXRpb24nIj4KKyAgICAgICAgPHhzbDp0ZXh0PjwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyN0cmVlJyI+CisgICAgICAgIDx4c2w6dGV4dD50cmVlLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjbGlicmFyeSciPgorICAgICAgICA8eHNsOnRleHQ+bGlicmFyeS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2ludGVyZmFjZSciPgorICAgICAgICA8eHNsOnRleHQ+aW50ZXJmYWNlLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjRXhhbXBsZSciPgorICAgICAgICA8eHNsOnRleHQ+ZXhhbXBsZS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0VudGl0aWVzJyI+CisgICAgICAgIDx4c2w6dGV4dD5lbnRpdGllcy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2FyY2hpdGVjdHVyZSciPgorICAgICAgICA8eHNsOnRleHQ+YXJjaGl0ZWN0dXJlLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTmFtZXNwYWNlcyciPgorICAgICAgICA8eHNsOnRleHQ+bmFtZXNwYWNlcy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0RPTSciPgorICAgICAgICA8eHNsOnRleHQ+RE9NLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjQ2F0YWxvZyciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1VwZ3JhZGluZyciPgorICAgICAgICA8eHNsOnRleHQ+dXBncmFkZS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0VuY29kaW5ncyciPgorICAgICAgICA8eHNsOnRleHQ+PC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0lPJyI+CisgICAgICAgIDx4c2w6dGV4dD54bWxpby5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI01lbW9yeSciPgorICAgICAgICA8eHNsOnRleHQ+eG1sbWVtLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjVGhyZWFkJyI+CisgICAgICAgIDx4c2w6dGV4dD50aHJlYWRzLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjRkFRJyI+CisgICAgICAgIDx4c2w6dGV4dD48L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjUHl0aG9uJyI+CisgICAgICAgIDx4c2w6dGV4dD5weXRob24uaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyciPgorICAgICAgICA8eHNsOnRleHQ+dW5rbm93bi5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJmaWxlbmFtZSI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAaHJlZikiLz4KKyAgICA8eHNsOmNob29zZT4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjSW50cm9kdWN0aSciPgorICAgICAgICA8eHNsOnRleHQ+aW50cm8uaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNEb2N1bWVudGF0JyI+CisgICAgICAgIDx4c2w6dGV4dD5kb2NzLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjUmVwb3J0aW5nJyI+CisgICAgICAgIDx4c2w6dGV4dD5idWdzLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjaGVscCciPgorICAgICAgICA8eHNsOnRleHQ+aGVscC5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0hlbHAnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmhlbHAuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNEb3dubG9hZHMnIj4KKyAgICAgICAgPHhzbDp0ZXh0PmRvd25sb2Fkcy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI05ld3MnIj4KKyAgICAgICAgPHhzbDp0ZXh0Pm5ld3MuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNDb250cmlidXRpJyI+CisgICAgICAgIDx4c2w6dGV4dD5jb250cmlicy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI3hzbHRwcm9jJyI+CisgICAgICAgIDx4c2w6dGV4dD54c2x0cHJvYzIuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNBUEknIj4KKyAgICAgICAgPHhzbDp0ZXh0PkFQSS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1hTTFQnIj4KKyAgICAgICAgPHhzbDp0ZXh0PlhTTFQuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNYTUwnIj4KKyAgICAgICAgPHhzbDp0ZXh0PlhNTGluZm8uaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNWYWxpZGF0aW9uJyI+CisgICAgICAgIDx4c2w6dGV4dD54bWxkdGQuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyN0cmVlJyI+CisgICAgICAgIDx4c2w6dGV4dD50cmVlLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjbGlicmFyeSciPgorICAgICAgICA8eHNsOnRleHQ+bGlicmFyeS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2ludGVyZmFjZSciPgorICAgICAgICA8eHNsOnRleHQ+aW50ZXJmYWNlLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjRXhhbXBsZSciPgorICAgICAgICA8eHNsOnRleHQ+ZXhhbXBsZS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0VudGl0aWVzJyI+CisgICAgICAgIDx4c2w6dGV4dD5lbnRpdGllcy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI2FyY2hpdGVjdHVyZSciPgorICAgICAgICA8eHNsOnRleHQ+YXJjaGl0ZWN0dXJlLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjTmFtZXNwYWNlcyciPgorICAgICAgICA8eHNsOnRleHQ+bmFtZXNwYWNlcy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0RPTSciPgorICAgICAgICA8eHNsOnRleHQ+RE9NLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjQ2F0YWxvZyciPgorICAgICAgICA8eHNsOnRleHQ+Y2F0YWxvZy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1VwZ3JhZGluZyciPgorICAgICAgICA8eHNsOnRleHQ+dXBncmFkZS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0VuY29kaW5ncyciPgorICAgICAgICA8eHNsOnRleHQ+ZW5jb2RpbmcuaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNJTyciPgorICAgICAgICA8eHNsOnRleHQ+eG1saW8uaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyNNZW1vcnknIj4KKyAgICAgICAgPHhzbDp0ZXh0PnhtbG1lbS5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI1RocmVhZCciPgorICAgICAgICA8eHNsOnRleHQ+dGhyZWFkcy5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOndoZW4gdGVzdD0iJG5hbWUgPSAnI0ZBUSciPgorICAgICAgICA8eHNsOnRleHQ+RkFRLmh0bWw8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkbmFtZSA9ICcjUHl0aG9uJyI+CisgICAgICAgIDx4c2w6dGV4dD5weXRob24uaHRtbDwveHNsOnRleHQ+CisgICAgICA8L3hzbDp3aGVuPgorICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRuYW1lID0gJyciPgorICAgICAgICA8eHNsOnRleHQ+dW5rbm93bi5odG1sPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKzwhLS0KKyAtIFRoZSBnbG9iYWwgdGl0bGUKKyAtLT4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJnbG9iYWx0aXRsZSIgc2VsZWN0PSJzdHJpbmcoL2h0bWwvYm9keS9oMVsxXSkiLz4KKzwhLS0KKyAtIFRoZSB0YWJsZSBvZiBjb250ZW50CisgLS0+CisgIDx4c2w6dmFyaWFibGUgbmFtZT0idG9jIj4KKyAgICA8Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiCisgICAgICAgICAgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+CisgICAgICA8aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIi8+CisgICAgICA8aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIi8+CisgICAgPC9mb3JtPgorICAgIDx1bD48IS0tIHN0eWxlPSJtYXJnaW4tbGVmdDogLTFlbSIgLS0+CisgICAgICA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgorICAgICAgPCEtLTxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvd2lraSI+V2lraTwvYT48L2xpPiAtLT4KKyAgICAgIDxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIvaHRtbC9ib2R5L2gyIj4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaWxlbmFtZSI+CisgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRvY2ZpbGVuYW1lIj4KKyAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9ImNvbmNhdCgnIycsIHN0cmluZyhhWzFdL0BuYW1lKSkiLz4KKyAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L3hzbDp2YXJpYWJsZT4KKwk8eHNsOmlmIHRlc3Q9IiRmaWxlbmFtZSAhPSAnJyI+CisJICA8bGk+CisJICAgIDx4c2w6ZWxlbWVudCBuYW1lPSJhIj4KKwkgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj4KKwkgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZmlsZW5hbWUiLz4KKwkgICAgICA8L3hzbDphdHRyaWJ1dGU+CisJICAgICAgPHhzbDppZiB0ZXN0PSIkZmlsZW5hbWUgPSAnZG9jcy5odG1sJyI+CisJCSAgPHhzbDphdHRyaWJ1dGUgbmFtZT0ic3R5bGUiPmZvbnQtd2VpZ2h0OmJvbGQ8L3hzbDphdHRyaWJ1dGU+CisJICAgICAgPC94c2w6aWY+CisJICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KKwkgICAgPC94c2w6ZWxlbWVudD4KKwkgIDwvbGk+CisJPC94c2w6aWY+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgIDxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkFQSSBNZW51PC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5SZWNlbnQgQ2hhbmdlczwvYT48L2xpPgorICAgIDwvdWw+CisgIDwveHNsOnZhcmlhYmxlPgorICA8eHNsOnZhcmlhYmxlIG5hbWU9ImRldmVsdG9jIj4KKyAgICA8Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiCisgICAgICAgICAgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+CisgICAgICA8aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIi8+CisgICAgICA8aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIi8+CisgICAgPC9mb3JtPgorICAgIDx1bD48IS0tIHN0eWxlPSJtYXJnaW4tbGVmdDogLTFlbSIgLS0+CisgICAgICA8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIvaHRtbC9ib2R5L2gyIj4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaWxlbmFtZSI+CisgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRvY2ZpbGVuYW1lIj4KKyAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9ImNvbmNhdCgnIycsIHN0cmluZyhhWzFdL0BuYW1lKSkiLz4KKyAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L3hzbDp2YXJpYWJsZT4KKwk8eHNsOmlmIHRlc3Q9IiRmaWxlbmFtZSAhPSAnJyI+CisJICA8bGk+CisJICAgIDx4c2w6ZWxlbWVudCBuYW1lPSJhIj4KKwkgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj4KKwkgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZmlsZW5hbWUiLz4KKwkgICAgICA8L3hzbDphdHRyaWJ1dGU+CisJICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KKwkgICAgPC94c2w6ZWxlbWVudD4KKwkgIDwvbGk+CisJPC94c2w6aWY+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgIDxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT4KKyAgICA8L3VsPgorICA8L3hzbDp2YXJpYWJsZT4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJhcGkiPgorICAgIDx1bD48IS0tIHN0eWxlPSJtYXJnaW4tbGVmdDogLTFlbSIgLS0+CisgICAgICA8bGk+PGEgaHJlZj0ieyRocmVmX2Jhc2V9QVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJ7JGhyZWZfYmFzZX1BUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0ieyRocmVmX2Jhc2V9QVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9InskaHJlZl9iYXNlfUFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJ7JGhyZWZfYmFzZX1BUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT4KKyAgICA8L3VsPgorICA8L3hzbDp2YXJpYWJsZT4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJyZWxhdGVkIj4KKyAgICA8dWw+PCEtLSBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0xZW0iIC0tPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+CisgICAgPC91bD4KKyAgPC94c2w6dmFyaWFibGU+CisgIDx4c2w6dGVtcGxhdGUgbmFtZT0idG9jIj4KKyAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgPGNlbnRlcj4KKyAgICAgICAgICAgICAgICAgIDxiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbWVudV9uYW1lIi8+PC9iPgorICAgICAgICAgICAgICAgIDwvY2VudGVyPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorICAgICAgICAgICAgICAgIDx4c2w6Y29weS1vZiBzZWxlY3Q9IiR0b2MiLz4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgIDxjZW50ZXI+CisgICAgICAgICAgICAgICAgICA8Yj5SZWxhdGVkIGxpbmtzPC9iPgorICAgICAgICAgICAgICAgIDwvY2VudGVyPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorICAgICAgICAgICAgICAgIDx4c2w6Y29weS1vZiBzZWxlY3Q9IiRyZWxhdGVkIi8+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG5hbWU9ImRldmVsdG9jIj4KKyAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgPGNlbnRlcj4KKyAgICAgICAgICAgICAgICAgIDxiPkRldmVsb3BlciBNZW51PC9iPgorICAgICAgICAgICAgICAgIDwvY2VudGVyPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorICAgICAgICAgICAgICAgIDx4c2w6Y29weS1vZiBzZWxlY3Q9IiRkZXZlbHRvYyIvPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgPGNlbnRlcj4KKyAgICAgICAgICAgICAgICAgIDxiPkFQSSBJbmRleGVzPC9iPgorICAgICAgICAgICAgICAgIDwvY2VudGVyPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorICAgICAgICAgICAgICAgIDx4c2w6Y29weS1vZiBzZWxlY3Q9IiRhcGkiLz4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgIDxjZW50ZXI+CisgICAgICAgICAgICAgICAgICA8Yj5SZWxhdGVkIGxpbmtzPC9iPgorICAgICAgICAgICAgICAgIDwvY2VudGVyPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorICAgICAgICAgICAgICAgIDx4c2w6Y29weS1vZiBzZWxlY3Q9IiRyZWxhdGVkIi8+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1vZGU9ImhlYWQiIG1hdGNoPSJ0aXRsZSI+CisgICAgPHRpdGxlPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPgorICAgIDwvdGl0bGU+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1vZGU9ImhlYWQiIG1hdGNoPSJtZXRhIj4KKzwveHNsOnRlbXBsYXRlPgorPCEtLQorIC0gV3JpdGUgdGhlIHN0eWxlcyBpbiB0aGUgaGVhZAorIC0tPgorICA8eHNsOnRlbXBsYXRlIG5hbWU9InN0eWxlIj4KKyAgICA8bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIvPiAKKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+CisgIDwveHNsOnRlbXBsYXRlPgorPCEtLQorIC0gV3JpdGUgdGhlIHRpdGxlIGJveCBvbiB0b3AKKyAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJ0aXRsZWJveCI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0aXRsZSIgc2VsZWN0PSInTWFpbiBQYWdlJyIvPgorICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPgorICAgIDx0cj4KKyAgICA8dGQgd2lkdGg9IjEyMCI+CisgICAgPGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9InskaHJlZl9iYXNlfWVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIi8+PC9hPgorICAgIDwvdGQ+CisgICAgPHRkIHdpZHRoPSIxODAiPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9InskaHJlZl9iYXNlfWdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iLz48L2E+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0ieyRocmVmX2Jhc2V9dzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIvPjwvYT4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0ieyRocmVmX2Jhc2V9cmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iLz48L2E+CisgICAgPGRpdiBhbGlnbj0ibGVmdCI+CisgICAgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9InskaHJlZl9iYXNlfUxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIi8+PC9hPgorICAgIDwvZGl2PgorICAgIDwvdGQ+CisgICAgPHRkPgorICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgIDx4c2w6ZWxlbWVudCBuYW1lPSJoMSI+CisgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGdsb2JhbHRpdGxlIi8+CisgICAgICAgICAgICAgICAgPC94c2w6ZWxlbWVudD4KKyAgICAgICAgICAgICAgICA8eHNsOmVsZW1lbnQgbmFtZT0iaDIiPgorICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0aXRsZSIvPgorICAgICAgICAgICAgICAgIDwveHNsOmVsZW1lbnQ+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwveHNsOnRlbXBsYXRlPgorPCEtLQorIC0gSGFuZGxpbmcgb2Ygbm9kZXMgaW4gdGhlIGJvZHkgYmVmb3JlIHRoZSBmaXJzdCBIMiwgdGFibGUgb2YgY29udGVudAorIC0gRXZlcnl0aGluZyBpcyBqdXN0IGNvcGllZCBvdmVyLCBleGNlcHQgaHJlZiB3aGljaCBtYXkgZ2V0IHJld3JpdHRlbgorIC0gYW5kIGgxL2gyL2EgYXQgdGhlIHRvcCBsZXZlbAorIC0tPgorICA8eHNsOnRlbXBsYXRlIHByaW9yaXR5PSIyIiBtb2RlPSJzdWJjb250ZW50IiBtYXRjaD0iYSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaWxlbmFtZSI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZmlsZW5hbWUiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibmFtZSIgc2VsZWN0PSJzdHJpbmcoQGhyZWYpIi8+CisgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwveHNsOnZhcmlhYmxlPgorICAgIDx4c2w6Y29weT4KKyAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGZpbGVuYW1lIi8+CisgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJzdWJjb250ZW50IiBzZWxlY3Q9Im5vZGUoKSIvPgorICAgIDwveHNsOmNvcHk+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1vZGU9InN1YmNvbnRlbnQiIG1hdGNoPSJAKnxub2RlKCkiPgorICAgIDx4c2w6Y29weT4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9InN1YmNvbnRlbnQiIHNlbGVjdD0iQCp8bm9kZSgpIi8+CisgICAgPC94c2w6Y29weT4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbW9kZT0iY29udGVudCIgbWF0Y2g9IkAqfG5vZGUoKSI+CisgICAgPHhzbDppZiB0ZXN0PSJuYW1lKCkgIT0gJ2gxJyBhbmQgbmFtZSgpICE9ICdoMiciPgorICAgICAgPHhzbDpjb3B5PgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJzdWJjb250ZW50IiBzZWxlY3Q9IkAqfG5vZGUoKSIvPgorICAgICAgPC94c2w6Y29weT4KKyAgICA8L3hzbDppZj4KKyAgPC94c2w6dGVtcGxhdGU+Cis8IS0tCisgLSBIYW5kbGluZyBvZiBub2RlcyBpbiB0aGUgYm9keSBhZnRlciBhbiBIMgorIC0gT3BlbiBhIG5ldyBmaWxlIGFuZCBkdW1wIGFsbCB0aGUgc2libGluZ3MgdXAgdG8gdGhlIG5leHQgSDIKKyAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJzdWJmaWxlIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9ImhlYWRlciIgc2VsZWN0PSJmb2xsb3dpbmctc2libGluZzo6aDJbMV0iLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImZpbGVuYW1lIj4KKyAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJmaWxlbmFtZSI+CisgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9ImNvbmNhdCgnIycsIHN0cmluZygkaGVhZGVyL2FbMV0vQG5hbWUpKSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3hzbDp2YXJpYWJsZT4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRvY2ZpbGVuYW1lIj4KKyAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJ0b2NmaWxlbmFtZSI+CisgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9ImNvbmNhdCgnIycsIHN0cmluZygkaGVhZGVyL2FbMV0vQG5hbWUpKSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3hzbDp2YXJpYWJsZT4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRpdGxlIj4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkaGVhZGVyIi8+CisgICAgPC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJ7JGZpbGVuYW1lfSIgbWV0aG9kPSJ4bWwiIGVuY29kaW5nPSJJU08tODg1OS0xIgorICAgICAgZG9jdHlwZS1wdWJsaWM9Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICAgZG9jdHlwZS1zeXN0ZW09Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorICAgICAgPGh0bWw+CisgICAgICAgIDxoZWFkPgorICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzdHlsZSIvPgorICAgICAgICAgIDx4c2w6ZWxlbWVudCBuYW1lPSJ0aXRsZSI+CisgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHRpdGxlIi8+CisgICAgICAgICAgPC94c2w6ZWxlbWVudD4KKyAgICAgICAgPC9oZWFkPgorICAgICAgICA8Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+CisgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRpdGxlYm94Ij4KKyAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0aXRsZSIgc2VsZWN0PSIkdGl0bGUiLz4KKyAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzhiNzc2NSI+CisgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+CisJCSAgICAgIDx4c2w6Y2hvb3NlPgorCQkgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkZmlsZW5hbWUgPSAnZG9jcy5odG1sJyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkZXZlbHRvYyIvPgorCQkgICAgICAgIDwveHNsOndoZW4+CisJCSAgICAgICAgPHhzbDp3aGVuIHRlc3Q9IiR0b2NmaWxlbmFtZSA9ICcnIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRldmVsdG9jIi8+CisJCSAgICAgICAgPC94c2w6d2hlbj4KKwkJICAgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRvYyIvPgorCQkgICAgICAgIDwveHNsOm90aGVyd2lzZT4KKwkJICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGJnY29sb3I9IiNmZmZhY2QiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9InN1YmZpbGUiIHNlbGVjdD0iJGhlYWRlci9mb2xsb3dpbmctc2libGluZzo6KltwcmVjZWRpbmctc2libGluZzo6aDJbMV0gPSAkaGVhZGVyICAgICAgICAgYW5kIG5hbWUoKSAhPSAnaDInIF0iLz4KKwkJCQkJPHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2JvZHk+CisgICAgICA8L2h0bWw+CisgICAgPC94c2w6ZG9jdW1lbnQ+CisgIDwveHNsOnRlbXBsYXRlPgorICA8eHNsOnRlbXBsYXRlIG1vZGU9InN1YmZpbGUiIG1hdGNoPSJAKnxub2RlKCkiPgorICAgIDx4c2w6Y29weT4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImNvbnRlbnQiIHNlbGVjdD0iQCp8bm9kZSgpIi8+CisgICAgPC94c2w6Y29weT4KKyAgPC94c2w6dGVtcGxhdGU+Cis8IS0tCisgLSBIYW5kbGluZyBvZiB0aGUgaW5pdGlhbCBib2R5IGFuZCBoZWFkIEhUTUwgZG9jdW1lbnQKKyAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iYm9keSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaXJzdGgyIiBzZWxlY3Q9Ii4vaDJbMV0iLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InJlc3QyIiBzZWxlY3Q9Ii4vaDJbcG9zaXRpb24oKSZndDsxXSIvPgorICAgIDxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj4KKyAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJ0aXRsZWJveCI+CisgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0aXRsZSIgc2VsZWN0PSInbGlieG1sJyIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPgorICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRvYyIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij4KKyAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIG1vZGU9ImNvbnRlbnQiIHNlbGVjdD0iKCRmaXJzdGgyL3ByZWNlZGluZy1zaWJsaW5nOjoqKSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii4vaDIiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3ViZmlsZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9ImhlYWRlciIgc2VsZWN0PSIuIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKwkJCQkgICAgPHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorICAgIDwvYm9keT4KKyAgPC94c2w6dGVtcGxhdGU+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImhlYWQiPgorICAgIDxoZWFkPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBtb2RlPSJoZWFkIi8+CisgICAgPC9oZWFkPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iaHRtbCI+CisgICAgPHhzbDptZXNzYWdlPkdlbmVyYXRpbmcgdGhlIFdlYiBwYWdlczwveHNsOm1lc3NhZ2U+CisgICAgPGh0bWw+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+CisgICAgPC9odG1sPgorICA8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9zbWFsbGZvb3Rvbmx5LmdpZiBiL2xpYnhtbDItMi43LjcvZG9jL3NtYWxsZm9vdG9ubHkuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkYmI5ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9zbWFsbGZvb3Rvbmx5LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9zdHJ1Y3R1cmUuZ2lmIGIvbGlieG1sMi0yLjcuNy9kb2Mvc3RydWN0dXJlLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjlhM2U2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2Mvc3RydWN0dXJlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy9zeW1ib2xzLnhtbCBiL2xpYnhtbDItMi43LjcvZG9jL3N5bWJvbHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ZDkwODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy9zeW1ib2xzLnhtbApAQCAtMCwwICsxLDE3NDQgQEAKKzwhLS0gVGhpcyBmaWxlIGRlc2NyaWJlcyBhbGwgdGhlIGV4cG9ydGVkIGVudHJ5IHBvaW50cyBmcm9tIHRoZQorICAgICBsaWJyYXJ5LCBncm91cHBlZCBieSByZWxlYXNlIHdpdGggdGhlIGZpcnN0IHJlbGVhc2UgYmVpbmcgMi40LjMwCisgICAgIEFkZCBuZXcgZXhwb3J0ZWQgZW50cnkgcG9pbnRzIGF0IHRoZSBlbmQsIHRoaXMgd2lsbCBiZSB1c2VkIHRvCisgICAgIGdlbmVyYXRlIGxpYnhtbDIuc3ltcyB0aGUgZGVmaW5pdGlvbiBvZiBleHBvcnRlZCBzeW1ib2xzIGZyb20KKyAgICAgc2hhcmVkIGxpYnJhcmllcworICAtLT4KKzxzeW1ib2xzPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjQuMzAiPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbEJvb2xUb1RleHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxEZWJ1Z0R1bXBBdHRyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sRGVidWdEdW1wQXR0ckxpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxEZWJ1Z0R1bXBEVEQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxEZWJ1Z0R1bXBEb2N1bWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbERlYnVnRHVtcERvY3VtZW50SGVhZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbERlYnVnRHVtcEVudGl0aWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sRGVidWdEdW1wTm9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbERlYnVnRHVtcE5vZGVMaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sRGVidWdEdW1wT25lTm9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbERlYnVnRHVtcFN0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbExzQ291bnROb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sTHNPbmVOb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sU2hlbGw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxTaGVsbEJhc2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxTaGVsbENhdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbFNoZWxsRGlyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sU2hlbGxEdTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbFNoZWxsTGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbFNoZWxsTG9hZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbFNoZWxsUHJpbnROb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sU2hlbGxQcmludFhQYXRoRXJyb3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxTaGVsbFByaW50WFBhdGhSZXN1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxTaGVsbFB3ZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbFNoZWxsU2F2ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGVidWdYTUwiPnhtbFNoZWxsVmFsaWRhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRlYnVnWE1MIj54bWxTaGVsbFdyaXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cG9pbnRlciI+eG1sWFB0ckJ1aWxkTm9kZUxpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyRXZhbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBvaW50ZXIiPnhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyRnJlZUxvY2F0aW9uU2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cG9pbnRlciI+eG1sWFB0ckxvY2F0aW9uU2V0QWRkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cG9pbnRlciI+eG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cG9pbnRlciI+eG1sWFB0ckxvY2F0aW9uU2V0RGVsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cG9pbnRlciI+eG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyTG9jYXRpb25TZXRSZW1vdmU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyTmV3Q29udGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBvaW50ZXIiPnhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyTmV3TG9jYXRpb25TZXROb2Rlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBvaW50ZXIiPnhtbFhQdHJOZXdSYW5nZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBvaW50ZXIiPnhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyTmV3UmFuZ2VOb2Rlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBvaW50ZXIiPnhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBvaW50ZXIiPnhtbFhQdHJOZXdSYW5nZVBvaW50czwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBvaW50ZXIiPnhtbFhQdHJSYW5nZVRvRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Inhwb2ludGVyIj54bWxYUHRyV3JhcExvY2F0aW9uU2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmF0dHJpYnV0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5hdHRyaWJ1dGVEZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmNkYXRhQmxvY2s8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+Y2hhcmFjdGVyczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5jaGVja05hbWVzcGFjZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5jb21tZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj5kb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmVsZW1lbnREZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmVuZERvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmVuZEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+ZW50aXR5RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5leHRlcm5hbFN1YnNldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5nZXRDb2x1bW5OdW1iZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+Z2V0RW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmdldExpbmVOdW1iZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+Z2V0TmFtZXNwYWNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmdldFBhcmFtZXRlckVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5nZXRQdWJsaWNJZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5nZXRTeXN0ZW1JZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5nbG9iYWxOYW1lc3BhY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+aGFzRXh0ZXJuYWxTdWJzZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+aGFzSW50ZXJuYWxTdWJzZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPmh0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+aWdub3JhYmxlV2hpdGVzcGFjZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5pbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+aW5pdHhtbERlZmF1bHRTQVhIYW5kbGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmludGVybmFsU3Vic2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPmlzU3RhbmRhbG9uZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5uYW1lc3BhY2VEZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPm5vdGF0aW9uRGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+cmVmZXJlbmNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPnJlc29sdmVFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWCI+c2V0RG9jdW1lbnRMb2NhdG9yPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPnNldE5hbWVzcGFjZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj5zdGFydERvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgiPnN0YXJ0RWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYIj51bnBhcnNlZEVudGl0eURlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbERlZmF1bHRTQVhIYW5kbGVySW5pdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj5odG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+aHRtbEluaXRBdXRvQ2xvc2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+aW5wdXRQb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+aW5wdXRQdXNoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPm5hbWVQb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+bmFtZVB1c2g8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+bm9kZVBvcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj5ub2RlUHVzaDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxDaGVja0xhbmd1YWdlSUQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sQ29weUNoYXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sQ29weUNoYXJNdWx0aUJ5dGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbEN1cnJlbnRDaGFyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbERlY29kZUVudGl0aWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbEZyZWVJbnB1dFN0cmVhbTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxIYW5kbGVFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzQmFzZUNoYXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzQmxhbms8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzQ2hhcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2h2YWxpZCI+eG1sSXNDb21iaW5pbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzRGlnaXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzRXh0ZW5kZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzSWRlb2dyYXBoaWM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sSXNMZXR0ZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzUHViaWRDaGFyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbE5hbWVzcGFjZVBhcnNlTlNEZWY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sTmFtZXNwYWNlUGFyc2VRTmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxOZXdFbnRpdHlJbnB1dFN0cmVhbTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxOZXdJbnB1dEZyb21GaWxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbE5ld0lucHV0U3RyZWFtPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbE5ld1BhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sTmV3U3RyaW5nSW5wdXRTdHJlYW08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sTmV4dENoYXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VBdHRWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUF0dHJpYnV0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlQXR0cmlidXRlVHlwZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUNEU2VjdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUNoYXJEYXRhPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlQ2hhclJlZjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUNvbW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlRGVmYXVsdERlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VEb2NUeXBlRGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUVsZW1lbnREZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VFbmNOYW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlRW5jb2RpbmdEZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlRW5kVGFnPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlRW50aXR5RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUVudGl0eVJlZjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZUVudGl0eVZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlRW51bWVyYXRlZFR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VFbnVtZXJhdGlvblR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VFeHRlcm5hbElEPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VNYXJrdXBEZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlTWlzYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZU5hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VOYW1lc3BhY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VObXRva2VuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlTm90YXRpb25EZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlTm90YXRpb25UeXBlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlUEVSZWZlcmVuY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VQSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZVBJVGFyZ2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlUHViaWRMaXRlcmFsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlUXVvdGVkU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlUmVmZXJlbmNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlU0REZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlU3RhcnRUYWc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VTeXN0ZW1MaXRlcmFsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlVGV4dERlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VWZXJzaW9uSW5mbzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZVZlcnNpb25OdW08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sUGFyc2VYTUxEZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZXJJbnB1dFNocmluazwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQb3BJbnB1dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQdXNoSW5wdXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sU2Nhbk5hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxTa2lwQmxhbmtDaGFyczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxTcGxpdFFOYW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbFN0cmluZ0NvbW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sU3RyaW5nQ3VycmVudENoYXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sU3RyaW5nRGVjb2RlRW50aXRpZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sU3RyaW5nVGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxTdHJpbmdUZXh0Tm9lbmM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sU3dpdGNoRW5jb2Rpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlckludGVybmFscyI+eG1sU3dpdGNoVG9FbmNvZGluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iYzE0biI+eG1sQzE0TkRvY0R1bXBNZW1vcnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImMxNG4iPnhtbEMxNE5Eb2NTYXZlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjMTRuIj54bWxDMTRORG9jU2F2ZVRvPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjMTRuIj54bWxDMTRORXhlY3V0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQUNhdGFsb2dBZGQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbEFDYXRhbG9nRHVtcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQUNhdGFsb2dSZW1vdmU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbEFDYXRhbG9nUmVzb2x2ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQUNhdGFsb2dSZXNvbHZlUHVibGljPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbEFDYXRhbG9nUmVzb2x2ZVVSSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQ2F0YWxvZ0FkZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQ2F0YWxvZ0FkZExvY2FsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nQ2xlYW51cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQ2F0YWxvZ0NvbnZlcnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbENhdGFsb2dEdW1wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nRnJlZUxvY2FsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nR2V0RGVmYXVsdHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbENhdGFsb2dHZXRQdWJsaWM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbENhdGFsb2dHZXRTeXN0ZW08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbENhdGFsb2dJc0VtcHR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nUmVtb3ZlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nUmVzb2x2ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbENhdGFsb2dSZXNvbHZlU3lzdGVtPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nUmVzb2x2ZVVSSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQ2F0YWxvZ1NldERlYnVnPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sQ2F0YWxvZ1NldERlZmF1bHRzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxDb252ZXJ0U0dNTENhdGFsb2c8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNhdGFsb2ciPnhtbEZyZWVDYXRhbG9nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxJbml0aWFsaXplQ2F0YWxvZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sTG9hZEFDYXRhbG9nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxMb2FkQ2F0YWxvZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sTG9hZENhdGFsb2dzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjYXRhbG9nIj54bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sTmV3Q2F0YWxvZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2F0YWxvZyI+eG1sUGFyc2VDYXRhbG9nRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnZhbHVlUG9wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+dmFsdWVQdXNoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhBZGRWYWx1ZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhDb21wYXJlVmFsdWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhDb25jYXRGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoQ291bnRGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aERlYnVnRHVtcE9iamVjdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoRGlmZmVyZW5jZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoRGlzdGluY3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aERpc3RpbmN0U29ydGVkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhEaXZWYWx1ZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aEVxdWFsVmFsdWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhFdmFsRXhwcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aEZhbHNlRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aEZsb29yRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhGdW5jdGlvbkxvb2t1cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoSGFzU2FtZU5vZGVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhJZEZ1bmN0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhJbnRlcnNlY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aElzTm9kZVR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aExhbmdGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTGFzdEZ1bmN0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhMZWFkaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhMZWFkaW5nU29ydGVkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTW9kVmFsdWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhNdWx0VmFsdWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV3Qm9vbGVhbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV3Q1N0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV3RmxvYXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5ld05vZGVTZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5ld05vZGVTZXRMaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOZXdTdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5ld1ZhbHVlVHJlZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV4dEFuY2VzdG9yPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5leHRBdHRyaWJ1dGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5leHRDaGlsZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV4dERlc2NlbmRhbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV4dE5hbWVzcGFjZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV4dFBhcmVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV4dFByZWNlZGluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5leHRTZWxmPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOb2RlTGVhZGluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5vZGVTZXRBZGQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5vZGVTZXRBZGROczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTm9kZVNldENvbnRhaW5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOb2RlU2V0RGVsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOb2RlU2V0RnJlZU5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOb2RlU2V0TWVyZ2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5vZGVTZXRSZW1vdmU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5vZGVTZXRTb3J0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOb2RlVHJhaWxpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE5vdEVxdWFsVmFsdWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhOb3RGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoTnNMb29rdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aE51bWJlckZ1bmN0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhQYXJzZU5DTmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoUGFyc2VOYW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhQb3BCb29sZWFuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhQb3BFeHRlcm5hbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoUG9wTm9kZVNldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoUG9wTnVtYmVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhQb3BTdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhSZWdpc3RlckZ1bmM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoUmVnaXN0ZXJGdW5jTlM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJlZ2lzdGVyTnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJvb3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFJvdW5kRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoU3RyaW5nRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhTdWJWYWx1ZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoU3VtRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFRyYWlsaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhUcmFpbGluZ1NvcnRlZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFRydWVGdW5jdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoVmFsdWVGbGlwU2lnbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGhJbnRlcm5hbHMiPnhtbFhQYXRoVmFyaWFibGVMb29rdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFZhcmlhYmxlTG9va3VwTlM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFdyYXBDU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhXcmFwRXh0ZXJuYWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aFdyYXBOb2RlU2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhXcmFwU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aEludGVybmFscyI+eG1sWFBhdGhlcnJvcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sYXV0b21hdGEiPnhtbEF1dG9tYXRhQ29tcGlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sYXV0b21hdGEiPnhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxhdXRvbWF0YSI+eG1sQXV0b21hdGFJc0RldGVybWluaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxhdXRvbWF0YSI+eG1sQXV0b21hdGFOZXdBbGxUcmFuczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sYXV0b21hdGEiPnhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sYXV0b21hdGEiPnhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxhdXRvbWF0YSI+eG1sQXV0b21hdGFOZXdDb3VudGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxhdXRvbWF0YSI+eG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxBdXRvbWF0YU5ld0Vwc2lsb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxBdXRvbWF0YU5ld09uY2VUcmFuczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sYXV0b21hdGEiPnhtbEF1dG9tYXRhTmV3U3RhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxBdXRvbWF0YU5ld1RyYW5zaXRpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxBdXRvbWF0YVNldEZpbmFsU3RhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxGcmVlQXV0b21hdGE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxOZXdBdXRvbWF0YTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHRyZWUiPmh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHRyZWUiPmh0bWxEb2NDb250ZW50RHVtcE91dHB1dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHRyZWUiPmh0bWxEb2NEdW1wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1MdHJlZSI+aHRtbERvY0R1bXBNZW1vcnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sR2V0TWV0YUVuY29kaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1MdHJlZSI+aHRtbElzQm9vbGVhbkF0dHI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sTmV3RG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1MdHJlZSI+aHRtbE5ld0RvY05vRHREPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1MdHJlZSI+aHRtbE5vZGVEdW1wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1MdHJlZSI+aHRtbE5vZGVEdW1wRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHRyZWUiPmh0bWxOb2RlRHVtcEZpbGVGb3JtYXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sTm9kZUR1bXBPdXRwdXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sU2F2ZUZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sU2F2ZUZpbGVFbmM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sU2F2ZUZpbGVGb3JtYXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sU2V0TWV0YUVuY29kaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vZnRwIj54bWxOYW5vRlRQQ2hlY2tSZXNwb25zZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUENsZWFudXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBDbG9zZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUENvbm5lY3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBDb25uZWN0VG88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBDd2Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBGcmVlQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUEdldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUEdldENvbm5lY3Rpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBHZXRSZXNwb25zZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUEdldFNvY2tldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUEluaXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBMaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vZnRwIj54bWxOYW5vRlRQTmV3Q3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUE9wZW48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBQcm94eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2Z0cCI+eG1sTmFub0ZUUFF1aXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBSZWFkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vZnRwIj54bWxOYW5vRlRQU2NhblByb3h5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vZnRwIj54bWxOYW5vRlRQVXBkYXRlVVJMPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJET0NCcGFyc2VyIj5kb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkRPQ0JwYXJzZXIiPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iRE9DQnBhcnNlciI+ZG9jYkVuY29kZUVudGl0aWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJET0NCcGFyc2VyIj5kb2NiRnJlZVBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkRPQ0JwYXJzZXIiPmRvY2JQYXJzZUNodW5rPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJET0NCcGFyc2VyIj5kb2NiUGFyc2VEb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkRPQ0JwYXJzZXIiPmRvY2JQYXJzZURvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJET0NCcGFyc2VyIj5kb2NiUGFyc2VGaWxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJET0NCcGFyc2VyIj5kb2NiU0FYUGFyc2VEb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkRPQ0JwYXJzZXIiPmRvY2JTQVhQYXJzZUZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoQ2FzdFRvQm9vbGVhbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoQ2FzdFRvTnVtYmVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDYXN0VG9TdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aENtcE5vZGVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDb21waWxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDb21waWxlZEV2YWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aENvbnZlcnRCb29sZWFuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDb252ZXJ0TnVtYmVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDb252ZXJ0U3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhFdmFsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhFdmFsRXhwcmVzc2lvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoRXZhbFByZWRpY2F0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoRnJlZUNvbXBFeHByPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhGcmVlQ29udGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoRnJlZU5vZGVTZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aEZyZWVOb2RlU2V0TGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoRnJlZU9iamVjdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoSW5pdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoSXNJbmY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aElzTmFOPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhOQU48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aE5JTkY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aE5ld0NvbnRleHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aE5vZGVTZXRDcmVhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aE9iamVjdENvcHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoIj54bWxYUGF0aFBJTkY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhsaW5rIj54bGlua0dldERlZmF1bHREZXRlY3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhsaW5rIj54bGlua0dldERlZmF1bHRIYW5kbGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bGluayI+eGxpbmtJc0xpbms8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhsaW5rIj54bGlua1NldERlZmF1bHREZXRlY3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhsaW5rIj54bGlua1NldERlZmF1bHRIYW5kbGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sQWRkRG9jRW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sQWRkRHRkRW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW50aXRpZXMiPnhtbENvcHlFbnRpdGllc1RhYmxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sQ3JlYXRlRW50aXRpZXNUYWJsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW50aXRpZXMiPnhtbER1bXBFbnRpdGllc1RhYmxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sRHVtcEVudGl0eURlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVudGl0aWVzIj54bWxFbmNvZGVFbnRpdGllczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW50aXRpZXMiPnhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sRW5jb2RlU3BlY2lhbENoYXJzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sRnJlZUVudGl0aWVzVGFibGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVudGl0aWVzIj54bWxHZXREb2NFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVudGl0aWVzIj54bWxHZXREdGRFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVudGl0aWVzIj54bWxHZXRQYXJhbWV0ZXJFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVudGl0aWVzIj54bWxHZXRQcmVkZWZpbmVkRW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbnRpdGllcyI+eG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieGluY2x1ZGUiPnhtbFhJbmNsdWRlUHJvY2Vzczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlua0dldERhdGE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RBcHBlbmQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RDbGVhcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdENvcHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RDcmVhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3REZWxldGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3REdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RFbXB0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdEVuZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdEZyb250PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJsaXN0Ij54bWxMaXN0SW5zZXJ0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJsaXN0Ij54bWxMaXN0TWVyZ2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RQb3BCYWNrPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJsaXN0Ij54bWxMaXN0UG9wRnJvbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RQdXNoQmFjazwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdFB1c2hGcm9udDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdFJlbW92ZUFsbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdFJlbW92ZUZpcnN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJsaXN0Ij54bWxMaXN0UmVtb3ZlTGFzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdFJldmVyc2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RSZXZlcnNlU2VhcmNoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJsaXN0Ij54bWxMaXN0UmV2ZXJzZVdhbGs8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RTZWFyY2g8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imxpc3QiPnhtbExpc3RTaXplPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJsaXN0Ij54bWxMaXN0U29ydDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibGlzdCI+eG1sTGlzdFdhbGs8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbG1lbW9yeSI+eG1sSW5pdE1lbW9yeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNYWxsb2NMb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbG1lbW9yeSI+eG1sTWVtRGlzcGxheTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNZW1GcmVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxtZW1vcnkiPnhtbE1lbUdldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNZW1NYWxsb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbG1lbW9yeSI+eG1sTWVtUmVhbGxvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNZW1TZXR1cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNZW1TaG93PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxtZW1vcnkiPnhtbE1lbVN0cmR1cExvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNZW1Vc2VkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxtZW1vcnkiPnhtbE1lbW9yeUR1bXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbG1lbW9yeSI+eG1sTWVtb3J5U3RyZHVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxtZW1vcnkiPnhtbFJlYWxsb2NMb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxBbGxvY091dHB1dEJ1ZmZlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxDaGVja0ZpbGVuYW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sQ2xlYW51cE91dHB1dENhbGxiYWNrczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbEZpbGVDbG9zZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbEZpbGVNYXRjaDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbEZpbGVPcGVuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sRmlsZVJlYWQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxGcmVlUGFyc2VySW5wdXRCdWZmZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxJT0ZUUENsb3NlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sSU9GVFBNYXRjaDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbElPRlRQT3Blbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbElPRlRQUmVhZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbElPSFRUUENsb3NlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sSU9IVFRQTWF0Y2g8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxJT0hUVFBPcGVuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sSU9IVFRQT3Blblc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxJT0hUVFBSZWFkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sT3V0cHV0QnVmZmVyQ2xvc2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sT3V0cHV0QnVmZmVyRmx1c2g8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxPdXRwdXRCdWZmZXJXcml0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sUGFyc2VyR2V0RGlyZWN0b3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3c8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2g8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHZlcnNpb24iPnhtbENoZWNrVmVyc2lvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbEFkZEF0dHJpYnV0ZURlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxBZGRFbGVtZW50RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbEFkZElEPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sQWRkTm90YXRpb25EZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sQWRkUmVmPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sQ29weUF0dHJpYnV0ZVRhYmxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sQ29weUVsZW1lbnRDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sQ29weUVsZW1lbnRUYWJsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbENvcHlFbnVtZXJhdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbENvcHlOb3RhdGlvblRhYmxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sQ3JlYXRlRW51bWVyYXRpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxEdW1wQXR0cmlidXRlRGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbER1bXBBdHRyaWJ1dGVUYWJsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbER1bXBFbGVtZW50RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbER1bXBFbGVtZW50VGFibGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxEdW1wTm90YXRpb25EZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sRHVtcE5vdGF0aW9uVGFibGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxGcmVlQXR0cmlidXRlVGFibGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxGcmVlRWxlbWVudENvbnRlbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxGcmVlRWxlbWVudFRhYmxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sRnJlZUVudW1lcmF0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sRnJlZUlEVGFibGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxGcmVlTm90YXRpb25UYWJsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbEZyZWVSZWZUYWJsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbEdldER0ZEF0dHJEZXNjPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sR2V0RHRkRWxlbWVudERlc2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxHZXREdGROb3RhdGlvbkRlc2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxHZXREdGRRQXR0ckRlc2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxHZXREdGRRRWxlbWVudERlc2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxHZXRJRDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbEdldFJlZnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxJc0lEPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sSXNNaXhlZEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxJc1JlZjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbE5ld0VsZW1lbnRDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sUmVtb3ZlSUQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxSZW1vdmVSZWY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxTbnByaW50ZkVsZW1lbnRDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxTcGxpdFFOYW1lMjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFNwcmludGZFbGVtZW50Q29udGVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZEdldFZhbGlkRWxlbWVudHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFZhbGlkYXRlRG9jdW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZURvY3VtZW50RmluYWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZUR0ZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFZhbGlkYXRlRHRkRmluYWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZUVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZUVsZW1lbnREZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVOYW1lVmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZU5hbWVzVmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFZhbGlkYXRlTm90YXRpb25EZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVOb3RhdGlvblVzZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbFZhbGlkYXRlT25lQXR0cmlidXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVPbmVFbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVPbmVOYW1lc3BhY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZVJvb3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPlVURjhUb0h0bWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxBdXRvQ2xvc2VUYWc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbEVuY29kZUVudGl0aWVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sRW50aXR5TG9va3VwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sRW50aXR5VmFsdWVMb29rdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxGcmVlUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbEhhbmRsZU9taXR0ZWRFbGVtPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sSXNBdXRvQ2xvc2VkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sSXNTY3JpcHRBdHRyaWJ1dGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxQYXJzZUNoYXJSZWY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxQYXJzZUNodW5rPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sUGFyc2VEb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxQYXJzZURvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sUGFyc2VFbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sUGFyc2VFbnRpdHlSZWY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxQYXJzZUZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxTQVhQYXJzZURvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbFNBWFBhcnNlRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbFRhZ0xvb2t1cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxDaGFyU3RyZHVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbENoYXJTdHJuZHVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbENsZWFudXBQYXJzZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sQ2xlYXJOb2RlSW5mb1NlcTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxDbGVhclBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxDcmVhdGVJT1BhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sRnJlZVBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sR2V0RmVhdHVyZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxHZXRGZWF0dXJlc0xpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbElPUGFyc2VEVEQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sSW5pdE5vZGVJbmZvU2VxPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbEluaXRQYXJzZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sSW5pdFBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sS2VlcEJsYW5rc0RlZmF1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sTGluZU51bWJlcnNEZWZhdWx0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbExvYWRFeHRlcm5hbEVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxOZXdJT0lucHV0U3RyZWFtPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFBhcnNlQ2h1bms8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUGFyc2VEVEQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUGFyc2VEb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUGFyc2VEb2N1bWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQYXJzZUVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQYXJzZUV4dFBhcnNlZEVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQYXJzZUV4dGVybmFsRW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFBhcnNlRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQYXJzZU1lbW9yeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQYXJzZXJBZGROb2RlSW5mbzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQYXJzZXJGaW5kTm9kZUluZm88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXg8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUGFyc2VySW5wdXRHcm93PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFBhcnNlcklucHV0UmVhZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUmVjb3ZlckRvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxSZWNvdmVyRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxSZWNvdmVyTWVtb3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFNBWFBhcnNlRFREPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFNBWFBhcnNlRG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFNBWFBhcnNlRW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFNBWFBhcnNlRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxTQVhQYXJzZU1lbW9yeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFNBWFVzZXJQYXJzZUZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sU0FYVXNlclBhcnNlTWVtb3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFNldEZlYXR1cmU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sU2V0dXBQYXJzZXJGb3JCdWZmZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sU3RvcFBhcnNlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxTdHJFcXVhbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxTdHJjYXNlY21wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFN0cmNhc2VzdHI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sU3RyY2F0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFN0cmNocjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxTdHJjbXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sU3RyZHVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFN0cmxlbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxTdHJuY2FzZWNtcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxTdHJuY2F0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFN0cm5jbXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sU3RybmR1cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxTdHJzdHI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sU3Ryc3ViPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sRnJlZVRleHRSZWFkZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sTmV3VGV4dFJlYWRlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJCYXNlVXJpPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJEZXB0aDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVySGFzVmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlcklzRGVmYXVsdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckxvY2FsTmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJOb2RlVHlwZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyUHJlZml4PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJRdW90ZUNoYXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlclJlYWQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlclZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJYbWxMYW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj5kb2NiRGVmYXVsdFNBWEhhbmRsZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPmh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sRGVmYXVsdFNBWEhhbmRsZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbERlZmF1bHRTQVhMb2NhdG9yPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbEZyZWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbEdlbmVyaWNFcnJvcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sR2VuZXJpY0Vycm9yQ29udGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sTWFsbG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxNZW1TdHJkdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFBhcnNlckRlYnVnRW50aXRpZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFBhcnNlclZlcnNpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxSZWFsbG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxTYXZlTm9FbXB0eVRhZ3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sVHJlZUluZGVudFN0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sQ2xlYW51cFRocmVhZHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRocmVhZHMiPnhtbEZyZWVNdXRleDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sRnJlZVJNdXRleDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sR2V0R2xvYmFsU3RhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRocmVhZHMiPnhtbEdldFRocmVhZElkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0aHJlYWRzIj54bWxJbml0VGhyZWFkczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sSXNNYWluVGhyZWFkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0aHJlYWRzIj54bWxMb2NrTGlicmFyeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sTXV0ZXhMb2NrPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0aHJlYWRzIj54bWxNdXRleFVubG9jazwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sTmV3TXV0ZXg8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRocmVhZHMiPnhtbE5ld1JNdXRleDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sUk11dGV4TG9jazwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sUk11dGV4VW5sb2NrPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0aHJlYWRzIj54bWxVbmxvY2tMaWJyYXJ5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJoYXNoIj54bWxIYXNoQWRkRW50cnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hBZGRFbnRyeTI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hBZGRFbnRyeTM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hDb3B5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJoYXNoIj54bWxIYXNoQ3JlYXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJoYXNoIj54bWxIYXNoRnJlZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iaGFzaCI+eG1sSGFzaExvb2t1cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iaGFzaCI+eG1sSGFzaExvb2t1cDI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hMb29rdXAzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJoYXNoIj54bWxIYXNoUmVtb3ZlRW50cnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hSZW1vdmVFbnRyeTI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hSZW1vdmVFbnRyeTM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hTY2FuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJoYXNoIj54bWxIYXNoU2NhbjM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hTY2FuRnVsbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iaGFzaCI+eG1sSGFzaFNjYW5GdWxsMzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iaGFzaCI+eG1sSGFzaFNpemU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hVcGRhdGVFbnRyeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iaGFzaCI+eG1sSGFzaFVwZGF0ZUVudHJ5Mjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iaGFzaCI+eG1sSGFzaFVwZGF0ZUVudHJ5Mzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sZXJyb3IiPmluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sZXJyb3IiPnhtbFBhcnNlckVycm9yPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxlcnJvciI+eG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sZXJyb3IiPnhtbFBhcnNlclByaW50RmlsZUluZm88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGVycm9yIj54bWxQYXJzZXJWYWxpZGl0eUVycm9yPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxlcnJvciI+eG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxlcnJvciI+eG1sUGFyc2VyV2FybmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sZXJyb3IiPnhtbFNldEdlbmVyaWNFcnJvckZ1bmM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPm9sZFhNTFdEY29tcGF0aWJpbGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQWRkQ2hpbGQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEFkZENoaWxkTGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQWRkTmV4dFNpYmxpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEFkZFByZXZTaWJsaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxBZGRTaWJsaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxCdWZmZXJBZGQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlckFkZEhlYWQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbEJ1ZmZlckFsbG9jU2NoZW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxCdWZmZXJDQ2F0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxCdWZmZXJDYXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlckNvbnRlbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlckNyZWF0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQnVmZmVyQ3JlYXRlU2l6ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQnVmZmVyRHVtcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQnVmZmVyRW1wdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlckZyZWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlckdyb3c8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlckxlbmd0aDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQnVmZmVyUmVzaXplPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxCdWZmZXJTaHJpbms8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlcldyaXRlQ0hBUjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQnVmZmVyV3JpdGVDaGFyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQ29weURvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQ29weUR0ZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQ29weU5hbWVzcGFjZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQ29weU5hbWVzcGFjZUxpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbENvcHlOb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxDb3B5Tm9kZUxpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbENvcHlQcm9wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxDb3B5UHJvcExpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbENyZWF0ZUludFN1YnNldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sRGVmYXVsdEJ1ZmZlclNpemU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbERvY0NvcHlOb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NEdW1wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NEdW1wTWVtb3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NEdW1wTWVtb3J5RW5jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NGb3JtYXREdW1wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NHZXRSb290RWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sRG9jU2V0Um9vdEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEVsZW1EdW1wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxGcmVlRG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxGcmVlRHRkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxGcmVlTm9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sRnJlZU5vZGVMaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxGcmVlTnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEZyZWVOc0xpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEZyZWVQcm9wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxGcmVlUHJvcExpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEdldENvbXByZXNzTW9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sR2V0RG9jQ29tcHJlc3NNb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxHZXRJbnRTdWJzZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEdldExhc3RDaGlsZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sR2V0TGluZU5vPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxHZXROb2RlUGF0aDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sR2V0TnNMaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxHZXROc1Byb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEdldFByb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEhhc05zUHJvcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sSGFzUHJvcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sSW5kZW50VHJlZU91dHB1dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sSXNCbGFua05vZGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbElzWEhUTUw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld0NEYXRhQmxvY2s8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld0NoYXJSZWY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld0NoaWxkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdDb21tZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdEb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld0RvY0NvbW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld0RvY0ZyYWdtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdEb2NOb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdEb2NOb2RlRWF0TmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3RG9jUHJvcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3RG9jUmF3Tm9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3RG9jVGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3RG9jVGV4dExlbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3RHRkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdHbG9iYWxOczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3Tm9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3Tm9kZUVhdE5hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld05zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdOc1Byb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld05zUHJvcEVhdE5hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld1BJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdQcm9wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOZXdSZWZlcmVuY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld1RleHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld1RleHRDaGlsZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV3VGV4dExlbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTm9kZUFkZENvbnRlbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5vZGVBZGRDb250ZW50TGVuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOb2RlRHVtcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTm9kZUR1bXBPdXRwdXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5vZGVHZXRCYXNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOb2RlR2V0Q29udGVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTm9kZUdldExhbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5vZGVHZXRTcGFjZVByZXNlcnZlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOb2RlSXNUZXh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOb2RlTGlzdEdldFJhd1N0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5vZGVTZXRCYXNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOb2RlU2V0Q29udGVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTm9kZVNldENvbnRlbnRMZW48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5vZGVTZXRMYW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxOb2RlU2V0TmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTm9kZVNldFNwYWNlUHJlc2VydmU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFJlY29uY2lsaWF0ZU5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxSZW1vdmVQcm9wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxSZXBsYWNlTm9kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sU2F2ZUZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFNhdmVGaWxlRW5jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxTYXZlRmlsZVRvPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxTYXZlRm9ybWF0RmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFNhdmVGb3JtYXRGaWxlVG88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFNlYXJjaE5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxTZWFyY2hOc0J5SHJlZjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sU2V0Q29tcHJlc3NNb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxTZXREb2NDb21wcmVzc01vZGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFNldExpc3REb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFNldE5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxTZXROc1Byb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFNldFByb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFNldFRyZWVEb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFN0cmluZ0dldE5vZGVMaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxTdHJpbmdMZW5HZXROb2RlTGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sVGV4dENvbmNhdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sVGV4dE1lcmdlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxVbmxpbmtOb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxVbnNldE5zUHJvcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sVW5zZXRQcm9wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbFJlZ0V4ZWNQdXNoU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbFJlZ0ZyZWVFeGVjQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVnZXhwIj54bWxSZWdGcmVlUmVnZXhwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbFJlZ05ld0V4ZWNDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbFJlZ2V4cENvbXBpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sUmVnZXhwRXhlYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVnZXhwIj54bWxSZWdleHBJc0RldGVybWluaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbFJlZ2V4cFByaW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vaHR0cCI+eG1sTmFub0hUVFBBdXRoSGVhZGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vaHR0cCI+eG1sTmFub0hUVFBDbGVhbnVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vaHR0cCI+eG1sTmFub0hUVFBDbG9zZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2h0dHAiPnhtbE5hbm9IVFRQRmV0Y2g8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9odHRwIj54bWxOYW5vSFRUUEluaXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9odHRwIj54bWxOYW5vSFRUUE1ldGhvZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2h0dHAiPnhtbE5hbm9IVFRQTWV0aG9kUmVkaXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9odHRwIj54bWxOYW5vSFRUUE9wZW48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9odHRwIj54bWxOYW5vSFRUUE9wZW5SZWRpcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2h0dHAiPnhtbE5hbm9IVFRQUmVhZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2h0dHAiPnhtbE5hbm9IVFRQUmV0dXJuQ29kZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2h0dHAiPnhtbE5hbm9IVFRQU2F2ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2h0dHAiPnhtbE5hbm9IVFRQU2NhblByb3h5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3Jtczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNBcmFiaWM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNBcm1lbmlhbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNBcnJvd3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQmFzaWNMYXRpbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNCZW5nYWxpPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0Jsb2NrPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0Jsb2NrRWxlbWVudHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQm9wb21vZm88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNCb3hEcmF3aW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0JyYWlsbGVQYXR0ZXJuczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9sczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3Jtczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRDPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdENjPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdENmPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdENvPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdENzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdEw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0TGw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0TG08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0TG88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0THQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0THU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0TTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRNYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRNZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRNbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXROPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdE5kPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdE5sPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdE5vPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdFA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0UGM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0UGQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0UGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0UGY8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0UGk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0UG88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0UHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ2F0Uzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRTYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRTazwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRTbTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRTbzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDYXRaPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdFpsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdFpwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NhdFpzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NoZXJva2VlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9sczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDb250cm9sUGljdHVyZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0N5cmlsbGljPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0Rlc2VyZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzRGV2YW5hZ2FyaTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNEaW5nYmF0czwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0V0aGlvcGljPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNHZW9tZXRyaWNTaGFwZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzR2VvcmdpYW48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzR290aGljPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0dyZWVrPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0dyZWVrRXh0ZW5kZWQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzR3VqYXJhdGk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzR3VybXVraGk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzSGFuZ3VsSmFtbzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNIYW5ndWxTeWxsYWJsZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzSGVicmV3PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNIaWdoU3Vycm9nYXRlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNIaXJhZ2FuYTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNJUEFFeHRlbnNpb25zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0thbmJ1bjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNLYW5neGlSYWRpY2Fsczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNLYW5uYWRhPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0thdGFrYW5hPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0tobWVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0xhbzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRBPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0xhdGluRXh0ZW5kZWRCPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0xvd1N1cnJvZ2F0ZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzTWFsYXlhbGFtPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzTW9uZ29saWFuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc011c2ljYWxTeW1ib2xzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc015YW5tYXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzTnVtYmVyRm9ybXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzT2doYW08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzT2xkSXRhbGljPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNPcml5YTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNQcml2YXRlVXNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1J1bmljPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1NpbmhhbGE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzU21hbGxGb3JtVmFyaWFudHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVyczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNTcGVjaWFsczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1N5cmlhYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNUYWdzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1RhbWlsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1RlbHVndTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNUaGFhbmE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzVGhhaTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNUaWJldGFuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzWWlSYWRpY2Fsczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNZaVN5bGxhYmxlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idXJpIj54bWxCdWlsZFVSSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idXJpIj54bWxDcmVhdGVVUkk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InVyaSI+eG1sRnJlZVVSSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idXJpIj54bWxOb3JtYWxpemVVUklQYXRoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ1cmkiPnhtbFBhcnNlVVJJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ1cmkiPnhtbFBhcnNlVVJJUmVmZXJlbmNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ1cmkiPnhtbFByaW50VVJJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ1cmkiPnhtbFNhdmVVcmk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InVyaSI+eG1sVVJJRXNjYXBlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ1cmkiPnhtbFVSSUVzY2FwZVN0cjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idXJpIj54bWxVUklVbmVzY2FwZVN0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW5jb2RpbmciPlVURjhUb2lzb2xhdDE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVuY29kaW5nIj5pc29sYXQxVG9VVEY4PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbmNvZGluZyI+eG1sQWRkRW5jb2RpbmdBbGlhczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW5jb2RpbmciPnhtbENoYXJFbmNDbG9zZUZ1bmM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVuY29kaW5nIj54bWxDaGFyRW5jRmlyc3RMaW5lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbmNvZGluZyI+eG1sQ2hhckVuY0luRnVuYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW5jb2RpbmciPnhtbENoYXJFbmNPdXRGdW5jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbENoZWNrVVRGODwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW5jb2RpbmciPnhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVyczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW5jb2RpbmciPnhtbENsZWFudXBFbmNvZGluZ0FsaWFzZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVuY29kaW5nIj54bWxEZWxFbmNvZGluZ0FsaWFzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbmNvZGluZyI+eG1sRGV0ZWN0Q2hhckVuY29kaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbmNvZGluZyI+eG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVuY29kaW5nIj54bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbmNvZGluZyI+eG1sR2V0Q2hhckVuY29kaW5nTmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW5jb2RpbmciPnhtbEdldEVuY29kaW5nQWxpYXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sR2V0VVRGOENoYXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVuY29kaW5nIj54bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVuY29kaW5nIj54bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJlbmNvZGluZyI+eG1sUGFyc2VDaGFyRW5jb2Rpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImVuY29kaW5nIj54bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sVVRGOFN0cmxlbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxVVEY4U3RybG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFVURjhTdHJuZHVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFVURjhTdHJwb3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sVVRGOFN0cnNpemU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sVVRGOFN0cnN1Yjwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNS4wIj4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyQ2xvc2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckN1cnJlbnREb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckN1cnJlbnROb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyUmVhZFN0YXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJSZWFkU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVQb3BFbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sVmFsaWRhdGVQdXNoQ0RhdGE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InZhbGlkIj54bWxWYWxpZGF0ZVB1c2hFbGVtZW50PC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi41LjIiPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sR2V0Tm9Oc1Byb3A8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxBdHRyQWxsb3dlZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbEVsZW1lbnRBbGxvd2VkSGVyZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbEVsZW1lbnRTdGF0dXNIZXJlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sTm9kZVN0YXR1czwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR0NsZWFudXBUeXBlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR0R1bXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR0ZyZWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJyZWxheG5nIj54bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR05ld1BhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdOZXdWYWxpZEN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdQYXJzZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR1NldFBhcnNlckVycm9yczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJyZWxheG5nIj54bWxSZWxheE5HVmFsaWRhdGVEb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIHJlbW92ZWQ9IjIuNS41IiBmaWxlPSJyZWxheG5nIj54bWxSZWxheE5HVmFsaWRhdGVTdHJlYW08L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjUuNCI+CisgICAgPHN5bWJvbCBmaWxlPSJ1cmkiPnhtbENhbm9uaWNQYXRoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJyZWxheG5nIj54bWxSZWxheE5HRHVtcFRyZWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFZhbGlkYXRlTmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sVmFsaWRhdGVOQ05hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbFZhbGlkYXRlTk1Ub2tlbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sVmFsaWRhdGVRTmFtZTwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNS41Ij4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9mdHAiPnhtbE5hbm9GVFBEZWxlPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi41LjYiPgorICAgIDxzeW1ib2wgZmlsZT0ieHBhdGgiPnhtbFhQYXRoT3JkZXJEb2NFbGVtczwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNS43Ij4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxhdXRvbWF0YSI+eG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sQnVpbGRRTmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxHY01lbUdldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxHY01lbVNldHVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxNYWxsb2NBdG9taWM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sUmVnRXhlY1B1c2hTdHJpbmcyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJyZWxheG5nIj54bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckV4cGFuZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVySXNWYWxpZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTmV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi41LjgiPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sQ2xlYW51cEdsb2JhbHM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbEluaXRHbG9iYWxzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sRnJlZVZhbGlkQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idmFsaWQiPnhtbE5ld1ZhbGlkQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ic2NoZW1hc0ludGVybmFscyI+eG1sU2NoZW1hRnJlZVR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYUR1bXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFGcmVlVmFsaWRDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFGcmVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFOZXdQYXJzZXJDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFOZXdWYWxpZEN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYVBhcnNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFWYWxpZGF0ZURvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hcyI+eG1sU2NoZW1hVmFsaWRhdGVTdHJlYW08L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hQ2hlY2tGYWNldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFDbGVhbnVwVHlwZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hQ29tcGFyZVZhbHVlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFGcmVlRmFjZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hRnJlZVZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYUluaXRUeXBlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFOZXdGYWNldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFWYWxpZGF0ZUZhY2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sVGhyRGVmRGVyZWdpc3Rlck5vZGVEZWZhdWx0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sVGhyRGVmTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sVGhyRGVmUGFyc2VyRGVidWdFbnRpdGllczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFRockRlZlNhdmVOb0VtcHR5VGFnczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sVGhyRGVmU2V0R2VuZXJpY0Vycm9yRnVuYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi41LjkiPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNYWxsb2NBdG9taWNMb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdHZXRWYWxpZEVycm9yczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sU3BsaXRRTmFtZTM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sVVRGOENoYXJjbXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sVVRGOFNpemU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhpbmNsdWRlIj54bWxYSW5jbHVkZVByb2Nlc3NUcmVlPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi42LjAiPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkF0dHJpYnV0ZURlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJDRGF0YUJsb2NrPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgyQ2hhcmFjdGVyczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkNvbW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJFbGVtZW50RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkVuZERvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgyRW5kRWxlbWVudE5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgyRW5kRWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkVudGl0eURlY2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJFeHRlcm5hbFN1YnNldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkdldENvbHVtbk51bWJlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkdldEVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkdldExpbmVOdW1iZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJHZXRQdWJsaWNJZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkdldFN5c3RlbUlkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMkludGVybmFsU3Vic2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgySXNTdGFuZGFsb25lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgyTm90YXRpb25EZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgyUmVmZXJlbmNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJTQVgyIj54bWxTQVgyUmVzb2x2ZUVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMlNldERvY3VtZW50TG9jYXRvcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMlN0YXJ0RG9jdW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWDJTdGFydEVsZW1lbnROczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMlN0YXJ0RWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iU0FYMiI+eG1sU0FYRGVmYXVsdFZlcnNpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IlNBWDIiPnhtbFNBWFZlcnNpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxDdHh0UmVhZERvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbEN0eHRSZWFkRmQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxDdHh0UmVhZEZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxDdHh0UmVhZElPPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJIVE1McGFyc2VyIj5odG1sQ3R4dFJlYWRNZW1vcnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxDdHh0UmVzZXQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxDdHh0VXNlT3B0aW9uczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbFJlYWREb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxSZWFkRmQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUxwYXJzZXIiPmh0bWxSZWFkRmlsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbFJlYWRJTzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbFJlYWRNZW1vcnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2h2YWxpZCI+eG1sQ2hhckluUmFuZ2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbElPIj54bWxDaGVja0hUVFBJbnB1dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sZXJyb3IiPnhtbENvcHlFcnJvcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sZXJyb3IiPnhtbEN0eHRHZXRMYXN0RXJyb3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGVycm9yIj54bWxHZXRMYXN0RXJyb3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGVycm9yIj54bWxSZXNldEVycm9yPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxlcnJvciI+eG1sUmVzZXRMYXN0RXJyb3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGVycm9yIj54bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbEN0eHRSZWFkRG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbEN0eHRSZWFkRmQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sQ3R4dFJlYWRGaWxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbEN0eHRSZWFkSU88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sQ3R4dFJlYWRNZW1vcnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGVycm9yIj54bWxDdHh0UmVzZXRMYXN0RXJyb3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sQ3R4dFJlc2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbEN0eHRVc2VPcHRpb25zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFJlYWREb2M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhcnNlciI+eG1sUmVhZEZkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFJlYWRGaWxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFJlYWRJTzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxSZWFkTWVtb3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFN0clByaW50Zjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc3RyaW5nIj54bWxTdHJRRXF1YWw8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRpY3QiPnhtbERpY3RDcmVhdGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRpY3QiPnhtbERpY3RGcmVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkaWN0Ij54bWxEaWN0TG9va3VwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJkaWN0Ij54bWxEaWN0T3duczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGljdCI+eG1sRGljdFFMb29rdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRpY3QiPnhtbERpY3RSZWZlcmVuY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRpY3QiPnhtbERpY3RTaXplPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbEVyck1lbW9yeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxQYXJzZXJNYXhEZXB0aDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VySW50ZXJuYWxzIj54bWxTd2l0Y2hJbnB1dEVuY29kaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbEZyZWVUZXh0V3JpdGVyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyTWVtb3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbE5ld1RleHRXcml0ZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyRW5kQ0RBVEE8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlckVuZERvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJFbmREVEQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlckVuZEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlckVuZFBJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJGbHVzaDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJTdGFydENEQVRBPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlclN0YXJ0RFREPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJTdGFydFBJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlQmluSGV4PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUNEQVRBPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVEVEQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZVBJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVSYXc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q29tbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imhhc2giPnhtbEhhc2hRTG9va3VwMjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iaGFzaCI+eG1sSGFzaFFMb29rdXAzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJoYXNoIj54bWxIYXNoUUxvb2t1cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2h2YWxpZCI+eG1sSXNCYXNlQ2hhckdyb3VwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjaHZhbGlkIj54bWxJc0NoYXJHcm91cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2h2YWxpZCI+eG1sSXNDb21iaW5pbmdHcm91cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2h2YWxpZCI+eG1sSXNEaWdpdEdyb3VwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJjaHZhbGlkIj54bWxJc0V4dGVuZGVyR3JvdXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImNodmFsaWQiPnhtbElzSWRlb2dyYXBoaWNHcm91cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iY2h2YWxpZCI+eG1sSXNQdWJpZENoYXJfdGFiPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxMYXN0RXJyb3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Im5hbm9odHRwIj54bWxOYW5vSFRUUEVuY29kaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vaHR0cCI+eG1sTmFub0hUVFBNaW1lVHlwZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ibmFub2h0dHAiPnhtbE5hbm9IVFRQUmVkaXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5vZGVCdWZHZXRDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sUmVhZGVyRm9yRG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFJlYWRlckZvckZkPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFJlYWRlckZvckZpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sUmVhZGVyRm9ySU88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sUmVhZGVyRm9yTWVtb3J5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFJlYWRlck5ld0RvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxSZWFkZXJOZXdGZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxSZWFkZXJOZXdGaWxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFJlYWRlck5ld0lPPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFJlYWRlck5ld01lbW9yeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxSZWFkZXJOZXdXYWxrZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sUmVhZGVyV2Fsa2VyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyQ29uc3ROYW1lPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJDb25zdFByZWZpeDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckNvbnN0VmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlclByZXNlcnZlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxTdHJ1Y3R1cmVkRXJyb3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhwYXRoSW50ZXJuYWxzIj54bWxYUGF0aEVycjwvc3ltYm9sPgorICAgIDxzeW1ib2wgcmVtb3ZlZD0iMi42LjEwIiBmaWxlPSJTQVgyIj54bWxTQVgyQ2hlY2tOYW1lc3BhY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIHJlbW92ZWQ9IjIuNi4xMCIgZmlsZT0iU0FYMiI+eG1sU0FYMkdldE5hbWVzcGFjZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgcmVtb3ZlZD0iMi42LjEwIiBmaWxlPSJTQVgyIj54bWxTQVgyR2xvYmFsTmFtZXNwYWNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCByZW1vdmVkPSIyLjYuMTAiIGZpbGU9IlNBWDIiPnhtbFNBWDJOYW1lc3BhY2VEZWNsPC9zeW1ib2w+CisgICAgPHN5bWJvbCByZW1vdmVkPSIyLjYuMTAiIGZpbGU9IlNBWDIiPnhtbFNBWDJTZXROYW1lc3BhY2U8L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjYuMSI+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbEN0eHRSZXNldFB1c2g8L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjYuMiI+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXJJbnRlcm5hbHMiPnhtbENyZWF0ZVVSTFBhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHN0cmluZyI+eG1sU3RyVlByaW50Zjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieGluY2x1ZGUiPnhtbFhJbmNsdWRlRnJlZUNvbnRleHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhpbmNsdWRlIj54bWxYSW5jbHVkZU5ld0NvbnRleHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhpbmNsdWRlIj54bWxYSW5jbHVkZVByb2Nlc3NOb2RlPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi42LjMiPgorICAgIDxzeW1ib2wgZmlsZT0icGF0dGVybiI+eG1sRnJlZVBhdHRlcm5MaXN0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXR0ZXJuIj54bWxGcmVlUGF0dGVybjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGF0dGVybiI+eG1sUGF0dGVybmNvbXBpbGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhdHRlcm4iPnhtbFBhdHRlcm5NYXRjaDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxOZXdUZXh0V3JpdGVyRG9jPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbE5ld1RleHRXcml0ZXJUcmVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzQWVnZWFuTnVtYmVyczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNCdWhpZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNHcmVla2FuZENvcHRpYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNIYW51bm9vPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0tobWVyU3ltYm9sczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNMaW1idTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnk8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93czwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNPc21hbnlhPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9uczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNQcml2YXRlVXNlQXJlYTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNTaGF2aWFuPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0E8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sdW5pY29kZSI+eG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1RhZ2Fsb2c8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzVGFnYmFud2E8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzVGFpTGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1VnYXJpdGljPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHVuaWNvZGUiPnhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx1bmljb2RlIj54bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9sczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieGluY2x1ZGUiPnhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4aW5jbHVkZSI+eG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4aW5jbHVkZSI+eG1sWEluY2x1ZGVTZXRGbGFnczwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi41Ij4KKyAgICA8c3ltYm9sIGZpbGU9InhtbG1lbW9yeSI+eG1sQ2xlYW51cE1lbW9yeTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZGljdCI+eG1sRGljdENyZWF0ZVN1Yjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhQYXJzZXJTZXRGbGFnPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzdHJpbmciPnhtbFN0cm5jYXROZXc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyU2V0SW5kZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDdHh0Q29tcGlsZTwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi42Ij4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbEJ5dGVDb25zdW1lZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcjwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi43Ij4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlckVuZENvbW1lbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHdyaXRlciI+eG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudDwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi44Ij4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNhdmUiPnhtbFNhdmVDbG9zZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2F2ZSI+eG1sU2F2ZURvYzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2F2ZSI+eG1sU2F2ZUZsdXNoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzYXZlIj54bWxTYXZlVG9GZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2F2ZSI+eG1sU2F2ZVRvRmlsZW5hbWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNhdmUiPnhtbFNhdmVUb0lPPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzYXZlIj54bWxTYXZlVHJlZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sd3JpdGVyIj54bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWx3cml0ZXIiPnhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM8L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjYuMTAiPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxJTyI+eG1sUG9wSW5wdXRDYWxsYmFja3M8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNhdmUiPnhtbFNhdmVTZXRBdHRyRXNjYXBlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzYXZlIj54bWxTYXZlU2V0RXNjYXBlPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi42LjExIj4KKyAgICA8c3ltYm9sIGZpbGU9InVyaSI+eG1sQnVpbGRSZWxhdGl2ZVVSSTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJnbG9iYWxzIj54bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9Imdsb2JhbHMiPnhtbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJzY2hlbWFzSW50ZXJuYWxzIj54bWxTY2hlbWFGcmVlV2lsZGNhcmQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hQ29sbGFwc2VTdHJpbmc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hR2V0QnVpbHRJblR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldDwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4xMiI+CisgICAgPHN5bWJvbCBmaWxlPSJwYXJzZXIiPnhtbFBhcnNlSW5Ob2RlQ29udGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYUdldFZhbGlkRXJyb3JzPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi42LjE0Ij4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxhdXRvbWF0YSI+eG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJuYW5vaHR0cCI+eG1sTmFub0hUVFBDb250ZW50TGVuZ3RoPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzIj54bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hcyI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9uczwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4xNSI+CisgICAgPHN5bWJvbCBmaWxlPSJkZWJ1Z1hNTCI+eG1sRGVidWdDaGVja0RvY3VtZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxEb2NDb3B5Tm9kZUxpc3Q8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbE5ld0RvY1BJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb248L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyU3RhbmRhbG9uZTwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4xNiI+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxtZW1vcnkiPnhtbE1lbUJsb2Nrczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icmVsYXhuZyI+eG1sUmVsYXhOR0luaXRUeXBlczwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4xNyI+CisgICAgPHN5bWJvbCBmaWxlPSJkaWN0Ij54bWxEaWN0RXhpc3RzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxtb2R1bGUiPnhtbE1vZHVsZUNsb3NlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxtb2R1bGUiPnhtbE1vZHVsZUZyZWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbG1vZHVsZSI+eG1sTW9kdWxlT3Blbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbW9kdWxlIj54bWxNb2R1bGVTeW1ib2w8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sUmVnRXhlY0VyckluZm88L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sUmVnRXhlY05leHRWYWx1ZXM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcjwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4xOCI+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sQ29weURvY0VsZW1lbnRDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sRnJlZURvY0VsZW1lbnRDb250ZW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ2YWxpZCI+eG1sTmV3RG9jRWxlbWVudENvbnRlbnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9ImRpY3QiPnhtbERpY3RDbGVhbnVwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJoYXNoIj54bWxIYXNoQ3JlYXRlRGljdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGF0dGVybiI+eG1sRnJlZVN0cmVhbUN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhdHRlcm4iPnhtbFBhdHRlcm5Gcm9tUm9vdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGF0dGVybiI+eG1sUGF0dGVybkdldFN0cmVhbUN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhdHRlcm4iPnhtbFBhdHRlcm5NYXhEZXB0aDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGF0dGVybiI+eG1sUGF0dGVyblN0cmVhbWFibGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhdHRlcm4iPnhtbFN0cmVhbVBvcDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGF0dGVybiI+eG1sU3RyZWFtUHVzaEF0dHI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhdHRlcm4iPnhtbFN0cmVhbVB1c2g8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYUNvcHlWYWx1ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFHZXRDYW5vblZhbHVlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZDwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4xOSI+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYUdldFZhbFR5cGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4yMCI+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxET01XcmFwQWRvcHROb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxET01XcmFwRnJlZUN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbERPTVdyYXBOZXdDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sRE9NV3JhcFJlbW92ZU5vZGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxzY2hlbWFzdHlwZXMiPnhtbFNjaGVtYU5ld1FOYW1lVmFsdWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hVmFsdWVBcHBlbmQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW48L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXN0eXBlcyI+eG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hc3R5cGVzIj54bWxTY2hlbWFWYWx1ZUdldE5leHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYUlzVmFsaWQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYVNBWFBsdWc8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYVNBWFVucGx1Zzwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hcyI+eG1sU2NoZW1hVmFsaWRhdGVGaWxlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWFkZXIiPnhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyU2V0U2NoZW1hPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi42LjIxIj4KKyAgICA8c3ltYm9sIGZpbGU9InhtbGF1dG9tYXRhIj54bWxBdXRvbWF0YU5ld05lZ1RyYW5zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPmVtcHR5RXhwPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPmZvcmJpZGRlbkV4cDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVnZXhwIj54bWxFeHBDdHh0TmJDb25zPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbEV4cEN0eHROYk5vZGVzPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbEV4cER1bXA8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwRXhwRGVyaXZlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbEV4cEZyZWVDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbEV4cEZyZWU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwR2V0TGFuZ3VhZ2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwR2V0U3RhcnQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwSXNOaWxsYWJsZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVnZXhwIj54bWxFeHBNYXhUb2tlbjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVnZXhwIj54bWxFeHBOZXdBdG9tPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbEV4cE5ld0N0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwTmV3T3I8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwTmV3UmFuZ2U8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwTmV3U2VxPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbEV4cFBhcnNlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4bWxyZWdleHAiPnhtbEV4cFJlZjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVnZXhwIj54bWxFeHBTdHJpbmdEZXJpdmU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlZ2V4cCI+eG1sRXhwU3Vic3VtZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0icGFyc2VyIj54bWxIYXNGZWF0dXJlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ1cmkiPnhtbFBhcnNlVVJJUmF3PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXR0ZXJuIj54bWxQYXR0ZXJuTWluRGVwdGg8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InJlbGF4bmciPnhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9yczwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ic2NoZW1hdHJvbiI+eG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJzY2hlbWF0cm9uIj54bWxTY2hlbWF0cm9uRnJlZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ic2NoZW1hdHJvbiI+eG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InNjaGVtYXRyb24iPnhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJzY2hlbWF0cm9uIj54bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ic2NoZW1hdHJvbiI+eG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InNjaGVtYXRyb24iPnhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InNjaGVtYXRyb24iPnhtbFNjaGVtYXRyb25QYXJzZTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ic2NoZW1hdHJvbiI+eG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi42LjIzIj4KKyAgICA8c3ltYm9sIGZpbGU9IkhUTUx0cmVlIj5odG1sRG9jRHVtcE1lbW9yeUZvcm1hdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sSU8iPnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcjwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2F2ZSIgY29tbWVudD0ic3VwcHJlc3NlZCBpbiAyLjYuMTEsIHJlYWRkZWQgaW4gMi42LjIzIj54bWxTYXZlVG9CdWZmZXI8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHNjaGVtYXMiPnhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InBhdHRlcm4iPnhtbFN0cmVhbVB1c2hOb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJwYXR0ZXJuIj54bWxTdHJlYW1XYW50c0FueU5vZGU8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InhtbHJlYWRlciI+eG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4yNCI+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxET01XcmFwQ2xvbmVOb2RlPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJyZWxheG5nIj54bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yczwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4yNSI+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU8L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjYuMjciPgorICAgIDxzeW1ib2wgZmlsZT0iSFRNTHBhcnNlciI+aHRtbE5ld1BhcnNlckN0eHQ8L3N5bWJvbD4KKyAgICA8c3ltYm9sIGZpbGU9InVyaSI+eG1sUGF0aFRvVVJJPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4aW5jbHVkZSI+eG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ4cGF0aCI+eG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW48L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjYuMjgiPgorICAgIDxzeW1ib2wgZmlsZT0ieG1scmVhZGVyIj54bWxUZXh0UmVhZGVyU2V0dXA8L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorICA8cmVsZWFzZSB2ZXJzaW9uPSIyLjYuMjkiPgorICAgIDxzeW1ib2wgZmlsZT0idGhyZWFkcyI+eG1sRGxsTWFpbjwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNi4zMiI+CisgICAgPHN5bWJvbCBmaWxlPSJzY2hlbWF0cm9uIj54bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi43LjAiPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sbWVtb3J5Ij54bWxNZW1EaXNwbGF5TGFzdDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0iZW50aXRpZXMiPnhtbE5ld0VudGl0eTwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieG1sc2NoZW1hcyI+eG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dDwvc3ltYm9sPgorICA8L3JlbGVhc2U+CisgIDxyZWxlYXNlIHZlcnNpb249IjIuNy4zIj4KKyAgICA8c3ltYm9sIGZpbGU9InRyZWUiPnhtbENoaWxkRWxlbWVudENvdW50PC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxGaXJzdEVsZW1lbnRDaGlsZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTGFzdEVsZW1lbnRDaGlsZDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0idHJlZSI+eG1sTmV4dEVsZW1lbnRTaWJsaW5nPC9zeW1ib2w+CisgICAgPHN5bWJvbCBmaWxlPSJ0cmVlIj54bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nPC9zeW1ib2w+CisgIDwvcmVsZWFzZT4KKyAgPHJlbGVhc2UgdmVyc2lvbj0iMi43LjQiPgorICAgIDxzeW1ib2wgZmlsZT0iZ2xvYmFscyI+eG1sU3RydWN0dXJlZEVycm9yQ29udGV4dDwvc3ltYm9sPgorICAgIDxzeW1ib2wgZmlsZT0ieGluY2x1ZGUiPnhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGE8L3N5bWJvbD4KKyAgPC9yZWxlYXNlPgorPC9zeW1ib2xzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2Mvc3ltcy54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy9zeW1zLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmNhODhmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2Mvc3ltcy54c2wKQEAgLTAsMCArMSw5OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCisgICAgICAgICAgICAgICAgdmVyc2lvbj0iMS4wIj4KKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ0ZXh0IiBlbmNvZGluZz0iVVRGLTgiLz4KKworICA8eHNsOnZhcmlhYmxlIG5hbWU9ImFwaSIgc2VsZWN0PSJkb2N1bWVudCgnbGlieG1sMi1hcGkueG1sJykiLz4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4KKyAgICA8eHNsOnRleHQ+IworIyBPZmZpY2lhbGx5IGV4cG9ydGVkIHN5bWJvbHMsIGZvciB3aGljaCBoZWFkZXIKKyMgZmlsZSBkZWZpbml0aW9ucyBhcmUgaW5zdGFsbGVkIGluIC91c3IvaW5jbHVkZS9saWJ4bWwyCisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gc3ltYm9scy54bWwgYW5kIHN5bXMueHNsCisjCisjIFZlcnNpb25zIGhlcmUgYXJlICpmaXhlZCogdG8gbWF0Y2ggdGhlIGxpYnhtbDIgdmVyc2lvbgorIyBhdCB3aGljaCB0aGUgc3ltYm9sIHdhcyBpbnRyb2R1Y2VkLiBUaGlzIGVuc3VyZXMgdGhhdAorIyBhIG5ldyBjbGllbnQgYXBwIHJlcXVpcmluZyBzeW1ib2wgZm9vKCkgY2FuJ3QgYWNjaWRlbnRhbGx5CisjIHJ1biB3aXRoIG9sZCBsaWJ4bWwyLnNvIG5vdCBwcm92aWRpbmcgZm9vKCkgLSB0aGUgZ2xvYmFsCisjIHNvbmFtZSB2ZXJzaW9uIGluZm8gY2FuJ3QgZW5mb3JjZSB0aGlzIHNpbmNlIHdlIG5ldmVyCisjIGNoYW5nZSB0aGUgc29uYW1lCisjCisKKzwveHNsOnRleHQ+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIvc3ltYm9scy9yZWxlYXNlIi8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InJlbGVhc2UiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icHJldiIKKyAgICAgICAgICAgICAgICAgIHNlbGVjdD0icHJlY2VkaW5nLXNpYmxpbmc6OnJlbGVhc2VbcG9zaXRpb24oKT0xXSIvPgorICAgIDx4c2w6dGV4dD5MSUJYTUwyXzwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN0cmluZyhAdmVyc2lvbikiLz4KKyAgICA8eHNsOnRleHQ+IHsKKyAgICBnbG9iYWw6Cis8L3hzbDp0ZXh0PgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJzeW1ib2wiPgorICAgICAgPHhzbDppZiB0ZXN0PSJzdHJpbmcocHJlY2VkaW5nLXNpYmxpbmc6OnN5bWJvbFtwb3NpdGlvbigpPTFdL0BmaWxlKSAhPSBzdHJpbmcoQGZpbGUpIj4KKyAgICAgICAgPHhzbDp0ZXh0PgorIyA8L3hzbDp0ZXh0PgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGZpbGUiLz4KKyAgICAgICAgPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorCisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iLz4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKworICAgIDx4c2w6dGV4dD59IDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSIkcHJldiI+CisgICAgICA8eHNsOnRleHQ+TElCWE1MMl88L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRwcmV2L0B2ZXJzaW9uIi8+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDp0ZXh0PjsKKworPC94c2w6dGV4dD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ic3ltYm9sIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKC4pIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaWxlIiBzZWxlY3Q9InN0cmluZyhAZmlsZSkiLz4KKyAgICA8eHNsOmNob29zZT4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSJAcmVtb3ZlZCI+CisgICAgICAgIDx4c2w6dGV4dD4jIDwveHNsOnRleHQ+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPgorICAgICAgICA8eHNsOnRleHQ+OyByZW1vdmVkIGluIDwveHNsOnRleHQ+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAcmVtb3ZlZCIvPgorICAgICAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6b3RoZXJ3aXNlPgorICAgICAgICA8IS0tIG1ha2Ugc3VyZSB3ZSBjYW4gZmluZCB0aGF0IHN5bWJvbCBleHBvcnRlZCBmcm9tIHRoZSBBUEkgbGlzdCAtLT4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJkZWYiCisgICAgICAgICAgICBzZWxlY3Q9IiRhcGkvYXBpL2ZpbGVzL2ZpbGVbQG5hbWUgPSAkZmlsZV0vZXhwb3J0c1tAc3ltYm9sID0gJG5hbWVdIi8+CisgICAgICAgIDx4c2w6aWYgdGVzdD0ic3RyaW5nKCRkZWYvQHN5bWJvbCkgIT0gJG5hbWUiPgorICAgICAgICAgIDx4c2w6bWVzc2FnZSB0ZXJtaW5hdGU9InllcyI+CisgICAgICAgICAgICA8eHNsOnRleHQ+RmFpbGVkIHRvIGZpbmQgZGVmaW5pdGlvbiBpbiBsaWJ4bWwyLWFwaS54bWw6PC94c2w6dGV4dD4KKyAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPgorICAgICAgICAgIDwveHNsOm1lc3NhZ2U+CisgICAgICAgIDwveHNsOmlmPgorCisgICAgICAgIDx4c2w6dGV4dD4gIDwveHNsOnRleHQ+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPgorICAgICAgICA8eHNsOnRleHQ+OzwveHNsOnRleHQ+CisgICAgICAgIDx4c2w6aWYgdGVzdD0iJGRlZi9AdHlwZSA9ICd2YXJpYWJsZSciPgorICAgICAgICAgIDx4c2w6dGV4dD4gIyB2YXJpYWJsZTwveHNsOnRleHQ+CisgICAgICAgIDwveHNsOmlmPgorICAgICAgICA8eHNsOmlmIHRlc3Q9IkBjb21tZW50Ij4KKyAgICAgICAgICA8eHNsOnRleHQ+IyA8L3hzbDp0ZXh0PgorICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAY29tbWVudCIvPgorICAgICAgICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgICAgIDwveHNsOmlmPgorICAgICAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6b3RoZXJ3aXNlPgorICAgIDwveHNsOmNob29zZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKzwveHNsOnN0eWxlc2hlZXQ+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3RocmVhZHMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3RocmVhZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTU4ZDFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdGhyZWFkcy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+VGhyZWFkIHNhZmV0eTwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+VGhyZWFkIHNhZmV0eTwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPlN0YXJ0aW5nIHdpdGggMi40LjcsIGxpYnhtbDIgbWFrZXMgcHJvdmlzaW9ucyB0byBlbnN1cmUgdGhhdCBjb25jdXJyZW50Cit0aHJlYWRzIGNhbiBzYWZlbHkgd29yayBpbiBwYXJhbGxlbCBwYXJzaW5nIGRpZmZlcmVudCBkb2N1bWVudHMuIFRoZXJlIGlzCitob3dldmVyIGEgY291cGxlIG9mIHRoaW5ncyB0byBkbyB0byBlbnN1cmUgaXQ6PC9wPjx1bD48bGk+Y29uZmlndXJlIHRoZSBsaWJyYXJ5IGFjY29yZGluZ2x5IHVzaW5nIHRoZSAtLXdpdGgtdGhyZWFkcyBvcHRpb25zPC9saT4KKyAgPGxpPmNhbGwgeG1sSW5pdFBhcnNlcigpIGluIHRoZSAibWFpbiIgdGhyZWFkIGJlZm9yZSB1c2luZyBhbnkgb2YgdGhlCisgICAgbGlieG1sMiBBUEkgKGV4Y2VwdCBwb3NzaWJseSBzZWxlY3RpbmcgYSBkaWZmZXJlbnQgbWVtb3J5IGFsbG9jYXRvcik8L2xpPgorPC91bD48cD5Ob3RlIHRoYXQgdGhlIHRocmVhZCBzYWZldHkgY2Fubm90IGJlIGVuc3VyZWQgZm9yIG11bHRpcGxlIHRocmVhZHMgc2hhcmluZwordGhlIHNhbWUgZG9jdW1lbnQsIHRoZSBsb2NraW5nIG11c3QgYmUgZG9uZSBhdCB0aGUgYXBwbGljYXRpb24gbGV2ZWwsIGxpYnhtbAorZXhwb3J0cyBhIGJhc2ljIG11dGV4IGFuZCByZWVudHJhbnQgbXV0ZXhlcyBBUEkgaW4gJmx0O2xpYnhtbC90aHJlYWRzLmgmZ3Q7LgorVGhlIHBhcnRzIG9mIHRoZSBsaWJyYXJ5IGNoZWNrZWQgZm9yIHRocmVhZCBzYWZldHkgYXJlOjwvcD48dWw+PGxpPmNvbmN1cnJlbnQgbG9hZGluZzwvbGk+CisgIDxsaT5maWxlIGFjY2VzcyByZXNvbHV0aW9uPC9saT4KKyAgPGxpPmNhdGFsb2cgYWNjZXNzPC9saT4KKyAgPGxpPmNhdGFsb2cgYnVpbGRpbmc8L2xpPgorICA8bGk+ZW50aXRpZXMgbG9va3VwL2FjY2Vzc2VzPC9saT4KKyAgPGxpPnZhbGlkYXRpb248L2xpPgorICA8bGk+Z2xvYmFsIHZhcmlhYmxlcyBwZXItdGhyZWFkIG92ZXJyaWRlPC9saT4KKyAgPGxpPm1lbW9yeSBoYW5kbGluZzwvbGk+Cis8L3VsPjxwPlhQYXRoIGlzIHN1cHBvc2VkIHRvIGJlIHRocmVhZCBzYWZlIG5vdywgYnV0IHRoaXMgd2Fzbid0IHRlc3RlZAorc2VyaW91c2x5LjwvcD48cD48YSBocmVmPSJidWdzLmh0bWwiPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3RyZWUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3RyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTc2YWNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHJlZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+VGhlIHRyZWUgb3V0cHV0PC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5UaGUgdHJlZSBvdXRwdXQ8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+RGV2ZWxvcGVyIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PGZvcm0gYWN0aW9uPSJzZWFyY2gucGhwIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIG1ldGhvZD0iZ2V0Ij48aW5wdXQgbmFtZT0icXVlcnkiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iIiAvPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCAuLi4iIC8+PC9mb3JtPjx1bD48bGk+PGEgaHJlZj0iaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPk1haW4gTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJodG1sL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5SZWZlcmVuY2UgTWFudWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGVzL2luZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Db2RlIEV4YW1wbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIEd1aWRlbGluZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idHV0b3JpYWwvaW5kZXguaHRtbCI+VHV0b3JpYWw8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPlRoZSBSZWFkZXIgSW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkNoYW5nZUxvZy5odG1sIj5DaGFuZ2VMb2c8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InB5dGhvbi5odG1sIj5QeXRob24gYW5kIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwyIGFyY2hpdGVjdHVyZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRlcmZhY2UuaHRtbCI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sbWVtLmh0bWwiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGlvLmh0bWwiPkkvTyBJbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImVudGl0aWVzLmh0bWwiPkVudGl0aWVzIG9yIG5vIGVudGl0aWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5hbWVzcGFjZXMuaHRtbCI+TmFtZXNwYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPjxsaT48YSBocmVmPSJ0aHJlYWRzLmh0bWwiPlRocmVhZCBzYWZldHk8L2E+PC9saT48bGk+PGEgaHJlZj0iRE9NLmh0bWwiPkRPTSBQcmluY2lwbGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1sLmh0bWwiPmZsYXQgcGFnZTwvYT4sIDxhIGhyZWY9InNpdGUueHNsIj5zdHlsZXNoZWV0PC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+QVBJIEluZGV4ZXM8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJBUEljaHVuazAuaHRtbCI+QWxwaGFiZXRpYzwvYT48L2xpPjxsaT48YSBocmVmPSJBUEljb25zdHJ1Y3RvcnMuaHRtbCI+Q29uc3RydWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZ1bmN0aW9ucy5odG1sIj5GdW5jdGlvbnMvVHlwZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZmlsZXMuaHRtbCI+TW9kdWxlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElzeW1ib2xzLmh0bWwiPlN5bWJvbHM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48cD5UaGUgcGFyc2VyIHJldHVybnMgYSB0cmVlIGJ1aWx0IGR1cmluZyB0aGUgZG9jdW1lbnQgYW5hbHlzaXMuIFRoZSB2YWx1ZQorcmV0dXJuZWQgaXMgYW4gPHN0cm9uZz54bWxEb2NQdHI8L3N0cm9uZz4gKGkuZS4sIGEgcG9pbnRlciB0byBhbgorPHN0cm9uZz54bWxEb2M8L3N0cm9uZz4gc3RydWN0dXJlKS4gVGhpcyBzdHJ1Y3R1cmUgY29udGFpbnMgaW5mb3JtYXRpb24gc3VjaAorYXMgdGhlIGZpbGUgbmFtZSwgdGhlIGRvY3VtZW50IHR5cGUsIGFuZCBhIDxzdHJvbmc+Y2hpbGRyZW48L3N0cm9uZz4gcG9pbnRlcgord2hpY2ggaXMgdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50IChvciBtb3JlIGV4YWN0bHkgdGhlIGZpcnN0IGNoaWxkIHVuZGVyIHRoZQorcm9vdCB3aGljaCBpcyB0aGUgZG9jdW1lbnQpLiBUaGUgdHJlZSBpcyBtYWRlIG9mIDxzdHJvbmc+eG1sTm9kZTwvc3Ryb25nPnMsCitjaGFpbmVkIGluIGRvdWJsZS1saW5rZWQgbGlzdHMgb2Ygc2libGluZ3MgYW5kIHdpdGggYSBjaGlsZHJlbiZsdDstJmd0O3BhcmVudAorcmVsYXRpb25zaGlwLiBBbiB4bWxOb2RlIGNhbiBhbHNvIGNhcnJ5IHByb3BlcnRpZXMgKGEgY2hhaW4gb2YgeG1sQXR0cgorc3RydWN0dXJlcykuIEFuIGF0dHJpYnV0ZSBtYXkgaGF2ZSBhIHZhbHVlIHdoaWNoIGlzIGEgbGlzdCBvZiBURVhUIG9yCitFTlRJVFlfUkVGIG5vZGVzLjwvcD48cD5IZXJlIGlzIGFuIGV4YW1wbGUgKGVycm9uZW91cyB3aXRoIHJlc3BlY3QgdG8gdGhlIFhNTCBzcGVjIHNpbmNlIHRoZXJlCitzaG91bGQgYmUgb25seSBvbmUgRUxFTUVOVCB1bmRlciB0aGUgcm9vdCk6PC9wPjxwPjxpbWcgc3JjPSJzdHJ1Y3R1cmUuZ2lmIiBhbHQ9IiBzdHJ1Y3R1cmUuZ2lmICIgLz48L3A+PHA+SW4gdGhlIHNvdXJjZSBwYWNrYWdlIHRoZXJlIGlzIGEgc21hbGwgcHJvZ3JhbSAobm90IGluc3RhbGxlZCBieSBkZWZhdWx0KQorY2FsbGVkIDxzdHJvbmc+eG1sbGludDwvc3Ryb25nPiB3aGljaCBwYXJzZXMgWE1MIGZpbGVzIGdpdmVuIGFzIGFyZ3VtZW50IGFuZAorcHJpbnRzIHRoZW0gYmFjayBhcyBwYXJzZWQuIFRoaXMgaXMgdXNlZnVsIGZvciBkZXRlY3RpbmcgZXJyb3JzIGJvdGggaW4gWE1MCitjb2RlIGFuZCBpbiB0aGUgWE1MIHBhcnNlciBpdHNlbGYuIEl0IGhhcyBhbiBvcHRpb24gPHN0cm9uZz4tLWRlYnVnPC9zdHJvbmc+Cit3aGljaCBwcmludHMgdGhlIGFjdHVhbCBpbi1tZW1vcnkgc3RydWN0dXJlIG9mIHRoZSBkb2N1bWVudDsgaGVyZSBpcyB0aGUKK3Jlc3VsdCB3aXRoIHRoZSA8YSBocmVmPSIjZXhhbXBsZSI+ZXhhbXBsZTwvYT4gZ2l2ZW4gYmVmb3JlOjwvcD48cHJlPkRPQ1VNRU5UCit2ZXJzaW9uPTEuMAorc3RhbmRhbG9uZT10cnVlCisgIEVMRU1FTlQgRVhBTVBMRQorICAgIEFUVFJJQlVURSBwcm9wMQorICAgICAgVEVYVAorICAgICAgY29udGVudD1nbm9tZSBpcyBncmVhdAorICAgIEFUVFJJQlVURSBwcm9wMgorICAgICAgRU5USVRZX1JFRgorICAgICAgVEVYVAorICAgICAgY29udGVudD0gbGludXggdG9vIAorICAgIEVMRU1FTlQgaGVhZAorICAgICAgRUxFTUVOVCB0aXRsZQorICAgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9V2VsY29tZSB0byBHbm9tZQorICAgIEVMRU1FTlQgY2hhcHRlcgorICAgICAgRUxFTUVOVCB0aXRsZQorICAgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9VGhlIExpbnV4IGFkdmVudHVyZQorICAgICAgRUxFTUVOVCBwCisgICAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1ibGEgYmxhIGJsYSAuLi4KKyAgICAgIEVMRU1FTlQgaW1hZ2UKKyAgICAgICAgQVRUUklCVVRFIGhyZWYKKyAgICAgICAgICBURVhUCisgICAgICAgICAgY29udGVudD1saW51cy5naWYKKyAgICAgIEVMRU1FTlQgcAorICAgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Li4uPC9wcmU+PHA+VGhpcyBzaG91bGQgYmUgdXNlZnVsIGZvciBsZWFybmluZyB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gbW9kZWwuPC9wPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBhLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjRlMTVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBhLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+QS6gQ29tcGlsYXRpb248L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJhcjAxczA5Lmh0bWwiIHRpdGxlPSJFbmNvZGluZyBDb252ZXJzaW9uIj48bGluayByZWw9Im5leHQiIGhyZWY9ImFwYi5odG1sIiB0aXRsZT0iQi6gU2FtcGxlIERvY3VtZW50Ij48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9Im5hdmhlYWRlciI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPjx0aCBjb2xzcGFuPSIzIiBhbGlnbj0iY2VudGVyIj5BLqBDb21waWxhdGlvbjwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDkuaHRtbCI+UHJldjwvYT6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXBiLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjwvdGFibGU+PGhyPjwvZGl2PjxkaXYgY2xhc3M9ImFwcGVuZGl4IiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iY29tcGlsYXRpb24iPjwvYT5BLqBDb21waWxhdGlvbjwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD48YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJpZDI1ODc2NzAiPjwvYT4KKyAgICAgIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+TGlieG1sPC9zcGFuPiBpbmNsdWRlcyBhIHNjcmlwdCwKKyAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPnhtbDItY29uZmlnPC9zcGFuPiwgdGhhdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZQorICAgIGZsYWdzIGZvciBjb21waWxhdGlvbiBhbmQgbGlua2luZyBvZiBwcm9ncmFtcyB3cml0dGVuIHdpdGggdGhlCisgICAgICBsaWJyYXJ5LiBGb3IgcHJlLXByb2Nlc3NvciBhbmQgY29tcGlsZXIgZmxhZ3MsIHVzZSA8YiBjbGFzcz0iY29tbWFuZCI+eG1sMi1jb25maWcKKwktLWNmbGFnczwvYj4uIEZvciBsaWJyYXJ5IGxpbmtpbmcgZmxhZ3MsIHVzZSA8YiBjbGFzcz0iY29tbWFuZCI+eG1sMi1jb25maWcKKwktLWxpYnM8L2I+LiBPdGhlciBvcHRpb25zIGFyZSBhdmFpbGFibGUgdXNpbmcgPGIgY2xhc3M9ImNvbW1hbmQiPnhtbDItY29uZmlnCisgICAgLS1oZWxwPC9iPi48L3A+PC9kaXY+PGRpdiBjbGFzcz0ibmF2Zm9vdGVyIj48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcjAxczA5Lmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+VXA8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcGIuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPkVuY29kaW5nIENvbnZlcnNpb26gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBCLqBTYW1wbGUgRG9jdW1lbnQ8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBiLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjE0MDY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBiLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPkIuoFNhbXBsZSBEb2N1bWVudDwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFwYS5odG1sIiB0aXRsZT0iQS6gQ29tcGlsYXRpb24iPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iYXBjLmh0bWwiIHRpdGxlPSJDLqBDb2RlIGZvciBLZXl3b3JkIEV4YW1wbGUiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPkIuoFNhbXBsZSBEb2N1bWVudDwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwYS5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcGMuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PC90YWJsZT48aHI+PC9kaXY+PGRpdiBjbGFzcz0iYXBwZW5kaXgiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJzYW1wbGVkb2MiPjwvYT5CLqBTYW1wbGUgRG9jdW1lbnQ8L2gyPjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7c3RvcnkmZ3Q7CisgICZsdDtzdG9yeWluZm8mZ3Q7CisgICAgJmx0O2F1dGhvciZndDtKb2huIEZsZWNrJmx0Oy9hdXRob3ImZ3Q7CisgICAgJmx0O2RhdGV3cml0dGVuJmd0O0p1bmUgMiwgMjAwMiZsdDsvZGF0ZXdyaXR0ZW4mZ3Q7CisgICAgJmx0O2tleXdvcmQmZ3Q7ZXhhbXBsZSBrZXl3b3JkJmx0Oy9rZXl3b3JkJmd0OworICAmbHQ7L3N0b3J5aW5mbyZndDsKKyAgJmx0O2JvZHkmZ3Q7CisgICAgJmx0O2hlYWRsaW5lJmd0O1RoaXMgaXMgdGhlIGhlYWRsaW5lJmx0Oy9oZWFkbGluZSZndDsKKyAgICAmbHQ7cGFyYSZndDtUaGlzIGlzIHRoZSBib2R5IHRleHQuJmx0Oy9wYXJhJmd0OworICAmbHQ7L2JvZHkmZ3Q7CismbHQ7L3N0b3J5Jmd0OworPC9wcmU+PC9kaXY+PGRpdiBjbGFzcz0ibmF2Zm9vdGVyIj48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcGEuaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFwYy5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+QS6gQ29tcGlsYXRpb26gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBDLqBDb2RlIGZvciBLZXl3b3JkIEV4YW1wbGU8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBjLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGQ5OTExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBjLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPkMuoENvZGUgZm9yIEtleXdvcmQgRXhhbXBsZTwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFwYi5odG1sIiB0aXRsZT0iQi6gU2FtcGxlIERvY3VtZW50Ij48bGluayByZWw9Im5leHQiIGhyZWY9ImFwZC5odG1sIiB0aXRsZT0iRC6gQ29kZSBmb3IgWFBhdGggRXhhbXBsZSI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJuYXZoZWFkZXIiPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj48dGggY29sc3Bhbj0iMyIgYWxpZ249ImNlbnRlciI+Qy6gQ29kZSBmb3IgS2V5d29yZCBFeGFtcGxlPC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXBiLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRoIHdpZHRoPSI2MCUiIGFsaWduPSJjZW50ZXIiPqA8L3RoPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFwZC5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJhcHBlbmRpeCIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImtleXdvcmRhcHBlbmRpeCI+PC9hPkMuoENvZGUgZm9yIEtleXdvcmQgRXhhbXBsZTwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD4KKyAgICAgIDwvcD48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDsKKyNpbmNsdWRlICZsdDtzdHJpbmcuaCZndDsKKyNpbmNsdWRlICZsdDtzdGRsaWIuaCZndDsKKyNpbmNsdWRlICZsdDtsaWJ4bWwveG1sbWVtb3J5LmgmZ3Q7CisjaW5jbHVkZSAmbHQ7bGlieG1sL3BhcnNlci5oJmd0OworCit2b2lkCitwYXJzZVN0b3J5ICh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGN1cikgeworCisJeG1sQ2hhciAqa2V5OworCWN1ciA9IGN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJjbXAoY3VyLSZndDtuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSJrZXl3b3JkIikpKSB7CisJCSAgICBrZXkgPSB4bWxOb2RlTGlzdEdldFN0cmluZyhkb2MsIGN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlLCAxKTsKKwkJICAgIHByaW50Zigia2V5d29yZDogJXNcbiIsIGtleSk7CisJCSAgICB4bWxGcmVlKGtleSk7CisgCSAgICB9CisJY3VyID0gY3VyLSZndDtuZXh0OworCX0KKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkCitwYXJzZURvYyhjaGFyICpkb2NuYW1lKSB7CisKKwl4bWxEb2NQdHIgZG9jOworCXhtbE5vZGVQdHIgY3VyOworCisJZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOworCQorCWlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm47CisJfQorCQorCWN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisJCisJaWYgKGN1ciA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCJlbXB0eSBkb2N1bWVudFxuIik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuOworCX0KKwkKKwlpZiAoeG1sU3RyY21wKGN1ci0mZ3Q7bmFtZSwgKGNvbnN0IHhtbENoYXIgKikgInN0b3J5IikpIHsKKwkJZnByaW50ZihzdGRlcnIsImRvY3VtZW50IG9mIHRoZSB3cm9uZyB0eXBlLCByb290IG5vZGUgIT0gc3RvcnkiKTsKKwkJeG1sRnJlZURvYyhkb2MpOworCQlyZXR1cm47CisJfQorCQorCWN1ciA9IGN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCQlpZiAoKCF4bWxTdHJjbXAoY3VyLSZndDtuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSJzdG9yeWluZm8iKSkpeworCQkJcGFyc2VTdG9yeSAoZG9jLCBjdXIpOworCQl9CisJCSAKKwljdXIgPSBjdXItJmd0O25leHQ7CisJfQorCQorCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm47Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKworCWNoYXIgKmRvY25hbWU7CisJCQorCWlmIChhcmdjICZsdDs9IDEpIHsKKwkJcHJpbnRmKCJVc2FnZTogJXMgZG9jbmFtZVxuIiwgYXJndlswXSk7CisJCXJldHVybigwKTsKKwl9CisKKwlkb2NuYW1lID0gYXJndlsxXTsKKwlwYXJzZURvYyAoZG9jbmFtZSk7CisKKwlyZXR1cm4gKDEpOworfQorCis8L3ByZT48cD4KKyAgICA8L3A+PC9kaXY+PGRpdiBjbGFzcz0ibmF2Zm9vdGVyIj48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcGIuaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFwZC5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Qi6gU2FtcGxlIERvY3VtZW50oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gRC6gQ29kZSBmb3IgWFBhdGggRXhhbXBsZTwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGQuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmOTYxOGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGQuaHRtbApAQCAtMCwwICsxLDc2IEBACis8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+RC6gQ29kZSBmb3IgWFBhdGggRXhhbXBsZTwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFwYy5odG1sIiB0aXRsZT0iQy6gQ29kZSBmb3IgS2V5d29yZCBFeGFtcGxlIj48bGluayByZWw9Im5leHQiIGhyZWY9ImFwZS5odG1sIiB0aXRsZT0iRS6gQ29kZSBmb3IgQWRkIEtleXdvcmQgRXhhbXBsZSI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJuYXZoZWFkZXIiPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj48dGggY29sc3Bhbj0iMyIgYWxpZ249ImNlbnRlciI+RC6gQ29kZSBmb3IgWFBhdGggRXhhbXBsZTwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwYy5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcGUuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PC90YWJsZT48aHI+PC9kaXY+PGRpdiBjbGFzcz0iYXBwZW5kaXgiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJ4cGF0aGFwcGVuZGl4Ij48L2E+RC6gQ29kZSBmb3IgWFBhdGggRXhhbXBsZTwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD4KKyAgICAgIDwvcD48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisjaW5jbHVkZSAmbHQ7bGlieG1sL3BhcnNlci5oJmd0OworI2luY2x1ZGUgJmx0O2xpYnhtbC94cGF0aC5oJmd0OworCit4bWxEb2NQdHIKK2dldGRvYyAoY2hhciAqZG9jbmFtZSkgeworCXhtbERvY1B0ciBkb2M7CisJZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOworCQorCWlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gZG9jOworfQorCit4bWxYUGF0aE9iamVjdFB0cgorZ2V0bm9kZXNldCAoeG1sRG9jUHRyIGRvYywgeG1sQ2hhciAqeHBhdGgpeworCQorCXhtbFhQYXRoQ29udGV4dFB0ciBjb250ZXh0OworCXhtbFhQYXRoT2JqZWN0UHRyIHJlc3VsdDsKKworCWNvbnRleHQgPSB4bWxYUGF0aE5ld0NvbnRleHQoZG9jKTsKKwlpZiAoY29udGV4dCA9PSBOVUxMKSB7CisJCXByaW50ZigiRXJyb3IgaW4geG1sWFBhdGhOZXdDb250ZXh0XG4iKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCXJlc3VsdCA9IHhtbFhQYXRoRXZhbEV4cHJlc3Npb24oeHBhdGgsIGNvbnRleHQpOworCXhtbFhQYXRoRnJlZUNvbnRleHQoY29udGV4dCk7CisJaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisJCXByaW50ZigiRXJyb3IgaW4geG1sWFBhdGhFdmFsRXhwcmVzc2lvblxuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlpZih4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KHJlc3VsdC0mZ3Q7bm9kZXNldHZhbCkpeworCQl4bWxYUGF0aEZyZWVPYmplY3QocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBwcmludGYoIk5vIHJlc3VsdFxuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQoraW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCisJY2hhciAqZG9jbmFtZTsKKwl4bWxEb2NQdHIgZG9jOworCXhtbENoYXIgKnhwYXRoID0gKHhtbENoYXIqKSAiLy9rZXl3b3JkIjsKKwl4bWxOb2RlU2V0UHRyIG5vZGVzZXQ7CisJeG1sWFBhdGhPYmplY3RQdHIgcmVzdWx0OworCWludCBpOworCXhtbENoYXIgKmtleXdvcmQ7CisJCQorCWlmIChhcmdjICZsdDs9IDEpIHsKKwkJcHJpbnRmKCJVc2FnZTogJXMgZG9jbmFtZVxuIiwgYXJndlswXSk7CisJCXJldHVybigwKTsKKwl9CisKKwlkb2NuYW1lID0gYXJndlsxXTsKKwlkb2MgPSBnZXRkb2MoZG9jbmFtZSk7CisJcmVzdWx0ID0gZ2V0bm9kZXNldCAoZG9jLCB4cGF0aCk7CisJaWYgKHJlc3VsdCkgeworCQlub2Rlc2V0ID0gcmVzdWx0LSZndDtub2Rlc2V0dmFsOworCQlmb3IgKGk9MDsgaSAmbHQ7IG5vZGVzZXQtJmd0O25vZGVOcjsgaSsrKSB7CisJCQlrZXl3b3JkID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBub2Rlc2V0LSZndDtub2RlVGFiW2ldLSZndDt4bWxDaGlsZHJlbk5vZGUsIDEpOworCQlwcmludGYoImtleXdvcmQ6ICVzXG4iLCBrZXl3b3JkKTsKKwkJeG1sRnJlZShrZXl3b3JkKTsKKwkJfQorCQl4bWxYUGF0aEZyZWVPYmplY3QgKHJlc3VsdCk7CisJfQorCXhtbEZyZWVEb2MoZG9jKTsKKwl4bWxDbGVhbnVwUGFyc2VyKCk7CisJcmV0dXJuICgxKTsKK30KKzwvcHJlPjxwPgorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwYy5odG1sIj5QcmV2PC9hPqA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPlVwPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXBlLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5DLqBDb2RlIGZvciBLZXl3b3JkIEV4YW1wbGWgPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBFLqBDb2RlIGZvciBBZGQgS2V5d29yZCBFeGFtcGxlPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwZS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAwMzE5YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwZS5odG1sCkBAIC0wLDAgKzEsNzggQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5FLqBDb2RlIGZvciBBZGQgS2V5d29yZCBFeGFtcGxlPC90aXRsZT48bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjYxLjIiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJwcmV2aW91cyIgaHJlZj0iYXBkLmh0bWwiIHRpdGxlPSJELqBDb2RlIGZvciBYUGF0aCBFeGFtcGxlIj48bGluayByZWw9Im5leHQiIGhyZWY9ImFwZi5odG1sIiB0aXRsZT0iRi6gQ29kZSBmb3IgQWRkIEF0dHJpYnV0ZSBFeGFtcGxlIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9Im5hdmhlYWRlciI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPjx0aCBjb2xzcGFuPSIzIiBhbGlnbj0iY2VudGVyIj5FLqBDb2RlIGZvciBBZGQgS2V5d29yZCBFeGFtcGxlPC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXBkLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRoIHdpZHRoPSI2MCUiIGFsaWduPSJjZW50ZXIiPqA8L3RoPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFwZi5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJhcHBlbmRpeCIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImFkZGtleXdvcmRhcHBlbmRpeCI+PC9hPkUuoENvZGUgZm9yIEFkZCBLZXl3b3JkIEV4YW1wbGU8L2gyPjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PHA+CisgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CisjaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7CisjaW5jbHVkZSAmbHQ7c3RkbGliLmgmZ3Q7CisjaW5jbHVkZSAmbHQ7bGlieG1sL3htbG1lbW9yeS5oJmd0OworI2luY2x1ZGUgJmx0O2xpYnhtbC9wYXJzZXIuaCZndDsKKwordm9pZAorcGFyc2VTdG9yeSAoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIsIGNoYXIgKmtleXdvcmQpIHsKKworCXhtbE5ld1RleHRDaGlsZCAoY3VyLCBOVUxMLCAia2V5d29yZCIsIGtleXdvcmQpOworICAgIHJldHVybjsKK30KKworeG1sRG9jUHRyCitwYXJzZURvYyhjaGFyICpkb2NuYW1lLCBjaGFyICprZXl3b3JkKSB7CisKKwl4bWxEb2NQdHIgZG9jOworCXhtbE5vZGVQdHIgY3VyOworCisJZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOworCQorCWlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm4gKE5VTEwpOworCX0KKwkKKwljdXIgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworCQorCWlmIChjdXIgPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwiZW1wdHkgZG9jdW1lbnRcbiIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJCXJldHVybiAoTlVMTCk7CisJfQorCQorCWlmICh4bWxTdHJjbXAoY3VyLSZndDtuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAic3RvcnkiKSkgeworCQlmcHJpbnRmKHN0ZGVyciwiZG9jdW1lbnQgb2YgdGhlIHdyb25nIHR5cGUsIHJvb3Qgbm9kZSAhPSBzdG9yeSIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJCXJldHVybiAoTlVMTCk7CisJfQorCQorCWN1ciA9IGN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCQlpZiAoKCF4bWxTdHJjbXAoY3VyLSZndDtuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSJzdG9yeWluZm8iKSkpeworCQkJcGFyc2VTdG9yeSAoZG9jLCBjdXIsIGtleXdvcmQpOworCQl9CisJCSAKKwljdXIgPSBjdXItJmd0O25leHQ7CisJfQorCXJldHVybihkb2MpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisKKwljaGFyICpkb2NuYW1lOworCWNoYXIgKmtleXdvcmQ7CisJeG1sRG9jUHRyIGRvYzsKKworCWlmIChhcmdjICZsdDs9IDIpIHsKKwkJcHJpbnRmKCJVc2FnZTogJXMgZG9jbmFtZSwga2V5d29yZFxuIiwgYXJndlswXSk7CisJCXJldHVybigwKTsKKwl9CisKKwlkb2NuYW1lID0gYXJndlsxXTsKKwlrZXl3b3JkID0gYXJndlsyXTsKKwlkb2MgPSBwYXJzZURvYyAoZG9jbmFtZSwga2V5d29yZCk7CisJaWYgKGRvYyAhPSBOVUxMKSB7CisJCXhtbFNhdmVGb3JtYXRGaWxlIChkb2NuYW1lLCBkb2MsIDApOworCQl4bWxGcmVlRG9jKGRvYyk7CisJfQorCQorCXJldHVybiAoMSk7Cit9CisKKzwvcHJlPjxwPgorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwZC5odG1sIj5QcmV2PC9hPqA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPlVwPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXBmLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5ELqBDb2RlIGZvciBYUGF0aCBFeGFtcGxloDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gRi6gQ29kZSBmb3IgQWRkIEF0dHJpYnV0ZSBFeGFtcGxlPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwZi5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg0OGNkYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwZi5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5GLqBDb2RlIGZvciBBZGQgQXR0cmlidXRlIEV4YW1wbGU8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJhcGUuaHRtbCIgdGl0bGU9IkUuoENvZGUgZm9yIEFkZCBLZXl3b3JkIEV4YW1wbGUiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iYXBnLmh0bWwiIHRpdGxlPSJHLqBDb2RlIGZvciBSZXRyaWV2aW5nIEF0dHJpYnV0ZSBWYWx1ZSBFeGFtcGxlIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9Im5hdmhlYWRlciI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPjx0aCBjb2xzcGFuPSIzIiBhbGlnbj0iY2VudGVyIj5GLqBDb2RlIGZvciBBZGQgQXR0cmlidXRlIEV4YW1wbGU8L3RoPjwvdHI+PHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcGUuaHRtbCI+UHJldjwvYT6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXBnLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjwvdGFibGU+PGhyPjwvZGl2PjxkaXYgY2xhc3M9ImFwcGVuZGl4IiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iYWRkYXR0cmlidXRlYXBwZW5kaXgiPjwvYT5GLqBDb2RlIGZvciBBZGQgQXR0cmlidXRlIEV4YW1wbGU8L2gyPjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PHA+CisgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CisjaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7CisjaW5jbHVkZSAmbHQ7c3RkbGliLmgmZ3Q7CisjaW5jbHVkZSAmbHQ7bGlieG1sL3htbG1lbW9yeS5oJmd0OworI2luY2x1ZGUgJmx0O2xpYnhtbC9wYXJzZXIuaCZndDsKKworCit4bWxEb2NQdHIKK3BhcnNlRG9jKGNoYXIgKmRvY25hbWUsIGNoYXIgKnVyaSkgeworCisJeG1sRG9jUHRyIGRvYzsKKwl4bWxOb2RlUHRyIGN1cjsKKwl4bWxOb2RlUHRyIG5ld25vZGU7CisJeG1sQXR0clB0ciBuZXdhdHRyOworCisJZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOworCQorCWlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm4gKE5VTEwpOworCX0KKwkKKwljdXIgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworCQorCWlmIChjdXIgPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwiZW1wdHkgZG9jdW1lbnRcbiIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJCXJldHVybiAoTlVMTCk7CisJfQorCQorCWlmICh4bWxTdHJjbXAoY3VyLSZndDtuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAic3RvcnkiKSkgeworCQlmcHJpbnRmKHN0ZGVyciwiZG9jdW1lbnQgb2YgdGhlIHdyb25nIHR5cGUsIHJvb3Qgbm9kZSAhPSBzdG9yeSIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJCXJldHVybiAoTlVMTCk7CisJfQorCQorCW5ld25vZGUgPSB4bWxOZXdUZXh0Q2hpbGQgKGN1ciwgTlVMTCwgInJlZmVyZW5jZSIsIE5VTEwpOworCW5ld2F0dHIgPSB4bWxOZXdQcm9wIChuZXdub2RlLCAidXJpIiwgdXJpKTsKKwlyZXR1cm4oZG9jKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCisJY2hhciAqZG9jbmFtZTsKKwljaGFyICp1cmk7CisJeG1sRG9jUHRyIGRvYzsKKworCWlmIChhcmdjICZsdDs9IDIpIHsKKwkJcHJpbnRmKCJVc2FnZTogJXMgZG9jbmFtZSwgdXJpXG4iLCBhcmd2WzBdKTsKKwkJcmV0dXJuKDApOworCX0KKworCWRvY25hbWUgPSBhcmd2WzFdOworCXVyaSA9IGFyZ3ZbMl07CisJZG9jID0gcGFyc2VEb2MgKGRvY25hbWUsIHVyaSk7CisJaWYgKGRvYyAhPSBOVUxMKSB7CisJCXhtbFNhdmVGb3JtYXRGaWxlIChkb2NuYW1lLCBkb2MsIDEpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJfQorCXJldHVybiAoMSk7Cit9CisKKzwvcHJlPjxwPgorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwZS5odG1sIj5QcmV2PC9hPqA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPlVwPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXBnLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5FLqBDb2RlIGZvciBBZGQgS2V5d29yZCBFeGFtcGxloDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gRy6gQ29kZSBmb3IgUmV0cmlldmluZyBBdHRyaWJ1dGUgVmFsdWUgRXhhbXBsZTwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGcuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZmEwZWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGcuaHRtbApAQCAtMCwwICsxLDc1IEBACis8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+Ry6gQ29kZSBmb3IgUmV0cmlldmluZyBBdHRyaWJ1dGUgVmFsdWUgRXhhbXBsZTwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFwZi5odG1sIiB0aXRsZT0iRi6gQ29kZSBmb3IgQWRkIEF0dHJpYnV0ZSBFeGFtcGxlIj48bGluayByZWw9Im5leHQiIGhyZWY9ImFwaC5odG1sIiB0aXRsZT0iSC6gQ29kZSBmb3IgRW5jb2RpbmcgQ29udmVyc2lvbiBFeGFtcGxlIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9Im5hdmhlYWRlciI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPjx0aCBjb2xzcGFuPSIzIiBhbGlnbj0iY2VudGVyIj5HLqBDb2RlIGZvciBSZXRyaWV2aW5nIEF0dHJpYnV0ZSBWYWx1ZSBFeGFtcGxlPC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXBmLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRoIHdpZHRoPSI2MCUiIGFsaWduPSJjZW50ZXIiPqA8L3RoPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFwaC5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJhcHBlbmRpeCIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImdldGF0dHJpYnV0ZWFwcGVuZGl4Ij48L2E+Ry6gQ29kZSBmb3IgUmV0cmlldmluZyBBdHRyaWJ1dGUgVmFsdWUgRXhhbXBsZTwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD4KKyAgICAgIDwvcD48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisjaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDsKKyNpbmNsdWRlICZsdDtzdHJpbmcuaCZndDsKKyNpbmNsdWRlICZsdDtzdGRsaWIuaCZndDsKKyNpbmNsdWRlICZsdDtsaWJ4bWwveG1sbWVtb3J5LmgmZ3Q7CisjaW5jbHVkZSAmbHQ7bGlieG1sL3BhcnNlci5oJmd0OworCit2b2lkCitnZXRSZWZlcmVuY2UgKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyKSB7CisKKwl4bWxDaGFyICp1cmk7CisJY3VyID0gY3VyLSZndDt4bWxDaGlsZHJlbk5vZGU7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJICAgIGlmICgoIXhtbFN0cmNtcChjdXItJmd0O25hbWUsIChjb25zdCB4bWxDaGFyICopInJlZmVyZW5jZSIpKSkgeworCQkgICAgdXJpID0geG1sR2V0UHJvcChjdXIsICJ1cmkiKTsKKwkJICAgIHByaW50ZigidXJpOiAlc1xuIiwgdXJpKTsKKwkJICAgIHhtbEZyZWUodXJpKTsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItJmd0O25leHQ7CisJfQorCXJldHVybjsKK30KKworCit2b2lkCitwYXJzZURvYyhjaGFyICpkb2NuYW1lKSB7CisKKwl4bWxEb2NQdHIgZG9jOworCXhtbE5vZGVQdHIgY3VyOworCisJZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOworCQorCWlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm47CisJfQorCQorCWN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisJCisJaWYgKGN1ciA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCJlbXB0eSBkb2N1bWVudFxuIik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuOworCX0KKwkKKwlpZiAoeG1sU3RyY21wKGN1ci0mZ3Q7bmFtZSwgKGNvbnN0IHhtbENoYXIgKikgInN0b3J5IikpIHsKKwkJZnByaW50ZihzdGRlcnIsImRvY3VtZW50IG9mIHRoZSB3cm9uZyB0eXBlLCByb290IG5vZGUgIT0gc3RvcnkiKTsKKwkJeG1sRnJlZURvYyhkb2MpOworCQlyZXR1cm47CisJfQorCQorCWdldFJlZmVyZW5jZSAoZG9jLCBjdXIpOworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm47Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKworCWNoYXIgKmRvY25hbWU7CisKKwlpZiAoYXJnYyAmbHQ7PSAxKSB7CisJCXByaW50ZigiVXNhZ2U6ICVzIGRvY25hbWVcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4oMCk7CisJfQorCisJZG9jbmFtZSA9IGFyZ3ZbMV07CisJcGFyc2VEb2MgKGRvY25hbWUpOworCQorCXJldHVybiAoMSk7Cit9CisKKzwvcHJlPjxwPgorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwZi5odG1sIj5QcmV2PC9hPqA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPlVwPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXBoLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5GLqBDb2RlIGZvciBBZGQgQXR0cmlidXRlIEV4YW1wbGWgPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBILqBDb2RlIGZvciBFbmNvZGluZyBDb252ZXJzaW9uIEV4YW1wbGU8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBoLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjQ2NjA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBoLmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPkguoENvZGUgZm9yIEVuY29kaW5nIENvbnZlcnNpb24gRXhhbXBsZTwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFwZy5odG1sIiB0aXRsZT0iRy6gQ29kZSBmb3IgUmV0cmlldmluZyBBdHRyaWJ1dGUgVmFsdWUgRXhhbXBsZSI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcGkuaHRtbCIgdGl0bGU9IkkuoEFja25vd2xlZGdlbWVudHMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPkguoENvZGUgZm9yIEVuY29kaW5nIENvbnZlcnNpb24gRXhhbXBsZTwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwZy5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcGkuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PC90YWJsZT48aHI+PC9kaXY+PGRpdiBjbGFzcz0iYXBwZW5kaXgiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJjb252ZXJ0YXBwZW5kaXgiPjwvYT5ILqBDb2RlIGZvciBFbmNvZGluZyBDb252ZXJzaW9uIEV4YW1wbGU8L2gyPjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PHA+CisgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorI2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0OworI2luY2x1ZGUgJmx0O2xpYnhtbC9wYXJzZXIuaCZndDsKKworCit1bnNpZ25lZCBjaGFyKgorY29udmVydCAodW5zaWduZWQgY2hhciAqaW4sIGNoYXIgKmVuY29kaW5nKQoreworCXVuc2lnbmVkIGNoYXIgKm91dDsKKyAgICAgICAgaW50IHJldCxzaXplLG91dF9zaXplLHRlbXA7CisgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsKKworICAgICAgICBzaXplID0gKGludClzdHJsZW4oaW4pKzE7IAorICAgICAgICBvdXRfc2l6ZSA9IHNpemUqMi0xOyAKKyAgICAgICAgb3V0ID0gbWFsbG9jKChzaXplX3Qpb3V0X3NpemUpOyAKKworICAgICAgICBpZiAob3V0KSB7CisgICAgICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dCA9IE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvdXQpIHsKKyAgICAgICAgICAgICAgICB0ZW1wPXNpemUtMTsKKyAgICAgICAgICAgICAgICByZXQgPSBoYW5kbGVyLSZndDtpbnB1dChvdXQsICZhbXA7b3V0X3NpemUsIGluLCAmYW1wO3RlbXApOworICAgICAgICAgICAgICAgIGlmIChyZXQgfHwgdGVtcC1zaXplKzEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJjb252ZXJzaW9uIHdhc24ndCBzdWNjZXNzZnVsLlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoImNvbnZlcnNpb24gd2Fzbid0IHN1Y2Nlc3NmdWwuIGNvbnZlcnRlZDogJWkgb2N0ZXRzLlxuIix0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dCA9IE5VTEw7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dCA9IHJlYWxsb2Mob3V0LG91dF9zaXplKzEpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dFtvdXRfc2l6ZV09MDsgLypudWxsIHRlcm1pbmF0aW5nIG91dCovCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJubyBtZW1cbiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAob3V0KTsKK30JCisKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCisJdW5zaWduZWQgY2hhciAqY29udGVudCwgKm91dDsKKwl4bWxEb2NQdHIgZG9jOworCXhtbE5vZGVQdHIgcm9vdG5vZGU7CisJY2hhciAqZW5jb2RpbmcgPSAiSVNPLTg4NTktMSI7CisJCisJCQorCWlmIChhcmdjICZsdDs9IDEpIHsKKwkJcHJpbnRmKCJVc2FnZTogJXMgY29udGVudFxuIiwgYXJndlswXSk7CisJCXJldHVybigwKTsKKwl9CisKKwljb250ZW50ID0gYXJndlsxXTsKKworCW91dCA9IGNvbnZlcnQoY29udGVudCwgZW5jb2RpbmcpOworCisJZG9jID0geG1sTmV3RG9jICgiMS4wIik7CisJcm9vdG5vZGUgPSB4bWxOZXdEb2NOb2RlKGRvYywgTlVMTCwgKGNvbnN0IHhtbENoYXIqKSJyb290Iiwgb3V0KTsKKwl4bWxEb2NTZXRSb290RWxlbWVudChkb2MsIHJvb3Rub2RlKTsKKworCXhtbFNhdmVGb3JtYXRGaWxlRW5jKCItIiwgZG9jLCBlbmNvZGluZywgMSk7CisJcmV0dXJuICgxKTsKK30KKworPC9wcmU+PHA+CisgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9Im5hdmZvb3RlciI+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXBnLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+VXA8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcGkuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPkcuoENvZGUgZm9yIFJldHJpZXZpbmcgQXR0cmlidXRlIFZhbHVlIEV4YW1wbGWgPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBJLqBBY2tub3dsZWRnZW1lbnRzPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwaS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZlNzk4MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FwaS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPkkuoEFja25vd2xlZGdlbWVudHM8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJhcGguaHRtbCIgdGl0bGU9IkguoENvZGUgZm9yIEVuY29kaW5nIENvbnZlcnNpb24gRXhhbXBsZSI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJpeDAxLmh0bWwiIHRpdGxlPSJJbmRleCI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJuYXZoZWFkZXIiPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj48dGggY29sc3Bhbj0iMyIgYWxpZ249ImNlbnRlciI+SS6gQWNrbm93bGVkZ2VtZW50czwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFwaC5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJpeDAxLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjwvdGFibGU+PGhyPjwvZGl2PjxkaXYgY2xhc3M9ImFwcGVuZGl4IiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iaWQyNTg4NTk3Ij48L2E+SS6gQWNrbm93bGVkZ2VtZW50czwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD5BIG51bWJlciBvZiBwZW9wbGUgaGF2ZSBnZW5lcm91c2x5IG9mZmVyZWQgZmVlZGJhY2ssIGNvZGUgYW5kCisgICAgc3VnZ2VzdGVkIGltcHJvdmVtZW50cyB0byB0aGlzIHR1dG9yaWFsLiBJbiBubyBwYXJ0aWN1bGFyIG9yZGVyOgorICAgICAgPHNwYW4gY2xhc3M9InNpbXBsZWxpc3QiPkRhbmllbCBWZWlsbGFyZCwgTWFyY3VzIExhYmliIElza2FuZGVyLCBDaHJpc3RvcGhlciBSLiBIYXJyaXMsIElnb3IgWmxhdGtvdmljLCBOaXJhaiBUb2xpYSwgRGF2aWQgVHVyb3Zlcjwvc3Bhbj4KKyAgICA8L3A+PC9kaXY+PGRpdiBjbGFzcz0ibmF2Zm9vdGVyIj48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcGguaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9Iml4MDEuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPkguoENvZGUgZm9yIEVuY29kaW5nIENvbnZlcnNpb24gRXhhbXBsZaA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+oEluZGV4PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDIuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTMwYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwMi5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5EYXRhIFR5cGVzPC90aXRsZT48bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjYxLjIiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJwcmV2aW91cyIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcjAxczAzLmh0bWwiIHRpdGxlPSJQYXJzaW5nIHRoZSBmaWxlIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9Im5hdmhlYWRlciI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPjx0aCBjb2xzcGFuPSIzIiBhbGlnbj0iY2VudGVyIj5EYXRhIFR5cGVzPC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iaW5kZXguaHRtbCI+UHJldjwvYT6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwMy5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0ieG1sdHV0b3JpYWxkYXRhdHlwZXMiPjwvYT5EYXRhIFR5cGVzPC9oMj48L2Rpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxwPjxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+TGlieG1sPC9zcGFuPiBkZWNsYXJlcyBhIG51bWJlciBvZiBkYXRhIHR5cGVzIHdlCisgICAgd2lsbCBlbmNvdW50ZXIgcmVwZWF0ZWRseSwgaGlkaW5nIHRoZSBtZXNzeSBzdHVmZiBzbyB5b3UgZG8gbm90IGhhdmUgdG8gZGVhbAorICAgIHdpdGggaXQgdW5sZXNzIHlvdSBoYXZlIHNvbWUgc3BlY2lmaWMgbmVlZC48L3A+PHA+CisgICAgICA8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48ZGw+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJpZDI1MjYxODYiPjwvYT4KKzxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MQ0hBUiIgdGFyZ2V0PSJfdG9wIj54bWxDaGFyPC9hPjwvc3Bhbj48L2R0PjxkZD48cD5BIGJhc2ljIHJlcGxhY2VtZW50IGZvciBjaGFyLCBhIGJ5dGUgaW4gYSBVVEYtOCBlbmNvZGVkCisJICAgIHN0cmluZy4gSWYgeW91ciBkYXRhIHVzZXMgYW5vdGhlciBlbmNvZGluZywgaXQgbXVzdCBiZSBjb252ZXJ0ZWQgdG8KKwkgICAgICBVVEYtOCBmb3IgdXNlIHdpdGggPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5saWJ4bWwnczwvc3Bhbj4KKwkgICAgICBmdW5jdGlvbnMuIE1vcmUgaW5mb3JtYXRpb24gb24gZW5jb2RpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnhtbHNvZnQub3JnL2VuY29kaW5nLmh0bWwiIHRhcmdldD0iX3RvcCI+PHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5saWJ4bWw8L3NwYW4+IGVuY29kaW5nIHN1cHBvcnQgd2ViIHBhZ2U8L2E+LjwvcD48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PGEgY2xhc3M9ImluZGV4dGVybSIgbmFtZT0iaWQyNTI2MjMyIj48L2E+CisJICAgIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MRE9DIiB0YXJnZXQ9Il90b3AiPnhtbERvYzwvYT48L3NwYW4+PC9kdD48ZGQ+PHA+QSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgdHJlZSBjcmVhdGVkIGJ5IGEgcGFyc2VkIGRvYy4gPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxET0NQVFIiIHRhcmdldD0iX3RvcCI+eG1sRG9jUHRyPC9hPgorCSAgaXMgYSBwb2ludGVyIHRvIHRoZSBzdHJ1Y3R1cmUuPC9wPjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJpZDI1MjYyNjYiPjwvYT4KKzxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MTk9ERVBUUiIgdGFyZ2V0PSJfdG9wIj54bWxOb2RlUHRyPC9hPgorCSAgICBhbmQgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxOT0RFIiB0YXJnZXQ9Il90b3AiPnhtbE5vZGU8L2E+PC9zcGFuPjwvZHQ+PGRkPjxwPkEgc3RydWN0dXJlIGNvbnRhaW5pbmcgYSBzaW5nbGUgbm9kZS4gPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxOT0RFUFRSIiB0YXJnZXQ9Il90b3AiPnhtbE5vZGVQdHI8L2E+CisJICBpcyBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZSwgYW5kIGlzIHVzZWQgaW4gdHJhdmVyc2luZyB0aGUgZG9jdW1lbnQgdHJlZS48L3A+PC9kZD48L2RsPjwvZGl2PjxwPgorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImluZGV4Lmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+VXA8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcjAxczAzLmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5MaWJ4bWwgVHV0b3JpYWygPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBQYXJzaW5nIHRoZSBmaWxlPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDMuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDI4ZmZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwMy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5QYXJzaW5nIHRoZSBmaWxlPC90aXRsZT48bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjYxLjIiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJwcmV2aW91cyIgaHJlZj0iYXIwMXMwMi5odG1sIiB0aXRsZT0iRGF0YSBUeXBlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcjAxczA0Lmh0bWwiIHRpdGxlPSJSZXRyaWV2aW5nIEVsZW1lbnQgQ29udGVudCI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJuYXZoZWFkZXIiPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj48dGggY29sc3Bhbj0iMyIgYWxpZ249ImNlbnRlciI+UGFyc2luZyB0aGUgZmlsZTwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDIuaHRtbCI+UHJldjwvYT6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwNC5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0ieG1sdHV0b3JpYWxwYXJzaW5nIj48L2E+UGFyc2luZyB0aGUgZmlsZTwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD48YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJmaWxlcGFyc2luZyI+PC9hPgorUGFyc2luZyB0aGUgZmlsZSByZXF1aXJlcyBvbmx5IHRoZSBuYW1lIG9mIHRoZSBmaWxlIGFuZCBhIHNpbmdsZQorICAgICAgZnVuY3Rpb24gY2FsbCwgcGx1cyBlcnJvciBjaGVja2luZy4gRnVsbCBjb2RlOiA8YSBocmVmPSJhcGMuaHRtbCIgdGl0bGU9IkMuoENvZGUgZm9yIEtleXdvcmQgRXhhbXBsZSI+QXBwZW5kaXigQywgPGk+Q29kZSBmb3IgS2V5d29yZCBFeGFtcGxlPC9pPjwvYT48L3A+PHA+CisgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICAgICAgPGEgbmFtZT0iZGVjbGFyZWRvYyI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj4geG1sRG9jUHRyIGRvYzsKKwk8YSBuYW1lPSJkZWNsYXJlbm9kZSI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMi5wbmciIGFsdD0iMiIgYm9yZGVyPSIwIj4geG1sTm9kZVB0ciBjdXI7CisKKwk8YSBuYW1lPSJwYXJzZWZpbGUiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzMucG5nIiBhbHQ9IjMiIGJvcmRlcj0iMCI+IGRvYyA9IHhtbFBhcnNlRmlsZShkb2NuYW1lKTsKKwkKKwk8YSBuYW1lPSJjaGVja3BhcnNlZXJyb3IiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzQucG5nIiBhbHQ9IjQiIGJvcmRlcj0iMCI+IGlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm47CisJfQorCisJPGEgbmFtZT0iZ2V0cm9vdGVsZW1lbnQiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzUucG5nIiBhbHQ9IjUiIGJvcmRlcj0iMCI+IGN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisJCisJPGEgbmFtZT0iY2hlY2tlbXB0eWVycm9yIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy82LnBuZyIgYWx0PSI2IiBib3JkZXI9IjAiPiBpZiAoY3VyID09IE5VTEwpIHsKKwkJZnByaW50ZihzdGRlcnIsImVtcHR5IGRvY3VtZW50XG4iKTsKKwkJeG1sRnJlZURvYyhkb2MpOworCQlyZXR1cm47CisJfQorCQorCTxhIG5hbWU9ImNoZWNrcm9vdHR5cGUiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzcucG5nIiBhbHQ9IjciIGJvcmRlcj0iMCI+IGlmICh4bWxTdHJjbXAoY3VyLSZndDtuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAic3RvcnkiKSkgeworCQlmcHJpbnRmKHN0ZGVyciwiZG9jdW1lbnQgb2YgdGhlIHdyb25nIHR5cGUsIHJvb3Qgbm9kZSAhPSBzdG9yeSIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJCXJldHVybjsKKwl9CisKKyAgICA8L3ByZT48cD4KKyAgICAgIDwvcD48ZGl2IGNsYXNzPSJjYWxsb3V0bGlzdCI+PHRhYmxlIGJvcmRlcj0iMCIgc3VtbWFyeT0iQ2FsbG91dCBsaXN0Ij48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjZGVjbGFyZWRvYyI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8xLnBuZyIgYWx0PSIxIiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD5EZWNsYXJlIHRoZSBwb2ludGVyIHRoYXQgd2lsbCBwb2ludCB0byB5b3VyIHBhcnNlZCBkb2N1bWVudC48L3A+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNkZWNsYXJlbm9kZSI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8yLnBuZyIgYWx0PSIyIiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD5EZWNsYXJlIGEgbm9kZSBwb2ludGVyICh5b3UnbGwgbmVlZCB0aGlzIGluIG9yZGVyIHRvCisJICBpbnRlcmFjdCB3aXRoIGluZGl2aWR1YWwgbm9kZXMpLjwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2NoZWNrcGFyc2VlcnJvciI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy80LnBuZyIgYWx0PSI0IiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD5DaGVjayB0byBzZWUgdGhhdCB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQuIElmIGl0CisJICAgIHdhcyBub3QsIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+bGlieG1sPC9zcGFuPiB3aWxsIGF0IHRoaXMgcG9pbnQKKwkgICAgcmVnaXN0ZXIgYW4gZXJyb3IgYW5kIHN0b3AuIAorCSAgICA8L3A+PGRpdiBjbGFzcz0ibm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9Ik5vdGUiPjx0cj48dGQgcm93c3Bhbj0iMiIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSI+PGltZyBhbHQ9IltOb3RlXSIgc3JjPSJpbWFnZXMvbm90ZS5wbmciPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij5Ob3RlPC90aD48L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD48YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJpZDI1MjUzMzciPjwvYT4KK09uZSBjb21tb24gZXhhbXBsZSBvZiBhbiBlcnJvciBhdCB0aGlzIHBvaW50IGlzIGltcHJvcGVyCisJICAgIGhhbmRsaW5nIG9mIGVuY29kaW5nLiBUaGUgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlhNTDwvc3Bhbj4gc3RhbmRhcmQgcmVxdWlyZXMKKwkgICAgZG9jdW1lbnRzIHN0b3JlZCB3aXRoIGFuIGVuY29kaW5nIG90aGVyIHRoYW4gVVRGLTggb3IgVVRGLTE2IHRvCisJICAgIGNvbnRhaW4gYW4gZXhwbGljaXQgZGVjbGFyYXRpb24gb2YgdGhlaXIgZW5jb2RpbmcuIElmIHRoZQorCSAgICBkZWNsYXJhdGlvbiBpcyB0aGVyZSwgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5saWJ4bWw8L3NwYW4+IHdpbGwKKwkgICAgYXV0b21hdGljYWxseSBwZXJmb3JtIHRoZSBuZWNlc3NhcnkgY29udmVyc2lvbiB0byBVVEYtOCBmb3IKKwkJeW91LiBNb3JlIGluZm9ybWF0aW9uIG9uIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5YTUwnczwvc3Bhbj4gZW5jb2RpbmcKKwkJcmVxdWlyZW1lbnRzIGlzIGNvbnRhaW5lZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNjaGFyZW5jb2RpbmciIHRhcmdldD0iX3RvcCI+c3RhbmRhcmQ8L2E+LjwvcD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48cD4KKwkgIDwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2dldHJvb3RlbGVtZW50Ij48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzUucG5nIiBhbHQ9IjUiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPlJldHJpZXZlIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudC48L3A+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNjaGVja2VtcHR5ZXJyb3IiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvNi5wbmciIGFsdD0iNiIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+Q2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBkb2N1bWVudCBhY3R1YWxseSBjb250YWlucyBzb21ldGhpbmcuPC9wPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjY2hlY2tyb290dHlwZSI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy83LnBuZyIgYWx0PSI3IiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD5JbiBvdXIgY2FzZSwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRvY3VtZW50IGlzIHRoZSByaWdodAorCSAgdHlwZS4gInN0b3J5IiBpcyB0aGUgcm9vdCB0eXBlIG9mIHRoZSBkb2N1bWVudHMgdXNlZCBpbiB0aGlzCisJICB0dXRvcmlhbC48L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CisgICAgICA8YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJpZDI1MjU0MTUiPjwvYT4KKyAgICA8L3A+PC9kaXY+PGRpdiBjbGFzcz0ibmF2Zm9vdGVyIj48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcjAxczAyLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+VXA8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcjAxczA0Lmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5EYXRhIFR5cGVzoDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gUmV0cmlldmluZyBFbGVtZW50IENvbnRlbnQ8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwNC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNDkyZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcjAxczA0Lmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPlJldHJpZXZpbmcgRWxlbWVudCBDb250ZW50PC90aXRsZT48bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjYxLjIiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkxpYnhtbCBUdXRvcmlhbCI+PGxpbmsgcmVsPSJwcmV2aW91cyIgaHJlZj0iYXIwMXMwMy5odG1sIiB0aXRsZT0iUGFyc2luZyB0aGUgZmlsZSI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcjAxczA1Lmh0bWwiIHRpdGxlPSJVc2luZyBYUGF0aCB0byBSZXRyaWV2ZSBFbGVtZW50IENvbnRlbnQiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPlJldHJpZXZpbmcgRWxlbWVudCBDb250ZW50PC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXIwMXMwMy5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcjAxczA1Lmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjwvdGFibGU+PGhyPjwvZGl2PjxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJ4bWx0dXRvcmlhbGdldHRleHQiPjwvYT5SZXRyaWV2aW5nIEVsZW1lbnQgQ29udGVudDwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD48YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJpZDI1MjU0MzkiPjwvYT4KK1JldHJpZXZpbmcgdGhlIGNvbnRlbnQgb2YgYW4gZWxlbWVudCBpbnZvbHZlcyB0cmF2ZXJzaW5nIHRoZSBkb2N1bWVudAorICAgIHRyZWUgdW50aWwgeW91IGZpbmQgd2hhdCB5b3UgYXJlIGxvb2tpbmcgZm9yLiBJbiB0aGlzIGNhc2UsIHdlIGFyZSBsb29raW5nCisgICAgZm9yIGFuIGVsZW1lbnQgY2FsbGVkICJrZXl3b3JkIiBjb250YWluZWQgd2l0aGluIGVsZW1lbnQgY2FsbGVkICJzdG9yeSIuIFRoZQorICAgIHByb2Nlc3MgdG8gZmluZCB0aGUgbm9kZSB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBpbnZvbHZlcyB0ZWRpb3VzbHkgd2Fsa2luZyB0aGUKKyAgICB0cmVlLiBXZSBhc3N1bWUgeW91IGFscmVhZHkgaGF2ZSBhbiB4bWxEb2NQdHIgY2FsbGVkIDx0dCBjbGFzcz0idmFybmFtZSI+ZG9jPC90dD4KKyAgICBhbmQgYW4geG1sTm9kUHRyIGNhbGxlZCA8dHQgY2xhc3M9InZhcm5hbWUiPmN1cjwvdHQ+LjwvcD48cD4KKyAgICAgIDwvcD48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisJPGEgbmFtZT0iZ2V0Y2hpbGRub2RlIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8xLnBuZyIgYWx0PSIxIiBib3JkZXI9IjAiPmN1ciA9IGN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlOworCTxhIG5hbWU9Imh1bnRzdG9yeWluZm8iPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzIucG5nIiBhbHQ9IjIiIGJvcmRlcj0iMCI+d2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCWlmICgoIXhtbFN0cmNtcChjdXItJmd0O25hbWUsIChjb25zdCB4bWxDaGFyICopInN0b3J5aW5mbyIpKSl7CisJCQlwYXJzZVN0b3J5IChkb2MsIGN1cik7CisJCX0KKwkJIAorCWN1ciA9IGN1ci0mZ3Q7bmV4dDsKKwl9CisgICAgICA8L3ByZT48cD4KKworICAgICAgPC9wPjxkaXYgY2xhc3M9ImNhbGxvdXRsaXN0Ij48dGFibGUgYm9yZGVyPSIwIiBzdW1tYXJ5PSJDYWxsb3V0IGxpc3QiPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNnZXRjaGlsZG5vZGUiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+R2V0IHRoZSBmaXJzdCBjaGlsZCBub2RlIG9mIDx0dCBjbGFzcz0idmFybmFtZSI+Y3VyPC90dD4uIEF0IHRoaXMKKwkgICAgcG9pbnQsIDx0dCBjbGFzcz0idmFybmFtZSI+Y3VyPC90dD4gcG9pbnRzIGF0IHRoZSBkb2N1bWVudCByb290LCB3aGljaCBpcworCSAgICB0aGUgZWxlbWVudCAic3RvcnkiLjwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2h1bnRzdG9yeWluZm8iPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMi5wbmciIGFsdD0iMiIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+VGhpcyBsb29wIGl0ZXJhdGVzIHRocm91Z2ggdGhlIGVsZW1lbnRzIHRoYXQgYXJlIGNoaWxkcmVuIG9mCisJICAic3RvcnkiLCBsb29raW5nIGZvciBvbmUgY2FsbGVkICJzdG9yeWluZm8iLiBUaGF0CisJICBpcyB0aGUgZWxlbWVudCB0aGF0IHdpbGwgY29udGFpbiB0aGUgImtleXdvcmRzIiB3ZSBhcmUKKwkgICAgbG9va2luZyBmb3IuIEl0IHVzZXMgdGhlIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+bGlieG1sPC9zcGFuPiBzdHJpbmcKKwkgIGNvbXBhcmlzb24KKwkgICAgZnVuY3Rpb24sIDx0dCBjbGFzcz0iZnVuY3Rpb24iPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC1wYXJzZXIuaHRtbCNYTUxTVFJDTVAiIHRhcmdldD0iX3RvcCI+eG1sU3RyY21wPC9hPjwvdHQ+LiBJZiB0aGVyZSBpcyBhIG1hdGNoLCBpdCBjYWxscyB0aGUgZnVuY3Rpb24gPHR0IGNsYXNzPSJmdW5jdGlvbiI+cGFyc2VTdG9yeTwvdHQ+LjwvcD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48cD4KKyAgICA8L3A+PHA+CisgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgordm9pZAorcGFyc2VTdG9yeSAoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIpIHsKKworCXhtbENoYXIgKmtleTsKKwk8YSBuYW1lPSJhbm90aGVyZ2V0Y2hpbGQiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+IGN1ciA9IGN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlOworCTxhIG5hbWU9ImZpbmRrZXl3b3JkIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8yLnBuZyIgYWx0PSIyIiBib3JkZXI9IjAiPiB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKCgheG1sU3RyY21wKGN1ci0mZ3Q7bmFtZSwgKGNvbnN0IHhtbENoYXIgKikia2V5d29yZCIpKSkgeworCTxhIG5hbWU9ImZvdW5ka2V5d29yZCI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMy5wbmciIGFsdD0iMyIgYm9yZGVyPSIwIj4JICAgIGtleSA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgY3VyLSZndDt4bWxDaGlsZHJlbk5vZGUsIDEpOworCQkgICAgcHJpbnRmKCJrZXl3b3JkOiAlc1xuIiwga2V5KTsKKwkJICAgIHhtbEZyZWUoa2V5KTsKKyAJICAgIH0KKwljdXIgPSBjdXItJmd0O25leHQ7CisJfQorICAgIHJldHVybjsKK30KKyAgICAgIDwvcHJlPjxwPgorICAgICAgPC9wPjxkaXYgY2xhc3M9ImNhbGxvdXRsaXN0Ij48dGFibGUgYm9yZGVyPSIwIiBzdW1tYXJ5PSJDYWxsb3V0IGxpc3QiPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNhbm90aGVyZ2V0Y2hpbGQiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+QWdhaW4gd2UgZ2V0IHRoZSBmaXJzdCBjaGlsZCBub2RlLjwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2ZpbmRrZXl3b3JkIj48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzIucG5nIiBhbHQ9IjIiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPkxpa2UgdGhlIGxvb3AgYWJvdmUsIHdlIHRoZW4gaXRlcmF0ZSB0aHJvdWdoIHRoZSBub2RlcywgbG9va2luZworCSAgZm9yIG9uZSB0aGF0IG1hdGNoZXMgdGhlIGVsZW1lbnQgd2UncmUgaW50ZXJlc3RlZCBpbiwgaW4gdGhpcyBjYXNlCisJICAia2V5d29yZCIuPC9wPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjZm91bmRrZXl3b3JkIj48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzMucG5nIiBhbHQ9IjMiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPldoZW4gd2UgZmluZCB0aGUgImtleXdvcmQiIGVsZW1lbnQsIHdlIG5lZWQgdG8gcHJpbnQKKwkgICAgaXRzIGNvbnRlbnRzLiBSZW1lbWJlciB0aGF0IGluIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5YTUw8L3NwYW4+LCB0aGUgdGV4dAorCSAgICBjb250YWluZWQgd2l0aGluIGFuIGVsZW1lbnQgaXMgYSBjaGlsZCBub2RlIG9mIHRoYXQgZWxlbWVudCwgc28gd2UKKwkgICAgdHVybiB0byA8dHQgY2xhc3M9InZhcm5hbWUiPmN1ci0mZ3Q7eG1sQ2hpbGRyZW5Ob2RlPC90dD4uIFRvIHJldHJpZXZlIGl0LCB3ZQorCSAgICB1c2UgdGhlIGZ1bmN0aW9uIDx0dCBjbGFzcz0iZnVuY3Rpb24iPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MTk9ERUxJU1RHRVRTVFJJTkciIHRhcmdldD0iX3RvcCI+eG1sTm9kZUxpc3RHZXRTdHJpbmc8L2E+PC90dD4sIHdoaWNoIGFsc28gdGFrZXMgdGhlIDx0dCBjbGFzcz0idmFybmFtZSI+ZG9jPC90dD4gcG9pbnRlciBhcyBhbiBhcmd1bWVudC4gSW4gdGhpcyBjYXNlLCB3ZSBqdXN0IHByaW50IGl0IG91dC48L3A+PGRpdiBjbGFzcz0ibm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9Ik5vdGUiPjx0cj48dGQgcm93c3Bhbj0iMiIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSI+PGltZyBhbHQ9IltOb3RlXSIgc3JjPSJpbWFnZXMvbm90ZS5wbmciPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij5Ob3RlPC90aD48L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD5CZWNhdXNlIDx0dCBjbGFzcz0iZnVuY3Rpb24iPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC90dD4gYWxsb2NhdGVzCisJICAgICAgbWVtb3J5IGZvciB0aGUgc3RyaW5nIGl0IHJldHVybnMsIHlvdSBtdXN0IHVzZQorCSAgICAgIDx0dCBjbGFzcz0iZnVuY3Rpb24iPnhtbEZyZWU8L3R0PiB0byBmcmVlIGl0LjwvcD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48cD4KKyAgICA8L3A+PC9kaXY+PGRpdiBjbGFzcz0ibmF2Zm9vdGVyIj48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcjAxczAzLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+VXA8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcjAxczA1Lmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5QYXJzaW5nIHRoZSBmaWxloDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gVXNpbmcgWFBhdGggdG8gUmV0cmlldmUgRWxlbWVudCBDb250ZW50PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDUuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzQwOTI1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwNS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5Vc2luZyBYUGF0aCB0byBSZXRyaWV2ZSBFbGVtZW50IENvbnRlbnQ8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJhcjAxczA0Lmh0bWwiIHRpdGxlPSJSZXRyaWV2aW5nIEVsZW1lbnQgQ29udGVudCI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcjAxczA2Lmh0bWwiIHRpdGxlPSJXcml0aW5nIGVsZW1lbnQgY29udGVudCI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJuYXZoZWFkZXIiPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj48dGggY29sc3Bhbj0iMyIgYWxpZ249ImNlbnRlciI+VXNpbmcgWFBhdGggdG8gUmV0cmlldmUgRWxlbWVudCBDb250ZW50PC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXIwMXMwNC5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcjAxczA2Lmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjwvdGFibGU+PGhyPjwvZGl2PjxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJ4bWx0dXRvcmlhbHhwYXRoIj48L2E+VXNpbmcgWFBhdGggdG8gUmV0cmlldmUgRWxlbWVudCBDb250ZW50PC9oMj48L2Rpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxwPkluIGFkZGl0aW9uIHRvIHdhbGtpbmcgdGhlIGRvY3VtZW50IHRyZWUgdG8gZmluZCBhbiBlbGVtZW50LAorICAgIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+TGlieG1sMjwvc3Bhbj4gaW5jbHVkZXMgc3VwcG9ydCBmb3IKKyAgICAgIHVzZSBvZiA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPlhQYXRoPC9zcGFuPiBleHByZXNzaW9ucyB0byByZXRyaWV2ZSBzZXRzIG9mCisgICAgICBub2RlcyB0aGF0IG1hdGNoIGEgc3BlY2lmaWVkIGNyaXRlcmlhLiBGdWxsIGRvY3VtZW50YXRpb24gb2YgdGhlCisgICAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPlhQYXRoPC9zcGFuPiA8c3BhbiBjbGFzcz0iYWNyb255bSI+QVBJPC9zcGFuPiBpcyA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteHBhdGguaHRtbCIgdGFyZ2V0PSJfdG9wIj5oZXJlPC9hPi4KKyAgICA8L3A+PHA+PHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5YUGF0aDwvc3Bhbj4gYWxsb3dzIHNlYXJjaGluZyB0aHJvdWdoIGEgZG9jdW1lbnQKKyAgICBmb3Igbm9kZXMgdGhhdCBtYXRjaCBzcGVjaWZpZWQgY3JpdGVyaWEuIEluIHRoZSBleGFtcGxlIGJlbG93IHdlIHNlYXJjaAorICAgICAgdGhyb3VnaCBhIGRvY3VtZW50IGZvciB0aGUgY29udGVudHMgb2YgYWxsIDx0dCBjbGFzcz0idmFybmFtZSI+a2V5d29yZDwvdHQ+CisgICAgZWxlbWVudHMuCisgICAgICA8L3A+PGRpdiBjbGFzcz0ibm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9Ik5vdGUiPjx0cj48dGQgcm93c3Bhbj0iMiIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSI+PGltZyBhbHQ9IltOb3RlXSIgc3JjPSJpbWFnZXMvbm90ZS5wbmciPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij5Ob3RlPC90aD48L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD5BIGZ1bGwgZGlzY3Vzc2lvbiBvZiA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPlhQYXRoPC9zcGFuPiBpcyBiZXlvbmQKKwkgIHRoZSBzY29wZSBvZiB0aGlzIGRvY3VtZW50LiBGb3IgZGV0YWlscyBvbiBpdHMgdXNlLCBzZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hwYXRoIiB0YXJnZXQ9Il90b3AiPlhQYXRoIHNwZWNpZmljYXRpb248L2E+LjwvcD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48cD4KKyAgICAgIEZ1bGwgY29kZSBmb3IgdGhpcyBleGFtcGxlIGlzIGF0IDxhIGhyZWY9ImFwZC5odG1sIiB0aXRsZT0iRC6gQ29kZSBmb3IgWFBhdGggRXhhbXBsZSI+QXBwZW5kaXigRCwgPGk+Q29kZSBmb3IgWFBhdGggRXhhbXBsZTwvaT48L2E+LgorICAgIDwvcD48cD5Vc2luZyA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPlhQYXRoPC9zcGFuPiByZXF1aXJlcyBzZXR0aW5nIHVwIGFuCisgICAgICB4bWxYUGF0aENvbnRleHQgYW5kIHRoZW4gc3VwcGx5aW5nIHRoZSA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPlhQYXRoPC9zcGFuPgorICAgICAgZXhwcmVzc2lvbiBhbmQgdGhlIGNvbnRleHQgdG8gdGhlCisgICAgICA8dHQgY2xhc3M9ImZ1bmN0aW9uIj54bWxYUGF0aEV2YWxFeHByZXNzaW9uPC90dD4gZnVuY3Rpb24uIFRoZSBmdW5jdGlvbiByZXR1cm5zCisgICAgICBhbiB4bWxYUGF0aE9iamVjdFB0ciwgd2hpY2ggaW5jbHVkZXMgdGhlIHNldCBvZiBub2RlcyBzYXRpc2Z5aW5nIHRoZQorICAgICAgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5YUGF0aDwvc3Bhbj4gZXhwcmVzc2lvbi48L3A+PHA+CisgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorCXhtbFhQYXRoT2JqZWN0UHRyCisJZ2V0bm9kZXNldCAoeG1sRG9jUHRyIGRvYywgeG1sQ2hhciAqeHBhdGgpeworCQorCTxhIG5hbWU9ImNvY29udGV4dCI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj54bWxYUGF0aENvbnRleHRQdHIgY29udGV4dDsKKwl4bWxYUGF0aE9iamVjdFB0ciByZXN1bHQ7CisKKwk8YSBuYW1lPSJjb2NyZWF0ZWNvbnRleHQiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzIucG5nIiBhbHQ9IjIiIGJvcmRlcj0iMCI+Y29udGV4dCA9IHhtbFhQYXRoTmV3Q29udGV4dChkb2MpOworCTxhIG5hbWU9ImNvcnVueHBhdGgiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzMucG5nIiBhbHQ9IjMiIGJvcmRlcj0iMCI+cmVzdWx0ID0geG1sWFBhdGhFdmFsRXhwcmVzc2lvbih4cGF0aCwgY29udGV4dCk7CisJPGEgbmFtZT0iY29jaGVja3hwYXRocmVzdWx0Ij48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy80LnBuZyIgYWx0PSI0IiBib3JkZXI9IjAiPmlmKHhtbFhQYXRoTm9kZVNldElzRW1wdHkocmVzdWx0LSZndDtub2Rlc2V0dmFsKSl7CisJCXhtbFhQYXRoRnJlZU9iamVjdChyZXN1bHQpOworICAgICAgICAgICAgICAgIHByaW50ZigiTm8gcmVzdWx0XG4iKTsKKwkJcmV0dXJuIE5VTEw7CisgICAgICA8L3ByZT48cD4KKyAgICAgIDwvcD48ZGl2IGNsYXNzPSJjYWxsb3V0bGlzdCI+PHRhYmxlIGJvcmRlcj0iMCIgc3VtbWFyeT0iQ2FsbG91dCBsaXN0Ij48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjY29jb250ZXh0Ij48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPkZpcnN0IHdlIGRlY2xhcmUgb3VyIHZhcmlhYmxlcy48L3A+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNjb2NyZWF0ZWNvbnRleHQiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMi5wbmciIGFsdD0iMiIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+SW5pdGlhbGl6ZSB0aGUgPHR0IGNsYXNzPSJ2YXJuYW1lIj5jb250ZXh0PC90dD4gdmFyaWFibGUuPC9wPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjY29ydW54cGF0aCI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8zLnBuZyIgYWx0PSIzIiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD5BcHBseSB0aGUgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5YUGF0aDwvc3Bhbj4gZXhwcmVzc2lvbi48L3A+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNjb2NoZWNreHBhdGhyZXN1bHQiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvNC5wbmciIGFsdD0iNCIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+Q2hlY2sgdGhlIHJlc3VsdCBhbmQgZnJlZSB0aGUgbWVtb3J5IGFsbG9jYXRlZCB0bworCSAgICA8dHQgY2xhc3M9InZhcm5hbWUiPnJlc3VsdDwvdHQ+IGlmIG5vIHJlc3VsdCBpcyBmb3VuZC48L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CisgICAgPC9wPjxwPlRoZSB4bWxQYXRoT2JqZWN0UHRyIHJldHVybmVkIGJ5IHRoZSBmdW5jdGlvbiBjb250YWlucyBhIHNldCBvZiBub2RlcworICAgIGFuZCBvdGhlciBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBzZXQgYW5kIGFjdCBvbiB0aGUKKyAgICAgIHJlc3VsdHMuIEZvciB0aGlzIGV4YW1wbGUsIG91ciBmdW5jdGlvbnMgcmV0dXJucyB0aGUKKyAgICA8dHQgY2xhc3M9InZhcm5hbWUiPnhtbFhQYXRoT2JqZWN0UHRyPC90dD4uIFdlIHVzZSBpdCB0byBwcmludCB0aGUgY29udGVudHMgb2YKKyAgICAgIDx0dCBjbGFzcz0idmFybmFtZSI+a2V5d29yZDwvdHQ+IG5vZGVzIGluIG91ciBkb2N1bWVudC4gVGhlIG5vZGUgc2V0IG9iamVjdAorICAgICAgaW5jbHVkZXMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgc2V0ICg8dHQgY2xhc3M9InZhcm5hbWUiPm5vZGVOcjwvdHQ+KSBhbmQKKyAgICAgIGFuIGFycmF5IG9mIG5vZGVzICg8dHQgY2xhc3M9InZhcm5hbWUiPm5vZGVUYWI8L3R0Pik6CisgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorCTxhIG5hbWU9ImNvbm9kZXNldGNvdW50ZXIiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+Zm9yIChpPTA7IGkgJmx0OyBub2Rlc2V0LSZndDtub2RlTnI7IGkrKykgeworCTxhIG5hbWU9ImNvcHJpbnRrZXl3b3JkcyI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMi5wbmciIGFsdD0iMiIgYm9yZGVyPSIwIj5rZXl3b3JkID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBub2Rlc2V0LSZndDtub2RlVGFiW2ldLSZndDt4bWxDaGlsZHJlbk5vZGUsIDEpOworCQlwcmludGYoImtleXdvcmQ6ICVzXG4iLCBrZXl3b3JkKTsKKwkgICAgICAgIHhtbEZyZWUoa2V5d29yZCk7CisJfQorICAgICAgPC9wcmU+PHA+CisgICAgICA8L3A+PGRpdiBjbGFzcz0iY2FsbG91dGxpc3QiPjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9IkNhbGxvdXQgbGlzdCI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2Nvbm9kZXNldGNvdW50ZXIiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+VGhlIHZhbHVlIG9mIDx0dCBjbGFzcz0idmFybmFtZSI+bm9kZXNldC0mZ3Q7TnI8L3R0PiBob2xkcyB0aGUgbnVtYmVyIG9mCisJICBlbGVtZW50cyBpbiB0aGUgbm9kZSBzZXQuIEhlcmUgd2UgdXNlIGl0IHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuPC9wPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjY29wcmludGtleXdvcmRzIj48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzIucG5nIiBhbHQ9IjIiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPkhlcmUgd2UgcHJpbnQgdGhlIGNvbnRlbnRzIG9mIGVhY2ggb2YgdGhlIG5vZGVzIHJldHVybmVkLgorCSAgICA8L3A+PGRpdiBjbGFzcz0ibm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9Ik5vdGUiPjx0cj48dGQgcm93c3Bhbj0iMiIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSI+PGltZyBhbHQ9IltOb3RlXSIgc3JjPSJpbWFnZXMvbm90ZS5wbmciPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij5Ob3RlPC90aD48L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD5Ob3RlIHRoYXQgd2UgYXJlIHByaW50aW5nIHRoZSBjaGlsZCBub2RlIG9mIHRoZSBub2RlIHRoYXQgaXMKKwkJcmV0dXJuZWQsIGJlY2F1c2UgdGhlIGNvbnRlbnRzIG9mIHRoZSA8dHQgY2xhc3M9InZhcm5hbWUiPmtleXdvcmQ8L3R0PgorCQllbGVtZW50IGFyZSBhIGNoaWxkIHRleHQgbm9kZS48L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CisJICA8L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CisgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9Im5hdmZvb3RlciI+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXIwMXMwNC5odG1sIj5QcmV2PC9hPqA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPlVwPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwNi5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+UmV0cmlldmluZyBFbGVtZW50IENvbnRlbnSgPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBXcml0aW5nIGVsZW1lbnQgY29udGVudDwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcjAxczA2Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcjAxczA2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA5ZTZlZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDYuaHRtbApAQCAtMCwwICsxLDM1IEBACis8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+V3JpdGluZyBlbGVtZW50IGNvbnRlbnQ8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJhcjAxczA1Lmh0bWwiIHRpdGxlPSJVc2luZyBYUGF0aCB0byBSZXRyaWV2ZSBFbGVtZW50IENvbnRlbnQiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iYXIwMXMwNy5odG1sIiB0aXRsZT0iV3JpdGluZyBBdHRyaWJ1dGUiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPldyaXRpbmcgZWxlbWVudCBjb250ZW50PC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXIwMXMwNS5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcjAxczA3Lmh0bWwiPk5leHQ8L2E+PC90ZD48L3RyPjwvdGFibGU+PGhyPjwvZGl2PjxkaXYgY2xhc3M9InNlY3QxIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJ4bWx0dXRvcmlhbHdyaXRpbmdjb250ZW50Ij48L2E+V3JpdGluZyBlbGVtZW50IGNvbnRlbnQ8L2gyPjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PHA+PGEgY2xhc3M9ImluZGV4dGVybSIgbmFtZT0iaWQyNTg2OTY4Ij48L2E+CisgICAgICBXcml0aW5nIGVsZW1lbnQgY29udGVudCB1c2VzIG1hbnkgb2YgdGhlIHNhbWUgc3RlcHMgd2UgdXNlZCBhYm92ZQorICAgICAgJiM4MjEyOyBwYXJzaW5nIHRoZSBkb2N1bWVudCBhbmQgd2Fsa2luZyB0aGUgdHJlZS4gV2UgcGFyc2UgdGhlIGRvY3VtZW50LAorICAgICAgdGhlbiB0cmF2ZXJzZSB0aGUgdHJlZSB0byBmaW5kIHRoZSBwbGFjZSB3ZSB3YW50IHRvIGluc2VydCBvdXIgZWxlbWVudC4gRm9yCisgICAgICB0aGlzIGV4YW1wbGUsIHdlIHdhbnQgdG8gYWdhaW4gZmluZCB0aGUgInN0b3J5aW5mbyIgZWxlbWVudCBhbmQKKyAgICAgIHRoaXMgdGltZSBpbnNlcnQgYSBrZXl3b3JkLiBUaGVuIHdlJ2xsIHdyaXRlIHRoZSBmaWxlIHRvIGRpc2suIEZ1bGwgY29kZToKKyAgICAgIDxhIGhyZWY9ImFwZS5odG1sIiB0aXRsZT0iRS6gQ29kZSBmb3IgQWRkIEtleXdvcmQgRXhhbXBsZSI+QXBwZW5kaXigRSwgPGk+Q29kZSBmb3IgQWRkIEtleXdvcmQgRXhhbXBsZTwvaT48L2E+PC9wPjxwPgorICAgICAgVGhlIG1haW4gZGlmZmVyZW5jZSBpbiB0aGlzIGV4YW1wbGUgaXMgaW4KKyAgICAgIDx0dCBjbGFzcz0iZnVuY3Rpb24iPnBhcnNlU3Rvcnk8L3R0PjoKKworICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK3ZvaWQKK3BhcnNlU3RvcnkgKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyLCBjaGFyICprZXl3b3JkKSB7CisKKwk8YSBuYW1lPSJhZGRrZXl3b3JkIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8xLnBuZyIgYWx0PSIxIiBib3JkZXI9IjAiPiB4bWxOZXdUZXh0Q2hpbGQgKGN1ciwgTlVMTCwgImtleXdvcmQiLCBrZXl3b3JkKTsKKyAgICByZXR1cm47Cit9CisgICAgICA8L3ByZT48cD4KKyAgICAgIDwvcD48ZGl2IGNsYXNzPSJjYWxsb3V0bGlzdCI+PHRhYmxlIGJvcmRlcj0iMCIgc3VtbWFyeT0iQ2FsbG91dCBsaXN0Ij48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjYWRka2V5d29yZCI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8xLnBuZyIgYWx0PSIxIiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD5UaGUgPHR0IGNsYXNzPSJmdW5jdGlvbiI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxORVdURVhUQ0hJTEQiIHRhcmdldD0iX3RvcCI+eG1sTmV3VGV4dENoaWxkPC9hPjwvdHQ+CisJCQkJICAgICBmdW5jdGlvbiBhZGRzIGEgbmV3IGNoaWxkIGVsZW1lbnQgYXQgdGhlCisJCQkJICAgICBjdXJyZW50IG5vZGUgcG9pbnRlcidzIGxvY2F0aW9uIGluIHRoZQorCSAgICB0cmVlLCBzcGVjaWZpZWQgYnkgPHR0IGNsYXNzPSJ2YXJuYW1lIj5jdXI8L3R0Pi48L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CisgICAgICAgICA8L3A+PHA+CisgICAgICA8YSBjbGFzcz0iaW5kZXh0ZXJtIiBuYW1lPSJpZDI1ODcwNTIiPjwvYT4KKyAgICAgIE9uY2UgdGhlIG5vZGUgaGFzIGJlZW4gYWRkZWQsIHdlIHdvdWxkIGxpa2UgdG8gd3JpdGUgdGhlIGRvY3VtZW50IHRvCisgICAgICBmaWxlLiBJcyB5b3Ugd2FudCB0aGUgZWxlbWVudCB0byBoYXZlIGEgbmFtZXNwYWNlLCB5b3UgY2FuIGFkZCBpdCBoZXJlIGFzCisgICAgICB3ZWxsLiBJbiBvdXIgY2FzZSwgdGhlIG5hbWVzcGFjZSBpcyBOVUxMLgorICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKwl4bWxTYXZlRm9ybWF0RmlsZSAoZG9jbmFtZSwgZG9jLCAxKTsKKyAgICAgIDwvcHJlPjxwPgorICAgICAgVGhlIGZpcnN0IHBhcmFtZXRlciBpcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSB0byBiZSB3cml0dGVuLiBZb3UnbGwgbm90aWNlCisgICAgICBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgZmlsZSB3ZSBqdXN0IHJlYWQuIEluIHRoaXMgY2FzZSwgd2UganVzdCB3cml0ZSBvdmVyCisgICAgICB0aGUgb2xkIGZpbGUuIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGEgcG9pbnRlciB0byB0aGUgeG1sRG9jCisgICAgICBzdHJ1Y3R1cmUuIFNldHRpbmcgdGhlIHRoaXJkIHBhcmFtZXRlciBlcXVhbCB0byBvbmUgZW5zdXJlcyBpbmRlbnRpbmcgb24gb3V0cHV0LgorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDUuaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFyMDFzMDcuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPlVzaW5nIFhQYXRoIHRvIFJldHJpZXZlIEVsZW1lbnQgQ29udGVudKA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+oFdyaXRpbmcgQXR0cmlidXRlPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDcuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDVjNGRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwNy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5Xcml0aW5nIEF0dHJpYnV0ZTwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFyMDFzMDYuaHRtbCIgdGl0bGU9IldyaXRpbmcgZWxlbWVudCBjb250ZW50Ij48bGluayByZWw9Im5leHQiIGhyZWY9ImFyMDFzMDguaHRtbCIgdGl0bGU9IlJldHJpZXZpbmcgQXR0cmlidXRlcyI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJuYXZoZWFkZXIiPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj48dGggY29sc3Bhbj0iMyIgYWxpZ249ImNlbnRlciI+V3JpdGluZyBBdHRyaWJ1dGU8L3RoPjwvdHI+PHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0ibGVmdCI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJhcjAxczA2Lmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRoIHdpZHRoPSI2MCUiIGFsaWduPSJjZW50ZXIiPqA8L3RoPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFyMDFzMDguaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PC90YWJsZT48aHI+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdDEiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9InhtbHR1dG9yaWFsd3JpdGluZ2F0dHJpYnV0ZSI+PC9hPldyaXRpbmcgQXR0cmlidXRlPC9oMj48L2Rpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxwPjxhIGNsYXNzPSJpbmRleHRlcm0iIG5hbWU9ImlkMjU4NzA5MyI+PC9hPgorV3JpdGluZyBhbiBhdHRyaWJ1dGUgaXMgc2ltaWxhciB0byB3cml0aW5nIHRleHQgdG8gYSBuZXcgZWxlbWVudC4gSW4KKyAgICAgIHRoaXMgY2FzZSwgd2UnbGwgYWRkIGEgcmVmZXJlbmNlIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5VUkk8L3NwYW4+IHRvIG91cgorICAgICAgZG9jdW1lbnQuIEZ1bGwgY29kZTo8YSBocmVmPSJhcGYuaHRtbCIgdGl0bGU9IkYuoENvZGUgZm9yIEFkZCBBdHRyaWJ1dGUgRXhhbXBsZSI+QXBwZW5kaXigRiwgPGk+Q29kZSBmb3IgQWRkIEF0dHJpYnV0ZSBFeGFtcGxlPC9pPjwvYT4uPC9wPjxwPgorICAgICAgQSA8dHQgY2xhc3M9InNnbWx0YWctZWxlbWVudCI+cmVmZXJlbmNlPC90dD4gaXMgYSBjaGlsZCBvZiB0aGUgPHR0IGNsYXNzPSJzZ21sdGFnLWVsZW1lbnQiPnN0b3J5PC90dD4KKyAgICAgIGVsZW1lbnQsIHNvIGZpbmRpbmcgdGhlIHBsYWNlIHRvIHB1dCBvdXIgbmV3IGVsZW1lbnQgYW5kIGF0dHJpYnV0ZSBpcworICAgICAgc2ltcGxlLiBBcyBzb29uIGFzIHdlIGRvIHRoZSBlcnJvci1jaGVja2luZyB0ZXN0IGluIG91cgorICAgICAgPHR0IGNsYXNzPSJmdW5jdGlvbiI+cGFyc2VEb2M8L3R0Piwgd2UgYXJlIGluIHRoZSByaWdodCBzcG90IHRvIGFkZCBvdXIKKyAgICAgIGVsZW1lbnQuIEJ1dCBiZWZvcmUgd2UgZG8gdGhhdCwgd2UgbmVlZCB0byBtYWtlIGEgZGVjbGFyYXRpb24gdXNpbmcgYQorICAgICAgZGF0YSB0eXBlIHdlIGhhdmUgbm90IHNlZW4geWV0OgorICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKwl4bWxBdHRyUHRyIG5ld2F0dHI7CisgICAgICA8L3ByZT48cD4KKyAgICAgIFdlIGFsc28gbmVlZCBhbiBleHRyYSB4bWxOb2RlUHRyOgorICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKwl4bWxOb2RlUHRyIG5ld25vZGU7CisgICAgICA8L3ByZT48cD4KKyAgICA8L3A+PHA+CisgICAgICBUaGUgcmVzdCBvZiA8dHQgY2xhc3M9ImZ1bmN0aW9uIj5wYXJzZURvYzwvdHQ+IGlzIHRoZSBzYW1lIGFzIGJlZm9yZSB1bnRpbCB3ZQorICAgICAgY2hlY2sgdG8gc2VlIGlmIG91ciByb290IGVsZW1lbnQgaXMgPHR0IGNsYXNzPSJzZ21sdGFnLWVsZW1lbnQiPnN0b3J5PC90dD4uIElmIGl0IGlzLAorICAgICAgdGhlbiB3ZSBrbm93IHdlIGFyZSBhdCB0aGUgcmlnaHQgc3BvdCB0byBhZGQgb3VyIGVsZW1lbnQ6CisKKyAgICAgIDwvcD48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisJPGEgbmFtZT0iYWRkcmVmZXJlbmNlbm9kZSI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj4gbmV3bm9kZSA9IHhtbE5ld1RleHRDaGlsZCAoY3VyLCBOVUxMLCAicmVmZXJlbmNlIiwgTlVMTCk7CisJPGEgbmFtZT0iYWRkYXR0cmlidXRlbm9kZSI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMi5wbmciIGFsdD0iMiIgYm9yZGVyPSIwIj4gbmV3YXR0ciA9IHhtbE5ld1Byb3AgKG5ld25vZGUsICJ1cmkiLCB1cmkpOwkKKyAgICAgIDwvcHJlPjxwPgorICAgICAgPC9wPjxkaXYgY2xhc3M9ImNhbGxvdXRsaXN0Ij48dGFibGUgYm9yZGVyPSIwIiBzdW1tYXJ5PSJDYWxsb3V0IGxpc3QiPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNhZGRyZWZlcmVuY2Vub2RlIj48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPkZpcnN0IHdlIGFkZCBhIG5ldyBub2RlIGF0IHRoZSBsb2NhdGlvbiBvZiB0aGUgY3VycmVudCBub2RlCisJICAgIHBvaW50ZXIsIDx0dCBjbGFzcz0idmFybmFtZSI+Y3VyLjwvdHQ+IHVzaW5nIHRoZSA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTE5FV1RFWFRDSElMRCIgdGFyZ2V0PSJfdG9wIj54bWxOZXdUZXh0Q2hpbGQ8L2E+IGZ1bmN0aW9uLjwvcD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48cD4KKyAgIDwvcD48cD5PbmNlIHRoZSBub2RlIGlzIGFkZGVkLCB0aGUgZmlsZSBpcyB3cml0dGVuIHRvIGRpc2sganVzdCBhcyBpbiB0aGUKKyAgICBwcmV2aW91cyBleGFtcGxlIGluIHdoaWNoIHdlIGFkZGVkIGFuIGVsZW1lbnQgd2l0aCB0ZXh0IGNvbnRlbnQuPC9wPjwvZGl2PjxkaXYgY2xhc3M9Im5hdmZvb3RlciI+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXIwMXMwNi5odG1sIj5QcmV2PC9hPqA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPlVwPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwOC5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+V3JpdGluZyBlbGVtZW50IGNvbnRlbnSgPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBSZXRyaWV2aW5nIEF0dHJpYnV0ZXM8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwOC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvYXIwMXMwOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OGY4MTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcjAxczA4Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPlJldHJpZXZpbmcgQXR0cmlidXRlczwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFyMDFzMDcuaHRtbCIgdGl0bGU9IldyaXRpbmcgQXR0cmlidXRlIj48bGluayByZWw9Im5leHQiIGhyZWY9ImFyMDFzMDkuaHRtbCIgdGl0bGU9IkVuY29kaW5nIENvbnZlcnNpb24iPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPlJldHJpZXZpbmcgQXR0cmlidXRlczwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDcuaHRtbCI+UHJldjwvYT6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwOS5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0MSIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0ieG1sdHV0b3JpYWxhdHRyaWJ1dGUiPjwvYT5SZXRyaWV2aW5nIEF0dHJpYnV0ZXM8L2gyPjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PHA+PGEgY2xhc3M9ImluZGV4dGVybSIgbmFtZT0iaWQyNTg3MjM2Ij48L2E+CitSZXRyaWV2aW5nIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgaXMgc2ltaWxhciB0byB0aGUgcHJldmlvdXMKKyAgICBleGFtcGxlIGluIHdoaWNoIHdlIHJldHJpZXZlZCBhIG5vZGUncyB0ZXh0IGNvbnRlbnRzLiBJbiB0aGlzIGNhc2Ugd2UnbGwKKyAgICAgIGV4dHJhY3QgdGhlIHZhbHVlIG9mIHRoZSA8c3BhbiBjbGFzcz0iYWNyb255bSI+VVJJPC9zcGFuPiB3ZSBhZGRlZCBpbiB0aGUgcHJldmlvdXMKKyAgICAgIHNlY3Rpb24uIEZ1bGwgY29kZTogPGEgaHJlZj0iYXBnLmh0bWwiIHRpdGxlPSJHLqBDb2RlIGZvciBSZXRyaWV2aW5nIEF0dHJpYnV0ZSBWYWx1ZSBFeGFtcGxlIj5BcHBlbmRpeKBHLCA8aT5Db2RlIGZvciBSZXRyaWV2aW5nIEF0dHJpYnV0ZSBWYWx1ZSBFeGFtcGxlPC9pPjwvYT4uPC9wPjxwPgorICAgICAgVGhlIGluaXRpYWwgc3RlcHMgZm9yIHRoaXMgZXhhbXBsZSBhcmUgc2ltaWxhciB0byB0aGUgcHJldmlvdXMgb25lczogcGFyc2UKKyAgICAgIHRoZSBkb2MsIGZpbmQgdGhlIGVsZW1lbnQgeW91IGFyZSBpbnRlcmVzdGVkIGluLCB0aGVuIGVudGVyIGEgZnVuY3Rpb24gdG8KKyAgICAgIGNhcnJ5IG91dCB0aGUgc3BlY2lmaWMgdGFzayByZXF1aXJlZC4gSW4gdGhpcyBjYXNlLCB3ZSBjYWxsCisgICAgICA8dHQgY2xhc3M9ImZ1bmN0aW9uIj5nZXRSZWZlcmVuY2U8L3R0PjoKKyAgICAgIDwvcD48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cit2b2lkCitnZXRSZWZlcmVuY2UgKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyKSB7CisKKwl4bWxDaGFyICp1cmk7CisJY3VyID0gY3VyLSZndDt4bWxDaGlsZHJlbk5vZGU7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJICAgIGlmICgoIXhtbFN0cmNtcChjdXItJmd0O25hbWUsIChjb25zdCB4bWxDaGFyICopInJlZmVyZW5jZSIpKSkgeworCQkgICA8YSBuYW1lPSJnZXRhdHRyaWJ1dGV2YWx1ZSI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMS5wbmciIGFsdD0iMSIgYm9yZGVyPSIwIj4gdXJpID0geG1sR2V0UHJvcChjdXIsICJ1cmkiKTsKKwkJICAgIHByaW50ZigidXJpOiAlc1xuIiwgdXJpKTsKKwkJICAgIHhtbEZyZWUodXJpKTsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItJmd0O25leHQ7CisJfQorCXJldHVybjsKK30KKyAgICAgIDwvcHJlPjxwPgorICAgIAorICAgICAgPC9wPjxkaXYgY2xhc3M9ImNhbGxvdXRsaXN0Ij48dGFibGUgYm9yZGVyPSIwIiBzdW1tYXJ5PSJDYWxsb3V0IGxpc3QiPjx0cj48dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxhIGhyZWY9IiNnZXRhdHRyaWJ1dGV2YWx1ZSI+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy8xLnBuZyIgYWx0PSIxIiBib3JkZXI9IjAiPjwvYT4gPC90ZD48dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48cD4KKwkgICAgVGhlIGtleSBmdW5jdGlvbiBpcyA8dHQgY2xhc3M9ImZ1bmN0aW9uIj48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtdHJlZS5odG1sI1hNTEdFVFBST1AiIHRhcmdldD0iX3RvcCI+eG1sR2V0UHJvcDwvYT48L3R0Piwgd2hpY2ggcmV0dXJucyBhbgorICAgICAgPHR0IGNsYXNzPSJ2YXJuYW1lIj54bWxDaGFyPC90dD4gY29udGFpbmluZyB0aGUgYXR0cmlidXRlJ3MgdmFsdWUuIEluIHRoaXMgY2FzZSwKKwkJCQkJICAgd2UganVzdCBwcmludCBpdCBvdXQuCisgICAgICA8L3A+PGRpdiBjbGFzcz0ibm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjx0YWJsZSBib3JkZXI9IjAiIHN1bW1hcnk9Ik5vdGUiPjx0cj48dGQgcm93c3Bhbj0iMiIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSI+PGltZyBhbHQ9IltOb3RlXSIgc3JjPSJpbWFnZXMvbm90ZS5wbmciPjwvdGQ+PHRoIGFsaWduPSJsZWZ0Ij5Ob3RlPC90aD48L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KKwkgIElmIHlvdSBhcmUgdXNpbmcgYSA8c3BhbiBjbGFzcz0iYWNyb255bSI+RFREPC9zcGFuPiB0aGF0IGRlY2xhcmVzIGEgZml4ZWQgb3IKKwkgIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBhdHRyaWJ1dGUsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXRyaWV2ZSBpdC4KKwk8L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CisJICA8L3A+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PHA+CisgICAgIAorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDcuaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFyMDFzMDkuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPldyaXRpbmcgQXR0cmlidXRloDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gRW5jb2RpbmcgQ29udmVyc2lvbjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcjAxczA5Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9hcjAxczA5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk4N2FkZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2FyMDFzMDkuaHRtbApAQCAtMCwwICsxLDYzIEBACis8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+RW5jb2RpbmcgQ29udmVyc2lvbjwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS42MS4yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJMaWJ4bWwgVHV0b3JpYWwiPjxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9ImFyMDFzMDguaHRtbCIgdGl0bGU9IlJldHJpZXZpbmcgQXR0cmlidXRlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJhcGEuaHRtbCIgdGl0bGU9IkEuoENvbXBpbGF0aW9uIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9Im5hdmhlYWRlciI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPjx0aCBjb2xzcGFuPSIzIiBhbGlnbj0iY2VudGVyIj5FbmNvZGluZyBDb252ZXJzaW9uPC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXIwMXMwOC5odG1sIj5QcmV2PC9hPqA8L3RkPjx0aCB3aWR0aD0iNjAlIiBhbGlnbj0iY2VudGVyIj6gPC90aD48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJhcGEuaHRtbCI+TmV4dDwvYT48L3RkPjwvdHI+PC90YWJsZT48aHI+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdDEiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9InhtbHR1dG9yaWFsY29udmVydCI+PC9hPkVuY29kaW5nIENvbnZlcnNpb248L2gyPjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PHA+PGEgY2xhc3M9ImluZGV4dGVybSIgbmFtZT0iaWQyNTg3MzQ4Ij48L2E+CitEYXRhIGVuY29kaW5nIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMgYXJlIG9uZSBvZiB0aGUgbW9zdCBjb21tb24KKyAgICAgIGRpZmZpY3VsdGllcyBlbmNvdW50ZXJlZCBieSBwcm9ncmFtbWVycyBuZXcgdG8gPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlhNTDwvc3Bhbj4gaW4KKyAgICAgIGdlbmVyYWwgYW5kIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+bGlieG1sPC9zcGFuPiBpbiBwYXJ0aWN1bGFyLiBUaGlua2luZworICAgICAgdGhyb3VnaCB0aGUgZGVzaWduIG9mIHlvdXIgYXBwbGljYXRpb24gaW4gbGlnaHQgb2YgdGhpcyBpc3N1ZSB3aWxsIGhlbHAKKyAgICAgIGF2b2lkIGRpZmZpY3VsdGllcyBsYXRlci4gSW50ZXJuYWxseSwgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5saWJ4bWw8L3NwYW4+CisgICAgICBzdG9yZXMgYW5kIG1hbmlwdWxhdGVzIGRhdGEgaW4gdGhlIFVURi04IGZvcm1hdC4gRGF0YSB1c2VkIGJ5IHlvdXIgcHJvZ3JhbQorICAgICAgaW4gb3RoZXIgZm9ybWF0cywgc3VjaCBhcyB0aGUgY29tbW9ubHkgdXNlZCBJU08tODg1OS0xIGVuY29kaW5nLCBtdXN0IGJlCisgICAgICBjb252ZXJ0ZWQgdG8gVVRGLTggYmVmb3JlIHBhc3NpbmcgaXQgdG8gPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5saWJ4bWw8L3NwYW4+CisgICAgICBmdW5jdGlvbnMuIElmIHlvdSB3YW50IHlvdXIgcHJvZ3JhbSdzIG91dHB1dCBpbiBhbiBlbmNvZGluZyBvdGhlciB0aGFuCisgICAgICBVVEYtOCwgeW91IGFsc28gbXVzdCBjb252ZXJ0IGl0LjwvcD48cD48c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPkxpYnhtbDwvc3Bhbj4gdXNlcworICAgICAgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5pY29udjwvc3Bhbj4gaWYgaXQgaXMgYXZhaWxhYmxlIHRvIGNvbnZlcnQKKyAgICBkYXRhLiBXaXRob3V0IDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+aWNvbnY8L3NwYW4+LCBvbmx5IFVURi04LCBVVEYtMTYgYW5kCisgICAgSVNPLTg4NTktMSBjYW4gYmUgdXNlZCBhcyBleHRlcm5hbCBmb3JtYXRzLiBXaXRoCisgICAgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5pY29udjwvc3Bhbj4sIGFueSBmb3JtYXQgY2FuIGJlIHVzZWQgcHJvdmlkZWQKKyAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPmljb252PC9zcGFuPiBpcyBhYmxlIHRvIGNvbnZlcnQgaXQgdG8gYW5kIGZyb20KKyAgICBVVEYtOC4gQ3VycmVudGx5IDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+aWNvbnY8L3NwYW4+IHN1cHBvcnRzIGFib3V0IDE1MAorICAgIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9ybWF0cyB3aXRoIGFiaWxpdHkgdG8gY29udmVydCBmcm9tIGFueSB0byBhbnkuIFdoaWxlCisgICAgdGhlIGFjdHVhbCBudW1iZXIgb2Ygc3VwcG9ydGVkIGZvcm1hdHMgdmFyaWVzIGJldHdlZW4gaW1wbGVtZW50YXRpb25zLCBldmVyeQorICAgIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+aWNvbnY8L3NwYW4+IGltcGxlbWVudGF0aW9uIGlzIGFsbW9zdCBndWFyYW50ZWVkIHRvCisgICAgc3VwcG9ydCBldmVyeSBmb3JtYXQgYW55b25lIGhhcyBldmVyIGhlYXJkIG9mLjwvcD48ZGl2IGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+PHRhYmxlIGJvcmRlcj0iMCIgc3VtbWFyeT0iV2FybmluZyI+PHRyPjx0ZCByb3dzcGFuPSIyIiBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjI1Ij48aW1nIGFsdD0iW1dhcm5pbmddIiBzcmM9ImltYWdlcy93YXJuaW5nLnBuZyI+PC90ZD48dGggYWxpZ249ImxlZnQiPldhcm5pbmc8L3RoPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPkEgY29tbW9uIG1pc3Rha2UgaXMgdG8gdXNlIGRpZmZlcmVudCBmb3JtYXRzIGZvciB0aGUgaW50ZXJuYWwgZGF0YQorCWluIGRpZmZlcmVudCBwYXJ0cyBvZiBvbmUncyBjb2RlLiBUaGUgbW9zdCBjb21tb24gY2FzZSBpcyBhbiBhcHBsaWNhdGlvbgorCXRoYXQgYXNzdW1lcyBJU08tODg1OS0xIHRvIGJlIHRoZSBpbnRlcm5hbCBkYXRhIGZvcm1hdCwgY29tYmluZWQgd2l0aAorCTxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+bGlieG1sPC9zcGFuPiwgd2hpY2ggYXNzdW1lcyBVVEYtOCB0byBiZSB0aGUKKwlpbnRlcm5hbCBkYXRhIGZvcm1hdC4gVGhlIHJlc3VsdCBpcyBhbiBhcHBsaWNhdGlvbiB0aGF0IHRyZWF0cyBpbnRlcm5hbAorCWRhdGEgZGlmZmVyZW50bHksIGRlcGVuZGluZyBvbiB3aGljaCBjb2RlIHNlY3Rpb24gaXMgZXhlY3V0aW5nLiBUaGUgb25lIG9yCisJdGhlIG90aGVyIHBhcnQgb2YgY29kZSB3aWxsIHRoZW4sIG5hdHVyYWxseSwgbWlzaW50ZXJwcmV0IHRoZSBkYXRhLgorICAgICAgPC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjxwPlRoaXMgZXhhbXBsZSBjb25zdHJ1Y3RzIGEgc2ltcGxlIGRvY3VtZW50LCB0aGVuIGFkZHMgY29udGVudCBwcm92aWRlZAorICAgIGF0IHRoZSBjb21tYW5kIGxpbmUgdG8gdGhlIGRvY3VtZW50J3Mgcm9vdCBlbGVtZW50IGFuZCBvdXRwdXRzIHRoZSByZXN1bHRzCisgICAgdG8gPHR0IGNsYXNzPSJmaWxlbmFtZSI+c3Rkb3V0PC90dD4gaW4gdGhlIHByb3BlciBlbmNvZGluZy4gRm9yIHRoaXMgZXhhbXBsZSwgd2UKKyAgICB1c2UgSVNPLTg4NTktMSBlbmNvZGluZy4gVGhlIGVuY29kaW5nIG9mIHRoZSBzdHJpbmcgaW5wdXQgYXQgdGhlIGNvbW1hbmQKKyAgICBsaW5lIGlzIGNvbnZlcnRlZCBmcm9tIElTTy04ODU5LTEgdG8gVVRGLTguIEZ1bGwgY29kZTogPGEgaHJlZj0iYXBoLmh0bWwiIHRpdGxlPSJILqBDb2RlIGZvciBFbmNvZGluZyBDb252ZXJzaW9uIEV4YW1wbGUiPkFwcGVuZGl4oEgsIDxpPkNvZGUgZm9yIEVuY29kaW5nIENvbnZlcnNpb24gRXhhbXBsZTwvaT48L2E+PC9wPjxwPlRoZSBjb252ZXJzaW9uLCBlbmNhcHN1bGF0ZWQgaW4gdGhlIGV4YW1wbGUgY29kZSBpbiB0aGUKKyAgICAgIDx0dCBjbGFzcz0iZnVuY3Rpb24iPmNvbnZlcnQ8L3R0PiBmdW5jdGlvbiwgdXNlcworICAgICAgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj5saWJ4bWwnczwvc3Bhbj4KKyAgICA8dHQgY2xhc3M9ImZ1bmN0aW9uIj54bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcjwvdHQ+IGZ1bmN0aW9uOgorICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKwk8YSBuYW1lPSJoYW5kbGVyZGF0YXR5cGUiPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+eG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyOworICAgICAgICA8YSBuYW1lPSJjYWxjc2l6ZSI+PC9hPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMi5wbmciIGFsdD0iMiIgYm9yZGVyPSIwIj5zaXplID0gKGludClzdHJsZW4oaW4pKzE7IAorICAgICAgICBvdXRfc2l6ZSA9IHNpemUqMi0xOyAKKyAgICAgICAgb3V0ID0gbWFsbG9jKChzaXplX3Qpb3V0X3NpemUpOyAKKworJiM4MjMwOworCTxhIG5hbWU9ImZpbmRoYW5kbGVyZnVuY3Rpb24iPjwvYT48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzMucG5nIiBhbHQ9IjMiIGJvcmRlcj0iMCI+aGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuY29kaW5nKTsKKyYjODIzMDsKKwk8YSBuYW1lPSJjYWxsY29udmVyc2lvbmZ1bmN0aW9uIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy80LnBuZyIgYWx0PSI0IiBib3JkZXI9IjAiPmhhbmRsZXItJmd0O2lucHV0KG91dCwgJmFtcDtvdXRfc2l6ZSwgaW4sICZhbXA7dGVtcCk7CismIzgyMzA7CQorCTxhIG5hbWU9Im91dHB1dGVuY29kaW5nIj48L2E+PGltZyBzcmM9ImltYWdlcy9jYWxsb3V0cy81LnBuZyIgYWx0PSI1IiBib3JkZXI9IjAiPnhtbFNhdmVGb3JtYXRGaWxlRW5jKCItIiwgZG9jLCBlbmNvZGluZywgMSk7CisgICAgICA8L3ByZT48cD4KKyAgICAgIDwvcD48ZGl2IGNsYXNzPSJjYWxsb3V0bGlzdCI+PHRhYmxlIGJvcmRlcj0iMCIgc3VtbWFyeT0iQ2FsbG91dCBsaXN0Ij48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjaGFuZGxlcmRhdGF0eXBlIj48aW1nIHNyYz0iaW1hZ2VzL2NhbGxvdXRzLzEucG5nIiBhbHQ9IjEiIGJvcmRlcj0iMCI+PC9hPiA8L3RkPjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxwPjx0dCBjbGFzcz0idmFybmFtZSI+aGFuZGxlcjwvdHQ+IGlzIGRlY2xhcmVkIGFzIGEgcG9pbnRlciB0byBhbgorCSAgICA8dHQgY2xhc3M9ImZ1bmN0aW9uIj54bWxDaGFyRW5jb2RpbmdIYW5kbGVyPC90dD4gZnVuY3Rpb24uPC9wPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjY2FsY3NpemUiPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMi5wbmciIGFsdD0iMiIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+VGhlIDx0dCBjbGFzcz0iZnVuY3Rpb24iPnhtbENoYXJFbmNvZGluZ0hhbmRsZXI8L3R0PiBmdW5jdGlvbiBuZWVkcworCSAgdG8gYmUgZ2l2ZW4gdGhlIHNpemUgb2YgdGhlIGlucHV0IGFuZCBvdXRwdXQgc3RyaW5ncywgd2hpY2ggYXJlCisJICAgIGNhbGN1bGF0ZWQgaGVyZSBmb3Igc3RyaW5ncyA8dHQgY2xhc3M9InZhcm5hbWUiPmluPC90dD4gYW5kCisJICA8dHQgY2xhc3M9InZhcm5hbWUiPm91dDwvdHQ+LjwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2ZpbmRoYW5kbGVyZnVuY3Rpb24iPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvMy5wbmciIGFsdD0iMyIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+PHR0IGNsYXNzPSJmdW5jdGlvbiI+eG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXI8L3R0PiB0YWtlcyBhcyBpdHMKKwkgICAgYXJndW1lbnQgdGhlIGRhdGEncyBpbml0aWFsIGVuY29kaW5nIGFuZCBzZWFyY2hlcworCSAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPmxpYnhtbCdzPC9zcGFuPiBidWlsdC1pbiBzZXQgb2YgY29udmVyc2lvbgorCSAgICBoYW5kbGVycywgcmV0dXJuaW5nIGEgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gb3IgTlVMTCBpZiBub25lIGlzCisJICAgIGZvdW5kLjwvcD48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iI2NhbGxjb252ZXJzaW9uZnVuY3Rpb24iPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvNC5wbmciIGFsdD0iNCIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+VGhlIGNvbnZlcnNpb24gZnVuY3Rpb24gaWRlbnRpZmllZCBieSA8dHQgY2xhc3M9InZhcm5hbWUiPmhhbmRsZXI8L3R0PgorCSAgcmVxdWlyZXMgYXMgaXRzIGFyZ3VtZW50cyBwb2ludGVycyB0byB0aGUgaW5wdXQgYW5kIG91dHB1dCBzdHJpbmdzLAorCSAgYWxvbmcgd2l0aCB0aGUgbGVuZ3RoIG9mIGVhY2guIFRoZSBsZW5ndGhzIG11c3QgYmUgZGV0ZXJtaW5lZAorCSAgc2VwYXJhdGVseSBieSB0aGUgYXBwbGljYXRpb24uPC9wPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjb3V0cHV0ZW5jb2RpbmciPjxpbWcgc3JjPSJpbWFnZXMvY2FsbG91dHMvNS5wbmciIGFsdD0iNSIgYm9yZGVyPSIwIj48L2E+IDwvdGQ+PHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHA+VG8gb3V0cHV0IGluIGEgc3BlY2lmaWVkIGVuY29kaW5nIHJhdGhlciB0aGFuIFVURi04LCB3ZSB1c2UKKwkgICAgPHR0IGNsYXNzPSJmdW5jdGlvbiI+eG1sU2F2ZUZvcm1hdEZpbGVFbmM8L3R0Piwgc3BlY2lmeWluZyB0aGUKKwkgICAgZW5jb2RpbmcuPC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjxwPgorICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImFyMDFzMDguaHRtbCI+UHJldjwvYT6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImFwYS5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+UmV0cmlldmluZyBBdHRyaWJ1dGVzoDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gQS6gQ29tcGlsYXRpb248L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2JsYW5rLnBuZyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy9ibGFuay5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY0YmY0ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy9ibGFuay5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzEucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNDczNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvMS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzEwLnBuZyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy9jYWxsb3V0cy8xMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk3YmJjOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy9jYWxsb3V0cy8xMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzIucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMDkzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvMi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzMucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzMucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmN2I3MDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvMy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzQucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYjgzNjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvNC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzUucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkN2ViNDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvNS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzYucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzYucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYTY5NGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvNi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzcucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzcucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3MmU5NmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvNy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzgucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzgucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNjA5NzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvOC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzkucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhbGxvdXRzLzkucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwNjc2ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2FsbG91dHMvOS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhdXRpb24ucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2NhdXRpb24ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNzgwOWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvY2F1dGlvbi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2RyYWZ0LnBuZyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy9kcmFmdC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA4NDcwOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy9kcmFmdC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2hvbWUucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2hvbWUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiYjcxMWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvaG9tZS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2ltcG9ydGFudC5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvaW1wb3J0YW50LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmM5MGY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL2ltcG9ydGFudC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL25leHQucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL25leHQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ODM1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvbmV4dC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL25vdGUucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL25vdGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwYzNjNjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvbm90ZS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3ByZXYucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3ByZXYucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMjQ2NTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvcHJldi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3RpcC5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvdGlwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzRhYWIzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3RpcC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3RvYy1ibGFuay5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvdG9jLWJsYW5rLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmZhZDE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3RvYy1ibGFuay5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3RvYy1taW51cy5wbmcgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvdG9jLW1pbnVzLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmJiMDIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3RvYy1taW51cy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3RvYy1wbHVzLnBuZyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy90b2MtcGx1cy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQxMzEyYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy90b2MtcGx1cy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3VwLnBuZyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy91cC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc2MzRkZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2ltYWdlcy91cC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3dhcm5pbmcucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW1hZ2VzL3dhcm5pbmcucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMzNkYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbWFnZXMvd2FybmluZy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZWFkZGF0dHJpYnV0ZS5jIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZWFkZGF0dHJpYnV0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNmExOGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbmNsdWRlYWRkYXR0cmlidXRlLmMKQEAgLTAsMCArMSw2NCBAQAorPCFbQ0RBVEFbCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorCisKK3htbERvY1B0cgorcGFyc2VEb2MoY2hhciAqZG9jbmFtZSwgY2hhciAqdXJpKSB7CisKKwl4bWxEb2NQdHIgZG9jOworCXhtbE5vZGVQdHIgY3VyOworCXhtbE5vZGVQdHIgbmV3bm9kZTsKKwl4bWxBdHRyUHRyIG5ld2F0dHI7CisKKwlkb2MgPSB4bWxQYXJzZUZpbGUoZG9jbmFtZSk7CisJCisJaWYgKGRvYyA9PSBOVUxMICkgeworCQlmcHJpbnRmKHN0ZGVyciwiRG9jdW1lbnQgbm90IHBhcnNlZCBzdWNjZXNzZnVsbHkuIFxuIik7CisJCXJldHVybiAoTlVMTCk7CisJfQorCQorCWN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisJCisJaWYgKGN1ciA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCJlbXB0eSBkb2N1bWVudFxuIik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisJCisJaWYgKHhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJzdG9yeSIpKSB7CisJCWZwcmludGYoc3RkZXJyLCJkb2N1bWVudCBvZiB0aGUgd3JvbmcgdHlwZSwgcm9vdCBub2RlICE9IHN0b3J5Iik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisJCisJbmV3bm9kZSA9IHhtbE5ld1RleHRDaGlsZCAoY3VyLCBOVUxMLCAicmVmZXJlbmNlIiwgTlVMTCk7CisJbmV3YXR0ciA9IHhtbE5ld1Byb3AgKG5ld25vZGUsICJ1cmkiLCB1cmkpOworCXJldHVybihkb2MpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisKKwljaGFyICpkb2NuYW1lOworCWNoYXIgKnVyaTsKKwl4bWxEb2NQdHIgZG9jOworCisJaWYgKGFyZ2MgPD0gMikgeworCQlwcmludGYoIlVzYWdlOiAlcyBkb2NuYW1lLCB1cmlcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4oMCk7CisJfQorCisJZG9jbmFtZSA9IGFyZ3ZbMV07CisJdXJpID0gYXJndlsyXTsKKwlkb2MgPSBwYXJzZURvYyAoZG9jbmFtZSwgdXJpKTsKKwlpZiAoZG9jICE9IE5VTEwpIHsKKwkJeG1sU2F2ZUZvcm1hdEZpbGUgKGRvY25hbWUsIGRvYywgMSk7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwl9CisJcmV0dXJuICgxKTsKK30KK11dPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZWFkZGtleXdvcmQuYyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2luY2x1ZGVhZGRrZXl3b3JkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc1MTY4ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2luY2x1ZGVhZGRrZXl3b3JkLmMKQEAgLTAsMCArMSw3NSBAQAorPCFbQ0RBVEFbCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorCit2b2lkCitwYXJzZVN0b3J5ICh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGN1ciwgY2hhciAqa2V5d29yZCkgeworCisJeG1sTmV3VGV4dENoaWxkIChjdXIsIE5VTEwsICJrZXl3b3JkIiwga2V5d29yZCk7CisgICAgcmV0dXJuOworfQorCit4bWxEb2NQdHIKK3BhcnNlRG9jKGNoYXIgKmRvY25hbWUsIGNoYXIgKmtleXdvcmQpIHsKKworCXhtbERvY1B0ciBkb2M7CisJeG1sTm9kZVB0ciBjdXI7CisKKwlkb2MgPSB4bWxQYXJzZUZpbGUoZG9jbmFtZSk7CisJCisJaWYgKGRvYyA9PSBOVUxMICkgeworCQlmcHJpbnRmKHN0ZGVyciwiRG9jdW1lbnQgbm90IHBhcnNlZCBzdWNjZXNzZnVsbHkuIFxuIik7CisJCXJldHVybiAoTlVMTCk7CisJfQorCQorCWN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisJCisJaWYgKGN1ciA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCJlbXB0eSBkb2N1bWVudFxuIik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisJCisJaWYgKHhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJzdG9yeSIpKSB7CisJCWZwcmludGYoc3RkZXJyLCJkb2N1bWVudCBvZiB0aGUgd3JvbmcgdHlwZSwgcm9vdCBub2RlICE9IHN0b3J5Iik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisJCisJY3VyID0gY3VyLT54bWxDaGlsZHJlbk5vZGU7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCWlmICgoIXhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopInN0b3J5aW5mbyIpKSl7CisJCQlwYXJzZVN0b3J5IChkb2MsIGN1ciwga2V5d29yZCk7CisJCX0KKwkJIAorCWN1ciA9IGN1ci0+bmV4dDsKKwl9CisJcmV0dXJuKGRvYyk7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKworCWNoYXIgKmRvY25hbWU7CisJY2hhciAqa2V5d29yZDsKKwl4bWxEb2NQdHIgZG9jOworCisJaWYgKGFyZ2MgPD0gMikgeworCQlwcmludGYoIlVzYWdlOiAlcyBkb2NuYW1lLCBrZXl3b3JkXG4iLCBhcmd2WzBdKTsKKwkJcmV0dXJuKDApOworCX0KKworCWRvY25hbWUgPSBhcmd2WzFdOworCWtleXdvcmQgPSBhcmd2WzJdOworCWRvYyA9IHBhcnNlRG9jIChkb2NuYW1lLCBrZXl3b3JkKTsKKwlpZiAoZG9jICE9IE5VTEwpIHsKKwkJeG1sU2F2ZUZvcm1hdEZpbGUgKGRvY25hbWUsIGRvYywgMCk7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwl9CisJCisJcmV0dXJuICgxKTsKK30KK11dPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZWNvbnZlcnQuYyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2luY2x1ZGVjb252ZXJ0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgyZTU2ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2luY2x1ZGVjb252ZXJ0LmMKQEAgLTAsMCArMSw3MyBAQAorPCFbQ0RBVEFbCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorCisKK3Vuc2lnbmVkIGNoYXIqCitjb252ZXJ0ICh1bnNpZ25lZCBjaGFyICppbiwgY2hhciAqZW5jb2RpbmcpCit7CisJdW5zaWduZWQgY2hhciAqb3V0OworICAgICAgICBpbnQgcmV0LHNpemUsb3V0X3NpemUsdGVtcDsKKyAgICAgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyOworCisgICAgICAgIHNpemUgPSAoaW50KXN0cmxlbihpbikrMTsgCisgICAgICAgIG91dF9zaXplID0gc2l6ZSoyLTE7IAorICAgICAgICBvdXQgPSBtYWxsb2MoKHNpemVfdClvdXRfc2l6ZSk7IAorCisgICAgICAgIGlmIChvdXQpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghaGFuZGxlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShvdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgb3V0ID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG91dCkgeworICAgICAgICAgICAgICAgIHRlbXA9c2l6ZS0xOworICAgICAgICAgICAgICAgIHJldCA9IGhhbmRsZXItPmlucHV0KG91dCwgJm91dF9zaXplLCBpbiwgJnRlbXApOworICAgICAgICAgICAgICAgIGlmIChyZXQgfHwgdGVtcC1zaXplKzEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJjb252ZXJzaW9uIHdhc24ndCBzdWNjZXNzZnVsLlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoImNvbnZlcnNpb24gd2Fzbid0IHN1Y2Nlc3NmdWwuIGNvbnZlcnRlZDogJWkgb2N0ZXRzLlxuIix0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUob3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dCA9IE5VTEw7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dCA9IHJlYWxsb2Mob3V0LG91dF9zaXplKzEpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dFtvdXRfc2l6ZV09MDsgLypudWxsIHRlcm1pbmF0aW5nIG91dCovCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJubyBtZW1cbiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAob3V0KTsKK30JCisKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCisJdW5zaWduZWQgY2hhciAqY29udGVudCwgKm91dDsKKwl4bWxEb2NQdHIgZG9jOworCXhtbE5vZGVQdHIgcm9vdG5vZGU7CisJY2hhciAqZW5jb2RpbmcgPSAiSVNPLTg4NTktMSI7CisJCisJCQorCWlmIChhcmdjIDw9IDEpIHsKKwkJcHJpbnRmKCJVc2FnZTogJXMgY29udGVudFxuIiwgYXJndlswXSk7CisJCXJldHVybigwKTsKKwl9CisKKwljb250ZW50ID0gYXJndlsxXTsKKworCW91dCA9IGNvbnZlcnQoY29udGVudCwgZW5jb2RpbmcpOworCisJZG9jID0geG1sTmV3RG9jICgiMS4wIik7CisJcm9vdG5vZGUgPSB4bWxOZXdEb2NOb2RlKGRvYywgTlVMTCwgKGNvbnN0IHhtbENoYXIqKSJyb290Iiwgb3V0KTsKKwl4bWxEb2NTZXRSb290RWxlbWVudChkb2MsIHJvb3Rub2RlKTsKKworCXhtbFNhdmVGb3JtYXRGaWxlRW5jKCItIiwgZG9jLCBlbmNvZGluZywgMSk7CisJcmV0dXJuICgxKTsKK30KK11dPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZWdldGF0dHJpYnV0ZS5jIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZWdldGF0dHJpYnV0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyYjc0NzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbmNsdWRlZ2V0YXR0cmlidXRlLmMKQEAgLTAsMCArMSw3MiBAQAorPCFbQ0RBVEFbCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorCit2b2lkCitnZXRSZWZlcmVuY2UgKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyKSB7CisKKwl4bWxDaGFyICp1cmk7CisJY3VyID0gY3VyLT54bWxDaGlsZHJlbk5vZGU7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJICAgIGlmICgoIXhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopInJlZmVyZW5jZSIpKSkgeworCQkgICAgdXJpID0geG1sR2V0UHJvcChjdXIsICJ1cmkiKTsKKwkJICAgIHByaW50ZigidXJpOiAlc1xuIiwgdXJpKTsKKwkJICAgIHhtbEZyZWUodXJpKTsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorCXJldHVybjsKK30KKworCit2b2lkCitwYXJzZURvYyhjaGFyICpkb2NuYW1lKSB7CisKKwl4bWxEb2NQdHIgZG9jOworCXhtbE5vZGVQdHIgY3VyOworCisJZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOworCQorCWlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm47CisJfQorCQorCWN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisJCisJaWYgKGN1ciA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCJlbXB0eSBkb2N1bWVudFxuIik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuOworCX0KKwkKKwlpZiAoeG1sU3RyY21wKGN1ci0+bmFtZSwgKGNvbnN0IHhtbENoYXIgKikgInN0b3J5IikpIHsKKwkJZnByaW50ZihzdGRlcnIsImRvY3VtZW50IG9mIHRoZSB3cm9uZyB0eXBlLCByb290IG5vZGUgIT0gc3RvcnkiKTsKKwkJeG1sRnJlZURvYyhkb2MpOworCQlyZXR1cm47CisJfQorCQorCWdldFJlZmVyZW5jZSAoZG9jLCBjdXIpOworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm47Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKworCWNoYXIgKmRvY25hbWU7CisKKwlpZiAoYXJnYyA8PSAxKSB7CisJCXByaW50ZigiVXNhZ2U6ICVzIGRvY25hbWVcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4oMCk7CisJfQorCisJZG9jbmFtZSA9IGFyZ3ZbMV07CisJcGFyc2VEb2MgKGRvY25hbWUpOworCQorCXJldHVybiAoMSk7Cit9CitdXT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2luY2x1ZGVrZXl3b3JkLmMgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbmNsdWRla2V5d29yZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YmI0NjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbmNsdWRla2V5d29yZC5jCkBAIC0wLDAgKzEsNzkgQEAKKzwhW0NEQVRBWworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKwordm9pZAorcGFyc2VTdG9yeSAoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIpIHsKKworCXhtbENoYXIgKmtleTsKKwljdXIgPSBjdXItPnhtbENoaWxkcmVuTm9kZTsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKCgheG1sU3RyY21wKGN1ci0+bmFtZSwgKGNvbnN0IHhtbENoYXIgKikia2V5d29yZCIpKSkgeworCQkgICAga2V5ID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBjdXItPnhtbENoaWxkcmVuTm9kZSwgMSk7CisJCSAgICBwcmludGYoImtleXdvcmQ6ICVzXG4iLCBrZXkpOworCQkgICAgeG1sRnJlZShrZXkpOworIAkgICAgfQorCWN1ciA9IGN1ci0+bmV4dDsKKwl9CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgdm9pZAorcGFyc2VEb2MoY2hhciAqZG9jbmFtZSkgeworCisJeG1sRG9jUHRyIGRvYzsKKwl4bWxOb2RlUHRyIGN1cjsKKworCWRvYyA9IHhtbFBhcnNlRmlsZShkb2NuYW1lKTsKKwkKKwlpZiAoZG9jID09IE5VTEwgKSB7CisJCWZwcmludGYoc3RkZXJyLCJEb2N1bWVudCBub3QgcGFyc2VkIHN1Y2Nlc3NmdWxseS4gXG4iKTsKKwkJcmV0dXJuOworCX0KKwkKKwljdXIgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworCQorCWlmIChjdXIgPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwiZW1wdHkgZG9jdW1lbnRcbiIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJCXJldHVybjsKKwl9CisJCisJaWYgKHhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJzdG9yeSIpKSB7CisJCWZwcmludGYoc3RkZXJyLCJkb2N1bWVudCBvZiB0aGUgd3JvbmcgdHlwZSwgcm9vdCBub2RlICE9IHN0b3J5Iik7CisJCXhtbEZyZWVEb2MoZG9jKTsKKwkJcmV0dXJuOworCX0KKwkKKwljdXIgPSBjdXItPnhtbENoaWxkcmVuTm9kZTsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkJaWYgKCgheG1sU3RyY21wKGN1ci0+bmFtZSwgKGNvbnN0IHhtbENoYXIgKikic3RvcnlpbmZvIikpKXsKKwkJCXBhcnNlU3RvcnkgKGRvYywgY3VyKTsKKwkJfQorCQkgCisJY3VyID0gY3VyLT5uZXh0OworCX0KKwkKKwl4bWxGcmVlRG9jKGRvYyk7CisJcmV0dXJuOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisKKwljaGFyICpkb2NuYW1lOworCQkKKwlpZiAoYXJnYyA8PSAxKSB7CisJCXByaW50ZigiVXNhZ2U6ICVzIGRvY25hbWVcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4oMCk7CisJfQorCisJZG9jbmFtZSA9IGFyZ3ZbMV07CisJcGFyc2VEb2MgKGRvY25hbWUpOworCisJcmV0dXJuICgxKTsKK30KK11dPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZXhwYXRoLmMgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbmNsdWRleHBhdGguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjY2ZTYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwvaW5jbHVkZXhwYXRoLmMKQEAgLTAsMCArMSw3NCBAQAorPCFbQ0RBVEFbCisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorCit4bWxEb2NQdHIKK2dldGRvYyAoY2hhciAqZG9jbmFtZSkgeworCXhtbERvY1B0ciBkb2M7CisJZG9jID0geG1sUGFyc2VGaWxlKGRvY25hbWUpOworCQorCWlmIChkb2MgPT0gTlVMTCApIHsKKwkJZnByaW50ZihzdGRlcnIsIkRvY3VtZW50IG5vdCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LiBcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gZG9jOworfQorCit4bWxYUGF0aE9iamVjdFB0cgorZ2V0bm9kZXNldCAoeG1sRG9jUHRyIGRvYywgeG1sQ2hhciAqeHBhdGgpeworCQorCXhtbFhQYXRoQ29udGV4dFB0ciBjb250ZXh0OworCXhtbFhQYXRoT2JqZWN0UHRyIHJlc3VsdDsKKworCWNvbnRleHQgPSB4bWxYUGF0aE5ld0NvbnRleHQoZG9jKTsKKwlpZiAoY29udGV4dCA9PSBOVUxMKSB7CisJCXByaW50ZigiRXJyb3IgaW4geG1sWFBhdGhOZXdDb250ZXh0XG4iKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCXJlc3VsdCA9IHhtbFhQYXRoRXZhbEV4cHJlc3Npb24oeHBhdGgsIGNvbnRleHQpOworCXhtbFhQYXRoRnJlZUNvbnRleHQoY29udGV4dCk7CisJaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisJCXByaW50ZigiRXJyb3IgaW4geG1sWFBhdGhFdmFsRXhwcmVzc2lvblxuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlpZih4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KHJlc3VsdC0+bm9kZXNldHZhbCkpeworCQl4bWxYUGF0aEZyZWVPYmplY3QocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBwcmludGYoIk5vIHJlc3VsdFxuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQoraW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworCisJY2hhciAqZG9jbmFtZTsKKwl4bWxEb2NQdHIgZG9jOworCXhtbENoYXIgKnhwYXRoID0gKHhtbENoYXIqKSAiLy9rZXl3b3JkIjsKKwl4bWxOb2RlU2V0UHRyIG5vZGVzZXQ7CisJeG1sWFBhdGhPYmplY3RQdHIgcmVzdWx0OworCWludCBpOworCXhtbENoYXIgKmtleXdvcmQ7CisJCQorCWlmIChhcmdjIDw9IDEpIHsKKwkJcHJpbnRmKCJVc2FnZTogJXMgZG9jbmFtZVxuIiwgYXJndlswXSk7CisJCXJldHVybigwKTsKKwl9CisKKwlkb2NuYW1lID0gYXJndlsxXTsKKwlkb2MgPSBnZXRkb2MoZG9jbmFtZSk7CisJcmVzdWx0ID0gZ2V0bm9kZXNldCAoZG9jLCB4cGF0aCk7CisJaWYgKHJlc3VsdCkgeworCQlub2Rlc2V0ID0gcmVzdWx0LT5ub2Rlc2V0dmFsOworCQlmb3IgKGk9MDsgaSA8IG5vZGVzZXQtPm5vZGVOcjsgaSsrKSB7CisJCQlrZXl3b3JkID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBub2Rlc2V0LT5ub2RlVGFiW2ldLT54bWxDaGlsZHJlbk5vZGUsIDEpOworCQlwcmludGYoImtleXdvcmQ6ICVzXG4iLCBrZXl3b3JkKTsKKwkJeG1sRnJlZShrZXl3b3JkKTsKKwkJfQorCQl4bWxYUGF0aEZyZWVPYmplY3QgKHJlc3VsdCk7CisJfQorCXhtbEZyZWVEb2MoZG9jKTsKKwl4bWxDbGVhbnVwUGFyc2VyKCk7CisJcmV0dXJuICgxKTsKK30KK11dPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2luZGV4Lmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZmQ0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5MaWJ4bWwgVHV0b3JpYWw8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9Im5leHQiIGhyZWY9ImFyMDFzMDIuaHRtbCIgdGl0bGU9IkRhdGEgVHlwZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPkxpYnhtbCBUdXRvcmlhbDwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwMi5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48L3RhYmxlPjxocj48L2Rpdj48ZGl2IGNsYXNzPSJhcnRpY2xlIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iaWQyNDczNjYwIj48L2E+TGlieG1sIFR1dG9yaWFsPC9oMT48L2Rpdj48ZGl2PjxkaXYgY2xhc3M9ImF1dGhvciI+PGgzIGNsYXNzPSJhdXRob3IiPjxzcGFuIGNsYXNzPSJmaXJzdG5hbWUiPkpvaG48L3NwYW4+IDxzcGFuIGNsYXNzPSJzdXJuYW1lIj5GbGVjazwvc3Bhbj48L2gzPjwvZGl2PjwvZGl2PjxkaXY+PHAgY2xhc3M9ImNvcHlyaWdodCI+Q29weXJpZ2h0IKkgMjAwMiwgMjAwMyBKb2huIEZsZWNrPC9wPjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0icmV2aGlzdG9yeSI+PHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9IlJldmlzaW9uIGhpc3RvcnkiPjx0cj48dGggYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj48Yj5SZXZpc2lvbiBIaXN0b3J5PC9iPjwvdGg+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0Ij5SZXZpc2lvbiAxPC90ZD48dGQgYWxpZ249ImxlZnQiPkp1bmUgNCwgMjAwMjwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0IiBjb2xzcGFuPSIyIj5Jbml0aWFsIGRyYWZ0PC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiPlJldmlzaW9uIDI8L3RkPjx0ZCBhbGlnbj0ibGVmdCI+SnVuZSAxMiwgMjAwMjwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0IiBjb2xzcGFuPSIyIj5yZXRyaWV2aW5nIGF0dHJpYnV0ZSB2YWx1ZSBhZGRlZDwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0Ij5SZXZpc2lvbiAzPC90ZD48dGQgYWxpZ249ImxlZnQiPkF1Zy4gMzEsIDIwMDI8L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj0ibGVmdCIgY29sc3Bhbj0iMiI+ZnJlZWluZyBtZW1vcnkgZml4PC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiPlJldmlzaW9uIDQ8L3RkPjx0ZCBhbGlnbj0ibGVmdCI+Tm92LiAxMCwgMjAwMjwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0IiBjb2xzcGFuPSIyIj5lbmNvZGluZyBkaXNjdXNzaW9uIGFkZGVkPC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiPlJldmlzaW9uIDU8L3RkPjx0ZCBhbGlnbj0ibGVmdCI+RGVjLiAxNSwgMjAwMjwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0IiBjb2xzcGFuPSIyIj5tb3JlIG1lbW9yeSBmcmVlaW5nIGNoYW5nZXM8L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj0ibGVmdCI+UmV2aXNpb24gNjwvdGQ+PHRkIGFsaWduPSJsZWZ0Ij5KYW4uIDI2LiAyMDAzPC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiIGNvbHNwYW49IjIiPmFkZCBpbmRleDwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0Ij5SZXZpc2lvbiA3PC90ZD48dGQgYWxpZ249ImxlZnQiPkFwcmlsIDI1LCAyMDAzPC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiIGNvbHNwYW49IjIiPmFkZCBjb21waWxhdGlvbiBhcHBlbmRpeDwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0Ij5SZXZpc2lvbiA4PC90ZD48dGQgYWxpZ249ImxlZnQiPkp1bHkgMjQsIDIwMDM8L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj0ibGVmdCIgY29sc3Bhbj0iMiI+YWRkIFhQYXRoIGV4YW1wbGU8L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj0ibGVmdCI+UmV2aXNpb24gOTwvdGQ+PHRkIGFsaWduPSJsZWZ0Ij5GZWIuIDE0LCAyMDA0PC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiIGNvbHNwYW49IjIiPkZpeCBidWcgaW4gWFBhdGggZXhhbXBsZTwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0Ij5SZXZpc2lvbiA3PC90ZD48dGQgYWxpZ249ImxlZnQiPkF1Zy4gMjQsIDIwMDQ8L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj0ibGVmdCIgY29sc3Bhbj0iMiI+Rml4IGFub3RoZXIgYnVnIGluIFhQYXRoIGV4YW1wbGU8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2PjwvZGl2Pjxocj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2MiPjxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD48ZGw+PGR0PjxhIGhyZWY9ImluZGV4Lmh0bWwjaW50cm9kdWN0aW9uIj5JbnRyb2R1Y3Rpb248L2E+PC9kdD48ZHQ+PGEgaHJlZj0iYXIwMXMwMi5odG1sIj5EYXRhIFR5cGVzPC9hPjwvZHQ+PGR0PjxhIGhyZWY9ImFyMDFzMDMuaHRtbCI+UGFyc2luZyB0aGUgZmlsZTwvYT48L2R0PjxkdD48YSBocmVmPSJhcjAxczA0Lmh0bWwiPlJldHJpZXZpbmcgRWxlbWVudCBDb250ZW50PC9hPjwvZHQ+PGR0PjxhIGhyZWY9ImFyMDFzMDUuaHRtbCI+VXNpbmcgWFBhdGggdG8gUmV0cmlldmUgRWxlbWVudCBDb250ZW50PC9hPjwvZHQ+PGR0PjxhIGhyZWY9ImFyMDFzMDYuaHRtbCI+V3JpdGluZyBlbGVtZW50IGNvbnRlbnQ8L2E+PC9kdD48ZHQ+PGEgaHJlZj0iYXIwMXMwNy5odG1sIj5Xcml0aW5nIEF0dHJpYnV0ZTwvYT48L2R0PjxkdD48YSBocmVmPSJhcjAxczA4Lmh0bWwiPlJldHJpZXZpbmcgQXR0cmlidXRlczwvYT48L2R0PjxkdD48YSBocmVmPSJhcjAxczA5Lmh0bWwiPkVuY29kaW5nIENvbnZlcnNpb248L2E+PC9kdD48ZHQ+QS4gPGEgaHJlZj0iYXBhLmh0bWwiPkNvbXBpbGF0aW9uPC9hPjwvZHQ+PGR0PkIuIDxhIGhyZWY9ImFwYi5odG1sIj5TYW1wbGUgRG9jdW1lbnQ8L2E+PC9kdD48ZHQ+Qy4gPGEgaHJlZj0iYXBjLmh0bWwiPkNvZGUgZm9yIEtleXdvcmQgRXhhbXBsZTwvYT48L2R0PjxkdD5ELiA8YSBocmVmPSJhcGQuaHRtbCI+Q29kZSBmb3IgWFBhdGggRXhhbXBsZTwvYT48L2R0PjxkdD5FLiA8YSBocmVmPSJhcGUuaHRtbCI+Q29kZSBmb3IgQWRkIEtleXdvcmQgRXhhbXBsZTwvYT48L2R0PjxkdD5GLiA8YSBocmVmPSJhcGYuaHRtbCI+Q29kZSBmb3IgQWRkIEF0dHJpYnV0ZSBFeGFtcGxlPC9hPjwvZHQ+PGR0PkcuIDxhIGhyZWY9ImFwZy5odG1sIj5Db2RlIGZvciBSZXRyaWV2aW5nIEF0dHJpYnV0ZSBWYWx1ZSBFeGFtcGxlPC9hPjwvZHQ+PGR0PkguIDxhIGhyZWY9ImFwaC5odG1sIj5Db2RlIGZvciBFbmNvZGluZyBDb252ZXJzaW9uIEV4YW1wbGU8L2E+PC9kdD48ZHQ+SS4gPGEgaHJlZj0iYXBpLmh0bWwiPkFja25vd2xlZGdlbWVudHM8L2E+PC9kdD48L2RsPjwvZGl2PjxkaXYgY2xhc3M9ImFic3RyYWN0Ij48cCBjbGFzcz0idGl0bGUiPjxiPkFic3RyYWN0PC9iPjwvcD48cD5MaWJ4bWwgaXMgYSBmcmVlbHkgbGljZW5zZWQgQyBsYW5ndWFnZSBsaWJyYXJ5IGZvciBoYW5kbGluZworICAgIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5YTUw8L3NwYW4+LCBwb3J0YWJsZSBhY3Jvc3MgYSBsYXJnZSBudW1iZXIgb2YgcGxhdGZvcm1zLiBUaGlzCisgICAgdHV0b3JpYWwgcHJvdmlkZXMgZXhhbXBsZXMgb2YgaXRzIGJhc2ljIGZ1bmN0aW9ucy48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdDEiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9ImludHJvZHVjdGlvbiI+PC9hPkludHJvZHVjdGlvbjwvaDI+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48cD5MaWJ4bWwgaXMgYSBDIGxhbmd1YWdlIGxpYnJhcnkgaW1wbGVtZW50aW5nIGZ1bmN0aW9ucyBmb3IgcmVhZGluZywKKyAgICAgIGNyZWF0aW5nIGFuZCBtYW5pcHVsYXRpbmcgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlhNTDwvc3Bhbj4gZGF0YS4gVGhpcyB0dXRvcmlhbAorICAgIHByb3ZpZGVzIGV4YW1wbGUgY29kZSBhbmQgZXhwbGFuYXRpb25zIG9mIGl0cyBiYXNpYyBmdW5jdGlvbmFsaXR5LjwvcD48cD5MaWJ4bWwgYW5kIG1vcmUgZGV0YWlscyBhYm91dCBpdHMgdXNlIGFyZSBhdmFpbGFibGUgb24gPGEgaHJlZj0iaHR0cDovL3d3dy54bWxzb2Z0Lm9yZy8iIHRhcmdldD0iX3RvcCI+dGhlIHByb2plY3QgaG9tZSBwYWdlPC9hPi4gSW5jbHVkZWQgdGhlcmUgaXMgY29tcGxldGUgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLWxpYi5odG1sIiB0YXJnZXQ9Il90b3AiPgorCTxzcGFuIGNsYXNzPSJhY3JvbnltIj5BUEk8L3NwYW4+IGRvY3VtZW50YXRpb248L2E+LiBUaGlzIHR1dG9yaWFsIGlzIG5vdCBtZWFudAorICAgIHRvIHN1YnN0aXR1dGUgZm9yIHRoYXQgY29tcGxldGUgZG9jdW1lbnRhdGlvbiwgYnV0IHRvIGlsbHVzdHJhdGUgdGhlCisgICAgZnVuY3Rpb25zIG5lZWRlZCB0byB1c2UgdGhlIGxpYnJhcnkgdG8gcGVyZm9ybSBiYXNpYyBvcGVyYXRpb25zLgorCis8L3A+PHA+VGhlIHR1dG9yaWFsIGlzIGJhc2VkIG9uIGEgc2ltcGxlIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5YTUw8L3NwYW4+IGFwcGxpY2F0aW9uIEkKKyAgICB1c2UgZm9yIGFydGljbGVzIEkgd3JpdGUuIFRoZSBmb3JtYXQgaW5jbHVkZXMgbWV0YWRhdGEgYW5kIHRoZSBib2R5CisgICAgb2YgdGhlIGFydGljbGUuPC9wPjxwPlRoZSBleGFtcGxlIGNvZGUgaW4gdGhpcyB0dXRvcmlhbCBkZW1vbnN0cmF0ZXMgaG93IHRvOgorICAgICAgPC9wPjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIHR5cGU9ImRpc2MiPjxsaT48cD5QYXJzZSB0aGUgZG9jdW1lbnQuPC9wPjwvbGk+PGxpPjxwPkV4dHJhY3QgdGhlIHRleHQgd2l0aGluIGEgc3BlY2lmaWVkIGVsZW1lbnQuPC9wPjwvbGk+PGxpPjxwPkFkZCBhbiBlbGVtZW50IGFuZCBpdHMgY29udGVudC48L3A+PC9saT48bGk+PHA+QWRkIGFuIGF0dHJpYnV0ZS48L3A+PC9saT48bGk+PHA+RXh0cmFjdCB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlLjwvcD48L2xpPjwvdWw+PC9kaXY+PHA+CisgICAgPC9wPjxwPkZ1bGwgY29kZSBmb3IgdGhlIGV4YW1wbGVzIGlzIGluY2x1ZGVkIGluIHRoZSBhcHBlbmRpY2VzLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJuYXZmb290ZXIiPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij6gPC90ZD48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+oDwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iYXIwMXMwMi5odG1sIj5OZXh0PC9hPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPqA8L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gRGF0YSBUeXBlczwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9peDAxLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy90dXRvcmlhbC9peDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNhOWQ0MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL2l4MDEuaHRtbApAQCAtMCwwICsxIEBACis8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+SW5kZXg8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iTGlieG1sIFR1dG9yaWFsIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJhcGkuaHRtbCIgdGl0bGU9IkkuoEFja25vd2xlZGdlbWVudHMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPkluZGV4PC90aD48L3RyPjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXBpLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRoIHdpZHRoPSI2MCUiIGFsaWduPSJjZW50ZXIiPqA8L3RoPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPqA8L3RkPjwvdHI+PC90YWJsZT48aHI+PC9kaXY+PGRpdiBjbGFzcz0iaW5kZXgiPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImlkMjU4ODcwNCI+PC9hPkluZGV4PC9oMj48L2Rpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImluZGV4Ij48ZGl2IGNsYXNzPSJpbmRleGRpdiI+PGgzPkE8L2gzPjxkbD48ZHQ+YXR0cmlidXRlPC9kdD48ZGQ+PGRsPjxkdD5yZXRyaWV2aW5nIHZhbHVlLCA8YSBocmVmPSJhcjAxczA4Lmh0bWwiPlJldHJpZXZpbmcgQXR0cmlidXRlczwvYT48L2R0PjxkdD53cml0aW5nLCA8YSBocmVmPSJhcjAxczA3Lmh0bWwiPldyaXRpbmcgQXR0cmlidXRlPC9hPjwvZHQ+PC9kbD48L2RkPjwvZGw+PC9kaXY+PGRpdiBjbGFzcz0iaW5kZXhkaXYiPjxoMz5DPC9oMz48ZGw+PGR0PmNvbXBpbGVyIGZsYWdzLCA8YSBocmVmPSJhcGEuaHRtbCI+Q29tcGlsYXRpb248L2E+PC9kdD48L2RsPjwvZGl2PjxkaXYgY2xhc3M9ImluZGV4ZGl2Ij48aDM+RTwvaDM+PGRsPjxkdD5lbGVtZW50PC9kdD48ZGQ+PGRsPjxkdD5yZXRyaWV2aW5nIGNvbnRlbnQsIDxhIGhyZWY9ImFyMDFzMDQuaHRtbCI+UmV0cmlldmluZyBFbGVtZW50IENvbnRlbnQ8L2E+PC9kdD48ZHQ+d3JpdGluZyBjb250ZW50LCA8YSBocmVmPSJhcjAxczA2Lmh0bWwiPldyaXRpbmcgZWxlbWVudCBjb250ZW50PC9hPjwvZHQ+PC9kbD48L2RkPjxkdD5lbmNvZGluZywgPGEgaHJlZj0iYXIwMXMwMy5odG1sIj5QYXJzaW5nIHRoZSBmaWxlPC9hPiwgPGEgaHJlZj0iYXIwMXMwOS5odG1sIj5FbmNvZGluZyBDb252ZXJzaW9uPC9hPjwvZHQ+PC9kbD48L2Rpdj48ZGl2IGNsYXNzPSJpbmRleGRpdiI+PGgzPkY8L2gzPjxkbD48ZHQ+ZmlsZTwvZHQ+PGRkPjxkbD48ZHQ+cGFyc2luZywgPGEgaHJlZj0iYXIwMXMwMy5odG1sIj5QYXJzaW5nIHRoZSBmaWxlPC9hPi08YSBocmVmPSJhcjAxczAzLmh0bWwiPlBhcnNpbmcgdGhlIGZpbGU8L2E+PC9kdD48ZHQ+c2F2aW5nLCA8YSBocmVmPSJhcjAxczA2Lmh0bWwiPldyaXRpbmcgZWxlbWVudCBjb250ZW50PC9hPjwvZHQ+PC9kbD48L2RkPjwvZGw+PC9kaXY+PGRpdiBjbGFzcz0iaW5kZXhkaXYiPjxoMz5YPC9oMz48ZGw+PGR0PnhtbENoYXIsIDxhIGhyZWY9ImFyMDFzMDIuaHRtbCI+RGF0YSBUeXBlczwvYT48L2R0PjxkdD54bWxEb2MsIDxhIGhyZWY9ImFyMDFzMDIuaHRtbCI+RGF0YSBUeXBlczwvYT48L2R0PjxkdD54bWxOb2RlUHRyLCA8YSBocmVmPSJhcjAxczAyLmh0bWwiPkRhdGEgVHlwZXM8L2E+PC9kdD48L2RsPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im5hdmZvb3RlciI+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iYXBpLmh0bWwiPlByZXY8L2E+oDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+VXA8L2E+PC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj5JLqBBY2tub3dsZWRnZW1lbnRzoDwvdGQ+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjx0ZCB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj6gPC90ZD48L3RyPjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL3htbHR1dG9yaWFsLnBkZiBiL2xpYnhtbDItMi43LjcvZG9jL3R1dG9yaWFsL3htbHR1dG9yaWFsLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjdkNDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdHV0b3JpYWwveG1sdHV0b3JpYWwucGRmCkBAIC0wLDAgKzEsMTMzNiBAQAorJVBERi0xLjMKKyWqq6ytCis0IDAgb2JqCis8PCAvVHlwZSAvSW5mbworL1Byb2R1Y2VyIChGT1AgMC4yMC41KSA+PgorZW5kb2JqCis1IDAgb2JqCis8PCAvTGVuZ3RoIDE3NDggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSBdCisgPj4KK3N0cmVhbQorR2IiLyo+RWRldSdSbkIzY3NvLGMndFJWPEAyUUciVGUxc0ksc1oqbiNLS2xOVk1RPDVCQTxDWmFMPV1gKjpIZHVSam0nPnE1ISdrKyEjYyI4KE5OZ2JwSGUmO2E7MWFQKE1Ackpmay0kQlMrJD9KY1JZLChfQTZrLFNVTmBUTzdlZlhoaDNpPTM6QlhITSVFMk9XXTBIK3NrJEhbT1xYRyN1MG1XQC5yInNgVy5nOTkhdGNSKihcLygiQD5xQEJXXlEyRypEPi8jbjNdXy5pbD1YLm8/T0QjVV4wNGRTXVNzKyxhJV5sUWduZi9dJmNlV0BrbyolQjBRb2tUQm46JGphaXJDSytQTFMlQ2RjaEB0O2tJT0d1ITgpZlFdRGhSL1UjPiM5JWw6O0o+YU89bkJkWDhOPztWVG9QVU1AP0JmUDsyRGJTQ0c4LiM7SDpucjpAWFtSb1VQNSM4ViEyWFltczMrLFBnK0woQW40WE9vdUYyaUxALnMjbTVbXCdlLGZxYFBTLFkib0AkamU9I2I/Z3U5Oy9yPXFNdDptYiUlRzUkRmpjc2RVYm4iLmk2WCNLbV1oWlNPRShpQEE6J0MhXSNZUVZOLSZjJl9udSZqR0QyZ2cySSxYPkFmL1FMNSU4bik3WFNDYjBXMFo4KikrXCY5Ql5iVG1rSi41XyRSV2VIXzJwMlhaTTlAb3QkVVhbXzUzcSomM1ZPJkopNSU4NlkkQVpXa0lATjomRktjcyVwNldNUUNjVUZiaDgpKDQwUFwqWkEiYmI4UitVdGk2SjtGZG1scichIzA4LSRcclVXLlMqYDBsJGw3bE9rZmVDdTNLVUczNzpkVjs2P2BTaUxuWDxuITRrcSo0VGZPQnBUXm0oXCJuWFVDZGRUQFRaRj0sJXEpLHVXXFxBW1IiNEUzXVFuOlA7UDJzVWZLX3VVNXMyYGpKdGZtOGpgX1AwLVJSdUwyJ0BnbHBYTjFtUUpULUVxSFldPT80WV46MSQiQiZaRUFTVGtLRGRTOj1OR1txa2lIaGlZN3VYNlJlNVdoRzsmU11PSEw9XDtCLVxGOFc2Jl8zPURoSDNOYlYjRl07N1VMKykqaFlAcV1oJ1UkQCIiXmooYHFlXSxNSjtSQnFeUXRGPHNjTiEtSmFwajlOP1VWSj48Zz1nc1xSRGFHa0dxLCFfWUhnNXFbLz8kUXREN09vLS1nOFNKS3RCRkg3OmllWEFtISxdPDNWT189MjpDLGpJXyghRUdDMzpiLThPJU5AVmNFczNpUnM7ZnVgbVxMJEtPbjk6WkVxLztSOTdjcFFCKzAzTyQjSS8xYGckUVlRPUdZYmRZampbMihcXWZKWEw6UHBBQk1PJCtcSjRTbSJEZHNqbGRdOD4zNm1cQXI+a0VxcG5FNCssMFpaMz5tYnRjXS9ZZV1FUk84YCgkOG9FPlg7ZzJnMV5HYVdlLC4iZjxaKlgiXllhP2kyJThJNmZOOUojcjJpS0dvb205MStPc2BcUic9cEVRT2dBL2hgdV5VPHMkLCJwPVVeS3Njay8lKjNzWURKcGYtUyxCOCI6YkpzNV8ha3JwcjQ0dVBNYUQ6QzcmKGhQaEhRS19JRyZbQFdcXUA6JlUyYDF1I3I5OmdgLV04bjdiQC11QEE5aVY2PyYjc1s7XTVlIjRVZEI2cVNYUFBMLWwvLEwiTCQ1YVNhXT9MWU1ONihAQFIiP0E8bitHXV42KVNGPU5KUFs2PXNeVzlsbkw2TGAtblpCTlBUQjM/Rlw4JExVRVE3NDsmKGRSVDdBRThoYXNlYEY1KWI8Ml9lO1wxV3IvYU1VVkRATjloZ1MkXExGKGloOjlFUUdvZiRUak4qM00wbWk5J0hoOzcqQl9YTSIzLG4udGYsbToncE1CW1twJWhTMGtDWnFeJTJXXV9FNjwxWDRIKWgrI0ouQTBrT3BZdFQzYGY0ImtzOFdnMklLOUYvU0JzcipiZTRjZTdCcSxdU0wyMTRSLT5cRSo2S20zTTteOFMxXixqYjVNNGtMJG11SGJcIyFaRHMyQSdibTs5NFpXVG5NdUU9JSE5IUcpYkpFaVNNdWpoRWVKb2pcW21fPy1AczhjKi5DMTI2OEcrVFYxK0FuImRxITY2Qk9RL3VXayo2IlpyXWhwZHFzQVlYNm1IOjRxLHAlL21OL2NsZ202XypWayI9RCZQP0EpUiZHVlstO2w1aDVkSF5bRTghNl48b2RlbHRTSFNaYkU4Pk8rcSlhIU5nc15dUV1RVFlhRz5CR3JGdTxkM04/Y3BjV3VBO2ppKXUlYmREVGZLU2dZXlBFIWp+PgorZW5kc3RyZWFtCitlbmRvYmoKKzYgMCBvYmoKKzw8IC9UeXBlIC9QYWdlCisvUGFyZW50IDEgMCBSCisvTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdCisvUmVzb3VyY2VzIDMgMCBSCisvQ29udGVudHMgNSAwIFIKKy9Bbm5vdHMgNyAwIFIKKz4+CitlbmRvYmoKKzcgMCBvYmoKK1sKKzggMCBSCisxMCAwIFIKKzEyIDAgUgorMTQgMCBSCisxNiAwIFIKKzE4IDAgUgorMjAgMCBSCisyMiAwIFIKKzI0IDAgUgorMjYgMCBSCisyOCAwIFIKKzMwIDAgUgorMzIgMCBSCiszNCAwIFIKKzM2IDAgUgorMzggMCBSCis0MCAwIFIKKzQyIDAgUgorXQorZW5kb2JqCis4IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDMzNi4xMTEgMTkzLjQ0IDMyNi4xMTEgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgOSAwIFIKKy9IIC9JCis+PgorZW5kb2JqCisxMCAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAzMjUuMTExIDE4OS44MiAzMTUuMTExIF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDExIDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzEyIDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDMxNC4xMTEgMjA0LjU1IDMwNC4xMTEgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgMTMgMCBSCisvSCAvSQorPj4KK2VuZG9iagorMTQgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTQ0LjAgMzAzLjExMSAyNTYuMjIgMjkzLjExMSBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAxNSAwIFIKKy9IIC9JCis+PgorZW5kb2JqCisxNiAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAyOTIuMTExIDMxMi4wNSAyODIuMTExIF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDE3IDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzE4IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDI4MS4xMTEgMjQxLjIxIDI3MS4xMTEgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgMTkgMCBSCisvSCAvSQorPj4KK2VuZG9iagorMjAgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTQ0LjAgMjcwLjExMSAyMTMuNzIgMjYwLjExMSBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAyMSAwIFIKKy9IIC9JCis+PgorZW5kb2JqCisyMiAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAyNTkuMTExIDIyOC43MiAyNDkuMTExIF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDIzIDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzI0IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDI0OC4xMTEgMjMwLjk0IDIzOC4xMTEgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgMjUgMCBSCisvSCAvSQorPj4KK2VuZG9iagorMjYgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTQ0LjAgMjM3LjExMSAyMDYuMjMgMjI3LjExMSBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAyNyAwIFIKKy9IIC9JCis+PgorZW5kb2JqCisyOCAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAyMjYuMTExIDIyOS44MyAyMTYuMTExIF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDI5IDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzMwIDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDIxNS4xMTEgMjY4LjcgMjA1LjExMSBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAzMSAwIFIKKy9IIC9JCis+PgorZW5kb2JqCiszMiAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAyMDQuMTExIDI1Ny4wNCAxOTQuMTExIF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDMzIDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzM0IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDE5My4xMTEgMjg3Ljg2IDE4My4xMTEgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgMzUgMCBSCisvSCAvSQorPj4KK2VuZG9iagorMzYgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTQ0LjAgMTgyLjExMSAyODYuMjEgMTcyLjExMSBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAzNyAwIFIKKy9IIC9JCis+PgorZW5kb2JqCiszOCAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAxNzEuMTExIDMzOS4yNSAxNjEuMTExIF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDM5IDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzQwIDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDE2MC4xMTEgMzE4Ljk4IDE1MC4xMTEgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgNDEgMCBSCisvSCAvSQorPj4KK2VuZG9iagorNDIgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTQ0LjAgMTQ5LjExMSAyMzEuNzYgMTM5LjExMSBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSA0MyAwIFIKKy9IIC9JCis+PgorZW5kb2JqCis0NCAwIG9iagorPDwgL0xlbmd0aCAxOTcwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhdD0sPWNfPnIlIkApQGlPOi9MYHBuS0wvXzomLixmKDdgIVg3OkFCUGJxUiQ9QihbNG9Ua0BPV0lBKzQpJ1FVKD9CK2JRVW0iJnBQNWZZMmxSU3RJYyk1QT0rUFJGJ21iSDEkYlw1YzFtZU4xKzZNRlJwJjkzVC5iVG1DQ1tYdDtgZFNMJjYwLF5nMCYmKCpjWCFLPWcqO3E6ZXQ2MnJCVUNqUlo1bj8wNUZmXGJUOi9fNCJgJTA5QWNFbGZeMDheUD0/QT9URktKY0dlVWYiYjdKNUMzYjwsWC0kOlwnTlFYSD5cWSM7Il9BczpLZltsOlEuImIlTSpGIVIqM0FOJyMjNjlnOSFmUWMuImciMkdASStgN3FAJjVVJ3IkIl4/a0BcZF5DMWtrZjRTKEBHcS5PSlNhVWFcUj1FY3RhRiE6dTlOZnFMcywlTTBcYjwlI11IXSk0Qyw+XiRGLDw7Z3RMMjJdSClLS0RuWTI1MUpQWmpcX2VxbWdNUUVARHUmWEkhMkdjdVNybyU9MV1WTzZnPTk3QnVyayhjQj5JVFI8VV9aZCpUPzZSPCFHRyExNE5hWz1ENDpEbmhUdWpibFNXPVMuJTJtQnJLakAkailQTmMkOXQ9c1VEZSk1KihAdXUzJzo/NHBnaT44UjlKZHRzSGdFK2s9WSdTXVZOTDRVPCIrLSM7Vjg1dGQlJXJcWGo2IVtOcWhNRSwhKyJ0OTBcb0ExaytvJz4iJHJsZ1RHOmdSYTp0JT1taj5fJEk3Ri83aitgOWI/K1hpXmhVOkJoOywxQGU5czQhLSw/MCMoVU48PGJWWj9WQiVmMHBrXik9bC9TRWxIO1NDODdlKyhcKzsiRHM7QVEyIWM/dCglLUlLbGJYNzdtUSZCJCpQNTlGMHA6aTdlLVFTNXBobV8xV1YhMVE+IzRbOD4nUUBOSzU2IlJcNylkcDs0aiQ6LEhbJjQhNylyST9ZNjg9Uk4jXXFrcmRrS0BKSCZwcTxCM1BCaVA2WDNlNiVcVTZZcjZXW3A1VGgvIWVuUT1fSk1qaWYxcGM2a1lVTF8rSTtpPUolI3EyPjpEYE5PT3IrZD1ZW2NdZ1dDLW9WaVFIKSE7Q0xzO2hEaHEpR3VSbmxrODlaSz4rLUMwLkh0ZlJtUTVMQVtLbl5oWFYzZWkyKiE7QzFuQTRBYG0yQydxMjlsVkQ3N3Q+SjhQOXAzYFJQYCRoUWdmV0hrTyNfZGtpM0dPP1BlWk1oRk0/XXBXLXI2SGNgb3AuOmI0YTBUZkIoSm9qZ0tsN0FcaCFJJlA7XWRHNCl1J2MsK2ZwMUcrQWJmKjg8SUI4dDYjM0xXPGg8ZkorZ01HIm05YWYvK1JVOERIY1BrTl0vRjpAMFBCaXVfQEpQYGU/bFx0LicmYk5PR3Fwams6OUA7MDNOTSNOP1RyZ1RtJHArZE0kSV91XlAlNS9tJDFxQCkpQzRfYzAwXnU0XCgmb3FeRF1GT10qbF9VXzgqZ0QpbVsmM1xqZ3JpJSV0KzxDJ0hIR006O15PKCJtWypgUypSPy1ZNzxhIktOW206cGNvbjtOdVFJYmkiVDshWWBHPSRVKjlBWD03cWJQNTlhK3U1bkNgQ0RQIiRgR1NXL3NfbC10QFZhYF5CKFsic2NOY1EudW9AMjlcUlNHNklwNkwwcS1kMSQjIiYnXVVTQ24iUlMwSC1rJVJXIWpGNyExLCYuKTo1RihYNFRsXFpkKGAnWSNcYHFFJVQuVDVVKUkvUnVdSUFIbU1RS18/SkUrWDFETV9vcyFUIV06W10jdGhLWD9NYyQ8RCxQQiY7TUs8LlA5cj5aQWFUY0wsZkd0O1srbGtySD5ccjtsamVxMTFQQUY+RlhlZEpaOz5aJmwpRWtYUklmXEhhOiM9WGdCKTEtWl0mcSsiYlAqLkEmVidDX1giTDdQbE5OWD9sVnA5MSVIMW49WW5db2EjM0AsSWImSltMWlVtRk1nP2pQRTxkXC8xYTEsKTQzcFVKTCchVTprLTVeZlUyTzdhZVcwSDMwLXFvQFVKVlUiLlxSXyhrSnB0NXRbWDlRdV50W1lIdT1UYUAnMGQvOSlhbyNUOT0sNldaW1E9a1hNWjxvXGRqZGtMRGw9bD5EYTJzZ3AwZGI9PEtRVnMxYzo1c1lmaztrJF5dTkBjTy5eRCk0M3FdQEI6JTJgckJZSSEpa2NkaGBMOm5XR2FtIWhbZzcvPixjXiYxLyo5TEM5clYvbj87VVdfXD5pWFJjImAxcVBqOHUpOCdIJ0RxPzdaUVxqYEt0SDw+VjlPQE1gWlBtKFZhb0ZVVzRZJkE7S0s+byNvKlJzZDBnbldySz9SOyNyYCgoNztkSDhZbkxjQTE9b1s5Rzp0PGEuWSZMQDdJWV8oR1BfKEQtQnReLSMvQCxgcjwzLCorUUsqZ2hqVWYwZzA8JyxbYFhfTThfUGwlaSQ0WThCOTtHSUIyIVNCZVIsIk8kUjY1M29SXjE/LWRBbDYjZlsnN1RGRUY+KjRFQlZvb1ZuMElhJz0yLyhUNT9RYDVsJ0doWTx1Li0wIjc4bmQkNGBEOF9qMWRMSS9JZ3JcYUJJb1NgcUxNNUksbj8iVkdsOSpyfj4KK2VuZHN0cmVhbQorZW5kb2JqCis0NSAwIG9iagorPDwgL1R5cGUgL1BhZ2UKKy9QYXJlbnQgMSAwIFIKKy9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0KKy9SZXNvdXJjZXMgMyAwIFIKKy9Db250ZW50cyA0NCAwIFIKKy9Bbm5vdHMgNDYgMCBSCis+PgorZW5kb2JqCis0NiAwIG9iagorWworNDcgMCBSCis0OCAwIFIKKzQ5IDAgUgorNTAgMCBSCis1MSAwIFIKKzUyIDAgUgorNTMgMCBSCis1NCAwIFIKKzU1IDAgUgorNTYgMCBSCis1NyAwIFIKK10KK2VuZG9iagorNDcgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMzg0LjQ2IDYwMC42NzQgNDczLjA1IDU5MC42NzQgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgPDwgL1VSSSAoaHR0cDovL3d3dy54bWxzb2Z0Lm9yZy8pCisvUyAvVVJJID4+CisvSCAvSQorPj4KK2VuZG9iagorNDggMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMjUzLjY5NCA1ODkuNjc0IDMzMS43NDQgNTc5LjY3NCBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSA8PCAvVVJJIChodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtbGliLmh0bWwpCisvUyAvVVJJID4+CisvSCAvSQorPj4KK2VuZG9iagorNDkgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTQ0LjAgMjUxLjM0OCAxNzkuMCAyNDEuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MQ0hBUikKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis1MCAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAzNTIuNzgyIDIwNy4zNDggNDY5LjcyMiAxOTcuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly93d3cueG1sc29mdC5vcmcvZW5jb2RpbmcuaHRtbCkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis1MSAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAyNjQuMCAxOTYuMzQ4IDI4Mi44OCAxODYuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly93d3cueG1sc29mdC5vcmcvZW5jb2RpbmcuaHRtbCkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis1MiAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAxNzUuMzQ4IDE3Ni4yMiAxNjUuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MRE9DKQorL1MgL1VSSSA+PgorL0ggL0kKKz4+CitlbmRvYmoKKzUzIDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDI4My40NCAxNjQuMzQ4IDMyNy4zMyAxNTQuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MRE9DUFRSKQorL1MgL1VSSSA+PgorL0ggL0kKKz4+CitlbmRvYmoKKzU0IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE0NC4wIDE0My4zNDggMTkyLjg5IDEzMy4zNDggXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgPDwgL1VSSSAoaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxOT0RFUFRSKQorL1MgL1VSSSA+PgorL0ggL0kKKz4+CitlbmRvYmoKKzU1IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDIxMi4zMyAxNDMuMzQ4IDIzMS4yMiAxMzMuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MTk9ERSkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis1NiAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAxMzIuMzQ4IDE2NS42NiAxMjIuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MTk9ERSkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis1NyAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyA0MjQuNTEyIDE0My4zNDggNDczLjQwMiAxMzMuMzQ4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MTk9ERVBUUikKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis1OCAwIG9iagorPDwgL0xlbmd0aCAyMjU1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhdCQ6Q04lcmNuOV1WPFFTMidnS1tdaCdAMD4pZik3bFlNZj1CT2FHb25sMk5lTCN1OTFhLF5ASzFiclFadUUwPUBJYWpHTj9GWjROYWpuQkFfTT4kZFUhJCsiYGVKMU06XU9qdDdZS0V1L09ZUzQyZj5gOjs8cVo8STBLbktIcGU7O10mbD5eOjxfZGInRTlgQzdEODZjPmlNIVY/JXBxKGpdOChUbWpWSkAvaE8icCNqQDMkQ2opNFFZbEJjZ208TmliJ0IvNUJkOi9OUSYtNTRBOmpmPWJTISxSM2EjV2YqSlRSVGN1XDBsMD5vNT1EXWQ8PGdLJ2ZnbSkwPypBSzw1TVFRRTVGMmVBXC1sZEFsRGVYWTJQKSlRX0ZDZzo9WVZsQzFKajhbSFpzRlEwKDM9b1dIVHVpOUkzN0dkR1hEcUNKWU9PSz91OkBkTEhYWzVNZzRpXDxCQ24lMmc/OCFlLlhgZDBhVHVwQEhCcFQ6UWRvOG49NVJjYWNQU2cuVVRPWzZTIkNYKiU/NlpvJ14vckclMi5SPGNDL2cwST9oOm4lZy5MYWEocD44LkpSc0pZOD5MNC9YQTg4QUlEPm5wQHRPTkM4S0kpYkFHQzMkbSIhb2w/J146aD80LTZMPCJFI2E1ckFYMlNoTCsmX1YsVnFZRXRuPjBGajQzRSUrJkVrZj9MaTw0KWckdGVTMmxoazY+c2cyS1NqVi9CTVVub2s7RFNJQktJYlVoRFJxcy45c11CcDM9ciIqV11tbVUpVGBMJyZpczJbVmVzSz9uTmxRVys8Y2pSY1tSYkttM08jSHJxOXQhKWo8T1k5az08TGpYOGMyQT86Mlg7Vy9aN08qT21kVXI3PlU8ck5OMDBaYyFWTCx0QCNpLG49PDFhUlQpJ21qLU9nO0JUQ0FMXWVZYlRLSktPUCZSK2lLU3IjN2RfL0FgJHBQVSkkcGpCLj5haHEjblZuRk0tPC9gZz02OmdUcloidWhjbFtSNDZjRj0rJTRwbCVWITk+VkIpSlNvZW8xcnEmNzw2XVAvNkpKMC9ELCQzJVFZPDA1WywkQnVeQWVdaytGNF9PPWwyZ148IzJMbVNBVzpEZz9yIUkjJDsxJ1JUXi1kOzokUE5NMFNmakpjISJjUVpSP1tkQ0NBL3NuQiZoaCc0Iy4rMmQ/cm9OYy0pJ0BnSztjTiRKNyc9IlFha2VDRnVuSG49MVUzVVNIJjkmJC8sbHFNKSJZJzQqSDNnKXFEPClrWFBTO11va0xMYEpXcVdNUmxFJTNgbjBATzZ0WFUkVTs0PCNNQyZHJD9kPS5WY1NNRTxcM3NJUEpsLjdbQ00hWlMxI2FoSHEnMGBPYTc4RU5VX0VyNUA7OW9QW2JgaztYJ24qb29fMjhQX0FaO2Q+NjMmVGVFX15VSF86KWJTTTRiKj0jNz5IIjJQQXRMcjolRCN0IjxpJDgxTHBuPjgvdUVtMDxJVDVLSCNALzAuWjhlTE9KYWlRa0ljWkNkQEJDbFklUyJDUExYaD4pU0dhcSsuQTRyWl88OiM7V0JgbWsyOE9gI1hZQllIZShDWGw7N1s9Wm1uZj5DRnBfUWsmRUUyPS1cLylCVUc1Q2dFOiReZWEhVmNlNCxoLWV1bERyMWg5amQ2K2cyczQzaSFgWi5YXmI5KGFBcW5qY1FAIyktYzAmP1hvKmRfQiU3aVt1akxccEkkLGNaY2k2Qk5idDBsJ0krQmkubWw/UideWmApPDJEQ1JKS21FTmlsVltENkFtTCU5JmZwPXJTbmhuOkVyK0UhbyJPZS8lbmZdWF5ZXT1bKFZdLD1LVz4pUXI5Xi5oRWZIUDxTRVcsKyQ5QzBsLEdUMV09STVaNmwrMWExV0xkSChnQl0rYDxhR2FeUHNGKlxHUExfPC1MOiZPUjtbTDk8QCxhbFJaKkUyW2YoPltQMC0tTDRpOUpIWUxONHErbkMlayIrNjdENit1N11nMz1MKlNTa0JWOzVzPShWOzs7JVM8YWFyQl9HOXVIPi9PL3JDQVx0QztLW2ddT2c0MyFEXVUpJihJWXU0LHQ1LFEiNHA9X2tXXUtmMzdgIVEvaT1VSShdU1xBWTNOclVyOW4/bFBwZWkmbTZDb0whRmBmMStiSiQ4NHMnZjB0VUA9alFJalRVKCJSVUpsZUBoN2NgZC5mdUFEZUE0dFZFV1NbNUgtIlcwX2FebHE1REkoWjJfRFdKSUdoU2pxYyhuWSJyZFAuVipHNy5MT0YnPG91c2UnK15RTFMyTHJrXVRqb0hrUXBgV05JMilTWlVQXDQhcigzSWJvITkialY+MF0/O1pnU01FXEw8ITs7O2VXNzN0TlBTXE9KRkFCSVpMXiFJMEFdWCZVbSw1bDlETTFyRi0rSS9NSTE6UU5XJGwrXDFMNF8pLzZoPVJdWjxcYT1UIS9dbjZzaVY+aU48WVRPc2RDPkxjT0orbj9OYThnNyZZQFdnTG8zOUZMJ1BROWFGcjxCOVBnaSwrVmpXQ25VQzpnP0QtXFd1NiM/RiU4InU1OC5DcSxcR0UvIzJCTVk9Wm4vWToyPWFzXFhDN1I7KTJOQWgsM0RKVFk/XmhJSmNWSGpXPyVdVT4jIyJsbydvYUlNSDBNWC9FLm5Ia2c0SmEwITY6TiRwIVdoTDVpbmxpa0x0UUtVWFZSOCM5TGg9MVlFSkwob29cdCdVQEBpSzsuPEdPQG47S2cvPj0jZzxRLkhaN1NScUJKPDxdNlprZj9qKms+PVYzKz5Baj0/SC9fU05vaGsqNjdCO0hqSSYjXzpsNDIrXl0lIkIpTTw9NURLJVQ3OUNaXz1QKFczTk1VNmAjb1BjY2VsSDw0KTVAKklYNG9JOkFSNU9ZUT1saT9tamxnIjEiOltZMDAtOlxAKV9BPkY4IkFBWCFSVT9PY24zJ2k/U2glWjE/VDhrW0NqSiVIazZbI11BYmU3RHBZNUA6MFIlSik8JFgrLFxgKTlgfj4KK2VuZHN0cmVhbQorZW5kb2JqCis1OSAwIG9iagorPDwgL1R5cGUgL1BhZ2UKKy9QYXJlbnQgMSAwIFIKKy9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0KKy9SZXNvdXJjZXMgMyAwIFIKKy9Db250ZW50cyA1OCAwIFIKKy9Bbm5vdHMgNjAgMCBSCis+PgorZW5kb2JqCis2MCAwIG9iagorWworNjEgMCBSCis2MiAwIFIKK10KK2VuZG9iagorNjEgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMjQ5LjgxIDY3NC42NzQgNDE0LjggNjY0LjY3NCBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAzMSAwIFIKKy9IIC9JCis+PgorZW5kb2JqCis2MiAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAzNjEuODMgMjIyLjE4IDM5NS43MSAyMTIuMTggXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgPDwgL1VSSSAoaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNjaGFyZW5jb2RpbmcpCisvUyAvVVJJID4+CisvSCAvSQorPj4KK2VuZG9iagorNjMgMCBvYmoKKzw8IC9MZW5ndGggMjI0NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlIF0KKyA+Pgorc3RyZWFtCitHYXUwRUQvXC9lJkg4OC5pPEMtYiRrPVlKVTBebDo1aGlcNkxUS11DKEU1J3NLLj4/VDxhM11sM0dDMjZeW0xxQW5MMlNMTWZuTSpoTU0hRF1BckUpckgqJlFvYTxMTCE9PEByb2lXdVwzTVduXElXUyZzJj0+MWBLWjpAO0RZRGkoNmFhXCE+cXIkIj9ZJW5wQXVjMFdmT1QxPUk0akBOaik0YUJRK3EzUGEzKGFVPGoiJmZeWCFaW0pkNiNZNiJjYWIuMXNjW15ULWoyNVRDJksicTRpXS5wIzRdSDwlKDJjKFU0Ul9SUUwuaHEmTU9LamNZTCtUNkMjKm1DTjIiJUV1J09wRWpsYWVFSWMsNzVTZCZsMWlARjs0dCo4YC4qJm4/OVFZPEJvNFBnSm9ndT1NOSowSmhtdWJDImJXXlRBVS1AXC1ITmxxNjlNKUhcQzEkcCRWWyZIME9QLVhKKj9GNkgrcmY3JDhNRmA+VTc1PzlFaFldbCEoX0dJb1xpL1tNIjxIY0UrbEJjVFBHLD1ESFhbQ2VWP2c4XVRNYiZxakBdTXVXSjVFXEcxJk9JZXJOOEEvaCxNc3QqQ15WXzhtS0opY3EwNzlZUzw4bU88SVlOa2ZHJFVINy1QJDIvYGsjckJaLW5WKGVNNVVBM0IrJmEsPmBjJlddb0xAPldHXSlANjZgPEsmczVRLTpsN05IRStNVyNQQFw9LWAhaiZkbSZhZVUiNU9gJCNeaEM9cW5GOjFPb2pUYGZBZFNwMmsoTk1DQmxVMjkhK14yT1tJTGp0Iiw0O0sndF06dURNWDRhYGg2PFddIlo+PjshMkheVHVmMnUrPkVrQ1hTWVMkSmQsUDtFMmZdXWV0Z2UrP1VBIWReRjUyRVlAZDZLXmVVNUFvYEJUVSRIIkoldEopO1M/RFhlVWJTZWxhTk5wTkJKOnFqUyUsODRWO2lHazYmQy9YPWsiRWMwWCpqL0MsZGBjaCNyY2E9OVBHciRMa1FNKFxpPSkrTGZLRyw3LDVtVjN1a3FmcDIjNGtbZytvW2dePVRbVUhKMEVYYiEmN18yXWlkXWNwVmg7O24+bitvWD0tVGdPIkhlSXJNJVYmYUc5WW0/OF5vR0BOayU9ZTRWX1lPZ2RfI2FjNkJGLEVAKiddKCpNXmZzZDQlJjY7SG8qcjxDQVMkciRUazEncVtGTz0mNjE6L18rWDc9LjNFUEltTFc2MiohOlFwVGphOm1mNlRXKFxeV25uTzpEUypTZUhRMDpcPjgtSlliUkpjIVJyP1lLMEA4aV0tJEYrJlghIj5lOj5tM1EyNDNQVTUzbjYoU25LTkFWU106JDdpOTN1PVRpZUkncnRiZGJUbWM2U2tiaWYoaFFzS0loM1JPLWJVRG9FJ0I6RWJSIzNZUXBgUk8iNWowJUlmYm9DPVxLSFMnIVBrczpmbiZ0SHRIYiZkWzZpaSxbZjRhSy1XVypZYlBzbktgU3Vob2AjJjtbUF8yaUdOZEBAVy1GYVooaU1iViM/Lj0qKT9YSVUwS2JkXz5EaCQkZGZPJytYOENIUkRFUHVscUZqQ0VBWWFKViNGKkJDNFVbLyVvcy9NXWhgMUViUmNVaDs3Z2BcSTszYG0uSC5tMWUoVV1MTixQLjw1PipQKz45XTkvLSZlYjQnPmcoJDxWIzYlMjgwTi0kO1xGMj44QEpFLDRPQm1OJFx1WyohPVlTIzQ2ZGBHTm5yKkNKSzY8MmpNbV5tKkIkOGpxKnFnNXFSJExRPyMtcS1mb2NcKVQ3RzxrSHQ6XEpGVzFXbChFWVxmQGRJQGQhMVRbZnBYUGgpNDhSZU0uaWkycCpXRmg9XStIaTZRLUopP0NFXEBCKHQ8KydLPUg0amZmM1oialJrJVFCO24hMilySmdsXWBZaiFlXT1WUS8nUG4kRiw7ZDdvL3Q+O1VvPGBeVmRyYTRQWW9yIk5iL3QzcipraSohU1ZeMlpLJCkkKyY0QHUmWE9ZZW1pOU0/QWozQXVQUzM7XmdmViQ0N2koNG9BLWA/KidvRkIhb2dYdDoyP288LTteY2tZVihSQCEocElcSF5TKz0qYmtUZV5ZMzEmJDZqLD1kN3AuZmZkVjtuWSJscDNZYjBVdWpNKUYiW00rREttSysyT3ReTE8+KV1PLjU/Um04P11ncl4lWjtJRExaamkxbTs9dWtldExvUj1JWlFwa0BCOl1LQDgoJihnJGs/OEtCNz5FJUtfQVhlbmRgMzZvSmM1KThEbzBjT2JmR0pMO01kXCorOlU7TSVlNWdLOFZqUTRQYUw7b100OXI1ZjtCZmNzPUk+UjtJKHUzYlBjMF0naiVhTyRkTG0iQTQic2UqaiUtVlcsa1BtZ1RvQ0k6aTdwSl9GKChocnNlPUhwc0lpQGVlMUtbQnIwbHEhZFNCclEoOCNnOis2TmBSKlwjOTM5LnRLdDlybEFDZz1PQzhWRWM4akVWUTNmMGFpY1pILVs0Q3BrWCJsJ3BrZTdyQSpUTz9qSEouI01GZ1cnYEohMlJrPWEiaytAOTpJYF0nIjdCTVU7OC9dbFwiM2FOU28lImJnVzVsR1llKXIwLyhkP0A9WnJYb2hBUjczIylZLTZxLjgtSTBPZic3WjRsVkU3c0Rubks5USYuJjhGcFB0dE9SVUAsX2w/IjRGMiFdOlJHTGtqQDE/WUFjR0I1KjlbSWNHX2BpXWNnN1toaUlfMVNCQy9NY1FJPFpZP0gpYldkSTBUaSNLNm9YPF4lLSImKilYVTxPOjNmWjM4YzFqS1dGcTVoa1VGPzczXC8yc1taXGRVclZYPi8tPGZvT21ATjNWI0lSbW4tOzNebSJeSl4+cz04QDVgcDhAXy1hPUljSSQpaGkkPGZcYDxTPzorZDUnc2srJWltKjg7PzhTO3JuaWUmbV46JzNIYS8+RkkkJjlkRDg8aTs6UmQvPWkhVzpIWCQ6XWByVyp0cTNkMX4+CitlbmRzdHJlYW0KK2VuZG9iagorNjQgMCBvYmoKKzw8IC9UeXBlIC9QYWdlCisvUGFyZW50IDEgMCBSCisvTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdCisvUmVzb3VyY2VzIDMgMCBSCisvQ29udGVudHMgNjMgMCBSCisvQW5ub3RzIDY1IDAgUgorPj4KK2VuZG9iagorNjUgMCBvYmoKK1sKKzY2IDAgUgorNjcgMCBSCitdCitlbmRvYmoKKzY2IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDE4Ni41NiA1MTQuNCAyNDAuNTYgNTA0LjQgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgPDwgL1VSSSAoaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXBhcnNlci5odG1sI1hNTFNUUkNNUCkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis2NyAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAyNjIuMTggMjI5Ljc4IDM4Mi4xOCAyMTkuNzggXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgPDwgL1VSSSAoaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxOT0RFTElTVEdFVFNUUklORykKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis2OCAwIG9iagorPDwgL0xlbmd0aCAyNDQ4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhdDxCQ04mOGpuOV1aKCQ0M1xjU3IqJ2FuVzhkK0tnVmJZTGNwPS1uZmM4KF03RmUoUVQzUzRgLilEPl5XJ3VOWTBfWGY5S1orc04rXWZcWTBYaGxOYE9YU2hKMF9jbzJeJ0pGUUw/IlklU1hSMUBdYFlQTF1ONnFZZShtTzJuLVooVFM+USYxIj1KPy4ydU1uIUY5SVNSKTloMCdAUWhaQTJyNVx1b2w3YzZAT0RmLkgkImFaXm5kKlRQczRuJS4xLWJcIUlsb2FXdThPUGgqNTRMLGI+WCQ5WU4rJVBKNSkpXk9samZXLHUrUyRjOVQoQVsuM0daZy49T19KIzw+TzpINz1TXSZjVCloVGQ9XS9KYzFmRWBnK2BxXnAkUmVDYjBJMGFYOUdWNDhaJm1qNEpUPVdGdUMxQzxSI3IpaUshIzpZcVBFKU1yT1dCbDBnPGM/IyNRUzdcPXRnXGooOGtUPU9DOVBnPj1aJ2FkJmFFc3RvWCUnaSdYLD04XmY5Mzo6cEMpOW9nWzBaSmYrLStrV0gtPHU+MCdbbm03Q20tVT5sK2FMRXUuNW42PE5LUSxzQDBgayE3TS49O2BoYVIjJiZhOWpfLjwtPFdoayRXSClrXlklUnBkciNVaG9UVVtzOGBcNyZNP3NBR0BdMHB0NEpJXl0raXQ2JCU6Vm5QZHI7YEA3b0RTYW5NSjM4RVctT1JuYE4hJTRwcCMwPy1zMTpfO10iLmJJKjFDI25AaUlmIWsiTldPRVkvSVRBXjgxZTBJS1A0KCtBST5HaDlZL0xeWSFCTzxzNihLXEZEJkxbQyQ3LjdLcmZYI2U6YTdWRmUxam8yUTdATVpTTysnV0toO29RVCUyI2Q6J0teWUtpRGAjZnNvaDFnaiooXUwnNiozbFpjdDVbWD48SG1rLjxjYChzaGNKQExHJj0yaWVfOHJcNDtWNnViT1sxTiwyZUUmcFQscShFWWJQUCU4X2lYXj9ZW1NAIlo0REI6JVJqLSRpJWo6JTc9Vl0xXVhJLV02VCRRRS9UVWM/aiVXX2NecHRbLkVRKHQ+JWY3RCdWTXAmZDIrRXRnI1NOPFs0NGBEZTwhQjMnT1sqPWhlNmVdbWNJcG5iOmUyNjxdPzRnKVk8TSshKCItWGxqTUk6Wz1tMG5ab2xXITs0JSxhMGZkOVRgLF0maW5fSFo/QjBFaF50bDdRKlNrVWxYU0JLUXRRN2ojLnE1TWM9XCROPydwUWhLMjReKVpQRSJkWDoucCUlTkwobGViZU4qJj1aUzEsdWRmTk90JTtQITw9bC5vK1JfJEw6XlNpOWZgLW8rWjJfREVHQyo/Q0QiSCoiIms4S3M8ZU1XQmZmNi8wNW9mR2ltaSJKYkZTQFVQams6ZWlZcSI8MVw5RjdmOjdMRWQpXT5sOChnVlciJmY7L0MwQE4/PzMhN1Yzbz8/JzgmMzNhL1FBcylRaDQjWVtJTnBRXT1sY0wzOiRBJyM/Q29JLiMyLFVaXUc4U2tDVmFeNytOKnFbJ1FwV0NqQjMub0pwLj0wQy9gMG8iJ25QN0Y9UD1QcDBXb1s3YExfdC4wUVZTK04xaihyMChjRUtMSEBpX3FVdGZnZ10tKkpqQEppaURGWkFzNE5BQlY3Ml8pbTdsY2stQztVKmAmS3BYIUA4TilUaWxdczdDLEZZJS5CZ2VPPkteKU4hW1VtXUxZPjkmKUVGPFdBb2RAKC5QKGBVbTM8aUA7L0dbUWZbcjdWaDNMJDZcISZMcFtyMGxwN2lcQURwZmxqO0dcNDpbVmJESWNmJlllTzsoJnAiRGYpRSplVzlLaShkPm83ZlBOUiksJ1E8OSJRWylVMTRgN2ZCajJSdUc4SjdBSjhcXEVVSU4xVmxFMmc0NFZjWDZXRztia0VaVzpPbT0vKCc6cyZbNFE+JGctYzdBIVdoO25VdG5pXC9cV3BkY3Q/UiopKzFlWVlsRmYubzZPR0A2MydJNy8wMmtYJ3BHJkBIMV1qdVxuVCxlZz1WPGI5IUBUYEdJKlJXPCcmZV1rYTBVNSdmNyZdLjcrUFZeM21mQ1xgWlxta28xZ08zaXA3Nyg7TzRPNSpBbS5iJFY/WSopcjAsWU9QcXJrbkViUzJwMSNWLllRMEMtcCZqdDgnLyIsJ0pRWGFzM1lLMzZWSiJXUGhQOE5TLGUmVVdeQUM3I25McVQxJlE7QScoXWBqUlc4LFYwbTxcSkM1YzNHN1FOSUsuWSJvTXNWPiEjOyIyLipyYl1oNF4wZGNrMjJIUTdqWTRZRklqKGAjYmQ7PzljWjhgUFdaUE4wLVxqOHVgJGRXSEF0ZkhYO0ROVlg/YVZrR1BLKFxNZUZXOFZSVWU2cjBvUj9eWTNDLVVTJyUqLDQnWG9sKVFaLjZoaU1PSC9VSlhXQG9yNG5VSjgjYHI+S2JNcj1WJ0hiPStsOjNJcEkxW0Y6UThNUjZEXzluWzIrV3MqQ0JgNC4wTk84QjZIKlJzIj4lSTcrcHAtbCw8bkpfcDRsaywvbj1mUVc/NmM+KVpZMzRFMzlxQGxdSVY8UTMmUmtKTUopbCFHOjE+N00/S2oxIiMrYl1ncFJWJSVxYXRrKVwhQk5KPVEoVipnPCxRcCtNclNfbCUwWykhRVVjLElsaClkQWFXLFlrM3RaLlsuSitkIkUrQWgjPUdwOmRuUUJwVzJbVjxXLDVfZ0JrbHJMXFInXDY9RzIkdS1JcGc2Pj5pQyVMViImc0lGZEYrZTVXaGosO19UKC0vSVBfSGBvQlpQOjNKS3QkKXI4WWFUX3JPcyRnUXBCQSFTVTwzUlZFMGUvO3FOLVxeS29CQWFqQ10+JyVWWkQ0MEspVm8xcWs8SyU5U0dwO0EiLW1jVSE+bEsvYz1lZGdZNmNocFVdTC9DODptciJIM3FURkJpKm1Hb3JJRTZPRTRNQU09ajFuTiRdI1VTMCdVKkxbW2ldLlohTztQK2lYJ2wnZWI5JzxIc0RHOmg7JE4xP3RSTCVlTjlrcT5BJXQ0Ry9EMEZlLmNAP1c4XXVON1tIUFdNXGhIS28sQF1QZChsX29JUCUucjsjUl8nP2xxVjAmSHVjbjopNWY9JUhaYVZuWTJiN15aQG1XblFJNXAiOVRHWUdEKFQxKS1xX2laVDE1SlE5bG9dPGUtVV4wUktySz02RCVZZ2BUWm5bPylhPmRIY0o0YD1eUFgvOUlIK1VPSCcsVDVNYiheMVdSYT4zVCZFXGQ6aX4+CitlbmRzdHJlYW0KK2VuZG9iagorNjkgMCBvYmoKKzw8IC9UeXBlIC9QYWdlCisvUGFyZW50IDEgMCBSCisvTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdCisvUmVzb3VyY2VzIDMgMCBSCisvQ29udGVudHMgNjggMCBSCisvQW5ub3RzIDcwIDAgUgorPj4KK2VuZG9iagorNzAgMCBvYmoKK1sKKzcxIDAgUgorNzIgMCBSCis3MyAwIFIKK10KK2VuZG9iagorNzEgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMzYzLjk4IDY5OC4wIDM4MS4xOSA2ODguMCBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSA8PCAvVVJJIChodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteHBhdGguaHRtbCkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis3MiAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAyNjMuMzggNTk3Ljg2NiAzNDEuOTggNTg3Ljg2NiBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSA8PCAvVVJJIChodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aCkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis3MyAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAyNzAuMzggNTg2Ljg2NiA0MjQuODEgNTc2Ljg2NiBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAzMyAwIFIKKy9IIC9JCis+PgorZW5kb2JqCis3NCAwIG9iagorPDwgL0xlbmd0aCAyNDUxIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhc2FyOTlcLD8mXGNTcDsjLkVSZS8wQShrMm5NV1hLLms2Mz1mbkAuaSU2X1RjZjcyTTlwak1qZik1WUhVKWIsaCUyJFxRN2krbmRIR0kxcT5uOmNoWWx0TVtaUmcjMlZcMTlZa2A7ZTJoQ3FMTkQpXl85VCk2WS4sQV04UnQmLU5XJnNcTmsyMlpxP2BbNTRPVEEhWThTIjRwSSMwZGpQKTNaPlxpWixzVGFVYHEpQCJLYURTIUZUXz9KV1VsOy9SSCI8NSRhKzgsVmZQWCFDJFVpKSNJV3A8QlNHNSZxJDwsXi5MLm80V1k0S1pjPyJVMmZEOVkqX2psKSVCUmYrSj41VW5QO3NgR0FDPVgiJ0lNWHNgbWlkOlRrbidpQydMa1huR2ZlXUN1XE1WWSEvQC0xMmwlLy1aPTlQQE51MGtsWStAM0RqQSI2aEdkQDtWYCwnTDtlaElsNFhnOk8+J1kvNGQpVjJpIWQxO0pWJT0qbVNMTVY5JV82cC1PWWxSaSonbFhIJF91V1syYTpScUcnbDIqZzFTIWJmYWo4IkRdSTNBL0lESTdMNWBlNmduTGNYRTFRM2daXWFEPjApLXBfWC10TydrTUM5LUg2dEdJbShlNjArOVROa2hKUjUvRE9mX1w7SHMpWVZMbj9lTT9uKGovM2lsK0hjKTJnaktRWC4lM2JwbSduRHEuNlpHLFwvW2U4a25ybCMrdEQuSklPW19iRE8rRFZiOi1YcTBbPjYuYDkhYmhAUkk5LERicWQpbTRVSiY4cSFIbm9SJ3FxX1xiSWdzMHFcSFNpdCdkR2EpNS5JMl9dbyxBODslSCg3QEMlR1JnSGk4aGhGUCxEc14tI01YVyc3S05CTFBhWjguNzIoMypZMFM1U3MrTG5bUnBzUlNAKnBtKT9VUCcpMiddSidwYVJsTG1kXEkrSm10LiRGI0olZzQhIkJAWkE2RG9ESjlJWW8wMTQ9WilCTGlVaF0rJ2klTVgyXEZoUE9EVGJyN1FlWjhKLkpFKEYpb21WaiJEPD9cJmwscXJJRiFZRGQzRzJNLUchTkM5UzRubkRlJ01xcSZTT18oPm5CQFY3bzU3TCt1L1lRXTJcSz1sJVReT1dOOyQhSCxsP11wZUBZLlEpZEcwc0Y2aT06WUkiKSVdRlNySkpybWhycmcyTS4wYTpAdVlwWCdwV29uSkkpJU9NI0cjPF5uOV5GLmxmLVo8TlhHR2M7S0lAUjMmLk5VMj8qMl90KGVkYD1Ua0ZUViJVcTFBWjFBcWdWbGY9XldsYzM/ckhzbEZZKVosRV4tTiFnIi5ub05NY24jbjhrJEchIUImZ24tTzZvQEFFLkBrcmw5PltmWForWFpzJUIxckg2b2UkWGBAc0QjWyVrNWAsKjgtQygibGxjL1tUQ2hZMGFwZVRxWC1CZnN0Nl0zV1NrT2M/cGBFNWA+UygxJ2p1ZDI4RU9ZVykvL0VFaVs6KG49VUcvJjMmVnBtZWBESF40RGU/MC5pYThwIk1zLUxfUl0xWy4nPXA4azk/P1JsbnMqaFYnRDY1R0Qrb1BDWGElIWFvV2ZFMTItNVYqdF5XLy4+YEl0ZFk1N0JxWkhqVEMkS0pgb3E9IjxKPD0qXkZsZlRmUFxrQDpDJi9fcl50XmVrXVBBQWNqYkYvUW9zNlgxQDtRXC0wWUJtQlkyZDFjYk45cWRGbD5NMWMzTTVjPkohNCk0T2onN0Q6RFpDclMsTk5HaC1aUnEiJE08QVRTYiheNF8zPVM6IUY8LVYpbz0pcVFGWl4iX24oRE4nM1slU11CLUVoP1pLOjh0NDB0LjxiREMkQEtPUU5ITik7VG02XWszKHJGP19lKDJwK1ZITnRrOidQNltHJUxRPlVvczlJTUUtYVU6N2t0Y2VfVUVkcEtZcSFbQ1hbRzBEJ2xVI2x1YVdqPCs4Kzo+ZFQoJSFuI1lNLy5LTFthYU1UKjU7TjRXWj5Ib21NIj1FdU80RHNbOjNVaiIsaks5ZGBoaEsjaktvJmwxSGhGQSIxMGpJbk91YTo2a1RCaSpgbTJIN1s2ZWwhZWRvQmssWzIlbVNwa1pqKWlaTGcvY0dRWVlkZEsrRzYoKmdEYGN0KCctIkBaPkpfQERVW3RLIjxcJ15HPDAjPDJcSDBWMHFdTF09Ym88Q1BuO29fMU9XaitxZS5NTjUsbGk4X1tBOVFBTWVIUUI4SSMvYkRPRCdgPHAsSj5ANFwpUy86WSpAPFlqM1hZbkEoOVF1QSNHIzNfOkk8WStraHNuMmZgZUJNWz1GIi5ya1cyWCxwP1UlKWkrLU4tRzhTWmc4Z0EjSChlbyc0KDJpPixcK1FeYVFBLTZkTV4qWVxUJUgzK2JfTUtQNj1HSXJvcixyV2NcdXJEIU1DbipVQHQpRD1zdFdkKmc7NiNgXF4+YTs6TSRXbF4qKzYtXC0oLThAdTtrai1galgkZW1bMGZabWRzRWMxNVkwMztdJCpZJEVyRCEiUUFZRi1nTWdwYCZDIzxpRS0xOkdsTlwpUmpLPmZiRWVCIjk9UVxZTEFaQ0g0I1BfZSY2RFlSUy1bTWUxdSMoZiheZ0xxVkEiU2hoTGUjPSFiLiFYQTkpTy1AJCJMc21rI203WFFsQClJbGgsczxENmg9bV9VZU8wcS8sNDpJLWxzVUJTSE9rL1NSJVRFZGJjX3VJTVI6KGFBLWgmJjRSZkQkQUFJNV8iJEBcKyRQalJtKVxDO1Y3P0kmVDVBSCIlMyJ1MTBARk9VI2RIRT4oQXJKV2RXZTc+QFdRdSNPL1tLVkgkK1RPYi5FR2xAV3IuUzJRZUpsNCUiNDhDOS08Y1BsOm1ZZjYlcyY0aF4qKjM5Pl5gbEtgVVNAaXQ3W1RiRnAwNVNpJmw7LkRwNzBpZjQjViZITWdRI0ZyN2RTKWRIIkxuVSxPKiZfOD8tMChMIU4nbDonOSkkMTE/LFthO1NoTnQlZSsrYV06L3MzQT5da09FbFFvPWpdXi1MI1QkTTApJydwaj8jKmE4Ki9bU1o6U2xOOHJeYmFRdTtWR3N0aWkyXG9kXVc8T0ByS2g4OTQiZCVvMz1cZ2JKSldxTmlnJSdOWzZMNVZHa0FKSjZtbyEnMGdAJklZN1swN1hcRGpEPmItJSIhKExkVzZQPjBtcnJdWkZHK0xuOzk2XDlacD9oV2I8RkY6RyVPWFltOzhyKmJOI21nMWAiS00kNiw9cDliTjoiaz4sZmRycl8wQEdcSX4+CitlbmRzdHJlYW0KK2VuZG9iagorNzUgMCBvYmoKKzw8IC9UeXBlIC9QYWdlCisvUGFyZW50IDEgMCBSCisvTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdCisvUmVzb3VyY2VzIDMgMCBSCisvQ29udGVudHMgNzQgMCBSCisvQW5ub3RzIDc2IDAgUgorPj4KK2VuZG9iagorNzYgMCBvYmoKK1sKKzc3IDAgUgorNzggMCBSCis3OSAwIFIKKzgwIDAgUgorXQorZW5kb2JqCis3NyAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAyNzIuMzMgNTc0LjU0IDQ1NS4zNyA1NjQuNTQgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgMzUgMCBSCisvSCAvSQorPj4KK2VuZG9iagorNzggMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTg2LjM0OCA0MzMuNjYgMjc2LjM0OCA0MjMuNjYgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgPDwgL1VSSSAoaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCNYTUxORVdURVhUQ0hJTEQpCisvUyAvVVJJID4+CisvSCAvSQorPj4KK2VuZG9iagorNzkgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMzI0Ljc0NCAyMjAuNzU0IDQ3MC4wMTQgMjEwLjc1NCBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAzNyAwIFIKKy9IIC9JCis+PgorZW5kb2JqCis4MCAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAxNDQuMCAyMDkuNzU0IDIwOC4xNiAxOTkuNzU0IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDM3IDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzgxIDAgb2JqCis8PCAvTGVuZ3RoIDIxNTYgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSBdCisgPj4KK3N0cmVhbQorR2F0VTQ9YDwoUiY6WEFXOl1oRiUoKXA5SmlMZz9wM0gsUz9CdEVQJVtoIkBebyE0UyNOQzpfcU1aMz5bNzdvQWE5J1pKMiFKPDJmSSxwZmZmcEEyNysicFI5Rl9vK1AnUEVHS0Y2Nlg5cjQvLF9IR0dLdEloR3FTNDZ0NWFMViorXG0rP1lmWUgyQiFVTF9ZI0ckYjo9cTkmUVdnQUQiW2k7YmI5ImI/Xl40WmM9cGN0OlQoXyUxb1RZZy4lODg+SlguK0ptK0xFMStmPTdUYkdJRFYvYGVUPUJFTC9lQ0pzMSNDaVZQJFknLm1LZik/RDRhb1JDQFxMLyxWUDptLV9Lcm1iQVlLJ0smQUdqTnUoNFVbTytIVTY1a2gxQWRtSFwjP0osbDxbbSdTOFJOb0hWcHIkQlAvTU9WQlM9YCc7MUNgPzNWUVhxYHEtPj9FcVxdPENGJF4sJ2lMVGZia2VhXHBbX2F0Uk0nV0RMLic6KXA+ZkchJjlPZm0jZU0paWc8UEVRJzBfbnBaZ1M7QC5qSkMwPGNXaUdcLSpEYiNWWGFRPjsoay9wcWgpPTQlVm1TLUJVIWdJX3FwUjRFZUpKJitcOEJRVFAsTDRqVmwvTlYpbmFHT0doNVVoMGUyPWQ/PEBQPjBmXm8+X1JRO29dQyc2KSInbktyPiwmUFkjJS5OWUhlSE1aX01LUiItWzVlc3AlZWFOJjJUR3FUUkhnQzdlIzBpT1g7QkhoRTtDTComQiNsNmBnb2lfU3U6WilrJzonZzcsSU1bUGpLZ2xgUGE+OnEsS2NFckBDXXUzPDNtaFQkMyFgaF5WVykiMjU2NyI2MWBgUCVUX0BEaG5eQmRzRDBVMnU7Q0NnWUA4XGdiTGYhXTpCV0dCUEMhVUJvI2tiJExydFdDTWFbSkJaZjdbI1E6Z048RENOJ1I2WFZcbl8/N3EmaWYzQ3BSUUFoP0xvbzp1PzhIJUBmXzllZkU1XjlcVW1cKzYiXDdpdWJwNW4pTmU3SWNZaTVDNlcxby5TOHJMVzIhNjUiJ1g9cWQmaU9aMSt0RUNpdFBHUjE5UjVobzxPX25fJHFbVVZPckpXUWxrI2lhS1s+WjIudDBOaUhuOytDXzk4UmotKlhuKj9qbWVnITY9bj87YyZBVjU3R2VqZltuIzwzMzlvITFSKGdqU1NTWm00XStQa18mZGYjYFZEI084Vmg9Kkw0QihiNTRuXTYtN1VCdS1gcD85PDZdbzcvSmlaV2ldRnRlcEdISVAqJWcuXU5YKkBvJShiKXJTMmRZIkdaYic6TSZPYGFaZGMkTjJSbztqK1VoUXMra00nVG1mPVk/WylnIl5xcU9JXlVYcDNsalgyNlQsKV00OXQkK1InZSEnQ3BuLWsxJl8ySUhxMSgnJFksbT9cIUlKQVF0SGtqXj5TKyxbVk4kWFAzMUxqTGlJSylCRk88VDEjXFQodT4oU1dRblplUlJTUTlXNl9JM1Y/bGRGS1dbbyE1NmdfJmpJOSJMUjtbTDpvZSk7RWs9YChQLUZkVnNnKzYoQ0U/JWQtUm5LPzxAcUh0PVRjKDJEWkBwVXEoMzIpbCNkXElFJjo2cj0kNztZLicuSSsxT1hocDQ+WUkmVVdTbkduU11LRlNWRms7UzxQYmBNXEk8MiUpSHJAKCojTiRPTVppYWBUcz89NmklUEdBKlRhQ25eX0suOWdCZVFIcXRIQ0kkPSlhc1huciFmJ1drV01IPzMzUE11PlYlaC9jb2xTMy9FbElRMDJiWmQxNSxnITMoPCdtWmE0UCt1QS4tb3BWaGEiR1w7W091X11ePm1tUTNrajJUUDk5WUhwSScmc0VIITFMRUdDKlIoJ2wmQypPR14maTRGN3JxMmxbJFpoTTpqKFYxclw+WSJDbSVRYDtrOkZDJkRnVThVWHMtWHFjW0kxYUpma0lXJ1RZL3VrIlFCW01VUyNsVTVyN0xnXzlhQC5rLjVjcDVQcXRuS2lTX0tcZ0JXQU44X0UrW186TnVuRG9pWm9nZWY3T1RZNi9aRTBoYVdoLi5dMiJaLC5HRV9aTF1LUTkpbWU9PnBvPU1uQGhtXDNKSVFdX3Q8KmEtbFZPZVc9XS0/anFHLD4xdVk7QT1vR1tbPzcjRyJfUiJRKSpLYGljPmosOCJuQ1hTTGhQRGphU0JkcmJOUmBbKVVkIzRQL1AsUmVYOGU7KHU5TDVKb0c0LEY9SnBxR0YhWDJUWCpKZXVGTSorPVkvZXI0R14iTFBvRmtTM28lcGloMUYldShKKy0yXTdWNlBhLlZLOipvZDM2I2NjWiw/JCkhR3RoQD0lP0B1KDQtUChnPGcmaGA4J1RIJC0paiQlQSJkTm9CXHI8KkVoUjdsbWleVVhEPywnaGcuRGA7KmMrWmQ0b042ZU80JT5FZkoqTDtpKWovbkpZcjpyZDIxVi1hKWhAYWpJTTxpW3MiOW4zVDNzLVsvSC9EJEZrIUVAN1VNKU5yNiEpSERRTGkkaXIkXSJbazteL1knMFcyVkRnT1E5cF1tazJtajB1Vj9vMS9zQEheMkxYR2EuWzhsOkhgNVheaWFNNyNhZXVdSStpYDxbLVFxM0BBNV48RTs9aE8pQDxyNTVKX0tsTm9lV1RaIkAlPmkiKV09a3QnODQpUyUmLTkqLXJvJDpeN3RtW0ZmSjA5OkRrWGciZjE3VWI/K29vZSdDIXFoMk4pL0RwVFU1KDhhWWhobGcySjhaVDpaR2BEYTZMXUEkZ0l0dSpFXms5LmFFSylIYXQ8YVFlRW40b0omMyRdYU5gZjpDdWFyXk0wT0NdOVtkMiUmZ0Uwa3AsMSVwbjtVMiMhWVNNcnJEOFdONyV+PgorZW5kc3RyZWFtCitlbmRvYmoKKzgyIDAgb2JqCis8PCAvVHlwZSAvUGFnZQorL1BhcmVudCAxIDAgUgorL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXQorL1Jlc291cmNlcyAzIDAgUgorL0NvbnRlbnRzIDgxIDAgUgorL0Fubm90cyA4MyAwIFIKKz4+CitlbmRvYmoKKzgzIDAgb2JqCitbCis4NCAwIFIKKzg1IDAgUgorODYgMCBSCis4NyAwIFIKK10KK2VuZG9iagorODQgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMjA0Ljg5IDU0NS45OCAyNzkuODkgNTM1Ljk4IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MTkVXVEVYVENISUxEKQorL1MgL1VSSSA+PgorL0ggL0kKKz4+CitlbmRvYmoKKzg1IDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDMzOC4zMzQgNDM3LjY1NCA0NzEuOTM0IDQyNy42NTQgXQorL0MgWyAwIDAgMCBdCisvQm9yZGVyIFsgMCAwIDAgXQorL0EgMzkgMCBSCisvSCAvSQorPj4KK2VuZG9iagorODYgMCBvYmoKKzw8IC9UeXBlIC9Bbm5vdAorL1N1YnR5cGUgL0xpbmsKKy9SZWN0IFsgMTQ0LjAgNDI2LjY1NCAyNDIuODggNDE2LjY1NCBdCisvQyBbIDAgMCAwIF0KKy9Cb3JkZXIgWyAwIDAgMCBdCisvQSAzOSAwIFIKKy9IIC9JCis+PgorZW5kb2JqCis4NyAwIG9iagorPDwgL1R5cGUgL0Fubm90CisvU3VidHlwZSAvTGluaworL1JlY3QgWyAyNDYuOTk4IDE3NS4wMzQgMzA2Ljk5OCAxNjUuMDM0IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDw8IC9VUkkgKGh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjWE1MR0VUUFJPUCkKKy9TIC9VUkkgPj4KKy9IIC9JCis+PgorZW5kb2JqCis4OCAwIG9iagorPDwgL0xlbmd0aCAzMDYyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhdD0uRC9cTEQmY1YzKlosaF5XPyMtS2VJbkB1Z2FZY1BqOEM4NCtpWDQxKDVrIS0tLCRKXDI7Pi5ROF4qST9pKTlRLjsuSUlTOWE1aDJPMyNwNFduJTd1K24jcyZsKUZtZS5EUk9hKm5gS2ZwZnUzI1taPiVIMGhHZUoxYEVCUCMqXU8rRnMqX0JCcFN0aypZZG1CLC5WYnVuWD5dTjNwPig/QDdiKV0pMlpNV01zKGsoPVJqOW5NTkJmLUphYEJoNjw/OVY4JWF0PiVablJaS1sjKjVVSFYoTipnJUVDTGQtPVo+OGo8bzkpWiYyaCpfMFxYKzo3WlwjQnIjVSNQTnBfNU8pWFNVWGU1XV10MWdTXTthPVFOYkhuWU5qOWlqWFFFSFpqV086dTckMHNYazVGWlxOSyhzUEsvYXAzUERKU2QsNj9XTHBuKiczT2F1XzFIblJRQUxtQT1vWW1qb1txclFKNVk8N1ktPkM0OiJYZGA3UkFCc25BXG1PcUxvI2dtXEddKWBDcVpBMmtKXDwmUkk3Ry0lJWNhSTkpQDIyS1dEdSQkVWNrM01mWE9yVSNKRGBdKzRTQElOVDdyVkdaOE5Ra1RKWC9cc1toMEFyO0BNPW5oJS5iKXElWigkOFVDX09wMExHRzhySDAlaE49SCxRS0cjOy0uPiQsS0pcbDgyWVNDclJONiFbP2U+Kic2cyJSP0haQmIhMz5kPTEsSE5iakItJW90c1lqTF44TFghKTRdVi4zT0ZGKSNNYmBLTWJBRlMucHAvVVkpZytFa0VaMFM5Pi0oQFxiXl8lZmdcQlkxPSVVMUdbPF5jSVY5S1E6Wz1dRUxiPFQwXXBoW0olX2xKVTpFbF9oQyJXNE8/UURsIiMvazxMM1ZuUFJVNUZCbU9ILTJxZ2ckUU9HMScqKGU3OGo2bjVsZkkkMFpfXD1bMjtib0NWW106NkMmXWlKVldudDU+OkNlY3I4Kl8hISE5YzY4JSI2JiZRZGYjdDtkcGZRaSZWZTcrWlIhakNANSdFLislM1UrUlErRlFeLHNwamBjT1I1WnN1blErI2I8KT1zQjI7Y1x0OjVkcm10JFNvOEFVYU1kIi04Nk1WcGhRYT10QSUiY2YjaDk6UlJMb18kJTpjN10mMm08UCJAIkRia1U0Jj9pS0NGWzJMckhMZiQjXDdkJlRgUGVlUTNWby51IkFcN05iS2diQyRtW2c6JCE4XExYVmBwc0tfO0lWPjY3KVc0ISNnS2cmPiE5IVc7UXBjOUtPVkopSFZHKmZJPj4oJy1cK24vNUgkX1hrLzBWSWRiKDA2Kz8yVUBOUXInJGwxS25rQDBDZEFJakYoYi9MKCs0KVYsUjZPZ0MzXU9JXlBiVEBuRGltaj1MPVcsWGtocUVeL2MuckhOLyhtUGVUOEQqKidnMEkka0c3XURaQm06UFBgajYscjdsXUA1ajEzWWEma1hDVzdHallVNWZTWnVvUXNtajsyLixePjhjSEZMX0ZbLEUnYjZvVCtCJ2IySUNRLiZCPV1AWm0iJHFhJzdeQGBqdEFoQDY9dC8/ZydaTU5mYWldMyoyT2EuNF1GVlYxK1hBaFgqKUA5RnIxPlZLT2xcayxMK19ZaGBaXkVTMiJwa2JEXisqVEtYLk1xMXRbSkY9aiElJlJGTEVsMm5KYEc4J25YSU1SSDppYzkwK2YlYmpNOCI9Z1UqJnBBLG9YNFhyQ01sVDpVJVRsaypEaSFXW3E8aG8sUGA9XUoyJykhaCtOUTZnJWRabzUrdT0uSTNxTDI7X1R0OWhtMSxWUSJqQTYvNT1zPjVUUjMmai9mKD5EKmxgTiJsdUFQcERnU11tcz9ZNTpqOzRqb2lzJ15lMGQ5Pjk1MjtUVnVINUtYaTpMJCEtaSZQPlwqOGolZDx1SWtwXEtOIU87ZTpCM1Q2cihRUV5gKyE3dSdwQyohWElwcUQxRitWZDZWTEE6X1FHZXBDUy5xUTNeTmlJNnMrc0AjP2ArZm5ENTo7QCJBJWspPiNeLzM1Uzw0TjJhOmRLRCxaaDg+XjIhQj5wcjo8L3IqQWBXK3NhXExKVUNbaltnaSsrZTAiOVRMUmwjNms2PkBVSE1TVUAmL0AvUk4/NS1lIV5NPkVcLVQtMTNVSidSR1t0TklxXVM4TlxubCJwcmxeMSItcFZlQ1BvZV4hUUByPGg8aVdQcTVociFbdTAmWzphdEo5cEBuWicsb3NCb2dUITU3NXBOPmpETkNYXlBGamsqISIzNSNSMjQ1QCRcIichU1Y+MXJjaVdeMjxfNnFOL0xWWDQoUUJIblA4Ol5uPT9qPF9VW2wqSTJYQlNobCdzPCNLcUVCVCUxcnFmK3UrKidXSEdqXidPVHUmUmpQITslTSxOWlVvYidVQypwZnFxWWY/W1MqP3IwbDY2KzU2ZlFEOlU/J2hqZT8rVCImXENYPDpPZGNjIT1FUyguRkhUQzJGXiJDLDVyLk9RIilkSyF0bC8yPCdEKmYtKUJ0Mz1qNUUuUjklUl45VDdvZz8jRGJJTzpPc2NYY0ksMERFOFxwVEVlL2pUQXNtMW1BLXU/KVxNNlcuO1tSYHNLVSZZalhVdFU5PUJFMDg/Tl5aUVliaU0wV1g7aVJwWihhUz1wVmdOKUU6UklXNVlDRElEbzhUIzFAZCxPRmRfQUFbUi1LOlhMO0I8NDA2amBnTCojPUgjcUguOiZhNW8pTVs9aTVOYm4oT0xOQEQvPilKMGplJyVAPVVaRkhMXUdKQ1xmaG9pMjBJWD8pYXE/byNCPmdEaz41KVpWT2IrYls/W2Vra1BFJVgzWW4xV2I5bj86ZEEvPiY7OU1zQCpLV1FmISRlJDxXQ1dFLzQvT1hAcmBCbHI1RHBWYXIjMz5jTmFLNFJQK0Y+JSEnR1A5SHNGVnVLSidrZlw8XDdbRCM9JDZqK3E2KmZhaF1mQG4uTWkmPCJsJ0ZXYklkOUoqPkE9TCw3QSVMLS5mME9JbCs6LDVJRFMsSSgpIiRTQ0tZTmIsPlUtR2NlYFBRUjJJTXJcaCRYPD4jJmE5USY6YUhyOGlMV3A9Jkg7MFlPX15NK1g5QVcvNCRqMV1lay5WMyN0blojUSw6a2MiZ2VVSm40cT9JcXFmWGc+MEs/Ni1VbG4jW0JuQFJiTmpgdUZeayJSNlNPQ3FKaGNZJGhDNVEhRlEzW19wcl1NRSxvV3RMR2loV1QvQjdRVy1kQjs7LVduRS5WRVdAbGlPWyNGIz9VdUxBQyVRL2ctYzQ2dTkyYFImKDM7Q1IhZEplTmRoVFcxRz1aXipBPzw9bl1OaGVCQVQkMkAnWU02bHBUSC4qYEY+KGp0NGNyQ0NqPllyX04pTGFoVF1QXWNjQmNFMFJCbFRmW1QiVGFiYm5SPkRtNHF0MFJqJG40Tk08aVFzP1ttKVhsUnJzNkFsIlZRX01OKHVkYi8rSS8kR2xcXjouPWlrVUJNaSIsWShDTF9WQiEhbV1VLCNNczxRYkA2UCRqK3BHSERfRVQ3RSI8TWNoNldWciN0aytVTUwkZlVENilhMkBQQzlpRDdyWFhDW3JeVEtQZ1VtLk8iO05CVmxxXW9PcEtQMSRmJGFxXyZOKElrRVc6T0U5WTtTIitsRFJEQTVfcUFGXW4nPU5nUmpKZUlPJ15pSkskc0wlY19wLytQQTVPWjkqUkMobTFwTihTLipRNTBkYWxyNk4mcjwpUTtFJjpdPDowYE5ETyhlUl4kYXA8c3BKR25iYThgIztJN29eIjtWSG1haG4/Wis7cjVDOmBOZnEkYENmMCJdWz5KcnE7NUQjMEJBYjtMZTBIMiVyS1NfTCJxJSIlTDpGWC5fXS5KUFZbVCdwcy01ZTFIR3NJPGprLWMjL2pZaystTT5JXmBfLGhlJS8xRVlRLG1AcyEzajA4NDIvLiVeKS1XcEhncjNRY1I3JCMuXyEpaFFKLT1wN1lCTE8/MlhaXF0uS2tqXVNXKVEwSmRLSz83cF0hSzZoTiFsJGNJJz8vTk9GWTNiNyVXbEZRJVFEIi9FIlQ4aWM6aTthfj4KK2VuZHN0cmVhbQorZW5kb2JqCis4OSAwIG9iagorPDwgL1R5cGUgL1BhZ2UKKy9QYXJlbnQgMSAwIFIKKy9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0KKy9SZXNvdXJjZXMgMyAwIFIKKy9Db250ZW50cyA4OCAwIFIKKy9Bbm5vdHMgOTAgMCBSCis+PgorZW5kb2JqCis5MCAwIG9iagorWworOTEgMCBSCitdCitlbmRvYmoKKzkxIDAgb2JqCis8PCAvVHlwZSAvQW5ub3QKKy9TdWJ0eXBlIC9MaW5rCisvUmVjdCBbIDIxOS4wIDM0NC41NCA0MzUuMzcgMzM0LjU0IF0KKy9DIFsgMCAwIDAgXQorL0JvcmRlciBbIDAgMCAwIF0KKy9BIDQxIDAgUgorL0ggL0kKKz4+CitlbmRvYmoKKzkyIDAgb2JqCis8PCAvTGVuZ3RoIDIwNDggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSBdCisgPj4KK3N0cmVhbQorR2F0PSxEL1wvZSZIODguVGs1Li0kbyc+a0hKUiFgbFxjIWk2KzgkKlZnMD91TTcvLFxQIlNZREs0NGUuLV4jKjY+QjU9aEJaaUwtVCZbTlRrZFNhQXEnJ2ReTWQwbyo1Jyo6PikwVDlbSyxrcWRebDVMUUU5JlFvYzxoQyM4QlhZPTdRY1ZCZjYnNz5KbFokRihZLU9mVkglTGkpT2RzSjksakApKEFIXjBqVVZVT3FtSXBLWEpjVUBcQlV1KDJQJkNLIihiMigqc2NjQzBJOytWWkl0Ml4vdEtiSmppOWAwPyopOmY9WEBxVkskSFJzV0YjI1lVPmhETyMtWCRaUT4wbWI8Wi43RTtPbEdQcXQwXlg8YD90QFlILDVpOmw8N1hYUDUzcGxNMHJTcDRyLEhbZU4kP19TZEkyPWE6VCMsX0JNLEBEIiVuJ0stTlM2aC1qay0tcmVnRUpnOGVdTj50LGY9XyFZNiMxTTpRJD1BQExvIi4rbGJsWGwoYTFQZy9MYTAoW0tWbGotMiIuVF0mO11VW1Y5ciljPVNwMkA/XzFuLmBCM28jc2tBSlohLDxmOTs4QlkvXz9mQkltcWo9W2x1Xj81dU5QZW0naT1oYlZEYVIoNDgzO1ZraGtfciRbRmZYX0Y1QE9YPE5wYFtoUFlfKlNIQEFDZG8jXD5KXFJyNiRQIUBUUU1RW1lpXGBJRUdHX2I5b1pzPUJmP3VtZTo6VFYtVipSLF4iYVw5TzcsX2UyN0FwPydrbHU3Wm8lJSZIUk0zcWhxPU1SciVkVClfdFImYyQkInFpLkouRiJVOiNULDI4WDZiSmMkSFo/X01cVlY/aXMtbDNzUS1xUVBFPGJTLk1sLCxuRiRpUCVzXD5cKDVqYm9rLyswK1tcNCREaFg2aDhCVVw4XVdUZUosLDZwQz5VcC00WWNWTkNRPG9AaGFdTGVGQUk8Z2FHS1whJywmaFkyOFEoMTZxNjwzcTw+IjgtMEo7LzksUkhQbGImT1skSXAoRiZvYFtCRktjXmw9SDBhQGFENTciJTlnP29YXTFNMHQ3Y2VZLFArNTw9dHJsZS9EZV8pYV5yPURlTVNPM21qST9SO1JzPlhfVyhzNUE9PGZDWFkmZi1TcD5Wajo9Mk8sZylrWFU2OEcxajtmXSRIV0cmZVxuYS5jT1ZPQmIiJihRbjdFTiVMZC5dKSY6SW9PQmlZRUtLa21TODpadFpDMk0yNCZZU2lVaWhZIy5kJjcvXE5vbkJSO3JjKVFSaCZpTiQ+blNBWSgsVzNrYFE3OWpNP1MyS1BoQCItUlVgbFBhTUdSJiYpMTtNYVFSMGRRVGY2UDwuXklfOTFuVihqS0A1Vz4pW1U2U2hjNztSYSx0ZTo7b1VETjE6KG1gVWxdYG5WODZtY0BIPTQpLGAlVE9ddVo5ZS9iXlYkbktBbSRGQ2BJNlhYLCpPUSFQbTVeVTc6aD8rU2NgQGc6Tl0zWU5hU006U19IQD4lMWVZbGFbck5VL0txLnI4KVNkSGJrNGgiKkhgVUlGK1llVm5LJGhzZCd0KkdsNHJgcExlTEFmUFNyOzZCL1pjI0IjZUIjbXU4b1VGPHFEZWpPZlovL09YRS9UbGs/YHJTV2dHaGVyOmRCPmsqODZcQyVsWVM3MG8uOy1uJmViTS4iKzY7cFBxVEciR01LX148aWR1UmNRTCM+OT0wKlZFUzgycV00XyJuSGsnWCszcGQ0LEJqZSY2MS9zU2ZEMlxoalVqWTNjZXVcbTlsbTdFSEYpQ2FcUV4qJD5nKVE2TGpvQnNJI28/IkpwaiMxSFMrKENvTVEuU2FjMCpnKWI4TSQhQUpEN2Y1OmVSY1VbQDwpK2JHXyJVRW5zSCtxJyI5SF5VQGsoQGw1R0JbcWtmMzVuNCM1VTdyP0FuUU86UE5MM1llK2dFNWMhRS5lRXNDWiIvVi5zMjsxZUJsVSJmSDonbC0ucTM4NWtGJS9ccVdlUnJFLjM2PGoma3UkQlwqdEM6bWNZLjQwU3BHSC4pRjZoNVxgLT85bkdXbmk4LCVWRmNoYVJKZjBbQiJxLzVZL2o2U0k8UyxjcEgyYlhKQicrNUpGOXBPZyQxYnBkT2dUIkpXUUJXIlBwXW45Z15AITNnQmY6c1tdJzt0LElFOSFhNXE4clUtOmsuUEVwSzJTUj9VYzVgN0MxWy1FWjIhVSMxY21RTDRLZ1NubyRMJl06bGQoU14/ZyI7aS5yX0ZhIXAncWo2cnJJQ2ZuWiYpRjNRbFVDUHJydU1tY11xNCpBMjJIXGJhKjVYMzVTNzkkXlMqaDRHPmMkRzIsU1w5aD5WIitmWzdvMko4IU1oXzcocTQ0SVBlTnFqLiosTCNCWDMza1NXcmtVUytGVmM2SkJaV0dNcic4XjFyL2sxQy9wZkRMcDFHJzFRN0Q7a1ksLzY4bGxaLT81SVlrYnE4LWhycE9OKD9wQjZvajxbcjA2KXUmJi9JXXQ+MzE8X2ltTC9CdF5WKV1HbT0oKldfQGldJkBHbyY+J1VJQzdeZUU9T1xEY3E5YUdlZWBXV2c8cSQ2bGVZNWRgdT1ma0NZYW1yRUojXWZuIW5ePDU9SSJeTCt1J0tEbyNDRTQzbE4mcDoyNUw4MT0tWE5QOmdyMDpibCFHdXJwUlJgcVFTI1FpbloxYDxeOUFRZmE0KFBKVScxNkZUKGlYV2Q2Ul40X2BTO29+PgorZW5kc3RyZWFtCitlbmRvYmoKKzkzIDAgb2JqCis8PCAvVHlwZSAvUGFnZQorL1BhcmVudCAxIDAgUgorL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXQorL1Jlc291cmNlcyAzIDAgUgorL0NvbnRlbnRzIDkyIDAgUgorPj4KK2VuZG9iagorOTQgMCBvYmoKKzw8IC9MZW5ndGggMTE0OCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlIF0KKyA+Pgorc3RyZWFtCitHYXRtOj5BTXRjJjpYQVc6ZjdYRDhMSmpsRC9UciVQLzhCLFNDV0JcUG0+aUctTltGaz0pc2QsY0A4J2pQJipedWVvJS9hSnAnPC9Ebl9YMVwncmIjUG1UMkgnTUs7ZidcbltlSkYiP2ZZVGlkPStwJkFeZHEvI2tyMy9qSm8lP2BPLUdhYlNTQj8pSmNYJ0B1Z0wwbShOaDNLVDZiXytKT08mJkZFT0liSDc3ZE8vPjEkTWwyLiFiYWYmMDg9JEBTMjgzY1wsJF1bWT9JQHVzVnM5YThfNjIlbztEbihAWzBxPi5aSTMsLS1XbUM0Ol8+bWosUTJwIVtRLUhYRCExYlFxXTJXakFVNkZMNGNYREVsLEgwO0RQTTlPXnFaKEIzXjsoVTo0cT9XVzdVP2x0ZF9vPWo5K0I3YWJrXTFNcSVoYU9eZktmPmtZUVNFYyltIWswSSxOYkRoV3NgQlNzUGVDRy5DVVRxP2sjKiMjbCRIVF5RP2YhNjhPMk9vX0klZl8nOGI1NSdlOTxUK0xMPlZIXzBiTG5EQFtFWzNiPkdLJVFLX1JQIVMyIWs8JkcySzMrRVJsOClwNSksYmEsOjpZaWZwRWchPXN1ayNrUlQkTTxhTW1OREQuJGZ1KSJrMnQnI24vTS4zJVRJY0RTYVhyZW1tTEk8bGg5aHNqT21pJVwmVkstSVpycy5oTyZMRDpIRyN1YDlldVZpa1koK2VXKSdnSmZoMDokVFViI1ctMWk/NWs4bUs8MkhXZlBHRThwMUgsbi9yalZzVlYiMnUsQ04lQ2RyLEtuNi1Aa1kxUTo5aHReSG81cT86aFRILnVIY1pdZjxtVWBCYVszIzFJO2dJV0IwYl90Z0JoVCFzWUhKMmZPPShfV0wlOVhRb2lyRDQhVUtJUjtsQC9qK1JKXldGJEAmIm5rMFI4YjFHJjE4QC9qV20rbzMtYDwjV0YhWnAjTTJDWityOiEwJm40OEM8Nm5iWis5MCRoQ240T3F0I2s5b1AtLUoral5cSEkxKzpNNGNHJT0iV3IrOT5aZ0NoPE1zPSQzODk4dTVyTDAxazFBa1wsLzJNWj4xS04+biEwaFAkMls4YG9xOy1OKCNBXWw4NDNfbFlEZ2pHcS5gWzchcCRDbi9POipfWzlcO2Y0Ry9UcFU7RkFcMmFkXEFTYzY0YW1RKmpeLUEnYGpsYDN0TC5jVVE7TUlLXGVtRiZJOG1laHFIPTk4ZmJJXnBcQDJgJWIlXk1xQCtZdF8jUkIjNDdKcj02MU5NcW1zTT9aK2xvXjM9WW8mMi4rJj11TGlhWzxCVG1dYWN0UEk/Si1JRlBWQGQ/RFliJmdWRHRlQ14wPWIlJltpb1BycmdCQDpjNStmYSc7RF47IWxSUCphWUZwTmRqYDZtXWFkRCUhc29BQT0nNSg4SEBMRHIoOThwW1RTJ2ZuJTJHPFg/M0RrJmhFIyIscDpuOj1qW0stPzIqNWNZYydrZCwhOSxMIydKU0Y/QDhsQytdQXBfaC4lQ34+CitlbmRzdHJlYW0KK2VuZG9iagorOTUgMCBvYmoKKzw8IC9UeXBlIC9QYWdlCisvUGFyZW50IDEgMCBSCisvTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdCisvUmVzb3VyY2VzIDMgMCBSCisvQ29udGVudHMgOTQgMCBSCis+PgorZW5kb2JqCis5NiAwIG9iagorPDwgL0xlbmd0aCAxMzQzIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhdFUzPkFyTGonUm80SD1AZV0iOTI5KF0yYyRwOUxZWDpXWCFnXU1YQWdYb0sqKTVBKDJSYFRDbmRzMF4jS0w3MGs2KkA4LUdEPGtQQlZpU0c+LGQ/LzgqWCw9J1AlMisjVDdLSDZsZ1lfK0NUMCpRQV4/dFsycipbYmBnL2BYaCJcYD4wKlRENFZoZi0iZSEwRClHRllaOlwwSDIlJ19II2kmXjFnNmBWP1paMjFZdTlvUkc0VDRWR2ZYJ0dbJUAkU0YuTmI7UUtMPDM+VzYjdF41IWgmZVNWZm5yaE9fWlU2JCUtN0IldEdbNnM4W0RzPiU6RWQtK0oqL04uQXEubjddY21qW0s+blRXW2IrR0tfO0MwRyRYPFpWQDxLb0A1VTpCbSNiNihtKmNmb25gOmhkTXBEYDJPXEVsKm1XYHQ7QTcuMDNKRzNgNFFvTTdUQl9uajNXTy5hZTlgLHFvP0tiXioiVi8ndTNIImNQJEokT1BybStMNEpWbWdoX1hwIi9Aa2UwNkNTQFFHWVwwTicsUE1PLGVtPWhCbzFLWnVRPnE6JWsobFY/NC1WZTVRVjdfdXVKKyRbX0FWSSRUaE9bXSlrUzcvOmNRY3BCMzV0QFp0clBrX09BYC1VTz0xMnEoLitJLlREaj9kcV1QWDBIUWlTcF5pbi1lXyhUNXMlJi1HdHBtUWNOczlwM0dzUik8VWFwQXFLc2FhZnVtRzNVZG5LNChVL0pLdEs2R3Nxb05JSWUoZkRJLk5qMShFODciIyo2b2xqK0g6IWA3L0NNKFVXJic7YiFSU04+KFZcQ2FjcixOJGhNKy9LcV80MjY2WFBSUSooRTFsZGcpUy1uSik2PiJEK0RQJFUlQzEpbnBvTGNuZSFvX1dIVFU8UG5qQ3F1Wyw6bFRcLl9pVStxPjUtPS9tUDo2J2owJCtwRldnMCg3Z2FxMWssJTQ5PjZEQS5ddTgkbXBtTyFTI1FSL00zcjhgZTRaVksrNERLIU1Ub15iUWpiM0wnWzpLVzQjIWopJjBNTEE8PG5JaDdMLkw+ai5lZTo5UGNDSFtyLiZjImk3YUdLOW03UGwqYkwwIT1oczJaO0poRGk/aXU1PWYuZ0BpQV1bck1lWWZgUTwuOjEkPGh0UlE0USZdXTNgMUU2RU9jSktYdS40THM1TDpVRFRXcEJRVT1QQ1RraDZXTFheVUk5XGE5Y1luLTkoVnNKLyRca2taWkJDWVBrNTdYLG44R2pxclsqZEJyQ2dIW10oLStsZXFIdCZPImYsbHNeOiZfX2xwcUNxXFhuWkpOWEhlQVwicW4mVyUoN1VRcztpP3RyTGxsai9UR2dTLkkiIi4vZC81WCNoJidSZj9sSU9fPWIscmxzTFNLMUEyR0xtNmppLl9aWDdEQitmNnUjVC1cVCU3PUZWQlhrWilzcGxAKm85aFI8ZDw2S2YiRzkwO2w+PlEzSGpfLllcIm9tX1MvWCVIS1ZhMHJBOWg7S3RbWl8oNGozUl1ycHBDbEcoQUtFcnVMLzQtWCRCQmsxQVlQbyhfNXAhVTkxRS9jP1EqWkc8UixfOGVSTUUlQFRBPitJQkNrJmpWLTkyR203XHJSQC1VQktaJEE+T18yJWtuN0JWOUxbNDlKXzlVO1FvTi09aTAoN0ZsTWBBWiJeTTxzNU0vbFhsaGFTXlpdL2NxXGspRkdOaGpFWSxibEc/YFQ9J1UyLV5QUTNjMWJBMktZYlpFTzZcPF5kOUxOVG1nIi89LWhSZ3NFTU1jKjQ9XWZcfj4KK2VuZHN0cmVhbQorZW5kb2JqCis5NyAwIG9iagorPDwgL1R5cGUgL1BhZ2UKKy9QYXJlbnQgMSAwIFIKKy9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0KKy9SZXNvdXJjZXMgMyAwIFIKKy9Db250ZW50cyA5NiAwIFIKKz4+CitlbmRvYmoKKzk4IDAgb2JqCis8PCAvTGVuZ3RoIDEyNDAgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSBdCisgPj4KK3N0cmVhbQorR2F0bTtnTVliOCY6Ti8zZClxN1wsXC04JWdkTmhcajRYWj9fYWtePVdUbypbWF9hYEVXJTBAKzp1cExpOThfazBpbUxDMCNTT01mUkBWTV0xSFR0QylrQz84SjpuSTxaaDVeVERGWXJYbk8hQVAtdVIkSktwVyJML0dPU19PSlEjSmxYLFMzSSdVVl1sKVNPZjpHRFxFODB1LFsuMztKQTtTQy5xUytkO3NlUmgjOEMuU2IpZVFQRy80LU5IbVFWaEU6UyczN1U3dV9TaigsSSk3PHI2cCEzNThvJ00xSjg8ZFpITUlKQ0ItbFFbZ0RyKi5ubFcjRXQnVFYpb1heX0s9QURYQihuYisqckVEUi1yaG1fXW1qMnFVKEtiW3A7TFdAXEIxLjUia0hYXHVWblMsKEAzVz0lTkY6RGdSKlBPb2xqcGFzUDVLXiJQMUcuTCZWRmFYPTk4YC45QVAyUUB0YmtQMztEPGdeU3AqNU9xRi1kVUlGWy4sM1MzNjNFWVQ4UjcxMDFFRT9Waj09bXIpZlwrMCMsYUlkZVxCK2cuYyxRTWZzZFUyb3EmP2AsXUsxTTwzUjFIMXEwblJOMXA1XUQkZS5uTzRqVlpGN1xob19oSEpQU1xPOFxvTSpDPi5hVXJxViMpNCYqQ21XaFAxPCdQblFgOmNCU0NcMFguXmlyWSI2aEo3dCxEVi1iSlwmP0BeRC1DOS5UNkBgTXQoZmBkXGFyVmxvP1knIVxVbUdUMTtmXy9sIio4clppXFVdYCoqZGdKcExvOW42cXJKXkldTiU6NmBAIjI/NnVTUmc4VShgZixVMzs1VyhoUUNSNWdtb0E9WC1pV3AjPk1LNj5SWV9ScCxdXiQjTU9FKkxWP28tMExdR1AvNEcrJFkhcDY8NC8oKTtvQD8rN0gtO0snJjE/KDEydG5SQSlOOkxjTj5PKCc1aHBoZydOTl0wKkYjMCkkIVhbUT4jOzNPOjZjQSlfR3EzcyM6LztqIVJlTWNAJVgsYy1yLD82Qkw+b1E7REhpazkxZWdVLWBUc0lKKG1yNWM8Qi4xR204S2NvPFA5NG5CIkBkaEcmZk9GJEBMcy8lLGZIY0NIMEYvK2RPX18hUSxmNTBPKlVpcChBWUUqIS1jaVglclItQj5NSlIjMUphcD5FWD1NcFYxIUphIkdQbFpIMDxzaXBTUSNNU1MuaFopaDlBcDoqbUcwaGpNQklgYzJNTzlMMjRgJzJraVxMYF84Ni4laztkO1BGa11wa15LJCY/UU1dKXBbWyYyVio+ODZuMDA/JicqTSRcRnJ0VWZscEw3TSV1Jk1eJUBkaWNALHMiQ1lnQjVcdTwrdFQ6UyJkbTZzXG1LcDF1YEdnYC1PXHMlWz1SUWxIQ0tmQzFjVVA9QnVXU1VgaSE9JzhLPCVKLyw+am0/IyY5U3IpWUlSXHQhbDt1XUg5SkgiJ1BaYWdgN0FMXE4kUmV0Ums1OFtSQ0YhRTBYal5UUi4yLjxKKnVARmpfWFFyck9QckdNKWJTSzBQXlZ0K3ArTmxwI3M8V1NVSjBhLWEqTjcsTjsrYVFMMmYlQ1kuK0xDWXBGK0FTQU0+JmdXQ0JoanRrKkhkK15CWWRaWDxhMXI1SydBQiZNKCRQSGsoJ34+CitlbmRzdHJlYW0KK2VuZG9iagorOTkgMCBvYmoKKzw8IC9UeXBlIC9QYWdlCisvUGFyZW50IDEgMCBSCisvTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdCisvUmVzb3VyY2VzIDMgMCBSCisvQ29udGVudHMgOTggMCBSCis+PgorZW5kb2JqCisxMDAgMCBvYmoKKzw8IC9MZW5ndGggMTE4OCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlIF0KKyA+Pgorc3RyZWFtCitHYXQ9Kz8jUzFfJ1JlPDJuLnItalkySW4mam1mUipacDk3cy5gQ2IwLWVuc2UzMnM8alNLNklMI2s/Zl86QCo1bEdbKkw2V2QkO15JW2tjSmghclNMbHRXNDZpZSRKSWYvKSUzYl9ZPD0rKiErMlxFTW4kP1Q/NllxKUZIJzZASilcbl9BSGJyL1hpIUFSUU1XSDBPKkZiSTlqLzpJMXNXZ2pla241MV86bTosM3NZTSMzP1E/ZyNpNmRLJCU8JFZpRDZqRzZJWyo/XmApSDR0R0ljXm9APEJsTWBnSGxcVE5dTyg6ayI0PHBaZG4qVENLREVLQSwyQys0NDZaLSUwPk8kQGE1J0BPREBnPXBgW1hJTnE0aTlVPlJvNHNyJVxJXzZfQkNeOG5ZdXE0bD4mVTopV2c5QkFeXlFcL1wmVzoocSVQYjRAbnVqRUI9PDpgTy9kNz9gdGwjZGtRPzNBPlQ1QUNTQ0llNCc7aHIlWFNzZU8jLlQqIUAzckxuPEFZJSk7NnBndFkkSScjTlxlYV0hdW8paCplYFxQQyVfT19qKEJPRSY2YSlRQEIwNiNjPjhhaHBIYzImY2RRZW5kPk8tKU9qMjpdWmZLKkcqNV83TFolYEtGbjVZcCdrQFxRcFcscV5Rc2lYRzQsMWFdMWpDVTVTbUJsTi9WXmdyW005b11uTFUzSGRAMkQ8ck0zZWVCK1ZnbSVeX3VLXiNYT1xyITdeWTxhU2QiIiJwKSshaydzWF1Abz5TZV4/OmFsMlssQlxKdSRec3MsOWBGKjFFXSxsMzVkZSxOb0E0JjA3Sld0PTc2RXImRG48OmsrWTRrc1leJ0JOWEJdaj9nWyswdG9eX2YnRmpLWWdsIWNSKzpjWiE5WylURmNTQ29ERzJGVTQmYWJidFhuY0dPc0k6LCRLaD9aai8uZlRcTzA8K3VgZ290YjJRYT1QJ09FLD9SaFBuLTkra2RuNllrUmM+c0JeI1U4QTZMbj1sTUklQz4pLGw8QGhUOCNJI3IvZEAucnN1b1syPWRUTWVbSkBhTzhNRFQ9K19KI3I+JyRTNUdHYGBbIlBPO2VeYyJ1NkJWOys0PmUnXktNR2gxSDpDTmBEUi87UHE2SCYmPmE8KlRjLUUlb2trdV9UKWhGXGRFXSorRWlhSC1DRXRjXEdSYCNiTmoiTS1UaWo9YCllKSdCTzFIdUlYNWxEV1VNNklYJSZXSWInaWFWKi9aT0AwQ11gX25VPlJUWzI5XmBHSkApaSwkXmRdWjZZKzZHWnUrNVlGYTc/Tm1jYTdhIVdNRSlNRy86PGc6OzdeJD1wSGFtX19yVUA5P181PHE7UW5LcW5ESTxCXT1FWzByQWNIdG0oU1MmbyVcLEZURzVqKkZdLGFoOENoSnE4Yi9gamZHbEVkKjYuMmw3WFFWKzdgaEZcImZdakIiYDVKRG1tTDVQJHAiTmwvaypLMDdJZk5IUSJUIlY1Xz5LIzRVVl04cCgjWG0zWEhTZytrKGojP2I2NiY8cTxfLExoRFREXzdqYzU+MzQxVy5iI1tXR1lENTRAMz1ELWtbL2xqODV+PgorZW5kc3RyZWFtCitlbmRvYmoKKzEwMSAwIG9iagorPDwgL1R5cGUgL1BhZ2UKKy9QYXJlbnQgMSAwIFIKKy9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0KKy9SZXNvdXJjZXMgMyAwIFIKKy9Db250ZW50cyAxMDAgMCBSCis+PgorZW5kb2JqCisxMDIgMCBvYmoKKzw8IC9MZW5ndGggMTI1MCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlIF0KKyA+Pgorc3RyZWFtCitHYXQlIz5FQDVtJ1JvTVMjX1EvbSZZLSpINC0hSC89cEJraylCZmsnMDRaK2psWk9JMDhfNltMQiFwQG1eKmdEUEsmJHA6Pi9lZHRJUW1iVmwuYTI8RWlxTXNKOVsiRktRcnNtb2EkI0Y3aHJwOThKayJgL1EyJzcxdDIyJV49ImgrNzZqSiFsMElkLStsLlVzcEMkcHI+aHBhXTxWSV0rL2VAKWlcLFEwcXFSWC9LMFJCalxjQmU8OSxTXExQVDZXQlBpbTFJaSFXSWk1KGY9TlBrIVZWMDlZVGZ0ZSlcbDppKl9fXkRkNT4vTENCRUk+b1ImaDlHVT8ocTlnSjRHcHRAb1RSSktsVDNYZVleYC5CWlhLXWxlKyUyPDIpQ09hU1AmLyRxYyI+WGVJWCluLGktPXIoP2YrO1lEV2JBUkBhJ1YzTTAqOC9vPzYsbTNya3M8LXUlNCEoYGJZaiIpVyh1MU8+QkA1UDdlYHJScGozYU1EZjE6WSxKIy9Lcz8vWUJpKEE6OFE2XFxMZiczZEE0SzQjampbQT9AOlNMKXVbJ0ByRz1iKVlRU0s5MGk/TipUYkAlZWpRPlhCQlJDIighXWQ+LGlbUXU0My8jZFk3Q0BlJUoyRz4oZDkxQlUnYyJFJVw3I0dASyoqSV0yU2BRJVZ1VTBHVVRiWmhgRmM9Mm9qOi91NEMpPishSjkkX0AsVVV0bFM0YHIuZylwVyJRRU9LP2ZGLjFjVjU7b280NG10TFBuNy0nbTFOWCVnPkxIb0lyNTg3KURBODxPUS0+OmJEZ0stJVotPFRUXS9WPiU0SGtLbzVyYFcyOzMxXi4wS1JZXFhGZUVNPVQ2JTY+UjI/I1YsVm5BK2RxPSo3JHMyVixEVlg/WiRmLGwwLjgyTTpCXU9MTERxTExSNFsvYCVQVTIuVSYrP21NW1xHbEo+UV08KzdkaEs/JmImc2peRVgtSzgnZmxESCdwVElacUBbNiJucW84J09RT3AvcWIiKjxmVmAicDZwYTk/Y1A5M1A6KT9RMUFELGVJbV0jOE5lZShqbF1acFIxTGt1Zyp1XWVoPmQvLj1oTzVodEpDYXQ9dS1PRFZpUj8kcE4vSGJVY2xLXHNDKkFfNHFaKUcmY2RFUEAsXVRuJ008VTZWY0xbTmlkLGQnYz9oUEVpVXJzMkNKTS4qYWA8PCNNRkpTP0lJTj1QX2twYUNBV1hRVWx1PFYvYEFfW2gnKTcwOkcnUkJyYHIyRjtOS3ROYkFjRG81JWJCVEg4WHVjJEpEUDFiMWQ8NjQwX2tWWz5nclczM2pjU2opQTQqNiNxSD9vPD03KHBnWjFabTQ8TTRuYEw7KGorbjtsYThYM2cpYTYkLVYkKGZpNWhUZ2lDdVtubyxiNE9FJT03b2BkOkRUQTJrT19DUEdIVzJYLDIwTF1kaGM3RmlpNDQwcWpPRSpAQTpXXlJjQFUkXldYVk5nKS1lcTJmT21EcSImVCJna1NpcGJNYnM2LUY4VWM9b2ZIOF1ZUygjTFlrSihPXi5XV1hTOzxNXFVFKSk6Wj9wPT5HQi0/JShXNFE8OGY7Ojl1aCFqdFlbWG8yTyxqRzpPO1ctZzAsNztlOTVDXE5UMWskLVhePnRBKi1DVlVuZFBdckdtI0ZtQ29WI34+CitlbmRzdHJlYW0KK2VuZG9iagorMTAzIDAgb2JqCis8PCAvVHlwZSAvUGFnZQorL1BhcmVudCAxIDAgUgorL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXQorL1Jlc291cmNlcyAzIDAgUgorL0NvbnRlbnRzIDEwMiAwIFIKKz4+CitlbmRvYmoKKzEwNCAwIG9iagorPDwgL0xlbmd0aCAxMjAzIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhdCUiZ01ZYjgmOk4vM1lWJDhSWHV0UGswNVsvNSxeK2RULisyLkEkQjdCSzxcYV01PDBzQyItY2omOFFEREhxXVRjXD0wTSNyXUI/amFnL0xIaDlPW2ZdaERtPmxGRF9uKC5fKkA1NEx1Q2lHcytmJCxDcVdXbjxLWU08JF9KOXBsIzZPXGtBQnAkV0NxQilBaCNdOnEvV09xZnJtNCNlbSNkTzJBZ0QrXUpaKFpIUiYnQ0gtPzNVKyljJEpfLS1nOW91STpNay1PTXQ/cFgqZl4hZ1wlWGxGK3VYZCVFLlpTdDxORGNMLTo3ZTRFQmZwUDYvckhoWnBNKDZca1NSaT0+IlZLcDFPIy0uWDkrSFFebV45JzBTVz1tOjM2MlRgRGYsbSQrbWNGKkMtO2JiVlkhbmhJaGtJcVBwcW8kS0I2YklMXUMlUSJXNGcxLl9zTjtiPURWcyxJIjY5WSdUOmBYTF1tT19HUSRoR2d0SGIvP2NIWlItQC5aU090ImludSYxSl4mVUFXImhiVE8sM19FIzZpIWUyYWBjODlHNEYiQkk2TjFkYU5KPHBUXCJCXCRlXVM/Yi1TQidvRS9SbCUiLFNnJnJraF1IOjcpOU1ScEF0clFCXSVhPl9bZyVtKWslPm5ocUo9QlYoVz1JZSRhNF0yUDRKYXJiQTQiPmRkY19xa0grUixsWk0sNk9jIU9dYmA6aHVuLVN1QURtQGpSK2cqLD8/Jjg7TmssOFoxU0Y1WWJzRGxwPF9zIXVvRlpRL0ZpXi9zRmQhZi1TPV5uQEpcMGI7PjhhYWFJbnNdYnQ/QVV1RkU2SSIuJCI+dDJiZlcvTDtoNjkiPmc4RlM7NSlTKkgjS1ttaVBZX1lgP21LPVI2XnE1aipOSCJUcj5dLyVFXiQ4RFRALCpTIyQpYyRxITZ0SGlFXVpgXW1LWGo9QVczTnRYUUVhbGkxRk8razVnN2BAP1suKVMtLUhdTVZhQidAM0xfXGslN1csWidYVTpiRW5EKHBnPnU0YjEqLTk6bElnZExuZFtlSC1KSmohIjcnLUUkUiViS19xUCdTXzlJSy1lTGg8b1ZTaEhKXlQkTShPR1MiUHBhTyNEJEg2LFEvPSl0VkY8XDVySSFSYVFTVDJpRFphKlpHRjpKcGg7OjdcJ2NLT1E3QkJNYjEhUG9gW085c2paOWsuImk5bUdqK1VuYCEyPDNDbnFAQ2wzYkdKYHBlOyxBcCVzMTsrXU0oOHBJPk8/KjQqTjIhPzJdMzw4SFZ0KGZAPWBdbEpYUUFUK0okJ0xacUV0RGJmZGlsJFUqdSNBJSNAaSstL1teUzdtZGduZzdwaDg2NyVHWlwrS1JbPDdUMitRSztSdGg/c049ZFtvaWZWKGZvQSRHMDRsdE5QbzJWW1tMV1lNO1k1UktAKC9oZSczYTlWLVpfKl80KjcnXjNSOy5JdDRTdFE3bTlNOmpzMGMhUUs0WjdRK3VadVc3UF0zbEgwYFFvUD82bT1RXUlOVyJFS2YjZS1eYk1LQmY9QilMPyYlblwxckE6VClDW20xN01jbVc8WWxKV25ZaSpmISRQQVQtZnBBVXJubH4+CitlbmRzdHJlYW0KK2VuZG9iagorMTA1IDAgb2JqCis8PCAvVHlwZSAvUGFnZQorL1BhcmVudCAxIDAgUgorL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXQorL1Jlc291cmNlcyAzIDAgUgorL0NvbnRlbnRzIDEwNCAwIFIKKz4+CitlbmRvYmoKKzEwNiAwIG9iagorPDwgL0xlbmd0aCAxMzI2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGUgXQorID4+CitzdHJlYW0KK0dhdFUzPkFyN1MnUm9lW2NqWGBzXiVkNnA4UHJaWCFHYFhMKkozVmpwRi1GVjlyOzMpMTZrRk8xM0Q/JSspK1JnNC9DPjcjUz4ma2NaYTlhXGBpLXFGTTxQbk11XC5Ib2EjaTQmYl89X19dRmhjRmldW1UqLixsMkc8NzZzcCVwNjkuJlBpYDVbJVc7ZDZIbjQxT2tFbDlZRU4rcT0+MWxUYDBfSks8WlY6UDw6TUhHUzlKTWhVaDspPD5cTFBXMTNpNyU7Tj8+T15iRjtUKFdFaCovWFBsKnNWZklUL1lhTyciUS5SQmY1OEdEOCsqUGxJQ1pjXVRkLThiMmhcWkYkNiojRjdAW0lVT3MxZWJcI2o5N2NkMydfYmFoUyFeWT1EWEBqXnFIVlk+NlFbSm9ZMz9AQU1HPzdpVUYicjZlS11IS2ViUmsjOzpZZkNqImxKVjlCNFpkTidTdTpmKD5KXW9jJSlfKTE3KCEpQiJUXkxoLTFRVXEyXnJWPHNFPWdjTUckLVptNlRcQVRFI10pclhDQiRSYy81azNJUlVUMERxbylLKVxtSVlYT2s0XyMwbW0oYmgzOi5WJXMuPj5qPWlrRVdJXW9GSyNbI2JmbVhLazFkaWY/WVdeRSIucm1GInM1ZVUhUUwqNllVRkNsQyY1OytIQEE+MyhybmVoaiJNOl0/dSNyRiRwUU1xLlMjZyIwQyw+Ym5kK1gxXjAhTmROX3BAMFhaZElyYl1IQC8pTzlPW11iMkJBL3JoKGhxJ0FJcWEiYUBhNipCVkAvWCoxZ0Y7dEQmJF9eM2RfNjVnMzxqSmdJZzcsVEdLY1RxK1U1SUkpdSMlUyZxSSwvVFFyND5zMTlZXTFgO0xscjgyJk1FVVRpS0A1O0khPGdILVBKcG8yTTYzPzk3UHRbK1Q1OU4lIlZCWHEqVVFIWi82T0sjWVVXTjJPYmEqW3E7J2czMzcsK19hUCkpdUU8cU8iRDNFI05cXzEvSlBhY2RBZk1YVFFxSHBSc0hNcWZfVikwZTtfQkNjK2hvUkEmOD9tMkVXajheWyo0RlVpJEEoRlBgKWVLR2ZoaUZXRmNsWiwmJFQpJ2xCJm4sQCxCIjIoRnNKSj07Rj1XZVksPktLZzg+UU5mN21IXTx1bidEZjopbUxFVlQ8R1xmbkRHbU4zOlNFTiotXk9JKW5TdDY0NycpT3MjK1s3MUBdLjJLaUBJJ3MoPiwwQlpeQGBMY2lTYlIuXGBUQCwsIVpCJE5bTW5KKEkhZllULkYxJ08rPFskKGppPl1oLTVVJSosODssPlhiYXBBZSliQ1ZwJzQjQygzOTgsRFpjNSgibGldaTNkZlc0YWE8KU5yXzdmInFGTT5VOipgWCVCVHBWQ0M6P1RsUFhcI2U+XzYobDJ0Si5TXi02Wj09WTc5Zz42b2lnR25LbGhrb0NONy9hYFxeV2FZdDtzKS9ZZXBcdGY2ZiJvR244PUJvWXBkYjM7RDU9XFc2SkohQy1GS0EmQT8/N2ZnLlZYMWIiVHIpdERCQENENUlzN25jYWcpbi8zdT9QIXFYbjNkMFFGKkx0QlU0LDI7aHMrZGprP1AsZlIhT3NnZFFfPTVSI0JMLCswIUQ1PnFTV3MyJzVcQiEpPjcmZV8nTiMkQjgqb0RhIXI2b01VMFxaMG5CZlk8NTY9PENgU1ElSUdZQjZVYW5SQXBgXixdPUtEcyxlKik8YjonV3FsVm84O29bX1NmJmZnTzdyckdGVzo/Vn4+CitlbmRzdHJlYW0KK2VuZG9iagorMTA3IDAgb2JqCis8PCAvVHlwZSAvUGFnZQorL1BhcmVudCAxIDAgUgorL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXQorL1Jlc291cmNlcyAzIDAgUgorL0NvbnRlbnRzIDEwNiAwIFIKKz4+CitlbmRvYmoKKzEwOCAwIG9iagorPDwgL0xlbmd0aCA4MTcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSBdCisgPj4KK3N0cmVhbQorR2F0JSE/I3VNWSdSZWtHXy4sNmEmLmhoLT5Pc15ILWdlOF1WcGZAWCYkMVtBJTRiWlxCX3ExVWQzcio5VnJORE00UWZ1OyJZUS8razJKOSUoZFM7UUkiT1xoXyNXLW4iJixadEBoXzBKS0NmL1hTXC4saWs2KSRPLChwIzo7RHM8NDBLdUBUSXNfdCxXLl42IUdybkEjOyRzKGY5KVk/bmpoY2hFJio/NEZbUUptcm9BTkMzQiEvZTouQkI8bzZyaFBCamwtK09IakFvaj1tQWs5YTQtLz5cKUpPUV0hQyQ0WyhncylYXzZcLVMyNlU7KXAmaWVpT2RNW1FTWUJdMm1wakpgSm9wb1pQMkpkTydWP1QkS1ljaUtpRCpjNDdoRVRnZ25aR0xBLSdHXCcjTG9CV1QhVG9qQS5XOVEvU05RXW5KYE9dQU5FSFhTOGonOmNlb0UrOWNHaWleVzxvckkqRks1UDhfMF0jST9JblthWi8nNEA+Zj1bQTFrQkdDV01dIWprRUQmUF4rXy4+JmJLbS41OzNxVEs/cHBWY1okQUdtKUdEPVE+Q2c5JE9FJzpralFXVmUuWVQ5RT1PNixQRDwvLilgT3InVms4UGFZQS9cbUVVNlQ6RVY6OVA5I1VlWVdmbkJVKWI6YilVQ1ovcyRbSCwyZDV0I1txXktTbDdVYGtdTTVnVCldLiRfRipcYC89VGIvbkRuISdzKStoWD4mPjRDWllhZ3NedCczZXJWblRoLj9ZUVxxOXNaRjQ0VFklNjRBNz9jK3FoajdUQmBUJz5HZCRdKWw0LVtLUjJZUFZTSl80L2pXOSRIWWZVJyhKVjUmXTBfP1A8PWVhZjwtNXMyRGdrR2FkMUdzOG5AOyk5MWQtNUNKIUYlWy8jRCgyMGxyNiZoYSxZZklvIjklYl9ZNGdYZjl1NWhAT0dKMVZDUnFTQ19WIT5NXCtlKyVIN0BFPl0odCU6VGAqLCwwYW4naFxvMixvTXVgXDlqNXIqOyFzQ0gzI25BUE5OR1xBcURKXXJvX3REWCVFZj5mQG5vQk9HbUxCZVpjYjBrMFBMQ1VSKVVJcH4+CitlbmRzdHJlYW0KK2VuZG9iagorMTA5IDAgb2JqCis8PCAvVHlwZSAvUGFnZQorL1BhcmVudCAxIDAgUgorL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXQorL1Jlc291cmNlcyAzIDAgUgorL0NvbnRlbnRzIDEwOCAwIFIKKy9Bbm5vdHMgMTEwIDAgUgorPj4KK2VuZG9iagorMTEwIDAgb2JqCitbCitdCitlbmRvYmoKKzExMyAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTE0XDBcMTUxXDBcMTQyXDBcMTcwXDBcMTU1XDBcMTU0XDBcNDBcMFwxMjRcMFwxNjVcMFwxNjRcMFwxNTdcMFwxNjJcMFwxNTFcMFwxNDFcMFwxNTQpCisgL1BhcmVudCAxMTEgMCBSCisgL05leHQgMTE1IDAgUgorIC9BIDExMiAwIFIKKz4+IGVuZG9iagorMTE1IDAgb2JqCis8PAorIC9UaXRsZSAoXDM3NlwzNzdcMFwxMjRcMFwxNDFcMFwxNDJcMFwxNTRcMFwxNDVcMFw0MFwwXDE1N1wwXDE0NlwwXDQwXDBcMTAzXDBcMTU3XDBcMTU2XDBcMTY0XDBcMTQ1XDBcMTU2XDBcMTY0XDBcMTYzKQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDExMyAwIFIKKyAvTmV4dCAxMTYgMCBSCisgL0EgMTE0IDAgUgorPj4gZW5kb2JqCisxMTYgMCBvYmoKKzw8CisgL1RpdGxlIChcMzc2XDM3N1wwXDExMVwwXDE1NlwwXDE2NFwwXDE2MlwwXDE1N1wwXDE0NFwwXDE2NVwwXDE0M1wwXDE2NFwwXDE1MVwwXDE1N1wwXDE1NikKKyAvUGFyZW50IDExMSAwIFIKKyAvUHJldiAxMTUgMCBSCisgL05leHQgMTE3IDAgUgorIC9BIDkgMCBSCis+PiBlbmRvYmoKKzExNyAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTA0XDBcMTQxXDBcMTY0XDBcMTQxXDBcNDBcMFwxMjRcMFwxNzFcMFwxNjBcMFwxNDVcMFwxNjMpCisgL1BhcmVudCAxMTEgMCBSCisgL1ByZXYgMTE2IDAgUgorIC9OZXh0IDExOCAwIFIKKyAvQSAxMSAwIFIKKz4+IGVuZG9iagorMTE4IDAgb2JqCis8PAorIC9UaXRsZSAoXDM3NlwzNzdcMFwxMjBcMFwxNDFcMFwxNjJcMFwxNjNcMFwxNTFcMFwxNTZcMFwxNDdcMFw0MFwwXDE2NFwwXDE1MFwwXDE0NVwwXDQwXDBcMTQ2XDBcMTUxXDBcMTU0XDBcMTQ1KQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDExNyAwIFIKKyAvTmV4dCAxMTkgMCBSCisgL0EgMTMgMCBSCis+PiBlbmRvYmoKKzExOSAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTIyXDBcMTQ1XDBcMTY0XDBcMTYyXDBcMTUxXDBcMTQ1XDBcMTY2XDBcMTUxXDBcMTU2XDBcMTQ3XDBcNDBcMFwxMDVcMFwxNTRcMFwxNDVcMFwxNTVcMFwxNDVcMFwxNTZcMFwxNjRcMFw0MFwwXDEwM1wwXDE1N1wwXDE1NlwwXDE2NFwwXDE0NVwwXDE1NlwwXDE2NCkKKyAvUGFyZW50IDExMSAwIFIKKyAvUHJldiAxMTggMCBSCisgL05leHQgMTIwIDAgUgorIC9BIDE1IDAgUgorPj4gZW5kb2JqCisxMjAgMCBvYmoKKzw8CisgL1RpdGxlIChcMzc2XDM3N1wwXDEyNVwwXDE2M1wwXDE1MVwwXDE1NlwwXDE0N1wwXDQwXDBcMTMwXDBcMTIwXDBcMTQxXDBcMTY0XDBcMTUwXDBcNDBcMFwxNjRcMFwxNTdcMFw0MFwwXDEyMlwwXDE0NVwwXDE2NFwwXDE2MlwwXDE1MVwwXDE0NVwwXDE2NlwwXDE0NVwwXDQwXDBcMTA1XDBcMTU0XDBcMTQ1XDBcMTU1XDBcMTQ1XDBcMTU2XDBcMTY0XDBcNDBcMFwxMDNcMFwxNTdcMFwxNTZcMFwxNjRcMFwxNDVcMFwxNTZcMFwxNjQpCisgL1BhcmVudCAxMTEgMCBSCisgL1ByZXYgMTE5IDAgUgorIC9OZXh0IDEyMSAwIFIKKyAvQSAxNyAwIFIKKz4+IGVuZG9iagorMTIxIDAgb2JqCis8PAorIC9UaXRsZSAoXDM3NlwzNzdcMFwxMjdcMFwxNjJcMFwxNTFcMFwxNjRcMFwxNTFcMFwxNTZcMFwxNDdcMFw0MFwwXDE0NVwwXDE1NFwwXDE0NVwwXDE1NVwwXDE0NVwwXDE1NlwwXDE2NFwwXDQwXDBcMTQzXDBcMTU3XDBcMTU2XDBcMTY0XDBcMTQ1XDBcMTU2XDBcMTY0KQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDEyMCAwIFIKKyAvTmV4dCAxMjIgMCBSCisgL0EgMTkgMCBSCis+PiBlbmRvYmoKKzEyMiAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTI3XDBcMTYyXDBcMTUxXDBcMTY0XDBcMTUxXDBcMTU2XDBcMTQ3XDBcNDBcMFwxMDFcMFwxNjRcMFwxNjRcMFwxNjJcMFwxNTFcMFwxNDJcMFwxNjVcMFwxNjRcMFwxNDUpCisgL1BhcmVudCAxMTEgMCBSCisgL1ByZXYgMTIxIDAgUgorIC9OZXh0IDEyMyAwIFIKKyAvQSAyMSAwIFIKKz4+IGVuZG9iagorMTIzIDAgb2JqCis8PAorIC9UaXRsZSAoXDM3NlwzNzdcMFwxMjJcMFwxNDVcMFwxNjRcMFwxNjJcMFwxNTFcMFwxNDVcMFwxNjZcMFwxNTFcMFwxNTZcMFwxNDdcMFw0MFwwXDEwMVwwXDE2NFwwXDE2NFwwXDE2MlwwXDE1MVwwXDE0MlwwXDE2NVwwXDE2NFwwXDE0NVwwXDE2MykKKyAvUGFyZW50IDExMSAwIFIKKyAvUHJldiAxMjIgMCBSCisgL05leHQgMTI0IDAgUgorIC9BIDIzIDAgUgorPj4gZW5kb2JqCisxMjQgMCBvYmoKKzw8CisgL1RpdGxlIChcMzc2XDM3N1wwXDEwNVwwXDE1NlwwXDE0M1wwXDE1N1wwXDE0NFwwXDE1MVwwXDE1NlwwXDE0N1wwXDQwXDBcMTAzXDBcMTU3XDBcMTU2XDBcMTY2XDBcMTQ1XDBcMTYyXDBcMTYzXDBcMTUxXDBcMTU3XDBcMTU2KQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDEyMyAwIFIKKyAvTmV4dCAxMjUgMCBSCisgL0EgMjUgMCBSCis+PiBlbmRvYmoKKzEyNSAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTAxXDBcNTZcMFwyNDBcMFwxMDNcMFwxNTdcMFwxNTVcMFwxNjBcMFwxNTFcMFwxNTRcMFwxNDFcMFwxNjRcMFwxNTFcMFwxNTdcMFwxNTYpCisgL1BhcmVudCAxMTEgMCBSCisgL1ByZXYgMTI0IDAgUgorIC9OZXh0IDEyNiAwIFIKKyAvQSAyNyAwIFIKKz4+IGVuZG9iagorMTI2IDAgb2JqCis8PAorIC9UaXRsZSAoXDM3NlwzNzdcMFwxMDJcMFw1NlwwXDI0MFwwXDEyM1wwXDE0MVwwXDE1NVwwXDE2MFwwXDE1NFwwXDE0NVwwXDQwXDBcMTA0XDBcMTU3XDBcMTQzXDBcMTY1XDBcMTU1XDBcMTQ1XDBcMTU2XDBcMTY0KQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDEyNSAwIFIKKyAvTmV4dCAxMjcgMCBSCisgL0EgMjkgMCBSCis+PiBlbmRvYmoKKzEyNyAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTAzXDBcNTZcMFwyNDBcMFwxMDNcMFwxNTdcMFwxNDRcMFwxNDVcMFw0MFwwXDE0NlwwXDE1N1wwXDE2MlwwXDQwXDBcMTEzXDBcMTQ1XDBcMTcxXDBcMTY3XDBcMTU3XDBcMTYyXDBcMTQ0XDBcNDBcMFwxMDVcMFwxNzBcMFwxNDFcMFwxNTVcMFwxNjBcMFwxNTRcMFwxNDUpCisgL1BhcmVudCAxMTEgMCBSCisgL1ByZXYgMTI2IDAgUgorIC9OZXh0IDEyOCAwIFIKKyAvQSAzMSAwIFIKKz4+IGVuZG9iagorMTI4IDAgb2JqCis8PAorIC9UaXRsZSAoXDM3NlwzNzdcMFwxMDRcMFw1NlwwXDI0MFwwXDEwM1wwXDE1N1wwXDE0NFwwXDE0NVwwXDQwXDBcMTQ2XDBcMTU3XDBcMTYyXDBcNDBcMFwxMzBcMFwxMjBcMFwxNDFcMFwxNjRcMFwxNTBcMFw0MFwwXDEwNVwwXDE3MFwwXDE0MVwwXDE1NVwwXDE2MFwwXDE1NFwwXDE0NSkKKyAvUGFyZW50IDExMSAwIFIKKyAvUHJldiAxMjcgMCBSCisgL05leHQgMTI5IDAgUgorIC9BIDMzIDAgUgorPj4gZW5kb2JqCisxMjkgMCBvYmoKKzw8CisgL1RpdGxlIChcMzc2XDM3N1wwXDEwNVwwXDU2XDBcMjQwXDBcMTAzXDBcMTU3XDBcMTQ0XDBcMTQ1XDBcNDBcMFwxNDZcMFwxNTdcMFwxNjJcMFw0MFwwXDEwMVwwXDE0NFwwXDE0NFwwXDQwXDBcMTEzXDBcMTQ1XDBcMTcxXDBcMTY3XDBcMTU3XDBcMTYyXDBcMTQ0XDBcNDBcMFwxMDVcMFwxNzBcMFwxNDFcMFwxNTVcMFwxNjBcMFwxNTRcMFwxNDUpCisgL1BhcmVudCAxMTEgMCBSCisgL1ByZXYgMTI4IDAgUgorIC9OZXh0IDEzMCAwIFIKKyAvQSAzNSAwIFIKKz4+IGVuZG9iagorMTMwIDAgb2JqCis8PAorIC9UaXRsZSAoXDM3NlwzNzdcMFwxMDZcMFw1NlwwXDI0MFwwXDEwM1wwXDE1N1wwXDE0NFwwXDE0NVwwXDQwXDBcMTQ2XDBcMTU3XDBcMTYyXDBcNDBcMFwxMDFcMFwxNDRcMFwxNDRcMFw0MFwwXDEwMVwwXDE2NFwwXDE2NFwwXDE2MlwwXDE1MVwwXDE0MlwwXDE2NVwwXDE2NFwwXDE0NVwwXDQwXDBcMTA1XDBcMTcwXDBcMTQxXDBcMTU1XDBcMTYwXDBcMTU0XDBcMTQ1KQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDEyOSAwIFIKKyAvTmV4dCAxMzEgMCBSCisgL0EgMzcgMCBSCis+PiBlbmRvYmoKKzEzMSAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTA3XDBcNTZcMFwyNDBcMFwxMDNcMFwxNTdcMFwxNDRcMFwxNDVcMFw0MFwwXDE0NlwwXDE1N1wwXDE2MlwwXDQwXDBcMTIyXDBcMTQ1XDBcMTY0XDBcMTYyXDBcMTUxXDBcMTQ1XDBcMTY2XDBcMTUxXDBcMTU2XDBcMTQ3XDBcNDBcMFwxMDFcMFwxNjRcMFwxNjRcMFwxNjJcMFwxNTFcMFwxNDJcMFwxNjVcMFwxNjRcMFwxNDVcMFw0MFwwXDEyNlwwXDE0MVwwXDE1NFwwXDE2NVwwXDE0NVwwXDQwXDBcMTA1XDBcMTcwXDBcMTQxXDBcMTU1XDBcMTYwXDBcMTU0XDBcMTQ1KQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDEzMCAwIFIKKyAvTmV4dCAxMzIgMCBSCisgL0EgMzkgMCBSCis+PiBlbmRvYmoKKzEzMiAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTEwXDBcNTZcMFwyNDBcMFwxMDNcMFwxNTdcMFwxNDRcMFwxNDVcMFw0MFwwXDE0NlwwXDE1N1wwXDE2MlwwXDQwXDBcMTA1XDBcMTU2XDBcMTQzXDBcMTU3XDBcMTQ0XDBcMTUxXDBcMTU2XDBcMTQ3XDBcNDBcMFwxMDNcMFwxNTdcMFwxNTZcMFwxNjZcMFwxNDVcMFwxNjJcMFwxNjNcMFwxNTFcMFwxNTdcMFwxNTZcMFw0MFwwXDEwNVwwXDE3MFwwXDE0MVwwXDE1NVwwXDE2MFwwXDE1NFwwXDE0NSkKKyAvUGFyZW50IDExMSAwIFIKKyAvUHJldiAxMzEgMCBSCisgL05leHQgMTMzIDAgUgorIC9BIDQxIDAgUgorPj4gZW5kb2JqCisxMzMgMCBvYmoKKzw8CisgL1RpdGxlIChcMzc2XDM3N1wwXDExMVwwXDU2XDBcMjQwXDBcMTAxXDBcMTQzXDBcMTUzXDBcMTU2XDBcMTU3XDBcMTY3XDBcMTU0XDBcMTQ1XDBcMTQ0XDBcMTQ3XDBcMTQ1XDBcMTU1XDBcMTQ1XDBcMTU2XDBcMTY0XDBcMTYzKQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDEzMiAwIFIKKyAvTmV4dCAxMzUgMCBSCisgL0EgNDMgMCBSCis+PiBlbmRvYmoKKzEzNSAwIG9iagorPDwKKyAvVGl0bGUgKFwzNzZcMzc3XDBcMTExXDBcMTU2XDBcMTQ0XDBcMTQ1XDBcMTcwKQorIC9QYXJlbnQgMTExIDAgUgorIC9QcmV2IDEzMyAwIFIKKyAvQSAxMzQgMCBSCis+PiBlbmRvYmoKKzEzNiAwIG9iagorPDwgL1R5cGUgL0ZvbnQKKy9TdWJ0eXBlIC9UeXBlMQorL05hbWUgL0YzCisvQmFzZUZvbnQgL0hlbHZldGljYS1Cb2xkCisvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyA+PgorZW5kb2JqCisxMzcgMCBvYmoKKzw8IC9UeXBlIC9Gb250CisvU3VidHlwZSAvVHlwZTEKKy9OYW1lIC9GMTQKKy9CYXNlRm9udCAvWmFwZkRpbmdiYXRzID4+CitlbmRvYmoKKzEzOCAwIG9iagorPDwgL1R5cGUgL0ZvbnQKKy9TdWJ0eXBlIC9UeXBlMQorL05hbWUgL0Y1CisvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCisvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyA+PgorZW5kb2JqCisxMzkgMCBvYmoKKzw8IC9UeXBlIC9Gb250CisvU3VidHlwZSAvVHlwZTEKKy9OYW1lIC9GNgorL0Jhc2VGb250IC9UaW1lcy1JdGFsaWMKKy9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nID4+CitlbmRvYmoKKzE0MCAwIG9iagorPDwgL1R5cGUgL0ZvbnQKKy9TdWJ0eXBlIC9UeXBlMQorL05hbWUgL0YxCisvQmFzZUZvbnQgL0hlbHZldGljYQorL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcgPj4KK2VuZG9iagorMTQxIDAgb2JqCis8PCAvVHlwZSAvRm9udAorL1N1YnR5cGUgL1R5cGUxCisvTmFtZSAvRjkKKy9CYXNlRm9udCAvQ291cmllcgorL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcgPj4KK2VuZG9iagorMTQyIDAgb2JqCis8PCAvVHlwZSAvRm9udAorL1N1YnR5cGUgL1R5cGUxCisvTmFtZSAvRjcKKy9CYXNlRm9udCAvVGltZXMtQm9sZAorL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcgPj4KK2VuZG9iagorMSAwIG9iagorPDwgL1R5cGUgL1BhZ2VzCisvQ291bnQgMTcKKy9LaWRzIFs2IDAgUiA0NSAwIFIgNTkgMCBSIDY0IDAgUiA2OSAwIFIgNzUgMCBSIDgyIDAgUiA4OSAwIFIgOTMgMCBSIDk1IDAgUiA5NyAwIFIgOTkgMCBSIDEwMSAwIFIgMTAzIDAgUiAxMDUgMCBSIDEwNyAwIFIgMTA5IDAgUiBdID4+CitlbmRvYmoKKzIgMCBvYmoKKzw8IC9UeXBlIC9DYXRhbG9nCisvUGFnZXMgMSAwIFIKKyAvT3V0bGluZXMgMTExIDAgUgorIC9QYWdlTW9kZSAvVXNlT3V0bGluZXMKKyA+PgorZW5kb2JqCiszIDAgb2JqCis8PCAKKy9Gb250IDw8IC9GMyAxMzYgMCBSIC9GNSAxMzggMCBSIC9GMTQgMTM3IDAgUiAvRjEgMTQwIDAgUiAvRjYgMTM5IDAgUiAvRjkgMTQxIDAgUiAvRjcgMTQyIDAgUiA+PiAKKy9Qcm9jU2V0IFsgL1BERiAvSW1hZ2VDIC9UZXh0IF0gPj4gCitlbmRvYmoKKzkgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzQ1IDAgUiAvWFlaIDEzOS4wIDY5My4wIG51bGxdCis+PgorZW5kb2JqCisxMSAwIG9iagorPDwKKy9TIC9Hb1RvCisvRCBbNDUgMCBSIC9YWVogMTM5LjAgMzYzLjY3NCBudWxsXQorPj4KK2VuZG9iagorMTMgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzU5IDAgUiAvWFlaIDEzOS4wIDcyNS4wIG51bGxdCis+PgorZW5kb2JqCisxNSAwIG9iagorPDwKKy9TIC9Hb1RvCisvRCBbNTkgMCBSIC9YWVogMTM5LjAgMTczLjE4IG51bGxdCis+PgorZW5kb2JqCisxNyAwIG9iagorPDwKKy9TIC9Hb1RvCisvRCBbNjQgMCBSIC9YWVogMTM5LjAgMTU2LjY0NiBudWxsXQorPj4KK2VuZG9iagorMTkgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzc1IDAgUiAvWFlaIDEzOS4wIDY2Ny44NjYgbnVsbF0KKz4+CitlbmRvYmoKKzIxIDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFs3NSAwIFIgL1hZWiAxMzkuMCAyODEuMDggbnVsbF0KKz4+CitlbmRvYmoKKzIzIDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFs4MiAwIFIgL1hZWiAxMzkuMCA1MDguOTggbnVsbF0KKz4+CitlbmRvYmoKKzI1IDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFs4OSAwIFIgL1hZWiAxMzkuMCA3MjUuMCBudWxsXQorPj4KK2VuZG9iagorMjcgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzkzIDAgUiAvWFlaIDEzOS4wIDY0OC4wIG51bGxdCis+PgorZW5kb2JqCisyOSAwIG9iagorPDwKKy9TIC9Hb1RvCisvRCBbOTMgMCBSIC9YWVogMTM5LjAgNTY0LjU2MSBudWxsXQorPj4KK2VuZG9iagorMzEgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzkzIDAgUiAvWFlaIDEzOS4wIDM4Ni45NDIgbnVsbF0KKz4+CitlbmRvYmoKKzMzIDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFs5NSAwIFIgL1hZWiAxMzkuMCAxODIuNDIgbnVsbF0KKz4+CitlbmRvYmoKKzM1IDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFs5OSAwIFIgL1hZWiAxMzkuMCA2NjUuNTYgbnVsbF0KKz4+CitlbmRvYmoKKzM3IDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFsxMDEgMCBSIC9YWVogMTM5LjAgNDk3Ljk0IG51bGxdCis+PgorZW5kb2JqCiszOSAwIG9iagorPDwKKy9TIC9Hb1RvCisvRCBbMTAzIDAgUiAvWFlaIDEzOS4wIDQzOC43OCBudWxsXQorPj4KK2VuZG9iagorNDEgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzEwNSAwIFIgL1hZWiAxMzkuMCAyODEuMDIgbnVsbF0KKz4+CitlbmRvYmoKKzQzIDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFsxMDcgMCBSIC9YWVogMTM5LjAgMTEzLjQgbnVsbF0KKz4+CitlbmRvYmoKKzExMSAwIG9iagorPDwKKyAvRmlyc3QgMTEzIDAgUgorIC9MYXN0IDEzNSAwIFIKKz4+IGVuZG9iagorMTEyIDAgb2JqCis8PAorL1MgL0dvVG8KKy9EIFs2IDAgUiAvWFlaIDEzOS4wIDcyNS4wIG51bGxdCis+PgorZW5kb2JqCisxMTQgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzYgMCBSIC9YWVogMTM5LjAgMzk2LjExIG51bGxdCis+PgorZW5kb2JqCisxMzQgMCBvYmoKKzw8CisvUyAvR29UbworL0QgWzEwOSAwIFIgL1hZWiAxMzkuMCA2ODIuMCBudWxsXQorPj4KK2VuZG9iagoreHJlZgorMCAxNDMKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwNDY5MDMgMDAwMDAgbiAKKzAwMDAwNDcwNzkgMDAwMDAgbiAKKzAwMDAwNDcxNzIgMDAwMDAgbiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNzEgMDAwMDAgbiAKKzAwMDAwMDE5MTEgMDAwMDAgbiAKKzAwMDAwMDIwMzEgMDAwMDAgbiAKKzAwMDAwMDIxNzUgMDAwMDAgbiAKKzAwMDAwNDczMjUgMDAwMDAgbiAKKzAwMDAwMDIzMDkgMDAwMDAgbiAKKzAwMDAwNDczODkgMDAwMDAgbiAKKzAwMDAwMDI0NDUgMDAwMDAgbiAKKzAwMDAwNDc0NTYgMDAwMDAgbiAKKzAwMDAwMDI1ODEgMDAwMDAgbiAKKzAwMDAwNDc1MjEgMDAwMDAgbiAKKzAwMDAwMDI3MTcgMDAwMDAgbiAKKzAwMDAwNDc1ODcgMDAwMDAgbiAKKzAwMDAwMDI4NTMgMDAwMDAgbiAKKzAwMDAwNDc2NTQgMDAwMDAgbiAKKzAwMDAwMDI5ODkgMDAwMDAgbiAKKzAwMDAwNDc3MjEgMDAwMDAgbiAKKzAwMDAwMDMxMjUgMDAwMDAgbiAKKzAwMDAwNDc3ODcgMDAwMDAgbiAKKzAwMDAwMDMyNjEgMDAwMDAgbiAKKzAwMDAwNDc4NTMgMDAwMDAgbiAKKzAwMDAwMDMzOTcgMDAwMDAgbiAKKzAwMDAwNDc5MTggMDAwMDAgbiAKKzAwMDAwMDM1MzMgMDAwMDAgbiAKKzAwMDAwNDc5ODMgMDAwMDAgbiAKKzAwMDAwMDM2NjkgMDAwMDAgbiAKKzAwMDAwNDgwNTAgMDAwMDAgbiAKKzAwMDAwMDM4MDQgMDAwMDAgbiAKKzAwMDAwNDgxMTcgMDAwMDAgbiAKKzAwMDAwMDM5NDAgMDAwMDAgbiAKKzAwMDAwNDgxODMgMDAwMDAgbiAKKzAwMDAwMDQwNzYgMDAwMDAgbiAKKzAwMDAwNDgyNDkgMDAwMDAgbiAKKzAwMDAwMDQyMTIgMDAwMDAgbiAKKzAwMDAwNDgzMTYgMDAwMDAgbiAKKzAwMDAwMDQzNDggMDAwMDAgbiAKKzAwMDAwNDgzODMgMDAwMDAgbiAKKzAwMDAwMDQ0ODQgMDAwMDAgbiAKKzAwMDAwNDg0NTAgMDAwMDAgbiAKKzAwMDAwMDQ2MjAgMDAwMDAgbiAKKzAwMDAwMDY2ODMgMDAwMDAgbiAKKzAwMDAwMDY4MDYgMDAwMDAgbiAKKzAwMDAwMDY5MDMgMDAwMDAgbiAKKzAwMDAwMDcwNzggMDAwMDAgbiAKKzAwMDAwMDcyNzEgMDAwMDAgbiAKKzAwMDAwMDc0NjkgMDAwMDAgbiAKKzAwMDAwMDc2NTkgMDAwMDAgbiAKKzAwMDAwMDc4NDYgMDAwMDAgbiAKKzAwMDAwMDgwNDQgMDAwMDAgbiAKKzAwMDAwMDgyNDYgMDAwMDAgbiAKKzAwMDAwMDg0NDggMDAwMDAgbiAKKzAwMDAwMDg2NDggMDAwMDAgbiAKKzAwMDAwMDg4NDcgMDAwMDAgbiAKKzAwMDAwMDkwNTIgMDAwMDAgbiAKKzAwMDAwMTE0MDAgMDAwMDAgbiAKKzAwMDAwMTE1MjMgMDAwMDAgbiAKKzAwMDAwMTE1NTcgMDAwMDAgbiAKKzAwMDAwMTE2OTMgMDAwMDAgbiAKKzAwMDAwMTE4ODQgMDAwMDAgbiAKKzAwMDAwMTQyMjMgMDAwMDAgbiAKKzAwMDAwMTQzNDYgMDAwMDAgbiAKKzAwMDAwMTQzODAgMDAwMDAgbiAKKzAwMDAwMTQ1ODAgMDAwMDAgbiAKKzAwMDAwMTQ3OTEgMDAwMDAgbiAKKzAwMDAwMTczMzIgMDAwMDAgbiAKKzAwMDAwMTc0NTUgMDAwMDAgbiAKKzAwMDAwMTc0OTYgMDAwMDAgbiAKKzAwMDAwMTc2ODUgMDAwMDAgbiAKKzAwMDAwMTc4NjMgMDAwMDAgbiAKKzAwMDAwMTgwMDAgMDAwMDAgbiAKKzAwMDAwMjA1NDQgMDAwMDAgbiAKKzAwMDAwMjA2NjcgMDAwMDAgbiAKKzAwMDAwMjA3MTUgMDAwMDAgbiAKKzAwMDAwMjA4NTAgMDAwMDAgbiAKKzAwMDAwMjEwNTggMDAwMDAgbiAKKzAwMDAwMjExOTcgMDAwMDAgbiAKKzAwMDAwMjEzMzMgMDAwMDAgbiAKKzAwMDAwMjM1ODIgMDAwMDAgbiAKKzAwMDAwMjM3MDUgMDAwMDAgbiAKKzAwMDAwMjM3NTMgMDAwMDAgbiAKKzAwMDAwMjM5NTkgMDAwMDAgbiAKKzAwMDAwMjQwOTggMDAwMDAgbiAKKzAwMDAwMjQyMzQgMDAwMDAgbiAKKzAwMDAwMjQ0MzkgMDAwMDAgbiAKKzAwMDAwMjc1OTQgMDAwMDAgbiAKKzAwMDAwMjc3MTcgMDAwMDAgbiAKKzAwMDAwMjc3NDQgMDAwMDAgbiAKKzAwMDAwMjc4NzggMDAwMDAgbiAKKzAwMDAwMzAwMTkgMDAwMDAgbiAKKzAwMDAwMzAxMjcgMDAwMDAgbiAKKzAwMDAwMzEzNjggMDAwMDAgbiAKKzAwMDAwMzE0NzYgMDAwMDAgbiAKKzAwMDAwMzI5MTIgMDAwMDAgbiAKKzAwMDAwMzMwMjAgMDAwMDAgbiAKKzAwMDAwMzQzNTMgMDAwMDAgbiAKKzAwMDAwMzQ0NjEgMDAwMDAgbiAKKzAwMDAwMzU3NDMgMDAwMDAgbiAKKzAwMDAwMzU4NTMgMDAwMDAgbiAKKzAwMDAwMzcxOTcgMDAwMDAgbiAKKzAwMDAwMzczMDcgMDAwMDAgbiAKKzAwMDAwMzg2MDQgMDAwMDAgbiAKKzAwMDAwMzg3MTQgMDAwMDAgbiAKKzAwMDAwNDAxMzQgMDAwMDAgbiAKKzAwMDAwNDAyNDQgMDAwMDAgbiAKKzAwMDAwNDExNTQgMDAwMDAgbiAKKzAwMDAwNDEyODAgMDAwMDAgbiAKKzAwMDAwNDg1MTYgMDAwMDAgbiAKKzAwMDAwNDg1NzAgMDAwMDAgbiAKKzAwMDAwNDEzMDEgMDAwMDAgbiAKKzAwMDAwNDg2MzUgMDAwMDAgbiAKKzAwMDAwNDE0NzYgMDAwMDAgbiAKKzAwMDAwNDE2NzcgMDAwMDAgbiAKKzAwMDAwNDE4NDggMDAwMDAgbiAKKzAwMDAwNDIwMDcgMDAwMDAgbiAKKzAwMDAwNDIyMDEgMDAwMDAgbiAKKzAwMDAwNDI0NTUgMDAwMDAgbiAKKzAwMDAwNDI3ODQgMDAwMDAgbiAKKzAwMDAwNDMwMjAgMDAwMDAgbiAKKzAwMDAwNDMyMjEgMDAwMDAgbiAKKzAwMDAwNDM0NDYgMDAwMDAgbiAKKzAwMDAwNDM2NTkgMDAwMDAgbiAKKzAwMDAwNDM4NDIgMDAwMDAgbiAKKzAwMDAwNDQwNDggMDAwMDAgbiAKKzAwMDAwNDQzMDYgMDAwMDAgbiAKKzAwMDAwNDQ1NTIgMDAwMDAgbiAKKzAwMDAwNDQ4MzMgMDAwMDAgbiAKKzAwMDAwNDUxMjYgMDAwMDAgbiAKKzAwMDAwNDU0OTYgMDAwMDAgbiAKKzAwMDAwNDU4MjUgMDAwMDAgbiAKKzAwMDAwNDg3MDEgMDAwMDAgbiAKKzAwMDAwNDYwMzggMDAwMDAgbiAKKzAwMDAwNDYxNTQgMDAwMDAgbiAKKzAwMDAwNDYyNjggMDAwMDAgbiAKKzAwMDAwNDYzNTQgMDAwMDAgbiAKKzAwMDAwNDY0NjUgMDAwMDAgbiAKKzAwMDAwNDY1NzcgMDAwMDAgbiAKKzAwMDAwNDY2ODYgMDAwMDAgbiAKKzAwMDAwNDY3OTMgMDAwMDAgbiAKK3RyYWlsZXIKKzw8CisvU2l6ZSAxNDMKKy9Sb290IDIgMCBSCisvSW5mbyA0IDAgUgorPj4KK3N0YXJ0eHJlZgorNDg3NjgKKyUlRU9GCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy91cGdyYWRlLmh0bWwgYi9saWJ4bWwyLTIuNy43L2RvYy91cGdyYWRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzljYTZhMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3VwZ3JhZGUuaHRtbApAQCAtMCwwICsxLDEwNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+PGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK1REIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitCT0RZIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDJlbTsgbWFyZ2luLWxlZnQ6IDBlbTsgbWFyZ2luLXJpZ2h0OiAwZW19CitIMSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDIge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gzIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitBOmxpbmssIEE6dmlzaXRlZCwgQTphY3RpdmUgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB9Cis8L3N0eWxlPjx0aXRsZT5VcGdyYWRpbmcgMS54IGNvZGU8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPlVwZ3JhZGluZyAxLnggY29kZTwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPkluY29tcGF0aWJsZSBjaGFuZ2VzOjwvcD48cD5WZXJzaW9uIDIgb2YgbGlieG1sMiBpcyB0aGUgZmlyc3QgdmVyc2lvbiBpbnRyb2R1Y2luZyBzZXJpb3VzIGJhY2t3YXJkCitpbmNvbXBhdGlibGUgY2hhbmdlcy4gVGhlIG1haW4gZ29hbHMgd2VyZTo8L3A+PHVsPjxsaT5hIGdlbmVyYWwgY2xlYW51cC4gQSBudW1iZXIgb2YgbWlzdGFrZXMgaW5oZXJpdGVkIGZyb20gdGhlIHZlcnkgZWFybHkKKyAgICB2ZXJzaW9ucyBjb3VsZG4ndCBiZSBjaGFuZ2VkIGR1ZSB0byBjb21wYXRpYmlsaXR5IGNvbnN0cmFpbnRzLiBFeGFtcGxlCisgICAgdGhlICJjaGlsZHMiIGVsZW1lbnQgaW4gdGhlIG5vZGVzLjwvbGk+CisgIDxsaT5Vbmlmb3JtaXphdGlvbiBvZiB0aGUgdmFyaW91cyBub2RlcywgYXQgbGVhc3QgZm9yIHRoZWlyIGhlYWRlciBhbmQgbGluaworICAgIHBhcnRzIChkb2MsIHBhcmVudCwgY2hpbGRyZW4sIHByZXYsIG5leHQpLCB0aGUgZ29hbCBpcyBhIHNpbXBsZXIKKyAgICBwcm9ncmFtbWluZyBtb2RlbCBhbmQgc2ltcGxpZnlpbmcgdGhlIHRhc2sgb2YgdGhlIERPTSBpbXBsZW1lbnRvcnMuPC9saT4KKyAgPGxpPmJldHRlciBjb25mb3JtYW5jZXMgdG8gdGhlIFhNTCBzcGVjaWZpY2F0aW9uLCBmb3IgZXhhbXBsZSB2ZXJzaW9uIDEueAorICAgIGhhZCBhbiBoZXVyaXN0aWMgdG8gdHJ5IHRvIGRldGVjdCBpZ25vcmFibGUgd2hpdGUgc3BhY2VzLiBBcyBhIHJlc3VsdCB0aGUKKyAgICBTQVggZXZlbnQgZ2VuZXJhdGVkIHdlcmUgaWdub3JhYmxlV2hpdGVzcGFjZSgpIHdoaWxlIHRoZSBzcGVjIHJlcXVpcmVzCisgICAgY2hhcmFjdGVyKCkgaW4gdGhhdCBjYXNlLiBUaGlzIGFsc28gbWVhbiB0aGF0IGEgbnVtYmVyIG9mIERPTSBub2RlCisgICAgY29udGFpbmluZyBibGFuayB0ZXh0IG1heSBwb3B1bGF0ZSB0aGUgRE9NIHRyZWUgd2hpY2ggd2VyZSBub3QgcHJlc2VudAorICAgIGJlZm9yZS48L2xpPgorPC91bD48aDM+SG93IHRvIGZpeCBsaWJ4bWwtMS54IGNvZGU6PC9oMz48cD5TbyBjbGllbnQgY29kZSBvZiBsaWJ4bWwgZGVzaWduZWQgdG8gcnVuIHdpdGggdmVyc2lvbiAxLnggbWF5IGhhdmUgdG8gYmUKK2NoYW5nZWQgdG8gY29tcGlsZSBhZ2FpbnN0IHZlcnNpb24gMi54IG9mIGxpYnhtbC4gSGVyZSBpcyBhIGxpc3Qgb2YgY2hhbmdlcwordGhhdCBJIGhhdmUgY29sbGVjdGVkLCB0aGV5IG1heSBub3QgYmUgc3VmZmljaWVudCwgc28gaW4gY2FzZSB5b3UgZmluZCBvdGhlcgorY2hhbmdlIHdoaWNoIGFyZSByZXF1aXJlZCwgPGEgaHJlZj0ibWFpbHRvOkRhbmllbC5WZWlsbGFyZEB3My5vcmciPmRyb3AgbWUgYQorbWFpbDwvYT46PC9wPjxvbD48bGk+VGhlIHBhY2thZ2UgbmFtZSBoYXZlIGNoYW5nZWQgZnJvbSBsaWJ4bWwgdG8gbGlieG1sMiwgdGhlIGxpYnJhcnkgbmFtZQorICAgIGlzIG5vdyAtbHhtbDIgLiBUaGVyZSBpcyBhIG5ldyB4bWwyLWNvbmZpZyBzY3JpcHQgd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8KKyAgICBzZWxlY3QgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgbGlieG1sMjwvbGk+CisgIDxsaT5Ob2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+IGZpZWxkIGhhcyBiZWVuIHJlbmFtZWQKKyAgICA8c3Ryb25nPmNoaWxkcmVuPC9zdHJvbmc+IHNvIHMvY2hpbGRzL2NoaWxkcmVuL2cgc2hvdWxkIGJlICBhcHBsaWVkCisgICAgKHByb2JhYmlsaXR5IG9mIGhhdmluZyAiY2hpbGRzIiBhbnl3aGVyZSBlbHNlIGlzIGNsb3NlIHRvIDArPC9saT4KKyAgPGxpPlRoZSBkb2N1bWVudCBkb24ndCBoYXZlIGFueW1vcmUgYSA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZWxlbWVudCBpdCBoYXMKKyAgICBiZWVuIHJlcGxhY2VkIGJ5IDxzdHJvbmc+Y2hpbGRyZW48L3N0cm9uZz4gYW5kIHVzdWFsbHkgeW91IHdpbGwgZ2V0IGEKKyAgICBsaXN0IG9mIGVsZW1lbnQgaGVyZS4gRm9yIGV4YW1wbGUgYSBEdGQgZWxlbWVudCBmb3IgdGhlIGludGVybmFsIHN1YnNldAorICAgIGFuZCBpdCdzIGRlY2xhcmF0aW9uIG1heSBiZSBmb3VuZCBpbiB0aGF0IGxpc3QsIGFzIHdlbGwgYXMgcHJvY2Vzc2luZworICAgIGluc3RydWN0aW9ucyBvciBjb21tZW50cyBmb3VuZCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGRvY3VtZW50IHJvb3QgZWxlbWVudC4KKyAgICBVc2UgPHN0cm9uZz54bWxEb2NHZXRSb290RWxlbWVudChkb2MpPC9zdHJvbmc+IHRvIGdldCB0aGUgcm9vdCBlbGVtZW50IG9mCisgICAgYSBkb2N1bWVudC4gQWx0ZXJuYXRpdmVseSBpZiB5b3UgYXJlIHN1cmUgdG8gbm90IHJlZmVyZW5jZSBEVERzIG5vciBoYXZlCisgICAgUElzIG9yIGNvbW1lbnRzIGJlZm9yZSBvciBhZnRlciB0aGUgcm9vdCBlbGVtZW50CisgICAgcy8tJmd0O3Jvb3QvLSZndDtjaGlsZHJlbi9nIHdpbGwgcHJvYmFibHkgZG8gaXQuPC9saT4KKyAgPGxpPlRoZSB3aGl0ZSBzcGFjZSBpc3N1ZSwgdGhpcyBvbmUgaXMgbW9yZSBjb21wbGV4LCB1bmxlc3Mgc3BlY2lhbCBjYXNlIG9mCisgICAgdmFsaWRhdGluZyBwYXJzaW5nLCB0aGUgbGluZSBicmVha3MgYW5kIHNwYWNlcyB1c3VhbGx5IHVzZWQgZm9yIGluZGVudGluZworICAgIGFuZCBmb3JtYXR0aW5nIHRoZSBkb2N1bWVudCBjb250ZW50IGJlY29tZXMgc2lnbmlmaWNhbnQuIFNvIHRoZXkgYXJlCisgICAgcmVwb3J0ZWQgYnkgU0FYIGFuZCBpZiB5b3VyIHVzaW5nIHRoZSBET00gdHJlZSwgY29ycmVzcG9uZGluZyBub2RlcyBhcmUKKyAgICBnZW5lcmF0ZWQuIFRvbyBhcHByb2FjaCBjYW4gYmUgdGFrZW46CisgICAgPG9sPjxsaT5sYXp5IG9uZSwgdXNlIHRoZSBjb21wYXRpYmlsaXR5IGNhbGwKKyAgICAgICAgPHN0cm9uZz54bWxLZWVwQmxhbmtzRGVmYXVsdCgwKTwvc3Ryb25nPiBidXQgYmUgYXdhcmUgdGhhdCB5b3UgYXJlCisgICAgICAgIHJlbHlpbmcgb24gYSBzcGVjaWFsIChhbmQgcG9zc2libHkgYnJva2VuKSBzZXQgb2YgaGV1cmlzdGljcyBvZgorICAgICAgICBsaWJ4bWwgdG8gZGV0ZWN0IGlnbm9yYWJsZSBibGFua3MuIERvbid0IGNvbXBsYWluIGlmIGl0IGJyZWFrcyBvcgorICAgICAgICBtYWtlIHlvdXIgYXBwbGljYXRpb24gbm90IDEwMCUgY2xlYW4gdy5yLnQuIHRvIGl0J3MgaW5wdXQuPC9saT4KKyAgICAgIDxsaT50aGUgUmlnaHQgV2F5OiBjaGFuZ2UgeW91IGNvZGUgdG8gYWNjZXB0IHBvc3NpYmx5IGluc2lnbmlmaWNhbnQKKyAgICAgICAgYmxhbmtzIGNoYXJhY3RlcnMsIG9yIGhhdmUgeW91ciB0cmVlIHBvcHVsYXRlZCB3aXRoIHdlaXJkIGJsYW5rIHRleHQKKyAgICAgICAgbm9kZXMuIFlvdSBjYW4gc3BvdCB0aGVtIHVzaW5nIHRoZSBjb21tb2RpdHkgZnVuY3Rpb24KKyAgICAgICAgPHN0cm9uZz54bWxJc0JsYW5rTm9kZShub2RlKTwvc3Ryb25nPiByZXR1cm5pbmcgMSBmb3Igc3VjaCBibGFuaworICAgICAgICBub2Rlcy48L2xpPgorICAgIDwvb2w+PHA+Tm90ZSBhbHNvIHRoYXQgd2l0aCB0aGUgbmV3IGRlZmF1bHQgdGhlIG91dHB1dCBmdW5jdGlvbnMgZG9uJ3QgYWRkIGFueQorICAgIGV4dHJhIGluZGVudGF0aW9uIHdoZW4gc2F2aW5nIGEgdHJlZSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHJvdW5kIHRyaXAKKyAgICAocmVhZCBhbmQgc2F2ZSkgd2l0aG91dCBpbmZsYXRpbmcgdGhlIGRvY3VtZW50IHdpdGggZXh0cmEgZm9ybWF0dGluZworICAgIGNoYXJzLjwvcD4KKyAgPC9saT4KKyAgPGxpPlRoZSBpbmNsdWRlIHBhdGggaGFzIGNoYW5nZWQgdG8gJHByZWZpeC9saWJ4bWwvIGFuZCB0aGUgaW5jbHVkZXMKKyAgICB0aGVtc2VsdmVzIHVzZXMgdGhpcyBuZXcgcHJlZml4IGluIGluY2x1ZGVzIGluc3RydWN0aW9ucy4uLiBJZiB5b3UgYXJlCisgICAgdXNpbmcgKGFzIGV4cGVjdGVkKSB0aGUKKyAgICA8cHJlPnhtbDItY29uZmlnIC0tY2ZsYWdzPC9wcmU+CisgICAgPHA+b3V0cHV0IHRvIGdlbmVyYXRlIHlvdSBjb21waWxlIGNvbW1hbmRzIHRoaXMgd2lsbCBwcm9iYWJseSB3b3JrIG91dCBvZgorICAgIHRoZSBib3g8L3A+CisgIDwvbGk+CisgIDxsaT54bWxEZXRlY3RDaGFyRW5jb2RpbmcgdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQgaW5kaWNhdGluZyB0aGUgbGVuZ3RoIGluCisgICAgYnl0ZSBvZiB0aGUgaGVhZCBvZiB0aGUgZG9jdW1lbnQgYXZhaWxhYmxlIGZvciBjaGFyYWN0ZXIgZGV0ZWN0aW9uLjwvbGk+Cis8L29sPjxoMz5FbnN1cmluZyBib3RoIGxpYnhtbC0xLnggYW5kIGxpYnhtbC0yLnggY29tcGF0aWJpbGl0eTwvaDM+PHA+VHdvIG5ldyB2ZXJzaW9uIG9mIGxpYnhtbCAoMS44LjExKSBhbmQgbGlieG1sMiAoMi4zLjQpIGhhdmUgYmVlbiByZWxlYXNlZAordG8gYWxsb3cgc21vb3RoIHVwZ3JhZGUgb2YgZXhpc3RpbmcgbGlieG1sIHYxY29kZSB3aGlsZSByZXRhaW5pbmcKK2NvbXBhdGliaWxpdHkuIFRoZXkgb2ZmZXJzIHRoZSBmb2xsb3dpbmc6PC9wPjxvbD48bGk+c2ltaWxhciBpbmNsdWRlIG5hbWluZywgb25lIHNob3VsZCB1c2UKKyAgICA8c3Ryb25nPiNpbmNsdWRlJmx0O2xpYnhtbC8uLi4mZ3Q7PC9zdHJvbmc+IGluIGJvdGggY2FzZXMuPC9saT4KKyAgPGxpPnNpbWlsYXIgaWRlbnRpZmllcnMgZGVmaW5lZCB2aWEgbWFjcm9zIGZvciB0aGUgY2hpbGQgYW5kIHJvb3QgZmllbGRzOgorICAgIHJlc3BlY3RpdmVseSA8c3Ryb25nPnhtbENoaWxkcmVuTm9kZTwvc3Ryb25nPiBhbmQKKyAgICA8c3Ryb25nPnhtbFJvb3ROb2RlPC9zdHJvbmc+PC9saT4KKyAgPGxpPmEgbmV3IG1hY3JvIDxzdHJvbmc+TElCWE1MX1RFU1RfVkVSU0lPTjwvc3Ryb25nPiB3aGljaCBzaG91bGQgYmUKKyAgICBpbnNlcnRlZCBvbmNlIGluIHRoZSBjbGllbnQgY29kZTwvbGk+Cis8L29sPjxwPlNvIHRoZSByb2FkbWFwIHRvIHVwZ3JhZGUgeW91ciBleGlzdGluZyBsaWJ4bWwgYXBwbGljYXRpb25zIGlzIHRoZQorZm9sbG93aW5nOjwvcD48b2w+PGxpPmluc3RhbGwgdGhlICBsaWJ4bWwtMS44LjggKGFuZCBsaWJ4bWwtZGV2ZWwtMS44LjgpIHBhY2thZ2VzPC9saT4KKyAgPGxpPmZpbmQgYWxsIG9jY3VycmVuY2VzIHdoZXJlIHRoZSB4bWxEb2MgPHN0cm9uZz5yb290PC9zdHJvbmc+IGZpZWxkIGlzCisgICAgdXNlZCBhbmQgY2hhbmdlIGl0IHRvIDxzdHJvbmc+eG1sUm9vdE5vZGU8L3N0cm9uZz48L2xpPgorICA8bGk+c2ltaWxhcmx5IGZpbmQgYWxsIG9jY3VycmVuY2VzIHdoZXJlIHRoZSB4bWxOb2RlCisgICAgPHN0cm9uZz5jaGlsZHM8L3N0cm9uZz4gZmllbGQgaXMgdXNlZCBhbmQgY2hhbmdlIGl0IHRvCisgICAgPHN0cm9uZz54bWxDaGlsZHJlbk5vZGU8L3N0cm9uZz48L2xpPgorICA8bGk+YWRkIGEgPHN0cm9uZz5MSUJYTUxfVEVTVF9WRVJTSU9OPC9zdHJvbmc+IG1hY3JvIHNvbWV3aGVyZSBpbiB5b3VyCisgICAgPHN0cm9uZz5tYWluKCk8L3N0cm9uZz4gb3IgaW4gdGhlIGxpYnJhcnkgaW5pdCBlbnRyeSBwb2ludDwvbGk+CisgIDxsaT5SZWNvbXBpbGUsIGNoZWNrIGNvbXBhdGliaWxpdHksIGl0IHNob3VsZCBzdGlsbCB3b3JrPC9saT4KKyAgPGxpPkNoYW5nZSB5b3VyIGNvbmZpZ3VyZSBzY3JpcHQgdG8gbG9vayBmaXJzdCBmb3IgeG1sMi1jb25maWcgYW5kIGZhbGwKKyAgICBiYWNrIHVzaW5nIHhtbC1jb25maWcgLiBVc2UgdGhlIC0tY2ZsYWdzIGFuZCAtLWxpYnMgb3V0cHV0IG9mIHRoZSBjb21tYW5kCisgICAgYXMgdGhlIEluY2x1ZGUgYW5kIExpbmtpbmcgcGFyYW1ldGVycyBuZWVkZWQgdG8gdXNlIGxpYnhtbC48L2xpPgorICA8bGk+aW5zdGFsbCBsaWJ4bWwyLTIuMy54IGFuZCAgbGlieG1sMi1kZXZlbC0yLjMueCAobGlieG1sLTEuOC55IGFuZAorICAgIGxpYnhtbC1kZXZlbC0xLjgueSBjYW4gYmUga2VwdCBzaW11bHRhbmVvdXNseSk8L2xpPgorICA8bGk+cmVtb3ZlIHlvdXIgY29uZmlnLmNhY2hlLCByZWxhdW5jaCB5b3VyIGNvbmZpZ3VyYXRpb24gbWVjaGFuaXNtLCBhbmQKKyAgICByZWNvbXBpbGUsIGlmIHN0ZXBzIDIgYW5kIDMgd2VyZSBkb25lIHJpZ2h0IGl0IHNob3VsZCBjb21waWxlIGFzLWlzPC9saT4KKyAgPGxpPlRlc3QgdGhhdCB5b3VyIGFwcGxpY2F0aW9uIGlzIHN0aWxsIHJ1bm5pbmcgY29ycmVjdGx5LCBpZiBub3QgdGhpcyBtYXkKKyAgICBiZSBkdWUgdG8gZXh0cmEgZW1wdHkgbm9kZXMgZHVlIHRvIGZvcm1hdGluZyBzcGFjZXMgYmVpbmcga2VwdCBpbiBsaWJ4bWwyCisgICAgY29udHJhcnkgdG8gbGlieG1sMSwgaW4gdGhhdCBjYXNlIGluc2VydCB4bWxLZWVwQmxhbmtzRGVmYXVsdCgxKSBpbiB5b3VyCisgICAgY29kZSBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIChuZXh0IHRvCisgICAgPHN0cm9uZz5MSUJYTUxfVEVTVF9WRVJTSU9OPC9zdHJvbmc+IGlzIGEgZmluZSBwbGFjZSkuPC9saT4KKzwvb2w+PHA+Rm9sbG93aW5nIHRob3NlIHN0ZXBzIHNob3VsZCB3b3JrLiBJdCB3b3JrZWQgZm9yIHNvbWUgb2YgbXkgb3duIGNvZGUuPC9wPjxwPkxldCBtZSBwdXQgc29tZSBlbXBoYXNpcyBvbiB0aGUgZmFjdCB0aGF0IHRoZXJlIGlzIGZhciBtb3JlIGNoYW5nZXMgZnJvbQorbGlieG1sIDEueCB0byAyLnggdGhhbiB0aGUgb25lcyB5b3UgbWF5IGhhdmUgdG8gcGF0Y2ggZm9yLiBUaGUgb3ZlcmFsbCBjb2RlCitoYXMgYmVlbiBjb25zaWRlcmFibHkgY2xlYW5lZCB1cCBhbmQgdGhlIGNvbmZvcm1hbmNlIHRvIHRoZSBYTUwgc3BlY2lmaWNhdGlvbgoraGFzIGJlZW4gZHJhc3RpY2FsbHkgaW1wcm92ZWQgdG9vLiBEb24ndCB0YWtlIHRob3NlIGNoYW5nZXMgYXMgYW4gZXhjdXNlIHRvCitub3QgdXBncmFkZSwgaXQgbWF5IGNvc3QgYSBsb3Qgb24gdGhlIGxvbmcgdGVybSAuLi48L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy93M2MucG5nIGIvbGlieG1sMi0yLjcuNy9kb2MvdzNjLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTQxYzIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MvdzNjLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy93aWtpLnhzbCBiL2xpYnhtbDItMi43LjcvZG9jL3dpa2kueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNzA3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy93aWtpLnhzbApAQCAtMCwwICsxLDU4OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tCisgIFN0eWxlc2hlZXQgdG8gZ2VuZXJhdGUgdGhlIEhUTUwgZG9jdW1lbnRhdGlvbiBmcm9tIGFuIFhNTCBBUEkgZGVzY3JpcHRpb25zOgorICB4c2x0cHJvYyB3aWtpLnhzbCBsaWJ4bWwyLWFwaS54bWwKKworICBEYW5pZWwgVmVpbGxhcmQKKy0tPgorPHhzbDpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCIKKyAgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCisgIHhtbG5zOmV4c2w9Imh0dHA6Ly9leHNsdC5vcmcvY29tbW9uIgorICB4bWxuczpzdHI9Imh0dHA6Ly9leHNsdC5vcmcvc3RyaW5ncyIKKyAgZXh0ZW5zaW9uLWVsZW1lbnQtcHJlZml4ZXM9ImV4c2wgc3RyIgorICBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcz0iZXhzbCBzdHIiPgorCisgIDwhLS0gR2VuZXJhdGUgWEhUTUwtMS4wIHRyYW5zaXRpb25hbCAtLT4KKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ4bWwiIGVuY29kaW5nPSJJU08tODg1OS0xIiBpbmRlbnQ9InllcyIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIi8+CisKKyAgPCEtLSBCdWlsZCBrZXlzIGZvciBhbGwgc3ltYm9scyAtLT4KKyAgPHhzbDprZXkgbmFtZT0ic3ltYm9scyIgbWF0Y2g9Ii9hcGkvc3ltYm9scy8qIiB1c2U9IkBuYW1lIi8+CisKKyAgPCEtLSB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBmb3IgdGhlIEhUTUwgb3V0cHV0IC0tPgorICA8eHNsOnZhcmlhYmxlIG5hbWU9Imh0bWxkaXIiPndpa2k8L3hzbDp2YXJpYWJsZT4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJocmVmX2Jhc2UiPi4uLzwveHNsOnZhcmlhYmxlPgorCisgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGUiPgorICAgIDxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIi8+IAorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkb2NzdHlsZSI+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGRpdi5kZXByZWNhdGVkIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7Ym9yZGVyLWNvbG9yOnJlZH0KKyAgICAgIHByZS5wcm9ncmFtbGlzdGluZyB7Ym9yZGVyLXN0eWxlOiBkb3VibGU7fQorICAgIDwvc3R5bGU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDwhLS0gVGhpcyBpcyBjb252b2x1dGVkIGJ1dCBuZWVkZWQgdG8gZm9yY2UgdGhlIGN1cnJlbnQgZG9jdW1lbnQgdG8KKyAgICAgICBiZSB0aGUgQVBJIG9uZSBhbmQgbm90IHRoZSByZXN1bHQgdHJlZSBmcm9tIHRoZSB0b2tlbml6ZSgpIHJlc3VsdCwKKyAgICAgICBiZWNhdXNlIHRoZSBrZXlzIGFyZSBvbmx5IGRlZmluZWQgb24gdGhlIG1haW4gZG9jdW1lbnQgLS0+CisgIDx4c2w6dGVtcGxhdGUgbW9kZT0iZHVtcHRva2VuIiBtYXRjaD0nKic+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0b2tlbiIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icmVmIiBzZWxlY3Q9ImtleSgnc3ltYm9scycsICR0b2tlbikiLz4KKyAgICA8eHNsOmNob29zZT4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkcmVmIj4KKyAgICAgICAgPGEgaHJlZj0ibGlieG1sLXskcmVmL0BmaWxlfS5odG1sI3skcmVmL0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0b2tlbiIvPjwvYT4KKyAgICAgIDwveHNsOndoZW4+CisgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0b2tlbiIvPgorICAgICAgPC94c2w6b3RoZXJ3aXNlPgorICAgIDwveHNsOmNob29zZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPCEtLSBkdW1wcyBhIHN0cmluZywgbWFraW5nIGNyb3NzLXJlZmVyZW5jZSBsaW5rcyAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0ZXh0Ii8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJjdHh0IiBzZWxlY3Q9Jy4nLz4KKyAgICA8IS0tIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGV4dCIvPiAtLT4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0ic3RyOnRva2VuaXplKCR0ZXh0LCAnICYjOTsnKSI+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IiRjdHh0IiBtb2RlPSdkdW1wdG9rZW4nPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idG9rZW4iIHNlbGVjdD0ic3RyaW5nKC4pIi8+CisgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgIT0gbGFzdCgpIj4KKyAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6aWY+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1hY3JvIiBtb2RlPSJ0b2MiPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+I2RlZmluZSA8L3hzbDp0ZXh0PjxhIGhyZWY9IiN7QG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InZhcmlhYmxlIiBtb2RlPSJ0b2MiPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+VmFyaWFibGUgPC94c2w6dGV4dD4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0ic3RyaW5nKEB0eXBlKSIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgorICAgIDxhIG5hbWU9IntAbmFtZX0iPjwvYT4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8eHNsOnRleHQ+CisKKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InR5cGVkZWYiIG1vZGU9InRvYyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDpjaG9vc2U+CisgICAgICA8eHNsOndoZW4gdGVzdD0iQHR5cGUgPSAnZW51bSciPgorCTx4c2w6dGV4dD5FbnVtIDwveHNsOnRleHQ+CisJPGEgaHJlZj0iI3skbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvYT4KKwk8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6d2hlbj4KKyAgICAgIDx4c2w6b3RoZXJ3aXNlPgorCTx4c2w6dGV4dD5UeXBlZGVmIDwveHNsOnRleHQ+CisJPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKwkgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9IkB0eXBlIi8+CisJPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwk8eHNsOnRleHQ+IDwveHNsOnRleHQ+CisJPGEgbmFtZT0ieyRuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9hPgorCTx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPgorICAgIDwvcHJlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0eXBlZGVmW0B0eXBlID0gJ2VudW0nXSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8aDM+RW51bSA8YSBuYW1lPSJ7JG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+PC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgICA8eHNsOnRleHQ+RW51bSA8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICA8eHNsOnRleHQ+IHsKKzwveHNsOnRleHQ+CisgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iL2FwaS9zeW1ib2xzL2VudW1bQHR5cGUgPSAkbmFtZV0iPgorICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAdmFsdWUiIGRhdGEtdHlwZT0ibnVtYmVyIiBvcmRlcj0iYXNjZW5kaW5nIi8+CisgICAgICAgIDx4c2w6dGV4dD4gICAgPC94c2w6dGV4dD4KKyAgICAgICAgPGEgbmFtZT0ie0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgorICAgICAgICA8eHNsOnRleHQ+ID0gPC94c2w6dGV4dD4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB2YWx1ZSIvPgorICAgICAgICA8eHNsOmlmIHRlc3Q9IkBpbmZvICE9ICcnIj4KKwkgIDx4c2w6dGV4dD4gOiA8L3hzbDp0ZXh0PgorCSAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKwkgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQGluZm8iLz4KKwkgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwveHNsOmlmPgorICAgICAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8eHNsOnRleHQ+fQorPC94c2w6dGV4dD4KKyAgICA8L3ByZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ic3RydWN0IiBtb2RlPSJ0b2MiPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+U3RydWN0dXJlIDwveHNsOnRleHQ+PGEgaHJlZj0iI3tAbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT48YnIvPgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAdHlwZSIvPjx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoZmllbGQpIj4KKyAgICAgIDx4c2w6dGV4dD5UaGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBub3QgbWFkZSBwdWJsaWMgYnkgdGhlIEFQSS4KKzwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InN0cnVjdCI+CisgICAgPGgzPjxhIG5hbWU9IntAbmFtZX0iPlN0cnVjdHVyZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+PC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDp0ZXh0PlN0cnVjdHVyZSA8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjxici8+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB0eXBlIi8+PHhzbDp0ZXh0PiB7Cis8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0ibm90KGZpZWxkKSI+CisgICAgICA8eHNsOnRleHQ+VGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgbm90IG1hZGUgcHVibGljIGJ5IHRoZSBBUEkuCis8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJmaWVsZCI+CisgICAgICAgIDx4c2w6dGV4dD4gICAgPC94c2w6dGV4dD4KKwk8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQHR5cGUiLz4KKwk8L3hzbDpjYWxsLXRlbXBsYXRlPgorCTx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKwk8eHNsOmlmIHRlc3Q9IkBpbmZvICE9ICcnIj4KKwkgIDx4c2w6dGV4dD4mIzk7OiA8L3hzbDp0ZXh0PgorCSAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKwkgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0ic3Vic3RyaW5nKEBpbmZvLCAxLCA0MCkiLz4KKwkgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJPC94c2w6aWY+CisJPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8eHNsOnRleHQ+fTwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1hY3JvIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDxoMz48YSBuYW1lPSJ7JG5hbWV9Ij48L2E+TWFjcm86IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvaDM+CisgICAgPHByZT48eHNsOnRleHQ+I2RlZmluZSA8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvcHJlPgorICAgIDxwPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJpbmZvIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3A+PHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZnVuY3Rpb24iIG1vZGU9InRvYyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5sZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aCgkbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRsZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aChyZXR1cm4vQHR5cGUpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJibGVuIiBzZWxlY3Q9IigoJG5sZW4gKyA4KSAtICgoJG5sZW4gKyA4KSBtb2QgOCkpICsgKCgkdGxlbiArIDgpIC0gKCgkdGxlbiArIDgpIG1vZCA4KSkiLz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AdHlwZSIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDxhIGhyZWY9IiN7QG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD4KKyAgICA8L3ByZT48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmdW5jdHlwZSIgbW9kZT0idG9jIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKCRuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKHJldHVybi9AdHlwZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsZW4iIHNlbGVjdD0iKCgkbmxlbiArIDgpIC0gKCgkbmxlbiArIDgpIG1vZCA4KSkgKyAoKCR0bGVuICsgOCkgLSAoKCR0bGVuICsgOCkgbW9kIDgpKSIvPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOnRleHQ+RnVuY3Rpb24gdHlwZTogPC94c2w6dGV4dD4KKyAgICA8YSBocmVmPSIjeyRuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9hPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AdHlwZSIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDxhIGhyZWY9IiN7JG5hbWV9Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pCis8L3hzbDp0ZXh0PgorICAgIDwvcHJlPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZ1bmN0eXBlIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5hbWUiIHNlbGVjdD0ic3RyaW5nKEBuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ibmxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKCRuYW1lKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGxlbiIgc2VsZWN0PSJzdHJpbmctbGVuZ3RoKHJldHVybi9AdHlwZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImJsZW4iIHNlbGVjdD0iKCgkbmxlbiArIDgpIC0gKCgkbmxlbiArIDgpIG1vZCA4KSkgKyAoKCR0bGVuICsgOCkgLSAoKCR0bGVuICsgOCkgbW9kIDgpKSIvPgorICAgIDxoMz4KKyAgICAgIDxhIG5hbWU9InskbmFtZX0iPjwvYT4KKyAgICAgIDx4c2w6dGV4dD5GdW5jdGlvbiB0eXBlOiA8L3hzbDp0ZXh0PgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgPC9oMz4KKyAgICA8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgPHhzbDp0ZXh0PkZ1bmN0aW9uIHR5cGU6IDwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgPHhzbDp0ZXh0PgorPC94c2w6dGV4dD4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0B0eXBlIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pCis8L3hzbDp0ZXh0PgorICAgIDwvcHJlPgorICAgIDxwPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJpbmZvIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3A+CisgICAgPHhzbDppZiB0ZXN0PSJhcmcgfCByZXR1cm4iPgorICAgICAgPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0Ii8+PHRib2R5PgorICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L3R0PjwvaT46PC9zcGFuPjwvdGQ+CisJICA8dGQ+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisJICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iQGluZm8iLz4KKwkgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwkgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgIDx4c2w6aWYgdGVzdD0icmV0dXJuL0BpbmZvIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PlJldHVybnM8L3R0PjwvaT46PC9zcGFuPjwvdGQ+CisJICA8dGQ+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkdW1wdGV4dCI+CisJICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0BpbmZvIi8+CisJICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC94c2w6aWY+CisgICAgICA8L3Rib2R5PjwvdGFibGU+PC9kaXY+CisgICAgPC94c2w6aWY+CisgICAgPGJyLz4KKyAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmdW5jdGlvbiI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9InN0cmluZyhAbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Im5sZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aCgkbmFtZSkiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRsZW4iIHNlbGVjdD0ic3RyaW5nLWxlbmd0aChyZXR1cm4vQHR5cGUpIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJibGVuIiBzZWxlY3Q9IigoJG5sZW4gKyA4KSAtICgoJG5sZW4gKyA4KSBtb2QgOCkpICsgKCgkdGxlbiArIDgpIC0gKCgkdGxlbiArIDgpIG1vZCA4KSkiLz4KKyAgICA8aDM+PGEgbmFtZT0ieyRuYW1lfSI+PC9hPkZ1bmN0aW9uOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2gzPgorICAgIDxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0icmV0dXJuL0B0eXBlIi8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8eHNsOnRleHQ+JiM5OzwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDppZiB0ZXN0PSIkYmxlbiAtIDQwICZsdDsgLTgiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJGJsZW4gLSA0MCAmbHQ7IDAiPgorICAgICAgPHhzbDp0ZXh0PiYjOTs8L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dGV4dD4mIzk7KDwveHNsOnRleHQ+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoYXJnKSI+CisgICAgICA8eHNsOnRleHQ+dm9pZDwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImFyZyI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSJAdHlwZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpICE9IGxhc3QoKSI+CisgICAgICAgIDx4c2w6dGV4dD4sIDwveHNsOnRleHQ+PGJyLz4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyA4Ij4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOmlmIHRlc3Q9IiRibGVuIC0gNDAgJmd0OyAwIj4KKwkgIDx4c2w6dGV4dD4mIzk7PC94c2w6dGV4dD4KKwk8L3hzbDppZj4KKwk8eHNsOnRleHQ+JiM5OyYjOTsmIzk7JiM5OyYjOTsgPC94c2w6dGV4dD4KKyAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD48YnIvPgorICAgIDx4c2w6dGV4dD4KKzwveHNsOnRleHQ+CisgICAgPC9wcmU+CisgICAgPHA+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImR1bXB0ZXh0Ij4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9ImluZm8iLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcD48eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICAgIDx4c2w6aWYgdGVzdD0iYXJnIHwgcmV0dXJuL0BpbmZvIj4KKyAgICAgIDxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIvPjx0Ym9keT4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJhcmciPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9IkBpbmZvIi8+CisJICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisJICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8eHNsOmlmIHRlc3Q9InJldHVybi9AaW5mbyI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5SZXR1cm5zPC90dD48L2k+Ojwvc3Bhbj48L3RkPgorCSAgPHRkPgorCSAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZHVtcHRleHQiPgorCSAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0IiBzZWxlY3Q9InJldHVybi9AaW5mbyIvPgorCSAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorCSAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwveHNsOmlmPgorICAgICAgPC90Ym9keT48L3RhYmxlPjwvZGl2PgorICAgIDwveHNsOmlmPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJleHBvcnRzIiBtb2RlPSJ0b2MiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ia2V5KCdzeW1ib2xzJywgc3RyaW5nKEBzeW1ib2wpKVsxXSIgbW9kZT0idG9jIi8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImV4cG9ydHMiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ia2V5KCdzeW1ib2xzJywgc3RyaW5nKEBzeW1ib2wpKVsxXSIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG5hbWU9ImRlc2NyaXB0aW9uIj4KKyAgICA8eHNsOmlmIHRlc3Q9ImRlcHJlY2F0ZWQiPgorICAgICAgPGgyIHN0eWxlPSJmb250LXdlaWdodDpib2xkO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlciI+VGhpcyBtb2R1bGUgaXMgZGVwcmVjYXRlZDwvaDI+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDppZiB0ZXN0PSJkZXNjcmlwdGlvbiI+CisgICAgICA8cD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iZGVzY3JpcHRpb24iLz48L3A+CisgICAgPC94c2w6aWY+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbmFtZT0iZG9jb21wb25lbnRzIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9Im1vZGUiLz4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J21hY3JvJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdlbnVtJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSd0eXBlZGVmJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdzdHJ1Y3QnXSIgbW9kZT0iJG1vZGUiPgorICAgICAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J2Z1bmN0aW9uJ10iIG1vZGU9IiRtb2RlIj4KKyAgICAgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKyAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgIDwveHNsOnRlbXBsYXRlPgorICAKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZmlsZSI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0aXRsZSI+TW9kdWxlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPiBmcm9tIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvYXBpL0BuYW1lIi8+PC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJ7JGh0bWxkaXJ9L2xpYnhtbC17JG5hbWV9Lmh0bWwiIG1ldGhvZD0ieG1sIiBlbmNvZGluZz0iSVNPLTg4NTktMSIKKyAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKwkgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlIi8+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkb2NzdHlsZSIvPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+CisJICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkZXNjcmlwdGlvbiIvPgorCSAgICA8eHNsOmNob29zZT4KKwkgICAgICA8eHNsOndoZW4gdGVzdD0iZGVwcmVjYXRlZCI+CisJICAgICAgICA8ZGl2IGNsYXNzPSJkZXByZWNhdGVkIj4KKwkJICA8aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPgorCQkgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0cyIgbW9kZT0idG9jIi8+CisJCSAgPGgyPkRlc2NyaXB0aW9uPC9oMj4KKwkJICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorCQkgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0cyIvPgorCQk8L2Rpdj4KKwkgICAgICA8L3hzbDp3aGVuPgorCSAgICAgIDx4c2w6b3RoZXJ3aXNlPgorCQk8aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J21hY3JvJ10iIG1vZGU9InRvYyI+CisJCSAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorCQk8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0c1tAdHlwZT0nZW51bSddIiBtb2RlPSJ0b2MiPgorCQkgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKwkJPC94c2w6YXBwbHktdGVtcGxhdGVzPgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J3R5cGVkZWYnXSIgbW9kZT0idG9jIj4KKwkJICA8eHNsOnNvcnQgc2VsZWN0PSdAc3ltYm9sJy8+CisJCTwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdzdHJ1Y3QnXSIgbW9kZT0idG9jIj4KKwkJICA8eHNsOnNvcnQgc2VsZWN0PSdAc3ltYm9sJy8+CisJCTwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdmdW5jdGlvbiddIiBtb2RlPSJ0b2MiPgorCQkgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKwkJPC94c2w6YXBwbHktdGVtcGxhdGVzPgorCQk8aDI+RGVzY3JpcHRpb248L2gyPgorCQk8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J21hY3JvJ10iPgorCQkgIDx4c2w6c29ydCBzZWxlY3Q9J0BzeW1ib2wnLz4KKwkJPC94c2w6YXBwbHktdGVtcGxhdGVzPgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImV4cG9ydHNbQHR5cGU9J2VudW0nXSI+CisJCSAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorCQk8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0c1tAdHlwZT0ndHlwZWRlZiddIj4KKwkJICA8eHNsOnNvcnQgc2VsZWN0PSdAc3ltYm9sJy8+CisJCTwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleHBvcnRzW0B0eXBlPSdzdHJ1Y3QnXSI+CisJCSAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorCQk8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXhwb3J0c1tAdHlwZT0nZnVuY3Rpb24nXSI+CisJCSAgPHhzbDpzb3J0IHNlbGVjdD0nQHN5bWJvbCcvPgorCQk8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisJICAgICAgPC94c2w6b3RoZXJ3aXNlPgorCSAgICA8L3hzbDpjaG9vc2U+CisgICAgPC90ZD4KKyAgPC90cj4KKzwvdGFibGU+CisgICAgPC94c2w6ZG9jdW1lbnQ+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGUiIG1vZGU9InRvYyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJuYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPGI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL3dpa2kvaW5kZXgucGhwP3RpdGxlPUxpYnhtbDI6QXBpOnskbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvYT48L2I+PGJyLz4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdW1tYXJ5Ii8+CisgICAgICA8YnIvPjxici8+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbmFtZT0ibWFpbnBhZ2UiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0iZmlsZSIgc2VsZWN0PSJjb25jYXQoJGh0bWxkaXIsICcvbGlieG1sLWluZGV4Lmh0bWwnKSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGl0bGUiPlJlZmVyZW5jZSBNYW51YWwgZm9yIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvYXBpL0BuYW1lIi8+PC94c2w6dmFyaWFibGU+CisgICAgPHhzbDpkb2N1bWVudCBocmVmPSJ7JGZpbGV9IiBtZXRob2Q9InhtbCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiCisgICAgICBkb2N0eXBlLXB1YmxpYz0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICBkb2N0eXBlLXN5c3RlbT0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3R5bGUiLz4KKyAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkb2NzdHlsZSIvPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+CisgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii9hcGkvZmlsZXMvZmlsZSIgbW9kZT0idG9jIi8+CisgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+CisgICAgPC94c2w6ZG9jdW1lbnQ+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgorICAgIDwhLS0gU2F2ZSB0aGUgbWFpbiBsaWJ4bWwtaW5kZXguaHRtbCBhcyB3ZWxsIGFzIGEgY291cGxlIG9mIGNvcGllcyAtLT4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ibWFpbnBhZ2UiLz4KKyAgICA8IS0tIG5vdyBidWlsZCB0aGUgZmlsZSBmb3IgZWFjaCBvZiB0aGUgbW9kdWxlcyAtLT4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii9hcGkvZmlsZXMvZmlsZSIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3htbC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ4YjQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3htbC5odG1sCkBAIC0wLDAgKzEsNTM0NCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC90aXRsZT4KKyAgPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJhbWF5YSA4LjUsIHNlZSBodHRwOi8vd3d3LnczLm9yZy9BbWF5YS8iPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbCI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KKzxoMSBhbGlnbj0iY2VudGVyIj5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT4KKworPGgxPk5vdGU6IHRoaXMgaXMgdGhlIGZsYXQgY29udGVudCBvZiB0aGUgPGEgaHJlZj0iaW5kZXguaHRtbCI+d2ViCitzaXRlPC9hPjwvaDE+CisKKzxoMSBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj5saWJ4bWwsIGEuay5hLiBnbm9tZS14bWw8L2gxPgorCis8cD48L3A+CisKKzxwCitzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1zaXplOiAxMHB0Ij4iUHJvZ3JhbW1pbmcKK3dpdGggbGlieG1sMiBpcyBsaWtlIHRoZSB0aHJpbGxpbmcgZW1icmFjZSBvZiBhbiBleG90aWMgc3RyYW5nZXIuIiA8YQoraHJlZj0iaHR0cDovL2RpdmVpbnRvbWFyay5vcmcvYXJjaGl2ZXMvMjAwNC8wMi8xOC9saWJ4bWwyIj5NYXJrCitQaWxncmltPC9hPjwvcD4KKworPHA+TGlieG1sMiBpcyB0aGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IGRldmVsb3BlZCBmb3IgdGhlIEdub21lIHByb2plY3QKKyhidXQgdXNhYmxlIG91dHNpZGUgb2YgdGhlIEdub21lIHBsYXRmb3JtKSwgaXQgaXMgZnJlZSBzb2Z0d2FyZSBhdmFpbGFibGUKK3VuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLmh0bWwiPk1JVAorTGljZW5zZTwvYT4uIFhNTCBpdHNlbGYgaXMgYSBtZXRhbGFuZ3VhZ2UgdG8gZGVzaWduIG1hcmt1cCBsYW5ndWFnZXMsIGkuZS4KK3RleHQgbGFuZ3VhZ2Ugd2hlcmUgc2VtYW50aWMgYW5kIHN0cnVjdHVyZSBhcmUgYWRkZWQgdG8gdGhlIGNvbnRlbnQgdXNpbmcKK2V4dHJhICJtYXJrdXAiIGluZm9ybWF0aW9uIGVuY2xvc2VkIGJldHdlZW4gYW5nbGUgYnJhY2tldHMuIEhUTUwgaXMgdGhlIG1vc3QKK3dlbGwta25vd24gbWFya3VwIGxhbmd1YWdlLiBUaG91Z2ggdGhlIGxpYnJhcnkgaXMgd3JpdHRlbiBpbiBDIDxhCitocmVmPSJweXRob24uaHRtbCI+YSB2YXJpZXR5IG9mIGxhbmd1YWdlIGJpbmRpbmdzPC9hPiBtYWtlIGl0IGF2YWlsYWJsZSBpbgorb3RoZXIgZW52aXJvbm1lbnRzLjwvcD4KKworPHA+TGlieG1sMiBpcyBrbm93biB0byBiZSB2ZXJ5IHBvcnRhYmxlLCB0aGUgbGlicmFyeSBzaG91bGQgYnVpbGQgYW5kIHdvcmsKK3dpdGhvdXQgc2VyaW91cyB0cm91YmxlcyBvbiBhIHZhcmlldHkgb2Ygc3lzdGVtcyAoTGludXgsIFVuaXgsIFdpbmRvd3MsCitDeWdXaW4sIE1hY09TLCBNYWNPUyBYLCBSSVNDIE9zLCBPUy8yLCBWTVMsIFFOWCwgTVZTLCBWeFdvcmtzLCAuLi4pPC9wPgorCis8cD5MaWJ4bWwyIGltcGxlbWVudHMgYSBudW1iZXIgb2YgZXhpc3Rpbmcgc3RhbmRhcmRzIHJlbGF0ZWQgdG8gbWFya3VwCitsYW5ndWFnZXM6PC9wPgorPHVsPgorICA8bGk+dGhlIFhNTCBzdGFuZGFyZDogPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj5odHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sPC9hPjwvbGk+CisgIDxsaT5OYW1lc3BhY2VzIGluIFhNTDogPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLW5hbWVzLyI+aHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy88L2E+PC9saT4KKyAgPGxpPlhNTCBCYXNlOiA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbGJhc2UvIj5odHRwOi8vd3d3LnczLm9yZy9UUi94bWxiYXNlLzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jaXMub2hpby1zdGF0ZS5lZHUvcmZjL3JmYzIzOTYudHh0Ij5SRkMgMjM5NjwvYT4gOgorICAgIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcnMgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCI+aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQ8L2E+PC9saT4KKyAgPGxpPlhNTCBQYXRoIExhbmd1YWdlIChYUGF0aCkgMS4wOiA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hwYXRoIj5odHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aDwvYT48L2xpPgorICA8bGk+SFRNTDQgcGFyc2VyOiA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0MDEvIj5odHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNDAxLzwvYT48L2xpPgorICA8bGk+WE1MIFBvaW50ZXIgTGFuZ3VhZ2UgKFhQb2ludGVyKSBWZXJzaW9uIDEuMDogPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94cHRyIj5odHRwOi8vd3d3LnczLm9yZy9UUi94cHRyPC9hPjwvbGk+CisgIDxsaT5YTUwgSW5jbHVzaW9ucyAoWEluY2x1ZGUpIFZlcnNpb24gMS4wOiA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hpbmNsdWRlLyI+aHR0cDovL3d3dy53My5vcmcvVFIveGluY2x1ZGUvPC9hPjwvbGk+CisgIDxsaT5JU08tODg1OS14IGVuY29kaW5ncywgYXMgd2VsbCBhcyA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuY2lzLm9oaW8tc3RhdGUuZWR1L3JmYy9yZmMyMDQ0LnR4dCI+cmZjMjA0NDwvYT4gW1VURi04XQorICAgIGFuZCA8YSBocmVmPSJodHRwOi8vd3d3LmNpcy5vaGlvLXN0YXRlLmVkdS9yZmMvcmZjMjc4MS50eHQiPnJmYzI3ODE8L2E+CisgICAgW1VURi0xNl0gVW5pY29kZSBlbmNvZGluZ3MsIGFuZCBtb3JlIGlmIHVzaW5nIGljb252IHN1cHBvcnQ8L2xpPgorICA8bGk+cGFydCBvZiBTR01MIE9wZW4gVGVjaG5pY2FsIFJlc29sdXRpb24gVFI5NDAxOjE5OTc8L2xpPgorICA8bGk+WE1MIENhdGFsb2dzIFdvcmtpbmcgRHJhZnQgMDYgQXVndXN0IDIwMDE6IDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLTIwMDEtMDgtMDYuaHRtbCI+aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLTIwMDEtMDgtMDYuaHRtbDwvYT48L2xpPgorICA8bGk+Q2Fub25pY2FsIFhNTCBWZXJzaW9uIDEuMDogPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0biI+aHR0cDovL3d3dy53My5vcmcvVFIveG1sLWMxNG48L2E+CisgICAgYW5kIHRoZSBFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24gQ1IgZHJhZnQgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4iPmh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bjwvYT48L2xpPgorICA8bGk+UmVsYXggTkcsIElTTy9JRUMgMTk3NTctMjoyMDAzLCA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9yZWxheC1uZy9zcGVjLTIwMDExMjAzLmh0bWwiPmh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9yZWxheC1uZy9zcGVjLTIwMDExMjAzLmh0bWw8L2E+PC9saT4KKyAgPGxpPlczQyBYTUwgU2NoZW1hcyBQYXJ0IDI6IERhdGF0eXBlcyA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbHNjaGVtYS0yLTIwMDEwNTAyLyI+UkVDIDAyIE1heQorICAgIDIwMDE8L2E+PC9saT4KKyAgPGxpPlczQyA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtaWQvIj54bWw6aWQ8L2E+IFdvcmtpbmcgRHJhZnQgNworICAgIEFwcmlsIDIwMDQ8L2xpPgorPC91bD4KKworPHA+SW4gbW9zdCBjYXNlcyBsaWJ4bWwyIHRyaWVzIHRvIGltcGxlbWVudCB0aGUgc3BlY2lmaWNhdGlvbnMgaW4gYQorcmVsYXRpdmVseSBzdHJpY3RseSBjb21wbGlhbnQgd2F5LiBBcyBvZiByZWxlYXNlIDIuNC4xNiwgbGlieG1sMiBwYXNzZWQgYWxsCisxODAwKyB0ZXN0cyBmcm9tIHRoZSA8YQoraHJlZj0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL3htbC1jb25mb3JtYW5jZS8iPk9BU0lTIFhNTCBUZXN0cworU3VpdGU8L2E+LjwvcD4KKworPHA+VG8gc29tZSBleHRlbnQgbGlieG1sMiBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwKK3NwZWNpZmljYXRpb25zIGJ1dCBkb2Vzbid0IGNsYWltIHRvIGltcGxlbWVudCB0aGVtIGNvbXBsZXRlbHk6PC9wPgorPHVsPgorICA8bGk+RG9jdW1lbnQgT2JqZWN0IE1vZGVsIChET00pIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTItQ29yZS8iPmh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0yLUNvcmUvPC9hPgorICAgIHRoZSBkb2N1bWVudCBtb2RlbCwgYnV0IGl0IGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBBUEkgaXRzZWxmLCBnZG9tZTIgZG9lcworICAgIHRoaXMgb24gdG9wIG9mIGxpYnhtbDI8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jaXMub2hpby1zdGF0ZS5lZHUvcmZjL3JmYzk1OS50eHQiPlJGQyA5NTk8L2E+IDoKKyAgICBsaWJ4bWwyIGltcGxlbWVudHMgYSBiYXNpYyBGVFAgY2xpZW50IGNvZGU8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jaXMub2hpby1zdGF0ZS5lZHUvcmZjL3JmYzE5NDUudHh0Ij5SRkMgMTk0NTwvYT4gOgorICAgIEhUVFAvMS4wLCBhZ2FpbiBhIGJhc2ljIEhUVFAgY2xpZW50IGNvZGU8L2xpPgorICA8bGk+U0FYOiBhIFNBWDIgbGlrZSBpbnRlcmZhY2UgYW5kIGEgbWluaW1hbCBTQVgxIGltcGxlbWVudGF0aW9uIGNvbXBhdGlibGUKKyAgICB3aXRoIGVhcmx5IGV4cGF0IHZlcnNpb25zPC9saT4KKzwvdWw+CisKKzxwPkEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiA8YQoraHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sc2NoZW1hLTEtMjAwMTA1MDIvIj5YTUwgU2NoZW1hcyBQYXJ0CisxOiBTdHJ1Y3R1cmU8L2E+IGlzIGJlaW5nIHdvcmtlZCBvbiBidXQgaXQgd291bGQgYmUgZmFyIHRvbyBlYXJseSB0byBtYWtlIGFueQorY29uZm9ybWFuY2Ugc3RhdGVtZW50IGFib3V0IGl0IGF0IHRoZSBtb21lbnQuPC9wPgorCis8cD5TZXBhcmF0ZSBkb2N1bWVudHM6PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj50aGUgbGlieHNsdCBwYWdlPC9hPiBwcm92aWRpbmcgYW4KKyAgICBpbXBsZW1lbnRhdGlvbiBvZiBYU0xUIDEuMCBhbmQgY29tbW9uIGV4dGVuc2lvbnMgbGlrZSBFWFNMVCBmb3IKKyAgbGlieG1sMjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vZ2RvbWUyLmNzLnVuaWJvLml0LyI+dGhlIGdkb21lMiBwYWdlPC9hPgorICAgIDogYSBzdGFuZGFyZCBET00yIGltcGxlbWVudGF0aW9uIGZvciBsaWJ4bWwyPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+dGhlIFhNTFNlYyBwYWdlPC9hPjogYW4KKyAgICBpbXBsZW1lbnRhdGlvbiBvZiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnLWNvcmUvIj5XM0MgWE1MCisgICAgRGlnaXRhbCBTaWduYXR1cmU8L2E+IGZvciBsaWJ4bWwyPC9saT4KKyAgPGxpPmFsc28gY2hlY2sgdGhlIHJlbGF0ZWQgbGlua3Mgc2VjdGlvbiBmb3IgbW9yZSByZWxhdGVkIGFuZCBhY3RpdmUKKyAgICBwcm9qZWN0cy48L2xpPgorPC91bD4KKzxwPiBIb3N0aW5nIHNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmFvZW1lZGlhLmRlL29wZW5zb3VyY2UtY21zLmh0bWwiCis+T3BlbiBTb3VyY2UgQ01TIHNlcnZpY2VzPC9hPiBmcm9tIEFPRSBtZWRpYS48L3A+CisKKzxwPkxvZ28gZGVzaWduZWQgYnkgPGEgaHJlZj0ibWFpbHRvOmxpeWFuYWdlQGFjY2Vzcy5jaCI+TWFyYyBMaXlhbmFnZTwvYT4uPC9wPgorCis8aDI+PGEgbmFtZT0iSW50cm9kdWN0aSI+SW50cm9kdWN0aW9uPC9hPjwvaDI+CisKKzxwPlRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGxpYnhtbCwgdGhlIDxhCitocmVmPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvIj5YTUw8L2E+IEMgcGFyc2VyIGFuZCB0b29sa2l0IGRldmVsb3BlZCBmb3IgdGhlCis8YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPkdub21lPC9hPiBwcm9qZWN0LiA8YQoraHJlZj0iaHR0cDovL3d3dy53My5vcmcvWE1MLyI+WE1MIGlzIGEgc3RhbmRhcmQ8L2E+IGZvciBidWlsZGluZyB0YWctYmFzZWQKK3N0cnVjdHVyZWQgZG9jdW1lbnRzL2RhdGEuPC9wPgorCis8cD5IZXJlIGFyZSBzb21lIGtleSBwb2ludHMgYWJvdXQgbGlieG1sOjwvcD4KKzx1bD4KKyAgPGxpPkxpYnhtbDIgZXhwb3J0cyBQdXNoIChwcm9ncmVzc2l2ZSkgYW5kIFB1bGwgKGJsb2NraW5nKSB0eXBlIHBhcnNlcgorICAgIGludGVyZmFjZXMgZm9yIGJvdGggWE1MIGFuZCBIVE1MLjwvbGk+CisgIDxsaT5MaWJ4bWwyIGNhbiBkbyBEVEQgdmFsaWRhdGlvbiBhdCBwYXJzZSB0aW1lLCB1c2luZyBhIHBhcnNlZCBkb2N1bWVudAorICAgIGluc3RhbmNlLCBvciB3aXRoIGFuIGFyYml0cmFyeSBEVEQuPC9saT4KKyAgPGxpPkxpYnhtbDIgaW5jbHVkZXMgY29tcGxldGUgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aCI+WFBhdGg8L2E+LCA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hwdHIiPlhQb2ludGVyPC9hPiBhbmQgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aW5jbHVkZSI+WEluY2x1ZGU8L2E+IGltcGxlbWVudGF0aW9ucy48L2xpPgorICA8bGk+SXQgaXMgd3JpdHRlbiBpbiBwbGFpbiBDLCBtYWtpbmcgYXMgZmV3IGFzc3VtcHRpb25zIGFzIHBvc3NpYmxlLCBhbmQKKyAgICBzdGlja2luZyBjbG9zZWx5IHRvIEFOU0kgQy9QT1NJWCBmb3IgZWFzeSBlbWJlZGRpbmcuIFdvcmtzIG9uCisgICAgTGludXgvVW5peC9XaW5kb3dzLCBwb3J0ZWQgdG8gYSBudW1iZXIgb2Ygb3RoZXIgcGxhdGZvcm1zLjwvbGk+CisgIDxsaT5CYXNpYyBzdXBwb3J0IGZvciBIVFRQIGFuZCBGVFAgY2xpZW50IGFsbG93aW5nIGFwcGxpY2F0aW9ucyB0byBmZXRjaAorICAgIHJlbW90ZSByZXNvdXJjZXMuPC9saT4KKyAgPGxpPlRoZSBkZXNpZ24gaXMgbW9kdWxhciwgbW9zdCBvZiB0aGUgZXh0ZW5zaW9ucyBjYW4gYmUgY29tcGlsZWQgb3V0LjwvbGk+CisgIDxsaT5UaGUgaW50ZXJuYWwgZG9jdW1lbnQgcmVwcmVzZW50YXRpb24gaXMgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvRE9NLyI+RE9NPC9hPiBpbnRlcmZhY2VzLjwvbGk+CisgIDxsaT5MaWJ4bWwyIGFsc28gaGFzIGEgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3Lm1lZ2dpbnNvbi5jb20vU0FYL2luZGV4Lmh0bWwiPlNBWCBsaWtlIGludGVyZmFjZTwvYT47CisgICAgdGhlIGludGVyZmFjZSBpcyBkZXNpZ25lZCB0byBiZSBjb21wYXRpYmxlIHdpdGggPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LmpjbGFyay5jb20veG1sL2V4cGF0Lmh0bWwiPkV4cGF0PC9hPi48L2xpPgorICA8bGk+VGhpcyBsaWJyYXJ5IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UuaHRtbCI+TUlUCisgICAgTGljZW5zZTwvYT4uIFNlZSB0aGUgQ29weXJpZ2h0IGZpbGUgaW4gdGhlIGRpc3RyaWJ1dGlvbiBmb3IgdGhlIHByZWNpc2UKKyAgICB3b3JkaW5nLjwvbGk+Cis8L3VsPgorCis8cD5XYXJuaW5nOiB1bmxlc3MgeW91IGFyZSBmb3JjZWQgdG8gYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGxpbmtzIHdpdGggYQorR25vbWUtMS5YIGxpYnJhcnkgcmVxdWlyaW5nIGl0LCAgPHN0cm9uZz48c3Bhbgorc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNGRjAwMDAiPkRvIE5vdCBVc2UgbGlieG1sMTwvc3Bhbj48L3N0cm9uZz4sIHVzZQorbGlieG1sMjwvcD4KKworPGgyPjxhIG5hbWU9IkZBUSI+RkFRPC9hPjwvaDI+CisKKzxwPlRhYmxlIG9mIENvbnRlbnRzOjwvcD4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9IkZBUS5odG1sI0xpY2Vuc2UiPkxpY2Vuc2Uocyk8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IkZBUS5odG1sI0luc3RhbGxhdGkiPkluc3RhbGxhdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iRkFRLmh0bWwjQ29tcGlsYXRpbyI+Q29tcGlsYXRpb248L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IkZBUS5odG1sI0RldmVsb3BlciI+RGV2ZWxvcGVyIGNvcm5lcjwvYT48L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9IkxpY2Vuc2UiPkxpY2Vuc2U8L2E+KHMpPC9oMz4KKzxvbD4KKyAgPGxpPjxlbT5MaWNlbnNpbmcgVGVybXMgZm9yIGxpYnhtbDwvZW0+CisgICAgPHA+bGlieG1sMiBpcyByZWxlYXNlZCB1bmRlciB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLmh0bWwiPk1JVAorICAgIExpY2Vuc2U8L2E+OyBzZWUgdGhlIGZpbGUgQ29weXJpZ2h0IGluIHRoZSBkaXN0cmlidXRpb24gZm9yIHRoZSBwcmVjaXNlCisgICAgd29yZGluZzwvcD4KKyAgPC9saT4KKyAgPGxpPjxlbT5DYW4gSSBlbWJlZCBsaWJ4bWwyIGluIGEgcHJvcHJpZXRhcnkgYXBwbGljYXRpb24gPzwvZW0+CisgICAgPHA+WWVzLiBUaGUgTUlUIExpY2Vuc2UgYWxsb3dzIHlvdSB0byBrZWVwIHByb3ByaWV0YXJ5IHRoZSBjaGFuZ2VzIHlvdQorICAgIG1hZGUgdG8gbGlieG1sLCBidXQgaXQgd291bGQgYmUgZ3JhY2VmdWwgdG8gc2VuZC1iYWNrIGJ1ZyBmaXhlcyBhbmQKKyAgICBpbXByb3ZlbWVudHMgYXMgcGF0Y2hlcyBmb3IgcG9zc2libGUgaW5jb3Jwb3JhdGlvbiBpbiB0aGUgbWFpbgorICAgIGRldmVsb3BtZW50IHRyZWUuPC9wPgorICA8L2xpPgorPC9vbD4KKworPGgzPjxhIG5hbWU9Ikluc3RhbGxhdGkiPkluc3RhbGxhdGlvbjwvYT48L2gzPgorPG9sPgorICA8bGk+PHN0cm9uZz48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMCI+RG8gTm90IFVzZQorICAgIGxpYnhtbDE8L3NwYW4+PC9zdHJvbmc+LCB1c2UgbGlieG1sMjwvbGk+CisgIDxwPjwvcD4KKyAgPGxpPjxlbT5XaGVyZSBjYW4gSSBnZXQgbGlieG1sPC9lbT4gPworICAgIDxwPlRoZSBvcmlnaW5hbCBkaXN0cmlidXRpb24gY29tZXMgZnJvbSA8YQorICAgIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvIj54bWxzb2Z0Lm9yZzwvYT4gb3IgPGEKKyAgICBocmVmPSJmdHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzL2xpYnhtbDIvMi42LyI+Z25vbWUub3JnPC9hPjwvcD4KKyAgICA8cD5Nb3N0IExpbnV4IGFuZCBCU0QgZGlzdHJpYnV0aW9ucyBpbmNsdWRlIGxpYnhtbCwgdGhpcyBpcyBwcm9iYWJseSB0aGUKKyAgICBzYWZlciB3YXkgZm9yIGVuZC11c2VycyB0byB1c2UgbGlieG1sLjwvcD4KKyAgICA8cD5EYXZpZCBEb29saW4gcHJvdmlkZXMgcHJlY29tcGlsZWQgV2luZG93cyB2ZXJzaW9ucyBhdCA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi8gICAgICAgICAiPmh0dHA6Ly93d3cuY2UuYmVya2VsZXkuZWR1L35kb29saW4vY29kZS9saWJ4bWx3aW4zMi88L2E+PC9wPgorICA8L2xpPgorICA8cD48L3A+CisgIDxsaT48ZW0+SSBzZWUgbGlieG1sIGFuZCBsaWJ4bWwyIHJlbGVhc2VzLCB3aGljaCBvbmUgc2hvdWxkIEkgaW5zdGFsbCA/PC9lbT4KKyAgICA8dWw+CisgICAgICA8bGk+SWYgeW91IGFyZSBub3QgY29uc3RyYWluZWQgYnkgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZXMgd2l0aAorICAgICAgICBleGlzdGluZyBhcHBsaWNhdGlvbnMsIGluc3RhbGwgbGlieG1sMiBvbmx5PC9saT4KKyAgICAgIDxsaT5JZiB5b3UgYXJlIG5vdCBkb2luZyBkZXZlbG9wbWVudCwgeW91IGNhbiBzYWZlbHkgaW5zdGFsbCBib3RoLgorICAgICAgICBVc3VhbGx5IHRoZSBwYWNrYWdlcyA8YQorICAgICAgICBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvUlBNL2xpYnhtbC5odG1sIj5saWJ4bWw8L2E+IGFuZCA8YQorICAgICAgICBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvUlBNL2xpYnhtbDIuaHRtbCI+bGlieG1sMjwvYT4gYXJlCisgICAgICAgIGNvbXBhdGlibGUgKHRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciBkZXZlbG9wbWVudCBwYWNrYWdlcykuPC9saT4KKyAgICAgIDxsaT5JZiB5b3UgYXJlIGEgZGV2ZWxvcGVyIGFuZCB5b3VyIHN5c3RlbSBwcm92aWRlcyBzZXBhcmF0ZSBwYWNrYWdpbmcKKyAgICAgICAgZm9yIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHRoZSBkZXZlbG9wbWVudCBjb21wb25lbnRzLCBpdCBpcyBwb3NzaWJsZQorICAgICAgICB0byBpbnN0YWxsIGxpYnhtbCBhbmQgbGlieG1sMiwgYW5kIGFsc28gPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwtZGV2ZWwuaHRtbCI+bGlieG1sLWRldmVsPC9hPgorICAgICAgICBhbmQgPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwyLWRldmVsLmh0bWwiPmxpYnhtbDItZGV2ZWw8L2E+CisgICAgICAgIHRvbyBmb3IgbGlieG1sMiAmZ3Q7PSAyLjMuMDwvbGk+CisgICAgICA8bGk+SWYgeW91IGFyZSBkZXZlbG9waW5nIGEgbmV3IGFwcGxpY2F0aW9uLCBwbGVhc2UgZGV2ZWxvcCBhZ2FpbnN0CisgICAgICAgIGxpYnhtbDIoLWRldmVsKTwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxlbT5JIGNhbid0IGluc3RhbGwgdGhlIGxpYnhtbCBwYWNrYWdlLCBpdCBjb25mbGljdHMgd2l0aCBsaWJ4bWwwPC9lbT4KKyAgICA8cD5Zb3UgcHJvYmFibHkgaGF2ZSBhbiBvbGQgbGlieG1sMCBwYWNrYWdlIHVzZWQgdG8gcHJvdmlkZSB0aGUgc2hhcmVkCisgICAgbGlicmFyeSBmb3IgbGlieG1sLnNvLjAsIHlvdSBjYW4gcHJvYmFibHkgc2FmZWx5IHJlbW92ZSBpdC4gVGhlIGxpYnhtbAorICAgIHBhY2thZ2VzIHByb3ZpZGVkIG9uIDxhCisgICAgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi8iPnhtbHNvZnQub3JnPC9hPiBwcm92aWRlCisgICAgbGlieG1sLnNvLjA8L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+SSBjYW4ndCBpbnN0YWxsIHRoZSBsaWJ4bWwoMikgUlBNIHBhY2thZ2UgZHVlIHRvIGZhaWxlZAorICAgIGRlcGVuZGVuY2llczwvZW0+CisgICAgPHA+VGhlIG1vc3QgZ2VuZXJpYyBzb2x1dGlvbiBpcyB0byByZS1mZXRjaCB0aGUgbGF0ZXN0IHNyYy5ycG0gLCBhbmQKKyAgICByZWJ1aWxkIGl0IGxvY2FsbHkgd2l0aDwvcD4KKyAgICA8cD48Y29kZT5ycG0gLS1yZWJ1aWxkIGxpYnhtbCgyKS14eHguc3JjLnJwbTwvY29kZT4uPC9wPgorICAgIDxwPklmIGV2ZXJ5dGhpbmcgZ29lcyB3ZWxsIGl0IHdpbGwgZ2VuZXJhdGUgdHdvIGJpbmFyeSBycG0gcGFja2FnZXMgKG9uZQorICAgIHByb3ZpZGluZyB0aGUgc2hhcmVkIGxpYnMgYW5kIHhtbGxpbnQsIGFuZCB0aGUgb3RoZXIgb25lLCB0aGUgLWRldmVsCisgICAgcGFja2FnZSwgcHJvdmlkaW5nIGluY2x1ZGVzLCBzdGF0aWMgbGlicmFyaWVzIGFuZCBzY3JpcHRzIG5lZWRlZCB0byBidWlsZAorICAgIGFwcGxpY2F0aW9ucyB3aXRoIGxpYnhtbCgyKSkgdGhhdCB5b3UgY2FuIGluc3RhbGwgbG9jYWxseS48L3A+CisgIDwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iQ29tcGlsYXRpbyI+Q29tcGlsYXRpb248L2E+PC9oMz4KKzxvbD4KKyAgPGxpPjxlbT5XaGF0IGlzIHRoZSBwcm9jZXNzIHRvIGNvbXBpbGUgbGlieG1sMiA/PC9lbT4KKyAgICA8cD5BcyBtb3N0IFVOSVggbGlicmFyaWVzIGxpYnhtbDIgZm9sbG93cyB0aGUgInN0YW5kYXJkIjo8L3A+CisgICAgPHA+PGNvZGU+Z3VuemlwIC1jIHh4eC50YXIuZ3ogfCB0YXIgeHZmIC08L2NvZGU+PC9wPgorICAgIDxwPjxjb2RlPmNkIGxpYnhtbC14eHh4PC9jb2RlPjwvcD4KKyAgICA8cD48Y29kZT4uL2NvbmZpZ3VyZSAtLWhlbHA8L2NvZGU+PC9wPgorICAgIDxwPnRvIHNlZSB0aGUgb3B0aW9ucywgdGhlbiB0aGUgY29tcGlsYXRpb24vaW5zdGFsbGF0aW9uIHByb3BlcjwvcD4KKyAgICA8cD48Y29kZT4uL2NvbmZpZ3VyZSBbcG9zc2libGUgb3B0aW9uc108L2NvZGU+PC9wPgorICAgIDxwPjxjb2RlPm1ha2U8L2NvZGU+PC9wPgorICAgIDxwPjxjb2RlPm1ha2UgaW5zdGFsbDwvY29kZT48L3A+CisgICAgPHA+QXQgdGhhdCBwb2ludCB5b3UgbWF5IGhhdmUgdG8gcmVydW4gbGRjb25maWcgb3IgYSBzaW1pbGFyIHV0aWxpdHkgdG8KKyAgICB1cGRhdGUgeW91ciBsaXN0IG9mIGluc3RhbGxlZCBzaGFyZWQgbGlicy48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+V2hhdCBvdGhlciBsaWJyYXJpZXMgYXJlIG5lZWRlZCB0byBjb21waWxlL2luc3RhbGwgbGlieG1sMiA/PC9lbT4KKyAgICA8cD5MaWJ4bWwyIGRvZXMgbm90IHJlcXVpcmUgYW55IG90aGVyIGxpYnJhcnksIHRoZSBub3JtYWwgQyBBTlNJIEFQSQorICAgIHNob3VsZCBiZSBzdWZmaWNpZW50IChwbGVhc2UgcmVwb3J0IGFueSB2aW9sYXRpb24gdG8gdGhpcyBydWxlIHlvdSBtYXkKKyAgICBmaW5kKS48L3A+CisgICAgPHA+SG93ZXZlciBpZiBmb3VuZCBhdCBjb25maWd1cmF0aW9uIHRpbWUgbGlieG1sMiB3aWxsIGRldGVjdCBhbmQgdXNlIHRoZQorICAgIGZvbGxvd2luZyBsaWJzOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5pbmZvLXppcC5vcmcvcHViL2luZm96aXAvemxpYi8iPmxpYno8L2E+IDogYQorICAgICAgICBoaWdobHkgcG9ydGFibGUgYW5kIGF2YWlsYWJsZSB3aWRlbHkgY29tcHJlc3Npb24gbGlicmFyeS48L2xpPgorICAgICAgPGxpPmljb252OiBhIHBvd2VyZnVsIGNoYXJhY3RlciBlbmNvZGluZyBjb252ZXJzaW9uIGxpYnJhcnkuIEl0IGlzCisgICAgICAgIGluY2x1ZGVkIGJ5IGRlZmF1bHQgaW4gcmVjZW50IGdsaWJjIGxpYnJhcmllcywgc28gaXQgZG9lc24ndCBuZWVkIHRvCisgICAgICAgIGJlIGluc3RhbGxlZCBzcGVjaWZpY2FsbHkgb24gTGludXguIEl0IG5vdyBzZWVtcyBhIDxhCisgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cub3Blbm5jLm9yZy9vbmxpbmVwdWJzLzc5MDg3OTkveHNoL2ljb252Lmh0bWwiPnBhcnQKKyAgICAgICAgb2YgdGhlIG9mZmljaWFsIFVOSVg8L2E+IHNwZWNpZmljYXRpb24uIEhlcmUgaXMgb25lIDxhCisgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJpY29udi8iPmltcGxlbWVudGF0aW9uIG9mIHRoZQorICAgICAgICBsaWJyYXJ5PC9hPiB3aGljaCBzb3VyY2UgY2FuIGJlIGZvdW5kIDxhCisgICAgICAgIGhyZWY9ImZ0cDovL2Z0cC5pbG9nLmZyL3B1Yi9Vc2Vycy9oYWlibGUvZ251LyI+aGVyZTwvYT4uPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8cD48L3A+CisgIDxsaT48ZW0+TWFrZSBjaGVjayBmYWlscyBvbiBzb21lIHBsYXRmb3JtczwvZW0+CisgICAgPHA+U29tZXRpbWVzIHRoZSByZWdyZXNzaW9uIHRlc3RzJyByZXN1bHRzIGRvbid0IGNvbXBsZXRlbHkgbWF0Y2ggdGhlCisgICAgdmFsdWUgcHJvZHVjZWQgYnkgdGhlIHBhcnNlciwgYW5kIHRoZSBtYWtlZmlsZSB1c2VzIGRpZmYgdG8gcHJpbnQgdGhlCisgICAgZGVsdGEuIE9uIHNvbWUgcGxhdGZvcm1zIHRoZSBkaWZmIHJldHVybiBicmVha3MgdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3M7CisgICAgaWYgdGhlIGRpZmYgaXMgc21hbGwgdGhpcyBpcyBwcm9iYWJseSBub3QgYSBzZXJpb3VzIHByb2JsZW0uPC9wPgorICAgIDxwPlNvbWV0aW1lcyAoZXNwZWNpYWxseSBvbiBTb2xhcmlzKSBtYWtlIGNoZWNrcyBmYWlsIGR1ZSB0byBsaW1pdGF0aW9ucworICAgIGluIG1ha2UuIFRyeSB1c2luZyBHTlUtbWFrZSBpbnN0ZWFkLjwvcD4KKyAgPC9saT4KKyAgPGxpPjxlbT5JIHVzZSB0aGUgU1ZOIHZlcnNpb24gYW5kIHRoZXJlIGlzIG5vIGNvbmZpZ3VyZSBzY3JpcHQ8L2VtPgorICAgIDxwPlRoZSBjb25maWd1cmUgc2NyaXB0IChhbmQgb3RoZXIgTWFrZWZpbGVzKSBhcmUgZ2VuZXJhdGVkLiBVc2UgdGhlCisgICAgYXV0b2dlbi5zaCBzY3JpcHQgdG8gcmVnZW5lcmF0ZSB0aGUgY29uZmlndXJlIHNjcmlwdCBhbmQgTWFrZWZpbGVzLAorICAgIGxpa2U6PC9wPgorICAgIDxwPjxjb2RlPi4vYXV0b2dlbi5zaCAtLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1zaGFyZWQ8L2NvZGU+PC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgaGF2ZSB0cm91YmxlcyB3aGVuIHJ1bm5pbmcgbWFrZSB0ZXN0cyB3aXRoIGdjYy0zLjA8L2VtPgorICAgIDxwPkl0IHNlZW1zIHRoZSBpbml0aWFsIHJlbGVhc2Ugb2YgZ2NjLTMuMCBoYXMgYSBwcm9ibGVtIHdpdGggdGhlCisgICAgb3B0aW1pemVyIHdoaWNoIG1pc2NvbXBpbGVzIHRoZSBVUkkgbW9kdWxlLiBQbGVhc2UgdXNlIGFub3RoZXIKKyAgICBjb21waWxlci48L3A+CisgIDwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iRGV2ZWxvcGVyIj5EZXZlbG9wZXI8L2E+IGNvcm5lcjwvaDM+Cis8b2w+CisgIDxsaT48ZW0+VHJvdWJsZXMgY29tcGlsaW5nIG9yIGxpbmtpbmcgcHJvZ3JhbXMgdXNpbmcgbGlieG1sMjwvZW0+CisgICAgPHA+VXN1YWxseSB0aGUgcHJvYmxlbSBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgZ2V0CisgICAgdGhlIHJpZ2h0IGNvbXBpbGF0aW9uIG9yIGxpbmtpbmcgZmxhZ3MuIFRoZXJlIGlzIGEgc21hbGwgc2hlbGwgc2NyaXB0CisgICAgPGNvZGU+eG1sMi1jb25maWc8L2NvZGU+IHdoaWNoIGlzIGluc3RhbGxlZCBhcyBwYXJ0IG9mIGxpYnhtbDIgdXN1YWwKKyAgICBpbnN0YWxsIHByb2Nlc3Mgd2hpY2ggcHJvdmlkZXMgdGhvc2UgZmxhZ3MuIFVzZTwvcD4KKyAgICA8cD48Y29kZT54bWwyLWNvbmZpZyAtLWNmbGFnczwvY29kZT48L3A+CisgICAgPHA+dG8gZ2V0IHRoZSBjb21waWxhdGlvbiBmbGFncyBhbmQ8L3A+CisgICAgPHA+PGNvZGU+eG1sMi1jb25maWcgLS1saWJzPC9jb2RlPjwvcD4KKyAgICA8cD50byBnZXQgdGhlIGxpbmtlciBmbGFncy4gVXN1YWxseSB0aGlzIGlzIGRvbmUgZGlyZWN0bHkgZnJvbSB0aGUKKyAgICBNYWtlZmlsZSBhczo8L3A+CisgICAgPHA+PGNvZGU+Q0ZMQUdTPWB4bWwyLWNvbmZpZyAtLWNmbGFnc2A8L2NvZGU+PC9wPgorICAgIDxwPjxjb2RlPkxJQlM9YHhtbDItY29uZmlnIC0tbGlic2A8L2NvZGU+PC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgd2FudCB0byBpbnN0YWxsIG15IG93biBjb3B5IG9mIGxpYnhtbDIgaW4gbXkgaG9tZSBkaXJlY3RvcnkgYW5kCisgICAgbGluayBteSBwcm9ncmFtcyBhZ2FpbnN0IGl0LCBidXQgaXQgZG9lc24ndCB3b3JrPC9lbT4KKyAgICA8cD5UaGVyZSBhcmUgbWFueSBkaWZmZXJlbnQgd2F5cyB0byBhY2NvbXBsaXNoIHRoaXMuICBIZXJlIGlzIG9uZSB3YXkgdG8KKyAgICBkbyB0aGlzIHVuZGVyIExpbnV4LiAgU3VwcG9zZSB5b3VyIGhvbWUgZGlyZWN0b3J5IGlzIDxjb2RlPi9ob21lL3VzZXIuCisgICAgPC9jb2RlPlRoZW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5DcmVhdGUgYSBzdWJkaXJlY3RvcnksIGxldCdzIGNhbGwgaXQgPGNvZGU+bXl4bWw8L2NvZGU+PC9saT4KKyAgICAgIDxsaT51bnBhY2sgdGhlIGxpYnhtbDIgZGlzdHJpYnV0aW9uIGludG8gdGhhdCBzdWJkaXJlY3Rvcnk8L2xpPgorICAgICAgPGxpPmNoZGlyIGludG8gdGhlIHVucGFja2VkIGRpc3RyaWJ1dGlvbgorICAgICAgICAoPGNvZGU+L2hvbWUvdXNlci9teXhtbC9saWJ4bWwyIDwvY29kZT4pPC9saT4KKyAgICAgIDxsaT5jb25maWd1cmUgdGhlIGxpYnJhcnkgdXNpbmcgdGhlICI8Y29kZT4tLXByZWZpeDwvY29kZT4iIHN3aXRjaCwKKyAgICAgICAgc3BlY2lmeWluZyBhbiBpbnN0YWxsYXRpb24gc3ViZGlyZWN0b3J5IGluCisgICAgICAgIDxjb2RlPi9ob21lL3VzZXIvbXl4bWw8L2NvZGU+LCBlLmcuCisgICAgICAgIDxwPjxjb2RlPi4vY29uZmlndXJlIC0tcHJlZml4IC9ob21lL3VzZXIvbXl4bWwveG1saW5zdDwvY29kZT4ge290aGVyCisgICAgICAgIGNvbmZpZ3VyYXRpb24gb3B0aW9uc308L3A+CisgICAgICA8L2xpPgorICAgICAgPGxpPm5vdyBydW4gPGNvZGU+bWFrZTwvY29kZT4gZm9sbG93ZWQgYnkgPGNvZGU+bWFrZSBpbnN0YWxsPC9jb2RlPjwvbGk+CisgICAgICA8bGk+QXQgdGhpcyBwb2ludCwgdGhlIGluc3RhbGxhdGlvbiBzdWJkaXJlY3RvcnkgY29udGFpbnMgdGhlIGNvbXBsZXRlCisgICAgICAgICJwcml2YXRlIiBpbmNsdWRlIGZpbGVzLCBsaWJyYXJ5IGZpbGVzIGFuZCBiaW5hcnkgcHJvZ3JhbSBmaWxlcyAoZS5nLgorICAgICAgICB4bWxsaW50KSwgbG9jYXRlZCBpbgorICAgICAgICA8cD48Y29kZT4vaG9tZS91c2VyL215eG1sL3htbGluc3QvbGliLAorICAgICAgICAvaG9tZS91c2VyL215eG1sL3htbGluc3QvaW5jbHVkZSA8L2NvZGU+IGFuZCA8Y29kZT4KKyAgICAgICAgL2hvbWUvdXNlci9teXhtbC94bWxpbnN0L2JpbjwvY29kZT48L3A+CisgICAgICAgIHJlc3BlY3RpdmVseS48L2xpPgorICAgICAgPGxpPkluIG9yZGVyIHRvIHVzZSB0aGlzICJwcml2YXRlIiBsaWJyYXJ5LCB5b3Ugc2hvdWxkIGZpcnN0IGFkZCBpdCB0bworICAgICAgICB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgZGVmYXVsdCBQQVRIIChzbyB0aGF0IHlvdXIgb3duIHByaXZhdGUgcHJvZ3JhbQorICAgICAgICBmaWxlcyBzdWNoIGFzIHhtbGxpbnQgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIG5vcm1hbCBzeXN0ZW0KKyAgICAgICAgb25lcykuICBUbyBkbyB0aGlzLCB0aGUgQmFzaCBjb21tYW5kIHdvdWxkIGJlCisgICAgICAgIDxwPjxjb2RlPmV4cG9ydCBQQVRIPS9ob21lL3VzZXIvbXl4bWwveG1saW5zdC9iaW46JFBBVEg8L2NvZGU+PC9wPgorICAgICAgPC9saT4KKyAgICAgIDxsaT5Ob3cgc3VwcG9zZSB5b3UgaGF2ZSBhIHByb2dyYW0gPGNvZGU+dGVzdDEuYzwvY29kZT4gdGhhdCB5b3Ugd291bGQKKyAgICAgICAgbGlrZSB0byBjb21waWxlIHdpdGggeW91ciAicHJpdmF0ZSIgbGlicmFyeS4gIFNpbXBseSBjb21waWxlIGl0IHVzaW5nCisgICAgICAgIHRoZSBjb21tYW5kCisgICAgICAgIDxwPjxjb2RlPmdjYyBgeG1sMi1jb25maWcgLS1jZmxhZ3MgLS1saWJzYCAtbyB0ZXN0IHRlc3QuYzwvY29kZT48L3A+CisgICAgICAgIE5vdGUgdGhhdCwgYmVjYXVzZSB5b3VyIFBBVEggaGFzIGJlZW4gc2V0IHdpdGggPGNvZGU+CisgICAgICAgIC9ob21lL3VzZXIvbXl4bWwveG1saW5zdC9iaW48L2NvZGU+IGF0IHRoZSBiZWdpbm5pbmcsIHRoZSB4bWwyLWNvbmZpZworICAgICAgICBwcm9ncmFtIHdoaWNoIHlvdSBqdXN0IGluc3RhbGxlZCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgc3lzdGVtCisgICAgICAgIGRlZmF1bHQgb25lLCBhbmQgdGhpcyB3aWxsIDxlbT5hdXRvbWF0aWNhbGx5PC9lbT4gZ2V0IHRoZSBjb3JyZWN0CisgICAgICAgIGxpYnJhcmllcyBsaW5rZWQgd2l0aCB5b3VyIHByb2dyYW0uPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorCisgIDxwPjwvcD4KKyAgPGxpPjxlbT54bWxEb2NEdW1wKCkgZ2VuZXJhdGVzIG91dHB1dCBvbiBvbmUgbGluZS48L2VtPgorICAgIDxwPkxpYnhtbDIgd2lsbCBub3QgPHN0cm9uZz5pbnZlbnQ8L3N0cm9uZz4gc3BhY2VzIGluIHRoZSBjb250ZW50IG9mIGEKKyAgICBkb2N1bWVudCBzaW5jZSA8c3Ryb25nPmFsbCBzcGFjZXMgaW4gdGhlIGNvbnRlbnQgb2YgYSBkb2N1bWVudCBhcmUKKyAgICBzaWduaWZpY2FudDwvc3Ryb25nPi4gSWYgeW91IGJ1aWxkIGEgdHJlZSBmcm9tIHRoZSBBUEkgYW5kIHdhbnQKKyAgICBpbmRlbnRhdGlvbjo8L3A+CisgICAgPG9sPgorICAgICAgPGxpPnRoZSBjb3JyZWN0IHdheSBpcyB0byBnZW5lcmF0ZSB0aG9zZSB5b3Vyc2VsZiB0b28uPC9saT4KKyAgICAgIDxsaT50aGUgZGFuZ2Vyb3VzIHdheSBpcyB0byBhc2sgbGlieG1sMiB0byBhZGQgdGhvc2UgYmxhbmtzIHRvIHlvdXIKKyAgICAgICAgY29udGVudCA8c3Ryb25nPm1vZGlmeWluZyB0aGUgY29udGVudCBvZiB5b3VyIGRvY3VtZW50IGluIHRoZQorICAgICAgICBwcm9jZXNzPC9zdHJvbmc+LiBUaGUgcmVzdWx0IG1heSBub3QgYmUgd2hhdCB5b3UgZXhwZWN0LiBUaGVyZSBpcworICAgICAgICA8c3Ryb25nPk5PPC9zdHJvbmc+IHdheSB0byBndWFyYW50ZWUgdGhhdCBzdWNoIGEgbW9kaWZpY2F0aW9uIHdvbid0CisgICAgICAgIGFmZmVjdCBvdGhlciBwYXJ0cyBvZiB0aGUgY29udGVudCBvZiB5b3VyIGRvY3VtZW50LiBTZWUgPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbEtlZXBCbGFua3NEZWZhdWx0Ij54bWxLZWVwQmxhbmtzRGVmYXVsdAorICAgICAgICAoKTwvYT4gYW5kIDxhCisgICAgICAgIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwjeG1sU2F2ZUZvcm1hdEZpbGUiPnhtbFNhdmVGb3JtYXRGaWxlCisgICAgICAgICgpPC9hPjwvbGk+CisgICAgPC9vbD4KKyAgPC9saT4KKyAgPHA+PC9wPgorICA8bGk+PGVtPkV4dHJhIG5vZGVzIGluIHRoZSBkb2N1bWVudDo8L2VtPgorICAgIDxwPjxlbT5Gb3IgYW4gWE1MIGZpbGUgYXMgYmVsb3c6PC9lbT48L3A+CisgICAgPHByZT4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKKyZsdDtQTEFOIHhtbG5zPSJodHRwOi8vd3d3LmFyZ3VzLmNhL2F1dG90ZXN0LzEuMC8iJmd0OworJmx0O05PREUgQ29tbUZsYWc9IjAiLyZndDsKKyZsdDtOT0RFIENvbW1GbGFnPSIxIi8mZ3Q7CismbHQ7L1BMQU4mZ3Q7PC9wcmU+CisgICAgPHA+PGVtPmFmdGVyIHBhcnNpbmcgaXQgd2l0aCB0aGUgZnVuY3Rpb24KKyAgICBweG1sRG9jPXhtbFBhcnNlRmlsZSguLi4pOzwvZW0+PC9wPgorICAgIDxwPjxlbT5JIHdhbnQgdG8gdGhlIGdldCB0aGUgY29udGVudCBvZiB0aGUgZmlyc3Qgbm9kZSAobm9kZSB3aXRoIHRoZQorICAgIENvbW1GbGFnPSIwIik8L2VtPjwvcD4KKyAgICA8cD48ZW0+c28gSSBkaWQgaXQgYXMgZm9sbG93aW5nOzwvZW0+PC9wPgorICAgIDxwcmU+eG1sTm9kZVB0ciBwbm9kZTsKK3Bub2RlPXB4bWxEb2MtJmd0O2NoaWxkcmVuLSZndDtjaGlsZHJlbjs8L3ByZT4KKyAgICA8cD48ZW0+YnV0IGl0IGRvZXMgbm90IHdvcmsuIElmIEkgY2hhbmdlIGl0IHRvPC9lbT48L3A+CisgICAgPHByZT5wbm9kZT1weG1sRG9jLSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW4tJmd0O25leHQ7PC9wcmU+CisgICAgPHA+PGVtPnRoZW4gaXQgd29ya3MuICBDYW4gc29tZW9uZSBleHBsYWluIGl0IHRvIG1lLjwvZW0+PC9wPgorICAgIDxwPjwvcD4KKyAgICA8cD5JbiBYTUwgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50IGFyZSBzaWduaWZpY2FudAorICAgIDxzdHJvbmc+aW5jbHVkaW5nIGJsYW5rcyBhbmQgZm9ybWF0dGluZyBsaW5lIGJyZWFrczwvc3Ryb25nPi48L3A+CisgICAgPHA+VGhlIGV4dHJhIG5vZGVzIHlvdSBhcmUgd29uZGVyaW5nIGFib3V0IGFyZSBqdXN0IHRoYXQsIHRleHQgbm9kZXMgd2l0aAorICAgIHRoZSBmb3JtYXR0aW5nIHNwYWNlcyB3aGljaCBhcmUgcGFydCBvZiB0aGUgZG9jdW1lbnQgYnV0IHRoYXQgcGVvcGxlIHRlbmQKKyAgICB0byBmb3JnZXQuIFRoZXJlIGlzIGEgZnVuY3Rpb24gPGEKKyAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbEtlZXBCbGFua3NEZWZhdWx0CisgICAgKCk8L2E+ICB0byByZW1vdmUgdGhvc2UgYXQgcGFyc2UgdGltZSwgYnV0IHRoYXQncyBhbiBoZXVyaXN0aWMsIGFuZCBpdHMKKyAgICB1c2Ugc2hvdWxkIGJlIGxpbWl0ZWQgdG8gY2FzZXMgd2hlcmUgeW91IGFyZSBjZXJ0YWluIHRoZXJlIGlzIG5vCisgICAgbWl4ZWQtY29udGVudCBpbiB0aGUgZG9jdW1lbnQuPC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgZ2V0IGNvbXBpbGF0aW9uIGVycm9ycyBvZiBleGlzdGluZyBjb2RlIGxpa2Ugd2hlbiBhY2Nlc3NpbmcKKyAgICA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gb3IgPHN0cm9uZz5jaGlsZCBmaWVsZHM8L3N0cm9uZz4gb2Ygbm9kZXMuPC9lbT4KKyAgICA8cD5Zb3UgYXJlIGNvbXBpbGluZyBjb2RlIGRldmVsb3BlZCBmb3IgbGlieG1sIHZlcnNpb24gMSBhbmQgdXNpbmcgYQorICAgIGxpYnhtbDIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQuIEVpdGhlciBzd2l0Y2ggYmFjayB0byBsaWJ4bWwgdjEgZGV2ZWwgb3IKKyAgICBldmVuIGJldHRlciBmaXggdGhlIGNvZGUgdG8gY29tcGlsZSB3aXRoIGxpYnhtbDIgKG9yIGJvdGgpIGJ5IDxhCisgICAgaHJlZj0idXBncmFkZS5odG1sIj5mb2xsb3dpbmcgdGhlIGluc3RydWN0aW9uczwvYT4uPC9wPgorICA8L2xpPgorICA8bGk+PGVtPkkgZ2V0IGNvbXBpbGF0aW9uIGVycm9ycyBhYm91dCBub24gZXhpc3RpbmcKKyAgICA8c3Ryb25nPnhtbFJvb3ROb2RlPC9zdHJvbmc+IG9yIDxzdHJvbmc+eG1sQ2hpbGRyZW5Ob2RlPC9zdHJvbmc+CisgICAgZmllbGRzLjwvZW0+CisgICAgPHA+VGhlIHNvdXJjZSBjb2RlIHlvdSBhcmUgdXNpbmcgaGFzIGJlZW4gPGEKKyAgICBocmVmPSJ1cGdyYWRlLmh0bWwiPnVwZ3JhZGVkPC9hPiB0byBiZSBhYmxlIHRvIGNvbXBpbGUgd2l0aCBib3RoIGxpYnhtbAorICAgIGFuZCBsaWJ4bWwyLCBidXQgeW91IG5lZWQgdG8gaW5zdGFsbCBhIG1vcmUgcmVjZW50IHZlcnNpb246CisgICAgbGlieG1sKC1kZXZlbCkgJmd0Oz0gMS44Ljggb3IgbGlieG1sMigtZGV2ZWwpICZndDs9IDIuMS4wPC9wPgorICA8L2xpPgorICA8bGk+PGVtPlJhbmRvbSBjcmFzaGVzIGluIHRocmVhZGVkIGFwcGxpY2F0aW9uczwvZW0+CisgICAgPHA+UmVhZCBhbmQgZm9sbG93IGFsbCBhZHZpY2VzIG9uIHRoZSA8YSBocmVmPSJ0aHJlYWRzLmh0bWwiPnRocmVhZAorICAgIHNhZmV0eTwvYT4gcGFnZSwgYW5kIG1ha2UgMTAwJSBzdXJlIHlvdSBuZXZlciBjYWxsIHhtbENsZWFudXBQYXJzZXIoKQorICAgIHdoaWxlIHRoZSBsaWJyYXJ5IG9yIGFuIFhNTCBkb2N1bWVudCBtaWdodCBzdGlsbCBiZSBpbiB1c2UgYnkgYW5vdGhlcgorICAgIHRocmVhZC48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+VGhlIGV4YW1wbGUgcHJvdmlkZWQgaW4gdGhlIHdlYiBwYWdlIGRvZXMgbm90IGNvbXBpbGUuPC9lbT4KKyAgICA8cD5JdCdzIGhhcmQgdG8gbWFpbnRhaW4gdGhlIGRvY3VtZW50YXRpb24gaW4gc3luYyB3aXRoIHRoZSBjb2RlCisgICAgJmx0O2dyaW4vJmd0OyAuLi48L3A+CisgICAgPHA+Q2hlY2sgdGhlIHByZXZpb3VzIHBvaW50cyAxLyBhbmQgMi8gcmFpc2VkIGJlZm9yZSwgYW5kIHBsZWFzZSBzZW5kCisgICAgcGF0Y2hlcy48L3A+CisgIDwvbGk+CisgIDxsaT48ZW0+V2hlcmUgY2FuIEkgZ2V0IG1vcmUgZXhhbXBsZXMgYW5kIGluZm9ybWF0aW9uIHRoYW4gcHJvdmlkZWQgb24gdGhlCisgICAgd2ViIHBhZ2U/PC9lbT4KKyAgICA8cD5JZGVhbGx5IGEgbGlieG1sMiBib29rIHdvdWxkIGJlIG5pY2UuIEkgaGF2ZSBubyBzdWNoIHBsYW4gLi4uIEJ1dCB5b3UKKyAgICBjYW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5jaGVjayBtb3JlIGRlZXBseSB0aGUgPGEgaHJlZj0iaHRtbC9saWJ4bWwtbGliLmh0bWwiPmV4aXN0aW5nCisgICAgICAgIGdlbmVyYXRlZCBkb2M8L2E+PC9saT4KKyAgICAgIDxsaT5oYXZlIGEgbG9vayBhdCA8YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIj50aGUgc2V0IG9mCisgICAgICAgIGV4YW1wbGVzPC9hPi48L2xpPgorICAgICAgPGxpPmxvb2sgZm9yIGV4YW1wbGVzIG9mIHVzZSBmb3IgbGlieG1sMiBmdW5jdGlvbiB1c2luZyB0aGUgR25vbWUgY29kZQorICAgICAgICAgIG9yIGJ5IGFza2luZyBvbiBHb29nbGUuPC9saT4KKyAgICAgIDxsaT48YQorICAgICAgICBocmVmPSJodHRwOi8vc3ZuLmdub21lLm9yZy92aWV3dmMvbGlieG1sMi90cnVuay8iPkJyb3dzZQorICAgICAgICB0aGUgbGlieG1sMiBzb3VyY2U8L2E+ICwgSSB0cnkgdG8gd3JpdGUgY29kZSBhcyBjbGVhbiBhbmQgZG9jdW1lbnRlZAorICAgICAgICBhcyBwb3NzaWJsZSwgc28gbG9va2luZyBhdCBpdCBtYXkgYmUgaGVscGZ1bC4gSW4gcGFydGljdWxhciB0aGUgY29kZQorICAgICAgICBvZiA8YSBocmVmPSJodHRwOi8vc3ZuLmdub21lLm9yZy92aWV3dmMvbGlieG1sMi90cnVuay94bWxsaW50LmM/dmlldz1tYXJrdXAiPnhtbGxpbnQuYzwvYT4gYW5kIG9mIHRoZSB2YXJpb3VzIHRlc3RYWFguYyB0ZXN0IHByb2dyYW1zIHNob3VsZAorICAgICAgICBwcm92aWRlIGdvb2QgZXhhbXBsZXMgb2YgaG93IHRvIGRvIHRoaW5ncyB3aXRoIHRoZSBsaWJyYXJ5LjwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPHA+PC9wPgorICA8bGk+PGVtPldoYXQgYWJvdXQgQysrID88L2VtPgorICAgIDxwPmxpYnhtbDIgaXMgd3JpdHRlbiBpbiBwdXJlIEMgaW4gb3JkZXIgdG8gYWxsb3cgZWFzeSByZXVzZSBvbiBhIG51bWJlcgorICAgIG9mIHBsYXRmb3JtcywgaW5jbHVkaW5nIGVtYmVkZGVkIHN5c3RlbXMuIEkgZG9uJ3QgaW50ZW5kIHRvIGNvbnZlcnQgdG8KKyAgICBDKysuPC9wPgorICAgIDxwPlRoZXJlIGlzIGhvd2V2ZXIgYSBDKysgd3JhcHBlciB3aGljaCBtYXkgZnVsZmlsbCB5b3VyIG5lZWRzOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YnkgQXJpIEpvaG5zb24gJmx0O2FyaUBidGlnYXRlLmNvbSZndDs6CisgICAgICAgIDxwPldlYnNpdGU6IDxhCisgICAgICAgIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5odHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LzwvYT48L3A+CisgICAgICAgIDxwPkRvd25sb2FkOiA8YQorICAgICAgICBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3Qvc2hvd2ZpbGVzLnBocD9ncm91cF9pZD0xMjk5OSI+aHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3Nob3dmaWxlcy5waHA/Z3JvdXBfaWQ9MTI5OTk8L2E+PC9wPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGVtPkhvdyB0byB2YWxpZGF0ZSBhIGRvY3VtZW50IGEgcG9zdGVyaW9yaSA/PC9lbT4KKyAgICA8cD5JdCBpcyBwb3NzaWJsZSB0byB2YWxpZGF0ZSBkb2N1bWVudHMgd2hpY2ggaGFkIG5vdCBiZWVuIHZhbGlkYXRlZCBhdAorICAgIGluaXRpYWwgcGFyc2luZyB0aW1lIG9yIGRvY3VtZW50cyB3aGljaCBoYXZlIGJlZW4gYnVpbHQgZnJvbSBzY3JhdGNoCisgICAgdXNpbmcgdGhlIEFQSS4gVXNlIHRoZSA8YQorICAgIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC12YWxpZC5odG1sI3htbFZhbGlkYXRlRHRkIj54bWxWYWxpZGF0ZUR0ZCgpPC9hPgorICAgIGZ1bmN0aW9uLiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNpbXBseSBhZGQgYSBEVEQgdG8gYW4gZXhpc3RpbmcKKyAgICBkb2N1bWVudDo8L3A+CisgICAgPHByZT54bWxEb2NQdHIgZG9jOyAvKiB5b3VyIGV4aXN0aW5nIGRvY3VtZW50ICovCit4bWxEdGRQdHIgZHRkID0geG1sUGFyc2VEVEQoTlVMTCwgZmlsZW5hbWVfb2ZfZHRkKTsgLyogcGFyc2UgdGhlIERURCAqLworCisgICAgICAgIGR0ZC0mZ3Q7bmFtZSA9IHhtbFN0ckR1cCgoeG1sQ2hhciopInJvb3RfbmFtZSIpOyAvKiB1c2UgdGhlIGdpdmVuIHJvb3QgKi8KKworICAgICAgICBkb2MtJmd0O2ludFN1YnNldCA9IGR0ZDsKKyAgICAgICAgaWYgKGRvYy0mZ3Q7Y2hpbGRyZW4gPT0gTlVMTCkgeG1sQWRkQ2hpbGQoKHhtbE5vZGVQdHIpZG9jLCAoeG1sTm9kZVB0cilkdGQpOworICAgICAgICBlbHNlIHhtbEFkZFByZXZTaWJsaW5nKGRvYy0mZ3Q7Y2hpbGRyZW4sICh4bWxOb2RlUHRyKWR0ZCk7CisgICAgICAgICAgPC9wcmU+CisgIDwvbGk+CisgIDxsaT48ZW0+U28gd2hhdCBpcyB0aGlzIGZ1bmt5ICJ4bWxDaGFyIiB1c2VkIGFsbCB0aGUgdGltZT88L2VtPgorICAgIDxwPkl0IGlzIGEgbnVsbCB0ZXJtaW5hdGVkIHNlcXVlbmNlIG9mIHV0Zi04IGNoYXJhY3RlcnMuIEFuZCBvbmx5IHV0Zi04IQorICAgIFlvdSBuZWVkIHRvIGNvbnZlcnQgc3RyaW5ncyBlbmNvZGVkIGluIGRpZmZlcmVudCB3YXlzIHRvIHV0Zi04IGJlZm9yZQorICAgIHBhc3NpbmcgdGhlbSB0byB0aGUgQVBJLiAgVGhpcyBjYW4gYmUgYWNjb21wbGlzaGVkIHdpdGggdGhlIGljb252IGxpYnJhcnkKKyAgICBmb3IgaW5zdGFuY2UuPC9wPgorICA8L2xpPgorICA8bGk+ZXRjIC4uLjwvbGk+Cis8L29sPgorCis8cD48L3A+CisKKzxoMj48YSBuYW1lPSJEb2N1bWVudGF0Ij5EZXZlbG9wZXIgTWVudTwvYT48L2gyPgorCis8cD5UaGVyZSBhcmUgc2V2ZXJhbCBvbi1saW5lIHJlc291cmNlcyByZWxhdGVkIHRvIHVzaW5nIGxpYnhtbDo8L3A+Cis8b2w+CisgIDxsaT5Vc2UgdGhlIDxhIGhyZWY9InNlYXJjaC5waHAiPnNlYXJjaCBlbmdpbmU8L2E+IHRvIGxvb2sgdXAKKyAgaW5mb3JtYXRpb24uPC9saT4KKyAgPGxpPkNoZWNrIHRoZSA8YSBocmVmPSJGQVEuaHRtbCI+RkFRLjwvYT48L2xpPgorICA8bGk+Q2hlY2sgdGhlIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC1saWIuaHRtbCI+ZXh0ZW5zaXZlCisgICAgZG9jdW1lbnRhdGlvbjwvYT4gYXV0b21hdGljYWxseSBleHRyYWN0ZWQgZnJvbSBjb2RlIGNvbW1lbnRzLjwvbGk+CisgIDxsaT5Mb29rIGF0IHRoZSBkb2N1bWVudGF0aW9uIGFib3V0IDxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPmxpYnhtbAorICAgIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQ8L2E+LjwvbGk+CisgIDxsaT5UaGlzIHBhZ2UgcHJvdmlkZXMgYSBnbG9iYWwgb3ZlcnZpZXcgYW5kIDxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+c29tZQorICAgIGV4YW1wbGVzPC9hPiBvbiBob3cgdG8gdXNlIGxpYnhtbC48L2xpPgorICA8bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCI+Q29kZSBleGFtcGxlczwvYT48L2xpPgorICA8bGk+Sm9obiBGbGVjaydzIGxpYnhtbDIgdHV0b3JpYWw6IDxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPmh0bWw8L2E+CisgICAgb3IgPGEgaHJlZj0idHV0b3JpYWwveG1sdHV0b3JpYWwucGRmIj5wZGY8L2E+LjwvbGk+CisgIDxsaT5JZiB5b3UgbmVlZCB0byBwYXJzZSBsYXJnZSBmaWxlcywgY2hlY2sgdGhlIDxhCisgICAgaHJlZj0ieG1scmVhZGVyLmh0bWwiPnhtbFJlYWRlcjwvYT4gQVBJIHR1dG9yaWFsPC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzpqYW1lc0BkYWEuY29tLmF1Ij5KYW1lcyBIZW5zdHJpZGdlPC9hPiB3cm90ZSA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuZGFhLmNvbS5hdS9+amFtZXMvZ25vbWUveG1sLXNheC94bWwtc2F4Lmh0bWwiPnNvbWUgbmljZQorICAgIGRvY3VtZW50YXRpb248L2E+IGV4cGxhaW5pbmcgaG93IHRvIHVzZSB0aGUgbGlieG1sIFNBWCBpbnRlcmZhY2UuPC9saT4KKyAgPGxpPkdlb3JnZSBMZWJsIHdyb3RlIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy0xMDYuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9saWJyYXJ5L2wtZ25vbWUzLyI+YW4gYXJ0aWNsZQorICAgIGZvciBJQk0gZGV2ZWxvcGVyV29ya3M8L2E+IGFib3V0IHVzaW5nIGxpYnhtbC48L2xpPgorICA8bGk+Q2hlY2sgPGEgaHJlZj0iaHR0cDovL3N2bi5nbm9tZS5vcmcvdmlld3ZjL2xpYnhtbDIvdHJ1bmsvVE9ETz92aWV3PW1hcmt1cCI+dGhlIFRPRE8KKyAgICBmaWxlPC9hPi48L2xpPgorICA8bGk+UmVhZCB0aGUgPGEgaHJlZj0idXBncmFkZS5odG1sIj4xLnggdG8gMi54IHVwZ3JhZGUgcGF0aDwvYT4KKyAgICBkZXNjcmlwdGlvbi4gSWYgeW91IGFyZSBzdGFydGluZyBhIG5ldyBwcm9qZWN0IHVzaW5nIGxpYnhtbCB5b3Ugc2hvdWxkCisgICAgcmVhbGx5IHVzZSB0aGUgMi54IHZlcnNpb24uPC9saT4KKyAgPGxpPkFuZCBkb24ndCBmb3JnZXQgdG8gbG9vayBhdCB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+bWFpbGluZy1saXN0IGFyY2hpdmU8L2E+LjwvbGk+Cis8L29sPgorCis8aDI+PGEgbmFtZT0iUmVwb3J0aW5nIj5SZXBvcnRpbmcgYnVncyBhbmQgZ2V0dGluZyBoZWxwPC9hPjwvaDI+CisKKzxwPldlbGwsIGJ1Z3Mgb3IgbWlzc2luZyBmZWF0dXJlcyBhcmUgYWx3YXlzIHBvc3NpYmxlLCBhbmQgSSB3aWxsIG1ha2UgYQorcG9pbnQgb2YgZml4aW5nIHRoZW0gaW4gYSB0aW1lbHkgZmFzaGlvbi4gVGhlIGJlc3Qgd2F5IHRvIHJlcG9ydCBhIGJ1ZyBpcyB0bwordXNlIHRoZSA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+R25vbWUKK2J1ZyB0cmFja2luZyBkYXRhYmFzZTwvYT4gKG1ha2Ugc3VyZSB0byB1c2UgdGhlICJsaWJ4bWwyIiBtb2R1bGUgbmFtZSkuIEkKK2xvb2sgYXQgcmVwb3J0cyB0aGVyZSByZWd1bGFybHkgYW5kIGl0J3MgZ29vZCB0byBoYXZlIGEgcmVtaW5kZXIgd2hlbiBhIGJ1ZworaXMgc3RpbGwgb3Blbi4gQmUgc3VyZSB0byBzcGVjaWZ5IHRoYXQgdGhlIGJ1ZyBpcyBmb3IgdGhlIHBhY2thZ2UgbGlieG1sMi48L3A+CisKKzxwPkZvciBzbWFsbCBwcm9ibGVtcyB5b3UgY2FuIHRyeSB0byBnZXQgaGVscCBvbiBJUkMsIHRoZSAjeG1sIGNoYW5uZWwgb24KK2lyYy5nbm9tZS5vcmcgKHBvcnQgNjY2NykgdXN1YWxseSBoYXZlIGEgZmV3IHBlcnNvbiBzdWJzY3JpYmVkIHdoaWNoIG1heSBoZWxwCisoYnV0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSBhbmQgaWYgYSByZWFsIGlzc3VlIGlzIHJhaXNlZCBpdCBzaG91bGQgZ28gb24gdGhlCittYWlsaW5nLWxpc3QgZm9yIGFyY2hpdmFsKS48L3A+CisKKzxwPlRoZXJlIGlzIGFsc28gYSBtYWlsaW5nLWxpc3QgPGEKK2hyZWY9Im1haWx0bzp4bWxAZ25vbWUub3JnIj54bWxAZ25vbWUub3JnPC9hPiBmb3IgbGlieG1sLCB3aXRoIGFuICA8YQoraHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPm9uLWxpbmUgYXJjaGl2ZTwvYT4gKDxhCitocmVmPSJodHRwOi8veG1sc29mdC5vcmcvbWVzc2FnZXMiPm9sZDwvYT4pLiBUbyBzdWJzY3JpYmUgdG8gdGhpcyBsaXN0LAorcGxlYXNlIHZpc2l0IHRoZSA8YQoraHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL21haWxtYW4vbGlzdGluZm8veG1sIj5hc3NvY2lhdGVkIFdlYjwvYT4gcGFnZSBhbmQKK2ZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zLiA8c3Ryb25nPkRvIG5vdCBzZW5kIGNvZGUsIEkgd29uJ3QgZGVidWcgaXQ8L3N0cm9uZz4KKyhidXQgcGF0Y2hlcyBhcmUgcmVhbGx5IGFwcHJlY2lhdGVkISkuPC9wPgorCis8cD5QbGVhc2Ugbm90ZSB0aGF0IHdpdGggdGhlIGN1cnJlbnQgYW1vdW50IG9mIHZpcnVzIGFuZCBTUEFNLCBzZW5kaW5nIG1haWwKK3RvIHRoZSBsaXN0IHdpdGhvdXQgYmVpbmcgc3Vic2NyaWJlZCB3b24ndCB3b3JrLiBUaGVyZSBpcyAqZmFyIHRvbyBtYW55Citib3VuY2VzKiAoaW4gdGhlIG9yZGVyIG9mIGEgdGhvdXNhbmQgYSBkYXkgISkgSSBjYW5ub3QgYXBwcm92ZSB0aGVtIG1hbnVhbGx5Cithbnltb3JlLiBJZiB5b3VyIG1haWwgdG8gdGhlIGxpc3QgYm91bmNlZCB3YWl0aW5nIGZvciBhZG1pbmlzdHJhdG9yIGFwcHJvdmFsLAoraXQgaXMgTE9TVCAhIFJlcG9zdCBpdCBhbmQgZml4IHRoZSBwcm9ibGVtIHRyaWdnZXJpbmcgdGhlIGVycm9yLiBBbHNvIHBsZWFzZQorbm90ZSB0aGF0IDxzcGFuIHN0eWxlPSJjb2xvcjogI0ZGMDAwMDsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiI+ZW1haWxzIHdpdGgKK2EgbGVnYWwgd2FybmluZyBhc2tpbmcgdG8gbm90IGNvcHkgb3IgcmVkaXN0cmlidXRlIGZyZWVseSB0aGUgaW5mb3JtYXRpb24KK3RoZXkgY29udGFpbjwvc3Bhbj4gYXJlIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFjY2VwdGFibGUgZm9yIHRoZSBtYWlsaW5nLWxpc3QsCitzdWNoIG1haWwgd2lsbCBhcyBtdWNoIGFzIHBvc3NpYmxlIGJlIGRpc2NhcmRlZCBhdXRvbWF0aWNhbGx5LCBhbmQgYXJlIGxlc3MKK2xpa2VseSB0byBiZSBhbnN3ZXJlZCBpZiB0aGV5IG1hZGUgaXQgdG8gdGhlIGxpc3QsIDxzdHJvbmc+RE8gTk9UPC9zdHJvbmc+Citwb3N0IHRvIHRoZSBsaXN0IGZyb20gYW4gZW1haWwgYWRkcmVzcyB3aGVyZSBzdWNoIGxlZ2FsIHJlcXVpcmVtZW50cyBhcmUKK2F1dG9tYXRpY2FsbHkgYWRkZWQsIGdldCBwcml2YXRlIHBheWluZyBzdXBwb3J0IGlmIHlvdSBjYW4ndCBzaGFyZQoraW5mb3JtYXRpb24uPC9wPgorCis8cD5DaGVjayB0aGUgZm9sbG93aW5nIDxzdHJvbmc+PHNwYW4gc3R5bGU9ImNvbG9yOiAjRkYwMDAwIj5iZWZvcmUKK3Bvc3Rpbmc8L3NwYW4+PC9zdHJvbmc+OjwvcD4KKzx1bD4KKyAgPGxpPlJlYWQgdGhlIDxhIGhyZWY9IkZBUS5odG1sIj5GQVE8L2E+IGFuZCA8YSBocmVmPSJzZWFyY2gucGhwIj51c2UgdGhlCisgICAgc2VhcmNoIGVuZ2luZTwvYT4gdG8gZ2V0IGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8geW91ciBwcm9ibGVtLjwvbGk+CisgIDxsaT5NYWtlIHN1cmUgeW91IGFyZSA8YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy9saWJ4bWwyLyI+dXNpbmcgYSByZWNlbnQKKyAgICB2ZXJzaW9uPC9hPiwgYW5kIHRoYXQgdGhlIHByb2JsZW0gc3RpbGwgc2hvd3MgdXAgaW4gYSByZWNlbnQgdmVyc2lvbi48L2xpPgorICA8bGk+Q2hlY2sgdGhlIDxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5saXN0CisgICAgYXJjaGl2ZXM8L2E+IHRvIHNlZSBpZiB0aGUgcHJvYmxlbSB3YXMgcmVwb3J0ZWQgYWxyZWFkeS4gSW4gdGhpcyBjYXNlCisgICAgdGhlcmUgaXMgcHJvYmFibHkgYSBmaXggYXZhaWxhYmxlLCBzaW1pbGFybHkgY2hlY2sgdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPnJlZ2lzdGVyZWQKKyAgICBvcGVuIGJ1Z3M8L2E+LjwvbGk+CisgIDxsaT5NYWtlIHN1cmUgeW91IGNhbiByZXByb2R1Y2UgdGhlIGJ1ZyB3aXRoIHhtbGxpbnQgb3Igb25lIG9mIHRoZSB0ZXN0CisgICAgcHJvZ3JhbXMgZm91bmQgaW4gc291cmNlIGluIHRoZSBkaXN0cmlidXRpb24uPC9saT4KKyAgPGxpPlBsZWFzZSBzZW5kIHRoZSBjb21tYW5kIHNob3dpbmcgdGhlIGVycm9yIGFzIHdlbGwgYXMgdGhlIGlucHV0IChhcyBhbgorICAgIGF0dGFjaG1lbnQpPC9saT4KKzwvdWw+CisKKzxwPlRoZW4gc2VuZCB0aGUgYnVnIHdpdGggYXNzb2NpYXRlZCBpbmZvcm1hdGlvbiB0byByZXByb2R1Y2UgaXQgdG8gdGhlIDxhCitocmVmPSJtYWlsdG86eG1sQGdub21lLm9yZyI+eG1sQGdub21lLm9yZzwvYT4gbGlzdDsgaWYgaXQncyByZWFsbHkgbGlieG1sCityZWxhdGVkIEkgd2lsbCBhcHByb3ZlIGl0LiBQbGVhc2UgZG8gbm90IHNlbmQgbWFpbCB0byBtZSBkaXJlY3RseSwgaXQgbWFrZXMKK3RoaW5ncyByZWFsbHkgaGFyZCB0byB0cmFjayBhbmQgaW4gc29tZSBjYXNlcyBJIGFtIG5vdCB0aGUgYmVzdCBwZXJzb24gdG8KK2Fuc3dlciBhIGdpdmVuIHF1ZXN0aW9uLCBhc2sgb24gdGhlIGxpc3QuPC9wPgorCis8cD5UbyA8c3BhbiBzdHlsZT0iY29sb3I6ICNFNTAwMDAiPmJlIHJlYWxseSBjbGVhciBhYm91dCBzdXBwb3J0PC9zcGFuPjo8L3A+Cis8dWw+CisgIDxsaT5TdXBwb3J0IG9yIGhlbHAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjRTUwMDAwIj5yZXF1ZXN0cyBNVVNUIGJlIHNlbnQgdG8KKyAgICB0aGUgbGlzdCBvciBvbiBidWd6aWxsYTwvc3Bhbj4gaW4gY2FzZSBvZiBwcm9ibGVtcywgc28gdGhhdCB0aGUgUXVlc3Rpb24KKyAgICBhbmQgQW5zd2VycyBjYW4gYmUgc2hhcmVkIHB1YmxpY2x5LiBGYWlsaW5nIHRvIGRvIHNvIGNhcnJpZXMgdGhlIGltcGxpY2l0CisgICAgbWVzc2FnZSAiSSB3YW50IGZyZWUgc3VwcG9ydCBidXQgSSBkb24ndCB3YW50IHRvIHNoYXJlIHRoZSBiZW5lZml0cyB3aXRoCisgICAgb3RoZXJzIiBhbmQgaXMgbm90IHdlbGNvbWUuIEkgd2lsbCBhdXRvbWF0aWNhbGx5IENhcmJvbi1Db3B5IHRoZQorICAgIHhtbEBnbm9tZS5vcmcgbWFpbGluZyBsaXN0IGZvciBhbnkgdGVjaG5pY2FsIHJlcGx5IG1hZGUgYWJvdXQgbGlieG1sMiBvcgorICAgIGxpYnhzbHQuPC9saT4KKyAgPGxpPlRoZXJlIGlzIDxzcGFuIHN0eWxlPSJjb2xvcjogI0U1MDAwMCI+bm8gZ3VhcmFudGVlIG9mIHN1cHBvcnQ8L3NwYW4+LiBJZgorICAgIHlvdXIgcXVlc3Rpb24gcmVtYWlucyB1bmFuc3dlcmVkIGFmdGVyIGEgd2VlaywgcmVwb3N0IGl0LCBtYWtpbmcgc3VyZSB5b3UKKyAgICBnYXZlIGFsbCB0aGUgZGV0YWlsIG5lZWRlZCBhbmQgdGhlIGluZm9ybWF0aW9uIHJlcXVlc3RlZC48L2xpPgorICA8bGk+RmFpbGluZyB0byBwcm92aWRlIGluZm9ybWF0aW9uIGFzIHJlcXVlc3RlZCBvciBkb3VibGUgY2hlY2tpbmcgZmlyc3QKKyAgICBmb3IgcHJpb3IgZmVlZGJhY2sgYWxzbyBjYXJyaWVzIHRoZSBpbXBsaWNpdCBtZXNzYWdlICJ0aGUgdGltZSBvZiB0aGUKKyAgICBsaWJyYXJ5IG1haW50YWluZXJzIGlzIGxlc3MgdmFsdWFibGUgdGhhbiBteSB0aW1lIiBhbmQgbWlnaHQgbm90IGJlCisgICAgd2VsY29tZS48L2xpPgorPC91bD4KKworPHA+T2YgY291cnNlLCBidWdzIHJlcG9ydGVkIHdpdGggYSBzdWdnZXN0ZWQgcGF0Y2ggZm9yIGZpeGluZyB0aGVtIHdpbGwKK3Byb2JhYmx5IGJlIHByb2Nlc3NlZCBmYXN0ZXIgdGhhbiB0aG9zZSB3aXRob3V0LjwvcD4KKworPHA+SWYgeW91J3JlIGxvb2tpbmcgZm9yIGhlbHAsIGEgcXVpY2sgbG9vayBhdCA8YQoraHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPnRoZSBsaXN0IGFyY2hpdmU8L2E+IG1heSBhY3R1YWxseQorcHJvdmlkZSB0aGUgYW5zd2VyLiBJIHVzdWFsbHkgc2VuZCBzb3VyY2Ugc2FtcGxlcyB3aGVuIGFuc3dlcmluZyBsaWJ4bWwyCit1c2FnZSBxdWVzdGlvbnMuIFRoZSA8YQoraHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvYm9vazEuaHRtbCI+YXV0by1nZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbjwvYT4gaXMKK25vdCBhcyBwb2xpc2hlZCBhcyBJIHdvdWxkIGxpa2UgKGkgbmVlZCB0byBsZWFybiBtb3JlIGFib3V0IERvY0Jvb2spLCBidXQKK2l0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LjwvcD4KKworPGgyPjxhIG5hbWU9ImhlbHAiPkhvdyB0byBoZWxwPC9hPjwvaDI+CisKKzxwPllvdSBjYW4gaGVscCB0aGUgcHJvamVjdCBpbiB2YXJpb3VzIHdheXMsIHRoZSBiZXN0IHRoaW5nIHRvIGRvIGZpcnN0IGlzIHRvCitzdWJzY3JpYmUgdG8gdGhlIG1haWxpbmctbGlzdCBhcyBleHBsYWluZWQgYmVmb3JlLCBjaGVjayB0aGUgPGEKK2hyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5hcmNoaXZlcyA8L2E+YW5kIHRoZSA8YQoraHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkdub21lIGJ1ZworZGF0YWJhc2U8L2E+OjwvcD4KKzxvbD4KKyAgPGxpPlByb3ZpZGUgcGF0Y2hlcyB3aGVuIHlvdSBmaW5kIHByb2JsZW1zLjwvbGk+CisgIDxsaT5Qcm92aWRlIHRoZSBkaWZmcyB3aGVuIHlvdSBwb3J0IGxpYnhtbDIgdG8gYSBuZXcgcGxhdGZvcm0uIFRoZXkgbWF5IG5vdAorICAgIGJlIGludGVncmF0ZWQgaW4gYWxsIGNhc2VzIGJ1dCBoZWxwIHBpbnBvaW50aW5nIHBvcnRhYmlsaXR5IHByb2JsZW1zCisgIGFuZDwvbGk+CisgIDxsaT5Qcm92aWRlIGRvY3VtZW50YXRpb24gZml4ZXMgKGVpdGhlciBhcyBwYXRjaGVzIHRvIHRoZSBjb2RlIGNvbW1lbnRzIG9yCisgICAgYXMgSFRNTCBkaWZmcykuPC9saT4KKyAgPGxpPlByb3ZpZGUgbmV3IGRvY3VtZW50YXRpb25zIHBpZWNlcyAodHJhbnNsYXRpb25zLCBleGFtcGxlcywgZXRjCisgIC4uLikuPC9saT4KKyAgPGxpPkNoZWNrIHRoZSBUT0RPIGZpbGUgYW5kIHRyeSB0byBjbG9zZSBvbmUgb2YgdGhlIGl0ZW1zLjwvbGk+CisgIDxsaT5UYWtlIG9uZSBvZiB0aGUgcG9pbnRzIHJhaXNlZCBpbiB0aGUgYXJjaGl2ZSBvciB0aGUgYnVnIGRhdGFiYXNlIGFuZAorICAgIHByb3ZpZGUgYSBmaXguIDxhIGhyZWY9Im1haWx0bzpkYW5pZWxAdmVpbGxhcmQuY29tIj5HZXQgaW4gdG91Y2ggd2l0aCBtZQorICAgIDwvYT5iZWZvcmUgdG8gYXZvaWQgc3luY2hyb25pemF0aW9uIHByb2JsZW1zIGFuZCBjaGVjayB0aGF0IHRoZSBzdWdnZXN0ZWQKKyAgICBmaXggd2lsbCBmaXQgaW4gbmljZWx5IDotKTwvbGk+Cis8L29sPgorCis8aDI+PGEgbmFtZT0iRG93bmxvYWRzIj5Eb3dubG9hZHM8L2E+PC9oMj4KKworPHA+VGhlIGxhdGVzdCB2ZXJzaW9ucyBvZiBsaWJ4bWwyIGNhbiBiZSBmb3VuZCBvbiB0aGUgPGEKK2hyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvIj54bWxzb2Z0Lm9yZzwvYT4gc2VydmVyICggPGEKK2hyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvIj5GVFA8L2E+IGFuZCByc3luYyBhcmUgYXZhaWxhYmxlKSwgdGhlcmUgYXJlIGFsc28KK21pcnJvcnMgKDxhIGhyZWY9ImZ0cDovL2ZyLnJwbWZpbmQubmV0L3B1Yi9saWJ4bWwvIj5GcmFuY2U8L2E+IGFuZAorQW50b25pbiBTcHJpbnpsIGFsc28gcHJvdmlkZSA8YSBocmVmPSJmdHA6Ly9nZC50dXdpZW4uYWMuYXQvcHViL2xpYnhtbC8iPmEKK21pcnJvciBpbiBBdXN0cmlhPC9hPikuIChOT1RFIHRoYXQgeW91IG5lZWQgYm90aCB0aGUgPGEKK2hyZWY9Imh0dHA6Ly9ycG1maW5kLm5ldC9saW51eC9SUE0vbGlieG1sMi5odG1sIj5saWJ4bWwoMik8L2E+IGFuZCA8YQoraHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L1JQTS9saWJ4bWwyLWRldmVsLmh0bWwiPmxpYnhtbCgyKS1kZXZlbDwvYT4KK3BhY2thZ2VzIGluc3RhbGxlZCB0byBjb21waWxlIGFwcGxpY2F0aW9ucyB1c2luZyBsaWJ4bWwgaWYgdXNpbmcgUlBNcy4pPC9wPgorCis8cD5Zb3UgY2FuIGZpbmQgYWxsIHRoZSBoaXN0b3J5IG9mIGxpYnhtbCgyKSBhbmQgbGlieHNsdCByZWxlYXNlcyBpbiB0aGUgPGEKK2hyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9zb3VyY2VzL29sZC8iPm9sZDwvYT4gZGlyZWN0b3J5LiBUaGUgcHJlY29tcGlsZWQKK1dpbmRvd3MgYmluYXJpZXMgbWFkZSBieSBJZ29yIFpsYXRvdmljIGFyZSBhdmFpbGFibGUgaW4gdGhlIDxhCitocmVmPSJodHRwOi8veG1sc29mdC5vcmcvc291cmNlcy93aW4zMi8iPndpbjMyPC9hPiBkaXJlY3RvcnkuPC9wPgorCis8cD5CaW5hcnkgcG9ydHM6PC9wPgorPHVsPgorICA8bGk+UlBNcyBmb3IgeDg2XzY0IGFyZSBhdmFpbGFibGUgZGlyZWN0bHkgb24gPGEKKyAgICBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy9saWJ4bWwyLyI+eG1sc29mdC5vcmc8L2E+LCB0aGUgc291cmNlIFJQTSB3aWxsIGNvbXBpbGUgb24KKyAgICBhbnkgYXJjaGl0ZWN0dXJlIHN1cHBvcnRlZC48L2xpPgorICA8bGk+PGEgaHJlZj0ibWFpbHRvOmlnb3JAemxhdGtvdmljLmNvbSI+SWdvciBabGF0a292aWM8L2E+IGlzIG5vdyB0aGUKKyAgICBtYWludGFpbmVyIG9mIHRoZSBXaW5kb3dzIHBvcnQsIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC9pbmRleC5odG1sIj5oZSBwcm92aWRlcworICAgIGJpbmFyaWVzPC9hPi48L2xpPgorICA8bGk+T3BlbkNTVyBwcm92aWRlcyA8YQorICAgIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzCisgIGJpbmFyaWVzPC9hPi48L2xpPgorICA8bGk+PGEgaHJlZj0ibWFpbHRvOlN0ZXZlLkJhbGxAZXhwbGFpbi5jb20uYXUiPlN0ZXZlIEJhbGw8L2E+IHByb3ZpZGVzIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjIE9zIFgKKyAgICBiaW5hcmllczwvYT4uPC9saT4KKyAgPGxpPlRoZSBIUC1VWCBwb3J0aW5nIGNlbnRlciBwcm92aWRlcyA8YQorICAgIGhyZWY9Imh0dHA6Ly9ocHV4LmNvbm5lY3Qub3JnLnVrL2hwcGQvaHB1eC9Hbm9tZS8iPkhQLVVYIGJpbmFyaWVzPC9hPjwvbGk+CisgIDxsaT5CdWxsIHByb3ZpZGVzIHByZWNvbXBpbGVkIDxhCisgICAgaHJlZj0iaHR0cDovL2dub21lLmJ1bGxmcmVld2FyZS5jb20vbmV3X2luZGV4Lmh0bWwiPlJQTXMgZm9yIEFJWDwvYT4gYXMKKyAgICBwYXRyIG9mIHRoZWlyIEdOT01FIHBhY2thZ2VzPC9saT4KKzwvdWw+CisKKzxwPklmIHlvdSBrbm93IG90aGVyIHN1cHBvcnRlZCBiaW5hcnkgcG9ydHMsIHBsZWFzZSA8YQoraHJlZj0iaHR0cDovL3ZlaWxsYXJkLmNvbS8iPmNvbnRhY3QgbWU8L2E+LjwvcD4KKworPHA+PGEgbmFtZT0iU25hcHNob3QiPlNuYXBzaG90OjwvYT48L3A+Cis8dWw+CisgIDxsaT5Db2RlIGZyb20gdGhlIEdOT01FIEdJVCBiYXNlIGxpYnhtbDIgbW9kdWxlLCB1cGRhdGVkIGhvdXJseSA8YQorICAgIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvbGlieG1sMi1naXQtc25hcHNob3QudGFyLmd6Ij5saWJ4bWwyLWdpdC1zbmFwc2hvdC50YXIuZ3o8L2E+LjwvbGk+CisgIDxsaT5Eb2NzLCBjb250ZW50IG9mIHRoZSB3ZWIgc2l0ZSwgdGhlIGxpc3QgYXJjaGl2ZSBpbmNsdWRlZCA8YQorICAgIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvbGlieG1sLWRvY3MudGFyLmd6Ij5saWJ4bWwtZG9jcy50YXIuZ3o8L2E+LjwvbGk+Cis8L3VsPgorCis8cD48YSBuYW1lPSJDb250cmlicyI+Q29udHJpYnV0aW9uczo8L2E+PC9wPgorCis8cD5JIGRvIGFjY2VwdCBleHRlcm5hbCBjb250cmlidXRpb25zLCBlc3BlY2lhbGx5IGlmIGNvbXBpbGluZyBvbiBhbm90aGVyCitwbGF0Zm9ybSwgIGdldCBpbiB0b3VjaCB3aXRoIHRoZSBsaXN0IHRvIHVwbG9hZCB0aGUgcGFja2FnZSwgd3JhcHBlcnMgZm9yCit2YXJpb3VzIGxhbmd1YWdlcyBoYXZlIGJlZW4gcHJvdmlkZWQsIGFuZCBjYW4gYmUgZm91bmQgaW4gdGhlIDxhCitocmVmPSJweXRob24uaHRtbCI+YmluZGluZ3Mgc2VjdGlvbjwvYT48L3A+CisKKzxwPkxpYnhtbDIgaXMgYWxzbyBhdmFpbGFibGUgZnJvbSBHSVQ6PC9wPgorPHVsPgorICA8bGk+PHA+U2VlIDxhIGhyZWY9Imh0dHA6Ly9naXQuZ25vbWUub3JnL2NnaXQvbGlieG1sMi8iPmxpYnhtbDIgR2l0IHdlYjwvYT4uCisgICAgICAgICBUbyBjaGVja291dCBhIGxvY2FsIHRyZWUgdXNlOjwvcD4KKyAgICAgICA8cHJlPmdpdCBjbG9uZSBnaXQ6Ly9naXQuZ25vbWUub3JnL2xpYnhtbDI8L3ByZT4KKyAgPC9saT4KKyAgPGxpPlRoZSA8c3Ryb25nPmxpYnhzbHQ8L3N0cm9uZz4gbW9kdWxlIGlzIGFsc28gcHJlc2VudCB0aGVyZTwvbGk+Cis8L3VsPgorCis8aDI+PGEgbmFtZT0iTmV3cyI+UmVsZWFzZXM8L2E+PC9oMj4KKworPHA+SXRlbXMgbm90IGZpbmlzaGVkIGFuZCB3b3JrZWQgb24sIGdldCBpbiB0b3VjaCB3aXRoIHRoZSBsaXN0IGlmIHlvdSB3YW50Cit0byBoZWxwIHRob3NlPC9wPgorPHVsPgorICA8bGk+TW9yZSB0ZXN0aW5nIG9uIFJlbGF4Tkc8L2xpPgorICA8bGk+RmluaXNoaW5nIHVwIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0xLyI+WE1MCisgIFNjaGVtYXM8L2E+PC9saT4KKzwvdWw+CisKKzxwPlRoZSA8YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Y2hhbmdlIGxvZzwvYT4gZGVzY3JpYmVzIHRoZSByZWNlbnRzIGNvbW1pdHMKK3RvIHRoZSA8YSBocmVmPSJodHRwOi8vc3ZuLmdub21lLm9yZy92aWV3dmMvbGlieG1sMi90cnVuay8iPlNWTjwvYT4gY29kZSBiYXNlLjwvcD4KKworPHA+SGVyZSBpcyB0aGUgbGlzdCBvZiBwdWJsaWMgcmVsZWFzZXM6PC9wPgorCis8aDM+Mi43LjY6IE9jdCAgNiAyMDA5PC9oMz4KKzx1bD4KKyAgPGxpPiBCdWcgRml4ZXM6CisgICAgIFJlc3RvcmUgdGhyZWFkIHN1cHBvcnQgaW4gZGVmYXVsdCBjb25maWd1cmF0aW9uIChBbmRyZXcgVy4gTm9zZW5rbyksCisgICAgIFVSSSB3aXRoIG5vIHBhdGggcGFyc2luZyBwcm9ibGVtIChEYW5pZWwgVmVpbGxhcmQpLAorICAgICBNaW5vciBwYXRjaCBmb3IgY29uZGl0aW9uYWwgZGVmaW5lcyBpbiB0aHJlYWRzLmMgKEVyaWMgWnVyY2hlcikKKyAgPC9saT4KKzwvdWw+Cis8aDM+Mi43LjU6IFNlcCAyNCAyMDA5PC9oMz4KKzx1bD4KKyAgPGxpPiBCdWcgRml4ZXM6CisgICAgUmVzdG9yZSBiZWhhdmlvciBvZiAtLXdpdGgtdGhyZWFkcyB3aXRob3V0IGFyZ3VtZW50IChBbmRyZXcgVy4gTm9zZW5rbyksCisgICAgRml4IG1lbW9yeSBsZWFrIHdoZW4gZG9jIGlzIE5VTEwgKFJvYiBSaWNoYXJkcyksCisgICAgNTk1NzkyIGZpeGluZyBhIFJlbGF4TkcgYnVnIGludHJvZHVjZWQgaW4gMi43LjQgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGEgUmVsYXhuZyBidWcgcmFpc2VkIGJ5IGxpYnZpcnQgdGVzdCBzdWl0ZSAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggYSBwYXJzaW5nIHByb2JsZW0gd2l0aCBsaXR0bGUgZGF0YSBhdCBzdGFydHVwIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIGxpbmsgcHl0aG9uIG1vZHVsZSB3aXRoIHB5dGhvbiBsaWJyYXJ5IChGcmVkZXJpYyBDcm96YXQpLAorICAgIDU5NDg3NCBGb3Jnb3QgYW4gZmNsb3NlIGluIHhtbGxpbnQgKERhbmllbCBWZWlsbGFyZCkKKyAgPC9saT4KKyAgPGxpPiBDbGVhbnVwOgorICAgIEFkZGluZyBzeW1ib2xzLnhtbCB0byBFWFRSQV9ESVNUIChEYW5pZWwgVmVpbGxhcmQpCisgIDwvbGk+Cis8L3VsPgorPGgzPjIuNy40OiBTZXAgMTAgMjAwOTwvaDM+Cis8dWw+CisgIDxsaT5JbXByb3ZlbWVudHM6CisgICAgU3dpdGNoIHRvIEdJVCAoR05PTUUpLAorICAgIEFkZCBzeW1ib2wgdmVyc2lvbmluZyB0byBsaWJ4bWwyIHNoYXJlZCBsaWJzIChEYW5pZWwgVmVpbGxhcmQpCisgIDwvbGk+CisgIDxsaT5Qb3J0YWJpbGl0eToKKyAgICA1OTM4NTcgdHJ5IHRvIHdvcmsgYXJvdW5kIHRocmVhZCBwYm0gTWluR1cgNC40IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU5NDI1MCByZW5hbWUgQVRUUklCVVRFX0FMTE9DX1NJWkUgdG8gYXZvaWQgY2xhc2hlcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggV2luZG93cyBidWlsZCAqIHJlbGF4bmcuYzogZml4IHdpbmRvd3MgYnVpbGQgKFJvYiBSaWNoYXJkcyksCisgICAgRml4IHRoZSBnbG9iYWxzLmggdG8gdXNlIFhNTFBVQkZVTiAoUGF1bCBTbWl0aCksCisgICAgUHJvYmxlbSB3aXRoIGV4dGVybiBleHRlcm4gaW4gaGVhZGVyIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEFkZCAtbG5ldHdvcmsgZm9yIGNvbXBpbGluZyBvbiBIYWlrdSAoU2NvdHQgTWNDcmVhcnkpLAorICAgIFJ1bnRlc3QgcG9ydGFiaWxpdHkgcGF0Y2ggZm9yIFNvbGFyaXMgKFRpbSBSaWNlKSwKKyAgICBTbWFsbCBwYXRjaCB0byBhY2NvbW9kYXRlIHRoZSBIYWlrdSBPUyAoU2NvdHQgTWNDcmVhcnkpLAorICAgIDU4NDYwNSBwYWNrYWdlIFZ4V29ya3MgZm9sZGVyIGluIHRoZSBkaXN0cmlidXRpb24gKERhbmllbCBWZWlsbGFyZCksCisgICAgNTc0MDE3IFJlYWxsb2MgdG9vIGV4cGVuc2l2ZSBvbiBtb3N0IHBsYXRmb3JtIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCB3aW5kb3dzIGJ1aWxkIChSb2IgUmljaGFyZHMpLAorICAgIDU0NTU3OSBkb2Vzbid0IGNvbXBpbGUgd2l0aG91dCBzY2hlbWEgc3VwcG9ydCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICB4bWxsaW50IHVzZSB4bWxHZXROb2RlUGF0aCB3aGVuIG5vdCBjb21waWxlZCBpbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBUcnkgdG8gYXZvaWQgX19pbXBfX3htbEZyZWUgbGluayB0cm91YmxlIG9uIG1zeXMgKERhbmllbCBWZWlsbGFyZCksCisgICAgQWxsb3cgdG8gc2VsZWN0IHRoZSB0aHJlYWRpbmcgc3lzdGVtIG9uIFdpbmRvd3MgKExSTiksCisgICAgRml4IFNvbGFyaXMgYmluYXJ5IGxpbmtzLCBjbGVhbnVwcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBCdWcgNTcxMDU5IOKAkyBNU1ZDIGRvZXNuJ3Qgd29yayB3aXRoIHRoZSBiYWtlZmlsZSAoSW50cm9uKSwKKyAgICBmaXggQVRUUklCVVRFX1BSSU5URiBoZWFkZXIgY2xhc2ggKEJlbGdhYm9yIGFuZCBNaWtlIEhvbW1leSksCisgICAgZml4ZXMgZm9yIEJvcmxhbmQvQ29kZUdlYXIvRW1iYXJjYWRlcm8gY29tcGlsZXJzIChFcmljIFp1cmNoZXIpCisgIDwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOgorICAgIDU0NDkxMCB0eXBvOiAicmVuY2lsaWF0ZU5zIiAoTGVvbmlkIEV2ZG9raW1vdiksCisgICAgQWRkIFZ4V29ya3MgdG8gbGlzdCBvZiBPU2VzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIFJlZ2VuZXJhdGUgdGhlIGRvY3VtZW50YXRpb24gYW5kIHVwZGF0ZSBmb3IgZ2l0IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU2MDUyNCDCvyB4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIGRlc2NyaXB0aW9uIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEFkZGVkIHNwb25zb3JpbmcgYnkgQU9FIG1lZGlhIGZvciB0aGUgc2VydmVyIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIHVwZGF0ZWQgVVJMcyBmb3IgR05PTUUgKFZpbmNlbnQgTGVmZXZyZSksCisgICAgbW9yZSB3YXJuaW5ncyBhYm91dCB4bWxDbGVhbnVwVGhyZWFkcyBhbmQgeG1sQ2xlYW51cFBhcnNlciAoRGFuaWVsIFZlaWxsYXJkKQorICA8L2xpPgorICA8bGk+QnVnIGZpeGVzOgorICAgIDU5NDUxNCBtZW1vcnkgbGVha3MgLSBkdXBsaWNhdGUgaW5pdGlhbGl6YXRpb24gKE1PRCksCisgICAgV3JvbmcgYmxvY2sgb3BlbmluZyBpbiBodG1sTm9kZUR1bXBPdXRwdXRJbnRlcm5hbCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA0OTIzMTcgRml4ICBSZWxheC1ORyB2YWxpZGF0aW9uIHByb2JsZW1zIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU1ODQ1MiBmaWdodCB3aXRoIHJlZyB0ZXN0IGFuZCBlcnJvciByZXBvcnQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTU4NDUyIFJORyBjb21waWxhdGlvbiBvZiBvcHRpb25hbCBtdWx0aXBsZSBjaGlsZCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1Nzk3NDYgWFNEIHZhbGlkYXRpb24gbm90IGNvcnJlY3QgLyBuaWxhYmxlIGdyb3VwcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1MDI5NjAgcHJvdmlkZSBuYW1lc3BhY2Ugc3RhY2sgd2hlbiBwYXJzaW5nIGVudGl0eSAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NjYwMTIgcGFydCAyIGZpeCByZWdyZXNpb24gdGVzdHMgYW5kIHB1c2ggbW9kZSAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NjYwMTIgYXV0b2RldGVjdGVkIGVuY29kaW5nIGFuZCBlbmNvZGluZyBjb25mbGljdCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODQyMjAgeHBvaW50ZXIoLykgYW5kIHhpbmNsdWRlIHByb2JsZW1zIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU4NzY2MyBJbmNvcnJlY3QgQXR0cmlidXRlLVZhbHVlIE5vcm1hbGl6YXRpb24gKERhbmllbCBWZWlsbGFyZCksCisgICAgNDQ0OTk0IEhUTUwgY2h1bmtlZCBmYWlsdXJlIGZvciBhdHRyaWJ1dGUgd2l0aCAmbHQ7Jmd0OyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggZW5kIG9mIGJ1ZmZlciBjaGFyIGJlaW5nIHNwbGl0IGluIFhNTCBwYXJzZXIgKERhbmllbCBWZWlsbGFyZCksCisgICAgTm9uIEFTQ0lJIGNoYXJhY3RlciBtYXkgYmUgc3BsaXQgYXQgYnVmZmVyIGVuZCAoQWRpZWwgTWl0dG1hbm4pLAorICAgIDQ0MDIyNiBBZGQgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSBBUEkgKFN0ZWZhbiBCZWhuZWwpLAorICAgIDU3MjEyOSBzcGVlZCB1cCBwYXJzaW5nIG9mIGxhcmdlIEhUTUwgdGV4dCBub2RlcyAoTWFya3VzIEt1bGwpLAorICAgIEZpeCBIVE1MIHBhcnNpbmcgd2l0aCAwIGNoYXJhY3RlciBpbiBDREFUQSAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBGaXggU2V0R2VuZXJpY0Vycm9yRnVuYyBhbmQgU2V0U3RydWN0dXJlZCBjbGFzaCAoV2FuZyBMYW0pLAorICAgIDU2NjAxMiAgSW5jb21wbGV0ZSBFQkNESUMgcGFyc2luZyBzdXBwb3J0IChNYXJ0aW4gS29nbGVyKSwKKyAgICA1NDEzMzUgSFRNTCBhdm9pZCBjcmVhdGluZyAyIGhlYWQgb3IgMiBib2R5IGVsZW1lbnQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTQxMjM3IGVycm9yIGNvcnJlY3RpbmcgbWlzc2luZyBlbmQgdGFncyBpbiBIVE1MIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU4MzQzOSBtaXNzaW5nIGxpbmUgbnVtYmVycyBpbiBwdXNoIG1vZGUgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTg3ODY3IHhtbGxpbnQgLS1odG1sIC0teG1sb3V0IHNlcmlhbGl6aW5nIGFzIEhUTUwgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTU5NTAxIGF2b2lkIHNlbGVjdCBhbmQgdXNlIHBvbGwgZm9yIG5hbm9odHRwIChSYXBoYWVsIFByZXZvc3QpLAorICAgIDU1OTQxMCAtICBSZWdleHAgYnVnIG9uICguLi4pPyBjb25zdHJ1Y3RzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBhIHNtYWxsIHByb2JsZW0gb24gcHJldmlvdXMgSFRNTCBwYXJzZXIgcGF0Y2ggKERhbmllbCBWZWlsbGFyZCksCisgICAgNTkyNDMwIC0gIEhUTUwgcGFyc2VyIHJ1bnMgaW50byBlbmRsZXNzIGxvb3AgKERhbmllbCBWZWlsbGFyZCksCisgICAgNDQ3ODk5IHBvdGVudGlhbCBkb3VibGUgZnJlZSBpbiB4bWxGcmVlVGV4dFJlYWRlciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA0NDY2MTMgc21hbGwgdmFsaWRhdGlvbiBidWcgbWl4ZWQgY29udGVudCB3aXRoIE5TIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCB0aGUgcHJvYmxlbSBvZiByZXZhbGlkYXRpbmcgYSBkb2Mgd2l0aCBSTkcgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IHhtbEtlZXBCbGFua3NEZWZhdWx0IHRvIG5vdCBicmVhayBpbmRlbnQgKE5pY2sgV2VsbG5ob2ZlciksCisgICAgNTEyMTMxIHJlZnMgZnJvbSBleHRlcm5hbFJlZiBwYXJ0IG5lZWQgdG8gYmUgYWRkZWQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTEyMTMxIGNyYXNoIGluIHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50IChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU4ODQ0MSBhbGxvdyAnLicgaW4gSFRNTCBOYW1lcyBldmVuIGlmIGludmFsaWQgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTgyOTEzIEZpeCBodG1sU2V0TWV0YUVuY29kaW5nKCkgdG8gYmUgbmljZXIgKERhbmllbCBWZWlsbGFyZCksCisgICAgNTc5MzE3IFRyeSB0byBmaW5kIHRoZSBIVE1MIGVuY29kaW5nIGluZm9ybWF0aW9uIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU3NTg3NSBkb24ndCBvdXRwdXQgY2hhcnNldD1odG1sIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU3MTI3MSBmaXggc2VtYW50aWMgb2YgeHNkOmFsbCB3aXRoIG1pbk9jY3Vycz0wIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU3MDcwMiBmaXggYSBidWcgaW4gcmVnZXhwIGRldGVybWluaXNtIGNoZWNraW5nIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU2NzYxOSB4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlIG1pc3NpbmcgcGFyYW0gdGVzdCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NzQzOTMgwr8gdXRmLTggZmlsZW5hbWUgbWFnaWMgZm9yIGNvbXByZXNzZWQgZmlsZXMgKEhhbnMgQnJldWVyKSwKKyAgICBGaXggYSBjb3VwbGUgb2YgcHJvYmxlbXMgaW4gdGhlIHBhcnNlciAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1ODU1MDUgwr8gRG9jdW1lbnQgaWRzIGFuZCByZWZzIHBvcHVsYXRlZCBieSBYU0QgKFdheW5lIEplbnNlbiksCisgICAgNTgyOTA2IFhTRCB2YWxpZGF0aW5nIG11bHRpcGxlIGltcG9ydHMgb2YgdGhlIHNhbWUgc2NoZW1hIChKYXNvbiBDaGlsZHMpLAorICAgIEJ1ZyA1ODI4ODcgwr8gcHJvYmxlbXMgdmFsaWRhdGluZyBjb21wbGV4IHNjaGVtYXMgKEphc29uIENoaWxkcyksCisgICAgQnVnIDU3OTcyOSDCvyBmaXggWFNEIHNjaGVtYXMgcGFyc2luZyBjcmFzaCAoTWlyb3NsYXYgQmFqdG9zKSwKKyAgICA1NzYzNjggwr8gaHRtbENodW5rUGFyc2VyIHdpdGggc3BlY2lhbCBhdHRyaWJ1dGVzIChKaXJpIE5ldG9saWNreSksCisgICAgQnVnIDU2NTc0NyDCvyByZWxheCBhbnlVUkkgZGF0YSBjaGFyYWN0ZXIgY2hlY2tpbmcgKFZpbmNlbnQgTGVmZXZyZSksCisgICAgUHJlc2VydmUgYXR0cmlidXRlcyBvZiBpbmNsdWRlIHN0YXJ0IG9uIHRyZWUgY29weSAoUGV0ciBQYWphcyksCisgICAgU2tpcCBzaWxlbnRseSB1bnJlY29nbml6ZWQgWFBvaW50ZXIgc2NoZW1lcyAoSmFrdWIgV2lsayksCisgICAgRml4IGxlYWsgb24gU0FYMSwgeG1sbGludCAtLXNheDEgb3B0aW9uIGFuZCBkZWJ1ZyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBwb3RlbnRpYWwgTlVMTCBkZXJlZmVyZW5jZSBvbiBub24tZ2xpYmMgKEppbSBNZXllcmluZyksCisgICAgRml4IGFuIFhTRCB2YWxpZGF0aW9uIGNyYXNoIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEZpeCBhIHJlZ3Jlc3Npb24gaW4gc3RyZWFtaW5nIGVudGl0aWVzIHN1cHBvcnQgKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGEgY291cGxlIG9mIEFCSSBpc3N1ZXMgd2l0aCBDMTROIDEuMSAoQWxla3NleSBTYW5pbiksCisgICAgQWxla3NleSBTYW5pbiBzdXBwb3J0IGZvciBjMTRuIDEuMSAoQWxla3NleSBTYW5pbiksCisgICAgcmVhZGVyIGJ1ZyBmaXggd2l0aCBlbnRpdGllcyAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICB1c2Ugb3B0aW9ucyBmcm9tIGN1cnJlbnQgcGFyc2VyIGN0eHQgZm9yIGV4dGVybmFsIGVudGl0aWVzIChSb2IgUmljaGFyZHMpLAorICAgIDU4MTYxMiB1c2UgJXMgdG8gcHJpbnRmIHN0cmluZ3MgKENocmlzdGlhbiBQZXJzY2gpLAorICAgIDU4NDYwNSBjaGFuZ2UgdGhlIHRocmVhZGluZyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSAoSWdvciBOb3Zvc2VsdHNldiksCisgICAgNTgwNzA1IGtlZXAgbGluZSBudW1iZXJzIGluIEhUTUwgcGFyc2VyIChBYXJvbiBQYXR0ZXJzb24pLAorICAgIDU4MTgwMyBicm9rZW4gSFRNTCB0YWJsZSBhdHRyaWJ1dGVzIGluaXQgKFJvbGFuZCBTdGVpbmVyKSwKKyAgICBkbyBub3Qgc2V0IGVycm9yIGNvZGUgaW4geG1sTnNXYXJuIChSb2IgUmljaGFyZHMpLAorICAgIDU2NDIxNyBmaXggc3RydWN0dXJlZCBlcnJvciBoYW5kbGluZyBwcm9ibGVtcywKKyAgICByZXVzZSBvcHRpb25zIGZyb20gY3VycmVudCBwYXJzZXIgZm9yIGVudGl0aWVzIChSb2IgUmljaGFyZHMpLAorICAgIHhtbFhQYXRoUmVnaXN0ZXJOcyBzaG91bGQgbm90IGFsbG93IGVucHR5IHByZWZpeGVzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIGFkZCBhIG1pc3NpbmcgY2hlY2sgaW4geG1sQWRkU2libGluZyAoS3JpcyBCcmV1a2VyKSwKKyAgICBhdm9pZCBsZWFrcyBvbiBlcnJvcnMgKEppbm1laSBUYXR1eWEpCisgIDwvbGk+CisgIDxsaT5DbGVhbnVwOgorICAgIENoYXNpbmcgZGVhZCBhc3NpZ25tZW50cyByZXBvcnRlZCBieSBjbGFuZy1zY2FuIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEEgZmV3IG1vcmUgc2FmZXR5IGNsZWFudXAgcmFpc2VkIGJ5IHNjYW4gKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4aW5nIGFzc29ydGVkIHBvdGVudGlhbCBwcm9ibGVtcyByYWlzZWQgYnkgc2NhbiAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBQb3RlbnRpYWwgdW5pbml0aWFsaXplZCBhcmd1bWVudHMgcmFpc2VkIGJ5IHNjYW4gKERhbmllbCBWZWlsbGFyZCksCisgICAgRml4IGEgYnVuY2ggb2Ygc2NhbiAnZGVhZCBpbmNyZW1lbnRzJyBhbmQgY2xlYW51cCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBSZW1vdmUgYSBwZWRhbnRpYyB3YXJuaW5nIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIDU1NTgzMyBhbHdheXMgdXNlIHJtIC1mIGluIHVuaW5zdGFsbC1sb2NhbCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICA1NDIzOTQgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MgTUFYX0lOUFVUX0NBTExCQUNLIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEF1dG9yZWdlbmVyYXRlIGxpYnhtbDIuc3ltcyBhdXRvbWF0ZWQgY2hlY2tpbmdzIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIE1ha2UgeG1sUmVjb3ZlckRvYyBjb25zdCAoTWFydGluIFRyYXBwZWwpIChEYW5pZWwgVmVpbGxhcmQpLAorICAgIEJvdGggYXJncyBvZiB4bWxTdHJjYXNlc3RyIGFyZSBjb25zdCAoRGFuaWVsIFZlaWxsYXJkKSwKKyAgICBoaWRlIHRoZSBuYlBhcnNlKiB2YXJpYWJsZXMgdXNlZCBmb3IgZGVidWdnaW5nIChNaWtlIEhvbW1leSksCisgICAgNTcwODA2IGNoYW5nZWQgaW5jbHVkZSBvZiBjb25maWcuaCAoV2lsbGlhbSBNLiBCcmFjayksCisgICAgY2xlYW51cHMgYW5kIGVycm9yIHJlcG9ydHMgd2hlbiB4bWxUZXh0V3JpdGVyVlNwcmludGYgZmFpbHMgKEppbm1laSBUYXR1eWEpCisgIDwvbGk+Cis8L3VsPgorPGgzPjIuNy4zOiBKYW4gMTggMjAwOTwvaDM+Cis8dWw+CisgIDxsaT5CdWlsZCBmaXg6IGZpeCBidWlsZCB3aGVuIEhUTUwgc3VwcG9ydCBpcyBub3QgaW5jbHVkZWQuPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogYXZvaWQgbWVtb3J5IG92ZXJmbG93IGluIGdpZ2FudGljIHRleHQgbm9kZXMsCisgICAgICBpbmRlbnRhdGlvbiBwcm9ibGVtIG9uIHRoZSB3cml0ZWQgKFJvYiBSaWNoYXJkcyksCisgICAgICB4bWxBZGRDaGlsZExpc3QgcG9pbnRlciBwcm9ibGVtIChSb2IgUmljaGFyZHMgYW5kIEtldmluIE1pbGJ1cm4pLAorICAgICAgeG1sQWRkQ2hpbGQgcHJvYmxlbSB3aXRoIGF0dHJpYnV0ZSAoUm9iIFJpY2hhcmRzIGFuZCBLcmlzIEJyZXVrZXIpLAorICAgICAgYXZvaWQgYSBtZW1vcnkgbGVhayBpbiBhbiBlZGdlIGNhc2UgKERhbmllbCBaaW1tZXJtYW5uKSwKKyAgICAgIGRlYWxsb2NhdGUgc29tZSBwdGhyZWFkIGRhdGEgKEFsZXggT3R0KS48L2xpPgorICA8bGk+SW1wcm92ZW1lbnRzOiBjb25maWd1cmUgb3B0aW9uIHRvIGF2b2lkIHJlYnVpbGRpbmcgZG9jcyAoQWRyaWFuIEJ1bmspLAorICAgICAgbGltaXQgdGV4dCBub2RlcyB0byAxME1CIG1heCBieSBkZWZhdWx0LCBhZGQgZWxlbWVudCB0cmF2ZXJzYWwKKyAgICAgIEFQSXMsIGFkZCBhIHBhcnNlciBvcHRpb24gdG8gZW5hYmxlIHByZSAyLjcgU0FYIGJlaGF2aW9yIChSb2IgUmljaGFyZHMpLAorICAgICAgYWRkIGdjYyBtYWxsb2MgY2hlY2tpbmcgKE1hcmN1cyBNZWlzc25lciksIGFkZCBnY2MgcHJpbnRmIGxpa2UgZnVuY3Rpb25zCisgICAgICBwYXJhbWV0ZXJzIGNoZWNraW5nIChNYXJjdXMgTWVpc3NuZXIpLjwvbGk+Cis8L3VsPgorPGgzPjIuNy4yOiBPY3QgMyAyMDA4PC9oMz4KKzx1bD4KKyAgICA8bGk+UG9ydGFiaWxpdHkgZml4OiBmaXggc29sYXJpcyBjb21waWxhdGlvbiBwcm9ibGVtLCBmaXggY29tcGlsYXRpb24KKyAgICAgICAgaWYgWFBhdGggaXMgbm90IGNvbmZpZ3VyZWQgaW48L2xpPgorICAgIDxsaT5CdWcgZml4ZXM6IG5hc3R5IGVudGl0eSBidWcgaW50cm9kdWNlZCBpbiAyLjcuMCwgcmVzdG9yZSBvbGQgYmVoYXZpb3VyCisgICAgICAgIHdoZW4gc2F2aW5nIGFuIEhUTUwgZG9jIHdpdGggYW4geG1sIGR1bXAgZnVuY3Rpb24sIEhUTUwgVVRGLTggcGFyc2luZworICAgICAgICBidWcsIGZpeCByZWFkZXIgY3VzdG9tIGVycm9yIGhhbmRsZXJzIChSaWNjYXJkbyBTY3Vzc2F0KQorICAgIDxsaT5JbXByb3ZlbWVudDogeG1sU2F2ZSBvcHRpb25zIGZvciBtb3JlIGZsZXhpYmlsaXR5IHRvIHNhdmUgYXMKKyAgICAgICAgWE1ML0hUTUwvWEhUTUwsIGhhbmRsZSBsZWFkaW5nIEJPTSBpbiBIVE1MIGRvY3VtZW50czwvbGk+Cis8L3VsPgorCis8aDM+Mi43LjE6IFNlcCAxIDIwMDg8L2gzPgorPHVsPgorICAgIDxsaT5Qb3J0YWJpbGl0eSBmaXg6IEJvcmxhbmQgQyBmaXggKE1vcml0eiBCb3RoKTwvbGk+CisgICAgPGxpPkJ1ZyBmaXhlczogcHl0aG9uIHNlcmlhbGl6YXRpb24gd3JhcHBlcnMsIFhQYXRoIFFOYW1lIGNvcm5lcgorICAgICAgICBjYXNlIGhhbmRraW5nIGFuZCBsZWFrcyAoTWFydGluKTwvbGk+CisgICAgPGxpPkltcHJvdmVtZW50OiBleHRlbmQgdGhlIHhtbFNhdmUgdG8gaGFuZGxlIEhUTUwgZG9jdW1lbnRzIGFuZCB0cmVlczwvbGk+CisgICAgPGxpPkNsZWFudXA6IHB5dGhvbiBzZXJpYWxpemF0aW9uIHdyYXBwZXJzPC9saT4KKzwvdWw+CisKKzxoMz4yLjcuMDogQXVnIDMwIDIwMDg8L2gzPgorPHVsPgorICA8bGk+RG9jdW1lbnRhdGlvbjogc3dpdGNoIENoYW5nZUxvZyB0byBVVEYtOCwgaW1wcm92ZSBtdXRpdGhyZWFkcyBhbmQKKyAgICAgIHhtbFBhcnNlckNsZWFudXAgZG9jczwvbGk+CisgIDxsaT5Qb3J0YWJpbGl0eSBmaXhlczogT2xkZXIgV2luMzIgcGxhdGZvcm1zIChSb2IgUmljaGFyZHMpLCBNU1ZDCisgICAgICBwb3J0aW5nIGZpeCAoUm9iIFJpY2hhcmRzKSwgTWFjIE9TIFggcmVncmVzc2lvbiB0ZXN0cyAoU3ZlbiBIZXJ6YmVyZyksCisgICAgICBub24gR05VQ0MgYnVpbGRzIChSb2IgUmljaGFyZHMpLCBjb21waWxhdGlvbiBvbiBIYWlrdSAoQW5kcmVhcyBGw6RyYmVyKQorICAgICAgPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogdmFyaW91cyByZWFsbG9jIHByb2JsZW1zIChBc2h3aW4pLCBwb3RlbnRpYWwgZG91YmxlLWZyZWUKKyAgICAgIChBc2h3aW4pLCByZWdleHAgY3Jhc2gsIGljcmFzaCB3aXRoIGludmFsaWQgd2hpdGVzcGFjZSBmYWNldHMgKFJvYgorICAgICAgUmljaGFyZHMpLCBwYXR0ZXJuIGZpeCB3aGVuIHN0cmVhbWluZyAoV2lsbGlhbSBCcmFjayksIHZhcmlvdXMgWE1MCisgICAgICBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGZpeGVzIGJhc2VkIG9uIHRoZSBXM0MgcmVncmVzc2lvbiB0ZXN0cywgcmVhZGVyCisgICAgICB0cmVlIHNraXBwaW5nIGZ1bmN0aW9uIGZpeCAoQXNod2luKSwgU2NoZW1hcyByZWdleHBzIGVzY2FwaW5nIGZpeAorICAgICAgKFZvbGtlciBHcmFic2NoKSwgaGFuZGxpbmcgb2YgZW50aXR5IHB1c2ggZXJyb3JzIChBc2h3aW4pLCBmaXggYSBzbG93ZG93bgorICAgICAgd2hlbiBlbmNvZGVyIGNhbnQgc2VyaWFsaXplIGNoYXJhY3RlcnMgb24gb3V0cHV0PC9saT4KKyAgPGxpPkNvZGUgY2xlYW51cDogY29tcGlsYXRpb24gZml4IHdpdGhvdXQgdGhlIHJlYWRlciwgd2l0aG91dCB0aGUgb3V0cHV0CisgICAgICAoUm9iZXJ0IFNjaHdlYmVsKSwgcHl0aG9uIHdoaXRlc3BhY2UgKE1hcnRpbiksIG1hbnkgc3BhY2UvdGFicyBjbGVhbnVwcywKKyAgICAgIHNlcmlvdXMgY2xlYW51cCBvZiB0aGUgZW50aXR5IGhhbmRsaW5nIGNvZGU8L2xpPgorICA8bGk+SW1wcm92ZW1lbnQ6IHN3aXRjaCBwYXJzZXIgdG8gWE1MLTEuMCA1dGggZWRpdGlvbiwgYWRkIHBhcnNpbmcgZmxhZ3MKKyAgICAgIGZvciBvbGQgdmVyc2lvbnMsIHN3aXRjaCBVUkkgcGFyc2luZyB0byBSRkMgMzk4NiwKKyAgICAgIGFkZCB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0IChIb2xnZXIgS2FlbGJlcmVyKSwKKyAgICAgIG5ldyBoYXNoaW5nIGZ1bmN0aW9ucyBmb3IgZGljdGlvbm5hcmllcyAoYmFzZWQgb24gU3RlZmFuIEJlaG5lbCB3b3JrKSwKKyAgICAgIGltcHJvdmUgaGFuZGxpbmcgb2YgbWlzcGxhY2VkIGh0bWwvaGVhZC9ib2R5IGluIEhUTUwgcGFyc2VyLCBiZXR0ZXIKKyAgICAgIHJlZ3Jlc3Npb24gdGVzdCB0b29scyBhbmQgY29kZSBjb3ZlcmFnZSBkaXNwbGF5LCBiZXR0ZXIgYWxnb3JpdGhtcworICAgICAgdG8gZGV0ZWN0IHZhcmlvdXMgdmVyc2lvbnMgb2YgdGhlIGJpbGxpb24gbGF1Z2h0cyBhdHRhY2tzLCBtYWtlCisgICAgICBhcmJpdHJhcnkgcGFyc2VyIGxpbWl0cyBhdm9pZGFibGUgYXMgYSBwYXJzZXIgb3B0aW9uPC9saT4KKzwvdWw+Cis8aDM+Mi42LjMyOiBBcHIgOCAyMDA4PC9oMz4KKzx1bD4KKyAgPGxpPkRvY3VtZW50YXRpb246IHJldHVybmluZyBoZWFwIG1lbW9yeSB0byBrZXJuZWwgKFdvbGZyYW0gU2FuZyksCisgICAgICB0cnlpbmcgdG8gY2xhcmlmeSB4bWxDbGVhbnVwUGFyc2VyKCkgdXNlLCB4bWxYUGF0aENvbnRleHQgaW1wcm92ZW1lbnQKKyAgICAgIChKYWNrIEphbnNlbiksIGltcHJvdmUgdGhlICpSZWNvdmVyKiBmdW5jdGlvbnMgZG9jdW1lbnRhdGlvbiwKKyAgICAgIFhtbE5vZGVUeXBlIGRvYyBsaW5rIGZpeCAoTWFydGlqbiBBcnRzKTwvbGk+CisgIDxsaT5CdWcgZml4ZXM6IGludGVybmFsIHN1YnNldCBtZW1vcnkgbGVhayAoQXNod2luKSwgYXZvaWQgcHJvYmxlbSB3aXRoCisgICAgICBwYXRocyBzdGFydGluZyB3aXRoIC8vIChQZXRyIFN1bWJlcmEpLCBzdHJlYW1pbmcgWFNEIHZhbGlkYXRpb24gY2FsbGJhY2sKKyAgICAgIHBhdGNoZXMgKEFzaHdpbiksIGZpeCByZWRpcmVjdGlvbiBvbiBwb3J0IG90aGVyIHRoYW4gODAgKFdpbGxpYW0gQnJhY2spLAorICAgICAgU0FYMiBsZWFrIChBc2h3aW4pLCBYSW5jbHVkZSBmcmFnbWVudCBvZiBvd24gZG9jdW1lbnQgKENocmlzIFJ5YW4pLAorICAgICAgcmVnZXhwIGJ1ZyB3aXRoICcuJyAoQW5kcmV3IFRvc2gpLCBmbHVzaCB0aGUgd3JpdGVyIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICBkb2N1bWVudCAoQWxmcmVkIE1pY2thdXRzY2gpLCBvdXRwdXQgSS9PIGJ1ZyBmaXggKFdpbGxpYW0gQnJhY2spLAorICAgICAgd3JpdGVyIENEQVRBIG91dHB1dCBhZnRlciBhIHRleHQgbm9kZSAoQWxleCBLaGVzaW4pLCBVVEYtMTYgZW5jb2RpbmcKKyAgICAgIGRldGVjdGlvbiAoV2lsbGlhbSBCcmFjayksIGZpeCBoYW5kbGluZyBvZiBlbXB0eSBDREFUQSBub2RlcyBmb3IgU2FmYXJpCisgICAgICB0ZWFtLCBweXRob24gYmluZGluZyBwcm9ibGVtIHdpdGggbmFtZXNwYWNlIG5vZGVzLCBpbXByb3ZlIEhUTUwgcGFyc2luZworICAgICAgKEFybm9sZCBIZW5kcmlrcyksIHJlZ2V4cCBhdXRvbWF0YSBidWlsZCBidWcsIG1lbW9yeSBsZWFrIGZpeCAoVmFzaWx5CisgICAgICBDaGVrYWxraW4pLCBYU0QgdGVzdCBjcmFzaCwgd2VpcmQgc3lzdGVtIHBhcmFtZXRlciBlbnRpdHkgcGFyc2luZyBwcm9ibGVtLAorICAgICAgYWxsb3cgc2F2ZSB0byBmaWxlOi8vL1g6LyB3aW5kb3dzIHBhdGhzLCB2YXJpb3VzIGF0dHJpYnV0ZSBub3JtYWxpc2F0aW9uCisgICAgICBwcm9ibGVtcywgZXh0ZXJuYWxTdWJzZXRTcGxpdCBmaXggKEFzaHdpbiksIGF0dHJpYnV0ZSByZWRlZmluaXRpb24gaW4KKyAgICAgIHRoZSBEVEQgKEFzaHdpbiksIGZpeCBpbiBjaGFyIHJlZiBwYXJzaW5nIGNoZWNrIChBbGV4IEtoZXNpbiksIG1hbnkKKyAgICAgIG91dCBvZiBtZW1vcnkgaGFuZGxpbmcgZml4ZXMgKEFzaHdpbiksIFhQYXRoIG91dCBvZiBtZW1vcnkgaGFuZGxpbmcgZml4ZXMKKyAgICAgIChBbHZhcm8gSGVycmVyYSksIHZhcmlvdXMgcmVhbGxvYyBwcm9ibGVtcyAoQXNod2luKSwgVUNTNCBlbmNvZGluZworICAgICAgY29udmVyc2lvbiBidWZmZXIgc2l6ZSAoQ2hyaXN0aWFuIEZydXRoKSwgcHJvYmxlbXMgd2l0aCBFYXROYW1lCisgICAgICBmdW5jdGlvbnMgb24gbWVtb3J5IGVycm9ycywgQk9NIGhhbmRsaW5nIGluIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcworICAgICAgKE1hcmsgUm93ZSk8L2xpPgorICA8bGk+Q29kZSBjbGVhbnVwOiBmaXggYnVpbGQgdW5kZXIgVlMgMjAwOCAoRGF2aWQgV2ltc2V5KSwgcmVtb3ZlIHVzZWxlc3MKKyAgICAgIG11dGV4IGluIHhtbERpY3QgKEZsb3JlbnQgR3VpbGlhbiksIE1pbmd3MzIgY29tcGlsYXRpb24gZml4IChDYXJsbworICAgICAgQnJhbWluaSksIFdpbiBhbmQgTWFjT1MgRU9MIGNsZWFudXBzIChGbG9yZW50IEd1aWxpYW5pKSwgaWNvbnYgbmVlZAorICAgICAgYSBjb25zdCBkZXRlY3Rpb24gKFJvdW1lbiBQZXRyb3YpLCBzaW1wbGlmeSB4bWxTZXRQcm9wIChKdWxpZW4gQ2hhcmJvbiksCisgICAgICBjcm9zcyBjb21waWxhdGlvbiBmaXhlcyBmb3IgTWluZ3cgKFJvdW1lbiBQZXRyb3YpLCBTQ08gT3BlbnNlcnZlciBidWlsZAorICAgICAgZml4IChGbG9yZW50IEd1aWxpYW5pKSwgaWNvbnYgdXNlcyBjb25zdCBvbiBXaW4zMiAoUm9iIFJpY2hhcmRzKSwKKyAgICAgIGR1cGxpY2F0ZSBjb2RlIHJlbW92YWwgKEFzaHdpbiksIG1pc3NpbmcgbWFsbG9jIHRlc3QgYW5kIGVycm9yIHJlcG9ydHMKKyAgICAgIChBc2h3aW4pLCBWTVMgbWFrZWZpbGUgZml4IChUeWNobyBIaWxob3JzdCk8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBiZXR0ZXIgcGx1ZyBvZiBzY2hlbWF0cm9uIGluIHRoZSBub3JtYWwgZXJyb3IgaGFuZGxpbmcKKyAgICAgIChUb2JpYXMgTWluaWNoKTwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjMxOiBKYW4gMTEgMjAwODwvaDM+Cis8dWw+CisgIDxsaT5TZWN1cml0eSBmaXg6IG1pc3Npbmcgb2YgY2hlY2tzIGluIFVURi04IHBhcnNpbmc8L2xpPgorICA8bGk+QnVnIGZpeGVzOiByZWdleHAgYnVnLCBkdW1wIGF0dHJpYnV0ZSBmcm9tIFhIVE1MIGRvY3VtZW50LCBmaXgKKyAgICAgIHhtbEZyZWUoTlVMTCkgdG8gbm90IGNyYXNoIGluIGRlYnVnIG1vZGUsIFNjaGVtYXRyb24gcGFyc2luZyBjcmFzaAorICAgICAgKFJvYiBSaWNoYXJkcyksIGdsb2JhbCBsb2NrIGZyZWUgb24gV2luZG93cyAoTWFyYy1BbnRvaW5lIFJ1ZWwpLAorICAgICAgWFNEIGNyYXNoIGR1ZSB0byBkb3VibGUgZnJlZSAoUm9iIFJpY2hhcmRzKSwgaW5kZW50YXRpb24gZml4IGluCisgICAgICB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQgKEZlbGlwZSBQZW5hKSwgZXJyb3IgaW4gYXR0cmlidXRlIHR5cGUKKyAgICAgIHBhcnNpbmcgaWYgYXR0cmlidXRlIHJlZGVjbGFyZWQsIGF2b2lkIGNyYXNoIGluIGhhc2ggbGlzdCBzY2FubmVyIGlmCisgICAgICBkZWxldGluZyBlbGVtZW50cywgY29sdW1uIGNvdW50ZXIgYnVnIGZpeCAoQ2hyaXN0aWFuIFNjaG1pZHQpLAorICAgICAgSFRNTCBlbWJlZCBlbGVtZW50IHNhdmluZyBmaXggKFN0ZWZhbiBCZWhuZWwpLCBhdm9pZCAtTC91c3IvbGliCisgICAgICBvdXRwdXQgZnJvbSB4bWwyLWNvbmZpZyAoRnJlZCBDcm96YXQpLCBhdm9pZCBhbiB4bWxsaW50IGNyYXNoIAorICAgICAgKFN0ZWZhbiBLb3N0KSwgZG9uJ3Qgc3RvcCBIVE1MIHBhcnNpbmcgb24gb3V0IG9mIHJhbmdlIGNoYXJzLgorICAgICAgPC9saT4KKyAgPGxpPkNvZGUgY2xlYW51cDogZml4IG9wZW4oKSBjYWxsIHRoaXJkIGFyZ3VtZW50LCByZWdleHAgY3V0J24gcGFzdGUKKyAgICAgIGNvcHkgZXJyb3IsIHVudXNlZCB2YXJpYWJsZSBpbiBfX3htbEdsb2JhbEluaXRNdXRleExvY2sgKEhhbm5lcyBFZGVyKSwKKyAgICAgIHNvbWUgbWFrZSBkaXN0Y2hlY2sgcmVhbHRlZCBmaXhlcyAoSm9obiBDYXJyKTwvbGk+CisgIDxsaT5JbXByb3ZlbWVudHM6IEhUVFAgSGVhZGVyOiBpbmNsdWRlcyBwb3J0IG51bWJlciAoV2lsbGlhbSBCcmFjayksCisgICAgICB0ZXN0VVJJIC0tZGVidWcgb3B0aW9uLCA8L2xpPgorPC91bD4KKzxoMz4yLjYuMzA6IEF1ZyAyMyAyMDA3PC9oMz4KKzx1bD4KKyAgPGxpPlBvcnRhYmlsaXR5OiBTb2xhcmlzIGNyYXNoIG9uIGVycm9yIGhhbmRsaW5nLCB3aW5kb3dzIHBhdGggZml4ZXMKKyAgICAgIChSb2xhbmQgU2Nod2FyeiBhbmQgUm9iIFJpY2hhcmRzKSwgbWluZ3cgYnVpbGQgKFJvbGFuZCBTY2h3YXJ6KTwvbGk+CisgIDxsaT5CdWdmaXhlczogeG1sWFBhdGhOb2RlU2V0U29ydCBwcm9ibGVtIChXaWxsaWFtIEJyYWNrKSwgbGVhayB3aGVuCisgICAgICByZXVzaW5nIGEgd3JpdGVyIGZvciBhIG5ldyBkb2N1bWVudCAoRG9kamkgU2VrZXRlbGkpLCBTY2hlbWFzCisgICAgICB4c2k6bmlsIGhhbmRsaW5nIHBhdGNoIChGcmFuayBHcm9zcyksIHJlbGF0aXZlIFVSSSBidWlsZCBwcm9ibGVtCisgICAgICAoUGF0cmlrIEZpbW1sKSwgY3Jhc2ggaW4geG1sRG9jRm9ybWF0RHVtcCwgaW52YWxpZCBjaGFyIGluIGNvbW1lbnQKKyAgICAgIGRldGVjdGlvbiBidWcsIGZpeCBkaXNwYXJpdHkgd2l0aCB4bWxTQVhVc2VyUGFyc2VNZW1vcnksIGF1dG9tYXRhCisgICAgICBnZW5lcmF0aW9uIGZvciBjb21wbGV4IHJlZ2V4cCBjb3VudHMgcHJvYmxlbXMsIFNjaGVtYXMgSURDIGltcG9ydAorICAgICAgcHJvYmxlbXMgKEZyYW5rIEdyb3NzKSwgeHBhdGggcHJlZGljYXRlIGV2YWlsYXRpb24gZXJyb3IgaGFuZGxpbmcKKyAgICAgIChXaWxsaWFtIEJyYWNrKTwvbGk+Cis8L3VsPgorPGgzPjIuNi4yOTogSnVuIDEyIDIwMDc8L2gzPgorPHVsPgorICA8bGk+UG9ydGFiaWxpdHk6IHBhdGNoZXMgZnJvbSBBbmRyZWFzIFN0cmlja2UgZm9yIFdpbkNFaSwKKyAgICAgIGZpeCBjb21waWxhdGlvbiB3YXJuaW5ncyAoV2lsbGlhbSBCcmFjayksIGF2b2lkIHdhcm5pbmdzIG9uIEFwcGxlIE9TL1gKKyAgICAgIChXZW5keSBEb3lsZSBhbmQgTWFyayBSb3dlKSwgV2luZG93cyBjb21waWxhdGlvbiBhbmQgdGhyZWFkaW5nCisgICAgICBpbXByb3ZlbWVudHMgKFJvYiBSaWNoYXJkcyksIGNvbXBpbGF0aW9uIGFnYWluc3Qgb2xkIFB5dGhvbiB2ZXJzaW9ucywKKyAgICAgIG5ldyBHTlUgdGFyIGNoYW5nZXMgKFJ5YW4gSGlsbCk8L2xpPgorICA8bGk+RG9jdW1lbnRhdGlvbjogeG1sVVJJVW5lc2NhcGVTdHJpbmcgY29tbWVudCwgPC9saT4KKyAgPGxpPkJ1Z2ZpeGVzOiB4bWxCdWZmZXJBZGQgcHJvYmxlbSAoUmljaGFyZCBKb25lcyksICdtYWtlIHZhbGdyaW5kJworICAgICAgZmxhZyBmaXggKFJpY2hhcmQgSm9uZXMpLCByZWdleHAgaW50ZXJwcmV0YXRpb24gb2YgXCwKKyAgICAgIGh0bWxDcmVhdGVEb2NQYXJzZXJDdHh0IChKZWFuLURhbmllbCBEdXBhcyksIGNvbmZpZ3VyZS5pbgorICAgICAgdHlwbyAoQmpvcm4gUmVlc2UpLCBlbnRpdHkgY29udGVudCBmYWlsdXJlLCB4bWxMaXN0QXBwZW5kKCkgZml4CisgICAgICAoR2Vvcmdlcy1BbmRyw6kgU2lsYmVyKSwgWFBhdGggbnVtYmVyIHNlcmlhbGl6YXRpb24gKFdpbGxpYW0gQnJhY2spLAorICAgICAgbmFub2h0dHAgZ3ppcHBlZCBzdHJlYW0gZml4IChXaWxsaWFtIEJyYWNrIGFuZCBBbGV4IENvcm5lam8pLAorICAgICAgeG1sQ2hhckVuY0ZpcnN0TGluZSB0eXBvIChNYXJrIFJvd2UpLCB1cmkgYnVnIChGcmFuw6dvaXMgRGVseW9uKSwKKyAgICAgIFhQYXRoIHN0cmluZyB2YWx1ZSBvZiBQSSBub2RlcyAoV2lsbGlhbSBCcmFjayksIFhQYXRoIG5vZGUgc2V0CisgICAgICBzb3J0aW5nIGJ1Z3MgKFdpbGxpYW0gQnJhY2spLCBhdm9pZCBvdXRwdXR0aW5nIG5hbWVzcGFjZSBkZWNsCisgICAgICBkdXBzIGluIHRoZSB3cml0ZXIgKFJvYiBSaWNoYXJkcyksIHhtbEN0eHRSZXNldCBidWcsIFVURi04IGVuY29kaW5nCisgICAgICBlcnJvciBoYW5kbGluZywgcmVjdXN0aW9uIG9uIG5leHQgaW4gY2F0YWxvZ3MsIGZpeCBhIFJlbGF4LU5HIGNyYXNoLAorICAgICAgd29ya2Fyb3VuZCB3cm9uZyBmaWxlOiBVUklzLCBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQgb24gYXR0cmlidXRlcywKKyAgICAgIGludmFsaWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSBkZXRlY3Rpb24gYnVnLCBiaWcgY29tbWVudHMgYmVmb3JlIAorICAgICAgaW50ZXJuYWwgc3Vic2V0IHN0cmVhbWluZyBidWcsIEhUTUwgcGFyc2luZyBvZiBhdHRyaWJ1dGVzIHdpdGggOiBpbgorICAgICAgdGhlIG5hbWUsIElEbmVzcyBvZiBuYW1lIGluIEhUTUwgKERhZ2Zpbm4gSS4gTWFubnPDpWtlcikgPC9saT4KKyAgPGxpPkltcHJvdmVtZW50OiBrZWVwIFVSSSBxdWVyeSBwYXJ0cyBpbiByYXcgZm9ybSAoUmljaGFyZCBKb25lcyksCisgICAgICBlbWJlZCB0YWcgc3VwcG9ydCBpbiBIVE1MIChNaWNoYWVsIERheSkgPC9saT4KKzwvdWw+CisKKzxoMz4yLjYuMjg6IEFwciAxNyAyMDA3PC9oMz4KKzx1bD4KKyAgPGxpPkRvY3VtZW50YXRpb246IGNvbW1lbnQgZml4ZXMgKE1hcmt1cyBLZWltKSwgeHBhdGggY29tbWVudHMgZml4ZXMgdG9vCisgICAgICAoSmFtZXMgRGVubmV0dCk8L2xpPgorICA8bGk+QnVnIGZpeGVzOiBYUGF0aCBidWcgKFdpbGxpYW0gQnJhY2spLCBIVE1MIHBhcnNlciBhdXRvY2xvc2Ugc3RhY2sgdXNhZ2UKKyAgICAgIChVc2FtYWggTWFsaWspLCB2YXJpb3VzIHJlZ2V4cCBidWcgZml4ZXMgKERWIGFuZCBXaWxsaWFtKSwgcGF0aCBjb252ZXJzaW9uCisgICAgICBvbiBXaW5kb3dzIChJZ29yIFpsYXRrb3ZpYyksIGh0bWxDdHh0UmVzZXQgZml4IChNaWNoYWVsIERheSksIFhQYXRoCisgICAgICBwcmluY2lwYWwgbm9kZSBvZiBheGlzIGJ1ZywgSFRNTCBzZXJpYWxpemF0aW9uIG9mIHNvbWUgY29kZXBvaW50CisgICAgICAoU3RldmVuIFJhaW53YXRlciksIHVzZXIgZGF0YSBwcm9wYWdhdGlvbiBpbiBYSW5jbHVkZSAoTWljaGFlbCBEYXkpLAorICAgICAgc3RhbmRhbG9uZSBhbmQgWE1MIGRlY2wgZGV0ZWN0aW9uIChNaWNoYWVsIERheSksIFB5dGhvbiBpZCBvdXB0dXQKKyAgICAgIGZvciBzb21lIGlkLCBmaXggdGhlIGJpZyBweXRob24gc3RyaW5nIG1lbW9yeSBsZWFrLCBVUkkgcGFyc2luZyBmaXhlcworICAgICAgKFN0w6lwaGFuZSBCaWRvdWwgYW5kIFdpbGxpYW0pLCBsb25nIGNvbW1lbnRzIHBhcnNpbmcgYnVnIChXaWxsaWFtKSwKKyAgICAgIGNvbmN1cnJlbnQgdGhyZWFkcyBpbml0aWFsaXphdGlvbiAoVGVkIFBoZWxwcyksIGludmFsaWQgY2hhcgorICAgICAgaW4gdGV4dCBYSW5jbHVkZSAoV2lsbGlhbSksIFhQYXRoIG1lbW9yeSBsZWFrIChXaWxsaWFtKSwgdGFiIGluCisgICAgICBweXRob24gcHJvYmxlbXMgKEFuZHJlYXMgSGFua2UpLCBYUGF0aCBub2RlIGNvbXBhcmlzb24gZXJyb3IKKyAgICAgIChPbGVnIFBhcmFzY2hlbmtvKSwgY2xlYW51cCBwYXRjaCBmb3IgcmVhZGVyIChKdWxpZW4gUmVpY2hlbCksCisgICAgICBYTUwgU2NoZW1hcyBhdHRyaWJ1dGUgZ3JvdXAgKFdpbGxpYW0pLCBIVE1MIHBhcnNpbmcgcHJvYmxlbSAoV2lsbGlhbSksCisgICAgICBmaXggY2hhciAweDJkIGluIHJlZ2V4cHMgKFdpbGxpYW0pLCByZWdleHAgcXVhbnRpZmllciByYW5nZSB3aXRoCisgICAgICBtaW4gb2NjdXJzIG9mIDAgKFdpbGxpYW0pLCBIVE1MIHNjcmlwdC9zdHlsZSBwYXJzaW5nIChNaWtlIERheSk8L2xpPgorICA8bGk+SW1wcm92ZW1lbnQ6IG1ha2UgeG1sVGV4dFJlYWRlclNldHVwKCkgcHVibGljPC9saT4KKyAgPGxpPkNvbXBpbGF0aW9uIGFuZCBwb3N0YWJpbGl0eTogZml4IGEgbWlzc2luZyBpbmNsdWRlIHByb2JsZW0gKFdpbGxpYW0pLAorICAgICAgX19zc19mYW1pbGx5IG9uIEFJWCBhZ2FpbiAoQmrDtnJuIFdpYmVyZyksIGNvbXBpbGF0aW9uIHdpdGhvdXQgemxpYgorICAgICAgKE1pY2hhZWwgRGF5KSwgY2F0YWxvZyBwYXRjaCBmb3IgV2luMzIgKENocmlzdGlhbiBFaHJsaWNoZXIpLAorICAgICAgV2luZG93cyBDRSBmaXhlcyAoQW5kcmVhcyBTdHJpY2tlKTwvbGk+CisgIDxsaT5WYXJpb3VzIENWUyB0byBTVk4gaW5mcmFzdHJ1Y3R1cmUgY2hhbmdlczwvbGk+Cis8L3VsPgorPGgzPjIuNi4yNzogT2N0IDI1IDIwMDY8L2gzPgorPHVsPgorICA8bGk+UG9ydGFiaWxpdHkgZml4ZXM6IGZpbGUgbmFtZXMgb24gd2luZG93cyAoUm9sYW5kIFNjaHdpbmdlbCwgCisgICAgICBFbWVseWFub3YgQWxleGV5KSwgd2luZG93cyBjb21waWxlIGZpeHVwIChSb2IgUmljaGFyZHMpLCAKKyAgICAgIEFJWCBpY29udigpIGlzIGFwcGFyZW50bHkgY2FzZSBzZW5zaXRpdmU8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBQeXRob24gWFBhdGggdHlwZXMgbWFwcGluZyAoTmljIEZlcnJpZXIpLCBYUGF0aCBvcHRpbWl6YXRpb24KKyAgICAgIChLYXNpbWllciksIGFkZCB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiAoS2FzaW1pZXIpLCBQeXRob24gbm9kZQorICAgICAgZXF1YWxpdHkgYW5kIGNvbXBhcmlzb24gKEFuZHJlYXMgUGFrdWxhdCksIHhtbFhQYXRoQ29sbGVjdEFuZFRlc3QKKyAgICAgIGltcHJvdmVtZW10IChLYXNpbWllciksIGV4cG9zZSBpZiBsaWJyYXJ5IHdhcyBjb21waWxlZCB3aXRoIHpsaWIgCisgICAgICBzdXBwb3J0IChBbmRyZXcgTm9zZW5rbyksIGNhY2hlIGZvciB4bWxTY2hlbWFJRENNYXRjaGVyIHN0cnVjdHMKKyAgICAgIChLYXNpbWllciksIHhtbFRleHRDb25jYXQgc2hvdWxkIHdvcmsgd2l0aCBjb21tZW50cyBhbmQgUElzIChSb2IKKyAgICAgIFJpY2hhcmRzKSwgZXhwb3J0IGh0bWxOZXdQYXJzZXJDdHh0IG5lZWRlZCBieSBNaWNoYWVsIERheSwgcmVmYWN0b3JpbmcKKyAgICAgIG9mIGNhdGFsb2cgZW50aXR5IGxvYWRlcnMgKE1pY2hhZWwgRGF5KSwgYWRkIFhQb2ludGVyIHN1cHBvcnQgdG8gCisgICAgICBweXRob24gYmluZGluZ3MgKFJvc3MgUmVlZHN0cm9tLCBCcmlhbiBXZXN0IGFuZCBTdGVmYW4gQW5jYSksIAorICAgICAgdHJ5IHRvIHNvcnQgb3V0IG1vc3QgZmlsZSBwYXRoIHRvIFVSSSBjb252ZXJzaW9ucyBhbmQgeG1sUGF0aFRvVXJpLAorICAgICAgYWRkIC0taHRtbCAtLW1lbW9yeSBjYXNlIHRvIHhtbGxpbnQ8L2xpPgorICA8bGk+YnVpbGRpbmcgZml4OiBmaXggLS13aXRoLW1pbmltdW0gKEZlbGlwZSBDb250cmVyYXMpLCBWTVMgZml4LCAKKyAgICAgIGNvbnN0J2lmaWNhdGlvbiBvZiBIVE1MIHBhcnNlciBzdHJ1Y3R1cmVzIChNYXR0aGlhcyBDbGFzZW4pLAorICAgICAgcG9ydGFiaWxpdHkgZml4IChFbWVseWFub3YgQWxleGV5KSwgd2dldCBhdXRvZGV0ZWN0aW9uIChQZXRlcgorICAgICAgQnJlaXRlbmxvaG5lciksICByZW1vdmUgdGhlIGJ1aWxkIHBhdGggcmVjb3JkZWQgaW4gdGhlIHB5dGhvbgorICAgICAgc2hhcmVkIG1vZHVsZSwgc2VwYXJhdGUgbGlicmFyeSBmbGFncyBmb3Igc2hhcmVkIGFuZCBzdGF0aWMgYnVpbGRzCisgICAgICAoTWlraGFpbCBaYWJhbHVldiksIGZpeCAtLXdpdGgtbWluaW11bSAtLXdpdGgtc2F4MSBidWlsZHMsIGZpeAorICAgICAgLS13aXRoLW1pbmltdW0gLS13aXRoLXNjaGVtYXMgYnVpbGRzPC9saT4KKyAgPGxpPmJ1ZyBmaXg6IHhtbEdldE5vZGVQYXRoIGZpeCAoS2FzaW1pZXIpLCB4bWxET01XcmFwQWRvcHROb2RlIGFuZAorICAgICAgYXR0cmlidXRlIChLYXNpbWllciksIGNyYXNoIHdoZW4gdXNpbmcgdGhlIHJlY292ZXIgbW9kZSwgCisgICAgICB4bWxYUGF0aEV2YWxFeHByIHByb2JsZW0gKEthc2ltaWVyKSwgeG1sWFBhdGhDb21wRXhwckFkZCBidWcgKEthc2ltaWVyKSwKKyAgICAgIG1pc3NpbmcgZGVzdHJ5IGluIHhtbEZyZWVSTXV0ZXggKEFuZHJldyBOb3NlbmtvKSwgWE1MIFNjaGVtYXMgZml4ZXMKKyAgICAgIChLYXNpbWllciksIHdhcm5pbmcgb24gZW50aXRpZXMgcHJvY2Vzc2luZywgWEhUTUwgc2NyaXB0IGFuZCBzdHlsZQorICAgICAgc2VyaWFsaXphdGlvbiAoS2FzaW1pZXIpLCBweXRob24gZ2VuZXJhdG9yIGZvciBsb25nIHR5cGVzLCBidWcgaW4KKyAgICAgIHhtbFNjaGVtYUNsZWFyVmFsaWRDdHh0IChCZXJ0cmFuZCBGcml0c2NoKSwgeG1sU2NoZW1hWFBhdGhFdmFsdWF0ZQorICAgICAgYWxsb2NhdGlvbiBidWcgKE1hcnRvbiBJbGxlcyksIGVycm9yIG1lc3NhZ2UgZW5kIG9mIGxpbmUgKFJvYiBSaWNoYXJkcyksCisgICAgICBmaXggYXR0cmlidXRlIHNlcmlhbGl6YXRpb24gaW4gd3JpdGVyIChSb2IgUmljaGFyZHMpLCBQSFA0IERURCB2YWxpZGF0aW9uCisgICAgICBjcmFzaGVyLCBwYXJzZXIgc2FmZXR5IHBhdGNoIChCZW4gRGFybmVsbCksIF9wcml2YXRlIGNvbnRleHQgcHJvcGFnYXRpb24KKyAgICAgIHdoZW4gcGFyc2luZyBlbnRpdGllcyAod2l0aCBNaWNoYWVsIERheSksIGZpeCBlbnRpdGllcyBiZWhhdmlvdXIgd2hlbiAKKyAgICAgIHVzaW5nIFNBWCwgVVJJIHRvIGZpbGUgcGF0aCBmaXggKE1pa2hhaWwgWmFiYWx1ZXYpLCBkaXNhcGVhcmluZyB2YWxpZGl0eQorICAgICAgY29udGV4dCwgYXJnIGVycm9yIGluIFNBWCBjYWxsYmFjayAoTWlrZSBIb21tZXkpLCBmaXggbWl4ZWQtY29udGVudAorICAgICAgYXV0b2RldGVjdCB3aGVuIHVzaW5nIC0tbm9ibGFua3MsIGZpeCB4bWxJT1BhcnNlRFREIGVycm9yIGhhbmRsaW5nLAorICAgICAgZml4IGJ1ZyBpbiB4bWxTcGxpdFFOYW1lIG9uIHNwZWNpYWwgTmFtZXMsIGZpeCBSZWxheC1ORyBlbGVtZW50IGNvbnRlbnQKKyAgICAgIHZhbGlkYXRpb24gYnVnLCBmaXggeG1sUmVjb25jaWxpYXRlTnMgYnVnLCBmaXggcG90ZW50aWFsIGF0dHJpYnV0ZSAKKyAgICAgIFhNTCBwYXJzaW5nIGJ1ZywgZml4IGxpbmUvY29sdW1uIGFjY291bnRpbmcgaW4gWE1MIHBhcnNlciwgY2h1bmtpbmcgYnVnCisgICAgICBpbiB0aGUgSFRNTCBwYXJzZXIgb24gc2NyaXB0LCB0cnkgdG8gZGV0ZWN0IG9idmlvdXNseSBidWdneSBIVE1MCisgICAgICBtZXRhIGVuY29kaW5nIGluZGljYXRpb25zLCBidWdzIHdpdGggZW5jb2RpbmcgQk9NIGFuZCB4bWxTYXZlRG9jLCAKKyAgICAgIEhUTUwgZW50aXRpZXMgaW4gYXR0cmlidXRlcyBwYXJzaW5nLCBIVE1MIG1pbmltaXplZCBhdHRyaWJ1dGUgdmFsdWVzLAorICAgICAgaHRtbFJlYWREb2MgYW5kIGh0bWxSZWFkSU8gd2VyZSBicm9rZW4sIGVycm9yIGhhbmRsaW5nIGJ1ZyBpbgorICAgICAgeG1sWFBhdGhFdmFsRXhwcmVzc2lvbiAoT2xhZiBXYWxrb3dpYWspLCBmaXggYSBwcm9ibGVtIGluCisgICAgICBodG1sQ3R4dFVzZU9wdGlvbnMsIHhtbE5ld0lucHV0RnJvbUZpbGUgY291bGQgbGVhayAoTWFyaXVzIEtvbml0emVyKSwKKyAgICAgIGJ1ZyBvbiBtaXNmb3JtZWQgU1NEIHJlZ2V4cHMgKENocmlzdG9waGVyIEJvdW1lbm90KQorICAgICAgPC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb246IHdhcm5pbmcgYWJvdXQgWE1MX1BBUlNFX0NPTVBBQ1QgKEthc2ltaWVyIEJ1Y2hjaWspLAorICAgICAgZml4IHhtbFhQYXRoQ2FzdFRvU3RyaW5nIGRvY3VtZW50YXRpb24sIGltcHJvdmUgbWFuIHBhZ2VzIGZvcgorICAgICAgeG1sbGl0biBhbmQgeG1sY2F0YWxvZyAoRGFuaWVsIExlaWRlcnQpLCBmaXhlZCBjb21tZW50cyBvZiBhIGZldworICAgICAgZnVuY3Rpb25zPC9saT4KKzwvdWw+Cis8aDM+Mi42LjI2OiBKdW4gNiAyMDA2PC9oMz4KKzx1bD4KKyAgPGxpPnBvcnRhYmlsaXR5IGZpeGVzOiBQeXRob24gZGV0ZWN0aW9uIChKb3NlcGggU2FjY28pLCBjb21waWxhdGlvbgorICAgIGVycm9yKFdpbGxpYW0gQnJhY2sgYW5kIEdyYWhhbSBCZW5uZXR0KSwgTHlueE9TIHBhdGNoIChPbGxpIFNhdmlhKTwvbGk+CisgIDxsaT5idWcgZml4ZXM6IGVuY29kaW5nIGJ1ZmZlciBwcm9ibGVtLCBtaXggb2YgY29kZSBhbmQgZGF0YSBpbgorICAgIHhtbElPLmMoS2phcnRhbiBNYXJhYXMpLCBlbnRpdGllcyBpbiBYU0QgdmFsaWRhdGlvbiAoS2FzaW1pZXIgQnVjaGNpayksCisgICAgdmFyaW91c1hTRCB2YWxpZGF0aW9uIGZpeGVzIChLYXNpbWllciksIG1lbW9yeSBsZWFrIGluIHBhdHRlcm4gKFJvYgorICAgIFJpY2hhcmRzIGFuZEthc2ltaWVyKSwgYXR0cmlidXRlIHdpdGggY29sb24gaW4gbmFtZSAoUm9iIFJpY2hhcmRzKSwgWFBhdGgKKyAgICBsZWFrIGluZXJyb3IgcmVwb3J0aW5nIChBbGVrc2V5IFNhbmluKSwgWEluY2x1ZGUgdGV4dCBpbmNsdWRlIG9mCisgICAgc2VsZmRvY3VtZW50LjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IFhwYXRoIG9wdGltaXphdGlvbnMgKEthc2ltaWVyKSwgWFBhdGggb2JqZWN0CisgICAgY2FjaGUoS2FzaW1pZXIpPC9saT4KKzwvdWw+CisKKzxoMz4yLjYuMjU6IEp1biA2IDIwMDY6PC9oMz4KKworPHA+RG8gbm90IHVzZSBvciBwYWNrYWdlIDIuNi4yNTwvcD4KKworPGgzPjIuNi4yNDogQXByIDI4IDIwMDY8L2gzPgorPHVsPgorICA8bGk+UG9ydGFiaWxpdHkgZml4ZXM6IGNvbmZpZ3VyZSBvbiBXaW5kb3dzLCB0ZXN0YXBpIGNvbXBpbGUgb24gd2luZG93cworICAgICAgKEthc2ltaWVyIEJ1Y2hjaWssIHZlbmthdCBuYWlkdSksIEJvcmxhbmQgQysrIDYgY29tcGlsZSAoRXJpYyBadXJjaGVyKSwKKyAgICAgIEhQLVVYIGNvbXBpbGVyIHdvcmthcm91bmQgKFJpY2sgSm9uZXMpLCB4bWwyLWNvbmZpZyBidWdmaXgsIGdjYy00LjEKKyAgICAgIGNsZWFudXBzLCBQeXRob24gZGV0ZWN0aW9uIHNjaGVtZSAoSm9zZXBoIFNhY2NvKSwgVVRGLTggZmlsZSBwYXRocyBvbgorICAgICAgV2luZG93cyAoUm9sYW5kIFNjaHdpbmdlbCkuCisgICAgICA8L2xpPgorICA8bGk+SW1wcm92ZW1lbnRzOiB4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyB4bWxET01XcmFwQ2xvbmVOb2RlIChLYXNpbWllcgorICAgICAgQnVjaGNpayksIFhNTCBjYXRhbG9nIGRlYnVnZ2luZyAoUmljayBKb25lcyksIHVwZGF0ZSB0byBVbmljb2RlIDQuMDEuPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogeG1sUGFyc2VDaHVuaygpIHByb2JsZW0gaW4gMi42LjIzLCB4bWxQYXJzZUluTm9kZUNvbnRleHQoKQorICAgICAgb24gSFRNTCBkb2NzLCBVUkkgYmVoYXZpb3VyIG9uIFdpbmRvd3MgKFJvYiBSaWNoYXJkcyksIGNvbW1lbnQgc3RyZWFtaW5nCisgICAgICBidWcsIHhtbFBhcnNlQ29tbWVudCAod2l0aCBXaWxsaWFtIEJyYWNrKSwgcmVnZXhwIGJ1ZyBmaXhlcyAoRFYgJmFtcDsKKyAgICAgIFlvdXJpIEdvbG92YW5vdiksIHhtbEdldE5vZGVQYXRoIG9uIHRleHQvQ0RBVEEgKEthc2ltaWVyKSwKKyAgICAgIG9uZSBSZWxheC1ORyBpbnRlcmxlYXZlIGJ1ZywgeG1sbGludCAtLXBhdGggYW5kIC0tdmFsaWQsCisgICAgICBYU0QgYnVnZml4ZXMgKEthc2ltaWVyKSwgcmVtb3ZlIGRlYnVnCisgICAgICBsZWZ0IGluIFB5dGhvbiBiaW5kaW5ncyAoTmljIEZlcnJpZXIpLCB4bWxDYXRhbG9nQWRkIGJ1ZyAoTWFydGluIENvbGUpLAorICAgICAgeG1sU2V0UHJvcCBmaXhlcyAoUm9iIFJpY2hhcmRzKSwgSFRNTCBJRG5lc3MgKFJvYiBSaWNoYXJkcyksIGEgbGFyZ2UKKyAgICAgIG51bWJlciBvZiBjbGVhbnVwcyBhbmQgc21hbGwgZml4ZXMgYmFzZWQgb24gQ292ZXJpdHkgcmVwb3J0cywgYnVnCisgICAgICBpbiBjaGFyYWN0ZXIgcmFuZ2VzLCBVbmljb2RlIHRhYmxlcyBjb25zdCAoQWl2YXJzIEthbHZhbnMpLCBzY2hlbWFzCisgICAgICBmaXggKFN0ZWZhbiBLb3N0KSwgeG1sUmVsYXhOR1BhcnNlIGVycm9yIGRlYWxsb2NhdGlvbiwgCisgICAgICB4bWxTY2hlbWFBZGRTY2hlbWFEb2MgZXJyb3IgZGVhbGxvY2F0aW9uLCBlcnJvciBoYW5kbGluZyBvbiB1bmFsbG93ZWQKKyAgICAgIGNvZGUgcG9pbnQsIGl4bWxsaW50IC0tbm9uZXQgdG8gbmV2ZXIgcmVhY2ggdGhlIG5ldCAoR2FyeSBDb2FkeSksCisgICAgICBsaW5lIGJyZWFrIGluIHdyaXRlciBhZnRlciBlbmQgUEkgKEphc29uIFZpZXJzKS4gPC9saT4KKyAgPGxpPkRvY3VtZW50YXRpb246IG1hbiBwYWdlcyB1cGRhdGVzIGFuZCBjbGVhbnVwcyAoRGFuaWVsIExlaWRlcnQpLjwvbGk+CisgIDxsaT5OZXcgZmVhdHVyZXM6IFJlbGF4IE5HIHN0cnVjdHVyZSBlcnJvciBoYW5kbGVycy48L2xpPgorPC91bD4KKworPGgzPjIuNi4yMzogSmFuIDUgMjAwNjwvaDM+Cis8dWw+CisgIDxsaT5wb3J0YWJpbGl0eSBmaXhlczogV2luZG93cyAoUm9iIFJpY2hhcmRzKSwgZ2V0YWRkcmluZm8gb24gV2luZG93cworICAgIChLb2xqYSBOb3dhaywgUm9iIFJpY2hhcmRzKSwgaWNjIHdhcm5pbmdzIChLamFydGFuIE1hcmFhcyksCisgICAgLS13aXRoLW1pbmltdW0gY29tcGlsYXRpb24gZml4ZXMgKFdpbGxpYW0gQnJhY2spLCBlcnJvciBjYXNlIGhhbmRsaW5nIGZpeAorICAgIG9uIFNvbGFyaXMgKEFsYmVydCBDaGluKSwgZG9uJ3QgdXNlICdsaXN0JyBhcyBwYXJhbWV0ZXIgbmFtZSByZXBvcnRlZCBieQorICAgIFNhbXVlbCBEaWF6IEdhcmNpYSwgbW9yZSBvbGQgVW5pY2VzIHBvcnRhYmlsaXR5IGZpeGVzIChBbGJlcnQgQ2hpbiksCisgICAgTWluR1cgY29tcGlsYXRpb24gKE1hcmsgSnVua2VyKSwgSFAtVVggY29tcGlsZXIgd2FybmluZ3MgKFJpY2sKKyAgSm9uZXMpLDwvbGk+CisgIDxsaT5jb2RlIGNsZWFudXA6IHhtbFJlcG9ydEVycm9yIChBZHJpYW4gTW91YXQpLCByZW1vdmUgeG1sQnVmZmVyQ2xvc2UKKyAgICAoR2VlcnQgSmFuc2VuKSwgdW5yZWFjaGFibGUgY29kZSAoT2xla3NhbmRyIEtvbm9uZW5rbyksIHJlZmFjdG9yaW5nCisgICAgcGFyc2luZyBjb2RlIChCam9ybiBSZWVzZSk8L2xpPgorICA8bGk+YnVnIGZpeGVzOiB4bWxCdWlsZFJlbGF0aXZlVVJJIGFuZCBlbXB0eSBwYXRoIChXaWxsaWFtIEJyYWNrKSwKKyAgICBjb21iaW5hdG9yeSBleHBsb3Npb24gYW5kIHBlcmZvcm1hbmNlcyBpbiByZWdleHAgY29kZSwgbGVhayBpbgorICAgIHhtbFRleHRSZWFkZXJSZWFkU3RyaW5nKCksIHhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzIHByb2JsZW0gKE1hc3NpbW8KKyAgICBNb3JhcmEpLCBJZGVudGl0eSBDb25zdHJhaW50cyBidWdzIGFuZCBhIHNlZ2ZhdWx0IChLYXNpbWllciBCdWNoY2lrKSwKKyAgICBYUGF0aCBwYXR0ZXJuIGJhc2VkIGV2YWx1YXRpb24gYnVncyAoRFYgJmFtcDsgS2FzaW1pZXIpLAorICAgIHhtbFNjaGVtYUNvbnRlbnRNb2RlbER1bXAoKSBtZW1vcnkgbGVhayAoS2FzaW1pZXIpLCBwb3RlbnRpYWwgbGVhayBpbgorICAgIHhtbFNjaGVtYUNoZWNrQ1NlbGVjdG9yWFBhdGgoKSwgeG1sVGV4dFdyaXRlclZTcHJpbnRmKCkgbWlzdXNlIG9mCisgICAgdnNucHJpbnRmIChXaWxsaWFtIEJyYWNrKSwgWEhUTUwgc2VyaWFsaXphdGlvbiBmaXggKFJvYiBSaWNoYXJkcyksIENSTEYKKyAgICBzcGxpdCBwcm9ibGVtIChXaWxsaWFtKSwgaXNzdWVzIHdpdGggbm9uLW5hbWVzcGFjZWQgYXR0cmlidXRlcyBpbgorICAgIHhtbEFkZENoaWxkKCkgeG1sQWRkTmV4dFNpYmxpbmcoKSBhbmQgeG1sQWRkUHJldlNpYmxpbmcoKSAoUm9iIFJpY2hhcmRzKSwKKyAgICBIVE1MIHBhcnNpbmcgb2Ygc2NyaXB0LCBQeXRob24gbXVzdCBub3Qgb3V0cHV0IHRvIHN0ZG91dCAoTmljIEZlcnJpZXIpLAorICAgIGV4Y2x1c2l2ZSBDMTROIG5hbWVzcGFjZSB2aXNpYmlsaXR5IChBbGVrc2V5IFNhbmluKSwgWFNEIGRhdGF5cGUKKyAgICB0b3RhbERpZ2l0cyBidWcgKEthc2ltaWVyIEJ1Y2hjaWspLCBlcnJvciBoYW5kbGluZyB3aGVuIHdyaXRpbmcgdG8gYW4KKyAgICB4bWxCdWZmZXIgKFJvYiBSaWNoYXJkcyksIHJ1bnRlc3Qgc2NoZW1hcyBlcnJvciBub3QgcmVwb3J0ZWQgKEhpc2FzaGkKKyAgICBGdWppbmFrYSksIHNpZ25lZC91bnNpZ25lZCBwcm9ibGVtIGluIGRhdGUvdGltZSBjb2RlIChBbGJlcnQgQ2hpbiksIGZpeAorICAgIFhTSSBkcml2ZW4gWFNEIHZhbGlkYXRpb24gKEthc2ltaWVyKSwgcGFyc2luZyBvZiB4czpkZWNpbWFsIChLYXNpbWllciksCisgICAgZml4IERURCB3cml0ZXIgb3V0cHV0IChSb2IgUmljaGFyZHMpLCBsZWFrIGluIHhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwKKyAgICAoR2FyeSBDb2FkeSksIHJlZ2V4cCBidWcgYWZmZWN0aW5nIHNjaGVtYXMgKEthc2ltaWVyKSwgY29uZmlndXJhdGlvbiBvZgorICAgIHJ1bnRpbWUgZGVidWdnaW5nIChLYXNpbWllciksIHhtbE5vZGVCdWZHZXRDb250ZW50IGJ1ZyBvbiBlbnRpdHkgcmVmcworICAgIChPbGVrc2FuZHIgS29ub25lbmtvKSwgeG1sUmVnRXhlY1B1c2hTdHJpbmcyIGJ1ZyAoU3JlZW5pIE5haXIpLAorICAgIGNvbXBpbGF0aW9uIGFuZCBidWlsZCBmaXhlcyAoTWljaGFlbCBEYXkpLCByZW1vdmVkIGRlcGVuZGFuY2llcyBvbgorICAgIHhtbFNjaGVtYVZhbGlkRXJyb3IgKEthc2ltaWVyKSwgYnVnIHdpdGggJmx0O3htbDpmb28vJmd0OywgbW9yZSBYUGF0aAorICAgIHBhdHRlcm4gYmFzZWQgZXZhbHVhdGlvbiBmaXhlcyAoS2FzaW1pZXIpPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogWFNEIFNjaGVtYXMgcmVkZWZpbml0aW9ucy9yZXN0cmljdGlvbnMgKEthc2ltaWVyCisgICAgQnVjaGNpayksIG5vZGUgY29weSBjaGVja3MgYW5kIGZpeCBmb3IgYXR0cmlidXRlIChSb2IgUmljaGFyZHMpLCBjb3VudGVkCisgICAgdHJhbnNpdGlvbiBidWcgaW4gcmVnZXhwcywgY3R4dC0mZ3Q7c3RhbmRhbG9uZSA9IC0yIHRvIGluZGljYXRlIG5vCisgICAgc3RhbmRhbG9uZSBhdHRyaWJ1dGUgd2FzIGZvdW5kLCBhZGQgeG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycygpCisgICAgKEthc2ltaWVyIEJ1Y2hjaWspLCBhZGQgeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCgpIHRvIEFQSQorICAgIChLYXNpbWllciksIGhhbmRsZSBnemlwcGVkIEhUVFAgcmVzb3VyY2VzIChHYXJ5IENvYWR5KSwgYWRkCisgICAgaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQuIChSb2IgUmljaGFyZHMpLDwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiB0eXBvIChNaWNoYWVsIERheSksIGxpYnhtbCBtYW4gcGFnZSAoQWxiZXJ0IENoaW4pLCBzYXZlCisgICAgZnVuY3Rpb24gdG8gWE1MIGJ1ZmZlciAoR2VlcnQgSmFuc2VuKSwgc21hbGwgZG9jIGZpeCAoQXJvbiBTdGFuc3ZpayksPC9saT4KKzwvdWw+CisKKzxoMz4yLjYuMjI6IFNlcCAxMiAyMDA1PC9oMz4KKzx1bD4KKyAgPGxpPmJ1aWxkIGZpeGVzOiBjb21waWxlIHdpdGhvdXQgc2NoZW1hdHJvbiAoU3TDqXBoYW5lIEJpZG91bCk8L2xpPgorICA8bGk+YnVnIGZpeGVzOiB4bWxEZWJ1Z0R1bXBOb2RlIG9uIG5hbWVzcGFjZSBub2RlIChPbGVnIFBhcmFzY2hlbmtvKWksCisgICAgQ0RBVEEgcHVzaCBwYXJzZXIgYnVnLCB4bWxFbGVtRHVtcCBwcm9ibGVtIHdpdGggWEhUTUwxIGRvYywKKyAgICBYTUxfRkVBVFVSRV94eHggY2xhc2ggd2l0aCBleHBhdCBoZWFkZXJzIHJlbmFtZWQgWE1MX1dJVEhfeHh4LCBmaXggc29tZQorICAgIG91dHB1dCBmb3JtYXR0aW5nIGZvciBtZXRhIGVsZW1lbnQgKFJvYiBSaWNoYXJkcyksIHNjcmlwdCBhbmQgc3R5bGUKKyAgICBYSFRNTDEgc2VyaWFsaXphdGlvbiAoRGF2aWQgTWFkb3JlKSwgQXR0cmlidXRlIGRlcml2YXRpb24gZml4dXBzIGluIFhTRAorICAgIChLYXNpbWllciBCdWNoY2lrKSwgYmV0dGVyIElEQyBlcnJvciByZXBvcnRzIChLYXNpbWllciBCdWNoY2lrKTwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IGFkZCBYTUxfU0FWRV9OT19FTVBUWSB4bWxTYXZlT3B0aW9uIChSb2IgUmljaGFyZHMpLCBhZGQKKyAgICBYTUxfU0FWRV9OT19YSFRNTCB4bWxTYXZlT3B0aW9uLCBYTUwgU2NoZW1hcyBpbXByb3ZlbWVudHMgcHJlcGFyaW5nIGZvcgorICAgIGRlcml2ZSAoS2FzaW1pZXIgQnVjaGNpaykuPC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb246IGdlbmVyYXRpb24gb2YgZ3RrLWRvYyBsaWtlIGRvY3MsIGludGVncmF0aW9uIHdpdGgKKyAgICBkZXZoZWxwLjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjIxOiBTZXAgNCAyMDA1PC9oMz4KKzx1bD4KKyAgPGxpPmJ1aWxkIGZpeGVzOiBDeWd3aW4gcG9ydGFiaWxpdHkgZml4ZXMgKEdlcnJpdCBQLiBIYWFzZSksIGNhbGxpbmcKKyAgICBjb252ZW50aW9uIHByb2JsZW1zIG9uIFdpbmRvd3MgKE1hcmN1cyBCb2VyZ2VyKSwgY2xlYW51cHMgYmFzZWQgb24gTGludXMnCisgICAgc3BhcnNlIHRvb2wsIHVwZGF0ZSBvZiB3aW4zMi9jb25maWd1cmUuanMgKFJvYiBSaWNoYXJkcyksIHJlbW92ZSB3YXJuaW5ncworICAgIG9uIFdpbmRvd3MoTWFyY3VzIEJvZXJnZXIpLCBjb21waWxhdGlvbiB3aXRob3V0IFNBWDEsIGRldGVjdGlvbiBvZiB0aGUKKyAgICBQeXRob24gYmluYXJ5LCB1c2UgJEdDQyBpbmVzdGFkIG9mICRDQyA9ICdnY2MnIChBbmRyZXcgVy4gTm9zZW5rbyksCisgICAgY29tcGlsYXRpb24vbGluayB3aXRoIHRocmVhZHMgYW5kIG9sZCBnY2MsIGNvbXBpbGUgcHJvYmxlbSBieSBDMzcwIG9uCisgICAgWi9PUyw8L2xpPgorICA8bGk+YnVnIGZpeGVzOiBodHRwX3Byb3h5IGVudmlyb25tZW50cyAoUGV0ZXIgQnJlaXRlbmxvaG5lciksIEhUTUwgVVRGLTgKKyAgICBidWcgKEppcmkgTmV0b2xpY2t5KSwgWFBhdGggTmFOIGNvbXBhcmUgYnVnIChXaWxsaWFtIEJyYWNrKSwKKyAgICBodG1sUGFyc2VTY3JpcHQgcG90ZW50aWFsIGJ1ZywgU2NoZW1hcyByZWdleHAgaGFuZGxpbmcgb2Ygc3BhY2VzLCBCYXNlNjQKKyAgICBTY2hlbWFzIGNvbXBhcmlzb25zIE5JU1QgcGFzc2VzLCBhdXRvbWF0YSBidWlsZCBlcnJvciB4c2Q6YWxsLAorICAgIHhtbEdldE5vZGVQYXRoIGZvciBuYW1lc3BhY2VkIGF0dHJpYnV0ZXMgKEFsZXhhbmRlciBQb2hveWRhKSwgeG1sU2NoZW1hcworICAgIGZvcmVpZ24gbmFtZXNwYWNlcyBoYW5kbGluZywgWE1MIFNjaGVtYXMgZmFjZXQgY29tcGFyaXNvbiAoS3Vwcml5YW5vdgorICAgIEFuYXRvbGlqKSwgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIgZXJyb3IgcmVwb3J0IChLYXNpbWllciBCdWNoY2lrKSwgeG1sOgorICAgIG5hbWVzcGFjZSBhaG5kbGluZyBpbiBTY2hlbWFzIChLYXNpbWllciksIGVtcHR5IG1vZGVsIGdyb3VwIGluIFNjaGVtYXMKKyAgICAoS2FzaW1pZXIpLCB3aWxjYXJkIGluIFNjaGVtYXMgKEthc2ltaWVyKSwgVVJJIGNvbXBvc2l0aW9uIChXaWxsaWFtKSwKKyAgICB4czphbnlUeXBlIGluIFNjaGVtYXMgKEthc2ltaWVyKSwgUHl0aG9uIHJlc29sdmVyIGVtbWl0dGluZyBlcnJvcgorICAgIG1lc3NhZ2VzIGRpcmVjdGx5LCBQeXRob24geG1sQXR0ci5wYXJlbnQgKEpha3ViIFBpb3RyIENsYXBhKSwgdHJ5aW5nIHRvCisgICAgZml4IHRoZSBmaWxlIHBhdGgvVVJJIGNvbnZlcnNpb24sIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUgZml4IChSb2IKKyAgICBSaWNoYXJkcyksIHhtbFNjaGVtYUZyZWVBbm5vdCBtZW1sZWFrIChLYXNpbWllciksIEhUTUwgVVRGLTgKKyAgICBzZXJpYWxpemF0aW9uLCBzdHJlYW1pbmcgWFBhdGgsIFNjaGVtYXMgZGV0ZXJtaW5pc20gZGV0ZWN0aW9uIHByb2JsZW0sCisgICAgWEluY2x1ZGUgYnVnLCBTY2hlbWFzIGNvbnRleHQgdHlwZSAoRGVhbiBIaWxsKSwgdmFsaWRhdGlvbiBmaXggKERlcmVrCisgICAgUG9vbiksIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVbTnNdIG5hbWVzcGFjZXMgKFJvYiBSaWNoYXJkcyksIFNjaGVtYXMKKyAgICB0eXBlIGZpeCAoS3ViYSBOb3dha293c2tpKSwgVVRGLTggcGFyc2VyIGJ1ZywgZXJyb3IgaW4gZW5jb2RpbmcgaGFuZGxpbmcsCisgICAgeG1sR2V0TGluZU5vIGZpeGVzLCBidWcgb24gZW50aXRpZXMgaGFuZGxpbmcsIGVudGl0eSBuYW1lIGV4dHJhY3Rpb24gaW4KKyAgICBlcnJvciBoYW5kbGluZyB3aXRoIFhJbmNsdWRlLCB0ZXh0IG5vZGVzIGluIEhUTUwgYm9keSB0YWdzIChHYXJ5IENvYWR5KSwKKyAgICB4bWw6aWQgYW5kIElEbmVzcyBhdCB0aGUgdHJlZWUgbGV2ZWwgZml4ZXMsIFhQYXRoIHN0cmVhbWluZyBwYXR0ZXJucworICBidWdzLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IHN0cnVjdHVyZWQgaW50ZXJmYWNlcyBmb3Igc2NoZW1hcyBhbmQgUk5HIGVycm9yIHJlcG9ydHMKKyAgICAoTWFyY3VzIEJvZXJnZXIpLCBvcHRpbWl6YXRpb24gb2YgdGhlIGNoYXIgZGF0YSBpbm5lciBsb29wIHBhcnNpbmcKKyAgICAodGhhbmtzIHRvIEJlaGRhZCBFc2ZhaGJvZCBmb3IgdGhlIGlkZWEpLCBzY2hlbWF0cm9uIHZhbGlkYXRpb24gdGhvdWdoCisgICAgbm90IGZpbmlzaGVkIHlldCwgeG1sU2F2ZU9wdGlvbiB0byBvbWl0IFhNTCBkZWNsYXJhdGlvbiwga2V5cmVmIG1hdGNoCisgICAgZXJyb3IgcmVwb3J0cyAoS2FzaW1pZXIpLCBmb3JtYWwgZXhwcmVzc2lvbiBoYW5kbGluZyBjb2RlIG5vdCBwbHVnZ2VkCisgICAgeWV0LCBtb3JlIGxheCBtb2RlIGZvciB0aGUgSFRNTCBwYXJzZXIsIHBhcnNlciBYTUxfUEFSU0VfQ09NUEFDVCBvcHRpb24KKyAgICBmb3IgdGV4dCBub2RlcyBhbGxvY2F0aW9uLjwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiB4bWxsaW50IG1hbiBwYWdlIGhhZCAtLW5vbmV0IGR1cGxpY2F0ZWQ8L2xpPgorPC91bD4KKworPGgzPjIuNi4yMDogSnVsIDEwIDIwMDU8L2gzPgorPHVsPgorICA8bGk+YnVpbGQgZml4ZXM6IFdpbmRvd3MgYnVpbGQgKFJvYiBSaWNoYXJkcyksIE1pbmd3IGNvbXBpbGF0aW9uIChJZ29yCisgICAgWmxhdGtvdmljKSwgV2luZG93cyBNYWtlZmlsZSAoSWdvciksIGdjYyB3YXJuaW5ncyAoS2FzaW1pZXIgYW5kCisgICAgYW5kcml5QGdvb2dsZS5jb20pLCB1c2UgZ2NjIHdlYWsgcmVmZXJlbmNlcyB0byBwdGhyZWFkIHRvIGF2b2lkIHRoZQorICAgIHB0aHJlYWQgZGVwZW5kYW5jeSBvbiBMaW51eCwgY29tcGlsYXRpb24gcHJvYmxlbSAoU3RldmUgTmFpcm4pLCBjb21waWxpbmcKKyAgICBvZiBzdWJzZXQgKE1vcnRlbiBXZWxpbmRlciksIElQdjYvc3NfZmFtaWx5IGNvbXBpbGF0aW9uIChXaWxsaWFtIEJyYWNrKSwKKyAgICBjb21waWxhdGlvbiB3aGVuIGRpc2FibGluZyBwYXJ0cyBvZiB0aGUgbGlicmFyeSwgc3RhbmRhbG9uZSB0ZXN0CisgICAgZGlzdHJpYnV0aW9uLjwvbGk+CisgIDxsaT5idWcgZml4ZXM6IGJ1ZyBpbiBsYW5nKCksIG1lbW9yeSBjbGVhbnVwIG9uIGVycm9ycyAoV2lsbGlhbSBCcmFjayksCisgICAgSFRUUCBxdWVyeSBzdHJpbmdzIChBcm9uIFN0YW5zdmlrKSwgbWVtb3J5IGxlYWsgaW4gRFREIChXaWxsaWFtKSwgaW50ZWdlcgorICAgIG92ZXJmbG93IGluIFhQYXRoIChXaWxsaWFtKSwgbmFub2Z0cCBidWZmZXIgc2l6ZSwgcGF0dGVybiAiLiIgYXB0aCBmaXh1cAorICAgIChLYXNpbWllciksIGxlYWsgaW4gdHJlZSByZXBvcnRlZCBieSBNYWxjb2xtIFJvd2UsIHJlcGxhY2VOb2RlIHBhdGNoCisgICAgKEJyZW50IEhlbmRyaWNrcyksIENEQVRBIHdpdGggTlVMTCBjb250ZW50IChNYXJrIFZha29jKSwgeG1sOmJhc2UgZml4dXAKKyAgICBvbiBYSW5jbHVkZSAoV2lsbGlhbSksIHBhdHRlcm4gZml4ZXMgKFdpbGxpYW0pLCBhdHRyaWJ1dGUgYnVnIGluCisgICAgZXhjbHVzaXZlIGMxNG4gKEFsZWtzZXkgU2FuaW4pLCB4bWw6c3BhY2UgYW5kIHhtbDpsYW5nIHdpdGggU0FYMiAoUm9iCisgICAgUmljaGFyZHMpLCBuYW1lc3BhY2UgdHJvdWJsZSBpbiBjb21wbGV4IHBhcnNpbmcgKE1hbGNvbG0gUm93ZSksIFhTRCB0eXBlCisgICAgUU5hbWVzIGZpeGVzIChLYXNpbWllciksIFhQYXRoIHN0cmVhbWluZyBmaXh1cHMgKFdpbGxpYW0pLCBSZWxheE5HIGJ1ZworICAgIChSb2IgUmljaGFyZHMpLCBTY2hlbWFzIGZvciBTY2hlbWFzIGZpeGVzIChLYXNpbWllciksIHJlbW92YWwgb2YgSUQgKFJvYgorICAgIFJpY2hhcmRzKSwgYSBzbWFsbCBSZWxheE5HIGxlYWssIEhUTUwgcGFyc2luZyBpbiBwdXNoIG1vZGUgYnVnIChKYW1lcworICAgIEJ1cnNhKSwgZmFpbHVyZSB0byBkZXRlY3QgVVRGLTggcGFyc2luZyBidWdzIGluIENEQVRBIHNlY3Rpb25zLAorICAgIGFyZUJsYW5rcygpIGhldXJpc3RpYyBmYWlsdXJlLCBkdXBsaWNhdGUgYXR0cmlidXRlcyBpbiBEVEQgYnVnCisgIChXaWxsaWFtKS48L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBsb3Qgb2Ygd29yayBvbiBTY2hlbWFzIGJ5IEthc2ltaWVyIEJ1Y2hjaWsgYm90aCBvbgorICAgIGNvbmZvcm1hbmNlIGFuZCBzdHJlYW1pbmcsIFNjaGVtYXMgdmFsaWRhdGlvbiBtZXNzYWdlcyAoS2FzaW1pZXIgQnVjaGNpaywKKyAgICBNYXR0aGV3IEJ1cmdlc3MpLCBuYW1lc3BhY2UgcmVtb3ZhbCBhdCB0aGUgcHl0aG9uIGxldmVsIChCcmVudAorICAgIEhlbmRyaWNrcyksIFVwZGF0ZSB0byBuZXcgU2NoZW1hcyByZWdyZXNzaW9uIHRlc3RzIGZyb20gVzNDL05pc3QKKyAgICAoS2FzaW1pZXIpLCB4bWxTY2hlbWFWYWxpZGF0ZUZpbGUoKSAoS2FzaW1pZXIpLCBpbXBsZW1lbnRhdGlvbiBvZgorICAgIHhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwgYW5kIHhtbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwgKEphbWVzIFdlcnQpLAorICAgIHN0YW5kYWxvbmUgdGVzdCBmcmFtZXdvcmsgYW5kIHByb2dyYW1zLCBuZXcgRE9NIGltcG9ydCBBUElzCisgICAgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMoKSB4bWxET01XcmFwQWRvcHROb2RlKCkgYW5kCisgICAgeG1sRE9NV3JhcFJlbW92ZU5vZGUoKSwgZXh0ZW5zaW9uIG9mIHhtbGxpbnQgY2FwYWJpbGl0aWVzIGZvciBTQVggYW5kCisgICAgU2NoZW1hcyByZWdyZXNzaW9uIHRlc3RzLCB4bWxTdG9wUGFyc2VyKCkgYXZhaWxhYmxlIGluIHB1bGwgbW9kZSB0b28sCisgICAgaWVuaGFuY2VtZW50IHRvIHhtbGxpbnQgLS1zaGVsbCBuYW1lc3BhY2VzIHN1cHBvcnQsIFdpbmRvd3MgcG9ydCBvZiB0aGUKKyAgICBzdGFuZGFsb25lIHRlc3RpbmcgdG9vbHMgKEthc2ltaWVyIGFuZCBXaWxsaWFtKSwKKyAgICB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSgpIHhtbFNjaGVtYVNBWFBsdWcoKSBhbmQgeG1sU2NoZW1hU0FYVW5wbHVnKCkgU0FYCisgICAgU2NoZW1hcyBBUElzLCBTY2hlbWFzIHhtbFJlYWRlciBzdXBwb3J0LjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjE5OiBBcHIgMDIgMjAwNTwvaDM+Cis8dWw+CisgIDxsaT5idWlsZCBmaXhlczogZHJvcCAubGEgZnJvbSBSUE1zLCAtLXdpdGgtbWluaW11bSBidWlsZCBmaXggKFdpbGxpYW0KKyAgICBCcmFjayksIHVzZSBYTUxfU09DS0xFTl9UIGluc3RlYWQgb2YgU09DS0xFTl9UIGJlY2F1c2UgaXQgYnJlYWtzIHdpdGggQUlYCisgICAgNS4zIGNvbXBpbGVyLCBmaXhlZCBlbGZnY2NoYWNrLmggZ2VuZXJhdGlvbiBhbmQgUExUIHJlZHVjdGlvbiBjb2RlIG9uCisgICAgTGludXgvRUxGL2djYzQ8L2xpPgorICA8bGk+YnVnIGZpeGVzOiBzY2hlbWFzIHR5cGUgZGVjaW1hbCBmaXh1cHMgKFdpbGxpYW0gQnJhY2spLCB4bW1saW50IHJldHVybgorICAgIGNvZGUgKEdlcnJ5IE11cnBoeSksIHNtYWxsIHNjaGVtYXMgZml4ZXMgKE1hdHRoZXcgQnVyZ2VzcyBhbmQgR1VZCisgICAgRmFicmljZSksIHdvcmthcm91bmQgIkRBVjoiIG5hbWVzcGFjZSBicm9rZW5lc3MgaW4gYzE0biAoQWxla3NleSBTYW5pbiksCisgICAgc2VnZmF1bHQgaW4gU2NoZW1hcyAoS2FzaW1pZXIgQnVjaGNpayksIFNjaGVtYXMgYXR0cmlidXRlIHZhbGlkYXRpb24KKyAgICAoS2FzaW1pZXIpLCBQcm9wIHJlbGF0ZWQgZnVuY3Rpb25zIGFuZCB4bWxOZXdOb2RlRWF0TmFtZSAoUm9iIFJpY2hhcmRzKSwKKyAgICBIVE1MIHNlcmlhbGl6YXRpb24gb2YgbmFtZSBhdHRyaWJ1dGUgb24gYSBlbGVtZW50cywgUHl0aG9uIGVycm9yIGhhbmRsZXJzCisgICAgbGVha3MgYW5kIGltcHJvdmVtZW50IChCcmVudCBIZW5kcmlja3MpLCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGluCisgICAgZW5jb2RpbmcgY29kZSwgUmVsYXgtTkcgdmFsaWRhdGlvbiBidWcsIHBvdGVudGlhbCBjcmFzaCBpZgorICAgIGdub3JhYmxlV2hpdGVzcGFjZSBpcyBOVUxMLCB4bWxTQVhQYXJzZURvYyBhbmQgeG1sUGFyc2VEb2Mgc2lnbmF0dXJlcywKKyAgICBzd2l0Y2hlZCBiYWNrIHRvIGFzc3VtaW5nIFVURi04IGluIGNhc2Ugbm8gZW5jb2RpbmcgaXMgZ2l2ZW4gYXQKKyAgICBzZXJpYWxpemF0aW9uIHRpbWU8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBsb3Qgb2Ygd29yayBvbiBTY2hlbWFzIGJ5IEthc2ltaWVyIEJ1Y2hjaWsgb24gZmFjZXRzCisgICAgY2hlY2tpbmcgYW5kIGFsc28gbWl4ZWQgaGFuZGxpbmcuPC9saT4KKyAgPGxpPjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjE4OiBNYXIgMTMgMjAwNTwvaDM+Cis8dWw+CisgIDxsaT5idWlsZCBmaXhlczogd2FybmluZ3MgKFBldGVyIEJyZWl0ZW5sb2huZXIpLCB0ZXN0YXBpLmMgZ2VuZXJhdGlvbiwKKyAgICBCYWtlZmlsZSBzdXBwb3J0IChGcmFuY2VzY28gTW9udG9yc2kpLCBXaW5kb3dzIGNvbXBpbGF0aW9uIChKb2VsIFJlZWQpLAorICAgIHNvbWUgZ2NjNCBmaXhlcywgSFAtVVggcG9ydGFiaWxpdHkgZml4ZXMgKFJpY2sgSm9uZXMpLjwvbGk+CisgIDxsaT5idWcgZml4ZXM6IHhtbFNjaGVtYUVsZW1lbnREdW1wIG5hbWVzcGFjZSAoS2FzaW1pZXIgQnVjaGNpayksIHB1c2ggYW5kCisgICAgeG1scmVhZGVyIHN0b3BwaW5nIG9uIG5vbi1mYXRhbCBlcnJvcnMsIHRocmVhZCBzdXBwb3J0IGZvciBkaWN0aW9ubmFyaWVzCisgICAgcmVmZXJlbmNlIGNvdW50aW5nIChHYXJ5IENvYWR5KSwgaW50ZXJuYWwgc3Vic2V0IGFuZCBwdXNoIHByb2JsZW0sIFVSTAorICAgIHNhdmVkIGluIHhtbENvcHlEb2MsIHZhcmlvdXMgc2NoZW1hcyBidWcgZml4ZXMgKEthc2ltaWVyKSwgUHl0aG9uIHBhdGhzCisgICAgZml4dXAgKFN0ZXBoYW5lIEJpZG91bCksIHhtbEdldE5vZGVQYXRoIGFuZCBuYW1lc3BhY2VzLCB4bWxTZXROc1Byb3AgZml4CisgICAgKE1pa2UgSG9tbWV5KSwgd2FybmluZyBzaG91bGQgbm90IGNvdW50IGFzIGVycm9yIChXaWxsaWFtIEJyYWNrKSwKKyAgICB4bWxDcmVhdGVQdXNoUGFyc2VyIGVtcHR5IGNodW5rLCBYSW5jbHVkZSBwYXJzZXIgZmxhZ3MgKFdpbGxpYW0pLCBjbGVhbnVwCisgICAgRlRQIGFuZCBIVFRQIGNvZGUgdG8gcmV1c2UgdGhlIHVyaSBwYXJzaW5nIGFuZCBJUHY2IChXaWxsaWFtKSwKKyAgICB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyBmaXggKFJvYiBSaWNoYXJkcyksIFhNTExJTlRfSU5ERU5UIGJlaW5nCisgICAgZW1wdHkgKFdpbGxpYW0pLCB4bWxXcml0ZXIgYnVncyAoUm9iIFJpY2hhcmRzKSwgbXVsdGl0aHJlYWRpbmcgb24gV2luZG93cworICAgIChSaWNoIFNhbHopLCB4bWxTZWFyY2hOc0J5SHJlZiBmaXggKEthc2ltaWVyKSwgUHl0aG9uIGJpbmRpbmcgbGVhayAoQnJlbnQKKyAgICBIZW5kcmlja3MpLCBhbGlhc2luZyBidWcgZXhwb3NlZCBieSBnY2M0IG9uIHMzOTAsIHhtbFRleHRSZWFkZXJOZXh0IGJ1ZworICAgIChSb2IgUmljaGFyZHMpLCBTY2hlbWFzIGRlY2ltYWwgdHlwZSBmaXhlcyAoV2lsbGlhbSBCcmFjayksCisgICAgeG1sQnl0ZUNvbnN1bWVkIHN0YXRpYyBidWZmZXIgKEJlbiBNYXVyZXIpLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudDogc3BlZWR1cCBwYXJzaW5nIGNvbW1lbnRzIGFuZCBEVERzLCBkaWN0aW9ubmFyeSBzdXBwb3J0IGZvcgorICAgIGhhc2ggdGFibGVzLCBTY2hlbWFzIElkZW50aXR5IGNvbnN0cmFpbnRzIChLYXNpbWllciksIHN0cmVhbWluZyBYUGF0aAorICAgIHN1YnNldCwgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcgYWRkZWQgKEJqb3JuIFJlZXNlKSwgU2NoZW1hcyBjYW5vbmljYWwKKyAgICB2YWx1ZXMgaGFuZGxpbmcgKEthc2ltaWVyKSwgYWRkIHhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQgKEFyb24KKyAgU3RhbnN2aWspLDwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOiBXaWtpIHN1cHBvcnQgKEpvZWwgUmVlZCk8L2xpPgorPC91bD4KKworPGgzPjIuNi4xNzogSmFuIDE2IDIwMDU8L2gzPgorPHVsPgorICA8bGk+YnVpbGQgZml4ZXM6IFdpbmRvd3MsIHdhcm5pbmdzIHJlbW92YWwgKFdpbGxpYW0gQnJhY2spLAorICAgIG1haW50YWluZXItY2xlYW4gZGVwZW5kZW5jeShXaWxsaWFtKSwgYnVpbGQgaW4gYSBkaWZmZXJlbnQgZGlyZWN0b3J5CisgICAgKFdpbGxpYW0pLCBmaXhpbmcgLS13aXRoLW1pbmltdW0gY29uZmlndXJlIGJ1aWxkIChXaWxsaWFtKSwgQmVPUyBidWlsZAorICAgIChNYXJjaW4gS29uaWNraSksIFB5dGhvbi0yLjQgZGV0ZWN0aW9uIChXaWxsaWFtKSwgY29tcGlsYXRpb24gb24gQUlYIChEYW4KKyAgICBNY05pY2hvbCk8L2xpPgorICA8bGk+YnVnIGZpeGVzOiB4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyAoUm9iIFJpY2hhcmRzKSwgeG1sQ3R4dFJlYWRGaWxlKCkKKyAgICB0byB1c2UgdGhlIGNhdGFsb2cocyksIGxvb3Agb24gb3V0cHV0IChXaWxsaWFtIEJyYWNrKSwgWFBhdGggbWVtb3J5IGxlYWssCisgICAgSUQgZGVhbGxvY2F0aW9uIHByb2JsZW0gKFN0ZXZlIFNoZXBhcmQpLCBkZWJ1Z0R1bXBOb2RlIGNyYXNoIChXaWxsaWFtKSwKKyAgICB3YXJuaW5nIG5vdCB1c2luZyBlcnJvciBjYWxsYmFjayAoV2lsbGlhbSksIHhtbFN0b3BQYXJzZXIgYnVnIChXaWxsaWFtKSwKKyAgICBVVEYtMTYgd2l0aCBCT00gb24gRFREcyAoV2lsbGlhbSksIG5hbWVzcGFjZSBidWcgb24gZW1wdHkgZWxlbWVudHMgaW4KKyAgICBwdXNoIG1vZGUgKFJvYiBSaWNoYXJkcyksIGxpbmUgYW5kIGNvbCBjb21wdXRhdGlvbnMgZml4dXBzIChBbGVrc2V5CisgICAgU2FuaW4pLCB4bWxVUklFc2NhcGUgZml4IChXaWxsaWFtKSwgeG1sWFBhdGhFcnIgb24gYmFkIHJhbmdlIChXaWxsaWFtKSwKKyAgICBwYXR0ZXJucyB3aXRoIHRvbyBtYW55IHN0ZXBzLCBidWcgaW4gUk5HIGNob2ljZSBvcHRpbWl6YXRpb24sIGxpbmUgbnVtYmVyCisgICAgc29tZXRpbWVzIG1pc3NpbmcuPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogWFNEIFNjaGVtYXMgKEthc2ltaWVyIEJ1Y2hjaWspLCBweXRob24gZ2VuZXJhdG9yCisgICAgKFdpbGxpYW0pLCB4bWxVVEY4U3RycG9zIHNwZWVkdXAgKFdpbGxpYW0pLCB1bmljb2RlIFB5dGhvbiBzdHJpbmdzCisgICAgKFdpbGxpYW0pLCBYU0QgZXJyb3IgcmVwb3J0cyAoS2FzaW1pZXIgQnVjaGNpayksIFB5dGhvbiBfX3N0cl9fIGNhbGwKKyAgICBzZXJpYWxpemUoKS48L2xpPgorICA8bGk+bmV3IEFQSXM6IGFkZGVkIHhtbERpY3RFeGlzdHMoKSwgR2V0TGluZU51bWJlciBhbmQgR2V0Q29sdW1uTnVtYmVyIGZvcgorICAgIHRoZSB4bWxSZWFkZXIgKEFsZWtzZXkgU2FuaW4pLCBEeW5hbWljIFNoYXJlZCBMaWJyYXJpZXMgQVBJcyAobW9zdGx5IEpvZWwKKyAgICBSZWVkKSwgZXJyb3IgZXh0cmFjdGlvbiBBUEkgZnJvbSByZWdleHBzLCBuZXcgWE1MU2F2ZSBvcHRpb24gZm9yIGZvcm1hdAorICAgIChQaGlsIFNoYWZlcik8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbjogc2l0ZSBpbXByb3ZlbWVudCAoSm9obiBGbGVjayksIEZBUSBlbnRyaWVzCisgIChXaWxsaWFtKS48L2xpPgorPC91bD4KKworPGgzPjIuNi4xNjogTm92IDEwIDIwMDQ8L2gzPgorPHVsPgorICA8bGk+Z2VuZXJhbCBoYXJkZW5pbmcgYW5kIGJ1ZyBmaXhpbmcgY3Jvc3NpbmcgYWxsIHRoZSBBUEkgYmFzZWQgb24gbmV3CisgICAgYXV0b21hdGVkIHJlZ3Jlc3Npb24gdGVzdGluZzwvbGk+CisgIDxsaT5idWlsZCBmaXg6IElQdjYgYnVpbGQgYW5kIHRlc3Qgb24gQUlYIChEb2RqaSBTZWtldGVsaSk8L2xpPgorICA8bGk+YnVnIGZpeGVzOiBwcm9ibGVtIHdpdGggWE1MOjpMaWJ4bWwgcmVwb3J0ZWQgYnkgUGV0ciBQYWphcywgIGVuY29kaW5nCisgICAgY29udmVyc2lvbiBmdW5jdGlvbnMgcmV0dXJuIHZhbHVlcywgVVRGLTggYnVnIGFmZmVjdGluZyBYUGF0aCByZXBvcnRlZCBieQorICAgIE1hcmt1cyBCZXJ0aGVhdSwgY2F0YWxvZyBwcm9ibGVtIHdpdGggTlVMTCBlbnRyaWVzIChXaWxsaWFtIEJyYWNrKTwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiBmaXggdG8geG1sbGludCBtYW4gcGFnZSwgc29tZSBBUEkgZnVuY3Rpb24gZGVzY3JpdHBpb24KKyAgICB3ZXJlIHVwZGF0ZWQuPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogRFREIHZhbGlkYXRpb24gQVBJcyBwcm92aWRlZCBhdCB0aGUgUHl0aG9uIGxldmVsIChCcmVudAorICAgIEhlbmRyaWNrcyk8L2xpPgorPC91bD4KKworPGgzPjIuNi4xNTogT2N0IDI3IDIwMDQ8L2gzPgorPHVsPgorICA8bGk+c2VjdXJpdHkgZml4ZXMgb24gdGhlIG5hbm9mdHAgYW5kIG5hbm9odHRwIG1vZHVsZXM8L2xpPgorICA8bGk+YnVpbGQgZml4ZXM6IHhtbGxpbnQgZGV0ZWN0aW9uIGJ1ZyBpbiBjb25maWd1cmUsIGJ1aWxkaW5nIG91dHNpZGUgdGhlCisgICAgc291cmNlIHRyZWUgKFRob21hcyBGaXR6c2ltbW9ucyk8L2xpPgorICA8bGk+YnVnIGZpeGVzOiBIVE1MIHBhcnNlciBvbiBicm9rZW4gQVNDSUkgY2hhcnMgaW4gbmFtZXMgKFdpbGxpYW0pLCBQeXRob24KKyAgICBwYXRocyAoTWFsY29sbSBUcmVkaW5uaWNrKSwgeG1sSGFzTnNQcm9wIGFuZCBkZWZhdWx0IG5hbWVzcGFjZSAoV2lsbGlhbSksCisgICAgc2F2aW5nIHRvIHB5dGhvbiBmaWxlIG9iamVjdHMgKE1hbGNvbG0gVHJlZGlubmljayksIERURCBsb29rdXAgZml4CisgICAgKE1hbGNvbG0pLCBzYXZlIGJhY2sgJmx0O2dyb3VwJmd0OyBpbiBjYXRhbG9ncyAoV2lsbGlhbSksIHRyZWUgYnVpbGQKKyAgICBmaXhlcyAoRFYgYW5kIFJvYiBSaWNoYXJkcyksIFNjaGVtYXMgbWVtb3J5IGJ1Zywgc3RydWN0dXJlZCBlcnJvciBoYW5kbGVyCisgICAgb24gUHl0aG9uIDY0Yml0cywgdGhyZWFkIGxvY2FsIG1lbW9yeSBkZWFsbG9jYXRpb24sIG1lbW9yeSBsZWFrIHJlcG9ydGVkCisgICAgYnkgVm9sa2VyIFJvdGgsIHhtbFZhbGlkYXRlRHRkIGluIHRoZSBwcmVzZW5jZSBvZiBhbiBpbnRlcm5hbCBzdWJzZXQsCisgICAgZW50aXRpZXMgYW5kIF9wcml2YXRlIHByb2JsZW0gKFdpbGxpYW0pLCB4bWxCdWlsZFJlbGF0aXZlVVJJIGVycm9yCisgICAgKFdpbGxpYW0pLjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHM6IGJldHRlciBYSW5jbHVkZSBlcnJvciByZXBvcnRzIChXaWxsaWFtKSwgdHJlZSBkZWJ1Z2dpbmcKKyAgICBtb2R1bGUgYW5kIHRlc3RzLCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgYXQgdGhlIFJlYWRlciBBUEkgKEdyYWhhbQorICAgIEJlbm5ldHQpLCBhZGQgc3VwcG9ydCBmb3IgUEkgaW4gdGhlIEhUTUwgcGFyc2VyLjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjE0OiBTZXAgMjkgMjAwNDwvaDM+Cis8dWw+CisgIDxsaT5idWlsZCBmaXhlczogY29uZmlndXJlIHBhdGhzIGZvciB4bWxsaW50IGFuZCB4c2x0cHJvYywgY29tcGlsYXRpb24KKyAgICB3aXRob3V0IEhUTUwgcGFyc2VyLCBjb21waWxhdGlvbiB3YXJuaW5nIGNsZWFudXBzIChXaWxsaWFtIEJyYWNrICZhbXA7CisgICAgTWFsY29sbSBUcmVkaW5uaWNrKSwgVk1TIG1ha2VmaWxlIHVwZGF0ZSAoQ3JhaWcgQmVycnkpLDwvbGk+CisgIDxsaT5idWcgZml4ZXM6IHhtbEdldFVURjhDaGFyIChXaWxsaWFtIEJyYWNrKSwgUU5hbWUgcHJvcGVydGllcyAoS2FzaW1pZXIKKyAgICBCdWNoY2lrKSwgWEluY2x1ZGUgdGVzdGluZywgTm90YXRpb24gc2VyaWFsaXphdGlvbiwgVVRGOFRvSVNPODg1OXgKKyAgICB0cmFuc2NvZGluZyAoTWFyayBJdHpjb3ZpdHopLCBsb3RzIG9mIFhNTCBTY2hlbWFzIGNsZWFudXAgYW5kIGZpeGVzCisgICAgKEthc2ltaWVyKSwgQ2hhbmdlTG9nIGNsZWFudXAgKFN0ZXBhbiBLYXNhbCksIG1lbW9yeSBmaXhlcyAoTWFyayBWYWtvYyksCisgICAgaGFuZGxpbmcgb2YgZmFpbGVkIHJlYWxsb2MoKSwgb3V0IG9mIGJvdW5kIGFycmF5IGFkcmVzc2luZyBpbiBTY2hlbWFzCisgICAgZGF0ZSBoYW5kbGluZywgUHl0aG9uIHNwYWNlL3RhYnMgY2xlYW51cHMgKE1hbGNvbG0gVHJlZGlubmljayksIE5NVE9LRU5TCisgICAgRTIwIHZhbGlkYXRpb24gZml4IChNYWxjb2xtKSw8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBhZGRlZCBXM0MgWE1MIFNjaGVtYXMgdGVzdHN1aXRlIChLYXNpbWllciBCdWNoY2lrKSwgYWRkCisgICAgeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50IChLYXNpbWllciksIFB5dGhvbiBleGNlcHRpb24gaGllcmVhcmNoeQorICAgIChNYWxjb2xtIFRyZWRpbm5pY2spLCBQeXRob24gbGlieG1sMiBkcml2ZXIgaW1wcm92ZW1lbnQgKE1hbGNvbG0KKyAgICBUcmVkaW5uaWNrKSwgU2NoZW1hcyBzdXBwb3J0IGZvciB4c2k6c2NoZW1hTG9jYXRpb24sCisgICAgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24sIHhzaTp0eXBlIChLYXNpbWllciBCdWNoY2lrKTwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjEzOiBBdWcgMzEgMjAwNDwvaDM+Cis8dWw+CisgIDxsaT5idWlsZCBmaXhlczogV2luZG93cyBhbmQgemxpYiAoSWdvciBabGF0a292aWMpLCAtTyBmbGFnIHdpdGggZ2NjLAorICAgIFNvbGFyaXMgY29tcGlsZXIgd2FybmluZywgZml4aW5nIFJQTSBCdWlsZFJlcXVpcmVzLDwvbGk+CisgIDxsaT5maXhlczogRFREIGxvYWRpbmcgb24gV2luZG93cyAoSWdvciksIFNjaGVtYXMgZXJyb3IgcmVwb3J0cyBBUElzCisgICAgKEthc2ltaWVyIEJ1Y2hjaWspLCBTY2hlbWFzIHZhbGlkYXRpb24gY3Jhc2gsIHhtbENoZWNrVVRGOCAoV2lsbGlhbSBCcmFjaworICAgIGFuZCBKdWxpdXMgTWl0dGVuendlaSksIFNjaGVtYXMgZmFjZXQgY2hlY2sgKEthc2ltaWVyKSwgZGVmYXVsdCBuYW1lc3BhY2UKKyAgICBwcm9ibGVtIChXaWxsaWFtKSwgU2NoZW1hcyBoZXhiaW5hcnkgZW1wdHkgdmFsdWVzLCBlbmNvZGluZyBlcnJvciBjb3VsZAorICAgIGdlbnJhdGUgYSBzZXJpYWxpemF0aW9uIGxvb3AuPC9saT4KKyAgPGxpPkltcHJvdmVtZW50czogU2NoZW1hcyB2YWxpZGl0eSBpbXByb3ZlbWVudHMgKEthc2ltaWVyKSwgYWRkZWQgLS1wYXRoCisgICAgYW5kIC0tbG9hZC10cmFjZSBvcHRpb25zIHRvIHhtbGxpbnQ8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbjogdHV0b3JpYWwgdXBkYXRlIChKb2huIEZsZWNrKTwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjEyOiBBdWcgMjIgMjAwNDwvaDM+Cis8dWw+CisgIDxsaT5idWlsZCBmaXhlczogZml4IC0td2l0aC1taW5pbXVtLCBlbGZnY2NoYWNrLmggZml4ZXMgKFBldGVyCisgICAgQnJlaXRlbmxvaG5lciksIHBlcmwgcGF0aCBsb29rdXAgKFdpbGxpYW0pLCBkaWZmIG9uIFNvbGFyaXMgKEFsYmVydAorICAgIENoaW4pLCBzb21lIDY0Yml0cyBjbGVhbnVwcy48L2xpPgorICA8bGk+UHl0aG9uOiBhdm9pZCBhIHdhcm5pbmcgd2l0aCAyLjMgKFdpbGxpYW0gQnJhY2spLCB0YWIgYW5kIHNwYWNlIG1peGVzCisgICAgKFdpbGxpYW0pLCB3cmFwcGVyIGdlbmVyYXRvciBmaXhlcyAoV2lsbGlhbSksIEN5Z3dpbiBzdXBwb3J0IChHZXJyaXQgUC4KKyAgICBIYWFzZSksIG5vZGUgd3JhcHBlciBmaXggKE1hcmMtQW50b2luZSBQYXJlbnQpLCBYTUwgU2NoZW1hcyBzdXBwb3J0CisgICAgKFRvcmtlbCBMeW5nKTwvbGk+CisgIDxsaT5TY2hlbWFzOiBhIGxvdCBvZiBidWcgZml4ZXMgYW5kIGltcHJvdmVtZW50cyBmcm9tIEthc2ltaWVyIEJ1Y2hjaWs8L2xpPgorICA8bGk+Zml4ZXM6IFJWVCBmaXhlcyAoV2lsbGlhbSksIFhQYXRoIGNvbnRleHQgcmVzZXRzIGJ1ZyAoV2lsbGlhbSksIG1lbW9yeQorICAgIGRlYnVnIChTdGV2ZSBIYXkpLCBjYXRhbG9nIHdoaXRlIHNwYWNlIGhhbmRsaW5nIChQZXRlciBCcmVpdGVubG9obmVyKSwKKyAgICB4bWxSZWFkZXIgc3RhdGUgYWZ0ZXIgYXR0cmlidXRlIHJlYWRpbmcgKFdpbGxpYW0pLCBzdHJ1Y3R1cmVkIGVycm9yCisgICAgaGFuZGxlciAoV2lsbGlhbSksIFhJbmNsdWRlIGdlbmVyYXRlZCB4bWw6YmFzZSBmaXh1cCAoV2lsbGlhbSksIFdpbmRvd3MKKyAgICBtZW1vcnkgcmVhbGxvY2F0aW9uIHByb2JsZW0gKFN0ZXZlIEhheSksIE91dCBvZiBNZW1vcnkgY29uZGl0aW9ucworICAgIGhhbmRsaW5nIChXaWxsaWFtIGFuZCBPbGl2aWVyIEFuZHJpZXUpLCBodG1sTmV3RG9jKCkgY2hhcnNldCBidWcsCisgICAgaHRtbFJlYWRNZW1vcnkgaW5pdCAoV2lsbGlhbSksIGEgcG9zdGVyaW9yaSB2YWxpZGF0aW9uIERURCBiYXNlCisgICAgKFdpbGxpYW0pLCBub3RhdGlvbnMgc2VyaWFsaXphdGlvbiBtaXNzaW5nLCB4bWxHZXROb2RlUGF0aCAoRG9kamkpLAorICAgIHhtbENoZWNrVVRGOCAoRGllZ28gVGFydGFyYSksIG1pc3NpbmcgbGluZSBudW1iZXJzIG9uIGVudGl0eQorICAoV2lsbGlhbSk8L2xpPgorICA8bGk+aW1wcm92ZW1lbnRzOiBEb2NCb29rIGNhdGFsb2cgYnVpbGQgc2NyaXAgKFdpbGxpYW0pLCB4bWxjYXRhbG9nIHRvb2wKKyAgICAoQWxiZXJ0IENoaW4pLCB4bWxsaW50IC0tYzE0biBvcHRpb24sIG5vX3Byb3h5IGVudmlyb25tZW50IChNaWtlIEhvbW1leSksCisgICAgeG1sUGFyc2VJbk5vZGVDb250ZXh0KCkgYWRkaXRpb24sIGV4dGVuZCB4bWxsaW50IC0tc2hlbGwsIGFsbG93IFhJbmNsdWRlCisgICAgdG8gbm90IGdlbmVyYXRlIHN0YXJ0L2VuZCBub2RlcywgZXh0ZW5kIHhtbGxpbnQgLS12ZXJzaW9uIHRvIGluY2x1ZGUgQ1ZTCisgICAgdGFnIChXaWxsaWFtKTwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiB3ZWIgcGFnZXMgZml4ZXMsIHZhbGlkaXR5IEFQSSBkb2NzIGZpeGVzIChXaWxsaWFtKQorICAgIHNjaGVtYXMgQVBJIGZpeCAoRXJpYyBIYXN6bGFraWV3aWN6KSwgeG1sbGludCBtYW4gcGFnZSAoSm9obiBGbGVjayk8L2xpPgorPC91bD4KKworPGgzPjIuNi4xMTogSnVseSA1IDIwMDQ8L2gzPgorPHVsPgorICA8bGk+U2NoZW1hczogYSBsb3Qgb2YgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIGJ5IEthc2ltaWVyIEJ1Y2hjaWsgZm9yCisgICAgYXR0cmlidXRlcywgbmFtZXNwYWNlcyBhbmQgc2ltcGxlIHR5cGVzLjwvbGk+CisgIDxsaT5idWlsZCBmaXhlczogLS13aXRoLW1pbmltdW0gKFdpbGxpYW0gQnJhY2spLCAgc29tZSBnY2MgY2xlYW51cAorICAgIChXaWxsaWFtKSwgLS13aXRoLXRocmVhZC1hbGxvYyAoV2lsbGlhbSk8L2xpPgorICA8bGk+cG9ydGFiaWxpdHk6IFdpbmRvd3MgYmluYXJ5IHBhY2thZ2UgY2hhbmdlIChJZ29yIFpsYXRrb3ZpYyksIENhdGFsb2cKKyAgICBwYXRoIG9uIFdpbmRvd3M8L2xpPgorICA8bGk+ZG9jdW1lbnRhdGlvbjogdXBkYXRlIHRvIHRoZSB0dXRvcmlhbCAoSm9obiBGbGVjayksIHhtbGxpbnQgcmV0dXJuIGNvZGUKKyAgICAoSm9obiBGbGVjayksIG1hbiBwYWdlcyAoVmlsbGUgU2t5dHRhKSw8L2xpPgorICA8bGk+YnVnIGZpeGVzOiBDMTROIGJ1ZyBzZXJpYWxpemluZyBuYW1lc3BhY2VzIChBbGVrc2V5IFNhbmluKSwgdGVzdFNBWAorICAgIHByb3Blcmx5IGluaXRpYWxpemUgdGhlIGxpYnJhcnkgKFdpbGxpYW0pLCBlbXB0eSBub2RlIHNldCBpbiBYUGF0aAorICAgIChXaWxsaWFtKSwgeG1sU2NoZW1hcyBlcnJvcnMgKFdpbGxpYW0pLCBpbnZhbGlkIGNoYXJyZWYgcHJvYmxlbSBwb2ludGVkCisgICAgYnkgTW9ydXMgV2FsdGVyLCBYSW5jbHVkZSB4bWw6YmFzZSBnZW5lcmF0aW9uIChXaWxsaWFtKSwgUmVsYXgtTkcgYnVnCisgICAgd2l0aCBkaXYgcHJvY2Vzc2luZyAoV2lsbGlhbSksIFhQb2ludGVyIGFuZCB4bWw6YmFzZSBwcm9ibGVtKFdpbGxpYW0pLAorICAgIFJlYWRlciBhbmQgZW50aXRpZXMsIHhtbGxpbnQgcmV0dXJuIGNvZGUgZm9yIHNjaGVtYXMgKFdpbGxpYW0pLCByZWFkZXIKKyAgICBzdHJlYW1pbmcgcHJvYmxlbSAoU3RldmUgQmFsbCksIERURCBzZXJpYWxpemF0aW9uIHByb2JsZW0gKFdpbGxpYW0pLAorICAgIGxpYnhtbC5tNCBmaXhlcyAoTWlrZSBIb21tZXkpLCBkbyBub3QgcHJvdmlkZSBkZXN0cnVjdG9ycyBhcyBtZXRob2RzIG9uCisgICAgUHl0aG9uIGNsYXNzZXMsIHhtbFJlYWRlciBidWZmZXIgYnVnLCBQeXRob24gYmluZGluZ3MgbWVtb3J5IGludGVyZmFjZXMKKyAgICBpbXByb3ZlbWVudCAod2l0aCBTdMOpcGhhbmUgQmlkb3VsKSwgRml4ZWQgdGhlIHB1c2ggcGFyc2VyIHRvIGJlIGJhY2sgdG8KKyAgICBzeW5jaHJvbm91cyBiZWhhdmlvdXIuPC9saT4KKyAgPGxpPmltcHJvdmVtZW50OiBjdXN0b20gcGVyLXRocmVhZCBJL08gZW5oYW5jZW1lbnQgKFJvYiBSaWNoYXJkcyksIHJlZ2lzdGVyCisgICAgbmFtZXNwYWNlIGluIGRlYnVnIHNoZWxsIChTdGVmYW5vIERlYmVuZWRldHRpKSwgUHl0aG9uIGJhc2VkIHJlZ3Jlc3Npb24KKyAgICB0ZXN0IGZvciBub24tVW5peCB1c2VycyAoV2lsbGlhbSksIGR5bmFtaWNhbGx5IGluY3JlYXNlIHRoZSBudW1iZXIgb2YKKyAgICBYUGF0aCBleHRlbnNpb24gZnVuY3Rpb25zIGluIFB5dGhvbiBhbmQgZml4IGEgbWVtb3J5IGxlYWsgKE1hcmMtQW50b2luZQorICAgIFBhcmVudCBhbmQgV2lsbGlhbSk8L2xpPgorICA8bGk+cGVyZm9ybWFuY2U6IGhhY2sgZG9uZSB3aXRoIEFyamFuIHZhbiBkZSBWZW4gdG8gcmVkdWNlIEVMRiBmb290cHJpbnQKKyAgICBhbmQgZ2VuZXJhdGVkIGNvZGUgb24gTGludXgsIHBsdXMgdXNlIGdjYyBydW50aW1lIHByb2ZpbGluZyB0byBvcHRpbWl6ZQorICAgIHRoZSBjb2RlIGdlbmVyYXRlZCBpbiB0aGUgUlBNIHBhY2thZ2VzLjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjEwOiBNYXkgMTcgMjAwNDwvaDM+Cis8dWw+CisgIDxsaT5XZWIgcGFnZSBnZW5lcmF0ZWQgZm9yIENoYW5nZUxvZzwvbGk+CisgIDxsaT5idWlsZCBmaXhlczogLS13aXRob3V0LWh0bWwgcHJvYmxlbXMsIG1ha2UgY2hlY2sgd2l0aG91dCBtYWtlIGFsbDwvbGk+CisgIDxsaT5wb3J0YWJpbGl0eTogcHJvYmxlbSB3aXRoIHhwYXRoLmMgb24gV2luZG93cyAoTVNDIGFuZCBCb3JsYW5kKSwgbWVtY21wCisgICAgdnMuIHN0cm5jbXAgb24gU29sYXJpcywgWFBhdGggdGVzdHMgb24gV2luZG93cyAoTWFyayBWYWtvYyksIEMrKyBkbyBub3QKKyAgICB1c2UgImxpc3QiIGFzIHBhcmFtZXRlciBuYW1lLCBtYWtlIHRlc3RzIHdvcmsgd2l0aCBQeXRob24gMS41IChFZAorICBEYXZpcyksPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogbWFkZSB4bWxUZXh0UmVhZGVyTW9kZSBwdWJsaWMsIHNtYWxsIGJ1ZmZlcnMgcmVzaXppbmcKKyAgICAoTW9ydGVuIFdlbGluZGVyKSwgYWRkIC0tbWF4bWVtIG9wdGlvbiB0byB4bWxsaW50LCBhZGQKKyAgICB4bWxQb3BJbnB1dENhbGxiYWNrKCkgZm9yIE1hdHQgU2VyZ2VhbnQsIHJlZmFjdG9yaW5nIG9mIHNlcmlhbGl6YXRpb24KKyAgICBlc2NhcGluZywgYWRkZWQgZXNjYXBpbmcgY3VzdG9taXphdGlvbjwvbGk+CisgIDxsaT5idWdmaXhlczogeHNkOmV4dGVuc2lvbiAoVGFpaGVpIEdvaSksIGFzc29ydGVkIHJlZ2V4cCBidWdzIChXaWxsaWFtCisgICAgQnJhY2spLCB4bWxSZWFkZXIgZW5kIG9mIHN0cmVhbSBwcm9ibGVtLCBub2RlIGRlcmVnaXN0cmF0aW9uIHdpdGggcmVhZGVyLAorICAgIFVSSSBlc2NhcGluZyBhbmQgZmlsZW1hbmVzLCAgWEhUTUwxIGZvcm1hdHRpbmcgKE5pY2sgV2VsbG5ob2ZlciksIHJlZ2V4cAorICAgIHRyYW5zaXRpb24gcmVkdWN0aW9uIChXaWxsaWFtKSwgdmFyaW91cyBYU0QgU2NoZW1hcyBmaXhlcyAoS2FzaW1pZXIKKyAgICBCdWNoY2lrKSwgWEluY2x1ZGUgZmFsbGJhY2sgcHJvYmxlbSAoV2lsbGlhbSksIHdlaXJkIHByb2JsZW1zIHdpdGggRFRECisgICAgKFdpbGxpYW0pLCBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsZXIgY2FsbGJhY2sgY29udGV4dCAoV2lsbGlhbSksIHJldmVyc2UKKyAgICB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMoKSBiZWhhdmlvdXIgYmFjayB0byBlc2NhcGluZyAnIic8L2xpPgorPC91bD4KKworPGgzPjIuNi45OiBBcHIgMTggMjAwNDwvaDM+Cis8dWw+CisgIDxsaT5pbXBsZW1lbnQgeG1sOmlkIFdvcmtpbmcgRHJhZnQsIHJlbGF4ZWQgWFBhdGggaWQoKSBjaGVja2luZzwvbGk+CisgIDxsaT5idWdmaXhlczogeG1sQ3R4dFJlc2V0IChCcmVudCBIZW5kcmlja3MpLCBsaW5lIG51bWJlciBhbmQgQ0RBVEEgKERhdmUKKyAgICBCZWNrZXR0KSwgUmVsYXgtTkcgY29tcGlsYXRpb24gKFdpbGxpYW0gQnJhY2spLCBSZWdleHAgcGF0Y2hlcyAod2l0aAorICAgIFdpbGxpYW0pLCB4bWxVcmlFc2NhcGUgKE1hcmsgVmFrb2MpLCBhIFJlbGF4LU5HIG5vdEFsbG93ZWQgcHJvYmxlbSAod2l0aAorICAgIFdpbGxpYW0pLCBSZWxheC1ORyBuYW1lIGNsYXNzZXMgY29tcGFyZXMgKFdpbGxpYW0pLCBYSW5jbHVkZSBkdXBsaWNhdGUKKyAgICBmYWxsYmFjayAoV2lsbGlhbSksIGV4dGVybmFsIERURCBlbmNvZGluZyBkZXRlY3Rpb24gKFdpbGxpYW0pLCBhIERURAorICAgIHZhbGlkYXRpb24gYnVnIChXaWxsaWFtKSwgeG1sUmVhZGVyIENsb3NlKCkgZml4LCByZWN1c2l2ZSBleHRlbnRpb24KKyAgICBzY2hlbWFzPC9saT4KKyAgPGxpPmltcHJvdmVtZW50czogdXNlIHhtbFJlYWQqIEFQSXMgaW4gdGVzdCB0b29scyAoTWFyayBWYWtvYyksIGluZGVudGluZworICAgIHNhdmUgb3B0aW1pemF0aW9uLCBiZXR0ZXIgaGFuZGxlIElJUyBicm9rZW4gSFRUUCByZWRpcmVjdCAgYmVoYXZpb3VyIChJYW4KKyAgICBIdW1tZWwpLCBIVE1MIHBhcnNlciBmcmFtZXNldCAoSmFtZXMgQnVyc2EpLCBsaWJ4bWwyLXB5dGhvbiBSUE0KKyAgICBkZXBlbmRhbmN5LCBYTUwgU2NoZW1hcyB1bmlvbiBzdXBwb3J0IChLYXNpbWllciBCdWNoY2lrKSwgd2FybmluZyByZW1vdmFsCisgICAgY2xhbnVwIChXaWxsaWFtKSwga2VlcCBDaGFuZ2VMb2cgY29tcHJlc3NlZCB3aGVuIGluc3RhbGxpbmcgZnJvbSBSUE1zPC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb246IGV4YW1wbGVzIGFuZCB4bWxEb2NEdW1wTWVtb3J5IGRvY3MgKEpvaG4gRmxlY2spLCBuZXcKKyAgICBleGFtcGxlIChsb2FkLCB4cGF0aCwgbW9kaWZ5LCBzYXZlKSwgeG1sQ2F0YWxvZ0R1bXAoKSBjb21tZW50cyw8L2xpPgorICA8bGk+V2luZG93czogQm9ybGFuZCBDKysgYnVpbGRlciAoRXJpYyBadXJjaGVyKSwgd29yayBhcm91bmQgTWljcm9zb2Z0CisgICAgY29tcGlsZXIgTmFOIGhhbmRsaW5nIGJ1ZyAoTWFyayBWYWtvYyk8L2xpPgorPC91bD4KKworPGgzPjIuNi44OiBNYXIgMjMgMjAwNDwvaDM+Cis8dWw+CisgIDxsaT5GaXJzdCBzdGVwIG9mIHRoZSBjbGVhbnVwIG9mIHRoZSBzZXJpYWxpemF0aW9uIGNvZGUgYW5kIEFQSXM8L2xpPgorICA8bGk+WE1MIFNjaGVtYXM6IG1peGVkIGNvbnRlbnQgKEFkYW0gRGlja21laXNzKSwgUU5hbWUgaGFuZGxpbmcgZml4ZXMgKEFkYW0KKyAgICBEaWNrbWVpc3MpLCBhbnlVUkkgZm9yICIiIChKb2huIEJlbG1vbnRlKTwvbGk+CisgIDxsaT5QeXRob246IENhbm9uaWNhbGl6YXRpb24gQzE0TiBzdXBwb3J0IGFkZGVkIChBbnRob255IENhcnJpY28pPC9saT4KKyAgPGxpPnhtbERvY0NvcHlOb2RlKCkgZXh0ZW5zaW9uIChXaWxsaWFtKTwvbGk+CisgIDxsaT5SZWxheC1ORzogZml4IHdoZW4gcHJvY2Vzc2luZyBYSW5jbHVkZSByZXN1bHRzIChXaWxsaWFtKSwgZXh0ZXJuYWwKKyAgICByZWZlcmVuY2UgaW4gaW50ZXJsZWF2ZSAoV2lsbGlhbSksIG1pc3NpbmcgZXJyb3Igb24gJmx0O2Nob2ljZSZndDsKKyAgICBmYWlsdXJlIChXaWxsaWFtKSwgbWVtb3J5IGxlYWsgaW4gc2NoZW1hcyBkYXRhdHlwZSBmYWNldHMuPC9saT4KKyAgPGxpPnhtbFdyaXRlcjogcGF0Y2ggZm9yIGJldHRlciBEVEQgc3VwcG9ydCAoQWxmcmVkIE1pY2thdXRzY2gpPC9saT4KKyAgPGxpPmJ1ZyBmaXhlczogeG1sWFBhdGhMYW5nRnVuY3Rpb24gbWVtb3J5IGxlYWsgKE1pa2UgSG9tbWV5IGFuZCBXaWxsaWFtCisgICAgQnJhY2spLCBubyBJRCBlcnJvcnMgaWYgdXNpbmcgSFRNTF9QQVJTRV9OT0VSUk9SLCB4bWxjYXRhbG9nIGZhbGxiYWNrcyB0bworICAgIFVSSSBvbiBTWVNURU0gbG9va3VwIGZhaWx1cmUsIFhJbmNsdWRlIHBhcnNlIGZsYWdzIGluaGVyaXRhbmNlIChXaWxsaWFtKSwKKyAgICBYSW5jbHVkZSBhbmQgWFBvaW50ZXIgZml4ZXMgZm9yIGVudGl0aWVzIChXaWxsaWFtKSwgWE1MIHBhcnNlciBidWcKKyAgICByZXBvcnRlZCBieSBIb2xnZXIgUmF1Y2gsIG5hbm9odHRwIGZkIGxlYWsgKFdpbGxpYW0pLCAgcmVnZXhwcyBjaGFyCisgICAgZ3JvdXBzICctJyBoYW5kbGluZyAoV2lsbGlhbSksIGRpY3Rpb25uYXJ5IHJlZmVyZW5jZSBjb3VudGluZyBwcm9ibGVtcywKKyAgICBkbyBub3QgY2xvc2Ugc3RkZXJyLjwvbGk+CisgIDxsaT5wZXJmb3JtYW5jZSBwYXRjaGVzIGZyb20gUGV0ciBQYWphczwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uIGZpeGVzOiBYTUxfQ0FUQUxPR19GSUxFUyBpbiBtYW4gcGFnZXMgKE1pa2UgSG9tbWV5KTwvbGk+CisgIDxsaT5jb21waWxhdGlvbiBhbmQgcG9ydGFiaWxpdHkgZml4ZXM6IC0td2l0aG91dC12YWxpZCwgY2F0YWxvZyBjbGVhbnVwcworICAgIChQZXRlciBCcmVpdGVubG9obmVyKSwgTWluZ1cgcGF0Y2ggKFJvbGFuZCBTY2h3aW5nZWwpLCBjcm9zcy1jb21waWxhdGlvbgorICAgIHRvIFdpbmRvd3MgKENocmlzdG9waGUgZGUgVmllbm5lKSwgIC0td2l0aC1odG1sLWRpciBmaXh1cCAoSnVsaW8gTWVyaW5vCisgICAgVmlkYWwpLCBXaW5kb3dzIGJ1aWxkIChFcmljIFp1cmNoZXIpPC9saT4KKzwvdWw+CisKKzxoMz4yLjYuNzogRmViIDIzIDIwMDQ8L2gzPgorPHVsPgorICA8bGk+ZG9jdW1lbnRhdGlvbjogdHV0b3JpYWwgdXBkYXRlcyAoSm9obiBGbGVjayksIGJlbmNobWFyayByZXN1bHRzPC9saT4KKyAgPGxpPnhtbFdyaXRlcjogdXBkYXRlcyBhbmQgZml4ZXMgKEFsZnJlZCBNaWNrYXV0c2NoLCBMdWNhcyBCcmFzaWxpbm8pPC9saT4KKyAgPGxpPlhQYXRoIG9wdGltaXphdGlvbiAoUGV0ciBQYWphcyk8L2xpPgorICA8bGk+RFREIElEIGhhbmRsaW5nIG9wdGltaXphdGlvbjwvbGk+CisgIDxsaT5idWdmaXhlczogeHBhdGggbnVtYmVyIHdpdGggICZndDsgMTkgZnJhY3Rpb25hbCAoV2lsbGlhbSBCcmFjayksIHB1c2gKKyAgICBtb2RlIHdpdGggdW5lc2NhcGVkICcmZ3Q7JyBjaGFyYWN0ZXJzLCBmaXggeG1sbGludCAtLXN0cmVhbSAtLXRpbWluZywgZml4CisgICAgeG1sbGludCAtLW1lbW9yeSAtLXN0cmVhbSBtZW1vcnkgdXNhZ2UsIHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50CisgICAgaGFuZGxpbmcgTlVMTCwgdHJ5aW5nIHRvIGZpeCBSZWxheC1ORy9QZXJsIGludGVyZmFjZS48L2xpPgorICA8bGk+cHl0aG9uOiAyLjMgY29tcGF0aWJpbGl0eSwgd2hpdGVzcGFjZSBmaXhlcyAoTWFsY29sbSBUcmVkaW5uaWNrKTwvbGk+CisgIDxsaT5BZGRlZCByZWxheG5nIG9wdGlvbiB0byB4bWxsaW50IC0tc2hlbGw8L2xpPgorPC91bD4KKworPGgzPjIuNi42OiBGZWIgMTIgMjAwNDwvaDM+Cis8dWw+CisgIDxsaT5uYW5vaHR0cCBhbmQgbmFub2Z0cDogYnVmZmVyIG92ZXJmbG93IGVycm9yIG9uIFVSSSBwYXJzaW5nIChJZ29yIGFuZAorICAgIFdpbGxpYW0pIHJlcG9ydGVkIGJ5IFl1dWljaGkgVGVyYW5pc2hpPC9saT4KKyAgPGxpPmJ1Z2ZpeGVzOiBtYWtlIHRlc3QgYW5kIHBhdGggaXNzdWVzLCB4bWxXcml0ZXIgYXR0cmlidXRlIHNlcmlhbGl6YXRpb24KKyAgICAoV2lsbGlhbSBCcmFjayksIHhtbFdyaXRlciBpbmRlbnRhdGlvbiAoV2lsbGlhbSksIHNjaGVtYXMgdmFsaWRhdGlvbgorICAgIChFcmljIEhhc3psYWtpZXdpY3opLCBYSW5jbHVkZSBkaWN0aW9ubmFyaWVzIGlzc3VlcyAoV2lsbGlhbSBhbmQgT2xlZworICAgIFBhcmFzY2hlbmtvKSwgWEluY2x1ZGUgZW1wdHkgZmFsbGJhY2sgKFdpbGxpYW0pLCBIVE1MIHdhcm5pbmdzIChXaWxsaWFtKSwKKyAgICBYUG9pbnRlciBpbiBYSW5jbHVkZSAoV2lsbGlhbSksIFB5dGhvbiBuYW1lc3BhY2Ugc2VyaWFsaXphdGlvbiwKKyAgICBpc29sYXQxVG9VVEY4IGJvdW5kIGVycm9yIChBbGZyZWQgTWlja2F1dHNjaCksIG91dHB1dCBvZiBwYXJhbWV0ZXIKKyAgICBlbnRpdGllcyBpbiBpbnRlcm5hbCBzdWJzZXQgKFdpbGxpYW0pLCBpbnRlcm5hbCBzdWJzZXQgYnVnIGluIHB1c2ggbW9kZSwKKyAgICAmbHQ7eHM6YWxsJmd0OyBmaXggKEFsZXhleSBTYXJ5dGNoZXYpPC9saT4KKyAgPGxpPkJ1aWxkOiBmaXggZm9yIGF1dG9tYWtlLTEuOCAoQWxleGFuZGVyIFdpbnN0b24pLCB3YXJuaW5ncyByZW1vdmFsCisgICAgKFBoaWxpcCBMdWRsYW0pLCBTT0NLTEVOX1QgZGV0ZWN0aW9uIGZpeGVzIChEYW5pZWwgUmljaGFyZCksIGZpeAorICAgIC0td2l0aC1taW5pbXVtIGNvbmZpZ3VyYXRpb24uPC9saT4KKyAgPGxpPlhJbmNsdWRlOiBhbGxvdyB0aGUgMjAwMSBuYW1lc3BhY2Ugd2l0aG91dCB3YXJuaW5nLjwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOiBtaXNzaW5nIGV4YW1wbGUvaW5kZXguaHRtbCAoSm9obiBGbGVjayksIHZlcnNpb24KKyAgICBkZXBlbmRhbmNpZXMgKEpvaG4gRmxlY2spPC9saT4KKyAgPGxpPnJlYWRlciBBUEk6IHN0cnVjdHVyZWQgZXJyb3IgcmVwb3J0aW5nIChTdGV2ZSBCYWxsKTwvbGk+CisgIDxsaT5XaW5kb3dzIGNvbXBpbGF0aW9uOiBtaW5ndywgbXN5cyAoTWlraGFpbCBHcnVzaGluc2tpeSksIGZ1bmN0aW9uCisgICAgcHJvdG90eXBlIChDYW1lcm9uIEpvaG5zb24pLCBNU1ZDNiBjb21waWxlciB3YXJuaW5ncywgX1dJTlNPQ0tBUElfCisgIHBhdGNoPC9saT4KKyAgPGxpPlBhcnNlcnM6IGFkZGVkIHhtbEJ5dGVDb25zdW1lZChjdHh0KSBBUEkgdG8gZ2V0IHRoZSBieXRlIG9mZmVzdCBpbgorICAgIGlucHV0LjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjU6IEphbiAyNSAyMDA0PC9oMz4KKzx1bD4KKyAgPGxpPkJ1Z2ZpeGVzOiBkaWN0aW9ubmFyaWVzIGZvciBzY2hlbWFzIChXaWxsaWFtIEJyYWNrKSwgcmVnZXhwIHNlZ2ZhdWx0CisgICAgKFdpbGxpYW0pLCB4czphbGwgcHJvYmxlbSAoV2lsbGlhbSksIGEgbnVtYmVyIG9mIFhQb2ludGVyIGJ1Z2ZpeGVzCisgICAgKFdpbGxpYW0pLCB4bWxsaW50IGVycm9yIGdvIHRvIHN0ZGVyciwgRFREIHZhbGlkYXRpb24gcHJvYmxlbSB3aXRoCisgICAgbmFtZXNwYWNlLCBtZW1vcnkgbGVhayAoV2lsbGlhbSksIFNBWDEgY2xlYW51cCBhbmQgbWluaW1hbCBvcHRpb25zIGZpeGVzCisgICAgKE1hcmsgVmFkb2MpLCBwYXJzZXIgY29udGV4dCByZXNldCBvbiBlcnJvciAoU2hhdW4gTWNDYW5jZSksIFhQYXRoIHVuaW9uCisgICAgZXZhbHVhdGlvbiBwcm9ibGVtIChXaWxsaWFtKSAsIHhtbFJlYWxsb2NMb2Mgd2l0aCBOVUxMIChBbGVrc2V5IFNhbmluKSwKKyAgICBYTUwgU2NoZW1hcyBkb3VibGUgZnJlZSAoU3RldmUgQmFsbCksIFhJbmNsdWRlIHdpdGggbm8gaHJlZiwgYXJndW1lbnQKKyAgICBjYWxsYmFja3Mgb3JkZXIgZm9yIFhQYXRoIGNhbGxiYWNrcyAoRnJlZGVyaWMgUGV0ZXJzKTwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uOiBweXRob24gc2NyaXB0cyAoV2lsbGlhbSBCcmFjayksIHhzbHQgc3R5bGVzaGVldHMgKEpvaG4KKyAgICBGbGVjayksIGRvYyAoU3ZlbiBaaW1tZXJtYW4pLCBJL08gZXhhbXBsZS48L2xpPgorICA8bGk+UHl0aG9uIGJpbmRpbmdzOiBmaXhlcyAoV2lsbGlhbSksIGVudW0gc3VwcG9ydCAoU3TDqXBoYW5lIEJpZG91bCksCisgICAgc3RydWN0dXJlZCBlcnJvciByZXBvcnRpbmcgKFN0w6lwaGFuZSBCaWRvdWwpPC9saT4KKyAgPGxpPlhJbmNsdWRlOiB2YXJpb3VzIGZpeGVzIGZvciBjb25mb3JtYW5jZSwgcHJvYmxlbSByZWxhdGVkIHRvIGRpY3Rpb25uYXJ5CisgICAgcmVmZXJlbmNlcyAoV2lsbGlhbSAmYW1wOyBtZSksIHJlY3Vyc2lvbiAoV2lsbGlhbSk8L2xpPgorICA8bGk+eG1sV3JpdGVyOiBpbmRlbnRhdGlvbiAoTHVjYXMgQnJhc2lsaW5vKSwgbWVtb3J5IGxlYWtzIChBbGZyZWQKKyAgICBNaWNrYXV0c2NoKSw8L2xpPgorICA8bGk+eG1sU2NoZW1hczogbm9ybWFsaXplZFN0cmluZyBkYXRhdHlwZSAoSm9obiBCZWxtb250ZSk8L2xpPgorICA8bGk+Y29kZSBjbGVhbnVwIGZvciBzdHJpbmdzIGZ1bmN0aW9ucyAoV2lsbGlhbSk8L2xpPgorICA8bGk+V2luZG93czogY29tcGlsZXIgcGF0Y2hlcyAoTWFyayBWYWtvYyk8L2xpPgorICA8bGk+UGFyc2VyIG9wdGltaXphdGlvbnMsIGEgZmV3IG5ldyBYUGF0aCBhbmQgZGljdGlvbm5hcnkgQVBJcyBmb3IgZnV0dXJlCisgICAgWFNMVCBvcHRpbWl6YXRpb25zLjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjQ6IERlYyAyNCAyMDAzPC9oMz4KKzx1bD4KKyAgPGxpPldpbmRvd3MgYnVpbGQgZml4ZXMgKElnb3IgWmxhdGtvdmljKTwvbGk+CisgIDxsaT5Tb21lIHNlcmlvdXMgWEluY2x1ZGUgcHJvYmxlbXMgcmVwb3J0ZWQgYnkgT2xlZyBQYXJhc2NoZW5rbyBhbmQ8L2xpPgorICA8bGk+VW5peCBhbmQgTWFrZWZpbGUgcGFja2FnaW5nIGZpeGVzIChtZSwgV2lsbGlhbSBCcmFjayw8L2xpPgorICA8bGk+RG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMgKEpvaG4gRmxlY2ssIFdpbGxpYW0gQnJhY2spLCBleGFtcGxlIGZpeAorICAgIChMdWNhcyBCcmFzaWxpbm8pPC9saT4KKyAgPGxpPmJ1Z2ZpeGVzOiB4bWxUZXh0UmVhZGVyRXhwYW5kKCkgd2l0aCB4bWxSZWFkZXJXYWxrZXIsIFhQYXRoIGhhbmRsaW5nIG9mCisgICAgTlVMTCBzdHJpbmdzIChXaWxsaWFtIEJyYWNrKSAsIEFQSSBidWlsZGluZyByZWFkZXIgb3IgcGFyc2VyIGZyb20KKyAgICBmaWxlZGVzY3JpcHRvciBzaG91bGQgbm90IGNsb3NlIGl0LCBjaGFuZ2VkIFhQYXRoIHNvcnRpbmcgdG8gYmUgc3RhYmxlCisgICAgYWdhaW4gKFdpbGxpYW0gQnJhY2spLCB4bWxHZXROb2RlUGF0aCgpIGdlbmVyYXRpbmcgJyhudWxsKScgKFdpbGxpYW0KKyAgICBCcmFjayksIERURCB2YWxpZGF0aW9uIGFuZCBuYW1lc3BhY2UgYnVnIChXaWxsaWFtIEJyYWNrKSwgWE1MIFNjaGVtYXMKKyAgICBkb3VibGUgaW5jbHVzaW9uIGJlaGF2aW91cjwvbGk+Cis8L3VsPgorCis8aDM+Mi42LjM6IERlYyAxMCAyMDAzPC9oMz4KKzx1bD4KKyAgPGxpPmRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgY2xlYW51cCAoRFYsIFdpbGxpYW0gQnJhY2ssIEpvaG4gRmxlY2spPC9saT4KKyAgPGxpPmFkZGVkIGEgcmVwb3NpdG9yeSBvZiBleGFtcGxlcywgZXhhbXBsZXMgZnJvbSBBbGVrc2V5IFNhbmluLCBEb2RqaQorICAgIFNla2V0ZWxpLCBBbGZyZWQgTWlja2F1dHNjaDwvbGk+CisgIDxsaT5XaW5kb3dzIHVwZGF0ZXM6IE1hcmsgVmFrb2MsIElnb3IgWmxhdGtvdmljLCBFcmljIFp1cmNoZXIsIE1pbmd3CisgICAgKEtlbm5ldGggSGFsZXkpPC9saT4KKyAgPGxpPlVuaWNvZGUgcmFuZ2UgY2hlY2tpbmcgKFdpbGxpYW0gQnJhY2spPC9saT4KKyAgPGxpPmNvZGUgY2xlYW51cCAoV2lsbGlhbSBCcmFjayk8L2xpPgorICA8bGk+UHl0aG9uIGJpbmRpbmdzOiBkb2MgKEpvaG4gRmxlY2spLCAgYnVnIGZpeGVzPC9saT4KKyAgPGxpPlVURi0xNiBjbGVhbnVwIGFuZCBCT00gaXNzdWVzIChXaWxsaWFtIEJyYWNrKTwvbGk+CisgIDxsaT5idWcgZml4ZXM6IElEIGFuZCB4bWxSZWFkZXIgdmFsaWRhdGlvbiwgWFBhdGggKFdpbGxpYW0gQnJhY2spLAorICAgIHhtbFdyaXRlciAoQWxmcmVkIE1pY2thdXRzY2gpLCBoYXNoLmggaW5jbHVzaW9uIHByb2JsZW0sIEhUTUwgcGFyc2VyCisgICAgKEphbWVzIEJ1cnNhKSwgYXR0cmlidXRlIGRlZmF1bHRpbmcgYW5kIHZhbGlkYXRpb24sIHNvbWUgc2VyaWFsaXphdGlvbgorICAgIGNsZWFudXBzLCBYTUxfR0VUX0xJTkUgbWFjcm8sIG1lbW9yeSBkZWJ1ZyB3aGVuIHVzaW5nIHRocmVhZHMgKFdpbGxpYW0KKyAgICBCcmFjayksIHNlcmlhbGl6YXRpb24gb2YgYXR0cmlidXRlcyBhbmQgZW50aXRpZXMgY29udGVudCwgeG1sV3JpdGVyCisgICAgKERhbmllbCBTY2h1bG1hbik8L2xpPgorICA8bGk+WEluY2x1ZGUgYnVnZml4LCBuZXcgQVBJcyBhbmQgdXBkYXRlIHRvIHRoZSBsYXN0IHZlcnNpb24gaW5jbHVkaW5nIHRoZQorICAgIG5hbWVzcGFjZSBjaGFuZ2UuPC9saT4KKyAgPGxpPlhNTCBTY2hlbWFzIGltcHJvdmVtZW50czogaW5jbHVkZSAoUm9iZXJ0IFN0ZXBhbmVrKSwgaW1wb3J0IGFuZAorICAgIG5hbWVzcGFjZSBoYW5kbGluZywgZml4ZWQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgdHJvdWJsZXMsIGFkZGVkIGV4YW1wbGVzCisgICAgYmFzZWQgb24gRXJpYyB2YW4gZGVyIFZsaXN0IGJvb2ssIHJlZ2V4cCBmaXhlczwvbGk+CisgIDxsaT5wcmVsaW1pbmFyeSBwYXR0ZXJuIHN1cHBvcnQgZm9yIHN0cmVhbWluZyAobmVlZGVkIGZvciBzY2hlbWFzCisgICAgY29uc3RyYWludHMpLCBhZGRlZCB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuKCkgdG8gY29sbGVjdCBzdWJkb2N1bWVudAorICAgIHdoZW4gc3RyZWFtaW5nLjwvbGk+CisgIDxsaT52YXJpb3VzIGZpeGVzIGluIHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsaW5nPC9saT4KKzwvdWw+CisKKzxoMz4yLjYuMjogTm92IDQgMjAwMzwvaDM+Cis8dWw+CisgIDxsaT5YUGF0aCBjb250ZXh0IHVucmVnaXN0cmF0aW9uIGZpeGVzPC9saT4KKyAgPGxpPnRleHQgbm9kZSBjb2FsZXNjaW5nIGZpeGVzIChNYXJrIExpbGJhY2spPC9saT4KKyAgPGxpPkFQSSB0byBzY3JlYXRlIGEgVzNDIFNjaGVtYXMgZnJvbSBhbiBleGlzdGluZyBkb2N1bWVudCAoU3RldmUgQmFsbCk8L2xpPgorICA8bGk+QmVPUyBwYXRjaGVzIChNYXJjaW4gJ1NoYXJkJyBLb25pY2tpKTwvbGk+CisgIDxsaT54bWxTdHJWUHJpbnRmIGZ1bmN0aW9uIGFkZGVkIChBbGVrc2V5IFNhbmluKTwvbGk+CisgIDxsaT5jb21waWxhdGlvbiBmaXhlcyAoTWFyayBWYWtvYyk8L2xpPgorICA8bGk+c3RkaW4gcGFyc2luZyBmaXggKFdpbGxpYW0gQnJhY2spPC9saT4KKyAgPGxpPmEgcG9zdGVyaW9yaSBEVEQgdmFsaWRhdGlvbiBmaXhlczwvbGk+CisgIDxsaT54bWxSZWFkZXIgYnVnIGZpeGVzOiBXYWxrZXIgZml4ZXMsIHB5dGhvbiBiaW5kaW5nczwvbGk+CisgIDxsaT5maXhlZCB4bWxTdG9wUGFyc2VyKCkgdG8gcmVhbGx5IHN0b3AgdGhlIHBhcnNlciBhbmQgZXJyb3JzPC9saT4KKyAgPGxpPmFsd2F5cyBnZW5lcmF0ZSBsaW5lIG51bWJlcnMgd2hlbiB1c2luZyB0aGUgbmV3IHhtbFJlYWR4eHgKKyAgZnVuY3Rpb25zPC9saT4KKyAgPGxpPmFkZGVkIFhJbmNsdWRlIHN1cHBvcnQgdG8gdGhlIHhtbFJlYWRlciBpbnRlcmZhY2U8L2xpPgorICA8bGk+aW1wbGVtZW50ZWQgWE1MX1BBUlNFX05PTkVUIHBhcnNlciBvcHRpb248L2xpPgorICA8bGk+RG9jQm9vayBYU0xUIHByb2Nlc3NpbmcgYnVnIGZpeGVkPC9saT4KKyAgPGxpPkhUTUwgc2VyaWFsaXphdGlvbiBmb3IgJmx0O3AmZ3Q7IGVsZW1lbnRzIChXaWxsaWFtIEJyYWNrIGFuZCBtZSk8L2xpPgorICA8bGk+WFBvaW50ZXIgZmFpbHVyZSBpbiBYSW5jbHVkZSBhcmUgbm93IGhhbmRsZWQgYXMgcmVzb3VyY2UgZXJyb3JzPC9saT4KKyAgPGxpPmZpeGVkIHhtbGxpbnQgLS1odG1sIHRvIHVzZSB0aGUgSFRNTCBzZXJpYWxpemVyIG9uIG91dHB1dCAoYWRkZWQKKyAgICAtLXhtbG91dCB0byBpbXBsZW1lbnQgdGhlIHByZXZpb3VzIGJlaGF2aW91ciBvZiBzYXZpbmcgaXQgdXNpbmcgdGhlIFhNTAorICAgIHNlcmlhbGl6ZXIpPC9saT4KKzwvdWw+CisKKzxoMz4yLjYuMTogT2N0IDI4IDIwMDM8L2gzPgorPHVsPgorICA8bGk+TW9zdGx5IGJ1Z2ZpeGVzIGFmdGVyIHRoZSBiaWcgMi42LjAgY2hhbmdlczwvbGk+CisgIDxsaT5Vbml4IGNvbXBpbGF0aW9uIHBhdGNoZXM6IGxpYnhtbC5tNCAoUGF0cmljayBXZWxjaGUpLCB3YXJuaW5ncyBjbGVhbnVwCisgICAgKFdpbGxpYW0gQnJhY2spPC9saT4KKyAgPGxpPldpbmRvd3MgY29tcGlsYXRpb24gcGF0Y2hlcyAoSm9hY2hpbSBCYXVjaCwgU3RlcGhhbmUgQmlkb3VsLCBJZ29yCisgICAgWmxhdGtvdmljKTwvbGk+CisgIDxsaT54bWxXcml0ZXIgYnVnZml4IChBbGZyZWQgTWlja2F1dHNjaCk8L2xpPgorICA8bGk+Y2h2YWxpZC5bY2hdOiBjb3VwbGUgb2YgZml4ZXMgZnJvbSBTdGVwaGFuZSBCaWRvdWw8L2xpPgorICA8bGk+Y29udGV4dCByZXNldDogZXJyb3Igc3RhdGUgcmVzZXQsIHB1c2ggcGFyc2VyIHJlc2V0IChHcmFoYW0KKyAgQmVubmV0dCk8L2xpPgorICA8bGk+Y29udGV4dCByZXVzZTogZ2VuZXJhdGUgZXJyb3JzIGlmIGZpbGUgaXMgbm90IHJlYWRhYmxlPC9saT4KKyAgPGxpPmRlZmF1bHRlZCBhdHRyaWJ1dGVzIGZvciBlbGVtZW50IGNvbWluZyBmcm9tIGludGVybmFsIGVudGl0aWVzCisgICAgKFN0ZXBoYW5lIEJpZG91bCk8L2xpPgorICA8bGk+UHl0aG9uOiB0YWIgYW5kIHNwYWNlcyBtaXggKFdpbGxpYW0gQnJhY2spPC9saT4KKyAgPGxpPkVycm9yIGhhbmRsZXIgY291bGQgY3Jhc2ggaW4gRFREIHZhbGlkYXRpb24gaW4gMi42LjA8L2xpPgorICA8bGk+eG1sUmVhZGVyOiBkbyBub3QgdXNlIHRoZSBkb2N1bWVudCBvciBlbGVtZW50IF9wcml2YXRlIGZpZWxkPC9saT4KKyAgPGxpPnRlc3RTQVguYzogYXZvaWQgYSBwcm9ibGVtIHdpdGggc29tZSBQSXMgKE1hc3NpbW8gTW9yYXJhKTwvbGk+CisgIDxsaT5nZW5lcmFsIGJ1ZyBmaXhlczogbWFuZGF0b3J5IGVuY29kaW5nIGluIHRleHQgZGVjbCwgc2VyaWFsaXppbmcKKyAgICBEb2N1bWVudCBGcmFnbWVudCBub2RlcywgeG1sU2VhcmNoTnMgMi42LjAgcHJvYmxlbSAoS2FzaW1pZXIgQnVjaGNpayksCisgICAgWFBhdGggZXJyb3JzIG5vdCByZXBvcnRlZCwgIHNsb3cgSFRNTCBwYXJzaW5nIG9mIGxhcmdlIGRvY3VtZW50cy48L2xpPgorPC91bD4KKworPGgzPjIuNi4wOiBPY3QgMjAgMjAwMzwvaDM+Cis8dWw+CisgIDxsaT5NYWpvciByZXZpc2lvbiByZWxlYXNlOiBzaG91bGQgYmUgQVBJIGFuZCBBQkkgY29tcGF0aWJsZSBidXQgZ290IGEgbG90CisgICAgb2YgY2hhbmdlPC9saT4KKyAgPGxpPkluY3JlYXNlZCB0aGUgbGlicmFyeSBtb2R1bGFyaXR5LCBmYXIgbW9yZSBvcHRpb25zIGNhbiBiZSBzdHJpcHBlZCBvdXQsCisgICAgYSAtLXdpdGgtbWluaW11bSBjb25maWd1cmF0aW9uIHdpbGwgd2VpZ2h0IGFyb3VuZCAxNjBLQnl0ZXM8L2xpPgorICA8bGk+VXNlIHBlciBwYXJzZXIgYW5kIHBlciBkb2N1bWVudCBkaWN0aW9ubmFyeSwgYWxsb2NhdGUgbmFtZXMgYW5kIHNtYWxsCisgICAgdGV4dCBub2RlcyBmcm9tIHRoZSBkaWN0aW9ubmFyeTwvbGk+CisgIDxsaT5Td2l0Y2ggdG8gYSBTQVgyIGxpa2UgcGFyc2VyIHJld3JvdGUgbW9zdCBvZiB0aGUgWE1MIHBhcnNlciBjb3JlLAorICAgIHByb3ZpZGVzIG5hbWVzcGFjZSByZXNvbHV0aW9uIGFuZCBkZWZhdWx0ZWQgYXR0cmlidXRlcywgbWluaW1pemUgbWVtb3J5CisgICAgYWxsb2NhdGlvbnMgYW5kIGNvcGllcywgbmFtZXNwYWNlIGNoZWNraW5nIGFuZCBzcGVjaWZpYyBlcnJvciBoYW5kbGluZywKKyAgICBpbW11dGFibGUgYnVmZmVycywgbWFrZSBwcmVkZWZpbmVkIGVudGl0aWVzIHN0YXRpYyBzdHJ1Y3R1cmVzLCBldGMuLi48L2xpPgorICA8bGk+cmV3cm90ZSBhbGwgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBsaWJyYXJ5LCBhbGwgZXJyb3JzIGNhbiBiZQorICAgIGludGVyY2VwdGVkIGF0IGEgc3RydWN0dXJlZCBsZXZlbCwgd2l0aCBwcmVjaXNlIGluZm9ybWF0aW9uCisgIGF2YWlsYWJsZS48L2xpPgorICA8bGk+TmV3IHNpbXBsZXIgYW5kIG1vcmUgZ2VuZXJpYyBYTUwgYW5kIEhUTUwgcGFyc2VyIEFQSXMsIGFsbG93aW5nIHRvCisgICAgZWFzaWxseSBtb2RpZnkgdGhlIHBhcnNpbmcgb3B0aW9ucyBhbmQgcmV1c2UgcGFyc2VyIGNvbnRleHQgZm9yIG11bHRpcGxlCisgICAgY29uc2VjdXRpdmUgZG9jdW1lbnRzLjwvbGk+CisgIDxsaT5TaW1pbGFyIG5ldyBBUElzIGZvciB0aGUgeG1sUmVhZGVyLCBmb3Igb3B0aW9ucyBhbmQgcmV1c2UsIHByb3ZpZGVkIG5ldworICAgIGZ1bmN0aW9ucyB0byBhY2Nlc3MgY29udGVudCBhcyBjb25zdCBzdHJpbmdzLCB1c2UgdGhlbSBmb3IgUHl0aG9uCisgIGJpbmRpbmdzPC9saT4KKyAgPGxpPmEgIGxvdCBvZiBvdGhlciBzbWFsbGVyIEFQSSBpbXByb3ZlbWVudHM6IHhtbFN0clByaW50ZiAoQWxla3NleSBTYW5pbiksCisgICAgV2Fsa2VyIGkuZS4gcmVhZGVyIG9uIGEgZG9jdW1lbnQgdHJlZSBiYXNlZCBvbiBBbGZyZWQgTWlja2F1dHNjaCBjb2RlLAorICAgIG1ha2Ugcm9vbSBpbiBub2RlcyBmb3IgbGluZSBudW1iZXJzLCByZWZlcmVuY2UgY291bnRpbmcgYW5kIGZ1dHVyZSBQU1ZJCisgICAgZXh0ZW5zaW9ucywgZ2VuZXJhdGlvbiBvZiBjaGFyYWN0ZXIgcmFuZ2VzIHRvIGJlIGNoZWNrZWQgd2l0aCBmYXN0ZXIKKyAgICBhbGdvcml0aG0gKFdpbGxpYW0pLCAgeG1sUGFyc2VyTWF4RGVwdGggKENydXRjaGVyIER1bm5hdmFudCksIGJ1ZmZlcgorICAgIGFjY2VzczwvbGk+CisgIDxsaT5OZXcgeG1sV3JpdGVyIEFQSSBwcm92aWRlZCBieSBBbGZyZWQgTWlja2F1dHNjaDwvbGk+CisgIDxsaT5TY2hlbWFzOiBiYXNlNjQgc3VwcG9ydCBieSBBbnRob255IENhcnJpY288L2xpPgorICA8bGk+UGFyc2VyJmx0Oy0mZ3Q7SFRUUCBpbnRlZ3JhdGlvbiBmaXgsIHByb3BlciBwcm9jZXNzaW5nIG9mIHRoZSBNaW1lLVR5cGUKKyAgICBhbmQgY2hhcnNldCBpbmZvcm1hdGlvbiBpZiBhdmFpbGFibGUuPC9saT4KKyAgPGxpPlJlbGF4LU5HOiBidWcgZml4ZXMgaW5jbHVkaW5nIHRoZSBvbmUgcmVwb3J0ZWQgYnkgTWFydGlqbiBGYWFzc2VuIGFuZAorICAgIHplcm9Pck1vcmUsIGJldHRlciBlcnJvciByZXBvcnRpbmcuPC9saT4KKyAgPGxpPlB5dGhvbiBiaW5kaW5ncyAoU3TDqXBoYW5lIEJpZG91bCksIG5ldmVyIHVzZSBzdGRvdXQgZm9yIGVycm9ycworICBvdXRwdXQ8L2xpPgorICA8bGk+UG9ydGFiaWxpdHk6IGFsbCB0aGUgaGVhZGVycyBoYXZlIG1hY3JvcyBmb3IgZXhwb3J0IGFuZCBjYWxsaW5nCisgICAgY29udmVudGlvbiBkZWZpbml0aW9ucyAoSWdvciBabGF0a292aWMpLCBWTVMgdXBkYXRlIChDcmFpZyBBLiBCZXJyeSksCisgICAgV2luZG93czogdGhyZWFkcyAoSmVzc2UgUGVsdG9uKSwgQm9ybGFuZCBjb21waWxlciAoRXJpYyBadXJjaGVyLCAgSWdvciksCisgICAgTWluZ3cgKElnb3IpLCB0eXBvcyAoTWFyayBWYWtvYyksICBiZXRhIHZlcnNpb24gKFN0ZXBoYW5lIEJpZG91bCksCisgICAgd2FybmluZyBjbGVhbnVwcyBvbiBBSVggYW5kIE1JUFMgY29tcGlsZXJzIChXaWxsaWFtIEJyYWNrKSwgQmVPUyAoTWFyY2luCisgICAgJ1NoYXJkJyBLb25pY2tpKTwvbGk+CisgIDxsaT5Eb2N1bWVudGF0aW9uIGZpeGVzIGFuZCBSRUFETUUgKFdpbGxpYW0gQnJhY2spLCBzZWFyY2ggZml4IChXaWxsaWFtKSwKKyAgICB0dXRvcmlhbCB1cGRhdGVzIChKb2huIEZsZWNrKSwgbmFtZXNwYWNlIGRvY3MgKFN0ZWZhbiBLb3N0KTwvbGk+CisgIDxsaT5CdWcgZml4ZXM6IHhtbENsZWFudXBQYXJzZXIgKERhdmUgQmVja2V0dCksIHRocmVhZGluZyB1bmluaXRpYWxpemVkCisgICAgbXV0ZXhlcywgSFRNTCBkb2N0eXBlIGxvd2VyY2FzZSwgIFNBWC9JTyAoV2lsbGlhbSksIGNvbXByZXNzaW9uIGRldGVjdGlvbgorICAgIGFuZCByZXN0b3JlIChXaWxsaWFtKSwgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGluIERURHMgKFdpbGxpYW0pLCBuYW1lc3BhY2UKKyAgICBvbiBhdHRyaWJ1dGUgaW4gSFRNTCBvdXRwdXQgKFdpbGxpYW0pLCBpbnB1dCBmaWxlbmFtZSAoUm9iIFJpY2hhcmRzKSwKKyAgICBuYW1lc3BhY2UgRFREIHZhbGlkYXRpb24sIHhtbFJlcGxhY2VOb2RlIChDaHJpcyBSeWxhbmQpLCBJL08gY2FsbGJhY2tzCisgICAgKE1hcmt1cyBLZWltKSwgQ0RBVEEgc2VyaWFsaXphdGlvbiAoU2hhdW4gTWNDYW5jZSksIHhtbFJlYWRlciAoUGV0ZXIKKyAgICBEZXJyKSwgaGlnaCBjb2RlcG9pbnQgY2hhcnJlZiBsaWtlICZhbXA7I3gxMEZGRkY7LCBidWZmZXIgYWNjZXNzIGluIHB1c2gKKyAgICBtb2RlIChKdXN0aW4gRmxldGNoZXIpLCBUTFMgdGhyZWFkcyBvbiBXaW5kb3dzIChKZXNzZSBQZWx0b24pLCBYUGF0aCBidWcKKyAgICAoV2lsbGlhbSksIHhtbENsZWFudXBQYXJzZXIgKE1hcmMgTGl5YW5hZ2UpLCBDREFUQSBvdXRwdXQgKFdpbGxpYW0pLCBIVFRQCisgICAgZXJyb3IgaGFuZGxpbmcuPC9saT4KKyAgPGxpPnhtbGxpbnQgb3B0aW9uczogLS1kdGR2YWxpZGZwaSBmb3IgVG9iaWFzIFJlaWYsIC0tc2F4MSBmb3IgY29tcGF0CisgICAgdGVzdGluZywgIC0tbm9kaWN0IGZvciBidWlsZGluZyB3aXRob3V0IHRyZWUgZGljdGlvbm5hcnksIC0tbm9jZGF0YSB0bworICAgIHJlcGxhY2UgQ0RBVEEgYnkgdGV4dCwgLS1uc2NsZWFuIHRvIHJlbW92ZSBzdXJwZXJmbHVvdXMgIG5hbWVzcGFjZQorICAgIGRlY2xhcmF0aW9uczwvbGk+CisgIDxsaT5hZGRlZCB4bWwyLWNvbmZpZyAtLWxpYnRvb2wtbGlicyBvcHRpb24gZnJvbSBLZXZpbiBQLiBGbGVtaW5nPC9saT4KKyAgPGxpPmEgbG90IG9mIHByb2ZpbGluZyBhbmQgdHVuaW5nIG9mIHRoZSBjb2RlLCBzcGVlZHVwIHBhdGNoIGZvcgorICAgIHhtbFNlYXJjaE5zKCkgYnkgTHVjYSBQYWRvdmFuaS4gVGhlIHhtbFJlYWRlciBzaG91bGQgZG8gZmFyIGxlc3MKKyAgICBhbGxvY2F0aW9uIGFuZCBpdCBzcGVlZCBzaG91bGQgZ2V0IGNsb3NlciB0byBTQVguIENocmlzIEFuZGVyc29uIHdvcmtlZAorICAgIG9uIHNwZWVkaW5nIGFuZCBjbGVhbmluZyB1cCByZXBldGl0aXZlIGNoZWNraW5nIGNvZGUuPC9saT4KKyAgPGxpPmNsZWFudXAgb2YgIm1ha2UgdGVzdHMiPC9saT4KKyAgPGxpPmxpYnhtbC0yLjAtdW5pbnN0YWxsZWQucGMgZnJvbSBNYWxjb2xtIFRyZWRpbm5pY2s8L2xpPgorICA8bGk+ZGVhY3RpdmF0ZWQgdGhlIGJyb2tlbiBkb2NCb29rIFNHTUwgcGFyc2VyIGNvZGUgYW5kIHBsdWdnZWQgdGhlIFhNTAorICAgIHBhcnNlciBpbnN0ZWFkLjwvbGk+Cis8L3VsPgorCis8aDM+Mi41LjExOiBTZXAgOSAyMDAzPC9oMz4KKworPHA+QSBidWdmaXggb25seSByZWxlYXNlOjwvcD4KKzx1bD4KKyAgPGxpPnJpc2sgb2YgY3Jhc2ggaW4gUmVsYXgtTkc8L2xpPgorICA8bGk+cmlzayBvZiBjcmFzaCB3aGVuIHVzaW5nIG11bHRpdGhyZWFkZWQgcHJvZ3JhbXM8L2xpPgorPC91bD4KKworPGgzPjIuNS4xMDogQXVnIDE1IDIwMDM8L2gzPgorCis8cD5BIGJ1Z2ZpeGVzIG9ubHkgcmVsZWFzZTwvcD4KKzx1bD4KKyAgPGxpPldpbmRvd3MgTWFrZWZpbGVzIChXaWxsaWFtIEJyYWNrKTwvbGk+CisgIDxsaT5VVEYtMTYgc3VwcG9ydCBmaXhlcyAoTWFyayBJdHpjb3ZpdHopPC9saT4KKyAgPGxpPk1ha2VmaWxlIGFuZCBwb3J0YWJpbGl0eSAoV2lsbGlhbSBCcmFjaykgYXV0b21ha2UsIExpbnV4IGFscGhhLCBNaW5ndworICAgIG9uIFdpbmRvd3MgKE1pa2hhaWwgR3J1c2hpbnNraXkpPC9saT4KKyAgPGxpPkhUTUwgcGFyc2VyIChPbGl2ZXIgU3RvZW5lYmVyZyk8L2xpPgorICA8bGk+WEluY2x1ZGUgcGVyZm9ybWFuY2UgcHJvYmxlbSByZXBvcnRlZCBieSBLZXZpbiBSdXNjb2U8L2xpPgorICA8bGk+WE1MIHBhcnNlciBwZXJmb3JtYW5jZSBwcm9ibGVtIHJlcG9ydGVkIGJ5IEdyYW50IEdvb2RhbGU8L2xpPgorICA8bGk+eG1sU0FYUGFyc2VEVEQoKSBidWcgZml4IGZyb20gTWFsY29sbSBUcmVkaW5uaWNrPC9saT4KKyAgPGxpPmFuZCBhIGNvdXBsZSBvdGhlciBjbGVhbnVwPC9saT4KKzwvdWw+CisKKzxoMz4yLjUuOTogQXVnIDkgMjAwMzwvaDM+Cis8dWw+CisgIDxsaT5idWdmaXhlczogSVB2NiBwb3J0YWJpbGl0eSwgeG1sSGFzTnNQcm9wIChNYXJrdXMgS2VpbSksIFdpbmRvd3MgYnVpbGQKKyAgICAoV2lsaWFtIEJyYWtlLCBKZXNzZSBQZWx0b24sIElnb3IpLCBTY2hlbWFzIChQZXRlciBTb2Jpc2NoKSwgdGhyZWFkaW5nCisgICAgKFJvYiBSaWNoYXJkcyksIGhleEJpbmFyeSB0eXBlICgpLCBVVEYtMTYgQk9NIChEb2RqaSBTZWtldGVsaSksCisgICAgeG1sUmVhZGVyLCBSZWxheC1ORyBzY2hlbWFzIGNvbXBpbGF0aW9uLCBuYW1lc3BhY2UgaGFuZGxpbmcsICBFWFNMVCAoU2VhbgorICAgIEdyaWZmaW4pLCBIVE1MIHBhcnNpbmcgcHJvYmxlbSAoV2lsbGlhbSBCcmFjayksIERURCB2YWxpZGF0aW9uIGZvciBtaXhlZAorICAgIGNvbnRlbnQgKyBuYW1lc3BhY2VzLCBIVE1MIHNlcmlhbGl6YXRpb24sIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24sCisgICAgcHJvZ3Jlc3NpdmUgSFRNTCBwYXJzZXI8L2xpPgorICA8bGk+YmV0dGVyIGludGVyZmFjZXMgZm9yIFJlbGF4LU5HIGVycm9yIGhhbmRsaW5nIChKb2FjaGltIEJhdWNoLCApPC9saT4KKyAgPGxpPmFkZGluZyB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlKCkgZm9yIFhJbmNsdWQnaW5nIGluIGEgc3VidHJlZTwvbGk+CisgIDxsaT5kb2MgZml4ZXMgYW5kIGltcHJvdmVtZW50cyAoSm9obiBGbGVjayk8L2xpPgorICA8bGk+Y29uZmlndXJlIGZsYWcgZm9yIC13aXRoLWZleGNlcHRpb25zIHdoZW4gZW1iZWRkaW5nIGluIEMrKzwvbGk+CisgIDxsaT5jb3VwbGUgb2YgbmV3IFVURi04IGhlbHBlciBmdW5jdGlvbnMgKFdpbGxpYW0gQnJhY2spPC9saT4KKyAgPGxpPmdlbmVyYWwgZW5jb2RpbmcgY2xlYW51cCArIElTTy04ODU5LXggd2l0aG91dCBpY29udiAoUGV0ZXIgSmFjb2JpKTwvbGk+CisgIDxsaT54bWxUZXh0UmVhZGVyIGNsZWFudXAgKyBlbnVtIGZvciBub2RlIHR5cGVzIChCam9ybiBSZWVzZSk8L2xpPgorICA8bGk+Z2VuZXJhbCBjb21waWxhdGlvbi93YXJuaW5nIGNsZWFudXAgU29sYXJpcy9IUC1VWC8uLi4gKFdpbGxpYW0KKyAgQnJhY2spPC9saT4KKzwvdWw+CisKKzxoMz4yLjUuODogSnVsIDYgMjAwMzwvaDM+Cis8dWw+CisgIDxsaT5idWdmaXhlczogWFBhdGgsIFhJbmNsdWRlLCBmaWxlL1VSSSBtYXBwaW5nLCBVVEYtMTYgc2F2ZSAoTWFyaworICAgIEl0emNvdml0eiksIFVURi04IGNoZWNraW5nLCBVUkkgc2F2aW5nLCBlcnJvciBwcmludGluZyAoV2lsbGlhbSBCcmFjayksCisgICAgUEkgcmVsYXRlZCBtZW1sZWFrLCBjb21waWxhdGlvbiB3aXRob3V0IHNjaGVtYXMgb3Igd2l0aG91dCB4cGF0aCAoSm9lcmcKKyAgICBTY2htaXR6LUxpbm5ld2ViZXIvR2FycnkgUGVubmluZ3RvbiksIHhtbFVubGlua05vZGUgcHJvYmxlbSB3aXRoIERURHMsCisgICAgcnBtIHByb2JsZW0gb24gLCBpODZfNjQsIHJlbW92ZWQgYSBmZXcgY29tcGlsYXRpb24gcHJvYmxlbXMgZnJvbSAyLjUuNywKKyAgICB4bWxJT1BhcnNlRFRELCBhbmQgeG1sU0FYUGFyc2VEVEQgKE1hbGNvbG0gVHJlZGlubmljayk8L2xpPgorICA8bGk+cG9ydGFiaWxpdHk6IERKR1BQIChNc0RvcykgLCBPcGVuVk1TIChDcmFpZyBBLiBCZXJyeSk8L2xpPgorICA8bGk+V2lsbGlhbSBCcmFjayBmaXhlZCBtdWx0aXRocmVhZGluZyBsb2NrIHByb2JsZW1zPC9saT4KKyAgPGxpPklQdjYgcGF0Y2ggZm9yIEZUUCBhbmQgSFRUUCBhY2Nlc3NlcyAoQXJjaGFuYSBTaGFoL1dpcHJvKTwvbGk+CisgIDxsaT5XaW5kb3dzIGZpeGVzIChJZ29yIFpsYXRrb3ZpYywgIEVyaWMgWnVyY2hlciksIHRocmVhZGluZyAoU3TDqXBoYW5lCisgICAgQmlkb3VsKTwvbGk+CisgIDxsaT5BIGZldyBXM0MgU2NoZW1hcyBTdHJ1Y3R1cmUgaW1wcm92ZW1lbnRzPC9saT4KKyAgPGxpPlczQyBTY2hlbWFzIERhdGF0eXBlIGltcHJvdmVtZW50cyAoQ2hhcmxpZSBCb3plbWFuKTwvbGk+CisgIDxsaT5QeXRob24gYmluZGluZ3MgZm9yIHRocmVhZCBnbG9iYWxzIChTdMOpcGhhbmUgQmlkb3VsKSwgYW5kIG1ldGhvZC9jbGFzcworICAgIGdlbmVyYXRvcjwvbGk+CisgIDxsaT5hZGRlZCAtLW5vbmV0IG9wdGlvbiB0byB4bWxsaW50PC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzIChKb2huIEZsZWNrKTwvbGk+Cis8L3VsPgorCis8aDM+Mi41Ljc6IEFwciAyNSAyMDAzPC9oMz4KKzx1bD4KKyAgPGxpPlJlbGF4LU5HOiBDb21waWxpbmcgdG8gcmVnZXhwIGFuZCBzdHJlYW1pbmcgdmFsaWRhdGlvbiBvbiB0b3Agb2YgdGhlCisgICAgeG1sUmVhZGVyIGludGVyZmFjZSwgYWRkZWQgdG8geG1sbGludCAtLXN0cmVhbTwvbGk+CisgIDxsaT54bWxSZWFkZXI6IEV4cGFuZCgpLCBOZXh0KCkgYW5kIERPTSBhY2Nlc3MgZ2x1ZSwgYnVnIGZpeGVzPC9saT4KKyAgPGxpPlN1cHBvcnQgZm9yIGxhcmdlIGZpbGVzOiBSR04gdmFsaWRhdGVkIGEgNC41R0IgaW5zdGFuY2U8L2xpPgorICA8bGk+VGhyZWFkIHN1cHBvcnQgaXMgbm93IGNvbmZpZ3VyZWQgaW4gYnkgZGVmYXVsdDwvbGk+CisgIDxsaT5GaXhlczogdXBkYXRlIG9mIHRoZSBUcmlvIGNvZGUgKEJqb3JuKSwgV1hTIERhdGUgYW5kIER1cmF0aW9uIGZpeGVzCisgICAgKENoYXJsZXMgQm96ZW1hbiksIERURCBhbmQgbmFtZXNwYWNlcyAoQnJlbnQgSGVuZHJpY2tzKSwgSFRNTCBwdXNoIHBhcnNlcgorICAgIGFuZCB6ZXJvIGJ5dGVzIGhhbmRsaW5nLCBzb21lIG1pc3NpbmcgV2luZG93cyBmaWxlIHBhdGggY29udmVyc2lvbnMsCisgICAgYmVoYXZpb3VyIG9mIHRoZSBwYXJzZXIgYW5kIHZhbGlkYXRvciBpbiB0aGUgcHJlc2VuY2Ugb2YgIm91dCBvZiBtZW1vcnkiCisgICAgZXJyb3IgY29uZGl0aW9uczwvbGk+CisgIDxsaT5leHRlbmRlZCB0aGUgQVBJIHRvIGJlIGFibGUgdG8gcGx1ZyBhIGdhcmJhZ2UgY29sbGVjdGluZyBtZW1vcnkKKyAgICBhbGxvY2F0b3IsIGFkZGVkIHhtbE1hbGxvY0F0b21pYygpIGFuZCBtb2RpZmllZCB0aGUgYWxsb2NhdGlvbnMKKyAgICBhY2NvcmRpbmdseS48L2xpPgorICA8bGk+UGVyZm9ybWFuY2VzOiByZW1vdmVkIGV4Y2Vzc2l2ZSBtYWxsb2MoKSBjYWxscywgc3BlZWR1cCBvZiB0aGUgcHVzaCBhbmQKKyAgICB4bWxSZWFkZXIgaW50ZXJmYWNlcywgcmVtb3ZlZCBleGNlc3NpdmUgdGhyZWFkIGxvY2tpbmc8L2xpPgorICA8bGk+RG9jdW1lbnRhdGlvbjogbWFuIHBhZ2UgKEpvaG4gRmxlY2spLCB4bWxSZWFkZXIgZG9jdW1lbnRhdGlvbjwvbGk+CisgIDxsaT5QeXRob246IGFkZGluZyBiaW5kaW5nIGZvciB4bWxDYXRhbG9nQWRkTG9jYWwgKEJyZW50IE0gSGVuZHJpY2tzKTwvbGk+Cis8L3VsPgorCis8aDM+Mi41LjY6IEFwciAxIDIwMDM8L2gzPgorPHVsPgorICA8bGk+Rml4ZWQgVzNDIFhNTCBTY2hlbWFzIGRhdGF0eXBlLCBzaG91bGQgYmUgY29tcGxpYW50IG5vdyBleGNlcHQgZm9yCisgICAgYmluSGV4IGFuZCBiYXNlNjQgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LjwvbGk+CisgIDxsaT5idWcgZml4ZXM6IG5vbi1BU0NJSSBJRHMsIEhUTUwgb3V0cHV0LCBYSW5jbHVkZSBvbiBsYXJnZSBkb2NzIGFuZAorICAgIFhJbmNsdWRlIGVudGl0aWVzIGhhbmRsaW5nLCBlbmNvZGluZyBkZXRlY3Rpb24gb24gZXh0ZXJuYWwgc3Vic2V0cywgWE1MCisgICAgU2NoZW1hcyBidWdzIGFuZCBtZW1vcnkgbGVha3MsIEhUTUwgcGFyc2VyIChKYW1lcyBCdXJzYSk8L2xpPgorICA8bGk+cG9ydGFiaWxpdHk6IHB5dGhvbi90cmlvIChBbGJlcnQgQ2hpbiksIFN1biBjb21waWxlciB3YXJuaW5nczwvbGk+CisgIDxsaT5kb2N1bWVudGF0aW9uOiBhZGRlZCAtLXJlbGF4bmcgb3B0aW9uIHRvIHhtbGxpbnQgbWFuIHBhZ2UgKEpvaG4pPC9saT4KKyAgPGxpPmltcHJvdmVkIGVycm9yIHJlcG9ydGluZzogeG1sOnNwYWNlLCBzdGFydC9lbmQgdGFnIG1pc21hdGNoZXMsIFJlbGF4IE5HCisgICAgZXJyb3JzPC9saT4KKzwvdWw+CisKKzxoMz4yLjUuNTogTWFyIDI0IDIwMDM8L2gzPgorPHVsPgorICA8bGk+TG90IG9mIGZpeGVzIG9uIHRoZSBSZWxheCBORyBpbXBsZW1lbnRhdGlvbi4gTW9yZSB0ZXN0aW5nIGluY2x1ZGluZworICAgIERvY0Jvb2sgYW5kIFRFSSBleGFtcGxlcy48L2xpPgorICA8bGk+SW5jcmVhc2VkIHRoZSBzdXBwb3J0IGZvciBXM0MgWE1MIFNjaGVtYXMgZGF0YXR5cGU8L2xpPgorICA8bGk+U2V2ZXJhbCBidWcgZml4ZXMgaW4gdGhlIFVSSSBoYW5kbGluZyBsYXllcjwvbGk+CisgIDxsaT5CdWcgZml4ZXM6IEhUTUwgcGFyc2VyLCB4bWxSZWFkZXIsIERURCB2YWxpZGF0aW9uLCBYUGF0aCwgZW5jb2RpbmcKKyAgICBjb252ZXJzaW9uLCBsaW5lIGNvdW50aW5nIGluIHRoZSBwYXJzZXIuPC9saT4KKyAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yICRYTUxMSU5UX0lOREVOVCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgRlRQIGRlbGV0ZTwvbGk+CisgIDxsaT5GaXhlZCB0aGUgUlBNIHNwZWMgZmlsZSBuYW1lPC9saT4KKzwvdWw+CisKKzxoMz4yLjUuNDogRmViIDIwIDIwMDM8L2gzPgorPHVsPgorICA8bGk+Q29uZm9ybWFuY2UgdGVzdGluZyBhbmQgbG90IG9mIGZpeGVzIG9uIFJlbGF4IE5HIGFuZCBYSW5jbHVkZQorICAgIGltcGxlbWVudGF0aW9uPC9saT4KKyAgPGxpPkltcGxlbWVudGF0aW9uIG9mIFhQb2ludGVyIGVsZW1lbnQoKSBzY2hlbWU8L2xpPgorICA8bGk+QnVnIGZpeGVzOiBYTUwgcGFyc2VyLCBYSW5jbHVkZSBlbnRpdGllcyBtZXJnZSwgdmFsaWRpdHkgY2hlY2tpbmcgb24KKyAgICBuYW1lc3BhY2VzLAorICAgIDxwPjIgc2VyaWFsaXphdGlvbiBidWdzLCBub2RlIGluZm8gZ2VuZXJhdGlvbiBwcm9ibGVtcywgYSBEVEQgcmVnZXhwCisgICAgZ2VuZXJhdGlvbiBwcm9ibGVtLjwvcD4KKyAgPC9saT4KKyAgPGxpPlBvcnRhYmlsaXR5OiB3aW5kb3dzIHVwZGF0ZXMgYW5kIHBhdGggY2Fub25pY2FsaXphdGlvbiAoSWdvcik8L2xpPgorICA8bGk+QSBmZXcgdHlwbyBmaXhlcyAoS2phcnRhbiBNYXJhYXMpPC9saT4KKyAgPGxpPlB5dGhvbiBiaW5kaW5ncyBnZW5lcmF0b3IgZml4ZXMgKFN0ZXBoYW5lIEJpZG91bCk8L2xpPgorPC91bD4KKworPGgzPjIuNS4zOiBGZWIgMTAgMjAwMzwvaDM+Cis8dWw+CisgIDxsaT5SZWxheE5HIGFuZCBYTUwgU2NoZW1hcyBkYXRhdHlwZXMgaW1wcm92ZW1lbnRzLCBhbmQgYWRkZWQgYSBmaXJzdAorICAgIHZlcnNpb24gb2YgUmVsYXhORyBQeXRob24gYmluZGluZ3M8L2xpPgorICA8bGk+Rml4ZXM6IFhMaW5rIChTZWFuIENoaXR0ZW5kZW4pLCBYSW5jbHVkZSAoU2VhbiBDaGl0dGVuZGVuKSwgQVBJIGZpeCBmb3IKKyAgICBzZXJpYWxpemluZyBuYW1lc3BhY2Ugbm9kZXMsIGVuY29kaW5nIGNvbnZlcnNpb24gYnVnLCBYSFRNTDEKKyAgc2VyaWFsaXphdGlvbjwvbGk+CisgIDxsaT5Qb3J0YWJpbGl0eSBmaXhlczogV2luZG93cyAoSWdvciksIEFNRCA2NGJpdHMgUlBNIHNwZWMgZmlsZTwvbGk+Cis8L3VsPgorCis8aDM+Mi41LjI6IEZlYiA1IDIwMDM8L2gzPgorPHVsPgorICA8bGk+Rmlyc3QgaW1wbGVtZW50YXRpb24gb2YgUmVsYXhORywgYWRkZWQgLS1yZWxheG5nIGZsYWcgdG8geG1sbGludDwvbGk+CisgIDxsaT5TY2hlbWFzIHN1cHBvcnQgbm93IGNvbXBpbGVkIGluIGJ5IGRlZmF1bHQuPC9saT4KKyAgPGxpPkJ1ZyBmaXhlczogRFREIHZhbGlkYXRpb24sIG5hbWVzcGFjZSBjaGVja2luZywgWEluY2x1ZGUgYW5kIGVudGl0aWVzLAorICAgIGRlbGVnYXRlVVJJIGluIFhNTCBDYXRhbG9ncywgSFRNTCBwYXJzZXIsIFhNTCByZWFkZXIgKFN0w6lwaGFuZSBCaWRvdWwpLAorICAgIFhQYXRoIHBhcnNlciBhbmQgZXZhbHVhdGlvbiwgIFVURjhUb1VURjggc2VyaWFsaXphdGlvbiwgWE1MIHJlYWRlciBtZW1vcnkKKyAgICBjb25zdW1wdGlvbiwgSFRNTCBwYXJzZXIsIEhUTUwgc2VyaWFsaXphdGlvbiBpbiB0aGUgcHJlc2VuY2Ugb2YKKyAgbmFtZXNwYWNlczwvbGk+CisgIDxsaT5hZGRlZCBhbiBIVE1MIEFQSSB0byBjaGVjayBlbGVtZW50cyBhbmQgYXR0cmlidXRlcy48L2xpPgorICA8bGk+RG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudCwgUERGIGZvciB0aGUgdHV0b3JpYWwgKEpvaG4gRmxlY2spLCBkb2MKKyAgICBwYXRjaGVzIChTdGVmYW4gS29zdCk8L2xpPgorICA8bGk+UG9ydGFiaWxpdHkgZml4ZXM6IE5ldEJTRCAoSnVsaW8gTWVyaW5vKSwgV2luZG93cyAoSWdvciBabGF0a292aWMpPC9saT4KKyAgPGxpPkFkZGVkIHB5dGhvbiBiaW5kaW5ncyBmb3IgWFBvaW50ZXIsIGNvbnRleHR1YWwgZXJyb3IgcmVwb3J0aW5nCisgICAgKFN0w6lwaGFuZSBCaWRvdWwpPC9saT4KKyAgPGxpPlVSSS9maWxlIGVzY2FwaW5nIHByb2JsZW1zIChTdGVmYW5vIFphY2NoaXJvbGkpPC9saT4KKzwvdWw+CisKKzxoMz4yLjUuMTogSmFuIDggMjAwMzwvaDM+Cis8dWw+CisgIDxsaT5GaXhlcyBhIG1lbW9yeSBsZWFrIGFuZCBjb25maWd1cmF0aW9uL2NvbXBpbGF0aW9uIHByb2JsZW1zIGluIDIuNS4wPC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb24gdXBkYXRlcyAoSm9obik8L2xpPgorICA8bGk+YSBjb3VwbGUgb2YgWG1sVGV4dFJlYWRlciBmaXhlczwvbGk+Cis8L3VsPgorCis8aDM+Mi41LjA6IEphbiA2IDIwMDM8L2gzPgorPHVsPgorICA8bGk+TmV3IDxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5YbWx0ZXh0UmVhZGVyIGludGVyZmFjZTwvYT4gYmFzZWQgb24gQyMKKyAgICBBUEkgKHdpdGggaGVscCBvZiBTdMOpcGhhbmUgQmlkb3VsKTwvbGk+CisgIDxsaT5XaW5kb3dzOiBtb3JlIGV4cG9ydHMsIGluY2x1ZGluZyB0aGUgbmV3IEFQSSAoSWdvcik8L2xpPgorICA8bGk+WEluY2x1ZGUgZmFsbGJhY2sgZml4PC9saT4KKyAgPGxpPlB5dGhvbjogYmluZGluZ3MgZm9yIHRoZSBuZXcgQVBJLCBwYWNrYWdpbmcgKFN0w6lwaGFuZSBCaWRvdWwpLAorICAgIGRydl9saWJ4bWwyLnB5IFB5dGhvbiB4bWwuc2F4IGRyaXZlciAoU3TDqXBoYW5lIEJpZG91bCksIGZpeGVzLCBzcGVlZHVwCisgICAgYW5kIGl0ZXJhdG9ycyBmb3IgUHl0aG9uLTIuMiAoSGFubnUgS3Jvc2luZyk8L2xpPgorICA8bGk+VHV0b3JpYWwgZml4ZXMgKGpvaG4gRmxlY2sgYW5kIE5pcmFqIFRvbGlhKSB4bWxsaW50IG1hbiB1cGRhdGUKKyAgKEpvaG4pPC9saT4KKyAgPGxpPkZpeCBhbiBYTUwgcGFyc2VyIGJ1ZyByYWlzZWQgYnkgVnlhY2hlc2xhdiBQaW5keXVyYTwvbGk+CisgIDxsaT5GaXggZm9yIFZNUyBzZXJpYWxpemF0aW9uIChOaWdlbCBIYWxsKSBhbmQgY29uZmlnIChDcmFpZyBBLiBCZXJyeSk8L2xpPgorICA8bGk+RW50aXRpZXMgaGFuZGxpbmcgZml4ZXM8L2xpPgorICA8bGk+bmV3IEFQSSB0byBvcHRpb25hbGx5IHRyYWNrIG5vZGUgY3JlYXRpb24gYW5kIGRlbGV0aW9uIChMdWthcworICBTY2hyb2VkZXIpPC9saT4KKyAgPGxpPkFkZGVkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBYbWx0ZXh0UmVhZGVyIGludGVyZmFjZSBhbmQgc29tZSA8YQorICAgIGhyZWY9Imd1aWRlbGluZXMuaHRtbCI+WE1MIGd1aWRlbGluZXM8L2E+PC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMzA6IERlYyAxMiAyMDAyPC9oMz4KKzx1bD4KKyAgPGxpPjIuNC4yOSBicm9rZSB0aGUgcHl0aG9uIGJpbmRpbmdzLCByZXJlbGVhc2luZzwvbGk+CisgIDxsaT5JbXByb3ZlbWVudC9maXhlcyBvZiB0aGUgWE1MIEFQSSBnZW5lcmF0b3IsIGFuZCBjb3VwbGUgb2YgbWlub3IgY29kZQorICAgIGZpeGVzLjwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjI5OiBEZWMgMTEgMjAwMjwvaDM+Cis8dWw+CisgIDxsaT5XaW5kb3dzIGZpeGVzIChJZ29yKTogV2luZG93cyBDRSBwb3J0LCBwdGhyZWFkIGxpbmtpbmcsIHB5dGhvbiBiaW5kaW5ncworICAgIChTdMOpcGhhbmUgQmlkb3VsKSwgTWluZ3cgKE1hZ251cyBIZW5vY2gpLCBhbmQgZXhwb3J0IGxpc3QgdXBkYXRlczwvbGk+CisgIDxsaT5GaXggZm9yIHByZXYgaW4gcHl0aG9uIGJpbmRpbmdzIChFUkRJIEdlcmdvKTwvbGk+CisgIDxsaT5GaXggZm9yIGVudGl0aWVzIGhhbmRsaW5nIChNYXJjdXMgQ2xhcmtlKTwvbGk+CisgIDxsaT5SZWZhY3RvcmVkIHRoZSBYTUwgYW5kIEhUTUwgZHVtcHMgdG8gYSBzaW5nbGUgY29kZSBwYXRoLCBmaXhlZCBYSFRNTDEKKyAgICBkdW1wPC9saT4KKyAgPGxpPkZpeCBmb3IgVVJJIHBhcnNpbmcgd2hlbiBoYW5kbGluZyBVUk5zIHdpdGggZnJhZ21lbnQgaWRlbnRpZmllcnM8L2xpPgorICA8bGk+Rml4IGZvciBIVFRQIFVSTCBlc2NhcGluZyBwcm9ibGVtPC9saT4KKyAgPGxpPmFkZGVkIGFuIFRleHRYbWxSZWFkZXIgKEMjKSBsaWtlIEFQSSAod29yayBpbiBwcm9ncmVzcyk8L2xpPgorICA8bGk+UmV3cm90ZSB0aGUgQVBJIGluIFhNTCBnZW5lcmF0aW9uIHNjcmlwdCwgaW5jbHVkZXMgYSBDIHBhcnNlciBhbmQgc2F2ZXMKKyAgICBtb3JlIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgQyMgYmluZGluZ3M8L2xpPgorPC91bD4KKworPGgzPjIuNC4yODogTm92IDIyIDIwMDI8L2gzPgorPHVsPgorICA8bGk+YSBjb3VwbGUgb2YgcHl0aG9uIGJpbmRpbmcgZml4ZXM8L2xpPgorICA8bGk+MiBidWcgZml4ZXMgaW4gdGhlIFhNTCBwdXNoIHBhcnNlcjwvbGk+CisgIDxsaT5wb3RlbnRpYWwgbWVtb3J5IGxlYWsgcmVtb3ZlZCAoTWFydGluIFN0b2lsb3YpPC9saT4KKyAgPGxpPmZpeCB0byB0aGUgY29uZmlndXJlIHNjcmlwdCBmb3IgVW5peCAoRGltaXRyaSBQYXBhZG9wb3Vsb3MpPC9saT4KKyAgPGxpPmFkZGVkIGVuY29kaW5nIHN1cHBvcnQgZm9yIFhJbmNsdWRlIHBhcnNlPSJ0ZXh0IjwvbGk+CisgIDxsaT5hdXRvZGV0ZWN0aW9uIG9mIFhIVE1MMSBhbmQgc3BlY2lmaWMgc2VyaWFsaXphdGlvbiBydWxlcyBhZGRlZDwvbGk+CisgIDxsaT5uYXN0eSB0aHJlYWRpbmcgYnVnIGZpeGVkIChXaWxsaWFtIEJyYWNrKTwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjI3OiBOb3YgMTcgMjAwMjwvaDM+Cis8dWw+CisgIDxsaT5maXhlcyBmb3IgdGhlIFB5dGhvbiBiaW5kaW5nczwvbGk+CisgIDxsaT5hIG51bWJlciBvZiBidWcgZml4ZXM6IFNHTUwgY2F0YWxvZ3MsIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSgpLAorICAgIEhUTUwgcGFyc2VyLCAgU2NoZW1hcyAoQ2hhcmxlcyBCb3plbWFuKSwgZG9jdW1lbnQgZnJhZ21lbnQgc3VwcG9ydAorICAgIChDaHJpc3RpYW4gR2xhaG4pLCB4bWxSZWNvbmNpbGlhdGVOcyAoQnJpYW4gU3RhZmZvcmQpLCBYUG9pbnRlciwKKyAgICB4bWxGcmVlTm9kZSgpLCB4bWxTQVhQYXJzZU1lbW9yeSAoUGV0ZXIgSm9uZXMpLCB4bWxHZXROb2RlUGF0aCAoUGV0cgorICAgIFBhamFzKSwgZW50aXRpZXMgcHJvY2Vzc2luZzwvbGk+CisgIDxsaT5hZGRlZCBncmVwIHRvIHhtbGxpbnQgLS1zaGVsbDwvbGk+CisgIDxsaT5WTVMgdXBkYXRlIHBhdGNoIGZyb20gQ3JhaWcgQS4gQmVycnk8L2xpPgorICA8bGk+Y2xlYW51cCBvZiB0aGUgV2luZG93cyBidWlsZCB3aXRoIHN1cHBvcnQgZm9yIG1vcmUgY29tcGlsZXJzIChJZ29yKSwKKyAgICBiZXR0ZXIgdGhyZWFkIHN1cHBvcnQgb24gV2luZG93czwvbGk+CisgIDxsaT5jbGVhbnVwIG9mIFVuaXggTWFrZWZpbGVzIGFuZCBzcGVjIGZpbGU8L2xpPgorICA8bGk+SW1wcm92ZW1lbnRzIHRvIHRoZSBkb2N1bWVudGF0aW9uIChKb2huIEZsZWNrKTwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjI2OiBPY3QgMTggMjAwMjwvaDM+Cis8dWw+CisgIDxsaT5QYXRjaGVzIGZvciBXaW5kb3dzIENFIHBvcnQsIGltcHJvdmVtZW50cyBvbiBXaW5kb3dzIHBhdGhzIGhhbmRsaW5nPC9saT4KKyAgPGxpPkZpeGVzIHRvIHRoZSB2YWxpZGF0aW9uICBjb2RlIChEVEQgYW5kIFNjaGVtYXMpLCB4bWxOb2RlR2V0UGF0aCgpICwKKyAgICBIVE1MIHNlcmlhbGl6YXRpb24sIE5hbWVzcGFjZSBjb21wbGlhbmNlLCAgYW5kIGEgbnVtYmVyIG9mIHNtYWxsCisgIHByb2JsZW1zPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMjU6IFNlcCAyNiAyMDAyPC9oMz4KKzx1bD4KKyAgPGxpPkEgbnVtYmVyIG9mIGJ1ZyBmaXhlczogWFBhdGgsIHZhbGlkYXRpb24sIFB5dGhvbiBiaW5kaW5ncywgRE9NIGFuZAorICAgIHRyZWUsIHhtbEkvTywgIEh0bWw8L2xpPgorICA8bGk+U2VyaW91cyByZXdyaXRlIG9mIFhJbmNsdWRlPC9saT4KKyAgPGxpPk1hZGUgWE1MIFNjaGVtYXMgcmVnZXhwIHBhcnQgb2YgdGhlIGRlZmF1bHQgYnVpbGQgYW5kIEFQSXMsIHNtYWxsIGZpeAorICAgIGFuZCBpbXByb3ZlbWVudCBvZiB0aGUgcmVnZXhwIGNvcmU8L2xpPgorICA8bGk+Q2hhbmdlZCB0aGUgdmFsaWRhdGlvbiBjb2RlIHRvIHJldXNlIFhNTCBTY2hlbWFzIHJlZ2V4cCBBUElzPC9saT4KKyAgPGxpPkJldHRlciBoYW5kbGluZyBvZiBXaW5kb3dzIGZpbGUgcGF0aHMsIGltcHJvdmVtZW50IG9mIE1ha2VmaWxlcyAoSWdvciwKKyAgICBEYW5pZWwgR2VocmlnZXIsIE1hcmsgVmFrb2MpPC9saT4KKyAgPGxpPkltcHJvdmVkIHRoZSBweXRob24gSS9PIGJpbmRpbmdzLCB0aGUgdGVzdHMsIGFkZGVkIHJlc29sdmVyIGFuZCByZWdleHAKKyAgICBBUElzPC9saT4KKyAgPGxpPk5ldyBsb2dvcyBmcm9tIE1hcmMgTGl5YW5hZ2U8L2xpPgorICA8bGk+VHV0b3JpYWwgaW1wcm92ZW1lbnRzOiBKb2huIEZsZWNrLCBDaHJpc3RvcGhlciBIYXJyaXM8L2xpPgorICA8bGk+TWFrZWZpbGU6IEZpeGVzIGZvciBBTUQgeDg2XzY0IChNYW5kcmFrZSksIERFU1RESVIgKENocmlzdG9waGUKKyAgTWVybGV0KTwvbGk+CisgIDxsaT5yZW1vdmFsIG9mIGFsbCBzdGRlcnIvcGVycm9yIHVzZSBmb3IgZXJyb3IgcmVwb3J0aW5nPC9saT4KKyAgPGxpPkJldHRlciBlcnJvciByZXBvcnRpbmc6IFhQYXRoIGFuZCBEVEQgdmFsaWRhdGlvbjwvbGk+CisgIDxsaT51cGRhdGUgb2YgdGhlIHRyaW8gcG9ydGFiaWxpdHkgbGF5ZXIgKEJqb3JuIFJlZXNlKTwvbGk+Cis8L3VsPgorCis8cD48c3Ryb25nPjIuNC4yNDogQXVnIDIyIDIwMDI8L3N0cm9uZz48L3A+Cis8dWw+CisgIDxsaT5YUGF0aCBmaXhlcyAoV2lsbGlhbSksIHhmOmVzY2FwZS11cmkoKSAoV2VzbGV5IFRlcnBzdHJhKTwvbGk+CisgIDxsaT5QeXRob24gYmluZGluZyBmaXhlczogbWFrZWZpbGVzIChXaWxsaWFtKSwgZ2VuZXJhdG9yLCBycG0gYnVpbGQsIHg4Ni02NAorICAgIChmY3JvemF0KTwvbGk+CisgIDxsaT5IVE1MICZsdDtzdHlsZSZndDsgYW5kIGJvb2xlYW4gYXR0cmlidXRlcyBzZXJpYWxpemVyIGZpeGVzPC9saT4KKyAgPGxpPkMxNE4gaW1wcm92ZW1lbnRzIGJ5IEFsZWtzZXk8L2xpPgorICA8bGk+ZG9jIGNsZWFudXBzOiBSaWNrIEpvbmVzPC9saT4KKyAgPGxpPldpbmRvd3MgY29tcGlsZXIgbWFrZWZpbGUgdXBkYXRlczogSWdvciBhbmQgRWxpemFiZXRoIEJhcmhhbTwvbGk+CisgIDxsaT5YSW5jbHVkZTogaW1wbGVtZW50YXRpb24gb2YgZmFsbGJhY2sgYW5kIHhtbDpiYXNlIGZpeHVwIGFkZGVkPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMjM6IEp1bHkgNiAyMDAyPC9oMz4KKzx1bD4KKyAgPGxpPnBlcmZvcm1hbmNlcyBwYXRjaGVzOiBQZXRlciBKYWNvYmk8L2xpPgorICA8bGk+YzE0biBmaXhlcywgdGVzdHN1aXRlIGFuZCBwZXJmb3JtYW5jZXM6IEFsZWtzZXkgU2FuaW48L2xpPgorICA8bGk+YWRkZWQgeG1sRG9jRm9ybWF0RHVtcDogQ2hlbWEgQ2Vsb3JpbzwvbGk+CisgIDxsaT5uZXcgdHV0b3JpYWw6IEpvaG4gRmxlY2s8L2xpPgorICA8bGk+bmV3IGhhc2ggZnVuY3Rpb25zIGFuZCBwZXJmb3JtYW5jZXM6IFNhbmRlciBWZXNpaywgcG9ydGFiaWxpdHkgZml4IGZyb20KKyAgICBQZXRlciBKYWNvYmk8L2xpPgorICA8bGk+YSBudW1iZXIgb2YgYnVnIGZpeGVzOiBYUGF0aCAoV2lsbGlhbSBCcmFjaywgUmljaGFyZCBKaW5rcyksIFhNTCBhbmQKKyAgICBIVE1MIHBhcnNlcnMsIElEIGxvb2t1cCBmdW5jdGlvbjwvbGk+CisgIDxsaT5yZW1vdmFsIG9mIGFsbCByZW1haW5pbmcgc3ByaW50ZjogQWxla3NleSBTYW5pbjwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjIyOiBNYXkgMjcgMjAwMjwvaDM+Cis8dWw+CisgIDxsaT5hIG51bWJlciBvZiBidWcgZml4ZXM6IGNvbmZpZ3VyZSBzY3JpcHRzLCBiYXNlIGhhbmRsaW5nLCBwYXJzZXIsIG1lbW9yeQorICAgIHVzYWdlLCBIVE1MIHBhcnNlciwgWFBhdGgsIGRvY3VtZW50YXRpb24gKENocmlzdGlhbiBDb3JuZWxzc2VuKSwKKyAgICBpbmRlbnRhdGlvbiwgVVJJIHBhcnNpbmc8L2xpPgorICA8bGk+T3B0aW1pemF0aW9ucyBmb3IgWE1MU2VjLCBmaXhpbmcgYW5kIG1ha2luZyBwdWJsaWMgc29tZSBvZiB0aGUgbmV0d29yaworICAgIHByb3RvY29sIGhhbmRsZXJzIChBbGVrc2V5KTwvbGk+CisgIDxsaT5wZXJmb3JtYW5jZSBwYXRjaCBmcm9tIEdhcnkgUGVubmluZ3RvbjwvbGk+CisgIDxsaT5DaGFybGVzIEJvemVtYW4gcHJvdmlkZWQgZGF0ZSBhbmQgdGltZSBzdXBwb3J0IGZvciBYTUwgU2NoZW1hcworICBkYXRhdHlwZXM8L2xpPgorPC91bD4KKworPGgzPjIuNC4yMTogQXByIDI5IDIwMDI8L2gzPgorCis8cD5UaGlzIHJlbGVhc2UgaXMgYm90aCBhIGJ1ZyBmaXggcmVsZWFzZSBhbmQgYWxzbyBjb250YWlucyB0aGUgZWFybHkgWE1MCitTY2hlbWFzIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0xLyI+c3RydWN0dXJlczwvYT4gYW5kIDxhCitocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWxzY2hlbWEtMi8iPmRhdGF0eXBlczwvYT4gY29kZSwgYmV3YXJlLCBhbGwKK2ludGVyZmFjZXMgYXJlIGxpa2VseSB0byBjaGFuZ2UsIHRoZXJlIGlzIGh1Z2UgaG9sZXMsIGl0IGlzIGNsZWFybHkgYSB3b3JrIGluCitwcm9ncmVzcyBhbmQgZG9uJ3QgZXZlbiB0aGluayBvZiBwdXR0aW5nIHRoaXMgY29kZSBpbiBhIHByb2R1Y3Rpb24gc3lzdGVtLAoraXQncyBhY3R1YWxseSBub3QgY29tcGlsZWQgaW4gYnkgZGVmYXVsdC4gVGhlIHJlYWwgZml4ZXMgYXJlOjwvcD4KKzx1bD4KKyAgPGxpPmEgY291cGxlIG9mIGJ1Z3Mgb3IgbGltaXRhdGlvbnMgaW50cm9kdWNlZCBpbiAyLjQuMjA8L2xpPgorICA8bGk+cGF0Y2hlcyBmb3IgQm9ybGFuZCBDKysgYW5kIE1TQyBieSBJZ29yPC9saT4KKyAgPGxpPnNvbWUgZml4ZXMgb24gWFBhdGggc3RyaW5ncyBhbmQgY29uZm9ybWFuY2UgcGF0Y2hlcyBieSBSaWNoYXJkCisgIEppbmtzPC9saT4KKyAgPGxpPnBhdGNoIGZyb20gQWxla3NleSBmb3IgdGhlIEV4Y0MxNE4gc3BlY2lmaWNhdGlvbjwvbGk+CisgIDxsaT5PU0YvMSBidWcgZml4IGJ5IEJqb3JuPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMjA6IEFwciAxNSAyMDAyPC9oMz4KKzx1bD4KKyAgPGxpPmJ1ZyBmaXhlczogZmlsZSBkZXNjcmlwdG9yIGxlYWssIFhQYXRoLCBIVE1MIG91dHB1dCwgRFREIHZhbGlkYXRpb248L2xpPgorICA8bGk+WFBhdGggY29uZm9ybWFuY2UgdGVzdGluZyBieSBSaWNoYXJkIEppbmtzPC9saT4KKyAgPGxpPlBvcnRhYmlsaXR5IGZpeGVzOiBTb2xhcmlzLCBNUEUvaVgsIFdpbmRvd3MsIE9TRi8xLCBweXRob24gYmluZGluZ3MsCisgICAgbGlieG1sLm00PC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMTk6IE1hciAyNSAyMDAyPC9oMz4KKzx1bD4KKyAgPGxpPmJ1ZyBmaXhlczogaGFsZiBhIGRvemVuIFhQYXRoIGJ1Z3MsIFZhbGlkYXRpb24sIElTTy1MYXRpbiB0byBVVEY4CisgICAgZW5jb2RlcjwvbGk+CisgIDxsaT5wb3J0YWJpbGl0eSBmaXhlcyBpbiB0aGUgSFRUUCBjb2RlPC9saT4KKyAgPGxpPm1lbW9yeSBhbGxvY2F0aW9uIGNoZWNrcyB1c2luZyB2YWxncmluZCwgYW5kIHByb2ZpbGluZyB0ZXN0czwvbGk+CisgIDxsaT5yZXZhbXAgb2YgdGhlIFdpbmRvd3MgYnVpbGQgYW5kIE1ha2VmaWxlczwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjE4OiBNYXIgMTggMjAwMjwvaDM+Cis8dWw+CisgIDxsaT5idWcgZml4ZXM6IHRyZWUsIFNBWCwgY2Fub25pY2FsaXphdGlvbiwgdmFsaWRhdGlvbiwgcG9ydGFiaWxpdHksCisgIFhQYXRoPC9saT4KKyAgPGxpPnJlbW92ZWQgdGhlIC0td2l0aC1idWZmZXIgb3B0aW9uIGl0IHdhcyBiZWNvbWluZyB1bm1haW50YWluYWJsZTwvbGk+CisgIDxsaT5zZXJpb3VzIGNsZWFudXAgb2YgdGhlIFB5dGhvbiBtYWtlZmlsZXM8L2xpPgorICA8bGk+c3BlZWR1cCBwYXRjaCB0byBYUGF0aCB2ZXJ5IGVmZmVjdGl2ZSBmb3IgRG9jQm9vayBzdHlsZXNoZWV0czwvbGk+CisgIDxsaT5GaXhlcyBmb3IgV2luZG93cyBidWlsZCwgY2xlYW51cCBvZiB0aGUgZG9jdW1lbnRhdGlvbjwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjE3OiBNYXIgOCAyMDAyPC9oMz4KKzx1bD4KKyAgPGxpPmEgbG90IG9mIGJ1ZyBmaXhlcywgaW5jbHVkaW5nICJuYW1lc3BhY2Ugbm9kZXMgaGF2ZSBubyBwYXJlbnRzIGluCisgIFhQYXRoIjwvbGk+CisgIDxsaT5maXhlZC9pbXByb3ZlZCB0aGUgUHl0aG9uIHdyYXBwZXJzLCBhZGRlZCBtb3JlIGV4YW1wbGVzIGFuZCBtb3JlCisgICAgcmVncmVzc2lvbiB0ZXN0cywgWFBhdGggZXh0ZW5zaW9uIGZ1bmN0aW9ucyBjYW4gbm93IHJldHVybiBub2RlLXNldHM8L2xpPgorICA8bGk+YWRkZWQgdGhlIFhNTCBDYW5vbmljYWxpemF0aW9uIHN1cHBvcnQgZnJvbSBBbGVrc2V5IFNhbmluPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMTY6IEZlYiAyMCAyMDAyPC9oMz4KKzx1bD4KKyAgPGxpPmEgbG90IG9mIGJ1ZyBmaXhlcywgbW9zdCBvZiB0aGVtIHdlcmUgdHJpZ2dlcmVkIGJ5IHRoZSBYTUwgVGVzdHN1aXRlCisgICAgZnJvbSBPQVNJUyBhbmQgVzNDLiBDb21wbGlhbmNlIGhhcyBiZWVuIHNpZ25pZmljYW50bHkgaW1wcm92ZWQuPC9saT4KKyAgPGxpPmEgY291cGxlIG9mIHBvcnRhYmlsaXR5IGZpeGVzIHRvby48L2xpPgorPC91bD4KKworPGgzPjIuNC4xNTogRmViIDExIDIwMDI8L2gzPgorPHVsPgorICA8bGk+Rml4ZWQgdGhlIE1ha2VmaWxlcywgZXNwZWNpYWxseSB0aGUgcHl0aG9uIG1vZHVsZSBvbmVzPC9saT4KKyAgPGxpPkEgZmV3IGJ1ZyBmaXhlcyBhbmQgY2xlYW51cDwvbGk+CisgIDxsaT5JbmNsdWRlcyBjbGVhbnVwPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMTQ6IEZlYiA4IDIwMDI8L2gzPgorPHVsPgorICA8bGk+Q2hhbmdlIG9mIExpY2Vuc2UgdG8gdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5odG1sIj5NSVQKKyAgICBMaWNlbnNlPC9hPiBiYXNpY2FsbHkgZm9yIGludGVncmF0aW9uIGluIFhGcmVlODYgY29kZWJhc2UsIGFuZCByZW1vdmluZworICAgIGNvbmZ1c2lvbiBhcm91bmQgdGhlIHByZXZpb3VzIGR1YWwtbGljZW5zaW5nPC9saT4KKyAgPGxpPmFkZGVkIFB5dGhvbiBiaW5kaW5ncywgYmV0YSBzb2Z0d2FyZSBidXQgc2hvdWxkIGFscmVhZHkgYmUgcXVpdGUKKyAgICBjb21wbGV0ZTwvbGk+CisgIDxsaT5hIGxhcmdlIG51bWJlciBvZiBmaXhlcyBhbmQgY2xlYW51cHMsIGVzcGVjaWFsbHkgZm9yIGFsbCB0cmVlCisgICAgbWFuaXB1bGF0aW9uczwvbGk+CisgIDxsaT5jbGVhbnVwIG9mIHRoZSBoZWFkZXJzLCBnZW5lcmF0aW9uIG9mIGEgcmVmZXJlbmNlIEFQSSBkZWZpbml0aW9uIGluCisgIFhNTDwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjEzOiBKYW4gMTQgMjAwMjwvaDM+Cis8dWw+CisgIDxsaT51cGRhdGUgb2YgdGhlIGRvY3VtZW50YXRpb246IEpvaG4gRmxlY2sgYW5kIENoYXJsaWUgQm96ZW1hbjwvbGk+CisgIDxsaT5jbGVhbnVwIG9mIHRpbWluZyBjb2RlIGZyb20gSnVzdGluIEZsZXRjaGVyPC9saT4KKyAgPGxpPmZpeGVzIGZvciBXaW5kb3dzIGFuZCBpbml0aWFsIHRocmVhZCBzdXBwb3J0IG9uIFdpbjMyOiBJZ29yIGFuZCBTZXJndWVpCisgICAgTmFyb2pueWk8L2xpPgorICA8bGk+Q3lnd2luIHBhdGNoIGZyb20gUm9iZXJ0IENvbGxpbnM8L2xpPgorICA8bGk+YWRkZWQgeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYygpIGZvciBLZWl0aCBJc2RhbGUgd29yayBvbiB4c2xkYmc8L2xpPgorPC91bD4KKworPGgzPjIuNC4xMjogRGVjIDcgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5hIGZldyBidWcgZml4ZXM6IHRocmVhZCAoR2FyeSBQZW5uaW5ndG9uKSwgeG1sbGludCAoR2VlcnQgS2xvb3N0ZXJtYW4pLAorICAgIFhNTCBwYXJzZXIgKFJvYmluIEJlcmpvbiksIFhQb2ludGVyIChEYW5ueSBKYW1zaHkpLCBJL08gY2xlYW51cHMKKyAgKHJvYmVydCk8L2xpPgorICA8bGk+RXJpYyBMYXZpZ25lIGNvbnRyaWJ1dGVkIHByb2plY3QgZmlsZXMgZm9yIE1hY09TPC9saT4KKyAgPGxpPnNvbWUgbWFrZWZpbGVzIGNsZWFudXBzPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMTE6IE5vdiAyNiAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPmZpeGVkIGEgY291cGxlIG9mIGVycm9ycyBpbiB0aGUgaW5jbHVkZXMsIGZpeGVkIGEgZmV3IGJ1Z3MsIHNvbWUgY29kZQorICAgIGNsZWFudXBzPC9saT4KKyAgPGxpPnhtbGxpbnQgbWFuIHBhZ2VzIGltcHJvdmVtZW50IGJ5IEhlaWtvIFJ1cHA8L2xpPgorICA8bGk+dXBkYXRlZCBWTVMgYnVpbGQgaW5zdHJ1Y3Rpb25zIGZyb20gSm9obiBBIEZvdGhlcmluZ2hhbTwvbGk+CisgIDxsaT5XaW5kb3dzIE1ha2VmaWxlcyB1cGRhdGVzIGZyb20gSWdvcjwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjEwOiBOb3YgMTAgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5VUkkgZXNjYXBpbmcgZml4IChKb2VsIFlvdW5nKTwvbGk+CisgIDxsaT5hZGRlZCB4bWxHZXROb2RlUGF0aCgpIChmb3IgcGF0aHMgb3IgWFBvaW50ZXJzIGdlbmVyYXRpb24pPC9saT4KKyAgPGxpPkZpeGVzIG5hbWVzcGFjZSBoYW5kbGluZyBwcm9ibGVtcyB3aGVuIHVzaW5nIERURCBhbmQgdmFsaWRhdGlvbjwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHMgb24geG1sbGludDogTW9ydXMgV2FsdGVyIHBhdGNoZXMgZm9yIC0tZm9ybWF0IGFuZAorICAgIC0tZW5jb2RlLCBTdGVmYW4gS29zdCBhbmQgSGVpa28gUnVwcCBpbXByb3ZlbWVudHMgb24gdGhlIC0tc2hlbGw8L2xpPgorICA8bGk+Zml4ZXMgZm9yIHhtbGNhdGFsb2cgbGlua2luZyBwb2ludGVkIGJ5IFdlaXFpIEdhbzwvbGk+CisgIDxsaT5maXhlcyB0byB0aGUgSFRNTCBwYXJzZXI8L2xpPgorPC91bD4KKworPGgzPjIuNC45OiBOb3YgNiAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPmZpeGVzIG1vcmUgY2F0YWxvZyBidWdzPC9saT4KKyAgPGxpPmF2b2lkIGEgY29tcGlsYXRpb24gcHJvYmxlbSwgaW1wcm92ZSB4bWxHZXRMaW5lTm8oKTwvbGk+Cis8L3VsPgorCis8aDM+Mi40Ljg6IE5vdiA0IDIwMDE8L2gzPgorPHVsPgorICA8bGk+Zml4ZWQgU0dNTCBjYXRhbG9ncyBicm9rZW4gaW4gcHJldmlvdXMgcmVsZWFzZSwgdXBkYXRlZCB4bWxjYXRhbG9nCisgIHRvb2w8L2xpPgorICA8bGk+Zml4ZWQgYSBjb21waWxlIGVycm9ycyBhbmQgc29tZSBpbmNsdWRlcyB0cm91Ymxlcy48L2xpPgorPC91bD4KKworPGgzPjIuNC43OiBPY3QgMzAgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5leHBvcnRlZCBzb21lIGRlYnVnZ2luZyBpbnRlcmZhY2VzPC9saT4KKyAgPGxpPnNlcmlvdXMgcmV3cml0ZSBvZiB0aGUgY2F0YWxvZyBjb2RlPC9saT4KKyAgPGxpPmludGVncmF0ZWQgR2FyeSBQZW5uaW5ndG9uIHRocmVhZCBzYWZldHkgcGF0Y2gsIGFkZGVkIGNvbmZpZ3VyZSBvcHRpb24KKyAgICBhbmQgcmVncmVzc2lvbiB0ZXN0czwvbGk+CisgIDxsaT5yZW1vdmVkIGFuIEhUTUwgcGFyc2VyIGJ1ZzwvbGk+CisgIDxsaT5maXhlZCBhIGNvdXBsZSBvZiBwb3RlbnRpYWxseSBzZXJpb3VzIHZhbGlkYXRpb24gYnVnczwvbGk+CisgIDxsaT5pbnRlZ3JhdGVkIHRoZSBTR01MIERvY0Jvb2sgc3VwcG9ydCBpbiB4bWxsaW50PC9saT4KKyAgPGxpPmNoYW5nZWQgdGhlIG5hbm9mdHAgYW5vbnltb3VzIGxvZ2luIHBhc3N3ZDwvbGk+CisgIDxsaT5zb21lIEkvTyBjbGVhbnVwIGFuZCBhIGNvdXBsZSBvZiBpbnRlcmZhY2VzIGZvciBQZXJsIHdyYXBwZXI8L2xpPgorICA8bGk+Z2VuZXJhbCBidWcgZml4ZXM8L2xpPgorICA8bGk+dXBkYXRlZCB4bWxsaW50IG1hbiBwYWdlIGJ5IEpvaG4gRmxlY2s8L2xpPgorICA8bGk+c29tZSBWTVMgYW5kIFdpbmRvd3MgdXBkYXRlczwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjY6IE9jdCAxMCAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPmFkZGVkIGFuIHVwZGF0ZWQgbWFuIHBhZ2VzIGJ5IEpvaG4gRmxlY2s8L2xpPgorICA8bGk+cG9ydGFiaWxpdHkgYW5kIGNvbmZpZ3VyZSBmaXhlczwvbGk+CisgIDxsaT5hbiBpbmZpbml0ZSBsb29wIG9uIHRoZSBIVE1MIHBhcnNlciB3YXMgcmVtb3ZlZCAoV2lsbGlhbSk8L2xpPgorICA8bGk+V2luZG93cyBtYWtlZmlsZSBwYXRjaGVzIGZyb20gSWdvcjwvbGk+CisgIDxsaT5maXhlZCBoYWxmIGEgZG96ZW4gYnVncyByZXBvcnRlZCBmb3IgbGlieG1sIG9yIGxpYnhzbHQ8L2xpPgorICA8bGk+dXBkYXRlZCB4bWxjYXRhbG9nIHRvIGJlIGFibGUgdG8gbW9kaWZ5IFNHTUwgc3VwZXIgY2F0YWxvZ3M8L2xpPgorPC91bD4KKworPGgzPjIuNC41OiBTZXAgMTQgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5SZW1vdmUgYSBmZXcgYW5ub3lpbmcgYnVncyBpbiAyLjQuNDwvbGk+CisgIDxsaT5mb3JjZXMgdGhlIEhUTUwgc2VyaWFsaXplciB0byBvdXRwdXQgZGVjaW1hbCBjaGFycmVmcyBzaW5jZSBzb21lCisgICAgdmVyc2lvbiBvZiBOZXRzY2FwZSBjYW4ndCBoYW5kbGUgaGV4YWRlY2ltYWwgb25lczwvbGk+Cis8L3VsPgorCis8aDM+MS44LjE2OiBTZXAgMTQgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5tYWludGVuYW5jZSByZWxlYXNlIG9mIHRoZSBvbGQgbGlieG1sMSBicmFuY2gsIGNvdXBsZSBvZiBidWcgYW5kCisgICAgcG9ydGFiaWxpdHkgZml4ZXM8L2xpPgorPC91bD4KKworPGgzPjIuNC40OiBTZXAgMTIgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5hZGRlZCAtLWNvbnZlcnQgdG8geG1sY2F0YWxvZywgYnVnIGZpeGVzIGFuZCBjbGVhbnVwcyBvZiBYTUwKKyAgQ2F0YWxvZzwvbGk+CisgIDxsaT5hIGZldyBidWcgZml4ZXMgYW5kIHNvbWUgcG9ydGFiaWxpdHkgY2hhbmdlczwvbGk+CisgIDxsaT5zb21lIGRvY3VtZW50YXRpb24gY2xlYW51cHM8L2xpPgorPC91bD4KKworPGgzPjIuNC4zOiAgQXVnIDIzIDIwMDE8L2gzPgorPHVsPgorICA8bGk+WE1MIENhdGFsb2cgc3VwcG9ydCBzZWUgdGhlIGRvYzwvbGk+CisgIDxsaT5OZXcgTmFOL0luZmluaXR5IGZsb2F0aW5nIHBvaW50IGNvZGU8L2xpPgorICA8bGk+QSBmZXcgYnVnIGZpeGVzPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMjogIEF1ZyAxNSAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPmFkZHMgeG1sTGluZU51bWJlcnNEZWZhdWx0KCkgdG8gY29udHJvbCBsaW5lIG51bWJlciBnZW5lcmF0aW9uPC9saT4KKyAgPGxpPmxvdCBvZiBidWcgZml4ZXM8L2xpPgorICA8bGk+dGhlIE1pY3Jvc29mdCBNU0MgcHJvamVjdHMgZmlsZXMgc2hvdWxkIG5vdyBiZSB1cCB0byBkYXRlPC9saT4KKyAgPGxpPmluaGVyaXRhbmNlIG9mIG5hbWVzcGFjZXMgZnJvbSBEVEQgZGVmYXVsdGVkIGF0dHJpYnV0ZXM8L2xpPgorICA8bGk+Zml4ZXMgYSBzZXJpb3VzIHBvdGVudGlhbCBzZWN1cml0eSBidWc8L2xpPgorICA8bGk+YWRkZWQgYSAtLWZvcm1hdCBvcHRpb24gdG8geG1sbGludDwvbGk+Cis8L3VsPgorCis8aDM+Mi40LjE6ICBKdWx5IDI0IDIwMDE8L2gzPgorPHVsPgorICA8bGk+cG9zc2liaWxpdHkgdG8ga2VlcCBsaW5lIG51bWJlcnMgaW4gdGhlIHRyZWU8L2xpPgorICA8bGk+c29tZSBjb21wdXRhdGlvbiBOYU4gZml4ZXM8L2xpPgorICA8bGk+ZXh0ZW5zaW9uIG9mIHRoZSBYUGF0aCBBUEk8L2xpPgorICA8bGk+Y2xlYW51cCBmb3IgYWxwaGEgYW5kIGlhNjQgdGFyZ2V0czwvbGk+CisgIDxsaT5wYXRjaCB0byBhbGxvdyBzYXZpbmcgdGhyb3VnaCBIVFRQIFBVVCBvciBQT1NUPC9saT4KKzwvdWw+CisKKzxoMz4yLjQuMDogSnVseSAxMCAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPkZpeGVkIGEgZmV3IGJ1Z3MgaW4gWFBhdGgsIHZhbGlkYXRpb24sIGFuZCB0cmVlIGhhbmRsaW5nLjwvbGk+CisgIDxsaT5GaXhlZCBYTUwgQmFzZSBpbXBsZW1lbnRhdGlvbiwgYWRkZWQgYSBjb3VwbGUgb2YgZXhhbXBsZXMgdG8gdGhlCisgICAgcmVncmVzc2lvbiB0ZXN0czwvbGk+CisgIDxsaT5BIGJpdCBvZiBjbGVhbnVwPC9saT4KKzwvdWw+CisKKzxoMz4yLjMuMTQ6IEp1bHkgNSAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPmZpeGVkIHNvbWUgZW50aXRpZXMgcHJvYmxlbXMgYW5kIHJlZHVjZSBtZW1vcnkgcmVxdWlyZW1lbnQgd2hlbgorICAgIHN1YnN0aXR1dGluZyB0aGVtPC9saT4KKyAgPGxpPmxvdHMgb2YgaW1wcm92ZW1lbnRzIGluIHRoZSBYUGF0aCBxdWVyaWVzIGludGVycHJldGVyIGNhbiBiZQorICAgIHN1YnN0YW50aWFsbHkgZmFzdGVyPC9saT4KKyAgPGxpPk1ha2VmaWxlcyBhbmQgY29uZmlndXJlIGNsZWFudXBzPC9saT4KKyAgPGxpPkZpeGVzIHRvIFhQYXRoIHZhcmlhYmxlIGV2YWwsIGFuZCBjb21wYXJlIG9uIGVtcHR5IG5vZGUgc2V0PC9saT4KKyAgPGxpPkhUTUwgdGFnIGNsb3NpbmcgYnVnIGZpeGVkPC9saT4KKyAgPGxpPkZpeGVkIGFuIFVSSSByZWZlcmVuY2UgY29tcHV0YXRpb24gcHJvYmxlbSB3aGVuIHZhbGlkYXRpbmc8L2xpPgorPC91bD4KKworPGgzPjIuMy4xMzogSnVuZSAyOCAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPjIuMy4xMiBjb25maWd1cmUuaW4gd2FzIGJyb2tlbiBhcyB3ZWxsIGFzIHRoZSBwdXNoIG1vZGUgWE1MIHBhcnNlcjwvbGk+CisgIDxsaT5hIGZldyBtb3JlIGZpeGVzIGZvciBjb21waWxhdGlvbiBvbiBXaW5kb3dzIE1TQyBieSBZb24gRGVyZWs8L2xpPgorPC91bD4KKworPGgzPjEuOC4xNDogSnVuZSAyOCAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPlpiaWduaWV3IENoeWxhIGdhdmUgYSBwYXRjaCB0byB1c2UgdGhlIG9sZCBYTUwgcGFyc2VyIGluIHB1c2ggbW9kZTwvbGk+CisgIDxsaT5TbWFsbCBNYWtlZmlsZSBmaXg8L2xpPgorPC91bD4KKworPGgzPjIuMy4xMjogSnVuZSAyNiAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPmxvdHMgb2YgY2xlYW51cDwvbGk+CisgIDxsaT5hIGNvdXBsZSBvZiB2YWxpZGF0aW9uIGZpeDwvbGk+CisgIDxsaT5maXhlZCBsaW5lIG51bWJlciBjb3VudGluZzwvbGk+CisgIDxsaT5maXhlZCBzZXJpb3VzIHByb2JsZW1zIGluIHRoZSBYSW5jbHVkZSBwcm9jZXNzaW5nPC9saT4KKyAgPGxpPmFkZGVkIHN1cHBvcnQgZm9yIFVURjggQk9NIGF0IGJlZ2lubmluZyBvZiBlbnRpdGllczwvbGk+CisgIDxsaT5maXhlZCBhIHN0cmFuZ2UgZ2NjIG9wdGltaXplciBidWdzIGluIHhwYXRoIGhhbmRsaW5nIG9mIGZsb2F0LCBnY2MtMy4wCisgICAgbWlzY29tcGlsZSB1cmkuYyAoV2lsbGlhbSksIFRob21hcyBMZWl0bmVyIHByb3ZpZGVkIGEgZml4IGZvciB0aGUKKyAgICBvcHRpbWl6ZXIgb24gVHJ1NjQ8L2xpPgorICA8bGk+aW5jb3Jwb3JhdGVkIFlvbiBEZXJlayBhbmQgSWdvciBabGF0a292aWMgIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMgZm9yCisgICAgY29tcGlsYXRpb24gb24gV2luZG93cyBNU0M8L2xpPgorICA8bGk+dXBkYXRlIG9mIGxpYnhtbC1kb2MuZWwgKEZlbGl4IE5hdHRlcik8L2xpPgorICA8bGk+Zml4ZWQgMiBidWdzIGluIFVSSSBub3JtYWxpemF0aW9uIGNvZGU8L2xpPgorPC91bD4KKworPGgzPjIuMy4xMTogSnVuZSAxNyAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPnVwZGF0ZXMgdG8gdHJpbywgTWFrZWZpbGVzIGFuZCBjb25maWd1cmUgc2hvdWxkIGZpeCBzb21lIHBvcnRhYmlsaXR5CisgICAgcHJvYmxlbXMgKGFscGhhKTwvbGk+CisgIDxsaT5maXhlZCBzb21lIEhUTUwgc2VyaWFsaXphdGlvbiBwcm9ibGVtcyAocHJlLCBzY3JpcHQsIGFuZCBibG9jay9pbmxpbmUKKyAgICBoYW5kbGluZyksIGFkZGVkIGVuY29kaW5nIGF3YXJlIEFQSXMsIGNsZWFudXAgb2YgdGhpcyBjb2RlPC9saT4KKyAgPGxpPmFkZGVkIHhtbEhhc05zUHJvcCgpPC9saT4KKyAgPGxpPmltcGxlbWVudGVkIGEgc3BlY2lmaWMgUEkgZm9yIGVuY29kaW5nIHN1cHBvcnQgaW4gdGhlIERvY0Jvb2sgU0dNTAorICAgIHBhcnNlcjwvbGk+CisgIDxsaT5zb21lIFhQYXRoIGZpeGVzICgtSW5maW5pdHksIC8gYXMgYSBmdW5jdGlvbiBwYXJhbWV0ZXIgYW5kIG5hbWVzcGFjZXMKKyAgICBub2RlIHNlbGVjdGlvbik8L2xpPgorICA8bGk+Zml4ZWQgYSBwZXJmb3JtYW5jZSBwcm9ibGVtIGFuZCBhbiBlcnJvciBpbiB0aGUgdmFsaWRhdGlvbiBjb2RlPC9saT4KKyAgPGxpPmZpeGVkIFhJbmNsdWRlIHJvdXRpbmUgdG8gaW1wbGVtZW50IHRoZSByZWN1cnNpdmUgYmVoYXZpb3VyPC9saT4KKyAgPGxpPmZpeGVkIHhtbEZyZWVOb2RlIHByb2JsZW0gd2hlbiBsaWJ4bWwgaXMgaW5jbHVkZWQgc3RhdGljYWxseSB0d2ljZTwvbGk+CisgIDxsaT5hZGRlZCAtLXZlcnNpb24gdG8geG1sbGludCBmb3IgYnVnIHJlcG9ydHM8L2xpPgorPC91bD4KKworPGgzPjIuMy4xMDogSnVuZSAxIDIwMDE8L2gzPgorPHVsPgorICA8bGk+Zml4ZWQgdGhlIFNHTUwgY2F0YWxvZyBzdXBwb3J0PC9saT4KKyAgPGxpPmEgbnVtYmVyIG9mIHJlcG9ydGVkIGJ1Z3MgZ290IGZpeGVkLCBpbiBYUGF0aCwgaWNvbnYgZGV0ZWN0aW9uLAorICAgIFhJbmNsdWRlIHByb2Nlc3Npbmc8L2xpPgorICA8bGk+WFBhdGggc3RyaW5nIGZ1bmN0aW9uIHNob3VsZCBub3cgaGFuZGxlIHVuaWNvZGUgY29ycmVjdGx5PC9saT4KKzwvdWw+CisKKzxoMz4yLjMuOTogTWF5IDE5IDIwMDE8L2gzPgorCis8cD5Mb3RzIG9mIGJ1Z2ZpeGVzLCBhbmQgYWRkZWQgYSBiYXNpYyBTR01MIGNhdGFsb2cgc3VwcG9ydDo8L3A+Cis8dWw+CisgIDxsaT5IVE1MIHB1c2ggYnVnZml4ICM1NDg5MSBhbmQgYW5vdGhlciBwYXRjaCBmcm9tIEpvbmFzIEJvcmdzdHLDtm08L2xpPgorICA8bGk+c29tZSBzZXJpb3VzIHNwZWVkIG9wdGltaXphdGlvbiBhZ2FpbjwvbGk+CisgIDxsaT5zb21lIGRvY3VtZW50YXRpb24gY2xlYW51cHM8L2xpPgorICA8bGk+dHJ5aW5nIHRvIGdldCBiZXR0ZXIgbGlua2luZyBvbiBTb2xhcmlzICgtUik8L2xpPgorICA8bGk+WFBhdGggQVBJIGNsZWFudXAgZnJvbSBUaG9tYXMgQnJveWVyPC9saT4KKyAgPGxpPlZhbGlkYXRpb24gYnVnIGZpeGVkICM1NDYzMSwgYWRkZWQgYSBwYXRjaCBmcm9tIEdhcnkgUGVubmluZ3RvbiwgZml4ZWQKKyAgICB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMoKTwvbGk+CisgIDxsaT5BZGRlZCBhbiBJTlNUQUxMIGZpbGU8L2xpPgorICA8bGk+QXR0cmlidXRlIHJlbW92YWwgYWRkZWQgdG8gQVBJOiAjNTQ0MzM8L2xpPgorICA8bGk+YWRkZWQgYSBiYXNpYyBzdXBwb3J0IGZvciBTR01MIGNhdGFsb2dzPC9saT4KKyAgPGxpPmZpeGVkIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIEFQSTwvbGk+CisgIDxsaT5idWdmaXggaW4geG1sTm9kZUdldExhbmcoKTwvbGk+CisgIDxsaT5maXhlZCBhIHNtYWxsIGNvbmZpZ3VyZSBwb3J0YWJpbGl0eSBwcm9ibGVtPC9saT4KKyAgPGxpPmZpeGVkIGFuIGludmVyc2lvbiBvZiBTWVNURU0gYW5kIFBVQkxJQyBpZGVudGlmaWVyIGluIEhUTUwgZG9jdW1lbnQ8L2xpPgorPC91bD4KKworPGgzPjEuOC4xMzogTWF5IDE0IDIwMDE8L2gzPgorPHVsPgorICA8bGk+YnVnZml4ZXMgcmVsZWFzZSBvZiB0aGUgb2xkIGxpYnhtbDEgYnJhbmNoIHVzZWQgYnkgR25vbWU8L2xpPgorPC91bD4KKworPGgzPjIuMy44OiBNYXkgMyAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPkludGVncmF0ZWQgYW4gU0dNTCBEb2NCb29rIHBhcnNlciBmb3IgdGhlIEdub21lIHByb2plY3Q8L2xpPgorICA8bGk+Rml4ZWQgYSBmZXcgdGhpbmdzIGluIHRoZSBIVE1MIHBhcnNlcjwvbGk+CisgIDxsaT5GaXhlZCBzb21lIFhQYXRoIGJ1Z3MgcmFpc2VkIGJ5IFhTTFQgdXNlLCB0cmllZCB0byBmaXggdGhlIGZsb2F0aW5nCisgICAgcG9pbnQgcG9ydGFiaWxpdHkgaXNzdWU8L2xpPgorICA8bGk+U3BlZWQgaW1wcm92ZW1lbnQgKDhNL3MgZm9yIFNBWCwgM00vcyBmb3IgRE9NLCAxLjVNL3MgZm9yCisgICAgRE9NK3ZhbGlkYXRpb24gdXNpbmcgdGhlIFhNTCBSRUMgYXMgaW5wdXQgYW5kIGEgNzAwTUh6IGNlbGVyb24pLjwvbGk+CisgIDxsaT5pbmNvcnBvcmF0ZWQgbW9yZSBXaW5kb3dzIGNsZWFudXA8L2xpPgorICA8bGk+YWRkZWQgeG1sU2F2ZUZvcm1hdEZpbGUoKTwvbGk+CisgIDxsaT5maXhlZCBwcm9ibGVtcyBpbiBjb3B5aW5nIG5vZGVzIHdpdGggZW50aXRpZXMgcmVmZXJlbmNlcyAoZ2RvbWUpPC9saT4KKyAgPGxpPnJlbW92ZWQgc29tZSB0cm91YmxlcyBzdXJyb3VuZGluZyB0aGUgbmV3IHZhbGlkYXRpb24gbW9kdWxlPC9saT4KKzwvdWw+CisKKzxoMz4yLjMuNzogQXByaWwgMjIgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5sb3RzIG9mIHNtYWxsIGJ1ZyBmaXhlcywgY29ycmVjdGVkIFhQb2ludGVyPC9saT4KKyAgPGxpPk5vbiBkZXRlcm1pbmlzdGljIGNvbnRlbnQgbW9kZWwgdmFsaWRhdGlvbiBzdXBwb3J0PC9saT4KKyAgPGxpPmFkZGVkIHhtbERvY0NvcHlOb2RlIGZvciBnZG9tZTI8L2xpPgorICA8bGk+cmV2YW1wZWQgdGhlIHdheSB0aGUgSFRNTCBwYXJzZXIgaGFuZGxlcyBlbmQgb2YgdGFnczwvbGk+CisgIDxsaT5YUGF0aDogY29ycmVjdGlvbnMgb2YgbmFtZXNwYWNlcyBzdXBwb3J0IGFuZCBudW1iZXIgZm9ybWF0dGluZzwvbGk+CisgIDxsaT5XaW5kb3dzOiBJZ29yIFpsYXRrb3ZpYyBwYXRjaGVzIGZvciBNU0MgY29tcGlsYXRpb248L2xpPgorICA8bGk+SFRNTCBvdXRwdXQgZml4ZXMgZnJvbSBQIEMgQ2hvdyBhbmQgV2lsbGlhbSBNLiBCcmFjazwvbGk+CisgIDxsaT5JbXByb3ZlZCB2YWxpZGF0aW9uIHNwZWVkIHNlbnNpYmxlIGZvciBEb2NCb29rPC9saT4KKyAgPGxpPmZpeGVkIGEgYmlnIGJ1ZyB3aXRoIElEIGRlY2xhcmVkIGluIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllczwvbGk+CisgIDxsaT5wb3J0YWJpbGl0eSBmaXhlcywgdXBkYXRlIG9mIFRyaW8gZnJvbSBCam9ybiBSZWVzZTwvbGk+Cis8L3VsPgorCis8aDM+Mi4zLjY6IEFwcmlsIDggMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5Db2RlIGNsZWFudXAgdXNpbmcgZXh0cmVtZSBnY2MgY29tcGlsZXIgd2FybmluZyBvcHRpb25zLCBmb3VuZCBhbmQKKyAgICBjbGVhcmVkIGhhbGYgYSBkb3plbiBwb3RlbnRpYWwgcHJvYmxlbTwvbGk+CisgIDxsaT50aGUgRWF6ZWwgdGVhbSBmb3VuZCBhbiBYTUwgcGFyc2VyIGJ1ZzwvbGk+CisgIDxsaT5jbGVhbmVkIHVwIHRoZSB1c2VyIG9mIHNvbWUgb2YgdGhlIHN0cmluZyBmb3JtYXR0aW5nIGZ1bmN0aW9uLiB1c2VkIHRoZQorICAgIHRyaW8gbGlicmFyeSBjb2RlIHRvIHByb3ZpZGUgdGhlIG9uZSBuZWVkZWQgd2hlbiB0aGUgcGxhdGZvcm0gaXMgbWlzc2luZworICAgIHRoZW08L2xpPgorICA8bGk+eHBhdGg6IHJlbW92ZWQgYSBtZW1vcnkgbGVhayBhbmQgZml4ZWQgdGhlIHByZWRpY2F0ZSBldmFsdWF0aW9uCisgICAgcHJvYmxlbSwgZXh0ZW5kZWQgdGhlIHRlc3RzdWl0ZSBhbmQgY2xlYW5lZCB1cCB0aGUgcmVzdWx0LiBYUG9pbnRlciBzZWVtcworICAgIGJyb2tlbiAuLi48L2xpPgorPC91bD4KKworPGgzPjIuMy41OiBNYXIgMjMgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5CaWdnZXN0IGNoYW5nZSBpcyBzZXBhcmF0ZSBwYXJzaW5nIGFuZCBldmFsdWF0aW9uIG9mIFhQYXRoIGV4cHJlc3Npb25zLAorICAgIHRoZXJlIGlzIHNvbWUgbmV3IEFQSXMgZm9yIHRoaXMgdG9vPC9saT4KKyAgPGxpPmluY2x1ZGVkIGEgbnVtYmVyIG9mIGJ1ZyBmaXhlcyhYTUwgcHVzaCBwYXJzZXIsIDUxODc2LCBub3RhdGlvbnMsCisgIDUyMjk5KTwvbGk+CisgIDxsaT5GaXhlZCBzb21lIHBvcnRhYmlsaXR5IGlzc3VlczwvbGk+Cis8L3VsPgorCis8aDM+Mi4zLjQ6IE1hciAxMCAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPkZpeGVkIGJ1Z3MgIzUxODYwIGFuZCAjNTE4NjE8L2xpPgorICA8bGk+QWRkZWQgYSBnbG9iYWwgdmFyaWFibGUgeG1sRGVmYXVsdEJ1ZmZlclNpemUgdG8gYWxsb3cgZGVmYXVsdCBidWZmZXIKKyAgICBzaXplIHRvIGJlIGFwcGxpY2F0aW9uIHR1bmFibGUuPC9saT4KKyAgPGxpPlNvbWUgY2xlYW51cCBpbiB0aGUgdmFsaWRhdGlvbiBjb2RlLCBzdGlsbCBhIGJ1ZyBsZWZ0IGFuZCB0aGlzIHBhcnQKKyAgICBzaG91bGQgcHJvYmFibHkgYmUgcmV3cml0dGVuIHRvIHN1cHBvcnQgYW1iaWd1b3VzIGNvbnRlbnQgbW9kZWwgOi1cPC9saT4KKyAgPGxpPkZpeCBhIGNvdXBsZSBvZiBzZXJpb3VzIGJ1Z3MgaW50cm9kdWNlZCBvciByYWlzZWQgYnkgY2hhbmdlcyBpbiAyLjMuMworICAgIHBhcnNlcjwvbGk+CisgIDxsaT5GaXhlZCBhbm90aGVyIGJ1ZyBpbiB4bWxOb2RlR2V0Q29udGVudCgpPC9saT4KKyAgPGxpPkJqb3JuIGZpeGVkIFhQYXRoIG5vZGUgY29sbGVjdGlvbiBhbmQgTnVtYmVyIGZvcm1hdHRpbmc8L2xpPgorICA8bGk+Rml4ZWQgYSBsb29wIHJlcG9ydGVkIGluIHRoZSBIVE1MIHBhcnNpbmc8L2xpPgorICA8bGk+Ymxhbmsgc3BhY2UgYXJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIER0ZCBjb250ZW50IG1vZGVsIHByb3ZlcyB0aGF0IHRoZXkKKyAgICBhcmUgZm9ybWF0dGluZyBzcGFjZXMsIHRoaXMgaXMgZm9yIFhNTCBjb25mb3JtYW5jZTwvbGk+Cis8L3VsPgorCis8aDM+Mi4zLjM6IE1hciAxIDIwMDE8L2gzPgorPHVsPgorICA8bGk+c21hbGwgY2hhbmdlIGluIFhQYXRoIGZvciBYU0xUPC9saT4KKyAgPGxpPmRvY3VtZW50YXRpb24gY2xlYW51cHM8L2xpPgorICA8bGk+Zml4IGluIHZhbGlkYXRpb24gYnkgR2FyeSBQZW5uaW5ndG9uPC9saT4KKyAgPGxpPnNlcmlvdXMgcGFyc2luZyBwZXJmb3JtYW5jZXMgaW1wcm92ZW1lbnRzPC9saT4KKzwvdWw+CisKKzxoMz4yLjMuMjogRmViIDI0IDIwMDE8L2gzPgorPHVsPgorICA8bGk+Y2hhc2luZyBYUGF0aCBidWdzLCBmb3VuZCBhIGJ1bmNoLCBjb21wbGV0ZWQgc29tZSBUT0RPPC9saT4KKyAgPGxpPmZpeGVkIGEgRHRkIHBhcnNpbmcgYnVnPC9saT4KKyAgPGxpPmZpeGVkIGEgYnVnIGluIHhtbE5vZGVHZXRDb250ZW50PC9saT4KKyAgPGxpPklEL0lEUkVGIHN1cHBvcnQgcGFydGx5IHJld3JpdHRlbiBieSBHYXJ5IFBlbm5pbmd0b248L2xpPgorPC91bD4KKworPGgzPjIuMy4xOiBGZWIgMTUgMjAwMTwvaDM+Cis8dWw+CisgIDxsaT5zb21lIFhQYXRoIGFuZCBIVE1MIGJ1ZyBmaXhlcyBmb3IgWFNMVDwvbGk+CisgIDxsaT5zbWFsbCBleHRlbnNpb24gb2YgdGhlIGhhc2ggdGFibGUgaW50ZXJmYWNlcyBmb3IgRE9NIGdkb21lMgorICAgIGltcGxlbWVudGF0aW9uPC9saT4KKyAgPGxpPkEgZmV3IGJ1ZyBmaXhlczwvbGk+Cis8L3VsPgorCis8aDM+Mi4zLjA6IEZlYiA4IDIwMDEgKDIuMi4xMiB3YXMgb24gMjUgSmFuIGJ1dCBJIGRpZG4ndCBrZXB0IHRyYWNrKTwvaDM+Cis8dWw+CisgIDxsaT5Mb3RzIG9mIFhQYXRoIGJ1ZyBmaXhlczwvbGk+CisgIDxsaT5BZGQgYSBtb2RlIHdpdGggRHRkIGxvb2t1cCBidXQgd2l0aG91dCB2YWxpZGF0aW9uIGVycm9yIHJlcG9ydGluZyBmb3IKKyAgICBYU0xUPC9saT4KKyAgPGxpPkFkZCBzdXBwb3J0IGZvciB0ZXh0IG5vZGUgd2l0aG91dCBlc2NhcGluZyAoWFNMVCk8L2xpPgorICA8bGk+YnVnIGZpeGVzIGZvciB4bWxDaGVja0ZpbGVuYW1lPC9saT4KKyAgPGxpPnZhbGlkYXRpb24gY29kZSBidWcgZml4ZXMgZnJvbSBHYXJ5IFBlbm5pbmd0b248L2xpPgorICA8bGk+UGF0Y2ggZnJvbSBQYXVsIEQuIFNtaXRoIGNvcnJlY3RpbmcgVVJJIHBhdGggbm9ybWFsaXphdGlvbjwvbGk+CisgIDxsaT5QYXRjaCB0byBhbGxvdyBzaW11bHRhbmVvdXMgaW5zdGFsbCBvZiBsaWJ4bWwtZGV2ZWwgYW5kCisgIGxpYnhtbDItZGV2ZWw8L2xpPgorICA8bGk+dGhlIGV4YW1wbGUgTWFrZWZpbGUgaXMgbm93IGZpeGVkPC9saT4KKyAgPGxpPmFkZGVkIEhUTUwgdG8gdGhlIFJQTSBwYWNrYWdlczwvbGk+CisgIDxsaT50cmVlIGNvcHlpbmcgYnVnZml4ZXM8L2xpPgorICA8bGk+dXBkYXRlcyB0byBXaW5kb3dzIG1ha2VmaWxlczwvbGk+CisgIDxsaT5vcHRpbWl6YXRpb24gcGF0Y2ggZnJvbSBCam9ybiBSZWVzZTwvbGk+Cis8L3VsPgorCis8aDM+Mi4yLjExOiBKYW4gNCAyMDAxPC9oMz4KKzx1bD4KKyAgPGxpPmJ1bmNoIG9mIGJ1ZyBmaXhlcyAobWVtb3J5IEkvTywgeHBhdGgsIGZ0cC9odHRwLCAuLi4pPC9saT4KKyAgPGxpPmFkZGVkIGh0bWxIYW5kbGVPbWl0dGVkRWxlbSgpPC9saT4KKyAgPGxpPkFwcGxpZWQgQmpvcm4gUmVlc2UncyBJUFY2IGZpcnN0IHBhdGNoPC9saT4KKyAgPGxpPkFwcGxpZWQgUGF1bCBELiBTbWl0aCBwYXRjaGVzIGZvciB2YWxpZGF0aW9uIG9mIFhJbmNsdWRlIHJlc3VsdHM8L2xpPgorICA8bGk+YWRkZWQgWFBvaW50ZXIgeG1sbnMoKSBuZXcgc2NoZW1lIHN1cHBvcnQ8L2xpPgorPC91bD4KKworPGgzPjIuMi4xMDogTm92IDI1IDIwMDA8L2gzPgorPHVsPgorICA8bGk+Rml4IHRoZSBXaW5kb3dzIHByb2JsZW1zIG9mIDIuMi44PC9saT4KKyAgPGxpPmludGVncmF0ZSBPcGVuVk1TIHBhdGNoZXM8L2xpPgorICA8bGk+YmV0dGVyIGhhbmRsaW5nIG9mIHNvbWUgbmFzdHkgSFRNTCBpbnB1dDwvbGk+CisgIDxsaT5JbXByb3ZlZCB0aGUgWFBvaW50ZXIgaW1wbGVtZW50YXRpb248L2xpPgorICA8bGk+aW50ZWdyYXRlIGEgbnVtYmVyIG9mIHByb3ZpZGVkIHBhdGNoZXM8L2xpPgorPC91bD4KKworPGgzPjIuMi45OiBOb3YgMjUgMjAwMDwvaDM+Cis8dWw+CisgIDxsaT5lcnJvbmVvdXMgcmVsZWFzZSA6LSg8L2xpPgorPC91bD4KKworPGgzPjIuMi44OiBOb3YgMTMgMjAwMDwvaDM+Cis8dWw+CisgIDxsaT5GaXJzdCB2ZXJzaW9uIG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hpbmNsdWRlIj5YSW5jbHVkZTwvYT4KKyAgICBzdXBwb3J0PC9saT4KKyAgPGxpPlBhdGNoIGluIGNvbmRpdGlvbmFsIHNlY3Rpb24gaGFuZGxpbmc8L2xpPgorICA8bGk+dXBkYXRlZCBNUyBjb21waWxlciBwcm9qZWN0PC9saT4KKyAgPGxpPmZpeGVkIHNvbWUgWFBhdGggcHJvYmxlbXM8L2xpPgorICA8bGk+YWRkZWQgYW4gVVJJIGVzY2FwaW5nIGZ1bmN0aW9uPC9saT4KKyAgPGxpPnNvbWUgb3RoZXIgYnVnIGZpeGVzPC9saT4KKzwvdWw+CisKKzxoMz4yLjIuNzogT2N0IDMxIDIwMDA8L2gzPgorPHVsPgorICA8bGk+YWRkZWQgbWVzc2FnZSByZWRpcmVjdGlvbjwvbGk+CisgIDxsaT5YUGF0aCBpbXByb3ZlbWVudHMgKHRoYW5rcyBUT00gISk8L2xpPgorICA8bGk+eG1sSU9QYXJzZURURCgpIGFkZGVkPC9saT4KKyAgPGxpPnZhcmlvdXMgc21hbGwgZml4ZXMgaW4gdGhlIEhUTUwsIFVSSSwgSFRUUCBhbmQgWFBvaW50ZXIgc3VwcG9ydDwvbGk+CisgIDxsaT5zb21lIGNsZWFudXAgb2YgdGhlIE1ha2VmaWxlLCBhdXRvY29uZiBhbmQgdGhlIGRpc3RyaWJ1dGlvbiBjb250ZW50PC9saT4KKzwvdWw+CisKKzxoMz4yLjIuNjogT2N0IDI1IDIwMDA6PC9oMz4KKzx1bD4KKyAgPGxpPkFkZGVkIGFuIGhhc2ggdGFibGUgbW9kdWxlLCBtaWdyYXRlZCBhIG51bWJlciBvZiBpbnRlcm5hbCBzdHJ1Y3R1cmUgdG8KKyAgICB0aG9zZTwvbGk+CisgIDxsaT5GaXhlZCBhIHBvc3RlcmlvcmkgdmFsaWRhdGlvbiBwcm9ibGVtczwvbGk+CisgIDxsaT5IVFRQIG1vZHVsZSBjbGVhbnVwczwvbGk+CisgIDxsaT5IVE1MIHBhcnNlciBpbXByb3ZlbWVudHMgKHRhZyBlcnJvcnMsIHNjcmlwdC9zdHlsZSBoYW5kbGluZywgYXR0cmlidXRlCisgICAgbm9ybWFsaXphdGlvbik8L2xpPgorICA8bGk+Y29hbGVzY2luZyBvZiBhZGphY2VudCB0ZXh0IG5vZGVzPC9saT4KKyAgPGxpPmNvdXBsZSBvZiBYUGF0aCBidWcgZml4ZXMsIGV4cG9ydGVkIHRoZSBpbnRlcm5hbCBBUEk8L2xpPgorPC91bD4KKworPGgzPjIuMi41OiBPY3QgMTUgMjAwMDo8L2gzPgorPHVsPgorICA8bGk+WFBvaW50ZXIgaW1wbGVtZW50YXRpb24gYW5kIHRlc3RzdWl0ZTwvbGk+CisgIDxsaT5Mb3Qgb2YgWFBhdGggZml4ZXMsIGFkZGVkIHZhcmlhYmxlIGFuZCBmdW5jdGlvbnMgcmVnaXN0cmF0aW9uLCBtb3JlCisgICAgdGVzdHM8L2xpPgorICA8bGk+UG9ydGFiaWxpdHkgZml4ZXMsIGxvdHMgb2YgZW5oYW5jZW1lbnRzIHRvd2FyZCBhbiBlYXN5IFdpbmRvd3MgYnVpbGQKKyAgICBhbmQgcmVsZWFzZTwvbGk+CisgIDxsaT5MYXRlIHZhbGlkYXRpb24gZml4ZXM8L2xpPgorICA8bGk+SW50ZWdyYXRlZCBhIGxvdCBvZiBjb250cmlidXRlZCBwYXRjaGVzPC9saT4KKyAgPGxpPmFkZGVkIG1lbW9yeSBtYW5hZ2VtZW50IGRvY3M8L2xpPgorICA8bGk+YSBwZXJmb3JtYW5jZSBwcm9ibGVtIHdoZW4gdXNpbmcgbGFyZ2UgYnVmZmVyIHNlZW1zIGZpeGVkPC9saT4KKzwvdWw+CisKKzxoMz4yLjIuNDogT2N0IDEgMjAwMDo8L2gzPgorPHVsPgorICA8bGk+bWFpbiBYUGF0aCBwcm9ibGVtIGZpeGVkPC9saT4KKyAgPGxpPkludGVncmF0ZWQgcG9ydGFiaWxpdHkgcGF0Y2hlcyBmb3IgV2luZG93czwvbGk+CisgIDxsaT5TZXJpb3VzIGJ1ZyBmaXhlcyBvbiB0aGUgVVJJIGFuZCBIVE1MIGNvZGU8L2xpPgorPC91bD4KKworPGgzPjIuMi4zOiBTZXAgMTcgMjAwMDwvaDM+Cis8dWw+CisgIDxsaT5idWcgZml4ZXM8L2xpPgorICA8bGk+Y2xlYW51cCBvZiBlbnRpdHkgaGFuZGxpbmcgY29kZTwvbGk+CisgIDxsaT5vdmVyYWxsIHJldmlldyBvZiBhbGwgbG9vcHMgaW4gdGhlIHBhcnNlcnMsIGFsbCBzcHJpbnRmIHVzYWdlIGhhcyBiZWVuCisgICAgY2hlY2tlZCB0b288L2xpPgorICA8bGk+RmFyIGJldHRlciBoYW5kbGluZyBvZiBsYXJnZXMgRHRkLiBWYWxpZGF0aW5nIGFnYWluc3QgRG9jQm9vayBYTUwgRHRkCisgICAgd29ya3Mgc21vb3RobHkgbm93LjwvbGk+Cis8L3VsPgorCis8aDM+MS44LjEwOiBTZXAgNiAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmJ1ZyBmaXggcmVsZWFzZSBmb3Igc29tZSBHbm9tZSBwcm9qZWN0czwvbGk+Cis8L3VsPgorCis8aDM+Mi4yLjI6IEF1Z3VzdCAxMiAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPm1vc3RseSBidWcgZml4ZXM8L2xpPgorICA8bGk+c3RhcnRlZCBhZGRpbmcgcm91dGluZXMgdG8gYWNjZXNzIHhtbCBwYXJzZXIgY29udGV4dCBvcHRpb25zPC9saT4KKzwvdWw+CisKKzxoMz4yLjIuMTogSnVseSAyMSAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmEgcHVyZWx5IGJ1ZyBmaXhlcyByZWxlYXNlPC9saT4KKyAgPGxpPmZpeGVkIGFuIGVuY29kaW5nIHN1cHBvcnQgcHJvYmxlbSB3aGVuIHBhcnNpbmcgZnJvbSBhIG1lbW9yeSBibG9jazwvbGk+CisgIDxsaT5maXhlZCBhIERPQ1RZUEUgcGFyc2luZyBwcm9ibGVtPC9saT4KKyAgPGxpPnJlbW92ZWQgYSBidWcgaW4gdGhlIGZ1bmN0aW9uIGFsbG93aW5nIHRvIG92ZXJyaWRlIHRoZSBtZW1vcnkKKyAgICBhbGxvY2F0aW9uIHJvdXRpbmVzPC9saT4KKzwvdWw+CisKKzxoMz4yLjIuMDogSnVseSAxNCAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmFwcGxpZWQgYSBsb3Qgb2YgcG9ydGFiaWxpdHkgZml4ZXM8L2xpPgorICA8bGk+YmV0dGVyIGVuY29kaW5nIHN1cHBvcnQvY2xlYW51cCBhbmQgc2F2aW5nIChjb250ZW50IGlzIG5vdyBhbHdheXMKKyAgICBlbmNvZGVkIGluIFVURi04KTwvbGk+CisgIDxsaT50aGUgSFRNTCBwYXJzZXIgbm93IGNvcnJlY3RseSBoYW5kbGVzIGVuY29kaW5nczwvbGk+CisgIDxsaT5hZGRlZCB4bWxIYXNQcm9wKCk8L2xpPgorICA8bGk+Zml4ZWQgYSBzZXJpb3VzIHByb2JsZW0gd2l0aCAmYW1wOyMzODs8L2xpPgorICA8bGk+cHJvcGFnYXRlZCB0aGUgZml4IHRvIEZUUCBjbGllbnQ8L2xpPgorICA8bGk+Y2xlYW51cCwgYnVnZml4ZXMsIGV0YyAuLi48L2xpPgorICA8bGk+QWRkZWQgYSBwYWdlIGFib3V0IDxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPmxpYnhtbCBJbnRlcm5hdGlvbmFsaXphdGlvbgorICAgIHN1cHBvcnQ8L2E+PC9saT4KKzwvdWw+CisKKzxoMz4xLjguOTogIEp1bHkgOSAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmZpeGVkIHRoZSBzcGVjIHRoZSBSUE1zIHNob3VsZCBiZSBiZXR0ZXI8L2xpPgorICA8bGk+Zml4ZWQgYSBzZXJpb3VzIGJ1ZyBpbiB0aGUgRlRQIGltcGxlbWVudGF0aW9uLCByZWxlYXNlZCAxLjguOSB0byBzb2x2ZQorICAgIHJwbWZpbmQgdXNlcnMgcHJvYmxlbTwvbGk+Cis8L3VsPgorCis8aDM+Mi4xLjE6IEp1bHkgMSAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmZpeGVzIGEgY291cGxlIG9mIGJ1Z3MgaW4gdGhlIDIuMS4wIHBhY2thZ2luZzwvbGk+CisgIDxsaT5pbXByb3ZlbWVudHMgb24gdGhlIEhUTUwgcGFyc2VyPC9saT4KKzwvdWw+CisKKzxoMz4yLjEuMCBhbmQgMS44Ljg6IEp1bmUgMjkgMjAwMDwvaDM+Cis8dWw+CisgIDxsaT4xLjguOCBpcyBtb3N0bHkgYSBjb21tb2RpdHkgcGFja2FnZSBmb3IgdXBncmFkaW5nIHRvIGxpYnhtbDIgYWNjb3JkaW5nCisgICAgdG8gPGEgaHJlZj0idXBncmFkZS5odG1sIj5uZXcgaW5zdHJ1Y3Rpb25zPC9hPi4gSXQgZml4ZXMgYSBuYXN0eSBwcm9ibGVtCisgICAgYWJvdXQgJmFtcDsjMzg7IGNoYXJyZWYgcGFyc2luZzwvbGk+CisgIDxsaT4yLjEuMCBhbHNvIGVhc2UgdGhlIHVwZ3JhZGUgZnJvbSBsaWJ4bWwgdjEgdG8gdGhlIHJlY2VudCB2ZXJzaW9uLiBpdAorICAgIGFsc28gY29udGFpbnMgbnVtZXJvdXMgZml4ZXMgYW5kIGVuaGFuY2VtZW50czoKKyAgICA8dWw+CisgICAgICA8bGk+YWRkZWQgeG1sU3RvcFBhcnNlcigpIHRvIHN0b3AgcGFyc2luZzwvbGk+CisgICAgICA8bGk+aW1wcm92ZWQgYSBsb3QgcGFyc2luZyBzcGVlZCB3aGVuIHRoZXJlIGlzIGxhcmdlIENEQVRBIGJsb2NzPC9saT4KKyAgICAgIDxsaT5pbmNsdWRlcyBYUGF0aCBwYXRjaGVzIHByb3ZpZGVkIGJ5IFBpY2RhciBUZWNobm9sb2d5PC9saT4KKyAgICAgIDxsaT50cmllZCB0byBmaXggYXMgbXVjaCBhcyBwb3NzaWJsZSBEVEQgdmFsaWRhdGlvbiBhbmQgbmFtZXNwYWNlCisgICAgICAgIHJlbGF0ZWQgcHJvYmxlbXM8L2xpPgorICAgICAgPGxpPm91dHB1dCB0byBhIGdpdmVuIGVuY29kaW5nIGhhcyBiZWVuIGFkZGVkL3Rlc3RlZDwvbGk+CisgICAgICA8bGk+bG90IG9mIHZhcmlvdXMgZml4ZXM8L2xpPgorICAgIDwvdWw+CisgIDwvbGk+Cis8L3VsPgorCis8aDM+Mi4wLjA6IEFwciAxMiAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPkZpcnN0IHB1YmxpYyByZWxlYXNlIG9mIGxpYnhtbDIuIElmIHlvdSBhcmUgdXNpbmcgbGlieG1sLCBpdCdzIGEgZ29vZAorICAgIGlkZWEgdG8gY2hlY2sgdGhlIDEueCB0byAyLnggdXBncmFkZSBpbnN0cnVjdGlvbnMuIE5PVEU6IHdoaWxlIGluaXRpYWxseQorICAgIHNjaGVkdWxlZCBmb3IgQXByIDMgdGhlIHJlbGVhc2Ugb2NjdXJyZWQgb25seSBvbiBBcHIgMTIgZHVlIHRvIG1hc3NpdmUKKyAgICB3b3JrbG9hZC48L2xpPgorICA8bGk+VGhlIGluY2x1ZGUgYXJlIG5vdyBsb2NhdGVkIHVuZGVyICRwcmVmaXgvaW5jbHVkZS9saWJ4bWwgKGluc3RlYWQgb2YKKyAgICAkcHJlZml4L2luY2x1ZGUvZ25vbWUteG1sKSwgdGhleSBhbHNvIGFyZSByZWZlcmVuY2VkIGJ5CisgICAgPHByZT4jaW5jbHVkZSAmbHQ7bGlieG1sL3h4eC5oJmd0OzwvcHJlPgorICAgIDxwPmluc3RlYWQgb2Y8L3A+CisgICAgPHByZT4jaW5jbHVkZSAieHh4LmgiPC9wcmU+CisgIDwvbGk+CisgIDxsaT5hIG5ldyBVUkkgbW9kdWxlIGZvciBwYXJzaW5nIFVSSXMgYW5kIGZvbGxvd2luZyBzdHJpY3RseSBSRkMgMjM5NjwvbGk+CisgIDxsaT50aGUgbWVtb3J5IGFsbG9jYXRpb24gcm91dGluZXMgdXNlZCBieSBsaWJ4bWwgY2FuIG5vdyBiZSBvdmVybG9hZGVkCisgICAgZHluYW1pY2FsbHkgYnkgdXNpbmcgeG1sTWVtU2V0dXAoKTwvbGk+CisgIDxsaT5UaGUgcHJldmlvdXNseSBDVlMgb25seSB0b29sIHRlc3RlciBoYXMgYmVlbiByZW5hbWVkCisgICAgPHN0cm9uZz54bWxsaW50PC9zdHJvbmc+IGFuZCBpcyBub3cgaW5zdGFsbGVkIGFzIHBhcnQgb2YgdGhlIGxpYnhtbDIKKyAgICBwYWNrYWdlPC9saT4KKyAgPGxpPlRoZSBJL08gaW50ZXJmYWNlIGhhcyBiZWVuIHJldmFtcGVkLiBUaGVyZSBpcyBub3cgd2F5cyB0byBwbHVnIGluCisgICAgc3BlY2lmaWMgSS9PIG1vZHVsZXMsIGVpdGhlciBhdCB0aGUgVVJJIHNjaGVtZSBkZXRlY3Rpb24gbGV2ZWwgdXNpbmcKKyAgICB4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzKCkgIG9yIGJ5IHBhc3NpbmcgSS9PIGZ1bmN0aW9ucyB3aGVuIGNyZWF0aW5nIGEKKyAgICBwYXJzZXIgY29udGV4dCB1c2luZyB4bWxDcmVhdGVJT1BhcnNlckN0eHQoKTwvbGk+CisgIDxsaT50aGVyZSBpcyBhIEMgcHJlcHJvY2Vzc29yIG1hY3JvIExJQlhNTF9WRVJTSU9OIHByb3ZpZGluZyB0aGUgdmVyc2lvbgorICAgIG51bWJlciBvZiB0aGUgbGlieG1sIG1vZHVsZSBpbiB1c2U8L2xpPgorICA8bGk+YSBudW1iZXIgb2Ygb3B0aW9uYWwgZmVhdHVyZXMgb2YgbGlieG1sIGNhbiBub3cgYmUgZXhjbHVkZWQgYXQKKyAgICBjb25maWd1cmUgdGltZSAoRlRQL0hUVFAvSFRNTC9YUGF0aC9EZWJ1Zyk8L2xpPgorPC91bD4KKworPGgzPjIuMC4wYmV0YTogTWFyIDE0IDIwMDA8L2gzPgorPHVsPgorICA8bGk+VGhpcyBpcyBhIGZpcnN0IEJldGEgcmVsZWFzZSBvZiBsaWJ4bWwgdmVyc2lvbiAyPC9saT4KKyAgPGxpPkl0J3MgYXZhaWxhYmxlIG9ubHkgZnJvbTxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnL2xpYnhtbDIvIj54bWxzb2Z0Lm9yZworICAgIEZUUDwvYT4sIGl0J3MgcGFja2FnZWQgYXMgbGlieG1sMi0yLjAuMGJldGEgYW5kIGF2YWlsYWJsZSBhcyB0YXIgYW5kCisgIFJQTXM8L2xpPgorICA8bGk+VGhpcyB2ZXJzaW9uIGlzIG5vdyB0aGUgaGVhZCBpbiB0aGUgR25vbWUgQ1ZTIGJhc2UsIHRoZSBvbGQgb25lIGlzCisgICAgYXZhaWxhYmxlIHVuZGVyIHRoZSB0YWcgTElCX1hNTF8xX1g8L2xpPgorICA8bGk+VGhpcyBpbmNsdWRlcyBhIHZlcnkgbGFyZ2Ugc2V0IG9mIGNoYW5nZXMuIEZyb20gYSAgcHJvZ3JhbW1hdGljIHBvaW50CisgICAgb2YgdmlldyBhcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCBoYXZlIHRvIGJlIG1vZGlmaWVkIHRvbyBtdWNoLCBjaGVjayB0aGUKKyAgICA8YSBocmVmPSJ1cGdyYWRlLmh0bWwiPnVwZ3JhZGUgcGFnZTwvYT48L2xpPgorICA8bGk+U29tZSBpbnRlcmZhY2VzIG1heSBjaGFuZ2VzIChlc3BlY2lhbGx5IGEgYml0IGFib3V0IGVuY29kaW5nKS48L2xpPgorICA8bGk+dGhlIHVwZGF0ZXMgaW5jbHVkZXM6CisgICAgPHVsPgorICAgICAgPGxpPmZpeCBJMThOIHN1cHBvcnQuIElTTy1MYXRpbi14L1VURi04L1VURi0xNiAobmVhcmx5KSBzZWVtcyBjb3JyZWN0bHkKKyAgICAgICAgaGFuZGxlZCBub3c8L2xpPgorICAgICAgPGxpPkJldHRlciBoYW5kbGluZyBvZiBlbnRpdGllcywgZXNwZWNpYWxseSB3ZWxsLWZvcm1lZG5lc3MgY2hlY2tpbmcKKyAgICAgICAgYW5kIHByb3BlciBQRXJlZiBleHRlbnNpb25zIGluIGV4dGVybmFsIHN1YnNldHM8L2xpPgorICAgICAgPGxpPkRURCBjb25kaXRpb25hbCBzZWN0aW9uczwvbGk+CisgICAgICA8bGk+VmFsaWRhdGlvbiBub3cgY29ycmVjdGx5IGhhbmRsZSBlbnRpdGllcyBjb250ZW50PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvdG9vbHMvZ2RvbWUvbWVzc2FnZXMvMDAzOS5odG1sIj5jaGFuZ2UKKyAgICAgICAgc3RydWN0dXJlcyB0byBhY2NvbW1vZGF0ZSBET008L2E+PC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+U2VyaW91cyBwcm9ncmVzcyB3ZXJlIG1hZGUgdG93YXJkIGNvbXBsaWFuY2UsIDxhCisgICAgaHJlZj0iY29uZi9yZXN1bHQuaHRtbCI+aGVyZSBhcmUgdGhlIHJlc3VsdCBvZiB0aGUgdGVzdDwvYT4gYWdhaW5zdCB0aGUKKyAgICBPQVNJUyB0ZXN0c3VpdGUgKGV4Y2VwdCB0aGUgSmFwYW5lc2UgdGVzdHMgc2luY2UgSSBkb24ndCBzdXBwb3J0IHRoYXQKKyAgICBlbmNvZGluZyB5ZXQpLiBUaGlzIFVSTCBpcyByZWJ1aWx0IGV2ZXJ5IGNvdXBsZSBvZiBob3VycyB1c2luZyB0aGUgQ1ZTCisgICAgaGVhZCB2ZXJzaW9uLjwvbGk+Cis8L3VsPgorCis8aDM+MS44Ljc6IE1hciA2IDIwMDA8L2gzPgorPHVsPgorICA8bGk+VGhpcyBpcyBhIGJ1ZyBmaXggcmVsZWFzZTo8L2xpPgorICA8bGk+SXQgaXMgcG9zc2libGUgdG8gZGlzYWJsZSB0aGUgaWdub3JhYmxlIGJsYW5rcyBoZXVyaXN0aWMgdXNlZCBieQorICAgIGxpYnhtbC0xLngsIGEgbmV3IGZ1bmN0aW9uICB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3aWxsIGFsbG93IHRoaXMuIE5vdGUKKyAgICB0aGF0IGZvciBhZGhlcmVuY2UgdG8gWE1MIHNwZWMsIHRoaXMgYmVoYXZpb3VyIHdpbGwgYmUgZGlzYWJsZWQgYnkKKyAgICBkZWZhdWx0IGluIDIueCAuIFRoZSBzYW1lIGZ1bmN0aW9uIHdpbGwgYWxsb3cgdG8ga2VlcCBjb21wYXRpYmlsaXR5IGZvcgorICAgIG9sZCBjb2RlLjwvbGk+CisgIDxsaT5CbGFua3MgaW4gJmx0O2EmZ3Q7ICAmbHQ7L2EmZ3Q7IGNvbnN0cnVjdHMgYXJlIG5vdCBpZ25vcmVkIGFueW1vcmUsCisgICAgYXZvaWRpbmcgaGV1cmlzdGljIGlzIHJlYWxseSB0aGUgUmlnaHQgV2F5IDotXDwvbGk+CisgIDxsaT5UaGUgdW5jaGVja2VkIHVzZSBvZiBzbnByaW50ZiB3aGljaCB3YXMgYnJlYWtpbmcgbGlieG1sLTEuOC42CisgICAgY29tcGlsYXRpb24gb24gc29tZSBwbGF0Zm9ybXMgaGFzIGJlZW4gZml4ZWQ8L2xpPgorICA8bGk+bmFub2Z0cC5jIG5hbm9odHRwLmM6IEZpeGVkICcjJyBhbmQgJz8nIHN0cmlwcGluZyB3aGVuIHByb2Nlc3NpbmcKKyAgVVJJczwvbGk+Cis8L3VsPgorCis8aDM+MS44LjY6IEphbiAzMSAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmFkZGVkIGEgbmFub0ZUUCB0cmFuc3BvcnQgbW9kdWxlLCBkZWJ1Z2dlZCB1bnRpbCB0aGUgbmV3IHZlcnNpb24gb2YgPGEKKyAgICBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvcnBtMmh0bWwvcnBtZmluZC5odG1sIj5ycG1maW5kPC9hPiBjYW4gdXNlCisgICAgaXQgd2l0aG91dCB0cm91YmxlczwvbGk+Cis8L3VsPgorCis8aDM+MS44LjU6IEphbiAyMSAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmFkZGluZyBBUElzIHRvIHBhcnNlIGEgd2VsbCBiYWxhbmNlZCBjaHVuayBvZiBYTUwgKHByb2R1Y3Rpb24gPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI05ULWNvbnRlbnQiPls0M10gY29udGVudDwvYT4gb2YgdGhlCisgICAgWE1MIHNwZWMpPC9saT4KKyAgPGxpPmZpeGVkIGEgaGlkZW91cyBidWcgaW4geG1sR2V0UHJvcCBwb2ludGVkIGJ5IFJ1bmUuRGp1cmh1dXNAZmFzdC5ubzwvbGk+CisgIDxsaT5Kb2R5IEdvbGRiZXJnICZsdDtqZ29sZGJlcmdAaG9tZS5jb20mZ3Q7IHByb3ZpZGVkIGFub3RoZXIgcGF0Y2ggdHJ5aW5nCisgICAgdG8gc29sdmUgdGhlIHpsaWIgY2hlY2tzIHByb2JsZW1zPC9saT4KKyAgPGxpPlRoZSBjdXJyZW50IHN0YXRlIGluIGdub21lIENWUyBiYXNlIGlzIGV4cGVjdGVkIHRvIHNoaXAgYXMgMS44LjUgd2l0aAorICAgIGdudW1lcmljIHNvb248L2xpPgorPC91bD4KKworPGgzPjEuOC40OiBKYW4gMTMgMjAwMDwvaDM+Cis8dWw+CisgIDxsaT5idWcgZml4ZXMsIHJlaW50cm9kdWNlZCB4bWxOZXdHbG9iYWxOcygpLCBmaXhlZCB4bWxOZXdOcygpPC9saT4KKyAgPGxpPmFsbCBleGl0KCkgY2FsbCBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSBsaWJ4bWw8L2xpPgorICA8bGk+Zml4ZWQgYSBwcm9ibGVtIHdpdGggSU5DTFVERV9XSU5TT0NLIG9uIFdJTjMyIHBsYXRmb3JtPC9saT4KKyAgPGxpPmFkZGVkIG5ld0RvY0ZyYWdtZW50KCk8L2xpPgorPC91bD4KKworPGgzPjEuOC4zOiBKYW4gNSAyMDAwPC9oMz4KKzx1bD4KKyAgPGxpPmEgUHVzaCBpbnRlcmZhY2UgZm9yIHRoZSBYTUwgYW5kIEhUTUwgcGFyc2VyczwvbGk+CisgIDxsaT5hIHNoZWxsLWxpa2UgaW50ZXJmYWNlIHRvIHRoZSBkb2N1bWVudCB0cmVlICh0cnkgdGVzdGVyIC0tc2hlbGwgOi0pPC9saT4KKyAgPGxpPmxvdHMgb2YgYnVnIGZpeGVzIGFuZCBpbXByb3ZlbWVudCBhZGRlZCBvdmVyIFhNYXMgaG9saWRheXM8L2xpPgorICA8bGk+Zml4ZWQgdGhlIERURCBwYXJzaW5nIGNvZGUgdG8gd29yayB3aXRoIHRoZSB4aHRtbCBEVEQ8L2xpPgorICA8bGk+YWRkZWQgeG1sUmVtb3ZlUHJvcCgpLCB4bWxSZW1vdmVJRCgpIGFuZCB4bWxSZW1vdmVSZWYoKTwvbGk+CisgIDxsaT5GaXhlZCBidWdzIGluIHhtbE5ld05zKCk8L2xpPgorICA8bGk+RXh0ZXJuYWwgZW50aXR5IGxvYWRpbmcgY29kZSBoYXMgYmVlbiByZXZhbXBlZCwgbm93IGl0IHVzZXMKKyAgICB4bWxMb2FkRXh0ZXJuYWxFbnRpdHkoKSwgc29tZSBmaXggb24gZW50aXRpZXMgcHJvY2Vzc2luZyB3ZXJlIGFkZGVkPC9saT4KKyAgPGxpPmNsZWFuZWQgdXAgV0lOMzIgaW5jbHVkZXMgb2Ygc29ja2V0IHN0dWZmPC9saT4KKzwvdWw+CisKKzxoMz4xLjguMjogRGVjIDIxIDE5OTk8L2gzPgorPHVsPgorICA8bGk+SSBnb3QgYW5vdGhlciBwcm9ibGVtIHdpdGggaW5jbHVkZXMgYW5kIEMrKywgSSBob3BlIHRoaXMgaXNzdWUgaXMgZml4ZWQKKyAgICBmb3IgZ29vZCB0aGlzIHRpbWU8L2xpPgorICA8bGk+QWRkZWQgYSBmZXcgdHJlZSBtb2RpZmljYXRpb24gZnVuY3Rpb25zOiB4bWxSZXBsYWNlTm9kZSwKKyAgICB4bWxBZGRQcmV2U2libGluZywgeG1sQWRkTmV4dFNpYmxpbmcsIHhtbE5vZGVTZXROYW1lIGFuZAorICAgIHhtbERvY1NldFJvb3RFbGVtZW50PC9saT4KKyAgPGxpPlRyaWVkIHRvIGltcHJvdmUgdGhlIEhUTUwgb3V0cHV0IHdpdGggaGVscCBmcm9tIDxhCisgICAgaHJlZj0ibWFpbHRvOmNsYWhleUB1bWljaC5lZHUiPkNocmlzIExhaGV5PC9hPjwvbGk+Cis8L3VsPgorCis8aDM+MS44LjE6IERlYyAxOCAxOTk5PC9oMz4KKzx1bD4KKyAgPGxpPnZhcmlvdXMgcGF0Y2hlcyB0byBhdm9pZCB0cm91YmxlcyB3aGVuIHVzaW5nIGxpYnhtbCB3aXRoIEMrKyBjb21waWxlcnMKKyAgICB0aGUgIm5hbWVzcGFjZSIga2V5d29yZCBhbmQgQyBlc2NhcGluZyBpbiBpbmNsdWRlIGZpbGVzPC9saT4KKyAgPGxpPmEgcHJvYmxlbSBpbiBvbmUgb2YgdGhlIGNvcmUgbWFjcm9zIElTX0NIQVIgd2FzIGNvcnJlY3RlZDwvbGk+CisgIDxsaT5maXhlZCBhIGJ1ZyBpbnRyb2R1Y2VkIGluIDEuOC4wIGJyZWFraW5nIGRlZmF1bHQgbmFtZXNwYWNlIHByb2Nlc3NpbmcsCisgICAgYW5kIG1vcmUgc3BlY2lmaWNhbGx5IHRoZSBEaWEgYXBwbGljYXRpb248L2xpPgorICA8bGk+Zml4ZWQgYSBwb3N0ZXJpb3JpIHZhbGlkYXRpb24gKHZhbGlkYXRpb24gYWZ0ZXIgcGFyc2luZywgb3IgYnkgdXNpbmcgYQorICAgIER0ZCBub3Qgc3BlY2lmaWVkIGluIHRoZSBvcmlnaW5hbCBkb2N1bWVudCk8L2xpPgorICA8bGk+Zml4ZWQgYSBidWcgaW48L2xpPgorPC91bD4KKworPGgzPjEuOC4wOiBEZWMgMTIgMTk5OTwvaDM+Cis8dWw+CisgIDxsaT5jbGVhbnVwLCBlc3BlY2lhbGx5IG1lbW9yeSB3aXNlPC9saT4KKyAgPGxpPnRoZSBwYXJzZXIgc2hvdWxkIGJlIG1vcmUgcmVsaWFibGUsIGVzcGVjaWFsbHkgdGhlIEhUTUwgb25lLCBpdCBzaG91bGQKKyAgICBub3QgY3Jhc2gsIHdoYXRldmVyIHRoZSBpbnB1dCAhPC9saT4KKyAgPGxpPkludGVncmF0ZWQgdmFyaW91cyBwYXRjaGVzLCBlc3BlY2lhbGx5IGEgc3BlZWR1cCBpbXByb3ZlbWVudCBmb3IgbGFyZ2UKKyAgICBkYXRhc2V0IGZyb20gPGEgaHJlZj0ibWFpbHRvOmNueWdhcmRAYmVsbGF0bGFudGljLm5ldCI+Q2FybCBOeWdhcmQ8L2E+LAorICAgIGNvbmZpZ3VyZSB3aXRoIC0td2l0aC1idWZmZXJzIHRvIGVuYWJsZSB0aGVtLjwvbGk+CisgIDxsaT5hdHRyaWJ1dGUgbm9ybWFsaXphdGlvbiwgb29wcyBzaG91bGQgaGF2ZSBiZWVuIGFkZGVkIGxvbmcgYWdvICE8L2xpPgorICA8bGk+YXR0cmlidXRlcyBkZWZhdWx0ZWQgZnJvbSBEVERzIHNob3VsZCBiZSBhdmFpbGFibGUsIHhtbFNldFByb3AoKSBub3cKKyAgICBkb2VzIGVudGl0aWVzIGVzY2FwaW5nIGJ5IGRlZmF1bHQuPC9saT4KKzwvdWw+CisKKzxoMz4xLjcuNDogT2N0IDI1IDE5OTk8L2gzPgorPHVsPgorICA8bGk+TG90cyBvZiBIVE1MIGltcHJvdmVtZW50PC9saT4KKyAgPGxpPkZpeGVkIHNvbWUgZXJyb3JzIHdoZW4gc2F2aW5nIGJvdGggWE1MIGFuZCBIVE1MPC9saT4KKyAgPGxpPk1vcmUgZXhhbXBsZXMsIHRoZSByZWdyZXNzaW9uIHRlc3RzIHNob3VsZCBub3cgbG9vayBjbGVhbjwvbGk+CisgIDxsaT5GaXhlZCBhIGJ1ZyB3aXRoIGNvbnRpZ3VvdXMgY2hhcnJlZjwvbGk+Cis8L3VsPgorCis8aDM+MS43LjM6IFNlcCAyOSAxOTk5PC9oMz4KKzx1bD4KKyAgPGxpPnBvcnRhYmlsaXR5IHByb2JsZW1zIGZpeGVkPC9saT4KKyAgPGxpPnNucHJpbnRmIHdhcyB1c2VkIHVuY29uZGl0aW9uYWxseSwgbGVhZGluZyB0byBsaW5rIHByb2JsZW1zIG9uIHN5c3RlbQorICAgIHdlcmUgaXQncyBub3QgYXZhaWxhYmxlLCBmaXhlZDwvbGk+Cis8L3VsPgorCis8aDM+MS43LjE6IFNlcCAyNCAxOTk5PC9oMz4KKzx1bD4KKyAgPGxpPlRoZSBiYXNpYyB0eXBlIGZvciBzdHJpbmdzIG1hbmlwdWxhdGVkIGJ5IGxpYnhtbCBoYXMgYmVlbiByZW5hbWVkIGluCisgICAgMS43LjEgZnJvbSA8c3Ryb25nPkNIQVI8L3N0cm9uZz4gdG8gPHN0cm9uZz54bWxDaGFyPC9zdHJvbmc+LiBUaGUgcmVhc29uCisgICAgaXMgdGhhdCBDSEFSIHdhcyBjb25mbGljdGluZyB3aXRoIGEgcHJlZGVmaW5lZCB0eXBlIG9uIFdpbmRvd3MuIEhvd2V2ZXIKKyAgICBvbiBub24gV0lOMzIgZW52aXJvbm1lbnQsIGNvbXBhdGliaWxpdHkgaXMgcHJvdmlkZWQgYnkgdGhlIHdheSBvZiAgYQorICAgIDxzdHJvbmc+I2RlZmluZSA8L3N0cm9uZz4uPC9saT4KKyAgPGxpPkNoYW5nZWQgYW5vdGhlciBlcnJvciA6IHRoZSB1c2Ugb2YgYSBzdHJ1Y3R1cmUgZmllbGQgY2FsbGVkIGVycm5vLCBhbmQKKyAgICBsZWFkaW5nIHRvIHRyb3VibGVzIG9uIHBsYXRmb3JtcyB3aGVyZSBpdCdzIGEgbWFjcm88L2xpPgorPC91bD4KKworPGgzPjEuNy4wOiBTZXAgMjMgMTk5OTwvaDM+Cis8dWw+CisgIDxsaT5BZGRlZCB0aGUgYWJpbGl0eSB0byBmZXRjaCByZW1vdGUgRFREIG9yIHBhcnNlZCBlbnRpdGllcywgc2VlIHRoZSA8YQorICAgIGhyZWY9Imh0bWwvbGlieG1sLW5hbm9odHRwLmh0bWwiPm5hbm9odHRwPC9hPiBtb2R1bGUuPC9saT4KKyAgPGxpPkFkZGVkIGFuIGVycm5vIHRvIHJlcG9ydCBlcnJvcnMgYnkgYW5vdGhlciBtZWFuIHRoYW4gYSBzaW1wbGUgcHJpbnRmCisgICAgbGlrZSBjYWxsYmFjazwvbGk+CisgIDxsaT5GaW5pc2hlZCBJRC9JRFJFRiBzdXBwb3J0IGFuZCBjaGVja2luZyB3aGVuIHZhbGlkYXRpb248L2xpPgorICA8bGk+U2VyaW91cyBtZW1vcnkgbGVha3MgZml4ZWQgKHRoZXJlIGlzIG5vdyBhIDxhCisgICAgaHJlZj0iaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPm1lbW9yeSB3cmFwcGVyPC9hPiBtb2R1bGUpPC9saT4KKyAgPGxpPkltcHJvdmVtZW50IG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hwYXRoIj5YUGF0aDwvYT4KKyAgICBpbXBsZW1lbnRhdGlvbjwvbGk+CisgIDxsaT5BZGRlZCBhbiBIVE1MIHBhcnNlciBmcm9udC1lbmQ8L2xpPgorPC91bD4KKworPGgyPjxhIG5hbWU9IlhNTCI+WE1MPC9hPjwvaDI+CisKKzxwPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwiPlhNTCBpcyBhIHN0YW5kYXJkPC9hPiBmb3IKK21hcmt1cC1iYXNlZCBzdHJ1Y3R1cmVkIGRvY3VtZW50cy4gSGVyZSBpcyA8YSBuYW1lPSJleGFtcGxlIj5hbiBleGFtcGxlIFhNTAorZG9jdW1lbnQ8L2E+OjwvcD4KKzxwcmU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7RVhBTVBMRSBwcm9wMT0iZ25vbWUgaXMgZ3JlYXQiIHByb3AyPSImYW1wO2FtcDsgbGludXggdG9vIiZndDsKKyAgJmx0O2hlYWQmZ3Q7CisgICAmbHQ7dGl0bGUmZ3Q7V2VsY29tZSB0byBHbm9tZSZsdDsvdGl0bGUmZ3Q7CisgICZsdDsvaGVhZCZndDsKKyAgJmx0O2NoYXB0ZXImZ3Q7CisgICAmbHQ7dGl0bGUmZ3Q7VGhlIExpbnV4IGFkdmVudHVyZSZsdDsvdGl0bGUmZ3Q7CisgICAmbHQ7cCZndDtibGEgYmxhIGJsYSAuLi4mbHQ7L3AmZ3Q7CisgICAmbHQ7aW1hZ2UgaHJlZj0ibGludXMuZ2lmIi8mZ3Q7CisgICAmbHQ7cCZndDsuLi4mbHQ7L3AmZ3Q7CisgICZsdDsvY2hhcHRlciZndDsKKyZsdDsvRVhBTVBMRSZndDs8L3ByZT4KKworPHA+VGhlIGZpcnN0IGxpbmUgc3BlY2lmaWVzIHRoYXQgaXQgaXMgYW4gWE1MIGRvY3VtZW50IGFuZCBnaXZlcyB1c2VmdWwKK2luZm9ybWF0aW9uIGFib3V0IGl0cyBlbmNvZGluZy4gIFRoZW4gdGhlIHJlc3Qgb2YgdGhlIGRvY3VtZW50IGlzIGEgdGV4dAorZm9ybWF0IHdob3NlIHN0cnVjdHVyZSBpcyBzcGVjaWZpZWQgYnkgdGFncyBiZXR3ZWVuIGJyYWNrZXRzLiA8c3Ryb25nPkVhY2gKK3RhZyBvcGVuZWQgaGFzIHRvIGJlIGNsb3NlZDwvc3Ryb25nPi4gWE1MIGlzIHBlZGFudGljIGFib3V0IHRoaXMuIEhvd2V2ZXIsIGlmCithIHRhZyBpcyBlbXB0eSAobm8gY29udGVudCksIGEgc2luZ2xlIHRhZyBjYW4gc2VydmUgYXMgYm90aCB0aGUgb3BlbmluZyBhbmQKK2Nsb3NpbmcgdGFnIGlmIGl0IGVuZHMgd2l0aCA8Y29kZT4vJmd0OzwvY29kZT4gcmF0aGVyIHRoYW4gd2l0aAorPGNvZGU+Jmd0OzwvY29kZT4uIE5vdGUgdGhhdCwgZm9yIGV4YW1wbGUsIHRoZSBpbWFnZSB0YWcgaGFzIG5vIGNvbnRlbnQgKGp1c3QKK2FuIGF0dHJpYnV0ZSkgYW5kIGlzIGNsb3NlZCBieSBlbmRpbmcgdGhlIHRhZyB3aXRoIDxjb2RlPi8mZ3Q7PC9jb2RlPi48L3A+CisKKzxwPlhNTCBjYW4gYmUgYXBwbGllZCBzdWNjZXNzZnVsbHkgdG8gYSB3aWRlIHJhbmdlIG9mIHRhc2tzLCByYW5naW5nIGZyb20KK2xvbmcgdGVybSBzdHJ1Y3R1cmVkIGRvY3VtZW50IG1haW50ZW5hbmNlICh3aGVyZSBpdCBmb2xsb3dzIHRoZSBzdGVwcyBvZgorU0dNTCkgdG8gc2ltcGxlIGRhdGEgZW5jb2RpbmcgbWVjaGFuaXNtcyBsaWtlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3JtYXR0aW5nCisoZ2xhZGUpLCBzcHJlYWRzaGVldHMgKGdudW1lcmljKSwgb3IgZXZlbiBzaG9ydGVyIGxpdmVkIGRvY3VtZW50cyBzdWNoIGFzCitXZWJEQVYgd2hlcmUgaXQgaXMgdXNlZCB0byBlbmNvZGUgcmVtb3RlIGNhbGxzIGJldHdlZW4gYSBjbGllbnQgYW5kIGEKK3NlcnZlci48L3A+CisKKzxoMj48YSBuYW1lPSJYU0xUIj5YU0xUPC9hPjwvaDI+CisKKzxwPkNoZWNrIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xUIj50aGUgc2VwYXJhdGUgbGlieHNsdCBwYWdlPC9hPjwvcD4KKworPHA+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveHNsdCI+WFNMIFRyYW5zZm9ybWF0aW9uczwvYT4sICBpcyBhCitsYW5ndWFnZSBmb3IgdHJhbnNmb3JtaW5nIFhNTCBkb2N1bWVudHMgaW50byBvdGhlciBYTUwgZG9jdW1lbnRzIChvcgorSFRNTC90ZXh0dWFsIG91dHB1dCkuPC9wPgorCis8cD5BIHNlcGFyYXRlIGxpYnJhcnkgY2FsbGVkIGxpYnhzbHQgaXMgYXZhaWxhYmxlIGltcGxlbWVudGluZyBYU0xULTEuMCBmb3IKK2xpYnhtbDIuIFRoaXMgbW9kdWxlICJsaWJ4c2x0IiB0b28gY2FuIGJlIGZvdW5kIGluIHRoZSBHbm9tZSBTVk4gYmFzZS48L3A+CisKKzxwPllvdSBjYW4gY2hlY2sgdGhlIHByb2dyZXNzZXMgb24gdGhlIGxpYnhzbHQgPGEKK2hyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xUL0NoYW5nZUxvZy5odG1sIj5DaGFuZ2Vsb2c8L2E+LjwvcD4KKworPGgyPjxhIG5hbWU9IlB5dGhvbiI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2gyPgorCis8cD5UaGVyZSBhcmUgYSBudW1iZXIgb2YgbGFuZ3VhZ2UgYmluZGluZ3MgYW5kIHdyYXBwZXJzIGF2YWlsYWJsZSBmb3IKK2xpYnhtbDIsIHRoZSBsaXN0IGJlbG93IGlzIG5vdCBleGhhdXN0aXZlLiBQbGVhc2UgY29udGFjdCB0aGUgPGEKK2hyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3htbC1iaW5kaW5ncyI+eG1sLWJpbmRpbmdzQGdub21lLm9yZzwvYT4KKyg8YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLWJpbmRpbmdzLyI+YXJjaGl2ZXM8L2E+KSBpbgorb3JkZXIgdG8gZ2V0IHVwZGF0ZXMgdG8gdGhpcyBsaXN0IG9yIHRvIGRpc2N1c3MgdGhlIHNwZWNpZmljIHRvcGljIG9mIGxpYnhtbDIKK29yIGxpYnhzbHQgd3JhcHBlcnMgb3IgYmluZGluZ3M6PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkxpYnhtbCsrPC9hPiBzZWVtcyB0aGUKKyAgICBtb3N0IHVwLXRvLWRhdGUgQysrIGJpbmRpbmdzIGZvciBsaWJ4bWwyLCBjaGVjayB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0L3JlZmVyZW5jZS9odG1sL2hpZXJhcmNoeS5odG1sIj5kb2N1bWVudGF0aW9uPC9hPgorICAgIGFuZCB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vY3ZzLnNvdXJjZWZvcmdlLm5ldC9jZ2ktYmluL3ZpZXdjdnMuY2dpL2xpYnhtbHBsdXNwbHVzL2xpYnhtbCUyYiUyYi9leGFtcGxlcy8iPmV4YW1wbGVzPC9hPi48L2xpPgorICA8bGk+VGhlcmUgaXMgYW5vdGhlciA8YSBocmVmPSJodHRwOi8vbGliZ2RvbWUtY3BwLmJlcmxpb3MuZGUvIj5DKysgd3JhcHBlcgorICAgIGJhc2VkIG9uIHRoZSBnZG9tZTIgYmluZGluZ3M8L2E+IG1haW50YWluZWQgYnkgVG9iaWFzIFBldGVycy48L2xpPgorICA8bGk+YW5kIGEgdGhpcmQgQysrIHdyYXBwZXIgYnkgUGV0ZXIgSm9uZXMgJmx0O3Bqb25lc0BwbWFkZS5vcmcmZ3Q7CisgICAgPHA+V2Vic2l0ZTogPGEKKyAgICBocmVmPSJodHRwOi8vcG1hZGUub3JnL3Bqb25lcy9zb2Z0d2FyZS94bWx3cmFwcC8iPmh0dHA6Ly9wbWFkZS5vcmcvcGpvbmVzL3NvZnR3YXJlL3htbHdyYXBwLzwvYT48L3A+CisgIDwvbGk+CisgIDxsaT5YTUw6OkxpYlhNTCA8YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsCisgICAgICBiaW5kaW5nczwvYT4gYXJlIGF2YWlsYWJsZSBvbiBDUEFOLCBhcyB3ZWxsIGFzIFhNTDo6TGliWFNMVAorICAgICAgPGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhTTFQiPlBlcmwgbGlieHNsdAorICAgICAgYmluZGluZ3M8L2E+LjwvbGk+CisgIDxsaT5JZiB5b3UncmUgaW50ZXJlc3RlZCBpbnRvIHNjcmlwdGluZyBYTUwgcHJvY2Vzc2luZywgaGF2ZSBhIGxvb2sgYXQgPGEKKyAgICBocmVmPSJodHRwOi8veHNoLnNvdXJjZWZvcmdlLm5ldC8iPlhTSDwvYT4gYW4gWE1MIGVkaXRpbmcgc2hlbGwgYmFzZWQgb24KKyAgICBMaWJ4bWwyIFBlcmwgYmluZGluZ3MuPC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzpka3VobG1hbkBjdXR0ZXIucmV4eC5jb20iPkRhdmUgS3VobG1hbjwvYT4gcHJvdmlkZXMgYW4KKyAgICBlYXJsaWVyIHZlcnNpb24gb2YgdGhlIGxpYnhtbC9saWJ4c2x0IDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5yZXh4LmNvbS9+ZGt1aGxtYW4iPndyYXBwZXJzIGZvciBQeXRob248L2E+LjwvbGk+CisgIDxsaT5Hb3BhbC5WIGFuZCBQZXRlciBNaW50ZW4gZGV2ZWxvcCA8YQorICAgIGhyZWY9Imh0dHA6Ly9zYXZhbm5haC5nbnUub3JnL3Byb2plY3RzL2xpYnhtbHNoYXJwIj5saWJ4bWwjPC9hPiwgYSBzZXQgb2YKKyAgICBDIyBsaWJ4bWwyIGJpbmRpbmdzLjwvbGk+CisgIDxsaT5QZXRyIEtvemVsa2EgcHJvdmlkZXMgPGEKKyAgICBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzIj5QYXNjYWwgdW5pdHMgdG8gZ2x1ZQorICAgIGxpYnhtbDI8L2E+IHdpdGggS3lsaXgsIERlbHBoaSBhbmQgb3RoZXIgUGFzY2FsIGNvbXBpbGVycy48L2xpPgorICA8bGk+VXdlIEZlY2huZXIgYWxzbyBwcm92aWRlcyA8YQorICAgIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvaWRvbTItcGFzLyI+aWRvbTI8L2E+LCBhIERPTTIKKyAgICBpbXBsZW1lbnRhdGlvbiBmb3IgS3lsaXgyL0Q1L0Q2IGZyb20gQm9ybGFuZC48L2xpPgorICA8bGk+VGhlcmUgaXMgPGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+YmluZGluZ3MgZm9yIFJ1Ynk8L2E+IAorICAgIGFuZCBsaWJ4bWwyIGJpbmRpbmdzIGFyZSBhbHNvIGF2YWlsYWJsZSBpbiBSdWJ5IHRocm91Z2ggdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL2xpYmdkb21lLXJ1YnkuYmVybGlvcy5kZS8iPmxpYmdkb21lLXJ1Ynk8L2E+IG1vZHVsZQorICAgIG1haW50YWluZWQgYnkgVG9iaWFzIFBldGVycy48L2xpPgorICA8bGk+U3RldmUgQmFsbCBhbmQgY29udHJpYnV0b3JzIG1haW50YWlucyA8YQorICAgIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+bGlieG1sMiBhbmQgbGlieHNsdCBiaW5kaW5ncyBmb3IKKyAgICBUY2w8L2E+LjwvbGk+CisgIDxsaT5saWJ4bWwyIGFuZCBsaWJ4c2x0IGFyZSB0aGUgZGVmYXVsdCBYTUwgbGlicmFyaWVzIGZvciBQSFA1LjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9wcm9qZWN0cy9jbGFzc3BhdGh4LyI+TGlieG1sSjwvYT4gaXMKKyAgICBhbiBlZmZvcnQgdG8gY3JlYXRlIGEgMTAwJSBKQVhQLWNvbXBhdGlibGUgSmF2YSB3cmFwcGVyIGZvciBsaWJ4bWwyIGFuZAorICAgIGxpYnhzbHQgYXMgcGFydCBvZiBHTlUgQ2xhc3NwYXRoWCBwcm9qZWN0LjwvbGk+CisgIDxsaT5QYXRyaWNrIE1jUGhlZSBwcm92aWRlcyBSZXh4IGJpbmRpbmdzIGZvZiBsaWJ4bWwyIGFuZCBsaWJ4c2x0LCBsb29rIGZvcgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuaW50ZXJsb2cuY29tL35wdGptL3NvZnR3YXJlLmh0bWwiPlJleHhYTUw8L2E+LjwvbGk+CisgIDxsaT48YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuc2F0aW1hZ2UuZnIvc29mdHdhcmUvZW4veG1sX3N1aXRlLmh0bWwiPlNhdGltYWdlPC9hPgorICAgIHByb3ZpZGVzIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5zYXRpbWFnZS5mci9zb2Z0d2FyZS9lbi9kb3dubG9hZHNfb3NheGVuLmh0bWwiPlhNTExpYgorICAgIG9zYXg8L2E+LiBUaGlzIGlzIGFuIG9zYXggZm9yIE1hYyBPUyBYIHdpdGggYSBzZXQgb2YgY29tbWFuZHMgdG8KKyAgICBpbXBsZW1lbnQgaW4gQXBwbGVTY3JpcHQgdGhlIFhNTCBET00sIFhQQVRIIGFuZCBYU0xULiBBbHNvIGluY2x1ZGVzCisgICAgY29tbWFuZHMgZm9yIFByb3BlcnR5LWxpc3RzIChBcHBsZSdzIGZhc3QgbG9va3VwIHRhYmxlIFhNTCBmb3JtYXQuKTwvbGk+CisgIDxsaT5GcmFuY2VzY28gTW9udG9yc2kgZGV2ZWxvcHBlZCA8YQorICAgIGhyZWY9Imh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3Qvc2hvd2ZpbGVzLnBocD9ncm91cF9pZD01MTMwNSZhbXA7cGFja2FnZV9pZD00NTE4MiI+d3hYbWwyPC9hPgorICAgIHdyYXBwZXJzIHRoYXQgaW50ZXJmYWNlIGxpYnhtbDIsIGFsbG93aW5nIHd4V2lkZ2V0cyBhcHBsaWNhdGlvbnMgdG8KKyAgICBsb2FkL3NhdmUvZWRpdCBYTUwgaW5zdGFuY2VzLjwvbGk+Cis8L3VsPgorCis8cD5UaGUgZGlzdHJpYnV0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIFB5dGhvbiBiaW5kaW5ncywgd2hpY2ggYXJlIGd1YXJhbnRlZWQKK3RvIGJlIG1haW50YWluZWQgYXMgcGFydCBvZiB0aGUgbGlicmFyeSBpbiB0aGUgZnV0dXJlLCB0aG91Z2ggdGhlIFB5dGhvbgoraW50ZXJmYWNlIGhhdmUgbm90IHlldCByZWFjaGVkIHRoZSBjb21wbGV0ZW5lc3Mgb2YgdGhlIEMgQVBJLjwvcD4KKworPHA+Tm90ZSB0aGF0IHNvbWUgb2YgdGhlIFB5dGhvbiBwdXJpc3QgZGlzbGlrZSB0aGUgZGVmYXVsdCBzZXQgb2YgUHl0aG9uCitiaW5kaW5ncywgcmF0aGVyIHRoYW4gY29tcGxhaW5pbmcgSSBzdWdnZXN0IHRoZXkgaGF2ZSBhIGxvb2sgYXQgPGEKK2hyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIHRoZSBtb3JlIHB5dGhvbmljIGJpbmRpbmdzIGZvciBsaWJ4bWwyCithbmQgbGlieHNsdDwvYT4gYW5kIDxhCitocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9tYWlsbWFuL2xpc3RpbmZvL2x4bWwtZGV2Ij5oZWxwIE1hcnRpam4KK0ZhYXNzZW48L2E+IGNvbXBsZXRlIHRob3NlLjwvcD4KKworPHA+PGEgaHJlZj0ibWFpbHRvOnN0ZXBoYW5lLmJpZG91bEBzb2Z0d2FyZWFnLmNvbSI+U3TDqXBoYW5lIEJpZG91bDwvYT4KK21haW50YWlucyA8YSBocmVmPSJodHRwOi8vdXNlcnMuc2t5bmV0LmJlL3NiaS9saWJ4bWwtcHl0aG9uLyI+YSBXaW5kb3dzIHBvcnQKK29mIHRoZSBQeXRob24gYmluZGluZ3M8L2E+LjwvcD4KKworPHA+Tm90ZSB0byBwZW9wbGUgaW50ZXJlc3RlZCBpbiBidWlsZGluZyBiaW5kaW5ncywgdGhlIEFQSSBpcyBmb3JtYWxpemVkIGFzCis8YSBocmVmPSJsaWJ4bWwyLWFwaS54bWwiPmFuIFhNTCBBUEkgZGVzY3JpcHRpb24gZmlsZTwvYT4gd2hpY2ggYWxsb3dzIHRvCithdXRvbWF0ZSBhIGxhcmdlIHBhcnQgb2YgdGhlIFB5dGhvbiBiaW5kaW5ncywgdGhpcyBpbmNsdWRlcyBmdW5jdGlvbgorZGVzY3JpcHRpb25zLCBlbnVtcywgc3RydWN0dXJlcywgdHlwZWRlZnMsIGV0Yy4uLiBUaGUgUHl0aG9uIHNjcmlwdCB1c2VkIHRvCitidWlsZCB0aGUgYmluZGluZ3MgaXMgcHl0aG9uL2dlbmVyYXRvci5weSBpbiB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbi48L3A+CisKKzxwPlRvIGluc3RhbGwgdGhlIFB5dGhvbiBiaW5kaW5ncyB0aGVyZSBhcmUgMiBvcHRpb25zOjwvcD4KKzx1bD4KKyAgPGxpPklmIHlvdSB1c2UgYW4gUlBNIGJhc2VkIGRpc3RyaWJ1dGlvbiwgc2ltcGx5IGluc3RhbGwgdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L3JwbTJodG1sL3NlYXJjaC5waHA/cXVlcnk9bGlieG1sMi1weXRob24iPmxpYnhtbDItcHl0aG9uCisgICAgUlBNPC9hPiAoYW5kIGlmIG5lZWRlZCB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vcnBtZmluZC5uZXQvbGludXgvcnBtMmh0bWwvc2VhcmNoLnBocD9xdWVyeT1saWJ4c2x0LXB5dGhvbiI+bGlieHNsdC1weXRob24KKyAgICBSUE08L2E+KS48L2xpPgorICA8bGk+T3RoZXJ3aXNlIHVzZSB0aGUgPGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi9weXRob24vIj5saWJ4bWwyLXB5dGhvbgorICAgIG1vZHVsZSBkaXN0cmlidXRpb248L2E+IGNvcnJlc3BvbmRpbmcgdG8geW91ciBpbnN0YWxsZWQgdmVyc2lvbiBvZgorICAgIGxpYnhtbDIgYW5kIGxpYnhzbHQuIE5vdGUgdGhhdCB0byBpbnN0YWxsIGl0IHlvdSB3aWxsIG5lZWQgYm90aCBsaWJ4bWwyCisgICAgYW5kIGxpYnhzbHQgaW5zdGFsbGVkIGFuZCBydW4gInB5dGhvbiBzZXR1cC5weSBidWlsZCBpbnN0YWxsIiBpbiB0aGUKKyAgICBtb2R1bGUgdHJlZS48L2xpPgorPC91bD4KKworPHA+VGhlIGRpc3RyaWJ1dGlvbiBpbmNsdWRlcyBhIHNldCBvZiBleGFtcGxlcyBhbmQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgdGhlCitweXRob24gYmluZGluZ3MgaW4gdGhlIDxjb2RlPnB5dGhvbi90ZXN0czwvY29kZT4gZGlyZWN0b3J5LiBIZXJlIGFyZSBzb21lCitleGNlcnB0cyBmcm9tIHRob3NlIHRlc3RzOjwvcD4KKworPGgzPnRzdC5weTo8L2gzPgorCis8cD5UaGlzIGlzIGEgYmFzaWMgdGVzdCBvZiB0aGUgZmlsZSBpbnRlcmZhY2UgYW5kIERPTSBuYXZpZ2F0aW9uOjwvcD4KKzxwcmU+aW1wb3J0IGxpYnhtbDIsIHN5cworCitkb2MgPSBsaWJ4bWwyLnBhcnNlRmlsZSgidHN0LnhtbCIpCitpZiBkb2MubmFtZSAhPSAidHN0LnhtbCI6CisgICAgcHJpbnQgImRvYy5uYW1lIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorcm9vdCA9IGRvYy5jaGlsZHJlbgoraWYgcm9vdC5uYW1lICE9ICJkb2MiOgorICAgIHByaW50ICJyb290Lm5hbWUgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCitjaGlsZCA9IHJvb3QuY2hpbGRyZW4KK2lmIGNoaWxkLm5hbWUgIT0gImZvbyI6CisgICAgcHJpbnQgImNoaWxkLm5hbWUgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCitkb2MuZnJlZURvYygpPC9wcmU+CisKKzxwPlRoZSBQeXRob24gbW9kdWxlIGlzIGNhbGxlZCBsaWJ4bWwyOyBwYXJzZUZpbGUgaXMgdGhlIGVxdWl2YWxlbnQgb2YKK3htbFBhcnNlRmlsZSAobW9zdCBvZiB0aGUgYmluZGluZ3MgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLCBhbmQgdGhlIHhtbAorcHJlZml4IGlzIHJlbW92ZWQgYW5kIHRoZSBjYXNpbmcgY29udmVudGlvbiBhcmUga2VwdCkuIEFsbCBub2RlIHNlZW4gYXQgdGhlCitiaW5kaW5nIGxldmVsIHNoYXJlIHRoZSBzYW1lIHN1YnNldCBvZiBhY2Nlc3NvcnM6PC9wPgorPHVsPgorICA8bGk+PGNvZGU+bmFtZTwvY29kZT4gOiByZXR1cm5zIHRoZSBub2RlIG5hbWU8L2xpPgorICA8bGk+PGNvZGU+dHlwZTwvY29kZT4gOiByZXR1cm5zIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIG5vZGUgdHlwZTwvbGk+CisgIDxsaT48Y29kZT5jb250ZW50PC9jb2RlPiA6IHJldHVybnMgdGhlIGNvbnRlbnQgb2YgdGhlIG5vZGUsIGl0IGlzIGJhc2VkIG9uCisgICAgeG1sTm9kZUdldENvbnRlbnQoKSBhbmQgaGVuY2UgaXMgcmVjdXJzaXZlLjwvbGk+CisgIDxsaT48Y29kZT5wYXJlbnQ8L2NvZGU+ICwgPGNvZGU+Y2hpbGRyZW48L2NvZGU+LCA8Y29kZT5sYXN0PC9jb2RlPiwKKyAgICA8Y29kZT5uZXh0PC9jb2RlPiwgPGNvZGU+cHJldjwvY29kZT4sIDxjb2RlPmRvYzwvY29kZT4sCisgICAgPGNvZGU+cHJvcGVydGllczwvY29kZT46IHBvaW50aW5nIHRvIHRoZSBhc3NvY2lhdGVkIGVsZW1lbnQgaW4gdGhlIHRyZWUsCisgICAgdGhvc2UgbWF5IHJldHVybiBOb25lIGluIGNhc2Ugbm8gc3VjaCBsaW5rIGV4aXN0cy48L2xpPgorPC91bD4KKworPHA+QWxzbyBub3RlIHRoZSBuZWVkIHRvIGV4cGxpY2l0bHkgZGVhbGxvY2F0ZSBkb2N1bWVudHMgd2l0aCBmcmVlRG9jKCkgLgorUmVmZXJlbmNlIGNvdW50aW5nIGZvciBsaWJ4bWwyIHRyZWVzIHdvdWxkIG5lZWQgcXVpdGUgYSBsb3Qgb2Ygd29yayB0bworZnVuY3Rpb24gcHJvcGVybHksIGFuZCByYXRoZXIgdGhhbiByaXNrIG1lbW9yeSBsZWFrcyBpZiBub3QgaW1wbGVtZW50ZWQKK2NvcnJlY3RseSBpdCBzb3VuZHMgc2FmZXIgdG8gaGF2ZSBhbiBleHBsaWNpdCBmdW5jdGlvbiB0byBmcmVlIGEgdHJlZS4gVGhlCit3cmFwcGVyIHB5dGhvbiBvYmplY3RzIGxpa2UgZG9jLCByb290IG9yIGNoaWxkIGFyZSB0aGVtIGF1dG9tYXRpY2FsbHkgZ2FyYmFnZQorY29sbGVjdGVkLjwvcD4KKworPGgzPnZhbGlkYXRlLnB5OjwvaDM+CisKKzxwPlRoaXMgdGVzdCBjaGVjayB0aGUgdmFsaWRhdGlvbiBpbnRlcmZhY2VzIGFuZCByZWRpcmVjdGlvbiBvZiBlcnJvcgorbWVzc2FnZXM6PC9wPgorPHByZT5pbXBvcnQgbGlieG1sMgorCisjZGVhY3RpdmF0ZSBlcnJvciBtZXNzYWdlcyBmcm9tIHRoZSB2YWxpZGF0aW9uCitkZWYgbm9lcnIoY3R4LCBzdHIpOgorICAgIHBhc3MKKworbGlieG1sMi5yZWdpc3RlckVycm9ySGFuZGxlcihub2VyciwgTm9uZSkKKworY3R4dCA9IGxpYnhtbDIuY3JlYXRlRmlsZVBhcnNlckN0eHQoImludmFsaWQueG1sIikKK2N0eHQudmFsaWRhdGUoMSkKK2N0eHQucGFyc2VEb2N1bWVudCgpCitkb2MgPSBjdHh0LmRvYygpCit2YWxpZCA9IGN0eHQuaXNWYWxpZCgpCitkb2MuZnJlZURvYygpCitpZiB2YWxpZCAhPSAwOgorICAgIHByaW50ICJ2YWxpZGl0eSBjaGVjayBmYWlsZWQiPC9wcmU+CisKKzxwPlRoZSBmaXJzdCB0aGluZyB0byBub3RpY2UgaXMgdGhlIGNhbGwgdG8gcmVnaXN0ZXJFcnJvckhhbmRsZXIoKSwgaXQKK2RlZmluZXMgYSBuZXcgZXJyb3IgaGFuZGxlciBnbG9iYWwgdG8gdGhlIGxpYnJhcnkuIEl0IGlzIHVzZWQgdG8gYXZvaWQgc2VlaW5nCit0aGUgZXJyb3IgbWVzc2FnZXMgd2hlbiB0cnlpbmcgdG8gdmFsaWRhdGUgdGhlIGludmFsaWQgZG9jdW1lbnQuPC9wPgorCis8cD5UaGUgbWFpbiBpbnRlcmVzdCBvZiB0aGF0IHRlc3QgaXMgdGhlIGNyZWF0aW9uIG9mIGEgcGFyc2VyIGNvbnRleHQgd2l0aAorY3JlYXRlRmlsZVBhcnNlckN0eHQoKSBhbmQgaG93IHRoZSBiZWhhdmlvdXIgY2FuIGJlIGNoYW5nZWQgYmVmb3JlIGNhbGxpbmcKK3BhcnNlRG9jdW1lbnQoKSAuIFNpbWlsYXJseSB0aGUgaW5mb3JtYXRpb24gcmVzdWx0aW5nIGZyb20gdGhlIHBhcnNpbmcgcGhhc2UKK2lzIGFsc28gYXZhaWxhYmxlIHVzaW5nIGNvbnRleHQgbWV0aG9kcy48L3A+CisKKzxwPkNvbnRleHRzIGxpa2Ugbm9kZXMgYXJlIGRlZmluZWQgYXMgY2xhc3MgYW5kIHRoZSBsaWJ4bWwyIHdyYXBwZXJzIG1hcHMgdGhlCitDIGZ1bmN0aW9uIGludGVyZmFjZXMgaW4gdGVybXMgb2Ygb2JqZWN0cyBtZXRob2QgYXMgbXVjaCBhcyBwb3NzaWJsZS4gVGhlCitiZXN0IHRvIGdldCBhIGNvbXBsZXRlIHZpZXcgb2Ygd2hhdCBtZXRob2RzIGFyZSBzdXBwb3J0ZWQgaXMgdG8gbG9vayBhdCB0aGUKK2xpYnhtbDIucHkgbW9kdWxlIGNvbnRhaW5pbmcgYWxsIHRoZSB3cmFwcGVycy48L3A+CisKKzxoMz5wdXNoLnB5OjwvaDM+CisKKzxwPlRoaXMgdGVzdCBzaG93IGhvdyB0byBhY3RpdmF0ZSB0aGUgcHVzaCBwYXJzZXIgaW50ZXJmYWNlOjwvcD4KKzxwcmU+aW1wb3J0IGxpYnhtbDIKKworY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihOb25lLCAiJmx0O2ZvbyIsIDQsICJ0ZXN0LnhtbCIpCitjdHh0LnBhcnNlQ2h1bmsoIi8mZ3Q7IiwgMiwgMSkKK2RvYyA9IGN0eHQuZG9jKCkKKworZG9jLmZyZWVEb2MoKTwvcHJlPgorCis8cD5UaGUgY29udGV4dCBpcyBjcmVhdGVkIHdpdGggYSBzcGVjaWFsIGNhbGwgYmFzZWQgb24gdGhlCit4bWxDcmVhdGVQdXNoUGFyc2VyKCkgZnJvbSB0aGUgQyBsaWJyYXJ5LiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgYW4gb3B0aW9uYWwKK1NBWCBjYWxsYmFjayBvYmplY3QsIHRoZW4gdGhlIGluaXRpYWwgc2V0IG9mIGRhdGEsIHRoZSBsZW5ndGggYW5kIHRoZSBuYW1lIG9mCit0aGUgcmVzb3VyY2UgaW4gY2FzZSBVUkktUmVmZXJlbmNlcyBuZWVkIHRvIGJlIGNvbXB1dGVkIGJ5IHRoZSBwYXJzZXIuPC9wPgorCis8cD5UaGVuIHRoZSBkYXRhIGFyZSBwdXNoZWQgdXNpbmcgdGhlIHBhcnNlQ2h1bmsoKSBtZXRob2QsIHRoZSBsYXN0IGNhbGwKK3NldHRpbmcgdGhlIHRoaXJkIGFyZ3VtZW50IHRlcm1pbmF0ZSB0byAxLjwvcD4KKworPGgzPnB1c2hTQVgucHk6PC9oMz4KKworPHA+dGhpcyB0ZXN0IHNob3cgdGhlIHVzZSBvZiB0aGUgZXZlbnQgYmFzZWQgcGFyc2luZyBpbnRlcmZhY2VzLiBJbiB0aGlzIGNhc2UKK3RoZSBwYXJzZXIgZG9lcyBub3QgYnVpbGQgYSBkb2N1bWVudCwgYnV0IHByb3ZpZGVzIGNhbGxiYWNrIGluZm9ybWF0aW9uIGFzCit0aGUgcGFyc2VyIG1ha2VzIHByb2dyZXNzZXMgYW5hbHl6aW5nIHRoZSBkYXRhIGJlaW5nIHByb3ZpZGVkOjwvcD4KKzxwcmU+aW1wb3J0IGxpYnhtbDIKK2xvZyA9ICIiCisKK2NsYXNzIGNhbGxiYWNrOgorICAgIGRlZiBzdGFydERvY3VtZW50KHNlbGYpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJzdGFydERvY3VtZW50OiIKKworICAgIGRlZiBlbmREb2N1bWVudChzZWxmKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZW5kRG9jdW1lbnQ6IgorCisgICAgZGVmIHN0YXJ0RWxlbWVudChzZWxmLCB0YWcsIGF0dHJzKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAic3RhcnRFbGVtZW50ICVzICVzOiIgJSAodGFnLCBhdHRycykKKworICAgIGRlZiBlbmRFbGVtZW50KHNlbGYsIHRhZyk6CisgICAgICAgIGdsb2JhbCBsb2cKKyAgICAgICAgbG9nID0gbG9nICsgImVuZEVsZW1lbnQgJXM6IiAlICh0YWcpCisKKyAgICBkZWYgY2hhcmFjdGVycyhzZWxmLCBkYXRhKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiY2hhcmFjdGVyczogJXM6IiAlIChkYXRhKQorCisgICAgZGVmIHdhcm5pbmcoc2VsZiwgbXNnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAid2FybmluZzogJXM6IiAlIChtc2cpCisKKyAgICBkZWYgZXJyb3Ioc2VsZiwgbXNnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZXJyb3I6ICVzOiIgJSAobXNnKQorCisgICAgZGVmIGZhdGFsRXJyb3Ioc2VsZiwgbXNnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZmF0YWxFcnJvcjogJXM6IiAlIChtc2cpCisKK2hhbmRsZXIgPSBjYWxsYmFjaygpCisKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZVB1c2hQYXJzZXIoaGFuZGxlciwgIiZsdDtmb28iLCA0LCAidGVzdC54bWwiKQorY2h1bmsgPSAiIHVybD0ndHN0JyZndDtiIgorY3R4dC5wYXJzZUNodW5rKGNodW5rLCBsZW4oY2h1bmspLCAwKQorY2h1bmsgPSAiYXImbHQ7L2ZvbyZndDsiCitjdHh0LnBhcnNlQ2h1bmsoY2h1bmssIGxlbihjaHVuayksIDEpCisKK3JlZmVyZW5jZSA9ICJzdGFydERvY3VtZW50OnN0YXJ0RWxlbWVudCBmb28geyd1cmwnOiAndHN0J306IiArIFwgCisgICAgICAgICAgICAiY2hhcmFjdGVyczogYmFyOmVuZEVsZW1lbnQgZm9vOmVuZERvY3VtZW50OiIKK2lmIGxvZyAhPSByZWZlcmVuY2U6CisgICAgcHJpbnQgIkVycm9yIGdvdDogJXMiICUgbG9nCisgICAgcHJpbnQgIkV4cGVjdGVkOiAlcyIgJSByZWZlcmVuY2U8L3ByZT4KKworPHA+VGhlIGtleSBvYmplY3QgaW4gdGhhdCB0ZXN0IGlzIHRoZSBoYW5kbGVyLCBpdCBwcm92aWRlcyBhIG51bWJlciBvZiBlbnRyeQorcG9pbnRzIHdoaWNoIGNhbiBiZSBjYWxsZWQgYnkgdGhlIHBhcnNlciBhcyBpdCBtYWtlcyBwcm9ncmVzc2VzIHRvIGluZGljYXRlCit0aGUgaW5mb3JtYXRpb24gc2V0IG9idGFpbmVkLiBUaGUgZnVsbCBzZXQgb2YgY2FsbGJhY2sgaXMgbGFyZ2VyIHRoYW4gd2hhdAordGhlIGNhbGxiYWNrIGNsYXNzIGluIHRoYXQgc3BlY2lmaWMgZXhhbXBsZSBpbXBsZW1lbnRzIChzZWUgdGhlIFNBWAorZGVmaW5pdGlvbiBmb3IgYSBjb21wbGV0ZSBsaXN0KS4gVGhlIHdyYXBwZXIgd2lsbCBvbmx5IGNhbGwgdGhvc2Ugc3VwcGxpZWQgYnkKK3RoZSBvYmplY3Qgd2hlbiBhY3RpdmF0ZWQuIFRoZSBzdGFydEVsZW1lbnQgcmVjZWl2ZXMgdGhlIG5hbWVzIG9mIHRoZSBlbGVtZW50CithbmQgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIGF0dHJpYnV0ZXMgY2FycmllZCBieSB0aGlzIGVsZW1lbnQuPC9wPgorCis8cD5BbHNvIG5vdGUgdGhhdCB0aGUgcmVmZXJlbmNlIHN0cmluZyBnZW5lcmF0ZWQgZnJvbSB0aGUgY2FsbGJhY2sgc2hvd3MgYQorc2luZ2xlIGNoYXJhY3RlciBjYWxsIGV2ZW4gdGhvdWdoIHRoZSBzdHJpbmcgImJhciIgaXMgcGFzc2VkIHRvIHRoZSBwYXJzZXIKK2Zyb20gMiBkaWZmZXJlbnQgY2FsbCB0byBwYXJzZUNodW5rKCk8L3A+CisKKzxoMz54cGF0aC5weTo8L2gzPgorCis8cD5UaGlzIGlzIGEgYmFzaWMgdGVzdCBvZiBYUGF0aCB3cmFwcGVycyBzdXBwb3J0PC9wPgorPHByZT5pbXBvcnQgbGlieG1sMgorCitkb2MgPSBsaWJ4bWwyLnBhcnNlRmlsZSgidHN0LnhtbCIpCitjdHh0ID0gZG9jLnhwYXRoTmV3Q29udGV4dCgpCityZXMgPSBjdHh0LnhwYXRoRXZhbCgiLy8qIikKK2lmIGxlbihyZXMpICE9IDI6CisgICAgcHJpbnQgInhwYXRoIHF1ZXJ5OiB3cm9uZyBub2RlIHNldCBzaXplIgorICAgIHN5cy5leGl0KDEpCitpZiByZXNbMF0ubmFtZSAhPSAiZG9jIiBvciByZXNbMV0ubmFtZSAhPSAiZm9vIjoKKyAgICBwcmludCAieHBhdGggcXVlcnk6IHdyb25nIG5vZGUgc2V0IHZhbHVlIgorICAgIHN5cy5leGl0KDEpCitkb2MuZnJlZURvYygpCitjdHh0LnhwYXRoRnJlZUNvbnRleHQoKTwvcHJlPgorCis8cD5UaGlzIHRlc3QgcGFyc2VzIGEgZmlsZSwgdGhlbiBjcmVhdGUgYW4gWFBhdGggY29udGV4dCB0byBldmFsdWF0ZSBYUGF0aAorZXhwcmVzc2lvbiBvbiBpdC4gVGhlIHhwYXRoRXZhbCgpIG1ldGhvZCBleGVjdXRlIGFuIFhQYXRoIHF1ZXJ5IGFuZCByZXR1cm5zCit0aGUgcmVzdWx0IG1hcHBlZCBpbiBhIFB5dGhvbiB3YXkuIFN0cmluZyBhbmQgbnVtYmVycyBhcmUgbmF0aXZlbHkgY29udmVydGVkLAorYW5kIG5vZGUgc2V0cyBhcmUgcmV0dXJuZWQgYXMgYSB0dXBsZSBvZiBsaWJ4bWwyIFB5dGhvbiBub2RlcyB3cmFwcGVycy4gTGlrZQordGhlIGRvY3VtZW50LCB0aGUgWFBhdGggY29udGV4dCBuZWVkIHRvIGJlIGZyZWVkIGV4cGxpY2l0bHksIGFsc28gbm90IHRoYXQKK3RoZSByZXN1bHQgb2YgdGhlIFhQYXRoIHF1ZXJ5IG1heSBwb2ludCBiYWNrIHRvIHRoZSBkb2N1bWVudCB0cmVlIGFuZCBoZW5jZQordGhlIGRvY3VtZW50IG11c3QgYmUgZnJlZWQgYWZ0ZXIgdGhlIHJlc3VsdCBvZiB0aGUgcXVlcnkgaXMgdXNlZC48L3A+CisKKzxoMz54cGF0aGV4dC5weTo8L2gzPgorCis8cD5UaGlzIHRlc3Qgc2hvd3MgaG93IHRvIGV4dGVuZCB0aGUgWFBhdGggZW5naW5lIHdpdGggZnVuY3Rpb25zIHdyaXR0ZW4gaW4KK3B5dGhvbjo8L3A+Cis8cHJlPmltcG9ydCBsaWJ4bWwyCisKK2RlZiBmb28oY3R4LCB4KToKKyAgICByZXR1cm4geCArIDEKKworZG9jID0gbGlieG1sMi5wYXJzZUZpbGUoInRzdC54bWwiKQorY3R4dCA9IGRvYy54cGF0aE5ld0NvbnRleHQoKQorbGlieG1sMi5yZWdpc3RlclhQYXRoRnVuY3Rpb24oY3R4dC5fbywgImZvbyIsIE5vbmUsIGZvbykKK3JlcyA9IGN0eHQueHBhdGhFdmFsKCJmb28oMSkiKQoraWYgcmVzICE9IDI6CisgICAgcHJpbnQgInhwYXRoIGV4dGVuc2lvbiBmYWlsdXJlIgorZG9jLmZyZWVEb2MoKQorY3R4dC54cGF0aEZyZWVDb250ZXh0KCk8L3ByZT4KKworPHA+Tm90ZSBob3cgdGhlIGV4dGVuc2lvbiBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIHdpdGggdGhlIGNvbnRleHQgKGJ1dCB0aGF0CitwYXJ0IGlzIG5vdCB5ZXQgZmluYWxpemVkLCB0aGlzIG1heSBjaGFuZ2Ugc2xpZ2h0bHkgaW4gdGhlIGZ1dHVyZSkuPC9wPgorCis8aDM+dHN0eHBhdGgucHk6PC9oMz4KKworPHA+VGhpcyB0ZXN0IGlzIHNpbWlsYXIgdG8gdGhlIHByZXZpb3VzIG9uZSBidXQgc2hvd3MgaG93IHRoZSBleHRlbnNpb24KK2Z1bmN0aW9uIGNhbiBhY2Nlc3MgdGhlIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dDo8L3A+Cis8cHJlPmRlZiBmb28oY3R4LCB4KToKKyAgICBnbG9iYWwgY2FsbGVkCisKKyAgICAjCisgICAgIyB0ZXN0IHRoYXQgYWNjZXNzIHRvIHRoZSBYUGF0aCBldmFsdWF0aW9uIGNvbnRleHRzCisgICAgIworICAgIHBjdHh0ID0gbGlieG1sMi54cGF0aFBhcnNlckNvbnRleHQoX29iaj1jdHgpCisgICAgY3R4dCA9IHBjdHh0LmNvbnRleHQoKQorICAgIGNhbGxlZCA9IGN0eHQuZnVuY3Rpb24oKQorICAgIHJldHVybiB4ICsgMTwvcHJlPgorCis8cD5BbGwgdGhlIGludGVyZmFjZXMgYXJvdW5kIHRoZSBYUGF0aCBwYXJzZXIob3IgcmF0aGVyIGV2YWx1YXRpb24pIGNvbnRleHQKK2FyZSBub3QgZmluYWxpemVkLCBidXQgaXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gZG8gY29udGV4dHVhbCB3b3JrIGF0IHRoZQorZXZhbHVhdGlvbiBwb2ludC48L3A+CisKKzxoMz5NZW1vcnkgZGVidWdnaW5nOjwvaDM+CisKKzxwPmxhc3QgYnV0IG5vdCBsZWFzdCwgYWxsIHRlc3RzIHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvbG9ndWU6PC9wPgorPHByZT4jbWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpPC9wcmU+CisKKzxwPmFuZCBlbmRzIHdpdGggdGhlIGZvbGxvd2luZyBlcGlsb2d1ZTo8L3A+Cis8cHJlPiNtZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCk8L3ByZT4KKworPHA+VGhvc2UgYWN0aXZhdGUgdGhlIG1lbW9yeSBkZWJ1Z2dpbmcgaW50ZXJmYWNlIG9mIGxpYnhtbDIgd2hlcmUgYWxsCithbGxvY2F0ZWQgYmxvY2sgaW4gdGhlIGxpYnJhcnkgYXJlIHRyYWNrZWQuIFRoZSBwcm9sb2d1ZSB0aGVuIGNsZWFucyB1cCB0aGUKK2xpYnJhcnkgc3RhdGUgYW5kIGNoZWNrcyB0aGF0IGFsbCBhbGxvY2F0ZWQgbWVtb3J5IGhhcyBiZWVuIGZyZWVkLiBJZiBub3QgaXQKK2NhbGxzIGR1bXBNZW1vcnkoKSB3aGljaCBzYXZlcyB0aGF0IGxpc3QgaW4gYSA8Y29kZT4ubWVtZHVtcDwvY29kZT4gZmlsZS48L3A+CisKKzxoMj48YSBuYW1lPSJhcmNoaXRlY3R1cmUiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvaDI+CisKKzxwPkxpYnhtbDIgaXMgbWFkZSBvZiBtdWx0aXBsZSBjb21wb25lbnRzOyBzb21lIG9mIHRoZW0gYXJlIG9wdGlvbmFsLCBhbmQKK21vc3Qgb2YgdGhlIGJsb2NrIGludGVyZmFjZXMgYXJlIHB1YmxpYy4gVGhlIG1haW4gY29tcG9uZW50cyBhcmU6PC9wPgorPHVsPgorICA8bGk+YW4gSW5wdXQvT3V0cHV0IGxheWVyPC9saT4KKyAgPGxpPkZUUCBhbmQgSFRUUCBjbGllbnQgbGF5ZXJzIChvcHRpb25hbCk8L2xpPgorICA8bGk+YW4gSW50ZXJuYXRpb25hbGl6YXRpb24gbGF5ZXIgbWFuYWdpbmcgdGhlIGVuY29kaW5ncyBzdXBwb3J0PC9saT4KKyAgPGxpPmEgVVJJIG1vZHVsZTwvbGk+CisgIDxsaT50aGUgWE1MIHBhcnNlciBhbmQgaXRzIGJhc2ljIFNBWCBpbnRlcmZhY2U8L2xpPgorICA8bGk+YW4gSFRNTCBwYXJzZXIgdXNpbmcgdGhlIHNhbWUgU0FYIGludGVyZmFjZSAob3B0aW9uYWwpPC9saT4KKyAgPGxpPmEgU0FYIHRyZWUgbW9kdWxlIHRvIGJ1aWxkIGFuIGluLW1lbW9yeSBET00gcmVwcmVzZW50YXRpb248L2xpPgorICA8bGk+YSB0cmVlIG1vZHVsZSB0byBtYW5pcHVsYXRlIHRoZSBET00gcmVwcmVzZW50YXRpb248L2xpPgorICA8bGk+YSB2YWxpZGF0aW9uIG1vZHVsZSB1c2luZyB0aGUgRE9NIHJlcHJlc2VudGF0aW9uIChvcHRpb25hbCk8L2xpPgorICA8bGk+YW4gWFBhdGggbW9kdWxlIGZvciBnbG9iYWwgbG9va3VwIGluIGEgRE9NIHJlcHJlc2VudGF0aW9uCisgIChvcHRpb25hbCk8L2xpPgorICA8bGk+YSBkZWJ1ZyBtb2R1bGUgKG9wdGlvbmFsKTwvbGk+Cis8L3VsPgorCis8cD5HcmFwaGljYWxseSB0aGlzIGdpdmVzIHRoZSBmb2xsb3dpbmc6PC9wPgorCis8cD48aW1nIHNyYz0ibGlieG1sLmdpZiIgYWx0PSJhIGdyYXBoaWNhbCB2aWV3IG9mIHRoZSB2YXJpb3VzIj48L3A+CisKKzxwPjwvcD4KKworPGgyPjxhIG5hbWU9InRyZWUiPlRoZSB0cmVlIG91dHB1dDwvYT48L2gyPgorCis8cD5UaGUgcGFyc2VyIHJldHVybnMgYSB0cmVlIGJ1aWx0IGR1cmluZyB0aGUgZG9jdW1lbnQgYW5hbHlzaXMuIFRoZSB2YWx1ZQorcmV0dXJuZWQgaXMgYW4gPHN0cm9uZz54bWxEb2NQdHI8L3N0cm9uZz4gKGkuZS4sIGEgcG9pbnRlciB0byBhbgorPHN0cm9uZz54bWxEb2M8L3N0cm9uZz4gc3RydWN0dXJlKS4gVGhpcyBzdHJ1Y3R1cmUgY29udGFpbnMgaW5mb3JtYXRpb24gc3VjaAorYXMgdGhlIGZpbGUgbmFtZSwgdGhlIGRvY3VtZW50IHR5cGUsIGFuZCBhIDxzdHJvbmc+Y2hpbGRyZW48L3N0cm9uZz4gcG9pbnRlcgord2hpY2ggaXMgdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50IChvciBtb3JlIGV4YWN0bHkgdGhlIGZpcnN0IGNoaWxkIHVuZGVyIHRoZQorcm9vdCB3aGljaCBpcyB0aGUgZG9jdW1lbnQpLiBUaGUgdHJlZSBpcyBtYWRlIG9mIDxzdHJvbmc+eG1sTm9kZTwvc3Ryb25nPnMsCitjaGFpbmVkIGluIGRvdWJsZS1saW5rZWQgbGlzdHMgb2Ygc2libGluZ3MgYW5kIHdpdGggYSBjaGlsZHJlbiZsdDstJmd0O3BhcmVudAorcmVsYXRpb25zaGlwLiBBbiB4bWxOb2RlIGNhbiBhbHNvIGNhcnJ5IHByb3BlcnRpZXMgKGEgY2hhaW4gb2YgeG1sQXR0cgorc3RydWN0dXJlcykuIEFuIGF0dHJpYnV0ZSBtYXkgaGF2ZSBhIHZhbHVlIHdoaWNoIGlzIGEgbGlzdCBvZiBURVhUIG9yCitFTlRJVFlfUkVGIG5vZGVzLjwvcD4KKworPHA+SGVyZSBpcyBhbiBleGFtcGxlIChlcnJvbmVvdXMgd2l0aCByZXNwZWN0IHRvIHRoZSBYTUwgc3BlYyBzaW5jZSB0aGVyZQorc2hvdWxkIGJlIG9ubHkgb25lIEVMRU1FTlQgdW5kZXIgdGhlIHJvb3QpOjwvcD4KKworPHA+PGltZyBzcmM9InN0cnVjdHVyZS5naWYiIGFsdD0iIHN0cnVjdHVyZS5naWYgIj48L3A+CisKKzxwPkluIHRoZSBzb3VyY2UgcGFja2FnZSB0aGVyZSBpcyBhIHNtYWxsIHByb2dyYW0gKG5vdCBpbnN0YWxsZWQgYnkgZGVmYXVsdCkKK2NhbGxlZCA8c3Ryb25nPnhtbGxpbnQ8L3N0cm9uZz4gd2hpY2ggcGFyc2VzIFhNTCBmaWxlcyBnaXZlbiBhcyBhcmd1bWVudCBhbmQKK3ByaW50cyB0aGVtIGJhY2sgYXMgcGFyc2VkLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGVycm9ycyBib3RoIGluIFhNTAorY29kZSBhbmQgaW4gdGhlIFhNTCBwYXJzZXIgaXRzZWxmLiBJdCBoYXMgYW4gb3B0aW9uIDxzdHJvbmc+LS1kZWJ1Zzwvc3Ryb25nPgord2hpY2ggcHJpbnRzIHRoZSBhY3R1YWwgaW4tbWVtb3J5IHN0cnVjdHVyZSBvZiB0aGUgZG9jdW1lbnQ7IGhlcmUgaXMgdGhlCityZXN1bHQgd2l0aCB0aGUgPGEgaHJlZj0iI2V4YW1wbGUiPmV4YW1wbGU8L2E+IGdpdmVuIGJlZm9yZTo8L3A+Cis8cHJlPkRPQ1VNRU5UCit2ZXJzaW9uPTEuMAorc3RhbmRhbG9uZT10cnVlCisgIEVMRU1FTlQgRVhBTVBMRQorICAgIEFUVFJJQlVURSBwcm9wMQorICAgICAgVEVYVAorICAgICAgY29udGVudD1nbm9tZSBpcyBncmVhdAorICAgIEFUVFJJQlVURSBwcm9wMgorICAgICAgRU5USVRZX1JFRgorICAgICAgVEVYVAorICAgICAgY29udGVudD0gbGludXggdG9vIAorICAgIEVMRU1FTlQgaGVhZAorICAgICAgRUxFTUVOVCB0aXRsZQorICAgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9V2VsY29tZSB0byBHbm9tZQorICAgIEVMRU1FTlQgY2hhcHRlcgorICAgICAgRUxFTUVOVCB0aXRsZQorICAgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9VGhlIExpbnV4IGFkdmVudHVyZQorICAgICAgRUxFTUVOVCBwCisgICAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1ibGEgYmxhIGJsYSAuLi4KKyAgICAgIEVMRU1FTlQgaW1hZ2UKKyAgICAgICAgQVRUUklCVVRFIGhyZWYKKyAgICAgICAgICBURVhUCisgICAgICAgICAgY29udGVudD1saW51cy5naWYKKyAgICAgIEVMRU1FTlQgcAorICAgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Li4uPC9wcmU+CisKKzxwPlRoaXMgc2hvdWxkIGJlIHVzZWZ1bCBmb3IgbGVhcm5pbmcgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG1vZGVsLjwvcD4KKworPGgyPjxhIG5hbWU9ImludGVyZmFjZSI+VGhlIFNBWCBpbnRlcmZhY2U8L2E+PC9oMj4KKworPHA+U29tZXRpbWVzIHRoZSBET00gdHJlZSBvdXRwdXQgaXMganVzdCB0b28gbGFyZ2UgdG8gZml0IHJlYXNvbmFibHkgaW50bworbWVtb3J5LiBJbiB0aGF0IGNhc2UgKGFuZCBpZiB5b3UgZG9uJ3QgZXhwZWN0IHRvIHNhdmUgYmFjayB0aGUgWE1MIGRvY3VtZW50Citsb2FkZWQgdXNpbmcgbGlieG1sKSwgaXQncyBiZXR0ZXIgdG8gdXNlIHRoZSBTQVggaW50ZXJmYWNlIG9mIGxpYnhtbC4gU0FYIGlzCithIDxzdHJvbmc+Y2FsbGJhY2stYmFzZWQgaW50ZXJmYWNlPC9zdHJvbmc+IHRvIHRoZSBwYXJzZXIuIEJlZm9yZSBwYXJzaW5nLAordGhlIGFwcGxpY2F0aW9uIGxheWVyIHJlZ2lzdGVycyBhIGN1c3RvbWl6ZWQgc2V0IG9mIGNhbGxiYWNrcyB3aGljaCBhcmUKK2NhbGxlZCBieSB0aGUgbGlicmFyeSBhcyBpdCBwcm9ncmVzc2VzIHRocm91Z2ggdGhlIFhNTCBpbnB1dC48L3A+CisKKzxwPlRvIGdldCBtb3JlIGRldGFpbGVkIHN0ZXAtYnktc3RlcCBndWlkYW5jZSBvbiB1c2luZyB0aGUgU0FYIGludGVyZmFjZSBvZgorbGlieG1sLCBzZWUgdGhlIDxhCitocmVmPSJodHRwOi8vd3d3LmRhYS5jb20uYXUvfmphbWVzL2dub21lL3htbC1zYXgveG1sLXNheC5odG1sIj5uaWNlCitkb2N1bWVudGF0aW9uPC9hPi53cml0dGVuIGJ5IDxhIGhyZWY9Im1haWx0bzpqYW1lc0BkYWEuY29tLmF1Ij5KYW1lcworSGVuc3RyaWRnZTwvYT4uPC9wPgorCis8cD5Zb3UgY2FuIGRlYnVnIHRoZSBTQVggYmVoYXZpb3VyIGJ5IHVzaW5nIHRoZSA8c3Ryb25nPnRlc3RTQVg8L3N0cm9uZz4KK3Byb2dyYW0gbG9jYXRlZCBpbiB0aGUgZ25vbWUteG1sIG1vZHVsZSAoaXQncyB1c3VhbGx5IG5vdCBzaGlwcGVkIGluIHRoZQorYmluYXJ5IHBhY2thZ2VzIG9mIGxpYnhtbCwgYnV0IHlvdSBjYW4gZmluZCBpdCBpbiB0aGUgdGFyIHNvdXJjZQorZGlzdHJpYnV0aW9uKS4gSGVyZSBpcyB0aGUgc2VxdWVuY2Ugb2YgY2FsbGJhY2tzIHRoYXQgd291bGQgYmUgcmVwb3J0ZWQgYnkKK3Rlc3RTQVggd2hlbiBwYXJzaW5nIHRoZSBleGFtcGxlIFhNTCBkb2N1bWVudCBzaG93biBlYXJsaWVyOjwvcD4KKzxwcmU+U0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguZ2V0RW50aXR5KGFtcCkKK1NBWC5zdGFydEVsZW1lbnQoRVhBTVBMRSwgcHJvcDE9J2dub21lIGlzIGdyZWF0JywgcHJvcDI9JyZhbXA7YW1wOyBsaW51eCB0b28nKQorU0FYLmNoYXJhY3RlcnMoICAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmNoYXJhY3RlcnMoICAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhXZWxjb21lIHRvIEdub21lLCAxNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoICAgLCAzKQorU0FYLmVuZEVsZW1lbnQoaGVhZCkKK1NBWC5jaGFyYWN0ZXJzKCAgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoY2hhcHRlcikKK1NBWC5jaGFyYWN0ZXJzKCAgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoVGhlIExpbnV4IGFkdmVudHVyZSwgMTkpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKCAgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhibGEgYmxhIGJsYSAuLi4sIDE1KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCAgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KGltYWdlLCBocmVmPSdsaW51cy5naWYnKQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyggICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoLi4uLCAzKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCAgICwgMykKK1NBWC5lbmRFbGVtZW50KGNoYXB0ZXIpCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLmVuZEVsZW1lbnQoRVhBTVBMRSkKK1NBWC5lbmREb2N1bWVudCgpPC9wcmU+CisKKzxwPk1vc3Qgb2YgdGhlIG90aGVyIGludGVyZmFjZXMgb2YgbGlieG1sMiBhcmUgYmFzZWQgb24gdGhlIERPTSB0cmVlLWJ1aWxkaW5nCitmYWNpbGl0eSwgc28gbmVhcmx5IGV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGVuZCBvZiB0aGlzIGRvY3VtZW50IHByZXN1cHBvc2VzIHRoZQordXNlIG9mIHRoZSBzdGFuZGFyZCBET00gdHJlZSBidWlsZC4gTm90ZSB0aGF0IHRoZSBET00gdHJlZSBpdHNlbGYgaXMgYnVpbHQgYnkKK2Egc2V0IG9mIHJlZ2lzdGVyZWQgZGVmYXVsdCBjYWxsYmFja3MsIHdpdGhvdXQgaW50ZXJuYWwgc3BlY2lmaWMKK2ludGVyZmFjZS48L3A+CisKKzxoMj48YSBuYW1lPSJWYWxpZGF0aW9uIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9oMj4KKworPHA+VGFibGUgb2YgQ29udGVudDo8L3A+Cis8b2w+CisgIDxsaT48YSBocmVmPSIjR2VuZXJhbDUiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNkZWZpbml0aW9uIj5UaGUgZGVmaW5pdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1NpbXBsZSI+U2ltcGxlIHJ1bGVzPC9hPgorICAgIDxvbD4KKyAgICAgIDxsaT48YSBocmVmPSIjcmVmZXJlbmNlIj5Ib3cgdG8gcmVmZXJlbmNlIGEgRFREIGZyb20gYSBkb2N1bWVudDwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9IiNEZWNsYXJpbmciPkRlY2xhcmluZyBlbGVtZW50czwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9IiNEZWNsYXJpbmcxIj5EZWNsYXJpbmcgYXR0cmlidXRlczwvYT48L2xpPgorICAgIDwvb2w+CisgIDwvbGk+CisgIDxsaT48YSBocmVmPSIjU29tZSI+U29tZSBleGFtcGxlczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI3ZhbGlkYXRlIj5Ib3cgdG8gdmFsaWRhdGU8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNPdGhlciI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iR2VuZXJhbDUiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9oMz4KKworPHA+V2VsbCB3aGF0IGlzIHZhbGlkYXRpb24gYW5kIHdoYXQgaXMgYSBEVEQgPzwvcD4KKworPHA+RFREIGlzIHRoZSBhY3JvbnltIGZvciBEb2N1bWVudCBUeXBlIERlZmluaXRpb24uIFRoaXMgaXMgYSBkZXNjcmlwdGlvbiBvZgordGhlIGNvbnRlbnQgZm9yIGEgZmFtaWx5IG9mIFhNTCBmaWxlcy4gVGhpcyBpcyBwYXJ0IG9mIHRoZSBYTUwgMS4wCitzcGVjaWZpY2F0aW9uLCBhbmQgYWxsb3dzIG9uZSB0byBkZXNjcmliZSBhbmQgdmVyaWZ5IHRoYXQgYSBnaXZlbiBkb2N1bWVudAoraW5zdGFuY2UgY29uZm9ybXMgdG8gdGhlIHNldCBvZiBydWxlcyBkZXRhaWxpbmcgaXRzIHN0cnVjdHVyZSBhbmQgY29udGVudC48L3A+CisKKzxwPlZhbGlkYXRpb24gaXMgdGhlIHByb2Nlc3Mgb2YgY2hlY2tpbmcgYSBkb2N1bWVudCBhZ2FpbnN0IGEgRFREIChtb3JlCitnZW5lcmFsbHkgYWdhaW5zdCBhIHNldCBvZiBjb25zdHJ1Y3Rpb24gcnVsZXMpLjwvcD4KKworPHA+VGhlIHZhbGlkYXRpb24gcHJvY2VzcyBhbmQgYnVpbGRpbmcgRFREcyBhcmUgdGhlIHR3byBtb3N0IGRpZmZpY3VsdCBwYXJ0cworb2YgdGhlIFhNTCBsaWZlIGN5Y2xlLiBCcmllZmx5IGEgRFREIGRlZmluZXMgYWxsIHRoZSBwb3NzaWJsZSBlbGVtZW50cyB0byBiZQorZm91bmQgd2l0aGluIHlvdXIgZG9jdW1lbnQsIHdoYXQgaXMgdGhlIGZvcm1hbCBzaGFwZSBvZiB5b3VyIGRvY3VtZW50IHRyZWUKKyhieSBkZWZpbmluZyB0aGUgYWxsb3dlZCBjb250ZW50IG9mIGFuIGVsZW1lbnQ7IGVpdGhlciB0ZXh0LCBhIHJlZ3VsYXIKK2V4cHJlc3Npb24gZm9yIHRoZSBhbGxvd2VkIGxpc3Qgb2YgY2hpbGRyZW4sIG9yIG1peGVkIGNvbnRlbnQgaS5lLiBib3RoIHRleHQKK2FuZCBjaGlsZHJlbikuIFRoZSBEVEQgYWxzbyBkZWZpbmVzIHRoZSB2YWxpZCBhdHRyaWJ1dGVzIGZvciBhbGwgZWxlbWVudHMgYW5kCit0aGUgdHlwZXMgb2YgdGhvc2UgYXR0cmlidXRlcy48L3A+CisKKzxoMz48YSBuYW1lPSJkZWZpbml0aW9uMSI+VGhlIGRlZmluaXRpb248L2E+PC9oMz4KKworPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwiPlczQyBYTUwgUmVjb21tZW5kYXRpb248L2E+ICg8YQoraHJlZj0iaHR0cDovL3d3dy54bWwuY29tL2F4bWwvYXhtbC5odG1sIj5UaW0gQnJheSdzIGFubm90YXRlZCB2ZXJzaW9uIG9mCitSZXYxPC9hPik6PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNlbGVtZGVjbHMiPkRlY2xhcmluZworICBlbGVtZW50czwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNhdHRkZWNscyI+RGVjbGFyaW5nCisgIGF0dHJpYnV0ZXM8L2E+PC9saT4KKzwvdWw+CisKKzxwPih1bmZvcnR1bmF0ZWx5KSBhbGwgdGhpcyBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgU0dNTCB3b3JsZCwgdGhlIHN5bnRheCBpcworYW5jaWVudC4uLjwvcD4KKworPGgzPjxhIG5hbWU9IlNpbXBsZTEiPlNpbXBsZSBydWxlczwvYT48L2gzPgorCis8cD5Xcml0aW5nIERURHMgY2FuIGJlIGRvbmUgaW4gbWFueSB3YXlzLiBUaGUgcnVsZXMgdG8gYnVpbGQgdGhlbSBpZiB5b3UgbmVlZAorc29tZXRoaW5nIHBlcm1hbmVudCBvciBzb21ldGhpbmcgd2hpY2ggY2FuIGV2b2x2ZSBvdmVyIHRpbWUgY2FuIGJlIHJhZGljYWxseQorZGlmZmVyZW50LiBSZWFsbHkgY29tcGxleCBEVERzIGxpa2UgRG9jQm9vayBvbmVzIGFyZSBmbGV4aWJsZSBidXQgcXVpdGUKK2hhcmRlciB0byBkZXNpZ24uIEkgd2lsbCBqdXN0IGZvY3VzIG9uIERURHMgZm9yIGEgZm9ybWF0cyB3aXRoIGEgZml4ZWQgc2ltcGxlCitzdHJ1Y3R1cmUuIEl0IGlzIGp1c3QgYSBzZXQgb2YgYmFzaWMgcnVsZXMsIGFuZCBkZWZpbml0ZWx5IG5vdCBleGhhdXN0aXZlIG5vcgordXNhYmxlIGZvciBjb21wbGV4IERURCBkZXNpZ24uPC9wPgorCis8aDQ+PGEgbmFtZT0icmVmZXJlbmNlMSI+SG93IHRvIHJlZmVyZW5jZSBhIERURCBmcm9tIGEgZG9jdW1lbnQ8L2E+OjwvaDQ+CisKKzxwPkFzc3VtaW5nIHRoZSB0b3AgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgaXMgPGNvZGU+c3BlYzwvY29kZT4gYW5kIHRoZSBkdGQKK2lzIHBsYWNlZCBpbiB0aGUgZmlsZSA8Y29kZT5teWR0ZDwvY29kZT4gaW4gdGhlIHN1YmRpcmVjdG9yeQorPGNvZGU+ZHRkczwvY29kZT4gb2YgdGhlIGRpcmVjdG9yeSBmcm9tIHdoZXJlIHRoZSBkb2N1bWVudCB3ZXJlIGxvYWRlZDo8L3A+CisKKzxwPjxjb2RlPiZsdDshRE9DVFlQRSBzcGVjIFNZU1RFTSAiZHRkcy9teWR0ZCImZ3Q7PC9jb2RlPjwvcD4KKworPHA+Tm90ZXM6PC9wPgorPHVsPgorICA8bGk+VGhlIHN5c3RlbSBzdHJpbmcgaXMgYWN0dWFsbHkgYW4gVVJJLVJlZmVyZW5jZSAoYXMgZGVmaW5lZCBpbiA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIzOTYudHh0Ij5SRkMgMjM5NjwvYT4pIHNvIHlvdSBjYW4gdXNlIGEKKyAgICBmdWxsIFVSTCBzdHJpbmcgaW5kaWNhdGluZyB0aGUgbG9jYXRpb24gb2YgeW91ciBEVEQgb24gdGhlIFdlYi4gVGhpcyBpcyBhCisgICAgcmVhbGx5IGdvb2QgdGhpbmcgdG8gZG8gaWYgeW91IHdhbnQgb3RoZXJzIHRvIHZhbGlkYXRlIHlvdXIgZG9jdW1lbnQuPC9saT4KKyAgPGxpPkl0IGlzIGFsc28gcG9zc2libGUgdG8gYXNzb2NpYXRlIGEgPGNvZGU+UFVCTElDPC9jb2RlPiBpZGVudGlmaWVyIChhCisgICAgbWFnaWMgc3RyaW5nKSBzbyB0aGF0IHRoZSBEVEQgaXMgbG9va2VkIHVwIGluIGNhdGFsb2dzIG9uIHRoZSBjbGllbnQgc2lkZQorICAgIHdpdGhvdXQgaGF2aW5nIHRvIGxvY2F0ZSBpdCBvbiB0aGUgd2ViLjwvbGk+CisgIDxsaT5BIERURCBjb250YWlucyBhIHNldCBvZiBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgZGVjbGFyYXRpb25zLCBidXQgdGhleQorICAgIGRvbid0IGRlZmluZSB3aGF0IHRoZSByb290IG9mIHRoZSBkb2N1bWVudCBzaG91bGQgYmUuIFRoaXMgaXMgZXhwbGljaXRseQorICAgIHRvbGQgdG8gdGhlIHBhcnNlci92YWxpZGF0b3IgYXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlCisgICAgPGNvZGU+RE9DVFlQRTwvY29kZT4gZGVjbGFyYXRpb24uPC9saT4KKzwvdWw+CisKKzxoND48YSBuYW1lPSJEZWNsYXJpbmcyIj5EZWNsYXJpbmcgZWxlbWVudHM8L2E+OjwvaDQ+CisKKzxwPlRoZSBmb2xsb3dpbmcgZGVjbGFyZXMgYW4gZWxlbWVudCA8Y29kZT5zcGVjPC9jb2RlPjo8L3A+CisKKzxwPjxjb2RlPiZsdDshRUxFTUVOVCBzcGVjIChmcm9udCwgYm9keSwgYmFjaz8pJmd0OzwvY29kZT48L3A+CisKKzxwPkl0IGFsc28gZXhwcmVzc2VzIHRoYXQgdGhlIHNwZWMgZWxlbWVudCBjb250YWlucyBvbmUgPGNvZGU+ZnJvbnQ8L2NvZGU+LAorb25lIDxjb2RlPmJvZHk8L2NvZGU+IGFuZCBvbmUgb3B0aW9uYWwgPGNvZGU+YmFjazwvY29kZT4gY2hpbGRyZW4gZWxlbWVudHMgaW4KK3RoaXMgb3JkZXIuIFRoZSBkZWNsYXJhdGlvbiBvZiBvbmUgZWxlbWVudCBvZiB0aGUgc3RydWN0dXJlIGFuZCBpdHMgY29udGVudAorYXJlIGRvbmUgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uIFNpbWlsYXJseSB0aGUgZm9sbG93aW5nIGRlY2xhcmVzCis8Y29kZT5kaXYxPC9jb2RlPiBlbGVtZW50czo8L3A+CisKKzxwPjxjb2RlPiZsdDshRUxFTUVOVCBkaXYxIChoZWFkLCAocCB8IGxpc3QgfCBub3RlKSosIGRpdjI/KSZndDs8L2NvZGU+PC9wPgorCis8cD53aGljaCBtZWFucyBkaXYxIGNvbnRhaW5zIG9uZSA8Y29kZT5oZWFkPC9jb2RlPiB0aGVuIGEgc2VyaWVzIG9mIG9wdGlvbmFsCis8Y29kZT5wPC9jb2RlPiwgPGNvZGU+bGlzdDwvY29kZT5zIGFuZCA8Y29kZT5ub3RlPC9jb2RlPnMgYW5kIHRoZW4gYW4KK29wdGlvbmFsIDxjb2RlPmRpdjI8L2NvZGU+LiBBbmQgbGFzdCBidXQgbm90IGxlYXN0IGFuIGVsZW1lbnQgY2FuIGNvbnRhaW4KK3RleHQ6PC9wPgorCis8cD48Y29kZT4mbHQ7IUVMRU1FTlQgYiAoI1BDREFUQSkmZ3Q7PC9jb2RlPjwvcD4KKworPHA+PGNvZGU+YjwvY29kZT4gY29udGFpbnMgdGV4dCBvciBiZWluZyBvZiBtaXhlZCBjb250ZW50ICh0ZXh0IGFuZCBlbGVtZW50cworaW4gbm8gcGFydGljdWxhciBvcmRlcik6PC9wPgorCis8cD48Y29kZT4mbHQ7IUVMRU1FTlQgcCAoI1BDREFUQXxhfHVsfGJ8aXxlbSkqJmd0OzwvY29kZT48L3A+CisKKzxwPjxjb2RlPnAgPC9jb2RlPmNhbiBjb250YWluIHRleHQgb3IgPGNvZGU+YTwvY29kZT4sIDxjb2RlPnVsPC9jb2RlPiwKKzxjb2RlPmI8L2NvZGU+LCA8Y29kZT5pIDwvY29kZT5vciA8Y29kZT5lbTwvY29kZT4gZWxlbWVudHMgaW4gbm8gcGFydGljdWxhcgorb3JkZXIuPC9wPgorCis8aDQ+PGEgbmFtZT0iRGVjbGFyaW5nMSI+RGVjbGFyaW5nIGF0dHJpYnV0ZXM8L2E+OjwvaDQ+CisKKzxwPkFnYWluIHRoZSBhdHRyaWJ1dGVzIGRlY2xhcmF0aW9uIGluY2x1ZGVzIHRoZWlyIGNvbnRlbnQgZGVmaW5pdGlvbjo8L3A+CisKKzxwPjxjb2RlPiZsdDshQVRUTElTVCB0ZXJtZGVmIG5hbWUgQ0RBVEEgI0lNUExJRUQmZ3Q7PC9jb2RlPjwvcD4KKworPHA+bWVhbnMgdGhhdCB0aGUgZWxlbWVudCA8Y29kZT50ZXJtZGVmPC9jb2RlPiBjYW4gaGF2ZSBhIDxjb2RlPm5hbWU8L2NvZGU+CithdHRyaWJ1dGUgY29udGFpbmluZyB0ZXh0ICg8Y29kZT5DREFUQTwvY29kZT4pIGFuZCB3aGljaCBpcyBvcHRpb25hbAorKDxjb2RlPiNJTVBMSUVEPC9jb2RlPikuIFRoZSBhdHRyaWJ1dGUgdmFsdWUgY2FuIGFsc28gYmUgZGVmaW5lZCB3aXRoaW4gYQorc2V0OjwvcD4KKworPHA+PGNvZGU+Jmx0OyFBVFRMSVNUIGxpc3QgdHlwZSAoYnVsbGV0c3xvcmRlcmVkfGdsb3NzYXJ5KQorIm9yZGVyZWQiJmd0OzwvY29kZT48L3A+CisKKzxwPm1lYW5zIDxjb2RlPmxpc3Q8L2NvZGU+IGVsZW1lbnQgaGF2ZSBhIDxjb2RlPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZSB3aXRoIDMKK2FsbG93ZWQgdmFsdWVzICJidWxsZXRzIiwgIm9yZGVyZWQiIG9yICJnbG9zc2FyeSIgYW5kIHdoaWNoIGRlZmF1bHQgdG8KKyJvcmRlcmVkIiBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBleHBsaWNpdGx5IHNwZWNpZmllZC48L3A+CisKKzxwPlRoZSBjb250ZW50IHR5cGUgb2YgYW4gYXR0cmlidXRlIGNhbiBiZSB0ZXh0ICg8Y29kZT5DREFUQTwvY29kZT4pLAorYW5jaG9yL3JlZmVyZW5jZS9yZWZlcmVuY2VzCisoPGNvZGU+SUQ8L2NvZGU+Lzxjb2RlPklEUkVGPC9jb2RlPi88Y29kZT5JRFJFRlM8L2NvZGU+KSwgZW50aXR5KGllcykKKyg8Y29kZT5FTlRJVFk8L2NvZGU+Lzxjb2RlPkVOVElUSUVTPC9jb2RlPikgb3IgbmFtZShzKQorKDxjb2RlPk5NVE9LRU48L2NvZGU+Lzxjb2RlPk5NVE9LRU5TPC9jb2RlPikuIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyB0aGF0IGEKKzxjb2RlPmNoYXB0ZXI8L2NvZGU+IGVsZW1lbnQgY2FuIGhhdmUgYW4gb3B0aW9uYWwgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZQorb2YgdHlwZSA8Y29kZT5JRDwvY29kZT4sIHVzYWJsZSBmb3IgcmVmZXJlbmNlIGZyb20gYXR0cmlidXRlIG9mIHR5cGUKK0lEUkVGOjwvcD4KKworPHA+PGNvZGU+Jmx0OyFBVFRMSVNUIGNoYXB0ZXIgaWQgSUQgI0lNUExJRUQmZ3Q7PC9jb2RlPjwvcD4KKworPHA+VGhlIGxhc3QgdmFsdWUgb2YgYW4gYXR0cmlidXRlIGRlZmluaXRpb24gY2FuIGJlIDxjb2RlPiNSRVFVSVJFRAorPC9jb2RlPm1lYW5pbmcgdGhhdCB0aGUgYXR0cmlidXRlIGhhcyB0byBiZSBnaXZlbiwgPGNvZGU+I0lNUExJRUQ8L2NvZGU+CittZWFuaW5nIHRoYXQgaXQgaXMgb3B0aW9uYWwsIG9yIHRoZSBkZWZhdWx0IHZhbHVlIChwb3NzaWJseSBwcmVmaXhlZCBieQorPGNvZGU+I0ZJWEVEPC9jb2RlPiBpZiBpdCBpcyB0aGUgb25seSBhbGxvd2VkKS48L3A+CisKKzxwPk5vdGVzOjwvcD4KKzx1bD4KKyAgPGxpPlVzdWFsbHkgdGhlIGF0dHJpYnV0ZXMgcGVydGFpbmluZyB0byBhIGdpdmVuIGVsZW1lbnQgYXJlIGRlY2xhcmVkIGluIGEKKyAgICBzaW5nbGUgZXhwcmVzc2lvbiwgYnV0IGl0IGlzIGp1c3QgYSBjb252ZW50aW9uIGFkb3B0ZWQgYnkgYSBsb3Qgb2YgRFRECisgICAgd3JpdGVyczoKKyAgICA8cHJlPiZsdDshQVRUTElTVCB0ZXJtZGVmCisgICAgICAgICAgaWQgICAgICBJRCAgICAgICNSRVFVSVJFRAorICAgICAgICAgIG5hbWUgICAgQ0RBVEEgICAjSU1QTElFRCZndDs8L3ByZT4KKyAgICA8cD5UaGUgcHJldmlvdXMgY29uc3RydWN0IGRlZmluZXMgYm90aCA8Y29kZT5pZDwvY29kZT4gYW5kCisgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlcyBmb3IgdGhlIGVsZW1lbnQgPGNvZGU+dGVybWRlZjwvY29kZT4uPC9wPgorICA8L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9IlNvbWUxIj5Tb21lIGV4YW1wbGVzPC9hPjwvaDM+CisKKzxwPlRoZSBkaXJlY3RvcnkgPGNvZGU+dGVzdC92YWxpZC9kdGRzLzwvY29kZT4gaW4gdGhlIGxpYnhtbDIgZGlzdHJpYnV0aW9uCitjb250YWlucyBzb21lIGNvbXBsZXggRFREIGV4YW1wbGVzLiBUaGUgZXhhbXBsZSBpbiB0aGUgZmlsZQorPGNvZGU+dGVzdC92YWxpZC9kaWEueG1sPC9jb2RlPiBzaG93cyBhbiBYTUwgZmlsZSB3aGVyZSB0aGUgc2ltcGxlIERURCBpcworZGlyZWN0bHkgaW5jbHVkZWQgd2l0aGluIHRoZSBkb2N1bWVudC48L3A+CisKKzxoMz48YSBuYW1lPSJ2YWxpZGF0ZTEiPkhvdyB0byB2YWxpZGF0ZTwvYT48L2gzPgorCis8cD5UaGUgc2ltcGxlc3Qgd2F5IGlzIHRvIHVzZSB0aGUgeG1sbGludCBwcm9ncmFtIGluY2x1ZGVkIHdpdGggbGlieG1sLiBUaGUKKzxjb2RlPi0tdmFsaWQ8L2NvZGU+IG9wdGlvbiB0dXJucy1vbiB2YWxpZGF0aW9uIG9mIHRoZSBmaWxlcyBnaXZlbiBhcyBpbnB1dC4KK0ZvciBleGFtcGxlIHRoZSBmb2xsb3dpbmcgdmFsaWRhdGVzIGEgY29weSBvZiB0aGUgZmlyc3QgcmV2aXNpb24gb2YgdGhlIFhNTAorMS4wIHNwZWNpZmljYXRpb246PC9wPgorCis8cD48Y29kZT54bWxsaW50IC0tdmFsaWQgLS1ub291dCB0ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sPC9jb2RlPjwvcD4KKworPHA+dGhlIC0tIG5vb3V0IGlzIHVzZWQgdG8gZGlzYWJsZSBvdXRwdXQgb2YgdGhlIHJlc3VsdGluZyB0cmVlLjwvcD4KKworPHA+VGhlIDxjb2RlPi0tZHRkdmFsaWQgZHRkPC9jb2RlPiBhbGxvd3MgdmFsaWRhdGlvbiBvZiB0aGUgZG9jdW1lbnQocykKK2FnYWluc3QgYSBnaXZlbiBEVEQuPC9wPgorCis8cD5MaWJ4bWwyIGV4cG9ydHMgYW4gQVBJIHRvIGhhbmRsZSBEVERzIGFuZCB2YWxpZGF0aW9uLCBjaGVjayB0aGUgPGEKK2hyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC12YWxpZC5odG1sIj5hc3NvY2lhdGVkCitkZXNjcmlwdGlvbjwvYT4uPC9wPgorCis8aDM+PGEgbmFtZT0iT3RoZXIxIj5PdGhlciByZXNvdXJjZXM8L2E+PC9oMz4KKworPHA+RFREcyBhcmUgYXMgb2xkIGFzIFNHTUwuIFNvIHRoZXJlIG1heSBiZSBhIG51bWJlciBvZiBleGFtcGxlcyBvbi1saW5lLCBJCit3aWxsIGp1c3QgbGlzdCBvbmUgZm9yIG5vdywgb3RoZXJzIHBvaW50ZXJzIHdlbGNvbWU6PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy54bWwxMDEuY29tOjgwODEvZHRkLyI+WE1MLTEwMSBEVEQ8L2E+PC9saT4KKzwvdWw+CisKKzxwPkkgc3VnZ2VzdCBsb29raW5nIGF0IHRoZSBleGFtcGxlcyBmb3VuZCB1bmRlciB0ZXN0L3ZhbGlkL2R0ZCBhbmQgYW55IG9mCit0aGUgbGFyZ2UgbnVtYmVyIG9mIGJvb2tzIGF2YWlsYWJsZSBvbiBYTUwuIFRoZSBkaWEgZXhhbXBsZSBpbiB0ZXN0L3ZhbGlkCitzaG91bGQgYmUgYm90aCBzaW1wbGUgYW5kIGNvbXBsZXRlIGVub3VnaCB0byBhbGxvdyB5b3UgdG8gYnVpbGQgeW91ciBvd24uPC9wPgorCis8cD48L3A+CisKKzxoMj48YSBuYW1lPSJNZW1vcnkiPk1lbW9yeSBNYW5hZ2VtZW50PC9hPjwvaDI+CisKKzxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPgorPG9sPgorICA8bGk+PGEgaHJlZj0iI0dlbmVyYWwzIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjc2V0dGluZyI+U2V0dGluZyBsaWJ4bWwyIHNldCBvZiBtZW1vcnkgcm91dGluZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNjbGVhbnVwIj5DbGVhbmluZyB1cCBhZnRlciB1c2luZyB0aGUgbGlicmFyeTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0RlYnVnZ2luZyI+RGVidWdnaW5nIHJvdXRpbmVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjR2VuZXJhbDQiPkdlbmVyYWwgbWVtb3J5IHJlcXVpcmVtZW50czwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0NvbXBhY3RpbmciPlJldHVybmluZyBtZW1vcnkgdG8gdGhlIGtlcm5lbDwvYT48L2xpPgorPC9vbD4KKworPGgzPjxhIG5hbWU9IkdlbmVyYWwzIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvaDM+CisKKzxwPlRoZSBtb2R1bGUgPGNvZGU+PGEKK2hyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sbWVtb3J5Lmg8L2E+PC9jb2RlPgorcHJvdmlkZXMgdGhlIGludGVyZmFjZXMgdG8gdGhlIGxpYnhtbDIgbWVtb3J5IHN5c3RlbTo8L3A+Cis8dWw+CisgIDxsaT5saWJ4bWwyIGRvZXMgbm90IHVzZSB0aGUgbGliYyBtZW1vcnkgYWxsb2NhdG9yIGRpcmVjdGx5IGJ1dCB4bWxGcmVlKCksCisgICAgeG1sTWFsbG9jKCkgYW5kIHhtbFJlYWxsb2MoKTwvbGk+CisgIDxsaT50aG9zZSByb3V0aW5lcyBjYW4gYmUgcmVhbGxvY2F0ZWQgdG8gYSBzcGVjaWZpYyBzZXQgb2Ygcm91dGluZSwgYnkKKyAgICBkZWZhdWx0IHRoZSBsaWJjIG9uZXMgaS5lLiBmcmVlKCksIG1hbGxvYygpIGFuZCByZWFsbG9jKCk8L2xpPgorICA8bGk+dGhlIHhtbG1lbW9yeS5jIG1vZHVsZSBpbmNsdWRlcyBhIHNldCBvZiBkZWJ1Z2dpbmcgcm91dGluZTwvbGk+Cis8L3VsPgorCis8aDM+PGEgbmFtZT0ic2V0dGluZyI+U2V0dGluZyBsaWJ4bWwyIHNldCBvZiBtZW1vcnkgcm91dGluZXM8L2E+PC9oMz4KKworPHA+SXQgaXMgc29tZXRpbWVzIHVzZWZ1bCB0byBub3QgdXNlIHRoZSBkZWZhdWx0IG1lbW9yeSBhbGxvY2F0b3IsIGVpdGhlciBmb3IKK2RlYnVnZ2luZywgYW5hbHlzaXMgb3IgdG8gaW1wbGVtZW50IGEgc3BlY2lmaWMgYmVoYXZpb3VyIG9uIG1lbW9yeSBtYW5hZ2VtZW50CisobGlrZSBvbiBlbWJlZGRlZCBzeXN0ZW1zKS4gVHdvIGZ1bmN0aW9uIGNhbGxzIGFyZSBhdmFpbGFibGUgdG8gZG8gc286PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1HZXQKKyAgICAoKTwvYT4gd2hpY2ggcmV0dXJuIHRoZSBjdXJyZW50IHNldCBvZiBmdW5jdGlvbnMgaW4gdXNlIGJ5IHRoZSBwYXJzZXI8L2xpPgorICA8bGk+PGEKKyAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1lbVNldHVwKCk8L2E+CisgICAgd2hpY2ggYWxsb3cgdG8gc2V0IHVwIGEgbmV3IHNldCBvZiBtZW1vcnkgYWxsb2NhdGlvbiBmdW5jdGlvbnM8L2xpPgorPC91bD4KKworPHA+T2YgY291cnNlIGEgY2FsbCB0byB4bWxNZW1TZXR1cCgpIHNob3VsZCBwcm9iYWJseSBiZSBkb25lIGJlZm9yZSBjYWxsaW5nCithbnkgb3RoZXIgbGlieG1sMiByb3V0aW5lcyAodW5sZXNzIHlvdSBhcmUgc3VyZSB5b3VyIGFsbG9jYXRpb25zIHJvdXRpbmVzIGFyZQorY29tcGF0aWJsZXMpLjwvcD4KKworPGgzPjxhIG5hbWU9ImNsZWFudXAiPkNsZWFuaW5nIHVwIGFmdGVyIHVzaW5nIHRoZSBsaWJyYXJ5PC9hPjwvaDM+CisKKzxwPkxpYnhtbDIgaXMgbm90IHN0YXRlbGVzcywgdGhlcmUgaXMgYSBmZXcgc2V0IG9mIG1lbW9yeSBzdHJ1Y3R1cmVzIG5lZWRpbmcKK2FsbG9jYXRpb24gYmVmb3JlIHRoZSBwYXJzZXIgaXMgZnVsbHkgZnVuY3Rpb25hbCAoc29tZSBlbmNvZGluZyBzdHJ1Y3R1cmVzCitmb3IgZXhhbXBsZSkuIFRoaXMgYWxzbyBtZWFuIHRoYXQgb25jZSBwYXJzaW5nIGlzIGZpbmlzaGVkIHRoZXJlIGlzIGEgdGlueQorYW1vdW50IG9mIG1lbW9yeSAoYSBmZXcgaHVuZHJlZCBieXRlcykgd2hpY2ggY2FuIGJlIHJlY29sbGVjdGVkIGlmIHlvdSBkb24ndAorcmV1c2UgdGhlIGxpYnJhcnkgb3IgYW55IGRvY3VtZW50IGJ1aWx0IHdpdGggaXQ6PC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxDbGVhbnVwUGFyc2VyCisgICAgKCk8L2E+IGlzIGEgY2VudHJhbGl6ZWQgcm91dGluZSB0byBmcmVlIHRoZSBsaWJyYXJ5IHN0YXRlIGFuZCBkYXRhLiBOb3RlCisgICAgdGhhdCBpdCB3b24ndCBkZWFsbG9jYXRlIGFueSBwcm9kdWNlZCB0cmVlIGlmIGFueSAodXNlIHRoZSB4bWxGcmVlRG9jKCkKKyAgICBhbmQgcmVsYXRlZCByb3V0aW5lcyBmb3IgdGhpcykuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoZW4gdGhlIGxpYnJhcnkKKyAgICBpcyBub3QgdXNlZCBhbnltb3JlLjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbEluaXRQYXJzZXIKKyAgICAoKTwvYT4gaXMgdGhlIGR1YWwgcm91dGluZSBhbGxvd2luZyB0byBwcmVhbGxvY2F0ZSB0aGUgcGFyc2luZyBzdGF0ZQorICAgIHdoaWNoIGNhbiBiZSB1c2VmdWwgZm9yIGV4YW1wbGUgdG8gYXZvaWQgaW5pdGlhbGl6YXRpb24gcmVlbnRyYW5jeQorICAgIHByb2JsZW1zIHdoZW4gdXNpbmcgbGlieG1sMiBpbiBtdWx0aXRocmVhZGVkIGFwcGxpY2F0aW9uczwvbGk+Cis8L3VsPgorCis8cD5HZW5lcmFsbHkgeG1sQ2xlYW51cFBhcnNlcigpIGlzIHNhZmUgYXNzdW1pbmcgbm8gcGFyc2luZyBpcyBvbmdvaW5nIGFuZAorbm8gZG9jdW1lbnQgaXMgc3RpbGwgYmVpbmcgdXNlZCwgaWYgbmVlZGVkIHRoZSBzdGF0ZSB3aWxsIGJlIHJlYnVpbGQgYXQgdGhlCituZXh0IGludm9jYXRpb24gb2YgcGFyc2VyIHJvdXRpbmVzIChvciBieSB4bWxJbml0UGFyc2VyKCkpLCBidXQgYmUgY2FyZWZ1bAorb2YgdGhlIGNvbnNlcXVlbmNlcyBpbiBtdWx0aXRocmVhZGVkIGFwcGxpY2F0aW9ucy48L3A+CisKKzxoMz48YSBuYW1lPSJEZWJ1Z2dpbmciPkRlYnVnZ2luZyByb3V0aW5lczwvYT48L2gzPgorCis8cD5XaGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS13aXRoLW1lbS1kZWJ1ZyBmbGFnIChvZmYgYnkgZGVmYXVsdCksIGxpYnhtbDIgdXNlcworYSBzZXQgb2YgbWVtb3J5IGFsbG9jYXRpb24gZGVidWdnaW5nIHJvdXRpbmVzIGtlZXBpbmcgdHJhY2sgb2YgYWxsIGFsbG9jYXRlZAorYmxvY2tzIGFuZCB0aGUgbG9jYXRpb24gaW4gdGhlIGNvZGUgd2hlcmUgdGhlIHJvdXRpbmUgd2FzIGNhbGxlZC4gQSBjb3VwbGUgb2YKK290aGVyIGRlYnVnZ2luZyByb3V0aW5lcyBhbGxvdyB0byBkdW1wIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGluZm9zIHRvIGEgZmlsZQorb3IgY2FsbCBhIHNwZWNpZmljIHJvdXRpbmUgd2hlbiBhIGdpdmVuIGJsb2NrIG51bWJlciBpcyBhbGxvY2F0ZWQ6PC9wPgorPHVsPgorICA8bGk+PGEKKyAgICBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1hbGxvY0xvYygpPC9hPgorICAgIDxhCisgICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxSZWFsbG9jTG9jKCk8L2E+CisgICAgYW5kIDxhCisgICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1TdHJkdXBMb2MoKTwvYT4KKyAgICBhcmUgdGhlIG1lbW9yeSBkZWJ1Z2dpbmcgcmVwbGFjZW1lbnQgYWxsb2NhdGlvbiByb3V0aW5lczwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1lbW9yeUR1bXAKKyAgICAoKTwvYT4gZHVtcHMgYWxsIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWxsb2NhdGVkIG1lbW9yeSBibG9jayBsZWZ0cworICAgIGluIHRoZSA8Y29kZT4ubWVtZHVtcDwvY29kZT4gZmlsZTwvbGk+Cis8L3VsPgorCis8cD5XaGVuIGRldmVsb3BpbmcgbGlieG1sMiBtZW1vcnkgZGVidWcgaXMgZW5hYmxlZCwgdGhlIHRlc3RzIHByb2dyYW1zIGNhbGwKK3htbE1lbW9yeUR1bXAgKCkgYW5kIHRoZSAibWFrZSB0ZXN0IiByZWdyZXNzaW9uIHRlc3RzIHdpbGwgY2hlY2sgZm9yIGFueQorbWVtb3J5IGxlYWsgZHVyaW5nIHRoZSBmdWxsIHJlZ3Jlc3Npb24gdGVzdCBzZXF1ZW5jZSwgdGhpcyBoZWxwcyBhIGxvdAorZW5zdXJpbmcgdGhhdCBsaWJ4bWwyICBkb2VzIG5vdCBsZWFrIG1lbW9yeSBhbmQgYnVsbGV0IHByb29mIG1lbW9yeQorYWxsb2NhdGlvbnMgdXNlIChzb21lIGxpYmMgaW1wbGVtZW50YXRpb25zIGFyZSBrbm93biB0byBiZSBmYXIgdG9vIHBlcm1pc3NpdmUKK3Jlc3VsdGluZyBpbiBtYWpvciBwb3J0YWJpbGl0eSBwcm9ibGVtcyEpLjwvcD4KKworPHA+SWYgdGhlIC5tZW1kdW1wIHJlcG9ydHMgYSBsZWFrLCBpdCBkaXNwbGF5cyB0aGUgYWxsb2NhdGlvbiBmdW5jdGlvbiBhbmQKK2Fsc28gdHJpZXMgdG8gZ2l2ZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250ZW50IGFuZCBzdHJ1Y3R1cmUgb2YgdGhlCithbGxvY2F0ZWQgYmxvY2tzIGxlZnQuIFRoaXMgaXMgc3VmZmljaWVudCBpbiBtb3N0IGNhc2VzIHRvIGZpbmQgdGhlIGN1bHByaXQsCitidXQgbm90IGFsd2F5cy4gQXNzdW1pbmcgdGhlIGFsbG9jYXRpb24gcHJvYmxlbSBpcyByZXByb2R1Y2libGUsIGl0IGlzCitwb3NzaWJsZSB0byBmaW5kIG1vcmUgZWFzaWx5OjwvcD4KKzxvbD4KKyAgPGxpPndyaXRlIGRvd24gdGhlIGJsb2NrIG51bWJlciB4eHh4IG5vdCBhbGxvY2F0ZWQ8L2xpPgorICA8bGk+ZXhwb3J0IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBYTUxfTUVNX0JSRUFLUE9JTlQ9eHh4eCAsIHRoZSBlYXNpZXN0CisgICAgd2hlbiB1c2luZyBHREIgaXMgdG8gc2ltcGx5IGdpdmUgdGhlIGNvbW1hbmQKKyAgICA8cD48Y29kZT5zZXQgZW52aXJvbm1lbnQgWE1MX01FTV9CUkVBS1BPSU5UIHh4eHg8L2NvZGU+PC9wPgorICAgIDxwPmJlZm9yZSBydW5uaW5nIHRoZSBwcm9ncmFtLjwvcD4KKyAgPC9saT4KKyAgPGxpPnJ1biB0aGUgcHJvZ3JhbSB1bmRlciBhIGRlYnVnZ2VyIGFuZCBzZXQgYSBicmVha3BvaW50IG9uCisgICAgeG1sTWFsbG9jQnJlYWtwb2ludCgpIGEgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhpcyBwcmVjaXNlIGJsb2NrCisgICAgaXMgYWxsb2NhdGVkPC9saT4KKyAgPGxpPndoZW4gdGhlIGJyZWFrcG9pbnQgaXMgcmVhY2hlZCB5b3UgY2FuIHRoZW4gZG8gYSBmaW5lIGFuYWx5c2lzIG9mIHRoZQorICAgIGFsbG9jYXRpb24gYW4gc3RlcCAgdG8gc2VlIHRoZSBjb25kaXRpb24gcmVzdWx0aW5nIGluIHRoZSBtaXNzaW5nCisgICAgZGVhbGxvY2F0aW9uLjwvbGk+Cis8L29sPgorCis8cD5JIHVzZWQgdG8gdXNlIGEgY29tbWVyY2lhbCB0b29sIHRvIGRlYnVnIGxpYnhtbDIgbWVtb3J5IHByb2JsZW1zIGJ1dCBhZnRlcgorbm90aWNpbmcgdGhhdCBpdCB3YXMgbm90IGRldGVjdGluZyBtZW1vcnkgbGVha3MgdGhhdCBzaW1wbGUgbWVjaGFuaXNtIHdhcwordXNlZCBhbmQgcHJvdmVkIGV4dHJlbWVseSBlZmZpY2llbnQgdW50aWwgbm93LiBMYXRlbHkgSSBoYXZlIGFsc28gdXNlZCA8YQoraHJlZj0iaHR0cDovL2RldmVsb3Blci5rZGUub3JnL35zZXdhcmRqLyI+dmFsZ3JpbmQ8L2E+IHdpdGggcXVpdGUgc29tZQorc3VjY2VzcywgaXQgaXMgdGllZCB0byB0aGUgaTM4NiBhcmNoaXRlY3R1cmUgc2luY2UgaXQgd29ya3MgYnkgZW11bGF0aW5nIHRoZQorcHJvY2Vzc29yIGFuZCBpbnN0cnVjdGlvbiBzZXQsIGl0IGlzIHNsb3cgYnV0ICBleHRyZW1lbHkgZWZmaWNpZW50LCBpLmUuIGl0CitzcG90IG1lbW9yeSB1c2FnZSBlcnJvcnMgaW4gYSB2ZXJ5IHByZWNpc2Ugd2F5LjwvcD4KKworPGgzPjxhIG5hbWU9IkdlbmVyYWw0Ij5HZW5lcmFsIG1lbW9yeSByZXF1aXJlbWVudHM8L2E+PC9oMz4KKworPHA+SG93IG11Y2ggbGlieG1sMiBtZW1vcnkgcmVxdWlyZSA/IEl0J3MgaGFyZCB0byB0ZWxsIGluIGF2ZXJhZ2UgaXQgZGVwZW5kcworb2YgYSBudW1iZXIgb2YgdGhpbmdzOjwvcD4KKzx1bD4KKyAgPGxpPnRoZSBwYXJzZXIgaXRzZWxmIHNob3VsZCB3b3JrICBpbiBhIGZpeGVkIGFtb3VudCBvZiBtZW1vcnksIGV4Y2VwdCBmb3IKKyAgICBpbmZvcm1hdGlvbiBtYWludGFpbmVkIGFib3V0IHRoZSBzdGFja3Mgb2YgbmFtZXMgYW5kICBlbnRpdGllcyBsb2NhdGlvbnMuCisgICAgVGhlIEkvTyBhbmQgZW5jb2RpbmcgaGFuZGxlcnMgd2lsbCBwcm9iYWJseSBhY2NvdW50IGZvciBhIGZldyBLQnl0ZXMuCisgICAgVGhpcyBpcyB0cnVlIGZvciBib3RoIHRoZSBYTUwgYW5kIEhUTUwgcGFyc2VyICh0aG91Z2ggdGhlIEhUTUwgcGFyc2VyCisgICAgbmVlZCBtb3JlIHN0YXRlKS48L2xpPgorICA8bGk+SWYgeW91IGFyZSBnZW5lcmF0aW5nIHRoZSBET00gdHJlZSB0aGVuIG1lbW9yeSByZXF1aXJlbWVudHMgd2lsbCBncm93CisgICAgbmVhcmx5IGxpbmVhciB3aXRoIHRoZSBzaXplIG9mIHRoZSBkYXRhLiBJbiBnZW5lcmFsIGZvciBhIGJhbGFuY2VkCisgICAgdGV4dHVhbCBkb2N1bWVudCB0aGUgaW50ZXJuYWwgbWVtb3J5IHJlcXVpcmVtZW50IGlzIGFib3V0IDQgdGltZXMgdGhlCisgICAgc2l6ZSBvZiB0aGUgVVRGOCBzZXJpYWxpemF0aW9uIG9mIHRoaXMgZG9jdW1lbnQgKGV4YW1wbGUgdGhlIFhNTC0xLjAKKyAgICByZWNvbW1lbmRhdGlvbiBpcyBhIGJpdCBtb3JlIG9mIDE1MEtCeXRlcyBhbmQgdGFrZXMgNjUwS0J5dGVzIG9mIG1haW4KKyAgICBtZW1vcnkgd2hlbiBwYXJzZWQpLiBWYWxpZGF0aW9uIHdpbGwgYWRkIGEgYW1vdW50IG9mIG1lbW9yeSByZXF1aXJlZCBmb3IKKyAgICBtYWludGFpbmluZyB0aGUgZXh0ZXJuYWwgRHRkIHN0YXRlIHdoaWNoIHNob3VsZCBiZSBsaW5lYXIgd2l0aCB0aGUKKyAgICBjb21wbGV4aXR5IG9mIHRoZSBjb250ZW50IG1vZGVsIGRlZmluZWQgYnkgdGhlIER0ZDwvbGk+CisgIDxsaT5JZiB5b3UgbmVlZCB0byB3b3JrIHdpdGggZml4ZWQgbWVtb3J5IHJlcXVpcmVtZW50cyBvciBkb24ndCBuZWVkIHRoZQorICAgIGZ1bGwgRE9NIHRyZWUgdGhlbiB1c2luZyB0aGUgPGEgaHJlZj0ieG1scmVhZGVyLmh0bWwiPnhtbFJlYWRlcgorICAgIGludGVyZmFjZTwvYT4gaXMgcHJvYmFibHkgdGhlIGJlc3Qgd2F5IHRvIHByb2NlZWQsIGl0IHN0aWxsIGFsbG93cyB0bworICAgIHZhbGlkYXRlIG9yIG9wZXJhdGUgb24gc3Vic2V0IG9mIHRoZSB0cmVlIGlmIG5lZWRlZC48L2xpPgorICA8bGk+SWYgeW91IGRvbid0IGNhcmUgYWJvdXQgdGhlIGFkdmFuY2VkIGZlYXR1cmVzIG9mIGxpYnhtbDIgbGlrZQorICAgIHZhbGlkYXRpb24sIERPTSwgWFBhdGggb3IgWFBvaW50ZXIsIGRvbid0IHVzZSBlbnRpdGllcywgbmVlZCB0byB3b3JrIHdpdGgKKyAgICBmaXhlZCBtZW1vcnkgcmVxdWlyZW1lbnRzLCBhbmQgdHJ5IHRvIGdldCB0aGUgZmFzdGVzdCBwYXJzaW5nIHBvc3NpYmxlCisgICAgdGhlbiB0aGUgU0FYIGludGVyZmFjZSBzaG91bGQgYmUgdXNlZCwgYnV0IGl0IGhhcyBrbm93biByZXN0cmljdGlvbnMuPC9saT4KKzwvdWw+CisKKzxwPjwvcD4KKzxoMz48YSBuYW1lPSJDb21wYWN0aW5nIj5SZXR1cm5pbmcgbWVtb3J5IHRvIHRoZSBrZXJuZWw8L2E+PC9oMz4KKworPHA+WW91IG1heSBlbmNvdW50ZXIgdGhhdCB5b3VyIHByb2Nlc3MgdXNpbmcgbGlieG1sMiBkb2VzIG5vdCBoYXZlIGEKK3JlZHVjZWQgbWVtb3J5IHVzYWdlIGFsdGhvdWdoIHlvdSBmcmVlZCB0aGUgdHJlZXMuIFRoaXMgaXMgYmVjYXVzZQorbGlieG1sMiBhbGxvY2F0ZXMgbWVtb3J5IGluIGEgbnVtYmVyIG9mIHNtYWxsIGNodW5rcy4gV2hlbiBmcmVlaW5nIG9uZQorb2YgdGhvc2UgY2h1bmtzLCB0aGUgT1MgbWF5IGRlY2lkZSB0aGF0IGdpdmluZyB0aGlzIGxpdHRsZSBtZW1vcnkgYmFjawordG8gdGhlIGtlcm5lbCB3aWxsIGNhdXNlIHRvbyBtdWNoIG92ZXJoZWFkIGFuZCBkZWxheSB0aGUgb3BlcmF0aW9uLiBBcworYWxsIGNodW5rcyBhcmUgdGhpcyBzbWFsbCwgdGhleSBnZXQgYWN0dWFsbHkgZnJlZWQgYnV0IG5vdCByZXR1cm5lZCB0bwordGhlIGtlcm5lbC4gT24gc3lzdGVtcyB1c2luZyBnbGliYywgdGhlcmUgaXMgYSBmdW5jdGlvbiBjYWxsCisibWFsbG9jX3RyaW0iIGZyb20gbWFsbG9jLmggd2hpY2ggZG9lcyB0aGlzIG1pc3Npbmcgb3BlcmF0aW9uIChub3RlIHRoYXQKK2l0IGlzIGFsbG93ZWQgdG8gZmFpbCkuIFRodXMsIGFmdGVyIGZyZWVpbmcgeW91ciB0cmVlIHlvdSBtYXkgc2ltcGx5IHRyeQorIm1hbGxvY190cmltKDApOyIgdG8gcmVhbGx5IGdldCB0aGUgbWVtb3J5IGJhY2suIElmIHlvdXIgT1MgZG9lcyBub3QKK3Byb3ZpZGUgbWFsbG9jX3RyaW0sIHRyeSBzZWFyY2hpbmcgZm9yIGEgc2ltaWxhciBmdW5jdGlvbi48L3A+Cis8cD48L3A+CisKKzxoMj48YSBuYW1lPSJFbmNvZGluZ3MiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvaDI+CisKKzxwPklmIHlvdSBhcmUgbm90IHJlYWxseSBmYW1pbGlhciB3aXRoIEludGVybmF0aW9uYWxpemF0aW9uICh1c3VhbCBzaG9ydGN1dAoraXMgSTE4TikgLCBVbmljb2RlLCBjaGFyYWN0ZXJzIGFuZCBnbHlwaHMsIEkgc3VnZ2VzdCB5b3UgcmVhZCBhIDxhCitocmVmPSJodHRwOi8vd3d3LnRicmF5Lm9yZy9vbmdvaW5nL1doZW4vMjAweC8yMDAzLzA0LzA2L1VuaWNvZGUiPnByZXNlbnRhdGlvbjwvYT4KK2J5IFRpbSBCcmF5IG9uIFVuaWNvZGUgYW5kIHdoeSB5b3Ugc2hvdWxkIGNhcmUgYWJvdXQgaXQuPC9wPgorCis8cD5JZiB5b3UgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgPGI+aXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBoYXZlIGEgc3RyaW5nCit3aXRob3V0IGtub3dpbmcgd2hhdCBlbmNvZGluZyBpdCB1c2VzPC9iPiwgdGhlbiBhcyBKb2VsIFNwb2xza3kgc2FpZCA8YQoraHJlZj0iaHR0cDovL3d3dy5qb2Vsb25zb2Z0d2FyZS5jb20vYXJ0aWNsZXMvVW5pY29kZS5odG1sIj5wbGVhc2UgZG8gbm90Cit3cml0ZSBhbm90aGVyIGxpbmUgb2YgY29kZSB1bnRpbCB5b3UgZmluaXNoIHJlYWRpbmcgdGhhdCBhcnRpY2xlLjwvYT4uIEl0IGlzCithIHByZXJlcXVpc2l0ZSB0byB1bmRlcnN0YW5kIHRoaXMgcGFnZSwgYW5kIGF2b2lkIGEgbG90IG9mIHByb2JsZW1zIHdpdGgKK2xpYnhtbDIsIFhNTCBvciB0ZXh0IHByb2Nlc3NpbmcgaW4gZ2VuZXJhbC48L3A+CisKKzxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPgorPG9sPgorICA8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCNXaGF0Ij5XaGF0IGRvZXMgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydAorICAgIG1lYW4gPzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCNpbnRlcm5hbCI+VGhlIGludGVybmFsIGVuY29kaW5nLCBob3cgYW5kCisgIHdoeTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCNpbXBsZW1lbnRlIj5Ib3cgaXMgaXQgaW1wbGVtZW50ZWQgPzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0IHN1cHBvcnRlZCBlbmNvZGluZ3M8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwjZXh0ZW5kIj5Ib3cgdG8gZXh0ZW5kIHRoZSBleGlzdGluZworICBzdXBwb3J0PC9hPjwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iV2hhdCI+V2hhdCBkb2VzIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQgbWVhbiA/PC9hPjwvaDM+CisKKzxwPlhNTCB3YXMgZGVzaWduZWQgZnJvbSB0aGUgc3RhcnQgdG8gYWxsb3cgdGhlIHN1cHBvcnQgb2YgYW55IGNoYXJhY3RlciBzZXQKK2J5IHVzaW5nIFVuaWNvZGUuIEFueSBjb25mb3JtYW50IFhNTCBwYXJzZXIgaGFzIHRvIHN1cHBvcnQgdGhlIFVURi04IGFuZAorVVRGLTE2IGRlZmF1bHQgZW5jb2RpbmdzIHdoaWNoIGNhbiBib3RoIGV4cHJlc3MgdGhlIGZ1bGwgdW5pY29kZSByYW5nZXMuIFVURjgKK2lzIGEgdmFyaWFibGUgbGVuZ3RoIGVuY29kaW5nIHdob3NlIGdyZWF0ZXN0IHBvaW50cyBhcmUgdG8gcmV1c2UgdGhlIHNhbWUKK2VuY29kaW5nIGZvciBBU0NJSSBhbmQgdG8gc2F2ZSBzcGFjZSBmb3IgV2VzdGVybiBlbmNvZGluZ3MsIGJ1dCBpdCBpcyBhIGJpdAorbW9yZSBjb21wbGV4IHRvIGhhbmRsZSBpbiBwcmFjdGljZS4gVVRGLTE2IHVzZSAyIGJ5dGVzIHBlciBjaGFyYWN0ZXIgKGFuZAorc29tZXRpbWVzIGNvbWJpbmVzIHR3byBwYWlycyksIGl0IG1ha2VzIGltcGxlbWVudGF0aW9uIGVhc2llciwgYnV0IGxvb2tzIGEKK2JpdCBvdmVya2lsbCBmb3IgV2VzdGVybiBsYW5ndWFnZXMgZW5jb2RpbmcuIE1vcmVvdmVyIHRoZSBYTUwgc3BlY2lmaWNhdGlvbgorYWxsb3dzIHRoZSBkb2N1bWVudCB0byBiZSBlbmNvZGVkIGluIG90aGVyIGVuY29kaW5ncyBhdCB0aGUgY29uZGl0aW9uIHRoYXQKK3RoZXkgYXJlIGNsZWFybHkgbGFiZWxlZCBhcyBzdWNoLiBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIGlzIGEgd2VsbGZvcm1lZAorWE1MIGRvY3VtZW50IGVuY29kZWQgaW4gSVNPLTg4NTktMSBhbmQgdXNpbmcgYWNjZW50dWF0ZWQgbGV0dGVycyB0aGF0IHdlCitGcmVuY2ggbGlrZSBmb3IgYm90aCBtYXJrdXAgYW5kIGNvbnRlbnQ6PC9wPgorPHByZT4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8mZ3Q7CismbHQ7dHLDqHMmZ3Q7bMOgJmx0Oy90csOocyZndDs8L3ByZT4KKworPHA+SGF2aW5nIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQgaW4gbGlieG1sMiBtZWFucyB0aGUgZm9sbG93aW5nOjwvcD4KKzx1bD4KKyAgPGxpPnRoZSBkb2N1bWVudCBpcyBwcm9wZXJseSBwYXJzZWQ8L2xpPgorICA8bGk+aW5mb3JtYXRpb24gYWJvdXQgaXQncyBlbmNvZGluZyBpcyBzYXZlZDwvbGk+CisgIDxsaT5pdCBjYW4gYmUgbW9kaWZpZWQ8L2xpPgorICA8bGk+aXQgY2FuIGJlIHNhdmVkIGluIGl0cyBvcmlnaW5hbCBlbmNvZGluZzwvbGk+CisgIDxsaT5pdCBjYW4gYWxzbyBiZSBzYXZlZCBpbiBhbm90aGVyIGVuY29kaW5nIHN1cHBvcnRlZCBieSBsaWJ4bWwyIChmb3IKKyAgICBleGFtcGxlIHN0cmFpZ2h0IFVURjggb3IgZXZlbiBhbiBBU0NJSSBmb3JtKTwvbGk+Cis8L3VsPgorCis8cD5Bbm90aGVyIHZlcnkgaW1wb3J0YW50IHBvaW50IGlzIHRoYXQgdGhlIHdob2xlIGxpYnhtbDIgQVBJLCB3aXRoIHRoZQorZXhjZXB0aW9uIG9mIGEgZmV3IHJvdXRpbmVzIHRvIHJlYWQgd2l0aCBhIHNwZWNpZmljIGVuY29kaW5nIG9yIHNhdmUgdG8gYQorc3BlY2lmaWMgZW5jb2RpbmcsIGlzIGNvbXBsZXRlbHkgYWdub3N0aWMgYWJvdXQgdGhlIG9yaWdpbmFsIGVuY29kaW5nIG9mIHRoZQorZG9jdW1lbnQuPC9wPgorCis8cD5JdCBzaG91bGQgYmUgbm90ZWQgdG9vIHRoYXQgdGhlIEhUTUwgcGFyc2VyIGVtYmVkZGVkIGluIGxpYnhtbDIgbm93IG9iZXkKK3RoZSBzYW1lIHJ1bGVzIHRvbywgdGhlIGZvbGxvd2luZyBkb2N1bWVudCB3aWxsIGJlIChhcyBvZiAyLjIuMikgaGFuZGxlZCAgaW4KK2FuIGludGVybmF0aW9uYWxpemVkIGZhc2hpb24gYnkgbGlieG1sMiB0b286PC9wPgorPHByZT4mbHQ7IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIiZndDsKKyZsdDtodG1sIGxhbmc9ImZyIiZndDsKKyZsdDtoZWFkJmd0OworICAmbHQ7TUVUQSBIVFRQLUVRVUlWPSJDb250ZW50LVR5cGUiIENPTlRFTlQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiZndDsKKyZsdDsvaGVhZCZndDsKKyZsdDtib2R5Jmd0OworJmx0O3AmZ3Q7VzNDIGNyw6llIGRlcyBzdGFuZGFyZHMgcG91ciBsZSBXZWIuJmx0Oy9ib2R5Jmd0OworJmx0Oy9odG1sJmd0OzwvcHJlPgorCis8aDM+PGEgbmFtZT0iaW50ZXJuYWwiPlRoZSBpbnRlcm5hbCBlbmNvZGluZywgaG93IGFuZCB3aHk8L2E+PC9oMz4KKworPHA+T25lIG9mIHRoZSBjb3JlIGRlY2lzaW9ucyB3YXMgdG8gZm9yY2UgYWxsIGRvY3VtZW50cyB0byBiZSBjb252ZXJ0ZWQgdG8gYQorZGVmYXVsdCBpbnRlcm5hbCBlbmNvZGluZywgYW5kIHRoYXQgZW5jb2RpbmcgdG8gYmUgVVRGLTgsIGhlcmUgYXJlIHRoZQorcmF0aW9uYWxlcyBmb3IgdGhvc2UgY2hvaWNlczo8L3A+Cis8dWw+CisgIDxsaT5rZWVwaW5nIHRoZSBuYXRpdmUgZW5jb2RpbmcgaW4gdGhlIGludGVybmFsIGZvcm0gd291bGQgZm9yY2UgdGhlIGxpYnhtbAorICAgIHVzZXJzIChvciB0aGUgY29kZSBhc3NvY2lhdGVkKSB0byBiZSBmdWxseSBhd2FyZSBvZiB0aGUgZW5jb2Rpbmcgb2YgdGhlCisgICAgb3JpZ2luYWwgZG9jdW1lbnQsIGZvciBleGFtcGxlcyB3aGVuIGFkZGluZyBhIHRleHQgbm9kZSB0byBhIGRvY3VtZW50LAorICAgIHRoZSBjb250ZW50IHdvdWxkIGhhdmUgdG8gYmUgcHJvdmlkZWQgaW4gdGhlIGRvY3VtZW50IGVuY29kaW5nLCBpLmUuIHRoZQorICAgIGNsaWVudCBjb2RlIHdvdWxkIGhhdmUgdG8gY2hlY2sgaXQgYmVmb3JlIGhhbmQsIG1ha2Ugc3VyZSBpdCdzIGNvbmZvcm1hbnQKKyAgICB0byB0aGUgZW5jb2RpbmcsIGV0YyAuLi4gVmVyeSBoYXJkIGluIHByYWN0aWNlLCB0aG91Z2ggaW4gc29tZSBzcGVjaWZpYworICAgIGNhc2VzIHRoaXMgbWF5IG1ha2Ugc2Vuc2UuPC9saT4KKyAgPGxpPnRoZSBzZWNvbmQgZGVjaXNpb24gd2FzIHdoaWNoIGVuY29kaW5nLiBGcm9tIHRoZSBYTUwgc3BlYyBvbmx5IFVURjggYW5kCisgICAgVVRGMTYgcmVhbGx5IG1ha2VzIHNlbnNlIGFzIGJlaW5nIHRoZSB0d28gb25seSBlbmNvZGluZ3MgZm9yIHdoaWNoIHRoZXJlCisgICAgaXMgbWFuZGF0b3J5IHN1cHBvcnQuIFVDUy00ICgzMiBiaXRzIGZpeGVkIHNpemUgZW5jb2RpbmcpIGNvdWxkIGJlCisgICAgY29uc2lkZXJlZCBhbiBpbnRlbGxpZ2VudCBjaG9pY2UgdG9vIHNpbmNlIGl0J3MgYSBkaXJlY3QgVW5pY29kZSBtYXBwaW5nCisgICAgc3VwcG9ydC4gSSBzZWxlY3RlZCBVVEYtOCBvbiB0aGUgYmFzaXMgb2YgZWZmaWNpZW5jeSBhbmQgY29tcGF0aWJpbGl0eQorICAgIHdpdGggc3Vycm91bmRpbmcgc29mdHdhcmU6CisgICAgPHVsPgorICAgICAgPGxpPlVURi04IHdoaWxlIGEgYml0IG1vcmUgY29tcGxleCB0byBjb252ZXJ0IGZyb20vdG8gKGkuZS4gc2xpZ2h0bHkKKyAgICAgICAgbW9yZSBjb3N0bHkgdG8gaW1wb3J0IGFuZCBleHBvcnQgQ1BVIHdpc2UpIGlzIGFsc28gZmFyIG1vcmUgY29tcGFjdAorICAgICAgICB0aGFuIFVURi0xNiAoYW5kIFVDUy00KSBmb3IgYSBtYWpvcml0eSBvZiB0aGUgZG9jdW1lbnRzIEkgc2VlIGl0IHVzZWQKKyAgICAgICAgZm9yIHJpZ2h0IG5vdyAoUlBNIFJERiBjYXRhbG9ncywgYWR2b2dhdG8gZGF0YSwgdmFyaW91cyBjb25maWd1cmF0aW9uCisgICAgICAgIGZpbGUgZm9ybWF0cywgZXRjLikgYW5kIHRoZSBrZXkgcG9pbnQgZm9yIHRvZGF5J3MgY29tcHV0ZXIKKyAgICAgICAgYXJjaGl0ZWN0dXJlIGlzIGVmZmljaWVudCB1c2VzIG9mIGNhY2hlcy4gSWYgb25lIG5lYXJseSBkb3VibGUgdGhlCisgICAgICAgIG1lbW9yeSByZXF1aXJlbWVudCB0byBzdG9yZSB0aGUgc2FtZSBhbW91bnQgb2YgZGF0YSwgdGhpcyB3aWxsIHRyYXNoCisgICAgICAgIGNhY2hlcyAobWFpbiBtZW1vcnkvZXh0ZXJuYWwgY2FjaGVzL2ludGVybmFsIGNhY2hlcykgYW5kIG15IHRha2UgaXMKKyAgICAgICAgdGhhdCB0aGlzIGhhcm1zIHRoZSBzeXN0ZW0gZmFyIG1vcmUgdGhhbiB0aGUgQ1BVIHJlcXVpcmVtZW50cyBuZWVkZWQKKyAgICAgICAgZm9yIHRoZSBjb252ZXJzaW9uIHRvIFVURi04PC9saT4KKyAgICAgIDxsaT5Nb3N0IG9mIGxpYnhtbDIgdmVyc2lvbiAxIHVzZXJzIHdlcmUgdXNpbmcgaXQgd2l0aCBzdHJhaWdodCBBU0NJSQorICAgICAgICBtb3N0IG9mIHRoZSB0aW1lLCBkb2luZyB0aGUgY29udmVyc2lvbiB3aXRoIGFuIGludGVybmFsIGVuY29kaW5nCisgICAgICAgIHJlcXVpcmluZyBhbGwgdGhlaXIgY29kZSB0byBiZSByZXdyaXR0ZW4gd2FzIGEgc2VyaW91cyBzaG93LXN0b3BwZXIKKyAgICAgICAgZm9yIHVzaW5nIFVURi0xNiBvciBVQ1MtNC48L2xpPgorICAgICAgPGxpPlVURi04IGlzIGJlaW5nIHVzZWQgYXMgdGhlIGRlLWZhY3RvIGludGVybmFsIGVuY29kaW5nIHN0YW5kYXJkIGZvcgorICAgICAgICByZWxhdGVkIGNvZGUgbGlrZSB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5wYW5nby5vcmcvIj5wYW5nbzwvYT4KKyAgICAgICAgdXBjb21pbmcgR25vbWUgdGV4dCB3aWRnZXQsIGFuZCBhIGxvdCBvZiBVbml4IGNvZGUgKHlldCBhbm90aGVyIHBsYWNlCisgICAgICAgIHdoZXJlIFVuaXggcHJvZ3JhbW1lciBiYXNlIHRha2VzIGEgZGlmZmVyZW50IGFwcHJvYWNoIGZyb20gTWljcm9zb2Z0CisgICAgICAgIC0gdGhleSBhcmUgdXNpbmcgVVRGLTE2KTwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKzwvdWw+CisKKzxwPldoYXQgZG9lcyB0aGlzIG1lYW4gaW4gcHJhY3RpY2UgZm9yIHRoZSBsaWJ4bWwyIHVzZXI6PC9wPgorPHVsPgorICA8bGk+eG1sQ2hhciwgdGhlIGxpYnhtbDIgZGF0YSB0eXBlIGlzIGEgYnl0ZSwgdGhvc2UgYnl0ZXMgbXVzdCBiZSBhc3NlbWJsZWQKKyAgICBhcyBVVEYtOCB2YWxpZCBzdHJpbmdzLiBUaGUgcHJvcGVyIHdheSB0byB0ZXJtaW5hdGUgYW4geG1sQ2hhciAqIHN0cmluZworICAgIGlzIHNpbXBseSB0byBhcHBlbmQgMCBieXRlLCBhcyB1c3VhbC48L2xpPgorICA8bGk+T25lIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3aGVuIHVzaW5nIGNoYXJzIG91dHNpZGUgdGhlIEFTQ0lJIHNldCwKKyAgICB0aGUgdmFsdWVzIGhhcyBiZWVuIHByb3Blcmx5IGNvbnZlcnRlZCB0byBVVEYtODwvbGk+Cis8L3VsPgorCis8aDM+PGEgbmFtZT0iaW1wbGVtZW50ZSI+SG93IGlzIGl0IGltcGxlbWVudGVkID88L2E+PC9oMz4KKworPHA+TGV0J3MgZGVzY3JpYmUgaG93IGFsbCB0aGlzIHdvcmtzIHdpdGhpbiBsaWJ4bWwsIGJhc2ljYWxseSB0aGUgSTE4TgorKGludGVybmF0aW9uYWxpemF0aW9uKSBzdXBwb3J0IGdldCB0cmlnZ2VyZWQgb25seSBkdXJpbmcgSS9PIG9wZXJhdGlvbiwgaS5lLgord2hlbiByZWFkaW5nIGEgZG9jdW1lbnQgb3Igc2F2aW5nIG9uZS4gTGV0J3MgbG9vayBmaXJzdCBhdCB0aGUgcmVhZGluZworc2VxdWVuY2U6PC9wPgorPG9sPgorICA8bGk+d2hlbiBhIGRvY3VtZW50IGlzIHByb2Nlc3NlZCwgd2UgdXN1YWxseSBkb24ndCBrbm93IHRoZSBlbmNvZGluZywgYQorICAgIHNpbXBsZSBoZXVyaXN0aWMgYWxsb3dzIHRvIGRldGVjdCBVVEYtMTYgYW5kIFVDUy00IGZyb20gZW5jb2RpbmdzIHdoZXJlCisgICAgdGhlIEFTQ0lJIHJhbmdlICgwLTB4N0YpIG1hcHMgd2l0aCBBU0NJSTwvbGk+CisgIDxsaT50aGUgeG1sIGRlY2xhcmF0aW9uIGlmIGF2YWlsYWJsZSBpcyBwYXJzZWQsIGluY2x1ZGluZyB0aGUgZW5jb2RpbmcKKyAgICBkZWNsYXJhdGlvbi4gQXQgdGhhdCBwb2ludCwgaWYgdGhlIGF1dG9kZXRlY3RlZCBlbmNvZGluZyBpcyBkaWZmZXJlbnQKKyAgICBmcm9tIHRoZSBvbmUgZGVjbGFyZWQgYSBjYWxsIHRvIHhtbFN3aXRjaEVuY29kaW5nKCkgaXMgaXNzdWVkLjwvbGk+CisgIDxsaT5JZiB0aGVyZSBpcyBubyBlbmNvZGluZyBkZWNsYXJhdGlvbiwgdGhlbiB0aGUgaW5wdXQgaGFzIHRvIGJlIGluIGVpdGhlcgorICAgIFVURi04IG9yIFVURi0xNiwgaWYgaXQgaXMgbm90IHRoZW4gYXQgc29tZSBwb2ludCB3aGVuIHByb2Nlc3NpbmcgdGhlCisgICAgaW5wdXQsIHRoZSBjb252ZXJ0ZXIvY2hlY2tlciBvZiBVVEYtOCBmb3JtIHdpbGwgcmFpc2UgYW4gZW5jb2RpbmcgZXJyb3IuCisgICAgWW91IG1heSBlbmQtdXAgd2l0aCBhIGdhcmJsZWQgZG9jdW1lbnQsIG9yIG5vIGRvY3VtZW50IGF0IGFsbCAhIEV4YW1wbGU6CisgICAgPHByZT5+L1hNTCAtJmd0OyAuL3htbGxpbnQgZXJyLnhtbCAKK2Vyci54bWw6MTogZXJyb3I6IElucHV0IGlzIG5vdCBwcm9wZXIgVVRGLTgsIGluZGljYXRlIGVuY29kaW5nICEKKyZsdDt0csOocyZndDtsw6AmbHQ7L3Ryw6hzJmd0OworICAgXgorZXJyLnhtbDoxOiBlcnJvcjogQnl0ZXM6IDB4RTggMHg3MyAweDNFIDB4NkMKKyZsdDt0csOocyZndDtsw6AmbHQ7L3Ryw6hzJmd0OworICAgXjwvcHJlPgorICA8L2xpPgorICA8bGk+eG1sU3dpdGNoRW5jb2RpbmcoKSBkb2VzIGFuIGVuY29kaW5nIG5hbWUgbG9va3VwLCBjYW5vbmljYWxpemUgaXQsIGFuZAorICAgIHRoZW4gc2VhcmNoIHRoZSBkZWZhdWx0IHJlZ2lzdGVyZWQgZW5jb2RpbmcgY29udmVydGVycyBmb3IgdGhhdCBlbmNvZGluZy4KKyAgICBJZiBpdCdzIG5vdCB3aXRoaW4gdGhlIGRlZmF1bHQgc2V0IGFuZCBpY29udigpIHN1cHBvcnQgaGFzIGJlZW4gY29tcGlsZWQKKyAgICBpdCwgaXQgd2lsbCBhc2sgaWNvbnYgZm9yIHN1Y2ggYW4gZW5jb2Rlci4gSWYgdGhpcyBmYWlscyB0aGVuIHRoZSBwYXJzZXIKKyAgICB3aWxsIHJlcG9ydCBhbiBlcnJvciBhbmQgc3RvcHMgcHJvY2Vzc2luZzoKKyAgICA8cHJlPn4vWE1MIC0mZ3Q7IC4veG1sbGludCBlcnIyLnhtbCAKK2VycjIueG1sOjE6IGVycm9yOiBVbnN1cHBvcnRlZCBlbmNvZGluZyBVbnN1cHBvcnRlZEVuYworJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVW5zdXBwb3J0ZWRFbmMiPyZndDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF48L3ByZT4KKyAgPC9saT4KKyAgPGxpPkZyb20gdGhhdCBwb2ludCB0aGUgZW5jb2RlciBwcm9jZXNzZXMgcHJvZ3Jlc3NpdmVseSB0aGUgaW5wdXQgKGl0IGlzCisgICAgcGx1Z2dlZCBhcyBhIGZyb250LWVuZCB0byB0aGUgSS9PIG1vZHVsZSkgZm9yIHRoYXQgZW50aXR5LiBJdCBjYXB0dXJlcworICAgIGFuZCBjb252ZXJ0cyBvbi10aGUtZmx5IHRoZSBkb2N1bWVudCB0byBiZSBwYXJzZWQgdG8gVVRGLTguIFRoZSBwYXJzZXIKKyAgICBpdHNlbGYganVzdCBkb2VzIFVURi04IGNoZWNraW5nIG9mIHRoaXMgaW5wdXQgYW5kIHByb2Nlc3MgaXQKKyAgICB0cmFuc3BhcmVudGx5LiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIGVuY29kaW5nIGluZm9ybWF0aW9uIGhhcworICAgIGJlZW4gYWRkZWQgdG8gdGhlIHBhcnNpbmcgY29udGV4dCAobW9yZSBwcmVjaXNlbHkgdG8gdGhlIGlucHV0CisgICAgY29ycmVzcG9uZGluZyB0byB0aGlzIGVudGl0eSkuPC9saT4KKyAgPGxpPlRoZSByZXN1bHQgKHdoZW4gdXNpbmcgRE9NKSBpcyBhbiBpbnRlcm5hbCBmb3JtIGNvbXBsZXRlbHkgaW4gVVRGLTgKKyAgICB3aXRoIGp1c3QgYW4gZW5jb2RpbmcgaW5mb3JtYXRpb24gb24gdGhlIGRvY3VtZW50IG5vZGUuPC9saT4KKzwvb2w+CisKKzxwPk9rIHRoZW4gd2hhdCBoYXBwZW5zIHdoZW4gc2F2aW5nIHRoZSBkb2N1bWVudCAoYXNzdW1pbmcgeW91Citjb2xsZWN0ZWQvYnVpbHQgYW4geG1sRG9jIERPTSBsaWtlIHN0cnVjdHVyZSkgPyBJdCBkZXBlbmRzIG9uIHRoZSBmdW5jdGlvbgorY2FsbGVkLCB4bWxTYXZlRmlsZSgpIHdpbGwganVzdCB0cnkgdG8gc2F2ZSBpbiB0aGUgb3JpZ2luYWwgZW5jb2RpbmcsIHdoaWxlCit4bWxTYXZlRmlsZVRvKCkgYW5kIHhtbFNhdmVGaWxlRW5jKCkgY2FuIG9wdGlvbmFsbHkgc2F2ZSB0byBhIGdpdmVuCitlbmNvZGluZzo8L3A+Cis8b2w+CisgIDxsaT5pZiBubyBlbmNvZGluZyBpcyBnaXZlbiwgbGlieG1sMiB3aWxsIGxvb2sgZm9yIGFuIGVuY29kaW5nIHZhbHVlCisgICAgYXNzb2NpYXRlZCB0byB0aGUgZG9jdW1lbnQgYW5kIGlmIGl0IGV4aXN0cyB3aWxsIHRyeSB0byBzYXZlIHRvIHRoYXQKKyAgICBlbmNvZGluZywKKyAgICA8cD5vdGhlcndpc2UgZXZlcnl0aGluZyBpcyB3cml0dGVuIGluIHRoZSBpbnRlcm5hbCBmb3JtLCBpLmUuIFVURi04PC9wPgorICA8L2xpPgorICA8bGk+c28gaWYgYW4gZW5jb2Rpbmcgd2FzIHNwZWNpZmllZCwgZWl0aGVyIGF0IHRoZSBBUEkgbGV2ZWwgb3Igb24gdGhlCisgICAgZG9jdW1lbnQsIGxpYnhtbDIgd2lsbCBhZ2FpbiBjYW5vbmljYWxpemUgdGhlIGVuY29kaW5nIG5hbWUsIGxvb2t1cCBmb3IgYQorICAgIGNvbnZlcnRlciBpbiB0aGUgcmVnaXN0ZXJlZCBzZXQgb3IgdGhyb3VnaCBpY29udi4gSWYgbm90IGZvdW5kIHRoZQorICAgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGVycm9yIGNvZGU8L2xpPgorICA8bGk+dGhlIGNvbnZlcnRlciBpcyBwbGFjZWQgYmVmb3JlIHRoZSBJL08gYnVmZmVyIGxheWVyLCBhcyBhbm90aGVyIGtpbmQgb2YKKyAgICBidWZmZXIsIHRoZW4gbGlieG1sMiB3aWxsIHNpbXBseSBwdXNoIHRoZSBVVEYtOCBzZXJpYWxpemF0aW9uIHRvIHRocm91Z2gKKyAgICB0aGF0IGJ1ZmZlciwgd2hpY2ggd2lsbCB0aGVuIHByb2dyZXNzaXZlbHkgYmUgY29udmVydGVkIGFuZCBwdXNoZWQgb250bworICAgIHRoZSBJL08gbGF5ZXIuPC9saT4KKyAgPGxpPkl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGNvbnZlcnRlciBjb2RlIGZhaWxzIG9uIHNvbWUgaW5wdXQsIGZvciBleGFtcGxlCisgICAgdHJ5aW5nIHRvIHB1c2ggYW4gVVRGLTggZW5jb2RlZCBDaGluZXNlIGNoYXJhY3RlciB0aHJvdWdoIHRoZSBVVEYtOCB0bworICAgIElTTy04ODU5LTEgY29udmVydGVyIHdvbid0IHdvcmsuIFNpbmNlIHRoZSBlbmNvZGVycyBhcmUgcHJvZ3Jlc3NpdmUgdGhleQorICAgIHdpbGwganVzdCByZXBvcnQgdGhlIGVycm9yIGFuZCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvbnZlcnRlZCwgYXQgdGhhdAorICAgIHBvaW50IGxpYnhtbDIgd2lsbCBkZWNvZGUgdGhlIG9mZmVuZGluZyBjaGFyYWN0ZXIsIHJlbW92ZSBpdCBmcm9tIHRoZQorICAgIGJ1ZmZlciBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBhc3NvY2lhdGVkIGNoYXJSZWYgZW5jb2RpbmcgJmFtcDsjMTIzOyBhbmQKKyAgICByZXN1bWUgdGhlIGNvbnZlcnNpb24uIFRoaXMgZ3VhcmFudGVlcyB0aGF0IGFueSBkb2N1bWVudCB3aWxsIGJlIHNhdmVkCisgICAgd2l0aG91dCBsb3NzZXMgKGV4Y2VwdCBmb3IgbWFya3VwIG5hbWVzIHdoZXJlIHRoaXMgaXMgbm90IGxlZ2FsLCB0aGlzIGlzCisgICAgYSBwcm9ibGVtIGluIHRoZSBjdXJyZW50IHZlcnNpb24sIGluIHByYWN0aWNlIGF2b2lkIHVzaW5nIG5vbi1hc2NpaQorICAgIGNoYXJhY3RlcnMgZm9yIHRhZyBvciBhdHRyaWJ1dGUgbmFtZXMpLiBBIHNwZWNpYWwgImFzY2lpIiBlbmNvZGluZyBuYW1lCisgICAgaXMgdXNlZCB0byBzYXZlIGRvY3VtZW50cyB0byBhIHB1cmUgYXNjaWkgZm9ybSBjYW4gYmUgdXNlZCB3aGVuCisgICAgcG9ydGFiaWxpdHkgaXMgcmVhbGx5IGNydWNpYWw8L2xpPgorPC9vbD4KKworPHA+SGVyZSBhcmUgYSBmZXcgZXhhbXBsZXMgYmFzZWQgb24gdGhlIHNhbWUgdGVzdCBkb2N1bWVudDo8L3A+Cis8cHJlPn4vWE1MIC0mZ3Q7IC4veG1sbGludCBpc29sYXQxIAorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Jmd0OworJmx0O3Ryw6hzJmd0O2zDoCZsdDsvdHLDqHMmZ3Q7Cit+L1hNTCAtJmd0OyAuL3htbGxpbnQgLS1lbmNvZGUgVVRGLTggaXNvbGF0MSAKKyZsdDs/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8mZ3Q7CismbHQ7dHLDg8KocyZndDtsw4MgJm5ic3A7Jmx0Oy90csODwqhzJmd0Oworfi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPlRoZSBzYW1lIHByb2Nlc3NpbmcgaXMgYXBwbGllZCAoYW5kIHJldXNlIG1vc3Qgb2YgdGhlIGNvZGUpIGZvciBIVE1MIEkxOE4KK3Byb2Nlc3NpbmcuIExvb2tpbmcgdXAgYW5kIG1vZGlmeWluZyB0aGUgY29udGVudCBlbmNvZGluZyBpcyBhIGJpdCBtb3JlCitkaWZmaWN1bHQgc2luY2UgaXQgaXMgbG9jYXRlZCBpbiBhICZsdDttZXRhJmd0OyB0YWcgdW5kZXIgdGhlICZsdDtoZWFkJmd0OywKK3NvIGEgY291cGxlIG9mIGZ1bmN0aW9ucyBodG1sR2V0TWV0YUVuY29kaW5nKCkgYW5kIGh0bWxTZXRNZXRhRW5jb2RpbmcoKSBoYXZlCitiZWVuIHByb3ZpZGVkLiBUaGUgcGFyc2VyIGFsc28gYXR0ZW1wdHMgdG8gc3dpdGNoIGVuY29kaW5nIG9uIHRoZSBmbHkgd2hlbgorZGV0ZWN0aW5nIHN1Y2ggYSB0YWcgb24gaW5wdXQuIEV4Y2VwdCBmb3IgdGhhdCB0aGUgcHJvY2Vzc2luZyBpcyB0aGUgc2FtZQorKGFuZCBhZ2FpbiByZXVzZXMgdGhlIHNhbWUgY29kZSkuPC9wPgorCis8aDM+PGEgbmFtZT0iRGVmYXVsdCI+RGVmYXVsdCBzdXBwb3J0ZWQgZW5jb2RpbmdzPC9hPjwvaDM+CisKKzxwPmxpYnhtbDIgaGFzIGEgc2V0IG9mIGRlZmF1bHQgY29udmVydGVycyBmb3IgdGhlIGZvbGxvd2luZyBlbmNvZGluZ3MKKyhsb2NhdGVkIGluIGVuY29kaW5nLmMpOjwvcD4KKzxvbD4KKyAgPGxpPlVURi04IGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0IChudWxsIGhhbmRsZXJzKTwvbGk+CisgIDxsaT5VVEYtMTYsIGJvdGggbGl0dGxlIGFuZCBiaWcgZW5kaWFuPC9saT4KKyAgPGxpPklTTy1MYXRpbi0xIChJU08tODg1OS0xKSBjb3ZlcmluZyBtb3N0IHdlc3Rlcm4gbGFuZ3VhZ2VzPC9saT4KKyAgPGxpPkFTQ0lJLCB1c2VmdWwgbW9zdGx5IGZvciBzYXZpbmc8L2xpPgorICA8bGk+SFRNTCwgYSBzcGVjaWZpYyBoYW5kbGVyIGZvciB0aGUgY29udmVyc2lvbiBvZiBVVEYtOCB0byBBU0NJSSB3aXRoIEhUTUwKKyAgICBwcmVkZWZpbmVkIGVudGl0aWVzIGxpa2UgJmFtcDtjb3B5OyBmb3IgdGhlIENvcHlyaWdodCBzaWduLjwvbGk+Cis8L29sPgorCis8cD5Nb3JlIG92ZXIgd2hlbiBjb21waWxlZCBvbiBhbiBVbml4IHBsYXRmb3JtIHdpdGggaWNvbnYgc3VwcG9ydCB0aGUgZnVsbAorc2V0IG9mIGVuY29kaW5ncyBzdXBwb3J0ZWQgYnkgaWNvbnYgY2FuIGJlIGluc3RhbnRseSBiZSB1c2VkIGJ5IGxpYnhtbC4gT24gYQorbGludXggbWFjaGluZSB3aXRoIGdsaWJjLTIuMSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZW5jb2RpbmdzIGFuZCBhbGlhc2VzIGZpbGwKKzMgZnVsbCBwYWdlcywgYW5kIGluY2x1ZGUgVUNTLTQsIHRoZSBmdWxsIHNldCBvZiBJU08tTGF0aW4gZW5jb2RpbmdzLCBhbmQgdGhlCit2YXJpb3VzIEphcGFuZXNlIG9uZXMuPC9wPgorCis8cD5UbyBjb252ZXJ0IGZyb20gdGhlIFVURi04IHZhbHVlcyByZXR1cm5lZCBmcm9tIHRoZSBBUEkgdG8gYW5vdGhlciBlbmNvZGluZwordGhlbiBpdCBpcyBwb3NzaWJsZSB0byB1c2UgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGZyb20gPGEKK2hyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwiPnRoZSBlbmNvZGluZyBtb2R1bGU8L2E+IGxpa2UgPGEKK2hyZWY9Imh0bWwvbGlieG1sLWVuY29kaW5nLmh0bWwjVVRGOFRvaXNvbGF0MSI+VVRGOFRvaXNvbGF0MTwvYT4sIG9yIHVzZSB0aGUKK1BPU0lYIDxhCitocmVmPSJodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL2ljb252Lmh0bWwiPmljb252KCk8L2E+CitBUEkgZGlyZWN0bHkuPC9wPgorCis8aDQ+RW5jb2RpbmcgYWxpYXNlczwvaDQ+CisKKzxwPkZyb20gMi4yLjMsIGxpYnhtbDIgaGFzIHN1cHBvcnQgdG8gcmVnaXN0ZXIgZW5jb2RpbmcgbmFtZXMgYWxpYXNlcy4gVGhlCitnb2FsIGlzIHRvIGJlIGFibGUgdG8gcGFyc2UgZG9jdW1lbnQgd2hvc2UgZW5jb2RpbmcgaXMgc3VwcG9ydGVkIGJ1dCB3aGVyZQordGhlIG5hbWUgZGlmZmVycyAoZm9yIGV4YW1wbGUgZnJvbSB0aGUgZGVmYXVsdCBzZXQgb2YgbmFtZXMgYWNjZXB0ZWQgYnkKK2ljb252KS4gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYWxsb3cgdG8gcmVnaXN0ZXIgYW5kIGhhbmRsZSBuZXcgYWxpYXNlcyBmb3IKK2V4aXN0aW5nIGVuY29kaW5ncy4gT25jZSByZWdpc3RlcmVkIGxpYnhtbDIgd2lsbCBhdXRvbWF0aWNhbGx5IGxvb2t1cCB0aGUKK2FsaWFzZXMgd2hlbiBoYW5kbGluZyBhIGRvY3VtZW50OjwvcD4KKzx1bD4KKyAgPGxpPmludCB4bWxBZGRFbmNvZGluZ0FsaWFzKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmFsaWFzKTs8L2xpPgorICA8bGk+aW50IHhtbERlbEVuY29kaW5nQWxpYXMoY29uc3QgY2hhciAqYWxpYXMpOzwvbGk+CisgIDxsaT5jb25zdCBjaGFyICogeG1sR2V0RW5jb2RpbmdBbGlhcyhjb25zdCBjaGFyICphbGlhcyk7PC9saT4KKyAgPGxpPnZvaWQgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyh2b2lkKTs8L2xpPgorPC91bD4KKworPGgzPjxhIG5hbWU9ImV4dGVuZCI+SG93IHRvIGV4dGVuZCB0aGUgZXhpc3Rpbmcgc3VwcG9ydDwvYT48L2gzPgorCis8cD5XZWxsIGFkZGluZyBzdXBwb3J0IGZvciBuZXcgZW5jb2RpbmcsIG9yIG92ZXJyaWRpbmcgb25lIG9mIHRoZSBlbmNvZGVycworKGFzc3VtaW5nIGl0IGlzIGJ1Z2d5KSBzaG91bGQgbm90IGJlIGhhcmQsIGp1c3Qgd3JpdGUgaW5wdXQgYW5kIG91dHB1dAorY29udmVyc2lvbiByb3V0aW5lcyB0by9mcm9tIFVURi04LCBhbmQgcmVnaXN0ZXIgdGhlbSB1c2luZworeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcihuYW1lLCB4eHhUb1VURjgsIFVURjhUb3h4eCksICBhbmQgdGhleSB3aWxsIGJlCitjYWxsZWQgYXV0b21hdGljYWxseSBpZiB0aGUgcGFyc2VyKHMpIGVuY291bnRlciBzdWNoIGFuIGVuY29kaW5nIG5hbWUKKyhyZWdpc3RlciBpdCB1cHBlcmNhc2UsIHRoaXMgd2lsbCBoZWxwKS4gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBlbmNvZGVycywKK3RoZWlyIGFyZ3VtZW50cyBhbmQgZXhwZWN0ZWQgcmV0dXJuIHZhbHVlcyBhcmUgZGVzY3JpYmVkIGluIHRoZSBlbmNvZGluZy5oCitoZWFkZXIuPC9wPgorCis8aDI+PGEgbmFtZT0iSU8iPkkvTyBJbnRlcmZhY2VzPC9hPjwvaDI+CisKKzxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPgorPG9sPgorICA8bGk+PGEgaHJlZj0iI0dlbmVyYWwxIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjYmFzaWMiPlRoZSBiYXNpYyBidWZmZXIgdHlwZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0lucHV0Ij5JbnB1dCBJL08gaGFuZGxlcnM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNPdXRwdXQiPk91dHB1dCBJL08gaGFuZGxlcnM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNlbnRpdGllcyI+VGhlIGVudGl0aWVzIGxvYWRlcjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0V4YW1wbGUyIj5FeGFtcGxlIG9mIGN1c3RvbWl6ZWQgSS9PPC9hPjwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iR2VuZXJhbDEiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9oMz4KKworPHA+VGhlIG1vZHVsZSA8Y29kZT48YQoraHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbGlvLmh0bWwiPnhtbElPLmg8L2E+PC9jb2RlPiBwcm92aWRlcwordGhlIGludGVyZmFjZXMgdG8gdGhlIGxpYnhtbDIgSS9PIHN5c3RlbS4gVGhpcyBjb25zaXN0cyBvZiA0IG1haW4gcGFydHM6PC9wPgorPHVsPgorICA8bGk+RW50aXRpZXMgbG9hZGVyLCB0aGlzIGlzIGEgcm91dGluZSB3aGljaCB0cmllcyB0byBmZXRjaCB0aGUgZW50aXRpZXMKKyAgICAoZmlsZXMpIGJhc2VkIG9uIHRoZWlyIFBVQkxJQyBhbmQgU1lTVEVNIGlkZW50aWZpZXJzLiBUaGUgZGVmYXVsdCBsb2FkZXIKKyAgICBkb24ndCBsb29rIGF0IHRoZSBwdWJsaWMgaWRlbnRpZmllciBzaW5jZSBsaWJ4bWwyIGRvIG5vdCBtYWludGFpbiBhCisgICAgY2F0YWxvZy4gWW91IGNhbiByZWRlZmluZSB5b3Ugb3duIGVudGl0eSBsb2FkZXIgYnkgdXNpbmcKKyAgICA8Y29kZT54bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpPC9jb2RlPiBhbmQKKyAgICA8Y29kZT54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpPC9jb2RlPi4gPGEgaHJlZj0iI2VudGl0aWVzIj5DaGVjayB0aGUKKyAgICBleGFtcGxlPC9hPi48L2xpPgorICA8bGk+SW5wdXQgSS9PIGJ1ZmZlcnMgd2hpY2ggYXJlIGEgY29tbW9kaXR5IHN0cnVjdHVyZSB1c2VkIGJ5IHRoZSBwYXJzZXIocykKKyAgICBpbnB1dCBsYXllciB0byBoYW5kbGUgZmV0Y2hpbmcgdGhlIGluZm9ybWF0aW9uIHRvIGZlZWQgdGhlIHBhcnNlci4gVGhpcworICAgIHByb3ZpZGVzIGJ1ZmZlcmluZyBhbmQgaXMgYWxzbyBhIHBsYWNlaG9sZGVyIHdoZXJlIHRoZSBlbmNvZGluZworICAgIGNvbnZlcnRlcnMgdG8gVVRGOCBhcmUgcGlnZ3ktYmFja2VkLjwvbGk+CisgIDxsaT5PdXRwdXQgSS9PIGJ1ZmZlcnMgYXJlIHNpbWlsYXIgdG8gdGhlIElucHV0IG9uZXMgYW5kIGZ1bGZpbGwgc2ltaWxhcgorICAgIHRhc2sgYnV0IHdoZW4gZ2VuZXJhdGluZyBhIHNlcmlhbGl6YXRpb24gZnJvbSBhIHRyZWUuPC9saT4KKyAgPGxpPkEgbWVjaGFuaXNtIHRvIHJlZ2lzdGVyIHNldHMgb2YgSS9PIGNhbGxiYWNrcyBhbmQgYXNzb2NpYXRlIHRoZW0gd2l0aAorICAgIHNwZWNpZmljIG5hbWluZyBzY2hlbWVzIGxpa2UgdGhlIHByb3RvY29sIHBhcnQgb2YgdGhlIFVSSXMuCisgICAgPHA+VGhpcyBhZmZlY3QgdGhlIGRlZmF1bHQgSS9PIG9wZXJhdGlvbnMgYW5kIGFsbG93cyB0byB1c2Ugc3BlY2lmaWMgSS9PCisgICAgaGFuZGxlcnMgZm9yIGNlcnRhaW4gbmFtZXMuPC9wPgorICA8L2xpPgorPC91bD4KKworPHA+VGhlIGdlbmVyYWwgbWVjaGFuaXNtIHVzZWQgd2hlbiBsb2FkaW5nIGh0dHA6Ly9ycG1maW5kLm5ldC94bWwuaHRtbCBmb3IKK2V4YW1wbGUgaW4gdGhlIEhUTUwgcGFyc2VyIGlzIHRoZSBmb2xsb3dpbmc6PC9wPgorPG9sPgorICA8bGk+VGhlIGRlZmF1bHQgZW50aXR5IGxvYWRlciBjYWxscyA8Y29kZT54bWxOZXdJbnB1dEZyb21GaWxlKCk8L2NvZGU+IHdpdGgKKyAgICB0aGUgcGFyc2luZyBjb250ZXh0IGFuZCB0aGUgVVJJIHN0cmluZy48L2xpPgorICA8bGk+dGhlIFVSSSBzdHJpbmcgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBleGlzdGluZyByZWdpc3RlcmVkIGhhbmRsZXJzCisgICAgdXNpbmcgdGhlaXIgbWF0Y2goKSBjYWxsYmFjayBmdW5jdGlvbiwgaWYgdGhlIEhUVFAgbW9kdWxlIHdhcyBjb21waWxlZAorICAgIGluLCBpdCBpcyByZWdpc3RlcmVkIGFuZCBpdHMgbWF0Y2goKSBmdW5jdGlvbiB3aWxsIHN1Y2NlZWRzPC9saT4KKyAgPGxpPnRoZSBvcGVuKCkgZnVuY3Rpb24gb2YgdGhlIGhhbmRsZXIgaXMgY2FsbGVkIGFuZCBpZiBzdWNjZXNzZnVsIHdpbGwKKyAgICByZXR1cm4gYW4gSS9PIElucHV0IGJ1ZmZlcjwvbGk+CisgIDxsaT50aGUgcGFyc2VyIHdpbGwgdGhlIHN0YXJ0IHJlYWRpbmcgZnJvbSB0aGlzIGJ1ZmZlciBhbmQgcHJvZ3Jlc3NpdmVseQorICAgIGZldGNoIGluZm9ybWF0aW9uIGZyb20gdGhlIHJlc291cmNlLCBjYWxsaW5nIHRoZSByZWFkKCkgZnVuY3Rpb24gb2YgdGhlCisgICAgaGFuZGxlciB1bnRpbCB0aGUgcmVzb3VyY2UgaXMgZXhoYXVzdGVkPC9saT4KKyAgPGxpPmlmIGFuIGVuY29kaW5nIGNoYW5nZSBpcyBkZXRlY3RlZCBpdCB3aWxsIGJlIGluc3RhbGxlZCBvbiB0aGUgaW5wdXQKKyAgICBidWZmZXIsIHByb3ZpZGluZyBidWZmZXJpbmcgYW5kIGVmZmljaWVudCB1c2Ugb2YgdGhlIGNvbnZlcnNpb24KKyAgcm91dGluZXM8L2xpPgorICA8bGk+b25jZSB0aGUgcGFyc2VyIGhhcyBmaW5pc2hlZCwgdGhlIGNsb3NlKCkgZnVuY3Rpb24gb2YgdGhlIGhhbmRsZXIgaXMKKyAgICBjYWxsZWQgb25jZSBhbmQgdGhlIElucHV0IGJ1ZmZlciBhbmQgYXNzb2NpYXRlZCByZXNvdXJjZXMgYXJlCisgIGRlYWxsb2NhdGVkLjwvbGk+Cis8L29sPgorCis8cD5UaGUgdXNlciBkZWZpbmVkIGNhbGxiYWNrcyBhcmUgY2hlY2tlZCBmaXJzdCB0byBhbGxvdyBvdmVycmlkaW5nIG9mIHRoZQorZGVmYXVsdCBsaWJ4bWwyIEkvTyByb3V0aW5lcy48L3A+CisKKzxoMz48YSBuYW1lPSJiYXNpYyI+VGhlIGJhc2ljIGJ1ZmZlciB0eXBlPC9hPjwvaDM+CisKKzxwPkFsbCB0aGUgYnVmZmVyIG1hbmlwdWxhdGlvbiBoYW5kbGluZyBpcyBkb25lIHVzaW5nIHRoZQorPGNvZGU+eG1sQnVmZmVyPC9jb2RlPiB0eXBlIGRlZmluZSBpbiA8Y29kZT48YQoraHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXRyZWUuaHRtbCI+dHJlZS5oPC9hPiA8L2NvZGU+d2hpY2ggaXMgYQorcmVzaXphYmxlIG1lbW9yeSBidWZmZXIuIFRoZSBidWZmZXIgYWxsb2NhdGlvbiBzdHJhdGVneSBjYW4gYmUgc2VsZWN0ZWQgdG8gYmUKK2VpdGhlciBiZXN0LWZpdCBvciB1c2UgYW4gZXhwb25lbnRpYWwgZG91Ymxpbmcgb25lIChDUFUgdnMuIG1lbW9yeSB1c2UKK3RyYWRlLW9mZikuIFRoZSB2YWx1ZXMgYXJlIDxjb2RlPlhNTF9CVUZGRVJfQUxMT0NfRVhBQ1Q8L2NvZGU+IGFuZAorPGNvZGU+WE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVDwvY29kZT4sIGFuZCBjYW4gYmUgc2V0IGluZGl2aWR1YWxseSBvciBvbiBhCitzeXN0ZW0gd2lkZSBiYXNpcyB1c2luZyA8Y29kZT54bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lKCk8L2NvZGU+LiBBIG51bWJlcgorb2YgZnVuY3Rpb25zIGFsbG93cyB0byBtYW5pcHVsYXRlIGJ1ZmZlcnMgd2l0aCBuYW1lcyBzdGFydGluZyB3aXRoIHRoZQorPGNvZGU+eG1sQnVmZmVyLi4uPC9jb2RlPiBwcmVmaXguPC9wPgorCis8aDM+PGEgbmFtZT0iSW5wdXQiPklucHV0IEkvTyBoYW5kbGVyczwvYT48L2gzPgorCis8cD5BbiBJbnB1dCBJL08gaGFuZGxlciBpcyBhIHNpbXBsZSBzdHJ1Y3R1cmUKKzxjb2RlPnhtbFBhcnNlcklucHV0QnVmZmVyPC9jb2RlPiBjb250YWluaW5nIGEgY29udGV4dCBhc3NvY2lhdGVkIHRvIHRoZQorcmVzb3VyY2UgKGZpbGUgZGVzY3JpcHRvciwgb3IgcG9pbnRlciB0byBhIHByb3RvY29sIGhhbmRsZXIpLCB0aGUgcmVhZCgpIGFuZAorY2xvc2UoKSBjYWxsYmFja3MgdG8gdXNlIGFuZCBhbiB4bWxCdWZmZXIuIEFuZCBleHRyYSB4bWxCdWZmZXIgYW5kIGEgY2hhcnNldAorZW5jb2RpbmcgaGFuZGxlciBhcmUgYWxzbyBwcmVzZW50IHRvIHN1cHBvcnQgY2hhcnNldCBjb252ZXJzaW9uIHdoZW4KK25lZWRlZC48L3A+CisKKzxoMz48YSBuYW1lPSJPdXRwdXQiPk91dHB1dCBJL08gaGFuZGxlcnM8L2E+PC9oMz4KKworPHA+QW4gT3V0cHV0IGhhbmRsZXIgPGNvZGU+eG1sT3V0cHV0QnVmZmVyPC9jb2RlPiBpcyBjb21wbGV0ZWx5IHNpbWlsYXIgdG8gYW4KK0lucHV0IG9uZSBleGNlcHQgdGhlIGNhbGxiYWNrcyBhcmUgd3JpdGUoKSBhbmQgY2xvc2UoKS48L3A+CisKKzxoMz48YSBuYW1lPSJlbnRpdGllcyI+VGhlIGVudGl0aWVzIGxvYWRlcjwvYT48L2gzPgorCis8cD5UaGUgZW50aXR5IGxvYWRlciByZXNvbHZlcyByZXF1ZXN0cyBmb3IgbmV3IGVudGl0aWVzIGFuZCBjcmVhdGUgaW5wdXRzIGZvcgordGhlIHBhcnNlci4gQ3JlYXRpbmcgYW4gaW5wdXQgZnJvbSBhIGZpbGVuYW1lIG9yIGFuIFVSSSBzdHJpbmcgaXMgZG9uZQordGhyb3VnaCB0aGUgeG1sTmV3SW5wdXRGcm9tRmlsZSgpIHJvdXRpbmUuICBUaGUgZGVmYXVsdCBlbnRpdHkgbG9hZGVyIGRvIG5vdAoraGFuZGxlIHRoZSBQVUJMSUMgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggYW4gZW50aXR5IChpZiBhbnkpLiBTbyBpdCBqdXN0CitjYWxscyB4bWxOZXdJbnB1dEZyb21GaWxlKCkgd2l0aCB0aGUgU1lTVEVNIGlkZW50aWZpZXIgKHdoaWNoIGlzIG1hbmRhdG9yeSBpbgorWE1MKS48L3A+CisKKzxwPklmIHlvdSB3YW50IHRvIGhvb2sgdXAgYSBjYXRhbG9nIG1lY2hhbmlzbSB0aGVuIHlvdSBzaW1wbHkgbmVlZCB0bworb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZW50aXR5IGxvYWRlciwgaGVyZSBpcyBhbiBleGFtcGxlOjwvcD4KKzxwcmU+I2luY2x1ZGUgJmx0O2xpYnhtbC94bWxJTy5oJmd0OworCit4bWxFeHRlcm5hbEVudGl0eUxvYWRlciBkZWZhdWx0TG9hZGVyID0gTlVMTDsKKworeG1sUGFyc2VySW5wdXRQdHIKK3htbE15RXh0ZXJuYWxFbnRpdHlMb2FkZXIoY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICpJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXQ7CisgICAgY29uc3QgY2hhciAqZmlsZUlEID0gTlVMTDsKKyAgICAvKiBsb29rdXAgZm9yIHRoZSBmaWxlSUQgZGVwZW5kaW5nIG9uIElEICovCisKKyAgICByZXQgPSB4bWxOZXdJbnB1dEZyb21GaWxlKGN0eHQsIGZpbGVJRCk7CisgICAgaWYgKHJldCAhPSBOVUxMKQorICAgICAgICByZXR1cm4ocmV0KTsKKyAgICBpZiAoZGVmYXVsdExvYWRlciAhPSBOVUxMKQorICAgICAgICByZXQgPSBkZWZhdWx0TG9hZGVyKFVSTCwgSUQsIGN0eHQpOworICAgIHJldHVybihyZXQpOworfQorCitpbnQgbWFpbiguLikgeworICAgIC4uLgorCisgICAgLyoKKyAgICAgKiBJbnN0YWxsIG91ciBvd24gZW50aXR5IGxvYWRlcgorICAgICAqLworICAgIGRlZmF1bHRMb2FkZXIgPSB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpOworICAgIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKHhtbE15RXh0ZXJuYWxFbnRpdHlMb2FkZXIpOworCisgICAgLi4uCit9PC9wcmU+CisKKzxoMz48YSBuYW1lPSJFeGFtcGxlMiI+RXhhbXBsZSBvZiBjdXN0b21pemVkIEkvTzwvYT48L2gzPgorCis8cD5UaGlzIGV4YW1wbGUgY29tZSBmcm9tIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8wNzA4Lmh0bWwiPmEKK3JlYWwgdXNlIGNhc2U8L2E+LCAgeG1sRG9jRHVtcCgpIGNsb3NlcyB0aGUgRklMRSAqIHBhc3NlZCBieSB0aGUgYXBwbGljYXRpb24KK2FuZCB0aGlzIHdhcyBhIHByb2JsZW0uIFRoZSA8YQoraHJlZj0iaHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLzA3MTEuaHRtbCI+c29sdXRpb248L2E+IHdhcyB0byByZWRlZmluZSBhCituZXcgb3V0cHV0IGhhbmRsZXIgd2l0aCB0aGUgY2xvc2luZyBjYWxsIGRlYWN0aXZhdGVkOjwvcD4KKzxvbD4KKyAgPGxpPkZpcnN0IGRlZmluZSBhIG5ldyBJL08gb3V0cHV0IGFsbG9jYXRvciB3aGVyZSB0aGUgb3V0cHV0IGRvbid0IGNsb3NlCisgICAgdGhlIGZpbGU6CisgICAgPHByZT54bWxPdXRwdXRCdWZmZXJQdHIKK3htbE91dHB1dEJ1ZmZlckNyZWF0ZU93bihGSUxFICpmaWxlLCB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXIpIHsKKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3htbE91dHB1dEJ1ZmZlclB0ciByZXQ7CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmICh4bWxPdXRwdXRDYWxsYmFja0luaXRpYWxpemVkID09IDApCismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MoKTsKKworJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgKGZpbGUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0ID0geG1sQWxsb2NPdXRwdXRCdWZmZXIoZW5jb2Rlcik7CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAocmV0ICE9IE5VTEwpIHsKKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldC0mZ3Q7Y29udGV4dCA9IGZpbGU7CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXQtJmd0O3dyaXRlY2FsbGJhY2sgPSB4bWxGaWxlV3JpdGU7CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXQtJmd0O2Nsb3NlY2FsbGJhY2sgPSBOVUxMOyAgLyogTm8gY2xvc2UgY2FsbGJhY2sgKi8KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO30KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybihyZXQpOworfSA8L3ByZT4KKyAgPC9saT4KKyAgPGxpPkFuZCB0aGVuIHVzZSBpdCB0byBzYXZlIHRoZSBkb2N1bWVudDoKKyAgICA8cHJlPkZJTEUgKmY7Cit4bWxPdXRwdXRCdWZmZXJQdHIgb3V0cHV0OworeG1sRG9jUHRyIGRvYzsKK2ludCByZXM7CisKK2YgPSAuLi4KK2RvYyA9IC4uLi4KKworb3V0cHV0ID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlT3duKGYsIE5VTEwpOworcmVzID0geG1sU2F2ZUZpbGVUbyhvdXRwdXQsIGRvYywgTlVMTCk7CisgICAgPC9wcmU+CisgIDwvbGk+Cis8L29sPgorCis8aDI+PGEgbmFtZT0iQ2F0YWxvZyI+Q2F0YWxvZyBzdXBwb3J0PC9hPjwvaDI+CisKKzxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPgorPG9sPgorICA8bGk+PGEgaHJlZj0iR2VuZXJhbDIiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNkZWZpbml0aW9uIj5UaGUgZGVmaW5pdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1NpbXBsZSI+VXNpbmcgY2F0YWxvZ3M8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNTb21lIj5Tb21lIGV4YW1wbGVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjcmVmZXJlbmNlIj5Ib3cgdG8gdHVuZSAgY2F0YWxvZyB1c2FnZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI3ZhbGlkYXRlIj5Ib3cgdG8gZGVidWcgY2F0YWxvZyBwcm9jZXNzaW5nPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjRGVjbGFyaW5nIj5Ib3cgdG8gY3JlYXRlIGFuZCBtYWludGFpbiBjYXRhbG9nczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2ltcGxlbWVudG8iPlRoZSBpbXBsZW1lbnRvciBjb3JuZXIgcXVpY2sgcmV2aWV3IG9mIHRoZQorICBBUEk8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNPdGhlciI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvbGk+Cis8L29sPgorCis8aDM+PGEgbmFtZT0iR2VuZXJhbDIiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9oMz4KKworPHA+V2hhdCBpcyBhIGNhdGFsb2c/IEJhc2ljYWxseSBpdCdzIGEgbG9va3VwIG1lY2hhbmlzbSB1c2VkIHdoZW4gYW4gZW50aXR5CisoYSBmaWxlIG9yIGEgcmVtb3RlIHJlc291cmNlKSByZWZlcmVuY2VzIGFub3RoZXIgZW50aXR5LiBUaGUgY2F0YWxvZyBsb29rdXAKK2lzIGluc2VydGVkIGJldHdlZW4gdGhlIG1vbWVudCB0aGUgcmVmZXJlbmNlIGlzIHJlY29nbml6ZWQgYnkgdGhlIHNvZnR3YXJlCisoWE1MIHBhcnNlciwgc3R5bGVzaGVldCBwcm9jZXNzaW5nLCBvciBldmVuIGltYWdlcyByZWZlcmVuY2VkIGZvciBpbmNsdXNpb24KK2luIGEgcmVuZGVyaW5nKSBhbmQgdGhlIHRpbWUgd2hlcmUgbG9hZGluZyB0aGF0IHJlc291cmNlIGlzIGFjdHVhbGx5CitzdGFydGVkLjwvcD4KKworPHA+SXQgaXMgYmFzaWNhbGx5IHVzZWQgZm9yIDMgdGhpbmdzOjwvcD4KKzx1bD4KKyAgPGxpPm1hcHBpbmcgZnJvbSAibG9naWNhbCIgbmFtZXMsIHRoZSBwdWJsaWMgaWRlbnRpZmllcnMgYW5kIGEgbW9yZQorICAgIGNvbmNyZXRlIG5hbWUgdXNhYmxlIGZvciBkb3dubG9hZCAoYW5kIFVSSSkuIEZvciBleGFtcGxlIGl0IGNhbiBhc3NvY2lhdGUKKyAgICB0aGUgbG9naWNhbCBuYW1lCisgICAgPHA+Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiI8L3A+CisgICAgPHA+b2YgdGhlIERvY0Jvb2sgNC4xLjIgWE1MIERURCB3aXRoIHRoZSBhY3R1YWwgVVJMIHdoZXJlIGl0IGNhbiBiZQorICAgIGRvd25sb2FkZWQ8L3A+CisgICAgPHA+aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQ8L3A+CisgIDwvbGk+CisgIDxsaT5yZW1hcHBpbmcgZnJvbSBhIGdpdmVuIFVSTCB0byBhbm90aGVyIG9uZSwgbGlrZSBhbiBIVFRQIGluZGlyZWN0aW9uCisgICAgc2F5aW5nIHRoYXQKKyAgICA8cD4iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZXMvdHIueHNsIjwvcD4KKyAgICA8cD5zaG91bGQgcmVhbGx5IGJlIGxvb2tlZCBhdDwvcD4KKyAgICA8cD4iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZXMvZW50aXR5L3N0eWxlc2hlZXRzL2Jhc2UvdHIueHNsIjwvcD4KKyAgPC9saT4KKyAgPGxpPnByb3ZpZGluZyBhIGxvY2FsIGNhY2hlIG1lY2hhbmlzbSBhbGxvd2luZyB0byBsb2FkIHRoZSBlbnRpdGllcworICAgIGFzc29jaWF0ZWQgdG8gcHVibGljIGlkZW50aWZpZXJzIG9yIHJlbW90ZSByZXNvdXJjZXMsIHRoaXMgaXMgYSByZWFsbHkKKyAgICBpbXBvcnRhbnQgZmVhdHVyZSBmb3IgYW55IHNpZ25pZmljYW50IGRlcGxveW1lbnQgb2YgWE1MIG9yIFNHTUwgc2luY2UgaXQKKyAgICBhbGxvd3MgdG8gYXZvaWQgdGhlIGFsZWFzIGFuZCBkZWxheXMgYXNzb2NpYXRlZCB0byBmZXRjaGluZyByZW1vdGUKKyAgICByZXNvdXJjZXMuPC9saT4KKzwvdWw+CisKKzxoMz48YSBuYW1lPSJkZWZpbml0aW9uIj5UaGUgZGVmaW5pdGlvbnM8L2E+PC9oMz4KKworPHA+TGlieG1sLCBhcyBvZiAyLjQuMyBpbXBsZW1lbnRzIDIga2luZCBvZiBjYXRhbG9nczo8L3A+Cis8dWw+CisgIDxsaT50aGUgb2xkZXIgU0dNTCBjYXRhbG9ncywgdGhlIG9mZmljaWFsIHNwZWMgaXMgIFNHTUwgT3BlbiBUZWNobmljYWwKKyAgICBSZXNvbHV0aW9uIFRSOTQwMToxOTk3LCBidXQgaXMgYmV0dGVyIHVuZGVyc3Rvb2QgYnkgcmVhZGluZyA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuamNsYXJrLmNvbS9zcC9jYXRhbG9nLmh0bSI+dGhlIFNQIENhdGFsb2cgcGFnZTwvYT4gZnJvbQorICAgIEphbWVzIENsYXJrLiBUaGlzIGlzIHJlbGF0aXZlbHkgb2xkIGFuZCBub3QgdGhlIHByZWZlcnJlZCBtb2RlIG9mCisgICAgb3BlcmF0aW9uIG9mIGxpYnhtbC48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9zcGVjLmh0bWwiPlhNTAorICAgIENhdGFsb2dzPC9hPiBpcyBmYXIgbW9yZSBmbGV4aWJsZSwgbW9yZSByZWNlbnQsIHVzZXMgYW4gWE1MIHN5bnRheCBhbmQKKyAgICBzaG91bGQgc2NhbGUgcXVpdGUgYmV0dGVyLiBUaGlzIGlzIHRoZSBkZWZhdWx0IG9wdGlvbiBvZiBsaWJ4bWwuPC9saT4KKzwvdWw+CisKKzxwPjwvcD4KKworPGgzPjxhIG5hbWU9IlNpbXBsZSI+VXNpbmcgY2F0YWxvZzwvYT48L2gzPgorCis8cD5JbiBhIG5vcm1hbCBlbnZpcm9ubWVudCBsaWJ4bWwyIHdpbGwgYnkgZGVmYXVsdCBjaGVjayB0aGUgcHJlc2VuY2Ugb2YgYQorY2F0YWxvZyBpbiAvZXRjL3htbC9jYXRhbG9nLCBhbmQgYXNzdW1pbmcgaXQgaGFzIGJlZW4gY29ycmVjdGx5IHBvcHVsYXRlZCwKK3RoZSBwcm9jZXNzaW5nIGlzIGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQgdG8gdGhlIGRvY3VtZW50IHVzZXIuIFRvIHRha2UgYQorY29uY3JldGUgZXhhbXBsZSwgc3VwcG9zZSB5b3UgYXJlIGF1dGhvcmluZyBhIERvY0Jvb2sgZG9jdW1lbnQsIHRoaXMgb25lCitzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIERPQ1RZUEUgZGVmaW5pdGlvbjo8L3A+Cis8cHJlPiZsdDs/eG1sIHZlcnNpb249JzEuMCc/Jmd0OworJmx0OyFET0NUWVBFIGJvb2sgUFVCTElDICItLy9Ob3JtYW4gV2Fsc2gvL0RURCBEb2NCayBYTUwgVjMuMS40Ly9FTiIKKyAgICAgICAgICAiaHR0cDovL253YWxzaC5jb20vZG9jYm9vay94bWwvMy4xLjQvZGIzeG1sLmR0ZCImZ3Q7PC9wcmU+CisKKzxwPldoZW4gdmFsaWRhdGluZyB0aGUgZG9jdW1lbnQgd2l0aCBsaWJ4bWwsIHRoZSBjYXRhbG9nIHdpbGwgYmUKK2F1dG9tYXRpY2FsbHkgY29uc3VsdGVkIHRvIGxvb2t1cCB0aGUgcHVibGljIGlkZW50aWZpZXIgIi0vL05vcm1hbiBXYWxzaC8vRFRECitEb2NCayBYTUwgVjMuMS40Ly9FTiIgYW5kIHRoZSBzeXN0ZW0gaWRlbnRpZmllcgorImh0dHA6Ly9ud2Fsc2guY29tL2RvY2Jvb2sveG1sLzMuMS40L2RiM3htbC5kdGQiLCBhbmQgaWYgdGhlc2UgZW50aXRpZXMgaGF2ZQorYmVlbiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gYW5kIHRoZSBjYXRhbG9ncyBhY3R1YWxseSBwb2ludCB0byB0aGVtLCBsaWJ4bWwKK3dpbGwgZmV0Y2ggdGhlbSBmcm9tIHRoZSBsb2NhbCBkaXNrLjwvcD4KKworPHAgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBSZWFsbHkgZG9uJ3QgdXNlIHRoaXMKK0RPQ1RZUEUgZXhhbXBsZSBpdCdzIGEgcmVhbGx5IG9sZCB2ZXJzaW9uLCBidXQgaXMgZmluZSBhcyBhbiBleGFtcGxlLjwvcD4KKworPHA+TGlieG1sMiB3aWxsIGNoZWNrIHRoZSBjYXRhbG9nIGVhY2ggdGltZSB0aGF0IGl0IGlzIHJlcXVlc3RlZCB0byBsb2FkIGFuCitlbnRpdHksIHRoaXMgaW5jbHVkZXMgRFRELCBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMsIHN0eWxlc2hlZXRzLCBldGMgLi4uIElmCit5b3VyIHN5c3RlbSBpcyBjb3JyZWN0bHkgY29uZmlndXJlZCBhbGwgdGhlIGF1dGhvcmluZyBwaGFzZSBhbmQgcHJvY2Vzc2luZworc2hvdWxkIHVzZSBvbmx5IGxvY2FsIGZpbGVzLCBldmVuIGlmIHlvdXIgZG9jdW1lbnQgc3RheXMgcG9ydGFibGUgYmVjYXVzZSBpdAordXNlcyB0aGUgY2Fub25pY2FsIHB1YmxpYyBhbmQgc3lzdGVtIElELCByZWZlcmVuY2luZyB0aGUgcmVtb3RlIGRvY3VtZW50LjwvcD4KKworPGgzPjxhIG5hbWU9IlNvbWUiPlNvbWUgZXhhbXBsZXM6PC9hPjwvaDM+CisKKzxwPkhlcmUgaXMgYSBjb3VwbGUgb2YgZnJhZ21lbnRzIGZyb20gWE1MIENhdGFsb2dzIHVzZWQgaW4gbGlieG1sMiBlYXJseQorcmVncmVzc2lvbiB0ZXN0cyBpbiA8Y29kZT50ZXN0L2NhdGFsb2dzPC9jb2RlPiA6PC9wPgorPHByZT4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKKyZsdDshRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAKKyAgICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIgorICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiJmd0OworJmx0O2NhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciJmd0OworICAmbHQ7cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCisgICB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIi8mZ3Q7CisuLi48L3ByZT4KKworPHA+VGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIGEgY2F0YWxvZyBmb3IgRG9jQm9vayA0LjEuMiwgWE1MIENhdGFsb2dzIGFyZQord3JpdHRlbiBpbiBYTUwsICB0aGVyZSBpcyBhIHNwZWNpZmljIG5hbWVzcGFjZSBmb3IgY2F0YWxvZyBlbGVtZW50cworInVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciLiBUaGUgZmlyc3QgZW50cnkgaW4gdGhpcworY2F0YWxvZyBpcyBhIDxjb2RlPnB1YmxpYzwvY29kZT4gbWFwcGluZyBpdCBhbGxvd3MgdG8gYXNzb2NpYXRlIGEgUHVibGljCitJZGVudGlmaWVyIHdpdGggYW4gVVJJLjwvcD4KKzxwcmU+Li4uCisgICAgJmx0O3Jld3JpdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKKyAgICAgICAgICAgICAgICAgICByZXdyaXRlUHJlZml4PSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay8iLyZndDsKKy4uLjwvcHJlPgorCis8cD5BIDxjb2RlPnJld3JpdGVTeXN0ZW08L2NvZGU+IGlzIGEgdmVyeSBwb3dlcmZ1bCBpbnN0cnVjdGlvbiwgaXQgc2F5cyB0aGF0CithbnkgVVJJIHN0YXJ0aW5nIHdpdGggYSBnaXZlbiBwcmVmaXggc2hvdWxkIGJlIGxvb2tlZCBhdCBhbm90aGVyICBVUkkKK2NvbnN0cnVjdGVkIGJ5IHJlcGxhY2luZyB0aGUgcHJlZml4IHdpdGggYW4gbmV3IG9uZS4gSW4gZWZmZWN0IHRoaXMgYWN0cyBsaWtlCithIGNhY2hlIHN5c3RlbSBmb3IgYSBmdWxsIGFyZWEgb2YgdGhlIFdlYi4gSW4gcHJhY3RpY2UgaXQgaXMgZXh0cmVtZWx5IHVzZWZ1bAord2l0aCBhIGZpbGUgcHJlZml4IGlmIHlvdSBoYXZlIGluc3RhbGxlZCBhIGNvcHkgb2YgdGhvc2UgcmVzb3VyY2VzIG9uIHlvdXIKK2xvY2FsIHN5c3RlbS48L3A+Cis8cHJlPi4uLgorJmx0O2RlbGVnYXRlUHVibGljIHB1YmxpY0lkU3RhcnRTdHJpbmc9Ii0vL09BU0lTLy9EVEQgWE1MIENhdGFsb2cgLy8iCisgICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sIi8mZ3Q7CismbHQ7ZGVsZWdhdGVQdWJsaWMgcHVibGljSWRTdGFydFN0cmluZz0iLS8vT0FTSVMvL0VOVElUSUVTIERvY0Jvb2sgWE1MIgorICAgICAgICAgICAgICAgIGNhdGFsb2c9ImZpbGU6Ly8vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbCIvJmd0OworJmx0O2RlbGVnYXRlUHVibGljIHB1YmxpY0lkU3RhcnRTdHJpbmc9Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwiCisgICAgICAgICAgICAgICAgY2F0YWxvZz0iZmlsZTovLy91c3Ivc2hhcmUveG1sL2RvY2Jvb2sueG1sIi8mZ3Q7CismbHQ7ZGVsZWdhdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKKyZsdDtkZWxlZ2F0ZVVSSSB1cmlTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJmaWxlOi8vL3Vzci9zaGFyZS94bWwvZG9jYm9vay54bWwiLyZndDsKKy4uLjwvcHJlPgorCis8cD5EZWxlZ2F0aW9uIGlzIHRoZSBjb3JlIGZlYXR1cmVzIHdoaWNoIGFsbG93cyB0byBidWlsZCBhIHRyZWUgb2YgY2F0YWxvZ3MsCitlYXNpZXIgdG8gbWFpbnRhaW4gdGhhbiBhIHNpbmdsZSBjYXRhbG9nLCBiYXNlZCBvbiBQdWJsaWMgSWRlbnRpZmllciwgU3lzdGVtCitJZGVudGlmaWVyIG9yIFVSSSBwcmVmaXhlcyBpdCBpbnN0cnVjdHMgdGhlIGNhdGFsb2cgc29mdHdhcmUgdG8gbG9vayB1cAorZW50cmllcyBpbiBhbm90aGVyIHJlc291cmNlLiBUaGlzIGZlYXR1cmUgYWxsb3cgdG8gYnVpbGQgaGllcmFyY2hpZXMgb2YKK2NhdGFsb2dzLCB0aGUgc2V0IG9mIGVudHJpZXMgcHJlc2VudGVkIHNob3VsZCBiZSBzdWZmaWNpZW50IHRvIHJlZGlyZWN0IHRoZQorcmVzb2x1dGlvbiBvZiBhbGwgRG9jQm9vayByZWZlcmVuY2VzIHRvIHRoZSBzcGVjaWZpYyBjYXRhbG9nIGluCis8Y29kZT4vdXNyL3NoYXJlL3htbC9kb2Nib29rLnhtbDwvY29kZT4gdGhpcyBvbmUgaW4gdHVybiBjb3VsZCBkZWxlZ2F0ZSBhbGwKK3JlZmVyZW5jZXMgZm9yIERvY0Jvb2sgNC4yLjEgdG8gYSBzcGVjaWZpYyBjYXRhbG9nIGluc3RhbGxlZCBhdCB0aGUgc2FtZSB0aW1lCithcyB0aGUgRG9jQm9vayByZXNvdXJjZXMgb24gdGhlIGxvY2FsIG1hY2hpbmUuPC9wPgorCis8aDM+PGEgbmFtZT0icmVmZXJlbmNlIj5Ib3cgdG8gdHVuZSBjYXRhbG9nIHVzYWdlOjwvYT48L2gzPgorCis8cD5UaGUgdXNlciBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IGNhdGFsb2cgYmVoYXZpb3VyIGJ5IHJlZGlyZWN0aW5nIHF1ZXJpZXMKK3RvIGl0cyBvd24gc2V0IG9mIGNhdGFsb2dzLCB0aGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCis8Y29kZT5YTUxfQ0FUQUxPR19GSUxFUzwvY29kZT4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSBsaXN0IG9mIGNhdGFsb2dzLCBhbgorZW1wdHkgb25lIHNob3VsZCBkZWFjdGl2YXRlIGxvYWRpbmcgdGhlIGRlZmF1bHQgPGNvZGU+L2V0Yy94bWwvY2F0YWxvZzwvY29kZT4KK2RlZmF1bHQgY2F0YWxvZzwvcD4KKworPGgzPjxhIG5hbWU9InZhbGlkYXRlIj5Ib3cgdG8gZGVidWcgY2F0YWxvZyBwcm9jZXNzaW5nOjwvYT48L2gzPgorCis8cD5TZXR0aW5nIHVwIHRoZSA8Y29kZT5YTUxfREVCVUdfQ0FUQUxPRzwvY29kZT4gZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbAorbWFrZSBsaWJ4bWwyIG91dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9yIGVhY2ggY2F0YWxvZyBvcGVyYXRpb25zLCBmb3IKK2V4YW1wbGU6PC9wPgorPHByZT5vcmNoaXM6fi9YTUwgLSZndDsgeG1sbGludCAtLW1lbW9yeSAtLW5vb3V0IHRlc3QvZW50Mgord2FybmluZzogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJ0aXRsZS54bWwiCitvcmNoaXM6fi9YTUwgLSZndDsgZXhwb3J0IFhNTF9ERUJVR19DQVRBTE9HPQorb3JjaGlzOn4vWE1MIC0mZ3Q7IHhtbGxpbnQgLS1tZW1vcnkgLS1ub291dCB0ZXN0L2VudDIKK0ZhaWxlZCB0byBwYXJzZSBjYXRhbG9nIC9ldGMveG1sL2NhdGFsb2cKK0ZhaWxlZCB0byBwYXJzZSBjYXRhbG9nIC9ldGMveG1sL2NhdGFsb2cKK3dhcm5pbmc6IGZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSAidGl0bGUueG1sIgorQ2F0YWxvZ3MgY2xlYW51cAorb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPgorCis8cD5UaGUgdGVzdC9lbnQyIHJlZmVyZW5jZXMgYW4gZW50aXR5LCBydW5uaW5nIHRoZSBwYXJzZXIgZnJvbSBtZW1vcnkgbWFrZXMKK3RoZSBiYXNlIFVSSSB1bmF2YWlsYWJsZSBhbmQgdGhlIHRoZSAidGl0bGUueG1sIiBlbnRpdHkgY2Fubm90IGJlIGxvYWRlZC4KK1NldHRpbmcgdXAgdGhlIGRlYnVnIGVudmlyb25tZW50IHZhcmlhYmxlIGFsbG93cyB0byBkZXRlY3QgdGhhdCBhbiBhdHRlbXB0IGlzCittYWRlIHRvIGxvYWQgdGhlIDxjb2RlPi9ldGMveG1sL2NhdGFsb2c8L2NvZGU+IGJ1dCBzaW5jZSBpdCdzIG5vdCBwcmVzZW50IHRoZQorcmVzb2x1dGlvbiBmYWlscy48L3A+CisKKzxwPkJ1dCB0aGUgbW9zdCBhZHZhbmNlZCB3YXkgdG8gZGVidWcgWE1MIGNhdGFsb2cgcHJvY2Vzc2luZyBpcyB0byB1c2UgdGhlCis8c3Ryb25nPnhtbGNhdGFsb2c8L3N0cm9uZz4gY29tbWFuZCBzaGlwcGVkIHdpdGggbGlieG1sMiwgaXQgYWxsb3dzIHRvIGxvYWQKK2NhdGFsb2dzIGFuZCBtYWtlIHJlc29sdXRpb24gcXVlcmllcyB0byBzZWUgd2hhdCBpcyBnb2luZyBvbi4gVGhpcyBpcyBhbHNvCit1c2VkIGZvciB0aGUgcmVncmVzc2lvbiB0ZXN0czo8L3A+Cis8cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCBcCisgICAgICAgICAgICAgICAgICAgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKK2h0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPkZvciBkZWJ1Z2dpbmcgd2hhdCBpcyBnb2luZyBvbiwgYWRkaW5nIG9uZSAtdiBmbGFncyBpbmNyZWFzZSB0aGUgdmVyYm9zaXR5CitsZXZlbCB0byBpbmRpY2F0ZSB0aGUgcHJvY2Vzc2luZyBkb25lIChhZGRpbmcgYSBzZWNvbmQgZmxhZyBhbHNvIGluZGljYXRlCit3aGF0IGVsZW1lbnRzIGFyZSByZWNvZ25pemVkIGF0IHBhcnNpbmcpOjwvcD4KKzxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtdiB0ZXN0L2NhdGFsb2dzL2RvY2Jvb2sueG1sIFwKKyAgICAgICAgICAgICAgICAgICAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgorUGFyc2luZyBjYXRhbG9nIHRlc3QvY2F0YWxvZ3MvZG9jYm9vay54bWwncyBjb250ZW50CitGb3VuZCBwdWJsaWMgbWF0Y2ggLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOCitodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorQ2F0YWxvZ3MgY2xlYW51cAorb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPgorCis8cD5BIHNoZWxsIGludGVyZmFjZSBpcyBhbHNvIGF2YWlsYWJsZSB0byBkZWJ1ZyBhbmQgcHJvY2VzcyBtdWx0aXBsZSBxdWVyaWVzCisoYW5kIGZvciByZWdyZXNzaW9uIHRlc3RzKTo8L3A+Cis8cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLXNoZWxsIHRlc3QvY2F0YWxvZ3MvZG9jYm9vay54bWwgXAorICAgICAgICAgICAgICAgICAgICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCismZ3Q7IGhlbHAgICAKK0NvbW1hbmRzIGF2YWlsYWJsZToKK3B1YmxpYyBQdWJsaWNJRDogbWFrZSBhIFBVQkxJQyBpZGVudGlmaWVyIGxvb2t1cAorc3lzdGVtIFN5c3RlbUlEOiBtYWtlIGEgU1lTVEVNIGlkZW50aWZpZXIgbG9va3VwCityZXNvbHZlIFB1YmxpY0lEIFN5c3RlbUlEOiBkbyBhIGZ1bGwgcmVzb2x2ZXIgbG9va3VwCithZGQgJ3R5cGUnICdvcmlnJyAncmVwbGFjZScgOiBhZGQgYW4gZW50cnkKK2RlbCAndmFsdWVzJyA6IHJlbW92ZSB2YWx1ZXMKK2R1bXA6IHByaW50IHRoZSBjdXJyZW50IGNhdGFsb2cgc3RhdGUKK2RlYnVnOiBpbmNyZWFzZSB0aGUgdmVyYm9zaXR5IGxldmVsCitxdWlldDogZGVjcmVhc2UgdGhlIHZlcmJvc2l0eSBsZXZlbAorZXhpdDogIHF1aXQgdGhlIHNoZWxsCismZ3Q7IHB1YmxpYyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgoraHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQKKyZndDsgcXVpdAorb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPgorCis8cD5UaGlzIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBtb3N0IGRlYnVnZ2luZyBwdXJwb3NlLCB0aGlzIHdhcyBhY3R1YWxseQordXNlZCBoZWF2aWx5IHRvIGRlYnVnIHRoZSBYTUwgQ2F0YWxvZyBpbXBsZW1lbnRhdGlvbiBpdHNlbGYuPC9wPgorCis8aDM+PGEgbmFtZT0iRGVjbGFyaW5nIj5Ib3cgdG8gY3JlYXRlIGFuZCBtYWludGFpbjwvYT4gY2F0YWxvZ3M6PC9oMz4KKworPHA+QmFzaWNhbGx5IFhNTCBDYXRhbG9ncyBhcmUgWE1MIGZpbGVzLCB5b3UgY2FuIGVpdGhlciB1c2UgWE1MIHRvb2xzIHRvCittYW5hZ2UgdGhlbSBvciB1c2UgIDxzdHJvbmc+eG1sY2F0YWxvZzwvc3Ryb25nPiBmb3IgdGhpcy4gVGhlIGJhc2ljIHN0ZXAgaXMKK3RvIGNyZWF0ZSBhIGNhdGFsb2cgdGhlIC1jcmVhdGUgb3B0aW9uIHByb3ZpZGUgdGhpcyBmYWNpbGl0eTo8L3A+Cis8cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLS1jcmVhdGUgdHN0LnhtbAorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7IURPQ1RZUEUgY2F0YWxvZyBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRW50aXR5IFJlc29sdXRpb24gWE1MIENhdGFsb2cgVjEuMC8vRU4iCisgICAgICAgICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCImZ3Q7CismbHQ7Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyIvJmd0Oworb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPgorCis8cD5CeSBkZWZhdWx0IHhtbGNhdGFsb2cgZG9lcyBub3Qgb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBjYXRhbG9nIGFuZCBzYXZlIHRoZQorcmVzdWx0IG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQsIHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgdGhlIC1ub291dAorb3B0aW9uLiBUaGUgPGNvZGU+LWFkZDwvY29kZT4gY29tbWFuZCBhbGxvd3MgdG8gYWRkIGVudHJpZXMgaW4gdGhlCitjYXRhbG9nOjwvcD4KKzxwcmU+b3JjaGlzOn4vWE1MIC0mZ3Q7IC4veG1sY2F0YWxvZyAtLW5vb3V0IC0tY3JlYXRlIC0tYWRkICJwdWJsaWMiIFwKKyAgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIgXAorICBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCB0c3QueG1sCitvcmNoaXM6fi9YTUwgLSZndDsgY2F0IHRzdC54bWwKKyZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0OyFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiBcCisgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3JlbGVhc2UvMS4wL2NhdGFsb2cuZHRkIiZndDsKKyZsdDtjYXRhbG9nIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nIiZndDsKKyZsdDtwdWJsaWMgcHVibGljSWQ9Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKKyAgICAgICAgdXJpPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIvJmd0OworJmx0Oy9jYXRhbG9nJmd0Oworb3JjaGlzOn4vWE1MIC0mZ3Q7IDwvcHJlPgorCis8cD5UaGUgPGNvZGU+LWFkZDwvY29kZT4gb3B0aW9uIHdpbGwgYWx3YXlzIHRha2UgMyBwYXJhbWV0ZXJzIGV2ZW4gaWYgc29tZSBvZgordGhlIFhNTCBDYXRhbG9nIGNvbnN0cnVjdHMgKGxpa2UgbmV4dENhdGFsb2cpIHdpbGwgaGF2ZSBvbmx5IGEgc2luZ2xlCithcmd1bWVudCwganVzdCBwYXNzIGEgdGhpcmQgZW1wdHkgc3RyaW5nLCBpdCB3aWxsIGJlIGlnbm9yZWQuPC9wPgorCis8cD5TaW1pbGFybHkgdGhlIDxjb2RlPi1kZWw8L2NvZGU+IG9wdGlvbiByZW1vdmUgbWF0Y2hpbmcgZW50cmllcyBmcm9tIHRoZQorY2F0YWxvZzo8L3A+Cis8cHJlPm9yY2hpczp+L1hNTCAtJmd0OyAuL3htbGNhdGFsb2cgLS1kZWwgXAorICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiIHRzdC54bWwKKyZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0OyFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIgorICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3JlbGVhc2UvMS4wL2NhdGFsb2cuZHRkIiZndDsKKyZsdDtjYXRhbG9nIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nIi8mZ3Q7CitvcmNoaXM6fi9YTUwgLSZndDsgPC9wcmU+CisKKzxwPlRoZSBjYXRhbG9nIGlzIG5vdyBlbXB0eS4gTm90ZSB0aGF0IHRoZSBtYXRjaGluZyBvZiA8Y29kZT4tZGVsPC9jb2RlPiBpcworZXhhY3QgYW5kIHdvdWxkIGhhdmUgd29ya2VkIGluIGEgc2ltaWxhciBmYXNoaW9uIHdpdGggdGhlIFB1YmxpYyBJRAorc3RyaW5nLjwvcD4KKworPHA+VGhpcyBpcyBydWRpbWVudGFyeSBidXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gbWFuYWdlIGEgbm90IHRvbyBjb21wbGV4CitjYXRhbG9nIHRyZWUgb2YgcmVzb3VyY2VzLjwvcD4KKworPGgzPjxhIG5hbWU9ImltcGxlbWVudG8iPlRoZSBpbXBsZW1lbnRvciBjb3JuZXIgcXVpY2sgcmV2aWV3IG9mIHRoZQorQVBJOjwvYT48L2gzPgorCis8cD5GaXJzdCwgYW5kIGxpa2UgZm9yIGV2ZXJ5IG90aGVyIG1vZHVsZSBvZiBsaWJ4bWwsIHRoZXJlIGlzIGFuCithdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCA8YSBocmVmPSJodG1sL2xpYnhtbC1jYXRhbG9nLmh0bWwiPkFQSSBwYWdlIGZvcgorY2F0YWxvZyBzdXBwb3J0PC9hPi48L3A+CisKKzxwPlRoZSBoZWFkZXIgZm9yIHRoZSBjYXRhbG9nIGludGVyZmFjZXMgc2hvdWxkIGJlIGluY2x1ZGVkIGFzOjwvcD4KKzxwcmU+I2luY2x1ZGUgJmx0O2xpYnhtbC9jYXRhbG9nLmgmZ3Q7PC9wcmU+CisKKzxwPlRoZSBBUEkgaXMgdm9sdW50YXJpbHkga2VwdCB2ZXJ5IHNpbXBsZS4gRmlyc3QgaXQgaXMgbm90IG9idmlvdXMgdGhhdAorYXBwbGljYXRpb25zIHJlYWxseSBuZWVkIGFjY2VzcyB0byBpdCBzaW5jZSBpdCBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YKK2xpYnhtbDIgKE5vdGU6IGl0IGlzIHBvc3NpYmxlIHRvIGNvbXBsZXRlbHkgb3ZlcnJpZGUgbGlieG1sMiBkZWZhdWx0IGNhdGFsb2cKK2J5IHVzaW5nIDxhIGhyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjwvYT4gdG8KK3BsdWcgYW4gYXBwbGljYXRpb24gc3BlY2lmaWMgcmVzb2x2ZXIpLjwvcD4KKworPHA+QmFzaWNhbGx5IGxpYnhtbDIgc3VwcG9ydCAyIGNhdGFsb2cgbGlzdHM6PC9wPgorPHVsPgorICA8bGk+dGhlIGRlZmF1bHQgb25lLCBnbG9iYWwgc2hhcmVkIGJ5IGFsbCB0aGUgYXBwbGljYXRpb248L2xpPgorICA8bGk+YSBwZXItZG9jdW1lbnQgY2F0YWxvZywgdGhpcyBvbmUgaXMgYnVpbHQgaWYgdGhlIGRvY3VtZW50IHVzZXMgdGhlCisgICAgPGNvZGU+b2FzaXMteG1sLWNhdGFsb2c8L2NvZGU+IFBJcyB0byBzcGVjaWZ5IGl0cyBvd24gY2F0YWxvZyBsaXN0LCBpdCBpcworICAgIGFzc29jaWF0ZWQgdG8gdGhlIHBhcnNlciBjb250ZXh0IGFuZCBkZXN0cm95ZWQgd2hlbiB0aGUgcGFyc2luZyBjb250ZXh0CisgICAgaXMgZGVzdHJveWVkLjwvbGk+Cis8L3VsPgorCis8cD50aGUgZG9jdW1lbnQgb25lIHdpbGwgYmUgdXNlZCBmaXJzdCBpZiBpdCBleGlzdHMuPC9wPgorCis8aDQ+SW5pdGlhbGl6YXRpb24gcm91dGluZXM6PC9oND4KKworPHA+eG1sSW5pdGlhbGl6ZUNhdGFsb2coKSwgeG1sTG9hZENhdGFsb2coKSBhbmQgeG1sTG9hZENhdGFsb2dzKCkgc2hvdWxkIGJlCit1c2VkIGF0IHN0YXJ0dXAgdG8gaW5pdGlhbGl6ZSB0aGUgY2F0YWxvZywgaWYgdGhlIGNhdGFsb2cgc2hvdWxkIGJlCitpbml0aWFsaXplZCB3aXRoIHNwZWNpZmljIHZhbHVlcyB4bWxMb2FkQ2F0YWxvZygpICBvciB4bWxMb2FkQ2F0YWxvZ3MoKQorc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgeG1sSW5pdGlhbGl6ZUNhdGFsb2coKSB3aGljaCB3b3VsZCBvdGhlcndpc2UgZG8gYQorZGVmYXVsdCBpbml0aWFsaXphdGlvbiBmaXJzdC48L3A+CisKKzxwPlRoZSB4bWxDYXRhbG9nQWRkTG9jYWwoKSBjYWxsIGlzIHVzZWQgYnkgdGhlIHBhcnNlciB0byBncm93IHRoZSBkb2N1bWVudAorb3duIGNhdGFsb2cgbGlzdCBpZiBuZWVkZWQuPC9wPgorCis8aDQ+UHJlZmVyZW5jZXMgc2V0dXA6PC9oND4KKworPHA+VGhlIFhNTCBDYXRhbG9nIHNwZWMgcmVxdWlyZXMgdGhlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBkZWZhdWx0CitwcmVmZXJlbmNlcyBiZXR3ZWVuICBwdWJsaWMgYW5kIHN5c3RlbSBkZWxlZ2F0aW9uLAoreG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIoKSBhbGxvd3MgdGhpcywgeG1sQ2F0YWxvZ1NldERlZmF1bHRzKCkgYW5kCit4bWxDYXRhbG9nR2V0RGVmYXVsdHMoKSBhbGxvdyB0byBjb250cm9sICBpZiBYTUwgQ2F0YWxvZ3MgcmVzb2x1dGlvbiBzaG91bGQKK2JlIGZvcmJpZGRlbiwgYWxsb3dlZCBmb3IgZ2xvYmFsIGNhdGFsb2csIGZvciBkb2N1bWVudCBjYXRhbG9nIG9yIGJvdGgsIHRoZQorZGVmYXVsdCBpcyB0byBhbGxvdyBib3RoLjwvcD4KKworPHA+QW5kIG9mIGNvdXJzZSB4bWxDYXRhbG9nU2V0RGVidWcoKSBhbGxvd3MgdG8gZ2VuZXJhdGUgZGVidWcgbWVzc2FnZXMKKyh0aHJvdWdoIHRoZSB4bWxHZW5lcmljRXJyb3IoKSBtZWNoYW5pc20pLjwvcD4KKworPGg0PlF1ZXJ5aW5nIHJvdXRpbmVzOjwvaDQ+CisKKzxwPnhtbENhdGFsb2dSZXNvbHZlKCksIHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtKCksIHhtbENhdGFsb2dSZXNvbHZlUHVibGljKCkKK2FuZCB4bWxDYXRhbG9nUmVzb2x2ZVVSSSgpIGFyZSByZWxhdGl2ZWx5IGV4cGxpY2l0IGlmIHlvdSByZWFkIHRoZSBYTUwKK0NhdGFsb2cgc3BlY2lmaWNhdGlvbiB0aGV5IGNvcnJlc3BvbmQgdG8gc2VjdGlvbiA3IGFsZ29yaXRobXMsIHRoZXkgc2hvdWxkCithbHNvIHdvcmsgaWYgeW91IGhhdmUgbG9hZGVkIGFuIFNHTUwgY2F0YWxvZyB3aXRoIGEgc2ltcGxpZmllZCBzZW1hbnRpYy48L3A+CisKKzxwPnhtbENhdGFsb2dMb2NhbFJlc29sdmUoKSBhbmQgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSgpIGFyZSB0aGUgc2FtZSBidXQKK29wZXJhdGUgb24gdGhlIGRvY3VtZW50IGNhdGFsb2cgbGlzdDwvcD4KKworPGg0PkNsZWFudXAgYW5kIE1pc2NlbGxhbmVvdXM6PC9oND4KKworPHA+eG1sQ2F0YWxvZ0NsZWFudXAoKSBmcmVlLXVwIHRoZSBnbG9iYWwgY2F0YWxvZywgeG1sQ2F0YWxvZ0ZyZWVMb2NhbCgpIGlzCit0aGUgcGVyLWRvY3VtZW50IGVxdWl2YWxlbnQuPC9wPgorCis8cD54bWxDYXRhbG9nQWRkKCkgYW5kIHhtbENhdGFsb2dSZW1vdmUoKSBhcmUgdXNlZCB0byBkeW5hbWljYWxseSBtb2RpZnkgdGhlCitmaXJzdCBjYXRhbG9nIGluIHRoZSBnbG9iYWwgbGlzdCwgYW5kIHhtbENhdGFsb2dEdW1wKCkgYWxsb3dzIHRvIGR1bXAgYQorY2F0YWxvZyBzdGF0ZSwgdGhvc2Ugcm91dGluZXMgYXJlIHByaW1hcmlseSBkZXNpZ25lZCBmb3IgeG1sY2F0YWxvZywgSSdtIG5vdAorc3VyZSB0aGF0IGV4cG9zaW5nIG1vcmUgY29tcGxleCBpbnRlcmZhY2VzIChsaWtlIG5hdmlnYXRpb24gb25lcykgd291bGQgYmUKK3JlYWxseSB1c2VmdWwuPC9wPgorCis8cD5UaGUgeG1sUGFyc2VDYXRhbG9nRmlsZSgpIGlzIGEgZnVuY3Rpb24gdXNlZCB0byBsb2FkIFhNTCBDYXRhbG9nIGZpbGVzLAoraXQncyBzaW1pbGFyIGFzIHhtbFBhcnNlRmlsZSgpIGV4Y2VwdCBpdCBieXBhc3MgYWxsIGNhdGFsb2cgbG9va3VwcywgaXQncworcHJvdmlkZWQgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgbWF5IGJlIHVzZWZ1bCBmb3IgY2xpZW50IHRvb2xzLjwvcD4KKworPGg0PnRocmVhZGVkIGVudmlyb25tZW50czo8L2g0PgorCis8cD5TaW5jZSB0aGUgY2F0YWxvZyB0cmVlIGlzIGJ1aWx0IHByb2dyZXNzaXZlbHksIHNvbWUgY2FyZSBoYXMgYmVlbiB0YWtlbiB0bwordHJ5IHRvIGF2b2lkIHRyb3VibGVzIGluIG11bHRpdGhyZWFkZWQgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBpcyBub3cgdGhyZWFkCitzYWZlIGFzc3VtaW5nIHRoYXQgdGhlIGxpYnhtbDIgbGlicmFyeSBoYXMgYmVlbiBjb21waWxlZCB3aXRoIHRocmVhZHMKK3N1cHBvcnQuPC9wPgorCis8cD48L3A+CisKKzxoMz48YSBuYW1lPSJPdGhlciI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvaDM+CisKKzxwPlRoZSBYTUwgQ2F0YWxvZyBzcGVjaWZpY2F0aW9uIGlzIHJlbGF0aXZlbHkgcmVjZW50IHNvIHRoZXJlIGlzbid0IG11Y2gKK2xpdGVyYXR1cmUgdG8gcG9pbnQgYXQ6PC9wPgorPHVsPgorICA8bGk+WW91IGNhbiBmaW5kIGEgZ29vZCByYW50IGZyb20gTm9ybSBXYWxzaCBhYm91dCA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3cuYXJib3J0ZXh0LmNvbS9UaGlua19UYW5rL1hNTF9SZXNvdXJjZXMvSXNzdWVfVGhyZWUvaXNzdWVfdGhyZWUuaHRtbCI+dGhlCisgICAgbmVlZCBmb3IgY2F0YWxvZ3M8L2E+LCBpdCBwcm92aWRlcyBhIGxvdCBvZiBjb250ZXh0IGluZm9ybWF0aW9uIGV2ZW4gaWYKKyAgICBJIGRvbid0IGFncmVlIHdpdGggZXZlcnl0aGluZyBwcmVzZW50ZWQuIE5vcm0gYWxzbyB3cm90ZSBhIG1vcmUgcmVjZW50CisgICAgYXJ0aWNsZSA8YQorICAgIGhyZWY9Imh0dHA6Ly93d3dzLnN1bi5jb20vc29mdHdhcmUveG1sL2RldmVsb3BlcnMvcmVzb2x2ZXIvYXJ0aWNsZS8iPlhNTAorICAgIGVudGl0aWVzIGFuZCBVUkkgcmVzb2x2ZXJzPC9hPiBkZXNjcmliaW5nIHRoZW0uPC9saT4KKyAgPGxpPkFuIDxhIGhyZWY9Imh0dHA6Ly9ob21lLmNjaWwub3JnL35jb3dhbi9YTUwvWENhdGFsb2cuaHRtbCI+b2xkIFhNTAorICAgIGNhdGFsb2cgcHJvcG9zYWw8L2E+IGZyb20gSm9obiBDb3dhbjwvbGk+CisgIDxsaT5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5yZGRsLm9yZy8iPlJlc291cmNlIERpcmVjdG9yeSBEZXNjcmlwdGlvbgorICAgIExhbmd1YWdlPC9hPiAoUkRETCkgYW5vdGhlciBjYXRhbG9nIHN5c3RlbSBidXQgbW9yZSBvcmllbnRlZCB0b3dhcmQKKyAgICBwcm92aWRpbmcgbWV0YWRhdGEgZm9yIFhNTCBuYW1lc3BhY2VzLjwvbGk+CisgIDxsaT50aGUgcGFnZSBmcm9tIHRoZSBPQVNJUyBUZWNobmljYWwgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5LyI+Q29tbWl0dGVlIG9uIEVudGl0eQorICAgIFJlc29sdXRpb248L2E+IHdobyBtYWludGFpbnMgWE1MIENhdGFsb2csIHlvdSB3aWxsIGZpbmQgcG9pbnRlcnMgdG8gdGhlCisgICAgc3BlY2lmaWNhdGlvbiB1cGRhdGUsIHNvbWUgYmFja2dyb3VuZCBhbmQgcG9pbnRlcnMgdG8gb3RoZXJzIHRvb2xzCisgICAgcHJvdmlkaW5nIFhNTCBDYXRhbG9nIHN1cHBvcnQ8L2xpPgorICA8bGk+VGhlcmUgaXMgYSA8YSBocmVmPSJidWlsZERvY0Jvb2tDYXRhbG9nIj5zaGVsbCBzY3JpcHQ8L2E+IHRvIGdlbmVyYXRlCisgICAgWE1MIENhdGFsb2dzIGZvciBEb2NCb29rIDQuMS4yIC4gSWYgaXQgY2FuIHdyaXRlIHRvIHRoZSAvZXRjL3htbC8KKyAgICBkaXJlY3RvcnksIGl0IHdpbGwgc2V0LXVwIC9ldGMveG1sL2NhdGFsb2cgYW5kIC9ldGMveG1sL2RvY2Jvb2sgYmFzZWQgb24KKyAgICB0aGUgcmVzb3VyY2VzIGZvdW5kIG9uIHRoZSBzeXN0ZW0uIE90aGVyd2lzZSBpdCB3aWxsIGp1c3QgY3JlYXRlCisgICAgfi94bWxjYXRhbG9nIGFuZCB+L2Ria3htbGNhdGFsb2cgYW5kIGRvaW5nOgorICAgIDxwPjxjb2RlPmV4cG9ydCBYTUxfQ0FUQUxPR19GSUxFUz0kSE9NRS94bWxjYXRhbG9nPC9jb2RlPjwvcD4KKyAgICA8cD5zaG91bGQgYWxsb3cgdG8gcHJvY2VzcyBEb2NCb29rIGRvY3VtZW50YXRpb25zIHdpdGhvdXQgcmVxdWlyaW5nCisgICAgbmV0d29yayBhY2Nlc3NlcyBmb3IgdGhlIERURCBvciBzdHlsZXNoZWV0czwvcD4KKyAgPC9saT4KKyAgPGxpPkkgaGF2ZSB1cGxvYWRlZCA8YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy9saWJ4bWwyL3Rlc3QvZGJrNDEyY2F0YWxvZy50YXIuZ3oiPmEKKyAgICBzbWFsbCB0YXJiYWxsPC9hPiBjb250YWluaW5nIFhNTCBDYXRhbG9ncyBmb3IgRG9jQm9vayA0LjEuMiB3aGljaCBzZWVtcworICAgIHRvIHdvcmsgZmluZSBmb3IgbWUgdG9vPC9saT4KKyAgPGxpPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnhtbHNvZnQub3JnL3htbGNhdGFsb2dfbWFuLmh0bWwiPnhtbGNhdGFsb2cKKyAgICBtYW51YWwgcGFnZTwvYT48L2xpPgorPC91bD4KKworPHA+SWYgeW91IGhhdmUgc3VnZ2VzdGlvbnMgZm9yIGNvcnJlY3Rpb25zIG9yIGFkZGl0aW9ucywgc2ltcGx5IGNvbnRhY3QKK21lOjwvcD4KKworPGgyPjxhIG5hbWU9ImxpYnJhcnkiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2gyPgorCis8cD5UaGlzIHNlY3Rpb24gaXMgZGlyZWN0bHkgaW50ZW5kZWQgdG8gaGVscCBwcm9ncmFtbWVycyBnZXR0aW5nIGJvb3RzdHJhcHBlZAordXNpbmcgdGhlIFhNTCB0b2xsa2l0IGZyb20gdGhlIEMgbGFuZ3VhZ2UuIEl0IGlzIG5vdCBpbnRlbmRlZCB0byBiZQorZXh0ZW5zaXZlLiBJIGhvcGUgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGRvY3VtZW50cyB3aWxsIHByb3ZpZGUgdGhlCitjb21wbGV0ZW5lc3MgcmVxdWlyZWQsIGJ1dCBhcyBhIHNlcGFyYXRlIHNldCBvZiBkb2N1bWVudHMuIFRoZSBpbnRlcmZhY2VzIG9mCit0aGUgWE1MIHBhcnNlciBhcmUgYnkgcHJpbmNpcGxlIGxvdyBsZXZlbCwgVGhvc2UgaW50ZXJlc3RlZCBpbiBhIGhpZ2hlciBsZXZlbAorQVBJIHNob3VsZCA8YSBocmVmPSIjRE9NIj5sb29rIGF0IERPTTwvYT4uPC9wPgorCis8cD5UaGUgPGEgaHJlZj0iaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnBhcnNlciBpbnRlcmZhY2VzIGZvciBYTUw8L2E+IGFyZQorc2VwYXJhdGVkIGZyb20gdGhlIDxhIGhyZWY9Imh0bWwvbGlieG1sLWh0bWxwYXJzZXIuaHRtbCI+SFRNTCBwYXJzZXIKK2ludGVyZmFjZXM8L2E+LiAgTGV0J3MgaGF2ZSBhIGxvb2sgYXQgaG93IHRoZSBYTUwgcGFyc2VyIGNhbiBiZSBjYWxsZWQ6PC9wPgorCis8aDM+PGEgbmFtZT0iSW52b2tpbmciPkludm9raW5nIHRoZSBwYXJzZXIgOiB0aGUgcHVsbCBtZXRob2Q8L2E+PC9oMz4KKworPHA+VXN1YWxseSwgdGhlIGZpcnN0IHRoaW5nIHRvIGRvIGlzIHRvIHJlYWQgYW4gWE1MIGlucHV0LiBUaGUgcGFyc2VyIGFjY2VwdHMKK2RvY3VtZW50cyBlaXRoZXIgZnJvbSBpbi1tZW1vcnkgc3RyaW5ncyBvciBmcm9tIGZpbGVzLiAgVGhlIGZ1bmN0aW9ucyBhcmUKK2RlZmluZWQgaW4gInBhcnNlci5oIjo8L3A+Cis8ZGw+CisgIDxkdD48Y29kZT54bWxEb2NQdHIgeG1sUGFyc2VNZW1vcnkoY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlBhcnNlIGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZyBjb250YWluaW5nIHRoZSBkb2N1bWVudC48L3A+CisgICAgPC9kZD4KKzwvZGw+Cis8ZGw+CisgIDxkdD48Y29kZT54bWxEb2NQdHIgeG1sUGFyc2VGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+UGFyc2UgYW4gWE1MIGRvY3VtZW50IGNvbnRhaW5lZCBpbiBhIChwb3NzaWJseSBjb21wcmVzc2VkKQorICAgICAgZmlsZS48L3A+CisgICAgPC9kZD4KKzwvZGw+CisKKzxwPlRoZSBwYXJzZXIgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGRvY3VtZW50IHN0cnVjdHVyZSAob3IgTlVMTCBpbiBjYXNlIG9mCitmYWlsdXJlKS48L3A+CisKKzxoMyBpZD0iSW52b2tpbmcxIj5JbnZva2luZyB0aGUgcGFyc2VyOiB0aGUgcHVzaCBtZXRob2Q8L2gzPgorCis8cD5JbiBvcmRlciBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGtlZXAgdGhlIGNvbnRyb2wgd2hlbiB0aGUgZG9jdW1lbnQgaXMKK2JlaW5nIGZldGNoZWQgKHdoaWNoIGlzIGNvbW1vbiBmb3IgR1VJIGJhc2VkIHByb2dyYW1zKSBsaWJ4bWwyIHByb3ZpZGVzIGEKK3B1c2ggaW50ZXJmYWNlLCB0b28sIGFzIG9mIHZlcnNpb24gMS44LjMuIEhlcmUgYXJlIHRoZSBpbnRlcmZhY2UKK2Z1bmN0aW9uczo8L3A+Cis8cHJlPnhtbFBhcnNlckN0eHRQdHIgeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoeG1sU0FYSGFuZGxlclB0ciBzYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2h1bmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlbmFtZSk7CitpbnQgICAgICAgICAgICAgIHhtbFBhcnNlQ2h1bmsgICAgICAgICAgKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2h1bmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVybWluYXRlKTs8L3ByZT4KKworPHA+YW5kIGhlcmUgaXMgYSBzaW1wbGUgZXhhbXBsZSBzaG93aW5nIGhvdyB0byB1c2UgdGhlIGludGVyZmFjZTo8L3A+Cis8cHJlPiAgICAgICAgICAgIEZJTEUgKmY7CisKKyAgICAgICAgICAgIGYgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyAgICAgICAgICAgIGlmIChmICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzLCBzaXplID0gMTAyNDsKKyAgICAgICAgICAgICAgICBjaGFyIGNoYXJzWzEwMjRdOworICAgICAgICAgICAgICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgICAgICAgICAgICAgIHJlcyA9IGZyZWFkKGNoYXJzLCAxLCA0LCBmKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzICZndDsgMCkgeworICAgICAgICAgICAgICAgICAgICBjdHh0ID0geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMsIHJlcywgZmlsZW5hbWUpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHJlcyA9IGZyZWFkKGNoYXJzLCAxLCBzaXplLCBmKSkgJmd0OyAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZUNodW5rKGN0eHQsIGNoYXJzLCByZXMsIDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHhtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworICAgICAgICAgICAgICAgICAgICBkb2MgPSBjdHh0LSZndDtteURvYzsKKyAgICAgICAgICAgICAgICAgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTwvcHJlPgorCis8cD5UaGUgSFRNTCBwYXJzZXIgZW1iZWRkZWQgaW50byBsaWJ4bWwyIGFsc28gaGFzIGEgcHVzaCBpbnRlcmZhY2U7IHRoZQorZnVuY3Rpb25zIGFyZSBqdXN0IHByZWZpeGVkIGJ5ICJodG1sIiByYXRoZXIgdGhhbiAieG1sIi48L3A+CisKKzxoMyBpZD0iSW52b2tpbmcyIj5JbnZva2luZyB0aGUgcGFyc2VyOiB0aGUgU0FYIGludGVyZmFjZTwvaDM+CisKKzxwPlRoZSB0cmVlLWJ1aWxkaW5nIGludGVyZmFjZSBtYWtlcyB0aGUgcGFyc2VyIG1lbW9yeS1odW5ncnksIGZpcnN0IGxvYWRpbmcKK3RoZSBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHRoZW4gYnVpbGRpbmcgdGhlIHRyZWUgaXRzZWxmLiBSZWFkaW5nIGEgZG9jdW1lbnQKK3dpdGhvdXQgYnVpbGRpbmcgdGhlIHRyZWUgaXMgcG9zc2libGUgdXNpbmcgdGhlIFNBWCBpbnRlcmZhY2VzIChzZWUgU0FYLmggYW5kCis8YSBocmVmPSJodHRwOi8vd3d3LmRhYS5jb20uYXUvfmphbWVzL2dub21lL3htbC1zYXgveG1sLXNheC5odG1sIj5KYW1lcworSGVuc3RyaWRnZSdzIGRvY3VtZW50YXRpb248L2E+KS4gTm90ZSBhbHNvIHRoYXQgdGhlIHB1c2ggaW50ZXJmYWNlIGNhbiBiZQorbGltaXRlZCB0byBTQVg6IGp1c3QgdXNlIHRoZSB0d28gZmlyc3QgYXJndW1lbnRzIG9mCis8Y29kZT54bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCgpPC9jb2RlPi48L3A+CisKKzxoMz48YSBuYW1lPSJCdWlsZGluZyI+QnVpbGRpbmcgYSB0cmVlIGZyb20gc2NyYXRjaDwvYT48L2gzPgorCis8cD5UaGUgb3RoZXIgd2F5IHRvIGdldCBhbiBYTUwgdHJlZSBpbiBtZW1vcnkgaXMgYnkgYnVpbGRpbmcgaXQuIEJhc2ljYWxseQordGhlcmUgaXMgYSBzZXQgb2YgZnVuY3Rpb25zIGRlZGljYXRlZCB0byBidWlsZGluZyBuZXcgZWxlbWVudHMuIChUaGVzZSBhcmUKK2Fsc28gZGVzY3JpYmVkIGluICZsdDtsaWJ4bWwvdHJlZS5oJmd0Oy4pIEZvciBleGFtcGxlLCBoZXJlIGlzIGEgcGllY2Ugb2YKK2NvZGUgdGhhdCBwcm9kdWNlcyB0aGUgWE1MIGRvY3VtZW50IHVzZWQgaW4gdGhlIHByZXZpb3VzIGV4YW1wbGVzOjwvcD4KKzxwcmU+ICAgICNpbmNsdWRlICZsdDtsaWJ4bWwvdHJlZS5oJmd0OworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sTm9kZVB0ciB0cmVlLCBzdWJ0cmVlOworCisgICAgZG9jID0geG1sTmV3RG9jKCIxLjAiKTsKKyAgICBkb2MtJmd0O2NoaWxkcmVuID0geG1sTmV3RG9jTm9kZShkb2MsIE5VTEwsICJFWEFNUExFIiwgTlVMTCk7CisgICAgeG1sU2V0UHJvcChkb2MtJmd0O2NoaWxkcmVuLCAicHJvcDEiLCAiZ25vbWUgaXMgZ3JlYXQiKTsKKyAgICB4bWxTZXRQcm9wKGRvYy0mZ3Q7Y2hpbGRyZW4sICJwcm9wMiIsICImYW1wOyBsaW51eCB0b28iKTsKKyAgICB0cmVlID0geG1sTmV3Q2hpbGQoZG9jLSZndDtjaGlsZHJlbiwgTlVMTCwgImhlYWQiLCBOVUxMKTsKKyAgICBzdWJ0cmVlID0geG1sTmV3Q2hpbGQodHJlZSwgTlVMTCwgInRpdGxlIiwgIldlbGNvbWUgdG8gR25vbWUiKTsKKyAgICB0cmVlID0geG1sTmV3Q2hpbGQoZG9jLSZndDtjaGlsZHJlbiwgTlVMTCwgImNoYXB0ZXIiLCBOVUxMKTsKKyAgICBzdWJ0cmVlID0geG1sTmV3Q2hpbGQodHJlZSwgTlVMTCwgInRpdGxlIiwgIlRoZSBMaW51eCBhZHZlbnR1cmUiKTsKKyAgICBzdWJ0cmVlID0geG1sTmV3Q2hpbGQodHJlZSwgTlVMTCwgInAiLCAiYmxhIGJsYSBibGEgLi4uIik7CisgICAgc3VidHJlZSA9IHhtbE5ld0NoaWxkKHRyZWUsIE5VTEwsICJpbWFnZSIsIE5VTEwpOworICAgIHhtbFNldFByb3Aoc3VidHJlZSwgImhyZWYiLCAibGludXMuZ2lmIik7PC9wcmU+CisKKzxwPk5vdCByZWFsbHkgcm9ja2V0IHNjaWVuY2UgLi4uPC9wPgorCis8aDM+PGEgbmFtZT0iVHJhdmVyc2luZyI+VHJhdmVyc2luZyB0aGUgdHJlZTwvYT48L2gzPgorCis8cD5CYXNpY2FsbHkgYnkgPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sIj5pbmNsdWRpbmcgInRyZWUuaCI8L2E+IHlvdXIKK2NvZGUgaGFzIGFjY2VzcyB0byB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIG9mIGFsbCB0aGUgZWxlbWVudHMgb2YgdGhlIHRyZWUuCitUaGUgbmFtZXMgc2hvdWxkIGJlIHNvbWV3aGF0IHNpbXBsZSBsaWtlIDxzdHJvbmc+cGFyZW50PC9zdHJvbmc+LAorPHN0cm9uZz5jaGlsZHJlbjwvc3Ryb25nPiwgPHN0cm9uZz5uZXh0PC9zdHJvbmc+LCA8c3Ryb25nPnByZXY8L3N0cm9uZz4sCis8c3Ryb25nPnByb3BlcnRpZXM8L3N0cm9uZz4sIGV0Yy4uLiBGb3IgZXhhbXBsZSwgc3RpbGwgd2l0aCB0aGUgcHJldmlvdXMKK2V4YW1wbGU6PC9wPgorPHByZT48Y29kZT5kb2MtJmd0O2NoaWxkcmVuLSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW48L2NvZGU+PC9wcmU+CisKKzxwPnBvaW50cyB0byB0aGUgdGl0bGUgZWxlbWVudCw8L3A+Cis8cHJlPmRvYy0mZ3Q7Y2hpbGRyZW4tJmd0O2NoaWxkcmVuLSZndDtuZXh0LSZndDtjaGlsZHJlbi0mZ3Q7Y2hpbGRyZW48L3ByZT4KKworPHA+cG9pbnRzIHRvIHRoZSB0ZXh0IG5vZGUgY29udGFpbmluZyB0aGUgY2hhcHRlciB0aXRsZSAiVGhlIExpbnV4CithZHZlbnR1cmUiLjwvcD4KKworPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+OiBYTUwgYWxsb3dzIDxlbT5QSTwvZW0+cyBhbmQgPGVtPmNvbW1lbnRzPC9lbT4gdG8gYmUKK3ByZXNlbnQgYmVmb3JlIHRoZSBkb2N1bWVudCByb290LCBzbyA8Y29kZT5kb2MtJmd0O2NoaWxkcmVuPC9jb2RlPiBtYXkgcG9pbnQKK3RvIGFuIGVsZW1lbnQgd2hpY2ggaXMgbm90IHRoZSBkb2N1bWVudCBSb290IEVsZW1lbnQ7IGEgZnVuY3Rpb24KKzxjb2RlPnhtbERvY0dldFJvb3RFbGVtZW50KCk8L2NvZGU+IHdhcyBhZGRlZCBmb3IgdGhpcyBwdXJwb3NlLjwvcD4KKworPGgzPjxhIG5hbWU9Ik1vZGlmeWluZyI+TW9kaWZ5aW5nIHRoZSB0cmVlPC9hPjwvaDM+CisKKzxwPkZ1bmN0aW9ucyBhcmUgcHJvdmlkZWQgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgdGhlIGRvY3VtZW50IGNvbnRlbnQuIEhlcmUKK2lzIGFuIGV4Y2VycHQgZnJvbSB0aGUgPGEgaHJlZj0iaHRtbC9saWJ4bWwtdHJlZS5odG1sIj50cmVlIEFQSTwvYT46PC9wPgorPGRsPgorICA8ZHQ+PGNvZGU+eG1sQXR0clB0ciB4bWxTZXRQcm9wKHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QKKyAgeG1sQ2hhciAqdmFsdWUpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5UaGlzIHNldHMgKG9yIGNoYW5nZXMpIGFuIGF0dHJpYnV0ZSBjYXJyaWVkIGJ5IGFuIEVMRU1FTlQgbm9kZS4KKyAgICAgIFRoZSB2YWx1ZSBjYW4gYmUgTlVMTC48L3A+CisgICAgPC9kZD4KKzwvZGw+Cis8ZGw+CisgIDxkdD48Y29kZT5jb25zdCB4bWxDaGFyICp4bWxHZXRQcm9wKHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgeG1sQ2hhcgorICAqbmFtZSk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIHBvaW50ZXIgdG8gbmV3IGNvcHkgb2YgdGhlIHByb3BlcnR5CisgICAgICBjb250ZW50LiBOb3RlIHRoYXQgdGhlIHVzZXIgbXVzdCBkZWFsbG9jYXRlIHRoZSByZXN1bHQuPC9wPgorICAgIDwvZGQ+Cis8L2RsPgorCis8cD5Ud28gZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgdGV4dCBhc3NvY2lhdGVkCit3aXRoIGVsZW1lbnRzOjwvcD4KKzxkbD4KKyAgPGR0Pjxjb2RlPnhtbE5vZGVQdHIgeG1sU3RyaW5nR2V0Tm9kZUxpc3QoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhcgorICAqdmFsdWUpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5UaGlzIGZ1bmN0aW9uIHRha2VzIGFuICJleHRlcm5hbCIgc3RyaW5nIGFuZCBjb252ZXJ0cyBpdCB0byBvbmUKKyAgICAgIHRleHQgbm9kZSBvciBwb3NzaWJseSB0byBhIGxpc3Qgb2YgZW50aXR5IGFuZCB0ZXh0IG5vZGVzLiBBbGwKKyAgICAgIG5vbi1wcmVkZWZpbmVkIGVudGl0eSByZWZlcmVuY2VzIGxpa2UgJmFtcDtHbm9tZTsgd2lsbCBiZSBzdG9yZWQKKyAgICAgIGludGVybmFsbHkgYXMgZW50aXR5IG5vZGVzLCBoZW5jZSB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiBtYXkgbm90IGJlCisgICAgICBhIHNpbmdsZSBub2RlLjwvcD4KKyAgICA8L2RkPgorPC9kbD4KKzxkbD4KKyAgPGR0Pjxjb2RlPnhtbENoYXIgKnhtbE5vZGVMaXN0R2V0U3RyaW5nKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgbGlzdCwgaW50CisgIGluTGluZSk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlRoaXMgZnVuY3Rpb24gaXMgdGhlIGludmVyc2Ugb2YKKyAgICAgIDxjb2RlPnhtbFN0cmluZ0dldE5vZGVMaXN0KCk8L2NvZGU+LiBJdCBnZW5lcmF0ZXMgYSBuZXcgc3RyaW5nCisgICAgICBjb250YWluaW5nIHRoZSBjb250ZW50IG9mIHRoZSB0ZXh0IGFuZCBlbnRpdHkgbm9kZXMuIE5vdGUgdGhlIGV4dHJhCisgICAgICBhcmd1bWVudCBpbkxpbmUuIElmIHRoaXMgYXJndW1lbnQgaXMgc2V0IHRvIDEsIHRoZSBmdW5jdGlvbiB3aWxsIGV4cGFuZAorICAgICAgZW50aXR5IHJlZmVyZW5jZXMuICBGb3IgZXhhbXBsZSwgaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlICZhbXA7R25vbWU7CisgICAgICBYTUwgZW5jb2RpbmcgaW4gdGhlIHN0cmluZywgaXQgd2lsbCBzdWJzdGl0dXRlIGl0IHdpdGggaXRzIHZhbHVlIChzYXksCisgICAgICAiR05VIE5ldHdvcmsgT2JqZWN0IE1vZGVsIEVudmlyb25tZW50IikuPC9wPgorICAgIDwvZGQ+Cis8L2RsPgorCis8aDM+PGEgbmFtZT0iU2F2aW5nIj5TYXZpbmcgYSB0cmVlPC9hPjwvaDM+CisKKzxwPkJhc2ljYWxseSAzIG9wdGlvbnMgYXJlIHBvc3NpYmxlOjwvcD4KKzxkbD4KKyAgPGR0Pjxjb2RlPnZvaWQgeG1sRG9jRHVtcE1lbW9yeSh4bWxEb2NQdHIgY3VyLCB4bWxDaGFyKiptZW0sIGludAorICAqc2l6ZSk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlJldHVybnMgYSBidWZmZXIgaW50byB3aGljaCB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gc2F2ZWQuPC9wPgorICAgIDwvZGQ+Cis8L2RsPgorPGRsPgorICA8ZHQ+PGNvZGU+ZXh0ZXJuIHZvaWQgeG1sRG9jRHVtcChGSUxFICpmLCB4bWxEb2NQdHIgZG9jKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+RHVtcHMgYSBkb2N1bWVudCB0byBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci48L3A+CisgICAgPC9kZD4KKzwvZGw+Cis8ZGw+CisgIDxkdD48Y29kZT5pbnQgeG1sU2F2ZUZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIHhtbERvY1B0ciBjdXIpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5TYXZlcyB0aGUgZG9jdW1lbnQgdG8gYSBmaWxlLiBJbiB0aGlzIGNhc2UsIHRoZSBjb21wcmVzc2lvbgorICAgICAgaW50ZXJmYWNlIGlzIHRyaWdnZXJlZCBpZiBpdCBoYXMgYmVlbiB0dXJuZWQgb24uPC9wPgorICAgIDwvZGQ+Cis8L2RsPgorCis8aDM+PGEgbmFtZT0iQ29tcHJlc3NpbyI+Q29tcHJlc3Npb248L2E+PC9oMz4KKworPHA+VGhlIGxpYnJhcnkgdHJhbnNwYXJlbnRseSBoYW5kbGVzIGNvbXByZXNzaW9uIHdoZW4gZG9pbmcgZmlsZS1iYXNlZAorYWNjZXNzZXMuIFRoZSBsZXZlbCBvZiBjb21wcmVzc2lvbiBvbiBzYXZlcyBjYW4gYmUgdHVybmVkIG9uIGVpdGhlciBnbG9iYWxseQorb3IgaW5kaXZpZHVhbGx5IGZvciBvbmUgZmlsZTo8L3A+Cis8ZGw+CisgIDxkdD48Y29kZT5pbnQgIHhtbEdldERvY0NvbXByZXNzTW9kZSAoeG1sRG9jUHRyIGRvYyk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPkdldHMgdGhlIGRvY3VtZW50IGNvbXByZXNzaW9uIHJhdGlvICgwLTkpLjwvcD4KKyAgICA8L2RkPgorPC9kbD4KKzxkbD4KKyAgPGR0Pjxjb2RlPnZvaWQgeG1sU2V0RG9jQ29tcHJlc3NNb2RlICh4bWxEb2NQdHIgZG9jLCBpbnQgbW9kZSk7PC9jb2RlPjwvZHQ+CisgICAgPGRkPjxwPlNldHMgdGhlIGRvY3VtZW50IGNvbXByZXNzaW9uIHJhdGlvLjwvcD4KKyAgICA8L2RkPgorPC9kbD4KKzxkbD4KKyAgPGR0Pjxjb2RlPmludCAgeG1sR2V0Q29tcHJlc3NNb2RlKHZvaWQpOzwvY29kZT48L2R0PgorICAgIDxkZD48cD5HZXRzIHRoZSBkZWZhdWx0IGNvbXByZXNzaW9uIHJhdGlvLjwvcD4KKyAgICA8L2RkPgorPC9kbD4KKzxkbD4KKyAgPGR0Pjxjb2RlPnZvaWQgeG1sU2V0Q29tcHJlc3NNb2RlKGludCBtb2RlKTs8L2NvZGU+PC9kdD4KKyAgICA8ZGQ+PHA+U2V0cyB0aGUgZGVmYXVsdCBjb21wcmVzc2lvbiByYXRpby48L3A+CisgICAgPC9kZD4KKzwvZGw+CisKKzxoMj48YSBuYW1lPSJFbnRpdGllcyI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9oMj4KKworPHA+RW50aXRpZXMgaW4gcHJpbmNpcGxlIGFyZSBzaW1pbGFyIHRvIHNpbXBsZSBDIG1hY3Jvcy4gQW4gZW50aXR5IGRlZmluZXMgYW4KK2FiYnJldmlhdGlvbiBmb3IgYSBnaXZlbiBzdHJpbmcgdGhhdCB5b3UgY2FuIHJldXNlIG1hbnkgdGltZXMgdGhyb3VnaG91dCB0aGUKK2NvbnRlbnQgb2YgeW91ciBkb2N1bWVudC4gRW50aXRpZXMgYXJlIGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gYSBnaXZlbiBzdHJpbmcKK21heSBvY2N1ciBmcmVxdWVudGx5IHdpdGhpbiBhIGRvY3VtZW50LCBvciB0byBjb25maW5lIHRoZSBjaGFuZ2UgbmVlZGVkIHRvIGEKK2RvY3VtZW50IHRvIGEgcmVzdHJpY3RlZCBhcmVhIGluIHRoZSBpbnRlcm5hbCBzdWJzZXQgb2YgdGhlIGRvY3VtZW50IChhdCB0aGUKK2JlZ2lubmluZykuIEV4YW1wbGU6PC9wPgorPHByZT4xICZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworMiAmbHQ7IURPQ1RZUEUgRVhBTVBMRSBTWVNURU0gImV4YW1wbGUuZHRkIiBbCiszICZsdDshRU5USVRZIHhtbCAiRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UiJmd0OworNCBdJmd0OworNSAmbHQ7RVhBTVBMRSZndDsKKzYgICAgJmFtcDt4bWw7Cis3ICZsdDsvRVhBTVBMRSZndDs8L3ByZT4KKworPHA+TGluZSAzIGRlY2xhcmVzIHRoZSB4bWwgZW50aXR5LiBMaW5lIDYgdXNlcyB0aGUgeG1sIGVudGl0eSwgYnkgcHJlZml4aW5nCitpdHMgbmFtZSB3aXRoICcmYW1wOycgYW5kIGZvbGxvd2luZyBpdCBieSAnOycgd2l0aG91dCBhbnkgc3BhY2VzIGFkZGVkLiBUaGVyZQorYXJlIDUgcHJlZGVmaW5lZCBlbnRpdGllcyBpbiBsaWJ4bWwyIGFsbG93aW5nIHlvdSB0byBlc2NhcGUgY2hhcmFjdGVycyB3aXRoCitwcmVkZWZpbmVkIG1lYW5pbmcgaW4gc29tZSBwYXJ0cyBvZiB0aGUgeG1sIGRvY3VtZW50IGNvbnRlbnQ6Cis8c3Ryb25nPiZhbXA7bHQ7PC9zdHJvbmc+IGZvciB0aGUgY2hhcmFjdGVyICcmbHQ7JywgPHN0cm9uZz4mYW1wO2d0Ozwvc3Ryb25nPgorZm9yIHRoZSBjaGFyYWN0ZXIgJyZndDsnLCAgPHN0cm9uZz4mYW1wO2Fwb3M7PC9zdHJvbmc+IGZvciB0aGUgY2hhcmFjdGVyICcnJywKKzxzdHJvbmc+JmFtcDtxdW90Ozwvc3Ryb25nPiBmb3IgdGhlIGNoYXJhY3RlciAnIicsIGFuZAorPHN0cm9uZz4mYW1wO2FtcDs8L3N0cm9uZz4gZm9yIHRoZSBjaGFyYWN0ZXIgJyZhbXA7Jy48L3A+CisKKzxwPk9uZSBvZiB0aGUgcHJvYmxlbXMgcmVsYXRlZCB0byBlbnRpdGllcyBpcyB0aGF0IHlvdSBtYXkgd2FudCB0aGUgcGFyc2VyIHRvCitzdWJzdGl0dXRlIGFuIGVudGl0eSdzIGNvbnRlbnQgc28gdGhhdCB5b3UgY2FuIHNlZSB0aGUgcmVwbGFjZW1lbnQgdGV4dCBpbgoreW91ciBhcHBsaWNhdGlvbi4gT3IgeW91IG1heSBwcmVmZXIgdG8ga2VlcCBlbnRpdHkgcmVmZXJlbmNlcyBhcyBzdWNoIGluIHRoZQorY29udGVudCB0byBiZSBhYmxlIHRvIHNhdmUgdGhlIGRvY3VtZW50IGJhY2sgd2l0aG91dCBsb3NpbmcgdGhpcyB1c3VhbGx5CitwcmVjaW91cyBpbmZvcm1hdGlvbiAoaWYgdGhlIHVzZXIgd2VudCB0aHJvdWdoIHRoZSBwYWluIG9mIGV4cGxpY2l0bHkKK2RlZmluaW5nIGVudGl0aWVzLCBoZSBtYXkgaGF2ZSBhIGEgcmF0aGVyIG5lZ2F0aXZlIGF0dGl0dWRlIGlmIHlvdSBibGluZGx5CitzdWJzdGl0dXRlIHRoZW0gYXMgc2F2aW5nIHRpbWUpLiBUaGUgPGEKK2hyZWY9Imh0bWwvbGlieG1sLXBhcnNlci5odG1sI3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQiPnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQoKTwvYT4KK2Z1bmN0aW9uIGFsbG93cyB5b3UgdG8gY2hlY2sgYW5kIGNoYW5nZSB0aGUgYmVoYXZpb3VyLCB3aGljaCBpcyB0byBub3QKK3N1YnN0aXR1dGUgZW50aXRpZXMgYnkgZGVmYXVsdC48L3A+CisKKzxwPkhlcmUgaXMgdGhlIERPTSB0cmVlIGJ1aWx0IGJ5IGxpYnhtbDIgZm9yIHRoZSBwcmV2aW91cyBkb2N1bWVudCBpbiB0aGUKK2RlZmF1bHQgY2FzZTo8L3A+Cis8cHJlPi9nbm9tZS9zcmMvZ25vbWUteG1sIC0mZ3Q7IC4veG1sbGludCAtLWRlYnVnIHRlc3QvZW50MQorRE9DVU1FTlQKK3ZlcnNpb249MS4wCisgICBFTEVNRU5UIEVYQU1QTEUKKyAgICAgVEVYVAorICAgICBjb250ZW50PQorICAgICBFTlRJVFlfUkVGCisgICAgICAgSU5URVJOQUxfR0VORVJBTF9FTlRJVFkgeG1sCisgICAgICAgY29udGVudD1FeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZQorICAgICBURVhUCisgICAgIGNvbnRlbnQ9PC9wcmU+CisKKzxwPkFuZCBoZXJlIGlzIHRoZSByZXN1bHQgd2hlbiBzdWJzdGl0dXRpbmcgZW50aXRpZXM6PC9wPgorPHByZT4vZ25vbWUvc3JjL2dub21lLXhtbCAtJmd0OyAuL3Rlc3RlciAtLWRlYnVnIC0tbm9lbnQgdGVzdC9lbnQxCitET0NVTUVOVAordmVyc2lvbj0xLjAKKyAgIEVMRU1FTlQgRVhBTVBMRQorICAgICBURVhUCisgICAgIGNvbnRlbnQ9ICAgICBFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZTwvcHJlPgorCis8cD5TbywgZW50aXRpZXMgb3Igbm8gZW50aXRpZXM/IEJhc2ljYWxseSwgaXQgZGVwZW5kcyBvbiB5b3VyIHVzZSBjYXNlLiBJCitzdWdnZXN0IHRoYXQgeW91IGtlZXAgdGhlIG5vbi1zdWJzdGl0dXRpbmcgZGVmYXVsdCBiZWhhdmlvdXIgYW5kIGF2b2lkIHVzaW5nCitlbnRpdGllcyBpbiB5b3VyIFhNTCBkb2N1bWVudCBvciBkYXRhIGlmIHlvdSBhcmUgbm90IHdpbGxpbmcgdG8gaGFuZGxlIHRoZQorZW50aXR5IHJlZmVyZW5jZXMgZWxlbWVudHMgaW4gdGhlIERPTSB0cmVlLjwvcD4KKworPHA+Tm90ZSB0aGF0IGF0IHNhdmUgdGltZSBsaWJ4bWwyIGVuZm9yY2VzIHRoZSBjb252ZXJzaW9uIG9mIHRoZSBwcmVkZWZpbmVkCitlbnRpdGllcyB3aGVyZSBuZWNlc3NhcnkgdG8gcHJldmVudCB3ZWxsLWZvcm1lZG5lc3MgcHJvYmxlbXMsIGFuZCB3aWxsIGFsc28KK3RyYW5zcGFyZW50bHkgcmVwbGFjZSB0aG9zZSB3aXRoIGNoYXJzIChpLmUuIGl0IHdpbGwgbm90IGdlbmVyYXRlIGVudGl0eQorcmVmZXJlbmNlIGVsZW1lbnRzIGluIHRoZSBET00gdHJlZSBvciBjYWxsIHRoZSByZWZlcmVuY2UoKSBTQVggY2FsbGJhY2sgd2hlbgorZmluZGluZyB0aGVtIGluIHRoZSBpbnB1dCkuPC9wPgorCis8cD48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMCI+V0FSTklORzwvc3Bhbj46IGhhbmRsaW5nIGVudGl0aWVzCitvbiB0b3Agb2YgdGhlIGxpYnhtbDIgU0FYIGludGVyZmFjZSBpcyBkaWZmaWN1bHQhISEgSWYgeW91IHBsYW4gdG8gdXNlCitub24tcHJlZGVmaW5lZCBlbnRpdGllcyBpbiB5b3VyIGRvY3VtZW50cywgdGhlbiB0aGUgbGVhcm5pbmcgY3VydmUgdG8gaGFuZGxlCit0aGVuIHVzaW5nIHRoZSBTQVggQVBJIG1heSBiZSBsb25nLiBJZiB5b3UgcGxhbiB0byB1c2UgY29tcGxleCBkb2N1bWVudHMsIEkKK3N0cm9uZ2x5IHN1Z2dlc3QgeW91IGNvbnNpZGVyIHVzaW5nIHRoZSBET00gaW50ZXJmYWNlIGluc3RlYWQgYW5kIGxldCBsaWJ4bWwKK2RlYWwgd2l0aCB0aGUgY29tcGxleGl0eSByYXRoZXIgdGhhbiB0cnlpbmcgdG8gZG8gaXQgeW91cnNlbGYuPC9wPgorCis8aDI+PGEgbmFtZT0iTmFtZXNwYWNlcyI+TmFtZXNwYWNlczwvYT48L2gyPgorCis8cD5UaGUgbGlieG1sMiBsaWJyYXJ5IGltcGxlbWVudHMgPGEKK2hyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMvIj5YTUwgbmFtZXNwYWNlczwvYT4gc3VwcG9ydCBieQorcmVjb2duaXppbmcgbmFtZXNwYWNlIGNvbnN0cnVjdHMgaW4gdGhlIGlucHV0LCBhbmQgZG9lcyBuYW1lc3BhY2UgbG9va3VwCithdXRvbWF0aWNhbGx5IHdoZW4gYnVpbGRpbmcgdGhlIERPTSB0cmVlLiBBIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBpcworYXNzb2NpYXRlZCB3aXRoIGFuIGluLW1lbW9yeSBzdHJ1Y3R1cmUgYW5kIGFsbCBlbGVtZW50cyBvciBhdHRyaWJ1dGVzIHdpdGhpbgordGhhdCBuYW1lc3BhY2UgcG9pbnQgdG8gaXQuIEhlbmNlIHRlc3RpbmcgdGhlIG5hbWVzcGFjZSBpcyBhIHNpbXBsZSBhbmQgZmFzdAorZXF1YWxpdHkgb3BlcmF0aW9uIGF0IHRoZSB1c2VyIGxldmVsLjwvcD4KKworPHA+SSBzdWdnZXN0IHRoYXQgcGVvcGxlIHVzaW5nIGxpYnhtbDIgdXNlIGEgbmFtZXNwYWNlLCBhbmQgZGVjbGFyZSBpdCBpbiB0aGUKK3Jvb3QgZWxlbWVudCBvZiB0aGVpciBkb2N1bWVudCBhcyB0aGUgZGVmYXVsdCBuYW1lc3BhY2UuIFRoZW4gdGhleSBkb24ndCBuZWVkCit0byB1c2UgdGhlIHByZWZpeCBpbiB0aGUgY29udGVudCBidXQgd2Ugd2lsbCBoYXZlIGEgYmFzaXMgZm9yIGZ1dHVyZSBzZW1hbnRpYworcmVmaW5lbWVudCBhbmQgIG1lcmdpbmcgb2YgZGF0YSBmcm9tIGRpZmZlcmVudCBzb3VyY2VzLiBUaGlzIGRvZXNuJ3QgaW5jcmVhc2UKK3RoZSBzaXplIG9mIHRoZSBYTUwgb3V0cHV0IHNpZ25pZmljYW50bHksIGJ1dCBzaWduaWZpY2FudGx5IGluY3JlYXNlcyBpdHMKK3ZhbHVlIGluIHRoZSBsb25nLXRlcm0uIEV4YW1wbGU6PC9wPgorPHByZT4mbHQ7bXlkb2MgeG1sbnM9Imh0dHA6Ly9teWRvYy5leGFtcGxlLm9yZy9zY2hlbWFzLyImZ3Q7CisgICAmbHQ7ZWxlbTEmZ3Q7Li4uJmx0Oy9lbGVtMSZndDsKKyAgICZsdDtlbGVtMiZndDsuLi4mbHQ7L2VsZW0yJmd0OworJmx0Oy9teWRvYyZndDs8L3ByZT4KKworPHA+VGhlIG5hbWVzcGFjZSB2YWx1ZSBoYXMgdG8gYmUgYW4gYWJzb2x1dGUgVVJMLCBidXQgdGhlIFVSTCBkb2Vzbid0IGhhdmUgdG8KK3BvaW50IHRvIGFueSBleGlzdGluZyByZXNvdXJjZSBvbiB0aGUgV2ViLiBJdCB3aWxsIGJpbmQgYWxsIHRoZSBlbGVtZW50IGFuZAorYXR0cmlidXRlcyB3aXRoIHRoYXQgVVJMLiBJIHN1Z2dlc3QgdG8gdXNlIGFuIFVSTCB3aXRoaW4gYSBkb21haW4geW91Citjb250cm9sLCBhbmQgdGhhdCB0aGUgVVJMIHNob3VsZCBjb250YWluIHNvbWUga2luZCBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uIGlmCitwb3NzaWJsZS4gRm9yIGV4YW1wbGUsIDxjb2RlPiJodHRwOi8vd3d3Lmdub21lLm9yZy9nbnVtZXJpYy8xLjAvIjwvY29kZT4gaXMgYQorZ29vZCBuYW1lc3BhY2Ugc2NoZW1lLjwvcD4KKworPHA+VGhlbiB3aGVuIHlvdSBsb2FkIGEgZmlsZSwgbWFrZSBzdXJlIHRoYXQgYSBuYW1lc3BhY2UgY2FycnlpbmcgdGhlCit2ZXJzaW9uLWluZGVwZW5kZW50IHByZWZpeCBpcyBpbnN0YWxsZWQgb24gdGhlIHJvb3QgZWxlbWVudCBvZiB5b3VyIGRvY3VtZW50LAorYW5kIGlmIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGRvbid0IG1hdGNoIHNvbWV0aGluZyB5b3Uga25vdywgd2FybiB0aGUgdXNlcgorYW5kIGJlIGxpYmVyYWwgaW4gd2hhdCB5b3UgYWNjZXB0IGFzIHRoZSBpbnB1dC4gQWxzbyBkbyAqbm90KiB0cnkgdG8gYmFzZQorbmFtZXNwYWNlIGNoZWNraW5nIG9uIHRoZSBwcmVmaXggdmFsdWUuICZsdDtmb286dGV4dCZndDsgbWF5IGJlIGV4YWN0bHkgdGhlCitzYW1lIGFzICZsdDtiYXI6dGV4dCZndDsgaW4gYW5vdGhlciBkb2N1bWVudC4gV2hhdCByZWFsbHkgbWF0dGVycyBpcyB0aGUgVVJJCithc3NvY2lhdGVkIHdpdGggdGhlIGVsZW1lbnQgb3IgdGhlIGF0dHJpYnV0ZSwgbm90IHRoZSBwcmVmaXggc3RyaW5nICh3aGljaCBpcworanVzdCBhIHNob3J0Y3V0IGZvciB0aGUgZnVsbCBVUkkpLiBJbiBsaWJ4bWwsIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZXMgaGF2ZSBhbgorPGNvZGU+bnM8L2NvZGU+IGZpZWxkIHBvaW50aW5nIHRvIGFuIHhtbE5zIHN0cnVjdHVyZSBkZXRhaWxpbmcgdGhlIG5hbWVzcGFjZQorcHJlZml4IGFuZCBpdHMgVVJJLjwvcD4KKworPHA+QEBJbnRlcmZhY2VzQEA8L3A+Cis8cHJlPnhtbE5vZGVQdHIgbm9kZTsKK2lmKCFzdHJuY21wKG5vZGUtJmd0O25hbWUsIm15dGFnIiw1KQorICAmYW1wOyZhbXA7IG5vZGUtJmd0O25zCisgICZhbXA7JmFtcDsgIXN0cmNtcChub2RlLSZndDtucy0mZ3Q7aHJlZiwiaHR0cDovL3d3dy5teXNpdGUuY29tL215bnMvMS4wIikpIHsKKyAgLi4uCit9PC9wcmU+CisKKzxwPlVzdWFsbHkgcGVvcGxlIG9iamVjdCB0byB1c2luZyBuYW1lc3BhY2VzIHRvZ2V0aGVyIHdpdGggdmFsaWRpdHkgY2hlY2tpbmcuCitJIHdpbGwgdHJ5IHRvIG1ha2Ugc3VyZSB0aGF0IHVzaW5nIG5hbWVzcGFjZXMgd29uJ3QgYnJlYWsgdmFsaWRpdHkgY2hlY2tpbmcsCitzbyBldmVuIGlmIHlvdSBwbGFuIHRvIHVzZSBvciBjdXJyZW50bHkgYXJlIHVzaW5nIHZhbGlkYXRpb24gSSBzdHJvbmdseQorc3VnZ2VzdCBhZGRpbmcgbmFtZXNwYWNlcyB0byB5b3VyIGRvY3VtZW50LiBBIGRlZmF1bHQgbmFtZXNwYWNlIHNjaGVtZQorPGNvZGU+eG1sbnM9Imh0dHA6Ly8uLi4uIjwvY29kZT4gc2hvdWxkIG5vdCBicmVhayB2YWxpZGl0eSBldmVuIG9uIGxlc3MKK2ZsZXhpYmxlIHBhcnNlcnMuIFVzaW5nIG5hbWVzcGFjZXMgdG8gbWl4IGFuZCBkaWZmZXJlbnRpYXRlIGNvbnRlbnQgY29taW5nCitmcm9tIG11bHRpcGxlIERURHMgd2lsbCBjZXJ0YWlubHkgYnJlYWsgY3VycmVudCB2YWxpZGF0aW9uIHNjaGVtZXMuIFRvIGNoZWNrCitzdWNoIGRvY3VtZW50cyBvbmUgbmVlZHMgdG8gdXNlIHNjaGVtYS12YWxpZGF0aW9uLCB3aGljaCBpcyBzdXBwb3J0ZWQgaW4KK2xpYnhtbDIgYXMgd2VsbC4gU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucmVsYXhuZy5vcmcvIj5yZWxhZ3gtbmc8L2E+IGFuZCA8YQoraHJlZj0iaHR0cDovL3d3dy53M2Mub3JnL1hNTC9TY2hlbWEiPnczYy1zY2hlbWE8L2E+LjwvcD4KKworPGgyPjxhIG5hbWU9IlVwZ3JhZGluZyI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvaDI+CisKKzxwPkluY29tcGF0aWJsZSBjaGFuZ2VzOjwvcD4KKworPHA+VmVyc2lvbiAyIG9mIGxpYnhtbDIgaXMgdGhlIGZpcnN0IHZlcnNpb24gaW50cm9kdWNpbmcgc2VyaW91cyBiYWNrd2FyZAoraW5jb21wYXRpYmxlIGNoYW5nZXMuIFRoZSBtYWluIGdvYWxzIHdlcmU6PC9wPgorPHVsPgorICA8bGk+YSBnZW5lcmFsIGNsZWFudXAuIEEgbnVtYmVyIG9mIG1pc3Rha2VzIGluaGVyaXRlZCBmcm9tIHRoZSB2ZXJ5IGVhcmx5CisgICAgdmVyc2lvbnMgY291bGRuJ3QgYmUgY2hhbmdlZCBkdWUgdG8gY29tcGF0aWJpbGl0eSBjb25zdHJhaW50cy4gRXhhbXBsZQorICAgIHRoZSAiY2hpbGRzIiBlbGVtZW50IGluIHRoZSBub2Rlcy48L2xpPgorICA8bGk+VW5pZm9ybWl6YXRpb24gb2YgdGhlIHZhcmlvdXMgbm9kZXMsIGF0IGxlYXN0IGZvciB0aGVpciBoZWFkZXIgYW5kIGxpbmsKKyAgICBwYXJ0cyAoZG9jLCBwYXJlbnQsIGNoaWxkcmVuLCBwcmV2LCBuZXh0KSwgdGhlIGdvYWwgaXMgYSBzaW1wbGVyCisgICAgcHJvZ3JhbW1pbmcgbW9kZWwgYW5kIHNpbXBsaWZ5aW5nIHRoZSB0YXNrIG9mIHRoZSBET00gaW1wbGVtZW50b3JzLjwvbGk+CisgIDxsaT5iZXR0ZXIgY29uZm9ybWFuY2VzIHRvIHRoZSBYTUwgc3BlY2lmaWNhdGlvbiwgZm9yIGV4YW1wbGUgdmVyc2lvbiAxLngKKyAgICBoYWQgYW4gaGV1cmlzdGljIHRvIHRyeSB0byBkZXRlY3QgaWdub3JhYmxlIHdoaXRlIHNwYWNlcy4gQXMgYSByZXN1bHQgdGhlCisgICAgU0FYIGV2ZW50IGdlbmVyYXRlZCB3ZXJlIGlnbm9yYWJsZVdoaXRlc3BhY2UoKSB3aGlsZSB0aGUgc3BlYyByZXF1aXJlcworICAgIGNoYXJhY3RlcigpIGluIHRoYXQgY2FzZS4gVGhpcyBhbHNvIG1lYW4gdGhhdCBhIG51bWJlciBvZiBET00gbm9kZQorICAgIGNvbnRhaW5pbmcgYmxhbmsgdGV4dCBtYXkgcG9wdWxhdGUgdGhlIERPTSB0cmVlIHdoaWNoIHdlcmUgbm90IHByZXNlbnQKKyAgICBiZWZvcmUuPC9saT4KKzwvdWw+CisKKzxoMz5Ib3cgdG8gZml4IGxpYnhtbC0xLnggY29kZTo8L2gzPgorCis8cD5TbyBjbGllbnQgY29kZSBvZiBsaWJ4bWwgZGVzaWduZWQgdG8gcnVuIHdpdGggdmVyc2lvbiAxLnggbWF5IGhhdmUgdG8gYmUKK2NoYW5nZWQgdG8gY29tcGlsZSBhZ2FpbnN0IHZlcnNpb24gMi54IG9mIGxpYnhtbC4gSGVyZSBpcyBhIGxpc3Qgb2YgY2hhbmdlcwordGhhdCBJIGhhdmUgY29sbGVjdGVkLCB0aGV5IG1heSBub3QgYmUgc3VmZmljaWVudCwgc28gaW4gY2FzZSB5b3UgZmluZCBvdGhlcgorY2hhbmdlIHdoaWNoIGFyZSByZXF1aXJlZCwgPGEgaHJlZj0ibWFpbHRvOkRhbmllbC5WZWlsbGFyZEB3My5vcmciPmRyb3AgbWUgYQorbWFpbDwvYT46PC9wPgorPG9sPgorICA8bGk+VGhlIHBhY2thZ2UgbmFtZSBoYXZlIGNoYW5nZWQgZnJvbSBsaWJ4bWwgdG8gbGlieG1sMiwgdGhlIGxpYnJhcnkgbmFtZQorICAgIGlzIG5vdyAtbHhtbDIgLiBUaGVyZSBpcyBhIG5ldyB4bWwyLWNvbmZpZyBzY3JpcHQgd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8KKyAgICBzZWxlY3QgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgbGlieG1sMjwvbGk+CisgIDxsaT5Ob2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+IGZpZWxkIGhhcyBiZWVuIHJlbmFtZWQKKyAgICA8c3Ryb25nPmNoaWxkcmVuPC9zdHJvbmc+IHNvIHMvY2hpbGRzL2NoaWxkcmVuL2cgc2hvdWxkIGJlICBhcHBsaWVkCisgICAgKHByb2JhYmlsaXR5IG9mIGhhdmluZyAiY2hpbGRzIiBhbnl3aGVyZSBlbHNlIGlzIGNsb3NlIHRvIDArPC9saT4KKyAgPGxpPlRoZSBkb2N1bWVudCBkb24ndCBoYXZlIGFueW1vcmUgYSA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZWxlbWVudCBpdCBoYXMKKyAgICBiZWVuIHJlcGxhY2VkIGJ5IDxzdHJvbmc+Y2hpbGRyZW48L3N0cm9uZz4gYW5kIHVzdWFsbHkgeW91IHdpbGwgZ2V0IGEKKyAgICBsaXN0IG9mIGVsZW1lbnQgaGVyZS4gRm9yIGV4YW1wbGUgYSBEdGQgZWxlbWVudCBmb3IgdGhlIGludGVybmFsIHN1YnNldAorICAgIGFuZCBpdCdzIGRlY2xhcmF0aW9uIG1heSBiZSBmb3VuZCBpbiB0aGF0IGxpc3QsIGFzIHdlbGwgYXMgcHJvY2Vzc2luZworICAgIGluc3RydWN0aW9ucyBvciBjb21tZW50cyBmb3VuZCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGRvY3VtZW50IHJvb3QgZWxlbWVudC4KKyAgICBVc2UgPHN0cm9uZz54bWxEb2NHZXRSb290RWxlbWVudChkb2MpPC9zdHJvbmc+IHRvIGdldCB0aGUgcm9vdCBlbGVtZW50IG9mCisgICAgYSBkb2N1bWVudC4gQWx0ZXJuYXRpdmVseSBpZiB5b3UgYXJlIHN1cmUgdG8gbm90IHJlZmVyZW5jZSBEVERzIG5vciBoYXZlCisgICAgUElzIG9yIGNvbW1lbnRzIGJlZm9yZSBvciBhZnRlciB0aGUgcm9vdCBlbGVtZW50CisgICAgcy8tJmd0O3Jvb3QvLSZndDtjaGlsZHJlbi9nIHdpbGwgcHJvYmFibHkgZG8gaXQuPC9saT4KKyAgPGxpPlRoZSB3aGl0ZSBzcGFjZSBpc3N1ZSwgdGhpcyBvbmUgaXMgbW9yZSBjb21wbGV4LCB1bmxlc3Mgc3BlY2lhbCBjYXNlIG9mCisgICAgdmFsaWRhdGluZyBwYXJzaW5nLCB0aGUgbGluZSBicmVha3MgYW5kIHNwYWNlcyB1c3VhbGx5IHVzZWQgZm9yIGluZGVudGluZworICAgIGFuZCBmb3JtYXR0aW5nIHRoZSBkb2N1bWVudCBjb250ZW50IGJlY29tZXMgc2lnbmlmaWNhbnQuIFNvIHRoZXkgYXJlCisgICAgcmVwb3J0ZWQgYnkgU0FYIGFuZCBpZiB5b3VyIHVzaW5nIHRoZSBET00gdHJlZSwgY29ycmVzcG9uZGluZyBub2RlcyBhcmUKKyAgICBnZW5lcmF0ZWQuIFRvbyBhcHByb2FjaCBjYW4gYmUgdGFrZW46CisgICAgPG9sPgorICAgICAgPGxpPmxhenkgb25lLCB1c2UgdGhlIGNvbXBhdGliaWxpdHkgY2FsbAorICAgICAgICA8c3Ryb25nPnhtbEtlZXBCbGFua3NEZWZhdWx0KDApPC9zdHJvbmc+IGJ1dCBiZSBhd2FyZSB0aGF0IHlvdSBhcmUKKyAgICAgICAgcmVseWluZyBvbiBhIHNwZWNpYWwgKGFuZCBwb3NzaWJseSBicm9rZW4pIHNldCBvZiBoZXVyaXN0aWNzIG9mCisgICAgICAgIGxpYnhtbCB0byBkZXRlY3QgaWdub3JhYmxlIGJsYW5rcy4gRG9uJ3QgY29tcGxhaW4gaWYgaXQgYnJlYWtzIG9yCisgICAgICAgIG1ha2UgeW91ciBhcHBsaWNhdGlvbiBub3QgMTAwJSBjbGVhbiB3LnIudC4gdG8gaXQncyBpbnB1dC48L2xpPgorICAgICAgPGxpPnRoZSBSaWdodCBXYXk6IGNoYW5nZSB5b3UgY29kZSB0byBhY2NlcHQgcG9zc2libHkgaW5zaWduaWZpY2FudAorICAgICAgICBibGFua3MgY2hhcmFjdGVycywgb3IgaGF2ZSB5b3VyIHRyZWUgcG9wdWxhdGVkIHdpdGggd2VpcmQgYmxhbmsgdGV4dAorICAgICAgICBub2Rlcy4gWW91IGNhbiBzcG90IHRoZW0gdXNpbmcgdGhlIGNvbW1vZGl0eSBmdW5jdGlvbgorICAgICAgICA8c3Ryb25nPnhtbElzQmxhbmtOb2RlKG5vZGUpPC9zdHJvbmc+IHJldHVybmluZyAxIGZvciBzdWNoIGJsYW5rCisgICAgICAgIG5vZGVzLjwvbGk+CisgICAgPC9vbD4KKyAgICA8cD5Ob3RlIGFsc28gdGhhdCB3aXRoIHRoZSBuZXcgZGVmYXVsdCB0aGUgb3V0cHV0IGZ1bmN0aW9ucyBkb24ndCBhZGQgYW55CisgICAgZXh0cmEgaW5kZW50YXRpb24gd2hlbiBzYXZpbmcgYSB0cmVlIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gcm91bmQgdHJpcAorICAgIChyZWFkIGFuZCBzYXZlKSB3aXRob3V0IGluZmxhdGluZyB0aGUgZG9jdW1lbnQgd2l0aCBleHRyYSBmb3JtYXR0aW5nCisgICAgY2hhcnMuPC9wPgorICA8L2xpPgorICA8bGk+VGhlIGluY2x1ZGUgcGF0aCBoYXMgY2hhbmdlZCB0byAkcHJlZml4L2xpYnhtbC8gYW5kIHRoZSBpbmNsdWRlcworICAgIHRoZW1zZWx2ZXMgdXNlcyB0aGlzIG5ldyBwcmVmaXggaW4gaW5jbHVkZXMgaW5zdHJ1Y3Rpb25zLi4uIElmIHlvdSBhcmUKKyAgICB1c2luZyAoYXMgZXhwZWN0ZWQpIHRoZQorICAgIDxwcmU+eG1sMi1jb25maWcgLS1jZmxhZ3M8L3ByZT4KKyAgICA8cD5vdXRwdXQgdG8gZ2VuZXJhdGUgeW91IGNvbXBpbGUgY29tbWFuZHMgdGhpcyB3aWxsIHByb2JhYmx5IHdvcmsgb3V0IG9mCisgICAgdGhlIGJveDwvcD4KKyAgPC9saT4KKyAgPGxpPnhtbERldGVjdENoYXJFbmNvZGluZyB0YWtlcyBhbiBleHRyYSBhcmd1bWVudCBpbmRpY2F0aW5nIHRoZSBsZW5ndGggaW4KKyAgICBieXRlIG9mIHRoZSBoZWFkIG9mIHRoZSBkb2N1bWVudCBhdmFpbGFibGUgZm9yIGNoYXJhY3RlciBkZXRlY3Rpb24uPC9saT4KKzwvb2w+CisKKzxoMz5FbnN1cmluZyBib3RoIGxpYnhtbC0xLnggYW5kIGxpYnhtbC0yLnggY29tcGF0aWJpbGl0eTwvaDM+CisKKzxwPlR3byBuZXcgdmVyc2lvbiBvZiBsaWJ4bWwgKDEuOC4xMSkgYW5kIGxpYnhtbDIgKDIuMy40KSBoYXZlIGJlZW4gcmVsZWFzZWQKK3RvIGFsbG93IHNtb290aCB1cGdyYWRlIG9mIGV4aXN0aW5nIGxpYnhtbCB2MWNvZGUgd2hpbGUgcmV0YWluaW5nCitjb21wYXRpYmlsaXR5LiBUaGV5IG9mZmVycyB0aGUgZm9sbG93aW5nOjwvcD4KKzxvbD4KKyAgPGxpPnNpbWlsYXIgaW5jbHVkZSBuYW1pbmcsIG9uZSBzaG91bGQgdXNlCisgICAgPHN0cm9uZz4jaW5jbHVkZSZsdDtsaWJ4bWwvLi4uJmd0Ozwvc3Ryb25nPiBpbiBib3RoIGNhc2VzLjwvbGk+CisgIDxsaT5zaW1pbGFyIGlkZW50aWZpZXJzIGRlZmluZWQgdmlhIG1hY3JvcyBmb3IgdGhlIGNoaWxkIGFuZCByb290IGZpZWxkczoKKyAgICByZXNwZWN0aXZlbHkgPHN0cm9uZz54bWxDaGlsZHJlbk5vZGU8L3N0cm9uZz4gYW5kCisgICAgPHN0cm9uZz54bWxSb290Tm9kZTwvc3Ryb25nPjwvbGk+CisgIDxsaT5hIG5ldyBtYWNybyA8c3Ryb25nPkxJQlhNTF9URVNUX1ZFUlNJT048L3N0cm9uZz4gd2hpY2ggc2hvdWxkIGJlCisgICAgaW5zZXJ0ZWQgb25jZSBpbiB0aGUgY2xpZW50IGNvZGU8L2xpPgorPC9vbD4KKworPHA+U28gdGhlIHJvYWRtYXAgdG8gdXBncmFkZSB5b3VyIGV4aXN0aW5nIGxpYnhtbCBhcHBsaWNhdGlvbnMgaXMgdGhlCitmb2xsb3dpbmc6PC9wPgorPG9sPgorICA8bGk+aW5zdGFsbCB0aGUgIGxpYnhtbC0xLjguOCAoYW5kIGxpYnhtbC1kZXZlbC0xLjguOCkgcGFja2FnZXM8L2xpPgorICA8bGk+ZmluZCBhbGwgb2NjdXJyZW5jZXMgd2hlcmUgdGhlIHhtbERvYyA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZmllbGQgaXMKKyAgICB1c2VkIGFuZCBjaGFuZ2UgaXQgdG8gPHN0cm9uZz54bWxSb290Tm9kZTwvc3Ryb25nPjwvbGk+CisgIDxsaT5zaW1pbGFybHkgZmluZCBhbGwgb2NjdXJyZW5jZXMgd2hlcmUgdGhlIHhtbE5vZGUKKyAgICA8c3Ryb25nPmNoaWxkczwvc3Ryb25nPiBmaWVsZCBpcyB1c2VkIGFuZCBjaGFuZ2UgaXQgdG8KKyAgICA8c3Ryb25nPnhtbENoaWxkcmVuTm9kZTwvc3Ryb25nPjwvbGk+CisgIDxsaT5hZGQgYSA8c3Ryb25nPkxJQlhNTF9URVNUX1ZFUlNJT048L3N0cm9uZz4gbWFjcm8gc29tZXdoZXJlIGluIHlvdXIKKyAgICA8c3Ryb25nPm1haW4oKTwvc3Ryb25nPiBvciBpbiB0aGUgbGlicmFyeSBpbml0IGVudHJ5IHBvaW50PC9saT4KKyAgPGxpPlJlY29tcGlsZSwgY2hlY2sgY29tcGF0aWJpbGl0eSwgaXQgc2hvdWxkIHN0aWxsIHdvcms8L2xpPgorICA8bGk+Q2hhbmdlIHlvdXIgY29uZmlndXJlIHNjcmlwdCB0byBsb29rIGZpcnN0IGZvciB4bWwyLWNvbmZpZyBhbmQgZmFsbAorICAgIGJhY2sgdXNpbmcgeG1sLWNvbmZpZyAuIFVzZSB0aGUgLS1jZmxhZ3MgYW5kIC0tbGlicyBvdXRwdXQgb2YgdGhlIGNvbW1hbmQKKyAgICBhcyB0aGUgSW5jbHVkZSBhbmQgTGlua2luZyBwYXJhbWV0ZXJzIG5lZWRlZCB0byB1c2UgbGlieG1sLjwvbGk+CisgIDxsaT5pbnN0YWxsIGxpYnhtbDItMi4zLnggYW5kICBsaWJ4bWwyLWRldmVsLTIuMy54IChsaWJ4bWwtMS44LnkgYW5kCisgICAgbGlieG1sLWRldmVsLTEuOC55IGNhbiBiZSBrZXB0IHNpbXVsdGFuZW91c2x5KTwvbGk+CisgIDxsaT5yZW1vdmUgeW91ciBjb25maWcuY2FjaGUsIHJlbGF1bmNoIHlvdXIgY29uZmlndXJhdGlvbiBtZWNoYW5pc20sIGFuZAorICAgIHJlY29tcGlsZSwgaWYgc3RlcHMgMiBhbmQgMyB3ZXJlIGRvbmUgcmlnaHQgaXQgc2hvdWxkIGNvbXBpbGUgYXMtaXM8L2xpPgorICA8bGk+VGVzdCB0aGF0IHlvdXIgYXBwbGljYXRpb24gaXMgc3RpbGwgcnVubmluZyBjb3JyZWN0bHksIGlmIG5vdCB0aGlzIG1heQorICAgIGJlIGR1ZSB0byBleHRyYSBlbXB0eSBub2RlcyBkdWUgdG8gZm9ybWF0aW5nIHNwYWNlcyBiZWluZyBrZXB0IGluIGxpYnhtbDIKKyAgICBjb250cmFyeSB0byBsaWJ4bWwxLCBpbiB0aGF0IGNhc2UgaW5zZXJ0IHhtbEtlZXBCbGFua3NEZWZhdWx0KDEpIGluIHlvdXIKKyAgICBjb2RlIGJlZm9yZSBjYWxsaW5nIHRoZSBwYXJzZXIgKG5leHQgdG8KKyAgICA8c3Ryb25nPkxJQlhNTF9URVNUX1ZFUlNJT048L3N0cm9uZz4gaXMgYSBmaW5lIHBsYWNlKS48L2xpPgorPC9vbD4KKworPHA+Rm9sbG93aW5nIHRob3NlIHN0ZXBzIHNob3VsZCB3b3JrLiBJdCB3b3JrZWQgZm9yIHNvbWUgb2YgbXkgb3duIGNvZGUuPC9wPgorCis8cD5MZXQgbWUgcHV0IHNvbWUgZW1waGFzaXMgb24gdGhlIGZhY3QgdGhhdCB0aGVyZSBpcyBmYXIgbW9yZSBjaGFuZ2VzIGZyb20KK2xpYnhtbCAxLnggdG8gMi54IHRoYW4gdGhlIG9uZXMgeW91IG1heSBoYXZlIHRvIHBhdGNoIGZvci4gVGhlIG92ZXJhbGwgY29kZQoraGFzIGJlZW4gY29uc2lkZXJhYmx5IGNsZWFuZWQgdXAgYW5kIHRoZSBjb25mb3JtYW5jZSB0byB0aGUgWE1MIHNwZWNpZmljYXRpb24KK2hhcyBiZWVuIGRyYXN0aWNhbGx5IGltcHJvdmVkIHRvby4gRG9uJ3QgdGFrZSB0aG9zZSBjaGFuZ2VzIGFzIGFuIGV4Y3VzZSB0bworbm90IHVwZ3JhZGUsIGl0IG1heSBjb3N0IGEgbG90IG9uIHRoZSBsb25nIHRlcm0gLi4uPC9wPgorCis8aDI+PGEgbmFtZT0iVGhyZWFkIj5UaHJlYWQgc2FmZXR5PC9hPjwvaDI+CisKKzxwPlN0YXJ0aW5nIHdpdGggMi40LjcsIGxpYnhtbDIgbWFrZXMgcHJvdmlzaW9ucyB0byBlbnN1cmUgdGhhdCBjb25jdXJyZW50Cit0aHJlYWRzIGNhbiBzYWZlbHkgd29yayBpbiBwYXJhbGxlbCBwYXJzaW5nIGRpZmZlcmVudCBkb2N1bWVudHMuIFRoZXJlIGlzCitob3dldmVyIGEgY291cGxlIG9mIHRoaW5ncyB0byBkbyB0byBlbnN1cmUgaXQ6PC9wPgorPHVsPgorICA8bGk+Y29uZmlndXJlIHRoZSBsaWJyYXJ5IGFjY29yZGluZ2x5IHVzaW5nIHRoZSAtLXdpdGgtdGhyZWFkcyBvcHRpb25zPC9saT4KKyAgPGxpPmNhbGwgeG1sSW5pdFBhcnNlcigpIGluIHRoZSAibWFpbiIgdGhyZWFkIGJlZm9yZSB1c2luZyBhbnkgb2YgdGhlCisgICAgbGlieG1sMiBBUEkgKGV4Y2VwdCBwb3NzaWJseSBzZWxlY3RpbmcgYSBkaWZmZXJlbnQgbWVtb3J5IGFsbG9jYXRvcik8L2xpPgorPC91bD4KKworPHA+Tm90ZSB0aGF0IHRoZSB0aHJlYWQgc2FmZXR5IGNhbm5vdCBiZSBlbnN1cmVkIGZvciBtdWx0aXBsZSB0aHJlYWRzIHNoYXJpbmcKK3RoZSBzYW1lIGRvY3VtZW50LCB0aGUgbG9ja2luZyBtdXN0IGJlIGRvbmUgYXQgdGhlIGFwcGxpY2F0aW9uIGxldmVsLCBsaWJ4bWwKK2V4cG9ydHMgYSBiYXNpYyBtdXRleCBhbmQgcmVlbnRyYW50IG11dGV4ZXMgQVBJIGluICZsdDtsaWJ4bWwvdGhyZWFkcy5oJmd0Oy4KK1RoZSBwYXJ0cyBvZiB0aGUgbGlicmFyeSBjaGVja2VkIGZvciB0aHJlYWQgc2FmZXR5IGFyZTo8L3A+Cis8dWw+CisgIDxsaT5jb25jdXJyZW50IGxvYWRpbmc8L2xpPgorICA8bGk+ZmlsZSBhY2Nlc3MgcmVzb2x1dGlvbjwvbGk+CisgIDxsaT5jYXRhbG9nIGFjY2VzczwvbGk+CisgIDxsaT5jYXRhbG9nIGJ1aWxkaW5nPC9saT4KKyAgPGxpPmVudGl0aWVzIGxvb2t1cC9hY2Nlc3NlczwvbGk+CisgIDxsaT52YWxpZGF0aW9uPC9saT4KKyAgPGxpPmdsb2JhbCB2YXJpYWJsZXMgcGVyLXRocmVhZCBvdmVycmlkZTwvbGk+CisgIDxsaT5tZW1vcnkgaGFuZGxpbmc8L2xpPgorPC91bD4KKworPHA+WFBhdGggaXMgc3VwcG9zZWQgdG8gYmUgdGhyZWFkIHNhZmUgbm93LCBidXQgdGhpcyB3YXNuJ3QgdGVzdGVkCitzZXJpb3VzbHkuPC9wPgorCis8aDI+PGEgbmFtZT0iRE9NIj48L2E+PGEgbmFtZT0iUHJpbmNpcGxlcyI+RE9NIFByaW5jaXBsZXM8L2E+PC9oMj4KKworPHA+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvRE9NLyI+RE9NPC9hPiBzdGFuZHMgZm9yIHRoZSA8ZW0+RG9jdW1lbnQKK09iamVjdCBNb2RlbDwvZW0+OyB0aGlzIGlzIGFuIEFQSSBmb3IgYWNjZXNzaW5nIFhNTCBvciBIVE1MIHN0cnVjdHVyZWQKK2RvY3VtZW50cy4gTmF0aXZlIHN1cHBvcnQgZm9yIERPTSBpbiBHbm9tZSBpcyBvbiB0aGUgd2F5IChtb2R1bGUgZ25vbWUtZG9tKSwKK2FuZCB3aWxsIGJlIGJhc2VkIG9uIGdub21lLXhtbC4gVGhpcyB3aWxsIGJlIGEgZmFyIGNsZWFuZXIgaW50ZXJmYWNlIHRvCittYW5pcHVsYXRlIFhNTCBmaWxlcyB3aXRoaW4gR25vbWUgc2luY2UgaXQgd29uJ3QgZXhwb3NlIHRoZSBpbnRlcm5hbAorc3RydWN0dXJlLjwvcD4KKworPHA+VGhlIGN1cnJlbnQgRE9NIGltcGxlbWVudGF0aW9uIG9uIHRvcCBvZiBsaWJ4bWwyIGlzIHRoZSA8YQoraHJlZj0iaHR0cDovL3N2bi5nbm9tZS5vcmcvdmlld3ZjL2dkb21lMi90cnVuay8iPmdkb21lMiBHbm9tZSBtb2R1bGU8L2E+LCB0aGlzCitpcyBhIGZ1bGwgRE9NIGludGVyZmFjZSwgdGhhbmtzIHRvIFBhb2xvIENhc2FyaW5pLCBjaGVjayB0aGUgPGEKK2hyZWY9Imh0dHA6Ly9nZG9tZTIuY3MudW5pYm8uaXQvIj5HZG9tZTIgaG9tZXBhZ2U8L2E+IGZvciBtb3JlCitpbmZvcm1hdGlvbi48L3A+CisKKzxoMj48YSBuYW1lPSJFeGFtcGxlIj48L2E+PGEgbmFtZT0icmVhbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9oMj4KKworPHA+SGVyZSBpcyBhIHJlYWwgc2l6ZSBleGFtcGxlLCB3aGVyZSB0aGUgYWN0dWFsIGNvbnRlbnQgb2YgdGhlIGFwcGxpY2F0aW9uCitkYXRhIGlzIG5vdCBrZXB0IGluIHRoZSBET00gdHJlZSBidXQgdXNlcyBpbnRlcm5hbCBzdHJ1Y3R1cmVzLiBJdCBpcyBiYXNlZCBvbgorYSBwcm9wb3NhbCB0byBrZWVwIGEgZGF0YWJhc2Ugb2Ygam9icyByZWxhdGVkIHRvIEdub21lLCB3aXRoIGFuIFhNTCBiYXNlZAorc3RvcmFnZSBzdHJ1Y3R1cmUuIEhlcmUgaXMgYW4gPGEgaHJlZj0iZ2pvYnMueG1sIj5YTUwgZW5jb2RlZCBqb2JzCitiYXNlPC9hPjo8L3A+Cis8cHJlPiZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OworJmx0O2dqb2I6SGVscGluZyB4bWxuczpnam9iPSJodHRwOi8vd3d3Lmdub21lLm9yZy9zb21lLWxvY2F0aW9uIiZndDsKKyAgJmx0O2dqb2I6Sm9icyZndDsKKworICAgICZsdDtnam9iOkpvYiZndDsKKyAgICAgICZsdDtnam9iOlByb2plY3QgSUQ9IjMiLyZndDsKKyAgICAgICZsdDtnam9iOkFwcGxpY2F0aW9uJmd0O0dCYWNrdXAmbHQ7L2dqb2I6QXBwbGljYXRpb24mZ3Q7CisgICAgICAmbHQ7Z2pvYjpDYXRlZ29yeSZndDtEZXZlbG9wbWVudCZsdDsvZ2pvYjpDYXRlZ29yeSZndDsKKworICAgICAgJmx0O2dqb2I6VXBkYXRlJmd0OworICAgICAgICAmbHQ7Z2pvYjpTdGF0dXMmZ3Q7T3BlbiZsdDsvZ2pvYjpTdGF0dXMmZ3Q7CisgICAgICAgICZsdDtnam9iOk1vZGlmaWVkJmd0O01vbiwgMDcgSnVuIDE5OTkgMjA6Mjc6NDUgLTA0MDAgTUVUIERTVCZsdDsvZ2pvYjpNb2RpZmllZCZndDsKKyAgICAgICAgJmx0O2dqb2I6U2FsYXJ5Jmd0O1VTRCAwLjAwJmx0Oy9nam9iOlNhbGFyeSZndDsKKyAgICAgICZsdDsvZ2pvYjpVcGRhdGUmZ3Q7CisKKyAgICAgICZsdDtnam9iOkRldmVsb3BlcnMmZ3Q7CisgICAgICAgICZsdDtnam9iOkRldmVsb3BlciZndDsKKyAgICAgICAgJmx0Oy9nam9iOkRldmVsb3BlciZndDsKKyAgICAgICZsdDsvZ2pvYjpEZXZlbG9wZXJzJmd0OworCisgICAgICAmbHQ7Z2pvYjpDb250YWN0Jmd0OworICAgICAgICAmbHQ7Z2pvYjpQZXJzb24mZ3Q7TmF0aGFuIENsZW1vbnMmbHQ7L2dqb2I6UGVyc29uJmd0OworICAgICAgICAmbHQ7Z2pvYjpFbWFpbCZndDtuYXRoYW5Ad2luZHNvZnN0b3JtLm5ldCZsdDsvZ2pvYjpFbWFpbCZndDsKKyAgICAgICAgJmx0O2dqb2I6Q29tcGFueSZndDsKKyAgICAgICAgJmx0Oy9nam9iOkNvbXBhbnkmZ3Q7CisgICAgICAgICZsdDtnam9iOk9yZ2FuaXNhdGlvbiZndDsKKyAgICAgICAgJmx0Oy9nam9iOk9yZ2FuaXNhdGlvbiZndDsKKyAgICAgICAgJmx0O2dqb2I6V2VicGFnZSZndDsKKyAgICAgICAgJmx0Oy9nam9iOldlYnBhZ2UmZ3Q7CisgICAgICAgICZsdDtnam9iOlNuYWlsbWFpbCZndDsKKyAgICAgICAgJmx0Oy9nam9iOlNuYWlsbWFpbCZndDsKKyAgICAgICAgJmx0O2dqb2I6UGhvbmUmZ3Q7CisgICAgICAgICZsdDsvZ2pvYjpQaG9uZSZndDsKKyAgICAgICZsdDsvZ2pvYjpDb250YWN0Jmd0OworCisgICAgICAmbHQ7Z2pvYjpSZXF1aXJlbWVudHMmZ3Q7CisgICAgICBUaGUgcHJvZ3JhbSBzaG91bGQgYmUgcmVsZWFzZWQgYXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgdGhlIEdQTC4KKyAgICAgICZsdDsvZ2pvYjpSZXF1aXJlbWVudHMmZ3Q7CisKKyAgICAgICZsdDtnam9iOlNraWxscyZndDsKKyAgICAgICZsdDsvZ2pvYjpTa2lsbHMmZ3Q7CisKKyAgICAgICZsdDtnam9iOkRldGFpbHMmZ3Q7CisgICAgICBBIEdOT01FIGJhc2VkIHN5c3RlbSB0aGF0IHdpbGwgYWxsb3cgYSBzdXBlcnVzZXIgdG8gY29uZmlndXJlIAorICAgICAgY29tcHJlc3NlZCBhbmQgdW5jb21wcmVzc2VkIGZpbGVzIGFuZC9vciBmaWxlIHN5c3RlbXMgdG8gYmUgYmFja2VkIAorICAgICAgdXAgd2l0aCBhIHN1cHBvcnRlZCBtZWRpYSBpbiB0aGUgc3lzdGVtLiAgVGhpcyBzaG91bGQgYmUgYWJsZSB0byAKKyAgICAgIHBlcmZvcm0gdmlhIGZpbmQgY29tbWFuZHMgZ2VuZXJhdGluZyBhIGxpc3Qgb2YgZmlsZXMgdGhhdCBhcmUgcGFzc2VkIAorICAgICAgdG8gdGFyLCBkZCwgY3BpbywgY3AsIGd6aXAsIGV0Yy4sIHRvIGJlIGRpcmVjdGVkIHRvIHRoZSB0YXBlIG1hY2hpbmUgCisgICAgICBvciB2aWEgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gdGhlIGZpbGVzeXN0ZW0gaXRzZWxmLiBFbWFpbCAKKyAgICAgIG5vdGlmaWNhdGlvbiBhbmQgR1VJIHN0YXR1cyBkaXNwbGF5IHZlcnkgaW1wb3J0YW50LgorICAgICAgJmx0Oy9nam9iOkRldGFpbHMmZ3Q7CisKKyAgICAmbHQ7L2dqb2I6Sm9iJmd0OworCisgICZsdDsvZ2pvYjpKb2JzJmd0OworJmx0Oy9nam9iOkhlbHBpbmcmZ3Q7PC9wcmU+CisKKzxwPldoaWxlIGxvYWRpbmcgdGhlIFhNTCBmaWxlIGludG8gYW4gaW50ZXJuYWwgRE9NIHRyZWUgaXMgYSBtYXR0ZXIgb2YKK2NhbGxpbmcgb25seSBhIGNvdXBsZSBvZiBmdW5jdGlvbnMsIGJyb3dzaW5nIHRoZSB0cmVlIHRvIGdhdGhlciB0aGUgZGF0YSBhbmQKK2dlbmVyYXRlIHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmVzIGlzIGhhcmRlciwgYW5kIG1vcmUgZXJyb3IgcHJvbmUuPC9wPgorCis8cD5UaGUgc3VnZ2VzdGVkIHByaW5jaXBsZSBpcyB0byBiZSB0b2xlcmFudCB3aXRoIHJlc3BlY3QgdG8gdGhlIGlucHV0CitzdHJ1Y3R1cmUuIEZvciBleGFtcGxlLCB0aGUgb3JkZXJpbmcgb2YgdGhlIGF0dHJpYnV0ZXMgaXMgbm90IHNpZ25pZmljYW50LAordGhlIFhNTCBzcGVjaWZpY2F0aW9uIGlzIGNsZWFyIGFib3V0IGl0LiBJdCdzIGFsc28gdXN1YWxseSBhIGdvb2QgaWRlYSBub3QgdG8KK2RlcGVuZCBvbiB0aGUgb3JkZXIgb2YgdGhlIGNoaWxkcmVuIG9mIGEgZ2l2ZW4gbm9kZSwgdW5sZXNzIGl0IHJlYWxseSBtYWtlcwordGhpbmdzIGhhcmRlci4gSGVyZSBpcyBzb21lIGNvZGUgdG8gcGFyc2UgdGhlIGluZm9ybWF0aW9uIGZvciBhIHBlcnNvbjo8L3A+Cis8cHJlPi8qCisgKiBBIHBlcnNvbiByZWNvcmQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgcGVyc29uIHsKKyAgICBjaGFyICpuYW1lOworICAgIGNoYXIgKmVtYWlsOworICAgIGNoYXIgKmNvbXBhbnk7CisgICAgY2hhciAqb3JnYW5pc2F0aW9uOworICAgIGNoYXIgKnNtYWlsOworICAgIGNoYXIgKndlYlBhZ2U7CisgICAgY2hhciAqcGhvbmU7Cit9IHBlcnNvbiwgKnBlcnNvblB0cjsKKworLyoKKyAqIEFuZCB0aGUgY29kZSBuZWVkZWQgdG8gcGFyc2UgaXQKKyAqLworcGVyc29uUHRyIHBhcnNlUGVyc29uKHhtbERvY1B0ciBkb2MsIHhtbE5zUHRyIG5zLCB4bWxOb2RlUHRyIGN1cikgeworICAgIHBlcnNvblB0ciByZXQgPSBOVUxMOworCitERUJVRygicGFyc2VQZXJzb25cbiIpOworICAgIC8qCisgICAgICogYWxsb2NhdGUgdGhlIHN0cnVjdAorICAgICAqLworICAgIHJldCA9IChwZXJzb25QdHIpIG1hbGxvYyhzaXplb2YocGVyc29uKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YocGVyc29uKSk7CisKKyAgICAvKiBXZSBkb24ndCBjYXJlIHdoYXQgdGhlIHRvcCBsZXZlbCBlbGVtZW50IG5hbWUgaXMgKi8KKyAgICBjdXIgPSBjdXItJmd0O3htbENoaWxkcmVuTm9kZTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKCghc3RyY21wKGN1ci0mZ3Q7bmFtZSwgIlBlcnNvbiIpKSAmYW1wOyZhbXA7IChjdXItJmd0O25zID09IG5zKSkKKyAgICAgICAgICAgIHJldC0mZ3Q7bmFtZSA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgY3VyLSZndDt4bWxDaGlsZHJlbk5vZGUsIDEpOworICAgICAgICBpZiAoKCFzdHJjbXAoY3VyLSZndDtuYW1lLCAiRW1haWwiKSkgJmFtcDsmYW1wOyAoY3VyLSZndDtucyA9PSBucykpCisgICAgICAgICAgICByZXQtJmd0O2VtYWlsID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBjdXItJmd0O3htbENoaWxkcmVuTm9kZSwgMSk7CisgICAgICAgIGN1ciA9IGN1ci0mZ3Q7bmV4dDsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK308L3ByZT4KKworPHA+SGVyZSBhcmUgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIG5vdGljZTo8L3A+Cis8dWw+CisgIDxsaT5Vc3VhbGx5IGEgcmVjdXJzaXZlIHBhcnNpbmcgc3R5bGUgaXMgdGhlIG1vcmUgY29udmVuaWVudCBvbmU6IFhNTCBkYXRhCisgICAgaXMgYnkgbmF0dXJlIHN1YmplY3QgdG8gcmVwZXRpdGl2ZSBjb25zdHJ1Y3RzIGFuZCB1c3VhbGx5IGV4aGliaXRzIGhpZ2hseQorICAgIHN0cnVjdHVyZWQgcGF0dGVybnMuPC9saT4KKyAgPGxpPlRoZSB0d28gYXJndW1lbnRzIG9mIHR5cGUgPGVtPnhtbERvY1B0cjwvZW0+IGFuZCA8ZW0+eG1sTnNQdHI8L2VtPiwKKyAgICBpLmUuIHRoZSBwb2ludGVyIHRvIHRoZSBnbG9iYWwgWE1MIGRvY3VtZW50IGFuZCB0aGUgbmFtZXNwYWNlIHJlc2VydmVkIHRvCisgICAgdGhlIGFwcGxpY2F0aW9uLiBEb2N1bWVudCB3aWRlIGluZm9ybWF0aW9uIGFyZSBuZWVkZWQgZm9yIGV4YW1wbGUgdG8KKyAgICBkZWNvZGUgZW50aXRpZXMgYW5kIGl0J3MgYSBnb29kIGNvZGluZyBwcmFjdGljZSB0byBkZWZpbmUgYSBuYW1lc3BhY2UgZm9yCisgICAgeW91ciBhcHBsaWNhdGlvbiBzZXQgb2YgZGF0YSBhbmQgdGVzdCB0aGF0IHRoZSBlbGVtZW50IGFuZCBhdHRyaWJ1dGVzCisgICAgeW91J3JlIGFuYWx5emluZyBhY3R1YWxseSBwZXJ0YWlucyB0byB5b3VyIGFwcGxpY2F0aW9uIHNwYWNlLiBUaGlzIGlzCisgICAgZG9uZSBieSBhIHNpbXBsZSBlcXVhbGl0eSB0ZXN0IChjdXItJmd0O25zID09IG5zKS48L2xpPgorICA8bGk+VG8gcmV0cmlldmUgdGV4dCBhbmQgYXR0cmlidXRlcyB2YWx1ZSwgeW91IGNhbiB1c2UgdGhlIGZ1bmN0aW9uCisgICAgPGVtPnhtbE5vZGVMaXN0R2V0U3RyaW5nPC9lbT4gdG8gZ2F0aGVyIGFsbCB0aGUgdGV4dCBhbmQgZW50aXR5IHJlZmVyZW5jZQorICAgIG5vZGVzIGdlbmVyYXRlZCBieSB0aGUgRE9NIG91dHB1dCBhbmQgcHJvZHVjZSBhbiBzaW5nbGUgdGV4dCBzdHJpbmcuPC9saT4KKzwvdWw+CisKKzxwPkhlcmUgaXMgYW5vdGhlciBwaWVjZSBvZiBjb2RlIHVzZWQgdG8gcGFyc2UgYW5vdGhlciBsZXZlbCBvZiB0aGUKK3N0cnVjdHVyZTo8L3A+Cis8cHJlPiNpbmNsdWRlICZsdDtsaWJ4bWwvdHJlZS5oJmd0OworLyoKKyAqIGEgRGVzY3JpcHRpb24gZm9yIGEgSm9iCisgKi8KK3R5cGVkZWYgc3RydWN0IGpvYiB7CisgICAgY2hhciAqcHJvamVjdElEOworICAgIGNoYXIgKmFwcGxpY2F0aW9uOworICAgIGNoYXIgKmNhdGVnb3J5OworICAgIHBlcnNvblB0ciBjb250YWN0OworICAgIGludCBuYkRldmVsb3BlcnM7CisgICAgcGVyc29uUHRyIGRldmVsb3BlcnNbMTAwXTsgLyogdXNpbmcgZHluYW1pYyBhbGxvYyBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlICovCit9IGpvYiwgKmpvYlB0cjsKKworLyoKKyAqIEFuZCB0aGUgY29kZSBuZWVkZWQgdG8gcGFyc2UgaXQKKyAqLworam9iUHRyIHBhcnNlSm9iKHhtbERvY1B0ciBkb2MsIHhtbE5zUHRyIG5zLCB4bWxOb2RlUHRyIGN1cikgeworICAgIGpvYlB0ciByZXQgPSBOVUxMOworCitERUJVRygicGFyc2VKb2JcbiIpOworICAgIC8qCisgICAgICogYWxsb2NhdGUgdGhlIHN0cnVjdAorICAgICAqLworICAgIHJldCA9IChqb2JQdHIpIG1hbGxvYyhzaXplb2Yoam9iKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2Yoam9iKSk7CisKKyAgICAvKiBXZSBkb24ndCBjYXJlIHdoYXQgdGhlIHRvcCBsZXZlbCBlbGVtZW50IG5hbWUgaXMgKi8KKyAgICBjdXIgPSBjdXItJmd0O3htbENoaWxkcmVuTm9kZTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgCisgICAgICAgIGlmICgoIXN0cmNtcChjdXItJmd0O25hbWUsICJQcm9qZWN0IikpICZhbXA7JmFtcDsgKGN1ci0mZ3Q7bnMgPT0gbnMpKSB7CisgICAgICAgICAgICByZXQtJmd0O3Byb2plY3RJRCA9IHhtbEdldFByb3AoY3VyLCAiSUQiKTsKKyAgICAgICAgICAgIGlmIChyZXQtJmd0O3Byb2plY3RJRCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJQcm9qZWN0IGhhcyBubyBJRFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCghc3RyY21wKGN1ci0mZ3Q7bmFtZSwgIkFwcGxpY2F0aW9uIikpICZhbXA7JmFtcDsgKGN1ci0mZ3Q7bnMgPT0gbnMpKQorICAgICAgICAgICAgcmV0LSZndDthcHBsaWNhdGlvbiA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgY3VyLSZndDt4bWxDaGlsZHJlbk5vZGUsIDEpOworICAgICAgICBpZiAoKCFzdHJjbXAoY3VyLSZndDtuYW1lLCAiQ2F0ZWdvcnkiKSkgJmFtcDsmYW1wOyAoY3VyLSZndDtucyA9PSBucykpCisgICAgICAgICAgICByZXQtJmd0O2NhdGVnb3J5ID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBjdXItJmd0O3htbENoaWxkcmVuTm9kZSwgMSk7CisgICAgICAgIGlmICgoIXN0cmNtcChjdXItJmd0O25hbWUsICJDb250YWN0IikpICZhbXA7JmFtcDsgKGN1ci0mZ3Q7bnMgPT0gbnMpKQorICAgICAgICAgICAgcmV0LSZndDtjb250YWN0ID0gcGFyc2VQZXJzb24oZG9jLCBucywgY3VyKTsKKyAgICAgICAgY3VyID0gY3VyLSZndDtuZXh0OworICAgIH0KKworICAgIHJldHVybihyZXQpOworfTwvcHJlPgorCis8cD5PbmNlIHlvdSBhcmUgdXNlZCB0byBpdCwgd3JpdGluZyB0aGlzIGtpbmQgb2YgY29kZSBpcyBxdWl0ZSBzaW1wbGUsIGJ1dAorYm9yaW5nLiBVbHRpbWF0ZWx5LCBpdCBjb3VsZCBiZSBwb3NzaWJsZSB0byB3cml0ZSBzdHViYmVycyB0YWtpbmcgZWl0aGVyIEMKK2RhdGEgc3RydWN0dXJlIGRlZmluaXRpb25zLCBhIHNldCBvZiBYTUwgZXhhbXBsZXMgb3IgYW4gWE1MIERURCBhbmQgcHJvZHVjZQordGhlIGNvZGUgbmVlZGVkIHRvIGltcG9ydCBhbmQgZXhwb3J0IHRoZSBjb250ZW50IGJldHdlZW4gQyBkYXRhIGFuZCBYTUwKK3N0b3JhZ2UuIFRoaXMgaXMgbGVmdCBhcyBhbiBleGVyY2lzZSB0byB0aGUgcmVhZGVyIDotKTwvcD4KKworPHA+RmVlbCBmcmVlIHRvIHVzZSA8YSBocmVmPSJleGFtcGxlL2dqb2JyZWFkLmMiPnRoZSBjb2RlIGZvciB0aGUgZnVsbCBDCitwYXJzaW5nIGV4YW1wbGU8L2E+IGFzIGEgdGVtcGxhdGUsIGl0IGlzIGFsc28gYXZhaWxhYmxlIHdpdGggTWFrZWZpbGUgaW4gdGhlCitHbm9tZSBTVk4gYmFzZSB1bmRlciBsaWJ4bWwyL2V4YW1wbGU8L3A+CisKKzxoMj48YSBuYW1lPSJDb250cmlidXRpIj5Db250cmlidXRpb25zPC9hPjwvaDI+Cis8dWw+CisgIDxsaT5Cam9ybiBSZWVzZSwgV2lsbGlhbSBCcmFjayBhbmQgVGhvbWFzIEJyb3llciBoYXZlIHByb3ZpZGVkIGEgbnVtYmVyIG9mCisgICAgcGF0Y2hlcywgR2FyeSBQZW5uaW5ndG9uIHdvcmtlZCBvbiB0aGUgdmFsaWRhdGlvbiBBUEksIHRocmVhZGluZyBzdXBwb3J0CisgICAgYW5kIFNvbGFyaXMgcG9ydC48L2xpPgorICA8bGk+Sm9obiBGbGVjayBoZWxwcyBtYWludGFpbmluZyB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgbWFuIHBhZ2VzLjwvbGk+CisgIDxsaT48YSBocmVmPSJtYWlsdG86aWdvckB6bGF0a292aWMuY29tIj5JZ29yICBabGF0a292aWM8L2E+IGlzIG5vdyB0aGUKKyAgICBtYWludGFpbmVyIG9mIHRoZSBXaW5kb3dzIHBvcnQsIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC9pbmRleC5odG1sIj5oZSBwcm92aWRlcworICAgIGJpbmFyaWVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJtYWlsdG86R2FyeS5QZW5uaW5ndG9uQHN1bi5jb20iPkdhcnkgUGVubmluZ3RvbjwvYT4gcHJvdmlkZXMKKyAgICA8YSBocmVmPSJodHRwOi8vZ2FyeXBlbm5pbmd0b24ubmV0L2xpYnhtbDIvIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+CisgIDxsaT48YQorICAgIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvMjAwMS1NYXJjaC9tc2cwMDAxNC5odG1sIj5NYXR0CisgICAgU2VyZ2VhbnQ8L2E+IGRldmVsb3BlZCA8YQorICAgIGhyZWY9Imh0dHA6Ly9heGtpdC5vcmcvZG93bmxvYWQvIj5YTUw6OkxpYlhTTFQ8L2E+LCBhIFBlcmwgd3JhcHBlciBmb3IKKyAgICBsaWJ4bWwyL2xpYnhzbHQgYXMgcGFydCBvZiB0aGUgPGEgaHJlZj0iaHR0cDovL2F4a2l0LmNvbS8iPkF4S2l0IFhNTAorICAgIGFwcGxpY2F0aW9uIHNlcnZlcjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0ibWFpbHRvOmZuYXR0ZXJAZ214Lm5ldCI+RmVsaXggTmF0dGVyPC9hPiBhbmQgPGEKKyAgICBocmVmPSJtYWlsdG86Z2VlcnRrQGFpLnJ1Zy5ubCI+R2VlcnQgS2xvb3N0ZXJtYW48L2E+IHByb3ZpZGUgPGEKKyAgICBocmVmPSJsaWJ4bWwtZG9jLmVsIj5hbiBlbWFjcyBtb2R1bGU8L2E+IHRvIGxvb2t1cCBsaWJ4bWwoMikgZnVuY3Rpb25zCisgICAgZG9jdW1lbnRhdGlvbjwvbGk+CisgIDxsaT48YSBocmVmPSJtYWlsdG86c2hlcndpbkBubG0ubmloLmdvdiI+Wml5aW5nIFNoZXJ3aW48L2E+IHByb3ZpZGVkIDxhCisgICAgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLzA0ODguaHRtbCI+bWFuIHBhZ2VzPC9hPjwvbGk+CisgIDxsaT50aGVyZSBpcyBhIG1vZHVsZSBmb3IgPGEKKyAgICBocmVmPSJodHRwOi8vYWNzLW1pc2Muc291cmNlZm9yZ2UubmV0L25zeG1sLmh0bWwiPmxpYnhtbC9saWJ4c2x0IHN1cHBvcnQKKyAgICBpbiBPcGVuTlNEL0FPTFNlcnZlcjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0ibWFpbHRvOmRrdWhsbWFuQGN1dHRlci5yZXh4LmNvbSI+RGF2ZSBLdWhsbWFuPC9hPiBwcm92aWRlZCB0aGUKKyAgICBmaXJzdCB2ZXJzaW9uIG9mIGxpYnhtbC9saWJ4c2x0IDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5yZXh4LmNvbS9+ZGt1aGxtYW4iPndyYXBwZXJzIGZvciBQeXRob248L2E+PC9saT4KKyAgPGxpPlBldHIgS296ZWxrYSBwcm92aWRlcyA8YQorICAgIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMiPlBhc2NhbCB1bml0cyB0byBnbHVlCisgICAgbGlieG1sMjwvYT4gd2l0aCBLeWxpeCBhbmQgRGVscGhpIGFuZCBvdGhlciBQYXNjYWwgY29tcGlsZXJzPC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzphbGVrc2V5QGFsZWtzZXkuY29tIj5BbGVrc2V5IFNhbmluPC9hPiBpbXBsZW1lbnRlZCB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TaWduYXR1cmUvIj5YTUwgQ2Fub25pY2FsaXphdGlvbiBhbmQgWE1MCisgICAgRGlnaXRhbCBTaWduYXR1cmU8L2E+IDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5pbXBsZW1lbnRhdGlvbnMgZm9yIGxpYnhtbDI8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Im1haWx0bzpTdGV2ZS5CYWxsQGV4cGxhaW4uY29tLmF1Ij5TdGV2ZSBCYWxsPC9hPiBhbmQKKyAgICBjb250cmlidXRvcnMgbWFpbnRhaW4gPGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj50Y2wKKyAgICBiaW5kaW5ncyBmb3IgbGlieG1sMiBhbmQgbGlieHNsdDwvYT4sIGFzIHdlbGwgYXMgPGEKKyAgICBocmVmPSJodHRwOi8vdGNseG1sLnNmLm5ldC90a3htbGxpbnQuaHRtbCI+dGt4bWxsaW50PC9hPiBhIEdVSSBmb3IKKyAgICB4bWxsaW50IGFuZCA8YSBocmVmPSJodHRwOi8vdGNseG1sLnNmLm5ldC90a3hzbHRwcm9jLmh0bWwiPnRreHNsdHByb2M8L2E+CisgICAgYSBHVUkgZm9yIHhzbHRwcm9jLjwvbGk+Cis8L3VsPgorCis8cD48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy94bWxjYXRhbG9nLjEgYi9saWJ4bWwyLTIuNy43L2RvYy94bWxjYXRhbG9nLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY5Mjg3ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3htbGNhdGFsb2cuMQpAQCAtMCwwICsxLDIyOSBAQAorLlwiICoqIFlvdSBwcm9iYWJseSBkbyBub3Qgd2FudCB0byBlZGl0IHRoaXMgZmlsZSBkaXJlY3RseSAqKgorLlwiIEl0IHdhcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIERvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzICh2ZXJzaW9uIDEuNjkuMSkuCisuXCIgSW5zdGVhZCBvZiBtYW51YWxseSBlZGl0aW5nIGl0LCB5b3UgcHJvYmFibHkgc2hvdWxkIGVkaXQgdGhlIERvY0Jvb2sgWE1MCisuXCIgc291cmNlIGZvciBpdCBhbmQgdGhlbiB1c2UgdGhlIERvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIHRvIHJlZ2VuZXJhdGUgaXQuCisuVEggIlhNTENBVEFMT0ciICIxIiAiJERhdGUkIiAibGlieG1sMiIgIiIKKy5cIiBkaXNhYmxlIGh5cGhlbmF0aW9uCisubmgKKy5cIiBkaXNhYmxlIGp1c3RpZmljYXRpb24gKGFkanVzdCB0ZXh0IHRvIGxlZnQgbWFyZ2luIG9ubHkpCisuYWQgbAorLlNIICJOQU1FIgoreG1sY2F0YWxvZyBcLSBDb21tYW5kIGxpbmUgdG9vbCB0byBwYXJzZSBhbmQgbWFuaXB1bGF0ZSBYTUwgb3IgU0dNTCBjYXRhbG9nIGZpbGVzLgorLlNIICJTWU5PUFNJUyIKKy5IUCAxMQorXGZCeG1sY2F0YWxvZ1xmUiBbXGZCXC1cLXNnbWxcZlIgXGZCXC1cLXNoZWxsXGZSIFxmQlwtXC1jcmVhdGVcZlIgXGZCXC1cLWRlbFwgXGZSXGZCXGZJVkFMVUUoUylcZlJcZlIgW1wgXGZCXC1cLWFkZFwgXGZSXGZCXGZJVFlQRVxmUlxmUlxmQlwgXGZSXGZCXGZJT1JJR1xmUlxmUlxmQlwgXGZSXGZCXGZJUkVQTEFDRVxmUlxmUlxmQlwgXGZSXCBcZkJcLVwtYWRkXCBcZlJcZkJcZklGSUxFTkFNRVxmUlxmUl0gXGZCXC1cLW5vb3V0XGZSIFxmQlwtXC1ub1wtc3VwZXJcLXVwZGF0ZVxmUiBbXGZCXC12XGZSXCBcZkJcLVwtdmVyYm9zZVxmUl1dIHtcZklDQVRBTE9HRklMRVxmUn0ge1xmSUVOVElUSUVTXGZSLi4ufQorLlNIICJERVNDUklQVElPTiIKKy5QUAorXGZCeG1sY2F0YWxvZ1xmUgoraXMgYSBjb21tYW5kIGxpbmUgYXBwbGljYXRpb24gYWxsb3dpbmcgdXNlcnMgdG8gbW9uaXRvciBhbmQgbWFuaXB1bGF0ZQorWE1MCithbmQKK1NHTUwKK2NhdGFsb2dzLiBJdCBpcyBpbmNsdWRlZCBpbgorXGZCbGlieG1sXGZSKDMpLgorLlBQCitJdHMgZnVuY3Rpb25zIGNhbiBiZSBpbnZva2VkIGZyb20gYSBzaW5nbGUgY29tbWFuZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIG9yIGl0IGNhbiBwZXJmb3JtIG11bHRpcGxlIGZ1bmN0aW9ucyBpbiBpbnRlcmFjdGl2ZSBtb2RlLiBJdCBjYW4gb3BlcmF0ZSBvbiBib3RoCitYTUwKK2FuZAorU0dNTAorZmlsZXMuCisuU0ggIk9QVElPTlMiCisuUFAKK1xmQnhtbGNhdGFsb2dcZlIKK2FjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zIChpbiBhbHBoYWJldGljYWwgb3JkZXIpOgorLlRQCitcZkJcLVwtYWRkIFxmUlxmQlxmSVRZUEVcZlJcZlJcZkIgXGZSXGZCXGZJT1JJR1xmUlxmUlxmQiBcZlJcZkJcZklSRVBMQUNFXGZSXGZSXGZCIFxmUgorQWRkIGFuIGVudHJ5IHRvCitcZklDQVRBTE9HRklMRVxmUi4KK1xmSVRZUEVcZlIKK2luZGljYXRlcyB0aGUgdHlwZSBvZiBlbnRyeS4gUG9zc2libGUgdHlwZXMgYXJlOgorXGZJcHVibGljXGZSLCBcZklzeXN0ZW1cZlIsIFxmSXJld3JpdGVTeXN0ZW1cZlIsIFxmSXJld3JpdGVVUklcZlIsIFxmSWRlbGVnYXRlUHVibGljXGZSLCBcZklkZWxlZ2F0ZVN5c3RlbVxmUiwgXGZJbmV4dENhdGFsb2dcZlIuCitcZklPUklHXGZSCitpcyB0aGUgb3JpZ2luYWwgcmVmZXJlbmNlIHRvIGJlIHJlcGxhY2VkLCBhbmQKK1xmSVJFUExBQ0VcZlIKK2lzIHRoZQorVVJJCitvZiB0aGUgcmVwbGFjZW1lbnQgZW50aXR5IHRvIGJlIHVzZWQuIFRoZQorXGZCXC1cLWFkZFxmUgorb3B0aW9uIHdpbGwgbm90IG92ZXJ3cml0ZQorXGZJQ0FUQUxPR0ZJTEVcZlIsIG91dHB1dHRpbmcgdG8KK1xmSXN0ZG91dFxmUiwgdW5sZXNzCitcZkJcLVwtbm9vdXRcZlIKK2lzIHVzZWQuIFRoZQorXGZCXC1cLWFkZFxmUgord2lsbCBhbHdheXMgdGFrZSB0aHJlZSBwYXJhbWV0ZXJzIGV2ZW4gaWYgc29tZSBvZiB0aGUKK1hNTAorY2F0YWxvZyBjb25zdHJ1Y3RzIHdpbGwgaGF2ZSBvbmx5IGEgc2luZ2xlIGFyZ3VtZW50LgorLlRQCitcZkJcLVwtYWRkIFxmUlxmQlxmSUZJTEVOQU1FXGZSXGZSCitJZiB0aGUKK1xmQlwtXC1hZGRcZlIKK29wdGlvbiBpcyB1c2VkIGZvbGxvd2luZyB0aGUKK1xmQlwtXC1zZ21sXGZSCitvcHRpb24sIG9ubHkgYSBzaW5nbGUgYXJndW1lbnQsIGEKK1xmSUZJTEVOQU1FXGZSLCBpcyB1c2VkLiBUaGlzIGlzIHVzZWQgdG8gYWRkIHRoZSBuYW1lIG9mIGEgY2F0YWxvZyBmaWxlIHRvIGFuCitTR01MCitzdXBlcmNhdGFsb2csIGEgZmlsZSB0aGF0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gb3RoZXIgaW5jbHVkZWQKK1NHTUwKK2NhdGFsb2cgZmlsZXMuCisuVFAKK1xmQlwtXC1jcmVhdGVcZlIKK0NyZWF0ZSBhIG5ldworWE1MCitjYXRhbG9nLiBPdXRwdXRzIHRvCitcZklzdGRvdXRcZlIsIGlnbm9yaW5nCitcZklmaWxlbmFtZVxmUgordW5sZXNzCitcZkJcLVwtbm9vdXRcZlIKK2lzIHVzZWQsIGluIHdoaWNoIGNhc2UgaXQgY3JlYXRlcyBhIG5ldyBjYXRhbG9nIGZpbGUKK1xmSWZpbGVuYW1lXGZSLgorLlRQCitcZkJcLVwtZGVsIFxmUlxmQlxmSVZBTFVFKFMpXGZSXGZSCitSZW1vdmUgZW50cmllcyBmcm9tCitcZklDQVRBTE9HRklMRVxmUgorbWF0Y2hpbmcKK1xmSVZBTFVFKFMpXGZSLiBUaGUKK1xmQlwtXC1kZWxcZlIKK29wdGlvbiB3aWxsIG5vdCBvdmVyd3JpdGUKK1xmSUNBVEFMT0dGSUxFXGZSLCBvdXRwdXR0aW5nIHRvCitcZklzdGRvdXRcZlIsIHVubGVzcworXGZCXC1cLW5vb3V0XGZSCitpcyB1c2VkLgorLlRQCitcZkJcLVwtbm9vdXRcZlIKK1NhdmUgb3V0cHV0IHRvIHRoZSBuYW1lZCBmaWxlIHJhdGhlciB0aGFuIG91dHB1dHRpbmcgdG8KK1xmSXN0ZG91dFxmUi4KKy5UUAorXGZCXC1cLW5vXC1zdXBlclwtdXBkYXRlXGZSCitEbyBub3QgdXBkYXRlIHRoZQorU0dNTAorc3VwZXIgY2F0YWxvZy4KKy5UUAorXGZCXC1cLXNoZWxsXGZSCitSdW4gYSBzaGVsbCBhbGxvd2luZyBpbnRlcmFjdGl2ZSBxdWVyaWVzIG9uIGNhdGFsb2cgZmlsZQorXGZJQ0FUQUxPR0ZJTEVcZlIuIEZvciB0aGUgc2V0IG9mIGF2YWlsYWJsZSBjb21tYW5kcyBzZWUKK3RoZSBzZWN0aW9uIGNhbGxlZCBcKGxxU0hFTEwgQ09NTUFORFNcKHJxLgorLlRQCitcZkJcLVwtc2dtbFxmUgorVXNlcworU0dNTAorc3VwZXIgY2F0YWxvZ3MgZm9yCitcZkJcLVwtYWRkXGZSCithbmQKK1xmQlwtXC1kZWxcZlIKK29wdGlvbnMuCisuVFAKK1xmQlwtdlxmUiwgXGZCXC1cLXZlcmJvc2VcZlIKK091dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uCisuU0ggIlNIRUxMIENPTU1BTkRTIgorLlBQCitJbnZva2luZworXGZCeG1sY2F0YWxvZ1xmUgord2l0aCB0aGUKK1xmQlwtXC1zaGVsbCBcZlJcZkJcZklDQVRBTE9HRklMRVxmUlxmUgorb3B0aW9uIG9wZW5zIGEgY29tbWFuZCBsaW5lIHNoZWxsIGFsbG93aW5nIGludGVyYWN0aXZlIGFjY2VzcyB0byB0aGUgY2F0YWxvZyBmaWxlIGlkZW50aWZpZWQgYnkKK1xmSUNBVEFMT0dGSUxFXGZSLiBJbnZva2luZyB0aGUgc2hlbGwgcHJvdmlkZXMgYSBjb21tYW5kIGxpbmUgcHJvbXB0IGFmdGVyIHdoaWNoIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgKGRlc2NyaWJlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIpIGNhbiBiZSBlbnRlcmVkLgorLlRQCitcZkJhZGQgXGZSXGZCXGZJVFlQRVxmUlxmUlxmQiBcZlJcZkJcZklPUklHXGZSXGZSXGZCIFxmUlxmQlxmSVJFUExBQ0VcZlJcZlJcZkIgXGZSCitBZGQgYW4gZW50cnkgdG8gdGhlIGNhdGFsb2cgZmlsZS4KK1xmSVRZUEVcZlIKK2luZGljYXRlcyB0aGUgdHlwZSBvZiBlbnRyeS4gUG9zc2libGUgdHlwZXMgYXJlOgorXGZJcHVibGljXGZSLCBcZklzeXN0ZW1cZlIsIFxmSXJld3JpdGVTeXN0ZW1cZlIsIFxmSXJld3JpdGVVUklcZlIsIFxmSWRlbGVnYXRlUHVibGljXGZSLCBcZklkZWxlZ2F0ZVN5c3RlbVxmUiwgXGZJbmV4dENhdGFsb2dcZlIuCitcZklPUklHXGZSCitpcyB0aGUgb3JpZ2luYWwgcmVmZXJlbmNlIHRvIGJlIHJlcGxhY2VkLCBhbmQKK1xmSVJFUExBQ0VcZlIKK2lzIHRoZQorVVJJCitvZiB0aGUgcmVwbGFjZW1lbnQgZW50aXR5IHRvIGJlIHVzZWQuIFRoZQorXGZCXC1cLWFkZFxmUgorb3B0aW9uIHdpbGwgbm90IG92ZXJ3cml0ZQorXGZJQ0FUQUxPR0ZJTEVcZlIsIG91dHB1dHRpbmcgdG8KK1xmSXN0ZG91dFxmUiwgdW5sZXNzCitcZkJcLVwtbm9vdXRcZlIKK2lzIHVzZWQuIFRoZQorXGZCXC1cLWFkZFxmUgord2lsbCBhbHdheXMgdGFrZSB0aHJlZSBwYXJhbWV0ZXJzIGV2ZW4gaWYgc29tZSBvZiB0aGUKK1hNTAorY2F0YWxvZyBjb25zdHJ1Y3RzIHdpbGwgaGF2ZSBvbmx5IGEgc2luZ2xlIGFyZ3VtZW50LgorLlRQCitcZkJkZWJ1Z1xmUgorUHJpbnQgZGVidWdnaW5nIHN0YXRlbWVudHMgc2hvd2luZyB0aGUgc3RlcHMKK1xmQnhtbGNhdGFsb2dcZlIKK2lzIGV4ZWN1dGluZy4KKy5UUAorXGZCZGVsIFxmUlxmQlxmSVZBTFVFKFMpXGZSXGZSCitSZW1vdmUgdGhlIGNhdGFsb2cgZW50cnkgY29ycmVzcG9uZGluZyB0bworXGZJVkFMVUUoUylcZlIuCisuVFAKK1xmQmR1bXBcZlIKK1ByaW50IHRoZSBjdXJyZW50IGNhdGFsb2cuCisuVFAKK1xmQmV4aXRcZlIKK1F1aXQgdGhlIHNoZWxsLgorLlRQCitcZkJwdWJsaWMgXGZSXGZCXGZJUFVCTElDXC1JRFxmUlxmUgorRXhlY3V0ZSBhIEZvcm1hbCBQdWJsaWMgSWRlbnRpZmllciBsb29rXC11cCBvZiB0aGUgY2F0YWxvZyBlbnRyeSBmb3IKK1xmSVBVQkxJQ1wtSURcZlIuIFRoZSBjb3JyZXNwb25kaW5nIGVudHJ5IHdpbGwgYmUgb3V0cHV0IHRvIHRoZSBjb21tYW5kIGxpbmUuCisuVFAKK1xmQnF1aWV0XGZSCitTdG9wIHByaW50aW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgorLlRQCitcZkJzeXN0ZW0gXGZSXGZCXGZJU1lTVEVNXC1JRFxmUlxmUgorRXhlY3V0ZSBhIEZvcm1hbCBQdWJsaWMgSWRlbnRpZmllciBsb29rXC11cCBvZiB0aGUgY2F0YWxvZyBlbnRyeSBmb3IKK1xmSVNZU1RFTVwtSURcZlIuIFRoZSBjb3JyZXNwb25kaW5nIGVudHJ5IHdpbGwgYmUgb3V0cHV0IHRvIHRoZSBjb21tYW5kIGxpbmUuCisuU0ggIkVOVklST05NRU5UIgorLlRQCitcZkJYTUxfQ0FUQUxPR19GSUxFU1xmUgorWE1MCitjYXRhbG9nIGJlaGF2aW9yIGNhbiBiZSBjaGFuZ2VkIGJ5IHJlZGlyZWN0aW5nIHF1ZXJpZXMgdG8gdGhlIHVzZXIncyBvd24gc2V0IG9mIGNhdGFsb2dzLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCitcZkJYTUxfQ0FUQUxPR19GSUxFU1xmUgorZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSBsaXN0IG9mIGNhdGFsb2dzLiBBbiBlbXB0eSBvbmUgc2hvdWxkIGRlYWN0aXZhdGUgbG9hZGluZyB0aGUgZGVmYXVsdAorXGZJL2V0Yy94bWwvY2F0YWxvZ1xmUgorY2F0YWxvZy4KKy5TSCAiRElBR05PU1RJQ1MiCisuUFAKK1xmQnhtbGNhdGFsb2dcZlIKK3JldHVybiBjb2RlcyBwcm92aWRlIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgd2hlbiBjYWxsaW5nIGl0IGZyb20gc2NyaXB0cy4KKy5UUAorXGZCMFxmUgorTm8gZXJyb3IKKy5UUAorXGZCMVxmUgorRmFpbGVkIHRvIHJlbW92ZSBhbiBlbnRyeSBmcm9tIHRoZSBjYXRhbG9nCisuVFAKK1xmQjJcZlIKK0ZhaWxlZCB0byBzYXZlIHRvIHRoZSBjYXRhbG9nLCBjaGVjayBmaWxlIHBlcm1pc3Npb25zCisuVFAKK1xmQjNcZlIKK0ZhaWxlZCB0byBhZGQgYW4gZW50cnkgdG8gdGhlIGNhdGFsb2cKKy5UUAorXGZCNFxmUgorRmFpbGVkIHRvIGxvb2sgdXAgYW4gZW50cnkgaW4gdGhlIGNhdGFsb2cKKy5TSCAiU0VFIEFMU08iCisuUFAKK1xmQmxpYnhtbFxmUigzKQorLlBQCitNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdAorLlRQIDMKK1woYnUKK1xmQmxpYnhtbFxmUigzKQord2ViIHBhZ2UKK1xmSVwlaHR0cDovL3d3dy54bWxzb2Z0Lm9yZy9cZlIKKy5UUAorXChidQorXGZCbGlieG1sXGZSKDMpCitjYXRhbG9nIHN1cHBvcnQgd2ViIHBhZ2UgYXQKK1xmSVwlaHR0cDovL3d3dy54bWxzb2Z0Lm9yZy9jYXRhbG9nLmh0bWxcZlIKKy5UUAorXChidQorSmFtZXMgQ2xhcmsncworU0dNTAorY2F0YWxvZyBwYWdlCitcZklcJWh0dHA6Ly93d3cuamNsYXJrLmNvbS9zcC9jYXRhbG9nLmh0bVxmUgorLlRQCitcKGJ1CitPQVNJU1hNTAorY2F0YWxvZyBzcGVjaWZpY2F0aW9uCitcZklcJWh0dHA6Ly93d3cub2FzaXNcLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3NwZWMuaHRtbFxmUgorLlNIICJBVVRIT1IiCitKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0Pi4gCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy94bWxjYXRhbG9nX21hbi5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sY2F0YWxvZ19tYW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjdjMWVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sY2F0YWxvZ19tYW4uaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPnhtbGNhdGFsb2c8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNjEuMiI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJyZWZlbnRyeSIgbGFuZz0iZW4iPjxhIG5hbWU9ImlkMjQzMTYxNCI+PC9hPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InJlZm5hbWVkaXYiPjxoMj5OYW1lPC9oMj48cD54bWxjYXRhbG9nICYjODIxMjsgQ29tbWFuZCBsaW5lIHRvb2wgdG8gcGFyc2UgYW5kIG1hbmlwdWxhdGUgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlhNTDwvc3Bhbj4gb3IKKyAgICAgIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5TR01MPC9zcGFuPiBjYXRhbG9nIGZpbGVzLjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJyZWZzeW5vcHNpc2RpdiI+PGgyPlN5bm9wc2lzPC9oMj48ZGl2IGNsYXNzPSJjbWRzeW5vcHNpcyI+PHA+PHR0IGNsYXNzPSJjb21tYW5kIj54bWxjYXRhbG9nPC90dD4gIFtbLS1zaGVsbF0gfCAgWy0tY3JlYXRlXSB8ICBbLS1hZGQgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+dHlwZTwvdHQ+PC9pPgorCSAgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+b3JpZzwvdHQ+PC9pPiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5yZXBsYWNlPC90dD48L2k+XSB8ICBbLS1kZWwgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+dmFsdWVzPC90dD48L2k+XSB8ICBbLS1ub291dF0gfCAgWy0tdmVyYm9zZV1dIFs8dHQgY2xhc3M9Im9wdGlvbiI+PGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+Y2F0YWxvZ2ZpbGU8L3R0PjwvaT48L3R0Pl0gWzx0dCBjbGFzcz0ib3B0aW9uIj48aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5lbnRpdGllczwvdHQ+PC9pPjwvdHQ+XTwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPjxhIG5hbWU9ImludHJvZHVjdGlvbiI+PC9hPjxoMj5JbnRyb2R1Y3Rpb248L2gyPjxwPgorICAgICAgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj54bWxjYXRhbG9nPC9zcGFuPiBpcyBhIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbgorICAgICAgYWxsb3dpbmcgdXNlcnMgdG8gbW9uaXRvciBhbmQgbWFuaXB1bGF0ZSA8c3BhbiBjbGFzcz0iYWNyb255bSI+WE1MPC9zcGFuPiBhbmQKKyAgICAgIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5TR01MPC9zcGFuPiBjYXRhbG9ncy4gSXQgaXMgaW5jbHVkZWQgaW4KKyAgICAgIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+bGlieG1sMjwvc3Bhbj4uCisgICAgPC9wPjxwPgorICAgICAgSXRzIGZ1bmN0aW9ucyBjYW4gYmUgaW52b2tlZCBmcm9tIGEgc2luZ2xlIGNvbW1hbmQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLAorICAgICAgb3IgaXQgY2FuIHBlcmZvcm0gbXVsdGlwbGUgZnVuY3Rpb25zIGluIGludGVyYWN0aXZlIG1vZGUuIEl0IGNhbiBvcGVyYXRlCisgICAgICBvbiBib3RoIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5YTUw8L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0iYWNyb255bSI+U0dNTDwvc3Bhbj4gZmlsZXMuCisgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+PGEgbmFtZT0iY2xvcHRpb25zIj48L2E+PGgyPkNvbW1hbmQgTGluZSBPcHRpb25zPC9oMj48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjxkbD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLXNoZWxsPC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+ZmlsZW5hbWU8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFJ1biBhIHNoZWxsCisJICAgIGFsbG93aW5nIGludGVyYWN0aXZlIHF1ZXJpZXMgb24gY2F0YWxvZyBmaWxlCisJICAgIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PmZpbGVuYW1lPC90dD48L2k+LgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWNyZWF0ZTwvdHQ+IDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PmZpbGVuYW1lPC90dD48L2k+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBDcmVhdGUgYSBuZXcKKwkgICAgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlhNTDwvc3Bhbj4gY2F0YWxvZy4gT3V0cHV0cyB0byBzdGRvdXQsIGlnbm9yaW5nCisJICAgIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PmZpbGVuYW1lPC90dD48L2k+IHVubGVzcyA8dHQgY2xhc3M9Im9wdGlvbiI+LS1ub291dDwvdHQ+IGlzCisJICAgIHVzZWQsIGluIHdoaWNoIGNhc2UgaXQgY3JlYXRlcyBhIG5ldyBjYXRhbG9nIGZpbGUKKwkgICAgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+ZmlsZW5hbWU8L3R0PjwvaT4uCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tYWRkPC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+J3R5cGUnPC90dD48L2k+IDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PidvcmlnJzwvdHQ+PC9pPiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4ncmVwbGFjZSc8L3R0PjwvaT4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+ZmlsZW5hbWU8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+PHA+CisJICAgIEFkZCBhbiBlbnRyeSB0byBjYXRhbG9nIGZpbGUKKwkgICAgPHR0IGNsYXNzPSJmaWxlbmFtZSI+ZmlsZW5hbWU8L3R0Pi4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+dHlwZTwvdHQ+PC9pPgorCSAgICBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgZW50cnkuIFBvc3NpYmxlIHR5cGVzIGFyZSAncHVibGljJywgJ3N5c3RlbScsCisJICAgICdyZXdyaXRlU3lzdGVtJywgJ2RlbGVnYXRlUHVibGljJywgJ2RlbGVnYXRlU3lzdGVtJ2FtZAorCSAgICAncmV3cml0ZVVSSScuIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PidvcmlnJzwvdHQ+PC9pPiBpcyB0aGUgb3JpZ2luYWwKKwkgICAgcmVmZXJlbmNlIHRvIGJlIHJlcGxhY2VkLCBhbmQgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+J3JlcGxhY2UnPC90dD48L2k+CisJICAgIGlzIHRoZSA8c3BhbiBjbGFzcz0iYWNyb255bSI+VVJJPC9zcGFuPiBvZiB0aGUgcmVwbGFjZW1lbnQgZW50aXR5IHRvIGJlCisJICAgIHVzZWQuIFRoZSA8dHQgY2xhc3M9Im9wdGlvbiI+LS1hZGQ8L3R0PiBvcHRpb24gd2lsbCBub3Qgb3ZlcndyaXRlCisJICAgIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PmZpbGVuYW1lPC90dD48L2k+LCBvdXRwdXRpbmcgdG8gc3Rkb3V0LCB1bmxlc3MKKwkgICAgPHR0IGNsYXNzPSJvcHRpb24iPi0tbm9vdXQ8L3R0PiBpcyB1c2VkLiBUaGUgPHR0IGNsYXNzPSJvcHRpb24iPi0tYWRkPC90dD4gd2lsbAorCSAgICBhbHdheXMgdGFrZSB0aHJlZSBwYXJhbWV0ZXJzIGV2ZW4gaWYgc29tZSBvZiB0aGUKKwkgICAgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlhNTDwvc3Bhbj4gY2F0YWxvZyBjb25zdHJ1Y3RzIHdpbGwgaGF2ZSBvbmx5IGEgc2luZ2xlCisJICAgIGFyZ3VtZW50LgorCisJICA8L3A+PHA+CisJICAgIElmIHRoZSA8dHQgY2xhc3M9Im9wdGlvbiI+LS1hZGQ8L3R0PiBvcHRpb24gaXMgdXNlZCBmb2xsb3dpbmcgdGhlCisJICAgIDx0dCBjbGFzcz0ib3B0aW9uIj4tLXNnbWw8L3R0PiBvcHRpb24sIG9ubHkgYSBzaW5nbGUgYXJndW1lbnQsIGEKKwkgICAgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+ZmlsZW5hbWU8L3R0PjwvaT4sIGlzIHVzZWQuIFRoaXMgaXMgdXNlZCB0byBhZGQKKwkgICAgdGhlIG5hbWUgb2YgYSBjYXRhbG9nIGZpbGUgdG8gYW4gPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlNHTUw8L3NwYW4+CisJICAgIHN1cGVyY2F0YWxvZywgYSBmaWxlIHRoYXQgY29udGFpbnMgcmVmZXJlbmNlcyB0byBvdGhlciBpbmNsdWRlZAorCSAgICA8c3BhbiBjbGFzcz0iYWNyb255bSI+U0dNTDwvc3Bhbj4gY2F0YWxvZyBmaWxlcy4KKwkgIDwvcD48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tZGVsPC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+J3ZhbHVlcyc8L3R0PjwvaT4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+ZmlsZW5hbWU8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFJlbW92ZSBlbnRyaWVzIGZyb20gdGhlIGNhdGFsb2cgZmlsZQorCSAgICA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5maWxlbmFtZTwvdHQ+PC9pPiBtYXRjaGluZworCSAgICA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4ndmFsdWVzJzwvdHQ+PC9pPi4gVGhlIDx0dCBjbGFzcz0ib3B0aW9uIj4tLWRlbDwvdHQ+IG9wdGlvbgorCSAgICB3aWxsIG5vdCBvdmVyd3JpdGUgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+ZmlsZW5hbWU8L3R0PjwvaT4sIG91dHB1dGluZyB0bworCSAgICBzdGRvdXQsIHVubGVzcyA8dHQgY2xhc3M9Im9wdGlvbiI+LS1ub291dDwvdHQ+IGlzIHVzZWQuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbm9vdXQ8L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgU2F2ZSBvdXRwdXQgdG8gdGhlIG5hbWVkIGZpbGUgcmF0aGVyIHRoYW4KKwkgICAgb3V0cHV0aW5nIHRvIHN0ZG91dC4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1zZ21sPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFVzZXMgU0dNTCBTdXBlciBjYXRhbG9ncyBmb3IgLS1hZGQgYW5kIC0tZGVsIG9wdGlvbnMKKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LXY8L3R0PiBvciA8dHQgY2xhc3M9Im9wdGlvbiI+LS12ZXJib3NlPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIG91dHB1dCBkZWJ1Z2dpbmcKKwkgICAgaW5mb3JtYXRpb24uCisJICA8L2RkPjwvZGw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj48YSBuYW1lPSJzaGVsbCI+PC9hPjxoMj5TaGVsbCBDb21tYW5kczwvaDI+PHA+SW52b2tpbmcgPHNwYW4gY2xhc3M9ImFwcGxpY2F0aW9uIj54bWxjYXRhbG9nPC9zcGFuPiB3aXRoIHRoZQorICAgICAgPHR0IGNsYXNzPSJvcHRpb24iPi0tc2hlbGw8L3R0PiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5maWxlbmFtZTwvdHQ+PC9pPiBvcHRpb24gb3BlbnMKKyAgICBhIGNvbW1hbmQgbGluZSBzaGVsbCBhbGxvd2luZyBpbnRlcmFjdGl2ZSBhY2Nlc3MgdG8gdGhlIGNhdGFsb2cgZmlsZQorICAgICAgaWRlbnRpZmllZCBieSA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5maWxlbmFtZTwvdHQ+PC9pPi4gSW52b2tpbmcgdGhlIHNoZWxsCisgICAgcHJvdmlkZXMgYSBjb21tYW5kIGxpbmUgcHJvbXB0IGFmdGVyIHdoaWNoIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkLgorICAgIDwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjxkbD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5wdWJsaWM8L3R0PiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4nUHVibGljSUQnPC90dD48L2k+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBFeGVjdXRlIGEKKwkgICAgcHVibGljIGlkZW50aWZpZXIgbG9va3VwIG9mIHRoZSBjYXRhbG9nIGVudHJ5IGZvcgorCSAgICA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4nUHVibGljSUQnPC90dD48L2k+LiBUaGUgY29ycmVzcG9uZGluZyBlbnRyeSB3aWxsIGJlCisJICAgIG91dHB1dCB0byB0aGUgY29tbWFuZCBsaW5lLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5zeXN0ZW08L3R0PiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4nU3lzdGVtSUQnPC90dD48L2k+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBFeGVjdXRlIGEKKwkgICAgcHVibGljIGlkZW50aWZpZXIgbG9va3VwIG9mIHRoZSBjYXRhbG9nIGVudHJ5IGZvcgorCSAgICA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4nU3lzdGVtSUQnPC90dD48L2k+LiBUaGUgY29ycmVzcG9uZGluZyBlbnRyeSB3aWxsIGJlCisJICAgIG91dHB1dCB0byB0aGUgY29tbWFuZCBsaW5lLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5hZGQgPC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+J3R5cGUnPC90dD48L2k+IDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PidvcmlnJzwvdHQ+PC9pPiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4ncmVwbGFjZSc8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+CisJICAgIEFkZCBhbiBlbnRyeSB0byB0aGUgY2F0YWxvZworCSAgICBmaWxlLiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD50eXBlPC90dD48L2k+IGluZGljYXRlcyB0aGUgdHlwZSBvZgorCSAgICBlbnRyeS4gUG9zc2libGUgdHlwZXMgYXJlICdwdWJsaWMnLCAnc3lzdGVtJywgJ3Jld3JpdGVTeXN0ZW0nLAorCSAgICAnZGVsZWdhdGVQdWJsaWMnIGFuZCAnZGVsZWdhdGVTeXN0ZW0nLiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4nb3JpZyc8L3R0PjwvaT4KKwkgICAgaXMgdGhlIG9yaWdpbmFsIHJlZmVyZW5jZSB0byAgYmUgcmVwbGFjZWQsIGFuZAorCSAgICA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD4ncmVwbGFjZSc8L3R0PjwvaT4gaXMgdGhlIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5VUkk8L3NwYW4+IG9mIHRoZQorCSAgICByZXBsYWNlbWVudCBlbnRpdHkgdG8gYmUgdXNlZC4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+ZGVsPC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+J3ZhbHVlcyc8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFJlbW92ZSB0aGUKKwkgICAgY2F0YWxvZyBlbnRyeSBjb3JyZXNwb25kaW5nIHRvIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0Pid2YWx1ZXMnPC90dD48L2k+LgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5kdW1wPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFByaW50IHRoZSBjdXJyZW50IGNhdGFsb2cuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPmRlYnVnPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFByaW50IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIHNob3dpbmcgdGhlIHN0ZXBzCisJICAgIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+eG1sY2F0YWxvZzwvc3Bhbj4gaXMgZXhlY3V0aW5nLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5xdWlldDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBTdG9wIHByaW50aW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5leGl0PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFF1aXQgdGhlIHNoZWxsLgorCSAgPC9kZD48L2RsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+PGEgbmFtZT0icmV0dXJuIj48L2E+PGgyPlJldHVybiB2YWx1ZXM8L2gyPjxwPjxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+eG1sY2F0YWxvZzwvc3Bhbj4ncyByZXR1cm4gY29kZXMgcHJvdmlkZQorICAgIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgd2hlbiBjYWxsaW5nIGl0IGZyb20gc2NyaXB0cy48L3A+PHA+MDogbm9ybWFsPC9wPjxwPjE6IEZhaWxlZCB0byByZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgY2F0YWxvZzwvcD48cD4yOiBGYWlsZWQgdG8gc2F2ZSB0byB0aGUgY2F0YWxvZywgY2hlY2sgZmlsZSBwZXJtaXNzaW9uczwvcD48cD4zOiBGYWlsZWQgdG8gYWRkIGFuIGVudHJ5IHRvIHRoZSBjYXRhbG9nPC9wPjxwPjQ6IEZhaWxlZCB0byBsb29rdXAgYW5kIGVudHJ5IGluIHRoZSBjYXRhbG9nPC9wPjwvZGl2PjxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+PGgyPkNhdGFsb2dzPC9oMj48cD5DYXRhbG9nIGJlaGF2aW9yIGNhbiBiZSBjaGFuZ2VkIGJ5IHJlZGlyZWN0aW5nCisgICAgIHF1ZXJpZXMgdG8gdGhlIHVzZXIncyBvd24gc2V0IG9mIGNhdGFsb2dzLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCisgICAgIDx0dCBjbGFzcz0idmFybmFtZSI+WE1MX0NBVEFMT0dfRklMRVM8L3R0PiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGxpc3Qgb2YKKyAgICAgY2F0YWxvZ3MuIEFuIGVtcHR5IG9uZSBzaG91bGQgZGVhY3RpdmF0ZSBsb2FkaW5nIHRoZSBkZWZhdWx0CisgICAgICA8dHQgY2xhc3M9ImZpbGVuYW1lIj4vZXRjL3htbC9jYXRhbG9nPC90dD4gZGVmYXVsdCBjYXRhbG9nLjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPjxoMj5SZWZlcmVuY2VzPC9oMj48cD48YSBocmVmPSJodHRwOi8vd3d3LnhtbHNvZnQub3JnLyIgdGFyZ2V0PSJfdG9wIj5saWJ4bWwgd2ViIHBhZ2U8L2E+PC9wPjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cueG1sc29mdC5vcmcvY2F0YWxvZy5odG1sIiB0YXJnZXQ9Il90b3AiPjxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+bGlieG1sPC9zcGFuPgorICAgIGNhdGFsb2cgc3VwcG9ydCB3ZWIgcGFnZTo8L2E+PC9wPjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuamNsYXJrLmNvbS9zcC9jYXRhbG9nLmh0bSIgdGFyZ2V0PSJfdG9wIj5KYW1lcyBDbGFyaydzCisgICAgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlNHTUw8L3NwYW4+IGNhdGFsb2cgcGFnZTo8L2E+PC9wPjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy5odG1sIiB0YXJnZXQ9Il90b3AiPjxzcGFuIGNsYXNzPSJhY3JvbnltIj5PQVNJUzwvc3Bhbj4KKyAgICA8c3BhbiBjbGFzcz0iYWNyb255bSI+WE1MPC9zcGFuPiBjYXRhbG9nIHNwZWNpZmljYXRpb246IDwvYT48L3A+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3htbGNhdGFsb2dfbWFuLnhtbCBiL2xpYnhtbDItMi43LjcvZG9jL3htbGNhdGFsb2dfbWFuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjMzMGJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sY2F0YWxvZ19tYW4ueG1sCkBAIC0wLDAgKzEsNDQ2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiCisgICBocmVmPSJodHRwOi8vZG9jYm9vay5zb3VyY2Vmb3JnZS5uZXQvcmVsZWFzZS94c2wvY3VycmVudC9tYW5wYWdlcy9kb2Nib29rLnhzbCI/PgorPCFET0NUWVBFIHJlZmVudHJ5IFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgorICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIgWworCisgICAgPCFFTlRJVFkgeG1sY2F0YWxvZyAiPGNvbW1hbmQ+eG1sY2F0YWxvZzwvY29tbWFuZD4iPgorXT4KKworPHJlZmVudHJ5PgorCis8cmVmZW50cnlpbmZvPgorCTx0aXRsZT54bWxjYXRhbG9nIE1hbnVhbDwvdGl0bGU+CisJPHByb2R1Y3RuYW1lPmxpYnhtbDI8L3Byb2R1Y3RuYW1lPgorCTxjb3B5cmlnaHQ+CisJCTx5ZWFyPjIwMDE8L3llYXI+CisJCTx5ZWFyPjIwMDQ8L3llYXI+CisJPC9jb3B5cmlnaHQ+CisJPGF1dGhvcj4KKwkJPGZpcnN0bmFtZT5Kb2huPC9maXJzdG5hbWU+CisJCTxzdXJuYW1lPkZsZWNrPC9zdXJuYW1lPgorCQk8YWZmaWxpYXRpb24+CisJCQk8YWRkcmVzcz4KKwkJCQk8ZW1haWw+amZsZWNrQGlua3N0YWluLm5ldDwvZW1haWw+CisJCQk8L2FkZHJlc3M+CisJCTwvYWZmaWxpYXRpb24+CisJPC9hdXRob3I+CisJPCEtLSBkYXRlIHNob3VsZCBiZSB0aGUgZGF0ZSBvZiB0aGUgbGF0ZXN0IGNoYW5nZSBvciB0aGUgcmVsZWFzZSB2ZXJzaW9uIC0tPgorCTxkYXRlPiREYXRlJDwvZGF0ZT4KKwk8IS0tIHN0aWxsIGEgYml0IGJ1Z2d5IG91dHB1dCwgd2lsbCB0YWxrIHRvIGRvY2Jvb2steHNsIHVwc3RyZWFtIHRvIGZpeCB0aGlzIC0tPgorCTwhLS0gPHJlbGVhc2VpbmZvPlRoaXMgaXMgcmVsZWFzZSAwLjMgb2YgdGhlIHhtbGNhdGFsb2cgTWFudWFsLjwvcmVsZWFzZWluZm8+IC0tPgorCTwhLS0gPGVkaXRpb24+MC4zPC9lZGl0aW9uPiAtLT4KKzwvcmVmZW50cnlpbmZvPgorCis8cmVmbWV0YT4KKwk8cmVmZW50cnl0aXRsZT54bWxjYXRhbG9nPC9yZWZlbnRyeXRpdGxlPgorCTxtYW52b2xudW0+MTwvbWFudm9sbnVtPgorPC9yZWZtZXRhPgorCis8cmVmbmFtZWRpdj4KKwk8cmVmbmFtZT54bWxjYXRhbG9nPC9yZWZuYW1lPgorCTxyZWZwdXJwb3NlPgorCQlDb21tYW5kIGxpbmUgdG9vbCB0byBwYXJzZSBhbmQgbWFuaXB1bGF0ZSA8YWNyb255bT5YTUw8L2Fjcm9ueW0+CisJCW9yIDxhY3JvbnltPlNHTUw8L2Fjcm9ueW0+IGNhdGFsb2cgZmlsZXMuCisJPC9yZWZwdXJwb3NlPgorPC9yZWZuYW1lZGl2PgorCis8cmVmc3lub3BzaXNkaXY+CisJPGNtZHN5bm9wc2lzPgorCTxjb21tYW5kPnhtbGNhdGFsb2c8L2NvbW1hbmQ+CisJPGdyb3VwIGNob2ljZT0ib3B0Ij4KKwkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tc2dtbDwvb3B0aW9uPjwvYXJnPgorCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1zaGVsbDwvb3B0aW9uPjwvYXJnPgorCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1jcmVhdGU8L29wdGlvbj48L2FyZz4KKwkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tZGVsIDxyZXBsYWNlYWJsZT5WQUxVRShTKTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC9hcmc+CisJCTxhcmcgY2hvaWNlPSJwbGFpbiI+CisJCQk8Z3JvdXAgY2hvaWNlPSJvcHQiPgorCQkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+CisJCQkJCTxvcHRpb24+LS1hZGQKKwkJCQkJIDxyZXBsYWNlYWJsZT5UWVBFPC9yZXBsYWNlYWJsZT4KKwkJCQkJIDxyZXBsYWNlYWJsZT5PUklHPC9yZXBsYWNlYWJsZT4KKwkJCQkJIDxyZXBsYWNlYWJsZT5SRVBMQUNFPC9yZXBsYWNlYWJsZT4KKwkJCQkJPC9vcHRpb24+CisJCQkJPC9hcmc+CisJCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tYWRkIDxyZXBsYWNlYWJsZT5GSUxFTkFNRTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC9hcmc+CisJCQk8L2dyb3VwPgkJCisJCTwvYXJnPgorCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1ub291dDwvb3B0aW9uPjwvYXJnPgorCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1uby1zdXBlci11cGRhdGU8L29wdGlvbj48L2FyZz4KKwkJPGFyZyBjaG9pY2U9InBsYWluIj4KKwkJCTxncm91cCBjaG9pY2U9Im9wdCI+CisJCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi12PC9vcHRpb24+PC9hcmc+CisJCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tdmVyYm9zZTwvb3B0aW9uPjwvYXJnPgorCQkJPC9ncm91cD4KKwkJPC9hcmc+CisJPC9ncm91cD4KKwk8YXJnIGNob2ljZT0icmVxIiByZXA9Im5vcmVwZWF0Ij48cmVwbGFjZWFibGU+Q0FUQUxPR0ZJTEU8L3JlcGxhY2VhYmxlPjwvYXJnPgorCTxhcmcgY2hvaWNlPSJyZXEiIHJlcD0icmVwZWF0Ij48cmVwbGFjZWFibGU+RU5USVRJRVM8L3JlcGxhY2VhYmxlPjwvYXJnPgorCTwvY21kc3lub3BzaXM+Cis8L3JlZnN5bm9wc2lzZGl2PgorCis8cmVmc2VjdDEgaWQ9ImRlc2NyaXB0aW9uIj4KKwk8dGl0bGU+REVTQ1JJUFRJT048L3RpdGxlPgorCTxwYXJhPgorCQkmeG1sY2F0YWxvZzsgaXMgYSBjb21tYW5kIGxpbmUgYXBwbGljYXRpb24gYWxsb3dpbmcgdXNlcnMgdG8gbW9uaXRvciBhbmQKKwkJbWFuaXB1bGF0ZSA8YWNyb255bT5YTUw8L2Fjcm9ueW0+IGFuZCA8YWNyb255bT5TR01MPC9hY3JvbnltPiBjYXRhbG9ncy4gSXQKKwkJaXMgaW5jbHVkZWQgaW4gPGNpdGVyZWZlbnRyeT4KKwkJCTxyZWZlbnRyeXRpdGxlPmxpYnhtbDwvcmVmZW50cnl0aXRsZT4KKwkJCTxtYW52b2xudW0+MzwvbWFudm9sbnVtPgorCQk8L2NpdGVyZWZlbnRyeT4uCisJPC9wYXJhPgorCTxwYXJhPgorCQlJdHMgZnVuY3Rpb25zIGNhbiBiZSBpbnZva2VkIGZyb20gYSBzaW5nbGUgY29tbWFuZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUsCisJCW9yIGl0IGNhbiBwZXJmb3JtIG11bHRpcGxlIGZ1bmN0aW9ucyBpbiBpbnRlcmFjdGl2ZSBtb2RlLiBJdCBjYW4gb3BlcmF0ZQorCQlvbiBib3RoIDxhY3JvbnltPlhNTDwvYWNyb255bT4gYW5kIDxhY3JvbnltPlNHTUw8L2Fjcm9ueW0+IGZpbGVzLgorCTwvcGFyYT4KKzwvcmVmc2VjdDE+CisKKzxyZWZzZWN0MSBpZD0ib3B0aW9ucyI+CisJPHRpdGxlPk9QVElPTlM8L3RpdGxlPgorCTxwYXJhPgorCQkmeG1sY2F0YWxvZzsgYWNjZXB0cyB0aGUgZm9sbG93aW5nIG9wdGlvbnMgKGluIGFscGhhYmV0aWNhbCBvcmRlcik6CisJPC9wYXJhPgorCQorCTx2YXJpYWJsZWxpc3Q+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT4KKwkJPG9wdGlvbj4tLWFkZAorCQkgPHJlcGxhY2VhYmxlPlRZUEU8L3JlcGxhY2VhYmxlPgorCQkgPHJlcGxhY2VhYmxlPk9SSUc8L3JlcGxhY2VhYmxlPgorCQkgPHJlcGxhY2VhYmxlPlJFUExBQ0U8L3JlcGxhY2VhYmxlPgorCQk8L29wdGlvbj4KKwk8L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCUFkZCBhbiBlbnRyeSB0byA8ZmlsZW5hbWU+Q0FUQUxPR0ZJTEU8L2ZpbGVuYW1lPi4gPHJlcGxhY2VhYmxlPlRZUEU8L3JlcGxhY2VhYmxlPgorCQkJaW5kaWNhdGVzIHRoZSB0eXBlIG9mIGVudHJ5LiBQb3NzaWJsZSB0eXBlcyBhcmU6IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisJCQkJPG1lbWJlcj48cGFyYW1ldGVyPnB1YmxpYzwvcGFyYW1ldGVyPjwvbWVtYmVyPgorCQkJCTxtZW1iZXI+PHBhcmFtZXRlcj5zeXN0ZW08L3BhcmFtZXRlcj48L21lbWJlcj4KKwkJCQk8bWVtYmVyPjxwYXJhbWV0ZXI+cmV3cml0ZVN5c3RlbTwvcGFyYW1ldGVyPjwvbWVtYmVyPgorCQkJCTxtZW1iZXI+PHBhcmFtZXRlcj5yZXdyaXRlVVJJPC9wYXJhbWV0ZXI+PC9tZW1iZXI+CisJCQkJPG1lbWJlcj48cGFyYW1ldGVyPmRlbGVnYXRlUHVibGljPC9wYXJhbWV0ZXI+PC9tZW1iZXI+CisJCQkJPG1lbWJlcj48cGFyYW1ldGVyPmRlbGVnYXRlU3lzdGVtPC9wYXJhbWV0ZXI+PC9tZW1iZXI+CisJCQkJPG1lbWJlcj48cGFyYW1ldGVyPm5leHRDYXRhbG9nPC9wYXJhbWV0ZXI+PC9tZW1iZXI+CisJCQk8L3NpbXBsZWxpc3Q+LiA8cmVwbGFjZWFibGU+T1JJRzwvcmVwbGFjZWFibGU+IGlzIHRoZSBvcmlnaW5hbAorCQkJcmVmZXJlbmNlIHRvIGJlIHJlcGxhY2VkLCBhbmQgPHJlcGxhY2VhYmxlPlJFUExBQ0U8L3JlcGxhY2VhYmxlPgorCQkJaXMgdGhlIDxhY3JvbnltPlVSSTwvYWNyb255bT4gb2YgdGhlIHJlcGxhY2VtZW50IGVudGl0eSB0byBiZQorCQkJdXNlZC4gVGhlIDxvcHRpb24+LS1hZGQ8L29wdGlvbj4gb3B0aW9uIHdpbGwgbm90IG92ZXJ3cml0ZQorCQkJPGZpbGVuYW1lPkNBVEFMT0dGSUxFPC9maWxlbmFtZT4sIG91dHB1dHRpbmcKKwkJCXRvIDxmaWxlbmFtZSBjbGFzcz0iZGV2aWNlZmlsZSI+c3Rkb3V0PC9maWxlbmFtZT4sIHVubGVzcworCQkJPG9wdGlvbj4tLW5vb3V0PC9vcHRpb24+IGlzIHVzZWQuIFRoZSA8b3B0aW9uPi0tYWRkPC9vcHRpb24+IHdpbGwKKwkJCWFsd2F5cyB0YWtlIHRocmVlIHBhcmFtZXRlcnMgZXZlbiBpZiBzb21lIG9mIHRoZSA8YWNyb255bT5YTUw8L2Fjcm9ueW0+CisJCQljYXRhbG9nIGNvbnN0cnVjdHMgd2lsbCBoYXZlIG9ubHkgYSBzaW5nbGUgYXJndW1lbnQuCisJCTwvcGFyYT4KKwkJPCEtLQorCQkJRklYTUUgLSBJcyBteSBsaXN0IG9mIHBvc3NpYmxlIHR5cGVzIGNvcnJlY3Q/IEFyZSBTR01MIHR5cGVzIHRoZSBzYW1lPworCQktLT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1hZGQgPHJlcGxhY2VhYmxlPkZJTEVOQU1FPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCUlmIHRoZSA8b3B0aW9uPi0tYWRkPC9vcHRpb24+IG9wdGlvbiBpcyB1c2VkIGZvbGxvd2luZworCQkJdGhlIDxvcHRpb24+LS1zZ21sPC9vcHRpb24+IG9wdGlvbiwgb25seSBhIHNpbmdsZSBhcmd1bWVudCwKKwkJCWEgPHJlcGxhY2VhYmxlPkZJTEVOQU1FPC9yZXBsYWNlYWJsZT4sIGlzIHVzZWQuIFRoaXMgaXMgdXNlZCB0byBhZGQKKwkJCXRoZSBuYW1lIG9mIGEgY2F0YWxvZyBmaWxlIHRvIGFuIDxhY3JvbnltPlNHTUw8L2Fjcm9ueW0+IHN1cGVyY2F0YWxvZywKKwkJCWEgZmlsZSB0aGF0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gb3RoZXIgaW5jbHVkZWQgPGFjcm9ueW0+U0dNTDwvYWNyb255bT4KKwkJCWNhdGFsb2cgZmlsZXMuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1jcmVhdGU8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCUNyZWF0ZSBhIG5ldyA8YWNyb255bT5YTUw8L2Fjcm9ueW0+IGNhdGFsb2cuIE91dHB1dHMKKwkJCXRvIDxmaWxlbmFtZSBjbGFzcz0iZGV2aWNlZmlsZSI+c3Rkb3V0PC9maWxlbmFtZT4sCisJCQlpZ25vcmluZyA8cmVwbGFjZWFibGU+ZmlsZW5hbWU8L3JlcGxhY2VhYmxlPiB1bmxlc3MgPG9wdGlvbj4tLW5vb3V0PC9vcHRpb24+IGlzCisJCQl1c2VkLCBpbiB3aGljaCBjYXNlIGl0IGNyZWF0ZXMgYSBuZXcgY2F0YWxvZworCQkJZmlsZSA8cmVwbGFjZWFibGU+ZmlsZW5hbWU8L3JlcGxhY2VhYmxlPi4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLWRlbCA8cmVwbGFjZWFibGU+VkFMVUUoUyk8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJUmVtb3ZlIGVudHJpZXMgZnJvbSA8cmVwbGFjZWFibGU+Q0FUQUxPR0ZJTEU8L3JlcGxhY2VhYmxlPgorCQkJbWF0Y2hpbmcgPHJlcGxhY2VhYmxlPlZBTFVFKFMpPC9yZXBsYWNlYWJsZT4uIFRoZSA8b3B0aW9uPi0tZGVsPC9vcHRpb24+CisJCQlvcHRpb24gd2lsbCBub3Qgb3ZlcndyaXRlIDxyZXBsYWNlYWJsZT5DQVRBTE9HRklMRTwvcmVwbGFjZWFibGU+LAorCQkJb3V0cHV0dGluZyB0byA8ZmlsZW5hbWUgY2xhc3M9ImRldmljZWZpbGUiPnN0ZG91dDwvZmlsZW5hbWU+LAorCQkJdW5sZXNzIDxvcHRpb24+LS1ub291dDwvb3B0aW9uPiBpcyB1c2VkLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisJCQorCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1ub291dDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJU2F2ZSBvdXRwdXQgdG8gdGhlIG5hbWVkIGZpbGUgcmF0aGVyIHRoYW4gb3V0cHV0dGluZworCQkJdG8gPGZpbGVuYW1lIGNsYXNzPSJkZXZpY2VmaWxlIj5zdGRvdXQ8L2ZpbGVuYW1lPi4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCQkKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tbm8tc3VwZXItdXBkYXRlPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlEbyBub3QgdXBkYXRlIHRoZSA8YWNyb255bT5TR01MPC9hY3JvbnltPiBzdXBlciBjYXRhbG9nLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisJCQorCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1zaGVsbDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJUnVuIGEgc2hlbGwgYWxsb3dpbmcgaW50ZXJhY3RpdmUgcXVlcmllcyBvbiBjYXRhbG9nCisJCQlmaWxlIDxyZXBsYWNlYWJsZT5DQVRBTE9HRklMRTwvcmVwbGFjZWFibGU+LiBGb3IgdGhlIHNldCBvZiBhdmFpbGFibGUKKwkJCWNvbW1hbmRzIHNlZSA8eHJlZiBsaW5rZW5kPSJzaGVsbCIvPi4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCQkKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tc2dtbDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJVXNlcyA8YWNyb255bT5TR01MPC9hY3JvbnltPiBzdXBlciBjYXRhbG9ncyBmb3IgPG9wdGlvbj4tLWFkZDwvb3B0aW9uPgorCQkJYW5kIDxvcHRpb24+LS1kZWw8L29wdGlvbj4gb3B0aW9ucy4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCQkKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi12PC9vcHRpb24+PC90ZXJtPgorCTx0ZXJtPjxvcHRpb24+LS12ZXJib3NlPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+T3V0cHV0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbi48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisJCisJPC92YXJpYWJsZWxpc3Q+Cis8L3JlZnNlY3QxPgorCis8cmVmc2VjdDEgaWQ9InNoZWxsIj4KKwk8dGl0bGU+U0hFTEwgQ09NTUFORFM8L3RpdGxlPgorCTxwYXJhPgorCQlJbnZva2luZyAmeG1sY2F0YWxvZzsgd2l0aAorCQl0aGUgPG9wdGlvbj4tLXNoZWxsIDxyZXBsYWNlYWJsZT5DQVRBTE9HRklMRTwvcmVwbGFjZWFibGU+PC9vcHRpb24+IG9wdGlvbiBvcGVucworCQlhIGNvbW1hbmQgbGluZSBzaGVsbCBhbGxvd2luZyBpbnRlcmFjdGl2ZSBhY2Nlc3MgdG8gdGhlIGNhdGFsb2cgZmlsZQorCQlpZGVudGlmaWVkIGJ5IDxyZXBsYWNlYWJsZT5DQVRBTE9HRklMRTwvcmVwbGFjZWFibGU+LiBJbnZva2luZyB0aGUgc2hlbGwKKwkJcHJvdmlkZXMgYSBjb21tYW5kIGxpbmUgcHJvbXB0IGFmdGVyIHdoaWNoIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgKGRlc2NyaWJlZCBpbgorCQlhbHBoYWJldGljYWwgb3JkZXIpIGNhbiBiZSBlbnRlcmVkLgorCTwvcGFyYT4KKwkKKwk8dmFyaWFibGVsaXN0PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+CisJCTxvcHRpb24+YWRkCisJCSA8cmVwbGFjZWFibGU+VFlQRTwvcmVwbGFjZWFibGU+CisJCSA8cmVwbGFjZWFibGU+T1JJRzwvcmVwbGFjZWFibGU+CisJCSA8cmVwbGFjZWFibGU+UkVQTEFDRTwvcmVwbGFjZWFibGU+CisJCTwvb3B0aW9uPgorCTwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJQWRkIGFuIGVudHJ5IHRvIHRoZSBjYXRhbG9nIGZpbGUuIDxyZXBsYWNlYWJsZT5UWVBFPC9yZXBsYWNlYWJsZT4KKwkJCWluZGljYXRlcyB0aGUgdHlwZSBvZiBlbnRyeS4gUG9zc2libGUgdHlwZXMgYXJlOiA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorCQkJCTxtZW1iZXI+PHBhcmFtZXRlcj5wdWJsaWM8L3BhcmFtZXRlcj48L21lbWJlcj4KKwkJCQk8bWVtYmVyPjxwYXJhbWV0ZXI+c3lzdGVtPC9wYXJhbWV0ZXI+PC9tZW1iZXI+CisJCQkJPG1lbWJlcj48cGFyYW1ldGVyPnJld3JpdGVTeXN0ZW08L3BhcmFtZXRlcj48L21lbWJlcj4KKwkJCQk8bWVtYmVyPjxwYXJhbWV0ZXI+cmV3cml0ZVVSSTwvcGFyYW1ldGVyPjwvbWVtYmVyPgorCQkJCTxtZW1iZXI+PHBhcmFtZXRlcj5kZWxlZ2F0ZVB1YmxpYzwvcGFyYW1ldGVyPjwvbWVtYmVyPgorCQkJCTxtZW1iZXI+PHBhcmFtZXRlcj5kZWxlZ2F0ZVN5c3RlbTwvcGFyYW1ldGVyPjwvbWVtYmVyPgorCQkJCTxtZW1iZXI+PHBhcmFtZXRlcj5uZXh0Q2F0YWxvZzwvcGFyYW1ldGVyPjwvbWVtYmVyPgorCQkJPC9zaW1wbGVsaXN0Pi4gPHJlcGxhY2VhYmxlPk9SSUc8L3JlcGxhY2VhYmxlPiBpcyB0aGUgb3JpZ2luYWwKKwkJCXJlZmVyZW5jZSB0byBiZSByZXBsYWNlZCwgYW5kIDxyZXBsYWNlYWJsZT5SRVBMQUNFPC9yZXBsYWNlYWJsZT4KKwkJCWlzIHRoZSA8YWNyb255bT5VUkk8L2Fjcm9ueW0+IG9mIHRoZSByZXBsYWNlbWVudCBlbnRpdHkgdG8gYmUKKwkJCXVzZWQuIFRoZSA8b3B0aW9uPi0tYWRkPC9vcHRpb24+IG9wdGlvbiB3aWxsIG5vdCBvdmVyd3JpdGUKKwkJCTxmaWxlbmFtZT5DQVRBTE9HRklMRTwvZmlsZW5hbWU+LCBvdXRwdXR0aW5nCisJCQl0byA8ZmlsZW5hbWUgY2xhc3M9ImRldmljZWZpbGUiPnN0ZG91dDwvZmlsZW5hbWU+LCB1bmxlc3MKKwkJCTxvcHRpb24+LS1ub291dDwvb3B0aW9uPiBpcyB1c2VkLiBUaGUgPG9wdGlvbj4tLWFkZDwvb3B0aW9uPiB3aWxsCisJCQlhbHdheXMgdGFrZSB0aHJlZSBwYXJhbWV0ZXJzIGV2ZW4gaWYgc29tZSBvZiB0aGUgPGFjcm9ueW0+WE1MPC9hY3JvbnltPgorCQkJY2F0YWxvZyBjb25zdHJ1Y3RzIHdpbGwgaGF2ZSBvbmx5IGEgc2luZ2xlIGFyZ3VtZW50LgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPmRlYnVnPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlQcmludCBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBzaG93aW5nIHRoZSBzdGVwcyAmeG1sY2F0YWxvZzsgaXMgZXhlY3V0aW5nLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPmRlbCA8cmVwbGFjZWFibGU+VkFMVUUoUyk8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJUmVtb3ZlIHRoZSBjYXRhbG9nIGVudHJ5IGNvcnJlc3BvbmRpbmcgdG8gPHJlcGxhY2VhYmxlPlZBTFVFKFMpPC9yZXBsYWNlYWJsZT4uCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+ZHVtcDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlByaW50IHRoZSBjdXJyZW50IGNhdGFsb2cuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj5leGl0PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+UXVpdCB0aGUgc2hlbGwuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCQorCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+cHVibGljIDxyZXBsYWNlYWJsZT5QVUJMSUMtSUQ8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJRXhlY3V0ZSBhIEZvcm1hbCBQdWJsaWMgSWRlbnRpZmllciBsb29rLXVwIG9mIHRoZSBjYXRhbG9nIGVudHJ5CisJCQlmb3IgPHJlcGxhY2VhYmxlPlBVQkxJQy1JRDwvcmVwbGFjZWFibGU+LiBUaGUgY29ycmVzcG9uZGluZyBlbnRyeSB3aWxsIGJlCisJCQlvdXRwdXQgdG8gdGhlIGNvbW1hbmQgbGluZS4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj5xdWlldDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlN0b3AgcHJpbnRpbmcgZGVidWdnaW5nIHN0YXRlbWVudHMuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCQkKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPnN5c3RlbSA8cmVwbGFjZWFibGU+U1lTVEVNLUlEPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCUV4ZWN1dGUgYSBGb3JtYWwgUHVibGljIElkZW50aWZpZXIgbG9vay11cCBvZiB0aGUgY2F0YWxvZyBlbnRyeQorCQkJZm9yIDxyZXBsYWNlYWJsZT5TWVNURU0tSUQ8L3JlcGxhY2VhYmxlPi4gVGhlIGNvcnJlc3BvbmRpbmcgZW50cnkgd2lsbCBiZQorCQkJb3V0cHV0IHRvIHRoZSBjb21tYW5kIGxpbmUuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCTwvdmFyaWFibGVsaXN0PgorPC9yZWZzZWN0MT4KKworPHJlZnNlY3QxIGlkPSJlbnZpcm9ubWVudCI+CisJPHRpdGxlPkVOVklST05NRU5UPC90aXRsZT4KKwk8dmFyaWFibGVsaXN0PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGVudmFyPlhNTF9DQVRBTE9HX0ZJTEVTPC9lbnZhcj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT48YWNyb255bT5YTUw8L2Fjcm9ueW0+IGNhdGFsb2cgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgYnkgcmVkaXJlY3RpbmcKKwkJCXF1ZXJpZXMgdG8gdGhlIHVzZXIncyBvd24gc2V0IG9mIGNhdGFsb2dzLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcKKwkJCXRoZSA8ZW52YXI+WE1MX0NBVEFMT0dfRklMRVM8L2VudmFyPiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGxpc3QKKwkJCW9mIGNhdGFsb2dzLiBBbiBlbXB0eSBvbmUgc2hvdWxkIGRlYWN0aXZhdGUgbG9hZGluZyB0aGUKKwkJCWRlZmF1bHQgPGZpbGVuYW1lPi9ldGMveG1sL2NhdGFsb2c8L2ZpbGVuYW1lPiBjYXRhbG9nLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwk8L3ZhcmlhYmxlbGlzdD4JCis8L3JlZnNlY3QxPgorCis8cmVmc2VjdDEgaWQ9ImRpYWdub3N0aWNzIj4KKwk8dGl0bGU+RElBR05PU1RJQ1M8L3RpdGxlPgorCTxwYXJhPgorCQkmeG1sY2F0YWxvZzsgcmV0dXJuIGNvZGVzIHByb3ZpZGUgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgdXNlZCB3aGVuCisJCWNhbGxpbmcgaXQgZnJvbSBzY3JpcHRzLgorCTwvcGFyYT4KKwk8dmFyaWFibGVsaXN0PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGVycm9yY29kZT4wPC9lcnJvcmNvZGU+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+Tm8gZXJyb3I8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZXJyb3Jjb2RlPjE8L2Vycm9yY29kZT48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5GYWlsZWQgdG8gcmVtb3ZlIGFuIGVudHJ5IGZyb20gdGhlIGNhdGFsb2c8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZXJyb3Jjb2RlPjI8L2Vycm9yY29kZT48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5GYWlsZWQgdG8gc2F2ZSB0byB0aGUgY2F0YWxvZywgY2hlY2sgZmlsZSBwZXJtaXNzaW9uczwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxlcnJvcmNvZGU+MzwvZXJyb3Jjb2RlPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPkZhaWxlZCB0byBhZGQgYW4gZW50cnkgdG8gdGhlIGNhdGFsb2c8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZXJyb3Jjb2RlPjQ8L2Vycm9yY29kZT48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5GYWlsZWQgdG8gbG9vayB1cCBhbiBlbnRyeSBpbiB0aGUgY2F0YWxvZzwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCTwvdmFyaWFibGVsaXN0PgorPC9yZWZzZWN0MT4KKworPHJlZnNlY3QxIGlkPSJzZWVhbHNvIj4KKwk8dGl0bGU+U0VFIEFMU088L3RpdGxlPgorCTxwYXJhPjxjaXRlcmVmZW50cnk+CisJCQk8cmVmZW50cnl0aXRsZT5saWJ4bWw8L3JlZmVudHJ5dGl0bGU+CisJCQk8bWFudm9sbnVtPjM8L21hbnZvbG51bT4KKwkJPC9jaXRlcmVmZW50cnk+CisJPC9wYXJhPgorCTxwYXJhPgorCQlNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdAorCQk8aXRlbWl6ZWRsaXN0PgorCQkJPGxpc3RpdGVtPgorCQkJCTxwYXJhPjxjaXRlcmVmZW50cnk+CisJCQkJCQk8cmVmZW50cnl0aXRsZT5saWJ4bWw8L3JlZmVudHJ5dGl0bGU+CisJCQkJCQk8bWFudm9sbnVtPjM8L21hbnZvbG51bT4KKwkJCQkJPC9jaXRlcmVmZW50cnk+IHdlYiBwYWdlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cueG1sc29mdC5vcmcvIi8+CisJCQkJPC9wYXJhPgorCQkJPC9saXN0aXRlbT4KKwkJCTxsaXN0aXRlbT4KKwkJCQk8cGFyYT48Y2l0ZXJlZmVudHJ5PgorCQkJCQkJPHJlZmVudHJ5dGl0bGU+bGlieG1sPC9yZWZlbnRyeXRpdGxlPgorCQkJCQkJPG1hbnZvbG51bT4zPC9tYW52b2xudW0+CisJCQkJCTwvY2l0ZXJlZmVudHJ5PiBjYXRhbG9nIHN1cHBvcnQgd2ViIHBhZ2UKKwkJCQkJYXQgPHVsaW5rIHVybD0iaHR0cDovL3d3dy54bWxzb2Z0Lm9yZy9jYXRhbG9nLmh0bWwiLz4KKwkJCQk8L3BhcmE+CisJCQk8L2xpc3RpdGVtPgorCQkJPGxpc3RpdGVtPgorCQkJCTxwYXJhPkphbWVzIENsYXJrJ3MgPGFjcm9ueW0+U0dNTDwvYWNyb255bT4gY2F0YWxvZworCQkJCQlwYWdlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuamNsYXJrLmNvbS9zcC9jYXRhbG9nLmh0bSIvPgorCQkJCTwvcGFyYT4KKwkJCTwvbGlzdGl0ZW0+CisJCQk8bGlzdGl0ZW0+CisJCQkJPHBhcmE+PGFjcm9ueW0+T0FTSVM8L2Fjcm9ueW0+IDxhY3JvbnltPlhNTDwvYWNyb255bT4gY2F0YWxvZyBzcGVjaWZpY2F0aW9uCisJCQkJCTx1bGluayB1cmw9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy5odG1sIi8+CisJCQkJPC9wYXJhPgorCQkJPC9saXN0aXRlbT4KKwkJPC9pdGVtaXplZGxpc3Q+CisJPC9wYXJhPgorPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3htbGR0ZC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sZHRkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJiYjE2NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3htbGR0ZC5odG1sCkBAIC0wLDAgKzEsMTAwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPlZhbGlkYXRpb24gJmFtcDsgRFREczwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IiM4Yjc3NjUiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiNhMDYwNjAiIHZsaW5rPSIjMDAwMDAwIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIHdpZHRoPSIxMjAiPjxhIGhyZWY9Imh0dHA6Ly9zd3BhdC5mZmlpLm9yZy8iPjxpbWcgc3JjPSJlcGF0ZW50cy5wbmciIGFsdD0iQWN0aW9uIGFnYWluc3Qgc29mdHdhcmUgcGF0ZW50cyIgLz48L2E+PC90ZD48dGQgd2lkdGg9IjE4MCI+PGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0iZ25vbWUyLnBuZyIgYWx0PSJHbm9tZTIgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3RhdHVzIj48aW1nIHNyYz0idzNjLnBuZyIgYWx0PSJXM0MgTG9nbyIgLz48L2E+PGEgaHJlZj0iaHR0cDovL3d3dy5yZWRoYXQuY29tLyI+PGltZyBzcmM9InJlZGhhdC5naWYiIGFsdD0iUmVkIEhhdCBMb2dvIiAvPjwvYT48ZGl2IGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvIj48aW1nIHNyYz0iTGlieG1sMi1Mb2dvLTE4MHgxNjguZ2lmIiBhbHQ9Ik1hZGUgd2l0aCBMaWJ4bWwyIExvZ28iIC8+PC9hPjwvZGl2PjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPjxoMT5UaGUgWE1MIEMgcGFyc2VyIGFuZCB0b29sa2l0IG9mIEdub21lPC9oMT48aDI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPk1haW4gTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJpbnRyby5odG1sIj5JbnRyb2R1Y3Rpb248L2E+PC9saT48bGk+PGEgaHJlZj0iRkFRLmh0bWwiPkZBUTwvYT48L2xpPjxsaT48YSBocmVmPSJkb2NzLmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5EZXZlbG9wZXIgTWVudTwvYT48L2xpPjxsaT48YSBocmVmPSJidWdzLmh0bWwiPlJlcG9ydGluZyBidWdzIGFuZCBnZXR0aW5nIGhlbHA8L2E+PC9saT48bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPjxsaT48YSBocmVmPSJkb3dubG9hZHMuaHRtbCI+RG93bmxvYWRzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Im5ld3MuaHRtbCI+UmVsZWFzZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iWE1MaW5mby5odG1sIj5YTUw8L2E+PC9saT48bGk+PGEgaHJlZj0iWFNMVC5odG1sIj5YU0xUPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbGR0ZC5odG1sIj5WYWxpZGF0aW9uICZhbXA7IERURHM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW5jb2RpbmcuaHRtbCI+RW5jb2RpbmdzIHN1cHBvcnQ8L2E+PC9saT48bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+QVBJIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+UmVjZW50IENoYW5nZXM8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5SZWxhdGVkIGxpbmtzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvWFNMVC8iPlhTTFQgbGlieHNsdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vcGhkLmNzLnVuaWJvLml0L2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMvIj5YTUwtRFNpZyB4bWxzZWM8L2E+PC9saT48bGk+PGEgaHJlZj0iZnRwOi8veG1sc29mdC5vcmcvIj5GVFA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56bGF0a292aWMuY29tL3Byb2plY3RzL2xpYnhtbC8iPldpbmRvd3MgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL29wZW5jc3cub3JnL3BhY2thZ2VzL2xpYnhtbDIiPlNvbGFyaXMgYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5leHBsYWluLmNvbS5hdS9vc3MvbGlieG1sMnhzbHQuaHRtbCI+TWFjT3NYIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jb2Rlc3BlYWsubmV0L2x4bWwvIj5seG1sIFB5dGhvbiBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Bhbi51d2lubmlwZWcuY2EvZGlzdC9YTUwtTGliWE1MIj5QZXJsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWxwbHVzcGx1cy5zb3VyY2Vmb3JnZS5uZXQvIj5DKysgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy56ZW5kLmNvbS9waHA1L2FydGljbGVzL3BocDUteG1scGhwLnBocCNIZWFkaW5nNCI+UEhQIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlieG1sMi1wYXMvIj5QYXNjYWwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbC5ydWJ5Zm9yZ2Uub3JnLyI+UnVieSBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vdGNseG1sLnNvdXJjZWZvcmdlLm5ldC8iPlRjbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sMiI+QnVnIFRyYWNrZXI8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48cD5UYWJsZSBvZiBDb250ZW50OjwvcD48b2w+PGxpPjxhIGhyZWY9IiNHZW5lcmFsNSI+R2VuZXJhbCBvdmVydmlldzwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2RlZmluaXRpb24iPlRoZSBkZWZpbml0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjU2ltcGxlIj5TaW1wbGUgcnVsZXM8L2E+CisgICAgPG9sPjxsaT48YSBocmVmPSIjcmVmZXJlbmNlIj5Ib3cgdG8gcmVmZXJlbmNlIGEgRFREIGZyb20gYSBkb2N1bWVudDwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9IiNEZWNsYXJpbmciPkRlY2xhcmluZyBlbGVtZW50czwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9IiNEZWNsYXJpbmcxIj5EZWNsYXJpbmcgYXR0cmlidXRlczwvYT48L2xpPgorICAgIDwvb2w+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNTb21lIj5Tb21lIGV4YW1wbGVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjdmFsaWRhdGUiPkhvdyB0byB2YWxpZGF0ZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI090aGVyIj5PdGhlciByZXNvdXJjZXM8L2E+PC9saT4KKzwvb2w+PGgzPjxhIG5hbWU9IkdlbmVyYWw1IiBpZD0iR2VuZXJhbDUiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9oMz48cD5XZWxsIHdoYXQgaXMgdmFsaWRhdGlvbiBhbmQgd2hhdCBpcyBhIERURCA/PC9wPjxwPkRURCBpcyB0aGUgYWNyb255bSBmb3IgRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uLiBUaGlzIGlzIGEgZGVzY3JpcHRpb24gb2YKK3RoZSBjb250ZW50IGZvciBhIGZhbWlseSBvZiBYTUwgZmlsZXMuIFRoaXMgaXMgcGFydCBvZiB0aGUgWE1MIDEuMAorc3BlY2lmaWNhdGlvbiwgYW5kIGFsbG93cyBvbmUgdG8gZGVzY3JpYmUgYW5kIHZlcmlmeSB0aGF0IGEgZ2l2ZW4gZG9jdW1lbnQKK2luc3RhbmNlIGNvbmZvcm1zIHRvIHRoZSBzZXQgb2YgcnVsZXMgZGV0YWlsaW5nIGl0cyBzdHJ1Y3R1cmUgYW5kIGNvbnRlbnQuPC9wPjxwPlZhbGlkYXRpb24gaXMgdGhlIHByb2Nlc3Mgb2YgY2hlY2tpbmcgYSBkb2N1bWVudCBhZ2FpbnN0IGEgRFREIChtb3JlCitnZW5lcmFsbHkgYWdhaW5zdCBhIHNldCBvZiBjb25zdHJ1Y3Rpb24gcnVsZXMpLjwvcD48cD5UaGUgdmFsaWRhdGlvbiBwcm9jZXNzIGFuZCBidWlsZGluZyBEVERzIGFyZSB0aGUgdHdvIG1vc3QgZGlmZmljdWx0IHBhcnRzCitvZiB0aGUgWE1MIGxpZmUgY3ljbGUuIEJyaWVmbHkgYSBEVEQgZGVmaW5lcyBhbGwgdGhlIHBvc3NpYmxlIGVsZW1lbnRzIHRvIGJlCitmb3VuZCB3aXRoaW4geW91ciBkb2N1bWVudCwgd2hhdCBpcyB0aGUgZm9ybWFsIHNoYXBlIG9mIHlvdXIgZG9jdW1lbnQgdHJlZQorKGJ5IGRlZmluaW5nIHRoZSBhbGxvd2VkIGNvbnRlbnQgb2YgYW4gZWxlbWVudDsgZWl0aGVyIHRleHQsIGEgcmVndWxhcgorZXhwcmVzc2lvbiBmb3IgdGhlIGFsbG93ZWQgbGlzdCBvZiBjaGlsZHJlbiwgb3IgbWl4ZWQgY29udGVudCBpLmUuIGJvdGggdGV4dAorYW5kIGNoaWxkcmVuKS4gVGhlIERURCBhbHNvIGRlZmluZXMgdGhlIHZhbGlkIGF0dHJpYnV0ZXMgZm9yIGFsbCBlbGVtZW50cyBhbmQKK3RoZSB0eXBlcyBvZiB0aG9zZSBhdHRyaWJ1dGVzLjwvcD48aDM+PGEgbmFtZT0iZGVmaW5pdGlvbjEiIGlkPSJkZWZpbml0aW9uMSI+VGhlIGRlZmluaXRpb248L2E+PC9oMz48cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCI+VzNDIFhNTCBSZWNvbW1lbmRhdGlvbjwvYT4gKDxhIGhyZWY9Imh0dHA6Ly93d3cueG1sLmNvbS9heG1sL2F4bWwuaHRtbCI+VGltIEJyYXkncyBhbm5vdGF0ZWQgdmVyc2lvbiBvZgorUmV2MTwvYT4pOjwvcD48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjZWxlbWRlY2xzIj5EZWNsYXJpbmcKKyAgZWxlbWVudHM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjYXR0ZGVjbHMiPkRlY2xhcmluZworICBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8L3VsPjxwPih1bmZvcnR1bmF0ZWx5KSBhbGwgdGhpcyBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgU0dNTCB3b3JsZCwgdGhlIHN5bnRheCBpcworYW5jaWVudC4uLjwvcD48aDM+PGEgbmFtZT0iU2ltcGxlMSIgaWQ9IlNpbXBsZTEiPlNpbXBsZSBydWxlczwvYT48L2gzPjxwPldyaXRpbmcgRFREcyBjYW4gYmUgZG9uZSBpbiBtYW55IHdheXMuIFRoZSBydWxlcyB0byBidWlsZCB0aGVtIGlmIHlvdSBuZWVkCitzb21ldGhpbmcgcGVybWFuZW50IG9yIHNvbWV0aGluZyB3aGljaCBjYW4gZXZvbHZlIG92ZXIgdGltZSBjYW4gYmUgcmFkaWNhbGx5CitkaWZmZXJlbnQuIFJlYWxseSBjb21wbGV4IERURHMgbGlrZSBEb2NCb29rIG9uZXMgYXJlIGZsZXhpYmxlIGJ1dCBxdWl0ZQoraGFyZGVyIHRvIGRlc2lnbi4gSSB3aWxsIGp1c3QgZm9jdXMgb24gRFREcyBmb3IgYSBmb3JtYXRzIHdpdGggYSBmaXhlZCBzaW1wbGUKK3N0cnVjdHVyZS4gSXQgaXMganVzdCBhIHNldCBvZiBiYXNpYyBydWxlcywgYW5kIGRlZmluaXRlbHkgbm90IGV4aGF1c3RpdmUgbm9yCit1c2FibGUgZm9yIGNvbXBsZXggRFREIGRlc2lnbi48L3A+PGg0PjxhIG5hbWU9InJlZmVyZW5jZTEiIGlkPSJyZWZlcmVuY2UxIj5Ib3cgdG8gcmVmZXJlbmNlIGEgRFREIGZyb20gYSBkb2N1bWVudDwvYT46PC9oND48cD5Bc3N1bWluZyB0aGUgdG9wIGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50IGlzIDxjb2RlPnNwZWM8L2NvZGU+IGFuZCB0aGUgZHRkCitpcyBwbGFjZWQgaW4gdGhlIGZpbGUgPGNvZGU+bXlkdGQ8L2NvZGU+IGluIHRoZSBzdWJkaXJlY3RvcnkKKzxjb2RlPmR0ZHM8L2NvZGU+IG9mIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGVyZSB0aGUgZG9jdW1lbnQgd2VyZSBsb2FkZWQ6PC9wPjxwPjxjb2RlPiZsdDshRE9DVFlQRSBzcGVjIFNZU1RFTSAiZHRkcy9teWR0ZCImZ3Q7PC9jb2RlPjwvcD48cD5Ob3Rlczo8L3A+PHVsPjxsaT5UaGUgc3lzdGVtIHN0cmluZyBpcyBhY3R1YWxseSBhbiBVUkktUmVmZXJlbmNlIChhcyBkZWZpbmVkIGluIDxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIzOTYudHh0Ij5SRkMgMjM5NjwvYT4pIHNvIHlvdSBjYW4gdXNlIGEKKyAgICBmdWxsIFVSTCBzdHJpbmcgaW5kaWNhdGluZyB0aGUgbG9jYXRpb24gb2YgeW91ciBEVEQgb24gdGhlIFdlYi4gVGhpcyBpcyBhCisgICAgcmVhbGx5IGdvb2QgdGhpbmcgdG8gZG8gaWYgeW91IHdhbnQgb3RoZXJzIHRvIHZhbGlkYXRlIHlvdXIgZG9jdW1lbnQuPC9saT4KKyAgPGxpPkl0IGlzIGFsc28gcG9zc2libGUgdG8gYXNzb2NpYXRlIGEgPGNvZGU+UFVCTElDPC9jb2RlPiBpZGVudGlmaWVyIChhCisgICAgbWFnaWMgc3RyaW5nKSBzbyB0aGF0IHRoZSBEVEQgaXMgbG9va2VkIHVwIGluIGNhdGFsb2dzIG9uIHRoZSBjbGllbnQgc2lkZQorICAgIHdpdGhvdXQgaGF2aW5nIHRvIGxvY2F0ZSBpdCBvbiB0aGUgd2ViLjwvbGk+CisgIDxsaT5BIERURCBjb250YWlucyBhIHNldCBvZiBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgZGVjbGFyYXRpb25zLCBidXQgdGhleQorICAgIGRvbid0IGRlZmluZSB3aGF0IHRoZSByb290IG9mIHRoZSBkb2N1bWVudCBzaG91bGQgYmUuIFRoaXMgaXMgZXhwbGljaXRseQorICAgIHRvbGQgdG8gdGhlIHBhcnNlci92YWxpZGF0b3IgYXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlCisgICAgPGNvZGU+RE9DVFlQRTwvY29kZT4gZGVjbGFyYXRpb24uPC9saT4KKzwvdWw+PGg0PjxhIG5hbWU9IkRlY2xhcmluZzIiIGlkPSJEZWNsYXJpbmcyIj5EZWNsYXJpbmcgZWxlbWVudHM8L2E+OjwvaDQ+PHA+VGhlIGZvbGxvd2luZyBkZWNsYXJlcyBhbiBlbGVtZW50IDxjb2RlPnNwZWM8L2NvZGU+OjwvcD48cD48Y29kZT4mbHQ7IUVMRU1FTlQgc3BlYyAoZnJvbnQsIGJvZHksIGJhY2s/KSZndDs8L2NvZGU+PC9wPjxwPkl0IGFsc28gZXhwcmVzc2VzIHRoYXQgdGhlIHNwZWMgZWxlbWVudCBjb250YWlucyBvbmUgPGNvZGU+ZnJvbnQ8L2NvZGU+LAorb25lIDxjb2RlPmJvZHk8L2NvZGU+IGFuZCBvbmUgb3B0aW9uYWwgPGNvZGU+YmFjazwvY29kZT4gY2hpbGRyZW4gZWxlbWVudHMgaW4KK3RoaXMgb3JkZXIuIFRoZSBkZWNsYXJhdGlvbiBvZiBvbmUgZWxlbWVudCBvZiB0aGUgc3RydWN0dXJlIGFuZCBpdHMgY29udGVudAorYXJlIGRvbmUgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uIFNpbWlsYXJseSB0aGUgZm9sbG93aW5nIGRlY2xhcmVzCis8Y29kZT5kaXYxPC9jb2RlPiBlbGVtZW50czo8L3A+PHA+PGNvZGU+Jmx0OyFFTEVNRU5UIGRpdjEgKGhlYWQsIChwIHwgbGlzdCB8IG5vdGUpKiwgZGl2Mj8pJmd0OzwvY29kZT48L3A+PHA+d2hpY2ggbWVhbnMgZGl2MSBjb250YWlucyBvbmUgPGNvZGU+aGVhZDwvY29kZT4gdGhlbiBhIHNlcmllcyBvZiBvcHRpb25hbAorPGNvZGU+cDwvY29kZT4sIDxjb2RlPmxpc3Q8L2NvZGU+cyBhbmQgPGNvZGU+bm90ZTwvY29kZT5zIGFuZCB0aGVuIGFuCitvcHRpb25hbCA8Y29kZT5kaXYyPC9jb2RlPi4gQW5kIGxhc3QgYnV0IG5vdCBsZWFzdCBhbiBlbGVtZW50IGNhbiBjb250YWluCit0ZXh0OjwvcD48cD48Y29kZT4mbHQ7IUVMRU1FTlQgYiAoI1BDREFUQSkmZ3Q7PC9jb2RlPjwvcD48cD48Y29kZT5iPC9jb2RlPiBjb250YWlucyB0ZXh0IG9yIGJlaW5nIG9mIG1peGVkIGNvbnRlbnQgKHRleHQgYW5kIGVsZW1lbnRzCitpbiBubyBwYXJ0aWN1bGFyIG9yZGVyKTo8L3A+PHA+PGNvZGU+Jmx0OyFFTEVNRU5UIHAgKCNQQ0RBVEF8YXx1bHxifGl8ZW0pKiZndDs8L2NvZGU+PC9wPjxwPjxjb2RlPnAgPC9jb2RlPmNhbiBjb250YWluIHRleHQgb3IgPGNvZGU+YTwvY29kZT4sIDxjb2RlPnVsPC9jb2RlPiwKKzxjb2RlPmI8L2NvZGU+LCA8Y29kZT5pIDwvY29kZT5vciA8Y29kZT5lbTwvY29kZT4gZWxlbWVudHMgaW4gbm8gcGFydGljdWxhcgorb3JkZXIuPC9wPjxoND48YSBuYW1lPSJEZWNsYXJpbmcxIiBpZD0iRGVjbGFyaW5nMSI+RGVjbGFyaW5nIGF0dHJpYnV0ZXM8L2E+OjwvaDQ+PHA+QWdhaW4gdGhlIGF0dHJpYnV0ZXMgZGVjbGFyYXRpb24gaW5jbHVkZXMgdGhlaXIgY29udGVudCBkZWZpbml0aW9uOjwvcD48cD48Y29kZT4mbHQ7IUFUVExJU1QgdGVybWRlZiBuYW1lIENEQVRBICNJTVBMSUVEJmd0OzwvY29kZT48L3A+PHA+bWVhbnMgdGhhdCB0aGUgZWxlbWVudCA8Y29kZT50ZXJtZGVmPC9jb2RlPiBjYW4gaGF2ZSBhIDxjb2RlPm5hbWU8L2NvZGU+CithdHRyaWJ1dGUgY29udGFpbmluZyB0ZXh0ICg8Y29kZT5DREFUQTwvY29kZT4pIGFuZCB3aGljaCBpcyBvcHRpb25hbAorKDxjb2RlPiNJTVBMSUVEPC9jb2RlPikuIFRoZSBhdHRyaWJ1dGUgdmFsdWUgY2FuIGFsc28gYmUgZGVmaW5lZCB3aXRoaW4gYQorc2V0OjwvcD48cD48Y29kZT4mbHQ7IUFUVExJU1QgbGlzdCB0eXBlIChidWxsZXRzfG9yZGVyZWR8Z2xvc3NhcnkpCisib3JkZXJlZCImZ3Q7PC9jb2RlPjwvcD48cD5tZWFucyA8Y29kZT5saXN0PC9jb2RlPiBlbGVtZW50IGhhdmUgYSA8Y29kZT50eXBlPC9jb2RlPiBhdHRyaWJ1dGUgd2l0aCAzCithbGxvd2VkIHZhbHVlcyAiYnVsbGV0cyIsICJvcmRlcmVkIiBvciAiZ2xvc3NhcnkiIGFuZCB3aGljaCBkZWZhdWx0IHRvCisib3JkZXJlZCIgaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQuPC9wPjxwPlRoZSBjb250ZW50IHR5cGUgb2YgYW4gYXR0cmlidXRlIGNhbiBiZSB0ZXh0ICg8Y29kZT5DREFUQTwvY29kZT4pLAorYW5jaG9yL3JlZmVyZW5jZS9yZWZlcmVuY2VzCisoPGNvZGU+SUQ8L2NvZGU+Lzxjb2RlPklEUkVGPC9jb2RlPi88Y29kZT5JRFJFRlM8L2NvZGU+KSwgZW50aXR5KGllcykKKyg8Y29kZT5FTlRJVFk8L2NvZGU+Lzxjb2RlPkVOVElUSUVTPC9jb2RlPikgb3IgbmFtZShzKQorKDxjb2RlPk5NVE9LRU48L2NvZGU+Lzxjb2RlPk5NVE9LRU5TPC9jb2RlPikuIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyB0aGF0IGEKKzxjb2RlPmNoYXB0ZXI8L2NvZGU+IGVsZW1lbnQgY2FuIGhhdmUgYW4gb3B0aW9uYWwgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZQorb2YgdHlwZSA8Y29kZT5JRDwvY29kZT4sIHVzYWJsZSBmb3IgcmVmZXJlbmNlIGZyb20gYXR0cmlidXRlIG9mIHR5cGUKK0lEUkVGOjwvcD48cD48Y29kZT4mbHQ7IUFUVExJU1QgY2hhcHRlciBpZCBJRCAjSU1QTElFRCZndDs8L2NvZGU+PC9wPjxwPlRoZSBsYXN0IHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGNhbiBiZSA8Y29kZT4jUkVRVUlSRUQKKzwvY29kZT5tZWFuaW5nIHRoYXQgdGhlIGF0dHJpYnV0ZSBoYXMgdG8gYmUgZ2l2ZW4sIDxjb2RlPiNJTVBMSUVEPC9jb2RlPgorbWVhbmluZyB0aGF0IGl0IGlzIG9wdGlvbmFsLCBvciB0aGUgZGVmYXVsdCB2YWx1ZSAocG9zc2libHkgcHJlZml4ZWQgYnkKKzxjb2RlPiNGSVhFRDwvY29kZT4gaWYgaXQgaXMgdGhlIG9ubHkgYWxsb3dlZCkuPC9wPjxwPk5vdGVzOjwvcD48dWw+PGxpPlVzdWFsbHkgdGhlIGF0dHJpYnV0ZXMgcGVydGFpbmluZyB0byBhIGdpdmVuIGVsZW1lbnQgYXJlIGRlY2xhcmVkIGluIGEKKyAgICBzaW5nbGUgZXhwcmVzc2lvbiwgYnV0IGl0IGlzIGp1c3QgYSBjb252ZW50aW9uIGFkb3B0ZWQgYnkgYSBsb3Qgb2YgRFRECisgICAgd3JpdGVyczoKKyAgICA8cHJlPiZsdDshQVRUTElTVCB0ZXJtZGVmCisgICAgICAgICAgaWQgICAgICBJRCAgICAgICNSRVFVSVJFRAorICAgICAgICAgIG5hbWUgICAgQ0RBVEEgICAjSU1QTElFRCZndDs8L3ByZT4KKyAgICA8cD5UaGUgcHJldmlvdXMgY29uc3RydWN0IGRlZmluZXMgYm90aCA8Y29kZT5pZDwvY29kZT4gYW5kCisgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlcyBmb3IgdGhlIGVsZW1lbnQgPGNvZGU+dGVybWRlZjwvY29kZT4uPC9wPgorICA8L2xpPgorPC91bD48aDM+PGEgbmFtZT0iU29tZTEiIGlkPSJTb21lMSI+U29tZSBleGFtcGxlczwvYT48L2gzPjxwPlRoZSBkaXJlY3RvcnkgPGNvZGU+dGVzdC92YWxpZC9kdGRzLzwvY29kZT4gaW4gdGhlIGxpYnhtbDIgZGlzdHJpYnV0aW9uCitjb250YWlucyBzb21lIGNvbXBsZXggRFREIGV4YW1wbGVzLiBUaGUgZXhhbXBsZSBpbiB0aGUgZmlsZQorPGNvZGU+dGVzdC92YWxpZC9kaWEueG1sPC9jb2RlPiBzaG93cyBhbiBYTUwgZmlsZSB3aGVyZSB0aGUgc2ltcGxlIERURCBpcworZGlyZWN0bHkgaW5jbHVkZWQgd2l0aGluIHRoZSBkb2N1bWVudC48L3A+PGgzPjxhIG5hbWU9InZhbGlkYXRlMSIgaWQ9InZhbGlkYXRlMSI+SG93IHRvIHZhbGlkYXRlPC9hPjwvaDM+PHA+VGhlIHNpbXBsZXN0IHdheSBpcyB0byB1c2UgdGhlIHhtbGxpbnQgcHJvZ3JhbSBpbmNsdWRlZCB3aXRoIGxpYnhtbC4gVGhlCis8Y29kZT4tLXZhbGlkPC9jb2RlPiBvcHRpb24gdHVybnMtb24gdmFsaWRhdGlvbiBvZiB0aGUgZmlsZXMgZ2l2ZW4gYXMgaW5wdXQuCitGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIHZhbGlkYXRlcyBhIGNvcHkgb2YgdGhlIGZpcnN0IHJldmlzaW9uIG9mIHRoZSBYTUwKKzEuMCBzcGVjaWZpY2F0aW9uOjwvcD48cD48Y29kZT54bWxsaW50IC0tdmFsaWQgLS1ub291dCB0ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sPC9jb2RlPjwvcD48cD50aGUgLS0gbm9vdXQgaXMgdXNlZCB0byBkaXNhYmxlIG91dHB1dCBvZiB0aGUgcmVzdWx0aW5nIHRyZWUuPC9wPjxwPlRoZSA8Y29kZT4tLWR0ZHZhbGlkIGR0ZDwvY29kZT4gYWxsb3dzIHZhbGlkYXRpb24gb2YgdGhlIGRvY3VtZW50KHMpCithZ2FpbnN0IGEgZ2l2ZW4gRFRELjwvcD48cD5MaWJ4bWwyIGV4cG9ydHMgYW4gQVBJIHRvIGhhbmRsZSBEVERzIGFuZCB2YWxpZGF0aW9uLCBjaGVjayB0aGUgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXZhbGlkLmh0bWwiPmFzc29jaWF0ZWQKK2Rlc2NyaXB0aW9uPC9hPi48L3A+PGgzPjxhIG5hbWU9Ik90aGVyMSIgaWQ9Ik90aGVyMSI+T3RoZXIgcmVzb3VyY2VzPC9hPjwvaDM+PHA+RFREcyBhcmUgYXMgb2xkIGFzIFNHTUwuIFNvIHRoZXJlIG1heSBiZSBhIG51bWJlciBvZiBleGFtcGxlcyBvbi1saW5lLCBJCit3aWxsIGp1c3QgbGlzdCBvbmUgZm9yIG5vdywgb3RoZXJzIHBvaW50ZXJzIHdlbGNvbWU6PC9wPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy54bWwxMDEuY29tOjgwODEvZHRkLyI+WE1MLTEwMSBEVEQ8L2E+PC9saT4KKzwvdWw+PHA+SSBzdWdnZXN0IGxvb2tpbmcgYXQgdGhlIGV4YW1wbGVzIGZvdW5kIHVuZGVyIHRlc3QvdmFsaWQvZHRkIGFuZCBhbnkgb2YKK3RoZSBsYXJnZSBudW1iZXIgb2YgYm9va3MgYXZhaWxhYmxlIG9uIFhNTC4gVGhlIGRpYSBleGFtcGxlIGluIHRlc3QvdmFsaWQKK3Nob3VsZCBiZSBib3RoIHNpbXBsZSBhbmQgY29tcGxldGUgZW5vdWdoIHRvIGFsbG93IHlvdSB0byBidWlsZCB5b3VyIG93bi48L3A+PHA+PC9wPjxwPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+RGFuaWVsIFZlaWxsYXJkPC9hPjwvcD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MveG1saW8uaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3htbGlvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJlZWUwNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3htbGlvLmh0bWwKQEAgLTAsMCArMSwxMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iL2Zhdmljb24uaWNvIiAvPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitURCB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQk9EWSB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhOyBtYXJnaW4tdG9wOiAyZW07IG1hcmdpbi1sZWZ0OiAwZW07IG1hcmdpbi1yaWdodDogMGVtfQorSDEge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0gyIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMyB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorQTpsaW5rLCBBOnZpc2l0ZWQsIEE6YWN0aXZlIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorPC9zdHlsZT48dGl0bGU+SS9PIEludGVyZmFjZXM8L3RpdGxlPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSIjOGI3NzY1IiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjYTA2MDYwIiB2bGluaz0iIzAwMDAwMCI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCB3aWR0aD0iMTIwIj48YSBocmVmPSJodHRwOi8vc3dwYXQuZmZpaS5vcmcvIj48aW1nIHNyYz0iZXBhdGVudHMucG5nIiBhbHQ9IkFjdGlvbiBhZ2FpbnN0IHNvZnR3YXJlIHBhdGVudHMiIC8+PC9hPjwvdGQ+PHRkIHdpZHRoPSIxODAiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ25vbWUub3JnLyI+PGltZyBzcmM9Imdub21lMi5wbmciIGFsdD0iR25vbWUyIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iIC8+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS8iPjxpbWcgc3JjPSJyZWRoYXQuZ2lmIiBhbHQ9IlJlZCBIYXQgTG9nbyIgLz48L2E+PGRpdiBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnLyI+PGltZyBzcmM9IkxpYnhtbDItTG9nby0xODB4MTY4LmdpZiIgYWx0PSJNYWRlIHdpdGggTGlieG1sMiBMb2dvIiAvPjwvYT48L2Rpdj48L3RkPjx0ZD48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyIgYmdjb2xvcj0iI2ZmZmFjZCI+PHRyPjx0ZCBhbGlnbj0iY2VudGVyIj48aDE+VGhlIFhNTCBDIHBhcnNlciBhbmQgdG9vbGtpdCBvZiBHbm9tZTwvaDE+PGgyPkkvTyBJbnRlcmZhY2VzPC9oMj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMDAiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkRldmVsb3BlciBNZW51PC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxmb3JtIGFjdGlvbj0ic2VhcmNoLnBocCIgZW5jdHlwZT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBtZXRob2Q9ImdldCI+PGlucHV0IG5hbWU9InF1ZXJ5IiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgLz48aW5wdXQgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2ggLi4uIiAvPjwvZm9ybT48dWw+PGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5NYWluIE1lbnU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHRtbC9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+UmVmZXJlbmNlIE1hbnVhbDwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlcy9pbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+Q29kZSBFeGFtcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJndWlkZWxpbmVzLmh0bWwiPlhNTCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InR1dG9yaWFsL2luZGV4Lmh0bWwiPlR1dG9yaWFsPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbHJlYWRlci5odG1sIj5UaGUgUmVhZGVyIEludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJDaGFuZ2VMb2cuaHRtbCI+Q2hhbmdlTG9nPC9hPjwvbGk+PGxpPjxhIGhyZWY9IlhTTFQuaHRtbCI+WFNMVDwvYT48L2xpPjxsaT48YSBocmVmPSJweXRob24uaHRtbCI+UHl0aG9uIGFuZCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJhcmNoaXRlY3R1cmUuaHRtbCI+bGlieG1sMiBhcmNoaXRlY3R1cmU8L2E+PC9saT48bGk+PGEgaHJlZj0idHJlZS5odG1sIj5UaGUgdHJlZSBvdXRwdXQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbG1lbS5odG1sIj5NZW1vcnkgTWFuYWdlbWVudDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJsaWJyYXJ5Lmh0bWwiPlRoZSBwYXJzZXIgaW50ZXJmYWNlczwvYT48L2xpPjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPjxsaT48YSBocmVmPSJuYW1lc3BhY2VzLmh0bWwiPk5hbWVzcGFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0idXBncmFkZS5odG1sIj5VcGdyYWRpbmcgMS54IGNvZGU8L2E+PC9saT48bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+PGxpPjxhIGhyZWY9IkRPTS5odG1sIj5ET00gUHJpbmNpcGxlczwvYT48L2xpPjxsaT48YSBocmVmPSJleGFtcGxlLmh0bWwiPkEgcmVhbCBleGFtcGxlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InhtbC5odG1sIj5mbGF0IHBhZ2U8L2E+LCA8YSBocmVmPSJzaXRlLnhzbCI+c3R5bGVzaGVldDwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPkFQSSBJbmRleGVzPC9iPjwvY2VudGVyPjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bD48bGk+PGEgaHJlZj0iQVBJY2h1bmswLmh0bWwiPkFscGhhYmV0aWM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJY29uc3RydWN0b3JzLmh0bWwiPkNvbnN0cnVjdG9yczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmdW5jdGlvbnMuaHRtbCI+RnVuY3Rpb25zL1R5cGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWZpbGVzLmh0bWwiPk1vZHVsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJc3ltYm9scy5odG1sIj5TeW1ib2xzPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj48dHI+PHRkIGNvbHNwYW49IjEiIGJnY29sb3I9IiNlZWNmYTEiIGFsaWduPSJjZW50ZXIiPjxjZW50ZXI+PGI+UmVsYXRlZCBsaW5rczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvIj5NYWlsIGFyY2hpdmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3BoZC5jcy51bmliby5pdC9nZG9tZTIvIj5ET00gZ2RvbWUyPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjLyI+WE1MLURTaWcgeG1sc2VjPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemxhdGtvdmljLmNvbS9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9vcGVuY3N3Lm9yZy9wYWNrYWdlcy9saWJ4bWwyIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwbGFpbi5jb20uYXUvb3NzL2xpYnhtbDJ4c2x0Lmh0bWwiPk1hY09zWCBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sLyI+bHhtbCBQeXRob24gYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NwYW4udXdpbm5pcGVnLmNhL2Rpc3QvWE1MLUxpYlhNTCI+UGVybCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1scGx1c3BsdXMuc291cmNlZm9yZ2UubmV0LyI+QysrIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuemVuZC5jb20vcGhwNS9hcnRpY2xlcy9waHA1LXhtbHBocC5waHAjSGVhZGluZzQiPlBIUCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYnhtbDItcGFzLyI+UGFzY2FsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9saWJ4bWwucnVieWZvcmdlLm9yZy8iPlJ1YnkgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3RjbHhtbC5zb3VyY2Vmb3JnZS5uZXQvIj5UY2wgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9idWdsaXN0LmNnaT9wcm9kdWN0PWxpYnhtbDIiPkJ1ZyBUcmFja2VyPC9hPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHA+VGFibGUgb2YgQ29udGVudDo8L3A+PG9sPjxsaT48YSBocmVmPSIjR2VuZXJhbDEiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNiYXNpYyI+VGhlIGJhc2ljIGJ1ZmZlciB0eXBlPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjSW5wdXQiPklucHV0IEkvTyBoYW5kbGVyczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI091dHB1dCI+T3V0cHV0IEkvTyBoYW5kbGVyczwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI2VudGl0aWVzIj5UaGUgZW50aXRpZXMgbG9hZGVyPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjRXhhbXBsZTIiPkV4YW1wbGUgb2YgY3VzdG9taXplZCBJL088L2E+PC9saT4KKzwvb2w+PGgzPjxhIG5hbWU9IkdlbmVyYWwxIiBpZD0iR2VuZXJhbDEiPkdlbmVyYWwgb3ZlcnZpZXc8L2E+PC9oMz48cD5UaGUgbW9kdWxlIDxjb2RlPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxpby5odG1sIj54bWxJTy5oPC9hPjwvY29kZT4gcHJvdmlkZXMKK3RoZSBpbnRlcmZhY2VzIHRvIHRoZSBsaWJ4bWwyIEkvTyBzeXN0ZW0uIFRoaXMgY29uc2lzdHMgb2YgNCBtYWluIHBhcnRzOjwvcD48dWw+PGxpPkVudGl0aWVzIGxvYWRlciwgdGhpcyBpcyBhIHJvdXRpbmUgd2hpY2ggdHJpZXMgdG8gZmV0Y2ggdGhlIGVudGl0aWVzCisgICAgKGZpbGVzKSBiYXNlZCBvbiB0aGVpciBQVUJMSUMgYW5kIFNZU1RFTSBpZGVudGlmaWVycy4gVGhlIGRlZmF1bHQgbG9hZGVyCisgICAgZG9uJ3QgbG9vayBhdCB0aGUgcHVibGljIGlkZW50aWZpZXIgc2luY2UgbGlieG1sMiBkbyBub3QgbWFpbnRhaW4gYQorICAgIGNhdGFsb2cuIFlvdSBjYW4gcmVkZWZpbmUgeW91IG93biBlbnRpdHkgbG9hZGVyIGJ5IHVzaW5nCisgICAgPGNvZGU+eG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKTwvY29kZT4gYW5kCisgICAgPGNvZGU+eG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKTwvY29kZT4uIDxhIGhyZWY9IiNlbnRpdGllcyI+Q2hlY2sgdGhlCisgICAgZXhhbXBsZTwvYT4uPC9saT4KKyAgPGxpPklucHV0IEkvTyBidWZmZXJzIHdoaWNoIGFyZSBhIGNvbW1vZGl0eSBzdHJ1Y3R1cmUgdXNlZCBieSB0aGUgcGFyc2VyKHMpCisgICAgaW5wdXQgbGF5ZXIgdG8gaGFuZGxlIGZldGNoaW5nIHRoZSBpbmZvcm1hdGlvbiB0byBmZWVkIHRoZSBwYXJzZXIuIFRoaXMKKyAgICBwcm92aWRlcyBidWZmZXJpbmcgYW5kIGlzIGFsc28gYSBwbGFjZWhvbGRlciB3aGVyZSB0aGUgZW5jb2RpbmcKKyAgICBjb252ZXJ0ZXJzIHRvIFVURjggYXJlIHBpZ2d5LWJhY2tlZC48L2xpPgorICA8bGk+T3V0cHV0IEkvTyBidWZmZXJzIGFyZSBzaW1pbGFyIHRvIHRoZSBJbnB1dCBvbmVzIGFuZCBmdWxmaWxsIHNpbWlsYXIKKyAgICB0YXNrIGJ1dCB3aGVuIGdlbmVyYXRpbmcgYSBzZXJpYWxpemF0aW9uIGZyb20gYSB0cmVlLjwvbGk+CisgIDxsaT5BIG1lY2hhbmlzbSB0byByZWdpc3RlciBzZXRzIG9mIEkvTyBjYWxsYmFja3MgYW5kIGFzc29jaWF0ZSB0aGVtIHdpdGgKKyAgICBzcGVjaWZpYyBuYW1pbmcgc2NoZW1lcyBsaWtlIHRoZSBwcm90b2NvbCBwYXJ0IG9mIHRoZSBVUklzLgorICAgIDxwPlRoaXMgYWZmZWN0IHRoZSBkZWZhdWx0IEkvTyBvcGVyYXRpb25zIGFuZCBhbGxvd3MgdG8gdXNlIHNwZWNpZmljIEkvTworICAgIGhhbmRsZXJzIGZvciBjZXJ0YWluIG5hbWVzLjwvcD4KKyAgPC9saT4KKzwvdWw+PHA+VGhlIGdlbmVyYWwgbWVjaGFuaXNtIHVzZWQgd2hlbiBsb2FkaW5nIGh0dHA6Ly9ycG1maW5kLm5ldC94bWwuaHRtbCBmb3IKK2V4YW1wbGUgaW4gdGhlIEhUTUwgcGFyc2VyIGlzIHRoZSBmb2xsb3dpbmc6PC9wPjxvbD48bGk+VGhlIGRlZmF1bHQgZW50aXR5IGxvYWRlciBjYWxscyA8Y29kZT54bWxOZXdJbnB1dEZyb21GaWxlKCk8L2NvZGU+IHdpdGgKKyAgICB0aGUgcGFyc2luZyBjb250ZXh0IGFuZCB0aGUgVVJJIHN0cmluZy48L2xpPgorICA8bGk+dGhlIFVSSSBzdHJpbmcgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBleGlzdGluZyByZWdpc3RlcmVkIGhhbmRsZXJzCisgICAgdXNpbmcgdGhlaXIgbWF0Y2goKSBjYWxsYmFjayBmdW5jdGlvbiwgaWYgdGhlIEhUVFAgbW9kdWxlIHdhcyBjb21waWxlZAorICAgIGluLCBpdCBpcyByZWdpc3RlcmVkIGFuZCBpdHMgbWF0Y2goKSBmdW5jdGlvbiB3aWxsIHN1Y2NlZWRzPC9saT4KKyAgPGxpPnRoZSBvcGVuKCkgZnVuY3Rpb24gb2YgdGhlIGhhbmRsZXIgaXMgY2FsbGVkIGFuZCBpZiBzdWNjZXNzZnVsIHdpbGwKKyAgICByZXR1cm4gYW4gSS9PIElucHV0IGJ1ZmZlcjwvbGk+CisgIDxsaT50aGUgcGFyc2VyIHdpbGwgdGhlIHN0YXJ0IHJlYWRpbmcgZnJvbSB0aGlzIGJ1ZmZlciBhbmQgcHJvZ3Jlc3NpdmVseQorICAgIGZldGNoIGluZm9ybWF0aW9uIGZyb20gdGhlIHJlc291cmNlLCBjYWxsaW5nIHRoZSByZWFkKCkgZnVuY3Rpb24gb2YgdGhlCisgICAgaGFuZGxlciB1bnRpbCB0aGUgcmVzb3VyY2UgaXMgZXhoYXVzdGVkPC9saT4KKyAgPGxpPmlmIGFuIGVuY29kaW5nIGNoYW5nZSBpcyBkZXRlY3RlZCBpdCB3aWxsIGJlIGluc3RhbGxlZCBvbiB0aGUgaW5wdXQKKyAgICBidWZmZXIsIHByb3ZpZGluZyBidWZmZXJpbmcgYW5kIGVmZmljaWVudCB1c2Ugb2YgdGhlIGNvbnZlcnNpb24KKyAgcm91dGluZXM8L2xpPgorICA8bGk+b25jZSB0aGUgcGFyc2VyIGhhcyBmaW5pc2hlZCwgdGhlIGNsb3NlKCkgZnVuY3Rpb24gb2YgdGhlIGhhbmRsZXIgaXMKKyAgICBjYWxsZWQgb25jZSBhbmQgdGhlIElucHV0IGJ1ZmZlciBhbmQgYXNzb2NpYXRlZCByZXNvdXJjZXMgYXJlCisgIGRlYWxsb2NhdGVkLjwvbGk+Cis8L29sPjxwPlRoZSB1c2VyIGRlZmluZWQgY2FsbGJhY2tzIGFyZSBjaGVja2VkIGZpcnN0IHRvIGFsbG93IG92ZXJyaWRpbmcgb2YgdGhlCitkZWZhdWx0IGxpYnhtbDIgSS9PIHJvdXRpbmVzLjwvcD48aDM+PGEgbmFtZT0iYmFzaWMiIGlkPSJiYXNpYyI+VGhlIGJhc2ljIGJ1ZmZlciB0eXBlPC9hPjwvaDM+PHA+QWxsIHRoZSBidWZmZXIgbWFuaXB1bGF0aW9uIGhhbmRsaW5nIGlzIGRvbmUgdXNpbmcgdGhlCis8Y29kZT54bWxCdWZmZXI8L2NvZGU+IHR5cGUgZGVmaW5lIGluIDxjb2RlPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwiPnRyZWUuaDwvYT4gPC9jb2RlPndoaWNoIGlzIGEKK3Jlc2l6YWJsZSBtZW1vcnkgYnVmZmVyLiBUaGUgYnVmZmVyIGFsbG9jYXRpb24gc3RyYXRlZ3kgY2FuIGJlIHNlbGVjdGVkIHRvIGJlCitlaXRoZXIgYmVzdC1maXQgb3IgdXNlIGFuIGV4cG9uZW50aWFsIGRvdWJsaW5nIG9uZSAoQ1BVIHZzLiBtZW1vcnkgdXNlCit0cmFkZS1vZmYpLiBUaGUgdmFsdWVzIGFyZSA8Y29kZT5YTUxfQlVGRkVSX0FMTE9DX0VYQUNUPC9jb2RlPiBhbmQKKzxjb2RlPlhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQ8L2NvZGU+LCBhbmQgY2FuIGJlIHNldCBpbmRpdmlkdWFsbHkgb3Igb24gYQorc3lzdGVtIHdpZGUgYmFzaXMgdXNpbmcgPGNvZGU+eG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSgpPC9jb2RlPi4gQSBudW1iZXIKK29mIGZ1bmN0aW9ucyBhbGxvd3MgdG8gbWFuaXB1bGF0ZSBidWZmZXJzIHdpdGggbmFtZXMgc3RhcnRpbmcgd2l0aCB0aGUKKzxjb2RlPnhtbEJ1ZmZlci4uLjwvY29kZT4gcHJlZml4LjwvcD48aDM+PGEgbmFtZT0iSW5wdXQiIGlkPSJJbnB1dCI+SW5wdXQgSS9PIGhhbmRsZXJzPC9hPjwvaDM+PHA+QW4gSW5wdXQgSS9PIGhhbmRsZXIgaXMgYSBzaW1wbGUgc3RydWN0dXJlCis8Y29kZT54bWxQYXJzZXJJbnB1dEJ1ZmZlcjwvY29kZT4gY29udGFpbmluZyBhIGNvbnRleHQgYXNzb2NpYXRlZCB0byB0aGUKK3Jlc291cmNlIChmaWxlIGRlc2NyaXB0b3IsIG9yIHBvaW50ZXIgdG8gYSBwcm90b2NvbCBoYW5kbGVyKSwgdGhlIHJlYWQoKSBhbmQKK2Nsb3NlKCkgY2FsbGJhY2tzIHRvIHVzZSBhbmQgYW4geG1sQnVmZmVyLiBBbmQgZXh0cmEgeG1sQnVmZmVyIGFuZCBhIGNoYXJzZXQKK2VuY29kaW5nIGhhbmRsZXIgYXJlIGFsc28gcHJlc2VudCB0byBzdXBwb3J0IGNoYXJzZXQgY29udmVyc2lvbiB3aGVuCituZWVkZWQuPC9wPjxoMz48YSBuYW1lPSJPdXRwdXQiIGlkPSJPdXRwdXQiPk91dHB1dCBJL08gaGFuZGxlcnM8L2E+PC9oMz48cD5BbiBPdXRwdXQgaGFuZGxlciA8Y29kZT54bWxPdXRwdXRCdWZmZXI8L2NvZGU+IGlzIGNvbXBsZXRlbHkgc2ltaWxhciB0byBhbgorSW5wdXQgb25lIGV4Y2VwdCB0aGUgY2FsbGJhY2tzIGFyZSB3cml0ZSgpIGFuZCBjbG9zZSgpLjwvcD48aDM+PGEgbmFtZT0iZW50aXRpZXMiIGlkPSJlbnRpdGllcyI+VGhlIGVudGl0aWVzIGxvYWRlcjwvYT48L2gzPjxwPlRoZSBlbnRpdHkgbG9hZGVyIHJlc29sdmVzIHJlcXVlc3RzIGZvciBuZXcgZW50aXRpZXMgYW5kIGNyZWF0ZSBpbnB1dHMgZm9yCit0aGUgcGFyc2VyLiBDcmVhdGluZyBhbiBpbnB1dCBmcm9tIGEgZmlsZW5hbWUgb3IgYW4gVVJJIHN0cmluZyBpcyBkb25lCit0aHJvdWdoIHRoZSB4bWxOZXdJbnB1dEZyb21GaWxlKCkgcm91dGluZS4gIFRoZSBkZWZhdWx0IGVudGl0eSBsb2FkZXIgZG8gbm90CitoYW5kbGUgdGhlIFBVQkxJQyBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCBhbiBlbnRpdHkgKGlmIGFueSkuIFNvIGl0IGp1c3QKK2NhbGxzIHhtbE5ld0lucHV0RnJvbUZpbGUoKSB3aXRoIHRoZSBTWVNURU0gaWRlbnRpZmllciAod2hpY2ggaXMgbWFuZGF0b3J5IGluCitYTUwpLjwvcD48cD5JZiB5b3Ugd2FudCB0byBob29rIHVwIGEgY2F0YWxvZyBtZWNoYW5pc20gdGhlbiB5b3Ugc2ltcGx5IG5lZWQgdG8KK292ZXJyaWRlIHRoZSBkZWZhdWx0IGVudGl0eSBsb2FkZXIsIGhlcmUgaXMgYW4gZXhhbXBsZTo8L3A+PHByZT4jaW5jbHVkZSAmbHQ7bGlieG1sL3htbElPLmgmZ3Q7CisKK3htbEV4dGVybmFsRW50aXR5TG9hZGVyIGRlZmF1bHRMb2FkZXIgPSBOVUxMOworCit4bWxQYXJzZXJJbnB1dFB0cgoreG1sTXlFeHRlcm5hbEVudGl0eUxvYWRlcihjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKklELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldDsKKyAgICBjb25zdCBjaGFyICpmaWxlSUQgPSBOVUxMOworICAgIC8qIGxvb2t1cCBmb3IgdGhlIGZpbGVJRCBkZXBlbmRpbmcgb24gSUQgKi8KKworICAgIHJldCA9IHhtbE5ld0lucHV0RnJvbUZpbGUoY3R4dCwgZmlsZUlEKTsKKyAgICBpZiAocmV0ICE9IE5VTEwpCisgICAgICAgIHJldHVybihyZXQpOworICAgIGlmIChkZWZhdWx0TG9hZGVyICE9IE5VTEwpCisgICAgICAgIHJldCA9IGRlZmF1bHRMb2FkZXIoVVJMLCBJRCwgY3R4dCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKK2ludCBtYWluKC4uKSB7CisgICAgLi4uCisKKyAgICAvKgorICAgICAqIEluc3RhbGwgb3VyIG93biBlbnRpdHkgbG9hZGVyCisgICAgICovCisgICAgZGVmYXVsdExvYWRlciA9IHhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyKCk7CisgICAgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoeG1sTXlFeHRlcm5hbEVudGl0eUxvYWRlcik7CisKKyAgICAuLi4KK308L3ByZT48aDM+PGEgbmFtZT0iRXhhbXBsZTIiIGlkPSJFeGFtcGxlMiI+RXhhbXBsZSBvZiBjdXN0b21pemVkIEkvTzwvYT48L2gzPjxwPlRoaXMgZXhhbXBsZSBjb21lIGZyb20gPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL21lc3NhZ2VzLzA3MDguaHRtbCI+YQorcmVhbCB1c2UgY2FzZTwvYT4sICB4bWxEb2NEdW1wKCkgY2xvc2VzIHRoZSBGSUxFICogcGFzc2VkIGJ5IHRoZSBhcHBsaWNhdGlvbgorYW5kIHRoaXMgd2FzIGEgcHJvYmxlbS4gVGhlIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9tZXNzYWdlcy8wNzExLmh0bWwiPnNvbHV0aW9uPC9hPiB3YXMgdG8gcmVkZWZpbmUgYQorbmV3IG91dHB1dCBoYW5kbGVyIHdpdGggdGhlIGNsb3NpbmcgY2FsbCBkZWFjdGl2YXRlZDo8L3A+PG9sPjxsaT5GaXJzdCBkZWZpbmUgYSBuZXcgSS9PIG91dHB1dCBhbGxvY2F0b3Igd2hlcmUgdGhlIG91dHB1dCBkb24ndCBjbG9zZQorICAgIHRoZSBmaWxlOgorICAgIDxwcmU+eG1sT3V0cHV0QnVmZmVyUHRyCit4bWxPdXRwdXRCdWZmZXJDcmVhdGVPd24oRklMRSAqZmlsZSwgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKSB7CiugoKCgeG1sT3V0cHV0QnVmZmVyUHRyIHJldDsKK6CgoKAKK6CgoKBpZiAoeG1sT3V0cHV0Q2FsbGJhY2tJbml0aWFsaXplZCA9PSAwKQoroKCgoKCgoKB4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MoKTsKKworoKCgoGlmIChmaWxlID09IE5VTEwpIHJldHVybihOVUxMKTsKK6CgoKByZXQgPSB4bWxBbGxvY091dHB1dEJ1ZmZlcihlbmNvZGVyKTsKK6CgoKBpZiAocmV0ICE9IE5VTEwpIHsKK6CgoKCgoKCgcmV0LSZndDtjb250ZXh0ID0gZmlsZTsKK6CgoKCgoKCgcmV0LSZndDt3cml0ZWNhbGxiYWNrID0geG1sRmlsZVdyaXRlOworoKCgoKCgoKByZXQtJmd0O2Nsb3NlY2FsbGJhY2sgPSBOVUxMOyAgLyogTm8gY2xvc2UgY2FsbGJhY2sgKi8KK6CgoKB9CiugoKCgcmV0dXJuKHJldCk7Cit9IDwvcHJlPgorICA8L2xpPgorICA8bGk+QW5kIHRoZW4gdXNlIGl0IHRvIHNhdmUgdGhlIGRvY3VtZW50OgorICAgIDxwcmU+RklMRSAqZjsKK3htbE91dHB1dEJ1ZmZlclB0ciBvdXRwdXQ7Cit4bWxEb2NQdHIgZG9jOworaW50IHJlczsKKworZiA9IC4uLgorZG9jID0gLi4uLgorCitvdXRwdXQgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVPd24oZiwgTlVMTCk7CityZXMgPSB4bWxTYXZlRmlsZVRvKG91dHB1dCwgZG9jLCBOVUxMKTsKKyAgICA8L3ByZT4KKyAgPC9saT4KKzwvb2w+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy94bWxsaW50LjEgYi9saWJ4bWwyLTIuNy43L2RvYy94bWxsaW50LjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBjYWY0MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3htbGxpbnQuMQpAQCAtMCwwICsxLDQyNyBAQAorLlwiICoqIFlvdSBwcm9iYWJseSBkbyBub3Qgd2FudCB0byBlZGl0IHRoaXMgZmlsZSBkaXJlY3RseSAqKgorLlwiIEl0IHdhcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIERvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzICh2ZXJzaW9uIDEuNjkuMSkuCisuXCIgSW5zdGVhZCBvZiBtYW51YWxseSBlZGl0aW5nIGl0LCB5b3UgcHJvYmFibHkgc2hvdWxkIGVkaXQgdGhlIERvY0Jvb2sgWE1MCisuXCIgc291cmNlIGZvciBpdCBhbmQgdGhlbiB1c2UgdGhlIERvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIHRvIHJlZ2VuZXJhdGUgaXQuCisuVEggIlhNTExJTlQiICIxIiAiJERhdGUkIiAibGlieG1sMiIgIiIKKy5cIiBkaXNhYmxlIGh5cGhlbmF0aW9uCisubmgKKy5cIiBkaXNhYmxlIGp1c3RpZmljYXRpb24gKGFkanVzdCB0ZXh0IHRvIGxlZnQgbWFyZ2luIG9ubHkpCisuYWQgbAorLlNIICJOQU1FIgoreG1sbGludCBcLSBjb21tYW5kIGxpbmUgWE1MIHRvb2wKKy5TSCAiU1lOT1BTSVMiCisuSFAgOAorXGZCeG1sbGludFxmUiBbXGZCXC1cLXZlcnNpb25cZlIgXGZCXC1cLWRlYnVnXGZSIFxmQlwtXC1zaGVsbFxmUiBcZkJcLVwtZGVidWdlbnRcZlIgXGZCXC1cLWNvcHlcZlIgXGZCXC1cLXJlY292ZXJcZlIgXGZCXC1cLW5vZW50XGZSIFxmQlwtXC1ub291dFxmUiBcZkJcLVwtbm9uZXRcZlIgXGZCXC1cLXBhdGhcICJcZlJcZkJcZklQQVRIKFMpXGZSXGZSXGZCIlxmUiBcZkJcLVwtbG9hZFwtdHJhY2VcZlIgXGZCXC1cLWh0bWxvdXRcZlIgXGZCXC1cLW5vd3JhcFxmUiBcZkJcLVwtdmFsaWRcZlIgXGZCXC1cLXBvc3R2YWxpZFxmUiBcZkJcLVwtZHRkdmFsaWRcIFxmUlxmQlxmSVVSTFxmUlxmUiBcZkJcLVwtZHRkdmFsaWRmcGlcIFxmUlxmQlxmSUZQSVxmUlxmUiBcZkJcLVwtdGltaW5nXGZSIFxmQlwtXC1vdXRwdXRcIFxmUlxmQlxmSUZJTEVcZlJcZlIgXGZCXC1cLXJlcGVhdFxmUiBcZkJcLVwtaW5zZXJ0XGZSIFxmQlwtXC1jb21wcmVzc1xmUiBcZkJcLVwtaHRtbFxmUiBcZkJcLVwteG1sb3V0XGZSIFxmQlwtXC1wdXNoXGZSIFxmQlwtXC1tZW1vcnlcZlIgXGZCXC1cLW1heG1lbVwgXGZSXGZCXGZJTkJCWVRFU1xmUlxmUiBcZkJcLVwtbm93YXJuaW5nXGZSIFxmQlwtXC1ub2JsYW5rc1xmUiBcZkJcLVwtbm9jZGF0YVxmUiBcZkJcLVwtZm9ybWF0XGZSIFxmQlwtXC1lbmNvZGVcIFxmUlxmQlxmSUVOQ09ESU5HXGZSXGZSIFxmQlwtXC1kcm9wZHRkXGZSIFxmQlwtXC1uc2NsZWFuXGZSIFxmQlwtXC10ZXN0SU9cZlIgXGZCXC1cLWNhdGFsb2dzXGZSIFxmQlwtXC1ub2NhdGFsb2dzXGZSIFxmQlwtXC1hdXRvXGZSIFxmQlwtXC14aW5jbHVkZVxmUiBcZkJcLVwtbm94aW5jbHVkZW5vZGVcZlIgXGZCXC1cLWxvYWRkdGRcZlIgXGZCXC1cLWR0ZGF0dHJcZlIgXGZCXC1cLXN0cmVhbVxmUiBcZkJcLVwtd2Fsa2VyXGZSIFxmQlwtXC1wYXR0ZXJuXCBcZlJcZkJcZklQQVRURVJOVkFMVUVcZlJcZlIgXGZCXC1cLWNoa3JlZ2lzdGVyXGZSIFxmQlwtXC1yZWxheG5nXCBcZlJcZkJcZklTQ0hFTUFcZlJcZlIgXGZCXC1cLXNjaGVtYVwgXGZSXGZCXGZJU0NIRU1BXGZSXGZSIFxmQlwtXC1jMTRuXGZSXSB7XGZJWE1MXC1GSUxFKFMpXGZSLi4uIFwtfQorLkhQIDgKK1xmQnhtbGxpbnRcZlIgXGZCXC1cLWhlbHBcZlIKKy5TSCAiREVTQ1JJUFRJT04iCisuUFAKK1RoZQorXGZCeG1sbGludFxmUgorcHJvZ3JhbSBwYXJzZXMgb25lIG9yIG1vcmUKK1hNTAorZmlsZXMsIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lIGFzCitcZklYTUxcLUZJTEVcZlIKKyhvciB0aGUgc3RhbmRhcmQgaW5wdXQgaWYgdGhlIGZpbGVuYW1lIHByb3ZpZGVkIGlzCitcZkJcLVxmUgorKS4gSXQgcHJpbnRzIHZhcmlvdXMgdHlwZXMgb2Ygb3V0cHV0LCBkZXBlbmRpbmcgdXBvbiB0aGUgb3B0aW9ucyBzZWxlY3RlZC4gSXQgaXMgdXNlZnVsIGZvciBkZXRlY3RpbmcgZXJyb3JzIGJvdGggaW4KK1hNTAorY29kZSBhbmQgaW4gdGhlCitYTUwKK3BhcnNlciBpdHNlbGYuCisuUFAKK1xmQnhtbGxpbnRcZlIKK2lzIGluY2x1ZGVkIGluCitcZkJsaWJ4bWxcZlIoMykuCisuU0ggIk9QVElPTlMiCisuUFAKK1xmQnhtbGxpbnRcZlIKK2FjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zIChpbiBhbHBoYWJldGljYWwgb3JkZXIpOgorLlRQCitcZkJcLVwtYXV0b1xmUgorR2VuZXJhdGUgYSBzbWFsbCBkb2N1bWVudCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKy5UUAorXGZCXC1cLWNhdGFsb2dzXGZSCitVc2UgdGhlCitTR01MCitjYXRhbG9nKHMpIGZyb20KK1xmQlNHTUxfQ0FUQUxPR19GSUxFU1xmUi4gT3RoZXJ3aXNlCitYTUwKK2NhdGFsb2dzIHN0YXJ0aW5nIGZyb20KK1xmSS9ldGMveG1sL2NhdGFsb2dcZlIKK2FyZSB1c2VkIGJ5IGRlZmF1bHQuCisuVFAKK1xmQlwtXC1jaGtyZWdpc3RlclxmUgorVHVybiBvbiBub2RlIHJlZ2lzdHJhdGlvbi4gVXNlZnVsIGZvciBkZXZlbG9wZXJzIHRlc3RpbmcKK1xmQmxpYnhtbFxmUigzKQorbm9kZSB0cmFja2luZyBjb2RlLgorLlRQCitcZkJcLVwtY29tcHJlc3NcZlIKK1R1cm4gb24KK1xmQmd6aXBcZlIoMSkKK2NvbXByZXNzaW9uIG9mIG91dHB1dC4KKy5UUAorXGZCXC1cLWNvcHlcZlIKK1Rlc3QgdGhlIGludGVybmFsIGNvcHkgaW1wbGVtZW50YXRpb24uCisuVFAKK1xmQlwtXC1jMTRuXGZSCitVc2UgdGhlIFczQworWE1MCitDYW5vbmljYWxpc2F0aW9uIChDMTROKSB0byBzZXJpYWxpemUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRvCitcZklzdGRvdXRcZlIuIEl0IGtlZXBzIGNvbW1lbnRzIGluIHRoZSByZXN1bHQuCisuVFAKK1xmQlwtXC1kdGR2YWxpZCBcZlJcZkJcZklVUkxcZlJcZlIKK1VzZSB0aGUKK0RURAorc3BlY2lmaWVkIGJ5IGFuCitcZklVUkxcZlIKK2ZvciB2YWxpZGF0aW9uLgorLlRQCitcZkJcLVwtZHRkdmFsaWRmcGkgXGZSXGZCXGZJRlBJXGZSXGZSCitVc2UgdGhlCitEVEQKK3NwZWNpZmllZCBieSBhIEZvcm1hbCBQdWJsaWMgSWRlbnRpZmllcgorXGZJRlBJXGZSCitmb3IgdmFsaWRhdGlvbiwgbm90ZSB0aGF0IHRoaXMgd2lsbCByZXF1aXJlIGEgY2F0YWxvZyBleHBvcnRpbmcgdGhhdCBGb3JtYWwgUHVibGljIElkZW50aWZpZXIgdG8gd29yay4KKy5UUAorXGZCXC1cLWRlYnVnXGZSCitQYXJzZSBhIGZpbGUgYW5kIG91dHB1dCBhbiBhbm5vdGF0ZWQgdHJlZSBvZiB0aGUgaW5cLW1lbW9yeSB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudC4KKy5UUAorXGZCXC1cLWRlYnVnZW50XGZSCitEZWJ1ZyB0aGUgZW50aXRpZXMgZGVmaW5lZCBpbiB0aGUgZG9jdW1lbnQuCisuVFAKK1xmQlwtXC1kcm9wZHRkXGZSCitSZW1vdmUKK0RURAorZnJvbSBvdXRwdXQuCisuVFAKK1xmQlwtXC1kdGRhdHRyXGZSCitGZXRjaCBleHRlcm5hbAorRFRECithbmQgcG9wdWxhdGUgdGhlIHRyZWUgd2l0aCBpbmhlcml0ZWQgYXR0cmlidXRlcy4KKy5UUAorXGZCXC1cLWVuY29kZSBcZlJcZkJcZklFTkNPRElOR1xmUlxmUgorT3V0cHV0IGluIHRoZSBnaXZlbiBlbmNvZGluZy4KKy5UUAorXGZCXC1cLWZvcm1hdFxmUgorUmVmb3JtYXQgYW5kIHJlaW5kZW50IHRoZSBvdXRwdXQuIFRoZQorXGZCWE1MTElOVF9JTkRFTlRcZlIKK2Vudmlyb25tZW50IHZhcmlhYmxlIGNvbnRyb2xzIHRoZSBpbmRlbnRhdGlvbi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdHdvIHNwYWNlcyAiICIpLgorLlRQCitcZkJcLVwtaGVscFxmUgorUHJpbnQgb3V0IGEgc2hvcnQgdXNhZ2Ugc3VtbWFyeSBmb3IKK1xmQnhtbGxpbnRcZlIuCisuVFAKK1xmQlwtXC1odG1sXGZSCitVc2UgdGhlCitIVE1MCitwYXJzZXIuCisuVFAKK1xmQlwtXC1odG1sb3V0XGZSCitPdXRwdXQgcmVzdWx0cyBhcyBhbgorSFRNTAorZmlsZS4gVGhpcyBjYXVzZXMKK1xmQnhtbGxpbnRcZlIKK3RvIG91dHB1dCB0aGUgbmVjZXNzYXJ5CitIVE1MCit0YWdzIHN1cnJvdW5kaW5nIHRoZSByZXN1bHQgdHJlZSBvdXRwdXQgc28gdGhlIHJlc3VsdHMgY2FuIGJlIGRpc3BsYXllZC92aWV3ZWQgaW4gYSBicm93c2VyLgorLlRQCitcZkJcLVwtaW5zZXJ0XGZSCitUZXN0IGZvciB2YWxpZCBpbnNlcnRpb25zLgorLlRQCitcZkJcLVwtbG9hZGR0ZFxmUgorRmV0Y2ggYW4gZXh0ZXJuYWwKK0RURC4KKy5UUAorXGZCXC1cLWxvYWRcLXRyYWNlXGZSCitEaXNwbGF5IGFsbCB0aGUgZG9jdW1lbnRzIGxvYWRlZCBkdXJpbmcgdGhlIHByb2Nlc3NpbmcgdG8KK1xmSXN0ZGVyclxmUi4KKy5UUAorXGZCXC1cLW1heG1lbSBcZlJcZkJcZklOTkJZVEVTXGZSXGZSCitUZXN0IHRoZSBwYXJzZXIgbWVtb3J5IHN1cHBvcnQuCitcZklOTkJZVEVTXGZSCitpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdGhlIGxpYnJhcnkgaXMgYWxsb3dlZCB0byBhbGxvY2F0ZS4gVGhpcyBjYW4gYWxzbyBiZSB1c2VkIHRvIG1ha2Ugc3VyZSBiYXRjaCBwcm9jZXNzaW5nIG9mCitYTUwKK2ZpbGVzIHdpbGwgbm90IGV4aGF1c3QgdGhlIHZpcnR1YWwgbWVtb3J5IG9mIHRoZSBzZXJ2ZXIgcnVubmluZyB0aGVtLgorLlRQCitcZkJcLVwtbWVtb3J5XGZSCitQYXJzZSBmcm9tIG1lbW9yeS4KKy5UUAorXGZCXC1cLW5vYmxhbmtzXGZSCitEcm9wIGlnbm9yYWJsZSBibGFuayBzcGFjZXMuCisuVFAKK1xmQlwtXC1ub2NhdGFsb2dzXGZSCitEbyBub3QgdXNlIGFueSBjYXRhbG9ncy4KKy5UUAorXGZCXC1cLW5vY2RhdGFcZlIKK1N1YnN0aXR1dGUgQ0RBVEEgc2VjdGlvbiBieSBlcXVpdmFsZW50IHRleHQgbm9kZXMuCisuVFAKK1xmQlwtXC1ub2VudFxmUgorU3Vic3RpdHV0ZSBlbnRpdHkgdmFsdWVzIGZvciBlbnRpdHkgcmVmZXJlbmNlcy4gQnkgZGVmYXVsdCwKK1xmQnhtbGxpbnRcZlIKK2xlYXZlcyBlbnRpdHkgcmVmZXJlbmNlcyBpbiBwbGFjZS4KKy5UUAorXGZCXC1cLW5vbmV0XGZSCitEbyBub3QgdXNlIHRoZSBJbnRlcm5ldCB0byBmZXRjaAorRFREcyBvciBlbnRpdGllcy4KKy5UUAorXGZCXC1cLW5vb3V0XGZSCitTdXBwcmVzcyBvdXRwdXQuIEJ5IGRlZmF1bHQsCitcZkJ4bWxsaW50XGZSCitvdXRwdXRzIHRoZSByZXN1bHQgdHJlZS4KKy5UUAorXGZCXC1cLW5vd2FybmluZ1xmUgorRG8gbm90IGVtaXQgd2FybmluZ3MgZnJvbSB0aGUgcGFyc2VyIGFuZC9vciB2YWxpZGF0b3IuCisuVFAKK1xmQlwtXC1ub3dyYXBcZlIKK0RvIG5vdCBvdXRwdXQKK0hUTUwKK2RvYyB3cmFwcGVyLgorLlRQCitcZkJcLVwtbm94aW5jbHVkZW5vZGVcZlIKK0RvIFhJbmNsdWRlIHByb2Nlc3NpbmcgYnV0IGRvIG5vdCBnZW5lcmF0ZSBYSW5jbHVkZSBzdGFydCBhbmQgZW5kIG5vZGVzLgorLlRQCitcZkJcLVwtbnNjbGVhblxmUgorUmVtb3ZlIHJlZHVuZGFudCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zLgorLlRQCitcZkJcLVwtb3V0cHV0IFxmUlxmQlxmSUZJTEVcZlJcZlIKK0RlZmluZSBhIGZpbGUgcGF0aCB3aGVyZQorXGZCeG1sbGludFxmUgord2lsbCBzYXZlIHRoZSByZXN1bHQgb2YgcGFyc2luZy4gVXN1YWxseSB0aGUgcHJvZ3JhbXMgYnVpbGQgYSB0cmVlIGFuZCBzYXZlIGl0IG9uCitcZklzdGRvdXRcZlIsIHdpdGggdGhpcyBvcHRpb24gdGhlIHJlc3VsdAorWE1MCitpbnN0YW5jZSB3aWxsIGJlIHNhdmVkIG9udG8gYSBmaWxlLgorLlRQCitcZkJcLVwtcGF0aCAiXGZSXGZCXGZJUEFUSChTKVxmUlxmUlxmQiJcZlIKK1VzZSB0aGUgKHNwYWNlXC0gb3IgY29sb25cLXNlcGFyYXRlZCkgbGlzdCBvZiBmaWxlc3lzdGVtIHBhdGhzIHNwZWNpZmllZCBieQorXGZJUEFUSFNcZlIKK3RvIGxvYWQKK0RURHMgb3IgZW50aXRpZXMuIEVuY2xvc2Ugc3BhY2VcLXNlcGFyYXRlZCBsaXN0cyBieSBxdW90YXRpb24gbWFya3MuCisuVFAKK1xmQlwtXC1wYXR0ZXJuIFxmUlxmQlxmSVBBVFRFUk5WQUxVRVxmUlxmUgorVXNlZCB0byBleGVyY2lzZSB0aGUgcGF0dGVybiByZWNvZ25pdGlvbiBlbmdpbmUsIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggdGhlIHJlYWRlciBpbnRlcmZhY2UgdG8gdGhlIHBhcnNlci4gSXQgYWxsb3dzIHRvIHNlbGVjdCBzb21lIG5vZGVzIGluIHRoZSBkb2N1bWVudCBiYXNlZCBvbiBhbiBYUGF0aCAoc3Vic2V0KSBleHByZXNzaW9uLiBVc2VkIGZvciBkZWJ1Z2dpbmcuCisuVFAKK1xmQlwtXC1wb3N0dmFsaWRcZlIKK1ZhbGlkYXRlIGFmdGVyIHBhcnNpbmcgaGFzIGNvbXBsZXRlZC4KKy5UUAorXGZCXC1cLXB1c2hcZlIKK1VzZSB0aGUgcHVzaCBtb2RlIG9mIHRoZSBwYXJzZXIuCisuVFAKK1xmQlwtXC1yZWNvdmVyXGZSCitPdXRwdXQgYW55IHBhcnNhYmxlIHBvcnRpb25zIG9mIGFuIGludmFsaWQgZG9jdW1lbnQuCisuVFAKK1xmQlwtXC1yZWxheG5nIFxmUlxmQlxmSVNDSEVNQVxmUlxmUgorVXNlIFJlbGF4TkcgZmlsZSBuYW1lZAorXGZJU0NIRU1BXGZSCitmb3IgdmFsaWRhdGlvbi4KKy5UUAorXGZCXC1cLXJlcGVhdFxmUgorUmVwZWF0IDEwMCB0aW1lcywgZm9yIHRpbWluZyBvciBwcm9maWxpbmcuCisuVFAKK1xmQlwtXC1zY2hlbWEgXGZSXGZCXGZJU0NIRU1BXGZSXGZSCitVc2UgYSBXM0MKK1hNTAorU2NoZW1hIGZpbGUgbmFtZWQKK1xmSVNDSEVNQVxmUgorZm9yIHZhbGlkYXRpb24uCisuVFAKK1xmQlwtXC1zaGVsbFxmUgorUnVuIGEgbmF2aWdhdGluZyBzaGVsbC4gRGV0YWlscyBvbiBhdmFpbGFibGUgY29tbWFuZHMgaW4gc2hlbGwgbW9kZSBhcmUgYmVsb3cgKHNlZQordGhlIHNlY3Rpb24gY2FsbGVkIFwobHFTSEVMTCBDT01NQU5EU1wocnEpLgorLlRQCitcZkJcLVwtc3RyZWFtXGZSCitVc2Ugc3RyZWFtaW5nCitBUEkKK1wtIHVzZWZ1bCB3aGVuIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aAorXGZCXC1cLXJlbGF4bmdcZlIKK29yCitcZkJcLVwtdmFsaWRcZlIKK29wdGlvbnMgZm9yIHZhbGlkYXRpb24gb2YgZmlsZXMgdGhhdCBhcmUgdG9vIGxhcmdlIHRvIGJlIGhlbGQgaW4gbWVtb3J5LgorLlRQCitcZkJcLVwtdGVzdElPXGZSCitUZXN0IHVzZXIgaW5wdXQvb3V0cHV0IHN1cHBvcnQuCisuVFAKK1xmQlwtXC10aW1pbmdcZlIKK091dHB1dCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGltZSBpdCB0YWtlcworXGZCeG1sbGludFxmUgordG8gcGVyZm9ybSB0aGUgdmFyaW91cyBzdGVwcy4KKy5UUAorXGZCXC1cLXZhbGlkXGZSCitEZXRlcm1pbmUgaWYgdGhlIGRvY3VtZW50IGlzIGEgdmFsaWQgaW5zdGFuY2Ugb2YgdGhlIGluY2x1ZGVkIERvY3VtZW50IFR5cGUgRGVmaW5pdGlvbiAoRFREKS4gQQorRFRECit0byBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBhbHNvIGNhbiBiZSBzcGVjaWZpZWQgYXQgdGhlIGNvbW1hbmQgbGluZSB1c2luZyB0aGUKK1xmQlwtXC1kdGR2YWxpZFxmUgorb3B0aW9uLiBCeSBkZWZhdWx0LAorXGZCeG1sbGludFxmUgorYWxzbyBjaGVja3MgdG8gZGV0ZXJtaW5lIGlmIHRoZSBkb2N1bWVudCBpcyB3ZWxsXC1mb3JtZWQuCisuVFAKK1xmQlwtXC12ZXJzaW9uXGZSCitEaXNwbGF5IHRoZSB2ZXJzaW9uIG9mCitcZkJsaWJ4bWxcZlIoMykKK3VzZWQuCisuVFAKK1xmQlwtXC13YWxrZXJcZlIKK1Rlc3QgdGhlIHdhbGtlciBtb2R1bGUsIHdoaWNoIGlzIGEgcmVhZGVyIGludGVyZmFjZSBidXQgZm9yIGEgZG9jdW1lbnQgdHJlZSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgcmVhZGVyCitBUEkKK29uIGFuIHVucGFyc2VkIGRvY3VtZW50IGl0IHdvcmtzIG9uIGFuIGV4aXN0aW5nIGluXC1tZW1vcnkgdHJlZS4gVXNlZCBmb3IgZGVidWdnaW5nLgorLlRQCitcZkJcLVwteGluY2x1ZGVcZlIKK0RvIFhJbmNsdWRlIHByb2Nlc3NpbmcuCisuVFAKK1xmQlwtXC14bWxvdXRcZlIKK1VzZWQgaW4gY29uanVuY3Rpb24gd2l0aAorXGZCXC1cLWh0bWxcZlIuIFVzdWFsbHkgd2hlbgorSFRNTAoraXMgcGFyc2VkIHRoZSBkb2N1bWVudCBpcyBzYXZlZCB3aXRoIHRoZQorSFRNTAorc2VyaWFsaXplci4gQnV0IHdpdGggdGhpcyBvcHRpb24gdGhlIHJlc3VsdGluZyBkb2N1bWVudCBpcyBzYXZlZCB3aXRoIHRoZQorWE1MCitzZXJpYWxpemVyLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkIHRvIGdlbmVyYXRlCitYSFRNTAorZnJvbQorSFRNTAoraW5wdXQuCisuU0ggIlNIRUxMIENPTU1BTkRTIgorLlBQCitcZkJ4bWxsaW50XGZSCitvZmZlcnMgYW4gaW50ZXJhY3RpdmUgc2hlbGwgbW9kZSBpbnZva2VkIHdpdGggdGhlCitcZkJcLVwtc2hlbGxcZlIKK2NvbW1hbmQuIEF2YWlsYWJsZSBjb21tYW5kcyBpbiBzaGVsbCBtb2RlIGluY2x1ZGUgKGluIGFscGhhYmV0aWNhbCBvcmRlcik6CisuVFAKK1xmQmJhc2VcZlIKK0Rpc3BsYXkKK1hNTAorYmFzZSBvZiB0aGUgbm9kZS4KKy5UUAorXGZCYnllXGZSCitMZWF2ZSB0aGUgc2hlbGwuCisuVFAKK1xmQmNhdCBcZlJcZkJcZklOT0RFXGZSXGZSCitEaXNwbGF5IHRoZSBnaXZlbiBub2RlIG9yIHRoZSBjdXJyZW50IG9uZS4KKy5UUAorXGZCY2QgXGZSXGZCXGZJUEFUSFxmUlxmUgorQ2hhbmdlIHRoZSBjdXJyZW50IG5vZGUgdG8gdGhlIGdpdmVuIHBhdGggKGlmIHVuaXF1ZSkgb3Igcm9vdCBpZiBubyBhcmd1bWVudCBpcyBnaXZlbi4KKy5UUAorXGZCZGlyIFxmUlxmQlxmSVBBVEhcZlJcZlIKK0R1bXBzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBub2RlIChuYW1lc3BhY2UsIGF0dHJpYnV0ZXMsIGNvbnRlbnQpLgorLlRQCitcZkJkdSBcZlJcZkJcZklQQVRIXGZSXGZSCitTaG93IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHN1YnRyZWUgdW5kZXIgdGhlIGdpdmVuIHBhdGggb3IgdGhlIGN1cnJlbnQgbm9kZS4KKy5UUAorXGZCZXhpdFxmUgorTGVhdmUgdGhlIHNoZWxsLgorLlRQCitcZkJoZWxwXGZSCitTaG93IHRoaXMgaGVscC4KKy5UUAorXGZCZnJlZVxmUgorRGlzcGxheSBtZW1vcnkgdXNhZ2UuCisuVFAKK1xmQmxvYWQgXGZSXGZCXGZJRklMRU5BTUVcZlJcZlIKK0xvYWQgYSBuZXcgZG9jdW1lbnQgd2l0aCB0aGUgZ2l2ZW4gZmlsZW5hbWUuCisuVFAKK1xmQmxzIFxmUlxmQlxmSVBBVEhcZlJcZlIKK0xpc3QgY29udGVudHMgb2YgdGhlIGdpdmVuIHBhdGggb3IgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgorLlRQCitcZkJwd2RcZlIKK0Rpc3BsYXkgdGhlIHBhdGggdG8gdGhlIGN1cnJlbnQgbm9kZS4KKy5UUAorXGZCcXVpdFxmUgorTGVhdmUgdGhlIHNoZWxsLgorLlRQCitcZkJzYXZlIFxmUlxmQlxmSUZJTEVOQU1FXGZSXGZSCitTYXZlIHRoZSBjdXJyZW50IGRvY3VtZW50IHRvIHRoZSBnaXZlbiBmaWxlbmFtZSBvciB0byB0aGUgb3JpZ2luYWwgbmFtZS4KKy5UUAorXGZCdmFsaWRhdGVcZlIKK0NoZWNrIHRoZSBkb2N1bWVudCBmb3IgZXJyb3JzLgorLlRQCitcZkJ3cml0ZSBcZlJcZkJcZklGSUxFTkFNRVxmUlxmUgorV3JpdGUgdGhlIGN1cnJlbnQgbm9kZSB0byB0aGUgZ2l2ZW4gZmlsZW5hbWUuCisuU0ggIkVOVklST05NRU5UIgorLlRQCitcZkJTR01MX0NBVEFMT0dfRklMRVNcZlIKK1NHTUwKK2NhdGFsb2cgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgYnkgcmVkaXJlY3RpbmcgcXVlcmllcyB0byB0aGUgdXNlcidzIG93biBzZXQgb2YgY2F0YWxvZ3MuIFRoaXMgY2FuIGJlIGRvbmUgYnkgc2V0dGluZyB0aGUKK1xmQlNHTUxfQ0FUQUxPR19GSUxFU1xmUgorZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSBsaXN0IG9mIGNhdGFsb2dzLiBBbiBlbXB0eSBvbmUgc2hvdWxkIGRlYWN0aXZhdGUgbG9hZGluZyB0aGUgZGVmYXVsdAorXGZJL2V0Yy9zZ21sL2NhdGFsb2dcZlIKK2NhdGFsb2cuCisuVFAKK1xmQlhNTF9DQVRBTE9HX0ZJTEVTXGZSCitYTUwKK2NhdGFsb2cgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgYnkgcmVkaXJlY3RpbmcgcXVlcmllcyB0byB0aGUgdXNlcidzIG93biBzZXQgb2YgY2F0YWxvZ3MuIFRoaXMgY2FuIGJlIGRvbmUgYnkgc2V0dGluZyB0aGUKK1xmQlhNTF9DQVRBTE9HX0ZJTEVTXGZSCitlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGxpc3Qgb2YgY2F0YWxvZ3MuIEFuIGVtcHR5IG9uZSBzaG91bGQgZGVhY3RpdmF0ZSBsb2FkaW5nIHRoZSBkZWZhdWx0CitcZkkvZXRjL3htbC9jYXRhbG9nXGZSCitjYXRhbG9nLgorLlRQCitcZkJYTUxfREVCVUdfQ0FUQUxPR1xmUgorU2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKK1xmQlhNTF9ERUJVR19DQVRBTE9HXGZSCit0bworXGZJbm9uXC16ZXJvXGZSCit1c2luZyB0aGUKK1xmQmV4cG9ydFxmUgorY29tbWFuZCBvdXRwdXRzIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIGNhdGFsb2cgb3BlcmF0aW9ucy4KKy5UUAorXGZCWE1MTElOVF9JTkRFTlRcZlIKK1NldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCitcZkJYTUxMSU5UX0lOREVOVFxmUgorY29udHJvbHMgdGhlIGluZGVudGF0aW9uLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0d28gc3BhY2VzICIgIi4KKy5TSCAiRElBR05PU1RJQ1MiCisuUFAKK1xmQnhtbGxpbnRcZlIKK3JldHVybiBjb2RlcyBwcm92aWRlIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgd2hlbiBjYWxsaW5nIGl0IGZyb20gc2NyaXB0cy4KKy5UUAorXGZCMFxmUgorTm8gZXJyb3IKKy5UUAorXGZCMVxmUgorVW5jbGFzc2lmaWVkCisuVFAKK1xmQjJcZlIKK0Vycm9yIGluCitEVEQKKy5UUAorXGZCM1xmUgorVmFsaWRhdGlvbiBlcnJvcgorLlRQCitcZkI0XGZSCitWYWxpZGF0aW9uIGVycm9yCisuVFAKK1xmQjVcZlIKK0Vycm9yIGluIHNjaGVtYSBjb21waWxhdGlvbgorLlRQCitcZkI2XGZSCitFcnJvciB3cml0aW5nIG91dHB1dAorLlRQCitcZkI3XGZSCitFcnJvciBpbiBwYXR0ZXJuIChnZW5lcmF0ZWQgd2hlbgorXGZCXC1cLXBhdHRlcm5cZlIKK29wdGlvbiBpcyB1c2VkKQorLlRQCitcZkI4XGZSCitFcnJvciBpbiBSZWFkZXIgcmVnaXN0cmF0aW9uIChnZW5lcmF0ZWQgd2hlbgorXGZCXC1cLWNoa3JlZ2lzdGVyXGZSCitvcHRpb24gaXMgdXNlZCkKKy5UUAorXGZCOVxmUgorT3V0IG9mIG1lbW9yeSBlcnJvcgorLlNIICJTRUUgQUxTTyIKKy5QUAorXGZCbGlieG1sXGZSKDMpCisuUFAKK01vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGF0CisuVFAgMworXChidQorXGZCbGlieG1sXGZSKDMpCit3ZWIgcGFnZQorXGZJXCVodHRwOi8vd3d3LnhtbHNvZnQub3JnL1xmUgorLlRQCitcKGJ1CitXM0MKK1hTTFQKK3BhZ2UKK1xmSVwlaHR0cDovL3d3dy53My5vcmcvVFIveHNsdFxmUgorLlNIICJBVVRIT1IiCitKb2huIEZsZWNrIDxqZmxlY2tAaW5rc3RhaW4ubmV0PiwgWml5aW5nIFNoZXJ3aW4gPHNoZXJ3aW5AbmxtLm5paC5nb3Y+LCBIZWlrbyBSdXBwIDxod3JAcGlsaHVobi5kZT4uIApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MveG1sbGludC5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sbGludC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNTU4NzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy94bWxsaW50Lmh0bWwKQEAgLTAsMCArMSwxNzUgQEAKKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT54bWxsaW50PC90aXRsZT48bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjYxLjIiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0icmVmZW50cnkiIGxhbmc9ImVuIj48YSBuYW1lPSJpZDI4NzYzMDIiPjwvYT48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJyZWZuYW1lZGl2Ij48aDI+TmFtZTwvaDI+PHA+eG1sbGludCAmIzgyMTI7IGNvbW1hbmQgbGluZSA8c3BhbiBjbGFzcz0iYWNyb255bSI+WE1MPC9zcGFuPiB0b29sPC9wPjwvZGl2PjxkaXYgY2xhc3M9InJlZnN5bm9wc2lzZGl2Ij48aDI+U3lub3BzaXM8L2gyPjxkaXYgY2xhc3M9ImNtZHN5bm9wc2lzIj48cD48dHQgY2xhc3M9ImNvbW1hbmQiPnhtbGxpbnQ8L3R0PiAgW1stLXZlcnNpb25dIHwgIFstLWRlYnVnXSB8ICBbLS1zaGVsbF0gfCAgWy0tZGVidWdlbnRdIHwgIFstLWNvcHldIHwgIFstLXJlY292ZXJdIHwgIFstLW5vZW50XSB8ICBbLS1ub291dF0gfCAgWy0tbm9uZXRdIHwgIFstLWh0bWxvdXRdIHwgIFstLW5vd3JhcF0gfCAgWy0tdmFsaWRdIHwgIFstLXBvc3R2YWxpZF0gfCAgWy0tZHRkdmFsaWQgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+VVJMPC90dD48L2k+XSB8ICBbLS1kdGR2YWxpZGZwaSA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5GUEk8L3R0PjwvaT5dIHwgIFstLXRpbWluZ10gfCAgWy0tb3V0cHV0IDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PmZpbGU8L3R0PjwvaT5dIHwgIFstLXJlcGVhdF0gfCAgWy0taW5zZXJ0XSB8ICBbLS1jb21wcmVzc10gfCAgWy0taHRtbF0gfCAgWy0teG1sb3V0XSB8ICBbLS1wdXNoXSB8ICBbLS1tZW1vcnldIHwgIFstLW1heG1lbSA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5uYmJ5dGVzPC90dD48L2k+XSB8ICBbLS1ub3dhcm5pbmddIHwgIFstLW5vYmxhbmtzXSB8ICBbLS1ub2NkYXRhXSB8ICBbLS1mb3JtYXRdIHwgIFstLWVuY29kZSA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5lbmNvZGluZzwvdHQ+PC9pPl0gfCAgWy0tZHJvcGR0ZF0gfCAgWy0tbnNjbGVhbl0gfCAgWy0tdGVzdElPXSB8ICBbLS1jYXRhbG9nc10gfCAgWy0tbm9jYXRhbG9nc10gfCAgWy0tYXV0b10gfCAgWy0teGluY2x1ZGVdIHwgIFstLW5veGluY2x1ZGVub2RlXSB8ICBbLS1sb2FkZHRkXSB8ICBbLS1kdGRhdHRyXSB8ICBbLS1zdHJlYW1dIHwgIFstLXdhbGtlcl0gfCAgWy0tcGF0dGVybiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5wYXR0ZXJudmFsdWU8L3R0PjwvaT5dIHwgIFstLWNoa3JlZ2lzdGVyXSB8ICBbLS1yZWxheG5nXSB8ICBbLS1zY2hlbWFdIHwgIFstLWMxNG5dXSBbPHR0IGNsYXNzPSJvcHRpb24iPjxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PnhtbGZpbGU8L3R0PjwvaT48L3R0Pl08L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj48YSBuYW1lPSJpbnRyb2R1Y3Rpb24iPjwvYT48aDI+SW50cm9kdWN0aW9uPC9oMj48cD4KKyAgICAgIFRoZSB4bWxsaW50IHByb2dyYW0gcGFyc2VzIG9uZSBvciBtb3JlIFhNTCBmaWxlcywgc3BlY2lmaWVkIG9uIHRoZQorICAgICAgY29tbWFuZCBsaW5lIGFzIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PnhtbGZpbGU8L3R0PjwvaT4uIEl0IHByaW50cyB2YXJpb3VzCisgICAgICB0eXBlcyBvZiBvdXRwdXQsIGRlcGVuZGluZyB1cG9uIHRoZSBvcHRpb25zIHNlbGVjdGVkLiBJdCBpcyB1c2VmdWwgZm9yCisgICAgICBkZXRlY3RpbmcgZXJyb3JzIGJvdGggaW4gPHNwYW4gY2xhc3M9ImFjcm9ueW0iPlhNTDwvc3Bhbj4gY29kZSBhbmQgaW4gdGhlCisgICAgICA8c3BhbiBjbGFzcz0iYWNyb255bSI+WE1MPC9zcGFuPiBwYXJzZXIgaXRzZWxmLgorICAgIDwvcD48cD4KKyAgICAgIEl0IGlzIGluY2x1ZGVkIGluIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+bGlieG1sMjwvc3Bhbj4uCisgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+PGEgbmFtZT0ib3B0aW9ucyI+PC9hPjxoMj5PcHRpb25zPC9oMj48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjxkbD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLXZlcnNpb248L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgRGlzcGxheSB0aGUgdmVyc2lvbiBvZgorCSAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPmxpYnhtbDI8L3NwYW4+IHVzZWQuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tZGVidWc8L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgUGFyc2UgYSBmaWxlIGFuZCBvdXRwdXQgYW4gYW5ub3RhdGVkIHRyZWUgb2YgdGhlCisJICAgIGluLW1lbW9yeSB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudC4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1zaGVsbDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBSdW4gYSBuYXZpZ2F0aW5nIHNoZWxsLiBEZXRhaWxzIG9uIGF2YWlsYWJsZSBjb21tYW5kcyBpbiBzaGVsbCBtb2RlCisJICAgIGFyZSBiZWxvdy4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1kZWJ1Z2VudDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBEZWJ1ZyB0aGUgZW50aXRpZXMgZGVmaW5lZCBpbiB0aGUgZG9jdW1lbnQuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tY29weTwvdHQ+IDwvc3Bhbj48L2R0PjxkZD4KKwkgICAgVGVzdCB0aGUgaW50ZXJuYWwgY29weSBpbXBsZW1lbnRhdGlvbi4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1yZWNvdmVyPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIE91dHB1dCBhbnkgcGFyc2FibGUgcG9ydGlvbnMgb2YgYW4gaW52YWxpZAorCSAgICBkb2N1bWVudC4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1ub2VudDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBTdWJzdGl0dXRlIGVudGl0eSB2YWx1ZXMgZm9yIGVudGl0eQorCSAgICByZWZlcmVuY2VzLiBCeSBkZWZhdWx0LCA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPnhtbGxpbnQ8L3NwYW4+IGxlYXZlcyBlbnRpdHkKKwkgICAgcmVmZXJlbmNlcyBpbiBwbGFjZS4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1ub2NkYXRhPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFN1YnN0aXR1dGUgQ0RBVEEgc2VjdGlvbiBieSBlcXVpdmFsZW50IHRleHQgbm9kZXMuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbnNjbGVhbjwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBSZW1vdmUgcmVkdW5kYW50IG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbm9vdXQ8L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgU3VwcHJlc3Mgb3V0cHV0LiBCeSBkZWZhdWx0LAorCSAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPnhtbGxpbnQ8L3NwYW4+IG91dHB1dHMgdGhlIHJlc3VsdCB0cmVlLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWh0bWxvdXQ8L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgT3V0cHV0IHJlc3VsdHMgYXMgYW4gPHNwYW4gY2xhc3M9ImFjcm9ueW0iPkhUTUw8L3NwYW4+CisJICAgIGZpbGUuIFRoaXMgY2F1c2VzIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+eG1sbGludDwvc3Bhbj4gdG8gb3V0cHV0CisJICAgIHRoZSBuZWNlc3NhcnkgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPkhUTUw8L3NwYW4+IHRhZ3Mgc3Vycm91bmRpbmcgdGhlIHJlc3VsdCB0cmVlCisJICAgIG91dHB1dCBzbyB0aGUgcmVzdWx0cyBjYW4gYmUgZGlzcGxheWVkIGluIGEgYnJvd3Nlci4gCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbm93cmFwIDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBEbyBub3Qgb3V0cHV0IEhUTUwgZG9jIHdyYXBwZXIuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tdmFsaWQgPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIERldGVybWluZSBpZiB0aGUgZG9jdW1lbnQgaXMgYSB2YWxpZCBpbnN0YW5jZQorCSAgICBvZiB0aGUgaW5jbHVkZWQgRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uICg8c3BhbiBjbGFzcz0iYWNyb255bSI+RFREPC9zcGFuPikuIEEKKwkgICAgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPkRURDwvc3Bhbj4gdG8gYmUgdmFsaWRhdGVkIGFnYWluc3QgYWxzbyBjYW4gYmUgc3BlY2lmaWVkIGF0CisJICAgIHRoZSBjb21tYW5kIGxpbmUgdXNpbmcgdGhlIDx0dCBjbGFzcz0ib3B0aW9uIj4tLWR0ZHZhbGlkPC90dD4gb3B0aW9uLiBCeSBkZWZhdWx0LAorCSAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPnhtbGxpbnQ8L3NwYW4+IGFsc28gY2hlY2tzIHRvIGRldGVybWluZSBpZiB0aGUKKwkgICAgZG9jdW1lbnQgaXMgd2VsbC1mb3JtZWQuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tcG9zdHZhbGlkPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFZhbGlkYXRlIGFmdGVyIHBhcnNpbmcgaXMgY29tcGxldGVkLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPiA8dHQgY2xhc3M9Im9wdGlvbiI+LS1kdGR2YWxpZDwvdHQ+IDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PlVSTDwvdHQ+PC9pPjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgVXNlIHRoZQorICAgICAgPHNwYW4gY2xhc3M9ImFjcm9ueW0iPkRURDwvc3Bhbj4gc3BlY2lmaWVkIGJ5IDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PlVSTDwvdHQ+PC9pPiBmb3IKKyAgICAgIHZhbGlkYXRpb24uCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+IDx0dCBjbGFzcz0ib3B0aW9uIj4tLWR0ZHZhbGlkZnBpPC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+RlBJPC90dD48L2k+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBVc2UgdGhlCisgICAgICA8c3BhbiBjbGFzcz0iYWNyb255bSI+RFREPC9zcGFuPiBzcGVjaWZpZWQgYnkgdGhlIFB1YmxpYyBJZGVudGlmaWVyCisgICAgICA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5GUEk8L3R0PjwvaT4gZm9yIHZhbGlkYXRpb24sIG5vdGUgdGhhdCB0aGlzCisgICAgICB3aWxsIHJlcXVpcmUgYSBDYXRhbG9nIGV4cG9ydGluZyB0aGF0IFB1YmxpYyBJZGVudGlmaWVyIHRvIHdvcmsuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tdGltaW5nPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIE91dHB1dCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGltZSBpdCB0YWtlcworCSAgICA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPnhtbGxpbnQ8L3NwYW4+IHRvIHBlcmZvcm0gdGhlIHZhcmlvdXMgc3RlcHMuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tb3V0cHV0PC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+ZmlsZTwvdHQ+PC9pPjwvc3Bhbj48L2R0PjxkZD5EZWZpbmUgYSBmaWxlIHBhdGggd2hlcmUgeG1sbGludCB3aWxsIHNhdmUgdGhlIHJlc3VsdCBvZgorCSAgcGFyc2luZy4gVXN1YWxseSB0aGUgcHJvZ3JhbXMgYnVpbGQgYSB0cmVlIGFuZCBzYXZlIGl0IG9uIHN0ZG91dCwgd2l0aAorCSAgdGhpcyBvcHRpb24gdGhlIHJlc3VsdCBYTUwgaW5zdGFuY2Ugd2lsbCBiZSBzYXZlZCBvbnRvIGEgZmlsZS48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tcmVwZWF0PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFJlcGVhdCAxMDAgdGltZXMsIGZvciB0aW1pbmcgb3IgcHJvZmlsaW5nLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWluc2VydDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBUZXN0IGZvciB2YWxpZCBpbnNlcnRpb25zLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWNvbXByZXNzPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFR1cm4gb24gZ3ppcCBjb21wcmVzc2lvbiBvZiBvdXRwdXQuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0taHRtbDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBVc2UgdGhlIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5IVE1MPC9zcGFuPiBwYXJzZXIuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0teG1sb3V0PC90dD48L3NwYW4+PC9kdD48ZGQ+VXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIDx0dCBjbGFzcz0ib3B0aW9uIj4tLWh0bWw8L3R0Pi4gVXN1YWxseQorICB3aGVuIEhUTUwgaXMgcGFyc2VkIHRoZSBkb2N1bWVudCBpcyBzYXZlZCB3aXRoIHRoZSBIVE1MIHNlcmlhbGl6ZXIsIGJ1dCB3aXRoCisgIHRoaXMgb3B0aW9uIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgaXMgc2F2ZWQgd2l0aCB0aGUgWE1MIHNlcmlhbGl6ZXIuIFRoaXMgaXMKKyAgcHJpbWFyaWx5IHVzZWQgdG8gZ2VuZXJhdGUgWEhUTUwgZnJvbSBIVE1MIGlucHV0LjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1wdXNoPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFVzZSB0aGUgcHVzaCBtb2RlIG9mIHRoZSBwYXJzZXIuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbWVtb3J5PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgUGFyc2UgZnJvbSBtZW1vcnkuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbWF4bWVtPC90dD4gPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+bm5ieXRlczwvdHQ+PC9pPjwvc3Bhbj48L2R0PjxkZD5UZXN0IHRoZSBwYXJzZXIgbWVtb3J5CisgIHN1cHBvcnQuIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0Pm5uYnl0ZXM8L3R0PjwvaT4gaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRoZQorICBsaWJyYXJ5IGlzIGFsbG93ZWQgdG8gYWxsb2NhdGUuIFRoaXMgY2FuIGFsc28gYmUgdXNlZCB0byBtYWtlIHN1cmUgYmF0Y2gKKyAgcHJvY2Vzc2luZyBvZiBYTUwgZmlsZXMgd2lsbCBub3QgZXhoYXVzdCB0aGUgdmlydHVhbCBtZW1vcnkgb2YgdGhlIHNlcnZlcgorICBydW5uaW5nIHRoZW0uPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLW5vd2FybmluZzwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgIERvIG5vdCBlbWl0IHdhcm5pbmdzIGZyb20gdGhlIHBhcnNlciBhbmQvb3IgdmFsaWRhdG9yLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLW5vYmxhbmtzPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgRHJvcCBpZ25vcmFibGUgYmxhbmsgc3BhY2VzLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWZvcm1hdDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgIFJlZm9ybWF0IGFuZCByZWluZGVudCB0aGUgb3V0cHV0LiBUaGUgJFhNTExJTlRfSU5ERU5UCisJICAgZW52aXJvbm1lbnQgdmFyaWFibGUgY29udHJvbHMgdGhlIGluZGVudGF0aW9uIChkZWZhdWx0IAorCSAgIHZhbHVlIGlzIHR3byBzcGFjZXMgIiAgIikuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tdGVzdElPPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgVGVzdCB1c2VyIGlucHV0L291dHB1dCBzdXBwb3J0LgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWVuY29kZTwvdHQ+IDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PmVuY29kaW5nPC90dD48L2k+PC9zcGFuPjwvZHQ+PGRkPgorCSAgIE91dHB1dCBpbiB0aGUgZ2l2ZW4gZW5jb2RpbmcuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tY2F0YWxvZ3M8L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICBVc2UgdGhlIGNhdGFsb2dzIGZyb20gJFNHTUxfQ0FUQUxPR19GSUxFUy4gT3RoZXJ3aXNlIC9ldGMveG1sL2NhdGFsb2cKKwkgICBpcyB1c2VkIGJ5IGRlZmF1bHQuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbm9jYXRhbG9nczwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgIERvIG5vdCB1c2UgYW55IGNhdGFsb2dzLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWF1dG88L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICBHZW5lcmF0ZSBhIHNtYWxsIGRvY3VtZW50IGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLXhpbmNsdWRlPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgRG8gWEluY2x1ZGUgcHJvY2Vzc2luZy4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1ub3hpbmNsdWRlbm9kZTwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgIERvIFhJbmNsdWRlIHByb2Nlc3NpbmcgYnV0IGRvIG5vdCBnZW5lcmF0ZSBYSW5jbHVkZSBzdGFydCBhbmQgZW5kCisJICAgbm9kZXMuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tbG9hZGR0ZDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgIEZldGNoIGV4dGVybmFsIERURC4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1kdGRhdHRyPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgRmV0Y2ggZXh0ZXJuYWwgRFREIGFuZCBwb3B1bGF0ZSB0aGUgdHJlZSB3aXRoIGluaGVyaXRlZCBhdHRyaWJ1dGVzLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLWRyb3BkdGQ8L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgUmVtb3ZlIDxzcGFuIGNsYXNzPSJhY3JvbnltIj5EVEQ8L3NwYW4+IGZyb20gb3V0cHV0LgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLXN0cmVhbTwvdHQ+PC9zcGFuPjwvZHQ+PGRkPlVzZSBzdHJlYW1pbmcgQVBJIC0gdXNlZnVsIHdoZW4gIHVzZWQgIGluIGNvbWJpbmF0aW9uIHdpdGgKKyAgICAgICAgICAgICAgLS1yZWxheG5nIG9yIC0tdmFsaWQgb3B0aW9ucyBmb3IgdmFsaWRhdGlvbiBvZiBmaWxlcyB0aGF0IGFyZQorCSAgICB0b28gbGFyZ2UgdG8gYmUgaGVsZCBpbiBtZW1vcnkuPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLXdhbGtlcjwvdHQ+PC9zcGFuPjwvZHQ+PGRkPlRlc3QgdGhlIHdhbGtlciBtb2R1bGUsIHdoaWNoIGlzIGEgcmVhZGVyIGludGVyZmFjZSBidXQgZm9yIGEKKyAgZG9jdW1lbnQgdHJlZSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgcmVhZGVyIEFQSSBvbiBhbiB1bnBhcnNlZCBkb2N1bWVudCBpdAorICB3b3JrcyBvbiBhIGV4aXN0aW5nIGluLW1lbW9yeSB0cmVlLiBVc2VkIGluIGRlYnVnZ2luZy48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPi0tY2hrcmVnaXN0ZXI8L3R0Pjwvc3Bhbj48L2R0PjxkZD5UdXJuIG9uIG5vZGUgcmVnaXN0cmF0aW9uLiBVc2VmdWwgZm9yIGRldmVsb3BlcnMgdGVzdGluZworCSAgbGlieG1sMiBub2RlIHRyYWNraW5nIGNvZGUuPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLXBhdHRlcm48L3R0PiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5wYXR0ZXJudmFsdWU8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+VXNlZCB0byBleGVyY2lzZSB0aGUgcGF0dGVybiByZWNvZ25pdGlvbiBlbmdpbmUsIHdoaWNoIGNhbiBiZQorCSAgdXNlZCB3aXRoIHRoZSByZWFkZXIgaW50ZXJmYWNlIHRvIHRoZSBwYXJzZXIuIEl0IGFsbG93cyB0byBzZWxlY3Qgc29tZQorCSAgbm9kZXMgaW4gdGhlIGRvY3VtZW50IGJhc2VkIG9uIGFuIFhQYXRoIChzdWJzZXQpIGV4cHJlc3Npb24uIFVzZWQgZm9yCisJICBkZWJ1Z2dpbmcuPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj4tLXJlbGF4bmc8L3R0PiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5zY2hlbWE8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+VXNlIFJlbGF4TkcgZmlsZSBuYW1lZCA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5zY2hlbWE8L3R0PjwvaT4gZm9yCisJICB2YWxpZGF0aW9uLjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+LS1zY2hlbWE8L3R0PiA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5zY2hlbWE8L3R0PjwvaT48L3NwYW4+PC9kdD48ZGQ+VXNlIGEgVzNDIFhNTCBTY2hlbWEgZmlsZSBuYW1lZCA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5zY2hlbWE8L3R0PjwvaT4gZm9yIHZhbGlkYXRpb24uPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPHR0IGNsYXNzPSJvcHRpb24iPi0tYzE0bjwvdHQ+PC9zcGFuPjwvZHQ+PGRkPlVzZSB0aGUgVzNDIFhNTCBDYW5vbmljYWxpc2F0aW9uIChDMTROKSB0bworc2VyaWFsaXplIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0byBzdGRvdXQuIEl0IGtlZXBzIGNvbW1lbnRzIGluCit0aGUgcmVzdWx0LjwvZGQ+PC9kbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPjxhIG5hbWU9InNoZWxsIj48L2E+PGgyPlNoZWxsPC9oMj48cD4KKyAgICAgIDxzcGFuIGNsYXNzPSJhcHBsaWNhdGlvbiI+eG1sbGludDwvc3Bhbj4gb2ZmZXJzIGFuIGludGVyYWN0aXZlIHNoZWxsIG1vZGUKKyAgICAgIGludm9rZWQgd2l0aCB0aGUgPHR0IGNsYXNzPSJvcHRpb24iPi0tc2hlbGw8L3R0PiBjb21tYW5kLiBBdmFpbGFibGUgY29tbWFuZHMgaW4KKyAgICAgIHNoZWxsIG1vZGUgaW5jbHVkZToKKyAgICA8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48ZGw+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+YmFzZTwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBkaXNwbGF5IFhNTCBiYXNlIG9mIHRoZSBub2RlCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPmJ5ZTwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBsZWF2ZSBzaGVsbAorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5jYXQgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+bm9kZTwvdHQ+PC9pPjwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBEaXNwbGF5IG5vZGUgaWYgZ2l2ZW4gb3IgY3VycmVudCBub2RlLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5jZCA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5wYXRoPC90dD48L2k+PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIENoYW5nZSB0aGUgY3VycmVudCBub2RlIHRvIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0PnBhdGg8L3R0PjwvaT4gKGlmIGdpdmVuCisJICAgIGFuZCB1bmlxdWUpIG9yIHJvb3QgaWYgbm8gYXJndW1lbnQgZ2l2ZW4uCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPmRpciA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5wYXRoPC90dD48L2k+PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIER1bXBzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBub2RlIChuYW1lc3BhY2UsIGF0dHJpYnV0ZXMsIGNvbnRlbnQpLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5kdSA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5wYXRoPC90dD48L2k+PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFNob3cgdGhlIHN0cnVjdHVyZSBvZiB0aGUgc3VidHJlZSB1bmRlciBwYXRoIG9yIHRoZSBjdXJyZW50IG5vZGUuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPmV4aXQ8L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgTGVhdmUgdGhlIHNoZWxsLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5oZWxwPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFNob3cgdGhpcyBoZWxwLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5mcmVlPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIERpc3BsYXkgbWVtb3J5IHVzYWdlLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5sb2FkIDxpIGNsYXNzPSJyZXBsYWNlYWJsZSI+PHR0Pm5hbWU8L3R0PjwvaT48L3R0Pjwvc3Bhbj48L2R0PjxkZD4KKwkgICAgTG9hZCBhIG5ldyBkb2N1bWVudCB3aXRoIHRoZSBnaXZlbiBuYW1lLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj5scyA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5wYXRoPC90dD48L2k+PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIExpc3QgY29udGVudHMgb2YgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+cGF0aDwvdHQ+PC9pPiAoaWYgZ2l2ZW4pIG9yIHRoZQorCSAgICBjdXJyZW50IGRpcmVjdG9yeS4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+cHdkPC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIERpc3BsYXkgdGhlIHBhdGggdG8gdGhlIGN1cnJlbnQgbm9kZS4KKwkgIDwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48dHQgY2xhc3M9Im9wdGlvbiI+cXVpdDwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBMZWF2ZSB0aGUgc2hlbGwuCisJICA8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PHR0IGNsYXNzPSJvcHRpb24iPnNhdmUgPGkgY2xhc3M9InJlcGxhY2VhYmxlIj48dHQ+bmFtZTwvdHQ+PC9pPjwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBTYXZlcyB0aGUgY3VycmVudCBkb2N1bWVudCB0byA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5uYW1lPC90dD48L2k+IGlmCisJICAgIGdpdmVuIG9yIHRvIHRoZSBvcmlnaW5hbCBuYW1lLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj52YWxpZGF0ZTwvdHQ+PC9zcGFuPjwvZHQ+PGRkPgorCSAgICBDaGVjayB0aGUgZG9jdW1lbnQgZm9yIGVycm9yLgorCSAgPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjx0dCBjbGFzcz0ib3B0aW9uIj53cml0ZSA8aSBjbGFzcz0icmVwbGFjZWFibGUiPjx0dD5uYW1lPC90dD48L2k+PC90dD48L3NwYW4+PC9kdD48ZGQ+CisJICAgIFdyaXRlIHRoZSBjdXJyZW50IG5vZGUgdG8gdGhlIGdpdmVuIGZpbGVuYW1lLgorCSAgPC9kZD48L2RsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+PGgyPkNhdGFsb2dzPC9oMj48cD5DYXRhbG9nIGJlaGF2aW9yIGNhbiBiZSBjaGFuZ2VkIGJ5IHJlZGlyZWN0aW5nCisgICAgIHF1ZXJpZXMgdG8gdGhlIHVzZXIncyBvd24gc2V0IG9mIGNhdGFsb2dzLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCisgICAgIDx0dCBjbGFzcz0idmFybmFtZSI+WE1MX0NBVEFMT0dfRklMRVM8L3R0PiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGxpc3Qgb2YKKyAgICAgY2F0YWxvZ3MuIEFuIGVtcHR5IG9uZSBzaG91bGQgZGVhY3RpdmF0ZSBsb2FkaW5nIHRoZSBkZWZhdWx0CisgICAgICA8dHQgY2xhc3M9ImZpbGVuYW1lIj4vZXRjL3htbC9jYXRhbG9nPC90dD4gZGVmYXVsdCBjYXRhbG9nLjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPjxoMj5EZWJ1Z2dpbmcgQ2F0YWxvZ3M8L2gyPjxwPlNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDx0dCBjbGFzcz0idmFybmFtZSI+WE1MX0RFQlVHX0NBVEFMT0c8L3R0PgorICAgIHVzaW5nIHRoZSBjb21tYW5kIDxiIGNsYXNzPSJjb21tYW5kIj4iZXhwb3J0IFhNTF9ERUJVR19DQVRBTE9HPSI8L2I+CisgICAgb3V0cHV0cyBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBjYXRhbG9nIG9wZXJhdGlvbnMuPC9wPjwvZGl2PjxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+PGgyPkVycm9yIFJldHVybiBDb2RlczwvaDI+PHA+T24gdGhlIGNvbXBsZXRpb24gb2YgZXhlY3V0aW9uLCA8c3BhbiBjbGFzcz0iYXBwbGljYXRpb24iPlhtbGxpbnQ8L3NwYW4+CisgICAgcmV0dXJucyB0aGUgZm9sbG93aW5nIGVycm9yIGNvZGVzOjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjxkbD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjA8L3NwYW4+PC9kdD48ZGQ+Tm8gZXJyb3I8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+MTwvc3Bhbj48L2R0PjxkZD5VbmNsYXNzaWZpZWQ8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+Mjwvc3Bhbj48L2R0PjxkZD5FcnJvciBpbiBEVEQ8L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+Mzwvc3Bhbj48L2R0PjxkZD5WYWxpZGF0aW9uIGVycm9yPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjQ8L3NwYW4+PC9kdD48ZGQ+VmFsaWRhdGlvbiBlcnJvcjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj41PC9zcGFuPjwvZHQ+PGRkPkVycm9yIGluIHNjaGVtYSBjb21waWxhdGlvbjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj42PC9zcGFuPjwvZHQ+PGRkPkVycm9yIHdyaXRpbmcgb3V0cHV0PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjc8L3NwYW4+PC9kdD48ZGQ+RXJyb3IgaW4gcGF0dGVybiAoZ2VuZXJhdGVkIHdoZW4KKwkgIFs8c3BhbiBjbGFzcz0ib3B0aW9uYWwiPi0tcGF0dGVybjwvc3Bhbj5dIG9wdGlvbiBpcyB1c2VkKTwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj44PC9zcGFuPjwvZHQ+PGRkPkVycm9yIGluIFJlYWRlciByZWdpc3RyYXRpb24gKGdlbmVyYXRlZCB3aGVuCisJICBbPHNwYW4gY2xhc3M9Im9wdGlvbmFsIj4tLWNoa3JlZ2lzdGVyPC9zcGFuPl0gb3B0aW9uIGlzIHVzZWQpPC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjk8L3NwYW4+PC9kdD48ZGQ+T3V0IG9mIG1lbW9yeSBlcnJvcjwvZGQ+PC9kbD48L2Rpdj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9kb2MveG1sbGludC54bWwgYi9saWJ4bWwyLTIuNy43L2RvYy94bWxsaW50LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTQxYjRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sbGludC54bWwKQEAgLTAsMCArMSw5MTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hzbCIKKyAgIGhyZWY9Imh0dHA6Ly9kb2Nib29rLnNvdXJjZWZvcmdlLm5ldC9yZWxlYXNlL3hzbC9jdXJyZW50L21hbnBhZ2VzL2RvY2Jvb2sueHNsIj8+Cis8IURPQ1RZUEUgcmVmZW50cnkgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iCisgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIiBbCisgICAgCisgICAgPCFFTlRJVFkgeG1sbGludCAiPGNvbW1hbmQ+eG1sbGludDwvY29tbWFuZD4iPgorXT4KKworPHJlZmVudHJ5PgorCis8cmVmZW50cnlpbmZvPgorCTx0aXRsZT54bWxsaW50IE1hbnVhbDwvdGl0bGU+CisJPHByb2R1Y3RuYW1lPmxpYnhtbDI8L3Byb2R1Y3RuYW1lPgorCTxjb3B5cmlnaHQ+CisJCTx5ZWFyPjIwMDE8L3llYXI+CisJCTx5ZWFyPjIwMDQ8L3llYXI+CisJPC9jb3B5cmlnaHQ+CisJPGF1dGhvcmdyb3VwPgorCQk8YXV0aG9yPgorCQkJPGZpcnN0bmFtZT5Kb2huPC9maXJzdG5hbWU+CisJCQk8c3VybmFtZT5GbGVjazwvc3VybmFtZT4KKwkJCTxhZmZpbGlhdGlvbj4KKwkJCQk8YWRkcmVzcz4KKwkJCQkJPGVtYWlsPmpmbGVja0BpbmtzdGFpbi5uZXQ8L2VtYWlsPgorCQkJCTwvYWRkcmVzcz4KKwkJCTwvYWZmaWxpYXRpb24+CisJCTwvYXV0aG9yPgorCQk8YXV0aG9yPgorCQkJPGZpcnN0bmFtZT5aaXlpbmc8L2ZpcnN0bmFtZT4KKwkJCTxzdXJuYW1lPlNoZXJ3aW48L3N1cm5hbWU+CisJCQk8YWZmaWxpYXRpb24+CisJCQkJPGFkZHJlc3M+CisJCQkJCTxlbWFpbD5zaGVyd2luQG5sbS5uaWguZ292PC9lbWFpbD4KKwkJCQk8L2FkZHJlc3M+CisJCQk8L2FmZmlsaWF0aW9uPgorCQk8L2F1dGhvcj4KKwkJPGF1dGhvcj4KKwkJCTxmaXJzdG5hbWU+SGVpa288L2ZpcnN0bmFtZT4KKwkJCTxzdXJuYW1lPlJ1cHA8L3N1cm5hbWU+CisJCQk8YWZmaWxpYXRpb24+CisJCQkJPGFkZHJlc3M+CisJCQkJCTxlbWFpbD5od3JAcGlsaHVobi5kZTwvZW1haWw+CisJCQkJPC9hZGRyZXNzPgorCQkJPC9hZmZpbGlhdGlvbj4KKwkJPC9hdXRob3I+CisJPC9hdXRob3Jncm91cD4KKwk8IS0tIGRhdGUgc2hvdWxkIGJlIHRoZSBkYXRlIG9mIHRoZSBsYXRlc3QgY2hhbmdlIG9yIHRoZSByZWxlYXNlIHZlcnNpb24gLS0+CisJPGRhdGU+JERhdGUkPC9kYXRlPgorCTwhLS0gc3RpbGwgYSBiaXQgYnVnZ3kgb3V0cHV0LCB3aWxsIHRhbGsgdG8gZG9jYm9vay14c2wgdXBzdHJlYW0gdG8gZml4IHRoaXMgLS0+CisJPCEtLSA8cmVsZWFzZWluZm8+VGhpcyBpcyByZWxlYXNlIDAuNSBvZiB0aGUgeG1sbGludCBNYW51YWwuPC9yZWxlYXNlaW5mbz4gLS0+CisJPCEtLSA8ZWRpdGlvbj4wLjU8L2VkaXRpb24+IC0tPgorPC9yZWZlbnRyeWluZm8+CisKKzxyZWZtZXRhPgorCTxyZWZlbnRyeXRpdGxlPnhtbGxpbnQ8L3JlZmVudHJ5dGl0bGU+CisJPG1hbnZvbG51bT4xPC9tYW52b2xudW0+Cis8L3JlZm1ldGE+CisKKzxyZWZuYW1lZGl2PgorCTxyZWZuYW1lPnhtbGxpbnQ8L3JlZm5hbWU+CisJPHJlZnB1cnBvc2U+Y29tbWFuZCBsaW5lIDxhY3JvbnltPlhNTDwvYWNyb255bT4gdG9vbDwvcmVmcHVycG9zZT4KKzwvcmVmbmFtZWRpdj4KKworPHJlZnN5bm9wc2lzZGl2PgorCTxjbWRzeW5vcHNpcz4KKwk8Y29tbWFuZD54bWxsaW50PC9jb21tYW5kPgorCQk8Z3JvdXAgY2hvaWNlPSJvcHQiPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tdmVyc2lvbjwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tZGVidWc8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLXNoZWxsPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1kZWJ1Z2VudDwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tY29weTwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tcmVjb3Zlcjwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tbm9lbnQ8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLW5vb3V0PC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1ub25ldDwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tcGF0aCAiPHJlcGxhY2VhYmxlIGNsYXNzPSJvcHRpb24iPlBBVEgoUyk8L3JlcGxhY2VhYmxlPiI8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLWxvYWQtdHJhY2U8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLWh0bWxvdXQ8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLW5vd3JhcDwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tdmFsaWQ8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLXBvc3R2YWxpZDwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tZHRkdmFsaWQgPHJlcGxhY2VhYmxlIGNsYXNzPSJvcHRpb24iPlVSTDwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1kdGR2YWxpZGZwaSA8cmVwbGFjZWFibGUgY2xhc3M9Im9wdGlvbiI+RlBJPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLXRpbWluZzwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tb3V0cHV0IDxyZXBsYWNlYWJsZSBjbGFzcz0ib3B0aW9uIj5GSUxFPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLXJlcGVhdDwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0taW5zZXJ0PC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1jb21wcmVzczwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0taHRtbDwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0teG1sb3V0PC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1wdXNoPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1tZW1vcnk8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLW1heG1lbSA8cmVwbGFjZWFibGUgY2xhc3M9Im9wdGlvbiI+TkJCWVRFUzwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1ub3dhcm5pbmc8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLW5vYmxhbmtzPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1ub2NkYXRhPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1mb3JtYXQ8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLWVuY29kZSA8cmVwbGFjZWFibGUgY2xhc3M9Im9wdGlvbiI+RU5DT0RJTkc8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tZHJvcGR0ZDwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tbnNjbGVhbjwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tdGVzdElPPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1jYXRhbG9nczwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tbm9jYXRhbG9nczwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tYXV0bzwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0teGluY2x1ZGU8L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLW5veGluY2x1ZGVub2RlPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1sb2FkZHRkPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1kdGRhdHRyPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1zdHJlYW08L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLXdhbGtlcjwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tcGF0dGVybiA8cmVwbGFjZWFibGUgY2xhc3M9Im9wdGlvbiI+UEFUVEVSTlZBTFVFPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLWNoa3JlZ2lzdGVyPC9vcHRpb24+PC9hcmc+CisJCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1yZWxheG5nIDxyZXBsYWNlYWJsZSBjbGFzcz0ib3B0aW9uIj5TQ0hFTUE8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tc2NoZW1hIDxyZXBsYWNlYWJsZSBjbGFzcz0ib3B0aW9uIj5TQ0hFTUE8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvYXJnPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi0tYzE0bjwvb3B0aW9uPjwvYXJnPgorCQk8L2dyb3VwPgorCQk8Z3JvdXAgY2hvaWNlPSJyZXEiPgorCQkJPGFyZyBjaG9pY2U9InBsYWluIiByZXA9InJlcGVhdCI+PHJlcGxhY2VhYmxlPlhNTC1GSUxFKFMpPC9yZXBsYWNlYWJsZT48L2FyZz4KKwkJCTxhcmcgY2hvaWNlPSJwbGFpbiIgcmVwPSJub3JlcGVhdCI+LTwvYXJnPgorCQk8L2dyb3VwPgorCTwvY21kc3lub3BzaXM+CisJPGNtZHN5bm9wc2lzPgorCQk8Y29tbWFuZD54bWxsaW50PC9jb21tYW5kPgorCQk8YXJnIGNob2ljZT0icGxhaW4iPjxvcHRpb24+LS1oZWxwPC9vcHRpb24+PC9hcmc+CisJPC9jbWRzeW5vcHNpcz4KKzwvcmVmc3lub3BzaXNkaXY+CisKKzxyZWZzZWN0MSBpZD0iZGVzY3JpcHRpb24iPgorCTx0aXRsZT5ERVNDUklQVElPTjwvdGl0bGU+CisJPHBhcmE+CisJCVRoZSAmeG1sbGludDsgcHJvZ3JhbSBwYXJzZXMgb25lIG9yIG1vcmUgPGFjcm9ueW0+WE1MPC9hY3JvbnltPiBmaWxlcywKKwkJc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUgYXMgPHJlcGxhY2VhYmxlPlhNTC1GSUxFPC9yZXBsYWNlYWJsZT4KKwkJKG9yIHRoZSBzdGFuZGFyZCBpbnB1dCBpZiB0aGUgZmlsZW5hbWUgcHJvdmlkZWQKKwkJaXMgPGVtcGhhc2lzIHJvbGU9ImJvbGQiPi08L2VtcGhhc2lzPiApLiBJdCBwcmludHMgdmFyaW91cyB0eXBlcyBvZgorCQlvdXRwdXQsIGRlcGVuZGluZyB1cG9uIHRoZSBvcHRpb25zIHNlbGVjdGVkLiBJdCBpcyB1c2VmdWwgZm9yIGRldGVjdGluZworCQllcnJvcnMgYm90aCBpbiA8YWNyb255bT5YTUw8L2Fjcm9ueW0+IGNvZGUgYW5kIGluCisJCXRoZSA8YWNyb255bT5YTUw8L2Fjcm9ueW0+IHBhcnNlciBpdHNlbGYuCisJPC9wYXJhPgorCTxwYXJhPiZ4bWxsaW50OyBpcyBpbmNsdWRlZCBpbiA8Y2l0ZXJlZmVudHJ5PgorCQk8cmVmZW50cnl0aXRsZT5saWJ4bWw8L3JlZmVudHJ5dGl0bGU+CisJCTxtYW52b2xudW0+MzwvbWFudm9sbnVtPgorCTwvY2l0ZXJlZmVudHJ5Pi48L3BhcmE+Cis8L3JlZnNlY3QxPgorCis8cmVmc2VjdDEgaWQ9Im9wdGlvbnMiPgorCTx0aXRsZT5PUFRJT05TPC90aXRsZT4KKwk8cGFyYT4KKwkJJnhtbGxpbnQ7IGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zIChpbiBhbHBoYWJldGljYWwgb3JkZXIpOgorCTwvcGFyYT4KKworCTx2YXJpYWJsZWxpc3Q+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tYXV0bzwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPkdlbmVyYXRlIGEgc21hbGwgZG9jdW1lbnQgZm9yIHRlc3RpbmcgcHVycG9zZXMuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLWNhdGFsb2dzPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlVc2UgdGhlIDxhY3JvbnltPlNHTUw8L2Fjcm9ueW0+IGNhdGFsb2cocykgZnJvbSA8ZW52YXI+U0dNTF9DQVRBTE9HX0ZJTEVTPC9lbnZhcj4uCisJCQlPdGhlcndpc2UgPGFjcm9ueW0+WE1MPC9hY3JvbnltPiBjYXRhbG9ncyBzdGFydGluZworCQkJZnJvbSA8ZmlsZW5hbWU+L2V0Yy94bWwvY2F0YWxvZzwvZmlsZW5hbWU+IGFyZSB1c2VkIGJ5IGRlZmF1bHQuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1jaGtyZWdpc3Rlcjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJVHVybiBvbiBub2RlIHJlZ2lzdHJhdGlvbi4gVXNlZnVsIGZvciBkZXZlbG9wZXJzIHRlc3RpbmcgPGNpdGVyZWZlbnRyeT4KKwkJPHJlZmVudHJ5dGl0bGU+bGlieG1sPC9yZWZlbnRyeXRpdGxlPgorCQk8bWFudm9sbnVtPjM8L21hbnZvbG51bT4KKwk8L2NpdGVyZWZlbnRyeT4gbm9kZSB0cmFja2luZyBjb2RlLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tY29tcHJlc3M8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCVR1cm4gb24gPGNpdGVyZWZlbnRyeT4KKwkJPHJlZmVudHJ5dGl0bGU+Z3ppcDwvcmVmZW50cnl0aXRsZT4KKwkJPG1hbnZvbG51bT4xPC9tYW52b2xudW0+CisJPC9jaXRlcmVmZW50cnk+IGNvbXByZXNzaW9uIG9mIG91dHB1dC4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLWNvcHk8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5UZXN0IHRoZSBpbnRlcm5hbCBjb3B5IGltcGxlbWVudGF0aW9uLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1jMTRuPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlVc2UgdGhlIFczQyA8YWNyb255bT5YTUw8L2Fjcm9ueW0+IENhbm9uaWNhbGlzYXRpb24gKDxhY3JvbnltPkMxNE48L2Fjcm9ueW0+KSB0bworCQkJc2VyaWFsaXplIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0byA8ZmlsZW5hbWUgY2xhc3M9ImRldmljZWZpbGUiPnN0ZG91dDwvZmlsZW5hbWU+LgorCQkJSXQga2VlcHMgY29tbWVudHMgaW4gdGhlIHJlc3VsdC4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLWR0ZHZhbGlkIDxyZXBsYWNlYWJsZSBjbGFzcz0ib3B0aW9uIj5VUkw8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJVXNlIHRoZSA8YWNyb255bT5EVEQ8L2Fjcm9ueW0+IHNwZWNpZmllZCBieQorCQkJYW4gPHJlcGxhY2VhYmxlPlVSTDwvcmVwbGFjZWFibGU+IGZvciB2YWxpZGF0aW9uLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tZHRkdmFsaWRmcGkgPHJlcGxhY2VhYmxlIGNsYXNzPSJvcHRpb24iPkZQSTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlVc2UgdGhlIDxhY3JvbnltPkRURDwvYWNyb255bT4gc3BlY2lmaWVkIGJ5IGEgRm9ybWFsIFB1YmxpYworCQkJSWRlbnRpZmllciA8cmVwbGFjZWFibGU+RlBJPC9yZXBsYWNlYWJsZT4gZm9yIHZhbGlkYXRpb24sIG5vdGUgdGhhdCB0aGlzCisJCQl3aWxsIHJlcXVpcmUgYSBjYXRhbG9nIGV4cG9ydGluZyB0aGF0IEZvcm1hbCBQdWJsaWMgSWRlbnRpZmllciB0byB3b3JrLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tZGVidWc8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCVBhcnNlIGEgZmlsZSBhbmQgb3V0cHV0IGFuIGFubm90YXRlZCB0cmVlIG9mIHRoZQorCQkJaW4tbWVtb3J5IHZlcnNpb24gb2YgdGhlIGRvY3VtZW50LgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tZGVidWdlbnQ8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5EZWJ1ZyB0aGUgZW50aXRpZXMgZGVmaW5lZCBpbiB0aGUgZG9jdW1lbnQuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLWRyb3BkdGQ8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5SZW1vdmUgPGFjcm9ueW0+RFREPC9hY3JvbnltPiBmcm9tIG91dHB1dC48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tZHRkYXR0cjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJRmV0Y2ggZXh0ZXJuYWwgPGFjcm9ueW0+RFREPC9hY3JvbnltPiBhbmQgcG9wdWxhdGUgdGhlIHRyZWUgd2l0aAorCQkJaW5oZXJpdGVkIGF0dHJpYnV0ZXMuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1lbmNvZGUgPHJlcGxhY2VhYmxlIGNsYXNzPSJvcHRpb24iPkVOQ09ESU5HPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5PdXRwdXQgaW4gdGhlIGdpdmVuIGVuY29kaW5nLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1mb3JtYXQ8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCVJlZm9ybWF0IGFuZCByZWluZGVudCB0aGUgb3V0cHV0LiBUaGUgPGVudmFyPlhNTExJTlRfSU5ERU5UPC9lbnZhcj4KKwkJCWVudmlyb25tZW50IHZhcmlhYmxlIGNvbnRyb2xzIHRoZSBpbmRlbnRhdGlvbi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgdHdvCisJCQlzcGFjZXMgJnF1b3Q7ICAmcXVvdDspLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0taGVscDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlByaW50IG91dCBhIHNob3J0IHVzYWdlIHN1bW1hcnkgZm9yICZ4bWxsaW50Oy48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0taHRtbDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlVzZSB0aGUgPGFjcm9ueW0+SFRNTDwvYWNyb255bT4gcGFyc2VyLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1odG1sb3V0PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlPdXRwdXQgcmVzdWx0cyBhcyBhbiA8YWNyb255bT5IVE1MPC9hY3JvbnltPiBmaWxlLiBUaGlzCisJCQljYXVzZXMgJnhtbGxpbnQ7IHRvIG91dHB1dCB0aGUgbmVjZXNzYXJ5IDxhY3JvbnltPkhUTUw8L2Fjcm9ueW0+CisJCQl0YWdzIHN1cnJvdW5kaW5nIHRoZSByZXN1bHQgdHJlZSBvdXRwdXQgc28gdGhlIHJlc3VsdHMgY2FuIGJlCisJCQlkaXNwbGF5ZWQvdmlld2VkIGluIGEgYnJvd3Nlci4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLWluc2VydDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlRlc3QgZm9yIHZhbGlkIGluc2VydGlvbnMuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLWxvYWRkdGQ8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5GZXRjaCBhbiBleHRlcm5hbCA8YWNyb255bT5EVEQ8L2Fjcm9ueW0+LjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1sb2FkLXRyYWNlPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlEaXNwbGF5IGFsbCB0aGUgZG9jdW1lbnRzIGxvYWRlZCBkdXJpbmcgdGhlIHByb2Nlc3NpbmcKKwkJCXRvIDxmaWxlbmFtZSBjbGFzcz0iZGV2aWNlZmlsZSI+c3RkZXJyPC9maWxlbmFtZT4uCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1tYXhtZW0gPHJlcGxhY2VhYmxlIGNsYXNzPSJvcHRpb24iPk5OQllURVM8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJVGVzdCB0aGUgcGFyc2VyIG1lbW9yeSBzdXBwb3J0LiA8cmVwbGFjZWFibGU+Tk5CWVRFUzwvcmVwbGFjZWFibGU+CisJCQlpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdGhlIGxpYnJhcnkgaXMgYWxsb3dlZCB0byBhbGxvY2F0ZS4KKwkJCVRoaXMgY2FuIGFsc28gYmUgdXNlZCB0byBtYWtlIHN1cmUgYmF0Y2ggcHJvY2Vzc2luZworCQkJb2YgPGFjcm9ueW0+WE1MPC9hY3JvbnltPiBmaWxlcyB3aWxsIG5vdCBleGhhdXN0IHRoZSB2aXJ0dWFsIG1lbW9yeQorCQkJb2YgdGhlIHNlcnZlciBydW5uaW5nIHRoZW0uCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1tZW1vcnk8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5QYXJzZSBmcm9tIG1lbW9yeS48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tbm9ibGFua3M8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5Ecm9wIGlnbm9yYWJsZSBibGFuayBzcGFjZXMuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLW5vY2F0YWxvZ3M8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5EbyBub3QgdXNlIGFueSBjYXRhbG9ncy48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tbm9jZGF0YTwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlN1YnN0aXR1dGUgQ0RBVEEgc2VjdGlvbiBieSBlcXVpdmFsZW50IHRleHQgbm9kZXMuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLW5vZW50PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlTdWJzdGl0dXRlIGVudGl0eSB2YWx1ZXMgZm9yIGVudGl0eSByZWZlcmVuY2VzLiBCeSBkZWZhdWx0LCAmeG1sbGludDsKKwkJCWxlYXZlcyBlbnRpdHkgcmVmZXJlbmNlcyBpbiBwbGFjZS4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLW5vbmV0PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlEbyBub3QgdXNlIHRoZSBJbnRlcm5ldCB0byBmZXRjaCA8YWNyb255bT5EVEQ8L2Fjcm9ueW0+cyBvciBlbnRpdGllcy4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLW5vb3V0PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlTdXBwcmVzcyBvdXRwdXQuIEJ5IGRlZmF1bHQsICZ4bWxsaW50OyBvdXRwdXRzIHRoZSByZXN1bHQgdHJlZS4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLW5vd2FybmluZzwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPkRvIG5vdCBlbWl0IHdhcm5pbmdzIGZyb20gdGhlIHBhcnNlciBhbmQvb3IgdmFsaWRhdG9yLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1ub3dyYXA8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5EbyBub3Qgb3V0cHV0IDxhY3JvbnltPkhUTUw8L2Fjcm9ueW0+IGRvYyB3cmFwcGVyLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1ub3hpbmNsdWRlbm9kZTwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJRG8gWEluY2x1ZGUgcHJvY2Vzc2luZyBidXQgZG8gbm90IGdlbmVyYXRlIFhJbmNsdWRlIHN0YXJ0IGFuZCBlbmQgbm9kZXMuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1uc2NsZWFuPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+UmVtb3ZlIHJlZHVuZGFudCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1vdXRwdXQgPHJlcGxhY2VhYmxlIGNsYXNzPSJvcHRpb24iPkZJTEU8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJRGVmaW5lIGEgZmlsZSBwYXRoIHdoZXJlICZ4bWxsaW50OyB3aWxsIHNhdmUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nLgorCQkJVXN1YWxseSB0aGUgcHJvZ3JhbXMgYnVpbGQgYSB0cmVlIGFuZCBzYXZlIGl0CisJCQlvbiA8ZmlsZW5hbWUgY2xhc3M9ImRldmljZWZpbGUiPnN0ZG91dDwvZmlsZW5hbWU+LCB3aXRoIHRoaXMgb3B0aW9uCisJCQl0aGUgcmVzdWx0IDxhY3JvbnltPlhNTDwvYWNyb255bT4gaW5zdGFuY2Ugd2lsbCBiZSBzYXZlZCBvbnRvIGEgZmlsZS4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLXBhdGggIjxyZXBsYWNlYWJsZSBjbGFzcz0ib3B0aW9uIj5QQVRIKFMpPC9yZXBsYWNlYWJsZT4iPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlVc2UgdGhlIChzcGFjZS0gb3IgY29sb24tc2VwYXJhdGVkKSBsaXN0IG9mIGZpbGVzeXN0ZW0gcGF0aHMgc3BlY2lmaWVkCisJCQlieSA8cmVwbGFjZWFibGU+UEFUSFM8L3JlcGxhY2VhYmxlPiB0byBsb2FkIDxhY3JvbnltPkRURDwvYWNyb255bT5zIG9yCisJCQllbnRpdGllcy4gRW5jbG9zZSBzcGFjZS1zZXBhcmF0ZWQgbGlzdHMgYnkgcXVvdGF0aW9uIG1hcmtzLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tcGF0dGVybiA8cmVwbGFjZWFibGUgY2xhc3M9Im9wdGlvbiI+UEFUVEVSTlZBTFVFPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCVVzZWQgdG8gZXhlcmNpc2UgdGhlIHBhdHRlcm4gcmVjb2duaXRpb24gZW5naW5lLCB3aGljaCBjYW4gYmUgdXNlZAorCQkJd2l0aCB0aGUgcmVhZGVyIGludGVyZmFjZSB0byB0aGUgcGFyc2VyLiBJdCBhbGxvd3MgdG8gc2VsZWN0IHNvbWUKKwkJCW5vZGVzIGluIHRoZSBkb2N1bWVudCBiYXNlZCBvbiBhbiBYUGF0aCAoc3Vic2V0KSBleHByZXNzaW9uLiBVc2VkCisJCQlmb3IgZGVidWdnaW5nLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tcG9zdHZhbGlkPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+VmFsaWRhdGUgYWZ0ZXIgcGFyc2luZyBoYXMgY29tcGxldGVkLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1wdXNoPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+VXNlIHRoZSBwdXNoIG1vZGUgb2YgdGhlIHBhcnNlci48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tcmVjb3Zlcjwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPk91dHB1dCBhbnkgcGFyc2FibGUgcG9ydGlvbnMgb2YgYW4gaW52YWxpZCBkb2N1bWVudC48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tcmVsYXhuZyA8cmVwbGFjZWFibGUgY2xhc3M9Im9wdGlvbiI+U0NIRU1BPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCVVzZSBSZWxheE5HIGZpbGUgbmFtZWQgPHJlcGxhY2VhYmxlIGNsYXNzPSJvcHRpb24iPlNDSEVNQTwvcmVwbGFjZWFibGU+CisJCQlmb3IgdmFsaWRhdGlvbi4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLXJlcGVhdDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlJlcGVhdCAxMDAgdGltZXMsIGZvciB0aW1pbmcgb3IgcHJvZmlsaW5nLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS1zY2hlbWEgPHJlcGxhY2VhYmxlPlNDSEVNQTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlVc2UgYSBXM0MgPGFjcm9ueW0+WE1MPC9hY3JvbnltPiBTY2hlbWEgZmlsZQorCQkJbmFtZWQgPHJlcGxhY2VhYmxlPlNDSEVNQTwvcmVwbGFjZWFibGU+IGZvciB2YWxpZGF0aW9uLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tc2hlbGw8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCVJ1biBhIG5hdmlnYXRpbmcgc2hlbGwuIERldGFpbHMgb24gYXZhaWxhYmxlIGNvbW1hbmRzIGluIHNoZWxsIG1vZGUKKwkJCWFyZSBiZWxvdyAoc2VlIDx4cmVmIGxpbmtlbmQ9InNoZWxsIi8+KS4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLXN0cmVhbTwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJVXNlIHN0cmVhbWluZyA8YWNyb255bT5BUEk8L2Fjcm9ueW0+IC0gdXNlZnVsIHdoZW4gdXNlZCBpbiBjb21iaW5hdGlvbgorCQkJd2l0aCA8b3B0aW9uPi0tcmVsYXhuZzwvb3B0aW9uPiBvciA8b3B0aW9uPi0tdmFsaWQ8L29wdGlvbj4gb3B0aW9ucworCQkJZm9yIHZhbGlkYXRpb24gb2YgZmlsZXMgdGhhdCBhcmUgdG9vIGxhcmdlIHRvIGJlIGhlbGQgaW4gbWVtb3J5LgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0tdGVzdElPPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+VGVzdCB1c2VyIGlucHV0L291dHB1dCBzdXBwb3J0LjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS10aW1pbmc8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCU91dHB1dCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGltZSBpdCB0YWtlcyAmeG1sbGludDsgdG8gcGVyZm9ybSB0aGUKKwkJCXZhcmlvdXMgc3RlcHMuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS12YWxpZDwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJRGV0ZXJtaW5lIGlmIHRoZSBkb2N1bWVudCBpcyBhIHZhbGlkIGluc3RhbmNlIG9mIHRoZSBpbmNsdWRlZAorCQkJRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uICg8YWNyb255bT5EVEQ8L2Fjcm9ueW0+KS4KKwkJCUEgPGFjcm9ueW0+RFREPC9hY3JvbnltPiB0byBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBhbHNvIGNhbiBiZQorCQkJc3BlY2lmaWVkIGF0IHRoZSBjb21tYW5kIGxpbmUgdXNpbmcgdGhlIDxvcHRpb24+LS1kdGR2YWxpZDwvb3B0aW9uPgorCQkJb3B0aW9uLiBCeSBkZWZhdWx0LCAmeG1sbGludDsgYWxzbyBjaGVja3MgdG8gZGV0ZXJtaW5lIGlmIHRoZQorCQkJZG9jdW1lbnQgaXMgd2VsbC1mb3JtZWQuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS12ZXJzaW9uPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlEaXNwbGF5IHRoZSB2ZXJzaW9uIG9mIDxjaXRlcmVmZW50cnk+CisJCTxyZWZlbnRyeXRpdGxlPmxpYnhtbDwvcmVmZW50cnl0aXRsZT4KKwkJPG1hbnZvbG51bT4zPC9tYW52b2xudW0+CisJPC9jaXRlcmVmZW50cnk+IHVzZWQuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxvcHRpb24+LS13YWxrZXI8L29wdGlvbj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCVRlc3QgdGhlIHdhbGtlciBtb2R1bGUsIHdoaWNoIGlzIGEgcmVhZGVyIGludGVyZmFjZSBidXQgZm9yIGEKKwkJCWRvY3VtZW50IHRyZWUsIGluc3RlYWQgb2YgdXNpbmcgdGhlIHJlYWRlciA8YWNyb255bT5BUEk8L2Fjcm9ueW0+IG9uCisJCQlhbiB1bnBhcnNlZCBkb2N1bWVudCBpdCB3b3JrcyBvbiBhbiBleGlzdGluZyBpbi1tZW1vcnkgdHJlZS4gVXNlZCBmb3IKKwkJCWRlYnVnZ2luZy4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj4tLXhpbmNsdWRlPC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+RG8gWEluY2x1ZGUgcHJvY2Vzc2luZy48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48b3B0aW9uPi0teG1sb3V0PC9vcHRpb24+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPG9wdGlvbj4tLWh0bWw8L29wdGlvbj4uIFVzdWFsbHkKKwkJCXdoZW4gPGFjcm9ueW0+SFRNTDwvYWNyb255bT4gaXMgcGFyc2VkIHRoZSBkb2N1bWVudCBpcyBzYXZlZCB3aXRoCisJCQl0aGUgPGFjcm9ueW0+SFRNTDwvYWNyb255bT4gc2VyaWFsaXplci4gQnV0IHdpdGggdGhpcyBvcHRpb24gdGhlCisJCQlyZXN1bHRpbmcgZG9jdW1lbnQgaXMgc2F2ZWQgd2l0aCB0aGUgPGFjcm9ueW0+WE1MPC9hY3JvbnltPgorCQkJc2VyaWFsaXplci4gVGhpcyBpcyBwcmltYXJpbHkgdXNlZCB0bworCQkJZ2VuZXJhdGUgPGFjcm9ueW0+WEhUTUw8L2Fjcm9ueW0+IGZyb20gPGFjcm9ueW0+SFRNTDwvYWNyb255bT4gaW5wdXQuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCTwvdmFyaWFibGVsaXN0PgorPC9yZWZzZWN0MT4KKworPHJlZnNlY3QxIGlkPSJzaGVsbCI+CisJPHRpdGxlPlNIRUxMIENPTU1BTkRTPC90aXRsZT4KKwk8cGFyYT4KKwkJJnhtbGxpbnQ7IG9mZmVycyBhbiBpbnRlcmFjdGl2ZSBzaGVsbCBtb2RlIGludm9rZWQgd2l0aAorCQl0aGUgPG9wdGlvbj4tLXNoZWxsPC9vcHRpb24+IGNvbW1hbmQuIEF2YWlsYWJsZSBjb21tYW5kcyBpbiBzaGVsbCBtb2RlCisJCWluY2x1ZGUgKGluIGFscGhhYmV0aWNhbCBvcmRlcik6CisJPC9wYXJhPgorCTx2YXJpYWJsZWxpc3Q+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48Y29tbWFuZD5iYXNlPC9jb21tYW5kPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPkRpc3BsYXkgPGFjcm9ueW0+WE1MPC9hY3JvbnltPiBiYXNlIG9mIHRoZSBub2RlLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxjb21tYW5kPmJ5ZTwvY29tbWFuZD48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5MZWF2ZSB0aGUgc2hlbGwuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGNvbW1hbmQ+Y2F0IDxyZXBsYWNlYWJsZT5OT0RFPC9yZXBsYWNlYWJsZT48L2NvbW1hbmQ+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+RGlzcGxheSB0aGUgZ2l2ZW4gbm9kZSBvciB0aGUgY3VycmVudCBvbmUuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGNvbW1hbmQ+Y2QgPHJlcGxhY2VhYmxlPlBBVEg8L3JlcGxhY2VhYmxlPjwvY29tbWFuZD48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCUNoYW5nZSB0aGUgY3VycmVudCBub2RlIHRvIHRoZSBnaXZlbiBwYXRoIChpZiB1bmlxdWUpIG9yIHJvb3QgaWYgbm8KKwkJCWFyZ3VtZW50IGlzIGdpdmVuLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48Y29tbWFuZD5kaXIgPHJlcGxhY2VhYmxlPlBBVEg8L3JlcGxhY2VhYmxlPjwvY29tbWFuZD48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT4KKwkJCUR1bXBzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBub2RlIChuYW1lc3BhY2UsIGF0dHJpYnV0ZXMsIGNvbnRlbnQpLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48Y29tbWFuZD5kdSA8cmVwbGFjZWFibGU+UEFUSDwvcmVwbGFjZWFibGU+PC9jb21tYW5kPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJU2hvdyB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdWJ0cmVlIHVuZGVyIHRoZSBnaXZlbiBwYXRoIG9yIHRoZSBjdXJyZW50IG5vZGUuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxjb21tYW5kPmV4aXQ8L2NvbW1hbmQ+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+TGVhdmUgdGhlIHNoZWxsLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxjb21tYW5kPmhlbHA8L2NvbW1hbmQ+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+U2hvdyB0aGlzIGhlbHAuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGNvbW1hbmQ+ZnJlZTwvY29tbWFuZD48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5EaXNwbGF5IG1lbW9yeSB1c2FnZS48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48Y29tbWFuZD5sb2FkIDxyZXBsYWNlYWJsZT5GSUxFTkFNRTwvcmVwbGFjZWFibGU+PC9jb21tYW5kPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPkxvYWQgYSBuZXcgZG9jdW1lbnQgd2l0aCB0aGUgZ2l2ZW4gZmlsZW5hbWUuPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGNvbW1hbmQ+bHMgPHJlcGxhY2VhYmxlPlBBVEg8L3JlcGxhY2VhYmxlPjwvY29tbWFuZD48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5MaXN0IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBwYXRoIG9yIHRoZSBjdXJyZW50IGRpcmVjdG9yeS48L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48Y29tbWFuZD5wd2Q8L2NvbW1hbmQ+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+RGlzcGxheSB0aGUgcGF0aCB0byB0aGUgY3VycmVudCBub2RlLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxjb21tYW5kPnF1aXQ8L2NvbW1hbmQ+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+TGVhdmUgdGhlIHNoZWxsLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxjb21tYW5kPnNhdmUgPHJlcGxhY2VhYmxlPkZJTEVOQU1FPC9yZXBsYWNlYWJsZT48L2NvbW1hbmQ+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+CisJCQlTYXZlIHRoZSBjdXJyZW50IGRvY3VtZW50IHRvIHRoZSBnaXZlbiBmaWxlbmFtZSBvciB0byB0aGUgb3JpZ2luYWwgbmFtZS4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PG9wdGlvbj52YWxpZGF0ZTwvb3B0aW9uPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPkNoZWNrIHRoZSBkb2N1bWVudCBmb3IgZXJyb3JzLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxjb21tYW5kPndyaXRlIDxyZXBsYWNlYWJsZT5GSUxFTkFNRTwvcmVwbGFjZWFibGU+PC9jb21tYW5kPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPldyaXRlIHRoZSBjdXJyZW50IG5vZGUgdG8gdGhlIGdpdmVuIGZpbGVuYW1lLjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCTwvdmFyaWFibGVsaXN0PgorPC9yZWZzZWN0MT4KKworPHJlZnNlY3QxIGlkPSJlbnZpcm9ubWVudCI+CisJPHRpdGxlPkVOVklST05NRU5UPC90aXRsZT4KKwk8dmFyaWFibGVsaXN0PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGVudmFyPlNHTUxfQ0FUQUxPR19GSUxFUzwvZW52YXI+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+PGFjcm9ueW0+U0dNTDwvYWNyb255bT4gY2F0YWxvZyBiZWhhdmlvciBjYW4gYmUgY2hhbmdlZCBieSByZWRpcmVjdGluZworCQkJcXVlcmllcyB0byB0aGUgdXNlcidzIG93biBzZXQgb2YgY2F0YWxvZ3MuIFRoaXMgY2FuIGJlIGRvbmUgYnkgc2V0dGluZworCQkJdGhlIDxlbnZhcj5TR01MX0NBVEFMT0dfRklMRVM8L2VudmFyPiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGxpc3QKKwkJCW9mIGNhdGFsb2dzLiBBbiBlbXB0eSBvbmUgc2hvdWxkIGRlYWN0aXZhdGUgbG9hZGluZyB0aGUKKwkJCWRlZmF1bHQgPGZpbGVuYW1lPi9ldGMvc2dtbC9jYXRhbG9nPC9maWxlbmFtZT4gY2F0YWxvZy4KKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGVudmFyPlhNTF9DQVRBTE9HX0ZJTEVTPC9lbnZhcj48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT48YWNyb255bT5YTUw8L2Fjcm9ueW0+IGNhdGFsb2cgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgYnkgcmVkaXJlY3RpbmcKKwkJCXF1ZXJpZXMgdG8gdGhlIHVzZXIncyBvd24gc2V0IG9mIGNhdGFsb2dzLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcKKwkJCXRoZSA8ZW52YXI+WE1MX0NBVEFMT0dfRklMRVM8L2VudmFyPiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIGxpc3QKKwkJCW9mIGNhdGFsb2dzLiBBbiBlbXB0eSBvbmUgc2hvdWxkIGRlYWN0aXZhdGUgbG9hZGluZyB0aGUKKwkJCWRlZmF1bHQgPGZpbGVuYW1lPi9ldGMveG1sL2NhdGFsb2c8L2ZpbGVuYW1lPiBjYXRhbG9nLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZW52YXI+WE1MX0RFQlVHX0NBVEFMT0c8L2VudmFyPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDxlbnZhcj5YTUxfREVCVUdfQ0FUQUxPRzwvZW52YXI+CisJCQl0byA8cGFyYW1ldGVyPm5vbi16ZXJvPC9wYXJhbWV0ZXI+IHVzaW5nIHRoZSA8Y29tbWFuZD5leHBvcnQ8L2NvbW1hbmQ+CisJCQljb21tYW5kIG91dHB1dHMgZGVidWdnaW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gY2F0YWxvZyBvcGVyYXRpb25zLgorCQk8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZW52YXI+WE1MTElOVF9JTkRFTlQ8L2VudmFyPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDxlbnZhcj5YTUxMSU5UX0lOREVOVDwvZW52YXI+CisJCQljb250cm9scyB0aGUgaW5kZW50YXRpb24uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHR3byBzcGFjZXMgJnF1b3Q7ICAmcXVvdDsuCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKwkJCisJPC92YXJpYWJsZWxpc3Q+Cis8L3JlZnNlY3QxPgorCis8cmVmc2VjdDEgaWQ9ImRpYWdub3N0aWNzIj4KKwk8dGl0bGU+RElBR05PU1RJQ1M8L3RpdGxlPgorCTxwYXJhPgorCQkmeG1sbGludDsgcmV0dXJuIGNvZGVzIHByb3ZpZGUgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgdXNlZCB3aGVuCisJCWNhbGxpbmcgaXQgZnJvbSBzY3JpcHRzLgorCTwvcGFyYT4KKwk8IS0tIGJldHRlciB1c2Ugc2VnbWVudGVkbGlzdCBlbGVtZW50IGxhdGVyLAorCSAgICAgd2hpY2ggaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGluIHNuYXBzaG90cyAtLT4KKwk8dmFyaWFibGVsaXN0PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGVycm9yY29kZT4wPC9lcnJvcmNvZGU+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+Tm8gZXJyb3I8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZXJyb3Jjb2RlPjE8L2Vycm9yY29kZT48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5VbmNsYXNzaWZpZWQ8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZXJyb3Jjb2RlPjI8L2Vycm9yY29kZT48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5FcnJvciBpbiA8YWNyb255bT5EVEQ8L2Fjcm9ueW0+PC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGVycm9yY29kZT4zPC9lcnJvcmNvZGU+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+VmFsaWRhdGlvbiBlcnJvcjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxlcnJvcmNvZGU+NDwvZXJyb3Jjb2RlPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPlZhbGlkYXRpb24gZXJyb3I8L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZXJyb3Jjb2RlPjU8L2Vycm9yY29kZT48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5FcnJvciBpbiBzY2hlbWEgY29tcGlsYXRpb248L3BhcmE+CisJPC9saXN0aXRlbT4KKwkJPC92YXJsaXN0ZW50cnk+CisKKwkJPHZhcmxpc3RlbnRyeT4KKwk8dGVybT48ZXJyb3Jjb2RlPjY8L2Vycm9yY29kZT48L3Rlcm0+CisJPGxpc3RpdGVtPgorCQk8cGFyYT5FcnJvciB3cml0aW5nIG91dHB1dDwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxlcnJvcmNvZGU+NzwvZXJyb3Jjb2RlPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJRXJyb3IgaW4gcGF0dGVybiAoZ2VuZXJhdGVkIHdoZW4gPG9wdGlvbj4tLXBhdHRlcm48L29wdGlvbj4gb3B0aW9uIGlzIHVzZWQpCisJCTwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCQk8dmFybGlzdGVudHJ5PgorCTx0ZXJtPjxlcnJvcmNvZGU+ODwvZXJyb3Jjb2RlPjwvdGVybT4KKwk8bGlzdGl0ZW0+CisJCTxwYXJhPgorCQkJRXJyb3IgaW4gUmVhZGVyIHJlZ2lzdHJhdGlvbiAoZ2VuZXJhdGVkCisJCQl3aGVuIDxvcHRpb24+LS1jaGtyZWdpc3Rlcjwvb3B0aW9uPiBvcHRpb24gaXMgdXNlZCkKKwkJPC9wYXJhPgorCTwvbGlzdGl0ZW0+CisJCTwvdmFybGlzdGVudHJ5PgorCisJCTx2YXJsaXN0ZW50cnk+CisJPHRlcm0+PGVycm9yY29kZT45PC9lcnJvcmNvZGU+PC90ZXJtPgorCTxsaXN0aXRlbT4KKwkJPHBhcmE+T3V0IG9mIG1lbW9yeSBlcnJvcjwvcGFyYT4KKwk8L2xpc3RpdGVtPgorCQk8L3Zhcmxpc3RlbnRyeT4KKworCTwvdmFyaWFibGVsaXN0PgorPC9yZWZzZWN0MT4KKworPHJlZnNlY3QxIGlkPSJzZWVhbHNvIj4KKwk8dGl0bGU+U0VFIEFMU088L3RpdGxlPgorCTxwYXJhPjxjaXRlcmVmZW50cnk+CisJCQk8cmVmZW50cnl0aXRsZT5saWJ4bWw8L3JlZmVudHJ5dGl0bGU+CisJCQk8bWFudm9sbnVtPjM8L21hbnZvbG51bT4KKwkJPC9jaXRlcmVmZW50cnk+CisJPC9wYXJhPgorCTxwYXJhPgorCQlNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdAorCQk8aXRlbWl6ZWRsaXN0PgorCQkJPGxpc3RpdGVtPgorCQkJCTxwYXJhPjxjaXRlcmVmZW50cnk+CisJCQkJCQk8cmVmZW50cnl0aXRsZT5saWJ4bWw8L3JlZmVudHJ5dGl0bGU+CisJCQkJCQk8bWFudm9sbnVtPjM8L21hbnZvbG51bT4KKwkJCQkJPC9jaXRlcmVmZW50cnk+IHdlYiBwYWdlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cueG1sc29mdC5vcmcvIi8+CisJCQkJPC9wYXJhPgorCQkJPC9saXN0aXRlbT4KKwkJCTxsaXN0aXRlbT4KKwkJCQk8cGFyYT5XM0MgPGFjcm9ueW0+WFNMVDwvYWNyb255bT4gcGFnZSA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LnczLm9yZy9UUi94c2x0Ii8+CisJCQkJPC9wYXJhPgorCQkJPC9saXN0aXRlbT4KKwkJPC9pdGVtaXplZGxpc3Q+CisJPC9wYXJhPgorPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3htbG1lbS5odG1sIGIvbGlieG1sMi0yLjcuNy9kb2MveG1sbWVtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZmNjVhOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZG9jL3htbG1lbS5odG1sCkBAIC0wLDAgKzEsMTE1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKzwvc3R5bGU+PHRpdGxlPk1lbW9yeSBNYW5hZ2VtZW50PC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iI2EwNjA2MCIgdmxpbms9IiMwMDAwMDAiPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQgd2lkdGg9IjEyMCI+PGEgaHJlZj0iaHR0cDovL3N3cGF0LmZmaWkub3JnLyI+PGltZyBzcmM9ImVwYXRlbnRzLnBuZyIgYWx0PSJBY3Rpb24gYWdhaW5zdCBzb2Z0d2FyZSBwYXRlbnRzIiAvPjwvYT48L3RkPjx0ZCB3aWR0aD0iMTgwIj48YSBocmVmPSJodHRwOi8vd3d3Lmdub21lLm9yZy8iPjxpbWcgc3JjPSJnbm9tZTIucG5nIiBhbHQ9Ikdub21lMiBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdGF0dXMiPjxpbWcgc3JjPSJ3M2MucG5nIiBhbHQ9IlczQyBMb2dvIiAvPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iIC8+PC9hPjxkaXYgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy8iPjxpbWcgc3JjPSJMaWJ4bWwyLUxvZ28tMTgweDE2OC5naWYiIGFsdD0iTWFkZSB3aXRoIExpYnhtbDIgTG9nbyIgLz48L2E+PC9kaXY+PC90ZD48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjkwJSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiIGJnY29sb3I9IiNmZmZhY2QiPjx0cj48dGQgYWxpZ249ImNlbnRlciI+PGgxPlRoZSBYTUwgQyBwYXJzZXIgYW5kIHRvb2xraXQgb2YgR25vbWU8L2gxPjxoMj5NZW1vcnkgTWFuYWdlbWVudDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjAwIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMDAwMDAwIj48dHI+PHRkPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5EZXZlbG9wZXIgTWVudTwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48Zm9ybSBhY3Rpb249InNlYXJjaC5waHAiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSIiIC8+PGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2VhcmNoIC4uLiIgLz48L2Zvcm0+PHVsPjxsaT48YSBocmVmPSJpbmRleC5odG1sIiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+TWFpbiBNZW51PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0bWwvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlJlZmVyZW5jZSBNYW51YWw8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZXMvaW5kZXguaHRtbCIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkNvZGUgRXhhbXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZ3VpZGVsaW5lcy5odG1sIj5YTUwgR3VpZGVsaW5lczwvYT48L2xpPjxsaT48YSBocmVmPSJ0dXRvcmlhbC9pbmRleC5odG1sIj5UdXRvcmlhbDwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+VGhlIFJlYWRlciBJbnRlcmZhY2U8L2E+PC9saT48bGk+PGEgaHJlZj0iQ2hhbmdlTG9nLmh0bWwiPkNoYW5nZUxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT48bGk+PGEgaHJlZj0icHl0aG9uLmh0bWwiPlB5dGhvbiBhbmQgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iYXJjaGl0ZWN0dXJlLmh0bWwiPmxpYnhtbDIgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRyZWUuaHRtbCI+VGhlIHRyZWUgb3V0cHV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9ImludGVyZmFjZS5odG1sIj5UaGUgU0FYIGludGVyZmFjZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT48bGk+PGEgaHJlZj0ieG1saW8uaHRtbCI+SS9PIEludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibGlicmFyeS5odG1sIj5UaGUgcGFyc2VyIGludGVyZmFjZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZW50aXRpZXMuaHRtbCI+RW50aXRpZXMgb3Igbm8gZW50aXRpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9InVwZ3JhZGUuaHRtbCI+VXBncmFkaW5nIDEueCBjb2RlPC9hPjwvbGk+PGxpPjxhIGhyZWY9InRocmVhZHMuaHRtbCI+VGhyZWFkIHNhZmV0eTwvYT48L2xpPjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iZXhhbXBsZS5odG1sIj5BIHJlYWwgZXhhbXBsZTwvYT48L2xpPjxsaT48YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjMiPjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5BUEkgSW5kZXhlczwvYj48L2NlbnRlcj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj48dWw+PGxpPjxhIGhyZWY9IkFQSWNodW5rMC5odG1sIj5BbHBoYWJldGljPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSWNvbnN0cnVjdG9ycy5odG1sIj5Db25zdHJ1Y3RvcnM8L2E+PC9saT48bGk+PGEgaHJlZj0iQVBJZnVuY3Rpb25zLmh0bWwiPkZ1bmN0aW9ucy9UeXBlczwvYT48L2xpPjxsaT48YSBocmVmPSJBUElmaWxlcy5odG1sIj5Nb2R1bGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9IkFQSXN5bWJvbHMuaHRtbCI+U3ltYm9sczwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+PHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2ZmZmFjZCI+PHVsPjxsaT48YSBocmVmPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLyI+TWFpbCBhcmNoaXZlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9YU0xULyI+WFNMVCBsaWJ4c2x0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9waGQuY3MudW5pYm8uaXQvZ2RvbWUyLyI+RE9NIGdkb21lMjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYy8iPlhNTC1EU2lnIHhtbHNlYzwvYT48L2xpPjxsaT48YSBocmVmPSJmdHA6Ly94bWxzb2Z0Lm9yZy8iPkZUUDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnpsYXRrb3ZpYy5jb20vcHJvamVjdHMvbGlieG1sLyI+V2luZG93cyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vb3BlbmNzdy5vcmcvcGFja2FnZXMvbGlieG1sMiI+U29sYXJpcyBiaW5hcmllczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmV4cGxhaW4uY29tLmF1L29zcy9saWJ4bWwyeHNsdC5odG1sIj5NYWNPc1ggYmluYXJpZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2NvZGVzcGVhay5uZXQvbHhtbC8iPmx4bWwgUHl0aG9uIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jcGFuLnV3aW5uaXBlZy5jYS9kaXN0L1hNTC1MaWJYTUwiPlBlcmwgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2xpYnhtbHBsdXNwbHVzLnNvdXJjZWZvcmdlLm5ldC8iPkMrKyBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnplbmQuY29tL3BocDUvYXJ0aWNsZXMvcGhwNS14bWxwaHAucGhwI0hlYWRpbmc0Ij5QSFAgYmluZGluZ3M8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJ4bWwyLXBhcy8iPlBhc2NhbCBiaW5kaW5nczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbGlieG1sLnJ1Ynlmb3JnZS5vcmcvIj5SdWJ5IGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly90Y2x4bWwuc291cmNlZm9yZ2UubmV0LyI+VGNsIGJpbmRpbmdzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYnVnbGlzdC5jZ2k/cHJvZHVjdD1saWJ4bWwyIj5CdWcgVHJhY2tlcjwvYT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiM4Yjc3NjUiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjxwPlRhYmxlIG9mIENvbnRlbnQ6PC9wPjxvbD48bGk+PGEgaHJlZj0iI0dlbmVyYWwzIj5HZW5lcmFsIG92ZXJ2aWV3PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjc2V0dGluZyI+U2V0dGluZyBsaWJ4bWwyIHNldCBvZiBtZW1vcnkgcm91dGluZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNjbGVhbnVwIj5DbGVhbmluZyB1cCBhZnRlciB1c2luZyB0aGUgbGlicmFyeTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0RlYnVnZ2luZyI+RGVidWdnaW5nIHJvdXRpbmVzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjR2VuZXJhbDQiPkdlbmVyYWwgbWVtb3J5IHJlcXVpcmVtZW50czwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0NvbXBhY3RpbmciPlJldHVybmluZyBtZW1vcnkgdG8gdGhlIGtlcm5lbDwvYT48L2xpPgorPC9vbD48aDM+PGEgbmFtZT0iR2VuZXJhbDMiIGlkPSJHZW5lcmFsMyI+R2VuZXJhbCBvdmVydmlldzwvYT48L2gzPjxwPlRoZSBtb2R1bGUgPGNvZGU+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxtZW1vcnkuaDwvYT48L2NvZGU+Citwcm92aWRlcyB0aGUgaW50ZXJmYWNlcyB0byB0aGUgbGlieG1sMiBtZW1vcnkgc3lzdGVtOjwvcD48dWw+PGxpPmxpYnhtbDIgZG9lcyBub3QgdXNlIHRoZSBsaWJjIG1lbW9yeSBhbGxvY2F0b3IgZGlyZWN0bHkgYnV0IHhtbEZyZWUoKSwKKyAgICB4bWxNYWxsb2MoKSBhbmQgeG1sUmVhbGxvYygpPC9saT4KKyAgPGxpPnRob3NlIHJvdXRpbmVzIGNhbiBiZSByZWFsbG9jYXRlZCB0byBhIHNwZWNpZmljIHNldCBvZiByb3V0aW5lLCBieQorICAgIGRlZmF1bHQgdGhlIGxpYmMgb25lcyBpLmUuIGZyZWUoKSwgbWFsbG9jKCkgYW5kIHJlYWxsb2MoKTwvbGk+CisgIDxsaT50aGUgeG1sbWVtb3J5LmMgbW9kdWxlIGluY2x1ZGVzIGEgc2V0IG9mIGRlYnVnZ2luZyByb3V0aW5lPC9saT4KKzwvdWw+PGgzPjxhIG5hbWU9InNldHRpbmciIGlkPSJzZXR0aW5nIj5TZXR0aW5nIGxpYnhtbDIgc2V0IG9mIG1lbW9yeSByb3V0aW5lczwvYT48L2gzPjxwPkl0IGlzIHNvbWV0aW1lcyB1c2VmdWwgdG8gbm90IHVzZSB0aGUgZGVmYXVsdCBtZW1vcnkgYWxsb2NhdG9yLCBlaXRoZXIgZm9yCitkZWJ1Z2dpbmcsIGFuYWx5c2lzIG9yIHRvIGltcGxlbWVudCBhIHNwZWNpZmljIGJlaGF2aW91ciBvbiBtZW1vcnkgbWFuYWdlbWVudAorKGxpa2Ugb24gZW1iZWRkZWQgc3lzdGVtcykuIFR3byBmdW5jdGlvbiBjYWxscyBhcmUgYXZhaWxhYmxlIHRvIGRvIHNvOjwvcD48dWw+PGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sTWVtR2V0CisgICAgKCk8L2E+IHdoaWNoIHJldHVybiB0aGUgY3VycmVudCBzZXQgb2YgZnVuY3Rpb25zIGluIHVzZSBieSB0aGUgcGFyc2VyPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC14bWxtZW1vcnkuaHRtbCI+eG1sTWVtU2V0dXAoKTwvYT4KKyAgICB3aGljaCBhbGxvdyB0byBzZXQgdXAgYSBuZXcgc2V0IG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9uczwvbGk+Cis8L3VsPjxwPk9mIGNvdXJzZSBhIGNhbGwgdG8geG1sTWVtU2V0dXAoKSBzaG91bGQgcHJvYmFibHkgYmUgZG9uZSBiZWZvcmUgY2FsbGluZworYW55IG90aGVyIGxpYnhtbDIgcm91dGluZXMgKHVubGVzcyB5b3UgYXJlIHN1cmUgeW91ciBhbGxvY2F0aW9ucyByb3V0aW5lcyBhcmUKK2NvbXBhdGlibGVzKS48L3A+PGgzPjxhIG5hbWU9ImNsZWFudXAiIGlkPSJjbGVhbnVwIj5DbGVhbmluZyB1cCBhZnRlciB1c2luZyB0aGUgbGlicmFyeTwvYT48L2gzPjxwPkxpYnhtbDIgaXMgbm90IHN0YXRlbGVzcywgdGhlcmUgaXMgYSBmZXcgc2V0IG9mIG1lbW9yeSBzdHJ1Y3R1cmVzIG5lZWRpbmcKK2FsbG9jYXRpb24gYmVmb3JlIHRoZSBwYXJzZXIgaXMgZnVsbHkgZnVuY3Rpb25hbCAoc29tZSBlbmNvZGluZyBzdHJ1Y3R1cmVzCitmb3IgZXhhbXBsZSkuIFRoaXMgYWxzbyBtZWFuIHRoYXQgb25jZSBwYXJzaW5nIGlzIGZpbmlzaGVkIHRoZXJlIGlzIGEgdGlueQorYW1vdW50IG9mIG1lbW9yeSAoYSBmZXcgaHVuZHJlZCBieXRlcykgd2hpY2ggY2FuIGJlIHJlY29sbGVjdGVkIGlmIHlvdSBkb24ndAorcmV1c2UgdGhlIGxpYnJhcnkgb3IgYW55IGRvY3VtZW50IGJ1aWx0IHdpdGggaXQ6PC9wPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXBhcnNlci5odG1sIj54bWxDbGVhbnVwUGFyc2VyCisgICAgKCk8L2E+IGlzIGEgY2VudHJhbGl6ZWQgcm91dGluZSB0byBmcmVlIHRoZSBsaWJyYXJ5IHN0YXRlIGFuZCBkYXRhLiBOb3RlCisgICAgdGhhdCBpdCB3b24ndCBkZWFsbG9jYXRlIGFueSBwcm9kdWNlZCB0cmVlIGlmIGFueSAodXNlIHRoZSB4bWxGcmVlRG9jKCkKKyAgICBhbmQgcmVsYXRlZCByb3V0aW5lcyBmb3IgdGhpcykuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoZW4gdGhlIGxpYnJhcnkKKyAgICBpcyBub3QgdXNlZCBhbnltb3JlLjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwtcGFyc2VyLmh0bWwiPnhtbEluaXRQYXJzZXIKKyAgICAoKTwvYT4gaXMgdGhlIGR1YWwgcm91dGluZSBhbGxvd2luZyB0byBwcmVhbGxvY2F0ZSB0aGUgcGFyc2luZyBzdGF0ZQorICAgIHdoaWNoIGNhbiBiZSB1c2VmdWwgZm9yIGV4YW1wbGUgdG8gYXZvaWQgaW5pdGlhbGl6YXRpb24gcmVlbnRyYW5jeQorICAgIHByb2JsZW1zIHdoZW4gdXNpbmcgbGlieG1sMiBpbiBtdWx0aXRocmVhZGVkIGFwcGxpY2F0aW9uczwvbGk+Cis8L3VsPjxwPkdlbmVyYWxseSB4bWxDbGVhbnVwUGFyc2VyKCkgaXMgc2FmZSBhc3N1bWluZyBubyBwYXJzaW5nIGlzIG9uZ29pbmcgYW5kCitubyBkb2N1bWVudCBpcyBzdGlsbCBiZWluZyB1c2VkLCBpZiBuZWVkZWQgdGhlIHN0YXRlIHdpbGwgYmUgcmVidWlsZCBhdCB0aGUKK25leHQgaW52b2NhdGlvbiBvZiBwYXJzZXIgcm91dGluZXMgKG9yIGJ5IHhtbEluaXRQYXJzZXIoKSksIGJ1dCBiZSBjYXJlZnVsCitvZiB0aGUgY29uc2VxdWVuY2VzIGluIG11bHRpdGhyZWFkZWQgYXBwbGljYXRpb25zLjwvcD48aDM+PGEgbmFtZT0iRGVidWdnaW5nIiBpZD0iRGVidWdnaW5nIj5EZWJ1Z2dpbmcgcm91dGluZXM8L2E+PC9oMz48cD5XaGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS13aXRoLW1lbS1kZWJ1ZyBmbGFnIChvZmYgYnkgZGVmYXVsdCksIGxpYnhtbDIgdXNlcworYSBzZXQgb2YgbWVtb3J5IGFsbG9jYXRpb24gZGVidWdnaW5nIHJvdXRpbmVzIGtlZXBpbmcgdHJhY2sgb2YgYWxsIGFsbG9jYXRlZAorYmxvY2tzIGFuZCB0aGUgbG9jYXRpb24gaW4gdGhlIGNvZGUgd2hlcmUgdGhlIHJvdXRpbmUgd2FzIGNhbGxlZC4gQSBjb3VwbGUgb2YKK290aGVyIGRlYnVnZ2luZyByb3V0aW5lcyBhbGxvdyB0byBkdW1wIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGluZm9zIHRvIGEgZmlsZQorb3IgY2FsbCBhIHNwZWNpZmljIHJvdXRpbmUgd2hlbiBhIGdpdmVuIGJsb2NrIG51bWJlciBpcyBhbGxvY2F0ZWQ6PC9wPjx1bD48bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNYWxsb2NMb2MoKTwvYT4KKyAgICA8YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbFJlYWxsb2NMb2MoKTwvYT4KKyAgICBhbmQgPGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL2h0bWwvbGlieG1sLXhtbG1lbW9yeS5odG1sIj54bWxNZW1TdHJkdXBMb2MoKTwvYT4KKyAgICBhcmUgdGhlIG1lbW9yeSBkZWJ1Z2dpbmcgcmVwbGFjZW1lbnQgYWxsb2NhdGlvbiByb3V0aW5lczwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8veG1sc29mdC5vcmcvaHRtbC9saWJ4bWwteG1sbWVtb3J5Lmh0bWwiPnhtbE1lbW9yeUR1bXAKKyAgICAoKTwvYT4gZHVtcHMgYWxsIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWxsb2NhdGVkIG1lbW9yeSBibG9jayBsZWZ0cworICAgIGluIHRoZSA8Y29kZT4ubWVtZHVtcDwvY29kZT4gZmlsZTwvbGk+Cis8L3VsPjxwPldoZW4gZGV2ZWxvcGluZyBsaWJ4bWwyIG1lbW9yeSBkZWJ1ZyBpcyBlbmFibGVkLCB0aGUgdGVzdHMgcHJvZ3JhbXMgY2FsbAoreG1sTWVtb3J5RHVtcCAoKSBhbmQgdGhlICJtYWtlIHRlc3QiIHJlZ3Jlc3Npb24gdGVzdHMgd2lsbCBjaGVjayBmb3IgYW55CittZW1vcnkgbGVhayBkdXJpbmcgdGhlIGZ1bGwgcmVncmVzc2lvbiB0ZXN0IHNlcXVlbmNlLCB0aGlzIGhlbHBzIGEgbG90CitlbnN1cmluZyB0aGF0IGxpYnhtbDIgIGRvZXMgbm90IGxlYWsgbWVtb3J5IGFuZCBidWxsZXQgcHJvb2YgbWVtb3J5CithbGxvY2F0aW9ucyB1c2UgKHNvbWUgbGliYyBpbXBsZW1lbnRhdGlvbnMgYXJlIGtub3duIHRvIGJlIGZhciB0b28gcGVybWlzc2l2ZQorcmVzdWx0aW5nIGluIG1ham9yIHBvcnRhYmlsaXR5IHByb2JsZW1zISkuPC9wPjxwPklmIHRoZSAubWVtZHVtcCByZXBvcnRzIGEgbGVhaywgaXQgZGlzcGxheXMgdGhlIGFsbG9jYXRpb24gZnVuY3Rpb24gYW5kCithbHNvIHRyaWVzIHRvIGdpdmUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGVudCBhbmQgc3RydWN0dXJlIG9mIHRoZQorYWxsb2NhdGVkIGJsb2NrcyBsZWZ0LiBUaGlzIGlzIHN1ZmZpY2llbnQgaW4gbW9zdCBjYXNlcyB0byBmaW5kIHRoZSBjdWxwcml0LAorYnV0IG5vdCBhbHdheXMuIEFzc3VtaW5nIHRoZSBhbGxvY2F0aW9uIHByb2JsZW0gaXMgcmVwcm9kdWNpYmxlLCBpdCBpcworcG9zc2libGUgdG8gZmluZCBtb3JlIGVhc2lseTo8L3A+PG9sPjxsaT53cml0ZSBkb3duIHRoZSBibG9jayBudW1iZXIgeHh4eCBub3QgYWxsb2NhdGVkPC9saT4KKyAgPGxpPmV4cG9ydCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgWE1MX01FTV9CUkVBS1BPSU5UPXh4eHggLCB0aGUgZWFzaWVzdAorICAgIHdoZW4gdXNpbmcgR0RCIGlzIHRvIHNpbXBseSBnaXZlIHRoZSBjb21tYW5kCisgICAgPHA+PGNvZGU+c2V0IGVudmlyb25tZW50IFhNTF9NRU1fQlJFQUtQT0lOVCB4eHh4PC9jb2RlPjwvcD4KKyAgICA8cD5iZWZvcmUgcnVubmluZyB0aGUgcHJvZ3JhbS48L3A+CisgIDwvbGk+CisgIDxsaT5ydW4gdGhlIHByb2dyYW0gdW5kZXIgYSBkZWJ1Z2dlciBhbmQgc2V0IGEgYnJlYWtwb2ludCBvbgorICAgIHhtbE1hbGxvY0JyZWFrcG9pbnQoKSBhIHNwZWNpZmljIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoaXMgcHJlY2lzZSBibG9jaworICAgIGlzIGFsbG9jYXRlZDwvbGk+CisgIDxsaT53aGVuIHRoZSBicmVha3BvaW50IGlzIHJlYWNoZWQgeW91IGNhbiB0aGVuIGRvIGEgZmluZSBhbmFseXNpcyBvZiB0aGUKKyAgICBhbGxvY2F0aW9uIGFuIHN0ZXAgIHRvIHNlZSB0aGUgY29uZGl0aW9uIHJlc3VsdGluZyBpbiB0aGUgbWlzc2luZworICAgIGRlYWxsb2NhdGlvbi48L2xpPgorPC9vbD48cD5JIHVzZWQgdG8gdXNlIGEgY29tbWVyY2lhbCB0b29sIHRvIGRlYnVnIGxpYnhtbDIgbWVtb3J5IHByb2JsZW1zIGJ1dCBhZnRlcgorbm90aWNpbmcgdGhhdCBpdCB3YXMgbm90IGRldGVjdGluZyBtZW1vcnkgbGVha3MgdGhhdCBzaW1wbGUgbWVjaGFuaXNtIHdhcwordXNlZCBhbmQgcHJvdmVkIGV4dHJlbWVseSBlZmZpY2llbnQgdW50aWwgbm93LiBMYXRlbHkgSSBoYXZlIGFsc28gdXNlZCA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLmtkZS5vcmcvfnNld2FyZGovIj52YWxncmluZDwvYT4gd2l0aCBxdWl0ZSBzb21lCitzdWNjZXNzLCBpdCBpcyB0aWVkIHRvIHRoZSBpMzg2IGFyY2hpdGVjdHVyZSBzaW5jZSBpdCB3b3JrcyBieSBlbXVsYXRpbmcgdGhlCitwcm9jZXNzb3IgYW5kIGluc3RydWN0aW9uIHNldCwgaXQgaXMgc2xvdyBidXQgIGV4dHJlbWVseSBlZmZpY2llbnQsIGkuZS4gaXQKK3Nwb3QgbWVtb3J5IHVzYWdlIGVycm9ycyBpbiBhIHZlcnkgcHJlY2lzZSB3YXkuPC9wPjxoMz48YSBuYW1lPSJHZW5lcmFsNCIgaWQ9IkdlbmVyYWw0Ij5HZW5lcmFsIG1lbW9yeSByZXF1aXJlbWVudHM8L2E+PC9oMz48cD5Ib3cgbXVjaCBsaWJ4bWwyIG1lbW9yeSByZXF1aXJlID8gSXQncyBoYXJkIHRvIHRlbGwgaW4gYXZlcmFnZSBpdCBkZXBlbmRzCitvZiBhIG51bWJlciBvZiB0aGluZ3M6PC9wPjx1bD48bGk+dGhlIHBhcnNlciBpdHNlbGYgc2hvdWxkIHdvcmsgIGluIGEgZml4ZWQgYW1vdW50IG9mIG1lbW9yeSwgZXhjZXB0IGZvcgorICAgIGluZm9ybWF0aW9uIG1haW50YWluZWQgYWJvdXQgdGhlIHN0YWNrcyBvZiBuYW1lcyBhbmQgIGVudGl0aWVzIGxvY2F0aW9ucy4KKyAgICBUaGUgSS9PIGFuZCBlbmNvZGluZyBoYW5kbGVycyB3aWxsIHByb2JhYmx5IGFjY291bnQgZm9yIGEgZmV3IEtCeXRlcy4KKyAgICBUaGlzIGlzIHRydWUgZm9yIGJvdGggdGhlIFhNTCBhbmQgSFRNTCBwYXJzZXIgKHRob3VnaCB0aGUgSFRNTCBwYXJzZXIKKyAgICBuZWVkIG1vcmUgc3RhdGUpLjwvbGk+CisgIDxsaT5JZiB5b3UgYXJlIGdlbmVyYXRpbmcgdGhlIERPTSB0cmVlIHRoZW4gbWVtb3J5IHJlcXVpcmVtZW50cyB3aWxsIGdyb3cKKyAgICBuZWFybHkgbGluZWFyIHdpdGggdGhlIHNpemUgb2YgdGhlIGRhdGEuIEluIGdlbmVyYWwgZm9yIGEgYmFsYW5jZWQKKyAgICB0ZXh0dWFsIGRvY3VtZW50IHRoZSBpbnRlcm5hbCBtZW1vcnkgcmVxdWlyZW1lbnQgaXMgYWJvdXQgNCB0aW1lcyB0aGUKKyAgICBzaXplIG9mIHRoZSBVVEY4IHNlcmlhbGl6YXRpb24gb2YgdGhpcyBkb2N1bWVudCAoZXhhbXBsZSB0aGUgWE1MLTEuMAorICAgIHJlY29tbWVuZGF0aW9uIGlzIGEgYml0IG1vcmUgb2YgMTUwS0J5dGVzIGFuZCB0YWtlcyA2NTBLQnl0ZXMgb2YgbWFpbgorICAgIG1lbW9yeSB3aGVuIHBhcnNlZCkuIFZhbGlkYXRpb24gd2lsbCBhZGQgYSBhbW91bnQgb2YgbWVtb3J5IHJlcXVpcmVkIGZvcgorICAgIG1haW50YWluaW5nIHRoZSBleHRlcm5hbCBEdGQgc3RhdGUgd2hpY2ggc2hvdWxkIGJlIGxpbmVhciB3aXRoIHRoZQorICAgIGNvbXBsZXhpdHkgb2YgdGhlIGNvbnRlbnQgbW9kZWwgZGVmaW5lZCBieSB0aGUgRHRkPC9saT4KKyAgPGxpPklmIHlvdSBuZWVkIHRvIHdvcmsgd2l0aCBmaXhlZCBtZW1vcnkgcmVxdWlyZW1lbnRzIG9yIGRvbid0IG5lZWQgdGhlCisgICAgZnVsbCBET00gdHJlZSB0aGVuIHVzaW5nIHRoZSA8YSBocmVmPSJ4bWxyZWFkZXIuaHRtbCI+eG1sUmVhZGVyCisgICAgaW50ZXJmYWNlPC9hPiBpcyBwcm9iYWJseSB0aGUgYmVzdCB3YXkgdG8gcHJvY2VlZCwgaXQgc3RpbGwgYWxsb3dzIHRvCisgICAgdmFsaWRhdGUgb3Igb3BlcmF0ZSBvbiBzdWJzZXQgb2YgdGhlIHRyZWUgaWYgbmVlZGVkLjwvbGk+CisgIDxsaT5JZiB5b3UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgYWR2YW5jZWQgZmVhdHVyZXMgb2YgbGlieG1sMiBsaWtlCisgICAgdmFsaWRhdGlvbiwgRE9NLCBYUGF0aCBvciBYUG9pbnRlciwgZG9uJ3QgdXNlIGVudGl0aWVzLCBuZWVkIHRvIHdvcmsgd2l0aAorICAgIGZpeGVkIG1lbW9yeSByZXF1aXJlbWVudHMsIGFuZCB0cnkgdG8gZ2V0IHRoZSBmYXN0ZXN0IHBhcnNpbmcgcG9zc2libGUKKyAgICB0aGVuIHRoZSBTQVggaW50ZXJmYWNlIHNob3VsZCBiZSB1c2VkLCBidXQgaXQgaGFzIGtub3duIHJlc3RyaWN0aW9ucy48L2xpPgorPC91bD48cD48L3A+PGgzPjxhIG5hbWU9IkNvbXBhY3RpbmciIGlkPSJDb21wYWN0aW5nIj5SZXR1cm5pbmcgbWVtb3J5IHRvIHRoZSBrZXJuZWw8L2E+PC9oMz48cD5Zb3UgbWF5IGVuY291bnRlciB0aGF0IHlvdXIgcHJvY2VzcyB1c2luZyBsaWJ4bWwyIGRvZXMgbm90IGhhdmUgYQorcmVkdWNlZCBtZW1vcnkgdXNhZ2UgYWx0aG91Z2ggeW91IGZyZWVkIHRoZSB0cmVlcy4gVGhpcyBpcyBiZWNhdXNlCitsaWJ4bWwyIGFsbG9jYXRlcyBtZW1vcnkgaW4gYSBudW1iZXIgb2Ygc21hbGwgY2h1bmtzLiBXaGVuIGZyZWVpbmcgb25lCitvZiB0aG9zZSBjaHVua3MsIHRoZSBPUyBtYXkgZGVjaWRlIHRoYXQgZ2l2aW5nIHRoaXMgbGl0dGxlIG1lbW9yeSBiYWNrCit0byB0aGUga2VybmVsIHdpbGwgY2F1c2UgdG9vIG11Y2ggb3ZlcmhlYWQgYW5kIGRlbGF5IHRoZSBvcGVyYXRpb24uIEFzCithbGwgY2h1bmtzIGFyZSB0aGlzIHNtYWxsLCB0aGV5IGdldCBhY3R1YWxseSBmcmVlZCBidXQgbm90IHJldHVybmVkIHRvCit0aGUga2VybmVsLiBPbiBzeXN0ZW1zIHVzaW5nIGdsaWJjLCB0aGVyZSBpcyBhIGZ1bmN0aW9uIGNhbGwKKyJtYWxsb2NfdHJpbSIgZnJvbSBtYWxsb2MuaCB3aGljaCBkb2VzIHRoaXMgbWlzc2luZyBvcGVyYXRpb24gKG5vdGUgdGhhdAoraXQgaXMgYWxsb3dlZCB0byBmYWlsKS4gVGh1cywgYWZ0ZXIgZnJlZWluZyB5b3VyIHRyZWUgeW91IG1heSBzaW1wbHkgdHJ5CisibWFsbG9jX3RyaW0oMCk7IiB0byByZWFsbHkgZ2V0IHRoZSBtZW1vcnkgYmFjay4gSWYgeW91ciBPUyBkb2VzIG5vdAorcHJvdmlkZSBtYWxsb2NfdHJpbSwgdHJ5IHNlYXJjaGluZyBmb3IgYSBzaW1pbGFyIGZ1bmN0aW9uLjwvcD48cD48L3A+PHA+PGEgaHJlZj0iYnVncy5odG1sIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2RvYy94bWxyZWFkZXIuaHRtbCBiL2xpYnhtbDItMi43LjcvZG9jL3htbHJlYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NjA4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy94bWxyZWFkZXIuaHRtbApAQCAtMCwwICsxLDQ3NSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIj4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPgorPCEtLQorVEQge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0JPRFkge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbX0KK0gxIHtmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CitIMiB7Zm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQorSDMge2ZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KK0E6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KKyAgPC9zdHlsZT4KKy0tPgorICA8dGl0bGU+TGlieG1sMiBYbWxUZXh0UmVhZGVyIEludGVyZmFjZSB0dXRvcmlhbDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IiNmZmZhY2QiIHRleHQ9IiMwMDAwMDAiPgorPGgxIGFsaWduPSJjZW50ZXIiPkxpYnhtbDIgWG1sVGV4dFJlYWRlciBJbnRlcmZhY2UgdHV0b3JpYWw8L2gxPgorCis8cD48L3A+CisKKzxwPlRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSB1c2Ugb2YgdGhlIFhtbFRleHRSZWFkZXIgc3RyZWFtaW5nIEFQSSBhZGRlZAordG8gbGlieG1sMiBpbiB2ZXJzaW9uIDIuNS4wIC4gVGhpcyBBUEkgaXMgY2xvc2VseSBtb2RlbGVkIGFmdGVyIHRoZSA8YQoraHJlZj0iaHR0cDovL2RvdGdudS5vcmcvcG5ldGxpYi1kb2MvU3lzdGVtL1htbC9YbWxUZXh0UmVhZGVyLmh0bWwiPlhtbFRleHRSZWFkZXI8L2E+CithbmQgPGEKK2hyZWY9Imh0dHA6Ly9kb3RnbnUub3JnL3BuZXRsaWItZG9jL1N5c3RlbS9YbWwvWG1sUmVhZGVyLmh0bWwiPlhtbFJlYWRlcjwvYT4KK2NsYXNzZXMgb2YgdGhlIEMjIGxhbmd1YWdlLjwvcD4KKworPHA+VGhpcyB0dXRvcmlhbCB3aWxsIHByZXNlbnQgdGhlIGtleSBwb2ludHMgb2YgdGhpcyBBUEksIGFuZCB3b3JraW5nCitleGFtcGxlcyB1c2luZyBib3RoIEMgYW5kIHRoZSBQeXRob24gYmluZGluZ3M6PC9wPgorCis8cD5UYWJsZSBvZiBjb250ZW50OjwvcD4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9IiNJbnRyb2R1Y3RpIj5JbnRyb2R1Y3Rpb246IHdoeSBhIG5ldyBBUEk8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNXYWxraW5nIj5XYWxraW5nIGEgc2ltcGxlIHRyZWU8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNFeHRyYWN0aW5nIj5FeHRyYWN0aW5nIGluZm9ybWF0aW9ucyBmb3IgdGhlIGN1cnJlbnQKKyAgbm9kZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0V4dHJhY3RpbmcxIj5FeHRyYWN0aW5nIGluZm9ybWF0aW9ucyBmb3IgdGhlCisgIGF0dHJpYnV0ZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNWYWxpZGF0aW5nIj5WYWxpZGF0aW5nIGEgZG9jdW1lbnQ8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNFbnRpdGllcyI+RW50aXRpZXMgc3Vic3RpdHV0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjTDExNDIiPlJlbGF4LU5HIFZhbGlkYXRpb248L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNNaXhpbmciPk1peGluZyB0aGUgcmVhZGVyIGFuZCB0cmVlIG9yIFhQYXRoCisgIG9wZXJhdGlvbnM8L2E+PC9saT4KKzwvdWw+CisKKzxwPjwvcD4KKworPGgyPjxhIG5hbWU9IkludHJvZHVjdGkiPkludHJvZHVjdGlvbjogd2h5IGEgbmV3IEFQSTwvYT48L2gyPgorCis8cD5MaWJ4bWwyIDxhIGhyZWY9Imh0dHA6Ly94bWxzb2Z0Lm9yZy9odG1sL2xpYnhtbC10cmVlLmh0bWwiPm1haW4gQVBJIGlzCit0cmVlIGJhc2VkPC9hPiwgd2hlcmUgdGhlIHBhcnNpbmcgb3BlcmF0aW9uIHJlc3VsdHMgaW4gYSBkb2N1bWVudCBsb2FkZWQKK2NvbXBsZXRlbHkgaW4gbWVtb3J5LCBhbmQgZXhwb3NlIGl0IGFzIGEgdHJlZSBvZiBub2RlcyBhbGwgYXZhaWxibGUgYXQgdGhlCitzYW1lIHRpbWUuIFRoaXMgaXMgdmVyeSBzaW1wbGUgYW5kIHF1aXRlIHBvd2VyZnVsLCBidXQgaGFzIHRoZSBtYWpvcgorbGltaXRhdGlvbiB0aGF0IHRoZSBzaXplIG9mIHRoZSBkb2N1bWVudCB0aGF0IGNhbiBiZSBoYW1kbGVkIGlzIGxpbWl0ZWQgYnkKK3RoZSBzaXplIG9mIHRoZSBtZW1vcnkgYXZhaWxhYmxlLiBMaWJ4bWwyIGFsc28gcHJvdmlkZSBhIDxhCitocmVmPSJodHRwOi8vd3d3LnNheHByb2plY3Qub3JnLyI+U0FYPC9hPiBiYXNlZCBBUEksIGJ1dCB0aGF0IHZlcnNpb24gd2FzCitkZXNpZ25lZCB1cG9uIG9uZSBvZiB0aGUgZWFybHkgPGEKK2hyZWY9Imh0dHA6Ly93d3cuamNsYXJrLmNvbS94bWwvZXhwYXQuaHRtbCI+ZXhwYXQ8L2E+IHZlcnNpb24gb2YgU0FYLCBTQVggaXMKK2Fsc28gbm90IGZvcm1hbGx5IGRlZmluZWQgZm9yIEMuIFNBWCBiYXNpY2FsbHkgd29yayBieSByZWdpc3RlcmluZyBjYWxsYmFja3MKK3doaWNoIGFyZSBjYWxsZWQgZGlyZWN0bHkgYnkgdGhlIHBhcnNlciBhcyBpdCBwcm9ncmVzc2VzIHRocm91Z2ggdGhlIGRvY3VtZW50CitzdHJlYW1zLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoaXMgcHJvZ3JhbW1pbmcgbW9kZWwgaXMgcmVsYXRpdmVseSBjb21wbGV4LAorbm90IHdlbGwgc3RhbmRhcmRpemVkLCBjYW5ub3QgcHJvdmlkZSB2YWxpZGF0aW9uIGRpcmVjdGx5LCBtYWtlcyBlbnRpdHksCituYW1lc3BhY2UgYW5kIGJhc2UgcHJvY2Vzc2luZyByZWxhdGl2ZWx5IGhhcmQuPC9wPgorCis8cD5UaGUgPGEKK2hyZWY9Imh0dHA6Ly9kb3RnbnUub3JnL3BuZXRsaWItZG9jL1N5c3RlbS9YbWwvWG1sVGV4dFJlYWRlci5odG1sIj5YbWxUZXh0UmVhZGVyCitBUEkgZnJvbSBDIzwvYT4gcHJvdmlkZXMgYSBmYXIgc2ltcGxlciBwcm9ncmFtbWluZyBtb2RlbC4gVGhlIEFQSSBhY3RzIGFzIGEKK2N1cnNvciBnb2luZyBmb3J3YXJkIG9uIHRoZSBkb2N1bWVudCBzdHJlYW0gYW5kIHN0b3BwaW5nIGF0IGVhY2ggbm9kZSBpbiB0aGUKK3dheS4gVGhlIHVzZXIncyBjb2RlIGtlZXBzIGNvbnRyb2wgb2YgdGhlIHByb2dyZXNzIGFuZCBzaW1wbHkgY2FsbHMgYQorUmVhZCgpIGZ1bmN0aW9uIHJlcGVhdGVkbHkgdG8gcHJvZ3Jlc3MgdG8gZWFjaCBub2RlIGluIHNlcXVlbmNlIGluIGRvY3VtZW50CitvcmRlci4gVGhlcmUgaXMgZGlyZWN0IHN1cHBvcnQgZm9yIG5hbWVzcGFjZXMsIHhtbDpiYXNlLCBlbnRpdHkgaGFuZGxpbmcgYW5kCithZGRpbmcgRFREIHZhbGlkYXRpb24gb24gdG9wIG9mIGl0IHdhcyByZWxhdGl2ZWx5IHNpbXBsZS4gVGhpcyBBUEkgaXMgcmVhbGx5CitjbG9zZSB0byB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTItQ29yZS8iPkRPTSBDb3JlCitzcGVjaWZpY2F0aW9uPC9hPiBUaGlzIHByb3ZpZGVzIGEgZmFyIG1vcmUgc3RhbmRhcmQsIGVhc3kgdG8gdXNlIGFuZCBwb3dlcmZ1bAorQVBJIHRoYW4gdGhlIGV4aXN0aW5nIFNBWC4gTW9yZW92ZXIgaW50ZWdyYXRpbmcgZXh0ZW5zaW9uIGZlYXR1cmVzIGJhc2VkIG9uCit0aGUgdHJlZSBzZWVtcyByZWxhdGl2ZWx5IGVhc3kuPC9wPgorCis8cD5JbiBhIG51dHNoZWxsIHRoZSBYbWxUZXh0UmVhZGVyIEFQSSBwcm92aWRlcyBhIHNpbXBsZXIsIG1vcmUgc3RhbmRhcmQgYW5kCittb3JlIGV4dGVuc2libGUgaW50ZXJmYWNlIHRvIGhhbmRsZSBsYXJnZSBkb2N1bWVudHMgdGhhbiB0aGUgZXhpc3RpbmcgU0FYCit2ZXJzaW9uLjwvcD4KKworPGgyPjxhIG5hbWU9IldhbGtpbmciPldhbGtpbmcgYSBzaW1wbGUgdHJlZTwvYT48L2gyPgorCis8cD5CYXNpY2FsbHkgdGhlIFhtbFRleHRSZWFkZXIgQVBJIGlzIGEgZm9yd2FyZCBvbmx5IHRyZWUgd2Fsa2luZyBpbnRlcmZhY2UuCitUaGUgYmFzaWMgc3RlcHMgYXJlOjwvcD4KKzxvbD4KKyAgPGxpPnByZXBhcmUgYSByZWFkZXIgY29udGV4dCBvcGVyYXRpbmcgb24gc29tZSBpbnB1dDwvbGk+CisgIDxsaT5ydW4gYSBsb29wIGl0ZXJhdGluZyBvdmVyIGFsbCBub2RlcyBpbiB0aGUgZG9jdW1lbnQ8L2xpPgorICA8bGk+ZnJlZSB1cCB0aGUgcmVhZGVyIGNvbnRleHQ8L2xpPgorPC9vbD4KKworPHA+SGVyZSBpcyBhIGJhc2ljIEMgc2FtcGxlIGRvaW5nIHRoaXM6PC9wPgorPHByZT4jaW5jbHVkZSAmbHQ7bGlieG1sL3htbHJlYWRlci5oJmd0OworCit2b2lkIHByb2Nlc3NOb2RlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgLyogaGFuZGxpbmcgb2YgYSBub2RlIGluIHRoZSB0cmVlICovCit9CisKK2ludCBzdHJlYW1GaWxlKGNoYXIgKmZpbGVuYW1lKSB7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgaW50IHJldDsKKworICAgIHJlYWRlciA9IHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZShmaWxlbmFtZSk7CisgICAgaWYgKHJlYWRlciAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcik7CisgICAgICAgIHdoaWxlIChyZXQgPT0gMSkgeworICAgICAgICAgICAgcHJvY2Vzc05vZGUocmVhZGVyKTsKKyAgICAgICAgICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcik7CisgICAgICAgIH0KKyAgICAgICAgeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBwcmludGYoIiVzIDogZmFpbGVkIHRvIHBhcnNlXG4iLCBmaWxlbmFtZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBwcmludGYoIlVuYWJsZSB0byBvcGVuICVzXG4iLCBmaWxlbmFtZSk7CisgICAgfQorfTwvcHJlPgorCis8cD5BIGZldyB0aGluZ3MgdG8gbm90aWNlOjwvcD4KKzx1bD4KKyAgPGxpPnRoZSBpbmNsdWRlIGZpbGUgbmVlZGVkIDogPGNvZGU+bGlieG1sL3htbHJlYWRlci5oPC9jb2RlPjwvbGk+CisgIDxsaT50aGUgY3JlYXRpb24gb2YgdGhlIHJlYWRlciB1c2luZyBhIGZpbGVuYW1lPC9saT4KKyAgPGxpPnRoZSByZXBlYXRlZCBjYWxsIHRvIHhtbFRleHRSZWFkZXJSZWFkKCkgYW5kIGhvdyBhbnkgcmV0dXJuIHZhbHVlCisgICAgZGlmZmVyZW50IGZyb20gMSBzaG91bGQgc3RvcCB0aGUgbG9vcDwvbGk+CisgIDxsaT50aGF0IGEgbmVnYXRpdmUgcmV0dXJuIG1lYW5zIGEgcGFyc2luZyBlcnJvcjwvbGk+CisgIDxsaT5ob3cgeG1sRnJlZVRleHRSZWFkZXIoKSBzaG91bGQgYmUgdXNlZCB0byBmcmVlIHVwIHRoZSByZXNvdXJjZXMgdXNlZCBieQorICAgIHRoZSByZWFkZXIuPC9saT4KKzwvdWw+CisKKzxwPkhlcmUgaXMgc2ltaWxhciBjb2RlIGluIHB5dGhvbiBmb3IgZXhhY3RseSB0aGUgc2FtZSBwcm9jZXNzaW5nOjwvcD4KKzxwcmU+aW1wb3J0IGxpYnhtbDIKKworZGVmIHByb2Nlc3NOb2RlKHJlYWRlcik6CisgICAgcGFzcworCitkZWYgc3RyZWFtRmlsZShmaWxlbmFtZSk6CisgICAgdHJ5OgorICAgICAgICByZWFkZXIgPSBsaWJ4bWwyLm5ld1RleHRSZWFkZXJGaWxlbmFtZShmaWxlbmFtZSkKKyAgICBleGNlcHQ6CisgICAgICAgIHByaW50ICJ1bmFibGUgdG8gb3BlbiAlcyIgJSAoZmlsZW5hbWUpCisgICAgICAgIHJldHVybgorCisgICAgcmV0ID0gcmVhZGVyLlJlYWQoKQorICAgIHdoaWxlIHJldCA9PSAxOgorICAgICAgICBwcm9jZXNzTm9kZShyZWFkZXIpCisgICAgICAgIHJldCA9IHJlYWRlci5SZWFkKCkKKworICAgIGlmIHJldCAhPSAwOgorICAgICAgICBwcmludCAiJXMgOiBmYWlsZWQgdG8gcGFyc2UiICUgKGZpbGVuYW1lKTwvcHJlPgorCis8cD5UaGUgb25seSB0aGluZ3Mgd29ydGggYWRkaW5nIGFyZSB0aGF0IHRoZSA8YQoraHJlZj0iaHR0cDovL2RvdGdudS5vcmcvcG5ldGxpYi1kb2MvU3lzdGVtL1htbC9YbWxUZXh0UmVhZGVyLmh0bWwiPnhtbFRleHRSZWFkZXIKK2lzIGFic3RyYWN0ZWQgYXMgYSBjbGFzcyBsaWtlIGluIEMjPC9hPiB3aXRoIHRoZSBzYW1lIG1ldGhvZCBuYW1lcyAoYnV0IHRoZQorcHJvcGVydGllcyBhcmUgY3VycmVudGx5IGFjY2Vzc2VkIHdpdGggbWV0aG9kcykgYW5kIHRoYXQgb25lIGRvZXNuJ3QgbmVlZCB0bworZnJlZSB0aGUgcmVhZGVyIGF0IHRoZSBlbmQgb2YgdGhlIHByb2Nlc3NpbmcuIEl0IHdpbGwgZ2V0IGdhcmJhZ2UgY29sbGVjdGVkCitvbmNlIGFsbCByZWZlcmVuY2VzIGhhdmUgZGlzYXBlYXJlZC48L3A+CisKKzxoMj48YSBuYW1lPSJFeHRyYWN0aW5nIj5FeHRyYWN0aW5nIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCBub2RlPC9hPjwvaDI+CisKKzxwPlNvIGZhciB0aGUgZXhhbXBsZSBjb2RlIGRpZCBub3QgaW5kaWNhdGUgaG93IGluZm9ybWF0aW9uIHdhcyBleHRyYWN0ZWQKK2Zyb20gdGhlIHJlYWRlci4gSXQgd2FzIGFic3RyYXRlZCBhcyBhIGNhbGwgdG8gdGhlIHByb2Nlc3NOb2RlKCkgcm91dGluZSwKK3dpdGggdGhlIHJlYWRlciBhcyB0aGUgYXJndW1lbnQuIEF0IGVhY2ggaW52b2NhdGlvbiwgdGhlIHBhcnNlciBpcyBzdG9wcGVkIG9uCithIGdpdmVuIG5vZGUgYW5kIHRoZSByZWFkZXIgY2FuIGJlIHVzZWQgdG8gcXVlcnkgdGhvc2Ugbm9kZSBwcm9wZXJ0aWVzLiBFYWNoCis8ZW0+UHJvcGVydHk8L2VtPiBpcyBhdmFpbGFibGUgYXQgdGhlIEMgbGV2ZWwgYXMgYSBmdW5jdGlvbiB0YWtpbmcgYSBzaW5nbGUKK3htbFRleHRSZWFkZXJQdHIgYXJndW1lbnQgd2hvc2UgbmFtZSBpcworPGNvZGU+eG1sVGV4dFJlYWRlcjwvY29kZT48ZW0+UHJvcGVydHk8L2VtPiAsIGlmIHRoZSByZXR1cm4gdHlwZSBpcyBhbgorPGNvZGU+eG1sQ2hhciAqPC9jb2RlPiBzdHJpbmcgdGhlbiBpdCBtdXN0IGJlIGRlYWxsb2NhdGVkIHdpdGgKKzxjb2RlPnhtbEZyZWUoKTwvY29kZT4gdG8gYXZvaWQgbGVha3MuIEZvciB0aGUgUHl0aG9uIGludGVyZmFjZSwgdGhlcmUgaXMgYQorPGVtPlByb3BlcnR5PC9lbT4gbWV0aG9kIHRvIHRoZSByZWFkZXIgY2xhc3MgdGhhdCBjYW4gYmUgY2FsbGVkIG9uIHRoZQoraW5zdGFuY2UuIFRoZSBsaXN0IG9mIHRoZSBwcm9wZXJ0aWVzIGlzIGJhc2VkIG9uIHRoZSA8YQoraHJlZj0iaHR0cDovL2RvdGdudS5vcmcvcG5ldGxpYi1kb2MvU3lzdGVtL1htbC9YbWxUZXh0UmVhZGVyLmh0bWwiPkMjCitYbWxUZXh0UmVhZGVyIGNsYXNzPC9hPiBzZXQgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kczo8L3A+Cis8dWw+CisgIDxsaT48ZW0+Tm9kZVR5cGU8L2VtPjogVGhlIG5vZGUgdHlwZSwgMSBmb3Igc3RhcnQgZWxlbWVudCwgMTUgZm9yIGVuZCBvZgorICAgIGVsZW1lbnQsIDIgZm9yIGF0dHJpYnV0ZXMsIDMgZm9yIHRleHQgbm9kZXMsIDQgZm9yIENEYXRhIHNlY3Rpb25zLCA1IGZvcgorICAgIGVudGl0eSByZWZlcmVuY2VzLCA2IGZvciBlbnRpdHkgZGVjbGFyYXRpb25zLCA3IGZvciBQSXMsIDggZm9yIGNvbW1lbnRzLAorICAgIDkgZm9yIHRoZSBkb2N1bWVudCBub2RlcywgMTAgZm9yIERURC9Eb2N0eXBlIG5vZGVzLCAxMSBmb3IgZG9jdW1lbnQKKyAgICBmcmFnbWVudCBhbmQgMTIgZm9yIG5vdGF0aW9uIG5vZGVzLjwvbGk+CisgIDxsaT48ZW0+TmFtZTwvZW0+OiB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLW5hbWVzLyNucy1xdWFsbmFtZXMiPnF1YWxpZmllZAorICAgIG5hbWU8L2E+IG9mIHRoZSBub2RlLCBlcXVhbCB0byAoPGVtPlByZWZpeDwvZW0+Oik8ZW0+TG9jYWxOYW1lPC9lbT4uPC9saT4KKyAgPGxpPjxlbT5Mb2NhbE5hbWU8L2VtPjogdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy8jTlQtTG9jYWxQYXJ0Ij5sb2NhbCBuYW1lPC9hPiBvZgorICAgIHRoZSBub2RlLjwvbGk+CisgIDxsaT48ZW0+UHJlZml4PC9lbT46IGEgIHNob3J0aGFuZCByZWZlcmVuY2UgdG8gdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy8iPm5hbWVzcGFjZTwvYT4gYXNzb2NpYXRlZCB3aXRoCisgICAgdGhlIG5vZGUuPC9saT4KKyAgPGxpPjxlbT5OYW1lc3BhY2VVcmk8L2VtPjogdGhlIFVSSSBkZWZpbmluZyB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLW5hbWVzLyI+bmFtZXNwYWNlPC9hPiBhc3NvY2lhdGVkIHdpdGgKKyAgICB0aGUgbm9kZS48L2xpPgorICA8bGk+PGVtPkJhc2VVcmk6PC9lbT4gdGhlIGJhc2UgVVJJIG9mIHRoZSBub2RlLiBTZWUgdGhlIDxhCisgICAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sYmFzZS8iPlhNTCBCYXNlIFczQyBzcGVjaWZpY2F0aW9uPC9hPi48L2xpPgorICA8bGk+PGVtPkRlcHRoOjwvZW0+IHRoZSBkZXB0aCBvZiB0aGUgbm9kZSBpbiB0aGUgdHJlZSwgc3RhcnRzIGF0IDAgZm9yIHRoZQorICAgIHJvb3Qgbm9kZS48L2xpPgorICA8bGk+PGVtPkhhc0F0dHJpYnV0ZXM8L2VtPjogd2hldGhlciB0aGUgbm9kZSBoYXMgYXR0cmlidXRlcy48L2xpPgorICA8bGk+PGVtPkhhc1ZhbHVlPC9lbT46IHdoZXRoZXIgdGhlIG5vZGUgY2FuIGhhdmUgYSB0ZXh0IHZhbHVlLjwvbGk+CisgIDxsaT48ZW0+VmFsdWU8L2VtPjogcHJvdmlkZXMgdGhlIHRleHQgdmFsdWUgb2YgdGhlIG5vZGUgaWYgcHJlc2VudC48L2xpPgorICA8bGk+PGVtPklzRGVmYXVsdDwvZW0+OiB3aGV0aGVyIGFuIEF0dHJpYnV0ZSAgbm9kZSB3YXMgZ2VuZXJhdGVkIGZyb20gdGhlCisgICAgZGVmYXVsdCB2YWx1ZSBkZWZpbmVkIGluIHRoZSBEVEQgb3Igc2NoZW1hICg8ZW0+dW5zdXBwb3J0ZWQKKyAgeWV0PC9lbT4pLjwvbGk+CisgIDxsaT48ZW0+WG1sTGFuZzwvZW0+OiB0aGUgPGEKKyAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI3NlYy1sYW5nLXRhZyI+eG1sOmxhbmc8L2E+IHNjb3BlCisgICAgd2l0aGluIHdoaWNoIHRoZSBub2RlIHJlc2lkZXMuPC9saT4KKyAgPGxpPjxlbT5Jc0VtcHR5RWxlbWVudDwvZW0+OiBjaGVjayBpZiB0aGUgY3VycmVudCBub2RlIGlzIGVtcHR5LCB0aGlzIGlzIGEKKyAgICBiaXQgYml6YXJyZSBpbiB0aGUgc2Vuc2UgdGhhdCA8Y29kZT4mbHQ7YS8mZ3Q7PC9jb2RlPiB3aWxsIGJlIGNvbnNpZGVyZWQKKyAgICBlbXB0eSB3aGlsZSA8Y29kZT4mbHQ7YSZndDsmbHQ7L2EmZ3Q7PC9jb2RlPiB3aWxsIG5vdC48L2xpPgorICA8bGk+PGVtPkF0dHJpYnV0ZUNvdW50PC9lbT46IHByb3ZpZGVzIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBvZiB0aGUKKyAgICBjdXJyZW50IG5vZGUuPC9saT4KKzwvdWw+CisKKzxwPkxldCdzIGxvb2sgZmlyc3QgYXQgYSBzbWFsbCBleGFtcGxlIHRvIGdldCB0aGlzIGluIHByYWN0aWNlIGJ5IHJlZGVmaW5pbmcKK3RoZSBwcm9jZXNzTm9kZSgpIGZ1bmN0aW9uIGluIHRoZSBQeXRob24gZXhhbXBsZTo8L3A+Cis8cHJlPmRlZiBwcm9jZXNzTm9kZShyZWFkZXIpOgorICAgIHByaW50ICIlZCAlZCAlcyAlZCIgJSAocmVhZGVyLkRlcHRoKCksIHJlYWRlci5Ob2RlVHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLk5hbWUoKSwgcmVhZGVyLklzRW1wdHlFbGVtZW50KCkpPC9wcmU+CisKKzxwPmFuZCBsb29rIGF0IHRoZSByZXN1bHQgb2YgY2FsbGluZyBzdHJlYW1GaWxlKCJ0c3QueG1sIikgZm9yIHZhcmlvdXMKK2NvbnRlbnQgb2YgdGhlIFhNTCB0ZXN0IGZpbGUuPC9wPgorCis8cD5Gb3IgdGhlIG1pbmltYWwgZG9jdW1lbnQgIjxjb2RlPiZsdDtkb2MvJmd0OzwvY29kZT4iIHdlIGdldDo8L3A+Cis8cHJlPjAgMSBkb2MgMTwvcHJlPgorCis8cD5Pbmx5IG9uZSBub2RlIGlzIGZvdW5kLCBpdHMgZGVwdGggaXMgMCwgdHlwZSAxIGluZGljYXRlIGFuIGVsZW1lbnQgc3RhcnQsCitvZiBuYW1lICJkb2MiIGFuZCBpdCBpcyBlbXB0eS4gVHJ5aW5nIG5vdyB3aXRoCisiPGNvZGU+Jmx0O2RvYyZndDsmbHQ7L2RvYyZndDs8L2NvZGU+IiBpbnN0ZWFkIGxlYWRzIHRvOjwvcD4KKzxwcmU+MCAxIGRvYyAwCiswIDE1IGRvYyAwPC9wcmU+CisKKzxwPlRoZSBkb2N1bWVudCByb290IG5vZGUgaXMgbm90IGZsYWdnZWQgYXMgZW1wdHkgYW55bW9yZSBhbmQgYm90aCBhIHN0YXJ0CithbmQgYW4gZW5kIG9mIGVsZW1lbnQgYXJlIGRldGVjdGVkLiBUaGUgZm9sbG93aW5nIGRvY3VtZW50IHNob3dzIGhvdworY2hhcmFjdGVyIGRhdGEgYXJlIHJlcG9ydGVkOjwvcD4KKzxwcmU+Jmx0O2RvYyZndDsmbHQ7YS8mZ3Q7Jmx0O2ImZ3Q7c29tZSB0ZXh0Jmx0Oy9iJmd0OworJmx0O2MvJmd0OyZsdDsvZG9jJmd0OzwvcHJlPgorCis8cD5XZSBtb2RpZnlpbmcgdGhlIHByb2Nlc3NOb2RlKCkgZnVuY3Rpb24gdG8gYWxzbyByZXBvcnQgdGhlIG5vZGUgVmFsdWU6PC9wPgorPHByZT5kZWYgcHJvY2Vzc05vZGUocmVhZGVyKToKKyAgICBwcmludCAiJWQgJWQgJXMgJWQgJXMiICUgKHJlYWRlci5EZXB0aCgpLCByZWFkZXIuTm9kZVR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5OYW1lKCksIHJlYWRlci5Jc0VtcHR5RWxlbWVudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLlZhbHVlKCkpPC9wcmU+CisKKzxwPlRoZSByZXN1bHQgb2YgdGhlIHRlc3QgaXM6PC9wPgorPHByZT4wIDEgZG9jIDAgTm9uZQorMSAxIGEgMSBOb25lCisxIDEgYiAwIE5vbmUKKzIgMyAjdGV4dCAwIHNvbWUgdGV4dAorMSAxNSBiIDAgTm9uZQorMSAzICN0ZXh0IDAKKworMSAxIGMgMSBOb25lCiswIDE1IGRvYyAwIE5vbmU8L3ByZT4KKworPHA+VGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB0byBub3RlOjwvcD4KKzx1bD4KKyAgPGxpPnRoZSBpbmNyZWFzZSBvZiB0aGUgZGVwdGggdmFsdWUgKGZpcnN0IHJvdykgYXMgY2hpbGRyZW4gbm9kZXMgYXJlCisgICAgZXhwbG9yZWQ8L2xpPgorICA8bGk+dGhlIHRleHQgbm9kZSBjaGlsZCBvZiB0aGUgYiBlbGVtZW50LCBvZiB0eXBlIDMgYW5kIGl0cyBjb250ZW50PC9saT4KKyAgPGxpPnRoZSB0ZXh0IG5vZGUgY29udGFpbmluZyB0aGUgbGluZSByZXR1cm4gYmV0d2VlbiBlbGVtZW50cyBiIGFuZCBjPC9saT4KKyAgPGxpPnRoYXQgZWxlbWVudHMgaGF2ZSB0aGUgVmFsdWUgTm9uZSAob3IgTlVMTCBpbiBDKTwvbGk+Cis8L3VsPgorCis8cD5UaGUgZXF1aXZhbGVudCByb3V0aW5lIGZvciA8Y29kZT5wcm9jZXNzTm9kZSgpPC9jb2RlPiBhcyB1c2VkIGJ5Cis8Y29kZT54bWxsaW50IC0tc3RyZWFtIC0tZGVidWc8L2NvZGU+IGlzIHRoZSBmb2xsb3dpbmcgYW5kIGNhbiBiZSBmb3VuZCBpbgordGhlIHhtbGxpbnQuYyBtb2R1bGUgaW4gdGhlIHNvdXJjZSBkaXN0cmlidXRpb246PC9wPgorPHByZT5zdGF0aWMgdm9pZCBwcm9jZXNzTm9kZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbENoYXIgKm5hbWUsICp2YWx1ZTsKKworICAgIG5hbWUgPSB4bWxUZXh0UmVhZGVyTmFtZShyZWFkZXIpOworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIG5hbWUgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIi0tIik7CisgICAgdmFsdWUgPSB4bWxUZXh0UmVhZGVyVmFsdWUocmVhZGVyKTsKKworICAgIHByaW50ZigiJWQgJWQgJXMgJWQiLAorICAgICAgICAgICAgeG1sVGV4dFJlYWRlckRlcHRoKHJlYWRlciksCisgICAgICAgICAgICB4bWxUZXh0UmVhZGVyTm9kZVR5cGUocmVhZGVyKSwKKyAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICB4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQocmVhZGVyKSk7CisgICAgeG1sRnJlZShuYW1lKTsKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgcHJpbnRmKCJcbiIpOworICAgIGVsc2UgeworICAgICAgICBwcmludGYoIiAlc1xuIiwgdmFsdWUpOworICAgICAgICB4bWxGcmVlKHZhbHVlKTsKKyAgICB9Cit9PC9wcmU+CisKKzxoMj48YSBuYW1lPSJFeHRyYWN0aW5nMSI+RXh0cmFjdGluZyBpbmZvcm1hdGlvbiBmb3IgdGhlIGF0dHJpYnV0ZXM8L2E+PC9oMj4KKworPHA+VGhlIHByZXZpb3VzIGV4YW1wbGVzIGRvbid0IGluZGljYXRlIGhvdyBhdHRyaWJ1dGVzIGFyZSBwcm9jZXNzZWQuIFRoZQorc2ltcGxlIHRlc3QgIjxjb2RlPiZsdDtkb2MgYT0iYiIvJmd0OzwvY29kZT4iIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcKK3Jlc3VsdDo8L3A+Cis8cHJlPjAgMSBkb2MgMSBOb25lPC9wcmU+CisKKzxwPlRoaXMgcHJvdmVzIHRoYXQgYXR0cmlidXRlIG5vZGVzIGFyZSBub3QgdHJhdmVyc2VkIGJ5IGRlZmF1bHQuIFRoZQorPGVtPkhhc0F0dHJpYnV0ZXM8L2VtPiBwcm9wZXJ0eSBhbGxvdyB0byBkZXRlY3QgdGhlaXIgcHJlc2VuY2UuIFRvIGNoZWNrCit0aGVpciBjb250ZW50IHRoZSBBUEkgaGFzIHNwZWNpYWwgaW5zdHJ1Y3Rpb25zLiBCYXNpY2FsbHkgdHdvIGtpbmRzIG9mIG9wZXJhdGlvbnMKK2FyZSBwb3NzaWJsZTo8L3A+Cis8b2w+CisgIDxsaT50byBtb3ZlIHRoZSByZWFkZXIgdG8gdGhlIGF0dHJpYnV0ZSBub2RlcyBvZiB0aGUgY3VycmVudCBlbGVtZW50LCBpbgorICAgIHRoYXQgY2FzZSB0aGUgY3Vyc29yIGlzIHBvc2l0aW9ubmVkIG9uIHRoZSBhdHRyaWJ1dGUgbm9kZTwvbGk+CisgIDxsaT50byBkaXJlY3RseSBxdWVyeSB0aGUgZWxlbWVudCBub2RlIGZvciB0aGUgYXR0cmlidXRlIHZhbHVlPC9saT4KKzwvb2w+CisKKzxwPkluIGJvdGggY2FzZSB0aGUgYXR0cmlidXRlIGNhbiBiZSBkZXNpZ25lZCBlaXRoZXIgYnkgaXRzIHBvc2l0aW9uIGluIHRoZQorbGlzdCBvZiBhdHRyaWJ1dGUgKDxlbT5Nb3ZlVG9BdHRyaWJ1dGVObzwvZW0+IG9yIDxlbT5HZXRBdHRyaWJ1dGVObzwvZW0+KSBvcgorYnkgdGhlaXIgbmFtZSAoYW5kIG5hbWVzcGFjZSk6PC9wPgorPHVsPgorICA8bGk+PGVtPkdldEF0dHJpYnV0ZU5vPC9lbT4obm8pOiBwcm92aWRlcyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSB3aXRoCisgICAgdGhlIHNwZWNpZmllZCBpbmRleCBubyByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50LjwvbGk+CisgIDxsaT48ZW0+R2V0QXR0cmlidXRlPC9lbT4obmFtZSk6IHByb3ZpZGVzIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlIHdpdGgKKyAgICB0aGUgc3BlY2lmaWVkIHF1YWxpZmllZCBuYW1lLjwvbGk+CisgIDxsaT5HZXRBdHRyaWJ1dGVOcyhsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSk6IHByb3ZpZGVzIHRoZSB2YWx1ZSBvZiB0aGUKKyAgICBhdHRyaWJ1dGUgd2l0aCB0aGUgc3BlY2lmaWVkIGxvY2FsIG5hbWUgYW5kIG5hbWVzcGFjZSBVUkkuPC9saT4KKyAgPGxpPjxlbT5Nb3ZlVG9BdHRyaWJ1dGVObzwvZW0+KG5vKTogbW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50CisgICAgaW5zdGFuY2UgdG8gdGhlIGF0dHJpYnV0ZSB3aXRoIHRoZSBzcGVjaWZpZWQgaW5kZXggcmVsYXRpdmUgdG8gdGhlCisgICAgY29udGFpbmluZyBlbGVtZW50LjwvbGk+CisgIDxsaT48ZW0+TW92ZVRvQXR0cmlidXRlPC9lbT4obmFtZSk6IG1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudAorICAgIGluc3RhbmNlIHRvIHRoZSBhdHRyaWJ1dGUgd2l0aCB0aGUgc3BlY2lmaWVkIHF1YWxpZmllZCBuYW1lLjwvbGk+CisgIDxsaT48ZW0+TW92ZVRvQXR0cmlidXRlTnM8L2VtPihsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSk6IG1vdmVzIHRoZSBwb3NpdGlvbgorICAgIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBhdHRyaWJ1dGUgd2l0aCB0aGUgc3BlY2lmaWVkIGxvY2FsIG5hbWUKKyAgICBhbmQgbmFtZXNwYWNlIFVSSS48L2xpPgorICA8bGk+PGVtPk1vdmVUb0ZpcnN0QXR0cmlidXRlPC9lbT46IG1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudAorICAgIGluc3RhbmNlIHRvIHRoZSBmaXJzdCBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IG5vZGUuPC9saT4KKyAgPGxpPjxlbT5Nb3ZlVG9OZXh0QXR0cmlidXRlPC9lbT46IG1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudAorICAgIGluc3RhbmNlIHRvIHRoZSBuZXh0IGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbm9kZS48L2xpPgorICA8bGk+PGVtPk1vdmVUb0VsZW1lbnQ8L2VtPjogbW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvCisgICAgdGhlIG5vZGUgdGhhdCBjb250YWlucyB0aGUgY3VycmVudCBBdHRyaWJ1dGUgIG5vZGUuPC9saT4KKzwvdWw+CisKKzxwPkFmdGVyIG1vZGlmeWluZyB0aGUgcHJvY2Vzc05vZGUoKSBmdW5jdGlvbiB0byBzaG93IGF0dHJpYnV0ZXM6PC9wPgorPHByZT5kZWYgcHJvY2Vzc05vZGUocmVhZGVyKToKKyAgICBwcmludCAiJWQgJWQgJXMgJWQgJXMiICUgKHJlYWRlci5EZXB0aCgpLCByZWFkZXIuTm9kZVR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5OYW1lKCksIHJlYWRlci5Jc0VtcHR5RWxlbWVudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLlZhbHVlKCkpCisgICAgaWYgcmVhZGVyLk5vZGVUeXBlKCkgPT0gMTogIyBFbGVtZW50CisgICAgICAgIHdoaWxlIHJlYWRlci5Nb3ZlVG9OZXh0QXR0cmlidXRlKCk6CisgICAgICAgICAgICBwcmludCAiLS0gJWQgJWQgKCVzKSBbJXNdIiAlIChyZWFkZXIuRGVwdGgoKSwgcmVhZGVyLk5vZGVUeXBlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuTmFtZSgpLHJlYWRlci5WYWx1ZSgpKTwvcHJlPgorCis8cD5UaGUgb3V0cHV0IGZvciB0aGUgc2FtZSBpbnB1dCBkb2N1bWVudCByZWZsZWN0cyB0aGUgYXR0cmlidXRlOjwvcD4KKzxwcmU+MCAxIGRvYyAxIE5vbmUKKy0tIDEgMiAoYSkgW2JdPC9wcmU+CisKKzxwPlRoZXJlIGFyZSBhIGNvdXBsZSBvZiB0aGluZ3MgdG8gbm90ZSBvbiB0aGUgYXR0cmlidXRlIHByb2Nlc3Npbmc6PC9wPgorPHVsPgorICA8bGk+VGhlaXIgZGVwdGggaXMgdGhlIG9uZSBvZiB0aGUgY2FycnlpbmcgZWxlbWVudCBwbHVzIG9uZS48L2xpPgorICA8bGk+TmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBhcmUgc2VlbiBhcyBhdHRyaWJ1dGVzLCBhcyBpbiBET00uPC9saT4KKzwvdWw+CisKKzxoMj48YSBuYW1lPSJWYWxpZGF0aW5nIj5WYWxpZGF0aW5nIGEgZG9jdW1lbnQ8L2E+PC9oMj4KKworPHA+TGlieG1sMiBpbXBsZW1lbnRhdGlvbiBhZGRzIHNvbWUgZXh0cmEgZmVhdHVyZXMgb24gdG9wIG9mIHRoZSBYbWxUZXh0UmVhZGVyCitBUEkuIFRoZSBtYWluIG9uZSBpcyB0aGUgYWJpbGl0eSB0byBEVEQgdmFsaWRhdGUgdGhlIHBhcnNlZCBkb2N1bWVudAorcHJvZ3Jlc3NpdmVseS4gVGhpcyBpcyBzaW1wbHkgdGhlIGFjdGl2YXRpb24gb2YgdGhlIGFzc29jaWF0ZWQgZmVhdHVyZSBvZiB0aGUKK3BhcnNlciB1c2VkIGJ5IHRoZSByZWFkZXIgc3RydWN0dXJlLiBUaGVyZSBhcmUgYSBmZXcgb3B0aW9ucyBhdmFpbGFibGUKK2RlZmluZWQgYXMgdGhlIGVudW0geG1sUGFyc2VyUHJvcGVydGllcyBpbiB0aGUgbGlieG1sL3htbHJlYWRlci5oIGhlYWRlcgorZmlsZTo8L3A+Cis8dWw+CisgIDxsaT5YTUxfUEFSU0VSX0xPQUREVEQ6IGZvcmNlIGxvYWRpbmcgdGhlIERURCAod2l0aG91dCB2YWxpZGF0aW5nKTwvbGk+CisgIDxsaT5YTUxfUEFSU0VSX0RFRkFVTFRBVFRSUzogZm9yY2UgYXR0cmlidXRlIGRlZmF1bHRpbmcgKHRoaXMgYWxzbyBpbXBseQorICAgIGxvYWRpbmcgdGhlIERURCk8L2xpPgorICA8bGk+WE1MX1BBUlNFUl9WQUxJREFURTogYWN0aXZhdGUgRFREIHZhbGlkYXRpb24gKHRoaXMgYWxzbyBpbXBseSBsb2FkaW5nCisgICAgdGhlIERURCk8L2xpPgorICA8bGk+WE1MX1BBUlNFUl9TVUJTVF9FTlRJVElFUzogc3Vic3RpdHV0ZSBlbnRpdGllcyBvbiB0aGUgZmx5LCBlbnRpdHkKKyAgICByZWZlcmVuY2Ugbm9kZXMgYXJlIG5vdCBnZW5lcmF0ZWQgYW5kIGFyZSByZXBsYWNlZCBieSB0aGVpciBleHBhbmRlZAorICAgIGNvbnRlbnQuPC9saT4KKyAgPGxpPm1vcmUgc2V0dGluZ3MgbWlnaHQgYmUgYWRkZWQsIHRob3NlIHdlcmUgdGhlIG9uZSBhdmFpbGFibGUgYXQgdGhlIDIuNS4wCisgICAgcmVsZWFzZS4uLjwvbGk+Cis8L3VsPgorCis8cD5UaGUgR2V0UGFyc2VyUHJvcCgpIGFuZCBTZXRQYXJzZXJQcm9wKCkgbWV0aG9kcyBjYW4gdGhlbiBiZSB1c2VkIHRvIGdldAorYW5kIHNldCB0aGUgdmFsdWVzIG9mIHRob3NlIHBhcnNlciBwcm9wZXJ0aWVzIG9mIHRoZSByZWFkZXIuIEZvciBleGFtcGxlPC9wPgorPHByZT5kZWYgcGFyc2VBbmRWYWxpZGF0ZShmaWxlKToKKyAgICByZWFkZXIgPSBsaWJ4bWwyLm5ld1RleHRSZWFkZXJGaWxlbmFtZShmaWxlKQorICAgIHJlYWRlci5TZXRQYXJzZXJQcm9wKGxpYnhtbDIuUEFSU0VSX1ZBTElEQVRFLCAxKQorICAgIHJldCA9IHJlYWRlci5SZWFkKCkKKyAgICB3aGlsZSByZXQgPT0gMToKKyAgICAgICAgcmV0ID0gcmVhZGVyLlJlYWQoKQorICAgIGlmIHJldCAhPSAwOgorICAgICAgICBwcmludCAiRXJyb3IgcGFyc2luZyBhbmQgdmFsaWRhdGluZyAlcyIgJSAoZmlsZSk8L3ByZT4KKworPHA+VGhpcyByb3V0aW5lIHdpbGwgcGFyc2UgYW5kIHZhbGlkYXRlIHRoZSBmaWxlLiBFcnJvciBtZXNzYWdlcyBjYW4gYmUKK2NhcHR1cmVkIGJ5IHJlZ2lzdGVyaW5nIGFuIGVycm9yIGhhbmRsZXIuIFNlZSBweXRob24vdGVzdHMvcmVhZGVyMi5weSBmb3IKK21vcmUgY29tcGxldGUgUHl0aG9uIGV4YW1wbGVzLiBBdCB0aGUgQyBsZXZlbCB0aGUgZXF1aXZhbGVudCBjYWxsIHRvIGNhdGl2YXRlCit0aGUgdmFsaWRhdGlvbiBmZWF0dXJlIGlzIGp1c3Q6PC9wPgorPHByZT5yZXQgPSB4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcChyZWFkZXIsIFhNTF9QQVJTRVJfVkFMSURBVEUsIDEpPC9wcmU+CisKKzxwPmFuZCBhIHJldHVybiB2YWx1ZSBvZiAwIGluZGljYXRlcyBzdWNjZXNzLjwvcD4KKworPGgyPjxhIG5hbWU9IkVudGl0aWVzIj5FbnRpdGllcyBzdWJzdGl0dXRpb248L2E+PC9oMj4KKworPHA+QnkgZGVmYXVsdCB0aGUgeG1sUmVhZGVyIHdpbGwgcmVwb3J0IGVudGl0aWVzIGFzIHN1Y2ggYW5kIG5vdCByZXBsYWNlIHRoZW0KK3dpdGggdGhlaXIgY29udGVudC4gVGhpcyBkZWZhdWx0IGJlaGF2aW91ciBjYW4gaG93ZXZlciBiZSBvdmVycmlkZW4gdXNpbmc6PC9wPgorCis8cD48Y29kZT5yZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9TVUJTVF9FTlRJVElFUywxKTwvY29kZT48L3A+CisKKzxoMj48YSBuYW1lPSJMMTE0MiI+UmVsYXgtTkcgVmFsaWRhdGlvbjwvYT48L2gyPgorCis8cCBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij5JbnRyb2R1Y2VkIGluIHZlcnNpb24gMi41Ljc8L3A+CisKKzxwPkxpYnhtbDIgY2FuIG5vdyB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYmVpbmcgcmVhZCB1c2luZyB0aGUgeG1sUmVhZGVyIHVzaW5nCitSZWxheC1ORyBzY2hlbWFzLiBXaGlsZSB0aGUgUmVsYXggTkcgdmFsaWRhdG9yIGNhbid0IGFsd2F5cyB3b3JrIGluIGEKK3N0cmVhbWFibGUgbW9kZSwgb25seSBzdWJzZXRzIHdoaWNoIGNhbm5vdCBiZSByZWR1Y2VkIHRvIHJlZ3VsYXIgZXhwcmVzc2lvbnMKK25lZWQgdG8gaGF2ZSB0aGVpciBzdWJ0cmVlIGV4cGFuZGVkIGZvciB2YWxpZGF0aW9uLiBJbiBwcmFjdGljZSBpdCBtZWFucwordGhhdCwgdW5sZXNzIHRoZSBzY2hlbWFzIGZvciB0aGUgdG9wIGxldmVsIGVsZW1lbnQgY29udGVudCBpcyBub3QgZXhwcmVzc2FibGUKK2FzIGEgcmVnZXhwLCBvbmx5IGNodW5rIG9mIHRoZSBkb2N1bWVudCBuZWVkcyB0byBiZSBwYXJzZWQgd2hpbGUKK3ZhbGlkYXRpbmcuPC9wPgorCis8cD5UaGUgc3RlcHMgdG8gZG8gc28gYXJlOjwvcD4KKzx1bD4KKyAgPGxpPmNyZWF0ZSBhIHJlYWRlciB3b3JraW5nIG9uIGEgZG9jdW1lbnQgYXMgdXN1YWw8L2xpPgorICA8bGk+YmVmb3JlIGFueSBjYWxsIHRvIHJlYWQgYXNzb2NpYXRlIGl0IHRvIGEgUmVsYXggTkcgc2NoZW1hcywgZWl0aGVyIHRoZQorICAgIHByZXBhcnNlZCBzY2hlbWFzIG9yIHRoZSBVUkwgdG8gdGhlIHNjaGVtYXMgdG8gdXNlPC9saT4KKyAgPGxpPmVycm9ycyB3aWxsIGJlIHJlcG9ydGVkIHRoZSB1c3VhbCB3YXksIGFuZCB0aGUgdmFsaWRpdHkgc3RhdHVzIGNhbiBiZQorICAgIG9idGFpbmVkIHVzaW5nIHRoZSBJc1ZhbGlkKCkgaW50ZXJmYWNlIG9mIHRoZSByZWFkZXIgbGlrZSBmb3IgRFREcy48L2xpPgorPC91bD4KKworPHA+RXhhbXBsZSwgYXNzdW1pbmcgdGhlIHJlYWRlciBoYXMgYWxyZWFkeSBiZWluZyBjcmVhdGVkIGFuZCB0aGF0IHRoZSBzY2hlbWEKK3N0cmluZyBjb250YWlucyB0aGUgUmVsYXgtTkcgc2NoZW1hczo8L3A+Cis8cHJlPjxjb2RlPnJuZ3AgPSBsaWJ4bWwyLnJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYSwgbGVuKHNjaGVtYSkpPGJyPgorcm5ncyA9IHJuZ3AucmVsYXhOR1BhcnNlKCk8YnI+CityZWFkZXIuUmVsYXhOR1NldFNjaGVtYShybmdzKTxicj4KK3JldCA9IHJlYWRlci5SZWFkKCk8YnI+Cit3aGlsZSByZXQgPT0gMTo8YnI+CisgICAgcmV0ID0gcmVhZGVyLlJlYWQoKTxicj4KK2lmIHJldCAhPSAwOjxicj4KKyAgICBwcmludCAiRXJyb3IgcGFyc2luZyB0aGUgZG9jdW1lbnQiPGJyPgoraWYgcmVhZGVyLklzVmFsaWQoKSAhPSAxOjxicj4KKyAgICBwcmludCAiRG9jdW1lbnQgZmFpbGVkIHRvIHZhbGlkYXRlIjwvY29kZT48YnI+Cis8L3ByZT4KKworPHA+U2VlIDxjb2RlPnJlYWRlcjYucHk8L2NvZGU+IGluIHRoZSBzb3VyY2VzIG9yIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUKK2V4YW1wbGUuPC9wPgorCis8aDI+PGEgbmFtZT0iTWl4aW5nIj5NaXhpbmcgdGhlIHJlYWRlciBhbmQgdHJlZSBvciBYUGF0aCBvcGVyYXRpb25zPC9hPjwvaDI+CisKKzxwIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPkludHJvZHVjZWQgaW4gdmVyc2lvbiAyLjUuNzwvcD4KKworPHA+V2hpbGUgdGhlIHJlYWRlciBpcyBhIHN0cmVhbWluZyBpbnRlcmZhY2UsIGl0cyB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uCitpcyBiYXNlZCBvbiB0aGUgRE9NIGJ1aWxkZXIgb2YgbGlieG1sMi4gQXMgYSByZXN1bHQgaXQgaXMgcmVsYXRpdmVseSBzaW1wbGUKK3RvIG1peCBvcGVyYXRpb25zIGJhc2VkIG9uIGJvdGggbW9kZWxzIHVuZGVyIHNvbWUgY29uc3RyYWludHMuIFRvIGRvIHNvIHRoZQorcmVhZGVyIGhhcyBhbiBFeHBhbmQoKSBvcGVyYXRpb24gYWxsb3dpbmcgdG8gZ3JvdyB0aGUgc3VidHJlZSB1bmRlciB0aGUKK2N1cnJlbnQgbm9kZS4gSXQgcmV0dXJucyBhIHBvaW50ZXIgdG8gYSBzdGFuZGFyZCBub2RlIHdoaWNoIGNhbiBiZQorbWFuaXB1bGF0ZWQgaW4gdGhlIHVzdWFsIHdheXMuIFRoZSBub2RlIHdpbGwgZ2V0IGFsbCBpdHMgYW5jZXN0b3JzIGFuZCB0aGUKK2Z1bGwgc3VidHJlZSBhdmFpbGFibGUuIFVzdWFsIG9wZXJhdGlvbnMgbGlrZSBYUGF0aCBxdWVyaWVzIGNhbiBiZSB1c2VkIG9uCit0aGF0IHJlZHVjZWQgdmlldyBvZiB0aGUgZG9jdW1lbnQuIEhlcmUgaXMgYW4gZXhhbXBsZSBleHRyYWN0ZWQgZnJvbQorcmVhZGVyNS5weSBpbiB0aGUgc291cmNlcyB3aGljaCBleHRyYWN0IGFuZCBwcmludHMgdGhlIGJpYmxpb2dyYXBoeSBmb3IgdGhlCisiRHJhZ29uIiBjb21waWxlciBib29rIGZyb20gdGhlIFhNTCAxLjAgcmVjb21tZW5kYXRpb246PC9wPgorPHByZT5mID0gb3BlbignLi4vLi4vdGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbCcpCitpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoZikKK3JlYWRlciA9IGlucHV0Lm5ld1RleHRSZWFkZXIoIlJFQyIpCityZXM9IiIKK3doaWxlIHJlYWRlci5SZWFkKCk6CisgICAgd2hpbGUgcmVhZGVyLk5hbWUoKSA9PSAnYmlibCc6CisgICAgICAgIG5vZGUgPSByZWFkZXIuRXhwYW5kKCkgICAgICAgICAgICAjIGV4cGFuZCB0aGUgc3VidHJlZQorICAgICAgICBpZiBub2RlLnhwYXRoRXZhbCgiQGlkID0gJ0FobyciKTogIyB1c2UgWFBhdGggb24gaXQKKyAgICAgICAgICAgIHJlcyA9IHJlcyArIG5vZGUuc2VyaWFsaXplKCkKKyAgICAgICAgaWYgcmVhZGVyLk5leHQoKSAhPSAxOiAgICAgICAgICAgICMgc2tpcCB0aGUgc3VidHJlZQorICAgICAgICAgICAgYnJlYWs7PC9wcmU+CisKKzxwPk5vdGUsIGhvd2V2ZXIgdGhhdCB0aGUgbm9kZSBpbnN0YW5jZSByZXR1cm5lZCBieSB0aGUgRXhwYW5kKCkgY2FsbCBpcyBvbmx5Cit2YWxpZCB1bnRpbCB0aGUgbmV4dCBSZWFkKCkgb3BlcmF0aW9uLiBUaGUgRXhwYW5kKCkgb3BlcmF0aW9uIGRvZXMgbm90CithZmZlY3RzIHRoZSBSZWFkKCkgb25lcywgaG93ZXZlciB1c3VhbGx5IG9uY2UgcHJvY2Vzc2VkIHRoZSBmdWxsIHN1YnRyZWUgaXMKK25vdCB1c2VmdWwgYW55bW9yZSwgYW5kIHRoZSBOZXh0KCkgb3BlcmF0aW9uIGFsbG93cyB0byBza2lwIGl0IGNvbXBsZXRlbHkgYW5kCitwcm9jZXNzIHRvIHRoZSBzdWNjZXNzb3Igb3IgcmV0dXJuIDAgaWYgdGhlIGRvY3VtZW50IGVuZCBpcyByZWFjaGVkLjwvcD4KKworPHA+PGEgaHJlZj0ibWFpbHRvOnhtbEBnbm9tZS5vcmciPkRhbmllbCBWZWlsbGFyZDwvYT48L3A+CisKKzxwPiRJZCQ8L3A+CisKKzxwPjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZG9jL3hzYS54c2wgYi9saWJ4bWwyLTIuNy43L2RvYy94c2EueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMTUxZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2RvYy94c2EueHNsCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLQorICBTdHlsZXNoZWV0IGdlbmVyYXRpbmcgdGhlIFhTQSBlbnRyeSBmb3IgbGlieG1sMiBiYXNlZCBvbiB0aGUgCisgIGxhdGVzdCBOZXdzIGVudHJ5LgorICBTZWUgaHR0cDovL3d3dy5nYXJzaG9sLnByaXYubm8vZG93bmxvYWQveHNhLyBmb3IgYSBkZXNjcmlwdGlvbiBvZiBYU0EKKyAtLT4KKzx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIgorICAgICB4bWxuczp4aHRtbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM9InhodG1sIj4KKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ4bWwiCisgICAgICBkb2N0eXBlLXB1YmxpYz0iLS8vTE0gR2Fyc2hvbC8vRFREIFhNTCBTb2Z0d2FyZSBBdXRvdXBkYXRlIDEuMC8vRU4vL1hNTCIKKyAgICAgIGRvY3R5cGUtc3lzdGVtPSJodHRwOi8vd3d3LmdhcnNob2wucHJpdi5uby9kb3dubG9hZC94c2EveHNhLmR0ZCIKKyAgICAgIGluZGVudD0ieWVzIi8+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+Cis8eHNhPgorICA8dmVuZG9yPgorICAgIDxuYW1lPkRhbmllbCBWZWlsbGFyZDwvbmFtZT4KKyAgICA8ZW1haWw+ZGFuaWVsQHZlaWxsYXJkLmNvbTwvZW1haWw+CisgICAgPHVybD5odHRwOi8vdmVpbGxhcmQuY29tLzwvdXJsPgorICA8L3ZlbmRvcj4KKyAgPHByb2R1Y3QgaWQ9ImxpYnhtbDIiPgorICAgIDxuYW1lPmxpYnhtbDI8L25hbWU+CisgICAgPHZlcnNpb24+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZy1iZWZvcmUoLy94aHRtbDpoM1syXSwgJzonKSIvPjwvdmVyc2lvbj4KKyAgICA8bGFzdC1yZWxlYXNlPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdWJzdHJpbmctYWZ0ZXIoLy94aHRtbDpoM1syXSwgJzonKSIvPjwvbGFzdC1yZWxlYXNlPgorICAgIDxpbmZvLXVybD5odHRwOi8veG1sc29mdC5vcmcvPC9pbmZvLXVybD4KKyAgICA8Y2hhbmdlcz4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii8veGh0bWw6aDNbMl0vZm9sbG93aW5nLXNpYmxpbmc6OipbMV0iLz4KKyAgICA8L2NoYW5nZXM+CisgIDwvcHJvZHVjdD4KKzwveHNhPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ieGh0bWw6aDMiPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ieGh0bWw6dWwiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi8veGh0bWw6bGkiLz4KKyAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ieGh0bWw6bGkiPgorICAgIDx4c2w6dGV4dD4gICAtIDwveHNsOnRleHQ+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KKyAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ieGh0bWw6YSI+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KKyAgICA8eHNsOnRleHQ+IGF0IAorPC94c2w6dGV4dD4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGhyZWYiLz4KKyAgICA8eHNsOnRleHQ+Cis8L3hzbDp0ZXh0PgorICA8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZWxmZ2NjaGFjay5oIGIvbGlieG1sMi0yLjcuNy9lbGZnY2NoYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRlODE1MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZWxmZ2NjaGFjay5oCkBAIC0wLDAgKzEsMTc2MTAgQEAKKy8qCisgKiBlbGZnY2NoYWNrLmg6IGhhY2sgYnkgQXJqYW4gdmFuIGRlIFZlbiA8YXJqYW52QHJlZGhhdC5jb20+IHRvIHNwZWVkCisgKiAgICAgICAgICAgICAgIHVwIHRoZSBjb2RlIHdoZW4gdXNpbmcgZ2NjIGZvciBjYWxsIHdpdGhpbiB0aGUgbGlicmFyeS4KKyAqCisgKiBCYXNlZCBvbiB0aGUgYW5hbHlzaXMgaHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2RyZXBwZXIvZHNvaG93dG8ucGRmCisgKiBmcm9tIFVscmljaCBkcmVwcGVyLiBSZXdyaXR0ZW4gdG8gYmUgZ2VuZXJhdGVkIGZyb20gdGhlIFhNTCBkZXNjcmlwdGlvbgorICogZmlsZSBmb3IgbGlieG1sMiBBUEkKKyAqIGF1dG9nZW5lcmF0ZWQgd2l0aCB4c2x0cHJvYyBkb2MvZWxmZ2NjaGFjay54c2wgZG9jL2xpYnhtbDItYXBpLnhtbAorICovCisKKyNpZmRlZiBJTl9MSUJYTUwKKyNpZmRlZiBfX0dOVUNfXworI2lmZGVmIFBJQworI2lmZGVmIGxpbnV4CisjaWYgKF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMykgfHwgKF9fR05VQ19fID4gMykKKworI2luY2x1ZGUgImxpYnhtbC9jMTRuLmgiCisjaW5jbHVkZSAibGlieG1sL2NhdGFsb2cuaCIKKyNpbmNsdWRlICJsaWJ4bWwvY2h2YWxpZC5oIgorI2luY2x1ZGUgImxpYnhtbC9kZWJ1Z1hNTC5oIgorI2luY2x1ZGUgImxpYnhtbC9kaWN0LmgiCisjaW5jbHVkZSAibGlieG1sL0RPQ0JwYXJzZXIuaCIKKyNpbmNsdWRlICJsaWJ4bWwvZW5jb2RpbmcuaCIKKyNpbmNsdWRlICJsaWJ4bWwvZW50aXRpZXMuaCIKKyNpbmNsdWRlICJsaWJ4bWwvZ2xvYmFscy5oIgorI2luY2x1ZGUgImxpYnhtbC9oYXNoLmgiCisjaW5jbHVkZSAibGlieG1sL0hUTUxwYXJzZXIuaCIKKyNpbmNsdWRlICJsaWJ4bWwvSFRNTHRyZWUuaCIKKyNpbmNsdWRlICJsaWJ4bWwvbGlzdC5oIgorI2luY2x1ZGUgImxpYnhtbC9uYW5vZnRwLmgiCisjaW5jbHVkZSAibGlieG1sL25hbm9odHRwLmgiCisjaW5jbHVkZSAibGlieG1sL3BhcnNlci5oIgorI2luY2x1ZGUgImxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaCIKKyNpbmNsdWRlICJsaWJ4bWwvcGF0dGVybi5oIgorI2luY2x1ZGUgImxpYnhtbC9yZWxheG5nLmgiCisjaW5jbHVkZSAibGlieG1sL1NBWDIuaCIKKyNpbmNsdWRlICJsaWJ4bWwvU0FYLmgiCisjaW5jbHVkZSAibGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaCIKKyNpbmNsdWRlICJsaWJ4bWwvc2NoZW1hdHJvbi5oIgorI2luY2x1ZGUgImxpYnhtbC90aHJlYWRzLmgiCisjaW5jbHVkZSAibGlieG1sL3RyZWUuaCIKKyNpbmNsdWRlICJsaWJ4bWwvdXJpLmgiCisjaW5jbHVkZSAibGlieG1sL3ZhbGlkLmgiCisjaW5jbHVkZSAibGlieG1sL3hpbmNsdWRlLmgiCisjaW5jbHVkZSAibGlieG1sL3hsaW5rLmgiCisjaW5jbHVkZSAibGlieG1sL3htbGF1dG9tYXRhLmgiCisjaW5jbHVkZSAibGlieG1sL3htbGVycm9yLmgiCisjaW5jbHVkZSAibGlieG1sL3htbGV4cG9ydHMuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sSU8uaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sbWVtb3J5LmgiCisjaW5jbHVkZSAibGlieG1sL3htbHJlYWRlci5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxyZWdleHAuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sc2F2ZS5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxzY2hlbWFzLmgiCisjaW5jbHVkZSAibGlieG1sL3htbHNjaGVtYXN0eXBlcy5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxzdHJpbmcuaCIKKyNpbmNsdWRlICJsaWJ4bWwveG1sdW5pY29kZS5oIgorI2luY2x1ZGUgImxpYnhtbC94bWx2ZXJzaW9uLmgiCisjaW5jbHVkZSAibGlieG1sL3htbHdyaXRlci5oIgorI2luY2x1ZGUgImxpYnhtbC94cGF0aC5oIgorI2luY2x1ZGUgImxpYnhtbC94cGF0aEludGVybmFscy5oIgorI2luY2x1ZGUgImxpYnhtbC94cG9pbnRlci5oIgorI2luY2x1ZGUgImxpYnhtbC94bWxtb2R1bGUuaCIKKworLyogc3BlY2lhbCBob3Qgc3BvdCBub3QgZXhwb3J0ZWQgb25lcyAqLworCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiBfX3htbEdlbmVyaWNFcnJvcgorZXh0ZXJuIF9fdHlwZW9mIChfX3htbEdlbmVyaWNFcnJvcikgX194bWxHZW5lcmljRXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJfX3htbEdlbmVyaWNFcnJvcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgX194bWxHZW5lcmljRXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoX194bWxHZW5lcmljRXJyb3IpIF9feG1sR2VuZXJpY0Vycm9yX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgX194bWxHZW5lcmljRXJyb3IgX194bWxHZW5lcmljRXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiBfX3htbEdlbmVyaWNFcnJvckNvbnRleHQKK2V4dGVybiBfX3R5cGVvZiAoX194bWxHZW5lcmljRXJyb3JDb250ZXh0KSBfX3htbEdlbmVyaWNFcnJvckNvbnRleHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJfX3htbEdlbmVyaWNFcnJvckNvbnRleHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIF9feG1sR2VuZXJpY0Vycm9yQ29udGV4dAorZXh0ZXJuIF9fdHlwZW9mIChfX3htbEdlbmVyaWNFcnJvckNvbnRleHQpIF9feG1sR2VuZXJpY0Vycm9yQ29udGV4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIF9feG1sR2VuZXJpY0Vycm9yQ29udGV4dCBfX3htbEdlbmVyaWNFcnJvckNvbnRleHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisvKiBsaXN0IGdlbmVyYXRlZCBmcm9tIGxpYnhtbDItYXBpLnhtbCAqLworI2lmIGRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fRE9DQnBhcnNlcgorI3VuZGVmIGRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mIChkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQpIGRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoImRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKGRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCkgZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0IGRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxBdHRyQWxsb3dlZAorZXh0ZXJuIF9fdHlwZW9mIChodG1sQXR0ckFsbG93ZWQpIGh0bWxBdHRyQWxsb3dlZCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxBdHRyQWxsb3dlZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEF0dHJBbGxvd2VkCitleHRlcm4gX190eXBlb2YgKGh0bWxBdHRyQWxsb3dlZCkgaHRtbEF0dHJBbGxvd2VkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEF0dHJBbGxvd2VkIGh0bWxBdHRyQWxsb3dlZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxBdXRvQ2xvc2VUYWcKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEF1dG9DbG9zZVRhZykgaHRtbEF1dG9DbG9zZVRhZyBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxBdXRvQ2xvc2VUYWdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxBdXRvQ2xvc2VUYWcKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEF1dG9DbG9zZVRhZykgaHRtbEF1dG9DbG9zZVRhZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxBdXRvQ2xvc2VUYWcgaHRtbEF1dG9DbG9zZVRhZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mIChodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQpIGh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKGh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCkgaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0IGh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKGh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KSBodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mIChodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCkgaHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCBodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfUFVTSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKGh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCkgaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KSBodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQgaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbEN0eHRSZWFkRG9jCitleHRlcm4gX190eXBlb2YgKGh0bWxDdHh0UmVhZERvYykgaHRtbEN0eHRSZWFkRG9jIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbEN0eHRSZWFkRG9jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sQ3R4dFJlYWREb2MKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEN0eHRSZWFkRG9jKSBodG1sQ3R4dFJlYWREb2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sQ3R4dFJlYWREb2MgaHRtbEN0eHRSZWFkRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbEN0eHRSZWFkRmQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEN0eHRSZWFkRmQpIGh0bWxDdHh0UmVhZEZkIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbEN0eHRSZWFkRmRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxDdHh0UmVhZEZkCitleHRlcm4gX190eXBlb2YgKGh0bWxDdHh0UmVhZEZkKSBodG1sQ3R4dFJlYWRGZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxDdHh0UmVhZEZkIGh0bWxDdHh0UmVhZEZkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbEN0eHRSZWFkRmlsZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sQ3R4dFJlYWRGaWxlKSBodG1sQ3R4dFJlYWRGaWxlIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbEN0eHRSZWFkRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEN0eHRSZWFkRmlsZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sQ3R4dFJlYWRGaWxlKSBodG1sQ3R4dFJlYWRGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEN0eHRSZWFkRmlsZSBodG1sQ3R4dFJlYWRGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbEN0eHRSZWFkSU8KK2V4dGVybiBfX3R5cGVvZiAoaHRtbEN0eHRSZWFkSU8pIGh0bWxDdHh0UmVhZElPIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbEN0eHRSZWFkSU9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxDdHh0UmVhZElPCitleHRlcm4gX190eXBlb2YgKGh0bWxDdHh0UmVhZElPKSBodG1sQ3R4dFJlYWRJT19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxDdHh0UmVhZElPIGh0bWxDdHh0UmVhZElPX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbEN0eHRSZWFkTWVtb3J5CitleHRlcm4gX190eXBlb2YgKGh0bWxDdHh0UmVhZE1lbW9yeSkgaHRtbEN0eHRSZWFkTWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbEN0eHRSZWFkTWVtb3J5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sQ3R4dFJlYWRNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEN0eHRSZWFkTWVtb3J5KSBodG1sQ3R4dFJlYWRNZW1vcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sQ3R4dFJlYWRNZW1vcnkgaHRtbEN0eHRSZWFkTWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbEN0eHRSZXNldAorZXh0ZXJuIF9fdHlwZW9mIChodG1sQ3R4dFJlc2V0KSBodG1sQ3R4dFJlc2V0IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbEN0eHRSZXNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEN0eHRSZXNldAorZXh0ZXJuIF9fdHlwZW9mIChodG1sQ3R4dFJlc2V0KSBodG1sQ3R4dFJlc2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEN0eHRSZXNldCBodG1sQ3R4dFJlc2V0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbEN0eHRVc2VPcHRpb25zCitleHRlcm4gX190eXBlb2YgKGh0bWxDdHh0VXNlT3B0aW9ucykgaHRtbEN0eHRVc2VPcHRpb25zIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbEN0eHRVc2VPcHRpb25zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sQ3R4dFVzZU9wdGlvbnMKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEN0eHRVc2VPcHRpb25zKSBodG1sQ3R4dFVzZU9wdGlvbnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sQ3R4dFVzZU9wdGlvbnMgaHRtbEN0eHRVc2VPcHRpb25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9TQVgyCisjdW5kZWYgaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdAorZXh0ZXJuIF9fdHlwZW9mIChodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KSBodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdAorZXh0ZXJuIF9fdHlwZW9mIChodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KSBodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCBodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHRyZWUKKyN1bmRlZiBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0KSBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dAorZXh0ZXJuIF9fdHlwZW9mIChodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQpIGh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1MdHJlZQorI3VuZGVmIGh0bWxEb2NDb250ZW50RHVtcE91dHB1dAorZXh0ZXJuIF9fdHlwZW9mIChodG1sRG9jQ29udGVudER1bXBPdXRwdXQpIGh0bWxEb2NDb250ZW50RHVtcE91dHB1dCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxEb2NDb250ZW50RHVtcE91dHB1dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0CitleHRlcm4gX190eXBlb2YgKGh0bWxEb2NDb250ZW50RHVtcE91dHB1dCkgaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0IGh0bWxEb2NDb250ZW50RHVtcE91dHB1dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX0hUTUx0cmVlCisjdW5kZWYgaHRtbERvY0R1bXAKK2V4dGVybiBfX3R5cGVvZiAoaHRtbERvY0R1bXApIGh0bWxEb2NEdW1wIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbERvY0R1bXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxEb2NEdW1wCitleHRlcm4gX190eXBlb2YgKGh0bWxEb2NEdW1wKSBodG1sRG9jRHVtcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxEb2NEdW1wIGh0bWxEb2NEdW1wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHRyZWUKKyN1bmRlZiBodG1sRG9jRHVtcE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mIChodG1sRG9jRHVtcE1lbW9yeSkgaHRtbERvY0R1bXBNZW1vcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sRG9jRHVtcE1lbW9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbERvY0R1bXBNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoaHRtbERvY0R1bXBNZW1vcnkpIGh0bWxEb2NEdW1wTWVtb3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbERvY0R1bXBNZW1vcnkgaHRtbERvY0R1bXBNZW1vcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1MdHJlZQorI3VuZGVmIGh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0CitleHRlcm4gX190eXBlb2YgKGh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0KSBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdAorZXh0ZXJuIF9fdHlwZW9mIChodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCkgaHRtbERvY0R1bXBNZW1vcnlGb3JtYXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxFbGVtZW50QWxsb3dlZEhlcmUKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSkgaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxFbGVtZW50QWxsb3dlZEhlcmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxFbGVtZW50QWxsb3dlZEhlcmUKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSkgaHRtbEVsZW1lbnRBbGxvd2VkSGVyZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxFbGVtZW50QWxsb3dlZEhlcmUgaHRtbEVsZW1lbnRBbGxvd2VkSGVyZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxFbGVtZW50U3RhdHVzSGVyZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sRWxlbWVudFN0YXR1c0hlcmUpIGh0bWxFbGVtZW50U3RhdHVzSGVyZSBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxFbGVtZW50U3RhdHVzSGVyZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEVsZW1lbnRTdGF0dXNIZXJlCitleHRlcm4gX190eXBlb2YgKGh0bWxFbGVtZW50U3RhdHVzSGVyZSkgaHRtbEVsZW1lbnRTdGF0dXNIZXJlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEVsZW1lbnRTdGF0dXNIZXJlIGh0bWxFbGVtZW50U3RhdHVzSGVyZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxFbmNvZGVFbnRpdGllcworZXh0ZXJuIF9fdHlwZW9mIChodG1sRW5jb2RlRW50aXRpZXMpIGh0bWxFbmNvZGVFbnRpdGllcyBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxFbmNvZGVFbnRpdGllc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEVuY29kZUVudGl0aWVzCitleHRlcm4gX190eXBlb2YgKGh0bWxFbmNvZGVFbnRpdGllcykgaHRtbEVuY29kZUVudGl0aWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEVuY29kZUVudGl0aWVzIGh0bWxFbmNvZGVFbnRpdGllc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxFbnRpdHlMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEVudGl0eUxvb2t1cCkgaHRtbEVudGl0eUxvb2t1cCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxFbnRpdHlMb29rdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxFbnRpdHlMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEVudGl0eUxvb2t1cCkgaHRtbEVudGl0eUxvb2t1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxFbnRpdHlMb29rdXAgaHRtbEVudGl0eUxvb2t1cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxFbnRpdHlWYWx1ZUxvb2t1cAorZXh0ZXJuIF9fdHlwZW9mIChodG1sRW50aXR5VmFsdWVMb29rdXApIGh0bWxFbnRpdHlWYWx1ZUxvb2t1cCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxFbnRpdHlWYWx1ZUxvb2t1cF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEVudGl0eVZhbHVlTG9va3VwCitleHRlcm4gX190eXBlb2YgKGh0bWxFbnRpdHlWYWx1ZUxvb2t1cCkgaHRtbEVudGl0eVZhbHVlTG9va3VwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEVudGl0eVZhbHVlTG9va3VwIGh0bWxFbnRpdHlWYWx1ZUxvb2t1cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxGcmVlUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mIChodG1sRnJlZVBhcnNlckN0eHQpIGh0bWxGcmVlUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxGcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEZyZWVQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKGh0bWxGcmVlUGFyc2VyQ3R4dCkgaHRtbEZyZWVQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEZyZWVQYXJzZXJDdHh0IGh0bWxGcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHRyZWUKKyN1bmRlZiBodG1sR2V0TWV0YUVuY29kaW5nCitleHRlcm4gX190eXBlb2YgKGh0bWxHZXRNZXRhRW5jb2RpbmcpIGh0bWxHZXRNZXRhRW5jb2RpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sR2V0TWV0YUVuY29kaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sR2V0TWV0YUVuY29kaW5nCitleHRlcm4gX190eXBlb2YgKGh0bWxHZXRNZXRhRW5jb2RpbmcpIGh0bWxHZXRNZXRhRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sR2V0TWV0YUVuY29kaW5nIGh0bWxHZXRNZXRhRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX0hUTUxwYXJzZXIKKyN1bmRlZiBodG1sSGFuZGxlT21pdHRlZEVsZW0KK2V4dGVybiBfX3R5cGVvZiAoaHRtbEhhbmRsZU9taXR0ZWRFbGVtKSBodG1sSGFuZGxlT21pdHRlZEVsZW0gX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sSGFuZGxlT21pdHRlZEVsZW1fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxIYW5kbGVPbWl0dGVkRWxlbQorZXh0ZXJuIF9fdHlwZW9mIChodG1sSGFuZGxlT21pdHRlZEVsZW0pIGh0bWxIYW5kbGVPbWl0dGVkRWxlbV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxIYW5kbGVPbWl0dGVkRWxlbSBodG1sSGFuZGxlT21pdHRlZEVsZW1fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX0hUTUxwYXJzZXIKKyN1bmRlZiBodG1sSW5pdEF1dG9DbG9zZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sSW5pdEF1dG9DbG9zZSkgaHRtbEluaXRBdXRvQ2xvc2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sSW5pdEF1dG9DbG9zZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbEluaXRBdXRvQ2xvc2UKK2V4dGVybiBfX3R5cGVvZiAoaHRtbEluaXRBdXRvQ2xvc2UpIGh0bWxJbml0QXV0b0Nsb3NlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbEluaXRBdXRvQ2xvc2UgaHRtbEluaXRBdXRvQ2xvc2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX0hUTUxwYXJzZXIKKyN1bmRlZiBodG1sSXNBdXRvQ2xvc2VkCitleHRlcm4gX190eXBlb2YgKGh0bWxJc0F1dG9DbG9zZWQpIGh0bWxJc0F1dG9DbG9zZWQgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sSXNBdXRvQ2xvc2VkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sSXNBdXRvQ2xvc2VkCitleHRlcm4gX190eXBlb2YgKGh0bWxJc0F1dG9DbG9zZWQpIGh0bWxJc0F1dG9DbG9zZWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sSXNBdXRvQ2xvc2VkIGh0bWxJc0F1dG9DbG9zZWRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX0hUTUx0cmVlCisjdW5kZWYgaHRtbElzQm9vbGVhbkF0dHIKK2V4dGVybiBfX3R5cGVvZiAoaHRtbElzQm9vbGVhbkF0dHIpIGh0bWxJc0Jvb2xlYW5BdHRyIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbElzQm9vbGVhbkF0dHJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxJc0Jvb2xlYW5BdHRyCitleHRlcm4gX190eXBlb2YgKGh0bWxJc0Jvb2xlYW5BdHRyKSBodG1sSXNCb29sZWFuQXR0cl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxJc0Jvb2xlYW5BdHRyIGh0bWxJc0Jvb2xlYW5BdHRyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbElzU2NyaXB0QXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKGh0bWxJc1NjcmlwdEF0dHJpYnV0ZSkgaHRtbElzU2NyaXB0QXR0cmlidXRlIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbElzU2NyaXB0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sSXNTY3JpcHRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoaHRtbElzU2NyaXB0QXR0cmlidXRlKSBodG1sSXNTY3JpcHRBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sSXNTY3JpcHRBdHRyaWJ1dGUgaHRtbElzU2NyaXB0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbE5ld0RvYworZXh0ZXJuIF9fdHlwZW9mIChodG1sTmV3RG9jKSBodG1sTmV3RG9jIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbE5ld0RvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbE5ld0RvYworZXh0ZXJuIF9fdHlwZW9mIChodG1sTmV3RG9jKSBodG1sTmV3RG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbE5ld0RvYyBodG1sTmV3RG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbE5ld0RvY05vRHRECitleHRlcm4gX190eXBlb2YgKGh0bWxOZXdEb2NOb0R0RCkgaHRtbE5ld0RvY05vRHREIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbE5ld0RvY05vRHREX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sTmV3RG9jTm9EdEQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbE5ld0RvY05vRHREKSBodG1sTmV3RG9jTm9EdERfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sTmV3RG9jTm9EdEQgaHRtbE5ld0RvY05vRHREX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbE5ld1BhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbE5ld1BhcnNlckN0eHQpIGh0bWxOZXdQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbE5ld1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxOZXdQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKGh0bWxOZXdQYXJzZXJDdHh0KSBodG1sTmV3UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxOZXdQYXJzZXJDdHh0IGh0bWxOZXdQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHRyZWUKKyN1bmRlZiBodG1sTm9kZUR1bXAKK2V4dGVybiBfX3R5cGVvZiAoaHRtbE5vZGVEdW1wKSBodG1sTm9kZUR1bXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sTm9kZUR1bXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxOb2RlRHVtcAorZXh0ZXJuIF9fdHlwZW9mIChodG1sTm9kZUR1bXApIGh0bWxOb2RlRHVtcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxOb2RlRHVtcCBodG1sTm9kZUR1bXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1MdHJlZQorI3VuZGVmIGh0bWxOb2RlRHVtcEZpbGUKK2V4dGVybiBfX3R5cGVvZiAoaHRtbE5vZGVEdW1wRmlsZSkgaHRtbE5vZGVEdW1wRmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxOb2RlRHVtcEZpbGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxOb2RlRHVtcEZpbGUKK2V4dGVybiBfX3R5cGVvZiAoaHRtbE5vZGVEdW1wRmlsZSkgaHRtbE5vZGVEdW1wRmlsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxOb2RlRHVtcEZpbGUgaHRtbE5vZGVEdW1wRmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX0hUTUx0cmVlCisjdW5kZWYgaHRtbE5vZGVEdW1wRmlsZUZvcm1hdAorZXh0ZXJuIF9fdHlwZW9mIChodG1sTm9kZUR1bXBGaWxlRm9ybWF0KSBodG1sTm9kZUR1bXBGaWxlRm9ybWF0IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbE5vZGVEdW1wRmlsZUZvcm1hdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbE5vZGVEdW1wRmlsZUZvcm1hdAorZXh0ZXJuIF9fdHlwZW9mIChodG1sTm9kZUR1bXBGaWxlRm9ybWF0KSBodG1sTm9kZUR1bXBGaWxlRm9ybWF0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCBodG1sTm9kZUR1bXBGaWxlRm9ybWF0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHRyZWUKKyN1bmRlZiBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0KSBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dAorZXh0ZXJuIF9fdHlwZW9mIChodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQpIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1MdHJlZQorI3VuZGVmIGh0bWxOb2RlRHVtcE91dHB1dAorZXh0ZXJuIF9fdHlwZW9mIChodG1sTm9kZUR1bXBPdXRwdXQpIGh0bWxOb2RlRHVtcE91dHB1dCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxOb2RlRHVtcE91dHB1dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbE5vZGVEdW1wT3V0cHV0CitleHRlcm4gX190eXBlb2YgKGh0bWxOb2RlRHVtcE91dHB1dCkgaHRtbE5vZGVEdW1wT3V0cHV0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbE5vZGVEdW1wT3V0cHV0IGh0bWxOb2RlRHVtcE91dHB1dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxOb2RlU3RhdHVzCitleHRlcm4gX190eXBlb2YgKGh0bWxOb2RlU3RhdHVzKSBodG1sTm9kZVN0YXR1cyBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxOb2RlU3RhdHVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sTm9kZVN0YXR1cworZXh0ZXJuIF9fdHlwZW9mIChodG1sTm9kZVN0YXR1cykgaHRtbE5vZGVTdGF0dXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sTm9kZVN0YXR1cyBodG1sTm9kZVN0YXR1c19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxQYXJzZUNoYXJSZWYKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFBhcnNlQ2hhclJlZikgaHRtbFBhcnNlQ2hhclJlZiBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxQYXJzZUNoYXJSZWZfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxQYXJzZUNoYXJSZWYKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFBhcnNlQ2hhclJlZikgaHRtbFBhcnNlQ2hhclJlZl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxQYXJzZUNoYXJSZWYgaHRtbFBhcnNlQ2hhclJlZl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfUFVTSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFBhcnNlQ2h1bmsKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFBhcnNlQ2h1bmspIGh0bWxQYXJzZUNodW5rIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFBhcnNlQ2h1bmtfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxQYXJzZUNodW5rCitleHRlcm4gX190eXBlb2YgKGh0bWxQYXJzZUNodW5rKSBodG1sUGFyc2VDaHVua19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxQYXJzZUNodW5rIGh0bWxQYXJzZUNodW5rX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFBhcnNlRG9jCitleHRlcm4gX190eXBlb2YgKGh0bWxQYXJzZURvYykgaHRtbFBhcnNlRG9jIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFBhcnNlRG9jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sUGFyc2VEb2MKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFBhcnNlRG9jKSBodG1sUGFyc2VEb2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sUGFyc2VEb2MgaHRtbFBhcnNlRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFBhcnNlRG9jdW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFBhcnNlRG9jdW1lbnQpIGh0bWxQYXJzZURvY3VtZW50IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFBhcnNlRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxQYXJzZURvY3VtZW50CitleHRlcm4gX190eXBlb2YgKGh0bWxQYXJzZURvY3VtZW50KSBodG1sUGFyc2VEb2N1bWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxQYXJzZURvY3VtZW50IGh0bWxQYXJzZURvY3VtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFBhcnNlRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mIChodG1sUGFyc2VFbGVtZW50KSBodG1sUGFyc2VFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFBhcnNlRWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbFBhcnNlRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mIChodG1sUGFyc2VFbGVtZW50KSBodG1sUGFyc2VFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbFBhcnNlRWxlbWVudCBodG1sUGFyc2VFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFBhcnNlRW50aXR5UmVmCitleHRlcm4gX190eXBlb2YgKGh0bWxQYXJzZUVudGl0eVJlZikgaHRtbFBhcnNlRW50aXR5UmVmIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFBhcnNlRW50aXR5UmVmX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sUGFyc2VFbnRpdHlSZWYKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFBhcnNlRW50aXR5UmVmKSBodG1sUGFyc2VFbnRpdHlSZWZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sUGFyc2VFbnRpdHlSZWYgaHRtbFBhcnNlRW50aXR5UmVmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFBhcnNlRmlsZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sUGFyc2VGaWxlKSBodG1sUGFyc2VGaWxlIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFBhcnNlRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbFBhcnNlRmlsZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sUGFyc2VGaWxlKSBodG1sUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbFBhcnNlRmlsZSBodG1sUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFJlYWREb2MKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFJlYWREb2MpIGh0bWxSZWFkRG9jIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFJlYWREb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxSZWFkRG9jCitleHRlcm4gX190eXBlb2YgKGh0bWxSZWFkRG9jKSBodG1sUmVhZERvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxSZWFkRG9jIGh0bWxSZWFkRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFJlYWRGZAorZXh0ZXJuIF9fdHlwZW9mIChodG1sUmVhZEZkKSBodG1sUmVhZEZkIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFJlYWRGZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbFJlYWRGZAorZXh0ZXJuIF9fdHlwZW9mIChodG1sUmVhZEZkKSBodG1sUmVhZEZkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbFJlYWRGZCBodG1sUmVhZEZkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFJlYWRGaWxlCitleHRlcm4gX190eXBlb2YgKGh0bWxSZWFkRmlsZSkgaHRtbFJlYWRGaWxlIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFJlYWRGaWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sUmVhZEZpbGUKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFJlYWRGaWxlKSBodG1sUmVhZEZpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sUmVhZEZpbGUgaHRtbFJlYWRGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFJlYWRJTworZXh0ZXJuIF9fdHlwZW9mIChodG1sUmVhZElPKSBodG1sUmVhZElPIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFJlYWRJT19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbFJlYWRJTworZXh0ZXJuIF9fdHlwZW9mIChodG1sUmVhZElPKSBodG1sUmVhZElPX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbFJlYWRJTyBodG1sUmVhZElPX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFJlYWRNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFJlYWRNZW1vcnkpIGh0bWxSZWFkTWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFJlYWRNZW1vcnlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxSZWFkTWVtb3J5CitleHRlcm4gX190eXBlb2YgKGh0bWxSZWFkTWVtb3J5KSBodG1sUmVhZE1lbW9yeV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxSZWFkTWVtb3J5IGh0bWxSZWFkTWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFNBWFBhcnNlRG9jCitleHRlcm4gX190eXBlb2YgKGh0bWxTQVhQYXJzZURvYykgaHRtbFNBWFBhcnNlRG9jIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFNBWFBhcnNlRG9jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sU0FYUGFyc2VEb2MKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFNBWFBhcnNlRG9jKSBodG1sU0FYUGFyc2VEb2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sU0FYUGFyc2VEb2MgaHRtbFNBWFBhcnNlRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1McGFyc2VyCisjdW5kZWYgaHRtbFNBWFBhcnNlRmlsZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sU0FYUGFyc2VGaWxlKSBodG1sU0FYUGFyc2VGaWxlIF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFNBWFBhcnNlRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbFNBWFBhcnNlRmlsZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sU0FYUGFyc2VGaWxlKSBodG1sU0FYUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbFNBWFBhcnNlRmlsZSBodG1sU0FYUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHRyZWUKKyN1bmRlZiBodG1sU2F2ZUZpbGUKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFNhdmVGaWxlKSBodG1sU2F2ZUZpbGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJodG1sU2F2ZUZpbGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxTYXZlRmlsZQorZXh0ZXJuIF9fdHlwZW9mIChodG1sU2F2ZUZpbGUpIGh0bWxTYXZlRmlsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxTYXZlRmlsZSBodG1sU2F2ZUZpbGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1MdHJlZQorI3VuZGVmIGh0bWxTYXZlRmlsZUVuYworZXh0ZXJuIF9fdHlwZW9mIChodG1sU2F2ZUZpbGVFbmMpIGh0bWxTYXZlRmlsZUVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxTYXZlRmlsZUVuY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaHRtbFNhdmVGaWxlRW5jCitleHRlcm4gX190eXBlb2YgKGh0bWxTYXZlRmlsZUVuYykgaHRtbFNhdmVGaWxlRW5jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaHRtbFNhdmVGaWxlRW5jIGh0bWxTYXZlRmlsZUVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX0hUTUx0cmVlCisjdW5kZWYgaHRtbFNhdmVGaWxlRm9ybWF0CitleHRlcm4gX190eXBlb2YgKGh0bWxTYXZlRmlsZUZvcm1hdCkgaHRtbFNhdmVGaWxlRm9ybWF0IF9fYXR0cmlidXRlKChhbGlhcygiaHRtbFNhdmVGaWxlRm9ybWF0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiBodG1sU2F2ZUZpbGVGb3JtYXQKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFNhdmVGaWxlRm9ybWF0KSBodG1sU2F2ZUZpbGVGb3JtYXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSBodG1sU2F2ZUZpbGVGb3JtYXQgaHRtbFNhdmVGaWxlRm9ybWF0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9IVE1MdHJlZQorI3VuZGVmIGh0bWxTZXRNZXRhRW5jb2RpbmcKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFNldE1ldGFFbmNvZGluZykgaHRtbFNldE1ldGFFbmNvZGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxTZXRNZXRhRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxTZXRNZXRhRW5jb2RpbmcKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFNldE1ldGFFbmNvZGluZykgaHRtbFNldE1ldGFFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxTZXRNZXRhRW5jb2RpbmcgaHRtbFNldE1ldGFFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fSFRNTHBhcnNlcgorI3VuZGVmIGh0bWxUYWdMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFRhZ0xvb2t1cCkgaHRtbFRhZ0xvb2t1cCBfX2F0dHJpYnV0ZSgoYWxpYXMoImh0bWxUYWdMb29rdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIGh0bWxUYWdMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoaHRtbFRhZ0xvb2t1cCkgaHRtbFRhZ0xvb2t1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIGh0bWxUYWdMb29rdXAgaHRtbFRhZ0xvb2t1cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiBpbnB1dFBvcAorZXh0ZXJuIF9fdHlwZW9mIChpbnB1dFBvcCkgaW5wdXRQb3AgX19hdHRyaWJ1dGUoKGFsaWFzKCJpbnB1dFBvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaW5wdXRQb3AKK2V4dGVybiBfX3R5cGVvZiAoaW5wdXRQb3ApIGlucHV0UG9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaW5wdXRQb3AgaW5wdXRQb3BfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIGlucHV0UHVzaAorZXh0ZXJuIF9fdHlwZW9mIChpbnB1dFB1c2gpIGlucHV0UHVzaCBfX2F0dHJpYnV0ZSgoYWxpYXMoImlucHV0UHVzaF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgaW5wdXRQdXNoCitleHRlcm4gX190eXBlb2YgKGlucHV0UHVzaCkgaW5wdXRQdXNoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgaW5wdXRQdXNoIGlucHV0UHVzaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgbmFtZVBvcAorZXh0ZXJuIF9fdHlwZW9mIChuYW1lUG9wKSBuYW1lUG9wIF9fYXR0cmlidXRlKChhbGlhcygibmFtZVBvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgbmFtZVBvcAorZXh0ZXJuIF9fdHlwZW9mIChuYW1lUG9wKSBuYW1lUG9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgbmFtZVBvcCBuYW1lUG9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiBuYW1lUHVzaAorZXh0ZXJuIF9fdHlwZW9mIChuYW1lUHVzaCkgbmFtZVB1c2ggX19hdHRyaWJ1dGUoKGFsaWFzKCJuYW1lUHVzaF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgbmFtZVB1c2gKK2V4dGVybiBfX3R5cGVvZiAobmFtZVB1c2gpIG5hbWVQdXNoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgbmFtZVB1c2ggbmFtZVB1c2hfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIG5vZGVQb3AKK2V4dGVybiBfX3R5cGVvZiAobm9kZVBvcCkgbm9kZVBvcCBfX2F0dHJpYnV0ZSgoYWxpYXMoIm5vZGVQb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIG5vZGVQb3AKK2V4dGVybiBfX3R5cGVvZiAobm9kZVBvcCkgbm9kZVBvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIG5vZGVQb3Agbm9kZVBvcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgbm9kZVB1c2gKK2V4dGVybiBfX3R5cGVvZiAobm9kZVB1c2gpIG5vZGVQdXNoIF9fYXR0cmlidXRlKChhbGlhcygibm9kZVB1c2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIG5vZGVQdXNoCitleHRlcm4gX190eXBlb2YgKG5vZGVQdXNoKSBub2RlUHVzaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIG5vZGVQdXNoIG5vZGVQdXNoX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgdmFsdWVQb3AKK2V4dGVybiBfX3R5cGVvZiAodmFsdWVQb3ApIHZhbHVlUG9wIF9fYXR0cmlidXRlKChhbGlhcygidmFsdWVQb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHZhbHVlUG9wCitleHRlcm4gX190eXBlb2YgKHZhbHVlUG9wKSB2YWx1ZVBvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHZhbHVlUG9wIHZhbHVlUG9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB2YWx1ZVB1c2gKK2V4dGVybiBfX3R5cGVvZiAodmFsdWVQdXNoKSB2YWx1ZVB1c2ggX19hdHRyaWJ1dGUoKGFsaWFzKCJ2YWx1ZVB1c2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHZhbHVlUHVzaAorZXh0ZXJuIF9fdHlwZW9mICh2YWx1ZVB1c2gpIHZhbHVlUHVzaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHZhbHVlUHVzaCB2YWx1ZVB1c2hfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2NhdGFsb2cKKyN1bmRlZiB4bWxBQ2F0YWxvZ0FkZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxBQ2F0YWxvZ0FkZCkgeG1sQUNhdGFsb2dBZGQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBQ2F0YWxvZ0FkZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQUNhdGFsb2dBZGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQUNhdGFsb2dBZGQpIHhtbEFDYXRhbG9nQWRkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQUNhdGFsb2dBZGQgeG1sQUNhdGFsb2dBZGRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQUNhdGFsb2dEdW1wCitleHRlcm4gX190eXBlb2YgKHhtbEFDYXRhbG9nRHVtcCkgeG1sQUNhdGFsb2dEdW1wIF9fYXR0cmlidXRlKChhbGlhcygieG1sQUNhdGFsb2dEdW1wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBQ2F0YWxvZ0R1bXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sQUNhdGFsb2dEdW1wKSB4bWxBQ2F0YWxvZ0R1bXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBQ2F0YWxvZ0R1bXAgeG1sQUNhdGFsb2dEdW1wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQUNhdGFsb2dSZW1vdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQUNhdGFsb2dSZW1vdmUpIHhtbEFDYXRhbG9nUmVtb3ZlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQUNhdGFsb2dSZW1vdmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEFDYXRhbG9nUmVtb3ZlCitleHRlcm4gX190eXBlb2YgKHhtbEFDYXRhbG9nUmVtb3ZlKSB4bWxBQ2F0YWxvZ1JlbW92ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEFDYXRhbG9nUmVtb3ZlIHhtbEFDYXRhbG9nUmVtb3ZlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQUNhdGFsb2dSZXNvbHZlCitleHRlcm4gX190eXBlb2YgKHhtbEFDYXRhbG9nUmVzb2x2ZSkgeG1sQUNhdGFsb2dSZXNvbHZlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQUNhdGFsb2dSZXNvbHZlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBQ2F0YWxvZ1Jlc29sdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQUNhdGFsb2dSZXNvbHZlKSB4bWxBQ2F0YWxvZ1Jlc29sdmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBQ2F0YWxvZ1Jlc29sdmUgeG1sQUNhdGFsb2dSZXNvbHZlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljCitleHRlcm4gX190eXBlb2YgKHhtbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYykgeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sQUNhdGFsb2dSZXNvbHZlUHVibGljX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljKSB4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMgeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtCitleHRlcm4gX190eXBlb2YgKHhtbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbSkgeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtIF9fYXR0cmlidXRlKChhbGlhcygieG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtKSB4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW1fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0geG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQUNhdGFsb2dSZXNvbHZlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbEFDYXRhbG9nUmVzb2x2ZVVSSSkgeG1sQUNhdGFsb2dSZXNvbHZlVVJJIF9fYXR0cmlidXRlKChhbGlhcygieG1sQUNhdGFsb2dSZXNvbHZlVVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkKK2V4dGVybiBfX3R5cGVvZiAoeG1sQUNhdGFsb2dSZXNvbHZlVVJJKSB4bWxBQ2F0YWxvZ1Jlc29sdmVVUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkgeG1sQUNhdGFsb2dSZXNvbHZlVVJJX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sQWRkQXR0cmlidXRlRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGRBdHRyaWJ1dGVEZWNsKSB4bWxBZGRBdHRyaWJ1dGVEZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sQWRkQXR0cmlidXRlRGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQWRkQXR0cmlidXRlRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGRBdHRyaWJ1dGVEZWNsKSB4bWxBZGRBdHRyaWJ1dGVEZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQWRkQXR0cmlidXRlRGVjbCB4bWxBZGRBdHRyaWJ1dGVEZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQWRkQ2hpbGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkQ2hpbGQpIHhtbEFkZENoaWxkIF9fYXR0cmlidXRlKChhbGlhcygieG1sQWRkQ2hpbGRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEFkZENoaWxkCitleHRlcm4gX190eXBlb2YgKHhtbEFkZENoaWxkKSB4bWxBZGRDaGlsZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEFkZENoaWxkIHhtbEFkZENoaWxkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQWRkQ2hpbGRMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbEFkZENoaWxkTGlzdCkgeG1sQWRkQ2hpbGRMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQWRkQ2hpbGRMaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBZGRDaGlsZExpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkQ2hpbGRMaXN0KSB4bWxBZGRDaGlsZExpc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBZGRDaGlsZExpc3QgeG1sQWRkQ2hpbGRMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbnRpdGllcworI3VuZGVmIHhtbEFkZERvY0VudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGREb2NFbnRpdHkpIHhtbEFkZERvY0VudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEFkZERvY0VudGl0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQWRkRG9jRW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbEFkZERvY0VudGl0eSkgeG1sQWRkRG9jRW50aXR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQWRkRG9jRW50aXR5IHhtbEFkZERvY0VudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxBZGREdGRFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkRHRkRW50aXR5KSB4bWxBZGREdGRFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBZGREdGRFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEFkZER0ZEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGREdGRFbnRpdHkpIHhtbEFkZER0ZEVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEFkZER0ZEVudGl0eSB4bWxBZGREdGRFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sQWRkRWxlbWVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkRWxlbWVudERlY2wpIHhtbEFkZEVsZW1lbnREZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sQWRkRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEFkZEVsZW1lbnREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbEFkZEVsZW1lbnREZWNsKSB4bWxBZGRFbGVtZW50RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEFkZEVsZW1lbnREZWNsIHhtbEFkZEVsZW1lbnREZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbmNvZGluZworI3VuZGVmIHhtbEFkZEVuY29kaW5nQWxpYXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkRW5jb2RpbmdBbGlhcykgeG1sQWRkRW5jb2RpbmdBbGlhcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEFkZEVuY29kaW5nQWxpYXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEFkZEVuY29kaW5nQWxpYXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkRW5jb2RpbmdBbGlhcykgeG1sQWRkRW5jb2RpbmdBbGlhc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEFkZEVuY29kaW5nQWxpYXMgeG1sQWRkRW5jb2RpbmdBbGlhc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxBZGRJRAorZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGRJRCkgeG1sQWRkSUQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBZGRJRF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQWRkSUQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkSUQpIHhtbEFkZElEX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQWRkSUQgeG1sQWRkSURfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxBZGROZXh0U2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGROZXh0U2libGluZykgeG1sQWRkTmV4dFNpYmxpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBZGROZXh0U2libGluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQWRkTmV4dFNpYmxpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkTmV4dFNpYmxpbmcpIHhtbEFkZE5leHRTaWJsaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQWRkTmV4dFNpYmxpbmcgeG1sQWRkTmV4dFNpYmxpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sQWRkTm90YXRpb25EZWNsCitleHRlcm4gX190eXBlb2YgKHhtbEFkZE5vdGF0aW9uRGVjbCkgeG1sQWRkTm90YXRpb25EZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sQWRkTm90YXRpb25EZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBZGROb3RhdGlvbkRlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkTm90YXRpb25EZWNsKSB4bWxBZGROb3RhdGlvbkRlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBZGROb3RhdGlvbkRlY2wgeG1sQWRkTm90YXRpb25EZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxBZGRQcmV2U2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGRQcmV2U2libGluZykgeG1sQWRkUHJldlNpYmxpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBZGRQcmV2U2libGluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQWRkUHJldlNpYmxpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkUHJldlNpYmxpbmcpIHhtbEFkZFByZXZTaWJsaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQWRkUHJldlNpYmxpbmcgeG1sQWRkUHJldlNpYmxpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxBZGRSZWYKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWRkUmVmKSB4bWxBZGRSZWYgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBZGRSZWZfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEFkZFJlZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBZGRSZWYpIHhtbEFkZFJlZl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEFkZFJlZiB4bWxBZGRSZWZfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxBZGRTaWJsaW5nCitleHRlcm4gX190eXBlb2YgKHhtbEFkZFNpYmxpbmcpIHhtbEFkZFNpYmxpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBZGRTaWJsaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBZGRTaWJsaW5nCitleHRlcm4gX190eXBlb2YgKHhtbEFkZFNpYmxpbmcpIHhtbEFkZFNpYmxpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBZGRTaWJsaW5nIHhtbEFkZFNpYmxpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sQWxsb2NPdXRwdXRCdWZmZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sQWxsb2NPdXRwdXRCdWZmZXIpIHhtbEFsbG9jT3V0cHV0QnVmZmVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sQWxsb2NPdXRwdXRCdWZmZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEFsbG9jT3V0cHV0QnVmZmVyCitleHRlcm4gX190eXBlb2YgKHhtbEFsbG9jT3V0cHV0QnVmZmVyKSB4bWxBbGxvY091dHB1dEJ1ZmZlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEFsbG9jT3V0cHV0QnVmZmVyIHhtbEFsbG9jT3V0cHV0QnVmZmVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyKSB4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyKSB4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlciB4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQpIHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50KSB4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50IHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbEF1dG9tYXRhQ29tcGlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YUNvbXBpbGUpIHhtbEF1dG9tYXRhQ29tcGlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEF1dG9tYXRhQ29tcGlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQXV0b21hdGFDb21waWxlCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhQ29tcGlsZSkgeG1sQXV0b21hdGFDb21waWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQXV0b21hdGFDb21waWxlIHhtbEF1dG9tYXRhQ29tcGlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxBdXRvbWF0YUdldEluaXRTdGF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YUdldEluaXRTdGF0ZSkgeG1sQXV0b21hdGFHZXRJbml0U3RhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBdXRvbWF0YUdldEluaXRTdGF0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQXV0b21hdGFHZXRJbml0U3RhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFHZXRJbml0U3RhdGUpIHhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQXV0b21hdGFHZXRJbml0U3RhdGUgeG1sQXV0b21hdGFHZXRJbml0U3RhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sQXV0b21hdGFJc0RldGVybWluaXN0CitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdCkgeG1sQXV0b21hdGFJc0RldGVybWluaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQXV0b21hdGFJc0RldGVybWluaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFJc0RldGVybWluaXN0KSB4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QgeG1sQXV0b21hdGFJc0RldGVybWluaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbEF1dG9tYXRhTmV3QWxsVHJhbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdBbGxUcmFucykgeG1sQXV0b21hdGFOZXdBbGxUcmFucyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEF1dG9tYXRhTmV3QWxsVHJhbnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF1dG9tYXRhTmV3QWxsVHJhbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdBbGxUcmFucykgeG1sQXV0b21hdGFOZXdBbGxUcmFuc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF1dG9tYXRhTmV3QWxsVHJhbnMgeG1sQXV0b21hdGFOZXdBbGxUcmFuc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zKSB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF1dG9tYXRhTmV3Q291bnRUcmFucworZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMpIHhtbEF1dG9tYXRhTmV3Q291bnRUcmFuc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF1dG9tYXRhTmV3Q291bnRUcmFucyB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyKSB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyIF9fYXR0cmlidXRlKChhbGlhcygieG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyKSB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMiB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zKSB4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucworZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucykgeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyB4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFuc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxBdXRvbWF0YU5ld0NvdW50ZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdDb3VudGVyKSB4bWxBdXRvbWF0YU5ld0NvdW50ZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBdXRvbWF0YU5ld0NvdW50ZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF1dG9tYXRhTmV3Q291bnRlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YU5ld0NvdW50ZXIpIHhtbEF1dG9tYXRhTmV3Q291bnRlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF1dG9tYXRhTmV3Q291bnRlciB4bWxBdXRvbWF0YU5ld0NvdW50ZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMpIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zKSB4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFuc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbEF1dG9tYXRhTmV3RXBzaWxvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YU5ld0Vwc2lsb24pIHhtbEF1dG9tYXRhTmV3RXBzaWxvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEF1dG9tYXRhTmV3RXBzaWxvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQXV0b21hdGFOZXdFcHNpbG9uCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3RXBzaWxvbikgeG1sQXV0b21hdGFOZXdFcHNpbG9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQXV0b21hdGFOZXdFcHNpbG9uIHhtbEF1dG9tYXRhTmV3RXBzaWxvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxBdXRvbWF0YU5ld05lZ1RyYW5zCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3TmVnVHJhbnMpIHhtbEF1dG9tYXRhTmV3TmVnVHJhbnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBdXRvbWF0YU5ld05lZ1RyYW5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBdXRvbWF0YU5ld05lZ1RyYW5zCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3TmVnVHJhbnMpIHhtbEF1dG9tYXRhTmV3TmVnVHJhbnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBdXRvbWF0YU5ld05lZ1RyYW5zIHhtbEF1dG9tYXRhTmV3TmVnVHJhbnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMpIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sQXV0b21hdGFOZXdPbmNlVHJhbnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zKSB4bWxBdXRvbWF0YU5ld09uY2VUcmFuc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMgorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIpIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMikgeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxBdXRvbWF0YU5ld1N0YXRlCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3U3RhdGUpIHhtbEF1dG9tYXRhTmV3U3RhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBdXRvbWF0YU5ld1N0YXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBdXRvbWF0YU5ld1N0YXRlCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3U3RhdGUpIHhtbEF1dG9tYXRhTmV3U3RhdGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBdXRvbWF0YU5ld1N0YXRlIHhtbEF1dG9tYXRhTmV3U3RhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbikgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uKSB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24geG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMikgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMikgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlKSB4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUpIHhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZSB4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbEJvb2xUb1RleHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQm9vbFRvVGV4dCkgeG1sQm9vbFRvVGV4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEJvb2xUb1RleHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEJvb2xUb1RleHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQm9vbFRvVGV4dCkgeG1sQm9vbFRvVGV4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEJvb2xUb1RleHQgeG1sQm9vbFRvVGV4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQWRkCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlckFkZCkgeG1sQnVmZmVyQWRkIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQWRkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJBZGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyQWRkKSB4bWxCdWZmZXJBZGRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJBZGQgeG1sQnVmZmVyQWRkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQWRkSGVhZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJBZGRIZWFkKSB4bWxCdWZmZXJBZGRIZWFkIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQWRkSGVhZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyQWRkSGVhZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJBZGRIZWFkKSB4bWxCdWZmZXJBZGRIZWFkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyQWRkSGVhZCB4bWxCdWZmZXJBZGRIZWFkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQ0NhdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJDQ2F0KSB4bWxCdWZmZXJDQ2F0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQ0NhdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyQ0NhdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJDQ2F0KSB4bWxCdWZmZXJDQ2F0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyQ0NhdCB4bWxCdWZmZXJDQ2F0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQ2F0CitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlckNhdCkgeG1sQnVmZmVyQ2F0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQ2F0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJDYXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyQ2F0KSB4bWxCdWZmZXJDYXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJDYXQgeG1sQnVmZmVyQ2F0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQ29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJDb250ZW50KSB4bWxCdWZmZXJDb250ZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQ29udGVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyQ29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJDb250ZW50KSB4bWxCdWZmZXJDb250ZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyQ29udGVudCB4bWxCdWZmZXJDb250ZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQ3JlYXRlCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlckNyZWF0ZSkgeG1sQnVmZmVyQ3JlYXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQ3JlYXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJDcmVhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyQ3JlYXRlKSB4bWxCdWZmZXJDcmVhdGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJDcmVhdGUgeG1sQnVmZmVyQ3JlYXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQ3JlYXRlU2l6ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJDcmVhdGVTaXplKSB4bWxCdWZmZXJDcmVhdGVTaXplIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQ3JlYXRlU2l6ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyQ3JlYXRlU2l6ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJDcmVhdGVTaXplKSB4bWxCdWZmZXJDcmVhdGVTaXplX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyQ3JlYXRlU2l6ZSB4bWxCdWZmZXJDcmVhdGVTaXplX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyQ3JlYXRlU3RhdGljCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlckNyZWF0ZVN0YXRpYykgeG1sQnVmZmVyQ3JlYXRlU3RhdGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyQ3JlYXRlU3RhdGljX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJDcmVhdGVTdGF0aWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyQ3JlYXRlU3RhdGljKSB4bWxCdWZmZXJDcmVhdGVTdGF0aWNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJDcmVhdGVTdGF0aWMgeG1sQnVmZmVyQ3JlYXRlU3RhdGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJEdW1wKSB4bWxCdWZmZXJEdW1wIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyRHVtcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJEdW1wKSB4bWxCdWZmZXJEdW1wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyRHVtcCB4bWxCdWZmZXJEdW1wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyRW1wdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyRW1wdHkpIHhtbEJ1ZmZlckVtcHR5IF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyRW1wdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEJ1ZmZlckVtcHR5CitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlckVtcHR5KSB4bWxCdWZmZXJFbXB0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEJ1ZmZlckVtcHR5IHhtbEJ1ZmZlckVtcHR5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJGcmVlKSB4bWxCdWZmZXJGcmVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyRnJlZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJGcmVlKSB4bWxCdWZmZXJGcmVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyRnJlZSB4bWxCdWZmZXJGcmVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyR3JvdworZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJHcm93KSB4bWxCdWZmZXJHcm93IF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyR3Jvd19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyR3JvdworZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJHcm93KSB4bWxCdWZmZXJHcm93X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyR3JvdyB4bWxCdWZmZXJHcm93X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyTGVuZ3RoCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlckxlbmd0aCkgeG1sQnVmZmVyTGVuZ3RoIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyTGVuZ3RoX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJMZW5ndGgKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyTGVuZ3RoKSB4bWxCdWZmZXJMZW5ndGhfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJMZW5ndGggeG1sQnVmZmVyTGVuZ3RoX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyUmVzaXplCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlclJlc2l6ZSkgeG1sQnVmZmVyUmVzaXplIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyUmVzaXplX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJSZXNpemUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyUmVzaXplKSB4bWxCdWZmZXJSZXNpemVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJSZXNpemUgeG1sQnVmZmVyUmVzaXplX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lKSB4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lKSB4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSB4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyU2hyaW5rCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlclNocmluaykgeG1sQnVmZmVyU2hyaW5rIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyU2hyaW5rX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJTaHJpbmsKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyU2hyaW5rKSB4bWxCdWZmZXJTaHJpbmtfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJTaHJpbmsgeG1sQnVmZmVyU2hyaW5rX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyV3JpdGVDSEFSCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlcldyaXRlQ0hBUikgeG1sQnVmZmVyV3JpdGVDSEFSIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyV3JpdGVDSEFSX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJXcml0ZUNIQVIKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyV3JpdGVDSEFSKSB4bWxCdWZmZXJXcml0ZUNIQVJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJXcml0ZUNIQVIgeG1sQnVmZmVyV3JpdGVDSEFSX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyV3JpdGVDaGFyCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlcldyaXRlQ2hhcikgeG1sQnVmZmVyV3JpdGVDaGFyIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyV3JpdGVDaGFyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWZmZXJXcml0ZUNoYXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyV3JpdGVDaGFyKSB4bWxCdWZmZXJXcml0ZUNoYXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWZmZXJXcml0ZUNoYXIgeG1sQnVmZmVyV3JpdGVDaGFyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcpIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKSB4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQnVpbGRRTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWlsZFFOYW1lKSB4bWxCdWlsZFFOYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sQnVpbGRRTmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQnVpbGRRTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWlsZFFOYW1lKSB4bWxCdWlsZFFOYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQnVpbGRRTmFtZSB4bWxCdWlsZFFOYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV91cmkKKyN1bmRlZiB4bWxCdWlsZFJlbGF0aXZlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbEJ1aWxkUmVsYXRpdmVVUkkpIHhtbEJ1aWxkUmVsYXRpdmVVUkkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxCdWlsZFJlbGF0aXZlVVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWlsZFJlbGF0aXZlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbEJ1aWxkUmVsYXRpdmVVUkkpIHhtbEJ1aWxkUmVsYXRpdmVVUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWlsZFJlbGF0aXZlVVJJIHhtbEJ1aWxkUmVsYXRpdmVVUklfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3VyaQorI3VuZGVmIHhtbEJ1aWxkVVJJCitleHRlcm4gX190eXBlb2YgKHhtbEJ1aWxkVVJJKSB4bWxCdWlsZFVSSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEJ1aWxkVVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxCdWlsZFVSSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxCdWlsZFVSSSkgeG1sQnVpbGRVUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxCdWlsZFVSSSB4bWxCdWlsZFVSSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW5jb2RpbmcKKyN1bmRlZiB4bWxCeXRlQ29uc3VtZWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQnl0ZUNvbnN1bWVkKSB4bWxCeXRlQ29uc3VtZWQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxCeXRlQ29uc3VtZWRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEJ5dGVDb25zdW1lZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxCeXRlQ29uc3VtZWQpIHhtbEJ5dGVDb25zdW1lZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEJ5dGVDb25zdW1lZCB4bWxCeXRlQ29uc3VtZWRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQzE0Tl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fYzE0bgorI3VuZGVmIHhtbEMxNE5Eb2NEdW1wTWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbEMxNE5Eb2NEdW1wTWVtb3J5KSB4bWxDMTRORG9jRHVtcE1lbW9yeSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEMxNE5Eb2NEdW1wTWVtb3J5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDMTRORG9jRHVtcE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDMTRORG9jRHVtcE1lbW9yeSkgeG1sQzE0TkRvY0R1bXBNZW1vcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDMTRORG9jRHVtcE1lbW9yeSB4bWxDMTRORG9jRHVtcE1lbW9yeV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0MxNE5fRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2MxNG4KKyN1bmRlZiB4bWxDMTRORG9jU2F2ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDMTRORG9jU2F2ZSkgeG1sQzE0TkRvY1NhdmUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDMTRORG9jU2F2ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQzE0TkRvY1NhdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQzE0TkRvY1NhdmUpIHhtbEMxNE5Eb2NTYXZlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQzE0TkRvY1NhdmUgeG1sQzE0TkRvY1NhdmVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9DMTROX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jMTRuCisjdW5kZWYgeG1sQzE0TkRvY1NhdmVUbworZXh0ZXJuIF9fdHlwZW9mICh4bWxDMTRORG9jU2F2ZVRvKSB4bWxDMTRORG9jU2F2ZVRvIF9fYXR0cmlidXRlKChhbGlhcygieG1sQzE0TkRvY1NhdmVUb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQzE0TkRvY1NhdmVUbworZXh0ZXJuIF9fdHlwZW9mICh4bWxDMTRORG9jU2F2ZVRvKSB4bWxDMTRORG9jU2F2ZVRvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQzE0TkRvY1NhdmVUbyB4bWxDMTRORG9jU2F2ZVRvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQzE0Tl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fYzE0bgorI3VuZGVmIHhtbEMxNE5FeGVjdXRlCitleHRlcm4gX190eXBlb2YgKHhtbEMxNE5FeGVjdXRlKSB4bWxDMTRORXhlY3V0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEMxNE5FeGVjdXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDMTRORXhlY3V0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDMTRORXhlY3V0ZSkgeG1sQzE0TkV4ZWN1dGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDMTRORXhlY3V0ZSB4bWxDMTRORXhlY3V0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV91cmkKKyN1bmRlZiB4bWxDYW5vbmljUGF0aAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYW5vbmljUGF0aCkgeG1sQ2Fub25pY1BhdGggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDYW5vbmljUGF0aF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2Fub25pY1BhdGgKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2Fub25pY1BhdGgpIHhtbENhbm9uaWNQYXRoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2Fub25pY1BhdGggeG1sQ2Fub25pY1BhdGhfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQ2F0YWxvZ0FkZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nQWRkKSB4bWxDYXRhbG9nQWRkIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2F0YWxvZ0FkZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2F0YWxvZ0FkZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nQWRkKSB4bWxDYXRhbG9nQWRkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2F0YWxvZ0FkZCB4bWxDYXRhbG9nQWRkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQ2F0YWxvZ0FkZExvY2FsCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dBZGRMb2NhbCkgeG1sQ2F0YWxvZ0FkZExvY2FsIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2F0YWxvZ0FkZExvY2FsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nQWRkTG9jYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0FkZExvY2FsKSB4bWxDYXRhbG9nQWRkTG9jYWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nQWRkTG9jYWwgeG1sQ2F0YWxvZ0FkZExvY2FsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQ2F0YWxvZ0NsZWFudXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0NsZWFudXApIHhtbENhdGFsb2dDbGVhbnVwIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2F0YWxvZ0NsZWFudXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dDbGVhbnVwCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dDbGVhbnVwKSB4bWxDYXRhbG9nQ2xlYW51cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dDbGVhbnVwIHhtbENhdGFsb2dDbGVhbnVwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sQ2F0YWxvZ0NvbnZlcnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0NvbnZlcnQpIHhtbENhdGFsb2dDb252ZXJ0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2F0YWxvZ0NvbnZlcnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dDb252ZXJ0CitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dDb252ZXJ0KSB4bWxDYXRhbG9nQ29udmVydF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dDb252ZXJ0IHhtbENhdGFsb2dDb252ZXJ0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dEdW1wCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dEdW1wKSB4bWxDYXRhbG9nRHVtcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dEdW1wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nRHVtcCkgeG1sQ2F0YWxvZ0R1bXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nRHVtcCB4bWxDYXRhbG9nRHVtcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dGcmVlTG9jYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0ZyZWVMb2NhbCkgeG1sQ2F0YWxvZ0ZyZWVMb2NhbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dGcmVlTG9jYWxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dGcmVlTG9jYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0ZyZWVMb2NhbCkgeG1sQ2F0YWxvZ0ZyZWVMb2NhbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dGcmVlTG9jYWwgeG1sQ2F0YWxvZ0ZyZWVMb2NhbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dHZXREZWZhdWx0cworZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nR2V0RGVmYXVsdHMpIHhtbENhdGFsb2dHZXREZWZhdWx0cyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dHZXREZWZhdWx0c19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2F0YWxvZ0dldERlZmF1bHRzCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dHZXREZWZhdWx0cykgeG1sQ2F0YWxvZ0dldERlZmF1bHRzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2F0YWxvZ0dldERlZmF1bHRzIHhtbENhdGFsb2dHZXREZWZhdWx0c19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dHZXRQdWJsaWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0dldFB1YmxpYykgeG1sQ2F0YWxvZ0dldFB1YmxpYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dHZXRQdWJsaWNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dHZXRQdWJsaWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0dldFB1YmxpYykgeG1sQ2F0YWxvZ0dldFB1YmxpY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dHZXRQdWJsaWMgeG1sQ2F0YWxvZ0dldFB1YmxpY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dHZXRTeXN0ZW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0dldFN5c3RlbSkgeG1sQ2F0YWxvZ0dldFN5c3RlbSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dHZXRTeXN0ZW1fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dHZXRTeXN0ZW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0dldFN5c3RlbSkgeG1sQ2F0YWxvZ0dldFN5c3RlbV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dHZXRTeXN0ZW0geG1sQ2F0YWxvZ0dldFN5c3RlbV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dJc0VtcHR5CitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dJc0VtcHR5KSB4bWxDYXRhbG9nSXNFbXB0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dJc0VtcHR5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nSXNFbXB0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nSXNFbXB0eSkgeG1sQ2F0YWxvZ0lzRW1wdHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nSXNFbXB0eSB4bWxDYXRhbG9nSXNFbXB0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dMb2NhbFJlc29sdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSkgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dMb2NhbFJlc29sdmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dMb2NhbFJlc29sdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSkgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dMb2NhbFJlc29sdmUgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkkKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSkgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dMb2NhbFJlc29sdmVVUklfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkkKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSkgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dMb2NhbFJlc29sdmVVUkkgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dSZW1vdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ1JlbW92ZSkgeG1sQ2F0YWxvZ1JlbW92ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dSZW1vdmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENhdGFsb2dSZW1vdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2F0YWxvZ1JlbW92ZSkgeG1sQ2F0YWxvZ1JlbW92ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENhdGFsb2dSZW1vdmUgeG1sQ2F0YWxvZ1JlbW92ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dSZXNvbHZlCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dSZXNvbHZlKSB4bWxDYXRhbG9nUmVzb2x2ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dSZXNvbHZlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nUmVzb2x2ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nUmVzb2x2ZSkgeG1sQ2F0YWxvZ1Jlc29sdmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nUmVzb2x2ZSB4bWxDYXRhbG9nUmVzb2x2ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dSZXNvbHZlUHVibGljCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dSZXNvbHZlUHVibGljKSB4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dSZXNvbHZlUHVibGljX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYykgeG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyB4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtKSB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dSZXNvbHZlU3lzdGVtX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSkgeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW1fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dSZXNvbHZlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dSZXNvbHZlVVJJKSB4bWxDYXRhbG9nUmVzb2x2ZVVSSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dSZXNvbHZlVVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nUmVzb2x2ZVVSSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nUmVzb2x2ZVVSSSkgeG1sQ2F0YWxvZ1Jlc29sdmVVUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nUmVzb2x2ZVVSSSB4bWxDYXRhbG9nUmVzb2x2ZVVSSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dTZXREZWJ1ZworZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nU2V0RGVidWcpIHhtbENhdGFsb2dTZXREZWJ1ZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dTZXREZWJ1Z19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2F0YWxvZ1NldERlYnVnCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dTZXREZWJ1ZykgeG1sQ2F0YWxvZ1NldERlYnVnX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2F0YWxvZ1NldERlYnVnIHhtbENhdGFsb2dTZXREZWJ1Z19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyKSB4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcikgeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlciB4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbENhdGFsb2dTZXREZWZhdWx0cworZXh0ZXJuIF9fdHlwZW9mICh4bWxDYXRhbG9nU2V0RGVmYXVsdHMpIHhtbENhdGFsb2dTZXREZWZhdWx0cyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENhdGFsb2dTZXREZWZhdWx0c19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2F0YWxvZ1NldERlZmF1bHRzCitleHRlcm4gX190eXBlb2YgKHhtbENhdGFsb2dTZXREZWZhdWx0cykgeG1sQ2F0YWxvZ1NldERlZmF1bHRzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2F0YWxvZ1NldERlZmF1bHRzIHhtbENhdGFsb2dTZXREZWZhdWx0c19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbmNvZGluZworI3VuZGVmIHhtbENoYXJFbmNDbG9zZUZ1bmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2hhckVuY0Nsb3NlRnVuYykgeG1sQ2hhckVuY0Nsb3NlRnVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENoYXJFbmNDbG9zZUZ1bmNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENoYXJFbmNDbG9zZUZ1bmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2hhckVuY0Nsb3NlRnVuYykgeG1sQ2hhckVuY0Nsb3NlRnVuY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENoYXJFbmNDbG9zZUZ1bmMgeG1sQ2hhckVuY0Nsb3NlRnVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW5jb2RpbmcKKyN1bmRlZiB4bWxDaGFyRW5jRmlyc3RMaW5lCitleHRlcm4gX190eXBlb2YgKHhtbENoYXJFbmNGaXJzdExpbmUpIHhtbENoYXJFbmNGaXJzdExpbmUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDaGFyRW5jRmlyc3RMaW5lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDaGFyRW5jRmlyc3RMaW5lCitleHRlcm4gX190eXBlb2YgKHhtbENoYXJFbmNGaXJzdExpbmUpIHhtbENoYXJFbmNGaXJzdExpbmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDaGFyRW5jRmlyc3RMaW5lIHhtbENoYXJFbmNGaXJzdExpbmVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sQ2hhckVuY0luRnVuYworZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGFyRW5jSW5GdW5jKSB4bWxDaGFyRW5jSW5GdW5jIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2hhckVuY0luRnVuY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2hhckVuY0luRnVuYworZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGFyRW5jSW5GdW5jKSB4bWxDaGFyRW5jSW5GdW5jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2hhckVuY0luRnVuYyB4bWxDaGFyRW5jSW5GdW5jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbmNvZGluZworI3VuZGVmIHhtbENoYXJFbmNPdXRGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbENoYXJFbmNPdXRGdW5jKSB4bWxDaGFyRW5jT3V0RnVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENoYXJFbmNPdXRGdW5jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDaGFyRW5jT3V0RnVuYworZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGFyRW5jT3V0RnVuYykgeG1sQ2hhckVuY091dEZ1bmNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDaGFyRW5jT3V0RnVuYyB4bWxDaGFyRW5jT3V0RnVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fY2h2YWxpZAorI3VuZGVmIHhtbENoYXJJblJhbmdlCitleHRlcm4gX190eXBlb2YgKHhtbENoYXJJblJhbmdlKSB4bWxDaGFySW5SYW5nZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENoYXJJblJhbmdlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDaGFySW5SYW5nZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGFySW5SYW5nZSkgeG1sQ2hhckluUmFuZ2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDaGFySW5SYW5nZSB4bWxDaGFySW5SYW5nZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sQ2hhclN0cmR1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGFyU3RyZHVwKSB4bWxDaGFyU3RyZHVwIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2hhclN0cmR1cF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2hhclN0cmR1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGFyU3RyZHVwKSB4bWxDaGFyU3RyZHVwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2hhclN0cmR1cCB4bWxDaGFyU3RyZHVwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxDaGFyU3RybmR1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGFyU3RybmR1cCkgeG1sQ2hhclN0cm5kdXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDaGFyU3RybmR1cF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2hhclN0cm5kdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2hhclN0cm5kdXApIHhtbENoYXJTdHJuZHVwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2hhclN0cm5kdXAgeG1sQ2hhclN0cm5kdXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sQ2hlY2tGaWxlbmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGVja0ZpbGVuYW1lKSB4bWxDaGVja0ZpbGVuYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2hlY2tGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2hlY2tGaWxlbmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGVja0ZpbGVuYW1lKSB4bWxDaGVja0ZpbGVuYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2hlY2tGaWxlbmFtZSB4bWxDaGVja0ZpbGVuYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbENoZWNrSFRUUElucHV0CitleHRlcm4gX190eXBlb2YgKHhtbENoZWNrSFRUUElucHV0KSB4bWxDaGVja0hUVFBJbnB1dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENoZWNrSFRUUElucHV0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDaGVja0hUVFBJbnB1dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGVja0hUVFBJbnB1dCkgeG1sQ2hlY2tIVFRQSW5wdXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDaGVja0hUVFBJbnB1dCB4bWxDaGVja0hUVFBJbnB1dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sQ2hlY2tMYW5ndWFnZUlECitleHRlcm4gX190eXBlb2YgKHhtbENoZWNrTGFuZ3VhZ2VJRCkgeG1sQ2hlY2tMYW5ndWFnZUlEIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2hlY2tMYW5ndWFnZUlEX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDaGVja0xhbmd1YWdlSUQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2hlY2tMYW5ndWFnZUlEKSB4bWxDaGVja0xhbmd1YWdlSURfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDaGVja0xhbmd1YWdlSUQgeG1sQ2hlY2tMYW5ndWFnZUlEX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxDaGVja1VURjgKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2hlY2tVVEY4KSB4bWxDaGVja1VURjggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDaGVja1VURjhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENoZWNrVVRGOAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGVja1VURjgpIHhtbENoZWNrVVRGOF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENoZWNrVVRGOCB4bWxDaGVja1VURjhfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbENoZWNrVmVyc2lvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGVja1ZlcnNpb24pIHhtbENoZWNrVmVyc2lvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENoZWNrVmVyc2lvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2hlY2tWZXJzaW9uCitleHRlcm4gX190eXBlb2YgKHhtbENoZWNrVmVyc2lvbikgeG1sQ2hlY2tWZXJzaW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2hlY2tWZXJzaW9uIHhtbENoZWNrVmVyc2lvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxDaGlsZEVsZW1lbnRDb3VudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDaGlsZEVsZW1lbnRDb3VudCkgeG1sQ2hpbGRFbGVtZW50Q291bnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDaGlsZEVsZW1lbnRDb3VudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2hpbGRFbGVtZW50Q291bnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2hpbGRFbGVtZW50Q291bnQpIHhtbENoaWxkRWxlbWVudENvdW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2hpbGRFbGVtZW50Q291bnQgeG1sQ2hpbGRFbGVtZW50Q291bnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW5jb2RpbmcKKyN1bmRlZiB4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2xlYW51cENoYXJFbmNvZGluZ0hhbmRsZXJzKSB4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycworZXh0ZXJuIF9fdHlwZW9mICh4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMpIHhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVyc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyB4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzKSB4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzKSB4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcyB4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9nbG9iYWxzCisjdW5kZWYgeG1sQ2xlYW51cEdsb2JhbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2xlYW51cEdsb2JhbHMpIHhtbENsZWFudXBHbG9iYWxzIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2xlYW51cEdsb2JhbHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENsZWFudXBHbG9iYWxzCitleHRlcm4gX190eXBlb2YgKHhtbENsZWFudXBHbG9iYWxzKSB4bWxDbGVhbnVwR2xvYmFsc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENsZWFudXBHbG9iYWxzIHhtbENsZWFudXBHbG9iYWxzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbENsZWFudXBJbnB1dENhbGxiYWNrcworZXh0ZXJuIF9fdHlwZW9mICh4bWxDbGVhbnVwSW5wdXRDYWxsYmFja3MpIHhtbENsZWFudXBJbnB1dENhbGxiYWNrcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENsZWFudXBJbnB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzCitleHRlcm4gX190eXBlb2YgKHhtbENsZWFudXBJbnB1dENhbGxiYWNrcykgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzIHhtbENsZWFudXBJbnB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sQ2xlYW51cE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDbGVhbnVwTWVtb3J5KSB4bWxDbGVhbnVwTWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2xlYW51cE1lbW9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2xlYW51cE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDbGVhbnVwTWVtb3J5KSB4bWxDbGVhbnVwTWVtb3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2xlYW51cE1lbW9yeSB4bWxDbGVhbnVwTWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbENsZWFudXBPdXRwdXRDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcykgeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENsZWFudXBPdXRwdXRDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENsZWFudXBPdXRwdXRDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcykgeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENsZWFudXBPdXRwdXRDYWxsYmFja3MgeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxDbGVhbnVwUGFyc2VyCitleHRlcm4gX190eXBlb2YgKHhtbENsZWFudXBQYXJzZXIpIHhtbENsZWFudXBQYXJzZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDbGVhbnVwUGFyc2VyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDbGVhbnVwUGFyc2VyCitleHRlcm4gX190eXBlb2YgKHhtbENsZWFudXBQYXJzZXIpIHhtbENsZWFudXBQYXJzZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDbGVhbnVwUGFyc2VyIHhtbENsZWFudXBQYXJzZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2xlZ2FjeQorI3VuZGVmIHhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcykgeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcykgeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMgeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90aHJlYWRzCisjdW5kZWYgeG1sQ2xlYW51cFRocmVhZHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ2xlYW51cFRocmVhZHMpIHhtbENsZWFudXBUaHJlYWRzIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ2xlYW51cFRocmVhZHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENsZWFudXBUaHJlYWRzCitleHRlcm4gX190eXBlb2YgKHhtbENsZWFudXBUaHJlYWRzKSB4bWxDbGVhbnVwVGhyZWFkc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENsZWFudXBUaHJlYWRzIHhtbENsZWFudXBUaHJlYWRzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxDbGVhck5vZGVJbmZvU2VxCitleHRlcm4gX190eXBlb2YgKHhtbENsZWFyTm9kZUluZm9TZXEpIHhtbENsZWFyTm9kZUluZm9TZXEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDbGVhck5vZGVJbmZvU2VxX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDbGVhck5vZGVJbmZvU2VxCitleHRlcm4gX190eXBlb2YgKHhtbENsZWFyTm9kZUluZm9TZXEpIHhtbENsZWFyTm9kZUluZm9TZXFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDbGVhck5vZGVJbmZvU2VxIHhtbENsZWFyTm9kZUluZm9TZXFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbENsZWFyUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDbGVhclBhcnNlckN0eHQpIHhtbENsZWFyUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENsZWFyUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ2xlYXJQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbENsZWFyUGFyc2VyQ3R4dCkgeG1sQ2xlYXJQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ2xlYXJQYXJzZXJDdHh0IHhtbENsZWFyUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2NhdGFsb2cKKyN1bmRlZiB4bWxDb252ZXJ0U0dNTENhdGFsb2cKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29udmVydFNHTUxDYXRhbG9nKSB4bWxDb252ZXJ0U0dNTENhdGFsb2cgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDb252ZXJ0U0dNTENhdGFsb2dfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENvbnZlcnRTR01MQ2F0YWxvZworZXh0ZXJuIF9fdHlwZW9mICh4bWxDb252ZXJ0U0dNTENhdGFsb2cpIHhtbENvbnZlcnRTR01MQ2F0YWxvZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENvbnZlcnRTR01MQ2F0YWxvZyB4bWxDb252ZXJ0U0dNTENhdGFsb2dfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sQ29weUF0dHJpYnV0ZVRhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlBdHRyaWJ1dGVUYWJsZSkgeG1sQ29weUF0dHJpYnV0ZVRhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ29weUF0dHJpYnV0ZVRhYmxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDb3B5QXR0cmlidXRlVGFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weUF0dHJpYnV0ZVRhYmxlKSB4bWxDb3B5QXR0cmlidXRlVGFibGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDb3B5QXR0cmlidXRlVGFibGUgeG1sQ29weUF0dHJpYnV0ZVRhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbENvcHlDaGFyCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlDaGFyKSB4bWxDb3B5Q2hhciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENvcHlDaGFyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDb3B5Q2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5Q2hhcikgeG1sQ29weUNoYXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDb3B5Q2hhciB4bWxDb3B5Q2hhcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VySW50ZXJuYWxzCisjdW5kZWYgeG1sQ29weUNoYXJNdWx0aUJ5dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weUNoYXJNdWx0aUJ5dGUpIHhtbENvcHlDaGFyTXVsdGlCeXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ29weUNoYXJNdWx0aUJ5dGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENvcHlDaGFyTXVsdGlCeXRlCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlDaGFyTXVsdGlCeXRlKSB4bWxDb3B5Q2hhck11bHRpQnl0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENvcHlDaGFyTXVsdGlCeXRlIHhtbENvcHlDaGFyTXVsdGlCeXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQ29weURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RG9jKSB4bWxDb3B5RG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ29weURvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ29weURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RG9jKSB4bWxDb3B5RG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ29weURvYyB4bWxDb3B5RG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sQ29weURvY0VsZW1lbnRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbENvcHlEb2NFbGVtZW50Q29udGVudCkgeG1sQ29weURvY0VsZW1lbnRDb250ZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sQ29weURvY0VsZW1lbnRDb250ZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weURvY0VsZW1lbnRDb250ZW50KSB4bWxDb3B5RG9jRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQgeG1sQ29weURvY0VsZW1lbnRDb250ZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbENvcHlEdGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weUR0ZCkgeG1sQ29weUR0ZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENvcHlEdGRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENvcHlEdGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weUR0ZCkgeG1sQ29weUR0ZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENvcHlEdGQgeG1sQ29weUR0ZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbENvcHlFbGVtZW50Q29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RWxlbWVudENvbnRlbnQpIHhtbENvcHlFbGVtZW50Q29udGVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENvcHlFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ29weUVsZW1lbnRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbENvcHlFbGVtZW50Q29udGVudCkgeG1sQ29weUVsZW1lbnRDb250ZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ29weUVsZW1lbnRDb250ZW50IHhtbENvcHlFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sQ29weUVsZW1lbnRUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RWxlbWVudFRhYmxlKSB4bWxDb3B5RWxlbWVudFRhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ29weUVsZW1lbnRUYWJsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ29weUVsZW1lbnRUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RWxlbWVudFRhYmxlKSB4bWxDb3B5RWxlbWVudFRhYmxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ29weUVsZW1lbnRUYWJsZSB4bWxDb3B5RWxlbWVudFRhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9lbnRpdGllcworI3VuZGVmIHhtbENvcHlFbnRpdGllc1RhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlFbnRpdGllc1RhYmxlKSB4bWxDb3B5RW50aXRpZXNUYWJsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENvcHlFbnRpdGllc1RhYmxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDb3B5RW50aXRpZXNUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RW50aXRpZXNUYWJsZSkgeG1sQ29weUVudGl0aWVzVGFibGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDb3B5RW50aXRpZXNUYWJsZSB4bWxDb3B5RW50aXRpZXNUYWJsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxDb3B5RW51bWVyYXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weUVudW1lcmF0aW9uKSB4bWxDb3B5RW51bWVyYXRpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDb3B5RW51bWVyYXRpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENvcHlFbnVtZXJhdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RW51bWVyYXRpb24pIHhtbENvcHlFbnVtZXJhdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENvcHlFbnVtZXJhdGlvbiB4bWxDb3B5RW51bWVyYXRpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZXJyb3IKKyN1bmRlZiB4bWxDb3B5RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weUVycm9yKSB4bWxDb3B5RXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDb3B5RXJyb3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENvcHlFcnJvcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5RXJyb3IpIHhtbENvcHlFcnJvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENvcHlFcnJvciB4bWxDb3B5RXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxDb3B5TmFtZXNwYWNlCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlOYW1lc3BhY2UpIHhtbENvcHlOYW1lc3BhY2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDb3B5TmFtZXNwYWNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDb3B5TmFtZXNwYWNlCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlOYW1lc3BhY2UpIHhtbENvcHlOYW1lc3BhY2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDb3B5TmFtZXNwYWNlIHhtbENvcHlOYW1lc3BhY2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxDb3B5TmFtZXNwYWNlTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5TmFtZXNwYWNlTGlzdCkgeG1sQ29weU5hbWVzcGFjZUxpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDb3B5TmFtZXNwYWNlTGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ29weU5hbWVzcGFjZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weU5hbWVzcGFjZUxpc3QpIHhtbENvcHlOYW1lc3BhY2VMaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ29weU5hbWVzcGFjZUxpc3QgeG1sQ29weU5hbWVzcGFjZUxpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxDb3B5Tm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5Tm9kZSkgeG1sQ29weU5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDb3B5Tm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ29weU5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weU5vZGUpIHhtbENvcHlOb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ29weU5vZGUgeG1sQ29weU5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxDb3B5Tm9kZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weU5vZGVMaXN0KSB4bWxDb3B5Tm9kZUxpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDb3B5Tm9kZUxpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENvcHlOb2RlTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5Tm9kZUxpc3QpIHhtbENvcHlOb2RlTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENvcHlOb2RlTGlzdCB4bWxDb3B5Tm9kZUxpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbENvcHlOb3RhdGlvblRhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlOb3RhdGlvblRhYmxlKSB4bWxDb3B5Tm90YXRpb25UYWJsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENvcHlOb3RhdGlvblRhYmxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDb3B5Tm90YXRpb25UYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDb3B5Tm90YXRpb25UYWJsZSkgeG1sQ29weU5vdGF0aW9uVGFibGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDb3B5Tm90YXRpb25UYWJsZSB4bWxDb3B5Tm90YXRpb25UYWJsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQ29weVByb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weVByb3ApIHhtbENvcHlQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ29weVByb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENvcHlQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbENvcHlQcm9wKSB4bWxDb3B5UHJvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENvcHlQcm9wIHhtbENvcHlQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sQ29weVByb3BMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbENvcHlQcm9wTGlzdCkgeG1sQ29weVByb3BMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQ29weVByb3BMaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDb3B5UHJvcExpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ29weVByb3BMaXN0KSB4bWxDb3B5UHJvcExpc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDb3B5UHJvcExpc3QgeG1sQ29weVByb3BMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxDcmVhdGVEb2NQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZURvY1BhcnNlckN0eHQpIHhtbENyZWF0ZURvY1BhcnNlckN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDcmVhdGVEb2NQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDcmVhdGVEb2NQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZURvY1BhcnNlckN0eHQpIHhtbENyZWF0ZURvY1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDcmVhdGVEb2NQYXJzZXJDdHh0IHhtbENyZWF0ZURvY1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VudGl0aWVzCisjdW5kZWYgeG1sQ3JlYXRlRW50aXRpZXNUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVFbnRpdGllc1RhYmxlKSB4bWxDcmVhdGVFbnRpdGllc1RhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3JlYXRlRW50aXRpZXNUYWJsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3JlYXRlRW50aXRpZXNUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVFbnRpdGllc1RhYmxlKSB4bWxDcmVhdGVFbnRpdGllc1RhYmxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3JlYXRlRW50aXRpZXNUYWJsZSB4bWxDcmVhdGVFbnRpdGllc1RhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQpIHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQpIHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0IHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sQ3JlYXRlRW51bWVyYXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3JlYXRlRW51bWVyYXRpb24pIHhtbENyZWF0ZUVudW1lcmF0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3JlYXRlRW51bWVyYXRpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENyZWF0ZUVudW1lcmF0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZUVudW1lcmF0aW9uKSB4bWxDcmVhdGVFbnVtZXJhdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENyZWF0ZUVudW1lcmF0aW9uIHhtbENyZWF0ZUVudW1lcmF0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCkgeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQpIHhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQgeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbENyZWF0ZUlPUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVJT1BhcnNlckN0eHQpIHhtbENyZWF0ZUlPUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENyZWF0ZUlPUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3JlYXRlSU9QYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZUlPUGFyc2VyQ3R4dCkgeG1sQ3JlYXRlSU9QYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3JlYXRlSU9QYXJzZXJDdHh0IHhtbENyZWF0ZUlPUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbENyZWF0ZUludFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVJbnRTdWJzZXQpIHhtbENyZWF0ZUludFN1YnNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENyZWF0ZUludFN1YnNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3JlYXRlSW50U3Vic2V0CitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZUludFN1YnNldCkgeG1sQ3JlYXRlSW50U3Vic2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3JlYXRlSW50U3Vic2V0IHhtbENyZWF0ZUludFN1YnNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BVU0hfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQpIHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3JlYXRlUHVzaFBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KSB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3VyaQorI3VuZGVmIHhtbENyZWF0ZVVSSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVVUkkpIHhtbENyZWF0ZVVSSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbENyZWF0ZVVSSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3JlYXRlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbENyZWF0ZVVSSSkgeG1sQ3JlYXRlVVJJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3JlYXRlVVJJIHhtbENyZWF0ZVVSSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVVUkxQYXJzZXJDdHh0KSB4bWxDcmVhdGVVUkxQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDcmVhdGVVUkxQYXJzZXJDdHh0KSB4bWxDcmVhdGVVUkxQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCB4bWxDcmVhdGVVUkxQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lcnJvcgorI3VuZGVmIHhtbEN0eHRHZXRMYXN0RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dEdldExhc3RFcnJvcikgeG1sQ3R4dEdldExhc3RFcnJvciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEN0eHRHZXRMYXN0RXJyb3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEN0eHRHZXRMYXN0RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dEdldExhc3RFcnJvcikgeG1sQ3R4dEdldExhc3RFcnJvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEN0eHRHZXRMYXN0RXJyb3IgeG1sQ3R4dEdldExhc3RFcnJvcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sQ3R4dFJlYWREb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dFJlYWREb2MpIHhtbEN0eHRSZWFkRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3R4dFJlYWREb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEN0eHRSZWFkRG9jCitleHRlcm4gX190eXBlb2YgKHhtbEN0eHRSZWFkRG9jKSB4bWxDdHh0UmVhZERvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEN0eHRSZWFkRG9jIHhtbEN0eHRSZWFkRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxDdHh0UmVhZEZkCitleHRlcm4gX190eXBlb2YgKHhtbEN0eHRSZWFkRmQpIHhtbEN0eHRSZWFkRmQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDdHh0UmVhZEZkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxDdHh0UmVhZEZkCitleHRlcm4gX190eXBlb2YgKHhtbEN0eHRSZWFkRmQpIHhtbEN0eHRSZWFkRmRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxDdHh0UmVhZEZkIHhtbEN0eHRSZWFkRmRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbEN0eHRSZWFkRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDdHh0UmVhZEZpbGUpIHhtbEN0eHRSZWFkRmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEN0eHRSZWFkRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3R4dFJlYWRGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbEN0eHRSZWFkRmlsZSkgeG1sQ3R4dFJlYWRGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3R4dFJlYWRGaWxlIHhtbEN0eHRSZWFkRmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sQ3R4dFJlYWRJTworZXh0ZXJuIF9fdHlwZW9mICh4bWxDdHh0UmVhZElPKSB4bWxDdHh0UmVhZElPIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3R4dFJlYWRJT19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3R4dFJlYWRJTworZXh0ZXJuIF9fdHlwZW9mICh4bWxDdHh0UmVhZElPKSB4bWxDdHh0UmVhZElPX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3R4dFJlYWRJTyB4bWxDdHh0UmVhZElPX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxDdHh0UmVhZE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxDdHh0UmVhZE1lbW9yeSkgeG1sQ3R4dFJlYWRNZW1vcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDdHh0UmVhZE1lbW9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3R4dFJlYWRNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dFJlYWRNZW1vcnkpIHhtbEN0eHRSZWFkTWVtb3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3R4dFJlYWRNZW1vcnkgeG1sQ3R4dFJlYWRNZW1vcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbEN0eHRSZXNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxDdHh0UmVzZXQpIHhtbEN0eHRSZXNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEN0eHRSZXNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3R4dFJlc2V0CitleHRlcm4gX190eXBlb2YgKHhtbEN0eHRSZXNldCkgeG1sQ3R4dFJlc2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3R4dFJlc2V0IHhtbEN0eHRSZXNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZXJyb3IKKyN1bmRlZiB4bWxDdHh0UmVzZXRMYXN0RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dFJlc2V0TGFzdEVycm9yKSB4bWxDdHh0UmVzZXRMYXN0RXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDdHh0UmVzZXRMYXN0RXJyb3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEN0eHRSZXNldExhc3RFcnJvcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxDdHh0UmVzZXRMYXN0RXJyb3IpIHhtbEN0eHRSZXNldExhc3RFcnJvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEN0eHRSZXNldExhc3RFcnJvciB4bWxDdHh0UmVzZXRMYXN0RXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbEN0eHRSZXNldFB1c2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dFJlc2V0UHVzaCkgeG1sQ3R4dFJlc2V0UHVzaCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEN0eHRSZXNldFB1c2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEN0eHRSZXNldFB1c2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dFJlc2V0UHVzaCkgeG1sQ3R4dFJlc2V0UHVzaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEN0eHRSZXNldFB1c2ggeG1sQ3R4dFJlc2V0UHVzaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sQ3R4dFVzZU9wdGlvbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3R4dFVzZU9wdGlvbnMpIHhtbEN0eHRVc2VPcHRpb25zIF9fYXR0cmlidXRlKChhbGlhcygieG1sQ3R4dFVzZU9wdGlvbnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEN0eHRVc2VPcHRpb25zCitleHRlcm4gX190eXBlb2YgKHhtbEN0eHRVc2VPcHRpb25zKSB4bWxDdHh0VXNlT3B0aW9uc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEN0eHRVc2VPcHRpb25zIHhtbEN0eHRVc2VPcHRpb25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxDdXJyZW50Q2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxDdXJyZW50Q2hhcikgeG1sQ3VycmVudENoYXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxDdXJyZW50Q2hhcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sQ3VycmVudENoYXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sQ3VycmVudENoYXIpIHhtbEN1cnJlbnRDaGFyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sQ3VycmVudENoYXIgeG1sQ3VycmVudENoYXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxET01XcmFwQWRvcHROb2RlCitleHRlcm4gX190eXBlb2YgKHhtbERPTVdyYXBBZG9wdE5vZGUpIHhtbERPTVdyYXBBZG9wdE5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxET01XcmFwQWRvcHROb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxET01XcmFwQWRvcHROb2RlCitleHRlcm4gX190eXBlb2YgKHhtbERPTVdyYXBBZG9wdE5vZGUpIHhtbERPTVdyYXBBZG9wdE5vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxET01XcmFwQWRvcHROb2RlIHhtbERPTVdyYXBBZG9wdE5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxET01XcmFwQ2xvbmVOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbERPTVdyYXBDbG9uZU5vZGUpIHhtbERPTVdyYXBDbG9uZU5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxET01XcmFwQ2xvbmVOb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxET01XcmFwQ2xvbmVOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbERPTVdyYXBDbG9uZU5vZGUpIHhtbERPTVdyYXBDbG9uZU5vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxET01XcmFwQ2xvbmVOb2RlIHhtbERPTVdyYXBDbG9uZU5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxET01XcmFwRnJlZUN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRE9NV3JhcEZyZWVDdHh0KSB4bWxET01XcmFwRnJlZUN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxET01XcmFwRnJlZUN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERPTVdyYXBGcmVlQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxET01XcmFwRnJlZUN0eHQpIHhtbERPTVdyYXBGcmVlQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERPTVdyYXBGcmVlQ3R4dCB4bWxET01XcmFwRnJlZUN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxET01XcmFwTmV3Q3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxET01XcmFwTmV3Q3R4dCkgeG1sRE9NV3JhcE5ld0N0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxET01XcmFwTmV3Q3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRE9NV3JhcE5ld0N0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRE9NV3JhcE5ld0N0eHQpIHhtbERPTVdyYXBOZXdDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRE9NV3JhcE5ld0N0eHQgeG1sRE9NV3JhcE5ld0N0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcykgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMpIHhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxET01XcmFwUmVtb3ZlTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxET01XcmFwUmVtb3ZlTm9kZSkgeG1sRE9NV3JhcFJlbW92ZU5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxET01XcmFwUmVtb3ZlTm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRE9NV3JhcFJlbW92ZU5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRE9NV3JhcFJlbW92ZU5vZGUpIHhtbERPTVdyYXBSZW1vdmVOb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRE9NV3JhcFJlbW92ZU5vZGUgeG1sRE9NV3JhcFJlbW92ZU5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdDaGVja0RvY3VtZW50KSB4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEZWJ1Z0NoZWNrRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERlYnVnQ2hlY2tEb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQpIHhtbERlYnVnQ2hlY2tEb2N1bWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERlYnVnQ2hlY2tEb2N1bWVudCB4bWxEZWJ1Z0NoZWNrRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbERlYnVnRHVtcEF0dHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wQXR0cikgeG1sRGVidWdEdW1wQXR0ciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbERlYnVnRHVtcEF0dHJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERlYnVnRHVtcEF0dHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wQXR0cikgeG1sRGVidWdEdW1wQXR0cl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERlYnVnRHVtcEF0dHIgeG1sRGVidWdEdW1wQXR0cl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sRGVidWdEdW1wQXR0ckxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wQXR0ckxpc3QpIHhtbERlYnVnRHVtcEF0dHJMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRGVidWdEdW1wQXR0ckxpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERlYnVnRHVtcEF0dHJMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbERlYnVnRHVtcEF0dHJMaXN0KSB4bWxEZWJ1Z0R1bXBBdHRyTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERlYnVnRHVtcEF0dHJMaXN0IHhtbERlYnVnRHVtcEF0dHJMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxEZWJ1Z0R1bXBEVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wRFREKSB4bWxEZWJ1Z0R1bXBEVEQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEZWJ1Z0R1bXBEVERfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERlYnVnRHVtcERURAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEZWJ1Z0R1bXBEVEQpIHhtbERlYnVnRHVtcERURF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERlYnVnRHVtcERURCB4bWxEZWJ1Z0R1bXBEVERfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbERlYnVnRHVtcERvY3VtZW50CitleHRlcm4gX190eXBlb2YgKHhtbERlYnVnRHVtcERvY3VtZW50KSB4bWxEZWJ1Z0R1bXBEb2N1bWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbERlYnVnRHVtcERvY3VtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEZWJ1Z0R1bXBEb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEZWJ1Z0R1bXBEb2N1bWVudCkgeG1sRGVidWdEdW1wRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEZWJ1Z0R1bXBEb2N1bWVudCB4bWxEZWJ1Z0R1bXBEb2N1bWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkCitleHRlcm4gX190eXBlb2YgKHhtbERlYnVnRHVtcERvY3VtZW50SGVhZCkgeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkKSB4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQgeG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxEZWJ1Z0R1bXBFbnRpdGllcworZXh0ZXJuIF9fdHlwZW9mICh4bWxEZWJ1Z0R1bXBFbnRpdGllcykgeG1sRGVidWdEdW1wRW50aXRpZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEZWJ1Z0R1bXBFbnRpdGllc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGVidWdEdW1wRW50aXRpZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wRW50aXRpZXMpIHhtbERlYnVnRHVtcEVudGl0aWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGVidWdEdW1wRW50aXRpZXMgeG1sRGVidWdEdW1wRW50aXRpZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbERlYnVnRHVtcE5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wTm9kZSkgeG1sRGVidWdEdW1wTm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbERlYnVnRHVtcE5vZGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERlYnVnRHVtcE5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wTm9kZSkgeG1sRGVidWdEdW1wTm9kZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERlYnVnRHVtcE5vZGUgeG1sRGVidWdEdW1wTm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sRGVidWdEdW1wTm9kZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVidWdEdW1wTm9kZUxpc3QpIHhtbERlYnVnRHVtcE5vZGVMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRGVidWdEdW1wTm9kZUxpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERlYnVnRHVtcE5vZGVMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbERlYnVnRHVtcE5vZGVMaXN0KSB4bWxEZWJ1Z0R1bXBOb2RlTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERlYnVnRHVtcE5vZGVMaXN0IHhtbERlYnVnRHVtcE5vZGVMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxEZWJ1Z0R1bXBPbmVOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbERlYnVnRHVtcE9uZU5vZGUpIHhtbERlYnVnRHVtcE9uZU5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEZWJ1Z0R1bXBPbmVOb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEZWJ1Z0R1bXBPbmVOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbERlYnVnRHVtcE9uZU5vZGUpIHhtbERlYnVnRHVtcE9uZU5vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEZWJ1Z0R1bXBPbmVOb2RlIHhtbERlYnVnRHVtcE9uZU5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbERlYnVnRHVtcFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxEZWJ1Z0R1bXBTdHJpbmcpIHhtbERlYnVnRHVtcFN0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbERlYnVnRHVtcFN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGVidWdEdW1wU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbERlYnVnRHVtcFN0cmluZykgeG1sRGVidWdEdW1wU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGVidWdEdW1wU3RyaW5nIHhtbERlYnVnRHVtcFN0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxEZWNvZGVFbnRpdGllcworZXh0ZXJuIF9fdHlwZW9mICh4bWxEZWNvZGVFbnRpdGllcykgeG1sRGVjb2RlRW50aXRpZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEZWNvZGVFbnRpdGllc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGVjb2RlRW50aXRpZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVjb2RlRW50aXRpZXMpIHhtbERlY29kZUVudGl0aWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGVjb2RlRW50aXRpZXMgeG1sRGVjb2RlRW50aXRpZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbERlZmF1bHRTQVhIYW5kbGVySW5pdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQpIHhtbERlZmF1bHRTQVhIYW5kbGVySW5pdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbERlZmF1bHRTQVhIYW5kbGVySW5pdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0CitleHRlcm4gX190eXBlb2YgKHhtbERlZmF1bHRTQVhIYW5kbGVySW5pdCkgeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0IHhtbERlZmF1bHRTQVhIYW5kbGVySW5pdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW5jb2RpbmcKKyN1bmRlZiB4bWxEZWxFbmNvZGluZ0FsaWFzCitleHRlcm4gX190eXBlb2YgKHhtbERlbEVuY29kaW5nQWxpYXMpIHhtbERlbEVuY29kaW5nQWxpYXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEZWxFbmNvZGluZ0FsaWFzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEZWxFbmNvZGluZ0FsaWFzCitleHRlcm4gX190eXBlb2YgKHhtbERlbEVuY29kaW5nQWxpYXMpIHhtbERlbEVuY29kaW5nQWxpYXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEZWxFbmNvZGluZ0FsaWFzIHhtbERlbEVuY29kaW5nQWxpYXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0KSB4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQpIHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCB4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sRGV0ZWN0Q2hhckVuY29kaW5nCitleHRlcm4gX190eXBlb2YgKHhtbERldGVjdENoYXJFbmNvZGluZykgeG1sRGV0ZWN0Q2hhckVuY29kaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGV0ZWN0Q2hhckVuY29kaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEZXRlY3RDaGFyRW5jb2RpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGV0ZWN0Q2hhckVuY29kaW5nKSB4bWxEZXRlY3RDaGFyRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEZXRlY3RDaGFyRW5jb2RpbmcgeG1sRGV0ZWN0Q2hhckVuY29kaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdENsZWFudXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGljdENsZWFudXApIHhtbERpY3RDbGVhbnVwIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdENsZWFudXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERpY3RDbGVhbnVwCitleHRlcm4gX190eXBlb2YgKHhtbERpY3RDbGVhbnVwKSB4bWxEaWN0Q2xlYW51cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERpY3RDbGVhbnVwIHhtbERpY3RDbGVhbnVwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdENyZWF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0Q3JlYXRlKSB4bWxEaWN0Q3JlYXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdENyZWF0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGljdENyZWF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0Q3JlYXRlKSB4bWxEaWN0Q3JlYXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGljdENyZWF0ZSB4bWxEaWN0Q3JlYXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdENyZWF0ZVN1YgorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0Q3JlYXRlU3ViKSB4bWxEaWN0Q3JlYXRlU3ViIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdENyZWF0ZVN1Yl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGljdENyZWF0ZVN1YgorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0Q3JlYXRlU3ViKSB4bWxEaWN0Q3JlYXRlU3ViX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGljdENyZWF0ZVN1YiB4bWxEaWN0Q3JlYXRlU3ViX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdEV4aXN0cworZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0RXhpc3RzKSB4bWxEaWN0RXhpc3RzIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdEV4aXN0c19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGljdEV4aXN0cworZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0RXhpc3RzKSB4bWxEaWN0RXhpc3RzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGljdEV4aXN0cyB4bWxEaWN0RXhpc3RzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdEZyZWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGljdEZyZWUpIHhtbERpY3RGcmVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdEZyZWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERpY3RGcmVlCitleHRlcm4gX190eXBlb2YgKHhtbERpY3RGcmVlKSB4bWxEaWN0RnJlZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERpY3RGcmVlIHhtbERpY3RGcmVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdExvb2t1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0TG9va3VwKSB4bWxEaWN0TG9va3VwIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdExvb2t1cF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGljdExvb2t1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0TG9va3VwKSB4bWxEaWN0TG9va3VwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGljdExvb2t1cCB4bWxEaWN0TG9va3VwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdE93bnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGljdE93bnMpIHhtbERpY3RPd25zIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdE93bnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERpY3RPd25zCitleHRlcm4gX190eXBlb2YgKHhtbERpY3RPd25zKSB4bWxEaWN0T3duc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERpY3RPd25zIHhtbERpY3RPd25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdFFMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGljdFFMb29rdXApIHhtbERpY3RRTG9va3VwIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdFFMb29rdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERpY3RRTG9va3VwCitleHRlcm4gX190eXBlb2YgKHhtbERpY3RRTG9va3VwKSB4bWxEaWN0UUxvb2t1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERpY3RRTG9va3VwIHhtbERpY3RRTG9va3VwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdFJlZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0UmVmZXJlbmNlKSB4bWxEaWN0UmVmZXJlbmNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdFJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRGljdFJlZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEaWN0UmVmZXJlbmNlKSB4bWxEaWN0UmVmZXJlbmNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRGljdFJlZmVyZW5jZSB4bWxEaWN0UmVmZXJlbmNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9kaWN0CisjdW5kZWYgeG1sRGljdFNpemUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRGljdFNpemUpIHhtbERpY3RTaXplIF9fYXR0cmlidXRlKChhbGlhcygieG1sRGljdFNpemVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERpY3RTaXplCitleHRlcm4gX190eXBlb2YgKHhtbERpY3RTaXplKSB4bWxEaWN0U2l6ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERpY3RTaXplIHhtbERpY3RTaXplX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRG9jQ29weU5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jQ29weU5vZGUpIHhtbERvY0NvcHlOb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRG9jQ29weU5vZGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERvY0NvcHlOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbERvY0NvcHlOb2RlKSB4bWxEb2NDb3B5Tm9kZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERvY0NvcHlOb2RlIHhtbERvY0NvcHlOb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRG9jQ29weU5vZGVMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbERvY0NvcHlOb2RlTGlzdCkgeG1sRG9jQ29weU5vZGVMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRG9jQ29weU5vZGVMaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEb2NDb3B5Tm9kZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jQ29weU5vZGVMaXN0KSB4bWxEb2NDb3B5Tm9kZUxpc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEb2NDb3B5Tm9kZUxpc3QgeG1sRG9jQ29weU5vZGVMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sRG9jRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEb2NEdW1wKSB4bWxEb2NEdW1wIF9fYXR0cmlidXRlKChhbGlhcygieG1sRG9jRHVtcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRG9jRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEb2NEdW1wKSB4bWxEb2NEdW1wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRG9jRHVtcCB4bWxEb2NEdW1wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbERvY0R1bXBGb3JtYXRNZW1vcnkpIHhtbERvY0R1bXBGb3JtYXRNZW1vcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEb2NEdW1wRm9ybWF0TWVtb3J5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbERvY0R1bXBGb3JtYXRNZW1vcnkpIHhtbERvY0R1bXBGb3JtYXRNZW1vcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5IHhtbERvY0R1bXBGb3JtYXRNZW1vcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYykgeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYykgeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMgeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sRG9jRHVtcE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEb2NEdW1wTWVtb3J5KSB4bWxEb2NEdW1wTWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygieG1sRG9jRHVtcE1lbW9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRG9jRHVtcE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEb2NEdW1wTWVtb3J5KSB4bWxEb2NEdW1wTWVtb3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRG9jRHVtcE1lbW9yeSB4bWxEb2NEdW1wTWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxEb2NEdW1wTWVtb3J5RW5jCitleHRlcm4gX190eXBlb2YgKHhtbERvY0R1bXBNZW1vcnlFbmMpIHhtbERvY0R1bXBNZW1vcnlFbmMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEb2NEdW1wTWVtb3J5RW5jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEb2NEdW1wTWVtb3J5RW5jCitleHRlcm4gX190eXBlb2YgKHhtbERvY0R1bXBNZW1vcnlFbmMpIHhtbERvY0R1bXBNZW1vcnlFbmNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEb2NEdW1wTWVtb3J5RW5jIHhtbERvY0R1bXBNZW1vcnlFbmNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbERvY0Zvcm1hdER1bXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jRm9ybWF0RHVtcCkgeG1sRG9jRm9ybWF0RHVtcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbERvY0Zvcm1hdER1bXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERvY0Zvcm1hdER1bXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jRm9ybWF0RHVtcCkgeG1sRG9jRm9ybWF0RHVtcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERvY0Zvcm1hdER1bXAgeG1sRG9jRm9ybWF0RHVtcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRG9jR2V0Um9vdEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jR2V0Um9vdEVsZW1lbnQpIHhtbERvY0dldFJvb3RFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sRG9jR2V0Um9vdEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbERvY0dldFJvb3RFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbERvY0dldFJvb3RFbGVtZW50KSB4bWxEb2NHZXRSb290RWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbERvY0dldFJvb3RFbGVtZW50IHhtbERvY0dldFJvb3RFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxEb2NTZXRSb290RWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEb2NTZXRSb290RWxlbWVudCkgeG1sRG9jU2V0Um9vdEVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEb2NTZXRSb290RWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRG9jU2V0Um9vdEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRG9jU2V0Um9vdEVsZW1lbnQpIHhtbERvY1NldFJvb3RFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRG9jU2V0Um9vdEVsZW1lbnQgeG1sRG9jU2V0Um9vdEVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxEdW1wQXR0cmlidXRlRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEdW1wQXR0cmlidXRlRGVjbCkgeG1sRHVtcEF0dHJpYnV0ZURlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wQXR0cmlidXRlRGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRHVtcEF0dHJpYnV0ZURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sRHVtcEF0dHJpYnV0ZURlY2wpIHhtbER1bXBBdHRyaWJ1dGVEZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRHVtcEF0dHJpYnV0ZURlY2wgeG1sRHVtcEF0dHJpYnV0ZURlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxEdW1wQXR0cmlidXRlVGFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRHVtcEF0dHJpYnV0ZVRhYmxlKSB4bWxEdW1wQXR0cmlidXRlVGFibGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wQXR0cmlidXRlVGFibGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbER1bXBBdHRyaWJ1dGVUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEdW1wQXR0cmlidXRlVGFibGUpIHhtbER1bXBBdHRyaWJ1dGVUYWJsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbER1bXBBdHRyaWJ1dGVUYWJsZSB4bWxEdW1wQXR0cmlidXRlVGFibGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxEdW1wRWxlbWVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sRHVtcEVsZW1lbnREZWNsKSB4bWxEdW1wRWxlbWVudERlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbER1bXBFbGVtZW50RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEdW1wRWxlbWVudERlY2wpIHhtbER1bXBFbGVtZW50RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbER1bXBFbGVtZW50RGVjbCB4bWxEdW1wRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxEdW1wRWxlbWVudFRhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbER1bXBFbGVtZW50VGFibGUpIHhtbER1bXBFbGVtZW50VGFibGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wRWxlbWVudFRhYmxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEdW1wRWxlbWVudFRhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbER1bXBFbGVtZW50VGFibGUpIHhtbER1bXBFbGVtZW50VGFibGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEdW1wRWxlbWVudFRhYmxlIHhtbER1bXBFbGVtZW50VGFibGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxEdW1wRW50aXRpZXNUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEdW1wRW50aXRpZXNUYWJsZSkgeG1sRHVtcEVudGl0aWVzVGFibGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wRW50aXRpZXNUYWJsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRHVtcEVudGl0aWVzVGFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRHVtcEVudGl0aWVzVGFibGUpIHhtbER1bXBFbnRpdGllc1RhYmxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRHVtcEVudGl0aWVzVGFibGUgeG1sRHVtcEVudGl0aWVzVGFibGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxEdW1wRW50aXR5RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxEdW1wRW50aXR5RGVjbCkgeG1sRHVtcEVudGl0eURlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wRW50aXR5RGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRHVtcEVudGl0eURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sRHVtcEVudGl0eURlY2wpIHhtbER1bXBFbnRpdHlEZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRHVtcEVudGl0eURlY2wgeG1sRHVtcEVudGl0eURlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxEdW1wTm90YXRpb25EZWNsCitleHRlcm4gX190eXBlb2YgKHhtbER1bXBOb3RhdGlvbkRlY2wpIHhtbER1bXBOb3RhdGlvbkRlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wTm90YXRpb25EZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxEdW1wTm90YXRpb25EZWNsCitleHRlcm4gX190eXBlb2YgKHhtbER1bXBOb3RhdGlvbkRlY2wpIHhtbER1bXBOb3RhdGlvbkRlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxEdW1wTm90YXRpb25EZWNsIHhtbER1bXBOb3RhdGlvbkRlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxEdW1wTm90YXRpb25UYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxEdW1wTm90YXRpb25UYWJsZSkgeG1sRHVtcE5vdGF0aW9uVGFibGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxEdW1wTm90YXRpb25UYWJsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRHVtcE5vdGF0aW9uVGFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRHVtcE5vdGF0aW9uVGFibGUpIHhtbER1bXBOb3RhdGlvblRhYmxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRHVtcE5vdGF0aW9uVGFibGUgeG1sRHVtcE5vdGF0aW9uVGFibGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbEVsZW1EdW1wCitleHRlcm4gX190eXBlb2YgKHhtbEVsZW1EdW1wKSB4bWxFbGVtRHVtcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEVsZW1EdW1wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxFbGVtRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxFbGVtRHVtcCkgeG1sRWxlbUR1bXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxFbGVtRHVtcCB4bWxFbGVtRHVtcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxFbmNvZGVFbnRpdGllcworZXh0ZXJuIF9fdHlwZW9mICh4bWxFbmNvZGVFbnRpdGllcykgeG1sRW5jb2RlRW50aXRpZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxFbmNvZGVFbnRpdGllc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRW5jb2RlRW50aXRpZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRW5jb2RlRW50aXRpZXMpIHhtbEVuY29kZUVudGl0aWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRW5jb2RlRW50aXRpZXMgeG1sRW5jb2RlRW50aXRpZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCkgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQpIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VudGl0aWVzCisjdW5kZWYgeG1sRW5jb2RlU3BlY2lhbENoYXJzCitleHRlcm4gX190eXBlb2YgKHhtbEVuY29kZVNwZWNpYWxDaGFycykgeG1sRW5jb2RlU3BlY2lhbENoYXJzIF9fYXR0cmlidXRlKChhbGlhcygieG1sRW5jb2RlU3BlY2lhbENoYXJzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRW5jb2RlU3BlY2lhbENoYXJzKSB4bWxFbmNvZGVTcGVjaWFsQ2hhcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMgeG1sRW5jb2RlU3BlY2lhbENoYXJzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxFcnJNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXJyTWVtb3J5KSB4bWxFcnJNZW1vcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxFcnJNZW1vcnlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEVyck1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFcnJNZW1vcnkpIHhtbEVyck1lbW9yeV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEVyck1lbW9yeSB4bWxFcnJNZW1vcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwQ3R4dE5iQ29ucworZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBDdHh0TmJDb25zKSB4bWxFeHBDdHh0TmJDb25zIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwQ3R4dE5iQ29uc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRXhwQ3R4dE5iQ29ucworZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBDdHh0TmJDb25zKSB4bWxFeHBDdHh0TmJDb25zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRXhwQ3R4dE5iQ29ucyB4bWxFeHBDdHh0TmJDb25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwQ3R4dE5iTm9kZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwQ3R4dE5iTm9kZXMpIHhtbEV4cEN0eHROYk5vZGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwQ3R4dE5iTm9kZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cEN0eHROYk5vZGVzCitleHRlcm4gX190eXBlb2YgKHhtbEV4cEN0eHROYk5vZGVzKSB4bWxFeHBDdHh0TmJOb2Rlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cEN0eHROYk5vZGVzIHhtbEV4cEN0eHROYk5vZGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBEdW1wKSB4bWxFeHBEdW1wIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwRHVtcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRXhwRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBEdW1wKSB4bWxFeHBEdW1wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRXhwRHVtcCB4bWxFeHBEdW1wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwRXhwRGVyaXZlCitleHRlcm4gX190eXBlb2YgKHhtbEV4cEV4cERlcml2ZSkgeG1sRXhwRXhwRGVyaXZlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwRXhwRGVyaXZlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxFeHBFeHBEZXJpdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwRXhwRGVyaXZlKSB4bWxFeHBFeHBEZXJpdmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxFeHBFeHBEZXJpdmUgeG1sRXhwRXhwRGVyaXZlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBGcmVlKSB4bWxFeHBGcmVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwRnJlZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRXhwRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBGcmVlKSB4bWxFeHBGcmVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRXhwRnJlZSB4bWxFeHBGcmVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwRnJlZUN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwRnJlZUN0eHQpIHhtbEV4cEZyZWVDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwRnJlZUN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cEZyZWVDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbEV4cEZyZWVDdHh0KSB4bWxFeHBGcmVlQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cEZyZWVDdHh0IHhtbEV4cEZyZWVDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwR2V0TGFuZ3VhZ2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwR2V0TGFuZ3VhZ2UpIHhtbEV4cEdldExhbmd1YWdlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwR2V0TGFuZ3VhZ2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cEdldExhbmd1YWdlCitleHRlcm4gX190eXBlb2YgKHhtbEV4cEdldExhbmd1YWdlKSB4bWxFeHBHZXRMYW5ndWFnZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cEdldExhbmd1YWdlIHhtbEV4cEdldExhbmd1YWdlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwR2V0U3RhcnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwR2V0U3RhcnQpIHhtbEV4cEdldFN0YXJ0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwR2V0U3RhcnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cEdldFN0YXJ0CitleHRlcm4gX190eXBlb2YgKHhtbEV4cEdldFN0YXJ0KSB4bWxFeHBHZXRTdGFydF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cEdldFN0YXJ0IHhtbEV4cEdldFN0YXJ0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwSXNOaWxsYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBJc05pbGxhYmxlKSB4bWxFeHBJc05pbGxhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwSXNOaWxsYWJsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRXhwSXNOaWxsYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBJc05pbGxhYmxlKSB4bWxFeHBJc05pbGxhYmxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRXhwSXNOaWxsYWJsZSB4bWxFeHBJc05pbGxhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwTWF4VG9rZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwTWF4VG9rZW4pIHhtbEV4cE1heFRva2VuIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwTWF4VG9rZW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cE1heFRva2VuCitleHRlcm4gX190eXBlb2YgKHhtbEV4cE1heFRva2VuKSB4bWxFeHBNYXhUb2tlbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cE1heFRva2VuIHhtbEV4cE1heFRva2VuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwTmV3QXRvbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBOZXdBdG9tKSB4bWxFeHBOZXdBdG9tIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwTmV3QXRvbV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRXhwTmV3QXRvbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBOZXdBdG9tKSB4bWxFeHBOZXdBdG9tX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRXhwTmV3QXRvbSB4bWxFeHBOZXdBdG9tX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwTmV3Q3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBOZXdDdHh0KSB4bWxFeHBOZXdDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwTmV3Q3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRXhwTmV3Q3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBOZXdDdHh0KSB4bWxFeHBOZXdDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRXhwTmV3Q3R4dCB4bWxFeHBOZXdDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwTmV3T3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwTmV3T3IpIHhtbEV4cE5ld09yIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwTmV3T3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cE5ld09yCitleHRlcm4gX190eXBlb2YgKHhtbEV4cE5ld09yKSB4bWxFeHBOZXdPcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cE5ld09yIHhtbEV4cE5ld09yX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwTmV3UmFuZ2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwTmV3UmFuZ2UpIHhtbEV4cE5ld1JhbmdlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwTmV3UmFuZ2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cE5ld1JhbmdlCitleHRlcm4gX190eXBlb2YgKHhtbEV4cE5ld1JhbmdlKSB4bWxFeHBOZXdSYW5nZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cE5ld1JhbmdlIHhtbEV4cE5ld1JhbmdlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwTmV3U2VxCitleHRlcm4gX190eXBlb2YgKHhtbEV4cE5ld1NlcSkgeG1sRXhwTmV3U2VxIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwTmV3U2VxX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxFeHBOZXdTZXEKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwTmV3U2VxKSB4bWxFeHBOZXdTZXFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxFeHBOZXdTZXEgeG1sRXhwTmV3U2VxX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwUGFyc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwUGFyc2UpIHhtbEV4cFBhcnNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwUGFyc2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEV4cFBhcnNlCitleHRlcm4gX190eXBlb2YgKHhtbEV4cFBhcnNlKSB4bWxFeHBQYXJzZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEV4cFBhcnNlIHhtbEV4cFBhcnNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwUmVmCitleHRlcm4gX190eXBlb2YgKHhtbEV4cFJlZikgeG1sRXhwUmVmIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwUmVmX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxFeHBSZWYKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwUmVmKSB4bWxFeHBSZWZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxFeHBSZWYgeG1sRXhwUmVmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwU3RyaW5nRGVyaXZlCitleHRlcm4gX190eXBlb2YgKHhtbEV4cFN0cmluZ0Rlcml2ZSkgeG1sRXhwU3RyaW5nRGVyaXZlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwU3RyaW5nRGVyaXZlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxFeHBTdHJpbmdEZXJpdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRXhwU3RyaW5nRGVyaXZlKSB4bWxFeHBTdHJpbmdEZXJpdmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxFeHBTdHJpbmdEZXJpdmUgeG1sRXhwU3RyaW5nRGVyaXZlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sRXhwU3Vic3VtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBTdWJzdW1lKSB4bWxFeHBTdWJzdW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sRXhwU3Vic3VtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRXhwU3Vic3VtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxFeHBTdWJzdW1lKSB4bWxFeHBTdWJzdW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRXhwU3Vic3VtZSB4bWxFeHBTdWJzdW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sRmlsZUNsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbEZpbGVDbG9zZSkgeG1sRmlsZUNsb3NlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRmlsZUNsb3NlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGaWxlQ2xvc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sRmlsZUNsb3NlKSB4bWxGaWxlQ2xvc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGaWxlQ2xvc2UgeG1sRmlsZUNsb3NlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbEZpbGVNYXRjaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGaWxlTWF0Y2gpIHhtbEZpbGVNYXRjaCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZpbGVNYXRjaF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRmlsZU1hdGNoCitleHRlcm4gX190eXBlb2YgKHhtbEZpbGVNYXRjaCkgeG1sRmlsZU1hdGNoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRmlsZU1hdGNoIHhtbEZpbGVNYXRjaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxGaWxlT3BlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxGaWxlT3BlbikgeG1sRmlsZU9wZW4gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGaWxlT3Blbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRmlsZU9wZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sRmlsZU9wZW4pIHhtbEZpbGVPcGVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRmlsZU9wZW4geG1sRmlsZU9wZW5fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sRmlsZVJlYWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRmlsZVJlYWQpIHhtbEZpbGVSZWFkIF9fYXR0cmlidXRlKChhbGlhcygieG1sRmlsZVJlYWRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZpbGVSZWFkCitleHRlcm4gX190eXBlb2YgKHhtbEZpbGVSZWFkKSB4bWxGaWxlUmVhZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZpbGVSZWFkIHhtbEZpbGVSZWFkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbmNvZGluZworI3VuZGVmIHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyCitleHRlcm4gX190eXBlb2YgKHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcikgeG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlciB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxGaXJzdEVsZW1lbnRDaGlsZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGaXJzdEVsZW1lbnRDaGlsZCkgeG1sRmlyc3RFbGVtZW50Q2hpbGQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGaXJzdEVsZW1lbnRDaGlsZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRmlyc3RFbGVtZW50Q2hpbGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRmlyc3RFbGVtZW50Q2hpbGQpIHhtbEZpcnN0RWxlbWVudENoaWxkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRmlyc3RFbGVtZW50Q2hpbGQgeG1sRmlyc3RFbGVtZW50Q2hpbGRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxGcmVlQXR0cmlidXRlVGFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZUF0dHJpYnV0ZVRhYmxlKSB4bWxGcmVlQXR0cmlidXRlVGFibGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlQXR0cmlidXRlVGFibGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVBdHRyaWJ1dGVUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlQXR0cmlidXRlVGFibGUpIHhtbEZyZWVBdHRyaWJ1dGVUYWJsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVBdHRyaWJ1dGVUYWJsZSB4bWxGcmVlQXR0cmlidXRlVGFibGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbEZyZWVBdXRvbWF0YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlQXV0b21hdGEpIHhtbEZyZWVBdXRvbWF0YSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVBdXRvbWF0YV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZUF1dG9tYXRhCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVBdXRvbWF0YSkgeG1sRnJlZUF1dG9tYXRhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZUF1dG9tYXRhIHhtbEZyZWVBdXRvbWF0YV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbEZyZWVDYXRhbG9nCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVDYXRhbG9nKSB4bWxGcmVlQ2F0YWxvZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVDYXRhbG9nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlQ2F0YWxvZworZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlQ2F0YWxvZykgeG1sRnJlZUNhdGFsb2dfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlQ2F0YWxvZyB4bWxGcmVlQ2F0YWxvZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRnJlZURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRG9jKSB4bWxGcmVlRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZURvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRG9jKSB4bWxGcmVlRG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZURvYyB4bWxGcmVlRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQpIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVEb2NFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZURvY0VsZW1lbnRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVEb2NFbGVtZW50Q29udGVudCkgeG1sRnJlZURvY0VsZW1lbnRDb250ZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZURvY0VsZW1lbnRDb250ZW50IHhtbEZyZWVEb2NFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbEZyZWVEdGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZUR0ZCkgeG1sRnJlZUR0ZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVEdGRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVEdGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZUR0ZCkgeG1sRnJlZUR0ZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVEdGQgeG1sRnJlZUR0ZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxGcmVlRWxlbWVudENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZUVsZW1lbnRDb250ZW50KSB4bWxGcmVlRWxlbWVudENvbnRlbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVFbGVtZW50Q29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRWxlbWVudENvbnRlbnQpIHhtbEZyZWVFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVFbGVtZW50Q29udGVudCB4bWxGcmVlRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sRnJlZUVsZW1lbnRUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRWxlbWVudFRhYmxlKSB4bWxGcmVlRWxlbWVudFRhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZUVsZW1lbnRUYWJsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZUVsZW1lbnRUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRWxlbWVudFRhYmxlKSB4bWxGcmVlRWxlbWVudFRhYmxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZUVsZW1lbnRUYWJsZSB4bWxGcmVlRWxlbWVudFRhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbnRpdGllcworI3VuZGVmIHhtbEZyZWVFbnRpdGllc1RhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVFbnRpdGllc1RhYmxlKSB4bWxGcmVlRW50aXRpZXNUYWJsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVFbnRpdGllc1RhYmxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlRW50aXRpZXNUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRW50aXRpZXNUYWJsZSkgeG1sRnJlZUVudGl0aWVzVGFibGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlRW50aXRpZXNUYWJsZSB4bWxGcmVlRW50aXRpZXNUYWJsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxGcmVlRW51bWVyYXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZUVudW1lcmF0aW9uKSB4bWxGcmVlRW51bWVyYXRpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlRW51bWVyYXRpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVFbnVtZXJhdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlRW51bWVyYXRpb24pIHhtbEZyZWVFbnVtZXJhdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVFbnVtZXJhdGlvbiB4bWxGcmVlRW51bWVyYXRpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sRnJlZUlEVGFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZUlEVGFibGUpIHhtbEZyZWVJRFRhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZUlEVGFibGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVJRFRhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVJRFRhYmxlKSB4bWxGcmVlSURUYWJsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVJRFRhYmxlIHhtbEZyZWVJRFRhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxGcmVlSW5wdXRTdHJlYW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZUlucHV0U3RyZWFtKSB4bWxGcmVlSW5wdXRTdHJlYW0gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlSW5wdXRTdHJlYW1fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVJbnB1dFN0cmVhbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlSW5wdXRTdHJlYW0pIHhtbEZyZWVJbnB1dFN0cmVhbV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVJbnB1dFN0cmVhbSB4bWxGcmVlSW5wdXRTdHJlYW1fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RocmVhZHMKKyN1bmRlZiB4bWxGcmVlTXV0ZXgKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZU11dGV4KSB4bWxGcmVlTXV0ZXggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlTXV0ZXhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVNdXRleAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlTXV0ZXgpIHhtbEZyZWVNdXRleF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVNdXRleCB4bWxGcmVlTXV0ZXhfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxGcmVlTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlTm9kZSkgeG1sRnJlZU5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlTm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZU5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZU5vZGUpIHhtbEZyZWVOb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZU5vZGUgeG1sRnJlZU5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxGcmVlTm9kZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZU5vZGVMaXN0KSB4bWxGcmVlTm9kZUxpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlTm9kZUxpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVOb2RlTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlTm9kZUxpc3QpIHhtbEZyZWVOb2RlTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVOb2RlTGlzdCB4bWxGcmVlTm9kZUxpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sRnJlZU5vdGF0aW9uVGFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZU5vdGF0aW9uVGFibGUpIHhtbEZyZWVOb3RhdGlvblRhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZU5vdGF0aW9uVGFibGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVOb3RhdGlvblRhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVOb3RhdGlvblRhYmxlKSB4bWxGcmVlTm90YXRpb25UYWJsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVOb3RhdGlvblRhYmxlIHhtbEZyZWVOb3RhdGlvblRhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRnJlZU5zCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVOcykgeG1sRnJlZU5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZU5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlTnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZU5zKSB4bWxGcmVlTnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlTnMgeG1sRnJlZU5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRnJlZU5zTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlTnNMaXN0KSB4bWxGcmVlTnNMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZU5zTGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZU5zTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlTnNMaXN0KSB4bWxGcmVlTnNMaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZU5zTGlzdCB4bWxGcmVlTnNMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxGcmVlUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlUGFyc2VyQ3R4dCkgeG1sRnJlZVBhcnNlckN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZVBhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZVBhcnNlckN0eHQpIHhtbEZyZWVQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZVBhcnNlckN0eHQgeG1sRnJlZVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcikgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZVBhcnNlcklucHV0QnVmZmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKSB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbEZyZWVQYXR0ZXJuCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVQYXR0ZXJuKSB4bWxGcmVlUGF0dGVybiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVQYXR0ZXJuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlUGF0dGVybgorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlUGF0dGVybikgeG1sRnJlZVBhdHRlcm5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlUGF0dGVybiB4bWxGcmVlUGF0dGVybl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbEZyZWVQYXR0ZXJuTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlUGF0dGVybkxpc3QpIHhtbEZyZWVQYXR0ZXJuTGlzdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVQYXR0ZXJuTGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZVBhdHRlcm5MaXN0CitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVQYXR0ZXJuTGlzdCkgeG1sRnJlZVBhdHRlcm5MaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZVBhdHRlcm5MaXN0IHhtbEZyZWVQYXR0ZXJuTGlzdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRnJlZVByb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZVByb3ApIHhtbEZyZWVQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZVByb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVQcm9wKSB4bWxGcmVlUHJvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVQcm9wIHhtbEZyZWVQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sRnJlZVByb3BMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVQcm9wTGlzdCkgeG1sRnJlZVByb3BMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZVByb3BMaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlUHJvcExpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZVByb3BMaXN0KSB4bWxGcmVlUHJvcExpc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlUHJvcExpc3QgeG1sRnJlZVByb3BMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90aHJlYWRzCisjdW5kZWYgeG1sRnJlZVJNdXRleAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlUk11dGV4KSB4bWxGcmVlUk11dGV4IF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZVJNdXRleF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZVJNdXRleAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlUk11dGV4KSB4bWxGcmVlUk11dGV4X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZVJNdXRleCB4bWxGcmVlUk11dGV4X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbEZyZWVSZWZUYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlUmVmVGFibGUpIHhtbEZyZWVSZWZUYWJsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVSZWZUYWJsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZVJlZlRhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVSZWZUYWJsZSkgeG1sRnJlZVJlZlRhYmxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZVJlZlRhYmxlIHhtbEZyZWVSZWZUYWJsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhdHRlcm4KKyN1bmRlZiB4bWxGcmVlU3RyZWFtQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlU3RyZWFtQ3R4dCkgeG1sRnJlZVN0cmVhbUN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlU3RyZWFtQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sRnJlZVN0cmVhbUN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZVN0cmVhbUN0eHQpIHhtbEZyZWVTdHJlYW1DdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sRnJlZVN0cmVhbUN0eHQgeG1sRnJlZVN0cmVhbUN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sRnJlZVRleHRSZWFkZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sRnJlZVRleHRSZWFkZXIpIHhtbEZyZWVUZXh0UmVhZGVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sRnJlZVRleHRSZWFkZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEZyZWVUZXh0UmVhZGVyCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVUZXh0UmVhZGVyKSB4bWxGcmVlVGV4dFJlYWRlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEZyZWVUZXh0UmVhZGVyIHhtbEZyZWVUZXh0UmVhZGVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbEZyZWVUZXh0V3JpdGVyCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVUZXh0V3JpdGVyKSB4bWxGcmVlVGV4dFdyaXRlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEZyZWVUZXh0V3JpdGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlVGV4dFdyaXRlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxGcmVlVGV4dFdyaXRlcikgeG1sRnJlZVRleHRXcml0ZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlVGV4dFdyaXRlciB4bWxGcmVlVGV4dFdyaXRlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV91cmkKKyN1bmRlZiB4bWxGcmVlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVVUkkpIHhtbEZyZWVVUkkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlVVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVVUkkpIHhtbEZyZWVVUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlVVJJIHhtbEZyZWVVUklfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxGcmVlVmFsaWRDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVWYWxpZEN0eHQpIHhtbEZyZWVWYWxpZEN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxGcmVlVmFsaWRDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxGcmVlVmFsaWRDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbEZyZWVWYWxpZEN0eHQpIHhtbEZyZWVWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxGcmVlVmFsaWRDdHh0IHhtbEZyZWVWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sR2NNZW1HZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2NNZW1HZXQpIHhtbEdjTWVtR2V0IF9fYXR0cmlidXRlKChhbGlhcygieG1sR2NNZW1HZXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdjTWVtR2V0CitleHRlcm4gX190eXBlb2YgKHhtbEdjTWVtR2V0KSB4bWxHY01lbUdldF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdjTWVtR2V0IHhtbEdjTWVtR2V0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxtZW1vcnkKKyN1bmRlZiB4bWxHY01lbVNldHVwCitleHRlcm4gX190eXBlb2YgKHhtbEdjTWVtU2V0dXApIHhtbEdjTWVtU2V0dXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHY01lbVNldHVwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxHY01lbVNldHVwCitleHRlcm4gX190eXBlb2YgKHhtbEdjTWVtU2V0dXApIHhtbEdjTWVtU2V0dXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxHY01lbVNldHVwIHhtbEdjTWVtU2V0dXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lCitleHRlcm4gX190eXBlb2YgKHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUpIHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lCitleHRlcm4gX190eXBlb2YgKHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUpIHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyKSB4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyKSB4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlciB4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbmNvZGluZworI3VuZGVmIHhtbEdldENoYXJFbmNvZGluZ05hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0Q2hhckVuY29kaW5nTmFtZSkgeG1sR2V0Q2hhckVuY29kaW5nTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldENoYXJFbmNvZGluZ05hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldENoYXJFbmNvZGluZ05hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0Q2hhckVuY29kaW5nTmFtZSkgeG1sR2V0Q2hhckVuY29kaW5nTmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldENoYXJFbmNvZGluZ05hbWUgeG1sR2V0Q2hhckVuY29kaW5nTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbEdldENvbXByZXNzTW9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRDb21wcmVzc01vZGUpIHhtbEdldENvbXByZXNzTW9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldENvbXByZXNzTW9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0Q29tcHJlc3NNb2RlCitleHRlcm4gX190eXBlb2YgKHhtbEdldENvbXByZXNzTW9kZSkgeG1sR2V0Q29tcHJlc3NNb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0Q29tcHJlc3NNb2RlIHhtbEdldENvbXByZXNzTW9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbEdldERvY0NvbXByZXNzTW9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXREb2NDb21wcmVzc01vZGUpIHhtbEdldERvY0NvbXByZXNzTW9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldERvY0NvbXByZXNzTW9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0RG9jQ29tcHJlc3NNb2RlCitleHRlcm4gX190eXBlb2YgKHhtbEdldERvY0NvbXByZXNzTW9kZSkgeG1sR2V0RG9jQ29tcHJlc3NNb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0RG9jQ29tcHJlc3NNb2RlIHhtbEdldERvY0NvbXByZXNzTW9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxHZXREb2NFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0RG9jRW50aXR5KSB4bWxHZXREb2NFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXREb2NFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldERvY0VudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXREb2NFbnRpdHkpIHhtbEdldERvY0VudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldERvY0VudGl0eSB4bWxHZXREb2NFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sR2V0RHRkQXR0ckRlc2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0RHRkQXR0ckRlc2MpIHhtbEdldER0ZEF0dHJEZXNjIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0RHRkQXR0ckRlc2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldER0ZEF0dHJEZXNjCitleHRlcm4gX190eXBlb2YgKHhtbEdldER0ZEF0dHJEZXNjKSB4bWxHZXREdGRBdHRyRGVzY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldER0ZEF0dHJEZXNjIHhtbEdldER0ZEF0dHJEZXNjX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbEdldER0ZEVsZW1lbnREZXNjCitleHRlcm4gX190eXBlb2YgKHhtbEdldER0ZEVsZW1lbnREZXNjKSB4bWxHZXREdGRFbGVtZW50RGVzYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldER0ZEVsZW1lbnREZXNjX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxHZXREdGRFbGVtZW50RGVzYworZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXREdGRFbGVtZW50RGVzYykgeG1sR2V0RHRkRWxlbWVudERlc2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxHZXREdGRFbGVtZW50RGVzYyB4bWxHZXREdGRFbGVtZW50RGVzY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxHZXREdGRFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0RHRkRW50aXR5KSB4bWxHZXREdGRFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXREdGRFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldER0ZEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXREdGRFbnRpdHkpIHhtbEdldER0ZEVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldER0ZEVudGl0eSB4bWxHZXREdGRFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sR2V0RHRkTm90YXRpb25EZXNjCitleHRlcm4gX190eXBlb2YgKHhtbEdldER0ZE5vdGF0aW9uRGVzYykgeG1sR2V0RHRkTm90YXRpb25EZXNjIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0RHRkTm90YXRpb25EZXNjX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxHZXREdGROb3RhdGlvbkRlc2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0RHRkTm90YXRpb25EZXNjKSB4bWxHZXREdGROb3RhdGlvbkRlc2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxHZXREdGROb3RhdGlvbkRlc2MgeG1sR2V0RHRkTm90YXRpb25EZXNjX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbEdldER0ZFFBdHRyRGVzYworZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXREdGRRQXR0ckRlc2MpIHhtbEdldER0ZFFBdHRyRGVzYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldER0ZFFBdHRyRGVzY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0RHRkUUF0dHJEZXNjCitleHRlcm4gX190eXBlb2YgKHhtbEdldER0ZFFBdHRyRGVzYykgeG1sR2V0RHRkUUF0dHJEZXNjX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0RHRkUUF0dHJEZXNjIHhtbEdldER0ZFFBdHRyRGVzY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxHZXREdGRRRWxlbWVudERlc2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0RHRkUUVsZW1lbnREZXNjKSB4bWxHZXREdGRRRWxlbWVudERlc2MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXREdGRRRWxlbWVudERlc2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldER0ZFFFbGVtZW50RGVzYworZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXREdGRRRWxlbWVudERlc2MpIHhtbEdldER0ZFFFbGVtZW50RGVzY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldER0ZFFFbGVtZW50RGVzYyB4bWxHZXREdGRRRWxlbWVudERlc2NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sR2V0RW5jb2RpbmdBbGlhcworZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRFbmNvZGluZ0FsaWFzKSB4bWxHZXRFbmNvZGluZ0FsaWFzIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0RW5jb2RpbmdBbGlhc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0RW5jb2RpbmdBbGlhcworZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRFbmNvZGluZ0FsaWFzKSB4bWxHZXRFbmNvZGluZ0FsaWFzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0RW5jb2RpbmdBbGlhcyB4bWxHZXRFbmNvZGluZ0FsaWFzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyCitleHRlcm4gX190eXBlb2YgKHhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyKSB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldEV4dGVybmFsRW50aXR5TG9hZGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcikgeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlciB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbGVnYWN5CisjdW5kZWYgeG1sR2V0RmVhdHVyZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRGZWF0dXJlKSB4bWxHZXRGZWF0dXJlIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0RmVhdHVyZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0RmVhdHVyZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRGZWF0dXJlKSB4bWxHZXRGZWF0dXJlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0RmVhdHVyZSB4bWxHZXRGZWF0dXJlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2xlZ2FjeQorI3VuZGVmIHhtbEdldEZlYXR1cmVzTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRGZWF0dXJlc0xpc3QpIHhtbEdldEZlYXR1cmVzTGlzdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldEZlYXR1cmVzTGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0RmVhdHVyZXNMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbEdldEZlYXR1cmVzTGlzdCkgeG1sR2V0RmVhdHVyZXNMaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0RmVhdHVyZXNMaXN0IHhtbEdldEZlYXR1cmVzTGlzdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90aHJlYWRzCisjdW5kZWYgeG1sR2V0R2xvYmFsU3RhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0R2xvYmFsU3RhdGUpIHhtbEdldEdsb2JhbFN0YXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0R2xvYmFsU3RhdGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldEdsb2JhbFN0YXRlCitleHRlcm4gX190eXBlb2YgKHhtbEdldEdsb2JhbFN0YXRlKSB4bWxHZXRHbG9iYWxTdGF0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldEdsb2JhbFN0YXRlIHhtbEdldEdsb2JhbFN0YXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbEdldElECitleHRlcm4gX190eXBlb2YgKHhtbEdldElEKSB4bWxHZXRJRCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldElEX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxHZXRJRAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRJRCkgeG1sR2V0SURfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxHZXRJRCB4bWxHZXRJRF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbEdldEludFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRJbnRTdWJzZXQpIHhtbEdldEludFN1YnNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldEludFN1YnNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0SW50U3Vic2V0CitleHRlcm4gX190eXBlb2YgKHhtbEdldEludFN1YnNldCkgeG1sR2V0SW50U3Vic2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0SW50U3Vic2V0IHhtbEdldEludFN1YnNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbEdldExhc3RDaGlsZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRMYXN0Q2hpbGQpIHhtbEdldExhc3RDaGlsZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldExhc3RDaGlsZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0TGFzdENoaWxkCitleHRlcm4gX190eXBlb2YgKHhtbEdldExhc3RDaGlsZCkgeG1sR2V0TGFzdENoaWxkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0TGFzdENoaWxkIHhtbEdldExhc3RDaGlsZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZXJyb3IKKyN1bmRlZiB4bWxHZXRMYXN0RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0TGFzdEVycm9yKSB4bWxHZXRMYXN0RXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXRMYXN0RXJyb3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldExhc3RFcnJvcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRMYXN0RXJyb3IpIHhtbEdldExhc3RFcnJvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldExhc3RFcnJvciB4bWxHZXRMYXN0RXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxHZXRMaW5lTm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0TGluZU5vKSB4bWxHZXRMaW5lTm8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXRMaW5lTm9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldExpbmVObworZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRMaW5lTm8pIHhtbEdldExpbmVOb19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldExpbmVObyB4bWxHZXRMaW5lTm9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxHZXROb05zUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXROb05zUHJvcCkgeG1sR2V0Tm9Oc1Byb3AgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXROb05zUHJvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0Tm9Oc1Byb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0Tm9Oc1Byb3ApIHhtbEdldE5vTnNQcm9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0Tm9Oc1Byb3AgeG1sR2V0Tm9Oc1Byb3BfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sR2V0Tm9kZVBhdGgKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0Tm9kZVBhdGgpIHhtbEdldE5vZGVQYXRoIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0Tm9kZVBhdGhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldE5vZGVQYXRoCitleHRlcm4gX190eXBlb2YgKHhtbEdldE5vZGVQYXRoKSB4bWxHZXROb2RlUGF0aF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldE5vZGVQYXRoIHhtbEdldE5vZGVQYXRoX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxHZXROc0xpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0TnNMaXN0KSB4bWxHZXROc0xpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXROc0xpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldE5zTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXROc0xpc3QpIHhtbEdldE5zTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldE5zTGlzdCB4bWxHZXROc0xpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbEdldE5zUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXROc1Byb3ApIHhtbEdldE5zUHJvcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldE5zUHJvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0TnNQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbEdldE5zUHJvcCkgeG1sR2V0TnNQcm9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0TnNQcm9wIHhtbEdldE5zUHJvcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxHZXRQYXJhbWV0ZXJFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0UGFyYW1ldGVyRW50aXR5KSB4bWxHZXRQYXJhbWV0ZXJFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxHZXRQYXJhbWV0ZXJFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldFBhcmFtZXRlckVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRQYXJhbWV0ZXJFbnRpdHkpIHhtbEdldFBhcmFtZXRlckVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldFBhcmFtZXRlckVudGl0eSB4bWxHZXRQYXJhbWV0ZXJFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VudGl0aWVzCisjdW5kZWYgeG1sR2V0UHJlZGVmaW5lZEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRQcmVkZWZpbmVkRW50aXR5KSB4bWxHZXRQcmVkZWZpbmVkRW50aXR5IF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0UHJlZGVmaW5lZEVudGl0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0UHJlZGVmaW5lZEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRQcmVkZWZpbmVkRW50aXR5KSB4bWxHZXRQcmVkZWZpbmVkRW50aXR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0UHJlZGVmaW5lZEVudGl0eSB4bWxHZXRQcmVkZWZpbmVkRW50aXR5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sR2V0UHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRQcm9wKSB4bWxHZXRQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0UHJvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sR2V0UHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRQcm9wKSB4bWxHZXRQcm9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sR2V0UHJvcCB4bWxHZXRQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbEdldFJlZnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0UmVmcykgeG1sR2V0UmVmcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldFJlZnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldFJlZnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0UmVmcykgeG1sR2V0UmVmc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldFJlZnMgeG1sR2V0UmVmc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdGhyZWFkcworI3VuZGVmIHhtbEdldFRocmVhZElkCitleHRlcm4gX190eXBlb2YgKHhtbEdldFRocmVhZElkKSB4bWxHZXRUaHJlYWRJZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEdldFRocmVhZElkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxHZXRUaHJlYWRJZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxHZXRUaHJlYWRJZCkgeG1sR2V0VGhyZWFkSWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxHZXRUaHJlYWRJZCB4bWxHZXRUaHJlYWRJZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sR2V0VVRGOENoYXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sR2V0VVRGOENoYXIpIHhtbEdldFVURjhDaGFyIF9fYXR0cmlidXRlKChhbGlhcygieG1sR2V0VVRGOENoYXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEdldFVURjhDaGFyCitleHRlcm4gX190eXBlb2YgKHhtbEdldFVURjhDaGFyKSB4bWxHZXRVVEY4Q2hhcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEdldFVURjhDaGFyIHhtbEdldFVURjhDaGFyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxIYW5kbGVFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFuZGxlRW50aXR5KSB4bWxIYW5kbGVFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxIYW5kbGVFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhbmRsZUVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYW5kbGVFbnRpdHkpIHhtbEhhbmRsZUVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhbmRsZUVudGl0eSB4bWxIYW5kbGVFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sSGFzRmVhdHVyZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNGZWF0dXJlKSB4bWxIYXNGZWF0dXJlIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzRmVhdHVyZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzRmVhdHVyZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNGZWF0dXJlKSB4bWxIYXNGZWF0dXJlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzRmVhdHVyZSB4bWxIYXNGZWF0dXJlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sSGFzTnNQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbEhhc05zUHJvcCkgeG1sSGFzTnNQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzTnNQcm9wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNOc1Byb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzTnNQcm9wKSB4bWxIYXNOc1Byb3BfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNOc1Byb3AgeG1sSGFzTnNQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sSGFzUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNQcm9wKSB4bWxIYXNQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzUHJvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNQcm9wKSB4bWxIYXNQcm9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzUHJvcCB4bWxIYXNQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaEFkZEVudHJ5CitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hBZGRFbnRyeSkgeG1sSGFzaEFkZEVudHJ5IF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaEFkZEVudHJ5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNoQWRkRW50cnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaEFkZEVudHJ5KSB4bWxIYXNoQWRkRW50cnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNoQWRkRW50cnkgeG1sSGFzaEFkZEVudHJ5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaEFkZEVudHJ5MgorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoQWRkRW50cnkyKSB4bWxIYXNoQWRkRW50cnkyIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaEFkZEVudHJ5Ml9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaEFkZEVudHJ5MgorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoQWRkRW50cnkyKSB4bWxIYXNoQWRkRW50cnkyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaEFkZEVudHJ5MiB4bWxIYXNoQWRkRW50cnkyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaEFkZEVudHJ5MworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoQWRkRW50cnkzKSB4bWxIYXNoQWRkRW50cnkzIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaEFkZEVudHJ5M19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaEFkZEVudHJ5MworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoQWRkRW50cnkzKSB4bWxIYXNoQWRkRW50cnkzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaEFkZEVudHJ5MyB4bWxIYXNoQWRkRW50cnkzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaENvcHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaENvcHkpIHhtbEhhc2hDb3B5IF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaENvcHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hDb3B5CitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hDb3B5KSB4bWxIYXNoQ29weV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hDb3B5IHhtbEhhc2hDb3B5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaENyZWF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoQ3JlYXRlKSB4bWxIYXNoQ3JlYXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaENyZWF0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaENyZWF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoQ3JlYXRlKSB4bWxIYXNoQ3JlYXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaENyZWF0ZSB4bWxIYXNoQ3JlYXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaENyZWF0ZURpY3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaENyZWF0ZURpY3QpIHhtbEhhc2hDcmVhdGVEaWN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaENyZWF0ZURpY3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hDcmVhdGVEaWN0CitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hDcmVhdGVEaWN0KSB4bWxIYXNoQ3JlYXRlRGljdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hDcmVhdGVEaWN0IHhtbEhhc2hDcmVhdGVEaWN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaEZyZWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaEZyZWUpIHhtbEhhc2hGcmVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaEZyZWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hGcmVlCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hGcmVlKSB4bWxIYXNoRnJlZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hGcmVlIHhtbEhhc2hGcmVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaExvb2t1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoTG9va3VwKSB4bWxIYXNoTG9va3VwIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaExvb2t1cF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaExvb2t1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoTG9va3VwKSB4bWxIYXNoTG9va3VwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaExvb2t1cCB4bWxIYXNoTG9va3VwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaExvb2t1cDIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaExvb2t1cDIpIHhtbEhhc2hMb29rdXAyIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaExvb2t1cDJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hMb29rdXAyCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hMb29rdXAyKSB4bWxIYXNoTG9va3VwMl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hMb29rdXAyIHhtbEhhc2hMb29rdXAyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaExvb2t1cDMKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaExvb2t1cDMpIHhtbEhhc2hMb29rdXAzIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaExvb2t1cDNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hMb29rdXAzCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hMb29rdXAzKSB4bWxIYXNoTG9va3VwM19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hMb29rdXAzIHhtbEhhc2hMb29rdXAzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFFMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFFMb29rdXApIHhtbEhhc2hRTG9va3VwIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFFMb29rdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hRTG9va3VwCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hRTG9va3VwKSB4bWxIYXNoUUxvb2t1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hRTG9va3VwIHhtbEhhc2hRTG9va3VwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFFMb29rdXAyCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hRTG9va3VwMikgeG1sSGFzaFFMb29rdXAyIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFFMb29rdXAyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNoUUxvb2t1cDIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFFMb29rdXAyKSB4bWxIYXNoUUxvb2t1cDJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNoUUxvb2t1cDIgeG1sSGFzaFFMb29rdXAyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFFMb29rdXAzCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hRTG9va3VwMykgeG1sSGFzaFFMb29rdXAzIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFFMb29rdXAzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNoUUxvb2t1cDMKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFFMb29rdXAzKSB4bWxIYXNoUUxvb2t1cDNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNoUUxvb2t1cDMgeG1sSGFzaFFMb29rdXAzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFJlbW92ZUVudHJ5CitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hSZW1vdmVFbnRyeSkgeG1sSGFzaFJlbW92ZUVudHJ5IF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFJlbW92ZUVudHJ5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNoUmVtb3ZlRW50cnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFJlbW92ZUVudHJ5KSB4bWxIYXNoUmVtb3ZlRW50cnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNoUmVtb3ZlRW50cnkgeG1sSGFzaFJlbW92ZUVudHJ5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFJlbW92ZUVudHJ5MgorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoUmVtb3ZlRW50cnkyKSB4bWxIYXNoUmVtb3ZlRW50cnkyIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFJlbW92ZUVudHJ5Ml9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaFJlbW92ZUVudHJ5MgorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoUmVtb3ZlRW50cnkyKSB4bWxIYXNoUmVtb3ZlRW50cnkyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaFJlbW92ZUVudHJ5MiB4bWxIYXNoUmVtb3ZlRW50cnkyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFJlbW92ZUVudHJ5MworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoUmVtb3ZlRW50cnkzKSB4bWxIYXNoUmVtb3ZlRW50cnkzIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFJlbW92ZUVudHJ5M19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaFJlbW92ZUVudHJ5MworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoUmVtb3ZlRW50cnkzKSB4bWxIYXNoUmVtb3ZlRW50cnkzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaFJlbW92ZUVudHJ5MyB4bWxIYXNoUmVtb3ZlRW50cnkzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFNjYW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFNjYW4pIHhtbEhhc2hTY2FuIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFNjYW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hTY2FuCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hTY2FuKSB4bWxIYXNoU2Nhbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hTY2FuIHhtbEhhc2hTY2FuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFNjYW4zCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hTY2FuMykgeG1sSGFzaFNjYW4zIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFNjYW4zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNoU2NhbjMKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFNjYW4zKSB4bWxIYXNoU2NhbjNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNoU2NhbjMgeG1sSGFzaFNjYW4zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFNjYW5GdWxsCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hTY2FuRnVsbCkgeG1sSGFzaFNjYW5GdWxsIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFNjYW5GdWxsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNoU2NhbkZ1bGwKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFNjYW5GdWxsKSB4bWxIYXNoU2NhbkZ1bGxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNoU2NhbkZ1bGwgeG1sSGFzaFNjYW5GdWxsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFNjYW5GdWxsMworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoU2NhbkZ1bGwzKSB4bWxIYXNoU2NhbkZ1bGwzIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFNjYW5GdWxsM19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaFNjYW5GdWxsMworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoU2NhbkZ1bGwzKSB4bWxIYXNoU2NhbkZ1bGwzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaFNjYW5GdWxsMyB4bWxIYXNoU2NhbkZ1bGwzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFNpemUKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFNpemUpIHhtbEhhc2hTaXplIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFNpemVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEhhc2hTaXplCitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hTaXplKSB4bWxIYXNoU2l6ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEhhc2hTaXplIHhtbEhhc2hTaXplX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFVwZGF0ZUVudHJ5CitleHRlcm4gX190eXBlb2YgKHhtbEhhc2hVcGRhdGVFbnRyeSkgeG1sSGFzaFVwZGF0ZUVudHJ5IF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFVwZGF0ZUVudHJ5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxIYXNoVXBkYXRlRW50cnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sSGFzaFVwZGF0ZUVudHJ5KSB4bWxIYXNoVXBkYXRlRW50cnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxIYXNoVXBkYXRlRW50cnkgeG1sSGFzaFVwZGF0ZUVudHJ5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFVwZGF0ZUVudHJ5MgorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoVXBkYXRlRW50cnkyKSB4bWxIYXNoVXBkYXRlRW50cnkyIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFVwZGF0ZUVudHJ5Ml9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaFVwZGF0ZUVudHJ5MgorZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoVXBkYXRlRW50cnkyKSB4bWxIYXNoVXBkYXRlRW50cnkyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaFVwZGF0ZUVudHJ5MiB4bWxIYXNoVXBkYXRlRW50cnkyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9oYXNoCisjdW5kZWYgeG1sSGFzaFVwZGF0ZUVudHJ5MworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoVXBkYXRlRW50cnkzKSB4bWxIYXNoVXBkYXRlRW50cnkzIF9fYXR0cmlidXRlKChhbGlhcygieG1sSGFzaFVwZGF0ZUVudHJ5M19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSGFzaFVwZGF0ZUVudHJ5MworZXh0ZXJuIF9fdHlwZW9mICh4bWxIYXNoVXBkYXRlRW50cnkzKSB4bWxIYXNoVXBkYXRlRW50cnkzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSGFzaFVwZGF0ZUVudHJ5MyB4bWxIYXNoVXBkYXRlRW50cnkzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbElPRlRQQ2xvc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9GVFBDbG9zZSkgeG1sSU9GVFBDbG9zZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElPRlRQQ2xvc2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElPRlRQQ2xvc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9GVFBDbG9zZSkgeG1sSU9GVFBDbG9zZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElPRlRQQ2xvc2UgeG1sSU9GVFBDbG9zZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbElPRlRQTWF0Y2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9GVFBNYXRjaCkgeG1sSU9GVFBNYXRjaCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElPRlRQTWF0Y2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElPRlRQTWF0Y2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9GVFBNYXRjaCkgeG1sSU9GVFBNYXRjaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElPRlRQTWF0Y2ggeG1sSU9GVFBNYXRjaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbElPRlRQT3BlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxJT0ZUUE9wZW4pIHhtbElPRlRQT3BlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElPRlRQT3Blbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSU9GVFBPcGVuCitleHRlcm4gX190eXBlb2YgKHhtbElPRlRQT3BlbikgeG1sSU9GVFBPcGVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSU9GVFBPcGVuIHhtbElPRlRQT3Blbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbElPRlRQUmVhZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxJT0ZUUFJlYWQpIHhtbElPRlRQUmVhZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElPRlRQUmVhZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSU9GVFBSZWFkCitleHRlcm4gX190eXBlb2YgKHhtbElPRlRQUmVhZCkgeG1sSU9GVFBSZWFkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSU9GVFBSZWFkIHhtbElPRlRQUmVhZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxJT0hUVFBDbG9zZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxJT0hUVFBDbG9zZSkgeG1sSU9IVFRQQ2xvc2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxJT0hUVFBDbG9zZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSU9IVFRQQ2xvc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9IVFRQQ2xvc2UpIHhtbElPSFRUUENsb3NlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSU9IVFRQQ2xvc2UgeG1sSU9IVFRQQ2xvc2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sSU9IVFRQTWF0Y2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9IVFRQTWF0Y2gpIHhtbElPSFRUUE1hdGNoIF9fYXR0cmlidXRlKChhbGlhcygieG1sSU9IVFRQTWF0Y2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElPSFRUUE1hdGNoCitleHRlcm4gX190eXBlb2YgKHhtbElPSFRUUE1hdGNoKSB4bWxJT0hUVFBNYXRjaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElPSFRUUE1hdGNoIHhtbElPSFRUUE1hdGNoX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbElPSFRUUE9wZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9IVFRQT3BlbikgeG1sSU9IVFRQT3BlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElPSFRUUE9wZW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElPSFRUUE9wZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9IVFRQT3BlbikgeG1sSU9IVFRQT3Blbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElPSFRUUE9wZW4geG1sSU9IVFRQT3Blbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sSU9IVFRQT3BlblcKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9IVFRQT3BlblcpIHhtbElPSFRUUE9wZW5XIF9fYXR0cmlidXRlKChhbGlhcygieG1sSU9IVFRQT3BlbldfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElPSFRUUE9wZW5XCitleHRlcm4gX190eXBlb2YgKHhtbElPSFRUUE9wZW5XKSB4bWxJT0hUVFBPcGVuV19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElPSFRUUE9wZW5XIHhtbElPSFRUUE9wZW5XX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbElPSFRUUFJlYWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9IVFRQUmVhZCkgeG1sSU9IVFRQUmVhZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElPSFRUUFJlYWRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElPSFRUUFJlYWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9IVFRQUmVhZCkgeG1sSU9IVFRQUmVhZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElPSFRUUFJlYWQgeG1sSU9IVFRQUmVhZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbElPUGFyc2VEVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9QYXJzZURURCkgeG1sSU9QYXJzZURURCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElPUGFyc2VEVERfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElPUGFyc2VEVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSU9QYXJzZURURCkgeG1sSU9QYXJzZURURF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElPUGFyc2VEVEQgeG1sSU9QYXJzZURURF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lbmNvZGluZworI3VuZGVmIHhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycworZXh0ZXJuIF9fdHlwZW9mICh4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMpIHhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVyc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzCitleHRlcm4gX190eXBlb2YgKHhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycykgeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIHhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVyc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZ2xvYmFscworI3VuZGVmIHhtbEluaXRHbG9iYWxzCitleHRlcm4gX190eXBlb2YgKHhtbEluaXRHbG9iYWxzKSB4bWxJbml0R2xvYmFscyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEluaXRHbG9iYWxzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJbml0R2xvYmFscworZXh0ZXJuIF9fdHlwZW9mICh4bWxJbml0R2xvYmFscykgeG1sSW5pdEdsb2JhbHNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJbml0R2xvYmFscyB4bWxJbml0R2xvYmFsc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sSW5pdE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxJbml0TWVtb3J5KSB4bWxJbml0TWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygieG1sSW5pdE1lbW9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSW5pdE1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxJbml0TWVtb3J5KSB4bWxJbml0TWVtb3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSW5pdE1lbW9yeSB4bWxJbml0TWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxJbml0Tm9kZUluZm9TZXEKK2V4dGVybiBfX3R5cGVvZiAoeG1sSW5pdE5vZGVJbmZvU2VxKSB4bWxJbml0Tm9kZUluZm9TZXEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxJbml0Tm9kZUluZm9TZXFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEluaXROb2RlSW5mb1NlcQorZXh0ZXJuIF9fdHlwZW9mICh4bWxJbml0Tm9kZUluZm9TZXEpIHhtbEluaXROb2RlSW5mb1NlcV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEluaXROb2RlSW5mb1NlcSB4bWxJbml0Tm9kZUluZm9TZXFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbEluaXRQYXJzZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSW5pdFBhcnNlcikgeG1sSW5pdFBhcnNlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEluaXRQYXJzZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEluaXRQYXJzZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSW5pdFBhcnNlcikgeG1sSW5pdFBhcnNlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEluaXRQYXJzZXIgeG1sSW5pdFBhcnNlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VySW50ZXJuYWxzCisjdW5kZWYgeG1sSW5pdFBhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSW5pdFBhcnNlckN0eHQpIHhtbEluaXRQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sSW5pdFBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEluaXRQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbEluaXRQYXJzZXJDdHh0KSB4bWxJbml0UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEluaXRQYXJzZXJDdHh0IHhtbEluaXRQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90aHJlYWRzCisjdW5kZWYgeG1sSW5pdFRocmVhZHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sSW5pdFRocmVhZHMpIHhtbEluaXRUaHJlYWRzIF9fYXR0cmlidXRlKChhbGlhcygieG1sSW5pdFRocmVhZHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbEluaXRUaHJlYWRzCitleHRlcm4gX190eXBlb2YgKHhtbEluaXRUaHJlYWRzKSB4bWxJbml0VGhyZWFkc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbEluaXRUaHJlYWRzIHhtbEluaXRUaHJlYWRzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbEluaXRpYWxpemVDYXRhbG9nCitleHRlcm4gX190eXBlb2YgKHhtbEluaXRpYWxpemVDYXRhbG9nKSB4bWxJbml0aWFsaXplQ2F0YWxvZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbEluaXRpYWxpemVDYXRhbG9nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJbml0aWFsaXplQ2F0YWxvZworZXh0ZXJuIF9fdHlwZW9mICh4bWxJbml0aWFsaXplQ2F0YWxvZykgeG1sSW5pdGlhbGl6ZUNhdGFsb2dfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJbml0aWFsaXplQ2F0YWxvZyB4bWxJbml0aWFsaXplQ2F0YWxvZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9nbG9iYWxzCisjdW5kZWYgeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlCitleHRlcm4gX190eXBlb2YgKHhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZSkgeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlKSB4bWxJbml0aWFsaXplR2xvYmFsU3RhdGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUgeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzCitleHRlcm4gX190eXBlb2YgKHhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMpIHhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzCitleHRlcm4gX190eXBlb2YgKHhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMpIHhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzIHhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fY2h2YWxpZAorI3VuZGVmIHhtbElzQmFzZUNoYXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNCYXNlQ2hhcikgeG1sSXNCYXNlQ2hhciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzQmFzZUNoYXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElzQmFzZUNoYXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNCYXNlQ2hhcikgeG1sSXNCYXNlQ2hhcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElzQmFzZUNoYXIgeG1sSXNCYXNlQ2hhcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fY2h2YWxpZAorI3VuZGVmIHhtbElzQmxhbmsKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNCbGFuaykgeG1sSXNCbGFuayBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzQmxhbmtfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElzQmxhbmsKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNCbGFuaykgeG1sSXNCbGFua19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElzQmxhbmsgeG1sSXNCbGFua19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbElzQmxhbmtOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbElzQmxhbmtOb2RlKSB4bWxJc0JsYW5rTm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzQmxhbmtOb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJc0JsYW5rTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc0JsYW5rTm9kZSkgeG1sSXNCbGFua05vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJc0JsYW5rTm9kZSB4bWxJc0JsYW5rTm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fY2h2YWxpZAorI3VuZGVmIHhtbElzQ2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc0NoYXIpIHhtbElzQ2hhciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzQ2hhcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSXNDaGFyCitleHRlcm4gX190eXBlb2YgKHhtbElzQ2hhcikgeG1sSXNDaGFyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSXNDaGFyIHhtbElzQ2hhcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fY2h2YWxpZAorI3VuZGVmIHhtbElzQ29tYmluaW5nCitleHRlcm4gX190eXBlb2YgKHhtbElzQ29tYmluaW5nKSB4bWxJc0NvbWJpbmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzQ29tYmluaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJc0NvbWJpbmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxJc0NvbWJpbmluZykgeG1sSXNDb21iaW5pbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJc0NvbWJpbmluZyB4bWxJc0NvbWJpbmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fY2h2YWxpZAorI3VuZGVmIHhtbElzRGlnaXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNEaWdpdCkgeG1sSXNEaWdpdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzRGlnaXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElzRGlnaXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNEaWdpdCkgeG1sSXNEaWdpdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElzRGlnaXQgeG1sSXNEaWdpdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fY2h2YWxpZAorI3VuZGVmIHhtbElzRXh0ZW5kZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNFeHRlbmRlcikgeG1sSXNFeHRlbmRlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzRXh0ZW5kZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElzRXh0ZW5kZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNFeHRlbmRlcikgeG1sSXNFeHRlbmRlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElzRXh0ZW5kZXIgeG1sSXNFeHRlbmRlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxJc0lECitleHRlcm4gX190eXBlb2YgKHhtbElzSUQpIHhtbElzSUQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxJc0lEX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJc0lECitleHRlcm4gX190eXBlb2YgKHhtbElzSUQpIHhtbElzSURfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJc0lEIHhtbElzSURfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2NodmFsaWQKKyN1bmRlZiB4bWxJc0lkZW9ncmFwaGljCitleHRlcm4gX190eXBlb2YgKHhtbElzSWRlb2dyYXBoaWMpIHhtbElzSWRlb2dyYXBoaWMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxJc0lkZW9ncmFwaGljX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJc0lkZW9ncmFwaGljCitleHRlcm4gX190eXBlb2YgKHhtbElzSWRlb2dyYXBoaWMpIHhtbElzSWRlb2dyYXBoaWNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJc0lkZW9ncmFwaGljIHhtbElzSWRlb2dyYXBoaWNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbElzTGV0dGVyCitleHRlcm4gX190eXBlb2YgKHhtbElzTGV0dGVyKSB4bWxJc0xldHRlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzTGV0dGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxJc0xldHRlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc0xldHRlcikgeG1sSXNMZXR0ZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxJc0xldHRlciB4bWxJc0xldHRlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdGhyZWFkcworI3VuZGVmIHhtbElzTWFpblRocmVhZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc01haW5UaHJlYWQpIHhtbElzTWFpblRocmVhZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbElzTWFpblRocmVhZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSXNNYWluVGhyZWFkCitleHRlcm4gX190eXBlb2YgKHhtbElzTWFpblRocmVhZCkgeG1sSXNNYWluVGhyZWFkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSXNNYWluVGhyZWFkIHhtbElzTWFpblRocmVhZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxJc01peGVkRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc01peGVkRWxlbWVudCkgeG1sSXNNaXhlZEVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxJc01peGVkRWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSXNNaXhlZEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNNaXhlZEVsZW1lbnQpIHhtbElzTWl4ZWRFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSXNNaXhlZEVsZW1lbnQgeG1sSXNNaXhlZEVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2NodmFsaWQKKyN1bmRlZiB4bWxJc1B1YmlkQ2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc1B1YmlkQ2hhcikgeG1sSXNQdWJpZENoYXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxJc1B1YmlkQ2hhcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSXNQdWJpZENoYXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNQdWJpZENoYXIpIHhtbElzUHViaWRDaGFyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSXNQdWJpZENoYXIgeG1sSXNQdWJpZENoYXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sSXNSZWYKK2V4dGVybiBfX3R5cGVvZiAoeG1sSXNSZWYpIHhtbElzUmVmIF9fYXR0cmlidXRlKChhbGlhcygieG1sSXNSZWZfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbElzUmVmCitleHRlcm4gX190eXBlb2YgKHhtbElzUmVmKSB4bWxJc1JlZl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbElzUmVmIHhtbElzUmVmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sSXNYSFRNTAorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc1hIVE1MKSB4bWxJc1hIVE1MIF9fYXR0cmlidXRlKChhbGlhcygieG1sSXNYSFRNTF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sSXNYSFRNTAorZXh0ZXJuIF9fdHlwZW9mICh4bWxJc1hIVE1MKSB4bWxJc1hIVE1MX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sSXNYSFRNTCB4bWxJc1hIVE1MX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxLZWVwQmxhbmtzRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxLZWVwQmxhbmtzRGVmYXVsdCkgeG1sS2VlcEJsYW5rc0RlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxLZWVwQmxhbmtzRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sS2VlcEJsYW5rc0RlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sS2VlcEJsYW5rc0RlZmF1bHQpIHhtbEtlZXBCbGFua3NEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sS2VlcEJsYW5rc0RlZmF1bHQgeG1sS2VlcEJsYW5rc0RlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTGFzdEVsZW1lbnRDaGlsZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMYXN0RWxlbWVudENoaWxkKSB4bWxMYXN0RWxlbWVudENoaWxkIF9fYXR0cmlidXRlKChhbGlhcygieG1sTGFzdEVsZW1lbnRDaGlsZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGFzdEVsZW1lbnRDaGlsZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMYXN0RWxlbWVudENoaWxkKSB4bWxMYXN0RWxlbWVudENoaWxkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGFzdEVsZW1lbnRDaGlsZCB4bWxMYXN0RWxlbWVudENoaWxkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbExpbmVOdW1iZXJzRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaW5lTnVtYmVyc0RlZmF1bHQpIHhtbExpbmVOdW1iZXJzRGVmYXVsdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpbmVOdW1iZXJzRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGluZU51bWJlcnNEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbExpbmVOdW1iZXJzRGVmYXVsdCkgeG1sTGluZU51bWJlcnNEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGluZU51bWJlcnNEZWZhdWx0IHhtbExpbmVOdW1iZXJzRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpbmtHZXREYXRhCitleHRlcm4gX190eXBlb2YgKHhtbExpbmtHZXREYXRhKSB4bWxMaW5rR2V0RGF0YSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpbmtHZXREYXRhX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaW5rR2V0RGF0YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaW5rR2V0RGF0YSkgeG1sTGlua0dldERhdGFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaW5rR2V0RGF0YSB4bWxMaW5rR2V0RGF0YV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RBcHBlbmQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdEFwcGVuZCkgeG1sTGlzdEFwcGVuZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RBcHBlbmRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3RBcHBlbmQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdEFwcGVuZCkgeG1sTGlzdEFwcGVuZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3RBcHBlbmQgeG1sTGlzdEFwcGVuZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RDbGVhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0Q2xlYXIpIHhtbExpc3RDbGVhciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RDbGVhcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdENsZWFyCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RDbGVhcikgeG1sTGlzdENsZWFyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdENsZWFyIHhtbExpc3RDbGVhcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RDb3B5CitleHRlcm4gX190eXBlb2YgKHhtbExpc3RDb3B5KSB4bWxMaXN0Q29weSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RDb3B5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0Q29weQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0Q29weSkgeG1sTGlzdENvcHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0Q29weSB4bWxMaXN0Q29weV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RDcmVhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdENyZWF0ZSkgeG1sTGlzdENyZWF0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RDcmVhdGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3RDcmVhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdENyZWF0ZSkgeG1sTGlzdENyZWF0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3RDcmVhdGUgeG1sTGlzdENyZWF0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3REZWxldGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdERlbGV0ZSkgeG1sTGlzdERlbGV0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3REZWxldGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3REZWxldGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdERlbGV0ZSkgeG1sTGlzdERlbGV0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3REZWxldGUgeG1sTGlzdERlbGV0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3REdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdER1cCkgeG1sTGlzdER1cCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3REdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3REdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdER1cCkgeG1sTGlzdER1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3REdXAgeG1sTGlzdER1cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RFbXB0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0RW1wdHkpIHhtbExpc3RFbXB0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RFbXB0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdEVtcHR5CitleHRlcm4gX190eXBlb2YgKHhtbExpc3RFbXB0eSkgeG1sTGlzdEVtcHR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdEVtcHR5IHhtbExpc3RFbXB0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RFbmQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdEVuZCkgeG1sTGlzdEVuZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RFbmRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3RFbmQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdEVuZCkgeG1sTGlzdEVuZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3RFbmQgeG1sTGlzdEVuZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RGcm9udAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0RnJvbnQpIHhtbExpc3RGcm9udCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RGcm9udF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdEZyb250CitleHRlcm4gX190eXBlb2YgKHhtbExpc3RGcm9udCkgeG1sTGlzdEZyb250X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdEZyb250IHhtbExpc3RGcm9udF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RJbnNlcnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdEluc2VydCkgeG1sTGlzdEluc2VydCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RJbnNlcnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3RJbnNlcnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdEluc2VydCkgeG1sTGlzdEluc2VydF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3RJbnNlcnQgeG1sTGlzdEluc2VydF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RNZXJnZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0TWVyZ2UpIHhtbExpc3RNZXJnZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RNZXJnZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdE1lcmdlCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RNZXJnZSkgeG1sTGlzdE1lcmdlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdE1lcmdlIHhtbExpc3RNZXJnZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RQb3BCYWNrCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RQb3BCYWNrKSB4bWxMaXN0UG9wQmFjayBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RQb3BCYWNrX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0UG9wQmFjaworZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UG9wQmFjaykgeG1sTGlzdFBvcEJhY2tfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0UG9wQmFjayB4bWxMaXN0UG9wQmFja19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RQb3BGcm9udAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UG9wRnJvbnQpIHhtbExpc3RQb3BGcm9udCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RQb3BGcm9udF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdFBvcEZyb250CitleHRlcm4gX190eXBlb2YgKHhtbExpc3RQb3BGcm9udCkgeG1sTGlzdFBvcEZyb250X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdFBvcEZyb250IHhtbExpc3RQb3BGcm9udF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RQdXNoQmFjaworZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UHVzaEJhY2spIHhtbExpc3RQdXNoQmFjayBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RQdXNoQmFja19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdFB1c2hCYWNrCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RQdXNoQmFjaykgeG1sTGlzdFB1c2hCYWNrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdFB1c2hCYWNrIHhtbExpc3RQdXNoQmFja19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RQdXNoRnJvbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdFB1c2hGcm9udCkgeG1sTGlzdFB1c2hGcm9udCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RQdXNoRnJvbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3RQdXNoRnJvbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdFB1c2hGcm9udCkgeG1sTGlzdFB1c2hGcm9udF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3RQdXNoRnJvbnQgeG1sTGlzdFB1c2hGcm9udF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RSZW1vdmVBbGwKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdFJlbW92ZUFsbCkgeG1sTGlzdFJlbW92ZUFsbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RSZW1vdmVBbGxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3RSZW1vdmVBbGwKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdFJlbW92ZUFsbCkgeG1sTGlzdFJlbW92ZUFsbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3RSZW1vdmVBbGwgeG1sTGlzdFJlbW92ZUFsbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RSZW1vdmVGaXJzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UmVtb3ZlRmlyc3QpIHhtbExpc3RSZW1vdmVGaXJzdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RSZW1vdmVGaXJzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdFJlbW92ZUZpcnN0CitleHRlcm4gX190eXBlb2YgKHhtbExpc3RSZW1vdmVGaXJzdCkgeG1sTGlzdFJlbW92ZUZpcnN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdFJlbW92ZUZpcnN0IHhtbExpc3RSZW1vdmVGaXJzdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RSZW1vdmVMYXN0CitleHRlcm4gX190eXBlb2YgKHhtbExpc3RSZW1vdmVMYXN0KSB4bWxMaXN0UmVtb3ZlTGFzdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RSZW1vdmVMYXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0UmVtb3ZlTGFzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UmVtb3ZlTGFzdCkgeG1sTGlzdFJlbW92ZUxhc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0UmVtb3ZlTGFzdCB4bWxMaXN0UmVtb3ZlTGFzdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RSZXZlcnNlCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RSZXZlcnNlKSB4bWxMaXN0UmV2ZXJzZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RSZXZlcnNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0UmV2ZXJzZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UmV2ZXJzZSkgeG1sTGlzdFJldmVyc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0UmV2ZXJzZSB4bWxMaXN0UmV2ZXJzZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RSZXZlcnNlU2VhcmNoCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RSZXZlcnNlU2VhcmNoKSB4bWxMaXN0UmV2ZXJzZVNlYXJjaCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RSZXZlcnNlU2VhcmNoX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0UmV2ZXJzZVNlYXJjaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UmV2ZXJzZVNlYXJjaCkgeG1sTGlzdFJldmVyc2VTZWFyY2hfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0UmV2ZXJzZVNlYXJjaCB4bWxMaXN0UmV2ZXJzZVNlYXJjaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RSZXZlcnNlV2FsaworZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0UmV2ZXJzZVdhbGspIHhtbExpc3RSZXZlcnNlV2FsayBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RSZXZlcnNlV2Fsa19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTGlzdFJldmVyc2VXYWxrCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RSZXZlcnNlV2FsaykgeG1sTGlzdFJldmVyc2VXYWxrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTGlzdFJldmVyc2VXYWxrIHhtbExpc3RSZXZlcnNlV2Fsa19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RTZWFyY2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdFNlYXJjaCkgeG1sTGlzdFNlYXJjaCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RTZWFyY2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExpc3RTZWFyY2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sTGlzdFNlYXJjaCkgeG1sTGlzdFNlYXJjaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExpc3RTZWFyY2ggeG1sTGlzdFNlYXJjaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RTaXplCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RTaXplKSB4bWxMaXN0U2l6ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RTaXplX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0U2l6ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0U2l6ZSkgeG1sTGlzdFNpemVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0U2l6ZSB4bWxMaXN0U2l6ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RTb3J0CitleHRlcm4gX190eXBlb2YgKHhtbExpc3RTb3J0KSB4bWxMaXN0U29ydCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RTb3J0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0U29ydAorZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0U29ydCkgeG1sTGlzdFNvcnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0U29ydCB4bWxMaXN0U29ydF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fbGlzdAorI3VuZGVmIHhtbExpc3RXYWxrCitleHRlcm4gX190eXBlb2YgKHhtbExpc3RXYWxrKSB4bWxMaXN0V2FsayBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExpc3RXYWxrX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxMaXN0V2FsaworZXh0ZXJuIF9fdHlwZW9mICh4bWxMaXN0V2FsaykgeG1sTGlzdFdhbGtfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxMaXN0V2FsayB4bWxMaXN0V2Fsa19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2NhdGFsb2cKKyN1bmRlZiB4bWxMb2FkQUNhdGFsb2cKK2V4dGVybiBfX3R5cGVvZiAoeG1sTG9hZEFDYXRhbG9nKSB4bWxMb2FkQUNhdGFsb2cgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxMb2FkQUNhdGFsb2dfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExvYWRBQ2F0YWxvZworZXh0ZXJuIF9fdHlwZW9mICh4bWxMb2FkQUNhdGFsb2cpIHhtbExvYWRBQ2F0YWxvZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExvYWRBQ2F0YWxvZyB4bWxMb2FkQUNhdGFsb2dfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2NhdGFsb2cKKyN1bmRlZiB4bWxMb2FkQ2F0YWxvZworZXh0ZXJuIF9fdHlwZW9mICh4bWxMb2FkQ2F0YWxvZykgeG1sTG9hZENhdGFsb2cgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxMb2FkQ2F0YWxvZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTG9hZENhdGFsb2cKK2V4dGVybiBfX3R5cGVvZiAoeG1sTG9hZENhdGFsb2cpIHhtbExvYWRDYXRhbG9nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTG9hZENhdGFsb2cgeG1sTG9hZENhdGFsb2dfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2NhdGFsb2cKKyN1bmRlZiB4bWxMb2FkQ2F0YWxvZ3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sTG9hZENhdGFsb2dzKSB4bWxMb2FkQ2F0YWxvZ3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxMb2FkQ2F0YWxvZ3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExvYWRDYXRhbG9ncworZXh0ZXJuIF9fdHlwZW9mICh4bWxMb2FkQ2F0YWxvZ3MpIHhtbExvYWRDYXRhbG9nc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExvYWRDYXRhbG9ncyB4bWxMb2FkQ2F0YWxvZ3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxMb2FkRXh0ZXJuYWxFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sTG9hZEV4dGVybmFsRW50aXR5KSB4bWxMb2FkRXh0ZXJuYWxFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxMb2FkRXh0ZXJuYWxFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExvYWRFeHRlcm5hbEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMb2FkRXh0ZXJuYWxFbnRpdHkpIHhtbExvYWRFeHRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExvYWRFeHRlcm5hbEVudGl0eSB4bWxMb2FkRXh0ZXJuYWxFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sTG9hZFNHTUxTdXBlckNhdGFsb2cKK2V4dGVybiBfX3R5cGVvZiAoeG1sTG9hZFNHTUxTdXBlckNhdGFsb2cpIHhtbExvYWRTR01MU3VwZXJDYXRhbG9nIF9fYXR0cmlidXRlKChhbGlhcygieG1sTG9hZFNHTUxTdXBlckNhdGFsb2dfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbExvYWRTR01MU3VwZXJDYXRhbG9nCitleHRlcm4gX190eXBlb2YgKHhtbExvYWRTR01MU3VwZXJDYXRhbG9nKSB4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbExvYWRTR01MU3VwZXJDYXRhbG9nIHhtbExvYWRTR01MU3VwZXJDYXRhbG9nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RocmVhZHMKKyN1bmRlZiB4bWxMb2NrTGlicmFyeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMb2NrTGlicmFyeSkgeG1sTG9ja0xpYnJhcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxMb2NrTGlicmFyeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTG9ja0xpYnJhcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sTG9ja0xpYnJhcnkpIHhtbExvY2tMaWJyYXJ5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTG9ja0xpYnJhcnkgeG1sTG9ja0xpYnJhcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxMc0NvdW50Tm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMc0NvdW50Tm9kZSkgeG1sTHNDb3VudE5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxMc0NvdW50Tm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTHNDb3VudE5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTHNDb3VudE5vZGUpIHhtbExzQ291bnROb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTHNDb3VudE5vZGUgeG1sTHNDb3VudE5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbExzT25lTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxMc09uZU5vZGUpIHhtbExzT25lTm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbExzT25lTm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTHNPbmVOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbExzT25lTm9kZSkgeG1sTHNPbmVOb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTHNPbmVOb2RlIHhtbExzT25lTm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxtZW1vcnkKKyN1bmRlZiB4bWxNYWxsb2NBdG9taWNMb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWFsbG9jQXRvbWljTG9jKSB4bWxNYWxsb2NBdG9taWNMb2MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNYWxsb2NBdG9taWNMb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE1hbGxvY0F0b21pY0xvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxNYWxsb2NBdG9taWNMb2MpIHhtbE1hbGxvY0F0b21pY0xvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE1hbGxvY0F0b21pY0xvYyB4bWxNYWxsb2NBdG9taWNMb2NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbG1lbW9yeQorI3VuZGVmIHhtbE1hbGxvY0xvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxNYWxsb2NMb2MpIHhtbE1hbGxvY0xvYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE1hbGxvY0xvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTWFsbG9jTG9jCitleHRlcm4gX190eXBlb2YgKHhtbE1hbGxvY0xvYykgeG1sTWFsbG9jTG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTWFsbG9jTG9jIHhtbE1hbGxvY0xvY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sTWVtQmxvY2tzCitleHRlcm4gX190eXBlb2YgKHhtbE1lbUJsb2NrcykgeG1sTWVtQmxvY2tzIF9fYXR0cmlidXRlKChhbGlhcygieG1sTWVtQmxvY2tzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNZW1CbG9ja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtQmxvY2tzKSB4bWxNZW1CbG9ja3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNZW1CbG9ja3MgeG1sTWVtQmxvY2tzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxtZW1vcnkKKyN1bmRlZiB4bWxNZW1EaXNwbGF5CitleHRlcm4gX190eXBlb2YgKHhtbE1lbURpc3BsYXkpIHhtbE1lbURpc3BsYXkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNZW1EaXNwbGF5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNZW1EaXNwbGF5CitleHRlcm4gX190eXBlb2YgKHhtbE1lbURpc3BsYXkpIHhtbE1lbURpc3BsYXlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNZW1EaXNwbGF5IHhtbE1lbURpc3BsYXlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbG1lbW9yeQorI3VuZGVmIHhtbE1lbURpc3BsYXlMYXN0CitleHRlcm4gX190eXBlb2YgKHhtbE1lbURpc3BsYXlMYXN0KSB4bWxNZW1EaXNwbGF5TGFzdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE1lbURpc3BsYXlMYXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNZW1EaXNwbGF5TGFzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1EaXNwbGF5TGFzdCkgeG1sTWVtRGlzcGxheUxhc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNZW1EaXNwbGF5TGFzdCB4bWxNZW1EaXNwbGF5TGFzdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sTWVtRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1GcmVlKSB4bWxNZW1GcmVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTWVtRnJlZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTWVtRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1GcmVlKSB4bWxNZW1GcmVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTWVtRnJlZSB4bWxNZW1GcmVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxtZW1vcnkKKyN1bmRlZiB4bWxNZW1HZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtR2V0KSB4bWxNZW1HZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNZW1HZXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE1lbUdldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1HZXQpIHhtbE1lbUdldF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE1lbUdldCB4bWxNZW1HZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbG1lbW9yeQorI3VuZGVmIHhtbE1lbU1hbGxvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1NYWxsb2MpIHhtbE1lbU1hbGxvYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE1lbU1hbGxvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTWVtTWFsbG9jCitleHRlcm4gX190eXBlb2YgKHhtbE1lbU1hbGxvYykgeG1sTWVtTWFsbG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTWVtTWFsbG9jIHhtbE1lbU1hbGxvY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sTWVtUmVhbGxvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1SZWFsbG9jKSB4bWxNZW1SZWFsbG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sTWVtUmVhbGxvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTWVtUmVhbGxvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1SZWFsbG9jKSB4bWxNZW1SZWFsbG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTWVtUmVhbGxvYyB4bWxNZW1SZWFsbG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxtZW1vcnkKKyN1bmRlZiB4bWxNZW1TZXR1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxNZW1TZXR1cCkgeG1sTWVtU2V0dXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNZW1TZXR1cF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTWVtU2V0dXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtU2V0dXApIHhtbE1lbVNldHVwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTWVtU2V0dXAgeG1sTWVtU2V0dXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbG1lbW9yeQorI3VuZGVmIHhtbE1lbVNob3cKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtU2hvdykgeG1sTWVtU2hvdyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE1lbVNob3dfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE1lbVNob3cKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtU2hvdykgeG1sTWVtU2hvd19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE1lbVNob3cgeG1sTWVtU2hvd19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sTWVtU3RyZHVwTG9jCitleHRlcm4gX190eXBlb2YgKHhtbE1lbVN0cmR1cExvYykgeG1sTWVtU3RyZHVwTG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sTWVtU3RyZHVwTG9jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNZW1TdHJkdXBMb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtU3RyZHVwTG9jKSB4bWxNZW1TdHJkdXBMb2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNZW1TdHJkdXBMb2MgeG1sTWVtU3RyZHVwTG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxtZW1vcnkKKyN1bmRlZiB4bWxNZW1Vc2VkCitleHRlcm4gX190eXBlb2YgKHhtbE1lbVVzZWQpIHhtbE1lbVVzZWQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNZW1Vc2VkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNZW1Vc2VkCitleHRlcm4gX190eXBlb2YgKHhtbE1lbVVzZWQpIHhtbE1lbVVzZWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNZW1Vc2VkIHhtbE1lbVVzZWRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbG1lbW9yeQorI3VuZGVmIHhtbE1lbW9yeUR1bXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtb3J5RHVtcCkgeG1sTWVtb3J5RHVtcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE1lbW9yeUR1bXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE1lbW9yeUR1bXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtb3J5RHVtcCkgeG1sTWVtb3J5RHVtcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE1lbW9yeUR1bXAgeG1sTWVtb3J5RHVtcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sTWVtb3J5U3RyZHVwCitleHRlcm4gX190eXBlb2YgKHhtbE1lbW9yeVN0cmR1cCkgeG1sTWVtb3J5U3RyZHVwIF9fYXR0cmlidXRlKChhbGlhcygieG1sTWVtb3J5U3RyZHVwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNZW1vcnlTdHJkdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sTWVtb3J5U3RyZHVwKSB4bWxNZW1vcnlTdHJkdXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNZW1vcnlTdHJkdXAgeG1sTWVtb3J5U3RyZHVwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX01PRFVMRVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sbW9kdWxlCisjdW5kZWYgeG1sTW9kdWxlQ2xvc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sTW9kdWxlQ2xvc2UpIHhtbE1vZHVsZUNsb3NlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTW9kdWxlQ2xvc2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE1vZHVsZUNsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbE1vZHVsZUNsb3NlKSB4bWxNb2R1bGVDbG9zZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE1vZHVsZUNsb3NlIHhtbE1vZHVsZUNsb3NlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfTU9EVUxFU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxtb2R1bGUKKyN1bmRlZiB4bWxNb2R1bGVGcmVlCitleHRlcm4gX190eXBlb2YgKHhtbE1vZHVsZUZyZWUpIHhtbE1vZHVsZUZyZWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNb2R1bGVGcmVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNb2R1bGVGcmVlCitleHRlcm4gX190eXBlb2YgKHhtbE1vZHVsZUZyZWUpIHhtbE1vZHVsZUZyZWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNb2R1bGVGcmVlIHhtbE1vZHVsZUZyZWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9NT0RVTEVTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbG1vZHVsZQorI3VuZGVmIHhtbE1vZHVsZU9wZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sTW9kdWxlT3BlbikgeG1sTW9kdWxlT3BlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE1vZHVsZU9wZW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE1vZHVsZU9wZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sTW9kdWxlT3BlbikgeG1sTW9kdWxlT3Blbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE1vZHVsZU9wZW4geG1sTW9kdWxlT3Blbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX01PRFVMRVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sbW9kdWxlCisjdW5kZWYgeG1sTW9kdWxlU3ltYm9sCitleHRlcm4gX190eXBlb2YgKHhtbE1vZHVsZVN5bWJvbCkgeG1sTW9kdWxlU3ltYm9sIF9fYXR0cmlidXRlKChhbGlhcygieG1sTW9kdWxlU3ltYm9sX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxNb2R1bGVTeW1ib2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sTW9kdWxlU3ltYm9sKSB4bWxNb2R1bGVTeW1ib2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxNb2R1bGVTeW1ib2wgeG1sTW9kdWxlU3ltYm9sX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RocmVhZHMKKyN1bmRlZiB4bWxNdXRleExvY2sKK2V4dGVybiBfX3R5cGVvZiAoeG1sTXV0ZXhMb2NrKSB4bWxNdXRleExvY2sgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNdXRleExvY2tfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE11dGV4TG9jaworZXh0ZXJuIF9fdHlwZW9mICh4bWxNdXRleExvY2spIHhtbE11dGV4TG9ja19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE11dGV4TG9jayB4bWxNdXRleExvY2tfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RocmVhZHMKKyN1bmRlZiB4bWxNdXRleFVubG9jaworZXh0ZXJuIF9fdHlwZW9mICh4bWxNdXRleFVubG9jaykgeG1sTXV0ZXhVbmxvY2sgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxNdXRleFVubG9ja19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTXV0ZXhVbmxvY2sKK2V4dGVybiBfX3R5cGVvZiAoeG1sTXV0ZXhVbmxvY2spIHhtbE11dGV4VW5sb2NrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTXV0ZXhVbmxvY2sgeG1sTXV0ZXhVbmxvY2tfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2xlZ2FjeQorI3VuZGVmIHhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lKSB4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbWVzcGFjZVBhcnNlTkNOYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSkgeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSB4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxOYW1lc3BhY2VQYXJzZU5TRGVmCitleHRlcm4gX190eXBlb2YgKHhtbE5hbWVzcGFjZVBhcnNlTlNEZWYpIHhtbE5hbWVzcGFjZVBhcnNlTlNEZWYgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW1lc3BhY2VQYXJzZU5TRGVmX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW1lc3BhY2VQYXJzZU5TRGVmCitleHRlcm4gX190eXBlb2YgKHhtbE5hbWVzcGFjZVBhcnNlTlNEZWYpIHhtbE5hbWVzcGFjZVBhcnNlTlNEZWZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW1lc3BhY2VQYXJzZU5TRGVmIHhtbE5hbWVzcGFjZVBhcnNlTlNEZWZfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbGVnYWN5CisjdW5kZWYgeG1sTmFtZXNwYWNlUGFyc2VRTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW1lc3BhY2VQYXJzZVFOYW1lKSB4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFtZXNwYWNlUGFyc2VRTmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFtZXNwYWNlUGFyc2VRTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW1lc3BhY2VQYXJzZVFOYW1lKSB4bWxOYW1lc3BhY2VQYXJzZVFOYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFtZXNwYWNlUGFyc2VRTmFtZSB4bWxOYW1lc3BhY2VQYXJzZVFOYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZSkgeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UpIHhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UgeG1sTmFub0ZUUENoZWNrUmVzcG9uc2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2Z0cAorI3VuZGVmIHhtbE5hbm9GVFBDbGVhbnVwCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBDbGVhbnVwKSB4bWxOYW5vRlRQQ2xlYW51cCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9GVFBDbGVhbnVwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQQ2xlYW51cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQQ2xlYW51cCkgeG1sTmFub0ZUUENsZWFudXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQQ2xlYW51cCB4bWxOYW5vRlRQQ2xlYW51cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vZnRwCisjdW5kZWYgeG1sTmFub0ZUUENsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBDbG9zZSkgeG1sTmFub0ZUUENsb3NlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0ZUUENsb3NlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQQ2xvc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUENsb3NlKSB4bWxOYW5vRlRQQ2xvc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQQ2xvc2UgeG1sTmFub0ZUUENsb3NlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24pIHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24pIHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uIHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2Z0cAorI3VuZGVmIHhtbE5hbm9GVFBDb25uZWN0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBDb25uZWN0KSB4bWxOYW5vRlRQQ29ubmVjdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9GVFBDb25uZWN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQQ29ubmVjdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQQ29ubmVjdCkgeG1sTmFub0ZUUENvbm5lY3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQQ29ubmVjdCB4bWxOYW5vRlRQQ29ubmVjdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vZnRwCisjdW5kZWYgeG1sTmFub0ZUUENvbm5lY3RUbworZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQQ29ubmVjdFRvKSB4bWxOYW5vRlRQQ29ubmVjdFRvIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0ZUUENvbm5lY3RUb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0ZUUENvbm5lY3RUbworZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQQ29ubmVjdFRvKSB4bWxOYW5vRlRQQ29ubmVjdFRvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0ZUUENvbm5lY3RUbyB4bWxOYW5vRlRQQ29ubmVjdFRvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQQ3dkCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBDd2QpIHhtbE5hbm9GVFBDd2QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQQ3dkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQQ3dkCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBDd2QpIHhtbE5hbm9GVFBDd2RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQQ3dkIHhtbE5hbm9GVFBDd2RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2Z0cAorI3VuZGVmIHhtbE5hbm9GVFBEZWxlCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBEZWxlKSB4bWxOYW5vRlRQRGVsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9GVFBEZWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQRGVsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQRGVsZSkgeG1sTmFub0ZUUERlbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQRGVsZSB4bWxOYW5vRlRQRGVsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vZnRwCisjdW5kZWYgeG1sTmFub0ZUUEZyZWVDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBGcmVlQ3R4dCkgeG1sTmFub0ZUUEZyZWVDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0ZUUEZyZWVDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQRnJlZUN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUEZyZWVDdHh0KSB4bWxOYW5vRlRQRnJlZUN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQRnJlZUN0eHQgeG1sTmFub0ZUUEZyZWVDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQR2V0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBHZXQpIHhtbE5hbm9GVFBHZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQR2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQR2V0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBHZXQpIHhtbE5hbm9GVFBHZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQR2V0IHhtbE5hbm9GVFBHZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2Z0cAorI3VuZGVmIHhtbE5hbm9GVFBHZXRDb25uZWN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBHZXRDb25uZWN0aW9uKSB4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9GVFBHZXRDb25uZWN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbikgeG1sTmFub0ZUUEdldENvbm5lY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbiB4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vZnRwCisjdW5kZWYgeG1sTmFub0ZUUEdldFJlc3BvbnNlCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBHZXRSZXNwb25zZSkgeG1sTmFub0ZUUEdldFJlc3BvbnNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0ZUUEdldFJlc3BvbnNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQR2V0UmVzcG9uc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUEdldFJlc3BvbnNlKSB4bWxOYW5vRlRQR2V0UmVzcG9uc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQR2V0UmVzcG9uc2UgeG1sTmFub0ZUUEdldFJlc3BvbnNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQR2V0U29ja2V0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBHZXRTb2NrZXQpIHhtbE5hbm9GVFBHZXRTb2NrZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQR2V0U29ja2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQR2V0U29ja2V0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBHZXRTb2NrZXQpIHhtbE5hbm9GVFBHZXRTb2NrZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQR2V0U29ja2V0IHhtbE5hbm9GVFBHZXRTb2NrZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2Z0cAorI3VuZGVmIHhtbE5hbm9GVFBJbml0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBJbml0KSB4bWxOYW5vRlRQSW5pdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9GVFBJbml0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQSW5pdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQSW5pdCkgeG1sTmFub0ZUUEluaXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQSW5pdCB4bWxOYW5vRlRQSW5pdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vZnRwCisjdW5kZWYgeG1sTmFub0ZUUExpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUExpc3QpIHhtbE5hbm9GVFBMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0ZUUExpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5hbm9GVFBMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBMaXN0KSB4bWxOYW5vRlRQTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5hbm9GVFBMaXN0IHhtbE5hbm9GVFBMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQTmV3Q3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQTmV3Q3R4dCkgeG1sTmFub0ZUUE5ld0N0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQTmV3Q3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0ZUUE5ld0N0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUE5ld0N0eHQpIHhtbE5hbm9GVFBOZXdDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0ZUUE5ld0N0eHQgeG1sTmFub0ZUUE5ld0N0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2Z0cAorI3VuZGVmIHhtbE5hbm9GVFBPcGVuCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBPcGVuKSB4bWxOYW5vRlRQT3BlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9GVFBPcGVuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQT3BlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQT3BlbikgeG1sTmFub0ZUUE9wZW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQT3BlbiB4bWxOYW5vRlRQT3Blbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vZnRwCisjdW5kZWYgeG1sTmFub0ZUUFByb3h5CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBQcm94eSkgeG1sTmFub0ZUUFByb3h5IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0ZUUFByb3h5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQUHJveHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUFByb3h5KSB4bWxOYW5vRlRQUHJveHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQUHJveHkgeG1sTmFub0ZUUFByb3h5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQUXVpdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQUXVpdCkgeG1sTmFub0ZUUFF1aXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQUXVpdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0ZUUFF1aXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0ZUUFF1aXQpIHhtbE5hbm9GVFBRdWl0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0ZUUFF1aXQgeG1sTmFub0ZUUFF1aXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2Z0cAorI3VuZGVmIHhtbE5hbm9GVFBSZWFkCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBSZWFkKSB4bWxOYW5vRlRQUmVhZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9GVFBSZWFkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQUmVhZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQUmVhZCkgeG1sTmFub0ZUUFJlYWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQUmVhZCB4bWxOYW5vRlRQUmVhZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vZnRwCisjdW5kZWYgeG1sTmFub0ZUUFNjYW5Qcm94eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQU2NhblByb3h5KSB4bWxOYW5vRlRQU2NhblByb3h5IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0ZUUFNjYW5Qcm94eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0ZUUFNjYW5Qcm94eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vRlRQU2NhblByb3h5KSB4bWxOYW5vRlRQU2NhblByb3h5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0ZUUFNjYW5Qcm94eSB4bWxOYW5vRlRQU2NhblByb3h5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9mdHAKKyN1bmRlZiB4bWxOYW5vRlRQVXBkYXRlVVJMCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBVcGRhdGVVUkwpIHhtbE5hbm9GVFBVcGRhdGVVUkwgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vRlRQVXBkYXRlVVJMX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vRlRQVXBkYXRlVVJMCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9GVFBVcGRhdGVVUkwpIHhtbE5hbm9GVFBVcGRhdGVVUkxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vRlRQVXBkYXRlVVJMIHhtbE5hbm9GVFBVcGRhdGVVUkxfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9odHRwCisjdW5kZWYgeG1sTmFub0hUVFBBdXRoSGVhZGVyCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQQXV0aEhlYWRlcikgeG1sTmFub0hUVFBBdXRoSGVhZGVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0hUVFBBdXRoSGVhZGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUEF1dGhIZWFkZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBBdXRoSGVhZGVyKSB4bWxOYW5vSFRUUEF1dGhIZWFkZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUEF1dGhIZWFkZXIgeG1sTmFub0hUVFBBdXRoSGVhZGVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vaHR0cAorI3VuZGVmIHhtbE5hbm9IVFRQQ2xlYW51cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUENsZWFudXApIHhtbE5hbm9IVFRQQ2xlYW51cCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9IVFRQQ2xlYW51cF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0hUVFBDbGVhbnVwCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQQ2xlYW51cCkgeG1sTmFub0hUVFBDbGVhbnVwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0hUVFBDbGVhbnVwIHhtbE5hbm9IVFRQQ2xlYW51cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2h0dHAKKyN1bmRlZiB4bWxOYW5vSFRUUENsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQQ2xvc2UpIHhtbE5hbm9IVFRQQ2xvc2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vSFRUUENsb3NlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUENsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQQ2xvc2UpIHhtbE5hbm9IVFRQQ2xvc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUENsb3NlIHhtbE5hbm9IVFRQQ2xvc2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9odHRwCisjdW5kZWYgeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQQ29udGVudExlbmd0aCkgeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0hUVFBDb250ZW50TGVuZ3RoX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoKSB4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGhfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGggeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vaHR0cAorI3VuZGVmIHhtbE5hbm9IVFRQRW5jb2RpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBFbmNvZGluZykgeG1sTmFub0hUVFBFbmNvZGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9IVFRQRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5hbm9IVFRQRW5jb2RpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBFbmNvZGluZykgeG1sTmFub0hUVFBFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5hbm9IVFRQRW5jb2RpbmcgeG1sTmFub0hUVFBFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2h0dHAKKyN1bmRlZiB4bWxOYW5vSFRUUEZldGNoCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQRmV0Y2gpIHhtbE5hbm9IVFRQRmV0Y2ggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vSFRUUEZldGNoX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUEZldGNoCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQRmV0Y2gpIHhtbE5hbm9IVFRQRmV0Y2hfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUEZldGNoIHhtbE5hbm9IVFRQRmV0Y2hfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9odHRwCisjdW5kZWYgeG1sTmFub0hUVFBJbml0CitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQSW5pdCkgeG1sTmFub0hUVFBJbml0IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0hUVFBJbml0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUEluaXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBJbml0KSB4bWxOYW5vSFRUUEluaXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUEluaXQgeG1sTmFub0hUVFBJbml0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vaHR0cAorI3VuZGVmIHhtbE5hbm9IVFRQTWV0aG9kCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQTWV0aG9kKSB4bWxOYW5vSFRUUE1ldGhvZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9IVFRQTWV0aG9kX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUE1ldGhvZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUE1ldGhvZCkgeG1sTmFub0hUVFBNZXRob2RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUE1ldGhvZCB4bWxOYW5vSFRUUE1ldGhvZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2h0dHAKKyN1bmRlZiB4bWxOYW5vSFRUUE1ldGhvZFJlZGlyCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQTWV0aG9kUmVkaXIpIHhtbE5hbm9IVFRQTWV0aG9kUmVkaXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vSFRUUE1ldGhvZFJlZGlyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUE1ldGhvZFJlZGlyCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQTWV0aG9kUmVkaXIpIHhtbE5hbm9IVFRQTWV0aG9kUmVkaXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUE1ldGhvZFJlZGlyIHhtbE5hbm9IVFRQTWV0aG9kUmVkaXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9odHRwCisjdW5kZWYgeG1sTmFub0hUVFBNaW1lVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUE1pbWVUeXBlKSB4bWxOYW5vSFRUUE1pbWVUeXBlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0hUVFBNaW1lVHlwZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0hUVFBNaW1lVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUE1pbWVUeXBlKSB4bWxOYW5vSFRUUE1pbWVUeXBlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0hUVFBNaW1lVHlwZSB4bWxOYW5vSFRUUE1pbWVUeXBlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vaHR0cAorI3VuZGVmIHhtbE5hbm9IVFRQT3BlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUE9wZW4pIHhtbE5hbm9IVFRQT3BlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9IVFRQT3Blbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0hUVFBPcGVuCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQT3BlbikgeG1sTmFub0hUVFBPcGVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0hUVFBPcGVuIHhtbE5hbm9IVFRQT3Blbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2h0dHAKKyN1bmRlZiB4bWxOYW5vSFRUUE9wZW5SZWRpcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUE9wZW5SZWRpcikgeG1sTmFub0hUVFBPcGVuUmVkaXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vSFRUUE9wZW5SZWRpcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0hUVFBPcGVuUmVkaXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBPcGVuUmVkaXIpIHhtbE5hbm9IVFRQT3BlblJlZGlyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0hUVFBPcGVuUmVkaXIgeG1sTmFub0hUVFBPcGVuUmVkaXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX25hbm9odHRwCisjdW5kZWYgeG1sTmFub0hUVFBSZWFkCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQUmVhZCkgeG1sTmFub0hUVFBSZWFkIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmFub0hUVFBSZWFkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOYW5vSFRUUFJlYWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBSZWFkKSB4bWxOYW5vSFRUUFJlYWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOYW5vSFRUUFJlYWQgeG1sTmFub0hUVFBSZWFkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vaHR0cAorI3VuZGVmIHhtbE5hbm9IVFRQUmVkaXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBSZWRpcikgeG1sTmFub0hUVFBSZWRpciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9IVFRQUmVkaXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5hbm9IVFRQUmVkaXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBSZWRpcikgeG1sTmFub0hUVFBSZWRpcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5hbm9IVFRQUmVkaXIgeG1sTmFub0hUVFBSZWRpcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2h0dHAKKyN1bmRlZiB4bWxOYW5vSFRUUFJldHVybkNvZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBSZXR1cm5Db2RlKSB4bWxOYW5vSFRUUFJldHVybkNvZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vSFRUUFJldHVybkNvZGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5hbm9IVFRQUmV0dXJuQ29kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUFJldHVybkNvZGUpIHhtbE5hbm9IVFRQUmV0dXJuQ29kZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5hbm9IVFRQUmV0dXJuQ29kZSB4bWxOYW5vSFRUUFJldHVybkNvZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9uYW5vaHR0cAorI3VuZGVmIHhtbE5hbm9IVFRQU2F2ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUFNhdmUpIHhtbE5hbm9IVFRQU2F2ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5hbm9IVFRQU2F2ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0hUVFBTYXZlCitleHRlcm4gX190eXBlb2YgKHhtbE5hbm9IVFRQU2F2ZSkgeG1sTmFub0hUVFBTYXZlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0hUVFBTYXZlIHhtbE5hbm9IVFRQU2F2ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbmFub2h0dHAKKyN1bmRlZiB4bWxOYW5vSFRUUFNjYW5Qcm94eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOYW5vSFRUUFNjYW5Qcm94eSkgeG1sTmFub0hUVFBTY2FuUHJveHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOYW5vSFRUUFNjYW5Qcm94eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmFub0hUVFBTY2FuUHJveHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmFub0hUVFBTY2FuUHJveHkpIHhtbE5hbm9IVFRQU2NhblByb3h5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmFub0hUVFBTY2FuUHJveHkgeG1sTmFub0hUVFBTY2FuUHJveHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sTmV3QXV0b21hdGEKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3QXV0b21hdGEpIHhtbE5ld0F1dG9tYXRhIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3QXV0b21hdGFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0F1dG9tYXRhCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0F1dG9tYXRhKSB4bWxOZXdBdXRvbWF0YV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0F1dG9tYXRhIHhtbE5ld0F1dG9tYXRhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdDRGF0YUJsb2NrCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0NEYXRhQmxvY2spIHhtbE5ld0NEYXRhQmxvY2sgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdDRGF0YUJsb2NrX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdDRGF0YUJsb2NrCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0NEYXRhQmxvY2spIHhtbE5ld0NEYXRhQmxvY2tfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdDRGF0YUJsb2NrIHhtbE5ld0NEYXRhQmxvY2tfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9jYXRhbG9nCisjdW5kZWYgeG1sTmV3Q2F0YWxvZworZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdDYXRhbG9nKSB4bWxOZXdDYXRhbG9nIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3Q2F0YWxvZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3Q2F0YWxvZworZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdDYXRhbG9nKSB4bWxOZXdDYXRhbG9nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3Q2F0YWxvZyB4bWxOZXdDYXRhbG9nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyKSB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyKSB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3Q2hhclJlZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdDaGFyUmVmKSB4bWxOZXdDaGFyUmVmIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3Q2hhclJlZl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3Q2hhclJlZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdDaGFyUmVmKSB4bWxOZXdDaGFyUmVmX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3Q2hhclJlZiB4bWxOZXdDaGFyUmVmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3Q2hpbGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3Q2hpbGQpIHhtbE5ld0NoaWxkIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3Q2hpbGRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0NoaWxkCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0NoaWxkKSB4bWxOZXdDaGlsZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0NoaWxkIHhtbE5ld0NoaWxkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5ld0NvbW1lbnQpIHhtbE5ld0NvbW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdDb21tZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5ld0NvbW1lbnQpIHhtbE5ld0NvbW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdDb21tZW50IHhtbE5ld0NvbW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RG9jKSB4bWxOZXdEb2MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdEb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0RvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2MpIHhtbE5ld0RvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0RvYyB4bWxOZXdEb2NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdEb2NDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5ld0RvY0NvbW1lbnQpIHhtbE5ld0RvY0NvbW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdEb2NDb21tZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdEb2NDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5ld0RvY0NvbW1lbnQpIHhtbE5ld0RvY0NvbW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdEb2NDb21tZW50IHhtbE5ld0RvY0NvbW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sTmV3RG9jRWxlbWVudENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RG9jRWxlbWVudENvbnRlbnQpIHhtbE5ld0RvY0VsZW1lbnRDb250ZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RG9jRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0RvY0VsZW1lbnRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5ld0RvY0VsZW1lbnRDb250ZW50KSB4bWxOZXdEb2NFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0RvY0VsZW1lbnRDb250ZW50IHhtbE5ld0RvY0VsZW1lbnRDb250ZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5ld0RvY0ZyYWdtZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5ld0RvY0ZyYWdtZW50KSB4bWxOZXdEb2NGcmFnbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld0RvY0ZyYWdtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdEb2NGcmFnbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NGcmFnbWVudCkgeG1sTmV3RG9jRnJhZ21lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdEb2NGcmFnbWVudCB4bWxOZXdEb2NGcmFnbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3RG9jTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NOb2RlKSB4bWxOZXdEb2NOb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RG9jTm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3RG9jTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NOb2RlKSB4bWxOZXdEb2NOb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3RG9jTm9kZSB4bWxOZXdEb2NOb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3RG9jTm9kZUVhdE5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RG9jTm9kZUVhdE5hbWUpIHhtbE5ld0RvY05vZGVFYXROYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RG9jTm9kZUVhdE5hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0RvY05vZGVFYXROYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0RvY05vZGVFYXROYW1lKSB4bWxOZXdEb2NOb2RlRWF0TmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0RvY05vZGVFYXROYW1lIHhtbE5ld0RvY05vZGVFYXROYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3RG9jUEkKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RG9jUEkpIHhtbE5ld0RvY1BJIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RG9jUElfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0RvY1BJCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0RvY1BJKSB4bWxOZXdEb2NQSV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0RvY1BJIHhtbE5ld0RvY1BJX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3RG9jUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NQcm9wKSB4bWxOZXdEb2NQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RG9jUHJvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3RG9jUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NQcm9wKSB4bWxOZXdEb2NQcm9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3RG9jUHJvcCB4bWxOZXdEb2NQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5ld0RvY1Jhd05vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RG9jUmF3Tm9kZSkgeG1sTmV3RG9jUmF3Tm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld0RvY1Jhd05vZGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0RvY1Jhd05vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RG9jUmF3Tm9kZSkgeG1sTmV3RG9jUmF3Tm9kZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0RvY1Jhd05vZGUgeG1sTmV3RG9jUmF3Tm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3RG9jVGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NUZXh0KSB4bWxOZXdEb2NUZXh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RG9jVGV4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3RG9jVGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NUZXh0KSB4bWxOZXdEb2NUZXh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3RG9jVGV4dCB4bWxOZXdEb2NUZXh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3RG9jVGV4dExlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NUZXh0TGVuKSB4bWxOZXdEb2NUZXh0TGVuIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RG9jVGV4dExlbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3RG9jVGV4dExlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdEb2NUZXh0TGVuKSB4bWxOZXdEb2NUZXh0TGVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3RG9jVGV4dExlbiB4bWxOZXdEb2NUZXh0TGVuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3RHRkCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0R0ZCkgeG1sTmV3RHRkIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3RHRkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdEdGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RHRkKSB4bWxOZXdEdGRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdEdGQgeG1sTmV3RHRkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbE5ld0VsZW1lbnRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5ld0VsZW1lbnRDb250ZW50KSB4bWxOZXdFbGVtZW50Q29udGVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld0VsZW1lbnRDb250ZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdFbGVtZW50Q29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdFbGVtZW50Q29udGVudCkgeG1sTmV3RWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdFbGVtZW50Q29udGVudCB4bWxOZXdFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZW50aXRpZXMKKyN1bmRlZiB4bWxOZXdFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3RW50aXR5KSB4bWxOZXdFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0VudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdFbnRpdHkpIHhtbE5ld0VudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0VudGl0eSB4bWxOZXdFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbE5ld0VudGl0eUlucHV0U3RyZWFtCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0VudGl0eUlucHV0U3RyZWFtKSB4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld0VudGl0eUlucHV0U3RyZWFtX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSkgeG1sTmV3RW50aXR5SW5wdXRTdHJlYW1fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSB4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fbGVnYWN5CisjdW5kZWYgeG1sTmV3R2xvYmFsTnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3R2xvYmFsTnMpIHhtbE5ld0dsb2JhbE5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3R2xvYmFsTnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0dsb2JhbE5zCitleHRlcm4gX190eXBlb2YgKHhtbE5ld0dsb2JhbE5zKSB4bWxOZXdHbG9iYWxOc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0dsb2JhbE5zIHhtbE5ld0dsb2JhbE5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbE5ld0lPSW5wdXRTdHJlYW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3SU9JbnB1dFN0cmVhbSkgeG1sTmV3SU9JbnB1dFN0cmVhbSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld0lPSW5wdXRTdHJlYW1fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld0lPSW5wdXRTdHJlYW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3SU9JbnB1dFN0cmVhbSkgeG1sTmV3SU9JbnB1dFN0cmVhbV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld0lPSW5wdXRTdHJlYW0geG1sTmV3SU9JbnB1dFN0cmVhbV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VySW50ZXJuYWxzCisjdW5kZWYgeG1sTmV3SW5wdXRGcm9tRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdJbnB1dEZyb21GaWxlKSB4bWxOZXdJbnB1dEZyb21GaWxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3SW5wdXRGcm9tRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3SW5wdXRGcm9tRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdJbnB1dEZyb21GaWxlKSB4bWxOZXdJbnB1dEZyb21GaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3SW5wdXRGcm9tRmlsZSB4bWxOZXdJbnB1dEZyb21GaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxOZXdJbnB1dFN0cmVhbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdJbnB1dFN0cmVhbSkgeG1sTmV3SW5wdXRTdHJlYW0gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdJbnB1dFN0cmVhbV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3SW5wdXRTdHJlYW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3SW5wdXRTdHJlYW0pIHhtbE5ld0lucHV0U3RyZWFtX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3SW5wdXRTdHJlYW0geG1sTmV3SW5wdXRTdHJlYW1fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RocmVhZHMKKyN1bmRlZiB4bWxOZXdNdXRleAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdNdXRleCkgeG1sTmV3TXV0ZXggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdNdXRleF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3TXV0ZXgKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3TXV0ZXgpIHhtbE5ld011dGV4X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3TXV0ZXggeG1sTmV3TXV0ZXhfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbE5ld05vZGUpIHhtbE5ld05vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdOb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbE5ld05vZGUpIHhtbE5ld05vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdOb2RlIHhtbE5ld05vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdOb2RlRWF0TmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdOb2RlRWF0TmFtZSkgeG1sTmV3Tm9kZUVhdE5hbWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdOb2RlRWF0TmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3Tm9kZUVhdE5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3Tm9kZUVhdE5hbWUpIHhtbE5ld05vZGVFYXROYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3Tm9kZUVhdE5hbWUgeG1sTmV3Tm9kZUVhdE5hbWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdOcworZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdOcykgeG1sTmV3TnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdOc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3TnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3TnMpIHhtbE5ld05zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3TnMgeG1sTmV3TnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdOc1Byb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3TnNQcm9wKSB4bWxOZXdOc1Byb3AgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdOc1Byb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld05zUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdOc1Byb3ApIHhtbE5ld05zUHJvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld05zUHJvcCB4bWxOZXdOc1Byb3BfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdOc1Byb3BFYXROYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE5ld05zUHJvcEVhdE5hbWUpIHhtbE5ld05zUHJvcEVhdE5hbWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdOc1Byb3BFYXROYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdOc1Byb3BFYXROYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE5ld05zUHJvcEVhdE5hbWUpIHhtbE5ld05zUHJvcEVhdE5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdOc1Byb3BFYXROYW1lIHhtbE5ld05zUHJvcEVhdE5hbWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdQSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdQSSkgeG1sTmV3UEkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdQSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3UEkKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3UEkpIHhtbE5ld1BJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3UEkgeG1sTmV3UElfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbE5ld1BhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3UGFyc2VyQ3R4dCkgeG1sTmV3UGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld1BhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3UGFyc2VyQ3R4dCkgeG1sTmV3UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld1BhcnNlckN0eHQgeG1sTmV3UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTmV3UHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdQcm9wKSB4bWxOZXdQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3UHJvcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3UHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdQcm9wKSB4bWxOZXdQcm9wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3UHJvcCB4bWxOZXdQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RocmVhZHMKKyN1bmRlZiB4bWxOZXdSTXV0ZXgKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3Uk11dGV4KSB4bWxOZXdSTXV0ZXggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdSTXV0ZXhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld1JNdXRleAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdSTXV0ZXgpIHhtbE5ld1JNdXRleF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld1JNdXRleCB4bWxOZXdSTXV0ZXhfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdSZWZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3UmVmZXJlbmNlKSB4bWxOZXdSZWZlcmVuY2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld1JlZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdSZWZlcmVuY2UpIHhtbE5ld1JlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld1JlZmVyZW5jZSB4bWxOZXdSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbE5ld1N0cmluZ0lucHV0U3RyZWFtCitleHRlcm4gX190eXBlb2YgKHhtbE5ld1N0cmluZ0lucHV0U3RyZWFtKSB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld1N0cmluZ0lucHV0U3RyZWFtX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSkgeG1sTmV3U3RyaW5nSW5wdXRTdHJlYW1fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbSB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5ld1RleHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3VGV4dCkgeG1sTmV3VGV4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld1RleHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld1RleHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3VGV4dCkgeG1sTmV3VGV4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld1RleHQgeG1sTmV3VGV4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXdUZXh0Q2hpbGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3VGV4dENoaWxkKSB4bWxOZXdUZXh0Q2hpbGQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdUZXh0Q2hpbGRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld1RleHRDaGlsZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0Q2hpbGQpIHhtbE5ld1RleHRDaGlsZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld1RleHRDaGlsZCB4bWxOZXdUZXh0Q2hpbGRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5ld1RleHRMZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3VGV4dExlbikgeG1sTmV3VGV4dExlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld1RleHRMZW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld1RleHRMZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3VGV4dExlbikgeG1sTmV3VGV4dExlbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld1RleHRMZW4geG1sTmV3VGV4dExlbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sTmV3VGV4dFJlYWRlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0UmVhZGVyKSB4bWxOZXdUZXh0UmVhZGVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3VGV4dFJlYWRlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3VGV4dFJlYWRlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0UmVhZGVyKSB4bWxOZXdUZXh0UmVhZGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3VGV4dFJlYWRlciB4bWxOZXdUZXh0UmVhZGVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUpIHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZSkgeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxOZXdUZXh0V3JpdGVyCitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRXcml0ZXIpIHhtbE5ld1RleHRXcml0ZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdUZXh0V3JpdGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdUZXh0V3JpdGVyCitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRXcml0ZXIpIHhtbE5ld1RleHRXcml0ZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdUZXh0V3JpdGVyIHhtbE5ld1RleHRXcml0ZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sTmV3VGV4dFdyaXRlckRvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0V3JpdGVyRG9jKSB4bWxOZXdUZXh0V3JpdGVyRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3VGV4dFdyaXRlckRvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3VGV4dFdyaXRlckRvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0V3JpdGVyRG9jKSB4bWxOZXdUZXh0V3JpdGVyRG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3VGV4dFdyaXRlckRvYyB4bWxOZXdUZXh0V3JpdGVyRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUpIHhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZSkgeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lIHhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxOZXdUZXh0V3JpdGVyTWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRXcml0ZXJNZW1vcnkpIHhtbE5ld1RleHRXcml0ZXJNZW1vcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXdUZXh0V3JpdGVyTWVtb3J5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdUZXh0V3JpdGVyTWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRXcml0ZXJNZW1vcnkpIHhtbE5ld1RleHRXcml0ZXJNZW1vcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdUZXh0V3JpdGVyTWVtb3J5IHhtbE5ld1RleHRXcml0ZXJNZW1vcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIpIHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyCitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyKSB4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbE5ld1RleHRXcml0ZXJUcmVlCitleHRlcm4gX190eXBlb2YgKHhtbE5ld1RleHRXcml0ZXJUcmVlKSB4bWxOZXdUZXh0V3JpdGVyVHJlZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5ld1RleHRXcml0ZXJUcmVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdUZXh0V3JpdGVyVHJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXdUZXh0V3JpdGVyVHJlZSkgeG1sTmV3VGV4dFdyaXRlclRyZWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdUZXh0V3JpdGVyVHJlZSB4bWxOZXdUZXh0V3JpdGVyVHJlZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sTmV3VmFsaWRDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbE5ld1ZhbGlkQ3R4dCkgeG1sTmV3VmFsaWRDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sTmV3VmFsaWRDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXdWYWxpZEN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV3VmFsaWRDdHh0KSB4bWxOZXdWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXdWYWxpZEN0eHQgeG1sTmV3VmFsaWRDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbE5leHRDaGFyCitleHRlcm4gX190eXBlb2YgKHhtbE5leHRDaGFyKSB4bWxOZXh0Q2hhciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5leHRDaGFyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOZXh0Q2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXh0Q2hhcikgeG1sTmV4dENoYXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOZXh0Q2hhciB4bWxOZXh0Q2hhcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOZXh0RWxlbWVudFNpYmxpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sTmV4dEVsZW1lbnRTaWJsaW5nKSB4bWxOZXh0RWxlbWVudFNpYmxpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOZXh0RWxlbWVudFNpYmxpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5leHRFbGVtZW50U2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxOZXh0RWxlbWVudFNpYmxpbmcpIHhtbE5leHRFbGVtZW50U2libGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5leHRFbGVtZW50U2libGluZyB4bWxOZXh0RWxlbWVudFNpYmxpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyCitleHRlcm4gX190eXBlb2YgKHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIpIHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyCitleHRlcm4gX190eXBlb2YgKHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIpIHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyIHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOb2RlQWRkQ29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlQWRkQ29udGVudCkgeG1sTm9kZUFkZENvbnRlbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOb2RlQWRkQ29udGVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTm9kZUFkZENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUFkZENvbnRlbnQpIHhtbE5vZGVBZGRDb250ZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTm9kZUFkZENvbnRlbnQgeG1sTm9kZUFkZENvbnRlbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOb2RlQWRkQ29udGVudExlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlQWRkQ29udGVudExlbikgeG1sTm9kZUFkZENvbnRlbnRMZW4gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOb2RlQWRkQ29udGVudExlbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTm9kZUFkZENvbnRlbnRMZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUFkZENvbnRlbnRMZW4pIHhtbE5vZGVBZGRDb250ZW50TGVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTm9kZUFkZENvbnRlbnRMZW4geG1sTm9kZUFkZENvbnRlbnRMZW5fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxOb2RlQnVmR2V0Q29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlQnVmR2V0Q29udGVudCkgeG1sTm9kZUJ1ZkdldENvbnRlbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOb2RlQnVmR2V0Q29udGVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTm9kZUJ1ZkdldENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUJ1ZkdldENvbnRlbnQpIHhtbE5vZGVCdWZHZXRDb250ZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTm9kZUJ1ZkdldENvbnRlbnQgeG1sTm9kZUJ1ZkdldENvbnRlbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxOb2RlRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlRHVtcCkgeG1sTm9kZUR1bXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOb2RlRHVtcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTm9kZUR1bXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUR1bXApIHhtbE5vZGVEdW1wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTm9kZUR1bXAgeG1sTm9kZUR1bXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbE5vZGVEdW1wT3V0cHV0CitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVEdW1wT3V0cHV0KSB4bWxOb2RlRHVtcE91dHB1dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5vZGVEdW1wT3V0cHV0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb2RlRHVtcE91dHB1dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlRHVtcE91dHB1dCkgeG1sTm9kZUR1bXBPdXRwdXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb2RlRHVtcE91dHB1dCB4bWxOb2RlRHVtcE91dHB1dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTm9kZUdldEJhc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUdldEJhc2UpIHhtbE5vZGVHZXRCYXNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9kZUdldEJhc2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5vZGVHZXRCYXNlCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVHZXRCYXNlKSB4bWxOb2RlR2V0QmFzZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5vZGVHZXRCYXNlIHhtbE5vZGVHZXRCYXNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTm9kZUdldENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUdldENvbnRlbnQpIHhtbE5vZGVHZXRDb250ZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9kZUdldENvbnRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5vZGVHZXRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVHZXRDb250ZW50KSB4bWxOb2RlR2V0Q29udGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5vZGVHZXRDb250ZW50IHhtbE5vZGVHZXRDb250ZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTm9kZUdldExhbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUdldExhbmcpIHhtbE5vZGVHZXRMYW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9kZUdldExhbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5vZGVHZXRMYW5nCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVHZXRMYW5nKSB4bWxOb2RlR2V0TGFuZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5vZGVHZXRMYW5nIHhtbE5vZGVHZXRMYW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTm9kZUdldFNwYWNlUHJlc2VydmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUdldFNwYWNlUHJlc2VydmUpIHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlIF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9kZUdldFNwYWNlUHJlc2VydmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlKSB4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlIHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTm9kZUlzVGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlSXNUZXh0KSB4bWxOb2RlSXNUZXh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9kZUlzVGV4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sTm9kZUlzVGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlSXNUZXh0KSB4bWxOb2RlSXNUZXh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sTm9kZUlzVGV4dCB4bWxOb2RlSXNUZXh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nKSB4bWxOb2RlTGlzdEdldFJhd1N0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb2RlTGlzdEdldFJhd1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlTGlzdEdldFJhd1N0cmluZykgeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb2RlTGlzdEdldFJhd1N0cmluZyB4bWxOb2RlTGlzdEdldFJhd1N0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTm9kZUxpc3RHZXRTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZUxpc3RHZXRTdHJpbmcpIHhtbE5vZGVMaXN0R2V0U3RyaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9kZUxpc3RHZXRTdHJpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5vZGVMaXN0R2V0U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVMaXN0R2V0U3RyaW5nKSB4bWxOb2RlTGlzdEdldFN0cmluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5vZGVMaXN0R2V0U3RyaW5nIHhtbE5vZGVMaXN0R2V0U3RyaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5vZGVTZXRCYXNlCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVTZXRCYXNlKSB4bWxOb2RlU2V0QmFzZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5vZGVTZXRCYXNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb2RlU2V0QmFzZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlU2V0QmFzZSkgeG1sTm9kZVNldEJhc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb2RlU2V0QmFzZSB4bWxOb2RlU2V0QmFzZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sTm9kZVNldENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9kZVNldENvbnRlbnQpIHhtbE5vZGVTZXRDb250ZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9kZVNldENvbnRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5vZGVTZXRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVTZXRDb250ZW50KSB4bWxOb2RlU2V0Q29udGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5vZGVTZXRDb250ZW50IHhtbE5vZGVTZXRDb250ZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5vZGVTZXRDb250ZW50TGVuCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVTZXRDb250ZW50TGVuKSB4bWxOb2RlU2V0Q29udGVudExlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5vZGVTZXRDb250ZW50TGVuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb2RlU2V0Q29udGVudExlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlU2V0Q29udGVudExlbikgeG1sTm9kZVNldENvbnRlbnRMZW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb2RlU2V0Q29udGVudExlbiB4bWxOb2RlU2V0Q29udGVudExlbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5vZGVTZXRMYW5nCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVTZXRMYW5nKSB4bWxOb2RlU2V0TGFuZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5vZGVTZXRMYW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb2RlU2V0TGFuZworZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlU2V0TGFuZykgeG1sTm9kZVNldExhbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb2RlU2V0TGFuZyB4bWxOb2RlU2V0TGFuZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5vZGVTZXROYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVTZXROYW1lKSB4bWxOb2RlU2V0TmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5vZGVTZXROYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb2RlU2V0TmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlU2V0TmFtZSkgeG1sTm9kZVNldE5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb2RlU2V0TmFtZSB4bWxOb2RlU2V0TmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbE5vZGVTZXRTcGFjZVByZXNlcnZlCitleHRlcm4gX190eXBlb2YgKHhtbE5vZGVTZXRTcGFjZVByZXNlcnZlKSB4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE5vZGVTZXRTcGFjZVByZXNlcnZlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSkgeG1sTm9kZVNldFNwYWNlUHJlc2VydmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSB4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV91cmkKKyN1bmRlZiB4bWxOb3JtYWxpemVVUklQYXRoCitleHRlcm4gX190eXBlb2YgKHhtbE5vcm1hbGl6ZVVSSVBhdGgpIHhtbE5vcm1hbGl6ZVVSSVBhdGggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxOb3JtYWxpemVVUklQYXRoX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxOb3JtYWxpemVVUklQYXRoCitleHRlcm4gX190eXBlb2YgKHhtbE5vcm1hbGl6ZVVSSVBhdGgpIHhtbE5vcm1hbGl6ZVVSSVBhdGhfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxOb3JtYWxpemVVUklQYXRoIHhtbE5vcm1hbGl6ZVVSSVBhdGhfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sTm9ybWFsaXplV2luZG93c1BhdGgKK2V4dGVybiBfX3R5cGVvZiAoeG1sTm9ybWFsaXplV2luZG93c1BhdGgpIHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoIF9fYXR0cmlidXRlKChhbGlhcygieG1sTm9ybWFsaXplV2luZG93c1BhdGhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoCitleHRlcm4gX190eXBlb2YgKHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoKSB4bWxOb3JtYWxpemVXaW5kb3dzUGF0aF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoIHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbE91dHB1dEJ1ZmZlckNsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbE91dHB1dEJ1ZmZlckNsb3NlKSB4bWxPdXRwdXRCdWZmZXJDbG9zZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE91dHB1dEJ1ZmZlckNsb3NlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxPdXRwdXRCdWZmZXJDbG9zZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJDbG9zZSkgeG1sT3V0cHV0QnVmZmVyQ2xvc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxPdXRwdXRCdWZmZXJDbG9zZSB4bWxPdXRwdXRCdWZmZXJDbG9zZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIpIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyCitleHRlcm4gX190eXBlb2YgKHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcikgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkCitleHRlcm4gX190eXBlb2YgKHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkKSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCkgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSkgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZSkgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lCitleHRlcm4gX190eXBlb2YgKHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSkgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQpIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCkgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTworZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTykgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxPdXRwdXRCdWZmZXJDcmVhdGVJT19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8KK2V4dGVybiBfX3R5cGVvZiAoeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8pIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8geG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxPdXRwdXRCdWZmZXJGbHVzaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJGbHVzaCkgeG1sT3V0cHV0QnVmZmVyRmx1c2ggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxPdXRwdXRCdWZmZXJGbHVzaF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sT3V0cHV0QnVmZmVyRmx1c2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sT3V0cHV0QnVmZmVyRmx1c2gpIHhtbE91dHB1dEJ1ZmZlckZsdXNoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyRmx1c2ggeG1sT3V0cHV0QnVmZmVyRmx1c2hfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxPdXRwdXRCdWZmZXJXcml0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJXcml0ZSkgeG1sT3V0cHV0QnVmZmVyV3JpdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxPdXRwdXRCdWZmZXJXcml0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sT3V0cHV0QnVmZmVyV3JpdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sT3V0cHV0QnVmZmVyV3JpdGUpIHhtbE91dHB1dEJ1ZmZlcldyaXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyV3JpdGUgeG1sT3V0cHV0QnVmZmVyV3JpdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZSkgeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUpIHhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUgeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZykgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcpIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VBdHRWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUF0dFZhbHVlKSB4bWxQYXJzZUF0dFZhbHVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VBdHRWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VBdHRWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUF0dFZhbHVlKSB4bWxQYXJzZUF0dFZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VBdHRWYWx1ZSB4bWxQYXJzZUF0dFZhbHVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VBdHRyaWJ1dGUpIHhtbFBhcnNlQXR0cmlidXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlQXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQXR0cmlidXRlKSB4bWxQYXJzZUF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlQXR0cmlidXRlIHhtbFBhcnNlQXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCkgeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCkgeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2wgeG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VBdHRyaWJ1dGVUeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQXR0cmlidXRlVHlwZSkgeG1sUGFyc2VBdHRyaWJ1dGVUeXBlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VBdHRyaWJ1dGVUeXBlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUF0dHJpYnV0ZVR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VBdHRyaWJ1dGVUeXBlKSB4bWxQYXJzZUF0dHJpYnV0ZVR5cGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUF0dHJpYnV0ZVR5cGUgeG1sUGFyc2VBdHRyaWJ1dGVUeXBlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSkgeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5KSB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkgeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIpIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIpIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VDRFNlY3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VDRFNlY3QpIHhtbFBhcnNlQ0RTZWN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VDRFNlY3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlQ0RTZWN0CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ0RTZWN0KSB4bWxQYXJzZUNEU2VjdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlQ0RTZWN0IHhtbFBhcnNlQ0RTZWN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fY2F0YWxvZworI3VuZGVmIHhtbFBhcnNlQ2F0YWxvZ0ZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VDYXRhbG9nRmlsZSkgeG1sUGFyc2VDYXRhbG9nRmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlQ2F0YWxvZ0ZpbGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlQ2F0YWxvZ0ZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VDYXRhbG9nRmlsZSkgeG1sUGFyc2VDYXRhbG9nRmlsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlQ2F0YWxvZ0ZpbGUgeG1sUGFyc2VDYXRhbG9nRmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUNoYXJEYXRhCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ2hhckRhdGEpIHhtbFBhcnNlQ2hhckRhdGEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUNoYXJEYXRhX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUNoYXJEYXRhCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ2hhckRhdGEpIHhtbFBhcnNlQ2hhckRhdGFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUNoYXJEYXRhIHhtbFBhcnNlQ2hhckRhdGFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sUGFyc2VDaGFyRW5jb2RpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VDaGFyRW5jb2RpbmcpIHhtbFBhcnNlQ2hhckVuY29kaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VDaGFyRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlQ2hhckVuY29kaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ2hhckVuY29kaW5nKSB4bWxQYXJzZUNoYXJFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlQ2hhckVuY29kaW5nIHhtbFBhcnNlQ2hhckVuY29kaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUNoYXJSZWYKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VDaGFyUmVmKSB4bWxQYXJzZUNoYXJSZWYgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUNoYXJSZWZfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlQ2hhclJlZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUNoYXJSZWYpIHhtbFBhcnNlQ2hhclJlZl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlQ2hhclJlZiB4bWxQYXJzZUNoYXJSZWZfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUFVTSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUNodW5rCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ2h1bmspIHhtbFBhcnNlQ2h1bmsgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUNodW5rX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUNodW5rCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ2h1bmspIHhtbFBhcnNlQ2h1bmtfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUNodW5rIHhtbFBhcnNlQ2h1bmtfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ29tbWVudCkgeG1sUGFyc2VDb21tZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VDb21tZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUNvbW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VDb21tZW50KSB4bWxQYXJzZUNvbW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUNvbW1lbnQgeG1sUGFyc2VDb21tZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUNvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VDb250ZW50KSB4bWxQYXJzZUNvbnRlbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUNvbnRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlQ29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUNvbnRlbnQpIHhtbFBhcnNlQ29udGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlQ29udGVudCB4bWxQYXJzZUNvbnRlbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5KSB4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSkgeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eSB4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZURURAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZURURCkgeG1sUGFyc2VEVEQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZURURF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VEVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VEVEQpIHhtbFBhcnNlRFREX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VEVEQgeG1sUGFyc2VEVERfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VEZWZhdWx0RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZURlZmF1bHREZWNsKSB4bWxQYXJzZURlZmF1bHREZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VEZWZhdWx0RGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VEZWZhdWx0RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZURlZmF1bHREZWNsKSB4bWxQYXJzZURlZmF1bHREZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VEZWZhdWx0RGVjbCB4bWxQYXJzZURlZmF1bHREZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VEb2MpIHhtbFBhcnNlRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VEb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRG9jKSB4bWxQYXJzZURvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRG9jIHhtbFBhcnNlRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlRG9jVHlwZURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VEb2NUeXBlRGVjbCkgeG1sUGFyc2VEb2NUeXBlRGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlRG9jVHlwZURlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRG9jVHlwZURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VEb2NUeXBlRGVjbCkgeG1sUGFyc2VEb2NUeXBlRGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRG9jVHlwZURlY2wgeG1sUGFyc2VEb2NUeXBlRGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VEb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZURvY3VtZW50KSB4bWxQYXJzZURvY3VtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VEb2N1bWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VEb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZURvY3VtZW50KSB4bWxQYXJzZURvY3VtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VEb2N1bWVudCB4bWxQYXJzZURvY3VtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbGVtZW50KSB4bWxQYXJzZUVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVsZW1lbnQpIHhtbFBhcnNlRWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRWxlbWVudCB4bWxQYXJzZUVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCkgeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCkgeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2wgeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wpIHhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VFbGVtZW50Q29udGVudERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsKSB4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsIHhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUVsZW1lbnREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRWxlbWVudERlY2wpIHhtbFBhcnNlRWxlbWVudERlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUVsZW1lbnREZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUVsZW1lbnREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRWxlbWVudERlY2wpIHhtbFBhcnNlRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUVsZW1lbnREZWNsIHhtbFBhcnNlRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCkgeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCkgeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wgeG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VFbmNOYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRW5jTmFtZSkgeG1sUGFyc2VFbmNOYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VFbmNOYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUVuY05hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbmNOYW1lKSB4bWxQYXJzZUVuY05hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUVuY05hbWUgeG1sUGFyc2VFbmNOYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUVuY29kaW5nRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVuY29kaW5nRGVjbCkgeG1sUGFyc2VFbmNvZGluZ0RlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUVuY29kaW5nRGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VFbmNvZGluZ0RlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbmNvZGluZ0RlY2wpIHhtbFBhcnNlRW5jb2RpbmdEZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VFbmNvZGluZ0RlY2wgeG1sUGFyc2VFbmNvZGluZ0RlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUVuZFRhZworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVuZFRhZykgeG1sUGFyc2VFbmRUYWcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUVuZFRhZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VFbmRUYWcKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbmRUYWcpIHhtbFBhcnNlRW5kVGFnX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VFbmRUYWcgeG1sUGFyc2VFbmRUYWdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlRW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRW50aXR5KSB4bWxQYXJzZUVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlRW50aXR5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVudGl0eSkgeG1sUGFyc2VFbnRpdHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUVudGl0eSB4bWxQYXJzZUVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUVudGl0eURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFbnRpdHlEZWNsKSB4bWxQYXJzZUVudGl0eURlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUVudGl0eURlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRW50aXR5RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVudGl0eURlY2wpIHhtbFBhcnNlRW50aXR5RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRW50aXR5RGVjbCB4bWxQYXJzZUVudGl0eURlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlRW50aXR5UmVmCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRW50aXR5UmVmKSB4bWxQYXJzZUVudGl0eVJlZiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlRW50aXR5UmVmX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUVudGl0eVJlZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVudGl0eVJlZikgeG1sUGFyc2VFbnRpdHlSZWZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUVudGl0eVJlZiB4bWxQYXJzZUVudGl0eVJlZl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VFbnRpdHlWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVudGl0eVZhbHVlKSB4bWxQYXJzZUVudGl0eVZhbHVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VFbnRpdHlWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VFbnRpdHlWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVudGl0eVZhbHVlKSB4bWxQYXJzZUVudGl0eVZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VFbnRpdHlWYWx1ZSB4bWxQYXJzZUVudGl0eVZhbHVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZUVudW1lcmF0ZWRUeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRW51bWVyYXRlZFR5cGUpIHhtbFBhcnNlRW51bWVyYXRlZFR5cGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZUVudW1lcmF0ZWRUeXBlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUVudW1lcmF0ZWRUeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRW51bWVyYXRlZFR5cGUpIHhtbFBhcnNlRW51bWVyYXRlZFR5cGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIHhtbFBhcnNlRW51bWVyYXRlZFR5cGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlRW51bWVyYXRpb25UeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRW51bWVyYXRpb25UeXBlKSB4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlRW51bWVyYXRpb25UeXBlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUVudW1lcmF0aW9uVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSkgeG1sUGFyc2VFbnVtZXJhdGlvblR5cGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSB4bWxQYXJzZUVudW1lcmF0aW9uVHlwZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VFeHRQYXJzZWRFbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VFeHRQYXJzZWRFbnQpIHhtbFBhcnNlRXh0UGFyc2VkRW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VFeHRQYXJzZWRFbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlRXh0UGFyc2VkRW50CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRXh0UGFyc2VkRW50KSB4bWxQYXJzZUV4dFBhcnNlZEVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlRXh0UGFyc2VkRW50IHhtbFBhcnNlRXh0UGFyc2VkRW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VFeHRlcm5hbEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUV4dGVybmFsRW50aXR5KSB4bWxQYXJzZUV4dGVybmFsRW50aXR5IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VFeHRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VFeHRlcm5hbEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUV4dGVybmFsRW50aXR5KSB4bWxQYXJzZUV4dGVybmFsRW50aXR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VFeHRlcm5hbEVudGl0eSB4bWxQYXJzZUV4dGVybmFsRW50aXR5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlRXh0ZXJuYWxJRAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUV4dGVybmFsSUQpIHhtbFBhcnNlRXh0ZXJuYWxJRCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlRXh0ZXJuYWxJRF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VFeHRlcm5hbElECitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRXh0ZXJuYWxJRCkgeG1sUGFyc2VFeHRlcm5hbElEX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VFeHRlcm5hbElEIHhtbFBhcnNlRXh0ZXJuYWxJRF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VFeHRlcm5hbFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUV4dGVybmFsU3Vic2V0KSB4bWxQYXJzZUV4dGVybmFsU3Vic2V0IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VFeHRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VFeHRlcm5hbFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUV4dGVybmFsU3Vic2V0KSB4bWxQYXJzZUV4dGVybmFsU3Vic2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VFeHRlcm5hbFN1YnNldCB4bWxQYXJzZUV4dGVybmFsU3Vic2V0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlRmlsZSkgeG1sUGFyc2VGaWxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZUZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VGaWxlKSB4bWxQYXJzZUZpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZUZpbGUgeG1sUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlSW5Ob2RlQ29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZUluTm9kZUNvbnRleHQpIHhtbFBhcnNlSW5Ob2RlQ29udGV4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlSW5Ob2RlQ29udGV4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VJbk5vZGVDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlSW5Ob2RlQ29udGV4dCkgeG1sUGFyc2VJbk5vZGVDb250ZXh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VJbk5vZGVDb250ZXh0IHhtbFBhcnNlSW5Ob2RlQ29udGV4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VNYXJrdXBEZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlTWFya3VwRGVjbCkgeG1sUGFyc2VNYXJrdXBEZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VNYXJrdXBEZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZU1hcmt1cERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VNYXJrdXBEZWNsKSB4bWxQYXJzZU1hcmt1cERlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZU1hcmt1cERlY2wgeG1sUGFyc2VNYXJrdXBEZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VNZW1vcnkpIHhtbFBhcnNlTWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VNZW1vcnlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlTWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlTWVtb3J5KSB4bWxQYXJzZU1lbW9yeV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlTWVtb3J5IHhtbFBhcnNlTWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlTWlzYworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZU1pc2MpIHhtbFBhcnNlTWlzYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlTWlzY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VNaXNjCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlTWlzYykgeG1sUGFyc2VNaXNjX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VNaXNjIHhtbFBhcnNlTWlzY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VOYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlTmFtZSkgeG1sUGFyc2VOYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VOYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZU5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VOYW1lKSB4bWxQYXJzZU5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZU5hbWUgeG1sUGFyc2VOYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxQYXJzZU5hbWVzcGFjZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZU5hbWVzcGFjZSkgeG1sUGFyc2VOYW1lc3BhY2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZU5hbWVzcGFjZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VOYW1lc3BhY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VOYW1lc3BhY2UpIHhtbFBhcnNlTmFtZXNwYWNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VOYW1lc3BhY2UgeG1sUGFyc2VOYW1lc3BhY2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VObXRva2VuCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlTm10b2tlbikgeG1sUGFyc2VObXRva2VuIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VObXRva2VuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZU5tdG9rZW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VObXRva2VuKSB4bWxQYXJzZU5tdG9rZW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZU5tdG9rZW4geG1sUGFyc2VObXRva2VuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZU5vdGF0aW9uRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZU5vdGF0aW9uRGVjbCkgeG1sUGFyc2VOb3RhdGlvbkRlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZU5vdGF0aW9uRGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VOb3RhdGlvbkRlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VOb3RhdGlvbkRlY2wpIHhtbFBhcnNlTm90YXRpb25EZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VOb3RhdGlvbkRlY2wgeG1sUGFyc2VOb3RhdGlvbkRlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlTm90YXRpb25UeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlTm90YXRpb25UeXBlKSB4bWxQYXJzZU5vdGF0aW9uVHlwZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlTm90YXRpb25UeXBlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZU5vdGF0aW9uVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZU5vdGF0aW9uVHlwZSkgeG1sUGFyc2VOb3RhdGlvblR5cGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZU5vdGF0aW9uVHlwZSB4bWxQYXJzZU5vdGF0aW9uVHlwZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VQRVJlZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZVBFUmVmZXJlbmNlKSB4bWxQYXJzZVBFUmVmZXJlbmNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VQRVJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VQRVJlZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZVBFUmVmZXJlbmNlKSB4bWxQYXJzZVBFUmVmZXJlbmNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VQRVJlZmVyZW5jZSB4bWxQYXJzZVBFUmVmZXJlbmNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZVBJCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlUEkpIHhtbFBhcnNlUEkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZVBJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZVBJCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlUEkpIHhtbFBhcnNlUElfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZVBJIHhtbFBhcnNlUElfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlUElUYXJnZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VQSVRhcmdldCkgeG1sUGFyc2VQSVRhcmdldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlUElUYXJnZXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlUElUYXJnZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VQSVRhcmdldCkgeG1sUGFyc2VQSVRhcmdldF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlUElUYXJnZXQgeG1sUGFyc2VQSVRhcmdldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VQdWJpZExpdGVyYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VQdWJpZExpdGVyYWwpIHhtbFBhcnNlUHViaWRMaXRlcmFsIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VQdWJpZExpdGVyYWxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlUHViaWRMaXRlcmFsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlUHViaWRMaXRlcmFsKSB4bWxQYXJzZVB1YmlkTGl0ZXJhbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlUHViaWRMaXRlcmFsIHhtbFBhcnNlUHViaWRMaXRlcmFsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxQYXJzZVF1b3RlZFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZVF1b3RlZFN0cmluZykgeG1sUGFyc2VRdW90ZWRTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZVF1b3RlZFN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VRdW90ZWRTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VRdW90ZWRTdHJpbmcpIHhtbFBhcnNlUXVvdGVkU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VRdW90ZWRTdHJpbmcgeG1sUGFyc2VRdW90ZWRTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VSZWZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VSZWZlcmVuY2UpIHhtbFBhcnNlUmVmZXJlbmNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlUmVmZXJlbmNlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlUmVmZXJlbmNlKSB4bWxQYXJzZVJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlUmVmZXJlbmNlIHhtbFBhcnNlUmVmZXJlbmNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZVNERGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZVNERGVjbCkgeG1sUGFyc2VTRERlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZVNERGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VTRERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VTRERlY2wpIHhtbFBhcnNlU0REZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VTRERlY2wgeG1sUGFyc2VTRERlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZVN0YXJ0VGFnCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlU3RhcnRUYWcpIHhtbFBhcnNlU3RhcnRUYWcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZVN0YXJ0VGFnX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZVN0YXJ0VGFnCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlU3RhcnRUYWcpIHhtbFBhcnNlU3RhcnRUYWdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZVN0YXJ0VGFnIHhtbFBhcnNlU3RhcnRUYWdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VTeXN0ZW1MaXRlcmFsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlU3lzdGVtTGl0ZXJhbCkgeG1sUGFyc2VTeXN0ZW1MaXRlcmFsIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VTeXN0ZW1MaXRlcmFsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZVN5c3RlbUxpdGVyYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VTeXN0ZW1MaXRlcmFsKSB4bWxQYXJzZVN5c3RlbUxpdGVyYWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZVN5c3RlbUxpdGVyYWwgeG1sUGFyc2VTeXN0ZW1MaXRlcmFsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZVRleHREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlVGV4dERlY2wpIHhtbFBhcnNlVGV4dERlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZVRleHREZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZVRleHREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlVGV4dERlY2wpIHhtbFBhcnNlVGV4dERlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZVRleHREZWNsIHhtbFBhcnNlVGV4dERlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3VyaQorI3VuZGVmIHhtbFBhcnNlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlVVJJKSB4bWxQYXJzZVVSSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlVVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZVVSSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZVVSSSkgeG1sUGFyc2VVUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZVVSSSB4bWxQYXJzZVVSSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdXJpCisjdW5kZWYgeG1sUGFyc2VVUklSYXcKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VVUklSYXcpIHhtbFBhcnNlVVJJUmF3IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VVUklSYXdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlVVJJUmF3CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlVVJJUmF3KSB4bWxQYXJzZVVSSVJhd19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlVVJJUmF3IHhtbFBhcnNlVVJJUmF3X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV91cmkKKyN1bmRlZiB4bWxQYXJzZVVSSVJlZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZVVSSVJlZmVyZW5jZSkgeG1sUGFyc2VVUklSZWZlcmVuY2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZVVSSVJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VVUklSZWZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VVUklSZWZlcmVuY2UpIHhtbFBhcnNlVVJJUmVmZXJlbmNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VVUklSZWZlcmVuY2UgeG1sUGFyc2VVUklSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBhcnNlVmVyc2lvbkluZm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VWZXJzaW9uSW5mbykgeG1sUGFyc2VWZXJzaW9uSW5mbyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlVmVyc2lvbkluZm9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlVmVyc2lvbkluZm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VWZXJzaW9uSW5mbykgeG1sUGFyc2VWZXJzaW9uSW5mb19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlVmVyc2lvbkluZm8geG1sUGFyc2VWZXJzaW9uSW5mb19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VWZXJzaW9uTnVtCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlVmVyc2lvbk51bSkgeG1sUGFyc2VWZXJzaW9uTnVtIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VWZXJzaW9uTnVtX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZVZlcnNpb25OdW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VWZXJzaW9uTnVtKSB4bWxQYXJzZVZlcnNpb25OdW1fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZVZlcnNpb25OdW0geG1sUGFyc2VWZXJzaW9uTnVtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxQYXJzZVhNTERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VYTUxEZWNsKSB4bWxQYXJzZVhNTERlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZVhNTERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlWE1MRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZVhNTERlY2wpIHhtbFBhcnNlWE1MRGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlWE1MRGVjbCB4bWxQYXJzZVhNTERlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbFBhcnNlckFkZE5vZGVJbmZvCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlckFkZE5vZGVJbmZvKSB4bWxQYXJzZXJBZGROb2RlSW5mbyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlckFkZE5vZGVJbmZvX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJBZGROb2RlSW5mbworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJBZGROb2RlSW5mbykgeG1sUGFyc2VyQWRkTm9kZUluZm9fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJBZGROb2RlSW5mbyB4bWxQYXJzZXJBZGROb2RlSW5mb19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZXJyb3IKKyN1bmRlZiB4bWxQYXJzZXJFcnJvcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJFcnJvcikgeG1sUGFyc2VyRXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJFcnJvcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VyRXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VyRXJyb3IpIHhtbFBhcnNlckVycm9yX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VyRXJyb3IgeG1sUGFyc2VyRXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbFBhcnNlckZpbmROb2RlSW5mbworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJGaW5kTm9kZUluZm8pIHhtbFBhcnNlckZpbmROb2RlSW5mbyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlckZpbmROb2RlSW5mb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VyRmluZE5vZGVJbmZvCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlckZpbmROb2RlSW5mbykgeG1sUGFyc2VyRmluZE5vZGVJbmZvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VyRmluZE5vZGVJbmZvIHhtbFBhcnNlckZpbmROb2RlSW5mb19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VySW50ZXJuYWxzCisjdW5kZWYgeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgpIHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4KSB4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4IHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbFBhcnNlckdldERpcmVjdG9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJHZXREaXJlY3RvcnkpIHhtbFBhcnNlckdldERpcmVjdG9yeSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlckdldERpcmVjdG9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VyR2V0RGlyZWN0b3J5CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlckdldERpcmVjdG9yeSkgeG1sUGFyc2VyR2V0RGlyZWN0b3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VyR2V0RGlyZWN0b3J5IHhtbFBhcnNlckdldERpcmVjdG9yeV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UpIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlKSB4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9sZWdhY3kKKyN1bmRlZiB4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlKSB4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UpIHhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZSB4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQpIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQpIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZSkgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlKSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGUgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSkgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSkgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCkgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQpIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPKSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJT19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPKSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTyB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtKSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSkgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW1fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYykgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMpIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWMgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbElPCisjdW5kZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0QnVmZmVyR3JvdykgeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VySW5wdXRCdWZmZXJHcm93X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93KSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3dfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cgeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2gpIHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlcklucHV0QnVmZmVyUHVzaF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaCkgeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkKSB4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQpIHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZCB4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbFBhcnNlcklucHV0R3JvdworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dEdyb3cpIHhtbFBhcnNlcklucHV0R3JvdyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlcklucHV0R3Jvd19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VySW5wdXRHcm93CitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0R3JvdykgeG1sUGFyc2VySW5wdXRHcm93X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VySW5wdXRHcm93IHhtbFBhcnNlcklucHV0R3Jvd19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VySW50ZXJuYWxzCisjdW5kZWYgeG1sUGFyc2VySW5wdXRSZWFkCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlcklucHV0UmVhZCkgeG1sUGFyc2VySW5wdXRSZWFkIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VySW5wdXRSZWFkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJJbnB1dFJlYWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRSZWFkKSB4bWxQYXJzZXJJbnB1dFJlYWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJJbnB1dFJlYWQgeG1sUGFyc2VySW5wdXRSZWFkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxQYXJzZXJJbnB1dFNocmluaworZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJJbnB1dFNocmluaykgeG1sUGFyc2VySW5wdXRTaHJpbmsgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJJbnB1dFNocmlua19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VySW5wdXRTaHJpbmsKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VySW5wdXRTaHJpbmspIHhtbFBhcnNlcklucHV0U2hyaW5rX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VySW5wdXRTaHJpbmsgeG1sUGFyc2VySW5wdXRTaHJpbmtfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2Vycm9yCisjdW5kZWYgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0KSB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0KSB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dCB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lcnJvcgorI3VuZGVmIHhtbFBhcnNlclByaW50RmlsZUluZm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VyUHJpbnRGaWxlSW5mbykgeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlclByaW50RmlsZUluZm9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlclByaW50RmlsZUluZm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VyUHJpbnRGaWxlSW5mbykgeG1sUGFyc2VyUHJpbnRGaWxlSW5mb19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlclByaW50RmlsZUluZm8geG1sUGFyc2VyUHJpbnRGaWxlSW5mb19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZXJyb3IKKyN1bmRlZiB4bWxQYXJzZXJWYWxpZGl0eUVycm9yCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlclZhbGlkaXR5RXJyb3IpIHhtbFBhcnNlclZhbGlkaXR5RXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQYXJzZXJWYWxpZGl0eUVycm9yX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJWYWxpZGl0eUVycm9yCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlclZhbGlkaXR5RXJyb3IpIHhtbFBhcnNlclZhbGlkaXR5RXJyb3JfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJWYWxpZGl0eUVycm9yIHhtbFBhcnNlclZhbGlkaXR5RXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2Vycm9yCisjdW5kZWYgeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFBhcnNlclZhbGlkaXR5V2FybmluZykgeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nKSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmcgeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lcnJvcgorI3VuZGVmIHhtbFBhcnNlcldhcm5pbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VyV2FybmluZykgeG1sUGFyc2VyV2FybmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhcnNlcldhcm5pbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBhcnNlcldhcm5pbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGFyc2VyV2FybmluZykgeG1sUGFyc2VyV2FybmluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBhcnNlcldhcm5pbmcgeG1sUGFyc2VyV2FybmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdXJpCisjdW5kZWYgeG1sUGF0aFRvVVJJCitleHRlcm4gX190eXBlb2YgKHhtbFBhdGhUb1VSSSkgeG1sUGF0aFRvVVJJIF9fYXR0cmlidXRlKChhbGlhcygieG1sUGF0aFRvVVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXRoVG9VUkkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGF0aFRvVVJJKSB4bWxQYXRoVG9VUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXRoVG9VUkkgeG1sUGF0aFRvVVJJX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbFBhdHRlcm5Gcm9tUm9vdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXR0ZXJuRnJvbVJvb3QpIHhtbFBhdHRlcm5Gcm9tUm9vdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhdHRlcm5Gcm9tUm9vdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGF0dGVybkZyb21Sb290CitleHRlcm4gX190eXBlb2YgKHhtbFBhdHRlcm5Gcm9tUm9vdCkgeG1sUGF0dGVybkZyb21Sb290X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGF0dGVybkZyb21Sb290IHhtbFBhdHRlcm5Gcm9tUm9vdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0KSB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCkgeG1sUGF0dGVybkdldFN0cmVhbUN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbFBhdHRlcm5NYXRjaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXR0ZXJuTWF0Y2gpIHhtbFBhdHRlcm5NYXRjaCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhdHRlcm5NYXRjaF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGF0dGVybk1hdGNoCitleHRlcm4gX190eXBlb2YgKHhtbFBhdHRlcm5NYXRjaCkgeG1sUGF0dGVybk1hdGNoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGF0dGVybk1hdGNoIHhtbFBhdHRlcm5NYXRjaF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbFBhdHRlcm5NYXhEZXB0aAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXR0ZXJuTWF4RGVwdGgpIHhtbFBhdHRlcm5NYXhEZXB0aCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhdHRlcm5NYXhEZXB0aF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGF0dGVybk1heERlcHRoCitleHRlcm4gX190eXBlb2YgKHhtbFBhdHRlcm5NYXhEZXB0aCkgeG1sUGF0dGVybk1heERlcHRoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGF0dGVybk1heERlcHRoIHhtbFBhdHRlcm5NYXhEZXB0aF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbFBhdHRlcm5NaW5EZXB0aAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXR0ZXJuTWluRGVwdGgpIHhtbFBhdHRlcm5NaW5EZXB0aCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhdHRlcm5NaW5EZXB0aF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUGF0dGVybk1pbkRlcHRoCitleHRlcm4gX190eXBlb2YgKHhtbFBhdHRlcm5NaW5EZXB0aCkgeG1sUGF0dGVybk1pbkRlcHRoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUGF0dGVybk1pbkRlcHRoIHhtbFBhdHRlcm5NaW5EZXB0aF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbFBhdHRlcm5TdHJlYW1hYmxlCitleHRlcm4gX190eXBlb2YgKHhtbFBhdHRlcm5TdHJlYW1hYmxlKSB4bWxQYXR0ZXJuU3RyZWFtYWJsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhdHRlcm5TdHJlYW1hYmxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXR0ZXJuU3RyZWFtYWJsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXR0ZXJuU3RyZWFtYWJsZSkgeG1sUGF0dGVyblN0cmVhbWFibGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXR0ZXJuU3RyZWFtYWJsZSB4bWxQYXR0ZXJuU3RyZWFtYWJsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGF0dGVybgorI3VuZGVmIHhtbFBhdHRlcm5jb21waWxlCitleHRlcm4gX190eXBlb2YgKHhtbFBhdHRlcm5jb21waWxlKSB4bWxQYXR0ZXJuY29tcGlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBhdHRlcm5jb21waWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQYXR0ZXJuY29tcGlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQYXR0ZXJuY29tcGlsZSkgeG1sUGF0dGVybmNvbXBpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQYXR0ZXJuY29tcGlsZSB4bWxQYXR0ZXJuY29tcGlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0KSB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQpIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFBvcElucHV0CitleHRlcm4gX190eXBlb2YgKHhtbFBvcElucHV0KSB4bWxQb3BJbnB1dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFBvcElucHV0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQb3BJbnB1dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxQb3BJbnB1dCkgeG1sUG9wSW5wdXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQb3BJbnB1dCB4bWxQb3BJbnB1dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxQb3BJbnB1dENhbGxiYWNrcworZXh0ZXJuIF9fdHlwZW9mICh4bWxQb3BJbnB1dENhbGxiYWNrcykgeG1sUG9wSW5wdXRDYWxsYmFja3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxQb3BJbnB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUG9wSW5wdXRDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUG9wSW5wdXRDYWxsYmFja3MpIHhtbFBvcElucHV0Q2FsbGJhY2tzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUG9wSW5wdXRDYWxsYmFja3MgeG1sUG9wSW5wdXRDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sUHJldmlvdXNFbGVtZW50U2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sUHJldmlvdXNFbGVtZW50U2libGluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUHJldmlvdXNFbGVtZW50U2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUHJldmlvdXNFbGVtZW50U2libGluZyB4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3VyaQorI3VuZGVmIHhtbFByaW50VVJJCitleHRlcm4gX190eXBlb2YgKHhtbFByaW50VVJJKSB4bWxQcmludFVSSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFByaW50VVJJX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQcmludFVSSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxQcmludFVSSSkgeG1sUHJpbnRVUklfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQcmludFVSSSB4bWxQcmludFVSSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUHVzaElucHV0CitleHRlcm4gX190eXBlb2YgKHhtbFB1c2hJbnB1dCkgeG1sUHVzaElucHV0IF9fYXR0cmlidXRlKChhbGlhcygieG1sUHVzaElucHV0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxQdXNoSW5wdXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUHVzaElucHV0KSB4bWxQdXNoSW5wdXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxQdXNoSW5wdXQgeG1sUHVzaElucHV0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90aHJlYWRzCisjdW5kZWYgeG1sUk11dGV4TG9jaworZXh0ZXJuIF9fdHlwZW9mICh4bWxSTXV0ZXhMb2NrKSB4bWxSTXV0ZXhMb2NrIF9fYXR0cmlidXRlKChhbGlhcygieG1sUk11dGV4TG9ja19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUk11dGV4TG9jaworZXh0ZXJuIF9fdHlwZW9mICh4bWxSTXV0ZXhMb2NrKSB4bWxSTXV0ZXhMb2NrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUk11dGV4TG9jayB4bWxSTXV0ZXhMb2NrX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90aHJlYWRzCisjdW5kZWYgeG1sUk11dGV4VW5sb2NrCitleHRlcm4gX190eXBlb2YgKHhtbFJNdXRleFVubG9jaykgeG1sUk11dGV4VW5sb2NrIF9fYXR0cmlidXRlKChhbGlhcygieG1sUk11dGV4VW5sb2NrX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSTXV0ZXhVbmxvY2sKK2V4dGVybiBfX3R5cGVvZiAoeG1sUk11dGV4VW5sb2NrKSB4bWxSTXV0ZXhVbmxvY2tfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSTXV0ZXhVbmxvY2sgeG1sUk11dGV4VW5sb2NrX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxSZWFkRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWREb2MpIHhtbFJlYWREb2MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWFkRG9jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWFkRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWREb2MpIHhtbFJlYWREb2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWFkRG9jIHhtbFJlYWREb2NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFJlYWRGZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkRmQpIHhtbFJlYWRGZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlYWRGZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVhZEZkCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRGZCkgeG1sUmVhZEZkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVhZEZkIHhtbFJlYWRGZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUmVhZEZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZEZpbGUpIHhtbFJlYWRGaWxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVhZEZpbGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRGaWxlKSB4bWxSZWFkRmlsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRGaWxlIHhtbFJlYWRGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxSZWFkSU8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZElPKSB4bWxSZWFkSU8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWFkSU9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRJTworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkSU8pIHhtbFJlYWRJT19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRJTyB4bWxSZWFkSU9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFJlYWRNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZE1lbW9yeSkgeG1sUmVhZE1lbW9yeSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlYWRNZW1vcnlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZE1lbW9yeSkgeG1sUmVhZE1lbW9yeV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRNZW1vcnkgeG1sUmVhZE1lbW9yeV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sUmVhZGVyRm9yRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlckZvckRvYykgeG1sUmVhZGVyRm9yRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVhZGVyRm9yRG9jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWFkZXJGb3JEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyRm9yRG9jKSB4bWxSZWFkZXJGb3JEb2NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWFkZXJGb3JEb2MgeG1sUmVhZGVyRm9yRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFJlYWRlckZvckZkCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlckZvckZkKSB4bWxSZWFkZXJGb3JGZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlYWRlckZvckZkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWFkZXJGb3JGZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkZXJGb3JGZCkgeG1sUmVhZGVyRm9yRmRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWFkZXJGb3JGZCB4bWxSZWFkZXJGb3JGZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxSZWFkZXJGb3JGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlckZvckZpbGUpIHhtbFJlYWRlckZvckZpbGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWFkZXJGb3JGaWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWFkZXJGb3JGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlckZvckZpbGUpIHhtbFJlYWRlckZvckZpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWFkZXJGb3JGaWxlIHhtbFJlYWRlckZvckZpbGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sUmVhZGVyRm9ySU8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyRm9ySU8pIHhtbFJlYWRlckZvcklPIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVhZGVyRm9ySU9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRlckZvcklPCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlckZvcklPKSB4bWxSZWFkZXJGb3JJT19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRlckZvcklPIHhtbFJlYWRlckZvcklPX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFJlYWRlckZvck1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkZXJGb3JNZW1vcnkpIHhtbFJlYWRlckZvck1lbW9yeSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlYWRlckZvck1lbW9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVhZGVyRm9yTWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlckZvck1lbW9yeSkgeG1sUmVhZGVyRm9yTWVtb3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVhZGVyRm9yTWVtb3J5IHhtbFJlYWRlckZvck1lbW9yeV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxSZWFkZXJOZXdEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyTmV3RG9jKSB4bWxSZWFkZXJOZXdEb2MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWFkZXJOZXdEb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRlck5ld0RvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkZXJOZXdEb2MpIHhtbFJlYWRlck5ld0RvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRlck5ld0RvYyB4bWxSZWFkZXJOZXdEb2NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sUmVhZGVyTmV3RmQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyTmV3RmQpIHhtbFJlYWRlck5ld0ZkIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVhZGVyTmV3RmRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRlck5ld0ZkCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlck5ld0ZkKSB4bWxSZWFkZXJOZXdGZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRlck5ld0ZkIHhtbFJlYWRlck5ld0ZkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFJlYWRlck5ld0ZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyTmV3RmlsZSkgeG1sUmVhZGVyTmV3RmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlYWRlck5ld0ZpbGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRlck5ld0ZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyTmV3RmlsZSkgeG1sUmVhZGVyTmV3RmlsZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRlck5ld0ZpbGUgeG1sUmVhZGVyTmV3RmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxSZWFkZXJOZXdJTworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkZXJOZXdJTykgeG1sUmVhZGVyTmV3SU8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWFkZXJOZXdJT19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVhZGVyTmV3SU8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyTmV3SU8pIHhtbFJlYWRlck5ld0lPX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVhZGVyTmV3SU8geG1sUmVhZGVyTmV3SU9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sUmVhZGVyTmV3TWVtb3J5CitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlck5ld01lbW9yeSkgeG1sUmVhZGVyTmV3TWVtb3J5IF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVhZGVyTmV3TWVtb3J5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWFkZXJOZXdNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyTmV3TWVtb3J5KSB4bWxSZWFkZXJOZXdNZW1vcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWFkZXJOZXdNZW1vcnkgeG1sUmVhZGVyTmV3TWVtb3J5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFJlYWRlck5ld1dhbGtlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkZXJOZXdXYWxrZXIpIHhtbFJlYWRlck5ld1dhbGtlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlYWRlck5ld1dhbGtlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVhZGVyTmV3V2Fsa2VyCitleHRlcm4gX190eXBlb2YgKHhtbFJlYWRlck5ld1dhbGtlcikgeG1sUmVhZGVyTmV3V2Fsa2VyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVhZGVyTmV3V2Fsa2VyIHhtbFJlYWRlck5ld1dhbGtlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxSZWFkZXJXYWxrZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVhZGVyV2Fsa2VyKSB4bWxSZWFkZXJXYWxrZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWFkZXJXYWxrZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlYWRlcldhbGtlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFkZXJXYWxrZXIpIHhtbFJlYWRlcldhbGtlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlYWRlcldhbGtlciB4bWxSZWFkZXJXYWxrZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sbWVtb3J5CisjdW5kZWYgeG1sUmVhbGxvY0xvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFsbG9jTG9jKSB4bWxSZWFsbG9jTG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVhbGxvY0xvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVhbGxvY0xvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWFsbG9jTG9jKSB4bWxSZWFsbG9jTG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVhbGxvY0xvYyB4bWxSZWFsbG9jTG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFJlY29uY2lsaWF0ZU5zCitleHRlcm4gX190eXBlb2YgKHhtbFJlY29uY2lsaWF0ZU5zKSB4bWxSZWNvbmNpbGlhdGVOcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlY29uY2lsaWF0ZU5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWNvbmNpbGlhdGVOcworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWNvbmNpbGlhdGVOcykgeG1sUmVjb25jaWxpYXRlTnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWNvbmNpbGlhdGVOcyB4bWxSZWNvbmNpbGlhdGVOc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sUmVjb3ZlckRvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWNvdmVyRG9jKSB4bWxSZWNvdmVyRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVjb3ZlckRvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVjb3ZlckRvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWNvdmVyRG9jKSB4bWxSZWNvdmVyRG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVjb3ZlckRvYyB4bWxSZWNvdmVyRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxSZWNvdmVyRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWNvdmVyRmlsZSkgeG1sUmVjb3ZlckZpbGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWNvdmVyRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVjb3ZlckZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVjb3ZlckZpbGUpIHhtbFJlY292ZXJGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVjb3ZlckZpbGUgeG1sUmVjb3ZlckZpbGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFJlY292ZXJNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVjb3Zlck1lbW9yeSkgeG1sUmVjb3Zlck1lbW9yeSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlY292ZXJNZW1vcnlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlY292ZXJNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVjb3Zlck1lbW9yeSkgeG1sUmVjb3Zlck1lbW9yeV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlY292ZXJNZW1vcnkgeG1sUmVjb3Zlck1lbW9yeV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxSZWdFeGVjRXJySW5mbworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdFeGVjRXJySW5mbykgeG1sUmVnRXhlY0VyckluZm8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWdFeGVjRXJySW5mb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVnRXhlY0VyckluZm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnRXhlY0VyckluZm8pIHhtbFJlZ0V4ZWNFcnJJbmZvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVnRXhlY0VyckluZm8geG1sUmVnRXhlY0VyckluZm9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sUmVnRXhlY05leHRWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnRXhlY05leHRWYWx1ZXMpIHhtbFJlZ0V4ZWNOZXh0VmFsdWVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVnRXhlY05leHRWYWx1ZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ0V4ZWNOZXh0VmFsdWVzCitleHRlcm4gX190eXBlb2YgKHhtbFJlZ0V4ZWNOZXh0VmFsdWVzKSB4bWxSZWdFeGVjTmV4dFZhbHVlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ0V4ZWNOZXh0VmFsdWVzIHhtbFJlZ0V4ZWNOZXh0VmFsdWVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKSB4bWxSZWdFeGVjUHVzaFN0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlZ0V4ZWNQdXNoU3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWdFeGVjUHVzaFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdFeGVjUHVzaFN0cmluZykgeG1sUmVnRXhlY1B1c2hTdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWdFeGVjUHVzaFN0cmluZyB4bWxSZWdFeGVjUHVzaFN0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxSZWdFeGVjUHVzaFN0cmluZzIKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnRXhlY1B1c2hTdHJpbmcyKSB4bWxSZWdFeGVjUHVzaFN0cmluZzIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWdFeGVjUHVzaFN0cmluZzJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nMgorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdFeGVjUHVzaFN0cmluZzIpIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nMl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nMiB4bWxSZWdFeGVjUHVzaFN0cmluZzJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sUmVnRnJlZUV4ZWNDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFJlZ0ZyZWVFeGVjQ3R4dCkgeG1sUmVnRnJlZUV4ZWNDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVnRnJlZUV4ZWNDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWdGcmVlRXhlY0N0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnRnJlZUV4ZWNDdHh0KSB4bWxSZWdGcmVlRXhlY0N0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWdGcmVlRXhlY0N0eHQgeG1sUmVnRnJlZUV4ZWNDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbFJlZ0ZyZWVSZWdleHAKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnRnJlZVJlZ2V4cCkgeG1sUmVnRnJlZVJlZ2V4cCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlZ0ZyZWVSZWdleHBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ0ZyZWVSZWdleHAKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnRnJlZVJlZ2V4cCkgeG1sUmVnRnJlZVJlZ2V4cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ0ZyZWVSZWdleHAgeG1sUmVnRnJlZVJlZ2V4cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxSZWdOZXdFeGVjQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdOZXdFeGVjQ3R4dCkgeG1sUmVnTmV3RXhlY0N0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWdOZXdFeGVjQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVnTmV3RXhlY0N0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnTmV3RXhlY0N0eHQpIHhtbFJlZ05ld0V4ZWNDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVnTmV3RXhlY0N0eHQgeG1sUmVnTmV3RXhlY0N0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sUmVnZXhwQ29tcGlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdleHBDb21waWxlKSB4bWxSZWdleHBDb21waWxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVnZXhwQ29tcGlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVnZXhwQ29tcGlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdleHBDb21waWxlKSB4bWxSZWdleHBDb21waWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVnZXhwQ29tcGlsZSB4bWxSZWdleHBDb21waWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlZ2V4cAorI3VuZGVmIHhtbFJlZ2V4cEV4ZWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnZXhwRXhlYykgeG1sUmVnZXhwRXhlYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlZ2V4cEV4ZWNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ2V4cEV4ZWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnZXhwRXhlYykgeG1sUmVnZXhwRXhlY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ2V4cEV4ZWMgeG1sUmVnZXhwRXhlY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWdleHAKKyN1bmRlZiB4bWxSZWdleHBJc0RldGVybWluaXN0CitleHRlcm4gX190eXBlb2YgKHhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QpIHhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWdleHBJc0RldGVybWluaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWdleHBJc0RldGVybWluaXN0CitleHRlcm4gX190eXBlb2YgKHhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QpIHhtbFJlZ2V4cElzRGV0ZXJtaW5pc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWdleHBJc0RldGVybWluaXN0IHhtbFJlZ2V4cElzRGV0ZXJtaW5pc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVnZXhwCisjdW5kZWYgeG1sUmVnZXhwUHJpbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnZXhwUHJpbnQpIHhtbFJlZ2V4cFByaW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVnZXhwUHJpbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ2V4cFByaW50CitleHRlcm4gX190eXBlb2YgKHhtbFJlZ2V4cFByaW50KSB4bWxSZWdleHBQcmludF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ2V4cFByaW50IHhtbFJlZ2V4cFByaW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2VuY29kaW5nCisjdW5kZWYgeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyCitleHRlcm4gX190eXBlb2YgKHhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcikgeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyKSB4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIgeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzCitleHRlcm4gX190eXBlb2YgKHhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzKSB4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcykgeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyB4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzKSB4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MpIHhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyB4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcykgeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcykgeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MgeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxJTworI3VuZGVmIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcykgeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcykgeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MgeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZ2xvYmFscworI3VuZGVmIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCkgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlZ2lzdGVyTm9kZURlZmF1bHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCkgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHQgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcykgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MpIHhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3JlbGF4bmcKKyN1bmRlZiB4bWxSZWxheE5HQ2xlYW51cFR5cGVzCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdDbGVhbnVwVHlwZXMpIHhtbFJlbGF4TkdDbGVhbnVwVHlwZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZWxheE5HQ2xlYW51cFR5cGVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HQ2xlYW51cFR5cGVzCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdDbGVhbnVwVHlwZXMpIHhtbFJlbGF4TkdDbGVhbnVwVHlwZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HQ2xlYW51cFR5cGVzIHhtbFJlbGF4TkdDbGVhbnVwVHlwZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9yZWxheG5nCisjdW5kZWYgeG1sUmVsYXhOR0R1bXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR0R1bXApIHhtbFJlbGF4TkdEdW1wIF9fYXR0cmlidXRlKChhbGlhcygieG1sUmVsYXhOR0R1bXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbGF4TkdEdW1wCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdEdW1wKSB4bWxSZWxheE5HRHVtcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbGF4TkdEdW1wIHhtbFJlbGF4TkdEdW1wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdEdW1wVHJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HRHVtcFRyZWUpIHhtbFJlbGF4TkdEdW1wVHJlZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdEdW1wVHJlZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhOR0R1bXBUcmVlCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdEdW1wVHJlZSkgeG1sUmVsYXhOR0R1bXBUcmVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhOR0R1bXBUcmVlIHhtbFJlbGF4TkdEdW1wVHJlZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdGcmVlCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdGcmVlKSB4bWxSZWxheE5HRnJlZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdGcmVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HRnJlZSkgeG1sUmVsYXhOR0ZyZWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HRnJlZSB4bWxSZWxheE5HRnJlZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQpIHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dCkgeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0IHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KSB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCkgeG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR0dldFBhcnNlckVycm9ycykgeG1sUmVsYXhOR0dldFBhcnNlckVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR0dldFBhcnNlckVycm9ycykgeG1sUmVsYXhOR0dldFBhcnNlckVycm9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbGF4TkdHZXRQYXJzZXJFcnJvcnMgeG1sUmVsYXhOR0dldFBhcnNlckVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdHZXRWYWxpZEVycm9ycworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMpIHhtbFJlbGF4TkdHZXRWYWxpZEVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdHZXRWYWxpZEVycm9yc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdHZXRWYWxpZEVycm9ycykgeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzIHhtbFJlbGF4TkdHZXRWYWxpZEVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdJbml0VHlwZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR0luaXRUeXBlcykgeG1sUmVsYXhOR0luaXRUeXBlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdJbml0VHlwZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbGF4TkdJbml0VHlwZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR0luaXRUeXBlcykgeG1sUmVsYXhOR0luaXRUeXBlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbGF4TkdJbml0VHlwZXMgeG1sUmVsYXhOR0luaXRUeXBlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0KSB4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCkgeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCB4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KSB4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCkgeG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCB4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0KSB4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCkgeG1sUmVsYXhOR05ld1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCB4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdOZXdWYWxpZEN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCkgeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdOZXdWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbGF4TkdOZXdWYWxpZEN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dCkgeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbGF4TkdOZXdWYWxpZEN0eHQgeG1sUmVsYXhOR05ld1ZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdQYXJzZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HUGFyc2UpIHhtbFJlbGF4TkdQYXJzZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdQYXJzZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhOR1BhcnNlCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdQYXJzZSkgeG1sUmVsYXhOR1BhcnNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhOR1BhcnNlIHhtbFJlbGF4TkdQYXJzZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycykgeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycykgeG1sUmVsYXhOR1NldFBhcnNlckVycm9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMgeG1sUmVsYXhOR1NldFBhcnNlckVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKSB4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycykgeG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyB4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMpIHhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdTZXRWYWxpZEVycm9yc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycykgeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzIHhtbFJlbGF4TkdTZXRWYWxpZEVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycykgeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycykgeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMgeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdWYWxpZGF0ZURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HVmFsaWRhdGVEb2MpIHhtbFJlbGF4TkdWYWxpZGF0ZURvYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdWYWxpZGF0ZURvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhOR1ZhbGlkYXRlRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdWYWxpZGF0ZURvYykgeG1sUmVsYXhOR1ZhbGlkYXRlRG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhOR1ZhbGlkYXRlRG9jIHhtbFJlbGF4TkdWYWxpZGF0ZURvY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50KSB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCkgeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCkgeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCkgeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQgeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEpIHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSkgeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhIHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50KSB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCkgeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcmVsYXhuZworI3VuZGVmIHhtbFJlbGF4UGFyc2VyU2V0RmxhZworZXh0ZXJuIF9fdHlwZW9mICh4bWxSZWxheFBhcnNlclNldEZsYWcpIHhtbFJlbGF4UGFyc2VyU2V0RmxhZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbGF4UGFyc2VyU2V0RmxhZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVsYXhQYXJzZXJTZXRGbGFnCitleHRlcm4gX190eXBlb2YgKHhtbFJlbGF4UGFyc2VyU2V0RmxhZykgeG1sUmVsYXhQYXJzZXJTZXRGbGFnX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVsYXhQYXJzZXJTZXRGbGFnIHhtbFJlbGF4UGFyc2VyU2V0RmxhZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFJlbW92ZUlECitleHRlcm4gX190eXBlb2YgKHhtbFJlbW92ZUlEKSB4bWxSZW1vdmVJRCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbW92ZUlEX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZW1vdmVJRAorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZW1vdmVJRCkgeG1sUmVtb3ZlSURfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZW1vdmVJRCB4bWxSZW1vdmVJRF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFJlbW92ZVByb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVtb3ZlUHJvcCkgeG1sUmVtb3ZlUHJvcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlbW92ZVByb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbW92ZVByb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVtb3ZlUHJvcCkgeG1sUmVtb3ZlUHJvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbW92ZVByb3AgeG1sUmVtb3ZlUHJvcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxSZW1vdmVSZWYKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVtb3ZlUmVmKSB4bWxSZW1vdmVSZWYgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZW1vdmVSZWZfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlbW92ZVJlZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZW1vdmVSZWYpIHhtbFJlbW92ZVJlZl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlbW92ZVJlZiB4bWxSZW1vdmVSZWZfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFJlcGxhY2VOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFJlcGxhY2VOb2RlKSB4bWxSZXBsYWNlTm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlcGxhY2VOb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxSZXBsYWNlTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZXBsYWNlTm9kZSkgeG1sUmVwbGFjZU5vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxSZXBsYWNlTm9kZSB4bWxSZXBsYWNlTm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lcnJvcgorI3VuZGVmIHhtbFJlc2V0RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVzZXRFcnJvcikgeG1sUmVzZXRFcnJvciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFJlc2V0RXJyb3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFJlc2V0RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVzZXRFcnJvcikgeG1sUmVzZXRFcnJvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFJlc2V0RXJyb3IgeG1sUmVzZXRFcnJvcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fZXJyb3IKKyN1bmRlZiB4bWxSZXNldExhc3RFcnJvcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxSZXNldExhc3RFcnJvcikgeG1sUmVzZXRMYXN0RXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxSZXNldExhc3RFcnJvcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sUmVzZXRMYXN0RXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sUmVzZXRMYXN0RXJyb3IpIHhtbFJlc2V0TGFzdEVycm9yX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sUmVzZXRMYXN0RXJyb3IgeG1sUmVzZXRMYXN0RXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgyQXR0cmlidXRlRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyQXR0cmlidXRlRGVjbCkgeG1sU0FYMkF0dHJpYnV0ZURlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgyQXR0cmlidXRlRGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkF0dHJpYnV0ZURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkF0dHJpYnV0ZURlY2wpIHhtbFNBWDJBdHRyaWJ1dGVEZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkF0dHJpYnV0ZURlY2wgeG1sU0FYMkF0dHJpYnV0ZURlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgyQ0RhdGFCbG9jaworZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyQ0RhdGFCbG9jaykgeG1sU0FYMkNEYXRhQmxvY2sgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgyQ0RhdGFCbG9ja19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkNEYXRhQmxvY2sKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkNEYXRhQmxvY2spIHhtbFNBWDJDRGF0YUJsb2NrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkNEYXRhQmxvY2sgeG1sU0FYMkNEYXRhQmxvY2tfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgyQ2hhcmFjdGVycworZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyQ2hhcmFjdGVycykgeG1sU0FYMkNoYXJhY3RlcnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgyQ2hhcmFjdGVyc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkNoYXJhY3RlcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkNoYXJhY3RlcnMpIHhtbFNBWDJDaGFyYWN0ZXJzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkNoYXJhY3RlcnMgeG1sU0FYMkNoYXJhY3RlcnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgyQ29tbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyQ29tbWVudCkgeG1sU0FYMkNvbW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgyQ29tbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkNvbW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkNvbW1lbnQpIHhtbFNBWDJDb21tZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkNvbW1lbnQgeG1sU0FYMkNvbW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgyRWxlbWVudERlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkVsZW1lbnREZWNsKSB4bWxTQVgyRWxlbWVudERlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgyRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJFbGVtZW50RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyRWxlbWVudERlY2wpIHhtbFNBWDJFbGVtZW50RGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJFbGVtZW50RGVjbCB4bWxTQVgyRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgyRW5kRG9jdW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkVuZERvY3VtZW50KSB4bWxTQVgyRW5kRG9jdW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgyRW5kRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJFbmREb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyRW5kRG9jdW1lbnQpIHhtbFNBWDJFbmREb2N1bWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJFbmREb2N1bWVudCB4bWxTQVgyRW5kRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgyRW5kRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyRW5kRWxlbWVudCkgeG1sU0FYMkVuZEVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgyRW5kRWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkVuZEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkVuZEVsZW1lbnQpIHhtbFNBWDJFbmRFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkVuZEVsZW1lbnQgeG1sU0FYMkVuZEVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJFbmRFbGVtZW50TnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkVuZEVsZW1lbnROcykgeG1sU0FYMkVuZEVsZW1lbnROcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJFbmRFbGVtZW50TnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJFbmRFbGVtZW50TnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkVuZEVsZW1lbnROcykgeG1sU0FYMkVuZEVsZW1lbnROc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJFbmRFbGVtZW50TnMgeG1sU0FYMkVuZEVsZW1lbnROc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJFbnRpdHlEZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJFbnRpdHlEZWNsKSB4bWxTQVgyRW50aXR5RGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJFbnRpdHlEZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVgyRW50aXR5RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyRW50aXR5RGVjbCkgeG1sU0FYMkVudGl0eURlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVgyRW50aXR5RGVjbCB4bWxTQVgyRW50aXR5RGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJFeHRlcm5hbFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyRXh0ZXJuYWxTdWJzZXQpIHhtbFNBWDJFeHRlcm5hbFN1YnNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJFeHRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkV4dGVybmFsU3Vic2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJFeHRlcm5hbFN1YnNldCkgeG1sU0FYMkV4dGVybmFsU3Vic2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkV4dGVybmFsU3Vic2V0IHhtbFNBWDJFeHRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJHZXRDb2x1bW5OdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkdldENvbHVtbk51bWJlcikgeG1sU0FYMkdldENvbHVtbk51bWJlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJHZXRDb2x1bW5OdW1iZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJHZXRDb2x1bW5OdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkdldENvbHVtbk51bWJlcikgeG1sU0FYMkdldENvbHVtbk51bWJlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJHZXRDb2x1bW5OdW1iZXIgeG1sU0FYMkdldENvbHVtbk51bWJlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJHZXRFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkdldEVudGl0eSkgeG1sU0FYMkdldEVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJHZXRFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJHZXRFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkdldEVudGl0eSkgeG1sU0FYMkdldEVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJHZXRFbnRpdHkgeG1sU0FYMkdldEVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJHZXRMaW5lTnVtYmVyCitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJHZXRMaW5lTnVtYmVyKSB4bWxTQVgyR2V0TGluZU51bWJlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJHZXRMaW5lTnVtYmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVgyR2V0TGluZU51bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyR2V0TGluZU51bWJlcikgeG1sU0FYMkdldExpbmVOdW1iZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVgyR2V0TGluZU51bWJlciB4bWxTQVgyR2V0TGluZU51bWJlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSkgeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSkgeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkgeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJHZXRQdWJsaWNJZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyR2V0UHVibGljSWQpIHhtbFNBWDJHZXRQdWJsaWNJZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJHZXRQdWJsaWNJZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkdldFB1YmxpY0lkCitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJHZXRQdWJsaWNJZCkgeG1sU0FYMkdldFB1YmxpY0lkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkdldFB1YmxpY0lkIHhtbFNBWDJHZXRQdWJsaWNJZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJHZXRTeXN0ZW1JZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyR2V0U3lzdGVtSWQpIHhtbFNBWDJHZXRTeXN0ZW1JZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJHZXRTeXN0ZW1JZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkdldFN5c3RlbUlkCitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJHZXRTeXN0ZW1JZCkgeG1sU0FYMkdldFN5c3RlbUlkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkdldFN5c3RlbUlkIHhtbFNBWDJHZXRTeXN0ZW1JZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQpIHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCkgeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0IHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQpIHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldCkgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0IHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlCitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlKSB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSkgeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcikgeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcikgeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIgeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcikgeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIpIHhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIgeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX1NBWDIKKyN1bmRlZiB4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcikgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIpIHhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIgeG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJJbnRlcm5hbFN1YnNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgySW50ZXJuYWxTdWJzZXQpIHhtbFNBWDJJbnRlcm5hbFN1YnNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJJbnRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMkludGVybmFsU3Vic2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJJbnRlcm5hbFN1YnNldCkgeG1sU0FYMkludGVybmFsU3Vic2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMkludGVybmFsU3Vic2V0IHhtbFNBWDJJbnRlcm5hbFN1YnNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJJc1N0YW5kYWxvbmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMklzU3RhbmRhbG9uZSkgeG1sU0FYMklzU3RhbmRhbG9uZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJJc1N0YW5kYWxvbmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJJc1N0YW5kYWxvbmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMklzU3RhbmRhbG9uZSkgeG1sU0FYMklzU3RhbmRhbG9uZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJJc1N0YW5kYWxvbmUgeG1sU0FYMklzU3RhbmRhbG9uZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJOb3RhdGlvbkRlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMk5vdGF0aW9uRGVjbCkgeG1sU0FYMk5vdGF0aW9uRGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJOb3RhdGlvbkRlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJOb3RhdGlvbkRlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMk5vdGF0aW9uRGVjbCkgeG1sU0FYMk5vdGF0aW9uRGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJOb3RhdGlvbkRlY2wgeG1sU0FYMk5vdGF0aW9uRGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbikgeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbikgeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24geG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJSZWZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlJlZmVyZW5jZSkgeG1sU0FYMlJlZmVyZW5jZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJSZWZlcmVuY2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJSZWZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlJlZmVyZW5jZSkgeG1sU0FYMlJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJSZWZlcmVuY2UgeG1sU0FYMlJlZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJSZXNvbHZlRW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJSZXNvbHZlRW50aXR5KSB4bWxTQVgyUmVzb2x2ZUVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJSZXNvbHZlRW50aXR5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVgyUmVzb2x2ZUVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyUmVzb2x2ZUVudGl0eSkgeG1sU0FYMlJlc29sdmVFbnRpdHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVgyUmVzb2x2ZUVudGl0eSB4bWxTQVgyUmVzb2x2ZUVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJTZXREb2N1bWVudExvY2F0b3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlNldERvY3VtZW50TG9jYXRvcikgeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJTZXREb2N1bWVudExvY2F0b3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJTZXREb2N1bWVudExvY2F0b3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlNldERvY3VtZW50TG9jYXRvcikgeG1sU0FYMlNldERvY3VtZW50TG9jYXRvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJTZXREb2N1bWVudExvY2F0b3IgeG1sU0FYMlNldERvY3VtZW50TG9jYXRvcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJTdGFydERvY3VtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJTdGFydERvY3VtZW50KSB4bWxTQVgyU3RhcnREb2N1bWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJTdGFydERvY3VtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVgyU3RhcnREb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyU3RhcnREb2N1bWVudCkgeG1sU0FYMlN0YXJ0RG9jdW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVgyU3RhcnREb2N1bWVudCB4bWxTQVgyU3RhcnREb2N1bWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWDJTdGFydEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlN0YXJ0RWxlbWVudCkgeG1sU0FYMlN0YXJ0RWxlbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWDJTdGFydEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWDJTdGFydEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlN0YXJ0RWxlbWVudCkgeG1sU0FYMlN0YXJ0RWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWDJTdGFydEVsZW1lbnQgeG1sU0FYMlN0YXJ0RWxlbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9TQVgyCisjdW5kZWYgeG1sU0FYMlN0YXJ0RWxlbWVudE5zCitleHRlcm4gX190eXBlb2YgKHhtbFNBWDJTdGFydEVsZW1lbnROcykgeG1sU0FYMlN0YXJ0RWxlbWVudE5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sU0FYMlN0YXJ0RWxlbWVudE5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVgyU3RhcnRFbGVtZW50TnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYMlN0YXJ0RWxlbWVudE5zKSB4bWxTQVgyU3RhcnRFbGVtZW50TnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVgyU3RhcnRFbGVtZW50TnMgeG1sU0FYMlN0YXJ0RWxlbWVudE5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9TQVgyCisjdW5kZWYgeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsKSB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsKSB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWERlZmF1bHRWZXJzaW9uCitleHRlcm4gX190eXBlb2YgKHhtbFNBWERlZmF1bHRWZXJzaW9uKSB4bWxTQVhEZWZhdWx0VmVyc2lvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWERlZmF1bHRWZXJzaW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVhEZWZhdWx0VmVyc2lvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhEZWZhdWx0VmVyc2lvbikgeG1sU0FYRGVmYXVsdFZlcnNpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVhEZWZhdWx0VmVyc2lvbiB4bWxTQVhEZWZhdWx0VmVyc2lvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFNBWFBhcnNlRFRECitleHRlcm4gX190eXBlb2YgKHhtbFNBWFBhcnNlRFREKSB4bWxTQVhQYXJzZURURCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWFBhcnNlRFREX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTQVhQYXJzZURURAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhQYXJzZURURCkgeG1sU0FYUGFyc2VEVERfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTQVhQYXJzZURURCB4bWxTQVhQYXJzZURURF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sU0FYUGFyc2VEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYUGFyc2VEb2MpIHhtbFNBWFBhcnNlRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sU0FYUGFyc2VEb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWFBhcnNlRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFNBWFBhcnNlRG9jKSB4bWxTQVhQYXJzZURvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWFBhcnNlRG9jIHhtbFNBWFBhcnNlRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxTQVhQYXJzZUVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhQYXJzZUVudGl0eSkgeG1sU0FYUGFyc2VFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVhQYXJzZUVudGl0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYUGFyc2VFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYUGFyc2VFbnRpdHkpIHhtbFNBWFBhcnNlRW50aXR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYUGFyc2VFbnRpdHkgeG1sU0FYUGFyc2VFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFNBWFBhcnNlRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhQYXJzZUZpbGUpIHhtbFNBWFBhcnNlRmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWFBhcnNlRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYUGFyc2VGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFNBWFBhcnNlRmlsZSkgeG1sU0FYUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYUGFyc2VGaWxlIHhtbFNBWFBhcnNlRmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEpIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhIF9fYXR0cmlidXRlKChhbGlhcygieG1sU0FYUGFyc2VGaWxlV2l0aERhdGFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhCitleHRlcm4gX190eXBlb2YgKHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhKSB4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxTQVhQYXJzZU1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhQYXJzZU1lbW9yeSkgeG1sU0FYUGFyc2VNZW1vcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVhQYXJzZU1lbW9yeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYUGFyc2VNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYUGFyc2VNZW1vcnkpIHhtbFNBWFBhcnNlTWVtb3J5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYUGFyc2VNZW1vcnkgeG1sU0FYUGFyc2VNZW1vcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSkgeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSkgeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGEgeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sU0FYVXNlclBhcnNlRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhVc2VyUGFyc2VGaWxlKSB4bWxTQVhVc2VyUGFyc2VGaWxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU0FYVXNlclBhcnNlRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU0FYVXNlclBhcnNlRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhVc2VyUGFyc2VGaWxlKSB4bWxTQVhVc2VyUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU0FYVXNlclBhcnNlRmlsZSB4bWxTQVhVc2VyUGFyc2VGaWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxTQVhVc2VyUGFyc2VNZW1vcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYVXNlclBhcnNlTWVtb3J5KSB4bWxTQVhVc2VyUGFyc2VNZW1vcnkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTQVhVc2VyUGFyc2VNZW1vcnlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWFVzZXJQYXJzZU1lbW9yeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTQVhVc2VyUGFyc2VNZW1vcnkpIHhtbFNBWFVzZXJQYXJzZU1lbW9yeV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWFVzZXJQYXJzZU1lbW9yeSB4bWxTQVhVc2VyUGFyc2VNZW1vcnlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fU0FYMgorI3VuZGVmIHhtbFNBWFZlcnNpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYVmVyc2lvbikgeG1sU0FYVmVyc2lvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNBWFZlcnNpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNBWFZlcnNpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sU0FYVmVyc2lvbikgeG1sU0FYVmVyc2lvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNBWFZlcnNpb24geG1sU0FYVmVyc2lvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbFNhdmVDbG9zZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlQ2xvc2UpIHhtbFNhdmVDbG9zZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNhdmVDbG9zZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2F2ZUNsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVDbG9zZSkgeG1sU2F2ZUNsb3NlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2F2ZUNsb3NlIHhtbFNhdmVDbG9zZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sU2F2ZURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRG9jKSB4bWxTYXZlRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2F2ZURvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2F2ZURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRG9jKSB4bWxTYXZlRG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2F2ZURvYyB4bWxTYXZlRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxTYXZlRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRmlsZSkgeG1sU2F2ZUZpbGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTYXZlRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2F2ZUZpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2F2ZUZpbGUpIHhtbFNhdmVGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2F2ZUZpbGUgeG1sU2F2ZUZpbGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbFNhdmVGaWxlRW5jCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVGaWxlRW5jKSB4bWxTYXZlRmlsZUVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNhdmVGaWxlRW5jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTYXZlRmlsZUVuYworZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRmlsZUVuYykgeG1sU2F2ZUZpbGVFbmNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTYXZlRmlsZUVuYyB4bWxTYXZlRmlsZUVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sU2F2ZUZpbGVUbworZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRmlsZVRvKSB4bWxTYXZlRmlsZVRvIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2F2ZUZpbGVUb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2F2ZUZpbGVUbworZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRmlsZVRvKSB4bWxTYXZlRmlsZVRvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2F2ZUZpbGVUbyB4bWxTYXZlRmlsZVRvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxTYXZlRmx1c2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2F2ZUZsdXNoKSB4bWxTYXZlRmx1c2ggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTYXZlRmx1c2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNhdmVGbHVzaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRmx1c2gpIHhtbFNhdmVGbHVzaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNhdmVGbHVzaCB4bWxTYXZlRmx1c2hfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbFNhdmVGb3JtYXRGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVGb3JtYXRGaWxlKSB4bWxTYXZlRm9ybWF0RmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNhdmVGb3JtYXRGaWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTYXZlRm9ybWF0RmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlRm9ybWF0RmlsZSkgeG1sU2F2ZUZvcm1hdEZpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTYXZlRm9ybWF0RmlsZSB4bWxTYXZlRm9ybWF0RmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sU2F2ZUZvcm1hdEZpbGVFbmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2F2ZUZvcm1hdEZpbGVFbmMpIHhtbFNhdmVGb3JtYXRGaWxlRW5jIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2F2ZUZvcm1hdEZpbGVFbmNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNhdmVGb3JtYXRGaWxlRW5jCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVGb3JtYXRGaWxlRW5jKSB4bWxTYXZlRm9ybWF0RmlsZUVuY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNhdmVGb3JtYXRGaWxlRW5jIHhtbFNhdmVGb3JtYXRGaWxlRW5jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxTYXZlRm9ybWF0RmlsZVRvCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVGb3JtYXRGaWxlVG8pIHhtbFNhdmVGb3JtYXRGaWxlVG8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTYXZlRm9ybWF0RmlsZVRvX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTYXZlRm9ybWF0RmlsZVRvCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVGb3JtYXRGaWxlVG8pIHhtbFNhdmVGb3JtYXRGaWxlVG9fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTYXZlRm9ybWF0RmlsZVRvIHhtbFNhdmVGb3JtYXRGaWxlVG9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbFNhdmVTZXRBdHRyRXNjYXBlCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVTZXRBdHRyRXNjYXBlKSB4bWxTYXZlU2V0QXR0ckVzY2FwZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNhdmVTZXRBdHRyRXNjYXBlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTYXZlU2V0QXR0ckVzY2FwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlU2V0QXR0ckVzY2FwZSkgeG1sU2F2ZVNldEF0dHJFc2NhcGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTYXZlU2V0QXR0ckVzY2FwZSB4bWxTYXZlU2V0QXR0ckVzY2FwZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sU2F2ZVNldEVzY2FwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlU2V0RXNjYXBlKSB4bWxTYXZlU2V0RXNjYXBlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2F2ZVNldEVzY2FwZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2F2ZVNldEVzY2FwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlU2V0RXNjYXBlKSB4bWxTYXZlU2V0RXNjYXBlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2F2ZVNldEVzY2FwZSB4bWxTYXZlU2V0RXNjYXBlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxTYXZlVG9CdWZmZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2F2ZVRvQnVmZmVyKSB4bWxTYXZlVG9CdWZmZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTYXZlVG9CdWZmZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNhdmVUb0J1ZmZlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlVG9CdWZmZXIpIHhtbFNhdmVUb0J1ZmZlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNhdmVUb0J1ZmZlciB4bWxTYXZlVG9CdWZmZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbFNhdmVUb0ZkCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVUb0ZkKSB4bWxTYXZlVG9GZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNhdmVUb0ZkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTYXZlVG9GZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlVG9GZCkgeG1sU2F2ZVRvRmRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTYXZlVG9GZCB4bWxTYXZlVG9GZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzYXZlCisjdW5kZWYgeG1sU2F2ZVRvRmlsZW5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2F2ZVRvRmlsZW5hbWUpIHhtbFNhdmVUb0ZpbGVuYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2F2ZVRvRmlsZW5hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNhdmVUb0ZpbGVuYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVUb0ZpbGVuYW1lKSB4bWxTYXZlVG9GaWxlbmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNhdmVUb0ZpbGVuYW1lIHhtbFNhdmVUb0ZpbGVuYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNhdmUKKyN1bmRlZiB4bWxTYXZlVG9JTworZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlVG9JTykgeG1sU2F2ZVRvSU8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTYXZlVG9JT19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2F2ZVRvSU8KK2V4dGVybiBfX3R5cGVvZiAoeG1sU2F2ZVRvSU8pIHhtbFNhdmVUb0lPX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2F2ZVRvSU8geG1sU2F2ZVRvSU9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2F2ZQorI3VuZGVmIHhtbFNhdmVUcmVlCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVUcmVlKSB4bWxTYXZlVHJlZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNhdmVUcmVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTYXZlVHJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTYXZlVHJlZSkgeG1sU2F2ZVRyZWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTYXZlVHJlZSB4bWxTYXZlVHJlZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV91cmkKKyN1bmRlZiB4bWxTYXZlVXJpCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVVcmkpIHhtbFNhdmVVcmkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTYXZlVXJpX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTYXZlVXJpCitleHRlcm4gX190eXBlb2YgKHhtbFNhdmVVcmkpIHhtbFNhdmVVcmlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTYXZlVXJpIHhtbFNhdmVVcmlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2xlZ2FjeQorI3VuZGVmIHhtbFNjYW5OYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFNjYW5OYW1lKSB4bWxTY2FuTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjYW5OYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2FuTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2FuTmFtZSkgeG1sU2Nhbk5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2FuTmFtZSB4bWxTY2FuTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hcworI3VuZGVmIHhtbFNjaGVtYUNoZWNrRmFjZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ2hlY2tGYWNldCkgeG1sU2NoZW1hQ2hlY2tGYWNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYUNoZWNrRmFjZXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUNoZWNrRmFjZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ2hlY2tGYWNldCkgeG1sU2NoZW1hQ2hlY2tGYWNldF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUNoZWNrRmFjZXQgeG1sU2NoZW1hQ2hlY2tGYWNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hQ2xlYW51cFR5cGVzCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUNsZWFudXBUeXBlcykgeG1sU2NoZW1hQ2xlYW51cFR5cGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hQ2xlYW51cFR5cGVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFDbGVhbnVwVHlwZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ2xlYW51cFR5cGVzKSB4bWxTY2hlbWFDbGVhbnVwVHlwZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFDbGVhbnVwVHlwZXMgeG1sU2NoZW1hQ2xlYW51cFR5cGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFDb2xsYXBzZVN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFDb2xsYXBzZVN0cmluZykgeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFDb2xsYXBzZVN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcpIHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcgeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ29tcGFyZVZhbHVlcykgeG1sU2NoZW1hQ29tcGFyZVZhbHVlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ29tcGFyZVZhbHVlcykgeG1sU2NoZW1hQ29tcGFyZVZhbHVlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMgeG1sU2NoZW1hQ29tcGFyZVZhbHVlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcCkgeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwKSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3BfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AgeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFDb3B5VmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hQ29weVZhbHVlKSB4bWxTY2hlbWFDb3B5VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFDb3B5VmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUNvcHlWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFDb3B5VmFsdWUpIHhtbFNjaGVtYUNvcHlWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUNvcHlWYWx1ZSB4bWxTY2hlbWFDb3B5VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFEdW1wKSB4bWxTY2hlbWFEdW1wIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hRHVtcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hRHVtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFEdW1wKSB4bWxTY2hlbWFEdW1wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hRHVtcCB4bWxTY2hlbWFEdW1wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFGcmVlKSB4bWxTY2hlbWFGcmVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hRnJlZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFGcmVlKSB4bWxTY2hlbWFGcmVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hRnJlZSB4bWxTY2hlbWFGcmVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hRnJlZUZhY2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUZyZWVGYWNldCkgeG1sU2NoZW1hRnJlZUZhY2V0IF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hRnJlZUZhY2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFGcmVlRmFjZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hRnJlZUZhY2V0KSB4bWxTY2hlbWFGcmVlRmFjZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFGcmVlRmFjZXQgeG1sU2NoZW1hRnJlZUZhY2V0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQpIHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hRnJlZVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0KSB4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0IHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hRnJlZVR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hRnJlZVR5cGUpIHhtbFNjaGVtYUZyZWVUeXBlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hRnJlZVR5cGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUZyZWVUeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUZyZWVUeXBlKSB4bWxTY2hlbWFGcmVlVHlwZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUZyZWVUeXBlIHhtbFNjaGVtYUZyZWVUeXBlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFGcmVlVmFsaWRDdHh0KSB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hRnJlZVZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFGcmVlVmFsaWRDdHh0KSB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFGcmVlVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hRnJlZVZhbHVlKSB4bWxTY2hlbWFGcmVlVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFGcmVlVmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUZyZWVWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFGcmVlVmFsdWUpIHhtbFNjaGVtYUZyZWVWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUZyZWVWYWx1ZSB4bWxTY2hlbWFGcmVlVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFGcmVlV2lsZGNhcmQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hRnJlZVdpbGRjYXJkKSB4bWxTY2hlbWFGcmVlV2lsZGNhcmQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFGcmVlV2lsZGNhcmRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUZyZWVXaWxkY2FyZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFGcmVlV2lsZGNhcmQpIHhtbFNjaGVtYUZyZWVXaWxkY2FyZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUZyZWVXaWxkY2FyZCB4bWxTY2hlbWFGcmVlV2lsZGNhcmRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlKSB4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSkgeG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSB4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUpIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hR2V0QnVpbHRJblR5cGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKSB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFHZXRDYW5vblZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldENhbm9uVmFsdWUpIHhtbFNjaGVtYUdldENhbm9uVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFHZXRDYW5vblZhbHVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFHZXRDYW5vblZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldENhbm9uVmFsdWUpIHhtbFNjaGVtYUdldENhbm9uVmFsdWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFHZXRDYW5vblZhbHVlIHhtbFNjaGVtYUdldENhbm9uVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3ApIHhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcCkgeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwIHhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmcpIHhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nKSB4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nIHhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldFBhcnNlckVycm9ycykgeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzKSB4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMgeG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZSkgeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUpIHhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUgeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYUdldFZhbFR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hR2V0VmFsVHlwZSkgeG1sU2NoZW1hR2V0VmFsVHlwZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYUdldFZhbFR5cGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUdldFZhbFR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hR2V0VmFsVHlwZSkgeG1sU2NoZW1hR2V0VmFsVHlwZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUdldFZhbFR5cGUgeG1sU2NoZW1hR2V0VmFsVHlwZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hcworI3VuZGVmIHhtbFNjaGVtYUdldFZhbGlkRXJyb3JzCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUdldFZhbGlkRXJyb3JzKSB4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYUdldFZhbGlkRXJyb3JzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFHZXRWYWxpZEVycm9ycworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFHZXRWYWxpZEVycm9ycykgeG1sU2NoZW1hR2V0VmFsaWRFcnJvcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyB4bWxTY2hlbWFHZXRWYWxpZEVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hSW5pdFR5cGVzCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUluaXRUeXBlcykgeG1sU2NoZW1hSW5pdFR5cGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hSW5pdFR5cGVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFJbml0VHlwZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hSW5pdFR5cGVzKSB4bWxTY2hlbWFJbml0VHlwZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFJbml0VHlwZXMgeG1sU2NoZW1hSW5pdFR5cGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0KSB4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQpIHhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCB4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFJc1ZhbGlkCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUlzVmFsaWQpIHhtbFNjaGVtYUlzVmFsaWQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFJc1ZhbGlkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFJc1ZhbGlkCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYUlzVmFsaWQpIHhtbFNjaGVtYUlzVmFsaWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFJc1ZhbGlkIHhtbFNjaGVtYUlzVmFsaWRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQpIHhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQpIHhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFOZXdEb2NQYXJzZXJDdHh0IHhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFOZXdGYWNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFOZXdGYWNldCkgeG1sU2NoZW1hTmV3RmFjZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFOZXdGYWNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hTmV3RmFjZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hTmV3RmFjZXQpIHhtbFNjaGVtYU5ld0ZhY2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hTmV3RmFjZXQgeG1sU2NoZW1hTmV3RmFjZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQpIHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQpIHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0IHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZSkgeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZSkgeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUgeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hcworI3VuZGVmIHhtbFNjaGVtYU5ld1BhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCkgeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYU5ld1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYU5ld1BhcnNlckN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCkgeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYU5ld1BhcnNlckN0eHQgeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFOZXdRTmFtZVZhbHVlKSB4bWxTY2hlbWFOZXdRTmFtZVZhbHVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hTmV3UU5hbWVWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFOZXdRTmFtZVZhbHVlKSB4bWxTY2hlbWFOZXdRTmFtZVZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSB4bWxTY2hlbWFOZXdRTmFtZVZhbHVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZSkgeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUpIHhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUgeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFOZXdWYWxpZEN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hTmV3VmFsaWRDdHh0KSB4bWxTY2hlbWFOZXdWYWxpZEN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFOZXdWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFOZXdWYWxpZEN0eHQpIHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dCB4bWxTY2hlbWFOZXdWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFQYXJzZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFQYXJzZSkgeG1sU2NoZW1hUGFyc2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFQYXJzZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hUGFyc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hUGFyc2UpIHhtbFNjaGVtYVBhcnNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hUGFyc2UgeG1sU2NoZW1hUGFyc2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFTQVhQbHVnCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVNBWFBsdWcpIHhtbFNjaGVtYVNBWFBsdWcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFTQVhQbHVnX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFTQVhQbHVnCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVNBWFBsdWcpIHhtbFNjaGVtYVNBWFBsdWdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFTQVhQbHVnIHhtbFNjaGVtYVNBWFBsdWdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFTQVhVbnBsdWcKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hU0FYVW5wbHVnKSB4bWxTY2hlbWFTQVhVbnBsdWcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFTQVhVbnBsdWdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVNBWFVucGx1ZworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFTQVhVbnBsdWcpIHhtbFNjaGVtYVNBWFVucGx1Z19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVNBWFVucGx1ZyB4bWxTY2hlbWFTQVhVbnBsdWdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzKSB4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVNldFBhcnNlckVycm9ycworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMpIHhtbFNjaGVtYVNldFBhcnNlckVycm9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVNldFBhcnNlckVycm9ycyB4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMpIHhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMpIHhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzIHhtbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFTZXRWYWxpZEVycm9ycworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFTZXRWYWxpZEVycm9ycykgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFTZXRWYWxpZEVycm9yc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMpIHhtbFNjaGVtYVNldFZhbGlkRXJyb3JzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zKSB4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVNldFZhbGlkT3B0aW9ucworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMpIHhtbFNjaGVtYVNldFZhbGlkT3B0aW9uc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVNldFZhbGlkT3B0aW9ucyB4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXMKKyN1bmRlZiB4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKSB4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMpIHhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyB4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlKSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSkgeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0KK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0pIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm1fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtKSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zKSB4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9uc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zKSB4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyB4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0KSB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0KSB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hVmFsaWRhdGVEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hVmFsaWRhdGVEb2MpIHhtbFNjaGVtYVZhbGlkYXRlRG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsaWRhdGVEb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVZhbGlkYXRlRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlRG9jKSB4bWxTY2hlbWFWYWxpZGF0ZURvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVZhbGlkYXRlRG9jIHhtbFNjaGVtYVZhbGlkYXRlRG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlRmFjZXQpIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlRmFjZXQpIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0IHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3ApIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcCkgeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hcworI3VuZGVmIHhtbFNjaGVtYVZhbGlkYXRlRmlsZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZUZpbGUpIHhtbFNjaGVtYVZhbGlkYXRlRmlsZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYVZhbGlkYXRlRmlsZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRhdGVGaWxlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlRmlsZSkgeG1sU2NoZW1hVmFsaWRhdGVGaWxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRhdGVGaWxlIHhtbFNjaGVtYVZhbGlkYXRlRmlsZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0KSB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0IF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0KSB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwKSB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3ApIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcCB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3BfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQpIHhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCkgeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0IHhtbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hcworI3VuZGVmIHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQpIHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCkgeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50IHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlKSB4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlKSB4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSB4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzCisjdW5kZWYgeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0pIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsaWRhdGVTdHJlYW1fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtKSB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFWYWx1ZUFwcGVuZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWx1ZUFwcGVuZCkgeG1sU2NoZW1hVmFsdWVBcHBlbmQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFWYWx1ZUFwcGVuZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsdWVBcHBlbmQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hVmFsdWVBcHBlbmQpIHhtbFNjaGVtYVZhbHVlQXBwZW5kX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsdWVBcHBlbmQgeG1sU2NoZW1hVmFsdWVBcHBlbmRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuKSB4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbikgeG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbiB4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjdW5kZWYgeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nKSB4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nKSB4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyB4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxzY2hlbWFzdHlwZXMKKyN1bmRlZiB4bWxTY2hlbWFWYWx1ZUdldE5leHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hVmFsdWVHZXROZXh0KSB4bWxTY2hlbWFWYWx1ZUdldE5leHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTY2hlbWFWYWx1ZUdldE5leHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYVZhbHVlR2V0TmV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFWYWx1ZUdldE5leHQpIHhtbFNjaGVtYVZhbHVlR2V0TmV4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYVZhbHVlR2V0TmV4dCB4bWxTY2hlbWFWYWx1ZUdldE5leHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHNjaGVtYXN0eXBlcworI3VuZGVmIHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlKSB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSkgeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25GcmVlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25GcmVlKSB4bWxTY2hlbWF0cm9uRnJlZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25GcmVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWF0cm9uRnJlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uRnJlZSkgeG1sU2NoZW1hdHJvbkZyZWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWF0cm9uRnJlZSB4bWxTY2hlbWF0cm9uRnJlZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQpIHhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dCkgeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0IHhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0KSB4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCkgeG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dCB4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0KSB4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCkgeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dCB4bWxTY2hlbWF0cm9uTmV3RG9jUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0KSB4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCkgeG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCB4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0KSB4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCkgeG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCB4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCkgeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dCkgeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQgeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25QYXJzZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uUGFyc2UpIHhtbFNjaGVtYXRyb25QYXJzZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25QYXJzZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hdHJvblBhcnNlCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25QYXJzZSkgeG1sU2NoZW1hdHJvblBhcnNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hdHJvblBhcnNlIHhtbFNjaGVtYXRyb25QYXJzZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycykgeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycykgeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMgeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9yc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fc2NoZW1hdHJvbgorI3VuZGVmIHhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYworZXh0ZXJuIF9fdHlwZW9mICh4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MpIHhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNjaGVtYXRyb25WYWxpZGF0ZURvY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jCitleHRlcm4gX190eXBlb2YgKHhtbFNjaGVtYXRyb25WYWxpZGF0ZURvYykgeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jIHhtbFNjaGVtYXRyb25WYWxpZGF0ZURvY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sU2VhcmNoTnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2VhcmNoTnMpIHhtbFNlYXJjaE5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2VhcmNoTnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNlYXJjaE5zCitleHRlcm4gX190eXBlb2YgKHhtbFNlYXJjaE5zKSB4bWxTZWFyY2hOc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNlYXJjaE5zIHhtbFNlYXJjaE5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sU2VhcmNoTnNCeUhyZWYKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2VhcmNoTnNCeUhyZWYpIHhtbFNlYXJjaE5zQnlIcmVmIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2VhcmNoTnNCeUhyZWZfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNlYXJjaE5zQnlIcmVmCitleHRlcm4gX190eXBlb2YgKHhtbFNlYXJjaE5zQnlIcmVmKSB4bWxTZWFyY2hOc0J5SHJlZl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNlYXJjaE5zQnlIcmVmIHhtbFNlYXJjaE5zQnlIcmVmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lKSB4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lKSB4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSB4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sU2V0Q29tcHJlc3NNb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFNldENvbXByZXNzTW9kZSkgeG1sU2V0Q29tcHJlc3NNb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2V0Q29tcHJlc3NNb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTZXRDb21wcmVzc01vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0Q29tcHJlc3NNb2RlKSB4bWxTZXRDb21wcmVzc01vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTZXRDb21wcmVzc01vZGUgeG1sU2V0Q29tcHJlc3NNb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sU2V0RG9jQ29tcHJlc3NNb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFNldERvY0NvbXByZXNzTW9kZSkgeG1sU2V0RG9jQ29tcHJlc3NNb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2V0RG9jQ29tcHJlc3NNb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTZXREb2NDb21wcmVzc01vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0RG9jQ29tcHJlc3NNb2RlKSB4bWxTZXREb2NDb21wcmVzc01vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTZXREb2NDb21wcmVzc01vZGUgeG1sU2V0RG9jQ29tcHJlc3NNb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMpIHhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMpIHhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jIHhtbFNldEVudGl0eVJlZmVyZW5jZUZ1bmNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sSU8KKyN1bmRlZiB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcikgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIpIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2xlZ2FjeQorI3VuZGVmIHhtbFNldEZlYXR1cmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0RmVhdHVyZSkgeG1sU2V0RmVhdHVyZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldEZlYXR1cmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNldEZlYXR1cmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0RmVhdHVyZSkgeG1sU2V0RmVhdHVyZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNldEZlYXR1cmUgeG1sU2V0RmVhdHVyZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lcnJvcgorI3VuZGVmIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0R2VuZXJpY0Vycm9yRnVuYykgeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldEdlbmVyaWNFcnJvckZ1bmNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0R2VuZXJpY0Vycm9yRnVuYykgeG1sU2V0R2VuZXJpY0Vycm9yRnVuY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMgeG1sU2V0R2VuZXJpY0Vycm9yRnVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFNldExpc3REb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0TGlzdERvYykgeG1sU2V0TGlzdERvYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldExpc3REb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNldExpc3REb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0TGlzdERvYykgeG1sU2V0TGlzdERvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNldExpc3REb2MgeG1sU2V0TGlzdERvY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFNldE5zCitleHRlcm4gX190eXBlb2YgKHhtbFNldE5zKSB4bWxTZXROcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldE5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTZXROcworZXh0ZXJuIF9fdHlwZW9mICh4bWxTZXROcykgeG1sU2V0TnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTZXROcyB4bWxTZXROc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sU2V0TnNQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbFNldE5zUHJvcCkgeG1sU2V0TnNQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2V0TnNQcm9wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTZXROc1Byb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0TnNQcm9wKSB4bWxTZXROc1Byb3BfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTZXROc1Byb3AgeG1sU2V0TnNQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFNldFByb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0UHJvcCkgeG1sU2V0UHJvcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldFByb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNldFByb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0UHJvcCkgeG1sU2V0UHJvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNldFByb3AgeG1sU2V0UHJvcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9lcnJvcgorI3VuZGVmIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYykgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYykgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFNldFRyZWVEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0VHJlZURvYykgeG1sU2V0VHJlZURvYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldFRyZWVEb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNldFRyZWVEb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2V0VHJlZURvYykgeG1sU2V0VHJlZURvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNldFRyZWVEb2MgeG1sU2V0VHJlZURvY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFNldHVwUGFyc2VyRm9yQnVmZmVyCitleHRlcm4gX190eXBlb2YgKHhtbFNldHVwUGFyc2VyRm9yQnVmZmVyKSB4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNldHVwUGFyc2VyRm9yQnVmZmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTZXR1cFBhcnNlckZvckJ1ZmZlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTZXR1cFBhcnNlckZvckJ1ZmZlcikgeG1sU2V0dXBQYXJzZXJGb3JCdWZmZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTZXR1cFBhcnNlckZvckJ1ZmZlciB4bWxTZXR1cFBhcnNlckZvckJ1ZmZlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sU2hlbGwKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2hlbGwpIHhtbFNoZWxsIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2hlbGxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNoZWxsCitleHRlcm4gX190eXBlb2YgKHhtbFNoZWxsKSB4bWxTaGVsbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNoZWxsIHhtbFNoZWxsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxTaGVsbEJhc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2hlbGxCYXNlKSB4bWxTaGVsbEJhc2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTaGVsbEJhc2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNoZWxsQmFzZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbEJhc2UpIHhtbFNoZWxsQmFzZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNoZWxsQmFzZSB4bWxTaGVsbEJhc2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxTaGVsbENhdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbENhdCkgeG1sU2hlbGxDYXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTaGVsbENhdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2hlbGxDYXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2hlbGxDYXQpIHhtbFNoZWxsQ2F0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2hlbGxDYXQgeG1sU2hlbGxDYXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbFNoZWxsRGlyCitleHRlcm4gX190eXBlb2YgKHhtbFNoZWxsRGlyKSB4bWxTaGVsbERpciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNoZWxsRGlyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTaGVsbERpcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbERpcikgeG1sU2hlbGxEaXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTaGVsbERpciB4bWxTaGVsbERpcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sU2hlbGxEdQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbER1KSB4bWxTaGVsbER1IF9fYXR0cmlidXRlKChhbGlhcygieG1sU2hlbGxEdV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2hlbGxEdQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbER1KSB4bWxTaGVsbER1X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2hlbGxEdSB4bWxTaGVsbER1X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxTaGVsbExpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2hlbGxMaXN0KSB4bWxTaGVsbExpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTaGVsbExpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNoZWxsTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbExpc3QpIHhtbFNoZWxsTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNoZWxsTGlzdCB4bWxTaGVsbExpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbFNoZWxsTG9hZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbExvYWQpIHhtbFNoZWxsTG9hZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNoZWxsTG9hZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2hlbGxMb2FkCitleHRlcm4gX190eXBlb2YgKHhtbFNoZWxsTG9hZCkgeG1sU2hlbGxMb2FkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2hlbGxMb2FkIHhtbFNoZWxsTG9hZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbFNoZWxsUHJpbnROb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFNoZWxsUHJpbnROb2RlKSB4bWxTaGVsbFByaW50Tm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNoZWxsUHJpbnROb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTaGVsbFByaW50Tm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFByaW50Tm9kZSkgeG1sU2hlbGxQcmludE5vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTaGVsbFByaW50Tm9kZSB4bWxTaGVsbFByaW50Tm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sU2hlbGxQcmludFhQYXRoRXJyb3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2hlbGxQcmludFhQYXRoRXJyb3IpIHhtbFNoZWxsUHJpbnRYUGF0aEVycm9yIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2hlbGxQcmludFhQYXRoRXJyb3JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNoZWxsUHJpbnRYUGF0aEVycm9yCitleHRlcm4gX190eXBlb2YgKHhtbFNoZWxsUHJpbnRYUGF0aEVycm9yKSB4bWxTaGVsbFByaW50WFBhdGhFcnJvcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNoZWxsUHJpbnRYUGF0aEVycm9yIHhtbFNoZWxsUHJpbnRYUGF0aEVycm9yX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fZGVidWdYTUwKKyN1bmRlZiB4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0KSB4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTaGVsbFByaW50WFBhdGhSZXN1bHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQpIHhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNoZWxsUHJpbnRYUGF0aFJlc3VsdCB4bWxTaGVsbFByaW50WFBhdGhSZXN1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbFNoZWxsUHdkCitleHRlcm4gX190eXBlb2YgKHhtbFNoZWxsUHdkKSB4bWxTaGVsbFB3ZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNoZWxsUHdkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTaGVsbFB3ZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFB3ZCkgeG1sU2hlbGxQd2RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTaGVsbFB3ZCB4bWxTaGVsbFB3ZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9kZWJ1Z1hNTAorI3VuZGVmIHhtbFNoZWxsU2F2ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFNhdmUpIHhtbFNoZWxsU2F2ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNoZWxsU2F2ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2hlbGxTYXZlCitleHRlcm4gX190eXBlb2YgKHhtbFNoZWxsU2F2ZSkgeG1sU2hlbGxTYXZlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2hlbGxTYXZlIHhtbFNoZWxsU2F2ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sU2hlbGxWYWxpZGF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFZhbGlkYXRlKSB4bWxTaGVsbFZhbGlkYXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2hlbGxWYWxpZGF0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2hlbGxWYWxpZGF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFZhbGlkYXRlKSB4bWxTaGVsbFZhbGlkYXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2hlbGxWYWxpZGF0ZSB4bWxTaGVsbFZhbGlkYXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX2RlYnVnWE1MCisjdW5kZWYgeG1sU2hlbGxXcml0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFdyaXRlKSB4bWxTaGVsbFdyaXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU2hlbGxXcml0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU2hlbGxXcml0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxTaGVsbFdyaXRlKSB4bWxTaGVsbFdyaXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU2hlbGxXcml0ZSB4bWxTaGVsbFdyaXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFNraXBCbGFua0NoYXJzCitleHRlcm4gX190eXBlb2YgKHhtbFNraXBCbGFua0NoYXJzKSB4bWxTa2lwQmxhbmtDaGFycyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNraXBCbGFua0NoYXJzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTa2lwQmxhbmtDaGFycworZXh0ZXJuIF9fdHlwZW9mICh4bWxTa2lwQmxhbmtDaGFycykgeG1sU2tpcEJsYW5rQ2hhcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTa2lwQmxhbmtDaGFycyB4bWxTa2lwQmxhbmtDaGFyc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQpIHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50CitleHRlcm4gX190eXBlb2YgKHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQpIHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50IHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlcgorI3VuZGVmIHhtbFNwbGl0UU5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3BsaXRRTmFtZSkgeG1sU3BsaXRRTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNwbGl0UU5hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNwbGl0UU5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3BsaXRRTmFtZSkgeG1sU3BsaXRRTmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNwbGl0UU5hbWUgeG1sU3BsaXRRTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFNwbGl0UU5hbWUyCitleHRlcm4gX190eXBlb2YgKHhtbFNwbGl0UU5hbWUyKSB4bWxTcGxpdFFOYW1lMiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNwbGl0UU5hbWUyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTcGxpdFFOYW1lMgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTcGxpdFFOYW1lMikgeG1sU3BsaXRRTmFtZTJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTcGxpdFFOYW1lMiB4bWxTcGxpdFFOYW1lMl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFNwbGl0UU5hbWUzCitleHRlcm4gX190eXBlb2YgKHhtbFNwbGl0UU5hbWUzKSB4bWxTcGxpdFFOYW1lMyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFNwbGl0UU5hbWUzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTcGxpdFFOYW1lMworZXh0ZXJuIF9fdHlwZW9mICh4bWxTcGxpdFFOYW1lMykgeG1sU3BsaXRRTmFtZTNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTcGxpdFFOYW1lMyB4bWxTcGxpdFFOYW1lM19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3ByaW50ZkVsZW1lbnRDb250ZW50KSB4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTcHJpbnRmRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFNwcmludGZFbGVtZW50Q29udGVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQpIHhtbFNwcmludGZFbGVtZW50Q29udGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFNwcmludGZFbGVtZW50Q29udGVudCB4bWxTcHJpbnRmRWxlbWVudENvbnRlbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sU3RvcFBhcnNlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdG9wUGFyc2VyKSB4bWxTdG9wUGFyc2VyIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RvcFBhcnNlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RvcFBhcnNlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdG9wUGFyc2VyKSB4bWxTdG9wUGFyc2VyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RvcFBhcnNlciB4bWxTdG9wUGFyc2VyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxTdHJFcXVhbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJFcXVhbCkgeG1sU3RyRXF1YWwgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJFcXVhbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RyRXF1YWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyRXF1YWwpIHhtbFN0ckVxdWFsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RyRXF1YWwgeG1sU3RyRXF1YWxfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFN0clByaW50ZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJQcmludGYpIHhtbFN0clByaW50ZiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN0clByaW50Zl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RyUHJpbnRmCitleHRlcm4gX190eXBlb2YgKHhtbFN0clByaW50ZikgeG1sU3RyUHJpbnRmX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RyUHJpbnRmIHhtbFN0clByaW50Zl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sU3RyUUVxdWFsCitleHRlcm4gX190eXBlb2YgKHhtbFN0clFFcXVhbCkgeG1sU3RyUUVxdWFsIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyUUVxdWFsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJRRXF1YWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyUUVxdWFsKSB4bWxTdHJRRXF1YWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJRRXF1YWwgeG1sU3RyUUVxdWFsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxTdHJWUHJpbnRmCitleHRlcm4gX190eXBlb2YgKHhtbFN0clZQcmludGYpIHhtbFN0clZQcmludGYgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJWUHJpbnRmX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJWUHJpbnRmCitleHRlcm4gX190eXBlb2YgKHhtbFN0clZQcmludGYpIHhtbFN0clZQcmludGZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJWUHJpbnRmIHhtbFN0clZQcmludGZfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFN0cmNhc2VjbXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyY2FzZWNtcCkgeG1sU3RyY2FzZWNtcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN0cmNhc2VjbXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cmNhc2VjbXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyY2FzZWNtcCkgeG1sU3RyY2FzZWNtcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cmNhc2VjbXAgeG1sU3RyY2FzZWNtcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sU3RyY2FzZXN0cgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJjYXNlc3RyKSB4bWxTdHJjYXNlc3RyIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyY2FzZXN0cl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RyY2FzZXN0cgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJjYXNlc3RyKSB4bWxTdHJjYXNlc3RyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RyY2FzZXN0ciB4bWxTdHJjYXNlc3RyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxTdHJjYXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyY2F0KSB4bWxTdHJjYXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJjYXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cmNhdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJjYXQpIHhtbFN0cmNhdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cmNhdCB4bWxTdHJjYXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFN0cmNocgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJjaHIpIHhtbFN0cmNociBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN0cmNocl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RyY2hyCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmNocikgeG1sU3RyY2hyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RyY2hyIHhtbFN0cmNocl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sU3RyY21wCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmNtcCkgeG1sU3RyY21wIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyY21wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJjbXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyY21wKSB4bWxTdHJjbXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJjbXAgeG1sU3RyY21wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxTdHJkdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyZHVwKSB4bWxTdHJkdXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJkdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cmR1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJkdXApIHhtbFN0cmR1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cmR1cCB4bWxTdHJkdXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXR0ZXJuCisjdW5kZWYgeG1sU3RyZWFtUG9wCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmVhbVBvcCkgeG1sU3RyZWFtUG9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyZWFtUG9wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJlYW1Qb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyZWFtUG9wKSB4bWxTdHJlYW1Qb3BfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJlYW1Qb3AgeG1sU3RyZWFtUG9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXR0ZXJuCisjdW5kZWYgeG1sU3RyZWFtUHVzaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJlYW1QdXNoKSB4bWxTdHJlYW1QdXNoIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyZWFtUHVzaF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RyZWFtUHVzaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJlYW1QdXNoKSB4bWxTdHJlYW1QdXNoX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RyZWFtUHVzaCB4bWxTdHJlYW1QdXNoX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXR0ZXJuCisjdW5kZWYgeG1sU3RyZWFtUHVzaEF0dHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyZWFtUHVzaEF0dHIpIHhtbFN0cmVhbVB1c2hBdHRyIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyZWFtUHVzaEF0dHJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cmVhbVB1c2hBdHRyCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmVhbVB1c2hBdHRyKSB4bWxTdHJlYW1QdXNoQXR0cl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cmVhbVB1c2hBdHRyIHhtbFN0cmVhbVB1c2hBdHRyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXR0ZXJuCisjdW5kZWYgeG1sU3RyZWFtUHVzaE5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyZWFtUHVzaE5vZGUpIHhtbFN0cmVhbVB1c2hOb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyZWFtUHVzaE5vZGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cmVhbVB1c2hOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmVhbVB1c2hOb2RlKSB4bWxTdHJlYW1QdXNoTm9kZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cmVhbVB1c2hOb2RlIHhtbFN0cmVhbVB1c2hOb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV9wYXR0ZXJuCisjdW5kZWYgeG1sU3RyZWFtV2FudHNBbnlOb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmVhbVdhbnRzQW55Tm9kZSkgeG1sU3RyZWFtV2FudHNBbnlOb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyZWFtV2FudHNBbnlOb2RlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJlYW1XYW50c0FueU5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyZWFtV2FudHNBbnlOb2RlKSB4bWxTdHJlYW1XYW50c0FueU5vZGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJlYW1XYW50c0FueU5vZGUgeG1sU3RyZWFtV2FudHNBbnlOb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbFN0cmluZ0N1cnJlbnRDaGFyCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmluZ0N1cnJlbnRDaGFyKSB4bWxTdHJpbmdDdXJyZW50Q2hhciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN0cmluZ0N1cnJlbnRDaGFyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJpbmdDdXJyZW50Q2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJpbmdDdXJyZW50Q2hhcikgeG1sU3RyaW5nQ3VycmVudENoYXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJpbmdDdXJyZW50Q2hhciB4bWxTdHJpbmdDdXJyZW50Q2hhcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VyCisjdW5kZWYgeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMpIHhtbFN0cmluZ0RlY29kZUVudGl0aWVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyaW5nRGVjb2RlRW50aXRpZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cmluZ0RlY29kZUVudGl0aWVzCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmluZ0RlY29kZUVudGl0aWVzKSB4bWxTdHJpbmdEZWNvZGVFbnRpdGllc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cmluZ0RlY29kZUVudGl0aWVzIHhtbFN0cmluZ0RlY29kZUVudGl0aWVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sU3RyaW5nR2V0Tm9kZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyaW5nR2V0Tm9kZUxpc3QpIHhtbFN0cmluZ0dldE5vZGVMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RyaW5nR2V0Tm9kZUxpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cmluZ0dldE5vZGVMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbFN0cmluZ0dldE5vZGVMaXN0KSB4bWxTdHJpbmdHZXROb2RlTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cmluZ0dldE5vZGVMaXN0IHhtbFN0cmluZ0dldE5vZGVMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXIKKyN1bmRlZiB4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcworZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcykgeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMpIHhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMgeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxTdHJpbmdMZW5HZXROb2RlTGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJpbmdMZW5HZXROb2RlTGlzdCkgeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJpbmdMZW5HZXROb2RlTGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QpIHhtbFN0cmluZ0xlbkdldE5vZGVMaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QgeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFN0cmxlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJsZW4pIHhtbFN0cmxlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN0cmxlbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RybGVuCitleHRlcm4gX190eXBlb2YgKHhtbFN0cmxlbikgeG1sU3RybGVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RybGVuIHhtbFN0cmxlbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sU3RybmNhc2VjbXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RybmNhc2VjbXApIHhtbFN0cm5jYXNlY21wIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RybmNhc2VjbXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cm5jYXNlY21wCitleHRlcm4gX190eXBlb2YgKHhtbFN0cm5jYXNlY21wKSB4bWxTdHJuY2FzZWNtcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cm5jYXNlY21wIHhtbFN0cm5jYXNlY21wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxTdHJuY2F0CitleHRlcm4gX190eXBlb2YgKHhtbFN0cm5jYXQpIHhtbFN0cm5jYXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJuY2F0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJuY2F0CitleHRlcm4gX190eXBlb2YgKHhtbFN0cm5jYXQpIHhtbFN0cm5jYXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJuY2F0IHhtbFN0cm5jYXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFN0cm5jYXROZXcKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RybmNhdE5ldykgeG1sU3RybmNhdE5ldyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN0cm5jYXROZXdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFN0cm5jYXROZXcKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3RybmNhdE5ldykgeG1sU3RybmNhdE5ld19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFN0cm5jYXROZXcgeG1sU3RybmNhdE5ld19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sU3RybmNtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJuY21wKSB4bWxTdHJuY21wIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3RybmNtcF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3RybmNtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJuY21wKSB4bWxTdHJuY21wX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3RybmNtcCB4bWxTdHJuY21wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxTdHJuZHVwCitleHRlcm4gX190eXBlb2YgKHhtbFN0cm5kdXApIHhtbFN0cm5kdXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdHJuZHVwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJuZHVwCitleHRlcm4gX190eXBlb2YgKHhtbFN0cm5kdXApIHhtbFN0cm5kdXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJuZHVwIHhtbFN0cm5kdXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFN0cnN0cgorZXh0ZXJuIF9fdHlwZW9mICh4bWxTdHJzdHIpIHhtbFN0cnN0ciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN0cnN0cl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3Ryc3RyCitleHRlcm4gX190eXBlb2YgKHhtbFN0cnN0cikgeG1sU3Ryc3RyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3Ryc3RyIHhtbFN0cnN0cl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sU3Ryc3ViCitleHRlcm4gX190eXBlb2YgKHhtbFN0cnN1YikgeG1sU3Ryc3ViIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3Ryc3ViX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdHJzdWIKK2V4dGVybiBfX3R5cGVvZiAoeG1sU3Ryc3ViKSB4bWxTdHJzdWJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdHJzdWIgeG1sU3Ryc3ViX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQpIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQpIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0IHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3BhcnNlckludGVybmFscworI3VuZGVmIHhtbFN3aXRjaEVuY29kaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFN3aXRjaEVuY29kaW5nKSB4bWxTd2l0Y2hFbmNvZGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFN3aXRjaEVuY29kaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTd2l0Y2hFbmNvZGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxTd2l0Y2hFbmNvZGluZykgeG1sU3dpdGNoRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTd2l0Y2hFbmNvZGluZyB4bWxTd2l0Y2hFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fcGFyc2VySW50ZXJuYWxzCisjdW5kZWYgeG1sU3dpdGNoSW5wdXRFbmNvZGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxTd2l0Y2hJbnB1dEVuY29kaW5nKSB4bWxTd2l0Y2hJbnB1dEVuY29kaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sU3dpdGNoSW5wdXRFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sU3dpdGNoSW5wdXRFbmNvZGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxTd2l0Y2hJbnB1dEVuY29kaW5nKSB4bWxTd2l0Y2hJbnB1dEVuY29kaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sU3dpdGNoSW5wdXRFbmNvZGluZyB4bWxTd2l0Y2hJbnB1dEVuY29kaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV9wYXJzZXJJbnRlcm5hbHMKKyN1bmRlZiB4bWxTd2l0Y2hUb0VuY29kaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFN3aXRjaFRvRW5jb2RpbmcpIHhtbFN3aXRjaFRvRW5jb2RpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxTd2l0Y2hUb0VuY29kaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxTd2l0Y2hUb0VuY29kaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFN3aXRjaFRvRW5jb2RpbmcpIHhtbFN3aXRjaFRvRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxTd2l0Y2hUb0VuY29kaW5nIHhtbFN3aXRjaFRvRW5jb2RpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxUZXh0Q29uY2F0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRDb25jYXQpIHhtbFRleHRDb25jYXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0Q29uY2F0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0Q29uY2F0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRDb25jYXQpIHhtbFRleHRDb25jYXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0Q29uY2F0IHhtbFRleHRDb25jYXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxUZXh0TWVyZ2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dE1lcmdlKSB4bWxUZXh0TWVyZ2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0TWVyZ2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRNZXJnZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0TWVyZ2UpIHhtbFRleHRNZXJnZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRNZXJnZSB4bWxUZXh0TWVyZ2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQpIHhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudCkgeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50IHhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyQmFzZVVyaQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQmFzZVVyaSkgeG1sVGV4dFJlYWRlckJhc2VVcmkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyQmFzZVVyaV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckJhc2VVcmkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckJhc2VVcmkpIHhtbFRleHRSZWFkZXJCYXNlVXJpX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckJhc2VVcmkgeG1sVGV4dFJlYWRlckJhc2VVcmlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkKSB4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkKSB4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZCB4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJDbG9zZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQ2xvc2UpIHhtbFRleHRSZWFkZXJDbG9zZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJDbG9zZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckNsb3NlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDbG9zZSkgeG1sVGV4dFJlYWRlckNsb3NlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckNsb3NlIHhtbFRleHRSZWFkZXJDbG9zZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkpIHhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkpIHhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpIHhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmcpIHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nKSB4bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nIHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUpIHhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZSkgeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lIHhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdE5hbWUpIHhtbFRleHRSZWFkZXJDb25zdE5hbWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyQ29uc3ROYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdE5hbWUpIHhtbFRleHRSZWFkZXJDb25zdE5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lIHhtbFRleHRSZWFkZXJDb25zdE5hbWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSkgeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpKSB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmkgeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJDb25zdFByZWZpeAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgpIHhtbFRleHRSZWFkZXJDb25zdFByZWZpeCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJDb25zdFByZWZpeF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdFByZWZpeCkgeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4IHhtbFRleHRSZWFkZXJDb25zdFByZWZpeF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nKSB4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJDb25zdFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcpIHhtbFRleHRSZWFkZXJDb25zdFN0cmluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJDb25zdFN0cmluZyB4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUpIHhtbFRleHRSZWFkZXJDb25zdFZhbHVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckNvbnN0VmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJDb25zdFZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdFZhbHVlKSB4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJDb25zdFZhbHVlIHhtbFRleHRSZWFkZXJDb25zdFZhbHVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJDb25zdFhtbExhbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZykgeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJDb25zdFhtbExhbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJDb25zdFhtbExhbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZykgeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJDb25zdFhtbExhbmcgeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24pIHhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24pIHhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uIHhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckN1cnJlbnREb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckN1cnJlbnREb2MpIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckN1cnJlbnREb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDdXJyZW50RG9jKSB4bWxUZXh0UmVhZGVyQ3VycmVudERvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUpIHhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZSkgeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlIHhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyRGVwdGgKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckRlcHRoKSB4bWxUZXh0UmVhZGVyRGVwdGggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyRGVwdGhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJEZXB0aAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyRGVwdGgpIHhtbFRleHRSZWFkZXJEZXB0aF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJEZXB0aCB4bWxUZXh0UmVhZGVyRGVwdGhfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckV4cGFuZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyRXhwYW5kKSB4bWxUZXh0UmVhZGVyRXhwYW5kIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckV4cGFuZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckV4cGFuZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyRXhwYW5kKSB4bWxUZXh0UmVhZGVyRXhwYW5kX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckV4cGFuZCB4bWxUZXh0UmVhZGVyRXhwYW5kX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSkgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSkgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vKSB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8pIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOb19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcykgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zKSB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlcikgeG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlcikgeG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIgeG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIpIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIpIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIpIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyKSB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wKSB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCkgeG1sVGV4dFJlYWRlckdldFBhcnNlclByb3BfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXIpIHhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXIpIHhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyIHhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMpIHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzKSB4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzIHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJIYXNWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVySGFzVmFsdWUpIHhtbFRleHRSZWFkZXJIYXNWYWx1ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJIYXNWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckhhc1ZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJIYXNWYWx1ZSkgeG1sVGV4dFJlYWRlckhhc1ZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckhhc1ZhbHVlIHhtbFRleHRSZWFkZXJIYXNWYWx1ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVySXNEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJJc0RlZmF1bHQpIHhtbFRleHRSZWFkZXJJc0RlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVySXNEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVySXNEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJJc0RlZmF1bHQpIHhtbFRleHRSZWFkZXJJc0RlZmF1bHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVySXNEZWZhdWx0IHhtbFRleHRSZWFkZXJJc0RlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCkgeG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50KSB4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQgeG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCkgeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2xfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCkgeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2wgeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVySXNWYWxpZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVySXNWYWxpZCkgeG1sVGV4dFJlYWRlcklzVmFsaWQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVySXNWYWxpZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlcklzVmFsaWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlcklzVmFsaWQpIHhtbFRleHRSZWFkZXJJc1ZhbGlkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlcklzVmFsaWQgeG1sVGV4dFJlYWRlcklzVmFsaWRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckxvY2FsTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTG9jYWxOYW1lKSB4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckxvY2FsTmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckxvY2FsTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTG9jYWxOYW1lKSB4bWxUZXh0UmVhZGVyTG9jYWxOYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckxvY2FsTmFtZSB4bWxUZXh0UmVhZGVyTG9jYWxOYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkpIHhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSkgeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJIHhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyKSB4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIpIHhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlciB4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlKSB4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlKSB4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZSB4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSkgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSkgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8KK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vKSB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8pIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOb19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm9fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcykgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zKSB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50KSB4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCkgeG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudCB4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlKSB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUpIHhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZSB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUpIHhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlKSB4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlIHhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJOYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJOYW1lKSB4bWxUZXh0UmVhZGVyTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJOYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTmFtZSkgeG1sVGV4dFJlYWRlck5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyTmFtZSB4bWxUZXh0UmVhZGVyTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkpIHhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkpIHhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpIHhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlck5leHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck5leHQpIHhtbFRleHRSZWFkZXJOZXh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlck5leHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJOZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJOZXh0KSB4bWxUZXh0UmVhZGVyTmV4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJOZXh0IHhtbFRleHRSZWFkZXJOZXh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJOZXh0U2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmcpIHhtbFRleHRSZWFkZXJOZXh0U2libGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJOZXh0U2libGluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJOZXh0U2libGluZykgeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nIHhtbFRleHRSZWFkZXJOZXh0U2libGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyTm9kZVR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck5vZGVUeXBlKSB4bWxUZXh0UmVhZGVyTm9kZVR5cGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyTm9kZVR5cGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJOb2RlVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyTm9kZVR5cGUpIHhtbFRleHRSZWFkZXJOb2RlVHlwZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJOb2RlVHlwZSB4bWxUZXh0UmVhZGVyTm9kZVR5cGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24pIHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uKSB4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJQcmVmaXgKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclByZWZpeCkgeG1sVGV4dFJlYWRlclByZWZpeCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJQcmVmaXhfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJQcmVmaXgKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclByZWZpeCkgeG1sVGV4dFJlYWRlclByZWZpeF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJQcmVmaXggeG1sVGV4dFJlYWRlclByZWZpeF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyUHJlc2VydmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclByZXNlcnZlKSB4bWxUZXh0UmVhZGVyUHJlc2VydmUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyUHJlc2VydmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUHJlc2VydmUpIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZSB4bWxUZXh0UmVhZGVyUHJlc2VydmVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4pIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4pIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm5fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlclF1b3RlQ2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUXVvdGVDaGFyKSB4bWxUZXh0UmVhZGVyUXVvdGVDaGFyIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlclF1b3RlQ2hhcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlclF1b3RlQ2hhcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUXVvdGVDaGFyKSB4bWxUZXh0UmVhZGVyUXVvdGVDaGFyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlclF1b3RlQ2hhciB4bWxUZXh0UmVhZGVyUXVvdGVDaGFyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJSZWFkCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJSZWFkKSB4bWxUZXh0UmVhZGVyUmVhZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJSZWFkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyUmVhZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUmVhZCkgeG1sVGV4dFJlYWRlclJlYWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyUmVhZCB4bWxUZXh0UmVhZGVyUmVhZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUpIHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUpIHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlIHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCkgeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbCkgeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwgeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sKSB4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sKSB4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCB4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJSZWFkU3RhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclJlYWRTdGF0ZSkgeG1sVGV4dFJlYWRlclJlYWRTdGF0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJSZWFkU3RhdGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJSZWFkU3RhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclJlYWRTdGF0ZSkgeG1sVGV4dFJlYWRlclJlYWRTdGF0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJSZWFkU3RhdGUgeG1sVGV4dFJlYWRlclJlYWRTdGF0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyUmVhZFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUmVhZFN0cmluZykgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyUmVhZFN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcpIHhtbFRleHRSZWFkZXJSZWFkU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSkgeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEpIHhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEgeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUpIHhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUpIHhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIHhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlKSB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUpIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQpIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHQpIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0IHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUN0eHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyKSB4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyKSB4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciB4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wKSB4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCkgeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3BfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCB4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJTZXRTY2hlbWEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclNldFNjaGVtYSkgeG1sVGV4dFJlYWRlclNldFNjaGVtYSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJTZXRTY2hlbWFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJTZXRTY2hlbWEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclNldFNjaGVtYSkgeG1sVGV4dFJlYWRlclNldFNjaGVtYV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJTZXRTY2hlbWEgeG1sVGV4dFJlYWRlclNldFNjaGVtYV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcikgeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIpIHhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIgeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlclNldHVwCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJTZXR1cCkgeG1sVGV4dFJlYWRlclNldHVwIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlclNldHVwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyU2V0dXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclNldHVwKSB4bWxUZXh0UmVhZGVyU2V0dXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyU2V0dXAgeG1sVGV4dFJlYWRlclNldHVwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHJlYWRlcgorI3VuZGVmIHhtbFRleHRSZWFkZXJTdGFuZGFsb25lCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJTdGFuZGFsb25lKSB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRSZWFkZXJTdGFuZGFsb25lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSkgeG1sVGV4dFJlYWRlclN0YW5kYWxvbmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWxyZWFkZXIKKyN1bmRlZiB4bWxUZXh0UmVhZGVyVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclZhbHVlKSB4bWxUZXh0UmVhZGVyVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0UmVhZGVyVmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0UmVhZGVyVmFsdWUpIHhtbFRleHRSZWFkZXJWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJWYWx1ZSB4bWxUZXh0UmVhZGVyVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1scmVhZGVyCisjdW5kZWYgeG1sVGV4dFJlYWRlclhtbExhbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFJlYWRlclhtbExhbmcpIHhtbFRleHRSZWFkZXJYbWxMYW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFJlYWRlclhtbExhbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRSZWFkZXJYbWxMYW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRSZWFkZXJYbWxMYW5nKSB4bWxUZXh0UmVhZGVyWG1sTGFuZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRSZWFkZXJYbWxMYW5nIHhtbFRleHRSZWFkZXJYbWxMYW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSkgeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSkgeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUgeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyRW5kQ0RBVEEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZENEQVRBKSB4bWxUZXh0V3JpdGVyRW5kQ0RBVEEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyRW5kQ0RBVEFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmRDREFUQQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyRW5kQ0RBVEEpIHhtbFRleHRXcml0ZXJFbmRDREFUQV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmRDREFUQSB4bWxUZXh0V3JpdGVyRW5kQ0RBVEFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlckVuZENvbW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZENvbW1lbnQpIHhtbFRleHRXcml0ZXJFbmRDb21tZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlckVuZENvbW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmRDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJFbmRDb21tZW50KSB4bWxUZXh0V3JpdGVyRW5kQ29tbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmRDb21tZW50IHhtbFRleHRXcml0ZXJFbmRDb21tZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJFbmREVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZERURCkgeG1sVGV4dFdyaXRlckVuZERURCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJFbmREVERfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmREVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZERURCkgeG1sVGV4dFdyaXRlckVuZERURF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmREVEQgeG1sVGV4dFdyaXRlckVuZERURF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCkgeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QpIHhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QgeG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQpIHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50KSB4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50IHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSkgeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJFbmREVERFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSkgeG1sVGV4dFdyaXRlckVuZERUREVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkgeG1sVGV4dFdyaXRlckVuZERUREVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZERvY3VtZW50KSB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmREb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQpIHhtbFRleHRXcml0ZXJFbmREb2N1bWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmREb2N1bWVudCB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQpIHhtbFRleHRXcml0ZXJFbmRFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlckVuZEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJFbmRFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KSB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJFbmRFbGVtZW50IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJFbmRQSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyRW5kUEkpIHhtbFRleHRXcml0ZXJFbmRQSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJFbmRQSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlckVuZFBJCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJFbmRQSSkgeG1sVGV4dFdyaXRlckVuZFBJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlckVuZFBJIHhtbFRleHRXcml0ZXJFbmRQSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyRmx1c2gKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckZsdXNoKSB4bWxUZXh0V3JpdGVyRmx1c2ggX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyRmx1c2hfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJGbHVzaAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyRmx1c2gpIHhtbFRleHRXcml0ZXJGbHVzaF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJGbHVzaCB4bWxUZXh0V3JpdGVyRmx1c2hfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCkgeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50KSB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQgeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJTZXRJbmRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlclNldEluZGVudCkgeG1sVGV4dFdyaXRlclNldEluZGVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJTZXRJbmRlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJTZXRJbmRlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlclNldEluZGVudCkgeG1sVGV4dFdyaXRlclNldEluZGVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJTZXRJbmRlbnQgeG1sVGV4dFdyaXRlclNldEluZGVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmcpIHhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmcpIHhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIHhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZSkgeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlKSB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUgeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TKSB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUykgeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOU19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyU3RhcnRDREFUQQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSkgeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyU3RhcnRDREFUQV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEpIHhtbFRleHRXcml0ZXJTdGFydENEQVRBX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEgeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50KSB4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50KSB4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCB4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJTdGFydERURAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnREVEQpIHhtbFRleHRXcml0ZXJTdGFydERURCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJTdGFydERURF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RFRECitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTdGFydERURCkgeG1sVGV4dFdyaXRlclN0YXJ0RFREX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0RFREIHhtbFRleHRXcml0ZXJTdGFydERURF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3QpIHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3QpIHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0IHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50KSB4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50KSB4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCB4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkpIHhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eSkgeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5IHhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCkgeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQpIHhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQgeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMpIHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROU19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUykgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TIHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROU19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyU3RhcnRQSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyU3RhcnRQSSkgeG1sVGV4dFdyaXRlclN0YXJ0UEkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyU3RhcnRQSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlclN0YXJ0UEkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlclN0YXJ0UEkpIHhtbFRleHRXcml0ZXJTdGFydFBJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlclN0YXJ0UEkgeG1sVGV4dFdyaXRlclN0YXJ0UElfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSkgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlKSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TKSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUykgeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOU19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0KSB4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQpIHhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NCB4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUJpbkhleCkgeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlQmluSGV4X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4KSB4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXhfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXggeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUNEQVRBCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUNEQVRBKSB4bWxUZXh0V3JpdGVyV3JpdGVDREFUQSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZUNEQVRBX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVDREFUQQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVDREFUQSkgeG1sVGV4dFdyaXRlcldyaXRlQ0RBVEFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVDREFUQSB4bWxUZXh0V3JpdGVyV3JpdGVDREFUQV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50IHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRFRECitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURURCkgeG1sVGV4dFdyaXRlcldyaXRlRFREIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRFREX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRFREKSB4bWxUZXh0V3JpdGVyV3JpdGVEVERfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVEVEQgeG1sVGV4dFdyaXRlcldyaXRlRFREX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCkgeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCkgeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QgeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50IHhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURUREVudGl0eSkgeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5KSB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkgeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5KSB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSkgeG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMpIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMpIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHkpIHhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHlfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5KSB4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5IHhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uKSB4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbikgeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiB4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50IHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUykgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TKSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOUykgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGVOU19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlMgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEEpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBKSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudCkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudCkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREKSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0KSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0KSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREQXR0bGlzdCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHlfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlMpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROU19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUykgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROU19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSSkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEkgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UElfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdykgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3KSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXcgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmcpIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZykgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVQSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVQSSkgeG1sVGV4dFdyaXRlcldyaXRlUEkgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVQSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlUEkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlUEkpIHhtbFRleHRXcml0ZXJXcml0ZVBJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlUEkgeG1sVGV4dFdyaXRlcldyaXRlUElfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlUmF3CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVJhdykgeG1sVGV4dFdyaXRlcldyaXRlUmF3IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlUmF3X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVSYXcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlUmF3KSB4bWxUZXh0V3JpdGVyV3JpdGVSYXdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVSYXcgeG1sVGV4dFdyaXRlcldyaXRlUmF3X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4pIHhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbikgeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIHhtbFRleHRXcml0ZXJXcml0ZVJhd0xlbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nKSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcpIHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZyB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlKSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlKSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOU19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUykgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOU19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBKSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEEpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50KSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q29tbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCkgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCkgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdCkgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50KSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eSkgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCkgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TKSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROU19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TKSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUyB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3htbHdyaXRlcgorI3VuZGVmIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJCitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSkgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx3cml0ZXIKKyN1bmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3CitleHRlcm4gX190eXBlb2YgKHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcpIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feG1sd3JpdGVyCisjdW5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nKSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nKSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZyB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZSkgeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUpIHhtbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUgeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZSkgeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZEZWZhdWx0QnVmZmVyU2l6ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUpIHhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUgeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmRGVyZWdpc3Rlck5vZGVEZWZhdWx0KSB4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQpIHhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdCB4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlKSB4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUpIHhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSB4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSkgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUpIHhtbFRockRlZkdldFdhcm5pbmdzRGVmYXVsdFZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0CitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZkluZGVudFRyZWVPdXRwdXQpIHhtbFRockRlZkluZGVudFRyZWVPdXRwdXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0CitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZkluZGVudFRyZWVPdXRwdXQpIHhtbFRockRlZkluZGVudFRyZWVPdXRwdXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0IHhtbFRockRlZkluZGVudFRyZWVPdXRwdXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUpIHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUpIHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZLZWVwQmxhbmtzRGVmYXVsdFZhbHVlIHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSkgeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUpIHhtbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUgeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUpIHhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUpIHhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIHhtbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0KSB4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQpIHhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCB4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMpIHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMpIHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzIHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCkgeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQpIHhtbFRockRlZlBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQgeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSkgeG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUpIHhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUgeG1sVGhyRGVmUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQpIHhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0CitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQpIHhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0IHhtbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzKSB4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRockRlZlNhdmVOb0VtcHR5VGFncworZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MpIHhtbFRockRlZlNhdmVOb0VtcHR5VGFnc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRockRlZlNhdmVOb0VtcHR5VGFncyB4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMpIHhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMpIHhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jIHhtbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMpIHhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMpIHhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jIHhtbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVGhyRGVmU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlKSB4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUpIHhtbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSB4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX2dsb2JhbHMKKyN1bmRlZiB4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmcpIHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmcpIHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxUaHJEZWZUcmVlSW5kZW50U3RyaW5nIHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNBZWdlYW5OdW1iZXJzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQWVnZWFuTnVtYmVycykgeG1sVUNTSXNBZWdlYW5OdW1iZXJzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNBZWdlYW5OdW1iZXJzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNBZWdlYW5OdW1iZXJzKSB4bWxVQ1NJc0FlZ2Vhbk51bWJlcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0FlZ2Vhbk51bWJlcnMgeG1sVUNTSXNBZWdlYW5OdW1iZXJzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMpIHhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zKSB4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3Jtc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zIHhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNBcmFiaWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNBcmFiaWMpIHhtbFVDU0lzQXJhYmljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNBcmFiaWNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQXJhYmljCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQXJhYmljKSB4bWxVQ1NJc0FyYWJpY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQXJhYmljIHhtbFVDU0lzQXJhYmljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0EKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0EpIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0FfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBKSB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IpIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCKSB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNBcm1lbmlhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0FybWVuaWFuKSB4bWxVQ1NJc0FybWVuaWFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNBcm1lbmlhbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNBcm1lbmlhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0FybWVuaWFuKSB4bWxVQ1NJc0FybWVuaWFuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNBcm1lbmlhbiB4bWxVQ1NJc0FybWVuaWFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNBcnJvd3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNBcnJvd3MpIHhtbFVDU0lzQXJyb3dzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNBcnJvd3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQXJyb3dzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQXJyb3dzKSB4bWxVQ1NJc0Fycm93c19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQXJyb3dzIHhtbFVDU0lzQXJyb3dzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCYXNpY0xhdGluCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQmFzaWNMYXRpbikgeG1sVUNTSXNCYXNpY0xhdGluIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCYXNpY0xhdGluX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0Jhc2ljTGF0aW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNCYXNpY0xhdGluKSB4bWxVQ1NJc0Jhc2ljTGF0aW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0Jhc2ljTGF0aW4geG1sVUNTSXNCYXNpY0xhdGluX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCZW5nYWxpCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQmVuZ2FsaSkgeG1sVUNTSXNCZW5nYWxpIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCZW5nYWxpX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0JlbmdhbGkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNCZW5nYWxpKSB4bWxVQ1NJc0JlbmdhbGlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0JlbmdhbGkgeG1sVUNTSXNCZW5nYWxpX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCbG9jaworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0Jsb2NrKSB4bWxVQ1NJc0Jsb2NrIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCbG9ja19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNCbG9jaworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0Jsb2NrKSB4bWxVQ1NJc0Jsb2NrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNCbG9jayB4bWxVQ1NJc0Jsb2NrX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCbG9ja0VsZW1lbnRzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQmxvY2tFbGVtZW50cykgeG1sVUNTSXNCbG9ja0VsZW1lbnRzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCbG9ja0VsZW1lbnRzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0Jsb2NrRWxlbWVudHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNCbG9ja0VsZW1lbnRzKSB4bWxVQ1NJc0Jsb2NrRWxlbWVudHNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0Jsb2NrRWxlbWVudHMgeG1sVUNTSXNCbG9ja0VsZW1lbnRzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCb3BvbW9mbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0JvcG9tb2ZvKSB4bWxVQ1NJc0JvcG9tb2ZvIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCb3BvbW9mb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNCb3BvbW9mbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0JvcG9tb2ZvKSB4bWxVQ1NJc0JvcG9tb2ZvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNCb3BvbW9mbyB4bWxVQ1NJc0JvcG9tb2ZvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZCkgeG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkKSB4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQgeG1sVUNTSXNCb3BvbW9mb0V4dGVuZGVkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCb3hEcmF3aW5nCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQm94RHJhd2luZykgeG1sVUNTSXNCb3hEcmF3aW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCb3hEcmF3aW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0JveERyYXdpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNCb3hEcmF3aW5nKSB4bWxVQ1NJc0JveERyYXdpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0JveERyYXdpbmcgeG1sVUNTSXNCb3hEcmF3aW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCcmFpbGxlUGF0dGVybnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNCcmFpbGxlUGF0dGVybnMpIHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCcmFpbGxlUGF0dGVybnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zKSB4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJuc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zIHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCdWhpZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0J1aGlkKSB4bWxVQ1NJc0J1aGlkIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCdWhpZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNCdWhpZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0J1aGlkKSB4bWxVQ1NJc0J1aGlkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNCdWhpZCB4bWxVQ1NJc0J1aGlkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzKSB4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9sc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzKSB4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9scyB4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSkgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5KSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHkgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMpIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zKSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3Jtc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzKSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzKSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocyB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQpIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50KSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50IHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQpIHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50KSB4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50IHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24pIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uKSB4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzKSB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzKSB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBocyB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEpIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BKSB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIpIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CKSB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXQpIHhtbFVDU0lzQ2F0IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ2F0CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0KSB4bWxVQ1NJc0NhdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ2F0IHhtbFVDU0lzQ2F0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRDCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0QykgeG1sVUNTSXNDYXRDIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRDX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NhdEMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXRDKSB4bWxVQ1NJc0NhdENfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NhdEMgeG1sVUNTSXNDYXRDX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRDYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENjKSB4bWxVQ1NJc0NhdENjIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRDY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRDYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENjKSB4bWxVQ1NJc0NhdENjX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRDYyB4bWxVQ1NJc0NhdENjX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRDZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENmKSB4bWxVQ1NJc0NhdENmIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRDZl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRDZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENmKSB4bWxVQ1NJc0NhdENmX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRDZiB4bWxVQ1NJc0NhdENmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRDbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENvKSB4bWxVQ1NJc0NhdENvIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRDb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRDbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENvKSB4bWxVQ1NJc0NhdENvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRDbyB4bWxVQ1NJc0NhdENvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRDcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENzKSB4bWxVQ1NJc0NhdENzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRDc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRDcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdENzKSB4bWxVQ1NJc0NhdENzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRDcyB4bWxVQ1NJc0NhdENzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRMCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0TCkgeG1sVUNTSXNDYXRMIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRMX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NhdEwKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXRMKSB4bWxVQ1NJc0NhdExfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NhdEwgeG1sVUNTSXNDYXRMX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRMbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdExsKSB4bWxVQ1NJc0NhdExsIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRMbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRMbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdExsKSB4bWxVQ1NJc0NhdExsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRMbCB4bWxVQ1NJc0NhdExsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRMbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdExtKSB4bWxVQ1NJc0NhdExtIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRMbV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRMbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdExtKSB4bWxVQ1NJc0NhdExtX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRMbSB4bWxVQ1NJc0NhdExtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRMbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdExvKSB4bWxVQ1NJc0NhdExvIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRMb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRMbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdExvKSB4bWxVQ1NJc0NhdExvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRMbyB4bWxVQ1NJc0NhdExvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRMdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdEx0KSB4bWxVQ1NJc0NhdEx0IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRMdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRMdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdEx0KSB4bWxVQ1NJc0NhdEx0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRMdCB4bWxVQ1NJc0NhdEx0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRMdQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdEx1KSB4bWxVQ1NJc0NhdEx1IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRMdV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRMdQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdEx1KSB4bWxVQ1NJc0NhdEx1X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRMdSB4bWxVQ1NJc0NhdEx1X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRNCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0TSkgeG1sVUNTSXNDYXRNIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRNX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NhdE0KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXRNKSB4bWxVQ1NJc0NhdE1fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NhdE0geG1sVUNTSXNDYXRNX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRNYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE1jKSB4bWxVQ1NJc0NhdE1jIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRNY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRNYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE1jKSB4bWxVQ1NJc0NhdE1jX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRNYyB4bWxVQ1NJc0NhdE1jX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRNZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE1lKSB4bWxVQ1NJc0NhdE1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRNZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRNZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE1lKSB4bWxVQ1NJc0NhdE1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRNZSB4bWxVQ1NJc0NhdE1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRNbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE1uKSB4bWxVQ1NJc0NhdE1uIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRNbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRNbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE1uKSB4bWxVQ1NJc0NhdE1uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRNbiB4bWxVQ1NJc0NhdE1uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXROCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0TikgeG1sVUNTSXNDYXROIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXROX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NhdE4KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXROKSB4bWxVQ1NJc0NhdE5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NhdE4geG1sVUNTSXNDYXROX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXROZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE5kKSB4bWxVQ1NJc0NhdE5kIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXROZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXROZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE5kKSB4bWxVQ1NJc0NhdE5kX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXROZCB4bWxVQ1NJc0NhdE5kX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRObAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE5sKSB4bWxVQ1NJc0NhdE5sIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRObF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRObAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE5sKSB4bWxVQ1NJc0NhdE5sX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRObCB4bWxVQ1NJc0NhdE5sX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRObworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE5vKSB4bWxVQ1NJc0NhdE5vIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXROb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRObworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdE5vKSB4bWxVQ1NJc0NhdE5vX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRObyB4bWxVQ1NJc0NhdE5vX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0UCkgeG1sVUNTSXNDYXRQIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NhdFAKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXRQKSB4bWxVQ1NJc0NhdFBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NhdFAgeG1sVUNTSXNDYXRQX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBjKSB4bWxVQ1NJc0NhdFBjIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRQYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBjKSB4bWxVQ1NJc0NhdFBjX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRQYyB4bWxVQ1NJc0NhdFBjX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBkKSB4bWxVQ1NJc0NhdFBkIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRQZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBkKSB4bWxVQ1NJc0NhdFBkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRQZCB4bWxVQ1NJc0NhdFBkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBlKSB4bWxVQ1NJc0NhdFBlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRQZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBlKSB4bWxVQ1NJc0NhdFBlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRQZSB4bWxVQ1NJc0NhdFBlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBmKSB4bWxVQ1NJc0NhdFBmIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQZl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRQZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBmKSB4bWxVQ1NJc0NhdFBmX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRQZiB4bWxVQ1NJc0NhdFBmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQaQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBpKSB4bWxVQ1NJc0NhdFBpIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQaV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRQaQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBpKSB4bWxVQ1NJc0NhdFBpX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRQaSB4bWxVQ1NJc0NhdFBpX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBvKSB4bWxVQ1NJc0NhdFBvIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRQbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBvKSB4bWxVQ1NJc0NhdFBvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRQbyB4bWxVQ1NJc0NhdFBvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRQcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBzKSB4bWxVQ1NJc0NhdFBzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRQc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRQcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFBzKSB4bWxVQ1NJc0NhdFBzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRQcyB4bWxVQ1NJc0NhdFBzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRTCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0UykgeG1sVUNTSXNDYXRTIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRTX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NhdFMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXRTKSB4bWxVQ1NJc0NhdFNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NhdFMgeG1sVUNTSXNDYXRTX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRTYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNjKSB4bWxVQ1NJc0NhdFNjIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRTY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRTYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNjKSB4bWxVQ1NJc0NhdFNjX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRTYyB4bWxVQ1NJc0NhdFNjX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRTaworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNrKSB4bWxVQ1NJc0NhdFNrIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRTa19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRTaworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNrKSB4bWxVQ1NJc0NhdFNrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRTayB4bWxVQ1NJc0NhdFNrX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRTbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNtKSB4bWxVQ1NJc0NhdFNtIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRTbV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRTbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNtKSB4bWxVQ1NJc0NhdFNtX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRTbSB4bWxVQ1NJc0NhdFNtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRTbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNvKSB4bWxVQ1NJc0NhdFNvIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRTb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRTbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFNvKSB4bWxVQ1NJc0NhdFNvX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRTbyB4bWxVQ1NJc0NhdFNvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRaCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ2F0WikgeG1sVUNTSXNDYXRaIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRaX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NhdFoKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDYXRaKSB4bWxVQ1NJc0NhdFpfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NhdFogeG1sVUNTSXNDYXRaX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRabAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFpsKSB4bWxVQ1NJc0NhdFpsIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRabF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRabAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFpsKSB4bWxVQ1NJc0NhdFpsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRabCB4bWxVQ1NJc0NhdFpsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRacAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFpwKSB4bWxVQ1NJc0NhdFpwIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRacF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRacAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFpwKSB4bWxVQ1NJc0NhdFpwX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRacCB4bWxVQ1NJc0NhdFpwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDYXRacworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFpzKSB4bWxVQ1NJc0NhdFpzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDYXRac19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDYXRacworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NhdFpzKSB4bWxVQ1NJc0NhdFpzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDYXRacyB4bWxVQ1NJc0NhdFpzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDaGVyb2tlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NoZXJva2VlKSB4bWxVQ1NJc0NoZXJva2VlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDaGVyb2tlZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDaGVyb2tlZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NoZXJva2VlKSB4bWxVQ1NJc0NoZXJva2VlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDaGVyb2tlZSB4bWxVQ1NJc0NoZXJva2VlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcykgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzKSB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzKSB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzKSB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MpIHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzKSB4bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzIHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMpIHhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzKSB4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9sc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzIHhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDb250cm9sUGljdHVyZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDb250cm9sUGljdHVyZXMpIHhtbFVDU0lzQ29udHJvbFBpY3R1cmVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDb250cm9sUGljdHVyZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ29udHJvbFBpY3R1cmVzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ29udHJvbFBpY3R1cmVzKSB4bWxVQ1NJc0NvbnRyb2xQaWN0dXJlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ29udHJvbFBpY3R1cmVzIHhtbFVDU0lzQ29udHJvbFBpY3R1cmVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMpIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDdXJyZW5jeVN5bWJvbHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzKSB4bWxVQ1NJc0N1cnJlbmN5U3ltYm9sc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeSkgeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5KSB4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkgeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDeXJpbGxpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0N5cmlsbGljKSB4bWxVQ1NJc0N5cmlsbGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDeXJpbGxpY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNDeXJpbGxpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0N5cmlsbGljKSB4bWxVQ1NJc0N5cmlsbGljX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNDeXJpbGxpYyB4bWxVQ1NJc0N5cmlsbGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQpIHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50KSB4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50IHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNEZXNlcmV0CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzRGVzZXJldCkgeG1sVUNTSXNEZXNlcmV0IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNEZXNlcmV0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0Rlc2VyZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNEZXNlcmV0KSB4bWxVQ1NJc0Rlc2VyZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0Rlc2VyZXQgeG1sVUNTSXNEZXNlcmV0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNEZXZhbmFnYXJpCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzRGV2YW5hZ2FyaSkgeG1sVUNTSXNEZXZhbmFnYXJpIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNEZXZhbmFnYXJpX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0RldmFuYWdhcmkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNEZXZhbmFnYXJpKSB4bWxVQ1NJc0RldmFuYWdhcmlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0RldmFuYWdhcmkgeG1sVUNTSXNEZXZhbmFnYXJpX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNEaW5nYmF0cworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0RpbmdiYXRzKSB4bWxVQ1NJc0RpbmdiYXRzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNEaW5nYmF0c19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNEaW5nYmF0cworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0RpbmdiYXRzKSB4bWxVQ1NJc0RpbmdiYXRzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNEaW5nYmF0cyB4bWxVQ1NJc0RpbmdiYXRzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MpIHhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzKSB4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzIHhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMpIHhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzKSB4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRoc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzIHhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNFdGhpb3BpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0V0aGlvcGljKSB4bWxVQ1NJc0V0aGlvcGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNFdGhpb3BpY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNFdGhpb3BpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0V0aGlvcGljKSB4bWxVQ1NJc0V0aGlvcGljX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNFdGhpb3BpYyB4bWxVQ1NJc0V0aGlvcGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24pIHhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uKSB4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uIHhtbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMpIHhtbFVDU0lzR2VvbWV0cmljU2hhcGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHZW9tZXRyaWNTaGFwZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzR2VvbWV0cmljU2hhcGVzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzR2VvbWV0cmljU2hhcGVzKSB4bWxVQ1NJc0dlb21ldHJpY1NoYXBlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzR2VvbWV0cmljU2hhcGVzIHhtbFVDU0lzR2VvbWV0cmljU2hhcGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHZW9yZ2lhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0dlb3JnaWFuKSB4bWxVQ1NJc0dlb3JnaWFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHZW9yZ2lhbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNHZW9yZ2lhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0dlb3JnaWFuKSB4bWxVQ1NJc0dlb3JnaWFuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNHZW9yZ2lhbiB4bWxVQ1NJc0dlb3JnaWFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHb3RoaWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNHb3RoaWMpIHhtbFVDU0lzR290aGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHb3RoaWNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzR290aGljCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzR290aGljKSB4bWxVQ1NJc0dvdGhpY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzR290aGljIHhtbFVDU0lzR290aGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHcmVlaworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0dyZWVrKSB4bWxVQ1NJc0dyZWVrIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHcmVla19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNHcmVlaworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0dyZWVrKSB4bWxVQ1NJc0dyZWVrX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNHcmVlayB4bWxVQ1NJc0dyZWVrX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHcmVla0V4dGVuZGVkCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzR3JlZWtFeHRlbmRlZCkgeG1sVUNTSXNHcmVla0V4dGVuZGVkIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHcmVla0V4dGVuZGVkX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNHcmVla0V4dGVuZGVkKSB4bWxVQ1NJc0dyZWVrRXh0ZW5kZWRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQgeG1sVUNTSXNHcmVla0V4dGVuZGVkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHcmVla2FuZENvcHRpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0dyZWVrYW5kQ29wdGljKSB4bWxVQ1NJc0dyZWVrYW5kQ29wdGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHcmVla2FuZENvcHRpY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNHcmVla2FuZENvcHRpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0dyZWVrYW5kQ29wdGljKSB4bWxVQ1NJc0dyZWVrYW5kQ29wdGljX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNHcmVla2FuZENvcHRpYyB4bWxVQ1NJc0dyZWVrYW5kQ29wdGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHdWphcmF0aQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0d1amFyYXRpKSB4bWxVQ1NJc0d1amFyYXRpIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHdWphcmF0aV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNHdWphcmF0aQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0d1amFyYXRpKSB4bWxVQ1NJc0d1amFyYXRpX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNHdWphcmF0aSB4bWxVQ1NJc0d1amFyYXRpX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNHdXJtdWtoaQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0d1cm11a2hpKSB4bWxVQ1NJc0d1cm11a2hpIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNHdXJtdWtoaV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNHdXJtdWtoaQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0d1cm11a2hpKSB4bWxVQ1NJc0d1cm11a2hpX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNHdXJtdWtoaSB4bWxVQ1NJc0d1cm11a2hpX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zKSB4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3Jtc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zKSB4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcyB4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vKSB4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtb19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vKSB4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyB4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIYW5ndWxKYW1vCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzSGFuZ3VsSmFtbykgeG1sVUNTSXNIYW5ndWxKYW1vIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIYW5ndWxKYW1vX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0hhbmd1bEphbW8KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNIYW5ndWxKYW1vKSB4bWxVQ1NJc0hhbmd1bEphbW9fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0hhbmd1bEphbW8geG1sVUNTSXNIYW5ndWxKYW1vX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMpIHhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIYW5ndWxTeWxsYWJsZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzKSB4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzIHhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIYW51bm9vCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzSGFudW5vbykgeG1sVUNTSXNIYW51bm9vIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIYW51bm9vX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0hhbnVub28KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNIYW51bm9vKSB4bWxVQ1NJc0hhbnVub29fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0hhbnVub28geG1sVUNTSXNIYW51bm9vX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIZWJyZXcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNIZWJyZXcpIHhtbFVDU0lzSGVicmV3IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIZWJyZXdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzSGVicmV3CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzSGVicmV3KSB4bWxVQ1NJc0hlYnJld19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzSGVicmV3IHhtbFVDU0lzSGVicmV3X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMpIHhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzKSB4bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIHhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIaWdoU3Vycm9nYXRlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzKSB4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIaWdoU3Vycm9nYXRlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNIaWdoU3Vycm9nYXRlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzKSB4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNIaWdoU3Vycm9nYXRlcyB4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNIaXJhZ2FuYQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hpcmFnYW5hKSB4bWxVQ1NJc0hpcmFnYW5hIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNIaXJhZ2FuYV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNIaXJhZ2FuYQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0hpcmFnYW5hKSB4bWxVQ1NJc0hpcmFnYW5hX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNIaXJhZ2FuYSB4bWxVQ1NJc0hpcmFnYW5hX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNJUEFFeHRlbnNpb25zCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzSVBBRXh0ZW5zaW9ucykgeG1sVUNTSXNJUEFFeHRlbnNpb25zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNJUEFFeHRlbnNpb25zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0lQQUV4dGVuc2lvbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNJUEFFeHRlbnNpb25zKSB4bWxVQ1NJc0lQQUV4dGVuc2lvbnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0lQQUV4dGVuc2lvbnMgeG1sVUNTSXNJUEFFeHRlbnNpb25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzKSB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVyc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzKSB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNLYW5idW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNLYW5idW4pIHhtbFVDU0lzS2FuYnVuIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNLYW5idW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzS2FuYnVuCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzS2FuYnVuKSB4bWxVQ1NJc0thbmJ1bl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzS2FuYnVuIHhtbFVDU0lzS2FuYnVuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNLYW5neGlSYWRpY2FscworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0thbmd4aVJhZGljYWxzKSB4bWxVQ1NJc0thbmd4aVJhZGljYWxzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNLYW5neGlSYWRpY2Fsc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNLYW5neGlSYWRpY2FscworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0thbmd4aVJhZGljYWxzKSB4bWxVQ1NJc0thbmd4aVJhZGljYWxzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNLYW5neGlSYWRpY2FscyB4bWxVQ1NJc0thbmd4aVJhZGljYWxzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNLYW5uYWRhCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzS2FubmFkYSkgeG1sVUNTSXNLYW5uYWRhIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNLYW5uYWRhX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0thbm5hZGEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNLYW5uYWRhKSB4bWxVQ1NJc0thbm5hZGFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0thbm5hZGEgeG1sVUNTSXNLYW5uYWRhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNLYXRha2FuYQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0thdGFrYW5hKSB4bWxVQ1NJc0thdGFrYW5hIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNLYXRha2FuYV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNLYXRha2FuYQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0thdGFrYW5hKSB4bWxVQ1NJc0thdGFrYW5hX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNLYXRha2FuYSB4bWxVQ1NJc0thdGFrYW5hX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zKSB4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9uc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zKSB4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucyB4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNLaG1lcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0tobWVyKSB4bWxVQ1NJc0tobWVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNLaG1lcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNLaG1lcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0tobWVyKSB4bWxVQ1NJc0tobWVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNLaG1lciB4bWxVQ1NJc0tobWVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNLaG1lclN5bWJvbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNLaG1lclN5bWJvbHMpIHhtbFVDU0lzS2htZXJTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNLaG1lclN5bWJvbHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzS2htZXJTeW1ib2xzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzS2htZXJTeW1ib2xzKSB4bWxVQ1NJc0tobWVyU3ltYm9sc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzS2htZXJTeW1ib2xzIHhtbFVDU0lzS2htZXJTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMYW8KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNMYW8pIHhtbFVDU0lzTGFvIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMYW9fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzTGFvCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTGFvKSB4bWxVQ1NJc0xhb19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzTGFvIHhtbFVDU0lzTGFvX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudCkgeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50KSB4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQgeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBKSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMYXRpbkV4dGVuZGVkQV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBKSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsKSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsKSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCKSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMYXRpbkV4dGVuZGVkQl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCKSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQiB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzKSB4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9sc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzKSB4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scyB4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMaW1idQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xpbWJ1KSB4bWxVQ1NJc0xpbWJ1IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMaW1idV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNMaW1idQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc0xpbWJ1KSB4bWxVQ1NJc0xpbWJ1X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNMaW1idSB4bWxVQ1NJc0xpbWJ1X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTGluZWFyQklkZW9ncmFtcykgeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zKSB4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMgeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTGluZWFyQlN5bGxhYmFyeSkgeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5KSB4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkgeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNMb3dTdXJyb2dhdGVzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTG93U3Vycm9nYXRlcykgeG1sVUNTSXNMb3dTdXJyb2dhdGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNMb3dTdXJyb2dhdGVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNMb3dTdXJyb2dhdGVzKSB4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMgeG1sVUNTSXNMb3dTdXJyb2dhdGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNYWxheWFsYW0KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNYWxheWFsYW0pIHhtbFVDU0lzTWFsYXlhbGFtIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNYWxheWFsYW1fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzTWFsYXlhbGFtCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTWFsYXlhbGFtKSB4bWxVQ1NJc01hbGF5YWxhbV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzTWFsYXlhbGFtIHhtbFVDU0lzTWFsYXlhbGFtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scykgeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzKSB4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMgeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMpIHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzKSB4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzIHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EpIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0FfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBKSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IpIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0JfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCKSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzKSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzKSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scyB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzKSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93c19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzKSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cyB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCkgeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsKSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwgeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNb25nb2xpYW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNb25nb2xpYW4pIHhtbFVDU0lzTW9uZ29saWFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNb25nb2xpYW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzTW9uZ29saWFuCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTW9uZ29saWFuKSB4bWxVQ1NJc01vbmdvbGlhbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzTW9uZ29saWFuIHhtbFVDU0lzTW9uZ29saWFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNdXNpY2FsU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc011c2ljYWxTeW1ib2xzKSB4bWxVQ1NJc011c2ljYWxTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNdXNpY2FsU3ltYm9sc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNNdXNpY2FsU3ltYm9scworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc011c2ljYWxTeW1ib2xzKSB4bWxVQ1NJc011c2ljYWxTeW1ib2xzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNNdXNpY2FsU3ltYm9scyB4bWxVQ1NJc011c2ljYWxTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNNeWFubWFyCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzTXlhbm1hcikgeG1sVUNTSXNNeWFubWFyIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNNeWFubWFyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc015YW5tYXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNNeWFubWFyKSB4bWxVQ1NJc015YW5tYXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc015YW5tYXIgeG1sVUNTSXNNeWFubWFyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNOdW1iZXJGb3JtcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc051bWJlckZvcm1zKSB4bWxVQ1NJc051bWJlckZvcm1zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNOdW1iZXJGb3Jtc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNOdW1iZXJGb3JtcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc051bWJlckZvcm1zKSB4bWxVQ1NJc051bWJlckZvcm1zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNOdW1iZXJGb3JtcyB4bWxVQ1NJc051bWJlckZvcm1zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNPZ2hhbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc09naGFtKSB4bWxVQ1NJc09naGFtIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNPZ2hhbV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNPZ2hhbQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc09naGFtKSB4bWxVQ1NJc09naGFtX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNPZ2hhbSB4bWxVQ1NJc09naGFtX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNPbGRJdGFsaWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNPbGRJdGFsaWMpIHhtbFVDU0lzT2xkSXRhbGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNPbGRJdGFsaWNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzT2xkSXRhbGljCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzT2xkSXRhbGljKSB4bWxVQ1NJc09sZEl0YWxpY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzT2xkSXRhbGljIHhtbFVDU0lzT2xkSXRhbGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24pIHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uKSB4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uIHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNPcml5YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc09yaXlhKSB4bWxVQ1NJc09yaXlhIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNPcml5YV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNPcml5YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc09yaXlhKSB4bWxVQ1NJc09yaXlhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNPcml5YSB4bWxVQ1NJc09yaXlhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNPc21hbnlhCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzT3NtYW55YSkgeG1sVUNTSXNPc21hbnlhIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNPc21hbnlhX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc09zbWFueWEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNPc21hbnlhKSB4bWxVQ1NJc09zbWFueWFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc09zbWFueWEgeG1sVUNTSXNPc21hbnlhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMpIHhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zKSB4bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9uc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zIHhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNQcml2YXRlVXNlCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzUHJpdmF0ZVVzZSkgeG1sVUNTSXNQcml2YXRlVXNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNQcml2YXRlVXNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1ByaXZhdGVVc2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNQcml2YXRlVXNlKSB4bWxVQ1NJc1ByaXZhdGVVc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1ByaXZhdGVVc2UgeG1sVUNTSXNQcml2YXRlVXNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNQcml2YXRlVXNlQXJlYQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhKSB4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNQcml2YXRlVXNlQXJlYV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNQcml2YXRlVXNlQXJlYQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhKSB4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNQcml2YXRlVXNlQXJlYSB4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNSdW5pYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1J1bmljKSB4bWxVQ1NJc1J1bmljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNSdW5pY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNSdW5pYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1J1bmljKSB4bWxVQ1NJc1J1bmljX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNSdW5pYyB4bWxVQ1NJc1J1bmljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTaGF2aWFuCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU2hhdmlhbikgeG1sVUNTSXNTaGF2aWFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTaGF2aWFuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1NoYXZpYW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTaGF2aWFuKSB4bWxVQ1NJc1NoYXZpYW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1NoYXZpYW4geG1sVUNTSXNTaGF2aWFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTaW5oYWxhCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU2luaGFsYSkgeG1sVUNTSXNTaW5oYWxhIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTaW5oYWxhX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1NpbmhhbGEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTaW5oYWxhKSB4bWxVQ1NJc1NpbmhhbGFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1NpbmhhbGEgeG1sVUNTSXNTaW5oYWxhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzKSB4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50c19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzKSB4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cyB4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycykgeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzKSB4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMgeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTcGVjaWFscworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1NwZWNpYWxzKSB4bWxVQ1NJc1NwZWNpYWxzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTcGVjaWFsc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNTcGVjaWFscworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1NwZWNpYWxzKSB4bWxVQ1NJc1NwZWNpYWxzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNTcGVjaWFscyB4bWxVQ1NJc1NwZWNpYWxzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cykgeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzKSB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMgeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSkgeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBKSB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0FfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EgeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQikgeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCKSB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0JfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IgeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMpIHhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzKSB4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzIHhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSkgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBKSB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUFfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUEgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQikgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCKSB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUIgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNTeXJpYWMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNTeXJpYWMpIHhtbFVDU0lzU3lyaWFjIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNTeXJpYWNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzU3lyaWFjCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzU3lyaWFjKSB4bWxVQ1NJc1N5cmlhY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzU3lyaWFjIHhtbFVDU0lzU3lyaWFjX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUYWdhbG9nCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVGFnYWxvZykgeG1sVUNTSXNUYWdhbG9nIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUYWdhbG9nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1RhZ2Fsb2cKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNUYWdhbG9nKSB4bWxVQ1NJc1RhZ2Fsb2dfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1RhZ2Fsb2cgeG1sVUNTSXNUYWdhbG9nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUYWdiYW53YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1RhZ2JhbndhKSB4bWxVQ1NJc1RhZ2JhbndhIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUYWdiYW53YV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNUYWdiYW53YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1RhZ2JhbndhKSB4bWxVQ1NJc1RhZ2JhbndhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNUYWdiYW53YSB4bWxVQ1NJc1RhZ2JhbndhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUYWdzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVGFncykgeG1sVUNTSXNUYWdzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUYWdzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1RhZ3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNUYWdzKSB4bWxVQ1NJc1RhZ3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1RhZ3MgeG1sVUNTSXNUYWdzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUYWlMZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1RhaUxlKSB4bWxVQ1NJc1RhaUxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUYWlMZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNUYWlMZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1RhaUxlKSB4bWxVQ1NJc1RhaUxlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNUYWlMZSB4bWxVQ1NJc1RhaUxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMpIHhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzKSB4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9sc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzIHhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUYW1pbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1RhbWlsKSB4bWxVQ1NJc1RhbWlsIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUYW1pbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNUYW1pbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1RhbWlsKSB4bWxVQ1NJc1RhbWlsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNUYW1pbCB4bWxVQ1NJc1RhbWlsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUZWx1Z3UKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNUZWx1Z3UpIHhtbFVDU0lzVGVsdWd1IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUZWx1Z3VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzVGVsdWd1CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVGVsdWd1KSB4bWxVQ1NJc1RlbHVndV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzVGVsdWd1IHhtbFVDU0lzVGVsdWd1X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUaGFhbmEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNUaGFhbmEpIHhtbFVDU0lzVGhhYW5hIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUaGFhbmFfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzVGhhYW5hCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVGhhYW5hKSB4bWxVQ1NJc1RoYWFuYV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzVGhhYW5hIHhtbFVDU0lzVGhhYW5hX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUaGFpCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVGhhaSkgeG1sVUNTSXNUaGFpIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUaGFpX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1RoYWkKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNUaGFpKSB4bWxVQ1NJc1RoYWlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1RoYWkgeG1sVUNTSXNUaGFpX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNUaWJldGFuCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVGliZXRhbikgeG1sVUNTSXNUaWJldGFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNUaWJldGFuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1RpYmV0YW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNUaWJldGFuKSB4bWxVQ1NJc1RpYmV0YW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1RpYmV0YW4geG1sVUNTSXNUaWJldGFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNVZ2FyaXRpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1VnYXJpdGljKSB4bWxVQ1NJc1VnYXJpdGljIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNVZ2FyaXRpY19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNVZ2FyaXRpYworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1VnYXJpdGljKSB4bWxVQ1NJc1VnYXJpdGljX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNVZ2FyaXRpYyB4bWxVQ1NJc1VnYXJpdGljX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcykgeG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzKSB4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MgeG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMpIHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzKSB4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzIHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudCkgeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50KSB4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQgeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNZaVJhZGljYWxzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzWWlSYWRpY2FscykgeG1sVUNTSXNZaVJhZGljYWxzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNZaVJhZGljYWxzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVQ1NJc1lpUmFkaWNhbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNZaVJhZGljYWxzKSB4bWxVQ1NJc1lpUmFkaWNhbHNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVQ1NJc1lpUmFkaWNhbHMgeG1sVUNTSXNZaVJhZGljYWxzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNZaVN5bGxhYmxlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1lpU3lsbGFibGVzKSB4bWxVQ1NJc1lpU3lsbGFibGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNZaVN5bGxhYmxlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVUNTSXNZaVN5bGxhYmxlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxVQ1NJc1lpU3lsbGFibGVzKSB4bWxVQ1NJc1lpU3lsbGFibGVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVUNTSXNZaVN5bGxhYmxlcyB4bWxVQ1NJc1lpU3lsbGFibGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94bWx1bmljb2RlCisjdW5kZWYgeG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMpIHhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzIF9fYXR0cmlidXRlKChhbGlhcygieG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzCitleHRlcm4gX190eXBlb2YgKHhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzKSB4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9sc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzIHhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3VyaQorI3VuZGVmIHhtbFVSSUVzY2FwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVUklFc2NhcGUpIHhtbFVSSUVzY2FwZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFVSSUVzY2FwZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVVJJRXNjYXBlCitleHRlcm4gX190eXBlb2YgKHhtbFVSSUVzY2FwZSkgeG1sVVJJRXNjYXBlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVVJJRXNjYXBlIHhtbFVSSUVzY2FwZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21fdXJpCisjdW5kZWYgeG1sVVJJRXNjYXBlU3RyCitleHRlcm4gX190eXBlb2YgKHhtbFVSSUVzY2FwZVN0cikgeG1sVVJJRXNjYXBlU3RyIF9fYXR0cmlidXRlKChhbGlhcygieG1sVVJJRXNjYXBlU3RyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVUklFc2NhcGVTdHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sVVJJRXNjYXBlU3RyKSB4bWxVUklFc2NhcGVTdHJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVUklFc2NhcGVTdHIgeG1sVVJJRXNjYXBlU3RyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV91cmkKKyN1bmRlZiB4bWxVUklVbmVzY2FwZVN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxVUklVbmVzY2FwZVN0cmluZykgeG1sVVJJVW5lc2NhcGVTdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxVUklVbmVzY2FwZVN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVVJJVW5lc2NhcGVTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sVVJJVW5lc2NhcGVTdHJpbmcpIHhtbFVSSVVuZXNjYXBlU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVVJJVW5lc2NhcGVTdHJpbmcgeG1sVVJJVW5lc2NhcGVTdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFVURjhDaGFyY21wCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhDaGFyY21wKSB4bWxVVEY4Q2hhcmNtcCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFVURjhDaGFyY21wX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVVEY4Q2hhcmNtcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVVEY4Q2hhcmNtcCkgeG1sVVRGOENoYXJjbXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVVEY4Q2hhcmNtcCB4bWxVVEY4Q2hhcmNtcF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sVVRGOFNpemUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVVRGOFNpemUpIHhtbFVURjhTaXplIF9fYXR0cmlidXRlKChhbGlhcygieG1sVVRGOFNpemVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVURjhTaXplCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhTaXplKSB4bWxVVEY4U2l6ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVURjhTaXplIHhtbFVURjhTaXplX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxVVEY4U3RybGVuCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhTdHJsZW4pIHhtbFVURjhTdHJsZW4gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxVVEY4U3RybGVuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVVEY4U3RybGVuCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhTdHJsZW4pIHhtbFVURjhTdHJsZW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVVEY4U3RybGVuIHhtbFVURjhTdHJsZW5fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFVURjhTdHJsb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVVRGOFN0cmxvYykgeG1sVVRGOFN0cmxvYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFVURjhTdHJsb2NfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVURjhTdHJsb2MKK2V4dGVybiBfX3R5cGVvZiAoeG1sVVRGOFN0cmxvYykgeG1sVVRGOFN0cmxvY19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVURjhTdHJsb2MgeG1sVVRGOFN0cmxvY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sVVRGOFN0cm5kdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sVVRGOFN0cm5kdXApIHhtbFVURjhTdHJuZHVwIF9fYXR0cmlidXRlKChhbGlhcygieG1sVVRGOFN0cm5kdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVURjhTdHJuZHVwCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhTdHJuZHVwKSB4bWxVVEY4U3RybmR1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVURjhTdHJuZHVwIHhtbFVURjhTdHJuZHVwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV94bWxzdHJpbmcKKyN1bmRlZiB4bWxVVEY4U3RycG9zCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhTdHJwb3MpIHhtbFVURjhTdHJwb3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxVVEY4U3RycG9zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVVEY4U3RycG9zCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhTdHJwb3MpIHhtbFVURjhTdHJwb3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVVEY4U3RycG9zIHhtbFVURjhTdHJwb3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYm90dG9tX3htbHN0cmluZworI3VuZGVmIHhtbFVURjhTdHJzaXplCitleHRlcm4gX190eXBlb2YgKHhtbFVURjhTdHJzaXplKSB4bWxVVEY4U3Ryc2l6ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFVURjhTdHJzaXplX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxVVEY4U3Ryc2l6ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVVEY4U3Ryc2l6ZSkgeG1sVVRGOFN0cnNpemVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxVVEY4U3Ryc2l6ZSB4bWxVVEY4U3Ryc2l6ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBib3R0b21feG1sc3RyaW5nCisjdW5kZWYgeG1sVVRGOFN0cnN1YgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVVEY4U3Ryc3ViKSB4bWxVVEY4U3Ryc3ViIF9fYXR0cmlidXRlKChhbGlhcygieG1sVVRGOFN0cnN1Yl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVVRGOFN0cnN1YgorZXh0ZXJuIF9fdHlwZW9mICh4bWxVVEY4U3Ryc3ViKSB4bWxVVEY4U3Ryc3ViX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVVRGOFN0cnN1YiB4bWxVVEY4U3Ryc3ViX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sVW5saW5rTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVbmxpbmtOb2RlKSB4bWxVbmxpbmtOb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVW5saW5rTm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVW5saW5rTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVbmxpbmtOb2RlKSB4bWxVbmxpbmtOb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVW5saW5rTm9kZSB4bWxVbmxpbmtOb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGJvdHRvbV90aHJlYWRzCisjdW5kZWYgeG1sVW5sb2NrTGlicmFyeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVbmxvY2tMaWJyYXJ5KSB4bWxVbmxvY2tMaWJyYXJ5IF9fYXR0cmlidXRlKChhbGlhcygieG1sVW5sb2NrTGlicmFyeV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVW5sb2NrTGlicmFyeQorZXh0ZXJuIF9fdHlwZW9mICh4bWxVbmxvY2tMaWJyYXJ5KSB4bWxVbmxvY2tMaWJyYXJ5X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVW5sb2NrTGlicmFyeSB4bWxVbmxvY2tMaWJyYXJ5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sVW5zZXROc1Byb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sVW5zZXROc1Byb3ApIHhtbFVuc2V0TnNQcm9wIF9fYXR0cmlidXRlKChhbGlhcygieG1sVW5zZXROc1Byb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVuc2V0TnNQcm9wCitleHRlcm4gX190eXBlb2YgKHhtbFVuc2V0TnNQcm9wKSB4bWxVbnNldE5zUHJvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVuc2V0TnNQcm9wIHhtbFVuc2V0TnNQcm9wX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxVbnNldFByb3AKK2V4dGVybiBfX3R5cGVvZiAoeG1sVW5zZXRQcm9wKSB4bWxVbnNldFByb3AgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxVbnNldFByb3BfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFVuc2V0UHJvcAorZXh0ZXJuIF9fdHlwZW9mICh4bWxVbnNldFByb3ApIHhtbFVuc2V0UHJvcF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFVuc2V0UHJvcCB4bWxVbnNldFByb3BfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwpIHhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwpIHhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsIHhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWxfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlKSB4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSkgeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSB4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuKSB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuIF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuKSB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKSB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZEdldFZhbGlkRWxlbWVudHNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cworZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMpIHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50c19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSkgeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSkgeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUgeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbCkgeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsKSB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2wgeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUpIHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUpIHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlIHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFZhbGlkYXRlRG9jdW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVEb2N1bWVudCkgeG1sVmFsaWRhdGVEb2N1bWVudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkYXRlRG9jdW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkYXRlRG9jdW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVEb2N1bWVudCkgeG1sVmFsaWRhdGVEb2N1bWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkYXRlRG9jdW1lbnQgeG1sVmFsaWRhdGVEb2N1bWVudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCkgeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsIF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsKSB4bWxWYWxpZGF0ZURvY3VtZW50RmluYWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwgeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZUR0ZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZUR0ZCkgeG1sVmFsaWRhdGVEdGQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZUR0ZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRhdGVEdGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVEdGQpIHhtbFZhbGlkYXRlRHRkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRhdGVEdGQgeG1sVmFsaWRhdGVEdGRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFZhbGlkYXRlRHRkRmluYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVEdGRGaW5hbCkgeG1sVmFsaWRhdGVEdGRGaW5hbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkYXRlRHRkRmluYWxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkYXRlRHRkRmluYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVEdGRGaW5hbCkgeG1sVmFsaWRhdGVEdGRGaW5hbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkYXRlRHRkRmluYWwgeG1sVmFsaWRhdGVEdGRGaW5hbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sVmFsaWRhdGVFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlRWxlbWVudCkgeG1sVmFsaWRhdGVFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRhdGVFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZUVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVFbGVtZW50KSB4bWxWYWxpZGF0ZUVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZUVsZW1lbnQgeG1sVmFsaWRhdGVFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZUVsZW1lbnREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlRWxlbWVudERlY2wpIHhtbFZhbGlkYXRlRWxlbWVudERlY2wgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZUVsZW1lbnREZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZUVsZW1lbnREZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlRWxlbWVudERlY2wpIHhtbFZhbGlkYXRlRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZUVsZW1lbnREZWNsIHhtbFZhbGlkYXRlRWxlbWVudERlY2xfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgfHwgZGVmaW5lZCAoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3RyZWUKKyN1bmRlZiB4bWxWYWxpZGF0ZU5DTmFtZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU5DTmFtZSkgeG1sVmFsaWRhdGVOQ05hbWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZU5DTmFtZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRhdGVOQ05hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVOQ05hbWUpIHhtbFZhbGlkYXRlTkNOYW1lX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRhdGVOQ05hbWUgeG1sVmFsaWRhdGVOQ05hbWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFZhbGlkYXRlTk1Ub2tlbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU5NVG9rZW4pIHhtbFZhbGlkYXRlTk1Ub2tlbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkYXRlTk1Ub2tlbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRhdGVOTVRva2VuCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlTk1Ub2tlbikgeG1sVmFsaWRhdGVOTVRva2VuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRhdGVOTVRva2VuIHhtbFZhbGlkYXRlTk1Ub2tlbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV90cmVlCisjdW5kZWYgeG1sVmFsaWRhdGVOYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlTmFtZSkgeG1sVmFsaWRhdGVOYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRhdGVOYW1lX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZU5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVOYW1lKSB4bWxWYWxpZGF0ZU5hbWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZU5hbWUgeG1sVmFsaWRhdGVOYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZU5hbWVWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU5hbWVWYWx1ZSkgeG1sVmFsaWRhdGVOYW1lVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZU5hbWVWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRhdGVOYW1lVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVOYW1lVmFsdWUpIHhtbFZhbGlkYXRlTmFtZVZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRhdGVOYW1lVmFsdWUgeG1sVmFsaWRhdGVOYW1lVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFZhbGlkYXRlTmFtZXNWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU5hbWVzVmFsdWUpIHhtbFZhbGlkYXRlTmFtZXNWYWx1ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkYXRlTmFtZXNWYWx1ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRhdGVOYW1lc1ZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlTmFtZXNWYWx1ZSkgeG1sVmFsaWRhdGVOYW1lc1ZhbHVlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRhdGVOYW1lc1ZhbHVlIHhtbFZhbGlkYXRlTmFtZXNWYWx1ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sVmFsaWRhdGVObXRva2VuVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVObXRva2VuVmFsdWUpIHhtbFZhbGlkYXRlTm10b2tlblZhbHVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRhdGVObXRva2VuVmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkYXRlTm10b2tlblZhbHVlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlTm10b2tlblZhbHVlKSB4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkYXRlTm10b2tlblZhbHVlIHhtbFZhbGlkYXRlTm10b2tlblZhbHVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlKSB4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUpIHhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZSB4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFZhbGlkYXRlTm90YXRpb25EZWNsCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlTm90YXRpb25EZWNsKSB4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkYXRlTm90YXRpb25EZWNsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCkgeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2xfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCB4bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlTm90YXRpb25Vc2UpIHhtbFZhbGlkYXRlTm90YXRpb25Vc2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlTm90YXRpb25Vc2UpIHhtbFZhbGlkYXRlTm90YXRpb25Vc2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlIHhtbFZhbGlkYXRlTm90YXRpb25Vc2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV92YWxpZAorI3VuZGVmIHhtbFZhbGlkYXRlT25lQXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlT25lQXR0cmlidXRlKSB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkYXRlT25lQXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSkgeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZSB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sVmFsaWRhdGVPbmVFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlT25lRWxlbWVudCkgeG1sVmFsaWRhdGVPbmVFbGVtZW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRhdGVPbmVFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZU9uZUVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVPbmVFbGVtZW50KSB4bWxWYWxpZGF0ZU9uZUVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZU9uZUVsZW1lbnQgeG1sVmFsaWRhdGVPbmVFbGVtZW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSkgeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UpIHhtbFZhbGlkYXRlT25lTmFtZXNwYWNlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UgeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZVBvcEVsZW1lbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVQb3BFbGVtZW50KSB4bWxWYWxpZGF0ZVBvcEVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZVBvcEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkYXRlUG9wRWxlbWVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZVBvcEVsZW1lbnQpIHhtbFZhbGlkYXRlUG9wRWxlbWVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkYXRlUG9wRWxlbWVudCB4bWxWYWxpZGF0ZVBvcEVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZVB1c2hDRGF0YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxWYWxpZGF0ZVB1c2hDRGF0YSkgeG1sVmFsaWRhdGVQdXNoQ0RhdGEgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZVB1c2hDRGF0YV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sVmFsaWRhdGVQdXNoQ0RhdGEKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVQdXNoQ0RhdGEpIHhtbFZhbGlkYXRlUHVzaENEYXRhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sVmFsaWRhdGVQdXNoQ0RhdGEgeG1sVmFsaWRhdGVQdXNoQ0RhdGFfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdmFsaWQKKyN1bmRlZiB4bWxWYWxpZGF0ZVB1c2hFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlUHVzaEVsZW1lbnQpIHhtbFZhbGlkYXRlUHVzaEVsZW1lbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxWYWxpZGF0ZVB1c2hFbGVtZW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZVB1c2hFbGVtZW50CitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlUHVzaEVsZW1lbnQpIHhtbFZhbGlkYXRlUHVzaEVsZW1lbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZVB1c2hFbGVtZW50IHhtbFZhbGlkYXRlUHVzaEVsZW1lbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21fdHJlZQorI3VuZGVmIHhtbFZhbGlkYXRlUU5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVRTmFtZSkgeG1sVmFsaWRhdGVRTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFZhbGlkYXRlUU5hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFZhbGlkYXRlUU5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVRTmFtZSkgeG1sVmFsaWRhdGVRTmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFZhbGlkYXRlUU5hbWUgeG1sVmFsaWRhdGVRTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3ZhbGlkCisjdW5kZWYgeG1sVmFsaWRhdGVSb290CitleHRlcm4gX190eXBlb2YgKHhtbFZhbGlkYXRlUm9vdCkgeG1sVmFsaWRhdGVSb290IF9fYXR0cmlidXRlKChhbGlhcygieG1sVmFsaWRhdGVSb290X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxWYWxpZGF0ZVJvb3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sVmFsaWRhdGVSb290KSB4bWxWYWxpZGF0ZVJvb3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxWYWxpZGF0ZVJvb3QgeG1sVmFsaWRhdGVSb290X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feGluY2x1ZGUKKyN1bmRlZiB4bWxYSW5jbHVkZUZyZWVDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlRnJlZUNvbnRleHQpIHhtbFhJbmNsdWRlRnJlZUNvbnRleHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYSW5jbHVkZUZyZWVDb250ZXh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYSW5jbHVkZUZyZWVDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlRnJlZUNvbnRleHQpIHhtbFhJbmNsdWRlRnJlZUNvbnRleHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYSW5jbHVkZUZyZWVDb250ZXh0IHhtbFhJbmNsdWRlRnJlZUNvbnRleHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94aW5jbHVkZQorI3VuZGVmIHhtbFhJbmNsdWRlTmV3Q29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZU5ld0NvbnRleHQpIHhtbFhJbmNsdWRlTmV3Q29udGV4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhJbmNsdWRlTmV3Q29udGV4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWEluY2x1ZGVOZXdDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlTmV3Q29udGV4dCkgeG1sWEluY2x1ZGVOZXdDb250ZXh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWEluY2x1ZGVOZXdDb250ZXh0IHhtbFhJbmNsdWRlTmV3Q29udGV4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hpbmNsdWRlCisjdW5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzCitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlUHJvY2VzcykgeG1sWEluY2x1ZGVQcm9jZXNzIF9fYXR0cmlidXRlKChhbGlhcygieG1sWEluY2x1ZGVQcm9jZXNzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYSW5jbHVkZVByb2Nlc3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sWEluY2x1ZGVQcm9jZXNzKSB4bWxYSW5jbHVkZVByb2Nlc3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYSW5jbHVkZVByb2Nlc3MgeG1sWEluY2x1ZGVQcm9jZXNzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feGluY2x1ZGUKKyN1bmRlZiB4bWxYSW5jbHVkZVByb2Nlc3NGbGFncworZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZVByb2Nlc3NGbGFncykgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MKK2V4dGVybiBfX3R5cGVvZiAoeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MpIHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3MgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94aW5jbHVkZQorI3VuZGVmIHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEpIHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhCitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YSkgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhIHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hpbmNsdWRlCisjdW5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZVByb2Nlc3NOb2RlKSB4bWxYSW5jbHVkZVByb2Nlc3NOb2RlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWEluY2x1ZGVQcm9jZXNzTm9kZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzTm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZVByb2Nlc3NOb2RlKSB4bWxYSW5jbHVkZVByb2Nlc3NOb2RlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWEluY2x1ZGVQcm9jZXNzTm9kZSB4bWxYSW5jbHVkZVByb2Nlc3NOb2RlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feGluY2x1ZGUKKyN1bmRlZiB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlCitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWUpIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYSW5jbHVkZVByb2Nlc3NUcmVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlCitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWUpIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94aW5jbHVkZQorI3VuZGVmIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncworZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MpIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzCitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncykgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hpbmNsdWRlCisjdW5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhKSB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhIF9fYXR0cmlidXRlKChhbGlhcygieG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhKSB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feGluY2x1ZGUKKyN1bmRlZiB4bWxYSW5jbHVkZVNldEZsYWdzCitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlU2V0RmxhZ3MpIHhtbFhJbmNsdWRlU2V0RmxhZ3MgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYSW5jbHVkZVNldEZsYWdzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYSW5jbHVkZVNldEZsYWdzCitleHRlcm4gX190eXBlb2YgKHhtbFhJbmNsdWRlU2V0RmxhZ3MpIHhtbFhJbmNsdWRlU2V0RmxhZ3NfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYSW5jbHVkZVNldEZsYWdzIHhtbFhJbmNsdWRlU2V0RmxhZ3NfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQWRkVmFsdWVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQWRkVmFsdWVzKSB4bWxYUGF0aEFkZFZhbHVlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQWRkVmFsdWVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEFkZFZhbHVlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEFkZFZhbHVlcykgeG1sWFBhdGhBZGRWYWx1ZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEFkZFZhbHVlcyB4bWxYUGF0aEFkZFZhbHVlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24pIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhCb29sZWFuRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uKSB4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyKSB4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIpIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlciB4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmcpIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZykgeG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuKSB4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuKSB4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbiB4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyKSB4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIpIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlciB4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcpIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZykgeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdE5vZGVUb051bWJlcikgeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyKSB4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXIgeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nKSB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcpIHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4pIHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbikgeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuIHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmcpIHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nKSB4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nIHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuKSB4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4pIHhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbiB4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW5fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyKSB4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcikgeG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlciB4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDYXN0VG9Cb29sZWFuCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdFRvQm9vbGVhbikgeG1sWFBhdGhDYXN0VG9Cb29sZWFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDYXN0VG9Cb29sZWFuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENhc3RUb0Jvb2xlYW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0VG9Cb29sZWFuKSB4bWxYUGF0aENhc3RUb0Jvb2xlYW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENhc3RUb0Jvb2xlYW4geG1sWFBhdGhDYXN0VG9Cb29sZWFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENhc3RUb051bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3RUb051bWJlcikgeG1sWFBhdGhDYXN0VG9OdW1iZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENhc3RUb051bWJlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDYXN0VG9OdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDYXN0VG9OdW1iZXIpIHhtbFhQYXRoQ2FzdFRvTnVtYmVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDYXN0VG9OdW1iZXIgeG1sWFBhdGhDYXN0VG9OdW1iZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ2FzdFRvU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2FzdFRvU3RyaW5nKSB4bWxYUGF0aENhc3RUb1N0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ2FzdFRvU3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENhc3RUb1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENhc3RUb1N0cmluZykgeG1sWFBhdGhDYXN0VG9TdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENhc3RUb1N0cmluZyB4bWxYUGF0aENhc3RUb1N0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24pIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDZWlsaW5nRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uKSB4bWxYUGF0aENlaWxpbmdGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENtcE5vZGVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ21wTm9kZXMpIHhtbFhQYXRoQ21wTm9kZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENtcE5vZGVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENtcE5vZGVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ21wTm9kZXMpIHhtbFhQYXRoQ21wTm9kZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENtcE5vZGVzIHhtbFhQYXRoQ21wTm9kZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ29tcGFyZVZhbHVlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbXBhcmVWYWx1ZXMpIHhtbFhQYXRoQ29tcGFyZVZhbHVlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ29tcGFyZVZhbHVlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDb21wYXJlVmFsdWVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ29tcGFyZVZhbHVlcykgeG1sWFBhdGhDb21wYXJlVmFsdWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDb21wYXJlVmFsdWVzIHhtbFhQYXRoQ29tcGFyZVZhbHVlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDb21waWxlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ29tcGlsZSkgeG1sWFBhdGhDb21waWxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDb21waWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENvbXBpbGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDb21waWxlKSB4bWxYUGF0aENvbXBpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENvbXBpbGUgeG1sWFBhdGhDb21waWxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENvbXBpbGVkRXZhbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbXBpbGVkRXZhbCkgeG1sWFBhdGhDb21waWxlZEV2YWwgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENvbXBpbGVkRXZhbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDb21waWxlZEV2YWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDb21waWxlZEV2YWwpIHhtbFhQYXRoQ29tcGlsZWRFdmFsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDb21waWxlZEV2YWwgeG1sWFBhdGhDb21waWxlZEV2YWxfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuKSB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbikgeG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW5fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDb25jYXRGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbmNhdEZ1bmN0aW9uKSB4bWxYUGF0aENvbmNhdEZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDb25jYXRGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDb25jYXRGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbmNhdEZ1bmN0aW9uKSB4bWxYUGF0aENvbmNhdEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDb25jYXRGdW5jdGlvbiB4bWxYUGF0aENvbmNhdEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDb250YWluc0Z1bmN0aW9uKSB4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24pIHhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ29udGFpbnNGdW5jdGlvbiB4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ29udGV4dFNldENhY2hlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ29udGV4dFNldENhY2hlKSB4bWxYUGF0aENvbnRleHRTZXRDYWNoZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ29udGV4dFNldENhY2hlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENvbnRleHRTZXRDYWNoZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbnRleHRTZXRDYWNoZSkgeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENvbnRleHRTZXRDYWNoZSB4bWxYUGF0aENvbnRleHRTZXRDYWNoZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbnZlcnRCb29sZWFuKSB4bWxYUGF0aENvbnZlcnRCb29sZWFuIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDb252ZXJ0Qm9vbGVhbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbnZlcnRCb29sZWFuKSB4bWxYUGF0aENvbnZlcnRCb29sZWFuX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbiB4bWxYUGF0aENvbnZlcnRCb29sZWFuX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aENvbnZlcnROdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDb252ZXJ0TnVtYmVyKSB4bWxYUGF0aENvbnZlcnROdW1iZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aENvbnZlcnROdW1iZXJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoQ29udmVydE51bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbnZlcnROdW1iZXIpIHhtbFhQYXRoQ29udmVydE51bWJlcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoQ29udmVydE51bWJlciB4bWxYUGF0aENvbnZlcnROdW1iZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoQ29udmVydFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aENvbnZlcnRTdHJpbmcpIHhtbFhQYXRoQ29udmVydFN0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoQ29udmVydFN0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhDb252ZXJ0U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ29udmVydFN0cmluZykgeG1sWFBhdGhDb252ZXJ0U3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhDb252ZXJ0U3RyaW5nIHhtbFhQYXRoQ29udmVydFN0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhDb3VudEZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ291bnRGdW5jdGlvbikgeG1sWFBhdGhDb3VudEZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhDb3VudEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aENvdW50RnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhDb3VudEZ1bmN0aW9uKSB4bWxYUGF0aENvdW50RnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aENvdW50RnVuY3Rpb24geG1sWFBhdGhDb3VudEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEN0eHRDb21waWxlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ3R4dENvbXBpbGUpIHhtbFhQYXRoQ3R4dENvbXBpbGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEN0eHRDb21waWxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEN0eHRDb21waWxlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoQ3R4dENvbXBpbGUpIHhtbFhQYXRoQ3R4dENvbXBpbGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEN0eHRDb21waWxlIHhtbFhQYXRoQ3R4dENvbXBpbGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcikgeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcikgeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIgeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QpIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0KSB4bWxYUGF0aERlYnVnRHVtcE9iamVjdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0IHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aERpZmZlcmVuY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhEaWZmZXJlbmNlKSB4bWxYUGF0aERpZmZlcmVuY2UgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aERpZmZlcmVuY2VfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRGlmZmVyZW5jZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aERpZmZlcmVuY2UpIHhtbFhQYXRoRGlmZmVyZW5jZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRGlmZmVyZW5jZSB4bWxYUGF0aERpZmZlcmVuY2VfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRGlzdGluY3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhEaXN0aW5jdCkgeG1sWFBhdGhEaXN0aW5jdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRGlzdGluY3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRGlzdGluY3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhEaXN0aW5jdCkgeG1sWFBhdGhEaXN0aW5jdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRGlzdGluY3QgeG1sWFBhdGhEaXN0aW5jdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhEaXN0aW5jdFNvcnRlZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aERpc3RpbmN0U29ydGVkKSB4bWxYUGF0aERpc3RpbmN0U29ydGVkIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhEaXN0aW5jdFNvcnRlZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhEaXN0aW5jdFNvcnRlZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aERpc3RpbmN0U29ydGVkKSB4bWxYUGF0aERpc3RpbmN0U29ydGVkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhEaXN0aW5jdFNvcnRlZCB4bWxYUGF0aERpc3RpbmN0U29ydGVkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aERpdlZhbHVlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aERpdlZhbHVlcykgeG1sWFBhdGhEaXZWYWx1ZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aERpdlZhbHVlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhEaXZWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhEaXZWYWx1ZXMpIHhtbFhQYXRoRGl2VmFsdWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhEaXZWYWx1ZXMgeG1sWFBhdGhEaXZWYWx1ZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRXF1YWxWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFcXVhbFZhbHVlcykgeG1sWFBhdGhFcXVhbFZhbHVlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRXF1YWxWYWx1ZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRXF1YWxWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFcXVhbFZhbHVlcykgeG1sWFBhdGhFcXVhbFZhbHVlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRXF1YWxWYWx1ZXMgeG1sWFBhdGhFcXVhbFZhbHVlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhFcnIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFcnIpIHhtbFhQYXRoRXJyIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhFcnJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRXJyCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRXJyKSB4bWxYUGF0aEVycl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRXJyIHhtbFhQYXRoRXJyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEV2YWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFdmFsKSB4bWxYUGF0aEV2YWwgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEV2YWxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRXZhbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEV2YWwpIHhtbFhQYXRoRXZhbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRXZhbCB4bWxYUGF0aEV2YWxfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRXZhbEV4cHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFdmFsRXhwcikgeG1sWFBhdGhFdmFsRXhwciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRXZhbEV4cHJfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRXZhbEV4cHIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFdmFsRXhwcikgeG1sWFBhdGhFdmFsRXhwcl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRXZhbEV4cHIgeG1sWFBhdGhFdmFsRXhwcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhFdmFsRXhwcmVzc2lvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEV2YWxFeHByZXNzaW9uKSB4bWxYUGF0aEV2YWxFeHByZXNzaW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhFdmFsRXhwcmVzc2lvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhFdmFsRXhwcmVzc2lvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEV2YWxFeHByZXNzaW9uKSB4bWxYUGF0aEV2YWxFeHByZXNzaW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhFdmFsRXhwcmVzc2lvbiB4bWxYUGF0aEV2YWxFeHByZXNzaW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEV2YWxQcmVkaWNhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFdmFsUHJlZGljYXRlKSB4bWxYUGF0aEV2YWxQcmVkaWNhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEV2YWxQcmVkaWNhdGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRXZhbFByZWRpY2F0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEV2YWxQcmVkaWNhdGUpIHhtbFhQYXRoRXZhbFByZWRpY2F0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRXZhbFByZWRpY2F0ZSB4bWxYUGF0aEV2YWxQcmVkaWNhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCkgeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCkgeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQgeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhGYWxzZUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRmFsc2VGdW5jdGlvbikgeG1sWFBhdGhGYWxzZUZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhGYWxzZUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEZhbHNlRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhGYWxzZUZ1bmN0aW9uKSB4bWxYUGF0aEZhbHNlRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEZhbHNlRnVuY3Rpb24geG1sWFBhdGhGYWxzZUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEZsb29yRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhGbG9vckZ1bmN0aW9uKSB4bWxYUGF0aEZsb29yRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEZsb29yRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRmxvb3JGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEZsb29yRnVuY3Rpb24pIHhtbFhQYXRoRmxvb3JGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRmxvb3JGdW5jdGlvbiB4bWxYUGF0aEZsb29yRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRnJlZUNvbXBFeHByCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnJlZUNvbXBFeHByKSB4bWxYUGF0aEZyZWVDb21wRXhwciBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRnJlZUNvbXBFeHByX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEZyZWVDb21wRXhwcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEZyZWVDb21wRXhwcikgeG1sWFBhdGhGcmVlQ29tcEV4cHJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEZyZWVDb21wRXhwciB4bWxYUGF0aEZyZWVDb21wRXhwcl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhGcmVlQ29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEZyZWVDb250ZXh0KSB4bWxYUGF0aEZyZWVDb250ZXh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhGcmVlQ29udGV4dF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhGcmVlQ29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEZyZWVDb250ZXh0KSB4bWxYUGF0aEZyZWVDb250ZXh0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhGcmVlQ29udGV4dCB4bWxYUGF0aEZyZWVDb250ZXh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEZyZWVOb2RlU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnJlZU5vZGVTZXQpIHhtbFhQYXRoRnJlZU5vZGVTZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEZyZWVOb2RlU2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEZyZWVOb2RlU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnJlZU5vZGVTZXQpIHhtbFhQYXRoRnJlZU5vZGVTZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEZyZWVOb2RlU2V0IHhtbFhQYXRoRnJlZU5vZGVTZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0KSB4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCkgeG1sWFBhdGhGcmVlTm9kZVNldExpc3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCB4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhGcmVlT2JqZWN0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnJlZU9iamVjdCkgeG1sWFBhdGhGcmVlT2JqZWN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhGcmVlT2JqZWN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEZyZWVPYmplY3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhGcmVlT2JqZWN0KSB4bWxYUGF0aEZyZWVPYmplY3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEZyZWVPYmplY3QgeG1sWFBhdGhGcmVlT2JqZWN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQpIHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQpIHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0IHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoRnVuY3Rpb25Mb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhGdW5jdGlvbkxvb2t1cCkgeG1sWFBhdGhGdW5jdGlvbkxvb2t1cCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoRnVuY3Rpb25Mb29rdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoRnVuY3Rpb25Mb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhGdW5jdGlvbkxvb2t1cCkgeG1sWFBhdGhGdW5jdGlvbkxvb2t1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoRnVuY3Rpb25Mb29rdXAgeG1sWFBhdGhGdW5jdGlvbkxvb2t1cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUykgeG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TKSB4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMgeG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEhhc1NhbWVOb2RlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEhhc1NhbWVOb2RlcykgeG1sWFBhdGhIYXNTYW1lTm9kZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEhhc1NhbWVOb2Rlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhIYXNTYW1lTm9kZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhIYXNTYW1lTm9kZXMpIHhtbFhQYXRoSGFzU2FtZU5vZGVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhIYXNTYW1lTm9kZXMgeG1sWFBhdGhIYXNTYW1lTm9kZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoSWRGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aElkRnVuY3Rpb24pIHhtbFhQYXRoSWRGdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoSWRGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhJZEZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoSWRGdW5jdGlvbikgeG1sWFBhdGhJZEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhJZEZ1bmN0aW9uIHhtbFhQYXRoSWRGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aEluaXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhJbml0KSB4bWxYUGF0aEluaXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aEluaXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoSW5pdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEluaXQpIHhtbFhQYXRoSW5pdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoSW5pdCB4bWxYUGF0aEluaXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoSW50ZXJzZWN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoSW50ZXJzZWN0aW9uKSB4bWxYUGF0aEludGVyc2VjdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoSW50ZXJzZWN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aEludGVyc2VjdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aEludGVyc2VjdGlvbikgeG1sWFBhdGhJbnRlcnNlY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aEludGVyc2VjdGlvbiB4bWxYUGF0aEludGVyc2VjdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aElzSW5mCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoSXNJbmYpIHhtbFhQYXRoSXNJbmYgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aElzSW5mX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aElzSW5mCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoSXNJbmYpIHhtbFhQYXRoSXNJbmZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aElzSW5mIHhtbFhQYXRoSXNJbmZfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhJc05hTgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aElzTmFOKSB4bWxYUGF0aElzTmFOIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhJc05hTl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhJc05hTgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aElzTmFOKSB4bWxYUGF0aElzTmFOX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhJc05hTiB4bWxYUGF0aElzTmFOX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aElzTm9kZVR5cGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhJc05vZGVUeXBlKSB4bWxYUGF0aElzTm9kZVR5cGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aElzTm9kZVR5cGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoSXNOb2RlVHlwZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aElzTm9kZVR5cGUpIHhtbFhQYXRoSXNOb2RlVHlwZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoSXNOb2RlVHlwZSB4bWxYUGF0aElzTm9kZVR5cGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTGFuZ0Z1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTGFuZ0Z1bmN0aW9uKSB4bWxYUGF0aExhbmdGdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTGFuZ0Z1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aExhbmdGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aExhbmdGdW5jdGlvbikgeG1sWFBhdGhMYW5nRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aExhbmdGdW5jdGlvbiB4bWxYUGF0aExhbmdGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhMYXN0RnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhMYXN0RnVuY3Rpb24pIHhtbFhQYXRoTGFzdEZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhMYXN0RnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTGFzdEZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTGFzdEZ1bmN0aW9uKSB4bWxYUGF0aExhc3RGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTGFzdEZ1bmN0aW9uIHhtbFhQYXRoTGFzdEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aExlYWRpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhMZWFkaW5nKSB4bWxYUGF0aExlYWRpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aExlYWRpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTGVhZGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aExlYWRpbmcpIHhtbFhQYXRoTGVhZGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTGVhZGluZyB4bWxYUGF0aExlYWRpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTGVhZGluZ1NvcnRlZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aExlYWRpbmdTb3J0ZWQpIHhtbFhQYXRoTGVhZGluZ1NvcnRlZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTGVhZGluZ1NvcnRlZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhMZWFkaW5nU29ydGVkCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTGVhZGluZ1NvcnRlZCkgeG1sWFBhdGhMZWFkaW5nU29ydGVkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhMZWFkaW5nU29ydGVkIHhtbFhQYXRoTGVhZGluZ1NvcnRlZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uKSB4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uKSB4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbiB4bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE1vZFZhbHVlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE1vZFZhbHVlcykgeG1sWFBhdGhNb2RWYWx1ZXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE1vZFZhbHVlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhNb2RWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhNb2RWYWx1ZXMpIHhtbFhQYXRoTW9kVmFsdWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhNb2RWYWx1ZXMgeG1sWFBhdGhNb2RWYWx1ZXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTXVsdFZhbHVlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE11bHRWYWx1ZXMpIHhtbFhQYXRoTXVsdFZhbHVlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTXVsdFZhbHVlc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhNdWx0VmFsdWVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTXVsdFZhbHVlcykgeG1sWFBhdGhNdWx0VmFsdWVzX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhNdWx0VmFsdWVzIHhtbFhQYXRoTXVsdFZhbHVlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uKSB4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uKSB4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbiB4bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5ld0Jvb2xlYW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXdCb29sZWFuKSB4bWxYUGF0aE5ld0Jvb2xlYW4gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5ld0Jvb2xlYW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTmV3Qm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5ld0Jvb2xlYW4pIHhtbFhQYXRoTmV3Qm9vbGVhbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTmV3Qm9vbGVhbiB4bWxYUGF0aE5ld0Jvb2xlYW5fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTmV3Q1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5ld0NTdHJpbmcpIHhtbFhQYXRoTmV3Q1N0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTmV3Q1N0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXdDU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV3Q1N0cmluZykgeG1sWFBhdGhOZXdDU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXdDU3RyaW5nIHhtbFhQYXRoTmV3Q1N0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOZXdDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV3Q29udGV4dCkgeG1sWFBhdGhOZXdDb250ZXh0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOZXdDb250ZXh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5ld0NvbnRleHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXdDb250ZXh0KSB4bWxYUGF0aE5ld0NvbnRleHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5ld0NvbnRleHQgeG1sWFBhdGhOZXdDb250ZXh0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5ld0Zsb2F0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV3RmxvYXQpIHhtbFhQYXRoTmV3RmxvYXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5ld0Zsb2F0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5ld0Zsb2F0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV3RmxvYXQpIHhtbFhQYXRoTmV3RmxvYXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5ld0Zsb2F0IHhtbFhQYXRoTmV3RmxvYXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTmV3Tm9kZVNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5ld05vZGVTZXQpIHhtbFhQYXRoTmV3Tm9kZVNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTmV3Tm9kZVNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXdOb2RlU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV3Tm9kZVNldCkgeG1sWFBhdGhOZXdOb2RlU2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXdOb2RlU2V0IHhtbFhQYXRoTmV3Tm9kZVNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOZXdOb2RlU2V0TGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5ld05vZGVTZXRMaXN0KSB4bWxYUGF0aE5ld05vZGVTZXRMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOZXdOb2RlU2V0TGlzdF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXdOb2RlU2V0TGlzdAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5ld05vZGVTZXRMaXN0KSB4bWxYUGF0aE5ld05vZGVTZXRMaXN0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXdOb2RlU2V0TGlzdCB4bWxYUGF0aE5ld05vZGVTZXRMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0KSB4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5ld1BhcnNlckNvbnRleHRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQpIHhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dCB4bWxYUGF0aE5ld1BhcnNlckNvbnRleHRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTmV3U3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV3U3RyaW5nKSB4bWxYUGF0aE5ld1N0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTmV3U3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5ld1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5ld1N0cmluZykgeG1sWFBhdGhOZXdTdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5ld1N0cmluZyB4bWxYUGF0aE5ld1N0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOZXdWYWx1ZVRyZWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXdWYWx1ZVRyZWUpIHhtbFhQYXRoTmV3VmFsdWVUcmVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOZXdWYWx1ZVRyZWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTmV3VmFsdWVUcmVlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV3VmFsdWVUcmVlKSB4bWxYUGF0aE5ld1ZhbHVlVHJlZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTmV3VmFsdWVUcmVlIHhtbFhQYXRoTmV3VmFsdWVUcmVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5leHRBbmNlc3RvcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRBbmNlc3RvcikgeG1sWFBhdGhOZXh0QW5jZXN0b3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5leHRBbmNlc3Rvcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXh0QW5jZXN0b3IKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0QW5jZXN0b3IpIHhtbFhQYXRoTmV4dEFuY2VzdG9yX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXh0QW5jZXN0b3IgeG1sWFBhdGhOZXh0QW5jZXN0b3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmKSB4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZikgeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiB4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOZXh0QXR0cmlidXRlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV4dEF0dHJpYnV0ZSkgeG1sWFBhdGhOZXh0QXR0cmlidXRlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOZXh0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5leHRBdHRyaWJ1dGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0QXR0cmlidXRlKSB4bWxYUGF0aE5leHRBdHRyaWJ1dGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5leHRBdHRyaWJ1dGUgeG1sWFBhdGhOZXh0QXR0cmlidXRlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5leHRDaGlsZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRDaGlsZCkgeG1sWFBhdGhOZXh0Q2hpbGQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5leHRDaGlsZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXh0Q2hpbGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0Q2hpbGQpIHhtbFhQYXRoTmV4dENoaWxkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXh0Q2hpbGQgeG1sWFBhdGhOZXh0Q2hpbGRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTmV4dERlc2NlbmRhbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0RGVzY2VuZGFudCkgeG1sWFBhdGhOZXh0RGVzY2VuZGFudCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTmV4dERlc2NlbmRhbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTmV4dERlc2NlbmRhbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0RGVzY2VuZGFudCkgeG1sWFBhdGhOZXh0RGVzY2VuZGFudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTmV4dERlc2NlbmRhbnQgeG1sWFBhdGhOZXh0RGVzY2VuZGFudF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmKSB4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmKSB4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZiB4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5leHRGb2xsb3dpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0Rm9sbG93aW5nKSB4bWxYUGF0aE5leHRGb2xsb3dpbmcgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5leHRGb2xsb3dpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTmV4dEZvbGxvd2luZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRGb2xsb3dpbmcpIHhtbFhQYXRoTmV4dEZvbGxvd2luZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTmV4dEZvbGxvd2luZyB4bWxYUGF0aE5leHRGb2xsb3dpbmdfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZykgeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZykgeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmcgeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOZXh0TmFtZXNwYWNlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV4dE5hbWVzcGFjZSkgeG1sWFBhdGhOZXh0TmFtZXNwYWNlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOZXh0TmFtZXNwYWNlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5leHROYW1lc3BhY2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0TmFtZXNwYWNlKSB4bWxYUGF0aE5leHROYW1lc3BhY2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5leHROYW1lc3BhY2UgeG1sWFBhdGhOZXh0TmFtZXNwYWNlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5leHRQYXJlbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOZXh0UGFyZW50KSB4bWxYUGF0aE5leHRQYXJlbnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5leHRQYXJlbnRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTmV4dFBhcmVudAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRQYXJlbnQpIHhtbFhQYXRoTmV4dFBhcmVudF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTmV4dFBhcmVudCB4bWxYUGF0aE5leHRQYXJlbnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTmV4dFByZWNlZGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRQcmVjZWRpbmcpIHhtbFhQYXRoTmV4dFByZWNlZGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTmV4dFByZWNlZGluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXh0UHJlY2VkaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV4dFByZWNlZGluZykgeG1sWFBhdGhOZXh0UHJlY2VkaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXh0UHJlY2VkaW5nIHhtbFhQYXRoTmV4dFByZWNlZGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nKSB4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nKSB4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyB4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5leHRTZWxmCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV4dFNlbGYpIHhtbFhQYXRoTmV4dFNlbGYgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5leHRTZWxmX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5leHRTZWxmCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTmV4dFNlbGYpIHhtbFhQYXRoTmV4dFNlbGZfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5leHRTZWxmIHhtbFhQYXRoTmV4dFNlbGZfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTm9kZUxlYWRpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlTGVhZGluZykgeG1sWFBhdGhOb2RlTGVhZGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTm9kZUxlYWRpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTm9kZUxlYWRpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlTGVhZGluZykgeG1sWFBhdGhOb2RlTGVhZGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTm9kZUxlYWRpbmcgeG1sWFBhdGhOb2RlTGVhZGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkKSB4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkKSB4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZCB4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5vZGVTZXRBZGQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlU2V0QWRkKSB4bWxYUGF0aE5vZGVTZXRBZGQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5vZGVTZXRBZGRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTm9kZVNldEFkZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVTZXRBZGQpIHhtbFhQYXRoTm9kZVNldEFkZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTm9kZVNldEFkZCB4bWxYUGF0aE5vZGVTZXRBZGRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTm9kZVNldEFkZE5zCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldEFkZE5zKSB4bWxYUGF0aE5vZGVTZXRBZGROcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTm9kZVNldEFkZE5zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vZGVTZXRBZGROcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVTZXRBZGROcykgeG1sWFBhdGhOb2RlU2V0QWRkTnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vZGVTZXRBZGROcyB4bWxYUGF0aE5vZGVTZXRBZGROc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSkgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKSB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5vZGVTZXRDb250YWlucworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVTZXRDb250YWlucykgeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5vZGVTZXRDb250YWluc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMpIHhtbFhQYXRoTm9kZVNldENvbnRhaW5zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMgeG1sWFBhdGhOb2RlU2V0Q29udGFpbnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTm9kZVNldENyZWF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVTZXRDcmVhdGUpIHhtbFhQYXRoTm9kZVNldENyZWF0ZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTm9kZVNldENyZWF0ZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOb2RlU2V0Q3JlYXRlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldENyZWF0ZSkgeG1sWFBhdGhOb2RlU2V0Q3JlYXRlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOb2RlU2V0Q3JlYXRlIHhtbFhQYXRoTm9kZVNldENyZWF0ZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOb2RlU2V0RGVsCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldERlbCkgeG1sWFBhdGhOb2RlU2V0RGVsIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOb2RlU2V0RGVsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vZGVTZXREZWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlU2V0RGVsKSB4bWxYUGF0aE5vZGVTZXREZWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vZGVTZXREZWwgeG1sWFBhdGhOb2RlU2V0RGVsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5vZGVTZXRGcmVlTnMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlU2V0RnJlZU5zKSB4bWxYUGF0aE5vZGVTZXRGcmVlTnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5vZGVTZXRGcmVlTnNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTm9kZVNldEZyZWVOcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVTZXRGcmVlTnMpIHhtbFhQYXRoTm9kZVNldEZyZWVOc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTm9kZVNldEZyZWVOcyB4bWxYUGF0aE5vZGVTZXRGcmVlTnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTm9kZVNldE1lcmdlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldE1lcmdlKSB4bWxYUGF0aE5vZGVTZXRNZXJnZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTm9kZVNldE1lcmdlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vZGVTZXRNZXJnZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVTZXRNZXJnZSkgeG1sWFBhdGhOb2RlU2V0TWVyZ2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vZGVTZXRNZXJnZSB4bWxYUGF0aE5vZGVTZXRNZXJnZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOb2RlU2V0UmVtb3ZlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldFJlbW92ZSkgeG1sWFBhdGhOb2RlU2V0UmVtb3ZlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOb2RlU2V0UmVtb3ZlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vZGVTZXRSZW1vdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlU2V0UmVtb3ZlKSB4bWxYUGF0aE5vZGVTZXRSZW1vdmVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vZGVTZXRSZW1vdmUgeG1sWFBhdGhOb2RlU2V0UmVtb3ZlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5vZGVTZXRTb3J0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldFNvcnQpIHhtbFhQYXRoTm9kZVNldFNvcnQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5vZGVTZXRTb3J0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vZGVTZXRTb3J0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVNldFNvcnQpIHhtbFhQYXRoTm9kZVNldFNvcnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vZGVTZXRTb3J0IHhtbFhQYXRoTm9kZVNldFNvcnRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTm9kZVRyYWlsaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVRyYWlsaW5nKSB4bWxYUGF0aE5vZGVUcmFpbGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTm9kZVRyYWlsaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vZGVUcmFpbGluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vZGVUcmFpbGluZykgeG1sWFBhdGhOb2RlVHJhaWxpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vZGVUcmFpbGluZyB4bWxYUGF0aE5vZGVUcmFpbGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQpIHhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkKSB4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkIHhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24pIHhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24pIHhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uIHhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTm90RXF1YWxWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb3RFcXVhbFZhbHVlcykgeG1sWFBhdGhOb3RFcXVhbFZhbHVlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTm90RXF1YWxWYWx1ZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTm90RXF1YWxWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOb3RFcXVhbFZhbHVlcykgeG1sWFBhdGhOb3RFcXVhbFZhbHVlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTm90RXF1YWxWYWx1ZXMgeG1sWFBhdGhOb3RFcXVhbFZhbHVlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhOb3RGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vdEZ1bmN0aW9uKSB4bWxYUGF0aE5vdEZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhOb3RGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhOb3RGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE5vdEZ1bmN0aW9uKSB4bWxYUGF0aE5vdEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhOb3RGdW5jdGlvbiB4bWxYUGF0aE5vdEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE5zTG9va3VwCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTnNMb29rdXApIHhtbFhQYXRoTnNMb29rdXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE5zTG9va3VwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE5zTG9va3VwCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoTnNMb29rdXApIHhtbFhQYXRoTnNMb29rdXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE5zTG9va3VwIHhtbFhQYXRoTnNMb29rdXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoTnVtYmVyRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOdW1iZXJGdW5jdGlvbikgeG1sWFBhdGhOdW1iZXJGdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoTnVtYmVyRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoTnVtYmVyRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhOdW1iZXJGdW5jdGlvbikgeG1sWFBhdGhOdW1iZXJGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoTnVtYmVyRnVuY3Rpb24geG1sWFBhdGhOdW1iZXJGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhPYmplY3RDb3B5CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoT2JqZWN0Q29weSkgeG1sWFBhdGhPYmplY3RDb3B5IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhPYmplY3RDb3B5X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aE9iamVjdENvcHkKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhPYmplY3RDb3B5KSB4bWxYUGF0aE9iamVjdENvcHlfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aE9iamVjdENvcHkgeG1sWFBhdGhPYmplY3RDb3B5X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aE9yZGVyRG9jRWxlbXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhPcmRlckRvY0VsZW1zKSB4bWxYUGF0aE9yZGVyRG9jRWxlbXMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aE9yZGVyRG9jRWxlbXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoT3JkZXJEb2NFbGVtcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aE9yZGVyRG9jRWxlbXMpIHhtbFhQYXRoT3JkZXJEb2NFbGVtc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoT3JkZXJEb2NFbGVtcyB4bWxYUGF0aE9yZGVyRG9jRWxlbXNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoUGFyc2VOQ05hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQYXJzZU5DTmFtZSkgeG1sWFBhdGhQYXJzZU5DTmFtZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoUGFyc2VOQ05hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUGFyc2VOQ05hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQYXJzZU5DTmFtZSkgeG1sWFBhdGhQYXJzZU5DTmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUGFyc2VOQ05hbWUgeG1sWFBhdGhQYXJzZU5DTmFtZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhQYXJzZU5hbWUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQYXJzZU5hbWUpIHhtbFhQYXRoUGFyc2VOYW1lIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhQYXJzZU5hbWVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUGFyc2VOYW1lCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUGFyc2VOYW1lKSB4bWxYUGF0aFBhcnNlTmFtZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUGFyc2VOYW1lIHhtbFhQYXRoUGFyc2VOYW1lX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFBvcEJvb2xlYW4KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQb3BCb29sZWFuKSB4bWxYUGF0aFBvcEJvb2xlYW4gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFBvcEJvb2xlYW5fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUG9wQm9vbGVhbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFBvcEJvb2xlYW4pIHhtbFhQYXRoUG9wQm9vbGVhbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUG9wQm9vbGVhbiB4bWxYUGF0aFBvcEJvb2xlYW5fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoUG9wRXh0ZXJuYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQb3BFeHRlcm5hbCkgeG1sWFBhdGhQb3BFeHRlcm5hbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoUG9wRXh0ZXJuYWxfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUG9wRXh0ZXJuYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQb3BFeHRlcm5hbCkgeG1sWFBhdGhQb3BFeHRlcm5hbF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUG9wRXh0ZXJuYWwgeG1sWFBhdGhQb3BFeHRlcm5hbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhQb3BOb2RlU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUG9wTm9kZVNldCkgeG1sWFBhdGhQb3BOb2RlU2V0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhQb3BOb2RlU2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFBvcE5vZGVTZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQb3BOb2RlU2V0KSB4bWxYUGF0aFBvcE5vZGVTZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFBvcE5vZGVTZXQgeG1sWFBhdGhQb3BOb2RlU2V0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFBvcE51bWJlcgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFBvcE51bWJlcikgeG1sWFBhdGhQb3BOdW1iZXIgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFBvcE51bWJlcl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhQb3BOdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQb3BOdW1iZXIpIHhtbFhQYXRoUG9wTnVtYmVyX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhQb3BOdW1iZXIgeG1sWFBhdGhQb3BOdW1iZXJfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoUG9wU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUG9wU3RyaW5nKSB4bWxYUGF0aFBvcFN0cmluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoUG9wU3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFBvcFN0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFBvcFN0cmluZykgeG1sWFBhdGhQb3BTdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFBvcFN0cmluZyB4bWxYUGF0aFBvcFN0cmluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbikgeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uKSB4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24geG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMpIHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMpIHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zIHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoUmVnaXN0ZXJGdW5jCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJGdW5jKSB4bWxYUGF0aFJlZ2lzdGVyRnVuYyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoUmVnaXN0ZXJGdW5jX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFJlZ2lzdGVyRnVuYworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFJlZ2lzdGVyRnVuYykgeG1sWFBhdGhSZWdpc3RlckZ1bmNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFJlZ2lzdGVyRnVuYyB4bWxYUGF0aFJlZ2lzdGVyRnVuY19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXApIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhSZWdpc3RlckZ1bmNMb29rdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwKSB4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFJlZ2lzdGVyRnVuY05TCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJGdW5jTlMpIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTlMgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFJlZ2lzdGVyRnVuY05TX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFJlZ2lzdGVyRnVuY05TCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJGdW5jTlMpIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTlNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFJlZ2lzdGVyRnVuY05TIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTlNfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoUmVnaXN0ZXJOcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFJlZ2lzdGVyTnMpIHhtbFhQYXRoUmVnaXN0ZXJOcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoUmVnaXN0ZXJOc19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhSZWdpc3Rlck5zCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJOcykgeG1sWFBhdGhSZWdpc3Rlck5zX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhSZWdpc3Rlck5zIHhtbFhQYXRoUmVnaXN0ZXJOc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZSkgeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlKSB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUgeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwKSB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXApIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TKSB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUykgeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOU19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cCkgeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwKSB4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAgeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwKSB4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXApIHhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCB4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCkgeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXBfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCkgeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAgeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhSb290CitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoUm9vdCkgeG1sWFBhdGhSb290IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhSb290X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFJvb3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSb290KSB4bWxYUGF0aFJvb3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFJvb3QgeG1sWFBhdGhSb290X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFJvdW5kRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhSb3VuZEZ1bmN0aW9uKSB4bWxYUGF0aFJvdW5kRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFJvdW5kRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoUm91bmRGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFJvdW5kRnVuY3Rpb24pIHhtbFhQYXRoUm91bmRGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoUm91bmRGdW5jdGlvbiB4bWxYUGF0aFJvdW5kRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uKSB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbikgeG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbiB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcikgeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyKSB4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXJfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIgeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoU3RyaW5nRnVuY3Rpb24pIHhtbFhQYXRoU3RyaW5nRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoU3RyaW5nRnVuY3Rpb24pIHhtbFhQYXRoU3RyaW5nRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uIHhtbFhQYXRoU3RyaW5nRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbikgeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbikgeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24geG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhTdWJWYWx1ZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhTdWJWYWx1ZXMpIHhtbFhQYXRoU3ViVmFsdWVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhTdWJWYWx1ZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoU3ViVmFsdWVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoU3ViVmFsdWVzKSB4bWxYUGF0aFN1YlZhbHVlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoU3ViVmFsdWVzIHhtbFhQYXRoU3ViVmFsdWVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uKSB4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24pIHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbiB4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbikgeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbikgeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24geG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uKSB4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uKSB4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbiB4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFN1bUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoU3VtRnVuY3Rpb24pIHhtbFhQYXRoU3VtRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFN1bUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFN1bUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoU3VtRnVuY3Rpb24pIHhtbFhQYXRoU3VtRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFN1bUZ1bmN0aW9uIHhtbFhQYXRoU3VtRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoVHJhaWxpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhUcmFpbGluZykgeG1sWFBhdGhUcmFpbGluZyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoVHJhaWxpbmdfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoVHJhaWxpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhUcmFpbGluZykgeG1sWFBhdGhUcmFpbGluZ19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoVHJhaWxpbmcgeG1sWFBhdGhUcmFpbGluZ19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhUcmFpbGluZ1NvcnRlZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFRyYWlsaW5nU29ydGVkKSB4bWxYUGF0aFRyYWlsaW5nU29ydGVkIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhUcmFpbGluZ1NvcnRlZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhUcmFpbGluZ1NvcnRlZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFRyYWlsaW5nU29ydGVkKSB4bWxYUGF0aFRyYWlsaW5nU29ydGVkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhUcmFpbGluZ1NvcnRlZCB4bWxYUGF0aFRyYWlsaW5nU29ydGVkX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24pIHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24gX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24pIHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoVHJ1ZUZ1bmN0aW9uCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoVHJ1ZUZ1bmN0aW9uKSB4bWxYUGF0aFRydWVGdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoVHJ1ZUZ1bmN0aW9uX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFRydWVGdW5jdGlvbgorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFRydWVGdW5jdGlvbikgeG1sWFBhdGhUcnVlRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFRydWVGdW5jdGlvbiB4bWxYUGF0aFRydWVGdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhWYWx1ZUZsaXBTaWduCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoVmFsdWVGbGlwU2lnbikgeG1sWFBhdGhWYWx1ZUZsaXBTaWduIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhWYWx1ZUZsaXBTaWduX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFZhbHVlRmxpcFNpZ24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhWYWx1ZUZsaXBTaWduKSB4bWxYUGF0aFZhbHVlRmxpcFNpZ25fX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFZhbHVlRmxpcFNpZ24geG1sWFBhdGhWYWx1ZUZsaXBTaWduX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFZhcmlhYmxlTG9va3VwCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoVmFyaWFibGVMb29rdXApIHhtbFhQYXRoVmFyaWFibGVMb29rdXAgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFZhcmlhYmxlTG9va3VwX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFZhcmlhYmxlTG9va3VwCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoVmFyaWFibGVMb29rdXApIHhtbFhQYXRoVmFyaWFibGVMb29rdXBfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFZhcmlhYmxlTG9va3VwIHhtbFhQYXRoVmFyaWFibGVMb29rdXBfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoVmFyaWFibGVMb29rdXBOUworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMpIHhtbFhQYXRoVmFyaWFibGVMb29rdXBOUyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoVmFyaWFibGVMb29rdXBOU19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoVmFyaWFibGVMb29rdXBOUykgeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TIHhtbFhQYXRoVmFyaWFibGVMb29rdXBOU19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhXcmFwQ1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFdyYXBDU3RyaW5nKSB4bWxYUGF0aFdyYXBDU3RyaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhXcmFwQ1N0cmluZ19faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhXcmFwQ1N0cmluZworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFdyYXBDU3RyaW5nKSB4bWxYUGF0aFdyYXBDU3RyaW5nX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhXcmFwQ1N0cmluZyB4bWxYUGF0aFdyYXBDU3RyaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aFdyYXBFeHRlcm5hbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUGF0aFdyYXBFeHRlcm5hbCkgeG1sWFBhdGhXcmFwRXh0ZXJuYWwgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aFdyYXBFeHRlcm5hbF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFBhdGhXcmFwRXh0ZXJuYWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhXcmFwRXh0ZXJuYWwpIHhtbFhQYXRoV3JhcEV4dGVybmFsX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFBhdGhXcmFwRXh0ZXJuYWwgeG1sWFBhdGhXcmFwRXh0ZXJuYWxfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cGF0aAorI3VuZGVmIHhtbFhQYXRoV3JhcE5vZGVTZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhXcmFwTm9kZVNldCkgeG1sWFBhdGhXcmFwTm9kZVNldCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQYXRoV3JhcE5vZGVTZXRfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQYXRoV3JhcE5vZGVTZXQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhXcmFwTm9kZVNldCkgeG1sWFBhdGhXcmFwTm9kZVNldF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQYXRoV3JhcE5vZGVTZXQgeG1sWFBhdGhXcmFwTm9kZVNldF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwYXRoCisjdW5kZWYgeG1sWFBhdGhXcmFwU3RyaW5nCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoV3JhcFN0cmluZykgeG1sWFBhdGhXcmFwU3RyaW5nIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFBhdGhXcmFwU3RyaW5nX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aFdyYXBTdHJpbmcKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFBhdGhXcmFwU3RyaW5nKSB4bWxYUGF0aFdyYXBTdHJpbmdfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aFdyYXBTdHJpbmcgeG1sWFBhdGhXcmFwU3RyaW5nX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBhdGgKKyN1bmRlZiB4bWxYUGF0aGVycm9yCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoZXJyb3IpIHhtbFhQYXRoZXJyb3IgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUGF0aGVycm9yX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUGF0aGVycm9yCitleHRlcm4gX190eXBlb2YgKHhtbFhQYXRoZXJyb3IpIHhtbFhQYXRoZXJyb3JfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUGF0aGVycm9yIHhtbFhQYXRoZXJyb3JfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwb2ludGVyCisjdW5kZWYgeG1sWFB0ckJ1aWxkTm9kZUxpc3QKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ckJ1aWxkTm9kZUxpc3QpIHhtbFhQdHJCdWlsZE5vZGVMaXN0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFB0ckJ1aWxkTm9kZUxpc3RfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQdHJCdWlsZE5vZGVMaXN0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJCdWlsZE5vZGVMaXN0KSB4bWxYUHRyQnVpbGROb2RlTGlzdF9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQdHJCdWlsZE5vZGVMaXN0IHhtbFhQdHJCdWlsZE5vZGVMaXN0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cG9pbnRlcgorI3VuZGVmIHhtbFhQdHJFdmFsCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJFdmFsKSB4bWxYUHRyRXZhbCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQdHJFdmFsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyRXZhbAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyRXZhbCkgeG1sWFB0ckV2YWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyRXZhbCB4bWxYUHRyRXZhbF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBvaW50ZXIKKyN1bmRlZiB4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUpIHhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUpIHhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGVfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIHhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwb2ludGVyCisjdW5kZWYgeG1sWFB0ckZyZWVMb2NhdGlvblNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyRnJlZUxvY2F0aW9uU2V0KSB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFB0ckZyZWVMb2NhdGlvblNldF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFB0ckZyZWVMb2NhdGlvblNldAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyRnJlZUxvY2F0aW9uU2V0KSB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0X19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFB0ckZyZWVMb2NhdGlvblNldCB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cG9pbnRlcgorI3VuZGVmIHhtbFhQdHJMb2NhdGlvblNldEFkZAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTG9jYXRpb25TZXRBZGQpIHhtbFhQdHJMb2NhdGlvblNldEFkZCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQdHJMb2NhdGlvblNldEFkZF9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFB0ckxvY2F0aW9uU2V0QWRkCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJMb2NhdGlvblNldEFkZCkgeG1sWFB0ckxvY2F0aW9uU2V0QWRkX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFB0ckxvY2F0aW9uU2V0QWRkIHhtbFhQdHJMb2NhdGlvblNldEFkZF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBvaW50ZXIKKyN1bmRlZiB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKSB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUpIHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZSB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwb2ludGVyCisjdW5kZWYgeG1sWFB0ckxvY2F0aW9uU2V0RGVsCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJMb2NhdGlvblNldERlbCkgeG1sWFB0ckxvY2F0aW9uU2V0RGVsIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFB0ckxvY2F0aW9uU2V0RGVsX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTG9jYXRpb25TZXREZWwKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ckxvY2F0aW9uU2V0RGVsKSB4bWxYUHRyTG9jYXRpb25TZXREZWxfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTG9jYXRpb25TZXREZWwgeG1sWFB0ckxvY2F0aW9uU2V0RGVsX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cG9pbnRlcgorI3VuZGVmIHhtbFhQdHJMb2NhdGlvblNldE1lcmdlCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJMb2NhdGlvblNldE1lcmdlKSB4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQdHJMb2NhdGlvblNldE1lcmdlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTG9jYXRpb25TZXRNZXJnZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSkgeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSB4bWxYUHRyTG9jYXRpb25TZXRNZXJnZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBvaW50ZXIKKyN1bmRlZiB4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlKSB4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQdHJMb2NhdGlvblNldFJlbW92ZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUpIHhtbFhQdHJMb2NhdGlvblNldFJlbW92ZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQdHJMb2NhdGlvblNldFJlbW92ZSB4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwb2ludGVyCisjdW5kZWYgeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZSkgeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlKSB4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2VfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UgeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cG9pbnRlcgorI3VuZGVmIHhtbFhQdHJOZXdDb250ZXh0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdDb250ZXh0KSB4bWxYUHRyTmV3Q29udGV4dCBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQdHJOZXdDb250ZXh0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTmV3Q29udGV4dAorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTmV3Q29udGV4dCkgeG1sWFB0ck5ld0NvbnRleHRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTmV3Q29udGV4dCB4bWxYUHRyTmV3Q29udGV4dF9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBvaW50ZXIKKyN1bmRlZiB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQpIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQpIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0IHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwb2ludGVyCisjdW5kZWYgeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMpIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXNfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzKSB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2Rlc19faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cG9pbnRlcgorI3VuZGVmIHhtbFhQdHJOZXdSYW5nZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTmV3UmFuZ2UpIHhtbFhQdHJOZXdSYW5nZSBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQdHJOZXdSYW5nZV9faW50ZXJuYWxfYWxpYXMiKSkpOworI2Vsc2UKKyNpZm5kZWYgeG1sWFB0ck5ld1JhbmdlCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdSYW5nZSkgeG1sWFB0ck5ld1JhbmdlX19pbnRlcm5hbF9hbGlhcyBfX2F0dHJpYnV0ZSgodmlzaWJpbGl0eSgiaGlkZGVuIikpKTsKKyNkZWZpbmUgeG1sWFB0ck5ld1JhbmdlIHhtbFhQdHJOZXdSYW5nZV9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBvaW50ZXIKKyN1bmRlZiB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QpIHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QpIHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3RfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0IHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3RfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwb2ludGVyCisjdW5kZWYgeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludCkgeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50IF9fYXR0cmlidXRlKChhbGlhcygieG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50KSB4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQgeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50X19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cG9pbnRlcgorI3VuZGVmIHhtbFhQdHJOZXdSYW5nZU5vZGVzCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdSYW5nZU5vZGVzKSB4bWxYUHRyTmV3UmFuZ2VOb2RlcyBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQdHJOZXdSYW5nZU5vZGVzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTmV3UmFuZ2VOb2RlcworZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTmV3UmFuZ2VOb2RlcykgeG1sWFB0ck5ld1JhbmdlTm9kZXNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTmV3UmFuZ2VOb2RlcyB4bWxYUHRyTmV3UmFuZ2VOb2Rlc19faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBvaW50ZXIKKyN1bmRlZiB4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlKSB4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGVfX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZQorZXh0ZXJuIF9fdHlwZW9mICh4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUpIHhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZV9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZSB4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGVfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaWZkZWYgYm90dG9tX3hwb2ludGVyCisjdW5kZWYgeG1sWFB0ck5ld1JhbmdlUG9pbnRzCitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJOZXdSYW5nZVBvaW50cykgeG1sWFB0ck5ld1JhbmdlUG9pbnRzIF9fYXR0cmlidXRlKChhbGlhcygieG1sWFB0ck5ld1JhbmdlUG9pbnRzX19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyTmV3UmFuZ2VQb2ludHMKK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0ck5ld1JhbmdlUG9pbnRzKSB4bWxYUHRyTmV3UmFuZ2VQb2ludHNfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyTmV3UmFuZ2VQb2ludHMgeG1sWFB0ck5ld1JhbmdlUG9pbnRzX19pbnRlcm5hbF9hbGlhcworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorI2lmZGVmIGJvdHRvbV94cG9pbnRlcgorI3VuZGVmIHhtbFhQdHJSYW5nZVRvRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0clJhbmdlVG9GdW5jdGlvbikgeG1sWFB0clJhbmdlVG9GdW5jdGlvbiBfX2F0dHJpYnV0ZSgoYWxpYXMoInhtbFhQdHJSYW5nZVRvRnVuY3Rpb25fX2ludGVybmFsX2FsaWFzIikpKTsKKyNlbHNlCisjaWZuZGVmIHhtbFhQdHJSYW5nZVRvRnVuY3Rpb24KK2V4dGVybiBfX3R5cGVvZiAoeG1sWFB0clJhbmdlVG9GdW5jdGlvbikgeG1sWFB0clJhbmdlVG9GdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMgX19hdHRyaWJ1dGUoKHZpc2liaWxpdHkoImhpZGRlbiIpKSk7CisjZGVmaW5lIHhtbFhQdHJSYW5nZVRvRnVuY3Rpb24geG1sWFB0clJhbmdlVG9GdW5jdGlvbl9faW50ZXJuYWxfYWxpYXMKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyNpZmRlZiBib3R0b21feHBvaW50ZXIKKyN1bmRlZiB4bWxYUHRyV3JhcExvY2F0aW9uU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJXcmFwTG9jYXRpb25TZXQpIHhtbFhQdHJXcmFwTG9jYXRpb25TZXQgX19hdHRyaWJ1dGUoKGFsaWFzKCJ4bWxYUHRyV3JhcExvY2F0aW9uU2V0X19pbnRlcm5hbF9hbGlhcyIpKSk7CisjZWxzZQorI2lmbmRlZiB4bWxYUHRyV3JhcExvY2F0aW9uU2V0CitleHRlcm4gX190eXBlb2YgKHhtbFhQdHJXcmFwTG9jYXRpb25TZXQpIHhtbFhQdHJXcmFwTG9jYXRpb25TZXRfX2ludGVybmFsX2FsaWFzIF9fYXR0cmlidXRlKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpOworI2RlZmluZSB4bWxYUHRyV3JhcExvY2F0aW9uU2V0IHhtbFhQdHJXcmFwTG9jYXRpb25TZXRfX2ludGVybmFsX2FsaWFzCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKworI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9lbmNvZGluZy5jIGIvbGlieG1sMi0yLjcuNy9lbmNvZGluZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NmE1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2VuY29kaW5nLmMKQEAgLTAsMCArMSwzMzM1IEBACisvKgorICogZW5jb2RpbmcuYyA6IGltcGxlbWVudHMgdGhlIGVuY29kaW5nIGNvbnZlcnNpb24gZnVuY3Rpb25zIG5lZWRlZCBmb3IgWE1MCisgKgorICogUmVsYXRlZCBzcGVjczogCisgKiByZmMyMDQ0ICAgICAgICAoVVRGLTggYW5kIFVURi0xNikgRi4gWWVyZ2VhdSBBbGlzIFRlY2hub2xvZ2llcworICogcmZjMjc4MSAgICAgICAgVVRGLTE2LCBhbiBlbmNvZGluZyBvZiBJU08gMTA2NDYsIFAuIEhvZmZtYW4sIEYuIFllcmdlYXUKKyAqIFtJU08tMTA2NDZdICAgIFVURi04IGFuZCBVVEYtMTYgaW4gQW5uZXhlcworICogW0lTTy04ODU5LTFdICAgSVNPIExhdGluLTEgY2hhcmFjdGVycyBjb2Rlcy4KKyAqIFtVTklDT0RFXSAgICAgIFRoZSBVbmljb2RlIENvbnNvcnRpdW0sICJUaGUgVW5pY29kZSBTdGFuZGFyZCAtLQorICogICAgICAgICAgICAgICAgV29ybGR3aWRlIENoYXJhY3RlciBFbmNvZGluZyAtLSBWZXJzaW9uIDEuMCIsIEFkZGlzb24tCisgKiAgICAgICAgICAgICAgICBXZXNsZXksIFZvbHVtZSAxLCAxOTkxLCBWb2x1bWUgMiwgMTk5Mi4gIFVURi04IGlzCisgKiAgICAgICAgICAgICAgICBkZXNjcmliZWQgaW4gVW5pY29kZSBUZWNobmljYWwgUmVwb3J0ICM0LgorICogW1VTLUFTQ0lJXSAgICAgQ29kZWQgQ2hhcmFjdGVyIFNldC0tNy1iaXQgQW1lcmljYW4gU3RhbmRhcmQgQ29kZSBmb3IKKyAqICAgICAgICAgICAgICAgIEluZm9ybWF0aW9uIEludGVyY2hhbmdlLCBBTlNJIFgzLjQtMTk4Ni4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICoKKyAqIE9yaWdpbmFsIGNvZGUgZm9yIElzb0xhdGluMSBhbmQgVVRGLTE2IGJ5ICJNYXJ0aW4gSi4gRHVlcnN0IiA8ZHVlcnN0QHczLm9yZz4KKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZmRlZiBIQVZFX0NUWVBFX0gKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0lDT05WX0VOQUJMRUQKKyNpZmRlZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisjZW5kaWYKKyNpbmNsdWRlIDxsaWJ4bWwvZW5jb2RpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9IVE1McGFyc2VyLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorCitzdGF0aWMgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciB4bWxVVEYxNkxFSGFuZGxlciA9IE5VTEw7CitzdGF0aWMgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciB4bWxVVEYxNkJFSGFuZGxlciA9IE5VTEw7CisKK3R5cGVkZWYgc3RydWN0IF94bWxDaGFyRW5jb2RpbmdBbGlhcyB4bWxDaGFyRW5jb2RpbmdBbGlhczsKK3R5cGVkZWYgeG1sQ2hhckVuY29kaW5nQWxpYXMgKnhtbENoYXJFbmNvZGluZ0FsaWFzUHRyOworc3RydWN0IF94bWxDaGFyRW5jb2RpbmdBbGlhcyB7CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICBjb25zdCBjaGFyICphbGlhczsKK307CisKK3N0YXRpYyB4bWxDaGFyRW5jb2RpbmdBbGlhc1B0ciB4bWxDaGFyRW5jb2RpbmdBbGlhc2VzID0gTlVMTDsKK3N0YXRpYyBpbnQgeG1sQ2hhckVuY29kaW5nQWxpYXNlc05iID0gMDsKK3N0YXRpYyBpbnQgeG1sQ2hhckVuY29kaW5nQWxpYXNlc01heCA9IDA7CisKKyNpZmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorI2lmIDAKKyNkZWZpbmUgREVCVUdfRU5DT0RJTkcgIC8qIERlZmluZSB0aGlzIHRvIGdldCBlbmNvZGluZyB0cmFjZXMgKi8KKyNlbmRpZgorI2Vsc2UKKyNpZmRlZiBMSUJYTUxfSVNPODg1OVhfRU5BQkxFRAorc3RhdGljIHZvaWQgeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyc0lTTzg4NTl4ICh2b2lkKTsKKyNlbmRpZgorI2VuZGlmCisKK3N0YXRpYyBpbnQgeG1sTGl0dGxlRW5kaWFuID0gMTsKKworLyoqCisgKiB4bWxFbmNvZGluZ0Vyck1lbW9yeToKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGNvbmRpdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sRW5jb2RpbmdFcnJNZW1vcnkoY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9JMThOLCBYTUxfRVJSX05PX01FTU9SWSwgTlVMTCwgTlVMTCwgZXh0cmEpOworfQorCisvKioKKyAqIHhtbEVyckVuY29kaW5nOgorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKgorICogbiBlbmNvZGluZyBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sRW5jb2RpbmdFcnIoeG1sUGFyc2VyRXJyb3JzIGVycm9yLCBjb25zdCBjaGFyICptc2csIGNvbnN0IGNoYXIgKnZhbCkKK3sKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0ZST01fSTE4TiwgZXJyb3IsIFhNTF9FUlJfRkFUQUwsCisgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIHZhbCwgTlVMTCwgTlVMTCwgMCwgMCwgbXNnLCB2YWwpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlDb252ZXJzaW9ucyBUby9Gcm9tIFVURjggZW5jb2RpbmcJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogYXNjaWlUb1VURjg6CisgKiBAb3V0OiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQKKyAqIEBvdXRsZW46ICB0aGUgbGVuZ3RoIG9mIEBvdXQKKyAqIEBpbjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBBU0NJSSBjaGFycworICogQGlubGVuOiAgdGhlIGxlbmd0aCBvZiBAaW4KKyAqCisgKiBUYWtlIGEgYmxvY2sgb2YgQVNDSUkgY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIFVURi04CisgKiBibG9jayBvZiBjaGFycyBvdXQuCisgKiBSZXR1cm5zIDAgaWYgc3VjY2Vzcywgb3IgLTEgb3RoZXJ3aXNlCisgKiBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZAorICogICAgIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4KKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4KKyAqLworc3RhdGljIGludAorYXNjaWlUb1VURjgodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICB1bnNpZ25lZCBjaGFyKiBvdXRzdGFydCA9IG91dDsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBiYXNlID0gaW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogcHJvY2Vzc2VkID0gaW47CisgICAgdW5zaWduZWQgY2hhciogb3V0ZW5kID0gb3V0ICsgKm91dGxlbjsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbmVuZDsKKyAgICB1bnNpZ25lZCBpbnQgYzsKKworICAgIGluZW5kID0gaW4gKyAoKmlubGVuKTsKKyAgICB3aGlsZSAoKGluIDwgaW5lbmQpICYmIChvdXQgLSBvdXRzdGFydCArIDUgPCAqb3V0bGVuKSkgeworCWM9ICppbisrOworCisgICAgICAgIGlmIChvdXQgPj0gb3V0ZW5kKQorCSAgICBicmVhazsKKyAgICAgICAgaWYgKGMgPCAweDgwKSB7CisJICAgICpvdXQrKyA9IGM7CisJfSBlbHNlIHsgCisJICAgICpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKwkgICAgKmlubGVuID0gcHJvY2Vzc2VkIC0gYmFzZTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgCisJcHJvY2Vzc2VkID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIqKSBpbjsKKyAgICB9CisgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICppbmxlbiA9IHByb2Nlc3NlZCAtIGJhc2U7CisgICAgcmV0dXJuKCpvdXRsZW4pOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIFVURjhUb2FzY2lpOgorICogQG91dDogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0CisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnMKKyAqIEBpbmxlbjogIHRoZSBsZW5ndGggb2YgQGluCisgKgorICogVGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBBU0NJSQorICogYmxvY2sgb2YgY2hhcnMgb3V0LgorICoKKyAqIFJldHVybnMgMCBpZiBzdWNjZXNzLCAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMsIG9yIC0xIG90aGVyd2lzZQorICogVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQKKyAqICAgICBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGFibGUuCisgKiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuCisgKi8KK3N0YXRpYyBpbnQKK1VURjhUb2FzY2lpKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogcHJvY2Vzc2VkID0gaW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogb3V0ZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG91dHN0YXJ0ID0gb3V0OworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluc3RhcnQgPSBpbjsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbmVuZDsKKyAgICB1bnNpZ25lZCBpbnQgYywgZDsKKyAgICBpbnQgdHJhaWxpbmc7CisKKyAgICBpZiAoKG91dCA9PSBOVUxMKSB8fCAob3V0bGVuID09IE5VTEwpIHx8IChpbmxlbiA9PSBOVUxMKSkgcmV0dXJuKC0xKTsKKyAgICBpZiAoaW4gPT0gTlVMTCkgeworICAgICAgICAvKgorCSAqIGluaXRpYWxpemF0aW9uIG5vdGhpbmcgdG8gZG8KKwkgKi8KKwkqb3V0bGVuID0gMDsKKwkqaW5sZW4gPSAwOworCXJldHVybigwKTsKKyAgICB9CisgICAgaW5lbmQgPSBpbiArICgqaW5sZW4pOworICAgIG91dGVuZCA9IG91dCArICgqb3V0bGVuKTsKKyAgICB3aGlsZSAoaW4gPCBpbmVuZCkgeworCWQgPSAqaW4rKzsKKwlpZiAgICAgIChkIDwgMHg4MCkgIHsgYz0gZDsgdHJhaWxpbmc9IDA7IH0KKwllbHNlIGlmIChkIDwgMHhDMCkgeworCSAgICAvKiB0cmFpbGluZyBieXRlIGluIGxlYWRpbmcgcG9zaXRpb24gKi8KKwkgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCSAgICAqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCSAgICByZXR1cm4oLTIpOworICAgICAgICB9IGVsc2UgaWYgKGQgPCAweEUwKSAgeyBjPSBkICYgMHgxRjsgdHJhaWxpbmc9IDE7IH0KKyAgICAgICAgZWxzZSBpZiAoZCA8IDB4RjApICB7IGM9IGQgJiAweDBGOyB0cmFpbGluZz0gMjsgfQorICAgICAgICBlbHNlIGlmIChkIDwgMHhGOCkgIHsgYz0gZCAmIDB4MDc7IHRyYWlsaW5nPSAzOyB9CisJZWxzZSB7CisJICAgIC8qIG5vIGNoYW5jZSBmb3IgdGhpcyBpbiBBc2NpaSAqLworCSAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisJICAgICppbmxlbiA9IHByb2Nlc3NlZCAtIGluc3RhcnQ7CisJICAgIHJldHVybigtMik7CisJfQorCisJaWYgKGluZW5kIC0gaW4gPCB0cmFpbGluZykgeworCSAgICBicmVhazsKKwl9IAorCisJZm9yICggOyB0cmFpbGluZzsgdHJhaWxpbmctLSkgeworCSAgICBpZiAoKGluID49IGluZW5kKSB8fCAoKChkPSAqaW4rKykgJiAweEMwKSAhPSAweDgwKSkKKwkJYnJlYWs7CisJICAgIGMgPDw9IDY7CisJICAgIGMgfD0gZCAmIDB4M0Y7CisJfQorCisJLyogYXNzZXJ0aW9uOiBjIGlzIGEgc2luZ2xlIFVURi00IHZhbHVlICovCisJaWYgKGMgPCAweDgwKSB7CisJICAgIGlmIChvdXQgPj0gb3V0ZW5kKQorCQlicmVhazsKKwkgICAgKm91dCsrID0gYzsKKwl9IGVsc2UgeworCSAgICAvKiBubyBjaGFuY2UgZm9yIHRoaXMgaW4gQXNjaWkgKi8KKwkgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCSAgICAqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCSAgICByZXR1cm4oLTIpOworCX0KKwlwcm9jZXNzZWQgPSBpbjsKKyAgICB9CisgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICppbmxlbiA9IHByb2Nlc3NlZCAtIGluc3RhcnQ7CisgICAgcmV0dXJuKCpvdXRsZW4pOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIGlzb2xhdDFUb1VURjg6CisgKiBAb3V0OiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQKKyAqIEBvdXRsZW46ICB0aGUgbGVuZ3RoIG9mIEBvdXQKKyAqIEBpbjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBJU08gTGF0aW4gMSBjaGFycworICogQGlubGVuOiAgdGhlIGxlbmd0aCBvZiBAaW4KKyAqCisgKiBUYWtlIGEgYmxvY2sgb2YgSVNPIExhdGluIDEgY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIFVURi04CisgKiBibG9jayBvZiBjaGFycyBvdXQuCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBpZiBzdWNjZXNzLCBvciAtMSBvdGhlcndpc2UKKyAqIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkCisgKiAgICAgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLgorICogVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLgorICovCitpbnQKK2lzb2xhdDFUb1VURjgodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICB1bnNpZ25lZCBjaGFyKiBvdXRzdGFydCA9IG91dDsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBiYXNlID0gaW47CisgICAgdW5zaWduZWQgY2hhciogb3V0ZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluc3RvcDsKKworICAgIGlmICgob3V0ID09IE5VTEwpIHx8IChpbiA9PSBOVUxMKSB8fCAob3V0bGVuID09IE5VTEwpIHx8IChpbmxlbiA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworCisgICAgb3V0ZW5kID0gb3V0ICsgKm91dGxlbjsKKyAgICBpbmVuZCA9IGluICsgKCppbmxlbik7CisgICAgaW5zdG9wID0gaW5lbmQ7CisgICAgCisgICAgd2hpbGUgKGluIDwgaW5lbmQgJiYgb3V0IDwgb3V0ZW5kIC0gMSkgeworICAgIAlpZiAoKmluID49IDB4ODApIHsKKwkgICAgKm91dCsrID0gKCgoKmluKSA+PiAgNikgJiAweDFGKSB8IDB4QzA7CisgICAgICAgICpvdXQrKyA9ICgoKmluKSAmIDB4M0YpIHwgMHg4MDsKKwkgICAgKytpbjsKKwl9CisJaWYgKGluc3RvcCAtIGluID4gb3V0ZW5kIC0gb3V0KSBpbnN0b3AgPSBpbiArIChvdXRlbmQgLSBvdXQpOyAKKwl3aGlsZSAoaW4gPCBpbnN0b3AgJiYgKmluIDwgMHg4MCkgeworCSAgICAqb3V0KysgPSAqaW4rKzsKKwl9CisgICAgfQkKKyAgICBpZiAoaW4gPCBpbmVuZCAmJiBvdXQgPCBvdXRlbmQgJiYgKmluIDwgMHg4MCkgeworICAgICAgICAqb3V0KysgPSAqaW4rKzsKKyAgICB9CisgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICppbmxlbiA9IGluIC0gYmFzZTsKKyAgICByZXR1cm4oKm91dGxlbik7Cit9CisKKy8qKgorICogVVRGOFRvVVRGODoKKyAqIEBvdXQ6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAorICogQG91dGxlbjogIHRoZSBsZW5ndGggb2YgQG91dAorICogQGluYjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycworICogQGlubGVuYjogIHRoZSBsZW5ndGggb2YgQGluIGluIFVURi04IGNoYXJzCisgKgorICogTm8gb3AgY29weSBvcGVyYXRpb24gZm9yIFVURjggaGFuZGxpbmcuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG9yIC0xIGlmIGxhY2sgb2Ygc3BhY2UuCisgKiAgICAgVGhlIHZhbHVlIG9mICppbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQKKyAqICAgICBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGFibGUuCisgKi8KK3N0YXRpYyBpbnQKK1VURjhUb1VURjgodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5iLCBpbnQgKmlubGVuYikKK3sKKyAgICBpbnQgbGVuOworCisgICAgaWYgKChvdXQgPT0gTlVMTCkgfHwgKGluYiA9PSBOVUxMKSB8fCAob3V0bGVuID09IE5VTEwpIHx8IChpbmxlbmIgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoKm91dGxlbiA+ICppbmxlbmIpIHsKKwlsZW4gPSAqaW5sZW5iOworICAgIH0gZWxzZSB7CisJbGVuID0gKm91dGxlbjsKKyAgICB9CisgICAgaWYgKGxlbiA8IDApCisJcmV0dXJuKC0xKTsKKworICAgIG1lbWNweShvdXQsIGluYiwgbGVuKTsKKworICAgICpvdXRsZW4gPSBsZW47CisgICAgKmlubGVuYiA9IGxlbjsKKyAgICByZXR1cm4oKm91dGxlbik7Cit9CisKKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiBVVEY4VG9pc29sYXQxOgorICogQG91dDogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0CisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnMKKyAqIEBpbmxlbjogIHRoZSBsZW5ndGggb2YgQGluCisgKgorICogVGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBJU08gTGF0aW4gMQorICogYmxvY2sgb2YgY2hhcnMgb3V0LgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIGlmIHN1Y2Nlc3MsIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscywKKyAgICAgICAgICAgb3IgLTEgb3RoZXJ3aXNlCisgKiBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZAorICogICAgIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4KKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4KKyAqLworaW50CitVVEY4VG9pc29sYXQxKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogcHJvY2Vzc2VkID0gaW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogb3V0ZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG91dHN0YXJ0ID0gb3V0OworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluc3RhcnQgPSBpbjsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbmVuZDsKKyAgICB1bnNpZ25lZCBpbnQgYywgZDsKKyAgICBpbnQgdHJhaWxpbmc7CisKKyAgICBpZiAoKG91dCA9PSBOVUxMKSB8fCAob3V0bGVuID09IE5VTEwpIHx8IChpbmxlbiA9PSBOVUxMKSkgcmV0dXJuKC0xKTsKKyAgICBpZiAoaW4gPT0gTlVMTCkgeworICAgICAgICAvKgorCSAqIGluaXRpYWxpemF0aW9uIG5vdGhpbmcgdG8gZG8KKwkgKi8KKwkqb3V0bGVuID0gMDsKKwkqaW5sZW4gPSAwOworCXJldHVybigwKTsKKyAgICB9CisgICAgaW5lbmQgPSBpbiArICgqaW5sZW4pOworICAgIG91dGVuZCA9IG91dCArICgqb3V0bGVuKTsKKyAgICB3aGlsZSAoaW4gPCBpbmVuZCkgeworCWQgPSAqaW4rKzsKKwlpZiAgICAgIChkIDwgMHg4MCkgIHsgYz0gZDsgdHJhaWxpbmc9IDA7IH0KKwllbHNlIGlmIChkIDwgMHhDMCkgeworCSAgICAvKiB0cmFpbGluZyBieXRlIGluIGxlYWRpbmcgcG9zaXRpb24gKi8KKwkgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCSAgICAqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCSAgICByZXR1cm4oLTIpOworICAgICAgICB9IGVsc2UgaWYgKGQgPCAweEUwKSAgeyBjPSBkICYgMHgxRjsgdHJhaWxpbmc9IDE7IH0KKyAgICAgICAgZWxzZSBpZiAoZCA8IDB4RjApICB7IGM9IGQgJiAweDBGOyB0cmFpbGluZz0gMjsgfQorICAgICAgICBlbHNlIGlmIChkIDwgMHhGOCkgIHsgYz0gZCAmIDB4MDc7IHRyYWlsaW5nPSAzOyB9CisJZWxzZSB7CisJICAgIC8qIG5vIGNoYW5jZSBmb3IgdGhpcyBpbiBJc29MYXQxICovCisJICAgICpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKwkgICAgKmlubGVuID0gcHJvY2Vzc2VkIC0gaW5zdGFydDsKKwkgICAgcmV0dXJuKC0yKTsKKwl9CisKKwlpZiAoaW5lbmQgLSBpbiA8IHRyYWlsaW5nKSB7CisJICAgIGJyZWFrOworCX0gCisKKwlmb3IgKCA7IHRyYWlsaW5nOyB0cmFpbGluZy0tKSB7CisJICAgIGlmIChpbiA+PSBpbmVuZCkKKwkJYnJlYWs7CisJICAgIGlmICgoKGQ9ICppbisrKSAmIDB4QzApICE9IDB4ODApIHsKKwkJKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCQkqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCQlyZXR1cm4oLTIpOworCSAgICB9CisJICAgIGMgPDw9IDY7CisJICAgIGMgfD0gZCAmIDB4M0Y7CisJfQorCisJLyogYXNzZXJ0aW9uOiBjIGlzIGEgc2luZ2xlIFVURi00IHZhbHVlICovCisJaWYgKGMgPD0gMHhGRikgeworCSAgICBpZiAob3V0ID49IG91dGVuZCkKKwkJYnJlYWs7CisJICAgICpvdXQrKyA9IGM7CisJfSBlbHNlIHsKKwkgICAgLyogbm8gY2hhbmNlIGZvciB0aGlzIGluIElzb0xhdDEgKi8KKwkgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCSAgICAqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCSAgICByZXR1cm4oLTIpOworCX0KKwlwcm9jZXNzZWQgPSBpbjsKKyAgICB9CisgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICppbmxlbiA9IHByb2Nlc3NlZCAtIGluc3RhcnQ7CisgICAgcmV0dXJuKCpvdXRsZW4pOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIFVURjE2TEVUb1VURjg6CisgKiBAb3V0OiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQKKyAqIEBvdXRsZW46ICB0aGUgbGVuZ3RoIG9mIEBvdXQKKyAqIEBpbmI6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTE2TEUgcGFzc3dkIGFzIGEgYnl0ZSBhcnJheQorICogQGlubGVuYjogIHRoZSBsZW5ndGggb2YgQGluIGluIFVURi0xNkxFIGNoYXJzCisgKgorICogVGFrZSBhIGJsb2NrIG9mIFVURi0xNkxFIHVzaG9ydHMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIFVURi04CisgKiBibG9jayBvZiBjaGFycyBvdXQuIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgZW5kaWFuIHByb3BlcnR5CisgKiBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRoZSBuYXRpdmUgdHlwZSBvZiB0aGlzIG1hY2hpbmUgYW5kIHRoZQorICogaW5wdXRlZCBvbmUuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG9yIC0xIGlmIGxhY2sgb2Ygc3BhY2UsIG9yIC0yCisgKiAgICAgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzIChpZiAqaW4gaXMgbm90IGEgdmFsaWQgdXRmMTYgc3RyaW5nKQorICogICAgIFRoZSB2YWx1ZSBvZiAqaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkCisgKiAgICAgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLgorICovCitzdGF0aWMgaW50CitVVEYxNkxFVG9VVEY4KHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbmIsIGludCAqaW5sZW5iKQoreworICAgIHVuc2lnbmVkIGNoYXIqIG91dHN0YXJ0ID0gb3V0OworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHByb2Nlc3NlZCA9IGluYjsKKyAgICB1bnNpZ25lZCBjaGFyKiBvdXRlbmQgPSBvdXQgKyAqb3V0bGVuOworICAgIHVuc2lnbmVkIHNob3J0KiBpbiA9ICh1bnNpZ25lZCBzaG9ydCopIGluYjsKKyAgICB1bnNpZ25lZCBzaG9ydCogaW5lbmQ7CisgICAgdW5zaWduZWQgaW50IGMsIGQsIGlubGVuOworICAgIHVuc2lnbmVkIGNoYXIgKnRtcDsKKyAgICBpbnQgYml0czsKKworICAgIGlmICgoKmlubGVuYiAlIDIpID09IDEpCisgICAgICAgICgqaW5sZW5iKS0tOworICAgIGlubGVuID0gKmlubGVuYiAvIDI7CisgICAgaW5lbmQgPSBpbiArIGlubGVuOworICAgIHdoaWxlICgoaW4gPCBpbmVuZCkgJiYgKG91dCAtIG91dHN0YXJ0ICsgNSA8ICpvdXRsZW4pKSB7CisgICAgICAgIGlmICh4bWxMaXR0bGVFbmRpYW4pIHsKKwkgICAgYz0gKmluKys7CisJfSBlbHNlIHsKKwkgICAgdG1wID0gKHVuc2lnbmVkIGNoYXIgKikgaW47CisJICAgIGMgPSAqdG1wKys7CisJICAgIGMgPSBjIHwgKCgodW5zaWduZWQgaW50KSp0bXApIDw8IDgpOworCSAgICBpbisrOworCX0KKyAgICAgICAgaWYgKChjICYgMHhGQzAwKSA9PSAweEQ4MDApIHsgICAgLyogc3Vycm9nYXRlcyAqLworCSAgICBpZiAoaW4gPj0gaW5lbmQpIHsgICAgICAgICAgIC8qIChpbiA+IGluZW5kKSBzaG91bGRuJ3QgaGFwcGVucyAqLworCQlicmVhazsKKwkgICAgfQorCSAgICBpZiAoeG1sTGl0dGxlRW5kaWFuKSB7CisJCWQgPSAqaW4rKzsKKwkgICAgfSBlbHNlIHsKKwkJdG1wID0gKHVuc2lnbmVkIGNoYXIgKikgaW47CisJCWQgPSAqdG1wKys7CisJCWQgPSBkIHwgKCgodW5zaWduZWQgaW50KSp0bXApIDw8IDgpOworCQlpbisrOworCSAgICB9CisgICAgICAgICAgICBpZiAoKGQgJiAweEZDMDApID09IDB4REMwMCkgeworICAgICAgICAgICAgICAgIGMgJj0gMHgwM0ZGOworICAgICAgICAgICAgICAgIGMgPDw9IDEwOworICAgICAgICAgICAgICAgIGMgfD0gZCAmIDB4MDNGRjsKKyAgICAgICAgICAgICAgICBjICs9IDB4MTAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKwkJKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCQkqaW5sZW5iID0gcHJvY2Vzc2VkIC0gaW5iOworCSAgICAgICAgcmV0dXJuKC0yKTsKKwkgICAgfQorICAgICAgICB9CisKKwkvKiBhc3NlcnRpb246IGMgaXMgYSBzaW5nbGUgVVRGLTQgdmFsdWUgKi8KKyAgICAgICAgaWYgKG91dCA+PSBvdXRlbmQpCisJICAgIGJyZWFrOworICAgICAgICBpZiAgICAgIChjIDwgICAgMHg4MCkgeyAgKm91dCsrPSAgYzsgICAgICAgICAgICAgICAgYml0cz0gLTY7IH0KKyAgICAgICAgZWxzZSBpZiAoYyA8ICAgMHg4MDApIHsgICpvdXQrKz0gKChjID4+ICA2KSAmIDB4MUYpIHwgMHhDMDsgIGJpdHM9ICAwOyB9CisgICAgICAgIGVsc2UgaWYgKGMgPCAweDEwMDAwKSB7ICAqb3V0Kys9ICgoYyA+PiAxMikgJiAweDBGKSB8IDB4RTA7ICBiaXRzPSAgNjsgfQorICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgeyAgKm91dCsrPSAoKGMgPj4gMTgpICYgMHgwNykgfCAweEYwOyAgYml0cz0gMTI7IH0KKyAKKyAgICAgICAgZm9yICggOyBiaXRzID49IDA7IGJpdHMtPSA2KSB7CisgICAgICAgICAgICBpZiAob3V0ID49IG91dGVuZCkKKwkgICAgICAgIGJyZWFrOworICAgICAgICAgICAgKm91dCsrPSAoKGMgPj4gYml0cykgJiAweDNGKSB8IDB4ODA7CisgICAgICAgIH0KKwlwcm9jZXNzZWQgPSAoY29uc3QgdW5zaWduZWQgY2hhciopIGluOworICAgIH0KKyAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgKmlubGVuYiA9IHByb2Nlc3NlZCAtIGluYjsKKyAgICByZXR1cm4oKm91dGxlbik7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogVVRGOFRvVVRGMTZMRToKKyAqIEBvdXRiOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQKKyAqIEBvdXRsZW46ICB0aGUgbGVuZ3RoIG9mIEBvdXRiCisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnMKKyAqIEBpbmxlbjogIHRoZSBsZW5ndGggb2YgQGluCisgKgorICogVGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBVVEYtMTZMRQorICogYmxvY2sgb2YgY2hhcnMgb3V0LgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLCBvciAtMSBpZiBsYWNrIG9mIHNwYWNlLCBvciAtMgorICogICAgIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlsZWQuIAorICovCitzdGF0aWMgaW50CitVVEY4VG9VVEYxNkxFKHVuc2lnbmVkIGNoYXIqIG91dGIsIGludCAqb3V0bGVuLAorICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pCit7CisgICAgdW5zaWduZWQgc2hvcnQqIG91dCA9ICh1bnNpZ25lZCBzaG9ydCopIG91dGI7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogcHJvY2Vzc2VkID0gaW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqY29uc3QgaW5zdGFydCA9IGluOworICAgIHVuc2lnbmVkIHNob3J0KiBvdXRzdGFydD0gb3V0OworICAgIHVuc2lnbmVkIHNob3J0KiBvdXRlbmQ7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5lbmQ7CisgICAgdW5zaWduZWQgaW50IGMsIGQ7CisgICAgaW50IHRyYWlsaW5nOworICAgIHVuc2lnbmVkIGNoYXIgKnRtcDsKKyAgICB1bnNpZ25lZCBzaG9ydCB0bXAxLCB0bXAyOworCisgICAgLyogVVRGMTZMRSBlbmNvZGluZyBoYXMgbm8gQk9NICovCisgICAgaWYgKChvdXQgPT0gTlVMTCkgfHwgKG91dGxlbiA9PSBOVUxMKSB8fCAoaW5sZW4gPT0gTlVMTCkpIHJldHVybigtMSk7CisgICAgaWYgKGluID09IE5VTEwpIHsKKwkqb3V0bGVuID0gMDsKKwkqaW5sZW4gPSAwOworCXJldHVybigwKTsKKyAgICB9CisgICAgaW5lbmQ9IGluICsgKmlubGVuOworICAgIG91dGVuZCA9IG91dCArICgqb3V0bGVuIC8gMik7CisgICAgd2hpbGUgKGluIDwgaW5lbmQpIHsKKyAgICAgIGQ9ICppbisrOworICAgICAgaWYgICAgICAoZCA8IDB4ODApICB7IGM9IGQ7IHRyYWlsaW5nPSAwOyB9CisgICAgICBlbHNlIGlmIChkIDwgMHhDMCkgeworICAgICAgICAgIC8qIHRyYWlsaW5nIGJ5dGUgaW4gbGVhZGluZyBwb3NpdGlvbiAqLworCSAgKm91dGxlbiA9IChvdXQgLSBvdXRzdGFydCkgKiAyOworCSAgKmlubGVuID0gcHJvY2Vzc2VkIC0gaW5zdGFydDsKKwkgIHJldHVybigtMik7CisgICAgICB9IGVsc2UgaWYgKGQgPCAweEUwKSAgeyBjPSBkICYgMHgxRjsgdHJhaWxpbmc9IDE7IH0KKyAgICAgIGVsc2UgaWYgKGQgPCAweEYwKSAgeyBjPSBkICYgMHgwRjsgdHJhaWxpbmc9IDI7IH0KKyAgICAgIGVsc2UgaWYgKGQgPCAweEY4KSAgeyBjPSBkICYgMHgwNzsgdHJhaWxpbmc9IDM7IH0KKyAgICAgIGVsc2UgeworCS8qIG5vIGNoYW5jZSBmb3IgdGhpcyBpbiBVVEYtMTYgKi8KKwkqb3V0bGVuID0gKG91dCAtIG91dHN0YXJ0KSAqIDI7CisJKmlubGVuID0gcHJvY2Vzc2VkIC0gaW5zdGFydDsKKwlyZXR1cm4oLTIpOworICAgICAgfQorCisgICAgICBpZiAoaW5lbmQgLSBpbiA8IHRyYWlsaW5nKSB7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9IAorCisgICAgICBmb3IgKCA7IHRyYWlsaW5nOyB0cmFpbGluZy0tKSB7CisgICAgICAgICAgaWYgKChpbiA+PSBpbmVuZCkgfHwgKCgoZD0gKmluKyspICYgMHhDMCkgIT0gMHg4MCkpCisJICAgICAgYnJlYWs7CisgICAgICAgICAgYyA8PD0gNjsKKyAgICAgICAgICBjIHw9IGQgJiAweDNGOworICAgICAgfQorCisgICAgICAvKiBhc3NlcnRpb246IGMgaXMgYSBzaW5nbGUgVVRGLTQgdmFsdWUgKi8KKyAgICAgICAgaWYgKGMgPCAweDEwMDAwKSB7CisgICAgICAgICAgICBpZiAob3V0ID49IG91dGVuZCkKKwkgICAgICAgIGJyZWFrOworCSAgICBpZiAoeG1sTGl0dGxlRW5kaWFuKSB7CisJCSpvdXQrKyA9IGM7CisJICAgIH0gZWxzZSB7CisJCXRtcCA9ICh1bnNpZ25lZCBjaGFyICopIG91dDsKKwkJKnRtcCA9IGMgOworCQkqKHRtcCArIDEpID0gYyA+PiA4IDsKKwkJb3V0Kys7CisJICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChjIDwgMHgxMTAwMDApIHsKKyAgICAgICAgICAgIGlmIChvdXQrMSA+PSBvdXRlbmQpCisJICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGMgLT0gMHgxMDAwMDsKKwkgICAgaWYgKHhtbExpdHRsZUVuZGlhbikgeworCQkqb3V0KysgPSAweEQ4MDAgfCAoYyA+PiAxMCk7CisJCSpvdXQrKyA9IDB4REMwMCB8IChjICYgMHgwM0ZGKTsKKwkgICAgfSBlbHNlIHsKKwkJdG1wMSA9IDB4RDgwMCB8IChjID4+IDEwKTsKKwkJdG1wID0gKHVuc2lnbmVkIGNoYXIgKikgb3V0OworCQkqdG1wID0gKHVuc2lnbmVkIGNoYXIpIHRtcDE7CisJCSoodG1wICsgMSkgPSB0bXAxID4+IDg7CisJCW91dCsrOworCisJCXRtcDIgPSAweERDMDAgfCAoYyAmIDB4MDNGRik7CisJCXRtcCA9ICh1bnNpZ25lZCBjaGFyICopIG91dDsKKwkJKnRtcCAgPSAodW5zaWduZWQgY2hhcikgdG1wMjsKKwkJKih0bXAgKyAxKSA9IHRtcDIgPj4gODsKKwkJb3V0Kys7CisJICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlCisJICAgIGJyZWFrOworCXByb2Nlc3NlZCA9IGluOworICAgIH0KKyAgICAqb3V0bGVuID0gKG91dCAtIG91dHN0YXJ0KSAqIDI7CisgICAgKmlubGVuID0gcHJvY2Vzc2VkIC0gaW5zdGFydDsKKyAgICByZXR1cm4oKm91dGxlbik7Cit9CisKKy8qKgorICogVVRGOFRvVVRGMTY6CisgKiBAb3V0YjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0YgorICogQGluOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzCisgKiBAaW5sZW46ICB0aGUgbGVuZ3RoIG9mIEBpbgorICoKKyAqIFRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gVVRGLTE2CisgKiBibG9jayBvZiBjaGFycyBvdXQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG9yIC0xIGlmIGxhY2sgb2Ygc3BhY2UsIG9yIC0yCisgKiAgICAgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxlZC4gCisgKi8KK3N0YXRpYyBpbnQKK1VURjhUb1VURjE2KHVuc2lnbmVkIGNoYXIqIG91dGIsIGludCAqb3V0bGVuLAorICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pCit7CisgICAgaWYgKGluID09IE5VTEwpIHsKKwkvKgorCSAqIGluaXRpYWxpemF0aW9uLCBhZGQgdGhlIEJ5dGUgT3JkZXIgTWFyayBmb3IgVVRGLTE2TEUKKwkgKi8KKyAgICAgICAgaWYgKCpvdXRsZW4gPj0gMikgeworCSAgICBvdXRiWzBdID0gMHhGRjsKKwkgICAgb3V0YlsxXSA9IDB4RkU7CisJICAgICpvdXRsZW4gPSAyOworCSAgICAqaW5sZW4gPSAwOworI2lmZGVmIERFQlVHX0VOQ09ESU5HCisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJBZGRlZCBGRkZFIEJ5dGUgT3JkZXIgTWFya1xuIik7CisjZW5kaWYKKwkgICAgcmV0dXJuKDIpOworCX0KKwkqb3V0bGVuID0gMDsKKwkqaW5sZW4gPSAwOworCXJldHVybigwKTsKKyAgICB9CisgICAgcmV0dXJuIChVVEY4VG9VVEYxNkxFKG91dGIsIG91dGxlbiwgaW4sIGlubGVuKSk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKgorICogVVRGMTZCRVRvVVRGODoKKyAqIEBvdXQ6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAorICogQG91dGxlbjogIHRoZSBsZW5ndGggb2YgQG91dAorICogQGluYjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtMTYgcGFzc2VkIGFzIGEgYnl0ZSBhcnJheQorICogQGlubGVuYjogIHRoZSBsZW5ndGggb2YgQGluIGluIFVURi0xNiBjaGFycworICoKKyAqIFRha2UgYSBibG9jayBvZiBVVEYtMTYgdXNob3J0cyBpbiBhbmQgdHJ5IHRvIGNvbnZlcnQgaXQgdG8gYW4gVVRGLTgKKyAqIGJsb2NrIG9mIGNoYXJzIG91dC4gVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoZSBlbmRpYW4gcHJvcGVydHkKKyAqIGlzIHRoZSBzYW1lIGJldHdlZW4gdGhlIG5hdGl2ZSB0eXBlIG9mIHRoaXMgbWFjaGluZSBhbmQgdGhlCisgKiBpbnB1dGVkIG9uZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgb3IgLTEgaWYgbGFjayBvZiBzcGFjZSwgb3IgLTIKKyAqICAgICBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGlmICppbiBpcyBub3QgYSB2YWxpZCB1dGYxNiBzdHJpbmcpCisgKiBUaGUgdmFsdWUgb2YgKmlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZAorICogICAgIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4KKyAqLworc3RhdGljIGludAorVVRGMTZCRVRvVVRGOCh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5iLCBpbnQgKmlubGVuYikKK3sKKyAgICB1bnNpZ25lZCBjaGFyKiBvdXRzdGFydCA9IG91dDsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBwcm9jZXNzZWQgPSBpbmI7CisgICAgdW5zaWduZWQgY2hhciogb3V0ZW5kID0gb3V0ICsgKm91dGxlbjsKKyAgICB1bnNpZ25lZCBzaG9ydCogaW4gPSAodW5zaWduZWQgc2hvcnQqKSBpbmI7CisgICAgdW5zaWduZWQgc2hvcnQqIGluZW5kOworICAgIHVuc2lnbmVkIGludCBjLCBkLCBpbmxlbjsKKyAgICB1bnNpZ25lZCBjaGFyICp0bXA7CisgICAgaW50IGJpdHM7CisKKyAgICBpZiAoKCppbmxlbmIgJSAyKSA9PSAxKQorICAgICAgICAoKmlubGVuYiktLTsKKyAgICBpbmxlbiA9ICppbmxlbmIgLyAyOworICAgIGluZW5kPSBpbiArIGlubGVuOworICAgIHdoaWxlIChpbiA8IGluZW5kKSB7CisJaWYgKHhtbExpdHRsZUVuZGlhbikgeworCSAgICB0bXAgPSAodW5zaWduZWQgY2hhciAqKSBpbjsKKwkgICAgYyA9ICp0bXArKzsKKwkgICAgYyA9IGMgPDwgODsKKwkgICAgYyA9IGMgfCAodW5zaWduZWQgaW50KSAqdG1wOworCSAgICBpbisrOworCX0gZWxzZSB7CisJICAgIGM9ICppbisrOworCX0gCisgICAgICAgIGlmICgoYyAmIDB4RkMwMCkgPT0gMHhEODAwKSB7ICAgIC8qIHN1cnJvZ2F0ZXMgKi8KKwkgICAgaWYgKGluID49IGluZW5kKSB7ICAgICAgICAgICAvKiAoaW4gPiBpbmVuZCkgc2hvdWxkbid0IGhhcHBlbnMgKi8KKwkJKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCQkqaW5sZW5iID0gcHJvY2Vzc2VkIC0gaW5iOworCSAgICAgICAgcmV0dXJuKC0yKTsKKwkgICAgfQorCSAgICBpZiAoeG1sTGl0dGxlRW5kaWFuKSB7CisJCXRtcCA9ICh1bnNpZ25lZCBjaGFyICopIGluOworCQlkID0gKnRtcCsrOworCQlkID0gZCA8PCA4OworCQlkID0gZCB8ICh1bnNpZ25lZCBpbnQpICp0bXA7CisJCWluKys7CisJICAgIH0gZWxzZSB7CisJCWQ9ICppbisrOworCSAgICB9CisgICAgICAgICAgICBpZiAoKGQgJiAweEZDMDApID09IDB4REMwMCkgeworICAgICAgICAgICAgICAgIGMgJj0gMHgwM0ZGOworICAgICAgICAgICAgICAgIGMgPDw9IDEwOworICAgICAgICAgICAgICAgIGMgfD0gZCAmIDB4MDNGRjsKKyAgICAgICAgICAgICAgICBjICs9IDB4MTAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKwkJKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworCQkqaW5sZW5iID0gcHJvY2Vzc2VkIC0gaW5iOworCSAgICAgICAgcmV0dXJuKC0yKTsKKwkgICAgfQorICAgICAgICB9CisKKwkvKiBhc3NlcnRpb246IGMgaXMgYSBzaW5nbGUgVVRGLTQgdmFsdWUgKi8KKyAgICAgICAgaWYgKG91dCA+PSBvdXRlbmQpIAorCSAgICBicmVhazsKKyAgICAgICAgaWYgICAgICAoYyA8ICAgIDB4ODApIHsgICpvdXQrKz0gIGM7ICAgICAgICAgICAgICAgIGJpdHM9IC02OyB9CisgICAgICAgIGVsc2UgaWYgKGMgPCAgIDB4ODAwKSB7ICAqb3V0Kys9ICgoYyA+PiAgNikgJiAweDFGKSB8IDB4QzA7ICBiaXRzPSAgMDsgfQorICAgICAgICBlbHNlIGlmIChjIDwgMHgxMDAwMCkgeyAgKm91dCsrPSAoKGMgPj4gMTIpICYgMHgwRikgfCAweEUwOyAgYml0cz0gIDY7IH0KKyAgICAgICAgZWxzZSAgICAgICAgICAgICAgICAgIHsgICpvdXQrKz0gKChjID4+IDE4KSAmIDB4MDcpIHwgMHhGMDsgIGJpdHM9IDEyOyB9CisgCisgICAgICAgIGZvciAoIDsgYml0cyA+PSAwOyBiaXRzLT0gNikgeworICAgICAgICAgICAgaWYgKG91dCA+PSBvdXRlbmQpIAorCSAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAqb3V0Kys9ICgoYyA+PiBiaXRzKSAmIDB4M0YpIHwgMHg4MDsKKyAgICAgICAgfQorCXByb2Nlc3NlZCA9IChjb25zdCB1bnNpZ25lZCBjaGFyKikgaW47CisgICAgfQorICAgICpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKyAgICAqaW5sZW5iID0gcHJvY2Vzc2VkIC0gaW5iOworICAgIHJldHVybigqb3V0bGVuKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiBVVEY4VG9VVEYxNkJFOgorICogQG91dGI6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAorICogQG91dGxlbjogIHRoZSBsZW5ndGggb2YgQG91dGIKKyAqIEBpbjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycworICogQGlubGVuOiAgdGhlIGxlbmd0aCBvZiBAaW4KKyAqCisgKiBUYWtlIGEgYmxvY2sgb2YgVVRGLTggY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIFVURi0xNkJFCisgKiBibG9jayBvZiBjaGFycyBvdXQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiwgb3IgLTEgYnkgbGFjayBvZiBzcGFjZSwgb3IgLTIKKyAqICAgICBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbGVkLiAKKyAqLworc3RhdGljIGludAorVVRGOFRvVVRGMTZCRSh1bnNpZ25lZCBjaGFyKiBvdXRiLCBpbnQgKm91dGxlbiwKKyAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKQoreworICAgIHVuc2lnbmVkIHNob3J0KiBvdXQgPSAodW5zaWduZWQgc2hvcnQqKSBvdXRiOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHByb2Nlc3NlZCA9IGluOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvbnN0IGluc3RhcnQgPSBpbjsKKyAgICB1bnNpZ25lZCBzaG9ydCogb3V0c3RhcnQ9IG91dDsKKyAgICB1bnNpZ25lZCBzaG9ydCogb3V0ZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluZW5kOworICAgIHVuc2lnbmVkIGludCBjLCBkOworICAgIGludCB0cmFpbGluZzsKKyAgICB1bnNpZ25lZCBjaGFyICp0bXA7CisgICAgdW5zaWduZWQgc2hvcnQgdG1wMSwgdG1wMjsKKworICAgIC8qIFVURi0xNkJFIGhhcyBubyBCT00gKi8KKyAgICBpZiAoKG91dGIgPT0gTlVMTCkgfHwgKG91dGxlbiA9PSBOVUxMKSB8fCAoaW5sZW4gPT0gTlVMTCkpIHJldHVybigtMSk7CisgICAgaWYgKGluID09IE5VTEwpIHsKKwkqb3V0bGVuID0gMDsKKwkqaW5sZW4gPSAwOworCXJldHVybigwKTsKKyAgICB9CisgICAgaW5lbmQ9IGluICsgKmlubGVuOworICAgIG91dGVuZCA9IG91dCArICgqb3V0bGVuIC8gMik7CisgICAgd2hpbGUgKGluIDwgaW5lbmQpIHsKKyAgICAgIGQ9ICppbisrOworICAgICAgaWYgICAgICAoZCA8IDB4ODApICB7IGM9IGQ7IHRyYWlsaW5nPSAwOyB9CisgICAgICBlbHNlIGlmIChkIDwgMHhDMCkgIHsKKyAgICAgICAgICAvKiB0cmFpbGluZyBieXRlIGluIGxlYWRpbmcgcG9zaXRpb24gKi8KKwkgICpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKwkgICppbmxlbiA9IHByb2Nlc3NlZCAtIGluc3RhcnQ7CisJICByZXR1cm4oLTIpOworICAgICAgfSBlbHNlIGlmIChkIDwgMHhFMCkgIHsgYz0gZCAmIDB4MUY7IHRyYWlsaW5nPSAxOyB9CisgICAgICBlbHNlIGlmIChkIDwgMHhGMCkgIHsgYz0gZCAmIDB4MEY7IHRyYWlsaW5nPSAyOyB9CisgICAgICBlbHNlIGlmIChkIDwgMHhGOCkgIHsgYz0gZCAmIDB4MDc7IHRyYWlsaW5nPSAzOyB9CisgICAgICBlbHNlIHsKKyAgICAgICAgICAvKiBubyBjaGFuY2UgZm9yIHRoaXMgaW4gVVRGLTE2ICovCisJICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisJICAqaW5sZW4gPSBwcm9jZXNzZWQgLSBpbnN0YXJ0OworCSAgcmV0dXJuKC0yKTsKKyAgICAgIH0KKworICAgICAgaWYgKGluZW5kIC0gaW4gPCB0cmFpbGluZykgeworICAgICAgICAgIGJyZWFrOworICAgICAgfSAKKworICAgICAgZm9yICggOyB0cmFpbGluZzsgdHJhaWxpbmctLSkgeworICAgICAgICAgIGlmICgoaW4gPj0gaW5lbmQpIHx8ICgoKGQ9ICppbisrKSAmIDB4QzApICE9IDB4ODApKSAgYnJlYWs7CisgICAgICAgICAgYyA8PD0gNjsKKyAgICAgICAgICBjIHw9IGQgJiAweDNGOworICAgICAgfQorCisgICAgICAvKiBhc3NlcnRpb246IGMgaXMgYSBzaW5nbGUgVVRGLTQgdmFsdWUgKi8KKyAgICAgICAgaWYgKGMgPCAweDEwMDAwKSB7CisgICAgICAgICAgICBpZiAob3V0ID49IG91dGVuZCkgIGJyZWFrOworCSAgICBpZiAoeG1sTGl0dGxlRW5kaWFuKSB7CisJCXRtcCA9ICh1bnNpZ25lZCBjaGFyICopIG91dDsKKwkJKnRtcCA9IGMgPj4gODsKKwkJKih0bXAgKyAxKSA9IGM7CisJCW91dCsrOworCSAgICB9IGVsc2UgeworCQkqb3V0KysgPSBjOworCSAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYyA8IDB4MTEwMDAwKSB7CisgICAgICAgICAgICBpZiAob3V0KzEgPj0gb3V0ZW5kKSAgYnJlYWs7CisgICAgICAgICAgICBjIC09IDB4MTAwMDA7CisJICAgIGlmICh4bWxMaXR0bGVFbmRpYW4pIHsKKwkJdG1wMSA9IDB4RDgwMCB8IChjID4+IDEwKTsKKwkJdG1wID0gKHVuc2lnbmVkIGNoYXIgKikgb3V0OworCQkqdG1wID0gdG1wMSA+PiA4OworCQkqKHRtcCArIDEpID0gKHVuc2lnbmVkIGNoYXIpIHRtcDE7CisJCW91dCsrOworCisJCXRtcDIgPSAweERDMDAgfCAoYyAmIDB4MDNGRik7CisJCXRtcCA9ICh1bnNpZ25lZCBjaGFyICopIG91dDsKKwkJKnRtcCA9IHRtcDIgPj4gODsKKwkJKih0bXAgKyAxKSA9ICh1bnNpZ25lZCBjaGFyKSB0bXAyOworCQlvdXQrKzsKKwkgICAgfSBlbHNlIHsKKwkJKm91dCsrID0gMHhEODAwIHwgKGMgPj4gMTApOworCQkqb3V0KysgPSAweERDMDAgfCAoYyAmIDB4MDNGRik7CisJICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlCisJICAgIGJyZWFrOworCXByb2Nlc3NlZCA9IGluOworICAgIH0KKyAgICAqb3V0bGVuID0gKG91dCAtIG91dHN0YXJ0KSAqIDI7CisgICAgKmlubGVuID0gcHJvY2Vzc2VkIC0gaW5zdGFydDsKKyAgICByZXR1cm4oKm91dGxlbik7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUdlbmVyaWMgZW5jb2RpbmcgaGFuZGxpbmcgcm91dGluZXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sRGV0ZWN0Q2hhckVuY29kaW5nOgorICogQGluOiAgYSBwb2ludGVyIHRvIHRoZSBmaXJzdCBieXRlcyBvZiB0aGUgWE1MIGVudGl0eSwgbXVzdCBiZSBhdCBsZWFzdAorICogICAgICAgMiBieXRlcyBsb25nIChhdCBsZWFzdCA0IGlmIGVuY29kaW5nIGlzIFVURjQgdmFyaWFudCkuCisgKiBAbGVuOiAgcG9pbnRlciB0byB0aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIKKyAqCisgKiBHdWVzcyB0aGUgZW5jb2Rpbmcgb2YgdGhlIGVudGl0eSB1c2luZyB0aGUgZmlyc3QgYnl0ZXMgb2YgdGhlIGVudGl0eSBjb250ZW50CisgKiBhY2NvcmRpbmcgdG8gdGhlIG5vbi1ub3JtYXRpdmUgYXBwZW5kaXggRiBvZiB0aGUgWE1MLTEuMCByZWNvbW1lbmRhdGlvbi4KKyAqIAorICogUmV0dXJucyBvbmUgb2YgdGhlIFhNTF9DSEFSX0VOQ09ESU5HXy4uLiB2YWx1ZXMuCisgKi8KK3htbENoYXJFbmNvZGluZworeG1sRGV0ZWN0Q2hhckVuY29kaW5nKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgbGVuKQoreworICAgIGlmIChpbiA9PSBOVUxMKSAKKyAgICAgICAgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChsZW4gPj0gNCkgeworCWlmICgoaW5bMF0gPT0gMHgwMCkgJiYgKGluWzFdID09IDB4MDApICYmCisJICAgIChpblsyXSA9PSAweDAwKSAmJiAoaW5bM10gPT0gMHgzQykpCisJICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkUpOworCWlmICgoaW5bMF0gPT0gMHgzQykgJiYgKGluWzFdID09IDB4MDApICYmCisJICAgIChpblsyXSA9PSAweDAwKSAmJiAoaW5bM10gPT0gMHgwMCkpCisJICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19VQ1M0TEUpOworCWlmICgoaW5bMF0gPT0gMHgwMCkgJiYgKGluWzFdID09IDB4MDApICYmCisJICAgIChpblsyXSA9PSAweDNDKSAmJiAoaW5bM10gPT0gMHgwMCkpCisJICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzIxNDMpOworCWlmICgoaW5bMF0gPT0gMHgwMCkgJiYgKGluWzFdID09IDB4M0MpICYmCisJICAgIChpblsyXSA9PSAweDAwKSAmJiAoaW5bM10gPT0gMHgwMCkpCisJICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTIpOworCWlmICgoaW5bMF0gPT0gMHg0QykgJiYgKGluWzFdID09IDB4NkYpICYmCisJICAgIChpblsyXSA9PSAweEE3KSAmJiAoaW5bM10gPT0gMHg5NCkpCisJICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19FQkNESUMpOworCWlmICgoaW5bMF0gPT0gMHgzQykgJiYgKGluWzFdID09IDB4M0YpICYmCisJICAgIChpblsyXSA9PSAweDc4KSAmJiAoaW5bM10gPT0gMHg2RCkpCisJICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19VVEY4KTsKKwkvKgorCSAqIEFsdGhvdWdoIG5vdCBwYXJ0IG9mIHRoZSByZWNvbW1lbmRhdGlvbiwgd2UgYWxzbworCSAqIGF0dGVtcHQgYW4gImF1dG8tcmVjb2duaXRpb24iIG9mIFVURi0xNkxFIGFuZAorCSAqIFVURi0xNkJFIGVuY29kaW5ncy4KKwkgKi8KKwlpZiAoKGluWzBdID09IDB4M0MpICYmIChpblsxXSA9PSAweDAwKSAmJgorCSAgICAoaW5bMl0gPT0gMHgzRikgJiYgKGluWzNdID09IDB4MDApKQorCSAgICByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRSk7CisJaWYgKChpblswXSA9PSAweDAwKSAmJiAoaW5bMV0gPT0gMHgzQykgJiYKKwkgICAgKGluWzJdID09IDB4MDApICYmIChpblszXSA9PSAweDNGKSkKKwkgICAgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkUpOworICAgIH0KKyAgICBpZiAobGVuID49IDMpIHsKKwkvKgorCSAqIEVycmF0YSBvbiBYTUwtMS4wIEp1bmUgMjAgMjAwMQorCSAqIFdlIG5vdyBhbGxvdyBhbiBVVEY4IGVuY29kZWQgQk9NCisJICovCisJaWYgKChpblswXSA9PSAweEVGKSAmJiAoaW5bMV0gPT0gMHhCQikgJiYKKwkgICAgKGluWzJdID09IDB4QkYpKQorCSAgICByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCk7CisgICAgfQorICAgIC8qIEZvciBVVEYtMTYgd2UgY2FuIHJlY29nbml6ZSBieSB0aGUgQk9NICovCisgICAgaWYgKGxlbiA+PSAyKSB7CisJaWYgKChpblswXSA9PSAweEZFKSAmJiAoaW5bMV0gPT0gMHhGRikpCisJICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19VVEYxNkJFKTsKKwlpZiAoKGluWzBdID09IDB4RkYpICYmIChpblsxXSA9PSAweEZFKSkKKwkgICAgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2TEUpOworICAgIH0KKyAgICByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7Cit9CisKKy8qKgorICogeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlczoKKyAqCisgKiBVbnJlZ2lzdGVycyBhbGwgYWxpYXNlcworICovCit2b2lkCit4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzKHZvaWQpIHsKKyAgICBpbnQgaTsKKworICAgIGlmICh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzID09IE5VTEwpCisJcmV0dXJuOworCisgICAgZm9yIChpID0gMDtpIDwgeG1sQ2hhckVuY29kaW5nQWxpYXNlc05iO2krKykgeworCWlmICh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzW2ldLm5hbWUgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSgoY2hhciAqKSB4bWxDaGFyRW5jb2RpbmdBbGlhc2VzW2ldLm5hbWUpOworCWlmICh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzW2ldLmFsaWFzICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKGNoYXIgKikgeG1sQ2hhckVuY29kaW5nQWxpYXNlc1tpXS5hbGlhcyk7CisgICAgfQorICAgIHhtbENoYXJFbmNvZGluZ0FsaWFzZXNOYiA9IDA7CisgICAgeG1sQ2hhckVuY29kaW5nQWxpYXNlc01heCA9IDA7CisgICAgeG1sRnJlZSh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzKTsKKyAgICB4bWxDaGFyRW5jb2RpbmdBbGlhc2VzID0gTlVMTDsKK30KKworLyoqCisgKiB4bWxHZXRFbmNvZGluZ0FsaWFzOgorICogQGFsaWFzOiAgdGhlIGFsaWFzIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KQorICoKKyAqIExvb2t1cCBhbiBlbmNvZGluZyBuYW1lIGZvciB0aGUgZ2l2ZW4gYWxpYXMuCisgKiAKKyAqIFJldHVybnMgTlVMTCBpZiBub3QgZm91bmQsIG90aGVyd2lzZSB0aGUgb3JpZ2luYWwgbmFtZQorICovCitjb25zdCBjaGFyICoKK3htbEdldEVuY29kaW5nQWxpYXMoY29uc3QgY2hhciAqYWxpYXMpIHsKKyAgICBpbnQgaTsKKyAgICBjaGFyIHVwcGVyWzEwMF07CisKKyAgICBpZiAoYWxpYXMgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBpZiAoeG1sQ2hhckVuY29kaW5nQWxpYXNlcyA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIGZvciAoaSA9IDA7aSA8IDk5O2krKykgeworICAgICAgICB1cHBlcltpXSA9IHRvdXBwZXIoYWxpYXNbaV0pOworCWlmICh1cHBlcltpXSA9PSAwKSBicmVhazsKKyAgICB9CisgICAgdXBwZXJbaV0gPSAwOworCisgICAgLyoKKyAgICAgKiBXYWxrIGRvd24gdGhlIGxpc3QgbG9va2luZyBmb3IgYSBkZWZpbml0aW9uIG9mIHRoZSBhbGlhcworICAgICAqLworICAgIGZvciAoaSA9IDA7aSA8IHhtbENoYXJFbmNvZGluZ0FsaWFzZXNOYjtpKyspIHsKKwlpZiAoIXN0cmNtcCh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzW2ldLmFsaWFzLCB1cHBlcikpIHsKKwkgICAgcmV0dXJuKHhtbENoYXJFbmNvZGluZ0FsaWFzZXNbaV0ubmFtZSk7CisJfQorICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sQWRkRW5jb2RpbmdBbGlhczoKKyAqIEBuYW1lOiAgdGhlIGVuY29kaW5nIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KQorICogQGFsaWFzOiAgdGhlIGFsaWFzIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KQorICoKKyAqIFJlZ2lzdGVycyBhbiBhbGlhcyBAYWxpYXMgZm9yIGFuIGVuY29kaW5nIG5hbWVkIEBuYW1lLiBFeGlzdGluZyBhbGlhcworICogd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqIAorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbEFkZEVuY29kaW5nQWxpYXMoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqYWxpYXMpIHsKKyAgICBpbnQgaTsKKyAgICBjaGFyIHVwcGVyWzEwMF07CisKKyAgICBpZiAoKG5hbWUgPT0gTlVMTCkgfHwgKGFsaWFzID09IE5VTEwpKQorCXJldHVybigtMSk7CisKKyAgICBmb3IgKGkgPSAwO2kgPCA5OTtpKyspIHsKKyAgICAgICAgdXBwZXJbaV0gPSB0b3VwcGVyKGFsaWFzW2ldKTsKKwlpZiAodXBwZXJbaV0gPT0gMCkgYnJlYWs7CisgICAgfQorICAgIHVwcGVyW2ldID0gMDsKKworICAgIGlmICh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzID09IE5VTEwpIHsKKwl4bWxDaGFyRW5jb2RpbmdBbGlhc2VzTmIgPSAwOworCXhtbENoYXJFbmNvZGluZ0FsaWFzZXNNYXggPSAyMDsKKwl4bWxDaGFyRW5jb2RpbmdBbGlhc2VzID0gKHhtbENoYXJFbmNvZGluZ0FsaWFzUHRyKSAKKwkgICAgICB4bWxNYWxsb2MoeG1sQ2hhckVuY29kaW5nQWxpYXNlc01heCAqIHNpemVvZih4bWxDaGFyRW5jb2RpbmdBbGlhcykpOworCWlmICh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzID09IE5VTEwpCisJICAgIHJldHVybigtMSk7CisgICAgfSBlbHNlIGlmICh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzTmIgPj0geG1sQ2hhckVuY29kaW5nQWxpYXNlc01heCkgeworCXhtbENoYXJFbmNvZGluZ0FsaWFzZXNNYXggKj0gMjsKKwl4bWxDaGFyRW5jb2RpbmdBbGlhc2VzID0gKHhtbENoYXJFbmNvZGluZ0FsaWFzUHRyKSAKKwkgICAgICB4bWxSZWFsbG9jKHhtbENoYXJFbmNvZGluZ0FsaWFzZXMsCisJCSAgICAgICAgIHhtbENoYXJFbmNvZGluZ0FsaWFzZXNNYXggKiBzaXplb2YoeG1sQ2hhckVuY29kaW5nQWxpYXMpKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBXYWxrIGRvd24gdGhlIGxpc3QgbG9va2luZyBmb3IgYSBkZWZpbml0aW9uIG9mIHRoZSBhbGlhcworICAgICAqLworICAgIGZvciAoaSA9IDA7aSA8IHhtbENoYXJFbmNvZGluZ0FsaWFzZXNOYjtpKyspIHsKKwlpZiAoIXN0cmNtcCh4bWxDaGFyRW5jb2RpbmdBbGlhc2VzW2ldLmFsaWFzLCB1cHBlcikpIHsKKwkgICAgLyoKKwkgICAgICogUmVwbGFjZSB0aGUgZGVmaW5pdGlvbi4KKwkgICAgICovCisJICAgIHhtbEZyZWUoKGNoYXIgKikgeG1sQ2hhckVuY29kaW5nQWxpYXNlc1tpXS5uYW1lKTsKKwkgICAgeG1sQ2hhckVuY29kaW5nQWxpYXNlc1tpXS5uYW1lID0geG1sTWVtU3RyZHVwKG5hbWUpOworCSAgICByZXR1cm4oMCk7CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIEFkZCB0aGUgZGVmaW5pdGlvbgorICAgICAqLworICAgIHhtbENoYXJFbmNvZGluZ0FsaWFzZXNbeG1sQ2hhckVuY29kaW5nQWxpYXNlc05iXS5uYW1lID0geG1sTWVtU3RyZHVwKG5hbWUpOworICAgIHhtbENoYXJFbmNvZGluZ0FsaWFzZXNbeG1sQ2hhckVuY29kaW5nQWxpYXNlc05iXS5hbGlhcyA9IHhtbE1lbVN0cmR1cCh1cHBlcik7CisgICAgeG1sQ2hhckVuY29kaW5nQWxpYXNlc05iKys7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbERlbEVuY29kaW5nQWxpYXM6CisgKiBAYWxpYXM6ICB0aGUgYWxpYXMgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpCisgKgorICogVW5yZWdpc3RlcnMgYW4gZW5jb2RpbmcgYWxpYXMgQGFsaWFzCisgKiAKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxEZWxFbmNvZGluZ0FsaWFzKGNvbnN0IGNoYXIgKmFsaWFzKSB7CisgICAgaW50IGk7CisKKyAgICBpZiAoYWxpYXMgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKHhtbENoYXJFbmNvZGluZ0FsaWFzZXMgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIC8qCisgICAgICogV2FsayBkb3duIHRoZSBsaXN0IGxvb2tpbmcgZm9yIGEgZGVmaW5pdGlvbiBvZiB0aGUgYWxpYXMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCB4bWxDaGFyRW5jb2RpbmdBbGlhc2VzTmI7aSsrKSB7CisJaWYgKCFzdHJjbXAoeG1sQ2hhckVuY29kaW5nQWxpYXNlc1tpXS5hbGlhcywgYWxpYXMpKSB7CisJICAgIHhtbEZyZWUoKGNoYXIgKikgeG1sQ2hhckVuY29kaW5nQWxpYXNlc1tpXS5uYW1lKTsKKwkgICAgeG1sRnJlZSgoY2hhciAqKSB4bWxDaGFyRW5jb2RpbmdBbGlhc2VzW2ldLmFsaWFzKTsKKwkgICAgeG1sQ2hhckVuY29kaW5nQWxpYXNlc05iLS07CisJICAgIG1lbW1vdmUoJnhtbENoYXJFbmNvZGluZ0FsaWFzZXNbaV0sICZ4bWxDaGFyRW5jb2RpbmdBbGlhc2VzW2kgKyAxXSwKKwkJICAgIHNpemVvZih4bWxDaGFyRW5jb2RpbmdBbGlhcykgKiAoeG1sQ2hhckVuY29kaW5nQWxpYXNlc05iIC0gaSkpOworCSAgICByZXR1cm4oMCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oLTEpOworfQorCisvKioKKyAqIHhtbFBhcnNlQ2hhckVuY29kaW5nOgorICogQG5hbWU6ICB0aGUgZW5jb2RpbmcgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpCisgKgorICogQ29tcGFyZSB0aGUgc3RyaW5nIHRvIHRoZSBlbmNvZGluZyBzY2hlbWVzIGFscmVhZHkga25vd24uIE5vdGUKKyAqIHRoYXQgdGhlIGNvbXBhcmlzb24gaXMgY2FzZSBpbnNlbnNpdGl2ZSBhY2NvcmRpbmdseSB0byB0aGUgc2VjdGlvbgorICogW1hNTF0gNC4zLjMgQ2hhcmFjdGVyIEVuY29kaW5nIGluIEVudGl0aWVzLgorICogCisgKiBSZXR1cm5zIG9uZSBvZiB0aGUgWE1MX0NIQVJfRU5DT0RJTkdfLi4uIHZhbHVlcyBvciBYTUxfQ0hBUl9FTkNPRElOR19OT05FCisgKiBpZiBub3QgcmVjb2duaXplZC4KKyAqLworeG1sQ2hhckVuY29kaW5nCit4bWxQYXJzZUNoYXJFbmNvZGluZyhjb25zdCBjaGFyKiBuYW1lKQoreworICAgIGNvbnN0IGNoYXIgKmFsaWFzOworICAgIGNoYXIgdXBwZXJbNTAwXTsKKyAgICBpbnQgaTsKKworICAgIGlmIChuYW1lID09IE5VTEwpCisJcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworCisgICAgLyoKKyAgICAgKiBEbyB0aGUgYWxpYXMgcmVzb2x1dGlvbgorICAgICAqLworICAgIGFsaWFzID0geG1sR2V0RW5jb2RpbmdBbGlhcyhuYW1lKTsKKyAgICBpZiAoYWxpYXMgIT0gTlVMTCkKKwluYW1lID0gYWxpYXM7CisKKyAgICBmb3IgKGkgPSAwO2kgPCA0OTk7aSsrKSB7CisgICAgICAgIHVwcGVyW2ldID0gdG91cHBlcihuYW1lW2ldKTsKKwlpZiAodXBwZXJbaV0gPT0gMCkgYnJlYWs7CisgICAgfQorICAgIHVwcGVyW2ldID0gMDsKKworICAgIGlmICghc3RyY21wKHVwcGVyLCAiIikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgIlVURi04IikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19VVEY4KTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgIlVURjgiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpOworCisgICAgLyoKKyAgICAgKiBOT1RFOiBpZiB3ZSB3ZXJlIGFibGUgdG8gcGFyc2UgdGhpcywgdGhlIGVuZGlhbm5lc3Mgb2YgVVRGMTYgaXMKKyAgICAgKiAgICAgICBhbHJlYWR5IGZvdW5kIGFuZCBpbiB1c2UKKyAgICAgKi8KKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgIlVURi0xNiIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRSk7CisgICAgaWYgKCFzdHJjbXAodXBwZXIsICJVVEYxNiIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRSk7CisgICAgCisgICAgaWYgKCFzdHJjbXAodXBwZXIsICJJU08tMTA2NDYtVUNTLTIiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VDUzIpOworICAgIGlmICghc3RyY21wKHVwcGVyLCAiVUNTLTIiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VDUzIpOworICAgIGlmICghc3RyY21wKHVwcGVyLCAiVUNTMiIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfVUNTMik7CisKKyAgICAvKgorICAgICAqIE5PVEU6IGlmIHdlIHdlcmUgYWJsZSB0byBwYXJzZSB0aGlzLCB0aGUgZW5kaWFubmVzcyBvZiBVQ1M0IGlzCisgICAgICogICAgICAgYWxyZWFkeSBmb3VuZCBhbmQgaW4gdXNlCisgICAgICovCisgICAgaWYgKCFzdHJjbXAodXBwZXIsICJJU08tMTA2NDYtVUNTLTQiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VDUzRMRSk7CisgICAgaWYgKCFzdHJjbXAodXBwZXIsICJVQ1MtNCIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFKTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgIlVDUzQiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VDUzRMRSk7CisKKyAgICAKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgICJJU08tODg1OS0xIikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR184ODU5XzEpOworICAgIGlmICghc3RyY21wKHVwcGVyLCAgIklTTy1MQVRJTi0xIikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR184ODU5XzEpOworICAgIGlmICghc3RyY21wKHVwcGVyLCAgIklTTyBMQVRJTiAxIikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR184ODU5XzEpOworCisgICAgaWYgKCFzdHJjbXAodXBwZXIsICAiSVNPLTg4NTktMiIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yKTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgICJJU08tTEFUSU4tMiIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yKTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgICJJU08gTEFUSU4gMiIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yKTsKKworICAgIGlmICghc3RyY21wKHVwcGVyLCAgIklTTy04ODU5LTMiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMyk7CisgICAgaWYgKCFzdHJjbXAodXBwZXIsICAiSVNPLTg4NTktNCIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfODg1OV80KTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgICJJU08tODg1OS01IikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR184ODU5XzUpOworICAgIGlmICghc3RyY21wKHVwcGVyLCAgIklTTy04ODU5LTYiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNik7CisgICAgaWYgKCFzdHJjbXAodXBwZXIsICAiSVNPLTg4NTktNyIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfODg1OV83KTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgICJJU08tODg1OS04IikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR184ODU5XzgpOworICAgIGlmICghc3RyY21wKHVwcGVyLCAgIklTTy04ODU5LTkiKSkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOSk7CisKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgIklTTy0yMDIyLUpQIikpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQKTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgIlNISUZUX0pJUyIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfU0hJRlRfSklTKTsKKyAgICBpZiAoIXN0cmNtcCh1cHBlciwgIkVVQy1KUCIpKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfRVVDX0pQKTsKKworI2lmZGVmIERFQlVHX0VOQ09ESU5HCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJVbmtub3duIGVuY29kaW5nICVzXG4iLCBuYW1lKTsKKyNlbmRpZgorICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19FUlJPUik7Cit9CisKKy8qKgorICogeG1sR2V0Q2hhckVuY29kaW5nTmFtZToKKyAqIEBlbmM6ICB0aGUgZW5jb2RpbmcKKyAqCisgKiBUaGUgImNhbm9uaWNhbCIgbmFtZSBmb3IgWE1MIGVuY29kaW5nLgorICogQy5mLiBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI2NoYXJlbmNvZGluZworICogU2VjdGlvbiA0LjMuMyAgQ2hhcmFjdGVyIEVuY29kaW5nIGluIEVudGl0aWVzCisgKgorICogUmV0dXJucyB0aGUgY2Fub25pY2FsIG5hbWUgZm9yIHRoZSBnaXZlbiBlbmNvZGluZworICovCisKK2NvbnN0IGNoYXIqCit4bWxHZXRDaGFyRW5jb2RpbmdOYW1lKHhtbENoYXJFbmNvZGluZyBlbmMpIHsKKyAgICBzd2l0Y2ggKGVuYykgeworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SOgorCSAgICByZXR1cm4oTlVMTCk7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORToKKwkgICAgcmV0dXJuKE5VTEwpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VURjg6CisJICAgIHJldHVybigiVVRGLTgiKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VVEYxNkxFOgorCSAgICByZXR1cm4oIlVURi0xNiIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkU6CisJICAgIHJldHVybigiVVRGLTE2Iik7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDOgorICAgICAgICAgICAgcmV0dXJuKCJFQkNESUMiKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0TEU6CisgICAgICAgICAgICByZXR1cm4oIklTTy0xMDY0Ni1VQ1MtNCIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VDUzRCRToKKyAgICAgICAgICAgIHJldHVybigiSVNPLTEwNjQ2LVVDUy00Iik7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzOgorICAgICAgICAgICAgcmV0dXJuKCJJU08tMTA2NDYtVUNTLTQiKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTI6CisgICAgICAgICAgICByZXR1cm4oIklTTy0xMDY0Ni1VQ1MtNCIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VDUzI6CisgICAgICAgICAgICByZXR1cm4oIklTTy0xMDY0Ni1VQ1MtMiIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMToKKwkgICAgcmV0dXJuKCJJU08tODg1OS0xIik7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yOgorCSAgICByZXR1cm4oIklTTy04ODU5LTIiKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzM6CisJICAgIHJldHVybigiSVNPLTg4NTktMyIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNDoKKwkgICAgcmV0dXJuKCJJU08tODg1OS00Iik7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV81OgorCSAgICByZXR1cm4oIklTTy04ODU5LTUiKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzY6CisJICAgIHJldHVybigiSVNPLTg4NTktNiIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNzoKKwkgICAgcmV0dXJuKCJJU08tODg1OS03Iik7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV84OgorCSAgICByZXR1cm4oIklTTy04ODU5LTgiKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5Xzk6CisJICAgIHJldHVybigiSVNPLTg4NTktOSIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzIwMjJfSlA6CisgICAgICAgICAgICByZXR1cm4oIklTTy0yMDIyLUpQIik7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfU0hJRlRfSklTOgorICAgICAgICAgICAgcmV0dXJuKCJTaGlmdC1KSVMiKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19FVUNfSlA6CisgICAgICAgICAgICByZXR1cm4oIkVVQy1KUCIpOworCWNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfQVNDSUk6CisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJQ2hhciBlbmNvZGluZyBoYW5kbGVycwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyogdGhlIHNpemUgc2hvdWxkIGJlIGdyb3dhYmxlLCBidXQgaXQncyBub3QgYSBiaWcgZGVhbCAuLi4gKi8KKyNkZWZpbmUgTUFYX0VOQ09ESU5HX0hBTkRMRVJTIDUwCitzdGF0aWMgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciAqaGFuZGxlcnMgPSBOVUxMOworc3RhdGljIGludCBuYkNoYXJFbmNvZGluZ0hhbmRsZXIgPSAwOworCisvKgorICogVGhlIGRlZmF1bHQgaXMgVVRGLTggZm9yIFhNTCwgdGhhdCdzIGFsc28gdGhlIGRlZmF1bHQgdXNlZCBmb3IgdGhlCisgKiBwYXJzZXIgaW50ZXJuYWxzLCBzbyB0aGUgZGVmYXVsdCBlbmNvZGluZyBoYW5kbGVyIGlzIE5VTEwKKyAqLworCitzdGF0aWMgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciB4bWxEZWZhdWx0Q2hhckVuY29kaW5nSGFuZGxlciA9IE5VTEw7CisKKy8qKgorICogeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcjoKKyAqIEBuYW1lOiAgdGhlIGVuY29kaW5nIG5hbWUsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpCisgKiBAaW5wdXQ6ICB0aGUgeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIHRvIHJlYWQgdGhhdCBlbmNvZGluZworICogQG91dHB1dDogIHRoZSB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIHRvIHdyaXRlIHRoYXQgZW5jb2RpbmcKKyAqCisgKiBDcmVhdGUgYW5kIHJlZ2lzdGVycyBhbiB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyLgorICoKKyAqIFJldHVybnMgdGhlIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgY3JlYXRlZCAob3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yKS4KKyAqLworeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cgoreG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcihjb25zdCBjaGFyICpuYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIG91dHB1dCkgeworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsKKyAgICBjb25zdCBjaGFyICphbGlhczsKKyAgICBjaGFyIHVwcGVyWzUwMF07CisgICAgaW50IGk7CisgICAgY2hhciAqdXAgPSBOVUxMOworCisgICAgLyoKKyAgICAgKiBEbyB0aGUgYWxpYXMgcmVzb2x1dGlvbgorICAgICAqLworICAgIGFsaWFzID0geG1sR2V0RW5jb2RpbmdBbGlhcyhuYW1lKTsKKyAgICBpZiAoYWxpYXMgIT0gTlVMTCkKKwluYW1lID0gYWxpYXM7CisKKyAgICAvKgorICAgICAqIEtlZXAgb25seSB0aGUgdXBwZXJjYXNlIHZlcnNpb24gb2YgdGhlIGVuY29kaW5nLgorICAgICAqLworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKyAgICAgICAgeG1sRW5jb2RpbmdFcnIoWE1MX0kxOE5fTk9fTkFNRSwKKwkJICAgICAgICJ4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyIDogbm8gbmFtZSAhXG4iLCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGZvciAoaSA9IDA7aSA8IDQ5OTtpKyspIHsKKyAgICAgICAgdXBwZXJbaV0gPSB0b3VwcGVyKG5hbWVbaV0pOworCWlmICh1cHBlcltpXSA9PSAwKSBicmVhazsKKyAgICB9CisgICAgdXBwZXJbaV0gPSAwOworICAgIHVwID0geG1sTWVtU3RyZHVwKHVwcGVyKTsKKyAgICBpZiAodXAgPT0gTlVMTCkgeworICAgICAgICB4bWxFbmNvZGluZ0Vyck1lbW9yeSgieG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlciA6IG91dCBvZiBtZW1vcnkgIVxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogYWxsb2NhdGUgYW5kIGZpbGwtdXAgYW4gaGFuZGxlciBibG9jay4KKyAgICAgKi8KKyAgICBoYW5kbGVyID0gKHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIpCisgICAgICAgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sQ2hhckVuY29kaW5nSGFuZGxlcikpOworICAgIGlmIChoYW5kbGVyID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZSh1cCk7CisgICAgICAgIHhtbEVuY29kaW5nRXJyTWVtb3J5KCJ4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyIDogb3V0IG9mIG1lbW9yeSAhXG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGhhbmRsZXItPmlucHV0ID0gaW5wdXQ7CisgICAgaGFuZGxlci0+b3V0cHV0ID0gb3V0cHV0OworICAgIGhhbmRsZXItPm5hbWUgPSB1cDsKKworI2lmZGVmIExJQlhNTF9JQ09OVl9FTkFCTEVECisgICAgaGFuZGxlci0+aWNvbnZfaW4gPSBOVUxMOworICAgIGhhbmRsZXItPmljb252X291dCA9IE5VTEw7CisjZW5kaWYgLyogTElCWE1MX0lDT05WX0VOQUJMRUQgKi8KKworICAgIC8qCisgICAgICogcmVnaXN0ZXJzIGFuZCByZXR1cm5zIHRoZSBoYW5kbGVyLgorICAgICAqLworICAgIHhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcihoYW5kbGVyKTsKKyNpZmRlZiBERUJVR19FTkNPRElORworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiUmVnaXN0ZXJlZCBlbmNvZGluZyBoYW5kbGVyIGZvciAlc1xuIiwgbmFtZSk7CisjZW5kaWYKKyAgICByZXR1cm4oaGFuZGxlcik7Cit9CisKKy8qKgorICogeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzOgorICoKKyAqIEluaXRpYWxpemUgdGhlIGNoYXIgZW5jb2Rpbmcgc3VwcG9ydCwgaXQgcmVnaXN0ZXJzIHRoZSBkZWZhdWx0CisgKiBlbmNvZGluZyBzdXBwb3J0ZWQuCisgKiBOT1RFOiB3aGlsZSBwdWJsaWMsIHRoaXMgZnVuY3Rpb24gdXN1YWxseSBkb2Vzbid0IG5lZWQgdG8gYmUgY2FsbGVkCisgKiAgICAgICBpbiBub3JtYWwgcHJvY2Vzc2luZy4KKyAqLwordm9pZAoreG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzKHZvaWQpIHsKKyAgICB1bnNpZ25lZCBzaG9ydCBpbnQgdHN0ID0gMHgxMjM0OworICAgIHVuc2lnbmVkIGNoYXIgKnB0ciA9ICh1bnNpZ25lZCBjaGFyICopICZ0c3Q7IAorCisgICAgaWYgKGhhbmRsZXJzICE9IE5VTEwpIHJldHVybjsKKworICAgIGhhbmRsZXJzID0gKHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgKikKKyAgICAgICAgeG1sTWFsbG9jKE1BWF9FTkNPRElOR19IQU5ETEVSUyAqIHNpemVvZih4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKSk7CisKKyAgICBpZiAoKnB0ciA9PSAweDEyKSB4bWxMaXR0bGVFbmRpYW4gPSAwOworICAgIGVsc2UgaWYgKCpwdHIgPT0gMHgzNCkgeG1sTGl0dGxlRW5kaWFuID0gMTsKKyAgICBlbHNlIHsKKyAgICAgICAgeG1sRW5jb2RpbmdFcnIoWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICAgICAgICAgICAiT2RkIHByb2JsZW0gYXQgZW5kaWFubmVzcyBkZXRlY3Rpb25cbiIsIE5VTEwpOworICAgIH0KKworICAgIGlmIChoYW5kbGVycyA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVuY29kaW5nRXJyTWVtb3J5KCJ4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMgOiBvdXQgb2YgbWVtb3J5ICFcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcigiVVRGLTgiLCBVVEY4VG9VVEY4LCBVVEY4VG9VVEY4KTsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyAgICB4bWxVVEYxNkxFSGFuZGxlciA9IAorICAgICAgICAgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIoIlVURi0xNkxFIiwgVVRGMTZMRVRvVVRGOCwgVVRGOFRvVVRGMTZMRSk7CisgICAgeG1sVVRGMTZCRUhhbmRsZXIgPSAKKyAgICAgICAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyKCJVVEYtMTZCRSIsIFVURjE2QkVUb1VURjgsIFVURjhUb1VURjE2QkUpOworICAgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIoIlVURi0xNiIsIFVURjE2TEVUb1VURjgsIFVURjhUb1VURjE2KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyKCJJU08tODg1OS0xIiwgaXNvbGF0MVRvVVRGOCwgVVRGOFRvaXNvbGF0MSk7CisgICAgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcigiQVNDSUkiLCBhc2NpaVRvVVRGOCwgVVRGOFRvYXNjaWkpOworICAgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIoIlVTLUFTQ0lJIiwgYXNjaWlUb1VURjgsIFVURjhUb2FzY2lpKTsKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcigiSFRNTCIsIE5VTEwsIFVURjhUb0h0bWwpOworI2VuZGlmCisjZWxzZQorICAgIHhtbFVURjE2TEVIYW5kbGVyID0gCisgICAgICAgICAgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcigiVVRGLTE2TEUiLCBVVEYxNkxFVG9VVEY4LCBOVUxMKTsKKyAgICB4bWxVVEYxNkJFSGFuZGxlciA9IAorICAgICAgICAgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIoIlVURi0xNkJFIiwgVVRGMTZCRVRvVVRGOCwgTlVMTCk7CisgICAgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcigiVVRGLTE2IiwgVVRGMTZMRVRvVVRGOCwgTlVMTCk7CisgICAgeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcigiSVNPLTg4NTktMSIsIGlzb2xhdDFUb1VURjgsIE5VTEwpOworICAgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIoIkFTQ0lJIiwgYXNjaWlUb1VURjgsIE5VTEwpOworICAgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIoIlVTLUFTQ0lJIiwgYXNjaWlUb1VURjgsIE5VTEwpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2lmbmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorI2lmZGVmIExJQlhNTF9JU084ODU5WF9FTkFCTEVECisgICAgeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyc0lTTzg4NTl4ICgpOworI2VuZGlmCisjZW5kaWYKKworfQorCisvKioKKyAqIHhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVyczoKKyAqCisgKiBDbGVhbnVwIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgY2hhciBlbmNvZGluZyBzdXBwb3J0LCBpdAorICogdW5yZWdpc3RlcnMgYWxsIHRoZSBlbmNvZGluZyBoYW5kbGVycyBhbmQgdGhlIGFsaWFzZXMuCisgKi8KK3ZvaWQKK3htbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyh2b2lkKSB7CisgICAgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcygpOworCisgICAgaWYgKGhhbmRsZXJzID09IE5VTEwpIHJldHVybjsKKworICAgIGZvciAoO25iQ2hhckVuY29kaW5nSGFuZGxlciA+IDA7KSB7CisgICAgICAgIG5iQ2hhckVuY29kaW5nSGFuZGxlci0tOworCWlmIChoYW5kbGVyc1tuYkNoYXJFbmNvZGluZ0hhbmRsZXJdICE9IE5VTEwpIHsKKwkgICAgaWYgKGhhbmRsZXJzW25iQ2hhckVuY29kaW5nSGFuZGxlcl0tPm5hbWUgIT0gTlVMTCkKKwkJeG1sRnJlZShoYW5kbGVyc1tuYkNoYXJFbmNvZGluZ0hhbmRsZXJdLT5uYW1lKTsKKwkgICAgeG1sRnJlZShoYW5kbGVyc1tuYkNoYXJFbmNvZGluZ0hhbmRsZXJdKTsKKwl9CisgICAgfQorICAgIHhtbEZyZWUoaGFuZGxlcnMpOworICAgIGhhbmRsZXJzID0gTlVMTDsKKyAgICBuYkNoYXJFbmNvZGluZ0hhbmRsZXIgPSAwOworICAgIHhtbERlZmF1bHRDaGFyRW5jb2RpbmdIYW5kbGVyID0gTlVMTDsKK30KKworLyoqCisgKiB4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI6CisgKiBAaGFuZGxlcjogIHRoZSB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXIgYmxvY2sKKyAqCisgKiBSZWdpc3RlciB0aGUgY2hhciBlbmNvZGluZyBoYW5kbGVyLCBzdXJwcmlzaW5nLCBpc24ndCBpdCA/CisgKi8KK3ZvaWQKK3htbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcih4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXIpIHsKKyAgICBpZiAoaGFuZGxlcnMgPT0gTlVMTCkgeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzKCk7CisgICAgaWYgKChoYW5kbGVyID09IE5VTEwpIHx8IChoYW5kbGVycyA9PSBOVUxMKSkgeworICAgICAgICB4bWxFbmNvZGluZ0VycihYTUxfSTE4Tl9OT19IQU5ETEVSLAorCQkieG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyOiBOVUxMIGhhbmRsZXIgIVxuIiwgTlVMTCk7CisJcmV0dXJuOworICAgIH0KKworICAgIGlmIChuYkNoYXJFbmNvZGluZ0hhbmRsZXIgPj0gTUFYX0VOQ09ESU5HX0hBTkRMRVJTKSB7CisgICAgICAgIHhtbEVuY29kaW5nRXJyKFhNTF9JMThOX0VYQ0VTU19IQU5ETEVSLAorCSJ4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI6IFRvbyBtYW55IGhhbmRsZXIgcmVnaXN0ZXJlZCwgc2VlICVzXG4iLAorCSAgICAgICAgICAgICAgICJNQVhfRU5DT0RJTkdfSEFORExFUlMiKTsKKwlyZXR1cm47CisgICAgfQorICAgIGhhbmRsZXJzW25iQ2hhckVuY29kaW5nSGFuZGxlcisrXSA9IGhhbmRsZXI7Cit9CisKKy8qKgorICogeG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcjoKKyAqIEBlbmM6ICBhbiB4bWxDaGFyRW5jb2RpbmcgdmFsdWUuCisgKgorICogU2VhcmNoIGluIHRoZSByZWdpc3RlcmVkIHNldCB0aGUgaGFuZGxlciBhYmxlIHRvIHJlYWQvd3JpdGUgdGhhdCBlbmNvZGluZy4KKyAqCisgKiBSZXR1cm5zIHRoZSBoYW5kbGVyIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KK3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIKK3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXIoeG1sQ2hhckVuY29kaW5nIGVuYykgeworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsKKworICAgIGlmIChoYW5kbGVycyA9PSBOVUxMKSB4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMoKTsKKyAgICBzd2l0Y2ggKGVuYykgeworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SOgorCSAgICByZXR1cm4oTlVMTCk7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORToKKwkgICAgcmV0dXJuKE5VTEwpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VURjg6CisJICAgIHJldHVybihOVUxMKTsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VVEYxNkxFOgorCSAgICByZXR1cm4oeG1sVVRGMTZMRUhhbmRsZXIpOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkU6CisJICAgIHJldHVybih4bWxVVEYxNkJFSGFuZGxlcik7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDOgorICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJFQkNESUMiKTsKKyAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHJldHVybihoYW5kbGVyKTsKKyAgICAgICAgICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiZWJjZGljIik7CisgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisgICAgICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIkVCQ0RJQy1VUyIpOworICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkU6CisgICAgICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIklTTy0xMDY0Ni1VQ1MtNCIpOworICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJVQ1MtNCIpOworICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJVQ1M0Iik7CisgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VDUzRMRToKKyAgICAgICAgICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiSVNPLTEwNjQ2LVVDUy00Iik7CisgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisgICAgICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIlVDUy00Iik7CisgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisgICAgICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIlVDUzQiKTsKKyAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHJldHVybihoYW5kbGVyKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzOgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTI6CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VDUzI6CisgICAgICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIklTTy0xMDY0Ni1VQ1MtMiIpOworICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJVQ1MtMiIpOworICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJVQ1MyIik7CisgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisJICAgIGJyZWFrOworCisJICAgIC8qCisJICAgICAqIFdlIHVzZWQgdG8ga2VlcCBJU08gTGF0aW4gZW5jb2RpbmdzIG5hdGl2ZSBpbiB0aGUKKwkgICAgICogZ2VuZXJhdGVkIGRhdGEuIFRoaXMgbGVkIHRvIHNvIG1hbnkgcHJvYmxlbXMgdGhhdAorCSAgICAgKiB0aGlzIGhhcyBiZWVuIHJlbW92ZWQuIE9uZSBjYW4gc3RpbGwgY2hhbmdlIHRoaXMKKwkgICAgICogYmFjayBieSByZWdpc3RlcmluZyBuby1vcHMgZW5jb2RlcnMgZm9yIHRob3NlCisJICAgICAqLworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMToKKwkgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJJU08tODg1OS0xIik7CisJICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHJldHVybihoYW5kbGVyKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yOgorCSAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIklTTy04ODU5LTIiKTsKKwkgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzM6CisJICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiSVNPLTg4NTktMyIpOworCSAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNDoKKwkgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJJU08tODg1OS00Iik7CisJICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHJldHVybihoYW5kbGVyKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV81OgorCSAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIklTTy04ODU5LTUiKTsKKwkgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzY6CisJICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiSVNPLTg4NTktNiIpOworCSAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNzoKKwkgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJJU08tODg1OS03Iik7CisJICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHJldHVybihoYW5kbGVyKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV84OgorCSAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIklTTy04ODU5LTgiKTsKKwkgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5Xzk6CisJICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiSVNPLTg4NTktOSIpOworCSAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisJICAgIGJyZWFrOworCisKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQOgorICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJJU08tMjAyMi1KUCIpOworICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19TSElGVF9KSVM6CisgICAgICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoIlNISUZULUpJUyIpOworICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgcmV0dXJuKGhhbmRsZXIpOworICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJTSElGVF9KSVMiKTsKKyAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHJldHVybihoYW5kbGVyKTsKKyAgICAgICAgICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiU2hpZnRfSklTIik7CisgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUDoKKyAgICAgICAgICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiRVVDLUpQIik7CisgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBOVUxMKSByZXR1cm4oaGFuZGxlcik7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6IAorCSAgICBicmVhazsKKyAgICB9CisgICAgCisjaWZkZWYgREVCVUdfRU5DT0RJTkcKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIk5vIGhhbmRsZXIgZm91bmQgZm9yIGVuY29kaW5nICVkXG4iLCBlbmMpOworI2VuZGlmCisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyOgorICogQG5hbWU6ICBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBjaGFyIGVuY29kaW5nLgorICoKKyAqIFNlYXJjaCBpbiB0aGUgcmVnaXN0ZXJlZCBzZXQgdGhlIGhhbmRsZXIgYWJsZSB0byByZWFkL3dyaXRlIHRoYXQgZW5jb2RpbmcuCisgKgorICogUmV0dXJucyB0aGUgaGFuZGxlciBvciBOVUxMIGlmIG5vdCBmb3VuZAorICovCit4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyCit4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcihjb25zdCBjaGFyICpuYW1lKSB7CisgICAgY29uc3QgY2hhciAqbmFsaWFzOworICAgIGNvbnN0IGNoYXIgKm5vcmlnOworICAgIHhtbENoYXJFbmNvZGluZyBhbGlhczsKKyNpZmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jOworICAgIGljb252X3QgaWN2X2luLCBpY3Zfb3V0OworI2VuZGlmIC8qIExJQlhNTF9JQ09OVl9FTkFCTEVEICovCisgICAgY2hhciB1cHBlclsxMDBdOworICAgIGludCBpOworCisgICAgaWYgKGhhbmRsZXJzID09IE5VTEwpIHhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycygpOworICAgIGlmIChuYW1lID09IE5VTEwpIHJldHVybih4bWxEZWZhdWx0Q2hhckVuY29kaW5nSGFuZGxlcik7CisgICAgaWYgKG5hbWVbMF0gPT0gMCkgcmV0dXJuKHhtbERlZmF1bHRDaGFyRW5jb2RpbmdIYW5kbGVyKTsKKworICAgIC8qCisgICAgICogRG8gdGhlIGFsaWFzIHJlc29sdXRpb24KKyAgICAgKi8KKyAgICBub3JpZyA9IG5hbWU7CisgICAgbmFsaWFzID0geG1sR2V0RW5jb2RpbmdBbGlhcyhuYW1lKTsKKyAgICBpZiAobmFsaWFzICE9IE5VTEwpCisJbmFtZSA9IG5hbGlhczsKKworICAgIC8qCisgICAgICogQ2hlY2sgZmlyc3QgZm9yIGRpcmVjdGx5IHJlZ2lzdGVyZWQgZW5jb2RpbmcgbmFtZXMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCA5OTtpKyspIHsKKyAgICAgICAgdXBwZXJbaV0gPSB0b3VwcGVyKG5hbWVbaV0pOworCWlmICh1cHBlcltpXSA9PSAwKSBicmVhazsKKyAgICB9CisgICAgdXBwZXJbaV0gPSAwOworCisgICAgaWYgKGhhbmRsZXJzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDtpIDwgbmJDaGFyRW5jb2RpbmdIYW5kbGVyOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghc3RyY21wKHVwcGVyLCBoYW5kbGVyc1tpXS0+bmFtZSkpIHsKKyNpZmRlZiBERUJVR19FTkNPRElORworICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIHJlZ2lzdGVyZWQgaGFuZGxlciBmb3IgZW5jb2RpbmcgJXNcbiIsIG5hbWUpOworI2VuZGlmCisgICAgICAgICAgICAgICAgcmV0dXJuKGhhbmRsZXJzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworI2lmZGVmIExJQlhNTF9JQ09OVl9FTkFCTEVECisgICAgLyogY2hlY2sgd2hldGhlciBpY29udiBjYW4gaGFuZGxlIHRoaXMgKi8KKyAgICBpY3ZfaW4gPSBpY29udl9vcGVuKCJVVEYtOCIsIG5hbWUpOworICAgIGljdl9vdXQgPSBpY29udl9vcGVuKG5hbWUsICJVVEYtOCIpOworICAgIGlmIChpY3ZfaW4gPT0gKGljb252X3QpIC0xKSB7CisgICAgICAgIGljdl9pbiA9IGljb252X29wZW4oIlVURi04IiwgdXBwZXIpOworICAgIH0KKyAgICBpZiAoaWN2X291dCA9PSAoaWNvbnZfdCkgLTEpIHsKKwlpY3Zfb3V0ID0gaWNvbnZfb3Blbih1cHBlciwgIlVURi04Iik7CisgICAgfQorICAgIGlmICgoaWN2X2luICE9IChpY29udl90KSAtMSkgJiYgKGljdl9vdXQgIT0gKGljb252X3QpIC0xKSkgeworCSAgICBlbmMgPSAoeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cikKKwkgICAgICAgICAgeG1sTWFsbG9jKHNpemVvZih4bWxDaGFyRW5jb2RpbmdIYW5kbGVyKSk7CisJICAgIGlmIChlbmMgPT0gTlVMTCkgeworCSAgICAgICAgaWNvbnZfY2xvc2UoaWN2X2luKTsKKwkgICAgICAgIGljb252X2Nsb3NlKGljdl9vdXQpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgZW5jLT5uYW1lID0geG1sTWVtU3RyZHVwKG5hbWUpOworCSAgICBlbmMtPmlucHV0ID0gTlVMTDsKKwkgICAgZW5jLT5vdXRwdXQgPSBOVUxMOworCSAgICBlbmMtPmljb252X2luID0gaWN2X2luOworCSAgICBlbmMtPmljb252X291dCA9IGljdl9vdXQ7CisjaWZkZWYgREVCVUdfRU5DT0RJTkcKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIkZvdW5kIGljb252IGhhbmRsZXIgZm9yIGVuY29kaW5nICVzXG4iLCBuYW1lKTsKKyNlbmRpZgorCSAgICByZXR1cm4gZW5jOworICAgIH0gZWxzZSBpZiAoKGljdl9pbiAhPSAoaWNvbnZfdCkgLTEpIHx8IGljdl9vdXQgIT0gKGljb252X3QpIC0xKSB7CisJICAgIHhtbEVuY29kaW5nRXJyKFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAiaWNvbnYgOiBwcm9ibGVtcyB3aXRoIGZpbHRlcnMgZm9yICclcydcbiIsIG5hbWUpOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfSUNPTlZfRU5BQkxFRCAqLworCisjaWZkZWYgREVCVUdfRU5DT0RJTkcKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIk5vIGhhbmRsZXIgZm91bmQgZm9yIGVuY29kaW5nICVzXG4iLCBuYW1lKTsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBGYWxsYmFjayB1c2luZyB0aGUgY2Fub25pY2FsIG5hbWVzCisgICAgICovCisgICAgYWxpYXMgPSB4bWxQYXJzZUNoYXJFbmNvZGluZyhub3JpZyk7CisgICAgaWYgKGFsaWFzICE9IFhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIGNhbm9uOworICAgICAgICBjYW5vbiA9IHhtbEdldENoYXJFbmNvZGluZ05hbWUoYWxpYXMpOworICAgICAgICBpZiAoKGNhbm9uICE9IE5VTEwpICYmIChzdHJjbXAobmFtZSwgY2Fub24pKSkgeworCSAgICByZXR1cm4oeG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoY2Fub24pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIElmICJub25lIG9mIHRoZSBhYm92ZSIsIGdpdmUgdXAgKi8KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUlDT05WIGJhc2VkIGdlbmVyaWMgY29udmVyc2lvbiBmdW5jdGlvbnMJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIExJQlhNTF9JQ09OVl9FTkFCTEVECisvKioKKyAqIHhtbEljb252V3JhcHBlcjoKKyAqIEBjZDoJCWljb252IGNvbnZlcnRlciBkYXRhIHN0cnVjdHVyZQorICogQG91dDogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0CisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgSVNPIExhdGluIDEgY2hhcnMKKyAqIEBpbmxlbjogIHRoZSBsZW5ndGggb2YgQGluCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MsIG9yIAorICogICAgIC0xIGJ5IGxhY2sgb2Ygc3BhY2UsIG9yCisgKiAgICAgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzIChmb3IgKmluIGlzIG5vdCB2YWxpZCB1dGY4IHN0cmluZyBvcgorICogICAgICAgIHRoZSByZXN1bHQgb2YgdHJhbnNmb3JtYXRpb24gY2FuJ3QgZml0IGludG8gdGhlIGVuY29kaW5nIHdlIHdhbnQpLCBvcgorICogICAgIC0zIGlmIHRoZXJlIHRoZSBsYXN0IGJ5dGUgY2FuJ3QgZm9ybSBhIHNpbmdsZSBvdXRwdXQgY2hhci4KKyAqICAgICAKKyAqIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkCisgKiAgICAgYXMgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLgorICogVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2NldGVzIGNvbnN1bWVkLgorICovCitzdGF0aWMgaW50Cit4bWxJY29udldyYXBwZXIoaWNvbnZfdCBjZCwgdW5zaWduZWQgY2hhciAqb3V0LCBpbnQgKm91dGxlbiwKKyAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbiwgaW50ICppbmxlbikgeworICAgIHNpemVfdCBpY3ZfaW5sZW4sIGljdl9vdXRsZW47CisgICAgY29uc3QgY2hhciAqaWN2X2luID0gKGNvbnN0IGNoYXIgKikgaW47CisgICAgY2hhciAqaWN2X291dCA9IChjaGFyICopIG91dDsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKChvdXQgPT0gTlVMTCkgfHwgKG91dGxlbiA9PSBOVUxMKSB8fCAoaW5sZW4gPT0gTlVMTCkgfHwgKGluID09IE5VTEwpKSB7CisgICAgICAgIGlmIChvdXRsZW4gIT0gTlVMTCkgKm91dGxlbiA9IDA7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorICAgIGljdl9pbmxlbiA9ICppbmxlbjsKKyAgICBpY3Zfb3V0bGVuID0gKm91dGxlbjsKKyAgICByZXQgPSBpY29udihjZCwgKElDT05WX0NPTlNUIGNoYXIgKiopICZpY3ZfaW4sICZpY3ZfaW5sZW4sICZpY3Zfb3V0LCAmaWN2X291dGxlbik7CisgICAgKmlubGVuIC09IGljdl9pbmxlbjsKKyAgICAqb3V0bGVuIC09IGljdl9vdXRsZW47CisgICAgaWYgKChpY3ZfaW5sZW4gIT0gMCkgfHwgKHJldCA9PSAtMSkpIHsKKyNpZmRlZiBFSUxTRVEKKyAgICAgICAgaWYgKGVycm5vID09IEVJTFNFUSkgeworICAgICAgICAgICAgcmV0dXJuIC0yOworICAgICAgICB9IGVsc2UKKyNlbmRpZgorI2lmZGVmIEUyQklHCisgICAgICAgIGlmIChlcnJubyA9PSBFMkJJRykgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9IGVsc2UKKyNlbmRpZgorI2lmZGVmIEVJTlZBTAorICAgICAgICBpZiAoZXJybm8gPT0gRUlOVkFMKSB7CisgICAgICAgICAgICByZXR1cm4gLTM7CisgICAgICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAtMzsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBMSUJYTUxfSUNPTlZfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlUaGUgcmVhbCBBUEkgdXNlZCBieSBsaWJ4bWwgZm9yIG9uLXRoZS1mbHkgY29udmVyc2lvbgkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitpbnQKK3htbENoYXJFbmNGaXJzdExpbmVJbnQoeG1sQ2hhckVuY29kaW5nSGFuZGxlciAqaGFuZGxlciwgeG1sQnVmZmVyUHRyIG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sQnVmZmVyUHRyIGluLCBpbnQgbGVuKTsKKworLyoqCisgKiB4bWxDaGFyRW5jRmlyc3RMaW5lSW50OgorICogQGhhbmRsZXI6CWNoYXIgZW5jb25kaW5nIHRyYW5zZm9ybWF0aW9uIGRhdGEgc3RydWN0dXJlCisgKiBAb3V0OiAgYW4geG1sQnVmZmVyIGZvciB0aGUgb3V0cHV0LgorICogQGluOiAgYW4geG1sQnVmZmVyIGZvciB0aGUgaW5wdXQKKyAqIEBsZW46ICBudW1iZXIgb2YgYnl0ZXMgdG8gY29udmVydCBmb3IgdGhlIGZpcnN0IGxpbmUsIG9yIC0xCisgKgorICogRnJvbnQtZW5kIGZvciB0aGUgZW5jb2RpbmcgaGFuZGxlciBpbnB1dCBmdW5jdGlvbiwgYnV0IGhhbmRsZSBvbmx5CisgKiB0aGUgdmVyeSBmaXJzdCBsaW5lLCBpLmUuIGxpbWl0IGl0c2VsZiB0byA0NSBjaGFycy4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIGlmIHN1Y2Nlc3MsIG9yCisgKiAgICAgLTEgZ2VuZXJhbCBlcnJvcgorICogICAgIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscyAoZm9yICppbiBpcyBub3QgdmFsaWQgdXRmOCBzdHJpbmcgb3IKKyAqICAgICAgICB0aGUgcmVzdWx0IG9mIHRyYW5zZm9ybWF0aW9uIGNhbid0IGZpdCBpbnRvIHRoZSBlbmNvZGluZyB3ZSB3YW50KSwgb3IKKyAqLworaW50Cit4bWxDaGFyRW5jRmlyc3RMaW5lSW50KHhtbENoYXJFbmNvZGluZ0hhbmRsZXIgKmhhbmRsZXIsIHhtbEJ1ZmZlclB0ciBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgIHhtbEJ1ZmZlclB0ciBpbiwgaW50IGxlbikgeworICAgIGludCByZXQgPSAtMjsKKyAgICBpbnQgd3JpdHRlbjsKKyAgICBpbnQgdG9jb252OworCisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAob3V0ID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaWYgKGluID09IE5VTEwpIHJldHVybigtMSk7CisKKyAgICAvKiBjYWxjdWxhdGUgc3BhY2UgYXZhaWxhYmxlICovCisgICAgd3JpdHRlbiA9IG91dC0+c2l6ZSAtIG91dC0+dXNlOworICAgIHRvY29udiA9IGluLT51c2U7CisgICAgLyoKKyAgICAgKiBlY2hvICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVQ1M0Ij8+JyB8IHdjIC1jID0+IDM4CisgICAgICogNDUgY2hhcnMgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gcmVhY2ggdGhlIGVuZCBvZiB0aGUgZW5jb2RpbmcKKyAgICAgKiBkZWNsYXJhdGlvbiB3aXRob3V0IGdvaW5nIHRvbyBmYXIgaW5zaWRlIHRoZSBkb2N1bWVudCBjb250ZW50LgorICAgICAqIG9uIFVURi0xNiB0aGlzIG1lYW5zIDkwYnl0ZXMsIG9uIFVDUzQgdGhpcyBtZWFucyAxODAKKyAgICAgKiBUaGUgYWN0dWFsIHZhbHVlIGRlcGVuZGluZyBvbiBndWVzc2VkIGVuY29kaW5nIGlzIHBhc3NlZCBhcyBAbGVuCisgICAgICogaWYgcHJvdmlkZWQKKyAgICAgKi8KKyAgICBpZiAobGVuID49IDApIHsKKyAgICAgICAgaWYgKHRvY29udiA+IGxlbikKKyAgICAgICAgICAgIHRvY29udiA9IGxlbjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodG9jb252ID4gMTgwKQorICAgICAgICAgICAgdG9jb252ID0gMTgwOworICAgIH0KKyAgICBpZiAodG9jb252ICogMiA+PSB3cml0dGVuKSB7CisgICAgICAgIHhtbEJ1ZmZlckdyb3cob3V0LCB0b2NvbnYpOworCXdyaXR0ZW4gPSBvdXQtPnNpemUgLSBvdXQtPnVzZSAtIDE7CisgICAgfQorCisgICAgaWYgKGhhbmRsZXItPmlucHV0ICE9IE5VTEwpIHsKKwlyZXQgPSBoYW5kbGVyLT5pbnB1dCgmb3V0LT5jb250ZW50W291dC0+dXNlXSwgJndyaXR0ZW4sCisJICAgICAgICAgICAgICAgICAgICAgaW4tPmNvbnRlbnQsICZ0b2NvbnYpOworCXhtbEJ1ZmZlclNocmluayhpbiwgdG9jb252KTsKKwlvdXQtPnVzZSArPSB3cml0dGVuOworCW91dC0+Y29udGVudFtvdXQtPnVzZV0gPSAwOworICAgIH0KKyNpZmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorICAgIGVsc2UgaWYgKGhhbmRsZXItPmljb252X2luICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxJY29udldyYXBwZXIoaGFuZGxlci0+aWNvbnZfaW4sICZvdXQtPmNvbnRlbnRbb3V0LT51c2VdLAorCSAgICAgICAgICAgICAgICAgICAgICAmd3JpdHRlbiwgaW4tPmNvbnRlbnQsICZ0b2NvbnYpOworCXhtbEJ1ZmZlclNocmluayhpbiwgdG9jb252KTsKKwlvdXQtPnVzZSArPSB3cml0dGVuOworCW91dC0+Y29udGVudFtvdXQtPnVzZV0gPSAwOworCWlmIChyZXQgPT0gLTEpIHJldCA9IC0zOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfSUNPTlZfRU5BQkxFRCAqLworI2lmZGVmIERFQlVHX0VOQ09ESU5HCisgICAgc3dpdGNoIChyZXQpIHsKKyAgICAgICAgY2FzZSAwOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJjb252ZXJ0ZWQgJWQgYnl0ZXMgdG8gJWQgYnl0ZXMgb2YgaW5wdXRcbiIsCisJICAgICAgICAgICAgdG9jb252LCB3cml0dGVuKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgLTE6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCJjb252ZXJ0ZWQgJWQgYnl0ZXMgdG8gJWQgYnl0ZXMgb2YgaW5wdXQsICVkIGxlZnRcbiIsCisJICAgICAgICAgICAgdG9jb252LCB3cml0dGVuLCBpbi0+dXNlKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgLTI6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgImlucHV0IGNvbnZlcnNpb24gZmFpbGVkIGR1ZSB0byBpbnB1dCBlcnJvclxuIik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIC0zOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwiY29udmVydGVkICVkIGJ5dGVzIHRvICVkIGJ5dGVzIG9mIGlucHV0LCAlZCBsZWZ0XG4iLAorCSAgICAgICAgICAgIHRvY29udiwgd3JpdHRlbiwgaW4tPnVzZSk7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCJVbmtub3duIGlucHV0IGNvbnZlcnNpb24gZmFpbGVkICVkXG4iLCByZXQpOworICAgIH0KKyNlbmRpZiAvKiBERUJVR19FTkNPRElORyAqLworICAgIC8qCisgICAgICogSWdub3JlIHdoZW4gaW5wdXQgYnVmZmVyIGlzIG5vdCBvbiBhIGJvdW5kYXJ5CisgICAgICovCisgICAgaWYgKHJldCA9PSAtMykgcmV0ID0gMDsKKyAgICBpZiAocmV0ID09IC0xKSByZXQgPSAwOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbENoYXJFbmNGaXJzdExpbmU6CisgKiBAaGFuZGxlcjoJY2hhciBlbmNvbmRpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmUKKyAqIEBvdXQ6ICBhbiB4bWxCdWZmZXIgZm9yIHRoZSBvdXRwdXQuCisgKiBAaW46ICBhbiB4bWxCdWZmZXIgZm9yIHRoZSBpbnB1dAorICoKKyAqIEZyb250LWVuZCBmb3IgdGhlIGVuY29kaW5nIGhhbmRsZXIgaW5wdXQgZnVuY3Rpb24sIGJ1dCBoYW5kbGUgb25seQorICogdGhlIHZlcnkgZmlyc3QgbGluZSwgaS5lLiBsaW1pdCBpdHNlbGYgdG8gNDUgY2hhcnMuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBpZiBzdWNjZXNzLCBvcgorICogICAgIC0xIGdlbmVyYWwgZXJyb3IKKyAqICAgICAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGZvciAqaW4gaXMgbm90IHZhbGlkIHV0Zjggc3RyaW5nIG9yCisgKiAgICAgICAgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1hdGlvbiBjYW4ndCBmaXQgaW50byB0aGUgZW5jb2Rpbmcgd2Ugd2FudCksIG9yCisgKi8KK2ludAoreG1sQ2hhckVuY0ZpcnN0TGluZSh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICpoYW5kbGVyLCB4bWxCdWZmZXJQdHIgb3V0LAorICAgICAgICAgICAgICAgICB4bWxCdWZmZXJQdHIgaW4pIHsKKyAgICByZXR1cm4oeG1sQ2hhckVuY0ZpcnN0TGluZUludChoYW5kbGVyLCBvdXQsIGluLCAtMSkpOworfQorCisvKioKKyAqIHhtbENoYXJFbmNJbkZ1bmM6CisgKiBAaGFuZGxlcjoJY2hhciBlbmNvZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZQorICogQG91dDogIGFuIHhtbEJ1ZmZlciBmb3IgdGhlIG91dHB1dC4KKyAqIEBpbjogIGFuIHhtbEJ1ZmZlciBmb3IgdGhlIGlucHV0CisgKgorICogR2VuZXJpYyBmcm9udC1lbmQgZm9yIHRoZSBlbmNvZGluZyBoYW5kbGVyIGlucHV0IGZ1bmN0aW9uCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBpZiBzdWNjZXNzLCBvcgorICogICAgIC0xIGdlbmVyYWwgZXJyb3IKKyAqICAgICAtMiBpZiB0aGUgdHJhbnNjb2RpbmcgZmFpbHMgKGZvciAqaW4gaXMgbm90IHZhbGlkIHV0Zjggc3RyaW5nIG9yCisgKiAgICAgICAgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1hdGlvbiBjYW4ndCBmaXQgaW50byB0aGUgZW5jb2Rpbmcgd2Ugd2FudCksIG9yCisgKi8KK2ludAoreG1sQ2hhckVuY0luRnVuYyh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICogaGFuZGxlciwgeG1sQnVmZmVyUHRyIG91dCwKKyAgICAgICAgICAgICAgICAgeG1sQnVmZmVyUHRyIGluKQoreworICAgIGludCByZXQgPSAtMjsKKyAgICBpbnQgd3JpdHRlbjsKKyAgICBpbnQgdG9jb252OworCisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgaWYgKG91dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBpZiAoaW4gPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICB0b2NvbnYgPSBpbi0+dXNlOworICAgIGlmICh0b2NvbnYgPT0gMCkKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICB3cml0dGVuID0gb3V0LT5zaXplIC0gb3V0LT51c2U7CisgICAgaWYgKHRvY29udiAqIDIgPj0gd3JpdHRlbikgeworICAgICAgICB4bWxCdWZmZXJHcm93KG91dCwgb3V0LT5zaXplICsgdG9jb252ICogMik7CisgICAgICAgIHdyaXR0ZW4gPSBvdXQtPnNpemUgLSBvdXQtPnVzZSAtIDE7CisgICAgfQorICAgIGlmIChoYW5kbGVyLT5pbnB1dCAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IGhhbmRsZXItPmlucHV0KCZvdXQtPmNvbnRlbnRbb3V0LT51c2VdLCAmd3JpdHRlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4tPmNvbnRlbnQsICZ0b2NvbnYpOworICAgICAgICB4bWxCdWZmZXJTaHJpbmsoaW4sIHRvY29udik7CisgICAgICAgIG91dC0+dXNlICs9IHdyaXR0ZW47CisgICAgICAgIG91dC0+Y29udGVudFtvdXQtPnVzZV0gPSAwOworICAgIH0KKyNpZmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorICAgIGVsc2UgaWYgKGhhbmRsZXItPmljb252X2luICE9IE5VTEwpIHsKKyAgICAgICAgcmV0ID0geG1sSWNvbnZXcmFwcGVyKGhhbmRsZXItPmljb252X2luLCAmb3V0LT5jb250ZW50W291dC0+dXNlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3cml0dGVuLCBpbi0+Y29udGVudCwgJnRvY29udik7CisgICAgICAgIHhtbEJ1ZmZlclNocmluayhpbiwgdG9jb252KTsKKyAgICAgICAgb3V0LT51c2UgKz0gd3JpdHRlbjsKKyAgICAgICAgb3V0LT5jb250ZW50W291dC0+dXNlXSA9IDA7CisgICAgICAgIGlmIChyZXQgPT0gLTEpCisgICAgICAgICAgICByZXQgPSAtMzsKKyAgICB9CisjZW5kaWYgLyogTElCWE1MX0lDT05WX0VOQUJMRUQgKi8KKyAgICBzd2l0Y2ggKHJldCkgeworICAgICAgICBjYXNlIDA6CisjaWZkZWYgREVCVUdfRU5DT0RJTkcKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb252ZXJ0ZWQgJWQgYnl0ZXMgdG8gJWQgYnl0ZXMgb2YgaW5wdXRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9jb252LCB3cml0dGVuKTsKKyNlbmRpZgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgLTE6CisjaWZkZWYgREVCVUdfRU5DT0RJTkcKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICJjb252ZXJ0ZWQgJWQgYnl0ZXMgdG8gJWQgYnl0ZXMgb2YgaW5wdXQsICVkIGxlZnRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9jb252LCB3cml0dGVuLCBpbi0+dXNlKTsKKyNlbmRpZgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgLTM6CisjaWZkZWYgREVCVUdfRU5DT0RJTkcKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgImNvbnZlcnRlZCAlZCBieXRlcyB0byAlZCBieXRlcyBvZiBpbnB1dCwgJWQgbGVmdFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2NvbnYsIHdyaXR0ZW4sIGluLT51c2UpOworI2VuZGlmCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAtMjogeworICAgICAgICAgICAgY2hhciBidWZbNTBdOworCisJICAgIHNucHJpbnRmKCZidWZbMF0sIDQ5LCAiMHglMDJYIDB4JTAyWCAweCUwMlggMHglMDJYIiwgCisJCSAgICAgaW4tPmNvbnRlbnRbMF0sIGluLT5jb250ZW50WzFdLAorCQkgICAgIGluLT5jb250ZW50WzJdLCBpbi0+Y29udGVudFszXSk7CisJICAgIGJ1Zls0OV0gPSAwOworCSAgICB4bWxFbmNvZGluZ0VycihYTUxfSTE4Tl9DT05WX0ZBSUxFRCwKKwkJICAgICJpbnB1dCBjb252ZXJzaW9uIGZhaWxlZCBkdWUgdG8gaW5wdXQgZXJyb3IsIGJ5dGVzICVzXG4iLAorCQkgICAgICAgICAgIGJ1Zik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICAgKiBJZ25vcmUgd2hlbiBpbnB1dCBidWZmZXIgaXMgbm90IG9uIGEgYm91bmRhcnkKKyAgICAgKi8KKyAgICBpZiAocmV0ID09IC0zKQorICAgICAgICByZXQgPSAwOworICAgIHJldHVybiAod3JpdHRlbj8gd3JpdHRlbiA6IHJldCk7Cit9CisKKy8qKgorICogeG1sQ2hhckVuY091dEZ1bmM6CisgKiBAaGFuZGxlcjoJY2hhciBlbmNvbmRpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmUKKyAqIEBvdXQ6ICBhbiB4bWxCdWZmZXIgZm9yIHRoZSBvdXRwdXQuCisgKiBAaW46ICBhbiB4bWxCdWZmZXIgZm9yIHRoZSBpbnB1dAorICogICAgIAorICogR2VuZXJpYyBmcm9udC1lbmQgZm9yIHRoZSBlbmNvZGluZyBoYW5kbGVyIG91dHB1dCBmdW5jdGlvbgorICogYSBmaXJzdCBjYWxsIHdpdGggQGluID09IE5VTEwgaGFzIHRvIGJlIG1hZGUgZmlycyB0byBpbml0aWF0ZSB0aGUgCisgKiBvdXRwdXQgaW4gY2FzZSBvZiBub24tc3RhdGVsZXNzIGVuY29kaW5nIG5lZWRpbmcgdG8gaW5pdGlhdGUgdGhlaXIKKyAqIHN0YXRlIG9yIHRoZSBvdXRwdXQgKGxpa2UgdGhlIEJPTSBpbiBVVEYxNikuCisgKiBJbiBjYXNlIG9mIFVURjggc2VxdWVuY2UgY29udmVyc2lvbiBlcnJvcnMgZm9yIHRoZSBnaXZlbiBlbmNvZGVyLAorICogdGhlIGNvbnRlbnQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlbWFwcGVkIHRvIGEgQ2hhclJlZiBzZXF1ZW5jZS4KKyAqICAgICAKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gaWYgc3VjY2Vzcywgb3IgCisgKiAgICAgLTEgZ2VuZXJhbCBlcnJvcgorICogICAgIC0yIGlmIHRoZSB0cmFuc2NvZGluZyBmYWlscyAoZm9yICppbiBpcyBub3QgdmFsaWQgdXRmOCBzdHJpbmcgb3IKKyAqICAgICAgICB0aGUgcmVzdWx0IG9mIHRyYW5zZm9ybWF0aW9uIGNhbid0IGZpdCBpbnRvIHRoZSBlbmNvZGluZyB3ZSB3YW50KSwgb3IKKyAqLworaW50Cit4bWxDaGFyRW5jT3V0RnVuYyh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICpoYW5kbGVyLCB4bWxCdWZmZXJQdHIgb3V0LAorICAgICAgICAgICAgICAgICAgeG1sQnVmZmVyUHRyIGluKSB7CisgICAgaW50IHJldCA9IC0yOworICAgIGludCB3cml0dGVuOworICAgIGludCB3cml0dGVudG90ID0gMDsKKyAgICBpbnQgdG9jb252OworICAgIGludCBvdXRwdXQgPSAwOworCisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAob3V0ID09IE5VTEwpIHJldHVybigtMSk7CisKK3JldHJ5OgorICAgIAorICAgIHdyaXR0ZW4gPSBvdXQtPnNpemUgLSBvdXQtPnVzZTsKKworICAgIGlmICh3cml0dGVuID4gMCkKKwl3cml0dGVuLS07IC8qIEdlbm5hZHk6IGNvdW50ICcvMCcgKi8KKworICAgIC8qCisgICAgICogRmlyc3Qgc3BlY2lmaWMgaGFuZGxpbmcgb2YgaW4gPSBOVUxMLCBpLmUuIHRoZSBpbml0aWFsaXphdGlvbiBjYWxsCisgICAgICovCisgICAgaWYgKGluID09IE5VTEwpIHsKKyAgICAgICAgdG9jb252ID0gMDsKKwlpZiAoaGFuZGxlci0+b3V0cHV0ICE9IE5VTEwpIHsKKwkgICAgcmV0ID0gaGFuZGxlci0+b3V0cHV0KCZvdXQtPmNvbnRlbnRbb3V0LT51c2VdLCAmd3JpdHRlbiwKKwkJCQkgIE5VTEwsICZ0b2NvbnYpOworCSAgICBpZiAocmV0ID49IDApIHsgLyogR2VubmFkeTogY2hlY2sgcmV0dXJuIHZhbHVlICovCisJCW91dC0+dXNlICs9IHdyaXR0ZW47CisJCW91dC0+Y29udGVudFtvdXQtPnVzZV0gPSAwOworCSAgICB9CisJfQorI2lmZGVmIExJQlhNTF9JQ09OVl9FTkFCTEVECisJZWxzZSBpZiAoaGFuZGxlci0+aWNvbnZfb3V0ICE9IE5VTEwpIHsKKwkgICAgcmV0ID0geG1sSWNvbnZXcmFwcGVyKGhhbmRsZXItPmljb252X291dCwgJm91dC0+Y29udGVudFtvdXQtPnVzZV0sCisJCQkJICAmd3JpdHRlbiwgTlVMTCwgJnRvY29udik7CisJICAgIG91dC0+dXNlICs9IHdyaXR0ZW47CisJICAgIG91dC0+Y29udGVudFtvdXQtPnVzZV0gPSAwOworCX0KKyNlbmRpZiAvKiBMSUJYTUxfSUNPTlZfRU5BQkxFRCAqLworI2lmZGVmIERFQlVHX0VOQ09ESU5HCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJpbml0aWFsaXplZCBlbmNvZGVyXG4iKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4oMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDb252ZXJzaW9uIGl0c2VsZi4KKyAgICAgKi8KKyAgICB0b2NvbnYgPSBpbi0+dXNlOworICAgIGlmICh0b2NvbnYgPT0gMCkKKwlyZXR1cm4oMCk7CisgICAgaWYgKHRvY29udiAqIDQgPj0gd3JpdHRlbikgeworICAgICAgICB4bWxCdWZmZXJHcm93KG91dCwgdG9jb252ICogNCk7CisJd3JpdHRlbiA9IG91dC0+c2l6ZSAtIG91dC0+dXNlIC0gMTsKKyAgICB9CisgICAgaWYgKGhhbmRsZXItPm91dHB1dCAhPSBOVUxMKSB7CisJcmV0ID0gaGFuZGxlci0+b3V0cHV0KCZvdXQtPmNvbnRlbnRbb3V0LT51c2VdLCAmd3JpdHRlbiwKKwkgICAgICAgICAgICAgICAgICAgICAgaW4tPmNvbnRlbnQsICZ0b2NvbnYpOworCWlmICh3cml0dGVuID4gMCkgeworCSAgICB4bWxCdWZmZXJTaHJpbmsoaW4sIHRvY29udik7CisJICAgIG91dC0+dXNlICs9IHdyaXR0ZW47CisJICAgIHdyaXR0ZW50b3QgKz0gd3JpdHRlbjsKKwl9IAorCW91dC0+Y29udGVudFtvdXQtPnVzZV0gPSAwOworICAgIH0KKyNpZmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorICAgIGVsc2UgaWYgKGhhbmRsZXItPmljb252X291dCAhPSBOVUxMKSB7CisJcmV0ID0geG1sSWNvbnZXcmFwcGVyKGhhbmRsZXItPmljb252X291dCwgJm91dC0+Y29udGVudFtvdXQtPnVzZV0sCisJICAgICAgICAgICAgICAgICAgICAgICZ3cml0dGVuLCBpbi0+Y29udGVudCwgJnRvY29udik7CisJeG1sQnVmZmVyU2hyaW5rKGluLCB0b2NvbnYpOworCW91dC0+dXNlICs9IHdyaXR0ZW47CisJd3JpdHRlbnRvdCArPSB3cml0dGVuOworCW91dC0+Y29udGVudFtvdXQtPnVzZV0gPSAwOworCWlmIChyZXQgPT0gLTEpIHsKKwkgICAgaWYgKHdyaXR0ZW4gPiAwKSB7CisJCS8qCisJCSAqIENhbiBiZSBhIGxpbWl0YXRpb24gb2YgaWNvbnYKKwkJICovCisJCWdvdG8gcmV0cnk7CisJICAgIH0KKwkgICAgcmV0ID0gLTM7CisJfQorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfSUNPTlZfRU5BQkxFRCAqLworICAgIGVsc2UgeworCXhtbEVuY29kaW5nRXJyKFhNTF9JMThOX05PX09VVFBVVCwKKwkJICAgICAgICJ4bWxDaGFyRW5jT3V0RnVuYzogbm8gb3V0cHV0IGZ1bmN0aW9uICFcbiIsIE5VTEwpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgaWYgKHJldCA+PSAwKSBvdXRwdXQgKz0gcmV0OworCisgICAgLyoKKyAgICAgKiBBdHRlbXB0IHRvIGhhbmRsZSBlcnJvciBjYXNlcworICAgICAqLworICAgIHN3aXRjaCAocmV0KSB7CisgICAgICAgIGNhc2UgMDoKKyNpZmRlZiBERUJVR19FTkNPRElORworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJjb252ZXJ0ZWQgJWQgYnl0ZXMgdG8gJWQgYnl0ZXMgb2Ygb3V0cHV0XG4iLAorCSAgICAgICAgICAgIHRvY29udiwgd3JpdHRlbik7CisjZW5kaWYKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgLTE6CisjaWZkZWYgREVCVUdfRU5DT0RJTkcKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAib3V0cHV0IGNvbnZlcnNpb24gZmFpbGVkIGJ5IGxhY2sgb2Ygc3BhY2VcbiIpOworI2VuZGlmCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIC0zOgorI2lmZGVmIERFQlVHX0VOQ09ESU5HCisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCJjb252ZXJ0ZWQgJWQgYnl0ZXMgdG8gJWQgYnl0ZXMgb2Ygb3V0cHV0ICVkIGxlZnRcbiIsCisJICAgICAgICAgICAgdG9jb252LCB3cml0dGVuLCBpbi0+dXNlKTsKKyNlbmRpZgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSAtMjogeworCSAgICBpbnQgbGVuID0gaW4tPnVzZTsKKwkgICAgY29uc3QgeG1sQ2hhciAqdXRmID0gKGNvbnN0IHhtbENoYXIgKikgaW4tPmNvbnRlbnQ7CisJICAgIGludCBjdXI7CisKKwkgICAgY3VyID0geG1sR2V0VVRGOENoYXIodXRmLCAmbGVuKTsKKwkgICAgaWYgKGN1ciA+IDApIHsKKwkJeG1sQ2hhciBjaGFycmVmWzIwXTsKKworI2lmZGVmIERFQlVHX0VOQ09ESU5HCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJImhhbmRsaW5nIG91dHB1dCBjb252ZXJzaW9uIGVycm9yXG4iKTsKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiQnl0ZXM6IDB4JTAyWCAweCUwMlggMHglMDJYIDB4JTAyWFxuIiwKKwkJCWluLT5jb250ZW50WzBdLCBpbi0+Y29udGVudFsxXSwKKwkJCWluLT5jb250ZW50WzJdLCBpbi0+Y29udGVudFszXSk7CisjZW5kaWYKKwkJLyoKKwkJICogUmVtb3ZlcyB0aGUgVVRGOCBzZXF1ZW5jZSwgYW5kIHJlcGxhY2UgaXQgYnkgYSBjaGFycmVmCisJCSAqIGFuZCBjb250aW51ZSB0aGUgdHJhbnNjb2RpbmcgcGhhc2UsIGhvcGluZyB0aGUgZXJyb3IKKwkJICogZGlkIG5vdCBtYW5nbGUgdGhlIGVuY29kZXIgc3RhdGUuCisJCSAqLworCQlzbnByaW50ZigoY2hhciAqKSAmY2hhcnJlZlswXSwgc2l6ZW9mKGNoYXJyZWYpLCAiJiMlZDsiLCBjdXIpOworCQl4bWxCdWZmZXJTaHJpbmsoaW4sIGxlbik7CisJCXhtbEJ1ZmZlckFkZEhlYWQoaW4sIGNoYXJyZWYsIC0xKTsKKworCQlnb3RvIHJldHJ5OworCSAgICB9IGVsc2UgeworCQljaGFyIGJ1Zls1MF07CisKKwkJc25wcmludGYoJmJ1ZlswXSwgNDksICIweCUwMlggMHglMDJYIDB4JTAyWCAweCUwMlgiLCAKKwkJCSBpbi0+Y29udGVudFswXSwgaW4tPmNvbnRlbnRbMV0sCisJCQkgaW4tPmNvbnRlbnRbMl0sIGluLT5jb250ZW50WzNdKTsKKwkJYnVmWzQ5XSA9IDA7CisJCXhtbEVuY29kaW5nRXJyKFhNTF9JMThOX0NPTlZfRkFJTEVELAorCQkgICAgIm91dHB1dCBjb252ZXJzaW9uIGZhaWxlZCBkdWUgdG8gY29udiBlcnJvciwgYnl0ZXMgJXNcbiIsCisJCQkgICAgICAgYnVmKTsKKwkJaWYgKGluLT5hbGxvYyAhPSBYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSkKKwkJICAgIGluLT5jb250ZW50WzBdID0gJyAnOworCSAgICB9CisJICAgIGJyZWFrOworCX0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQ2hhckVuY0Nsb3NlRnVuYzoKKyAqIEBoYW5kbGVyOgljaGFyIGVuY29uZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZQorICogICAgIAorICogR2VuZXJpYyBmcm9udC1lbmQgZm9yIGVuY29kaW5nIGhhbmRsZXIgY2xvc2UgZnVuY3Rpb24KKyAqCisgKiBSZXR1cm5zIDAgaWYgc3VjY2Vzcywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbENoYXJFbmNDbG9zZUZ1bmMoeG1sQ2hhckVuY29kaW5nSGFuZGxlciAqaGFuZGxlcikgeworICAgIGludCByZXQgPSAwOworICAgIGlmIChoYW5kbGVyID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaWYgKGhhbmRsZXItPm5hbWUgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyNpZmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorICAgIC8qCisgICAgICogSWNvbnYgaGFuZGxlcnMgY2FuIGJlIHVzZWQgb25seSBvbmNlLCBmcmVlIHRoZSB3aG9sZSBibG9jay4KKyAgICAgKiBhbmQgdGhlIGFzc29jaWF0ZWQgaWNvbiByZXNvdXJjZXMuCisgICAgICovCisgICAgaWYgKChoYW5kbGVyLT5pY29udl9vdXQgIT0gTlVMTCkgfHwgKGhhbmRsZXItPmljb252X2luICE9IE5VTEwpKSB7CisJaWYgKGhhbmRsZXItPm5hbWUgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShoYW5kbGVyLT5uYW1lKTsKKwloYW5kbGVyLT5uYW1lID0gTlVMTDsKKwlpZiAoaGFuZGxlci0+aWNvbnZfb3V0ICE9IE5VTEwpIHsKKwkgICAgaWYgKGljb252X2Nsb3NlKGhhbmRsZXItPmljb252X291dCkpCisJCXJldCA9IC0xOworCSAgICBoYW5kbGVyLT5pY29udl9vdXQgPSBOVUxMOworCX0KKwlpZiAoaGFuZGxlci0+aWNvbnZfaW4gIT0gTlVMTCkgeworCSAgICBpZiAoaWNvbnZfY2xvc2UoaGFuZGxlci0+aWNvbnZfaW4pKQorCQlyZXQgPSAtMTsKKwkgICAgaGFuZGxlci0+aWNvbnZfaW4gPSBOVUxMOworCX0KKwl4bWxGcmVlKGhhbmRsZXIpOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfSUNPTlZfRU5BQkxFRCAqLworI2lmZGVmIERFQlVHX0VOQ09ESU5HCisgICAgaWYgKHJldCkKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJmYWlsZWQgdG8gY2xvc2UgdGhlIGVuY29kaW5nIGhhbmRsZXJcbiIpOworICAgIGVsc2UKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJjbG9zZWQgdGhlIGVuY29kaW5nIGhhbmRsZXJcbiIpOworI2VuZGlmCisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxCeXRlQ29uc3VtZWQ6CisgKiBAY3R4dDogYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogVGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgcGFyc2VyIHJlbGF0aXZlCisgKiB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgZW50aXR5LiBUaGlzIGZ1bmN0aW9uIGlzIGNvbXB1dGVkIGluCisgKiBieXRlcyBmcm9tIHRoZSBiZWdpbm5pbmcgc3RhcnRpbmcgYXQgemVybyBhbmQgZmluaXNoaW5nIGF0IHRoZQorICogc2l6ZSBpbiBieXRlIG9mIHRoZSBmaWxlIGlmIHBhcnNpbmcgYSBmaWxlLiBUaGUgZnVuY3Rpb24gaXMKKyAqIG9mIGNvbnN0YW50IGNvc3QgaWYgdGhlIGlucHV0IGlzIFVURi04IGJ1dCBjYW4gYmUgY29zdGx5IGlmIHJ1bgorICogb24gbm9uLVVURi04IGlucHV0LgorICoKKyAqIFJldHVybnMgdGhlIGluZGV4IGluIGJ5dGVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZW50aXR5IG9yIC0xCisgKiAgICAgICAgIGluIGNhc2UgdGhlIGluZGV4IGNvdWxkIG5vdCBiZSBjb21wdXRlZC4KKyAqLworbG9uZworeG1sQnl0ZUNvbnN1bWVkKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbFBhcnNlcklucHV0UHRyIGluOworICAgIAorICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaW4gPSBjdHh0LT5pbnB1dDsKKyAgICBpZiAoaW4gPT0gTlVMTCkgIHJldHVybigtMSk7CisgICAgaWYgKChpbi0+YnVmICE9IE5VTEwpICYmIChpbi0+YnVmLT5lbmNvZGVyICE9IE5VTEwpKSB7CisgICAgICAgIHVuc2lnbmVkIGludCB1bnVzZWQgPSAwOworCXhtbENoYXJFbmNvZGluZ0hhbmRsZXIgKiBoYW5kbGVyID0gaW4tPmJ1Zi0+ZW5jb2RlcjsKKyAgICAgICAgLyoKKwkgKiBFbmNvZGluZyBjb252ZXJzaW9uLCBjb21wdXRlIHRoZSBudW1iZXIgb2YgdW51c2VkIG9yaWdpbmFsCisJICogYnl0ZXMgZnJvbSB0aGUgaW5wdXQgbm90IGNvbnN1bWVkIGFuZCBzdWJzdHJhY3QgdGhhdCBmcm9tCisJICogdGhlIHJhdyBjb25zdW1lZCB2YWx1ZSwgdGhpcyBpcyBub3QgYSBjaGVhcCBvcGVyYXRpb24KKwkgKi8KKyAgICAgICAgaWYgKGluLT5lbmQgLSBpbi0+Y3VyID4gMCkgeworCSAgICB1bnNpZ25lZCBjaGFyIGNvbnZidWZbMzIwMDBdOworCSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpjdXIgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKWluLT5jdXI7CisJICAgIGludCB0b2NvbnYgPSBpbi0+ZW5kIC0gaW4tPmN1ciwgd3JpdHRlbiA9IDMyMDAwOworCisJICAgIGludCByZXQ7CisKKwkgICAgaWYgKGhhbmRsZXItPm91dHB1dCAhPSBOVUxMKSB7CisJICAgICAgICBkbyB7CisJCSAgICB0b2NvbnYgPSBpbi0+ZW5kIC0gY3VyOworCQkgICAgd3JpdHRlbiA9IDMyMDAwOworCQkgICAgcmV0ID0gaGFuZGxlci0+b3V0cHV0KCZjb252YnVmWzBdLCAmd3JpdHRlbiwKKwkJCQkgICAgICBjdXIsICZ0b2NvbnYpOworCQkgICAgaWYgKHJldCA9PSAtMSkgcmV0dXJuKC0xKTsKKwkJICAgIHVudXNlZCArPSB3cml0dGVuOworCQkgICAgY3VyICs9IHRvY29udjsKKwkJfSB3aGlsZSAocmV0ID09IC0yKTsKKyNpZmRlZiBMSUJYTUxfSUNPTlZfRU5BQkxFRAorCSAgICB9IGVsc2UgaWYgKGhhbmRsZXItPmljb252X291dCAhPSBOVUxMKSB7CisJICAgICAgICBkbyB7CisJCSAgICB0b2NvbnYgPSBpbi0+ZW5kIC0gY3VyOworCQkgICAgd3JpdHRlbiA9IDMyMDAwOworCQkgICAgcmV0ID0geG1sSWNvbnZXcmFwcGVyKGhhbmRsZXItPmljb252X291dCwgJmNvbnZidWZbMF0sCisJICAgICAgICAgICAgICAgICAgICAgICZ3cml0dGVuLCBjdXIsICZ0b2NvbnYpOworCQkgICAgaWYgKHJldCA8IDApIHsKKwkJICAgICAgICBpZiAod3JpdHRlbiA+IDApCisJCQkgICAgcmV0ID0gLTI7CisJCQllbHNlCisJCQkgICAgcmV0dXJuKC0xKTsKKwkJICAgIH0KKwkJICAgIHVudXNlZCArPSB3cml0dGVuOworCQkgICAgY3VyICs9IHRvY29udjsKKwkJfSB3aGlsZSAocmV0ID09IC0yKTsKKyNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgIC8qIGNvdWxkIG5vdCBmaW5kIGEgY29udmVydGVyICovCisJICAgICAgICByZXR1cm4oLTEpOworCSAgICB9CisJfQorCWlmIChpbi0+YnVmLT5yYXdjb25zdW1lZCA8IHVudXNlZCkKKwkgICAgcmV0dXJuKC0xKTsKKwlyZXR1cm4oaW4tPmJ1Zi0+cmF3Y29uc3VtZWQgLSB1bnVzZWQpOworICAgIH0KKyAgICByZXR1cm4oaW4tPmNvbnN1bWVkICsgKGluLT5jdXIgLSBpbi0+YmFzZSkpOworfQorCisjaWZuZGVmIExJQlhNTF9JQ09OVl9FTkFCTEVECisjaWZkZWYgTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQKKworLyoqCisgKiBVVEY4VG9JU084ODU5eDoKKyAqIEBvdXQ6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAorICogQG91dGxlbjogIHRoZSBsZW5ndGggb2YgQG91dAorICogQGluOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFVURi04IGNoYXJzCisgKiBAaW5sZW46ICB0aGUgbGVuZ3RoIG9mIEBpbgorICogQHhsYXR0YWJsZTogdGhlIDItbGV2ZWwgdHJhbnNjb2RpbmcgdGFibGUKKyAqCisgKiBUYWtlIGEgYmxvY2sgb2YgVVRGLTggY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIElTTyA4ODU5LSoKKyAqIGJsb2NrIG9mIGNoYXJzIG91dC4KKyAqCisgKiBSZXR1cm5zIDAgaWYgc3VjY2VzcywgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzLCBvciAtMSBvdGhlcndpc2UKKyAqIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkCisgKiAgICAgYXMgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RhYmxlLgorICogVGhlIHZhbHVlIG9mIEBvdXRsZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2NldGVzIGNvbnN1bWVkLgorICovCitzdGF0aWMgaW50CitVVEY4VG9JU084ODU5eCh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbiwKKyAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqeGxhdHRhYmxlKSB7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogb3V0c3RhcnQgPSBvdXQ7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5lbmQ7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5zdGFydCA9IGluOworCisgICAgaWYgKChvdXQgPT0gTlVMTCkgfHwgKG91dGxlbiA9PSBOVUxMKSB8fCAoaW5sZW4gPT0gTlVMTCkgfHwKKyAgICAgICAgKHhsYXR0YWJsZSA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGlmIChpbiA9PSBOVUxMKSB7CisgICAgICAgIC8qCisgICAgICAgICogaW5pdGlhbGl6YXRpb24gbm90aGluZyB0byBkbworICAgICAgICAqLworICAgICAgICAqb3V0bGVuID0gMDsKKyAgICAgICAgKmlubGVuID0gMDsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKyAgICBpbmVuZCA9IGluICsgKCppbmxlbik7CisgICAgd2hpbGUgKGluIDwgaW5lbmQpIHsKKyAgICAgICAgdW5zaWduZWQgY2hhciBkID0gKmluKys7CisgICAgICAgIGlmICAoZCA8IDB4ODApICB7CisgICAgICAgICAgICAqb3V0KysgPSBkOyAKKyAgICAgICAgfSBlbHNlIGlmIChkIDwgMHhDMCkgeworICAgICAgICAgICAgLyogdHJhaWxpbmcgYnl0ZSBpbiBsZWFkaW5nIHBvc2l0aW9uICovCisgICAgICAgICAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgICAgICAgICAqaW5sZW4gPSBpbiAtIGluc3RhcnQgLSAxOworICAgICAgICAgICAgcmV0dXJuKC0yKTsKKyAgICAgICAgfSBlbHNlIGlmIChkIDwgMHhFMCkgeworICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjOworICAgICAgICAgICAgaWYgKCEoaW4gPCBpbmVuZCkpIHsKKyAgICAgICAgICAgICAgICAvKiB0cmFpbGluZyBieXRlIG5vdCBpbiBpbnB1dCBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgICAgICAgICAgICAgKmlubGVuID0gaW4gLSBpbnN0YXJ0IC0gMTsKKyAgICAgICAgICAgICAgICByZXR1cm4oLTIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9ICppbisrOworICAgICAgICAgICAgaWYgKChjICYgMHhDMCkgIT0gMHg4MCkgeworICAgICAgICAgICAgICAgIC8qIG5vdCBhIHRyYWlsaW5nIGJ5dGUgKi8KKyAgICAgICAgICAgICAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgICAgICAgICAgICAgKmlubGVuID0gaW4gLSBpbnN0YXJ0IC0gMjsKKyAgICAgICAgICAgICAgICByZXR1cm4oLTIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IGMgJiAweDNGOyAKKyAgICAgICAgICAgIGQgPSBkICYgMHgxRjsKKyAgICAgICAgICAgIGQgPSB4bGF0dGFibGUgWzQ4ICsgYyArIHhsYXR0YWJsZSBbZF0gKiA2NF07CisgICAgICAgICAgICBpZiAoZCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLyogbm90IGluIGNoYXJhY3RlciBzZXQgKi8KKyAgICAgICAgICAgICAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgICAgICAgICAgICAgKmlubGVuID0gaW4gLSBpbnN0YXJ0IC0gMjsKKyAgICAgICAgICAgICAgICByZXR1cm4oLTIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKm91dCsrID0gZDsgCisgICAgICAgIH0gZWxzZSBpZiAoZCA8IDB4RjApIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzE7CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMyOworICAgICAgICAgICAgaWYgKCEoaW4gPCBpbmVuZCAtIDEpKSB7CisgICAgICAgICAgICAgICAgLyogdHJhaWxpbmcgYnl0ZXMgbm90IGluIGlucHV0IGJ1ZmZlciAqLworICAgICAgICAgICAgICAgICpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKyAgICAgICAgICAgICAgICAqaW5sZW4gPSBpbiAtIGluc3RhcnQgLSAxOworICAgICAgICAgICAgICAgIHJldHVybigtMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjMSA9ICppbisrOworICAgICAgICAgICAgaWYgKChjMSAmIDB4QzApICE9IDB4ODApIHsKKyAgICAgICAgICAgICAgICAvKiBub3QgYSB0cmFpbGluZyBieXRlIChjMSkgKi8KKyAgICAgICAgICAgICAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgICAgICAgICAgICAgKmlubGVuID0gaW4gLSBpbnN0YXJ0IC0gMjsKKyAgICAgICAgICAgICAgICByZXR1cm4oLTIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYzIgPSAqaW4rKzsKKyAgICAgICAgICAgIGlmICgoYzIgJiAweEMwKSAhPSAweDgwKSB7CisgICAgICAgICAgICAgICAgLyogbm90IGEgdHJhaWxpbmcgYnl0ZSAoYzIpICovCisgICAgICAgICAgICAgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICAgICAgICAgICAgICppbmxlbiA9IGluIC0gaW5zdGFydCAtIDI7CisgICAgICAgICAgICAgICAgcmV0dXJuKC0yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMxID0gYzEgJiAweDNGOyAKKyAgICAgICAgICAgIGMyID0gYzIgJiAweDNGOyAKKwkgICAgZCA9IGQgJiAweDBGOworCSAgICBkID0geGxhdHRhYmxlIFs0OCArIGMyICsgeGxhdHRhYmxlIFs0OCArIGMxICsgCisJICAgIAkJeGxhdHRhYmxlIFszMiArIGRdICogNjRdICogNjRdOworICAgICAgICAgICAgaWYgKGQgPT0gMCkgeworICAgICAgICAgICAgICAgIC8qIG5vdCBpbiBjaGFyYWN0ZXIgc2V0ICovCisgICAgICAgICAgICAgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICAgICAgICAgICAgICppbmxlbiA9IGluIC0gaW5zdGFydCAtIDM7CisgICAgICAgICAgICAgICAgcmV0dXJuKC0yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICpvdXQrKyA9IGQ7IAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogY2Fubm90IHRyYW5zY29kZSA+PSBVKzAxMDAwMCAqLworICAgICAgICAgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICAgICAgICAgKmlubGVuID0gaW4gLSBpbnN0YXJ0IC0gMTsKKyAgICAgICAgICAgIHJldHVybigtMik7CisgICAgICAgIH0KKyAgICB9CisgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICppbmxlbiA9IGluIC0gaW5zdGFydDsKKyAgICByZXR1cm4oKm91dGxlbik7Cit9CisKKy8qKgorICogSVNPODg1OXhUb1VURjgKKyAqIEBvdXQ6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAorICogQG91dGxlbjogIHRoZSBsZW5ndGggb2YgQG91dAorICogQGluOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIElTTyBMYXRpbiAxIGNoYXJzCisgKiBAaW5sZW46ICB0aGUgbGVuZ3RoIG9mIEBpbgorICoKKyAqIFRha2UgYSBibG9jayBvZiBJU08gODg1OS0qIGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbiBVVEYtOAorICogYmxvY2sgb2YgY2hhcnMgb3V0LgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MsIG9yIC0xIG90aGVyd2lzZQorICogVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQKKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jZXRlcyBwcm9kdWNlZC4KKyAqLworc3RhdGljIGludAorSVNPODg1OXhUb1VURjgodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4sCisgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGNvbnN0ICp1bmljb2RldGFibGUpIHsKKyAgICB1bnNpZ25lZCBjaGFyKiBvdXRzdGFydCA9IG91dDsKKyAgICB1bnNpZ25lZCBjaGFyKiBvdXRlbmQ7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5zdGFydCA9IGluOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluZW5kOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluc3RvcDsKKyAgICB1bnNpZ25lZCBpbnQgYzsKKworICAgIGlmICgob3V0ID09IE5VTEwpIHx8IChvdXRsZW4gPT0gTlVMTCkgfHwgKGlubGVuID09IE5VTEwpIHx8CisgICAgICAgIChpbiA9PSBOVUxMKSB8fCAodW5pY29kZXRhYmxlID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgb3V0ZW5kID0gb3V0ICsgKm91dGxlbjsKKyAgICBpbmVuZCA9IGluICsgKmlubGVuOworICAgIGluc3RvcCA9IGluZW5kOworICAgIGMgPSAqaW47CisgICAgd2hpbGUgKGluIDwgaW5lbmQgJiYgb3V0IDwgb3V0ZW5kIC0gMSkgeworICAgICAgICBpZiAoYyA+PSAweDgwKSB7CisgICAgICAgICAgICBjID0gdW5pY29kZXRhYmxlIFtjIC0gMHg4MF07CisgICAgICAgICAgICBpZiAoYyA9PSAwKSB7CisgICAgICAgICAgICAgICAgLyogdW5kZWZpbmVkIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgICAgICAgICAgICAgKmlubGVuID0gaW4gLSBpbnN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGlmIChjIDwgMHg4MDApIHsKKyAgICAgICAgICAgICAgICAqb3V0KysgPSAoKGMgPj4gIDYpICYgMHgxRikgfCAweEMwOworICAgICAgICAgICAgICAgICpvdXQrKyA9IChjICYgMHgzRikgfCAweDgwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAqb3V0KysgPSAoKGMgPj4gIDEyKSAmIDB4MEYpIHwgMHhFMDsKKyAgICAgICAgICAgICAgICAqb3V0KysgPSAoKGMgPj4gIDYpICYgMHgzRikgfCAweDgwOworICAgICAgICAgICAgICAgICpvdXQrKyA9IChjICYgMHgzRikgfCAweDgwOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgICAgICsraW47CisgICAgICAgICAgICBjID0gKmluOworICAgICAgICB9CisgICAgICAgIGlmIChpbnN0b3AgLSBpbiA+IG91dGVuZCAtIG91dCkgaW5zdG9wID0gaW4gKyAob3V0ZW5kIC0gb3V0KTsgCisgICAgICAgIHdoaWxlIChjIDwgMHg4MCAmJiBpbiA8IGluc3RvcCkgeworICAgICAgICAgICAgKm91dCsrID0gIGM7CisgICAgICAgICAgICArK2luOworICAgICAgICAgICAgYyA9ICppbjsKKyAgICAgICAgfQorICAgIH0gICAKKyAgICBpZiAoaW4gPCBpbmVuZCAmJiBvdXQgPCBvdXRlbmQgJiYgYyA8IDB4ODApIHsKKyAgICAgICAgKm91dCsrID0gIGM7CisgICAgICAgICsraW47CisgICAgfQorICAgICpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKyAgICAqaW5sZW4gPSBpbiAtIGluc3RhcnQ7CisgICAgcmV0dXJuICgqb3V0bGVuKTsKK30KKworICAgIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogTG9va3VwIHRhYmxlcyBmb3IgSVNPLTg4NTktMi4uSVNPLTg4NTktMTYgdHJhbnNjb2RpbmcgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0IHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzIgWzEyOF0gPSB7CisgICAgMHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwgMHgwMDg2LCAweDAwODcsIAorICAgIDB4MDA4OCwgMHgwMDg5LCAweDAwOGEsIDB4MDA4YiwgMHgwMDhjLCAweDAwOGQsIDB4MDA4ZSwgMHgwMDhmLCAKKyAgICAweDAwOTAsIDB4MDA5MSwgMHgwMDkyLCAweDAwOTMsIDB4MDA5NCwgMHgwMDk1LCAweDAwOTYsIDB4MDA5NywgCisgICAgMHgwMDk4LCAweDAwOTksIDB4MDA5YSwgMHgwMDliLCAweDAwOWMsIDB4MDA5ZCwgMHgwMDllLCAweDAwOWYsIAorICAgIDB4MDBhMCwgMHgwMTA0LCAweDAyZDgsIDB4MDE0MSwgMHgwMGE0LCAweDAxM2QsIDB4MDE1YSwgMHgwMGE3LCAKKyAgICAweDAwYTgsIDB4MDE2MCwgMHgwMTVlLCAweDAxNjQsIDB4MDE3OSwgMHgwMGFkLCAweDAxN2QsIDB4MDE3YiwgCisgICAgMHgwMGIwLCAweDAxMDUsIDB4MDJkYiwgMHgwMTQyLCAweDAwYjQsIDB4MDEzZSwgMHgwMTViLCAweDAyYzcsIAorICAgIDB4MDBiOCwgMHgwMTYxLCAweDAxNWYsIDB4MDE2NSwgMHgwMTdhLCAweDAyZGQsIDB4MDE3ZSwgMHgwMTdjLCAKKyAgICAweDAxNTQsIDB4MDBjMSwgMHgwMGMyLCAweDAxMDIsIDB4MDBjNCwgMHgwMTM5LCAweDAxMDYsIDB4MDBjNywgCisgICAgMHgwMTBjLCAweDAwYzksIDB4MDExOCwgMHgwMGNiLCAweDAxMWEsIDB4MDBjZCwgMHgwMGNlLCAweDAxMGUsIAorICAgIDB4MDExMCwgMHgwMTQzLCAweDAxNDcsIDB4MDBkMywgMHgwMGQ0LCAweDAxNTAsIDB4MDBkNiwgMHgwMGQ3LCAKKyAgICAweDAxNTgsIDB4MDE2ZSwgMHgwMGRhLCAweDAxNzAsIDB4MDBkYywgMHgwMGRkLCAweDAxNjIsIDB4MDBkZiwgCisgICAgMHgwMTU1LCAweDAwZTEsIDB4MDBlMiwgMHgwMTAzLCAweDAwZTQsIDB4MDEzYSwgMHgwMTA3LCAweDAwZTcsIAorICAgIDB4MDEwZCwgMHgwMGU5LCAweDAxMTksIDB4MDBlYiwgMHgwMTFiLCAweDAwZWQsIDB4MDBlZSwgMHgwMTBmLCAKKyAgICAweDAxMTEsIDB4MDE0NCwgMHgwMTQ4LCAweDAwZjMsIDB4MDBmNCwgMHgwMTUxLCAweDAwZjYsIDB4MDBmNywgCisgICAgMHgwMTU5LCAweDAxNmYsIDB4MDBmYSwgMHgwMTcxLCAweDAwZmMsIDB4MDBmZCwgMHgwMTYzLCAweDAyZDksIAorfTsKKworc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3QgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV8yIFs0OCArIDYgKiA2NF0gPSB7CisgICAgIlx4MDBceDAwXHgwMVx4MDVceDAyXHgwNFx4MDBceDAwXHgwMFx4MDBceDAwXHgwM1x4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGYiCisgICAgIlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWYiCisgICAgIlx4YTBceDAwXHgwMFx4MDBceGE0XHgwMFx4MDBceGE3XHhhOFx4MDBceDAwXHgwMFx4MDBceGFkXHgwMFx4MDAiCisgICAgIlx4YjBceDAwXHgwMFx4MDBceGI0XHgwMFx4MDBceDAwXHhiOFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHhjM1x4ZTNceGExXHhiMVx4YzZceGU2XHgwMFx4MDBceDAwXHgwMFx4YzhceGU4XHhjZlx4ZWYiCisgICAgIlx4ZDBceGYwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhjYVx4ZWFceGNjXHhlY1x4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4YzVceGU1XHgwMFx4MDBceGE1XHhiNVx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGI3XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhMlx4ZmZceDAwXHhiMlx4MDBceGJkXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceGEzXHhiM1x4ZDFceGYxXHgwMFx4MDBceGQyXHhmMlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ZDVceGY1XHgwMFx4MDBceGMwXHhlMFx4MDBceDAwXHhkOFx4ZjhceGE2XHhiNlx4MDBceDAwXHhhYVx4YmEiCisgICAgIlx4YTlceGI5XHhkZVx4ZmVceGFiXHhiYlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhkOVx4ZjkiCisgICAgIlx4ZGJceGZiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4YWNceGJjXHhhZlx4YmZceGFlXHhiZVx4MDAiCisgICAgIlx4MDBceGMxXHhjMlx4MDBceGM0XHgwMFx4MDBceGM3XHgwMFx4YzlceDAwXHhjYlx4MDBceGNkXHhjZVx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4ZDNceGQ0XHgwMFx4ZDZceGQ3XHgwMFx4MDBceGRhXHgwMFx4ZGNceGRkXHgwMFx4ZGYiCisgICAgIlx4MDBceGUxXHhlMlx4MDBceGU0XHgwMFx4MDBceGU3XHgwMFx4ZTlceDAwXHhlYlx4MDBceGVkXHhlZVx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4ZjNceGY0XHgwMFx4ZjZceGY3XHgwMFx4MDBceGZhXHgwMFx4ZmNceGZkXHgwMFx4MDAiCit9OworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfMyBbMTI4XSA9IHsKKyAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwgMHgwMDg1LCAweDAwODYsIDB4MDA4NywgCisgICAgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAweDAwOGMsIDB4MDA4ZCwgMHgwMDhlLCAweDAwOGYsIAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAKKyAgICAweDAwOTgsIDB4MDA5OSwgMHgwMDlhLCAweDAwOWIsIDB4MDA5YywgMHgwMDlkLCAweDAwOWUsIDB4MDA5ZiwgCisgICAgMHgwMGEwLCAweDAxMjYsIDB4MDJkOCwgMHgwMGEzLCAweDAwYTQsIDB4MDAwMCwgMHgwMTI0LCAweDAwYTcsIAorICAgIDB4MDBhOCwgMHgwMTMwLCAweDAxNWUsIDB4MDExZSwgMHgwMTM0LCAweDAwYWQsIDB4MDAwMCwgMHgwMTdiLCAKKyAgICAweDAwYjAsIDB4MDEyNywgMHgwMGIyLCAweDAwYjMsIDB4MDBiNCwgMHgwMGI1LCAweDAxMjUsIDB4MDBiNywgCisgICAgMHgwMGI4LCAweDAxMzEsIDB4MDE1ZiwgMHgwMTFmLCAweDAxMzUsIDB4MDBiZCwgMHgwMDAwLCAweDAxN2MsIAorICAgIDB4MDBjMCwgMHgwMGMxLCAweDAwYzIsIDB4MDAwMCwgMHgwMGM0LCAweDAxMGEsIDB4MDEwOCwgMHgwMGM3LCAKKyAgICAweDAwYzgsIDB4MDBjOSwgMHgwMGNhLCAweDAwY2IsIDB4MDBjYywgMHgwMGNkLCAweDAwY2UsIDB4MDBjZiwgCisgICAgMHgwMDAwLCAweDAwZDEsIDB4MDBkMiwgMHgwMGQzLCAweDAwZDQsIDB4MDEyMCwgMHgwMGQ2LCAweDAwZDcsIAorICAgIDB4MDExYywgMHgwMGQ5LCAweDAwZGEsIDB4MDBkYiwgMHgwMGRjLCAweDAxNmMsIDB4MDE1YywgMHgwMGRmLCAKKyAgICAweDAwZTAsIDB4MDBlMSwgMHgwMGUyLCAweDAwMDAsIDB4MDBlNCwgMHgwMTBiLCAweDAxMDksIDB4MDBlNywgCisgICAgMHgwMGU4LCAweDAwZTksIDB4MDBlYSwgMHgwMGViLCAweDAwZWMsIDB4MDBlZCwgMHgwMGVlLCAweDAwZWYsIAorICAgIDB4MDAwMCwgMHgwMGYxLCAweDAwZjIsIDB4MDBmMywgMHgwMGY0LCAweDAxMjEsIDB4MDBmNiwgMHgwMGY3LCAKKyAgICAweDAxMWQsIDB4MDBmOSwgMHgwMGZhLCAweDAwZmIsIDB4MDBmYywgMHgwMTZkLCAweDAxNWQsIDB4MDJkOSwgCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzMgWzQ4ICsgNyAqIDY0XSA9IHsKKyAgICAiXHgwNFx4MDBceDAxXHgwNlx4MDJceDA1XHgwMFx4MDBceDAwXHgwMFx4MDBceDAzXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4ZiIKKyAgICAiXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5ZiIKKyAgICAiXHhhMFx4MDBceDAwXHhhM1x4YTRceDAwXHgwMFx4YTdceGE4XHgwMFx4MDBceDAwXHgwMFx4YWRceDAwXHgwMCIKKyAgICAiXHhiMFx4MDBceGIyXHhiM1x4YjRceGI1XHgwMFx4YjdceGI4XHgwMFx4MDBceDAwXHgwMFx4YmRceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGM2XHhlNlx4YzVceGU1XHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhkOFx4ZjhceGFiXHhiYiIKKyAgICAiXHhkNVx4ZjVceDAwXHgwMFx4YTZceGI2XHhhMVx4YjFceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHhhOVx4YjlceDAwXHgwMFx4YWNceGJjXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGEyXHhmZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHhmMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhkZVx4ZmVceGFhXHhiYSIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhkZFx4ZmRceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGFmXHhiZlx4MDBceDAwXHgwMCIKKyAgICAiXHhjMFx4YzFceGMyXHgwMFx4YzRceDAwXHgwMFx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZiIKKyAgICAiXHgwMFx4ZDFceGQyXHhkM1x4ZDRceDAwXHhkNlx4ZDdceDAwXHhkOVx4ZGFceGRiXHhkY1x4MDBceDAwXHhkZiIKKyAgICAiXHhlMFx4ZTFceGUyXHgwMFx4ZTRceDAwXHgwMFx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZiIKKyAgICAiXHgwMFx4ZjFceGYyXHhmM1x4ZjRceDAwXHhmNlx4ZjdceDAwXHhmOVx4ZmFceGZiXHhmY1x4MDBceDAwXHgwMCIKK307CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCB4bWx1bmljb2RldGFibGVfSVNPODg1OV80IFsxMjhdID0geworICAgIDB4MDA4MCwgMHgwMDgxLCAweDAwODIsIDB4MDA4MywgMHgwMDg0LCAweDAwODUsIDB4MDA4NiwgMHgwMDg3LCAKKyAgICAweDAwODgsIDB4MDA4OSwgMHgwMDhhLCAweDAwOGIsIDB4MDA4YywgMHgwMDhkLCAweDAwOGUsIDB4MDA4ZiwgCisgICAgMHgwMDkwLCAweDAwOTEsIDB4MDA5MiwgMHgwMDkzLCAweDAwOTQsIDB4MDA5NSwgMHgwMDk2LCAweDAwOTcsIAorICAgIDB4MDA5OCwgMHgwMDk5LCAweDAwOWEsIDB4MDA5YiwgMHgwMDljLCAweDAwOWQsIDB4MDA5ZSwgMHgwMDlmLCAKKyAgICAweDAwYTAsIDB4MDEwNCwgMHgwMTM4LCAweDAxNTYsIDB4MDBhNCwgMHgwMTI4LCAweDAxM2IsIDB4MDBhNywgCisgICAgMHgwMGE4LCAweDAxNjAsIDB4MDExMiwgMHgwMTIyLCAweDAxNjYsIDB4MDBhZCwgMHgwMTdkLCAweDAwYWYsIAorICAgIDB4MDBiMCwgMHgwMTA1LCAweDAyZGIsIDB4MDE1NywgMHgwMGI0LCAweDAxMjksIDB4MDEzYywgMHgwMmM3LCAKKyAgICAweDAwYjgsIDB4MDE2MSwgMHgwMTEzLCAweDAxMjMsIDB4MDE2NywgMHgwMTRhLCAweDAxN2UsIDB4MDE0YiwgCisgICAgMHgwMTAwLCAweDAwYzEsIDB4MDBjMiwgMHgwMGMzLCAweDAwYzQsIDB4MDBjNSwgMHgwMGM2LCAweDAxMmUsIAorICAgIDB4MDEwYywgMHgwMGM5LCAweDAxMTgsIDB4MDBjYiwgMHgwMTE2LCAweDAwY2QsIDB4MDBjZSwgMHgwMTJhLCAKKyAgICAweDAxMTAsIDB4MDE0NSwgMHgwMTRjLCAweDAxMzYsIDB4MDBkNCwgMHgwMGQ1LCAweDAwZDYsIDB4MDBkNywgCisgICAgMHgwMGQ4LCAweDAxNzIsIDB4MDBkYSwgMHgwMGRiLCAweDAwZGMsIDB4MDE2OCwgMHgwMTZhLCAweDAwZGYsIAorICAgIDB4MDEwMSwgMHgwMGUxLCAweDAwZTIsIDB4MDBlMywgMHgwMGU0LCAweDAwZTUsIDB4MDBlNiwgMHgwMTJmLCAKKyAgICAweDAxMGQsIDB4MDBlOSwgMHgwMTE5LCAweDAwZWIsIDB4MDExNywgMHgwMGVkLCAweDAwZWUsIDB4MDEyYiwgCisgICAgMHgwMTExLCAweDAxNDYsIDB4MDE0ZCwgMHgwMTM3LCAweDAwZjQsIDB4MDBmNSwgMHgwMGY2LCAweDAwZjcsIAorICAgIDB4MDBmOCwgMHgwMTczLCAweDAwZmEsIDB4MDBmYiwgMHgwMGZjLCAweDAxNjksIDB4MDE2YiwgMHgwMmQ5LCAKK307CisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfNCBbNDggKyA2ICogNjRdID0geworICAgICJceDAwXHgwMFx4MDFceDA1XHgwMlx4MDNceDAwXHgwMFx4MDBceDAwXHgwMFx4MDRceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmIgorICAgICJceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmIgorICAgICJceGEwXHgwMFx4MDBceDAwXHhhNFx4MDBceDAwXHhhN1x4YThceDAwXHgwMFx4MDBceDAwXHhhZFx4MDBceGFmIgorICAgICJceGIwXHgwMFx4MDBceDAwXHhiNFx4MDBceDAwXHgwMFx4YjhceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGMwXHhlMFx4MDBceDAwXHhhMVx4YjFceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGM4XHhlOFx4MDBceDAwIgorICAgICJceGQwXHhmMFx4YWFceGJhXHgwMFx4MDBceGNjXHhlY1x4Y2FceGVhXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4YWJceGJiXHgwMFx4MDBceDAwXHgwMFx4YTVceGI1XHhjZlx4ZWZceDAwXHgwMFx4YzdceGU3IgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGQzXHhmM1x4YTJceDAwXHgwMFx4YTZceGI2XHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4ZDFceGYxXHgwMFx4MDBceDAwXHhiZFx4YmZceGQyXHhmMlx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGEzXHhiM1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGE5XHhiOVx4MDBceDAwXHgwMFx4MDBceGFjXHhiY1x4ZGRceGZkXHhkZVx4ZmVceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4ZDlceGY5XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhZVx4YmVceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhiN1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGZmXHgwMFx4YjJceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHgwMFx4MDBceGM5XHgwMFx4Y2JceDAwXHhjZFx4Y2VceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceDAwXHhkYVx4ZGJceGRjXHgwMFx4MDBceGRmIgorICAgICJceDAwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHgwMFx4MDBceGU5XHgwMFx4ZWJceDAwXHhlZFx4ZWVceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHhmNFx4ZjVceGY2XHhmN1x4ZjhceDAwXHhmYVx4ZmJceGZjXHgwMFx4MDBceDAwIgorfTsKKworc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0IHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzUgWzEyOF0gPSB7CisgICAgMHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwgMHgwMDg2LCAweDAwODcsIAorICAgIDB4MDA4OCwgMHgwMDg5LCAweDAwOGEsIDB4MDA4YiwgMHgwMDhjLCAweDAwOGQsIDB4MDA4ZSwgMHgwMDhmLCAKKyAgICAweDAwOTAsIDB4MDA5MSwgMHgwMDkyLCAweDAwOTMsIDB4MDA5NCwgMHgwMDk1LCAweDAwOTYsIDB4MDA5NywgCisgICAgMHgwMDk4LCAweDAwOTksIDB4MDA5YSwgMHgwMDliLCAweDAwOWMsIDB4MDA5ZCwgMHgwMDllLCAweDAwOWYsIAorICAgIDB4MDBhMCwgMHgwNDAxLCAweDA0MDIsIDB4MDQwMywgMHgwNDA0LCAweDA0MDUsIDB4MDQwNiwgMHgwNDA3LCAKKyAgICAweDA0MDgsIDB4MDQwOSwgMHgwNDBhLCAweDA0MGIsIDB4MDQwYywgMHgwMGFkLCAweDA0MGUsIDB4MDQwZiwgCisgICAgMHgwNDEwLCAweDA0MTEsIDB4MDQxMiwgMHgwNDEzLCAweDA0MTQsIDB4MDQxNSwgMHgwNDE2LCAweDA0MTcsIAorICAgIDB4MDQxOCwgMHgwNDE5LCAweDA0MWEsIDB4MDQxYiwgMHgwNDFjLCAweDA0MWQsIDB4MDQxZSwgMHgwNDFmLCAKKyAgICAweDA0MjAsIDB4MDQyMSwgMHgwNDIyLCAweDA0MjMsIDB4MDQyNCwgMHgwNDI1LCAweDA0MjYsIDB4MDQyNywgCisgICAgMHgwNDI4LCAweDA0MjksIDB4MDQyYSwgMHgwNDJiLCAweDA0MmMsIDB4MDQyZCwgMHgwNDJlLCAweDA0MmYsIAorICAgIDB4MDQzMCwgMHgwNDMxLCAweDA0MzIsIDB4MDQzMywgMHgwNDM0LCAweDA0MzUsIDB4MDQzNiwgMHgwNDM3LCAKKyAgICAweDA0MzgsIDB4MDQzOSwgMHgwNDNhLCAweDA0M2IsIDB4MDQzYywgMHgwNDNkLCAweDA0M2UsIDB4MDQzZiwgCisgICAgMHgwNDQwLCAweDA0NDEsIDB4MDQ0MiwgMHgwNDQzLCAweDA0NDQsIDB4MDQ0NSwgMHgwNDQ2LCAweDA0NDcsIAorICAgIDB4MDQ0OCwgMHgwNDQ5LCAweDA0NGEsIDB4MDQ0YiwgMHgwNDRjLCAweDA0NGQsIDB4MDQ0ZSwgMHgwNDRmLCAKKyAgICAweDIxMTYsIDB4MDQ1MSwgMHgwNDUyLCAweDA0NTMsIDB4MDQ1NCwgMHgwNDU1LCAweDA0NTYsIDB4MDQ1NywgCisgICAgMHgwNDU4LCAweDA0NTksIDB4MDQ1YSwgMHgwNDViLCAweDA0NWMsIDB4MDBhNywgMHgwNDVlLCAweDA0NWYsIAorfTsKKworc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3QgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV81IFs0OCArIDYgKiA2NF0gPSB7CisgICAgIlx4MDBceDAwXHgwMVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDJceDAzXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwNFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGYiCisgICAgIlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWYiCisgICAgIlx4YTBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGZkXHgwMFx4MDBceDAwXHgwMFx4MDBceGFkXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceDAwXHhhZVx4YWYiCisgICAgIlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmYiCisgICAgIlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2YiCisgICAgIlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGYiCisgICAgIlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWYiCisgICAgIlx4MDBceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceDAwXHhmZVx4ZmYiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDA1XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4ZjBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCit9OworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfNiBbMTI4XSA9IHsKKyAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwgMHgwMDg1LCAweDAwODYsIDB4MDA4NywgCisgICAgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAweDAwOGMsIDB4MDA4ZCwgMHgwMDhlLCAweDAwOGYsIAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAKKyAgICAweDAwOTgsIDB4MDA5OSwgMHgwMDlhLCAweDAwOWIsIDB4MDA5YywgMHgwMDlkLCAweDAwOWUsIDB4MDA5ZiwgCisgICAgMHgwMGEwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwYTQsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIAorICAgIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwNjBjLCAweDAwYWQsIDB4MDAwMCwgMHgwMDAwLCAKKyAgICAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgCisgICAgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwNjFiLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDA2MWYsIAorICAgIDB4MDAwMCwgMHgwNjIxLCAweDA2MjIsIDB4MDYyMywgMHgwNjI0LCAweDA2MjUsIDB4MDYyNiwgMHgwNjI3LCAKKyAgICAweDA2MjgsIDB4MDYyOSwgMHgwNjJhLCAweDA2MmIsIDB4MDYyYywgMHgwNjJkLCAweDA2MmUsIDB4MDYyZiwgCisgICAgMHgwNjMwLCAweDA2MzEsIDB4MDYzMiwgMHgwNjMzLCAweDA2MzQsIDB4MDYzNSwgMHgwNjM2LCAweDA2MzcsIAorICAgIDB4MDYzOCwgMHgwNjM5LCAweDA2M2EsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAKKyAgICAweDA2NDAsIDB4MDY0MSwgMHgwNjQyLCAweDA2NDMsIDB4MDY0NCwgMHgwNjQ1LCAweDA2NDYsIDB4MDY0NywgCisgICAgMHgwNjQ4LCAweDA2NDksIDB4MDY0YSwgMHgwNjRiLCAweDA2NGMsIDB4MDY0ZCwgMHgwNjRlLCAweDA2NGYsIAorICAgIDB4MDY1MCwgMHgwNjUxLCAweDA2NTIsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAKKyAgICAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzYgWzQ4ICsgNSAqIDY0XSA9IHsKKyAgICAiXHgwMlx4MDBceDAxXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAzXHgwNFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4ZiIKKyAgICAiXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5ZiIKKyAgICAiXHhhMFx4MDBceDAwXHgwMFx4YTRceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4YWRceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHhmZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhY1x4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGJiXHgwMFx4MDBceDAwXHhiZiIKKyAgICAiXHgwMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZiIKKyAgICAiXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZiIKKyAgICAiXHhmMFx4ZjFceGYyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKK307CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCB4bWx1bmljb2RldGFibGVfSVNPODg1OV83IFsxMjhdID0geworICAgIDB4MDA4MCwgMHgwMDgxLCAweDAwODIsIDB4MDA4MywgMHgwMDg0LCAweDAwODUsIDB4MDA4NiwgMHgwMDg3LCAKKyAgICAweDAwODgsIDB4MDA4OSwgMHgwMDhhLCAweDAwOGIsIDB4MDA4YywgMHgwMDhkLCAweDAwOGUsIDB4MDA4ZiwgCisgICAgMHgwMDkwLCAweDAwOTEsIDB4MDA5MiwgMHgwMDkzLCAweDAwOTQsIDB4MDA5NSwgMHgwMDk2LCAweDAwOTcsIAorICAgIDB4MDA5OCwgMHgwMDk5LCAweDAwOWEsIDB4MDA5YiwgMHgwMDljLCAweDAwOWQsIDB4MDA5ZSwgMHgwMDlmLCAKKyAgICAweDAwYTAsIDB4MjAxOCwgMHgyMDE5LCAweDAwYTMsIDB4MDAwMCwgMHgwMDAwLCAweDAwYTYsIDB4MDBhNywgCisgICAgMHgwMGE4LCAweDAwYTksIDB4MDAwMCwgMHgwMGFiLCAweDAwYWMsIDB4MDBhZCwgMHgwMDAwLCAweDIwMTUsIAorICAgIDB4MDBiMCwgMHgwMGIxLCAweDAwYjIsIDB4MDBiMywgMHgwMzg0LCAweDAzODUsIDB4MDM4NiwgMHgwMGI3LCAKKyAgICAweDAzODgsIDB4MDM4OSwgMHgwMzhhLCAweDAwYmIsIDB4MDM4YywgMHgwMGJkLCAweDAzOGUsIDB4MDM4ZiwgCisgICAgMHgwMzkwLCAweDAzOTEsIDB4MDM5MiwgMHgwMzkzLCAweDAzOTQsIDB4MDM5NSwgMHgwMzk2LCAweDAzOTcsIAorICAgIDB4MDM5OCwgMHgwMzk5LCAweDAzOWEsIDB4MDM5YiwgMHgwMzljLCAweDAzOWQsIDB4MDM5ZSwgMHgwMzlmLCAKKyAgICAweDAzYTAsIDB4MDNhMSwgMHgwMDAwLCAweDAzYTMsIDB4MDNhNCwgMHgwM2E1LCAweDAzYTYsIDB4MDNhNywgCisgICAgMHgwM2E4LCAweDAzYTksIDB4MDNhYSwgMHgwM2FiLCAweDAzYWMsIDB4MDNhZCwgMHgwM2FlLCAweDAzYWYsIAorICAgIDB4MDNiMCwgMHgwM2IxLCAweDAzYjIsIDB4MDNiMywgMHgwM2I0LCAweDAzYjUsIDB4MDNiNiwgMHgwM2I3LCAKKyAgICAweDAzYjgsIDB4MDNiOSwgMHgwM2JhLCAweDAzYmIsIDB4MDNiYywgMHgwM2JkLCAweDAzYmUsIDB4MDNiZiwgCisgICAgMHgwM2MwLCAweDAzYzEsIDB4MDNjMiwgMHgwM2MzLCAweDAzYzQsIDB4MDNjNSwgMHgwM2M2LCAweDAzYzcsIAorICAgIDB4MDNjOCwgMHgwM2M5LCAweDAzY2EsIDB4MDNjYiwgMHgwM2NjLCAweDAzY2QsIDB4MDNjZSwgMHgwMDAwLCAKK307CisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfNyBbNDggKyA3ICogNjRdID0geworICAgICJceDA0XHgwMFx4MDFceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDVceDA2IgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmIgorICAgICJceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmIgorICAgICJceGEwXHgwMFx4MDBceGEzXHgwMFx4MDBceGE2XHhhN1x4YThceGE5XHgwMFx4YWJceGFjXHhhZFx4MDBceDAwIgorICAgICJceGIwXHhiMVx4YjJceGIzXHgwMFx4MDBceDAwXHhiN1x4MDBceDAwXHgwMFx4YmJceDAwXHhiZFx4MDBceDAwIgorICAgICJceDAzXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4YWZceDAwXHgwMFx4YTFceGEyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGZmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHhiNFx4YjVceGI2XHgwMFx4YjhceGI5XHhiYVx4MDBceGJjXHgwMFx4YmVceGJmIgorICAgICJceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmIgorICAgICJceGQwXHhkMVx4MDBceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmIgorICAgICJceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmIgorICAgICJceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorfTsKKworc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0IHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzggWzEyOF0gPSB7CisgICAgMHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwgMHgwMDg2LCAweDAwODcsIAorICAgIDB4MDA4OCwgMHgwMDg5LCAweDAwOGEsIDB4MDA4YiwgMHgwMDhjLCAweDAwOGQsIDB4MDA4ZSwgMHgwMDhmLCAKKyAgICAweDAwOTAsIDB4MDA5MSwgMHgwMDkyLCAweDAwOTMsIDB4MDA5NCwgMHgwMDk1LCAweDAwOTYsIDB4MDA5NywgCisgICAgMHgwMDk4LCAweDAwOTksIDB4MDA5YSwgMHgwMDliLCAweDAwOWMsIDB4MDA5ZCwgMHgwMDllLCAweDAwOWYsIAorICAgIDB4MDBhMCwgMHgwMDAwLCAweDAwYTIsIDB4MDBhMywgMHgwMGE0LCAweDAwYTUsIDB4MDBhNiwgMHgwMGE3LCAKKyAgICAweDAwYTgsIDB4MDBhOSwgMHgwMGQ3LCAweDAwYWIsIDB4MDBhYywgMHgwMGFkLCAweDAwYWUsIDB4MDBhZiwgCisgICAgMHgwMGIwLCAweDAwYjEsIDB4MDBiMiwgMHgwMGIzLCAweDAwYjQsIDB4MDBiNSwgMHgwMGI2LCAweDAwYjcsIAorICAgIDB4MDBiOCwgMHgwMGI5LCAweDAwZjcsIDB4MDBiYiwgMHgwMGJjLCAweDAwYmQsIDB4MDBiZSwgMHgwMDAwLCAKKyAgICAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgCisgICAgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIAorICAgIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAKKyAgICAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MjAxNywgCisgICAgMHgwNWQwLCAweDA1ZDEsIDB4MDVkMiwgMHgwNWQzLCAweDA1ZDQsIDB4MDVkNSwgMHgwNWQ2LCAweDA1ZDcsIAorICAgIDB4MDVkOCwgMHgwNWQ5LCAweDA1ZGEsIDB4MDVkYiwgMHgwNWRjLCAweDA1ZGQsIDB4MDVkZSwgMHgwNWRmLCAKKyAgICAweDA1ZTAsIDB4MDVlMSwgMHgwNWUyLCAweDA1ZTMsIDB4MDVlNCwgMHgwNWU1LCAweDA1ZTYsIDB4MDVlNywgCisgICAgMHgwNWU4LCAweDA1ZTksIDB4MDVlYSwgMHgwMDAwLCAweDAwMDAsIDB4MjAwZSwgMHgyMDBmLCAweDAwMDAsIAorfTsKKworc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3QgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV84IFs0OCArIDcgKiA2NF0gPSB7CisgICAgIlx4MDJceDAwXHgwMVx4MDNceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDA2XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwNFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGYiCisgICAgIlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWYiCisgICAgIlx4YTBceDAwXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceDAwXHhhYlx4YWNceGFkXHhhZVx4YWYiCisgICAgIlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceDAwXHhiYlx4YmNceGJkXHhiZVx4MDAiCisgICAgIlx4ZmZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGFhXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGJhXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDVceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhmZFx4ZmUiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGRmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWYiCisgICAgIlx4ZjBceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCit9OworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfOSBbMTI4XSA9IHsKKyAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwgMHgwMDg1LCAweDAwODYsIDB4MDA4NywgCisgICAgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAweDAwOGMsIDB4MDA4ZCwgMHgwMDhlLCAweDAwOGYsIAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAKKyAgICAweDAwOTgsIDB4MDA5OSwgMHgwMDlhLCAweDAwOWIsIDB4MDA5YywgMHgwMDlkLCAweDAwOWUsIDB4MDA5ZiwgCisgICAgMHgwMGEwLCAweDAwYTEsIDB4MDBhMiwgMHgwMGEzLCAweDAwYTQsIDB4MDBhNSwgMHgwMGE2LCAweDAwYTcsIAorICAgIDB4MDBhOCwgMHgwMGE5LCAweDAwYWEsIDB4MDBhYiwgMHgwMGFjLCAweDAwYWQsIDB4MDBhZSwgMHgwMGFmLCAKKyAgICAweDAwYjAsIDB4MDBiMSwgMHgwMGIyLCAweDAwYjMsIDB4MDBiNCwgMHgwMGI1LCAweDAwYjYsIDB4MDBiNywgCisgICAgMHgwMGI4LCAweDAwYjksIDB4MDBiYSwgMHgwMGJiLCAweDAwYmMsIDB4MDBiZCwgMHgwMGJlLCAweDAwYmYsIAorICAgIDB4MDBjMCwgMHgwMGMxLCAweDAwYzIsIDB4MDBjMywgMHgwMGM0LCAweDAwYzUsIDB4MDBjNiwgMHgwMGM3LCAKKyAgICAweDAwYzgsIDB4MDBjOSwgMHgwMGNhLCAweDAwY2IsIDB4MDBjYywgMHgwMGNkLCAweDAwY2UsIDB4MDBjZiwgCisgICAgMHgwMTFlLCAweDAwZDEsIDB4MDBkMiwgMHgwMGQzLCAweDAwZDQsIDB4MDBkNSwgMHgwMGQ2LCAweDAwZDcsIAorICAgIDB4MDBkOCwgMHgwMGQ5LCAweDAwZGEsIDB4MDBkYiwgMHgwMGRjLCAweDAxMzAsIDB4MDE1ZSwgMHgwMGRmLCAKKyAgICAweDAwZTAsIDB4MDBlMSwgMHgwMGUyLCAweDAwZTMsIDB4MDBlNCwgMHgwMGU1LCAweDAwZTYsIDB4MDBlNywgCisgICAgMHgwMGU4LCAweDAwZTksIDB4MDBlYSwgMHgwMGViLCAweDAwZWMsIDB4MDBlZCwgMHgwMGVlLCAweDAwZWYsIAorICAgIDB4MDExZiwgMHgwMGYxLCAweDAwZjIsIDB4MDBmMywgMHgwMGY0LCAweDAwZjUsIDB4MDBmNiwgMHgwMGY3LCAKKyAgICAweDAwZjgsIDB4MDBmOSwgMHgwMGZhLCAweDAwZmIsIDB4MDBmYywgMHgwMTMxLCAweDAxNWYsIDB4MDBmZiwgCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzkgWzQ4ICsgNSAqIDY0XSA9IHsKKyAgICAiXHgwMFx4MDBceDAxXHgwMlx4MDNceDA0XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4ZiIKKyAgICAiXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5ZiIKKyAgICAiXHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZiIKKyAgICAiXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZiIKKyAgICAiXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZiIKKyAgICAiXHgwMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4MDBceDAwXHhkZiIKKyAgICAiXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZiIKKyAgICAiXHgwMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4MDBceDAwXHhmZiIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGQwXHhmMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHhkZFx4ZmRceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGRlXHhmZSIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKK307CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCB4bWx1bmljb2RldGFibGVfSVNPODg1OV8xMCBbMTI4XSA9IHsKKyAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwgMHgwMDg1LCAweDAwODYsIDB4MDA4NywgCisgICAgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAweDAwOGMsIDB4MDA4ZCwgMHgwMDhlLCAweDAwOGYsIAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAKKyAgICAweDAwOTgsIDB4MDA5OSwgMHgwMDlhLCAweDAwOWIsIDB4MDA5YywgMHgwMDlkLCAweDAwOWUsIDB4MDA5ZiwgCisgICAgMHgwMGEwLCAweDAxMDQsIDB4MDExMiwgMHgwMTIyLCAweDAxMmEsIDB4MDEyOCwgMHgwMTM2LCAweDAwYTcsIAorICAgIDB4MDEzYiwgMHgwMTEwLCAweDAxNjAsIDB4MDE2NiwgMHgwMTdkLCAweDAwYWQsIDB4MDE2YSwgMHgwMTRhLCAKKyAgICAweDAwYjAsIDB4MDEwNSwgMHgwMTEzLCAweDAxMjMsIDB4MDEyYiwgMHgwMTI5LCAweDAxMzcsIDB4MDBiNywgCisgICAgMHgwMTNjLCAweDAxMTEsIDB4MDE2MSwgMHgwMTY3LCAweDAxN2UsIDB4MjAxNSwgMHgwMTZiLCAweDAxNGIsIAorICAgIDB4MDEwMCwgMHgwMGMxLCAweDAwYzIsIDB4MDBjMywgMHgwMGM0LCAweDAwYzUsIDB4MDBjNiwgMHgwMTJlLCAKKyAgICAweDAxMGMsIDB4MDBjOSwgMHgwMTE4LCAweDAwY2IsIDB4MDExNiwgMHgwMGNkLCAweDAwY2UsIDB4MDBjZiwgCisgICAgMHgwMGQwLCAweDAxNDUsIDB4MDE0YywgMHgwMGQzLCAweDAwZDQsIDB4MDBkNSwgMHgwMGQ2LCAweDAxNjgsIAorICAgIDB4MDBkOCwgMHgwMTcyLCAweDAwZGEsIDB4MDBkYiwgMHgwMGRjLCAweDAwZGQsIDB4MDBkZSwgMHgwMGRmLCAKKyAgICAweDAxMDEsIDB4MDBlMSwgMHgwMGUyLCAweDAwZTMsIDB4MDBlNCwgMHgwMGU1LCAweDAwZTYsIDB4MDEyZiwgCisgICAgMHgwMTBkLCAweDAwZTksIDB4MDExOSwgMHgwMGViLCAweDAxMTcsIDB4MDBlZCwgMHgwMGVlLCAweDAwZWYsIAorICAgIDB4MDBmMCwgMHgwMTQ2LCAweDAxNGQsIDB4MDBmMywgMHgwMGY0LCAweDAwZjUsIDB4MDBmNiwgMHgwMTY5LCAKKyAgICAweDAwZjgsIDB4MDE3MywgMHgwMGZhLCAweDAwZmIsIDB4MDBmYywgMHgwMGZkLCAweDAwZmUsIDB4MDEzOCwgCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzEwIFs0OCArIDcgKiA2NF0gPSB7CisgICAgIlx4MDBceDAwXHgwMVx4MDZceDAyXHgwM1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwNFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGYiCisgICAgIlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWYiCisgICAgIlx4YTBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGE3XHgwMFx4MDBceDAwXHgwMFx4MDBceGFkXHgwMFx4MDAiCisgICAgIlx4YjBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGI3XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4YzBceGUwXHgwMFx4MDBceGExXHhiMVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4YzhceGU4XHgwMFx4MDAiCisgICAgIlx4YTlceGI5XHhhMlx4YjJceDAwXHgwMFx4Y2NceGVjXHhjYVx4ZWFceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHhhM1x4YjNceDAwXHgwMFx4MDBceDAwXHhhNVx4YjVceGE0XHhiNFx4MDBceDAwXHhjN1x4ZTciCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4YTZceGI2XHhmZlx4MDBceDAwXHhhOFx4YjhceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHhkMVx4ZjFceDAwXHgwMFx4MDBceGFmXHhiZlx4ZDJceGYyXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4YWFceGJhXHgwMFx4MDBceDAwXHgwMFx4YWJceGJiXHhkN1x4ZjdceGFlXHhiZVx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHhkOVx4ZjlceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGFjXHhiY1x4MDAiCisgICAgIlx4MDVceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHhiZFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceDAwXHgwMFx4YzlceDAwXHhjYlx4MDBceGNkXHhjZVx4Y2YiCisgICAgIlx4ZDBceDAwXHgwMFx4ZDNceGQ0XHhkNVx4ZDZceDAwXHhkOFx4MDBceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGYiCisgICAgIlx4MDBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceDAwXHgwMFx4ZTlceDAwXHhlYlx4MDBceGVkXHhlZVx4ZWYiCisgICAgIlx4ZjBceDAwXHgwMFx4ZjNceGY0XHhmNVx4ZjZceDAwXHhmOFx4MDBceGZhXHhmYlx4ZmNceGZkXHhmZVx4MDAiCit9OworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29uc3QgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfMTEgWzEyOF0gPSB7CisgICAgMHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwgMHgwMDg2LCAweDAwODcsIAorICAgIDB4MDA4OCwgMHgwMDg5LCAweDAwOGEsIDB4MDA4YiwgMHgwMDhjLCAweDAwOGQsIDB4MDA4ZSwgMHgwMDhmLCAKKyAgICAweDAwOTAsIDB4MDA5MSwgMHgwMDkyLCAweDAwOTMsIDB4MDA5NCwgMHgwMDk1LCAweDAwOTYsIDB4MDA5NywgCisgICAgMHgwMDk4LCAweDAwOTksIDB4MDA5YSwgMHgwMDliLCAweDAwOWMsIDB4MDA5ZCwgMHgwMDllLCAweDAwOWYsIAorICAgIDB4MDBhMCwgMHgwZTAxLCAweDBlMDIsIDB4MGUwMywgMHgwZTA0LCAweDBlMDUsIDB4MGUwNiwgMHgwZTA3LCAKKyAgICAweDBlMDgsIDB4MGUwOSwgMHgwZTBhLCAweDBlMGIsIDB4MGUwYywgMHgwZTBkLCAweDBlMGUsIDB4MGUwZiwgCisgICAgMHgwZTEwLCAweDBlMTEsIDB4MGUxMiwgMHgwZTEzLCAweDBlMTQsIDB4MGUxNSwgMHgwZTE2LCAweDBlMTcsIAorICAgIDB4MGUxOCwgMHgwZTE5LCAweDBlMWEsIDB4MGUxYiwgMHgwZTFjLCAweDBlMWQsIDB4MGUxZSwgMHgwZTFmLCAKKyAgICAweDBlMjAsIDB4MGUyMSwgMHgwZTIyLCAweDBlMjMsIDB4MGUyNCwgMHgwZTI1LCAweDBlMjYsIDB4MGUyNywgCisgICAgMHgwZTI4LCAweDBlMjksIDB4MGUyYSwgMHgwZTJiLCAweDBlMmMsIDB4MGUyZCwgMHgwZTJlLCAweDBlMmYsIAorICAgIDB4MGUzMCwgMHgwZTMxLCAweDBlMzIsIDB4MGUzMywgMHgwZTM0LCAweDBlMzUsIDB4MGUzNiwgMHgwZTM3LCAKKyAgICAweDBlMzgsIDB4MGUzOSwgMHgwZTNhLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MGUzZiwgCisgICAgMHgwZTQwLCAweDBlNDEsIDB4MGU0MiwgMHgwZTQzLCAweDBlNDQsIDB4MGU0NSwgMHgwZTQ2LCAweDBlNDcsIAorICAgIDB4MGU0OCwgMHgwZTQ5LCAweDBlNGEsIDB4MGU0YiwgMHgwZTRjLCAweDBlNGQsIDB4MGU0ZSwgMHgwZTRmLCAKKyAgICAweDBlNTAsIDB4MGU1MSwgMHgwZTUyLCAweDBlNTMsIDB4MGU1NCwgMHgwZTU1LCAweDBlNTYsIDB4MGU1NywgCisgICAgMHgwZTU4LCAweDBlNTksIDB4MGU1YSwgMHgwZTViLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIAorfTsKKworc3RhdGljIHVuc2lnbmVkIGNoYXIgY29uc3QgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV8xMSBbNDggKyA2ICogNjRdID0geworICAgICJceDA0XHgwMFx4MDFceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmIgorICAgICJceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmIgorICAgICJceGEwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDNceDA1XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmIgorICAgICJceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmIgorICAgICJceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmIgorICAgICJceGQwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4MDBceDAwXHgwMFx4MDBceGRmIgorICAgICJceGZmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmIgorICAgICJceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorfTsKKworc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0IHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzEzIFsxMjhdID0geworICAgIDB4MDA4MCwgMHgwMDgxLCAweDAwODIsIDB4MDA4MywgMHgwMDg0LCAweDAwODUsIDB4MDA4NiwgMHgwMDg3LCAKKyAgICAweDAwODgsIDB4MDA4OSwgMHgwMDhhLCAweDAwOGIsIDB4MDA4YywgMHgwMDhkLCAweDAwOGUsIDB4MDA4ZiwgCisgICAgMHgwMDkwLCAweDAwOTEsIDB4MDA5MiwgMHgwMDkzLCAweDAwOTQsIDB4MDA5NSwgMHgwMDk2LCAweDAwOTcsIAorICAgIDB4MDA5OCwgMHgwMDk5LCAweDAwOWEsIDB4MDA5YiwgMHgwMDljLCAweDAwOWQsIDB4MDA5ZSwgMHgwMDlmLCAKKyAgICAweDAwYTAsIDB4MjAxZCwgMHgwMGEyLCAweDAwYTMsIDB4MDBhNCwgMHgyMDFlLCAweDAwYTYsIDB4MDBhNywgCisgICAgMHgwMGQ4LCAweDAwYTksIDB4MDE1NiwgMHgwMGFiLCAweDAwYWMsIDB4MDBhZCwgMHgwMGFlLCAweDAwYzYsIAorICAgIDB4MDBiMCwgMHgwMGIxLCAweDAwYjIsIDB4MDBiMywgMHgyMDFjLCAweDAwYjUsIDB4MDBiNiwgMHgwMGI3LCAKKyAgICAweDAwZjgsIDB4MDBiOSwgMHgwMTU3LCAweDAwYmIsIDB4MDBiYywgMHgwMGJkLCAweDAwYmUsIDB4MDBlNiwgCisgICAgMHgwMTA0LCAweDAxMmUsIDB4MDEwMCwgMHgwMTA2LCAweDAwYzQsIDB4MDBjNSwgMHgwMTE4LCAweDAxMTIsIAorICAgIDB4MDEwYywgMHgwMGM5LCAweDAxNzksIDB4MDExNiwgMHgwMTIyLCAweDAxMzYsIDB4MDEyYSwgMHgwMTNiLCAKKyAgICAweDAxNjAsIDB4MDE0MywgMHgwMTQ1LCAweDAwZDMsIDB4MDE0YywgMHgwMGQ1LCAweDAwZDYsIDB4MDBkNywgCisgICAgMHgwMTcyLCAweDAxNDEsIDB4MDE1YSwgMHgwMTZhLCAweDAwZGMsIDB4MDE3YiwgMHgwMTdkLCAweDAwZGYsIAorICAgIDB4MDEwNSwgMHgwMTJmLCAweDAxMDEsIDB4MDEwNywgMHgwMGU0LCAweDAwZTUsIDB4MDExOSwgMHgwMTEzLCAKKyAgICAweDAxMGQsIDB4MDBlOSwgMHgwMTdhLCAweDAxMTcsIDB4MDEyMywgMHgwMTM3LCAweDAxMmIsIDB4MDEzYywgCisgICAgMHgwMTYxLCAweDAxNDQsIDB4MDE0NiwgMHgwMGYzLCAweDAxNGQsIDB4MDBmNSwgMHgwMGY2LCAweDAwZjcsIAorICAgIDB4MDE3MywgMHgwMTQyLCAweDAxNWIsIDB4MDE2YiwgMHgwMGZjLCAweDAxN2MsIDB4MDE3ZSwgMHgyMDE5LCAKK307CisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfMTMgWzQ4ICsgNyAqIDY0XSA9IHsKKyAgICAiXHgwMFx4MDBceDAxXHgwNFx4MDZceDA1XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4ZiIKKyAgICAiXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5ZiIKKyAgICAiXHhhMFx4MDBceGEyXHhhM1x4YTRceDAwXHhhNlx4YTdceDAwXHhhOVx4MDBceGFiXHhhY1x4YWRceGFlXHgwMCIKKyAgICAiXHhiMFx4YjFceGIyXHhiM1x4MDBceGI1XHhiNlx4YjdceDAwXHhiOVx4MDBceGJiXHhiY1x4YmRceGJlXHgwMCIKKyAgICAiXHgwM1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhmZlx4MDBceDAwXHhiNFx4YTFceGE1XHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4YzRceGM1XHhhZlx4MDBceDAwXHhjOVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHhkM1x4MDBceGQ1XHhkNlx4ZDdceGE4XHgwMFx4MDBceDAwXHhkY1x4MDBceDAwXHhkZiIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4ZTRceGU1XHhiZlx4MDBceDAwXHhlOVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHhmM1x4MDBceGY1XHhmNlx4ZjdceGI4XHgwMFx4MDBceDAwXHhmY1x4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4ZDlceGY5XHhkMVx4ZjFceGQyXHhmMlx4MDBceDAwXHgwMFx4MDBceDAwXHhkNFx4ZjRceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhYVx4YmFceDAwXHgwMFx4ZGFceGZhXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHhkMFx4ZjBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4ZGJceGZiXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceGQ4XHhmOFx4MDBceDAwXHgwMFx4MDBceDAwXHhjYVx4ZWFceGRkXHhmZFx4ZGVceGZlXHgwMCIKKyAgICAiXHhjMlx4ZTJceDAwXHgwMFx4YzBceGUwXHhjM1x4ZTNceDAwXHgwMFx4MDBceDAwXHhjOFx4ZThceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceGM3XHhlN1x4MDBceDAwXHhjYlx4ZWJceGM2XHhlNlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceGNjXHhlY1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4Y2VceGVlXHgwMFx4MDBceGMxXHhlMSIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhjZFx4ZWRceDAwXHgwMFx4MDBceGNmXHhlZlx4MDBceDAwXHgwMCIKK307CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCB4bWx1bmljb2RldGFibGVfSVNPODg1OV8xNCBbMTI4XSA9IHsKKyAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwgMHgwMDg1LCAweDAwODYsIDB4MDA4NywgCisgICAgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAweDAwOGMsIDB4MDA4ZCwgMHgwMDhlLCAweDAwOGYsIAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAKKyAgICAweDAwOTgsIDB4MDA5OSwgMHgwMDlhLCAweDAwOWIsIDB4MDA5YywgMHgwMDlkLCAweDAwOWUsIDB4MDA5ZiwgCisgICAgMHgwMGEwLCAweDFlMDIsIDB4MWUwMywgMHgwMGEzLCAweDAxMGEsIDB4MDEwYiwgMHgxZTBhLCAweDAwYTcsIAorICAgIDB4MWU4MCwgMHgwMGE5LCAweDFlODIsIDB4MWUwYiwgMHgxZWYyLCAweDAwYWQsIDB4MDBhZSwgMHgwMTc4LCAKKyAgICAweDFlMWUsIDB4MWUxZiwgMHgwMTIwLCAweDAxMjEsIDB4MWU0MCwgMHgxZTQxLCAweDAwYjYsIDB4MWU1NiwgCisgICAgMHgxZTgxLCAweDFlNTcsIDB4MWU4MywgMHgxZTYwLCAweDFlZjMsIDB4MWU4NCwgMHgxZTg1LCAweDFlNjEsIAorICAgIDB4MDBjMCwgMHgwMGMxLCAweDAwYzIsIDB4MDBjMywgMHgwMGM0LCAweDAwYzUsIDB4MDBjNiwgMHgwMGM3LCAKKyAgICAweDAwYzgsIDB4MDBjOSwgMHgwMGNhLCAweDAwY2IsIDB4MDBjYywgMHgwMGNkLCAweDAwY2UsIDB4MDBjZiwgCisgICAgMHgwMTc0LCAweDAwZDEsIDB4MDBkMiwgMHgwMGQzLCAweDAwZDQsIDB4MDBkNSwgMHgwMGQ2LCAweDFlNmEsIAorICAgIDB4MDBkOCwgMHgwMGQ5LCAweDAwZGEsIDB4MDBkYiwgMHgwMGRjLCAweDAwZGQsIDB4MDE3NiwgMHgwMGRmLCAKKyAgICAweDAwZTAsIDB4MDBlMSwgMHgwMGUyLCAweDAwZTMsIDB4MDBlNCwgMHgwMGU1LCAweDAwZTYsIDB4MDBlNywgCisgICAgMHgwMGU4LCAweDAwZTksIDB4MDBlYSwgMHgwMGViLCAweDAwZWMsIDB4MDBlZCwgMHgwMGVlLCAweDAwZWYsIAorICAgIDB4MDE3NSwgMHgwMGYxLCAweDAwZjIsIDB4MDBmMywgMHgwMGY0LCAweDAwZjUsIDB4MDBmNiwgMHgxZTZiLCAKKyAgICAweDAwZjgsIDB4MDBmOSwgMHgwMGZhLCAweDAwZmIsIDB4MDBmYywgMHgwMGZkLCAweDAxNzcsIDB4MDBmZiwgCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzE0IFs0OCArIDEwICogNjRdID0geworICAgICJceDAwXHgwMFx4MDFceDA5XHgwNFx4MDdceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmIgorICAgICJceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmIgorICAgICJceGEwXHgwMFx4MDBceGEzXHgwMFx4MDBceDAwXHhhN1x4MDBceGE5XHgwMFx4MDBceDAwXHhhZFx4YWVceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGI2XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDNceDA4XHgwNVx4MDZceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4YTFceGEyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhNlx4YWJceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4YjBceGIxIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhNFx4YTVceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGIyXHhiM1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGE4XHhiOFx4YWFceGJhXHhiZFx4YmVceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4YWNceGJjXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHhkMFx4ZjBceGRlXHhmZVx4YWZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGI0XHhiNVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGI3XHhiOVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGJiXHhiZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhkN1x4ZjdceDAwXHgwMFx4MDBceDAwIgorICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgorICAgICJceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmIgorICAgICJceDAwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHgwMFx4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx4MDBceGRmIgorICAgICJceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmIgorICAgICJceDAwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHgwMFx4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4MDBceGZmIgorfTsKKworc3RhdGljIHVuc2lnbmVkIHNob3J0IGNvbnN0IHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzE1IFsxMjhdID0geworICAgIDB4MDA4MCwgMHgwMDgxLCAweDAwODIsIDB4MDA4MywgMHgwMDg0LCAweDAwODUsIDB4MDA4NiwgMHgwMDg3LCAKKyAgICAweDAwODgsIDB4MDA4OSwgMHgwMDhhLCAweDAwOGIsIDB4MDA4YywgMHgwMDhkLCAweDAwOGUsIDB4MDA4ZiwgCisgICAgMHgwMDkwLCAweDAwOTEsIDB4MDA5MiwgMHgwMDkzLCAweDAwOTQsIDB4MDA5NSwgMHgwMDk2LCAweDAwOTcsIAorICAgIDB4MDA5OCwgMHgwMDk5LCAweDAwOWEsIDB4MDA5YiwgMHgwMDljLCAweDAwOWQsIDB4MDA5ZSwgMHgwMDlmLCAKKyAgICAweDAwYTAsIDB4MDBhMSwgMHgwMGEyLCAweDAwYTMsIDB4MjBhYywgMHgwMGE1LCAweDAxNjAsIDB4MDBhNywgCisgICAgMHgwMTYxLCAweDAwYTksIDB4MDBhYSwgMHgwMGFiLCAweDAwYWMsIDB4MDBhZCwgMHgwMGFlLCAweDAwYWYsIAorICAgIDB4MDBiMCwgMHgwMGIxLCAweDAwYjIsIDB4MDBiMywgMHgwMTdkLCAweDAwYjUsIDB4MDBiNiwgMHgwMGI3LCAKKyAgICAweDAxN2UsIDB4MDBiOSwgMHgwMGJhLCAweDAwYmIsIDB4MDE1MiwgMHgwMTUzLCAweDAxNzgsIDB4MDBiZiwgCisgICAgMHgwMGMwLCAweDAwYzEsIDB4MDBjMiwgMHgwMGMzLCAweDAwYzQsIDB4MDBjNSwgMHgwMGM2LCAweDAwYzcsIAorICAgIDB4MDBjOCwgMHgwMGM5LCAweDAwY2EsIDB4MDBjYiwgMHgwMGNjLCAweDAwY2QsIDB4MDBjZSwgMHgwMGNmLCAKKyAgICAweDAwZDAsIDB4MDBkMSwgMHgwMGQyLCAweDAwZDMsIDB4MDBkNCwgMHgwMGQ1LCAweDAwZDYsIDB4MDBkNywgCisgICAgMHgwMGQ4LCAweDAwZDksIDB4MDBkYSwgMHgwMGRiLCAweDAwZGMsIDB4MDBkZCwgMHgwMGRlLCAweDAwZGYsIAorICAgIDB4MDBlMCwgMHgwMGUxLCAweDAwZTIsIDB4MDBlMywgMHgwMGU0LCAweDAwZTUsIDB4MDBlNiwgMHgwMGU3LCAKKyAgICAweDAwZTgsIDB4MDBlOSwgMHgwMGVhLCAweDAwZWIsIDB4MDBlYywgMHgwMGVkLCAweDAwZWUsIDB4MDBlZiwgCisgICAgMHgwMGYwLCAweDAwZjEsIDB4MDBmMiwgMHgwMGYzLCAweDAwZjQsIDB4MDBmNSwgMHgwMGY2LCAweDAwZjcsIAorICAgIDB4MDBmOCwgMHgwMGY5LCAweDAwZmEsIDB4MDBmYiwgMHgwMGZjLCAweDAwZmQsIDB4MDBmZSwgMHgwMGZmLCAKK307CisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0IHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfMTUgWzQ4ICsgNiAqIDY0XSA9IHsKKyAgICAiXHgwMFx4MDBceDAxXHgwNVx4MDBceDA0XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4ZiIKKyAgICAiXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5ZiIKKyAgICAiXHhhMFx4YTFceGEyXHhhM1x4MDBceGE1XHgwMFx4YTdceDAwXHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZiIKKyAgICAiXHhiMFx4YjFceGIyXHhiM1x4MDBceGI1XHhiNlx4YjdceDAwXHhiOVx4YmFceGJiXHgwMFx4MDBceDAwXHhiZiIKKyAgICAiXHgwMFx4MDBceDAzXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhNFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceGJjXHhiZFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHhhNlx4YThceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKKyAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGJlXHgwMFx4MDBceDAwXHgwMFx4YjRceGI4XHgwMCIKKyAgICAiXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZiIKKyAgICAiXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZiIKKyAgICAiXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZiIKKyAgICAiXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiIKK307CisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBjb25zdCB4bWx1bmljb2RldGFibGVfSVNPODg1OV8xNiBbMTI4XSA9IHsKKyAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwgMHgwMDg1LCAweDAwODYsIDB4MDA4NywgCisgICAgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAweDAwOGMsIDB4MDA4ZCwgMHgwMDhlLCAweDAwOGYsIAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAKKyAgICAweDAwOTgsIDB4MDA5OSwgMHgwMDlhLCAweDAwOWIsIDB4MDA5YywgMHgwMDlkLCAweDAwOWUsIDB4MDA5ZiwgCisgICAgMHgwMGEwLCAweDAxMDQsIDB4MDEwNSwgMHgwMTQxLCAweDIwYWMsIDB4MjAxZSwgMHgwMTYwLCAweDAwYTcsIAorICAgIDB4MDE2MSwgMHgwMGE5LCAweDAyMTgsIDB4MDBhYiwgMHgwMTc5LCAweDAwYWQsIDB4MDE3YSwgMHgwMTdiLCAKKyAgICAweDAwYjAsIDB4MDBiMSwgMHgwMTBjLCAweDAxNDIsIDB4MDE3ZCwgMHgyMDFkLCAweDAwYjYsIDB4MDBiNywgCisgICAgMHgwMTdlLCAweDAxMGQsIDB4MDIxOSwgMHgwMGJiLCAweDAxNTIsIDB4MDE1MywgMHgwMTc4LCAweDAxN2MsIAorICAgIDB4MDBjMCwgMHgwMGMxLCAweDAwYzIsIDB4MDEwMiwgMHgwMGM0LCAweDAxMDYsIDB4MDBjNiwgMHgwMGM3LCAKKyAgICAweDAwYzgsIDB4MDBjOSwgMHgwMGNhLCAweDAwY2IsIDB4MDBjYywgMHgwMGNkLCAweDAwY2UsIDB4MDBjZiwgCisgICAgMHgwMTEwLCAweDAxNDMsIDB4MDBkMiwgMHgwMGQzLCAweDAwZDQsIDB4MDE1MCwgMHgwMGQ2LCAweDAxNWEsIAorICAgIDB4MDE3MCwgMHgwMGQ5LCAweDAwZGEsIDB4MDBkYiwgMHgwMGRjLCAweDAxMTgsIDB4MDIxYSwgMHgwMGRmLCAKKyAgICAweDAwZTAsIDB4MDBlMSwgMHgwMGUyLCAweDAxMDMsIDB4MDBlNCwgMHgwMTA3LCAweDAwZTYsIDB4MDBlNywgCisgICAgMHgwMGU4LCAweDAwZTksIDB4MDBlYSwgMHgwMGViLCAweDAwZWMsIDB4MDBlZCwgMHgwMGVlLCAweDAwZWYsIAorICAgIDB4MDExMSwgMHgwMTQ0LCAweDAwZjIsIDB4MDBmMywgMHgwMGY0LCAweDAxNTEsIDB4MDBmNiwgMHgwMTViLCAKKyAgICAweDAxNzEsIDB4MDBmOSwgMHgwMGZhLCAweDAwZmIsIDB4MDBmYywgMHgwMTE5LCAweDAyMWIsIDB4MDBmZiwgCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzE2IFs0OCArIDkgKiA2NF0gPSB7CisgICAgIlx4MDBceDAwXHgwMVx4MDhceDAyXHgwM1x4MDBceDAwXHgwN1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwNFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGYiCisgICAgIlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWYiCisgICAgIlx4YTBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGE3XHgwMFx4YTlceDAwXHhhYlx4MDBceGFkXHgwMFx4MDAiCisgICAgIlx4YjBceGIxXHgwMFx4MDBceDAwXHgwMFx4YjZceGI3XHgwMFx4MDBceDAwXHhiYlx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHhjM1x4ZTNceGExXHhhMlx4YzVceGU1XHgwMFx4MDBceDAwXHgwMFx4YjJceGI5XHgwMFx4MDAiCisgICAgIlx4ZDBceGYwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhkZFx4ZmRceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceGEzXHhiM1x4ZDFceGYxXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ZDVceGY1XHhiY1x4YmRceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGQ3XHhmN1x4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4YTZceGE4XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4ZDhceGY4XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhiZVx4YWNceGFlXHhhZlx4YmZceGI0XHhiOFx4MDAiCisgICAgIlx4MDZceDAwXHgwNVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4YTRceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGI1XHhhNVx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhhYVx4YmFceGRlXHhmZVx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCisgICAgIlx4YzBceGMxXHhjMlx4MDBceGM0XHgwMFx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2YiCisgICAgIlx4MDBceDAwXHhkMlx4ZDNceGQ0XHgwMFx4ZDZceDAwXHgwMFx4ZDlceGRhXHhkYlx4ZGNceDAwXHgwMFx4ZGYiCisgICAgIlx4ZTBceGUxXHhlMlx4MDBceGU0XHgwMFx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWYiCisgICAgIlx4MDBceDAwXHhmMlx4ZjNceGY0XHgwMFx4ZjZceDAwXHgwMFx4ZjlceGZhXHhmYlx4ZmNceDAwXHgwMFx4ZmYiCit9OworCisKKy8qCisgKiBhdXRvLWdlbmVyYXRlZCBmdW5jdGlvbnMgZm9yIElTTy04ODU5LTIgLi4gSVNPLTg4NTktMTYKKyAqLworCitzdGF0aWMgaW50IElTTzg4NTlfMlRvVVRGOCAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBJU084ODU5eFRvVVRGOCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfMik7Cit9CitzdGF0aWMgaW50IFVURjhUb0lTTzg4NTlfMiAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBVVEY4VG9JU084ODU5eCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV8yKTsKK30KKworc3RhdGljIGludCBJU084ODU5XzNUb1VURjggKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gSVNPODg1OXhUb1VURjggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzMpOworfQorc3RhdGljIGludCBVVEY4VG9JU084ODU5XzMgKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gVVRGOFRvSVNPODg1OXggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfMyk7Cit9CisKK3N0YXRpYyBpbnQgSVNPODg1OV80VG9VVEY4ICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIElTTzg4NTl4VG9VVEY4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx1bmljb2RldGFibGVfSVNPODg1OV80KTsKK30KK3N0YXRpYyBpbnQgVVRGOFRvSVNPODg1OV80ICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIFVURjhUb0lTTzg4NTl4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzQpOworfQorCitzdGF0aWMgaW50IElTTzg4NTlfNVRvVVRGOCAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBJU084ODU5eFRvVVRGOCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfNSk7Cit9CitzdGF0aWMgaW50IFVURjhUb0lTTzg4NTlfNSAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBVVEY4VG9JU084ODU5eCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV81KTsKK30KKworc3RhdGljIGludCBJU084ODU5XzZUb1VURjggKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gSVNPODg1OXhUb1VURjggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzYpOworfQorc3RhdGljIGludCBVVEY4VG9JU084ODU5XzYgKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gVVRGOFRvSVNPODg1OXggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfNik7Cit9CisKK3N0YXRpYyBpbnQgSVNPODg1OV83VG9VVEY4ICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIElTTzg4NTl4VG9VVEY4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx1bmljb2RldGFibGVfSVNPODg1OV83KTsKK30KK3N0YXRpYyBpbnQgVVRGOFRvSVNPODg1OV83ICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIFVURjhUb0lTTzg4NTl4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzcpOworfQorCitzdGF0aWMgaW50IElTTzg4NTlfOFRvVVRGOCAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBJU084ODU5eFRvVVRGOCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfOCk7Cit9CitzdGF0aWMgaW50IFVURjhUb0lTTzg4NTlfOCAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBVVEY4VG9JU084ODU5eCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV84KTsKK30KKworc3RhdGljIGludCBJU084ODU5XzlUb1VURjggKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gSVNPODg1OXhUb1VURjggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzkpOworfQorc3RhdGljIGludCBVVEY4VG9JU084ODU5XzkgKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gVVRGOFRvSVNPODg1OXggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfOSk7Cit9CisKK3N0YXRpYyBpbnQgSVNPODg1OV8xMFRvVVRGOCAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBJU084ODU5eFRvVVRGOCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfMTApOworfQorc3RhdGljIGludCBVVEY4VG9JU084ODU5XzEwICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIFVURjhUb0lTTzg4NTl4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzEwKTsKK30KKworc3RhdGljIGludCBJU084ODU5XzExVG9VVEY4ICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIElTTzg4NTl4VG9VVEY4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx1bmljb2RldGFibGVfSVNPODg1OV8xMSk7Cit9CitzdGF0aWMgaW50IFVURjhUb0lTTzg4NTlfMTEgKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gVVRGOFRvSVNPODg1OXggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfMTEpOworfQorCitzdGF0aWMgaW50IElTTzg4NTlfMTNUb1VURjggKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gSVNPODg1OXhUb1VURjggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzEzKTsKK30KK3N0YXRpYyBpbnQgVVRGOFRvSVNPODg1OV8xMyAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBVVEY4VG9JU084ODU5eCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV8xMyk7Cit9CisKK3N0YXRpYyBpbnQgSVNPODg1OV8xNFRvVVRGOCAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBJU084ODU5eFRvVVRGOCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdW5pY29kZXRhYmxlX0lTTzg4NTlfMTQpOworfQorc3RhdGljIGludCBVVEY4VG9JU084ODU5XzE0ICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIFVURjhUb0lTTzg4NTl4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx0cmFuc2NvZGV0YWJsZV9JU084ODU5XzE0KTsKK30KKworc3RhdGljIGludCBJU084ODU5XzE1VG9VVEY4ICh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgcmV0dXJuIElTTzg4NTl4VG9VVEY4IChvdXQsIG91dGxlbiwgaW4sIGlubGVuLCB4bWx1bmljb2RldGFibGVfSVNPODg1OV8xNSk7Cit9CitzdGF0aWMgaW50IFVURjhUb0lTTzg4NTlfMTUgKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gVVRGOFRvSVNPODg1OXggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHRyYW5zY29kZXRhYmxlX0lTTzg4NTlfMTUpOworfQorCitzdGF0aWMgaW50IElTTzg4NTlfMTZUb1VURjggKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW4sIGludCAqaW5sZW4pIHsKKyAgICByZXR1cm4gSVNPODg1OXhUb1VURjggKG91dCwgb3V0bGVuLCBpbiwgaW5sZW4sIHhtbHVuaWNvZGV0YWJsZV9JU084ODU5XzE2KTsKK30KK3N0YXRpYyBpbnQgVVRGOFRvSVNPODg1OV8xNiAodW5zaWduZWQgY2hhciogb3V0LCBpbnQgKm91dGxlbiwKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHJldHVybiBVVEY4VG9JU084ODU5eCAob3V0LCBvdXRsZW4sIGluLCBpbmxlbiwgeG1sdHJhbnNjb2RldGFibGVfSVNPODg1OV8xNik7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXJzSVNPODg1OXggKHZvaWQpIHsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMiIsIElTTzg4NTlfMlRvVVRGOCwgVVRGOFRvSVNPODg1OV8yKTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMyIsIElTTzg4NTlfM1RvVVRGOCwgVVRGOFRvSVNPODg1OV8zKTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktNCIsIElTTzg4NTlfNFRvVVRGOCwgVVRGOFRvSVNPODg1OV80KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktNSIsIElTTzg4NTlfNVRvVVRGOCwgVVRGOFRvSVNPODg1OV81KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktNiIsIElTTzg4NTlfNlRvVVRGOCwgVVRGOFRvSVNPODg1OV82KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktNyIsIElTTzg4NTlfN1RvVVRGOCwgVVRGOFRvSVNPODg1OV83KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktOCIsIElTTzg4NTlfOFRvVVRGOCwgVVRGOFRvSVNPODg1OV84KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktOSIsIElTTzg4NTlfOVRvVVRGOCwgVVRGOFRvSVNPODg1OV85KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMTAiLCBJU084ODU5XzEwVG9VVEY4LCBVVEY4VG9JU084ODU5XzEwKTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMTEiLCBJU084ODU5XzExVG9VVEY4LCBVVEY4VG9JU084ODU5XzExKTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMTMiLCBJU084ODU5XzEzVG9VVEY4LCBVVEY4VG9JU084ODU5XzEzKTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMTQiLCBJU084ODU5XzE0VG9VVEY4LCBVVEY4VG9JU084ODU5XzE0KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMTUiLCBJU084ODU5XzE1VG9VVEY4LCBVVEY4VG9JU084ODU5XzE1KTsKKyAgICB4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyICgiSVNPLTg4NTktMTYiLCBJU084ODU5XzE2VG9VVEY4LCBVVEY4VG9JU084ODU5XzE2KTsKK30KKworI2VuZGlmCisjZW5kaWYKKworI2RlZmluZSBib3R0b21fZW5jb2RpbmcKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZW50aXRpZXMuYyBiL2xpYnhtbDItMi43LjcvZW50aXRpZXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWVmNDlmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9lbnRpdGllcy5jCkBAIC0wLDAgKzEsMTAyMiBAQAorLyoKKyAqIGVudGl0aWVzLmMgOiBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIFhNTCBlbnRpdGllcyBoYW5kbGluZworICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvaGFzaC5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGljdC5oPgorCisvKgorICogVGhlIFhNTCBwcmVkZWZpbmVkIGVudGl0aWVzLgorICovCisKK3N0YXRpYyB4bWxFbnRpdHkgeG1sRW50aXR5THQgPSB7CisgICAgTlVMTCwgWE1MX0VOVElUWV9ERUNMLCBCQURfQ0FTVCAibHQiLAorICAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIAorICAgIEJBRF9DQVNUICI8IiwgQkFEX0NBU1QgIjwiLCAxLAorICAgIFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSwKKyAgICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAxCit9Oworc3RhdGljIHhtbEVudGl0eSB4bWxFbnRpdHlHdCA9IHsKKyAgICBOVUxMLCBYTUxfRU5USVRZX0RFQ0wsIEJBRF9DQVNUICJndCIsCisgICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgCisgICAgQkFEX0NBU1QgIj4iLCBCQURfQ0FTVCAiPiIsIDEsCisgICAgWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZLAorICAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEKK307CitzdGF0aWMgeG1sRW50aXR5IHhtbEVudGl0eUFtcCA9IHsKKyAgICBOVUxMLCBYTUxfRU5USVRZX0RFQ0wsIEJBRF9DQVNUICJhbXAiLAorICAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIAorICAgIEJBRF9DQVNUICImIiwgQkFEX0NBU1QgIiYiLCAxLAorICAgIFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSwKKyAgICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAxCit9Oworc3RhdGljIHhtbEVudGl0eSB4bWxFbnRpdHlRdW90ID0geworICAgIE5VTEwsIFhNTF9FTlRJVFlfREVDTCwgQkFEX0NBU1QgInF1b3QiLAorICAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIAorICAgIEJBRF9DQVNUICJcIiIsIEJBRF9DQVNUICJcIiIsIDEsCisgICAgWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZLAorICAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEKK307CitzdGF0aWMgeG1sRW50aXR5IHhtbEVudGl0eUFwb3MgPSB7CisgICAgTlVMTCwgWE1MX0VOVElUWV9ERUNMLCBCQURfQ0FTVCAiYXBvcyIsCisgICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgCisgICAgQkFEX0NBU1QgIiciLCBCQURfQ0FTVCAiJyIsIDEsCisgICAgWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZLAorICAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEKK307CisKKy8qKgorICogeG1sRW50aXRpZXNFcnJNZW1vcnk6CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBjb25kaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbEVudGl0aWVzRXJyTWVtb3J5KGNvbnN0IGNoYXIgKmV4dHJhKQoreworICAgIF9feG1sU2ltcGxlRXJyb3IoWE1MX0ZST01fVFJFRSwgWE1MX0VSUl9OT19NRU1PUlksIE5VTEwsIE5VTEwsIGV4dHJhKTsKK30KKworLyoqCisgKiB4bWxFbnRpdGllc0VycjoKKyAqIEBjb2RlOiAgdGhlIGVycm9yIGNvZGUKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZQorICoKKyAqIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGNvbmRpdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sRW50aXRpZXNFcnIoeG1sUGFyc2VyRXJyb3JzIGNvZGUsIGNvbnN0IGNoYXIgKm1zZykKK3sKKyAgICBfX3htbFNpbXBsZUVycm9yKFhNTF9GUk9NX1RSRUUsIGNvZGUsIE5VTEwsIG1zZywgTlVMTCk7Cit9CisKKy8qCisgKiB4bWxGcmVlRW50aXR5IDogY2xlYW4tdXAgYW4gZW50aXR5IHJlY29yZC4KKyAqLworc3RhdGljIHZvaWQKK3htbEZyZWVFbnRpdHkoeG1sRW50aXR5UHRyIGVudGl0eSkKK3sKKyAgICB4bWxEaWN0UHRyIGRpY3QgPSBOVUxMOworCisgICAgaWYgKGVudGl0eSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZW50aXR5LT5kb2MgIT0gTlVMTCkKKyAgICAgICAgZGljdCA9IGVudGl0eS0+ZG9jLT5kaWN0OworCisKKyAgICBpZiAoKGVudGl0eS0+Y2hpbGRyZW4pICYmIChlbnRpdHktPm93bmVyID09IDEpICYmCisgICAgICAgIChlbnRpdHkgPT0gKHhtbEVudGl0eVB0cikgZW50aXR5LT5jaGlsZHJlbi0+cGFyZW50KSkKKyAgICAgICAgeG1sRnJlZU5vZGVMaXN0KGVudGl0eS0+Y2hpbGRyZW4pOworICAgIGlmIChkaWN0ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChlbnRpdHktPm5hbWUgIT0gTlVMTCkgJiYgKCF4bWxEaWN0T3ducyhkaWN0LCBlbnRpdHktPm5hbWUpKSkKKyAgICAgICAgICAgIHhtbEZyZWUoKGNoYXIgKikgZW50aXR5LT5uYW1lKTsKKyAgICAgICAgaWYgKChlbnRpdHktPkV4dGVybmFsSUQgIT0gTlVMTCkgJiYKKwkgICAgKCF4bWxEaWN0T3ducyhkaWN0LCBlbnRpdHktPkV4dGVybmFsSUQpKSkKKyAgICAgICAgICAgIHhtbEZyZWUoKGNoYXIgKikgZW50aXR5LT5FeHRlcm5hbElEKTsKKyAgICAgICAgaWYgKChlbnRpdHktPlN5c3RlbUlEICE9IE5VTEwpICYmCisJICAgICgheG1sRGljdE93bnMoZGljdCwgZW50aXR5LT5TeXN0ZW1JRCkpKQorICAgICAgICAgICAgeG1sRnJlZSgoY2hhciAqKSBlbnRpdHktPlN5c3RlbUlEKTsKKyAgICAgICAgaWYgKChlbnRpdHktPlVSSSAhPSBOVUxMKSAmJiAoIXhtbERpY3RPd25zKGRpY3QsIGVudGl0eS0+VVJJKSkpCisgICAgICAgICAgICB4bWxGcmVlKChjaGFyICopIGVudGl0eS0+VVJJKTsKKyAgICAgICAgaWYgKChlbnRpdHktPmNvbnRlbnQgIT0gTlVMTCkKKyAgICAgICAgICAgICYmICgheG1sRGljdE93bnMoZGljdCwgZW50aXR5LT5jb250ZW50KSkpCisgICAgICAgICAgICB4bWxGcmVlKChjaGFyICopIGVudGl0eS0+Y29udGVudCk7CisgICAgICAgIGlmICgoZW50aXR5LT5vcmlnICE9IE5VTEwpICYmICgheG1sRGljdE93bnMoZGljdCwgZW50aXR5LT5vcmlnKSkpCisgICAgICAgICAgICB4bWxGcmVlKChjaGFyICopIGVudGl0eS0+b3JpZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGVudGl0eS0+bmFtZSAhPSBOVUxMKQorICAgICAgICAgICAgeG1sRnJlZSgoY2hhciAqKSBlbnRpdHktPm5hbWUpOworICAgICAgICBpZiAoZW50aXR5LT5FeHRlcm5hbElEICE9IE5VTEwpCisgICAgICAgICAgICB4bWxGcmVlKChjaGFyICopIGVudGl0eS0+RXh0ZXJuYWxJRCk7CisgICAgICAgIGlmIChlbnRpdHktPlN5c3RlbUlEICE9IE5VTEwpCisgICAgICAgICAgICB4bWxGcmVlKChjaGFyICopIGVudGl0eS0+U3lzdGVtSUQpOworICAgICAgICBpZiAoZW50aXR5LT5VUkkgIT0gTlVMTCkKKyAgICAgICAgICAgIHhtbEZyZWUoKGNoYXIgKikgZW50aXR5LT5VUkkpOworICAgICAgICBpZiAoZW50aXR5LT5jb250ZW50ICE9IE5VTEwpCisgICAgICAgICAgICB4bWxGcmVlKChjaGFyICopIGVudGl0eS0+Y29udGVudCk7CisgICAgICAgIGlmIChlbnRpdHktPm9yaWcgIT0gTlVMTCkKKyAgICAgICAgICAgIHhtbEZyZWUoKGNoYXIgKikgZW50aXR5LT5vcmlnKTsKKyAgICB9CisgICAgeG1sRnJlZShlbnRpdHkpOworfQorCisvKgorICogeG1sQ3JlYXRlRW50aXR5OgorICoKKyAqIGludGVybmFsIHJvdXRpbmUgZG9pbmcgdGhlIGVudGl0eSBub2RlIHN0cnV0dXJlcyBhbGxvY2F0aW9ucworICovCitzdGF0aWMgeG1sRW50aXR5UHRyCit4bWxDcmVhdGVFbnRpdHkoeG1sRGljdFB0ciBkaWN0LCBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgdHlwZSwKKwkgICAgICAgIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIgKlN5c3RlbUlELAorCSAgICAgICAgY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIHhtbEVudGl0eVB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sRW50aXR5UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEVudGl0eSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxFbnRpdGllc0Vyck1lbW9yeSgieG1sQ3JlYXRlRW50aXR5OiBtYWxsb2MgZmFpbGVkIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sRW50aXR5KSk7CisgICAgcmV0LT50eXBlID0gWE1MX0VOVElUWV9ERUNMOworICAgIHJldC0+Y2hlY2tlZCA9IDA7CisKKyAgICAvKgorICAgICAqIGZpbGwgdGhlIHN0cnVjdHVyZS4KKyAgICAgKi8KKyAgICByZXQtPmV0eXBlID0gKHhtbEVudGl0eVR5cGUpIHR5cGU7CisgICAgaWYgKGRpY3QgPT0gTlVMTCkgeworCXJldC0+bmFtZSA9IHhtbFN0cmR1cChuYW1lKTsKKwlpZiAoRXh0ZXJuYWxJRCAhPSBOVUxMKQorCSAgICByZXQtPkV4dGVybmFsSUQgPSB4bWxTdHJkdXAoRXh0ZXJuYWxJRCk7CisJaWYgKFN5c3RlbUlEICE9IE5VTEwpCisJICAgIHJldC0+U3lzdGVtSUQgPSB4bWxTdHJkdXAoU3lzdGVtSUQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldC0+bmFtZSA9IHhtbERpY3RMb29rdXAoZGljdCwgbmFtZSwgLTEpOworCWlmIChFeHRlcm5hbElEICE9IE5VTEwpCisJICAgIHJldC0+RXh0ZXJuYWxJRCA9IHhtbERpY3RMb29rdXAoZGljdCwgRXh0ZXJuYWxJRCwgLTEpOworCWlmIChTeXN0ZW1JRCAhPSBOVUxMKQorCSAgICByZXQtPlN5c3RlbUlEID0geG1sRGljdExvb2t1cChkaWN0LCBTeXN0ZW1JRCwgLTEpOworICAgIH0KKyAgICBpZiAoY29udGVudCAhPSBOVUxMKSB7CisgICAgICAgIHJldC0+bGVuZ3RoID0geG1sU3RybGVuKGNvbnRlbnQpOworCWlmICgoZGljdCAhPSBOVUxMKSAmJiAocmV0LT5sZW5ndGggPCA1KSkKKwkgICAgcmV0LT5jb250ZW50ID0gKHhtbENoYXIgKikKKwkgICAgICAgICAgICAgICAgICAgeG1sRGljdExvb2t1cChkaWN0LCBjb250ZW50LCByZXQtPmxlbmd0aCk7CisJZWxzZQorCSAgICByZXQtPmNvbnRlbnQgPSB4bWxTdHJuZHVwKGNvbnRlbnQsIHJldC0+bGVuZ3RoKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0LT5sZW5ndGggPSAwOworICAgICAgICByZXQtPmNvbnRlbnQgPSBOVUxMOworICAgIH0KKyAgICByZXQtPlVSSSA9IE5VTEw7IC8qIHRvIGJlIGNvbXB1dGVkIGJ5IHRoZSBsYXllciBrbm93aW5nCisJCQl0aGUgZGVmaW5pbmcgZW50aXR5ICovCisgICAgcmV0LT5vcmlnID0gTlVMTDsKKyAgICByZXQtPm93bmVyID0gMDsKKworICAgIHJldHVybihyZXQpOworfQorCisvKgorICogeG1sQWRkRW50aXR5IDogcmVnaXN0ZXIgYSBuZXcgZW50aXR5IGZvciBhbiBlbnRpdGllcyB0YWJsZS4KKyAqLworc3RhdGljIHhtbEVudGl0eVB0cgoreG1sQWRkRW50aXR5KHhtbER0ZFB0ciBkdGQsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGludCB0eXBlLAorCSAgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQsCisJICBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sRGljdFB0ciBkaWN0ID0gTlVMTDsKKyAgICB4bWxFbnRpdGllc1RhYmxlUHRyIHRhYmxlID0gTlVMTDsKKyAgICB4bWxFbnRpdHlQdHIgcmV0OworCisgICAgaWYgKG5hbWUgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGR0ZCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoZHRkLT5kb2MgIT0gTlVMTCkKKyAgICAgICAgZGljdCA9IGR0ZC0+ZG9jLT5kaWN0OworCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZOgorICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFk6CisgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZOgorCSAgICBpZiAoZHRkLT5lbnRpdGllcyA9PSBOVUxMKQorCQlkdGQtPmVudGl0aWVzID0geG1sSGFzaENyZWF0ZURpY3QoMCwgZGljdCk7CisJICAgIHRhYmxlID0gZHRkLT5lbnRpdGllczsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJICAgIGlmIChkdGQtPnBlbnRpdGllcyA9PSBOVUxMKQorCQlkdGQtPnBlbnRpdGllcyA9IHhtbEhhc2hDcmVhdGVEaWN0KDAsIGRpY3QpOworCSAgICB0YWJsZSA9IGR0ZC0+cGVudGl0aWVzOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFk6CisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHRhYmxlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldCA9IHhtbENyZWF0ZUVudGl0eShkaWN0LCBuYW1lLCB0eXBlLCBFeHRlcm5hbElELCBTeXN0ZW1JRCwgY29udGVudCk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgcmV0LT5kb2MgPSBkdGQtPmRvYzsKKworICAgIGlmICh4bWxIYXNoQWRkRW50cnkodGFibGUsIG5hbWUsIHJldCkpIHsKKwkvKgorCSAqIGVudGl0eSB3YXMgYWxyZWFkeSBkZWZpbmVkIGF0IGFub3RoZXIgbGV2ZWwuCisJICovCisgICAgICAgIHhtbEZyZWVFbnRpdHkocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEdldFByZWRlZmluZWRFbnRpdHk6CisgKiBAbmFtZTogIHRoZSBlbnRpdHkgbmFtZQorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhpcyBuYW1lIGlzIGFuIHByZWRlZmluZWQgZW50aXR5LgorICoKKyAqIFJldHVybnMgTlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgZW50aXR5CisgKi8KK3htbEVudGl0eVB0cgoreG1sR2V0UHJlZGVmaW5lZEVudGl0eShjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHN3aXRjaCAobmFtZVswXSkgeworICAgICAgICBjYXNlICdsJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJsdCIpKQorCSAgICAgICAgcmV0dXJuKCZ4bWxFbnRpdHlMdCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlICdnJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJndCIpKQorCSAgICAgICAgcmV0dXJuKCZ4bWxFbnRpdHlHdCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlICdhJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJhbXAiKSkKKwkgICAgICAgIHJldHVybigmeG1sRW50aXR5QW1wKTsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJhcG9zIikpCisJICAgICAgICByZXR1cm4oJnhtbEVudGl0eUFwb3MpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSAncSc6CisJICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAicXVvdCIpKQorCSAgICAgICAgcmV0dXJuKCZ4bWxFbnRpdHlRdW90KTsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxBZGREdGRFbnRpdHk6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAbmFtZTogIHRoZSBlbnRpdHkgbmFtZQorICogQHR5cGU6ICB0aGUgZW50aXR5IHR5cGUgWE1MX3h4eF95eXlfRU5USVRZCisgKiBARXh0ZXJuYWxJRDogIHRoZSBlbnRpdHkgZXh0ZXJuYWwgSUQgaWYgYXZhaWxhYmxlCisgKiBAU3lzdGVtSUQ6ICB0aGUgZW50aXR5IHN5c3RlbSBJRCBpZiBhdmFpbGFibGUKKyAqIEBjb250ZW50OiAgdGhlIGVudGl0eSBjb250ZW50CisgKgorICogUmVnaXN0ZXIgYSBuZXcgZW50aXR5IGZvciB0aGlzIGRvY3VtZW50IERURCBleHRlcm5hbCBzdWJzZXQuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sRW50aXR5UHRyCit4bWxBZGREdGRFbnRpdHkoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IHR5cGUsCisJICAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCwKKwkJY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIHhtbEVudGl0eVB0ciByZXQ7CisgICAgeG1sRHRkUHRyIGR0ZDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgeworCXhtbEVudGl0aWVzRXJyKFhNTF9EVERfTk9fRE9DLAorCSAgICAgICAgInhtbEFkZER0ZEVudGl0eTogZG9jdW1lbnQgaXMgTlVMTCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGRvYy0+ZXh0U3Vic2V0ID09IE5VTEwpIHsKKwl4bWxFbnRpdGllc0VycihYTUxfRFREX05PX0RURCwKKwkgICAgICAgICJ4bWxBZGREdGRFbnRpdHk6IGRvY3VtZW50IHdpdGhvdXQgZXh0ZXJuYWwgc3Vic2V0Iik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBkdGQgPSBkb2MtPmV4dFN1YnNldDsKKyAgICByZXQgPSB4bWxBZGRFbnRpdHkoZHRkLCBuYW1lLCB0eXBlLCBFeHRlcm5hbElELCBTeXN0ZW1JRCwgY29udGVudCk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIExpbmsgaXQgdG8gdGhlIERURAorICAgICAqLworICAgIHJldC0+cGFyZW50ID0gZHRkOworICAgIHJldC0+ZG9jID0gZHRkLT5kb2M7CisgICAgaWYgKGR0ZC0+bGFzdCA9PSBOVUxMKSB7CisJZHRkLT5jaGlsZHJlbiA9IGR0ZC0+bGFzdCA9ICh4bWxOb2RlUHRyKSByZXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZHRkLT5sYXN0LT5uZXh0ID0gKHhtbE5vZGVQdHIpIHJldDsKKwlyZXQtPnByZXYgPSBkdGQtPmxhc3Q7CisJZHRkLT5sYXN0ID0gKHhtbE5vZGVQdHIpIHJldDsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQWRkRG9jRW50aXR5OgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQG5hbWU6ICB0aGUgZW50aXR5IG5hbWUKKyAqIEB0eXBlOiAgdGhlIGVudGl0eSB0eXBlIFhNTF94eHhfeXl5X0VOVElUWQorICogQEV4dGVybmFsSUQ6ICB0aGUgZW50aXR5IGV4dGVybmFsIElEIGlmIGF2YWlsYWJsZQorICogQFN5c3RlbUlEOiAgdGhlIGVudGl0eSBzeXN0ZW0gSUQgaWYgYXZhaWxhYmxlCisgKiBAY29udGVudDogIHRoZSBlbnRpdHkgY29udGVudAorICoKKyAqIFJlZ2lzdGVyIGEgbmV3IGVudGl0eSBmb3IgdGhpcyBkb2N1bWVudC4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZW50aXR5IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxFbnRpdHlQdHIKK3htbEFkZERvY0VudGl0eSh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgdHlwZSwKKwkgICAgICAgIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIgKlN5c3RlbUlELAorCSAgICAgICAgY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIHhtbEVudGl0eVB0ciByZXQ7CisgICAgeG1sRHRkUHRyIGR0ZDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgeworCXhtbEVudGl0aWVzRXJyKFhNTF9EVERfTk9fRE9DLAorCSAgICAgICAgInhtbEFkZERvY0VudGl0eTogZG9jdW1lbnQgaXMgTlVMTCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGRvYy0+aW50U3Vic2V0ID09IE5VTEwpIHsKKwl4bWxFbnRpdGllc0VycihYTUxfRFREX05PX0RURCwKKwkgICAgICAgICJ4bWxBZGREb2NFbnRpdHk6IGRvY3VtZW50IHdpdGhvdXQgaW50ZXJuYWwgc3Vic2V0Iik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBkdGQgPSBkb2MtPmludFN1YnNldDsKKyAgICByZXQgPSB4bWxBZGRFbnRpdHkoZHRkLCBuYW1lLCB0eXBlLCBFeHRlcm5hbElELCBTeXN0ZW1JRCwgY29udGVudCk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIExpbmsgaXQgdG8gdGhlIERURAorICAgICAqLworICAgIHJldC0+cGFyZW50ID0gZHRkOworICAgIHJldC0+ZG9jID0gZHRkLT5kb2M7CisgICAgaWYgKGR0ZC0+bGFzdCA9PSBOVUxMKSB7CisJZHRkLT5jaGlsZHJlbiA9IGR0ZC0+bGFzdCA9ICh4bWxOb2RlUHRyKSByZXQ7CisgICAgfSBlbHNlIHsKKwlkdGQtPmxhc3QtPm5leHQgPSAoeG1sTm9kZVB0cikgcmV0OworCXJldC0+cHJldiA9IGR0ZC0+bGFzdDsKKwlkdGQtPmxhc3QgPSAoeG1sTm9kZVB0cikgcmV0OworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxOZXdFbnRpdHk6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAbmFtZTogIHRoZSBlbnRpdHkgbmFtZQorICogQHR5cGU6ICB0aGUgZW50aXR5IHR5cGUgWE1MX3h4eF95eXlfRU5USVRZCisgKiBARXh0ZXJuYWxJRDogIHRoZSBlbnRpdHkgZXh0ZXJuYWwgSUQgaWYgYXZhaWxhYmxlCisgKiBAU3lzdGVtSUQ6ICB0aGUgZW50aXR5IHN5c3RlbSBJRCBpZiBhdmFpbGFibGUKKyAqIEBjb250ZW50OiAgdGhlIGVudGl0eSBjb250ZW50CisgKgorICogQ3JlYXRlIGEgbmV3IGVudGl0eSwgdGhpcyBkaWZmZXJzIGZyb20geG1sQWRkRG9jRW50aXR5KCkgdGhhdCBpZgorICogdGhlIGRvY3VtZW50IGlzIE5VTEwgb3IgaGFzIG5vIGludGVybmFsIHN1YnNldCBkZWZpbmVkLCB0aGVuIGFuCisgKiB1bmxpbmtlZCBlbnRpdHkgc3RydWN0dXJlIHdpbGwgYmUgcmV0dXJuZWQsIGl0IGlzIHRoZW4gdGhlIHJlc3BvbnNhYmlsaXR5CisgKiBvZiB0aGUgY2FsbGVyIHRvIGxpbmsgaXQgdG8gdGhlIGRvY3VtZW50IGxhdGVyIG9yIGZyZWUgaXQgd2hlbiBub3QgbmVlZGVkCisgKiBhbnltb3JlLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEVudGl0eVB0cgoreG1sTmV3RW50aXR5KHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGludCB0eXBlLAorCSAgICAgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQsCisJICAgICBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sRW50aXR5UHRyIHJldDsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisKKyAgICBpZiAoKGRvYyAhPSBOVUxMKSAmJiAoZG9jLT5pbnRTdWJzZXQgIT0gTlVMTCkpIHsKKwlyZXR1cm4oeG1sQWRkRG9jRW50aXR5KGRvYywgbmFtZSwgdHlwZSwgRXh0ZXJuYWxJRCwgU3lzdGVtSUQsIGNvbnRlbnQpKTsKKyAgICB9CisgICAgaWYgKGRvYyAhPSBOVUxMKQorICAgICAgICBkaWN0ID0gZG9jLT5kaWN0OworICAgIGVsc2UKKyAgICAgICAgZGljdCA9IE5VTEw7CisgICAgcmV0ID0geG1sQ3JlYXRlRW50aXR5KGRpY3QsIG5hbWUsIHR5cGUsIEV4dGVybmFsSUQsIFN5c3RlbUlELCBjb250ZW50KTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXQtPmRvYyA9IGRvYzsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxHZXRFbnRpdHlGcm9tVGFibGU6CisgKiBAdGFibGU6ICBhbiBlbnRpdHkgdGFibGUKKyAqIEBuYW1lOiAgdGhlIGVudGl0eSBuYW1lCisgKiBAcGFyYW1ldGVyOiAgbG9vayBmb3IgcGFyYW1ldGVyIGVudGl0aWVzCisgKgorICogRG8gYW4gZW50aXR5IGxvb2t1cCBpbiB0aGUgdGFibGUuCisgKiByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBlbnRpdHksIGlmIGZvdW5kLgorICogCisgKiBSZXR1cm5zIEEgcG9pbnRlciB0byB0aGUgZW50aXR5IHN0cnVjdHVyZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4KKyAqLworc3RhdGljIHhtbEVudGl0eVB0cgoreG1sR2V0RW50aXR5RnJvbVRhYmxlKHhtbEVudGl0aWVzVGFibGVQdHIgdGFibGUsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICByZXR1cm4oKHhtbEVudGl0eVB0cikgeG1sSGFzaExvb2t1cCh0YWJsZSwgbmFtZSkpOworfQorCisvKioKKyAqIHhtbEdldFBhcmFtZXRlckVudGl0eToKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdGhlIGVudGl0eQorICogQG5hbWU6ICB0aGUgZW50aXR5IG5hbWUKKyAqCisgKiBEbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgc3Vic2V0cyBhbmQKKyAqIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyIGVudGl0eSwgaWYgZm91bmQuCisgKiAKKyAqIFJldHVybnMgQSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgc3RydWN0dXJlIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICovCit4bWxFbnRpdHlQdHIKK3htbEdldFBhcmFtZXRlckVudGl0eSh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZTsKKyAgICB4bWxFbnRpdHlQdHIgcmV0OworCisgICAgaWYgKGRvYyA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKGRvYy0+aW50U3Vic2V0ICE9IE5VTEwpICYmIChkb2MtPmludFN1YnNldC0+cGVudGl0aWVzICE9IE5VTEwpKSB7CisJdGFibGUgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikgZG9jLT5pbnRTdWJzZXQtPnBlbnRpdGllczsKKwlyZXQgPSB4bWxHZXRFbnRpdHlGcm9tVGFibGUodGFibGUsIG5hbWUpOworCWlmIChyZXQgIT0gTlVMTCkKKwkgICAgcmV0dXJuKHJldCk7CisgICAgfQorICAgIGlmICgoZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0LT5wZW50aXRpZXMgIT0gTlVMTCkpIHsKKwl0YWJsZSA9ICh4bWxFbnRpdGllc1RhYmxlUHRyKSBkb2MtPmV4dFN1YnNldC0+cGVudGl0aWVzOworCXJldHVybih4bWxHZXRFbnRpdHlGcm9tVGFibGUodGFibGUsIG5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbEdldER0ZEVudGl0eToKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdGhlIGVudGl0eQorICogQG5hbWU6ICB0aGUgZW50aXR5IG5hbWUKKyAqCisgKiBEbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBEVEQgZW50aXR5IGhhc2ggdGFibGUgYW5kCisgKiByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIGVudGl0eSwgaWYgZm91bmQuCisgKiBOb3RlOiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIGRvY3VtZW50IG5vZGUsIG5vdCB0aGUgRFREIG5vZGUuCisgKiAKKyAqIFJldHVybnMgQSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgc3RydWN0dXJlIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICovCit4bWxFbnRpdHlQdHIKK3htbEdldER0ZEVudGl0eSh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZTsKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQtPmVudGl0aWVzICE9IE5VTEwpKSB7CisJdGFibGUgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikgZG9jLT5leHRTdWJzZXQtPmVudGl0aWVzOworCXJldHVybih4bWxHZXRFbnRpdHlGcm9tVGFibGUodGFibGUsIG5hbWUpKTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbEdldERvY0VudGl0eToKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdGhlIGVudGl0eQorICogQG5hbWU6ICB0aGUgZW50aXR5IG5hbWUKKyAqCisgKiBEbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBkb2N1bWVudCBlbnRpdHkgaGFzaCB0YWJsZSBhbmQKKyAqIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgZW50aXR5LCBvdGhlcndpc2UgYSBsb29rdXAgaXMgZG9uZQorICogaW4gdGhlIHByZWRlZmluZWQgZW50aXRpZXMgdG9vLgorICogCisgKiBSZXR1cm5zIEEgcG9pbnRlciB0byB0aGUgZW50aXR5IHN0cnVjdHVyZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4KKyAqLworeG1sRW50aXR5UHRyCit4bWxHZXREb2NFbnRpdHkoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbEVudGl0eVB0ciBjdXI7CisgICAgeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZTsKKworICAgIGlmIChkb2MgIT0gTlVMTCkgeworCWlmICgoZG9jLT5pbnRTdWJzZXQgIT0gTlVMTCkgJiYgKGRvYy0+aW50U3Vic2V0LT5lbnRpdGllcyAhPSBOVUxMKSkgeworCSAgICB0YWJsZSA9ICh4bWxFbnRpdGllc1RhYmxlUHRyKSBkb2MtPmludFN1YnNldC0+ZW50aXRpZXM7CisJICAgIGN1ciA9IHhtbEdldEVudGl0eUZyb21UYWJsZSh0YWJsZSwgbmFtZSk7CisJICAgIGlmIChjdXIgIT0gTlVMTCkKKwkJcmV0dXJuKGN1cik7CisJfQorCWlmIChkb2MtPnN0YW5kYWxvbmUgIT0gMSkgeworCSAgICBpZiAoKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpICYmCisJCShkb2MtPmV4dFN1YnNldC0+ZW50aXRpZXMgIT0gTlVMTCkpIHsKKwkJdGFibGUgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikgZG9jLT5leHRTdWJzZXQtPmVudGl0aWVzOworCQljdXIgPSB4bWxHZXRFbnRpdHlGcm9tVGFibGUodGFibGUsIG5hbWUpOworCQlpZiAoY3VyICE9IE5VTEwpCisJCSAgICByZXR1cm4oY3VyKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKHhtbEdldFByZWRlZmluZWRFbnRpdHkobmFtZSkpOworfQorCisvKgorICogTWFjcm8gdXNlZCB0byBncm93IHRoZSBjdXJyZW50IGJ1ZmZlci4KKyAqLworI2RlZmluZSBncm93QnVmZmVyUmVlbnRyYW50KCkgewkJCQkJCVwKKyAgICBidWZmZXJfc2l6ZSAqPSAyOwkJCQkJCQlcCisgICAgYnVmZmVyID0gKHhtbENoYXIgKikJCQkJCQlcCisgICAgCQl4bWxSZWFsbG9jKGJ1ZmZlciwgYnVmZmVyX3NpemUgKiBzaXplb2YoeG1sQ2hhcikpOwlcCisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CQkJCQkJXAorICAgICAgICB4bWxFbnRpdGllc0Vyck1lbW9yeSgieG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ6IHJlYWxsb2MgZmFpbGVkIik7XAorCXJldHVybihOVUxMKTsJCQkJCQkJXAorICAgIH0JCQkJCQkJCQlcCit9CisKKworLyoqCisgKiB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgc3RyaW5nCisgKiBAaW5wdXQ6ICBBIHN0cmluZyB0byBjb252ZXJ0IHRvIFhNTC4KKyAqCisgKiBEbyBhIGdsb2JhbCBlbmNvZGluZyBvZiBhIHN0cmluZywgcmVwbGFjaW5nIHRoZSBwcmVkZWZpbmVkIGVudGl0aWVzCisgKiBhbmQgbm9uIEFTQ0lJIHZhbHVlcyB3aXRoIHRoZWlyIGVudGl0aWVzIGFuZCBDaGFyUmVmIGNvdW50ZXJwYXJ0cy4KKyAqIENvbnRyYXJ5IHRvIHhtbEVuY29kZUVudGl0aWVzLCB0aGlzIHJvdXRpbmUgaXMgcmVlbnRyYW50LCBhbmQgcmVzdWx0CisgKiBtdXN0IGJlIGRlYWxsb2NhdGVkLgorICoKKyAqIFJldHVybnMgQSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggdGhlIHN1YnN0aXR1dGlvbiBkb25lLgorICovCit4bWxDaGFyICoKK3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKmlucHV0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gaW5wdXQ7CisgICAgeG1sQ2hhciAqYnVmZmVyID0gTlVMTDsKKyAgICB4bWxDaGFyICpvdXQgPSBOVUxMOworICAgIGludCBidWZmZXJfc2l6ZSA9IDA7CisgICAgaW50IGh0bWwgPSAwOworCisgICAgaWYgKGlucHV0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoZG9jICE9IE5VTEwpCisgICAgICAgIGh0bWwgPSAoZG9jLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpOworCisgICAgLyoKKyAgICAgKiBhbGxvY2F0ZSBhbiB0cmFuc2xhdGlvbiBidWZmZXIuCisgICAgICovCisgICAgYnVmZmVyX3NpemUgPSAxMDAwOworICAgIGJ1ZmZlciA9ICh4bWxDaGFyICopIHhtbE1hbGxvYyhidWZmZXJfc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVudGl0aWVzRXJyTWVtb3J5KCJ4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudDogbWFsbG9jIGZhaWxlZCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgb3V0ID0gYnVmZmVyOworCisgICAgd2hpbGUgKCpjdXIgIT0gJ1wwJykgeworICAgICAgICBpZiAob3V0IC0gYnVmZmVyID4gYnVmZmVyX3NpemUgLSAxMDApIHsKKwkgICAgaW50IGluZHggPSBvdXQgLSBidWZmZXI7CisKKwkgICAgZ3Jvd0J1ZmZlclJlZW50cmFudCgpOworCSAgICBvdXQgPSAmYnVmZmVyW2luZHhdOworCX0KKworCS8qCisJICogQnkgZGVmYXVsdCBvbmUgaGF2ZSB0byBlbmNvZGUgYXQgbGVhc3QgJzwnLCAnPicsICciJyBhbmQgJyYnICEKKwkgKi8KKwlpZiAoKmN1ciA9PSAnPCcpIHsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICAqb3V0KysgPSAnbCc7CisJICAgICpvdXQrKyA9ICd0JzsKKwkgICAgKm91dCsrID0gJzsnOworCX0gZWxzZSBpZiAoKmN1ciA9PSAnPicpIHsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICAqb3V0KysgPSAnZyc7CisJICAgICpvdXQrKyA9ICd0JzsKKwkgICAgKm91dCsrID0gJzsnOworCX0gZWxzZSBpZiAoKmN1ciA9PSAnJicpIHsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICAqb3V0KysgPSAnYSc7CisJICAgICpvdXQrKyA9ICdtJzsKKwkgICAgKm91dCsrID0gJ3AnOworCSAgICAqb3V0KysgPSAnOyc7CisJfSBlbHNlIGlmICgoKCpjdXIgPj0gMHgyMCkgJiYgKCpjdXIgPCAweDgwKSkgfHwKKwkgICAgKCpjdXIgPT0gJ1xuJykgfHwgKCpjdXIgPT0gJ1x0JykgfHwgKChodG1sKSAmJiAoKmN1ciA9PSAnXHInKSkpIHsKKwkgICAgLyoKKwkgICAgICogZGVmYXVsdCBjYXNlLCBqdXN0IGNvcHkgIQorCSAgICAgKi8KKwkgICAgKm91dCsrID0gKmN1cjsKKwl9IGVsc2UgaWYgKCpjdXIgPj0gMHg4MCkgeworCSAgICBpZiAoKChkb2MgIT0gTlVMTCkgJiYgKGRvYy0+ZW5jb2RpbmcgIT0gTlVMTCkpIHx8IChodG1sKSkgeworCQkvKgorCQkgKiBCavhybiBSZWVzZSA8YnJAc3NldXNhLmNvbT4gcHJvdmlkZWQgdGhlIHBhdGNoCisJICAgICAgICB4bWxDaGFyIHhjOworCSAgICAgICAgeGMgPSAoKmN1ciAmIDB4M0YpIDw8IDY7CisJICAgICAgICBpZiAoY3VyWzFdICE9IDApIHsKKwkJICAgIHhjICs9ICooKytjdXIpICYgMHgzRjsKKwkJICAgICpvdXQrKyA9IHhjOworCSAgICAgICAgfSBlbHNlCisJCSAqLworCQkqb3V0KysgPSAqY3VyOworCSAgICB9IGVsc2UgeworCQkvKgorCQkgKiBXZSBhc3N1bWUgd2UgaGF2ZSBVVEYtOCBpbnB1dC4KKwkJICovCisJCWNoYXIgYnVmWzExXSwgKnB0cjsKKwkJaW50IHZhbCA9IDAsIGwgPSAxOworCisJCWlmICgqY3VyIDwgMHhDMCkgeworCQkgICAgeG1sRW50aXRpZXNFcnIoWE1MX0NIRUNLX05PVF9VVEY4LAorCQkJICAgICJ4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCA6IGlucHV0IG5vdCBVVEYtOCIpOworCQkgICAgaWYgKGRvYyAhPSBOVUxMKQorCQkJZG9jLT5lbmNvZGluZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiSVNPLTg4NTktMSIpOworCQkgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiYjJWQ7IiwgKmN1cik7CisJCSAgICBidWZbc2l6ZW9mKGJ1ZikgLSAxXSA9IDA7CisJCSAgICBwdHIgPSBidWY7CisJCSAgICB3aGlsZSAoKnB0ciAhPSAwKSAqb3V0KysgPSAqcHRyKys7CisJCSAgICBjdXIrKzsKKwkJICAgIGNvbnRpbnVlOworCQl9IGVsc2UgaWYgKCpjdXIgPCAweEUwKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbCA9IChjdXJbMF0pICYgMHgxRjsKKwkJICAgIHZhbCA8PD0gNjsKKwkJICAgIHZhbCB8PSAoY3VyWzFdKSAmIDB4M0Y7CisJCSAgICBsID0gMjsKKwkJfSBlbHNlIGlmICgqY3VyIDwgMHhGMCkgeworICAgICAgICAgICAgICAgICAgICB2YWwgPSAoY3VyWzBdKSAmIDB4MEY7CisJCSAgICB2YWwgPDw9IDY7CisJCSAgICB2YWwgfD0gKGN1clsxXSkgJiAweDNGOworCQkgICAgdmFsIDw8PSA2OworCQkgICAgdmFsIHw9IChjdXJbMl0pICYgMHgzRjsKKwkJICAgIGwgPSAzOworCQl9IGVsc2UgaWYgKCpjdXIgPCAweEY4KSB7CisgICAgICAgICAgICAgICAgICAgIHZhbCA9IChjdXJbMF0pICYgMHgwNzsKKwkJICAgIHZhbCA8PD0gNjsKKwkJICAgIHZhbCB8PSAoY3VyWzFdKSAmIDB4M0Y7CisJCSAgICB2YWwgPDw9IDY7CisJCSAgICB2YWwgfD0gKGN1clsyXSkgJiAweDNGOworCQkgICAgdmFsIDw8PSA2OworCQkgICAgdmFsIHw9IChjdXJbM10pICYgMHgzRjsKKwkJICAgIGwgPSA0OworCQl9CisJCWlmICgobCA9PSAxKSB8fCAoIUlTX0NIQVIodmFsKSkpIHsKKwkJICAgIHhtbEVudGl0aWVzRXJyKFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorCQkJInhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50IDogY2hhciBvdXQgb2YgcmFuZ2VcbiIpOworCQkgICAgaWYgKGRvYyAhPSBOVUxMKQorCQkJZG9jLT5lbmNvZGluZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiSVNPLTg4NTktMSIpOworCQkgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiYjJWQ7IiwgKmN1cik7CisJCSAgICBidWZbc2l6ZW9mKGJ1ZikgLSAxXSA9IDA7CisJCSAgICBwdHIgPSBidWY7CisJCSAgICB3aGlsZSAoKnB0ciAhPSAwKSAqb3V0KysgPSAqcHRyKys7CisJCSAgICBjdXIrKzsKKwkJICAgIGNvbnRpbnVlOworCQl9CisJCS8qCisJCSAqIFdlIGNvdWxkIGRvIG11bHRpcGxlIHRoaW5ncyBoZXJlLiBKdXN0IHNhdmUgYXMgYSBjaGFyIHJlZgorCQkgKi8KKwkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiYjeCVYOyIsIHZhbCk7CisJCWJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKKwkJcHRyID0gYnVmOworCQl3aGlsZSAoKnB0ciAhPSAwKSAqb3V0KysgPSAqcHRyKys7CisJCWN1ciArPSBsOworCQljb250aW51ZTsKKwkgICAgfQorCX0gZWxzZSBpZiAoSVNfQllURV9DSEFSKCpjdXIpKSB7CisJICAgIGNoYXIgYnVmWzExXSwgKnB0cjsKKworCSAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJiMlZDsiLCAqY3VyKTsKKwkgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOworICAgICAgICAgICAgcHRyID0gYnVmOworCSAgICB3aGlsZSAoKnB0ciAhPSAwKSAqb3V0KysgPSAqcHRyKys7CisJfQorCWN1cisrOworICAgIH0KKyAgICAqb3V0ID0gMDsKKyAgICByZXR1cm4oYnVmZmVyKTsKK30KKworLyoqCisgKiB4bWxFbmNvZGVTcGVjaWFsQ2hhcnM6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIHN0cmluZworICogQGlucHV0OiAgQSBzdHJpbmcgdG8gY29udmVydCB0byBYTUwuCisgKgorICogRG8gYSBnbG9iYWwgZW5jb2Rpbmcgb2YgYSBzdHJpbmcsIHJlcGxhY2luZyB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcworICogdGhpcyByb3V0aW5lIGlzIHJlZW50cmFudCwgYW5kIHJlc3VsdCBtdXN0IGJlIGRlYWxsb2NhdGVkLgorICoKKyAqIFJldHVybnMgQSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggdGhlIHN1YnN0aXR1dGlvbiBkb25lLgorICovCit4bWxDaGFyICoKK3htbEVuY29kZVNwZWNpYWxDaGFycyh4bWxEb2NQdHIgZG9jIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKmlucHV0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gaW5wdXQ7CisgICAgeG1sQ2hhciAqYnVmZmVyID0gTlVMTDsKKyAgICB4bWxDaGFyICpvdXQgPSBOVUxMOworICAgIGludCBidWZmZXJfc2l6ZSA9IDA7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIC8qCisgICAgICogYWxsb2NhdGUgYW4gdHJhbnNsYXRpb24gYnVmZmVyLgorICAgICAqLworICAgIGJ1ZmZlcl9zaXplID0gMTAwMDsKKyAgICBidWZmZXIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2MoYnVmZmVyX3NpemUgKiBzaXplb2YoeG1sQ2hhcikpOworICAgIGlmIChidWZmZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxFbnRpdGllc0Vyck1lbW9yeSgieG1sRW5jb2RlU3BlY2lhbENoYXJzOiBtYWxsb2MgZmFpbGVkIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBvdXQgPSBidWZmZXI7CisKKyAgICB3aGlsZSAoKmN1ciAhPSAnXDAnKSB7CisgICAgICAgIGlmIChvdXQgLSBidWZmZXIgPiBidWZmZXJfc2l6ZSAtIDEwKSB7CisJICAgIGludCBpbmR4ID0gb3V0IC0gYnVmZmVyOworCisJICAgIGdyb3dCdWZmZXJSZWVudHJhbnQoKTsKKwkgICAgb3V0ID0gJmJ1ZmZlcltpbmR4XTsKKwl9CisKKwkvKgorCSAqIEJ5IGRlZmF1bHQgb25lIGhhdmUgdG8gZW5jb2RlIGF0IGxlYXN0ICc8JywgJz4nLCAnIicgYW5kICcmJyAhCisJICovCisJaWYgKCpjdXIgPT0gJzwnKSB7CisJICAgICpvdXQrKyA9ICcmJzsKKwkgICAgKm91dCsrID0gJ2wnOworCSAgICAqb3V0KysgPSAndCc7CisJICAgICpvdXQrKyA9ICc7JzsKKwl9IGVsc2UgaWYgKCpjdXIgPT0gJz4nKSB7CisJICAgICpvdXQrKyA9ICcmJzsKKwkgICAgKm91dCsrID0gJ2cnOworCSAgICAqb3V0KysgPSAndCc7CisJICAgICpvdXQrKyA9ICc7JzsKKwl9IGVsc2UgaWYgKCpjdXIgPT0gJyYnKSB7CisJICAgICpvdXQrKyA9ICcmJzsKKwkgICAgKm91dCsrID0gJ2EnOworCSAgICAqb3V0KysgPSAnbSc7CisJICAgICpvdXQrKyA9ICdwJzsKKwkgICAgKm91dCsrID0gJzsnOworCX0gZWxzZSBpZiAoKmN1ciA9PSAnIicpIHsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICAqb3V0KysgPSAncSc7CisJICAgICpvdXQrKyA9ICd1JzsKKwkgICAgKm91dCsrID0gJ28nOworCSAgICAqb3V0KysgPSAndCc7CisJICAgICpvdXQrKyA9ICc7JzsKKwl9IGVsc2UgaWYgKCpjdXIgPT0gJ1xyJykgeworCSAgICAqb3V0KysgPSAnJic7CisJICAgICpvdXQrKyA9ICcjJzsKKwkgICAgKm91dCsrID0gJzEnOworCSAgICAqb3V0KysgPSAnMyc7CisJICAgICpvdXQrKyA9ICc7JzsKKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiBXb3JrcyBiZWNhdXNlIG9uIFVURi04LCBhbGwgZXh0ZW5kZWQgc2VxdWVuY2VzIGNhbm5vdAorCSAgICAgKiByZXN1bHQgaW4gYnl0ZXMgaW4gdGhlIEFTQ0lJIHJhbmdlLgorCSAgICAgKi8KKwkgICAgKm91dCsrID0gKmN1cjsKKwl9CisJY3VyKys7CisgICAgfQorICAgICpvdXQgPSAwOworICAgIHJldHVybihidWZmZXIpOworfQorCisvKioKKyAqIHhtbENyZWF0ZUVudGl0aWVzVGFibGU6CisgKgorICogY3JlYXRlIGFuZCBpbml0aWFsaXplIGFuIGVtcHR5IGVudGl0aWVzIGhhc2ggdGFibGUuCisgKiBUaGlzIHJlYWxseSBkb2Vzbid0IG1ha2Ugc2Vuc2UgYW5kIHNob3VsZCBiZSBkZXByZWNhdGVkCisgKgorICogUmV0dXJucyB0aGUgeG1sRW50aXRpZXNUYWJsZVB0ciBqdXN0IGNyZWF0ZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxFbnRpdGllc1RhYmxlUHRyCit4bWxDcmVhdGVFbnRpdGllc1RhYmxlKHZvaWQpIHsKKyAgICByZXR1cm4oKHhtbEVudGl0aWVzVGFibGVQdHIpIHhtbEhhc2hDcmVhdGUoMCkpOworfQorCisvKioKKyAqIHhtbEZyZWVFbnRpdHlXcmFwcGVyOgorICogQGVudGl0eTogIEFuIGVudGl0eQorICogQG5hbWU6ICBpdHMgbmFtZQorICoKKyAqIERlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIGVudGl0aWVzIGluIHRoZSBoYXNoIHRhYmxlLgorICovCitzdGF0aWMgdm9pZAoreG1sRnJlZUVudGl0eVdyYXBwZXIoeG1sRW50aXR5UHRyIGVudGl0eSwKKwkgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAoZW50aXR5ICE9IE5VTEwpCisJeG1sRnJlZUVudGl0eShlbnRpdHkpOworfQorCisvKioKKyAqIHhtbEZyZWVFbnRpdGllc1RhYmxlOgorICogQHRhYmxlOiAgQW4gZW50aXR5IHRhYmxlCisgKgorICogRGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gZW50aXRpZXMgaGFzaCB0YWJsZS4KKyAqLwordm9pZAoreG1sRnJlZUVudGl0aWVzVGFibGUoeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZSkgeworICAgIHhtbEhhc2hGcmVlKHRhYmxlLCAoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxGcmVlRW50aXR5V3JhcHBlcik7Cit9CisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisvKioKKyAqIHhtbENvcHlFbnRpdHk6CisgKiBAZW50OiAgQW4gZW50aXR5CisgKgorICogQnVpbGQgYSBjb3B5IG9mIGFuIGVudGl0eQorICogCisgKiBSZXR1cm5zIHRoZSBuZXcgeG1sRW50aXRpZXNQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sRW50aXR5UHRyCit4bWxDb3B5RW50aXR5KHhtbEVudGl0eVB0ciBlbnQpIHsKKyAgICB4bWxFbnRpdHlQdHIgY3VyOworCisgICAgY3VyID0gKHhtbEVudGl0eVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxFbnRpdHkpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgeG1sRW50aXRpZXNFcnJNZW1vcnkoInhtbENvcHlFbnRpdHk6OiBtYWxsb2MgZmFpbGVkIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sRW50aXR5KSk7CisgICAgY3VyLT50eXBlID0gWE1MX0VOVElUWV9ERUNMOworCisgICAgY3VyLT5ldHlwZSA9IGVudC0+ZXR5cGU7CisgICAgaWYgKGVudC0+bmFtZSAhPSBOVUxMKQorCWN1ci0+bmFtZSA9IHhtbFN0cmR1cChlbnQtPm5hbWUpOworICAgIGlmIChlbnQtPkV4dGVybmFsSUQgIT0gTlVMTCkKKwljdXItPkV4dGVybmFsSUQgPSB4bWxTdHJkdXAoZW50LT5FeHRlcm5hbElEKTsKKyAgICBpZiAoZW50LT5TeXN0ZW1JRCAhPSBOVUxMKQorCWN1ci0+U3lzdGVtSUQgPSB4bWxTdHJkdXAoZW50LT5TeXN0ZW1JRCk7CisgICAgaWYgKGVudC0+Y29udGVudCAhPSBOVUxMKQorCWN1ci0+Y29udGVudCA9IHhtbFN0cmR1cChlbnQtPmNvbnRlbnQpOworICAgIGlmIChlbnQtPm9yaWcgIT0gTlVMTCkKKwljdXItPm9yaWcgPSB4bWxTdHJkdXAoZW50LT5vcmlnKTsKKyAgICBpZiAoZW50LT5VUkkgIT0gTlVMTCkKKwljdXItPlVSSSA9IHhtbFN0cmR1cChlbnQtPlVSSSk7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sQ29weUVudGl0aWVzVGFibGU6CisgKiBAdGFibGU6ICBBbiBlbnRpdHkgdGFibGUKKyAqCisgKiBCdWlsZCBhIGNvcHkgb2YgYW4gZW50aXR5IHRhYmxlLgorICogCisgKiBSZXR1cm5zIHRoZSBuZXcgeG1sRW50aXRpZXNUYWJsZVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbEVudGl0aWVzVGFibGVQdHIKK3htbENvcHlFbnRpdGllc1RhYmxlKHhtbEVudGl0aWVzVGFibGVQdHIgdGFibGUpIHsKKyAgICByZXR1cm4oeG1sSGFzaENvcHkodGFibGUsICh4bWxIYXNoQ29waWVyKSB4bWxDb3B5RW50aXR5KSk7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisKKy8qKgorICogeG1sRHVtcEVudGl0eUNvbnRlbnQ6CisgKiBAYnVmOiAgQW4gWE1MIGJ1ZmZlci4KKyAqIEBjb250ZW50OiAgVGhlIGVudGl0eSBjb250ZW50LgorICoKKyAqIFRoaXMgd2lsbCBkdW1wIHRoZSBxdW90ZWQgc3RyaW5nIHZhbHVlLCB0YWtpbmcgY2FyZSBvZiB0aGUgc3BlY2lhbAorICogdHJlYXRtZW50IHJlcXVpcmVkIGJ5ICUKKyAqLworc3RhdGljIHZvaWQKK3htbER1bXBFbnRpdHlDb250ZW50KHhtbEJ1ZmZlclB0ciBidWYsIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpIHsKKyAgICBpZiAoYnVmLT5hbGxvYyA9PSBYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSkgcmV0dXJuOworICAgIGlmICh4bWxTdHJjaHIoY29udGVudCwgJyUnKSkgeworICAgICAgICBjb25zdCB4bWxDaGFyICogYmFzZSwgKmN1cjsKKworCXhtbEJ1ZmZlckNDYXQoYnVmLCAiXCIiKTsKKwliYXNlID0gY3VyID0gY29udGVudDsKKwl3aGlsZSAoKmN1ciAhPSAwKSB7CisJICAgIGlmICgqY3VyID09ICciJykgeworCQlpZiAoYmFzZSAhPSBjdXIpCisJCSAgICB4bWxCdWZmZXJBZGQoYnVmLCBiYXNlLCBjdXIgLSBiYXNlKTsKKwkJeG1sQnVmZmVyQWRkKGJ1ZiwgQkFEX0NBU1QgIiZxdW90OyIsIDYpOworCQljdXIrKzsKKwkJYmFzZSA9IGN1cjsKKwkgICAgfSBlbHNlIGlmICgqY3VyID09ICclJykgeworCQlpZiAoYmFzZSAhPSBjdXIpCisJCSAgICB4bWxCdWZmZXJBZGQoYnVmLCBiYXNlLCBjdXIgLSBiYXNlKTsKKwkJeG1sQnVmZmVyQWRkKGJ1ZiwgQkFEX0NBU1QgIiYjeDI1OyIsIDYpOworCQljdXIrKzsKKwkJYmFzZSA9IGN1cjsKKwkgICAgfSBlbHNlIHsKKwkJY3VyKys7CisJICAgIH0KKwl9CisJaWYgKGJhc2UgIT0gY3VyKQorCSAgICB4bWxCdWZmZXJBZGQoYnVmLCBiYXNlLCBjdXIgLSBiYXNlKTsKKwl4bWxCdWZmZXJDQ2F0KGJ1ZiwgIlwiIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLCBjb250ZW50KTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sRHVtcEVudGl0eURlY2w6CisgKiBAYnVmOiAgQW4gWE1MIGJ1ZmZlci4KKyAqIEBlbnQ6ICBBbiBlbnRpdHkgdGFibGUKKyAqCisgKiBUaGlzIHdpbGwgZHVtcCB0aGUgY29udGVudCBvZiB0aGUgZW50aXR5IHRhYmxlIGFzIGFuIFhNTCBEVEQgZGVmaW5pdGlvbgorICovCit2b2lkCit4bWxEdW1wRW50aXR5RGVjbCh4bWxCdWZmZXJQdHIgYnVmLCB4bWxFbnRpdHlQdHIgZW50KSB7CisgICAgaWYgKChidWYgPT0gTlVMTCkgfHwgKGVudCA9PSBOVUxMKSkgcmV0dXJuOworICAgIHN3aXRjaCAoZW50LT5ldHlwZSkgeworCWNhc2UgWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiPCFFTlRJVFkgIik7CisJICAgIHhtbEJ1ZmZlcldyaXRlQ0hBUihidWYsIGVudC0+bmFtZSk7CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgIik7CisJICAgIGlmIChlbnQtPm9yaWcgIT0gTlVMTCkKKwkJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLCBlbnQtPm9yaWcpOworCSAgICBlbHNlCisJCXhtbER1bXBFbnRpdHlDb250ZW50KGJ1ZiwgZW50LT5jb250ZW50KTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIj5cbiIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFk6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICI8IUVOVElUWSAiKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgZW50LT5uYW1lKTsKKwkgICAgaWYgKGVudC0+RXh0ZXJuYWxJRCAhPSBOVUxMKSB7CisJCSB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiIFBVQkxJQyAiKTsKKwkJIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1ZiwgZW50LT5FeHRlcm5hbElEKTsKKwkJIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgIik7CisJCSB4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyhidWYsIGVudC0+U3lzdGVtSUQpOworCSAgICB9IGVsc2UgeworCQkgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBTWVNURU0gIik7CisJCSB4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyhidWYsIGVudC0+U3lzdGVtSUQpOworCSAgICB9CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICI+XG4iKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFk6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICI8IUVOVElUWSAiKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgZW50LT5uYW1lKTsKKwkgICAgaWYgKGVudC0+RXh0ZXJuYWxJRCAhPSBOVUxMKSB7CisJCSB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiIFBVQkxJQyAiKTsKKwkJIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1ZiwgZW50LT5FeHRlcm5hbElEKTsKKwkJIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgIik7CisJCSB4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyhidWYsIGVudC0+U3lzdGVtSUQpOworCSAgICB9IGVsc2UgeworCQkgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBTWVNURU0gIik7CisJCSB4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyhidWYsIGVudC0+U3lzdGVtSUQpOworCSAgICB9CisJICAgIGlmIChlbnQtPmNvbnRlbnQgIT0gTlVMTCkgeyAvKiBTaG91bGQgYmUgdHJ1ZSAhICovCisJCXhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgTkRBVEEgIik7CisJCWlmIChlbnQtPm9yaWcgIT0gTlVMTCkKKwkJICAgIHhtbEJ1ZmZlcldyaXRlQ0hBUihidWYsIGVudC0+b3JpZyk7CisJCWVsc2UKKwkJICAgIHhtbEJ1ZmZlcldyaXRlQ0hBUihidWYsIGVudC0+Y29udGVudCk7CisJICAgIH0KKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIj5cbiIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9JTlRFUk5BTF9QQVJBTUVURVJfRU5USVRZOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiPCFFTlRJVFkgJSAiKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgZW50LT5uYW1lKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiAiKTsKKwkgICAgaWYgKGVudC0+b3JpZyA9PSBOVUxMKQorCQl4bWxEdW1wRW50aXR5Q29udGVudChidWYsIGVudC0+Y29udGVudCk7CisJICAgIGVsc2UKKwkJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLCBlbnQtPm9yaWcpOworCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiPlxuIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICI8IUVOVElUWSAlICIpOworCSAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBlbnQtPm5hbWUpOworCSAgICBpZiAoZW50LT5FeHRlcm5hbElEICE9IE5VTEwpIHsKKwkJIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgUFVCTElDICIpOworCQkgeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLCBlbnQtPkV4dGVybmFsSUQpOworCQkgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiAiKTsKKwkJIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1ZiwgZW50LT5TeXN0ZW1JRCk7CisJICAgIH0gZWxzZSB7CisJCSB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiIFNZU1RFTSAiKTsKKwkJIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1ZiwgZW50LT5TeXN0ZW1JRCk7CisJICAgIH0KKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIj5cbiIpOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICB4bWxFbnRpdGllc0VycihYTUxfRFREX1VOS05PV05fRU5USVRZLAorCQkieG1sRHVtcEVudGl0aWVzRGVjbDogaW50ZXJuYWw6IHVua25vd24gdHlwZSBlbnRpdHkgdHlwZSIpOworICAgIH0KK30KKworLyoqCisgKiB4bWxEdW1wRW50aXR5RGVjbFNjYW46CisgKiBAZW50OiAgQW4gZW50aXR5IHRhYmxlCisgKiBAYnVmOiAgQW4gWE1MIGJ1ZmZlci4KKyAqCisgKiBXaGVuIHVzaW5nIHRoZSBoYXNoIHRhYmxlIHNjYW4gZnVuY3Rpb24sIGFyZ3VtZW50cyBuZWVkIHRvIGJlIHJldmVyc2VkCisgKi8KK3N0YXRpYyB2b2lkCit4bWxEdW1wRW50aXR5RGVjbFNjYW4oeG1sRW50aXR5UHRyIGVudCwgeG1sQnVmZmVyUHRyIGJ1ZikgeworICAgIHhtbER1bXBFbnRpdHlEZWNsKGJ1ZiwgZW50KTsKK30KKyAgICAgIAorLyoqCisgKiB4bWxEdW1wRW50aXRpZXNUYWJsZToKKyAqIEBidWY6ICBBbiBYTUwgYnVmZmVyLgorICogQHRhYmxlOiAgQW4gZW50aXR5IHRhYmxlCisgKgorICogVGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb24KKyAqLwordm9pZAoreG1sRHVtcEVudGl0aWVzVGFibGUoeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZSkgeworICAgIHhtbEhhc2hTY2FuKHRhYmxlLCAoeG1sSGFzaFNjYW5uZXIpeG1sRHVtcEVudGl0eURlY2xTY2FuLCBidWYpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2RlZmluZSBib3R0b21fZW50aXRpZXMKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2Vycm9yLmMgYi9saWJ4bWwyLTIuNy43L2Vycm9yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUwOGQ0MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZXJyb3IuYwpAQCAtMCwwICsxLDk4OSBAQAorLyoKKyAqIGVycm9yLmM6IG1vZHVsZSBkaXNwbGF5aW5nL2hhbmRsaW5nIFhNTCBwYXJzZXIgZXJyb3JzCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIERhbmllbCBWZWlsbGFyZCA8ZGFuaWVsQHZlaWxsYXJkLmNvbT4KKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorCit2b2lkIFhNTENERUNMIHhtbEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jCSh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKwkJCQkgY29uc3QgY2hhciAqbXNnLAorCQkJCSAuLi4pOworCisjZGVmaW5lIFhNTF9HRVRfVkFSX1NUUihtc2csIHN0cikgewkJCQlcCisgICAgaW50ICAgICAgIHNpemUsIHByZXZfc2l6ZSA9IC0xOwkJCQlcCisgICAgaW50ICAgICAgIGNoYXJzOwkJCQkJCVwKKyAgICBjaGFyICAgICAgKmxhcmdlcjsJCQkJCQlcCisgICAgdmFfbGlzdCAgIGFwOwkJCQkJCVwKKwkJCQkJCQkJXAorICAgIHN0ciA9IChjaGFyICopIHhtbE1hbGxvYygxNTApOwkJCQlcCisgICAgaWYgKHN0ciAhPSBOVUxMKSB7CQkJCQkJXAorCQkJCQkJCQlcCisgICAgc2l6ZSA9IDE1MDsJCQkJCQkJXAorCQkJCQkJCQlcCisgICAgd2hpbGUgKHNpemUgPCA2NDAwMCkgewkJCQkJXAorCXZhX3N0YXJ0KGFwLCBtc2cpOwkJCQkJXAorICAJY2hhcnMgPSB2c25wcmludGYoc3RyLCBzaXplLCBtc2csIGFwKTsJCQlcCisJdmFfZW5kKGFwKTsJCQkJCQlcCisJaWYgKChjaGFycyA+IC0xKSAmJiAoY2hhcnMgPCBzaXplKSkgewkJCVwKKwkgICAgaWYgKHByZXZfc2l6ZSA9PSBjaGFycykgewkJCQlcCisJCWJyZWFrOwkJCQkJCVwKKwkgICAgfSBlbHNlIHsJCQkJCQlcCisJCXByZXZfc2l6ZSA9IGNoYXJzOwkJCQlcCisJICAgIH0JCQkJCQkJXAorCX0JCQkJCQkJXAorCWlmIChjaGFycyA+IC0xKQkJCQkJCVwKKwkgICAgc2l6ZSArPSBjaGFycyArIDE7CQkJCQlcCisJZWxzZQkJCQkJCQlcCisJICAgIHNpemUgKz0gMTAwOwkJCQkJXAorCWlmICgobGFyZ2VyID0gKGNoYXIgKikgeG1sUmVhbGxvYyhzdHIsIHNpemUpKSA9PSBOVUxMKSB7XAorCSAgICBicmVhazsJCQkJCQlcCisJfQkJCQkJCQlcCisJc3RyID0gbGFyZ2VyOwkJCQkJCVwKKyAgICB9fQkJCQkJCQkJXAorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlIYW5kbGluZyBvZiBvdXQgb2YgY29udGV4dCBlcnJvcnMJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM6CisgKiBAY3R4OiAgYW4gZXJyb3IgY29udGV4dAorICogQG1zZzogIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKiAKKyAqIERlZmF1bHQgaGFuZGxlciBmb3Igb3V0IG9mIGNvbnRleHQgZXJyb3IgbWVzc2FnZXMuCisgKi8KK3ZvaWQgWE1MQ0RFQ0wKK3htbEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICptc2csIC4uLikgeworICAgIHZhX2xpc3QgYXJnczsKKworICAgIGlmICh4bWxHZW5lcmljRXJyb3JDb250ZXh0ID09IE5VTEwpCisJeG1sR2VuZXJpY0Vycm9yQ29udGV4dCA9ICh2b2lkICopIHN0ZGVycjsKKworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgdmZwcmludGYoKEZJTEUgKil4bWxHZW5lcmljRXJyb3JDb250ZXh0LCBtc2csIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKK30KKworLyoqCisgKiBpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM6CisgKiBAaGFuZGxlcjogIHRoZSBoYW5kbGVyCisgKiAKKyAqIFNldCBvciByZXNldCAoaWYgTlVMTCkgdGhlIGRlZmF1bHQgaGFuZGxlciBmb3IgZ2VuZXJpYyBlcnJvcnMKKyAqIHRvIHRoZSBidWlsdGluIGVycm9yIGZ1bmN0aW9uLgorICovCit2b2lkCitpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMoeG1sR2VuZXJpY0Vycm9yRnVuYyAqIGhhbmRsZXIpCit7CisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yID0geG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM7CisgICAgZWxzZQorICAgICAgICB4bWxHZW5lcmljRXJyb3IgPSAoKmhhbmRsZXIpOworfQorCisvKioKKyAqIHhtbFNldEdlbmVyaWNFcnJvckZ1bmM6CisgKiBAY3R4OiAgdGhlIG5ldyBlcnJvciBoYW5kbGluZyBjb250ZXh0CisgKiBAaGFuZGxlcjogIHRoZSBuZXcgaGFuZGxlciBmdW5jdGlvbgorICoKKyAqIEZ1bmN0aW9uIHRvIHJlc2V0IHRoZSBoYW5kbGVyIGFuZCB0aGUgZXJyb3IgY29udGV4dCBmb3Igb3V0IG9mCisgKiBjb250ZXh0IGVycm9yIG1lc3NhZ2VzLgorICogVGhpcyBzaW1wbHkgbWVhbnMgdGhhdCBAaGFuZGxlciB3aWxsIGJlIGNhbGxlZCBmb3Igc3Vic2VxdWVudAorICogZXJyb3IgbWVzc2FnZXMgd2hpbGUgbm90IHBhcnNpbmcgbm9yIHZhbGlkYXRpbmcuIEFuZCBAY3R4IHdpbGwKKyAqIGJlIHBhc3NlZCBhcyBmaXJzdCBhcmd1bWVudCB0byBAaGFuZGxlcgorICogT25lIGNhbiBzaW1wbHkgZm9yY2UgbWVzc2FnZXMgdG8gYmUgZW1pdHRlZCB0byBhbm90aGVyIEZJTEUgKiB0aGFuCisgKiBzdGRlcnIgYnkgc2V0dGluZyBAY3R4IHRvIHRoaXMgZmlsZSBoYW5kbGUgYW5kIEBoYW5kbGVyIHRvIE5VTEwuCisgKiBGb3IgbXVsdGktdGhyZWFkZWQgYXBwbGljYXRpb25zLCB0aGlzIG11c3QgYmUgc2V0IHNlcGFyYXRlbHkgZm9yIGVhY2ggdGhyZWFkLgorICovCit2b2lkCit4bWxTZXRHZW5lcmljRXJyb3JGdW5jKHZvaWQgKmN0eCwgeG1sR2VuZXJpY0Vycm9yRnVuYyBoYW5kbGVyKSB7CisgICAgeG1sR2VuZXJpY0Vycm9yQ29udGV4dCA9IGN0eDsKKyAgICBpZiAoaGFuZGxlciAhPSBOVUxMKQorCXhtbEdlbmVyaWNFcnJvciA9IGhhbmRsZXI7CisgICAgZWxzZQorCXhtbEdlbmVyaWNFcnJvciA9IHhtbEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jOworfQorCisvKioKKyAqIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM6CisgKiBAY3R4OiAgdGhlIG5ldyBlcnJvciBoYW5kbGluZyBjb250ZXh0CisgKiBAaGFuZGxlcjogIHRoZSBuZXcgaGFuZGxlciBmdW5jdGlvbgorICoKKyAqIEZ1bmN0aW9uIHRvIHJlc2V0IHRoZSBoYW5kbGVyIGFuZCB0aGUgZXJyb3IgY29udGV4dCBmb3Igb3V0IG9mCisgKiBjb250ZXh0IHN0cnVjdHVyZWQgZXJyb3IgbWVzc2FnZXMuCisgKiBUaGlzIHNpbXBseSBtZWFucyB0aGF0IEBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkIGZvciBzdWJzZXF1ZW50CisgKiBlcnJvciBtZXNzYWdlcyB3aGlsZSBub3QgcGFyc2luZyBub3IgdmFsaWRhdGluZy4gQW5kIEBjdHggd2lsbAorICogYmUgcGFzc2VkIGFzIGZpcnN0IGFyZ3VtZW50IHRvIEBoYW5kbGVyCisgKiBGb3IgbXVsdGktdGhyZWFkZWQgYXBwbGljYXRpb25zLCB0aGlzIG11c3QgYmUgc2V0IHNlcGFyYXRlbHkgZm9yIGVhY2ggdGhyZWFkLgorICovCit2b2lkCit4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKHZvaWQgKmN0eCwgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBoYW5kbGVyKSB7CisgICAgeG1sU3RydWN0dXJlZEVycm9yQ29udGV4dCA9IGN0eDsKKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3IgPSBoYW5kbGVyOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlIYW5kbGluZyBvZiBwYXJzaW5nIGVycm9ycwkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sUGFyc2VyUHJpbnRGaWxlSW5mbzoKKyAqIEBpbnB1dDogIGFuIHhtbFBhcnNlcklucHV0UHRyIGlucHV0CisgKiAKKyAqIERpc3BsYXlzIHRoZSBhc3NvY2lhdGVkIGZpbGUgYW5kIGxpbmUgaW5mb3JtYXRpb25zIGZvciB0aGUgY3VycmVudCBpbnB1dAorICovCisKK3ZvaWQKK3htbFBhcnNlclByaW50RmlsZUluZm8oeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQpIHsKKyAgICBpZiAoaW5wdXQgIT0gTlVMTCkgeworCWlmIChpbnB1dC0+ZmlsZW5hbWUpCisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIiVzOiVkOiAiLCBpbnB1dC0+ZmlsZW5hbWUsCisJCSAgICBpbnB1dC0+bGluZSk7CisJZWxzZQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJFbnRpdHk6IGxpbmUgJWQ6ICIsIGlucHV0LT5saW5lKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDoKKyAqIEBpbnB1dDogIGFuIHhtbFBhcnNlcklucHV0UHRyIGlucHV0CisgKiAKKyAqIERpc3BsYXlzIGN1cnJlbnQgY29udGV4dCB3aXRoaW4gdGhlIGlucHV0IGNvbnRlbnQgZm9yIGVycm9yIHRyYWNraW5nCisgKi8KKworc3RhdGljIHZvaWQKK3htbFBhcnNlclByaW50RmlsZUNvbnRleHRJbnRlcm5hbCh4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCAsIAorCQl4bWxHZW5lcmljRXJyb3JGdW5jIGNoYW5uZWwsIHZvaWQgKmRhdGEgKSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyLCAqYmFzZTsKKyAgICB1bnNpZ25lZCBpbnQgbiwgY29sOwkvKiBHQ0Mgd2FybnMgaWYgc2lnbmVkLCBiZWNhdXNlIGNvbXBhcmVkIHdpdGggc2l6ZW9mKCkgKi8KKyAgICB4bWxDaGFyICBjb250ZW50WzgxXTsgLyogc3BhY2UgZm9yIDgwIGNoYXJzICsgbGluZSB0ZXJtaW5hdG9yICovCisgICAgeG1sQ2hhciAqY3RudDsKKworICAgIGlmIChpbnB1dCA9PSBOVUxMKSByZXR1cm47CisgICAgY3VyID0gaW5wdXQtPmN1cjsKKyAgICBiYXNlID0gaW5wdXQtPmJhc2U7CisgICAgLyogc2tpcCBiYWNrd2FyZHMgb3ZlciBhbnkgZW5kLW9mLWxpbmVzICovCisgICAgd2hpbGUgKChjdXIgPiBiYXNlKSAmJiAoKCooY3VyKSA9PSAnXG4nKSB8fCAoKihjdXIpID09ICdccicpKSkgeworCWN1ci0tOworICAgIH0KKyAgICBuID0gMDsKKyAgICAvKiBzZWFyY2ggYmFja3dhcmRzIGZvciBiZWdpbm5pbmctb2YtbGluZSAodG8gbWF4IGJ1ZmYgc2l6ZSkgKi8KKyAgICB3aGlsZSAoKG4rKyA8IChzaXplb2YoY29udGVudCktMSkpICYmIChjdXIgPiBiYXNlKSAmJiAKKyAgICAJICAgKCooY3VyKSAhPSAnXG4nKSAmJiAoKihjdXIpICE9ICdccicpKQorICAgICAgICBjdXItLTsKKyAgICBpZiAoKCooY3VyKSA9PSAnXG4nKSB8fCAoKihjdXIpID09ICdccicpKSBjdXIrKzsKKyAgICAvKiBjYWxjdWxhdGUgdGhlIGVycm9yIHBvc2l0aW9uIGluIHRlcm1zIG9mIHRoZSBjdXJyZW50IHBvc2l0aW9uICovCisgICAgY29sID0gaW5wdXQtPmN1ciAtIGN1cjsKKyAgICAvKiBzZWFyY2ggZm9yd2FyZCBmb3IgZW5kLW9mLWxpbmUgKHRvIG1heCBidWZmIHNpemUpICovCisgICAgbiA9IDA7CisgICAgY3RudCA9IGNvbnRlbnQ7CisgICAgLyogY29weSBzZWxlY3RlZCB0ZXh0IHRvIG91ciBidWZmZXIgKi8KKyAgICB3aGlsZSAoKCpjdXIgIT0gMCkgJiYgKCooY3VyKSAhPSAnXG4nKSAmJiAKKyAgICAJICAgKCooY3VyKSAhPSAnXHInKSAmJiAobiA8IHNpemVvZihjb250ZW50KS0xKSkgeworCQkqY3RudCsrID0gKmN1cisrOworCW4rKzsKKyAgICB9CisgICAgKmN0bnQgPSAwOworICAgIC8qIHByaW50IG91dCB0aGUgc2VsZWN0ZWQgdGV4dCAqLworICAgIGNoYW5uZWwoZGF0YSAsIiVzXG4iLCBjb250ZW50KTsKKyAgICAvKiBjcmVhdGUgYmxhbmsgbGluZSB3aXRoIHByb2JsZW0gcG9pbnRlciAqLworICAgIG4gPSAwOworICAgIGN0bnQgPSBjb250ZW50OworICAgIC8qIChsZWF2ZSBidWZmZXIgc3BhY2UgZm9yIHBvaW50ZXIgKyBsaW5lIHRlcm1pbmF0b3IpICovCisgICAgd2hpbGUgKChuPGNvbCkgJiYgKG4rKyA8IHNpemVvZihjb250ZW50KS0yKSAmJiAoKmN0bnQgIT0gMCkpIHsKKwlpZiAoKihjdG50KSAhPSAnXHQnKQorCSAgICAqKGN0bnQpID0gJyAnOworCWN0bnQrKzsKKyAgICB9CisgICAgKmN0bnQrKyA9ICdeJzsKKyAgICAqY3RudCA9IDA7CisgICAgY2hhbm5lbChkYXRhICwiJXNcbiIsIGNvbnRlbnQpOworfQorCisvKioKKyAqIHhtbFBhcnNlclByaW50RmlsZUNvbnRleHQ6CisgKiBAaW5wdXQ6ICBhbiB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dAorICogCisgKiBEaXNwbGF5cyBjdXJyZW50IGNvbnRleHQgd2l0aGluIHRoZSBpbnB1dCBjb250ZW50IGZvciBlcnJvciB0cmFja2luZworICovCit2b2lkCit4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0KHhtbFBhcnNlcklucHV0UHRyIGlucHV0KSB7CisgICB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0SW50ZXJuYWwoaW5wdXQsIHhtbEdlbmVyaWNFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3JDb250ZXh0KTsKK30KKworLyoqCisgKiB4bWxSZXBvcnRFcnJvcjoKKyAqIEBlcnI6IHRoZSBlcnJvcgorICogQGN0eDogdGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqIEBzdHI6IHRoZSBmb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZQorICoKKyAqIFJlcG9ydCBhbiBlcnJvIHdpdGggaXRzIGNvbnRleHQsIHJlcGxhY2UgdGhlIDQgb2xkIGVycm9yL3dhcm5pbmcKKyAqIHJvdXRpbmVzLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVwb3J0RXJyb3IoeG1sRXJyb3JQdHIgZXJyLCB4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKnN0ciwKKyAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCwgdm9pZCAqZGF0YSkKK3sKKyAgICBjaGFyICpmaWxlID0gTlVMTDsKKyAgICBpbnQgbGluZSA9IDA7CisgICAgaW50IGNvZGUgPSAtMTsKKyAgICBpbnQgZG9tYWluOworICAgIGNvbnN0IHhtbENoYXIgKm5hbWUgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICB4bWxFcnJvckxldmVsIGxldmVsOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gTlVMTDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBjdXIgPSBOVUxMOworCisgICAgaWYgKGVyciA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY2hhbm5lbCA9PSBOVUxMKSB7CisJY2hhbm5lbCA9IHhtbEdlbmVyaWNFcnJvcjsKKwlkYXRhID0geG1sR2VuZXJpY0Vycm9yQ29udGV4dDsKKyAgICB9CisgICAgZmlsZSA9IGVyci0+ZmlsZTsKKyAgICBsaW5lID0gZXJyLT5saW5lOworICAgIGNvZGUgPSBlcnItPmNvZGU7CisgICAgZG9tYWluID0gZXJyLT5kb21haW47CisgICAgbGV2ZWwgPSBlcnItPmxldmVsOworICAgIG5vZGUgPSBlcnItPm5vZGU7CisKKyAgICBpZiAoY29kZSA9PSBYTUxfRVJSX09LKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoKG5vZGUgIT0gTlVMTCkgJiYgKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkpCisgICAgICAgIG5hbWUgPSBub2RlLT5uYW1lOworCisgICAgLyoKKyAgICAgKiBNYWludGFpbiB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBsZWdhY3kgZXJyb3IgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGlucHV0ID0gY3R4dC0+aW5wdXQ7CisgICAgICAgIGlmICgoaW5wdXQgIT0gTlVMTCkgJiYgKGlucHV0LT5maWxlbmFtZSA9PSBOVUxMKSAmJgorICAgICAgICAgICAgKGN0eHQtPmlucHV0TnIgPiAxKSkgeworICAgICAgICAgICAgY3VyID0gaW5wdXQ7CisgICAgICAgICAgICBpbnB1dCA9IGN0eHQtPmlucHV0VGFiW2N0eHQtPmlucHV0TnIgLSAyXTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5wdXQgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKGlucHV0LT5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICBjaGFubmVsKGRhdGEsICIlczolZDogIiwgaW5wdXQtPmZpbGVuYW1lLCBpbnB1dC0+bGluZSk7CisgICAgICAgICAgICBlbHNlIGlmICgobGluZSAhPSAwKSAmJiAoZG9tYWluID09IFhNTF9GUk9NX1BBUlNFUikpCisgICAgICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiRW50aXR5OiBsaW5lICVkOiAiLCBpbnB1dC0+bGluZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZmlsZSAhPSBOVUxMKQorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiJXM6JWQ6ICIsIGZpbGUsIGxpbmUpOworICAgICAgICBlbHNlIGlmICgobGluZSAhPSAwKSAmJiAoZG9tYWluID09IFhNTF9GUk9NX1BBUlNFUikpCisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJFbnRpdHk6IGxpbmUgJWQ6ICIsIGxpbmUpOworICAgIH0KKyAgICBpZiAobmFtZSAhPSBOVUxMKSB7CisgICAgICAgIGNoYW5uZWwoZGF0YSwgImVsZW1lbnQgJXM6ICIsIG5hbWUpOworICAgIH0KKyAgICBzd2l0Y2ggKGRvbWFpbikgeworICAgICAgICBjYXNlIFhNTF9GUk9NX1BBUlNFUjoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgInBhcnNlciAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX05BTUVTUEFDRToKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIm5hbWVzcGFjZSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0RURDoKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9WQUxJRDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgInZhbGlkaXR5ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fSFRNTDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIkhUTUwgcGFyc2VyICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fTUVNT1JZOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAibWVtb3J5ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fT1VUUFVUOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAib3V0cHV0ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fSU86CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJJL08gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9YSU5DTFVERToKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIlhJbmNsdWRlICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fWFBBVEg6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJYUGF0aCAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1hQT0lOVEVSOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAicGFyc2VyICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fUkVHRVhQOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAicmVnZXhwICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fTU9EVUxFOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAibW9kdWxlICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fU0NIRU1BU1Y6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJTY2hlbWFzIHZhbGlkaXR5ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fU0NIRU1BU1A6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJTY2hlbWFzIHBhcnNlciAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1JFTEFYTkdQOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiUmVsYXgtTkcgcGFyc2VyICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fUkVMQVhOR1Y6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJSZWxheC1ORyB2YWxpZGl0eSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0NBVEFMT0c6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJDYXRhbG9nICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fQzE0TjoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIkMxNE4gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9YU0xUOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiWFNMVCAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0kxOE46CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJlbmNvZGluZyAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICAgICAgY2FzZSBYTUxfRVJSX05PTkU6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICI6ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9XQVJOSU5HOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAid2FybmluZyA6ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9FUlJPUjoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgImVycm9yIDogIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0ZBVEFMOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiZXJyb3IgOiAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoc3RyICE9IE5VTEwpIHsKKyAgICAgICAgaW50IGxlbjsKKwlsZW4gPSB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKilzdHIpOworCWlmICgobGVuID4gMCkgJiYgKHN0cltsZW4gLSAxXSAhPSAnXG4nKSkKKwkgICAgY2hhbm5lbChkYXRhLCAiJXNcbiIsIHN0cik7CisJZWxzZQorCSAgICBjaGFubmVsKGRhdGEsICIlcyIsIHN0cik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2hhbm5lbChkYXRhLCAiJXNcbiIsICJvdXQgb2YgbWVtb3J5IGVycm9yIik7CisgICAgfQorCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0SW50ZXJuYWwoaW5wdXQsIGNoYW5uZWwsIGRhdGEpOworICAgICAgICBpZiAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChjdXItPmZpbGVuYW1lKQorICAgICAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIiVzOiVkOiBcbiIsIGN1ci0+ZmlsZW5hbWUsIGN1ci0+bGluZSk7CisgICAgICAgICAgICBlbHNlIGlmICgobGluZSAhPSAwKSAmJiAoZG9tYWluID09IFhNTF9GUk9NX1BBUlNFUikpCisgICAgICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiRW50aXR5OiBsaW5lICVkOiBcbiIsIGN1ci0+bGluZSk7CisgICAgICAgICAgICB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0SW50ZXJuYWwoY3VyLCBjaGFubmVsLCBkYXRhKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoKGRvbWFpbiA9PSBYTUxfRlJPTV9YUEFUSCkgJiYgKGVyci0+c3RyMSAhPSBOVUxMKSAmJgorICAgICAgICAoZXJyLT5pbnQxIDwgMTAwKSAmJgorCShlcnItPmludDEgPCB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKillcnItPnN0cjEpKSkgeworCXhtbENoYXIgYnVmWzE1MF07CisJaW50IGk7CisKKwljaGFubmVsKGRhdGEsICIlc1xuIiwgZXJyLT5zdHIxKTsKKwlmb3IgKGk9MDtpIDwgZXJyLT5pbnQxO2krKykKKwkgICAgIGJ1ZltpXSA9ICcgJzsKKwlidWZbaSsrXSA9ICdeJzsKKwlidWZbaV0gPSAwOworCWNoYW5uZWwoZGF0YSwgIiVzXG4iLCBidWYpOworICAgIH0KK30KKworLyoqCisgKiBfX3htbFJhaXNlRXJyb3I6CisgKiBAc2NoYW5uZWw6IHRoZSBzdHJ1Y3R1cmVkIGNhbGxiYWNrIGNoYW5uZWwKKyAqIEBjaGFubmVsOiB0aGUgb2xkIGNhbGxiYWNrIGNoYW5uZWwKKyAqIEBkYXRhOiB0aGUgY2FsbGJhY2sgZGF0YQorICogQGN0eDogdGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqIEBjdHg6IHRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMCisgKiBAZG9tYWluOiB0aGUgZG9tYWluIGZvciB0aGUgZXJyb3IKKyAqIEBjb2RlOiB0aGUgY29kZSBmb3IgdGhlIGVycm9yCisgKiBAbGV2ZWw6IHRoZSB4bWxFcnJvckxldmVsIGZvciB0aGUgZXJyb3IKKyAqIEBmaWxlOiB0aGUgZmlsZSBzb3VyY2Ugb2YgdGhlIGVycm9yIChvciBOVUxMKQorICogQGxpbmU6IHRoZSBsaW5lIG9mIHRoZSBlcnJvciBvciAwIGlmIE4vQQorICogQHN0cjE6IGV4dHJhIHN0cmluZyBpbmZvCisgKiBAc3RyMjogZXh0cmEgc3RyaW5nIGluZm8KKyAqIEBzdHIzOiBleHRyYSBzdHJpbmcgaW5mbworICogQGludDE6IGV4dHJhIGludCBpbmZvCisgKiBAY29sOiBjb2x1bW4gbnVtYmVyIG9mIHRoZSBlcnJvciBvciAwIGlmIE4vQSAKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIFVwZGF0ZSB0aGUgYXBwcm9wcmlhdGUgZ2xvYmFsIG9yIGNvbnRleHR1YWwgZXJyb3Igc3RydWN0dXJlLAorICogdGhlbiBmb3J3YXJkIHRoZSBlcnJvciBtZXNzYWdlIGRvd24gdGhlIHBhcnNlciBvciBnZW5lcmljCisgKiBlcnJvciBjYWxsYmFjayBoYW5kbGVyCisgKi8KK3ZvaWQgWE1MQ0RFQ0wKK19feG1sUmFpc2VFcnJvcih4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNjaGFubmVsLAorICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3JGdW5jIGNoYW5uZWwsIHZvaWQgKmRhdGEsIHZvaWQgKmN0eCwKKyAgICAgICAgICAgICAgdm9pZCAqbm9kLCBpbnQgZG9tYWluLCBpbnQgY29kZSwgeG1sRXJyb3JMZXZlbCBsZXZlbCwKKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKnN0cjEsCisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0cjIsIGNvbnN0IGNoYXIgKnN0cjMsIGludCBpbnQxLCBpbnQgY29sLAorCSAgICAgIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBub2RlID0gKHhtbE5vZGVQdHIpIG5vZDsKKyAgICBjaGFyICpzdHIgPSBOVUxMOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gTlVMTDsKKyAgICB4bWxFcnJvclB0ciB0byA9ICZ4bWxMYXN0RXJyb3I7CisgICAgeG1sTm9kZVB0ciBiYXNlcHRyID0gTlVMTDsKKworICAgIGlmICgoeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPT0gMCkgJiYgKGxldmVsID09IFhNTF9FUlJfV0FSTklORykpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKGRvbWFpbiA9PSBYTUxfRlJPTV9QQVJTRVIpIHx8IChkb21haW4gPT0gWE1MX0ZST01fSFRNTCkgfHwKKyAgICAgICAgKGRvbWFpbiA9PSBYTUxfRlJPTV9EVEQpIHx8IChkb21haW4gPT0gWE1MX0ZST01fTkFNRVNQQUNFKSB8fAorCShkb21haW4gPT0gWE1MX0ZST01fSU8pIHx8IChkb21haW4gPT0gWE1MX0ZST01fVkFMSUQpKSB7CisJY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisJaWYgKChzY2hhbm5lbCA9PSBOVUxMKSAmJiAoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJICAgIChjdHh0LT5zYXgtPmluaXRpYWxpemVkID09IFhNTF9TQVgyX01BR0lDKSkKKwkgICAgc2NoYW5uZWwgPSBjdHh0LT5zYXgtPnNlcnJvcjsKKyAgICB9CisgICAgLyoKKyAgICAgKiBDaGVjayBpZiBzdHJ1Y3R1cmVkIGVycm9yIGhhbmRsZXIgc2V0CisgICAgICovCisgICAgaWYgKHNjaGFubmVsID09IE5VTEwpIHsKKwlzY2hhbm5lbCA9IHhtbFN0cnVjdHVyZWRFcnJvcjsKKwkvKgorCSAqIGlmIHVzZXIgaGFzIGRlZmluZWQgaGFuZGxlciwgY2hhbmdlIGRhdGEgcHRyIHRvIHVzZXIncyBjaG9pY2UKKwkgKi8KKwlpZiAoc2NoYW5uZWwgIT0gTlVMTCkKKwkgICAgZGF0YSA9IHhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQ7CisgICAgfQorICAgIGlmICgoZG9tYWluID09IFhNTF9GUk9NX1ZBTElEKSAmJgorICAgICAgICAoKGNoYW5uZWwgPT0geG1sUGFyc2VyVmFsaWRpdHlFcnJvcikgfHwKKwkgKGNoYW5uZWwgPT0geG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nKSkpIHsKKwljdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKwlpZiAoKHNjaGFubmVsID09IE5VTEwpICYmIChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5zYXggIT0gTlVMTCkgJiYKKwkgICAgKGN0eHQtPnNheC0+aW5pdGlhbGl6ZWQgPT0gWE1MX1NBWDJfTUFHSUMpKQorCSAgICBzY2hhbm5lbCA9IGN0eHQtPnNheC0+c2Vycm9yOworICAgIH0KKyAgICBpZiAoY29kZSA9PSBYTUxfRVJSX09LKQorICAgICAgICByZXR1cm47CisgICAgLyoKKyAgICAgKiBGb3JtYXR0aW5nIHRoZSBtZXNzYWdlCisgICAgICovCisgICAgaWYgKG1zZyA9PSBOVUxMKSB7CisgICAgICAgIHN0ciA9IChjaGFyICopIHhtbFN0cmR1cChCQURfQ0FTVCAiTm8gZXJyb3IgbWVzc2FnZSBwcm92aWRlZCIpOworICAgIH0gZWxzZSB7CisgICAgICAgIFhNTF9HRVRfVkFSX1NUUihtc2csIHN0cik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBzcGVjaWZpYyBwcm9jZXNzaW5nIGlmIGEgcGFyc2VyIGNvbnRleHQgaXMgcHJvdmlkZWQKKyAgICAgKi8KKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChmaWxlID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlucHV0ID0gY3R4dC0+aW5wdXQ7CisgICAgICAgICAgICBpZiAoKGlucHV0ICE9IE5VTEwpICYmIChpbnB1dC0+ZmlsZW5hbWUgPT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAoY3R4dC0+aW5wdXROciA+IDEpKSB7CisgICAgICAgICAgICAgICAgaW5wdXQgPSBjdHh0LT5pbnB1dFRhYltjdHh0LT5pbnB1dE5yIC0gMl07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5wdXQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGZpbGUgPSBpbnB1dC0+ZmlsZW5hbWU7CisgICAgICAgICAgICAgICAgbGluZSA9IGlucHV0LT5saW5lOworICAgICAgICAgICAgICAgIGNvbCA9IGlucHV0LT5jb2w7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdG8gPSAmY3R4dC0+bGFzdEVycm9yOworICAgIH0gZWxzZSBpZiAoKG5vZGUgIT0gTlVMTCkgJiYgKGZpbGUgPT0gTlVMTCkpIHsKKwlpbnQgaTsKKworCWlmICgobm9kZS0+ZG9jICE9IE5VTEwpICYmIChub2RlLT5kb2MtPlVSTCAhPSBOVUxMKSkgeworCSAgICBiYXNlcHRyID0gbm9kZTsKKy8qCSAgICBmaWxlID0gKGNvbnN0IGNoYXIgKikgbm9kZS0+ZG9jLT5VUkw7ICovCisJfQorCWZvciAoaSA9IDA7CisJICAgICAoKGkgPCAxMCkgJiYgKG5vZGUgIT0gTlVMTCkgJiYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpOworCSAgICAgaSsrKQorCSAgICAgbm9kZSA9IG5vZGUtPnBhcmVudDsKKyAgICAgICAgaWYgKChiYXNlcHRyID09IE5VTEwpICYmIChub2RlICE9IE5VTEwpICYmCisJICAgIChub2RlLT5kb2MgIT0gTlVMTCkgJiYgKG5vZGUtPmRvYy0+VVJMICE9IE5VTEwpKQorCSAgICBiYXNlcHRyID0gbm9kZTsKKworCWlmICgobm9kZSAhPSBOVUxMKSAmJiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSkKKwkgICAgbGluZSA9IG5vZGUtPmxpbmU7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTYXZlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IKKyAgICAgKi8KKyAgICB4bWxSZXNldEVycm9yKHRvKTsKKyAgICB0by0+ZG9tYWluID0gZG9tYWluOworICAgIHRvLT5jb2RlID0gY29kZTsKKyAgICB0by0+bWVzc2FnZSA9IHN0cjsKKyAgICB0by0+bGV2ZWwgPSBsZXZlbDsKKyAgICBpZiAoZmlsZSAhPSBOVUxMKQorICAgICAgICB0by0+ZmlsZSA9IChjaGFyICopIHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBmaWxlKTsKKyAgICBlbHNlIGlmIChiYXNlcHRyICE9IE5VTEwpIHsKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorCS8qCisJICogV2UgY2hlY2sgaWYgdGhlIGVycm9yIGlzIHdpdGhpbiBhbiBYSW5jbHVkZSBzZWN0aW9uIGFuZCwKKwkgKiBpZiBzbywgYXR0ZW1wdCB0byBwcmludCBvdXQgdGhlIGhyZWYgb2YgdGhlIFhJbmNsdWRlIGluc3RlYWQKKwkgKiBvZiB0aGUgdXN1YWwgImJhc2UiIChkb2MtPlVSTCkgZm9yIHRoZSBub2RlIChidWcgMTUyNjIzKS4KKwkgKi8KKyAgICAgICAgeG1sTm9kZVB0ciBwcmV2ID0gYmFzZXB0cjsKKwlpbnQgaW5jbGNvdW50ID0gMDsKKwl3aGlsZSAocHJldiAhPSBOVUxMKSB7CisJICAgIGlmIChwcmV2LT5wcmV2ID09IE5VTEwpCisJICAgICAgICBwcmV2ID0gcHJldi0+cGFyZW50OworCSAgICBlbHNlIHsKKwkgICAgICAgIHByZXYgPSBwcmV2LT5wcmV2OworCQlpZiAocHJldi0+dHlwZSA9PSBYTUxfWElOQ0xVREVfU1RBUlQpIHsKKwkJICAgIGlmICgtLWluY2xjb3VudCA8IDApCisJCSAgICAgICAgYnJlYWs7CisJCX0gZWxzZSBpZiAocHJldi0+dHlwZSA9PSBYTUxfWElOQ0xVREVfRU5EKQorCQkgICAgaW5jbGNvdW50Kys7CisJICAgIH0KKwl9CisJaWYgKHByZXYgIT0gTlVMTCkgeworCSAgICBpZiAocHJldi0+dHlwZSA9PSBYTUxfWElOQ0xVREVfU1RBUlQpIHsKKwkJcHJldi0+dHlwZSA9IFhNTF9FTEVNRU5UX05PREU7CisJCXRvLT5maWxlID0gKGNoYXIgKikgeG1sR2V0UHJvcChwcmV2LCBCQURfQ0FTVCAiaHJlZiIpOworCQlwcmV2LT50eXBlID0gWE1MX1hJTkNMVURFX1NUQVJUOworCSAgICB9IGVsc2UgeworCQl0by0+ZmlsZSA9IChjaGFyICopIHhtbEdldFByb3AocHJldiwgQkFEX0NBU1QgImhyZWYiKTsKKwkgICAgfQorCX0gZWxzZQorI2VuZGlmCisJICAgIHRvLT5maWxlID0gKGNoYXIgKikgeG1sU3RyZHVwKGJhc2VwdHItPmRvYy0+VVJMKTsKKwlpZiAoKHRvLT5maWxlID09IE5VTEwpICYmIChub2RlICE9IE5VTEwpICYmIChub2RlLT5kb2MgIT0gTlVMTCkpIHsKKwkgICAgdG8tPmZpbGUgPSAoY2hhciAqKSB4bWxTdHJkdXAobm9kZS0+ZG9jLT5VUkwpOworCX0KKyAgICB9CisgICAgdG8tPmxpbmUgPSBsaW5lOworICAgIGlmIChzdHIxICE9IE5VTEwpCisgICAgICAgIHRvLT5zdHIxID0gKGNoYXIgKikgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHN0cjEpOworICAgIGlmIChzdHIyICE9IE5VTEwpCisgICAgICAgIHRvLT5zdHIyID0gKGNoYXIgKikgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHN0cjIpOworICAgIGlmIChzdHIzICE9IE5VTEwpCisgICAgICAgIHRvLT5zdHIzID0gKGNoYXIgKikgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHN0cjMpOworICAgIHRvLT5pbnQxID0gaW50MTsKKyAgICB0by0+aW50MiA9IGNvbDsKKyAgICB0by0+bm9kZSA9IG5vZGU7CisgICAgdG8tPmN0eHQgPSBjdHg7CisKKyAgICBpZiAodG8gIT0gJnhtbExhc3RFcnJvcikKKyAgICAgICAgeG1sQ29weUVycm9yKHRvLCZ4bWxMYXN0RXJyb3IpOworCisgICAgLyoKKyAgICAgKiBGaW5kIHRoZSBjYWxsYmFjayBjaGFubmVsIGlmIGNoYW5uZWwgcGFyYW0gaXMgTlVMTAorICAgICAqLworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY2hhbm5lbCA9PSBOVUxMKSAmJgorICAgICAgICAoeG1sU3RydWN0dXJlZEVycm9yID09IE5VTEwpICYmIChjdHh0LT5zYXggIT0gTlVMTCkpIHsKKyAgICAgICAgaWYgKGxldmVsID09IFhNTF9FUlJfV0FSTklORykKKwkgICAgY2hhbm5lbCA9IGN0eHQtPnNheC0+d2FybmluZzsKKyAgICAgICAgZWxzZQorCSAgICBjaGFubmVsID0gY3R4dC0+c2F4LT5lcnJvcjsKKwlkYXRhID0gY3R4dC0+dXNlckRhdGE7CisgICAgfSBlbHNlIGlmIChjaGFubmVsID09IE5VTEwpIHsKKyAgICAgICAgaWYgKChzY2hhbm5lbCA9PSBOVUxMKSAmJiAoeG1sU3RydWN0dXJlZEVycm9yICE9IE5VTEwpKSB7CisJICAgIHNjaGFubmVsID0geG1sU3RydWN0dXJlZEVycm9yOworCSAgICBkYXRhID0geG1sU3RydWN0dXJlZEVycm9yQ29udGV4dDsKKwl9IGVsc2UgeworCSAgICBjaGFubmVsID0geG1sR2VuZXJpY0Vycm9yOworCSAgICBpZiAoIWRhdGEpIHsKKwkJZGF0YSA9IHhtbEdlbmVyaWNFcnJvckNvbnRleHQ7CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmIChzY2hhbm5lbCAhPSBOVUxMKSB7CisgICAgICAgIHNjaGFubmVsKGRhdGEsIHRvKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjaGFubmVsID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgoY2hhbm5lbCA9PSB4bWxQYXJzZXJFcnJvcikgfHwKKyAgICAgICAgKGNoYW5uZWwgPT0geG1sUGFyc2VyV2FybmluZykgfHwKKwkoY2hhbm5lbCA9PSB4bWxQYXJzZXJWYWxpZGl0eUVycm9yKSB8fAorCShjaGFubmVsID09IHhtbFBhcnNlclZhbGlkaXR5V2FybmluZykpCisJeG1sUmVwb3J0RXJyb3IodG8sIGN0eHQsIHN0ciwgTlVMTCwgTlVMTCk7CisgICAgZWxzZSBpZiAoKGNoYW5uZWwgPT0gKHhtbEdlbmVyaWNFcnJvckZ1bmMpIGZwcmludGYpIHx8CisgICAgICAgICAgICAgKGNoYW5uZWwgPT0geG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMpKQorCXhtbFJlcG9ydEVycm9yKHRvLCBjdHh0LCBzdHIsIGNoYW5uZWwsIGRhdGEpOworICAgIGVsc2UKKwljaGFubmVsKGRhdGEsICIlcyIsIHN0cik7Cit9CisKKy8qKgorICogX194bWxTaW1wbGVFcnJvcjoKKyAqIEBkb21haW46IHdoZXJlIHRoZSBlcnJvciBjb21lcyBmcm9tCisgKiBAY29kZTogdGhlIGVycm9yIGNvZGUKKyAqIEBub2RlOiB0aGUgY29udGV4dCBub2RlCisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBjb25kaXRpb24KKyAqLwordm9pZAorX194bWxTaW1wbGVFcnJvcihpbnQgZG9tYWluLCBpbnQgY29kZSwgeG1sTm9kZVB0ciBub2RlLAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IGNoYXIgKmV4dHJhKQoreworCisgICAgaWYgKGNvZGUgPT0gWE1MX0VSUl9OT19NRU1PUlkpIHsKKwlpZiAoZXh0cmEpCisJICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBub2RlLCBkb21haW4sCisJCQkgICAgWE1MX0VSUl9OT19NRU1PUlksIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsIGV4dHJhLAorCQkJICAgIE5VTEwsIE5VTEwsIDAsIDAsCisJCQkgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7CisJZWxzZQorCSAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgbm9kZSwgZG9tYWluLAorCQkJICAgIFhNTF9FUlJfTk9fTUVNT1JZLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBOVUxMLAorCQkJICAgIE5VTEwsIE5VTEwsIDAsIDAsICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOworICAgIH0gZWxzZSB7CisJX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIG5vZGUsIGRvbWFpbiwKKwkJCWNvZGUsIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsIGV4dHJhLAorCQkJTlVMTCwgTlVMTCwgMCwgMCwgbXNnLCBleHRyYSk7CisgICAgfQorfQorLyoqCisgKiB4bWxQYXJzZXJFcnJvcjoKKyAqIEBjdHg6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICogCisgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYW4gZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLwordm9pZCBYTUxDREVDTAoreG1sUGFyc2VyRXJyb3Iodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gTlVMTDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBjdXIgPSBOVUxMOworICAgIGNoYXIgKiBzdHI7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisJaW5wdXQgPSBjdHh0LT5pbnB1dDsKKwlpZiAoKGlucHV0ICE9IE5VTEwpICYmIChpbnB1dC0+ZmlsZW5hbWUgPT0gTlVMTCkgJiYKKwkgICAgKGN0eHQtPmlucHV0TnIgPiAxKSkgeworCSAgICBjdXIgPSBpbnB1dDsKKwkgICAgaW5wdXQgPSBjdHh0LT5pbnB1dFRhYltjdHh0LT5pbnB1dE5yIC0gMl07CisJfQorCXhtbFBhcnNlclByaW50RmlsZUluZm8oaW5wdXQpOworICAgIH0KKworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiZXJyb3I6ICIpOworICAgIFhNTF9HRVRfVkFSX1NUUihtc2csIHN0cik7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIlcyIsIHN0cik7CisgICAgaWYgKHN0ciAhPSBOVUxMKQorCXhtbEZyZWUoc3RyKTsKKworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwl4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0KGlucHV0KTsKKwlpZiAoY3VyICE9IE5VTEwpIHsKKwkgICAgeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyhjdXIpOworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlxuIik7CisJICAgIHhtbFBhcnNlclByaW50RmlsZUNvbnRleHQoY3VyKTsKKwl9CisgICAgfQorfQorCisvKioKKyAqIHhtbFBhcnNlcldhcm5pbmc6CisgKiBAY3R4OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdAorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqIAorICogRGlzcGxheSBhbmQgZm9ybWF0IGEgd2FybmluZyBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwgcG9zaXRpb24gYW5kCisgKiBleHRyYSBwYXJhbWV0ZXJzLgorICovCit2b2lkIFhNTENERUNMCit4bWxQYXJzZXJXYXJuaW5nKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCA9IE5VTEw7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgY3VyID0gTlVMTDsKKyAgICBjaGFyICogc3RyOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCWlucHV0ID0gY3R4dC0+aW5wdXQ7CisJaWYgKChpbnB1dCAhPSBOVUxMKSAmJiAoaW5wdXQtPmZpbGVuYW1lID09IE5VTEwpICYmCisJICAgIChjdHh0LT5pbnB1dE5yID4gMSkpIHsKKwkgICAgY3VyID0gaW5wdXQ7CisJICAgIGlucHV0ID0gY3R4dC0+aW5wdXRUYWJbY3R4dC0+aW5wdXROciAtIDJdOworCX0KKwl4bWxQYXJzZXJQcmludEZpbGVJbmZvKGlucHV0KTsKKyAgICB9CisgICAgICAgIAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAid2FybmluZzogIik7CisgICAgWE1MX0dFVF9WQVJfU1RSKG1zZywgc3RyKTsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgc3RyKTsKKyAgICBpZiAoc3RyICE9IE5VTEwpCisJeG1sRnJlZShzdHIpOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCXhtbFBhcnNlclByaW50RmlsZUNvbnRleHQoaW5wdXQpOworCWlmIChjdXIgIT0gTlVMTCkgeworCSAgICB4bWxQYXJzZXJQcmludEZpbGVJbmZvKGN1cik7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiXG4iKTsKKwkgICAgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dChjdXIpOworCX0KKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCUhhbmRsaW5nIG9mIHZhbGlkYXRpb24gZXJyb3JzCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxQYXJzZXJWYWxpZGl0eUVycm9yOgorICogQGN0eDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG1zZzogIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKiAKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhbiB2YWxpZGl0eSBlcnJvciBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwKKyAqIGxpbmUsIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLgorICovCit2b2lkIFhNTENERUNMCit4bWxQYXJzZXJWYWxpZGl0eUVycm9yKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCA9IE5VTEw7CisgICAgY2hhciAqIHN0cjsKKyAgICBpbnQgbGVuID0geG1sU3RybGVuKChjb25zdCB4bWxDaGFyICopIG1zZyk7CisgICAgc3RhdGljIGludCBoYWRfaW5mbyA9IDA7CisKKyAgICBpZiAoKGxlbiA+IDEpICYmIChtc2dbbGVuIC0gMl0gIT0gJzonKSkgeworCWlmIChjdHh0ICE9IE5VTEwpIHsKKwkgICAgaW5wdXQgPSBjdHh0LT5pbnB1dDsKKwkgICAgaWYgKChpbnB1dC0+ZmlsZW5hbWUgPT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0TnIgPiAxKSkKKwkJaW5wdXQgPSBjdHh0LT5pbnB1dFRhYltjdHh0LT5pbnB1dE5yIC0gMl07CisJCQorCSAgICBpZiAoaGFkX2luZm8gPT0gMCkgeworCQl4bWxQYXJzZXJQcmludEZpbGVJbmZvKGlucHV0KTsKKwkgICAgfQorCX0KKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInZhbGlkaXR5IGVycm9yOiAiKTsKKwloYWRfaW5mbyA9IDA7CisgICAgfSBlbHNlIHsKKwloYWRfaW5mbyA9IDE7CisgICAgfQorCisgICAgWE1MX0dFVF9WQVJfU1RSKG1zZywgc3RyKTsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgc3RyKTsKKyAgICBpZiAoc3RyICE9IE5VTEwpCisJeG1sRnJlZShzdHIpOworCisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChpbnB1dCAhPSBOVUxMKSkgeworCXhtbFBhcnNlclByaW50RmlsZUNvbnRleHQoaW5wdXQpOworICAgIH0KK30KKworLyoqCisgKiB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc6CisgKiBAY3R4OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdAorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqIAorICogRGlzcGxheSBhbmQgZm9ybWF0IGEgdmFsaWRpdHkgd2FybmluZyBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwKKyAqIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLgorICovCit2b2lkIFhNTENERUNMCit4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmcodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gTlVMTDsKKyAgICBjaGFyICogc3RyOworICAgIGludCBsZW4gPSB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKikgbXNnKTsKKworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAobGVuICE9IDApICYmIChtc2dbbGVuIC0gMV0gIT0gJzonKSkgeworCWlucHV0ID0gY3R4dC0+aW5wdXQ7CisJaWYgKChpbnB1dC0+ZmlsZW5hbWUgPT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0TnIgPiAxKSkKKwkgICAgaW5wdXQgPSBjdHh0LT5pbnB1dFRhYltjdHh0LT5pbnB1dE5yIC0gMl07CisKKwl4bWxQYXJzZXJQcmludEZpbGVJbmZvKGlucHV0KTsKKyAgICB9CisgICAgICAgIAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAidmFsaWRpdHkgd2FybmluZzogIik7CisgICAgWE1MX0dFVF9WQVJfU1RSKG1zZywgc3RyKTsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgc3RyKTsKKyAgICBpZiAoc3RyICE9IE5VTEwpCisJeG1sRnJlZShzdHIpOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCXhtbFBhcnNlclByaW50RmlsZUNvbnRleHQoaW5wdXQpOworICAgIH0KK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJRXh0ZW5kZWQgRXJyb3IgSGFuZGxpbmcJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbEdldExhc3RFcnJvcjoKKyAqCisgKiBHZXQgdGhlIGxhc3QgZ2xvYmFsIGVycm9yIHJlZ2lzdGVyZWQuIFRoaXMgaXMgcGVyIHRocmVhZCBpZiBjb21waWxlZAorICogd2l0aCB0aHJlYWQgc3VwcG9ydC4KKyAqCisgKiBSZXR1cm5zIE5VTEwgaWYgbm8gZXJyb3Igb2NjdXJlZCBvciBhIHBvaW50ZXIgdG8gdGhlIGVycm9yCisgKi8KK3htbEVycm9yUHRyCit4bWxHZXRMYXN0RXJyb3Iodm9pZCkKK3sKKyAgICBpZiAoeG1sTGFzdEVycm9yLmNvZGUgPT0gWE1MX0VSUl9PSykKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICByZXR1cm4gKCZ4bWxMYXN0RXJyb3IpOworfQorCisvKioKKyAqIHhtbFJlc2V0RXJyb3I6CisgKiBAZXJyOiBwb2ludGVyIHRvIHRoZSBlcnJvci4KKyAqCisgKiBDbGVhbnVwIHRoZSBlcnJvci4KKyAqLwordm9pZAoreG1sUmVzZXRFcnJvcih4bWxFcnJvclB0ciBlcnIpCit7CisgICAgaWYgKGVyciA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGVyci0+Y29kZSA9PSBYTUxfRVJSX09LKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGVyci0+bWVzc2FnZSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGVyci0+bWVzc2FnZSk7CisgICAgaWYgKGVyci0+ZmlsZSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGVyci0+ZmlsZSk7CisgICAgaWYgKGVyci0+c3RyMSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGVyci0+c3RyMSk7CisgICAgaWYgKGVyci0+c3RyMiAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGVyci0+c3RyMik7CisgICAgaWYgKGVyci0+c3RyMyAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGVyci0+c3RyMyk7CisgICAgbWVtc2V0KGVyciwgMCwgc2l6ZW9mKHhtbEVycm9yKSk7CisgICAgZXJyLT5jb2RlID0gWE1MX0VSUl9PSzsKK30KKworLyoqCisgKiB4bWxSZXNldExhc3RFcnJvcjoKKyAqCisgKiBDbGVhbnVwIHRoZSBsYXN0IGdsb2JhbCBlcnJvciByZWdpc3RlcmVkLiBGb3IgcGFyc2luZyBlcnJvcgorICogdGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHdlbGwtZm9ybWVkbmVzcyByZXN1bHQuCisgKi8KK3ZvaWQKK3htbFJlc2V0TGFzdEVycm9yKHZvaWQpCit7CisgICAgaWYgKHhtbExhc3RFcnJvci5jb2RlID09IFhNTF9FUlJfT0spCisgICAgICAgIHJldHVybjsKKyAgICB4bWxSZXNldEVycm9yKCZ4bWxMYXN0RXJyb3IpOworfQorCisvKioKKyAqIHhtbEN0eHRHZXRMYXN0RXJyb3I6CisgKiBAY3R4OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogR2V0IHRoZSBsYXN0IHBhcnNpbmcgZXJyb3IgcmVnaXN0ZXJlZC4KKyAqCisgKiBSZXR1cm5zIE5VTEwgaWYgbm8gZXJyb3Igb2NjdXJlZCBvciBhIHBvaW50ZXIgdG8gdGhlIGVycm9yCisgKi8KK3htbEVycm9yUHRyCit4bWxDdHh0R2V0TGFzdEVycm9yKHZvaWQgKmN0eCkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoY3R4dC0+bGFzdEVycm9yLmNvZGUgPT0gWE1MX0VSUl9PSykKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICByZXR1cm4gKCZjdHh0LT5sYXN0RXJyb3IpOworfQorCisvKioKKyAqIHhtbEN0eHRSZXNldExhc3RFcnJvcjoKKyAqIEBjdHg6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBDbGVhbnVwIHRoZSBsYXN0IGdsb2JhbCBlcnJvciByZWdpc3RlcmVkLiBGb3IgcGFyc2luZyBlcnJvcgorICogdGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHdlbGwtZm9ybWVkbmVzcyByZXN1bHQuCisgKi8KK3ZvaWQKK3htbEN0eHRSZXNldExhc3RFcnJvcih2b2lkICpjdHgpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdHh0LT5lcnJObyA9IFhNTF9FUlJfT0s7CisgICAgaWYgKGN0eHQtPmxhc3RFcnJvci5jb2RlID09IFhNTF9FUlJfT0spCisgICAgICAgIHJldHVybjsKKyAgICB4bWxSZXNldEVycm9yKCZjdHh0LT5sYXN0RXJyb3IpOworfQorCisvKioKKyAqIHhtbENvcHlFcnJvcjoKKyAqIEBmcm9tOiAgYSBzb3VyY2UgZXJyb3IKKyAqIEB0bzogIGEgdGFyZ2V0IGVycm9yCisgKgorICogU2F2ZSB0aGUgb3JpZ2luYWwgZXJyb3IgdG8gdGhlIG5ldyBwbGFjZS4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbENvcHlFcnJvcih4bWxFcnJvclB0ciBmcm9tLCB4bWxFcnJvclB0ciB0bykgeworICAgIGNoYXIgKm1lc3NhZ2UsICpmaWxlLCAqc3RyMSwgKnN0cjIsICpzdHIzOworCisgICAgaWYgKChmcm9tID09IE5VTEwpIHx8ICh0byA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIG1lc3NhZ2UgPSAoY2hhciAqKSB4bWxTdHJkdXAoKHhtbENoYXIgKikgZnJvbS0+bWVzc2FnZSk7CisgICAgZmlsZSA9IChjaGFyICopIHhtbFN0cmR1cCAoKHhtbENoYXIgKikgZnJvbS0+ZmlsZSk7CisgICAgc3RyMSA9IChjaGFyICopIHhtbFN0cmR1cCAoKHhtbENoYXIgKikgZnJvbS0+c3RyMSk7CisgICAgc3RyMiA9IChjaGFyICopIHhtbFN0cmR1cCAoKHhtbENoYXIgKikgZnJvbS0+c3RyMik7CisgICAgc3RyMyA9IChjaGFyICopIHhtbFN0cmR1cCAoKHhtbENoYXIgKikgZnJvbS0+c3RyMyk7CisKKyAgICBpZiAodG8tPm1lc3NhZ2UgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZSh0by0+bWVzc2FnZSk7CisgICAgaWYgKHRvLT5maWxlICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUodG8tPmZpbGUpOworICAgIGlmICh0by0+c3RyMSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHRvLT5zdHIxKTsKKyAgICBpZiAodG8tPnN0cjIgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZSh0by0+c3RyMik7CisgICAgaWYgKHRvLT5zdHIzICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUodG8tPnN0cjMpOworICAgIHRvLT5kb21haW4gPSBmcm9tLT5kb21haW47CisgICAgdG8tPmNvZGUgPSBmcm9tLT5jb2RlOworICAgIHRvLT5sZXZlbCA9IGZyb20tPmxldmVsOworICAgIHRvLT5saW5lID0gZnJvbS0+bGluZTsKKyAgICB0by0+bm9kZSA9IGZyb20tPm5vZGU7CisgICAgdG8tPmludDEgPSBmcm9tLT5pbnQxOworICAgIHRvLT5pbnQyID0gZnJvbS0+aW50MjsKKyAgICB0by0+bm9kZSA9IGZyb20tPm5vZGU7CisgICAgdG8tPmN0eHQgPSBmcm9tLT5jdHh0OworICAgIHRvLT5tZXNzYWdlID0gbWVzc2FnZTsKKyAgICB0by0+ZmlsZSA9IGZpbGU7CisgICAgdG8tPnN0cjEgPSBzdHIxOworICAgIHRvLT5zdHIyID0gc3RyMjsKKyAgICB0by0+c3RyMyA9IHN0cjM7CisKKyAgICByZXR1cm4gMDsKK30KKworI2RlZmluZSBib3R0b21fZXJyb3IKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2V4YW1wbGUvTWFrZWZpbGUuYW0gYi9saWJ4bWwyLTIuNy43L2V4YW1wbGUvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWViNmE3NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvZXhhbXBsZS9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDEwIEBACitub2luc3RfUFJPR1JBTVMJPSBnam9icmVhZAorCitJTkNMVURFUyA9IC1JJCh0b3BfYnVpbGRkaXIpL2luY2x1ZGUgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLUlAc3JjZGlyQC9pbmNsdWRlIEBUSFJFQURfQ0ZMQUdTQCBAWl9DRkxBR1NACitERVBTID0gJCh0b3BfYnVpbGRkaXIpL2xpYnhtbDIubGEKK0xEQUREUyA9IEBTVEFUSUNfQklOQVJJRVNAICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhIEBUSFJFQURfTElCU0AgQFpfTElCU0AgJChJQ09OVl9MSUJTKSAtbG0gQFdJTjMyX0VYVFJBX0xJQkFEREAKKworZ2pvYnJlYWRfU09VUkNFUz1nam9icmVhZC5jCitnam9icmVhZF9MREZMQUdTPQorZ2pvYnJlYWRfREVQRU5ERU5DSUVTPSAkKERFUFMpCitnam9icmVhZF9MREFERD0gQFJETF9MSUJTQCAkKExEQUREUykKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZXhhbXBsZS9NYWtlZmlsZS5pbiBiL2xpYnhtbDItMi43LjcvZXhhbXBsZS9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTU1ODNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9leGFtcGxlL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsNTg2IEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitub2luc3RfUFJPR1JBTVMgPSBnam9icmVhZCQoRVhFRVhUKQorc3ViZGlyID0gZXhhbXBsZQorRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmluCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKK2FtX2dqb2JyZWFkX09CSkVDVFMgPSBnam9icmVhZC4kKE9CSkVYVCkKK2dqb2JyZWFkX09CSkVDVFMgPSAkKGFtX2dqb2JyZWFkX09CSkVDVFMpCithbV9fREVQRU5ERU5DSUVTXzEgPQorYW1fX0RFUEVOREVOQ0lFU18yID0gJCh0b3BfYnVpbGRkaXIpL2xpYnhtbDIubGEgJChhbV9fREVQRU5ERU5DSUVTXzEpCitnam9icmVhZF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChnam9icmVhZF9MREZMQUdTKSBcCisJJChMREZMQUdTKSAtbyAkQAorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2RlcGNvbXAKK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCithbV9fbXYgPSBtdiAtZgorQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK1NPVVJDRVMgPSAkKGdqb2JyZWFkX1NPVVJDRVMpCitESVNUX1NPVVJDRVMgPSAkKGdqb2JyZWFkX1NPVVJDRVMpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBUiA9IEBBUkAKK0FTID0gQEFTQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCQVNFX1RIUkVBRF9MSUJTID0gQEJBU0VfVEhSRUFEX0xJQlNACitDMTROX09CSiA9IEBDMTROX09CSkAKK0NBVEFMT0dfT0JKID0gQENBVEFMT0dfT0JKQAorQ0MgPSBAQ0NACitDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorQ0ZMQUdTID0gQENGTEFHU0AKK0NQUCA9IEBDUFBACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACitDWUdXSU5fRVhUUkFfTERGTEFHUyA9IEBDWUdXSU5fRVhUUkFfTERGTEFHU0AKK0NZR1dJTl9FWFRSQV9QWVRIT05fTElCQUREID0gQENZR1dJTl9FWFRSQV9QWVRIT05fTElCQUREQAorREVCVUdfT0JKID0gQERFQlVHX09CSkAKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitETExUT09MID0gQERMTFRPT0xACitET0NCX09CSiA9IEBET0NCX09CSkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitGVFBfT0JKID0gQEZUUF9PQkpACitHUkVQID0gQEdSRVBACitIQVZFX0lTSU5GID0gQEhBVkVfSVNJTkZACitIQVZFX0lTTkFOID0gQEhBVkVfSVNOQU5ACitIVE1MX0RJUiA9IEBIVE1MX0RJUkAKK0hUTUxfT0JKID0gQEhUTUxfT0JKQAorSFRUUF9PQkogPSBASFRUUF9PQkpACitJQ09OVl9MSUJTID0gQElDT05WX0xJQlNACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCWE1MX01BSk9SX1ZFUlNJT04gPSBATElCWE1MX01BSk9SX1ZFUlNJT05ACitMSUJYTUxfTUlDUk9fVkVSU0lPTiA9IEBMSUJYTUxfTUlDUk9fVkVSU0lPTkAKK0xJQlhNTF9NSU5PUl9WRVJTSU9OID0gQExJQlhNTF9NSU5PUl9WRVJTSU9OQAorTElCWE1MX1ZFUlNJT04gPSBATElCWE1MX1ZFUlNJT05ACitMSUJYTUxfVkVSU0lPTl9FWFRSQSA9IEBMSUJYTUxfVkVSU0lPTl9FWFRSQUAKK0xJQlhNTF9WRVJTSU9OX0lORk8gPSBATElCWE1MX1ZFUlNJT05fSU5GT0AKK0xJQlhNTF9WRVJTSU9OX05VTUJFUiA9IEBMSUJYTUxfVkVSU0lPTl9OVU1CRVJACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorTUFLRUlORk8gPSBATUFLRUlORk9ACitNS0RJUl9QID0gQE1LRElSX1BACitNT0RVTEVfRVhURU5TSU9OID0gQE1PRFVMRV9FWFRFTlNJT05ACitNT0RVTEVfUExBVEZPUk1fTElCUyA9IEBNT0RVTEVfUExBVEZPUk1fTElCU0AKK01WID0gQE1WQAorTV9MSUJTID0gQE1fTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BZVEhPTiA9IEBQWVRIT05ACitQWVRIT05fSU5DTFVERVMgPSBAUFlUSE9OX0lOQ0xVREVTQAorUFlUSE9OX0xJQlMgPSBAUFlUSE9OX0xJQlNACitQWVRIT05fU0lURV9QQUNLQUdFUyA9IEBQWVRIT05fU0lURV9QQUNLQUdFU0AKK1BZVEhPTl9TVUJESVIgPSBAUFlUSE9OX1NVQkRJUkAKK1BZVEhPTl9URVNUUyA9IEBQWVRIT05fVEVTVFNACitQWVRIT05fVkVSU0lPTiA9IEBQWVRIT05fVkVSU0lPTkAKK1JBTkxJQiA9IEBSQU5MSUJACitSRExfTElCUyA9IEBSRExfTElCU0AKK1JFQURFUl9URVNUID0gQFJFQURFUl9URVNUQAorUkVMREFURSA9IEBSRUxEQVRFQAorUk0gPSBAUk1ACitTRUQgPSBAU0VEQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUQVRJQ19CSU5BUklFUyA9IEBTVEFUSUNfQklOQVJJRVNACitTVFJJUCA9IEBTVFJJUEAKK1RBUiA9IEBUQVJACitURVNUX0MxNE4gPSBAVEVTVF9DMTROQAorVEVTVF9DQVRBTE9HID0gQFRFU1RfQ0FUQUxPR0AKK1RFU1RfREVCVUcgPSBAVEVTVF9ERUJVR0AKK1RFU1RfSFRNTCA9IEBURVNUX0hUTUxACitURVNUX01PRFVMRVMgPSBAVEVTVF9NT0RVTEVTQAorVEVTVF9QQVRURVJOID0gQFRFU1RfUEFUVEVSTkAKK1RFU1RfUEhUTUwgPSBAVEVTVF9QSFRNTEAKK1RFU1RfUFVTSCA9IEBURVNUX1BVU0hACitURVNUX1JFR0VYUFMgPSBAVEVTVF9SRUdFWFBTQAorVEVTVF9TQVggPSBAVEVTVF9TQVhACitURVNUX1NDSEVNQVMgPSBAVEVTVF9TQ0hFTUFTQAorVEVTVF9TQ0hFTUFUUk9OID0gQFRFU1RfU0NIRU1BVFJPTkAKK1RFU1RfVEhSRUFEUyA9IEBURVNUX1RIUkVBRFNACitURVNUX1ZBTElEID0gQFRFU1RfVkFMSURACitURVNUX1ZUSU1FID0gQFRFU1RfVlRJTUVACitURVNUX1hJTkNMVURFID0gQFRFU1RfWElOQ0xVREVACitURVNUX1hQQVRIID0gQFRFU1RfWFBBVEhACitURVNUX1hQVFIgPSBAVEVTVF9YUFRSQAorVEhSRUFEU19XMzIgPSBAVEhSRUFEU19XMzJACitUSFJFQURfQ0ZMQUdTID0gQFRIUkVBRF9DRkxBR1NACitUSFJFQURfTElCUyA9IEBUSFJFQURfTElCU0AKK1UgPSBAVUAKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1ZFUlNJT05fU0NSSVBUX0ZMQUdTID0gQFZFUlNJT05fU0NSSVBUX0ZMQUdTQAorV0dFVCA9IEBXR0VUQAorV0lOMzJfRVhUUkFfTERGTEFHUyA9IEBXSU4zMl9FWFRSQV9MREZMQUdTQAorV0lOMzJfRVhUUkFfTElCQUREID0gQFdJTjMyX0VYVFJBX0xJQkFEREAKK1dJVEhfQzE0TiA9IEBXSVRIX0MxNE5ACitXSVRIX0NBVEFMT0cgPSBAV0lUSF9DQVRBTE9HQAorV0lUSF9ERUJVRyA9IEBXSVRIX0RFQlVHQAorV0lUSF9ET0NCID0gQFdJVEhfRE9DQkAKK1dJVEhfRlRQID0gQFdJVEhfRlRQQAorV0lUSF9IVE1MID0gQFdJVEhfSFRNTEAKK1dJVEhfSFRUUCA9IEBXSVRIX0hUVFBACitXSVRIX0lDT05WID0gQFdJVEhfSUNPTlZACitXSVRIX0lTTzg4NTlYID0gQFdJVEhfSVNPODg1OVhACitXSVRIX0xFR0FDWSA9IEBXSVRIX0xFR0FDWUAKK1dJVEhfTUVNX0RFQlVHID0gQFdJVEhfTUVNX0RFQlVHQAorV0lUSF9NT0RVTEVTID0gQFdJVEhfTU9EVUxFU0AKK1dJVEhfT1VUUFVUID0gQFdJVEhfT1VUUFVUQAorV0lUSF9QQVRURVJOID0gQFdJVEhfUEFUVEVSTkAKK1dJVEhfUFVTSCA9IEBXSVRIX1BVU0hACitXSVRIX1JFQURFUiA9IEBXSVRIX1JFQURFUkAKK1dJVEhfUkVHRVhQUyA9IEBXSVRIX1JFR0VYUFNACitXSVRIX1JVTl9ERUJVRyA9IEBXSVRIX1JVTl9ERUJVR0AKK1dJVEhfU0FYMSA9IEBXSVRIX1NBWDFACitXSVRIX1NDSEVNQVMgPSBAV0lUSF9TQ0hFTUFTQAorV0lUSF9TQ0hFTUFUUk9OID0gQFdJVEhfU0NIRU1BVFJPTkAKK1dJVEhfVEhSRUFEUyA9IEBXSVRIX1RIUkVBRFNACitXSVRIX1RSRUUgPSBAV0lUSF9UUkVFQAorV0lUSF9UUklPID0gQFdJVEhfVFJJT0AKK1dJVEhfVkFMSUQgPSBAV0lUSF9WQUxJREAKK1dJVEhfV1JJVEVSID0gQFdJVEhfV1JJVEVSQAorV0lUSF9YSU5DTFVERSA9IEBXSVRIX1hJTkNMVURFQAorV0lUSF9YUEFUSCA9IEBXSVRIX1hQQVRIQAorV0lUSF9YUFRSID0gQFdJVEhfWFBUUkAKK1dJVEhfWkxJQiA9IEBXSVRIX1pMSUJACitYSU5DTFVERV9PQkogPSBAWElOQ0xVREVfT0JKQAorWE1MTElOVCA9IEBYTUxMSU5UQAorWE1MX0NGTEFHUyA9IEBYTUxfQ0ZMQUdTQAorWE1MX0lOQ0xVREVESVIgPSBAWE1MX0lOQ0xVREVESVJACitYTUxfTElCRElSID0gQFhNTF9MSUJESVJACitYTUxfTElCUyA9IEBYTUxfTElCU0AKK1hNTF9MSUJUT09MTElCUyA9IEBYTUxfTElCVE9PTExJQlNACitYUEFUSF9PQkogPSBAWFBBVEhfT0JKQAorWFBUUl9PQkogPSBAWFBUUl9PQkpACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK1pfQ0ZMQUdTID0gQFpfQ0ZMQUdTQAorWl9MSUJTID0gQFpfTElCU0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorcHl0aG9uZGlyID0gQHB5dGhvbmRpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorSU5DTFVERVMgPSAtSSQodG9wX2J1aWxkZGlyKS9pbmNsdWRlIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1JQHNyY2RpckAvaW5jbHVkZSBAVEhSRUFEX0NGTEFHU0AgQFpfQ0ZMQUdTQAorREVQUyA9ICQodG9wX2J1aWxkZGlyKS9saWJ4bWwyLmxhCitMREFERFMgPSBAU1RBVElDX0JJTkFSSUVTQCAkKHRvcF9idWlsZGRpcikvbGlieG1sMi5sYSBAVEhSRUFEX0xJQlNAIEBaX0xJQlNAICQoSUNPTlZfTElCUykgLWxtIEBXSU4zMl9FWFRSQV9MSUJBRERACitnam9icmVhZF9TT1VSQ0VTID0gZ2pvYnJlYWQuYworZ2pvYnJlYWRfTERGTEFHUyA9IAorZ2pvYnJlYWRfREVQRU5ERU5DSUVTID0gJChERVBTKQorZ2pvYnJlYWRfTERBREQgPSBAUkRMX0xJQlNAICQoTERBRERTKQorYWxsOiBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubG8gLm8gLm9iagorJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVwcykKKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisJICAgICokJGRlcCopIFwKKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBleGFtcGxlL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZ251IGV4YW1wbGUvTWFrZWZpbGUKKy5QUkVDSU9VUzogTWFrZWZpbGUKK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAY2FzZSAnJD8nIGluIFwKKwkgICpjb25maWcuc3RhdHVzKikgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisJICAqKSBcCisJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKworJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKGFtX19hY2xvY2FsX200X2RlcHMpOgorCitjbGVhbi1ub2luc3RQUk9HUkFNUzoKKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorCXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisJcm0gLWYgJCRsaXN0Citnam9icmVhZCQoRVhFRVhUKTogJChnam9icmVhZF9PQkpFQ1RTKSAkKGdqb2JyZWFkX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIGdqb2JyZWFkJChFWEVFWFQpCisJJChnam9icmVhZF9MSU5LKSAkKGdqb2JyZWFkX09CSkVDVFMpICQoZ2pvYnJlYWRfTERBREQpICQoTElCUykKKworbW9zdGx5Y2xlYW4tY29tcGlsZToKKwktcm0gLWYgKi4kKE9CSkVYVCkKKworZGlzdGNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICoudGFiLmMKKworQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2dqb2JyZWFkLlBvQGFtX19xdW90ZUAKKworLmMubzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKKworLmMubG86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMVENPTVBJTEUpIC1jIC1vICRAICQ8CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXNoaWZ0OyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisJICBlbHNlIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICQkdW5pcXVlOyBcCisJICBmaTsgXAorCWZpCitjdGFnczogQ1RBR1MKK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCitpbnN0YWxsZGlyczoKK2luc3RhbGw6IGluc3RhbGwtYW0KK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQordW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tYW0KKworY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCisJbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06CisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9leGFtcGxlL2dqb2JyZWFkLmMgYi9saWJ4bWwyLTIuNy43L2V4YW1wbGUvZ2pvYnJlYWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2Y2ZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9leGFtcGxlL2dqb2JyZWFkLmMKQEAgLTAsMCArMSwzMDkgQEAKKy8qCisgKiBnam9icmVhZC5jIDogYSBzbWFsbCB0ZXN0IHByb2dyYW0gZm9yIGdub21lIGpvYnMgWE1MIGZvcm1hdAorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBEYW5pZWwuVmVpbGxhcmRAdzMub3JnCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKy8qCisgKiBUaGlzIGV4YW1wbGUgc2hvdWxkIGNvbXBpbGUgYW5kIHJ1biBpbmRpZmZlcmVudGx5IHdpdGggbGlieG1sLTEuOC44ICsKKyAqIGFuZCBsaWJ4bWwyLTIuMS4wICsKKyAqIENoZWNrIHRoZSBDT01QQVQgY29tbWVudHMgYmVsb3cKKyAqLworCisvKgorICogQ09NUEFUIHVzaW5nIHhtbC1jb25maWcgLS1jZmxhZ3MgdG8gZ2V0IHRoZSBpbmNsdWRlIHBhdGggdGhpcyB3aWxsCisgKiB3b3JrIHdpdGggYm90aCAKKyAqLworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisKKyNkZWZpbmUgREVCVUcoeCkgcHJpbnRmKHgpCisKKy8qCisgKiBBIHBlcnNvbiByZWNvcmQKKyAqIGFuIHhtbENoYXIgKiBpcyByZWFsbHkgYW4gVVRGOCBlbmNvZGVkIGNoYXIgc3RyaW5nICgwIHRlcm1pbmF0ZWQpCisgKi8KK3R5cGVkZWYgc3RydWN0IHBlcnNvbiB7CisgICAgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxDaGFyICplbWFpbDsKKyAgICB4bWxDaGFyICpjb21wYW55OworICAgIHhtbENoYXIgKm9yZ2FuaXNhdGlvbjsKKyAgICB4bWxDaGFyICpzbWFpbDsKKyAgICB4bWxDaGFyICp3ZWJQYWdlOworICAgIHhtbENoYXIgKnBob25lOworfSBwZXJzb24sICpwZXJzb25QdHI7CisKKy8qCisgKiBBbmQgdGhlIGNvZGUgbmVlZGVkIHRvIHBhcnNlIGl0CisgKi8KK3N0YXRpYyBwZXJzb25QdHIKK3BhcnNlUGVyc29uKHhtbERvY1B0ciBkb2MsIHhtbE5zUHRyIG5zLCB4bWxOb2RlUHRyIGN1cikgeworICAgIHBlcnNvblB0ciByZXQgPSBOVUxMOworCitERUJVRygicGFyc2VQZXJzb25cbiIpOworICAgIC8qCisgICAgICogYWxsb2NhdGUgdGhlIHN0cnVjdAorICAgICAqLworICAgIHJldCA9IChwZXJzb25QdHIpIG1hbGxvYyhzaXplb2YocGVyc29uKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJvdXQgb2YgbWVtb3J5XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZihwZXJzb24pKTsKKworICAgIC8qIFdlIGRvbid0IGNhcmUgd2hhdCB0aGUgdG9wIGxldmVsIGVsZW1lbnQgbmFtZSBpcyAqLworICAgIC8qIENPTVBBVCB4bWxDaGlsZHJlbk5vZGUgaXMgYSBtYWNybyB1bmlmeWluZyBsaWJ4bWwxIGFuZCBsaWJ4bWwyIG5hbWVzICovCisgICAgY3VyID0gY3VyLT54bWxDaGlsZHJlbk5vZGU7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmICgoIXhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopIlBlcnNvbiIpKSAmJgorCSAgICAoY3VyLT5ucyA9PSBucykpCisJICAgIHJldC0+bmFtZSA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgY3VyLT54bWxDaGlsZHJlbk5vZGUsIDEpOworICAgICAgICBpZiAoKCF4bWxTdHJjbXAoY3VyLT5uYW1lLCAoY29uc3QgeG1sQ2hhciAqKSJFbWFpbCIpKSAmJgorCSAgICAoY3VyLT5ucyA9PSBucykpCisJICAgIHJldC0+ZW1haWwgPSB4bWxOb2RlTGlzdEdldFN0cmluZyhkb2MsIGN1ci0+eG1sQ2hpbGRyZW5Ob2RlLCAxKTsKKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qCisgKiBhbmQgdG8gcHJpbnQgaXQKKyAqLworc3RhdGljIHZvaWQKK3ByaW50UGVyc29uKHBlcnNvblB0ciBjdXIpIHsKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybjsKKyAgICBwcmludGYoIi0tLS0tLSBQZXJzb25cbiIpOworICAgIGlmIChjdXItPm5hbWUpIHByaW50ZigiCW5hbWU6ICVzXG4iLCBjdXItPm5hbWUpOworICAgIGlmIChjdXItPmVtYWlsKSBwcmludGYoIgllbWFpbDogJXNcbiIsIGN1ci0+ZW1haWwpOworICAgIGlmIChjdXItPmNvbXBhbnkpIHByaW50ZigiCWNvbXBhbnk6ICVzXG4iLCBjdXItPmNvbXBhbnkpOworICAgIGlmIChjdXItPm9yZ2FuaXNhdGlvbikgcHJpbnRmKCIJb3JnYW5pc2F0aW9uOiAlc1xuIiwgY3VyLT5vcmdhbmlzYXRpb24pOworICAgIGlmIChjdXItPnNtYWlsKSBwcmludGYoIglzbWFpbDogJXNcbiIsIGN1ci0+c21haWwpOworICAgIGlmIChjdXItPndlYlBhZ2UpIHByaW50ZigiCVdlYjogJXNcbiIsIGN1ci0+d2ViUGFnZSk7CisgICAgaWYgKGN1ci0+cGhvbmUpIHByaW50ZigiCXBob25lOiAlc1xuIiwgY3VyLT5waG9uZSk7CisgICAgcHJpbnRmKCItLS0tLS1cbiIpOworfQorCisvKgorICogYSBEZXNjcmlwdGlvbiBmb3IgYSBKb2IKKyAqLwordHlwZWRlZiBzdHJ1Y3Qgam9iIHsKKyAgICB4bWxDaGFyICpwcm9qZWN0SUQ7CisgICAgeG1sQ2hhciAqYXBwbGljYXRpb247CisgICAgeG1sQ2hhciAqY2F0ZWdvcnk7CisgICAgcGVyc29uUHRyIGNvbnRhY3Q7CisgICAgaW50IG5iRGV2ZWxvcGVyczsKKyAgICBwZXJzb25QdHIgZGV2ZWxvcGVyc1sxMDBdOyAvKiB1c2luZyBkeW5hbWljIGFsbG9jIGlzIGxlZnQgYXMgYW4gZXhlcmNpc2UgKi8KK30gam9iLCAqam9iUHRyOworCisvKgorICogQW5kIHRoZSBjb2RlIG5lZWRlZCB0byBwYXJzZSBpdAorICovCitzdGF0aWMgam9iUHRyCitwYXJzZUpvYih4bWxEb2NQdHIgZG9jLCB4bWxOc1B0ciBucywgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBqb2JQdHIgcmV0ID0gTlVMTDsKKworREVCVUcoInBhcnNlSm9iXG4iKTsKKyAgICAvKgorICAgICAqIGFsbG9jYXRlIHRoZSBzdHJ1Y3QKKyAgICAgKi8KKyAgICByZXQgPSAoam9iUHRyKSBtYWxsb2Moc2l6ZW9mKGpvYikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwib3V0IG9mIG1lbW9yeVxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2Yoam9iKSk7CisKKyAgICAvKiBXZSBkb24ndCBjYXJlIHdoYXQgdGhlIHRvcCBsZXZlbCBlbGVtZW50IG5hbWUgaXMgKi8KKyAgICBjdXIgPSBjdXItPnhtbENoaWxkcmVuTm9kZTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgCisgICAgICAgIGlmICgoIXhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJQcm9qZWN0IikpICYmCisJICAgIChjdXItPm5zID09IG5zKSkgeworCSAgICByZXQtPnByb2plY3RJRCA9IHhtbEdldFByb3AoY3VyLCAoY29uc3QgeG1sQ2hhciAqKSAiSUQiKTsKKwkgICAgaWYgKHJldC0+cHJvamVjdElEID09IE5VTEwpIHsKKwkJZnByaW50ZihzdGRlcnIsICJQcm9qZWN0IGhhcyBubyBJRFxuIik7CisJICAgIH0KKwl9CisgICAgICAgIGlmICgoIXhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJBcHBsaWNhdGlvbiIpKSAmJgorICAgICAgICAgICAgKGN1ci0+bnMgPT0gbnMpKQorCSAgICByZXQtPmFwcGxpY2F0aW9uID0gCisJCXhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgY3VyLT54bWxDaGlsZHJlbk5vZGUsIDEpOworICAgICAgICBpZiAoKCF4bWxTdHJjbXAoY3VyLT5uYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiQ2F0ZWdvcnkiKSkgJiYKKwkgICAgKGN1ci0+bnMgPT0gbnMpKQorCSAgICByZXQtPmNhdGVnb3J5ID0KKwkJeG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBjdXItPnhtbENoaWxkcmVuTm9kZSwgMSk7CisgICAgICAgIGlmICgoIXhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJDb250YWN0IikpICYmCisJICAgIChjdXItPm5zID09IG5zKSkKKwkgICAgcmV0LT5jb250YWN0ID0gcGFyc2VQZXJzb24oZG9jLCBucywgY3VyKTsKKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qCisgKiBhbmQgdG8gcHJpbnQgaXQKKyAqLworc3RhdGljIHZvaWQKK3ByaW50Sm9iKGpvYlB0ciBjdXIpIHsKKyAgICBpbnQgaTsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIHByaW50ZigiPT09PT09PSAgSm9iXG4iKTsKKyAgICBpZiAoY3VyLT5wcm9qZWN0SUQgIT0gTlVMTCkgcHJpbnRmKCJwcm9qZWN0SUQ6ICVzXG4iLCBjdXItPnByb2plY3RJRCk7CisgICAgaWYgKGN1ci0+YXBwbGljYXRpb24gIT0gTlVMTCkgcHJpbnRmKCJhcHBsaWNhdGlvbjogJXNcbiIsIGN1ci0+YXBwbGljYXRpb24pOworICAgIGlmIChjdXItPmNhdGVnb3J5ICE9IE5VTEwpIHByaW50ZigiY2F0ZWdvcnk6ICVzXG4iLCBjdXItPmNhdGVnb3J5KTsKKyAgICBpZiAoY3VyLT5jb250YWN0ICE9IE5VTEwpIHByaW50UGVyc29uKGN1ci0+Y29udGFjdCk7CisgICAgcHJpbnRmKCIlZCBkZXZlbG9wZXJzXG4iLCBjdXItPm5iRGV2ZWxvcGVycyk7CisKKyAgICBmb3IgKGkgPSAwO2kgPCBjdXItPm5iRGV2ZWxvcGVycztpKyspIHByaW50UGVyc29uKGN1ci0+ZGV2ZWxvcGVyc1tpXSk7CisgICAgcHJpbnRmKCI9PT09PT09IFxuIik7Cit9CisKKy8qCisgKiBBIHBvb2wgb2YgR25vbWUgSm9icworICovCit0eXBlZGVmIHN0cnVjdCBnam9iIHsKKyAgICBpbnQgbmJKb2JzOworICAgIGpvYlB0ciBqb2JzWzUwMF07IC8qIHVzaW5nIGR5bmFtaWMgYWxsb2MgaXMgbGVmdCBhcyBhbiBleGVyY2lzZSAqLworfSBnSm9iLCAqZ0pvYlB0cjsKKworCitzdGF0aWMgZ0pvYlB0cgorcGFyc2VHam9iRmlsZShjaGFyICpmaWxlbmFtZSkgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgZ0pvYlB0ciByZXQ7CisgICAgam9iUHRyIGN1cmpvYjsKKyAgICB4bWxOc1B0ciBuczsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICAvKgorICAgICAqIGJ1aWxkIGFuIFhNTCB0cmVlIGZyb20gYSB0aGUgZmlsZTsKKyAgICAgKi8KKyAgICBkb2MgPSB4bWxQYXJzZUZpbGUoZmlsZW5hbWUpOworICAgIGlmIChkb2MgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworI2Vsc2UKKyAgICAvKgorICAgICAqIHRoZSBsaWJyYXJ5IGhhcyBiZWVuIGNvbXBpbGVkIHdpdGhvdXQgc29tZSBvZiB0aGUgb2xkIGludGVyZmFjZXMKKyAgICAgKi8KKyAgICByZXR1cm4oTlVMTCk7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisgICAgLyoKKyAgICAgKiBDaGVjayB0aGUgZG9jdW1lbnQgaXMgb2YgdGhlIHJpZ2h0IGtpbmQKKyAgICAgKi8KKyAgICAKKyAgICBjdXIgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiZW1wdHkgZG9jdW1lbnRcbiIpOworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG5zID0geG1sU2VhcmNoTnNCeUhyZWYoZG9jLCBjdXIsCisJICAgIChjb25zdCB4bWxDaGFyICopICJodHRwOi8vd3d3Lmdub21lLm9yZy9zb21lLWxvY2F0aW9uIik7CisgICAgaWYgKG5zID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsCisJICAgICAgICAiZG9jdW1lbnQgb2YgdGhlIHdyb25nIHR5cGUsIEdKb2IgTmFtZXNwYWNlIG5vdCBmb3VuZFxuIik7CisJeG1sRnJlZURvYyhkb2MpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJIZWxwaW5nIikpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsImRvY3VtZW50IG9mIHRoZSB3cm9uZyB0eXBlLCByb290IG5vZGUgIT0gSGVscGluZyIpOworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSB0aGUgc3RydWN0dXJlIHRvIGJlIHJldHVybmVkLgorICAgICAqLworICAgIHJldCA9IChnSm9iUHRyKSBtYWxsb2Moc2l6ZW9mKGdKb2IpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIm91dCBvZiBtZW1vcnlcbiIpOworCXhtbEZyZWVEb2MoZG9jKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZihnSm9iKSk7CisKKyAgICAvKgorICAgICAqIE5vdywgd2FsayB0aGUgdHJlZS4KKyAgICAgKi8KKyAgICAvKiBGaXJzdCBsZXZlbCB3ZSBleHBlY3QganVzdCBKb2JzICovCisgICAgY3VyID0gY3VyLT54bWxDaGlsZHJlbk5vZGU7CisgICAgd2hpbGUgKCBjdXIgJiYgeG1sSXNCbGFua05vZGUgKCBjdXIgKSApIHsKKwljdXIgPSBjdXIgLT4gbmV4dDsKKyAgICB9CisgICAgaWYgKCBjdXIgPT0gMCApIHsKKwl4bWxGcmVlRG9jKGRvYyk7CisJZnJlZShyZXQpOworCXJldHVybiAoIE5VTEwgKTsKKyAgICB9CisgICAgaWYgKCh4bWxTdHJjbXAoY3VyLT5uYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiSm9icyIpKSB8fCAoY3VyLT5ucyAhPSBucykpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsImRvY3VtZW50IG9mIHRoZSB3cm9uZyB0eXBlLCB3YXMgJyVzJywgSm9icyBleHBlY3RlZCIsCisJCWN1ci0+bmFtZSk7CisJZnByaW50ZihzdGRlcnIsInhtbERvY0R1bXAgZm9sbG93c1xuIik7CisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisJeG1sRG9jRHVtcCAoIHN0ZGVyciwgZG9jICk7CisJZnByaW50ZihzdGRlcnIsInhtbERvY0R1bXAgZmluaXNoZWRcbiIpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCXhtbEZyZWVEb2MoZG9jKTsKKwlmcmVlKHJldCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qIFNlY29uZCBsZXZlbCBpcyBhIGxpc3Qgb2YgSm9iLCBidXQgYmUgbGF4aXN0ICovCisgICAgY3VyID0gY3VyLT54bWxDaGlsZHJlbk5vZGU7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmICgoIXhtbFN0cmNtcChjdXItPm5hbWUsIChjb25zdCB4bWxDaGFyICopICJKb2IiKSkgJiYKKwkgICAgKGN1ci0+bnMgPT0gbnMpKSB7CisJICAgIGN1cmpvYiA9IHBhcnNlSm9iKGRvYywgbnMsIGN1cik7CisJICAgIGlmIChjdXJqb2IgIT0gTlVMTCkKKwkgICAgICAgIHJldC0+am9ic1tyZXQtPm5iSm9icysrXSA9IGN1cmpvYjsKKyAgICAgICAgICAgIGlmIChyZXQtPm5iSm9icyA+PSA1MDApIGJyZWFrOworCX0KKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyB2b2lkCitoYW5kbGVHam9iKGdKb2JQdHIgY3VyKSB7CisgICAgaW50IGk7CisKKyAgICAvKgorICAgICAqIERvIHdoYXRldmVyIHlvdSB3YW50IGFuZCBmcmVlIHRoZSBzdHJ1Y3R1cmUuCisgICAgICovCisgICAgcHJpbnRmKCIlZCBKb2JzIHJlZ2lzdGVyZWRcbiIsIGN1ci0+bmJKb2JzKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY3VyLT5uYkpvYnM7IGkrKykgcHJpbnRKb2IoY3VyLT5qb2JzW2ldKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaW50IGk7CisgICAgZ0pvYlB0ciBjdXI7CisKKyAgICAvKiBDT01QQVQ6IERvIG5vdCBnZW5yYXRlIG5vZGVzIGZvciBmb3JtYXR0aW5nIHNwYWNlcyAqLworICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKyAgICB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKTsKKworICAgIGZvciAoaSA9IDE7IGkgPCBhcmdjIDsgaSsrKSB7CisJY3VyID0gcGFyc2VHam9iRmlsZShhcmd2W2ldKTsKKwlpZiAoIGN1ciApCisJICBoYW5kbGVHam9iKGN1cik7CisJZWxzZQorCSAgZnByaW50Ziggc3RkZXJyLCAiRXJyb3IgcGFyc2luZyBmaWxlICclcydcbiIsIGFyZ3ZbaV0pOworCisgICAgfQorCisgICAgLyogQ2xlYW4gdXAgZXZlcnl0aGluZyBlbHNlIGJlZm9yZSBxdWl0dGluZy4gKi8KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisKKyAgICByZXR1cm4oMCk7Cit9CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2V4YW1wbGUvZ2pvYnMueG1sIGIvbGlieG1sMi0yLjcuNy9leGFtcGxlL2dqb2JzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzcyOTc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9leGFtcGxlL2dqb2JzLnhtbApAQCAtMCwwICsxLDU3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxnam9iOkhlbHBpbmcgeG1sbnM6Z2pvYj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvc29tZS1sb2NhdGlvbiI+CisgIDxnam9iOkpvYnM+CisKKyAgICA8Z2pvYjpKb2I+CisgICAgICA8Z2pvYjpQcm9qZWN0IElEPSIzIi8+CisgICAgICA8Z2pvYjpBcHBsaWNhdGlvbj5HQmFja3VwPC9nam9iOkFwcGxpY2F0aW9uPgorICAgICAgPGdqb2I6Q2F0ZWdvcnk+RGV2ZWxvcG1lbnQ8L2dqb2I6Q2F0ZWdvcnk+CisKKyAgICAgIDxnam9iOlVwZGF0ZT4KKwk8Z2pvYjpTdGF0dXM+T3BlbjwvZ2pvYjpTdGF0dXM+CisJPGdqb2I6TW9kaWZpZWQ+TW9uLCAwNyBKdW4gMTk5OSAyMDoyNzo0NSAtMDQwMCBNRVQgRFNUPC9nam9iOk1vZGlmaWVkPgorICAgICAgICA8Z2pvYjpTYWxhcnk+VVNEIDAuMDA8L2dqb2I6U2FsYXJ5PgorICAgICAgPC9nam9iOlVwZGF0ZT4KKworICAgICAgPGdqb2I6RGV2ZWxvcGVycz4KKyAgICAgICAgPGdqb2I6RGV2ZWxvcGVyPgorICAgICAgICA8L2dqb2I6RGV2ZWxvcGVyPgorICAgICAgPC9nam9iOkRldmVsb3BlcnM+CisKKyAgICAgIDxnam9iOkNvbnRhY3Q+CisgICAgICAgIDxnam9iOlBlcnNvbj5OYXRoYW4gQ2xlbW9uczwvZ2pvYjpQZXJzb24+CisJPGdqb2I6RW1haWw+bmF0aGFuQHdpbmRzb2ZzdG9ybS5uZXQ8L2dqb2I6RW1haWw+CisgICAgICAgIDxnam9iOkNvbXBhbnk+CisJPC9nam9iOkNvbXBhbnk+CisgICAgICAgIDxnam9iOk9yZ2FuaXNhdGlvbj4KKwk8L2dqb2I6T3JnYW5pc2F0aW9uPgorICAgICAgICA8Z2pvYjpXZWJwYWdlPgorCTwvZ2pvYjpXZWJwYWdlPgorCTxnam9iOlNuYWlsbWFpbD4KKwk8L2dqb2I6U25haWxtYWlsPgorCTxnam9iOlBob25lPgorCTwvZ2pvYjpQaG9uZT4KKyAgICAgIDwvZ2pvYjpDb250YWN0PgorCisgICAgICA8Z2pvYjpSZXF1aXJlbWVudHM+CisgICAgICBUaGUgcHJvZ3JhbSBzaG91bGQgYmUgcmVsZWFzZWQgYXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgdGhlIEdQTC4KKyAgICAgIDwvZ2pvYjpSZXF1aXJlbWVudHM+CisKKyAgICAgIDxnam9iOlNraWxscz4KKyAgICAgIDwvZ2pvYjpTa2lsbHM+CisKKyAgICAgIDxnam9iOkRldGFpbHM+CisgICAgICBBIEdOT01FIGJhc2VkIHN5c3RlbSB0aGF0IHdpbGwgYWxsb3cgYSBzdXBlcnVzZXIgdG8gY29uZmlndXJlIAorICAgICAgY29tcHJlc3NlZCBhbmQgdW5jb21wcmVzc2VkIGZpbGVzIGFuZC9vciBmaWxlIHN5c3RlbXMgdG8gYmUgYmFja2VkIAorICAgICAgdXAgd2l0aCBhIHN1cHBvcnRlZCBtZWRpYSBpbiB0aGUgc3lzdGVtLiAgVGhpcyBzaG91bGQgYmUgYWJsZSB0byAKKyAgICAgIHBlcmZvcm0gdmlhIGZpbmQgY29tbWFuZHMgZ2VuZXJhdGluZyBhIGxpc3Qgb2YgZmlsZXMgdGhhdCBhcmUgcGFzc2VkIAorICAgICAgdG8gdGFyLCBkZCwgY3BpbywgY3AsIGd6aXAsIGV0Yy4sIHRvIGJlIGRpcmVjdGVkIHRvIHRoZSB0YXBlIG1hY2hpbmUgCisgICAgICBvciB2aWEgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gdGhlIGZpbGVzeXN0ZW0gaXRzZWxmLiBFbWFpbCAKKyAgICAgIG5vdGlmaWNhdGlvbiBhbmQgR1VJIHN0YXR1cyBkaXNwbGF5IHZlcnkgaW1wb3J0YW50LgorICAgICAgPC9nam9iOkRldGFpbHM+CisKKyAgICA8L2dqb2I6Sm9iPgorCisgIDwvZ2pvYjpKb2JzPgorPC9nam9iOkhlbHBpbmc+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZ2VuVW5pY29kZS5weSBiL2xpYnhtbDItMi43LjcvZ2VuVW5pY29kZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NmU0ZTliCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9nZW5Vbmljb2RlLnB5CkBAIC0wLDAgKzEsNDc4IEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyBPcmlnaW5hbCBzY3JpcHQgbW9kaWZpZWQgaW4gTm92ZW1iZXIgMjAwMyB0byB0YWtlIGFkdmFudGFnZSBvZgorIyB0aGUgY2hhcmFjdGVyLXZhbGlkYXRpb24gcmFuZ2Ugcm91dGluZXMsIGFuZCB1cGRhdGVkIHRvIHRoZQorIyBjdXJyZW50IFVuaWNvZGUgaW5mb3JtYXRpb24gKFZlcnNpb24gNC4wLjEpCisjCisjIE5PVEU6IHRoZXJlIGlzIGFuICdhbGlhcycgZmFjaWxpdHkgZm9yIGJsb2NrcyB3aGljaCBhcmUgbm90IHByZXNlbnQgaW4KKyMJdGhlIGN1cnJlbnQgcmVsZWFzZSwgYnV0IGFyZSBuZWVkZWQgZm9yIEFCSSBjb21wYXRpYmlsaXR5LiAgVGhpcworIwltdXN0IGJlIGFjY29tcGxpc2hlZCBNQU5VQUxMWSEgIFBsZWFzZSBzZWUgdGhlIGNvbW1lbnRzIGJlbG93IHVuZGVyCisjICAgICAnYmxvY2tBbGlhc2VzJworIworaW1wb3J0IHN5cworaW1wb3J0IHN0cmluZworaW1wb3J0IHRpbWUKKword2VicGFnZSA9ICJodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy80LjAtVXBkYXRlMS9VQ0QtNC4wLjEuaHRtbCIKK3NvdXJjZXMgPSAiQmxvY2tzLTQuMC4xLnR4dCBVbmljb2RlRGF0YS00LjAuMS50eHQiCisKKyMKKyMgYmxvY2tBbGlhc2VzIGlzIGEgc21hbGwgaGFjayAtIGl0IGlzIHVzZWQgZm9yIG1hcHBpbmcgYmxvY2sgbmFtZXMgd2hpY2gKKyMgd2VyZSB3ZXJlIHVzZWQgaW4gdGhlIDMuMSByZWxlYXNlLCBidXQgYXJlIG1pc3Npbmcgb3IgY2hhbmdlZCBpbiB0aGUgY3VycmVudAorIyByZWxlYXNlLiAgVGhlIGZvcm1hdCBpcyAiT2xkQmxvY2tOYW1lOk5ld0Jsb2NrTmFtZTFbLE5ld0Jsb2NrTmFtZTJbLC4uLl1dIgorYmxvY2tBbGlhc2VzID0gW10KK2Jsb2NrQWxpYXNlcy5hcHBlbmQoIkNvbWJpbmluZ01hcmtzZm9yU3ltYm9sczpDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyIpCitibG9ja0FsaWFzZXMuYXBwZW5kKCJHcmVlazpHcmVla2FuZENvcHRpYyIpCitibG9ja0FsaWFzZXMuYXBwZW5kKCJQcml2YXRlVXNlOlByaXZhdGVVc2VBcmVhLFN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1BLCIgKyAKKwkiU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhLUIiKQorCisjIG1pblRhYmxlU2l6ZSBnaXZlcyB0aGUgbWluaW11bSBudW1iZXIgb2YgcmFuZ2VzIHdoaWNoIG11c3QgYmUgcHJlc2VudAorIyBiZWZvcmUgYSByYW5nZSB0YWJsZSBpcyBwcm9kdWNlZC4gIElmIHRoZXJlIGFyZSBsZXNzIHRoYW4gdGhpcworIyBudW1iZXIsIGlubGluZSBjb21wYXJpc29ucyBhcmUgZ2VuZXJhdGVkCittaW5UYWJsZVNpemUgPSA4CisKKyhibG9ja2ZpbGUsIGNhdGZpbGUpID0gc3RyaW5nLnNwbGl0KHNvdXJjZXMpCisKKworIworIyBOb3cgcHJvY2VzcyB0aGUgImJsb2NrcyIgZmlsZSwgcmVkdWNpbmcgaXQgdG8gYSBkaWN0aW9uYXJ5CisjIGluZGV4ZWQgYnkgYmxvY2tuYW1lLCBjb250YWluaW5nIGEgdHVwbGUgd2l0aCB0aGUgYXBwbGljYWJsZQorIyBibG9jayByYW5nZQorIworQmxvY2tOYW1lcyA9IHt9Cit0cnk6CisgICAgYmxvY2tzID0gb3BlbihibG9ja2ZpbGUsICJyIikKK2V4Y2VwdDoKKyAgICBwcmludCAiTWlzc2luZyAlcywgYWJvcnRpbmcgLi4uIiAlIGJsb2NrZmlsZQorICAgIHN5cy5leGl0KDEpCisKK2ZvciBsaW5lIGluIGJsb2Nrcy5yZWFkbGluZXMoKToKKyAgICBpZiBsaW5lWzBdID09ICcjJzoKKyAgICAgICAgY29udGludWUKKyAgICBsaW5lID0gc3RyaW5nLnN0cmlwKGxpbmUpCisgICAgaWYgbGluZSA9PSAnJzoKKyAgICAgICAgY29udGludWUKKyAgICB0cnk6CisgICAgICAgIGZpZWxkcyA9IHN0cmluZy5zcGxpdChsaW5lLCAnOycpCisgICAgICAgIHJhbmdlID0gc3RyaW5nLnN0cmlwKGZpZWxkc1swXSkKKyAgICAgICAgKHN0YXJ0LCBlbmQpID0gc3RyaW5nLnNwbGl0KHJhbmdlLCAiLi4iKQorICAgICAgICBuYW1lID0gc3RyaW5nLnN0cmlwKGZpZWxkc1sxXSkKKyAgICAgICAgbmFtZSA9IHN0cmluZy5yZXBsYWNlKG5hbWUsICcgJywgJycpCisgICAgZXhjZXB0OgorICAgICAgICBwcmludCAiRmFpbGVkIHRvIHByb2Nlc3MgbGluZTogJXMiICUgKGxpbmUpCisgICAgICAgIGNvbnRpbnVlCisgICAgc3RhcnQgPSAiMHgiICsgc3RhcnQKKyAgICBlbmQgPSAiMHgiICsgZW5kCisgICAgdHJ5OgorICAgICAgICBCbG9ja05hbWVzW25hbWVdLmFwcGVuZCgoc3RhcnQsIGVuZCkpCisgICAgZXhjZXB0OgorICAgICAgICBCbG9ja05hbWVzW25hbWVdID0gWyhzdGFydCwgZW5kKV0KK2Jsb2Nrcy5jbG9zZSgpCitwcmludCAiUGFyc2VkICVkIGJsb2NrcyBkZXNjcmlwdGlvbnMiICUgKGxlbihCbG9ja05hbWVzLmtleXMoKSkpCisKK2ZvciBibG9jayBpbiBibG9ja0FsaWFzZXM6CisgICAgYWxpYXMgPSBzdHJpbmcuc3BsaXQoYmxvY2ssJzonKQorICAgIGFsaXN0ID0gc3RyaW5nLnNwbGl0KGFsaWFzWzFdLCcsJykKKyAgICBmb3IgY29tcCBpbiBhbGlzdDoKKyAgICAgICAgaWYgQmxvY2tOYW1lcy5oYXNfa2V5KGNvbXApOgorICAgICAgICAgICAgaWYgYWxpYXNbMF0gbm90IGluIEJsb2NrTmFtZXM6CisgICAgICAgICAgICAgICAgQmxvY2tOYW1lc1thbGlhc1swXV0gPSBbXQorICAgICAgICAgICAgZm9yIHIgaW4gQmxvY2tOYW1lc1tjb21wXToKKyAgICAgICAgICAgICAgICBCbG9ja05hbWVzW2FsaWFzWzBdXS5hcHBlbmQocikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50ICJBbGlhcyAlczogJXMgbm90IGluIEJsb2NrcyIgJSAoYWxpYXNbMF0sIGNvbXApCisgICAgICAgICAgICBjb250aW51ZQorCisjCisjIE5leHQgcHJvY2VzcyB0aGUgQ2F0ZWdvcmllcyBmaWxlLiBUaGlzIGlzIG1vcmUgY29tcGxleCwgc2luY2UKKyMgdGhlIGZpbGUgaXMgaW4gY29kZSBzZXF1ZW5jZSwgYW5kIHdlIG5lZWQgdG8gaW52ZXJ0IGl0LiAgV2UgdXNlCisjIGEgZGljdGlvbmFyeSB3aXRoIGluZGV4IGNhdGVnb3J5LW5hbWUsIHdpdGggZWFjaCBlbnRyeSBjb250YWluaW5nCisjIGFsbCB0aGUgcmFuZ2VzIChjb2RlcG9pbnRzKSBvZiB0aGF0IGNhdGVnb3J5LiAgTm90ZSB0aGF0IGNhdGVnb3J5CisjIG5hbWVzIGNvbXByaXNlIHR3byBwYXJ0cyAtIHRoZSBnZW5lcmFsIGNhdGVnb3J5LCBhbmQgdGhlICJzdWJjbGFzcyIKKyMgd2l0aGluIHRoYXQgY2F0ZWdvcnkuICBUaGVyZWZvcmUsIGJvdGggImdlbmVyYWwgY2F0ZWdvcnkiICh3aGljaCBpcworIyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSAyLWNoYXJhY3RlciBjYXRlZ29yeS1uYW1lKSBhbmQgdGhlIGZ1bGwKKyMgKDItY2hhcmFjdGVyKSBuYW1lIGFyZSBlbnRlcmVkIGludG8gdGhpcyBkaWN0aW9uYXJ5LgorIwordHJ5OgorICAgIGRhdGEgPSBvcGVuKGNhdGZpbGUsICJyIikKK2V4Y2VwdDoKKyAgICBwcmludCAiTWlzc2luZyAlcywgYWJvcnRpbmcgLi4uIiAlIGNhdGZpbGUKKyAgICBzeXMuZXhpdCgxKQorCituYmNoYXIgPSAwOworQ2F0ZWdvcmllcyA9IHt9Citmb3IgbGluZSBpbiBkYXRhLnJlYWRsaW5lcygpOgorICAgIGlmIGxpbmVbMF0gPT0gJyMnOgorICAgICAgICBjb250aW51ZQorICAgIGxpbmUgPSBzdHJpbmcuc3RyaXAobGluZSkKKyAgICBpZiBsaW5lID09ICcnOgorICAgICAgICBjb250aW51ZQorICAgIHRyeToKKyAgICAgICAgZmllbGRzID0gc3RyaW5nLnNwbGl0KGxpbmUsICc7JykKKyAgICAgICAgcG9pbnQgPSBzdHJpbmcuc3RyaXAoZmllbGRzWzBdKQorICAgICAgICB2YWx1ZSA9IDAKKyAgICAgICAgd2hpbGUgcG9pbnQgIT0gJyc6CisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICogMTYKKyAgICAgICAgICAgIGlmIHBvaW50WzBdID49ICcwJyBhbmQgcG9pbnRbMF0gPD0gJzknOgorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKyBvcmQocG9pbnRbMF0pIC0gb3JkKCcwJykKKyAgICAgICAgICAgIGVsaWYgcG9pbnRbMF0gPj0gJ0EnIGFuZCBwb2ludFswXSA8PSAnRic6CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSArIDEwICsgb3JkKHBvaW50WzBdKSAtIG9yZCgnQScpCisgICAgICAgICAgICBlbGlmIHBvaW50WzBdID49ICdhJyBhbmQgcG9pbnRbMF0gPD0gJ2YnOgorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKyAxMCArIG9yZChwb2ludFswXSkgLSBvcmQoJ2EnKQorICAgICAgICAgICAgcG9pbnQgPSBwb2ludFsxOl0KKyAgICAgICAgbmFtZSA9IGZpZWxkc1syXQorICAgIGV4Y2VwdDoKKyAgICAgICAgcHJpbnQgIkZhaWxlZCB0byBwcm9jZXNzIGxpbmU6ICVzIiAlIChsaW5lKQorICAgICAgICBjb250aW51ZQorICAgIAorICAgIG5iY2hhciA9IG5iY2hhciArIDEKKyAgICAjIHVwZGF0ZSBlbnRyeSBmb3IgImZ1bGwgbmFtZSIKKyAgICB0cnk6CisgICAgICAgIENhdGVnb3JpZXNbbmFtZV0uYXBwZW5kKHZhbHVlKQorICAgIGV4Y2VwdDoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgQ2F0ZWdvcmllc1tuYW1lXSA9IFt2YWx1ZV0KKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcHJpbnQgIkZhaWxlZCB0byBwcm9jZXNzIGxpbmU6ICVzIiAlIChsaW5lKQorICAgICMgdXBkYXRlICJnZW5lcmFsIGNhdGVnb3J5IiBuYW1lCisgICAgdHJ5OgorICAgICAgICBDYXRlZ29yaWVzW25hbWVbMF1dLmFwcGVuZCh2YWx1ZSkKKyAgICBleGNlcHQ6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIENhdGVnb3JpZXNbbmFtZVswXV0gPSBbdmFsdWVdCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHByaW50ICJGYWlsZWQgdG8gcHJvY2VzcyBsaW5lOiAlcyIgJSAobGluZSkKKworYmxvY2tzLmNsb3NlKCkKK3ByaW50ICJQYXJzZWQgJWQgY2hhciBnZW5lcmF0aW5nICVkIGNhdGVnb3JpZXMiICUgKG5iY2hhciwgbGVuKENhdGVnb3JpZXMua2V5cygpKSkKKworIworIyBUaGUgZGF0YSBpcyBub3cgYWxsIHJlYWQuICBUaW1lIHRvIHByb2Nlc3MgaXQgaW50byBhIG1vcmUgdXNlZnVsIGZvcm0uCisjCisjIHJlZHVjZSB0aGUgbnVtYmVyIGxpc3QgaW50byByYW5nZXMKK2ZvciBjYXQgaW4gQ2F0ZWdvcmllcy5rZXlzKCk6CisgICAgbGlzdCA9IENhdGVnb3JpZXNbY2F0XQorICAgIHN0YXJ0ID0gLTEKKyAgICBwcmV2ID0gLTEKKyAgICBlbmQgPSAtMQorICAgIHJhbmdlcyA9IFtdCisgICAgZm9yIHZhbCBpbiBsaXN0OgorICAgICAgICBpZiBzdGFydCA9PSAtMToKKyAgICAgICAgICAgIHN0YXJ0ID0gdmFsCisgICAgICAgICAgICBwcmV2ID0gdmFsCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBlbGlmIHZhbCA9PSBwcmV2ICsgMToKKyAgICAgICAgICAgIHByZXYgPSB2YWwKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGVsaWYgcHJldiA9PSBzdGFydDoKKyAgICAgICAgICAgIHJhbmdlcy5hcHBlbmQoKHByZXYsIHByZXYpKQorICAgICAgICAgICAgc3RhcnQgPSB2YWwKKyAgICAgICAgICAgIHByZXYgPSB2YWwKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYW5nZXMuYXBwZW5kKChzdGFydCwgcHJldikpCisgICAgICAgICAgICBzdGFydCA9IHZhbAorICAgICAgICAgICAgcHJldiA9IHZhbAorICAgICAgICAgICAgY29udGludWUKKyAgICBpZiBwcmV2ID09IHN0YXJ0OgorICAgICAgICByYW5nZXMuYXBwZW5kKChwcmV2LCBwcmV2KSkKKyAgICBlbHNlOgorICAgICAgICByYW5nZXMuYXBwZW5kKChzdGFydCwgcHJldikpCisgICAgQ2F0ZWdvcmllc1tjYXRdID0gcmFuZ2VzCisKKyMKKyMgQXNzdXJlIGFsbCBkYXRhIGlzIGluIGFscGhhYmV0aWMgb3JkZXIsIHNpbmNlIHdlIHdpbGwgYmUgZG9pbmcgYmluYXJ5CisjIHNlYXJjaGVzIG9uIHRoZSB0YWJsZXMuCisjCitia2V5cyA9IEJsb2NrTmFtZXMua2V5cygpCitia2V5cy5zb3J0KCkKKworY2tleXMgPSBDYXRlZ29yaWVzLmtleXMoKQorY2tleXMuc29ydCgpCisKKyMKKyMgR2VuZXJhdGUgdGhlIHJlc3VsdGluZyBmaWxlcworIwordHJ5OgorICAgIGhlYWRlciA9IG9wZW4oImluY2x1ZGUvbGlieG1sL3htbHVuaWNvZGUuaCIsICJ3IikKK2V4Y2VwdDoKKyAgICBwcmludCAiRmFpbGVkIHRvIG9wZW4gaW5jbHVkZS9saWJ4bWwveG1sdW5pY29kZS5oIgorICAgIHN5cy5leGl0KDEpCisKK3RyeToKKyAgICBvdXRwdXQgPSBvcGVuKCJ4bWx1bmljb2RlLmMiLCAidyIpCitleGNlcHQ6CisgICAgcHJpbnQgIkZhaWxlZCB0byBvcGVuIHhtbHVuaWNvZGUuYyIKKyAgICBzeXMuZXhpdCgxKQorCitkYXRlID0gdGltZS5hc2N0aW1lKHRpbWUubG9jYWx0aW1lKHRpbWUudGltZSgpKSkKKworaGVhZGVyLndyaXRlKAorIiIiLyoKKyAqIFN1bW1hcnk6IFVuaWNvZGUgY2hhcmFjdGVyIEFQSXMKKyAqIERlc2NyaXB0aW9uOiBBUEkgZm9yIHRoZSBVbmljb2RlIGNoYXJhY3RlciBBUElzCisgKgorICogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlCisgKiBVQ1MgZGVzY3JpcHRpb24gZmlsZXMgb2YgdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlCisgKiAlcworICogdXNpbmcgdGhlIGdlblVuaWNvZGUucHkgUHl0aG9uIHNjcmlwdC4KKyAqCisgKiBHZW5lcmF0aW9uIGRhdGU6ICVzCisgKiBTb3VyY2VzOiAlcworICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fWE1MX1VOSUNPREVfSF9fCisjZGVmaW5lIF9fWE1MX1VOSUNPREVfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX1VOSUNPREVfRU5BQkxFRAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyIiIiAlICh3ZWJwYWdlLCBkYXRlLCBzb3VyY2VzKSk7CisKK291dHB1dC53cml0ZSgKKyIiIi8qCisgKiB4bWx1bmljb2RlLmM6IHRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIEFQSXMKKyAqCisgKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUKKyAqIFVDUyBkZXNjcmlwdGlvbiBmaWxlcyBvZiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UKKyAqICVzCisgKiB1c2luZyB0aGUgZ2VuVW5pY29kZS5weSBQeXRob24gc2NyaXB0LgorICoKKyAqIEdlbmVyYXRpb24gZGF0ZTogJXMKKyAqIFNvdXJjZXM6ICVzCisgKiBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+CisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIExJQlhNTF9VTklDT0RFX0VOQUJMRUQKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHVuaWNvZGUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvY2h2YWxpZC5oPgorCit0eXBlZGVmIGludCAoeG1sSW50RnVuYykoaW50KTsJLyoganVzdCB0byBrZWVwIG9uZSdzIG1pbmQgdW50d2lzdGVkICovCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBjaGFyICpyYW5nZW5hbWU7CisgICAgeG1sSW50RnVuYyAqZnVuYzsKK30geG1sVW5pY29kZVJhbmdlOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeG1sVW5pY29kZVJhbmdlICp0YWJsZTsKKyAgICBpbnQJCSAgICBudW1lbnRyaWVzOworfSB4bWxVbmljb2RlTmFtZVRhYmxlOworCisKK3N0YXRpYyB4bWxJbnRGdW5jICp4bWxVbmljb2RlTG9va3VwKHhtbFVuaWNvZGVOYW1lVGFibGUgKnRwdHIsIGNvbnN0IGNoYXIgKnRuYW1lKTsKKworc3RhdGljIHhtbFVuaWNvZGVSYW5nZSB4bWxVbmljb2RlQmxvY2tzW10gPSB7CisiIiIgJSAod2VicGFnZSwgZGF0ZSwgc291cmNlcykpOworCitmbGFnID0gMAorZm9yIGJsb2NrIGluIGJrZXlzOgorICAgIG5hbWUgPSBzdHJpbmcucmVwbGFjZShibG9jaywgJy0nLCAnJykKKyAgICBpZiBmbGFnOgorICAgICAgICBvdXRwdXQud3JpdGUoJyxcbicpCisgICAgZWxzZToKKyAgICAgICAgZmxhZyA9IDEKKyAgICBvdXRwdXQud3JpdGUoJyAgeyIlcyIsIHhtbFVDU0lzJXN9JyAlIChibG9jaywgbmFtZSkpCitvdXRwdXQud3JpdGUoJ307XG5cbicpCisKK291dHB1dC53cml0ZSgnc3RhdGljIHhtbFVuaWNvZGVSYW5nZSB4bWxVbmljb2RlQ2F0c1tdID0ge1xuJykKK2ZsYWcgPSAwOworZm9yIG5hbWUgaW4gY2tleXM6CisgICAgaWYgZmxhZzoKKyAgICAgICAgb3V0cHV0LndyaXRlKCcsXG4nKQorICAgIGVsc2U6CisgICAgICAgIGZsYWcgPSAxCisgICAgb3V0cHV0LndyaXRlKCcgIHsiJXMiLCB4bWxVQ1NJc0NhdCVzfScgJSAobmFtZSwgbmFtZSkpCitvdXRwdXQud3JpdGUoJ307XG5cbicpCisKKyMKKyMgRm9yIGFueSBjYXRlZ29yaWVzIHdpdGggbW9yZSB0aGFuIG1pblRhYmxlU2l6ZSByYW5nZXMgd2UgZ2VuZXJhdGUKKyMgYSByYW5nZSB0YWJsZSBzdWl0YWJsZSBmb3IgeG1sQ2hhckluUmFuZ2UKKyMKK2ZvciBuYW1lIGluIGNrZXlzOgorICBpZiBsZW4oQ2F0ZWdvcmllc1tuYW1lXSkgPiBtaW5UYWJsZVNpemU6CisgICAgbnVtc2hvcnQgPSAwCisgICAgbnVtbG9uZyA9IDAKKyAgICByYW5nZXMgPSBDYXRlZ29yaWVzW25hbWVdCisgICAgc3B0ciA9ICJOVUxMIgorICAgIGxwdHIgPSAiTlVMTCIKKyAgICBmb3IgcmFuZ2UgaW4gcmFuZ2VzOgorICAgICAgKGxvdywgaGlnaCkgPSByYW5nZQorICAgICAgaWYgaGlnaCA8IDB4MTAwMDA6CisgICAgICAgIGlmIG51bXNob3J0ID09IDA6CisgICAgICAgICAgcGxpbmUgPSAic3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbCVzU1tdID0geyIgJSBuYW1lCisgICAgICAgICAgc3B0ciA9ICJ4bWwlc1MiICUgbmFtZQorICAgICAgICBlbHNlOgorICAgICAgICAgIHBsaW5lICs9ICIsICIKKyAgICAgICAgbnVtc2hvcnQgKz0gMQorICAgICAgZWxzZToKKyAgICAgICAgaWYgbnVtbG9uZyA9PSAwOgorICAgICAgICAgIGlmIG51bXNob3J0ID4gMDoKKyAgICAgICAgICAgIG91dHB1dC53cml0ZShwbGluZSArICIgfTtcbiIpCisgICAgICAgICAgcGxpbmUgPSAic3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbCVzTFtdID0geyIgJSBuYW1lCisgICAgICAgICAgbHB0ciA9ICJ4bWwlc0wiICUgbmFtZQorICAgICAgICBlbHNlOgorICAgICAgICAgIHBsaW5lICs9ICIsICIKKyAgICAgICAgbnVtbG9uZyArPSAxCisgICAgICBpZiBsZW4ocGxpbmUpID4gNjA6CisgICAgICAgIG91dHB1dC53cml0ZShwbGluZSArICJcbiIpCisgICAgICAgIHBsaW5lID0gIiAgICAiCisgICAgICBwbGluZSArPSAieyVzLCAlc30iICUgKGhleChsb3cpLCBoZXgoaGlnaCkpCisgICAgb3V0cHV0LndyaXRlKHBsaW5lICsgIiB9O1xuc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWwlc0cgPSB7JXMsJXMsJXMsJXN9O1xuXG4iCisgICAgICAgICAlIChuYW1lLCBudW1zaG9ydCwgbnVtbG9uZywgc3B0ciwgbHB0cikpCisKKworb3V0cHV0LndyaXRlKAorIiIic3RhdGljIHhtbFVuaWNvZGVOYW1lVGFibGUgeG1sVW5pY29kZUJsb2NrVGJsID0ge3htbFVuaWNvZGVCbG9ja3MsICVzfTsKK3N0YXRpYyB4bWxVbmljb2RlTmFtZVRhYmxlIHhtbFVuaWNvZGVDYXRUYmwgPSB7eG1sVW5pY29kZUNhdHMsICVzfTsKKworLyoqCisgKiB4bWxVbmljb2RlTG9va3VwOgorICogQHRwdHI6IHBvaW50ZXIgdG8gdGhlIG5hbWUgdGFibGUKKyAqIEBuYW1lOiBuYW1lIHRvIGJlIGZvdW5kCisgKgorICogYmluYXJ5IHRhYmxlIGxvb2t1cCBmb3IgdXNlci1zdXBwbGllZCBuYW1lCisgKgorICogUmV0dXJucyBwb2ludGVyIHRvIHJhbmdlIGZ1bmN0aW9uIGlmIGZvdW5kLCBvdGhlcndpc2UgTlVMTAorICovCitzdGF0aWMgeG1sSW50RnVuYworKnhtbFVuaWNvZGVMb29rdXAoeG1sVW5pY29kZU5hbWVUYWJsZSAqdHB0ciwgY29uc3QgY2hhciAqdG5hbWUpIHsKKyAgICBpbnQgbG93LCBoaWdoLCBtaWQsIGNtcDsKKyAgICB4bWxVbmljb2RlUmFuZ2UgKnNwdHI7CisKKyAgICBpZiAoKHRwdHIgPT0gTlVMTCkgfHwgKHRuYW1lID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisKKyAgICBsb3cgPSAwOworICAgIGhpZ2ggPSB0cHRyLT5udW1lbnRyaWVzIC0gMTsKKyAgICBzcHRyID0gdHB0ci0+dGFibGU7CisgICAgd2hpbGUgKGxvdyA8PSBoaWdoKSB7CisJbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKKwlpZiAoKGNtcD1zdHJjbXAodG5hbWUsIHNwdHJbbWlkXS5yYW5nZW5hbWUpKSA9PSAwKQorCSAgICByZXR1cm4gKHNwdHJbbWlkXS5mdW5jKTsKKwlpZiAoY21wIDwgMCkKKwkgICAgaGlnaCA9IG1pZCAtIDE7CisJZWxzZQorCSAgICBsb3cgPSBtaWQgKyAxOworICAgIH0KKyAgICByZXR1cm4gKE5VTEwpOyAgICAKK30KKworIiIiICUgKGxlbihCbG9ja05hbWVzKSwgbGVuKENhdGVnb3JpZXMpKSApCisKK2ZvciBibG9jayBpbiBia2V5czoKKyAgICBuYW1lID0gc3RyaW5nLnJlcGxhY2UoYmxvY2ssICctJywgJycpCisgICAgaGVhZGVyLndyaXRlKCJYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXMlc1x0KGludCBjb2RlKTtcbiIgJSBuYW1lKQorICAgIG91dHB1dC53cml0ZSgiLyoqXG4gKiB4bWxVQ1NJcyVzOlxuICogQGNvZGU6IFVDUyBjb2RlIHBvaW50XG4iICUgKG5hbWUpKQorICAgIG91dHB1dC53cml0ZSgiICpcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mICVzIFVDUyBCbG9ja1xuIiUKKyAgICAgICAgICAgICAgICAgKGJsb2NrKSkKKyAgICBvdXRwdXQud3JpdGUoIiAqXG4gKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZVxuICovXG4iKTsKKyAgICBvdXRwdXQud3JpdGUoImludFxueG1sVUNTSXMlcyhpbnQgY29kZSkge1xuICAgIHJldHVybigiICUgbmFtZSkKKyAgICBmbGFnID0gMAorICAgIGZvciAoc3RhcnQsIGVuZCkgaW4gQmxvY2tOYW1lc1tibG9ja106CisgICAgICAgIGlmIGZsYWc6CisgICAgICAgICAgICBvdXRwdXQud3JpdGUoIiB8fFxuICAgICAgICAgICAiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmxhZyA9IDEKKyAgICAgICAgb3V0cHV0LndyaXRlKCIoKGNvZGUgPj0gJXMpICYmIChjb2RlIDw9ICVzKSkiICUgKHN0YXJ0LCBlbmQpKQorICAgIG91dHB1dC53cml0ZSgiKTtcbn1cblxuIikKKworaGVhZGVyLndyaXRlKCJcblhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0Jsb2NrXHQoaW50IGNvZGUsIGNvbnN0IGNoYXIgKmJsb2NrKTtcblxuIikKK291dHB1dC53cml0ZSgKKyIiIi8qKgorICogeG1sVUNTSXNCbG9jazoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICogQGJsb2NrOiBVQ1MgYmxvY2sgbmFtZQorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIHRoZSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgb24gdW5rbm93biBibG9jaworICovCitpbnQKK3htbFVDU0lzQmxvY2soaW50IGNvZGUsIGNvbnN0IGNoYXIgKmJsb2NrKSB7CisgICAgeG1sSW50RnVuYyAqZnVuYzsKKworICAgIGZ1bmMgPSB4bWxVbmljb2RlTG9va3VwKCZ4bWxVbmljb2RlQmxvY2tUYmwsIGJsb2NrKTsKKyAgICBpZiAoZnVuYyA9PSBOVUxMKQorCXJldHVybiAoLTEpOworICAgIHJldHVybiAoZnVuYyhjb2RlKSk7Cit9CisKKyIiIikKKworZm9yIG5hbWUgaW4gY2tleXM6CisgICAgcmFuZ2VzID0gQ2F0ZWdvcmllc1tuYW1lXQorICAgIGhlYWRlci53cml0ZSgiWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0JXNcdChpbnQgY29kZSk7XG4iICUgbmFtZSkKKyAgICBvdXRwdXQud3JpdGUoIi8qKlxuICogeG1sVUNTSXNDYXQlczpcbiAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludFxuIiAlIChuYW1lKSkKKyAgICBvdXRwdXQud3JpdGUoIiAqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiAlcyBVQ1MgQ2F0ZWdvcnlcbiIlCisgICAgICAgICAgICAgICAgIChuYW1lKSkKKyAgICBvdXRwdXQud3JpdGUoIiAqXG4gKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZVxuICovXG4iKTsKKyAgICBvdXRwdXQud3JpdGUoImludFxueG1sVUNTSXNDYXQlcyhpbnQgY29kZSkge1xuIiAlIG5hbWUpCisgICAgaWYgbGVuKENhdGVnb3JpZXNbbmFtZV0pID4gbWluVGFibGVTaXplOgorICAgICAgICBvdXRwdXQud3JpdGUoIiAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sJXNHKSIKKyAgICAgICAgICAgICUgbmFtZSkKKyAgICBlbHNlOgorICAgICAgICBzdGFydCA9IDEKKyAgICAgICAgZm9yIHJhbmdlIGluIHJhbmdlczoKKyAgICAgICAgICAgIChiZWdpbiwgZW5kKSA9IHJhbmdlOworICAgICAgICAgICAgaWYgc3RhcnQ6CisgICAgICAgICAgICAgICAgb3V0cHV0LndyaXRlKCIgICAgcmV0dXJuKCIpOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBvdXRwdXQud3JpdGUoIiB8fFxuICAgICAgICAgICAiKTsKKyAgICAgICAgICAgIGlmIChiZWdpbiA9PSBlbmQpOgorICAgICAgICAgICAgICAgIG91dHB1dC53cml0ZSgiKGNvZGUgPT0gJXMpIiAlIChoZXgoYmVnaW4pKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgb3V0cHV0LndyaXRlKCIoKGNvZGUgPj0gJXMpICYmIChjb2RlIDw9ICVzKSkiICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgIGhleChiZWdpbiksIGhleChlbmQpKSkKKyAgICBvdXRwdXQud3JpdGUoIik7XG59XG5cbiIpCisKK2hlYWRlci53cml0ZSgiXG5YTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRcdChpbnQgY29kZSwgY29uc3QgY2hhciAqY2F0KTtcbiIpCitvdXRwdXQud3JpdGUoCisiIiIvKioKKyAqIHhtbFVDU0lzQ2F0OgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKiBAY2F0OiBVQ1MgQ2F0ZWdvcnkgbmFtZQorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIHRoZSBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgb24gdW5rbm93biBjYXRlZ29yeQorICovCitpbnQKK3htbFVDU0lzQ2F0KGludCBjb2RlLCBjb25zdCBjaGFyICpjYXQpIHsKKyAgICB4bWxJbnRGdW5jICpmdW5jOworCisgICAgZnVuYyA9IHhtbFVuaWNvZGVMb29rdXAoJnhtbFVuaWNvZGVDYXRUYmwsIGNhdCk7CisgICAgaWYgKGZ1bmMgPT0gTlVMTCkKKwlyZXR1cm4gKC0xKTsKKyAgICByZXR1cm4gKGZ1bmMoY29kZSkpOworfQorCisjZGVmaW5lIGJvdHRvbV94bWx1bmljb2RlCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgorI2VuZGlmIC8qIExJQlhNTF9VTklDT0RFX0VOQUJMRUQgKi8KKyIiIikKKworaGVhZGVyLndyaXRlKCIiIgorI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIExJQlhNTF9VTklDT0RFX0VOQUJMRUQgKi8KKworI2VuZGlmIC8qIF9fWE1MX1VOSUNPREVfSF9fICovCisiIiIpOworCitoZWFkZXIuY2xvc2UoKQorb3V0cHV0LmNsb3NlKCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvZ2VudGVzdC5weSBiL2xpYnhtbDItMi43LjcvZ2VudGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMTc4NjIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9nZW50ZXN0LnB5CkBAIC0wLDAgKzEsOTYzIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyBnZW5lcmF0ZSBhIHRlc3RlciBwcm9ncmFtIGZvciB0aGUgQVBJCisjCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBzdHJpbmcKK3RyeToKKyAgICBpbXBvcnQgbGlieG1sMgorZXhjZXB0OgorICAgIHByaW50ICJsaWJ4bWwyIHB5dGhvbiBiaW5kaW5ncyBub3QgYXZhaWxhYmxlLCBza2lwcGluZyB0ZXN0YXBpLmMgZ2VuZXJhdGlvbiIKKyAgICBzeXMuZXhpdCgwKQorCitpZiBsZW4oc3lzLmFyZ3YpID4gMToKKyAgICBzcmNQcmVmID0gc3lzLmFyZ3ZbMV0gKyAnLycKK2Vsc2U6CisgICAgc3JjUHJlZiA9ICcnCisKKyMKKyMgTW9kdWxlcyB3ZSB3YW50IHRvIHNraXAgaW4gQVBJIHRlc3QKKyMKK3NraXBwZWRfbW9kdWxlcyA9IFsgIlNBWCIsICJ4bGluayIsICJ0aHJlYWRzIiwgImdsb2JhbHMiLAorICAieG1sbWVtb3J5IiwgInhtbHZlcnNpb24iLCAieG1sZXhwb3J0cyIsCisgICNkZXByZWNhdGVkCisgICJET0NCcGFyc2VyIiwKK10KKworIworIyBkZWZpbmVzIGZvciBlYWNoIG1vZHVsZQorIworbW9kdWxlc19kZWZpbmVzID0geworICAgICJIVE1McGFyc2VyIjogIkxJQlhNTF9IVE1MX0VOQUJMRUQiLAorICAgICJjYXRhbG9nIjogIkxJQlhNTF9DQVRBTE9HX0VOQUJMRUQiLAorICAgICJ4bWxyZWFkZXIiOiAiTElCWE1MX1JFQURFUl9FTkFCTEVEIiwKKyAgICAicmVsYXhuZyI6ICJMSUJYTUxfU0NIRU1BU19FTkFCTEVEIiwKKyAgICAic2NoZW1hc0ludGVybmFscyI6ICJMSUJYTUxfU0NIRU1BU19FTkFCTEVEIiwKKyAgICAieG1sc2NoZW1hcyI6ICJMSUJYTUxfU0NIRU1BU19FTkFCTEVEIiwKKyAgICAieG1sc2NoZW1hc3R5cGVzIjogIkxJQlhNTF9TQ0hFTUFTX0VOQUJMRUQiLAorICAgICJ4cGF0aCI6ICJMSUJYTUxfWFBBVEhfRU5BQkxFRCIsCisgICAgInhwYXRoSW50ZXJuYWxzIjogIkxJQlhNTF9YUEFUSF9FTkFCTEVEIiwKKyAgICAieGluY2x1ZGUiOiAiTElCWE1MX1hJTkNMVURFX0VOQUJMRUQiLAorICAgICJ4cG9pbnRlciI6ICJMSUJYTUxfWFBUUl9FTkFCTEVEIiwKKyAgICAieG1scmVnZXhwIiA6ICJMSUJYTUxfUkVHRVhQX0VOQUJMRUQiLAorICAgICJ4bWxhdXRvbWF0YSIgOiAiTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQiLAorICAgICJ4bWxzYXZlIiA6ICJMSUJYTUxfT1VUUFVUX0VOQUJMRUQiLAorICAgICJET0NCcGFyc2VyIiA6ICJMSUJYTUxfRE9DQl9FTkFCTEVEIiwKKyAgICAieG1sbW9kdWxlIiA6ICJMSUJYTUxfTU9EVUxFU19FTkFCTEVEIiwKKyAgICAicGF0dGVybiIgOiAiTElCWE1MX1BBVFRFUk5fRU5BQkxFRCIsCisgICAgInNjaGVtYXRyb24iIDogIkxJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQiLAorfQorCisjCisjIGRlZmluZXMgZm9yIHNwZWNpZmljIGZ1bmN0aW9ucworIworZnVuY3Rpb25fZGVmaW5lcyA9IHsKKyAgICAiaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCI6ICJMSUJYTUxfSFRNTF9FTkFCTEVEIiwKKyAgICAieG1sU0FYMkVuZEVsZW1lbnQiIDogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxTQVgyU3RhcnRFbGVtZW50IiA6ICJMSUJYTUxfU0FYMV9FTkFCTEVEIiwKKyAgICAieG1sU0FYRGVmYXVsdFZlcnNpb24iIDogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJVVEY4VG9pc29sYXQxIiA6ICJMSUJYTUxfT1VUUFVUX0VOQUJMRUQiLAorICAgICJ4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzIjogIkxJQlhNTF9MRUdBQ1lfRU5BQkxFRCIsCisgICAgInhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMiOiAiTElCWE1MX0xFR0FDWV9FTkFCTEVEIiwKKyAgICAieG1sU2V0RmVhdHVyZSI6ICJMSUJYTUxfTEVHQUNZX0VOQUJMRUQiLAorICAgICJ4bWxHZXRGZWF0dXJlIjogIkxJQlhNTF9MRUdBQ1lfRU5BQkxFRCIsCisgICAgInhtbEdldEZlYXR1cmVzTGlzdCI6ICJMSUJYTUxfTEVHQUNZX0VOQUJMRUQiLAorICAgICJ4bWxJT1BhcnNlRFREIjogIkxJQlhNTF9WQUxJRF9FTkFCTEVEIiwKKyAgICAieG1sUGFyc2VEVEQiOiAiTElCWE1MX1ZBTElEX0VOQUJMRUQiLAorICAgICJ4bWxQYXJzZURvYyI6ICJMSUJYTUxfU0FYMV9FTkFCTEVEIiwKKyAgICAieG1sUGFyc2VNZW1vcnkiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFJlY292ZXJEb2MiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFBhcnNlRmlsZSI6ICJMSUJYTUxfU0FYMV9FTkFCTEVEIiwKKyAgICAieG1sUmVjb3ZlckZpbGUiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFJlY292ZXJNZW1vcnkiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhIjogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxTQVhQYXJzZU1lbW9yeSI6ICJMSUJYTUxfU0FYMV9FTkFCTEVEIiwKKyAgICAieG1sU0FYVXNlclBhcnNlTWVtb3J5IjogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxTQVhQYXJzZURvYyI6ICJMSUJYTUxfU0FYMV9FTkFCTEVEIiwKKyAgICAieG1sU0FYUGFyc2VEVEQiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFNBWFVzZXJQYXJzZUZpbGUiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFBhcnNlRW50aXR5IjogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxQYXJzZUV4dGVybmFsRW50aXR5IjogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhIjogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFNldHVwUGFyc2VyRm9yQnVmZmVyIjogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxTdG9wUGFyc2VyIjogIkxJQlhNTF9QVVNIX0VOQUJMRUQiLAorICAgICJ4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCI6ICJMSUJYTUxfT1VUUFVUX0VOQUJMRUQiLAorICAgICJ4bWxTQVhQYXJzZUZpbGUiOiAiTElCWE1MX1NBWDFfRU5BQkxFRCIsCisgICAgInhtbFNBWFBhcnNlRW50aXR5IjogIkxJQlhNTF9TQVgxX0VOQUJMRUQiLAorICAgICJ4bWxOZXdUZXh0Q2hpbGQiOiAiTElCWE1MX1RSRUVfRU5BQkxFRCIsCisgICAgInhtbE5ld0RvY1Jhd05vZGUiOiAiTElCWE1MX1RSRUVfRU5BQkxFRCIsCisgICAgInhtbE5ld1Byb3AiOiAiTElCWE1MX1RSRUVfRU5BQkxFRCIsCisgICAgInhtbFJlY29uY2lsaWF0ZU5zIjogIkxJQlhNTF9UUkVFX0VOQUJMRUQiLAorICAgICJ4bWxWYWxpZGF0ZU5DTmFtZSI6ICJMSUJYTUxfVFJFRV9FTkFCTEVEIiwKKyAgICAieG1sVmFsaWRhdGVOTVRva2VuIjogIkxJQlhNTF9UUkVFX0VOQUJMRUQiLAorICAgICJ4bWxWYWxpZGF0ZU5hbWUiOiAiTElCWE1MX1RSRUVfRU5BQkxFRCIsCisgICAgInhtbE5ld0NoaWxkIjogIkxJQlhNTF9UUkVFX0VOQUJMRUQiLAorICAgICJ4bWxWYWxpZGF0ZVFOYW1lIjogIkxJQlhNTF9UUkVFX0VOQUJMRUQiLAorICAgICJ4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiOiAiTElCWE1MX09VVFBVVF9FTkFCTEVEIiwKKyAgICAieG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbiIgOiAiTElCWE1MX1ZBTElEX0VOQUJMRUQiLAorICAgICJ4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMiIDogIkxJQlhNTF9WQUxJRF9FTkFCTEVEIiwKKyAgICAiZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCIgOiAiTElCWE1MX0RPQ0JfRU5BQkxFRCIsCisgICAgInhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4iIDogIkxJQlhNTF9QQVRURVJOX0VOQUJMRUQiLAorfQorCisjCisjIFNvbWUgZnVuY3Rpb25zIHJlYWxseSBuZWVkIHRvIGJlIHNraXBwZWQgZm9yIHRoZSB0ZXN0cy4KKyMKK3NraXBwZWRfZnVuY3Rpb25zID0gWworIyBibG9jayBvbiBJL08KKyJ4bWxGZFJlYWQiLCAieG1sUmVhZEZkIiwgInhtbEN0eHRSZWFkRmQiLAorImh0bWxGZFJlYWQiLCAiaHRtbFJlYWRGZCIsICJodG1sQ3R4dFJlYWRGZCIsCisieG1sUmVhZGVyTmV3RmQiLCAieG1sUmVhZGVyRm9yRmQiLAorInhtbElPUmVhZCIsICJ4bWxSZWFkSU8iLCAieG1sQ3R4dFJlYWRJTyIsCisiaHRtbElPUmVhZCIsICJodG1sUmVhZElPIiwgImh0bWxDdHh0UmVhZElPIiwKKyJ4bWxSZWFkZXJOZXdJTyIsICJ4bWxCdWZmZXJEdW1wIiwgInhtbE5hbm9GVFBDb25uZWN0IiwKKyJ4bWxOYW5vRlRQQ29ubmVjdFRvIiwgInhtbE5hbm9IVFRQTWV0aG9kIiwgInhtbE5hbm9IVFRQTWV0aG9kUmVkaXIiLAorIyBDb21wbGV4IEkvTyBBUElzCisieG1sQ3JlYXRlSU9QYXJzZXJDdHh0IiwgInhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8iLAorInhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MiLCAieG1sUmVhZGVyRm9ySU8iLAorInhtbE91dHB1dEJ1ZmZlckNyZWF0ZUlPIiwgInhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzIiwKKyJ4bWxTYXZlVG9JTyIsICJ4bWxJT0hUVFBPcGVuVyIsCisjIGxpYnJhcnkgc3RhdGUgY2xlYW51cCwgZ2VuZXJhdGUgZmFsc2UgbGVhayBpbmZvcm1hdGlvbnMgYW5kIG90aGVyCisjIHRyb3VibGVzLCBoZWF2aWxseWIgdGVzdGVkIG90aGVyd2lzZS4KKyJ4bWxDbGVhbnVwUGFyc2VyIiwgInhtbFJlbGF4TkdDbGVhbnVwVHlwZXMiLCAieG1sU2V0TGlzdERvYyIsCisieG1sU2V0VHJlZURvYyIsICJ4bWxVbmxpbmtOb2RlIiwKKyMgaGFyZCB0byBhdm9pZCBsZWFrcyBpbiB0aGUgdGVzdHMKKyJ4bWxTdHJjYXQiLCAieG1sU3RybmNhdCIsICJ4bWxDYXRhbG9nQWRkTG9jYWwiLCAieG1sTmV3VGV4dFdyaXRlckRvYyIsCisieG1sWFBhdGhOZXdWYWx1ZVRyZWUiLCAieG1sWFBhdGhXcmFwU3RyaW5nIiwKKyMgdW5pbXBsZW1lbnRlZAorInhtbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwiLCAieG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbCIsCisieG1sVGV4dFJlYWRlclJlYWRTdHJpbmciLAorIyBkZXN0cnVjdG9yCisieG1sTGlzdERlbGV0ZSIsICJ4bWxPdXRwdXRCdWZmZXJDbG9zZSIsICJ4bWxOYW5vRlRQQ2xvc2UiLCAieG1sTmFub0hUVFBDbG9zZSIsCisjIGRlcHJlY2F0ZWQKKyJ4bWxDYXRhbG9nR2V0UHVibGljIiwgInhtbENhdGFsb2dHZXRTeXN0ZW0iLCAieG1sRW5jb2RlRW50aXRpZXMiLAorInhtbE5ld0dsb2JhbE5zIiwgInhtbEhhbmRsZUVudGl0eSIsICJ4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSIsCisieG1sTmFtZXNwYWNlUGFyc2VOU0RlZiIsICJ4bWxOYW1lc3BhY2VQYXJzZVFOYW1lIiwKKyJ4bWxQYXJzZU5hbWVzcGFjZSIsICJ4bWxQYXJzZVF1b3RlZFN0cmluZyIsICJ4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UiLAorInhtbFNjYW5OYW1lIiwKKyJ4bWxEZWNvZGVFbnRpdGllcyIsIAorIyBhbGxvY2F0b3JzCisieG1sTWVtRnJlZSIsCisjIHZlcmJvc2l0eQorInhtbENhdGFsb2dTZXREZWJ1ZyIsICJ4bWxTaGVsbFByaW50WFBhdGhFcnJvciIsICJ4bWxTaGVsbFByaW50Tm9kZSIsCisjIEludGVybmFsIGZ1bmN0aW9ucywgbm8gdXNlciBzcGFjZSBzaG91bGQgcmVhbGx5IGNhbGwgdGhlbQorInhtbFBhcnNlQXR0cmlidXRlIiwgInhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2wiLCAieG1sUGFyc2VOYW1lIiwKKyJ4bWxQYXJzZU5tdG9rZW4iLCAieG1sUGFyc2VFbnRpdHlWYWx1ZSIsICJ4bWxQYXJzZUF0dFZhbHVlIiwKKyJ4bWxQYXJzZVN5c3RlbUxpdGVyYWwiLCAieG1sUGFyc2VQdWJpZExpdGVyYWwiLCAieG1sUGFyc2VDaGFyRGF0YSIsCisieG1sUGFyc2VFeHRlcm5hbElEIiwgInhtbFBhcnNlQ29tbWVudCIsICJ4bWxQYXJzZVBJVGFyZ2V0IiwgInhtbFBhcnNlUEkiLAorInhtbFBhcnNlTm90YXRpb25EZWNsIiwgInhtbFBhcnNlRW50aXR5RGVjbCIsICJ4bWxQYXJzZURlZmF1bHREZWNsIiwKKyJ4bWxQYXJzZU5vdGF0aW9uVHlwZSIsICJ4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSIsICJ4bWxQYXJzZUVudW1lcmF0ZWRUeXBlIiwKKyJ4bWxQYXJzZUF0dHJpYnV0ZVR5cGUiLCAieG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbCIsCisieG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCIsICJ4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsIiwKKyJ4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCIsICJ4bWxQYXJzZUVsZW1lbnREZWNsIiwgInhtbFBhcnNlTWFya3VwRGVjbCIsCisieG1sUGFyc2VDaGFyUmVmIiwgInhtbFBhcnNlRW50aXR5UmVmIiwgInhtbFBhcnNlUmVmZXJlbmNlIiwKKyJ4bWxQYXJzZVBFUmVmZXJlbmNlIiwgInhtbFBhcnNlRG9jVHlwZURlY2wiLCAieG1sUGFyc2VBdHRyaWJ1dGUiLAorInhtbFBhcnNlU3RhcnRUYWciLCAieG1sUGFyc2VFbmRUYWciLCAieG1sUGFyc2VDRFNlY3QiLCAieG1sUGFyc2VDb250ZW50IiwKKyJ4bWxQYXJzZUVsZW1lbnQiLCAieG1sUGFyc2VWZXJzaW9uTnVtIiwgInhtbFBhcnNlVmVyc2lvbkluZm8iLAorInhtbFBhcnNlRW5jTmFtZSIsICJ4bWxQYXJzZUVuY29kaW5nRGVjbCIsICJ4bWxQYXJzZVNERGVjbCIsCisieG1sUGFyc2VYTUxEZWNsIiwgInhtbFBhcnNlVGV4dERlY2wiLCAieG1sUGFyc2VNaXNjIiwKKyJ4bWxQYXJzZUV4dGVybmFsU3Vic2V0IiwgInhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlIiwKKyJ4bWxTa2lwQmxhbmtDaGFycyIsCitdCisKKyMKKyMgVGhlc2UgZnVuY3Rpb25zIGhhdmUgc2lkZSBlZmZlY3RzIG9uIHRoZSBnbG9iYWwgc3RhdGUKKyMgYW5kIGhlbmNlIGdlbmVyYXRlIGVycm9ycyBvbiBtZW1vcnkgYWxsb2NhdGlvbiB0ZXN0cworIworc2tpcHBlZF9tZW1jaGVjayA9IFsgInhtbExvYWRDYXRhbG9nIiwgInhtbEFkZEVuY29kaW5nQWxpYXMiLAorICAgInhtbFNjaGVtYUluaXRUeXBlcyIsICJ4bWxOYW5vRlRQUHJveHkiLCAieG1sTmFub0ZUUFNjYW5Qcm94eSIsCisgICAieG1sTmFub0hUVFBTY2FuUHJveHkiLCAieG1sUmVzZXRMYXN0RXJyb3IiLCAieG1sQ2F0YWxvZ0NvbnZlcnQiLAorICAgInhtbENhdGFsb2dSZW1vdmUiLCAieG1sTG9hZENhdGFsb2dzIiwgInhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycyIsCisgICAieG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzIiwgInhtbENhdGFsb2dDbGVhbnVwIiwKKyAgICJ4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSIsCisgICAiaHRtbFBhcnNlRmlsZSIsICJodG1sQ3R4dFJlYWRGaWxlIiwgIyBsb2FkcyB0aGUgY2F0YWxvZ3MKKyAgICJ4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUiLCAieG1sU2NoZW1hQ2xlYW51cFR5cGVzIiwgIyBpbml0aWFsaXplIHRoZSBzY2hlbWFzIHR5cGUgc3lzdGVtCisgICAieG1sQ2F0YWxvZ1Jlc29sdmUiLCAieG1sSU9QYXJzZURURCIgIyBsb2FkcyB0aGUgY2F0YWxvZ3MKK10KKworIworIyBFeHRyYSBjb2RlIG5lZWRlZCBmb3Igc29tZSB0ZXN0IGNhc2VzCisjCitleHRyYV9wcmVfY2FsbCA9IHsKKyAgICJ4bWxTQVhVc2VyUGFyc2VGaWxlIjogIiIiCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgICAgICBpZiAoc2F4ID09ICh4bWxTQVhIYW5kbGVyUHRyKSZ4bWxEZWZhdWx0U0FYSGFuZGxlcikgdXNlcl9kYXRhID0gTlVMTDsKKyNlbmRpZgorIiIiLAorICAgInhtbFNBWFVzZXJQYXJzZU1lbW9yeSI6ICIiIgorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICAgICAgaWYgKHNheCA9PSAoeG1sU0FYSGFuZGxlclB0cikmeG1sRGVmYXVsdFNBWEhhbmRsZXIpIHVzZXJfZGF0YSA9IE5VTEw7CisjZW5kaWYKKyIiIiwKKyAgICJ4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkiOiAiIiIKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgICAgIGlmIChzYXggPT0gKHhtbFNBWEhhbmRsZXJQdHIpJnhtbERlZmF1bHRTQVhIYW5kbGVyKSB1c2VyX2RhdGEgPSBOVUxMOworI2VuZGlmCisiIiIsCisgICAieG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciI6ICIiIgorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICAgICAgaWYgKHNheCA9PSAoeG1sU0FYSGFuZGxlclB0cikmeG1sRGVmYXVsdFNBWEhhbmRsZXIpIHVzZXJfZGF0YSA9IE5VTEw7CisjZW5kaWYKKyIiIiwKKyAgICJ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkIjoKKyAgICAgICAiaWYgKGZkID49IDApIGZkID0gLTE7IiwKK30KK2V4dHJhX3Bvc3RfY2FsbCA9IHsKKyAgICJ4bWxBZGRDaGlsZCI6IAorICAgICAgICJpZiAocmV0X3ZhbCA9PSBOVUxMKSB7IHhtbEZyZWVOb2RlKGN1cikgOyBjdXIgPSBOVUxMIDsgfSIsCisgICAieG1sQWRkRW50aXR5IjoKKyAgICAgICAiaWYgKHJldF92YWwgIT0gTlVMTCkgeyB4bWxGcmVlTm9kZShyZXRfdmFsKSA7IHJldF92YWwgPSBOVUxMOyB9IiwKKyAgICJ4bWxBZGRDaGlsZExpc3QiOiAKKyAgICAgICAiaWYgKHJldF92YWwgPT0gTlVMTCkgeyB4bWxGcmVlTm9kZUxpc3QoY3VyKSA7IGN1ciA9IE5VTEwgOyB9IiwKKyAgICJ4bWxBZGRTaWJsaW5nIjoKKyAgICAgICAiaWYgKHJldF92YWwgPT0gTlVMTCkgeyB4bWxGcmVlTm9kZShlbGVtKSA7IGVsZW0gPSBOVUxMIDsgfSIsCisgICAieG1sQWRkTmV4dFNpYmxpbmciOgorICAgICAgICJpZiAocmV0X3ZhbCA9PSBOVUxMKSB7IHhtbEZyZWVOb2RlKGVsZW0pIDsgZWxlbSA9IE5VTEwgOyB9IiwKKyAgICJ4bWxBZGRQcmV2U2libGluZyI6IAorICAgICAgICJpZiAocmV0X3ZhbCA9PSBOVUxMKSB7IHhtbEZyZWVOb2RlKGVsZW0pIDsgZWxlbSA9IE5VTEwgOyB9IiwKKyAgICJ4bWxEb2NTZXRSb290RWxlbWVudCI6IAorICAgICAgICJpZiAoZG9jID09IE5VTEwpIHsgeG1sRnJlZU5vZGUocm9vdCkgOyByb290ID0gTlVMTCA7IH0iLAorICAgInhtbFJlcGxhY2VOb2RlIjogCisgICAgICAgIiIiaWYgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgIHhtbFVubGlua05vZGUoY3VyKTsKKyAgICAgICAgICAgICAgeG1sRnJlZU5vZGUoY3VyKSA7IGN1ciA9IE5VTEwgOyB9CisgICAgICAgICAgaWYgKG9sZCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgIHhtbFVubGlua05vZGUob2xkKTsKKyAgICAgICAgICAgICAgeG1sRnJlZU5vZGUob2xkKSA7IG9sZCA9IE5VTEwgOyB9CisJICByZXRfdmFsID0gTlVMTDsiIiIsCisgICAieG1sVGV4dE1lcmdlIjogCisgICAgICAgIiIiaWYgKChmaXJzdCAhPSBOVUxMKSAmJiAoZmlyc3QtPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkpIHsKKyAgICAgICAgICAgICAgeG1sVW5saW5rTm9kZShzZWNvbmQpOworICAgICAgICAgICAgICB4bWxGcmVlTm9kZShzZWNvbmQpIDsgc2Vjb25kID0gTlVMTCA7IH0iIiIsCisgICAieG1sQnVpbGRRTmFtZSI6IAorICAgICAgICIiImlmICgocmV0X3ZhbCAhPSBOVUxMKSAmJiAocmV0X3ZhbCAhPSBuY25hbWUpICYmCisgICAgICAgICAgICAgIChyZXRfdmFsICE9IHByZWZpeCkgJiYgKHJldF92YWwgIT0gbWVtb3J5KSkKKyAgICAgICAgICAgICAgeG1sRnJlZShyZXRfdmFsKTsKKwkgIHJldF92YWwgPSBOVUxMOyIiIiwKKyAgICJ4bWxOZXdEb2NFbGVtZW50Q29udGVudCI6CisgICAgICAgIiIieG1sRnJlZURvY0VsZW1lbnRDb250ZW50KGRvYywgcmV0X3ZhbCk7IHJldF92YWwgPSBOVUxMOyIiIiwKKyAgICJ4bWxEaWN0UmVmZXJlbmNlIjogInhtbERpY3RGcmVlKGRpY3QpOyIsCisgICAjIEZ1bmN0aW9ucyB3aGljaCBkZWFsbG9jYXRlcyBvbmUgb2YgdGhlaXIgcGFyYW1ldGVycworICAgInhtbFhQYXRoQ29udmVydEJvb2xlYW4iOiAiIiJ2YWwgPSBOVUxMOyIiIiwKKyAgICJ4bWxYUGF0aENvbnZlcnROdW1iZXIiOiAiIiJ2YWwgPSBOVUxMOyIiIiwKKyAgICJ4bWxYUGF0aENvbnZlcnRTdHJpbmciOiAiIiJ2YWwgPSBOVUxMOyIiIiwKKyAgICJ4bWxTYXZlRmlsZVRvIjogIiIiYnVmID0gTlVMTDsiIiIsCisgICAieG1sU2F2ZUZvcm1hdEZpbGVUbyI6ICIiImJ1ZiA9IE5VTEw7IiIiLAorICAgInhtbElPUGFyc2VEVEQiOiAiaW5wdXQgPSBOVUxMOyIsCisgICAieG1sUmVtb3ZlUHJvcCI6ICJjdXIgPSBOVUxMOyIsCisgICAieG1sTmV3TnMiOiAiaWYgKChub2RlID09IE5VTEwpICYmIChyZXRfdmFsICE9IE5VTEwpKSB4bWxGcmVlTnMocmV0X3ZhbCk7IiwKKyAgICJ4bWxDb3B5TmFtZXNwYWNlIjogImlmIChyZXRfdmFsICE9IE5VTEwpIHhtbEZyZWVOcyhyZXRfdmFsKTsiLAorICAgInhtbENvcHlOYW1lc3BhY2VMaXN0IjogImlmIChyZXRfdmFsICE9IE5VTEwpIHhtbEZyZWVOc0xpc3QocmV0X3ZhbCk7IiwKKyAgICJ4bWxOZXdUZXh0V3JpdGVyIjogImlmIChyZXRfdmFsICE9IE5VTEwpIG91dCA9IE5VTEw7IiwKKyAgICJ4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciI6ICJpZiAoY3R4dCAhPSBOVUxMKSB7eG1sRnJlZURvYyhjdHh0LT5teURvYyk7IGN0eHQtPm15RG9jID0gTlVMTDt9IGlmIChyZXRfdmFsICE9IE5VTEwpIGN0eHQgPSBOVUxMOyIsCisgICAieG1sTmV3SU9JbnB1dFN0cmVhbSI6ICJpZiAocmV0X3ZhbCAhPSBOVUxMKSBpbnB1dCA9IE5VTEw7IiwKKyAgICJodG1sUGFyc2VDaHVuayI6ICJpZiAoY3R4dCAhPSBOVUxMKSB7eG1sRnJlZURvYyhjdHh0LT5teURvYyk7IGN0eHQtPm15RG9jID0gTlVMTDt9IiwKKyAgICJodG1sUGFyc2VEb2N1bWVudCI6ICJpZiAoY3R4dCAhPSBOVUxMKSB7eG1sRnJlZURvYyhjdHh0LT5teURvYyk7IGN0eHQtPm15RG9jID0gTlVMTDt9IiwKKyAgICJ4bWxQYXJzZURvY3VtZW50IjogImlmIChjdHh0ICE9IE5VTEwpIHt4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsgY3R4dC0+bXlEb2MgPSBOVUxMO30iLAorICAgInhtbFBhcnNlQ2h1bmsiOiAiaWYgKGN0eHQgIT0gTlVMTCkge3htbEZyZWVEb2MoY3R4dC0+bXlEb2MpOyBjdHh0LT5teURvYyA9IE5VTEw7fSIsCisgICAieG1sUGFyc2VFeHRQYXJzZWRFbnQiOiAiaWYgKGN0eHQgIT0gTlVMTCkge3htbEZyZWVEb2MoY3R4dC0+bXlEb2MpOyBjdHh0LT5teURvYyA9IE5VTEw7fSIsCisgICAieG1sRE9NV3JhcEFkb3B0Tm9kZSI6ICJpZiAoKG5vZGUgIT0gTlVMTCkgJiYgKG5vZGUtPnBhcmVudCA9PSBOVUxMKSkge3htbFVubGlua05vZGUobm9kZSk7eG1sRnJlZU5vZGUobm9kZSk7bm9kZSA9IE5VTEw7fSIsCisgICAieG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSI6ICJpZiAoKGJ1ZiAhPSBOVUxMKSAmJiAoc2NoZW1lID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSAmJiAoYnVmLT5jb250ZW50ICE9IE5VTEwpICYmIChidWYtPmNvbnRlbnQgIT0gc3RhdGljX2J1Zl9jb250ZW50KSkgeyB4bWxGcmVlKGJ1Zi0+Y29udGVudCk7IGJ1Zi0+Y29udGVudCA9IE5VTEw7fSIKK30KKworbW9kdWxlcyA9IFtdCisKK2RlZiBpc19za2lwcGVkX21vZHVsZShuYW1lKToKKyAgICBmb3IgbW9kIGluIHNraXBwZWRfbW9kdWxlczoKKyAgICAgICAgaWYgbW9kID09IG5hbWU6CisJICAgIHJldHVybiAxCisgICAgcmV0dXJuIDAKKworZGVmIGlzX3NraXBwZWRfZnVuY3Rpb24obmFtZSk6CisgICAgZm9yIGZ1biBpbiBza2lwcGVkX2Z1bmN0aW9uczoKKyAgICAgICAgaWYgZnVuID09IG5hbWU6CisJICAgIHJldHVybiAxCisgICAgIyBEbyBub3QgdGVzdCBkZXN0cnVjdG9ycworICAgIGlmIHN0cmluZy5maW5kKG5hbWUsICdGcmVlJykgIT0gLTE6CisgICAgICAgIHJldHVybiAxCisgICAgcmV0dXJuIDAKKworZGVmIGlzX3NraXBwZWRfbWVtY2hlY2sobmFtZSk6CisgICAgZm9yIGZ1biBpbiBza2lwcGVkX21lbWNoZWNrOgorICAgICAgICBpZiBmdW4gPT0gbmFtZToKKwkgICAgcmV0dXJuIDEKKyAgICByZXR1cm4gMAorCittaXNzaW5nX3R5cGVzID0ge30KK2RlZiBhZGRfbWlzc2luZ190eXBlKG5hbWUsIGZ1bmMpOgorICAgIHRyeToKKyAgICAgICAgbGlzdCA9IG1pc3NpbmdfdHlwZXNbbmFtZV0KKwlsaXN0LmFwcGVuZChmdW5jKQorICAgIGV4Y2VwdDoKKyAgICAgICAgbWlzc2luZ190eXBlc1tuYW1lXSA9IFtmdW5jXQorCitnZW5lcmF0ZWRfcGFyYW1fdHlwZXMgPSBbXQorZGVmIGFkZF9nZW5lcmF0ZWRfcGFyYW1fdHlwZShuYW1lKToKKyAgICBnZW5lcmF0ZWRfcGFyYW1fdHlwZXMuYXBwZW5kKG5hbWUpCisKK2dlbmVyYXRlZF9yZXR1cm5fdHlwZXMgPSBbXQorZGVmIGFkZF9nZW5lcmF0ZWRfcmV0dXJuX3R5cGUobmFtZSk6CisgICAgZ2VuZXJhdGVkX3JldHVybl90eXBlcy5hcHBlbmQobmFtZSkKKworbWlzc2luZ19mdW5jdGlvbnMgPSB7fQorbWlzc2luZ19mdW5jdGlvbnNfbnIgPSAwCitkZWYgYWRkX21pc3NpbmdfZnVuY3Rpb25zKG5hbWUsIG1vZHVsZSk6CisgICAgZ2xvYmFsIG1pc3NpbmdfZnVuY3Rpb25zX25yCisKKyAgICBtaXNzaW5nX2Z1bmN0aW9uc19uciA9IG1pc3NpbmdfZnVuY3Rpb25zX25yICsgMQorICAgIHRyeToKKyAgICAgICAgbGlzdCA9IG1pc3NpbmdfZnVuY3Rpb25zW21vZHVsZV0KKwlsaXN0LmFwcGVuZChuYW1lKQorICAgIGV4Y2VwdDoKKyAgICAgICAgbWlzc2luZ19mdW5jdGlvbnNbbW9kdWxlXSA9IFtuYW1lXQorCisjCisjIFByb3ZpZGUgdGhlIHR5cGUgZ2VuZXJhdG9ycyBhbmQgZGVzdHJ1Y3RvcnMgZm9yIHRoZSBwYXJhbWV0ZXJzCisjCisKK2RlZiB0eXBlX2NvbnZlcnQoc3RyLCBuYW1lLCBpbmZvLCBtb2R1bGUsIGZ1bmN0aW9uLCBwb3MpOgorIyAgICByZXMgPSBzdHJpbmcucmVwbGFjZShzdHIsICIgICAgIiwgIiAiKQorIyAgICByZXMgPSBzdHJpbmcucmVwbGFjZShzdHIsICIgICAiLCAiICIpCisjICAgIHJlcyA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIiAgIiwgIiAiKQorICAgIHJlcyA9IHN0cmluZy5yZXBsYWNlKHN0ciwgIiAqIiwgIl9wdHIiKQorIyAgICByZXMgPSBzdHJpbmcucmVwbGFjZShzdHIsICIqIiwgIl9wdHIiKQorICAgIHJlcyA9IHN0cmluZy5yZXBsYWNlKHJlcywgIiAiLCAiXyIpCisgICAgaWYgcmVzID09ICdjb25zdF9jaGFyX3B0cic6CisgICAgICAgIGlmIHN0cmluZy5maW5kKG5hbWUsICJmaWxlIikgIT0gLTEgb3IgXAorICAgICAgICAgICBzdHJpbmcuZmluZChuYW1lLCAidXJpIikgIT0gLTEgb3IgXAorICAgICAgICAgICBzdHJpbmcuZmluZChuYW1lLCAiVVJJIikgIT0gLTEgb3IgXAorICAgICAgICAgICBzdHJpbmcuZmluZChpbmZvLCAiZmlsZW5hbWUiKSAhPSAtMSBvciBcCisgICAgICAgICAgIHN0cmluZy5maW5kKGluZm8sICJVUkkiKSAhPSAtMSBvciBcCisgICAgICAgICAgIHN0cmluZy5maW5kKGluZm8sICJVUkwiKSAhPSAtMToKKwkgICAgaWYgc3RyaW5nLmZpbmQoZnVuY3Rpb24sICJTYXZlIikgIT0gLTEgb3IgXAorCSAgICAgICBzdHJpbmcuZmluZChmdW5jdGlvbiwgIkNyZWF0ZSIpICE9IC0xIG9yIFwKKwkgICAgICAgc3RyaW5nLmZpbmQoZnVuY3Rpb24sICJXcml0ZSIpICE9IC0xIG9yIFwKKwkgICAgICAgc3RyaW5nLmZpbmQoZnVuY3Rpb24sICJGZXRjaCIpICE9IC0xOgorCSAgICAgICAgcmV0dXJuKCdmaWxlb3V0cHV0JykKKwkgICAgcmV0dXJuKCdmaWxlcGF0aCcpCisgICAgaWYgcmVzID09ICd2b2lkX3B0cic6CisgICAgICAgIGlmIG1vZHVsZSA9PSAnbmFub2Z0cCcgYW5kIG5hbWUgPT0gJ2N0eCc6CisJICAgIHJldHVybigneG1sTmFub0ZUUEN0eHRQdHInKQorICAgICAgICBpZiBmdW5jdGlvbiA9PSAneG1sTmFub0ZUUE5ld0N0eHQnIG9yIFwKKwkgICBmdW5jdGlvbiA9PSAneG1sTmFub0ZUUENvbm5lY3RUbycgb3IgXAorCSAgIGZ1bmN0aW9uID09ICd4bWxOYW5vRlRQT3Blbic6CisJICAgIHJldHVybigneG1sTmFub0ZUUEN0eHRQdHInKQorICAgICAgICBpZiBtb2R1bGUgPT0gJ25hbm9odHRwJyBhbmQgbmFtZSA9PSAnY3R4JzoKKwkgICAgcmV0dXJuKCd4bWxOYW5vSFRUUEN0eHRQdHInKQorCWlmIGZ1bmN0aW9uID09ICd4bWxOYW5vSFRUUE1ldGhvZCcgb3IgXAorCSAgIGZ1bmN0aW9uID09ICd4bWxOYW5vSFRUUE1ldGhvZFJlZGlyJyBvciBcCisJICAgZnVuY3Rpb24gPT0gJ3htbE5hbm9IVFRQT3Blbicgb3IgXAorCSAgIGZ1bmN0aW9uID09ICd4bWxOYW5vSFRUUE9wZW5SZWRpcic6CisJICAgIHJldHVybigneG1sTmFub0hUVFBDdHh0UHRyJyk7CisgICAgICAgIGlmIGZ1bmN0aW9uID09ICd4bWxJT0hUVFBPcGVuJzoKKwkgICAgcmV0dXJuKCd4bWxOYW5vSFRUUEN0eHRQdHInKQorCWlmIHN0cmluZy5maW5kKG5hbWUsICJkYXRhIikgIT0gLTE6CisJICAgIHJldHVybigndXNlcmRhdGEnKQorCWlmIHN0cmluZy5maW5kKG5hbWUsICJ1c2VyIikgIT0gLTE6CisJICAgIHJldHVybigndXNlcmRhdGEnKQorICAgIGlmIHJlcyA9PSAneG1sRG9jX3B0cic6CisgICAgICAgIHJlcyA9ICd4bWxEb2NQdHInCisgICAgaWYgcmVzID09ICd4bWxOb2RlX3B0cic6CisgICAgICAgIHJlcyA9ICd4bWxOb2RlUHRyJworICAgIGlmIHJlcyA9PSAneG1sRGljdF9wdHInOgorICAgICAgICByZXMgPSAneG1sRGljdFB0cicKKyAgICBpZiByZXMgPT0gJ3htbE5vZGVQdHInIGFuZCBwb3MgIT0gMDoKKyAgICAgICAgaWYgKGZ1bmN0aW9uID09ICd4bWxBZGRDaGlsZCcgYW5kIHBvcyA9PSAyKSBvciBcCisJICAgKGZ1bmN0aW9uID09ICd4bWxBZGRDaGlsZExpc3QnIGFuZCBwb3MgPT0gMikgb3IgXAorICAgICAgICAgICAoZnVuY3Rpb24gPT0gJ3htbEFkZE5leHRTaWJsaW5nJyBhbmQgcG9zID09IDIpIG9yIFwKKyAgICAgICAgICAgKGZ1bmN0aW9uID09ICd4bWxBZGRTaWJsaW5nJyBhbmQgcG9zID09IDIpIG9yIFwKKyAgICAgICAgICAgKGZ1bmN0aW9uID09ICd4bWxEb2NTZXRSb290RWxlbWVudCcgYW5kIHBvcyA9PSAyKSBvciBcCisgICAgICAgICAgIChmdW5jdGlvbiA9PSAneG1sUmVwbGFjZU5vZGUnIGFuZCBwb3MgPT0gMikgb3IgXAorICAgICAgICAgICAoZnVuY3Rpb24gPT0gJ3htbFRleHRNZXJnZScpIG9yIFwKKwkgICAoZnVuY3Rpb24gPT0gJ3htbEFkZFByZXZTaWJsaW5nJyBhbmQgcG9zID09IDIpOgorCSAgICByZXR1cm4oJ3htbE5vZGVQdHJfaW4nKTsKKyAgICBpZiByZXMgPT0gJ2NvbnN0IHhtbEJ1ZmZlclB0cic6CisgICAgICAgIHJlcyA9ICd4bWxCdWZmZXJQdHInCisgICAgaWYgcmVzID09ICd4bWxDaGFyX3B0cicgYW5kIG5hbWUgPT0gJ25hbWUnIGFuZCBcCisgICAgICAgc3RyaW5nLmZpbmQoZnVuY3Rpb24sICJFYXROYW1lIikgIT0gLTE6CisgICAgICAgIHJldHVybignZWF0ZW5fbmFtZScpCisgICAgaWYgcmVzID09ICd2b2lkX3B0cionOgorICAgICAgICByZXMgPSAndm9pZF9wdHJfcHRyJworICAgIGlmIHJlcyA9PSAnY2hhcl9wdHIqJzoKKyAgICAgICAgcmVzID0gJ2NoYXJfcHRyX3B0cicKKyAgICBpZiByZXMgPT0gJ3htbENoYXJfcHRyKic6CisgICAgICAgIHJlcyA9ICd4bWxDaGFyX3B0cl9wdHInCisgICAgaWYgcmVzID09ICdjb25zdF94bWxDaGFyX3B0cionOgorICAgICAgICByZXMgPSAnY29uc3RfeG1sQ2hhcl9wdHJfcHRyJworICAgIGlmIHJlcyA9PSAnY29uc3RfY2hhcl9wdHIqJzoKKyAgICAgICAgcmVzID0gJ2NvbnN0X2NoYXJfcHRyX3B0cicKKyAgICBpZiByZXMgPT0gJ0ZJTEVfcHRyJyBhbmQgbW9kdWxlID09ICdkZWJ1Z1hNTCc6CisgICAgICAgIHJlcyA9ICdkZWJ1Z19GSUxFX3B0cic7CisgICAgaWYgcmVzID09ICdpbnQnIGFuZCBuYW1lID09ICdvcHRpb25zJzoKKyAgICAgICAgaWYgbW9kdWxlID09ICdwYXJzZXInIG9yIG1vZHVsZSA9PSAneG1scmVhZGVyJzoKKwkgICAgcmVzID0gJ3BhcnNlcm9wdGlvbnMnCisKKyAgICByZXR1cm4gcmVzCisKK2tub3duX3BhcmFtX3R5cGVzID0gW10KKworZGVmIGlzX2tub3duX3BhcmFtX3R5cGUobmFtZSwgcnR5cGUpOgorICAgIGdsb2JhbCB0ZXN0CisgICAgZm9yIHR5cGUgaW4ga25vd25fcGFyYW1fdHlwZXM6CisgICAgICAgIGlmIHR5cGUgPT0gbmFtZToKKwkgICAgcmV0dXJuIDEKKyAgICBmb3IgdHlwZSBpbiBnZW5lcmF0ZWRfcGFyYW1fdHlwZXM6CisgICAgICAgIGlmIHR5cGUgPT0gbmFtZToKKwkgICAgcmV0dXJuIDEKKworICAgIGlmIG5hbWVbLTM6XSA9PSAnUHRyJyBvciBuYW1lWy00Ol0gPT0gJ19wdHInOgorICAgICAgICBpZiBydHlwZVswOjZdID09ICdjb25zdCAnOgorCSAgICBjcnR5cGUgPSBydHlwZVs2Ol0KKwllbHNlOgorCSAgICBjcnR5cGUgPSBydHlwZQorCisgICAgICAgIGRlZmluZSA9IDAKKwlpZiBtb2R1bGVzX2RlZmluZXMuaGFzX2tleShtb2R1bGUpOgorCSAgICB0ZXN0LndyaXRlKCIjaWZkZWYgJXNcbiIgJSAobW9kdWxlc19kZWZpbmVzW21vZHVsZV0pKQorCSAgICBkZWZpbmUgPSAxCisgICAgICAgIHRlc3Qud3JpdGUoIiIiCisjZGVmaW5lIGdlbl9uYl8lcyAxCitzdGF0aWMgJXMgZ2VuXyVzKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc18lcyhpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgJXMgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisiIiIgJSAobmFtZSwgY3J0eXBlLCBuYW1lLCBuYW1lLCBydHlwZSkpCisgICAgICAgIGlmIGRlZmluZSA9PSAxOgorCSAgICB0ZXN0LndyaXRlKCIjZW5kaWZcblxuIikKKyAgICAgICAgYWRkX2dlbmVyYXRlZF9wYXJhbV90eXBlKG5hbWUpCisgICAgICAgIHJldHVybiAxCisKKyAgICByZXR1cm4gMAorCisjCisjIFByb3ZpZGUgdGhlIHR5cGUgZGVzdHJ1Y3RvcnMgZm9yIHRoZSByZXR1cm4gdmFsdWVzCisjCisKK2tub3duX3JldHVybl90eXBlcyA9IFtdCisKK2RlZiBpc19rbm93bl9yZXR1cm5fdHlwZShuYW1lKToKKyAgICBmb3IgdHlwZSBpbiBrbm93bl9yZXR1cm5fdHlwZXM6CisgICAgICAgIGlmIHR5cGUgPT0gbmFtZToKKwkgICAgcmV0dXJuIDEKKyAgICByZXR1cm4gMAorCisjCisjIENvcHkgdGhlIGJlZ2lubmluZyBvZiB0aGUgQyB0ZXN0IHByb2dyYW0gcmVzdWx0CisjCisKK3RyeToKKyAgICBpbnB1dCA9IG9wZW4oInRlc3RhcGkuYyIsICJyIikKK2V4Y2VwdDoKKyAgICBpbnB1dCA9IG9wZW4oc3JjUHJlZiArICJ0ZXN0YXBpLmMiLCAiciIpCit0ZXN0ID0gb3BlbigndGVzdGFwaS5jLm5ldycsICd3JykKKworZGVmIGNvbXBhcmVfYW5kX3NhdmUoKToKKyAgICBnbG9iYWwgdGVzdAorCisgICAgdGVzdC5jbG9zZSgpCisgICAgdHJ5OgorICAgICAgICBpbnB1dCA9IG9wZW4oInRlc3RhcGkuYyIsICJyIikucmVhZCgpCisgICAgZXhjZXB0OgorICAgICAgICBpbnB1dCA9ICcnCisgICAgdGVzdCA9IG9wZW4oJ3Rlc3RhcGkuYy5uZXcnLCAiciIpLnJlYWQoKQorICAgIGlmIGlucHV0ICE9IHRlc3Q6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLnN5c3RlbSgicm0gdGVzdGFwaS5jOyBtdiB0ZXN0YXBpLmMubmV3IHRlc3RhcGkuYyIpCisgICAgICAgIGV4Y2VwdDoKKwkgICAgb3Muc3lzdGVtKCJtdiB0ZXN0YXBpLmMubmV3IHRlc3RhcGkuYyIpCisgICAgICAgIHByaW50KCJVcGRhdGVkIHRlc3RhcGkuYyIpCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQoIkdlbmVyYXRlZCB0ZXN0YXBpLmMgaXMgaWRlbnRpY2FsIikKKworbGluZSA9IGlucHV0LnJlYWRsaW5lKCkKK3doaWxlIGxpbmUgIT0gIiI6CisgICAgaWYgbGluZSA9PSAiLyogQ1VUIEhFUkU6IGV2ZXJ5dGhpbmcgYmVsb3cgdGhhdCBsaW5lIGlzIGdlbmVyYXRlZCAqL1xuIjoKKyAgICAgICAgYnJlYWs7CisgICAgaWYgbGluZVswOjE1XSA9PSAiI2RlZmluZSBnZW5fbmJfIjoKKyAgICAgICAgdHlwZSA9IHN0cmluZy5zcGxpdChsaW5lWzE1Ol0pWzBdCisJa25vd25fcGFyYW1fdHlwZXMuYXBwZW5kKHR5cGUpCisgICAgaWYgbGluZVswOjE5XSA9PSAic3RhdGljIHZvaWQgZGVzcmV0XyI6CisgICAgICAgIHR5cGUgPSBzdHJpbmcuc3BsaXQobGluZVsxOTpdLCAnKCcpWzBdCisJa25vd25fcmV0dXJuX3R5cGVzLmFwcGVuZCh0eXBlKQorICAgIHRlc3Qud3JpdGUobGluZSkKKyAgICBsaW5lID0gaW5wdXQucmVhZGxpbmUoKQoraW5wdXQuY2xvc2UoKQorCitpZiBsaW5lID09ICIiOgorICAgIHByaW50ICJDb3VsZCBub3QgZmluZCB0aGUgQ1VUIG1hcmtlciBpbiB0ZXN0YXBpLmMgc2tpcHBpbmcgZ2VuZXJhdGlvbiIKKyAgICB0ZXN0LmNsb3NlKCkKKyAgICBzeXMuZXhpdCgwKQorCitwcmludCgiU2Nhbm5lZCB0ZXN0YXBpLmM6IGZvdW5kICVkIHBhcmFtZXRlcnMgdHlwZXMgYW5kICVkIHJldHVybiB0eXBlc1xuIiAlICgKKyAgICAgIGxlbihrbm93bl9wYXJhbV90eXBlcyksIGxlbihrbm93bl9yZXR1cm5fdHlwZXMpKSkKK3Rlc3Qud3JpdGUoIi8qIENVVCBIRVJFOiBldmVyeXRoaW5nIGJlbG93IHRoYXQgbGluZSBpcyBnZW5lcmF0ZWQgKi9cbiIpCisKKworIworIyBPcGVuIHRoZSBpbnB1dCBBUEkgZGVzY3JpcHRpb24KKyMKK2RvYyA9IGxpYnhtbDIucmVhZEZpbGUoc3JjUHJlZiArICdkb2MvbGlieG1sMi1hcGkueG1sJywgTm9uZSwgMCkKK2lmIGRvYyA9PSBOb25lOgorICAgIHByaW50ICJGYWlsZWQgdG8gbG9hZCBkb2MvbGlieG1sMi1hcGkueG1sIgorICAgIHN5cy5leGl0KDEpCitjdHh0ID0gZG9jLnhwYXRoTmV3Q29udGV4dCgpCisKKyMKKyMgR2VuZXJhdGUgYSBsaXN0IG9mIGFsbCBmdW5jdGlvbiBwYXJhbWV0ZXJzIGFuZCBzZWxlY3Qgb25seQorIyB0aG9zZSB1c2VkIGluIHRoZSBhcGkgdGVzdHMKKyMKK2FyZ3R5cGVzID0ge30KK2FyZ3MgPSBjdHh0LnhwYXRoRXZhbCgiL2FwaS9zeW1ib2xzL2Z1bmN0aW9uL2FyZyIpCitmb3IgYXJnIGluIGFyZ3M6CisgICAgbW9kID0gYXJnLnhwYXRoRXZhbCgnc3RyaW5nKC4uL0BmaWxlKScpCisgICAgZnVuYyA9IGFyZy54cGF0aEV2YWwoJ3N0cmluZyguLi9AbmFtZSknKQorICAgIGlmIChtb2Qgbm90IGluIHNraXBwZWRfbW9kdWxlcykgYW5kIChmdW5jIG5vdCBpbiBza2lwcGVkX2Z1bmN0aW9ucyk6CisJdHlwZSA9IGFyZy54cGF0aEV2YWwoJ3N0cmluZyhAdHlwZSknKQorCWlmIG5vdCBhcmd0eXBlcy5oYXNfa2V5KHR5cGUpOgorCSAgICBhcmd0eXBlc1t0eXBlXSA9IGZ1bmMKKworIyBzaW1pbGFybHkgZm9yIHJldHVybiB0eXBlcworcmV0dHlwZXMgPSB7fQorcmV0cyA9IGN0eHQueHBhdGhFdmFsKCIvYXBpL3N5bWJvbHMvZnVuY3Rpb24vcmV0dXJuIikKK2ZvciByZXQgaW4gcmV0czoKKyAgICBtb2QgPSByZXQueHBhdGhFdmFsKCdzdHJpbmcoLi4vQGZpbGUpJykKKyAgICBmdW5jID0gcmV0LnhwYXRoRXZhbCgnc3RyaW5nKC4uL0BuYW1lKScpCisgICAgaWYgKG1vZCBub3QgaW4gc2tpcHBlZF9tb2R1bGVzKSBhbmQgKGZ1bmMgbm90IGluIHNraXBwZWRfZnVuY3Rpb25zKToKKyAgICAgICAgdHlwZSA9IHJldC54cGF0aEV2YWwoJ3N0cmluZyhAdHlwZSknKQorCWlmIG5vdCByZXR0eXBlcy5oYXNfa2V5KHR5cGUpOgorCSAgICByZXR0eXBlc1t0eXBlXSA9IGZ1bmMKKworIworIyBHZW5lcmF0ZSBjb25zdHJ1Y3RvcnMgYW5kIHJldHVybiB0eXBlIGhhbmRsaW5nIGZvciBhbGwgZW51bXMKKyMgd2hpY2ggYXJlIHVzZWQgYXMgZnVuY3Rpb24gcGFyYW1ldGVycworIworZW51bXMgPSBjdHh0LnhwYXRoRXZhbCgiL2FwaS9zeW1ib2xzL3R5cGVkZWZbQHR5cGU9J2VudW0nXSIpCitmb3IgZW51bSBpbiBlbnVtczoKKyAgICBtb2R1bGUgPSBlbnVtLnhwYXRoRXZhbCgnc3RyaW5nKEBmaWxlKScpCisgICAgbmFtZSA9IGVudW0ueHBhdGhFdmFsKCdzdHJpbmcoQG5hbWUpJykKKyAgICAjCisgICAgIyBTa2lwIGFueSBlbnVtcyB3aGljaCBhcmUgbm90IGluIG91ciBmaWx0ZXJlZCBsaXN0cworICAgICMKKyAgICBpZiAobmFtZSA9PSBOb25lKSBvciAoKG5hbWUgbm90IGluIGFyZ3R5cGVzKSBhbmQgKG5hbWUgbm90IGluIHJldHR5cGVzKSk6CisgICAgICAgIGNvbnRpbnVlOworICAgIGRlZmluZSA9IDAKKworICAgIGlmIGFyZ3R5cGVzLmhhc19rZXkobmFtZSkgYW5kIGlzX2tub3duX3BhcmFtX3R5cGUobmFtZSwgbmFtZSkgPT0gMDoKKwl2YWx1ZXMgPSBjdHh0LnhwYXRoRXZhbCgiL2FwaS9zeW1ib2xzL2VudW1bQHR5cGU9JyVzJ10iICUgbmFtZSkKKwlpID0gMAorCXZhbHMgPSBbXQorCWZvciB2YWx1ZSBpbiB2YWx1ZXM6CisJICAgIHZuYW1lID0gdmFsdWUueHBhdGhFdmFsKCdzdHJpbmcoQG5hbWUpJykKKwkgICAgaWYgdm5hbWUgPT0gTm9uZToKKwkJY29udGludWU7CisJICAgIGkgPSBpICsgMQorCSAgICBpZiBpID49IDU6CisJCWJyZWFrOworCSAgICB2YWxzLmFwcGVuZCh2bmFtZSkKKwlpZiB2YWxzID09IFtdOgorCSAgICBwcmludCAiRGlkbid0IGZpbmQgYW55IHZhbHVlIGZvciBlbnVtICVzIiAlIChuYW1lKQorCSAgICBjb250aW51ZQorCWlmIG1vZHVsZXNfZGVmaW5lcy5oYXNfa2V5KG1vZHVsZSk6CisJICAgIHRlc3Qud3JpdGUoIiNpZmRlZiAlc1xuIiAlIChtb2R1bGVzX2RlZmluZXNbbW9kdWxlXSkpCisJICAgIGRlZmluZSA9IDEKKwl0ZXN0LndyaXRlKCIjZGVmaW5lIGdlbl9uYl8lcyAlZFxuIiAlIChuYW1lLCBsZW4odmFscykpKQorCXRlc3Qud3JpdGUoIiIic3RhdGljICVzIGdlbl8lcyhpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7XG4iIiIgJQorCSAgICAgICAgICAgKG5hbWUsIG5hbWUpKQorCWkgPSAxCisJZm9yIHZhbHVlIGluIHZhbHM6CisJICAgIHRlc3Qud3JpdGUoIiAgICBpZiAobm8gPT0gJWQpIHJldHVybiglcyk7XG4iICUgKGksIHZhbHVlKSkKKwkgICAgaSA9IGkgKyAxCisJdGVzdC53cml0ZSgiIiIgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgdm9pZCBkZXNfJXMoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsICVzIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisiIiIgJSAobmFtZSwgbmFtZSkpOworCWtub3duX3BhcmFtX3R5cGVzLmFwcGVuZChuYW1lKQorCisgICAgaWYgKGlzX2tub3duX3JldHVybl90eXBlKG5hbWUpID09IDApIGFuZCAobmFtZSBpbiByZXR0eXBlcyk6CisJaWYgZGVmaW5lID09IDAgYW5kIG1vZHVsZXNfZGVmaW5lcy5oYXNfa2V5KG1vZHVsZSk6CisJICAgIHRlc3Qud3JpdGUoIiNpZmRlZiAlc1xuIiAlIChtb2R1bGVzX2RlZmluZXNbbW9kdWxlXSkpCisJICAgIGRlZmluZSA9IDEKKyAgICAgICAgdGVzdC53cml0ZSgiIiJzdGF0aWMgdm9pZCBkZXNyZXRfJXMoJXMgdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworIiIiICUgKG5hbWUsIG5hbWUpKQorCWtub3duX3JldHVybl90eXBlcy5hcHBlbmQobmFtZSkKKyAgICBpZiBkZWZpbmUgPT0gMToKKyAgICAgICAgdGVzdC53cml0ZSgiI2VuZGlmXG5cbiIpCisKKyMKKyMgTG9hZCB0aGUgaW50ZXJmYWNlcworIyAKK2hlYWRlcnMgPSBjdHh0LnhwYXRoRXZhbCgiL2FwaS9maWxlcy9maWxlIikKK2ZvciBmaWxlIGluIGhlYWRlcnM6CisgICAgbmFtZSA9IGZpbGUueHBhdGhFdmFsKCdzdHJpbmcoQG5hbWUpJykKKyAgICBpZiAobmFtZSA9PSBOb25lKSBvciAobmFtZSA9PSAnJyk6CisgICAgICAgIGNvbnRpbnVlCisKKyAgICAjCisgICAgIyBTb21lIG1vZHVsZSBtYXkgYmUgc2tpcHBlZCBiZWNhdXNlIHRoZXkgZG9uJ3QgcmVhbGx5IGNvbnNpc3RzCisgICAgIyBvZiB1c2VyIGNhbGxhYmxlIEFQSXMKKyAgICAjCisgICAgaWYgaXNfc2tpcHBlZF9tb2R1bGUobmFtZSk6CisgICAgICAgIGNvbnRpbnVlCisKKyAgICAjCisgICAgIyBkbyBub3QgdGVzdCBkZXByZWNhdGVkIEFQSXMKKyAgICAjCisgICAgZGVzYyA9IGZpbGUueHBhdGhFdmFsKCdzdHJpbmcoZGVzY3JpcHRpb24pJykKKyAgICBpZiBzdHJpbmcuZmluZChkZXNjLCAnREVQUkVDQVRFRCcpICE9IC0xOgorICAgICAgICBwcmludCAiU2tpcHBpbmcgZGVwcmVjYXRlZCBpbnRlcmZhY2UgJXMiICUgbmFtZQorCWNvbnRpbnVlOworCisgICAgdGVzdC53cml0ZSgiI2luY2x1ZGUgPGxpYnhtbC8lcy5oPlxuIiAlIG5hbWUpCisgICAgbW9kdWxlcy5hcHBlbmQobmFtZSkKKyAgICAgICAgCisjCisjIEdlbmVyYXRlIHRoZSBjYWxsZXJzIHNpZ25hdHVyZXMKKyMgCitmb3IgbW9kdWxlIGluIG1vZHVsZXM6CisgICAgdGVzdC53cml0ZSgic3RhdGljIGludCB0ZXN0XyVzKHZvaWQpO1xuIiAlIG1vZHVsZSk7CisKKyMKKyMgR2VuZXJhdGUgdGhlIHRvcCBjYWxsZXIKKyMgCisKK3Rlc3Qud3JpdGUoIiIiCisvKioKKyAqIHRlc3RsaWJ4bWwyOgorICoKKyAqIE1haW4gZW50cnkgcG9pbnQgb2YgdGhlIHRlc3RlciBmb3IgdGhlIGZ1bGwgbGlieG1sMiBtb2R1bGUsCisgKiBpdCBjYWxscyBhbGwgdGhlIHRlc3RlciBlbnRyeSBwb2ludCBmb3IgZWFjaCBtb2R1bGUuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVycm9yIGZvdW5kCisgKi8KK3N0YXRpYyBpbnQKK3Rlc3RsaWJ4bWwyKHZvaWQpCit7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworIiIiKQorCitmb3IgbW9kdWxlIGluIG1vZHVsZXM6CisgICAgdGVzdC53cml0ZSgiICAgIHRlc3RfcmV0ICs9IHRlc3RfJXMoKTtcbiIgJSBtb2R1bGUpCisKK3Rlc3Qud3JpdGUoIiIiCisgICAgcHJpbnRmKCJUb3RhbDogJWQgZnVuY3Rpb25zLCAlZCB0ZXN0cywgJWQgZXJyb3JzXFxuIiwKKyAgICAgICAgICAgZnVuY3Rpb25fdGVzdHMsIGNhbGxfdGVzdHMsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisiIiIpCisKKyMKKyMgSG93IHRvIGhhbmRsZSBhIGZ1bmN0aW9uCisjIAorbmJfdGVzdHMgPSAwCisKK2RlZiBnZW5lcmF0ZV90ZXN0KG1vZHVsZSwgbm9kZSk6CisgICAgZ2xvYmFsIHRlc3QKKyAgICBnbG9iYWwgbmJfdGVzdHMKKyAgICBuYl9jb25kID0gMAorICAgIG5vX2dlbiA9IDAKKworICAgIG5hbWUgPSBub2RlLnhwYXRoRXZhbCgnc3RyaW5nKEBuYW1lKScpCisgICAgaWYgaXNfc2tpcHBlZF9mdW5jdGlvbihuYW1lKToKKyAgICAgICAgcmV0dXJuCisKKyAgICAjCisgICAgIyBjaGVjayB3ZSBrbm93IGhvdyB0byBoYW5kbGUgdGhlIGFyZ3MgYW5kIHJldHVybiB2YWx1ZXMKKyAgICAjIGFuZCBzdG9yZSB0aGUgaW5mb3JtYXRpb25zIGZvciB0aGUgZ2VuZXJhdGlvbgorICAgICMKKyAgICB0cnk6CisJYXJncyA9IG5vZGUueHBhdGhFdmFsKCJhcmciKQorICAgIGV4Y2VwdDoKKyAgICAgICAgYXJncyA9IFtdCisgICAgdF9hcmdzID0gW10KKyAgICBuID0gMAorICAgIGZvciBhcmcgaW4gYXJnczoKKyAgICAgICAgbiA9IG4gKyAxCisgICAgICAgIHJ0eXBlID0gYXJnLnhwYXRoRXZhbCgic3RyaW5nKEB0eXBlKSIpCisJaWYgcnR5cGUgPT0gJ3ZvaWQnOgorCSAgICBicmVhazsKKwlpbmZvID0gYXJnLnhwYXRoRXZhbCgic3RyaW5nKEBpbmZvKSIpCisJbmFtID0gYXJnLnhwYXRoRXZhbCgic3RyaW5nKEBuYW1lKSIpCisgICAgICAgIHR5cGUgPSB0eXBlX2NvbnZlcnQocnR5cGUsIG5hbSwgaW5mbywgbW9kdWxlLCBuYW1lLCBuKQorCWlmIGlzX2tub3duX3BhcmFtX3R5cGUodHlwZSwgcnR5cGUpID09IDA6CisJICAgIGFkZF9taXNzaW5nX3R5cGUodHlwZSwgbmFtZSk7CisJICAgIG5vX2dlbiA9IDEKKyAgICAgICAgaWYgKHR5cGVbLTM6XSA9PSAnUHRyJyBvciB0eXBlWy00Ol0gPT0gJ19wdHInKSBhbmQgXAorCSAgICBydHlwZVswOjZdID09ICdjb25zdCAnOgorCSAgICBjcnR5cGUgPSBydHlwZVs2Ol0KKwllbHNlOgorCSAgICBjcnR5cGUgPSBydHlwZQorCXRfYXJncy5hcHBlbmQoKG5hbSwgdHlwZSwgcnR5cGUsIGNydHlwZSwgaW5mbykpCisgICAgCisgICAgdHJ5OgorCXJldHMgPSBub2RlLnhwYXRoRXZhbCgicmV0dXJuIikKKyAgICBleGNlcHQ6CisgICAgICAgIHJldHMgPSBbXQorICAgIHRfcmV0ID0gTm9uZQorICAgIGZvciByZXQgaW4gcmV0czoKKyAgICAgICAgcnR5cGUgPSByZXQueHBhdGhFdmFsKCJzdHJpbmcoQHR5cGUpIikKKwlpbmZvID0gcmV0LnhwYXRoRXZhbCgic3RyaW5nKEBpbmZvKSIpCisgICAgICAgIHR5cGUgPSB0eXBlX2NvbnZlcnQocnR5cGUsICdyZXR1cm4nLCBpbmZvLCBtb2R1bGUsIG5hbWUsIDApCisJaWYgcnR5cGUgPT0gJ3ZvaWQnOgorCSAgICBicmVhaworCWlmIGlzX2tub3duX3JldHVybl90eXBlKHR5cGUpID09IDA6CisJICAgIGFkZF9taXNzaW5nX3R5cGUodHlwZSwgbmFtZSk7CisJICAgIG5vX2dlbiA9IDEKKwl0X3JldCA9ICh0eXBlLCBydHlwZSwgaW5mbykKKwlicmVhaworCisgICAgdGVzdC53cml0ZSgiIiIKK3N0YXRpYyBpbnQKK3Rlc3RfJXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyIiIiAlIChuYW1lKSkKKworICAgIGlmIG5vX2dlbiA9PSAxOgorICAgICAgICBhZGRfbWlzc2luZ19mdW5jdGlvbnMobmFtZSwgbW9kdWxlKQorCXRlc3Qud3JpdGUoIiIiCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisiIiIpCisgICAgICAgIHJldHVybgorCisgICAgdHJ5OgorCWNvbmRzID0gbm9kZS54cGF0aEV2YWwoImNvbmQiKQorCWZvciBjb25kIGluIGNvbmRzOgorCSAgICB0ZXN0LndyaXRlKCIjaWYgJXNcbiIgJSAoY29uZC5nZXRfY29udGVudCgpKSkKKwkgICAgbmJfY29uZCA9IG5iX2NvbmQgKyAxCisgICAgZXhjZXB0OgorICAgICAgICBwYXNzCisKKyAgICBkZWZpbmUgPSAwCisgICAgaWYgZnVuY3Rpb25fZGVmaW5lcy5oYXNfa2V5KG5hbWUpOgorICAgICAgICB0ZXN0LndyaXRlKCIjaWZkZWYgJXNcbiIgJSAoZnVuY3Rpb25fZGVmaW5lc1tuYW1lXSkpCisJZGVmaW5lID0gMQorICAgIAorICAgICMgRGVjbGFyZSB0aGUgbWVtb3J5IHVzYWdlIGNvdW50ZXIKKyAgICBub19tZW0gPSBpc19za2lwcGVkX21lbWNoZWNrKG5hbWUpCisgICAgaWYgbm9fbWVtID09IDA6CisJdGVzdC53cml0ZSgiICAgIGludCBtZW1fYmFzZTtcbiIpOworCisgICAgIyBEZWNsYXJlIHRoZSByZXR1cm4gdmFsdWUKKyAgICBpZiB0X3JldCAhPSBOb25lOgorICAgICAgICB0ZXN0LndyaXRlKCIgICAgJXMgcmV0X3ZhbDtcbiIgJSAodF9yZXRbMV0pKQorCisgICAgIyBEZWNsYXJlIHRoZSBhcmd1bWVudHMKKyAgICBmb3IgYXJnIGluIHRfYXJnczoKKyAgICAgICAgKG5hbSwgdHlwZSwgcnR5cGUsIGNydHlwZSwgaW5mbykgPSBhcmc7CisJIyBhZGQgZGVjbGFyYXRpb24KKwl0ZXN0LndyaXRlKCIgICAgJXMgJXM7IC8qICVzICovXG4iICUgKGNydHlwZSwgbmFtLCBpbmZvKSkKKwl0ZXN0LndyaXRlKCIgICAgaW50IG5fJXM7XG4iICUgKG5hbSkpCisgICAgdGVzdC53cml0ZSgiXG4iKQorCisgICAgIyBDYXNjYWRlIGxvb3Agb24gb2YgZWFjaCBhcmd1bWVudCBsaXN0IG9mIHZhbHVlcworICAgIGZvciBhcmcgaW4gdF9hcmdzOgorICAgICAgICAobmFtLCB0eXBlLCBydHlwZSwgY3J0eXBlLCBpbmZvKSA9IGFyZzsKKwkjCisJdGVzdC53cml0ZSgiICAgIGZvciAobl8lcyA9IDA7bl8lcyA8IGdlbl9uYl8lcztuXyVzKyspIHtcbiIgJSAoCisJICAgICAgICAgICBuYW0sIG5hbSwgdHlwZSwgbmFtKSkKKyAgICAKKyAgICAjIGxvZyB0aGUgbWVtb3J5IHVzYWdlCisgICAgaWYgbm9fbWVtID09IDA6CisJdGVzdC53cml0ZSgiICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpO1xuIik7CisKKyAgICAjIHByZXBhcmUgdGhlIGNhbGwKKyAgICBpID0gMDsKKyAgICBmb3IgYXJnIGluIHRfYXJnczoKKyAgICAgICAgKG5hbSwgdHlwZSwgcnR5cGUsIGNydHlwZSwgaW5mbykgPSBhcmc7CisJIworCXRlc3Qud3JpdGUoIiAgICAgICAgJXMgPSBnZW5fJXMobl8lcywgJWQpO1xuIiAlIChuYW0sIHR5cGUsIG5hbSwgaSkpCisJaSA9IGkgKyAxOworCisgICAgIyBkbyB0aGUgY2FsbCwgYW5kIGNsYW51cCB0aGUgcmVzdWx0CisgICAgaWYgZXh0cmFfcHJlX2NhbGwuaGFzX2tleShuYW1lKToKKwl0ZXN0LndyaXRlKCIgICAgICAgICVzXG4iJSAoZXh0cmFfcHJlX2NhbGxbbmFtZV0pKQorICAgIGlmIHRfcmV0ICE9IE5vbmU6CisJdGVzdC53cml0ZSgiXG4gICAgICAgIHJldF92YWwgPSAlcygiICUgKG5hbWUpKQorCW5lZWQgPSAwCisJZm9yIGFyZyBpbiB0X2FyZ3M6CisJICAgIChuYW0sIHR5cGUsIHJ0eXBlLCBjcnR5cGUsIGluZm8pID0gYXJnCisJICAgIGlmIG5lZWQ6CisJICAgICAgICB0ZXN0LndyaXRlKCIsICIpCisJICAgIGVsc2U6CisJICAgICAgICBuZWVkID0gMQorCSAgICBpZiBydHlwZSAhPSBjcnR5cGU6CisJICAgICAgICB0ZXN0LndyaXRlKCIoJXMpIiAlIHJ0eXBlKQorCSAgICB0ZXN0LndyaXRlKCIlcyIgJSBuYW0pOworCXRlc3Qud3JpdGUoIik7XG4iKQorCWlmIGV4dHJhX3Bvc3RfY2FsbC5oYXNfa2V5KG5hbWUpOgorCSAgICB0ZXN0LndyaXRlKCIgICAgICAgICVzXG4iJSAoZXh0cmFfcG9zdF9jYWxsW25hbWVdKSkKKwl0ZXN0LndyaXRlKCIgICAgICAgIGRlc3JldF8lcyhyZXRfdmFsKTtcbiIgJSB0X3JldFswXSkKKyAgICBlbHNlOgorCXRlc3Qud3JpdGUoIlxuICAgICAgICAlcygiICUgKG5hbWUpKTsKKwluZWVkID0gMDsKKwlmb3IgYXJnIGluIHRfYXJnczoKKwkgICAgKG5hbSwgdHlwZSwgcnR5cGUsIGNydHlwZSwgaW5mbykgPSBhcmc7CisJICAgIGlmIG5lZWQ6CisJICAgICAgICB0ZXN0LndyaXRlKCIsICIpCisJICAgIGVsc2U6CisJICAgICAgICBuZWVkID0gMQorCSAgICBpZiBydHlwZSAhPSBjcnR5cGU6CisJICAgICAgICB0ZXN0LndyaXRlKCIoJXMpIiAlIHJ0eXBlKQorCSAgICB0ZXN0LndyaXRlKCIlcyIgJSBuYW0pCisJdGVzdC53cml0ZSgiKTtcbiIpCisJaWYgZXh0cmFfcG9zdF9jYWxsLmhhc19rZXkobmFtZSk6CisJICAgIHRlc3Qud3JpdGUoIiAgICAgICAgJXNcbiIlIChleHRyYV9wb3N0X2NhbGxbbmFtZV0pKQorCisgICAgdGVzdC53cml0ZSgiICAgICAgICBjYWxsX3Rlc3RzKys7XG4iKTsKKworICAgICMgRnJlZSB0aGUgYXJndW1lbnRzCisgICAgaSA9IDA7CisgICAgZm9yIGFyZyBpbiB0X2FyZ3M6CisgICAgICAgIChuYW0sIHR5cGUsIHJ0eXBlLCBjcnR5cGUsIGluZm8pID0gYXJnOworCSMgVGhpcyBpcyBhIGhhY2sgdG8gcHJldmVudCBnZW5lcmF0aW5nIGEgZGVzdHJ1Y3RvciBmb3IgdGhlCisJIyAnaW5wdXQnIGFyZ3VtZW50IGluIHhtbFRleHRSZWFkZXJTZXR1cC4gIFRoZXJlIHNob3VsZCBiZQorCSMgYSBiZXR0ZXIsIG1vcmUgZ2VuZXJpYyB3YXkgdG8gZG8gdGhpcyEKKwlpZiBzdHJpbmcuZmluZChpbmZvLCAnZGVzdHJveScpID09IC0xOgorCSAgICB0ZXN0LndyaXRlKCIgICAgICAgIGRlc18lcyhuXyVzLCAiICUgKHR5cGUsIG5hbSkpCisJICAgIGlmIHJ0eXBlICE9IGNydHlwZToKKwkgICAgICAgIHRlc3Qud3JpdGUoIiglcykiICUgcnR5cGUpCisJICAgIHRlc3Qud3JpdGUoIiVzLCAlZCk7XG4iICUgKG5hbSwgaSkpCisJaSA9IGkgKyAxOworCisgICAgdGVzdC53cml0ZSgiICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpO1xuIik7CisgICAgIyBDaGVjayB0aGUgbWVtb3J5IHVzYWdlCisgICAgaWYgbm9fbWVtID09IDA6CisJdGVzdC53cml0ZSgiIiIgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICUlZCBibG9ja3MgZm91bmQgaW4gJXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisiIiIgJSAobmFtZSkpOworCWZvciBhcmcgaW4gdF9hcmdzOgorCSAgICAobmFtLCB0eXBlLCBydHlwZSwgY3J0eXBlLCBpbmZvKSA9IGFyZzsKKwkgICAgdGVzdC53cml0ZSgiIiIgICAgICAgICAgICBwcmludGYoIiAlJWQiLCBuXyVzKTtcbiIiIiAlIChuYW0pKQorCXRlc3Qud3JpdGUoIiIiICAgICAgICAgICAgcHJpbnRmKCJcXG4iKTtcbiIiIikKKwl0ZXN0LndyaXRlKCIgICAgICAgIH1cbiIpCisKKyAgICBmb3IgYXJnIGluIHRfYXJnczoKKwl0ZXN0LndyaXRlKCIgICAgfVxuIikKKworICAgIHRlc3Qud3JpdGUoIiAgICBmdW5jdGlvbl90ZXN0cysrO1xuIikKKyAgICAjCisgICAgIyBlbmQgb2YgY29uZGl0aW9uYWwKKyAgICAjCisgICAgd2hpbGUgbmJfY29uZCA+IDA6CisgICAgICAgIHRlc3Qud3JpdGUoIiNlbmRpZlxuIikKKwluYl9jb25kID0gbmJfY29uZCAtMQorICAgIGlmIGRlZmluZSA9PSAxOgorICAgICAgICB0ZXN0LndyaXRlKCIjZW5kaWZcbiIpCisKKyAgICBuYl90ZXN0cyA9IG5iX3Rlc3RzICsgMTsKKworICAgIHRlc3Qud3JpdGUoIiIiCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworIiIiKQorICAgIAorIworIyBHZW5lcmF0ZSBhbGwgbW9kdWxlIGNhbGxlcnMKKyMKK2ZvciBtb2R1bGUgaW4gbW9kdWxlczoKKyAgICAjIGdhdGhlciBhbGwgdGhlIGZ1bmN0aW9ucyBleHBvcnRlZCBieSB0aGF0IG1vZHVsZQorICAgIHRyeToKKwlmdW5jdGlvbnMgPSBjdHh0LnhwYXRoRXZhbCgiL2FwaS9zeW1ib2xzL2Z1bmN0aW9uW0BmaWxlPSclcyddIiAlIChtb2R1bGUpKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcHJpbnQgIkZhaWxlZCB0byBnYXRoZXIgZnVuY3Rpb25zIGZyb20gbW9kdWxlICVzIiAlIChtb2R1bGUpCisJY29udGludWU7CisKKyAgICAjIGl0ZXJhdGUgb3ZlciBhbGwgZnVuY3Rpb25zIGluIHRoZSBtb2R1bGUgZ2VuZXJhdGluZyB0aGUgdGVzdAorICAgIGkgPSAwCisgICAgbmJfdGVzdHNfb2xkID0gbmJfdGVzdHMKKyAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgorICAgICAgICBpID0gaSArIDEKKyAgICAgICAgZ2VuZXJhdGVfdGVzdChtb2R1bGUsIGZ1bmN0aW9uKTsKKworICAgICMgaGVhZGVyCisgICAgdGVzdC53cml0ZSgiIiJzdGF0aWMgaW50Cit0ZXN0XyVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyAlcyA6ICVkIG9mICVkIGZ1bmN0aW9ucyAuLi5cXG4iKTsKKyIiIiAlIChtb2R1bGUsIG1vZHVsZSwgbmJfdGVzdHMgLSBuYl90ZXN0c19vbGQsIGkpKQorCisgICAgIyBpdGVyYXRlIG92ZXIgYWxsIGZ1bmN0aW9ucyBpbiB0aGUgbW9kdWxlIGdlbmVyYXRpbmcgdGhlIGNhbGwKKyAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgorICAgICAgICBuYW1lID0gZnVuY3Rpb24ueHBhdGhFdmFsKCdzdHJpbmcoQG5hbWUpJykKKwlpZiBpc19za2lwcGVkX2Z1bmN0aW9uKG5hbWUpOgorCSAgICBjb250aW51ZQorCXRlc3Qud3JpdGUoIiAgICB0ZXN0X3JldCArPSB0ZXN0XyVzKCk7XG4iICUgKG5hbWUpKQorCisgICAgIyBmb290ZXIKKyAgICB0ZXN0LndyaXRlKCIiIgorICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlICVzOiAlJWQgZXJyb3JzXFxuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisiIiIgJSAobW9kdWxlKSkKKworIworIyBHZW5lcmF0ZSBkaXJlY3QgbW9kdWxlIGNhbGxlcgorIwordGVzdC53cml0ZSgiIiJzdGF0aWMgaW50Cit0ZXN0X21vZHVsZShjb25zdCBjaGFyICptb2R1bGUpIHsKKyIiIik7Citmb3IgbW9kdWxlIGluIG1vZHVsZXM6CisgICAgdGVzdC53cml0ZSgiIiIgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAiJXMiKSkgcmV0dXJuKHRlc3RfJXMoKSk7XG4iIiIgJSAoCisgICAgICAgIG1vZHVsZSwgbW9kdWxlKSkKK3Rlc3Qud3JpdGUoIiIiICAgIHJldHVybigwKTsKK30KKyIiIik7CisKK3ByaW50ICJHZW5lcmF0ZWQgdGVzdCBmb3IgJWQgbW9kdWxlcyBhbmQgJWQgZnVuY3Rpb25zIiAlKGxlbihtb2R1bGVzKSwgbmJfdGVzdHMpCisKK2NvbXBhcmVfYW5kX3NhdmUoKQorCittaXNzaW5nX2xpc3QgPSBbXQorZm9yIG1pc3NpbmcgaW4gbWlzc2luZ190eXBlcy5rZXlzKCk6CisgICAgaWYgbWlzc2luZyA9PSAndmFfbGlzdCcgb3IgbWlzc2luZyA9PSAnLi4uJzoKKyAgICAgICAgY29udGludWU7CisKKyAgICBuID0gbGVuKG1pc3NpbmdfdHlwZXNbbWlzc2luZ10pCisgICAgbWlzc2luZ19saXN0LmFwcGVuZCgobiwgbWlzc2luZykpCisKK2RlZiBjb21wYXJlX21pc3NpbmcoYSwgYik6CisgICAgcmV0dXJuIGJbMF0gLSBhWzBdCisKK21pc3NpbmdfbGlzdC5zb3J0KGNvbXBhcmVfbWlzc2luZykKK3ByaW50ICJNaXNzaW5nIHN1cHBvcnQgZm9yICVkIGZ1bmN0aW9ucyBhbmQgJWQgdHlwZXMgc2VlIG1pc3NpbmcubHN0IiAlIChtaXNzaW5nX2Z1bmN0aW9uc19uciwgbGVuKG1pc3NpbmdfbGlzdCkpCitsc3QgPSBvcGVuKCJtaXNzaW5nLmxzdCIsICJ3IikKK2xzdC53cml0ZSgiTWlzc2luZyBzdXBwb3J0IGZvciAlZCB0eXBlcyIgJSAobGVuKG1pc3NpbmdfbGlzdCkpKQorbHN0LndyaXRlKCJcbiIpCitmb3IgbWlzcyBpbiBtaXNzaW5nX2xpc3Q6CisgICAgbHN0LndyaXRlKCIlczogJWQgOiIgJSAobWlzc1sxXSwgbWlzc1swXSkpCisgICAgaSA9IDAKKyAgICBmb3IgbiBpbiBtaXNzaW5nX3R5cGVzW21pc3NbMV1dOgorICAgICAgICBpID0gaSArIDEKKyAgICAgICAgaWYgaSA+IDU6CisJICAgIGxzdC53cml0ZSgiIC4uLiIpCisJICAgIGJyZWFrCisJbHN0LndyaXRlKCIgJXMiICUgKG4pKQorICAgIGxzdC53cml0ZSgiXG4iKQorbHN0LndyaXRlKCJcbiIpCitsc3Qud3JpdGUoIlxuIikKK2xzdC53cml0ZSgiTWlzc2luZyBzdXBwb3J0IHBlciBtb2R1bGUiKTsKK2ZvciBtb2R1bGUgaW4gbWlzc2luZ19mdW5jdGlvbnMua2V5cygpOgorICAgIGxzdC53cml0ZSgibW9kdWxlICVzOlxuICAgJXNcbiIgJSAobW9kdWxlLCBtaXNzaW5nX2Z1bmN0aW9uc1ttb2R1bGVdKSkKKworbHN0LmNsb3NlKCkKKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2dsb2JhbHMuYyBiL2xpYnhtbDItMi43LjcvZ2xvYmFscy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MDAyZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2dsb2JhbHMuYwpAQCAtMCwwICsxLDExMTQgQEAKKy8qCisgKiBnbG9iYWxzLmM6IGRlZmluaXRpb24gYW5kIGhhbmRsaW5nIG9mIHRoZSBzZXQgb2YgZ2xvYmFsIHZhcmlhYmxlcworICogICAgICAgICAgICBvZiB0aGUgbGlicmFyeQorICoKKyAqIFRoZSBib3R0b20gb2YgdGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGJ1aWxkX2dsb2IucHkKKyAqIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiBmaWxlIGdsb2JhbC5kYXRhCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEdhcnkgUGVubmluZ3RvbiA8R2FyeS5QZW5uaW5ndG9uQHVrLnN1bi5jb20+CisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3RocmVhZHMuaD4KKworLyogI2RlZmluZSBERUJVR19HTE9CQUxTICovCisKKy8qCisgKiBIZWxwZnVsIE1hY3JvCisgKi8KKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgSVNfTUFJTl9USFJFQUQgKHhtbElzTWFpblRocmVhZCgpKQorI2Vsc2UKKyNkZWZpbmUgSVNfTUFJTl9USFJFQUQgMQorI2VuZGlmCisKKy8qCisgKiBNdXRleCB0byBwcm90ZWN0ICJGb3JOZXdUaHJlYWRzIiB2YXJpYWJsZXMKKyAqLworc3RhdGljIHhtbE11dGV4UHRyIHhtbFRockRlZk11dGV4ID0gTlVMTDsKKworLyoqCisgKiB4bWxJbml0R2xvYmFsczoKKyAqCisgKiBBZGRpdGlvbmFsIGluaXRpYWxpc2F0aW9uIGZvciBtdWx0aS10aHJlYWRpbmcKKyAqLwordm9pZCB4bWxJbml0R2xvYmFscyh2b2lkKQoreworICAgIGlmICh4bWxUaHJEZWZNdXRleCA9PSBOVUxMKQorICAgICAgICB4bWxUaHJEZWZNdXRleCA9IHhtbE5ld011dGV4KCk7Cit9CisKKy8qKgorICogeG1sQ2xlYW51cEdsb2JhbHM6CisgKgorICogQWRkaXRpb25hbCBjbGVhbnVwIGZvciBtdWx0aS10aHJlYWRpbmcKKyAqLwordm9pZCB4bWxDbGVhbnVwR2xvYmFscyh2b2lkKQoreworICAgIGlmICh4bWxUaHJEZWZNdXRleCAhPSBOVUxMKSB7CisJeG1sRnJlZU11dGV4KHhtbFRockRlZk11dGV4KTsKKwl4bWxUaHJEZWZNdXRleCA9IE5VTEw7CisgICAgfQorICAgIF9feG1sR2xvYmFsSW5pdE11dGV4RGVzdHJveSgpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKglBbGwgdGhlIHVzZXIgYWNjZXNzaWJsZSBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5CQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogTWVtb3J5IGFsbG9jYXRpb24gcm91dGluZXMKKyAqLworI3VuZGVmCXhtbEZyZWUKKyN1bmRlZgl4bWxNYWxsb2MKKyN1bmRlZgl4bWxNYWxsb2NBdG9taWMKKyN1bmRlZgl4bWxNZW1TdHJkdXAKKyN1bmRlZgl4bWxSZWFsbG9jCisKKyNpZiBkZWZpbmVkKERFQlVHX01FTU9SWV9MT0NBVElPTikgfHwgZGVmaW5lZChERUJVR19NRU1PUlkpCit4bWxGcmVlRnVuYyB4bWxGcmVlID0gKHhtbEZyZWVGdW5jKSB4bWxNZW1GcmVlOworeG1sTWFsbG9jRnVuYyB4bWxNYWxsb2MgPSAoeG1sTWFsbG9jRnVuYykgeG1sTWVtTWFsbG9jOworeG1sTWFsbG9jRnVuYyB4bWxNYWxsb2NBdG9taWMgPSAoeG1sTWFsbG9jRnVuYykgeG1sTWVtTWFsbG9jOworeG1sUmVhbGxvY0Z1bmMgeG1sUmVhbGxvYyA9ICh4bWxSZWFsbG9jRnVuYykgeG1sTWVtUmVhbGxvYzsKK3htbFN0cmR1cEZ1bmMgeG1sTWVtU3RyZHVwID0gKHhtbFN0cmR1cEZ1bmMpIHhtbE1lbW9yeVN0cmR1cDsKKyNlbHNlCisvKioKKyAqIHhtbEZyZWU6CisgKiBAbWVtOiBhbiBhbHJlYWR5IGFsbG9jYXRlZCBibG9jayBvZiBtZW1vcnkKKyAqCisgKiBUaGUgdmFyaWFibGUgaG9sZGluZyB0aGUgbGlieG1sIGZyZWUoKSBpbXBsZW1lbnRhdGlvbgorICovCit4bWxGcmVlRnVuYyB4bWxGcmVlID0gKHhtbEZyZWVGdW5jKSBmcmVlOworLyoqCisgKiB4bWxNYWxsb2M6CisgKiBAc2l6ZTogIHRoZSBzaXplIHJlcXVlc3RlZCBpbiBieXRlcworICoKKyAqIFRoZSB2YXJpYWJsZSBob2xkaW5nIHRoZSBsaWJ4bWwgbWFsbG9jKCkgaW1wbGVtZW50YXRpb24KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIGJsb2NrIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxNYWxsb2NGdW5jIHhtbE1hbGxvYyA9ICh4bWxNYWxsb2NGdW5jKSBtYWxsb2M7CisvKioKKyAqIHhtbE1hbGxvY0F0b21pYzoKKyAqIEBzaXplOiAgdGhlIHNpemUgcmVxdWVzdGVkIGluIGJ5dGVzCisgKgorICogVGhlIHZhcmlhYmxlIGhvbGRpbmcgdGhlIGxpYnhtbCBtYWxsb2MoKSBpbXBsZW1lbnRhdGlvbiBmb3IgYXRvbWljCisgKiBkYXRhIChpLmUuIGJsb2NrcyBub3QgY29udGFpbmluZ3MgcG9pbnRlcnMpLCB1c2VmdWwgd2hlbiB1c2luZyBhCisgKiBnYXJiYWdlIGNvbGxlY3RpbmcgYWxsb2NhdG9yLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgYmxvY2sgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbE1hbGxvY0Z1bmMgeG1sTWFsbG9jQXRvbWljID0gKHhtbE1hbGxvY0Z1bmMpIG1hbGxvYzsKKy8qKgorICogeG1sUmVhbGxvYzoKKyAqIEBtZW06IGFuIGFscmVhZHkgYWxsb2NhdGVkIGJsb2NrIG9mIG1lbW9yeQorICogQHNpemU6ICB0aGUgbmV3IHNpemUgcmVxdWVzdGVkIGluIGJ5dGVzCisgKgorICogVGhlIHZhcmlhYmxlIGhvbGRpbmcgdGhlIGxpYnhtbCByZWFsbG9jKCkgaW1wbGVtZW50YXRpb24KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgcmVhbGxvY2F0ZWQgYmxvY2sgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFJlYWxsb2NGdW5jIHhtbFJlYWxsb2MgPSAoeG1sUmVhbGxvY0Z1bmMpIHJlYWxsb2M7CisvKioKKyAqIHhtbE1lbVN0cmR1cDoKKyAqIEBzdHI6IGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZworICoKKyAqIFRoZSB2YXJpYWJsZSBob2xkaW5nIHRoZSBsaWJ4bWwgc3RyZHVwKCkgaW1wbGVtZW50YXRpb24KKyAqCisgKiBSZXR1cm5zIHRoZSBjb3B5IG9mIHRoZSBzdHJpbmcgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFN0cmR1cEZ1bmMgeG1sTWVtU3RyZHVwID0gKHhtbFN0cmR1cEZ1bmMpIHhtbFN0cmR1cDsKKyNlbmRpZiAvKiBERUJVR19NRU1PUllfTE9DQVRJT04gfHwgREVCVUdfTUVNT1JZICovCisKKyNpbmNsdWRlIDxsaWJ4bWwvdGhyZWFkcy5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL1NBWC5oPgorCisjdW5kZWYJZG9jYkRlZmF1bHRTQVhIYW5kbGVyCisjdW5kZWYJaHRtbERlZmF1bHRTQVhIYW5kbGVyCisjdW5kZWYJb2xkWE1MV0Rjb21wYXRpYmlsaXR5CisjdW5kZWYJeG1sQnVmZmVyQWxsb2NTY2hlbWUKKyN1bmRlZgl4bWxEZWZhdWx0QnVmZmVyU2l6ZQorI3VuZGVmCXhtbERlZmF1bHRTQVhIYW5kbGVyCisjdW5kZWYJeG1sRGVmYXVsdFNBWExvY2F0b3IKKyN1bmRlZgl4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUKKyN1bmRlZgl4bWxHZW5lcmljRXJyb3IKKyN1bmRlZgl4bWxTdHJ1Y3R1cmVkRXJyb3IKKyN1bmRlZgl4bWxHZW5lcmljRXJyb3JDb250ZXh0CisjdW5kZWYJeG1sU3RydWN0dXJlZEVycm9yQ29udGV4dAorI3VuZGVmCXhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlCisjdW5kZWYJeG1sSW5kZW50VHJlZU91dHB1dAorI3VuZGVmICB4bWxUcmVlSW5kZW50U3RyaW5nCisjdW5kZWYJeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZQorI3VuZGVmCXhtbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlCisjdW5kZWYJeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZQorI3VuZGVmCXhtbFBhcnNlckRlYnVnRW50aXRpZXMKKyN1bmRlZgl4bWxQYXJzZXJWZXJzaW9uCisjdW5kZWYJeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUKKyN1bmRlZgl4bWxTYXZlTm9FbXB0eVRhZ3MKKyN1bmRlZgl4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUKKyN1bmRlZgl4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUKKyN1bmRlZgl4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZQorI3VuZGVmCXhtbExhc3RFcnJvcgorCisjdW5kZWYgIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZQorI3VuZGVmICB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlCisvKioKKyAqIHhtbFBhcnNlclZlcnNpb246CisgKgorICogQ29uc3RhbnQgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGludGVybmFsIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkKKyAqLworY29uc3QgY2hhciAqeG1sUGFyc2VyVmVyc2lvbiA9IExJQlhNTF9WRVJTSU9OX1NUUklORyBMSUJYTUxfVkVSU0lPTl9FWFRSQTsKKworLyoqCisgKiB4bWxCdWZmZXJBbGxvY1NjaGVtZToKKyAqCisgKiBHbG9iYWwgc2V0dGluZywgZGVmYXVsdCBhbGxvY2F0aW9uIHBvbGljeSBmb3IgYnVmZmVycywgZGVmYXVsdCBpcworICogWE1MX0JVRkZFUl9BTExPQ19FWEFDVAorICovCit4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHhtbEJ1ZmZlckFsbG9jU2NoZW1lID0gWE1MX0JVRkZFUl9BTExPQ19FWEFDVDsKK3N0YXRpYyB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHhtbEJ1ZmZlckFsbG9jU2NoZW1lVGhyRGVmID0gWE1MX0JVRkZFUl9BTExPQ19FWEFDVDsKKy8qKgorICogeG1sRGVmYXVsdEJ1ZmZlclNpemU6CisgKgorICogR2xvYmFsIHNldHRpbmcsIGRlZmF1bHQgYnVmZmVyIHNpemUuIERlZmF1bHQgdmFsdWUgaXMgQkFTRV9CVUZGRVJfU0laRQorICovCitpbnQgeG1sRGVmYXVsdEJ1ZmZlclNpemUgPSBCQVNFX0JVRkZFUl9TSVpFOworc3RhdGljIGludCB4bWxEZWZhdWx0QnVmZmVyU2l6ZVRockRlZiA9IEJBU0VfQlVGRkVSX1NJWkU7CisKKy8qCisgKiBQYXJzZXIgZGVmYXVsdHMKKyAqLworCisvKioKKyAqIG9sZFhNTFdEY29tcGF0aWJpbGl0eToKKyAqCisgKiBHbG9iYWwgc2V0dGluZywgREVQUkVDQVRFRC4KKyAqLworaW50IG9sZFhNTFdEY29tcGF0aWJpbGl0eSA9IDA7IC8qIERFUFJFQ0FURUQgKi8KKy8qKgorICogeG1sUGFyc2VyRGVidWdFbnRpdGllczoKKyAqCisgKiBHbG9iYWwgc2V0dGluZywgYXNraW5nIHRoZSBwYXJzZXIgdG8gcHJpbnQgb3V0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbnMuCisgKiB3aGlsZSBoYW5kbGluZyBlbnRpdGllcy4KKyAqIERpc2FibGVkIGJ5IGRlZmF1bHQKKyAqLworaW50IHhtbFBhcnNlckRlYnVnRW50aXRpZXMgPSAwOworc3RhdGljIGludCB4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzVGhyRGVmID0gMDsKKy8qKgorICogeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlOgorICoKKyAqIEdsb2JhbCBzZXR0aW5nLCBpbmRpY2F0ZSB0aGF0IHRoZSBwYXJzZXIgc2hvdWxkIHdvcmsgaW4gdmFsaWRhdGluZyBtb2RlLgorICogRGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAqLworaW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSA9IDA7CitzdGF0aWMgaW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZVRockRlZiA9IDA7CisvKioKKyAqIHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlOgorICoKKyAqIEdsb2JhbCBzZXR0aW5nLCBpbmRpY2F0ZSB0aGF0IHRoZSBwYXJzZXIgc2hvdWxkIHByb3ZpZGUgd2FybmluZ3MuCisgKiBBY3RpdmF0ZWQgYnkgZGVmYXVsdC4KKyAqLworaW50IHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlID0gMTsKK3N0YXRpYyBpbnQgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWVUaHJEZWYgPSAxOworLyoqCisgKiB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlOgorICoKKyAqIEdsb2JhbCBzZXR0aW5nLCBpbmRpY2F0ZSB0aGF0IHRoZSBwYXJzZXIgc2hvdWxkIGxvYWQgRFREIHdoaWxlIG5vdAorICogdmFsaWRhdGluZy4KKyAqIERpc2FibGVkIGJ5IGRlZmF1bHQuCisgKi8KK2ludCB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlID0gMDsKK3N0YXRpYyBpbnQgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZVRockRlZiA9IDA7CisvKioKKyAqIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlOgorICoKKyAqIEdsb2JhbCBzZXR0aW5nLCBpbmRpY2F0ZSB0aGF0IHRoZSBwYXJzZXIgYmUgcGVkYW50aWMKKyAqIERpc2FibGVkIGJ5IGRlZmF1bHQuCisgKi8KK2ludCB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSA9IDA7CitzdGF0aWMgaW50IHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlVGhyRGVmID0gMDsKKy8qKgorICogeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWU6CisgKgorICogR2xvYmFsIHNldHRpbmcsIGluZGljYXRlIHRoYXQgdGhlIHBhcnNlciBzaG91bGQgc3RvcmUgdGhlIGxpbmUgbnVtYmVyCisgKiBpbiB0aGUgY29udGVudCBmaWVsZCBvZiBlbGVtZW50cyBpbiB0aGUgRE9NIHRyZWUuIAorICogRGlzYWJsZWQgYnkgZGVmYXVsdCBzaW5jZSB0aGlzIG1heSBub3QgYmUgc2FmZSBmb3Igb2xkIGNsYXNzZXMgb2YKKyAqIGFwcGxpY2F0b24uCisgKi8KK2ludCB4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSA9IDA7CitzdGF0aWMgaW50IHhtbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlVGhyRGVmID0gMDsKKy8qKgorICogeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZToKKyAqCisgKiBHbG9iYWwgc2V0dGluZywgaW5kaWNhdGUgdGhhdCB0aGUgcGFyc2VyIHNob3VsZCBrZWVwIGFsbCBibGFua3MKKyAqIG5vZGVzIGZvdW5kIGluIHRoZSBjb250ZW50CisgKiBBY3RpdmF0ZWQgYnkgZGVmYXVsdCwgdGhpcyBpcyBhY3R1YWxseSBuZWVkZWQgdG8gaGF2ZSB0aGUgcGFyc2VyCisgKiBjb25mb3JtYW50IHRvIHRoZSBYTUwgUmVjb21tZW5kYXRpb24sIGhvd2V2ZXIgdGhlIG9wdGlvbiBpcyBrZXB0CisgKiBmb3Igc29tZSBhcHBsaWNhdGlvbnMgc2luY2UgdGhpcyB3YXMgbGlieG1sMSBkZWZhdWx0IGJlaGF2aW91ci4KKyAqLworaW50IHhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUgPSAxOworc3RhdGljIGludCB4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlVGhyRGVmID0gMTsKKy8qKgorICogeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlOgorICoKKyAqIEdsb2JhbCBzZXR0aW5nLCBpbmRpY2F0ZSB0aGF0IHRoZSBwYXJzZXIgc2hvdWxkIG5vdCBnZW5lcmF0ZSBlbnRpdHkKKyAqIHJlZmVyZW5jZXMgYnV0IHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBhY3R1YWwgY29udGVudCBvZiB0aGUgZW50aXR5CisgKiBEaXNhYmxlZCBieSBkZWZhdWx0LCB0aGlzIHNob3VsZCBiZSBhY3RpdmF0ZWQgd2hlbiB1c2luZyBYUGF0aCBzaW5jZQorICogdGhlIFhQYXRoIGRhdGEgbW9kZWwgcmVxdWlyZXMgZW50aXRpZXMgcmVwbGFjZW1lbnQgYW5kIHRoZSBYUGF0aAorICogZW5naW5lIGRvZXMgbm90IGhhbmRsZSBlbnRpdGllcyByZWZlcmVuY2VzIHRyYW5zcGFyZW50bHkuCisgKi8KK2ludCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgPSAwOworc3RhdGljIGludCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWVUaHJEZWYgPSAwOworCit4bWxSZWdpc3Rlck5vZGVGdW5jIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSA9IE5VTEw7CitzdGF0aWMgeG1sUmVnaXN0ZXJOb2RlRnVuYyB4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWVUaHJEZWYgPSBOVUxMOworeG1sRGVyZWdpc3Rlck5vZGVGdW5jIHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlID0gTlVMTDsKK3N0YXRpYyB4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMgeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWVUaHJEZWYgPSBOVUxMOworCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUgPSBOVUxMOworc3RhdGljIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZVRockRlZiA9IE5VTEw7CisKK3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlID0gTlVMTDsKK3N0YXRpYyB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZVRockRlZiA9IE5VTEw7CisKKy8qCisgKiBFcnJvciBoYW5kbGluZworICovCisKKy8qIHhtbEdlbmVyaWNFcnJvckZ1bmMgeG1sR2VuZXJpY0Vycm9yID0geG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM7ICovCisvKiBNdXN0IGluaXRpYWxpemUgeG1sR2VuZXJpY0Vycm9yIGluIHhtbEluaXRQYXJzZXIgKi8KK3ZvaWQgWE1MQ0RFQ0wgeG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMJKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELAorCQkJCSBjb25zdCBjaGFyICptc2csCisJCQkJIC4uLik7CisvKioKKyAqIHhtbEdlbmVyaWNFcnJvcjoKKyAqCisgKiBHbG9iYWwgc2V0dGluZzogZnVuY3Rpb24gdXNlZCBmb3IgZ2VuZXJpYyBlcnJvciBjYWxsYmFja3MKKyAqLworeG1sR2VuZXJpY0Vycm9yRnVuYyB4bWxHZW5lcmljRXJyb3IgPSB4bWxHZW5lcmljRXJyb3JEZWZhdWx0RnVuYzsKK3N0YXRpYyB4bWxHZW5lcmljRXJyb3JGdW5jIHhtbEdlbmVyaWNFcnJvclRockRlZiA9IHhtbEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jOworLyoqCisgKiB4bWxTdHJ1Y3R1cmVkRXJyb3I6CisgKgorICogR2xvYmFsIHNldHRpbmc6IGZ1bmN0aW9uIHVzZWQgZm9yIHN0cnVjdHVyZWQgZXJyb3IgY2FsbGJhY2tzCisgKi8KK3htbFN0cnVjdHVyZWRFcnJvckZ1bmMgeG1sU3RydWN0dXJlZEVycm9yID0gTlVMTDsKK3N0YXRpYyB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHhtbFN0cnVjdHVyZWRFcnJvclRockRlZiA9IE5VTEw7CisvKioKKyAqIHhtbEdlbmVyaWNFcnJvckNvbnRleHQ6CisgKgorICogR2xvYmFsIHNldHRpbmcgcGFzc2VkIHRvIGdlbmVyaWMgZXJyb3IgY2FsbGJhY2tzCisgKi8KK3ZvaWQgKnhtbEdlbmVyaWNFcnJvckNvbnRleHQgPSBOVUxMOworc3RhdGljIHZvaWQgKnhtbEdlbmVyaWNFcnJvckNvbnRleHRUaHJEZWYgPSBOVUxMOworLyoqCisgKiB4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0OgorICoKKyAqIEdsb2JhbCBzZXR0aW5nIHBhc3NlZCB0byBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrcworICovCit2b2lkICp4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0ID0gTlVMTDsKK3N0YXRpYyB2b2lkICp4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0VGhyRGVmID0gTlVMTDsKK3htbEVycm9yIHhtbExhc3RFcnJvcjsKKworLyoKKyAqIG91dHB1dCBkZWZhdWx0cworICovCisvKioKKyAqIHhtbEluZGVudFRyZWVPdXRwdXQ6CisgKgorICogR2xvYmFsIHNldHRpbmcsIGFza2luZyB0aGUgc2VyaWFsaXplciB0byBpbmRlbnQgdGhlIG91dHB1dCB0cmVlIGJ5IGRlZmF1bHQKKyAqIEVuYWJsZWQgYnkgZGVmYXVsdAorICovCitpbnQgeG1sSW5kZW50VHJlZU91dHB1dCA9IDE7CitzdGF0aWMgaW50IHhtbEluZGVudFRyZWVPdXRwdXRUaHJEZWYgPSAxOworCisvKioKKyAqIHhtbFRyZWVJbmRlbnRTdHJpbmc6CisgKgorICogVGhlIHN0cmluZyB1c2VkIHRvIGRvIG9uZS1sZXZlbCBpbmRlbnQuIEJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gIiAgIiAodHdvIHNwYWNlcykKKyAqLworY29uc3QgY2hhciAqeG1sVHJlZUluZGVudFN0cmluZyA9ICIgICI7CitzdGF0aWMgY29uc3QgY2hhciAqeG1sVHJlZUluZGVudFN0cmluZ1RockRlZiA9ICIgICI7CisKKy8qKgorICogeG1sU2F2ZU5vRW1wdHlUYWdzOgorICoKKyAqIEdsb2JhbCBzZXR0aW5nLCBhc2tpbmcgdGhlIHNlcmlhbGl6ZXIgdG8gbm90IG91dHB1dCBlbXB0eSB0YWdzCisgKiBhcyA8ZW1wdHkvPiBidXQgPGVtcHR5PjwvZW1wdHk+LiB0aG9zZSB0d28gZm9ybXMgYXJlIHVuZGlzdGluZ3Vpc2hhYmxlCisgKiBvbmNlIHBhcnNlZC4KKyAqIERpc2FibGVkIGJ5IGRlZmF1bHQKKyAqLworaW50IHhtbFNhdmVOb0VtcHR5VGFncyA9IDA7CitzdGF0aWMgaW50IHhtbFNhdmVOb0VtcHR5VGFnc1RockRlZiA9IDA7CisKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisvKioKKyAqIHhtbERlZmF1bHRTQVhIYW5kbGVyOgorICoKKyAqIERlZmF1bHQgU0FYIHZlcnNpb24xIGhhbmRsZXIgZm9yIFhNTCwgYnVpbGRzIHRoZSBET00gdHJlZQorICovCit4bWxTQVhIYW5kbGVyVjEgeG1sRGVmYXVsdFNBWEhhbmRsZXIgPSB7CisgICAgeG1sU0FYMkludGVybmFsU3Vic2V0LAorICAgIHhtbFNBWDJJc1N0YW5kYWxvbmUsCisgICAgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0LAorICAgIHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCwKKyAgICB4bWxTQVgyUmVzb2x2ZUVudGl0eSwKKyAgICB4bWxTQVgyR2V0RW50aXR5LAorICAgIHhtbFNBWDJFbnRpdHlEZWNsLAorICAgIHhtbFNBWDJOb3RhdGlvbkRlY2wsCisgICAgeG1sU0FYMkF0dHJpYnV0ZURlY2wsCisgICAgeG1sU0FYMkVsZW1lbnREZWNsLAorICAgIHhtbFNBWDJVbnBhcnNlZEVudGl0eURlY2wsCisgICAgeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciwKKyAgICB4bWxTQVgyU3RhcnREb2N1bWVudCwKKyAgICB4bWxTQVgyRW5kRG9jdW1lbnQsCisgICAgeG1sU0FYMlN0YXJ0RWxlbWVudCwKKyAgICB4bWxTQVgyRW5kRWxlbWVudCwKKyAgICB4bWxTQVgyUmVmZXJlbmNlLAorICAgIHhtbFNBWDJDaGFyYWN0ZXJzLAorICAgIHhtbFNBWDJDaGFyYWN0ZXJzLAorICAgIHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sCisgICAgeG1sU0FYMkNvbW1lbnQsCisgICAgeG1sUGFyc2VyV2FybmluZywKKyAgICB4bWxQYXJzZXJFcnJvciwKKyAgICB4bWxQYXJzZXJFcnJvciwKKyAgICB4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5LAorICAgIHhtbFNBWDJDRGF0YUJsb2NrLAorICAgIHhtbFNBWDJFeHRlcm5hbFN1YnNldCwKKyAgICAwLAorfTsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisKKy8qKgorICogeG1sRGVmYXVsdFNBWExvY2F0b3I6CisgKgorICogVGhlIGRlZmF1bHQgU0FYIExvY2F0b3IKKyAqIHsgZ2V0UHVibGljSWQsIGdldFN5c3RlbUlkLCBnZXRMaW5lTnVtYmVyLCBnZXRDb2x1bW5OdW1iZXJ9CisgKi8KK3htbFNBWExvY2F0b3IgeG1sRGVmYXVsdFNBWExvY2F0b3IgPSB7CisgICAgeG1sU0FYMkdldFB1YmxpY0lkLAorICAgIHhtbFNBWDJHZXRTeXN0ZW1JZCwKKyAgICB4bWxTQVgyR2V0TGluZU51bWJlciwKKyAgICB4bWxTQVgyR2V0Q29sdW1uTnVtYmVyCit9OworCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorLyoqCisgKiBodG1sRGVmYXVsdFNBWEhhbmRsZXI6CisgKgorICogRGVmYXVsdCBvbGQgU0FYIHYxIGhhbmRsZXIgZm9yIEhUTUwsIGJ1aWxkcyB0aGUgRE9NIHRyZWUKKyAqLworeG1sU0FYSGFuZGxlclYxIGh0bWxEZWZhdWx0U0FYSGFuZGxlciA9IHsKKyAgICB4bWxTQVgySW50ZXJuYWxTdWJzZXQsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICB4bWxTQVgyR2V0RW50aXR5LAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yLAorICAgIHhtbFNBWDJTdGFydERvY3VtZW50LAorICAgIHhtbFNBWDJFbmREb2N1bWVudCwKKyAgICB4bWxTQVgyU3RhcnRFbGVtZW50LAorICAgIHhtbFNBWDJFbmRFbGVtZW50LAorICAgIE5VTEwsCisgICAgeG1sU0FYMkNoYXJhY3RlcnMsCisgICAgeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UsCisgICAgeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbiwKKyAgICB4bWxTQVgyQ29tbWVudCwKKyAgICB4bWxQYXJzZXJXYXJuaW5nLAorICAgIHhtbFBhcnNlckVycm9yLAorICAgIHhtbFBhcnNlckVycm9yLAorICAgIHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHksCisgICAgeG1sU0FYMkNEYXRhQmxvY2ssCisgICAgTlVMTCwKKyAgICAwLAorfTsKKyNlbmRpZiAvKiBMSUJYTUxfSFRNTF9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisvKioKKyAqIGRvY2JEZWZhdWx0U0FYSGFuZGxlcjoKKyAqCisgKiBEZWZhdWx0IG9sZCBTQVggdjEgaGFuZGxlciBmb3IgU0dNTCBEb2NCb29rLCBidWlsZHMgdGhlIERPTSB0cmVlCisgKi8KK3htbFNBWEhhbmRsZXJWMSBkb2NiRGVmYXVsdFNBWEhhbmRsZXIgPSB7CisgICAgeG1sU0FYMkludGVybmFsU3Vic2V0LAorICAgIHhtbFNBWDJJc1N0YW5kYWxvbmUsCisgICAgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0LAorICAgIHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCwKKyAgICB4bWxTQVgyUmVzb2x2ZUVudGl0eSwKKyAgICB4bWxTQVgyR2V0RW50aXR5LAorICAgIHhtbFNBWDJFbnRpdHlEZWNsLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgeG1sU0FYMlNldERvY3VtZW50TG9jYXRvciwKKyAgICB4bWxTQVgyU3RhcnREb2N1bWVudCwKKyAgICB4bWxTQVgyRW5kRG9jdW1lbnQsCisgICAgeG1sU0FYMlN0YXJ0RWxlbWVudCwKKyAgICB4bWxTQVgyRW5kRWxlbWVudCwKKyAgICB4bWxTQVgyUmVmZXJlbmNlLAorICAgIHhtbFNBWDJDaGFyYWN0ZXJzLAorICAgIHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlLAorICAgIE5VTEwsCisgICAgeG1sU0FYMkNvbW1lbnQsCisgICAgeG1sUGFyc2VyV2FybmluZywKKyAgICB4bWxQYXJzZXJFcnJvciwKKyAgICB4bWxQYXJzZXJFcnJvciwKKyAgICB4bWxTQVgyR2V0UGFyYW1ldGVyRW50aXR5LAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICAwLAorfTsKKyNlbmRpZiAvKiBMSUJYTUxfRE9DQl9FTkFCTEVEICovCisKKy8qKgorICogeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlOgorICogQGdzOiBhIHBvaW50ZXIgdG8gYSBuZXdseSBhbGxvY2F0ZWQgZ2xvYmFsIHN0YXRlCisgKgorICogeG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlKCkgaW5pdGlhbGl6ZSBhIGdsb2JhbCBzdGF0ZSB3aXRoIGFsbCB0aGUKKyAqIGRlZmF1bHQgdmFsdWVzIG9mIHRoZSBsaWJyYXJ5LgorICovCit2b2lkCit4bWxJbml0aWFsaXplR2xvYmFsU3RhdGUoeG1sR2xvYmFsU3RhdGVQdHIgZ3MpCit7CisjaWZkZWYgREVCVUdfR0xPQkFMUworICAgIGZwcmludGYoc3RkZXJyLCAiSW5pdGlhbGl6aW5nIGdsb2JhbHMgYXQgJWx1IGZvciB0aHJlYWQgJWRcbiIsCisJICAgICh1bnNpZ25lZCBsb25nKSBncywgeG1sR2V0VGhyZWFkSWQoKSk7CisjZW5kaWYKKworICAgIC8qCisgICAgICogUGVyZm9ybSBpbml0aWFsaXphdGlvbiBhcyByZXF1aXJlZCBieSBsaWJ4bWwKKyAgICAgKi8KKyAgICBpZiAoeG1sVGhyRGVmTXV0ZXggPT0gTlVMTCkKKyAgICAgICAgeG1sSW5pdEdsb2JhbHMoKTsKKworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisgICAgaW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlcigmZ3MtPmRvY2JEZWZhdWx0U0FYSGFuZGxlcik7CisjZW5kaWYKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorICAgIGluaXRodG1sRGVmYXVsdFNBWEhhbmRsZXIoJmdzLT5odG1sRGVmYXVsdFNBWEhhbmRsZXIpOworI2VuZGlmCisKKyAgICBncy0+b2xkWE1MV0Rjb21wYXRpYmlsaXR5ID0gMDsKKyAgICBncy0+eG1sQnVmZmVyQWxsb2NTY2hlbWUgPSB4bWxCdWZmZXJBbGxvY1NjaGVtZVRockRlZjsKKyAgICBncy0+eG1sRGVmYXVsdEJ1ZmZlclNpemUgPSB4bWxEZWZhdWx0QnVmZmVyU2l6ZVRockRlZjsKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0xFR0FDWV9FTkFCTEVEKQorICAgIGluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcigmZ3MtPnhtbERlZmF1bHRTQVhIYW5kbGVyLCAxKTsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisgICAgZ3MtPnhtbERlZmF1bHRTQVhMb2NhdG9yLmdldFB1YmxpY0lkID0geG1sU0FYMkdldFB1YmxpY0lkOworICAgIGdzLT54bWxEZWZhdWx0U0FYTG9jYXRvci5nZXRTeXN0ZW1JZCA9IHhtbFNBWDJHZXRTeXN0ZW1JZDsKKyAgICBncy0+eG1sRGVmYXVsdFNBWExvY2F0b3IuZ2V0TGluZU51bWJlciA9IHhtbFNBWDJHZXRMaW5lTnVtYmVyOworICAgIGdzLT54bWxEZWZhdWx0U0FYTG9jYXRvci5nZXRDb2x1bW5OdW1iZXIgPSB4bWxTQVgyR2V0Q29sdW1uTnVtYmVyOworICAgIGdzLT54bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgPSAKKyAgICAgICAgIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZVRockRlZjsKKyNpZiBkZWZpbmVkKERFQlVHX01FTU9SWV9MT0NBVElPTikgfCBkZWZpbmVkKERFQlVHX01FTU9SWSkKKyAgICBncy0+eG1sRnJlZSA9ICh4bWxGcmVlRnVuYykgeG1sTWVtRnJlZTsKKyAgICBncy0+eG1sTWFsbG9jID0gKHhtbE1hbGxvY0Z1bmMpIHhtbE1lbU1hbGxvYzsKKyAgICBncy0+eG1sTWFsbG9jQXRvbWljID0gKHhtbE1hbGxvY0Z1bmMpIHhtbE1lbU1hbGxvYzsKKyAgICBncy0+eG1sUmVhbGxvYyA9ICh4bWxSZWFsbG9jRnVuYykgeG1sTWVtUmVhbGxvYzsKKyAgICBncy0+eG1sTWVtU3RyZHVwID0gKHhtbFN0cmR1cEZ1bmMpIHhtbE1lbW9yeVN0cmR1cDsKKyNlbHNlCisgICAgZ3MtPnhtbEZyZWUgPSAoeG1sRnJlZUZ1bmMpIGZyZWU7CisgICAgZ3MtPnhtbE1hbGxvYyA9ICh4bWxNYWxsb2NGdW5jKSBtYWxsb2M7CisgICAgZ3MtPnhtbE1hbGxvY0F0b21pYyA9ICh4bWxNYWxsb2NGdW5jKSBtYWxsb2M7CisgICAgZ3MtPnhtbFJlYWxsb2MgPSAoeG1sUmVhbGxvY0Z1bmMpIHJlYWxsb2M7CisgICAgZ3MtPnhtbE1lbVN0cmR1cCA9ICh4bWxTdHJkdXBGdW5jKSB4bWxTdHJkdXA7CisjZW5kaWYKKyAgICBncy0+eG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPSB4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZVRockRlZjsKKyAgICBncy0+eG1sSW5kZW50VHJlZU91dHB1dCA9IHhtbEluZGVudFRyZWVPdXRwdXRUaHJEZWY7CisgICAgZ3MtPnhtbFRyZWVJbmRlbnRTdHJpbmcgPSB4bWxUcmVlSW5kZW50U3RyaW5nVGhyRGVmOworICAgIGdzLT54bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlID0geG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZVRockRlZjsKKyAgICBncy0+eG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUgPSB4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZVRockRlZjsKKyAgICBncy0+eG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSA9IHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWVUaHJEZWY7CisgICAgZ3MtPnhtbFBhcnNlckRlYnVnRW50aXRpZXMgPSB4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzVGhyRGVmOworICAgIGdzLT54bWxQYXJzZXJWZXJzaW9uID0gTElCWE1MX1ZFUlNJT05fU1RSSU5HOworICAgIGdzLT54bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSA9IHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlVGhyRGVmOworICAgIGdzLT54bWxTYXZlTm9FbXB0eVRhZ3MgPSB4bWxTYXZlTm9FbXB0eVRhZ3NUaHJEZWY7CisgICAgZ3MtPnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSA9IAorICAgICAgICB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWVUaHJEZWY7CisKKyAgICBncy0+eG1sR2VuZXJpY0Vycm9yID0geG1sR2VuZXJpY0Vycm9yVGhyRGVmOworICAgIGdzLT54bWxTdHJ1Y3R1cmVkRXJyb3IgPSB4bWxTdHJ1Y3R1cmVkRXJyb3JUaHJEZWY7CisgICAgZ3MtPnhtbEdlbmVyaWNFcnJvckNvbnRleHQgPSB4bWxHZW5lcmljRXJyb3JDb250ZXh0VGhyRGVmOworICAgIGdzLT54bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0ID0geG1sU3RydWN0dXJlZEVycm9yQ29udGV4dFRockRlZjsKKyAgICBncy0+eG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlID0geG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlVGhyRGVmOworICAgIGdzLT54bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSA9IHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlVGhyRGVmOworCisJZ3MtPnhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZVRockRlZjsKKwlncy0+eG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWVUaHJEZWY7CisgICAgbWVtc2V0KCZncy0+eG1sTGFzdEVycm9yLCAwLCBzaXplb2YoeG1sRXJyb3IpKTsKKworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKK30KKworLyoqCisgKiBET0NfRElTQUJMRSA6IHdlIGlnbm9yZSBtaXNzaW5nIGRvYyBmb3IgdGhlIHhtbFRockRlZiBmdW5jdGlvbnMsCisgKiAgICAgICAgICAgICAgIHRob3NlIGFyZSByZWFsbHkgaW50ZXJuYWwgd29yaworICovCit2b2lkCit4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jKHZvaWQgKmN0eCwgeG1sR2VuZXJpY0Vycm9yRnVuYyBoYW5kbGVyKSB7CisgICAgeG1sTXV0ZXhMb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICB4bWxHZW5lcmljRXJyb3JDb250ZXh0VGhyRGVmID0gY3R4OworICAgIGlmIChoYW5kbGVyICE9IE5VTEwpCisJeG1sR2VuZXJpY0Vycm9yVGhyRGVmID0gaGFuZGxlcjsKKyAgICBlbHNlCisJeG1sR2VuZXJpY0Vycm9yVGhyRGVmID0geG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmM7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworfQorCit2b2lkCit4bWxUaHJEZWZTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKHZvaWQgKmN0eCwgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBoYW5kbGVyKSB7CisgICAgeG1sTXV0ZXhMb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0VGhyRGVmID0gY3R4OworICAgIHhtbFN0cnVjdHVyZWRFcnJvclRockRlZiA9IGhhbmRsZXI7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworfQorCisvKioKKyAqIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ6CisgKiBAZnVuYzogZnVuY3Rpb24gcG9pbnRlciB0byB0aGUgbmV3IFJlZ2lzdGVyTm9kZUZ1bmMKKyAqCisgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmb3Igbm9kZSBjcmVhdGlvbgorICoKKyAqIFJldHVybnMgdGhlIG9sZCB2YWx1ZSBvZiB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uCisgKi8KK3htbFJlZ2lzdGVyTm9kZUZ1bmMKK3htbFJlZ2lzdGVyTm9kZURlZmF1bHQoeG1sUmVnaXN0ZXJOb2RlRnVuYyBmdW5jKQoreworICAgIHhtbFJlZ2lzdGVyTm9kZUZ1bmMgb2xkID0geG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlOworICAgIAorICAgIF9feG1sUmVnaXN0ZXJDYWxsYmFja3MgPSAxOworICAgIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSA9IGZ1bmM7CisgICAgcmV0dXJuKG9sZCk7Cit9CisKK3htbFJlZ2lzdGVyTm9kZUZ1bmMKK3htbFRockRlZlJlZ2lzdGVyTm9kZURlZmF1bHQoeG1sUmVnaXN0ZXJOb2RlRnVuYyBmdW5jKQoreworICAgIHhtbFJlZ2lzdGVyTm9kZUZ1bmMgb2xkOworICAgIAorICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgb2xkID0geG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlVGhyRGVmOworICAgIAorICAgIF9feG1sUmVnaXN0ZXJDYWxsYmFja3MgPSAxOworICAgIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZVRockRlZiA9IGZ1bmM7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworCisgICAgcmV0dXJuKG9sZCk7Cit9CisKKy8qKgorICogeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0OgorICogQGZ1bmM6IGZ1bmN0aW9uIHBvaW50ZXIgdG8gdGhlIG5ldyBEZXJlZ2lzdGVyTm9kZUZ1bmMKKyAqCisgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmb3Igbm9kZSBkZXN0cnVjdGlvbgorICoKKyAqIFJldHVybnMgdGhlIHByZXZpb3VzIHZhbHVlIG9mIHRoZSBkZXJlZ2lzdHJhdGlvbiBmdW5jdGlvbgorICovCit4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMKK3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdCh4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMgZnVuYykKK3sKKyAgICB4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMgb2xkID0geG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU7CisgICAgCisgICAgX194bWxSZWdpc3RlckNhbGxiYWNrcyA9IDE7CisgICAgeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUgPSBmdW5jOworICAgIHJldHVybihvbGQpOworfQorCit4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMKK3htbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdCh4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMgZnVuYykKK3sKKyAgICB4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMgb2xkOworCisgICAgeG1sTXV0ZXhMb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICBvbGQgPSB4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZVRockRlZjsKKyAgICAKKyAgICBfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzID0gMTsKKyAgICB4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZVRockRlZiA9IGZ1bmM7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworCisgICAgcmV0dXJuKG9sZCk7Cit9CisKK3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jCit4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBmdW5jKQoreworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIG9sZDsKKyAgICAKKyAgICB4bWxNdXRleExvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIG9sZCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZVRockRlZjsKKyAgICBpZiAob2xkID09IE5VTEwpIHsKKwkJb2xkID0gX194bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lOworCX0KKworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZVRockRlZiA9IGZ1bmM7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworCisgICAgcmV0dXJuKG9sZCk7Cit9CisKK3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYworeG1sVGhyRGVmT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0KHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBmdW5jKQoreworICAgIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBvbGQ7CisgICAgCisgICAgeG1sTXV0ZXhMb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICBvbGQgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlVGhyRGVmOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgIGlmIChvbGQgPT0gTlVMTCkgeworCQlvbGQgPSBfX3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lOworCX0KKyNlbmRpZgorICAgIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWVUaHJEZWYgPSBmdW5jOworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKKworICAgIHJldHVybihvbGQpOworfQorCisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorI3VuZGVmCWRvY2JEZWZhdWx0U0FYSGFuZGxlcgoreG1sU0FYSGFuZGxlclYxICoKK19fZG9jYkRlZmF1bHRTQVhIYW5kbGVyKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmZG9jYkRlZmF1bHRTQVhIYW5kbGVyKTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+ZG9jYkRlZmF1bHRTQVhIYW5kbGVyKTsKK30KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorI3VuZGVmCWh0bWxEZWZhdWx0U0FYSGFuZGxlcgoreG1sU0FYSGFuZGxlclYxICoKK19faHRtbERlZmF1bHRTQVhIYW5kbGVyKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmaHRtbERlZmF1bHRTQVhIYW5kbGVyKTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+aHRtbERlZmF1bHRTQVhIYW5kbGVyKTsKK30KKyNlbmRpZgorCisjdW5kZWYgeG1sTGFzdEVycm9yCit4bWxFcnJvciAqCitfX3htbExhc3RFcnJvcih2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJnhtbExhc3RFcnJvcik7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbExhc3RFcnJvcik7Cit9CisKKy8qCisgKiBUaGUgZm9sbG93aW5nIG1lbW9yeSByb3V0aW5lcyB3ZXJlIGFwcGFyZW50bHkgbG9zdCBhdCBzb21lIHBvaW50LAorICogYW5kIHdlcmUgcmUtaW5zZXJ0ZWQgYXQgdGhpcyBwb2ludCBvbiBKdW5lIDEwLCAyMDA0LiAgSG9wZSBpdCdzCisgKiB0aGUgcmlnaHQgcGxhY2UgZm9yIHRoZW0gOi0pCisgKi8KKyNpZiBkZWZpbmVkKExJQlhNTF9USFJFQURfQUxMT0NfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfVEhSRUFEX0VOQUJMRUQpCisjdW5kZWYgeG1sTWFsbG9jCit4bWxNYWxsb2NGdW5jICoKK19feG1sTWFsbG9jKHZvaWQpeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKyAgICAgICAgcmV0dXJuICgmeG1sTWFsbG9jKTsKKyAgICBlbHNlCisgICAgCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbE1hbGxvYyk7Cit9CisKKyN1bmRlZiB4bWxNYWxsb2NBdG9taWMKK3htbE1hbGxvY0Z1bmMgKgorX194bWxNYWxsb2NBdG9taWModm9pZCl7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorICAgICAgICByZXR1cm4gKCZ4bWxNYWxsb2NBdG9taWMpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sTWFsbG9jQXRvbWljKTsKK30KKworI3VuZGVmIHhtbFJlYWxsb2MKK3htbFJlYWxsb2NGdW5jICoKK19feG1sUmVhbGxvYyh2b2lkKXsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisgICAgICAgIHJldHVybiAoJnhtbFJlYWxsb2MpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sUmVhbGxvYyk7Cit9CisKKyN1bmRlZiB4bWxGcmVlCit4bWxGcmVlRnVuYyAqCitfX3htbEZyZWUodm9pZCl7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorICAgICAgICByZXR1cm4gKCZ4bWxGcmVlKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbEZyZWUpOworfQorCit4bWxTdHJkdXBGdW5jICoKK19feG1sTWVtU3RyZHVwKHZvaWQpeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKyAgICAgICAgcmV0dXJuICgmeG1sTWVtU3RyZHVwKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbE1lbVN0cmR1cCk7Cit9CisKKyNlbmRpZgorCisvKgorICogRXZlcnl0aGluZyBzdGFydGluZyBmcm9tIHRoZSBsaW5lIGJlbG93IGlzCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBidWlsZF9nbG9iLnB5LgorICogRG8gbm90IG1vZGlmeSB0aGUgcHJldmlvdXMgbGluZS4KKyAqLworCisKKyN1bmRlZglvbGRYTUxXRGNvbXBhdGliaWxpdHkKK2ludCAqCitfX29sZFhNTFdEY29tcGF0aWJpbGl0eSh2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJm9sZFhNTFdEY29tcGF0aWJpbGl0eSk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPm9sZFhNTFdEY29tcGF0aWJpbGl0eSk7Cit9CisKKyN1bmRlZgl4bWxCdWZmZXJBbGxvY1NjaGVtZQoreG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSAqCitfX3htbEJ1ZmZlckFsbG9jU2NoZW1lKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sQnVmZmVyQWxsb2NTY2hlbWUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxCdWZmZXJBbGxvY1NjaGVtZSk7Cit9Cit4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHhtbFRockRlZkJ1ZmZlckFsbG9jU2NoZW1lKHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUgdikgeworICAgIHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUgcmV0OworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0ID0geG1sQnVmZmVyQWxsb2NTY2hlbWVUaHJEZWY7CisgICAgeG1sQnVmZmVyQWxsb2NTY2hlbWVUaHJEZWYgPSB2OworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisjdW5kZWYJeG1sRGVmYXVsdEJ1ZmZlclNpemUKK2ludCAqCitfX3htbERlZmF1bHRCdWZmZXJTaXplKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sRGVmYXVsdEJ1ZmZlclNpemUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxEZWZhdWx0QnVmZmVyU2l6ZSk7Cit9CitpbnQgeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUoaW50IHYpIHsKKyAgICBpbnQgcmV0OworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0ID0geG1sRGVmYXVsdEJ1ZmZlclNpemVUaHJEZWY7CisgICAgeG1sRGVmYXVsdEJ1ZmZlclNpemVUaHJEZWYgPSB2OworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorI3VuZGVmCXhtbERlZmF1bHRTQVhIYW5kbGVyCit4bWxTQVhIYW5kbGVyVjEgKgorX194bWxEZWZhdWx0U0FYSGFuZGxlcih2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJnhtbERlZmF1bHRTQVhIYW5kbGVyKTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sRGVmYXVsdFNBWEhhbmRsZXIpOworfQorI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKworI3VuZGVmCXhtbERlZmF1bHRTQVhMb2NhdG9yCit4bWxTQVhMb2NhdG9yICoKK19feG1sRGVmYXVsdFNBWExvY2F0b3Iodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxEZWZhdWx0U0FYTG9jYXRvcik7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbERlZmF1bHRTQVhMb2NhdG9yKTsKK30KKworI3VuZGVmCXhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZQoraW50ICoKK19feG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlKTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlKTsKK30KK2ludCB4bWxUaHJEZWZEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUoaW50IHYpIHsKKyAgICBpbnQgcmV0OworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0ID0geG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlVGhyRGVmOworICAgIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZVRockRlZiA9IHY7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIHJldHVybiByZXQ7Cit9CisKKyN1bmRlZgl4bWxHZW5lcmljRXJyb3IKK3htbEdlbmVyaWNFcnJvckZ1bmMgKgorX194bWxHZW5lcmljRXJyb3Iodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxHZW5lcmljRXJyb3IpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxHZW5lcmljRXJyb3IpOworfQorCisjdW5kZWYJeG1sU3RydWN0dXJlZEVycm9yCit4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jICoKK19feG1sU3RydWN0dXJlZEVycm9yKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sU3RydWN0dXJlZEVycm9yKTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sU3RydWN0dXJlZEVycm9yKTsKK30KKworI3VuZGVmCXhtbEdlbmVyaWNFcnJvckNvbnRleHQKK3ZvaWQgKiAqCitfX3htbEdlbmVyaWNFcnJvckNvbnRleHQodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxHZW5lcmljRXJyb3JDb250ZXh0KTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sR2VuZXJpY0Vycm9yQ29udGV4dCk7Cit9CisKKyN1bmRlZgl4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0Cit2b2lkICogKgorX194bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0KHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sU3RydWN0dXJlZEVycm9yQ29udGV4dCk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQpOworfQorCisjdW5kZWYJeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUKK2ludCAqCitfX3htbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSk7Cit9CitpbnQgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUoaW50IHYpIHsKKyAgICBpbnQgcmV0OworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0ID0geG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWVUaHJEZWY7CisgICAgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWVUaHJEZWYgPSB2OworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisjdW5kZWYJeG1sSW5kZW50VHJlZU91dHB1dAoraW50ICoKK19feG1sSW5kZW50VHJlZU91dHB1dCh2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJnhtbEluZGVudFRyZWVPdXRwdXQpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxJbmRlbnRUcmVlT3V0cHV0KTsKK30KK2ludCB4bWxUaHJEZWZJbmRlbnRUcmVlT3V0cHV0KGludCB2KSB7CisgICAgaW50IHJldDsKKyAgICB4bWxNdXRleExvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIHJldCA9IHhtbEluZGVudFRyZWVPdXRwdXRUaHJEZWY7CisgICAgeG1sSW5kZW50VHJlZU91dHB1dFRockRlZiA9IHY7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIHJldHVybiByZXQ7Cit9CisKKyN1bmRlZgl4bWxUcmVlSW5kZW50U3RyaW5nCitjb25zdCBjaGFyICogKgorX194bWxUcmVlSW5kZW50U3RyaW5nKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sVHJlZUluZGVudFN0cmluZyk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbFRyZWVJbmRlbnRTdHJpbmcpOworfQorY29uc3QgY2hhciAqIHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmcoY29uc3QgY2hhciAqIHYpIHsKKyAgICBjb25zdCBjaGFyICogcmV0OworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0ID0geG1sVHJlZUluZGVudFN0cmluZ1RockRlZjsKKyAgICB4bWxUcmVlSW5kZW50U3RyaW5nVGhyRGVmID0gdjsKKyAgICB4bWxNdXRleFVubG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0dXJuIHJldDsKK30KKworI3VuZGVmCXhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUKK2ludCAqCitfX3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlKTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZSk7Cit9CitpbnQgeG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZShpbnQgdikgeworICAgIGludCByZXQ7CisgICAgeG1sTXV0ZXhMb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXQgPSB4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlVGhyRGVmOworICAgIHhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWVUaHJEZWYgPSB2OworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisjdW5kZWYJeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUKK2ludCAqCitfX3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSk7Cit9CitpbnQgeG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUoaW50IHYpIHsKKyAgICBpbnQgcmV0OworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0ID0geG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWVUaHJEZWY7CisgICAgeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWVUaHJEZWYgPSB2OworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisjdW5kZWYJeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZQoraW50ICoKK19feG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSh2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJnhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlKTsKK30KK2ludCB4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlKGludCB2KSB7CisgICAgaW50IHJldDsKKyAgICB4bWxNdXRleExvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIHJldCA9IHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWVUaHJEZWY7CisgICAgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZVRockRlZiA9IHY7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIHJldHVybiByZXQ7Cit9CisKKyN1bmRlZgl4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzCitpbnQgKgorX194bWxQYXJzZXJEZWJ1Z0VudGl0aWVzKHZvaWQpIHsKKyAgICBpZiAoSVNfTUFJTl9USFJFQUQpCisJcmV0dXJuICgmeG1sUGFyc2VyRGVidWdFbnRpdGllcyk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbFBhcnNlckRlYnVnRW50aXRpZXMpOworfQoraW50IHhtbFRockRlZlBhcnNlckRlYnVnRW50aXRpZXMoaW50IHYpIHsKKyAgICBpbnQgcmV0OworICAgIHhtbE11dGV4TG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0ID0geG1sUGFyc2VyRGVidWdFbnRpdGllc1RockRlZjsKKyAgICB4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzVGhyRGVmID0gdjsKKyAgICB4bWxNdXRleFVubG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0dXJuIHJldDsKK30KKworI3VuZGVmCXhtbFBhcnNlclZlcnNpb24KK2NvbnN0IGNoYXIgKiAqCitfX3htbFBhcnNlclZlcnNpb24odm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxQYXJzZXJWZXJzaW9uKTsKKyAgICBlbHNlCisJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sUGFyc2VyVmVyc2lvbik7Cit9CisKKyN1bmRlZgl4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZQoraW50ICoKK19feG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlKTsKK30KK2ludCB4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZShpbnQgdikgeworICAgIGludCByZXQ7CisgICAgeG1sTXV0ZXhMb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXQgPSB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZVRockRlZjsKKyAgICB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZVRockRlZiA9IHY7CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIHJldHVybiByZXQ7Cit9CisKKyN1bmRlZgl4bWxTYXZlTm9FbXB0eVRhZ3MKK2ludCAqCitfX3htbFNhdmVOb0VtcHR5VGFncyh2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJnhtbFNhdmVOb0VtcHR5VGFncyk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbFNhdmVOb0VtcHR5VGFncyk7Cit9CitpbnQgeG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzKGludCB2KSB7CisgICAgaW50IHJldDsKKyAgICB4bWxNdXRleExvY2soeG1sVGhyRGVmTXV0ZXgpOworICAgIHJldCA9IHhtbFNhdmVOb0VtcHR5VGFnc1RockRlZjsKKyAgICB4bWxTYXZlTm9FbXB0eVRhZ3NUaHJEZWYgPSB2OworICAgIHhtbE11dGV4VW5sb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisjdW5kZWYJeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlCitpbnQgKgorX194bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUpOworfQoraW50IHhtbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZShpbnQgdikgeworICAgIGludCByZXQ7CisgICAgeG1sTXV0ZXhMb2NrKHhtbFRockRlZk11dGV4KTsKKyAgICByZXQgPSB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWVUaHJEZWY7CisgICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlVGhyRGVmID0gdjsKKyAgICB4bWxNdXRleFVubG9jayh4bWxUaHJEZWZNdXRleCk7CisgICAgcmV0dXJuIHJldDsKK30KKworI3VuZGVmCXhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZQoreG1sUmVnaXN0ZXJOb2RlRnVuYyAqCitfX3htbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSh2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJnhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSk7Cit9CisKKyN1bmRlZgl4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZQoreG1sRGVyZWdpc3Rlck5vZGVGdW5jICoKK19feG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSk7CisgICAgZWxzZQorCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKTsKK30KKworI3VuZGVmCXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZQoreG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMgKgorX194bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUodm9pZCkgeworICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKwlyZXR1cm4gKCZ4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUpOworfQorCisjdW5kZWYJeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZQoreG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jICoKK19feG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSh2b2lkKSB7CisgICAgaWYgKElTX01BSU5fVEhSRUFEKQorCXJldHVybiAoJnhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUpOworICAgIGVsc2UKKwlyZXR1cm4gKCZ4bWxHZXRHbG9iYWxTdGF0ZSgpLT54bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlKTsKK30KKworI2RlZmluZSBib3R0b21fZ2xvYmFscworI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaGFzaC5jIGIvbGlieG1sMi0yLjcuNy9oYXNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc4YmMyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaGFzaC5jCkBAIC0wLDAgKzEsMTA4OSBAQAorLyoKKyAqIGhhc2guYzogY2hhaW5lZCBoYXNoIHRhYmxlcworICoKKyAqIFJlZmVyZW5jZTogWW91ciBmYXZvcml0ZSBpbnRyb2R1Y3RvcnkgYm9vayBvbiBhbGdvcml0aG1zCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAwIEJqb3JuIFJlZXNlIGFuZCBEYW5pZWwgVmVpbGxhcmQuCisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBXSVRIT1VUIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVElCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBUSEUgQVVUSE9SUyBBTkQKKyAqIENPTlRSSUJVVE9SUyBBQ0NFUFQgTk8gUkVTUE9OU0lCSUxJVFkgSU4gQU5ZIENPTkNFSVZBQkxFIE1BTk5FUi4KKyAqCisgKiBBdXRob3I6IGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9oYXNoLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisKKyNkZWZpbmUgTUFYX0hBU0hfTEVOIDgKKworLyogI2RlZmluZSBERUJVR19HUk9XICovCisKKy8qCisgKiBBIHNpbmdsZSBlbnRyeSBpbiB0aGUgaGFzaCB0YWJsZQorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sSGFzaEVudHJ5IHhtbEhhc2hFbnRyeTsKK3R5cGVkZWYgeG1sSGFzaEVudHJ5ICp4bWxIYXNoRW50cnlQdHI7CitzdHJ1Y3QgX3htbEhhc2hFbnRyeSB7CisgICAgc3RydWN0IF94bWxIYXNoRW50cnkgKm5leHQ7CisgICAgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxDaGFyICpuYW1lMjsKKyAgICB4bWxDaGFyICpuYW1lMzsKKyAgICB2b2lkICpwYXlsb2FkOworICAgIGludCB2YWxpZDsKK307CisKKy8qCisgKiBUaGUgZW50aXJlIGhhc2ggdGFibGUKKyAqLworc3RydWN0IF94bWxIYXNoVGFibGUgeworICAgIHN0cnVjdCBfeG1sSGFzaEVudHJ5ICp0YWJsZTsKKyAgICBpbnQgc2l6ZTsKKyAgICBpbnQgbmJFbGVtczsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7Cit9OworCisvKgorICogeG1sSGFzaENvbXB1dGVLZXk6CisgKiBDYWxjdWxhdGUgdGhlIGhhc2gga2V5CisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nCit4bWxIYXNoQ29tcHV0ZUtleSh4bWxIYXNoVGFibGVQdHIgdGFibGUsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUyLCBjb25zdCB4bWxDaGFyICpuYW1lMykgeworICAgIHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAwTDsKKyAgICBjaGFyIGNoOworICAgIAorICAgIGlmIChuYW1lICE9IE5VTEwpIHsKKwl2YWx1ZSArPSAzMCAqICgqbmFtZSk7CisJd2hpbGUgKChjaCA9ICpuYW1lKyspICE9IDApIHsKKwkgICAgdmFsdWUgPSB2YWx1ZSBeICgodmFsdWUgPDwgNSkgKyAodmFsdWUgPj4gMykgKyAodW5zaWduZWQgbG9uZyljaCk7CisJfQorICAgIH0KKyAgICBpZiAobmFtZTIgIT0gTlVMTCkgeworCXdoaWxlICgoY2ggPSAqbmFtZTIrKykgIT0gMCkgeworCSAgICB2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKWNoKTsKKwl9CisgICAgfQorICAgIGlmIChuYW1lMyAhPSBOVUxMKSB7CisJd2hpbGUgKChjaCA9ICpuYW1lMysrKSAhPSAwKSB7CisJICAgIHZhbHVlID0gdmFsdWUgXiAoKHZhbHVlIDw8IDUpICsgKHZhbHVlID4+IDMpICsgKHVuc2lnbmVkIGxvbmcpY2gpOworCX0KKyAgICB9CisgICAgcmV0dXJuICh2YWx1ZSAlIHRhYmxlLT5zaXplKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcKK3htbEhhc2hDb21wdXRlUUtleSh4bWxIYXNoVGFibGVQdHIgdGFibGUsCisJCSAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJICAgY29uc3QgeG1sQ2hhciAqcHJlZml4MiwgY29uc3QgeG1sQ2hhciAqbmFtZTIsCisJCSAgIGNvbnN0IHhtbENoYXIgKnByZWZpeDMsIGNvbnN0IHhtbENoYXIgKm5hbWUzKSB7CisgICAgdW5zaWduZWQgbG9uZyB2YWx1ZSA9IDBMOworICAgIGNoYXIgY2g7CisgICAgCisgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorCXZhbHVlICs9IDMwICogKCpwcmVmaXgpOworICAgIGVsc2UKKwl2YWx1ZSArPSAzMCAqICgqbmFtZSk7CisKKyAgICBpZiAocHJlZml4ICE9IE5VTEwpIHsKKwl3aGlsZSAoKGNoID0gKnByZWZpeCsrKSAhPSAwKSB7CisJICAgIHZhbHVlID0gdmFsdWUgXiAoKHZhbHVlIDw8IDUpICsgKHZhbHVlID4+IDMpICsgKHVuc2lnbmVkIGxvbmcpY2gpOworCX0KKwl2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKSc6Jyk7CisgICAgfQorICAgIGlmIChuYW1lICE9IE5VTEwpIHsKKwl3aGlsZSAoKGNoID0gKm5hbWUrKykgIT0gMCkgeworCSAgICB2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKWNoKTsKKwl9CisgICAgfQorICAgIGlmIChwcmVmaXgyICE9IE5VTEwpIHsKKwl3aGlsZSAoKGNoID0gKnByZWZpeDIrKykgIT0gMCkgeworCSAgICB2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKWNoKTsKKwl9CisJdmFsdWUgPSB2YWx1ZSBeICgodmFsdWUgPDwgNSkgKyAodmFsdWUgPj4gMykgKyAodW5zaWduZWQgbG9uZyknOicpOworICAgIH0KKyAgICBpZiAobmFtZTIgIT0gTlVMTCkgeworCXdoaWxlICgoY2ggPSAqbmFtZTIrKykgIT0gMCkgeworCSAgICB2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKWNoKTsKKwl9CisgICAgfQorICAgIGlmIChwcmVmaXgzICE9IE5VTEwpIHsKKwl3aGlsZSAoKGNoID0gKnByZWZpeDMrKykgIT0gMCkgeworCSAgICB2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKWNoKTsKKwl9CisJdmFsdWUgPSB2YWx1ZSBeICgodmFsdWUgPDwgNSkgKyAodmFsdWUgPj4gMykgKyAodW5zaWduZWQgbG9uZyknOicpOworICAgIH0KKyAgICBpZiAobmFtZTMgIT0gTlVMTCkgeworCXdoaWxlICgoY2ggPSAqbmFtZTMrKykgIT0gMCkgeworCSAgICB2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKWNoKTsKKwl9CisgICAgfQorICAgIHJldHVybiAodmFsdWUgJSB0YWJsZS0+c2l6ZSk7Cit9CisKKy8qKgorICogeG1sSGFzaENyZWF0ZToKKyAqIEBzaXplOiB0aGUgc2l6ZSBvZiB0aGUgaGFzaCB0YWJsZQorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxIYXNoVGFibGVQdHIuCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QsIG9yIE5VTEwgaWYgYW4gZXJyb3Igb2NjdXJlZC4KKyAqLworeG1sSGFzaFRhYmxlUHRyCit4bWxIYXNoQ3JlYXRlKGludCBzaXplKSB7CisgICAgeG1sSGFzaFRhYmxlUHRyIHRhYmxlOworICAKKyAgICBpZiAoc2l6ZSA8PSAwKQorICAgICAgICBzaXplID0gMjU2OworICAKKyAgICB0YWJsZSA9IHhtbE1hbGxvYyhzaXplb2YoeG1sSGFzaFRhYmxlKSk7CisgICAgaWYgKHRhYmxlKSB7CisgICAgICAgIHRhYmxlLT5kaWN0ID0gTlVMTDsKKyAgICAgICAgdGFibGUtPnNpemUgPSBzaXplOworCXRhYmxlLT5uYkVsZW1zID0gMDsKKyAgICAgICAgdGFibGUtPnRhYmxlID0geG1sTWFsbG9jKHNpemUgKiBzaXplb2YoeG1sSGFzaEVudHJ5KSk7CisgICAgICAgIGlmICh0YWJsZS0+dGFibGUpIHsKKyAgCSAgICBtZW1zZXQodGFibGUtPnRhYmxlLCAwLCBzaXplICogc2l6ZW9mKHhtbEhhc2hFbnRyeSkpOworICAJICAgIHJldHVybih0YWJsZSk7CisgICAgICAgIH0KKyAgICAgICAgeG1sRnJlZSh0YWJsZSk7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxIYXNoQ3JlYXRlRGljdDoKKyAqIEBzaXplOiB0aGUgc2l6ZSBvZiB0aGUgaGFzaCB0YWJsZQorICogQGRpY3Q6IGEgZGljdGlvbmFyeSB0byB1c2UgZm9yIHRoZSBoYXNoCisgKgorICogQ3JlYXRlIGEgbmV3IHhtbEhhc2hUYWJsZVB0ciB3aGljaCB3aWxsIHVzZSBAZGljdCBhcyB0aGUgaW50ZXJuYWwgZGljdGlvbmFyeQorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LCBvciBOVUxMIGlmIGFuIGVycm9yIG9jY3VyZWQuCisgKi8KK3htbEhhc2hUYWJsZVB0cgoreG1sSGFzaENyZWF0ZURpY3QoaW50IHNpemUsIHhtbERpY3RQdHIgZGljdCkgeworICAgIHhtbEhhc2hUYWJsZVB0ciB0YWJsZTsKKworICAgIHRhYmxlID0geG1sSGFzaENyZWF0ZShzaXplKTsKKyAgICBpZiAodGFibGUgIT0gTlVMTCkgeworICAgICAgICB0YWJsZS0+ZGljdCA9IGRpY3Q7CisJeG1sRGljdFJlZmVyZW5jZShkaWN0KTsKKyAgICB9CisgICAgcmV0dXJuKHRhYmxlKTsKK30KKworLyoqCisgKiB4bWxIYXNoR3JvdzoKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBzaXplOiB0aGUgbmV3IHNpemUgb2YgdGhlIGhhc2ggdGFibGUKKyAqCisgKiByZXNpemUgdGhlIGhhc2ggdGFibGUKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworc3RhdGljIGludAoreG1sSGFzaEdyb3coeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBpbnQgc2l6ZSkgeworICAgIHVuc2lnbmVkIGxvbmcga2V5OworICAgIGludCBvbGRzaXplLCBpOworICAgIHhtbEhhc2hFbnRyeVB0ciBpdGVyLCBuZXh0OworICAgIHN0cnVjdCBfeG1sSGFzaEVudHJ5ICpvbGR0YWJsZTsKKyNpZmRlZiBERUJVR19HUk9XCisgICAgdW5zaWduZWQgbG9uZyBuYkVsZW0gPSAwOworI2VuZGlmCisgIAorICAgIGlmICh0YWJsZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHNpemUgPCA4KQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChzaXplID4gOCAqIDIwNDgpCisJcmV0dXJuKC0xKTsKKworICAgIG9sZHNpemUgPSB0YWJsZS0+c2l6ZTsKKyAgICBvbGR0YWJsZSA9IHRhYmxlLT50YWJsZTsKKyAgICBpZiAob2xkdGFibGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgCisgICAgdGFibGUtPnRhYmxlID0geG1sTWFsbG9jKHNpemUgKiBzaXplb2YoeG1sSGFzaEVudHJ5KSk7CisgICAgaWYgKHRhYmxlLT50YWJsZSA9PSBOVUxMKSB7CisJdGFibGUtPnRhYmxlID0gb2xkdGFibGU7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgbWVtc2V0KHRhYmxlLT50YWJsZSwgMCwgc2l6ZSAqIHNpemVvZih4bWxIYXNoRW50cnkpKTsKKyAgICB0YWJsZS0+c2l6ZSA9IHNpemU7CisKKyAgICAvKglJZiB0aGUgdHdvIGxvb3BzIGFyZSBtZXJnZWQsIHRoZXJlIHdvdWxkIGJlIHNpdHVhdGlvbnMgd2hlcmUKKwlhIG5ldyBlbnRyeSBuZWVkcyB0byBhbGxvY2F0ZWQgYW5kIGRhdGEgY29waWVkIGludG8gaXQgZnJvbSAKKwl0aGUgbWFpbiB0YWJsZS4gU28gaW5zdGVhZCwgd2UgcnVuIHRocm91Z2ggdGhlIGFycmF5IHR3aWNlLCBmaXJzdAorCWNvcHlpbmcgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgbWFpbiBhcnJheSAod2hlcmUgd2UgY2FuJ3QgZ2V0CisJY29uZmxpY3RzKSBhbmQgdGhlbiB0aGUgcmVzdCwgc28gd2Ugb25seSBmcmVlIChhbmQgZG9uJ3QgYWxsb2NhdGUpCisgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgb2xkc2l6ZTsgaSsrKSB7CisJaWYgKG9sZHRhYmxlW2ldLnZhbGlkID09IDApIAorCSAgICBjb250aW51ZTsKKwlrZXkgPSB4bWxIYXNoQ29tcHV0ZUtleSh0YWJsZSwgb2xkdGFibGVbaV0ubmFtZSwgb2xkdGFibGVbaV0ubmFtZTIsCisJCQkJb2xkdGFibGVbaV0ubmFtZTMpOworCW1lbWNweSgmKHRhYmxlLT50YWJsZVtrZXldKSwgJihvbGR0YWJsZVtpXSksIHNpemVvZih4bWxIYXNoRW50cnkpKTsKKwl0YWJsZS0+dGFibGVba2V5XS5uZXh0ID0gTlVMTDsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgb2xkc2l6ZTsgaSsrKSB7CisJaXRlciA9IG9sZHRhYmxlW2ldLm5leHQ7CisJd2hpbGUgKGl0ZXIpIHsKKwkgICAgbmV4dCA9IGl0ZXItPm5leHQ7CisKKwkgICAgLyoKKwkgICAgICogcHV0IGJhY2sgdGhlIGVudHJ5IGluIHRoZSBuZXcgdGFibGUKKwkgICAgICovCisKKwkgICAga2V5ID0geG1sSGFzaENvbXB1dGVLZXkodGFibGUsIGl0ZXItPm5hbWUsIGl0ZXItPm5hbWUyLAorCQkgICAgICAgICAgICAgICAgICAgIGl0ZXItPm5hbWUzKTsKKwkgICAgaWYgKHRhYmxlLT50YWJsZVtrZXldLnZhbGlkID09IDApIHsKKwkJbWVtY3B5KCYodGFibGUtPnRhYmxlW2tleV0pLCBpdGVyLCBzaXplb2YoeG1sSGFzaEVudHJ5KSk7CisJCXRhYmxlLT50YWJsZVtrZXldLm5leHQgPSBOVUxMOworCQl4bWxGcmVlKGl0ZXIpOworCSAgICB9IGVsc2UgeworCSAgICAJaXRlci0+bmV4dCA9IHRhYmxlLT50YWJsZVtrZXldLm5leHQ7CisJICAgIAl0YWJsZS0+dGFibGVba2V5XS5uZXh0ID0gaXRlcjsKKwkgICAgfQorCisjaWZkZWYgREVCVUdfR1JPVworCSAgICBuYkVsZW0rKzsKKyNlbmRpZgorCisJICAgIGl0ZXIgPSBuZXh0OworCX0KKyAgICB9CisKKyAgICB4bWxGcmVlKG9sZHRhYmxlKTsKKworI2lmZGVmIERFQlVHX0dST1cKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgInhtbEhhc2hHcm93IDogZnJvbSAlZCB0byAlZCwgJWQgZWxlbXNcbiIsIG9sZHNpemUsIHNpemUsIG5iRWxlbSk7CisjZW5kaWYKKworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxIYXNoRnJlZToKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBmOiAgdGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaAorICoKKyAqIEZyZWUgdGhlIGhhc2ggQHRhYmxlIGFuZCBpdHMgY29udGVudHMuIFRoZSB1c2VyZGF0YSBpcworICogZGVhbGxvY2F0ZWQgd2l0aCBAZiBpZiBwcm92aWRlZC4KKyAqLwordm9pZAoreG1sSGFzaEZyZWUoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCB4bWxIYXNoRGVhbGxvY2F0b3IgZikgeworICAgIGludCBpOworICAgIHhtbEhhc2hFbnRyeVB0ciBpdGVyOworICAgIHhtbEhhc2hFbnRyeVB0ciBuZXh0OworICAgIGludCBpbnNpZGVfdGFibGUgPSAwOworICAgIGludCBuYkVsZW1zOworCisgICAgaWYgKHRhYmxlID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmICh0YWJsZS0+dGFibGUpIHsKKwluYkVsZW1zID0gdGFibGUtPm5iRWxlbXM7CisJZm9yKGkgPSAwOyAoaSA8IHRhYmxlLT5zaXplKSAmJiAobmJFbGVtcyA+IDApOyBpKyspIHsKKwkgICAgaXRlciA9ICYodGFibGUtPnRhYmxlW2ldKTsKKwkgICAgaWYgKGl0ZXItPnZhbGlkID09IDApCisJCWNvbnRpbnVlOworCSAgICBpbnNpZGVfdGFibGUgPSAxOworCSAgICB3aGlsZSAoaXRlcikgeworCQluZXh0ID0gaXRlci0+bmV4dDsKKwkJaWYgKChmICE9IE5VTEwpICYmIChpdGVyLT5wYXlsb2FkICE9IE5VTEwpKQorCQkgICAgZihpdGVyLT5wYXlsb2FkLCBpdGVyLT5uYW1lKTsKKwkJaWYgKHRhYmxlLT5kaWN0ID09IE5VTEwpIHsKKwkJICAgIGlmIChpdGVyLT5uYW1lKQorCQkJeG1sRnJlZShpdGVyLT5uYW1lKTsKKwkJICAgIGlmIChpdGVyLT5uYW1lMikKKwkJCXhtbEZyZWUoaXRlci0+bmFtZTIpOworCQkgICAgaWYgKGl0ZXItPm5hbWUzKQorCQkJeG1sRnJlZShpdGVyLT5uYW1lMyk7CisJCX0KKwkJaXRlci0+cGF5bG9hZCA9IE5VTEw7CisJCWlmICghaW5zaWRlX3RhYmxlKQorCQkgICAgeG1sRnJlZShpdGVyKTsKKwkJbmJFbGVtcy0tOworCQlpbnNpZGVfdGFibGUgPSAwOworCQlpdGVyID0gbmV4dDsKKwkgICAgfQorCX0KKwl4bWxGcmVlKHRhYmxlLT50YWJsZSk7CisgICAgfQorICAgIGlmICh0YWJsZS0+ZGljdCkKKyAgICAgICAgeG1sRGljdEZyZWUodGFibGUtPmRpY3QpOworICAgIHhtbEZyZWUodGFibGUpOworfQorCisvKioKKyAqIHhtbEhhc2hBZGRFbnRyeToKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqIEB1c2VyZGF0YTogYSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YQorICoKKyAqIEFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkCisgKiBieSB1c2luZyB0aGUgQG5hbWUuIER1cGxpY2F0ZSBuYW1lcyBnZW5lcmF0ZSBlcnJvcnMuCisgKgorICogUmV0dXJucyAwIHRoZSBhZGRpdGlvbiBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sSGFzaEFkZEVudHJ5KHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwgdm9pZCAqdXNlcmRhdGEpIHsKKyAgICByZXR1cm4oeG1sSGFzaEFkZEVudHJ5Myh0YWJsZSwgbmFtZSwgTlVMTCwgTlVMTCwgdXNlcmRhdGEpKTsKK30KKworLyoqCisgKiB4bWxIYXNoQWRkRW50cnkyOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUyOiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQHVzZXJkYXRhOiBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhCisgKgorICogQWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQKKyAqIGJ5IHVzaW5nIHRoZSAoQG5hbWUsIEBuYW1lMikgdHVwbGUuIER1cGxpY2F0ZSB0dXBsZXMgZ2VuZXJhdGUgZXJyb3JzLgorICoKKyAqIFJldHVybnMgMCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbEhhc2hBZGRFbnRyeTIoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZTIsIHZvaWQgKnVzZXJkYXRhKSB7CisgICAgcmV0dXJuKHhtbEhhc2hBZGRFbnRyeTModGFibGUsIG5hbWUsIG5hbWUyLCBOVUxMLCB1c2VyZGF0YSkpOworfQorCisvKioKKyAqIHhtbEhhc2hVcGRhdGVFbnRyeToKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqIEB1c2VyZGF0YTogYSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YQorICogQGY6IHRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVwbGFjZWQgaXRlbSAoaWYgYW55KQorICoKKyAqIEFkZCB0aGUgQHVzZXJkYXRhIHRvIHRoZSBoYXNoIEB0YWJsZS4gVGhpcyBjYW4gbGF0ZXIgYmUgcmV0cmlldmVkCisgKiBieSB1c2luZyB0aGUgQG5hbWUuIEV4aXN0aW5nIGVudHJ5IGZvciB0aGlzIEBuYW1lIHdpbGwgYmUgcmVtb3ZlZAorICogYW5kIGZyZWVkIHdpdGggQGYgaWYgZm91bmQuCisgKgorICogUmV0dXJucyAwIHRoZSBhZGRpdGlvbiBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sSGFzaFVwZGF0ZUVudHJ5KHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgICAgIHZvaWQgKnVzZXJkYXRhLCB4bWxIYXNoRGVhbGxvY2F0b3IgZikgeworICAgIHJldHVybih4bWxIYXNoVXBkYXRlRW50cnkzKHRhYmxlLCBuYW1lLCBOVUxMLCBOVUxMLCB1c2VyZGF0YSwgZikpOworfQorCisvKioKKyAqIHhtbEhhc2hVcGRhdGVFbnRyeTI6CisgKiBAdGFibGU6IHRoZSBoYXNoIHRhYmxlCisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAbmFtZTI6IGEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAdXNlcmRhdGE6IGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEKKyAqIEBmOiB0aGUgZGVhbGxvY2F0b3IgZnVuY3Rpb24gZm9yIHJlcGxhY2VkIGl0ZW0gKGlmIGFueSkKKyAqCisgKiBBZGQgdGhlIEB1c2VyZGF0YSB0byB0aGUgaGFzaCBAdGFibGUuIFRoaXMgY2FuIGxhdGVyIGJlIHJldHJpZXZlZAorICogYnkgdXNpbmcgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZS4gRXhpc3RpbmcgZW50cnkgZm9yIHRoaXMgdHVwbGUgd2lsbAorICogYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZiBpZiBmb3VuZC4KKyAqCisgKiBSZXR1cm5zIDAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxIYXNoVXBkYXRlRW50cnkyKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUyLCB2b2lkICp1c2VyZGF0YSwKKwkJICAgeG1sSGFzaERlYWxsb2NhdG9yIGYpIHsKKyAgICByZXR1cm4oeG1sSGFzaFVwZGF0ZUVudHJ5Myh0YWJsZSwgbmFtZSwgbmFtZTIsIE5VTEwsIHVzZXJkYXRhLCBmKSk7Cit9CisKKy8qKgorICogeG1sSGFzaExvb2t1cDoKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqCisgKiBGaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIEBuYW1lLgorICoKKyAqIFJldHVybnMgdGhlIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhCisgKi8KK3ZvaWQgKgoreG1sSGFzaExvb2t1cCh4bWxIYXNoVGFibGVQdHIgdGFibGUsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICByZXR1cm4oeG1sSGFzaExvb2t1cDModGFibGUsIG5hbWUsIE5VTEwsIE5VTEwpKTsKK30KKworLyoqCisgKiB4bWxIYXNoTG9va3VwMjoKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqIEBuYW1lMjogYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqCisgKiBGaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyKSB0dXBsZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YQorICovCit2b2lkICoKK3htbEhhc2hMb29rdXAyKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICBjb25zdCB4bWxDaGFyICpuYW1lMikgeworICAgIHJldHVybih4bWxIYXNoTG9va3VwMyh0YWJsZSwgbmFtZSwgbmFtZTIsIE5VTEwpKTsKK30KKworLyoqCisgKiB4bWxIYXNoUUxvb2t1cDoKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBwcmVmaXg6IHRoZSBwcmVmaXggb2YgdGhlIHVzZXJkYXRhCisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKgorICogRmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSBRTmFtZSBAcHJlZml4OkBuYW1lL0BuYW1lLgorICoKKyAqIFJldHVybnMgdGhlIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhCisgKi8KK3ZvaWQgKgoreG1sSGFzaFFMb29rdXAoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgcmV0dXJuKHhtbEhhc2hRTG9va3VwMyh0YWJsZSwgcHJlZml4LCBuYW1lLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKSk7Cit9CisKKy8qKgorICogeG1sSGFzaFFMb29rdXAyOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQHByZWZpeDogdGhlIHByZWZpeCBvZiB0aGUgdXNlcmRhdGEKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqIEBwcmVmaXgyOiB0aGUgc2Vjb25kIHByZWZpeCBvZiB0aGUgdXNlcmRhdGEKKyAqIEBuYW1lMjogYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqCisgKiBGaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIFFOYW1lcyB0dXBsZQorICoKKyAqIFJldHVybnMgdGhlIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhCisgKi8KK3ZvaWQgKgoreG1sSGFzaFFMb29rdXAyKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqcHJlZml4LAorICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKnByZWZpeDIsCisJICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lMikgeworICAgIHJldHVybih4bWxIYXNoUUxvb2t1cDModGFibGUsIHByZWZpeCwgbmFtZSwgcHJlZml4MiwgbmFtZTIsIE5VTEwsIE5VTEwpKTsKK30KKworLyoqCisgKiB4bWxIYXNoQWRkRW50cnkzOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUyOiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUzOiBhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAdXNlcmRhdGE6IGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEKKyAqCisgKiBBZGQgdGhlIEB1c2VyZGF0YSB0byB0aGUgaGFzaCBAdGFibGUuIFRoaXMgY2FuIGxhdGVyIGJlIHJldHJpZXZlZAorICogYnkgdXNpbmcgdGhlIHR1cGxlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpLiBEdXBsaWNhdGUgZW50cmllcyBnZW5lcmF0ZQorICogZXJyb3JzLgorICoKKyAqIFJldHVybnMgMCB0aGUgYWRkaXRpb24gc3VjY2VlZGVkIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbEhhc2hBZGRFbnRyeTMoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUyLCBjb25zdCB4bWxDaGFyICpuYW1lMywKKwkJIHZvaWQgKnVzZXJkYXRhKSB7CisgICAgdW5zaWduZWQgbG9uZyBrZXksIGxlbiA9IDA7CisgICAgeG1sSGFzaEVudHJ5UHRyIGVudHJ5OworICAgIHhtbEhhc2hFbnRyeVB0ciBpbnNlcnQ7CisKKyAgICBpZiAoKHRhYmxlID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKQorCXJldHVybigtMSk7CisKKyAgICAvKgorICAgICAqIElmIHVzaW5nIGEgZGljdCBpbnRlcm5hbGl6ZSBpZiBuZWVkZWQKKyAgICAgKi8KKyAgICBpZiAodGFibGUtPmRpY3QpIHsKKyAgICAgICAgaWYgKCF4bWxEaWN0T3ducyh0YWJsZS0+ZGljdCwgbmFtZSkpIHsKKwkgICAgbmFtZSA9IHhtbERpY3RMb29rdXAodGFibGUtPmRpY3QsIG5hbWUsIC0xKTsKKwkgICAgaWYgKG5hbWUgPT0gTlVMTCkKKwkgICAgICAgIHJldHVybigtMSk7CisJfQorICAgICAgICBpZiAoKG5hbWUyICE9IE5VTEwpICYmICgheG1sRGljdE93bnModGFibGUtPmRpY3QsIG5hbWUyKSkpIHsKKwkgICAgbmFtZTIgPSB4bWxEaWN0TG9va3VwKHRhYmxlLT5kaWN0LCBuYW1lMiwgLTEpOworCSAgICBpZiAobmFtZTIgPT0gTlVMTCkKKwkgICAgICAgIHJldHVybigtMSk7CisJfQorICAgICAgICBpZiAoKG5hbWUzICE9IE5VTEwpICYmICgheG1sRGljdE93bnModGFibGUtPmRpY3QsIG5hbWUzKSkpIHsKKwkgICAgbmFtZTMgPSB4bWxEaWN0TG9va3VwKHRhYmxlLT5kaWN0LCBuYW1lMywgLTEpOworCSAgICBpZiAobmFtZTMgPT0gTlVMTCkKKwkgICAgICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogQ2hlY2sgZm9yIGR1cGxpY2F0ZSBhbmQgaW5zZXJ0aW9uIGxvY2F0aW9uLgorICAgICAqLworICAgIGtleSA9IHhtbEhhc2hDb21wdXRlS2V5KHRhYmxlLCBuYW1lLCBuYW1lMiwgbmFtZTMpOworICAgIGlmICh0YWJsZS0+dGFibGVba2V5XS52YWxpZCA9PSAwKSB7CisJaW5zZXJ0ID0gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodGFibGUtPmRpY3QpIHsKKwkgICAgZm9yIChpbnNlcnQgPSAmKHRhYmxlLT50YWJsZVtrZXldKTsgaW5zZXJ0LT5uZXh0ICE9IE5VTEw7CisJCSBpbnNlcnQgPSBpbnNlcnQtPm5leHQpIHsKKwkJaWYgKChpbnNlcnQtPm5hbWUgPT0gbmFtZSkgJiYKKwkJICAgIChpbnNlcnQtPm5hbWUyID09IG5hbWUyKSAmJgorCQkgICAgKGluc2VydC0+bmFtZTMgPT0gbmFtZTMpKQorCQkgICAgcmV0dXJuKC0xKTsKKwkJbGVuKys7CisJICAgIH0KKwkgICAgaWYgKChpbnNlcnQtPm5hbWUgPT0gbmFtZSkgJiYKKwkJKGluc2VydC0+bmFtZTIgPT0gbmFtZTIpICYmCisJCShpbnNlcnQtPm5hbWUzID09IG5hbWUzKSkKKwkJcmV0dXJuKC0xKTsKKwl9IGVsc2UgeworCSAgICBmb3IgKGluc2VydCA9ICYodGFibGUtPnRhYmxlW2tleV0pOyBpbnNlcnQtPm5leHQgIT0gTlVMTDsKKwkJIGluc2VydCA9IGluc2VydC0+bmV4dCkgeworCQlpZiAoKHhtbFN0ckVxdWFsKGluc2VydC0+bmFtZSwgbmFtZSkpICYmCisJCSAgICAoeG1sU3RyRXF1YWwoaW5zZXJ0LT5uYW1lMiwgbmFtZTIpKSAmJgorCQkgICAgKHhtbFN0ckVxdWFsKGluc2VydC0+bmFtZTMsIG5hbWUzKSkpCisJCSAgICByZXR1cm4oLTEpOworCQlsZW4rKzsKKwkgICAgfQorCSAgICBpZiAoKHhtbFN0ckVxdWFsKGluc2VydC0+bmFtZSwgbmFtZSkpICYmCisJCSh4bWxTdHJFcXVhbChpbnNlcnQtPm5hbWUyLCBuYW1lMikpICYmCisJCSh4bWxTdHJFcXVhbChpbnNlcnQtPm5hbWUzLCBuYW1lMykpKQorCQlyZXR1cm4oLTEpOworCX0KKyAgICB9CisKKyAgICBpZiAoaW5zZXJ0ID09IE5VTEwpIHsKKwllbnRyeSA9ICYodGFibGUtPnRhYmxlW2tleV0pOworICAgIH0gZWxzZSB7CisJZW50cnkgPSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEhhc2hFbnRyeSkpOworCWlmIChlbnRyeSA9PSBOVUxMKQorCSAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBpZiAodGFibGUtPmRpY3QgIT0gTlVMTCkgeworICAgICAgICBlbnRyeS0+bmFtZSA9ICh4bWxDaGFyICopIG5hbWU7CisgICAgICAgIGVudHJ5LT5uYW1lMiA9ICh4bWxDaGFyICopIG5hbWUyOworICAgICAgICBlbnRyeS0+bmFtZTMgPSAoeG1sQ2hhciAqKSBuYW1lMzsKKyAgICB9IGVsc2UgeworCWVudHJ5LT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworCWVudHJ5LT5uYW1lMiA9IHhtbFN0cmR1cChuYW1lMik7CisJZW50cnktPm5hbWUzID0geG1sU3RyZHVwKG5hbWUzKTsKKyAgICB9CisgICAgZW50cnktPnBheWxvYWQgPSB1c2VyZGF0YTsKKyAgICBlbnRyeS0+bmV4dCA9IE5VTEw7CisgICAgZW50cnktPnZhbGlkID0gMTsKKworCisgICAgaWYgKGluc2VydCAhPSBOVUxMKSAKKwlpbnNlcnQtPm5leHQgPSBlbnRyeTsKKworICAgIHRhYmxlLT5uYkVsZW1zKys7CisKKyAgICBpZiAobGVuID4gTUFYX0hBU0hfTEVOKQorCXhtbEhhc2hHcm93KHRhYmxlLCBNQVhfSEFTSF9MRU4gKiB0YWJsZS0+c2l6ZSk7CisKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sSGFzaFVwZGF0ZUVudHJ5MzoKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqIEBuYW1lMjogYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqIEBuYW1lMzogYSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQHVzZXJkYXRhOiBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhCisgKiBAZjogdGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZXBsYWNlZCBpdGVtIChpZiBhbnkpCisgKgorICogQWRkIHRoZSBAdXNlcmRhdGEgdG8gdGhlIGhhc2ggQHRhYmxlLiBUaGlzIGNhbiBsYXRlciBiZSByZXRyaWV2ZWQKKyAqIGJ5IHVzaW5nIHRoZSB0dXBsZSAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKS4gRXhpc3RpbmcgZW50cnkgZm9yIHRoaXMgdHVwbGUKKyAqIHdpbGwgYmUgcmVtb3ZlZCBhbmQgZnJlZWQgd2l0aCBAZiBpZiBmb3VuZC4KKyAqCisgKiBSZXR1cm5zIDAgdGhlIGFkZGl0aW9uIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxIYXNoVXBkYXRlRW50cnkzKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUyLCBjb25zdCB4bWxDaGFyICpuYW1lMywKKwkJICAgdm9pZCAqdXNlcmRhdGEsIHhtbEhhc2hEZWFsbG9jYXRvciBmKSB7CisgICAgdW5zaWduZWQgbG9uZyBrZXk7CisgICAgeG1sSGFzaEVudHJ5UHRyIGVudHJ5OworICAgIHhtbEhhc2hFbnRyeVB0ciBpbnNlcnQ7CisKKyAgICBpZiAoKHRhYmxlID09IE5VTEwpIHx8IG5hbWUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgLyoKKyAgICAgKiBJZiB1c2luZyBhIGRpY3QgaW50ZXJuYWxpemUgaWYgbmVlZGVkCisgICAgICovCisgICAgaWYgKHRhYmxlLT5kaWN0KSB7CisgICAgICAgIGlmICgheG1sRGljdE93bnModGFibGUtPmRpY3QsIG5hbWUpKSB7CisJICAgIG5hbWUgPSB4bWxEaWN0TG9va3VwKHRhYmxlLT5kaWN0LCBuYW1lLCAtMSk7CisJICAgIGlmIChuYW1lID09IE5VTEwpCisJICAgICAgICByZXR1cm4oLTEpOworCX0KKyAgICAgICAgaWYgKChuYW1lMiAhPSBOVUxMKSAmJiAoIXhtbERpY3RPd25zKHRhYmxlLT5kaWN0LCBuYW1lMikpKSB7CisJICAgIG5hbWUyID0geG1sRGljdExvb2t1cCh0YWJsZS0+ZGljdCwgbmFtZTIsIC0xKTsKKwkgICAgaWYgKG5hbWUyID09IE5VTEwpCisJICAgICAgICByZXR1cm4oLTEpOworCX0KKyAgICAgICAgaWYgKChuYW1lMyAhPSBOVUxMKSAmJiAoIXhtbERpY3RPd25zKHRhYmxlLT5kaWN0LCBuYW1lMykpKSB7CisJICAgIG5hbWUzID0geG1sRGljdExvb2t1cCh0YWJsZS0+ZGljdCwgbmFtZTMsIC0xKTsKKwkgICAgaWYgKG5hbWUzID09IE5VTEwpCisJICAgICAgICByZXR1cm4oLTEpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGluc2VydGlvbiBsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBrZXkgPSB4bWxIYXNoQ29tcHV0ZUtleSh0YWJsZSwgbmFtZSwgbmFtZTIsIG5hbWUzKTsKKyAgICBpZiAodGFibGUtPnRhYmxlW2tleV0udmFsaWQgPT0gMCkgeworCWluc2VydCA9IE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHRhYmxlIC0+ZGljdCkgeworCSAgICBmb3IgKGluc2VydCA9ICYodGFibGUtPnRhYmxlW2tleV0pOyBpbnNlcnQtPm5leHQgIT0gTlVMTDsKKwkJIGluc2VydCA9IGluc2VydC0+bmV4dCkgeworCQlpZiAoKGluc2VydC0+bmFtZSA9PSBuYW1lKSAmJgorCQkgICAgKGluc2VydC0+bmFtZTIgPT0gbmFtZTIpICYmCisJCSAgICAoaW5zZXJ0LT5uYW1lMyA9PSBuYW1lMykpIHsKKwkJICAgIGlmIChmKQorCQkJZihpbnNlcnQtPnBheWxvYWQsIGluc2VydC0+bmFtZSk7CisJCSAgICBpbnNlcnQtPnBheWxvYWQgPSB1c2VyZGF0YTsKKwkJICAgIHJldHVybigwKTsKKwkJfQorCSAgICB9CisJICAgIGlmICgoaW5zZXJ0LT5uYW1lID09IG5hbWUpICYmCisJCShpbnNlcnQtPm5hbWUyID09IG5hbWUyKSAmJgorCQkoaW5zZXJ0LT5uYW1lMyA9PSBuYW1lMykpIHsKKwkJaWYgKGYpCisJCSAgICBmKGluc2VydC0+cGF5bG9hZCwgaW5zZXJ0LT5uYW1lKTsKKwkJaW5zZXJ0LT5wYXlsb2FkID0gdXNlcmRhdGE7CisJCXJldHVybigwKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIGZvciAoaW5zZXJ0ID0gJih0YWJsZS0+dGFibGVba2V5XSk7IGluc2VydC0+bmV4dCAhPSBOVUxMOworCQkgaW5zZXJ0ID0gaW5zZXJ0LT5uZXh0KSB7CisJCWlmICgoeG1sU3RyRXF1YWwoaW5zZXJ0LT5uYW1lLCBuYW1lKSkgJiYKKwkJICAgICh4bWxTdHJFcXVhbChpbnNlcnQtPm5hbWUyLCBuYW1lMikpICYmCisJCSAgICAoeG1sU3RyRXF1YWwoaW5zZXJ0LT5uYW1lMywgbmFtZTMpKSkgeworCQkgICAgaWYgKGYpCisJCQlmKGluc2VydC0+cGF5bG9hZCwgaW5zZXJ0LT5uYW1lKTsKKwkJICAgIGluc2VydC0+cGF5bG9hZCA9IHVzZXJkYXRhOworCQkgICAgcmV0dXJuKDApOworCQl9CisJICAgIH0KKwkgICAgaWYgKCh4bWxTdHJFcXVhbChpbnNlcnQtPm5hbWUsIG5hbWUpKSAmJgorCQkoeG1sU3RyRXF1YWwoaW5zZXJ0LT5uYW1lMiwgbmFtZTIpKSAmJgorCQkoeG1sU3RyRXF1YWwoaW5zZXJ0LT5uYW1lMywgbmFtZTMpKSkgeworCQlpZiAoZikKKwkJICAgIGYoaW5zZXJ0LT5wYXlsb2FkLCBpbnNlcnQtPm5hbWUpOworCQlpbnNlcnQtPnBheWxvYWQgPSB1c2VyZGF0YTsKKwkJcmV0dXJuKDApOworCSAgICB9CisJfQorICAgIH0KKworICAgIGlmIChpbnNlcnQgPT0gTlVMTCkgeworCWVudHJ5ID0gICYodGFibGUtPnRhYmxlW2tleV0pOworICAgIH0gZWxzZSB7CisJZW50cnkgPSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEhhc2hFbnRyeSkpOworCWlmIChlbnRyeSA9PSBOVUxMKQorCSAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBpZiAodGFibGUtPmRpY3QgIT0gTlVMTCkgeworICAgICAgICBlbnRyeS0+bmFtZSA9ICh4bWxDaGFyICopIG5hbWU7CisgICAgICAgIGVudHJ5LT5uYW1lMiA9ICh4bWxDaGFyICopIG5hbWUyOworICAgICAgICBlbnRyeS0+bmFtZTMgPSAoeG1sQ2hhciAqKSBuYW1lMzsKKyAgICB9IGVsc2UgeworCWVudHJ5LT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworCWVudHJ5LT5uYW1lMiA9IHhtbFN0cmR1cChuYW1lMik7CisJZW50cnktPm5hbWUzID0geG1sU3RyZHVwKG5hbWUzKTsKKyAgICB9CisgICAgZW50cnktPnBheWxvYWQgPSB1c2VyZGF0YTsKKyAgICBlbnRyeS0+bmV4dCA9IE5VTEw7CisgICAgZW50cnktPnZhbGlkID0gMTsKKyAgICB0YWJsZS0+bmJFbGVtcysrOworCisKKyAgICBpZiAoaW5zZXJ0ICE9IE5VTEwpIHsKKwlpbnNlcnQtPm5leHQgPSBlbnRyeTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbEhhc2hMb29rdXAzOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUyOiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUzOiBhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKgorICogRmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSAoQG5hbWUsIEBuYW1lMiwgQG5hbWUzKSB0dXBsZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhCisgKi8KK3ZvaWQgKgoreG1sSGFzaExvb2t1cDMoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBjb25zdCB4bWxDaGFyICpuYW1lLCAKKwkgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZTIsIGNvbnN0IHhtbENoYXIgKm5hbWUzKSB7CisgICAgdW5zaWduZWQgbG9uZyBrZXk7CisgICAgeG1sSGFzaEVudHJ5UHRyIGVudHJ5OworCisgICAgaWYgKHRhYmxlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChuYW1lID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGtleSA9IHhtbEhhc2hDb21wdXRlS2V5KHRhYmxlLCBuYW1lLCBuYW1lMiwgbmFtZTMpOworICAgIGlmICh0YWJsZS0+dGFibGVba2V5XS52YWxpZCA9PSAwKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAodGFibGUtPmRpY3QpIHsKKwlmb3IgKGVudHJ5ID0gJih0YWJsZS0+dGFibGVba2V5XSk7IGVudHJ5ICE9IE5VTEw7IGVudHJ5ID0gZW50cnktPm5leHQpIHsKKwkgICAgaWYgKChlbnRyeS0+bmFtZSA9PSBuYW1lKSAmJgorCQkoZW50cnktPm5hbWUyID09IG5hbWUyKSAmJgorCQkoZW50cnktPm5hbWUzID09IG5hbWUzKSkKKwkJcmV0dXJuKGVudHJ5LT5wYXlsb2FkKTsKKwl9CisgICAgfQorICAgIGZvciAoZW50cnkgPSAmKHRhYmxlLT50YWJsZVtrZXldKTsgZW50cnkgIT0gTlVMTDsgZW50cnkgPSBlbnRyeS0+bmV4dCkgeworCWlmICgoeG1sU3RyRXF1YWwoZW50cnktPm5hbWUsIG5hbWUpKSAmJgorCSAgICAoeG1sU3RyRXF1YWwoZW50cnktPm5hbWUyLCBuYW1lMikpICYmCisJICAgICh4bWxTdHJFcXVhbChlbnRyeS0+bmFtZTMsIG5hbWUzKSkpCisJICAgIHJldHVybihlbnRyeS0+cGF5bG9hZCk7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxIYXNoUUxvb2t1cDM6CisgKiBAdGFibGU6IHRoZSBoYXNoIHRhYmxlCisgKiBAcHJlZml4OiB0aGUgcHJlZml4IG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQHByZWZpeDI6IHRoZSBzZWNvbmQgcHJlZml4IG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUyOiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQHByZWZpeDM6IHRoZSB0aGlyZCBwcmVmaXggb2YgdGhlIHVzZXJkYXRhCisgKiBAbmFtZTM6IGEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEKKyAqCisgKiBGaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlLgorICoKKyAqIFJldHVybnMgdGhlIGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEKKyAqLwordm9pZCAqCit4bWxIYXNoUUxvb2t1cDMoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLAorICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJY29uc3QgeG1sQ2hhciAqcHJlZml4MiwgY29uc3QgeG1sQ2hhciAqbmFtZTIsCisJCWNvbnN0IHhtbENoYXIgKnByZWZpeDMsIGNvbnN0IHhtbENoYXIgKm5hbWUzKSB7CisgICAgdW5zaWduZWQgbG9uZyBrZXk7CisgICAgeG1sSGFzaEVudHJ5UHRyIGVudHJ5OworCisgICAgaWYgKHRhYmxlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChuYW1lID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGtleSA9IHhtbEhhc2hDb21wdXRlUUtleSh0YWJsZSwgcHJlZml4LCBuYW1lLCBwcmVmaXgyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lMiwgcHJlZml4MywgbmFtZTMpOworICAgIGlmICh0YWJsZS0+dGFibGVba2V5XS52YWxpZCA9PSAwKQorCXJldHVybihOVUxMKTsKKyAgICBmb3IgKGVudHJ5ID0gJih0YWJsZS0+dGFibGVba2V5XSk7IGVudHJ5ICE9IE5VTEw7IGVudHJ5ID0gZW50cnktPm5leHQpIHsKKwlpZiAoKHhtbFN0clFFcXVhbChwcmVmaXgsIG5hbWUsIGVudHJ5LT5uYW1lKSkgJiYKKwkgICAgKHhtbFN0clFFcXVhbChwcmVmaXgyLCBuYW1lMiwgZW50cnktPm5hbWUyKSkgJiYKKwkgICAgKHhtbFN0clFFcXVhbChwcmVmaXgzLCBuYW1lMywgZW50cnktPm5hbWUzKSkpCisJICAgIHJldHVybihlbnRyeS0+cGF5bG9hZCk7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhtbEhhc2hTY2FubmVyIGhhc2hzY2FubmVyOworICAgIHZvaWQgKmRhdGE7Cit9IHN0dWJEYXRhOworCitzdGF0aWMgdm9pZCAKK3N0dWJIYXNoU2Nhbm5lckZ1bGwgKHZvaWQgKnBheWxvYWQsIHZvaWQgKmRhdGEsIGNvbnN0IHhtbENoYXIgKm5hbWUsIAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZTIgQVRUUklCVVRFX1VOVVNFRCwKKwkJICAgICBjb25zdCB4bWxDaGFyICpuYW1lMyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgc3R1YkRhdGEgKnN0dWJkYXRhID0gKHN0dWJEYXRhICopIGRhdGE7CisgICAgc3R1YmRhdGEtPmhhc2hzY2FubmVyIChwYXlsb2FkLCBzdHViZGF0YS0+ZGF0YSwgKHhtbENoYXIgKikgbmFtZSk7Cit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIAorLyoqCisgKiB4bWxIYXNoU2NhbjoKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBmOiAgdGhlIHNjYW5uZXIgZnVuY3Rpb24gZm9yIGl0ZW1zIGluIHRoZSBoYXNoCisgKiBAZGF0YTogIGV4dHJhIGRhdGEgcGFzc2VkIHRvIGYKKyAqCisgKiBTY2FuIHRoZSBoYXNoIEB0YWJsZSBhbmQgYXBwbGllZCBAZiB0byBlYWNoIHZhbHVlLgorICovCit2b2lkCit4bWxIYXNoU2Nhbih4bWxIYXNoVGFibGVQdHIgdGFibGUsIHhtbEhhc2hTY2FubmVyIGYsIHZvaWQgKmRhdGEpIHsKKyAgICBzdHViRGF0YSBzdHViZGF0YTsKKyAgICBzdHViZGF0YS5kYXRhID0gZGF0YTsKKyAgICBzdHViZGF0YS5oYXNoc2Nhbm5lciA9IGY7IAorICAgIHhtbEhhc2hTY2FuRnVsbCAodGFibGUsIHN0dWJIYXNoU2Nhbm5lckZ1bGwsICZzdHViZGF0YSk7Cit9CisKKy8qKgorICogeG1sSGFzaFNjYW5GdWxsOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQGY6ICB0aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2gKKyAqIEBkYXRhOiAgZXh0cmEgZGF0YSBwYXNzZWQgdG8gZgorICoKKyAqIFNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUuCisgKi8KK3ZvaWQKK3htbEhhc2hTY2FuRnVsbCh4bWxIYXNoVGFibGVQdHIgdGFibGUsIHhtbEhhc2hTY2FubmVyRnVsbCBmLCB2b2lkICpkYXRhKSB7CisgICAgaW50IGksIG5iOworICAgIHhtbEhhc2hFbnRyeVB0ciBpdGVyOworICAgIHhtbEhhc2hFbnRyeVB0ciBuZXh0OworCisgICAgaWYgKHRhYmxlID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmIChmID09IE5VTEwpCisJcmV0dXJuOworCisgICAgaWYgKHRhYmxlLT50YWJsZSkgeworCWZvcihpID0gMDsgaSA8IHRhYmxlLT5zaXplOyBpKyspIHsKKwkgICAgaWYgKHRhYmxlLT50YWJsZVtpXS52YWxpZCA9PSAwKSAKKwkJY29udGludWU7CisJICAgIGl0ZXIgPSAmKHRhYmxlLT50YWJsZVtpXSk7CisJICAgIHdoaWxlIChpdGVyKSB7CisJCW5leHQgPSBpdGVyLT5uZXh0OworICAgICAgICAgICAgICAgIG5iID0gdGFibGUtPm5iRWxlbXM7CisJCWlmICgoZiAhPSBOVUxMKSAmJiAoaXRlci0+cGF5bG9hZCAhPSBOVUxMKSkKKwkJICAgIGYoaXRlci0+cGF5bG9hZCwgZGF0YSwgaXRlci0+bmFtZSwKKwkJICAgICAgaXRlci0+bmFtZTIsIGl0ZXItPm5hbWUzKTsKKyAgICAgICAgICAgICAgICBpZiAobmIgIT0gdGFibGUtPm5iRWxlbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGFibGUgd2FzIG1vZGlmaWVkIGJ5IHRoZSBjYWxsYmFjaywgYmUgY2FyZWZ1bCAqLworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlciA9PSAmKHRhYmxlLT50YWJsZVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWJsZS0+dGFibGVbaV0udmFsaWQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWJsZS0+dGFibGVbaV0ubmV4dCAhPSBuZXh0KQorCQkJICAgIGl0ZXIgPSAmKHRhYmxlLT50YWJsZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorCQkgICAgICAgIGl0ZXIgPSBuZXh0OworICAgICAgICAgICAgICAgIH0gZWxzZQorCQkgICAgaXRlciA9IG5leHQ7CisJICAgIH0KKwl9CisgICAgfQorfQorCisvKioKKyAqIHhtbEhhc2hTY2FuMzoKKyAqIEB0YWJsZTogdGhlIGhhc2ggdGFibGUKKyAqIEBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgb3IgTlVMTAorICogQG5hbWUyOiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMCisgKiBAbmFtZTM6IGEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEgb3IgTlVMTAorICogQGY6ICB0aGUgc2Nhbm5lciBmdW5jdGlvbiBmb3IgaXRlbXMgaW4gdGhlIGhhc2gKKyAqIEBkYXRhOiAgZXh0cmEgZGF0YSBwYXNzZWQgdG8gZgorICoKKyAqIFNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUgbWF0Y2hpbmcKKyAqIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlLiBJZiBvbmUgb2YgdGhlIG5hbWVzIGlzIG51bGwsCisgKiB0aGUgY29tcGFyaXNvbiBpcyBjb25zaWRlcmVkIHRvIG1hdGNoLgorICovCit2b2lkCit4bWxIYXNoU2NhbjMoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBjb25zdCB4bWxDaGFyICpuYW1lLCAKKwkgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUyLCBjb25zdCB4bWxDaGFyICpuYW1lMywKKwkgICAgIHhtbEhhc2hTY2FubmVyIGYsIHZvaWQgKmRhdGEpIHsKKyAgICB4bWxIYXNoU2NhbkZ1bGwzICh0YWJsZSwgbmFtZSwgbmFtZTIsIG5hbWUzLAorCQkgICAgICAoeG1sSGFzaFNjYW5uZXJGdWxsKSBmLCBkYXRhKTsKK30KKworLyoqCisgKiB4bWxIYXNoU2NhbkZ1bGwzOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMCisgKiBAbmFtZTI6IGEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhIG9yIE5VTEwKKyAqIEBuYW1lMzogYSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSBvciBOVUxMCisgKiBAZjogIHRoZSBzY2FubmVyIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaAorICogQGRhdGE6ICBleHRyYSBkYXRhIHBhc3NlZCB0byBmCisgKgorICogU2NhbiB0aGUgaGFzaCBAdGFibGUgYW5kIGFwcGxpZWQgQGYgdG8gZWFjaCB2YWx1ZSBtYXRjaGluZworICogKEBuYW1lLCBAbmFtZTIsIEBuYW1lMykgdHVwbGUuIElmIG9uZSBvZiB0aGUgbmFtZXMgaXMgbnVsbCwKKyAqIHRoZSBjb21wYXJpc29uIGlzIGNvbnNpZGVyZWQgdG8gbWF0Y2guCisgKi8KK3ZvaWQKK3htbEhhc2hTY2FuRnVsbDMoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBjb25zdCB4bWxDaGFyICpuYW1lLCAKKwkJIGNvbnN0IHhtbENoYXIgKm5hbWUyLCBjb25zdCB4bWxDaGFyICpuYW1lMywKKwkJIHhtbEhhc2hTY2FubmVyRnVsbCBmLCB2b2lkICpkYXRhKSB7CisgICAgaW50IGk7CisgICAgeG1sSGFzaEVudHJ5UHRyIGl0ZXI7CisgICAgeG1sSGFzaEVudHJ5UHRyIG5leHQ7CisKKyAgICBpZiAodGFibGUgPT0gTlVMTCkKKwlyZXR1cm47CisgICAgaWYgKGYgPT0gTlVMTCkKKwlyZXR1cm47CisKKyAgICBpZiAodGFibGUtPnRhYmxlKSB7CisJZm9yKGkgPSAwOyBpIDwgdGFibGUtPnNpemU7IGkrKykgeworCSAgICBpZiAodGFibGUtPnRhYmxlW2ldLnZhbGlkID09IDApCisJCWNvbnRpbnVlOworCSAgICBpdGVyID0gJih0YWJsZS0+dGFibGVbaV0pOworCSAgICB3aGlsZSAoaXRlcikgeworCQluZXh0ID0gaXRlci0+bmV4dDsKKwkJaWYgKCgobmFtZSA9PSBOVUxMKSB8fCAoeG1sU3RyRXF1YWwobmFtZSwgaXRlci0+bmFtZSkpKSAmJgorCQkgICAgKChuYW1lMiA9PSBOVUxMKSB8fCAoeG1sU3RyRXF1YWwobmFtZTIsIGl0ZXItPm5hbWUyKSkpICYmCisJCSAgICAoKG5hbWUzID09IE5VTEwpIHx8ICh4bWxTdHJFcXVhbChuYW1lMywgaXRlci0+bmFtZTMpKSkgJiYKKwkJICAgIChpdGVyLT5wYXlsb2FkICE9IE5VTEwpKSB7CisJCSAgICBmKGl0ZXItPnBheWxvYWQsIGRhdGEsIGl0ZXItPm5hbWUsCisJCSAgICAgIGl0ZXItPm5hbWUyLCBpdGVyLT5uYW1lMyk7CisJCX0KKwkJaXRlciA9IG5leHQ7CisJICAgIH0KKwl9CisgICAgfQorfQorCisvKioKKyAqIHhtbEhhc2hDb3B5OgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQGY6ICB0aGUgY29waWVyIGZ1bmN0aW9uIGZvciBpdGVtcyBpbiB0aGUgaGFzaAorICoKKyAqIFNjYW4gdGhlIGhhc2ggQHRhYmxlIGFuZCBhcHBsaWVkIEBmIHRvIGVhY2ggdmFsdWUuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHRhYmxlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sSGFzaFRhYmxlUHRyCit4bWxIYXNoQ29weSh4bWxIYXNoVGFibGVQdHIgdGFibGUsIHhtbEhhc2hDb3BpZXIgZikgeworICAgIGludCBpOworICAgIHhtbEhhc2hFbnRyeVB0ciBpdGVyOworICAgIHhtbEhhc2hFbnRyeVB0ciBuZXh0OworICAgIHhtbEhhc2hUYWJsZVB0ciByZXQ7CisKKyAgICBpZiAodGFibGUgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGYgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSB4bWxIYXNoQ3JlYXRlKHRhYmxlLT5zaXplKTsKKyAgICBpZiAodGFibGUtPnRhYmxlKSB7CisJZm9yKGkgPSAwOyBpIDwgdGFibGUtPnNpemU7IGkrKykgeworCSAgICBpZiAodGFibGUtPnRhYmxlW2ldLnZhbGlkID09IDApCisJCWNvbnRpbnVlOworCSAgICBpdGVyID0gJih0YWJsZS0+dGFibGVbaV0pOworCSAgICB3aGlsZSAoaXRlcikgeworCQluZXh0ID0gaXRlci0+bmV4dDsKKwkJeG1sSGFzaEFkZEVudHJ5MyhyZXQsIGl0ZXItPm5hbWUsIGl0ZXItPm5hbWUyLAorCQkJICAgICAgICAgaXRlci0+bmFtZTMsIGYoaXRlci0+cGF5bG9hZCwgaXRlci0+bmFtZSkpOworCQlpdGVyID0gbmV4dDsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0LT5uYkVsZW1zID0gdGFibGUtPm5iRWxlbXM7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sSGFzaFNpemU6CisgKiBAdGFibGU6IHRoZSBoYXNoIHRhYmxlCisgKgorICogUXVlcnkgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbnN0YWxsZWQgaW4gdGhlIGhhc2ggQHRhYmxlLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgaGFzaCB0YWJsZSBvcgorICogLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbEhhc2hTaXplKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSkgeworICAgIGlmICh0YWJsZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgcmV0dXJuKHRhYmxlLT5uYkVsZW1zKTsKK30KKworLyoqCisgKiB4bWxIYXNoUmVtb3ZlRW50cnk6CisgKiBAdGFibGU6IHRoZSBoYXNoIHRhYmxlCisgKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAZjogdGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZW1vdmVkIGl0ZW0gKGlmIGFueSkKKyAqCisgKiBGaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIEBuYW1lIGFuZCByZW1vdmUKKyAqIGl0IGZyb20gdGhlIGhhc2ggQHRhYmxlLiBFeGlzdGluZyB1c2VyZGF0YSBmb3IgdGhpcyB0dXBsZSB3aWxsIGJlIHJlbW92ZWQKKyAqIGFuZCBmcmVlZCB3aXRoIEBmLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgcmVtb3ZhbCBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3Igbm90IGZvdW5kLgorICovCitpbnQgeG1sSGFzaFJlbW92ZUVudHJ5KHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJICAgICAgIHhtbEhhc2hEZWFsbG9jYXRvciBmKSB7CisgICAgcmV0dXJuKHhtbEhhc2hSZW1vdmVFbnRyeTModGFibGUsIG5hbWUsIE5VTEwsIE5VTEwsIGYpKTsKK30KKworLyoqCisgKiB4bWxIYXNoUmVtb3ZlRW50cnkyOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUyOiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQGY6IHRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVtb3ZlZCBpdGVtIChpZiBhbnkpCisgKgorICogRmluZCB0aGUgdXNlcmRhdGEgc3BlY2lmaWVkIGJ5IHRoZSAoQG5hbWUsIEBuYW1lMikgdHVwbGUgYW5kIHJlbW92ZQorICogaXQgZnJvbSB0aGUgaGFzaCBAdGFibGUuIEV4aXN0aW5nIHVzZXJkYXRhIGZvciB0aGlzIHR1cGxlIHdpbGwgYmUgcmVtb3ZlZAorICogYW5kIGZyZWVkIHdpdGggQGYuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSByZW1vdmFsIHN1Y2NlZWRlZCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvciBvciBub3QgZm91bmQuCisgKi8KK2ludAoreG1sSGFzaFJlbW92ZUVudHJ5Mih4bWxIYXNoVGFibGVQdHIgdGFibGUsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQljb25zdCB4bWxDaGFyICpuYW1lMiwgeG1sSGFzaERlYWxsb2NhdG9yIGYpIHsKKyAgICByZXR1cm4oeG1sSGFzaFJlbW92ZUVudHJ5Myh0YWJsZSwgbmFtZSwgbmFtZTIsIE5VTEwsIGYpKTsKK30KKworLyoqCisgKiB4bWxIYXNoUmVtb3ZlRW50cnkzOgorICogQHRhYmxlOiB0aGUgaGFzaCB0YWJsZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUyOiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YQorICogQG5hbWUzOiBhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhCisgKiBAZjogdGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZW1vdmVkIGl0ZW0gKGlmIGFueSkKKyAqCisgKiBGaW5kIHRoZSB1c2VyZGF0YSBzcGVjaWZpZWQgYnkgdGhlIChAbmFtZSwgQG5hbWUyLCBAbmFtZTMpIHR1cGxlIGFuZCByZW1vdmUKKyAqIGl0IGZyb20gdGhlIGhhc2ggQHRhYmxlLiBFeGlzdGluZyB1c2VyZGF0YSBmb3IgdGhpcyB0dXBsZSB3aWxsIGJlIHJlbW92ZWQKKyAqIGFuZCBmcmVlZCB3aXRoIEBmLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgcmVtb3ZhbCBzdWNjZWVkZWQgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3Igbm90IGZvdW5kLgorICovCitpbnQKK3htbEhhc2hSZW1vdmVFbnRyeTMoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLCBjb25zdCB4bWxDaGFyICpuYW1lLAorICAgIGNvbnN0IHhtbENoYXIgKm5hbWUyLCBjb25zdCB4bWxDaGFyICpuYW1lMywgeG1sSGFzaERlYWxsb2NhdG9yIGYpIHsKKyAgICB1bnNpZ25lZCBsb25nIGtleTsKKyAgICB4bWxIYXNoRW50cnlQdHIgZW50cnk7CisgICAgeG1sSGFzaEVudHJ5UHRyIHByZXYgPSBOVUxMOworCisgICAgaWYgKHRhYmxlID09IE5VTEwgfHwgbmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAga2V5ID0geG1sSGFzaENvbXB1dGVLZXkodGFibGUsIG5hbWUsIG5hbWUyLCBuYW1lMyk7CisgICAgaWYgKHRhYmxlLT50YWJsZVtrZXldLnZhbGlkID09IDApIHsKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGVudHJ5ID0gJih0YWJsZS0+dGFibGVba2V5XSk7IGVudHJ5ICE9IE5VTEw7IGVudHJ5ID0gZW50cnktPm5leHQpIHsKKyAgICAgICAgICAgIGlmICh4bWxTdHJFcXVhbChlbnRyeS0+bmFtZSwgbmFtZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgeG1sU3RyRXF1YWwoZW50cnktPm5hbWUyLCBuYW1lMikgJiYKKyAgICAgICAgICAgICAgICAgICAgeG1sU3RyRXF1YWwoZW50cnktPm5hbWUzLCBuYW1lMykpIHsKKyAgICAgICAgICAgICAgICBpZiAoKGYgIT0gTlVMTCkgJiYgKGVudHJ5LT5wYXlsb2FkICE9IE5VTEwpKQorICAgICAgICAgICAgICAgICAgICBmKGVudHJ5LT5wYXlsb2FkLCBlbnRyeS0+bmFtZSk7CisgICAgICAgICAgICAgICAgZW50cnktPnBheWxvYWQgPSBOVUxMOworCQlpZiAodGFibGUtPmRpY3QgPT0gTlVMTCkgeworCQkgICAgaWYoZW50cnktPm5hbWUpCisJCQl4bWxGcmVlKGVudHJ5LT5uYW1lKTsKKwkJICAgIGlmKGVudHJ5LT5uYW1lMikKKwkJCXhtbEZyZWUoZW50cnktPm5hbWUyKTsKKwkJICAgIGlmKGVudHJ5LT5uYW1lMykKKwkJCXhtbEZyZWUoZW50cnktPm5hbWUzKTsKKwkJfQorICAgICAgICAgICAgICAgIGlmKHByZXYpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldi0+bmV4dCA9IGVudHJ5LT5uZXh0OworCQkgICAgeG1sRnJlZShlbnRyeSk7CisJCX0gZWxzZSB7CisJCSAgICBpZiAoZW50cnktPm5leHQgPT0gTlVMTCkgeworCQkJZW50cnktPnZhbGlkID0gMDsKKwkJICAgIH0gZWxzZSB7CisJCQllbnRyeSA9IGVudHJ5LT5uZXh0OworCQkJbWVtY3B5KCYodGFibGUtPnRhYmxlW2tleV0pLCBlbnRyeSwgc2l6ZW9mKHhtbEhhc2hFbnRyeSkpOworCQkJeG1sRnJlZShlbnRyeSk7CisJCSAgICB9CisJCX0KKyAgICAgICAgICAgICAgICB0YWJsZS0+bmJFbGVtcy0tOworICAgICAgICAgICAgICAgIHJldHVybigwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByZXYgPSBlbnRyeTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4oLTEpOworICAgIH0KK30KKworI2RlZmluZSBib3R0b21faGFzaAorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9NYWtlZmlsZS5hbSBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGJmYWE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsNSBAQAorIyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvbWFrZSB0byBwcm9kdWNlIE1ha2VmaWxlLmluCitTVUJESVJTPWxpYnhtbAorCitFWFRSQV9ESVNUID0gd2luMzJjb25maWcuaCB3c29ja2NvbXBhdC5oCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9NYWtlZmlsZS5pbiBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGQ5NzRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsNjYzIEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorVlBBVEggPSBAc3JjZGlyQAorcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACitwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorc3ViZGlyID0gaW5jbHVkZQorRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmluCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CitDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorU09VUkNFUyA9CitESVNUX1NPVVJDRVMgPQorUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCitSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCitBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorCWRpc3RkaXIKK0VUQUdTID0gZXRhZ3MKK0NUQUdTID0gY3RhZ3MKK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCithbV9fcmVsYXRpdml6ZSA9IFwKKyAgZGlyMD1gcHdkYDsgXAorICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisgICAgICBlbHNlIFwKKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCisgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisgICAgICAgIGVsc2UgXAorICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKyAgICAgICAgZmk7IFwKKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKyAgICAgIGZpOyBcCisgICAgZmk7IFwKKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKyAgZG9uZTsgXAorICByZWxkaXI9IiQkZGlyMiIKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQVIgPSBAQVJACitBUyA9IEBBU0AKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkFTRV9USFJFQURfTElCUyA9IEBCQVNFX1RIUkVBRF9MSUJTQAorQzE0Tl9PQkogPSBAQzE0Tl9PQkpACitDQVRBTE9HX09CSiA9IEBDQVRBTE9HX09CSkAKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorQ1lHV0lOX0VYVFJBX0xERkxBR1MgPSBAQ1lHV0lOX0VYVFJBX0xERkxBR1NACitDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFERCA9IEBDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFEREAKK0RFQlVHX09CSiA9IEBERUJVR19PQkpACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRExMVE9PTCA9IEBETExUT09MQAorRE9DQl9PQkogPSBARE9DQl9PQkpACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorRlRQX09CSiA9IEBGVFBfT0JKQAorR1JFUCA9IEBHUkVQQAorSEFWRV9JU0lORiA9IEBIQVZFX0lTSU5GQAorSEFWRV9JU05BTiA9IEBIQVZFX0lTTkFOQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitIVE1MX09CSiA9IEBIVE1MX09CSkAKK0hUVFBfT0JKID0gQEhUVFBfT0JKQAorSUNPTlZfTElCUyA9IEBJQ09OVl9MSUJTQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlhNTF9NQUpPUl9WRVJTSU9OID0gQExJQlhNTF9NQUpPUl9WRVJTSU9OQAorTElCWE1MX01JQ1JPX1ZFUlNJT04gPSBATElCWE1MX01JQ1JPX1ZFUlNJT05ACitMSUJYTUxfTUlOT1JfVkVSU0lPTiA9IEBMSUJYTUxfTUlOT1JfVkVSU0lPTkAKK0xJQlhNTF9WRVJTSU9OID0gQExJQlhNTF9WRVJTSU9OQAorTElCWE1MX1ZFUlNJT05fRVhUUkEgPSBATElCWE1MX1ZFUlNJT05fRVhUUkFACitMSUJYTUxfVkVSU0lPTl9JTkZPID0gQExJQlhNTF9WRVJTSU9OX0lORk9ACitMSUJYTUxfVkVSU0lPTl9OVU1CRVIgPSBATElCWE1MX1ZFUlNJT05fTlVNQkVSQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTU9EVUxFX0VYVEVOU0lPTiA9IEBNT0RVTEVfRVhURU5TSU9OQAorTU9EVUxFX1BMQVRGT1JNX0xJQlMgPSBATU9EVUxFX1BMQVRGT1JNX0xJQlNACitNViA9IEBNVkAKK01fTElCUyA9IEBNX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQWVRIT04gPSBAUFlUSE9OQAorUFlUSE9OX0lOQ0xVREVTID0gQFBZVEhPTl9JTkNMVURFU0AKK1BZVEhPTl9MSUJTID0gQFBZVEhPTl9MSUJTQAorUFlUSE9OX1NJVEVfUEFDS0FHRVMgPSBAUFlUSE9OX1NJVEVfUEFDS0FHRVNACitQWVRIT05fU1VCRElSID0gQFBZVEhPTl9TVUJESVJACitQWVRIT05fVEVTVFMgPSBAUFlUSE9OX1RFU1RTQAorUFlUSE9OX1ZFUlNJT04gPSBAUFlUSE9OX1ZFUlNJT05ACitSQU5MSUIgPSBAUkFOTElCQAorUkRMX0xJQlMgPSBAUkRMX0xJQlNACitSRUFERVJfVEVTVCA9IEBSRUFERVJfVEVTVEAKK1JFTERBVEUgPSBAUkVMREFURUAKK1JNID0gQFJNQAorU0VEID0gQFNFREAKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVEFUSUNfQklOQVJJRVMgPSBAU1RBVElDX0JJTkFSSUVTQAorU1RSSVAgPSBAU1RSSVBACitUQVIgPSBAVEFSQAorVEVTVF9DMTROID0gQFRFU1RfQzE0TkAKK1RFU1RfQ0FUQUxPRyA9IEBURVNUX0NBVEFMT0dACitURVNUX0RFQlVHID0gQFRFU1RfREVCVUdACitURVNUX0hUTUwgPSBAVEVTVF9IVE1MQAorVEVTVF9NT0RVTEVTID0gQFRFU1RfTU9EVUxFU0AKK1RFU1RfUEFUVEVSTiA9IEBURVNUX1BBVFRFUk5ACitURVNUX1BIVE1MID0gQFRFU1RfUEhUTUxACitURVNUX1BVU0ggPSBAVEVTVF9QVVNIQAorVEVTVF9SRUdFWFBTID0gQFRFU1RfUkVHRVhQU0AKK1RFU1RfU0FYID0gQFRFU1RfU0FYQAorVEVTVF9TQ0hFTUFTID0gQFRFU1RfU0NIRU1BU0AKK1RFU1RfU0NIRU1BVFJPTiA9IEBURVNUX1NDSEVNQVRST05ACitURVNUX1RIUkVBRFMgPSBAVEVTVF9USFJFQURTQAorVEVTVF9WQUxJRCA9IEBURVNUX1ZBTElEQAorVEVTVF9WVElNRSA9IEBURVNUX1ZUSU1FQAorVEVTVF9YSU5DTFVERSA9IEBURVNUX1hJTkNMVURFQAorVEVTVF9YUEFUSCA9IEBURVNUX1hQQVRIQAorVEVTVF9YUFRSID0gQFRFU1RfWFBUUkAKK1RIUkVBRFNfVzMyID0gQFRIUkVBRFNfVzMyQAorVEhSRUFEX0NGTEFHUyA9IEBUSFJFQURfQ0ZMQUdTQAorVEhSRUFEX0xJQlMgPSBAVEhSRUFEX0xJQlNACitVID0gQFVACitWRVJTSU9OID0gQFZFUlNJT05ACitWRVJTSU9OX1NDUklQVF9GTEFHUyA9IEBWRVJTSU9OX1NDUklQVF9GTEFHU0AKK1dHRVQgPSBAV0dFVEAKK1dJTjMyX0VYVFJBX0xERkxBR1MgPSBAV0lOMzJfRVhUUkFfTERGTEFHU0AKK1dJTjMyX0VYVFJBX0xJQkFERCA9IEBXSU4zMl9FWFRSQV9MSUJBRERACitXSVRIX0MxNE4gPSBAV0lUSF9DMTROQAorV0lUSF9DQVRBTE9HID0gQFdJVEhfQ0FUQUxPR0AKK1dJVEhfREVCVUcgPSBAV0lUSF9ERUJVR0AKK1dJVEhfRE9DQiA9IEBXSVRIX0RPQ0JACitXSVRIX0ZUUCA9IEBXSVRIX0ZUUEAKK1dJVEhfSFRNTCA9IEBXSVRIX0hUTUxACitXSVRIX0hUVFAgPSBAV0lUSF9IVFRQQAorV0lUSF9JQ09OViA9IEBXSVRIX0lDT05WQAorV0lUSF9JU084ODU5WCA9IEBXSVRIX0lTTzg4NTlYQAorV0lUSF9MRUdBQ1kgPSBAV0lUSF9MRUdBQ1lACitXSVRIX01FTV9ERUJVRyA9IEBXSVRIX01FTV9ERUJVR0AKK1dJVEhfTU9EVUxFUyA9IEBXSVRIX01PRFVMRVNACitXSVRIX09VVFBVVCA9IEBXSVRIX09VVFBVVEAKK1dJVEhfUEFUVEVSTiA9IEBXSVRIX1BBVFRFUk5ACitXSVRIX1BVU0ggPSBAV0lUSF9QVVNIQAorV0lUSF9SRUFERVIgPSBAV0lUSF9SRUFERVJACitXSVRIX1JFR0VYUFMgPSBAV0lUSF9SRUdFWFBTQAorV0lUSF9SVU5fREVCVUcgPSBAV0lUSF9SVU5fREVCVUdACitXSVRIX1NBWDEgPSBAV0lUSF9TQVgxQAorV0lUSF9TQ0hFTUFTID0gQFdJVEhfU0NIRU1BU0AKK1dJVEhfU0NIRU1BVFJPTiA9IEBXSVRIX1NDSEVNQVRST05ACitXSVRIX1RIUkVBRFMgPSBAV0lUSF9USFJFQURTQAorV0lUSF9UUkVFID0gQFdJVEhfVFJFRUAKK1dJVEhfVFJJTyA9IEBXSVRIX1RSSU9ACitXSVRIX1ZBTElEID0gQFdJVEhfVkFMSURACitXSVRIX1dSSVRFUiA9IEBXSVRIX1dSSVRFUkAKK1dJVEhfWElOQ0xVREUgPSBAV0lUSF9YSU5DTFVERUAKK1dJVEhfWFBBVEggPSBAV0lUSF9YUEFUSEAKK1dJVEhfWFBUUiA9IEBXSVRIX1hQVFJACitXSVRIX1pMSUIgPSBAV0lUSF9aTElCQAorWElOQ0xVREVfT0JKID0gQFhJTkNMVURFX09CSkAKK1hNTExJTlQgPSBAWE1MTElOVEAKK1hNTF9DRkxBR1MgPSBAWE1MX0NGTEFHU0AKK1hNTF9JTkNMVURFRElSID0gQFhNTF9JTkNMVURFRElSQAorWE1MX0xJQkRJUiA9IEBYTUxfTElCRElSQAorWE1MX0xJQlMgPSBAWE1MX0xJQlNACitYTUxfTElCVE9PTExJQlMgPSBAWE1MX0xJQlRPT0xMSUJTQAorWFBBVEhfT0JKID0gQFhQQVRIX09CSkAKK1hQVFJfT0JKID0gQFhQVFJfT0JKQAorWFNMVFBST0MgPSBAWFNMVFBST0NACitaX0NGTEFHUyA9IEBaX0NGTEFHU0AKK1pfTElCUyA9IEBaX0xJQlNACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3B5dGhvbmRpciA9IEBweXRob25kaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK1NVQkRJUlMgPSBsaWJ4bWwKK0VYVFJBX0RJU1QgPSB3aW4zMmNvbmZpZy5oIHdzb2NrY29tcGF0LmgKK2FsbDogYWxsLXJlY3Vyc2l2ZQorCisuU1VGRklYRVM6CiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGluY2x1ZGUvTWFrZWZpbGUnOyBcCisJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1nbnUgaW5jbHVkZS9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCisKKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCiskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKwkgIGNhc2UgJCRmIGluIFwKKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwlkb3Rfc2Vlbj1ubzsgXAorCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGRvdF9zZWVuPXllczsgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorCSAgZWxzZSBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisJICBmaTsgXAorCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKwlkb25lOyBcCisJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisJZmk7IHRlc3QgLXogIiQkZmFpbCIKKworJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisJICBjYXNlICQkZiBpbiBcCisJICAgICo9KiB8IC0tWyFrXSopOzsgXAorCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZG90X3NlZW49bm87IFwKKwljYXNlICIkQCIgaW4gXAorCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorCWVzYWM7IFwKKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlyZXY9IiQkcmV2IC4iOyBcCisJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisJICBlbHNlIFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKwkgIGZpOyBcCisJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisJICB8fCBldmFsICQkZmFpbGNvbTsgXAorCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgordGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKwlkb25lCitjdGFncy1yZWN1cnNpdmU6CisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisJZG9uZQorCitJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCW1raWQgLWZJRCAkJHVuaXF1ZQordGFnczogVEFHUworCitUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD0uOyBcCisJZWxzZSBcCisJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKwkgIGVtcHR5X2ZpeD07IFwKKwlmaTsgXAorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKwkgIGZpOyBcCisJZG9uZTsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlzaGlmdDsgXAorCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorCSAgZWxzZSBcCisJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgICAkJHVuaXF1ZTsgXAorCSAgZmk7IFwKKwlmaQorY3RhZ3M6IENUQUdTCitDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisJICAgICAkJHVuaXF1ZQorCitHVEFHUzoKKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorCitkaXN0Y2xlYW4tdGFnczoKKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKwkgICAgICAgIGRpc3RkaXIpIFwKKwkgICAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorYWxsLWFtOiBNYWtlZmlsZQoraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQoraW5zdGFsbGRpcnMtYW06CitpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCitpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKK2luc3RhbGwtc3RyaXA6CisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCittb3N0bHljbGVhbi1nZW5lcmljOgorCitjbGVhbi1nZW5lcmljOgorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLXJlY3Vyc2l2ZQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tcmVjdXJzaXZlCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbToKKworaW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKworaW5zdGFsbC1pbmZvLWFtOgorCitpbnN0YWxsLW1hbjoKKworaW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtcmVjdXJzaXZlCisKK3BkZi1hbToKKworcHM6IHBzLXJlY3Vyc2l2ZQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOgorCisuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKworLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9ET0NCcGFyc2VyLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL0RPQ0JwYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjFkNGVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9ET0NCcGFyc2VyLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIFN1bW1hcnk6IG9sZCBEb2NCb29rIFNHTUwgcGFyc2VyCisgKiBEZXNjcmlwdGlvbjogaW50ZXJmYWNlIGZvciBhIERvY0Jvb2sgU0dNTCBub24tdmVyaWZ5aW5nIHBhcnNlcgorICogVGhpcyBjb2RlIGlzIERFUFJFQ0FURUQsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS4KKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fRE9DQl9QQVJTRVJfSF9fCisjZGVmaW5lIF9fRE9DQl9QQVJTRVJfSF9fCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKworI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKworI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisKKyNpZm5kZWYgSU5fTElCWE1MCisjaWZkZWYgX19HTlVDX18KKyN3YXJuaW5nICJUaGUgRE9DQnBhcnNlciBtb2R1bGUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBsaWJ4bWwyLTIuNi4wIgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogTW9zdCBvZiB0aGUgYmFjay1lbmQgc3RydWN0dXJlcyBmcm9tIFhNTCBhbmQgU0dNTCBhcmUgc2hhcmVkLgorICovCit0eXBlZGVmIHhtbFBhcnNlckN0eHQgZG9jYlBhcnNlckN0eHQ7Cit0eXBlZGVmIHhtbFBhcnNlckN0eHRQdHIgZG9jYlBhcnNlckN0eHRQdHI7Cit0eXBlZGVmIHhtbFNBWEhhbmRsZXIgZG9jYlNBWEhhbmRsZXI7Cit0eXBlZGVmIHhtbFNBWEhhbmRsZXJQdHIgZG9jYlNBWEhhbmRsZXJQdHI7Cit0eXBlZGVmIHhtbFBhcnNlcklucHV0IGRvY2JQYXJzZXJJbnB1dDsKK3R5cGVkZWYgeG1sUGFyc2VySW5wdXRQdHIgZG9jYlBhcnNlcklucHV0UHRyOwordHlwZWRlZiB4bWxEb2NQdHIgZG9jYkRvY1B0cjsKKworLyoKKyAqIFRoZXJlIGlzIG9ubHkgZmV3IHB1YmxpYyBmdW5jdGlvbnMuCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgIGRvY2JFbmNvZGVFbnRpdGllcyh1bnNpZ25lZCBjaGFyICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpvdXRsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICppbmxlbiwgaW50IHF1b3RlQ2hhcik7CisKK1hNTFBVQkZVTiBkb2NiRG9jUHRyIFhNTENBTEwgICAgICAgICAgICAgCisJCSAgICAgZG9jYlNBWFBhcnNlRG9jICAgKHhtbENoYXIgKmN1ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2NiU0FYSGFuZGxlclB0ciBzYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlckRhdGEpOworWE1MUFVCRlVOIGRvY2JEb2NQdHIgWE1MQ0FMTCAgICAgICAgICAgICAKKwkJICAgICBkb2NiUGFyc2VEb2MgICAgICAoeG1sQ2hhciAqY3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKK1hNTFBVQkZVTiBkb2NiRG9jUHRyIFhNTENBTEwgICAgICAgICAgICAgCisJCSAgICAgZG9jYlNBWFBhcnNlRmlsZSAgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY2JTQVhIYW5kbGVyUHRyIHNheCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyRGF0YSk7CitYTUxQVUJGVU4gZG9jYkRvY1B0ciBYTUxDQUxMICAgICAgICAgICAgIAorCQkgICAgIGRvY2JQYXJzZUZpbGUgICAgIChjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZyk7CisKKy8qKgorICogSW50ZXJmYWNlcyBmb3IgdGhlIFB1c2ggbW9kZS4KKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCAgICAgICAgICAgICAgICAgIAorCQkgICAgIGRvY2JGcmVlUGFyc2VyQ3R4dCAgICAgIChkb2NiUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiBkb2NiUGFyc2VyQ3R4dFB0ciBYTUxDQUxMICAgICAKKwkJICAgICBkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQoZG9jYlNBWEhhbmRsZXJQdHIgc2F4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjaHVuaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyRW5jb2RpbmcgZW5jKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCAgICAgICAgICAgICAgICAgICAKKwkJICAgICBkb2NiUGFyc2VDaHVuayAgICAgICAgICAoZG9jYlBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjaHVuaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVybWluYXRlKTsKK1hNTFBVQkZVTiBkb2NiUGFyc2VyQ3R4dFB0ciBYTUxDQUxMICAgICAgIAorCQkgICAgIGRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dChjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgICAgICAgICAgICAgICAgICAgCisJCSAgICAgZG9jYlBhcnNlRG9jdW1lbnQgICAgICAgKGRvY2JQYXJzZXJDdHh0UHRyIGN0eHQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX0RPQ0JfRU5BQkxFRCAqLworCisjZW5kaWYgLyogX19ET0NCX1BBUlNFUl9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9IVE1McGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RlMGFjNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvSFRNTHBhcnNlci5oCkBAIC0wLDAgKzEsMzA0IEBACisvKgorICogU3VtbWFyeTogaW50ZXJmYWNlIGZvciBhbiBIVE1MIDQuMCBub24tdmVyaWZ5aW5nIHBhcnNlcgorICogRGVzY3JpcHRpb246IHRoaXMgbW9kdWxlIGltcGxlbWVudHMgYW4gSFRNTCA0LjAgbm9uLXZlcmlmeWluZyBwYXJzZXIKKyAqICAgICAgICAgICAgICB3aXRoIEFQSSBjb21wYXRpYmxlIHdpdGggdGhlIFhNTCBwYXJzZXIgb25lcy4gSXQgc2hvdWxkCisgKiAgICAgICAgICAgICAgYmUgYWJsZSB0byBwYXJzZSAicmVhbCB3b3JsZCIgSFRNTCwgZXZlbiBpZiBzZXZlcmVseQorICogICAgICAgICAgICAgIGJyb2tlbiBmcm9tIGEgc3BlY2lmaWNhdGlvbiBwb2ludCBvZiB2aWV3LgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19IVE1MX1BBUlNFUl9IX18KKyNkZWZpbmUgX19IVE1MX1BBUlNFUl9IX18KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogTW9zdCBvZiB0aGUgYmFjay1lbmQgc3RydWN0dXJlcyBmcm9tIFhNTCBhbmQgSFRNTCBhcmUgc2hhcmVkLgorICovCit0eXBlZGVmIHhtbFBhcnNlckN0eHQgaHRtbFBhcnNlckN0eHQ7Cit0eXBlZGVmIHhtbFBhcnNlckN0eHRQdHIgaHRtbFBhcnNlckN0eHRQdHI7Cit0eXBlZGVmIHhtbFBhcnNlck5vZGVJbmZvIGh0bWxQYXJzZXJOb2RlSW5mbzsKK3R5cGVkZWYgeG1sU0FYSGFuZGxlciBodG1sU0FYSGFuZGxlcjsKK3R5cGVkZWYgeG1sU0FYSGFuZGxlclB0ciBodG1sU0FYSGFuZGxlclB0cjsKK3R5cGVkZWYgeG1sUGFyc2VySW5wdXQgaHRtbFBhcnNlcklucHV0OwordHlwZWRlZiB4bWxQYXJzZXJJbnB1dFB0ciBodG1sUGFyc2VySW5wdXRQdHI7Cit0eXBlZGVmIHhtbERvY1B0ciBodG1sRG9jUHRyOwordHlwZWRlZiB4bWxOb2RlUHRyIGh0bWxOb2RlUHRyOworCisvKgorICogSW50ZXJuYWwgZGVzY3JpcHRpb24gb2YgYW4gSFRNTCBlbGVtZW50LCByZXByZXNlbnRpbmcgSFRNTCA0LjAxCisgKiBhbmQgWEhUTUwgMS4wICh3aGljaCBzaGFyZSB0aGUgc2FtZSBzdHJ1Y3R1cmUpLgorICovCit0eXBlZGVmIHN0cnVjdCBfaHRtbEVsZW1EZXNjIGh0bWxFbGVtRGVzYzsKK3R5cGVkZWYgaHRtbEVsZW1EZXNjICpodG1sRWxlbURlc2NQdHI7CitzdHJ1Y3QgX2h0bWxFbGVtRGVzYyB7CisgICAgY29uc3QgY2hhciAqbmFtZTsJLyogVGhlIHRhZyBuYW1lICovCisgICAgY2hhciBzdGFydFRhZzsgICAgICAvKiBXaGV0aGVyIHRoZSBzdGFydCB0YWcgY2FuIGJlIGltcGxpZWQgKi8KKyAgICBjaGFyIGVuZFRhZzsgICAgICAgIC8qIFdoZXRoZXIgdGhlIGVuZCB0YWcgY2FuIGJlIGltcGxpZWQgKi8KKyAgICBjaGFyIHNhdmVFbmRUYWc7ICAgIC8qIFdoZXRoZXIgdGhlIGVuZCB0YWcgc2hvdWxkIGJlIHNhdmVkICovCisgICAgY2hhciBlbXB0eTsgICAgICAgICAvKiBJcyB0aGlzIGFuIGVtcHR5IGVsZW1lbnQgPyAqLworICAgIGNoYXIgZGVwcjsgICAgICAgICAgLyogSXMgdGhpcyBhIGRlcHJlY2F0ZWQgZWxlbWVudCA/ICovCisgICAgY2hhciBkdGQ7ICAgICAgICAgICAvKiAxOiBvbmx5IGluIExvb3NlIERURCwgMjogb25seSBGcmFtZXNldCBvbmUgKi8KKyAgICBjaGFyIGlzaW5saW5lOyAgICAgIC8qIGlzIHRoaXMgYSBibG9jayAwIG9yIGlubGluZSAxIGVsZW1lbnQgKi8KKyAgICBjb25zdCBjaGFyICpkZXNjOyAgIC8qIHRoZSBkZXNjcmlwdGlvbiAqLworCisvKiBOUksgSmFuLjIwMDMKKyAqIE5ldyBmaWVsZHMgZW5jYXBzdWxhdGluZyBIVE1MIHN0cnVjdHVyZQorICoKKyAqIEJ1Z3M6CisgKglUaGlzIGlzIGEgdmVyeSBsaW1pdGVkIHJlcHJlc2VudGF0aW9uLiAgSXQgZmFpbHMgdG8gdGVsbCB1cyB3aGVuCisgKglhbiBlbGVtZW50ICpyZXF1aXJlcyogc3ViZWxlbWVudHMgKHdlIG9ubHkgaGF2ZSB3aGV0aGVyIHRoZXkncmUKKyAqCWFsbG93ZWQgb3Igbm90KSwgYW5kIGl0IGRvZXNuJ3QgdGVsbCB1cyB3aGVyZSBDREFUQSBhbmQgUENEQVRBCisgKglhcmUgYWxsb3dlZC4gIFNvbWUgZWxlbWVudCByZWxhdGlvbnNoaXBzIGFyZSBub3QgZnVsbHkgcmVwcmVzZW50ZWQ6CisgKgl0aGVzZSBhcmUgZmxhZ2dlZCB3aXRoIHRoZSB3b3JkIE1PRElGSUVSCisgKi8KKyAgICBjb25zdCBjaGFyKiogc3ViZWx0czsJCS8qIGFsbG93ZWQgc3ViLWVsZW1lbnRzIG9mIHRoaXMgZWxlbWVudCAqLworICAgIGNvbnN0IGNoYXIqIGRlZmF1bHRzdWJlbHQ7CS8qIHN1YmVsZW1lbnQgZm9yIHN1Z2dlc3RlZCBhdXRvLXJlcGFpcgorCQkJCQkgICBpZiBuZWNlc3Nhcnkgb3IgTlVMTCAqLworICAgIGNvbnN0IGNoYXIqKiBhdHRyc19vcHQ7CQkvKiBPcHRpb25hbCBBdHRyaWJ1dGVzICovCisgICAgY29uc3QgY2hhcioqIGF0dHJzX2RlcHI7CQkvKiBBZGRpdGlvbmFsIGRlcHJlY2F0ZWQgYXR0cmlidXRlcyAqLworICAgIGNvbnN0IGNoYXIqKiBhdHRyc19yZXE7CQkvKiBSZXF1aXJlZCBhdHRyaWJ1dGVzICovCit9OworCisvKgorICogSW50ZXJuYWwgZGVzY3JpcHRpb24gb2YgYW4gSFRNTCBlbnRpdHkuCisgKi8KK3R5cGVkZWYgc3RydWN0IF9odG1sRW50aXR5RGVzYyBodG1sRW50aXR5RGVzYzsKK3R5cGVkZWYgaHRtbEVudGl0eURlc2MgKmh0bWxFbnRpdHlEZXNjUHRyOworc3RydWN0IF9odG1sRW50aXR5RGVzYyB7CisgICAgdW5zaWduZWQgaW50IHZhbHVlOwkvKiB0aGUgVU5JQ09ERSB2YWx1ZSBmb3IgdGhlIGNoYXJhY3RlciAqLworICAgIGNvbnN0IGNoYXIgKm5hbWU7CS8qIFRoZSBlbnRpdHkgbmFtZSAqLworICAgIGNvbnN0IGNoYXIgKmRlc2M7ICAgLyogdGhlIGRlc2NyaXB0aW9uICovCit9OworCisvKgorICogVGhlcmUgaXMgb25seSBmZXcgcHVibGljIGZ1bmN0aW9ucy4KKyAqLworWE1MUFVCRlVOIGNvbnN0IGh0bWxFbGVtRGVzYyAqIFhNTENBTEwgCQorCQkJaHRtbFRhZ0xvb2t1cAkoY29uc3QgeG1sQ2hhciAqdGFnKTsKK1hNTFBVQkZVTiBjb25zdCBodG1sRW50aXR5RGVzYyAqIFhNTENBTEwgCQorCQkJaHRtbEVudGl0eUxvb2t1cChjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiBjb25zdCBodG1sRW50aXR5RGVzYyAqIFhNTENBTEwgCQorCQkJaHRtbEVudGl0eVZhbHVlTG9va3VwKHVuc2lnbmVkIGludCB2YWx1ZSk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCQorCQkJaHRtbElzQXV0b0Nsb3NlZChodG1sRG9jUHRyIGRvYywKKwkJCQkJIGh0bWxOb2RlUHRyIGVsZW0pOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQlodG1sQXV0b0Nsb3NlVGFnKGh0bWxEb2NQdHIgZG9jLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGh0bWxOb2RlUHRyIGVsZW0pOworWE1MUFVCRlVOIGNvbnN0IGh0bWxFbnRpdHlEZXNjICogWE1MQ0FMTAkKKwkJCWh0bWxQYXJzZUVudGl0eVJlZihodG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgY29uc3QgeG1sQ2hhciAqKnN0cik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCWh0bWxQYXJzZUNoYXJSZWYoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQlodG1sUGFyc2VFbGVtZW50KGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworCitYTUxQVUJGVU4gaHRtbFBhcnNlckN0eHRQdHIgWE1MQ0FMTAkKKwkJCWh0bWxOZXdQYXJzZXJDdHh0KHZvaWQpOworCitYTUxQVUJGVU4gaHRtbFBhcnNlckN0eHRQdHIgWE1MQ0FMTAkKKwkJCWh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KGNvbnN0IGNoYXIgKmJ1ZmZlciwKKwkJCQkJCSAgIGludCBzaXplKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQlodG1sUGFyc2VEb2N1bWVudChodG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwJCQorCQkJaHRtbFNBWFBhcnNlRG9jCSh4bWxDaGFyICpjdXIsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGh0bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJIHZvaWQgKnVzZXJEYXRhKTsKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwJCQorCQkJaHRtbFBhcnNlRG9jCSh4bWxDaGFyICpjdXIsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZyk7CitYTUxQVUJGVU4gaHRtbERvY1B0ciBYTUxDQUxMCQkKKwkJCWh0bWxTQVhQYXJzZUZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGh0bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJIHZvaWQgKnVzZXJEYXRhKTsKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwJCQorCQkJaHRtbFBhcnNlRmlsZQkoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCVVURjhUb0h0bWwJKHVuc2lnbmVkIGNoYXIgKm91dCwKKwkJCQkJIGludCAqb3V0bGVuLAorCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqaW4sCisJCQkJCSBpbnQgKmlubGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCQorCQkJaHRtbEVuY29kZUVudGl0aWVzKHVuc2lnbmVkIGNoYXIgKm91dCwKKwkJCQkJIGludCAqb3V0bGVuLAorCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqaW4sCisJCQkJCSBpbnQgKmlubGVuLCBpbnQgcXVvdGVDaGFyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCQorCQkJaHRtbElzU2NyaXB0QXR0cmlidXRlKGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQlodG1sSGFuZGxlT21pdHRlZEVsZW0oaW50IHZhbCk7CisKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECisvKioKKyAqIEludGVyZmFjZXMgZm9yIHRoZSBQdXNoIG1vZGUuCisgKi8KK1hNTFBVQkZVTiBodG1sUGFyc2VyQ3R4dFB0ciBYTUxDQUxMCQorCQkJaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KGh0bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJCSB2b2lkICp1c2VyX2RhdGEsCisJCQkJCQkgY29uc3QgY2hhciAqY2h1bmssCisJCQkJCQkgaW50IHNpemUsCisJCQkJCQkgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCQkgeG1sQ2hhckVuY29kaW5nIGVuYyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCWh0bWxQYXJzZUNodW5rCQkoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSBjb25zdCBjaGFyICpjaHVuaywKKwkJCQkJCSBpbnQgc2l6ZSwKKwkJCQkJCSBpbnQgdGVybWluYXRlKTsKKyNlbmRpZiAvKiBMSUJYTUxfUFVTSF9FTkFCTEVEICovCisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCWh0bWxGcmVlUGFyc2VyQ3R4dAkoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCk7CisKKy8qCisgKiBOZXcgc2V0IG9mIHNpbXBsZXIvbW9yZSBmbGV4aWJsZSBBUElzCisgKi8KKy8qKgorICogeG1sUGFyc2VyT3B0aW9uOgorICoKKyAqIFRoaXMgaXMgdGhlIHNldCBvZiBYTUwgcGFyc2VyIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIGRvd24KKyAqIHRvIHRoZSB4bWxSZWFkRG9jKCkgYW5kIHNpbWlsYXIgY2FsbHMuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgSFRNTF9QQVJTRV9SRUNPVkVSICA9IDE8PDAsIC8qIFJlbGF4ZWQgcGFyc2luZyAqLworICAgIEhUTUxfUEFSU0VfTk9FUlJPUgk9IDE8PDUsCS8qIHN1cHByZXNzIGVycm9yIHJlcG9ydHMgKi8KKyAgICBIVE1MX1BBUlNFX05PV0FSTklORz0gMTw8NiwJLyogc3VwcHJlc3Mgd2FybmluZyByZXBvcnRzICovCisgICAgSFRNTF9QQVJTRV9QRURBTlRJQwk9IDE8PDcsCS8qIHBlZGFudGljIGVycm9yIHJlcG9ydGluZyAqLworICAgIEhUTUxfUEFSU0VfTk9CTEFOS1MJPSAxPDw4LAkvKiByZW1vdmUgYmxhbmsgbm9kZXMgKi8KKyAgICBIVE1MX1BBUlNFX05PTkVUCT0gMTw8MTEsLyogRm9yYmlkIG5ldHdvcmsgYWNjZXNzICovCisgICAgSFRNTF9QQVJTRV9OT0lNUExJRUQ9IDE8PDEzLC8qIERvIG5vdCBhZGQgaW1wbGllZCBodG1sL2JvZHkuLi4gZWxlbWVudHMgKi8KKyAgICBIVE1MX1BBUlNFX0NPTVBBQ1QgID0gMTw8MTYgLyogY29tcGFjdCBzbWFsbCB0ZXh0IG5vZGVzICovCit9IGh0bWxQYXJzZXJPcHRpb247CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJaHRtbEN0eHRSZXNldAkJKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCWh0bWxDdHh0VXNlT3B0aW9ucwkoaHRtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwKKwkJaHRtbFJlYWREb2MJCShjb25zdCB4bWxDaGFyICpjdXIsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwKKwkJaHRtbFJlYWRGaWxlCQkoY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaHRtbERvY1B0ciBYTUxDQUxMCisJCWh0bWxSZWFkTWVtb3J5CQkoY29uc3QgY2hhciAqYnVmZmVyLAorCQkJCQkgaW50IHNpemUsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwKKwkJaHRtbFJlYWRGZAkJKGludCBmZCwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIGh0bWxEb2NQdHIgWE1MQ0FMTAorCQlodG1sUmVhZElPCQkoeG1sSW5wdXRSZWFkQ2FsbGJhY2sgaW9yZWFkLAorCQkJCQkgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGlvY2xvc2UsCisJCQkJCSB2b2lkICppb2N0eCwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIGh0bWxEb2NQdHIgWE1MQ0FMTAorCQlodG1sQ3R4dFJlYWREb2MJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjdXIsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwKKwkJaHRtbEN0eHRSZWFkRmlsZQkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaHRtbERvY1B0ciBYTUxDQUxMCisJCWh0bWxDdHh0UmVhZE1lbW9yeQkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IGNoYXIgKmJ1ZmZlciwKKwkJCQkJIGludCBzaXplLAorCQkJCQkgY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaHRtbERvY1B0ciBYTUxDQUxMCisJCWh0bWxDdHh0UmVhZEZkCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgaW50IGZkLAorCQkJCQkgY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaHRtbERvY1B0ciBYTUxDQUxMCisJCWh0bWxDdHh0UmVhZElPCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sSW5wdXRSZWFkQ2FsbGJhY2sgaW9yZWFkLAorCQkJCQkgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGlvY2xvc2UsCisJCQkJCSB2b2lkICppb2N0eCwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworCisvKiBOUksvSmFuMjAwMzogZnVydGhlciBrbm93bGVkZ2Ugb2YgSFRNTCBzdHJ1Y3R1cmUKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgSFRNTF9OQSA9IDAgLAkJLyogc29tZXRoaW5nIHdlIGRvbid0IGNoZWNrIGF0IGFsbCAqLworICBIVE1MX0lOVkFMSUQgPSAweDEgLAorICBIVE1MX0RFUFJFQ0FURUQgPSAweDIgLAorICBIVE1MX1ZBTElEID0gMHg0ICwKKyAgSFRNTF9SRVFVSVJFRCA9IDB4YyAvKiBWQUxJRCBiaXQgc2V0IHNvICggJiBIVE1MX1ZBTElEICkgaXMgVFJVRSAqLworfSBodG1sU3RhdHVzIDsKKworLyogVXNpbmcgaHRtbEVsZW1EZXNjIHJhdGhlciB0aGFuIG5hbWUgaGVyZSwgdG8gZW1waGFzaXNlIHRoZSBmYWN0CisgICB0aGF0IG90aGVyd2lzZSB0aGVyZSdzIGEgbG9va3VwIG92ZXJoZWFkCisqLworWE1MUFVCRlVOIGh0bWxTdGF0dXMgWE1MQ0FMTCBodG1sQXR0ckFsbG93ZWQoY29uc3QgaHRtbEVsZW1EZXNjKiwgY29uc3QgeG1sQ2hhciosIGludCkgOworWE1MUFVCRlVOIGludCBYTUxDQUxMIGh0bWxFbGVtZW50QWxsb3dlZEhlcmUoY29uc3QgaHRtbEVsZW1EZXNjKiwgY29uc3QgeG1sQ2hhciopIDsKK1hNTFBVQkZVTiBodG1sU3RhdHVzIFhNTENBTEwgaHRtbEVsZW1lbnRTdGF0dXNIZXJlKGNvbnN0IGh0bWxFbGVtRGVzYyosIGNvbnN0IGh0bWxFbGVtRGVzYyopIDsKK1hNTFBVQkZVTiBodG1sU3RhdHVzIFhNTENBTEwgaHRtbE5vZGVTdGF0dXMoY29uc3QgaHRtbE5vZGVQdHIsIGludCkgOworLyoqCisgKiBodG1sRGVmYXVsdFN1YmVsZW1lbnQ6CisgKiBAZWx0OiBIVE1MIGVsZW1lbnQKKyAqCisgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IHN1YmVsZW1lbnQgZm9yIHRoaXMgZWxlbWVudAorICovCisjZGVmaW5lIGh0bWxEZWZhdWx0U3ViZWxlbWVudChlbHQpIGVsdC0+ZGVmYXVsdHN1YmVsdAorLyoqCisgKiBodG1sRWxlbWVudEFsbG93ZWRIZXJlRGVzYzoKKyAqIEBwYXJlbnQ6IEhUTUwgcGFyZW50IGVsZW1lbnQKKyAqIEBlbHQ6IEhUTUwgZWxlbWVudAorICoKKyAqIENoZWNrcyB3aGV0aGVyIGFuIEhUTUwgZWxlbWVudCBkZXNjcmlwdGlvbiBtYXkgYmUgYQorICogZGlyZWN0IGNoaWxkIG9mIHRoZSBzcGVjaWZpZWQgZWxlbWVudC4KKyAqCisgKiBSZXR1cm5zIDEgaWYgYWxsb3dlZDsgMCBvdGhlcndpc2UuCisgKi8KKyNkZWZpbmUgaHRtbEVsZW1lbnRBbGxvd2VkSGVyZURlc2MocGFyZW50LGVsdCkgXAorCWh0bWxFbGVtZW50QWxsb3dlZEhlcmUoKHBhcmVudCksIChlbHQpLT5uYW1lKQorLyoqCisgKiBodG1sUmVxdWlyZWRBdHRyczoKKyAqIEBlbHQ6IEhUTUwgZWxlbWVudAorICoKKyAqIFJldHVybnMgdGhlIGF0dHJpYnV0ZXMgcmVxdWlyZWQgZm9yIHRoZSBzcGVjaWZpZWQgZWxlbWVudC4KKyAqLworI2RlZmluZSBodG1sUmVxdWlyZWRBdHRycyhlbHQpIChlbHQpLT5hdHRyc19yZXEKKworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX0hUTUxfRU5BQkxFRCAqLworI2VuZGlmIC8qIF9fSFRNTF9QQVJTRVJfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL0hUTUx0cmVlLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL0hUTUx0cmVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVhODIwNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvSFRNTHRyZWUuaApAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIFN1bW1hcnk6IHNwZWNpZmljIEFQSXMgdG8gcHJvY2VzcyBIVE1MIHRyZWUsIGVzcGVjaWFsbHkgc2VyaWFsaXphdGlvbgorICogRGVzY3JpcHRpb246IHRoaXMgbW9kdWxlIGltcGxlbWVudHMgYSBmZXcgZnVuY3Rpb24gbmVlZGVkIHRvIHByb2Nlc3MKKyAqICAgICAgICAgICAgICB0cmVlIGluIGFuIEhUTUwgc3BlY2lmaWMgd2F5LgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19IVE1MX1RSRUVfSF9fCisjZGVmaW5lIF9fSFRNTF9UUkVFX0hfXworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUxwYXJzZXIuaD4KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qKgorICogSFRNTF9URVhUX05PREU6CisgKgorICogTWFjcm8uIEEgdGV4dCBub2RlIGluIGEgSFRNTCBkb2N1bWVudCBpcyByZWFsbHkgaW1wbGVtZW50ZWQKKyAqIHRoZSBzYW1lIHdheSBhcyBhIHRleHQgbm9kZSBpbiBhbiBYTUwgZG9jdW1lbnQuCisgKi8KKyNkZWZpbmUgSFRNTF9URVhUX05PREUJCVhNTF9URVhUX05PREUKKy8qKgorICogSFRNTF9FTlRJVFlfUkVGX05PREU6CisgKgorICogTWFjcm8uIEFuIGVudGl0eSByZWZlcmVuY2UgaW4gYSBIVE1MIGRvY3VtZW50IGlzIHJlYWxseSBpbXBsZW1lbnRlZAorICogdGhlIHNhbWUgd2F5IGFzIGFuIGVudGl0eSByZWZlcmVuY2UgaW4gYW4gWE1MIGRvY3VtZW50LgorICovCisjZGVmaW5lIEhUTUxfRU5USVRZX1JFRl9OT0RFCVhNTF9FTlRJVFlfUkVGX05PREUKKy8qKgorICogSFRNTF9DT01NRU5UX05PREU6CisgKgorICogTWFjcm8uIEEgY29tbWVudCBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkCisgKiB0aGUgc2FtZSB3YXkgYXMgYSBjb21tZW50IGluIGFuIFhNTCBkb2N1bWVudC4KKyAqLworI2RlZmluZSBIVE1MX0NPTU1FTlRfTk9ERQlYTUxfQ09NTUVOVF9OT0RFCisvKioKKyAqIEhUTUxfUFJFU0VSVkVfTk9ERToKKyAqCisgKiBNYWNyby4gQSBwcmVzZXJ2ZWQgbm9kZSBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkCisgKiB0aGUgc2FtZSB3YXkgYXMgYSBDREFUQSBzZWN0aW9uIGluIGFuIFhNTCBkb2N1bWVudC4KKyAqLworI2RlZmluZSBIVE1MX1BSRVNFUlZFX05PREUJWE1MX0NEQVRBX1NFQ1RJT05fTk9ERQorLyoqCisgKiBIVE1MX1BJX05PREU6CisgKgorICogTWFjcm8uIEEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBpbiBhIEhUTUwgZG9jdW1lbnQgaXMgcmVhbGx5IGltcGxlbWVudGVkCisgKiB0aGUgc2FtZSB3YXkgYXMgYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGluIGFuIFhNTCBkb2N1bWVudC4KKyAqLworI2RlZmluZSBIVE1MX1BJX05PREUJCVhNTF9QSV9OT0RFCisKK1hNTFBVQkZVTiBodG1sRG9jUHRyIFhNTENBTEwKKwkJaHRtbE5ld0RvYwkJKGNvbnN0IHhtbENoYXIgKlVSSSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQpOworWE1MUFVCRlVOIGh0bWxEb2NQdHIgWE1MQ0FMTAkKKwkJaHRtbE5ld0RvY05vRHRECQkoY29uc3QgeG1sQ2hhciAqVVJJLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCk7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwJCisJCWh0bWxHZXRNZXRhRW5jb2RpbmcJKGh0bWxEb2NQdHIgZG9jKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCWh0bWxTZXRNZXRhRW5jb2RpbmcJKGh0bWxEb2NQdHIgZG9jLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqZW5jb2RpbmcpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkgICAgCisJCWh0bWxEb2NEdW1wTWVtb3J5CSh4bWxEb2NQdHIgY3VyLAorCQkJCQkgeG1sQ2hhciAqKm1lbSwKKwkJCQkJIGludCAqc2l6ZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCSAgICAKKwkJaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQJKHhtbERvY1B0ciBjdXIsCisJCQkJCSB4bWxDaGFyICoqbWVtLAorCQkJCQkgaW50ICpzaXplLAorCQkJCQkgaW50IGZvcm1hdCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQlodG1sRG9jRHVtcAkJKEZJTEUgKmYsCisJCQkJCSB4bWxEb2NQdHIgY3VyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCWh0bWxTYXZlRmlsZQkJKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkgeG1sRG9jUHRyIGN1cik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQlodG1sTm9kZUR1bXAJCSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgY3VyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQlodG1sTm9kZUR1bXBGaWxlCShGSUxFICpvdXQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJaHRtbE5vZGVEdW1wRmlsZUZvcm1hdAkoRklMRSAqb3V0LAorCQkJCQkgeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgY3VyLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgZm9ybWF0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCWh0bWxTYXZlRmlsZUVuYwkJKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkgeG1sRG9jUHRyIGN1ciwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCWh0bWxTYXZlRmlsZUZvcm1hdAkoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCSB4bWxEb2NQdHIgY3VyLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgZm9ybWF0KTsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCWh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLAorCQkJCQkgeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgY3VyLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgZm9ybWF0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQlodG1sRG9jQ29udGVudER1bXBPdXRwdXQoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHhtbERvY1B0ciBjdXIsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0KHhtbE91dHB1dEJ1ZmZlclB0ciBidWYsCisJCQkJCSB4bWxEb2NQdHIgY3VyLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgZm9ybWF0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgCisJCWh0bWxOb2RlRHVtcE91dHB1dAkoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBjdXIsIAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcpOworCisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCWh0bWxJc0Jvb2xlYW5BdHRyCShjb25zdCB4bWxDaGFyICpuYW1lKTsKKworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX0hUTUxfRU5BQkxFRCAqLworCisjZW5kaWYgLyogX19IVE1MX1RSRUVfSF9fICovCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuYW0gYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMDNhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsNTcgQEAKKyMjIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b21ha2UgdG8gcHJvZHVjZSBNYWtlZmlsZS5pbgorCit4bWxpbmNkaXIgPSAkKGluY2x1ZGVkaXIpL2xpYnhtbDIvbGlieG1sCisKK3htbGluY19IRUFERVJTID0gXAorCQlTQVguaCBcCisJCWVudGl0aWVzLmggXAorCQllbmNvZGluZy5oIFwKKwkJcGFyc2VyLmggXAorCQlwYXJzZXJJbnRlcm5hbHMuaCBcCisJCXhtbGVycm9yLmggXAorCQlIVE1McGFyc2VyLmggXAorCQlIVE1MdHJlZS5oIFwKKwkJZGVidWdYTUwuaCBcCisJCXRyZWUuaCBcCisJCWxpc3QuaCBcCisJCWhhc2guaCBcCisJCXhwYXRoLmggXAorCQl4cGF0aEludGVybmFscy5oIFwKKwkJeHBvaW50ZXIuaCBcCisJCXhpbmNsdWRlLmggXAorCQl4bWxJTy5oIFwKKwkJeG1sbWVtb3J5LmggXAorCQluYW5vaHR0cC5oIFwKKwkJbmFub2Z0cC5oIFwKKwkJdXJpLmggXAorCQl2YWxpZC5oIFwKKwkJeGxpbmsuaCBcCisJCXhtbHZlcnNpb24uaCBcCisJCURPQ0JwYXJzZXIuaCBcCisJCWNhdGFsb2cuaCBcCisJCXRocmVhZHMuaCBcCisJCWdsb2JhbHMuaCBcCisJCWMxNG4uaCBcCisJCXhtbGF1dG9tYXRhLmggXAorCQl4bWxyZWdleHAuaCBcCisJCXhtbG1vZHVsZS5oIFwKKwkJeG1sc2NoZW1hcy5oIFwKKwkJc2NoZW1hc0ludGVybmFscy5oIFwKKwkJeG1sc2NoZW1hc3R5cGVzLmggXAorCQl4bWxzdHJpbmcuaCBcCisJCXhtbHVuaWNvZGUuaCBcCisJCXhtbHJlYWRlci5oIFwKKwkJcmVsYXhuZy5oIFwKKwkJZGljdC5oIFwKKwkJU0FYMi5oIFwKKwkJeG1sZXhwb3J0cy5oIFwKKwkJeG1sd3JpdGVyLmggXAorCQljaHZhbGlkLmggXAorCQlwYXR0ZXJuLmggXAorCQl4bWxzYXZlLmggXAorCQlzY2hlbWF0cm9uLmgKKworaW5zdGFsbC1leGVjLWhvb2s6CisJJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJCh4bWxpbmNkaXIpCisKK0VYVFJBX0RJU1QgPSB4bWx2ZXJzaW9uLmguaW4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvTWFrZWZpbGUuaW4gYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhNTAzYzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsNjE0IEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACithbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCitpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAoraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworaW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCitJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQordHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorTk9STUFMX0lOU1RBTEwgPSA6CitQUkVfSU5TVEFMTCA9IDoKK1BPU1RfSU5TVEFMTCA9IDoKK05PUk1BTF9VTklOU1RBTEwgPSA6CitQUkVfVU5JTlNUQUxMID0gOgorUE9TVF9VTklOU1RBTEwgPSA6CitidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAoraG9zdF90cmlwbGV0ID0gQGhvc3RACitzdWJkaXIgPSBpbmNsdWRlL2xpYnhtbAorRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKwkkKHNyY2RpcikveG1sdmVyc2lvbi5oLmluICQoeG1saW5jX0hFQURFUlMpCitBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CithbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9tNC9saWJ0b29sLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0b3B0aW9ucy5tNCAkKHRvcF9zcmNkaXIpL200L2x0c3VnYXIubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHR2ZXJzaW9uLm00ICQodG9wX3NyY2RpcikvbTQvbHR+b2Jzb2xldGUubTQgXAorCSQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmluCithbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorCSQoQUNMT0NBTF9NNCkKK21raW5zdGFsbGRpcnMgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMKK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9IHhtbHZlcnNpb24uaAorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK1NPVVJDRVMgPQorRElTVF9TT1VSQ0VTID0KK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJCh4bWxpbmNkaXIpIgorSEVBREVSUyA9ICQoeG1saW5jX0hFQURFUlMpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBUiA9IEBBUkAKK0FTID0gQEFTQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCQVNFX1RIUkVBRF9MSUJTID0gQEJBU0VfVEhSRUFEX0xJQlNACitDMTROX09CSiA9IEBDMTROX09CSkAKK0NBVEFMT0dfT0JKID0gQENBVEFMT0dfT0JKQAorQ0MgPSBAQ0NACitDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorQ0ZMQUdTID0gQENGTEFHU0AKK0NQUCA9IEBDUFBACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACitDWUdXSU5fRVhUUkFfTERGTEFHUyA9IEBDWUdXSU5fRVhUUkFfTERGTEFHU0AKK0NZR1dJTl9FWFRSQV9QWVRIT05fTElCQUREID0gQENZR1dJTl9FWFRSQV9QWVRIT05fTElCQUREQAorREVCVUdfT0JKID0gQERFQlVHX09CSkAKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitETExUT09MID0gQERMTFRPT0xACitET0NCX09CSiA9IEBET0NCX09CSkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitGVFBfT0JKID0gQEZUUF9PQkpACitHUkVQID0gQEdSRVBACitIQVZFX0lTSU5GID0gQEhBVkVfSVNJTkZACitIQVZFX0lTTkFOID0gQEhBVkVfSVNOQU5ACitIVE1MX0RJUiA9IEBIVE1MX0RJUkAKK0hUTUxfT0JKID0gQEhUTUxfT0JKQAorSFRUUF9PQkogPSBASFRUUF9PQkpACitJQ09OVl9MSUJTID0gQElDT05WX0xJQlNACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCWE1MX01BSk9SX1ZFUlNJT04gPSBATElCWE1MX01BSk9SX1ZFUlNJT05ACitMSUJYTUxfTUlDUk9fVkVSU0lPTiA9IEBMSUJYTUxfTUlDUk9fVkVSU0lPTkAKK0xJQlhNTF9NSU5PUl9WRVJTSU9OID0gQExJQlhNTF9NSU5PUl9WRVJTSU9OQAorTElCWE1MX1ZFUlNJT04gPSBATElCWE1MX1ZFUlNJT05ACitMSUJYTUxfVkVSU0lPTl9FWFRSQSA9IEBMSUJYTUxfVkVSU0lPTl9FWFRSQUAKK0xJQlhNTF9WRVJTSU9OX0lORk8gPSBATElCWE1MX1ZFUlNJT05fSU5GT0AKK0xJQlhNTF9WRVJTSU9OX05VTUJFUiA9IEBMSUJYTUxfVkVSU0lPTl9OVU1CRVJACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorTUFLRUlORk8gPSBATUFLRUlORk9ACitNS0RJUl9QID0gQE1LRElSX1BACitNT0RVTEVfRVhURU5TSU9OID0gQE1PRFVMRV9FWFRFTlNJT05ACitNT0RVTEVfUExBVEZPUk1fTElCUyA9IEBNT0RVTEVfUExBVEZPUk1fTElCU0AKK01WID0gQE1WQAorTV9MSUJTID0gQE1fTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BZVEhPTiA9IEBQWVRIT05ACitQWVRIT05fSU5DTFVERVMgPSBAUFlUSE9OX0lOQ0xVREVTQAorUFlUSE9OX0xJQlMgPSBAUFlUSE9OX0xJQlNACitQWVRIT05fU0lURV9QQUNLQUdFUyA9IEBQWVRIT05fU0lURV9QQUNLQUdFU0AKK1BZVEhPTl9TVUJESVIgPSBAUFlUSE9OX1NVQkRJUkAKK1BZVEhPTl9URVNUUyA9IEBQWVRIT05fVEVTVFNACitQWVRIT05fVkVSU0lPTiA9IEBQWVRIT05fVkVSU0lPTkAKK1JBTkxJQiA9IEBSQU5MSUJACitSRExfTElCUyA9IEBSRExfTElCU0AKK1JFQURFUl9URVNUID0gQFJFQURFUl9URVNUQAorUkVMREFURSA9IEBSRUxEQVRFQAorUk0gPSBAUk1ACitTRUQgPSBAU0VEQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUQVRJQ19CSU5BUklFUyA9IEBTVEFUSUNfQklOQVJJRVNACitTVFJJUCA9IEBTVFJJUEAKK1RBUiA9IEBUQVJACitURVNUX0MxNE4gPSBAVEVTVF9DMTROQAorVEVTVF9DQVRBTE9HID0gQFRFU1RfQ0FUQUxPR0AKK1RFU1RfREVCVUcgPSBAVEVTVF9ERUJVR0AKK1RFU1RfSFRNTCA9IEBURVNUX0hUTUxACitURVNUX01PRFVMRVMgPSBAVEVTVF9NT0RVTEVTQAorVEVTVF9QQVRURVJOID0gQFRFU1RfUEFUVEVSTkAKK1RFU1RfUEhUTUwgPSBAVEVTVF9QSFRNTEAKK1RFU1RfUFVTSCA9IEBURVNUX1BVU0hACitURVNUX1JFR0VYUFMgPSBAVEVTVF9SRUdFWFBTQAorVEVTVF9TQVggPSBAVEVTVF9TQVhACitURVNUX1NDSEVNQVMgPSBAVEVTVF9TQ0hFTUFTQAorVEVTVF9TQ0hFTUFUUk9OID0gQFRFU1RfU0NIRU1BVFJPTkAKK1RFU1RfVEhSRUFEUyA9IEBURVNUX1RIUkVBRFNACitURVNUX1ZBTElEID0gQFRFU1RfVkFMSURACitURVNUX1ZUSU1FID0gQFRFU1RfVlRJTUVACitURVNUX1hJTkNMVURFID0gQFRFU1RfWElOQ0xVREVACitURVNUX1hQQVRIID0gQFRFU1RfWFBBVEhACitURVNUX1hQVFIgPSBAVEVTVF9YUFRSQAorVEhSRUFEU19XMzIgPSBAVEhSRUFEU19XMzJACitUSFJFQURfQ0ZMQUdTID0gQFRIUkVBRF9DRkxBR1NACitUSFJFQURfTElCUyA9IEBUSFJFQURfTElCU0AKK1UgPSBAVUAKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1ZFUlNJT05fU0NSSVBUX0ZMQUdTID0gQFZFUlNJT05fU0NSSVBUX0ZMQUdTQAorV0dFVCA9IEBXR0VUQAorV0lOMzJfRVhUUkFfTERGTEFHUyA9IEBXSU4zMl9FWFRSQV9MREZMQUdTQAorV0lOMzJfRVhUUkFfTElCQUREID0gQFdJTjMyX0VYVFJBX0xJQkFEREAKK1dJVEhfQzE0TiA9IEBXSVRIX0MxNE5ACitXSVRIX0NBVEFMT0cgPSBAV0lUSF9DQVRBTE9HQAorV0lUSF9ERUJVRyA9IEBXSVRIX0RFQlVHQAorV0lUSF9ET0NCID0gQFdJVEhfRE9DQkAKK1dJVEhfRlRQID0gQFdJVEhfRlRQQAorV0lUSF9IVE1MID0gQFdJVEhfSFRNTEAKK1dJVEhfSFRUUCA9IEBXSVRIX0hUVFBACitXSVRIX0lDT05WID0gQFdJVEhfSUNPTlZACitXSVRIX0lTTzg4NTlYID0gQFdJVEhfSVNPODg1OVhACitXSVRIX0xFR0FDWSA9IEBXSVRIX0xFR0FDWUAKK1dJVEhfTUVNX0RFQlVHID0gQFdJVEhfTUVNX0RFQlVHQAorV0lUSF9NT0RVTEVTID0gQFdJVEhfTU9EVUxFU0AKK1dJVEhfT1VUUFVUID0gQFdJVEhfT1VUUFVUQAorV0lUSF9QQVRURVJOID0gQFdJVEhfUEFUVEVSTkAKK1dJVEhfUFVTSCA9IEBXSVRIX1BVU0hACitXSVRIX1JFQURFUiA9IEBXSVRIX1JFQURFUkAKK1dJVEhfUkVHRVhQUyA9IEBXSVRIX1JFR0VYUFNACitXSVRIX1JVTl9ERUJVRyA9IEBXSVRIX1JVTl9ERUJVR0AKK1dJVEhfU0FYMSA9IEBXSVRIX1NBWDFACitXSVRIX1NDSEVNQVMgPSBAV0lUSF9TQ0hFTUFTQAorV0lUSF9TQ0hFTUFUUk9OID0gQFdJVEhfU0NIRU1BVFJPTkAKK1dJVEhfVEhSRUFEUyA9IEBXSVRIX1RIUkVBRFNACitXSVRIX1RSRUUgPSBAV0lUSF9UUkVFQAorV0lUSF9UUklPID0gQFdJVEhfVFJJT0AKK1dJVEhfVkFMSUQgPSBAV0lUSF9WQUxJREAKK1dJVEhfV1JJVEVSID0gQFdJVEhfV1JJVEVSQAorV0lUSF9YSU5DTFVERSA9IEBXSVRIX1hJTkNMVURFQAorV0lUSF9YUEFUSCA9IEBXSVRIX1hQQVRIQAorV0lUSF9YUFRSID0gQFdJVEhfWFBUUkAKK1dJVEhfWkxJQiA9IEBXSVRIX1pMSUJACitYSU5DTFVERV9PQkogPSBAWElOQ0xVREVfT0JKQAorWE1MTElOVCA9IEBYTUxMSU5UQAorWE1MX0NGTEFHUyA9IEBYTUxfQ0ZMQUdTQAorWE1MX0lOQ0xVREVESVIgPSBAWE1MX0lOQ0xVREVESVJACitYTUxfTElCRElSID0gQFhNTF9MSUJESVJACitYTUxfTElCUyA9IEBYTUxfTElCU0AKK1hNTF9MSUJUT09MTElCUyA9IEBYTUxfTElCVE9PTExJQlNACitYUEFUSF9PQkogPSBAWFBBVEhfT0JKQAorWFBUUl9PQkogPSBAWFBUUl9PQkpACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK1pfQ0ZMQUdTID0gQFpfQ0ZMQUdTQAorWl9MSUJTID0gQFpfTElCU0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorcHl0aG9uZGlyID0gQHB5dGhvbmRpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAoreG1saW5jZGlyID0gJChpbmNsdWRlZGlyKS9saWJ4bWwyL2xpYnhtbAoreG1saW5jX0hFQURFUlMgPSBcCisJCVNBWC5oIFwKKwkJZW50aXRpZXMuaCBcCisJCWVuY29kaW5nLmggXAorCQlwYXJzZXIuaCBcCisJCXBhcnNlckludGVybmFscy5oIFwKKwkJeG1sZXJyb3IuaCBcCisJCUhUTUxwYXJzZXIuaCBcCisJCUhUTUx0cmVlLmggXAorCQlkZWJ1Z1hNTC5oIFwKKwkJdHJlZS5oIFwKKwkJbGlzdC5oIFwKKwkJaGFzaC5oIFwKKwkJeHBhdGguaCBcCisJCXhwYXRoSW50ZXJuYWxzLmggXAorCQl4cG9pbnRlci5oIFwKKwkJeGluY2x1ZGUuaCBcCisJCXhtbElPLmggXAorCQl4bWxtZW1vcnkuaCBcCisJCW5hbm9odHRwLmggXAorCQluYW5vZnRwLmggXAorCQl1cmkuaCBcCisJCXZhbGlkLmggXAorCQl4bGluay5oIFwKKwkJeG1sdmVyc2lvbi5oIFwKKwkJRE9DQnBhcnNlci5oIFwKKwkJY2F0YWxvZy5oIFwKKwkJdGhyZWFkcy5oIFwKKwkJZ2xvYmFscy5oIFwKKwkJYzE0bi5oIFwKKwkJeG1sYXV0b21hdGEuaCBcCisJCXhtbHJlZ2V4cC5oIFwKKwkJeG1sbW9kdWxlLmggXAorCQl4bWxzY2hlbWFzLmggXAorCQlzY2hlbWFzSW50ZXJuYWxzLmggXAorCQl4bWxzY2hlbWFzdHlwZXMuaCBcCisJCXhtbHN0cmluZy5oIFwKKwkJeG1sdW5pY29kZS5oIFwKKwkJeG1scmVhZGVyLmggXAorCQlyZWxheG5nLmggXAorCQlkaWN0LmggXAorCQlTQVgyLmggXAorCQl4bWxleHBvcnRzLmggXAorCQl4bWx3cml0ZXIuaCBcCisJCWNodmFsaWQuaCBcCisJCXBhdHRlcm4uaCBcCisJCXhtbHNhdmUuaCBcCisJCXNjaGVtYXRyb24uaAorCitFWFRSQV9ESVNUID0geG1sdmVyc2lvbi5oLmluCithbGw6IGFsbC1hbQorCisuU1VGRklYRVM6CiskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCUBmb3IgZGVwIGluICQ/OyBkbyBcCisJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKwkgICAgKiQkZGVwKikgXAorCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKwkgICAgICBleGl0IDE7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGluY2x1ZGUvbGlieG1sL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZ251IGluY2x1ZGUvbGlieG1sL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK3htbHZlcnNpb24uaDogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3htbHZlcnNpb24uaC5pbgorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRACisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLXhtbGluY0hFQURFUlM6ICQoeG1saW5jX0hFQURFUlMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJCh4bWxpbmNkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJCh4bWxpbmNkaXIpIgorCUBsaXN0PSckKHhtbGluY19IRUFERVJTKSc7IHRlc3QgLW4gIiQoeG1saW5jZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBcCisJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgJyQoREVTVERJUikkKHhtbGluY2RpciknIjsgXAorCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQoeG1saW5jZGlyKSIgfHwgZXhpdCAkJD87IFwKKwlkb25lCisKK3VuaW5zdGFsbC14bWxpbmNIRUFERVJTOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoeG1saW5jX0hFQURFUlMpJzsgdGVzdCAtbiAiJCh4bWxpbmNkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKHhtbGluY2RpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJCh4bWxpbmNkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJbWtpZCAtZklEICQkdW5pcXVlCit0YWdzOiBUQUdTCisKK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJc2V0IHg7IFwKKwloZXJlPWBwd2RgOyBcCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXNoaWZ0OyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisJICBlbHNlIFwKKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorCSAgICAgICQkdW5pcXVlOyBcCisJICBmaTsgXAorCWZpCitjdGFnczogQ1RBR1MKK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKwkgICAgICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJbGlzdD0nJChESVNURklMRVMpJzsgXAorCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKwkJCSAgIHNvcnQgLXVgIDs7IFwKKwllc2FjOyBcCisJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgXAorCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6IGNoZWNrLWFtCithbGwtYW06IE1ha2VmaWxlICQoSEVBREVSUykKK2luc3RhbGxkaXJzOgorCWZvciBkaXIgaW4gIiQoREVTVERJUikkKHhtbGluY2RpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKK2NsZWFuOiBjbGVhbi1hbQorCitjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1mIE1ha2VmaWxlCitkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLWFtCisKK2R2aS1hbToKKworaHRtbDogaHRtbC1hbQorCitodG1sLWFtOgorCitpbmZvOiBpbmZvLWFtCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC14bWxpbmNIRUFERVJTCisKK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorCitpbnN0YWxsLWR2aS1hbToKKworaW5zdGFsbC1leGVjLWFtOgorCUAkKE5PUk1BTF9JTlNUQUxMKQorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1ob29rCitpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisKK2luc3RhbGwtaW5mby1hbToKKworaW5zdGFsbC1tYW46CisKK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorCitpbnN0YWxsLXBkZi1hbToKKworaW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLWYgTWFrZWZpbGUKK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKworbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtYW0KKworcGRmLWFtOgorCitwczogcHMtYW0KKworcHMtYW06CisKK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLXhtbGluY0hFQURFUlMKKworLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorCWNsZWFuLWxpYnRvb2wgY3RhZ3MgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZXhlYy1ob29rIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKwlpbnN0YWxsLXhtbGluY0hFQURFUlMgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKwl0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLXhtbGluY0hFQURFUlMKKworCitpbnN0YWxsLWV4ZWMtaG9vazoKKwkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKHhtbGluY2RpcikKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9TQVguaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvU0FYLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNhMTYxYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvU0FYLmgKQEAgLTAsMCArMSwxNzMgQEAKKy8qCisgKiBTdW1tYXJ5OiBPbGQgU0FYIHZlcnNpb24gMSBoYW5kbGVyLCBkZXByZWNhdGVkCisgKiBEZXNjcmlwdGlvbjogREVQUkVDQVRFRCBzZXQgb2YgU0FYIHZlcnNpb24gMSBpbnRlcmZhY2VzIHVzZWQgdG8KKyAqICAgICAgICAgICAgICBidWlsZCB0aGUgRE9NIHRyZWUuCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworCisjaWZuZGVmIF9fWE1MX1NBWF9IX18KKyNkZWZpbmUgX19YTUxfU0FYX0hfXworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveGxpbmsuaD4KKworI2lmZGVmIExJQlhNTF9MRUdBQ1lfRU5BQkxFRAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwKKwkJZ2V0UHVibGljSWQJCQkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAkKKwkJZ2V0U3lzdGVtSWQJCQkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQlzZXREb2N1bWVudExvY2F0b3IJCSh2b2lkICpjdHgsCisJCQkJCQkgeG1sU0FYTG9jYXRvclB0ciBsb2MpOworICAgIAorWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJZ2V0TGluZU51bWJlcgkJCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJZ2V0Q29sdW1uTnVtYmVyCQkJKHZvaWQgKmN0eCk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCWlzU3RhbmRhbG9uZQkJCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJaGFzSW50ZXJuYWxTdWJzZXQJCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJaGFzRXh0ZXJuYWxTdWJzZXQJCSh2b2lkICpjdHgpOworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJaW50ZXJuYWxTdWJzZXQJCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJZXh0ZXJuYWxTdWJzZXQJCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwJCisJCWdldEVudGl0eQkJCSh2b2lkICpjdHgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwJCisJCWdldFBhcmFtZXRlckVudGl0eQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB4bWxQYXJzZXJJbnB1dFB0ciBYTUxDQUxMIAorCQlyZXNvbHZlRW50aXR5CQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCk7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQllbnRpdHlEZWNsCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGludCB0eXBlLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkLAorCQkJCQkJIHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCWF0dHJpYnV0ZURlY2wJCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmVsZW0sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqZnVsbG5hbWUsCisJCQkJCQkgaW50IHR5cGUsCisJCQkJCQkgaW50IGRlZiwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpkZWZhdWx0VmFsdWUsCisJCQkJCQkgeG1sRW51bWVyYXRpb25QdHIgdHJlZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJZWxlbWVudERlY2wJCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgaW50IHR5cGUsCisJCQkJCQkgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJbm90YXRpb25EZWNsCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl1bnBhcnNlZEVudGl0eURlY2wJCSh2b2lkICpjdHgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpub3RhdGlvbk5hbWUpOworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJc3RhcnREb2N1bWVudAkJCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCWVuZERvY3VtZW50CQkJKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJYXR0cmlidXRlCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpmdWxsbmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJc3RhcnRFbGVtZW50CQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpmdWxsbmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICoqYXR0cyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJZW5kRWxlbWVudAkJCSh2b2lkICpjdHgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJcmVmZXJlbmNlCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQljaGFyYWN0ZXJzCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpjaCwKKwkJCQkJCSBpbnQgbGVuKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQlpZ25vcmFibGVXaGl0ZXNwYWNlCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmNoLAorCQkJCQkJIGludCBsZW4pOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXByb2Nlc3NpbmdJbnN0cnVjdGlvbgkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp0YXJnZXQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqZGF0YSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJZ2xvYmFsTmFtZXNwYWNlCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpocmVmLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnByZWZpeCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJc2V0TmFtZXNwYWNlCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB4bWxOc1B0ciBYTUxDQUxMCQorCQlnZXROYW1lc3BhY2UJCQkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCWNoZWNrTmFtZXNwYWNlCQkJKHZvaWQgKmN0eCwKKwkJCQkJCSB4bWxDaGFyICpuYW1lU3BhY2UpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCW5hbWVzcGFjZURlY2wJCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmhyZWYsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqcHJlZml4KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQljb21tZW50CQkJCSh2b2lkICpjdHgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqdmFsdWUpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCWNkYXRhQmxvY2sJCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkJIGludCBsZW4pOworCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCWluaXR4bWxEZWZhdWx0U0FYSGFuZGxlcgkoeG1sU0FYSGFuZGxlclYxICpoZGxyLAorCQkJCQkJIGludCB3YXJuaW5nKTsKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJaW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcgkoeG1sU0FYSGFuZGxlclYxICpoZGxyKTsKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQlpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyCSh4bWxTQVhIYW5kbGVyVjEgKmhkbHIpOworI2VuZGlmCisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX0xFR0FDWV9FTkFCTEVEICovCisKKyNlbmRpZiAvKiBfX1hNTF9TQVhfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL1NBWDIuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvU0FYMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMmRiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL1NBWDIuaApAQCAtMCwwICsxLDE3NiBAQAorLyoKKyAqIFN1bW1hcnk6IFNBWDIgcGFyc2VyIGludGVyZmFjZSB1c2VkIHRvIGJ1aWxkIHRoZSBET00gdHJlZQorICogRGVzY3JpcHRpb246IHRob3NlIGFyZSB0aGUgZGVmYXVsdCBTQVgyIGludGVyZmFjZXMgdXNlZCBieQorICogICAgICAgICAgICAgIHRoZSBsaWJyYXJ5IHdoZW4gYnVpbGRpbmcgRE9NIHRyZWUuCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworCisjaWZuZGVmIF9fWE1MX1NBWDJfSF9fCisjZGVmaW5lIF9fWE1MX1NBWDJfSF9fCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC94bGluay5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sU0FYMkdldFB1YmxpY0lkCQkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sU0FYMkdldFN5c3RlbUlkCQkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yCSh2b2lkICpjdHgsCisJCQkJCQkgeG1sU0FYTG9jYXRvclB0ciBsb2MpOworICAgIAorWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sU0FYMkdldExpbmVOdW1iZXIJCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sU0FYMkdldENvbHVtbk51bWJlcgkJKHZvaWQgKmN0eCk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFNBWDJJc1N0YW5kYWxvbmUJCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0CSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0CSh2b2lkICpjdHgpOworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMkludGVybmFsU3Vic2V0CQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMkV4dGVybmFsU3Vic2V0CQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwJCisJCXhtbFNBWDJHZXRFbnRpdHkJCSh2b2lkICpjdHgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwJCisJCXhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB4bWxQYXJzZXJJbnB1dFB0ciBYTUxDQUxMIAorCQl4bWxTQVgyUmVzb2x2ZUVudGl0eQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCk7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgyRW50aXR5RGVjbAkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGludCB0eXBlLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkLAorCQkJCQkJIHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbFNBWDJBdHRyaWJ1dGVEZWNsCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmVsZW0sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqZnVsbG5hbWUsCisJCQkJCQkgaW50IHR5cGUsCisJCQkJCQkgaW50IGRlZiwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpkZWZhdWx0VmFsdWUsCisJCQkJCQkgeG1sRW51bWVyYXRpb25QdHIgdHJlZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMkVsZW1lbnREZWNsCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgaW50IHR5cGUsCisJCQkJCQkgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMk5vdGF0aW9uRGVjbAkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsCSh2b2lkICpjdHgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpub3RhdGlvbk5hbWUpOworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMlN0YXJ0RG9jdW1lbnQJCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbFNBWDJFbmREb2N1bWVudAkJKHZvaWQgKmN0eCk7CisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMlN0YXJ0RWxlbWVudAkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpmdWxsbmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICoqYXR0cyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMkVuZEVsZW1lbnQJCSh2b2lkICpjdHgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCBvciBMSUJYTUxfSFRNTF9FTkFCTEVEICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCXhtbFNBWDJTdGFydEVsZW1lbnROcwkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpsb2NhbG5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqcHJlZml4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKlVSSSwKKwkJCQkJCSBpbnQgbmJfbmFtZXNwYWNlcywKKwkJCQkJCSBjb25zdCB4bWxDaGFyICoqbmFtZXNwYWNlcywKKwkJCQkJCSBpbnQgbmJfYXR0cmlidXRlcywKKwkJCQkJCSBpbnQgbmJfZGVmYXVsdGVkLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKiphdHRyaWJ1dGVzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJeG1sU0FYMkVuZEVsZW1lbnROcwkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpsb2NhbG5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqcHJlZml4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKlVSSSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMlJlZmVyZW5jZQkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgyQ2hhcmFjdGVycwkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpjaCwKKwkJCQkJCSBpbnQgbGVuKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmNoLAorCQkJCQkJIGludCBsZW4pOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24JKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp0YXJnZXQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqZGF0YSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU0FYMkNvbW1lbnQJCQkodm9pZCAqY3R4LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgyQ0RhdGFCbG9jawkJKHZvaWQgKmN0eCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkJCSBpbnQgbGVuKTsKKworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxTQVhEZWZhdWx0VmVyc2lvbgkJKGludCB2ZXJzaW9uKTsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxTQVhWZXJzaW9uCQkJKHhtbFNBWEhhbmRsZXIgKmhkbHIsCisJCQkJCQkgaW50IHZlcnNpb24pOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIgICAgKHhtbFNBWEhhbmRsZXIgKmhkbHIsCisJCQkJCQkgaW50IHdhcm5pbmcpOworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcih4bWxTQVhIYW5kbGVyICpoZGxyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQlodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0CSh2b2lkKTsKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTQVgySW5pdERvY2JEZWZhdWx0U0FYSGFuZGxlcih4bWxTQVhIYW5kbGVyICpoZGxyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQlkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0CSh2b2lkKTsKKyNlbmRpZgorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbERlZmF1bHRTQVhIYW5kbGVySW5pdAkodm9pZCk7CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8qIF9fWE1MX1NBWDJfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2MxNG4uaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvYzE0bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMTFhZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2MxNG4uaApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIFN1bW1hcnk6IFByb3ZpZGUgQ2Fub25pY2FsIFhNTCBhbmQgRXhjbHVzaXZlIFhNTCBDYW5vbmljYWxpemF0aW9uCisgKiBEZXNjcmlwdGlvbjogdGhlIGMxNG4gbW9kdWxlcyBwcm92aWRlcyBhCisgKgorICogIkNhbm9uaWNhbCBYTUwiIGltcGxlbWVudGF0aW9uCisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bgorICoKKyAqIGFuZCBhbgorICoKKyAqICJFeGNsdXNpdmUgWE1MIENhbm9uaWNhbGl6YXRpb24iIGltcGxlbWVudGF0aW9uCisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtZXhjLWMxNG4KKworICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogQWxla3NleSBTYW5pbiA8YWxla3NleUBhbGVrc2V5LmNvbT4KKyAqLworI2lmbmRlZiBfX1hNTF9DMTROX0hfXworI2RlZmluZSBfX1hNTF9DMTROX0hfXworI2lmZGVmIExJQlhNTF9DMTROX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorCisvKgorICogWE1MIENhbm9uaWNhemF0aW9uCisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtYzE0bgorICoKKyAqIEV4Y2x1c2l2ZSBYTUwgQ2Fub25pY2F6YXRpb24KKyAqIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC1leGMtYzE0bgorICoKKyAqIENhbm9uaWNhbCBmb3JtIG9mIGFuIFhNTCBkb2N1bWVudCBjb3VsZCBiZSBjcmVhdGVkIGlmIGFuZCBvbmx5IGlmCisgKiAgYSkgZGVmYXVsdCBhdHRyaWJ1dGVzIChpZiBhbnkpIGFyZSBhZGRlZCB0byBhbGwgbm9kZXMKKyAqICBiKSBhbGwgY2hhcmFjdGVyIGFuZCBwYXJzZWQgZW50aXR5IHJlZmVyZW5jZXMgYXJlIHJlc29sdmVkCisgKiBJbiBvcmRlciB0byBhY2hpdmUgdGhpcyBpbiBsaWJ4bWwyIHRoZSBkb2N1bWVudCBNVVNUIGJlIGxvYWRlZCB3aXRoCisgKiBmb2xsb3dpbmcgZ2xvYmFsIHNldGluZ3M6CisgKgorICogICAgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSA9IFhNTF9ERVRFQ1RfSURTIHwgWE1MX0NPTVBMRVRFX0FUVFJTOworICogICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKTsKKyAqCisgKiBvciBjb3JyZXNwb25kaW5nIHBhcnNlciBjb250ZXh0IHNldHRpbmc6CisgKiAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgKgorICogICAgLi4uCisgKiAgICBjdHh0LT5sb2Fkc3Vic2V0ID0gWE1MX0RFVEVDVF9JRFMgfCBYTUxfQ09NUExFVEVfQVRUUlM7CisgKiAgICBjdHh0LT5yZXBsYWNlRW50aXRpZXMgPSAxOworICogICAgLi4uCisgKi8KKworLyoKKyAqIHhtbEMxNE5Nb2RlOgorICogCisgKiBQcmVkZWZpbmVkIHZhbHVlcyBmb3IgQzE0TiBtb2RlcworICoKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfQzE0Tl8xXzAgICAgICAgICAgICA9IDAsICAgIC8qIE9yaWdpYW5hbCBDMTROIDEuMCBzcGVjICovCisgICAgWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCAgPSAxLCAgICAvKiBFeGNsdXNpdmUgQzE0TiAxLjAgc3BlYyAqLworICAgIFhNTF9DMTROXzFfMSAgICAgICAgICAgID0gMiAgICAgLyogQzE0TiAxLjEgc3BlYyAqLworfSB4bWxDMTROTW9kZTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbEMxNE5Eb2NTYXZlVG8JKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlU2V0UHRyIG5vZGVzLAorCQkJCQkgaW50IG1vZGUsIC8qIGEgeG1sQzE0Tk1vZGUgKi8KKwkJCQkJIHhtbENoYXIgKippbmNsdXNpdmVfbnNfcHJlZml4ZXMsCisJCQkJCSBpbnQgd2l0aF9jb21tZW50cywKKwkJCQkJIHhtbE91dHB1dEJ1ZmZlclB0ciBidWYpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sQzE0TkRvY0R1bXBNZW1vcnkJKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlU2V0UHRyIG5vZGVzLAorCQkJCQkgaW50IG1vZGUsIC8qIGEgeG1sQzE0Tk1vZGUgKi8KKwkJCQkJIHhtbENoYXIgKippbmNsdXNpdmVfbnNfcHJlZml4ZXMsCisJCQkJCSBpbnQgd2l0aF9jb21tZW50cywKKwkJCQkJIHhtbENoYXIgKipkb2NfdHh0X3B0cik7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxDMTRORG9jU2F2ZQkJKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlU2V0UHRyIG5vZGVzLAorCQkJCQkgaW50IG1vZGUsIC8qIGEgeG1sQzE0Tk1vZGUgKi8KKwkJCQkJIHhtbENoYXIgKippbmNsdXNpdmVfbnNfcHJlZml4ZXMsCisJCQkJCSBpbnQgd2l0aF9jb21tZW50cywKKwkJCQkJIGNvbnN0IGNoYXIqIGZpbGVuYW1lLAorCQkJCQkgaW50IGNvbXByZXNzaW9uKTsKKworCisvKioKKyAqIFRoaXMgaXMgdGhlIGNvcmUgQzE0TiBmdW5jdGlvbgorICovCisvKioKKyAqIHhtbEMxNE5Jc1Zpc2libGVDYWxsYmFjazoKKyAqIEB1c2VyX2RhdGE6IHVzZXIgZGF0YQorICogQG5vZGU6IHRoZSBjdXJlbnQgbm9kZQorICogQHBhcmVudDogdGhlIHBhcmVudCBub2RlCisgKgorICogU2lnbmF0dXJlIGZvciBhIEMxNE4gY2FsbGJhY2sgb24gdmlzaWJsZSBub2RlcworICoKKyAqIFJldHVybnMgMSBpZiB0aGUgbm9kZSBzaG91bGQgYmUgaW5jbHVkZWQKKyAqLwordHlwZWRlZiBpbnQgKCp4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2spCSh2b2lkKiB1c2VyX2RhdGEsCisJCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJCSB4bWxOb2RlUHRyIHBhcmVudCk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxDMTRORXhlY3V0ZQkJKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxDMTROSXNWaXNpYmxlQ2FsbGJhY2sgaXNfdmlzaWJsZV9jYWxsYmFjaywKKwkJCQkJIHZvaWQqIHVzZXJfZGF0YSwKKwkJCQkJIGludCBtb2RlLCAvKiBhIHhtbEMxNE5Nb2RlICovCisJCQkJCSB4bWxDaGFyICoqaW5jbHVzaXZlX25zX3ByZWZpeGVzLAorCQkJCQkgaW50IHdpdGhfY29tbWVudHMsCisJCQkJCSB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2VuZGlmIC8qIExJQlhNTF9DMTROX0VOQUJMRUQgKi8KKyNlbmRpZiAvKiBfX1hNTF9DMTROX0hfXyAqLworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2NhdGFsb2cuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvY2F0YWxvZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NDQxMzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2NhdGFsb2cuaApAQCAtMCwwICsxLDE4MiBAQAorLyoqCisgKiBTdW1tYXJ5OiBpbnRlcmZhY2VzIHRvIHRoZSBDYXRhbG9nIGhhbmRsaW5nIHN5c3RlbQorICogRGVzY3JpcHRpb246IHRoZSBjYXRhbG9nIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBzdXBwb3J0IGZvcgorICogWE1MIENhdGFsb2dzIGFuZCBTR01MIGNhdGFsb2dzCisgKgorICogU0dNTCBPcGVuIFRlY2huaWNhbCBSZXNvbHV0aW9uIFRSOTQwMToxOTk3LgorICogaHR0cDovL3d3dy5qY2xhcmsuY29tL3NwL2NhdGFsb2cuaHRtCisgKgorICogWE1MIENhdGFsb2dzIFdvcmtpbmcgRHJhZnQgMDYgQXVndXN0IDIwMDEKKyAqIGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvc3BlYy0yMDAxLTA4LTA2Lmh0bWwKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fWE1MX0NBVEFMT0dfSF9fCisjZGVmaW5lIF9fWE1MX0NBVEFMT0dfSF9fCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc3RyaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKworI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIFhNTF9DQVRBTE9HU19OQU1FU1BBQ0U6CisgKgorICogVGhlIG5hbWVzcGFjZSBmb3IgdGhlIFhNTCBDYXRhbG9ncyBlbGVtZW50cy4KKyAqLworI2RlZmluZSBYTUxfQ0FUQUxPR1NfTkFNRVNQQUNFCQkJCQlcCisgICAgKGNvbnN0IHhtbENoYXIgKikgInVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciCisvKioKKyAqIFhNTF9DQVRBTE9HX1BJOgorICoKKyAqIFRoZSBzcGVjaWZpYyBYTUwgQ2F0YWxvZyBQcm9jZXNzaW5nIEluc3R1Y3Rpb24gbmFtZS4KKyAqLworI2RlZmluZSBYTUxfQ0FUQUxPR19QSQkJCQkJCVwKKyAgICAoY29uc3QgeG1sQ2hhciAqKSAib2FzaXMteG1sLWNhdGFsb2ciCisKKy8qCisgKiBUaGUgQVBJIGlzIHZvbHVudGFyaWx5IGxpbWl0ZWQgdG8gZ2VuZXJhbCBjYXRhbG9naW5nLgorICovCit0eXBlZGVmIGVudW0geworICAgIFhNTF9DQVRBX1BSRUZFUl9OT05FID0gMCwKKyAgICBYTUxfQ0FUQV9QUkVGRVJfUFVCTElDID0gMSwKKyAgICBYTUxfQ0FUQV9QUkVGRVJfU1lTVEVNCit9IHhtbENhdGFsb2dQcmVmZXI7CisKK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX0NBVEFfQUxMT1dfTk9ORSA9IDAsCisgICAgWE1MX0NBVEFfQUxMT1dfR0xPQkFMID0gMSwKKyAgICBYTUxfQ0FUQV9BTExPV19ET0NVTUVOVCA9IDIsCisgICAgWE1MX0NBVEFfQUxMT1dfQUxMID0gMworfSB4bWxDYXRhbG9nQWxsb3c7CisKK3R5cGVkZWYgc3RydWN0IF94bWxDYXRhbG9nIHhtbENhdGFsb2c7Cit0eXBlZGVmIHhtbENhdGFsb2cgKnhtbENhdGFsb2dQdHI7CisKKy8qCisgKiBPcGVyYXRpb25zIG9uIGEgZ2l2ZW4gY2F0YWxvZy4KKyAqLworWE1MUFVCRlVOIHhtbENhdGFsb2dQdHIgWE1MQ0FMTAorCQl4bWxOZXdDYXRhbG9nCQkoaW50IHNnbWwpOworWE1MUFVCRlVOIHhtbENhdGFsb2dQdHIgWE1MQ0FMTAkKKwkJeG1sTG9hZEFDYXRhbG9nCQkoY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIHhtbENhdGFsb2dQdHIgWE1MQ0FMTAkKKwkJeG1sTG9hZFNHTUxTdXBlckNhdGFsb2cJKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbENvbnZlcnRTR01MQ2F0YWxvZwkoeG1sQ2F0YWxvZ1B0ciBjYXRhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxBQ2F0YWxvZ0FkZAkJKHhtbENhdGFsb2dQdHIgY2F0YWwsCisJCQkJCSBjb25zdCB4bWxDaGFyICp0eXBlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqb3JpZywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnJlcGxhY2UpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sQUNhdGFsb2dSZW1vdmUJKHhtbENhdGFsb2dQdHIgY2F0YWwsCisJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbEFDYXRhbG9nUmVzb2x2ZQkoeG1sQ2F0YWxvZ1B0ciBjYXRhbCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnB1YklELAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnN5c0lEKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtKHhtbENhdGFsb2dQdHIgY2F0YWwsCisJCQkJCSBjb25zdCB4bWxDaGFyICpzeXNJRCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYyh4bWxDYXRhbG9nUHRyIGNhdGFsLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqcHViSUQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxBQ2F0YWxvZ1Jlc29sdmVVUkkJKHhtbENhdGFsb2dQdHIgY2F0YWwsCisJCQkJCSBjb25zdCB4bWxDaGFyICpVUkkpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEFDYXRhbG9nRHVtcAkJKHhtbENhdGFsb2dQdHIgY2F0YWwsCisJCQkJCSBGSUxFICpvdXQpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEZyZWVDYXRhbG9nCQkoeG1sQ2F0YWxvZ1B0ciBjYXRhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxDYXRhbG9nSXNFbXB0eQkoeG1sQ2F0YWxvZ1B0ciBjYXRhbCk7CisKKy8qCisgKiBHbG9iYWwgb3BlcmF0aW9ucy4KKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEluaXRpYWxpemVDYXRhbG9nCSh2b2lkKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbExvYWRDYXRhbG9nCQkoY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbExvYWRDYXRhbG9ncwkJKGNvbnN0IGNoYXIgKnBhdGhzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxDYXRhbG9nQ2xlYW51cAkodm9pZCk7CisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sQ2F0YWxvZ0R1bXAJCShGSUxFICpvdXQpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxDYXRhbG9nUmVzb2x2ZQkoY29uc3QgeG1sQ2hhciAqcHViSUQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3lzSUQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbQkoY29uc3QgeG1sQ2hhciAqc3lzSUQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYwkoY29uc3QgeG1sQ2hhciAqcHViSUQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxDYXRhbG9nUmVzb2x2ZVVSSQkoY29uc3QgeG1sQ2hhciAqVVJJKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbENhdGFsb2dBZGQJCShjb25zdCB4bWxDaGFyICp0eXBlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqb3JpZywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnJlcGxhY2UpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sQ2F0YWxvZ1JlbW92ZQkoY29uc3QgeG1sQ2hhciAqdmFsdWUpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCQorCQl4bWxQYXJzZUNhdGFsb2dGaWxlCShjb25zdCBjaGFyICpmaWxlbmFtZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxDYXRhbG9nQ29udmVydAkodm9pZCk7CisKKy8qCisgKiBTdHJpY3RseSBtaW5pbWFsIGludGVyZmFjZXMgZm9yIHBlci1kb2N1bWVudCBjYXRhbG9ncyB1c2VkCisgKiBieSB0aGUgcGFyc2VyLgorICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sQ2F0YWxvZ0ZyZWVMb2NhbAkodm9pZCAqY2F0YWxvZ3MpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQkKKwkJeG1sQ2F0YWxvZ0FkZExvY2FsCSh2b2lkICpjYXRhbG9ncywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKlVSTCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbENhdGFsb2dMb2NhbFJlc29sdmUJKHZvaWQgKmNhdGFsb2dzLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqcHViSUQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3lzSUQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJKHZvaWQgKmNhdGFsb2dzLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqVVJJKTsKKy8qCisgKiBQcmVmZXJlbmNlIHNldHRpbmdzLgorICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxDYXRhbG9nU2V0RGVidWcJKGludCBsZXZlbCk7CitYTUxQVUJGVU4geG1sQ2F0YWxvZ1ByZWZlciBYTUxDQUxMIAorCQl4bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcih4bWxDYXRhbG9nUHJlZmVyIHByZWZlcik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sQ2F0YWxvZ1NldERlZmF1bHRzCSh4bWxDYXRhbG9nQWxsb3cgYWxsb3cpOworWE1MUFVCRlVOIHhtbENhdGFsb2dBbGxvdyBYTUxDQUxMCQorCQl4bWxDYXRhbG9nR2V0RGVmYXVsdHMJKHZvaWQpOworCisKKy8qIERFUFJFQ0FURUQgaW50ZXJmYWNlcyAqLworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxDYXRhbG9nR2V0U3lzdGVtCShjb25zdCB4bWxDaGFyICpzeXNJRCk7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbENhdGFsb2dHZXRQdWJsaWMJKGNvbnN0IHhtbENoYXIgKnB1YklEKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvKiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVEICovCisjZW5kaWYgLyogX19YTUxfQ0FUQUxPR19IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvY2h2YWxpZC5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9jaHZhbGlkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI0MzAxNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvY2h2YWxpZC5oCkBAIC0wLDAgKzEsMjMwIEBACisvKgorICogU3VtbWFyeTogVW5pY29kZSBjaGFyYWN0ZXIgcmFuZ2UgY2hlY2tpbmcKKyAqIERlc2NyaXB0aW9uOiB0aGlzIG1vZHVsZSBleHBvcnRzIGludGVyZmFjZXMgZm9yIHRoZSBjaGFyYWN0ZXIKKyAqICAgICAgICAgICAgICAgcmFuZ2UgdmFsaWRhdGlvbiBBUElzCisgKgorICogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGN2cyBzb3VyY2UKKyAqIGRlZmluaXRpb24gZmlsZXMgdXNpbmcgdGhlIGdlbkNoUmFuZ2VzLnB5IFB5dGhvbiBzY3JpcHQKKyAqCisgKiBHZW5lcmF0aW9uIGRhdGU6IE1vbiBNYXIgMjcgMTE6MDk6NDggMjAwNgorICogU291cmNlczogY2h2YWxpZC5kZWYKKyAqIEF1dGhvcjogV2lsbGlhbSBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CisgKi8KKworI2lmbmRlZiBfX1hNTF9DSFZBTElEX0hfXworI2RlZmluZSBfX1hNTF9DSFZBTElEX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc3RyaW5nLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIERlZmluZSBvdXIgdHlwZWRlZnMgYW5kIHN0cnVjdHVyZXMKKyAqCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxDaFNSYW5nZSB4bWxDaFNSYW5nZTsKK3R5cGVkZWYgeG1sQ2hTUmFuZ2UgKnhtbENoU1JhbmdlUHRyOworc3RydWN0IF94bWxDaFNSYW5nZSB7CisgICAgdW5zaWduZWQgc2hvcnQJbG93OworICAgIHVuc2lnbmVkIHNob3J0CWhpZ2g7Cit9OworCit0eXBlZGVmIHN0cnVjdCBfeG1sQ2hMUmFuZ2UgeG1sQ2hMUmFuZ2U7Cit0eXBlZGVmIHhtbENoTFJhbmdlICp4bWxDaExSYW5nZVB0cjsKK3N0cnVjdCBfeG1sQ2hMUmFuZ2UgeworICAgIHVuc2lnbmVkIGludAlsb3c7CisgICAgdW5zaWduZWQgaW50CWhpZ2g7Cit9OworCit0eXBlZGVmIHN0cnVjdCBfeG1sQ2hSYW5nZUdyb3VwIHhtbENoUmFuZ2VHcm91cDsKK3R5cGVkZWYgeG1sQ2hSYW5nZUdyb3VwICp4bWxDaFJhbmdlR3JvdXBQdHI7CitzdHJ1Y3QgX3htbENoUmFuZ2VHcm91cCB7CisgICAgaW50CQkJbmJTaG9ydFJhbmdlOworICAgIGludAkJCW5iTG9uZ1JhbmdlOworICAgIGNvbnN0IHhtbENoU1JhbmdlCSpzaG9ydFJhbmdlOwkvKiBwb2ludHMgdG8gYW4gYXJyYXkgb2YgcmFuZ2VzICovCisgICAgY29uc3QgeG1sQ2hMUmFuZ2UJKmxvbmdSYW5nZTsKK307CisKKy8qKgorICogUmFuZ2UgY2hlY2tpbmcgcm91dGluZQorICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sQ2hhckluUmFuZ2UodW5zaWduZWQgaW50IHZhbCwgY29uc3QgeG1sQ2hSYW5nZUdyb3VwICpncm91cCk7CisKKworLyoqCisgKiB4bWxJc0Jhc2VDaGFyX2NoOgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzQmFzZUNoYXJfY2goYykJKCgoMHg0MSA8PSAoYykpICYmICgoYykgPD0gMHg1YSkpIHx8IFwKKwkJCQkgKCgweDYxIDw9IChjKSkgJiYgKChjKSA8PSAweDdhKSkgfHwgXAorCQkJCSAoKDB4YzAgPD0gKGMpKSAmJiAoKGMpIDw9IDB4ZDYpKSB8fCBcCisJCQkJICgoMHhkOCA8PSAoYykpICYmICgoYykgPD0gMHhmNikpIHx8IFwKKwkJCQkgICgweGY4IDw9IChjKSkpCisKKy8qKgorICogeG1sSXNCYXNlQ2hhclE6CisgKiBAYzogY2hhciB0byB2YWxpZGF0ZQorICoKKyAqIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5CisgKi8KKyNkZWZpbmUgeG1sSXNCYXNlQ2hhclEoYykJKCgoYykgPCAweDEwMCkgPyBcCisJCQkJIHhtbElzQmFzZUNoYXJfY2goKGMpKSA6IFwKKwkJCQkgeG1sQ2hhckluUmFuZ2UoKGMpLCAmeG1sSXNCYXNlQ2hhckdyb3VwKSkKKworWE1MUFVCVkFSIGNvbnN0IHhtbENoUmFuZ2VHcm91cCB4bWxJc0Jhc2VDaGFyR3JvdXA7CisKKy8qKgorICogeG1sSXNCbGFua19jaDoKKyAqIEBjOiBjaGFyIHRvIHZhbGlkYXRlCisgKgorICogQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHkKKyAqLworI2RlZmluZSB4bWxJc0JsYW5rX2NoKGMpCSgoKGMpID09IDB4MjApIHx8IFwKKwkJCQkgKCgweDkgPD0gKGMpKSAmJiAoKGMpIDw9IDB4YSkpIHx8IFwKKwkJCQkgKChjKSA9PSAweGQpKQorCisvKioKKyAqIHhtbElzQmxhbmtROgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzQmxhbmtRKGMpCQkoKChjKSA8IDB4MTAwKSA/IFwKKwkJCQkgeG1sSXNCbGFua19jaCgoYykpIDogMCkKKworCisvKioKKyAqIHhtbElzQ2hhcl9jaDoKKyAqIEBjOiBjaGFyIHRvIHZhbGlkYXRlCisgKgorICogQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHkKKyAqLworI2RlZmluZSB4bWxJc0NoYXJfY2goYykJCSgoKDB4OSA8PSAoYykpICYmICgoYykgPD0gMHhhKSkgfHwgXAorCQkJCSAoKGMpID09IDB4ZCkgfHwgXAorCQkJCSAgKDB4MjAgPD0gKGMpKSkKKworLyoqCisgKiB4bWxJc0NoYXJROgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzQ2hhclEoYykJCSgoKGMpIDwgMHgxMDApID8gXAorCQkJCSB4bWxJc0NoYXJfY2goKGMpKSA6XAorCQkJCSgoKDB4MTAwIDw9IChjKSkgJiYgKChjKSA8PSAweGQ3ZmYpKSB8fCBcCisJCQkJICgoMHhlMDAwIDw9IChjKSkgJiYgKChjKSA8PSAweGZmZmQpKSB8fCBcCisJCQkJICgoMHgxMDAwMCA8PSAoYykpICYmICgoYykgPD0gMHgxMGZmZmYpKSkpCisKK1hNTFBVQlZBUiBjb25zdCB4bWxDaFJhbmdlR3JvdXAgeG1sSXNDaGFyR3JvdXA7CisKKy8qKgorICogeG1sSXNDb21iaW5pbmdROgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzQ29tYmluaW5nUShjKQkoKChjKSA8IDB4MTAwKSA/IFwKKwkJCQkgMCA6IFwKKwkJCQkgeG1sQ2hhckluUmFuZ2UoKGMpLCAmeG1sSXNDb21iaW5pbmdHcm91cCkpCisKK1hNTFBVQlZBUiBjb25zdCB4bWxDaFJhbmdlR3JvdXAgeG1sSXNDb21iaW5pbmdHcm91cDsKKworLyoqCisgKiB4bWxJc0RpZ2l0X2NoOgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzRGlnaXRfY2goYykJKCgoMHgzMCA8PSAoYykpICYmICgoYykgPD0gMHgzOSkpKQorCisvKioKKyAqIHhtbElzRGlnaXRROgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzRGlnaXRRKGMpCQkoKChjKSA8IDB4MTAwKSA/IFwKKwkJCQkgeG1sSXNEaWdpdF9jaCgoYykpIDogXAorCQkJCSB4bWxDaGFySW5SYW5nZSgoYyksICZ4bWxJc0RpZ2l0R3JvdXApKQorCitYTUxQVUJWQVIgY29uc3QgeG1sQ2hSYW5nZUdyb3VwIHhtbElzRGlnaXRHcm91cDsKKworLyoqCisgKiB4bWxJc0V4dGVuZGVyX2NoOgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzRXh0ZW5kZXJfY2goYykJKCgoYykgPT0gMHhiNykpCisKKy8qKgorICogeG1sSXNFeHRlbmRlclE6CisgKiBAYzogY2hhciB0byB2YWxpZGF0ZQorICoKKyAqIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5CisgKi8KKyNkZWZpbmUgeG1sSXNFeHRlbmRlclEoYykJKCgoYykgPCAweDEwMCkgPyBcCisJCQkJIHhtbElzRXh0ZW5kZXJfY2goKGMpKSA6IFwKKwkJCQkgeG1sQ2hhckluUmFuZ2UoKGMpLCAmeG1sSXNFeHRlbmRlckdyb3VwKSkKKworWE1MUFVCVkFSIGNvbnN0IHhtbENoUmFuZ2VHcm91cCB4bWxJc0V4dGVuZGVyR3JvdXA7CisKKy8qKgorICogeG1sSXNJZGVvZ3JhcGhpY1E6CisgKiBAYzogY2hhciB0byB2YWxpZGF0ZQorICoKKyAqIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGdlbkNoUmFuZ2VzLnB5CisgKi8KKyNkZWZpbmUgeG1sSXNJZGVvZ3JhcGhpY1EoYykJKCgoYykgPCAweDEwMCkgPyBcCisJCQkJIDAgOlwKKwkJCQkoKCgweDRlMDAgPD0gKGMpKSAmJiAoKGMpIDw9IDB4OWZhNSkpIHx8IFwKKwkJCQkgKChjKSA9PSAweDMwMDcpIHx8IFwKKwkJCQkgKCgweDMwMjEgPD0gKGMpKSAmJiAoKGMpIDw9IDB4MzAyOSkpKSkKKworWE1MUFVCVkFSIGNvbnN0IHhtbENoUmFuZ2VHcm91cCB4bWxJc0lkZW9ncmFwaGljR3JvdXA7CitYTUxQVUJWQVIgY29uc3QgdW5zaWduZWQgY2hhciB4bWxJc1B1YmlkQ2hhcl90YWJbMjU2XTsKKworLyoqCisgKiB4bWxJc1B1YmlkQ2hhcl9jaDoKKyAqIEBjOiBjaGFyIHRvIHZhbGlkYXRlCisgKgorICogQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ2VuQ2hSYW5nZXMucHkKKyAqLworI2RlZmluZSB4bWxJc1B1YmlkQ2hhcl9jaChjKQkoeG1sSXNQdWJpZENoYXJfdGFiWyhjKV0pCisKKy8qKgorICogeG1sSXNQdWJpZENoYXJROgorICogQGM6IGNoYXIgdG8gdmFsaWRhdGUKKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW5DaFJhbmdlcy5weQorICovCisjZGVmaW5lIHhtbElzUHViaWRDaGFyUShjKQkoKChjKSA8IDB4MTAwKSA/IFwKKwkJCQkgeG1sSXNQdWJpZENoYXJfY2goKGMpKSA6IDApCisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxJc0Jhc2VDaGFyKHVuc2lnbmVkIGludCBjaCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sSXNCbGFuayh1bnNpZ25lZCBpbnQgY2gpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbElzQ2hhcih1bnNpZ25lZCBpbnQgY2gpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbElzQ29tYmluaW5nKHVuc2lnbmVkIGludCBjaCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sSXNEaWdpdCh1bnNpZ25lZCBpbnQgY2gpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbElzRXh0ZW5kZXIodW5zaWduZWQgaW50IGNoKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxJc0lkZW9ncmFwaGljKHVuc2lnbmVkIGludCBjaCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sSXNQdWJpZENoYXIodW5zaWduZWQgaW50IGNoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvKiBfX1hNTF9DSFZBTElEX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9kZWJ1Z1hNTC5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9kZWJ1Z1hNTC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhOWQyMGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2RlYnVnWE1MLmgKQEAgLTAsMCArMSwyMTcgQEAKKy8qCisgKiBTdW1tYXJ5OiBUcmVlIGRlYnVnZ2luZyBBUElzCisgKiBEZXNjcmlwdGlvbjogSW50ZXJmYWNlcyB0byBhIHNldCBvZiByb3V0aW5lcyB1c2VkIGZvciBkZWJ1Z2dpbmcgdGhlIHRyZWUKKyAqICAgICAgICAgICAgICBwcm9kdWNlZCBieSB0aGUgWE1MIHBhcnNlci4KKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fREVCVUdfWE1MX18KKyNkZWZpbmUgX19ERUJVR19YTUxfXworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKworI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBUaGUgc3RhbmRhcmQgRHVtcCByb3V0aW5lcy4KKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxEZWJ1Z0R1bXBTdHJpbmcJKEZJTEUgKm91dHB1dCwKKwkJCQkgY29uc3QgeG1sQ2hhciAqc3RyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sRGVidWdEdW1wQXR0cgkoRklMRSAqb3V0cHV0LAorCQkJCSB4bWxBdHRyUHRyIGF0dHIsCisJCQkJIGludCBkZXB0aCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCXhtbERlYnVnRHVtcEF0dHJMaXN0CShGSUxFICpvdXRwdXQsCisJCQkJIHhtbEF0dHJQdHIgYXR0ciwKKwkJCQkgaW50IGRlcHRoKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sRGVidWdEdW1wT25lTm9kZQkoRklMRSAqb3V0cHV0LAorCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJIGludCBkZXB0aCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJeG1sRGVidWdEdW1wTm9kZQkoRklMRSAqb3V0cHV0LAorCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJIGludCBkZXB0aCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJeG1sRGVidWdEdW1wTm9kZUxpc3QJKEZJTEUgKm91dHB1dCwKKwkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCSBpbnQgZGVwdGgpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCXhtbERlYnVnRHVtcERvY3VtZW50SGVhZChGSUxFICpvdXRwdXQsCisJCQkJIHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCXhtbERlYnVnRHVtcERvY3VtZW50CShGSUxFICpvdXRwdXQsCisJCQkJIHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxEZWJ1Z0R1bXBEVEQJCShGSUxFICpvdXRwdXQsCisJCQkJIHhtbER0ZFB0ciBkdGQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxEZWJ1Z0R1bXBFbnRpdGllcwkoRklMRSAqb3V0cHV0LAorCQkJCSB4bWxEb2NQdHIgZG9jKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkqCisgKgkgCQlDaGVja2luZyByb3V0aW5lcwkJCSoKKyAqCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJeG1sRGVidWdDaGVja0RvY3VtZW50CShGSUxFICogb3V0cHV0LAorCQkJCSB4bWxEb2NQdHIgZG9jKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkqCisgKgkgCQlYTUwgc2hlbGwgaGVscGVycwkJCSoKKyAqCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxMc09uZU5vZGUJCShGSUxFICpvdXRwdXQsIHhtbE5vZGVQdHIgbm9kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTHNDb3VudE5vZGUJCSh4bWxOb2RlUHRyIG5vZGUpOworCitYTUxQVUJGVU4gY29uc3QgY2hhciAqIFhNTENBTEwgCisJeG1sQm9vbFRvVGV4dAkJKGludCBib29sdmFsKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkqCisgKgkgVGhlIFhNTCBzaGVsbCByZWxhdGVkIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucwkJKgorICoJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKy8qKgorICogeG1sU2hlbGxSZWFkbGluZUZ1bmM6CisgKiBAcHJvbXB0OiAgYSBzdHJpbmcgcHJvbXB0CisgKgorICogVGhpcyBpcyBhIGdlbmVyaWMgc2lnbmF0dXJlIGZvciB0aGUgWE1MIHNoZWxsIGlucHV0IGZ1bmN0aW9uLgorICoKKyAqIFJldHVybnMgYSBzdHJpbmcgd2hpY2ggd2lsbCBiZSBmcmVlZCBieSB0aGUgU2hlbGwuCisgKi8KK3R5cGVkZWYgY2hhciAqICgqIHhtbFNoZWxsUmVhZGxpbmVGdW5jKShjaGFyICpwcm9tcHQpOworCisvKioKKyAqIHhtbFNoZWxsQ3R4dDoKKyAqCisgKiBBIGRlYnVnZ2luZyBzaGVsbCBjb250ZXh0LgorICogVE9ETzogYWRkIHRoZSBkZWZpbmVkIGZ1bmN0aW9uIHRhYmxlcy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNoZWxsQ3R4dCB4bWxTaGVsbEN0eHQ7Cit0eXBlZGVmIHhtbFNoZWxsQ3R4dCAqeG1sU2hlbGxDdHh0UHRyOworc3RydWN0IF94bWxTaGVsbEN0eHQgeworICAgIGNoYXIgKmZpbGVuYW1lOworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIHhtbFhQYXRoQ29udGV4dFB0ciBwY3R4dDsKKyAgICBpbnQgbG9hZGVkOworICAgIEZJTEUgKm91dHB1dDsKKyAgICB4bWxTaGVsbFJlYWRsaW5lRnVuYyBpbnB1dDsKK307CisKKy8qKgorICogeG1sU2hlbGxDbWQ6CisgKiBAY3R4dDogIGEgc2hlbGwgY29udGV4dAorICogQGFyZzogIGEgc3RyaW5nIGFyZ3VtZW50CisgKiBAbm9kZTogIGEgZmlyc3Qgbm9kZQorICogQG5vZGUyOiAgYSBzZWNvbmQgbm9kZQorICoKKyAqIFRoaXMgaXMgYSBnZW5lcmljIHNpZ25hdHVyZSBmb3IgdGhlIFhNTCBzaGVsbCBmdW5jdGlvbnMuCisgKgorICogUmV0dXJucyBhbiBpbnQsIG5lZ2F0aXZlIHJldHVybnMgaW5kaWNhdGluZyBlcnJvcnMuCisgKi8KK3R5cGVkZWYgaW50ICgqIHhtbFNoZWxsQ21kKSAoeG1sU2hlbGxDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmFyZywKKwkJCSAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkJICAgICB4bWxOb2RlUHRyIG5vZGUyKTsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxTaGVsbFByaW50WFBhdGhFcnJvcgkoaW50IGVycm9yVHlwZSwKKwkJCQkgY29uc3QgY2hhciAqYXJnKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0KHhtbFhQYXRoT2JqZWN0UHRyIGxpc3QpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQorCXhtbFNoZWxsTGlzdAkJKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LAorCQkJCSBjaGFyICphcmcsCisJCQkJIHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkgeG1sTm9kZVB0ciBub2RlMik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sU2hlbGxCYXNlCQkoeG1sU2hlbGxDdHh0UHRyIGN0eHQsCisJCQkJIGNoYXIgKmFyZywKKwkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCSB4bWxOb2RlUHRyIG5vZGUyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxTaGVsbERpcgkJKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LAorCQkJCSBjaGFyICphcmcsCisJCQkJIHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkgeG1sTm9kZVB0ciBub2RlMik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sU2hlbGxMb2FkCQkoeG1sU2hlbGxDdHh0UHRyIGN0eHQsCisJCQkJIGNoYXIgKmZpbGVuYW1lLAorCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJIHhtbE5vZGVQdHIgbm9kZTIpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxTaGVsbFByaW50Tm9kZQkoeG1sTm9kZVB0ciBub2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxTaGVsbENhdAkJKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LAorCQkJCSBjaGFyICphcmcsCisJCQkJIHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkgeG1sTm9kZVB0ciBub2RlMik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sU2hlbGxXcml0ZQkJKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LAorCQkJCSBjaGFyICpmaWxlbmFtZSwKKwkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCSB4bWxOb2RlUHRyIG5vZGUyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxTaGVsbFNhdmUJCSh4bWxTaGVsbEN0eHRQdHIgY3R4dCwKKwkJCQkgY2hhciAqZmlsZW5hbWUsCisJCQkJIHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkgeG1sTm9kZVB0ciBub2RlMik7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxTaGVsbFZhbGlkYXRlCSh4bWxTaGVsbEN0eHRQdHIgY3R4dCwKKwkJCQkgY2hhciAqZHRkLAorCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJIHhtbE5vZGVQdHIgbm9kZTIpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sU2hlbGxEdQkJKHhtbFNoZWxsQ3R4dFB0ciBjdHh0LAorCQkJCSBjaGFyICphcmcsCisJCQkJIHhtbE5vZGVQdHIgdHJlZSwKKwkJCQkgeG1sTm9kZVB0ciBub2RlMik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sU2hlbGxQd2QJCSh4bWxTaGVsbEN0eHRQdHIgY3R4dCwKKwkJCQkgY2hhciAqYnVmZmVyLAorCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJIHhtbE5vZGVQdHIgbm9kZTIpOworCisvKgorICogVGhlIFNoZWxsIGludGVyZmFjZS4KKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxTaGVsbAkJKHhtbERvY1B0ciBkb2MsCisJCQkJIGNoYXIgKmZpbGVuYW1lLAorCQkJCSB4bWxTaGVsbFJlYWRsaW5lRnVuYyBpbnB1dCwKKwkJCQkgRklMRSAqb3V0cHV0KTsKKwkJCSAKKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX0RFQlVHX0VOQUJMRUQgKi8KKyNlbmRpZiAvKiBfX0RFQlVHX1hNTF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2RpY3QuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvZGljdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiYjgzMzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2RpY3QuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogU3VtbWFyeTogc3RyaW5nIGRpY3Rpb25uYXJ5CisgKiBEZXNjcmlwdGlvbjogZGljdGlvbmFyeSBvZiByZXVzYWJsZSBzdHJpbmdzLCBqdXN0IHVzZWQgdG8gYXZvaWQgYWxsb2NhdGlvbgorICogICAgICAgICBhbmQgZnJlZWluZyBvcGVyYXRpb25zLgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfRElDVF9IX18KKyNkZWZpbmUgX19YTUxfRElDVF9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogVGhlIGRpY3Rpb25uYXJ5LgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sRGljdCB4bWxEaWN0OwordHlwZWRlZiB4bWxEaWN0ICp4bWxEaWN0UHRyOworCisvKgorICogQ29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IuCisgKi8KK1hNTFBVQkZVTiB4bWxEaWN0UHRyIFhNTENBTEwKKwkJCXhtbERpY3RDcmVhdGUJKHZvaWQpOworWE1MUFVCRlVOIHhtbERpY3RQdHIgWE1MQ0FMTAorCQkJeG1sRGljdENyZWF0ZVN1Yih4bWxEaWN0UHRyIHN1Yik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbERpY3RSZWZlcmVuY2UoeG1sRGljdFB0ciBkaWN0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbERpY3RGcmVlCSh4bWxEaWN0UHRyIGRpY3QpOworCisvKgorICogTG9va3VwIG9mIGVudHJ5IGluIHRoZSBkaWN0aW9ubmFyeS4KKyAqLworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCQkKKwkJCXhtbERpY3RMb29rdXAJKHhtbERpY3RQdHIgZGljdCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxEaWN0RXhpc3RzCSh4bWxEaWN0UHRyIGRpY3QsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbik7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwJCQorCQkJeG1sRGljdFFMb29rdXAJKHhtbERpY3RQdHIgZGljdCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxEaWN0T3ducwkoeG1sRGljdFB0ciBkaWN0LAorCQkJCQkgY29uc3QgeG1sQ2hhciAqc3RyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCQorCQkJeG1sRGljdFNpemUJKHhtbERpY3RQdHIgZGljdCk7CisKKy8qCisgKiBDbGVhbnVwIGZ1bmN0aW9uCisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbERpY3RDbGVhbnVwICAodm9pZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLyogISBfX1hNTF9ESUNUX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9lbmNvZGluZy5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9lbmNvZGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NGIyNWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2VuY29kaW5nLmgKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBTdW1tYXJ5OiBpbnRlcmZhY2UgZm9yIHRoZSBlbmNvZGluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucworICogRGVzY3JpcHRpb246IGludGVyZmFjZSBmb3IgdGhlIGVuY29kaW5nIGNvbnZlcnNpb24gZnVuY3Rpb25zIG5lZWRlZCBmb3IKKyAqICAgICAgICAgICAgICBYTUwgYmFzaWMgZW5jb2RpbmcgYW5kIGljb252KCkgc3VwcG9ydC4KKyAqCisgKiBSZWxhdGVkIHNwZWNzIGFyZQorICogcmZjMjA0NCAgICAgICAgKFVURi04IGFuZCBVVEYtMTYpIEYuIFllcmdlYXUgQWxpcyBUZWNobm9sb2dpZXMKKyAqIFtJU08tMTA2NDZdICAgIFVURi04IGFuZCBVVEYtMTYgaW4gQW5uZXhlcworICogW0lTTy04ODU5LTFdICAgSVNPIExhdGluLTEgY2hhcmFjdGVycyBjb2Rlcy4KKyAqIFtVTklDT0RFXSAgICAgIFRoZSBVbmljb2RlIENvbnNvcnRpdW0sICJUaGUgVW5pY29kZSBTdGFuZGFyZCAtLQorICogICAgICAgICAgICAgICAgV29ybGR3aWRlIENoYXJhY3RlciBFbmNvZGluZyAtLSBWZXJzaW9uIDEuMCIsIEFkZGlzb24tCisgKiAgICAgICAgICAgICAgICBXZXNsZXksIFZvbHVtZSAxLCAxOTkxLCBWb2x1bWUgMiwgMTk5Mi4gIFVURi04IGlzCisgKiAgICAgICAgICAgICAgICBkZXNjcmliZWQgaW4gVW5pY29kZSBUZWNobmljYWwgUmVwb3J0ICM0LgorICogW1VTLUFTQ0lJXSAgICAgQ29kZWQgQ2hhcmFjdGVyIFNldC0tNy1iaXQgQW1lcmljYW4gU3RhbmRhcmQgQ29kZSBmb3IKKyAqICAgICAgICAgICAgICAgIEluZm9ybWF0aW9uIEludGVyY2hhbmdlLCBBTlNJIFgzLjQtMTk4Ni4KKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fWE1MX0NIQVJfRU5DT0RJTkdfSF9fCisjZGVmaW5lIF9fWE1MX0NIQVJfRU5DT0RJTkdfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX0lDT05WX0VOQUJMRUQKKyNpbmNsdWRlIDxpY29udi5oPgorI2VuZGlmCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiB4bWxDaGFyRW5jb2Rpbmc6CisgKgorICogUHJlZGVmaW5lZCB2YWx1ZXMgZm9yIHNvbWUgc3RhbmRhcmQgZW5jb2RpbmdzLgorICogTGlieG1sIGRvZXMgbm90IGRvIGJlZm9yZWhhbmQgdHJhbnNsYXRpb24gb24gVVRGOCBhbmQgSVNPTGF0aW5YLgorICogSXQgYWxzbyBzdXBwb3J0cyBBU0NJSSwgSVNPLTg4NTktMSwgYW5kIFVURjE2IChMRSBhbmQgQkUpIGJ5IGRlZmF1bHQuCisgKgorICogQW55dGhpbmcgZWxzZSB3b3VsZCBoYXZlIHRvIGJlIHRyYW5zbGF0ZWQgdG8gVVRGOCBiZWZvcmUgYmVpbmcKKyAqIGdpdmVuIHRvIHRoZSBwYXJzZXIgaXRzZWxmLiBUaGUgQk9NIGZvciBVVEYxNiBhbmQgdGhlIGVuY29kaW5nCisgKiBkZWNsYXJhdGlvbiBhcmUgbG9va2VkIGF0IGFuZCBhIGNvbnZlcnRlciBpcyBsb29rZWQgZm9yIGF0IHRoYXQKKyAqIHBvaW50LiBJZiBub3QgZm91bmQgdGhlIHBhcnNlciBzdG9wcyBoZXJlIGFzIGFza2VkIGJ5IHRoZSBYTUwgUkVDLiBBCisgKiBjb252ZXJ0ZXIgY2FuIGJlIHJlZ2lzdGVyZWQgYnkgdGhlIHVzZXIgdXNpbmcgeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyCisgKiBidXQgdGhlIGN1cnJlbnQgZm9ybSBkb2Vzbid0IGFsbG93IHN0YXRlZnVsIHRyYW5zY29kaW5nIChhIHNlcmlvdXMKKyAqIHByb2JsZW0gYWdyZWVkICEpLiBJZiBpY29udiBoYXMgYmVlbiBmb3VuZCBpdCB3aWxsIGJlIHVzZWQKKyAqIGF1dG9tYXRpY2FsbHkgYW5kIGFsbG93IHN0YXRlZnVsIHRyYW5zY29kaW5nLCB0aGUgc2ltcGxlc3QgaXMgdGhlbgorICogdG8gYmUgc3VyZSB0byBlbmFibGUgaWNvbnYgYW5kIHRvIHByb3ZpZGUgaWNvbnYgbGlicyBmb3IgdGhlIGVuY29kaW5nCisgKiBzdXBwb3J0IG5lZWRlZC4KKyAqCisgKiBOb3RlIHRoYXQgdGhlIGdlbmVyaWMgIlVURi0xNiIgaXMgbm90IGEgcHJlZGVmaW5lZCB2YWx1ZS4gIEluc3RlYWQsIG9ubHkKKyAqIHRoZSBzcGVjaWZpYyBVVEYtMTZMRSBhbmQgVVRGLTE2QkUgYXJlIHByZXNlbnQuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX0NIQVJfRU5DT0RJTkdfRVJST1I9ICAgLTEsIC8qIE5vIGNoYXIgZW5jb2RpbmcgZGV0ZWN0ZWQgKi8KKyAgICBYTUxfQ0hBUl9FTkNPRElOR19OT05FPQkwLCAvKiBObyBjaGFyIGVuY29kaW5nIGRldGVjdGVkICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfVVRGOD0JMSwgLyogVVRGLTggKi8KKyAgICBYTUxfQ0hBUl9FTkNPRElOR19VVEYxNkxFPQkyLCAvKiBVVEYtMTYgbGl0dGxlIGVuZGlhbiAqLworICAgIFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkU9CTMsIC8qIFVURi0xNiBiaWcgZW5kaWFuICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFPQk0LCAvKiBVQ1MtNCBsaXR0bGUgZW5kaWFuICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNEJFPQk1LCAvKiBVQ1MtNCBiaWcgZW5kaWFuICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfRUJDRElDPQk2LCAvKiBFQkNESUMgdWghICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzPTcsIC8qIFVDUy00IHVudXN1YWwgb3JkZXJpbmcgKi8KKyAgICBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTI9OCwgLyogVUNTLTQgdW51c3VhbCBvcmRlcmluZyAqLworICAgIFhNTF9DSEFSX0VOQ09ESU5HX1VDUzI9CTksIC8qIFVDUy0yICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8xPQkxMCwvKiBJU08tODg1OS0xIElTTyBMYXRpbiAxICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yPQkxMSwvKiBJU08tODg1OS0yIElTTyBMYXRpbiAyICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8zPQkxMiwvKiBJU08tODg1OS0zICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV80PQkxMywvKiBJU08tODg1OS00ICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV81PQkxNCwvKiBJU08tODg1OS01ICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV82PQkxNSwvKiBJU08tODg1OS02ICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV83PQkxNiwvKiBJU08tODg1OS03ICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV84PQkxNywvKiBJU08tODg1OS04ICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV85PQkxOCwvKiBJU08tODg1OS05ICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfMjAyMl9KUD0gIDE5LC8qIElTTy0yMDIyLUpQICovCisgICAgWE1MX0NIQVJfRU5DT0RJTkdfU0hJRlRfSklTPTIwLC8qIFNoaWZ0X0pJUyAqLworICAgIFhNTF9DSEFSX0VOQ09ESU5HX0VVQ19KUD0gICAyMSwvKiBFVUMtSlAgKi8KKyAgICBYTUxfQ0hBUl9FTkNPRElOR19BU0NJST0gICAgMjIgLyogcHVyZSBBU0NJSSAqLworfSB4bWxDaGFyRW5jb2Rpbmc7CisKKy8qKgorICogeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jOgorICogQG91dDogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgVVRGLTggcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0CisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnMgaW4gdGhlIG9yaWdpbmFsIGVuY29kaW5nCisgKiBAaW5sZW46ICB0aGUgbGVuZ3RoIG9mIEBpbgorICoKKyAqIFRha2UgYSBibG9jayBvZiBjaGFycyBpbiB0aGUgb3JpZ2luYWwgZW5jb2RpbmcgYW5kIHRyeSB0byBjb252ZXJ0CisgKiBpdCB0byBhbiBVVEYtOCBibG9jayBvZiBjaGFycyBvdXQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIC0xIGlmIGxhY2sgb2Ygc3BhY2UsIG9yIC0yCisgKiAgICAgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxlZC4KKyAqIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkCisgKiAgICAgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RpYWJsZS4KKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4KKyAqLwordHlwZWRlZiBpbnQgKCogeG1sQ2hhckVuY29kaW5nSW5wdXRGdW5jKSh1bnNpZ25lZCBjaGFyICpvdXQsIGludCAqb3V0bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbiwgaW50ICppbmxlbik7CisKKworLyoqCisgKiB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jOgorICogQG91dDogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0CisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnMKKyAqIEBpbmxlbjogIHRoZSBsZW5ndGggb2YgQGluCisgKgorICogVGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBhbm90aGVyCisgKiBlbmNvZGluZy4KKyAqIE5vdGU6IGEgZmlyc3QgY2FsbCBkZXNpZ25lZCB0byBwcm9kdWNlIGhlYWRpbmcgaW5mbyBpcyBjYWxsZWQgd2l0aAorICogaW4gPSBOVUxMLiBJZiBzdGF0ZWZ1bCB0aGlzIHNob3VsZCBhbHNvIGluaXRpYWxpemUgdGhlIGVuY29kZXIgc3RhdGUuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIC0xIGlmIGxhY2sgb2Ygc3BhY2UsIG9yIC0yCisgKiAgICAgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxlZC4KKyAqIFRoZSB2YWx1ZSBvZiBAaW5sZW4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkCisgKiAgICAgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBwb3NpdGl2ZSwgZWxzZSB1bnByZWRpY3RpYWJsZS4KKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBwcm9kdWNlZC4KKyAqLwordHlwZWRlZiBpbnQgKCogeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYykodW5zaWduZWQgY2hhciAqb3V0LCBpbnQgKm91dGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCBpbnQgKmlubGVuKTsKKworCisvKgorICogQmxvY2sgZGVmaW5pbmcgdGhlIGhhbmRsZXJzIGZvciBub24gVVRGLTggZW5jb2RpbmdzLgorICogSWYgaWNvbnYgaXMgc3VwcG9ydGVkLCB0aGVyZSBhcmUgdHdvIGV4dHJhIGZpZWxkcy4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sQ2hhckVuY29kaW5nSGFuZGxlciB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyOwordHlwZWRlZiB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICp4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyOworc3RydWN0IF94bWxDaGFyRW5jb2RpbmdIYW5kbGVyIHsKKyAgICBjaGFyICAgICAgICAgICAgICAgICAgICAgICAqbmFtZTsKKyAgICB4bWxDaGFyRW5jb2RpbmdJbnB1dEZ1bmMgICBpbnB1dDsKKyAgICB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jICBvdXRwdXQ7CisjaWZkZWYgTElCWE1MX0lDT05WX0VOQUJMRUQKKyAgICBpY29udl90ICAgICAgICAgICAgICAgICAgICBpY29udl9pbjsKKyAgICBpY29udl90ICAgICAgICAgICAgICAgICAgICBpY29udl9vdXQ7CisjZW5kaWYgLyogTElCWE1MX0lDT05WX0VOQUJMRUQgKi8KK307CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIEludGVyZmFjZXMgZm9yIGVuY29kaW5nIGhhbmRsZXJzLgorICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCXhtbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycwkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCXhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycwkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCXhtbFJlZ2lzdGVyQ2hhckVuY29kaW5nSGFuZGxlcgkoeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyKTsKK1hNTFBVQkZVTiB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIFhNTENBTEwKKwl4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyCSh4bWxDaGFyRW5jb2RpbmcgZW5jKTsKK1hNTFBVQkZVTiB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIFhNTENBTEwKKwl4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcgkoY29uc3QgY2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBYTUxDQUxMCisJeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcgkoY29uc3QgY2hhciAqbmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIAkJIHhtbENoYXJFbmNvZGluZ0lucHV0RnVuYyBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgCQkgeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyBvdXRwdXQpOworCisvKgorICogSW50ZXJmYWNlcyBmb3IgZW5jb2RpbmcgbmFtZXMgYW5kIGFsaWFzZXMuCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxBZGRFbmNvZGluZ0FsaWFzCQkoY29uc3QgY2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IGNoYXIgKmFsaWFzKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxEZWxFbmNvZGluZ0FsaWFzCQkoY29uc3QgY2hhciAqYWxpYXMpOworWE1MUFVCRlVOIGNvbnN0IGNoYXIgKiBYTUxDQUxMCisJeG1sR2V0RW5jb2RpbmdBbGlhcwkJKGNvbnN0IGNoYXIgKmFsaWFzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcwkodm9pZCk7CitYTUxQVUJGVU4geG1sQ2hhckVuY29kaW5nIFhNTENBTEwKKwl4bWxQYXJzZUNoYXJFbmNvZGluZwkJKGNvbnN0IGNoYXIgKm5hbWUpOworWE1MUFVCRlVOIGNvbnN0IGNoYXIgKiBYTUxDQUxMCisJeG1sR2V0Q2hhckVuY29kaW5nTmFtZQkJKHhtbENoYXJFbmNvZGluZyBlbmMpOworCisvKgorICogSW50ZXJmYWNlcyBkaXJlY3RseSB1c2VkIGJ5IHRoZSBwYXJzZXJzLgorICovCitYTUxQVUJGVU4geG1sQ2hhckVuY29kaW5nIFhNTENBTEwKKwl4bWxEZXRlY3RDaGFyRW5jb2RpbmcJCShjb25zdCB1bnNpZ25lZCBjaGFyICppbiwKKwkJCQkJIGludCBsZW4pOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sQ2hhckVuY091dEZ1bmMJCSh4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICpoYW5kbGVyLAorCQkJCQkgeG1sQnVmZmVyUHRyIG91dCwKKwkJCQkJIHhtbEJ1ZmZlclB0ciBpbik7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxDaGFyRW5jSW5GdW5jCQkoeG1sQ2hhckVuY29kaW5nSGFuZGxlciAqaGFuZGxlciwKKwkJCQkJIHhtbEJ1ZmZlclB0ciBvdXQsCisJCQkJCSB4bWxCdWZmZXJQdHIgaW4pOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJeG1sQ2hhckVuY0ZpcnN0TGluZQkJKHhtbENoYXJFbmNvZGluZ0hhbmRsZXIgKmhhbmRsZXIsCisJCQkJCSB4bWxCdWZmZXJQdHIgb3V0LAorCQkJCQkgeG1sQnVmZmVyUHRyIGluKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxDaGFyRW5jQ2xvc2VGdW5jCQkoeG1sQ2hhckVuY29kaW5nSGFuZGxlciAqaGFuZGxlcik7CisKKy8qCisgKiBFeHBvcnQgYSBmZXcgdXNlZnVsIGZ1bmN0aW9ucworICovCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJVVRGOFRvaXNvbGF0MQkJCSh1bnNpZ25lZCBjaGFyICpvdXQsCisJCQkJCSBpbnQgKm91dGxlbiwKKwkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLAorCQkJCQkgaW50ICppbmxlbik7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJaXNvbGF0MVRvVVRGOAkJCSh1bnNpZ25lZCBjaGFyICpvdXQsCisJCQkJCSBpbnQgKm91dGxlbiwKKwkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLAorCQkJCQkgaW50ICppbmxlbik7CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogX19YTUxfQ0hBUl9FTkNPRElOR19IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvZW50aXRpZXMuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvZW50aXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWZiOTdmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9lbnRpdGllcy5oCkBAIC0wLDAgKzEsMTUwIEBACisvKgorICogU3VtbWFyeTogaW50ZXJmYWNlIGZvciB0aGUgWE1MIGVudGl0aWVzIGhhbmRsaW5nCisgKiBEZXNjcmlwdGlvbjogdGhpcyBtb2R1bGUgcHJvdmlkZXMgc29tZSBvZiB0aGUgZW50aXR5IEFQSSBuZWVkZWQKKyAqICAgICAgICAgICAgICBmb3IgdGhlIHBhcnNlciBhbmQgYXBwbGljYXRpb25zLgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfRU5USVRJRVNfSF9fCisjZGVmaW5lIF9fWE1MX0VOVElUSUVTX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBUaGUgZGlmZmVyZW50IHZhbGlkIGVudGl0eSB0eXBlcy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFkgPSAxLAorICAgIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFkgPSAyLAorICAgIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWSA9IDMsCisgICAgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFkgPSA0LAorICAgIFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZID0gNSwKKyAgICBYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkgPSA2Cit9IHhtbEVudGl0eVR5cGU7CisKKy8qCisgKiBBbiB1bml0IG9mIHN0b3JhZ2UgZm9yIGFuIGVudGl0eSwgY29udGFpbnMgdGhlIHN0cmluZywgdGhlIHZhbHVlCisgKiBhbmQgdGhlIGxpbmtpbmQgZGF0YSBuZWVkZWQgZm9yIHRoZSBsaW5raW5nIGluIHRoZSBoYXNoIHRhYmxlLgorICovCisKK3N0cnVjdCBfeG1sRW50aXR5IHsKKyAgICB2b2lkICAgICAgICAgICAqX3ByaXZhdGU7CSAgICAgICAgLyogYXBwbGljYXRpb24gZGF0YSAqLworICAgIHhtbEVsZW1lbnRUeXBlICAgICAgICAgIHR5cGU7ICAgICAgIC8qIFhNTF9FTlRJVFlfREVDTCwgbXVzdCBiZSBzZWNvbmQgISAqLworICAgIGNvbnN0IHhtbENoYXIgICAgICAgICAgKm5hbWU7CS8qIEVudGl0eSBuYW1lICovCisgICAgc3RydWN0IF94bWxOb2RlICAgICpjaGlsZHJlbjsJLyogRmlyc3QgY2hpbGQgbGluayAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAgICAgICAgKmxhc3Q7CS8qIExhc3QgY2hpbGQgbGluayAqLworICAgIHN0cnVjdCBfeG1sRHRkICAgICAgICpwYXJlbnQ7CS8qIC0+IERURCAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAgICAgICAgKm5leHQ7CS8qIG5leHQgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAgICAgICAgKnByZXY7CS8qIHByZXZpb3VzIHNpYmxpbmcgbGluayAgKi8KKyAgICBzdHJ1Y3QgX3htbERvYyAgICAgICAgICAqZG9jOyAgICAgICAvKiB0aGUgY29udGFpbmluZyBkb2N1bWVudCAqLworCisgICAgeG1sQ2hhciAgICAgICAgICAgICAgICAqb3JpZzsJLyogY29udGVudCB3aXRob3V0IHJlZiBzdWJzdGl0dXRpb24gKi8KKyAgICB4bWxDaGFyICAgICAgICAgICAgICpjb250ZW50OwkvKiBjb250ZW50IG9yIG5kYXRhIGlmIHVucGFyc2VkICovCisgICAgaW50ICAgICAgICAgICAgICAgICAgIGxlbmd0aDsJLyogdGhlIGNvbnRlbnQgbGVuZ3RoICovCisgICAgeG1sRW50aXR5VHlwZSAgICAgICAgICBldHlwZTsJLyogVGhlIGVudGl0eSB0eXBlICovCisgICAgY29uc3QgeG1sQ2hhciAgICAqRXh0ZXJuYWxJRDsJLyogRXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgUFVCTElDICovCisgICAgY29uc3QgeG1sQ2hhciAgICAgICpTeXN0ZW1JRDsJLyogVVJJIGZvciBhIFNZU1RFTSBvciBQVUJMSUMgRW50aXR5ICovCisKKyAgICBzdHJ1Y3QgX3htbEVudGl0eSAgICAgKm5leHRlOwkvKiB1bnVzZWQgKi8KKyAgICBjb25zdCB4bWxDaGFyICAgICAgICAgICAqVVJJOwkvKiB0aGUgZnVsbCBVUkkgYXMgY29tcHV0ZWQgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgICAgIG93bmVyOwkvKiBkb2VzIHRoZSBlbnRpdHkgb3duIHRoZSBjaGlsZHJlbnMgKi8KKyAgICBpbnQJCQkgY2hlY2tlZDsJLyogd2FzIHRoZSBlbnRpdHkgY29udGVudCBjaGVja2VkICovCisJCQkJCS8qIHRoaXMgaXMgYWxzbyB1c2VkIHRvIGNvdW50IGVudGl0ZXMKKwkJCQkJICogcmVmZXJlbmNlcyBkb25lIGZyb20gdGhhdCBlbnRpdHkgKi8KK307CisKKy8qCisgKiBBbGwgZW50aXRpZXMgYXJlIHN0b3JlZCBpbiBhbiBoYXNoIHRhYmxlLgorICogVGhlcmUgaXMgMiBzZXBhcmF0ZSBoYXNoIHRhYmxlcyBmb3IgZ2xvYmFsIGFuZCBwYXJhbWV0ZXIgZW50aXRpZXMuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbEhhc2hUYWJsZSB4bWxFbnRpdGllc1RhYmxlOwordHlwZWRlZiB4bWxFbnRpdGllc1RhYmxlICp4bWxFbnRpdGllc1RhYmxlUHRyOworCisvKgorICogRXh0ZXJuYWwgZnVuY3Rpb25zOgorICovCisKKyNpZmRlZiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJeG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllcwkodm9pZCk7CisjZW5kaWYgLyogTElCWE1MX0xFR0FDWV9FTkFCTEVEICovCisKK1hNTFBVQkZVTiB4bWxFbnRpdHlQdHIgWE1MQ0FMTAorCQkJeG1sTmV3RW50aXR5CQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGludCB0eXBlLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqY29udGVudCk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwKKwkJCXhtbEFkZERvY0VudGl0eQkJKHhtbERvY1B0ciBkb2MsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJCSBpbnQgdHlwZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKlN5c3RlbUlELAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHhtbEVudGl0eVB0ciBYTUxDQUxMCisJCQl4bWxBZGREdGRFbnRpdHkJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgaW50IHR5cGUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpjb250ZW50KTsKK1hNTFBVQkZVTiB4bWxFbnRpdHlQdHIgWE1MQ0FMTAorCQkJeG1sR2V0UHJlZGVmaW5lZEVudGl0eQkoY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwKKwkJCXhtbEdldERvY0VudGl0eQkJKHhtbERvY1B0ciBkb2MsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwKKwkJCXhtbEdldER0ZEVudGl0eQkJKHhtbERvY1B0ciBkb2MsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sRW50aXR5UHRyIFhNTENBTEwKKwkJCXhtbEdldFBhcmFtZXRlckVudGl0eQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKKyNpZmRlZiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sRW5jb2RlRW50aXRpZXMJKHhtbERvY1B0ciBkb2MsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqaW5wdXQpOworI2VuZGlmIC8qIExJQlhNTF9MRUdBQ1lfRU5BQkxFRCAqLworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCisJCQl4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCh4bWxEb2NQdHIgZG9jLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmlucHV0KTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sRW5jb2RlU3BlY2lhbENoYXJzCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmlucHV0KTsKK1hNTFBVQkZVTiB4bWxFbnRpdGllc1RhYmxlUHRyIFhNTENBTEwKKwkJCXhtbENyZWF0ZUVudGl0aWVzVGFibGUJKHZvaWQpOworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKK1hNTFBVQkZVTiB4bWxFbnRpdGllc1RhYmxlUHRyIFhNTENBTEwKKwkJCXhtbENvcHlFbnRpdGllc1RhYmxlCSh4bWxFbnRpdGllc1RhYmxlUHRyIHRhYmxlKTsKKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxGcmVlRW50aXRpZXNUYWJsZQkoeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZSk7CisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxEdW1wRW50aXRpZXNUYWJsZQkoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJCSB4bWxFbnRpdGllc1RhYmxlUHRyIHRhYmxlKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJCXhtbER1bXBFbnRpdHlEZWNsCSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkJIHhtbEVudGl0eVB0ciBlbnQpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9MRUdBQ1lfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkJeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcyh2b2lkKTsKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KKworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjIGVuZGlmIC8qIF9fWE1MX0VOVElUSUVTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL2dsb2JhbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDY4OGUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9nbG9iYWxzLmgKQEAgLTAsMCArMSw1MDIgQEAKKy8qCisgKiBTdW1tYXJ5OiBpbnRlcmZhY2UgZm9yIGFsbCBnbG9iYWwgdmFyaWFibGVzIG9mIHRoZSBsaWJyYXJ5CisgKiBEZXNjcmlwdGlvbjogYWxsIHRoZSBnbG9iYWwgdmFyaWFibGVzIGFuZCB0aHJlYWQgaGFuZGxpbmcgZm9yCisgKiAgICAgICAgICAgICAgdGhvc2UgdmFyaWFibGVzIGlzIGhhbmRsZWQgYnkgdGhpcyBtb2R1bGUuCisgKgorICogVGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYnVpbGRfZ2xvYi5weQorICogYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uIGZpbGUgZ2xvYmFsLmRhdGEKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBHYXJ5IFBlbm5pbmd0b24gPEdhcnkuUGVubmluZ3RvbkB1ay5zdW4uY29tPiwgRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9HTE9CQUxTX0gKKyNkZWZpbmUgX19YTUxfR0xPQkFMU19ICisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvU0FYLmg+CisjaW5jbHVkZSA8bGlieG1sL1NBWDIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxJbml0R2xvYmFscyh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sQ2xlYW51cEdsb2JhbHModm9pZCk7CisKKy8qKgorICogeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmM6CisgKiBAVVJJOiB0aGUgVVJJIHRvIHJlYWQgZnJvbQorICogQGVuYzogdGhlIHJlcXVlc3RlZCBzb3VyY2UgZW5jb2RpbmcKKyAqCisgKiBTaWduYXR1cmUgZm9yIHRoZSBmdW5jdGlvbiBkb2luZyB0aGUgbG9va3VwIGZvciBhIHN1aXRhYmxlIGlucHV0IG1ldGhvZAorICogY29ycmVzcG9uZGluZyB0byBhbiBVUkkuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciBOVUxMIGlmIG5vCisgKiAgICAgICAgIG1ldGhvZCB3YXMgZm91bmQuCisgKi8KK3R5cGVkZWYgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgKCp4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYykgKGNvbnN0IGNoYXIgKlVSSSwgeG1sQ2hhckVuY29kaW5nIGVuYyk7CisKKy8qKgorICogeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jOgorICogQFVSSTogdGhlIFVSSSB0byB3cml0ZSB0bworICogQGVuYzogdGhlIHJlcXVlc3RlZCB0YXJnZXQgZW5jb2RpbmcKKyAqCisgKiBTaWduYXR1cmUgZm9yIHRoZSBmdW5jdGlvbiBkb2luZyB0aGUgbG9va3VwIGZvciBhIHN1aXRhYmxlIG91dHB1dCBtZXRob2QKKyAqIGNvcnJlc3BvbmRpbmcgdG8gYW4gVVJJLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyB4bWxPdXRwdXRCdWZmZXJQdHIgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIE5VTEwgaWYgbm8KKyAqICAgICAgICAgbWV0aG9kIHdhcyBmb3VuZC4KKyAqLwordHlwZWRlZiB4bWxPdXRwdXRCdWZmZXJQdHIgKCp4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMpIChjb25zdCBjaGFyICpVUkksIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2RlciwgaW50IGNvbXByZXNzaW9uKTsKKworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jCitYTUxDQUxMIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0ICh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBmdW5jKTsKK1hNTFBVQkZVTiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMKK1hNTENBTEwgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0ICh4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMgZnVuYyk7CisKKy8qCisgKiBFeHRlcm5hbGx5IGdsb2JhbCBzeW1ib2xzIHdoaWNoIG5lZWQgdG8gYmUgcHJvdGVjdGVkIGZvciBiYWNrd2FyZHMKKyAqIGNvbXBhdGliaWxpdHkgc3VwcG9ydC4KKyAqLworCisjdW5kZWYJZG9jYkRlZmF1bHRTQVhIYW5kbGVyCisjdW5kZWYJaHRtbERlZmF1bHRTQVhIYW5kbGVyCisjdW5kZWYJb2xkWE1MV0Rjb21wYXRpYmlsaXR5CisjdW5kZWYJeG1sQnVmZmVyQWxsb2NTY2hlbWUKKyN1bmRlZgl4bWxEZWZhdWx0QnVmZmVyU2l6ZQorI3VuZGVmCXhtbERlZmF1bHRTQVhIYW5kbGVyCisjdW5kZWYJeG1sRGVmYXVsdFNBWExvY2F0b3IKKyN1bmRlZgl4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUKKyN1bmRlZgl4bWxGcmVlCisjdW5kZWYJeG1sR2VuZXJpY0Vycm9yCisjdW5kZWYJeG1sU3RydWN0dXJlZEVycm9yCisjdW5kZWYJeG1sR2VuZXJpY0Vycm9yQ29udGV4dAorI3VuZGVmCXhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQKKyN1bmRlZgl4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZQorI3VuZGVmCXhtbEluZGVudFRyZWVPdXRwdXQKKyN1bmRlZiAgeG1sVHJlZUluZGVudFN0cmluZworI3VuZGVmCXhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUKKyN1bmRlZgl4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZQorI3VuZGVmCXhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUKKyN1bmRlZgl4bWxNYWxsb2MKKyN1bmRlZgl4bWxNYWxsb2NBdG9taWMKKyN1bmRlZgl4bWxNZW1TdHJkdXAKKyN1bmRlZgl4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzCisjdW5kZWYJeG1sUGFyc2VyVmVyc2lvbgorI3VuZGVmCXhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlCisjdW5kZWYJeG1sUmVhbGxvYworI3VuZGVmCXhtbFNhdmVOb0VtcHR5VGFncworI3VuZGVmCXhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZQorI3VuZGVmICB4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUKKyN1bmRlZiAgeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUKKyN1bmRlZiAgeG1sTGFzdEVycm9yCisjdW5kZWYgIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZQorI3VuZGVmICB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlCisKKy8qKgorICogeG1sUmVnaXN0ZXJOb2RlRnVuYzoKKyAqIEBub2RlOiB0aGUgY3VycmVudCBub2RlCisgKgorICogU2lnbmF0dXJlIGZvciB0aGUgcmVnaXN0cmF0aW9uIGNhbGxiYWNrIG9mIGEgY3JlYXRlZCBub2RlCisgKi8KK3R5cGVkZWYgdm9pZCAoKnhtbFJlZ2lzdGVyTm9kZUZ1bmMpICh4bWxOb2RlUHRyIG5vZGUpOworLyoqCisgKiB4bWxEZXJlZ2lzdGVyTm9kZUZ1bmM6CisgKiBAbm9kZTogdGhlIGN1cnJlbnQgbm9kZQorICoKKyAqIFNpZ25hdHVyZSBmb3IgdGhlIGRlcmVnaXN0cmF0aW9uIGNhbGxiYWNrIG9mIGEgZGlzY2FyZGVkIG5vZGUKKyAqLwordHlwZWRlZiB2b2lkICgqeG1sRGVyZWdpc3Rlck5vZGVGdW5jKSAoeG1sTm9kZVB0ciBub2RlKTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbEdsb2JhbFN0YXRlIHhtbEdsb2JhbFN0YXRlOwordHlwZWRlZiB4bWxHbG9iYWxTdGF0ZSAqeG1sR2xvYmFsU3RhdGVQdHI7CitzdHJ1Y3QgX3htbEdsb2JhbFN0YXRlCit7CisJY29uc3QgY2hhciAqeG1sUGFyc2VyVmVyc2lvbjsKKworCXhtbFNBWExvY2F0b3IgeG1sRGVmYXVsdFNBWExvY2F0b3I7CisJeG1sU0FYSGFuZGxlclYxIHhtbERlZmF1bHRTQVhIYW5kbGVyOworCXhtbFNBWEhhbmRsZXJWMSBkb2NiRGVmYXVsdFNBWEhhbmRsZXI7CisJeG1sU0FYSGFuZGxlclYxIGh0bWxEZWZhdWx0U0FYSGFuZGxlcjsKKworCXhtbEZyZWVGdW5jIHhtbEZyZWU7CisJeG1sTWFsbG9jRnVuYyB4bWxNYWxsb2M7CisJeG1sU3RyZHVwRnVuYyB4bWxNZW1TdHJkdXA7CisJeG1sUmVhbGxvY0Z1bmMgeG1sUmVhbGxvYzsKKworCXhtbEdlbmVyaWNFcnJvckZ1bmMgeG1sR2VuZXJpY0Vycm9yOworCXhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgeG1sU3RydWN0dXJlZEVycm9yOworCXZvaWQgKnhtbEdlbmVyaWNFcnJvckNvbnRleHQ7CisKKwlpbnQgb2xkWE1MV0Rjb21wYXRpYmlsaXR5OworCisJeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSB4bWxCdWZmZXJBbGxvY1NjaGVtZTsKKwlpbnQgeG1sRGVmYXVsdEJ1ZmZlclNpemU7CisKKwlpbnQgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlOworCWludCB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU7CisJaW50IHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlOworCWludCB4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlOworCWludCB4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZTsKKwlpbnQgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTsKKwlpbnQgeG1sUGFyc2VyRGVidWdFbnRpdGllczsKKwlpbnQgeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWU7CisKKwlpbnQgeG1sU2F2ZU5vRW1wdHlUYWdzOworCWludCB4bWxJbmRlbnRUcmVlT3V0cHV0OworCWNvbnN0IGNoYXIgKnhtbFRyZWVJbmRlbnRTdHJpbmc7CisKKwl4bWxSZWdpc3Rlck5vZGVGdW5jIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZTsKKwl4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMgeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU7CisKKwl4bWxNYWxsb2NGdW5jIHhtbE1hbGxvY0F0b21pYzsKKwl4bWxFcnJvciB4bWxMYXN0RXJyb3I7CisKKwl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWU7CisJeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWU7CisKKwl2b2lkICp4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0OworfTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNpbmNsdWRlIDxsaWJ4bWwvdGhyZWFkcy5oPgorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCXhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZSh4bWxHbG9iYWxTdGF0ZVB0ciBncyk7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sVGhyRGVmU2V0R2VuZXJpY0Vycm9yRnVuYyh2b2lkICpjdHgsIHhtbEdlbmVyaWNFcnJvckZ1bmMgaGFuZGxlcik7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYyh2b2lkICpjdHgsIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgaGFuZGxlcik7CisKK1hNTFBVQkZVTiB4bWxSZWdpc3Rlck5vZGVGdW5jIFhNTENBTEwgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdCh4bWxSZWdpc3Rlck5vZGVGdW5jIGZ1bmMpOworWE1MUFVCRlVOIHhtbFJlZ2lzdGVyTm9kZUZ1bmMgWE1MQ0FMTCB4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0KHhtbFJlZ2lzdGVyTm9kZUZ1bmMgZnVuYyk7CitYTUxQVUJGVU4geG1sRGVyZWdpc3Rlck5vZGVGdW5jIFhNTENBTEwgeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0KHhtbERlcmVnaXN0ZXJOb2RlRnVuYyBmdW5jKTsKK1hNTFBVQkZVTiB4bWxEZXJlZ2lzdGVyTm9kZUZ1bmMgWE1MQ0FMTCB4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQoeG1sRGVyZWdpc3Rlck5vZGVGdW5jIGZ1bmMpOworCitYTUxQVUJGVU4geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIFhNTENBTEwKKwl4bWxUaHJEZWZPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQoeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIGZ1bmMpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jIFhNTENBTEwKKwl4bWxUaHJEZWZQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdCh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBmdW5jKTsKKworLyoqIERPQ19ESVNBQkxFICovCisvKgorICogSW4gZ2VuZXJhbCB0aGUgbWVtb3J5IGFsbG9jYXRpb24gZW50cnkgcG9pbnRzIGFyZSBub3Qga2VwdAorICogdGhyZWFkIHNwZWNpZmljIGJ1dCB0aGlzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IExJQlhNTF9USFJFQURfQUxMT0NfRU5BQkxFRAorICogICAgLSB4bWxNYWxsb2MKKyAqICAgIC0geG1sTWFsbG9jQXRvbWljCisgKiAgICAtIHhtbFJlYWxsb2MKKyAqICAgIC0geG1sTWVtU3RyZHVwCisgKiAgICAtIHhtbEZyZWUKKyAqLworCisjaWZkZWYgTElCWE1MX1RIUkVBRF9BTExPQ19FTkFCTEVECisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECitYTUxQVUJGVU4gIHhtbE1hbGxvY0Z1bmMgKiBYTUxDQUxMIF9feG1sTWFsbG9jKHZvaWQpOworI2RlZmluZSB4bWxNYWxsb2MgXAorKCooX194bWxNYWxsb2MoKSkpCisjZWxzZQorWE1MUFVCVkFSIHhtbE1hbGxvY0Z1bmMgeG1sTWFsbG9jOworI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK1hNTFBVQkZVTiAgeG1sTWFsbG9jRnVuYyAqIFhNTENBTEwgX194bWxNYWxsb2NBdG9taWModm9pZCk7CisjZGVmaW5lIHhtbE1hbGxvY0F0b21pYyBcCisoKihfX3htbE1hbGxvY0F0b21pYygpKSkKKyNlbHNlCitYTUxQVUJWQVIgeG1sTWFsbG9jRnVuYyB4bWxNYWxsb2NBdG9taWM7CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorWE1MUFVCRlVOICB4bWxSZWFsbG9jRnVuYyAqIFhNTENBTEwgX194bWxSZWFsbG9jKHZvaWQpOworI2RlZmluZSB4bWxSZWFsbG9jIFwKKygqKF9feG1sUmVhbGxvYygpKSkKKyNlbHNlCitYTUxQVUJWQVIgeG1sUmVhbGxvY0Z1bmMgeG1sUmVhbGxvYzsKKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECitYTUxQVUJGVU4gIHhtbEZyZWVGdW5jICogWE1MQ0FMTCBfX3htbEZyZWUodm9pZCk7CisjZGVmaW5lIHhtbEZyZWUgXAorKCooX194bWxGcmVlKCkpKQorI2Vsc2UKK1hNTFBVQlZBUiB4bWxGcmVlRnVuYyB4bWxGcmVlOworI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK1hNTFBVQkZVTiAgeG1sU3RyZHVwRnVuYyAqIFhNTENBTEwgX194bWxNZW1TdHJkdXAodm9pZCk7CisjZGVmaW5lIHhtbE1lbVN0cmR1cCBcCisoKihfX3htbE1lbVN0cmR1cCgpKSkKKyNlbHNlCitYTUxQVUJWQVIgeG1sU3RyZHVwRnVuYyB4bWxNZW1TdHJkdXA7CisjZW5kaWYKKworI2Vsc2UgLyogIUxJQlhNTF9USFJFQURfQUxMT0NfRU5BQkxFRCAqLworWE1MUFVCVkFSIHhtbE1hbGxvY0Z1bmMgeG1sTWFsbG9jOworWE1MUFVCVkFSIHhtbE1hbGxvY0Z1bmMgeG1sTWFsbG9jQXRvbWljOworWE1MUFVCVkFSIHhtbFJlYWxsb2NGdW5jIHhtbFJlYWxsb2M7CitYTUxQVUJWQVIgeG1sRnJlZUZ1bmMgeG1sRnJlZTsKK1hNTFBVQlZBUiB4bWxTdHJkdXBGdW5jIHhtbE1lbVN0cmR1cDsKKyNlbmRpZiAvKiBMSUJYTUxfVEhSRUFEX0FMTE9DX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK1hNTFBVQkZVTiAgeG1sU0FYSGFuZGxlclYxICogWE1MQ0FMTCBfX2RvY2JEZWZhdWx0U0FYSGFuZGxlcih2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgZG9jYkRlZmF1bHRTQVhIYW5kbGVyIFwKKygqKF9fZG9jYkRlZmF1bHRTQVhIYW5kbGVyKCkpKQorI2Vsc2UKK1hNTFBVQlZBUiB4bWxTQVhIYW5kbGVyVjEgZG9jYkRlZmF1bHRTQVhIYW5kbGVyOworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK1hNTFBVQkZVTiB4bWxTQVhIYW5kbGVyVjEgKiBYTUxDQUxMIF9faHRtbERlZmF1bHRTQVhIYW5kbGVyKHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSBodG1sRGVmYXVsdFNBWEhhbmRsZXIgXAorKCooX19odG1sRGVmYXVsdFNBWEhhbmRsZXIoKSkpCisjZWxzZQorWE1MUFVCVkFSIHhtbFNBWEhhbmRsZXJWMSBodG1sRGVmYXVsdFNBWEhhbmRsZXI7CisjZW5kaWYKKyNlbmRpZgorCitYTUxQVUJGVU4geG1sRXJyb3IgKiBYTUxDQUxMIF9feG1sTGFzdEVycm9yKHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSB4bWxMYXN0RXJyb3IgXAorKCooX194bWxMYXN0RXJyb3IoKSkpCisjZWxzZQorWE1MUFVCVkFSIHhtbEVycm9yIHhtbExhc3RFcnJvcjsKKyNlbmRpZgorCisvKgorICogRXZlcnl0aGluZyBzdGFydGluZyBmcm9tIHRoZSBsaW5lIGJlbG93IGlzCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBidWlsZF9nbG9iLnB5LgorICogRG8gbm90IG1vZGlmeSB0aGUgcHJldmlvdXMgbGluZS4KKyAqLworCisKK1hNTFBVQkZVTiBpbnQgKiBYTUxDQUxMIF9fb2xkWE1MV0Rjb21wYXRpYmlsaXR5KHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSBvbGRYTUxXRGNvbXBhdGliaWxpdHkgXAorKCooX19vbGRYTUxXRGNvbXBhdGliaWxpdHkoKSkpCisjZWxzZQorWE1MUFVCVkFSIGludCBvbGRYTUxXRGNvbXBhdGliaWxpdHk7CisjZW5kaWYKKworWE1MUFVCRlVOIHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUgKiBYTUxDQUxMIF9feG1sQnVmZmVyQWxsb2NTY2hlbWUodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbEJ1ZmZlckFsbG9jU2NoZW1lIFwKKygqKF9feG1sQnVmZmVyQWxsb2NTY2hlbWUoKSkpCisjZWxzZQorWE1MUFVCVkFSIHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUgeG1sQnVmZmVyQWxsb2NTY2hlbWU7CisjZW5kaWYKK1hNTFBVQkZVTiB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIFhNTENBTEwgeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWUoeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSB2KTsKKworWE1MUFVCRlVOIGludCAqIFhNTENBTEwgX194bWxEZWZhdWx0QnVmZmVyU2l6ZSh2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sRGVmYXVsdEJ1ZmZlclNpemUgXAorKCooX194bWxEZWZhdWx0QnVmZmVyU2l6ZSgpKSkKKyNlbHNlCitYTUxQVUJWQVIgaW50IHhtbERlZmF1bHRCdWZmZXJTaXplOworI2VuZGlmCitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUoaW50IHYpOworCitYTUxQVUJGVU4geG1sU0FYSGFuZGxlclYxICogWE1MQ0FMTCBfX3htbERlZmF1bHRTQVhIYW5kbGVyKHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSB4bWxEZWZhdWx0U0FYSGFuZGxlciBcCisoKihfX3htbERlZmF1bHRTQVhIYW5kbGVyKCkpKQorI2Vsc2UKK1hNTFBVQlZBUiB4bWxTQVhIYW5kbGVyVjEgeG1sRGVmYXVsdFNBWEhhbmRsZXI7CisjZW5kaWYKKworWE1MUFVCRlVOIHhtbFNBWExvY2F0b3IgKiBYTUxDQUxMIF9feG1sRGVmYXVsdFNBWExvY2F0b3Iodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbERlZmF1bHRTQVhMb2NhdG9yIFwKKygqKF9feG1sRGVmYXVsdFNBWExvY2F0b3IoKSkpCisjZWxzZQorWE1MUFVCVkFSIHhtbFNBWExvY2F0b3IgeG1sRGVmYXVsdFNBWExvY2F0b3I7CisjZW5kaWYKKworWE1MUFVCRlVOIGludCAqIFhNTENBTEwgX194bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSBcCisoKihfX3htbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSgpKSkKKyNlbHNlCitYTUxQVUJWQVIgaW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTsKKyNlbmRpZgorWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZShpbnQgdik7CisKK1hNTFBVQkZVTiB4bWxHZW5lcmljRXJyb3JGdW5jICogWE1MQ0FMTCBfX3htbEdlbmVyaWNFcnJvcih2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sR2VuZXJpY0Vycm9yIFwKKygqKF9feG1sR2VuZXJpY0Vycm9yKCkpKQorI2Vsc2UKK1hNTFBVQlZBUiB4bWxHZW5lcmljRXJyb3JGdW5jIHhtbEdlbmVyaWNFcnJvcjsKKyNlbmRpZgorCitYTUxQVUJGVU4geG1sU3RydWN0dXJlZEVycm9yRnVuYyAqIFhNTENBTEwgX194bWxTdHJ1Y3R1cmVkRXJyb3Iodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbFN0cnVjdHVyZWRFcnJvciBcCisoKihfX3htbFN0cnVjdHVyZWRFcnJvcigpKSkKKyNlbHNlCitYTUxQVUJWQVIgeG1sU3RydWN0dXJlZEVycm9yRnVuYyB4bWxTdHJ1Y3R1cmVkRXJyb3I7CisjZW5kaWYKKworWE1MUFVCRlVOIHZvaWQgKiAqIFhNTENBTEwgX194bWxHZW5lcmljRXJyb3JDb250ZXh0KHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSB4bWxHZW5lcmljRXJyb3JDb250ZXh0IFwKKygqKF9feG1sR2VuZXJpY0Vycm9yQ29udGV4dCgpKSkKKyNlbHNlCitYTUxQVUJWQVIgdm9pZCAqIHhtbEdlbmVyaWNFcnJvckNvbnRleHQ7CisjZW5kaWYKKworWE1MUFVCRlVOIHZvaWQgKiAqIFhNTENBTEwgX194bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0KHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSB4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0IFwKKygqKF9feG1sU3RydWN0dXJlZEVycm9yQ29udGV4dCgpKSkKKyNlbHNlCitYTUxQVUJWQVIgdm9pZCAqIHhtbFN0cnVjdHVyZWRFcnJvckNvbnRleHQ7CisjZW5kaWYKKworWE1MUFVCRlVOIGludCAqIFhNTENBTEwgX194bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSh2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgXAorKCooX194bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSgpKSkKKyNlbHNlCitYTUxQVUJWQVIgaW50IHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlOworI2VuZGlmCitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUoaW50IHYpOworCitYTUxQVUJGVU4gaW50ICogWE1MQ0FMTCBfX3htbEluZGVudFRyZWVPdXRwdXQodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbEluZGVudFRyZWVPdXRwdXQgXAorKCooX194bWxJbmRlbnRUcmVlT3V0cHV0KCkpKQorI2Vsc2UKK1hNTFBVQlZBUiBpbnQgeG1sSW5kZW50VHJlZU91dHB1dDsKKyNlbmRpZgorWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRockRlZkluZGVudFRyZWVPdXRwdXQoaW50IHYpOworCitYTUxQVUJGVU4gY29uc3QgY2hhciAqICogWE1MQ0FMTCBfX3htbFRyZWVJbmRlbnRTdHJpbmcodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbFRyZWVJbmRlbnRTdHJpbmcgXAorKCooX194bWxUcmVlSW5kZW50U3RyaW5nKCkpKQorI2Vsc2UKK1hNTFBVQlZBUiBjb25zdCBjaGFyICogeG1sVHJlZUluZGVudFN0cmluZzsKKyNlbmRpZgorWE1MUFVCRlVOIGNvbnN0IGNoYXIgKiBYTUxDQUxMIHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmcoY29uc3QgY2hhciAqIHYpOworCitYTUxQVUJGVU4gaW50ICogWE1MQ0FMTCBfX3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUgXAorKCooX194bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlKCkpKQorI2Vsc2UKK1hNTFBVQlZBUiBpbnQgeG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZTsKKyNlbmRpZgorWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWUoaW50IHYpOworCitYTUxQVUJGVU4gaW50ICogWE1MQ0FMTCBfX3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlKHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSB4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSBcCisoKihfX3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlKCkpKQorI2Vsc2UKK1hNTFBVQlZBUiBpbnQgeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWU7CisjZW5kaWYKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUaHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZShpbnQgdik7CisKK1hNTFBVQkZVTiBpbnQgKiBYTUxDQUxMIF9feG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSh2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSBcCisoKihfX3htbExvYWRFeHREdGREZWZhdWx0VmFsdWUoKSkpCisjZWxzZQorWE1MUFVCVkFSIGludCB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlOworI2VuZGlmCitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGhyRGVmTG9hZEV4dER0ZERlZmF1bHRWYWx1ZShpbnQgdik7CisKK1hNTFBVQkZVTiBpbnQgKiBYTUxDQUxMIF9feG1sUGFyc2VyRGVidWdFbnRpdGllcyh2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sUGFyc2VyRGVidWdFbnRpdGllcyBcCisoKihfX3htbFBhcnNlckRlYnVnRW50aXRpZXMoKSkpCisjZWxzZQorWE1MUFVCVkFSIGludCB4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzOworI2VuZGlmCitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGhyRGVmUGFyc2VyRGVidWdFbnRpdGllcyhpbnQgdik7CisKK1hNTFBVQkZVTiBjb25zdCBjaGFyICogKiBYTUxDQUxMIF9feG1sUGFyc2VyVmVyc2lvbih2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sUGFyc2VyVmVyc2lvbiBcCisoKihfX3htbFBhcnNlclZlcnNpb24oKSkpCisjZWxzZQorWE1MUFVCVkFSIGNvbnN0IGNoYXIgKiB4bWxQYXJzZXJWZXJzaW9uOworI2VuZGlmCisKK1hNTFBVQkZVTiBpbnQgKiBYTUxDQUxMIF9feG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlIFwKKygqKF9feG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUoKSkpCisjZWxzZQorWE1MUFVCVkFSIGludCB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZTsKKyNlbmRpZgorWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlKGludCB2KTsKKworWE1MUFVCRlVOIGludCAqIFhNTENBTEwgX194bWxTYXZlTm9FbXB0eVRhZ3Modm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbFNhdmVOb0VtcHR5VGFncyBcCisoKihfX3htbFNhdmVOb0VtcHR5VGFncygpKSkKKyNlbHNlCitYTUxQVUJWQVIgaW50IHhtbFNhdmVOb0VtcHR5VGFnczsKKyNlbmRpZgorWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRockRlZlNhdmVOb0VtcHR5VGFncyhpbnQgdik7CisKK1hNTFBVQkZVTiBpbnQgKiBYTUxDQUxMIF9feG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlKHZvaWQpOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorI2RlZmluZSB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgXAorKCooX194bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUoKSkpCisjZWxzZQorWE1MUFVCVkFSIGludCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWU7CisjZW5kaWYKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUoaW50IHYpOworCitYTUxQVUJGVU4geG1sUmVnaXN0ZXJOb2RlRnVuYyAqIFhNTENBTEwgX194bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSBcCisoKihfX3htbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSgpKSkKKyNlbHNlCitYTUxQVUJWQVIgeG1sUmVnaXN0ZXJOb2RlRnVuYyB4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWU7CisjZW5kaWYKKworWE1MUFVCRlVOIHhtbERlcmVnaXN0ZXJOb2RlRnVuYyAqIFhNTENBTEwgX194bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSh2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUgXAorKCooX194bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSgpKSkKKyNlbHNlCitYTUxQVUJWQVIgeG1sRGVyZWdpc3Rlck5vZGVGdW5jIHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlOworI2VuZGlmCisKK1hNTFBVQkZVTiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyAqIFhNTENBTEwgX194bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUodm9pZCk7CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZGVmaW5lIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSBcCisoKihfX3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSgpKSkKKyNlbHNlCitYTUxQVUJWQVIgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlOworI2VuZGlmCisKK1hNTFBVQkZVTiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMgKiBYTUxDQUxMIF9feG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSh2b2lkKTsKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNkZWZpbmUgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSBcCisoKihfX3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUoKSkpCisjZWxzZQorWE1MUFVCVkFSIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlOworI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hNTF9HTE9CQUxTX0ggKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvaGFzaC5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9oYXNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZlNGJlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvaGFzaC5oCkBAIC0wLDAgKzEsMjMzIEBACisvKgorICogU3VtbWFyeTogQ2hhaW5lZCBoYXNoIHRhYmxlcworICogRGVzY3JpcHRpb246IFRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIGhhc2ggdGFibGUgc3VwcG9ydCB1c2VkIGluIAorICogCQl2YXJpb3VzIHBsYWNlcyBpbiB0aGUgbGlicmFyeS4KKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBCam9ybiBSZWVzZSA8Ympvcm4ucmVlc2VAc3lzdGVtYXRpYy5kaz4KKyAqLworCisjaWZuZGVmIF9fWE1MX0hBU0hfSF9fCisjZGVmaW5lIF9fWE1MX0hBU0hfSF9fCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIFRoZSBoYXNoIHRhYmxlLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sSGFzaFRhYmxlIHhtbEhhc2hUYWJsZTsKK3R5cGVkZWYgeG1sSGFzaFRhYmxlICp4bWxIYXNoVGFibGVQdHI7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGljdC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBSZWNlbnQgdmVyc2lvbiBvZiBnY2MgcHJvZHVjZSBhIHdhcm5pbmcgd2hlbiBhIGZ1bmN0aW9uIHBvaW50ZXIgaXMgYXNzaWduZWQKKyAqIHRvIGFuIG9iamVjdCBwb2ludGVyLCBvciB2aWNlIHZlcnNhLiAgVGhlIGZvbGxvd2luZyBtYWNybyBpcyBhIGRpcnR5IGhhY2sKKyAqIHRvIGFsbG93IHN1cHByZXNzaW9uIG9mIHRoZSB3YXJuaW5nLiAgSWYgeW91ciBhcmNoaXRlY3R1cmUgaGFzIGZ1bmN0aW9uCisgKiBwb2ludGVycyB3aGljaCBhcmUgYSBkaWZmZXJlbnQgc2l6ZSB0aGFuIGEgdm9pZCBwb2ludGVyLCB0aGVyZSBtYXkgYmUgc29tZQorICogc2VyaW91cyB0cm91YmxlIHdpdGhpbiB0aGUgbGlicmFyeS4KKyAqLworLyoqCisgKiBYTUxfQ0FTVF9GUFRSOgorICogQGZwdHI6ICBwb2ludGVyIHRvIGEgZnVuY3Rpb24KKyAqCisgKiBNYWNybyB0byBkbyBhIGNhc3RpbmcgZnJvbSBhbiBvYmplY3QgcG9pbnRlciB0byBhCisgKiBmdW5jdGlvbiBwb2ludGVyIHdpdGhvdXQgZW5jb3VudGVyaW5nIGEgd2FybmluZyBmcm9tCisgKiBnY2MKKyAqCisgKiAjZGVmaW5lIFhNTF9DQVNUX0ZQVFIoZnB0cikgKCoodm9pZCAqKikoJmZwdHIpKQorICogVGhpcyBtYWNybyB2aW9sYXRlZCBJU08gQyBhbGlhc2luZyBydWxlcyAoZ2NjNCBvbiBzMzkwIGJyb2tlKQorICogc28gaXQgaXMgZGlzYWJsZWQgbm93CisgKi8KKworI2RlZmluZSBYTUxfQ0FTVF9GUFRSKGZwdHIpIGZwdHIKKworCisvKgorICogZnVuY3Rpb24gdHlwZXM6CisgKi8KKy8qKgorICogeG1sSGFzaERlYWxsb2NhdG9yOgorICogQHBheWxvYWQ6ICB0aGUgZGF0YSBpbiB0aGUgaGFzaAorICogQG5hbWU6ICB0aGUgbmFtZSBhc3NvY2lhdGVkCisgKgorICogQ2FsbGJhY2sgdG8gZnJlZSBkYXRhIGZyb20gYSBoYXNoLgorICovCit0eXBlZGVmIHZvaWQgKCp4bWxIYXNoRGVhbGxvY2F0b3IpKHZvaWQgKnBheWxvYWQsIHhtbENoYXIgKm5hbWUpOworLyoqCisgKiB4bWxIYXNoQ29waWVyOgorICogQHBheWxvYWQ6ICB0aGUgZGF0YSBpbiB0aGUgaGFzaAorICogQG5hbWU6ICB0aGUgbmFtZSBhc3NvY2lhdGVkCisgKgorICogQ2FsbGJhY2sgdG8gY29weSBkYXRhIGZyb20gYSBoYXNoLgorICoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSBkYXRhIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLwordHlwZWRlZiB2b2lkICooKnhtbEhhc2hDb3BpZXIpKHZvaWQgKnBheWxvYWQsIHhtbENoYXIgKm5hbWUpOworLyoqCisgKiB4bWxIYXNoU2Nhbm5lcjoKKyAqIEBwYXlsb2FkOiAgdGhlIGRhdGEgaW4gdGhlIGhhc2gKKyAqIEBkYXRhOiAgZXh0cmEgc2Nhbm5uZXIgZGF0YQorICogQG5hbWU6ICB0aGUgbmFtZSBhc3NvY2lhdGVkCisgKgorICogQ2FsbGJhY2sgd2hlbiBzY2FubmluZyBkYXRhIGluIGEgaGFzaCB3aXRoIHRoZSBzaW1wbGUgc2Nhbm5lci4KKyAqLwordHlwZWRlZiB2b2lkICgqeG1sSGFzaFNjYW5uZXIpKHZvaWQgKnBheWxvYWQsIHZvaWQgKmRhdGEsIHhtbENoYXIgKm5hbWUpOworLyoqCisgKiB4bWxIYXNoU2Nhbm5lckZ1bGw6CisgKiBAcGF5bG9hZDogIHRoZSBkYXRhIGluIHRoZSBoYXNoCisgKiBAZGF0YTogIGV4dHJhIHNjYW5ubmVyIGRhdGEKKyAqIEBuYW1lOiAgdGhlIG5hbWUgYXNzb2NpYXRlZAorICogQG5hbWUyOiAgdGhlIHNlY29uZCBuYW1lIGFzc29jaWF0ZWQKKyAqIEBuYW1lMzogIHRoZSB0aGlyZCBuYW1lIGFzc29jaWF0ZWQKKyAqCisgKiBDYWxsYmFjayB3aGVuIHNjYW5uaW5nIGRhdGEgaW4gYSBoYXNoIHdpdGggdGhlIGZ1bGwgc2Nhbm5lci4KKyAqLwordHlwZWRlZiB2b2lkICgqeG1sSGFzaFNjYW5uZXJGdWxsKSh2b2lkICpwYXlsb2FkLCB2b2lkICpkYXRhLAorCQkJCSAgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKm5hbWUyLAorCQkJCSAgIGNvbnN0IHhtbENoYXIgKm5hbWUzKTsKKworLyoKKyAqIENvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yLgorICovCitYTUxQVUJGVU4geG1sSGFzaFRhYmxlUHRyIFhNTENBTEwKKwkJCXhtbEhhc2hDcmVhdGUJKGludCBzaXplKTsKK1hNTFBVQkZVTiB4bWxIYXNoVGFibGVQdHIgWE1MQ0FMTAorCQkJeG1sSGFzaENyZWF0ZURpY3QoaW50IHNpemUsCisJCQkJCSB4bWxEaWN0UHRyIGRpY3QpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sSGFzaEZyZWUJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJCQkJIHhtbEhhc2hEZWFsbG9jYXRvciBmKTsKKworLyoKKyAqIEFkZCBhIG5ldyBlbnRyeSB0byB0aGUgaGFzaCB0YWJsZS4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxIYXNoQWRkRW50cnkJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyZGF0YSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCXhtbEhhc2hVcGRhdGVFbnRyeSh4bWxIYXNoVGFibGVQdHIgdGFibGUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlcmRhdGEsCisJCQkJCSB4bWxIYXNoRGVhbGxvY2F0b3IgZik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCSAgICAKKwkJCXhtbEhhc2hBZGRFbnRyeTIoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUyLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlcmRhdGEpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxIYXNoVXBkYXRlRW50cnkyKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lMiwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJkYXRhLAorCQkJCQkgeG1sSGFzaERlYWxsb2NhdG9yIGYpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxIYXNoQWRkRW50cnkzKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lMiwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUzLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlcmRhdGEpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxIYXNoVXBkYXRlRW50cnkzKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lMiwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUzLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlcmRhdGEsCisJCQkJCSB4bWxIYXNoRGVhbGxvY2F0b3IgZik7CisKKy8qCisgKiBSZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgaGFzaCB0YWJsZS4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMICAgICAKKwkJCXhtbEhhc2hSZW1vdmVFbnRyeSh4bWxIYXNoVGFibGVQdHIgdGFibGUsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxIYXNoRGVhbGxvY2F0b3IgZik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgICAgIAorCQkJeG1sSGFzaFJlbW92ZUVudHJ5Mih4bWxIYXNoVGFibGVQdHIgdGFibGUsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZTIsIHhtbEhhc2hEZWFsbG9jYXRvciBmKTsKK1hNTFBVQkZVTiBpbnQgIFhNTENBTEwgICAgCisJCQl4bWxIYXNoUmVtb3ZlRW50cnkzKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lMiwgY29uc3QgeG1sQ2hhciAqbmFtZTMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sSGFzaERlYWxsb2NhdG9yIGYpOworCisvKgorICogUmV0cmlldmUgdGhlIHVzZXJkYXRhLgorICovCitYTUxQVUJGVU4gdm9pZCAqIFhNTENBTEwJCQkKKwkJCXhtbEhhc2hMb29rdXAJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQkJCisJCQl4bWxIYXNoTG9va3VwMgkoeG1sSGFzaFRhYmxlUHRyIHRhYmxlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUyKTsKK1hNTFBVQkZVTiB2b2lkICogWE1MQ0FMTAkJCQorCQkJeG1sSGFzaExvb2t1cDMJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lMiwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUzKTsKK1hNTFBVQkZVTiB2b2lkICogWE1MQ0FMTAkJCQorCQkJeG1sSGFzaFFMb29rdXAJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQkJCisJCQl4bWxIYXNoUUxvb2t1cDIJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lMiwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnByZWZpeDIpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQkJCisJCQl4bWxIYXNoUUxvb2t1cDMJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lMiwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnByZWZpeDIsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lMywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnByZWZpeDMpOworCisvKgorICogSGVscGVycy4KKyAqLworWE1MUFVCRlVOIHhtbEhhc2hUYWJsZVB0ciBYTUxDQUxMCQkKKwkJCXhtbEhhc2hDb3B5CSh4bWxIYXNoVGFibGVQdHIgdGFibGUsCisJCQkJCSB4bWxIYXNoQ29waWVyIGYpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxIYXNoU2l6ZQkoeG1sSGFzaFRhYmxlUHRyIHRhYmxlKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbEhhc2hTY2FuCSh4bWxIYXNoVGFibGVQdHIgdGFibGUsCisJCQkJCSB4bWxIYXNoU2Nhbm5lciBmLAorCQkJCQkgdm9pZCAqZGF0YSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxIYXNoU2NhbjMJKHhtbEhhc2hUYWJsZVB0ciB0YWJsZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lMiwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUzLAorCQkJCQkgeG1sSGFzaFNjYW5uZXIgZiwKKwkJCQkJIHZvaWQgKmRhdGEpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sSGFzaFNjYW5GdWxsCSh4bWxIYXNoVGFibGVQdHIgdGFibGUsCisJCQkJCSB4bWxIYXNoU2Nhbm5lckZ1bGwgZiwKKwkJCQkJIHZvaWQgKmRhdGEpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sSGFzaFNjYW5GdWxsMyh4bWxIYXNoVGFibGVQdHIgdGFibGUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZTIsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lMywKKwkJCQkJIHhtbEhhc2hTY2FubmVyRnVsbCBmLAorCQkJCQkgdm9pZCAqZGF0YSk7CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8qICEgX19YTUxfSEFTSF9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvbGlzdC5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9saXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ4MzQ4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvbGlzdC5oCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICogU3VtbWFyeTogbGlzdHMgaW50ZXJmYWNlcworICogRGVzY3JpcHRpb246IHRoaXMgbW9kdWxlIGltcGxlbWVudCB0aGUgbGlzdCBzdXBwb3J0IHVzZWQgaW4gCisgKiB2YXJpb3VzIHBsYWNlIGluIHRoZSBsaWJyYXJ5LgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IEdhcnkgUGVubmluZ3RvbiA8R2FyeS5QZW5uaW5ndG9uQHVrLnN1bi5jb20+CisgKi8KKworI2lmbmRlZiBfX1hNTF9MSU5LX0lOQ0xVREVfXworI2RlZmluZSBfX1hNTF9MSU5LX0lOQ0xVREVfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHN0cnVjdCBfeG1sTGluayB4bWxMaW5rOwordHlwZWRlZiB4bWxMaW5rICp4bWxMaW5rUHRyOworCit0eXBlZGVmIHN0cnVjdCBfeG1sTGlzdCB4bWxMaXN0OwordHlwZWRlZiB4bWxMaXN0ICp4bWxMaXN0UHRyOworCisvKioKKyAqIHhtbExpc3REZWFsbG9jYXRvcjoKKyAqIEBsazogIHRoZSBkYXRhIHRvIGRlYWxsb2NhdGUKKyAqCisgKiBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgZGF0YSBmcm9tIGEgbGlzdC4KKyAqLwordHlwZWRlZiB2b2lkICgqeG1sTGlzdERlYWxsb2NhdG9yKSAoeG1sTGlua1B0ciBsayk7CisvKioKKyAqIHhtbExpc3REYXRhQ29tcGFyZToKKyAqIEBkYXRhMDogdGhlIGZpcnN0IGRhdGEKKyAqIEBkYXRhMTogdGhlIHNlY29uZCBkYXRhCisgKgorICogQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCB0byBjb21wYXJlIDIgZGF0YS4KKyAqCisgKiBSZXR1cm5zIDAgaXMgZXF1YWxpdHksIC0xIG9yIDEgb3RoZXJ3aXNlIGRlcGVuZGluZyBvbiB0aGUgb3JkZXJpbmcuCisgKi8KK3R5cGVkZWYgaW50ICAoKnhtbExpc3REYXRhQ29tcGFyZSkgKGNvbnN0IHZvaWQgKmRhdGEwLCBjb25zdCB2b2lkICpkYXRhMSk7CisvKioKKyAqIHhtbExpc3RXYWxrZXI6CisgKiBAZGF0YTogdGhlIGRhdGEgZm91bmQgaW4gdGhlIGxpc3QKKyAqIEB1c2VyOiBleHRyYSB1c2VyIHByb3ZpZGVkIGRhdGEgdG8gdGhlIHdhbGtlcgorICoKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIHVzZWQgd2hlbiB3YWxraW5nIGEgbGlzdCB3aXRoIHhtbExpc3RXYWxrKCkuCisgKgorICogUmV0dXJucyAwIHRvIHN0b3Agd2Fsa2luZyB0aGUgbGlzdCwgMSBvdGhlcndpc2UuCisgKi8KK3R5cGVkZWYgaW50ICgqeG1sTGlzdFdhbGtlcikgKGNvbnN0IHZvaWQgKmRhdGEsIGNvbnN0IHZvaWQgKnVzZXIpOworCisvKiBDcmVhdGlvbi9EZWxldGlvbiAqLworWE1MUFVCRlVOIHhtbExpc3RQdHIgWE1MQ0FMTAorCQl4bWxMaXN0Q3JlYXRlCQkoeG1sTGlzdERlYWxsb2NhdG9yIGRlYWxsb2NhdG9yLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbExpc3REYXRhQ29tcGFyZSBjb21wYXJlKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxMaXN0RGVsZXRlCQkoeG1sTGlzdFB0ciBsKTsKKworLyogQmFzaWMgT3BlcmF0b3JzICovCitYTUxQVUJGVU4gdm9pZCAqIFhNTENBTEwJCQorCQl4bWxMaXN0U2VhcmNoCQkoeG1sTGlzdFB0ciBsLAorCQkJCQkgdm9pZCAqZGF0YSk7CitYTUxQVUJGVU4gdm9pZCAqIFhNTENBTEwJCQorCQl4bWxMaXN0UmV2ZXJzZVNlYXJjaAkoeG1sTGlzdFB0ciBsLAorCQkJCQkgdm9pZCAqZGF0YSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxMaXN0SW5zZXJ0CQkoeG1sTGlzdFB0ciBsLAorCQkJCQkgdm9pZCAqZGF0YSkgOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sTGlzdEFwcGVuZAkJKHhtbExpc3RQdHIgbCwKKwkJCQkJIHZvaWQgKmRhdGEpIDsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbExpc3RSZW1vdmVGaXJzdAkoeG1sTGlzdFB0ciBsLAorCQkJCQkgdm9pZCAqZGF0YSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxMaXN0UmVtb3ZlTGFzdAkoeG1sTGlzdFB0ciBsLAorCQkJCQkgdm9pZCAqZGF0YSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxMaXN0UmVtb3ZlQWxsCSh4bWxMaXN0UHRyIGwsCisJCQkJCSB2b2lkICpkYXRhKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxMaXN0Q2xlYXIJCSh4bWxMaXN0UHRyIGwpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sTGlzdEVtcHR5CQkoeG1sTGlzdFB0ciBsKTsKK1hNTFBVQkZVTiB4bWxMaW5rUHRyIFhNTENBTEwJCisJCXhtbExpc3RGcm9udAkJKHhtbExpc3RQdHIgbCk7CitYTUxQVUJGVU4geG1sTGlua1B0ciBYTUxDQUxMCQorCQl4bWxMaXN0RW5kCQkoeG1sTGlzdFB0ciBsKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbExpc3RTaXplCQkoeG1sTGlzdFB0ciBsKTsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbExpc3RQb3BGcm9udAkJKHhtbExpc3RQdHIgbCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sTGlzdFBvcEJhY2sJCSh4bWxMaXN0UHRyIGwpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sTGlzdFB1c2hGcm9udAkoeG1sTGlzdFB0ciBsLAorCQkJCQkgdm9pZCAqZGF0YSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxMaXN0UHVzaEJhY2sJCSh4bWxMaXN0UHRyIGwsCisJCQkJCSB2b2lkICpkYXRhKTsKKworLyogQWR2YW5jZWQgT3BlcmF0b3JzICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sTGlzdFJldmVyc2UJCSh4bWxMaXN0UHRyIGwpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbExpc3RTb3J0CQkoeG1sTGlzdFB0ciBsKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxMaXN0V2FsawkJKHhtbExpc3RQdHIgbCwKKwkJCQkJIHhtbExpc3RXYWxrZXIgd2Fsa2VyLAorCQkJCQkgY29uc3Qgdm9pZCAqdXNlcik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sTGlzdFJldmVyc2VXYWxrCSh4bWxMaXN0UHRyIGwsCisJCQkJCSB4bWxMaXN0V2Fsa2VyIHdhbGtlciwKKwkJCQkJIGNvbnN0IHZvaWQgKnVzZXIpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbExpc3RNZXJnZQkJKHhtbExpc3RQdHIgbDEsCisJCQkJCSB4bWxMaXN0UHRyIGwyKTsKK1hNTFBVQkZVTiB4bWxMaXN0UHRyIFhNTENBTEwJCisJCXhtbExpc3REdXAJCShjb25zdCB4bWxMaXN0UHRyIG9sZCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxMaXN0Q29weQkJKHhtbExpc3RQdHIgY3VyLAorCQkJCQkgY29uc3QgeG1sTGlzdFB0ciBvbGQpOworLyogTGluayBvcGVyYXRvcnMgKi8KK1hNTFBVQkZVTiB2b2lkICogWE1MQ0FMTCAgICAgICAgICAKKwkJeG1sTGlua0dldERhdGEgICAgICAgICAgKHhtbExpbmtQdHIgbGspOworCisvKiB4bWxMaXN0VW5pcXVlKCkgKi8KKy8qIHhtbExpc3RTd2FwICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hNTF9MSU5LX0lOQ0xVREVfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9uYW5vZnRwLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL25hbm9mdHAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2MyOGEwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9uYW5vZnRwLmgKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBTdW1tYXJ5OiBtaW5pbWFsIEZUUCBpbXBsZW1lbnRhdGlvbgorICogRGVzY3JpcHRpb246IG1pbmltYWwgRlRQIGltcGxlbWVudGF0aW9uIGFsbG93aW5nIHRvIGZldGNoIHJlc291cmNlcworICogICAgICAgICAgICAgIGxpa2UgZXh0ZXJuYWwgc3Vic2V0LgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisgCisjaWZuZGVmIF9fTkFOT19GVFBfSF9fCisjZGVmaW5lIF9fTkFOT19GVFBfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBmdHBMaXN0Q2FsbGJhY2s6IAorICogQHVzZXJEYXRhOiAgdXNlciBwcm92aWRlZCBkYXRhIGZvciB0aGUgY2FsbGJhY2sKKyAqIEBmaWxlbmFtZTogIHRoZSBmaWxlIG5hbWUgKGluY2x1ZGluZyAiLT4iIHdoZW4gbGlua3MgYXJlIHNob3duKQorICogQGF0dHJpYjogIHRoZSBhdHRyaWJ1dGUgc3RyaW5nCisgKiBAb3duZXI6ICB0aGUgb3duZXIgc3RyaW5nCisgKiBAZ3JvdXA6ICB0aGUgZ3JvdXAgc3RyaW5nCisgKiBAc2l6ZTogIHRoZSBmaWxlIHNpemUKKyAqIEBsaW5rczogIHRoZSBsaW5rIGNvdW50CisgKiBAeWVhcjogIHRoZSB5ZWFyCisgKiBAbW9udGg6ICB0aGUgbW9udGgKKyAqIEBkYXk6ICB0aGUgZGF5CisgKiBAaG91cjogIHRoZSBob3VyCisgKiBAbWludXRlOiAgdGhlIG1pbnV0ZQorICoKKyAqIEEgY2FsbGJhY2sgZm9yIHRoZSB4bWxOYW5vRlRQTGlzdCBjb21tYW5kLgorICogTm90ZSB0aGF0IG9ubHkgb25lIG9mIHllYXIgYW5kIGRheTptaW51dGUgYXJlIHNwZWNpZmllZC4KKyAqLwordHlwZWRlZiB2b2lkICgqZnRwTGlzdENhbGxiYWNrKSAodm9pZCAqdXNlckRhdGEsCisJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICphdHRyaWIsCisJICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm93bmVyLCBjb25zdCBjaGFyICpncm91cCwKKwkJCQkgdW5zaWduZWQgbG9uZyBzaXplLCBpbnQgbGlua3MsIGludCB5ZWFyLAorCQkJCSBjb25zdCBjaGFyICptb250aCwgaW50IGRheSwgaW50IGhvdXIsCisJCQkJIGludCBtaW51dGUpOworLyoqCisgKiBmdHBEYXRhQ2FsbGJhY2s6IAorICogQHVzZXJEYXRhOiB0aGUgdXNlciBwcm92aWRlZCBjb250ZXh0CisgKiBAZGF0YTogdGhlIGRhdGEgcmVjZWl2ZWQKKyAqIEBsZW46IGl0cyBzaXplIGluIGJ5dGVzCisgKgorICogQSBjYWxsYmFjayBmb3IgdGhlIHhtbE5hbm9GVFBHZXQgY29tbWFuZC4KKyAqLwordHlwZWRlZiB2b2lkICgqZnRwRGF0YUNhbGxiYWNrKSAodm9pZCAqdXNlckRhdGEsCisJCQkJIGNvbnN0IGNoYXIgKmRhdGEsCisJCQkJIGludCBsZW4pOworCisvKgorICogSW5pdAorICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJeG1sTmFub0ZUUEluaXQJCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sTmFub0ZUUENsZWFudXAJKHZvaWQpOworCisvKgorICogQ3JlYXRpbmcvZnJlZWluZyBjb250ZXh0cy4KKyAqLworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQorCXhtbE5hbm9GVFBOZXdDdHh0CShjb25zdCBjaGFyICpVUkwpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQRnJlZUN0eHQJKHZvaWQgKiBjdHgpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMIAkKKwl4bWxOYW5vRlRQQ29ubmVjdFRvCShjb25zdCBjaGFyICpzZXJ2ZXIsCisJCQkJIGludCBwb3J0KTsKKy8qCisgKiBPcGVuaW5nL2Nsb3Npbmcgc2Vzc2lvbiBjb25uZWN0aW9ucy4KKyAqLworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMIAkKKwl4bWxOYW5vRlRQT3BlbgkJKGNvbnN0IGNoYXIgKlVSTCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0ZUUENvbm5lY3QJKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0ZUUENsb3NlCQkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQUXVpdAkJKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCXhtbE5hbm9GVFBTY2FuUHJveHkJKGNvbnN0IGNoYXIgKlVSTCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCXhtbE5hbm9GVFBQcm94eQkJKGNvbnN0IGNoYXIgKmhvc3QsCisJCQkJIGludCBwb3J0LAorCQkJCSBjb25zdCBjaGFyICp1c2VyLAorCQkJCSBjb25zdCBjaGFyICpwYXNzd2QsCisJCQkJIGludCB0eXBlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQVXBkYXRlVVJMCSh2b2lkICpjdHgsCisJCQkJIGNvbnN0IGNoYXIgKlVSTCk7CisKKy8qCisgKiBSYXRoZXIgaW50ZXJuYWwgY29tbWFuZHMuCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQR2V0UmVzcG9uc2UJKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UJKHZvaWQgKmN0eCk7CisKKy8qCisgKiBDRC9ESVIvR0VUIGhhbmRsZXJzLgorICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0ZUUEN3ZAkJKHZvaWQgKmN0eCwKKwkJCQkgY29uc3QgY2hhciAqZGlyZWN0b3J5KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQRGVsZQkJKHZvaWQgKmN0eCwKKwkJCQkgY29uc3QgY2hhciAqZmlsZSk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbgkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0ZUUExpc3QJCSh2b2lkICpjdHgsCisJCQkJIGZ0cExpc3RDYWxsYmFjayBjYWxsYmFjaywKKwkJCQkgdm9pZCAqdXNlckRhdGEsCisJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQR2V0U29ja2V0CSh2b2lkICpjdHgsCisJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxOYW5vRlRQR2V0CQkodm9pZCAqY3R4LAorCQkJCSBmdHBEYXRhQ2FsbGJhY2sgY2FsbGJhY2ssCisJCQkJIHZvaWQgKnVzZXJEYXRhLAorCQkJCSBjb25zdCBjaGFyICpmaWxlbmFtZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0ZUUFJlYWQJCSh2b2lkICpjdHgsCisJCQkJIHZvaWQgKmRlc3QsCisJCQkJIGludCBsZW4pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8qIExJQlhNTF9GVFBfRU5BQkxFRCAqLworI2VuZGlmIC8qIF9fTkFOT19GVFBfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL25hbm9odHRwLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL25hbm9odHRwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ4YWMyNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvbmFub2h0dHAuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogU3VtbWFyeTogbWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uCisgKiBEZXNjcmlwdGlvbjogbWluaW1hbCBIVFRQIGltcGxlbWVudGF0aW9uIGFsbG93aW5nIHRvIGZldGNoIHJlc291cmNlcworICogICAgICAgICAgICAgIGxpa2UgZXh0ZXJuYWwgc3Vic2V0LgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisgCisjaWZuZGVmIF9fTkFOT19IVFRQX0hfXworI2RlZmluZSBfX05BTk9fSFRUUF9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwl4bWxOYW5vSFRUUEluaXQJCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sTmFub0hUVFBDbGVhbnVwCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sTmFub0hUVFBTY2FuUHJveHkJKGNvbnN0IGNoYXIgKlVSTCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0hUVFBGZXRjaAkoY29uc3QgY2hhciAqVVJMLAorCQkJCSBjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkgY2hhciAqKmNvbnRlbnRUeXBlKTsKK1hNTFBVQkZVTiB2b2lkICogWE1MQ0FMTAkKKwl4bWxOYW5vSFRUUE1ldGhvZAkoY29uc3QgY2hhciAqVVJMLAorCQkJCSBjb25zdCBjaGFyICptZXRob2QsCisJCQkJIGNvbnN0IGNoYXIgKmlucHV0LAorCQkJCSBjaGFyICoqY29udGVudFR5cGUsCisJCQkJIGNvbnN0IGNoYXIgKmhlYWRlcnMsCisJCQkJIGludCAgIGlsZW4pOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQorCXhtbE5hbm9IVFRQTWV0aG9kUmVkaXIJKGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkgY29uc3QgY2hhciAqbWV0aG9kLAorCQkJCSBjb25zdCBjaGFyICppbnB1dCwKKwkJCQkgY2hhciAqKmNvbnRlbnRUeXBlLAorCQkJCSBjaGFyICoqcmVkaXIsCisJCQkJIGNvbnN0IGNoYXIgKmhlYWRlcnMsCisJCQkJIGludCAgIGlsZW4pOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQorCXhtbE5hbm9IVFRQT3BlbgkJKGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkgY2hhciAqKmNvbnRlbnRUeXBlKTsKK1hNTFBVQkZVTiB2b2lkICogWE1MQ0FMTAkKKwl4bWxOYW5vSFRUUE9wZW5SZWRpcgkoY29uc3QgY2hhciAqVVJMLAorCQkJCSBjaGFyICoqY29udGVudFR5cGUsCisJCQkJIGNoYXIgKipyZWRpcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0hUVFBSZXR1cm5Db2RlCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGNvbnN0IGNoYXIgKiBYTUxDQUxMIAorCXhtbE5hbm9IVFRQQXV0aEhlYWRlcgkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBjb25zdCBjaGFyICogWE1MQ0FMTAorCXhtbE5hbm9IVFRQUmVkaXIJKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwl4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgoIHZvaWQgKiBjdHggKTsKK1hNTFBVQkZVTiBjb25zdCBjaGFyICogWE1MQ0FMTAorCXhtbE5hbm9IVFRQRW5jb2RpbmcJKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gY29uc3QgY2hhciAqIFhNTENBTEwKKwl4bWxOYW5vSFRUUE1pbWVUeXBlCSh2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQorCXhtbE5hbm9IVFRQUmVhZAkJKHZvaWQgKmN0eCwKKwkJCQkgdm9pZCAqZGVzdCwKKwkJCQkgaW50IGxlbik7CisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sTmFub0hUVFBTYXZlCQkodm9pZCAqY3R4dCwKKwkJCQkgY29uc3QgY2hhciAqZmlsZW5hbWUpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxOYW5vSFRUUENsb3NlCSh2b2lkICpjdHgpOworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIExJQlhNTF9IVFRQX0VOQUJMRUQgKi8KKyNlbmRpZiAvKiBfX05BTk9fSFRUUF9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvcGFyc2VyLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3BhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNzljNDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3BhcnNlci5oCkBAIC0wLDAgKzEsMTIzNSBAQAorLyoKKyAqIFN1bW1hcnk6IHRoZSBjb3JlIHBhcnNlciBtb2R1bGUKKyAqIERlc2NyaXB0aW9uOiBJbnRlcmZhY2VzLCBjb25zdGFudHMgYW5kIHR5cGVzIHJlbGF0ZWQgdG8gdGhlIFhNTCBwYXJzZXIKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fWE1MX1BBUlNFUl9IX18KKyNkZWZpbmUgX19YTUxfUEFSU0VSX0hfXworCisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL2RpY3QuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvaGFzaC5oPgorI2luY2x1ZGUgPGxpYnhtbC92YWxpZC5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxzdHJpbmcuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIFhNTF9ERUZBVUxUX1ZFUlNJT046CisgKgorICogVGhlIGRlZmF1bHQgdmVyc2lvbiBvZiBYTUwgdXNlZDogMS4wCisgKi8KKyNkZWZpbmUgWE1MX0RFRkFVTFRfVkVSU0lPTgkiMS4wIgorCisvKioKKyAqIHhtbFBhcnNlcklucHV0OgorICoKKyAqIEFuIHhtbFBhcnNlcklucHV0IGlzIGFuIGlucHV0IGZsb3cgZm9yIHRoZSBYTUwgcHJvY2Vzc29yLgorICogRWFjaCBlbnRpdHkgcGFyc2VkIGlzIGFzc29jaWF0ZWQgYW4geG1sUGFyc2VySW5wdXQgKGV4Y2VwdCB0aGUKKyAqIGZldyBwcmVkZWZpbmVkIG9uZXMpLiBUaGlzIGlzIHRoZSBjYXNlIGJvdGggZm9yIGludGVybmFsIGVudGl0aWVzCisgKiAtIGluIHdoaWNoIGNhc2UgdGhlIGZsb3cgaXMgYWxyZWFkeSBjb21wbGV0ZWx5IGluIG1lbW9yeSAtIG9yCisgKiBleHRlcm5hbCBlbnRpdGllcyAtIGluIHdoaWNoIGNhc2Ugd2UgdXNlIHRoZSBidWYgc3RydWN0dXJlIGZvcgorICogcHJvZ3Jlc3NpdmUgcmVhZGluZyBhbmQgSTE4TiBjb252ZXJzaW9ucyB0byB0aGUgaW50ZXJuYWwgVVRGLTggZm9ybWF0LgorICovCisKKy8qKgorICogeG1sUGFyc2VySW5wdXREZWFsbG9jYXRlOgorICogQHN0cjogIHRoZSBzdHJpbmcgdG8gZGVhbGxvY2F0ZQorICoKKyAqIENhbGxiYWNrIGZvciBmcmVlaW5nIHNvbWUgcGFyc2VyIGlucHV0IGFsbG9jYXRpb25zLgorICovCit0eXBlZGVmIHZvaWQgKCogeG1sUGFyc2VySW5wdXREZWFsbG9jYXRlKSh4bWxDaGFyICpzdHIpOworCitzdHJ1Y3QgX3htbFBhcnNlcklucHV0IHsKKyAgICAvKiBJbnB1dCBidWZmZXIgKi8KKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBidWY7ICAgICAgLyogVVRGLTggZW5jb2RlZCBidWZmZXIgKi8KKworICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lOyAgICAgICAgICAgICAvKiBUaGUgZmlsZSBhbmFseXplZCwgaWYgYW55ICovCisgICAgY29uc3QgY2hhciAqZGlyZWN0b3J5OyAgICAgICAgICAgIC8qIHRoZSBkaXJlY3RvcnkvYmFzZSBvZiB0aGUgZmlsZSAqLworICAgIGNvbnN0IHhtbENoYXIgKmJhc2U7ICAgICAgICAgICAgICAvKiBCYXNlIG9mIHRoZSBhcnJheSB0byBwYXJzZSAqLworICAgIGNvbnN0IHhtbENoYXIgKmN1cjsgICAgICAgICAgICAgICAvKiBDdXJyZW50IGNoYXIgYmVpbmcgcGFyc2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqZW5kOyAgICAgICAgICAgICAgIC8qIGVuZCBvZiB0aGUgYXJyYXkgdG8gcGFyc2UgKi8KKyAgICBpbnQgbGVuZ3RoOyAgICAgICAgICAgICAgICAgICAgICAgLyogbGVuZ3RoIGlmIGtub3duICovCisgICAgaW50IGxpbmU7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEN1cnJlbnQgbGluZSAqLworICAgIGludCBjb2w7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDdXJyZW50IGNvbHVtbiAqLworICAgIC8qCisgICAgICogTk9URTogY29uc3VtZWQgaXMgb25seSB0ZXN0ZWQgZm9yIGVxdWFsaXR5IGluIHRoZSBwYXJzZXIgY29kZSwKKyAgICAgKiAgICAgICBzbyBldmVuIGlmIHRoZXJlIGlzIGFuIG92ZXJmbG93IHRoaXMgc2hvdWxkIG5vdCBnaXZlIHRyb3VibGVzCisgICAgICogICAgICAgZm9yIHBhcnNpbmcgdmVyeSBsYXJnZSBpbnN0YW5jZXMuCisgICAgICovCisgICAgdW5zaWduZWQgbG9uZyBjb25zdW1lZDsgICAgICAgICAgIC8qIEhvdyBtYW55IHhtbENoYXJzIGFscmVhZHkgY29uc3VtZWQgKi8KKyAgICB4bWxQYXJzZXJJbnB1dERlYWxsb2NhdGUgZnJlZTsgICAgLyogZnVuY3Rpb24gdG8gZGVhbGxvY2F0ZSB0aGUgYmFzZSAqLworICAgIGNvbnN0IHhtbENoYXIgKmVuY29kaW5nOyAgICAgICAgICAvKiB0aGUgZW5jb2Rpbmcgc3RyaW5nIGZvciBlbnRpdHkgKi8KKyAgICBjb25zdCB4bWxDaGFyICp2ZXJzaW9uOyAgICAgICAgICAgLyogdGhlIHZlcnNpb24gc3RyaW5nIGZvciBlbnRpdHkgKi8KKyAgICBpbnQgc3RhbmRhbG9uZTsgICAgICAgICAgICAgICAgICAgLyogV2FzIHRoYXQgZW50aXR5IG1hcmtlZCBzdGFuZGFsb25lICovCisgICAgaW50IGlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFuIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZW50aXR5ICovCit9OworCisvKioKKyAqIHhtbFBhcnNlck5vZGVJbmZvOgorICoKKyAqIFRoZSBwYXJzZXIgY2FuIGJlIGFza2VkIHRvIGNvbGxlY3QgTm9kZSBpbmZvcm1hdGlvbnMsIGkuZS4gYXQgd2hhdAorICogcGxhY2UgaW4gdGhlIGZpbGUgdGhleSB3ZXJlIGRldGVjdGVkLiAKKyAqIE5PVEU6IFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQgYW5kIG5vdCB2ZXJ5IHdlbGwgdGVzdGVkLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sUGFyc2VyTm9kZUluZm8geG1sUGFyc2VyTm9kZUluZm87Cit0eXBlZGVmIHhtbFBhcnNlck5vZGVJbmZvICp4bWxQYXJzZXJOb2RlSW5mb1B0cjsKKworc3RydWN0IF94bWxQYXJzZXJOb2RlSW5mbyB7CisgIGNvbnN0IHN0cnVjdCBfeG1sTm9kZSogbm9kZTsKKyAgLyogUG9zaXRpb24gJiBsaW5lICMgdGhhdCB0ZXh0IHRoYXQgY3JlYXRlZCB0aGUgbm9kZSBiZWdpbnMgJiBlbmRzIG9uICovCisgIHVuc2lnbmVkIGxvbmcgYmVnaW5fcG9zOworICB1bnNpZ25lZCBsb25nIGJlZ2luX2xpbmU7CisgIHVuc2lnbmVkIGxvbmcgZW5kX3BvczsKKyAgdW5zaWduZWQgbG9uZyBlbmRfbGluZTsKK307CisKK3R5cGVkZWYgc3RydWN0IF94bWxQYXJzZXJOb2RlSW5mb1NlcSB4bWxQYXJzZXJOb2RlSW5mb1NlcTsKK3R5cGVkZWYgeG1sUGFyc2VyTm9kZUluZm9TZXEgKnhtbFBhcnNlck5vZGVJbmZvU2VxUHRyOworc3RydWN0IF94bWxQYXJzZXJOb2RlSW5mb1NlcSB7CisgIHVuc2lnbmVkIGxvbmcgbWF4aW11bTsKKyAgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgIHhtbFBhcnNlck5vZGVJbmZvKiBidWZmZXI7Cit9OworCisvKioKKyAqIHhtbFBhcnNlcklucHV0U3RhdGU6CisgKgorICogVGhlIHBhcnNlciBpcyBub3cgd29ya2luZyBhbHNvIGFzIGEgc3RhdGUgYmFzZWQgcGFyc2VyLgorICogVGhlIHJlY3Vyc2l2ZSBvbmUgdXNlIHRoZSBzdGF0ZSBpbmZvIGZvciBlbnRpdGllcyBwcm9jZXNzaW5nLgorICovCit0eXBlZGVmIGVudW0geworICAgIFhNTF9QQVJTRVJfRU9GID0gLTEsCS8qIG5vdGhpbmcgaXMgdG8gYmUgcGFyc2VkICovCisgICAgWE1MX1BBUlNFUl9TVEFSVCA9IDAsCS8qIG5vdGhpbmcgaGFzIGJlZW4gcGFyc2VkICovCisgICAgWE1MX1BBUlNFUl9NSVNDLAkJLyogTWlzYyogYmVmb3JlIGludCBzdWJzZXQgKi8KKyAgICBYTUxfUEFSU0VSX1BJLAkJLyogV2l0aGluIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiAqLworICAgIFhNTF9QQVJTRVJfRFRELAkJLyogd2l0aGluIHNvbWUgRFREIGNvbnRlbnQgKi8KKyAgICBYTUxfUEFSU0VSX1BST0xPRywJCS8qIE1pc2MqIGFmdGVyIGludGVybmFsIHN1YnNldCAqLworICAgIFhNTF9QQVJTRVJfQ09NTUVOVCwJCS8qIHdpdGhpbiBhIGNvbW1lbnQgKi8KKyAgICBYTUxfUEFSU0VSX1NUQVJUX1RBRywJLyogd2l0aGluIGEgc3RhcnQgdGFnICovCisgICAgWE1MX1BBUlNFUl9DT05URU5ULAkJLyogd2l0aGluIHRoZSBjb250ZW50ICovCisgICAgWE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OLAkvKiB3aXRoaW4gYSBDREFUQSBzZWN0aW9uICovCisgICAgWE1MX1BBUlNFUl9FTkRfVEFHLAkJLyogd2l0aGluIGEgY2xvc2luZyB0YWcgKi8KKyAgICBYTUxfUEFSU0VSX0VOVElUWV9ERUNMLAkvKiB3aXRoaW4gYW4gZW50aXR5IGRlY2xhcmF0aW9uICovCisgICAgWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUUsCS8qIHdpdGhpbiBhbiBlbnRpdHkgdmFsdWUgaW4gYSBkZWNsICovCisgICAgWE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUUsCS8qIHdpdGhpbiBhbiBhdHRyaWJ1dGUgdmFsdWUgKi8KKyAgICBYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMLAkvKiB3aXRoaW4gYSBTWVNURU0gdmFsdWUgKi8KKyAgICBYTUxfUEFSU0VSX0VQSUxPRywgCQkvKiB0aGUgTWlzYyogYWZ0ZXIgdGhlIGxhc3QgZW5kIHRhZyAqLworICAgIFhNTF9QQVJTRVJfSUdOT1JFLAkJLyogd2l0aGluIGFuIElHTk9SRUQgc2VjdGlvbiAqLworICAgIFhNTF9QQVJTRVJfUFVCTElDX0xJVEVSQUwgCS8qIHdpdGhpbiBhIFBVQkxJQyB2YWx1ZSAqLworfSB4bWxQYXJzZXJJbnB1dFN0YXRlOworCisvKioKKyAqIFhNTF9ERVRFQ1RfSURTOgorICoKKyAqIEJpdCBpbiB0aGUgbG9hZHN1YnNldCBjb250ZXh0IGZpZWxkIHRvIHRlbGwgdG8gZG8gSUQvUkVGcyBsb29rdXBzLgorICogVXNlIGl0IHRvIGluaXRpYWxpemUgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZS4KKyAqLworI2RlZmluZSBYTUxfREVURUNUX0lEUwkJMgorCisvKioKKyAqIFhNTF9DT01QTEVURV9BVFRSUzoKKyAqCisgKiBCaXQgaW4gdGhlIGxvYWRzdWJzZXQgY29udGV4dCBmaWVsZCB0byB0ZWxsIHRvIGRvIGNvbXBsZXRlIHRoZQorICogZWxlbWVudHMgYXR0cmlidXRlcyBsaXN0cyB3aXRoIHRoZSBvbmVzIGRlZmF1bHRlZCBmcm9tIHRoZSBEVERzLgorICogVXNlIGl0IHRvIGluaXRpYWxpemUgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZS4KKyAqLworI2RlZmluZSBYTUxfQ09NUExFVEVfQVRUUlMJNAorCisvKioKKyAqIFhNTF9TS0lQX0lEUzoKKyAqCisgKiBCaXQgaW4gdGhlIGxvYWRzdWJzZXQgY29udGV4dCBmaWVsZCB0byB0ZWxsIHRvIG5vdCBkbyBJRC9SRUZzIHJlZ2lzdHJhdGlvbi4KKyAqIFVzZWQgdG8gaW5pdGlhbGl6ZSB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIGluIHNvbWUgc3BlY2lhbCBjYXNlcy4KKyAqLworI2RlZmluZSBYTUxfU0tJUF9JRFMJCTgKKworLyoqCisgKiB4bWxQYXJzZXJNb2RlOgorICoKKyAqIEEgcGFyc2VyIGNhbiBvcGVyYXRlIGluIHZhcmlvdXMgbW9kZXMKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfUEFSU0VfVU5LTk9XTiA9IDAsCisgICAgWE1MX1BBUlNFX0RPTSA9IDEsCisgICAgWE1MX1BBUlNFX1NBWCA9IDIsCisgICAgWE1MX1BBUlNFX1BVU0hfRE9NID0gMywKKyAgICBYTUxfUEFSU0VfUFVTSF9TQVggPSA0LAorICAgIFhNTF9QQVJTRV9SRUFERVIgPSA1Cit9IHhtbFBhcnNlck1vZGU7CisKKy8qKgorICogeG1sUGFyc2VyQ3R4dDoKKyAqCisgKiBUaGUgcGFyc2VyIGNvbnRleHQuCisgKiBOT1RFIFRoaXMgZG9lc24ndCBjb21wbGV0ZWx5IGRlZmluZSB0aGUgcGFyc2VyIHN0YXRlLCB0aGUgKGN1cnJlbnQgPykKKyAqICAgICAgZGVzaWduIG9mIHRoZSBwYXJzZXIgdXNlcyByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbHMgc2luY2UgdGhpcyBhbGxvdworICogICAgICBhbmQgZWFzeSBtYXBwaW5nIGZyb20gdGhlIHByb2R1Y3Rpb24gcnVsZXMgb2YgdGhlIHNwZWNpZmljYXRpb24KKyAqICAgICAgdG8gdGhlIGFjdHVhbCBjb2RlLiBUaGUgZHJhd2JhY2sgaXMgdGhhdCB0aGUgYWN0dWFsIGZ1bmN0aW9uIGNhbGwKKyAqICAgICAgYWxzbyByZWZsZWN0IHRoZSBwYXJzZXIgc3RhdGUuIEhvd2V2ZXIgbW9zdCBvZiB0aGUgcGFyc2luZyByb3V0aW5lcworICogICAgICB0YWtlcyBhcyB0aGUgb25seSBhcmd1bWVudCB0aGUgcGFyc2VyIGNvbnRleHQgcG9pbnRlciwgc28gbWlncmF0aW5nCisgKiAgICAgIHRvIGEgc3RhdGUgYmFzZWQgcGFyc2VyIGZvciBwcm9ncmVzc2l2ZSBwYXJzaW5nIHNob3VsZG4ndCBiZSB0b28gaGFyZC4KKyAqLworc3RydWN0IF94bWxQYXJzZXJDdHh0IHsKKyAgICBzdHJ1Y3QgX3htbFNBWEhhbmRsZXIgKnNheDsgICAgICAgLyogVGhlIFNBWCBoYW5kbGVyICovCisgICAgdm9pZCAgICAgICAgICAgICp1c2VyRGF0YTsgICAgICAgIC8qIEZvciBTQVggaW50ZXJmYWNlIG9ubHksIHVzZWQgYnkgRE9NIGJ1aWxkICovCisgICAgeG1sRG9jUHRyICAgICAgICAgICBteURvYzsgICAgICAgIC8qIHRoZSBkb2N1bWVudCBiZWluZyBidWlsdCAqLworICAgIGludCAgICAgICAgICAgIHdlbGxGb3JtZWQ7ICAgICAgICAvKiBpcyB0aGUgZG9jdW1lbnQgd2VsbCBmb3JtZWQgKi8KKyAgICBpbnQgICAgICAgcmVwbGFjZUVudGl0aWVzOyAgICAgICAgLyogc2hhbGwgd2UgcmVwbGFjZSBlbnRpdGllcyA/ICovCisgICAgY29uc3QgeG1sQ2hhciAgICAqdmVyc2lvbjsgICAgICAgIC8qIHRoZSBYTUwgdmVyc2lvbiBzdHJpbmcgKi8KKyAgICBjb25zdCB4bWxDaGFyICAgKmVuY29kaW5nOyAgICAgICAgLyogdGhlIGRlY2xhcmVkIGVuY29kaW5nLCBpZiBhbnkgKi8KKyAgICBpbnQgICAgICAgICAgICBzdGFuZGFsb25lOyAgICAgICAgLyogc3RhbmRhbG9uZSBkb2N1bWVudCAqLworICAgIGludCAgICAgICAgICAgICAgICAgIGh0bWw7ICAgICAgICAvKiBhbiBIVE1MKDEpL0RvY2Jvb2soMikgZG9jdW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMyBpcyBIVE1MIGFmdGVyIDxoZWFkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxMCBpcyBIVE1MIGFmdGVyIDxib2R5PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworICAgIC8qIElucHV0IHN0cmVhbSBzdGFjayAqLworICAgIHhtbFBhcnNlcklucHV0UHRyICBpbnB1dDsgICAgICAgICAvKiBDdXJyZW50IGlucHV0IHN0cmVhbSAqLworICAgIGludCAgICAgICAgICAgICAgICBpbnB1dE5yOyAgICAgICAvKiBOdW1iZXIgb2YgY3VycmVudCBpbnB1dCBzdHJlYW1zICovCisgICAgaW50ICAgICAgICAgICAgICAgIGlucHV0TWF4OyAgICAgIC8qIE1heCBudW1iZXIgb2YgaW5wdXQgc3RyZWFtcyAqLworICAgIHhtbFBhcnNlcklucHV0UHRyICppbnB1dFRhYjsgICAgICAvKiBzdGFjayBvZiBpbnB1dHMgKi8KKworICAgIC8qIE5vZGUgYW5hbHlzaXMgc3RhY2sgb25seSB1c2VkIGZvciBET00gYnVpbGRpbmcgKi8KKyAgICB4bWxOb2RlUHRyICAgICAgICAgbm9kZTsgICAgICAgICAgLyogQ3VycmVudCBwYXJzZWQgTm9kZSAqLworICAgIGludCAgICAgICAgICAgICAgICBub2RlTnI7ICAgICAgICAvKiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjayAqLworICAgIGludCAgICAgICAgICAgICAgICBub2RlTWF4OyAgICAgICAvKiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sgKi8KKyAgICB4bWxOb2RlUHRyICAgICAgICAqbm9kZVRhYjsgICAgICAgLyogYXJyYXkgb2Ygbm9kZXMgKi8KKworICAgIGludCByZWNvcmRfaW5mbzsgICAgICAgICAgICAgICAgICAvKiBXaGV0aGVyIG5vZGUgaW5mbyBzaG91bGQgYmUga2VwdCAqLworICAgIHhtbFBhcnNlck5vZGVJbmZvU2VxIG5vZGVfc2VxOyAgICAvKiBpbmZvIGFib3V0IGVhY2ggbm9kZSBwYXJzZWQgKi8KKworICAgIGludCBlcnJObzsgICAgICAgICAgICAgICAgICAgICAgICAvKiBlcnJvciBjb2RlICovCisKKyAgICBpbnQgICAgIGhhc0V4dGVybmFsU3Vic2V0OyAgICAgICAgLyogcmVmZXJlbmNlIGFuZCBleHRlcm5hbCBzdWJzZXQgKi8KKyAgICBpbnQgICAgICAgICAgICAgaGFzUEVyZWZzOyAgICAgICAgLyogdGhlIGludGVybmFsIHN1YnNldCBoYXMgUEUgcmVmcyAqLworICAgIGludCAgICAgICAgICAgICAgZXh0ZXJuYWw7ICAgICAgICAvKiBhcmUgd2UgcGFyc2luZyBhbiBleHRlcm5hbCBlbnRpdHkgKi8KKworICAgIGludCAgICAgICAgICAgICAgICAgdmFsaWQ7ICAgICAgICAvKiBpcyB0aGUgZG9jdW1lbnQgdmFsaWQgKi8KKyAgICBpbnQgICAgICAgICAgICAgIHZhbGlkYXRlOyAgICAgICAgLyogc2hhbGwgd2UgdHJ5IHRvIHZhbGlkYXRlID8gKi8KKyAgICB4bWxWYWxpZEN0eHQgICAgICAgIHZjdHh0OyAgICAgICAgLyogVGhlIHZhbGlkaXR5IGNvbnRleHQgKi8KKworICAgIHhtbFBhcnNlcklucHV0U3RhdGUgaW5zdGF0ZTsgICAgICAvKiBjdXJyZW50IHR5cGUgb2YgaW5wdXQgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgIHRva2VuOyAgICAgICAgLyogbmV4dCBjaGFyIGxvb2stYWhlYWQgKi8gICAgCisKKyAgICBjaGFyICAgICAgICAgICAqZGlyZWN0b3J5OyAgICAgICAgLyogdGhlIGRhdGEgZGlyZWN0b3J5ICovCisKKyAgICAvKiBOb2RlIG5hbWUgc3RhY2sgKi8KKyAgICBjb25zdCB4bWxDaGFyICAgICAqbmFtZTsgICAgICAgICAgLyogQ3VycmVudCBwYXJzZWQgTm9kZSAqLworICAgIGludCAgICAgICAgICAgICAgICBuYW1lTnI7ICAgICAgICAvKiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjayAqLworICAgIGludCAgICAgICAgICAgICAgICBuYW1lTWF4OyAgICAgICAvKiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sgKi8KKyAgICBjb25zdCB4bWxDaGFyICogICAqbmFtZVRhYjsgICAgICAgLyogYXJyYXkgb2Ygbm9kZXMgKi8KKworICAgIGxvbmcgICAgICAgICAgICAgICBuYkNoYXJzOyAgICAgICAvKiBudW1iZXIgb2YgeG1sQ2hhciBwcm9jZXNzZWQgKi8KKyAgICBsb25nICAgICAgICAgICAgY2hlY2tJbmRleDsgICAgICAgLyogdXNlZCBieSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGxvb2t1cCAqLworICAgIGludCAgICAgICAgICAgICBrZWVwQmxhbmtzOyAgICAgICAvKiB1Z2x5IGJ1dCAuLi4gKi8KKyAgICBpbnQgICAgICAgICAgICAgZGlzYWJsZVNBWDsgICAgICAgLyogU0FYIGNhbGxiYWNrcyBhcmUgZGlzYWJsZWQgKi8KKyAgICBpbnQgICAgICAgICAgICAgICBpblN1YnNldDsgICAgICAgLyogUGFyc2luZyBpcyBpbiBpbnQgMS9leHQgMiBzdWJzZXQgKi8KKyAgICBjb25zdCB4bWxDaGFyICogICAgaW50U3ViTmFtZTsgICAgLyogbmFtZSBvZiBzdWJzZXQgKi8KKyAgICB4bWxDaGFyICogICAgICAgICAgZXh0U3ViVVJJOyAgICAgLyogVVJJIG9mIGV4dGVybmFsIHN1YnNldCAqLworICAgIHhtbENoYXIgKiAgICAgICAgICBleHRTdWJTeXN0ZW07ICAvKiBTWVNURU0gSUQgb2YgZXh0ZXJuYWwgc3Vic2V0ICovCisKKyAgICAvKiB4bWw6c3BhY2UgdmFsdWVzICovCisgICAgaW50ICogICAgICAgICAgICAgIHNwYWNlOyAgICAgICAgIC8qIFNob3VsZCB0aGUgcGFyc2VyIHByZXNlcnZlIHNwYWNlcyAqLworICAgIGludCAgICAgICAgICAgICAgICBzcGFjZU5yOyAgICAgICAvKiBEZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjayAqLworICAgIGludCAgICAgICAgICAgICAgICBzcGFjZU1heDsgICAgICAvKiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sgKi8KKyAgICBpbnQgKiAgICAgICAgICAgICAgc3BhY2VUYWI7ICAgICAgLyogYXJyYXkgb2Ygc3BhY2UgaW5mb3MgKi8KKworICAgIGludCAgICAgICAgICAgICAgICBkZXB0aDsgICAgICAgICAvKiB0byBwcmV2ZW50IGVudGl0eSBzdWJzdGl0dXRpb24gbG9vcHMgKi8KKyAgICB4bWxQYXJzZXJJbnB1dFB0ciAgZW50aXR5OyAgICAgICAgLyogdXNlZCB0byBjaGVjayBlbnRpdGllcyBib3VuZGFyaWVzICovCisgICAgaW50ICAgICAgICAgICAgICAgIGNoYXJzZXQ7ICAgICAgIC8qIGVuY29kaW5nIG9mIHRoZSBpbi1tZW1vcnkgY29udGVudAorCQkJCSAgICAgICAgIGFjdHVhbGx5IGFuIHhtbENoYXJFbmNvZGluZyAqLworICAgIGludCAgICAgICAgICAgICAgICBub2RlbGVuOyAgICAgICAvKiBUaG9zZSB0d28gZmllbGRzIGFyZSB0aGVyZSB0byAqLworICAgIGludCAgICAgICAgICAgICAgICBub2RlbWVtOyAgICAgICAvKiBTcGVlZCB1cCBsYXJnZSBub2RlIHBhcnNpbmcgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgcGVkYW50aWM7ICAgICAgLyogc2lnbmFsIHBlZGFudGljIHdhcm5pbmdzICovCisgICAgdm9pZCAgICAgICAgICAgICAgKl9wcml2YXRlOyAgICAgIC8qIEZvciB1c2VyIGRhdGEsIGxpYnhtbCB3b24ndCB0b3VjaCBpdCAqLworCisgICAgaW50ICAgICAgICAgICAgICAgIGxvYWRzdWJzZXQ7ICAgIC8qIHNob3VsZCB0aGUgZXh0ZXJuYWwgc3Vic2V0IGJlIGxvYWRlZCAqLworICAgIGludCAgICAgICAgICAgICAgICBsaW5lbnVtYmVyczsgICAvKiBzZXQgbGluZSBudW1iZXIgaW4gZWxlbWVudCBjb250ZW50ICovCisgICAgdm9pZCAgICAgICAgICAgICAgKmNhdGFsb2dzOyAgICAgIC8qIGRvY3VtZW50J3Mgb3duIGNhdGFsb2cgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgcmVjb3Zlcnk7ICAgICAgLyogcnVuIGluIHJlY292ZXJ5IG1vZGUgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgcHJvZ3Jlc3NpdmU7ICAgLyogaXMgdGhpcyBhIHByb2dyZXNzaXZlIHBhcnNpbmcgKi8KKyAgICB4bWxEaWN0UHRyICAgICAgICAgZGljdDsgICAgICAgICAgLyogZGljdGlvbm5hcnkgZm9yIHRoZSBwYXJzZXIgKi8KKyAgICBjb25zdCB4bWxDaGFyICogICAqYXR0czsgICAgICAgICAgLyogYXJyYXkgZm9yIHRoZSBhdHRyaWJ1dGVzIGNhbGxiYWNrcyAqLworICAgIGludCAgICAgICAgICAgICAgICBtYXhhdHRzOyAgICAgICAvKiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgZG9jZGljdDsgICAgICAgLyogdXNlIHN0cmluZ3MgZnJvbSBkaWN0IHRvIGJ1aWxkIHRyZWUgKi8KKworICAgIC8qCisgICAgICogcHJlLWludGVybmVkIHN0cmluZ3MKKyAgICAgKi8KKyAgICBjb25zdCB4bWxDaGFyICpzdHJfeG1sOworICAgIGNvbnN0IHhtbENoYXIgKnN0cl94bWxuczsKKyAgICBjb25zdCB4bWxDaGFyICpzdHJfeG1sX25zOworCisgICAgLyoKKyAgICAgKiBFdmVyeXRoaW5nIGJlbG93IGlzIHVzZWQgb25seSBieSB0aGUgbmV3IFNBWCBtb2RlCisgICAgICovCisgICAgaW50ICAgICAgICAgICAgICAgIHNheDI7ICAgICAgICAgIC8qIG9wZXJhdGluZyBpbiB0aGUgbmV3IFNBWCBtb2RlICovCisgICAgaW50ICAgICAgICAgICAgICAgIG5zTnI7ICAgICAgICAgIC8qIHRoZSBudW1iZXIgb2YgaW5oZXJpdGVkIG5hbWVzcGFjZXMgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgbnNNYXg7ICAgICAgICAgLyogdGhlIHNpemUgb2YgdGhlIGFycmF5cyAqLworICAgIGNvbnN0IHhtbENoYXIgKiAgICpuc1RhYjsgICAgICAgICAvKiB0aGUgYXJyYXkgb2YgcHJlZml4L25hbWVzcGFjZSBuYW1lICovCisgICAgaW50ICAgICAgICAgICAgICAgKmF0dGFsbG9jczsgICAgIC8qIHdoaWNoIGF0dHJpYnV0ZSB3ZXJlIGFsbG9jYXRlZCAqLworICAgIHZvaWQgKiAgICAgICAgICAgICpwdXNoVGFiOyAgICAgICAvKiBhcnJheSBvZiBkYXRhIGZvciBwdXNoICovCisgICAgeG1sSGFzaFRhYmxlUHRyICAgIGF0dHNEZWZhdWx0OyAgIC8qIGRlZmF1bHRlZCBhdHRyaWJ1dGVzIGlmIGFueSAqLworICAgIHhtbEhhc2hUYWJsZVB0ciAgICBhdHRzU3BlY2lhbDsgICAvKiBub24tQ0RBVEEgYXR0cmlidXRlcyBpZiBhbnkgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgbnNXZWxsRm9ybWVkOyAgLyogaXMgdGhlIGRvY3VtZW50IFhNTCBOYW5lc3BhY2Ugb2theSAqLworICAgIGludCAgICAgICAgICAgICAgICBvcHRpb25zOyAgICAgICAvKiBFeHRyYSBvcHRpb25zICovCisKKyAgICAvKgorICAgICAqIFRob3NlIGZpZWxkcyBhcmUgbmVlZGVkIG9ubHkgZm9yIHRyZWFtaW5nIHBhcnNpbmcgc28gZmFyCisgICAgICovCisgICAgaW50ICAgICAgICAgICAgICAgZGljdE5hbWVzOyAgICAvKiBVc2UgZGljdGlvbmFyeSBuYW1lcyBmb3IgdGhlIHRyZWUgKi8KKyAgICBpbnQgICAgICAgICAgICAgICBmcmVlRWxlbXNOcjsgIC8qIG51bWJlciBvZiBmcmVlZCBlbGVtZW50IG5vZGVzICovCisgICAgeG1sTm9kZVB0ciAgICAgICAgZnJlZUVsZW1zOyAgICAvKiBMaXN0IG9mIGZyZWVkIGVsZW1lbnQgbm9kZXMgKi8KKyAgICBpbnQgICAgICAgICAgICAgICBmcmVlQXR0cnNOcjsgIC8qIG51bWJlciBvZiBmcmVlZCBhdHRyaWJ1dGVzIG5vZGVzICovCisgICAgeG1sQXR0clB0ciAgICAgICAgZnJlZUF0dHJzOyAgICAvKiBMaXN0IG9mIGZyZWVkIGF0dHJpYnV0ZXMgbm9kZXMgKi8KKworICAgIC8qCisgICAgICogdGhlIGNvbXBsZXRlIGVycm9yIGluZm9ybWF0aW9ucyBmb3IgdGhlIGxhc3QgZXJyb3IuCisgICAgICovCisgICAgeG1sRXJyb3IgICAgICAgICAgbGFzdEVycm9yOworICAgIHhtbFBhcnNlck1vZGUgICAgIHBhcnNlTW9kZTsgICAgLyogdGhlIHBhcnNlciBtb2RlICovCisgICAgdW5zaWduZWQgbG9uZyAgICBuYmVudGl0aWVzOyAgICAvKiBudW1iZXIgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyAqLworICAgIHVuc2lnbmVkIGxvbmcgIHNpemVlbnRpdGllczsgICAgLyogc2l6ZSBvZiBwYXJzZWQgZW50aXRpZXMgKi8KKworICAgIC8qIGZvciB1c2UgYnkgSFRNTCBub24tcmVjdXJzaXZlIHBhcnNlciAqLworICAgIHhtbFBhcnNlck5vZGVJbmZvICpub2RlSW5mbzsgICAgICAvKiBDdXJyZW50IE5vZGVJbmZvICovCisgICAgaW50ICAgICAgICAgICAgICAgIG5vZGVJbmZvTnI7ICAgIC8qIERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrICovCisgICAgaW50ICAgICAgICAgICAgICAgIG5vZGVJbmZvTWF4OyAgIC8qIE1heCBkZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjayAqLworICAgIHhtbFBhcnNlck5vZGVJbmZvICpub2RlSW5mb1RhYjsgICAvKiBhcnJheSBvZiBub2RlSW5mb3MgKi8KK307CisKKy8qKgorICogeG1sU0FYTG9jYXRvcjoKKyAqCisgKiBBIFNBWCBMb2NhdG9yLgorICovCitzdHJ1Y3QgX3htbFNBWExvY2F0b3IgeworICAgIGNvbnN0IHhtbENoYXIgKigqZ2V0UHVibGljSWQpKHZvaWQgKmN0eCk7CisgICAgY29uc3QgeG1sQ2hhciAqKCpnZXRTeXN0ZW1JZCkodm9pZCAqY3R4KTsKKyAgICBpbnQgKCpnZXRMaW5lTnVtYmVyKSh2b2lkICpjdHgpOworICAgIGludCAoKmdldENvbHVtbk51bWJlcikodm9pZCAqY3R4KTsKK307CisKKy8qKgorICogeG1sU0FYSGFuZGxlcjoKKyAqCisgKiBBIFNBWCBoYW5kbGVyIGlzIGJ1bmNoIG9mIGNhbGxiYWNrcyBjYWxsZWQgYnkgdGhlIHBhcnNlciB3aGVuIHByb2Nlc3NpbmcKKyAqIG9mIHRoZSBpbnB1dCBnZW5lcmF0ZSBkYXRhIG9yIHN0cnVjdHVyZSBpbmZvcm1hdGlvbnMuCisgKi8KKworLyoqCisgKiByZXNvbHZlRW50aXR5U0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqCisgKiBDYWxsYmFjazoKKyAqIFRoZSBlbnRpdHkgbG9hZGVyLCB0byBjb250cm9sIHRoZSBsb2FkaW5nIG9mIGV4dGVybmFsIGVudGl0aWVzLAorICogdGhlIGFwcGxpY2F0aW9uIGNhbiBlaXRoZXI6CisgKiAgICAtIG92ZXJyaWRlIHRoaXMgcmVzb2x2ZUVudGl0eSgpIGNhbGxiYWNrIGluIHRoZSBTQVggYmxvY2sKKyAqICAgIC0gb3IgYmV0dGVyIHVzZSB0aGUgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKSBmdW5jdGlvbiB0bworICogICAgICBzZXQgdXAgaXQncyBvd24gZW50aXR5IHJlc29sdXRpb24gcm91dGluZQorICoKKyAqIFJldHVybnMgdGhlIHhtbFBhcnNlcklucHV0UHRyIGlmIGlubGluZWQgb3IgTlVMTCBmb3IgRE9NIGJlaGF2aW91ci4KKyAqLwordHlwZWRlZiB4bWxQYXJzZXJJbnB1dFB0ciAoKnJlc29sdmVFbnRpdHlTQVhGdW5jKSAodm9pZCAqY3R4LAorCQkJCWNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLAorCQkJCWNvbnN0IHhtbENoYXIgKnN5c3RlbUlkKTsKKy8qKgorICogaW50ZXJuYWxTdWJzZXRTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgdGhlIHJvb3QgZWxlbWVudCBuYW1lCisgKiBARXh0ZXJuYWxJRDogIHRoZSBleHRlcm5hbCBJRAorICogQFN5c3RlbUlEOiAgdGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpCisgKgorICogQ2FsbGJhY2sgb24gaW50ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLgorICovCit0eXBlZGVmIHZvaWQgKCppbnRlcm5hbFN1YnNldFNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQljb25zdCB4bWxDaGFyICpFeHRlcm5hbElELAorCQkJCWNvbnN0IHhtbENoYXIgKlN5c3RlbUlEKTsKKy8qKgorICogZXh0ZXJuYWxTdWJzZXRTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgdGhlIHJvb3QgZWxlbWVudCBuYW1lCisgKiBARXh0ZXJuYWxJRDogIHRoZSBleHRlcm5hbCBJRAorICogQFN5c3RlbUlEOiAgdGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpCisgKgorICogQ2FsbGJhY2sgb24gZXh0ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLgorICovCit0eXBlZGVmIHZvaWQgKCpleHRlcm5hbFN1YnNldFNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQljb25zdCB4bWxDaGFyICpFeHRlcm5hbElELAorCQkJCWNvbnN0IHhtbENoYXIgKlN5c3RlbUlEKTsKKy8qKgorICogZ2V0RW50aXR5U0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogVGhlIGVudGl0eSBuYW1lCisgKgorICogR2V0IGFuIGVudGl0eSBieSBuYW1lLgorICoKKyAqIFJldHVybnMgdGhlIHhtbEVudGl0eVB0ciBpZiBmb3VuZC4KKyAqLwordHlwZWRlZiB4bWxFbnRpdHlQdHIgKCpnZXRFbnRpdHlTQVhGdW5jKSAodm9pZCAqY3R4LAorCQkJCWNvbnN0IHhtbENoYXIgKm5hbWUpOworLyoqCisgKiBnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiBUaGUgZW50aXR5IG5hbWUKKyAqCisgKiBHZXQgYSBwYXJhbWV0ZXIgZW50aXR5IGJ5IG5hbWUuCisgKgorICogUmV0dXJucyB0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLgorICovCit0eXBlZGVmIHhtbEVudGl0eVB0ciAoKmdldFBhcmFtZXRlckVudGl0eVNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqbmFtZSk7CisvKioKKyAqIGVudGl0eURlY2xTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgdGhlIGVudGl0eSBuYW1lIAorICogQHR5cGU6ICB0aGUgZW50aXR5IHR5cGUgCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBjb250ZW50OiB0aGUgZW50aXR5IHZhbHVlICh3aXRob3V0IHByb2Nlc3NpbmcpLgorICoKKyAqIEFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZC4KKyAqLwordHlwZWRlZiB2b2lkICgqZW50aXR5RGVjbFNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQlpbnQgdHlwZSwKKwkJCQljb25zdCB4bWxDaGFyICpwdWJsaWNJZCwKKwkJCQljb25zdCB4bWxDaGFyICpzeXN0ZW1JZCwKKwkJCQl4bWxDaGFyICpjb250ZW50KTsKKy8qKgorICogbm90YXRpb25EZWNsU0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogVGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqCisgKiBXaGF0IHRvIGRvIHdoZW4gYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBoYXMgYmVlbiBwYXJzZWQuCisgKi8KK3R5cGVkZWYgdm9pZCAoKm5vdGF0aW9uRGVjbFNBWEZ1bmMpKHZvaWQgKmN0eCwKKwkJCQljb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCWNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLAorCQkJCWNvbnN0IHhtbENoYXIgKnN5c3RlbUlkKTsKKy8qKgorICogYXR0cmlidXRlRGVjbFNBWEZ1bmM6CisgKiBAY3R4OiAgdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGVsZW06ICB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudAorICogQGZ1bGxuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lIAorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUgCisgKiBAZGVmOiAgdGhlIHR5cGUgb2YgZGVmYXVsdCB2YWx1ZQorICogQGRlZmF1bHRWYWx1ZTogdGhlIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlCisgKiBAdHJlZTogIHRoZSB0cmVlIG9mIGVudW1lcmF0ZWQgdmFsdWUgc2V0CisgKgorICogQW4gYXR0cmlidXRlIGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkLgorICovCit0eXBlZGVmIHZvaWQgKCphdHRyaWJ1dGVEZWNsU0FYRnVuYykodm9pZCAqY3R4LAorCQkJCWNvbnN0IHhtbENoYXIgKmVsZW0sCisJCQkJY29uc3QgeG1sQ2hhciAqZnVsbG5hbWUsCisJCQkJaW50IHR5cGUsCisJCQkJaW50IGRlZiwKKwkJCQljb25zdCB4bWxDaGFyICpkZWZhdWx0VmFsdWUsCisJCQkJeG1sRW51bWVyYXRpb25QdHIgdHJlZSk7CisvKioKKyAqIGVsZW1lbnREZWNsU0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogIHRoZSBlbGVtZW50IG5hbWUgCisgKiBAdHlwZTogIHRoZSBlbGVtZW50IHR5cGUgCisgKiBAY29udGVudDogdGhlIGVsZW1lbnQgdmFsdWUgdHJlZQorICoKKyAqIEFuIGVsZW1lbnQgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQuCisgKi8KK3R5cGVkZWYgdm9pZCAoKmVsZW1lbnREZWNsU0FYRnVuYykodm9pZCAqY3R4LAorCQkJCWNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJaW50IHR5cGUsCisJCQkJeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCk7CisvKioKKyAqIHVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmM6CisgKiBAY3R4OiAgdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBlbnRpdHkKKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICogQG5vdGF0aW9uTmFtZTogdGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uCisgKgorICogV2hhdCB0byBkbyB3aGVuIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBpcyBwYXJzZWQuCisgKi8KK3R5cGVkZWYgdm9pZCAoKnVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMpKHZvaWQgKmN0eCwKKwkJCQljb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCWNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLAorCQkJCWNvbnN0IHhtbENoYXIgKnN5c3RlbUlkLAorCQkJCWNvbnN0IHhtbENoYXIgKm5vdGF0aW9uTmFtZSk7CisvKioKKyAqIHNldERvY3VtZW50TG9jYXRvclNBWEZ1bmM6CisgKiBAY3R4OiAgdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGxvYzogQSBTQVggTG9jYXRvcgorICoKKyAqIFJlY2VpdmUgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXQgc3RhcnR1cCwgYWN0dWFsbHkgeG1sRGVmYXVsdFNBWExvY2F0b3IuCisgKiBFdmVyeXRoaW5nIGlzIGF2YWlsYWJsZSBvbiB0aGUgY29udGV4dCwgc28gdGhpcyBpcyB1c2VsZXNzIGluIG91ciBjYXNlLgorICovCit0eXBlZGVmIHZvaWQgKCpzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jKSAodm9pZCAqY3R4LAorCQkJCXhtbFNBWExvY2F0b3JQdHIgbG9jKTsKKy8qKgorICogc3RhcnREb2N1bWVudFNBWEZ1bmM6CisgKiBAY3R4OiAgdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICoKKyAqIENhbGxlZCB3aGVuIHRoZSBkb2N1bWVudCBzdGFydCBiZWluZyBwcm9jZXNzZWQuCisgKi8KK3R5cGVkZWYgdm9pZCAoKnN0YXJ0RG9jdW1lbnRTQVhGdW5jKSAodm9pZCAqY3R4KTsKKy8qKgorICogZW5kRG9jdW1lbnRTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBDYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkLgorICovCit0eXBlZGVmIHZvaWQgKCplbmREb2N1bWVudFNBWEZ1bmMpICh2b2lkICpjdHgpOworLyoqCisgKiBzdGFydEVsZW1lbnRTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXgKKyAqIEBhdHRzOiAgQW4gYXJyYXkgb2YgbmFtZS92YWx1ZSBhdHRyaWJ1dGVzIHBhaXJzLCBOVUxMIHRlcm1pbmF0ZWQKKyAqCisgKiBDYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3R5cGVkZWYgdm9pZCAoKnN0YXJ0RWxlbWVudFNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQljb25zdCB4bWxDaGFyICoqYXR0cyk7CisvKioKKyAqIGVuZEVsZW1lbnRTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIENhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLwordHlwZWRlZiB2b2lkICgqZW5kRWxlbWVudFNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqbmFtZSk7CisvKioKKyAqIGF0dHJpYnV0ZVNBWEZ1bmM6CisgKiBAY3R4OiAgdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQG5hbWU6ICBUaGUgYXR0cmlidXRlIG5hbWUsIGluY2x1ZGluZyBuYW1lc3BhY2UgcHJlZml4CisgKiBAdmFsdWU6ICBUaGUgYXR0cmlidXRlIHZhbHVlCisgKgorICogSGFuZGxlIGFuIGF0dHJpYnV0ZSB0aGF0IGhhcyBiZWVuIHJlYWQgYnkgdGhlIHBhcnNlci4KKyAqIFRoZSBkZWZhdWx0IGhhbmRsaW5nIGlzIHRvIGNvbnZlcnQgdGhlIGF0dHJpYnV0ZSBpbnRvIGFuCisgKiBET00gc3VidHJlZSBhbmQgcGFzdCBpdCBpbiBhIG5ldyB4bWxBdHRyIGVsZW1lbnQgYWRkZWQgdG8KKyAqIHRoZSBlbGVtZW50LgorICovCit0eXBlZGVmIHZvaWQgKCphdHRyaWJ1dGVTQVhGdW5jKSAodm9pZCAqY3R4LAorCQkJCWNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJY29uc3QgeG1sQ2hhciAqdmFsdWUpOworLyoqCisgKiByZWZlcmVuY2VTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgVGhlIGVudGl0eSBuYW1lCisgKgorICogQ2FsbGVkIHdoZW4gYW4gZW50aXR5IHJlZmVyZW5jZSBpcyBkZXRlY3RlZC4gCisgKi8KK3R5cGVkZWYgdm9pZCAoKnJlZmVyZW5jZVNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqbmFtZSk7CisvKioKKyAqIGNoYXJhY3RlcnNTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIFJlY2VpdmluZyBzb21lIGNoYXJzIGZyb20gdGhlIHBhcnNlci4KKyAqLwordHlwZWRlZiB2b2lkICgqY2hhcmFjdGVyc1NBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqY2gsCisJCQkJaW50IGxlbik7CisvKioKKyAqIGlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIFJlY2VpdmluZyBzb21lIGlnbm9yYWJsZSB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBwYXJzZXIuCisgKiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSBjaGFyYWN0ZXJzLgorICovCit0eXBlZGVmIHZvaWQgKCppZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYykgKHZvaWQgKmN0eCwKKwkJCQljb25zdCB4bWxDaGFyICpjaCwKKwkJCQlpbnQgbGVuKTsKKy8qKgorICogcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAdGFyZ2V0OiAgdGhlIHRhcmdldCBuYW1lCisgKiBAZGF0YTogdGhlIFBJIGRhdGEncworICoKKyAqIEEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBoYXMgYmVlbiBwYXJzZWQuCisgKi8KK3R5cGVkZWYgdm9pZCAoKnByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqdGFyZ2V0LAorCQkJCWNvbnN0IHhtbENoYXIgKmRhdGEpOworLyoqCisgKiBjb21tZW50U0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAdmFsdWU6ICB0aGUgY29tbWVudCBjb250ZW50CisgKgorICogQSBjb21tZW50IGhhcyBiZWVuIHBhcnNlZC4KKyAqLwordHlwZWRlZiB2b2lkICgqY29tbWVudFNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgeG1sQ2hhciAqdmFsdWUpOworLyoqCisgKiBjZGF0YUJsb2NrU0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAdmFsdWU6ICBUaGUgcGNkYXRhIGNvbnRlbnQKKyAqIEBsZW46ICB0aGUgYmxvY2sgbGVuZ3RoCisgKgorICogQ2FsbGVkIHdoZW4gYSBwY2RhdGEgYmxvY2sgaGFzIGJlZW4gcGFyc2VkLgorICovCit0eXBlZGVmIHZvaWQgKCpjZGF0YUJsb2NrU0FYRnVuYykgKAorCSAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmN0eCwKKwkJCQljb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQlpbnQgbGVuKTsKKy8qKgorICogd2FybmluZ1NBWEZ1bmM6CisgKiBAY3R4OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdAorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqIAorICogRGlzcGxheSBhbmQgZm9ybWF0IGEgd2FybmluZyBtZXNzYWdlcywgY2FsbGJhY2suCisgKi8KK3R5cGVkZWYgdm9pZCAoWE1MQ0RFQ0wgKndhcm5pbmdTQVhGdW5jKSAodm9pZCAqY3R4LAorCQkJCWNvbnN0IGNoYXIgKm1zZywgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKKy8qKgorICogZXJyb3JTQVhGdW5jOgorICogQGN0eDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG1zZzogIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKiAKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhbiBlcnJvciBtZXNzYWdlcywgY2FsbGJhY2suCisgKi8KK3R5cGVkZWYgdm9pZCAoWE1MQ0RFQ0wgKmVycm9yU0FYRnVuYykgKHZvaWQgKmN0eCwKKwkJCQljb25zdCBjaGFyICptc2csIC4uLikgTElCWE1MX0FUVFJfRk9STUFUKDIsMyk7CisvKioKKyAqIGZhdGFsRXJyb3JTQVhGdW5jOgorICogQGN0eDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG1zZzogIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKiAKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBmYXRhbCBlcnJvciBtZXNzYWdlcywgY2FsbGJhY2suCisgKiBOb3RlOiBzbyBmYXIgZmF0YWxFcnJvcigpIFNBWCBjYWxsYmFja3MgYXJlIG5vdCB1c2VkLCBlcnJvcigpCisgKiAgICAgICBnZXQgYWxsIHRoZSBjYWxsYmFja3MgZm9yIGVycm9ycy4KKyAqLwordHlwZWRlZiB2b2lkIChYTUxDREVDTCAqZmF0YWxFcnJvclNBWEZ1bmMpICh2b2lkICpjdHgsCisJCQkJY29uc3QgY2hhciAqbXNnLCAuLi4pIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpOworLyoqCisgKiBpc1N0YW5kYWxvbmVTQVhGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBJcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lPworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlCisgKi8KK3R5cGVkZWYgaW50ICgqaXNTdGFuZGFsb25lU0FYRnVuYykgKHZvaWQgKmN0eCk7CisvKioKKyAqIGhhc0ludGVybmFsU3Vic2V0U0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogRG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBpbnRlcm5hbCBzdWJzZXQuCisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLwordHlwZWRlZiBpbnQgKCpoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMpICh2b2lkICpjdHgpOworCisvKioKKyAqIGhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogRG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBleHRlcm5hbCBzdWJzZXQ/CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLwordHlwZWRlZiBpbnQgKCpoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMpICh2b2lkICpjdHgpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJVGhlIFNBWCB2ZXJzaW9uIDIgQVBJIGV4dGVuc2lvbnMJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKgorICogWE1MX1NBWDJfTUFHSUM6CisgKgorICogU3BlY2lhbCBjb25zdGFudCBmb3VuZCBpbiBTQVgyIGJsb2NrcyBpbml0aWFsaXplZCBmaWVsZHMKKyAqLworI2RlZmluZSBYTUxfU0FYMl9NQUdJQyAweERFRURCRUFGCisKKy8qKgorICogc3RhcnRFbGVtZW50TnNTQVgyRnVuYzoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbG9jYWxuYW1lOiAgdGhlIGxvY2FsIG5hbWUgb2YgdGhlIGVsZW1lbnQKKyAqIEBwcmVmaXg6ICB0aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZQorICogQFVSSTogIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZQorICogQG5iX25hbWVzcGFjZXM6ICBudW1iZXIgb2YgbmFtZXNwYWNlIGRlZmluaXRpb25zIG9uIHRoYXQgbm9kZQorICogQG5hbWVzcGFjZXM6ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBwcmVmaXgvVVJJIHBhaXJzIG5hbWVzcGFjZSBkZWZpbml0aW9ucworICogQG5iX2F0dHJpYnV0ZXM6ICB0aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgb24gdGhhdCBub2RlCisgKiBAbmJfZGVmYXVsdGVkOiAgdGhlIG51bWJlciBvZiBkZWZhdWx0ZWQgYXR0cmlidXRlcy4gVGhlIGRlZmF1bHRlZAorICogICAgICAgICAgICAgICAgICBvbmVzIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBhcnJheQorICogQGF0dHJpYnV0ZXM6ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiAobG9jYWxuYW1lL3ByZWZpeC9VUkkvdmFsdWUvZW5kKQorICogICAgICAgICAgICAgICBhdHRyaWJ1dGUgdmFsdWVzLgorICoKKyAqIFNBWDIgY2FsbGJhY2sgd2hlbiBhbiBlbGVtZW50IHN0YXJ0IGhhcyBiZWVuIGRldGVjdGVkIGJ5IHRoZSBwYXJzZXIuCisgKiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQsIGFzIHdlbGwgYXMKKyAqIHRoZSBuZXcgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBvbiB0aGUgZWxlbWVudC4KKyAqLworCit0eXBlZGVmIHZvaWQgKCpzdGFydEVsZW1lbnROc1NBWDJGdW5jKSAodm9pZCAqY3R4LAorCQkJCQljb25zdCB4bWxDaGFyICpsb2NhbG5hbWUsCisJCQkJCWNvbnN0IHhtbENoYXIgKnByZWZpeCwKKwkJCQkJY29uc3QgeG1sQ2hhciAqVVJJLAorCQkJCQlpbnQgbmJfbmFtZXNwYWNlcywKKwkJCQkJY29uc3QgeG1sQ2hhciAqKm5hbWVzcGFjZXMsCisJCQkJCWludCBuYl9hdHRyaWJ1dGVzLAorCQkJCQlpbnQgbmJfZGVmYXVsdGVkLAorCQkJCQljb25zdCB4bWxDaGFyICoqYXR0cmlidXRlcyk7CisgCisvKioKKyAqIGVuZEVsZW1lbnROc1NBWDJGdW5jOgorICogQGN0eDogIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBsb2NhbG5hbWU6ICB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudAorICogQHByZWZpeDogIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlCisgKiBAVVJJOiAgdGhlIGVsZW1lbnQgbmFtZXNwYWNlIG5hbWUgaWYgYXZhaWxhYmxlCisgKgorICogU0FYMiBjYWxsYmFjayB3aGVuIGFuIGVsZW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkIGJ5IHRoZSBwYXJzZXIuCisgKiBJdCBwcm92aWRlcyB0aGUgbmFtZXNwYWNlIGluZm9ybWF0aW9ucyBmb3IgdGhlIGVsZW1lbnQuCisgKi8KKwordHlwZWRlZiB2b2lkICgqZW5kRWxlbWVudE5zU0FYMkZ1bmMpICAgKHZvaWQgKmN0eCwKKwkJCQkJY29uc3QgeG1sQ2hhciAqbG9jYWxuYW1lLAorCQkJCQljb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCQkJCWNvbnN0IHhtbENoYXIgKlVSSSk7CisKKworc3RydWN0IF94bWxTQVhIYW5kbGVyIHsKKyAgICBpbnRlcm5hbFN1YnNldFNBWEZ1bmMgaW50ZXJuYWxTdWJzZXQ7CisgICAgaXNTdGFuZGFsb25lU0FYRnVuYyBpc1N0YW5kYWxvbmU7CisgICAgaGFzSW50ZXJuYWxTdWJzZXRTQVhGdW5jIGhhc0ludGVybmFsU3Vic2V0OworICAgIGhhc0V4dGVybmFsU3Vic2V0U0FYRnVuYyBoYXNFeHRlcm5hbFN1YnNldDsKKyAgICByZXNvbHZlRW50aXR5U0FYRnVuYyByZXNvbHZlRW50aXR5OworICAgIGdldEVudGl0eVNBWEZ1bmMgZ2V0RW50aXR5OworICAgIGVudGl0eURlY2xTQVhGdW5jIGVudGl0eURlY2w7CisgICAgbm90YXRpb25EZWNsU0FYRnVuYyBub3RhdGlvbkRlY2w7CisgICAgYXR0cmlidXRlRGVjbFNBWEZ1bmMgYXR0cmlidXRlRGVjbDsKKyAgICBlbGVtZW50RGVjbFNBWEZ1bmMgZWxlbWVudERlY2w7CisgICAgdW5wYXJzZWRFbnRpdHlEZWNsU0FYRnVuYyB1bnBhcnNlZEVudGl0eURlY2w7CisgICAgc2V0RG9jdW1lbnRMb2NhdG9yU0FYRnVuYyBzZXREb2N1bWVudExvY2F0b3I7CisgICAgc3RhcnREb2N1bWVudFNBWEZ1bmMgc3RhcnREb2N1bWVudDsKKyAgICBlbmREb2N1bWVudFNBWEZ1bmMgZW5kRG9jdW1lbnQ7CisgICAgc3RhcnRFbGVtZW50U0FYRnVuYyBzdGFydEVsZW1lbnQ7CisgICAgZW5kRWxlbWVudFNBWEZ1bmMgZW5kRWxlbWVudDsKKyAgICByZWZlcmVuY2VTQVhGdW5jIHJlZmVyZW5jZTsKKyAgICBjaGFyYWN0ZXJzU0FYRnVuYyBjaGFyYWN0ZXJzOworICAgIGlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jIGlnbm9yYWJsZVdoaXRlc3BhY2U7CisgICAgcHJvY2Vzc2luZ0luc3RydWN0aW9uU0FYRnVuYyBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CisgICAgY29tbWVudFNBWEZ1bmMgY29tbWVudDsKKyAgICB3YXJuaW5nU0FYRnVuYyB3YXJuaW5nOworICAgIGVycm9yU0FYRnVuYyBlcnJvcjsKKyAgICBmYXRhbEVycm9yU0FYRnVuYyBmYXRhbEVycm9yOyAvKiB1bnVzZWQgZXJyb3IoKSBnZXQgYWxsIHRoZSBlcnJvcnMgKi8KKyAgICBnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jIGdldFBhcmFtZXRlckVudGl0eTsKKyAgICBjZGF0YUJsb2NrU0FYRnVuYyBjZGF0YUJsb2NrOworICAgIGV4dGVybmFsU3Vic2V0U0FYRnVuYyBleHRlcm5hbFN1YnNldDsKKyAgICB1bnNpZ25lZCBpbnQgaW5pdGlhbGl6ZWQ7CisgICAgLyogVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIGV4dGVuc2lvbnMgYXZhaWxhYmxlIG9ubHkgb24gdmVyc2lvbiAyICovCisgICAgdm9pZCAqX3ByaXZhdGU7CisgICAgc3RhcnRFbGVtZW50TnNTQVgyRnVuYyBzdGFydEVsZW1lbnROczsKKyAgICBlbmRFbGVtZW50TnNTQVgyRnVuYyBlbmRFbGVtZW50TnM7CisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3I7Cit9OworCisvKgorICogU0FYIFZlcnNpb24gMQorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU0FYSGFuZGxlclYxIHhtbFNBWEhhbmRsZXJWMTsKK3R5cGVkZWYgeG1sU0FYSGFuZGxlclYxICp4bWxTQVhIYW5kbGVyVjFQdHI7CitzdHJ1Y3QgX3htbFNBWEhhbmRsZXJWMSB7CisgICAgaW50ZXJuYWxTdWJzZXRTQVhGdW5jIGludGVybmFsU3Vic2V0OworICAgIGlzU3RhbmRhbG9uZVNBWEZ1bmMgaXNTdGFuZGFsb25lOworICAgIGhhc0ludGVybmFsU3Vic2V0U0FYRnVuYyBoYXNJbnRlcm5hbFN1YnNldDsKKyAgICBoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMgaGFzRXh0ZXJuYWxTdWJzZXQ7CisgICAgcmVzb2x2ZUVudGl0eVNBWEZ1bmMgcmVzb2x2ZUVudGl0eTsKKyAgICBnZXRFbnRpdHlTQVhGdW5jIGdldEVudGl0eTsKKyAgICBlbnRpdHlEZWNsU0FYRnVuYyBlbnRpdHlEZWNsOworICAgIG5vdGF0aW9uRGVjbFNBWEZ1bmMgbm90YXRpb25EZWNsOworICAgIGF0dHJpYnV0ZURlY2xTQVhGdW5jIGF0dHJpYnV0ZURlY2w7CisgICAgZWxlbWVudERlY2xTQVhGdW5jIGVsZW1lbnREZWNsOworICAgIHVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMgdW5wYXJzZWRFbnRpdHlEZWNsOworICAgIHNldERvY3VtZW50TG9jYXRvclNBWEZ1bmMgc2V0RG9jdW1lbnRMb2NhdG9yOworICAgIHN0YXJ0RG9jdW1lbnRTQVhGdW5jIHN0YXJ0RG9jdW1lbnQ7CisgICAgZW5kRG9jdW1lbnRTQVhGdW5jIGVuZERvY3VtZW50OworICAgIHN0YXJ0RWxlbWVudFNBWEZ1bmMgc3RhcnRFbGVtZW50OworICAgIGVuZEVsZW1lbnRTQVhGdW5jIGVuZEVsZW1lbnQ7CisgICAgcmVmZXJlbmNlU0FYRnVuYyByZWZlcmVuY2U7CisgICAgY2hhcmFjdGVyc1NBWEZ1bmMgY2hhcmFjdGVyczsKKyAgICBpZ25vcmFibGVXaGl0ZXNwYWNlU0FYRnVuYyBpZ25vcmFibGVXaGl0ZXNwYWNlOworICAgIHByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMgcHJvY2Vzc2luZ0luc3RydWN0aW9uOworICAgIGNvbW1lbnRTQVhGdW5jIGNvbW1lbnQ7CisgICAgd2FybmluZ1NBWEZ1bmMgd2FybmluZzsKKyAgICBlcnJvclNBWEZ1bmMgZXJyb3I7CisgICAgZmF0YWxFcnJvclNBWEZ1bmMgZmF0YWxFcnJvcjsgLyogdW51c2VkIGVycm9yKCkgZ2V0IGFsbCB0aGUgZXJyb3JzICovCisgICAgZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYyBnZXRQYXJhbWV0ZXJFbnRpdHk7CisgICAgY2RhdGFCbG9ja1NBWEZ1bmMgY2RhdGFCbG9jazsKKyAgICBleHRlcm5hbFN1YnNldFNBWEZ1bmMgZXh0ZXJuYWxTdWJzZXQ7CisgICAgdW5zaWduZWQgaW50IGluaXRpYWxpemVkOworfTsKKworCisvKioKKyAqIHhtbEV4dGVybmFsRW50aXR5TG9hZGVyOgorICogQFVSTDogVGhlIFN5c3RlbSBJRCBvZiB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkCisgKiBASUQ6IFRoZSBQdWJsaWMgSUQgb2YgdGhlIHJlc291cmNlIHJlcXVlc3RlZAorICogQGNvbnRleHQ6IHRoZSBYTUwgcGFyc2VyIGNvbnRleHQgCisgKgorICogRXh0ZXJuYWwgZW50aXR5IGxvYWRlcnMgdHlwZXMuCisgKgorICogUmV0dXJucyB0aGUgZW50aXR5IGlucHV0IHBhcnNlci4KKyAqLwordHlwZWRlZiB4bWxQYXJzZXJJbnB1dFB0ciAoKnhtbEV4dGVybmFsRW50aXR5TG9hZGVyKSAoY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqSUQsCisJCQkJCSB4bWxQYXJzZXJDdHh0UHRyIGNvbnRleHQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjaW5jbHVkZSA8bGlieG1sL2VuY29kaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbElPLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qCisgKiBJbml0L0NsZWFudXAKKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEluaXRQYXJzZXIJCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxDbGVhbnVwUGFyc2VyCSh2b2lkKTsKKworLyoKKyAqIElucHV0IGZ1bmN0aW9ucworICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxQYXJzZXJJbnB1dFJlYWQJKHhtbFBhcnNlcklucHV0UHRyIGluLAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxQYXJzZXJJbnB1dEdyb3cJKHhtbFBhcnNlcklucHV0UHRyIGluLAorCQkJCQkgaW50IGxlbik7CisKKy8qCisgKiBCYXNpYyBwYXJzaW5nIEludGVyZmFjZXMKKyAqLworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAkKKwkJeG1sUGFyc2VEb2MJCShjb25zdCB4bWxDaGFyICpjdXIpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCQorCQl4bWxQYXJzZUZpbGUJCShjb25zdCBjaGFyICpmaWxlbmFtZSk7CitYTUxQVUJGVU4geG1sRG9jUHRyIFhNTENBTEwJCisJCXhtbFBhcnNlTWVtb3J5CQkoY29uc3QgY2hhciAqYnVmZmVyLAorCQkJCQkgaW50IHNpemUpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQoaW50IHZhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxLZWVwQmxhbmtzRGVmYXVsdAkoaW50IHZhbCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU3RvcFBhcnNlcgkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQoaW50IHZhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxMaW5lTnVtYmVyc0RlZmF1bHQJKGludCB2YWwpOworCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorLyoKKyAqIFJlY292ZXJ5IG1vZGUgCisgKi8KK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAkKKwkJeG1sUmVjb3ZlckRvYwkJKGNvbnN0IHhtbENoYXIgKmN1cik7CitYTUxQVUJGVU4geG1sRG9jUHRyIFhNTENBTEwJCisJCXhtbFJlY292ZXJNZW1vcnkJKGNvbnN0IGNoYXIgKmJ1ZmZlciwKKwkJCQkJIGludCBzaXplKTsKK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAkKKwkJeG1sUmVjb3ZlckZpbGUJCShjb25zdCBjaGFyICpmaWxlbmFtZSk7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisvKgorICogTGVzcyBjb21tb24gcm91dGluZXMgYW5kIFNBWCBpbnRlcmZhY2VzCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFBhcnNlRG9jdW1lbnQJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxQYXJzZUV4dFBhcnNlZEVudAkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxTQVhVc2VyUGFyc2VGaWxlCSh4bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJIHZvaWQgKnVzZXJfZGF0YSwKKwkJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFNBWFVzZXJQYXJzZU1lbW9yeQkoeG1sU0FYSGFuZGxlclB0ciBzYXgsCisJCQkJCSB2b2lkICp1c2VyX2RhdGEsCisJCQkJCSBjb25zdCBjaGFyICpidWZmZXIsCisJCQkJCSBpbnQgc2l6ZSk7CitYTUxQVUJGVU4geG1sRG9jUHRyIFhNTENBTEwJCisJCXhtbFNBWFBhcnNlRG9jCQkoeG1sU0FYSGFuZGxlclB0ciBzYXgsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjdXIsCisJCQkJCSBpbnQgcmVjb3ZlcnkpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCQorCQl4bWxTQVhQYXJzZU1lbW9yeQkoeG1sU0FYSGFuZGxlclB0ciBzYXgsCisJCQkJCSBjb25zdCBjaGFyICpidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkgaW50IHNpemUsCisJCQkJCSBpbnQgcmVjb3ZlcnkpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCQorCQl4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhICh4bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJIGNvbnN0IGNoYXIgKmJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCSBpbnQgc2l6ZSwKKwkJCQkJIGludCByZWNvdmVyeSwKKwkJCQkJIHZvaWQgKmRhdGEpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCQorCQl4bWxTQVhQYXJzZUZpbGUJCSh4bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkgaW50IHJlY292ZXJ5KTsKK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAkKKwkJeG1sU0FYUGFyc2VGaWxlV2l0aERhdGEJKHhtbFNBWEhhbmRsZXJQdHIgc2F4LAorCQkJCQkgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCSBpbnQgcmVjb3ZlcnksCisJCQkJCSB2b2lkICpkYXRhKTsKK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAkKKwkJeG1sU0FYUGFyc2VFbnRpdHkJKHhtbFNBWEhhbmRsZXJQdHIgc2F4LAorCQkJCQkgY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCQorCQl4bWxQYXJzZUVudGl0eQkJKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorWE1MUFVCRlVOIHhtbER0ZFB0ciBYTUxDQUxMCQorCQl4bWxTQVhQYXJzZURURAkJKHhtbFNBWEhhbmRsZXJQdHIgc2F4LAorCQkJCQkgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKlN5c3RlbUlEKTsKK1hNTFBVQkZVTiB4bWxEdGRQdHIgWE1MQ0FMTAkKKwkJeG1sUGFyc2VEVEQJCShjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELAorCQkJCQkgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpOworWE1MUFVCRlVOIHhtbER0ZFB0ciBYTUxDQUxMCQorCQl4bWxJT1BhcnNlRFRECQkoeG1sU0FYSGFuZGxlclB0ciBzYXgsCisJCQkJCSB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCwKKwkJCQkJIHhtbENoYXJFbmNvZGluZyBlbmMpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEUgKi8KKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJCXhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sU0FYSGFuZGxlclB0ciBzYXgsCisJCQkJCSB2b2lkICp1c2VyX2RhdGEsCisJCQkJCSBpbnQgZGVwdGgsCisJCQkJCSBjb25zdCB4bWxDaGFyICpzdHJpbmcsCisJCQkJCSB4bWxOb2RlUHRyICpsc3QpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB4bWxQYXJzZXJFcnJvcnMgWE1MQ0FMTAorCQl4bWxQYXJzZUluTm9kZUNvbnRleHQJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGNvbnN0IGNoYXIgKmRhdGEsCisJCQkJCSBpbnQgZGF0YWxlbiwKKwkJCQkJIGludCBvcHRpb25zLAorCQkJCQkgeG1sTm9kZVB0ciAqbHN0KTsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECitYTUxQVUJGVU4gaW50IFhNTENBTEwgICAgICAgICAgCisJCXhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIoeG1sRG9jUHRyIGRvYywKKyAgICAgICAgICAgICAgICAgICAgIHhtbFNBWEhhbmRsZXJQdHIgc2F4LAorICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlcl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgaW50IGRlcHRoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciAqbHN0LAorICAgICAgICAgICAgICAgICAgICAgaW50IHJlY292ZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sUGFyc2VFeHRlcm5hbEVudGl0eQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbFNBWEhhbmRsZXJQdHIgc2F4LAorCQkJCQkgdm9pZCAqdXNlcl9kYXRhLAorCQkJCQkgaW50IGRlcHRoLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqVVJMLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqSUQsCisJCQkJCSB4bWxOb2RlUHRyICpsc3QpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5KHhtbFBhcnNlckN0eHRQdHIgY3R4LAorCQkJCQkgY29uc3QgeG1sQ2hhciAqVVJMLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqSUQsCisJCQkJCSB4bWxOb2RlUHRyICpsc3QpOworCisvKgorICogUGFyc2VyIGNvbnRleHRzIGhhbmRsaW5nLgorICovCitYTUxQVUJGVU4geG1sUGFyc2VyQ3R4dFB0ciBYTUxDQUxMCQorCQl4bWxOZXdQYXJzZXJDdHh0CSh2b2lkKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEluaXRQYXJzZXJDdHh0CSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbENsZWFyUGFyc2VyQ3R4dAkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxGcmVlUGFyc2VyQ3R4dAkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU2V0dXBQYXJzZXJGb3JCdWZmZXIJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IHhtbENoYXIqIGJ1ZmZlciwKKwkJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCitYTUxQVUJGVU4geG1sUGFyc2VyQ3R4dFB0ciBYTUxDQUxMIAorCQl4bWxDcmVhdGVEb2NQYXJzZXJDdHh0CShjb25zdCB4bWxDaGFyICpjdXIpOworCisjaWZkZWYgTElCWE1MX0xFR0FDWV9FTkFCTEVECisvKgorICogUmVhZGluZy9zZXR0aW5nIG9wdGlvbmFsIHBhcnNpbmcgZmVhdHVyZXMuCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEdldEZlYXR1cmVzTGlzdAkoaW50ICpsZW4sCisJCQkJCSBjb25zdCBjaGFyICoqcmVzdWx0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEdldEZlYXR1cmUJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSBjb25zdCBjaGFyICpuYW1lLAorCQkJCQkgdm9pZCAqcmVzdWx0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFNldEZlYXR1cmUJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSBjb25zdCBjaGFyICpuYW1lLAorCQkJCQkgdm9pZCAqdmFsdWUpOworI2VuZGlmIC8qIExJQlhNTF9MRUdBQ1lfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAorLyoKKyAqIEludGVyZmFjZXMgZm9yIHRoZSBQdXNoIG1vZGUuCisgKi8KK1hNTFBVQkZVTiB4bWxQYXJzZXJDdHh0UHRyIFhNTENBTEwgCisJCXhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KHhtbFNBWEhhbmRsZXJQdHIgc2F4LAorCQkJCQkgdm9pZCAqdXNlcl9kYXRhLAorCQkJCQkgY29uc3QgY2hhciAqY2h1bmssCisJCQkJCSBpbnQgc2l6ZSwKKwkJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJIAorCQl4bWxQYXJzZUNodW5rCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgY29uc3QgY2hhciAqY2h1bmssCisJCQkJCSBpbnQgc2l6ZSwKKwkJCQkJIGludCB0ZXJtaW5hdGUpOworI2VuZGlmIC8qIExJQlhNTF9QVVNIX0VOQUJMRUQgKi8KKworLyoKKyAqIFNwZWNpYWwgSS9PIG1vZGUuCisgKi8KKworWE1MUFVCRlVOIHhtbFBhcnNlckN0eHRQdHIgWE1MQ0FMTCAKKwkJeG1sQ3JlYXRlSU9QYXJzZXJDdHh0CSh4bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJIHZvaWQgKnVzZXJfZGF0YSwKKwkJCQkJIHhtbElucHV0UmVhZENhbGxiYWNrICAgaW9yZWFkLAorCQkJCQkgeG1sSW5wdXRDbG9zZUNhbGxiYWNrICBpb2Nsb3NlLAorCQkJCQkgdm9pZCAqaW9jdHgsCisJCQkJCSB4bWxDaGFyRW5jb2RpbmcgZW5jKTsKKworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0UHRyIFhNTENBTEwgCisJCXhtbE5ld0lPSW5wdXRTdHJlYW0JKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0LAorCQkJCQkgeG1sQ2hhckVuY29kaW5nIGVuYyk7CisKKy8qCisgKiBOb2RlIGluZm9zLgorICovCitYTUxQVUJGVU4gY29uc3QgeG1sUGFyc2VyTm9kZUluZm8qIFhNTENBTEwKKwkJeG1sUGFyc2VyRmluZE5vZGVJbmZvCShjb25zdCB4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJICAgICAgICAgY29uc3QgeG1sTm9kZVB0ciBub2RlKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxJbml0Tm9kZUluZm9TZXEJKHhtbFBhcnNlck5vZGVJbmZvU2VxUHRyIHNlcSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sQ2xlYXJOb2RlSW5mb1NlcQkoeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgc2VxKTsKK1hNTFBVQkZVTiB1bnNpZ25lZCBsb25nIFhNTENBTEwgCisJCXhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4KGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvU2VxUHRyIHNlcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sTm9kZVB0ciBub2RlKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxQYXJzZXJBZGROb2RlSW5mbwkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgY29uc3QgeG1sUGFyc2VyTm9kZUluZm9QdHIgaW5mbyk7CisKKy8qCisgKiBFeHRlcm5hbCBlbnRpdGllcyBoYW5kbGluZyBhY3R1YWxseSBpbXBsZW1lbnRlZCBpbiB4bWxJTy4KKyAqLworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIgZik7CitYTUxQVUJGVU4geG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIgWE1MQ0FMTAorCQl4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcih2b2lkKTsKK1hNTFBVQkZVTiB4bWxQYXJzZXJJbnB1dFB0ciBYTUxDQUxMCisJCXhtbExvYWRFeHRlcm5hbEVudGl0eQkoY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqSUQsCisJCQkJCSB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworCisvKgorICogSW5kZXggbG9va3VwLCBhY3R1YWxseSBpbXBsZW1lbnRlZCBpbiB0aGUgZW5jb2RpbmcgbW9kdWxlCisgKi8KK1hNTFBVQkZVTiBsb25nIFhNTENBTEwKKwkJeG1sQnl0ZUNvbnN1bWVkCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKKworLyoKKyAqIE5ldyBzZXQgb2Ygc2ltcGxlci9tb3JlIGZsZXhpYmxlIEFQSXMKKyAqLworLyoqCisgKiB4bWxQYXJzZXJPcHRpb246CisgKgorICogVGhpcyBpcyB0aGUgc2V0IG9mIFhNTCBwYXJzZXIgb3B0aW9ucyB0aGF0IGNhbiBiZSBwYXNzZWQgZG93bgorICogdG8gdGhlIHhtbFJlYWREb2MoKSBhbmQgc2ltaWxhciBjYWxscy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfUEFSU0VfUkVDT1ZFUgk9IDE8PDAsCS8qIHJlY292ZXIgb24gZXJyb3JzICovCisgICAgWE1MX1BBUlNFX05PRU5UCT0gMTw8MSwJLyogc3Vic3RpdHV0ZSBlbnRpdGllcyAqLworICAgIFhNTF9QQVJTRV9EVERMT0FECT0gMTw8MiwJLyogbG9hZCB0aGUgZXh0ZXJuYWwgc3Vic2V0ICovCisgICAgWE1MX1BBUlNFX0RUREFUVFIJPSAxPDwzLAkvKiBkZWZhdWx0IERURCBhdHRyaWJ1dGVzICovCisgICAgWE1MX1BBUlNFX0RURFZBTElECT0gMTw8NCwJLyogdmFsaWRhdGUgd2l0aCB0aGUgRFREICovCisgICAgWE1MX1BBUlNFX05PRVJST1IJPSAxPDw1LAkvKiBzdXBwcmVzcyBlcnJvciByZXBvcnRzICovCisgICAgWE1MX1BBUlNFX05PV0FSTklORwk9IDE8PDYsCS8qIHN1cHByZXNzIHdhcm5pbmcgcmVwb3J0cyAqLworICAgIFhNTF9QQVJTRV9QRURBTlRJQwk9IDE8PDcsCS8qIHBlZGFudGljIGVycm9yIHJlcG9ydGluZyAqLworICAgIFhNTF9QQVJTRV9OT0JMQU5LUwk9IDE8PDgsCS8qIHJlbW92ZSBibGFuayBub2RlcyAqLworICAgIFhNTF9QQVJTRV9TQVgxCT0gMTw8OSwJLyogdXNlIHRoZSBTQVgxIGludGVyZmFjZSBpbnRlcm5hbGx5ICovCisgICAgWE1MX1BBUlNFX1hJTkNMVURFCT0gMTw8MTAsLyogSW1wbGVtZW50IFhJbmNsdWRlIHN1YnN0aXRpdGlvbiAgKi8KKyAgICBYTUxfUEFSU0VfTk9ORVQJPSAxPDwxMSwvKiBGb3JiaWQgbmV0d29yayBhY2Nlc3MgKi8KKyAgICBYTUxfUEFSU0VfTk9ESUNUCT0gMTw8MTIsLyogRG8gbm90IHJldXNlIHRoZSBjb250ZXh0IGRpY3Rpb25uYXJ5ICovCisgICAgWE1MX1BBUlNFX05TQ0xFQU4JPSAxPDwxMywvKiByZW1vdmUgcmVkdW5kYW50IG5hbWVzcGFjZXMgZGVjbGFyYXRpb25zICovCisgICAgWE1MX1BBUlNFX05PQ0RBVEEJPSAxPDwxNCwvKiBtZXJnZSBDREFUQSBhcyB0ZXh0IG5vZGVzICovCisgICAgWE1MX1BBUlNFX05PWElOQ05PREU9IDE8PDE1LC8qIGRvIG5vdCBnZW5lcmF0ZSBYSU5DTFVERSBTVEFSVC9FTkQgbm9kZXMgKi8KKyAgICBYTUxfUEFSU0VfQ09NUEFDVCAgID0gMTw8MTYsLyogY29tcGFjdCBzbWFsbCB0ZXh0IG5vZGVzOyBubyBtb2RpZmljYXRpb24gb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHRyZWUgYWxsb3dlZCBhZnRlcndhcmRzICh3aWxsIHBvc3NpYmx5CisJCQkJICAgY3Jhc2ggaWYgeW91IHRyeSB0byBtb2RpZnkgdGhlIHRyZWUpICovCisgICAgWE1MX1BBUlNFX09MRDEwCT0gMTw8MTcsLyogcGFyc2UgdXNpbmcgWE1MLTEuMCBiZWZvcmUgdXBkYXRlIDUgKi8KKyAgICBYTUxfUEFSU0VfTk9CQVNFRklYID0gMTw8MTgsLyogZG8gbm90IGZpeHVwIFhJTkNMVURFIHhtbDpiYXNlIHVyaXMgKi8KKyAgICBYTUxfUEFSU0VfSFVHRSAgICAgID0gMTw8MTksIC8qIHJlbGF4IGFueSBoYXJkY29kZWQgbGltaXQgZnJvbSB0aGUgcGFyc2VyICovCisgICAgWE1MX1BBUlNFX09MRFNBWCAgICA9IDE8PDIwIC8qIHBhcnNlIHVzaW5nIFNBWDIgaW50ZXJmYWNlIGZyb20gYmVmb3JlIDIuNy4wICovCit9IHhtbFBhcnNlck9wdGlvbjsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQl4bWxDdHh0UmVzZXQJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbEN0eHRSZXNldFB1c2gJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IGNoYXIgKmNodW5rLAorCQkJCQkgaW50IHNpemUsCisJCQkJCSBjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxDdHh0VXNlT3B0aW9ucwkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCisJCXhtbFJlYWREb2MJCShjb25zdCB4bWxDaGFyICpjdXIsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAorCQl4bWxSZWFkRmlsZQkJKGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCisJCXhtbFJlYWRNZW1vcnkJCShjb25zdCBjaGFyICpidWZmZXIsCisJCQkJCSBpbnQgc2l6ZSwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCisJCXhtbFJlYWRGZAkJKGludCBmZCwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCisJCXhtbFJlYWRJTwkJKHhtbElucHV0UmVhZENhbGxiYWNrIGlvcmVhZCwKKwkJCQkJIHhtbElucHV0Q2xvc2VDYWxsYmFjayBpb2Nsb3NlLAorCQkJCQkgdm9pZCAqaW9jdHgsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAorCQl4bWxDdHh0UmVhZERvYwkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmN1ciwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCisJCXhtbEN0eHRSZWFkRmlsZQkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4geG1sRG9jUHRyIFhNTENBTEwKKwkJeG1sQ3R4dFJlYWRNZW1vcnkJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSBjb25zdCBjaGFyICpidWZmZXIsCisJCQkJCSBpbnQgc2l6ZSwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCisJCXhtbEN0eHRSZWFkRmQJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSBpbnQgZmQsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiB4bWxEb2NQdHIgWE1MQ0FMTAorCQl4bWxDdHh0UmVhZElPCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sSW5wdXRSZWFkQ2FsbGJhY2sgaW9yZWFkLAorCQkJCQkgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGlvY2xvc2UsCisJCQkJCSB2b2lkICppb2N0eCwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworCisvKgorICogTGlicmFyeSB3aWRlIG9wdGlvbnMKKyAqLworLyoqCisgKiB4bWxGZWF0dXJlOgorICoKKyAqIFVzZWQgdG8gZXhhbWluZSB0aGUgZXhpc3RhbmNlIG9mIGZlYXR1cmVzIHRoYXQgY2FuIGJlIGVuYWJsZWQKKyAqIG9yIGRpc2FibGVkIGF0IGNvbXBpbGUtdGltZS4KKyAqIFRoZXkgdXNlZCB0byBiZSBjYWxsZWQgWE1MX0ZFQVRVUkVfeHh4IGJ1dCB0aGlzIGNsYXNoZWQgd2l0aCBFeHBhdAorICovCit0eXBlZGVmIGVudW0geworICAgIFhNTF9XSVRIX1RIUkVBRCA9IDEsCisgICAgWE1MX1dJVEhfVFJFRSA9IDIsCisgICAgWE1MX1dJVEhfT1VUUFVUID0gMywKKyAgICBYTUxfV0lUSF9QVVNIID0gNCwKKyAgICBYTUxfV0lUSF9SRUFERVIgPSA1LAorICAgIFhNTF9XSVRIX1BBVFRFUk4gPSA2LAorICAgIFhNTF9XSVRIX1dSSVRFUiA9IDcsCisgICAgWE1MX1dJVEhfU0FYMSA9IDgsCisgICAgWE1MX1dJVEhfRlRQID0gOSwKKyAgICBYTUxfV0lUSF9IVFRQID0gMTAsCisgICAgWE1MX1dJVEhfVkFMSUQgPSAxMSwKKyAgICBYTUxfV0lUSF9IVE1MID0gMTIsCisgICAgWE1MX1dJVEhfTEVHQUNZID0gMTMsCisgICAgWE1MX1dJVEhfQzE0TiA9IDE0LAorICAgIFhNTF9XSVRIX0NBVEFMT0cgPSAxNSwKKyAgICBYTUxfV0lUSF9YUEFUSCA9IDE2LAorICAgIFhNTF9XSVRIX1hQVFIgPSAxNywKKyAgICBYTUxfV0lUSF9YSU5DTFVERSA9IDE4LAorICAgIFhNTF9XSVRIX0lDT05WID0gMTksCisgICAgWE1MX1dJVEhfSVNPODg1OVggPSAyMCwKKyAgICBYTUxfV0lUSF9VTklDT0RFID0gMjEsCisgICAgWE1MX1dJVEhfUkVHRVhQID0gMjIsCisgICAgWE1MX1dJVEhfQVVUT01BVEEgPSAyMywKKyAgICBYTUxfV0lUSF9FWFBSID0gMjQsCisgICAgWE1MX1dJVEhfU0NIRU1BUyA9IDI1LAorICAgIFhNTF9XSVRIX1NDSEVNQVRST04gPSAyNiwKKyAgICBYTUxfV0lUSF9NT0RVTEVTID0gMjcsCisgICAgWE1MX1dJVEhfREVCVUcgPSAyOCwKKyAgICBYTUxfV0lUSF9ERUJVR19NRU0gPSAyOSwKKyAgICBYTUxfV0lUSF9ERUJVR19SVU4gPSAzMCwKKyAgICBYTUxfV0lUSF9aTElCID0gMzEsCisgICAgWE1MX1dJVEhfTk9ORSA9IDk5OTk5IC8qIGp1c3QgdG8gYmUgc3VyZSBvZiBhbGxvY2F0aW9uIHNpemUgKi8KK30geG1sRmVhdHVyZTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbEhhc0ZlYXR1cmUJCSh4bWxGZWF0dXJlIGZlYXR1cmUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8qIF9fWE1MX1BBUlNFUl9IX18gKi8KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVlNzViNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvcGFyc2VySW50ZXJuYWxzLmgKQEAgLTAsMCArMSw2MTEgQEAKKy8qCisgKiBTdW1tYXJ5OiBpbnRlcm5hbHMgcm91dGluZXMgZXhwb3J0ZWQgYnkgdGhlIHBhcnNlci4KKyAqIERlc2NyaXB0aW9uOiB0aGlzIG1vZHVsZSBleHBvcnRzIGEgbnVtYmVyIG9mIGludGVybmFsIHBhcnNpbmcgcm91dGluZXMKKyAqICAgICAgICAgICAgICB0aGV5IGFyZSBub3QgcmVhbGx5IGFsbCBpbnRlbmRlZCBmb3IgYXBwbGljYXRpb25zIGJ1dAorICogICAgICAgICAgICAgIGNhbiBwcm92ZSB1c2VmdWwgZG9pbmcgbG93IGxldmVsIHByb2Nlc3NpbmcuCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9QQVJTRVJfSU5URVJOQUxTX0hfXworI2RlZmluZSBfX1hNTF9QQVJTRVJfSU5URVJOQUxTX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUxwYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvY2h2YWxpZC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogeG1sUGFyc2VyTWF4RGVwdGg6CisgKgorICogYXJiaXRyYXJ5IGRlcHRoIGxpbWl0IGZvciB0aGUgWE1MIGRvY3VtZW50cyB0aGF0IHdlIGFsbG93IHRvCisgKiBwcm9jZXNzLiBUaGlzIGlzIG5vdCBhIGxpbWl0YXRpb24gb2YgdGhlIHBhcnNlciBidXQgYSBzYWZldHkKKyAqIGJvdW5kYXJ5IGZlYXR1cmUsIHVzZSBYTUxfUEFSU0VfSFVHRSBvcHRpb24gdG8gb3ZlcnJpZGUgaXQuCisgKi8KK1hNTFBVQlZBUiB1bnNpZ25lZCBpbnQgeG1sUGFyc2VyTWF4RGVwdGg7CisKKy8qKgorICogWE1MX01BWF9URVhUX0xFTkdUSDoKKyAqCisgKiBNYXhpbXVtIHNpemUgYWxsb3dlZCBmb3IgYSBzaW5nbGUgdGV4dCBub2RlIHdoZW4gYnVpbGRpbmcgYSB0cmVlLgorICogVGhpcyBpcyBub3QgYSBsaW1pdGF0aW9uIG9mIHRoZSBwYXJzZXIgYnV0IGEgc2FmZXR5IGJvdW5kYXJ5IGZlYXR1cmUsCisgKiB1c2UgWE1MX1BBUlNFX0hVR0Ugb3B0aW9uIHRvIG92ZXJyaWRlIGl0LgorICovCisjZGVmaW5lIFhNTF9NQVhfVEVYVF9MRU5HVEggMTAwMDAwMDAKKworLyoqCisgKiBYTUxfTUFYX05BTUVMRU46CisgKgorICogSWRlbnRpZmllcnMgY2FuIGJlIGxvbmdlciwgYnV0IHRoaXMgd2lsbCBiZSBtb3JlIGNvc3RseQorICogYXQgcnVudGltZS4KKyAqLworI2RlZmluZSBYTUxfTUFYX05BTUVMRU4gMTAwCisKKy8qKgorICogSU5QVVRfQ0hVTks6CisgKgorICogVGhlIHBhcnNlciB0cmllcyB0byBhbHdheXMgaGF2ZSB0aGF0IGFtb3VudCBvZiBpbnB1dCByZWFkeS4KKyAqIE9uZSBvZiB0aGUgcG9pbnQgaXMgcHJvdmlkaW5nIGNvbnRleHQgd2hlbiByZXBvcnRpbmcgZXJyb3JzLgorICovCisjZGVmaW5lIElOUFVUX0NIVU5LCTI1MAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIFVOSUNPREUgdmVyc2lvbiBvZiB0aGUgbWFjcm9zLiAgICAgIAkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBJU19CWVRFX0NIQVI6CisgKiBAYzogIGFuIGJ5dGUgdmFsdWUgKGludCkKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOgorICoKKyAqIFsyXSBDaGFyIDo6PSAjeDkgfCAjeEEgfCAjeEQgfCBbI3gyMC4uLl0KKyAqIGFueSBieXRlIGNoYXJhY3RlciBpbiB0aGUgYWNjZXB0ZWQgcmFuZ2UKKyAqLworI2RlZmluZSBJU19CWVRFX0NIQVIoYykJIHhtbElzQ2hhcl9jaChjKQorCisvKioKKyAqIElTX0NIQVI6CisgKiBAYzogIGFuIFVOSUNPREUgdmFsdWUgKGludCkKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOgorICoKKyAqIFsyXSBDaGFyIDo6PSAjeDkgfCAjeEEgfCAjeEQgfCBbI3gyMC0jeEQ3RkZdIHwgWyN4RTAwMC0jeEZGRkRdCisgKiAgICAgICAgICAgICAgICAgIHwgWyN4MTAwMDAtI3gxMEZGRkZdCisgKiBhbnkgVW5pY29kZSBjaGFyYWN0ZXIsIGV4Y2x1ZGluZyB0aGUgc3Vycm9nYXRlIGJsb2NrcywgRkZGRSwgYW5kIEZGRkYuCisgKi8KKyNkZWZpbmUgSVNfQ0hBUihjKSAgIHhtbElzQ2hhclEoYykKKworLyoqCisgKiBJU19DSEFSX0NIOgorICogQGM6IGFuIHhtbENoYXIgKHVzdWFsbHkgYW4gdW5zaWduZWQgY2hhcikKKyAqCisgKiBCZWhhdmVzIGxpa2UgSVNfQ0hBUiBvbiBzaW5nbGUtYnl0ZSB2YWx1ZQorICovCisjZGVmaW5lIElTX0NIQVJfQ0goYykgIHhtbElzQ2hhcl9jaChjKQorCisvKioKKyAqIElTX0JMQU5LOgorICogQGM6ICBhbiBVTklDT0RFIHZhbHVlIChpbnQpCisgKgorICogTWFjcm8gdG8gY2hlY2sgdGhlIGZvbGxvd2luZyBwcm9kdWN0aW9uIGluIHRoZSBYTUwgc3BlYzoKKyAqCisgKiBbM10gUyA6Oj0gKCN4MjAgfCAjeDkgfCAjeEQgfCAjeEEpKworICovCisjZGVmaW5lIElTX0JMQU5LKGMpICB4bWxJc0JsYW5rUShjKQorCisvKioKKyAqIElTX0JMQU5LX0NIOgorICogQGM6ICBhbiB4bWxDaGFyIHZhbHVlIChub3JtYWxseSB1bnNpZ25lZCBjaGFyKQorICoKKyAqIEJlaGF2aW91ciBzYW1lIGFzIElTX0JMQU5LCisgKi8KKyNkZWZpbmUgSVNfQkxBTktfQ0goYykgIHhtbElzQmxhbmtfY2goYykKKworLyoqCisgKiBJU19CQVNFQ0hBUjoKKyAqIEBjOiAgYW4gVU5JQ09ERSB2YWx1ZSAoaW50KQorICoKKyAqIE1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6CisgKgorICogWzg1XSBCYXNlQ2hhciA6Oj0gLi4uIGxvbmcgbGlzdCBzZWUgUkVDIC4uLgorICovCisjZGVmaW5lIElTX0JBU0VDSEFSKGMpIHhtbElzQmFzZUNoYXJRKGMpCisKKy8qKgorICogSVNfRElHSVQ6CisgKiBAYzogIGFuIFVOSUNPREUgdmFsdWUgKGludCkKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOgorICoKKyAqIFs4OF0gRGlnaXQgOjo9IC4uLiBsb25nIGxpc3Qgc2VlIFJFQyAuLi4KKyAqLworI2RlZmluZSBJU19ESUdJVChjKSB4bWxJc0RpZ2l0UShjKQorCisvKioKKyAqIElTX0RJR0lUX0NIOgorICogQGM6ICBhbiB4bWxDaGFyIHZhbHVlICh1c3VhbGx5IGFuIHVuc2lnbmVkIGNoYXIpCisgKgorICogQmVoYXZlcyBsaWtlIElTX0RJR0lUIGJ1dCB3aXRoIGEgc2luZ2xlIGJ5dGUgYXJndW1lbnQKKyAqLworI2RlZmluZSBJU19ESUdJVF9DSChjKSAgeG1sSXNEaWdpdF9jaChjKQorCisvKioKKyAqIElTX0NPTUJJTklORzoKKyAqIEBjOiAgYW4gVU5JQ09ERSB2YWx1ZSAoaW50KQorICoKKyAqIE1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6CisgKgorICogWzg3XSBDb21iaW5pbmdDaGFyIDo6PSAuLi4gbG9uZyBsaXN0IHNlZSBSRUMgLi4uCisgKi8KKyNkZWZpbmUgSVNfQ09NQklOSU5HKGMpIHhtbElzQ29tYmluaW5nUShjKQorCisvKioKKyAqIElTX0NPTUJJTklOR19DSDoKKyAqIEBjOiAgYW4geG1sQ2hhciAodXN1YWxseSBhbiB1bnNpZ25lZCBjaGFyKQorICoKKyAqIEFsd2F5cyBmYWxzZSAoYWxsIGNvbWJpbmluZyBjaGFycyA+IDB4ZmYpCisgKi8KKyNkZWZpbmUgSVNfQ09NQklOSU5HX0NIKGMpIDAgCisKKy8qKgorICogSVNfRVhURU5ERVI6CisgKiBAYzogIGFuIFVOSUNPREUgdmFsdWUgKGludCkKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOgorICoKKyAqCisgKiBbODldIEV4dGVuZGVyIDo6PSAjeDAwQjcgfCAjeDAyRDAgfCAjeDAyRDEgfCAjeDAzODcgfCAjeDA2NDAgfAorICogICAgICAgICAgICAgICAgICAgI3gwRTQ2IHwgI3gwRUM2IHwgI3gzMDA1IHwgWyN4MzAzMS0jeDMwMzVdIHwKKyAqICAgICAgICAgICAgICAgICAgIFsjeDMwOUQtI3gzMDlFXSB8IFsjeDMwRkMtI3gzMEZFXQorICovCisjZGVmaW5lIElTX0VYVEVOREVSKGMpIHhtbElzRXh0ZW5kZXJRKGMpCisKKy8qKgorICogSVNfRVhURU5ERVJfQ0g6CisgKiBAYzogIGFuIHhtbENoYXIgdmFsdWUgKHVzdWFsbHkgYW4gdW5zaWduZWQgY2hhcikKKyAqCisgKiBCZWhhdmVzIGxpa2UgSVNfRVhURU5ERVIgYnV0IHdpdGggYSBzaW5nbGUtYnl0ZSBhcmd1bWVudAorICovCisjZGVmaW5lIElTX0VYVEVOREVSX0NIKGMpICB4bWxJc0V4dGVuZGVyX2NoKGMpCisKKy8qKgorICogSVNfSURFT0dSQVBISUM6CisgKiBAYzogIGFuIFVOSUNPREUgdmFsdWUgKGludCkKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOgorICoKKyAqCisgKiBbODZdIElkZW9ncmFwaGljIDo6PSBbI3g0RTAwLSN4OUZBNV0gfCAjeDMwMDcgfCBbI3gzMDIxLSN4MzAyOV0KKyAqLworI2RlZmluZSBJU19JREVPR1JBUEhJQyhjKSB4bWxJc0lkZW9ncmFwaGljUShjKQorCisvKioKKyAqIElTX0xFVFRFUjoKKyAqIEBjOiAgYW4gVU5JQ09ERSB2YWx1ZSAoaW50KQorICoKKyAqIE1hY3JvIHRvIGNoZWNrIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBpbiB0aGUgWE1MIHNwZWM6CisgKgorICoKKyAqIFs4NF0gTGV0dGVyIDo6PSBCYXNlQ2hhciB8IElkZW9ncmFwaGljIAorICovCisjZGVmaW5lIElTX0xFVFRFUihjKSAoSVNfQkFTRUNIQVIoYykgfHwgSVNfSURFT0dSQVBISUMoYykpCisKKy8qKgorICogSVNfTEVUVEVSX0NIOgorICogQGM6ICBhbiB4bWxDaGFyIHZhbHVlIChub3JtYWxseSB1bnNpZ25lZCBjaGFyKQorICoKKyAqIE1hY3JvIGJlaGF2ZXMgbGlrZSBJU19MRVRURVIsIGJ1dCBvbmx5IGNoZWNrIGJhc2UgY2hhcnMKKyAqCisgKi8KKyNkZWZpbmUgSVNfTEVUVEVSX0NIKGMpIHhtbElzQmFzZUNoYXJfY2goYykKKworLyoqCisgKiBJU19BU0NJSV9MRVRURVI6CisgKiBAYzogYW4geG1sQ2hhciB2YWx1ZQorICoKKyAqIE1hY3JvIHRvIGNoZWNrIFthLXpBLVpdCisgKgorICovCisjZGVmaW5lIElTX0FTQ0lJX0xFVFRFUihjKQkoKCgweDQxIDw9IChjKSkgJiYgKChjKSA8PSAweDVhKSkgfHwgXAorCQkJCSAoKDB4NjEgPD0gKGMpKSAmJiAoKGMpIDw9IDB4N2EpKSkKKworLyoqCisgKiBJU19BU0NJSV9ESUdJVDoKKyAqIEBjOiBhbiB4bWxDaGFyIHZhbHVlCisgKgorICogTWFjcm8gdG8gY2hlY2sgWzAtOV0KKyAqCisgKi8KKyNkZWZpbmUgSVNfQVNDSUlfRElHSVQoYykJKCgweDMwIDw9IChjKSkgJiYgKChjKSA8PSAweDM5KSkKKworLyoqCisgKiBJU19QVUJJRENIQVI6CisgKiBAYzogIGFuIFVOSUNPREUgdmFsdWUgKGludCkKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGUgZm9sbG93aW5nIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjOgorICoKKyAqCisgKiBbMTNdIFB1YmlkQ2hhciA6Oj0gI3gyMCB8ICN4RCB8ICN4QSB8IFthLXpBLVowLTldIHwgWy0nKCkrLC4vOj0/OyEqI0AkXyVdCisgKi8KKyNkZWZpbmUgSVNfUFVCSURDSEFSKGMpCXhtbElzUHViaWRDaGFyUShjKQorCisvKioKKyAqIElTX1BVQklEQ0hBUl9DSDoKKyAqIEBjOiAgYW4geG1sQ2hhciB2YWx1ZSAobm9ybWFsbHkgdW5zaWduZWQgY2hhcikKKyAqCisgKiBTYW1lIGFzIElTX1BVQklEQ0hBUiBidXQgZm9yIHNpbmdsZS1ieXRlIHZhbHVlCisgKi8KKyNkZWZpbmUgSVNfUFVCSURDSEFSX0NIKGMpIHhtbElzUHViaWRDaGFyX2NoKGMpCisKKy8qKgorICogU0tJUF9FT0w6CisgKiBAcDogIGFuZCBVVEY4IHN0cmluZyBwb2ludGVyCisgKgorICogU2tpcHMgdGhlIGVuZCBvZiBsaW5lIGNoYXJzLgorICovCisjZGVmaW5lIFNLSVBfRU9MKHApIAkJCQkJCQlcCisgICAgaWYgKCoocCkgPT0gMHgxMykgeyBwKysgOyBpZiAoKihwKSA9PSAweDEwKSBwKys7IH0JCQlcCisgICAgaWYgKCoocCkgPT0gMHgxMCkgeyBwKysgOyBpZiAoKihwKSA9PSAweDEzKSBwKys7IH0KKworLyoqCisgKiBNT1ZFVE9fRU5EVEFHOgorICogQHA6ICBhbmQgVVRGOCBzdHJpbmcgcG9pbnRlcgorICoKKyAqIFNraXBzIHRvIHRoZSBuZXh0ICc+JyBjaGFyLgorICovCisjZGVmaW5lIE1PVkVUT19FTkRUQUcocCkJCQkJCQlcCisgICAgd2hpbGUgKCgqcCkgJiYgKCoocCkgIT0gJz4nKSkgKHApKysKKworLyoqCisgKiBNT1ZFVE9fU1RBUlRUQUc6CisgKiBAcDogIGFuZCBVVEY4IHN0cmluZyBwb2ludGVyCisgKgorICogU2tpcHMgdG8gdGhlIG5leHQgJzwnIGNoYXIuCisgKi8KKyNkZWZpbmUgTU9WRVRPX1NUQVJUVEFHKHApCQkJCQkJXAorICAgIHdoaWxlICgoKnApICYmICgqKHApICE9ICc8JykpIChwKSsrCisKKy8qKgorICogR2xvYmFsIHZhcmlhYmxlcyB1c2VkIGZvciBwcmVkZWZpbmVkIHN0cmluZ3MuCisgKi8KK1hNTFBVQlZBUiBjb25zdCB4bWxDaGFyIHhtbFN0cmluZ1RleHRbXTsKK1hNTFBVQlZBUiBjb25zdCB4bWxDaGFyIHhtbFN0cmluZ1RleHROb2VuY1tdOworWE1MUFVCVkFSIGNvbnN0IHhtbENoYXIgeG1sU3RyaW5nQ29tbWVudFtdOworCisvKgorICogRnVuY3Rpb24gdG8gZmluaXNoIHRoZSB3b3JrIG9mIHRoZSBtYWNyb3Mgd2hlcmUgbmVlZGVkLgorICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwgICAgICAgICAgICAgICAgICAgeG1sSXNMZXR0ZXIgICAgIChpbnQgYyk7CisKKy8qKgorICogUGFyc2VyIGNvbnRleHQuCisgKi8KK1hNTFBVQkZVTiB4bWxQYXJzZXJDdHh0UHRyIFhNTENBTEwJCisJCQl4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dAkoY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIHhtbFBhcnNlckN0eHRQdHIgWE1MQ0FMTAkKKwkJCXhtbENyZWF0ZVVSTFBhcnNlckN0eHQJKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiB4bWxQYXJzZXJDdHh0UHRyIFhNTENBTEwJCisJCQl4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KGNvbnN0IGNoYXIgKmJ1ZmZlciwKKwkJCQkJCSBpbnQgc2l6ZSk7CitYTUxQVUJGVU4geG1sUGFyc2VyQ3R4dFB0ciBYTUxDQUxMCQorCQkJeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dChjb25zdCB4bWxDaGFyICpVUkwsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqSUQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqYmFzZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCXhtbFN3aXRjaEVuY29kaW5nCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgeG1sQ2hhckVuY29kaW5nIGVuYyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCXhtbFN3aXRjaFRvRW5jb2RpbmcJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCXhtbFN3aXRjaElucHV0RW5jb2RpbmcJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCwKKwkJCQkJIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcik7CisKKyNpZmRlZiBJTl9MSUJYTUwKKy8qIGludGVybmFsIGVycm9yIHJlcG9ydGluZyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkJX194bWxFcnJFbmNvZGluZwkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkJIHhtbFBhcnNlckVycm9ycyB4bWxlcnIsCisJCQkJCQkgY29uc3QgY2hhciAqbXNnLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKiBzdHIxLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKiBzdHIyKTsKKyNlbmRpZgorCisvKioKKyAqIElucHV0IFN0cmVhbXMuCisgKi8KK1hNTFBVQkZVTiB4bWxQYXJzZXJJbnB1dFB0ciBYTUxDQUxMCQorCQkJeG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0JKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpidWZmZXIpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0UHRyIFhNTENBTEwJCisJCQl4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkJIHhtbEVudGl0eVB0ciBlbnRpdHkpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxQdXNoSW5wdXQJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQpOworWE1MUFVCRlVOIHhtbENoYXIgWE1MQ0FMTAkJCQorCQkJeG1sUG9wSW5wdXQJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sRnJlZUlucHV0U3RyZWFtCSh4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCk7CitYTUxQVUJGVU4geG1sUGFyc2VySW5wdXRQdHIgWE1MQ0FMTAkKKwkJCXhtbE5ld0lucHV0RnJvbUZpbGUJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSBjb25zdCBjaGFyICpmaWxlbmFtZSk7CitYTUxQVUJGVU4geG1sUGFyc2VySW5wdXRQdHIgWE1MQ0FMTAkKKwkJCXhtbE5ld0lucHV0U3RyZWFtCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworCisvKioKKyAqIE5hbWVzcGFjZXMuCisgKi8KK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxTcGxpdFFOYW1lCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgeG1sQ2hhciAqKnByZWZpeCk7CisKKy8qKgorICogR2VuZXJpYyBwcm9kdWN0aW9uIHJ1bGVzLgorICovCitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwJCQorCQkJeG1sUGFyc2VOYW1lCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxQYXJzZU5tdG9rZW4JCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQkKKwkJCXhtbFBhcnNlRW50aXR5VmFsdWUJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSB4bWxDaGFyICoqb3JpZyk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCQorCQkJeG1sUGFyc2VBdHRWYWx1ZQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxQYXJzZVN5c3RlbUxpdGVyYWwJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCQorCQkJeG1sUGFyc2VQdWJpZExpdGVyYWwJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZUNoYXJEYXRhCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgaW50IGNkYXRhKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxQYXJzZUV4dGVybmFsSUQJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSB4bWxDaGFyICoqcHVibGljSUQsCisJCQkJCQkgaW50IHN0cmljdCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZUNvbW1lbnQJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCQkKKwkJCXhtbFBhcnNlUElUYXJnZXQJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZVBJCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlTm90YXRpb25EZWNsCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sUGFyc2VFbnRpdHlEZWNsCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZURlZmF1bHREZWNsCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgeG1sQ2hhciAqKnZhbHVlKTsKK1hNTFBVQkZVTiB4bWxFbnVtZXJhdGlvblB0ciBYTUxDQUxMCQorCQkJeG1sUGFyc2VOb3RhdGlvblR5cGUJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4geG1sRW51bWVyYXRpb25QdHIgWE1MQ0FMTAkKKwkJCXhtbFBhcnNlRW51bWVyYXRpb25UeXBlCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZUVudW1lcmF0ZWRUeXBlCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgeG1sRW51bWVyYXRpb25QdHIgKnRyZWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZUF0dHJpYnV0ZVR5cGUJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSB4bWxFbnVtZXJhdGlvblB0ciAqdHJlZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4geG1sRWxlbWVudENvbnRlbnRQdHIgWE1MQ0FMTAkKKwkJCXhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2wKKwkJCQkJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgaW50IGlucHV0Y2hrKTsKK1hNTFBVQkZVTiB4bWxFbGVtZW50Q29udGVudFB0ciBYTUxDQUxMCQorCQkJeG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbAorCQkJCQkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSBpbnQgaW5wdXRjaGspOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJCSB4bWxFbGVtZW50Q29udGVudFB0ciAqcmVzdWx0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCQorCQkJeG1sUGFyc2VFbGVtZW50RGVjbAkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlTWFya3VwRGVjbAkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCQorCQkJeG1sUGFyc2VDaGFyUmVmCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxFbnRpdHlQdHIgWE1MQ0FMTAkJCisJCQl4bWxQYXJzZUVudGl0eVJlZgkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlUmVmZXJlbmNlCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sUGFyc2VQRVJlZmVyZW5jZQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlRG9jVHlwZURlY2wJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCQkKKwkJCXhtbFBhcnNlQXR0cmlidXRlCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgeG1sQ2hhciAqKnZhbHVlKTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxQYXJzZVN0YXJ0VGFnCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sUGFyc2VFbmRUYWcJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlQ0RTZWN0CQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlQ29udGVudAkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZUVsZW1lbnQJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQkKKwkJCXhtbFBhcnNlVmVyc2lvbk51bQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxQYXJzZVZlcnNpb25JbmZvCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQkKKwkJCXhtbFBhcnNlRW5jTmFtZQkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwJCQorCQkJeG1sUGFyc2VFbmNvZGluZ0RlY2wJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlU0REZWNsCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlWE1MRGVjbAkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxQYXJzZVRleHREZWNsCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkJeG1sUGFyc2VNaXNjCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJCXhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKlN5c3RlbUlEKTsgCisvKioKKyAqIFhNTF9TVUJTVElUVVRFX05PTkU6CisgKgorICogSWYgbm8gZW50aXRpZXMgbmVlZCB0byBiZSBzdWJzdGl0dXRlZC4KKyAqLworI2RlZmluZSBYTUxfU1VCU1RJVFVURV9OT05FCTAKKy8qKgorICogWE1MX1NVQlNUSVRVVEVfUkVGOgorICoKKyAqIFdoZXRoZXIgZ2VuZXJhbCBlbnRpdGllcyBuZWVkIHRvIGJlIHN1YnN0aXR1dGVkLgorICovCisjZGVmaW5lIFhNTF9TVUJTVElUVVRFX1JFRgkxCisvKioKKyAqIFhNTF9TVUJTVElUVVRFX1BFUkVGOgorICoKKyAqIFdoZXRoZXIgcGFyYW1ldGVyIGVudGl0aWVzIG5lZWQgdG8gYmUgc3Vic3RpdHV0ZWQuCisgKi8KKyNkZWZpbmUgWE1MX1NVQlNUSVRVVEVfUEVSRUYJMgorLyoqCisgKiBYTUxfU1VCU1RJVFVURV9CT1RIOgorICoKKyAqIEJvdGggZ2VuZXJhbCBhbmQgcGFyYW1ldGVyIGVudGl0aWVzIG5lZWQgdG8gYmUgc3Vic3RpdHV0ZWQuCisgKi8KKyNkZWZpbmUgWE1MX1NVQlNUSVRVVEVfQk9USCAJMworCitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqc3RyLAorCQkJCQkJIGludCB3aGF0LAorCQkJCQkJIHhtbENoYXIgZW5kLAorCQkJCQkJIHhtbENoYXIgIGVuZDIsCisJCQkJCQkgeG1sQ2hhciBlbmQzKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQl4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcwkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnN0ciwKKwkJCQkJCSBpbnQgbGVuLAorCQkJCQkJIGludCB3aGF0LAorCQkJCQkJIHhtbENoYXIgZW5kLAorCQkJCQkJIHhtbENoYXIgIGVuZDIsCisJCQkJCQkgeG1sQ2hhciBlbmQzKTsKKworLyoKKyAqIEdlbmVyYXRlZCBieSBNQUNST1Mgb24gdG9wIG9mIHBhcnNlci5jIGMuZi4gUFVTSF9BTkRfUE9QLgorICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQlub2RlUHVzaAkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSB4bWxOb2RlUHRyIHZhbHVlKTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCW5vZGVQb3AJCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCWlucHV0UHVzaAkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJCSB4bWxQYXJzZXJJbnB1dFB0ciB2YWx1ZSk7CitYTUxQVUJGVU4geG1sUGFyc2VySW5wdXRQdHIgWE1MQ0FMTAlpbnB1dFBvcAkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwJbmFtZVBvcAkJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJbmFtZVB1c2gJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqdmFsdWUpOworCisvKgorICogb3RoZXIgY29tbW9kaXRpZXMgc2hhcmVkIGJldHdlZW4gcGFyc2VyLmMgYW5kIHBhcnNlckludGVybmFscy4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJeG1sU2tpcEJsYW5rQ2hhcnMJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQl4bWxTdHJpbmdDdXJyZW50Q2hhcgkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmN1ciwKKwkJCQkJCSBpbnQgKmxlbik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCXhtbENoZWNrTGFuZ3VhZ2VJRAkoY29uc3QgeG1sQ2hhciAqbGFuZyk7CisKKy8qCisgKiBSZWFsbHkgY29yZSBmdW5jdGlvbiBzaGFyZWQgd2l0aCBIVE1MIHBhcnNlci4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJeG1sQ3VycmVudENoYXIJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgaW50ICpsZW4pOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQl4bWxDb3B5Q2hhck11bHRpQnl0ZQkoeG1sQ2hhciAqb3V0LAorCQkJCQkJIGludCB2YWwpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkJeG1sQ29weUNoYXIJCShpbnQgbGVuLAorCQkJCQkJIHhtbENoYXIgKm91dCwKKwkJCQkJCSBpbnQgdmFsKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQl4bWxOZXh0Q2hhcgkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJeG1sUGFyc2VySW5wdXRTaHJpbmsJKHhtbFBhcnNlcklucHV0UHRyIGluKTsKKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKy8qCisgKiBBY3R1YWxseSBjb21lcyBmcm9tIHRoZSBIVE1MIHBhcnNlciBidXQgbGF1bmNoZWQgZnJvbSB0aGUgaW5pdCBzdHVmZi4KKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCWh0bWxJbml0QXV0b0Nsb3NlCSh2b2lkKTsKK1hNTFBVQkZVTiBodG1sUGFyc2VyQ3R4dFB0ciBYTUxDQUxMCWh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dChjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKKyNlbmRpZgorCisvKgorICogU3BlY2lmaWMgZnVuY3Rpb24gdG8ga2VlcCB0cmFjayBvZiBlbnRpdGllcyByZWZlcmVuY2VzCisgKiBhbmQgdXNlZCBieSB0aGUgWFNMVCBkZWJ1Z2dlci4KKyAqLworI2lmZGVmIExJQlhNTF9MRUdBQ1lfRU5BQkxFRAorLyoqCisgKiB4bWxFbnRpdHlSZWZlcmVuY2VGdW5jOgorICogQGVudDogdGhlIGVudGl0eQorICogQGZpcnN0Tm9kZTogIHRoZSBmaXN0IG5vZGUgaW4gdGhlIGNodW5rCisgKiBAbGFzdE5vZGU6ICB0aGUgbGFzdCBub2QgaW4gdGhlIGNodW5rCisgKgorICogQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCB3aGVuIG9uZSBuZWVkcyB0byBiZSBhYmxlIHRvIHRyYWNrIGJhY2sgdGhlCisgKiBwcm92ZW5hbmNlIG9mIGEgY2h1bmsgb2Ygbm9kZXMgaW5oZXJpdGVkIGZyb20gYW4gZW50aXR5IHJlcGxhY2VtZW50LgorICovCit0eXBlZGVmCXZvaWQJKCp4bWxFbnRpdHlSZWZlcmVuY2VGdW5jKQkoeG1sRW50aXR5UHRyIGVudCwKKwkJCQkJCSB4bWxOb2RlUHRyIGZpcnN0Tm9kZSwKKwkJCQkJCSB4bWxOb2RlUHRyIGxhc3ROb2RlKTsKKyAgCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQl4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jCSh4bWxFbnRpdHlSZWZlcmVuY2VGdW5jIGZ1bmMpOworCitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCQorCQkJeG1sUGFyc2VRdW90ZWRTdHJpbmcJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZU5hbWVzcGFjZSAgICAgICAoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxOYW1lc3BhY2VQYXJzZU5TRGVmCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQkKKwkJCXhtbFNjYW5OYW1lCQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkJCisJCQl4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJeG1sUGFyc2VySGFuZGxlUmVmZXJlbmNlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCQorCQkJeG1sTmFtZXNwYWNlUGFyc2VRTmFtZQkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkJIHhtbENoYXIgKipwcmVmaXgpOworLyoqCisgKiBFbnRpdGllcworICovCitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sRGVjb2RlRW50aXRpZXMJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgaW50IGxlbiwKKwkJCQkJCSBpbnQgd2hhdCwKKwkJCQkJCSB4bWxDaGFyIGVuZCwKKwkJCQkJCSB4bWxDaGFyICBlbmQyLAorCQkJCQkJIHhtbENoYXIgZW5kMyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCQl4bWxIYW5kbGVFbnRpdHkJCSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgeG1sRW50aXR5UHRyIGVudGl0eSk7CisKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KKworI2lmZGVmIElOX0xJQlhNTAorLyoKKyAqIGludGVybmFsIG9ubHkKKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCXhtbEVyck1lbW9yeQkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkgY29uc3QgY2hhciAqZXh0cmEpOworI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLyogX19YTUxfUEFSU0VSX0lOVEVSTkFMU19IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvcGF0dGVybi5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9wYXR0ZXJuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdkMmNkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvcGF0dGVybi5oCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogU3VtbWFyeTogcGF0dGVybiBleHByZXNzaW9uIGhhbmRsaW5nCisgKiBEZXNjcmlwdGlvbjogYWxsb3dzIHRvIGNvbXBpbGUgYW5kIHRlc3QgcGF0dGVybiBleHByZXNzaW9ucyBmb3Igbm9kZXMKKyAqICAgICAgICAgICAgICBlaXRoZXIgaW4gYSB0cmVlIG9yIGJhc2VkIG9uIGEgcGFyc2VyIHN0YXRlLgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfUEFUVEVSTl9IX18KKyNkZWZpbmUgX19YTUxfUEFUVEVSTl9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGljdC5oPgorCisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogeG1sUGF0dGVybjoKKyAqCisgKiBBIGNvbXBpbGVkIChYUGF0aCBiYXNlZCkgcGF0dGVybiB0byBzZWxlY3Qgbm9kZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFBhdHRlcm4geG1sUGF0dGVybjsKK3R5cGVkZWYgeG1sUGF0dGVybiAqeG1sUGF0dGVyblB0cjsKKworLyoqCisgKiB4bWxQYXR0ZXJuRmxhZ3M6CisgKgorICogVGhpcyBpcyB0aGUgc2V0IG9mIG9wdGlvbnMgYWZmZWN0aW5nIHRoZSBiZWhhdmlvdXIgb2YgcGF0dGVybgorICogbWF0Y2hpbmcgd2l0aCB0aGlzIG1vZHVsZQorICoKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfUEFUVEVSTl9ERUZBVUxUCQk9IDAsCS8qIHNpbXBsZSBwYXR0ZXJuIG1hdGNoICovCisgICAgWE1MX1BBVFRFUk5fWFBBVEgJCT0gMTw8MCwJLyogc3RhbmRhcmQgWFBhdGggcGF0dGVybiAqLworICAgIFhNTF9QQVRURVJOX1hTU0VMCQk9IDE8PDEsCS8qIFhQYXRoIHN1YnNldCBmb3Igc2NoZW1hIHNlbGVjdG9yICovCisgICAgWE1MX1BBVFRFUk5fWFNGSUVMRAkJPSAxPDwyCS8qIFhQYXRoIHN1YnNldCBmb3Igc2NoZW1hIGZpZWxkICovCit9IHhtbFBhdHRlcm5GbGFnczsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkJeG1sRnJlZVBhdHRlcm4JCSh4bWxQYXR0ZXJuUHRyIGNvbXApOworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxGcmVlUGF0dGVybkxpc3QJKHhtbFBhdHRlcm5QdHIgY29tcCk7CisKK1hNTFBVQkZVTiB4bWxQYXR0ZXJuUHRyIFhNTENBTEwKKwkJCXhtbFBhdHRlcm5jb21waWxlCShjb25zdCB4bWxDaGFyICpwYXR0ZXJuLAorCQkJCQkJIHhtbERpY3QgKmRpY3QsCisJCQkJCQkgaW50IGZsYWdzLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKipuYW1lc3BhY2VzKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkJeG1sUGF0dGVybk1hdGNoCQkoeG1sUGF0dGVyblB0ciBjb21wLAorCQkJCQkJIHhtbE5vZGVQdHIgbm9kZSk7CisKKy8qIHN0cmVhbWluZyBpbnRlcmZhY2VzICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU3RyZWFtQ3R4dCB4bWxTdHJlYW1DdHh0OwordHlwZWRlZiB4bWxTdHJlYW1DdHh0ICp4bWxTdHJlYW1DdHh0UHRyOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbFBhdHRlcm5TdHJlYW1hYmxlCSh4bWxQYXR0ZXJuUHRyIGNvbXApOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxQYXR0ZXJuTWF4RGVwdGgJKHhtbFBhdHRlcm5QdHIgY29tcCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbFBhdHRlcm5NaW5EZXB0aAkoeG1sUGF0dGVyblB0ciBjb21wKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkJeG1sUGF0dGVybkZyb21Sb290CSh4bWxQYXR0ZXJuUHRyIGNvbXApOworWE1MUFVCRlVOIHhtbFN0cmVhbUN0eHRQdHIgWE1MQ0FMTAorCQkJeG1sUGF0dGVybkdldFN0cmVhbUN0eHQJKHhtbFBhdHRlcm5QdHIgY29tcCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxGcmVlU3RyZWFtQ3R4dAkoeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW0pOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxTdHJlYW1QdXNoTm9kZQkoeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW0sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpucywKKwkJCQkJCSBpbnQgbm9kZVR5cGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxTdHJlYW1QdXNoCQkoeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW0sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpucyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbFN0cmVhbVB1c2hBdHRyCSh4bWxTdHJlYW1DdHh0UHRyIHN0cmVhbSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5zKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkJeG1sU3RyZWFtUG9wCQkoeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW0pOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxTdHJlYW1XYW50c0FueU5vZGUJKHhtbFN0cmVhbUN0eHRQdHIgc3RyZWFtKTsKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVEICovCisKKyNlbmRpZiAvKiBfX1hNTF9QQVRURVJOX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9yZWxheG5nLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3JlbGF4bmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGIwYTdkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9yZWxheG5nLmgKQEAgLTAsMCArMSwyMTMgQEAKKy8qCisgKiBTdW1tYXJ5OiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUmVsYXgtTkcgdmFsaWRhdGlvbgorICogRGVzY3JpcHRpb246IGltcGxlbWVudGF0aW9uIG9mIHRoZSBSZWxheC1ORyB2YWxpZGF0aW9uCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9SRUxBWF9OR19fCisjZGVmaW5lIF9fWE1MX1JFTEFYX05HX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL2hhc2guaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc3RyaW5nLmg+CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlbGF4TkcgeG1sUmVsYXhORzsKK3R5cGVkZWYgeG1sUmVsYXhORyAqeG1sUmVsYXhOR1B0cjsKKworCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYzoKKyAqIEBjdHg6IHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBtc2c6IHRoZSBtZXNzYWdlCisgKiBALi4uOiBleHRyYSBhcmd1bWVudHMKKyAqCisgKiBTaWduYXR1cmUgb2YgYW4gZXJyb3IgY2FsbGJhY2sgZnJvbSBhIFJlbGF4LU5HIHZhbGlkYXRpb24KKyAqLwordHlwZWRlZiB2b2lkIChYTUxDREVDTCAqeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jKSAodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikgTElCWE1MX0FUVFJfRk9STUFUKDIsMyk7CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmM6CisgKiBAY3R4OiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbXNnOiB0aGUgbWVzc2FnZQorICogQC4uLjogZXh0cmEgYXJndW1lbnRzCisgKgorICogU2lnbmF0dXJlIG9mIGEgd2FybmluZyBjYWxsYmFjayBmcm9tIGEgUmVsYXgtTkcgdmFsaWRhdGlvbgorICovCit0eXBlZGVmIHZvaWQgKFhNTENERUNMICp4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYykgKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpOworCisvKioKKyAqIEEgc2NoZW1hcyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlbGF4TkdQYXJzZXJDdHh0IHhtbFJlbGF4TkdQYXJzZXJDdHh0OwordHlwZWRlZiB4bWxSZWxheE5HUGFyc2VyQ3R4dCAqeG1sUmVsYXhOR1BhcnNlckN0eHRQdHI7CisKK3R5cGVkZWYgc3RydWN0IF94bWxSZWxheE5HVmFsaWRDdHh0IHhtbFJlbGF4TkdWYWxpZEN0eHQ7Cit0eXBlZGVmIHhtbFJlbGF4TkdWYWxpZEN0eHQgKnhtbFJlbGF4TkdWYWxpZEN0eHRQdHI7CisKKy8qCisgKiB4bWxSZWxheE5HVmFsaWRFcnI6CisgKgorICogTGlzdCBvZiBwb3NzaWJsZSBSZWxheCBORyB2YWxpZGF0aW9uIGVycm9ycworICovCit0eXBlZGVmIGVudW0geworICAgIFhNTF9SRUxBWE5HX09LID0gMCwKKyAgICBYTUxfUkVMQVhOR19FUlJfTUVNT1JZLAorICAgIFhNTF9SRUxBWE5HX0VSUl9UWVBFLAorICAgIFhNTF9SRUxBWE5HX0VSUl9UWVBFVkFMLAorICAgIFhNTF9SRUxBWE5HX0VSUl9EVVBJRCwKKyAgICBYTUxfUkVMQVhOR19FUlJfVFlQRUNNUCwKKyAgICBYTUxfUkVMQVhOR19FUlJfTk9TVEFURSwKKyAgICBYTUxfUkVMQVhOR19FUlJfTk9ERUZJTkUsCisgICAgWE1MX1JFTEFYTkdfRVJSX0xJU1RFWFRSQSwKKyAgICBYTUxfUkVMQVhOR19FUlJfTElTVEVNUFRZLAorICAgIFhNTF9SRUxBWE5HX0VSUl9JTlRFUk5PREFUQSwKKyAgICBYTUxfUkVMQVhOR19FUlJfSU5URVJTRVEsCisgICAgWE1MX1JFTEFYTkdfRVJSX0lOVEVSRVhUUkEsCisgICAgWE1MX1JFTEFYTkdfRVJSX0VMRU1OQU1FLAorICAgIFhNTF9SRUxBWE5HX0VSUl9BVFRSTkFNRSwKKyAgICBYTUxfUkVMQVhOR19FUlJfRUxFTU5PTlMsCisgICAgWE1MX1JFTEFYTkdfRVJSX0FUVFJOT05TLAorICAgIFhNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkdOUywKKyAgICBYTUxfUkVMQVhOR19FUlJfQVRUUldST05HTlMsCisgICAgWE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TLAorICAgIFhNTF9SRUxBWE5HX0VSUl9BVFRSRVhUUkFOUywKKyAgICBYTUxfUkVMQVhOR19FUlJfRUxFTU5PVEVNUFRZLAorICAgIFhNTF9SRUxBWE5HX0VSUl9OT0VMRU0sCisgICAgWE1MX1JFTEFYTkdfRVJSX05PVEVMRU0sCisgICAgWE1MX1JFTEFYTkdfRVJSX0FUVFJWQUxJRCwKKyAgICBYTUxfUkVMQVhOR19FUlJfQ09OVEVOVFZBTElELAorICAgIFhNTF9SRUxBWE5HX0VSUl9FWFRSQUNPTlRFTlQsCisgICAgWE1MX1JFTEFYTkdfRVJSX0lOVkFMSURBVFRSLAorICAgIFhNTF9SRUxBWE5HX0VSUl9EQVRBRUxFTSwKKyAgICBYTUxfUkVMQVhOR19FUlJfVkFMRUxFTSwKKyAgICBYTUxfUkVMQVhOR19FUlJfTElTVEVMRU0sCisgICAgWE1MX1JFTEFYTkdfRVJSX0RBVEFUWVBFLAorICAgIFhNTF9SRUxBWE5HX0VSUl9WQUxVRSwKKyAgICBYTUxfUkVMQVhOR19FUlJfTElTVCwKKyAgICBYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSLAorICAgIFhNTF9SRUxBWE5HX0VSUl9FWFRSQURBVEEsCisgICAgWE1MX1JFTEFYTkdfRVJSX0xBQ0tEQVRBLAorICAgIFhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTCwKKyAgICBYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HLAorICAgIFhNTF9SRUxBWE5HX0VSUl9URVhUV1JPTkcKK30geG1sUmVsYXhOR1ZhbGlkRXJyOworCisvKgorICogeG1sUmVsYXhOR1BhcnNlckZsYWdzOgorICoKKyAqIExpc3Qgb2YgcG9zc2libGUgUmVsYXggTkcgUGFyc2VyIGZsYWdzCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1JFTEFYTkdQX05PTkUgPSAwLAorICAgIFhNTF9SRUxBWE5HUF9GUkVFX0RPQyA9IDEsCisgICAgWE1MX1JFTEFYTkdQX0NSTkcgPSAyCit9IHhtbFJlbGF4TkdQYXJzZXJGbGFnOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFJlbGF4TkdJbml0VHlwZXMJCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJICAgIHhtbFJlbGF4TkdDbGVhbnVwVHlwZXMJKHZvaWQpOworCisvKgorICogSW50ZXJmYWNlcyBmb3IgcGFyc2luZy4KKyAqLworWE1MUFVCRlVOIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIFhNTENBTEwKKwkJICAgIHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0CShjb25zdCBjaGFyICpVUkwpOworWE1MUFVCRlVOIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIFhNTENBTEwKKwkJICAgIHhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0CShjb25zdCBjaGFyICpidWZmZXIsCisJCQkJCQkgaW50IHNpemUpOworWE1MUFVCRlVOIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIFhNTENBTEwKKwkJICAgIHhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0CSh4bWxEb2NQdHIgZG9jKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxSZWxheFBhcnNlclNldEZsYWcJKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgaW50IGZsYWcpOworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQJKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkgICAgeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIGVyciwKKwkJCQkJIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm4sCisJCQkJCSB2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMgKmVyciwKKwkJCQkJIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jICp3YXJuLAorCQkJCQkgdm9pZCAqKmN0eCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycygKKwkJCQkJIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNlcnJvciwKKwkJCQkJIHZvaWQgKmN0eCk7CitYTUxQVUJGVU4geG1sUmVsYXhOR1B0ciBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HUGFyc2UJCSh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJICAgIHhtbFJlbGF4TkdGcmVlCQkoeG1sUmVsYXhOR1B0ciBzY2hlbWEpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkgICAgeG1sUmVsYXhOR0R1bXAJCShGSUxFICpvdXRwdXQsCisJCQkJCSB4bWxSZWxheE5HUHRyIHNjaGVtYSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HRHVtcFRyZWUJKEZJTEUgKiBvdXRwdXQsCisJCQkJCSB4bWxSZWxheE5HUHRyIHNjaGVtYSk7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisvKgorICogSW50ZXJmYWNlcyBmb3IgdmFsaWRhdGluZworICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jIGVyciwKKwkJCQkJIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm4sCisJCQkJCSB2b2lkICpjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jICplcnIsCisJCQkJCSB4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyAqd2FybiwKKwkJCQkJIHZvaWQgKipjdHgpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkJeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3IsIHZvaWQgKmN0eCk7CitYTUxQVUJGVU4geG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HTmV3VmFsaWRDdHh0CSh4bWxSZWxheE5HUHRyIHNjaGVtYSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dAkoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sUmVsYXhOR1ZhbGlkYXRlRG9jCSh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCQkgeG1sRG9jUHRyIGRvYyk7CisvKgorICogSW50ZXJmYWNlcyBmb3IgcHJvZ3Jlc3NpdmUgdmFsaWRhdGlvbiB3aGVuIHBvc3NpYmxlCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQJKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIGVsZW0pOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEJKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmRhdGEsCisJCQkJCSBpbnQgbGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudAkoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgZWxlbSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50CSh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBlbGVtKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQgKi8KKworI2VuZGlmIC8qIF9fWE1MX1JFTEFYX05HX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY4YTZlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvc2NoZW1hc0ludGVybmFscy5oCkBAIC0wLDAgKzEsOTU4IEBACisvKgorICogU3VtbWFyeTogaW50ZXJuYWwgaW50ZXJmYWNlcyBmb3IgWE1MIFNjaGVtYXMKKyAqIERlc2NyaXB0aW9uOiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciB0aGUgWE1MIFNjaGVtYXMgaGFuZGxpbmcKKyAqICAgICAgICAgICAgICBhbmQgc2NoZW1hIHZhbGlkaXR5IGNoZWNraW5nCisgKgkJVGhlIFNjaGVtYXMgZGV2ZWxvcG1lbnQgaXMgYSBXb3JrIEluIFByb2dyZXNzLgorICogICAgICAgICAgICAgIFNvbWUgb2YgdGhvc2UgaW50ZXJmYWNlcyBhcmUgbm90IGdhcmFudGVlZCB0byBiZSBBUEkgb3IgQUJJIHN0YWJsZSAhCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworCisjaWZuZGVmIF9fWE1MX1NDSEVNQV9JTlRFUk5BTFNfSF9fCisjZGVmaW5lIF9fWE1MX1NDSEVNQV9JTlRFUk5BTFNfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisjaW5jbHVkZSA8bGlieG1sL3htbHJlZ2V4cC5oPgorI2luY2x1ZGUgPGxpYnhtbC9oYXNoLmg+CisjaW5jbHVkZSA8bGlieG1sL2RpY3QuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIGVudW0geworICAgIFhNTF9TQ0hFTUFTX1VOS05PV04gPSAwLAorICAgIFhNTF9TQ0hFTUFTX1NUUklORywKKyAgICBYTUxfU0NIRU1BU19OT1JNU1RSSU5HLAorICAgIFhNTF9TQ0hFTUFTX0RFQ0lNQUwsCisgICAgWE1MX1NDSEVNQVNfVElNRSwKKyAgICBYTUxfU0NIRU1BU19HREFZLAorICAgIFhNTF9TQ0hFTUFTX0dNT05USCwKKyAgICBYTUxfU0NIRU1BU19HTU9OVEhEQVksCisgICAgWE1MX1NDSEVNQVNfR1lFQVIsCisgICAgWE1MX1NDSEVNQVNfR1lFQVJNT05USCwKKyAgICBYTUxfU0NIRU1BU19EQVRFLAorICAgIFhNTF9TQ0hFTUFTX0RBVEVUSU1FLAorICAgIFhNTF9TQ0hFTUFTX0RVUkFUSU9OLAorICAgIFhNTF9TQ0hFTUFTX0ZMT0FULAorICAgIFhNTF9TQ0hFTUFTX0RPVUJMRSwKKyAgICBYTUxfU0NIRU1BU19CT09MRUFOLAorICAgIFhNTF9TQ0hFTUFTX1RPS0VOLAorICAgIFhNTF9TQ0hFTUFTX0xBTkdVQUdFLAorICAgIFhNTF9TQ0hFTUFTX05NVE9LRU4sCisgICAgWE1MX1NDSEVNQVNfTk1UT0tFTlMsCisgICAgWE1MX1NDSEVNQVNfTkFNRSwKKyAgICBYTUxfU0NIRU1BU19RTkFNRSwKKyAgICBYTUxfU0NIRU1BU19OQ05BTUUsCisgICAgWE1MX1NDSEVNQVNfSUQsCisgICAgWE1MX1NDSEVNQVNfSURSRUYsCisgICAgWE1MX1NDSEVNQVNfSURSRUZTLAorICAgIFhNTF9TQ0hFTUFTX0VOVElUWSwKKyAgICBYTUxfU0NIRU1BU19FTlRJVElFUywKKyAgICBYTUxfU0NIRU1BU19OT1RBVElPTiwKKyAgICBYTUxfU0NIRU1BU19BTllVUkksCisgICAgWE1MX1NDSEVNQVNfSU5URUdFUiwKKyAgICBYTUxfU0NIRU1BU19OUElOVEVHRVIsCisgICAgWE1MX1NDSEVNQVNfTklOVEVHRVIsCisgICAgWE1MX1NDSEVNQVNfTk5JTlRFR0VSLAorICAgIFhNTF9TQ0hFTUFTX1BJTlRFR0VSLAorICAgIFhNTF9TQ0hFTUFTX0lOVCwKKyAgICBYTUxfU0NIRU1BU19VSU5ULAorICAgIFhNTF9TQ0hFTUFTX0xPTkcsCisgICAgWE1MX1NDSEVNQVNfVUxPTkcsCisgICAgWE1MX1NDSEVNQVNfU0hPUlQsCisgICAgWE1MX1NDSEVNQVNfVVNIT1JULAorICAgIFhNTF9TQ0hFTUFTX0JZVEUsCisgICAgWE1MX1NDSEVNQVNfVUJZVEUsCisgICAgWE1MX1NDSEVNQVNfSEVYQklOQVJZLAorICAgIFhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWSwKKyAgICBYTUxfU0NIRU1BU19BTllUWVBFLAorICAgIFhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUKK30geG1sU2NoZW1hVmFsVHlwZTsKKworLyoKKyAqIFhNTCBTY2hlbWFzIGRlZmluZXMgbXVsdGlwbGUgdHlwZSBvZiB0eXBlcy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfU0NIRU1BX1RZUEVfQkFTSUMgPSAxLCAvKiBBIGJ1aWx0LWluIGRhdGF0eXBlICovCisgICAgWE1MX1NDSEVNQV9UWVBFX0FOWSwKKyAgICBYTUxfU0NIRU1BX1RZUEVfRkFDRVQsCisgICAgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSwKKyAgICBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWCwKKyAgICBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UgPSA2LAorICAgIFhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0UsCisgICAgWE1MX1NDSEVNQV9UWVBFX0FMTCwKKyAgICBYTUxfU0NIRU1BX1RZUEVfU0lNUExFX0NPTlRFTlQsCisgICAgWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVhfQ09OVEVOVCwKKyAgICBYTUxfU0NIRU1BX1RZUEVfVVIsCisgICAgWE1MX1NDSEVNQV9UWVBFX1JFU1RSSUNUSU9OLAorICAgIFhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT04sCisgICAgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQsCisgICAgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURSwKKyAgICBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVAsCisgICAgWE1MX1NDSEVNQV9UWVBFX0dST1VQLAorICAgIFhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTiwKKyAgICBYTUxfU0NIRU1BX1RZUEVfTElTVCwKKyAgICBYTUxfU0NIRU1BX1RZUEVfVU5JT04sCisgICAgWE1MX1NDSEVNQV9UWVBFX0FOWV9BVFRSSUJVVEUsCisgICAgWE1MX1NDSEVNQV9UWVBFX0lEQ19VTklRVUUsCisgICAgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVksCisgICAgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYsCisgICAgWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFID0gMjUsIAorICAgIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFLCAKKyAgICBYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRSA9IDEwMDAsCisgICAgWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkUsCisgICAgWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkUsCisgICAgWE1MX1NDSEVNQV9GQUNFVF9NQVhFWENMVVNJVkUsCisgICAgWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUywKKyAgICBYTUxfU0NIRU1BX0ZBQ0VUX0ZSQUNUSU9ORElHSVRTLAorICAgIFhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTiwKKyAgICBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OLAorICAgIFhNTF9TQ0hFTUFfRkFDRVRfV0hJVEVTUEFDRSwKKyAgICBYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSCwKKyAgICBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSCwKKyAgICBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSCwKKyAgICBYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGID0gMjAwMCwKKyAgICBYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQgorfSB4bWxTY2hlbWFUeXBlVHlwZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfU0NIRU1BX0NPTlRFTlRfVU5LTk9XTiA9IDAsCisgICAgWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZID0gMSwKKyAgICBYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFMsCisgICAgWE1MX1NDSEVNQV9DT05URU5UX01JWEVELAorICAgIFhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEUsCisgICAgWE1MX1NDSEVNQV9DT05URU5UX01JWEVEX09SX0VMRU1FTlRTLCAvKiBPYnNvbGV0ZSAqLworICAgIFhNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQywKKyAgICBYTUxfU0NIRU1BX0NPTlRFTlRfQU5ZCit9IHhtbFNjaGVtYUNvbnRlbnRUeXBlOworCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hVmFsIHhtbFNjaGVtYVZhbDsKK3R5cGVkZWYgeG1sU2NoZW1hVmFsICp4bWxTY2hlbWFWYWxQdHI7CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFUeXBlIHhtbFNjaGVtYVR5cGU7Cit0eXBlZGVmIHhtbFNjaGVtYVR5cGUgKnhtbFNjaGVtYVR5cGVQdHI7CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFGYWNldCB4bWxTY2hlbWFGYWNldDsKK3R5cGVkZWYgeG1sU2NoZW1hRmFjZXQgKnhtbFNjaGVtYUZhY2V0UHRyOworCisvKioKKyAqIEFubm90YXRpb24KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUFubm90IHhtbFNjaGVtYUFubm90OwordHlwZWRlZiB4bWxTY2hlbWFBbm5vdCAqeG1sU2NoZW1hQW5ub3RQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUFubm90IHsKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUFubm90ICpuZXh0OworICAgIHhtbE5vZGVQdHIgY29udGVudDsgICAgICAgICAvKiB0aGUgYW5ub3RhdGlvbiAqLworfTsKKworLyoqCisgKiBYTUxfU0NIRU1BU19BTllBVFRSX1NLSVA6CisgKgorICogU2tpcCB1bmtub3duIGF0dHJpYnV0ZSBmcm9tIHZhbGlkYXRpb24KKyAqIE9ic29sZXRlLCBub3QgdXNlZCBhbnltb3JlLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FOWUFUVFJfU0tJUCAgICAgICAgMQorLyoqCisgKiBYTUxfU0NIRU1BU19BTllBVFRSX0xBWDoKKyAqCisgKiBJZ25vcmUgdmFsaWRhdGlvbiBub24gZGVmaW5pdGlvbiBvbiBhdHRyaWJ1dGVzCisgKiBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19BTllBVFRSX0xBWCAgICAgICAgICAgICAgICAyCisvKioKKyAqIFhNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUOgorICoKKyAqIEFwcGx5IHN0cmljdCB2YWxpZGF0aW9uIHJ1bGVzIG9uIGF0dHJpYnV0ZXMKKyAqIE9ic29sZXRlLCBub3QgdXNlZCBhbnltb3JlLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FOWUFUVFJfU1RSSUNUICAgICAgICAzCisvKioKKyAqIFhNTF9TQ0hFTUFTX0FOWV9TS0lQOgorICoKKyAqIFNraXAgdW5rbm93biBhdHRyaWJ1dGUgZnJvbSB2YWxpZGF0aW9uCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQU5ZX1NLSVAgICAgICAgIDEKKy8qKgorICogWE1MX1NDSEVNQVNfQU5ZX0xBWDoKKyAqCisgKiBVc2VkIGJ5IHdpbGRjYXJkcy4KKyAqIFZhbGlkYXRlIGlmIHR5cGUgZm91bmQsIGRvbid0IHdvcnJ5IGlmIG5vdCBmb3VuZAorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FOWV9MQVggICAgICAgICAgICAgICAgMgorLyoqCisgKiBYTUxfU0NIRU1BU19BTllfU1RSSUNUOgorICoKKyAqIFVzZWQgYnkgd2lsZGNhcmRzLgorICogQXBwbHkgc3RyaWN0IHZhbGlkYXRpb24gcnVsZXMKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19BTllfU1RSSUNUICAgICAgICAzCisvKioKKyAqIFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQ6CisgKgorICogVXNlZCBieSB3aWxkY2FyZHMuCisgKiBUaGUgYXR0cmlidXRlIGlzIHByb2hpYml0ZWQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9VU0VfUFJPSElCSVRFRCAwCisvKioKKyAqIFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEOgorICoKKyAqIFRoZSBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQgMQorLyoqCisgKiBYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTDoKKyAqCisgKiBUaGUgYXR0cmlidXRlIGlzIG9wdGlvbmFsLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfVVNFX09QVElPTkFMIDIKKy8qKgorICogWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUw6CisgKgorICogYWxsb3cgZWxlbWVudHMgaW4gbm8gbmFtZXNwYWNlCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9HTE9CQUwgICAgICAgIDEgPDwgMAorLyoqCisgKiBYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVDoKKyAqCisgKiBhbGxvdyBlbGVtZW50cyBpbiBubyBuYW1lc3BhY2UKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19BVFRSX05TREVGQVVMVCAgICAgICAgMSA8PCA3CisvKioKKyAqIFhNTF9TQ0hFTUFTX0FUVFJfSU5URVJOQUxfUkVTT0xWRUQ6CisgKgorICogdGhpcyBpcyBzZXQgd2hlbiB0aGUgInR5cGUiIGFuZCAicmVmIiByZWZlcmVuY2VzCisgKiBoYXZlIGJlZW4gcmVzb2x2ZWQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRCAgICAgICAgMSA8PCA4CisvKioKKyAqIFhNTF9TQ0hFTUFTX0FUVFJfRklYRUQ6CisgKgorICogdGhlIGF0dHJpYnV0ZSBoYXMgYSBmaXhlZCB2YWx1ZQorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfRklYRUQgICAgICAgIDEgPDwgOQorCisvKioKKyAqIHhtbFNjaGVtYUF0dHJpYnV0ZToKKyAqIEFuIGF0dHJpYnV0ZSBkZWZpbml0aW9uLgorICovCisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGUgeG1sU2NoZW1hQXR0cmlidXRlOwordHlwZWRlZiB4bWxTY2hlbWFBdHRyaWJ1dGUgKnhtbFNjaGVtYUF0dHJpYnV0ZVB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlIHsKKyAgICB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlOworICAgIHN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlICpuZXh0OyAvKiB0aGUgbmV4dCBhdHRyaWJ1dGUgKG5vdCB1c2VkPykgKi8KKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgZGVjbGFyYXRpb24gKi8KKyAgICBjb25zdCB4bWxDaGFyICppZDsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICBjb25zdCB4bWxDaGFyICpyZWY7IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqcmVmTnM7IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqdHlwZU5hbWU7IC8qIHRoZSBsb2NhbCBuYW1lIG9mIHRoZSB0eXBlIGRlZmluaXRpb24gKi8KKyAgICBjb25zdCB4bWxDaGFyICp0eXBlTnM7IC8qIHRoZSBucyBVUkkgb2YgdGhlIHR5cGUgZGVmaW5pdGlvbiAqLworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworCisgICAgeG1sU2NoZW1hVHlwZVB0ciBiYXNlOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIGludCBvY2N1cnM7IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqZGVmVmFsdWU7IC8qIFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSB2YWx1ZSBjb25zdHJhaW50ICovCisgICAgeG1sU2NoZW1hVHlwZVB0ciBzdWJ0eXBlczsgLyogdGhlIHR5cGUgZGVmaW5pdGlvbiAqLworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBjb25zdCB4bWxDaGFyICp0YXJnZXROYW1lc3BhY2U7CisgICAgaW50IGZsYWdzOworICAgIGNvbnN0IHhtbENoYXIgKnJlZlByZWZpeDsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICB4bWxTY2hlbWFWYWxQdHIgZGVmVmFsOyAvKiBUaGUgY29tcGlsZWQgdmFsdWUgY29uc3RyYWludCAqLworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVB0ciByZWZEZWNsOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworfTsKKworLyoqCisgKiB4bWxTY2hlbWFBdHRyaWJ1dGVMaW5rOgorICogVXNlZCB0byBidWlsZCBhIGxpc3Qgb2YgYXR0cmlidXRlIHVzZXMgb24gY29tcGxleFR5cGUgZGVmaW5pdGlvbnMuCisgKiBXQVJOSU5HOiBEZXByZWNhdGVkOyBub3QgdXNlZC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZUxpbmsgeG1sU2NoZW1hQXR0cmlidXRlTGluazsKK3R5cGVkZWYgeG1sU2NoZW1hQXR0cmlidXRlTGluayAqeG1sU2NoZW1hQXR0cmlidXRlTGlua1B0cjsKK3N0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlTGluayB7CisgICAgc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGVMaW5rICpuZXh0Oy8qIHRoZSBuZXh0IGF0dHJpYnV0ZSBsaW5rIC4uLiAqLworICAgIHN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlICphdHRyOy8qIHRoZSBsaW5rZWQgYXR0cmlidXRlICovCit9OworCisvKioKKyAqIFhNTF9TQ0hFTUFTX1dJTERDQVJEX0NPTVBMRVRFOgorICoKKyAqIElmIHRoZSB3aWxkY2FyZCBpcyBjb21wbGV0ZS4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19XSUxEQ0FSRF9DT01QTEVURSAxIDw8IDAKKworLyoqCisgKiB4bWxTY2hlbWFDaGFyVmFsdWVMaW5rOgorICogVXNlZCB0byBidWlsZCBhIGxpc3Qgb2YgbmFtZXNwYWNlcyBvbiB3aWxkY2FyZHMuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFXaWxkY2FyZE5zIHhtbFNjaGVtYVdpbGRjYXJkTnM7Cit0eXBlZGVmIHhtbFNjaGVtYVdpbGRjYXJkTnMgKnhtbFNjaGVtYVdpbGRjYXJkTnNQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYVdpbGRjYXJkTnMgeworICAgIHN0cnVjdCBfeG1sU2NoZW1hV2lsZGNhcmROcyAqbmV4dDsvKiB0aGUgbmV4dCBjb25zdHJhaW50IGxpbmsgLi4uICovCisgICAgY29uc3QgeG1sQ2hhciAqdmFsdWU7LyogdGhlIHZhbHVlICovCit9OworCisvKioKKyAqIHhtbFNjaGVtYVdpbGRjYXJkLgorICogQSB3aWxkY2FyZC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVdpbGRjYXJkIHhtbFNjaGVtYVdpbGRjYXJkOwordHlwZWRlZiB4bWxTY2hlbWFXaWxkY2FyZCAqeG1sU2NoZW1hV2lsZGNhcmRQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYVdpbGRjYXJkIHsKKyAgICB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlOyAgICAgICAgLyogVGhlIGtpbmQgb2YgdHlwZSAqLworICAgIGNvbnN0IHhtbENoYXIgKmlkOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpbnQgbWluT2NjdXJzOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIGludCBtYXhPY2N1cnM7IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisgICAgaW50IHByb2Nlc3NDb250ZW50czsKKyAgICBpbnQgYW55OyAvKiBJbmRpY2F0ZXMgaWYgdGhlIG5zIGNvbnN0cmFpbnQgaXMgb2YgIyNhbnkgKi8KKyAgICB4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIG5zU2V0OyAvKiBUaGUgbGlzdCBvZiBhbGxvd2VkIG5hbWVzcGFjZXMgKi8KKyAgICB4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIG5lZ05zU2V0OyAvKiBUaGUgbmVnYXRlZCBuYW1lc3BhY2UgKi8KKyAgICBpbnQgZmxhZ3M7Cit9OworCisvKioKKyAqIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEOgorICoKKyAqIFRoZSBhdHRyaWJ1dGUgd2lsZGNhcmQgaGFzIGJlZW4gYWxyZWFkeSBidWlsZGVkLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEIDEgPDwgMAorLyoqCisgKiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfR0xPQkFMOgorICoKKyAqIFRoZSBhdHRyaWJ1dGUgd2lsZGNhcmQgaGFzIGJlZW4gYWxyZWFkeSBidWlsZGVkLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9HTE9CQUwgMSA8PCAxCisvKioKKyAqIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQ6CisgKgorICogTWFya3MgdGhlIGF0dHIgZ3JvdXAgYXMgbWFya2VkOyB1c2VkIGZvciBjaXJjdWxhciBjaGVja3MuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCAxIDw8IDIKKworLyoqCisgKiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEOgorICoKKyAqIFRoZSBhdHRyIGdyb3VwIHdhcyByZWRlZmluZWQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUkdST1VQX1JFREVGSU5FRCAxIDw8IDMKKy8qKgorICogWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTOgorICoKKyAqIFdoZXRoZXIgdGhpcyBhdHRyLiBncm91cCBjb250YWlucyBhdHRyLiBncm91cCByZWZlcmVuY2VzLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9IQVNfUkVGUyAxIDw8IDQKKworLyoqCisgKiBBbiBhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbi4KKyAqCisgKiB4bWxTY2hlbWFBdHRyaWJ1dGUgYW5kIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwIHN0YXJ0IG9mIHN0cnVjdHVyZXMKKyAqIG11c3QgYmUga2VwdCBzaW1pbGFyCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCB4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cDsKK3R5cGVkZWYgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXAgKnhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyOworc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGVHcm91cCB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsgICAgICAgIC8qIFRoZSBraW5kIG9mIHR5cGUgKi8KKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZSAqbmV4dDsvKiB0aGUgbmV4dCBhdHRyaWJ1dGUgaWYgaW4gYSBncm91cCAuLi4gKi8KKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGNvbnN0IHhtbENoYXIgKmlkOworICAgIGNvbnN0IHhtbENoYXIgKnJlZjsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICBjb25zdCB4bWxDaGFyICpyZWZOczsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICB4bWxTY2hlbWFBbm5vdFB0ciBhbm5vdDsKKworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVB0ciBhdHRyaWJ1dGVzOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpbnQgZmxhZ3M7CisgICAgeG1sU2NoZW1hV2lsZGNhcmRQdHIgYXR0cmlidXRlV2lsZGNhcmQ7CisgICAgY29uc3QgeG1sQ2hhciAqcmVmUHJlZml4OyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIHJlZkl0ZW07IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqdGFyZ2V0TmFtZXNwYWNlOworICAgIHZvaWQgKmF0dHJVc2VzOworfTsKKworLyoqCisgKiB4bWxTY2hlbWFUeXBlTGluazoKKyAqIFVzZWQgdG8gYnVpbGQgYSBsaXN0IG9mIHR5cGVzIChlLmcuIG1lbWJlciB0eXBlcyBvZgorICogc2ltcGxlVHlwZSB3aXRoIHZhcmlldHkgInVuaW9uIikuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFUeXBlTGluayB4bWxTY2hlbWFUeXBlTGluazsKK3R5cGVkZWYgeG1sU2NoZW1hVHlwZUxpbmsgKnhtbFNjaGVtYVR5cGVMaW5rUHRyOworc3RydWN0IF94bWxTY2hlbWFUeXBlTGluayB7CisgICAgc3RydWN0IF94bWxTY2hlbWFUeXBlTGluayAqbmV4dDsvKiB0aGUgbmV4dCB0eXBlIGxpbmsgLi4uICovCisgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlOy8qIHRoZSBsaW5rZWQgdHlwZSAqLworfTsKKworLyoqCisgKiB4bWxTY2hlbWFGYWNldExpbms6CisgKiBVc2VkIHRvIGJ1aWxkIGEgbGlzdCBvZiBmYWNldHMuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFGYWNldExpbmsgeG1sU2NoZW1hRmFjZXRMaW5rOwordHlwZWRlZiB4bWxTY2hlbWFGYWNldExpbmsgKnhtbFNjaGVtYUZhY2V0TGlua1B0cjsKK3N0cnVjdCBfeG1sU2NoZW1hRmFjZXRMaW5rIHsKKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUZhY2V0TGluayAqbmV4dDsvKiB0aGUgbmV4dCBmYWNldCBsaW5rIC4uLiAqLworICAgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0Oy8qIHRoZSBsaW5rZWQgZmFjZXQgKi8KK307CisKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9NSVhFRDoKKyAqCisgKiB0aGUgZWxlbWVudCBjb250ZW50IHR5cGUgaXMgbWl4ZWQKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX01JWEVEICAgICAgICAgICAgICAgIDEgPDwgMAorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTjoKKyAqCisgKiB0aGUgc2ltcGxlIG9yIGNvbXBsZXggdHlwZSBoYXMgYSBkZXJpdmF0aW9uIG1ldGhvZCBvZiAiZXh0ZW5zaW9uIi4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0RFUklWQVRJT05fTUVUSE9EX0VYVEVOU0lPTiAgICAgICAgICAgICAgICAxIDw8IDEKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTjoKKyAqCisgKiB0aGUgc2ltcGxlIG9yIGNvbXBsZXggdHlwZSBoYXMgYSBkZXJpdmF0aW9uIG1ldGhvZCBvZiAicmVzdHJpY3Rpb24iLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT04gICAgICAgICAgICAgICAgMSA8PCAyCisvKioKKyAqIFhNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMOgorICoKKyAqIHRoZSB0eXBlIGlzIGdsb2JhbAorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMICAgICAgICAgICAgICAgIDEgPDwgMworLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX09XTkVEX0FUVFJfV0lMRENBUkQ6CisgKgorICogdGhlIGNvbXBsZXhUeXBlIG93bnMgYW4gYXR0cmlidXRlIHdpbGRjYXJkLCBpLmUuCisgKiBpdCBjYW4gYmUgZnJlZWQgYnkgdGhlIGNvbXBsZXhUeXBlCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9PV05FRF9BVFRSX1dJTERDQVJEICAgIDEgPDwgNCAvKiBPYnNvbGV0ZS4gKi8KKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVDoKKyAqCisgKiB0aGUgc2ltcGxlVHlwZSBoYXMgYSB2YXJpZXR5IG9mICJhYnNlbnQiLgorICogVE9ETzogQWN0dWFsbHkgbm90IG5lY2Vzc2FyeSA6LS8sIHNpbmNlIGlmCisgKiBub25lIG9mIHRoZSB2YXJpZXR5IGZsYWdzIG9jY3VyIHRoZW4gaXQncworICogYXV0b21hdGljYWxseSBhYnNlbnQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FCU0VOVCAgICAxIDw8IDUKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1Q6CisgKgorICogdGhlIHNpbXBsZVR5cGUgaGFzIGEgdmFyaWV0eSBvZiAibGlzdCIuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1QgICAgMSA8PCA2CisvKioKKyAqIFhNTF9TQ0hFTUFTX1RZUEVfVkFSSUVUWV9VTklPTjoKKyAqCisgKiB0aGUgc2ltcGxlVHlwZSBoYXMgYSB2YXJpZXR5IG9mICJ1bmlvbiIuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OICAgIDEgPDwgNworLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDOgorICoKKyAqIHRoZSBzaW1wbGVUeXBlIGhhcyBhIHZhcmlldHkgb2YgInVuaW9uIi4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfQVRPTUlDICAgIDEgPDwgOAorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTjoKKyAqCisgKiB0aGUgY29tcGxleFR5cGUgaGFzIGEgZmluYWwgb2YgImV4dGVuc2lvbiIuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT04gICAgMSA8PCA5CisvKioKKyAqIFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfUkVTVFJJQ1RJT046CisgKgorICogdGhlIHNpbXBsZVR5cGUvY29tcGxleFR5cGUgaGFzIGEgZmluYWwgb2YgInJlc3RyaWN0aW9uIi4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OICAgIDEgPDwgMTAKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9MSVNUOgorICoKKyAqIHRoZSBzaW1wbGVUeXBlIGhhcyBhIGZpbmFsIG9mICJsaXN0Ii4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0xJU1QgICAgMSA8PCAxMQorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OOgorICoKKyAqIHRoZSBzaW1wbGVUeXBlIGhhcyBhIGZpbmFsIG9mICJ1bmlvbiIuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9VTklPTiAgICAxIDw8IDEyCisvKioKKyAqIFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfREVGQVVMVDoKKyAqCisgKiB0aGUgc2ltcGxlVHlwZSBoYXMgYSBmaW5hbCBvZiAiZGVmYXVsdCIuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9ERUZBVUxUICAgIDEgPDwgMTMKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9CVUlMVElOX1BSSU1JVElWRToKKyAqCisgKiBNYXJrcyB0aGUgaXRlbSBhcyBhIGJ1aWx0aW4gcHJpbWl0aXZlLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkUgICAgMSA8PCAxNAorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX01BUktFRDoKKyAqCisgKiBNYXJrcyB0aGUgaXRlbSBhcyBtYXJrZWQ7IHVzZWQgZm9yIGNpcmN1bGFyIGNoZWNrcy4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX01BUktFRCAgICAgICAgMSA8PCAxNgorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0RFRkFVTFQ6CisgKgorICogdGhlIGNvbXBsZXhUeXBlIGRpZCBub3Qgc3BlY2lmeSAnYmxvY2snIHNvIHVzZSB0aGUgZGVmYXVsdCBvZiB0aGUKKyAqIDxzY2hlbWE+IGl0ZW0uCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19ERUZBVUxUICAgIDEgPDwgMTcKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT046CisgKgorICogdGhlIGNvbXBsZXhUeXBlIGhhcyBhICdibG9jaycgb2YgImV4dGVuc2lvbiIuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT04gICAgMSA8PCAxOAorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OOgorICoKKyAqIHRoZSBjb21wbGV4VHlwZSBoYXMgYSAnYmxvY2snIG9mICJyZXN0cmljdGlvbiIuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTiAgICAxIDw8IDE5CisvKioKKyAqIFhNTF9TQ0hFTUFTX1RZUEVfQUJTVFJBQ1Q6CisgKgorICogdGhlIHNpbXBsZS9jb21wbGV4VHlwZSBpcyBhYnN0cmFjdC4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUICAgIDEgPDwgMjAKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUU6CisgKgorICogaW5kaWNhdGVzIGlmIHRoZSBmYWNldHMgbmVlZCBhIGNvbXB1dGVkIHZhbHVlCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUgICAgMSA8PCAyMQorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEOgorICoKKyAqIGluZGljYXRlcyB0aGF0IHRoZSB0eXBlIHdhcyB0eXBlZml4ZWQKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEICAgIDEgPDwgMjIKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEOgorICoKKyAqIGluZGljYXRlcyB0aGF0IHRoZSB0eXBlIGlzIGludmFsaWQKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX0lOVkFMSUQgICAgMSA8PCAyMworLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkU6CisgKgorICogYSB3aGl0ZXNwYWNlLWZhY2V0IHZhbHVlIG9mICJwcmVzZXJ2ZSIKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUFJFU0VSVkUgICAgMSA8PCAyNAorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRToKKyAqCisgKiBhIHdoaXRlc3BhY2UtZmFjZXQgdmFsdWUgb2YgInJlcGxhY2UiCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1JFUExBQ0UgICAgMSA8PCAyNQorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0U6CisgKgorICogYSB3aGl0ZXNwYWNlLWZhY2V0IHZhbHVlIG9mICJjb2xsYXBzZSIKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0UgICAgMSA8PCAyNgorLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFM6CisgKgorICogaGFzIGZhY2V0cworICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUyAgICAxIDw8IDI3CisvKioKKyAqIFhNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEOgorICoKKyAqIGluZGljYXRlcyBpZiB0aGUgZmFjZXRzIChwYXR0ZXJuKSBuZWVkIGEgbm9ybWFsaXplZCB2YWx1ZQorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfTk9STVZBTFVFTkVFREVEICAgIDEgPDwgMjgKKworLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX0ZJWFVQXzE6CisgKgorICogRmlyc3Qgc3RhZ2Ugb2YgZml4dXAgd2FzIGRvbmUuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xICAgIDEgPDwgMjkKKworLyoqCisgKiBYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRDoKKyAqCisgKiBUaGUgdHlwZSB3YXMgcmVkZWZpbmVkLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfUkVERUZJTkVEICAgIDEgPDwgMzAKKy8qKgorICogWE1MX1NDSEVNQVNfVFlQRV9SRURFRklOSU5HOgorICoKKyAqIFRoZSB0eXBlIHJlZGVmaW5lcyBhbiBvdGhlciB0eXBlLgorICovCisvKiAjZGVmaW5lIFhNTF9TQ0hFTUFTX1RZUEVfUkVERUZJTklORyAgICAxIDw8IDMxICovCisKKy8qKgorICogX3htbFNjaGVtYVR5cGU6CisgKgorICogU2NoZW1hcyB0eXBlIGRlZmluaXRpb24uCisgKi8KK3N0cnVjdCBfeG1sU2NoZW1hVHlwZSB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsgLyogVGhlIGtpbmQgb2YgdHlwZSAqLworICAgIHN0cnVjdCBfeG1sU2NoZW1hVHlwZSAqbmV4dDsgLyogdGhlIG5leHQgdHlwZSBpZiBpbiBhIHNlcXVlbmNlIC4uLiAqLworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgY29uc3QgeG1sQ2hhciAqaWQgOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIGNvbnN0IHhtbENoYXIgKnJlZjsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICBjb25zdCB4bWxDaGFyICpyZWZOczsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICB4bWxTY2hlbWFBbm5vdFB0ciBhbm5vdDsKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHN1YnR5cGVzOworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVB0ciBhdHRyaWJ1dGVzOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpbnQgbWluT2NjdXJzOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIGludCBtYXhPY2N1cnM7IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisKKyAgICBpbnQgZmxhZ3M7CisgICAgeG1sU2NoZW1hQ29udGVudFR5cGUgY29udGVudFR5cGU7CisgICAgY29uc3QgeG1sQ2hhciAqYmFzZTsgLyogQmFzZSB0eXBlJ3MgbG9jYWwgbmFtZSAqLworICAgIGNvbnN0IHhtbENoYXIgKmJhc2VOczsgLyogQmFzZSB0eXBlJ3MgdGFyZ2V0IG5hbWVzcGFjZSAqLworICAgIHhtbFNjaGVtYVR5cGVQdHIgYmFzZVR5cGU7IC8qIFRoZSBiYXNlIHR5cGUgY29tcG9uZW50ICovCisgICAgeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXRzOyAvKiBMb2NhbCBmYWNldHMgKi8KKyAgICBzdHJ1Y3QgX3htbFNjaGVtYVR5cGUgKnJlZGVmOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIGludCByZWN1cnNlOyAvKiBPYnNvbGV0ZSAqLworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZUxpbmtQdHIgKmF0dHJpYnV0ZVVzZXM7IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisgICAgeG1sU2NoZW1hV2lsZGNhcmRQdHIgYXR0cmlidXRlV2lsZGNhcmQ7CisgICAgaW50IGJ1aWx0SW5UeXBlOyAvKiBUeXBlIG9mIGJ1aWx0LWluIHR5cGVzLiAqLworICAgIHhtbFNjaGVtYVR5cGVMaW5rUHRyIG1lbWJlclR5cGVzOyAvKiBtZW1iZXItdHlwZXMgaWYgYSB1bmlvbiB0eXBlLiAqLworICAgIHhtbFNjaGVtYUZhY2V0TGlua1B0ciBmYWNldFNldDsgLyogQWxsIGZhY2V0cyAoaW5jbC4gaW5oZXJpdGVkKSAqLworICAgIGNvbnN0IHhtbENoYXIgKnJlZlByZWZpeDsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICB4bWxTY2hlbWFUeXBlUHRyIGNvbnRlbnRUeXBlRGVmOyAvKiBVc2VkIGZvciB0aGUgc2ltcGxlIGNvbnRlbnQgb2YgY29tcGxleCB0eXBlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3VsZCB3ZSB1c2UgQHN1YnR5cGVzIGZvciB0aGlzPyAqLworICAgIHhtbFJlZ2V4cFB0ciBjb250TW9kZWw7IC8qIEhvbGRzIHRoZSBhdXRvbWF0b24gb2YgdGhlIGNvbnRlbnQgbW9kZWwgKi8KKyAgICBjb25zdCB4bWxDaGFyICp0YXJnZXROYW1lc3BhY2U7CisgICAgdm9pZCAqYXR0clVzZXM7Cit9OworCisvKgorICogeG1sU2NoZW1hRWxlbWVudDoKKyAqIEFuIGVsZW1lbnQgZGVmaW5pdGlvbi4KKyAqCisgKiB4bWxTY2hlbWFUeXBlLCB4bWxTY2hlbWFGYWNldCBhbmQgeG1sU2NoZW1hRWxlbWVudCBzdGFydCBvZgorICogc3RydWN0dXJlcyBtdXN0IGJlIGtlcHQgc2ltaWxhcgorICovCisvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fTklMTEFCTEU6CisgKgorICogdGhlIGVsZW1lbnQgaXMgbmlsbGFibGUKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFICAgICAgICAxIDw8IDAKKy8qKgorICogWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUw6CisgKgorICogdGhlIGVsZW1lbnQgaXMgZ2xvYmFsCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwgICAgICAgICAgICAgICAgMSA8PCAxCisvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fREVGQVVMVDoKKyAqCisgKiB0aGUgZWxlbWVudCBoYXMgYSBkZWZhdWx0IHZhbHVlCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUICAgICAgICAxIDw8IDIKKy8qKgorICogWE1MX1NDSEVNQVNfRUxFTV9GSVhFRDoKKyAqCisgKiB0aGUgZWxlbWVudCBoYXMgYSBmaXhlZCB2YWx1ZQorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fRklYRUQgICAgICAgICAgICAgICAgMSA8PCAzCisvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1Q6CisgKgorICogdGhlIGVsZW1lbnQgaXMgYWJzdHJhY3QKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUICAgICAgICAxIDw8IDQKKy8qKgorICogWE1MX1NDSEVNQVNfRUxFTV9UT1BMRVZFTDoKKyAqCisgKiB0aGUgZWxlbWVudCBpcyB0b3AgbGV2ZWwKKyAqIG9ic29sZXRlOiB1c2UgWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwgaW5zdGVhZAorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fVE9QTEVWRUwgICAgICAgIDEgPDwgNQorLyoqCisgKiBYTUxfU0NIRU1BU19FTEVNX1JFRjoKKyAqCisgKiB0aGUgZWxlbWVudCBpcyBhIHJlZmVyZW5jZSB0byBhIHR5cGUKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX1JFRiAgICAgICAgICAgICAgICAxIDw8IDYKKy8qKgorICogWE1MX1NDSEVNQVNfRUxFTV9OU0RFRkFVTFQ6CisgKgorICogYWxsb3cgZWxlbWVudHMgaW4gbm8gbmFtZXNwYWNlCisgKiBPYnNvbGV0ZSwgbm90IHVzZWQgYW55bW9yZS4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX05TREVGQVVMVCAgICAgICAgMSA8PCA3CisvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQ6CisgKgorICogdGhpcyBpcyBzZXQgd2hlbiAidHlwZSIsICJyZWYiLCAic3Vic3RpdHV0aW9uR3JvdXAiCisgKiByZWZlcmVuY2VzIGhhdmUgYmVlbiByZXNvbHZlZC4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEICAgICAgICAxIDw8IDgKKyAvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVI6CisgKgorICogYSBoZWxwZXIgZmxhZyBmb3IgdGhlIHNlYXJjaCBvZiBjaXJjdWxhciByZWZlcmVuY2VzLgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIgICAgICAgIDEgPDwgOQorLyoqCisgKiBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0FCU0VOVDoKKyAqCisgKiB0aGUgImJsb2NrIiBhdHRyaWJ1dGUgaXMgYWJzZW50CisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19BQlNFTlQgICAgICAgIDEgPDwgMTAKKy8qKgorICogWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT046CisgKgorICogZGlzYWxsb3dlZCBzdWJzdGl0dXRpb25zIGFyZSBhYnNlbnQKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTiAgICAgICAgMSA8PCAxMQorLyoqCisgKiBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OOgorICoKKyAqIGRpc2FsbG93ZWQgc3Vic3RpdHV0aW9uczogInJlc3RyaWN0aW9uIgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04gICAgICAgIDEgPDwgMTIKKy8qKgorICogWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT046CisgKgorICogZGlzYWxsb3dlZCBzdWJzdGl0dXRpb25zOiAic3Vic3RpdHVpb24iCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT04gICAgICAgIDEgPDwgMTMKKy8qKgorICogWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9BQlNFTlQ6CisgKgorICogc3Vic3RpdHV0aW9uIGdyb3VwIGV4Y2x1c2lvbnMgYXJlIGFic2VudAorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfQUJTRU5UICAgICAgICAxIDw8IDE0CisvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OOgorICoKKyAqIHN1YnN0aXR1dGlvbiBncm91cCBleGNsdXNpb25zOiAiZXh0ZW5zaW9uIgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OICAgICAgICAxIDw8IDE1CisvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT046CisgKgorICogc3Vic3RpdHV0aW9uIGdyb3VwIGV4Y2x1c2lvbnM6ICJyZXN0cmljdGlvbiIKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OICAgICAgICAxIDw8IDE2CisvKioKKyAqIFhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRDoKKyAqCisgKiB0aGUgZGVjbGFyYXRpb24gaXMgYSBzdWJzdGl0dXRpb24gZ3JvdXAgaGVhZAorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRCAgICAgICAgMSA8PCAxNworLyoqCisgKiBYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQ6CisgKgorICogdGhpcyBpcyBzZXQgd2hlbiB0aGUgZWxlbSBkZWNsIGhhcyBiZWVuIGNoZWNrZWQgYWdhaW5zdAorICogYWxsIGNvbnN0cmFpbnRzCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRUxFTV9JTlRFUk5BTF9DSEVDS0VEICAgICAgICAxIDw8IDE4CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFFbGVtZW50IHhtbFNjaGVtYUVsZW1lbnQ7Cit0eXBlZGVmIHhtbFNjaGVtYUVsZW1lbnQgKnhtbFNjaGVtYUVsZW1lbnRQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUVsZW1lbnQgeworICAgIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGU7IC8qIFRoZSBraW5kIG9mIHR5cGUgKi8KKyAgICBzdHJ1Y3QgX3htbFNjaGVtYVR5cGUgKm5leHQ7IC8qIE5vdCB1c2VkPyAqLworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgY29uc3QgeG1sQ2hhciAqaWQ7IC8qIERlcHJlY2F0ZWQ7IG5vdCB1c2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqcmVmOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIGNvbnN0IHhtbENoYXIgKnJlZk5zOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworICAgIHhtbFNjaGVtYVR5cGVQdHIgc3VidHlwZXM7IC8qIHRoZSB0eXBlIGRlZmluaXRpb24gKi8KKyAgICB4bWxTY2hlbWFBdHRyaWJ1dGVQdHIgYXR0cmlidXRlczsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaW50IG1pbk9jY3VyczsgLyogRGVwcmVjYXRlZDsgbm90IHVzZWQgKi8KKyAgICBpbnQgbWF4T2NjdXJzOyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworCisgICAgaW50IGZsYWdzOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZTsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lZFR5cGU7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZWRUeXBlTnM7CisgICAgY29uc3QgeG1sQ2hhciAqc3Vic3RHcm91cDsKKyAgICBjb25zdCB4bWxDaGFyICpzdWJzdEdyb3VwTnM7CisgICAgY29uc3QgeG1sQ2hhciAqc2NvcGU7CisgICAgY29uc3QgeG1sQ2hhciAqdmFsdWU7IC8qIFRoZSBvcmlnaW5hbCB2YWx1ZSBvZiB0aGUgdmFsdWUgY29uc3RyYWludC4gKi8KKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUVsZW1lbnQgKnJlZkRlY2w7IC8qIFRoaXMgd2lsbCBub3cgYmUgdXNlZCBmb3IgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gZ3JvdXAgYWZmaWxpYXRpb24gKi8KKyAgICB4bWxSZWdleHBQdHIgY29udE1vZGVsOyAvKiBPYnNvbGV0ZSBmb3IgV1hTLCBtYXliZSB1c2VkIGZvciBSZWxheE5HICovCisgICAgeG1sU2NoZW1hQ29udGVudFR5cGUgY29udGVudFR5cGU7CisgICAgY29uc3QgeG1sQ2hhciAqcmVmUHJlZml4OyAvKiBEZXByZWNhdGVkOyBub3QgdXNlZCAqLworICAgIHhtbFNjaGVtYVZhbFB0ciBkZWZWYWw7IC8qIFRoZSBjb21waWxlZCB2YWx1ZSBjb250cmFpbnQuICovCisgICAgdm9pZCAqaWRjczsgLyogVGhlIGlkZW50aXR5LWNvbnN0cmFpbnQgZGVmcyAqLworfTsKKworLyoKKyAqIFhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV046CisgKgorICogdW5rbm93biBmYWNldCBoYW5kbGluZworICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0ZBQ0VUX1VOS05PV04gICAgICAgIDAKKy8qCisgKiBYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRToKKyAqCisgKiBwcmVzZXJ2ZSB0aGUgdHlwZSBvZiB0aGUgZmFjZXQKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRSAgICAgICAgMQorLyoKKyAqIFhNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0U6CisgKgorICogcmVwbGFjZSB0aGUgdHlwZSBvZiB0aGUgZmFjZXQKKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19GQUNFVF9SRVBMQUNFICAgICAgICAyCisvKgorICogWE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U6CisgKgorICogY29sbGFwc2UgdGhlIHR5cGVzIG9mIHRoZSBmYWNldAorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0ZBQ0VUX0NPTExBUFNFICAgICAgICAzCisvKioKKyAqIEEgZmFjZXQgZGVmaW5pdGlvbi4KKyAqLworc3RydWN0IF94bWxTY2hlbWFGYWNldCB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsgICAgICAgIC8qIFRoZSBraW5kIG9mIHR5cGUgKi8KKyAgICBzdHJ1Y3QgX3htbFNjaGVtYUZhY2V0ICpuZXh0Oy8qIHRoZSBuZXh0IHR5cGUgaWYgaW4gYSBzZXF1ZW5jZSAuLi4gKi8KKyAgICBjb25zdCB4bWxDaGFyICp2YWx1ZTsgLyogVGhlIG9yaWdpbmFsIHZhbHVlICovCisgICAgY29uc3QgeG1sQ2hhciAqaWQ7IC8qIE9ic29sZXRlICovCisgICAgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3Q7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIGludCBmaXhlZDsgLyogWE1MX1NDSEVNQVNfRkFDRVRfUFJFU0VSVkUsIGV0Yy4gKi8KKyAgICBpbnQgd2hpdGVzcGFjZTsKKyAgICB4bWxTY2hlbWFWYWxQdHIgdmFsOyAvKiBUaGUgY29tcGlsZWQgdmFsdWUgKi8KKyAgICB4bWxSZWdleHBQdHIgICAgcmVnZXhwOyAvKiBUaGUgcmVnZXggZm9yIHBhdHRlcm5zICovCit9OworCisvKioKKyAqIEEgbm90YXRpb24gZGVmaW5pdGlvbi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYU5vdGF0aW9uIHhtbFNjaGVtYU5vdGF0aW9uOwordHlwZWRlZiB4bWxTY2hlbWFOb3RhdGlvbiAqeG1sU2NoZW1hTm90YXRpb25QdHI7CitzdHJ1Y3QgX3htbFNjaGVtYU5vdGF0aW9uIHsKKyAgICB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlOyAvKiBUaGUga2luZCBvZiB0eXBlICovCisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxTY2hlbWFBbm5vdFB0ciBhbm5vdDsKKyAgICBjb25zdCB4bWxDaGFyICppZGVudGlmaWVyOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZTsKK307CisKKy8qCisqIFRPRE86IEFjdHVhbGx5IGFsbCB0aG9zZSBmbGFncyB1c2VkIGZvciB0aGUgc2NoZW1hIHNob3VsZCBzaXQKKyogb24gdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dCwgc2luY2UgdGhleSBhcmUgdXNlZCBvbmx5CisqIGR1cmluZyBwYXJzaW5nIGFuIFhNTCBzY2hlbWEgZG9jdW1lbnQsIGFuZCBub3QgYXZhaWxhYmxlCisqIG9uIHRoZSBjb21wb25lbnQgbGV2ZWwgYXMgcGVyIHNwZWMuCisqLworLyoqCisgKiBYTUxfU0NIRU1BU19RVUFMSUZfRUxFTToKKyAqCisgKiBSZWZsZWN0cyBlbGVtZW50Rm9ybURlZmF1bHQgPT0gcXVhbGlmaWVkIGluCisgKiBhbiBYTUwgc2NoZW1hIGRvY3VtZW50LgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNICAgICAgICAgICAgICAgIDEgPDwgMAorLyoqCisgKiBYTUxfU0NIRU1BU19RVUFMSUZfQVRUUjoKKyAqCisgKiBSZWZsZWN0cyBhdHRyaWJ1dGVGb3JtRGVmYXVsdCA9PSBxdWFsaWZpZWQgaW4KKyAqIGFuIFhNTCBzY2hlbWEgZG9jdW1lbnQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfUVVBTElGX0FUVFIgICAgICAgICAgICAxIDw8IDEKKy8qKgorICogWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT046CisgKgorICogdGhlIHNjaGVtYSBoYXMgImV4dGVuc2lvbiIgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT04gICAgICAgIDEgPDwgMgorLyoqCisgKiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OOgorICoKKyAqIHRoZSBzY2hlbWEgaGFzICJyZXN0cmljdGlvbiIgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTiAgICAgICAgICAgIDEgPDwgMworLyoqCisgKiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1Q6CisgKgorICogdGhlIGNzaGVtYSBoYXMgImxpc3QiIGluIHRoZSBzZXQgb2YgZmluYWxEZWZhdWx0LgorICovCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfTElTVCAgICAgICAgICAgIDEgPDwgNAorLyoqCisgKiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OOgorICoKKyAqIHRoZSBzY2hlbWEgaGFzICJ1bmlvbiIgaW4gdGhlIHNldCBvZiBmaW5hbERlZmF1bHQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTiAgICAgICAgICAgIDEgPDwgNQorLyoqCisgKiBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTjoKKyAqCisgKiB0aGUgc2NoZW1hIGhhcyAiZXh0ZW5zaW9uIiBpbiB0aGUgc2V0IG9mIGJsb2NrRGVmYXVsdC4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX0VYVEVOU0lPTiAgICAgICAgICAgIDEgPDwgNgorLyoqCisgKiBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OOgorICoKKyAqIHRoZSBzY2hlbWEgaGFzICJyZXN0cmljdGlvbiIgaW4gdGhlIHNldCBvZiBibG9ja0RlZmF1bHQuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTiAgICAgICAgICAgIDEgPDwgNworLyoqCisgKiBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTjoKKyAqCisgKiB0aGUgc2NoZW1hIGhhcyAic3Vic3RpdHV0aW9uIiBpbiB0aGUgc2V0IG9mIGJsb2NrRGVmYXVsdC4KKyAqLworI2RlZmluZSBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTiAgICAgICAgICAgIDEgPDwgOAorLyoqCisgKiBYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUzoKKyAqCisgKiB0aGUgc2NoZW1hIGlzIGN1cnJlbnRseSBpbmNsdWRpbmcgYW4gb3RoZXIgc2NoZW1hIHdpdGgKKyAqIG5vIHRhcmdldCBuYW1lc3BhY2UuCisgKi8KKyNkZWZpbmUgWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlMgICAgICAgICAgICAxIDw8IDkKKy8qKgorICogX3htbFNjaGVtYToKKyAqCisgKiBBIFNjaGVtYXMgZGVmaW5pdGlvbgorICovCitzdHJ1Y3QgX3htbFNjaGVtYSB7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsgLyogc2NoZW1hIG5hbWUgKi8KKyAgICBjb25zdCB4bWxDaGFyICp0YXJnZXROYW1lc3BhY2U7IC8qIHRoZSB0YXJnZXQgbmFtZXNwYWNlICovCisgICAgY29uc3QgeG1sQ2hhciAqdmVyc2lvbjsKKyAgICBjb25zdCB4bWxDaGFyICppZDsgLyogT2Jzb2xldGUgKi8KKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworICAgIGludCBmbGFnczsKKworICAgIHhtbEhhc2hUYWJsZVB0ciB0eXBlRGVjbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgYXR0ckRlY2w7CisgICAgeG1sSGFzaFRhYmxlUHRyIGF0dHJncnBEZWNsOworICAgIHhtbEhhc2hUYWJsZVB0ciBlbGVtRGVjbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgbm90YURlY2w7CisKKyAgICB4bWxIYXNoVGFibGVQdHIgc2NoZW1hc0ltcG9ydHM7CisKKyAgICB2b2lkICpfcHJpdmF0ZTsgICAgICAgIC8qIHVudXNlZCBieSB0aGUgbGlicmFyeSBmb3IgdXNlcnMgb3IgYmluZGluZ3MgKi8KKyAgICB4bWxIYXNoVGFibGVQdHIgZ3JvdXBEZWNsOworICAgIHhtbERpY3RQdHIgICAgICBkaWN0OworICAgIHZvaWQgKmluY2x1ZGVzOyAgICAgLyogdGhlIGluY2x1ZGVzLCB0aGlzIGlzIG9wYXF1ZSBmb3Igbm93ICovCisgICAgaW50IHByZXNlcnZlOyAgICAgICAgLyogd2hldGhlciB0byBmcmVlIHRoZSBkb2N1bWVudCAqLworICAgIGludCBjb3VudGVyOyAvKiB1c2VkIHRvIGdpdmUgb25vbnltb3VzIGNvbXBvbmVudHMgdW5pcXVlIG5hbWVzICovCisgICAgeG1sSGFzaFRhYmxlUHRyIGlkY0RlZjsgLyogQWxsIGlkZW50aXR5LWNvbnN0cmFpbnQgZGVmcy4gKi8KKyAgICB2b2lkICp2b2xhdGlsZXM7IC8qIE9ic29sZXRlICovCit9OworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMICAgICAgICAgeG1sU2NoZW1hRnJlZVR5cGUgICAgICAgICh4bWxTY2hlbWFUeXBlUHRyIHR5cGUpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCAgICAgICAgIHhtbFNjaGVtYUZyZWVXaWxkY2FyZCh4bWxTY2hlbWFXaWxkY2FyZFB0ciB3aWxkY2FyZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCisjZW5kaWYgLyogX19YTUxfU0NIRU1BX0lOVEVSTkFMU19IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvc2NoZW1hdHJvbi5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC9zY2hlbWF0cm9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ0MjgyNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvc2NoZW1hdHJvbi5oCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogU3VtbWFyeTogWE1MIFNjaGVtYXN0cm9uIGltcGxlbWVudGF0aW9uCisgKiBEZXNjcmlwdGlvbjogaW50ZXJmYWNlIHRvIHRoZSBYTUwgU2NoZW1hdHJvbiB2YWxpZGl0eSBjaGVja2luZy4KKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisKKyNpZm5kZWYgX19YTUxfU0NIRU1BVFJPTl9IX18KKyNkZWZpbmUgX19YTUxfU0NIRU1BVFJPTl9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVECisKKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1NDSEVNQVRST05fT1VUX1FVSUVUID0gMSA8PCAwLAkvKiBxdWlldCBubyByZXBvcnQgKi8KKyAgICBYTUxfU0NIRU1BVFJPTl9PVVRfVEVYVCA9IDEgPDwgMSwJLyogYnVpbGQgYSB0ZXh0dWFsIHJlcG9ydCAqLworICAgIFhNTF9TQ0hFTUFUUk9OX09VVF9YTUwgPSAxIDw8IDIsCS8qIG91dHB1dCBTVlJMICovCisgICAgWE1MX1NDSEVNQVRST05fT1VUX0VSUk9SID0gMSA8PCAzLCAgLyogb3V0cHV0IHZpYSB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jICovCisgICAgWE1MX1NDSEVNQVRST05fT1VUX0ZJTEUgPSAxIDw8IDgsCS8qIG91dHB1dCB0byBhIGZpbGUgZGVzY3JpcHRvciAqLworICAgIFhNTF9TQ0hFTUFUUk9OX09VVF9CVUZGRVIgPSAxIDw8IDksCS8qIG91dHB1dCB0byBhIGJ1ZmZlciAqLworICAgIFhNTF9TQ0hFTUFUUk9OX09VVF9JTyA9IDEgPDwgMTAJLyogb3V0cHV0IHRvIEkvTyBtZWNoYW5pc20gKi8KK30geG1sU2NoZW1hdHJvblZhbGlkT3B0aW9uczsKKworLyoqCisgKiBUaGUgc2NoZW1hcyByZWxhdGVkIHR5cGVzIGFyZSBrZXB0IGludGVybmFsCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWF0cm9uIHhtbFNjaGVtYXRyb247Cit0eXBlZGVmIHhtbFNjaGVtYXRyb24gKnhtbFNjaGVtYXRyb25QdHI7CisKKy8qKgorICogeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jOgorICogQGN0eDogdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQG1zZzogdGhlIG1lc3NhZ2UKKyAqIEAuLi46IGV4dHJhIGFyZ3VtZW50cworICoKKyAqIFNpZ25hdHVyZSBvZiBhbiBlcnJvciBjYWxsYmFjayBmcm9tIGEgU2NoZW1hdHJvbiB2YWxpZGF0aW9uCisgKi8KK3R5cGVkZWYgdm9pZCAoKnhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYykgKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pOworCisvKioKKyAqIHhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jOgorICogQGN0eDogdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQG1zZzogdGhlIG1lc3NhZ2UKKyAqIEAuLi46IGV4dHJhIGFyZ3VtZW50cworICoKKyAqIFNpZ25hdHVyZSBvZiBhIHdhcm5pbmcgY2FsbGJhY2sgZnJvbSBhIFNjaGVtYXRyb24gdmFsaWRhdGlvbgorICovCit0eXBlZGVmIHZvaWQgKCp4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYykgKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pOworCisvKioKKyAqIEEgc2NoZW1hcyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYXRyb25QYXJzZXJDdHh0IHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0OwordHlwZWRlZiB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCAqeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHI7CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWF0cm9uVmFsaWRDdHh0IHhtbFNjaGVtYXRyb25WYWxpZEN0eHQ7Cit0eXBlZGVmIHhtbFNjaGVtYXRyb25WYWxpZEN0eHQgKnhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI7CisKKy8qCisgKiBJbnRlcmZhY2VzIGZvciBwYXJzaW5nLgorICovCitYTUxQVUJGVU4geG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgWE1MQ0FMTCAKKwkgICAgeG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQJKGNvbnN0IGNoYXIgKlVSTCk7CitYTUxQVUJGVU4geG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgWE1MQ0FMTCAKKwkgICAgeG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQoY29uc3QgY2hhciAqYnVmZmVyLAorCQkJCQkgaW50IHNpemUpOworWE1MUFVCRlVOIHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIFhNTENBTEwKKwkgICAgeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQoeG1sRG9jUHRyIGRvYyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkgICAgeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0CSh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0KTsKKy8qKioqKgorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJICAgIHhtbFNjaGVtYXRyb25TZXRQYXJzZXJFcnJvcnMoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyBlcnIsCisJCQkJCSB4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYyB3YXJuLAorCQkJCQkgdm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxTY2hlbWF0cm9uR2V0UGFyc2VyRXJyb3JzKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCXhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyAqIGVyciwKKwkJCQkJeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMgKiB3YXJuLAorCQkJCQl2b2lkICoqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxTY2hlbWF0cm9uSXNWYWxpZAkoeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciBjdHh0KTsKKyAqKioqKi8KK1hNTFBVQkZVTiB4bWxTY2hlbWF0cm9uUHRyIFhNTENBTEwJCisJICAgIHhtbFNjaGVtYXRyb25QYXJzZQkJKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJICAgIHhtbFNjaGVtYXRyb25GcmVlCQkoeG1sU2NoZW1hdHJvblB0ciBzY2hlbWEpOworLyoKKyAqIEludGVyZmFjZXMgZm9yIHZhbGlkYXRpbmcKKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWF0cm9uU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3IsCisJCQkJCSAgdm9pZCAqY3R4KTsKKy8qKioqKioKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCSAgICB4bWxTY2hlbWF0cm9uU2V0VmFsaWRFcnJvcnMJKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyBlcnIsCisJCQkJCSB4bWxTY2hlbWF0cm9uVmFsaWRpdHlXYXJuaW5nRnVuYyB3YXJuLAorCQkJCQkgdm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWF0cm9uR2V0VmFsaWRFcnJvcnMJKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYyAqZXJyLAorCQkJCQkgeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMgKndhcm4sCisJCQkJCSB2b2lkICoqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWF0cm9uU2V0VmFsaWRPcHRpb25zKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWF0cm9uVmFsaWRDdHh0R2V0T3B0aW9ucyh4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgICAgICB4bWxTY2hlbWF0cm9uVmFsaWRhdGVPbmVFbGVtZW50ICh4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZWxlbSk7CisgKioqKioqKi8KKworWE1MUFVCRlVOIHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgWE1MQ0FMTAkKKwkgICAgeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dAkoeG1sU2NoZW1hdHJvblB0ciBzY2hlbWEsCisJICAgIAkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCSAgICB4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dAkoeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCQorCSAgICB4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MJKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBpbnN0YW5jZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEICovCisjZW5kaWYgLyogX19YTUxfU0NIRU1BVFJPTl9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvdGhyZWFkcy5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC90aHJlYWRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMxZjE2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvdGhyZWFkcy5oCkBAIC0wLDAgKzEsODQgQEAKKy8qKgorICogU3VtbWFyeTogaW50ZXJmYWNlcyBmb3IgdGhyZWFkIGhhbmRsaW5nCisgKiBEZXNjcmlwdGlvbjogc2V0IG9mIGdlbmVyaWMgdGhyZWFkaW5nIHJlbGF0ZWQgcm91dGluZXMKKyAqICAgICAgICAgICAgICBzaG91bGQgd29yayB3aXRoIHB0aHJlYWRzLCBXaW5kb3dzIG5hdGl2ZSBvciBUTFMgdGhyZWFkcworICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfVEhSRUFEU19IX18KKyNkZWZpbmUgX19YTUxfVEhSRUFEU19IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIHhtbE11dGV4IGFyZSBhIHNpbXBsZSBtdXR1YWwgZXhjZXB0aW9uIGxvY2tzLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sTXV0ZXggeG1sTXV0ZXg7Cit0eXBlZGVmIHhtbE11dGV4ICp4bWxNdXRleFB0cjsKKworLyoKKyAqIHhtbFJNdXRleCBhcmUgcmVlbnRyYW50IG11dHVhbCBleGNlcHRpb24gbG9ja3MuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxSTXV0ZXggeG1sUk11dGV4OwordHlwZWRlZiB4bWxSTXV0ZXggKnhtbFJNdXRleFB0cjsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorWE1MUFVCRlVOIHhtbE11dGV4UHRyIFhNTENBTEwKKwkJCXhtbE5ld011dGV4CSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJCXhtbE11dGV4TG9jawkoeG1sTXV0ZXhQdHIgdG9rKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJCXhtbE11dGV4VW5sb2NrCSh4bWxNdXRleFB0ciB0b2spOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkJeG1sRnJlZU11dGV4CSh4bWxNdXRleFB0ciB0b2spOworCitYTUxQVUJGVU4geG1sUk11dGV4UHRyIFhNTENBTEwKKwkJCXhtbE5ld1JNdXRleAkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxSTXV0ZXhMb2NrCSh4bWxSTXV0ZXhQdHIgdG9rKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJCXhtbFJNdXRleFVubG9jawkoeG1sUk11dGV4UHRyIHRvayk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxGcmVlUk11dGV4CSh4bWxSTXV0ZXhQdHIgdG9rKTsKKworLyoKKyAqIExpYnJhcnkgd2lkZSBBUElzLgorICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxJbml0VGhyZWFkcwkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxMb2NrTGlicmFyeQkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxVbmxvY2tMaWJyYXJ5KHZvaWQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxHZXRUaHJlYWRJZAkodm9pZCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbElzTWFpblRocmVhZAkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxDbGVhbnVwVGhyZWFkcyh2b2lkKTsKK1hNTFBVQkZVTiB4bWxHbG9iYWxTdGF0ZVB0ciBYTUxDQUxMCisJCQl4bWxHZXRHbG9iYWxTdGF0ZSh2b2lkKTsKKworI2lmIGRlZmluZWQoSEFWRV9XSU4zMl9USFJFQURTKSAmJiAhZGVmaW5lZChIQVZFX0NPTVBJTEVSX1RMUykgJiYgZGVmaW5lZChMSUJYTUxfU1RBVElDX0ZPUl9ETEwpCitpbnQgWE1MQ0FMTCB4bWxEbGxNYWluKHZvaWQgKmhpbnN0RExMLCB1bnNpZ25lZCBsb25nIGZkd1JlYXNvbiwgdm9pZCAqbHB2UmVzZXJ2ZWQpOworI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKworI2VuZGlmIC8qIF9fWE1MX1RIUkVBRFNfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3RyZWUuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvdHJlZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MzM1ODkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3RyZWUuaApAQCAtMCwwICsxLDEyNTIgQEAKKy8qCisgKiBTdW1tYXJ5OiBpbnRlcmZhY2VzIGZvciB0cmVlIG1hbmlwdWxhdGlvbgorICogRGVzY3JpcHRpb246IHRoaXMgbW9kdWxlIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlcyBmb3VuZCBpbiBhbiB0cmVlIHJlc3VsdGluZworICogICAgICAgICAgICAgIGZyb20gYW4gWE1MIG9yIEhUTUwgcGFyc2luZywgYXMgd2VsbCBhcyB0aGUgQVBJIHByb3ZpZGVkIGZvcgorICogICAgICAgICAgICAgIHZhcmlvdXMgcHJvY2Vzc2luZyBvbiB0aGF0IHRyZWUKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fWE1MX1RSRUVfSF9fCisjZGVmaW5lIF9fWE1MX1RSRUVfSF9fCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHN0cmluZy5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBTb21lIG9mIHRoZSBiYXNpYyB0eXBlcyBwb2ludGVyIHRvIHN0cnVjdHVyZXM6CisgKi8KKy8qIHhtbElPLmggKi8KK3R5cGVkZWYgc3RydWN0IF94bWxQYXJzZXJJbnB1dEJ1ZmZlciB4bWxQYXJzZXJJbnB1dEJ1ZmZlcjsKK3R5cGVkZWYgeG1sUGFyc2VySW5wdXRCdWZmZXIgKnhtbFBhcnNlcklucHV0QnVmZmVyUHRyOworCit0eXBlZGVmIHN0cnVjdCBfeG1sT3V0cHV0QnVmZmVyIHhtbE91dHB1dEJ1ZmZlcjsKK3R5cGVkZWYgeG1sT3V0cHV0QnVmZmVyICp4bWxPdXRwdXRCdWZmZXJQdHI7CisKKy8qIHBhcnNlci5oICovCit0eXBlZGVmIHN0cnVjdCBfeG1sUGFyc2VySW5wdXQgeG1sUGFyc2VySW5wdXQ7Cit0eXBlZGVmIHhtbFBhcnNlcklucHV0ICp4bWxQYXJzZXJJbnB1dFB0cjsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFBhcnNlckN0eHQgeG1sUGFyc2VyQ3R4dDsKK3R5cGVkZWYgeG1sUGFyc2VyQ3R4dCAqeG1sUGFyc2VyQ3R4dFB0cjsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNBWExvY2F0b3IgeG1sU0FYTG9jYXRvcjsKK3R5cGVkZWYgeG1sU0FYTG9jYXRvciAqeG1sU0FYTG9jYXRvclB0cjsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNBWEhhbmRsZXIgeG1sU0FYSGFuZGxlcjsKK3R5cGVkZWYgeG1sU0FYSGFuZGxlciAqeG1sU0FYSGFuZGxlclB0cjsKKworLyogZW50aXRpZXMuaCAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbEVudGl0eSB4bWxFbnRpdHk7Cit0eXBlZGVmIHhtbEVudGl0eSAqeG1sRW50aXR5UHRyOworCisvKioKKyAqIEJBU0VfQlVGRkVSX1NJWkU6CisgKgorICogZGVmYXVsdCBidWZmZXIgc2l6ZSA0MDAwLgorICovCisjZGVmaW5lIEJBU0VfQlVGRkVSX1NJWkUgNDA5NgorCisvKioKKyAqIExJQlhNTF9OQU1FU1BBQ0VfRElDVDoKKyAqCisgKiBEZWZpbmVzIGV4cGVyaW1lbnRhbCBiZWhhdmlvdXI6CisgKiAxKSB4bWxOcyBnZXRzIGFuIGFkZGl0aW9uYWwgZmllbGQgQGNvbnRleHQgKGEgeG1sRG9jKQorICogMikgd2hlbiBjcmVhdGluZyBhIHRyZWUsIHhtbE5zLT5ocmVmIGlzIHN0b3JlZCBpbiB0aGUgZGljdCBvZiB4bWxEb2MuCisgKi8KKy8qICNkZWZpbmUgTElCWE1MX05BTUVTUEFDRV9ESUNUICovCisKKy8qKgorICogeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZToKKyAqCisgKiBBIGJ1ZmZlciBhbGxvY2F0aW9uIHNjaGVtZSBjYW4gYmUgZGVmaW5lZCB0byBlaXRoZXIgbWF0Y2ggZXhhY3RseSB0aGUKKyAqIG5lZWQgb3IgZG91YmxlIGl0J3MgYWxsb2NhdGVkIHNpemUgZWFjaCB0aW1lIGl0IGlzIGZvdW5kIHRvbyBzbWFsbC4KKyAqLworCit0eXBlZGVmIGVudW0geworICAgIFhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQsCS8qIGRvdWJsZSBlYWNoIHRpbWUgb25lIG5lZWQgdG8gZ3JvdyAqLworICAgIFhNTF9CVUZGRVJfQUxMT0NfRVhBQ1QsCS8qIGdyb3cgb25seSB0byB0aGUgbWluaW1hbCBzaXplICovCisgICAgWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUsIC8qIGltbXV0YWJsZSBidWZmZXIgKi8KKyAgICBYTUxfQlVGRkVSX0FMTE9DX0lPCQkvKiBzcGVjaWFsIGFsbG9jYXRpb24gc2NoZW1lIHVzZWQgZm9yIEkvTyAqLworfSB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lOworCisvKioKKyAqIHhtbEJ1ZmZlcjoKKyAqCisgKiBBIGJ1ZmZlciBzdHJ1Y3R1cmUuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxCdWZmZXIgeG1sQnVmZmVyOwordHlwZWRlZiB4bWxCdWZmZXIgKnhtbEJ1ZmZlclB0cjsKK3N0cnVjdCBfeG1sQnVmZmVyIHsKKyAgICB4bWxDaGFyICpjb250ZW50OwkJLyogVGhlIGJ1ZmZlciBjb250ZW50IFVURjggKi8KKyAgICB1bnNpZ25lZCBpbnQgdXNlOwkJLyogVGhlIGJ1ZmZlciBzaXplIHVzZWQgKi8KKyAgICB1bnNpZ25lZCBpbnQgc2l6ZTsJCS8qIFRoZSBidWZmZXIgc2l6ZSAqLworICAgIHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUgYWxsb2M7IC8qIFRoZSByZWFsbG9jIG1ldGhvZCAqLworICAgIHhtbENoYXIgKmNvbnRlbnRJTzsJCS8qIGluIElPIG1vZGUgd2UgbWF5IGhhdmUgYSBkaWZmZXJlbnQgYmFzZSAqLworfTsKKworLyoqCisgKiBYTUxfWE1MX05BTUVTUEFDRToKKyAqCisgKiBUaGlzIGlzIHRoZSBuYW1lc3BhY2UgZm9yIHRoZSBzcGVjaWFsIHhtbDogcHJlZml4IHByZWRlZmluZWQgaW4gdGhlCisgKiBYTUwgTmFtZXNwYWNlIHNwZWNpZmljYXRpb24uCisgKi8KKyNkZWZpbmUgWE1MX1hNTF9OQU1FU1BBQ0UgXAorICAgIChjb25zdCB4bWxDaGFyICopICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiCisKKy8qKgorICogWE1MX1hNTF9JRDoKKyAqCisgKiBUaGlzIGlzIHRoZSBuYW1lIGZvciB0aGUgc3BlY2lhbCB4bWw6aWQgYXR0cmlidXRlCisgKi8KKyNkZWZpbmUgWE1MX1hNTF9JRCAoY29uc3QgeG1sQ2hhciAqKSAieG1sOmlkIgorCisvKgorICogVGhlIGRpZmZlcmVudCBlbGVtZW50IHR5cGVzIGNhcnJpZWQgYnkgYW4gWE1MIHRyZWUuCisgKgorICogTk9URTogVGhpcyBpcyBzeW5jaHJvbml6ZWQgd2l0aCBET00gTGV2ZWwxIHZhbHVlcworICogICAgICAgU2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1ET00tTGV2ZWwtMS8KKyAqCisgKiBBY3R1YWxseSB0aGlzIGhhZCBkaXZlcmdlZCBhIGJpdCwgYW5kIG5vdyBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFIHNob3VsZAorICogYmUgZGVwcmVjYXRlZCB0byB1c2UgYW4gWE1MX0RURF9OT0RFLgorICovCit0eXBlZGVmIGVudW0geworICAgIFhNTF9FTEVNRU5UX05PREU9CQkxLAorICAgIFhNTF9BVFRSSUJVVEVfTk9ERT0JCTIsCisgICAgWE1MX1RFWFRfTk9ERT0JCTMsCisgICAgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERT0JNCwKKyAgICBYTUxfRU5USVRZX1JFRl9OT0RFPQk1LAorICAgIFhNTF9FTlRJVFlfTk9ERT0JCTYsCisgICAgWE1MX1BJX05PREU9CQk3LAorICAgIFhNTF9DT01NRU5UX05PREU9CQk4LAorICAgIFhNTF9ET0NVTUVOVF9OT0RFPQkJOSwKKyAgICBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFPQkxMCwKKyAgICBYTUxfRE9DVU1FTlRfRlJBR19OT0RFPQkxMSwKKyAgICBYTUxfTk9UQVRJT05fTk9ERT0JCTEyLAorICAgIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU9CTEzLAorICAgIFhNTF9EVERfTk9ERT0JCTE0LAorICAgIFhNTF9FTEVNRU5UX0RFQ0w9CQkxNSwKKyAgICBYTUxfQVRUUklCVVRFX0RFQ0w9CQkxNiwKKyAgICBYTUxfRU5USVRZX0RFQ0w9CQkxNywKKyAgICBYTUxfTkFNRVNQQUNFX0RFQ0w9CQkxOCwKKyAgICBYTUxfWElOQ0xVREVfU1RBUlQ9CQkxOSwKKyAgICBYTUxfWElOQ0xVREVfRU5EPQkJMjAKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisgICAsWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERT0JMjEKKyNlbmRpZgorfSB4bWxFbGVtZW50VHlwZTsKKworCisvKioKKyAqIHhtbE5vdGF0aW9uOgorICoKKyAqIEEgRFREIE5vdGF0aW9uIGRlZmluaXRpb24uCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbE5vdGF0aW9uIHhtbE5vdGF0aW9uOwordHlwZWRlZiB4bWxOb3RhdGlvbiAqeG1sTm90YXRpb25QdHI7CitzdHJ1Y3QgX3htbE5vdGF0aW9uIHsKKyAgICBjb25zdCB4bWxDaGFyICAgICAgICAgICAgICAgKm5hbWU7CSAgICAgICAgLyogTm90YXRpb24gbmFtZSAqLworICAgIGNvbnN0IHhtbENoYXIgICAgICAgICAgICAgICAqUHVibGljSUQ7CS8qIFB1YmxpYyBpZGVudGlmaWVyLCBpZiBhbnkgKi8KKyAgICBjb25zdCB4bWxDaGFyICAgICAgICAgICAgICAgKlN5c3RlbUlEOwkvKiBTeXN0ZW0gaWRlbnRpZmllciwgaWYgYW55ICovCit9OworCisvKioKKyAqIHhtbEF0dHJpYnV0ZVR5cGU6CisgKgorICogQSBEVEQgQXR0cmlidXRlIHR5cGUgZGVmaW5pdGlvbi4KKyAqLworCit0eXBlZGVmIGVudW0geworICAgIFhNTF9BVFRSSUJVVEVfQ0RBVEEgPSAxLAorICAgIFhNTF9BVFRSSUJVVEVfSUQsCisgICAgWE1MX0FUVFJJQlVURV9JRFJFRgksCisgICAgWE1MX0FUVFJJQlVURV9JRFJFRlMsCisgICAgWE1MX0FUVFJJQlVURV9FTlRJVFksCisgICAgWE1MX0FUVFJJQlVURV9FTlRJVElFUywKKyAgICBYTUxfQVRUUklCVVRFX05NVE9LRU4sCisgICAgWE1MX0FUVFJJQlVURV9OTVRPS0VOUywKKyAgICBYTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OLAorICAgIFhNTF9BVFRSSUJVVEVfTk9UQVRJT04KK30geG1sQXR0cmlidXRlVHlwZTsKKworLyoqCisgKiB4bWxBdHRyaWJ1dGVEZWZhdWx0OgorICoKKyAqIEEgRFREIEF0dHJpYnV0ZSBkZWZhdWx0IGRlZmluaXRpb24uCisgKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfQVRUUklCVVRFX05PTkUgPSAxLAorICAgIFhNTF9BVFRSSUJVVEVfUkVRVUlSRUQsCisgICAgWE1MX0FUVFJJQlVURV9JTVBMSUVELAorICAgIFhNTF9BVFRSSUJVVEVfRklYRUQKK30geG1sQXR0cmlidXRlRGVmYXVsdDsKKworLyoqCisgKiB4bWxFbnVtZXJhdGlvbjoKKyAqCisgKiBMaXN0IHN0cnVjdHVyZSB1c2VkIHdoZW4gdGhlcmUgaXMgYW4gZW51bWVyYXRpb24gaW4gRFREcy4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sRW51bWVyYXRpb24geG1sRW51bWVyYXRpb247Cit0eXBlZGVmIHhtbEVudW1lcmF0aW9uICp4bWxFbnVtZXJhdGlvblB0cjsKK3N0cnVjdCBfeG1sRW51bWVyYXRpb24geworICAgIHN0cnVjdCBfeG1sRW51bWVyYXRpb24gICAgKm5leHQ7CS8qIG5leHQgb25lICovCisgICAgY29uc3QgeG1sQ2hhciAgICAgICAgICAgICpuYW1lOwkvKiBFbnVtZXJhdGlvbiBuYW1lICovCit9OworCisvKioKKyAqIHhtbEF0dHJpYnV0ZToKKyAqCisgKiBBbiBBdHRyaWJ1dGUgZGVjbGFyYXRpb24gaW4gYSBEVEQuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbEF0dHJpYnV0ZSB4bWxBdHRyaWJ1dGU7Cit0eXBlZGVmIHhtbEF0dHJpYnV0ZSAqeG1sQXR0cmlidXRlUHRyOworc3RydWN0IF94bWxBdHRyaWJ1dGUgeworICAgIHZvaWQgICAgICAgICAgICpfcHJpdmF0ZTsJICAgICAgICAvKiBhcHBsaWNhdGlvbiBkYXRhICovCisgICAgeG1sRWxlbWVudFR5cGUgICAgICAgICAgdHlwZTsgICAgICAgLyogWE1MX0FUVFJJQlVURV9ERUNMLCBtdXN0IGJlIHNlY29uZCAhICovCisgICAgY29uc3QgeG1sQ2hhciAgICAgICAgICAqbmFtZTsJLyogQXR0cmlidXRlIG5hbWUgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgICAgKmNoaWxkcmVuOwkvKiBOVUxMICovCisgICAgc3RydWN0IF94bWxOb2RlICAgICAgICAqbGFzdDsJLyogTlVMTCAqLworICAgIHN0cnVjdCBfeG1sRHRkICAgICAgICpwYXJlbnQ7CS8qIC0+IERURCAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAgICAgICAgKm5leHQ7CS8qIG5leHQgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAgICAgICAgKnByZXY7CS8qIHByZXZpb3VzIHNpYmxpbmcgbGluayAgKi8KKyAgICBzdHJ1Y3QgX3htbERvYyAgICAgICAgICAqZG9jOyAgICAgICAvKiB0aGUgY29udGFpbmluZyBkb2N1bWVudCAqLworCisgICAgc3RydWN0IF94bWxBdHRyaWJ1dGUgICpuZXh0aDsJLyogbmV4dCBpbiBoYXNoIHRhYmxlICovCisgICAgeG1sQXR0cmlidXRlVHlwZSAgICAgICBhdHlwZTsJLyogVGhlIGF0dHJpYnV0ZSB0eXBlICovCisgICAgeG1sQXR0cmlidXRlRGVmYXVsdCAgICAgIGRlZjsJLyogdGhlIGRlZmF1bHQgKi8KKyAgICBjb25zdCB4bWxDaGFyICAqZGVmYXVsdFZhbHVlOwkvKiBvciB0aGUgZGVmYXVsdCB2YWx1ZSAqLworICAgIHhtbEVudW1lcmF0aW9uUHRyICAgICAgIHRyZWU7ICAgICAgIC8qIG9yIHRoZSBlbnVtZXJhdGlvbiB0cmVlIGlmIGFueSAqLworICAgIGNvbnN0IHhtbENoYXIgICAgICAgICpwcmVmaXg7CS8qIHRoZSBuYW1lc3BhY2UgcHJlZml4IGlmIGFueSAqLworICAgIGNvbnN0IHhtbENoYXIgICAgICAgICAgKmVsZW07CS8qIEVsZW1lbnQgaG9sZGluZyB0aGUgYXR0cmlidXRlICovCit9OworCisvKioKKyAqIHhtbEVsZW1lbnRDb250ZW50VHlwZToKKyAqCisgKiBQb3NzaWJsZSBkZWZpbml0aW9ucyBvZiBlbGVtZW50IGNvbnRlbnQgdHlwZXMuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEgPSAxLAorICAgIFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCwKKyAgICBYTUxfRUxFTUVOVF9DT05URU5UX1NFUSwKKyAgICBYTUxfRUxFTUVOVF9DT05URU5UX09SCit9IHhtbEVsZW1lbnRDb250ZW50VHlwZTsKKworLyoqCisgKiB4bWxFbGVtZW50Q29udGVudE9jY3VyOgorICoKKyAqIFBvc3NpYmxlIGRlZmluaXRpb25zIG9mIGVsZW1lbnQgY29udGVudCBvY2N1cnJlbmNlcy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfRUxFTUVOVF9DT05URU5UX09OQ0UgPSAxLAorICAgIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1BULAorICAgIFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVCwKKyAgICBYTUxfRUxFTUVOVF9DT05URU5UX1BMVVMKK30geG1sRWxlbWVudENvbnRlbnRPY2N1cjsKKworLyoqCisgKiB4bWxFbGVtZW50Q29udGVudDoKKyAqCisgKiBBbiBYTUwgRWxlbWVudCBjb250ZW50IGFzIHN0b3JlZCBhZnRlciBwYXJzaW5nIGFuIGVsZW1lbnQgZGVmaW5pdGlvbgorICogaW4gYSBEVEQuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbEVsZW1lbnRDb250ZW50IHhtbEVsZW1lbnRDb250ZW50OwordHlwZWRlZiB4bWxFbGVtZW50Q29udGVudCAqeG1sRWxlbWVudENvbnRlbnRQdHI7CitzdHJ1Y3QgX3htbEVsZW1lbnRDb250ZW50IHsKKyAgICB4bWxFbGVtZW50Q29udGVudFR5cGUgICAgIHR5cGU7CS8qIFBDREFUQSwgRUxFTUVOVCwgU0VRIG9yIE9SICovCisgICAgeG1sRWxlbWVudENvbnRlbnRPY2N1ciAgICBvY3VyOwkvKiBPTkNFLCBPUFQsIE1VTFQgb3IgUExVUyAqLworICAgIGNvbnN0IHhtbENoYXIgICAgICAgICAgICAgKm5hbWU7CS8qIEVsZW1lbnQgbmFtZSAqLworICAgIHN0cnVjdCBfeG1sRWxlbWVudENvbnRlbnQgKmMxOwkvKiBmaXJzdCBjaGlsZCAqLworICAgIHN0cnVjdCBfeG1sRWxlbWVudENvbnRlbnQgKmMyOwkvKiBzZWNvbmQgY2hpbGQgKi8KKyAgICBzdHJ1Y3QgX3htbEVsZW1lbnRDb250ZW50ICpwYXJlbnQ7CS8qIHBhcmVudCAqLworICAgIGNvbnN0IHhtbENoYXIgICAgICAgICAgICAgKnByZWZpeDsJLyogTmFtZXNwYWNlIHByZWZpeCAqLworfTsKKworLyoqCisgKiB4bWxFbGVtZW50VHlwZVZhbDoKKyAqCisgKiBUaGUgZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMgZm9yIGFuIGVsZW1lbnQgY29udGVudCB0eXBlLgorICovCisKK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQgPSAwLAorICAgIFhNTF9FTEVNRU5UX1RZUEVfRU1QVFkgPSAxLAorICAgIFhNTF9FTEVNRU5UX1RZUEVfQU5ZLAorICAgIFhNTF9FTEVNRU5UX1RZUEVfTUlYRUQsCisgICAgWE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UCit9IHhtbEVsZW1lbnRUeXBlVmFsOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWdleHAuaD4KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiB4bWxFbGVtZW50OgorICoKKyAqIEFuIFhNTCBFbGVtZW50IGRlY2xhcmF0aW9uIGZyb20gYSBEVEQuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbEVsZW1lbnQgeG1sRWxlbWVudDsKK3R5cGVkZWYgeG1sRWxlbWVudCAqeG1sRWxlbWVudFB0cjsKK3N0cnVjdCBfeG1sRWxlbWVudCB7CisgICAgdm9pZCAgICAgICAgICAgKl9wcml2YXRlOwkgICAgICAgIC8qIGFwcGxpY2F0aW9uIGRhdGEgKi8KKyAgICB4bWxFbGVtZW50VHlwZSAgICAgICAgICB0eXBlOyAgICAgICAvKiBYTUxfRUxFTUVOVF9ERUNMLCBtdXN0IGJlIHNlY29uZCAhICovCisgICAgY29uc3QgeG1sQ2hhciAgICAgICAgICAqbmFtZTsJLyogRWxlbWVudCBuYW1lICovCisgICAgc3RydWN0IF94bWxOb2RlICAgICpjaGlsZHJlbjsJLyogTlVMTCAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAgICAgICAgKmxhc3Q7CS8qIE5VTEwgKi8KKyAgICBzdHJ1Y3QgX3htbER0ZCAgICAgICAqcGFyZW50OwkvKiAtPiBEVEQgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgICAgICAgICpuZXh0OwkvKiBuZXh0IHNpYmxpbmcgbGluayAgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgICAgICAgICpwcmV2OwkvKiBwcmV2aW91cyBzaWJsaW5nIGxpbmsgICovCisgICAgc3RydWN0IF94bWxEb2MgICAgICAgICAgKmRvYzsgICAgICAgLyogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQgKi8KKworICAgIHhtbEVsZW1lbnRUeXBlVmFsICAgICAgZXR5cGU7CS8qIFRoZSB0eXBlICovCisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudDsJLyogdGhlIGFsbG93ZWQgZWxlbWVudCBjb250ZW50ICovCisgICAgeG1sQXR0cmlidXRlUHRyICAgYXR0cmlidXRlczsJLyogTGlzdCBvZiB0aGUgZGVjbGFyZWQgYXR0cmlidXRlcyAqLworICAgIGNvbnN0IHhtbENoYXIgICAgICAgICpwcmVmaXg7CS8qIHRoZSBuYW1lc3BhY2UgcHJlZml4IGlmIGFueSAqLworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorICAgIHhtbFJlZ2V4cFB0ciAgICAgICBjb250TW9kZWw7CS8qIHRoZSB2YWxpZGF0aW5nIHJlZ2V4cCAqLworI2Vsc2UKKyAgICB2b2lkCSAgICAgICpjb250TW9kZWw7CisjZW5kaWYKK307CisKKworLyoqCisgKiBYTUxfTE9DQUxfTkFNRVNQQUNFOgorICoKKyAqIEEgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIG5vZGUuCisgKi8KKyNkZWZpbmUgWE1MX0xPQ0FMX05BTUVTUEFDRSBYTUxfTkFNRVNQQUNFX0RFQ0wKK3R5cGVkZWYgeG1sRWxlbWVudFR5cGUgeG1sTnNUeXBlOworCisvKioKKyAqIHhtbE5zOgorICoKKyAqIEFuIFhNTCBuYW1lc3BhY2UuCisgKiBOb3RlIHRoYXQgcHJlZml4ID09IE5VTEwgaXMgdmFsaWQsIGl0IGRlZmluZXMgdGhlIGRlZmF1bHQgbmFtZXNwYWNlCisgKiB3aXRoaW4gdGhlIHN1YnRyZWUgKHVudGlsIG92ZXJyaWRkZW4pLgorICoKKyAqIHhtbE5zVHlwZSBpcyB1bmlmaWVkIHdpdGggeG1sRWxlbWVudFR5cGUuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbE5zIHhtbE5zOwordHlwZWRlZiB4bWxOcyAqeG1sTnNQdHI7CitzdHJ1Y3QgX3htbE5zIHsKKyAgICBzdHJ1Y3QgX3htbE5zICAqbmV4dDsJLyogbmV4dCBOcyBsaW5rIGZvciB0aGlzIG5vZGUgICovCisgICAgeG1sTnNUeXBlICAgICAgdHlwZTsJLyogZ2xvYmFsIG9yIGxvY2FsICovCisgICAgY29uc3QgeG1sQ2hhciAqaHJlZjsJLyogVVJMIGZvciB0aGUgbmFtZXNwYWNlICovCisgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4OwkvKiBwcmVmaXggZm9yIHRoZSBuYW1lc3BhY2UgKi8KKyAgICB2b2lkICAgICAgICAgICAqX3ByaXZhdGU7ICAgLyogYXBwbGljYXRpb24gZGF0YSAqLworICAgIHN0cnVjdCBfeG1sRG9jICpjb250ZXh0OwkJLyogbm9ybWFsbHkgYW4geG1sRG9jICovCit9OworCisvKioKKyAqIHhtbER0ZDoKKyAqCisgKiBBbiBYTUwgRFRELCBhcyBkZWZpbmVkIGJ5IDwhRE9DVFlQRSAuLi4gVGhlcmUgaXMgYWN0dWFsbHkgb25lIGZvcgorICogdGhlIGludGVybmFsIHN1YnNldCBhbmQgZm9yIHRoZSBleHRlcm5hbCBzdWJzZXQuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxEdGQgeG1sRHRkOwordHlwZWRlZiB4bWxEdGQgKnhtbER0ZFB0cjsKK3N0cnVjdCBfeG1sRHRkIHsKKyAgICB2b2lkICAgICAgICAgICAqX3ByaXZhdGU7CS8qIGFwcGxpY2F0aW9uIGRhdGEgKi8KKyAgICB4bWxFbGVtZW50VHlwZSAgdHlwZTsgICAgICAgLyogWE1MX0RURF9OT0RFLCBtdXN0IGJlIHNlY29uZCAhICovCisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsJLyogTmFtZSBvZiB0aGUgRFREICovCisgICAgc3RydWN0IF94bWxOb2RlICpjaGlsZHJlbjsJLyogdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBsaW5rICovCisgICAgc3RydWN0IF94bWxOb2RlICpsYXN0OwkvKiBsYXN0IGNoaWxkIGxpbmsgKi8KKyAgICBzdHJ1Y3QgX3htbERvYyAgKnBhcmVudDsJLyogY2hpbGQtPnBhcmVudCBsaW5rICovCisgICAgc3RydWN0IF94bWxOb2RlICpuZXh0OwkvKiBuZXh0IHNpYmxpbmcgbGluayAgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgKnByZXY7CS8qIHByZXZpb3VzIHNpYmxpbmcgbGluayAgKi8KKyAgICBzdHJ1Y3QgX3htbERvYyAgKmRvYzsJLyogdGhlIGNvbnRhaW5pbmcgZG9jdW1lbnQgKi8KKworICAgIC8qIEVuZCBvZiBjb21tb24gcGFydCAqLworICAgIHZvaWQgICAgICAgICAgKm5vdGF0aW9uczsgICAvKiBIYXNoIHRhYmxlIGZvciBub3RhdGlvbnMgaWYgYW55ICovCisgICAgdm9pZCAgICAgICAgICAqZWxlbWVudHM7ICAgIC8qIEhhc2ggdGFibGUgZm9yIGVsZW1lbnRzIGlmIGFueSAqLworICAgIHZvaWQgICAgICAgICAgKmF0dHJpYnV0ZXM7ICAvKiBIYXNoIHRhYmxlIGZvciBhdHRyaWJ1dGVzIGlmIGFueSAqLworICAgIHZvaWQgICAgICAgICAgKmVudGl0aWVzOyAgICAvKiBIYXNoIHRhYmxlIGZvciBlbnRpdGllcyBpZiBhbnkgKi8KKyAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElEOwkvKiBFeHRlcm5hbCBpZGVudGlmaWVyIGZvciBQVUJMSUMgRFREICovCisgICAgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQ7CS8qIFVSSSBmb3IgYSBTWVNURU0gb3IgUFVCTElDIERURCAqLworICAgIHZvaWQgICAgICAgICAgKnBlbnRpdGllczsgICAvKiBIYXNoIHRhYmxlIGZvciBwYXJhbSBlbnRpdGllcyBpZiBhbnkgKi8KK307CisKKy8qKgorICogeG1sQXR0cjoKKyAqCisgKiBBbiBhdHRyaWJ1dGUgb24gYW4gWE1MIG5vZGUuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxBdHRyIHhtbEF0dHI7Cit0eXBlZGVmIHhtbEF0dHIgKnhtbEF0dHJQdHI7CitzdHJ1Y3QgX3htbEF0dHIgeworICAgIHZvaWQgICAgICAgICAgICpfcHJpdmF0ZTsJLyogYXBwbGljYXRpb24gZGF0YSAqLworICAgIHhtbEVsZW1lbnRUeXBlICAgdHlwZTsgICAgICAvKiBYTUxfQVRUUklCVVRFX05PREUsIG11c3QgYmUgc2Vjb25kICEgKi8KKyAgICBjb25zdCB4bWxDaGFyICAgKm5hbWU7ICAgICAgLyogdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5ICovCisgICAgc3RydWN0IF94bWxOb2RlICpjaGlsZHJlbjsJLyogdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAqbGFzdDsJLyogTlVMTCAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAqcGFyZW50OwkvKiBjaGlsZC0+cGFyZW50IGxpbmsgKi8KKyAgICBzdHJ1Y3QgX3htbEF0dHIgKm5leHQ7CS8qIG5leHQgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sQXR0ciAqcHJldjsJLyogcHJldmlvdXMgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sRG9jICAqZG9jOwkvKiB0aGUgY29udGFpbmluZyBkb2N1bWVudCAqLworICAgIHhtbE5zICAgICAgICAgICAqbnM7ICAgICAgICAvKiBwb2ludGVyIHRvIHRoZSBhc3NvY2lhdGVkIG5hbWVzcGFjZSAqLworICAgIHhtbEF0dHJpYnV0ZVR5cGUgYXR5cGU7ICAgICAvKiB0aGUgYXR0cmlidXRlIHR5cGUgaWYgdmFsaWRhdGluZyAqLworICAgIHZvaWQgICAgICAgICAgICAqcHN2aTsJLyogZm9yIHR5cGUvUFNWSSBpbmZvcm1hdGlvbnMgKi8KK307CisKKy8qKgorICogeG1sSUQ6CisgKgorICogQW4gWE1MIElEIGluc3RhbmNlLgorICovCisKK3R5cGVkZWYgc3RydWN0IF94bWxJRCB4bWxJRDsKK3R5cGVkZWYgeG1sSUQgKnhtbElEUHRyOworc3RydWN0IF94bWxJRCB7CisgICAgc3RydWN0IF94bWxJRCAgICAqbmV4dDsJLyogbmV4dCBJRCAqLworICAgIGNvbnN0IHhtbENoYXIgICAgKnZhbHVlOwkvKiBUaGUgSUQgbmFtZSAqLworICAgIHhtbEF0dHJQdHIgICAgICAgIGF0dHI7CS8qIFRoZSBhdHRyaWJ1dGUgaG9sZGluZyBpdCAqLworICAgIGNvbnN0IHhtbENoYXIgICAgKm5hbWU7CS8qIFRoZSBhdHRyaWJ1dGUgaWYgYXR0ciBpcyBub3QgYXZhaWxhYmxlICovCisgICAgaW50ICAgICAgICAgICAgICAgbGluZW5vOwkvKiBUaGUgbGluZSBudW1iZXIgaWYgYXR0ciBpcyBub3QgYXZhaWxhYmxlICovCisgICAgc3RydWN0IF94bWxEb2MgICAqZG9jOwkvKiBUaGUgZG9jdW1lbnQgaG9sZGluZyB0aGUgSUQgKi8KK307CisKKy8qKgorICogeG1sUmVmOgorICoKKyAqIEFuIFhNTCBJRFJFRiBpbnN0YW5jZS4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sUmVmIHhtbFJlZjsKK3R5cGVkZWYgeG1sUmVmICp4bWxSZWZQdHI7CitzdHJ1Y3QgX3htbFJlZiB7CisgICAgc3RydWN0IF94bWxSZWYgICAgKm5leHQ7CS8qIG5leHQgUmVmICovCisgICAgY29uc3QgeG1sQ2hhciAgICAgKnZhbHVlOwkvKiBUaGUgUmVmIG5hbWUgKi8KKyAgICB4bWxBdHRyUHRyICAgICAgICBhdHRyOwkvKiBUaGUgYXR0cmlidXRlIGhvbGRpbmcgaXQgKi8KKyAgICBjb25zdCB4bWxDaGFyICAgICpuYW1lOwkvKiBUaGUgYXR0cmlidXRlIGlmIGF0dHIgaXMgbm90IGF2YWlsYWJsZSAqLworICAgIGludCAgICAgICAgICAgICAgIGxpbmVubzsJLyogVGhlIGxpbmUgbnVtYmVyIGlmIGF0dHIgaXMgbm90IGF2YWlsYWJsZSAqLworfTsKKworLyoqCisgKiB4bWxOb2RlOgorICoKKyAqIEEgbm9kZSBpbiBhbiBYTUwgdHJlZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbE5vZGUgeG1sTm9kZTsKK3R5cGVkZWYgeG1sTm9kZSAqeG1sTm9kZVB0cjsKK3N0cnVjdCBfeG1sTm9kZSB7CisgICAgdm9pZCAgICAgICAgICAgKl9wcml2YXRlOwkvKiBhcHBsaWNhdGlvbiBkYXRhICovCisgICAgeG1sRWxlbWVudFR5cGUgICB0eXBlOwkvKiB0eXBlIG51bWJlciwgbXVzdCBiZSBzZWNvbmQgISAqLworICAgIGNvbnN0IHhtbENoYXIgICAqbmFtZTsgICAgICAvKiB0aGUgbmFtZSBvZiB0aGUgbm9kZSwgb3IgdGhlIGVudGl0eSAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAqY2hpbGRyZW47CS8qIHBhcmVudC0+Y2hpbGRzIGxpbmsgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgKmxhc3Q7CS8qIGxhc3QgY2hpbGQgbGluayAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAqcGFyZW50OwkvKiBjaGlsZC0+cGFyZW50IGxpbmsgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgKm5leHQ7CS8qIG5leHQgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAqcHJldjsJLyogcHJldmlvdXMgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sRG9jICAqZG9jOwkvKiB0aGUgY29udGFpbmluZyBkb2N1bWVudCAqLworCisgICAgLyogRW5kIG9mIGNvbW1vbiBwYXJ0ICovCisgICAgeG1sTnMgICAgICAgICAgICpuczsgICAgICAgIC8qIHBvaW50ZXIgdG8gdGhlIGFzc29jaWF0ZWQgbmFtZXNwYWNlICovCisgICAgeG1sQ2hhciAgICAgICAgICpjb250ZW50OyAgIC8qIHRoZSBjb250ZW50ICovCisgICAgc3RydWN0IF94bWxBdHRyICpwcm9wZXJ0aWVzOy8qIHByb3BlcnRpZXMgbGlzdCAqLworICAgIHhtbE5zICAgICAgICAgICAqbnNEZWY7ICAgICAvKiBuYW1lc3BhY2UgZGVmaW5pdGlvbnMgb24gdGhpcyBub2RlICovCisgICAgdm9pZCAgICAgICAgICAgICpwc3ZpOwkvKiBmb3IgdHlwZS9QU1ZJIGluZm9ybWF0aW9ucyAqLworICAgIHVuc2lnbmVkIHNob3J0ICAgbGluZTsJLyogbGluZSBudW1iZXIgKi8KKyAgICB1bnNpZ25lZCBzaG9ydCAgIGV4dHJhOwkvKiBleHRyYSBkYXRhIGZvciBYUGF0aC9YU0xUICovCit9OworCisvKioKKyAqIFhNTF9HRVRfQ09OVEVOVDoKKyAqCisgKiBNYWNybyB0byBleHRyYWN0IHRoZSBjb250ZW50IHBvaW50ZXIgb2YgYSBub2RlLgorICovCisjZGVmaW5lIFhNTF9HRVRfQ09OVEVOVChuKQkJCQkJXAorICAgICgobiktPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSA/IE5VTEwgOiAobiktPmNvbnRlbnQpCisKKy8qKgorICogWE1MX0dFVF9MSU5FOgorICoKKyAqIE1hY3JvIHRvIGV4dHJhY3QgdGhlIGxpbmUgbnVtYmVyIG9mIGFuIGVsZW1lbnQgbm9kZS4gCisgKi8KKyNkZWZpbmUgWE1MX0dFVF9MSU5FKG4pCQkJCQkJXAorICAgICh4bWxHZXRMaW5lTm8obikpCisKKy8qKgorICogeG1sRG9jUHJvcGVydHkKKyAqCisgKiBTZXQgb2YgcHJvcGVydGllcyBvZiB0aGUgZG9jdW1lbnQgYXMgZm91bmQgYnkgdGhlIHBhcnNlcgorICogU29tZSBvZiB0aGVtIGFyZSBsaW5rZWQgdG8gc2ltaWxhcnkgbmFtZWQgeG1sUGFyc2VyT3B0aW9uCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX0RPQ19XRUxMRk9STUVECQk9IDE8PDAsIC8qIGRvY3VtZW50IGlzIFhNTCB3ZWxsIGZvcm1lZCAqLworICAgIFhNTF9ET0NfTlNWQUxJRAkJPSAxPDwxLCAvKiBkb2N1bWVudCBpcyBOYW1lc3BhY2UgdmFsaWQgKi8KKyAgICBYTUxfRE9DX09MRDEwCQk9IDE8PDIsIC8qIHBhcnNlZCB3aXRoIG9sZCBYTUwtMS4wIHBhcnNlciAqLworICAgIFhNTF9ET0NfRFREVkFMSUQJCT0gMTw8MywgLyogRFREIHZhbGlkYXRpb24gd2FzIHN1Y2Nlc3NmdWwgKi8KKyAgICBYTUxfRE9DX1hJTkNMVURFCQk9IDE8PDQsIC8qIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiB3YXMgZG9uZSAqLworICAgIFhNTF9ET0NfVVNFUkJVSUxUCQk9IDE8PDUsIC8qIERvY3VtZW50IHdhcyBidWlsdCB1c2luZyB0aGUgQVBJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG5vdCBieSBwYXJzaW5nIGFuIGluc3RhbmNlICovCisgICAgWE1MX0RPQ19JTlRFUk5BTAkJPSAxPDw2LCAvKiBidWlsdCBmb3IgaW50ZXJuYWwgcHJvY2Vzc2luZyAqLworICAgIFhNTF9ET0NfSFRNTAkJPSAxPDw3ICAvKiBwYXJzZWQgb3IgYnVpbHQgSFRNTCBkb2N1bWVudCAqLworfSB4bWxEb2NQcm9wZXJ0aWVzOworCisvKioKKyAqIHhtbERvYzoKKyAqCisgKiBBbiBYTUwgZG9jdW1lbnQuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxEb2MgeG1sRG9jOwordHlwZWRlZiB4bWxEb2MgKnhtbERvY1B0cjsKK3N0cnVjdCBfeG1sRG9jIHsKKyAgICB2b2lkICAgICAgICAgICAqX3ByaXZhdGU7CS8qIGFwcGxpY2F0aW9uIGRhdGEgKi8KKyAgICB4bWxFbGVtZW50VHlwZSAgdHlwZTsgICAgICAgLyogWE1MX0RPQ1VNRU5UX05PREUsIG11c3QgYmUgc2Vjb25kICEgKi8KKyAgICBjaGFyICAgICAgICAgICAqbmFtZTsJLyogbmFtZS9maWxlbmFtZS9VUkkgb2YgdGhlIGRvY3VtZW50ICovCisgICAgc3RydWN0IF94bWxOb2RlICpjaGlsZHJlbjsJLyogdGhlIGRvY3VtZW50IHRyZWUgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgKmxhc3Q7CS8qIGxhc3QgY2hpbGQgbGluayAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAqcGFyZW50OwkvKiBjaGlsZC0+cGFyZW50IGxpbmsgKi8KKyAgICBzdHJ1Y3QgX3htbE5vZGUgKm5leHQ7CS8qIG5leHQgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sTm9kZSAqcHJldjsJLyogcHJldmlvdXMgc2libGluZyBsaW5rICAqLworICAgIHN0cnVjdCBfeG1sRG9jICAqZG9jOwkvKiBhdXRvcmVmZXJlbmNlIHRvIGl0c2VsZiAqLworCisgICAgLyogRW5kIG9mIGNvbW1vbiBwYXJ0ICovCisgICAgaW50ICAgICAgICAgICAgIGNvbXByZXNzaW9uOy8qIGxldmVsIG9mIHpsaWIgY29tcHJlc3Npb24gKi8KKyAgICBpbnQgICAgICAgICAgICAgc3RhbmRhbG9uZTsgLyogc3RhbmRhbG9uZSBkb2N1bWVudCAobm8gZXh0ZXJuYWwgcmVmcykgCisJCQkJICAgICAxIGlmIHN0YW5kYWxvbmU9InllcyIKKwkJCQkgICAgIDAgaWYgc3RhbmRhbG9uZT0ibm8iCisJCQkJICAgIC0xIGlmIHRoZXJlIGlzIG5vIFhNTCBkZWNsYXJhdGlvbgorCQkJCSAgICAtMiBpZiB0aGVyZSBpcyBhbiBYTUwgZGVjbGFyYXRpb24sIGJ1dCBubworCQkJCQlzdGFuZGFsb25lIGF0dHJpYnV0ZSB3YXMgc3BlY2lmaWVkICovCisgICAgc3RydWN0IF94bWxEdGQgICppbnRTdWJzZXQ7CS8qIHRoZSBkb2N1bWVudCBpbnRlcm5hbCBzdWJzZXQgKi8KKyAgICBzdHJ1Y3QgX3htbER0ZCAgKmV4dFN1YnNldDsJLyogdGhlIGRvY3VtZW50IGV4dGVybmFsIHN1YnNldCAqLworICAgIHN0cnVjdCBfeG1sTnMgICAqb2xkTnM7CS8qIEdsb2JhbCBuYW1lc3BhY2UsIHRoZSBvbGQgd2F5ICovCisgICAgY29uc3QgeG1sQ2hhciAgKnZlcnNpb247CS8qIHRoZSBYTUwgdmVyc2lvbiBzdHJpbmcgKi8KKyAgICBjb25zdCB4bWxDaGFyICAqZW5jb2Rpbmc7ICAgLyogZXh0ZXJuYWwgaW5pdGlhbCBlbmNvZGluZywgaWYgYW55ICovCisgICAgdm9pZCAgICAgICAgICAgKmlkczsgICAgICAgIC8qIEhhc2ggdGFibGUgZm9yIElEIGF0dHJpYnV0ZXMgaWYgYW55ICovCisgICAgdm9pZCAgICAgICAgICAgKnJlZnM7ICAgICAgIC8qIEhhc2ggdGFibGUgZm9yIElEUkVGcyBhdHRyaWJ1dGVzIGlmIGFueSAqLworICAgIGNvbnN0IHhtbENoYXIgICpVUkw7CS8qIFRoZSBVUkkgZm9yIHRoYXQgZG9jdW1lbnQgKi8KKyAgICBpbnQgICAgICAgICAgICAgY2hhcnNldDsgICAgLyogZW5jb2Rpbmcgb2YgdGhlIGluLW1lbW9yeSBjb250ZW50CisJCQkJICAgYWN0dWFsbHkgYW4geG1sQ2hhckVuY29kaW5nICovCisgICAgc3RydWN0IF94bWxEaWN0ICpkaWN0OyAgICAgIC8qIGRpY3QgdXNlZCB0byBhbGxvY2F0ZSBuYW1lcyBvciBOVUxMICovCisgICAgdm9pZCAgICAgICAgICAgKnBzdmk7CS8qIGZvciB0eXBlL1BTVkkgaW5mb3JtYXRpb25zICovCisgICAgaW50ICAgICAgICAgICAgIHBhcnNlRmxhZ3M7CS8qIHNldCBvZiB4bWxQYXJzZXJPcHRpb24gdXNlZCB0byBwYXJzZSB0aGUKKwkJCQkgICBkb2N1bWVudCAqLworICAgIGludCAgICAgICAgICAgICBwcm9wZXJ0aWVzOwkvKiBzZXQgb2YgeG1sRG9jUHJvcGVydGllcyBmb3IgdGhpcyBkb2N1bWVudAorCQkJCSAgIHNldCBhdCB0aGUgZW5kIG9mIHBhcnNpbmcgKi8KK307CisKKwordHlwZWRlZiBzdHJ1Y3QgX3htbERPTVdyYXBDdHh0IHhtbERPTVdyYXBDdHh0OwordHlwZWRlZiB4bWxET01XcmFwQ3R4dCAqeG1sRE9NV3JhcEN0eHRQdHI7CisKKy8qKgorICogeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uOgorICogQGN0eHQ6ICBhIERPTSB3cmFwcGVyIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIGNvbnRleHQgbm9kZSAoZWxlbWVudCBvciBhdHRyaWJ1dGUpIAorICogQG5zTmFtZTogIHRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlIG5hbWUKKyAqIEBuc1ByZWZpeDogIHRoZSByZXF1ZXN0ZWQgbmFtZXNwYWNlIHByZWZpeCAKKyAqCisgKiBBIGZ1bmN0aW9uIGNhbGxlZCB0byBhY3F1aXJlIG5hbWVzcGFjZXMgKHhtbE5zKSBmcm9tIHRoZSB3cmFwcGVyLgorICoKKyAqIFJldHVybnMgYW4geG1sTnNQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGFuIGVycm9yLgorICovCit0eXBlZGVmIHhtbE5zUHRyICgqeG1sRE9NV3JhcEFjcXVpcmVOc0Z1bmN0aW9uKSAoeG1sRE9NV3JhcEN0eHRQdHIgY3R4dCwKKwkJCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbnNOYW1lLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5zUHJlZml4KTsKKworLyoqCisgKiB4bWxET01XcmFwQ3R4dDoKKyAqCisgKiBDb250ZXh0IGZvciBET00gd3JhcHBlci1vcGVyYXRpb25zLgorICovCitzdHJ1Y3QgX3htbERPTVdyYXBDdHh0IHsKKyAgICB2b2lkICogX3ByaXZhdGU7CisgICAgLyoKKyAgICAqIFRoZSB0eXBlIG9mIHRoaXMgY29udGV4dCwganVzdCBpbiBjYXNlIHdlIG5lZWQgc3BlY2lhbGl6ZWQKKyAgICAqIGNvbnRleHRzIGluIHRoZSBmdXR1cmUuCisgICAgKi8KKyAgICBpbnQgdHlwZTsKKyAgICAvKgorICAgICogSW50ZXJuYWwgbmFtZXNwYWNlIG1hcCB1c2VkIGZvciB2YXJpb3VzIG9wZXJhdGlvbnMuCisgICAgKi8KKyAgICB2b2lkICogbmFtZXNwYWNlTWFwOworICAgIC8qCisgICAgKiBVc2UgdGhpcyBvbmUgdG8gYWNxdWlyZSBhbiB4bWxOc1B0ciBpbnRlbmRlZCBmb3Igbm9kZS0+bnMuCisgICAgKiAoTm90ZSB0aGF0IHRoaXMgaXMgbm90IGludGVuZGVkIGZvciBlbGVtLT5uc0RlZikuCisgICAgKi8KKyAgICB4bWxET01XcmFwQWNxdWlyZU5zRnVuY3Rpb24gZ2V0TnNGb3JOb2RlRnVuYzsKK307CisKKy8qKgorICogeG1sQ2hpbGRyZW5Ob2RlOgorICoKKyAqIE1hY3JvIGZvciBjb21wYXRpYmlsaXR5IG5hbWluZyBsYXllciB3aXRoIGxpYnhtbDEuIE1hcHMKKyAqIHRvICJjaGlsZHJlbi4iCisgKi8KKyNpZm5kZWYgeG1sQ2hpbGRyZW5Ob2RlCisjZGVmaW5lIHhtbENoaWxkcmVuTm9kZSBjaGlsZHJlbgorI2VuZGlmCisKKy8qKgorICogeG1sUm9vdE5vZGU6CisgKgorICogTWFjcm8gZm9yIGNvbXBhdGliaWxpdHkgbmFtaW5nIGxheWVyIHdpdGggbGlieG1sMS4gTWFwcyAKKyAqIHRvICJjaGlsZHJlbiIuCisgKi8KKyNpZm5kZWYgeG1sUm9vdE5vZGUKKyNkZWZpbmUgeG1sUm9vdE5vZGUgY2hpbGRyZW4KKyNlbmRpZgorCisvKgorICogVmFyaWFibGVzLgorICovCisKKy8qCisgKiBTb21lIGhlbHBlciBmdW5jdGlvbnMKKyAqLworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSB8fCBkZWZpbmVkIChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCkKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxWYWxpZGF0ZU5DTmFtZQkoY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCQkJCSBpbnQgc3BhY2UpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlUU5hbWUJKGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkgaW50IHNwYWNlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlTmFtZQkJKGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkgaW50IHNwYWNlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlTk1Ub2tlbgkoY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCQkJCSBpbnQgc3BhY2UpOworI2VuZGlmCisKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sQnVpbGRRTmFtZQkJKGNvbnN0IHhtbENoYXIgKm5jbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnByZWZpeCwKKwkJCQkJIHhtbENoYXIgKm1lbW9yeSwKKwkJCQkJIGludCBsZW4pOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxTcGxpdFFOYW1lMgkJKGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSB4bWxDaGFyICoqcHJlZml4KTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sU3BsaXRRTmFtZTMJCShjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgaW50ICpsZW4pOworCisvKgorICogSGFuZGxpbmcgQnVmZmVycy4KKyAqLworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSh4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHNjaGVtZSk7CitYTUxQVUJGVU4geG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSBYTUxDQUxMCSAKKwkJeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSh2b2lkKTsKKworWE1MUFVCRlVOIHhtbEJ1ZmZlclB0ciBYTUxDQUxMCQorCQl4bWxCdWZmZXJDcmVhdGUJCSh2b2lkKTsKK1hNTFBVQkZVTiB4bWxCdWZmZXJQdHIgWE1MQ0FMTAkKKwkJeG1sQnVmZmVyQ3JlYXRlU2l6ZQkoc2l6ZV90IHNpemUpOworWE1MUFVCRlVOIHhtbEJ1ZmZlclB0ciBYTUxDQUxMCQorCQl4bWxCdWZmZXJDcmVhdGVTdGF0aWMJKHZvaWQgKm1lbSwKKwkJCQkJIHNpemVfdCBzaXplKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEJ1ZmZlclJlc2l6ZQkJKHhtbEJ1ZmZlclB0ciBidWYsCisJCQkJCSB1bnNpZ25lZCBpbnQgc2l6ZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sQnVmZmVyRnJlZQkJKHhtbEJ1ZmZlclB0ciBidWYpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sQnVmZmVyRHVtcAkJKEZJTEUgKmZpbGUsCisJCQkJCSB4bWxCdWZmZXJQdHIgYnVmKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEJ1ZmZlckFkZAkJKHhtbEJ1ZmZlclB0ciBidWYsCisJCQkJCSBjb25zdCB4bWxDaGFyICpzdHIsCisJCQkJCSBpbnQgbGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEJ1ZmZlckFkZEhlYWQJKHhtbEJ1ZmZlclB0ciBidWYsCisJCQkJCSBjb25zdCB4bWxDaGFyICpzdHIsCisJCQkJCSBpbnQgbGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEJ1ZmZlckNhdAkJKHhtbEJ1ZmZlclB0ciBidWYsCisJCQkJCSBjb25zdCB4bWxDaGFyICpzdHIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQorCQl4bWxCdWZmZXJDQ2F0CQkoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIGNvbnN0IGNoYXIgKnN0cik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxCdWZmZXJTaHJpbmsJCSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgdW5zaWduZWQgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxCdWZmZXJHcm93CQkoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHVuc2lnbmVkIGludCBsZW4pOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEJ1ZmZlckVtcHR5CQkoeG1sQnVmZmVyUHRyIGJ1Zik7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciogWE1MQ0FMTAkKKwkJeG1sQnVmZmVyQ29udGVudAkoY29uc3QgeG1sQnVmZmVyUHRyIGJ1Zik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSBzY2hlbWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sQnVmZmVyTGVuZ3RoCQkoY29uc3QgeG1sQnVmZmVyUHRyIGJ1Zik7CisKKy8qCisgKiBDcmVhdGluZy9mcmVlaW5nIG5ldyBzdHJ1Y3R1cmVzLgorICovCitYTUxQVUJGVU4geG1sRHRkUHRyIFhNTENBTEwJCisJCXhtbENyZWF0ZUludFN1YnNldAkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELAorCQkJCQkgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpOworWE1MUFVCRlVOIHhtbER0ZFB0ciBYTUxDQUxMCQorCQl4bWxOZXdEdGQJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCk7CitYTUxQVUJGVU4geG1sRHRkUHRyIFhNTENBTEwJCisJCXhtbEdldEludFN1YnNldAkJKHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEZyZWVEdGQJCSh4bWxEdGRQdHIgY3VyKTsKKyNpZmRlZiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKK1hNTFBVQkZVTiB4bWxOc1B0ciBYTUxDQUxMCQorCQl4bWxOZXdHbG9iYWxOcwkJKHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxDaGFyICpocmVmLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqcHJlZml4KTsKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB4bWxOc1B0ciBYTUxDQUxMCQorCQl4bWxOZXdOcwkJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmhyZWYsCisJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEZyZWVOcwkJKHhtbE5zUHRyIGN1cik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sRnJlZU5zTGlzdAkJKHhtbE5zUHRyIGN1cik7CitYTUxQVUJGVU4geG1sRG9jUHRyIFhNTENBTEwgCQorCQl4bWxOZXdEb2MJCShjb25zdCB4bWxDaGFyICp2ZXJzaW9uKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxGcmVlRG9jCQkoeG1sRG9jUHRyIGN1cik7CitYTUxQVUJGVU4geG1sQXR0clB0ciBYTUxDQUxMCQorCQl4bWxOZXdEb2NQcm9wCQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSk7CisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IFwKKyAgICBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCitYTUxQVUJGVU4geG1sQXR0clB0ciBYTUxDQUxMCQorCQl4bWxOZXdQcm9wCQkoeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKKyNlbmRpZgorWE1MUFVCRlVOIHhtbEF0dHJQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3TnNQcm9wCQkoeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgeG1sTnNQdHIgbnMsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqdmFsdWUpOworWE1MUFVCRlVOIHhtbEF0dHJQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3TnNQcm9wRWF0TmFtZQkoeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgeG1sTnNQdHIgbnMsCisJCQkJCSB4bWxDaGFyICpuYW1lLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqdmFsdWUpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEZyZWVQcm9wTGlzdAkJKHhtbEF0dHJQdHIgY3VyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxGcmVlUHJvcAkJKHhtbEF0dHJQdHIgY3VyKTsKK1hNTFBVQkZVTiB4bWxBdHRyUHRyIFhNTENBTEwJCisJCXhtbENvcHlQcm9wCQkoeG1sTm9kZVB0ciB0YXJnZXQsCisJCQkJCSB4bWxBdHRyUHRyIGN1cik7CitYTUxQVUJGVU4geG1sQXR0clB0ciBYTUxDQUxMCQorCQl4bWxDb3B5UHJvcExpc3QJCSh4bWxOb2RlUHRyIHRhcmdldCwKKwkJCQkJIHhtbEF0dHJQdHIgY3VyKTsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitYTUxQVUJGVU4geG1sRHRkUHRyIFhNTENBTEwJCisJCXhtbENvcHlEdGQJCSh4bWxEdGRQdHIgZHRkKTsKKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCitYTUxQVUJGVU4geG1sRG9jUHRyIFhNTENBTEwJCisJCXhtbENvcHlEb2MJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgaW50IHJlY3Vyc2l2ZSk7CisjZW5kaWYgLyogZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpICovCisvKgorICogQ3JlYXRpbmcgbmV3IG5vZGVzLgorICovCitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdEb2NOb2RlCQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5zUHRyIG5zLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3RG9jTm9kZUVhdE5hbWUJKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOc1B0ciBucywKKwkJCQkJIHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjb250ZW50KTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbE5ld05vZGUJCSh4bWxOc1B0ciBucywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3Tm9kZUVhdE5hbWUJKHhtbE5zUHRyIG5zLAorCQkJCQkgeG1sQ2hhciAqbmFtZSk7CisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdDaGlsZAkJKHhtbE5vZGVQdHIgcGFyZW50LAorCQkJCQkgeG1sTnNQdHIgbnMsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqY29udGVudCk7CisjZW5kaWYKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbE5ld0RvY1RleHQJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqY29udGVudCk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdUZXh0CQkoY29uc3QgeG1sQ2hhciAqY29udGVudCk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdEb2NQSQkJKHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqY29udGVudCk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdQSQkJKGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjb250ZW50KTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbE5ld0RvY1RleHRMZW4JKHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjb250ZW50LAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdUZXh0TGVuCQkoY29uc3QgeG1sQ2hhciAqY29udGVudCwKKwkJCQkJIGludCBsZW4pOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3RG9jQ29tbWVudAkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3Q29tbWVudAkJKGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3Q0RhdGFCbG9jawkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQsCisJCQkJCSBpbnQgbGVuKTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbE5ld0NoYXJSZWYJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdSZWZlcmVuY2UJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxDb3B5Tm9kZQkJKGNvbnN0IHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGludCByZWN1cnNpdmUpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sRG9jQ29weU5vZGUJCShjb25zdCB4bWxOb2RlUHRyIG5vZGUsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgaW50IHJlY3Vyc2l2ZSk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxEb2NDb3B5Tm9kZUxpc3QJKHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxOb2RlUHRyIG5vZGUpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sQ29weU5vZGVMaXN0CQkoY29uc3QgeG1sTm9kZVB0ciBub2RlKTsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxOZXdUZXh0Q2hpbGQJCSh4bWxOb2RlUHRyIHBhcmVudCwKKwkJCQkJIHhtbE5zUHRyIG5zLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3RG9jUmF3Tm9kZQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5zUHRyIG5zLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sTmV3RG9jRnJhZ21lbnQJKHhtbERvY1B0ciBkb2MpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyoKKyAqIE5hdmlnYXRpbmcuCisgKi8KK1hNTFBVQkZVTiBsb25nIFhNTENBTEwJCQorCQl4bWxHZXRMaW5lTm8JCSh4bWxOb2RlUHRyIG5vZGUpOworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sR2V0Tm9kZVBhdGgJCSh4bWxOb2RlUHRyIG5vZGUpOworI2VuZGlmIC8qIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgKi8KK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbERvY0dldFJvb3RFbGVtZW50CSh4bWxEb2NQdHIgZG9jKTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbEdldExhc3RDaGlsZAkJKHhtbE5vZGVQdHIgcGFyZW50KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbE5vZGVJc1RleHQJCSh4bWxOb2RlUHRyIG5vZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sSXNCbGFua05vZGUJCSh4bWxOb2RlUHRyIG5vZGUpOworCisvKgorICogQ2hhbmdpbmcgdGhlIHN0cnVjdHVyZS4KKyAqLworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxEb2NTZXRSb290RWxlbWVudAkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgcm9vdCk7CisjZW5kaWYgLyogZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkgKi8KKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sTm9kZVNldE5hbWUJCSh4bWxOb2RlUHRyIGN1ciwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbEFkZENoaWxkCQkoeG1sTm9kZVB0ciBwYXJlbnQsCisJCQkJCSB4bWxOb2RlUHRyIGN1cik7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxBZGRDaGlsZExpc3QJCSh4bWxOb2RlUHRyIHBhcmVudCwKKwkJCQkJIHhtbE5vZGVQdHIgY3VyKTsKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sUmVwbGFjZU5vZGUJCSh4bWxOb2RlUHRyIG9sZCwKKwkJCQkJIHhtbE5vZGVQdHIgY3VyKTsKKyNlbmRpZiAvKiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKSAqLworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBcCisgICAgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sQWRkUHJldlNpYmxpbmcJKHhtbE5vZGVQdHIgY3VyLAorCQkJCQkgeG1sTm9kZVB0ciBlbGVtKTsKKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEIHx8IExJQlhNTF9IVE1MX0VOQUJMRUQgfHwgTElCWE1MX1NDSEVNQVNfRU5BQkxFRCAqLworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sQWRkU2libGluZwkJKHhtbE5vZGVQdHIgY3VyLAorCQkJCQkgeG1sTm9kZVB0ciBlbGVtKTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbEFkZE5leHRTaWJsaW5nCSh4bWxOb2RlUHRyIGN1ciwKKwkJCQkJIHhtbE5vZGVQdHIgZWxlbSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sVW5saW5rTm9kZQkJKHhtbE5vZGVQdHIgY3VyKTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCisJCXhtbFRleHRNZXJnZQkJKHhtbE5vZGVQdHIgZmlyc3QsCisJCQkJCSB4bWxOb2RlUHRyIHNlY29uZCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxUZXh0Q29uY2F0CQkoeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqY29udGVudCwKKwkJCQkJIGludCBsZW4pOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEZyZWVOb2RlTGlzdAkJKHhtbE5vZGVQdHIgY3VyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxGcmVlTm9kZQkJKHhtbE5vZGVQdHIgY3VyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTZXRUcmVlRG9jCQkoeG1sTm9kZVB0ciB0cmVlLAorCQkJCQkgeG1sRG9jUHRyIGRvYyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU2V0TGlzdERvYwkJKHhtbE5vZGVQdHIgbGlzdCwKKwkJCQkJIHhtbERvY1B0ciBkb2MpOworLyoKKyAqIE5hbWVzcGFjZXMuCisgKi8KK1hNTFBVQkZVTiB4bWxOc1B0ciBYTUxDQUxMCQorCQl4bWxTZWFyY2hOcwkJKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lU3BhY2UpOworWE1MUFVCRlVOIHhtbE5zUHRyIFhNTENBTEwJCisJCXhtbFNlYXJjaE5zQnlIcmVmCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqaHJlZik7CisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCitYTUxQVUJGVU4geG1sTnNQdHIgKiBYTUxDQUxMCQorCQl4bWxHZXROc0xpc3QJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBub2RlKTsKKyNlbmRpZiAvKiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICovCisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTZXROcwkJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIHhtbE5zUHRyIG5zKTsKK1hNTFBVQkZVTiB4bWxOc1B0ciBYTUxDQUxMCQorCQl4bWxDb3B5TmFtZXNwYWNlCSh4bWxOc1B0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5zUHRyIFhNTENBTEwJCisJCXhtbENvcHlOYW1lc3BhY2VMaXN0CSh4bWxOc1B0ciBjdXIpOworCisvKgorICogQ2hhbmdpbmcgdGhlIGNvbnRlbnQuCisgKi8KKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorWE1MUFVCRlVOIHhtbEF0dHJQdHIgWE1MQ0FMTAkKKwkJeG1sU2V0UHJvcAkJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSk7CitYTUxQVUJGVU4geG1sQXR0clB0ciBYTUxDQUxMCQorCQl4bWxTZXROc1Byb3AJCSh4bWxOb2RlUHRyIG5vZGUsCisJCQkJCSB4bWxOc1B0ciBucywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSk7CisjZW5kaWYgLyogZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgKi8KK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sR2V0Tm9Oc1Byb3AJCSh4bWxOb2RlUHRyIG5vZGUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sR2V0UHJvcAkJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIHhtbEF0dHJQdHIgWE1MQ0FMTAkKKwkJeG1sSGFzUHJvcAkJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIHhtbEF0dHJQdHIgWE1MQ0FMTAkKKwkJeG1sSGFzTnNQcm9wCQkoeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWVTcGFjZSk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbEdldE5zUHJvcAkJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lU3BhY2UpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAkKKwkJeG1sU3RyaW5nR2V0Tm9kZUxpc3QJKHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCQorCQl4bWxTdHJpbmdMZW5HZXROb2RlTGlzdAkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbE5vZGVMaXN0R2V0U3RyaW5nCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBsaXN0LAorCQkJCQkgaW50IGluTGluZSk7CisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCQorCQl4bWxOb2RlTGlzdEdldFJhd1N0cmluZwkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgbGlzdCwKKwkJCQkJIGludCBpbkxpbmUpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxOb2RlU2V0Q29udGVudAkoeG1sTm9kZVB0ciBjdXIsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjb250ZW50KTsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sTm9kZVNldENvbnRlbnRMZW4JKHhtbE5vZGVQdHIgY3VyLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqY29udGVudCwKKwkJCQkJIGludCBsZW4pOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxOb2RlQWRkQ29udGVudAkoeG1sTm9kZVB0ciBjdXIsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjb250ZW50KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxOb2RlQWRkQ29udGVudExlbgkoeG1sTm9kZVB0ciBjdXIsCisJCQkJCSBjb25zdCB4bWxDaGFyICpjb250ZW50LAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbE5vZGVHZXRDb250ZW50CSh4bWxOb2RlUHRyIGN1cik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sTm9kZUJ1ZkdldENvbnRlbnQJKHhtbEJ1ZmZlclB0ciBidWZmZXIsCisJCQkJCSB4bWxOb2RlUHRyIGN1cik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJCisJCXhtbE5vZGVHZXRMYW5nCQkoeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sTm9kZUdldFNwYWNlUHJlc2VydmUJKHhtbE5vZGVQdHIgY3VyKTsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sTm9kZVNldExhbmcJCSh4bWxOb2RlUHRyIGN1ciwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmxhbmcpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbE5vZGVTZXRTcGFjZVByZXNlcnZlICh4bWxOb2RlUHRyIGN1ciwKKwkJCQkJIGludCB2YWwpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sTm9kZUdldEJhc2UJCSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBjdXIpOworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxOb2RlU2V0QmFzZQkJKHhtbE5vZGVQdHIgY3VyLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqdXJpKTsKKyNlbmRpZgorCisvKgorICogUmVtb3ZpbmcgY29udGVudC4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sUmVtb3ZlUHJvcAkJKHhtbEF0dHJQdHIgY3VyKTsKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFVuc2V0TnNQcm9wCQkoeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgeG1sTnNQdHIgbnMsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFVuc2V0UHJvcAkJKHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworI2VuZGlmIC8qIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSAqLworCisvKgorICogSW50ZXJuYWwsIGRvbid0IHVzZS4KKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEJ1ZmZlcldyaXRlQ0hBUgkoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnN0cmluZyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sQnVmZmVyV3JpdGVDaGFyCSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgY29uc3QgY2hhciAqc3RyaW5nKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqc3RyaW5nKTsKKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgeG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxBdHRyUHRyIGF0dHIsCisJCQkJCSBjb25zdCB4bWxDaGFyICpzdHJpbmcpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoKKyAqIE5hbWVzcGFjZSBoYW5kbGluZy4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sUmVjb25jaWxpYXRlTnMJKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIHRyZWUpOworI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qCisgKiBTYXZpbmcuCisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxEb2NEdW1wRm9ybWF0TWVtb3J5CSh4bWxEb2NQdHIgY3VyLAorCQkJCQkgeG1sQ2hhciAqKm1lbSwKKwkJCQkJIGludCAqc2l6ZSwKKwkJCQkJIGludCBmb3JtYXQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbERvY0R1bXBNZW1vcnkJKHhtbERvY1B0ciBjdXIsCisJCQkJCSB4bWxDaGFyICoqbWVtLAorCQkJCQkgaW50ICpzaXplKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxEb2NEdW1wTWVtb3J5RW5jCSh4bWxEb2NQdHIgb3V0X2RvYywKKwkJCQkJIHhtbENoYXIgKipkb2NfdHh0X3B0ciwKKwkJCQkJIGludCAqIGRvY190eHRfbGVuLAorCQkJCQkgY29uc3QgY2hhciAqdHh0X2VuY29kaW5nKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jKHhtbERvY1B0ciBvdXRfZG9jLAorCQkJCQkgeG1sQ2hhciAqKmRvY190eHRfcHRyLAorCQkJCQkgaW50ICogZG9jX3R4dF9sZW4sCisJCQkJCSBjb25zdCBjaGFyICp0eHRfZW5jb2RpbmcsCisJCQkJCSBpbnQgZm9ybWF0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbERvY0Zvcm1hdER1bXAJKEZJTEUgKmYsCisJCQkJCSB4bWxEb2NQdHIgY3VyLAorCQkJCQkgaW50IGZvcm1hdCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJCXhtbERvY0R1bXAJCShGSUxFICpmLAorCQkJCQkgeG1sRG9jUHRyIGN1cik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sRWxlbUR1bXAJCShGSUxFICpmLAorCQkJCQkgeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgY3VyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFNhdmVGaWxlCQkoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCSB4bWxEb2NQdHIgY3VyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFNhdmVGb3JtYXRGaWxlCShjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkJIHhtbERvY1B0ciBjdXIsCisJCQkJCSBpbnQgZm9ybWF0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbE5vZGVEdW1wCQkoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIGN1ciwKKwkJCQkJIGludCBsZXZlbCwKKwkJCQkJIGludCBmb3JtYXQpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxTYXZlRmlsZVRvCQkoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHhtbERvY1B0ciBjdXIsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgICAgICAgICAgICAgCisJCXhtbFNhdmVGb3JtYXRGaWxlVG8gICAgICh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLAorCQkJCQkgeG1sRG9jUHRyIGN1ciwKKwkJCQkgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkgICAgICAgICBpbnQgZm9ybWF0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxOb2RlRHVtcE91dHB1dAkoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIGN1ciwKKwkJCQkJIGludCBsZXZlbCwKKwkJCQkJIGludCBmb3JtYXQsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZyk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFNhdmVGb3JtYXRGaWxlRW5jICAgIChjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkJIHhtbERvY1B0ciBjdXIsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBmb3JtYXQpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxTYXZlRmlsZUVuYwkJKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkgeG1sRG9jUHRyIGN1ciwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKKworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworLyoKKyAqIFhIVE1MCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbElzWEhUTUwJCShjb25zdCB4bWxDaGFyICpzeXN0ZW1JRCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lEKTsKKworLyoKKyAqIENvbXByZXNzaW9uLgorICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxHZXREb2NDb21wcmVzc01vZGUJKHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbFNldERvY0NvbXByZXNzTW9kZQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIGludCBtb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbEdldENvbXByZXNzTW9kZQkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU2V0Q29tcHJlc3NNb2RlCShpbnQgbW9kZSk7CisKKy8qCisqIERPTS13cmFwcGVyIGhlbHBlciBmdW5jdGlvbnMuCisqLworWE1MUFVCRlVOIHhtbERPTVdyYXBDdHh0UHRyIFhNTENBTEwKKwkJeG1sRE9NV3JhcE5ld0N0eHQJKHZvaWQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQl4bWxET01XcmFwRnJlZUN0eHQJKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJICAgIHhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxOb2RlUHRyIGVsZW0sCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkgICAgeG1sRE9NV3JhcEFkb3B0Tm9kZQkJKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgc291cmNlRG9jLAorCQkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgeG1sRG9jUHRyIGRlc3REb2MsCQkgICAgCisJCQkJCSB4bWxOb2RlUHRyIGRlc3RQYXJlbnQsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkgICAgeG1sRE9NV3JhcFJlbW92ZU5vZGUJKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJICAgIHhtbERPTVdyYXBDbG9uZU5vZGUJCSh4bWxET01XcmFwQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRG9jUHRyIHNvdXJjZURvYywKKwkJCQkJIHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJIHhtbE5vZGVQdHIgKmNsb25lZE5vZGUsCisJCQkJCSB4bWxEb2NQdHIgZGVzdERvYywKKwkJCQkJIHhtbE5vZGVQdHIgZGVzdFBhcmVudCwKKwkJCQkJIGludCBkZWVwLAorCQkJCQkgaW50IG9wdGlvbnMpOworCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoKKyAqIDUgaW50ZXJmYWNlcyBmcm9tIERPTSBFbGVtZW50VHJhdmVyc2FsLCBidXQgZGlmZmVyZW50IGluIGVudGl0aWVzCisgKiB0cmF2ZXJzYWwuCisgKi8KK1hNTFBVQkZVTiB1bnNpZ25lZCBsb25nIFhNTENBTEwKKyAgICAgICAgICAgIHhtbENoaWxkRWxlbWVudENvdW50ICAgICAgICAoeG1sTm9kZVB0ciBwYXJlbnQpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAorICAgICAgICAgICAgeG1sTmV4dEVsZW1lbnRTaWJsaW5nICAgICAgICh4bWxOb2RlUHRyIG5vZGUpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAorICAgICAgICAgICAgeG1sRmlyc3RFbGVtZW50Q2hpbGQgICAgICAgICh4bWxOb2RlUHRyIHBhcmVudCk7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCisgICAgICAgICAgICB4bWxMYXN0RWxlbWVudENoaWxkICAgICAgICAgKHhtbE5vZGVQdHIgcGFyZW50KTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwKKyAgICAgICAgICAgIHhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmcgICAoeG1sTm9kZVB0ciBub2RlKTsKKyNlbmRpZgorI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNpZm5kZWYgX19YTUxfUEFSU0VSX0hfXworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNlbmRpZgorCisjZW5kaWYgLyogX19YTUxfVFJFRV9IX18gKi8KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC91cmkuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvdXJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0ODI2MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvdXJpLmgKQEAgLTAsMCArMSw5NCBAQAorLyoqCisgKiBTdW1tYXJ5OiBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXMKKyAqIERlc2NyaXB0aW9uOiBsaWJyYXJ5IG9mIGdlbmVyaWMgVVJJIHJlbGF0ZWQgcm91dGluZXMKKyAqICAgICAgICAgICAgICBJbXBsZW1lbnRzIFJGQyAyMzk2CisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9VUklfSF9fCisjZGVmaW5lIF9fWE1MX1VSSV9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIHhtbFVSSToKKyAqCisgKiBBIHBhcnNlZCBVUkkgcmVmZXJlbmNlLiBUaGlzIGlzIGEgc3RydWN0IGNvbnRhaW5pbmcgdGhlIHZhcmlvdXMgZmllbGRzCisgKiBhcyBkZXNjcmliZWQgaW4gUkZDIDIzOTYgYnV0IHNlcGFyYXRlZCBmb3IgZnVydGhlciBwcm9jZXNzaW5nLgorICoKKyAqIE5vdGU6IHF1ZXJ5IGlzIGEgZGVwcmVjYXRlZCBmaWVsZCB3aGljaCBpcyBpbmNvcnJlY3RseSB1bmVzY2FwZWQuCisgKiBxdWVyeV9yYXcgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHF1ZXJ5IGlmIHRoZSBmb3JtZXIgaXMgc2V0LgorICogU2VlOiBodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveG1sLzIwMDctQXByaWwvdGhyZWFkLmh0bWwjMDAxMjcKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFVSSSB4bWxVUkk7Cit0eXBlZGVmIHhtbFVSSSAqeG1sVVJJUHRyOworc3RydWN0IF94bWxVUkkgeworICAgIGNoYXIgKnNjaGVtZTsJLyogdGhlIFVSSSBzY2hlbWUgKi8KKyAgICBjaGFyICpvcGFxdWU7CS8qIG9wYXF1ZSBwYXJ0ICovCisgICAgY2hhciAqYXV0aG9yaXR5OwkvKiB0aGUgYXV0aG9yaXR5IHBhcnQgKi8KKyAgICBjaGFyICpzZXJ2ZXI7CS8qIHRoZSBzZXJ2ZXIgcGFydCAqLworICAgIGNoYXIgKnVzZXI7CQkvKiB0aGUgdXNlciBwYXJ0ICovCisgICAgaW50IHBvcnQ7CQkvKiB0aGUgcG9ydCBudW1iZXIgKi8KKyAgICBjaGFyICpwYXRoOwkJLyogdGhlIHBhdGggc3RyaW5nICovCisgICAgY2hhciAqcXVlcnk7CS8qIHRoZSBxdWVyeSBzdHJpbmcgKGRlcHJlY2F0ZWQgLSB1c2Ugd2l0aCBjYXV0aW9uKSAqLworICAgIGNoYXIgKmZyYWdtZW50OwkvKiB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciAqLworICAgIGludCAgY2xlYW51cDsJLyogcGFyc2luZyBwb3RlbnRpYWxseSB1bmNsZWFuIFVSSSAqLworICAgIGNoYXIgKnF1ZXJ5X3JhdzsJLyogdGhlIHF1ZXJ5IHN0cmluZyAoYXMgaXQgYXBwZWFycyBpbiB0aGUgVVJJKSAqLworfTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgaW4gdHJlZS5oOgorICogeG1sQ2hhciAqCXhtbE5vZGVHZXRCYXNlCSh4bWxEb2NQdHIgZG9jLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBjdXIpOworICovCitYTUxQVUJGVU4geG1sVVJJUHRyIFhNTENBTEwKKwkJeG1sQ3JlYXRlVVJJCQkodm9pZCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sQnVpbGRVUkkJCShjb25zdCB4bWxDaGFyICpVUkksCisJCQkJCSBjb25zdCB4bWxDaGFyICpiYXNlKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQl4bWxCdWlsZFJlbGF0aXZlVVJJCShjb25zdCB4bWxDaGFyICpVUkksCisJCQkJCSBjb25zdCB4bWxDaGFyICpiYXNlKTsKK1hNTFBVQkZVTiB4bWxVUklQdHIgWE1MQ0FMTAorCQl4bWxQYXJzZVVSSQkJKGNvbnN0IGNoYXIgKnN0cik7CitYTUxQVUJGVU4geG1sVVJJUHRyIFhNTENBTEwKKwkJeG1sUGFyc2VVUklSYXcJCShjb25zdCBjaGFyICpzdHIsCisJCQkJCSBpbnQgcmF3KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxQYXJzZVVSSVJlZmVyZW5jZQkoeG1sVVJJUHRyIHVyaSwKKwkJCQkJIGNvbnN0IGNoYXIgKnN0cik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sU2F2ZVVyaQkJKHhtbFVSSVB0ciB1cmkpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQl4bWxQcmludFVSSQkJKEZJTEUgKnN0cmVhbSwKKwkJCQkJIHhtbFVSSVB0ciB1cmkpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCisJCXhtbFVSSUVzY2FwZVN0ciAgICAgICAgIChjb25zdCB4bWxDaGFyICpzdHIsCisJCQkJCSBjb25zdCB4bWxDaGFyICpsaXN0KTsKK1hNTFBVQkZVTiBjaGFyICogWE1MQ0FMTAorCQl4bWxVUklVbmVzY2FwZVN0cmluZwkoY29uc3QgY2hhciAqc3RyLAorCQkJCQkgaW50IGxlbiwKKwkJCQkJIGNoYXIgKnRhcmdldCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sTm9ybWFsaXplVVJJUGF0aAkoY2hhciAqcGF0aCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sVVJJRXNjYXBlCQkoY29uc3QgeG1sQ2hhciAqc3RyKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJeG1sRnJlZVVSSQkJKHhtbFVSSVB0ciB1cmkpOworWE1MUFVCRlVOIHhtbENoYXIqIFhNTENBTEwKKwkJeG1sQ2Fub25pY1BhdGgJCShjb25zdCB4bWxDaGFyICpwYXRoKTsKK1hNTFBVQkZVTiB4bWxDaGFyKiBYTUxDQUxMCisJCXhtbFBhdGhUb1VSSQkJKGNvbnN0IHhtbENoYXIgKnBhdGgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8qIF9fWE1MX1VSSV9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvdmFsaWQuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwvdmFsaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjMwN2YxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC92YWxpZC5oCkBAIC0wLDAgKzEsNDU4IEBACisvKgorICogU3VtbWFyeTogVGhlIERURCB2YWxpZGF0aW9uCisgKiBEZXNjcmlwdGlvbjogQVBJIGZvciB0aGUgRFREIGhhbmRsaW5nIGFuZCB0aGUgdmFsaWRpdHkgY2hlY2tpbmcKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisKKyNpZm5kZWYgX19YTUxfVkFMSURfSF9fCisjZGVmaW5lIF9fWE1MX1ZBTElEX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9saXN0Lmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGF1dG9tYXRhLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHJlZ2V4cC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBWYWxpZGF0aW9uIHN0YXRlIGFkZGVkIGZvciBub24tZGV0ZXJtaW5pc3QgY29udGVudCBtb2RlbC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFZhbGlkU3RhdGUgeG1sVmFsaWRTdGF0ZTsKK3R5cGVkZWYgeG1sVmFsaWRTdGF0ZSAqeG1sVmFsaWRTdGF0ZVB0cjsKKworLyoqCisgKiB4bWxWYWxpZGl0eUVycm9yRnVuYzoKKyAqIEBjdHg6ICB1c3VhbGx5IGFuIHhtbFZhbGlkQ3R4dFB0ciB0byBhIHZhbGlkaXR5IGVycm9yIGNvbnRleHQsCisgKiAgICAgICAgYnV0IGNvbWVzIGZyb20gY3R4dC0+dXNlckRhdGEgKHdoaWNoIG5vcm1hbGx5IGNvbnRhaW5zIHN1Y2gKKyAqICAgICAgICBhIHBvaW50ZXIpOyBjdHh0LT51c2VyRGF0YSBjYW4gYmUgY2hhbmdlZCBieSB0aGUgdXNlci4KKyAqIEBtc2c6ICB0aGUgc3RyaW5nIHRvIGZvcm1hdCAqcHJpbnRmIGxpa2UgdmFyYXJnCisgKiBALi4uOiAgcmVtYWluaW5nIGFyZ3VtZW50cyB0byB0aGUgZm9ybWF0CisgKgorICogQ2FsbGJhY2sgY2FsbGVkIHdoZW4gYSB2YWxpZGl0eSBlcnJvciBpcyBmb3VuZC4gVGhpcyBpcyBhIG1lc3NhZ2UKKyAqIG9yaWVudGVkIGZ1bmN0aW9uIHNpbWlsYXIgdG8gYW4gKnByaW50ZiBmdW5jdGlvbi4KKyAqLwordHlwZWRlZiB2b2lkIChYTUxDREVDTCAqeG1sVmFsaWRpdHlFcnJvckZ1bmMpICh2b2lkICpjdHgsCisJCQkgICAgIGNvbnN0IGNoYXIgKm1zZywKKwkJCSAgICAgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKKworLyoqCisgKiB4bWxWYWxpZGl0eVdhcm5pbmdGdW5jOgorICogQGN0eDogIHVzdWFsbHkgYW4geG1sVmFsaWRDdHh0UHRyIHRvIGEgdmFsaWRpdHkgZXJyb3IgY29udGV4dCwKKyAqICAgICAgICBidXQgY29tZXMgZnJvbSBjdHh0LT51c2VyRGF0YSAod2hpY2ggbm9ybWFsbHkgY29udGFpbnMgc3VjaAorICogICAgICAgIGEgcG9pbnRlcik7IGN0eHQtPnVzZXJEYXRhIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSB1c2VyLgorICogQG1zZzogIHRoZSBzdHJpbmcgdG8gZm9ybWF0ICpwcmludGYgbGlrZSB2YXJhcmcKKyAqIEAuLi46ICByZW1haW5pbmcgYXJndW1lbnRzIHRvIHRoZSBmb3JtYXQKKyAqCisgKiBDYWxsYmFjayBjYWxsZWQgd2hlbiBhIHZhbGlkaXR5IHdhcm5pbmcgaXMgZm91bmQuIFRoaXMgaXMgYSBtZXNzYWdlCisgKiBvcmllbnRlZCBmdW5jdGlvbiBzaW1pbGFyIHRvIGFuICpwcmludGYgZnVuY3Rpb24uCisgKi8KK3R5cGVkZWYgdm9pZCAoWE1MQ0RFQ0wgKnhtbFZhbGlkaXR5V2FybmluZ0Z1bmMpICh2b2lkICpjdHgsCisJCQkgICAgICAgY29uc3QgY2hhciAqbXNnLAorCQkJICAgICAgIC4uLikgTElCWE1MX0FUVFJfRk9STUFUKDIsMyk7CisKKyNpZmRlZiBJTl9MSUJYTUwKKy8qKgorICogWE1MX0NUWFRfRklOSVNIX0RURF8wOgorICoKKyAqIFNwZWNpYWwgdmFsdWUgZm9yIGZpbmlzaER0ZCBmaWVsZCB3aGVuIGVtYmVkZGVkIGluIGFuIHhtbFBhcnNlckN0eHQKKyAqLworI2RlZmluZSBYTUxfQ1RYVF9GSU5JU0hfRFREXzAgMHhhYmNkMTIzNAorLyoqCisgKiBYTUxfQ1RYVF9GSU5JU0hfRFREXzE6CisgKgorICogU3BlY2lhbCB2YWx1ZSBmb3IgZmluaXNoRHRkIGZpZWxkIHdoZW4gZW1iZWRkZWQgaW4gYW4geG1sUGFyc2VyQ3R4dAorICovCisjZGVmaW5lIFhNTF9DVFhUX0ZJTklTSF9EVERfMSAweGFiY2QxMjM1CisjZW5kaWYKKworLyoKKyAqIHhtbFZhbGlkQ3R4dDoKKyAqIEFuIHhtbFZhbGlkQ3R4dCBpcyB1c2VkIGZvciBlcnJvciByZXBvcnRpbmcgd2hlbiB2YWxpZGF0aW5nLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sVmFsaWRDdHh0IHhtbFZhbGlkQ3R4dDsKK3R5cGVkZWYgeG1sVmFsaWRDdHh0ICp4bWxWYWxpZEN0eHRQdHI7CitzdHJ1Y3QgX3htbFZhbGlkQ3R4dCB7CisgICAgdm9pZCAqdXNlckRhdGE7CQkJLyogdXNlciBzcGVjaWZpYyBkYXRhIGJsb2NrICovCisgICAgeG1sVmFsaWRpdHlFcnJvckZ1bmMgZXJyb3I7CQkvKiB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiBlcnJvcnMgKi8KKyAgICB4bWxWYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm5pbmc7CS8qIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIHdhcm5pbmcgKi8KKworICAgIC8qIE5vZGUgYW5hbHlzaXMgc3RhY2sgdXNlZCB3aGVuIHZhbGlkYXRpbmcgd2l0aGluIGVudGl0aWVzICovCisgICAgeG1sTm9kZVB0ciAgICAgICAgIG5vZGU7ICAgICAgICAgIC8qIEN1cnJlbnQgcGFyc2VkIE5vZGUgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgbm9kZU5yOyAgICAgICAgLyogRGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgbm9kZU1heDsgICAgICAgLyogTWF4IGRlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrICovCisgICAgeG1sTm9kZVB0ciAgICAgICAgKm5vZGVUYWI7ICAgICAgIC8qIGFycmF5IG9mIG5vZGVzICovCisKKyAgICB1bnNpZ25lZCBpbnQgICAgIGZpbmlzaER0ZDsgICAgICAgLyogZmluaXNoZWQgdmFsaWRhdGluZyB0aGUgRHRkID8gKi8KKyAgICB4bWxEb2NQdHIgICAgICAgICAgICAgIGRvYzsgICAgICAgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50ICAgICAgICAgICAgICAgICAgdmFsaWQ7ICAgICAgIC8qIHRlbXBvcmFyeSB2YWxpZGl0eSBjaGVjayByZXN1bHQgKi8KKworICAgIC8qIHN0YXRlIHN0YXRlIHVzZWQgZm9yIG5vbi1kZXRlcm1pbmlzdCBjb250ZW50IHZhbGlkYXRpb24gKi8KKyAgICB4bWxWYWxpZFN0YXRlICAgICAqdnN0YXRlOyAgICAgICAgLyogY3VycmVudCBzdGF0ZSAqLworICAgIGludCAgICAgICAgICAgICAgICB2c3RhdGVOcjsgICAgICAvKiBEZXB0aCBvZiB0aGUgdmFsaWRhdGlvbiBzdGFjayAqLworICAgIGludCAgICAgICAgICAgICAgICB2c3RhdGVNYXg7ICAgICAvKiBNYXggZGVwdGggb2YgdGhlIHZhbGlkYXRpb24gc3RhY2sgKi8KKyAgICB4bWxWYWxpZFN0YXRlICAgICAqdnN0YXRlVGFiOyAgICAgLyogYXJyYXkgb2YgdmFsaWRhdGlvbiBzdGF0ZXMgKi8KKworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorICAgIHhtbEF1dG9tYXRhUHRyICAgICAgICAgICAgYW07ICAgICAvKiB0aGUgYXV0b21hdGEgKi8KKyAgICB4bWxBdXRvbWF0YVN0YXRlUHRyICAgIHN0YXRlOyAgICAgLyogdXNlZCB0byBidWlsZCB0aGUgYXV0b21hdGEgKi8KKyNlbHNlCisgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICphbTsKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgKnN0YXRlOworI2VuZGlmCit9OworCisvKgorICogQUxMIG5vdGF0aW9uIGRlY2xhcmF0aW9ucyBhcmUgc3RvcmVkIGluIGEgdGFibGUuCisgKiBUaGVyZSBpcyBvbmUgdGFibGUgcGVyIERURC4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sSGFzaFRhYmxlIHhtbE5vdGF0aW9uVGFibGU7Cit0eXBlZGVmIHhtbE5vdGF0aW9uVGFibGUgKnhtbE5vdGF0aW9uVGFibGVQdHI7CisKKy8qCisgKiBBTEwgZWxlbWVudCBkZWNsYXJhdGlvbnMgYXJlIHN0b3JlZCBpbiBhIHRhYmxlLgorICogVGhlcmUgaXMgb25lIHRhYmxlIHBlciBEVEQuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbEhhc2hUYWJsZSB4bWxFbGVtZW50VGFibGU7Cit0eXBlZGVmIHhtbEVsZW1lbnRUYWJsZSAqeG1sRWxlbWVudFRhYmxlUHRyOworCisvKgorICogQUxMIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbnMgYXJlIHN0b3JlZCBpbiBhIHRhYmxlLgorICogVGhlcmUgaXMgb25lIHRhYmxlIHBlciBEVEQuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbEhhc2hUYWJsZSB4bWxBdHRyaWJ1dGVUYWJsZTsKK3R5cGVkZWYgeG1sQXR0cmlidXRlVGFibGUgKnhtbEF0dHJpYnV0ZVRhYmxlUHRyOworCisvKgorICogQUxMIElEcyBhdHRyaWJ1dGVzIGFyZSBzdG9yZWQgaW4gYSB0YWJsZS4KKyAqIFRoZXJlIGlzIG9uZSB0YWJsZSBwZXIgZG9jdW1lbnQuCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX3htbEhhc2hUYWJsZSB4bWxJRFRhYmxlOwordHlwZWRlZiB4bWxJRFRhYmxlICp4bWxJRFRhYmxlUHRyOworCisvKgorICogQUxMIFJlZnMgYXR0cmlidXRlcyBhcmUgc3RvcmVkIGluIGEgdGFibGUuCisgKiBUaGVyZSBpcyBvbmUgdGFibGUgcGVyIGRvY3VtZW50LgorICovCisKK3R5cGVkZWYgc3RydWN0IF94bWxIYXNoVGFibGUgeG1sUmVmVGFibGU7Cit0eXBlZGVmIHhtbFJlZlRhYmxlICp4bWxSZWZUYWJsZVB0cjsKKworLyogTm90YXRpb24gKi8KK1hNTFBVQkZVTiB4bWxOb3RhdGlvblB0ciBYTUxDQUxMCSAgICAKKwkJeG1sQWRkTm90YXRpb25EZWNsCSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbER0ZFB0ciBkdGQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqUHVibGljSUQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCk7CisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorWE1MUFVCRlVOIHhtbE5vdGF0aW9uVGFibGVQdHIgWE1MQ0FMTCAKKwkJeG1sQ29weU5vdGF0aW9uVGFibGUJKHhtbE5vdGF0aW9uVGFibGVQdHIgdGFibGUpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgICAKKwkJeG1sRnJlZU5vdGF0aW9uVGFibGUJKHhtbE5vdGF0aW9uVGFibGVQdHIgdGFibGUpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJICAgIAorCQl4bWxEdW1wTm90YXRpb25EZWNsCSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgeG1sTm90YXRpb25QdHIgbm90YSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAgCisJCXhtbER1bXBOb3RhdGlvblRhYmxlCSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgeG1sTm90YXRpb25UYWJsZVB0ciB0YWJsZSk7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qIEVsZW1lbnQgQ29udGVudCAqLworLyogdGhlIG5vbiBEb2MgdmVyc2lvbiBhcmUgYmVpbmcgZGVwcmVjYXRlZCAqLworWE1MUFVCRlVOIHhtbEVsZW1lbnRDb250ZW50UHRyIFhNTENBTEwgCisJCXhtbE5ld0VsZW1lbnRDb250ZW50CShjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgeG1sRWxlbWVudENvbnRlbnRUeXBlIHR5cGUpOworWE1MUFVCRlVOIHhtbEVsZW1lbnRDb250ZW50UHRyIFhNTENBTEwgCisJCXhtbENvcHlFbGVtZW50Q29udGVudAkoeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAgIAorCQl4bWxGcmVlRWxlbWVudENvbnRlbnQJKHhtbEVsZW1lbnRDb250ZW50UHRyIGN1cik7CisvKiB0aGUgbmV3IHZlcnNpb25zIHdpdGggZG9jIGFyZ3VtZW50ICovCitYTUxQVUJGVU4geG1sRWxlbWVudENvbnRlbnRQdHIgWE1MQ0FMTCAKKwkJeG1sTmV3RG9jRWxlbWVudENvbnRlbnQJKHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgeG1sRWxlbWVudENvbnRlbnRUeXBlIHR5cGUpOworWE1MUFVCRlVOIHhtbEVsZW1lbnRDb250ZW50UHRyIFhNTENBTEwgCisJCXhtbENvcHlEb2NFbGVtZW50Q29udGVudCh4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAgIAorCQl4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbEVsZW1lbnRDb250ZW50UHRyIGN1cik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAgIAorCQl4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KGNoYXIgKmJ1ZiwKKwkJCQkJIGludCBzaXplLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEVsZW1lbnRDb250ZW50UHRyIGNvbnRlbnQsCisJCQkJCSBpbnQgZW5nbG9iKTsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qIERFUFJFQ0FURUQgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgICAgCisJCXhtbFNwcmludGZFbGVtZW50Q29udGVudChjaGFyICpidWYsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCwKKwkJCQkJIGludCBlbmdsb2IpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworLyogREVQUkVDQVRFRCAqLworCisvKiBFbGVtZW50ICovCitYTUxQVUJGVU4geG1sRWxlbWVudFB0ciBYTUxDQUxMCSAgIAorCQl4bWxBZGRFbGVtZW50RGVjbAkoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEdGRQdHIgZHRkLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIHhtbEVsZW1lbnRUeXBlVmFsIHR5cGUsCisJCQkJCSB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50KTsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitYTUxQVUJGVU4geG1sRWxlbWVudFRhYmxlUHRyIFhNTENBTEwgCisJCXhtbENvcHlFbGVtZW50VGFibGUJKHhtbEVsZW1lbnRUYWJsZVB0ciB0YWJsZSk7CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJICAgCisJCXhtbEZyZWVFbGVtZW50VGFibGUJKHhtbEVsZW1lbnRUYWJsZVB0ciB0YWJsZSk7CisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAKKwkJeG1sRHVtcEVsZW1lbnRUYWJsZQkoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHhtbEVsZW1lbnRUYWJsZVB0ciB0YWJsZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAKKwkJeG1sRHVtcEVsZW1lbnREZWNsCSh4bWxCdWZmZXJQdHIgYnVmLAorCQkJCQkgeG1sRWxlbWVudFB0ciBlbGVtKTsKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyogRW51bWVyYXRpb24gKi8KK1hNTFBVQkZVTiB4bWxFbnVtZXJhdGlvblB0ciBYTUxDQUxMIAorCQl4bWxDcmVhdGVFbnVtZXJhdGlvbgkoY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAKKwkJeG1sRnJlZUVudW1lcmF0aW9uCSh4bWxFbnVtZXJhdGlvblB0ciBjdXIpOworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKK1hNTFBVQkZVTiB4bWxFbnVtZXJhdGlvblB0ciBYTUxDQUxMICAKKwkJeG1sQ29weUVudW1lcmF0aW9uCSh4bWxFbnVtZXJhdGlvblB0ciBjdXIpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyogQXR0cmlidXRlICovCitYTUxQVUJGVU4geG1sQXR0cmlidXRlUHRyIFhNTENBTEwJICAgIAorCQl4bWxBZGRBdHRyaWJ1dGVEZWNsCSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbER0ZFB0ciBkdGQsCisJCQkJCSBjb25zdCB4bWxDaGFyICplbGVtLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5zLAorCQkJCQkgeG1sQXR0cmlidXRlVHlwZSB0eXBlLAorCQkJCQkgeG1sQXR0cmlidXRlRGVmYXVsdCBkZWYsCisJCQkJCSBjb25zdCB4bWxDaGFyICpkZWZhdWx0VmFsdWUsCisJCQkJCSB4bWxFbnVtZXJhdGlvblB0ciB0cmVlKTsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitYTUxQVUJGVU4geG1sQXR0cmlidXRlVGFibGVQdHIgWE1MQ0FMTCAKKwkJeG1sQ29weUF0dHJpYnV0ZVRhYmxlICAoeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGUpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgICAgCisJCXhtbEZyZWVBdHRyaWJ1dGVUYWJsZSAgKHhtbEF0dHJpYnV0ZVRhYmxlUHRyIHRhYmxlKTsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgICAgCisJCXhtbER1bXBBdHRyaWJ1dGVUYWJsZSAgKHhtbEJ1ZmZlclB0ciBidWYsCisJCQkJCXhtbEF0dHJpYnV0ZVRhYmxlUHRyIHRhYmxlKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgICAgCisJCXhtbER1bXBBdHRyaWJ1dGVEZWNsICAgKHhtbEJ1ZmZlclB0ciBidWYsCisJCQkJCXhtbEF0dHJpYnV0ZVB0ciBhdHRyKTsKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyogSURzICovCitYTUxQVUJGVU4geG1sSURQdHIgWE1MQ0FMTAkKKwkJeG1sQWRkSUQJICAgICAgICh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJeG1sRG9jUHRyIGRvYywKKwkJCQkJY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCQkJCXhtbEF0dHJQdHIgYXR0cik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sRnJlZUlEVGFibGUJICAgICAgICh4bWxJRFRhYmxlUHRyIHRhYmxlKTsKK1hNTFBVQkZVTiB4bWxBdHRyUHRyIFhNTENBTEwJCisJCXhtbEdldElECSAgICAgICAoeG1sRG9jUHRyIGRvYywKKwkJCQkJY29uc3QgeG1sQ2hhciAqSUQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sSXNJRAkJICAgICAgICh4bWxEb2NQdHIgZG9jLAorCQkJCQl4bWxOb2RlUHRyIGVsZW0sCisJCQkJCXhtbEF0dHJQdHIgYXR0cik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxSZW1vdmVJRAkgICAgICAgKHhtbERvY1B0ciBkb2MsIAorCQkJCQl4bWxBdHRyUHRyIGF0dHIpOworCisvKiBJRFJFRnMgKi8KK1hNTFBVQkZVTiB4bWxSZWZQdHIgWE1MQ0FMTAkKKwkJeG1sQWRkUmVmCSAgICAgICAoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCXhtbERvY1B0ciBkb2MsCisJCQkJCWNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQl4bWxBdHRyUHRyIGF0dHIpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbEZyZWVSZWZUYWJsZQkgICAgICAgKHhtbFJlZlRhYmxlUHRyIHRhYmxlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbElzUmVmCSAgICAgICAoeG1sRG9jUHRyIGRvYywKKwkJCQkJeG1sTm9kZVB0ciBlbGVtLAorCQkJCQl4bWxBdHRyUHRyIGF0dHIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sUmVtb3ZlUmVmCSAgICAgICAoeG1sRG9jUHRyIGRvYywgCisJCQkJCXhtbEF0dHJQdHIgYXR0cik7CitYTUxQVUJGVU4geG1sTGlzdFB0ciBYTUxDQUxMCQorCQl4bWxHZXRSZWZzCSAgICAgICAoeG1sRG9jUHRyIGRvYywKKwkJCQkJY29uc3QgeG1sQ2hhciAqSUQpOworCisvKioKKyAqIFRoZSBwdWJsaWMgZnVuY3Rpb24gY2FsbHMgcmVsYXRlZCB0byB2YWxpZGl0eSBjaGVja2luZy4KKyAqLworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisvKiBBbGxvY2F0ZS9SZWxlYXNlIFZhbGlkYXRpb24gQ29udGV4dHMgKi8KK1hNTFBVQkZVTiB4bWxWYWxpZEN0eHRQdHIgWE1MQ0FMTAkgICAgCisJCXhtbE5ld1ZhbGlkQ3R4dCh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgICAKKwkJeG1sRnJlZVZhbGlkQ3R4dCh4bWxWYWxpZEN0eHRQdHIpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZVJvb3QJCSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sVmFsaWRhdGVFbGVtZW50RGVjbAkoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRWxlbWVudFB0ciBlbGVtKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSh4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBlbGVtLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKwkJeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBlbGVtLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdHRyaWJ1dGVQdHIgYXR0cik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlKHhtbEF0dHJpYnV0ZVR5cGUgdHlwZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlTm90YXRpb25EZWNsCSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb3RhdGlvblB0ciBub3RhKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlRHRkCQkoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sRHRkUHRyIGR0ZCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZUR0ZEZpbmFsCSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sVmFsaWRhdGVEb2N1bWVudAkoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlRWxlbWVudAkoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkJCQkgeG1sTm9kZVB0ciBlbGVtKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlT25lRWxlbWVudAkoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBlbGVtKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwkJeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUJKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIJZWxlbSwKKwkJCQkJIHhtbEF0dHJQdHIgYXR0ciwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlT25lTmFtZXNwYWNlCSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIGVsZW0sCisJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCQkJCSB4bWxOc1B0ciBucywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlCSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxDaGFyICpub3RhdGlvbk5hbWUpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEIG9yIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQgKi8KKworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sSXNNaXhlZEVsZW1lbnQJKHhtbERvY1B0ciBkb2MsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB4bWxBdHRyaWJ1dGVQdHIgWE1MQ0FMTAkKKwkJeG1sR2V0RHRkQXR0ckRlc2MJKHhtbER0ZFB0ciBkdGQsCisJCQkJCSBjb25zdCB4bWxDaGFyICplbGVtLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4geG1sQXR0cmlidXRlUHRyIFhNTENBTEwJCisJCXhtbEdldER0ZFFBdHRyRGVzYwkoeG1sRHRkUHRyIGR0ZCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKmVsZW0sCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqcHJlZml4KTsKK1hNTFBVQkZVTiB4bWxOb3RhdGlvblB0ciBYTUxDQUxMCQorCQl4bWxHZXREdGROb3RhdGlvbkRlc2MJKHhtbER0ZFB0ciBkdGQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiB4bWxFbGVtZW50UHRyIFhNTENBTEwJCisJCXhtbEdldER0ZFFFbGVtZW50RGVzYwkoeG1sRHRkUHRyIGR0ZCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgpOworWE1MUFVCRlVOIHhtbEVsZW1lbnRQdHIgWE1MQ0FMTAkKKwkJeG1sR2V0RHRkRWxlbWVudERlc2MJKHhtbER0ZFB0ciBkdGQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4oeG1sRWxlbWVudENvbnRlbnQgKmN0cmVlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqKm5hbWVzLAorCQkJCQkgaW50ICpsZW4sCisJCQkJCSBpbnQgbWF4KTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKHhtbE5vZGUgKnByZXYsCisJCQkJCSB4bWxOb2RlICpuZXh0LAorCQkJCQkgY29uc3QgeG1sQ2hhciAqKm5hbWVzLAorCQkJCQkgaW50IG1heCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZU5hbWVWYWx1ZQkoY29uc3QgeG1sQ2hhciAqdmFsdWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sVmFsaWRhdGVOYW1lc1ZhbHVlCShjb25zdCB4bWxDaGFyICp2YWx1ZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZQkoY29uc3QgeG1sQ2hhciAqdmFsdWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlKGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKKworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorLyoKKyAqIFZhbGlkYXRpb24gYmFzZWQgb24gdGhlIHJlZ2V4cCBzdXBwb3J0CisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxFbGVtZW50UHRyIGVsZW0pOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZVB1c2hFbGVtZW50CSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIGVsZW0sCisJCQkJCSBjb25zdCB4bWxDaGFyICpxbmFtZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZVB1c2hDRGF0YQkoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpkYXRhLAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxWYWxpZGF0ZVBvcEVsZW1lbnQJKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRG9jUHRyIGRvYywKKwkJCQkJIHhtbE5vZGVQdHIgZWxlbSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnFuYW1lKTsKKyNlbmRpZiAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvKiBfX1hNTF9WQUxJRF9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveGluY2x1ZGUuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveGluY2x1ZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjNhYjI1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94aW5jbHVkZS5oCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogU3VtbWFyeTogaW1wbGVtZW50YXRpb24gb2YgWEluY2x1ZGUKKyAqIERlc2NyaXB0aW9uOiBBUEkgdG8gaGFuZGxlIFhJbmNsdWRlIHByb2Nlc3NpbmcsCisgKiBpbXBsZW1lbnRzIHRoZQorICogV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSBMYXN0IENhbGwgV29ya2luZyBEcmFmdCAxMCBOb3ZlbWJlciAyMDAzCisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAzL1dELXhpbmNsdWRlLTIwMDMxMTEwCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9YSU5DTFVERV9IX18KKyNkZWZpbmUgX19YTUxfWElOQ0xVREVfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogWElOQ0xVREVfTlM6CisgKgorICogTWFjcm8gZGVmaW5pbmcgdGhlIFhpbmNsdWRlIG5hbWVzcGFjZTogaHR0cDovL3d3dy53My5vcmcvMjAwMy9YSW5jbHVkZQorICovCisjZGVmaW5lIFhJTkNMVURFX05TIChjb25zdCB4bWxDaGFyICopICJodHRwOi8vd3d3LnczLm9yZy8yMDAzL1hJbmNsdWRlIgorLyoqCisgKiBYSU5DTFVERV9PTERfTlM6CisgKgorICogTWFjcm8gZGVmaW5pbmcgdGhlIGRyYWZ0IFhpbmNsdWRlIG5hbWVzcGFjZTogaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZQorICovCisjZGVmaW5lIFhJTkNMVURFX09MRF9OUyAoY29uc3QgeG1sQ2hhciAqKSAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSIKKy8qKgorICogWElOQ0xVREVfTk9ERToKKyAqCisgKiBNYWNybyBkZWZpbmluZyAiaW5jbHVkZSIKKyAqLworI2RlZmluZSBYSU5DTFVERV9OT0RFIChjb25zdCB4bWxDaGFyICopICJpbmNsdWRlIgorLyoqCisgKiBYSU5DTFVERV9GQUxMQkFDSzoKKyAqCisgKiBNYWNybyBkZWZpbmluZyAiZmFsbGJhY2siCisgKi8KKyNkZWZpbmUgWElOQ0xVREVfRkFMTEJBQ0sgKGNvbnN0IHhtbENoYXIgKikgImZhbGxiYWNrIgorLyoqCisgKiBYSU5DTFVERV9IUkVGOgorICoKKyAqIE1hY3JvIGRlZmluaW5nICJocmVmIgorICovCisjZGVmaW5lIFhJTkNMVURFX0hSRUYgKGNvbnN0IHhtbENoYXIgKikgImhyZWYiCisvKioKKyAqIFhJTkNMVURFX1BBUlNFOgorICoKKyAqIE1hY3JvIGRlZmluaW5nICJwYXJzZSIKKyAqLworI2RlZmluZSBYSU5DTFVERV9QQVJTRSAoY29uc3QgeG1sQ2hhciAqKSAicGFyc2UiCisvKioKKyAqIFhJTkNMVURFX1BBUlNFX1hNTDoKKyAqCisgKiBNYWNybyBkZWZpbmluZyAieG1sIgorICovCisjZGVmaW5lIFhJTkNMVURFX1BBUlNFX1hNTCAoY29uc3QgeG1sQ2hhciAqKSAieG1sIgorLyoqCisgKiBYSU5DTFVERV9QQVJTRV9URVhUOgorICoKKyAqIE1hY3JvIGRlZmluaW5nICJ0ZXh0IgorICovCisjZGVmaW5lIFhJTkNMVURFX1BBUlNFX1RFWFQgKGNvbnN0IHhtbENoYXIgKikgInRleHQiCisvKioKKyAqIFhJTkNMVURFX1BBUlNFX0VOQ09ESU5HOgorICoKKyAqIE1hY3JvIGRlZmluaW5nICJlbmNvZGluZyIKKyAqLworI2RlZmluZSBYSU5DTFVERV9QQVJTRV9FTkNPRElORyAoY29uc3QgeG1sQ2hhciAqKSAiZW5jb2RpbmciCisvKioKKyAqIFhJTkNMVURFX1BBUlNFX1hQT0lOVEVSOgorICoKKyAqIE1hY3JvIGRlZmluaW5nICJ4cG9pbnRlciIKKyAqLworI2RlZmluZSBYSU5DTFVERV9QQVJTRV9YUE9JTlRFUiAoY29uc3QgeG1sQ2hhciAqKSAieHBvaW50ZXIiCisKK3R5cGVkZWYgc3RydWN0IF94bWxYSW5jbHVkZUN0eHQgeG1sWEluY2x1ZGVDdHh0OwordHlwZWRlZiB4bWxYSW5jbHVkZUN0eHQgKnhtbFhJbmNsdWRlQ3R4dFB0cjsKKworLyoKKyAqIHN0YW5kYWxvbmUgcHJvY2Vzc2luZworICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sWEluY2x1ZGVQcm9jZXNzCSh4bWxEb2NQdHIgZG9jKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxYSW5jbHVkZVByb2Nlc3NGbGFncwkoeG1sRG9jUHRyIGRvYywKKwkJCQkJIGludCBmbGFncyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhKHhtbERvY1B0ciBkb2MsCisJCQkJCSBpbnQgZmxhZ3MsCisJCQkJCSB2b2lkICpkYXRhKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICAgICAgICAgIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEoeG1sTm9kZVB0ciB0cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFhJbmNsdWRlUHJvY2Vzc1RyZWUJKHhtbE5vZGVQdHIgdHJlZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzKHhtbE5vZGVQdHIgdHJlZSwKKwkJCQkJIGludCBmbGFncyk7CisvKgorICogY29udGV4dHVhbCBwcm9jZXNzaW5nCisgKi8KK1hNTFBVQkZVTiB4bWxYSW5jbHVkZUN0eHRQdHIgWE1MQ0FMTAorCQl4bWxYSW5jbHVkZU5ld0NvbnRleHQJKHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFhJbmNsdWRlU2V0RmxhZ3MJKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LAorCQkJCQkgaW50IGZsYWdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJeG1sWEluY2x1ZGVGcmVlQ29udGV4dAkoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFhJbmNsdWRlUHJvY2Vzc05vZGUJKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sTm9kZVB0ciB0cmVlKTsKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCAqLworCisjZW5kaWYgLyogX19YTUxfWElOQ0xVREVfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3hsaW5rLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3hsaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDgzYzdlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveGxpbmsuaApAQCAtMCwwICsxLDE4OSBAQAorLyoKKyAqIFN1bW1hcnk6IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZQorICogRGVzY3JpcHRpb246IHVuZmluaXNoZWQgWExpbmsgZGV0ZWN0aW9uIG1vZHVsZQorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfWExJTktfSF9fCisjZGVmaW5lIF9fWE1MX1hMSU5LX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogVmFyaW91cyBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyBMaW5rIHByb3BlcnRpZXMuCisgKgorICogTk9URTogdGhlIGxpbmsgZGV0ZWN0aW9uIGxheWVyIHdpbGwgdHJ5IHRvIHJlc29sdmUgUU5hbWUgZXhwYW5zaW9uCisgKiAgICAgICBvZiBuYW1lc3BhY2VzLiBJZiAiZm9vIiBpcyB0aGUgcHJlZml4IGZvciAiaHR0cDovL2Zvby5jb20vIgorICogICAgICAgdGhlbiB0aGUgbGluayBkZXRlY3Rpb24gbGF5ZXIgd2lsbCBleHBhbmQgcm9sZT0iZm9vOm15cm9sZSIKKyAqICAgICAgIHRvICJodHRwOi8vZm9vLmNvbS86bXlyb2xlIi4KKyAqIE5PVEU6IHRoZSBsaW5rIGRldGVjdGlvbiBsYXllciB3aWxsIGV4cGFuZCBVUkktUmVmZW5jZXMgZm91bmQgb24KKyAqICAgICAgIGhyZWYgYXR0cmlidXRlcyBieSB1c2luZyB0aGUgYmFzZSBtZWNoYW5pc20gaWYgZm91bmQuCisgKi8KK3R5cGVkZWYgeG1sQ2hhciAqeGxpbmtIUmVmOwordHlwZWRlZiB4bWxDaGFyICp4bGlua1JvbGU7Cit0eXBlZGVmIHhtbENoYXIgKnhsaW5rVGl0bGU7CisKK3R5cGVkZWYgZW51bSB7CisgICAgWExJTktfVFlQRV9OT05FID0gMCwKKyAgICBYTElOS19UWVBFX1NJTVBMRSwKKyAgICBYTElOS19UWVBFX0VYVEVOREVELAorICAgIFhMSU5LX1RZUEVfRVhURU5ERURfU0VUCit9IHhsaW5rVHlwZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTElOS19TSE9XX05PTkUgPSAwLAorICAgIFhMSU5LX1NIT1dfTkVXLAorICAgIFhMSU5LX1NIT1dfRU1CRUQsCisgICAgWExJTktfU0hPV19SRVBMQUNFCit9IHhsaW5rU2hvdzsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTElOS19BQ1RVQVRFX05PTkUgPSAwLAorICAgIFhMSU5LX0FDVFVBVEVfQVVUTywKKyAgICBYTElOS19BQ1RVQVRFX09OUkVRVUVTVAorfSB4bGlua0FjdHVhdGU7CisKKy8qKgorICogeGxpbmtOb2RlRGV0ZWN0RnVuYzoKKyAqIEBjdHg6ICB1c2VyIGRhdGEgcG9pbnRlcgorICogQG5vZGU6ICB0aGUgbm9kZSB0byBjaGVjaworICogCisgKiBUaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIHRoZSBsaW5rIGRldGVjdGlvbiByb3V0aW5lLgorICogSXQgY2FsbHMgdGhlIGRlZmF1bHQgbGluayBkZXRlY3Rpb24gY2FsbGJhY2tzIHVwb24gbGluayBkZXRlY3Rpb24uCisgKi8KK3R5cGVkZWYgdm9pZCAoKnhsaW5rTm9kZURldGVjdEZ1bmMpICh2b2lkICpjdHgsIHhtbE5vZGVQdHIgbm9kZSk7CisKKy8qCisgKiBUaGUgbGluayBkZXRlY3Rpb24gbW9kdWxlIGludGVyYWN0IHdpdGggdGhlIHVwcGVyIGxheWVycyB1c2luZworICogYSBzZXQgb2YgY2FsbGJhY2sgcmVnaXN0ZXJlZCBhdCBwYXJzaW5nIHRpbWUuCisgKi8KKworLyoqCisgKiB4bGlua1NpbXBsZUxpbmtGdW5rOgorICogQGN0eDogIHVzZXIgZGF0YSBwb2ludGVyCisgKiBAbm9kZTogIHRoZSBub2RlIGNhcnJ5aW5nIHRoZSBsaW5rCisgKiBAaHJlZjogIHRoZSB0YXJnZXQgb2YgdGhlIGxpbmsKKyAqIEByb2xlOiAgdGhlIHJvbGUgc3RyaW5nCisgKiBAdGl0bGU6ICB0aGUgbGluayB0aXRsZQorICoKKyAqIFRoaXMgaXMgdGhlIHByb3RvdHlwZSBmb3IgYSBzaW1wbGUgbGluayBkZXRlY3Rpb24gY2FsbGJhY2suCisgKi8KK3R5cGVkZWYgdm9pZAorKCp4bGlua1NpbXBsZUxpbmtGdW5rKQkodm9pZCAqY3R4LAorCQkJIHhtbE5vZGVQdHIgbm9kZSwKKwkJCSBjb25zdCB4bGlua0hSZWYgaHJlZiwKKwkJCSBjb25zdCB4bGlua1JvbGUgcm9sZSwKKwkJCSBjb25zdCB4bGlua1RpdGxlIHRpdGxlKTsKKworLyoqCisgKiB4bGlua0V4dGVuZGVkTGlua0Z1bms6CisgKiBAY3R4OiAgdXNlciBkYXRhIHBvaW50ZXIKKyAqIEBub2RlOiAgdGhlIG5vZGUgY2FycnlpbmcgdGhlIGxpbmsKKyAqIEBuYkxvY2F0b3JzOiB0aGUgbnVtYmVyIG9mIGxvY2F0b3JzIGRldGVjdGVkIG9uIHRoZSBsaW5rCisgKiBAaHJlZnM6ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBsb2NhdG9yIGhyZWZzCisgKiBAcm9sZXM6ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBsb2NhdG9yIHJvbGVzCisgKiBAbmJBcmNzOiB0aGUgbnVtYmVyIG9mIGFyY3MgZGV0ZWN0ZWQgb24gdGhlIGxpbmsKKyAqIEBmcm9tOiAgcG9pbnRlciB0byB0aGUgYXJyYXkgb2Ygc291cmNlIHJvbGVzIGZvdW5kIG9uIHRoZSBhcmNzCisgKiBAdG86ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiB0YXJnZXQgcm9sZXMgZm91bmQgb24gdGhlIGFyY3MKKyAqIEBzaG93OiAgYXJyYXkgb2YgdmFsdWVzIGZvciB0aGUgc2hvdyBhdHRyaWJ1dGVzIGZvdW5kIG9uIHRoZSBhcmNzCisgKiBAYWN0dWF0ZTogIGFycmF5IG9mIHZhbHVlcyBmb3IgdGhlIGFjdHVhdGUgYXR0cmlidXRlcyBmb3VuZCBvbiB0aGUgYXJjcworICogQG5iVGl0bGVzOiB0aGUgbnVtYmVyIG9mIHRpdGxlcyBkZXRlY3RlZCBvbiB0aGUgbGluaworICogQHRpdGxlOiAgYXJyYXkgb2YgdGl0bGVzIGRldGVjdGVkIG9uIHRoZSBsaW5rCisgKiBAbGFuZ3M6ICBhcnJheSBvZiB4bWw6bGFuZyB2YWx1ZXMgZm9yIHRoZSB0aXRsZXMKKyAqCisgKiBUaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIGEgZXh0ZW5kZWQgbGluayBkZXRlY3Rpb24gY2FsbGJhY2suCisgKi8KK3R5cGVkZWYgdm9pZAorKCp4bGlua0V4dGVuZGVkTGlua0Z1bmspKHZvaWQgKmN0eCwKKwkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkgaW50IG5iTG9jYXRvcnMsCisJCQkgY29uc3QgeGxpbmtIUmVmICpocmVmcywKKwkJCSBjb25zdCB4bGlua1JvbGUgKnJvbGVzLAorCQkJIGludCBuYkFyY3MsCisJCQkgY29uc3QgeGxpbmtSb2xlICpmcm9tLAorCQkJIGNvbnN0IHhsaW5rUm9sZSAqdG8sCisJCQkgeGxpbmtTaG93ICpzaG93LAorCQkJIHhsaW5rQWN0dWF0ZSAqYWN0dWF0ZSwKKwkJCSBpbnQgbmJUaXRsZXMsCisJCQkgY29uc3QgeGxpbmtUaXRsZSAqdGl0bGVzLAorCQkJIGNvbnN0IHhtbENoYXIgKipsYW5ncyk7CisKKy8qKgorICogeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rOgorICogQGN0eDogIHVzZXIgZGF0YSBwb2ludGVyCisgKiBAbm9kZTogIHRoZSBub2RlIGNhcnJ5aW5nIHRoZSBsaW5rCisgKiBAbmJMb2NhdG9yczogdGhlIG51bWJlciBvZiBsb2NhdG9ycyBkZXRlY3RlZCBvbiB0aGUgbGluaworICogQGhyZWZzOiAgcG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciBocmVmcworICogQHJvbGVzOiAgcG9pbnRlciB0byB0aGUgYXJyYXkgb2YgbG9jYXRvciByb2xlcworICogQG5iVGl0bGVzOiB0aGUgbnVtYmVyIG9mIHRpdGxlcyBkZXRlY3RlZCBvbiB0aGUgbGluaworICogQHRpdGxlOiAgYXJyYXkgb2YgdGl0bGVzIGRldGVjdGVkIG9uIHRoZSBsaW5rCisgKiBAbGFuZ3M6ICBhcnJheSBvZiB4bWw6bGFuZyB2YWx1ZXMgZm9yIHRoZSB0aXRsZXMKKyAqCisgKiBUaGlzIGlzIHRoZSBwcm90b3R5cGUgZm9yIGEgZXh0ZW5kZWQgbGluayBzZXQgZGV0ZWN0aW9uIGNhbGxiYWNrLgorICovCit0eXBlZGVmIHZvaWQKKygqeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rKQkodm9pZCAqY3R4LAorCQkJCSB4bWxOb2RlUHRyIG5vZGUsCisJCQkJIGludCBuYkxvY2F0b3JzLAorCQkJCSBjb25zdCB4bGlua0hSZWYgKmhyZWZzLAorCQkJCSBjb25zdCB4bGlua1JvbGUgKnJvbGVzLAorCQkJCSBpbnQgbmJUaXRsZXMsCisJCQkJIGNvbnN0IHhsaW5rVGl0bGUgKnRpdGxlcywKKwkJCQkgY29uc3QgeG1sQ2hhciAqKmxhbmdzKTsKKworLyoqCisgKiBUaGlzIGlzIHRoZSBzdHJ1Y3R1cmUgY29udGFpbmluZyBhIHNldCBvZiBMaW5rcyBkZXRlY3Rpb24gY2FsbGJhY2tzLgorICoKKyAqIFRoZXJlIGlzIG5vIGRlZmF1bHQgeGxpbmsgY2FsbGJhY2tzLCBpZiBvbmUgd2FudCB0byBnZXQgbGluaworICogcmVjb2duaXRpb24gYWN0aXZhdGVkLCB0aG9zZSBjYWxsIGJhY2tzIG11c3QgYmUgcHJvdmlkZWQgYmVmb3JlIHBhcnNpbmcuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bGlua0hhbmRsZXIgeGxpbmtIYW5kbGVyOwordHlwZWRlZiB4bGlua0hhbmRsZXIgKnhsaW5rSGFuZGxlclB0cjsKK3N0cnVjdCBfeGxpbmtIYW5kbGVyIHsKKyAgICB4bGlua1NpbXBsZUxpbmtGdW5rIHNpbXBsZTsKKyAgICB4bGlua0V4dGVuZGVkTGlua0Z1bmsgZXh0ZW5kZWQ7CisgICAgeGxpbmtFeHRlbmRlZExpbmtTZXRGdW5rIHNldDsKK307CisKKy8qCisgKiBUaGUgZGVmYXVsdCBkZXRlY3Rpb24gcm91dGluZSwgY2FuIGJlIG92ZXJyaWRkZW4sIHRoZXkgY2FsbCB0aGUgZGVmYXVsdAorICogZGV0ZWN0aW9uIGNhbGxiYWNrcy4gCisgKi8KKworWE1MUFVCRlVOIHhsaW5rTm9kZURldGVjdEZ1bmMgWE1MQ0FMTAkKKwkJeGxpbmtHZXREZWZhdWx0RGV0ZWN0CSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJeGxpbmtTZXREZWZhdWx0RGV0ZWN0CSh4bGlua05vZGVEZXRlY3RGdW5jIGZ1bmMpOworCisvKgorICogUm91dGluZXMgdG8gc2V0L2dldCB0aGUgZGVmYXVsdCBoYW5kbGVycy4KKyAqLworWE1MUFVCRlVOIHhsaW5rSGFuZGxlclB0ciBYTUxDQUxMCQorCQl4bGlua0dldERlZmF1bHRIYW5kbGVyCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bGlua1NldERlZmF1bHRIYW5kbGVyCSh4bGlua0hhbmRsZXJQdHIgaGFuZGxlcik7CisKKy8qCisgKiBMaW5rIGRldGVjdGlvbiBtb2R1bGUgaXRzZWxmLgorICovCitYTUxQVUJGVU4geGxpbmtUeXBlIFhNTENBTEwJIAorCQl4bGlua0lzTGluawkJKHhtbERvY1B0ciBkb2MsCisJCQkJCSB4bWxOb2RlUHRyIG5vZGUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX1hQVFJfRU5BQkxFRCAqLworCisjZW5kaWYgLyogX19YTUxfWExJTktfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbElPLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbElPLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVhOWVkNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sSU8uaApAQCAtMCwwICsxLDM2MCBAQAorLyoKKyAqIFN1bW1hcnk6IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcgorICogRGVzY3JpcHRpb246IGludGVyZmFjZSBmb3IgdGhlIEkvTyBpbnRlcmZhY2VzIHVzZWQgYnkgdGhlIHBhcnNlcgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfSU9fSF9fCisjZGVmaW5lIF9fWE1MX0lPX0hfXworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBUaG9zZSBhcmUgdGhlIGZ1bmN0aW9ucyBhbmQgZGF0YXR5cGVzIGZvciB0aGUgcGFyc2VyIGlucHV0CisgKiBJL08gc3RydWN0dXJlcy4KKyAqLworCisvKioKKyAqIHhtbElucHV0TWF0Y2hDYWxsYmFjazoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGVuYW1lIG9yIFVSSQorICoKKyAqIENhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBJbnB1dCBBUEkgdG8gZGV0ZWN0IGlmIHRoZSBjdXJyZW50IGhhbmRsZXIgCisgKiBjYW4gcHJvdmlkZSBpbnB1dCBmb25jdGlvbm5hbGl0aWVzIGZvciB0aGlzIHJlc291cmNlLgorICoKKyAqIFJldHVybnMgMSBpZiB5ZXMgYW5kIDAgaWYgYW5vdGhlciBJbnB1dCBtb2R1bGUgc2hvdWxkIGJlIHVzZWQKKyAqLwordHlwZWRlZiBpbnQgKFhNTENBTEwgKnhtbElucHV0TWF0Y2hDYWxsYmFjaykgKGNoYXIgY29uc3QgKmZpbGVuYW1lKTsKKy8qKgorICogeG1sSW5wdXRPcGVuQ2FsbGJhY2s6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlbmFtZSBvciBVUkkKKyAqCisgKiBDYWxsYmFjayB1c2VkIGluIHRoZSBJL08gSW5wdXQgQVBJIHRvIG9wZW4gdGhlIHJlc291cmNlCisgKgorICogUmV0dXJucyBhbiBJbnB1dCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcgorICovCit0eXBlZGVmIHZvaWQgKiAoWE1MQ0FMTCAqeG1sSW5wdXRPcGVuQ2FsbGJhY2spIChjaGFyIGNvbnN0ICpmaWxlbmFtZSk7CisvKioKKyAqIHhtbElucHV0UmVhZENhbGxiYWNrOgorICogQGNvbnRleHQ6ICBhbiBJbnB1dCBjb250ZXh0CisgKiBAYnVmZmVyOiAgdGhlIGJ1ZmZlciB0byBzdG9yZSBkYXRhIHJlYWQKKyAqIEBsZW46ICB0aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gYnl0ZXMKKyAqCisgKiBDYWxsYmFjayB1c2VkIGluIHRoZSBJL08gSW5wdXQgQVBJIHRvIHJlYWQgdGhlIHJlc291cmNlCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCit0eXBlZGVmIGludCAoWE1MQ0FMTCAqeG1sSW5wdXRSZWFkQ2FsbGJhY2spICh2b2lkICogY29udGV4dCwgY2hhciAqIGJ1ZmZlciwgaW50IGxlbik7CisvKioKKyAqIHhtbElucHV0Q2xvc2VDYWxsYmFjazoKKyAqIEBjb250ZXh0OiAgYW4gSW5wdXQgY29udGV4dAorICoKKyAqIENhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBJbnB1dCBBUEkgdG8gY2xvc2UgdGhlIHJlc291cmNlCisgKgorICogUmV0dXJucyAwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLwordHlwZWRlZiBpbnQgKFhNTENBTEwgKnhtbElucHV0Q2xvc2VDYWxsYmFjaykgKHZvaWQgKiBjb250ZXh0KTsKKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoKKyAqIFRob3NlIGFyZSB0aGUgZnVuY3Rpb25zIGFuZCBkYXRhdHlwZXMgZm9yIHRoZSBsaWJyYXJ5IG91dHB1dAorICogSS9PIHN0cnVjdHVyZXMuCisgKi8KKworLyoqCisgKiB4bWxPdXRwdXRNYXRjaENhbGxiYWNrOgorICogQGZpbGVuYW1lOiB0aGUgZmlsZW5hbWUgb3IgVVJJCisgKgorICogQ2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIE91dHB1dCBBUEkgdG8gZGV0ZWN0IGlmIHRoZSBjdXJyZW50IGhhbmRsZXIgCisgKiBjYW4gcHJvdmlkZSBvdXRwdXQgZm9uY3Rpb25uYWxpdGllcyBmb3IgdGhpcyByZXNvdXJjZS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgeWVzIGFuZCAwIGlmIGFub3RoZXIgT3V0cHV0IG1vZHVsZSBzaG91bGQgYmUgdXNlZAorICovCit0eXBlZGVmIGludCAoWE1MQ0FMTCAqeG1sT3V0cHV0TWF0Y2hDYWxsYmFjaykgKGNoYXIgY29uc3QgKmZpbGVuYW1lKTsKKy8qKgorICogeG1sT3V0cHV0T3BlbkNhbGxiYWNrOgorICogQGZpbGVuYW1lOiB0aGUgZmlsZW5hbWUgb3IgVVJJCisgKgorICogQ2FsbGJhY2sgdXNlZCBpbiB0aGUgSS9PIE91dHB1dCBBUEkgdG8gb3BlbiB0aGUgcmVzb3VyY2UKKyAqCisgKiBSZXR1cm5zIGFuIE91dHB1dCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcgorICovCit0eXBlZGVmIHZvaWQgKiAoWE1MQ0FMTCAqeG1sT3V0cHV0T3BlbkNhbGxiYWNrKSAoY2hhciBjb25zdCAqZmlsZW5hbWUpOworLyoqCisgKiB4bWxPdXRwdXRXcml0ZUNhbGxiYWNrOgorICogQGNvbnRleHQ6ICBhbiBPdXRwdXQgY29udGV4dAorICogQGJ1ZmZlcjogIHRoZSBidWZmZXIgb2YgZGF0YSB0byB3cml0ZQorICogQGxlbjogIHRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlciBpbiBieXRlcworICoKKyAqIENhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBPdXRwdXQgQVBJIHRvIHdyaXRlIHRvIHRoZSByZXNvdXJjZQorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLwordHlwZWRlZiBpbnQgKFhNTENBTEwgKnhtbE91dHB1dFdyaXRlQ2FsbGJhY2spICh2b2lkICogY29udGV4dCwgY29uc3QgY2hhciAqIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pOworLyoqCisgKiB4bWxPdXRwdXRDbG9zZUNhbGxiYWNrOgorICogQGNvbnRleHQ6ICBhbiBPdXRwdXQgY29udGV4dAorICoKKyAqIENhbGxiYWNrIHVzZWQgaW4gdGhlIEkvTyBPdXRwdXQgQVBJIHRvIGNsb3NlIHRoZSByZXNvdXJjZQorICoKKyAqIFJldHVybnMgMCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3R5cGVkZWYgaW50IChYTUxDQUxMICp4bWxPdXRwdXRDbG9zZUNhbGxiYWNrKSAodm9pZCAqIGNvbnRleHQpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZW5jb2RpbmcuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorc3RydWN0IF94bWxQYXJzZXJJbnB1dEJ1ZmZlciB7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICBjb250ZXh0OworICAgIHhtbElucHV0UmVhZENhbGxiYWNrICAgcmVhZGNhbGxiYWNrOworICAgIHhtbElucHV0Q2xvc2VDYWxsYmFjayAgY2xvc2VjYWxsYmFjazsKKyAgICAKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXI7IC8qIEkxOE4gY29udmVyc2lvbnMgdG8gVVRGLTggKi8KKyAgICAKKyAgICB4bWxCdWZmZXJQdHIgYnVmZmVyOyAgICAvKiBMb2NhbCBidWZmZXIgZW5jb2RlZCBpbiBVVEYtOCAqLworICAgIHhtbEJ1ZmZlclB0ciByYXc7ICAgICAgIC8qIGlmIGVuY29kZXIgIT0gTlVMTCBidWZmZXIgZm9yIHJhdyBpbnB1dCAqLworICAgIGludAljb21wcmVzc2VkOwkgICAgLyogLTE9dW5rbm93biwgMD1ub3QgY29tcHJlc3NlZCwgMT1jb21wcmVzc2VkICovCisgICAgaW50IGVycm9yOworICAgIHVuc2lnbmVkIGxvbmcgcmF3Y29uc3VtZWQ7LyogYW1vdW50IGNvbnN1bWVkIGZyb20gcmF3ICovCit9OworCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKK3N0cnVjdCBfeG1sT3V0cHV0QnVmZmVyIHsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICBjb250ZXh0OworICAgIHhtbE91dHB1dFdyaXRlQ2FsbGJhY2sgIHdyaXRlY2FsbGJhY2s7CisgICAgeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayAgY2xvc2VjYWxsYmFjazsKKyAgICAKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXI7IC8qIEkxOE4gY29udmVyc2lvbnMgdG8gVVRGLTggKi8KKyAgICAKKyAgICB4bWxCdWZmZXJQdHIgYnVmZmVyOyAgICAvKiBMb2NhbCBidWZmZXIgZW5jb2RlZCBpbiBVVEYtOCBvciBJU09MYXRpbiAqLworICAgIHhtbEJ1ZmZlclB0ciBjb252OyAgICAgIC8qIGlmIGVuY29kZXIgIT0gTlVMTCBidWZmZXIgZm9yIG91dHB1dCAqLworICAgIGludCB3cml0dGVuOyAgICAgICAgICAgIC8qIHRvdGFsIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gKi8KKyAgICBpbnQgZXJyb3I7Cit9OworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKgorICogSW50ZXJmYWNlcyBmb3IgaW5wdXQKKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxDbGVhbnVwSW5wdXRDYWxsYmFja3MJCSh2b2lkKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJeG1sUG9wSW5wdXRDYWxsYmFja3MJCQkodm9pZCk7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MJKHZvaWQpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyCQkoeG1sQ2hhckVuY29kaW5nIGVuYyk7CisKK1hNTFBVQkZVTiB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBYTUxDQUxMCisJeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZQkoY29uc3QgY2hhciAqVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZyBlbmMpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGUJCShGSUxFICpmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZyBlbmMpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkCQkoaW50IGZkLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhckVuY29kaW5nIGVuYyk7CitYTUxQVUJGVU4geG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgWE1MQ0FMTAorCXhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtCQkoY29uc3QgY2hhciAqbWVtLCBpbnQgc2l6ZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZyBlbmMpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYwkoY29uc3QgY2hhciAqbWVtLCBpbnQgc2l6ZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZyBlbmMpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPCQkoeG1sSW5wdXRSZWFkQ2FsbGJhY2sgICBpb3JlYWQsCisJCQkJCQkgeG1sSW5wdXRDbG9zZUNhbGxiYWNrICBpb2Nsb3NlLAorCQkJCQkJIHZvaWQgKmlvY3R4LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhckVuY29kaW5nIGVuYyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkCQkoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW4sCisJCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93CQkoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW4sCisJCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoCQkoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW4sCisJCQkJCQkgaW50IGxlbiwKKwkJCQkJCSBjb25zdCBjaGFyICpidWYpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIJCSh4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbik7CitYTUxQVUJGVU4gY2hhciAqIFhNTENBTEwJCisJeG1sUGFyc2VyR2V0RGlyZWN0b3J5CQkJKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMICAgICAKKwl4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzCQkoeG1sSW5wdXRNYXRjaENhbGxiYWNrIG1hdGNoRnVuYywKKwkJCQkJCSB4bWxJbnB1dE9wZW5DYWxsYmFjayBvcGVuRnVuYywKKwkJCQkJCSB4bWxJbnB1dFJlYWRDYWxsYmFjayByZWFkRnVuYywKKwkJCQkJCSB4bWxJbnB1dENsb3NlQ2FsbGJhY2sgY2xvc2VGdW5jKTsKKworeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIKKwlfX3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoY29uc3QgY2hhciAqVVJJLAorCQkJCQkJCQkJCXhtbENoYXJFbmNvZGluZyBlbmMpOworCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKgorICogSW50ZXJmYWNlcyBmb3Igb3V0cHV0CisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcwkJKHZvaWQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkKKwl4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3Modm9pZCk7CitYTUxQVUJGVU4geG1sT3V0cHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxBbGxvY091dHB1dEJ1ZmZlcgkJKHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2Rlcik7CisKK1hNTFBVQkZVTiB4bWxPdXRwdXRCdWZmZXJQdHIgWE1MQ0FMTAorCXhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lCShjb25zdCBjaGFyICpVUkksCisJCQkJCSB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXIsCisJCQkJCSBpbnQgY29tcHJlc3Npb24pOworCitYTUxQVUJGVU4geG1sT3V0cHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlCShGSUxFICpmaWxlLAorCQkJCQkgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKTsKKworWE1MUFVCRlVOIHhtbE91dHB1dEJ1ZmZlclB0ciBYTUxDQUxMCisJeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyCSh4bWxCdWZmZXJQdHIgYnVmZmVyLAorCQkJCQkgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKTsKKworWE1MUFVCRlVOIHhtbE91dHB1dEJ1ZmZlclB0ciBYTUxDQUxMCisJeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQJCShpbnQgZmQsCisJCQkJCSB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXIpOworCitYTUxQVUJGVU4geG1sT3V0cHV0QnVmZmVyUHRyIFhNTENBTEwKKwl4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTwkJKHhtbE91dHB1dFdyaXRlQ2FsbGJhY2sgICBpb3dyaXRlLAorCQkJCQkgeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayAgaW9jbG9zZSwKKwkJCQkJIHZvaWQgKmlvY3R4LAorCQkJCQkgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCQorCXhtbE91dHB1dEJ1ZmZlcldyaXRlCQkoeG1sT3V0cHV0QnVmZmVyUHRyIG91dCwKKwkJCQkJIGludCBsZW4sCisJCQkJCSBjb25zdCBjaGFyICpidWYpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQorCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nCSh4bWxPdXRwdXRCdWZmZXJQdHIgb3V0LAorCQkJCQkgY29uc3QgY2hhciAqc3RyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZQkoeG1sT3V0cHV0QnVmZmVyUHRyIG91dCwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnN0ciwKKwkJCQkJIHhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmMgZXNjYXBpbmcpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sT3V0cHV0QnVmZmVyRmx1c2gJCSh4bWxPdXRwdXRCdWZmZXJQdHIgb3V0KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxPdXRwdXRCdWZmZXJDbG9zZQkJKHhtbE91dHB1dEJ1ZmZlclB0ciBvdXQpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwgICAgIAorCXhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzCSh4bWxPdXRwdXRNYXRjaENhbGxiYWNrIG1hdGNoRnVuYywKKwkJCQkJIHhtbE91dHB1dE9wZW5DYWxsYmFjayBvcGVuRnVuYywKKwkJCQkJIHhtbE91dHB1dFdyaXRlQ2FsbGJhY2sgd3JpdGVGdW5jLAorCQkJCQkgeG1sT3V0cHV0Q2xvc2VDYWxsYmFjayBjbG9zZUZ1bmMpOworCit4bWxPdXRwdXRCdWZmZXJQdHIKKwlfX3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKGNvbnN0IGNoYXIgKlVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wcmVzc2lvbik7CisKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECisvKiAgVGhpcyBmdW5jdGlvbiBvbmx5IGV4aXN0cyBpZiBIVFRQIHN1cHBvcnQgYnVpbHQgaW50byB0aGUgbGlicmFyeSAgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCisJeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcwkodm9pZCApOworI2VuZGlmIC8qIExJQlhNTF9IVFRQX0VOQUJMRUQgKi8KKwkKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0UHRyIFhNTENBTEwKKwl4bWxDaGVja0hUVFBJbnB1dAkJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFBhcnNlcklucHV0UHRyIHJldCk7CisKKy8qCisgKiBBIHByZWRlZmluZWQgZW50aXR5IGxvYWRlciBkaXNhYmxpbmcgbmV0d29yayBhY2Nlc3NlcworICovCitYTUxQVUJGVU4geG1sUGFyc2VySW5wdXRQdHIgWE1MQ0FMTCAKKwl4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyCShjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICpJRCwKKwkJCQkJIHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CisKKy8qIAorICogeG1sTm9ybWFsaXplV2luZG93c1BhdGggaXMgb2Jzb2xldGUsIGRvbid0IHVzZSBpdC4gCisgKiBDaGVjayB4bWxDYW5vbmljUGF0aCBpbiB1cmkuaCBmb3IgYSBiZXR0ZXIgYWx0ZXJuYXRpdmUuCisgKi8KK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTCAKKwl4bWxOb3JtYWxpemVXaW5kb3dzUGF0aAkJKGNvbnN0IHhtbENoYXIgKnBhdGgpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sQ2hlY2tGaWxlbmFtZQkJKGNvbnN0IGNoYXIgKnBhdGgpOworLyoqCisgKiBEZWZhdWx0ICdmaWxlOi8vJyBwcm90b2NvbCBjYWxsYmFja3MgCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxGaWxlTWF0Y2ggCQkJKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK1hNTFBVQkZVTiB2b2lkICogWE1MQ0FMTAkKKwl4bWxGaWxlT3BlbiAJCQkoY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQorCXhtbEZpbGVSZWFkIAkJCSh2b2lkICogY29udGV4dCwgCisJCQkJCSBjaGFyICogYnVmZmVyLCAKKwkJCQkJIGludCBsZW4pOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQorCXhtbEZpbGVDbG9zZSAJCQkodm9pZCAqIGNvbnRleHQpOworCisvKioKKyAqIERlZmF1bHQgJ2h0dHA6Ly8nIHByb3RvY29sIGNhbGxiYWNrcyAKKyAqLworI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkKKwl4bWxJT0hUVFBNYXRjaCAJCQkoY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQorCXhtbElPSFRUUE9wZW4gCQkJKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKK1hNTFBVQkZVTiB2b2lkICogWE1MQ0FMTAkKKwl4bWxJT0hUVFBPcGVuVwkJCShjb25zdCBjaGFyICogcG9zdF91cmksCisJCQkJCSBpbnQgICBjb21wcmVzc2lvbiApOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMIAkKKwl4bWxJT0hUVFBSZWFkCQkJKHZvaWQgKiBjb250ZXh0LCAKKwkJCQkJIGNoYXIgKiBidWZmZXIsIAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sSU9IVFRQQ2xvc2UgCQkJKHZvaWQgKiBjb250ZXh0KTsKKyNlbmRpZiAvKiBMSUJYTUxfSFRUUF9FTkFCTEVEICovCisKKy8qKgorICogRGVmYXVsdCAnZnRwOi8vJyBwcm90b2NvbCBjYWxsYmFja3MgCisgKi8KKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQgCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCisJeG1sSU9GVFBNYXRjaCAJCQkoY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCQorCXhtbElPRlRQT3BlbiAJCQkoY29uc3QgY2hhciAqZmlsZW5hbWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIAkKKwl4bWxJT0ZUUFJlYWQJCQkodm9pZCAqIGNvbnRleHQsIAorCQkJCQkgY2hhciAqIGJ1ZmZlciwgCisJCQkJCSBpbnQgbGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCAJCisJeG1sSU9GVFBDbG9zZSAJCQkodm9pZCAqIGNvbnRleHQpOworI2VuZGlmIC8qIExJQlhNTF9GVFBfRU5BQkxFRCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogX19YTUxfSU9fSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbGF1dG9tYXRhLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbGF1dG9tYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk4YjU1ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sYXV0b21hdGEuaApAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIFN1bW1hcnk6IEFQSSB0byBidWlsZCByZWdleHAgYXV0b21hdGEKKyAqIERlc2NyaXB0aW9uOiB0aGUgQVBJIHRvIGJ1aWxkIHJlZ2V4cCBhdXRvbWF0YQorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfQVVUT01BVEFfSF9fCisjZGVmaW5lIF9fWE1MX0FVVE9NQVRBX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisjaWZkZWYgTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVnZXhwLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiB4bWxBdXRvbWF0YVB0cjoKKyAqCisgKiBBIGxpYnhtbCBhdXRvbWF0YSBkZXNjcmlwdGlvbiwgSXQgY2FuIGJlIGNvbXBpbGVkIGludG8gYSByZWdleHAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbEF1dG9tYXRhIHhtbEF1dG9tYXRhOwordHlwZWRlZiB4bWxBdXRvbWF0YSAqeG1sQXV0b21hdGFQdHI7CisKKy8qKgorICogeG1sQXV0b21hdGFTdGF0ZVB0cjoKKyAqCisgKiBBIHN0YXRlIGludCB0aGUgYXV0b21hdGEgZGVzY3JpcHRpb24sCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxBdXRvbWF0YVN0YXRlIHhtbEF1dG9tYXRhU3RhdGU7Cit0eXBlZGVmIHhtbEF1dG9tYXRhU3RhdGUgKnhtbEF1dG9tYXRhU3RhdGVQdHI7CisKKy8qCisgKiBCdWlsZGluZyBBUEkKKyAqLworWE1MUFVCRlVOIHhtbEF1dG9tYXRhUHRyIFhNTENBTEwJCQorCQkgICAgeG1sTmV3QXV0b21hdGEJCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJICAgIHhtbEZyZWVBdXRvbWF0YQkJKHhtbEF1dG9tYXRhUHRyIGFtKTsKKworWE1MUFVCRlVOIHhtbEF1dG9tYXRhU3RhdGVQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlCSh4bWxBdXRvbWF0YVB0ciBhbSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJICAgIHhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZQkoeG1sQXV0b21hdGFQdHIgYW0sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciBzdGF0ZSk7CitYTUxQVUJGVU4geG1sQXV0b21hdGFTdGF0ZVB0ciBYTUxDQUxMCQorCQkgICAgeG1sQXV0b21hdGFOZXdTdGF0ZQkJKHhtbEF1dG9tYXRhUHRyIGFtKTsKK1hNTFBVQkZVTiB4bWxBdXRvbWF0YVN0YXRlUHRyIFhNTENBTEwJCisJCSAgICB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24JKHhtbEF1dG9tYXRhUHRyIGFtLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJCQkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIHRvLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkJCQkJIHZvaWQgKmRhdGEpOworWE1MUFVCRlVOIHhtbEF1dG9tYXRhU3RhdGVQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIJKHhtbEF1dG9tYXRhUHRyIGFtLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJCQkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIHRvLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnRva2VuMiwKKwkJCQkJCSB2b2lkICpkYXRhKTsKK1hNTFBVQkZVTiB4bWxBdXRvbWF0YVN0YXRlUHRyIFhNTENBTEwKKyAgICAgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdOZWdUcmFucwkoeG1sQXV0b21hdGFQdHIgYW0sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciBmcm9tLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqdG9rZW4sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqdG9rZW4yLAorCQkJCQkJIHZvaWQgKmRhdGEpOworCitYTUxQVUJGVU4geG1sQXV0b21hdGFTdGF0ZVB0ciBYTUxDQUxMCQorCQkgICAgeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zCSh4bWxBdXRvbWF0YVB0ciBhbSwKKwkJCQkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIGZyb20sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciB0bywKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp0b2tlbiwKKwkJCQkJCSBpbnQgbWluLAorCQkJCQkJIGludCBtYXgsCisJCQkJCQkgdm9pZCAqZGF0YSk7CitYTUxQVUJGVU4geG1sQXV0b21hdGFTdGF0ZVB0ciBYTUxDQUxMCQorCQkgICAgeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMgkoeG1sQXV0b21hdGFQdHIgYW0sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciBmcm9tLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqdG9rZW4sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqdG9rZW4yLAorCQkJCQkJIGludCBtaW4sCisJCQkJCQkgaW50IG1heCwKKwkJCQkJCSB2b2lkICpkYXRhKTsKK1hNTFBVQkZVTiB4bWxBdXRvbWF0YVN0YXRlUHRyIFhNTENBTEwJCisJCSAgICB4bWxBdXRvbWF0YU5ld09uY2VUcmFucwkoeG1sQXV0b21hdGFQdHIgYW0sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciBmcm9tLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqdG9rZW4sCisJCQkJCQkgaW50IG1pbiwKKwkJCQkJCSBpbnQgbWF4LAorCQkJCQkJIHZvaWQgKmRhdGEpOworWE1MUFVCRlVOIHhtbEF1dG9tYXRhU3RhdGVQdHIgWE1MQ0FMTAorCQkgICAgeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyCSh4bWxBdXRvbWF0YVB0ciBhbSwgCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciBmcm9tLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sIAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnRva2VuMiwKKwkJCQkJCSBpbnQgbWluLCAKKwkJCQkJCSBpbnQgbWF4LCAKKwkJCQkJCSB2b2lkICpkYXRhKTsKK1hNTFBVQkZVTiB4bWxBdXRvbWF0YVN0YXRlUHRyIFhNTENBTEwJCisJCSAgICB4bWxBdXRvbWF0YU5ld0FsbFRyYW5zCSh4bWxBdXRvbWF0YVB0ciBhbSwKKwkJCQkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIGZyb20sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciB0bywKKwkJCQkJCSBpbnQgbGF4KTsKK1hNTFBVQkZVTiB4bWxBdXRvbWF0YVN0YXRlUHRyIFhNTENBTEwJCisJCSAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24JKHhtbEF1dG9tYXRhUHRyIGFtLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJCQkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIHRvKTsKK1hNTFBVQkZVTiB4bWxBdXRvbWF0YVN0YXRlUHRyIFhNTENBTEwJCisJCSAgICB4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucwkoeG1sQXV0b21hdGFQdHIgYW0sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciBmcm9tLAorCQkJCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sCisJCQkJCQkgaW50IGNvdW50ZXIpOworWE1MUFVCRlVOIHhtbEF1dG9tYXRhU3RhdGVQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zCSh4bWxBdXRvbWF0YVB0ciBhbSwKKwkJCQkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIGZyb20sCisJCQkJCQkgeG1sQXV0b21hdGFTdGF0ZVB0ciB0bywKKwkJCQkJCSBpbnQgY291bnRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQkKKwkJICAgIHhtbEF1dG9tYXRhTmV3Q291bnRlcgkoeG1sQXV0b21hdGFQdHIgYW0sCisJCQkJCQkgaW50IG1pbiwKKwkJCQkJCSBpbnQgbWF4KTsKKworWE1MUFVCRlVOIHhtbFJlZ2V4cFB0ciBYTUxDQUxMCQkKKwkJICAgIHhtbEF1dG9tYXRhQ29tcGlsZQkJKHhtbEF1dG9tYXRhUHRyIGFtKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkgICAgCQkKKwkJICAgIHhtbEF1dG9tYXRhSXNEZXRlcm1pbmlzdAkoeG1sQXV0b21hdGFQdHIgYW0pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAKKworI2VuZGlmIC8qIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVEICovCisjZW5kaWYgLyogTElCWE1MX1JFR0VYUF9FTkFCTEVEICovCisKKyNlbmRpZiAvKiBfX1hNTF9BVVRPTUFUQV9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sZXJyb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTI0MjExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxlcnJvci5oCkBAIC0wLDAgKzEsOTQ0IEBACisvKgorICogU3VtbWFyeTogZXJyb3IgaGFuZGxpbmcKKyAqIERlc2NyaXB0aW9uOiB0aGUgQVBJIHVzZWQgdG8gcmVwb3J0IGVycm9ycworICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisKKyNpZm5kZWYgX19YTUxfRVJST1JfSF9fCisjZGVmaW5lIF9fWE1MX0VSUk9SX0hfXworCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogeG1sRXJyb3JMZXZlbDoKKyAqCisgKiBJbmRpY2F0ZXMgdGhlIGxldmVsIG9mIGFuIGVycm9yCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX0VSUl9OT05FID0gMCwKKyAgICBYTUxfRVJSX1dBUk5JTkcgPSAxLAkvKiBBIHNpbXBsZSB3YXJuaW5nICovCisgICAgWE1MX0VSUl9FUlJPUiA9IDIsCQkvKiBBIHJlY292ZXJhYmxlIGVycm9yICovCisgICAgWE1MX0VSUl9GQVRBTCA9IDMJCS8qIEEgZmF0YWwgZXJyb3IgKi8KK30geG1sRXJyb3JMZXZlbDsKKworLyoqCisgKiB4bWxFcnJvckRvbWFpbjoKKyAqCisgKiBJbmRpY2F0ZXMgd2hlcmUgYW4gZXJyb3IgbWF5IGhhdmUgY29tZSBmcm9tCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX0ZST01fTk9ORSA9IDAsCisgICAgWE1MX0ZST01fUEFSU0VSLAkvKiBUaGUgWE1MIHBhcnNlciAqLworICAgIFhNTF9GUk9NX1RSRUUsCS8qIFRoZSB0cmVlIG1vZHVsZSAqLworICAgIFhNTF9GUk9NX05BTUVTUEFDRSwJLyogVGhlIFhNTCBOYW1lc3BhY2UgbW9kdWxlICovCisgICAgWE1MX0ZST01fRFRELAkvKiBUaGUgWE1MIERURCB2YWxpZGF0aW9uIHdpdGggcGFyc2VyIGNvbnRleHQqLworICAgIFhNTF9GUk9NX0hUTUwsCS8qIFRoZSBIVE1MIHBhcnNlciAqLworICAgIFhNTF9GUk9NX01FTU9SWSwJLyogVGhlIG1lbW9yeSBhbGxvY2F0b3IgKi8KKyAgICBYTUxfRlJPTV9PVVRQVVQsCS8qIFRoZSBzZXJpYWxpemF0aW9uIGNvZGUgKi8KKyAgICBYTUxfRlJPTV9JTywJLyogVGhlIElucHV0L091dHB1dCBzdGFjayAqLworICAgIFhNTF9GUk9NX0ZUUCwJLyogVGhlIEZUUCBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9IVFRQLAkvKiBUaGUgSFRUUCBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9YSU5DTFVERSwJLyogVGhlIFhJbmNsdWRlIHByb2Nlc3NpbmcgKi8KKyAgICBYTUxfRlJPTV9YUEFUSCwJLyogVGhlIFhQYXRoIG1vZHVsZSAqLworICAgIFhNTF9GUk9NX1hQT0lOVEVSLAkvKiBUaGUgWFBvaW50ZXIgbW9kdWxlICovCisgICAgWE1MX0ZST01fUkVHRVhQLAkvKiBUaGUgcmVndWxhciBleHByZXNzaW9ucyBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9EQVRBVFlQRSwJLyogVGhlIFczQyBYTUwgU2NoZW1hcyBEYXRhdHlwZSBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9TQ0hFTUFTUCwJLyogVGhlIFczQyBYTUwgU2NoZW1hcyBwYXJzZXIgbW9kdWxlICovCisgICAgWE1MX0ZST01fU0NIRU1BU1YsCS8qIFRoZSBXM0MgWE1MIFNjaGVtYXMgdmFsaWRhdGlvbiBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9SRUxBWE5HUCwJLyogVGhlIFJlbGF4LU5HIHBhcnNlciBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9SRUxBWE5HViwJLyogVGhlIFJlbGF4LU5HIHZhbGlkYXRvciBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9DQVRBTE9HLAkvKiBUaGUgQ2F0YWxvZyBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9DMTROLAkvKiBUaGUgQ2Fub25pY2FsaXphdGlvbiBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9YU0xULAkvKiBUaGUgWFNMVCBlbmdpbmUgZnJvbSBsaWJ4c2x0ICovCisgICAgWE1MX0ZST01fVkFMSUQsCS8qIFRoZSBYTUwgRFREIHZhbGlkYXRpb24gd2l0aCB2YWxpZCBjb250ZXh0ICovCisgICAgWE1MX0ZST01fQ0hFQ0ssCS8qIFRoZSBlcnJvciBjaGVja2luZyBtb2R1bGUgKi8KKyAgICBYTUxfRlJPTV9XUklURVIsCS8qIFRoZSB4bWx3cml0ZXIgbW9kdWxlICovCisgICAgWE1MX0ZST01fTU9EVUxFLAkvKiBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSBtb2R1bGUqLworICAgIFhNTF9GUk9NX0kxOE4sCS8qIFRoZSBtb2R1bGUgaGFuZGxpbmcgY2hhcmFjdGVyIGNvbnZlcnNpb24gKi8KKyAgICBYTUxfRlJPTV9TQ0hFTUFUUk9OVgkvKiBUaGUgU2NoZW1hdHJvbiB2YWxpZGF0b3IgbW9kdWxlICovCit9IHhtbEVycm9yRG9tYWluOworCisvKioKKyAqIHhtbEVycm9yOgorICoKKyAqIEFuIFhNTCBFcnJvciBpbnN0YW5jZS4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sRXJyb3IgeG1sRXJyb3I7Cit0eXBlZGVmIHhtbEVycm9yICp4bWxFcnJvclB0cjsKK3N0cnVjdCBfeG1sRXJyb3IgeworICAgIGludAkJZG9tYWluOwkvKiBXaGF0IHBhcnQgb2YgdGhlIGxpYnJhcnkgcmFpc2VkIHRoaXMgZXJyb3IgKi8KKyAgICBpbnQJCWNvZGU7CS8qIFRoZSBlcnJvciBjb2RlLCBlLmcuIGFuIHhtbFBhcnNlckVycm9yICovCisgICAgY2hhciAgICAgICAqbWVzc2FnZTsvKiBodW1hbi1yZWFkYWJsZSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlICovCisgICAgeG1sRXJyb3JMZXZlbCBsZXZlbDsvKiBob3cgY29uc2VxdWVudCBpcyB0aGUgZXJyb3IgKi8KKyAgICBjaGFyICAgICAgICpmaWxlOwkvKiB0aGUgZmlsZW5hbWUgKi8KKyAgICBpbnQJCWxpbmU7CS8qIHRoZSBsaW5lIG51bWJlciBpZiBhdmFpbGFibGUgKi8KKyAgICBjaGFyICAgICAgICpzdHIxOwkvKiBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24gKi8KKyAgICBjaGFyICAgICAgICpzdHIyOwkvKiBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24gKi8KKyAgICBjaGFyICAgICAgICpzdHIzOwkvKiBleHRyYSBzdHJpbmcgaW5mb3JtYXRpb24gKi8KKyAgICBpbnQJCWludDE7CS8qIGV4dHJhIG51bWJlciBpbmZvcm1hdGlvbiAqLworICAgIGludAkJaW50MjsJLyogY29sdW1uIG51bWJlciBvZiB0aGUgZXJyb3Igb3IgMCBpZiBOL0EgKHRvZG86IHJlbmFtZSB0aGlzIGZpZWxkIHdoZW4gd2Ugd291bGQgYnJlYWsgQUJJKSAqLworICAgIHZvaWQgICAgICAgKmN0eHQ7ICAgLyogdGhlIHBhcnNlciBjb250ZXh0IGlmIGF2YWlsYWJsZSAqLworICAgIHZvaWQgICAgICAgKm5vZGU7ICAgLyogdGhlIG5vZGUgaW4gdGhlIHRyZWUgKi8KK307CisKKy8qKgorICogeG1sUGFyc2VyRXJyb3I6CisgKgorICogVGhpcyBpcyBhbiBlcnJvciB0aGF0IHRoZSBYTUwgKG9yIEhUTUwpIHBhcnNlciBjYW4gZ2VuZXJhdGUKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfRVJSX09LID0gMCwKKyAgICBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLCAvKiAxICovCisgICAgWE1MX0VSUl9OT19NRU1PUlksIC8qIDIgKi8KKyAgICBYTUxfRVJSX0RPQ1VNRU5UX1NUQVJULCAvKiAzICovCisgICAgWE1MX0VSUl9ET0NVTUVOVF9FTVBUWSwgLyogNCAqLworICAgIFhNTF9FUlJfRE9DVU1FTlRfRU5ELCAvKiA1ICovCisgICAgWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGLCAvKiA2ICovCisgICAgWE1MX0VSUl9JTlZBTElEX0RFQ19DSEFSUkVGLCAvKiA3ICovCisgICAgWE1MX0VSUl9JTlZBTElEX0NIQVJSRUYsIC8qIDggKi8KKyAgICBYTUxfRVJSX0lOVkFMSURfQ0hBUiwgLyogOSAqLworICAgIFhNTF9FUlJfQ0hBUlJFRl9BVF9FT0YsIC8qIDEwICovCisgICAgWE1MX0VSUl9DSEFSUkVGX0lOX1BST0xPRywgLyogMTEgKi8KKyAgICBYTUxfRVJSX0NIQVJSRUZfSU5fRVBJTE9HLCAvKiAxMiAqLworICAgIFhNTF9FUlJfQ0hBUlJFRl9JTl9EVEQsIC8qIDEzICovCisgICAgWE1MX0VSUl9FTlRJVFlSRUZfQVRfRU9GLCAvKiAxNCAqLworICAgIFhNTF9FUlJfRU5USVRZUkVGX0lOX1BST0xPRywgLyogMTUgKi8KKyAgICBYTUxfRVJSX0VOVElUWVJFRl9JTl9FUElMT0csIC8qIDE2ICovCisgICAgWE1MX0VSUl9FTlRJVFlSRUZfSU5fRFRELCAvKiAxNyAqLworICAgIFhNTF9FUlJfUEVSRUZfQVRfRU9GLCAvKiAxOCAqLworICAgIFhNTF9FUlJfUEVSRUZfSU5fUFJPTE9HLCAvKiAxOSAqLworICAgIFhNTF9FUlJfUEVSRUZfSU5fRVBJTE9HLCAvKiAyMCAqLworICAgIFhNTF9FUlJfUEVSRUZfSU5fSU5UX1NVQlNFVCwgLyogMjEgKi8KKyAgICBYTUxfRVJSX0VOVElUWVJFRl9OT19OQU1FLCAvKiAyMiAqLworICAgIFhNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORywgLyogMjMgKi8KKyAgICBYTUxfRVJSX1BFUkVGX05PX05BTUUsIC8qIDI0ICovCisgICAgWE1MX0VSUl9QRVJFRl9TRU1JQ09MX01JU1NJTkcsIC8qIDI1ICovCisgICAgWE1MX0VSUl9VTkRFQ0xBUkVEX0VOVElUWSwgLyogMjYgKi8KKyAgICBYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZLCAvKiAyNyAqLworICAgIFhNTF9FUlJfVU5QQVJTRURfRU5USVRZLCAvKiAyOCAqLworICAgIFhNTF9FUlJfRU5USVRZX0lTX0VYVEVSTkFMLCAvKiAyOSAqLworICAgIFhNTF9FUlJfRU5USVRZX0lTX1BBUkFNRVRFUiwgLyogMzAgKi8KKyAgICBYTUxfRVJSX1VOS05PV05fRU5DT0RJTkcsIC8qIDMxICovCisgICAgWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORywgLyogMzIgKi8KKyAgICBYTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRCwgLyogMzMgKi8KKyAgICBYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VELCAvKiAzNCAqLworICAgIFhNTF9FUlJfTlNfREVDTF9FUlJPUiwgLyogMzUgKi8KKyAgICBYTUxfRVJSX0VOVElUWV9OT1RfU1RBUlRFRCwgLyogMzYgKi8KKyAgICBYTUxfRVJSX0VOVElUWV9OT1RfRklOSVNIRUQsIC8qIDM3ICovCisgICAgWE1MX0VSUl9MVF9JTl9BVFRSSUJVVEUsIC8qIDM4ICovCisgICAgWE1MX0VSUl9BVFRSSUJVVEVfTk9UX1NUQVJURUQsIC8qIDM5ICovCisgICAgWE1MX0VSUl9BVFRSSUJVVEVfTk9UX0ZJTklTSEVELCAvKiA0MCAqLworICAgIFhNTF9FUlJfQVRUUklCVVRFX1dJVEhPVVRfVkFMVUUsIC8qIDQxICovCisgICAgWE1MX0VSUl9BVFRSSUJVVEVfUkVERUZJTkVELCAvKiA0MiAqLworICAgIFhNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCwgLyogNDMgKi8KKyAgICBYTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVELCAvKiA0NCAqLworICAgIFhNTF9FUlJfQ09NTUVOVF9OT1RfRklOSVNIRUQsIC8qIDQ1ICovCisgICAgWE1MX0VSUl9QSV9OT1RfU1RBUlRFRCwgLyogNDYgKi8KKyAgICBYTUxfRVJSX1BJX05PVF9GSU5JU0hFRCwgLyogNDcgKi8KKyAgICBYTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVELCAvKiA0OCAqLworICAgIFhNTF9FUlJfTk9UQVRJT05fTk9UX0ZJTklTSEVELCAvKiA0OSAqLworICAgIFhNTF9FUlJfQVRUTElTVF9OT1RfU1RBUlRFRCwgLyogNTAgKi8KKyAgICBYTUxfRVJSX0FUVExJU1RfTk9UX0ZJTklTSEVELCAvKiA1MSAqLworICAgIFhNTF9FUlJfTUlYRURfTk9UX1NUQVJURUQsIC8qIDUyICovCisgICAgWE1MX0VSUl9NSVhFRF9OT1RfRklOSVNIRUQsIC8qIDUzICovCisgICAgWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfU1RBUlRFRCwgLyogNTQgKi8KKyAgICBYTUxfRVJSX0VMRU1DT05URU5UX05PVF9GSU5JU0hFRCwgLyogNTUgKi8KKyAgICBYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQsIC8qIDU2ICovCisgICAgWE1MX0VSUl9YTUxERUNMX05PVF9GSU5JU0hFRCwgLyogNTcgKi8KKyAgICBYTUxfRVJSX0NPTkRTRUNfTk9UX1NUQVJURUQsIC8qIDU4ICovCisgICAgWE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRCwgLyogNTkgKi8KKyAgICBYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVELCAvKiA2MCAqLworICAgIFhNTF9FUlJfRE9DVFlQRV9OT1RfRklOSVNIRUQsIC8qIDYxICovCisgICAgWE1MX0VSUl9NSVNQTEFDRURfQ0RBVEFfRU5ELCAvKiA2MiAqLworICAgIFhNTF9FUlJfQ0RBVEFfTk9UX0ZJTklTSEVELCAvKiA2MyAqLworICAgIFhNTF9FUlJfUkVTRVJWRURfWE1MX05BTUUsIC8qIDY0ICovCisgICAgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwgLyogNjUgKi8KKyAgICBYTUxfRVJSX1NFUEFSQVRPUl9SRVFVSVJFRCwgLyogNjYgKi8KKyAgICBYTUxfRVJSX05NVE9LRU5fUkVRVUlSRUQsIC8qIDY3ICovCisgICAgWE1MX0VSUl9OQU1FX1JFUVVJUkVELCAvKiA2OCAqLworICAgIFhNTF9FUlJfUENEQVRBX1JFUVVJUkVELCAvKiA2OSAqLworICAgIFhNTF9FUlJfVVJJX1JFUVVJUkVELCAvKiA3MCAqLworICAgIFhNTF9FUlJfUFVCSURfUkVRVUlSRUQsIC8qIDcxICovCisgICAgWE1MX0VSUl9MVF9SRVFVSVJFRCwgLyogNzIgKi8KKyAgICBYTUxfRVJSX0dUX1JFUVVJUkVELCAvKiA3MyAqLworICAgIFhNTF9FUlJfTFRTTEFTSF9SRVFVSVJFRCwgLyogNzQgKi8KKyAgICBYTUxfRVJSX0VRVUFMX1JFUVVJUkVELCAvKiA3NSAqLworICAgIFhNTF9FUlJfVEFHX05BTUVfTUlTTUFUQ0gsIC8qIDc2ICovCisgICAgWE1MX0VSUl9UQUdfTk9UX0ZJTklTSEVELCAvKiA3NyAqLworICAgIFhNTF9FUlJfU1RBTkRBTE9ORV9WQUxVRSwgLyogNzggKi8KKyAgICBYTUxfRVJSX0VOQ09ESU5HX05BTUUsIC8qIDc5ICovCisgICAgWE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVCwgLyogODAgKi8KKyAgICBYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkcsIC8qIDgxICovCisgICAgWE1MX0VSUl9FWFRfRU5USVRZX1NUQU5EQUxPTkUsIC8qIDgyICovCisgICAgWE1MX0VSUl9DT05EU0VDX0lOVkFMSUQsIC8qIDgzICovCisgICAgWE1MX0VSUl9WQUxVRV9SRVFVSVJFRCwgLyogODQgKi8KKyAgICBYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VELCAvKiA4NSAqLworICAgIFhNTF9FUlJfRVhUUkFfQ09OVEVOVCwgLyogODYgKi8KKyAgICBYTUxfRVJSX0VOVElUWV9DSEFSX0VSUk9SLCAvKiA4NyAqLworICAgIFhNTF9FUlJfRU5USVRZX1BFX0lOVEVSTkFMLCAvKiA4OCAqLworICAgIFhNTF9FUlJfRU5USVRZX0xPT1AsIC8qIDg5ICovCisgICAgWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlksIC8qIDkwICovCisgICAgWE1MX0VSUl9JTlZBTElEX1VSSSwgLyogOTEgKi8KKyAgICBYTUxfRVJSX1VSSV9GUkFHTUVOVCwgLyogOTIgKi8KKyAgICBYTUxfV0FSX0NBVEFMT0dfUEksIC8qIDkzICovCisgICAgWE1MX0VSUl9OT19EVEQsIC8qIDk0ICovCisgICAgWE1MX0VSUl9DT05EU0VDX0lOVkFMSURfS0VZV09SRCwgLyogOTUgKi8KKyAgICBYTUxfRVJSX1ZFUlNJT05fTUlTU0lORywgLyogOTYgKi8KKyAgICBYTUxfV0FSX1VOS05PV05fVkVSU0lPTiwgLyogOTcgKi8KKyAgICBYTUxfV0FSX0xBTkdfVkFMVUUsIC8qIDk4ICovCisgICAgWE1MX1dBUl9OU19VUkksIC8qIDk5ICovCisgICAgWE1MX1dBUl9OU19VUklfUkVMQVRJVkUsIC8qIDEwMCAqLworICAgIFhNTF9FUlJfTUlTU0lOR19FTkNPRElORywgLyogMTAxICovCisgICAgWE1MX1dBUl9TUEFDRV9WQUxVRSwgLyogMTAyICovCisgICAgWE1MX0VSUl9OT1RfU1RBTkRBTE9ORSwgLyogMTAzICovCisgICAgWE1MX0VSUl9FTlRJVFlfUFJPQ0VTU0lORywgLyogMTA0ICovCisgICAgWE1MX0VSUl9OT1RBVElPTl9QUk9DRVNTSU5HLCAvKiAxMDUgKi8KKyAgICBYTUxfV0FSX05TX0NPTFVNTiwgLyogMTA2ICovCisgICAgWE1MX1dBUl9FTlRJVFlfUkVERUZJTkVELCAvKiAxMDcgKi8KKyAgICBYTUxfRVJSX1VOS05PV05fVkVSU0lPTiwgLyogMTA4ICovCisgICAgWE1MX0VSUl9WRVJTSU9OX01JU01BVENILCAvKiAxMDkgKi8KKyAgICBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UgPSAyMDAsCisgICAgWE1MX05TX0VSUl9VTkRFRklORURfTkFNRVNQQUNFLCAvKiAyMDEgKi8KKyAgICBYTUxfTlNfRVJSX1FOQU1FLCAvKiAyMDIgKi8KKyAgICBYTUxfTlNfRVJSX0FUVFJJQlVURV9SRURFRklORUQsIC8qIDIwMyAqLworICAgIFhNTF9OU19FUlJfRU1QVFksIC8qIDIwNCAqLworICAgIFhNTF9OU19FUlJfQ09MT04sIC8qIDIwNSAqLworICAgIFhNTF9EVERfQVRUUklCVVRFX0RFRkFVTFQgPSA1MDAsCisgICAgWE1MX0RURF9BVFRSSUJVVEVfUkVERUZJTkVELCAvKiA1MDEgKi8KKyAgICBYTUxfRFREX0FUVFJJQlVURV9WQUxVRSwgLyogNTAyICovCisgICAgWE1MX0RURF9DT05URU5UX0VSUk9SLCAvKiA1MDMgKi8KKyAgICBYTUxfRFREX0NPTlRFTlRfTU9ERUwsIC8qIDUwNCAqLworICAgIFhNTF9EVERfQ09OVEVOVF9OT1RfREVURVJNSU5JU1QsIC8qIDUwNSAqLworICAgIFhNTF9EVERfRElGRkVSRU5UX1BSRUZJWCwgLyogNTA2ICovCisgICAgWE1MX0RURF9FTEVNX0RFRkFVTFRfTkFNRVNQQUNFLCAvKiA1MDcgKi8KKyAgICBYTUxfRFREX0VMRU1fTkFNRVNQQUNFLCAvKiA1MDggKi8KKyAgICBYTUxfRFREX0VMRU1fUkVERUZJTkVELCAvKiA1MDkgKi8KKyAgICBYTUxfRFREX0VNUFRZX05PVEFUSU9OLCAvKiA1MTAgKi8KKyAgICBYTUxfRFREX0VOVElUWV9UWVBFLCAvKiA1MTEgKi8KKyAgICBYTUxfRFREX0lEX0ZJWEVELCAvKiA1MTIgKi8KKyAgICBYTUxfRFREX0lEX1JFREVGSU5FRCwgLyogNTEzICovCisgICAgWE1MX0RURF9JRF9TVUJTRVQsIC8qIDUxNCAqLworICAgIFhNTF9EVERfSU5WQUxJRF9DSElMRCwgLyogNTE1ICovCisgICAgWE1MX0RURF9JTlZBTElEX0RFRkFVTFQsIC8qIDUxNiAqLworICAgIFhNTF9EVERfTE9BRF9FUlJPUiwgLyogNTE3ICovCisgICAgWE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURSwgLyogNTE4ICovCisgICAgWE1MX0RURF9NSVhFRF9DT1JSVVBULCAvKiA1MTkgKi8KKyAgICBYTUxfRFREX01VTFRJUExFX0lELCAvKiA1MjAgKi8KKyAgICBYTUxfRFREX05PX0RPQywgLyogNTIxICovCisgICAgWE1MX0RURF9OT19EVEQsIC8qIDUyMiAqLworICAgIFhNTF9EVERfTk9fRUxFTV9OQU1FLCAvKiA1MjMgKi8KKyAgICBYTUxfRFREX05PX1BSRUZJWCwgLyogNTI0ICovCisgICAgWE1MX0RURF9OT19ST09ULCAvKiA1MjUgKi8KKyAgICBYTUxfRFREX05PVEFUSU9OX1JFREVGSU5FRCwgLyogNTI2ICovCisgICAgWE1MX0RURF9OT1RBVElPTl9WQUxVRSwgLyogNTI3ICovCisgICAgWE1MX0RURF9OT1RfRU1QVFksIC8qIDUyOCAqLworICAgIFhNTF9EVERfTk9UX1BDREFUQSwgLyogNTI5ICovCisgICAgWE1MX0RURF9OT1RfU1RBTkRBTE9ORSwgLyogNTMwICovCisgICAgWE1MX0RURF9ST09UX05BTUUsIC8qIDUzMSAqLworICAgIFhNTF9EVERfU1RBTkRBTE9ORV9XSElURV9TUEFDRSwgLyogNTMyICovCisgICAgWE1MX0RURF9VTktOT1dOX0FUVFJJQlVURSwgLyogNTMzICovCisgICAgWE1MX0RURF9VTktOT1dOX0VMRU0sIC8qIDUzNCAqLworICAgIFhNTF9EVERfVU5LTk9XTl9FTlRJVFksIC8qIDUzNSAqLworICAgIFhNTF9EVERfVU5LTk9XTl9JRCwgLyogNTM2ICovCisgICAgWE1MX0RURF9VTktOT1dOX05PVEFUSU9OLCAvKiA1MzcgKi8KKyAgICBYTUxfRFREX1NUQU5EQUxPTkVfREVGQVVMVEVELCAvKiA1MzggKi8KKyAgICBYTUxfRFREX1hNTElEX1ZBTFVFLCAvKiA1MzkgKi8KKyAgICBYTUxfRFREX1hNTElEX1RZUEUsIC8qIDU0MCAqLworICAgIFhNTF9EVERfRFVQX1RPS0VOLCAvKiA1NDEgKi8KKyAgICBYTUxfSFRNTF9TVFJVQ1VSRV9FUlJPUiA9IDgwMCwKKyAgICBYTUxfSFRNTF9VTktOT1dOX1RBRywgLyogODAxICovCisgICAgWE1MX1JOR1BfQU5ZTkFNRV9BVFRSX0FOQ0VTVE9SID0gMTAwMCwKKyAgICBYTUxfUk5HUF9BVFRSX0NPTkZMSUNULCAvKiAxMDAxICovCisgICAgWE1MX1JOR1BfQVRUUklCVVRFX0NISUxEUkVOLCAvKiAxMDAyICovCisgICAgWE1MX1JOR1BfQVRUUklCVVRFX0NPTlRFTlQsIC8qIDEwMDMgKi8KKyAgICBYTUxfUk5HUF9BVFRSSUJVVEVfRU1QVFksIC8qIDEwMDQgKi8KKyAgICBYTUxfUk5HUF9BVFRSSUJVVEVfTk9PUCwgLyogMTAwNSAqLworICAgIFhNTF9STkdQX0NIT0lDRV9DT05URU5ULCAvKiAxMDA2ICovCisgICAgWE1MX1JOR1BfQ0hPSUNFX0VNUFRZLCAvKiAxMDA3ICovCisgICAgWE1MX1JOR1BfQ1JFQVRFX0ZBSUxVUkUsIC8qIDEwMDggKi8KKyAgICBYTUxfUk5HUF9EQVRBX0NPTlRFTlQsIC8qIDEwMDkgKi8KKyAgICBYTUxfUk5HUF9ERUZfQ0hPSUNFX0FORF9JTlRFUkxFQVZFLCAvKiAxMDEwICovCisgICAgWE1MX1JOR1BfREVGSU5FX0NSRUFURV9GQUlMRUQsIC8qIDEwMTEgKi8KKyAgICBYTUxfUk5HUF9ERUZJTkVfRU1QVFksIC8qIDEwMTIgKi8KKyAgICBYTUxfUk5HUF9ERUZJTkVfTUlTU0lORywgLyogMTAxMyAqLworICAgIFhNTF9STkdQX0RFRklORV9OQU1FX01JU1NJTkcsIC8qIDEwMTQgKi8KKyAgICBYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRU1QVFksIC8qIDEwMTUgKi8KKyAgICBYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRVJST1IsIC8qIDEwMTYgKi8KKyAgICBYTUxfUk5HUF9FTEVNRU5UX0VNUFRZLCAvKiAxMDE3ICovCisgICAgWE1MX1JOR1BfRUxFTUVOVF9DT05URU5ULCAvKiAxMDE4ICovCisgICAgWE1MX1JOR1BfRUxFTUVOVF9OQU1FLCAvKiAxMDE5ICovCisgICAgWE1MX1JOR1BfRUxFTUVOVF9OT19DT05URU5ULCAvKiAxMDIwICovCisgICAgWE1MX1JOR1BfRUxFTV9URVhUX0NPTkZMSUNULCAvKiAxMDIxICovCisgICAgWE1MX1JOR1BfRU1QVFksIC8qIDEwMjIgKi8KKyAgICBYTUxfUk5HUF9FTVBUWV9DT05TVFJVQ1QsIC8qIDEwMjMgKi8KKyAgICBYTUxfUk5HUF9FTVBUWV9DT05URU5ULCAvKiAxMDI0ICovCisgICAgWE1MX1JOR1BfRU1QVFlfTk9UX0VNUFRZLCAvKiAxMDI1ICovCisgICAgWE1MX1JOR1BfRVJST1JfVFlQRV9MSUIsIC8qIDEwMjYgKi8KKyAgICBYTUxfUk5HUF9FWENFUFRfRU1QVFksIC8qIDEwMjcgKi8KKyAgICBYTUxfUk5HUF9FWENFUFRfTUlTU0lORywgLyogMTAyOCAqLworICAgIFhNTF9STkdQX0VYQ0VQVF9NVUxUSVBMRSwgLyogMTAyOSAqLworICAgIFhNTF9STkdQX0VYQ0VQVF9OT19DT05URU5ULCAvKiAxMDMwICovCisgICAgWE1MX1JOR1BfRVhURVJOQUxSRUZfRU1UUFksIC8qIDEwMzEgKi8KKyAgICBYTUxfUk5HUF9FWFRFUk5BTF9SRUZfRkFJTFVSRSwgLyogMTAzMiAqLworICAgIFhNTF9STkdQX0VYVEVSTkFMUkVGX1JFQ1VSU0UsIC8qIDEwMzMgKi8KKyAgICBYTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFLCAvKiAxMDM0ICovCisgICAgWE1MX1JOR1BfRk9SRUlHTl9FTEVNRU5ULCAvKiAxMDM1ICovCisgICAgWE1MX1JOR1BfR1JBTU1BUl9DT05URU5ULCAvKiAxMDM2ICovCisgICAgWE1MX1JOR1BfR1JBTU1BUl9FTVBUWSwgLyogMTAzNyAqLworICAgIFhNTF9STkdQX0dSQU1NQVJfTUlTU0lORywgLyogMTAzOCAqLworICAgIFhNTF9STkdQX0dSQU1NQVJfTk9fU1RBUlQsIC8qIDEwMzkgKi8KKyAgICBYTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNULCAvKiAxMDQwICovCisgICAgWE1MX1JOR1BfSFJFRl9FUlJPUiwgLyogMTA0MSAqLworICAgIFhNTF9STkdQX0lOQ0xVREVfRU1QVFksIC8qIDEwNDIgKi8KKyAgICBYTUxfUk5HUF9JTkNMVURFX0ZBSUxVUkUsIC8qIDEwNDMgKi8KKyAgICBYTUxfUk5HUF9JTkNMVURFX1JFQ1VSU0UsIC8qIDEwNDQgKi8KKyAgICBYTUxfUk5HUF9JTlRFUkxFQVZFX0FERCwgLyogMTA0NSAqLworICAgIFhNTF9STkdQX0lOVEVSTEVBVkVfQ1JFQVRFX0ZBSUxFRCwgLyogMTA0NiAqLworICAgIFhNTF9STkdQX0lOVEVSTEVBVkVfRU1QVFksIC8qIDEwNDcgKi8KKyAgICBYTUxfUk5HUF9JTlRFUkxFQVZFX05PX0NPTlRFTlQsIC8qIDEwNDggKi8KKyAgICBYTUxfUk5HUF9JTlZBTElEX0RFRklORV9OQU1FLCAvKiAxMDQ5ICovCisgICAgWE1MX1JOR1BfSU5WQUxJRF9VUkksIC8qIDEwNTAgKi8KKyAgICBYTUxfUk5HUF9JTlZBTElEX1ZBTFVFLCAvKiAxMDUxICovCisgICAgWE1MX1JOR1BfTUlTU0lOR19IUkVGLCAvKiAxMDUyICovCisgICAgWE1MX1JOR1BfTkFNRV9NSVNTSU5HLCAvKiAxMDUzICovCisgICAgWE1MX1JOR1BfTkVFRF9DT01CSU5FLCAvKiAxMDU0ICovCisgICAgWE1MX1JOR1BfTk9UQUxMT1dFRF9OT1RfRU1QVFksIC8qIDEwNTUgKi8KKyAgICBYTUxfUk5HUF9OU05BTUVfQVRUUl9BTkNFU1RPUiwgLyogMTA1NiAqLworICAgIFhNTF9STkdQX05TTkFNRV9OT19OUywgLyogMTA1NyAqLworICAgIFhNTF9STkdQX1BBUkFNX0ZPUkJJRERFTiwgLyogMTA1OCAqLworICAgIFhNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORywgLyogMTA1OSAqLworICAgIFhNTF9STkdQX1BBUkVOVFJFRl9DUkVBVEVfRkFJTEVELCAvKiAxMDYwICovCisgICAgWE1MX1JOR1BfUEFSRU5UUkVGX05BTUVfSU5WQUxJRCwgLyogMTA2MSAqLworICAgIFhNTF9STkdQX1BBUkVOVFJFRl9OT19OQU1FLCAvKiAxMDYyICovCisgICAgWE1MX1JOR1BfUEFSRU5UUkVGX05PX1BBUkVOVCwgLyogMTA2MyAqLworICAgIFhNTF9STkdQX1BBUkVOVFJFRl9OT1RfRU1QVFksIC8qIDEwNjQgKi8KKyAgICBYTUxfUk5HUF9QQVJTRV9FUlJPUiwgLyogMTA2NSAqLworICAgIFhNTF9STkdQX1BBVF9BTllOQU1FX0VYQ0VQVF9BTllOQU1FLCAvKiAxMDY2ICovCisgICAgWE1MX1JOR1BfUEFUX0FUVFJfQVRUUiwgLyogMTA2NyAqLworICAgIFhNTF9STkdQX1BBVF9BVFRSX0VMRU0sIC8qIDEwNjggKi8KKyAgICBYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfQVRUUiwgLyogMTA2OSAqLworICAgIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9FTEVNLCAvKiAxMDcwICovCisgICAgWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0VNUFRZLCAvKiAxMDcxICovCisgICAgWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0dST1VQLCAvKiAxMDcyICovCisgICAgWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0lOVEVSTEVBVkUsIC8qIDEwNzMgKi8KKyAgICBYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfTElTVCwgLyogMTA3NCAqLworICAgIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9PTkVNT1JFLCAvKiAxMDc1ICovCisgICAgWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX1JFRiwgLyogMTA3NiAqLworICAgIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhULCAvKiAxMDc3ICovCisgICAgWE1MX1JOR1BfUEFUX0xJU1RfQVRUUiwgLyogMTA3OCAqLworICAgIFhNTF9STkdQX1BBVF9MSVNUX0VMRU0sIC8qIDEwNzkgKi8KKyAgICBYTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFLCAvKiAxMDgwICovCisgICAgWE1MX1JOR1BfUEFUX0xJU1RfTElTVCwgLyogMTA4MSAqLworICAgIFhNTF9STkdQX1BBVF9MSVNUX1JFRiwgLyogMTA4MiAqLworICAgIFhNTF9STkdQX1BBVF9MSVNUX1RFWFQsIC8qIDEwODMgKi8KKyAgICBYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9BTllOQU1FLCAvKiAxMDg0ICovCisgICAgWE1MX1JOR1BfUEFUX05TTkFNRV9FWENFUFRfTlNOQU1FLCAvKiAxMDg1ICovCisgICAgWE1MX1JOR1BfUEFUX09ORU1PUkVfR1JPVVBfQVRUUiwgLyogMTA4NiAqLworICAgIFhNTF9STkdQX1BBVF9PTkVNT1JFX0lOVEVSTEVBVkVfQVRUUiwgLyogMTA4NyAqLworICAgIFhNTF9STkdQX1BBVF9TVEFSVF9BVFRSLCAvKiAxMDg4ICovCisgICAgWE1MX1JOR1BfUEFUX1NUQVJUX0RBVEEsIC8qIDEwODkgKi8KKyAgICBYTUxfUk5HUF9QQVRfU1RBUlRfRU1QVFksIC8qIDEwOTAgKi8KKyAgICBYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAsIC8qIDEwOTEgKi8KKyAgICBYTUxfUk5HUF9QQVRfU1RBUlRfSU5URVJMRUFWRSwgLyogMTA5MiAqLworICAgIFhNTF9STkdQX1BBVF9TVEFSVF9MSVNULCAvKiAxMDkzICovCisgICAgWE1MX1JOR1BfUEFUX1NUQVJUX09ORU1PUkUsIC8qIDEwOTQgKi8KKyAgICBYTUxfUk5HUF9QQVRfU1RBUlRfVEVYVCwgLyogMTA5NSAqLworICAgIFhNTF9STkdQX1BBVF9TVEFSVF9WQUxVRSwgLyogMTA5NiAqLworICAgIFhNTF9STkdQX1BSRUZJWF9VTkRFRklORUQsIC8qIDEwOTcgKi8KKyAgICBYTUxfUk5HUF9SRUZfQ1JFQVRFX0ZBSUxFRCwgLyogMTA5OCAqLworICAgIFhNTF9STkdQX1JFRl9DWUNMRSwgLyogMTA5OSAqLworICAgIFhNTF9STkdQX1JFRl9OQU1FX0lOVkFMSUQsIC8qIDExMDAgKi8KKyAgICBYTUxfUk5HUF9SRUZfTk9fREVGLCAvKiAxMTAxICovCisgICAgWE1MX1JOR1BfUkVGX05PX05BTUUsIC8qIDExMDIgKi8KKyAgICBYTUxfUk5HUF9SRUZfTk9UX0VNUFRZLCAvKiAxMTAzICovCisgICAgWE1MX1JOR1BfU1RBUlRfQ0hPSUNFX0FORF9JTlRFUkxFQVZFLCAvKiAxMTA0ICovCisgICAgWE1MX1JOR1BfU1RBUlRfQ09OVEVOVCwgLyogMTEwNSAqLworICAgIFhNTF9STkdQX1NUQVJUX0VNUFRZLCAvKiAxMTA2ICovCisgICAgWE1MX1JOR1BfU1RBUlRfTUlTU0lORywgLyogMTEwNyAqLworICAgIFhNTF9STkdQX1RFWFRfRVhQRUNURUQsIC8qIDExMDggKi8KKyAgICBYTUxfUk5HUF9URVhUX0hBU19DSElMRCwgLyogMTEwOSAqLworICAgIFhNTF9STkdQX1RZUEVfTUlTU0lORywgLyogMTExMCAqLworICAgIFhNTF9STkdQX1RZUEVfTk9UX0ZPVU5ELCAvKiAxMTExICovCisgICAgWE1MX1JOR1BfVFlQRV9WQUxVRSwgLyogMTExMiAqLworICAgIFhNTF9STkdQX1VOS05PV05fQVRUUklCVVRFLCAvKiAxMTEzICovCisgICAgWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FLCAvKiAxMTE0ICovCisgICAgWE1MX1JOR1BfVU5LTk9XTl9DT05TVFJVQ1QsIC8qIDExMTUgKi8KKyAgICBYTUxfUk5HUF9VTktOT1dOX1RZUEVfTElCLCAvKiAxMTE2ICovCisgICAgWE1MX1JOR1BfVVJJX0ZSQUdNRU5ULCAvKiAxMTE3ICovCisgICAgWE1MX1JOR1BfVVJJX05PVF9BQlNPTFVURSwgLyogMTExOCAqLworICAgIFhNTF9STkdQX1ZBTFVFX0VNUFRZLCAvKiAxMTE5ICovCisgICAgWE1MX1JOR1BfVkFMVUVfTk9fQ09OVEVOVCwgLyogMTEyMCAqLworICAgIFhNTF9STkdQX1hNTE5TX05BTUUsIC8qIDExMjEgKi8KKyAgICBYTUxfUk5HUF9YTUxfTlMsIC8qIDExMjIgKi8KKyAgICBYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSyA9IDEyMDAsCisgICAgWE1MX1hQQVRIX05VTUJFUl9FUlJPUiwgLyogMTIwMSAqLworICAgIFhNTF9YUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1IsIC8qIDEyMDIgKi8KKyAgICBYTUxfWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiwgLyogMTIwMyAqLworICAgIFhNTF9YUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IsIC8qIDEyMDQgKi8KKyAgICBYTUxfWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IsIC8qIDEyMDUgKi8KKyAgICBYTUxfWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IsIC8qIDEyMDYgKi8KKyAgICBYTUxfWFBBVEhfRVhQUl9FUlJPUiwgLyogMTIwNyAqLworICAgIFhNTF9YUEFUSF9VTkNMT1NFRF9FUlJPUiwgLyogMTIwOCAqLworICAgIFhNTF9YUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IsIC8qIDEyMDkgKi8KKyAgICBYTUxfWFBBVEhfSU5WQUxJRF9PUEVSQU5ELCAvKiAxMjEwICovCisgICAgWE1MX1hQQVRIX0lOVkFMSURfVFlQRSwgLyogMTIxMSAqLworICAgIFhNTF9YUEFUSF9JTlZBTElEX0FSSVRZLCAvKiAxMjEyICovCisgICAgWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9TSVpFLCAvKiAxMjEzICovCisgICAgWE1MX1hQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTiwgLyogMTIxNCAqLworICAgIFhNTF9YUEFUSF9NRU1PUllfRVJST1IsIC8qIDEyMTUgKi8KKyAgICBYTUxfWFBUUl9TWU5UQVhfRVJST1IsIC8qIDEyMTYgKi8KKyAgICBYTUxfWFBUUl9SRVNPVVJDRV9FUlJPUiwgLyogMTIxNyAqLworICAgIFhNTF9YUFRSX1NVQl9SRVNPVVJDRV9FUlJPUiwgLyogMTIxOCAqLworICAgIFhNTF9YUEFUSF9VTkRFRl9QUkVGSVhfRVJST1IsIC8qIDEyMTkgKi8KKyAgICBYTUxfWFBBVEhfRU5DT0RJTkdfRVJST1IsIC8qIDEyMjAgKi8KKyAgICBYTUxfWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SLCAvKiAxMjIxICovCisgICAgWE1MX1RSRUVfSU5WQUxJRF9IRVggPSAxMzAwLAorICAgIFhNTF9UUkVFX0lOVkFMSURfREVDLCAvKiAxMzAxICovCisgICAgWE1MX1RSRUVfVU5URVJNSU5BVEVEX0VOVElUWSwgLyogMTMwMiAqLworICAgIFhNTF9UUkVFX05PVF9VVEY4LCAvKiAxMzAzICovCisgICAgWE1MX1NBVkVfTk9UX1VURjggPSAxNDAwLAorICAgIFhNTF9TQVZFX0NIQVJfSU5WQUxJRCwgLyogMTQwMSAqLworICAgIFhNTF9TQVZFX05PX0RPQ1RZUEUsIC8qIDE0MDIgKi8KKyAgICBYTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HLCAvKiAxNDAzICovCisgICAgWE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SID0gMTQ1MCwKKyAgICBYTUxfSU9fVU5LTk9XTiA9IDE1MDAsCisgICAgWE1MX0lPX0VBQ0NFUywgLyogMTUwMSAqLworICAgIFhNTF9JT19FQUdBSU4sIC8qIDE1MDIgKi8KKyAgICBYTUxfSU9fRUJBREYsIC8qIDE1MDMgKi8KKyAgICBYTUxfSU9fRUJBRE1TRywgLyogMTUwNCAqLworICAgIFhNTF9JT19FQlVTWSwgLyogMTUwNSAqLworICAgIFhNTF9JT19FQ0FOQ0VMRUQsIC8qIDE1MDYgKi8KKyAgICBYTUxfSU9fRUNISUxELCAvKiAxNTA3ICovCisgICAgWE1MX0lPX0VERUFETEssIC8qIDE1MDggKi8KKyAgICBYTUxfSU9fRURPTSwgLyogMTUwOSAqLworICAgIFhNTF9JT19FRVhJU1QsIC8qIDE1MTAgKi8KKyAgICBYTUxfSU9fRUZBVUxULCAvKiAxNTExICovCisgICAgWE1MX0lPX0VGQklHLCAvKiAxNTEyICovCisgICAgWE1MX0lPX0VJTlBST0dSRVNTLCAvKiAxNTEzICovCisgICAgWE1MX0lPX0VJTlRSLCAvKiAxNTE0ICovCisgICAgWE1MX0lPX0VJTlZBTCwgLyogMTUxNSAqLworICAgIFhNTF9JT19FSU8sIC8qIDE1MTYgKi8KKyAgICBYTUxfSU9fRUlTRElSLCAvKiAxNTE3ICovCisgICAgWE1MX0lPX0VNRklMRSwgLyogMTUxOCAqLworICAgIFhNTF9JT19FTUxJTkssIC8qIDE1MTkgKi8KKyAgICBYTUxfSU9fRU1TR1NJWkUsIC8qIDE1MjAgKi8KKyAgICBYTUxfSU9fRU5BTUVUT09MT05HLCAvKiAxNTIxICovCisgICAgWE1MX0lPX0VORklMRSwgLyogMTUyMiAqLworICAgIFhNTF9JT19FTk9ERVYsIC8qIDE1MjMgKi8KKyAgICBYTUxfSU9fRU5PRU5ULCAvKiAxNTI0ICovCisgICAgWE1MX0lPX0VOT0VYRUMsIC8qIDE1MjUgKi8KKyAgICBYTUxfSU9fRU5PTENLLCAvKiAxNTI2ICovCisgICAgWE1MX0lPX0VOT01FTSwgLyogMTUyNyAqLworICAgIFhNTF9JT19FTk9TUEMsIC8qIDE1MjggKi8KKyAgICBYTUxfSU9fRU5PU1lTLCAvKiAxNTI5ICovCisgICAgWE1MX0lPX0VOT1RESVIsIC8qIDE1MzAgKi8KKyAgICBYTUxfSU9fRU5PVEVNUFRZLCAvKiAxNTMxICovCisgICAgWE1MX0lPX0VOT1RTVVAsIC8qIDE1MzIgKi8KKyAgICBYTUxfSU9fRU5PVFRZLCAvKiAxNTMzICovCisgICAgWE1MX0lPX0VOWElPLCAvKiAxNTM0ICovCisgICAgWE1MX0lPX0VQRVJNLCAvKiAxNTM1ICovCisgICAgWE1MX0lPX0VQSVBFLCAvKiAxNTM2ICovCisgICAgWE1MX0lPX0VSQU5HRSwgLyogMTUzNyAqLworICAgIFhNTF9JT19FUk9GUywgLyogMTUzOCAqLworICAgIFhNTF9JT19FU1BJUEUsIC8qIDE1MzkgKi8KKyAgICBYTUxfSU9fRVNSQ0gsIC8qIDE1NDAgKi8KKyAgICBYTUxfSU9fRVRJTUVET1VULCAvKiAxNTQxICovCisgICAgWE1MX0lPX0VYREVWLCAvKiAxNTQyICovCisgICAgWE1MX0lPX05FVFdPUktfQVRURU1QVCwgLyogMTU0MyAqLworICAgIFhNTF9JT19FTkNPREVSLCAvKiAxNTQ0ICovCisgICAgWE1MX0lPX0ZMVVNILCAvKiAxNTQ1ICovCisgICAgWE1MX0lPX1dSSVRFLCAvKiAxNTQ2ICovCisgICAgWE1MX0lPX05PX0lOUFVULCAvKiAxNTQ3ICovCisgICAgWE1MX0lPX0JVRkZFUl9GVUxMLCAvKiAxNTQ4ICovCisgICAgWE1MX0lPX0xPQURfRVJST1IsIC8qIDE1NDkgKi8KKyAgICBYTUxfSU9fRU5PVFNPQ0ssIC8qIDE1NTAgKi8KKyAgICBYTUxfSU9fRUlTQ09OTiwgLyogMTU1MSAqLworICAgIFhNTF9JT19FQ09OTlJFRlVTRUQsIC8qIDE1NTIgKi8KKyAgICBYTUxfSU9fRU5FVFVOUkVBQ0gsIC8qIDE1NTMgKi8KKyAgICBYTUxfSU9fRUFERFJJTlVTRSwgLyogMTU1NCAqLworICAgIFhNTF9JT19FQUxSRUFEWSwgLyogMTU1NSAqLworICAgIFhNTF9JT19FQUZOT1NVUFBPUlQsIC8qIDE1NTYgKi8KKyAgICBYTUxfWElOQ0xVREVfUkVDVVJTSU9OPTE2MDAsCisgICAgWE1MX1hJTkNMVURFX1BBUlNFX1ZBTFVFLCAvKiAxNjAxICovCisgICAgWE1MX1hJTkNMVURFX0VOVElUWV9ERUZfTUlTTUFUQ0gsIC8qIDE2MDIgKi8KKyAgICBYTUxfWElOQ0xVREVfTk9fSFJFRiwgLyogMTYwMyAqLworICAgIFhNTF9YSU5DTFVERV9OT19GQUxMQkFDSywgLyogMTYwNCAqLworICAgIFhNTF9YSU5DTFVERV9IUkVGX1VSSSwgLyogMTYwNSAqLworICAgIFhNTF9YSU5DTFVERV9URVhUX0ZSQUdNRU5ULCAvKiAxNjA2ICovCisgICAgWE1MX1hJTkNMVURFX1RFWFRfRE9DVU1FTlQsIC8qIDE2MDcgKi8KKyAgICBYTUxfWElOQ0xVREVfSU5WQUxJRF9DSEFSLCAvKiAxNjA4ICovCisgICAgWE1MX1hJTkNMVURFX0JVSUxEX0ZBSUxFRCwgLyogMTYwOSAqLworICAgIFhNTF9YSU5DTFVERV9VTktOT1dOX0VOQ09ESU5HLCAvKiAxNjEwICovCisgICAgWE1MX1hJTkNMVURFX01VTFRJUExFX1JPT1QsIC8qIDE2MTEgKi8KKyAgICBYTUxfWElOQ0xVREVfWFBUUl9GQUlMRUQsIC8qIDE2MTIgKi8KKyAgICBYTUxfWElOQ0xVREVfWFBUUl9SRVNVTFQsIC8qIDE2MTMgKi8KKyAgICBYTUxfWElOQ0xVREVfSU5DTFVERV9JTl9JTkNMVURFLCAvKiAxNjE0ICovCisgICAgWE1MX1hJTkNMVURFX0ZBTExCQUNLU19JTl9JTkNMVURFLCAvKiAxNjE1ICovCisgICAgWE1MX1hJTkNMVURFX0ZBTExCQUNLX05PVF9JTl9JTkNMVURFLCAvKiAxNjE2ICovCisgICAgWE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlMsIC8qIDE2MTcgKi8KKyAgICBYTUxfWElOQ0xVREVfRlJBR01FTlRfSUQsIC8qIDE2MTggKi8KKyAgICBYTUxfQ0FUQUxPR19NSVNTSU5HX0FUVFIgPSAxNjUwLAorICAgIFhNTF9DQVRBTE9HX0VOVFJZX0JST0tFTiwgLyogMTY1MSAqLworICAgIFhNTF9DQVRBTE9HX1BSRUZFUl9WQUxVRSwgLyogMTY1MiAqLworICAgIFhNTF9DQVRBTE9HX05PVF9DQVRBTE9HLCAvKiAxNjUzICovCisgICAgWE1MX0NBVEFMT0dfUkVDVVJTSU9OLCAvKiAxNjU0ICovCisgICAgWE1MX1NDSEVNQVBfUFJFRklYX1VOREVGSU5FRCA9IDE3MDAsCisgICAgWE1MX1NDSEVNQVBfQVRUUkZPUk1ERUZBVUxUX1ZBTFVFLCAvKiAxNzAxICovCisgICAgWE1MX1NDSEVNQVBfQVRUUkdSUF9OT05BTUVfTk9SRUYsIC8qIDE3MDIgKi8KKyAgICBYTUxfU0NIRU1BUF9BVFRSX05PTkFNRV9OT1JFRiwgLyogMTcwMyAqLworICAgIFhNTF9TQ0hFTUFQX0NPTVBMRVhUWVBFX05PTkFNRV9OT1JFRiwgLyogMTcwNCAqLworICAgIFhNTF9TQ0hFTUFQX0VMRU1GT1JNREVGQVVMVF9WQUxVRSwgLyogMTcwNSAqLworICAgIFhNTF9TQ0hFTUFQX0VMRU1fTk9OQU1FX05PUkVGLCAvKiAxNzA2ICovCisgICAgWE1MX1NDSEVNQVBfRVhURU5TSU9OX05PX0JBU0UsIC8qIDE3MDcgKi8KKyAgICBYTUxfU0NIRU1BUF9GQUNFVF9OT19WQUxVRSwgLyogMTcwOCAqLworICAgIFhNTF9TQ0hFTUFQX0ZBSUxFRF9CVUlMRF9JTVBPUlQsIC8qIDE3MDkgKi8KKyAgICBYTUxfU0NIRU1BUF9HUk9VUF9OT05BTUVfTk9SRUYsIC8qIDE3MTAgKi8KKyAgICBYTUxfU0NIRU1BUF9JTVBPUlRfTkFNRVNQQUNFX05PVF9VUkksIC8qIDE3MTEgKi8KKyAgICBYTUxfU0NIRU1BUF9JTVBPUlRfUkVERUZJTkVfTlNOQU1FLCAvKiAxNzEyICovCisgICAgWE1MX1NDSEVNQVBfSU1QT1JUX1NDSEVNQV9OT1RfVVJJLCAvKiAxNzEzICovCisgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9CT09MRUFOLCAvKiAxNzE0ICovCisgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9FTlVNLCAvKiAxNzE1ICovCisgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVCwgLyogMTcxNiAqLworICAgIFhNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUUsIC8qIDE3MTcgKi8KKyAgICBYTUxfU0NIRU1BUF9JTlZBTElEX01BWE9DQ1VSUywgLyogMTcxOCAqLworICAgIFhNTF9TQ0hFTUFQX0lOVkFMSURfTUlOT0NDVVJTLCAvKiAxNzE5ICovCisgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9SRUZfQU5EX1NVQlRZUEUsIC8qIDE3MjAgKi8KKyAgICBYTUxfU0NIRU1BUF9JTlZBTElEX1dISVRFX1NQQUNFLCAvKiAxNzIxICovCisgICAgWE1MX1NDSEVNQVBfTk9BVFRSX05PUkVGLCAvKiAxNzIyICovCisgICAgWE1MX1NDSEVNQVBfTk9UQVRJT05fTk9fTkFNRSwgLyogMTcyMyAqLworICAgIFhNTF9TQ0hFTUFQX05PVFlQRV9OT1JFRiwgLyogMTcyNCAqLworICAgIFhNTF9TQ0hFTUFQX1JFRl9BTkRfU1VCVFlQRSwgLyogMTcyNSAqLworICAgIFhNTF9TQ0hFTUFQX1JFU1RSSUNUSU9OX05PTkFNRV9OT1JFRiwgLyogMTcyNiAqLworICAgIFhNTF9TQ0hFTUFQX1NJTVBMRVRZUEVfTk9OQU1FLCAvKiAxNzI3ICovCisgICAgWE1MX1NDSEVNQVBfVFlQRV9BTkRfU1VCVFlQRSwgLyogMTcyOCAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fQUxMX0NISUxELCAvKiAxNzI5ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9BTllBVFRSSUJVVEVfQ0hJTEQsIC8qIDE3MzAgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJfQ0hJTEQsIC8qIDE3MzEgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJHUlBfQ0hJTEQsIC8qIDE3MzIgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX0FUVFJJQlVURV9HUk9VUCwgLyogMTczMyAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fQkFTRV9UWVBFLCAvKiAxNzM0ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9DSE9JQ0VfQ0hJTEQsIC8qIDE3MzUgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX0NPTVBMRVhDT05URU5UX0NISUxELCAvKiAxNzM2ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9DT01QTEVYVFlQRV9DSElMRCwgLyogMTczNyAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fRUxFTV9DSElMRCwgLyogMTczOCAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fRVhURU5TSU9OX0NISUxELCAvKiAxNzM5ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9GQUNFVF9DSElMRCwgLyogMTc0MCAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fRkFDRVRfVFlQRSwgLyogMTc0MSAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fR1JPVVBfQ0hJTEQsIC8qIDE3NDIgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX0lNUE9SVF9DSElMRCwgLyogMTc0MyAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fTElTVF9DSElMRCwgLyogMTc0NCAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fTk9UQVRJT05fQ0hJTEQsIC8qIDE3NDUgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX1BST0NFU1NDT05URU5UX0NISUxELCAvKiAxNzQ2ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9SRUYsIC8qIDE3NDcgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX1JFU1RSSUNUSU9OX0NISUxELCAvKiAxNzQ4ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9TQ0hFTUFTX0NISUxELCAvKiAxNzQ5ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9TRVFVRU5DRV9DSElMRCwgLyogMTc1MCAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFQ09OVEVOVF9DSElMRCwgLyogMTc1MSAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fU0lNUExFVFlQRV9DSElMRCwgLyogMTc1MiAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fVFlQRSwgLyogMTc1MyAqLworICAgIFhNTF9TQ0hFTUFQX1VOS05PV05fVU5JT05fQ0hJTEQsIC8qIDE3NTQgKi8KKyAgICBYTUxfU0NIRU1BUF9FTEVNX0RFRkFVTFRfRklYRUQsIC8qIDE3NTUgKi8KKyAgICBYTUxfU0NIRU1BUF9SRUdFWFBfSU5WQUxJRCwgLyogMTc1NiAqLworICAgIFhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FELCAvKiAxNzU3ICovCisgICAgWE1MX1NDSEVNQVBfTk9USElOR19UT19QQVJTRSwgLyogMTc1OCAqLworICAgIFhNTF9TQ0hFTUFQX05PUk9PVCwgLyogMTc1OSAqLworICAgIFhNTF9TQ0hFTUFQX1JFREVGSU5FRF9HUk9VUCwgLyogMTc2MCAqLworICAgIFhNTF9TQ0hFTUFQX1JFREVGSU5FRF9UWVBFLCAvKiAxNzYxICovCisgICAgWE1MX1NDSEVNQVBfUkVERUZJTkVEX0VMRU1FTlQsIC8qIDE3NjIgKi8KKyAgICBYTUxfU0NIRU1BUF9SRURFRklORURfQVRUUkdST1VQLCAvKiAxNzYzICovCisgICAgWE1MX1NDSEVNQVBfUkVERUZJTkVEX0FUVFIsIC8qIDE3NjQgKi8KKyAgICBYTUxfU0NIRU1BUF9SRURFRklORURfTk9UQVRJT04sIC8qIDE3NjUgKi8KKyAgICBYTUxfU0NIRU1BUF9GQUlMRURfUEFSU0UsIC8qIDE3NjYgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX1BSRUZJWCwgLyogMTc2NyAqLworICAgIFhNTF9TQ0hFTUFQX0RFRl9BTkRfUFJFRklYLCAvKiAxNzY4ICovCisgICAgWE1MX1NDSEVNQVBfVU5LTk9XTl9JTkNMVURFX0NISUxELCAvKiAxNzY5ICovCisgICAgWE1MX1NDSEVNQVBfSU5DTFVERV9TQ0hFTUFfTk9UX1VSSSwgLyogMTc3MCAqLworICAgIFhNTF9TQ0hFTUFQX0lOQ0xVREVfU0NIRU1BX05PX1VSSSwgLyogMTc3MSAqLworICAgIFhNTF9TQ0hFTUFQX05PVF9TQ0hFTUEsIC8qIDE3NzIgKi8KKyAgICBYTUxfU0NIRU1BUF9VTktOT1dOX01FTUJFUl9UWVBFLCAvKiAxNzczICovCisgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX1VTRSwgLyogMTc3NCAqLworICAgIFhNTF9TQ0hFTUFQX1JFQ1VSU0lWRSwgLyogMTc3NSAqLworICAgIFhNTF9TQ0hFTUFQX1NVUEVSTlVNRVJPVVNfTElTVF9JVEVNX1RZUEUsIC8qIDE3NzYgKi8KKyAgICBYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfQ09NQklOQVRJT04sIC8qIDE3NzcgKi8KKyAgICBYTUxfU0NIRU1BUF9JTlZBTElEX0FUVFJfSU5MSU5FX0NPTUJJTkFUSU9OLCAvKiAxNzc4ICovCisgICAgWE1MX1NDSEVNQVBfTUlTU0lOR19TSU1QTEVUWVBFX0NISUxELCAvKiAxNzc5ICovCisgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9BVFRSX05BTUUsIC8qIDE3ODAgKi8KKyAgICBYTUxfU0NIRU1BUF9SRUZfQU5EX0NPTlRFTlQsIC8qIDE3ODEgKi8KKyAgICBYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzEsIC8qIDE3ODIgKi8KKyAgICBYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzIsIC8qIDE3ODMgKi8KKyAgICBYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzMsIC8qIDE3ODQgKi8KKyAgICBYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzQsIC8qIDE3ODUgKi8KKyAgICBYTUxfU0NIRU1BUF9DVF9QUk9QU19DT1JSRUNUXzUsIC8qIDE3ODYgKi8KKyAgICBYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzEsIC8qIDE3ODcgKi8KKyAgICBYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzJfMV8xLCAvKiAxNzg4ICovCisgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMiwgLyogMTc4OSAqLworICAgIFhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8yLCAvKiAxNzkwICovCisgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8zLCAvKiAxNzkxICovCisgICAgWE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVIsIC8qIDE3OTIgKi8KKyAgICBYTUxfU0NIRU1BUF9JTlRFUlNFQ1RJT05fTk9UX0VYUFJFU1NJQkxFLCAvKiAxNzkzICovCisgICAgWE1MX1NDSEVNQVBfVU5JT05fTk9UX0VYUFJFU1NJQkxFLCAvKiAxNzk0ICovCisgICAgWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8zXzEsIC8qIDE3OTUgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzNfMiwgLyogMTc5NiAqLworICAgIFhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fNF8xLCAvKiAxNzk3ICovCisgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzIsIC8qIDE3OTggKi8KKyAgICBYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMywgLyogMTc5OSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMywgLyogMTgwMCAqLworICAgIFhNTF9TQ0hFTUFWX05PUk9PVCA9IDE4MDEsCisgICAgWE1MX1NDSEVNQVZfVU5ERUNMQVJFREVMRU0sIC8qIDE4MDIgKi8KKyAgICBYTUxfU0NIRU1BVl9OT1RUT1BMRVZFTCwgLyogMTgwMyAqLworICAgIFhNTF9TQ0hFTUFWX01JU1NJTkcsIC8qIDE4MDQgKi8KKyAgICBYTUxfU0NIRU1BVl9XUk9OR0VMRU0sIC8qIDE4MDUgKi8KKyAgICBYTUxfU0NIRU1BVl9OT1RZUEUsIC8qIDE4MDYgKi8KKyAgICBYTUxfU0NIRU1BVl9OT1JPTExCQUNLLCAvKiAxODA3ICovCisgICAgWE1MX1NDSEVNQVZfSVNBQlNUUkFDVCwgLyogMTgwOCAqLworICAgIFhNTF9TQ0hFTUFWX05PVEVNUFRZLCAvKiAxODA5ICovCisgICAgWE1MX1NDSEVNQVZfRUxFTUNPTlQsIC8qIDE4MTAgKi8KKyAgICBYTUxfU0NIRU1BVl9IQVZFREVGQVVMVCwgLyogMTgxMSAqLworICAgIFhNTF9TQ0hFTUFWX05PVE5JTExBQkxFLCAvKiAxODEyICovCisgICAgWE1MX1NDSEVNQVZfRVhUUkFDT05URU5ULCAvKiAxODEzICovCisgICAgWE1MX1NDSEVNQVZfSU5WQUxJREFUVFIsIC8qIDE4MTQgKi8KKyAgICBYTUxfU0NIRU1BVl9JTlZBTElERUxFTSwgLyogMTgxNSAqLworICAgIFhNTF9TQ0hFTUFWX05PVERFVEVSTUlOSVNULCAvKiAxODE2ICovCisgICAgWE1MX1NDSEVNQVZfQ09OU1RSVUNULCAvKiAxODE3ICovCisgICAgWE1MX1NDSEVNQVZfSU5URVJOQUwsIC8qIDE4MTggKi8KKyAgICBYTUxfU0NIRU1BVl9OT1RTSU1QTEUsIC8qIDE4MTkgKi8KKyAgICBYTUxfU0NIRU1BVl9BVFRSVU5LTk9XTiwgLyogMTgyMCAqLworICAgIFhNTF9TQ0hFTUFWX0FUVFJJTlZBTElELCAvKiAxODIxICovCisgICAgWE1MX1NDSEVNQVZfVkFMVUUsIC8qIDE4MjIgKi8KKyAgICBYTUxfU0NIRU1BVl9GQUNFVCwgLyogMTgyMyAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSwgLyogMTgyNCAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMiwgLyogMTgyNSAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMywgLyogMTgyNiAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xLCAvKiAxODI3ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfM18xXzIsIC8qIDE4MjggKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfRkFDRVRfVkFMSUQsIC8qIDE4MjkgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfTEVOR1RIX1ZBTElELCAvKiAxODMwICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRCwgLyogMTgzMSAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19NQVhMRU5HVEhfVkFMSUQsIC8qIDE4MzIgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfTUlOSU5DTFVTSVZFX1ZBTElELCAvKiAxODMzICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX01BWElOQ0xVU0lWRV9WQUxJRCwgLyogMTgzNCAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19NSU5FWENMVVNJVkVfVkFMSUQsIC8qIDE4MzUgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfTUFYRVhDTFVTSVZFX1ZBTElELCAvKiAxODM2ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX1RPVEFMRElHSVRTX1ZBTElELCAvKiAxODM3ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0ZSQUNUSU9ORElHSVRTX1ZBTElELCAvKiAxODM4ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX1BBVFRFUk5fVkFMSUQsIC8qIDE4MzkgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfRU5VTUVSQVRJT05fVkFMSUQsIC8qIDE4NDAgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMSwgLyogMTg0MSAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8yLCAvKiAxODQyICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzMsIC8qIDE4NDMgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfNCwgLyogMTg0NCAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19FTFRfMSwgLyogMTg0NSAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19FTFRfMiwgLyogMTg0NiAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19FTFRfM18xLCAvKiAxODQ3ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzJfMSwgLyogMTg0OCAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzIsIC8qIDE4NDkgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfRUxUXzRfMSwgLyogMTg1MCAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19FTFRfNF8yLCAvKiAxODUxICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzMsIC8qIDE4NTIgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMV8xLCAvKiAxODUzICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzFfMiwgLyogMTg1NCAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzEsIC8qIDE4NTUgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzEsIC8qIDE4NTYgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMSwgLyogMTg1NyAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19FTFRfNV8yXzJfMl8yLCAvKiAxODU4ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0VMVF82LCAvKiAxODU5ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0VMVF83LCAvKiAxODYwICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8xLCAvKiAxODYxICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8yLCAvKiAxODYyICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV8zLCAvKiAxODYzICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0FUVFJJQlVURV80LCAvKiAxODY0ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzEsIC8qIDE4NjUgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzNfMl8xLCAvKiAxODY2ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzJfMiwgLyogMTg2NyAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNCwgLyogMTg2OCAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfNV8xLCAvKiAxODY5ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV81XzIsIC8qIDE4NzAgKi8KKyAgICBYTUxfU0NIRU1BVl9FTEVNRU5UX0NPTlRFTlQsIC8qIDE4NzEgKi8KKyAgICBYTUxfU0NIRU1BVl9ET0NVTUVOVF9FTEVNRU5UX01JU1NJTkcsIC8qIDE4NzIgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzEsIC8qIDE4NzMgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfQVUsIC8qIDE4NzQgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfVFlQRV8xLCAvKiAxODc1ICovCisgICAgWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMiwgLyogMTg3NiAqLworICAgIFhNTF9TQ0hFTUFWX0NWQ19JREMsIC8qIDE4NzcgKi8KKyAgICBYTUxfU0NIRU1BVl9DVkNfV0lMRENBUkQsIC8qIDE4NzggKi8KKyAgICBYTUxfU0NIRU1BVl9NSVNDLCAvKiAxODc5ICovCisgICAgWE1MX1hQVFJfVU5LTk9XTl9TQ0hFTUUgPSAxOTAwLAorICAgIFhNTF9YUFRSX0NISUxEU0VRX1NUQVJULCAvKiAxOTAxICovCisgICAgWE1MX1hQVFJfRVZBTF9GQUlMRUQsIC8qIDE5MDIgKi8KKyAgICBYTUxfWFBUUl9FWFRSQV9PQkpFQ1RTLCAvKiAxOTAzICovCisgICAgWE1MX0MxNE5fQ1JFQVRFX0NUWFQgPSAxOTUwLAorICAgIFhNTF9DMTROX1JFUVVJUkVTX1VURjgsIC8qIDE5NTEgKi8KKyAgICBYTUxfQzE0Tl9DUkVBVEVfU1RBQ0ssIC8qIDE5NTIgKi8KKyAgICBYTUxfQzE0Tl9JTlZBTElEX05PREUsIC8qIDE5NTMgKi8KKyAgICBYTUxfQzE0Tl9VTktOT1dfTk9ERSwgLyogMTk1NCAqLworICAgIFhNTF9DMTROX1JFTEFUSVZFX05BTUVTUEFDRSwgLyogMTk1NSAqLworICAgIFhNTF9GVFBfUEFTVl9BTlNXRVIgPSAyMDAwLAorICAgIFhNTF9GVFBfRVBTVl9BTlNXRVIsIC8qIDIwMDEgKi8KKyAgICBYTUxfRlRQX0FDQ05ULCAvKiAyMDAyICovCisgICAgWE1MX0ZUUF9VUkxfU1lOVEFYLCAvKiAyMDAzICovCisgICAgWE1MX0hUVFBfVVJMX1NZTlRBWCA9IDIwMjAsCisgICAgWE1MX0hUVFBfVVNFX0lQLCAvKiAyMDIxICovCisgICAgWE1MX0hUVFBfVU5LTk9XTl9IT1NULCAvKiAyMDIyICovCisgICAgWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzEgPSAzMDAwLAorICAgIFhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV8yLCAvKiAzMDAxICovCisgICAgWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzMsIC8qIDMwMDIgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfNCwgLyogMzAwMyAqLworICAgIFhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFLCAvKiAzMDA0ICovCisgICAgWE1MX1NDSEVNQVBfU1JDX1JFU1RSSUNUSU9OX0JBU0VfT1JfU0lNUExFVFlQRSwgLyogMzAwNSAqLworICAgIFhNTF9TQ0hFTUFQX1NSQ19MSVNUX0lURU1UWVBFX09SX1NJTVBMRVRZUEUsIC8qIDMwMDYgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfVU5JT05fTUVNQkVSVFlQRVNfT1JfU0lNUExFVFlQRVMsIC8qIDMwMDcgKi8KKyAgICBYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzEsIC8qIDMwMDggKi8KKyAgICBYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzIsIC8qIDMwMDkgKi8KKyAgICBYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzMsIC8qIDMwMTAgKi8KKyAgICBYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMSwgLyogMzAxMSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8yLCAvKiAzMDEyICovCisgICAgWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzNfMSwgLyogMzAxMyAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzIsIC8qIDMwMTQgKi8KKyAgICBYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfMSwgLyogMzAxNSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMSwgLyogMzAxNiAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMiwgLyogMzAxNyAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMSwgLyogMzAxOCAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMiwgLyogMzAxOSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMywgLyogMzAyMCAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNCwgLyogMzAyMSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfNSwgLyogMzAyMiAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18xLCAvKiAzMDIzICovCisgICAgWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMSwgLyogMzAyNCAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzFfMiwgLyogMzAyNSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMiwgLyogMzAyNiAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMSwgLyogMzAyNyAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMywgLyogMzAyOCAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNCwgLyogMzAyOSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfNSwgLyogMzAzMCAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMSwgLyogMzAzMSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9ERVJJVkVEX09LXzJfMiwgLyogMzAzMiAqLworICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELCAvKiAzMDMzICovCisgICAgWE1MX1NDSEVNQVBfUzRTX0VMRU1fTUlTU0lORywgLyogMzAzNCAqLworICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCAvKiAzMDM1ICovCisgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTUlTU0lORywgLyogMzAzNiAqLworICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUsIC8qIDMwMzcgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8xLCAvKiAzMDM4ICovCisgICAgWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8xLCAvKiAzMDM5ICovCisgICAgWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8yLCAvKiAzMDQwICovCisgICAgWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMywgLyogMzA0MSAqLworICAgIFhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8xLCAvKiAzMDQyICovCisgICAgWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMSwgLyogMzA0MyAqLworICAgIFhNTF9TQ0hFTUFQX1BfUFJPUFNfQ09SUkVDVF8yXzIsIC8qIDMwNDQgKi8KKyAgICBYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfMiwgLyogMzA0NSAqLworICAgIFhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF8zLCAvKiAzMDQ2ICovCisgICAgWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzQsIC8qIDMwNDcgKi8KKyAgICBYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNSwgLyogMzA0OCAqLworICAgIFhNTF9TQ0hFTUFQX0VfUFJPUFNfQ09SUkVDVF82LCAvKiAzMDQ5ICovCisgICAgWE1MX1NDSEVNQVBfU1JDX0lOQ0xVREUsIC8qIDMwNTAgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzEsIC8qIDMwNTEgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzIsIC8qIDMwNTIgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMSwgLyogMzA1MyAqLworICAgIFhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfM18yLCAvKiAzMDU0ICovCisgICAgWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV80LCAvKiAzMDU1ICovCisgICAgWE1MX1NDSEVNQVBfTk9fWE1MTlMsIC8qIDMwNTYgKi8KKyAgICBYTUxfU0NIRU1BUF9OT19YU0ksIC8qIDMwNTcgKi8KKyAgICBYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8xLCAvKiAzMDU4ICovCisgICAgWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8xLCAvKiAzMDU5ICovCisgICAgWE1MX1NDSEVNQVBfQ09TX1ZBTElEX0RFRkFVTFRfMl8yXzEsIC8qIDMwNjAgKi8KKyAgICBYTUxfU0NIRU1BUF9DT1NfVkFMSURfREVGQVVMVF8yXzJfMiwgLyogMzA2MSAqLworICAgIFhNTF9TQ0hFTUFQX0NWQ19TSU1QTEVfVFlQRSwgLyogMzA2MiAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSwgLyogMzA2MyAqLworICAgIFhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8xLCAvKiAzMDY0ICovCisgICAgWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8xXzIsIC8qIDMwNjUgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzIsIC8qIDMwNjYgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfSU1QT1JUXzJfMSwgLyogMzA2NyAqLworICAgIFhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMl8yLCAvKiAzMDY4ICovCisgICAgWE1MX1NDSEVNQVBfSU5URVJOQUwsIC8qIDMwNjkgbm9uLVczQyAqLworICAgIFhNTF9TQ0hFTUFQX05PVF9ERVRFUk1JTklTVElDLCAvKiAzMDcwIG5vbi1XM0MgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzEsIC8qIDMwNzEgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzIsIC8qIDMwNzIgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFX0dST1VQXzMsIC8qIDMwNzMgKi8KKyAgICBYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzEsIC8qIDMwNzQgKi8KKyAgICBYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzIsIC8qIDMwNzUgKi8KKyAgICBYTUxfU0NIRU1BUF9TUkNfQ1RfMSwgLyogMzA3NiAqLworICAgIFhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzMsIC8qIDMwNzcgKi8KKyAgICBYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUXzIsIC8qIDMwNzggKi8KKyAgICBYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMiwgLyogMzA3OSAqLworICAgIFhNTF9TQ0hFTUFQX0NfUFJPUFNfQ09SUkVDVCwgLyogMzA4MCAqLworICAgIFhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwgLyogMzA4MSAqLworICAgIFhNTF9TQ0hFTUFQX1NSQ19JTVBPUlQsIC8qIDMwODIgKi8KKyAgICBYTUxfU0NIRU1BUF9XQVJOX1NLSVBfU0NIRU1BLCAvKiAzMDgzICovCisgICAgWE1MX1NDSEVNQVBfV0FSTl9VTkxPQ0FURURfU0NIRU1BLCAvKiAzMDg0ICovCisgICAgWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1JFREVDTF9QUk9ILCAvKiAzMDg1ICovCisgICAgWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1BPSU5UTEVTU19QUk9ILCAvKiAzMDg1ICovCisgICAgWE1MX1NDSEVNQVBfQUdfUFJPUFNfQ09SUkVDVCwgLyogMzA4NiAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMiwgLyogMzA4NyAqLworICAgIFhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1QsIC8qIDMwODggKi8KKyAgICBYTUxfU0NIRU1BUF9BX1BST1BTX0NPUlJFQ1RfMywgLyogMzA4OSAqLworICAgIFhNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCwgLyogMzA5MCAqLworICAgIFhNTF9TQ0hFTUFUUk9OVl9BU1NFUlQgPSA0MDAwLCAvKiA0MDAwICovCisgICAgWE1MX1NDSEVNQVRST05WX1JFUE9SVCwKKyAgICBYTUxfTU9EVUxFX09QRU4gPSA0OTAwLCAvKiA0OTAwICovCisgICAgWE1MX01PRFVMRV9DTE9TRSwgLyogNDkwMSAqLworICAgIFhNTF9DSEVDS19GT1VORF9FTEVNRU5UID0gNTAwMCwKKyAgICBYTUxfQ0hFQ0tfRk9VTkRfQVRUUklCVVRFLCAvKiA1MDAxICovCisgICAgWE1MX0NIRUNLX0ZPVU5EX1RFWFQsIC8qIDUwMDIgKi8KKyAgICBYTUxfQ0hFQ0tfRk9VTkRfQ0RBVEEsIC8qIDUwMDMgKi8KKyAgICBYTUxfQ0hFQ0tfRk9VTkRfRU5USVRZUkVGLCAvKiA1MDA0ICovCisgICAgWE1MX0NIRUNLX0ZPVU5EX0VOVElUWSwgLyogNTAwNSAqLworICAgIFhNTF9DSEVDS19GT1VORF9QSSwgLyogNTAwNiAqLworICAgIFhNTF9DSEVDS19GT1VORF9DT01NRU5ULCAvKiA1MDA3ICovCisgICAgWE1MX0NIRUNLX0ZPVU5EX0RPQ1RZUEUsIC8qIDUwMDggKi8KKyAgICBYTUxfQ0hFQ0tfRk9VTkRfRlJBR01FTlQsIC8qIDUwMDkgKi8KKyAgICBYTUxfQ0hFQ0tfRk9VTkRfTk9UQVRJT04sIC8qIDUwMTAgKi8KKyAgICBYTUxfQ0hFQ0tfVU5LTk9XTl9OT0RFLCAvKiA1MDExICovCisgICAgWE1MX0NIRUNLX0VOVElUWV9UWVBFLCAvKiA1MDEyICovCisgICAgWE1MX0NIRUNLX05PX1BBUkVOVCwgLyogNTAxMyAqLworICAgIFhNTF9DSEVDS19OT19ET0MsIC8qIDUwMTQgKi8KKyAgICBYTUxfQ0hFQ0tfTk9fTkFNRSwgLyogNTAxNSAqLworICAgIFhNTF9DSEVDS19OT19FTEVNLCAvKiA1MDE2ICovCisgICAgWE1MX0NIRUNLX1dST05HX0RPQywgLyogNTAxNyAqLworICAgIFhNTF9DSEVDS19OT19QUkVWLCAvKiA1MDE4ICovCisgICAgWE1MX0NIRUNLX1dST05HX1BSRVYsIC8qIDUwMTkgKi8KKyAgICBYTUxfQ0hFQ0tfTk9fTkVYVCwgLyogNTAyMCAqLworICAgIFhNTF9DSEVDS19XUk9OR19ORVhULCAvKiA1MDIxICovCisgICAgWE1MX0NIRUNLX05PVF9EVEQsIC8qIDUwMjIgKi8KKyAgICBYTUxfQ0hFQ0tfTk9UX0FUVFIsIC8qIDUwMjMgKi8KKyAgICBYTUxfQ0hFQ0tfTk9UX0FUVFJfREVDTCwgLyogNTAyNCAqLworICAgIFhNTF9DSEVDS19OT1RfRUxFTV9ERUNMLCAvKiA1MDI1ICovCisgICAgWE1MX0NIRUNLX05PVF9FTlRJVFlfREVDTCwgLyogNTAyNiAqLworICAgIFhNTF9DSEVDS19OT1RfTlNfREVDTCwgLyogNTAyNyAqLworICAgIFhNTF9DSEVDS19OT19IUkVGLCAvKiA1MDI4ICovCisgICAgWE1MX0NIRUNLX1dST05HX1BBUkVOVCwvKiA1MDI5ICovCisgICAgWE1MX0NIRUNLX05TX1NDT1BFLCAvKiA1MDMwICovCisgICAgWE1MX0NIRUNLX05TX0FOQ0VTVE9SLCAvKiA1MDMxICovCisgICAgWE1MX0NIRUNLX05PVF9VVEY4LCAvKiA1MDMyICovCisgICAgWE1MX0NIRUNLX05PX0RJQ1QsIC8qIDUwMzMgKi8KKyAgICBYTUxfQ0hFQ0tfTk9UX05DTkFNRSwgLyogNTAzNCAqLworICAgIFhNTF9DSEVDS19PVVRTSURFX0RJQ1QsIC8qIDUwMzUgKi8KKyAgICBYTUxfQ0hFQ0tfV1JPTkdfTkFNRSwgLyogNTAzNiAqLworICAgIFhNTF9DSEVDS19OQU1FX05PVF9OVUxMLCAvKiA1MDM3ICovCisgICAgWE1MX0kxOE5fTk9fTkFNRSA9IDYwMDAsCisgICAgWE1MX0kxOE5fTk9fSEFORExFUiwgLyogNjAwMSAqLworICAgIFhNTF9JMThOX0VYQ0VTU19IQU5ETEVSLCAvKiA2MDAyICovCisgICAgWE1MX0kxOE5fQ09OVl9GQUlMRUQsIC8qIDYwMDMgKi8KKyAgICBYTUxfSTE4Tl9OT19PVVRQVVQgLyogNjAwNCAqLworI2lmIDAKKyAgICBYTUxfQ0hFQ0tfLCAvKiA1MDMzICovCisgICAgWE1MX0NIRUNLX1ggLyogNTAzICovCisjZW5kaWYKK30geG1sUGFyc2VyRXJyb3JzOworCisvKioKKyAqIHhtbEdlbmVyaWNFcnJvckZ1bmM6CisgKiBAY3R4OiAgYSBwYXJzaW5nIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZQorICogQC4uLjogIHRoZSBleHRyYSBhcmd1bWVudHMgb2YgdGhlIHZhcmFncyB0byBmb3JtYXQgdGhlIG1lc3NhZ2UKKyAqCisgKiBTaWduYXR1cmUgb2YgdGhlIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGFuZAorICogbm8gcGFyc2luZyBvciB2YWxpZGl0eSBjb250ZXh0IGF2YWlsYWJsZSAuCisgKi8KK3R5cGVkZWYgdm9pZCAoWE1MQ0RFQ0wgKnhtbEdlbmVyaWNFcnJvckZ1bmMpICh2b2lkICpjdHgsCisJCQkJIGNvbnN0IGNoYXIgKm1zZywKKwkJCQkgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKKy8qKgorICogeG1sU3RydWN0dXJlZEVycm9yRnVuYzoKKyAqIEB1c2VyRGF0YTogIHVzZXIgcHJvdmlkZWQgZGF0YSBmb3IgdGhlIGVycm9yIGNhbGxiYWNrCisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgYmVpbmcgcmFpc2VkLgorICoKKyAqIFNpZ25hdHVyZSBvZiB0aGUgZnVuY3Rpb24gdG8gdXNlIHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgYW5kCisgKiB0aGUgbW9kdWxlIGhhbmRsZXMgdGhlIG5ldyBlcnJvciByZXBvcnRpbmcgbWVjaGFuaXNtLgorICovCit0eXBlZGVmIHZvaWQgKFhNTENBTEwgKnhtbFN0cnVjdHVyZWRFcnJvckZ1bmMpICh2b2lkICp1c2VyRGF0YSwgeG1sRXJyb3JQdHIgZXJyb3IpOworCisvKgorICogVXNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gdG8gcmVzZXQgdGhlIHR3byBnbG9iYWwgdmFyaWFibGVzCisgKiB4bWxHZW5lcmljRXJyb3IgYW5kIHhtbEdlbmVyaWNFcnJvckNvbnRleHQuCisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKyAgICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jCSh2b2lkICpjdHgsCisJCQkJIHhtbEdlbmVyaWNFcnJvckZ1bmMgaGFuZGxlcik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisgICAgaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jCSh4bWxHZW5lcmljRXJyb3JGdW5jICpoYW5kbGVyKTsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorICAgIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMJKHZvaWQgKmN0eCwKKwkJCQkgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBoYW5kbGVyKTsKKy8qCisgKiBEZWZhdWx0IG1lc3NhZ2Ugcm91dGluZXMgdXNlZCBieSBTQVggYW5kIFZhbGlkIGNvbnRleHQgZm9yIGVycm9yCisgKiBhbmQgd2FybmluZyByZXBvcnRpbmcuCisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENERUNMCisgICAgeG1sUGFyc2VyRXJyb3IJCSh2b2lkICpjdHgsCisJCQkJIGNvbnN0IGNoYXIgKm1zZywKKwkJCQkgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENERUNMCisgICAgeG1sUGFyc2VyV2FybmluZwkJKHZvaWQgKmN0eCwKKwkJCQkgY29uc3QgY2hhciAqbXNnLAorCQkJCSAuLi4pIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0RFQ0wKKyAgICB4bWxQYXJzZXJWYWxpZGl0eUVycm9yCSh2b2lkICpjdHgsCisJCQkJIGNvbnN0IGNoYXIgKm1zZywKKwkJCQkgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENERUNMCisgICAgeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nCSh2b2lkICpjdHgsCisJCQkJIGNvbnN0IGNoYXIgKm1zZywKKwkJCQkgLi4uKSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKyAgICB4bWxQYXJzZXJQcmludEZpbGVJbmZvCSh4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisgICAgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dAkoeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQpOworCisvKgorICogRXh0ZW5kZWQgZXJyb3IgaW5mb3JtYXRpb24gcm91dGluZXMKKyAqLworWE1MUFVCRlVOIHhtbEVycm9yUHRyIFhNTENBTEwKKyAgICB4bWxHZXRMYXN0RXJyb3IJCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKyAgICB4bWxSZXNldExhc3RFcnJvcgkJKHZvaWQpOworWE1MUFVCRlVOIHhtbEVycm9yUHRyIFhNTENBTEwKKyAgICB4bWxDdHh0R2V0TGFzdEVycm9yCQkodm9pZCAqY3R4KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKyAgICB4bWxDdHh0UmVzZXRMYXN0RXJyb3IJKHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisgICAgeG1sUmVzZXRFcnJvcgkJKHhtbEVycm9yUHRyIGVycik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICB4bWxDb3B5RXJyb3IJCSh4bWxFcnJvclB0ciBmcm9tLAorCQkJCSB4bWxFcnJvclB0ciB0byk7CisKKyNpZmRlZiBJTl9MSUJYTUwKKy8qCisgKiBJbnRlcm5hbCBjYWxsYmFjayByZXBvcnRpbmcgcm91dGluZQorICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisgICAgX194bWxSYWlzZUVycm9yCQkoeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzY2hhbm5lbCwKKwkJCQkgeG1sR2VuZXJpY0Vycm9yRnVuYyBjaGFubmVsLAorCQkJCSB2b2lkICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY3R4LAorCQkJCSB2b2lkICpub2RlLAorCQkJCSBpbnQgZG9tYWluLAorCQkJCSBpbnQgY29kZSwKKwkJCQkgeG1sRXJyb3JMZXZlbCBsZXZlbCwKKwkJCQkgY29uc3QgY2hhciAqZmlsZSwKKwkJCQkgaW50IGxpbmUsCisJCQkJIGNvbnN0IGNoYXIgKnN0cjEsCisJCQkJIGNvbnN0IGNoYXIgKnN0cjIsCisJCQkJIGNvbnN0IGNoYXIgKnN0cjMsCisJCQkJIGludCBpbnQxLAorCQkJCSBpbnQgY29sLAorCQkJCSBjb25zdCBjaGFyICptc2csCisJCQkJIC4uLikgTElCWE1MX0FUVFJfRk9STUFUKDE2LDE3KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKyAgICBfX3htbFNpbXBsZUVycm9yCQkoaW50IGRvbWFpbiwKKwkJCQkgaW50IGNvZGUsCisJCQkJIHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkgY29uc3QgY2hhciAqbXNnLAorCQkJCSBjb25zdCBjaGFyICpleHRyYSk7CisjZW5kaWYKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLyogX19YTUxfRVJST1JfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbGV4cG9ydHMuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sZXhwb3J0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNjc5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbGV4cG9ydHMuaApAQCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIFN1bW1hcnk6IG1hY3JvcyBmb3IgbWFya2luZyBzeW1ib2xzIGFzIGV4cG9ydGFibGUvaW1wb3J0YWJsZS4KKyAqIERlc2NyaXB0aW9uOiBtYWNyb3MgZm9yIG1hcmtpbmcgc3ltYm9scyBhcyBleHBvcnRhYmxlL2ltcG9ydGFibGUuCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogSWdvciBabGF0b3ZpYyA8aWdvckB6bGF0a292aWMuY29tPgorICovCisKKyNpZm5kZWYgX19YTUxfRVhQT1JUU19IX18KKyNkZWZpbmUgX19YTUxfRVhQT1JUU19IX18KKworLyoqCisgKiBYTUxQVUJGVU4sIFhNTFBVQlZBUiwgWE1MQ0FMTAorICoKKyAqIE1hY3JvcyB3aGljaCBkZWNsYXJlIGFuIGV4cG9ydGFibGUgZnVuY3Rpb24sIGFuIGV4cG9ydGFibGUgdmFyaWFibGUgYW5kCisgKiB0aGUgY2FsbGluZyBjb252ZW50aW9uIHVzZWQgZm9yIGZ1bmN0aW9ucy4KKyAqCisgKiBQbGVhc2UgdXNlIGFuIGV4dHJhIGJsb2NrIGZvciBldmVyeSBwbGF0Zm9ybS9jb21waWxlciBjb21iaW5hdGlvbiB3aGVuCisgKiBtb2RpZnlpbmcgdGhpcywgcmF0aGVyIHRoYW4gb3ZlcmxvbmcgI2lmZGVmIGxpbmVzLiBUaGlzIGhlbHBzCisgKiByZWFkYWJpbGl0eSBhcyB3ZWxsIGFzIHRoZSBmYWN0IHRoYXQgZGlmZmVyZW50IGNvbXBpbGVycyBvbiB0aGUgc2FtZQorICogcGxhdGZvcm0gbWlnaHQgbmVlZCBkaWZmZXJlbnQgZGVmaW5pdGlvbnMuCisgKi8KKworLyoqCisgKiBYTUxQVUJGVU46CisgKgorICogTWFjcm9zIHdoaWNoIGRlY2xhcmUgYW4gZXhwb3J0YWJsZSBmdW5jdGlvbgorICovCisjZGVmaW5lIFhNTFBVQkZVTgorLyoqCisgKiBYTUxQVUJWQVI6CisgKgorICogTWFjcm9zIHdoaWNoIGRlY2xhcmUgYW4gZXhwb3J0YWJsZSB2YXJpYWJsZQorICovCisjZGVmaW5lIFhNTFBVQlZBUiBleHRlcm4KKy8qKgorICogWE1MQ0FMTDoKKyAqCisgKiBNYWNyb3Mgd2hpY2ggZGVjbGFyZSB0aGUgY2FsbGVkIGNvbnZlbnRpb24gZm9yIGV4cG9ydGVkIGZ1bmN0aW9ucworICovCisjZGVmaW5lIFhNTENBTEwKKy8qKgorICogWE1MQ0RFQ0w6CisgKgorICogTWFjcm8gd2hpY2ggZGVjbGFyZXMgdGhlIGNhbGxpbmcgY29udmVudGlvbiBmb3IgZXhwb3J0ZWQgZnVuY3Rpb25zIHRoYXQgCisgKiB1c2UgJy4uLicuCisgKi8KKyNkZWZpbmUgWE1MQ0RFQ0wKKworLyoqIERPQ19ESVNBQkxFICovCisKKy8qIFdpbmRvd3MgcGxhdGZvcm0gd2l0aCBNUyBjb21waWxlciAqLworI2lmIGRlZmluZWQoX1dJTjMyKSAmJiBkZWZpbmVkKF9NU0NfVkVSKQorICAjdW5kZWYgWE1MUFVCRlVOCisgICN1bmRlZiBYTUxQVUJWQVIKKyAgI3VuZGVmIFhNTENBTEwKKyAgI3VuZGVmIFhNTENERUNMCisgICNpZiBkZWZpbmVkKElOX0xJQlhNTCkgJiYgIWRlZmluZWQoTElCWE1MX1NUQVRJQykKKyAgICAjZGVmaW5lIFhNTFBVQkZVTiBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyAgICAjZGVmaW5lIFhNTFBVQlZBUiBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyAgI2Vsc2UKKyAgICAjZGVmaW5lIFhNTFBVQkZVTgorICAgICNpZiAhZGVmaW5lZChMSUJYTUxfU1RBVElDKQorICAgICAgI2RlZmluZSBYTUxQVUJWQVIgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGV4dGVybgorICAgICNlbHNlCisgICAgICAjZGVmaW5lIFhNTFBVQlZBUiBleHRlcm4KKyAgICAjZW5kaWYKKyAgI2VuZGlmCisgICNpZiBkZWZpbmVkKExJQlhNTF9GQVNUQ0FMTCkKKyAgICAjZGVmaW5lIFhNTENBTEwgX19mYXN0Y2FsbAorICAjZWxzZQorICAgICNkZWZpbmUgWE1MQ0FMTCBfX2NkZWNsCisgICNlbmRpZgorICAjZGVmaW5lIFhNTENERUNMIF9fY2RlY2wKKyAgI2lmICFkZWZpbmVkIF9SRUVOVFJBTlQKKyAgICAjZGVmaW5lIF9SRUVOVFJBTlQKKyAgI2VuZGlmCisjZW5kaWYKKworLyogV2luZG93cyBwbGF0Zm9ybSB3aXRoIEJvcmxhbmQgY29tcGlsZXIgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisgICN1bmRlZiBYTUxQVUJGVU4KKyAgI3VuZGVmIFhNTFBVQlZBUgorICAjdW5kZWYgWE1MQ0FMTAorICAjdW5kZWYgWE1MQ0RFQ0wKKyAgI2lmIGRlZmluZWQoSU5fTElCWE1MKSAmJiAhZGVmaW5lZChMSUJYTUxfU1RBVElDKQorICAgICNkZWZpbmUgWE1MUFVCRlVOIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorICAgICNkZWZpbmUgWE1MUFVCVkFSIF9fZGVjbHNwZWMoZGxsZXhwb3J0KSBleHRlcm4KKyAgI2Vsc2UKKyAgICAjZGVmaW5lIFhNTFBVQkZVTgorICAgICNpZiAhZGVmaW5lZChMSUJYTUxfU1RBVElDKQorICAgICAgI2RlZmluZSBYTUxQVUJWQVIgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGV4dGVybgorICAgICNlbHNlCisgICAgICAjZGVmaW5lIFhNTFBVQlZBUiBleHRlcm4KKyAgICAjZW5kaWYKKyAgI2VuZGlmCisgICNkZWZpbmUgWE1MQ0FMTCBfX2NkZWNsCisgICNkZWZpbmUgWE1MQ0RFQ0wgX19jZGVjbAorICAjaWYgIWRlZmluZWQgX1JFRU5UUkFOVAorICAgICNkZWZpbmUgX1JFRU5UUkFOVAorICAjZW5kaWYKKyNlbmRpZgorCisvKiBXaW5kb3dzIHBsYXRmb3JtIHdpdGggR05VIGNvbXBpbGVyIChNaW5ndykgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgZGVmaW5lZChfX01JTkdXMzJfXykKKyAgI3VuZGVmIFhNTFBVQkZVTgorICAjdW5kZWYgWE1MUFVCVkFSCisgICN1bmRlZiBYTUxDQUxMCisgICN1bmRlZiBYTUxDREVDTAorICAvKgorICAgKiBpZiBkZWZpbmVkKElOX0xJQlhNTCkgdGhpcyByYWlzZXMgcHJvYmxlbXMgb24gbWluZ3cgd2l0aCBtc3lzCisgICAqIF9pbXBfX3htbEZyZWUgbGlzdGVkIGFzIG1pc3NpbmcuIFRyeSB0byB3b3JrYXJvdW5kIHRoZSBwcm9ibGVtCisgICAqIGJ5IGFsc28gbWFraW5nIHRoYXQgZGVjbGFyYXRpb24gd2hlbiBjb21waWxpbmcgY2xpZW50IGNvZGUuCisgICAqLworICAjaWYgZGVmaW5lZChJTl9MSUJYTUwpICYmICFkZWZpbmVkKExJQlhNTF9TVEFUSUMpCisgICAgI2RlZmluZSBYTUxQVUJGVU4gX19kZWNsc3BlYyhkbGxleHBvcnQpCisgICAgI2RlZmluZSBYTUxQVUJWQVIgX19kZWNsc3BlYyhkbGxleHBvcnQpCisgICNlbHNlCisgICAgI2RlZmluZSBYTUxQVUJGVU4KKyAgICAjaWYgIWRlZmluZWQoTElCWE1MX1NUQVRJQykKKyAgICAgICNkZWZpbmUgWE1MUFVCVkFSIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBleHRlcm4KKyAgICAjZWxzZQorICAgICAgI2RlZmluZSBYTUxQVUJWQVIgZXh0ZXJuCisgICAgI2VuZGlmCisgICNlbmRpZgorICAjZGVmaW5lIFhNTENBTEwgX19jZGVjbAorICAjZGVmaW5lIFhNTENERUNMIF9fY2RlY2wKKyAgI2lmICFkZWZpbmVkIF9SRUVOVFJBTlQKKyAgICAjZGVmaW5lIF9SRUVOVFJBTlQKKyAgI2VuZGlmCisjZW5kaWYKKworLyogQ3lnd2luIHBsYXRmb3JtLCBHTlUgY29tcGlsZXIgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgZGVmaW5lZChfX0NZR1dJTl9fKQorICAjdW5kZWYgWE1MUFVCRlVOCisgICN1bmRlZiBYTUxQVUJWQVIKKyAgI3VuZGVmIFhNTENBTEwKKyAgI3VuZGVmIFhNTENERUNMCisgICNpZiBkZWZpbmVkKElOX0xJQlhNTCkgJiYgIWRlZmluZWQoTElCWE1MX1NUQVRJQykKKyAgICAjZGVmaW5lIFhNTFBVQkZVTiBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyAgICAjZGVmaW5lIFhNTFBVQlZBUiBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyAgI2Vsc2UKKyAgICAjZGVmaW5lIFhNTFBVQkZVTgorICAgICNpZiAhZGVmaW5lZChMSUJYTUxfU1RBVElDKQorICAgICAgI2RlZmluZSBYTUxQVUJWQVIgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGV4dGVybgorICAgICNlbHNlCisgICAgICAjZGVmaW5lIFhNTFBVQlZBUgorICAgICNlbmRpZgorICAjZW5kaWYKKyAgI2RlZmluZSBYTUxDQUxMIF9fY2RlY2wKKyAgI2RlZmluZSBYTUxDREVDTCBfX2NkZWNsCisjZW5kaWYKKworLyogQ29tcGF0aWJpbGl0eSAqLworI2lmICFkZWZpbmVkKExJQlhNTF9ETExfSU1QT1JUKQorI2RlZmluZSBMSUJYTUxfRExMX0lNUE9SVCBYTUxQVUJWQVIKKyNlbmRpZgorCisjZW5kaWYgLyogX19YTUxfRVhQT1JUU19IX18gKi8KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbG1lbW9yeS5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxtZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2UzNzVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxtZW1vcnkuaApAQCAtMCwwICsxLDIyNCBAQAorLyoKKyAqIFN1bW1hcnk6IGludGVyZmFjZSBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IKKyAqIERlc2NyaXB0aW9uOiBwcm92aWRlcyBpbnRlcmZhY2VzIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvciwKKyAqICAgICAgICAgICAgICBpbmNsdWRpbmcgZGVidWdnaW5nIGNhcGFiaWxpdGllcy4KKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisKKyNpZm5kZWYgX19ERUJVR19NRU1PUllfQUxMT0NfXworI2RlZmluZSBfX0RFQlVHX01FTU9SWV9BTExPQ19fCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKy8qKgorICogREVCVUdfTUVNT1JZOgorICoKKyAqIERFQlVHX01FTU9SWSByZXBsYWNlcyB0aGUgYWxsb2NhdG9yIHdpdGggYSBjb2xsZWN0IGFuZCBkZWJ1ZworICogc2hlbGwgdG8gdGhlIGxpYmMgYWxsb2NhdG9yLgorICogREVCVUdfTUVNT1JZIHNob3VsZCBvbmx5IGJlIGFjdGl2YXRlZCB3aGVuIGRlYnVnZ2luZworICogbGlieG1sIGkuZS4gaWYgbGlieG1sIGhhcyBiZWVuIGNvbmZpZ3VyZWQgd2l0aCAtLXdpdGgtZGVidWctbWVtIHRvby4KKyAqLworLyogI2RlZmluZSBERUJVR19NRU1PUllfRlJFRUQgKi8KKy8qICNkZWZpbmUgREVCVUdfTUVNT1JZX0xPQ0FUSU9OICovCisKKyNpZmRlZiBERUJVRworI2lmbmRlZiBERUJVR19NRU1PUlkKKyNkZWZpbmUgREVCVUdfTUVNT1JZCisjZW5kaWYKKyNlbmRpZgorCisvKioKKyAqIERFQlVHX01FTU9SWV9MT0NBVElPTjoKKyAqCisgKiBERUJVR19NRU1PUllfTE9DQVRJT04gc2hvdWxkIGJlIGFjdGl2YXRlZCBvbmx5IHdoZW4gZGVidWdnaW5nCisgKiBsaWJ4bWwgaS5lLiBpZiBsaWJ4bWwgaGFzIGJlZW4gY29uZmlndXJlZCB3aXRoIC0td2l0aC1kZWJ1Zy1tZW0gdG9vLgorICovCisjaWZkZWYgREVCVUdfTUVNT1JZX0xPQ0FUSU9OCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogVGhlIFhNTCBtZW1vcnkgd3JhcHBlciBzdXBwb3J0IDQgYmFzaWMgb3ZlcmxvYWRhYmxlIGZ1bmN0aW9ucy4KKyAqLworLyoqCisgKiB4bWxGcmVlRnVuYzoKKyAqIEBtZW06IGFuIGFscmVhZHkgYWxsb2NhdGVkIGJsb2NrIG9mIG1lbW9yeQorICoKKyAqIFNpZ25hdHVyZSBmb3IgYSBmcmVlKCkgaW1wbGVtZW50YXRpb24uCisgKi8KK3R5cGVkZWYgdm9pZCAoWE1MQ0FMTCAqeG1sRnJlZUZ1bmMpKHZvaWQgKm1lbSk7CisvKioKKyAqIHhtbE1hbGxvY0Z1bmM6CisgKiBAc2l6ZTogIHRoZSBzaXplIHJlcXVlc3RlZCBpbiBieXRlcworICoKKyAqIFNpZ25hdHVyZSBmb3IgYSBtYWxsb2MoKSBpbXBsZW1lbnRhdGlvbi4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIGJsb2NrIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLwordHlwZWRlZiB2b2lkICooTElCWE1MX0FUVFJfQUxMT0NfU0laRSgxKSBYTUxDQUxMICp4bWxNYWxsb2NGdW5jKShzaXplX3Qgc2l6ZSk7CisKKy8qKgorICogeG1sUmVhbGxvY0Z1bmM6CisgKiBAbWVtOiBhbiBhbHJlYWR5IGFsbG9jYXRlZCBibG9jayBvZiBtZW1vcnkKKyAqIEBzaXplOiAgdGhlIG5ldyBzaXplIHJlcXVlc3RlZCBpbiBieXRlcworICoKKyAqIFNpZ25hdHVyZSBmb3IgYSByZWFsbG9jKCkgaW1wbGVtZW50YXRpb24uCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ld2x5IHJlYWxsb2NhdGVkIGJsb2NrIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLwordHlwZWRlZiB2b2lkICooWE1MQ0FMTCAqeG1sUmVhbGxvY0Z1bmMpKHZvaWQgKm1lbSwgc2l6ZV90IHNpemUpOworCisvKioKKyAqIHhtbFN0cmR1cEZ1bmM6CisgKiBAc3RyOiBhIHplcm8gdGVybWluYXRlZCBzdHJpbmcKKyAqCisgKiBTaWduYXR1cmUgZm9yIGFuIHN0cmR1cCgpIGltcGxlbWVudGF0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIGNvcHkgb2YgdGhlIHN0cmluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3R5cGVkZWYgY2hhciAqKFhNTENBTEwgKnhtbFN0cmR1cEZ1bmMpKGNvbnN0IGNoYXIgKnN0cik7CisKKy8qCisgKiBUaGUgNCBpbnRlcmZhY2VzIHVzZWQgZm9yIGFsbCBtZW1vcnkgaGFuZGxpbmcgd2l0aGluIGxpYnhtbC4KK0xJQlhNTF9ETExfSU1QT1JUIHhtbEZyZWVGdW5jIHhtbEZyZWU7CitMSUJYTUxfRExMX0lNUE9SVCB4bWxNYWxsb2NGdW5jIHhtbE1hbGxvYzsKK0xJQlhNTF9ETExfSU1QT1JUIHhtbE1hbGxvY0Z1bmMgeG1sTWFsbG9jQXRvbWljOworTElCWE1MX0RMTF9JTVBPUlQgeG1sUmVhbGxvY0Z1bmMgeG1sUmVhbGxvYzsKK0xJQlhNTF9ETExfSU1QT1JUIHhtbFN0cmR1cEZ1bmMgeG1sTWVtU3RyZHVwOworICovCisKKy8qCisgKiBUaGUgd2F5IHRvIG92ZXJsb2FkIHRoZSBleGlzdGluZyBmdW5jdGlvbnMuCisgKiBUaGUgeG1sR2MgZnVuY3Rpb24gaGF2ZSBhbiBleHRyYSBlbnRyeSBmb3IgYXRvbWljIGJsb2NrCisgKiBhbGxvY2F0aW9ucyB1c2VmdWwgZm9yIGdhcmJhZ2UgY29sbGVjdGVkIG1lbW9yeSBhbGxvY2F0b3JzCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCXhtbE1lbVNldHVwCSh4bWxGcmVlRnVuYyBmcmVlRnVuYywKKwkJCSB4bWxNYWxsb2NGdW5jIG1hbGxvY0Z1bmMsCisJCQkgeG1sUmVhbGxvY0Z1bmMgcmVhbGxvY0Z1bmMsCisJCQkgeG1sU3RyZHVwRnVuYyBzdHJkdXBGdW5jKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCXhtbE1lbUdldAkoeG1sRnJlZUZ1bmMgKmZyZWVGdW5jLAorCQkJIHhtbE1hbGxvY0Z1bmMgKm1hbGxvY0Z1bmMsCisJCQkgeG1sUmVhbGxvY0Z1bmMgKnJlYWxsb2NGdW5jLAorCQkJIHhtbFN0cmR1cEZ1bmMgKnN0cmR1cEZ1bmMpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJeG1sR2NNZW1TZXR1cAkoeG1sRnJlZUZ1bmMgZnJlZUZ1bmMsCisJCQkgeG1sTWFsbG9jRnVuYyBtYWxsb2NGdW5jLAorCQkJIHhtbE1hbGxvY0Z1bmMgbWFsbG9jQXRvbWljRnVuYywKKwkJCSB4bWxSZWFsbG9jRnVuYyByZWFsbG9jRnVuYywKKwkJCSB4bWxTdHJkdXBGdW5jIHN0cmR1cEZ1bmMpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJeG1sR2NNZW1HZXQJKHhtbEZyZWVGdW5jICpmcmVlRnVuYywKKwkJCSB4bWxNYWxsb2NGdW5jICptYWxsb2NGdW5jLAorCQkJIHhtbE1hbGxvY0Z1bmMgKm1hbGxvY0F0b21pY0Z1bmMsCisJCQkgeG1sUmVhbGxvY0Z1bmMgKnJlYWxsb2NGdW5jLAorCQkJIHhtbFN0cmR1cEZ1bmMgKnN0cmR1cEZ1bmMpOworCisvKgorICogSW5pdGlhbGl6YXRpb24gb2YgdGhlIG1lbW9yeSBsYXllci4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJeG1sSW5pdE1lbW9yeQkodm9pZCk7CisKKy8qCisgKiBDbGVhbnVwIG9mIHRoZSBtZW1vcnkgbGF5ZXIuCisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxDbGVhbnVwTWVtb3J5ICAgICAgICAodm9pZCk7CisvKgorICogVGhlc2UgYXJlIHNwZWNpZmljIHRvIHRoZSBYTUwgZGVidWcgbWVtb3J5IHdyYXBwZXIuCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCXhtbE1lbVVzZWQJKHZvaWQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJeG1sTWVtQmxvY2tzCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwl4bWxNZW1EaXNwbGF5CShGSUxFICpmcCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJeG1sTWVtRGlzcGxheUxhc3QoRklMRSAqZnAsIGxvbmcgbmJCeXRlcyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJeG1sTWVtU2hvdwkoRklMRSAqZnAsIGludCBucik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJeG1sTWVtb3J5RHVtcAkodm9pZCk7CitYTUxQVUJGVU4gdm9pZCAqIFhNTENBTEwKKwl4bWxNZW1NYWxsb2MJKHNpemVfdCBzaXplKSBMSUJYTUxfQVRUUl9BTExPQ19TSVpFKDEpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCisJeG1sTWVtUmVhbGxvYwkodm9pZCAqcHRyLHNpemVfdCBzaXplKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwl4bWxNZW1GcmVlCSh2b2lkICpwdHIpOworWE1MUFVCRlVOIGNoYXIgKiBYTUxDQUxMCisJeG1sTWVtb3J5U3RyZHVwCShjb25zdCBjaGFyICpzdHIpOworWE1MUFVCRlVOIHZvaWQgKiBYTUxDQUxMCisJeG1sTWFsbG9jTG9jCShzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUpIExJQlhNTF9BVFRSX0FMTE9DX1NJWkUoMSk7CitYTUxQVUJGVU4gdm9pZCAqIFhNTENBTEwKKwl4bWxSZWFsbG9jTG9jCSh2b2lkICpwdHIsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSk7CitYTUxQVUJGVU4gdm9pZCAqIFhNTENBTEwKKwl4bWxNYWxsb2NBdG9taWNMb2MgKHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSkgTElCWE1MX0FUVFJfQUxMT0NfU0laRSgxKTsKK1hNTFBVQkZVTiBjaGFyICogWE1MQ0FMTAorCXhtbE1lbVN0cmR1cExvYwkoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSk7CisKKworI2lmZGVmIERFQlVHX01FTU9SWV9MT0NBVElPTgorLyoqCisgKiB4bWxNYWxsb2M6CisgKiBAc2l6ZTogIG51bWJlciBvZiBieXRlcyB0byBhbGxvY2F0ZQorICoKKyAqIFdyYXBwZXIgZm9yIHRoZSBtYWxsb2MoKSBmdW5jdGlvbiB1c2VkIGluIHRoZSBYTUwgbGlicmFyeS4KKyAqCisgKiBSZXR1cm5zIHRoZSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgYXJlYSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KKyNkZWZpbmUgeG1sTWFsbG9jKHNpemUpIHhtbE1hbGxvY0xvYygoc2l6ZSksIF9fRklMRV9fLCBfX0xJTkVfXykKKy8qKgorICogeG1sTWFsbG9jQXRvbWljOgorICogQHNpemU6ICBudW1iZXIgb2YgYnl0ZXMgdG8gYWxsb2NhdGUKKyAqCisgKiBXcmFwcGVyIGZvciB0aGUgbWFsbG9jKCkgZnVuY3Rpb24gdXNlZCBpbiB0aGUgWE1MIGxpYnJhcnkgZm9yIGFsbG9jYXRpb24KKyAqIG9mIGJsb2NrIG5vdCBjb250YWluaW5nIHBvaW50ZXJzIHRvIG90aGVyIGFyZWFzLgorICoKKyAqIFJldHVybnMgdGhlIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworI2RlZmluZSB4bWxNYWxsb2NBdG9taWMoc2l6ZSkgeG1sTWFsbG9jQXRvbWljTG9jKChzaXplKSwgX19GSUxFX18sIF9fTElORV9fKQorLyoqCisgKiB4bWxSZWFsbG9jOgorICogQHB0cjogIHBvaW50ZXIgdG8gdGhlIGV4aXN0aW5nIGFsbG9jYXRlZCBhcmVhCisgKiBAc2l6ZTogIG51bWJlciBvZiBieXRlcyB0byBhbGxvY2F0ZQorICoKKyAqIFdyYXBwZXIgZm9yIHRoZSByZWFsbG9jKCkgZnVuY3Rpb24gdXNlZCBpbiB0aGUgWE1MIGxpYnJhcnkuCisgKgorICogUmV0dXJucyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCisjZGVmaW5lIHhtbFJlYWxsb2MocHRyLCBzaXplKSB4bWxSZWFsbG9jTG9jKChwdHIpLCAoc2l6ZSksIF9fRklMRV9fLCBfX0xJTkVfXykKKy8qKgorICogeG1sTWVtU3RyZHVwOgorICogQHN0cjogIHBvaW50ZXIgdG8gdGhlIGV4aXN0aW5nIHN0cmluZworICoKKyAqIFdyYXBwZXIgZm9yIHRoZSBzdHJkdXAoKSBmdW5jdGlvbiwgeG1sU3RyZHVwKCkgaXMgdXN1YWxseSBwcmVmZXJyZWQuCisgKgorICogUmV0dXJucyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCisjZGVmaW5lIHhtbE1lbVN0cmR1cChzdHIpIHhtbE1lbVN0cmR1cExvYygoc3RyKSwgX19GSUxFX18sIF9fTElORV9fKQorCisjZW5kaWYgLyogREVCVUdfTUVNT1JZX0xPQ0FUSU9OICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisKKyNpZm5kZWYgX19YTUxfR0xPQkFMU19ICisjaWZuZGVmIF9fWE1MX1RIUkVBRFNfSF9fCisjaW5jbHVkZSA8bGlieG1sL3RocmVhZHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2VuZGlmCisjZW5kaWYKKworI2VuZGlmICAvKiBfX0RFQlVHX01FTU9SWV9BTExPQ19fICovCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sbW9kdWxlLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbG1vZHVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNGE1NjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbG1vZHVsZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBTdW1tYXJ5OiBkeW5hbWljIG1vZHVsZSBsb2FkaW5nCisgKiBEZXNjcmlwdGlvbjogYmFzaWMgQVBJIGZvciBkeW5hbWljIG1vZHVsZSBsb2FkaW5nLCB1c2VkIGJ5CisgKiAgICAgICAgICAgICAgbGliZXhzbHQgYWRkZWQgaW4gMi42LjE3CisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogSm9lbCBXLiBSZWVkCisgKi8KKworI2lmbmRlZiBfX1hNTF9NT0RVTEVfSF9fCisjZGVmaW5lIF9fWE1MX01PRFVMRV9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpZmRlZiBMSUJYTUxfTU9EVUxFU19FTkFCTEVECisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiB4bWxNb2R1bGVQdHI6CisgKgorICogQSBoYW5kbGUgdG8gYSBkeW5hbWljYWxseSBsb2FkZWQgbW9kdWxlCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxNb2R1bGUgeG1sTW9kdWxlOwordHlwZWRlZiB4bWxNb2R1bGUgKnhtbE1vZHVsZVB0cjsKKworLyoqCisgKiB4bWxNb2R1bGVPcHRpb246CisgKgorICogZW51bWVyYXRpb24gb2Ygb3B0aW9ucyB0aGF0IGNhbiBiZSBwYXNzZWQgZG93biB0byB4bWxNb2R1bGVPcGVuKCkKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfTU9EVUxFX0xBWlkgPSAxLAkvKiBsYXp5IGJpbmRpbmcgKi8KKyAgICBYTUxfTU9EVUxFX0xPQ0FMPSAyCQkvKiBsb2NhbCBiaW5kaW5nICovCit9IHhtbE1vZHVsZU9wdGlvbjsKKworWE1MUFVCRlVOIHhtbE1vZHVsZVB0ciBYTUxDQUxMIHhtbE1vZHVsZU9wZW4JKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkJIGludCBvcHRpb25zKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbE1vZHVsZVN5bWJvbAkJKHhtbE1vZHVsZVB0ciBtb2R1bGUsCisJCQkJCQkgY29uc3QgY2hhciogbmFtZSwKKwkJCQkJCSB2b2lkICoqcmVzdWx0KTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbE1vZHVsZUNsb3NlCQkoeG1sTW9kdWxlUHRyIG1vZHVsZSk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxNb2R1bGVGcmVlCQkoeG1sTW9kdWxlUHRyIG1vZHVsZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIAorCisjZW5kaWYgLyogTElCWE1MX01PRFVMRVNfRU5BQkxFRCAqLworCisjZW5kaWYgLypfX1hNTF9NT0RVTEVfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHJlYWRlci5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTY0NDgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaApAQCAtMCwwICsxLDQyNCBAQAorLyoKKyAqIFN1bW1hcnk6IHRoZSBYTUxSZWFkZXIgaW1wbGVtZW50YXRpb24KKyAqIERlc2NyaXB0aW9uOiBBUEkgb2YgdGhlIFhNTCBzdHJlYW1pbmcgQVBJIGJhc2VkIG9uIEMjIGludGVyZmFjZXMuCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9YTUxSRUFERVJfSF9fCisjZGVmaW5lIF9fWE1MX1hNTFJFQURFUl9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sSU8uaD4KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiB4bWxQYXJzZXJTZXZlcml0aWVzOgorICoKKyAqIEhvdyBzZXZlcmUgYW4gZXJyb3IgY2FsbGJhY2sgaXMgd2hlbiB0aGUgcGVyLXJlYWRlciBlcnJvciBjYWxsYmFjayBBUEkKKyAqIGlzIHVzZWQuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HID0gMSwKKyAgICBYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX0VSUk9SID0gMiwKKyAgICBYTUxfUEFSU0VSX1NFVkVSSVRZX1dBUk5JTkcgPSAzLAorICAgIFhNTF9QQVJTRVJfU0VWRVJJVFlfRVJST1IgPSA0Cit9IHhtbFBhcnNlclNldmVyaXRpZXM7CisKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKworLyoqCisgKiB4bWxUZXh0UmVhZGVyTW9kZToKKyAqCisgKiBJbnRlcm5hbCBzdGF0ZSB2YWx1ZXMgZm9yIHRoZSByZWFkZXIuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMID0gMCwKKyAgICBYTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFID0gMSwKKyAgICBYTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SID0gMiwKKyAgICBYTUxfVEVYVFJFQURFUl9NT0RFX0VPRiA9MywKKyAgICBYTUxfVEVYVFJFQURFUl9NT0RFX0NMT1NFRCA9IDQsCisgICAgWE1MX1RFWFRSRUFERVJfTU9ERV9SRUFESU5HID0gNQorfSB4bWxUZXh0UmVhZGVyTW9kZTsKKworLyoqCisgKiB4bWxQYXJzZXJQcm9wZXJ0aWVzOgorICoKKyAqIFNvbWUgY29tbW9uIG9wdGlvbnMgdG8gdXNlIHdpdGggeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AsIGJ1dCBpdAorICogaXMgYmV0dGVyIHRvIHVzZSB4bWxQYXJzZXJPcHRpb24gYW5kIHRoZSB4bWxSZWFkZXJOZXd4eHggYW5kCisgKiB4bWxSZWFkZXJGb3J4eHggQVBJcyBub3cuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1BBUlNFUl9MT0FERFREID0gMSwKKyAgICBYTUxfUEFSU0VSX0RFRkFVTFRBVFRSUyA9IDIsCisgICAgWE1MX1BBUlNFUl9WQUxJREFURSA9IDMsCisgICAgWE1MX1BBUlNFUl9TVUJTVF9FTlRJVElFUyA9IDQKK30geG1sUGFyc2VyUHJvcGVydGllczsKKworLyoqCisgKiB4bWxSZWFkZXJUeXBlczoKKyAqCisgKiBQcmVkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBub2Rlcy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfUkVBREVSX1RZUEVfTk9ORSA9IDAsCisgICAgWE1MX1JFQURFUl9UWVBFX0VMRU1FTlQgPSAxLAorICAgIFhNTF9SRUFERVJfVFlQRV9BVFRSSUJVVEUgPSAyLAorICAgIFhNTF9SRUFERVJfVFlQRV9URVhUID0gMywKKyAgICBYTUxfUkVBREVSX1RZUEVfQ0RBVEEgPSA0LAorICAgIFhNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFID0gNSwKKyAgICBYTUxfUkVBREVSX1RZUEVfRU5USVRZID0gNiwKKyAgICBYTUxfUkVBREVSX1RZUEVfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiA9IDcsCisgICAgWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQgPSA4LAorICAgIFhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVCA9IDksCisgICAgWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX1RZUEUgPSAxMCwKKyAgICBYTUxfUkVBREVSX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQgPSAxMSwKKyAgICBYTUxfUkVBREVSX1RZUEVfTk9UQVRJT04gPSAxMiwKKyAgICBYTUxfUkVBREVSX1RZUEVfV0hJVEVTUEFDRSA9IDEzLAorICAgIFhNTF9SRUFERVJfVFlQRV9TSUdOSUZJQ0FOVF9XSElURVNQQUNFID0gMTQsCisgICAgWE1MX1JFQURFUl9UWVBFX0VORF9FTEVNRU5UID0gMTUsCisgICAgWE1MX1JFQURFUl9UWVBFX0VORF9FTlRJVFkgPSAxNiwKKyAgICBYTUxfUkVBREVSX1RZUEVfWE1MX0RFQ0xBUkFUSU9OID0gMTcKK30geG1sUmVhZGVyVHlwZXM7CisKKy8qKgorICogeG1sVGV4dFJlYWRlcjoKKyAqCisgKiBTdHJ1Y3R1cmUgZm9yIGFuIHhtbFJlYWRlciBjb250ZXh0LgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sVGV4dFJlYWRlciB4bWxUZXh0UmVhZGVyOworCisvKioKKyAqIHhtbFRleHRSZWFkZXJQdHI6CisgKgorICogUG9pbnRlciB0byBhbiB4bWxSZWFkZXIgY29udGV4dC4KKyAqLwordHlwZWRlZiB4bWxUZXh0UmVhZGVyICp4bWxUZXh0UmVhZGVyUHRyOworCisvKgorICogQ29uc3RydWN0b3JzICYgRGVzdHJ1Y3RvcgorICovCitYTUxQVUJGVU4geG1sVGV4dFJlYWRlclB0ciBYTUxDQUxMCisJCQl4bWxOZXdUZXh0UmVhZGVyCSh4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKlVSSSk7CitYTUxQVUJGVU4geG1sVGV4dFJlYWRlclB0ciBYTUxDQUxMCisJCQl4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUoY29uc3QgY2hhciAqVVJJKTsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkJeG1sRnJlZVRleHRSZWFkZXIJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgICAgICB4bWxUZXh0UmVhZGVyU2V0dXAoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisgICAgICAgICAgICAgICAgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQsIGNvbnN0IGNoYXIgKlVSTCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpOworCisvKgorICogSXRlcmF0b3JzCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlclJlYWQJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKKworI2lmZGVmIExJQlhNTF9XUklURVJfRU5BQkxFRAorWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCisJCQl4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CisKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbAkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworI2VuZGlmCisKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlclJlYWRTdHJpbmcJCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKKworLyoKKyAqIEF0dHJpYnV0ZXMgb2YgdGhlIG5vZGUKKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxUZXh0UmVhZGVyRGVwdGgJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxUZXh0UmVhZGVySGFzVmFsdWUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxUZXh0UmVhZGVySXNEZWZhdWx0CSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbFRleHRSZWFkZXJOb2RlVHlwZQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxUZXh0UmVhZGVyUXVvdGVDaGFyCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbFRleHRSZWFkZXJSZWFkU3RhdGUJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CisKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlckNvbnN0TmFtZQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZwkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnN0cik7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJDb25zdFZhbHVlCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CisKKy8qCisgKiB1c2UgdGhlIENvbnN0IHZlcnNpb24gb2YgdGhlIHJvdXRpbmUgZm9yCisgKiBiZXR0ZXIgcGVyZm9ybWFuY2UgYW5kIHNpbXBsZXIgY29kZQorICovCitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJCXhtbFRleHRSZWFkZXJCYXNlVXJpCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJCXhtbFRleHRSZWFkZXJMb2NhbE5hbWUJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlck5hbWUJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJCXhtbFRleHRSZWFkZXJQcmVmaXgJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlclhtbExhbmcJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkJeG1sVGV4dFJlYWRlclZhbHVlCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CisKKy8qCisgKiBNZXRob2RzIG9mIHRoZSBYbWxUZXh0UmVhZGVyCisgKi8KK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlckNsb3NlCQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTm8JKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIGludCBubyk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmxvY2FsTmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lc3BhY2VVUkkpOworWE1MUFVCRlVOIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXIJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8oeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCQkgaW50IG5vKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKmxvY2FsTmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lc3BhY2VVUkkpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50CSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nICAoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworCisvKgorICogRXh0ZW5zaW9ucworICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwkJCQkJCSBpbnQgcHJvcCwKKwkJCQkJCSBpbnQgdmFsdWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcAkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCQkgaW50IHByb3ApOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICAgICAgeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXIoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgICAgIHhtbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworCitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyUHJlc2VydmUJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4oeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqcGF0dGVybiwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICoqbmFtZXNwYWNlcyk7CisjZW5kaWYgLyogTElCWE1MX1BBVFRFUk5fRU5BQkxFRCAqLworWE1MUFVCRlVOIHhtbERvY1B0ciBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyQ3VycmVudERvYwkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlckV4cGFuZAkJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlck5leHQJCSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJOZXh0U2libGluZwkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVySXNWYWxpZAkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwkJCQkJCSBjb25zdCBjaGFyICpybmcpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwkJCQkJCSB4bWxSZWxheE5HUHRyIHNjaGVtYSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCQkgY29uc3QgY2hhciAqeHNkKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwkJCQkJCSB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJTZXRTY2hlbWEJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIHhtbFNjaGVtYVB0ciBzY2hlbWEpOworI2VuZGlmCitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24oeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZSAgICAgKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKTsKKworCisvKgorICogSW5kZXggbG9va3VwCisgKi8KK1hNTFBVQkZVTiBsb25nIFhNTENBTEwKKwkJeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZAkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpOworCisvKgorICogTmV3IG1vcmUgY29tcGxldGUgQVBJcyBmb3Igc2ltcGxlciBjcmVhdGlvbiBhbmQgcmV1c2Ugb2YgcmVhZGVycworICovCitYTUxQVUJGVU4geG1sVGV4dFJlYWRlclB0ciBYTUxDQUxMCisJCXhtbFJlYWRlcldhbGtlcgkJKHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIHhtbFRleHRSZWFkZXJQdHIgWE1MQ0FMTAorCQl4bWxSZWFkZXJGb3JEb2MJCShjb25zdCB4bWxDaGFyICogY3VyLAorCQkJCQkgY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4geG1sVGV4dFJlYWRlclB0ciBYTUxDQUxMCisJCXhtbFJlYWRlckZvckZpbGUJKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4geG1sVGV4dFJlYWRlclB0ciBYTUxDQUxMCisJCXhtbFJlYWRlckZvck1lbW9yeQkoY29uc3QgY2hhciAqYnVmZmVyLAorCQkJCQkgaW50IHNpemUsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiB4bWxUZXh0UmVhZGVyUHRyIFhNTENBTEwKKwkJeG1sUmVhZGVyRm9yRmQJCShpbnQgZmQsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiB4bWxUZXh0UmVhZGVyUHRyIFhNTENBTEwKKwkJeG1sUmVhZGVyRm9ySU8JCSh4bWxJbnB1dFJlYWRDYWxsYmFjayBpb3JlYWQsCisJCQkJCSB4bWxJbnB1dENsb3NlQ2FsbGJhY2sgaW9jbG9zZSwKKwkJCQkJIHZvaWQgKmlvY3R4LAorCQkJCQkgY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxSZWFkZXJOZXdXYWxrZXIJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkgeG1sRG9jUHRyIGRvYyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sUmVhZGVyTmV3RG9jCQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCSBjb25zdCB4bWxDaGFyICogY3VyLAorCQkJCQkgY29uc3QgY2hhciAqVVJMLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sUmVhZGVyTmV3RmlsZQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCSBjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFJlYWRlck5ld01lbW9yeQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCSBjb25zdCBjaGFyICpidWZmZXIsCisJCQkJCSBpbnQgc2l6ZSwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFJlYWRlck5ld0ZkCQkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCSBpbnQgZmQsCisJCQkJCSBjb25zdCBjaGFyICpVUkwsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxSZWFkZXJOZXdJTwkJKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkgeG1sSW5wdXRSZWFkQ2FsbGJhY2sgaW9yZWFkLAorCQkJCQkgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGlvY2xvc2UsCisJCQkJCSB2b2lkICppb2N0eCwKKwkJCQkJIGNvbnN0IGNoYXIgKlVSTCwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworLyoKKyAqIEVycm9yIGhhbmRsaW5nIGV4dGVuc2lvbnMKKyAqLwordHlwZWRlZiB2b2lkICogIHhtbFRleHRSZWFkZXJMb2NhdG9yUHRyOworCisvKioKKyAqIHhtbFRleHRSZWFkZXJFcnJvckZ1bmM6CisgKiBAYXJnOiB0aGUgdXNlciBhcmd1bWVudAorICogQG1zZzogdGhlIG1lc3NhZ2UKKyAqIEBzZXZlcml0eTogdGhlIHNldmVyaXR5IG9mIHRoZSBlcnJvcgorICogQGxvY2F0b3I6IGEgbG9jYXRvciBpbmRpY2F0aW5nIHdoZXJlIHRoZSBlcnJvciBvY2N1cmVkCisgKgorICogU2lnbmF0dXJlIG9mIGFuIGVycm9yIGNhbGxiYWNrIGZyb20gYSByZWFkZXIgcGFyc2VyCisgKi8KK3R5cGVkZWYgdm9pZCAgIChYTUxDQUxMICp4bWxUZXh0UmVhZGVyRXJyb3JGdW5jKSh2b2lkICphcmcsCisJCQkJCQkgY29uc3QgY2hhciAqbXNnLAorCQkJCQkJIHhtbFBhcnNlclNldmVyaXRpZXMgc2V2ZXJpdHksCisJCQkJCQkgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgbG9jYXRvcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcih4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciBsb2NhdG9yKTsKKy8qaW50ICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJMb2NhdG9yTGluZVBvc2l0aW9uKHhtbFRleHRSZWFkZXJMb2NhdG9yUHRyIGxvY2F0b3IpOyovCitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJICAgIHhtbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSAoeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgbG9jYXRvcik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIHhtbFRleHRSZWFkZXJFcnJvckZ1bmMgZiwKKwkJCQkJCSB2b2lkICphcmcpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkgICAgeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisJCQkJCQkJICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBmLAorCQkJCQkJCSAgIHZvaWQgKmFyZyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCQkJIHhtbFRleHRSZWFkZXJFcnJvckZ1bmMgKmYsCisJCQkJCQkgdm9pZCAqKmFyZyk7CisKKyNlbmRpZiAvKiBMSUJYTUxfUkVBREVSX0VOQUJMRUQgKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIF9fWE1MX1hNTFJFQURFUl9IX18gKi8KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxyZWdleHAuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1scmVnZXhwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzAwOTY0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1scmVnZXhwLmgKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiBTdW1tYXJ5OiByZWd1bGFyIGV4cHJlc3Npb25zIGhhbmRsaW5nCisgKiBEZXNjcmlwdGlvbjogYmFzaWMgQVBJIGZvciBsaWJ4bWwgcmVndWxhciBleHByZXNzaW9ucyBoYW5kbGluZyB1c2VkCisgKiAgICAgICAgICAgICAgZm9yIFhNTCBTY2hlbWFzIGFuZCB2YWxpZGF0aW9uLgorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfUkVHRVhQX0hfXworI2RlZmluZSBfX1hNTF9SRUdFWFBfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiB4bWxSZWdleHBQdHI6CisgKgorICogQSBsaWJ4bWwgcmVndWxhciBleHByZXNzaW9uLCB0aGV5IGNhbiBhY3R1YWxseSBiZSBmYXIgbW9yZSBjb21wbGV4CisgKiB0aGFuayB0aGUgUE9TSVggcmVnZXggZXhwcmVzc2lvbnMuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxSZWdleHAgeG1sUmVnZXhwOwordHlwZWRlZiB4bWxSZWdleHAgKnhtbFJlZ2V4cFB0cjsKKworLyoqCisgKiB4bWxSZWdFeGVjQ3R4dFB0cjoKKyAqCisgKiBBIGxpYnhtbCBwcm9ncmVzc2l2ZSByZWd1bGFyIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBjb250ZXh0CisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxSZWdFeGVjQ3R4dCB4bWxSZWdFeGVjQ3R4dDsKK3R5cGVkZWYgeG1sUmVnRXhlY0N0eHQgKnhtbFJlZ0V4ZWNDdHh0UHRyOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL2RpY3QuaD4KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIFRoZSBQT1NJWCBsaWtlIEFQSQorICovCitYTUxQVUJGVU4geG1sUmVnZXhwUHRyIFhNTENBTEwKKwkJICAgIHhtbFJlZ2V4cENvbXBpbGUJKGNvbnN0IHhtbENoYXIgKnJlZ2V4cCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJIHhtbFJlZ0ZyZWVSZWdleHAoeG1sUmVnZXhwUHRyIHJlZ2V4cCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFJlZ2V4cEV4ZWMJKHhtbFJlZ2V4cFB0ciBjb21wLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqdmFsdWUpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkgICAgeG1sUmVnZXhwUHJpbnQJKEZJTEUgKm91dHB1dCwKKwkJCQkJIHhtbFJlZ2V4cFB0ciByZWdleHApOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxSZWdleHBJc0RldGVybWluaXN0KHhtbFJlZ2V4cFB0ciBjb21wKTsKKworLyoqCisgKiB4bWxSZWdFeGVjQ2FsbGJhY2tzOgorICogQGV4ZWM6IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gY29udGV4dAorICogQHRva2VuOiB0aGUgY3VycmVudCB0b2tlbiBzdHJpbmcKKyAqIEB0cmFuc2RhdGE6IHRyYW5zaXRpb24gZGF0YQorICogQGlucHV0ZGF0YTogaW5wdXQgZGF0YQorICoKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gZG9pbmcgYSB0cmFuc2l0aW9uIGluIHRoZSBhdXRvbWF0YQorICovCit0eXBlZGVmIHZvaWQgKCp4bWxSZWdFeGVjQ2FsbGJhY2tzKSAoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYywKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkJCSAgICAgdm9pZCAqdHJhbnNkYXRhLAorCQkJCSAgICAgdm9pZCAqaW5wdXRkYXRhKTsKKworLyoKKyAqIFRoZSBwcm9ncmVzc2l2ZSBBUEkKKyAqLworWE1MUFVCRlVOIHhtbFJlZ0V4ZWNDdHh0UHRyIFhNTENBTEwKKwkJICAgIHhtbFJlZ05ld0V4ZWNDdHh0CSh4bWxSZWdleHBQdHIgY29tcCwKKwkJCQkJIHhtbFJlZ0V4ZWNDYWxsYmFja3MgY2FsbGJhY2ssCisJCQkJCSB2b2lkICpkYXRhKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJICAgIHhtbFJlZ0ZyZWVFeGVjQ3R4dAkoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJICAgIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMsCisJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkJIHZvaWQgKmRhdGEpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxSZWdFeGVjUHVzaFN0cmluZzIoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqdmFsdWUyLAorCQkJCQkgdm9pZCAqZGF0YSk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkgICAgeG1sUmVnRXhlY05leHRWYWx1ZXMoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYywKKwkJCQkJIGludCAqbmJ2YWwsCisJCQkJCSBpbnQgKm5ibmVnLAorCQkJCQkgeG1sQ2hhciAqKnZhbHVlcywKKwkJCQkJIGludCAqdGVybWluYWwpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxSZWdFeGVjRXJySW5mbwkoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYywKKwkJCQkJIGNvbnN0IHhtbENoYXIgKipzdHJpbmcsCisJCQkJCSBpbnQgKm5idmFsLAorCQkJCQkgaW50ICpuYm5lZywKKwkJCQkJIHhtbENoYXIgKip2YWx1ZXMsCisJCQkJCSBpbnQgKnRlcm1pbmFsKTsKKyNpZmRlZiBMSUJYTUxfRVhQUl9FTkFCTEVECisvKgorICogRm9ybWFsIHJlZ3VsYXIgZXhwcmVzc2lvbiBoYW5kbGluZworICogSXRzIGdvYWwgaXMgdG8gZG8gc29tZSBmb3JtYWwgd29yayBvbiBjb250ZW50IG1vZGVscworICovCisKKy8qIGV4cHJlc3Npb25zIGFyZSB1c2VkIHdpdGhpbiBhIGNvbnRleHQgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxFeHBDdHh0IHhtbEV4cEN0eHQ7Cit0eXBlZGVmIHhtbEV4cEN0eHQgKnhtbEV4cEN0eHRQdHI7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJCXhtbEV4cEZyZWVDdHh0CSh4bWxFeHBDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHhtbEV4cEN0eHRQdHIgWE1MQ0FMTAorCQkJeG1sRXhwTmV3Q3R4dAkoaW50IG1heE5vZGVzLAorCQkJCQkgeG1sRGljdFB0ciBkaWN0KTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxFeHBDdHh0TmJOb2Rlcyh4bWxFeHBDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCQl4bWxFeHBDdHh0TmJDb25zKHhtbEV4cEN0eHRQdHIgY3R4dCk7CisKKy8qIEV4cHJlc3Npb25zIGFyZSB0cmVlcyBidXQgdGhlIHRyZWUgaXMgb3BhcXVlICovCit0eXBlZGVmIHN0cnVjdCBfeG1sRXhwTm9kZSB4bWxFeHBOb2RlOwordHlwZWRlZiB4bWxFeHBOb2RlICp4bWxFeHBOb2RlUHRyOworCit0eXBlZGVmIGVudW0geworICAgIFhNTF9FWFBfRU1QVFkgPSAwLAorICAgIFhNTF9FWFBfRk9SQklEID0gMSwKKyAgICBYTUxfRVhQX0FUT00gPSAyLAorICAgIFhNTF9FWFBfU0VRID0gMywKKyAgICBYTUxfRVhQX09SID0gNCwKKyAgICBYTUxfRVhQX0NPVU5UID0gNQorfSB4bWxFeHBOb2RlVHlwZTsKKworLyoKKyAqIDIgY29yZSBleHByZXNzaW9ucyBzaGFyZWQgYnkgYWxsIGZvciB0aGUgZW1wdHkgbGFuZ3VhZ2Ugc2V0CisgKiBhbmQgZm9yIHRoZSBzZXQgd2l0aCBqdXN0IHRoZSBlbXB0eSB0b2tlbgorICovCitYTUxQVUJWQVIgeG1sRXhwTm9kZVB0ciBmb3JiaWRkZW5FeHA7CitYTUxQVUJWQVIgeG1sRXhwTm9kZVB0ciBlbXB0eUV4cDsKKworLyoKKyAqIEV4cHJlc3Npb25zIGFyZSByZWZlcmVuY2UgY291bnRlZCBpbnRlcm5hbGx5CisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJCXhtbEV4cEZyZWUJKHhtbEV4cEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgZXhwcik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCQl4bWxFeHBSZWYJKHhtbEV4cE5vZGVQdHIgZXhwcik7CisKKy8qCisgKiBjb25zdHJ1Y3RvcnMgY2FuIGJlIGVpdGhlciBtYW51YWwgb3IgZnJvbSBhIHN0cmluZworICovCitYTUxQVUJGVU4geG1sRXhwTm9kZVB0ciBYTUxDQUxMCisJCQl4bWxFeHBQYXJzZQkoeG1sRXhwQ3R4dFB0ciBjdHh0LAorCQkJCQkgY29uc3QgY2hhciAqZXhwcik7CitYTUxQVUJGVU4geG1sRXhwTm9kZVB0ciBYTUxDQUxMCisJCQl4bWxFeHBOZXdBdG9tCSh4bWxFeHBDdHh0UHRyIGN0eHQsCisJCQkJCSBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4geG1sRXhwTm9kZVB0ciBYTUxDQUxMCisJCQl4bWxFeHBOZXdPcgkoeG1sRXhwQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRXhwTm9kZVB0ciBsZWZ0LAorCQkJCQkgeG1sRXhwTm9kZVB0ciByaWdodCk7CitYTUxQVUJGVU4geG1sRXhwTm9kZVB0ciBYTUxDQUxMCisJCQl4bWxFeHBOZXdTZXEJKHhtbEV4cEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgbGVmdCwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgcmlnaHQpOworWE1MUFVCRlVOIHhtbEV4cE5vZGVQdHIgWE1MQ0FMTAorCQkJeG1sRXhwTmV3UmFuZ2UJKHhtbEV4cEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgc3Vic2V0LAorCQkJCQkgaW50IG1pbiwKKwkJCQkJIGludCBtYXgpOworLyoKKyAqIFRoZSByZWFsbHkgaW50ZXJlc3RpbmcgQVBJcworICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbEV4cElzTmlsbGFibGUoeG1sRXhwTm9kZVB0ciBleHByKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkJeG1sRXhwTWF4VG9rZW4JKHhtbEV4cE5vZGVQdHIgZXhwcik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbEV4cEdldExhbmd1YWdlKHhtbEV4cEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgZXhwciwKKwkJCQkJIGNvbnN0IHhtbENoYXIqKmxhbmdMaXN0LAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJCXhtbEV4cEdldFN0YXJ0CSh4bWxFeHBDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxFeHBOb2RlUHRyIGV4cHIsCisJCQkJCSBjb25zdCB4bWxDaGFyKip0b2tMaXN0LAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4geG1sRXhwTm9kZVB0ciBYTUxDQUxMCisJCQl4bWxFeHBTdHJpbmdEZXJpdmUoeG1sRXhwQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRXhwTm9kZVB0ciBleHByLAorCQkJCQkgY29uc3QgeG1sQ2hhciAqc3RyLAorCQkJCQkgaW50IGxlbik7CitYTUxQVUJGVU4geG1sRXhwTm9kZVB0ciBYTUxDQUxMCisJCQl4bWxFeHBFeHBEZXJpdmUJKHhtbEV4cEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgZXhwciwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgc3ViKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQkJeG1sRXhwU3Vic3VtZQkoeG1sRXhwQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRXhwTm9kZVB0ciBleHByLAorCQkJCQkgeG1sRXhwTm9kZVB0ciBzdWIpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCQkJeG1sRXhwRHVtcAkoeG1sQnVmZmVyUHRyIGJ1ZiwKKwkJCQkJIHhtbEV4cE5vZGVQdHIgZXhwcik7CisjZW5kaWYgLyogTElCWE1MX0VYUFJfRU5BQkxFRCAqLworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIExJQlhNTF9SRUdFWFBfRU5BQkxFRCAqLworCisjZW5kaWYgLypfX1hNTF9SRUdFWFBfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHNhdmUuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sc2F2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMDFiNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHNhdmUuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogU3VtbWFyeTogdGhlIFhNTCBkb2N1bWVudCBzZXJpYWxpemVyCisgKiBEZXNjcmlwdGlvbjogQVBJIHRvIHNhdmUgZG9jdW1lbnQgb3Igc3VidHJlZSBvZiBkb2N1bWVudAorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfWE1MU0FWRV9IX18KKyNkZWZpbmUgX19YTUxfWE1MU0FWRV9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZW5jb2RpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sSU8uaD4KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIHhtbFNhdmVPcHRpb246CisgKgorICogVGhpcyBpcyB0aGUgc2V0IG9mIFhNTCBzYXZlIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIGRvd24KKyAqIHRvIHRoZSB4bWxTYXZlVG9GZCgpIGFuZCBzaW1pbGFyIGNhbGxzLgorICovCit0eXBlZGVmIGVudW0geworICAgIFhNTF9TQVZFX0ZPUk1BVCAgICAgPSAxPDwwLAkvKiBmb3JtYXQgc2F2ZSBvdXRwdXQgKi8KKyAgICBYTUxfU0FWRV9OT19ERUNMICAgID0gMTw8MSwJLyogZHJvcCB0aGUgeG1sIGRlY2xhcmF0aW9uICovCisgICAgWE1MX1NBVkVfTk9fRU1QVFkJPSAxPDwyLCAvKiBubyBlbXB0eSB0YWdzICovCisgICAgWE1MX1NBVkVfTk9fWEhUTUwJPSAxPDwzLCAvKiBkaXNhYmxlIFhIVE1MMSBzcGVjaWZpYyBydWxlcyAqLworICAgIFhNTF9TQVZFX1hIVE1MCT0gMTw8NCwgLyogZm9yY2UgWEhUTUwxIHNwZWNpZmljIHJ1bGVzICovCisgICAgWE1MX1NBVkVfQVNfWE1MICAgICA9IDE8PDUsIC8qIGZvcmNlIFhNTCBzZXJpYWxpemF0aW9uIG9uIEhUTUwgZG9jICovCisgICAgWE1MX1NBVkVfQVNfSFRNTCAgICA9IDE8PDYgIC8qIGZvcmNlIEhUTUwgc2VyaWFsaXphdGlvbiBvbiBYTUwgZG9jICovCit9IHhtbFNhdmVPcHRpb247CisKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNhdmVDdHh0IHhtbFNhdmVDdHh0OwordHlwZWRlZiB4bWxTYXZlQ3R4dCAqeG1sU2F2ZUN0eHRQdHI7CisKK1hNTFBVQkZVTiB4bWxTYXZlQ3R4dFB0ciBYTUxDQUxMCisJCXhtbFNhdmVUb0ZkCQkoaW50IGZkLAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4geG1sU2F2ZUN0eHRQdHIgWE1MQ0FMTAorCQl4bWxTYXZlVG9GaWxlbmFtZQkoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJCSBjb25zdCBjaGFyICplbmNvZGluZywKKwkJCQkJIGludCBvcHRpb25zKTsKKworWE1MUFVCRlVOIHhtbFNhdmVDdHh0UHRyIFhNTENBTEwKKwkJeG1sU2F2ZVRvQnVmZmVyCQkoeG1sQnVmZmVyUHRyIGJ1ZmZlciwKKwkJCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorCQkJCQkgaW50IG9wdGlvbnMpOworCitYTUxQVUJGVU4geG1sU2F2ZUN0eHRQdHIgWE1MQ0FMTAorCQl4bWxTYXZlVG9JTwkJKHhtbE91dHB1dFdyaXRlQ2FsbGJhY2sgaW93cml0ZSwKKwkJCQkJIHhtbE91dHB1dENsb3NlQ2FsbGJhY2sgaW9jbG9zZSwKKwkJCQkJIHZvaWQgKmlvY3R4LAorCQkJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsCisJCQkJCSBpbnQgb3B0aW9ucyk7CisKK1hNTFBVQkZVTiBsb25nIFhNTENBTEwKKwkJeG1sU2F2ZURvYwkJKHhtbFNhdmVDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxEb2NQdHIgZG9jKTsKK1hNTFBVQkZVTiBsb25nIFhNTENBTEwKKwkJeG1sU2F2ZVRyZWUJCSh4bWxTYXZlQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sTm9kZVB0ciBub2RlKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNhdmVGbHVzaAkJKHhtbFNhdmVDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNhdmVDbG9zZQkJKHhtbFNhdmVDdHh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNhdmVTZXRFc2NhcGUJKHhtbFNhdmVDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIGVzY2FwZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sU2F2ZVNldEF0dHJFc2NhcGUJKHhtbFNhdmVDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIGVzY2FwZSk7CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2VuZGlmIC8qIF9fWE1MX1hNTFNBVkVfSF9fICovCisKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHNjaGVtYXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTJiYzNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxzY2hlbWFzLmgKQEAgLTAsMCArMSwyMTggQEAKKy8qCisgKiBTdW1tYXJ5OiBpbmNvbXBsZXRlIFhNTCBTY2hlbWFzIHN0cnVjdHVyZSBpbXBsZW1lbnRhdGlvbgorICogRGVzY3JpcHRpb246IGludGVyZmFjZSB0byB0aGUgWE1MIFNjaGVtYXMgaGFuZGxpbmcgYW5kIHNjaGVtYSB2YWxpZGl0eQorICogICAgICAgICAgICAgIGNoZWNraW5nLCBpdCBpcyBpbmNvbXBsZXRlIHJpZ2h0IG5vdy4KKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisKKyNpZm5kZWYgX19YTUxfU0NIRU1BX0hfXworI2RlZmluZSBfX1hNTF9TQ0hFTUFfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIFRoaXMgZXJyb3IgY29kZXMgYXJlIG9ic29sZXRlOyBub3QgdXNlZCBhbnkgbW9yZS4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfU0NIRU1BU19FUlJfT0sJCT0gMCwKKyAgICBYTUxfU0NIRU1BU19FUlJfTk9ST09UCT0gMSwKKyAgICBYTUxfU0NIRU1BU19FUlJfVU5ERUNMQVJFREVMRU0sCisgICAgWE1MX1NDSEVNQVNfRVJSX05PVFRPUExFVkVMLAorICAgIFhNTF9TQ0hFTUFTX0VSUl9NSVNTSU5HLAorICAgIFhNTF9TQ0hFTUFTX0VSUl9XUk9OR0VMRU0sCisgICAgWE1MX1NDSEVNQVNfRVJSX05PVFlQRSwKKyAgICBYTUxfU0NIRU1BU19FUlJfTk9ST0xMQkFDSywKKyAgICBYTUxfU0NIRU1BU19FUlJfSVNBQlNUUkFDVCwKKyAgICBYTUxfU0NIRU1BU19FUlJfTk9URU1QVFksCisgICAgWE1MX1NDSEVNQVNfRVJSX0VMRU1DT05ULAorICAgIFhNTF9TQ0hFTUFTX0VSUl9IQVZFREVGQVVMVCwKKyAgICBYTUxfU0NIRU1BU19FUlJfTk9UTklMTEFCTEUsCisgICAgWE1MX1NDSEVNQVNfRVJSX0VYVFJBQ09OVEVOVCwKKyAgICBYTUxfU0NIRU1BU19FUlJfSU5WQUxJREFUVFIsCisgICAgWE1MX1NDSEVNQVNfRVJSX0lOVkFMSURFTEVNLAorICAgIFhNTF9TQ0hFTUFTX0VSUl9OT1RERVRFUk1JTklTVCwKKyAgICBYTUxfU0NIRU1BU19FUlJfQ09OU1RSVUNULAorICAgIFhNTF9TQ0hFTUFTX0VSUl9JTlRFUk5BTCwKKyAgICBYTUxfU0NIRU1BU19FUlJfTk9UU0lNUExFLAorICAgIFhNTF9TQ0hFTUFTX0VSUl9BVFRSVU5LTk9XTiwKKyAgICBYTUxfU0NIRU1BU19FUlJfQVRUUklOVkFMSUQsCisgICAgWE1MX1NDSEVNQVNfRVJSX1ZBTFVFLAorICAgIFhNTF9TQ0hFTUFTX0VSUl9GQUNFVCwKKyAgICBYTUxfU0NIRU1BU19FUlJfLAorICAgIFhNTF9TQ0hFTUFTX0VSUl9YWFgKK30geG1sU2NoZW1hVmFsaWRFcnJvcjsKKworLyoKKyogQVRURU5USU9OOiBDaGFuZ2UgeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zJ3MgY2hlY2sKKyogZm9yIGludmFsaWQgdmFsdWVzLCBpZiBhZGRpbmcgdG8gdGhlIHZhbGlkYXRpb24KKyogb3B0aW9ucyBiZWxvdy4KKyovCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkT3B0aW9uOgorICoKKyAqIFRoaXMgaXMgdGhlIHNldCBvZiBYTUwgU2NoZW1hIHZhbGlkYXRpb24gb3B0aW9ucy4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfU0NIRU1BX1ZBTF9WQ19JX0NSRUFURQkJCT0gMTw8MAorCS8qIERlZmF1bHQvZml4ZWQ6IGNyZWF0ZSBhbiBhdHRyaWJ1dGUgbm9kZQorCSogb3IgYW4gZWxlbWVudCdzIHRleHQgbm9kZSBvbiB0aGUgaW5zdGFuY2UuCisJKi8KK30geG1sU2NoZW1hVmFsaWRPcHRpb247CisKKy8qCisgICAgWE1MX1NDSEVNQV9WQUxfWFNJX0FTU0VNQkxFCQkJPSAxPDwxLAorCSogYXNzZW1ibGUgc2NoZW1hdGEgdXNpbmcKKwkqIHhzaTpzY2hlbWFMb2NhdGlvbiBhbmQKKwkqIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uCisqLworCisvKioKKyAqIFRoZSBzY2hlbWFzIHJlbGF0ZWQgdHlwZXMgYXJlIGtlcHQgaW50ZXJuYWwKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYSB4bWxTY2hlbWE7Cit0eXBlZGVmIHhtbFNjaGVtYSAqeG1sU2NoZW1hUHRyOworCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jOgorICogQGN0eDogdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQG1zZzogdGhlIG1lc3NhZ2UKKyAqIEAuLi46IGV4dHJhIGFyZ3VtZW50cworICoKKyAqIFNpZ25hdHVyZSBvZiBhbiBlcnJvciBjYWxsYmFjayBmcm9tIGFuIFhTRCB2YWxpZGF0aW9uCisgKi8KK3R5cGVkZWYgdm9pZCAoWE1MQ0RFQ0wgKnhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jKSAodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikgTElCWE1MX0FUVFJfRk9STUFUKDIsMyk7CisKKy8qKgorICogeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYzoKKyAqIEBjdHg6IHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBtc2c6IHRoZSBtZXNzYWdlCisgKiBALi4uOiBleHRyYSBhcmd1bWVudHMKKyAqCisgKiBTaWduYXR1cmUgb2YgYSB3YXJuaW5nIGNhbGxiYWNrIGZyb20gYW4gWFNEIHZhbGlkYXRpb24KKyAqLwordHlwZWRlZiB2b2lkIChYTUxDREVDTCAqeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYykgKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDMpOworCisvKioKKyAqIEEgc2NoZW1hcyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVBhcnNlckN0eHQgeG1sU2NoZW1hUGFyc2VyQ3R4dDsKK3R5cGVkZWYgeG1sU2NoZW1hUGFyc2VyQ3R4dCAqeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVZhbGlkQ3R4dCB4bWxTY2hlbWFWYWxpZEN0eHQ7Cit0eXBlZGVmIHhtbFNjaGVtYVZhbGlkQ3R4dCAqeG1sU2NoZW1hVmFsaWRDdHh0UHRyOworCisvKgorICogSW50ZXJmYWNlcyBmb3IgcGFyc2luZy4KKyAqLworWE1MUFVCRlVOIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0CShjb25zdCBjaGFyICpVUkwpOworWE1MUFVCRlVOIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0CShjb25zdCBjaGFyICpidWZmZXIsCisJCQkJCSBpbnQgc2l6ZSk7CitYTUxQVUJGVU4geG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBYTUxDQUxMCisJICAgIHhtbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQJKHhtbERvY1B0ciBkb2MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dAkoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkgICAgeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzCSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyBlcnIsCisJCQkJCSB4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm4sCisJCQkJCSB2b2lkICpjdHgpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2Vycm9yLAorCQkJCQkgdm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQl4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyAqIGVyciwKKwkJCQkJeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyAqIHdhcm4sCisJCQkJCXZvaWQgKipjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNjaGVtYUlzVmFsaWQJKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0KTsKKworWE1MUFVCRlVOIHhtbFNjaGVtYVB0ciBYTUxDQUxMCisJICAgIHhtbFNjaGVtYVBhcnNlCQkoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkgICAgeG1sU2NoZW1hRnJlZQkJKHhtbFNjaGVtYVB0ciBzY2hlbWEpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFEdW1wCQkoRklMRSAqb3V0cHV0LAorCQkJCQkgeG1sU2NoZW1hUHRyIHNjaGVtYSk7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisvKgorICogSW50ZXJmYWNlcyBmb3IgdmFsaWRhdGluZworICovCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJICAgIHhtbFNjaGVtYVNldFZhbGlkRXJyb3JzCSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIGVyciwKKwkJCQkJIHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMgd2FybiwKKwkJCQkJIHZvaWQgKmN0eCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJICAgIHhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2Vycm9yLAorCQkJCQkgdm9pZCAqY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFHZXRWYWxpZEVycm9ycwkoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyAqZXJyLAorCQkJCQkgeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyAqd2FybiwKKwkJCQkJIHZvaWQgKipjdHgpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJICAgIHhtbFNjaGVtYVNldFZhbGlkT3B0aW9ucwkoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSBpbnQgb3B0aW9ucyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkgICAgeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCk7CisKK1hNTFBVQkZVTiB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFOZXdWYWxpZEN0eHQJKHhtbFNjaGVtYVB0ciBzY2hlbWEpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0CSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkgICAgeG1sU2NoZW1hVmFsaWRhdGVEb2MJKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sRG9jUHRyIGluc3RhbmNlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICAgICAgeG1sU2NoZW1hVmFsaWRhdGVPbmVFbGVtZW50ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCSAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBlbGVtKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbQkoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJCSB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCwKKwkJCQkJIHhtbENoYXJFbmNvZGluZyBlbmMsCisJCQkJCSB4bWxTQVhIYW5kbGVyUHRyIHNheCwKKwkJCQkJIHZvaWQgKnVzZXJfZGF0YSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkgICAgeG1sU2NoZW1hVmFsaWRhdGVGaWxlCSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkJIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwKKwkJCQkJIGludCBvcHRpb25zKTsKKworWE1MUFVCRlVOIHhtbFBhcnNlckN0eHRQdHIgWE1MQ0FMTAorCSAgICB4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0KHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0KTsKKworLyoKKyAqIEludGVyZmFjZSB0byBpbnNlcnQgU2NoZW1hcyBTQVggdmFsaWRhdGlvbiBpbiBhIFNBWCBzdHJlYW0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVNBWFBsdWcgeG1sU2NoZW1hU0FYUGx1Z1N0cnVjdDsKK3R5cGVkZWYgeG1sU2NoZW1hU0FYUGx1Z1N0cnVjdCAqeG1sU2NoZW1hU0FYUGx1Z1B0cjsKKworWE1MUFVCRlVOIHhtbFNjaGVtYVNBWFBsdWdQdHIgWE1MQ0FMTAorICAgICAgICAgICAgeG1sU2NoZW1hU0FYUGx1ZwkJKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJCQkgeG1sU0FYSGFuZGxlclB0ciAqc2F4LAorCQkJCQkgdm9pZCAqKnVzZXJfZGF0YSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgICAgIHhtbFNjaGVtYVNBWFVucGx1ZwkJKHhtbFNjaGVtYVNBWFBsdWdQdHIgcGx1Zyk7CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX1NDSEVNQVNfRU5BQkxFRCAqLworI2VuZGlmIC8qIF9fWE1MX1NDSEVNQV9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sc2NoZW1hc3R5cGVzLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhM2E3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHNjaGVtYXN0eXBlcy5oCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogU3VtbWFyeTogaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYSBEYXRhdHlwZXMKKyAqIERlc2NyaXB0aW9uOiBtb2R1bGUgcHJvdmlkaW5nIHRoZSBYTUwgU2NoZW1hIERhdGF0eXBlcyBpbXBsZW1lbnRhdGlvbgorICogICAgICAgICAgICAgIGJvdGggZGVmaW5pdGlvbiBhbmQgdmFsaWRpdHkgY2hlY2tpbmcKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisKKyNpZm5kZWYgX19YTUxfU0NIRU1BX1RZUEVTX0hfXworI2RlZmluZSBfX1hNTF9TQ0hFTUFfVFlQRVNfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisjaW5jbHVkZSA8bGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04gPSAwLAorICAgIFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRSA9IDEsCisgICAgWE1MX1NDSEVNQV9XSElURVNQQUNFX1JFUExBQ0UgPSAyLAorICAgIFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSA9IDMKK30geG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTsKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisgICAgCQl4bWxTY2hlbWFJbml0VHlwZXMJCSh2b2lkKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxTY2hlbWFDbGVhbnVwVHlwZXMJCSh2b2lkKTsKK1hNTFBVQkZVTiB4bWxTY2hlbWFUeXBlUHRyIFhNTENBTEwgCisJCXhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlCShjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5zKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJCisJCXhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUJKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkJCSB4bWxTY2hlbWFWYWxQdHIgKnZhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZQkoeG1sU2NoZW1hVHlwZVB0ciB0eXBlLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkJIHhtbFNjaGVtYVZhbFB0ciAqdmFsLAorCQkJCQkJIHhtbE5vZGVQdHIgbm9kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0CQkoeG1sU2NoZW1hVHlwZVB0ciBiYXNlLAorCQkJCQkJIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkJIHhtbFNjaGVtYVZhbFB0ciB2YWwpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcAkoeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQsCisJCQkJCQkgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSBmd3MsCisJCQkJCQkgeG1sU2NoZW1hVmFsVHlwZSB2YWxUeXBlLAkJCQkJCSAKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkJCSB4bWxTY2hlbWFWYWxQdHIgdmFsLAorCQkJCQkJIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCisJCXhtbFNjaGVtYUZyZWVWYWx1ZQkJKHhtbFNjaGVtYVZhbFB0ciB2YWwpOworWE1MUFVCRlVOIHhtbFNjaGVtYUZhY2V0UHRyIFhNTENBTEwgCisJCXhtbFNjaGVtYU5ld0ZhY2V0CQkodm9pZCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxTY2hlbWFDaGVja0ZhY2V0CQkoeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQsCisJCQkJCQkgeG1sU2NoZW1hVHlwZVB0ciB0eXBlRGVjbCwKKwkJCQkJCSB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJeG1sU2NoZW1hRnJlZUZhY2V0CQkoeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sU2NoZW1hQ29tcGFyZVZhbHVlcwkJKHhtbFNjaGVtYVZhbFB0ciB4LAorCQkJCQkJIHhtbFNjaGVtYVZhbFB0ciB5KTsKK1hNTFBVQkZVTiB4bWxTY2hlbWFUeXBlUHRyIFhNTENBTEwJCQorICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlCSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0CSh4bWxTY2hlbWFGYWNldFB0ciBmYWNldCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkJCSB1bnNpZ25lZCBsb25nIGFjdHVhbExlbiwKKwkJCQkJCSB1bnNpZ25lZCBsb25nICpleHBlY3RlZExlbik7CitYTUxQVUJGVU4geG1sU2NoZW1hVHlwZVB0ciBYTUxDQUxMCisJCXhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlCQkoeG1sU2NoZW1hVmFsVHlwZSB0eXBlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQJKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwgCisJCQkJCQkgaW50IGZhY2V0VHlwZSk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcJCShjb25zdCB4bWxDaGFyICp2YWx1ZSk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UJKGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiB1bnNpZ25lZCBsb25nICBYTUxDQUxMCisJCXhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nCSh4bWxTY2hlbWFGYWNldFB0ciBmYWNldCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldAkoeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCAKKwkJCQkJCSB4bWxTY2hlbWFGYWNldFB0ciBmYWNldCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkJCSB4bWxTY2hlbWFWYWxQdHIgdmFsLAorCQkJCQkJIHVuc2lnbmVkIGxvbmcgKmxlbmd0aCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwKHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0LAorCQkJCQkJICB4bWxTY2hlbWFWYWxUeXBlIHZhbFR5cGUsCisJCQkJCQkgIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCQkJICB4bWxTY2hlbWFWYWxQdHIgdmFsLAkJCQkJCSAgCisJCQkJCQkgIHVuc2lnbmVkIGxvbmcgKmxlbmd0aCwKKwkJCQkJCSAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB3cyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0oeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCAKKwkJCQkJCSBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkJCSB4bWxTY2hlbWFWYWxQdHIgKnZhbCwgCisJCQkJCQkgeG1sTm9kZVB0ciBub2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorCQl4bWxTY2hlbWFHZXRDYW5vblZhbHVlCQkoeG1sU2NoZW1hVmFsUHRyIHZhbCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICoqcmV0VmFsdWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcAkoeG1sU2NoZW1hVmFsUHRyIHZhbCwJCQkJCQkgCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqKnJldFZhbHVlLAorCQkJCQkJIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3MpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNjaGVtYVZhbHVlQXBwZW5kCQkoeG1sU2NoZW1hVmFsUHRyIHByZXYsCisJCQkJCQkgeG1sU2NoZW1hVmFsUHRyIGN1cik7CitYTUxQVUJGVU4geG1sU2NoZW1hVmFsUHRyIFhNTENBTEwKKwkJeG1sU2NoZW1hVmFsdWVHZXROZXh0CQkoeG1sU2NoZW1hVmFsUHRyIGN1cik7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwKKwkJeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZwkoeG1sU2NoZW1hVmFsUHRyIHZhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4JKHhtbFNjaGVtYVZhbFB0ciB2YWwpOworWE1MUFVCRlVOIHhtbFNjaGVtYVZhbFB0ciBYTUxDQUxMCisJCXhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlCQkoeG1sU2NoZW1hVmFsVHlwZSB0eXBlLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnZhbHVlKTsKK1hNTFBVQkZVTiB4bWxTY2hlbWFWYWxQdHIgWE1MQ0FMTAorCQl4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlCShjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5zKTsKK1hNTFBVQkZVTiB4bWxTY2hlbWFWYWxQdHIgWE1MQ0FMTAorCQl4bWxTY2hlbWFOZXdRTmFtZVZhbHVlCQkoY29uc3QgeG1sQ2hhciAqbmFtZXNwYWNlTmFtZSwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpsb2NhbE5hbWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCXhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcAkoeG1sU2NoZW1hVmFsUHRyIHgsCisJCQkJCQkgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB4d3MsCisJCQkJCQkgeG1sU2NoZW1hVmFsUHRyIHksCisJCQkJCQkgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB5d3MpOworWE1MUFVCRlVOIHhtbFNjaGVtYVZhbFB0ciBYTUxDQUxMCisJCXhtbFNjaGVtYUNvcHlWYWx1ZQkJKHhtbFNjaGVtYVZhbFB0ciB2YWwpOworWE1MUFVCRlVOIHhtbFNjaGVtYVZhbFR5cGUgWE1MQ0FMTAorCQl4bWxTY2hlbWFHZXRWYWxUeXBlCQkoeG1sU2NoZW1hVmFsUHRyIHZhbCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCisjZW5kaWYgLyogX19YTUxfU0NIRU1BX1RZUEVTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWxzdHJpbmcuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sc3RyaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjNjg4OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sc3RyaW5nLmgKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBTdW1tYXJ5OiBzZXQgb2Ygcm91dGluZXMgdG8gcHJvY2VzcyBzdHJpbmdzCisgKiBEZXNjcmlwdGlvbjogdHlwZSBhbmQgaW50ZXJmYWNlcyBuZWVkZWQgZm9yIHRoZSBpbnRlcm5hbCBzdHJpbmcgaGFuZGxpbmcKKyAqICAgICAgICAgICAgICBvZiB0aGUgbGlicmFyeSwgZXNwZWNpYWxseSBVVEY4IHByb2Nlc3NpbmcuCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9TVFJJTkdfSF9fCisjZGVmaW5lIF9fWE1MX1NUUklOR19IX18KKworI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiB4bWxDaGFyOgorICoKKyAqIFRoaXMgaXMgYSBiYXNpYyBieXRlIGluIGFuIFVURi04IGVuY29kZWQgc3RyaW5nLgorICogSXQncyB1bnNpZ25lZCBhbGxvd2luZyB0byBwaW5wb2ludCBjYXNlIHdoZXJlIGNoYXIgKiBhcmUgYXNzaWduZWQKKyAqIHRvIHhtbENoYXIgKiAocG9zc2libHkgbWFraW5nIHNlcmlhbGl6YXRpb24gYmFjayBpbXBvc3NpYmxlKS4KKyAqLwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIHhtbENoYXI7CisKKy8qKgorICogQkFEX0NBU1Q6CisgKgorICogTWFjcm8gdG8gY2FzdCBhIHN0cmluZyB0byBhbiB4bWxDaGFyICogd2hlbiBvbmUga25vdyBpdHMgc2FmZS4KKyAqLworI2RlZmluZSBCQURfQ0FTVCAoeG1sQ2hhciAqKQorCisvKgorICogeG1sQ2hhciBoYW5kbGluZworICovCitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJkdXAgICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKmN1cik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJuZHVwICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKmN1ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxDaGFyU3RybmR1cCAgICAgICAgICAgKGNvbnN0IGNoYXIgKmN1ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxDaGFyU3RyZHVwICAgICAgICAgICAgKGNvbnN0IGNoYXIgKmN1cik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJzdWIgICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAorICAgICAgICAgICAgICAgIHhtbFN0cmNociAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyIHZhbCk7CitYTUxQVUJGVU4gY29uc3QgeG1sQ2hhciAqIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJzdHIgICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqdmFsKTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAorICAgICAgICAgICAgICAgIHhtbFN0cmNhc2VzdHIgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICp2YWwpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgICAgICAgICAgeG1sU3RyY21wICAgICAgICAgICAgICAgIChjb25zdCB4bWxDaGFyICpzdHIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpzdHIyKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICAgICAgICAgIHhtbFN0cm5jbXAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqc3RyMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3RyMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJjYXNlY21wICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKnN0cjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnN0cjIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgICAgICAgICAgeG1sU3RybmNhc2VjbXAgICAgICAgICAgIChjb25zdCB4bWxDaGFyICpzdHIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpzdHIyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICAgICAgICAgIHhtbFN0ckVxdWFsICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqc3RyMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqc3RyMik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJRRXF1YWwgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKnByZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnN0cik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJsZW4gICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKnN0cik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJjYXQgICAgICAgICAgICAgICAgKHhtbENoYXIgKmN1ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqYWRkKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAorICAgICAgICAgICAgICAgIHhtbFN0cm5jYXQgICAgICAgICAgICAgICAoeG1sQ2hhciAqY3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICphZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCisgICAgICAgICAgICAgICAgeG1sU3RybmNhdE5ldyAgICAgICAgICAgIChjb25zdCB4bWxDaGFyICpzdHIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpzdHIyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICAgICAgICAgIHhtbFN0clByaW50ZiAgICAgICAgICAgICAoeG1sQ2hhciAqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICptc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgICAgICAgICB4bWxTdHJWUHJpbnRmICAgICAgICAgICAgICAgICh4bWxDaGFyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcCk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxHZXRVVEY4Q2hhciAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqdXRmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmxlbik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sQ2hlY2tVVEY4ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnV0Zik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVVRGOFN0cnNpemUgICAgICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKnV0ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbik7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwgCisgICAgICAgIHhtbFVURjhTdHJuZHVwICAgICAgICAgICAgICAgICAgIChjb25zdCB4bWxDaGFyICp1dGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pOworWE1MUFVCRlVOIGNvbnN0IHhtbENoYXIgKiBYTUxDQUxMIAorICAgICAgICB4bWxVVEY4U3RycG9zICAgICAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqdXRmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxVVEY4U3RybG9jICAgICAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqdXRmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICp1dGZjaGFyKTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTCAKKyAgICAgICAgeG1sVVRGOFN0cnN1YiAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHhtbENoYXIgKnV0ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxVVEY4U3RybGVuICAgICAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqdXRmKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxVVEY4U2l6ZSAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqdXRmKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxVVEY4Q2hhcmNtcCAgICAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqdXRmMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqdXRmMik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLyogX19YTUxfU1RSSU5HX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWx1bmljb2RlLmggYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHVuaWNvZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWFjOGI2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWx1bmljb2RlLmgKQEAgLTAsMCArMSwyMDIgQEAKKy8qCisgKiBTdW1tYXJ5OiBVbmljb2RlIGNoYXJhY3RlciBBUElzCisgKiBEZXNjcmlwdGlvbjogQVBJIGZvciB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgQVBJcworICoKKyAqIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZQorICogVUNTIGRlc2NyaXB0aW9uIGZpbGVzIG9mIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZQorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNC4wLVVwZGF0ZTEvVUNELTQuMC4xLmh0bWwKKyAqIHVzaW5nIHRoZSBnZW5Vbmljb2RlLnB5IFB5dGhvbiBzY3JpcHQuCisgKgorICogR2VuZXJhdGlvbiBkYXRlOiBNb24gTWFyIDI3IDExOjA5OjUyIDIwMDYKKyAqIFNvdXJjZXM6IEJsb2Nrcy00LjAuMS50eHQgVW5pY29kZURhdGEtNC4wLjEudHh0CisgKiBBdXRob3I6IERhbmllbCBWZWlsbGFyZAorICovCisKKyNpZm5kZWYgX19YTUxfVU5JQ09ERV9IX18KKyNkZWZpbmUgX19YTUxfVU5JQ09ERV9IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpZmRlZiBMSUJYTUxfVU5JQ09ERV9FTkFCTEVECisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQWVnZWFuTnVtYmVycwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNBcmFiaWMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNBcm1lbmlhbgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQXJyb3dzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNCYXNpY0xhdGluCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNCZW5nYWxpCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNCbG9ja0VsZW1lbnRzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNCb3BvbW9mbwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQm94RHJhd2luZwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNCdWhpZAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHkJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50CShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24JKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2hlcm9rZWUJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9scwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ29udHJvbFBpY3R1cmVzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0N5cmlsbGljCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0Rlc2VyZXQJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0RldmFuYWdhcmkJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0RpbmdiYXRzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzRXRoaW9waWMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzR2VvbWV0cmljU2hhcGVzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNHZW9yZ2lhbgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzR290aGljCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNHcmVlawkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzR3JlZWtFeHRlbmRlZAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzR3JlZWthbmRDb3B0aWMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0d1amFyYXRpCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNHdXJtdWtoaQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNIYW5ndWxKYW1vCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0hhbnVub28JKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0hlYnJldwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNIaWdoU3Vycm9nYXRlcwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzSGlyYWdhbmEJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0lQQUV4dGVuc2lvbnMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNLYW5idW4JKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0thbmd4aVJhZGljYWxzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNLYW5uYWRhCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNLYXRha2FuYQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0tobWVyCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNLaG1lclN5bWJvbHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0xhbwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEEJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0xpbWJ1CShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5CShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNMb3dTdXJyb2dhdGVzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNNYWxheWFsYW0JKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9ycwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTW9uZ29saWFuCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNNdXNpY2FsU3ltYm9scwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTXlhbm1hcgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzTnVtYmVyRm9ybXMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc09naGFtCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNPbGRJdGFsaWMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzT3JpeWEJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc09zbWFueWEJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9ucwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzUHJpdmF0ZVVzZQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzUHJpdmF0ZVVzZUFyZWEJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1J1bmljCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNTaGF2aWFuCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNTaW5oYWxhCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNTbWFsbEZvcm1WYXJpYW50cwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzU3BlY2lhbHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1N1cHBsZW1lbnRhbE1hdGhlbWF0aWNhbE9wZXJhdG9ycwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzU3lyaWFjCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNUYWdhbG9nCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNUYWdiYW53YQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzVGFncwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzVGFpTGUJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9scwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzVGFtaWwJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc1RlbHVndQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzVGhhYW5hCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNUaGFpCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNUaWJldGFuCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNVZ2FyaXRpYwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50CShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNZaVJhZGljYWxzCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNZaVN5bGxhYmxlcwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzCShpbnQgY29kZSk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0Jsb2NrCShpbnQgY29kZSwgY29uc3QgY2hhciAqYmxvY2spOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRDCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRDYwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0Q2YJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdENvCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRDcwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0TAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0TGwJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdExtCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRMbwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0THQJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdEx1CShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRNCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRNYwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0TWUJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdE1uCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXROCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXROZAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0TmwJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdE5vCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRQCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRQYwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0UGQJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdFBlCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRQZgkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0UGkJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdFBvCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRQcwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0UwkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0U2MJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdFNrCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRTbQkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0U28JKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdFoJKGludCBjb2RlKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxVQ1NJc0NhdFpsCShpbnQgY29kZSk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVUNTSXNDYXRacAkoaW50IGNvZGUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0WnMJKGludCBjb2RlKTsKKworWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFVDU0lzQ2F0CShpbnQgY29kZSwgY29uc3QgY2hhciAqY2F0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIExJQlhNTF9VTklDT0RFX0VOQUJMRUQgKi8KKworI2VuZGlmIC8qIF9fWE1MX1VOSUNPREVfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiYmIwOGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3htbHZlcnNpb24uaApAQCAtMCwwICsxLDQ1OCBAQAorLyoKKyAqIFN1bW1hcnk6IGNvbXBpbGUtdGltZSB2ZXJzaW9uIGluZm9ybWF0aW9ucworICogRGVzY3JpcHRpb246IGNvbXBpbGUtdGltZSB2ZXJzaW9uIGluZm9ybWF0aW9ucyBmb3IgdGhlIFhNTCBsaWJyYXJ5CisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9WRVJTSU9OX0hfXworI2RlZmluZSBfX1hNTF9WRVJTSU9OX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbGV4cG9ydHMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogdXNlIHRob3NlIHRvIGJlIHN1cmUgbm90aGluZyBuYXN0eSB3aWxsIGhhcHBlbiBpZgorICogeW91ciBsaWJyYXJ5IGFuZCBpbmNsdWRlcyBtaXNtYXRjaAorICovCisjaWZuZGVmIExJQlhNTDJfQ09NUElMSU5HX01TQ0NERUYKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sQ2hlY2tWZXJzaW9uKGludCB2ZXJzaW9uKTsKKyNlbmRpZiAvKiBMSUJYTUwyX0NPTVBJTElOR19NU0NDREVGICovCisKKy8qKgorICogTElCWE1MX0RPVFRFRF9WRVJTSU9OOgorICoKKyAqIHRoZSB2ZXJzaW9uIHN0cmluZyBsaWtlICIxLjIuMyIKKyAqLworI2RlZmluZSBMSUJYTUxfRE9UVEVEX1ZFUlNJT04gIjIuNy43IgorCisvKioKKyAqIExJQlhNTF9WRVJTSU9OOgorICoKKyAqIHRoZSB2ZXJzaW9uIG51bWJlcjogMS4yLjMgdmFsdWUgaXMgMTAyMDMKKyAqLworI2RlZmluZSBMSUJYTUxfVkVSU0lPTiAyMDcwNworCisvKioKKyAqIExJQlhNTF9WRVJTSU9OX1NUUklORzoKKyAqCisgKiB0aGUgdmVyc2lvbiBudW1iZXIgc3RyaW5nLCAxLjIuMyB2YWx1ZSBpcyAiMTAyMDMiCisgKi8KKyNkZWZpbmUgTElCWE1MX1ZFUlNJT05fU1RSSU5HICIyMDcwNyIKKworLyoqCisgKiBMSUJYTUxfVkVSU0lPTl9FWFRSQToKKyAqCisgKiBleHRyYSB2ZXJzaW9uIGluZm9ybWF0aW9uLCB1c2VkIHRvIHNob3cgYSBDVlMgY29tcGlsYXRpb24KKyAqLworI2RlZmluZSBMSUJYTUxfVkVSU0lPTl9FWFRSQSAiLUdJVHYyLjcuNi0zNi1nMDZjOTNiNyIKKworLyoqCisgKiBMSUJYTUxfVEVTVF9WRVJTSU9OOgorICoKKyAqIE1hY3JvIHRvIGNoZWNrIHRoYXQgdGhlIGxpYnhtbCB2ZXJzaW9uIGluIHVzZSBpcyBjb21wYXRpYmxlIHdpdGgKKyAqIHRoZSB2ZXJzaW9uIHRoZSBzb2Z0d2FyZSBoYXMgYmVlbiBjb21waWxlZCBhZ2FpbnN0CisgKi8KKyNkZWZpbmUgTElCWE1MX1RFU1RfVkVSU0lPTiB4bWxDaGVja1ZlcnNpb24oMjA3MDcpOworCisjaWZuZGVmIFZNUworI2lmIDAKKy8qKgorICogV0lUSF9UUklPOgorICoKKyAqIGRlZmluZWQgaWYgdGhlIHRyaW8gc3VwcG9ydCBuZWVkIHRvIGJlIGNvbmZpZ3VyZWQgaW4KKyAqLworI2RlZmluZSBXSVRIX1RSSU8KKyNlbHNlCisvKioKKyAqIFdJVEhPVVRfVFJJTzoKKyAqCisgKiBkZWZpbmVkIGlmIHRoZSB0cmlvIHN1cHBvcnQgc2hvdWxkIG5vdCBiZSBjb25maWd1cmVkIGluCisgKi8KKyNkZWZpbmUgV0lUSE9VVF9UUklPCisjZW5kaWYKKyNlbHNlIC8qIFZNUyAqLworLyoqCisgKiBXSVRIX1RSSU86CisgKgorICogZGVmaW5lZCBpZiB0aGUgdHJpbyBzdXBwb3J0IG5lZWQgdG8gYmUgY29uZmlndXJlZCBpbgorICovCisjZGVmaW5lIFdJVEhfVFJJTyAxCisjZW5kaWYgLyogVk1TICovCisKKy8qKgorICogTElCWE1MX1RIUkVBRF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIHRocmVhZCBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNpZiBkZWZpbmVkKF9SRUVOVFJBTlQpIHx8IGRlZmluZWQoX19NVF9fKSB8fCBcCisgICAgKGRlZmluZWQoX1BPU0lYX0NfU09VUkNFKSAmJiAoX1BPU0lYX0NfU09VUkNFIC0gMCA+PSAxOTk1MDZMKSkKKyNkZWZpbmUgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjZW5kaWYKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9UUkVFX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgRE9NIGxpa2UgdHJlZSBtYW5pcHVsYXRpb24gQVBJIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfVFJFRV9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgc2VyaWFsaXphdGlvbi9zYXZpbmcgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1BVU0hfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBwdXNoIHBhcnNpbmcgaW50ZXJmYWNlcyBhcmUgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfUFVTSF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfUkVBREVSX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgeG1sUmVhZGVyIHBhcnNpbmcgaW50ZXJmYWNlIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX1JFQURFUl9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIHhtbFBhdHRlcm4gbm9kZSBzZWxlY3Rpb24gaW50ZXJmYWNlIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1dSSVRFUl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIHhtbFdyaXRlciBzYXZpbmcgaW50ZXJmYWNlIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX1dSSVRFUl9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfU0FYMV9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIG9sZGVyIFNBWDEgaW50ZXJmYWNlIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX1NBWDFfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0ZUUF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIEZUUCBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX0ZUUF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfSFRUUF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIEhUVFAgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9IVFRQX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9WQUxJRF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIERURCB2YWxpZGF0aW9uIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfVkFMSURfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0hUTUxfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBIVE1MIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfSFRNTF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgZGVwcmVjYXRlZCBBUElzIGFyZSBjb21waWxlZCBpbiBmb3IgY29tcGF0aWJpbGl0eQorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9DMTROX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgQ2Fub25pY2FsaXphdGlvbiBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX0MxNE5fRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0NBVEFMT0dfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBDYXRhbG9nIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfRE9DQl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIFNHTUwgRG9jYm9vayBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX0RPQ0JfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1hQQVRIX0VOQUJMRUQ6CisgKgorICogV2hldGhlciBYUGF0aCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9YUEFUSF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfWFBUUl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgWFBvaW50ZXIgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfWFBUUl9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIFhJbmNsdWRlIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9JQ09OVl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgaWNvbnYgc3VwcG9ydCBpcyBhdmFpbGFibGUKKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX0lDT05WX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9JU084ODU5WF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgSVNPLTg4NTktKiBzdXBwb3J0IGlzIG1hZGUgYXZhaWxhYmxlIGluIGNhc2UgaWNvbnYgaXMgbm90CisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9JU084ODU5WF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfREVCVUdfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIERlYnVnZ2luZyBtb2R1bGUgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBMSUJYTUxfREVCVUdfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogREVCVUdfTUVNT1JZX0xPQ0FUSU9OOgorICoKKyAqIFdoZXRoZXIgdGhlIG1lbW9yeSBkZWJ1Z2dpbmcgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgMQorI2RlZmluZSBERUJVR19NRU1PUllfTE9DQVRJT04KKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9ERUJVR19SVU5USU1FOgorICoKKyAqIFdoZXRoZXIgdGhlIHJ1bnRpbWUgZGVidWdnaW5nIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX0RFQlVHX1JVTlRJTUUKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9VTklDT0RFX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgVW5pY29kZSByZWxhdGVkIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9VTklDT0RFX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9SRUdFWFBfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgYXV0b21hdGEgaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW4KKyAqLworI2lmIDEKKyNkZWZpbmUgTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9FWFBSX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgZm9ybWFsIGV4cHJlc3Npb25zIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9FWFBSX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgU2NoZW1hcyB2YWxpZGF0aW9uIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgU2NoZW1hdHJvbiB2YWxpZGF0aW9uIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9NT0RVTEVTX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgbW9kdWxlIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9NT0RVTEVTX0VOQUJMRUQKKy8qKgorICogTElCWE1MX01PRFVMRV9FWFRFTlNJT046CisgKgorICogdGhlIHN0cmluZyBzdWZmaXggdXNlZCBieSBkeW5hbWljIG1vZHVsZXMgKHVzdWFsbHkgc2hhcmVkIGxpYnJhcmllcykKKyAqLworI2RlZmluZSBMSUJYTUxfTU9EVUxFX0VYVEVOU0lPTiAiLnNvIiAKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9aTElCX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgWmxpYiBzdXBwb3J0IGlzIGNvbXBpbGVkIGluCisgKi8KKyNpZiAxCisjZGVmaW5lIExJQlhNTF9aTElCX0VOQUJMRUQKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZmRlZiBIQVZFX0FOU0lERUNMX0gKKyNpbmNsdWRlIDxhbnNpZGVjbC5oPgorI2VuZGlmCisKKy8qKgorICogQVRUUklCVVRFX1VOVVNFRDoKKyAqCisgKiBNYWNybyB1c2VkIHRvIHNpZ25hbCB0byBHQ0MgdW51c2VkIGZ1bmN0aW9uIHBhcmFtZXRlcnMKKyAqLworCisjaWZuZGVmIEFUVFJJQlVURV9VTlVTRUQKKyNkZWZpbmUgQVRUUklCVVRFX1VOVVNFRCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0FUVFJfQUxMT0NfU0laRToKKyAqCisgKiBNYWNybyB1c2VkIHRvIGluZGljYXRlIHRvIEdDQyB0aGlzIGlzIGFuIGFsbG9jYXRvciBmdW5jdGlvbgorICovCisKKyNpZm5kZWYgTElCWE1MX0FUVFJfQUxMT0NfU0laRQorIyBpZiAoKF9fR05VQ19fID4gNCkgfHwgKChfX0dOVUNfXyA9PSA0KSAmJiAoX19HTlVDX01JTk9SX18gPj0gMykpKQorIyAgZGVmaW5lIExJQlhNTF9BVFRSX0FMTE9DX1NJWkUoeCkgX19hdHRyaWJ1dGVfXygoYWxsb2Nfc2l6ZSh4KSkpCisjIGVsc2UKKyMgIGRlZmluZSBMSUJYTUxfQVRUUl9BTExPQ19TSVpFKHgpCisjIGVuZGlmCisjZWxzZQorIyBkZWZpbmUgTElCWE1MX0FUVFJfQUxMT0NfU0laRSh4KQorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0FUVFJfRk9STUFUOgorICoKKyAqIE1hY3JvIHVzZWQgdG8gaW5kaWNhdGUgdG8gR0NDIHRoZSBwYXJhbWV0ZXIgYXJlIHByaW50ZiBsaWtlCisgKi8KKworI2lmbmRlZiBMSUJYTUxfQVRUUl9GT1JNQVQKKyMgaWYgKChfX0dOVUNfXyA+IDMpIHx8ICgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9fID49IDMpKSkKKyMgIGRlZmluZSBMSUJYTUxfQVRUUl9GT1JNQVQoZm10LGFyZ3MpIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18oX19wcmludGZfXyxmbXQsYXJncykpKQorIyBlbHNlCisjICBkZWZpbmUgTElCWE1MX0FUVFJfRk9STUFUKGZtdCxhcmdzKQorIyBlbmRpZgorI2Vsc2UKKyMgZGVmaW5lIExJQlhNTF9BVFRSX0ZPUk1BVChmbXQsYXJncykKKyNlbmRpZgorCisjZWxzZSAvKiAhIF9fR05VQ19fICovCisvKioKKyAqIEFUVFJJQlVURV9VTlVTRUQ6CisgKgorICogTWFjcm8gdXNlZCB0byBzaWduYWwgdG8gR0NDIHVudXNlZCBmdW5jdGlvbiBwYXJhbWV0ZXJzCisgKi8KKyNkZWZpbmUgQVRUUklCVVRFX1VOVVNFRAorLyoqCisgKiBMSUJYTUxfQVRUUl9BTExPQ19TSVpFOgorICoKKyAqIE1hY3JvIHVzZWQgdG8gaW5kaWNhdGUgdG8gR0NDIHRoaXMgaXMgYW4gYWxsb2NhdG9yIGZ1bmN0aW9uCisgKi8KKyNkZWZpbmUgTElCWE1MX0FUVFJfQUxMT0NfU0laRSh4KQorLyoqCisgKiBMSUJYTUxfQVRUUl9GT1JNQVQ6CisgKgorICogTWFjcm8gdXNlZCB0byBpbmRpY2F0ZSB0byBHQ0MgdGhlIHBhcmFtZXRlciBhcmUgcHJpbnRmIGxpa2UKKyAqLworI2RlZmluZSBMSUJYTUxfQVRUUl9GT1JNQVQoZm10LGFyZ3MpCisjZW5kaWYgLyogX19HTlVDX18gKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDczOWYzYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oLmluCkBAIC0wLDAgKzEsNDU4IEBACisvKgorICogU3VtbWFyeTogY29tcGlsZS10aW1lIHZlcnNpb24gaW5mb3JtYXRpb25zCisgKiBEZXNjcmlwdGlvbjogY29tcGlsZS10aW1lIHZlcnNpb24gaW5mb3JtYXRpb25zIGZvciB0aGUgWE1MIGxpYnJhcnkKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fWE1MX1ZFUlNJT05fSF9fCisjZGVmaW5lIF9fWE1MX1ZFUlNJT05fSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXhwb3J0cy5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiB1c2UgdGhvc2UgdG8gYmUgc3VyZSBub3RoaW5nIG5hc3R5IHdpbGwgaGFwcGVuIGlmCisgKiB5b3VyIGxpYnJhcnkgYW5kIGluY2x1ZGVzIG1pc21hdGNoCisgKi8KKyNpZm5kZWYgTElCWE1MMl9DT01QSUxJTkdfTVNDQ0RFRgorWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxDaGVja1ZlcnNpb24oaW50IHZlcnNpb24pOworI2VuZGlmIC8qIExJQlhNTDJfQ09NUElMSU5HX01TQ0NERUYgKi8KKworLyoqCisgKiBMSUJYTUxfRE9UVEVEX1ZFUlNJT046CisgKgorICogdGhlIHZlcnNpb24gc3RyaW5nIGxpa2UgIjEuMi4zIgorICovCisjZGVmaW5lIExJQlhNTF9ET1RURURfVkVSU0lPTiAiQFZFUlNJT05AIgorCisvKioKKyAqIExJQlhNTF9WRVJTSU9OOgorICoKKyAqIHRoZSB2ZXJzaW9uIG51bWJlcjogMS4yLjMgdmFsdWUgaXMgMTAyMDMKKyAqLworI2RlZmluZSBMSUJYTUxfVkVSU0lPTiBATElCWE1MX1ZFUlNJT05fTlVNQkVSQAorCisvKioKKyAqIExJQlhNTF9WRVJTSU9OX1NUUklORzoKKyAqCisgKiB0aGUgdmVyc2lvbiBudW1iZXIgc3RyaW5nLCAxLjIuMyB2YWx1ZSBpcyAiMTAyMDMiCisgKi8KKyNkZWZpbmUgTElCWE1MX1ZFUlNJT05fU1RSSU5HICJATElCWE1MX1ZFUlNJT05fTlVNQkVSQCIKKworLyoqCisgKiBMSUJYTUxfVkVSU0lPTl9FWFRSQToKKyAqCisgKiBleHRyYSB2ZXJzaW9uIGluZm9ybWF0aW9uLCB1c2VkIHRvIHNob3cgYSBDVlMgY29tcGlsYXRpb24KKyAqLworI2RlZmluZSBMSUJYTUxfVkVSU0lPTl9FWFRSQSAiQExJQlhNTF9WRVJTSU9OX0VYVFJBQCIKKworLyoqCisgKiBMSUJYTUxfVEVTVF9WRVJTSU9OOgorICoKKyAqIE1hY3JvIHRvIGNoZWNrIHRoYXQgdGhlIGxpYnhtbCB2ZXJzaW9uIGluIHVzZSBpcyBjb21wYXRpYmxlIHdpdGgKKyAqIHRoZSB2ZXJzaW9uIHRoZSBzb2Z0d2FyZSBoYXMgYmVlbiBjb21waWxlZCBhZ2FpbnN0CisgKi8KKyNkZWZpbmUgTElCWE1MX1RFU1RfVkVSU0lPTiB4bWxDaGVja1ZlcnNpb24oQExJQlhNTF9WRVJTSU9OX05VTUJFUkApOworCisjaWZuZGVmIFZNUworI2lmIEBXSVRIX1RSSU9ACisvKioKKyAqIFdJVEhfVFJJTzoKKyAqCisgKiBkZWZpbmVkIGlmIHRoZSB0cmlvIHN1cHBvcnQgbmVlZCB0byBiZSBjb25maWd1cmVkIGluCisgKi8KKyNkZWZpbmUgV0lUSF9UUklPCisjZWxzZQorLyoqCisgKiBXSVRIT1VUX1RSSU86CisgKgorICogZGVmaW5lZCBpZiB0aGUgdHJpbyBzdXBwb3J0IHNob3VsZCBub3QgYmUgY29uZmlndXJlZCBpbgorICovCisjZGVmaW5lIFdJVEhPVVRfVFJJTworI2VuZGlmCisjZWxzZSAvKiBWTVMgKi8KKy8qKgorICogV0lUSF9UUklPOgorICoKKyAqIGRlZmluZWQgaWYgdGhlIHRyaW8gc3VwcG9ydCBuZWVkIHRvIGJlIGNvbmZpZ3VyZWQgaW4KKyAqLworI2RlZmluZSBXSVRIX1RSSU8gMQorI2VuZGlmIC8qIFZNUyAqLworCisvKioKKyAqIExJQlhNTF9USFJFQURfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSB0aHJlYWQgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9USFJFQURTQAorI2lmIGRlZmluZWQoX1JFRU5UUkFOVCkgfHwgZGVmaW5lZChfX01UX18pIHx8IFwKKyAgICAoZGVmaW5lZChfUE9TSVhfQ19TT1VSQ0UpICYmIChfUE9TSVhfQ19TT1VSQ0UgLSAwID49IDE5OTUwNkwpKQorI2RlZmluZSBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNlbmRpZgorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1RSRUVfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBET00gbGlrZSB0cmVlIG1hbmlwdWxhdGlvbiBBUEkgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9UUkVFQAorI2RlZmluZSBMSUJYTUxfVFJFRV9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgc2VyaWFsaXphdGlvbi9zYXZpbmcgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9PVVRQVVRACisjZGVmaW5lIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1BVU0hfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBwdXNoIHBhcnNpbmcgaW50ZXJmYWNlcyBhcmUgY29uZmlndXJlZCBpbgorICovCisjaWYgQFdJVEhfUFVTSEAKKyNkZWZpbmUgTElCWE1MX1BVU0hfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1JFQURFUl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIHhtbFJlYWRlciBwYXJzaW5nIGludGVyZmFjZSBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9SRUFERVJACisjZGVmaW5lIExJQlhNTF9SRUFERVJfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1BBVFRFUk5fRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSB4bWxQYXR0ZXJuIG5vZGUgc2VsZWN0aW9uIGludGVyZmFjZSBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9QQVRURVJOQAorI2RlZmluZSBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfV1JJVEVSX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgeG1sV3JpdGVyIHNhdmluZyBpbnRlcmZhY2UgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgQFdJVEhfV1JJVEVSQAorI2RlZmluZSBMSUJYTUxfV1JJVEVSX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9TQVgxX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgb2xkZXIgU0FYMSBpbnRlcmZhY2UgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgQFdJVEhfU0FYMUAKKyNkZWZpbmUgTElCWE1MX1NBWDFfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0ZUUF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIEZUUCBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIEBXSVRIX0ZUUEAKKyNkZWZpbmUgTElCWE1MX0ZUUF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfSFRUUF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIEhUVFAgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9IVFRQQAorI2RlZmluZSBMSUJYTUxfSFRUUF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfVkFMSURfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBEVEQgdmFsaWRhdGlvbiBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIEBXSVRIX1ZBTElEQAorI2RlZmluZSBMSUJYTUxfVkFMSURfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0hUTUxfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBIVE1MIHN1cHBvcnQgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgQFdJVEhfSFRNTEAKKyNkZWZpbmUgTElCWE1MX0hUTUxfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0xFR0FDWV9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIGRlcHJlY2F0ZWQgQVBJcyBhcmUgY29tcGlsZWQgaW4gZm9yIGNvbXBhdGliaWxpdHkKKyAqLworI2lmIEBXSVRIX0xFR0FDWUAKKyNkZWZpbmUgTElCWE1MX0xFR0FDWV9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfQzE0Tl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIENhbm9uaWNhbGl6YXRpb24gc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9DMTROQAorI2RlZmluZSBMSUJYTUxfQzE0Tl9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIENhdGFsb2cgc3VwcG9ydCBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9DQVRBTE9HQAorI2RlZmluZSBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfRE9DQl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIFNHTUwgRG9jYm9vayBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIEBXSVRIX0RPQ0JACisjZGVmaW5lIExJQlhNTF9ET0NCX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9YUEFUSF9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgWFBhdGggaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgQFdJVEhfWFBBVEhACisjZGVmaW5lIExJQlhNTF9YUEFUSF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfWFBUUl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgWFBvaW50ZXIgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgQFdJVEhfWFBUUkAKKyNkZWZpbmUgTElCWE1MX1hQVFJfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1hJTkNMVURFX0VOQUJMRUQ6CisgKgorICogV2hldGhlciBYSW5jbHVkZSBpcyBjb25maWd1cmVkIGluCisgKi8KKyNpZiBAV0lUSF9YSU5DTFVERUAKKyNkZWZpbmUgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9JQ09OVl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgaWNvbnYgc3VwcG9ydCBpcyBhdmFpbGFibGUKKyAqLworI2lmIEBXSVRIX0lDT05WQAorI2RlZmluZSBMSUJYTUxfSUNPTlZfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0lTTzg4NTlYX0VOQUJMRUQ6CisgKgorICogV2hldGhlciBJU08tODg1OS0qIHN1cHBvcnQgaXMgbWFkZSBhdmFpbGFibGUgaW4gY2FzZSBpY29udiBpcyBub3QKKyAqLworI2lmIEBXSVRIX0lTTzg4NTlYQAorI2RlZmluZSBMSUJYTUxfSVNPODg1OVhfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX0RFQlVHX0VOQUJMRUQ6CisgKgorICogV2hldGhlciBEZWJ1Z2dpbmcgbW9kdWxlIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIEBXSVRIX0RFQlVHQAorI2RlZmluZSBMSUJYTUxfREVCVUdfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogREVCVUdfTUVNT1JZX0xPQ0FUSU9OOgorICoKKyAqIFdoZXRoZXIgdGhlIG1lbW9yeSBkZWJ1Z2dpbmcgaXMgY29uZmlndXJlZCBpbgorICovCisjaWYgQFdJVEhfTUVNX0RFQlVHQAorI2RlZmluZSBERUJVR19NRU1PUllfTE9DQVRJT04KKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9ERUJVR19SVU5USU1FOgorICoKKyAqIFdoZXRoZXIgdGhlIHJ1bnRpbWUgZGVidWdnaW5nIGlzIGNvbmZpZ3VyZWQgaW4KKyAqLworI2lmIEBXSVRIX1JVTl9ERUJVR0AKKyNkZWZpbmUgTElCWE1MX0RFQlVHX1JVTlRJTUUKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9VTklDT0RFX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgVW5pY29kZSByZWxhdGVkIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiBAV0lUSF9SRUdFWFBTQAorI2RlZmluZSBMSUJYTUxfVU5JQ09ERV9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgcmVndWxhciBleHByZXNzaW9ucyBpbnRlcmZhY2VzIGFyZSBjb21waWxlZCBpbgorICovCisjaWYgQFdJVEhfUkVHRVhQU0AKKyNkZWZpbmUgTElCWE1MX1JFR0VYUF9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBhdXRvbWF0YSBpbnRlcmZhY2VzIGFyZSBjb21waWxlZCBpbgorICovCisjaWYgQFdJVEhfUkVHRVhQU0AKKyNkZWZpbmUgTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9FWFBSX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgZm9ybWFsIGV4cHJlc3Npb25zIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiBAV0lUSF9TQ0hFTUFTQAorI2RlZmluZSBMSUJYTUxfRVhQUl9FTkFCTEVECisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIFNjaGVtYXMgdmFsaWRhdGlvbiBpbnRlcmZhY2VzIGFyZSBjb21waWxlZCBpbgorICovCisjaWYgQFdJVEhfU0NIRU1BU0AKKyNkZWZpbmUgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorI2VuZGlmCisKKy8qKgorICogTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRDoKKyAqCisgKiBXaGV0aGVyIHRoZSBTY2hlbWF0cm9uIHZhbGlkYXRpb24gaW50ZXJmYWNlcyBhcmUgY29tcGlsZWQgaW4KKyAqLworI2lmIEBXSVRIX1NDSEVNQVRST05ACisjZGVmaW5lIExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQKKyNlbmRpZgorCisvKioKKyAqIExJQlhNTF9NT0RVTEVTX0VOQUJMRUQ6CisgKgorICogV2hldGhlciB0aGUgbW9kdWxlIGludGVyZmFjZXMgYXJlIGNvbXBpbGVkIGluCisgKi8KKyNpZiBAV0lUSF9NT0RVTEVTQAorI2RlZmluZSBMSUJYTUxfTU9EVUxFU19FTkFCTEVECisvKioKKyAqIExJQlhNTF9NT0RVTEVfRVhURU5TSU9OOgorICoKKyAqIHRoZSBzdHJpbmcgc3VmZml4IHVzZWQgYnkgZHluYW1pYyBtb2R1bGVzICh1c3VhbGx5IHNoYXJlZCBsaWJyYXJpZXMpCisgKi8KKyNkZWZpbmUgTElCWE1MX01PRFVMRV9FWFRFTlNJT04gIkBNT0RVTEVfRVhURU5TSU9OQCIgCisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfWkxJQl9FTkFCTEVEOgorICoKKyAqIFdoZXRoZXIgdGhlIFpsaWIgc3VwcG9ydCBpcyBjb21waWxlZCBpbgorICovCisjaWYgQFdJVEhfWkxJQkAKKyNkZWZpbmUgTElCWE1MX1pMSUJfRU5BQkxFRAorI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmZGVmIEhBVkVfQU5TSURFQ0xfSAorI2luY2x1ZGUgPGFuc2lkZWNsLmg+CisjZW5kaWYKKworLyoqCisgKiBBVFRSSUJVVEVfVU5VU0VEOgorICoKKyAqIE1hY3JvIHVzZWQgdG8gc2lnbmFsIHRvIEdDQyB1bnVzZWQgZnVuY3Rpb24gcGFyYW1ldGVycworICovCisKKyNpZm5kZWYgQVRUUklCVVRFX1VOVVNFRAorI2RlZmluZSBBVFRSSUJVVEVfVU5VU0VEIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfQVRUUl9BTExPQ19TSVpFOgorICoKKyAqIE1hY3JvIHVzZWQgdG8gaW5kaWNhdGUgdG8gR0NDIHRoaXMgaXMgYW4gYWxsb2NhdG9yIGZ1bmN0aW9uCisgKi8KKworI2lmbmRlZiBMSUJYTUxfQVRUUl9BTExPQ19TSVpFCisjIGlmICgoX19HTlVDX18gPiA0KSB8fCAoKF9fR05VQ19fID09IDQpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSkpCisjICBkZWZpbmUgTElCWE1MX0FUVFJfQUxMT0NfU0laRSh4KSBfX2F0dHJpYnV0ZV9fKChhbGxvY19zaXplKHgpKSkKKyMgZWxzZQorIyAgZGVmaW5lIExJQlhNTF9BVFRSX0FMTE9DX1NJWkUoeCkKKyMgZW5kaWYKKyNlbHNlCisjIGRlZmluZSBMSUJYTUxfQVRUUl9BTExPQ19TSVpFKHgpCisjZW5kaWYKKworLyoqCisgKiBMSUJYTUxfQVRUUl9GT1JNQVQ6CisgKgorICogTWFjcm8gdXNlZCB0byBpbmRpY2F0ZSB0byBHQ0MgdGhlIHBhcmFtZXRlciBhcmUgcHJpbnRmIGxpa2UKKyAqLworCisjaWZuZGVmIExJQlhNTF9BVFRSX0ZPUk1BVAorIyBpZiAoKF9fR05VQ19fID4gMykgfHwgKChfX0dOVUNfXyA9PSAzKSAmJiAoX19HTlVDX01JTk9SX18gPj0gMykpKQorIyAgZGVmaW5lIExJQlhNTF9BVFRSX0ZPUk1BVChmbXQsYXJncykgX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhfX3ByaW50Zl9fLGZtdCxhcmdzKSkpCisjIGVsc2UKKyMgIGRlZmluZSBMSUJYTUxfQVRUUl9GT1JNQVQoZm10LGFyZ3MpCisjIGVuZGlmCisjZWxzZQorIyBkZWZpbmUgTElCWE1MX0FUVFJfRk9STUFUKGZtdCxhcmdzKQorI2VuZGlmCisKKyNlbHNlIC8qICEgX19HTlVDX18gKi8KKy8qKgorICogQVRUUklCVVRFX1VOVVNFRDoKKyAqCisgKiBNYWNybyB1c2VkIHRvIHNpZ25hbCB0byBHQ0MgdW51c2VkIGZ1bmN0aW9uIHBhcmFtZXRlcnMKKyAqLworI2RlZmluZSBBVFRSSUJVVEVfVU5VU0VECisvKioKKyAqIExJQlhNTF9BVFRSX0FMTE9DX1NJWkU6CisgKgorICogTWFjcm8gdXNlZCB0byBpbmRpY2F0ZSB0byBHQ0MgdGhpcyBpcyBhbiBhbGxvY2F0b3IgZnVuY3Rpb24KKyAqLworI2RlZmluZSBMSUJYTUxfQVRUUl9BTExPQ19TSVpFKHgpCisvKioKKyAqIExJQlhNTF9BVFRSX0ZPUk1BVDoKKyAqCisgKiBNYWNybyB1c2VkIHRvIGluZGljYXRlIHRvIEdDQyB0aGUgcGFyYW1ldGVyIGFyZSBwcmludGYgbGlrZQorICovCisjZGVmaW5lIExJQlhNTF9BVFRSX0ZPUk1BVChmbXQsYXJncykKKyNlbmRpZiAvKiBfX0dOVUNfXyAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLworI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94bWx3cml0ZXIuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sd3JpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFlNjgzYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS9saWJ4bWwveG1sd3JpdGVyLmgKQEAgLTAsMCArMSw0ODUgQEAKKworLyoKKyAqIFN1bW1hcnk6IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTAorICogRGVzY3JpcHRpb246IHRleHQgd3JpdGluZyBBUEkgZm9yIFhNTAorICoKKyAqIENvcHk6IFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBBdXRob3I6IEFsZnJlZCBNaWNrYXV0c2NoIDxhbGZyZWRAbWlja2F1dHNjaC5kZT4KKyAqLworCisjaWZuZGVmIF9fWE1MX1hNTFdSSVRFUl9IX18KKyNkZWZpbmUgX19YTUxfWE1MV1JJVEVSX0hfXworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKworI2lmZGVmIExJQlhNTF9XUklURVJfRU5BQkxFRAorCisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbElPLmg+CisjaW5jbHVkZSA8bGlieG1sL2xpc3QuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc3RyaW5nLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworICAgIHR5cGVkZWYgc3RydWN0IF94bWxUZXh0V3JpdGVyIHhtbFRleHRXcml0ZXI7CisgICAgdHlwZWRlZiB4bWxUZXh0V3JpdGVyICp4bWxUZXh0V3JpdGVyUHRyOworCisvKgorICogQ29uc3RydWN0b3JzICYgRGVzdHJ1Y3RvcgorICovCisgICAgWE1MUFVCRlVOIHhtbFRleHRXcml0ZXJQdHIgWE1MQ0FMTAorICAgICAgICB4bWxOZXdUZXh0V3JpdGVyKHhtbE91dHB1dEJ1ZmZlclB0ciBvdXQpOworICAgIFhNTFBVQkZVTiB4bWxUZXh0V3JpdGVyUHRyIFhNTENBTEwKKyAgICAgICAgeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lKGNvbnN0IGNoYXIgKnVyaSwgaW50IGNvbXByZXNzaW9uKTsKKyAgICBYTUxQVUJGVU4geG1sVGV4dFdyaXRlclB0ciBYTUxDQUxMCisgICAgICAgIHhtbE5ld1RleHRXcml0ZXJNZW1vcnkoeG1sQnVmZmVyUHRyIGJ1ZiwgaW50IGNvbXByZXNzaW9uKTsKKyAgICBYTUxQVUJGVU4geG1sVGV4dFdyaXRlclB0ciBYTUxDQUxMCisgICAgICAgIHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50IGNvbXByZXNzaW9uKTsKKyAgICBYTUxQVUJGVU4geG1sVGV4dFdyaXRlclB0ciBYTUxDQUxMCisgICAgICAgIHhtbE5ld1RleHRXcml0ZXJEb2MoeG1sRG9jUHRyICogZG9jLCBpbnQgY29tcHJlc3Npb24pOworICAgIFhNTFBVQkZVTiB4bWxUZXh0V3JpdGVyUHRyIFhNTENBTEwKKyAgICAgICAgeG1sTmV3VGV4dFdyaXRlclRyZWUoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcHJlc3Npb24pOworICAgIFhNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sRnJlZVRleHRXcml0ZXIoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpOworCisvKgorICogRnVuY3Rpb25zCisgKi8KKworCisvKgorICogRG9jdW1lbnQKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0YW5kYWxvbmUpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQoeG1sVGV4dFdyaXRlclB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyKTsKKworLyoKKyAqIENvbW1lbnRzCisgKi8KKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCh4bWxUZXh0V3JpdGVyUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlckVuZENvbW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQorCQkJCQlMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcmdwdHIpCisJCQkJCSBMSUJYTUxfQVRUUl9GT1JNQVQoMiwwKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCh4bWxUZXh0V3JpdGVyUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQpOworCisvKgorICogRWxlbWVudHMKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TKHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVSSSk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlcik7CisKKy8qCisgKiBFbGVtZW50cyBjb252ZW5pZW5jeSBmdW5jdGlvbnMKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQorCQkJCQlMSUJYTUxfQVRUUl9GT1JNQVQoMyw0KTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXJncHRyKQorCQkJCQkgTElCWE1MX0FUVFJfRk9STUFUKDMsMCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQoeG1sVGV4dFdyaXRlclB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQorCQkJCQkgIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDYpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcmdwdHIpCisJCQkJCSAgIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDApOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMoeG1sVGV4dFdyaXRlclB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KTsKKworLyoKKyAqIFRleHQKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXcoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKKwkJCQkgICAgTElCWE1MX0FUVFJfRk9STUFUKDIsMyk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3B0cikKKwkJCQkgICAgIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDApOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4oeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogY29udGVudCwgaW50IGxlbik7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZVJhdyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nKHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpmb3JtYXQsIC4uLikKKwkJCQkJCQkgTElCWE1MX0FUVFJfRk9STUFUKDIsMyk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmcoeG1sVGV4dFdyaXRlclB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3B0cikKKwkJCQkJCQkgIExJQlhNTF9BVFRSX0ZPUk1BVCgyLDApOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCBpbnQgbGVuKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgaW50IGxlbik7CisKKy8qCisgKiBBdHRyaWJ1dGVzCisgKi8KKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyh4bWxUZXh0V3JpdGVyUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVUkkpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlKHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIpOworCisvKgorICogQXR0cmlidXRlcyBjb252ZW5pZW5jeSBmdW5jdGlvbnMKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQorCQkJCQkgIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDQpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3B0cikKKwkJCQkJICAgTElCWE1MX0FUVFJfRk9STUFUKDMsMCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSh4bWxUZXh0V3JpdGVyUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCisJCQkJCSAgICBMSUJYTUxfQVRUUl9GT1JNQVQoNSw2KTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXJncHRyKQorCQkJCQkgICAgIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDApOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyh4bWxUZXh0V3JpdGVyUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KTsKKworLyoKKyAqIFBJJ3MKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyU3RhcnRQSSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHRhcmdldCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJFbmRQSSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcik7CisKKy8qCisgKiBQSSBjb252ZW5pZW5jeSBmdW5jdGlvbnMKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCisJCQkJICAgTElCWE1MX0FUVFJfRk9STUFUKDMsNCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncHRyKQorCQkJCSAgICBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlUEkoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KTsKKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246CisgKgorICogVGhpcyBtYWNybyBtYXBzIHRvIHhtbFRleHRXcml0ZXJXcml0ZVBJCisgKi8KKyNkZWZpbmUgeG1sVGV4dFdyaXRlcldyaXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uIHhtbFRleHRXcml0ZXJXcml0ZVBJCisKKy8qCisgKiBDREFUQQorICovCisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJTdGFydENEQVRBKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlckVuZENEQVRBKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyKTsKKworLyoKKyAqIENEQVRBIGNvbnZlbmllbmN5IGZ1bmN0aW9ucworICovCisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKKwkJCQkgICAgICBMSUJYTUxfQVRUUl9GT1JNQVQoMiwzKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3B0cikKKwkJCQkgICAgICAgTElCWE1MX0FUVFJfRk9STUFUKDIsMCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZUNEQVRBKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogY29udGVudCk7CisKKy8qCisgKiBEVEQKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyU3RhcnREVEQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwdWJpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXNpZCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJFbmREVEQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpOworCisvKgorICogRFREIGNvbnZlbmllbmN5IGZ1bmN0aW9ucworICovCisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERURCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHN5c2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCisJCQkJICAgIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDYpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwdWJpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3lzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3B0cikKKwkJCQkgICAgIExJQlhNTF9BVFRSX0ZPUk1BVCg1LDApOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVEVEQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwdWJpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzdWJzZXQpOworCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGU6CisgKgorICogdGhpcyBtYWNybyBtYXBzIHRvIHhtbFRleHRXcml0ZXJXcml0ZURURAorICovCisjZGVmaW5lIHhtbFRleHRXcml0ZXJXcml0ZURvY1R5cGUgeG1sVGV4dFdyaXRlcldyaXRlRFRECisKKy8qCisgKiBEVEQgZWxlbWVudCBkZWZpbml0aW9uCisgKi8KKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyKTsKKworLyoKKyAqIERURCBlbGVtZW50IGRlZmluaXRpb24gY29udmVuaWVuY3kgZnVuY3Rpb25zCisgKi8KKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRERWxlbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKKwkJCQkJICAgTElCWE1MX0FUVFJfRk9STUFUKDMsNCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3B0cikKKwkJCQkJICAgIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDApOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KTsKKworLyoKKyAqIERURCBhdHRyaWJ1dGUgbGlzdCBkZWZpbml0aW9uCisgKi8KKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMIHhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0KHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyKTsKKworLyoKKyAqIERURCBhdHRyaWJ1dGUgbGlzdCBkZWZpbml0aW9uIGNvbnZlbmllbmN5IGZ1bmN0aW9ucworICovCisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3QoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCisJCQkJCSAgIExJQlhNTF9BVFRSX0ZPUk1BVCgzLDQpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcmdwdHIpCisJCQkJCSAgICBMSUJYTUxfQVRUUl9GT1JNQVQoMywwKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCh4bWxUZXh0V3JpdGVyUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCk7CisKKy8qCisgKiBEVEQgZW50aXR5IGRlZmluaXRpb24KKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGUsIGNvbnN0IHhtbENoYXIgKiBuYW1lKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSh4bWxUZXh0V3JpdGVyUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyKTsKKworLyoKKyAqIERURCBlbnRpdHkgZGVmaW5pdGlvbiBjb252ZW5pZW5jeSBmdW5jdGlvbnMKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCisJCQkJCQkgIExJQlhNTF9BVFRSX0ZPUk1BVCg0LDUpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXJncHRyKQorCQkJCQkJICAgTElCWE1MX0FUVFJfRk9STUFUKDQsMCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogY29udGVudCk7CisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHViaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5kYXRhaWQpOworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzKHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGF0YWlkKTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5KHhtbFRleHRXcml0ZXJQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlciwgaW50IHBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRhdGFpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCk7CisKKy8qCisgKiBEVEQgbm90YXRpb24gZGVmaW5pdGlvbgorICovCisgICAgWE1MUFVCRlVOIGludCBYTUxDQUxMCisgICAgICAgIHhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3lzaWQpOworCisvKgorICogSW5kZW50YXRpb24KKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTAorICAgICAgICB4bWxUZXh0V3JpdGVyU2V0SW5kZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLCBpbnQgaW5kZW50KTsKKyAgICBYTUxQVUJGVU4gaW50IFhNTENBTEwKKyAgICAgICAgeG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3RyKTsKKworLyoKKyAqIG1pc2MKKyAqLworICAgIFhNTFBVQkZVTiBpbnQgWE1MQ0FMTCB4bWxUZXh0V3JpdGVyRmx1c2goeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTElCWE1MX1dSSVRFUl9FTkFCTEVEICovCisKKyNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX19YTUxfWE1MV1JJVEVSX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94cGF0aC5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94cGF0aC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhOWUzMGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3hwYXRoLmgKQEAgLTAsMCArMSw1NDYgQEAKKy8qCisgKiBTdW1tYXJ5OiBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbgorICogRGVzY3JpcHRpb246IEFQSSBmb3IgdGhlIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uCisgKgorICogWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb24KKyAqIFhQYXRoIGlzIGEgbGFuZ3VhZ2UgZm9yIGFkZHJlc3NpbmcgcGFydHMgb2YgYW4gWE1MIGRvY3VtZW50LAorICogZGVzaWduZWQgdG8gYmUgdXNlZCBieSBib3RoIFhTTFQgYW5kIFhQb2ludGVyCisgKiAgICAgaHR0cDovL3d3dy53My5vcmcvVFIveHBhdGgKKyAqCisgKiBJbXBsZW1lbnRzCisgKiBXM0MgUmVjb21tZW5kYXRpb24gMTYgTm92ZW1iZXIgMTk5OQorICogICAgIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2CisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9YUEFUSF9IX18KKyNkZWZpbmUgX19YTUxfWFBBVEhfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKworI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL2hhc2guaD4KKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEIG9yIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQgKi8KKwkKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorCit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhDb250ZXh0IHhtbFhQYXRoQ29udGV4dDsKK3R5cGVkZWYgeG1sWFBhdGhDb250ZXh0ICp4bWxYUGF0aENvbnRleHRQdHI7Cit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhQYXJzZXJDb250ZXh0IHhtbFhQYXRoUGFyc2VyQ29udGV4dDsKK3R5cGVkZWYgeG1sWFBhdGhQYXJzZXJDb250ZXh0ICp4bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7CisKKy8qKgorICogVGhlIHNldCBvZiBYUGF0aCBlcnJvciBjb2Rlcy4KKyAqLworCit0eXBlZGVmIGVudW0geworICAgIFhQQVRIX0VYUFJFU1NJT05fT0sgPSAwLAorICAgIFhQQVRIX05VTUJFUl9FUlJPUiwKKyAgICBYUEFUSF9VTkZJTklTSEVEX0xJVEVSQUxfRVJST1IsCisgICAgWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUiwKKyAgICBYUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IsCisgICAgWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IsCisgICAgWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IsCisgICAgWFBBVEhfRVhQUl9FUlJPUiwKKyAgICBYUEFUSF9VTkNMT1NFRF9FUlJPUiwKKyAgICBYUEFUSF9VTktOT1dOX0ZVTkNfRVJST1IsCisgICAgWFBBVEhfSU5WQUxJRF9PUEVSQU5ELAorICAgIFhQQVRIX0lOVkFMSURfVFlQRSwKKyAgICBYUEFUSF9JTlZBTElEX0FSSVRZLAorICAgIFhQQVRIX0lOVkFMSURfQ1RYVF9TSVpFLAorICAgIFhQQVRIX0lOVkFMSURfQ1RYVF9QT1NJVElPTiwKKyAgICBYUEFUSF9NRU1PUllfRVJST1IsCisgICAgWFBUUl9TWU5UQVhfRVJST1IsCisgICAgWFBUUl9SRVNPVVJDRV9FUlJPUiwKKyAgICBYUFRSX1NVQl9SRVNPVVJDRV9FUlJPUiwKKyAgICBYUEFUSF9VTkRFRl9QUkVGSVhfRVJST1IsCisgICAgWFBBVEhfRU5DT0RJTkdfRVJST1IsCisgICAgWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SLAorICAgIFhQQVRIX0lOVkFMSURfQ1RYVAorfSB4bWxYUGF0aEVycm9yOworCisvKgorICogQSBub2RlLXNldCAoYW4gdW5vcmRlcmVkIGNvbGxlY3Rpb24gb2Ygbm9kZXMgd2l0aG91dCBkdXBsaWNhdGVzKS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbE5vZGVTZXQgeG1sTm9kZVNldDsKK3R5cGVkZWYgeG1sTm9kZVNldCAqeG1sTm9kZVNldFB0cjsKK3N0cnVjdCBfeG1sTm9kZVNldCB7CisgICAgaW50IG5vZGVOcjsJCQkvKiBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIHNldCAqLworICAgIGludCBub2RlTWF4OwkJLyogc2l6ZSBvZiB0aGUgYXJyYXkgYXMgYWxsb2NhdGVkICovCisgICAgeG1sTm9kZVB0ciAqbm9kZVRhYjsJLyogYXJyYXkgb2Ygbm9kZXMgaW4gbm8gcGFydGljdWxhciBvcmRlciAqLworICAgIC8qIEBAIHdpdGhfbnMgdG8gY2hlY2sgd2V0aGVyIG5hbWVzcGFjZSBub2RlcyBzaG91bGQgYmUgbG9va2VkIGF0IEBAICovCit9OworCisvKgorICogQW4gZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgdG8geWllbGQgYW4gb2JqZWN0LCB3aGljaAorICogaGFzIG9uZSBvZiB0aGUgZm9sbG93aW5nIGZvdXIgYmFzaWMgdHlwZXM6CisgKiAgIC0gbm9kZS1zZXQKKyAqICAgLSBib29sZWFuCisgKiAgIC0gbnVtYmVyCisgKiAgIC0gc3RyaW5nCisgKgorICogQEAgWFBvaW50ZXIgd2lsbCBhZGQgbW9yZSB0eXBlcyAhCisgKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgICBYUEFUSF9VTkRFRklORUQgPSAwLAorICAgIFhQQVRIX05PREVTRVQgPSAxLAorICAgIFhQQVRIX0JPT0xFQU4gPSAyLAorICAgIFhQQVRIX05VTUJFUiA9IDMsCisgICAgWFBBVEhfU1RSSU5HID0gNCwKKyAgICBYUEFUSF9QT0lOVCA9IDUsCisgICAgWFBBVEhfUkFOR0UgPSA2LAorICAgIFhQQVRIX0xPQ0FUSU9OU0VUID0gNywKKyAgICBYUEFUSF9VU0VSUyA9IDgsCisgICAgWFBBVEhfWFNMVF9UUkVFID0gOSAgLyogQW4gWFNMVCB2YWx1ZSB0cmVlLCBub24gbW9kaWZpYWJsZSAqLworfSB4bWxYUGF0aE9iamVjdFR5cGU7CisKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aE9iamVjdCB4bWxYUGF0aE9iamVjdDsKK3R5cGVkZWYgeG1sWFBhdGhPYmplY3QgKnhtbFhQYXRoT2JqZWN0UHRyOworc3RydWN0IF94bWxYUGF0aE9iamVjdCB7CisgICAgeG1sWFBhdGhPYmplY3RUeXBlIHR5cGU7CisgICAgeG1sTm9kZVNldFB0ciBub2Rlc2V0dmFsOworICAgIGludCBib29sdmFsOworICAgIGRvdWJsZSBmbG9hdHZhbDsKKyAgICB4bWxDaGFyICpzdHJpbmd2YWw7CisgICAgdm9pZCAqdXNlcjsKKyAgICBpbnQgaW5kZXg7CisgICAgdm9pZCAqdXNlcjI7CisgICAgaW50IGluZGV4MjsKK307CisKKy8qKgorICogeG1sWFBhdGhDb252ZXJ0RnVuYzoKKyAqIEBvYmo6ICBhbiBYUGF0aCBvYmplY3QKKyAqIEB0eXBlOiAgdGhlIG51bWJlciBvZiB0aGUgdGFyZ2V0IHR5cGUKKyAqCisgKiBBIGNvbnZlcnNpb24gZnVuY3Rpb24gaXMgYXNzb2NpYXRlZCB0byBhIHR5cGUgYW5kIHVzZWQgdG8gY2FzdAorICogdGhlIG5ldyB0eXBlIHRvIHByaW1pdGl2ZSB2YWx1ZXMuCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZQorICovCit0eXBlZGVmIGludCAoKnhtbFhQYXRoQ29udmVydEZ1bmMpICh4bWxYUGF0aE9iamVjdFB0ciBvYmosIGludCB0eXBlKTsKKworLyoKKyAqIEV4dHJhIHR5cGU6IGEgbmFtZSBhbmQgYSBjb252ZXJzaW9uIGZ1bmN0aW9uLgorICovCisKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aFR5cGUgeG1sWFBhdGhUeXBlOwordHlwZWRlZiB4bWxYUGF0aFR5cGUgKnhtbFhQYXRoVHlwZVB0cjsKK3N0cnVjdCBfeG1sWFBhdGhUeXBlIHsKKyAgICBjb25zdCB4bWxDaGFyICAgICAgICAgKm5hbWU7CQkvKiB0aGUgdHlwZSBuYW1lICovCisgICAgeG1sWFBhdGhDb252ZXJ0RnVuYyBmdW5jOwkJLyogdGhlIGNvbnZlcnNpb24gZnVuY3Rpb24gKi8KK307CisKKy8qCisgKiBFeHRyYSB2YXJpYWJsZTogYSBuYW1lIGFuZCBhIHZhbHVlLgorICovCisKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aFZhcmlhYmxlIHhtbFhQYXRoVmFyaWFibGU7Cit0eXBlZGVmIHhtbFhQYXRoVmFyaWFibGUgKnhtbFhQYXRoVmFyaWFibGVQdHI7CitzdHJ1Y3QgX3htbFhQYXRoVmFyaWFibGUgeworICAgIGNvbnN0IHhtbENoYXIgICAgICAgKm5hbWU7CQkvKiB0aGUgdmFyaWFibGUgbmFtZSAqLworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHZhbHVlOwkJLyogdGhlIHZhbHVlICovCit9OworCisvKioKKyAqIHhtbFhQYXRoRXZhbEZ1bmM6CisgKiBAY3R4dDogYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbgorICoKKyAqIEFuIFhQYXRoIGV2YWx1YXRpb24gZnVuY3Rpb24sIHRoZSBwYXJhbWV0ZXJzIGFyZSBvbiB0aGUgWFBhdGggY29udGV4dCBzdGFjay4KKyAqLworCit0eXBlZGVmIHZvaWQgKCp4bWxYUGF0aEV2YWxGdW5jKSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hcmdzKTsKKworLyoKKyAqIEV4dHJhIGZ1bmN0aW9uOiBhIG5hbWUgYW5kIGEgZXZhbHVhdGlvbiBmdW5jdGlvbi4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhGdW5jdCB4bWxYUGF0aEZ1bmN0OwordHlwZWRlZiB4bWxYUGF0aEZ1bmN0ICp4bWxYUGF0aEZ1bmNQdHI7CitzdHJ1Y3QgX3htbFhQYXRoRnVuY3QgeworICAgIGNvbnN0IHhtbENoYXIgICAgICAqbmFtZTsJCS8qIHRoZSBmdW5jdGlvbiBuYW1lICovCisgICAgeG1sWFBhdGhFdmFsRnVuYyBmdW5jOwkJLyogdGhlIGV2YWx1YXRpb24gZnVuY3Rpb24gKi8KK307CisKKy8qKgorICogeG1sWFBhdGhBeGlzRnVuYzoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGludGVycHJldGVyIGNvbnRleHQKKyAqIEBjdXI6ICB0aGUgcHJldmlvdXMgbm9kZSBiZWluZyBleHBsb3JlZCBvbiB0aGF0IGF4aXMKKyAqCisgKiBBbiBheGlzIHRyYXZlcnNhbCBmdW5jdGlvbi4gVG8gdHJhdmVyc2UgYW4gYXhpcywgdGhlIGVuZ2luZSBjYWxscworICogdGhlIGZpcnN0IHRpbWUgd2l0aCBjdXIgPT0gTlVMTCBhbmQgcmVwZWF0IHVudGlsIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiBOVUxMIGluZGljYXRpbmcgdGhlIGVuZCBvZiB0aGUgYXhpcyB0cmF2ZXJzYWwuCisgKgorICogUmV0dXJucyB0aGUgbmV4dCBub2RlIGluIHRoYXQgYXhpcyBvciBOVUxMIGlmIGF0IHRoZSBlbmQgb2YgdGhlIGF4aXMuCisgKi8KKwordHlwZWRlZiB4bWxYUGF0aE9iamVjdFB0ciAoKnhtbFhQYXRoQXhpc0Z1bmMpICh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkJCQkgeG1sWFBhdGhPYmplY3RQdHIgY3VyKTsKKworLyoKKyAqIEV4dHJhIGF4aXM6IGEgbmFtZSBhbmQgYW4gYXhpcyBmdW5jdGlvbi4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sWFBhdGhBeGlzIHhtbFhQYXRoQXhpczsKK3R5cGVkZWYgeG1sWFBhdGhBeGlzICp4bWxYUGF0aEF4aXNQdHI7CitzdHJ1Y3QgX3htbFhQYXRoQXhpcyB7CisgICAgY29uc3QgeG1sQ2hhciAgICAgICpuYW1lOwkJLyogdGhlIGF4aXMgbmFtZSAqLworICAgIHhtbFhQYXRoQXhpc0Z1bmMgZnVuYzsJCS8qIHRoZSBzZWFyY2ggZnVuY3Rpb24gKi8KK307CisKKy8qKgorICogeG1sWFBhdGhGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGludGVycHJlc3RhdGlvbiBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEFuIFhQYXRoIGZ1bmN0aW9uLgorICogVGhlIGFyZ3VtZW50cyAoaWYgYW55KSBhcmUgcG9wcGVkIG91dCBmcm9tIHRoZSBjb250ZXh0IHN0YWNrCisgKiBhbmQgdGhlIHJlc3VsdCBpcyBwdXNoZWQgb24gdGhlIHN0YWNrLgorICovCisKK3R5cGVkZWYgdm9pZCAoKnhtbFhQYXRoRnVuY3Rpb24pICh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKKworLyoKKyAqIEZ1bmN0aW9uIGFuZCBWYXJpYWJsZSBMb29rdXAuCisgKi8KKworLyoqCisgKiB4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYzoKKyAqIEBjdHh0OiAgYW4gWFBhdGggY29udGV4dAorICogQG5hbWU6ICBuYW1lIG9mIHRoZSB2YXJpYWJsZQorICogQG5zX3VyaTogIHRoZSBuYW1lc3BhY2UgbmFtZSBob3N0aW5nIHRoaXMgdmFyaWFibGUKKyAqCisgKiBQcm90b3R5cGUgZm9yIGNhbGxiYWNrcyB1c2VkIHRvIHBsdWcgdmFyaWFibGUgbG9va3VwIGluIHRoZSBYUGF0aAorICogZW5naW5lLgorICoKKyAqIFJldHVybnMgdGhlIFhQYXRoIG9iamVjdCB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZC4KKyAqLwordHlwZWRlZiB4bWxYUGF0aE9iamVjdFB0ciAoKnhtbFhQYXRoVmFyaWFibGVMb29rdXBGdW5jKSAodm9pZCAqY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbnNfdXJpKTsKKworLyoqCisgKiB4bWxYUGF0aEZ1bmNMb29rdXBGdW5jOgorICogQGN0eHQ6ICBhbiBYUGF0aCBjb250ZXh0CisgKiBAbmFtZTogIG5hbWUgb2YgdGhlIGZ1bmN0aW9uCisgKiBAbnNfdXJpOiAgdGhlIG5hbWVzcGFjZSBuYW1lIGhvc3RpbmcgdGhpcyBmdW5jdGlvbgorICoKKyAqIFByb3RvdHlwZSBmb3IgY2FsbGJhY2tzIHVzZWQgdG8gcGx1ZyBmdW5jdGlvbiBsb29rdXAgaW4gdGhlIFhQYXRoCisgKiBlbmdpbmUuCisgKgorICogUmV0dXJucyB0aGUgWFBhdGggZnVuY3Rpb24gb3IgTlVMTCBpZiBub3QgZm91bmQuCisgKi8KK3R5cGVkZWYgeG1sWFBhdGhGdW5jdGlvbiAoKnhtbFhQYXRoRnVuY0xvb2t1cEZ1bmMpICh2b2lkICpjdHh0LAorCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJIGNvbnN0IHhtbENoYXIgKm5zX3VyaSk7CisKKy8qKgorICogeG1sWFBhdGhGbGFnczoKKyAqIEZsYWdzIGZvciBYUGF0aCBlbmdpbmUgY29tcGlsYXRpb24gYW5kIHJ1bnRpbWUKKyAqLworLyoqCisgKiBYTUxfWFBBVEhfQ0hFQ0tOUzoKKyAqCisgKiBjaGVjayBuYW1lc3BhY2VzIGF0IGNvbXBpbGF0aW9uCisgKi8KKyNkZWZpbmUgWE1MX1hQQVRIX0NIRUNLTlMgKDE8PDApCisvKioKKyAqIFhNTF9YUEFUSF9OT1ZBUjoKKyAqCisgKiBmb3JiaWQgdmFyaWFibGVzIGluIGV4cHJlc3Npb24KKyAqLworI2RlZmluZSBYTUxfWFBBVEhfTk9WQVIJICAoMTw8MSkKKworLyoqCisgKiB4bWxYUGF0aENvbnRleHQ6CisgKgorICogRXhwcmVzc2lvbiBldmFsdWF0aW9uIG9jY3VycyB3aXRoIHJlc3BlY3QgdG8gYSBjb250ZXh0LgorICogaGUgY29udGV4dCBjb25zaXN0cyBvZjoKKyAqICAgIC0gYSBub2RlICh0aGUgY29udGV4dCBub2RlKSAKKyAqICAgIC0gYSBub2RlIGxpc3QgKHRoZSBjb250ZXh0IG5vZGUgbGlzdCkgCisgKiAgICAtIGEgc2V0IG9mIHZhcmlhYmxlIGJpbmRpbmdzIAorICogICAgLSBhIGZ1bmN0aW9uIGxpYnJhcnkgCisgKiAgICAtIHRoZSBzZXQgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBpbiBzY29wZSBmb3IgdGhlIGV4cHJlc3Npb24gCisgKiBGb2xsb3dpbmcgdGhlIHN3aXRjaCB0byBoYXNoIHRhYmxlcywgdGhpcyBuZWVkIHRvIGJlIHRyaW1tZWQgdXAgYXQKKyAqIHRoZSBuZXh0IGJpbmFyeSBpbmNvbXBhdGlibGUgcmVsZWFzZS4KKyAqIFRoZSBub2RlIG1heSBiZSBtb2RpZmllZCB3aGVuIHRoZSBjb250ZXh0IGlzIHBhc3NlZCB0byBsaWJ4bWwyCisgKiBmb3IgYW4gWFBhdGggZXZhbHVhdGlvbiBzbyB5b3UgbWF5IG5lZWQgdG8gaW5pdGlhbGl6ZSBpdCBhZ2FpbgorICogYmVmb3JlIHRoZSBuZXh0IGNhbGwuCisgKi8KKworc3RydWN0IF94bWxYUGF0aENvbnRleHQgeworICAgIHhtbERvY1B0ciBkb2M7CQkJLyogVGhlIGN1cnJlbnQgZG9jdW1lbnQgKi8KKyAgICB4bWxOb2RlUHRyIG5vZGU7CQkJLyogVGhlIGN1cnJlbnQgbm9kZSAqLworCisgICAgaW50IG5iX3ZhcmlhYmxlc191bnVzZWQ7CQkvKiB1bnVzZWQgKGhhc2ggdGFibGUpICovCisgICAgaW50IG1heF92YXJpYWJsZXNfdW51c2VkOwkJLyogdW51c2VkIChoYXNoIHRhYmxlKSAqLworICAgIHhtbEhhc2hUYWJsZVB0ciB2YXJIYXNoOwkJLyogSGFzaCB0YWJsZSBvZiBkZWZpbmVkIHZhcmlhYmxlcyAqLworCisgICAgaW50IG5iX3R5cGVzOwkJCS8qIG51bWJlciBvZiBkZWZpbmVkIHR5cGVzICovCisgICAgaW50IG1heF90eXBlczsJCQkvKiBtYXggbnVtYmVyIG9mIHR5cGVzICovCisgICAgeG1sWFBhdGhUeXBlUHRyIHR5cGVzOwkJLyogQXJyYXkgb2YgZGVmaW5lZCB0eXBlcyAqLworCisgICAgaW50IG5iX2Z1bmNzX3VudXNlZDsJCS8qIHVudXNlZCAoaGFzaCB0YWJsZSkgKi8KKyAgICBpbnQgbWF4X2Z1bmNzX3VudXNlZDsJCS8qIHVudXNlZCAoaGFzaCB0YWJsZSkgKi8KKyAgICB4bWxIYXNoVGFibGVQdHIgZnVuY0hhc2g7CQkvKiBIYXNoIHRhYmxlIG9mIGRlZmluZWQgZnVuY3MgKi8KKworICAgIGludCBuYl9heGlzOwkJCS8qIG51bWJlciBvZiBkZWZpbmVkIGF4aXMgKi8KKyAgICBpbnQgbWF4X2F4aXM7CQkJLyogbWF4IG51bWJlciBvZiBheGlzICovCisgICAgeG1sWFBhdGhBeGlzUHRyIGF4aXM7CQkvKiBBcnJheSBvZiBkZWZpbmVkIGF4aXMgKi8KKworICAgIC8qIHRoZSBuYW1lc3BhY2Ugbm9kZXMgb2YgdGhlIGNvbnRleHQgbm9kZSAqLworICAgIHhtbE5zUHRyICpuYW1lc3BhY2VzOwkJLyogQXJyYXkgb2YgbmFtZXNwYWNlcyAqLworICAgIGludCBuc05yOwkJCQkvKiBudW1iZXIgb2YgbmFtZXNwYWNlIGluIHNjb3BlICovCisgICAgdm9pZCAqdXNlcjsJCQkJLyogZnVuY3Rpb24gdG8gZnJlZSAqLworCisgICAgLyogZXh0cmEgdmFyaWFibGVzICovCisgICAgaW50IGNvbnRleHRTaXplOwkJCS8qIHRoZSBjb250ZXh0IHNpemUgKi8KKyAgICBpbnQgcHJveGltaXR5UG9zaXRpb247CQkvKiB0aGUgcHJveGltaXR5IHBvc2l0aW9uICovCisKKyAgICAvKiBleHRyYSBzdHVmZiBmb3IgWFBvaW50ZXIgKi8KKyAgICBpbnQgeHB0cjsJCQkJLyogaXMgdGhpcyBhbiBYUG9pbnRlciBjb250ZXh0PyAqLworICAgIHhtbE5vZGVQdHIgaGVyZTsJCQkvKiBmb3IgaGVyZSgpICovCisgICAgeG1sTm9kZVB0ciBvcmlnaW47CQkJLyogZm9yIG9yaWdpbigpICovCisKKyAgICAvKiB0aGUgc2V0IG9mIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgaW4gc2NvcGUgZm9yIHRoZSBleHByZXNzaW9uICovCisgICAgeG1sSGFzaFRhYmxlUHRyIG5zSGFzaDsJCS8qIFRoZSBuYW1lc3BhY2VzIGhhc2ggdGFibGUgKi8KKyAgICB4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyB2YXJMb29rdXBGdW5jOy8qIHZhcmlhYmxlIGxvb2t1cCBmdW5jICovCisgICAgdm9pZCAqdmFyTG9va3VwRGF0YTsJCS8qIHZhcmlhYmxlIGxvb2t1cCBkYXRhICovCisKKyAgICAvKiBQb3NzaWJpbGl0eSB0byBsaW5rIGluIGFuIGV4dHJhIGl0ZW0gKi8KKyAgICB2b2lkICpleHRyYTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBuZWVkZWQgZm9yIFhTTFQgKi8KKworICAgIC8qIFRoZSBmdW5jdGlvbiBuYW1lIGFuZCBVUkkgd2hlbiBjYWxsaW5nIGEgZnVuY3Rpb24gKi8KKyAgICBjb25zdCB4bWxDaGFyICpmdW5jdGlvbjsKKyAgICBjb25zdCB4bWxDaGFyICpmdW5jdGlvblVSSTsKKworICAgIC8qIGZ1bmN0aW9uIGxvb2t1cCBmdW5jdGlvbiBhbmQgZGF0YSAqLworICAgIHhtbFhQYXRoRnVuY0xvb2t1cEZ1bmMgZnVuY0xvb2t1cEZ1bmM7LyogZnVuY3Rpb24gbG9va3VwIGZ1bmMgKi8KKyAgICB2b2lkICpmdW5jTG9va3VwRGF0YTsJCS8qIGZ1bmN0aW9uIGxvb2t1cCBkYXRhICovCisKKyAgICAvKiB0ZW1wb3JhcnkgbmFtZXNwYWNlIGxpc3RzIGtlcHQgZm9yIHdhbGtpbmcgdGhlIG5hbWVzcGFjZSBheGlzICovCisgICAgeG1sTnNQdHIgKnRtcE5zTGlzdDsJCS8qIEFycmF5IG9mIG5hbWVzcGFjZXMgKi8KKyAgICBpbnQgdG1wTnNOcjsJCQkvKiBudW1iZXIgb2YgbmFtZXNwYWNlcyBpbiBzY29wZSAqLworCisgICAgLyogZXJyb3IgcmVwb3J0aW5nIG1lY2hhbmlzbSAqLworICAgIHZvaWQgKnVzZXJEYXRhOyAgICAgICAgICAgICAgICAgICAgIC8qIHVzZXIgc3BlY2lmaWMgZGF0YSBibG9jayAqLworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgZXJyb3I7ICAgICAgIC8qIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIGVycm9ycyAqLworICAgIHhtbEVycm9yIGxhc3RFcnJvcjsJCQkvKiB0aGUgbGFzdCBlcnJvciAqLworICAgIHhtbE5vZGVQdHIgZGVidWdOb2RlOwkJLyogdGhlIHNvdXJjZSBub2RlIFhTTFQgKi8KKworICAgIC8qIGRpY3Rpb25hcnkgKi8KKyAgICB4bWxEaWN0UHRyIGRpY3Q7CQkJLyogZGljdGlvbmFyeSBpZiBhbnkgKi8KKworICAgIGludCBmbGFnczsJCQkJLyogZmxhZ3MgdG8gY29udHJvbCBjb21waWxhdGlvbiAqLworCisgICAgLyogQ2FjaGUgZm9yIHJldXNhbCBvZiBYUGF0aCBvYmplY3RzICovCisgICAgdm9pZCAqY2FjaGU7Cit9OworCisvKgorICogVGhlIHN0cnVjdHVyZSBvZiBhIGNvbXBpbGVkIGV4cHJlc3Npb24gZm9ybSBpcyBub3QgcHVibGljLgorICovCisKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aENvbXBFeHByIHhtbFhQYXRoQ29tcEV4cHI7Cit0eXBlZGVmIHhtbFhQYXRoQ29tcEV4cHIgKnhtbFhQYXRoQ29tcEV4cHJQdHI7CisKKy8qKgorICogeG1sWFBhdGhQYXJzZXJDb250ZXh0OgorICoKKyAqIEFuIFhQYXRoIHBhcnNlciBjb250ZXh0LiBJdCBjb250YWlucyBwdXJlIHBhcnNpbmcgaW5mb3JtYXRpb25zLAorICogYW4geG1sWFBhdGhDb250ZXh0LCBhbmQgdGhlIHN0YWNrIG9mIG9iamVjdHMuCisgKi8KK3N0cnVjdCBfeG1sWFBhdGhQYXJzZXJDb250ZXh0IHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXI7CQkJLyogdGhlIGN1cnJlbnQgY2hhciBiZWluZyBwYXJzZWQgKi8KKyAgICBjb25zdCB4bWxDaGFyICpiYXNlOwkJCS8qIHRoZSBmdWxsIGV4cHJlc3Npb24gKi8KKworICAgIGludCBlcnJvcjsJCQkJLyogZXJyb3IgY29kZSAqLworCisgICAgeG1sWFBhdGhDb250ZXh0UHRyICBjb250ZXh0OwkvKiB0aGUgZXZhbHVhdGlvbiBjb250ZXh0ICovCisgICAgeG1sWFBhdGhPYmplY3RQdHIgICAgIHZhbHVlOwkvKiB0aGUgY3VycmVudCB2YWx1ZSAqLworICAgIGludCAgICAgICAgICAgICAgICAgdmFsdWVOcjsJLyogbnVtYmVyIG9mIHZhbHVlcyBzdGFja2VkICovCisgICAgaW50ICAgICAgICAgICAgICAgIHZhbHVlTWF4OwkvKiBtYXggbnVtYmVyIG9mIHZhbHVlcyBzdGFja2VkICovCisgICAgeG1sWFBhdGhPYmplY3RQdHIgKnZhbHVlVGFiOwkvKiBzdGFjayBvZiB2YWx1ZXMgKi8KKworICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcDsJCS8qIHRoZSBwcmVjb21waWxlZCBleHByZXNzaW9uICovCisgICAgaW50IHhwdHI7CQkJCS8qIGl0IHRoaXMgYW4gWFBvaW50ZXIgZXhwcmVzc2lvbiAqLworICAgIHhtbE5vZGVQdHIgICAgICAgICBhbmNlc3RvcjsJLyogdXNlZCBmb3Igd2Fsa2luZyBwcmVjZWRpbmcgYXhpcyAqLworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVB1YmxpYyBBUEkJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBPYmplY3RzIGFuZCBOb2Rlc2V0cyBoYW5kbGluZworICovCisKK1hNTFBVQlZBUiBkb3VibGUgeG1sWFBhdGhOQU47CitYTUxQVUJWQVIgZG91YmxlIHhtbFhQYXRoUElORjsKK1hNTFBVQlZBUiBkb3VibGUgeG1sWFBhdGhOSU5GOworCisvKiBUaGVzZSBtYWNyb3MgbWF5IGxhdGVyIHR1cm4gaW50byBmdW5jdGlvbnMgKi8KKy8qKgorICogeG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoOgorICogQG5zOiAgYSBub2RlLXNldAorICoKKyAqIEltcGxlbWVudCBhIGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0byB0aGUgRE9NIE5vZGVMaXN0Lmxlbmd0aC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIG5vZGUtc2V0LgorICovCisjZGVmaW5lIHhtbFhQYXRoTm9kZVNldEdldExlbmd0aChucykgKChucykgPyAobnMpLT5ub2RlTnIgOiAwKQorLyoqCisgKiB4bWxYUGF0aE5vZGVTZXRJdGVtOgorICogQG5zOiAgYSBub2RlLXNldAorICogQGluZGV4OiAgaW5kZXggb2YgYSBub2RlIGluIHRoZSBzZXQKKyAqCisgKiBJbXBsZW1lbnRzIGEgZnVuY3Rpb25hbGl0eSBzaW1pbGFyIHRvIHRoZSBET00gTm9kZUxpc3QuaXRlbSgpLgorICoKKyAqIFJldHVybnMgdGhlIHhtbE5vZGVQdHIgYXQgdGhlIGdpdmVuIEBpbmRleCBpbiBAbnMgb3IgTlVMTCBpZgorICogICAgICAgICBAaW5kZXggaXMgb3V0IG9mIHJhbmdlICgwIHRvIGxlbmd0aC0xKQorICovCisjZGVmaW5lIHhtbFhQYXRoTm9kZVNldEl0ZW0obnMsIGluZGV4KQkJCQlcCisJCSgoKChucykgIT0gTlVMTCkgJiYgCQkJCVwKKwkJICAoKGluZGV4KSA+PSAwKSAmJiAoKGluZGV4KSA8IChucyktPm5vZGVOcikpID8JXAorCQkgKG5zKS0+bm9kZVRhYlsoaW5kZXgpXQkJCQlcCisJCSA6IE5VTEwpCisvKioKKyAqIHhtbFhQYXRoTm9kZVNldElzRW1wdHk6CisgKiBAbnM6IGEgbm9kZS1zZXQKKyAqCisgKiBDaGVja3Mgd2hldGhlciBAbnMgaXMgZW1wdHkgb3Igbm90LgorICoKKyAqIFJldHVybnMgJVRSVUUgaWYgQG5zIGlzIGFuIGVtcHR5IG5vZGUtc2V0LgorICovCisjZGVmaW5lIHhtbFhQYXRoTm9kZVNldElzRW1wdHkobnMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKCgobnMpID09IE5VTEwpIHx8ICgobnMpLT5ub2RlTnIgPT0gMCkgfHwgKChucyktPm5vZGVUYWIgPT0gTlVMTCkpCisKKworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJICAgCisJCSAgICB4bWxYUGF0aEZyZWVPYmplY3QJCSh4bWxYUGF0aE9iamVjdFB0ciBvYmopOworWE1MUFVCRlVOIHhtbE5vZGVTZXRQdHIgWE1MQ0FMTAkgICAKKwkJICAgIHhtbFhQYXRoTm9kZVNldENyZWF0ZQkoeG1sTm9kZVB0ciB2YWwpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJICAgCisJCSAgICB4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdAkoeG1sWFBhdGhPYmplY3RQdHIgb2JqKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhGcmVlTm9kZVNldAkJKHhtbE5vZGVTZXRQdHIgb2JqKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMICAKKwkJICAgIHhtbFhQYXRoT2JqZWN0Q29weQkJKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhDbXBOb2RlcwkJKHhtbE5vZGVQdHIgbm9kZTEsCisJCQkJCQkgeG1sTm9kZVB0ciBub2RlMik7CisvKioKKyAqIENvbnZlcnNpb24gZnVuY3Rpb25zIHRvIGJhc2ljIHR5cGVzLgorICovCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuCShkb3VibGUgdmFsKTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJICAgCisJCSAgICB4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4JKGNvbnN0IHhtbENoYXIgKiB2YWwpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkgICAKKwkJICAgIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4oeG1sTm9kZVNldFB0ciBucyk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhDYXN0VG9Cb29sZWFuCSh4bWxYUGF0aE9iamVjdFB0ciB2YWwpOworCitYTUxQVUJGVU4gZG91YmxlIFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyCShpbnQgdmFsKTsKK1hNTFBVQkZVTiBkb3VibGUgWE1MQ0FMTAkJICAgCisJCSAgICB4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcgkoY29uc3QgeG1sQ2hhciAqIHZhbCk7CitYTUxQVUJGVU4gZG91YmxlIFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyCSh4bWxOb2RlUHRyIG5vZGUpOworWE1MUFVCRlVOIGRvdWJsZSBYTUxDQUxMCQkgICAKKwkJICAgIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcgkoeG1sTm9kZVNldFB0ciBucyk7CitYTUxQVUJGVU4gZG91YmxlIFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhDYXN0VG9OdW1iZXIJKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CisKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkgICAKKwkJICAgIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZwkoaW50IHZhbCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJICAgCisJCSAgICB4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZwkoZG91YmxlIHZhbCk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJICAgCisJCSAgICB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcJKHhtbE5vZGVQdHIgbm9kZSk7CitYTUxQVUJGVU4geG1sQ2hhciAqIFhNTENBTEwJICAgCisJCSAgICB4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcJKHhtbE5vZGVTZXRQdHIgbnMpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCSAgIAorCQkgICAgeG1sWFBhdGhDYXN0VG9TdHJpbmcJKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CisKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMICAKKwkJICAgIHhtbFhQYXRoQ29udmVydEJvb2xlYW4JKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTCAgCisJCSAgICB4bWxYUGF0aENvbnZlcnROdW1iZXIJKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTCAgCisJCSAgICB4bWxYUGF0aENvbnZlcnRTdHJpbmcJKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CisKKy8qKgorICogQ29udGV4dCBoYW5kbGluZy4KKyAqLworWE1MUFVCRlVOIHhtbFhQYXRoQ29udGV4dFB0ciBYTUxDQUxMIAorCQkgICAgeG1sWFBhdGhOZXdDb250ZXh0CQkoeG1sRG9jUHRyIGRvYyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCisJCSAgICB4bWxYUGF0aEZyZWVDb250ZXh0CQkoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCisJCSAgICB4bWxYUGF0aENvbnRleHRTZXRDYWNoZSh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwKKwkJCQkgICAgICAgICAgICBpbnQgYWN0aXZlLAorCQkJCQkgICAgaW50IHZhbHVlLAorCQkJCQkgICAgaW50IG9wdGlvbnMpOworLyoqCisgKiBFdmFsdWF0aW9uIGZ1bmN0aW9ucy4KKyAqLworWE1MUFVCRlVOIGxvbmcgWE1MQ0FMTCAgICAgICAgICAgICAgIAorCQkgICAgeG1sWFBhdGhPcmRlckRvY0VsZW1zCSh4bWxEb2NQdHIgZG9jKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMICAKKwkJICAgIHhtbFhQYXRoRXZhbAkJKGNvbnN0IHhtbENoYXIgKnN0ciwKKwkJCQkJCSB4bWxYUGF0aENvbnRleHRQdHIgY3R4KTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMICAKKwkJICAgIHhtbFhQYXRoRXZhbEV4cHJlc3Npb24JKGNvbnN0IHhtbENoYXIgKnN0ciwKKwkJCQkJCSB4bWxYUGF0aENvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgICAgICAgICAgICAgICAgCisJCSAgICB4bWxYUGF0aEV2YWxQcmVkaWNhdGUJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIHhtbFhQYXRoT2JqZWN0UHRyIHJlcyk7CisvKioKKyAqIFNlcGFyYXRlIGNvbXBpbGF0aW9uL2V2YWx1YXRpb24gZW50cnkgcG9pbnRzLgorICovCitYTUxQVUJGVU4geG1sWFBhdGhDb21wRXhwclB0ciBYTUxDQUxMIAorCQkgICAgeG1sWFBhdGhDb21waWxlCQkoY29uc3QgeG1sQ2hhciAqc3RyKTsKK1hNTFBVQkZVTiB4bWxYUGF0aENvbXBFeHByUHRyIFhNTENBTEwgCisJCSAgICB4bWxYUGF0aEN0eHRDb21waWxlCQkoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsCisJCSAgICAJCQkJIGNvbnN0IHhtbENoYXIgKnN0cik7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTCAgIAorCQkgICAgeG1sWFBhdGhDb21waWxlZEV2YWwJKHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcCwKKwkJCQkJCSB4bWxYUGF0aENvbnRleHRQdHIgY3R4KTsKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTCAgIAorCQkgICAgeG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW4oeG1sWFBhdGhDb21wRXhwclB0ciBjb21wLAorCQkJCQkJIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgICAgICAgICAgICAgICAgCisJCSAgICB4bWxYUGF0aEZyZWVDb21wRXhwcgkoeG1sWFBhdGhDb21wRXhwclB0ciBjb21wKTsKKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgIAorCQkgICAgeG1sWFBhdGhJbml0CQkodm9pZCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sWFBhdGhJc05hTgkoZG91YmxlIHZhbCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwKKwkJeG1sWFBhdGhJc0luZgkoZG91YmxlIHZhbCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCBvciBMSUJYTUxfU0NIRU1BU19FTkFCTEVEKi8KKyNlbmRpZiAvKiAhIF9fWE1MX1hQQVRIX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94cGF0aEludGVybmFscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjZDUyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3hwYXRoSW50ZXJuYWxzLmgKQEAgLTAsMCArMSw2MzAgQEAKKy8qCisgKiBTdW1tYXJ5OiBpbnRlcm5hbCBpbnRlcmZhY2VzIGZvciBYTUwgUGF0aCBMYW5ndWFnZSBpbXBsZW1lbnRhdGlvbgorICogRGVzY3JpcHRpb246IGludGVybmFsIGludGVyZmFjZXMgZm9yIFhNTCBQYXRoIExhbmd1YWdlIGltcGxlbWVudGF0aW9uCisgKiAgICAgICAgICAgICAgdXNlZCB0byBidWlsZCBuZXcgbW9kdWxlcyBvbiB0b3Agb2YgWFBhdGggbGlrZSBYUG9pbnRlciBhbmQKKyAqICAgICAgICAgICAgICBYU0xUCisgKgorICogQ29weTogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIEF1dGhvcjogRGFuaWVsIFZlaWxsYXJkCisgKi8KKworI2lmbmRlZiBfX1hNTF9YUEFUSF9JTlRFUk5BTFNfSF9fCisjZGVmaW5lIF9fWE1MX1hQQVRIX0lOVEVSTkFMU19IX18KKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CisKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlIZWxwZXJzCQkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogTWFueSBvZiB0aGVzZSBtYWNyb3MgbWF5IGxhdGVyIHR1cm4gaW50byBmdW5jdGlvbnMuIFRoZXkKKyAqIHNob3VsZG4ndCBiZSB1c2VkIGluICNpZmRlZidzIHByZXByb2Nlc3NvciBpbnN0cnVjdGlvbnMuCisgKi8KKy8qKgorICogeG1sWFBhdGhTZXRFcnJvcjoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqIEBlcnI6ICBhbiB4bWxYUGF0aEVycm9yIGNvZGUKKyAqCisgKiBSYWlzZXMgYW4gZXJyb3IuCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhTZXRFcnJvcihjdHh0LCBlcnIpCQkJCQlcCisgICAgeyB4bWxYUGF0aGVycm9yKChjdHh0KSwgX19GSUxFX18sIF9fTElORV9fLCAoZXJyKSk7CQkJXAorICAgICAgaWYgKChjdHh0KSAhPSBOVUxMKSAoY3R4dCktPmVycm9yID0gKGVycik7IH0KKworLyoqCisgKiB4bWxYUGF0aFNldEFyaXR5RXJyb3I6CisgKiBAY3R4dDogIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKgorICogUmFpc2VzIGFuIFhQQVRIX0lOVkFMSURfQVJJVFkgZXJyb3IuCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhTZXRBcml0eUVycm9yKGN0eHQpCQkJCQlcCisgICAgeG1sWFBhdGhTZXRFcnJvcigoY3R4dCksIFhQQVRIX0lOVkFMSURfQVJJVFkpCisKKy8qKgorICogeG1sWFBhdGhTZXRUeXBlRXJyb3I6CisgKiBAY3R4dDogIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKgorICogUmFpc2VzIGFuIFhQQVRIX0lOVkFMSURfVFlQRSBlcnJvci4KKyAqLworI2RlZmluZSB4bWxYUGF0aFNldFR5cGVFcnJvcihjdHh0KQkJCQkJXAorICAgIHhtbFhQYXRoU2V0RXJyb3IoKGN0eHQpLCBYUEFUSF9JTlZBTElEX1RZUEUpCisKKy8qKgorICogeG1sWFBhdGhHZXRFcnJvcjoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqCisgKiBHZXQgdGhlIGVycm9yIGNvZGUgb2YgYW4gWFBhdGggY29udGV4dC4KKyAqCisgKiBSZXR1cm5zIHRoZSBjb250ZXh0IGVycm9yLgorICovCisjZGVmaW5lIHhtbFhQYXRoR2V0RXJyb3IoY3R4dCkJICAoKGN0eHQpLT5lcnJvcikKKworLyoqCisgKiB4bWxYUGF0aENoZWNrRXJyb3I6CisgKiBAY3R4dDogIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKgorICogQ2hlY2sgaWYgYW4gWFBhdGggZXJyb3Igd2FzIHJhaXNlZC4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgYW4gZXJyb3IgaGFzIGJlZW4gcmFpc2VkLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhDaGVja0Vycm9yKGN0eHQpICAoKGN0eHQpLT5lcnJvciAhPSBYUEFUSF9FWFBSRVNTSU9OX09LKQorCisvKioKKyAqIHhtbFhQYXRoR2V0RG9jdW1lbnQ6CisgKiBAY3R4dDogIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKgorICogR2V0IHRoZSBkb2N1bWVudCBvZiBhbiBYUGF0aCBjb250ZXh0LgorICoKKyAqIFJldHVybnMgdGhlIGNvbnRleHQgZG9jdW1lbnQuCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhHZXREb2N1bWVudChjdHh0KQkoKGN0eHQpLT5jb250ZXh0LT5kb2MpCisKKy8qKgorICogeG1sWFBhdGhHZXRDb250ZXh0Tm9kZToKKyAqIEBjdHh0OiBhbiBYUGF0aCBwYXJzZXIgY29udGV4dAorICoKKyAqIEdldCB0aGUgY29udGV4dCBub2RlIG9mIGFuIFhQYXRoIGNvbnRleHQuCisgKgorICogUmV0dXJucyB0aGUgY29udGV4dCBub2RlLgorICovCisjZGVmaW5lIHhtbFhQYXRoR2V0Q29udGV4dE5vZGUoY3R4dCkJKChjdHh0KS0+Y29udGV4dC0+bm9kZSkKKworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sWFBhdGhQb3BCb29sZWFuCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gZG91YmxlIFhNTENBTEwJCQorICAgIAkJeG1sWFBhdGhQb3BOdW1iZXIJKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxDaGFyICogWE1MQ0FMTAkKKyAgICAJCXhtbFhQYXRoUG9wU3RyaW5nCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4geG1sTm9kZVNldFB0ciBYTUxDQUxMCQorICAgIAkJeG1sWFBhdGhQb3BOb2RlU2V0CSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCAqIFhNTENBTEwJCQorICAgIAkJeG1sWFBhdGhQb3BFeHRlcm5hbAkoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpOworCisvKioKKyAqIHhtbFhQYXRoUmV0dXJuQm9vbGVhbjoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqIEB2YWw6ICBhIGJvb2xlYW4KKyAqCisgKiBQdXNoZXMgdGhlIGJvb2xlYW4gQHZhbCBvbiB0aGUgY29udGV4dCBzdGFjay4KKyAqLworI2RlZmluZSB4bWxYUGF0aFJldHVybkJvb2xlYW4oY3R4dCwgdmFsKQkJCQlcCisgICAgdmFsdWVQdXNoKChjdHh0KSwgeG1sWFBhdGhOZXdCb29sZWFuKHZhbCkpCisKKy8qKgorICogeG1sWFBhdGhSZXR1cm5UcnVlOgorICogQGN0eHQ6ICBhbiBYUGF0aCBwYXJzZXIgY29udGV4dAorICoKKyAqIFB1c2hlcyB0cnVlIG9uIHRoZSBjb250ZXh0IHN0YWNrLgorICovCisjZGVmaW5lIHhtbFhQYXRoUmV0dXJuVHJ1ZShjdHh0KSAgIHhtbFhQYXRoUmV0dXJuQm9vbGVhbigoY3R4dCksIDEpCisKKy8qKgorICogeG1sWFBhdGhSZXR1cm5GYWxzZToKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQdXNoZXMgZmFsc2Ugb24gdGhlIGNvbnRleHQgc3RhY2suCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhSZXR1cm5GYWxzZShjdHh0KSAgeG1sWFBhdGhSZXR1cm5Cb29sZWFuKChjdHh0KSwgMCkKKworLyoqCisgKiB4bWxYUGF0aFJldHVybk51bWJlcjoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqIEB2YWw6ICBhIGRvdWJsZQorICoKKyAqIFB1c2hlcyB0aGUgZG91YmxlIEB2YWwgb24gdGhlIGNvbnRleHQgc3RhY2suCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhSZXR1cm5OdW1iZXIoY3R4dCwgdmFsKQkJCQkJXAorICAgIHZhbHVlUHVzaCgoY3R4dCksIHhtbFhQYXRoTmV3RmxvYXQodmFsKSkKKworLyoqCisgKiB4bWxYUGF0aFJldHVyblN0cmluZzoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqIEBzdHI6ICBhIHN0cmluZworICoKKyAqIFB1c2hlcyB0aGUgc3RyaW5nIEBzdHIgb24gdGhlIGNvbnRleHQgc3RhY2suCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhSZXR1cm5TdHJpbmcoY3R4dCwgc3RyKQkJCQkJXAorICAgIHZhbHVlUHVzaCgoY3R4dCksIHhtbFhQYXRoV3JhcFN0cmluZyhzdHIpKQorCisvKioKKyAqIHhtbFhQYXRoUmV0dXJuRW1wdHlTdHJpbmc6CisgKiBAY3R4dDogIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKgorICogUHVzaGVzIGFuIGVtcHR5IHN0cmluZyBvbiB0aGUgc3RhY2suCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhSZXR1cm5FbXB0eVN0cmluZyhjdHh0KQkJCQkJXAorICAgIHZhbHVlUHVzaCgoY3R4dCksIHhtbFhQYXRoTmV3Q1N0cmluZygiIikpCisKKy8qKgorICogeG1sWFBhdGhSZXR1cm5Ob2RlU2V0OgorICogQGN0eHQ6ICBhbiBYUGF0aCBwYXJzZXIgY29udGV4dAorICogQG5zOiAgYSBub2RlLXNldAorICoKKyAqIFB1c2hlcyB0aGUgbm9kZS1zZXQgQG5zIG9uIHRoZSBjb250ZXh0IHN0YWNrLgorICovCisjZGVmaW5lIHhtbFhQYXRoUmV0dXJuTm9kZVNldChjdHh0LCBucykJCQkJCVwKKyAgICB2YWx1ZVB1c2goKGN0eHQpLCB4bWxYUGF0aFdyYXBOb2RlU2V0KG5zKSkKKworLyoqCisgKiB4bWxYUGF0aFJldHVybkVtcHR5Tm9kZVNldDoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQdXNoZXMgYW4gZW1wdHkgbm9kZS1zZXQgb24gdGhlIGNvbnRleHQgc3RhY2suCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhSZXR1cm5FbXB0eU5vZGVTZXQoY3R4dCkJCQkJXAorICAgIHZhbHVlUHVzaCgoY3R4dCksIHhtbFhQYXRoTmV3Tm9kZVNldChOVUxMKSkKKworLyoqCisgKiB4bWxYUGF0aFJldHVybkV4dGVybmFsOgorICogQGN0eHQ6ICBhbiBYUGF0aCBwYXJzZXIgY29udGV4dAorICogQHZhbDogIHVzZXIgZGF0YQorICoKKyAqIFB1c2hlcyB1c2VyIGRhdGEgb24gdGhlIGNvbnRleHQgc3RhY2suCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhSZXR1cm5FeHRlcm5hbChjdHh0LCB2YWwpCQkJCVwKKyAgICB2YWx1ZVB1c2goKGN0eHQpLCB4bWxYUGF0aFdyYXBFeHRlcm5hbCh2YWwpKQorCisvKioKKyAqIHhtbFhQYXRoU3RhY2tJc05vZGVTZXQ6CisgKiBAY3R4dDogYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqCisgKiBDaGVjayBpZiB0aGUgY3VycmVudCB2YWx1ZSBvbiB0aGUgWFBhdGggc3RhY2sgaXMgYSBub2RlIHNldCBvcgorICogYW4gWFNMVCB2YWx1ZSB0cmVlLgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBvYmplY3Qgb24gdGhlIHN0YWNrIGlzIGEgbm9kZS1zZXQuCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhTdGFja0lzTm9kZVNldChjdHh0KQkJCQkJXAorICAgICgoKGN0eHQpLT52YWx1ZSAhPSBOVUxMKQkJCQkJCVwKKyAgICAgJiYgKCgoY3R4dCktPnZhbHVlLT50eXBlID09IFhQQVRIX05PREVTRVQpCQkJCVwKKyAgICAgICAgIHx8ICgoY3R4dCktPnZhbHVlLT50eXBlID09IFhQQVRIX1hTTFRfVFJFRSkpKQorCisvKioKKyAqIHhtbFhQYXRoU3RhY2tJc0V4dGVybmFsOgorICogQGN0eHQ6IGFuIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKgorICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHZhbHVlIG9uIHRoZSBYUGF0aCBzdGFjayBpcyBhbiBleHRlcm5hbAorICogb2JqZWN0LgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBvYmplY3Qgb24gdGhlIHN0YWNrIGlzIGFuIGV4dGVybmFsCisgKiBvYmplY3QuCisgKi8KKyNkZWZpbmUgeG1sWFBhdGhTdGFja0lzRXh0ZXJuYWwoY3R4dCkJCQkJCVwKKwkoKGN0eHQtPnZhbHVlICE9IE5VTEwpICYmIChjdHh0LT52YWx1ZS0+dHlwZSA9PSBYUEFUSF9VU0VSUykpCisKKy8qKgorICogeG1sWFBhdGhFbXB0eU5vZGVTZXQ6CisgKiBAbnM6ICBhIG5vZGUtc2V0CisgKgorICogRW1wdGllcyBhIG5vZGUtc2V0LgorICovCisjZGVmaW5lIHhtbFhQYXRoRW1wdHlOb2RlU2V0KG5zKQkJCQkJXAorICAgIHsgd2hpbGUgKChucyktPm5vZGVOciA+IDApIChucyktPm5vZGVUYWJbKG5zKS0+bm9kZU5yLS1dID0gTlVMTDsgfQorCisvKioKKyAqIENIRUNLX0VSUk9SOgorICoKKyAqIE1hY3JvIHRvIHJldHVybiBmcm9tIHRoZSBmdW5jdGlvbiBpZiBhbiBYUGF0aCBlcnJvciB3YXMgZGV0ZWN0ZWQuCisgKi8KKyNkZWZpbmUgQ0hFQ0tfRVJST1IJCQkJCQkJXAorICAgIGlmIChjdHh0LT5lcnJvciAhPSBYUEFUSF9FWFBSRVNTSU9OX09LKSByZXR1cm4KKworLyoqCisgKiBDSEVDS19FUlJPUjA6CisgKgorICogTWFjcm8gdG8gcmV0dXJuIDAgZnJvbSB0aGUgZnVuY3Rpb24gaWYgYW4gWFBhdGggZXJyb3Igd2FzIGRldGVjdGVkLgorICovCisjZGVmaW5lIENIRUNLX0VSUk9SMAkJCQkJCQlcCisgICAgaWYgKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spIHJldHVybigwKQorCisvKioKKyAqIFhQX0VSUk9SOgorICogQFg6ICB0aGUgZXJyb3IgY29kZQorICoKKyAqIE1hY3JvIHRvIHJhaXNlIGFuIFhQYXRoIGVycm9yIGFuZCByZXR1cm4uCisgKi8KKyNkZWZpbmUgWFBfRVJST1IoWCkJCQkJCQkJXAorICAgIHsgeG1sWFBhdGhFcnIoY3R4dCwgWCk7IHJldHVybjsgfQorCisvKioKKyAqIFhQX0VSUk9SMDoKKyAqIEBYOiAgdGhlIGVycm9yIGNvZGUKKyAqCisgKiBNYWNybyB0byByYWlzZSBhbiBYUGF0aCBlcnJvciBhbmQgcmV0dXJuIDAuCisgKi8KKyNkZWZpbmUgWFBfRVJST1IwKFgpCQkJCQkJCVwKKyAgICB7IHhtbFhQYXRoRXJyKGN0eHQsIFgpOyByZXR1cm4oMCk7IH0KKworLyoqCisgKiBDSEVDS19UWVBFOgorICogQHR5cGV2YWw6ICB0aGUgWFBhdGggdHlwZQorICoKKyAqIE1hY3JvIHRvIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9uIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgaXMgb2YgYSBnaXZlbgorICogdHlwZS4KKyAqLworI2RlZmluZSBDSEVDS19UWVBFKHR5cGV2YWwpCQkJCQkJXAorICAgIGlmICgoY3R4dC0+dmFsdWUgPT0gTlVMTCkgfHwgKGN0eHQtPnZhbHVlLT50eXBlICE9IHR5cGV2YWwpKQlcCisgICAgICAgIFhQX0VSUk9SKFhQQVRIX0lOVkFMSURfVFlQRSkKKworLyoqCisgKiBDSEVDS19UWVBFMDoKKyAqIEB0eXBldmFsOiAgdGhlIFhQYXRoIHR5cGUKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvbiB0b3Agb2YgdGhlIFhQYXRoIHN0YWNrIGlzIG9mIGEgZ2l2ZW4KKyAqIHR5cGUuIFJldHVybigwKSBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworI2RlZmluZSBDSEVDS19UWVBFMCh0eXBldmFsKQkJCQkJCVwKKyAgICBpZiAoKGN0eHQtPnZhbHVlID09IE5VTEwpIHx8IChjdHh0LT52YWx1ZS0+dHlwZSAhPSB0eXBldmFsKSkJXAorICAgICAgICBYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9UWVBFKQorCisvKioKKyAqIENIRUNLX0FSSVRZOgorICogQHg6ICB0aGUgbnVtYmVyIG9mIGV4cGVjdGVkIGFyZ3MKKyAqCisgKiBNYWNybyB0byBjaGVjayB0aGF0IHRoZSBudW1iZXIgb2YgYXJncyBwYXNzZWQgdG8gYW4gWFBhdGggZnVuY3Rpb24gbWF0Y2hlcy4KKyAqLworI2RlZmluZSBDSEVDS19BUklUWSh4KQkJCQkJCQlcCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOwkJCQkJCVwKKyAgICBpZiAobmFyZ3MgIT0gKHgpKQkJCQkJCQlcCisgICAgICAgIFhQX0VSUk9SKFhQQVRIX0lOVkFMSURfQVJJVFkpOworCisvKioKKyAqIENBU1RfVE9fU1RSSU5HOgorICoKKyAqIE1hY3JvIHRvIHRyeSB0byBjYXN0IHRoZSB2YWx1ZSBvbiB0aGUgdG9wIG9mIHRoZSBYUGF0aCBzdGFjayB0byBhIHN0cmluZy4KKyAqLworI2RlZmluZSBDQVNUX1RPX1NUUklORwkJCQkJCQlcCisgICAgaWYgKChjdHh0LT52YWx1ZSAhPSBOVUxMKSAmJiAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfU1RSSU5HKSkJXAorICAgICAgICB4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uKGN0eHQsIDEpOworCisvKioKKyAqIENBU1RfVE9fTlVNQkVSOgorICoKKyAqIE1hY3JvIHRvIHRyeSB0byBjYXN0IHRoZSB2YWx1ZSBvbiB0aGUgdG9wIG9mIHRoZSBYUGF0aCBzdGFjayB0byBhIG51bWJlci4KKyAqLworI2RlZmluZSBDQVNUX1RPX05VTUJFUgkJCQkJCQlcCisgICAgaWYgKChjdHh0LT52YWx1ZSAhPSBOVUxMKSAmJiAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTlVNQkVSKSkJXAorICAgICAgICB4bWxYUGF0aE51bWJlckZ1bmN0aW9uKGN0eHQsIDEpOworCisvKioKKyAqIENBU1RfVE9fQk9PTEVBTjoKKyAqCisgKiBNYWNybyB0byB0cnkgdG8gY2FzdCB0aGUgdmFsdWUgb24gdGhlIHRvcCBvZiB0aGUgWFBhdGggc3RhY2sgdG8gYSBib29sZWFuLgorICovCisjZGVmaW5lIENBU1RfVE9fQk9PTEVBTgkJCQkJCQlcCisgICAgaWYgKChjdHh0LT52YWx1ZSAhPSBOVUxMKSAmJiAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfQk9PTEVBTikpCVwKKyAgICAgICAgeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24oY3R4dCwgMSk7CisKKy8qCisgKiBWYXJpYWJsZSBMb29rdXAgZm9yd2FyZGluZy4KKyAqLworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCXhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cAkoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsCisJCQkJCSB4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyBmLAorCQkJCQkgdm9pZCAqZGF0YSk7CisKKy8qCisgKiBGdW5jdGlvbiBMb29rdXAgZm9yd2FyZGluZy4KKyAqLworCitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQorCSAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cAkoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsCisJCQkJCSB4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIGYsCisJCQkJCSB2b2lkICpmdW5jQ3R4dCk7CisKKy8qCisgKiBFcnJvciByZXBvcnRpbmcuCisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxYUGF0aGVycm9yCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkJCQkgY29uc3QgY2hhciAqZmlsZSwKKwkJCQkgaW50IGxpbmUsCisJCQkJIGludCBubyk7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwKKwkJeG1sWFBhdGhFcnIJKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJCSBpbnQgZXJyb3IpOworCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCQl4bWxYUGF0aERlYnVnRHVtcE9iamVjdAkoRklMRSAqb3V0cHV0LAorCQkJCQkgeG1sWFBhdGhPYmplY3RQdHIgY3VyLAorCQkJCQkgaW50IGRlcHRoKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQorCSAgICB4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByKEZJTEUgKm91dHB1dCwKKwkJCQkJIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcCwKKwkJCQkJIGludCBkZXB0aCk7CisjZW5kaWYKKy8qKgorICogTm9kZVNldCBoYW5kbGluZy4KKyAqLworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkKKwkJeG1sWFBhdGhOb2RlU2V0Q29udGFpbnMJCSh4bWxOb2RlU2V0UHRyIGN1ciwKKwkJCQkJCSB4bWxOb2RlUHRyIHZhbCk7CitYTUxQVUJGVU4geG1sTm9kZVNldFB0ciBYTUxDQUxMCQorCQl4bWxYUGF0aERpZmZlcmVuY2UJCSh4bWxOb2RlU2V0UHRyIG5vZGVzMSwKKwkJCQkJCSB4bWxOb2RlU2V0UHRyIG5vZGVzMik7CitYTUxQVUJGVU4geG1sTm9kZVNldFB0ciBYTUxDQUxMCQorCQl4bWxYUGF0aEludGVyc2VjdGlvbgkJKHhtbE5vZGVTZXRQdHIgbm9kZXMxLAorCQkJCQkJIHhtbE5vZGVTZXRQdHIgbm9kZXMyKTsKKworWE1MUFVCRlVOIHhtbE5vZGVTZXRQdHIgWE1MQ0FMTAkKKwkJeG1sWFBhdGhEaXN0aW5jdFNvcnRlZAkJKHhtbE5vZGVTZXRQdHIgbm9kZXMpOworWE1MUFVCRlVOIHhtbE5vZGVTZXRQdHIgWE1MQ0FMTAkKKwkJeG1sWFBhdGhEaXN0aW5jdAkJKHhtbE5vZGVTZXRQdHIgbm9kZXMpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCQorCQl4bWxYUGF0aEhhc1NhbWVOb2RlcwkJKHhtbE5vZGVTZXRQdHIgbm9kZXMxLAorCQkJCQkJIHhtbE5vZGVTZXRQdHIgbm9kZXMyKTsKKworWE1MUFVCRlVOIHhtbE5vZGVTZXRQdHIgWE1MQ0FMTAkKKwkJeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZAkoeG1sTm9kZVNldFB0ciBub2RlcywKKwkJCQkJCSB4bWxOb2RlUHRyIG5vZGUpOworWE1MUFVCRlVOIHhtbE5vZGVTZXRQdHIgWE1MQ0FMTAkKKwkJeG1sWFBhdGhMZWFkaW5nU29ydGVkCQkoeG1sTm9kZVNldFB0ciBub2RlczEsCisJCQkJCQkgeG1sTm9kZVNldFB0ciBub2RlczIpOworWE1MUFVCRlVOIHhtbE5vZGVTZXRQdHIgWE1MQ0FMTAkKKwkJeG1sWFBhdGhOb2RlTGVhZGluZwkJKHhtbE5vZGVTZXRQdHIgbm9kZXMsCisJCQkJCQkgeG1sTm9kZVB0ciBub2RlKTsKK1hNTFBVQkZVTiB4bWxOb2RlU2V0UHRyIFhNTENBTEwJCisJCXhtbFhQYXRoTGVhZGluZwkJCSh4bWxOb2RlU2V0UHRyIG5vZGVzMSwKKwkJCQkJCSB4bWxOb2RlU2V0UHRyIG5vZGVzMik7CisKK1hNTFBVQkZVTiB4bWxOb2RlU2V0UHRyIFhNTENBTEwJCisJCXhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkCSh4bWxOb2RlU2V0UHRyIG5vZGVzLAorCQkJCQkJIHhtbE5vZGVQdHIgbm9kZSk7CitYTUxQVUJGVU4geG1sTm9kZVNldFB0ciBYTUxDQUxMCQorCQl4bWxYUGF0aFRyYWlsaW5nU29ydGVkCQkoeG1sTm9kZVNldFB0ciBub2RlczEsCisJCQkJCQkgeG1sTm9kZVNldFB0ciBub2RlczIpOworWE1MUFVCRlVOIHhtbE5vZGVTZXRQdHIgWE1MQ0FMTAkKKwkJeG1sWFBhdGhOb2RlVHJhaWxpbmcJCSh4bWxOb2RlU2V0UHRyIG5vZGVzLAorCQkJCQkJIHhtbE5vZGVQdHIgbm9kZSk7CitYTUxQVUJGVU4geG1sTm9kZVNldFB0ciBYTUxDQUxMCQorCQl4bWxYUGF0aFRyYWlsaW5nCQkoeG1sTm9kZVNldFB0ciBub2RlczEsCisJCQkJCQkgeG1sTm9kZVNldFB0ciBub2RlczIpOworCisKKy8qKgorICogRXh0ZW5kaW5nIGEgY29udGV4dC4KKyAqLworCitYTUxQVUJGVU4gaW50IFhNTENBTEwJCSAgIAorCQl4bWxYUGF0aFJlZ2lzdGVyTnMJCSh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwKKwkJCQkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbnNfdXJpKTsKK1hNTFBVQkZVTiBjb25zdCB4bWxDaGFyICogWE1MQ0FMTAkgICAKKwkJeG1sWFBhdGhOc0xvb2t1cAkJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKnByZWZpeCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgICAKKwkJeG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwCSh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCk7CisKK1hNTFBVQkZVTiBpbnQgWE1MQ0FMTAkJICAgCisJCXhtbFhQYXRoUmVnaXN0ZXJGdW5jCQkoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCQkJCSB4bWxYUGF0aEZ1bmN0aW9uIGYpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkgICAKKwkJeG1sWFBhdGhSZWdpc3RlckZ1bmNOUwkJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbnNfdXJpLAorCQkJCQkJIHhtbFhQYXRoRnVuY3Rpb24gZik7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCSAgIAorCQl4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgeG1sWFBhdGhPYmplY3RQdHIgdmFsdWUpOworWE1MUFVCRlVOIGludCBYTUxDQUxMCQkgICAKKwkJeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbnNfdXJpLAorCQkJCQkJIHhtbFhQYXRoT2JqZWN0UHRyIHZhbHVlKTsKK1hNTFBVQkZVTiB4bWxYUGF0aEZ1bmN0aW9uIFhNTENBTEwgICAKKwkJeG1sWFBhdGhGdW5jdGlvbkxvb2t1cAkJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIHhtbFhQYXRoRnVuY3Rpb24gWE1MQ0FMTCAgIAorCQl4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbnNfdXJpKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgIAorCQl4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMICAKKwkJeG1sWFBhdGhWYXJpYWJsZUxvb2t1cAkJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUpOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwgIAorCQl4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJCQkgY29uc3QgeG1sQ2hhciAqbnNfdXJpKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgIAorCQl4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KTsKKworLyoqCisgKiBVdGlsaXRpZXMgdG8gZXh0ZW5kIFhQYXRoLgorICovCitYTUxQVUJGVU4geG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIFhNTENBTEwKKwkJICB4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQJKGNvbnN0IHhtbENoYXIgKnN0ciwKKwkJCSAgCQkJIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgCisJCXhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQJKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KTsKKworLyogVE9ETzogcmVtYXAgdG8geG1sWFBhdGhWYWx1ZVBvcCBhbmQgUHVzaC4gKi8KK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMIAorCQl2YWx1ZVBvcAkJCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwJCSAgCisJCXZhbHVlUHVzaAkJCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkJCQkJIAkgeG1sWFBhdGhPYmplY3RQdHIgdmFsdWUpOworCitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTCAKKwkJeG1sWFBhdGhOZXdTdHJpbmcJCShjb25zdCB4bWxDaGFyICp2YWwpOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwgCisJCXhtbFhQYXRoTmV3Q1N0cmluZwkJKGNvbnN0IGNoYXIgKnZhbCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTCAKKwkJeG1sWFBhdGhXcmFwU3RyaW5nCQkoeG1sQ2hhciAqdmFsKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMIAorCQl4bWxYUGF0aFdyYXBDU3RyaW5nCQkoY2hhciAqIHZhbCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTCAKKwkJeG1sWFBhdGhOZXdGbG9hdAkJKGRvdWJsZSB2YWwpOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwgCisJCXhtbFhQYXRoTmV3Qm9vbGVhbgkJKGludCB2YWwpOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwgCisJCXhtbFhQYXRoTmV3Tm9kZVNldAkJKHhtbE5vZGVQdHIgdmFsKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMIAorCQl4bWxYUGF0aE5ld1ZhbHVlVHJlZQkJKHhtbE5vZGVQdHIgdmFsKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgCisJCXhtbFhQYXRoTm9kZVNldEFkZAkJKHhtbE5vZGVTZXRQdHIgY3VyLAorCQkJCQkJIHhtbE5vZGVQdHIgdmFsKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgICAgICAgICAgICAgIAorCQl4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUJKHhtbE5vZGVTZXRQdHIgY3VyLAorCQkJCQkJIHhtbE5vZGVQdHIgdmFsKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgCisJCXhtbFhQYXRoTm9kZVNldEFkZE5zCQkoeG1sTm9kZVNldFB0ciBjdXIsIAorCQkJCQkJIHhtbE5vZGVQdHIgbm9kZSwgCisJCQkJCQkgeG1sTnNQdHIgbnMpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCAgICAgICAgICAgICAgCisJCXhtbFhQYXRoTm9kZVNldFNvcnQJCSh4bWxOb2RlU2V0UHRyIHNldCk7CisKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCSAgCisJCXhtbFhQYXRoUm9vdAkJCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkgIAorCQl4bWxYUGF0aEV2YWxFeHByCQkoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCSAgCisJCXhtbFhQYXRoUGFyc2VOYW1lCQkoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHhtbENoYXIgKiBYTUxDQUxMCSAgCisJCXhtbFhQYXRoUGFyc2VOQ05hbWUJCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CisKKy8qCisgKiBFeGlzdGluZyBmdW5jdGlvbnMuCisgKi8KK1hNTFBVQkZVTiBkb3VibGUgWE1MQ0FMTCAKKwkJeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyCShjb25zdCB4bWxDaGFyICpzdHIpOworWE1MUFVCRlVOIGludCBYTUxDQUxMIAorCQl4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0ICh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgCisJCQkJCQkgeG1sWFBhdGhPYmplY3RQdHIgcmVzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgCisJCXhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMJKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB4bWxOb2RlU2V0UHRyIFhNTENBTEwgCisJCXhtbFhQYXRoTm9kZVNldE1lcmdlCQkoeG1sTm9kZVNldFB0ciB2YWwxLCAKKwkJCQkJCSB4bWxOb2RlU2V0UHRyIHZhbDIpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCAKKwkJeG1sWFBhdGhOb2RlU2V0RGVsCQkoeG1sTm9kZVNldFB0ciBjdXIsIAorCQkJCQkJIHhtbE5vZGVQdHIgdmFsKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgCisJCXhtbFhQYXRoTm9kZVNldFJlbW92ZQkJKHhtbE5vZGVTZXRQdHIgY3VyLCAKKwkJCQkJCSBpbnQgdmFsKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMIAorCQl4bWxYUGF0aE5ld05vZGVTZXRMaXN0CQkoeG1sTm9kZVNldFB0ciB2YWwpOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwgCisJCXhtbFhQYXRoV3JhcE5vZGVTZXQJCSh4bWxOb2RlU2V0UHRyIHZhbCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTCAKKwkJeG1sWFBhdGhXcmFwRXh0ZXJuYWwJCSh2b2lkICp2YWwpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sWFBhdGhFcXVhbFZhbHVlcyh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sWFBhdGhOb3RFcXVhbFZhbHVlcyh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sWFBhdGhDb21wYXJlVmFsdWVzKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgaW5mLCBpbnQgc3RyaWN0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhWYWx1ZUZsaXBTaWduKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhBZGRWYWx1ZXMoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aFN1YlZhbHVlcyh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMIHhtbFhQYXRoTXVsdFZhbHVlcyh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMIHhtbFhQYXRoRGl2VmFsdWVzKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhNb2RWYWx1ZXMoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpOworCitYTUxQVUJGVU4gaW50IFhNTENBTEwgeG1sWFBhdGhJc05vZGVUeXBlKGNvbnN0IHhtbENoYXIgKm5hbWUpOworCisvKgorICogU29tZSBvZiB0aGUgYXhpcyBuYXZpZ2F0aW9uIHJvdXRpbmVzLgorICovCitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMIHhtbFhQYXRoTmV4dFNlbGYoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQl4bWxOb2RlUHRyIGN1cik7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMIHhtbFhQYXRoTmV4dENoaWxkKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTCB4bWxYUGF0aE5leHREZXNjZW5kYW50KHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTCB4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTCB4bWxYUGF0aE5leHRQYXJlbnQoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQl4bWxOb2RlUHRyIGN1cik7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMIHhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTCB4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTCB4bWxYUGF0aE5leHRGb2xsb3dpbmcoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQl4bWxOb2RlUHRyIGN1cik7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMIHhtbFhQYXRoTmV4dE5hbWVzcGFjZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkJCXhtbE5vZGVQdHIgY3VyKTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwgeG1sWFBhdGhOZXh0QXR0cmlidXRlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTCB4bWxYUGF0aE5leHRQcmVjZWRpbmcoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQl4bWxOb2RlUHRyIGN1cik7CitYTUxQVUJGVU4geG1sTm9kZVB0ciBYTUxDQUxMIHhtbFhQYXRoTmV4dEFuY2VzdG9yKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworWE1MUFVCRlVOIHhtbE5vZGVQdHIgWE1MQ0FMTCB4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJeG1sTm9kZVB0ciBjdXIpOworLyoKKyAqIFRoZSBvZmZpY2lhbCBjb3JlIG9mIFhQYXRoIGZ1bmN0aW9ucy4KKyAqLworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aExhc3RGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aENvdW50RnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncyk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMIHhtbFhQYXRoSWRGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhTdHJpbmdGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhDb25jYXRGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhDb250YWluc0Z1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aE5vdEZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aFRydWVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhGYWxzZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aExhbmdGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhOdW1iZXJGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhTdW1GdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhGbG9vckZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aENlaWxpbmdGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhSb3VuZEZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTCB4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKKworLyoqCisgKiBSZWFsbHkgaW50ZXJuYWwgZnVuY3Rpb25zCisgKi8KK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwgeG1sWFBhdGhOb2RlU2V0RnJlZU5zKHhtbE5zUHRyIG5zKTsKKyAKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworI2VuZGlmIC8qICEgX19YTUxfWFBBVEhfSU5URVJOQUxTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94cG9pbnRlci5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL2xpYnhtbC94cG9pbnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkZTFkZmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvbGlieG1sL3hwb2ludGVyLmgKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBTdW1tYXJ5OiBBUEkgdG8gaGFuZGxlIFhNTCBQb2ludGVycworICogRGVzY3JpcHRpb246IEFQSSB0byBoYW5kbGUgWE1MIFBvaW50ZXJzCisgKiBCYXNlIGltcGxlbWVudGF0aW9uIHdhcyBtYWRlIGFjY29yZGluZ2x5IHRvCisgKiBXM0MgQ2FuZGlkYXRlIFJlY29tbWVuZGF0aW9uIDcgSnVuZSAyMDAwCisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAwL0NSLXhwdHItMjAwMDA2MDcKKyAqCisgKiBBZGRlZCBzdXBwb3J0IGZvciB0aGUgZWxlbWVudCgpIHNjaGVtZSBkZXNjcmliZWQgaW46CisgKiBXM0MgUHJvcG9zZWQgUmVjb21tZW5kYXRpb24gMTMgTm92ZW1iZXIgMjAwMgorICogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMi9QUi14cHRyLWVsZW1lbnQtMjAwMjExMTMvICAKKyAqCisgKiBDb3B5OiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogQXV0aG9yOiBEYW5pZWwgVmVpbGxhcmQKKyAqLworCisjaWZuZGVmIF9fWE1MX1hQVFJfSF9fCisjZGVmaW5lIF9fWE1MX1hQVFJfSF9fCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorCisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGguaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICogQSBMb2NhdGlvbiBTZXQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbExvY2F0aW9uU2V0IHhtbExvY2F0aW9uU2V0OwordHlwZWRlZiB4bWxMb2NhdGlvblNldCAqeG1sTG9jYXRpb25TZXRQdHI7CitzdHJ1Y3QgX3htbExvY2F0aW9uU2V0IHsKKyAgICBpbnQgbG9jTnI7CQkgICAgICAvKiBudW1iZXIgb2YgbG9jYXRpb25zIGluIHRoZSBzZXQgKi8KKyAgICBpbnQgbG9jTWF4OwkJICAgICAgLyogc2l6ZSBvZiB0aGUgYXJyYXkgYXMgYWxsb2NhdGVkICovCisgICAgeG1sWFBhdGhPYmplY3RQdHIgKmxvY1RhYjsvKiBhcnJheSBvZiBsb2NhdGlvbnMgKi8KK307CisKKy8qCisgKiBIYW5kbGluZyBvZiBsb2NhdGlvbiBzZXRzLgorICovCisKK1hNTFBVQkZVTiB4bWxMb2NhdGlvblNldFB0ciBYTUxDQUxMCQkJCisJCSAgICB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUJKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCSAgICB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0CSh4bWxMb2NhdGlvblNldFB0ciBvYmopOworWE1MUFVCRlVOIHhtbExvY2F0aW9uU2V0UHRyIFhNTENBTEwJCisJCSAgICB4bWxYUHRyTG9jYXRpb25TZXRNZXJnZQkoeG1sTG9jYXRpb25TZXRQdHIgdmFsMSwKKwkJCQkJCSB4bWxMb2NhdGlvblNldFB0ciB2YWwyKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMCQorCQkgICAgeG1sWFB0ck5ld1JhbmdlCQkoeG1sTm9kZVB0ciBzdGFydCwKKwkJCQkJCSBpbnQgc3RhcnRpbmRleCwKKwkJCQkJCSB4bWxOb2RlUHRyIGVuZCwKKwkJCQkJCSBpbnQgZW5kaW5kZXgpOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwJCisJCSAgICB4bWxYUHRyTmV3UmFuZ2VQb2ludHMJKHhtbFhQYXRoT2JqZWN0UHRyIHN0YXJ0LAorCQkJCQkJIHhtbFhQYXRoT2JqZWN0UHRyIGVuZCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbFhQdHJOZXdSYW5nZU5vZGVQb2ludAkoeG1sTm9kZVB0ciBzdGFydCwKKwkJCQkJCSB4bWxYUGF0aE9iamVjdFB0ciBlbmQpOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwJCisJCSAgICB4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUJKHhtbFhQYXRoT2JqZWN0UHRyIHN0YXJ0LAorCQkJCQkJIHhtbE5vZGVQdHIgZW5kKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMCQkJCisJCSAgICB4bWxYUHRyTmV3UmFuZ2VOb2RlcwkoeG1sTm9kZVB0ciBzdGFydCwKKwkJCQkJCSB4bWxOb2RlUHRyIGVuZCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzCSh4bWxOb2RlUHRyIHN0YXJ0LAorCQkJCQkJIHhtbE5vZGVQdHIgZW5kKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMCQorCQkgICAgeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCh4bWxOb2RlU2V0UHRyIHNldCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QJKHhtbE5vZGVQdHIgc3RhcnQsCisJCQkJCQkgeG1sWFBhdGhPYmplY3RQdHIgZW5kKTsKK1hNTFBVQkZVTiB4bWxYUGF0aE9iamVjdFB0ciBYTUxDQUxMCQorCQkgICAgeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlCSh4bWxOb2RlUHRyIHN0YXJ0KTsKK1hNTFBVQkZVTiB2b2lkIFhNTENBTEwJCQkKKwkJICAgIHhtbFhQdHJMb2NhdGlvblNldEFkZAkoeG1sTG9jYXRpb25TZXRQdHIgY3VyLAorCQkJCQkJIHhtbFhQYXRoT2JqZWN0UHRyIHZhbCk7CitYTUxQVUJGVU4geG1sWFBhdGhPYmplY3RQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbFhQdHJXcmFwTG9jYXRpb25TZXQJKHhtbExvY2F0aW9uU2V0UHRyIHZhbCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCisJCSAgICB4bWxYUHRyTG9jYXRpb25TZXREZWwJKHhtbExvY2F0aW9uU2V0UHRyIGN1ciwKKwkJCQkJCSB4bWxYUGF0aE9iamVjdFB0ciB2YWwpOworWE1MUFVCRlVOIHZvaWQgWE1MQ0FMTAkJCQorCQkgICAgeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlCSh4bWxMb2NhdGlvblNldFB0ciBjdXIsCisJCQkJCQkgaW50IHZhbCk7CisKKy8qCisgKiBGdW5jdGlvbnMuCisgKi8KK1hNTFBVQkZVTiB4bWxYUGF0aENvbnRleHRQdHIgWE1MQ0FMTAkKKwkJICAgIHhtbFhQdHJOZXdDb250ZXh0CQkoeG1sRG9jUHRyIGRvYywKKwkJCQkJCSB4bWxOb2RlUHRyIGhlcmUsCisJCQkJCQkgeG1sTm9kZVB0ciBvcmlnaW4pOworWE1MUFVCRlVOIHhtbFhQYXRoT2JqZWN0UHRyIFhNTENBTEwJCisJCSAgICB4bWxYUHRyRXZhbAkJCShjb25zdCB4bWxDaGFyICpzdHIsCisJCQkJCQkgeG1sWFBhdGhDb250ZXh0UHRyIGN0eCk7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkJCQkgICAgCisJCSAgICB4bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uCSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKyAgICAgICAJCQkJCQkgaW50IG5hcmdzKTsKK1hNTFBVQkZVTiB4bWxOb2RlUHRyIFhNTENBTEwJCQorCQkgICAgeG1sWFB0ckJ1aWxkTm9kZUxpc3QJKHhtbFhQYXRoT2JqZWN0UHRyIG9iaik7CitYTUxQVUJGVU4gdm9pZCBYTUxDQUxMCQkKKwkJICAgIHhtbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUJKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KTsKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMSUJYTUxfWFBUUl9FTkFCTEVEICovCisjZW5kaWYgLyogX19YTUxfWFBUUl9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5jbHVkZS93aW4zMmNvbmZpZy5oIGIvbGlieG1sMi0yLjcuNy9pbmNsdWRlL3dpbjMyY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZjOWJlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS93aW4zMmNvbmZpZy5oCkBAIC0wLDAgKzEsMTI0IEBACisjaWZuZGVmIF9fTElCWE1MX1dJTjMyX0NPTkZJR19fCisjZGVmaW5lIF9fTElCWE1MX1dJTjMyX0NPTkZJR19fCisKKyNkZWZpbmUgSEFWRV9DVFlQRV9ICisjZGVmaW5lIEhBVkVfU1REQVJHX0gKKyNkZWZpbmUgSEFWRV9NQUxMT0NfSAorI2RlZmluZSBIQVZFX0VSUk5PX0gKKworI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKyN1bmRlZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSAid2luY2Vjb21wYXQuaCIKKyNlbHNlCisjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSAorI2RlZmluZSBIQVZFX19TVEFUCisjZGVmaW5lIEhBVkVfU1RBVAorI2RlZmluZSBIQVZFX1NURExJQl9ICisjZGVmaW5lIEhBVkVfVElNRV9ICisjZGVmaW5lIEhBVkVfRkNOVExfSAorI2luY2x1ZGUgPGlvLmg+CisjaW5jbHVkZSA8ZGlyZWN0Lmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpZm5kZWYgSUNPTlZfQ09OU1QKKyNkZWZpbmUgSUNPTlZfQ09OU1QgY29uc3QKKyNlbmRpZgorCisjaWZkZWYgTkVFRF9TT0NLRVRTCisjaW5jbHVkZSA8d3NvY2tjb21wYXQuaD4KKyNlbmRpZgorCisvKgorICogV2luZG93cyBwbGF0Zm9ybXMgbWF5IGRlZmluZSBleGNlcHQgCisgKi8KKyN1bmRlZiBleGNlcHQKKworI2RlZmluZSBIQVZFX0lTSU5GCisjZGVmaW5lIEhBVkVfSVNOQU4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18pCisvKiBNUyBDLXJ1bnRpbWUgaGFzIGZ1bmN0aW9ucyB3aGljaCBjYW4gYmUgdXNlZCBpbiBvcmRlciB0byBkZXRlcm1pbmUgaWYKKyAgIGEgZ2l2ZW4gZmxvYXRpbmctcG9pbnQgdmFyaWFibGUgY29udGFpbnMgTmFOLCAoKy0pSU5GLiBUaGVzZSBhcmUgCisgICBwcmVmZXJyZWQsIGJlY2F1c2UgZmxvYXRpbmctcG9pbnQgdGVjaG5vbG9neSBpcyBjb25zaWRlcmVkIHByb3ByaWF0YXJ5CisgICBieSBNUyBhbmQgd2UgY2FuIGFzc3VtZSB0aGF0IHRoZWlyIGZ1bmN0aW9ucyBrbm93IG1vcmUgYWJvdXQgdGhlaXIgCisgICBvZGRpdGllcyB0aGFuIHdlIGRvLiAqLworI2luY2x1ZGUgPGZsb2F0Lmg+CisvKiBCam9ybiBSZWVzZSBmaWd1cmVkIGEgcXVpdGUgbmljZSBjb25zdHJ1Y3QgZm9yIGlzaW5mKCkgdXNpbmcgdGhlIF9mcGNsYXNzCisgICBmdW5jdGlvbi4gKi8KKyNpZm5kZWYgaXNpbmYKKyNkZWZpbmUgaXNpbmYoZCkgKChfZnBjbGFzcyhkKSA9PSBfRlBDTEFTU19QSU5GKSA/IDEgXAorCTogKChfZnBjbGFzcyhkKSA9PSBfRlBDTEFTU19OSU5GKSA/IC0xIDogMCkpCisjZW5kaWYKKy8qIF9pc25hbih4KSByZXR1cm5zIG5vbnplcm8gaWYgKHggPT0gTmFOKSBhbmQgemVybyBvdGhlcndpc2UuICovCisjaWZuZGVmIGlzbmFuCisjZGVmaW5lIGlzbmFuKGQpIChfaXNuYW4oZCkpCisjZW5kaWYKKyNlbHNlIC8qIF9NU0NfVkVSICovCisjaWZuZGVmIGlzaW5mCitzdGF0aWMgaW50IGlzaW5mIChkb3VibGUgZCkgeworICAgIGludCBleHBvbiA9IDA7CisgICAgZG91YmxlIHZhbCA9IGZyZXhwIChkLCAmZXhwb24pOworICAgIGlmIChleHBvbiA9PSAxMDI1KSB7CisgICAgICAgIGlmICh2YWwgPT0gMC41KSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmICh2YWwgPT0gLTAuNSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisjZW5kaWYKKyNpZm5kZWYgaXNuYW4KK3N0YXRpYyBpbnQgaXNuYW4gKGRvdWJsZSBkKSB7CisgICAgaW50IGV4cG9uID0gMDsKKyAgICBkb3VibGUgdmFsID0gZnJleHAgKGQsICZleHBvbik7CisgICAgaWYgKGV4cG9uID09IDEwMjUpIHsKKyAgICAgICAgaWYgKHZhbCA9PSAwLjUpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYgKHZhbCA9PSAtMC41KSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorI2VuZGlmCisjZW5kaWYgLyogX01TQ19WRVIgKi8KKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIG1rZGlyKHAsbSkgX21rZGlyKHApCisjZGVmaW5lIHNucHJpbnRmIF9zbnByaW50ZgorI2lmIF9NU0NfVkVSIDwgMTUwMAorI2RlZmluZSB2c25wcmludGYoYixjLGYsYSkgX3ZzbnByaW50ZihiLGMsZixhKQorI2VuZGlmCisjZWxpZiBkZWZpbmVkKF9fTUlOR1czMl9fKQorI2RlZmluZSBta2RpcihwLG0pIF9ta2RpcihwKQorI2VuZGlmCisKKy8qIFRocmVhZGluZyBBUEkgdG8gdXNlIHNob3VsZCBiZSBzcGVjaWZpZWQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zLgorICAgVGhpcyBpcyBob3dldmVyIGJlc3Qgc3BlY2lmaWVkIG9uIHRoZSBjb21waWxlcidzIGNvbW1hbmQtbGluZS4gKi8KKyNpZiBkZWZpbmVkKExJQlhNTF9USFJFQURfRU5BQkxFRCkKKyNpZiAhZGVmaW5lZChIQVZFX1BUSFJFQURfSCkgJiYgIWRlZmluZWQoSEFWRV9XSU4zMl9USFJFQURTKSAmJiAhZGVmaW5lZChfV0lOMzJfV0NFKQorI2RlZmluZSBIQVZFX1dJTjMyX1RIUkVBRFMKKyNlbmRpZgorI2VuZGlmCisKKy8qIFNvbWUgdGhpcmQtcGFydHkgbGlicmFyaWVzIGZhciBmcm9tIG91ciBjb250cm9sIGFzc3VtZSB0aGUgZm9sbG93aW5nCisgICBpcyBkZWZpbmVkLCB3aGljaCBpdCBpcyBub3QgaWYgd2UgZG9uJ3QgaW5jbHVkZSB3aW5kb3dzLmguICovCisjaWYgIWRlZmluZWQoRkFMU0UpCisjZGVmaW5lIEZBTFNFIDAKKyNlbmRpZgorI2lmICFkZWZpbmVkKFRSVUUpCisjZGVmaW5lIFRSVUUgKCEoRkFMU0UpKQorI2VuZGlmCisKKyNlbmRpZiAvKiBfX0xJQlhNTF9XSU4zMl9DT05GSUdfXyAqLworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2luY2x1ZGUvd3NvY2tjb21wYXQuaCBiL2xpYnhtbDItMi43LjcvaW5jbHVkZS93c29ja2NvbXBhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0YmRhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2luY2x1ZGUvd3NvY2tjb21wYXQuaApAQCAtMCwwICsxLDgzIEBACisvKiBpbmNsdWRlL3dzb2NrY29tcGF0LmgKKyAqIFdpbmRvd3MgLT4gQmVya2VsZXkgU29ja2V0cyBjb21wYXRpYmlsaXR5IHRoaW5ncy4KKyAqLworCisjaWYgIWRlZmluZWQgX19YTUxfV1NPQ0tDT01QQVRfSF9fCisjZGVmaW5lIF9fWE1MX1dTT0NLQ09NUEFUX0hfXworCisjaWZkZWYgX1dJTjMyX1dDRQorI2luY2x1ZGUgPHdpbnNvY2suaD4KKyNlbHNlCisjdW5kZWYgSEFWRV9FUlJOT19ICisjaW5jbHVkZSA8d2luc29jazIuaD4KKworLyogdGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQgYSBwcm9ibGVtIGZvciAnaW5saW5lJyBrZXl3b3JkIGluIHNhaWQKKyAgIGhlYWRlciB3aGVuIGNvbXBpbGVkIHdpdGggQm9ybGFuZCBDKysgNiAqLworI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAhZGVmaW5lZChfX2NwbHVzcGx1cykKKyNkZWZpbmUgaW5saW5lIF9faW5saW5lCisjZGVmaW5lIF9pbmxpbmUgX19pbmxpbmUKKyNlbmRpZgorCisjaW5jbHVkZSA8d3MydGNwaXAuaD4KKworLyogQ2hlY2sgaWYgd3MydGNwaXAuaCBpcyBhIHJlY2VudCB2ZXJzaW9uIHdoaWNoIHByb3ZpZGVzIGdldGFkZHJpbmZvKCkgKi8KKyNpZiBkZWZpbmVkKEdldEFkZHJJbmZvKQorI2luY2x1ZGUgPHdzcGlhcGkuaD4KKyNkZWZpbmUgSEFWRV9HRVRBRERSSU5GTworI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIF9fTUlOR1czMl9fCisvKiBJbmNsdWRlIDxlcnJuby5oPiBoZXJlIHRvIGVuc3VyZSB0aGF0IGl0IGRvZXNuJ3QgZ2V0IGluY2x1ZGVkIGxhdGVyCisgKiAoZS5nLiBieSBpY29udi5oKSBhbmQgb3ZlcndyaXRlcyB0aGUgZGVmaW5pdGlvbiBvZiBFV09VTERCTE9DSy4gKi8KKyNpbmNsdWRlIDxlcnJuby5oPgorI3VuZGVmIEVXT1VMREJMT0NLCisjZW5kaWYKKworI2lmICFkZWZpbmVkIFNPQ0tMRU5fVAorI2RlZmluZSBTT0NLTEVOX1QgaW50CisjZW5kaWYKKworI2RlZmluZSBFV09VTERCTE9DSyAgICAgICAgICAgICBXU0FFV09VTERCTE9DSworI2RlZmluZSBFSU5QUk9HUkVTUyAgICAgICAgICAgICBXU0FFSU5QUk9HUkVTUworI2RlZmluZSBFQUxSRUFEWSAgICAgICAgICAgICAgICBXU0FFQUxSRUFEWQorI2RlZmluZSBFTk9UU09DSyAgICAgICAgICAgICAgICBXU0FFTk9UU09DSworI2RlZmluZSBFREVTVEFERFJSRVEgICAgICAgICAgICBXU0FFREVTVEFERFJSRVEKKyNkZWZpbmUgRU1TR1NJWkUgICAgICAgICAgICAgICAgV1NBRU1TR1NJWkUKKyNkZWZpbmUgRVBST1RPVFlQRSAgICAgICAgICAgICAgV1NBRVBST1RPVFlQRQorI2RlZmluZSBFTk9QUk9UT09QVCAgICAgICAgICAgICBXU0FFTk9QUk9UT09QVAorI2RlZmluZSBFUFJPVE9OT1NVUFBPUlQgICAgICAgICBXU0FFUFJPVE9OT1NVUFBPUlQKKyNkZWZpbmUgRVNPQ0tUTk9TVVBQT1JUICAgICAgICAgV1NBRVNPQ0tUTk9TVVBQT1JUCisjZGVmaW5lIEVPUE5PVFNVUFAgICAgICAgICAgICAgIFdTQUVPUE5PVFNVUFAKKyNkZWZpbmUgRVBGTk9TVVBQT1JUICAgICAgICAgICAgV1NBRVBGTk9TVVBQT1JUCisjZGVmaW5lIEVBRk5PU1VQUE9SVCAgICAgICAgICAgIFdTQUVBRk5PU1VQUE9SVAorI2RlZmluZSBFQUREUklOVVNFICAgICAgICAgICAgICBXU0FFQUREUklOVVNFCisjZGVmaW5lIEVBRERSTk9UQVZBSUwgICAgICAgICAgIFdTQUVBRERSTk9UQVZBSUwKKyNkZWZpbmUgRU5FVERPV04gICAgICAgICAgICAgICAgV1NBRU5FVERPV04KKyNkZWZpbmUgRU5FVFVOUkVBQ0ggICAgICAgICAgICAgV1NBRU5FVFVOUkVBQ0gKKyNkZWZpbmUgRU5FVFJFU0VUICAgICAgICAgICAgICAgV1NBRU5FVFJFU0VUCisjZGVmaW5lIEVDT05OQUJPUlRFRCAgICAgICAgICAgIFdTQUVDT05OQUJPUlRFRAorI2RlZmluZSBFQ09OTlJFU0VUICAgICAgICAgICAgICBXU0FFQ09OTlJFU0VUCisjZGVmaW5lIEVOT0JVRlMgICAgICAgICAgICAgICAgIFdTQUVOT0JVRlMKKyNkZWZpbmUgRUlTQ09OTiAgICAgICAgICAgICAgICAgV1NBRUlTQ09OTgorI2RlZmluZSBFTk9UQ09OTiAgICAgICAgICAgICAgICBXU0FFTk9UQ09OTgorI2RlZmluZSBFU0hVVERPV04gICAgICAgICAgICAgICBXU0FFU0hVVERPV04KKyNkZWZpbmUgRVRPT01BTllSRUZTICAgICAgICAgICAgV1NBRVRPT01BTllSRUZTCisjZGVmaW5lIEVUSU1FRE9VVCAgICAgICAgICAgICAgIFdTQUVUSU1FRE9VVAorI2RlZmluZSBFQ09OTlJFRlVTRUQgICAgICAgICAgICBXU0FFQ09OTlJFRlVTRUQKKyNkZWZpbmUgRUxPT1AgICAgICAgICAgICAgICAgICAgV1NBRUxPT1AKKyNkZWZpbmUgRUhPU1RET1dOICAgICAgICAgICAgICAgV1NBRUhPU1RET1dOCisjZGVmaW5lIEVIT1NUVU5SRUFDSCAgICAgICAgICAgIFdTQUVIT1NUVU5SRUFDSAorI2RlZmluZSBFUFJPQ0xJTSAgICAgICAgICAgICAgICBXU0FFUFJPQ0xJTQorI2RlZmluZSBFVVNFUlMgICAgICAgICAgICAgICAgICBXU0FFVVNFUlMKKyNkZWZpbmUgRURRVU9UICAgICAgICAgICAgICAgICAgV1NBRURRVU9UCisjZGVmaW5lIEVTVEFMRSAgICAgICAgICAgICAgICAgIFdTQUVTVEFMRQorI2RlZmluZSBFUkVNT1RFICAgICAgICAgICAgICAgICBXU0FFUkVNT1RFCisvKiBUaGVzZSBjYXVzZSBjb25mbGljdHMgd2l0aCB0aGUgY29kZXMgZnJvbSBlcnJuby5oLiBTaW5jZSB0aGV5IGFyZSAKKyAgIG5vdCB1c2VkIGluIHRoZSByZWxldmFudCBjb2RlIChuYW5vZnRwLCBuYW5vaHR0cCksIHdlIGNhbiBsZWF2ZSAKKyAgIHRoZW0gZGlzYWJsZWQuCisjZGVmaW5lIEVOQU1FVE9PTE9ORyAgICAgICAgICAgIFdTQUVOQU1FVE9PTE9ORworI2RlZmluZSBFTk9URU1QVFkgICAgICAgICAgICAgICBXU0FFTk9URU1QVFkKKyovCisKKyNlbmRpZiAvKiBfX1hNTF9XU09DS0NPTVBBVF9IX18gKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvaW5zdGFsbC1zaCBiL2xpYnhtbDItMi43LjcvaW5zdGFsbC1zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NzgxYjk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9pbnN0YWxsLXNoCkBAIC0wLDAgKzEsNTIwIEBACisjIS9iaW4vc2gKKyMgaW5zdGFsbCAtIGluc3RhbGwgYSBwcm9ncmFtLCBzY3JpcHQsIG9yIGRhdGFmaWxlCisKK3NjcmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMKKworIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCisjIGxhdGVyIHJlbGVhc2VkIGluIFgxMVI2ICh4Yy9jb25maWcvdXRpbC9pbnN0YWxsLnNoKSB3aXRoIHRoZQorIyBmb2xsb3dpbmcgY29weXJpZ2h0IGFuZCBsaWNlbnNlLgorIworIyBDb3B5cmlnaHQgKEMpIDE5OTQgWCBDb25zb3J0aXVtCisjCisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisjIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorIyBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworIyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIworIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorIyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyMgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyMgWCBDT05TT1JUSVVNIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUMtCisjIFRJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisjCisjIEV4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIHRoZSBYIENvbnNvcnRpdW0gc2hhbGwgbm90CisjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQorIyBpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gZnJvbSB0aGUgWCBDb25zb3ItCisjIHRpdW0uCisjCisjCisjIEZTRiBjaGFuZ2VzIHRvIHRoaXMgZmlsZSBhcmUgaW4gdGhlIHB1YmxpYyBkb21haW4uCisjCisjIENhbGxpbmcgdGhpcyBzY3JpcHQgaW5zdGFsbC1zaCBpcyBwcmVmZXJyZWQgb3ZlciBpbnN0YWxsLnNoLCB0byBwcmV2ZW50CisjIGBtYWtlJyBpbXBsaWNpdCBydWxlcyBmcm9tIGNyZWF0aW5nIGEgZmlsZSBjYWxsZWQgaW5zdGFsbCBmcm9tIGl0CisjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCisjCisjIFRoaXMgc2NyaXB0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgQlNEIGluc3RhbGwgc2NyaXB0LCBidXQgd2FzIHdyaXR0ZW4KKyMgZnJvbSBzY3JhdGNoLgorCitubD0nCisnCitJRlM9IiAiIgkkbmwiCisKKyMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAorCisjIERvbid0IHVzZSA6LSBzaW5jZSA0LjNCU0QgYW5kIGVhcmxpZXIgc2hlbGxzIGRvbid0IGxpa2UgaXQuCitkb2l0PSR7RE9JVFBST0ctfQoraWYgdGVzdCAteiAiJGRvaXQiOyB0aGVuCisgIGRvaXRfZXhlYz1leGVjCitlbHNlCisgIGRvaXRfZXhlYz0kZG9pdAorZmkKKworIyBQdXQgaW4gYWJzb2x1dGUgZmlsZSBuYW1lcyBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGVtIGluIHlvdXIgcGF0aDsKKyMgb3IgdXNlIGVudmlyb25tZW50IHZhcnMuCisKK2NoZ3JwcHJvZz0ke0NIR1JQUFJPRy1jaGdycH0KK2NobW9kcHJvZz0ke0NITU9EUFJPRy1jaG1vZH0KK2Nob3ducHJvZz0ke0NIT1dOUFJPRy1jaG93bn0KK2NtcHByb2c9JHtDTVBQUk9HLWNtcH0KK2NwcHJvZz0ke0NQUFJPRy1jcH0KK21rZGlycHJvZz0ke01LRElSUFJPRy1ta2Rpcn0KK212cHJvZz0ke01WUFJPRy1tdn0KK3JtcHJvZz0ke1JNUFJPRy1ybX0KK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KKworcG9zaXhfZ2xvYj0nPycKK2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCisgIHRlc3QgIiRwb3NpeF9nbG9iIiAhPSAiPyIgfHwgeworICAgIGlmIChzZXQgLWYpIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICBwb3NpeF9nbG9iPQorICAgIGVsc2UKKyAgICAgIHBvc2l4X2dsb2I9OgorICAgIGZpCisgIH0KKycKKworcG9zaXhfbWtkaXI9CisKKyMgRGVzaXJlZCBtb2RlIG9mIGluc3RhbGxlZCBmaWxlLgorbW9kZT0wNzU1CisKK2NoZ3JwY21kPQorY2htb2RjbWQ9JGNobW9kcHJvZworY2hvd25jbWQ9CittdmNtZD0kbXZwcm9nCitybWNtZD0iJHJtcHJvZyAtZiIKK3N0cmlwY21kPQorCitzcmM9Citkc3Q9CitkaXJfYXJnPQorZHN0X2FyZz0KKworY29weV9vbl9jaGFuZ2U9ZmFsc2UKK25vX3RhcmdldF9kaXJlY3Rvcnk9CisKK3VzYWdlPSJcCitVc2FnZTogJDAgW09QVElPTl0uLi4gWy1UXSBTUkNGSUxFIERTVEZJTEUKKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiBTUkNGSUxFUy4uLiBESVJFQ1RPUlkKKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtdCBESVJFQ1RPUlkgU1JDRklMRVMuLi4KKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtZCBESVJFQ1RPUklFUy4uLgorCitJbiB0aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgorSW4gdGhlIDJuZCBhbmQgM3JkLCBjb3B5IGFsbCBTUkNGSUxFUyB0byBESVJFQ1RPUlkuCitJbiB0aGUgNHRoLCBjcmVhdGUgRElSRUNUT1JJRVMuCisKK09wdGlvbnM6CisgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQuCisgICAgIC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCisKKyAgLWMgICAgICAgICAgICAoaWdub3JlZCkKKyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQorICAtZCAgICAgICAgICAgIGNyZWF0ZSBkaXJlY3RvcmllcyBpbnN0ZWFkIG9mIGluc3RhbGxpbmcgZmlsZXMuCisgIC1nIEdST1VQICAgICAgJGNoZ3JwcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gR1JPVVAuCisgIC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KKyAgLW8gVVNFUiAgICAgICAkY2hvd25wcm9nIGluc3RhbGxlZCBmaWxlcyB0byBVU0VSLgorICAtcyAgICAgICAgICAgICRzdHJpcHByb2cgaW5zdGFsbGVkIGZpbGVzLgorICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RPUlkuCisgIC1UICAgICAgICAgICAgcmVwb3J0IGFuIGVycm9yIGlmIERTVEZJTEUgaXMgYSBkaXJlY3RvcnkuCisKK0Vudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKKyAgQ0hHUlBQUk9HIENITU9EUFJPRyBDSE9XTlBST0cgQ01QUFJPRyBDUFBST0cgTUtESVJQUk9HIE1WUFJPRworICBSTVBST0cgU1RSSVBQUk9HCisiCisKK3doaWxlIHRlc3QgJCMgLW5lIDA7IGRvCisgIGNhc2UgJDEgaW4KKyAgICAtYykgOzsKKworICAgIC1DKSBjb3B5X29uX2NoYW5nZT10cnVlOzsKKworICAgIC1kKSBkaXJfYXJnPXRydWU7OworCisgICAgLWcpIGNoZ3JwY21kPSIkY2hncnBwcm9nICQyIgorCXNoaWZ0OzsKKworICAgIC0taGVscCkgZWNobyAiJHVzYWdlIjsgZXhpdCAkPzs7CisKKyAgICAtbSkgbW9kZT0kMgorCWNhc2UgJG1vZGUgaW4KKwkgIConICcqIHwgKicJJyogfCAqJworJyoJICB8IConKicqIHwgKic/JyogfCAqJ1snKikKKwkgICAgZWNobyAiJDA6IGludmFsaWQgbW9kZTogJG1vZGUiID4mMgorCSAgICBleGl0IDE7OworCWVzYWMKKwlzaGlmdDs7CisKKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCisJc2hpZnQ7OworCisgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OworCisgICAgLXQpIGRzdF9hcmc9JDIKKwlzaGlmdDs7CisKKyAgICAtVCkgbm9fdGFyZ2V0X2RpcmVjdG9yeT10cnVlOzsKKworICAgIC0tdmVyc2lvbikgZWNobyAiJDAgJHNjcmlwdHZlcnNpb24iOyBleGl0ICQ/OzsKKworICAgIC0tKQlzaGlmdAorCWJyZWFrOzsKKworICAgIC0qKQllY2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKKwlleGl0IDE7OworCisgICAgKikgIGJyZWFrOzsKKyAgZXNhYworICBzaGlmdAorZG9uZQorCitpZiB0ZXN0ICQjIC1uZSAwICYmIHRlc3QgLXogIiRkaXJfYXJnJGRzdF9hcmciOyB0aGVuCisgICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgorICAjIFdoZW4gLXQgaXMgdXNlZCwgdGhlIGRlc3RpbmF0aW9uIGlzIGFscmVhZHkgc3BlY2lmaWVkLgorICAjIE90aGVyd2lzZSwgdGhlIGxhc3QgYXJndW1lbnQgaXMgdGhlIGRlc3RpbmF0aW9uLiAgUmVtb3ZlIGl0IGZyb20gJEAuCisgIGZvciBhcmcKKyAgZG8KKyAgICBpZiB0ZXN0IC1uICIkZHN0X2FyZyI7IHRoZW4KKyAgICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBsZWFzdCAkYXJnLgorICAgICAgc2V0IGZub3JkICIkQCIgIiRkc3RfYXJnIgorICAgICAgc2hpZnQgIyBmbm9yZAorICAgIGZpCisgICAgc2hpZnQgIyBhcmcKKyAgICBkc3RfYXJnPSRhcmcKKyAgZG9uZQorZmkKKworaWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorICBpZiB0ZXN0IC16ICIkZGlyX2FyZyI7IHRoZW4KKyAgICBlY2hvICIkMDogbm8gaW5wdXQgZmlsZSBzcGVjaWZpZWQuIiA+JjIKKyAgICBleGl0IDEKKyAgZmkKKyAgIyBJdCdzIE9LIHRvIGNhbGwgYGluc3RhbGwtc2ggLWQnIHdpdGhvdXQgYXJndW1lbnQuCisgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRpbmcgY29uZGl0aW9uYWwgZGlyZWN0b3JpZXMuCisgIGV4aXQgMAorZmkKKworaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCisgIHRyYXAgJyhleGl0ICQ/KTsgZXhpdCcgMSAyIDEzIDE1CisKKyAgIyBTZXQgdW1hc2sgc28gYXMgbm90IHRvIGNyZWF0ZSB0ZW1wcyB3aXRoIHRvby1nZW5lcm91cyBtb2Rlcy4KKyAgIyBIb3dldmVyLCAnc3RyaXAnIHJlcXVpcmVzIGJvdGggcmVhZCBhbmQgd3JpdGUgYWNjZXNzIHRvIHRlbXBzLgorICBjYXNlICRtb2RlIGluCisgICAgIyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCisgICAgKjY0NCkgY3BfdW1hc2s9MTMzOzsKKyAgICAqNzU1KSBjcF91bWFzaz0yMjs7CisKKyAgICAqWzAtN10pCisgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCisJdV9wbHVzX3J3PQorICAgICAgZWxzZQorCXVfcGx1c19ydz0nJSAyMDAnCisgICAgICBmaQorICAgICAgY3BfdW1hc2s9YGV4cHIgJygnIDc3NyAtICRtb2RlICUgMTAwMCAnKScgJHVfcGx1c19yd2A7OworICAgICopCisgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCisJdV9wbHVzX3J3PQorICAgICAgZWxzZQorCXVfcGx1c19ydz0sdStydworICAgICAgZmkKKyAgICAgIGNwX3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7CisgIGVzYWMKK2ZpCisKK2ZvciBzcmMKK2RvCisgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KKyAgY2FzZSAkc3JjIGluCisgICAgLSopIHNyYz0uLyRzcmM7OworICBlc2FjCisKKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisgICAgZHN0PSRzcmMKKyAgICBkc3RkaXI9JGRzdAorICAgIHRlc3QgLWQgIiRkc3RkaXIiCisgICAgZHN0ZGlyX3N0YXR1cz0kPworICBlbHNlCisKKyAgICAjIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bwcm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZAorICAgICMgbWlnaHQgY2F1c2UgZGlyZWN0b3JpZXMgdG8gYmUgY3JlYXRlZCwgd2hpY2ggd291bGQgYmUgZXNwZWNpYWxseSBiYWQKKyAgICAjIGlmICRzcmMgKGFuZCB0aHVzICRkc3R0bXApIGNvbnRhaW5zICcqJy4KKyAgICBpZiB0ZXN0ICEgLWYgIiRzcmMiICYmIHRlc3QgISAtZCAiJHNyYyI7IHRoZW4KKyAgICAgIGVjaG8gIiQwOiAkc3JjIGRvZXMgbm90IGV4aXN0LiIgPiYyCisgICAgICBleGl0IDEKKyAgICBmaQorCisgICAgaWYgdGVzdCAteiAiJGRzdF9hcmciOyB0aGVuCisgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkLiIgPiYyCisgICAgICBleGl0IDEKKyAgICBmaQorCisgICAgZHN0PSRkc3RfYXJnCisgICAgIyBQcm90ZWN0IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nLgorICAgIGNhc2UgJGRzdCBpbgorICAgICAgLSopIGRzdD0uLyRkc3Q7OworICAgIGVzYWMKKworICAgICMgSWYgZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnksIGFwcGVuZCB0aGUgaW5wdXQgZmlsZW5hbWU7IHdvbid0IHdvcmsKKyAgICAjIGlmIGRvdWJsZSBzbGFzaGVzIGFyZW4ndCBpZ25vcmVkLgorICAgIGlmIHRlc3QgLWQgIiRkc3QiOyB0aGVuCisgICAgICBpZiB0ZXN0IC1uICIkbm9fdGFyZ2V0X2RpcmVjdG9yeSI7IHRoZW4KKwllY2hvICIkMDogJGRzdF9hcmc6IElzIGEgZGlyZWN0b3J5IiA+JjIKKwlleGl0IDEKKyAgICAgIGZpCisgICAgICBkc3RkaXI9JGRzdAorICAgICAgZHN0PSRkc3RkaXIvYGJhc2VuYW1lICIkc3JjImAKKyAgICAgIGRzdGRpcl9zdGF0dXM9MAorICAgIGVsc2UKKyAgICAgICMgUHJlZmVyIGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRlIGlmIGRpcm5hbWUgZmFpbHMuCisgICAgICBkc3RkaXI9YAorCShkaXJuYW1lICIkZHN0IikgMj4vZGV2L251bGwgfHwKKwlleHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgICAgIFgiJGRzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgICAgIFgiJGRzdCIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisJZWNobyBYIiRkc3QiIHwKKwkgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKwkJICAgcy8vXDEvCisJCSAgIHEKKwkJIH0KKwkJIC9eWFwoXC9cL1wpW14vXS4qL3sKKwkJICAgcy8vXDEvCisJCSAgIHEKKwkJIH0KKwkJIC9eWFwoXC9cL1wpJC97CisJCSAgIHMvL1wxLworCQkgICBxCisJCSB9CisJCSAvXlhcKFwvXCkuKi97CisJCSAgIHMvL1wxLworCQkgICBxCisJCSB9CisJCSBzLy4qLy4vOyBxJworICAgICAgYAorCisgICAgICB0ZXN0IC1kICIkZHN0ZGlyIgorICAgICAgZHN0ZGlyX3N0YXR1cz0kPworICAgIGZpCisgIGZpCisKKyAgb2Jzb2xldGVfbWtkaXJfdXNlZD1mYWxzZQorCisgIGlmIHRlc3QgJGRzdGRpcl9zdGF0dXMgIT0gMDsgdGhlbgorICAgIGNhc2UgJHBvc2l4X21rZGlyIGluCisgICAgICAnJykKKwkjIENyZWF0ZSBpbnRlcm1lZGlhdGUgZGlycyB1c2luZyBtb2RlIDc1NSBhcyBtb2RpZmllZCBieSB0aGUgdW1hc2suCisJIyBUaGlzIGlzIGxpa2UgRnJlZUJTRCAnaW5zdGFsbCcgYXMgb2YgMTk5Ny0xMC0yOC4KKwl1bWFzaz1gdW1hc2tgCisJY2FzZSAkc3RyaXBjbWQuJHVtYXNrIGluCisJICAjIE9wdGltaXplIGNvbW1vbiBjYXNlcy4KKwkgICpbMjM2N11bMjM2N10pIG1rZGlyX3VtYXNrPSR1bWFzazs7CisJICAuKjBbMDJdWzAyXSB8IC5bMDJdWzAyXSB8IC5bMDJdKSBta2Rpcl91bWFzaz0yMjs7CisKKwkgICpbMC03XSkKKwkgICAgbWtkaXJfdW1hc2s9YGV4cHIgJHVtYXNrICsgMjIgXAorCSAgICAgIC0gJHVtYXNrICUgMTAwICUgNDAgKyAkdW1hc2sgJSAyMCBcCisJICAgICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCisJICAgIGA7OworCSAgKikgbWtkaXJfdW1hc2s9JHVtYXNrLGdvLXc7OworCWVzYWMKKworCSMgV2l0aCAtZCwgY3JlYXRlIHRoZSBuZXcgZGlyZWN0b3J5IHdpdGggdGhlIHVzZXItc3BlY2lmaWVkIG1vZGUuCisJIyBPdGhlcndpc2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgorCWlmIHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgorCSAgbWtkaXJfbW9kZT0tbSRtb2RlCisJZWxzZQorCSAgbWtkaXJfbW9kZT0KKwlmaQorCisJcG9zaXhfbWtkaXI9ZmFsc2UKKwljYXNlICR1bWFzayBpbgorCSAgKlsxMjM1NjddWzAtN11bMC03XSkKKwkgICAgIyBQT1NJWCBta2RpciAtcCBzZXRzIHUrd3ggYml0cyByZWdhcmRsZXNzIG9mIHVtYXNrLCB3aGljaAorCSAgICAjIGlzIGluY29tcGF0aWJsZSB3aXRoIEZyZWVCU0QgJ2luc3RhbGwnIHdoZW4gKHVtYXNrICYgMzAwKSAhPSAwLgorCSAgICA7OworCSAgKikKKwkgICAgdG1wZGlyPSR7VE1QRElSLS90bXB9L2lucyRSQU5ET00tJCQKKwkgICAgdHJhcCAncmV0PSQ/OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251bGw7IGV4aXQgJHJldCcgMAorCisJICAgIGlmICh1bWFzayAkbWtkaXJfdW1hc2sgJiYKKwkJZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxsIDI+JjEKKwkgICAgdGhlbgorCSAgICAgIGlmIHRlc3QgLXogIiRkaXJfYXJnIiB8fCB7CisJCSAgICMgQ2hlY2sgZm9yIFBPU0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCisJCSAgICMgSFAtVVggMTEuMjMgYW5kIElSSVggNi41IG1rZGlyIC1tIC1wIHNldHMgZ3JvdXAtIG9yCisJCSAgICMgb3RoZXItd3JpdGVhYmxlIGJpdCBvZiBwYXJlbnQgZGlyZWN0b3J5IHdoZW4gaXQgc2hvdWxkbid0LgorCQkgICAjIEZyZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlzdGluZyBkaXJlY3RvcnkuCisJCSAgIGxzX2xkX3RtcGRpcj1gbHMgLWxkICIkdG1wZGlyImAKKwkJICAgY2FzZSAkbHNfbGRfdG1wZGlyIGluCisJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50X21vZGU9NzAwOzsKKwkJICAgICBkPz8/Py0/LS0qKSBkaWZmZXJlbnRfbW9kZT03NTU7OworCQkgICAgICopIGZhbHNlOzsKKwkJICAgZXNhYyAmJgorCQkgICAkbWtkaXJwcm9nIC1tJGRpZmZlcmVudF9tb2RlIC1wIC0tICIkdG1wZGlyIiAmJiB7CisJCSAgICAgbHNfbGRfdG1wZGlyXzE9YGxzIC1sZCAiJHRtcGRpciJgCisJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xkX3RtcGRpcl8xIgorCQkgICB9CisJCSB9CisJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06CisJICAgICAgZmkKKwkgICAgICBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIKKwkgICAgZWxzZQorCSAgICAgICMgUmVtb3ZlIGFueSBkaXJzIGxlZnQgYmVoaW5kIGJ5IGFuY2llbnQgbWtkaXIgaW1wbGVtZW50YXRpb25zLgorCSAgICAgIHJtZGlyIC4vJG1rZGlyX21vZGUgLi8tcCAuLy0tIDI+L2Rldi9udWxsCisJICAgIGZpCisJICAgIHRyYXAgJycgMDs7CisJZXNhYzs7CisgICAgZXNhYworCisgICAgaWYKKyAgICAgICRwb3NpeF9ta2RpciAmJiAoCisJdW1hc2sgJG1rZGlyX3VtYXNrICYmCisJJGRvaXRfZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkZHN0ZGlyIgorICAgICAgKQorICAgIHRoZW4gOgorICAgIGVsc2UKKworICAgICAgIyBUaGUgdW1hc2sgaXMgcmlkaWN1bG91cywgb3IgbWtkaXIgZG9lcyBub3QgY29uZm9ybSB0byBQT1NJWCwKKyAgICAgICMgb3IgaXQgZmFpbGVkIHBvc3NpYmx5IGR1ZSB0byBhIHJhY2UgY29uZGl0aW9uLiAgQ3JlYXRlIHRoZQorICAgICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0ZXAsIGNoZWNraW5nIGZvciByYWNlcyBhcyB3ZSBnby4KKworICAgICAgY2FzZSAkZHN0ZGlyIGluCisJLyopIHByZWZpeD0nLyc7OworCS0qKSBwcmVmaXg9Jy4vJzs7CisJKikgIHByZWZpeD0nJzs7CisgICAgICBlc2FjCisKKyAgICAgIGV2YWwgIiRpbml0aWFsaXplX3Bvc2l4X2dsb2IiCisKKyAgICAgIG9JRlM9JElGUworICAgICAgSUZTPS8KKyAgICAgICRwb3NpeF9nbG9iIHNldCAtZgorICAgICAgc2V0IGZub3JkICRkc3RkaXIKKyAgICAgIHNoaWZ0CisgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YKKyAgICAgIElGUz0kb0lGUworCisgICAgICBwcmVmaXhlcz0KKworICAgICAgZm9yIGQKKyAgICAgIGRvCisJdGVzdCAteiAiJGQiICYmIGNvbnRpbnVlCisKKwlwcmVmaXg9JHByZWZpeCRkCisJaWYgdGVzdCAtZCAiJHByZWZpeCI7IHRoZW4KKwkgIHByZWZpeGVzPQorCWVsc2UKKwkgIGlmICRwb3NpeF9ta2RpcjsgdGhlbgorCSAgICAodW1hc2s9JG1rZGlyX3VtYXNrICYmCisJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiKSAmJiBicmVhaworCSAgICAjIERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCisJICAgIHRlc3QgLWQgIiRwcmVmaXgiIHx8IGV4aXQgMQorCSAgZWxzZQorCSAgICBjYXNlICRwcmVmaXggaW4KKwkgICAgICAqXCcqKSBxcHJlZml4PWBlY2hvICIkcHJlZml4IiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7CisJICAgICAgKikgcXByZWZpeD0kcHJlZml4OzsKKwkgICAgZXNhYworCSAgICBwcmVmaXhlcz0iJHByZWZpeGVzICckcXByZWZpeCciCisJICBmaQorCWZpCisJcHJlZml4PSRwcmVmaXgvCisgICAgICBkb25lCisKKyAgICAgIGlmIHRlc3QgLW4gIiRwcmVmaXhlcyI7IHRoZW4KKwkjIERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCisJKHVtYXNrICRta2Rpcl91bWFzayAmJgorCSBldmFsICJcJGRvaXRfZXhlYyBcJG1rZGlycHJvZyAkcHJlZml4ZXMiKSB8fAorCSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCisJb2Jzb2xldGVfbWtkaXJfdXNlZD10cnVlCisgICAgICBmaQorICAgIGZpCisgIGZpCisKKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdCI7IH0gJiYKKyAgICB7IHRlc3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0IjsgfSAmJgorICAgIHsgdGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2UgfHwKKyAgICAgIHRlc3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0IjsgfSB8fCBleGl0IDEKKyAgZWxzZQorCisgICAgIyBNYWtlIGEgY291cGxlIG9mIHRlbXAgZmlsZSBuYW1lcyBpbiB0aGUgcHJvcGVyIGRpcmVjdG9yeS4KKyAgICBkc3R0bXA9JGRzdGRpci9faW5zdC4kJF8KKyAgICBybXRtcD0kZHN0ZGlyL19ybS4kJF8KKworICAgICMgVHJhcCB0byBjbGVhbiB1cCB0aG9zZSB0ZW1wIGZpbGVzIGF0IGV4aXQuCisgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAkcmV0JyAwCisKKyAgICAjIENvcHkgdGhlIGZpbGUgbmFtZSB0byB0aGUgdGVtcCBuYW1lLgorICAgICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRtcCIpICYmCisKKyAgICAjIGFuZCBzZXQgYW55IG9wdGlvbnM7IGRvIGNobW9kIGxhc3QgdG8gcHJlc2VydmUgc2V0dWlkIGJpdHMuCisgICAgIworICAgICMgSWYgYW55IG9mIHRoZXNlIGZhaWwsIHdlIGFib3J0IHRoZSB3aG9sZSB0aGluZy4gIElmIHdlIHdhbnQgdG8KKyAgICAjIGlnbm9yZSBlcnJvcnMgZnJvbSBhbnkgb2YgdGhlc2UsIGp1c3QgbWFrZSBzdXJlIG5vdCB0byBpZ25vcmUKKyAgICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCisgICAgIworICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRkc3R0bXAiOyB9ICYmCisgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKKyAgICB7IHRlc3QgLXogIiRzdHJpcGNtZCIgfHwgJGRvaXQgJHN0cmlwY21kICIkZHN0dG1wIjsgfSAmJgorICAgIHsgdGVzdCAteiAiJGNobW9kY21kIiB8fCAkZG9pdCAkY2htb2RjbWQgJG1vZGUgIiRkc3R0bXAiOyB9ICYmCisKKyAgICAjIElmIC1DLCBkb24ndCBib3RoZXIgdG8gY29weSBpZiBpdCB3b3VsZG4ndCBjaGFuZ2UgdGhlIGZpbGUuCisgICAgaWYgJGNvcHlfb25fY2hhbmdlICYmCisgICAgICAgb2xkPWBMQ19BTEw9QyBscyAtZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKKyAgICAgICBuZXc9YExDX0FMTD1DIGxzIC1kbEwgIiRkc3R0bXAiCTI+L2Rldi9udWxsYCAmJgorCisgICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIgJiYKKyAgICAgICAkcG9zaXhfZ2xvYiBzZXQgLWYgJiYKKyAgICAgICBzZXQgWCAkb2xkICYmIG9sZD06JDI6JDQ6JDU6JDYgJiYKKyAgICAgICBzZXQgWCAkbmV3ICYmIG5ldz06JDI6JDQ6JDU6JDYgJiYKKyAgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YgJiYKKworICAgICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCisgICAgICAgJGNtcHByb2cgIiRkc3QiICIkZHN0dG1wIiA+L2Rldi9udWxsIDI+JjEKKyAgICB0aGVuCisgICAgICBybSAtZiAiJGRzdHRtcCIKKyAgICBlbHNlCisgICAgICAjIFJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIgIiRkc3QiIDI+L2Rldi9udWxsIHx8CisKKyAgICAgICMgVGhlIHJlbmFtZSBmYWlsZWQsIHBlcmhhcHMgYmVjYXVzZSBtdiBjYW4ndCByZW5hbWUgc29tZXRoaW5nIGVsc2UKKyAgICAgICMgdG8gaXRzZWxmLCBvciBwZXJoYXBzIGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMgbm90CisgICAgICAjIHN1cHBvcnQgLWYuCisgICAgICB7CisJIyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgorCSMgV2UgdHJ5IHRoaXMgdHdvIHdheXMgc2luY2Ugcm0gY2FuJ3QgdW5saW5rIGl0c2VsZiBvbiBzb21lCisJIyBzeXN0ZW1zIGFuZCB0aGUgZGVzdGluYXRpb24gZmlsZSBtaWdodCBiZSBidXN5IGZvciBvdGhlcgorCSMgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFpbCBidXQgdGhlIG5ldworCSMgZmlsZSBzaG91bGQgc3RpbGwgaW5zdGFsbCBzdWNjZXNzZnVsbHkuCisJeworCSAgdGVzdCAhIC1mICIkZHN0IiB8fAorCSAgJGRvaXQgJHJtY21kIC1mICIkZHN0IiAyPi9kZXYvbnVsbCB8fAorCSAgeyAkZG9pdCAkbXZjbWQgLWYgIiRkc3QiICIkcm10bXAiIDI+L2Rldi9udWxsICYmCisJICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9udWxsOyA6OyB9CisJICB9IHx8CisJICB7IGVjaG8gIiQwOiBjYW5ub3QgdW5saW5rIG9yIHJlbmFtZSAkZHN0IiA+JjIKKwkgICAgKGV4aXQgMSk7IGV4aXQgMQorCSAgfQorCX0gJiYKKworCSMgTm93IHJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KKwkkZG9pdCAkbXZjbWQgIiRkc3R0bXAiICIkZHN0IgorICAgICAgfQorICAgIGZpIHx8IGV4aXQgMQorCisgICAgdHJhcCAnJyAwCisgIGZpCitkb25lCisKKyMgTG9jYWwgdmFyaWFibGVzOgorIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCisjIEVuZDoKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbGVnYWN5LmMgYi9saWJ4bWwyLTIuNy43L2xlZ2FjeS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NTE3OGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2xlZ2FjeS5jCkBAIC0wLDAgKzEsMTM0MyBAQAorLyoKKyAqIGxlZ2FjeS5jOiBzZXQgb2YgZGVwcmVjYXRlZCByb3V0aW5lcywgbm90IHRvIGJlIHVzZWQgYW55bW9yZSBidXQKKyAqICAgICAgICAgICBrZXB0IHB1cmVseSBmb3IgQUJJIGNvbXBhdGliaWxpdHkKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpZmRlZiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL2VudGl0aWVzLmg+CisjaW5jbHVkZSA8bGlieG1sL1NBWC5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHBhcnNlci5oPgorCit2b2lkIHhtbFVwZ3JhZGVPbGROcyh4bWxEb2NQdHIgZG9jKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJRGVwcmVjYXRlZCBmdW5jdGlvbnMga2VwdCBmb3IgY29tcGF0aWJpbGl0eQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoreG1sQ2hhciAqaHRtbERlY29kZUVudGl0aWVzKGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBsZW4sIHhtbENoYXIgZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgZW5kMiwgeG1sQ2hhciBlbmQzKTsKKworLyoqCisgKiBodG1sRGVjb2RlRW50aXRpZXM6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQGxlbjogIHRoZSBsZW4gdG8gZGVjb2RlIChpbiBieXRlcyAhKSwgLTEgZm9yIG5vIHNpemUgbGltaXQKKyAqIEBlbmQ6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogQGVuZDI6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogQGVuZDM6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICoKKyAqIFN1YnN0aXR1dGUgdGhlIEhUTUwgZW50aXRpZXMgYnkgdGhlaXIgdmFsdWUKKyAqCisgKiBERVBSRUNBVEVEICEhISEKKyAqCisgKiBSZXR1cm5zIEEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4gVGhlIGNhbGxlcgorICogICAgICBtdXN0IGRlYWxsb2NhdGUgaXQgIQorICovCit4bWxDaGFyICoKK2h0bWxEZWNvZGVFbnRpdGllcyhodG1sUGFyc2VyQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgaW50IGxlbiBBVFRSSUJVVEVfVU5VU0VELCB4bWxDaGFyIGVuZCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgIHhtbENoYXIgZW5kMiBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgIHhtbENoYXIgZW5kMyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHN0YXRpYyBpbnQgZGVwcmVjYXRlZCA9IDA7CisKKyAgICBpZiAoIWRlcHJlY2F0ZWQpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiaHRtbERlY29kZUVudGl0aWVzKCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisjZW5kaWYKKworLyoqCisgKiB4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzOgorICoKKyAqIFNldCB1cCB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcy4KKyAqIERlcHJlY2F0ZWQgY2FsbAorICovCit2b2lkCit4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzKHZvaWQpCit7Cit9CisKKy8qKgorICogeG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllczoKKyAqCisgKiBDbGVhbnVwIHVwIHRoZSBwcmVkZWZpbmVkIGVudGl0aWVzIHRhYmxlLgorICogRGVwcmVjYXRlZCBjYWxsCisgKi8KK3ZvaWQKK3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXModm9pZCkKK3sKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKnhtbEZlYXR1cmVzTGlzdFtdID0geworICAgICJ2YWxpZGF0ZSIsCisgICAgImxvYWQgc3Vic2V0IiwKKyAgICAia2VlcCBibGFua3MiLAorICAgICJkaXNhYmxlIFNBWCIsCisgICAgImZldGNoIGV4dGVybmFsIGVudGl0aWVzIiwKKyAgICAic3Vic3RpdHV0ZSBlbnRpdGllcyIsCisgICAgImdhdGhlciBsaW5lIGluZm8iLAorICAgICJ1c2VyIGRhdGEiLAorICAgICJpcyBodG1sIiwKKyAgICAiaXMgc3RhbmRhbG9uZSIsCisgICAgInN0b3AgcGFyc2VyIiwKKyAgICAiZG9jdW1lbnQiLAorICAgICJpcyB3ZWxsIGZvcm1lZCIsCisgICAgImlzIHZhbGlkIiwKKyAgICAiU0FYIGJsb2NrIiwKKyAgICAiU0FYIGZ1bmN0aW9uIGludGVybmFsU3Vic2V0IiwKKyAgICAiU0FYIGZ1bmN0aW9uIGlzU3RhbmRhbG9uZSIsCisgICAgIlNBWCBmdW5jdGlvbiBoYXNJbnRlcm5hbFN1YnNldCIsCisgICAgIlNBWCBmdW5jdGlvbiBoYXNFeHRlcm5hbFN1YnNldCIsCisgICAgIlNBWCBmdW5jdGlvbiByZXNvbHZlRW50aXR5IiwKKyAgICAiU0FYIGZ1bmN0aW9uIGdldEVudGl0eSIsCisgICAgIlNBWCBmdW5jdGlvbiBlbnRpdHlEZWNsIiwKKyAgICAiU0FYIGZ1bmN0aW9uIG5vdGF0aW9uRGVjbCIsCisgICAgIlNBWCBmdW5jdGlvbiBhdHRyaWJ1dGVEZWNsIiwKKyAgICAiU0FYIGZ1bmN0aW9uIGVsZW1lbnREZWNsIiwKKyAgICAiU0FYIGZ1bmN0aW9uIHVucGFyc2VkRW50aXR5RGVjbCIsCisgICAgIlNBWCBmdW5jdGlvbiBzZXREb2N1bWVudExvY2F0b3IiLAorICAgICJTQVggZnVuY3Rpb24gc3RhcnREb2N1bWVudCIsCisgICAgIlNBWCBmdW5jdGlvbiBlbmREb2N1bWVudCIsCisgICAgIlNBWCBmdW5jdGlvbiBzdGFydEVsZW1lbnQiLAorICAgICJTQVggZnVuY3Rpb24gZW5kRWxlbWVudCIsCisgICAgIlNBWCBmdW5jdGlvbiByZWZlcmVuY2UiLAorICAgICJTQVggZnVuY3Rpb24gY2hhcmFjdGVycyIsCisgICAgIlNBWCBmdW5jdGlvbiBpZ25vcmFibGVXaGl0ZXNwYWNlIiwKKyAgICAiU0FYIGZ1bmN0aW9uIHByb2Nlc3NpbmdJbnN0cnVjdGlvbiIsCisgICAgIlNBWCBmdW5jdGlvbiBjb21tZW50IiwKKyAgICAiU0FYIGZ1bmN0aW9uIHdhcm5pbmciLAorICAgICJTQVggZnVuY3Rpb24gZXJyb3IiLAorICAgICJTQVggZnVuY3Rpb24gZmF0YWxFcnJvciIsCisgICAgIlNBWCBmdW5jdGlvbiBnZXRQYXJhbWV0ZXJFbnRpdHkiLAorICAgICJTQVggZnVuY3Rpb24gY2RhdGFCbG9jayIsCisgICAgIlNBWCBmdW5jdGlvbiBleHRlcm5hbFN1YnNldCIsCit9OworCisvKioKKyAqIHhtbEdldEZlYXR1cmVzTGlzdDoKKyAqIEBsZW46ICB0aGUgbGVuZ3RoIG9mIHRoZSBmZWF0dXJlcyBuYW1lIGFycmF5IChpbnB1dC9vdXRwdXQpCisgKiBAcmVzdWx0OiAgYW4gYXJyYXkgb2Ygc3RyaW5nIHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBmZWF0dXJlcyBuYW1lLgorICoKKyAqIENvcHkgYXQgbW9zdCAqQGxlbiBmZWF0dXJlIG5hbWVzIGludG8gdGhlIEByZXN1bHQgYXJyYXkKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb3IgZXJyb3IsIG9yIHRoZSB0b3RhbCBudW1iZXIgb2YgZmVhdHVyZXMsCisgKiAgICAgICAgICAgIGxlbiBpcyB1cGRhdGVkIHdpdGggdGhlIG51bWJlciBvZiBzdHJpbmdzIGNvcGllZCwKKyAqICAgICAgICAgICAgc3RyaW5ncyBtdXN0IG5vdCBiZSBkZWFsbG9jYXRlZAorICovCitpbnQKK3htbEdldEZlYXR1cmVzTGlzdChpbnQgKmxlbiwgY29uc3QgY2hhciAqKnJlc3VsdCkKK3sKKyAgICBpbnQgcmV0LCBpOworCisgICAgcmV0ID0gc2l6ZW9mKHhtbEZlYXR1cmVzTGlzdCkgLyBzaXplb2YoeG1sRmVhdHVyZXNMaXN0WzBdKTsKKyAgICBpZiAoKGxlbiA9PSBOVUxMKSB8fCAocmVzdWx0ID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKHJldCk7CisgICAgaWYgKCgqbGVuIDwgMCkgfHwgKCpsZW4gPj0gMTAwMCkpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmICgqbGVuID4gcmV0KQorICAgICAgICAqbGVuID0gcmV0OworICAgIGZvciAoaSA9IDA7IGkgPCAqbGVuOyBpKyspCisgICAgICAgIHJlc3VsdFtpXSA9IHhtbEZlYXR1cmVzTGlzdFtpXTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sR2V0RmVhdHVyZToKKyAqIEBjdHh0OiAgYW4gWE1ML0hUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGZlYXR1cmUgbmFtZQorICogQHJlc3VsdDogIGxvY2F0aW9uIHRvIHN0b3JlIHRoZSByZXN1bHQKKyAqCisgKiBSZWFkIHRoZSBjdXJyZW50IHZhbHVlIG9mIG9uZSBmZWF0dXJlIG9mIHRoaXMgcGFyc2VyIGluc3RhbmNlCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9yIGVycm9yLCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbEdldEZlYXR1cmUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICpyZXN1bHQpCit7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpIHx8IChyZXN1bHQgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgaWYgKCFzdHJjbXAobmFtZSwgInZhbGlkYXRlIikpIHsKKyAgICAgICAgKigoaW50ICopIHJlc3VsdCkgPSBjdHh0LT52YWxpZGF0ZTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImtlZXAgYmxhbmtzIikpIHsKKyAgICAgICAgKigoaW50ICopIHJlc3VsdCkgPSBjdHh0LT5rZWVwQmxhbmtzOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiZGlzYWJsZSBTQVgiKSkgeworICAgICAgICAqKChpbnQgKikgcmVzdWx0KSA9IGN0eHQtPmRpc2FibGVTQVg7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJmZXRjaCBleHRlcm5hbCBlbnRpdGllcyIpKSB7CisgICAgICAgICooKGludCAqKSByZXN1bHQpID0gY3R4dC0+bG9hZHN1YnNldDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgInN1YnN0aXR1dGUgZW50aXRpZXMiKSkgeworICAgICAgICAqKChpbnQgKikgcmVzdWx0KSA9IGN0eHQtPnJlcGxhY2VFbnRpdGllczsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImdhdGhlciBsaW5lIGluZm8iKSkgeworICAgICAgICAqKChpbnQgKikgcmVzdWx0KSA9IGN0eHQtPnJlY29yZF9pbmZvOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAidXNlciBkYXRhIikpIHsKKyAgICAgICAgKigodm9pZCAqKikgcmVzdWx0KSA9IGN0eHQtPnVzZXJEYXRhOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiaXMgaHRtbCIpKSB7CisgICAgICAgICooKGludCAqKSByZXN1bHQpID0gY3R4dC0+aHRtbDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImlzIHN0YW5kYWxvbmUiKSkgeworICAgICAgICAqKChpbnQgKikgcmVzdWx0KSA9IGN0eHQtPnN0YW5kYWxvbmU7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJkb2N1bWVudCIpKSB7CisgICAgICAgICooKHhtbERvY1B0ciAqKSByZXN1bHQpID0gY3R4dC0+bXlEb2M7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJpcyB3ZWxsIGZvcm1lZCIpKSB7CisgICAgICAgICooKGludCAqKSByZXN1bHQpID0gY3R4dC0+d2VsbEZvcm1lZDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImlzIHZhbGlkIikpIHsKKyAgICAgICAgKigoaW50ICopIHJlc3VsdCkgPSBjdHh0LT52YWxpZDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBibG9jayIpKSB7CisgICAgICAgICooKHhtbFNBWEhhbmRsZXJQdHIgKikgcmVzdWx0KSA9IGN0eHQtPnNheDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBpbnRlcm5hbFN1YnNldCIpKSB7CisgICAgICAgICooKGludGVybmFsU3Vic2V0U0FYRnVuYyAqKSByZXN1bHQpID0gY3R4dC0+c2F4LT5pbnRlcm5hbFN1YnNldDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBpc1N0YW5kYWxvbmUiKSkgeworICAgICAgICAqKChpc1N0YW5kYWxvbmVTQVhGdW5jICopIHJlc3VsdCkgPSBjdHh0LT5zYXgtPmlzU3RhbmRhbG9uZTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBoYXNJbnRlcm5hbFN1YnNldCIpKSB7CisgICAgICAgICooKGhhc0ludGVybmFsU3Vic2V0U0FYRnVuYyAqKSByZXN1bHQpID0KKyAgICAgICAgICAgIGN0eHQtPnNheC0+aGFzSW50ZXJuYWxTdWJzZXQ7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gaGFzRXh0ZXJuYWxTdWJzZXQiKSkgeworICAgICAgICAqKChoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMgKikgcmVzdWx0KSA9CisgICAgICAgICAgICBjdHh0LT5zYXgtPmhhc0V4dGVybmFsU3Vic2V0OworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHJlc29sdmVFbnRpdHkiKSkgeworICAgICAgICAqKChyZXNvbHZlRW50aXR5U0FYRnVuYyAqKSByZXN1bHQpID0gY3R4dC0+c2F4LT5yZXNvbHZlRW50aXR5OworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGdldEVudGl0eSIpKSB7CisgICAgICAgICooKGdldEVudGl0eVNBWEZ1bmMgKikgcmVzdWx0KSA9IGN0eHQtPnNheC0+Z2V0RW50aXR5OworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGVudGl0eURlY2wiKSkgeworICAgICAgICAqKChlbnRpdHlEZWNsU0FYRnVuYyAqKSByZXN1bHQpID0gY3R4dC0+c2F4LT5lbnRpdHlEZWNsOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIG5vdGF0aW9uRGVjbCIpKSB7CisgICAgICAgICooKG5vdGF0aW9uRGVjbFNBWEZ1bmMgKikgcmVzdWx0KSA9IGN0eHQtPnNheC0+bm90YXRpb25EZWNsOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGF0dHJpYnV0ZURlY2wiKSkgeworICAgICAgICAqKChhdHRyaWJ1dGVEZWNsU0FYRnVuYyAqKSByZXN1bHQpID0gY3R4dC0+c2F4LT5hdHRyaWJ1dGVEZWNsOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGVsZW1lbnREZWNsIikpIHsKKyAgICAgICAgKigoZWxlbWVudERlY2xTQVhGdW5jICopIHJlc3VsdCkgPSBjdHh0LT5zYXgtPmVsZW1lbnREZWNsOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHVucGFyc2VkRW50aXR5RGVjbCIpKSB7CisgICAgICAgICooKHVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMgKikgcmVzdWx0KSA9CisgICAgICAgICAgICBjdHh0LT5zYXgtPnVucGFyc2VkRW50aXR5RGVjbDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBzZXREb2N1bWVudExvY2F0b3IiKSkgeworICAgICAgICAqKChzZXREb2N1bWVudExvY2F0b3JTQVhGdW5jICopIHJlc3VsdCkgPQorICAgICAgICAgICAgY3R4dC0+c2F4LT5zZXREb2N1bWVudExvY2F0b3I7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gc3RhcnREb2N1bWVudCIpKSB7CisgICAgICAgICooKHN0YXJ0RG9jdW1lbnRTQVhGdW5jICopIHJlc3VsdCkgPSBjdHh0LT5zYXgtPnN0YXJ0RG9jdW1lbnQ7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gZW5kRG9jdW1lbnQiKSkgeworICAgICAgICAqKChlbmREb2N1bWVudFNBWEZ1bmMgKikgcmVzdWx0KSA9IGN0eHQtPnNheC0+ZW5kRG9jdW1lbnQ7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gc3RhcnRFbGVtZW50IikpIHsKKyAgICAgICAgKigoc3RhcnRFbGVtZW50U0FYRnVuYyAqKSByZXN1bHQpID0gY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQ7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gZW5kRWxlbWVudCIpKSB7CisgICAgICAgICooKGVuZEVsZW1lbnRTQVhGdW5jICopIHJlc3VsdCkgPSBjdHh0LT5zYXgtPmVuZEVsZW1lbnQ7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gcmVmZXJlbmNlIikpIHsKKyAgICAgICAgKigocmVmZXJlbmNlU0FYRnVuYyAqKSByZXN1bHQpID0gY3R4dC0+c2F4LT5yZWZlcmVuY2U7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gY2hhcmFjdGVycyIpKSB7CisgICAgICAgICooKGNoYXJhY3RlcnNTQVhGdW5jICopIHJlc3VsdCkgPSBjdHh0LT5zYXgtPmNoYXJhY3RlcnM7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gaWdub3JhYmxlV2hpdGVzcGFjZSIpKSB7CisgICAgICAgICooKGlnbm9yYWJsZVdoaXRlc3BhY2VTQVhGdW5jICopIHJlc3VsdCkgPQorICAgICAgICAgICAgY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpKSB7CisgICAgICAgICooKHByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMgKikgcmVzdWx0KSA9CisgICAgICAgICAgICBjdHh0LT5zYXgtPnByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBjb21tZW50IikpIHsKKyAgICAgICAgKigoY29tbWVudFNBWEZ1bmMgKikgcmVzdWx0KSA9IGN0eHQtPnNheC0+Y29tbWVudDsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiB3YXJuaW5nIikpIHsKKyAgICAgICAgKigod2FybmluZ1NBWEZ1bmMgKikgcmVzdWx0KSA9IGN0eHQtPnNheC0+d2FybmluZzsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBlcnJvciIpKSB7CisgICAgICAgICooKGVycm9yU0FYRnVuYyAqKSByZXN1bHQpID0gY3R4dC0+c2F4LT5lcnJvcjsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBmYXRhbEVycm9yIikpIHsKKyAgICAgICAgKigoZmF0YWxFcnJvclNBWEZ1bmMgKikgcmVzdWx0KSA9IGN0eHQtPnNheC0+ZmF0YWxFcnJvcjsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBnZXRQYXJhbWV0ZXJFbnRpdHkiKSkgeworICAgICAgICAqKChnZXRQYXJhbWV0ZXJFbnRpdHlTQVhGdW5jICopIHJlc3VsdCkgPQorICAgICAgICAgICAgY3R4dC0+c2F4LT5nZXRQYXJhbWV0ZXJFbnRpdHk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gY2RhdGFCbG9jayIpKSB7CisgICAgICAgICooKGNkYXRhQmxvY2tTQVhGdW5jICopIHJlc3VsdCkgPSBjdHh0LT5zYXgtPmNkYXRhQmxvY2s7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gZXh0ZXJuYWxTdWJzZXQiKSkgeworICAgICAgICAqKChleHRlcm5hbFN1YnNldFNBWEZ1bmMgKikgcmVzdWx0KSA9IGN0eHQtPnNheC0+ZXh0ZXJuYWxTdWJzZXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2V0RmVhdHVyZToKKyAqIEBjdHh0OiAgYW4gWE1ML0hUTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGZlYXR1cmUgbmFtZQorICogQHZhbHVlOiAgcG9pbnRlciB0byB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldyB2YWx1ZQorICoKKyAqIENoYW5nZSB0aGUgY3VycmVudCB2YWx1ZSBvZiBvbmUgZmVhdHVyZSBvZiB0aGlzIHBhcnNlciBpbnN0YW5jZQorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvciBlcnJvciwgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxTZXRGZWF0dXJlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqdmFsdWUpCit7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpIHx8ICh2YWx1ZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpZiAoIXN0cmNtcChuYW1lLCAidmFsaWRhdGUiKSkgeworICAgICAgICBpbnQgbmV3dmFsaWRhdGUgPSAqKChpbnQgKikgdmFsdWUpOworCisgICAgICAgIGlmICgoIWN0eHQtPnZhbGlkYXRlKSAmJiAobmV3dmFsaWRhdGUgIT0gMCkpIHsKKyAgICAgICAgICAgIGlmIChjdHh0LT52Y3R4dC53YXJuaW5nID09IE5VTEwpCisgICAgICAgICAgICAgICAgY3R4dC0+dmN0eHQud2FybmluZyA9IHhtbFBhcnNlclZhbGlkaXR5V2FybmluZzsKKyAgICAgICAgICAgIGlmIChjdHh0LT52Y3R4dC5lcnJvciA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGN0eHQtPnZjdHh0LmVycm9yID0geG1sUGFyc2VyVmFsaWRpdHlFcnJvcjsKKyAgICAgICAgICAgIGN0eHQtPnZjdHh0Lm5vZGVNYXggPSAwOworICAgICAgICB9CisgICAgICAgIGN0eHQtPnZhbGlkYXRlID0gbmV3dmFsaWRhdGU7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJrZWVwIGJsYW5rcyIpKSB7CisgICAgICAgIGN0eHQtPmtlZXBCbGFua3MgPSAqKChpbnQgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiZGlzYWJsZSBTQVgiKSkgeworICAgICAgICBjdHh0LT5kaXNhYmxlU0FYID0gKigoaW50ICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImZldGNoIGV4dGVybmFsIGVudGl0aWVzIikpIHsKKyAgICAgICAgY3R4dC0+bG9hZHN1YnNldCA9ICooKGludCAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJzdWJzdGl0dXRlIGVudGl0aWVzIikpIHsKKyAgICAgICAgY3R4dC0+cmVwbGFjZUVudGl0aWVzID0gKigoaW50ICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImdhdGhlciBsaW5lIGluZm8iKSkgeworICAgICAgICBjdHh0LT5yZWNvcmRfaW5mbyA9ICooKGludCAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJ1c2VyIGRhdGEiKSkgeworICAgICAgICBjdHh0LT51c2VyRGF0YSA9ICooKHZvaWQgKiopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImlzIGh0bWwiKSkgeworICAgICAgICBjdHh0LT5odG1sID0gKigoaW50ICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImlzIHN0YW5kYWxvbmUiKSkgeworICAgICAgICBjdHh0LT5zdGFuZGFsb25lID0gKigoaW50ICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImRvY3VtZW50IikpIHsKKyAgICAgICAgY3R4dC0+bXlEb2MgPSAqKCh4bWxEb2NQdHIgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiaXMgd2VsbCBmb3JtZWQiKSkgeworICAgICAgICBjdHh0LT53ZWxsRm9ybWVkID0gKigoaW50ICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgImlzIHZhbGlkIikpIHsKKyAgICAgICAgY3R4dC0+dmFsaWQgPSAqKChpbnQgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGJsb2NrIikpIHsKKyAgICAgICAgY3R4dC0+c2F4ID0gKigoeG1sU0FYSGFuZGxlclB0ciAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gaW50ZXJuYWxTdWJzZXQiKSkgeworICAgICAgICBjdHh0LT5zYXgtPmludGVybmFsU3Vic2V0ID0gKigoaW50ZXJuYWxTdWJzZXRTQVhGdW5jICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBpc1N0YW5kYWxvbmUiKSkgeworICAgICAgICBjdHh0LT5zYXgtPmlzU3RhbmRhbG9uZSA9ICooKGlzU3RhbmRhbG9uZVNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGhhc0ludGVybmFsU3Vic2V0IikpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5oYXNJbnRlcm5hbFN1YnNldCA9CisgICAgICAgICAgICAqKChoYXNJbnRlcm5hbFN1YnNldFNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGhhc0V4dGVybmFsU3Vic2V0IikpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5oYXNFeHRlcm5hbFN1YnNldCA9CisgICAgICAgICAgICAqKChoYXNFeHRlcm5hbFN1YnNldFNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHJlc29sdmVFbnRpdHkiKSkgeworICAgICAgICBjdHh0LT5zYXgtPnJlc29sdmVFbnRpdHkgPSAqKChyZXNvbHZlRW50aXR5U0FYRnVuYyAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gZ2V0RW50aXR5IikpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5nZXRFbnRpdHkgPSAqKChnZXRFbnRpdHlTQVhGdW5jICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBlbnRpdHlEZWNsIikpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5lbnRpdHlEZWNsID0gKigoZW50aXR5RGVjbFNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIG5vdGF0aW9uRGVjbCIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+bm90YXRpb25EZWNsID0gKigobm90YXRpb25EZWNsU0FYRnVuYyAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gYXR0cmlidXRlRGVjbCIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+YXR0cmlidXRlRGVjbCA9ICooKGF0dHJpYnV0ZURlY2xTQVhGdW5jICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBlbGVtZW50RGVjbCIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+ZWxlbWVudERlY2wgPSAqKChlbGVtZW50RGVjbFNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHVucGFyc2VkRW50aXR5RGVjbCIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+dW5wYXJzZWRFbnRpdHlEZWNsID0KKyAgICAgICAgICAgICooKHVucGFyc2VkRW50aXR5RGVjbFNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHNldERvY3VtZW50TG9jYXRvciIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+c2V0RG9jdW1lbnRMb2NhdG9yID0KKyAgICAgICAgICAgICooKHNldERvY3VtZW50TG9jYXRvclNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHN0YXJ0RG9jdW1lbnQiKSkgeworICAgICAgICBjdHh0LT5zYXgtPnN0YXJ0RG9jdW1lbnQgPSAqKChzdGFydERvY3VtZW50U0FYRnVuYyAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gZW5kRG9jdW1lbnQiKSkgeworICAgICAgICBjdHh0LT5zYXgtPmVuZERvY3VtZW50ID0gKigoZW5kRG9jdW1lbnRTQVhGdW5jICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBzdGFydEVsZW1lbnQiKSkgeworICAgICAgICBjdHh0LT5zYXgtPnN0YXJ0RWxlbWVudCA9ICooKHN0YXJ0RWxlbWVudFNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGVuZEVsZW1lbnQiKSkgeworICAgICAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnQgPSAqKChlbmRFbGVtZW50U0FYRnVuYyAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gcmVmZXJlbmNlIikpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5yZWZlcmVuY2UgPSAqKChyZWZlcmVuY2VTQVhGdW5jICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBjaGFyYWN0ZXJzIikpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5jaGFyYWN0ZXJzID0gKigoY2hhcmFjdGVyc1NBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGlnbm9yYWJsZVdoaXRlc3BhY2UiKSkgeworICAgICAgICBjdHh0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UgPQorICAgICAgICAgICAgKigoaWdub3JhYmxlV2hpdGVzcGFjZVNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIHByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+cHJvY2Vzc2luZ0luc3RydWN0aW9uID0KKyAgICAgICAgICAgICooKHByb2Nlc3NpbmdJbnN0cnVjdGlvblNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGNvbW1lbnQiKSkgeworICAgICAgICBjdHh0LT5zYXgtPmNvbW1lbnQgPSAqKChjb21tZW50U0FYRnVuYyAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gd2FybmluZyIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+d2FybmluZyA9ICooKHdhcm5pbmdTQVhGdW5jICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBlcnJvciIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+ZXJyb3IgPSAqKChlcnJvclNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAiU0FYIGZ1bmN0aW9uIGZhdGFsRXJyb3IiKSkgeworICAgICAgICBjdHh0LT5zYXgtPmZhdGFsRXJyb3IgPSAqKChmYXRhbEVycm9yU0FYRnVuYyAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gZ2V0UGFyYW1ldGVyRW50aXR5IikpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5nZXRQYXJhbWV0ZXJFbnRpdHkgPQorICAgICAgICAgICAgKigoZ2V0UGFyYW1ldGVyRW50aXR5U0FYRnVuYyAqKSB2YWx1ZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJTQVggZnVuY3Rpb24gY2RhdGFCbG9jayIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+Y2RhdGFCbG9jayA9ICooKGNkYXRhQmxvY2tTQVhGdW5jICopIHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAobmFtZSwgIlNBWCBmdW5jdGlvbiBleHRlcm5hbFN1YnNldCIpKSB7CisgICAgICAgIGN0eHQtPnNheC0+ZXh0ZXJuYWxTdWJzZXQgPSAqKChleHRlcm5hbFN1YnNldFNBWEZ1bmMgKikgdmFsdWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbERlY29kZUVudGl0aWVzOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBsZW46ICB0aGUgbGVuIHRvIGRlY29kZSAoaW4gYnl0ZXMgISksIC0xIGZvciBubyBzaXplIGxpbWl0CisgKiBAd2hhdDogIGNvbWJpbmF0aW9uIG9mIFhNTF9TVUJTVElUVVRFX1JFRiBhbmQgWE1MX1NVQlNUSVRVVEVfUEVSRUYKKyAqIEBlbmQ6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogQGVuZDI6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogQGVuZDM6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQsIHdlIG5vdyBhbHdheXMgcHJvY2VzcyBlbnRpdGllcyBjb250ZW50CisgKiB0aHJvdWdoIHhtbFN0cmluZ0RlY29kZUVudGl0aWVzCisgKgorICogVE9ETzogcmVtb3ZlIGl0IGluIG5leHQgbWFqb3IgcmVsZWFzZS4KKyAqCisgKiBbNjddIFJlZmVyZW5jZSA6Oj0gRW50aXR5UmVmIHwgQ2hhclJlZgorICoKKyAqIFs2OV0gUEVSZWZlcmVuY2UgOjo9ICclJyBOYW1lICc7JworICoKKyAqIFJldHVybnMgQSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggdGhlIHN1YnN0aXR1dGlvbiBkb25lLiBUaGUgY2FsbGVyCisgKiAgICAgIG11c3QgZGVhbGxvY2F0ZSBpdCAhCisgKi8KK3htbENoYXIgKgoreG1sRGVjb2RlRW50aXRpZXMoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICBpbnQgbGVuIEFUVFJJQlVURV9VTlVTRUQsIGludCB3aGF0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICB4bWxDaGFyIGVuZCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgeG1sQ2hhciBlbmQyIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICB4bWxDaGFyIGVuZDMgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbERlY29kZUVudGl0aWVzKCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sTmFtZXNwYWNlUGFyc2VOQ05hbWU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIFhNTCBuYW1lc3BhY2UgbmFtZS4KKyAqCisgKiBUT0RPOiB0aGlzIHNlZW1zIG5vdCBpbiB1c2UgYW55bW9yZSwgdGhlIG5hbWVzcGFjZSBoYW5kbGluZyBpcyBkb25lIG9uCisgKiAgICAgICB0b3Agb2YgdGhlIFNBWCBpbnRlcmZhY2VzLCBpLmUuIG5vdCBvbiByYXcgaW5wdXQuCisgKgorICogW05TIDNdIE5DTmFtZSA6Oj0gKExldHRlciB8ICdfJykgKE5DTmFtZUNoYXIpKgorICoKKyAqIFtOUyA0XSBOQ05hbWVDaGFyIDo6PSBMZXR0ZXIgfCBEaWdpdCB8ICcuJyB8ICctJyB8ICdfJyB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgQ29tYmluaW5nQ2hhciB8IEV4dGVuZGVyCisgKgorICogUmV0dXJucyB0aGUgbmFtZXNwYWNlIG5hbWUgb3IgTlVMTAorICovCisKK3htbENoYXIgKgoreG1sTmFtZXNwYWNlUGFyc2VOQ05hbWUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZSgpIGRlcHJlY2F0ZWQgZnVuY3Rpb24gcmVhY2hlZFxuIik7CisgICAgICAgIGRlcHJlY2F0ZWQgPSAxOworICAgIH0KKyAgICByZXR1cm4gKE5VTEwpOworfQorCisvKioKKyAqIHhtbE5hbWVzcGFjZVBhcnNlUU5hbWU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHByZWZpeDogIGEgeG1sQ2hhciAqKiAKKyAqCisgKiBUT0RPOiB0aGlzIHNlZW1zIG5vdCBpbiB1c2UgYW55bW9yZSwgdGhlIG5hbWVzcGFjZSBoYW5kbGluZyBpcyBkb25lIG9uCisgKiAgICAgICB0b3Agb2YgdGhlIFNBWCBpbnRlcmZhY2VzLCBpLmUuIG5vdCBvbiByYXcgaW5wdXQuCisgKgorICogcGFyc2UgYW4gWE1MIHF1YWxpZmllZCBuYW1lCisgKgorICogW05TIDVdIFFOYW1lIDo6PSAoUHJlZml4ICc6Jyk/IExvY2FsUGFydAorICoKKyAqIFtOUyA2XSBQcmVmaXggOjo9IE5DTmFtZQorICoKKyAqIFtOUyA3XSBMb2NhbFBhcnQgOjo9IE5DTmFtZQorICoKKyAqIFJldHVybnMgdGhlIGxvY2FsIHBhcnQsIGFuZCBwcmVmaXggaXMgdXBkYXRlZAorICogICB0byBnZXQgdGhlIFByZWZpeCBpZiBhbnkuCisgKi8KKworeG1sQ2hhciAqCit4bWxOYW1lc3BhY2VQYXJzZVFOYW1lKHhtbFBhcnNlckN0eHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICoqIHByZWZpeCBBVFRSSUJVVEVfVU5VU0VEKQoreworCisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxOYW1lc3BhY2VQYXJzZVFOYW1lKCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sTmFtZXNwYWNlUGFyc2VOU0RlZjoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYSBuYW1lc3BhY2UgcHJlZml4IGRlY2xhcmF0aW9uCisgKgorICogVE9ETzogdGhpcyBzZWVtcyBub3QgaW4gdXNlIGFueW1vcmUsIHRoZSBuYW1lc3BhY2UgaGFuZGxpbmcgaXMgZG9uZSBvbgorICogICAgICAgdG9wIG9mIHRoZSBTQVggaW50ZXJmYWNlcywgaS5lLiBub3Qgb24gcmF3IGlucHV0LgorICoKKyAqIFtOUyAxXSBOU0RlZiA6Oj0gUHJlZml4RGVmIEVxIFN5c3RlbUxpdGVyYWwKKyAqCisgKiBbTlMgMl0gUHJlZml4RGVmIDo6PSAneG1sbnMnICgnOicgTkNOYW1lKT8KKyAqCisgKiBSZXR1cm5zIHRoZSBuYW1lc3BhY2UgbmFtZQorICovCisKK3htbENoYXIgKgoreG1sTmFtZXNwYWNlUGFyc2VOU0RlZih4bWxQYXJzZXJDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE5hbWVzcGFjZVBhcnNlTlNEZWYoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVF1b3RlZFN0cmluZzoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYW5kIHJldHVybiBhIHN0cmluZyBiZXR3ZWVuIHF1b3RlcyBvciBkb3VibGVxdW90ZXMKKyAqCisgKiBUT0RPOiBEZXByZWNhdGVkLCB0byAgYmUgcmVtb3ZlZCBhdCBuZXh0IGRyb3Agb2YgYmluYXJ5IGNvbXBhdGliaWxpdHkKKyAqCisgKiBSZXR1cm5zIHRoZSBzdHJpbmcgcGFyc2VyIG9yIE5VTEwuCisgKi8KK3htbENoYXIgKgoreG1sUGFyc2VRdW90ZWRTdHJpbmcoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxQYXJzZVF1b3RlZFN0cmluZygpIGRlcHJlY2F0ZWQgZnVuY3Rpb24gcmVhY2hlZFxuIik7CisgICAgICAgIGRlcHJlY2F0ZWQgPSAxOworICAgIH0KKyAgICByZXR1cm4gKE5VTEwpOworfQorCisvKioKKyAqIHhtbFBhcnNlTmFtZXNwYWNlOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiB4bWxQYXJzZU5hbWVzcGFjZTogcGFyc2Ugc3BlY2lmaWMgUEkgJzw/bmFtZXNwYWNlIC4uLicgY29uc3RydWN0cy4KKyAqCisgKiBUaGlzIGlzIHdoYXQgdGhlIG9sZGVyIHhtbC1uYW1lIFdvcmtpbmcgRHJhZnQgc3BlY2lmaWVkLCBhIGJ1bmNoIG9mCisgKiBvdGhlciBzdHVmZiBtYXkgc3RpbGwgcmVseSBvbiBpdCwgc28gc3VwcG9ydCBpcyBzdGlsbCBoZXJlIGFzCisgKiBpZiBpdCB3YXMgZGVjbGFyZWQgb24gdGhlIHJvb3Qgb2YgdGhlIFRyZWU6LSgKKyAqCisgKiBUT0RPOiByZW1vdmUgZnJvbSBsaWJyYXJ5CisgKgorICogVG8gYmUgcmVtb3ZlZCBhdCBuZXh0IGRyb3Agb2YgYmluYXJ5IGNvbXBhdGliaWxpdHkKKyAqLworCit2b2lkCit4bWxQYXJzZU5hbWVzcGFjZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFBhcnNlTmFtZXNwYWNlKCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNjYW5OYW1lOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBUcmlja2VyeTogcGFyc2UgYW4gWE1MIG5hbWUgYnV0IHdpdGhvdXQgY29uc3VtaW5nIHRoZSBpbnB1dCBmbG93CisgKiBOZWVkZWQgZm9yIHJvbGxiYWNrIGNhc2VzLiBVc2VkIG9ubHkgd2hlbiBwYXJzaW5nIGVudGl0aWVzIHJlZmVyZW5jZXMuCisgKgorICogVE9ETzogc2VlbXMgZGVwcmVjYXRlZCBub3csIG9ubHkgdXNlZCBpbiB0aGUgZGVmYXVsdCBwYXJ0IG9mCisgKiAgICAgICB4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UKKyAqCisgKiBbNF0gTmFtZUNoYXIgOjo9IExldHRlciB8IERpZ2l0IHwgJy4nIHwgJy0nIHwgJ18nIHwgJzonIHwKKyAqICAgICAgICAgICAgICAgICAgQ29tYmluaW5nQ2hhciB8IEV4dGVuZGVyCisgKgorICogWzVdIE5hbWUgOjo9IChMZXR0ZXIgfCAnXycgfCAnOicpIChOYW1lQ2hhcikqCisgKgorICogWzZdIE5hbWVzIDo6PSBOYW1lIChTIE5hbWUpKgorICoKKyAqIFJldHVybnMgdGhlIE5hbWUgcGFyc2VkIG9yIE5VTEwKKyAqLworCit4bWxDaGFyICoKK3htbFNjYW5OYW1lKHhtbFBhcnNlckN0eHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHN0YXRpYyBpbnQgZGVwcmVjYXRlZCA9IDA7CisKKyAgICBpZiAoIWRlcHJlY2F0ZWQpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sU2Nhbk5hbWUoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworLyoqCisgKiB4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2U6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogCisgKiBUT0RPOiBSZW1vdmUsIG5vdyBkZXByZWNhdGVkIC4uLiB0aGUgdGVzdCBpcyBkb25lIGRpcmVjdGx5IGluIHRoZQorICogICAgICAgY29udGVudCBwYXJzaW5nCisgKiByb3V0aW5lcy4KKyAqCisgKiBbNjddIFJlZmVyZW5jZSA6Oj0gRW50aXR5UmVmIHwgQ2hhclJlZgorICoKKyAqIFs2OF0gRW50aXR5UmVmIDo6PSAnJicgTmFtZSAnOycKKyAqCisgKiBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0KKyAqIHRoZSBOYW1lIGdpdmVuIGluIHRoZSBlbnRpdHkgcmVmZXJlbmNlIG11c3QgbWF0Y2ggdGhhdCBpbiBhbiBlbnRpdHkKKyAqIGRlY2xhcmF0aW9uLCBleGNlcHQgdGhhdCB3ZWxsLWZvcm1lZCBkb2N1bWVudHMgbmVlZCBub3QgZGVjbGFyZSBhbnkKKyAqIG9mIHRoZSBmb2xsb3dpbmcgZW50aXRpZXM6IGFtcCwgbHQsIGd0LCBhcG9zLCBxdW90LiAKKyAqCisgKiBbIFdGQzogUGFyc2VkIEVudGl0eSBdCisgKiBBbiBlbnRpdHkgcmVmZXJlbmNlIG11c3Qgbm90IGNvbnRhaW4gdGhlIG5hbWUgb2YgYW4gdW5wYXJzZWQgZW50aXR5CisgKgorICogWzY2XSBDaGFyUmVmIDo6PSAnJiMnIFswLTldKyAnOycgfAorICogICAgICAgICAgICAgICAgICAnJiN4JyBbMC05YS1mQS1GXSsgJzsnCisgKgorICogQSBQRVJlZmVyZW5jZSBtYXkgaGF2ZSBiZWVuIGRldGVjdGVkIGluIHRoZSBjdXJyZW50IGlucHV0IHN0cmVhbQorICogdGhlIGhhbmRsaW5nIGlzIGRvbmUgYWNjb3JkaW5nbHkgdG8gCisgKiAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjZW50cHJvYworICovCit2b2lkCit4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgc3RhdGljIGludCBkZXByZWNhdGVkID0gMDsKKworICAgIGlmICghZGVwcmVjYXRlZCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisKKyAgICByZXR1cm47Cit9CisKKy8qKgorICogeG1sSGFuZGxlRW50aXR5OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlbnRpdHk6ICBhbiBYTUwgZW50aXR5IHBvaW50ZXIuCisgKgorICogRGVmYXVsdCBoYW5kbGluZyBvZiBkZWZpbmVkIGVudGl0aWVzLCB3aGVuIHNob3VsZCB3ZSBkZWZpbmUgYSBuZXcgaW5wdXQKKyAqIHN0cmVhbSA/IFdoZW4gZG8gd2UganVzdCBoYW5kbGUgdGhhdCBhcyBhIHNldCBvZiBjaGFycyA/CisgKgorICogT0JTT0xFVEU6IHRvIGJlIHJlbW92ZWQgYXQgc29tZSBwb2ludC4KKyAqLworCit2b2lkCit4bWxIYW5kbGVFbnRpdHkoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgeG1sRW50aXR5UHRyIGVudGl0eSBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHN0YXRpYyBpbnQgZGVwcmVjYXRlZCA9IDA7CisKKyAgICBpZiAoIWRlcHJlY2F0ZWQpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sSGFuZGxlRW50aXR5KCkgZGVwcmVjYXRlZCBmdW5jdGlvbiByZWFjaGVkXG4iKTsKKyAgICAgICAgZGVwcmVjYXRlZCA9IDE7CisgICAgfQorfQorCisvKioKKyAqIHhtbE5ld0dsb2JhbE5zOgorICogQGRvYzogIHRoZSBkb2N1bWVudCBjYXJyeWluZyB0aGUgbmFtZXNwYWNlCisgKiBAaHJlZjogIHRoZSBVUkkgYXNzb2NpYXRlZAorICogQHByZWZpeDogIHRoZSBwcmVmaXggZm9yIHRoZSBuYW1lc3BhY2UKKyAqCisgKiBDcmVhdGlvbiBvZiBhIE5hbWVzcGFjZSwgdGhlIG9sZCB3YXkgdXNpbmcgUEkgYW5kIHdpdGhvdXQgc2NvcGluZworICogICBERVBSRUNBVEVEICEhIQorICogUmV0dXJucyBOVUxMIHRoaXMgZnVuY3Rpb25hbGl0eSBoYWQgYmVlbiByZW1vdmVkCisgKi8KK3htbE5zUHRyCit4bWxOZXdHbG9iYWxOcyh4bWxEb2NQdHIgZG9jIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogaHJlZiBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHByZWZpeCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHN0YXRpYyBpbnQgZGVwcmVjYXRlZCA9IDA7CisKKyAgICBpZiAoIWRlcHJlY2F0ZWQpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTmV3R2xvYmFsTnMoKSBkZXByZWNhdGVkIGZ1bmN0aW9uIHJlYWNoZWRcbiIpOworICAgICAgICBkZXByZWNhdGVkID0gMTsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworLyoqCisgKiB4bWxVcGdyYWRlT2xkTnM6CisgKiBAZG9jOiAgYSBkb2N1bWVudCBwb2ludGVyCisgKiAKKyAqIFVwZ3JhZGUgb2xkIHN0eWxlIE5hbWVzcGFjZXMgKFBJKSBhbmQgbW92ZSB0aGVtIHRvIHRoZSByb290IG9mIHRoZSBkb2N1bWVudC4KKyAqIERFUFJFQ0FURUQKKyAqLwordm9pZAoreG1sVXBncmFkZU9sZE5zKHhtbERvY1B0ciBkb2MgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IGRlcHJlY2F0ZWQgPSAwOworCisgICAgaWYgKCFkZXByZWNhdGVkKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFVwZ3JhZGVPbGROcygpIGRlcHJlY2F0ZWQgZnVuY3Rpb24gcmVhY2hlZFxuIik7CisgICAgICAgIGRlcHJlY2F0ZWQgPSAxOworICAgIH0KK30KKworLyoqCisgKiB4bWxFbmNvZGVFbnRpdGllczoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgc3RyaW5nCisgKiBAaW5wdXQ6ICBBIHN0cmluZyB0byBjb252ZXJ0IHRvIFhNTC4KKyAqCisgKiBUT0RPOiByZW1vdmUgeG1sRW5jb2RlRW50aXRpZXMsIG9uY2Ugd2UgYXJlIG5vdCBhZnJhaWQgb2YgYnJlYWtpbmcgYmluYXJ5CisgKiAgICAgICBjb21wYXRpYmlsaXR5CisgKgorICogUGVvcGxlIG11c3QgbWlncmF0ZSB0aGVpciBjb2RlIHRvIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50ICEKKyAqIFRoaXMgcm91dGluZSB3aWxsIGlzc3VlIGEgd2FybmluZyB3aGVuIGVuY291bnRlcmVkLgorICogCisgKiBSZXR1cm5zIE5VTEwKKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxFbmNvZGVFbnRpdGllcyh4bWxEb2NQdHIgZG9jIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogaW5wdXQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBzdGF0aWMgaW50IHdhcm5pbmcgPSAxOworCisgICAgaWYgKHdhcm5pbmcpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiRGVwcmVjYXRlZCBBUEkgeG1sRW5jb2RlRW50aXRpZXMoKSB1c2VkXG4iKTsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgY2hhbmdlIGNvZGUgdG8gdXNlIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KClcbiIpOworICAgICAgICB3YXJuaW5nID0gMDsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJT2xkIHNldCBvZiBTQVh2MSBmdW5jdGlvbnMgCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgZGVwcmVjYXRlZF92MV9tc2cgPSAwOworCisjZGVmaW5lIERFUFJFQ0FURUQobikJCQkJCQlcCisgICAgaWYgKGRlcHJlY2F0ZWRfdjFfbXNnID09IDApCQkJCQlcCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCQkJXAorCSAgIlVzZSBvZiBkZXByZWNhdGVkIFNBWHYxIGZ1bmN0aW9uICVzXG4iLCBuKTsJCVwKKyAgICBkZXByZWNhdGVkX3YxX21zZysrOworCisvKioKKyAqIGdldFB1YmxpY0lkOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICoKKyAqIFByb3ZpZGVzIHRoZSBwdWJsaWMgSUQgZS5nLiAiLS8vU0dNTFNPVVJDRS8vRFREIERFTU8vL0VOIgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRQdWJsaWNJZCgpCisgKgorICogUmV0dXJucyBhIHhtbENoYXIgKgorICovCitjb25zdCB4bWxDaGFyICoKK2dldFB1YmxpY0lkKHZvaWQgKmN0eCkKK3sKKyAgICBERVBSRUNBVEVEKCJnZXRQdWJsaWNJZCIpCisgICAgICAgIHJldHVybiAoeG1sU0FYMkdldFB1YmxpY0lkKGN0eCkpOworfQorCisvKioKKyAqIGdldFN5c3RlbUlkOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICoKKyAqIFByb3ZpZGVzIHRoZSBzeXN0ZW0gSUQsIGJhc2ljYWxseSBVUkwgb3IgZmlsZW5hbWUgZS5nLgorICogaHR0cDovL3d3dy5zZ21sc291cmNlLmNvbS9kdGRzL21lbW8uZHRkCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldFN5c3RlbUlkKCkKKyAqCisgKiBSZXR1cm5zIGEgeG1sQ2hhciAqCisgKi8KK2NvbnN0IHhtbENoYXIgKgorZ2V0U3lzdGVtSWQodm9pZCAqY3R4KQoreworICAgIERFUFJFQ0FURUQoImdldFN5c3RlbUlkIikKKyAgICAgICAgcmV0dXJuICh4bWxTQVgyR2V0U3lzdGVtSWQoY3R4KSk7Cit9CisKKy8qKgorICogZ2V0TGluZU51bWJlcjoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBQcm92aWRlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50LgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRMaW5lTnVtYmVyKCkKKyAqCisgKiBSZXR1cm5zIGFuIGludAorICovCitpbnQKK2dldExpbmVOdW1iZXIodm9pZCAqY3R4KQoreworICAgIERFUFJFQ0FURUQoImdldExpbmVOdW1iZXIiKQorICAgICAgICByZXR1cm4gKHhtbFNBWDJHZXRMaW5lTnVtYmVyKGN0eCkpOworfQorCisvKioKKyAqIGdldENvbHVtbk51bWJlcjoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBQcm92aWRlIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBjdXJyZW50IHBhcnNpbmcgcG9pbnQuCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkdldENvbHVtbk51bWJlcigpCisgKgorICogUmV0dXJucyBhbiBpbnQKKyAqLworaW50CitnZXRDb2x1bW5OdW1iZXIodm9pZCAqY3R4KQoreworICAgIERFUFJFQ0FURUQoImdldENvbHVtbk51bWJlciIpCisgICAgICAgIHJldHVybiAoeG1sU0FYMkdldENvbHVtbk51bWJlcihjdHgpKTsKK30KKworLyoqCisgKiBpc1N0YW5kYWxvbmU6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogSXMgdGhpcyBkb2N1bWVudCB0YWdnZWQgc3RhbmRhbG9uZSA/CisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMklzU3RhbmRhbG9uZSgpCisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworaW50Citpc1N0YW5kYWxvbmUodm9pZCAqY3R4KQoreworICAgIERFUFJFQ0FURUQoImlzU3RhbmRhbG9uZSIpCisgICAgICAgIHJldHVybiAoeG1sU0FYMklzU3RhbmRhbG9uZShjdHgpKTsKK30KKworLyoqCisgKiBoYXNJbnRlcm5hbFN1YnNldDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBEb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGludGVybmFsIHN1YnNldAorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldCgpCisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworaW50CitoYXNJbnRlcm5hbFN1YnNldCh2b2lkICpjdHgpCit7CisgICAgREVQUkVDQVRFRCgiaGFzSW50ZXJuYWxTdWJzZXQiKQorICAgICAgICByZXR1cm4gKHhtbFNBWDJIYXNJbnRlcm5hbFN1YnNldChjdHgpKTsKK30KKworLyoqCisgKiBoYXNFeHRlcm5hbFN1YnNldDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBEb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGV4dGVybmFsIHN1YnNldAorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldCgpCisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworaW50CitoYXNFeHRlcm5hbFN1YnNldCh2b2lkICpjdHgpCit7CisgICAgREVQUkVDQVRFRCgiaGFzRXh0ZXJuYWxTdWJzZXQiKQorICAgICAgICByZXR1cm4gKHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldChjdHgpKTsKK30KKworLyoqCisgKiBpbnRlcm5hbFN1YnNldDoKKyAqIEBjdHg6ICB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogIHRoZSByb290IGVsZW1lbnQgbmFtZQorICogQEV4dGVybmFsSUQ6ICB0aGUgZXh0ZXJuYWwgSUQKKyAqIEBTeXN0ZW1JRDogIHRoZSBTWVNURU0gSUQgKGUuZy4gZmlsZW5hbWUgb3IgVVJMKQorICoKKyAqIENhbGxiYWNrIG9uIGludGVybmFsIHN1YnNldCBkZWNsYXJhdGlvbi4KKyAqIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgySW50ZXJuYWxTdWJzZXQoKQorICovCit2b2lkCitpbnRlcm5hbFN1YnNldCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIEV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIgKiBTeXN0ZW1JRCkKK3sKKyAgICBERVBSRUNBVEVEKCJpbnRlcm5hbFN1YnNldCIpCisgICAgICAgIHhtbFNBWDJJbnRlcm5hbFN1YnNldChjdHgsIG5hbWUsIEV4dGVybmFsSUQsIFN5c3RlbUlEKTsKK30KKworLyoqCisgKiBleHRlcm5hbFN1YnNldDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgdGhlIHJvb3QgZWxlbWVudCBuYW1lCisgKiBARXh0ZXJuYWxJRDogIHRoZSBleHRlcm5hbCBJRAorICogQFN5c3RlbUlEOiAgdGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpCisgKgorICogQ2FsbGJhY2sgb24gZXh0ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uLgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFeHRlcm5hbFN1YnNldCgpCisgKi8KK3ZvaWQKK2V4dGVybmFsU3Vic2V0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogRXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqIFN5c3RlbUlEKQoreworICAgIERFUFJFQ0FURUQoImV4dGVybmFsU3Vic2V0IikKKyAgICAgICAgeG1sU0FYMkV4dGVybmFsU3Vic2V0KGN0eCwgbmFtZSwgRXh0ZXJuYWxJRCwgU3lzdGVtSUQpOworfQorCisvKioKKyAqIHJlc29sdmVFbnRpdHk6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqCisgKiBUaGUgZW50aXR5IGxvYWRlciwgdG8gY29udHJvbCB0aGUgbG9hZGluZyBvZiBleHRlcm5hbCBlbnRpdGllcywKKyAqIHRoZSBhcHBsaWNhdGlvbiBjYW4gZWl0aGVyOgorICogICAgLSBvdmVycmlkZSB0aGlzIHJlc29sdmVFbnRpdHkoKSBjYWxsYmFjayBpbiB0aGUgU0FYIGJsb2NrCisgKiAgICAtIG9yIGJldHRlciB1c2UgdGhlIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKCkgZnVuY3Rpb24gdG8KKyAqICAgICAgc2V0IHVwIGl0J3Mgb3duIGVudGl0eSByZXNvbHV0aW9uIHJvdXRpbmUKKyAqIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyUmVzb2x2ZUVudGl0eSgpCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIgaWYgaW5saW5lZCBvciBOVUxMIGZvciBET00gYmVoYXZpb3VyLgorICovCit4bWxQYXJzZXJJbnB1dFB0cgorcmVzb2x2ZUVudGl0eSh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKiBwdWJsaWNJZCwKKyAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHN5c3RlbUlkKQoreworICAgIERFUFJFQ0FURUQoInJlc29sdmVFbnRpdHkiKQorICAgICAgICByZXR1cm4gKHhtbFNBWDJSZXNvbHZlRW50aXR5KGN0eCwgcHVibGljSWQsIHN5c3RlbUlkKSk7Cit9CisKKy8qKgorICogZ2V0RW50aXR5OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQG5hbWU6IFRoZSBlbnRpdHkgbmFtZQorICoKKyAqIEdldCBhbiBlbnRpdHkgYnkgbmFtZQorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRFbnRpdHkoKQorICoKKyAqIFJldHVybnMgdGhlIHhtbEVudGl0eVB0ciBpZiBmb3VuZC4KKyAqLworeG1sRW50aXR5UHRyCitnZXRFbnRpdHkodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICogbmFtZSkKK3sKKyAgICBERVBSRUNBVEVEKCJnZXRFbnRpdHkiKQorICAgICAgICByZXR1cm4gKHhtbFNBWDJHZXRFbnRpdHkoY3R4LCBuYW1lKSk7Cit9CisKKy8qKgorICogZ2V0UGFyYW1ldGVyRW50aXR5OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQG5hbWU6IFRoZSBlbnRpdHkgbmFtZQorICoKKyAqIEdldCBhIHBhcmFtZXRlciBlbnRpdHkgYnkgbmFtZQorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkoKQorICoKKyAqIFJldHVybnMgdGhlIHhtbEVudGl0eVB0ciBpZiBmb3VuZC4KKyAqLworeG1sRW50aXR5UHRyCitnZXRQYXJhbWV0ZXJFbnRpdHkodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICogbmFtZSkKK3sKKyAgICBERVBSRUNBVEVEKCJnZXRQYXJhbWV0ZXJFbnRpdHkiKQorICAgICAgICByZXR1cm4gKHhtbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkoY3R4LCBuYW1lKSk7Cit9CisKKworLyoqCisgKiBlbnRpdHlEZWNsOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQG5hbWU6ICB0aGUgZW50aXR5IG5hbWUgCisgKiBAdHlwZTogIHRoZSBlbnRpdHkgdHlwZSAKKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICogQGNvbnRlbnQ6IHRoZSBlbnRpdHkgdmFsdWUgKHdpdGhvdXQgcHJvY2Vzc2luZykuCisgKgorICogQW4gZW50aXR5IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkVudGl0eURlY2woKQorICovCit2b2lkCitlbnRpdHlEZWNsKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGludCB0eXBlLAorICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKiBzeXN0ZW1JZCwKKyAgICAgICAgICAgeG1sQ2hhciAqIGNvbnRlbnQpCit7CisgICAgREVQUkVDQVRFRCgiZW50aXR5RGVjbCIpCisgICAgICAgIHhtbFNBWDJFbnRpdHlEZWNsKGN0eCwgbmFtZSwgdHlwZSwgcHVibGljSWQsIHN5c3RlbUlkLCBjb250ZW50KTsKK30KKworLyoqCisgKiBhdHRyaWJ1dGVEZWNsOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGVsZW06ICB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudAorICogQGZ1bGxuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lIAorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUgCisgKiBAZGVmOiAgdGhlIHR5cGUgb2YgZGVmYXVsdCB2YWx1ZQorICogQGRlZmF1bHRWYWx1ZTogdGhlIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlCisgKiBAdHJlZTogIHRoZSB0cmVlIG9mIGVudW1lcmF0ZWQgdmFsdWUgc2V0CisgKgorICogQW4gYXR0cmlidXRlIGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkF0dHJpYnV0ZURlY2woKQorICovCit2b2lkCithdHRyaWJ1dGVEZWNsKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIGVsZW0sIGNvbnN0IHhtbENoYXIgKiBmdWxsbmFtZSwKKyAgICAgICAgICAgICAgaW50IHR5cGUsIGludCBkZWYsIGNvbnN0IHhtbENoYXIgKiBkZWZhdWx0VmFsdWUsCisgICAgICAgICAgICAgIHhtbEVudW1lcmF0aW9uUHRyIHRyZWUpCit7CisgICAgREVQUkVDQVRFRCgiYXR0cmlidXRlRGVjbCIpCisgICAgICAgIHhtbFNBWDJBdHRyaWJ1dGVEZWNsKGN0eCwgZWxlbSwgZnVsbG5hbWUsIHR5cGUsIGRlZiwgZGVmYXVsdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlKTsKK30KKworLyoqCisgKiBlbGVtZW50RGVjbDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiAgdGhlIGVsZW1lbnQgbmFtZSAKKyAqIEB0eXBlOiAgdGhlIGVsZW1lbnQgdHlwZSAKKyAqIEBjb250ZW50OiB0aGUgZWxlbWVudCB2YWx1ZSB0cmVlCisgKgorICogQW4gZWxlbWVudCBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZAorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFbGVtZW50RGVjbCgpCisgKi8KK3ZvaWQKK2VsZW1lbnREZWNsKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGludCB0eXBlLAorICAgICAgICAgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCkKK3sKKyAgICBERVBSRUNBVEVEKCJlbGVtZW50RGVjbCIpCisgICAgICAgIHhtbFNBWDJFbGVtZW50RGVjbChjdHgsIG5hbWUsIHR5cGUsIGNvbnRlbnQpOworfQorCisvKioKKyAqIG5vdGF0aW9uRGVjbDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgbm90YXRpb24KKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICoKKyAqIFdoYXQgdG8gZG8gd2hlbiBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHBhcnNlZC4KKyAqIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyTm90YXRpb25EZWNsKCkKKyAqLwordm9pZAorbm90YXRpb25EZWNsKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICogc3lzdGVtSWQpCit7CisgICAgREVQUkVDQVRFRCgibm90YXRpb25EZWNsIikKKyAgICAgICAgeG1sU0FYMk5vdGF0aW9uRGVjbChjdHgsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCk7Cit9CisKKy8qKgorICogdW5wYXJzZWRFbnRpdHlEZWNsOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBlbnRpdHkKKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICogQG5vdGF0aW9uTmFtZTogdGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uCisgKgorICogV2hhdCB0byBkbyB3aGVuIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBpcyBwYXJzZWQKKyAqIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsKCkKKyAqLwordm9pZAordW5wYXJzZWRFbnRpdHlEZWNsKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICogc3lzdGVtSWQsCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5vdGF0aW9uTmFtZSkKK3sKKyAgICBERVBSRUNBVEVEKCJ1bnBhcnNlZEVudGl0eURlY2wiKQorICAgICAgICB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsKGN0eCwgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGF0aW9uTmFtZSk7Cit9CisKKy8qKgorICogc2V0RG9jdW1lbnRMb2NhdG9yOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGxvYzogQSBTQVggTG9jYXRvcgorICoKKyAqIFJlY2VpdmUgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXQgc3RhcnR1cCwgYWN0dWFsbHkgeG1sRGVmYXVsdFNBWExvY2F0b3IKKyAqIEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuCisgKiBERVBSRUNBVEVECisgKi8KK3ZvaWQKK3NldERvY3VtZW50TG9jYXRvcih2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICB4bWxTQVhMb2NhdG9yUHRyIGxvYyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIERFUFJFQ0FURUQoInNldERvY3VtZW50TG9jYXRvciIpCit9CisKKy8qKgorICogc3RhcnREb2N1bWVudDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBjYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgc3RhcnQgYmVpbmcgcHJvY2Vzc2VkLgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJTdGFydERvY3VtZW50KCkKKyAqLwordm9pZAorc3RhcnREb2N1bWVudCh2b2lkICpjdHgpCit7CisgICAvKiBkb24ndCBiZSB0b28gcGFpbmZ1bCBmb3IgZ2xhZGUgdXNlcnMgKi8KKyAgIC8qICBERVBSRUNBVEVEKCJzdGFydERvY3VtZW50IikgKi8KKyAgICAgICAgeG1sU0FYMlN0YXJ0RG9jdW1lbnQoY3R4KTsKK30KKworLyoqCisgKiBlbmREb2N1bWVudDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqCisgKiBjYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkLgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJFbmREb2N1bWVudCgpCisgKi8KK3ZvaWQKK2VuZERvY3VtZW50KHZvaWQgKmN0eCkKK3sKKyAgICBERVBSRUNBVEVEKCJlbmREb2N1bWVudCIpCisgICAgICAgIHhtbFNBWDJFbmREb2N1bWVudChjdHgpOworfQorCisvKioKKyAqIGF0dHJpYnV0ZToKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBmdWxsbmFtZTogIFRoZSBhdHRyaWJ1dGUgbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXgKKyAqIEB2YWx1ZTogIFRoZSBhdHRyaWJ1dGUgdmFsdWUKKyAqCisgKiBIYW5kbGUgYW4gYXR0cmlidXRlIHRoYXQgaGFzIGJlZW4gcmVhZCBieSB0aGUgcGFyc2VyLgorICogVGhlIGRlZmF1bHQgaGFuZGxpbmcgaXMgdG8gY29udmVydCB0aGUgYXR0cmlidXRlIGludG8gYW4KKyAqIERPTSBzdWJ0cmVlIGFuZCBwYXN0IGl0IGluIGEgbmV3IHhtbEF0dHIgZWxlbWVudCBhZGRlZCB0bworICogdGhlIGVsZW1lbnQuCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkF0dHJpYnV0ZSgpCisgKi8KK3ZvaWQKK2F0dHJpYnV0ZSh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICBjb25zdCB4bWxDaGFyICogZnVsbG5hbWUgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICBjb25zdCB4bWxDaGFyICogdmFsdWUgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBERVBSRUNBVEVEKCJhdHRyaWJ1dGUiKQorfQorCisvKioKKyAqIHN0YXJ0RWxlbWVudDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBmdWxsbmFtZTogIFRoZSBlbGVtZW50IG5hbWUsIGluY2x1ZGluZyBuYW1lc3BhY2UgcHJlZml4CisgKiBAYXR0czogIEFuIGFycmF5IG9mIG5hbWUvdmFsdWUgYXR0cmlidXRlcyBwYWlycywgTlVMTCB0ZXJtaW5hdGVkCisgKgorICogY2FsbGVkIHdoZW4gYW4gb3BlbmluZyB0YWcgaGFzIGJlZW4gcHJvY2Vzc2VkLgorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJTdGFydEVsZW1lbnQoKQorICovCit2b2lkCitzdGFydEVsZW1lbnQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICogZnVsbG5hbWUsIGNvbnN0IHhtbENoYXIgKiogYXR0cykKK3sKKyAgICB4bWxTQVgyU3RhcnRFbGVtZW50KGN0eCwgZnVsbG5hbWUsIGF0dHMpOworfQorCisvKioKKyAqIGVuZEVsZW1lbnQ6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiB0aGUgZW5kIG9mIGFuIGVsZW1lbnQgaGFzIGJlZW4gZGV0ZWN0ZWQuCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkVuZEVsZW1lbnQoKQorICovCit2b2lkCitlbmRFbGVtZW50KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIG5hbWUgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBERVBSRUNBVEVEKCJlbmRFbGVtZW50IikKKyAgICAgICAgeG1sU0FYMkVuZEVsZW1lbnQoY3R4LCBuYW1lKTsKK30KKworLyoqCisgKiByZWZlcmVuY2U6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogIFRoZSBlbnRpdHkgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIGFuIGVudGl0eSByZWZlcmVuY2UgaXMgZGV0ZWN0ZWQuIAorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJSZWZlcmVuY2UoKQorICovCit2b2lkCityZWZlcmVuY2Uodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICogbmFtZSkKK3sKKyAgICBERVBSRUNBVEVEKCJyZWZlcmVuY2UiKQorICAgICAgICB4bWxTQVgyUmVmZXJlbmNlKGN0eCwgbmFtZSk7Cit9CisKKy8qKgorICogY2hhcmFjdGVyczoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIHJlY2VpdmluZyBzb21lIGNoYXJzIGZyb20gdGhlIHBhcnNlci4KKyAqIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyQ2hhcmFjdGVycygpCisgKi8KK3ZvaWQKK2NoYXJhY3RlcnModm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICogY2gsIGludCBsZW4pCit7CisgICAgREVQUkVDQVRFRCgiY2hhcmFjdGVycyIpCisgICAgICAgIHhtbFNBWDJDaGFyYWN0ZXJzKGN0eCwgY2gsIGxlbik7Cit9CisKKy8qKgorICogaWdub3JhYmxlV2hpdGVzcGFjZToKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIHJlY2VpdmluZyBzb21lIGlnbm9yYWJsZSB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBwYXJzZXIuCisgKiBVTlVTRUQ6IGJ5IGRlZmF1bHQgdGhlIERPTSBidWlsZGluZyB3aWxsIHVzZSBjaGFyYWN0ZXJzCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UoKQorICovCit2b2lkCitpZ25vcmFibGVXaGl0ZXNwYWNlKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogY2ggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIERFUFJFQ0FURUQoImlnbm9yYWJsZVdoaXRlc3BhY2UiKQorfQorCisvKioKKyAqIHByb2Nlc3NpbmdJbnN0cnVjdGlvbjoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEB0YXJnZXQ6ICB0aGUgdGFyZ2V0IG5hbWUKKyAqIEBkYXRhOiB0aGUgUEkgZGF0YSdzCisgKgorICogQSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGhhcyBiZWVuIHBhcnNlZC4KKyAqIERFUFJFQ0FURUQ6IHVzZSB4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkKKyAqLwordm9pZAorcHJvY2Vzc2luZ0luc3RydWN0aW9uKHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogZGF0YSkKK3sKKyAgICBERVBSRUNBVEVEKCJwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iKQorICAgICAgICB4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uKGN0eCwgdGFyZ2V0LCBkYXRhKTsKK30KKworLyoqCisgKiBnbG9iYWxOYW1lc3BhY2U6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAaHJlZjogIHRoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCBVUk4KKyAqIEBwcmVmaXg6IHRoZSBuYW1lc3BhY2UgcHJlZml4CisgKgorICogQW4gb2xkIGdsb2JhbCBuYW1lc3BhY2UgaGFzIGJlZW4gcGFyc2VkLgorICogREVQUkVDQVRFRAorICovCit2b2lkCitnbG9iYWxOYW1lc3BhY2Uodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGhyZWYgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgREVQUkVDQVRFRCgiZ2xvYmFsTmFtZXNwYWNlIikKK30KKworLyoqCisgKiBzZXROYW1lc3BhY2U6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZTogIHRoZSBuYW1lc3BhY2UgcHJlZml4CisgKgorICogU2V0IHRoZSBjdXJyZW50IGVsZW1lbnQgbmFtZXNwYWNlLgorICogREVQUkVDQVRFRAorICovCisKK3ZvaWQKK3NldE5hbWVzcGFjZSh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIERFUFJFQ0FURUQoInNldE5hbWVzcGFjZSIpCit9CisKKy8qKgorICogZ2V0TmFtZXNwYWNlOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICoKKyAqIEdldCB0aGUgY3VycmVudCBlbGVtZW50IG5hbWVzcGFjZS4KKyAqIERFUFJFQ0FURUQKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxOc1B0ciBvciBOVUxMIGlmIG5vbmUKKyAqLworCit4bWxOc1B0cgorZ2V0TmFtZXNwYWNlKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIERFUFJFQ0FURUQoImdldE5hbWVzcGFjZSIpCisgICAgICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogY2hlY2tOYW1lc3BhY2U6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbmFtZXNwYWNlOiB0aGUgbmFtZXNwYWNlIHRvIGNoZWNrIGFnYWluc3QKKyAqCisgKiBDaGVjayB0aGF0IHRoZSBjdXJyZW50IGVsZW1lbnQgbmFtZXNwYWNlIGlzIHRoZSBzYW1lIGFzIHRoZQorICogb25lIHJlYWQgdXBvbiBwYXJzaW5nLgorICogREVQUkVDQVRFRAorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KKworaW50CitjaGVja05hbWVzcGFjZSh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgIHhtbENoYXIgKiBuYW1lc3BhY2UgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBERVBSRUNBVEVEKCJjaGVja05hbWVzcGFjZSIpCisgICAgICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogbmFtZXNwYWNlRGVjbDoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBocmVmOiAgdGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIFVSTgorICogQHByZWZpeDogdGhlIG5hbWVzcGFjZSBwcmVmaXgKKyAqCisgKiBBIG5hbWVzcGFjZSBoYXMgYmVlbiBwYXJzZWQuCisgKiBERVBSRUNBVEVECisgKi8KK3ZvaWQKK25hbWVzcGFjZURlY2wodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBocmVmIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwcmVmaXggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBERVBSRUNBVEVEKCJuYW1lc3BhY2VEZWNsIikKK30KKworLyoqCisgKiBjb21tZW50OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQHZhbHVlOiAgdGhlIGNvbW1lbnQgY29udGVudAorICoKKyAqIEEgY29tbWVudCBoYXMgYmVlbiBwYXJzZWQuCisgKiBERVBSRUNBVEVEOiB1c2UgeG1sU0FYMkNvbW1lbnQoKQorICovCit2b2lkCitjb21tZW50KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIHZhbHVlKQoreworICAgIERFUFJFQ0FURUQoImNvbW1lbnQiKQorICAgICAgICB4bWxTQVgyQ29tbWVudChjdHgsIHZhbHVlKTsKK30KKworLyoqCisgKiBjZGF0YUJsb2NrOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQHZhbHVlOiAgVGhlIHBjZGF0YSBjb250ZW50CisgKiBAbGVuOiAgdGhlIGJsb2NrIGxlbmd0aAorICoKKyAqIGNhbGxlZCB3aGVuIGEgcGNkYXRhIGJsb2NrIGhhcyBiZWVuIHBhcnNlZAorICogREVQUkVDQVRFRDogdXNlIHhtbFNBWDJDRGF0YUJsb2NrKCkKKyAqLwordm9pZAorY2RhdGFCbG9jayh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKiB2YWx1ZSwgaW50IGxlbikKK3sKKyAgICBERVBSRUNBVEVEKCJjZGF0YUJsb2NrIikKKyAgICAgICAgeG1sU0FYMkNEYXRhQmxvY2soY3R4LCB2YWx1ZSwgbGVuKTsKK30KKyNkZWZpbmUgYm90dG9tX2xlZ2FjeQorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9saWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjLmluIGIvbGlieG1sMi0yLjcuNy9saWJ4bWwtMi4wLXVuaW5zdGFsbGVkLnBjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNGM4MzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2xpYnhtbC0yLjAtdW5pbnN0YWxsZWQucGMuaW4KQEAgLTAsMCArMSwxMiBAQAorcHJlZml4PQorZXhlY19wcmVmaXg9CitsaWJkaXI9JHtwY2ZpbGVkaXJ9CitpbmNsdWRlZGlyPSR7cGNmaWxlZGlyfS9pbmNsdWRlCisKKworTmFtZTogbGliWE1MCitWZXJzaW9uOiBAVkVSU0lPTkAKK0Rlc2NyaXB0aW9uOiBsaWJYTUwgbGlicmFyeSB2ZXJzaW9uMi4KK1JlcXVpcmVzOgorTGliczogLUwke2xpYmRpcn0gLWx4bWwyIEBUSFJFQURfTElCU0AgQFpfTElCU0AgQElDT05WX0xJQlNAIEBNX0xJQlNAIEBMSUJTQAorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0gQFhNTF9JTkNMVURFRElSQCBAWE1MX0NGTEFHU0AKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbGlieG1sLTIuMC5wYy5pbiBiL2xpYnhtbDItMi43LjcvbGlieG1sLTIuMC5wYy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWExYjhjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9saWJ4bWwtMi4wLnBjLmluCkBAIC0wLDAgKzEsMTMgQEAKK3ByZWZpeD1AcHJlZml4QAorZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAorbGliZGlyPUBsaWJkaXJACitpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAorbW9kdWxlcz1AV0lUSF9NT0RVTEVTQAorCitOYW1lOiBsaWJYTUwKK1ZlcnNpb246IEBWRVJTSU9OQAorRGVzY3JpcHRpb246IGxpYlhNTCBsaWJyYXJ5IHZlcnNpb24yLgorUmVxdWlyZXM6CitMaWJzOiAtTCR7bGliZGlyfSAtbHhtbDIKK0xpYnMucHJpdmF0ZTogQFRIUkVBRF9MSUJTQCBAWl9MSUJTQCBASUNPTlZfTElCU0AgQE1fTElCU0AgQFdJTjMyX0VYVFJBX0xJQkFEREAgQExJQlNACitDZmxhZ3M6IEBYTUxfSU5DTFVERURJUkAgQFhNTF9DRkxBR1NACmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2xpYnhtbC4zIGIvbGlieG1sMi0yLjcuNy9saWJ4bWwuMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGQzZWVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9saWJ4bWwuMwpAQCAtMCwwICsxLDcxIEBACisuVEggbGlieG1sIDMgIjEyIEFwcmlsIDIwMDAiCisuU0ggTkFNRQorbGlieG1sIFwtIGxpYnJhcnkgdXNlZCB0byBwYXJzZSBYTUwgZmlsZXMKKy5TSCBERVNDUklQVElPTgorVGhlCisuSSAgbGlieG1sCitsaWJyYXJ5IGlzIHVzZWQgdG8gcGFyc2UgWE1MIGZpbGVzLiAKK0l0cyBpbnRlcm5hbCBkb2N1bWVudCByZXBlc2VudGF0aW9uIGlzIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRoZSAKKy5JIERPTSAKKyhEb2N1bWVudCBPYmplY3QgTW9kZWwpIGludGVyZmFjZSwKK2FuIEFQSSBmb3IgYWNjZXNzaW5nIFhNTCBvciBIVE1MIHN0cnVjdHVyZWQgZG9jdW1lbnRzLgorLkxQCitUaGUKKy5JIGxpYnhtbAorbGlicmFyeSBhbHNvIGhhcyBhIAorLklSIFNBWCAtbGlrZQoraW50ZXJmYWNlLCAKK3doaWNoIGlzIGRlc2lnbmVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCAKKy5JUiBleHBhdCAoMSkuCitOT1RFOgorLklSIFNBWCAsIAordGhlIFNpbXBsZSBBUEkgZm9yIFhNTCwKK2lzIGEgc3RhbmRhcmQgaW50ZXJmYWNlIGZvciBldmVudC1iYXNlZCBYTUwgcGFyc2luZywKK2RldmVsb3BlZCBjb2xsYWJvcmF0aXZlbHkgYnkgdGhlIG1lbWJlcnMgb2YgdGhlIFhNTC1ERVYgbWFpbGluZyBsaXN0LCAKK2N1cnJlbnRseSBob3N0ZWQgYnkgT0FTSVMuCitUaGUKKy5JIGV4cGF0CitsaWJyYXJ5IGlzIGEgWE1MIDEuMCBwYXJzZXIgd3JpdHRlbiBpbiBDLAord2hpY2ggYWltcyB0byBiZSBmdWxseSBjb25mb3JtaW5nLiAKK0l0IGlzIGN1cnJlbnRseSBub3QgYSB2YWxpZGF0aW5nIFhNTCBwcm9jZXNzb3IuCisuTFAKK1RoZQorLkkgbGlieG1sIAorbGlicmFyeSBub3cgaW5jbHVkZXMgYSBuZWFybHkgY29tcGxldGUgCisuSSBYUGF0aCAKK2ltcGxlbWVudGF0aW9uLiAKK1RoZQorLkkgWFBhdGgKKyhYTUwgUGF0aCBMYW5ndWFnZSkgaXMgYSBsYW5ndWFnZSBmb3IgYWRkcmVzc2luZyBwYXJ0cyBvZiBhbiAKK1hNTCBkb2N1bWVudCwKK2Rlc2lnbmVkIHRvIGJlIHVzZWQgYnkgYm90aCAKKy5JIFhTTFQgCithbmQgCisuSVIgWFBvaW50ZXIgLgorLkxQCitUaGUKKy5JIGxpYnhtbCAKK2xpYnJhcnkgZXhwb3J0cyBQdXNoIGFuZCBQdWxsIHR5cGUgcGFyc2VyIGludGVyZmFjZXMgZm9yIGJvdGggWE1MIGFuZCAKKy5JUiBodG1sIC4gCisuU0ggRklMRVMKKy5UUCAyLjJpCisuQiAvZGVwb3QvbGliL2xpYnhtbF8yLjAuMC9saWJ4bWwuYQorc3RhdGljIGxpYnJhcnkKKy5UUAorLkIgL2RlcG90L2xpYi9saWJ4bWxfMi4wLjAvbGlieG1sLnNvCitzaGFyZWQgbGlicmFyeQorLlRQCisuQiAvZGVwb3QvcGFja2FnZS9saWJ4bWxfMi4wLjAvYmluL3htbGxpbnQKK2JpbmFyeSBhcHBsaWNhdGlvbiBmb3IgcGFyc2luZyBYTUwgZmlsZXMKKy5TSCBBVVRIT1JTCitEYW5pZWwgVmVpbGxhcmQgKGRhbmllbEB2ZWlsbGFyZC5jb20pLgorUmVkIEhhdCBJbmMuCitNYW51YWwgcGFnZSBieSBaaXlpbmcgU2hlcndpbiAoc2hlcndpbkBubG0ubmloLmdvdiksCitMaXN0ZXIgSGlsbCBOYXRpb25hbCBDZW50ZXIgZm9yIEJpb21lZGljYWwgQ29tbXVuaWNhdGlvbnMsCitVLlMuIE5hdGlvbmFsIExpYnJhcnkgb2YgTWVkaWNpbmUuCisuU0ggU0VFIEFMU08KKy5JUiB4bWxsaW50ICgxKSwKKy5JUiBsaWJ4c2x0ICgzKSwKKy5JUiBsaWJleHNsdCAoMyksCisuSVIgeHNsdHByb2MgKDEpCisuXCIgZW5kIG9mIG1hbnVhbCBwYWdlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2xpYnhtbC5oIGIvbGlieG1sMi0yLjcuNy9saWJ4bWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjU2YWMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9saWJ4bWwuaApAQCAtMCwwICsxLDk2IEBACisvKgorICogbGlieG1sLmg6IGludGVybmFsIGhlYWRlciBvbmx5IHVzZWQgZHVyaW5nIHRoZSBjb21waWxhdGlvbiBvZiBsaWJ4bWwKKyAqCisgKiBTZWUgQ09QWVJJR0hUIGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUKKyAqCisgKiBBdXRob3I6IGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKyAqLworCisjaWZuZGVmIF9fWE1MX0xJQlhNTF9IX18KKyNkZWZpbmUgX19YTUxfTElCWE1MX0hfXworCisjaWZuZGVmIE5PX0xBUkdFRklMRV9TT1VSQ0UKKyNpZm5kZWYgX0xBUkdFRklMRV9TT1VSQ0UKKyNkZWZpbmUgX0xBUkdFRklMRV9TT1VSQ0UKKyNlbmRpZgorI2lmbmRlZiBfRklMRV9PRkZTRVRfQklUUworI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQobWFjaW50b3NoKQorI2luY2x1ZGUgImNvbmZpZy1tYWMuaCIKKyNlbGlmIGRlZmluZWQoX1dJTjMyX1dDRSkKKy8qCisgKiBXaW5kb3dzIENFIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucworICogVGhpcyBpcyBuZWVkZWQgdG8gY29tcGlsZSBsaWJ4bWwyIGZvciBXaW5kb3dzIENFLgorICogQXQgbGVhc3QgSSB0ZXN0ZWQgaXQgd2l0aCBXaW5DRSA1LjAgZm9yIEVtdWxhdG9yIGFuZCBXaW5DRSA0LjIvU0g0IHRhcmdldAorICovCisjaW5jbHVkZSA8d2luMzJjb25maWcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2Vsc2UKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTHlueF9fKQorI2luY2x1ZGUgPHN0ZGlvLmg+IC8qIHB1bGwgZGVmaW5pdGlvbiBvZiBzaXplX3QgKi8KKyNpbmNsdWRlIDx2YXJhcmdzLmg+CitpbnQgc25wcmludGYoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKTsKK2ludCB2ZnByaW50ZihGSUxFICosIGNvbnN0IGNoYXIgKiwgdmFfbGlzdCk7CisjZW5kaWYKKworI2lmbmRlZiBXSVRIX1RSSU8KKyNpbmNsdWRlIDxzdGRpby5oPgorI2Vsc2UKKy8qKgorICogVFJJT19SRVBMQUNFX1NURElPOgorICoKKyAqIFRoaXMgbWFjcm8gaXMgZGVmaW5lZCBpZiB0ZWggdHJpbyBzdHJpbmcgZm9ybWF0dGluZyBmdW5jdGlvbnMgYXJlIHRvCisgKiBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgc3RkaW8gb25lcy4KKyAqLworI2RlZmluZSBUUklPX1JFUExBQ0VfU1RESU8KKyNpbmNsdWRlICJ0cmlvLmgiCisjZW5kaWYKKworLyoKKyAqIEludGVybmFsIHZhcmlhYmxlIGluZGljYXRpbmcgaWYgYSBjYWxsYmFjayBoYXMgYmVlbiByZWdpc3RlcmVkIGZvcgorICogbm9kZSBjcmVhdGlvbi9kZXN0cnVjdGlvbi4gSXQgYXZvaWRzIHNwZW5kaW5nIGEgbG90IG9mIHRpbWUgaW4gbG9ja2luZworICogZnVuY3Rpb24gd2hpbGUgY2hlY2tpbmcgaWYgdGhlIGNhbGxiYWNrIGV4aXN0cy4KKyAqLworZXh0ZXJuIGludCBfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzOworLyoKKyAqIGludGVybmFsIGVycm9yIHJlcG9ydGluZyByb3V0aW5lcywgc2hhcmVkIGJ1dCBub3QgcGFydG9mIHRoZSBBUEkuCisgKi8KK3ZvaWQgX194bWxJT0VycihpbnQgZG9tYWluLCBpbnQgY29kZSwgY29uc3QgY2hhciAqZXh0cmEpOwordm9pZCBfX3htbExvYWRlckVycih2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgY2hhciAqZmlsZW5hbWUpOworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKy8qCisgKiBpbnRlcm5hbCBmdW5jdGlvbiBvZiBIVE1MIHBhcnNlciBuZWVkZWQgZm9yIHhtbFBhcnNlSW5Ob2RlQ29udGV4dAorICogYnV0IG5vdCBwYXJ0IG9mIHRoZSBBUEkKKyAqLwordm9pZCBfX2h0bWxQYXJzZUNvbnRlbnQodm9pZCAqY3R4KTsKKyNlbmRpZgorCisvKgorICogaW50ZXJuYWwgZ2xvYmFsIGluaXRpYWxpemF0aW9uIGNyaXRpY2FsIHNlY3Rpb24gcm91dGluZXMuCisgKi8KK3ZvaWQgX194bWxHbG9iYWxJbml0TXV0ZXhMb2NrKHZvaWQpOwordm9pZCBfX3htbEdsb2JhbEluaXRNdXRleFVubG9jayh2b2lkKTsKK3ZvaWQgX194bWxHbG9iYWxJbml0TXV0ZXhEZXN0cm95KHZvaWQpOworCisjaWZkZWYgSU5fTElCWE1MCisjaWZkZWYgX19HTlVDX18KKyNpZmRlZiBQSUMKKyNpZmRlZiBsaW51eAorI2lmIChfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDMpIHx8IChfX0dOVUNfXyA+IDMpCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKyNpZm5kZWYgUElDCisjICBkZWZpbmUgTElCWE1MX1NUQVRJQworI2VuZGlmCisjZW5kaWYgLyogISBfX1hNTF9MSUJYTUxfSF9fICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2xpYnhtbC5tNCBiL2xpYnhtbDItMi43LjcvbGlieG1sLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4Y2Q4MjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2xpYnhtbC5tNApAQCAtMCwwICsxLDE4OCBAQAorIyBDb25maWd1cmUgcGF0aHMgZm9yIExJQlhNTDIKKyMgTWlrZSBIb21tZXkgMjAwNC0wNi0xOQorIyB1c2UgQ1BQRkxBR1MgaW5zdGVhZCBvZiBDRkxBR1MKKyMgVG9zaGlvIEt1cmF0b21pIDIwMDEtMDQtMjEKKyMgQWRhcHRlZCBmcm9tOgorIyBDb25maWd1cmUgcGF0aHMgZm9yIEdMSUIKKyMgT3dlbiBUYXlsb3IgICAgIDk3LTExLTMKKworZG5sIEFNX1BBVEhfWE1MMihbTUlOSU1VTS1WRVJTSU9OLCBbQUNUSU9OLUlGLUZPVU5EIFssIEFDVElPTi1JRi1OT1QtRk9VTkRdXV0pCitkbmwgVGVzdCBmb3IgWE1MLCBhbmQgZGVmaW5lIFhNTF9DUFBGTEFHUyBhbmQgWE1MX0xJQlMKK2RubAorQUNfREVGVU4oW0FNX1BBVEhfWE1MMl0sWyAKK0FDX0FSR19XSVRIKHhtbC1wcmVmaXgsCisgICAgICAgICAgICBbICAtLXdpdGgteG1sLXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgbGlieG1sIGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKKyAgICAgICAgICAgIHhtbF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIsIHhtbF9jb25maWdfcHJlZml4PSIiKQorQUNfQVJHX1dJVEgoeG1sLWV4ZWMtcHJlZml4LAorICAgICAgICAgICAgWyAgLS13aXRoLXhtbC1leGVjLXByZWZpeD1QRlggRXhlYyBwcmVmaXggd2hlcmUgbGlieG1sIGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKKyAgICAgICAgICAgIHhtbF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgeG1sX2NvbmZpZ19leGVjX3ByZWZpeD0iIikKK0FDX0FSR19FTkFCTEUoeG1sdGVzdCwKKyAgICAgICAgICAgICAgWyAgLS1kaXNhYmxlLXhtbHRlc3QgICAgICAgRG8gbm90IHRyeSB0byBjb21waWxlIGFuZCBydW4gYSB0ZXN0IExJQlhNTCBwcm9ncmFtXSwsCisgICAgICAgICAgICAgIGVuYWJsZV94bWx0ZXN0PXllcykKKworICBpZiB0ZXN0IHgkeG1sX2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgorICAgICB4bWxfY29uZmlnX2FyZ3M9IiR4bWxfY29uZmlnX2FyZ3MiCisgICAgIGlmIHRlc3QgeCR7WE1MMl9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorICAgICAgICBYTUwyX0NPTkZJRz0keG1sX2NvbmZpZ19leGVjX3ByZWZpeC9iaW4veG1sMi1jb25maWcKKyAgICAgZmkKKyAgZmkKKyAgaWYgdGVzdCB4JHhtbF9jb25maWdfcHJlZml4ICE9IHggOyB0aGVuCisgICAgIHhtbF9jb25maWdfYXJncz0iJHhtbF9jb25maWdfYXJncyAtLXByZWZpeD0keG1sX2NvbmZpZ19wcmVmaXgiCisgICAgIGlmIHRlc3QgeCR7WE1MMl9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorICAgICAgICBYTUwyX0NPTkZJRz0keG1sX2NvbmZpZ19wcmVmaXgvYmluL3htbDItY29uZmlnCisgICAgIGZpCisgIGZpCisKKyAgQUNfUEFUSF9QUk9HKFhNTDJfQ09ORklHLCB4bWwyLWNvbmZpZywgbm8pCisgIG1pbl94bWxfdmVyc2lvbj1pZmVsc2UoWyQxXSwgLDIuMC4wLFskMV0pCisgIEFDX01TR19DSEVDS0lORyhmb3IgbGlieG1sIC0gdmVyc2lvbiA+PSAkbWluX3htbF92ZXJzaW9uKQorICBub194bWw9IiIKKyAgaWYgdGVzdCAiJFhNTDJfQ09ORklHIiA9ICJubyIgOyB0aGVuCisgICAgbm9feG1sPXllcworICBlbHNlCisgICAgWE1MX0NQUEZMQUdTPWAkWE1MMl9DT05GSUcgJHhtbF9jb25maWdfYXJncyAtLWNmbGFnc2AKKyAgICBYTUxfTElCUz1gJFhNTDJfQ09ORklHICR4bWxfY29uZmlnX2FyZ3MgLS1saWJzYAorICAgIHhtbF9jb25maWdfbWFqb3JfdmVyc2lvbj1gJFhNTDJfQ09ORklHICR4bWxfY29uZmlnX2FyZ3MgLS12ZXJzaW9uIHwgXAorICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKKyAgICB4bWxfY29uZmlnX21pbm9yX3ZlcnNpb249YCRYTUwyX0NPTkZJRyAkeG1sX2NvbmZpZ19hcmdzIC0tdmVyc2lvbiB8IFwKKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpL1wyLydgCisgICAgeG1sX2NvbmZpZ19taWNyb192ZXJzaW9uPWAkWE1MMl9DT05GSUcgJHhtbF9jb25maWdfYXJncyAtLXZlcnNpb24gfCBcCisgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMy8nYAorICAgIGlmIHRlc3QgIngkZW5hYmxlX3htbHRlc3QiID0gInh5ZXMiIDsgdGhlbgorICAgICAgYWNfc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorICAgICAgYWNfc2F2ZV9MSUJTPSIkTElCUyIKKyAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgJFhNTF9DUFBGTEFHUyIKKyAgICAgIExJQlM9IiRYTUxfTElCUyAkTElCUyIKK2RubAorZG5sIE5vdyBjaGVjayBpZiB0aGUgaW5zdGFsbGVkIGxpYnhtbCBpcyBzdWZmaWNpZW50bHkgbmV3LgorZG5sIChBbHNvIHNhbml0eSBjaGVja3MgdGhlIHJlc3VsdHMgb2YgeG1sMi1jb25maWcgdG8gc29tZSBleHRlbnQpCitkbmwKKyAgICAgIHJtIC1mIGNvbmYueG1sdGVzdAorICAgICAgQUNfVFJZX1JVTihbCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorCitpbnQgCittYWluKCkKK3sKKyAgaW50IHhtbF9tYWpvcl92ZXJzaW9uLCB4bWxfbWlub3JfdmVyc2lvbiwgeG1sX21pY3JvX3ZlcnNpb247CisgIGludCBtYWpvciwgbWlub3IsIG1pY3JvOworICBjaGFyICp0bXBfdmVyc2lvbjsKKworICBzeXN0ZW0oInRvdWNoIGNvbmYueG1sdGVzdCIpOworCisgIC8qIENhcHR1cmUgeG1sMi1jb25maWcgb3V0cHV0IHZpYSBhdXRvY29uZi9jb25maWd1cmUgdmFyaWFibGVzICovCisgIC8qIEhQL1VYIDkgKCVAIyEpIHdyaXRlcyB0byBzc2NhbmYgc3RyaW5ncyAqLworICB0bXBfdmVyc2lvbiA9IChjaGFyICopc3RyZHVwKCIkbWluX3htbF92ZXJzaW9uIik7CisgIGlmIChzc2NhbmYodG1wX3ZlcnNpb24sICIlZC4lZC4lZCIsICZtYWpvciwgJm1pbm9yLCAmbWljcm8pICE9IDMpIHsKKyAgICAgcHJpbnRmKCIlcywgYmFkIHZlcnNpb24gc3RyaW5nIGZyb20geG1sMi1jb25maWdcbiIsICIkbWluX3htbF92ZXJzaW9uIik7CisgICAgIGV4aXQoMSk7CisgICB9CisgICBmcmVlKHRtcF92ZXJzaW9uKTsKKworICAgLyogQ2FwdHVyZSB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBoZWFkZXIgZmlsZXMgKi8KKyAgIHRtcF92ZXJzaW9uID0gKGNoYXIgKilzdHJkdXAoTElCWE1MX0RPVFRFRF9WRVJTSU9OKTsKKyAgIGlmIChzc2NhbmYodG1wX3ZlcnNpb24sICIlZC4lZC4lZCIsICZ4bWxfbWFqb3JfdmVyc2lvbiwgJnhtbF9taW5vcl92ZXJzaW9uLCAmeG1sX21pY3JvX3ZlcnNpb24pICE9IDMpIHsKKyAgICAgcHJpbnRmKCIlcywgYmFkIHZlcnNpb24gc3RyaW5nIGZyb20gbGlieG1sIGluY2x1ZGVzXG4iLCAiTElCWE1MX0RPVFRFRF9WRVJTSU9OIik7CisgICAgIGV4aXQoMSk7CisgICB9CisgICBmcmVlKHRtcF92ZXJzaW9uKTsKKworIC8qIENvbXBhcmUgeG1sMi1jb25maWcgb3V0cHV0IHRvIHRoZSBsaWJ4bWwgaGVhZGVycyAqLworICBpZiAoKHhtbF9tYWpvcl92ZXJzaW9uICE9ICR4bWxfY29uZmlnX21ham9yX3ZlcnNpb24pIHx8CisgICAgICAoeG1sX21pbm9yX3ZlcnNpb24gIT0gJHhtbF9jb25maWdfbWlub3JfdmVyc2lvbikgfHwKKyAgICAgICh4bWxfbWljcm9fdmVyc2lvbiAhPSAkeG1sX2NvbmZpZ19taWNyb192ZXJzaW9uKSkKKyAgICB7CisgICAgICBwcmludGYoIioqKiBsaWJ4bWwgaGVhZGVyIGZpbGVzICh2ZXJzaW9uICVkLiVkLiVkKSBkbyBub3QgbWF0Y2hcbiIsCisgICAgICAgICB4bWxfbWFqb3JfdmVyc2lvbiwgeG1sX21pbm9yX3ZlcnNpb24sIHhtbF9taWNyb192ZXJzaW9uKTsKKyAgICAgIHByaW50ZigiKioqIHhtbDItY29uZmlnICh2ZXJzaW9uICVkLiVkLiVkKVxuIiwKKyAgICAgICAgICR4bWxfY29uZmlnX21ham9yX3ZlcnNpb24sICR4bWxfY29uZmlnX21pbm9yX3ZlcnNpb24sICR4bWxfY29uZmlnX21pY3JvX3ZlcnNpb24pOworICAgICAgcmV0dXJuIDE7CisgICAgfSAKKy8qIENvbXBhcmUgdGhlIGhlYWRlcnMgdG8gdGhlIGxpYnJhcnkgdG8gbWFrZSBzdXJlIHdlIG1hdGNoICovCisgIC8qIExlc3MgdGhhbiBpZGVhbCAtLSBkb2Vzbid0IHByb3ZpZGUgdXMgd2l0aCByZXR1cm4gdmFsdWUgZmVlZGJhY2ssIAorICAgKiBvbmx5IGV4aXRzIGlmIHRoZXJlJ3MgYSBzZXJpb3VzIG1pc21hdGNoIGJldHdlZW4gaGVhZGVyIGFuZCBsaWJyYXJ5LgorICAgKi8KKyAgICBMSUJYTUxfVEVTVF9WRVJTSU9OOworCisgICAgLyogVGVzdCB0aGF0IHRoZSBsaWJyYXJ5IGlzIGdyZWF0ZXIgdGhhbiBvdXIgbWluaW11bSB2ZXJzaW9uICovCisgICAgaWYgKCh4bWxfbWFqb3JfdmVyc2lvbiA+IG1ham9yKSB8fAorICAgICAgICAoKHhtbF9tYWpvcl92ZXJzaW9uID09IG1ham9yKSAmJiAoeG1sX21pbm9yX3ZlcnNpb24gPiBtaW5vcikpIHx8CisgICAgICAgICgoeG1sX21ham9yX3ZlcnNpb24gPT0gbWFqb3IpICYmICh4bWxfbWlub3JfdmVyc2lvbiA9PSBtaW5vcikgJiYKKyAgICAgICAgKHhtbF9taWNyb192ZXJzaW9uID49IG1pY3JvKSkpCisgICAgICB7CisgICAgICAgIHJldHVybiAwOworICAgICAgIH0KKyAgICAgZWxzZQorICAgICAgeworICAgICAgICBwcmludGYoIlxuKioqIEFuIG9sZCB2ZXJzaW9uIG9mIGxpYnhtbCAoJWQuJWQuJWQpIHdhcyBmb3VuZC5cbiIsCisgICAgICAgICAgICAgICB4bWxfbWFqb3JfdmVyc2lvbiwgeG1sX21pbm9yX3ZlcnNpb24sIHhtbF9taWNyb192ZXJzaW9uKTsKKyAgICAgICAgcHJpbnRmKCIqKiogWW91IG5lZWQgYSB2ZXJzaW9uIG9mIGxpYnhtbCBuZXdlciB0aGFuICVkLiVkLiVkLiBUaGUgbGF0ZXN0IHZlcnNpb24gb2ZcbiIsCisgICAgICAgICAgIG1ham9yLCBtaW5vciwgbWljcm8pOworICAgICAgICBwcmludGYoIioqKiBsaWJ4bWwgaXMgYWx3YXlzIGF2YWlsYWJsZSBmcm9tIGZ0cDovL2Z0cC54bWxzb2Z0Lm9yZy5cbiIpOworICAgICAgICBwcmludGYoIioqKlxuIik7CisgICAgICAgIHByaW50ZigiKioqIElmIHlvdSBoYXZlIGFscmVhZHkgaW5zdGFsbGVkIGEgc3VmZmljaWVudGx5IG5ldyB2ZXJzaW9uLCB0aGlzIGVycm9yXG4iKTsKKyAgICAgICAgcHJpbnRmKCIqKiogcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgd3JvbmcgY29weSBvZiB0aGUgeG1sMi1jb25maWcgc2hlbGwgc2NyaXB0IGlzXG4iKTsKKyAgICAgICAgcHJpbnRmKCIqKiogYmVpbmcgZm91bmQuIFRoZSBlYXNpZXN0IHdheSB0byBmaXggdGhpcyBpcyB0byByZW1vdmUgdGhlIG9sZCB2ZXJzaW9uXG4iKTsKKyAgICAgICAgcHJpbnRmKCIqKiogb2YgTElCWE1MLCBidXQgeW91IGNhbiBhbHNvIHNldCB0aGUgWE1MMl9DT05GSUcgZW52aXJvbm1lbnQgdG8gcG9pbnQgdG8gdGhlXG4iKTsKKyAgICAgICAgcHJpbnRmKCIqKiogY29ycmVjdCBjb3B5IG9mIHhtbDItY29uZmlnLiAoSW4gdGhpcyBjYXNlLCB5b3Ugd2lsbCBoYXZlIHRvXG4iKTsKKyAgICAgICAgcHJpbnRmKCIqKiogbW9kaWZ5IHlvdXIgTERfTElCUkFSWV9QQVRIIGVudmlyb21lbnQgdmFyaWFibGUsIG9yIGVkaXQgL2V0Yy9sZC5zby5jb25mXG4iKTsKKyAgICAgICAgcHJpbnRmKCIqKiogc28gdGhhdCB0aGUgY29ycmVjdCBsaWJyYXJpZXMgYXJlIGZvdW5kIGF0IHJ1bi10aW1lKSlcbiIpOworICAgIH0KKyAgcmV0dXJuIDE7Cit9CitdLCwgbm9feG1sPXllcyxbZWNobyAkYWNfbiAiY3Jvc3MgY29tcGlsaW5nOyBhc3N1bWVkIE9LLi4uICRhY19jIl0pCisgICAgICAgQ1BQRkxBR1M9IiRhY19zYXZlX0NQUEZMQUdTIgorICAgICAgIExJQlM9IiRhY19zYXZlX0xJQlMiCisgICAgIGZpCisgIGZpCisKKyAgaWYgdGVzdCAieCRub194bWwiID0geCA7IHRoZW4KKyAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKHZlcnNpb24gJHhtbF9jb25maWdfbWFqb3JfdmVyc2lvbi4keG1sX2NvbmZpZ19taW5vcl92ZXJzaW9uLiR4bWxfY29uZmlnX21pY3JvX3ZlcnNpb24pKQorICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKSAgICAgCisgIGVsc2UKKyAgICAgQUNfTVNHX1JFU1VMVChubykKKyAgICAgaWYgdGVzdCAiJFhNTDJfQ09ORklHIiA9ICJubyIgOyB0aGVuCisgICAgICAgZWNobyAiKioqIFRoZSB4bWwyLWNvbmZpZyBzY3JpcHQgaW5zdGFsbGVkIGJ5IExJQlhNTCBjb3VsZCBub3QgYmUgZm91bmQiCisgICAgICAgZWNobyAiKioqIElmIGxpYnhtbCB3YXMgaW5zdGFsbGVkIGluIFBSRUZJWCwgbWFrZSBzdXJlIFBSRUZJWC9iaW4gaXMgaW4iCisgICAgICAgZWNobyAiKioqIHlvdXIgcGF0aCwgb3Igc2V0IHRoZSBYTUwyX0NPTkZJRyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUiCisgICAgICAgZWNobyAiKioqIGZ1bGwgcGF0aCB0byB4bWwyLWNvbmZpZy4iCisgICAgIGVsc2UKKyAgICAgICBpZiB0ZXN0IC1mIGNvbmYueG1sdGVzdCA7IHRoZW4KKyAgICAgICAgOgorICAgICAgIGVsc2UKKyAgICAgICAgICBlY2hvICIqKiogQ291bGQgbm90IHJ1biBsaWJ4bWwgdGVzdCBwcm9ncmFtLCBjaGVja2luZyB3aHkuLi4iCisgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAkWE1MX0NQUEZMQUdTIgorICAgICAgICAgIExJQlM9IiRMSUJTICRYTUxfTElCUyIKKyAgICAgICAgICBBQ19UUllfTElOSyhbCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorXSwgICAgICBbIExJQlhNTF9URVNUX1ZFUlNJT047IHJldHVybiAwO10sCisgICAgICAgIFsgZWNobyAiKioqIFRoZSB0ZXN0IHByb2dyYW0gY29tcGlsZWQsIGJ1dCBkaWQgbm90IHJ1bi4gVGhpcyB1c3VhbGx5IG1lYW5zIgorICAgICAgICAgIGVjaG8gIioqKiB0aGF0IHRoZSBydW4tdGltZSBsaW5rZXIgaXMgbm90IGZpbmRpbmcgTElCWE1MIG9yIGZpbmRpbmcgdGhlIHdyb25nIgorICAgICAgICAgIGVjaG8gIioqKiB2ZXJzaW9uIG9mIExJQlhNTC4gSWYgaXQgaXMgbm90IGZpbmRpbmcgTElCWE1MLCB5b3UnbGwgbmVlZCB0byBzZXQgeW91ciIKKyAgICAgICAgICBlY2hvICIqKiogTERfTElCUkFSWV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlLCBvciBlZGl0IC9ldGMvbGQuc28uY29uZiB0byBwb2ludCIKKyAgICAgICAgICBlY2hvICIqKiogdG8gdGhlIGluc3RhbGxlZCBsb2NhdGlvbiAgQWxzbywgbWFrZSBzdXJlIHlvdSBoYXZlIHJ1biBsZGNvbmZpZyBpZiB0aGF0IgorICAgICAgICAgIGVjaG8gIioqKiBpcyByZXF1aXJlZCBvbiB5b3VyIHN5c3RlbSIKKyAgICAgICAgICBlY2hvICIqKioiCisgICAgICAgICAgZWNobyAiKioqIElmIHlvdSBoYXZlIGFuIG9sZCB2ZXJzaW9uIGluc3RhbGxlZCwgaXQgaXMgYmVzdCB0byByZW1vdmUgaXQsIGFsdGhvdWdoIgorICAgICAgICAgIGVjaG8gIioqKiB5b3UgbWF5IGFsc28gYmUgYWJsZSB0byBnZXQgdGhpbmdzIHRvIHdvcmsgYnkgbW9kaWZ5aW5nIExEX0xJQlJBUllfUEFUSCIgXSwKKyAgICAgICAgWyBlY2hvICIqKiogVGhlIHRlc3QgcHJvZ3JhbSBmYWlsZWQgdG8gY29tcGlsZSBvciBsaW5rLiBTZWUgdGhlIGZpbGUgY29uZmlnLmxvZyBmb3IgdGhlIgorICAgICAgICAgIGVjaG8gIioqKiBleGFjdCBlcnJvciB0aGF0IG9jY3VyZWQuIFRoaXMgdXN1YWxseSBtZWFucyBMSUJYTUwgd2FzIGluY29ycmVjdGx5IGluc3RhbGxlZCIKKyAgICAgICAgICBlY2hvICIqKiogb3IgdGhhdCB5b3UgaGF2ZSBtb3ZlZCBMSUJYTUwgc2luY2UgaXQgd2FzIGluc3RhbGxlZC4gSW4gdGhlIGxhdHRlciBjYXNlLCB5b3UiCisgICAgICAgICAgZWNobyAiKioqIG1heSB3YW50IHRvIGVkaXQgdGhlIHhtbDItY29uZmlnIHNjcmlwdDogJFhNTDJfQ09ORklHIiBdKQorICAgICAgICAgIENQUEZMQUdTPSIkYWNfc2F2ZV9DUFBGTEFHUyIKKyAgICAgICAgICBMSUJTPSIkYWNfc2F2ZV9MSUJTIgorICAgICAgIGZpCisgICAgIGZpCisKKyAgICAgWE1MX0NQUEZMQUdTPSIiCisgICAgIFhNTF9MSUJTPSIiCisgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCisgIGZpCisgIEFDX1NVQlNUKFhNTF9DUFBGTEFHUykKKyAgQUNfU1VCU1QoWE1MX0xJQlMpCisgIHJtIC1mIGNvbmYueG1sdGVzdAorXSkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbGlieG1sLnNwZWMuaW4gYi9saWJ4bWwyLTIuNy43L2xpYnhtbC5zcGVjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ODgxMWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2xpYnhtbC5zcGVjLmluCkBAIC0wLDAgKzEsMTMyIEBACitTdW1tYXJ5OiBMaWJyYXJ5IHByb3ZpZGluZyBYTUwgYW5kIEhUTUwgc3VwcG9ydAorTmFtZTogbGlieG1sMgorVmVyc2lvbjogQFZFUlNJT05ACitSZWxlYXNlOiAxCitMaWNlbnNlOiBNSVQKK0dyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKK1NvdXJjZTogZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi9saWJ4bWwyLSV7dmVyc2lvbn0udGFyLmd6CitCdWlsZFJvb3Q6ICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QKK0J1aWxkUmVxdWlyZXM6IHB5dGhvbiBweXRob24tZGV2ZWwgemxpYi1kZXZlbCBwa2djb25maWcKK1VSTDogaHR0cDovL3htbHNvZnQub3JnLworCislZGVzY3JpcHRpb24KK1RoaXMgbGlicmFyeSBhbGxvd3MgdG8gbWFuaXB1bGF0ZSBYTUwgZmlsZXMuIEl0IGluY2x1ZGVzIHN1cHBvcnQgCit0byByZWFkLCBtb2RpZnkgYW5kIHdyaXRlIFhNTCBhbmQgSFRNTCBmaWxlcy4gVGhlcmUgaXMgRFREcyBzdXBwb3J0Cit0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRHREcywgZWl0aGVyCithdCBwYXJzZSB0aW1lIG9yIGxhdGVyIG9uY2UgdGhlIGRvY3VtZW50IGhhcyBiZWVuIG1vZGlmaWVkLiBUaGUgb3V0cHV0CitjYW4gYmUgYSBzaW1wbGUgU0FYIHN0cmVhbSBvciBhbmQgaW4tbWVtb3J5IERPTSBsaWtlIHJlcHJlc2VudGF0aW9ucy4KK0luIHRoaXMgY2FzZSBvbmUgY2FuIHVzZSB0aGUgYnVpbHQtaW4gWFBhdGggYW5kIFhQb2ludGVyIGltcGxlbWVudGF0aW9uCit0byBzZWxlY3Qgc3Vibm9kZXMgb3IgcmFuZ2VzLiBBIGZsZXhpYmxlIElucHV0L091dHB1dCBtZWNoYW5pc20gaXMKK2F2YWlsYWJsZSwgd2l0aCBleGlzdGluZyBIVFRQIGFuZCBGVFAgbW9kdWxlcyBhbmQgY29tYmluZWQgdG8gYW4KK1VSSSBsaWJyYXJ5LgorCislcGFja2FnZSBkZXZlbAorU3VtbWFyeTogTGlicmFyaWVzLCBpbmNsdWRlcywgZXRjLiB0byBkZXZlbG9wIFhNTCBhbmQgSFRNTCBhcHBsaWNhdGlvbnMKK0dyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKK1JlcXVpcmVzOiBsaWJ4bWwyID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJlczogemxpYi1kZXZlbAorUmVxdWlyZXM6IHBrZ2NvbmZpZworCislZGVzY3JpcHRpb24gZGV2ZWwKK0xpYnJhcmllcywgaW5jbHVkZSBmaWxlcywgZXRjIHlvdSBjYW4gdXNlIHRvIGRldmVsb3AgWE1MIGFwcGxpY2F0aW9ucy4KK1RoaXMgbGlicmFyeSBhbGxvd3MgdG8gbWFuaXB1bGF0ZSBYTUwgZmlsZXMuIEl0IGluY2x1ZGVzIHN1cHBvcnQgCit0byByZWFkLCBtb2RpZnkgYW5kIHdyaXRlIFhNTCBhbmQgSFRNTCBmaWxlcy4gVGhlcmUgaXMgRFREcyBzdXBwb3J0Cit0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRHREcywgZWl0aGVyCithdCBwYXJzZSB0aW1lIG9yIGxhdGVyIG9uY2UgdGhlIGRvY3VtZW50IGhhcyBiZWVuIG1vZGlmaWVkLiBUaGUgb3V0cHV0CitjYW4gYmUgYSBzaW1wbGUgU0FYIHN0cmVhbSBvciBhbmQgaW4tbWVtb3J5IERPTSBsaWtlIHJlcHJlc2VudGF0aW9ucy4KK0luIHRoaXMgY2FzZSBvbmUgY2FuIHVzZSB0aGUgYnVpbHQtaW4gWFBhdGggYW5kIFhQb2ludGVyIGltcGxlbWVudGF0aW9uCit0byBzZWxlY3Qgc3Vibm9kZXMgb3IgcmFuZ2VzLiBBIGZsZXhpYmxlIElucHV0L091dHB1dCBtZWNoYW5pc20gaXMKK2F2YWlsYWJsZSwgd2l0aCBleGlzdGluZyBIVFRQIGFuZCBGVFAgbW9kdWxlcyBhbmQgY29tYmluZWQgdG8gYW4KK1VSSSBsaWJyYXJ5LgorCislcGFja2FnZSBweXRob24KK1N1bW1hcnk6IFB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIGxpYnhtbDIgbGlicmFyeQorR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcworUmVxdWlyZXM6IGxpYnhtbDIgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK1JlcXVpcmVzOiBweXRob24KKworJWRlc2NyaXB0aW9uIHB5dGhvbgorVGhlIGxpYnhtbDItcHl0aG9uIHBhY2thZ2UgY29udGFpbnMgYSBtb2R1bGUgdGhhdCBwZXJtaXRzIGFwcGxpY2F0aW9ucword3JpdHRlbiBpbiB0aGUgUHl0aG9uIHByb2dyYW1taW5nIGxhbmd1YWdlIHRvIHVzZSB0aGUgaW50ZXJmYWNlCitzdXBwbGllZCBieSB0aGUgbGlieG1sMiBsaWJyYXJ5IHRvIG1hbmlwdWxhdGUgWE1MIGZpbGVzLgorCitUaGlzIGxpYnJhcnkgYWxsb3dzIHRvIG1hbmlwdWxhdGUgWE1MIGZpbGVzLiBJdCBpbmNsdWRlcyBzdXBwb3J0IAordG8gcmVhZCwgbW9kaWZ5IGFuZCB3cml0ZSBYTUwgYW5kIEhUTUwgZmlsZXMuIFRoZXJlIGlzIERURHMgc3VwcG9ydAordGhpcyBpbmNsdWRlcyBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGV2ZW4gd2l0aCBjb21wbGV4IERURHMsIGVpdGhlcgorYXQgcGFyc2UgdGltZSBvciBsYXRlciBvbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBtb2RpZmllZC4KKworJXByZXAKKyVzZXR1cCAtcQorCislYnVpbGQKKyVjb25maWd1cmUKK21ha2UgJXtfc21wX21mbGFnc30KK2d6aXAgLTkgQ2hhbmdlTG9nCisKKyVpbnN0YWxsCitybSAtZnIgJXtidWlsZHJvb3R9CisKKyVtYWtlaW5zdGFsbAorKGNkIGRvYy9leGFtcGxlcyA7IG1ha2UgY2xlYW4gOyBybSAtcmYgLmRlcHMgTWFrZWZpbGUpCitnemlwIC05IGRvYy9saWJ4bWwyLWFwaS54bWwKK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0vKi5sYQorCislY2xlYW4KK3JtIC1mciAle2J1aWxkcm9vdH0KKworJXBvc3QKKy9zYmluL2xkY29uZmlnCisKKyVwb3N0dW4KKy9zYmluL2xkY29uZmlnCisKKyVmaWxlcworJWRlZmF0dHIoLSwgcm9vdCwgcm9vdCkKKworJWRvYyBBVVRIT1JTIENoYW5nZUxvZy5neiBORVdTIFJFQURNRSBDb3B5cmlnaHQgVE9ETworJWRvYyAle19tYW5kaXJ9L21hbjEveG1sbGludC4xKgorJWRvYyAle19tYW5kaXJ9L21hbjEveG1sY2F0YWxvZy4xKgorJWRvYyAle19tYW5kaXJ9L21hbjMvbGlieG1sLjMqCisKKyV7X2xpYmRpcn0vbGliKi5zby4qCisle19iaW5kaXJ9L3htbGxpbnQKKyV7X2JpbmRpcn0veG1sY2F0YWxvZworCislZmlsZXMgZGV2ZWwKKyVkZWZhdHRyKC0sIHJvb3QsIHJvb3QpCisKKyVkb2MgJXtfbWFuZGlyfS9tYW4xL3htbDItY29uZmlnLjEqCislZG9jIEFVVEhPUlMgQ2hhbmdlTG9nLmd6IE5FV1MgUkVBRE1FIENvcHlyaWdodAorJWRvYyBkb2MvKi5odG1sIGRvYy9odG1sIGRvYy8qLmdpZiBkb2MvKi5wbmcKKyVkb2MgZG9jL3R1dG9yaWFsIGRvYy9saWJ4bWwyLWFwaS54bWwuZ3oKKyVkb2MgZG9jL2V4YW1wbGVzCislZG9jICVkaXIgJXtfZGF0YWRpcn0vZ3RrLWRvYy9odG1sL2xpYnhtbDIKKyVkb2MgJXtfZGF0YWRpcn0vZ3RrLWRvYy9odG1sL2xpYnhtbDIvKi5kZXZoZWxwCislZG9jICV7X2RhdGFkaXJ9L2d0ay1kb2MvaHRtbC9saWJ4bWwyLyouaHRtbAorJWRvYyAle19kYXRhZGlyfS9ndGstZG9jL2h0bWwvbGlieG1sMi8qLnBuZworJWRvYyAle19kYXRhZGlyfS9ndGstZG9jL2h0bWwvbGlieG1sMi8qLmNzcworCisle19saWJkaXJ9L2xpYiouc28KKyV7X2xpYmRpcn0vKmEKKyV7X2xpYmRpcn0vKi5zaAorJXtfaW5jbHVkZWRpcn0vKgorJXtfYmluZGlyfS94bWwyLWNvbmZpZworJXtfZGF0YWRpcn0vYWNsb2NhbC9saWJ4bWwubTQKKyV7X2xpYmRpcn0vcGtnY29uZmlnL2xpYnhtbC0yLjAucGMKKyVmaWxlcyBweXRob24KKyVkZWZhdHRyKC0sIHJvb3QsIHJvb3QpCisKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cuZ3ogTkVXUyBSRUFETUUgQ29weXJpZ2h0Cisle19saWJkaXJ9L3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9saWJ4bWwyLnB5KgorJXtfbGliZGlyfS9weXRob24qL3NpdGUtcGFja2FnZXMvZHJ2X2xpYnhtbDIucHkqCisle19saWJkaXJ9L3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9saWJ4bWwybW9kKgorJWRvYyBweXRob24vVE9ETworJWRvYyBweXRob24vbGlieG1sMmNsYXNzLnR4dAorJWRvYyBweXRob24vdGVzdHMvKi5weQorJWRvYyBkb2MvKi5weQorJWRvYyBkb2MvcHl0aG9uLmh0bWwKKworJWNoYW5nZWxvZworKiBAUkVMREFURUAgRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgorLSB1cHN0cmVhbSByZWxlYXNlIEBWRVJTSU9OQCBzZWUgaHR0cDovL3htbHNvZnQub3JnL25ld3MuaHRtbAorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L2xpYnhtbDIuc3BlYyBiL2xpYnhtbDItMi43LjcvbGlieG1sMi5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YTJhM2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L2xpYnhtbDIuc3BlYwpAQCAtMCwwICsxLDEzMiBAQAorU3VtbWFyeTogTGlicmFyeSBwcm92aWRpbmcgWE1MIGFuZCBIVE1MIHN1cHBvcnQKK05hbWU6IGxpYnhtbDIKK1ZlcnNpb246IDIuNy43CitSZWxlYXNlOiAxCitMaWNlbnNlOiBNSVQKK0dyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKK1NvdXJjZTogZnRwOi8veG1sc29mdC5vcmcvbGlieG1sMi9saWJ4bWwyLSV7dmVyc2lvbn0udGFyLmd6CitCdWlsZFJvb3Q6ICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QKK0J1aWxkUmVxdWlyZXM6IHB5dGhvbiBweXRob24tZGV2ZWwgemxpYi1kZXZlbCBwa2djb25maWcKK1VSTDogaHR0cDovL3htbHNvZnQub3JnLworCislZGVzY3JpcHRpb24KK1RoaXMgbGlicmFyeSBhbGxvd3MgdG8gbWFuaXB1bGF0ZSBYTUwgZmlsZXMuIEl0IGluY2x1ZGVzIHN1cHBvcnQgCit0byByZWFkLCBtb2RpZnkgYW5kIHdyaXRlIFhNTCBhbmQgSFRNTCBmaWxlcy4gVGhlcmUgaXMgRFREcyBzdXBwb3J0Cit0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRHREcywgZWl0aGVyCithdCBwYXJzZSB0aW1lIG9yIGxhdGVyIG9uY2UgdGhlIGRvY3VtZW50IGhhcyBiZWVuIG1vZGlmaWVkLiBUaGUgb3V0cHV0CitjYW4gYmUgYSBzaW1wbGUgU0FYIHN0cmVhbSBvciBhbmQgaW4tbWVtb3J5IERPTSBsaWtlIHJlcHJlc2VudGF0aW9ucy4KK0luIHRoaXMgY2FzZSBvbmUgY2FuIHVzZSB0aGUgYnVpbHQtaW4gWFBhdGggYW5kIFhQb2ludGVyIGltcGxlbWVudGF0aW9uCit0byBzZWxlY3Qgc3Vibm9kZXMgb3IgcmFuZ2VzLiBBIGZsZXhpYmxlIElucHV0L091dHB1dCBtZWNoYW5pc20gaXMKK2F2YWlsYWJsZSwgd2l0aCBleGlzdGluZyBIVFRQIGFuZCBGVFAgbW9kdWxlcyBhbmQgY29tYmluZWQgdG8gYW4KK1VSSSBsaWJyYXJ5LgorCislcGFja2FnZSBkZXZlbAorU3VtbWFyeTogTGlicmFyaWVzLCBpbmNsdWRlcywgZXRjLiB0byBkZXZlbG9wIFhNTCBhbmQgSFRNTCBhcHBsaWNhdGlvbnMKK0dyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKK1JlcXVpcmVzOiBsaWJ4bWwyID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJlczogemxpYi1kZXZlbAorUmVxdWlyZXM6IHBrZ2NvbmZpZworCislZGVzY3JpcHRpb24gZGV2ZWwKK0xpYnJhcmllcywgaW5jbHVkZSBmaWxlcywgZXRjIHlvdSBjYW4gdXNlIHRvIGRldmVsb3AgWE1MIGFwcGxpY2F0aW9ucy4KK1RoaXMgbGlicmFyeSBhbGxvd3MgdG8gbWFuaXB1bGF0ZSBYTUwgZmlsZXMuIEl0IGluY2x1ZGVzIHN1cHBvcnQgCit0byByZWFkLCBtb2RpZnkgYW5kIHdyaXRlIFhNTCBhbmQgSFRNTCBmaWxlcy4gVGhlcmUgaXMgRFREcyBzdXBwb3J0Cit0aGlzIGluY2x1ZGVzIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gZXZlbiB3aXRoIGNvbXBsZXggRHREcywgZWl0aGVyCithdCBwYXJzZSB0aW1lIG9yIGxhdGVyIG9uY2UgdGhlIGRvY3VtZW50IGhhcyBiZWVuIG1vZGlmaWVkLiBUaGUgb3V0cHV0CitjYW4gYmUgYSBzaW1wbGUgU0FYIHN0cmVhbSBvciBhbmQgaW4tbWVtb3J5IERPTSBsaWtlIHJlcHJlc2VudGF0aW9ucy4KK0luIHRoaXMgY2FzZSBvbmUgY2FuIHVzZSB0aGUgYnVpbHQtaW4gWFBhdGggYW5kIFhQb2ludGVyIGltcGxlbWVudGF0aW9uCit0byBzZWxlY3Qgc3Vibm9kZXMgb3IgcmFuZ2VzLiBBIGZsZXhpYmxlIElucHV0L091dHB1dCBtZWNoYW5pc20gaXMKK2F2YWlsYWJsZSwgd2l0aCBleGlzdGluZyBIVFRQIGFuZCBGVFAgbW9kdWxlcyBhbmQgY29tYmluZWQgdG8gYW4KK1VSSSBsaWJyYXJ5LgorCislcGFja2FnZSBweXRob24KK1N1bW1hcnk6IFB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIGxpYnhtbDIgbGlicmFyeQorR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcworUmVxdWlyZXM6IGxpYnhtbDIgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK1JlcXVpcmVzOiBweXRob24KKworJWRlc2NyaXB0aW9uIHB5dGhvbgorVGhlIGxpYnhtbDItcHl0aG9uIHBhY2thZ2UgY29udGFpbnMgYSBtb2R1bGUgdGhhdCBwZXJtaXRzIGFwcGxpY2F0aW9ucword3JpdHRlbiBpbiB0aGUgUHl0aG9uIHByb2dyYW1taW5nIGxhbmd1YWdlIHRvIHVzZSB0aGUgaW50ZXJmYWNlCitzdXBwbGllZCBieSB0aGUgbGlieG1sMiBsaWJyYXJ5IHRvIG1hbmlwdWxhdGUgWE1MIGZpbGVzLgorCitUaGlzIGxpYnJhcnkgYWxsb3dzIHRvIG1hbmlwdWxhdGUgWE1MIGZpbGVzLiBJdCBpbmNsdWRlcyBzdXBwb3J0IAordG8gcmVhZCwgbW9kaWZ5IGFuZCB3cml0ZSBYTUwgYW5kIEhUTUwgZmlsZXMuIFRoZXJlIGlzIERURHMgc3VwcG9ydAordGhpcyBpbmNsdWRlcyBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGV2ZW4gd2l0aCBjb21wbGV4IERURHMsIGVpdGhlcgorYXQgcGFyc2UgdGltZSBvciBsYXRlciBvbmNlIHRoZSBkb2N1bWVudCBoYXMgYmVlbiBtb2RpZmllZC4KKworJXByZXAKKyVzZXR1cCAtcQorCislYnVpbGQKKyVjb25maWd1cmUKK21ha2UgJXtfc21wX21mbGFnc30KK2d6aXAgLTkgQ2hhbmdlTG9nCisKKyVpbnN0YWxsCitybSAtZnIgJXtidWlsZHJvb3R9CisKKyVtYWtlaW5zdGFsbAorKGNkIGRvYy9leGFtcGxlcyA7IG1ha2UgY2xlYW4gOyBybSAtcmYgLmRlcHMgTWFrZWZpbGUpCitnemlwIC05IGRvYy9saWJ4bWwyLWFwaS54bWwKK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0vKi5sYQorCislY2xlYW4KK3JtIC1mciAle2J1aWxkcm9vdH0KKworJXBvc3QKKy9zYmluL2xkY29uZmlnCisKKyVwb3N0dW4KKy9zYmluL2xkY29uZmlnCisKKyVmaWxlcworJWRlZmF0dHIoLSwgcm9vdCwgcm9vdCkKKworJWRvYyBBVVRIT1JTIENoYW5nZUxvZy5neiBORVdTIFJFQURNRSBDb3B5cmlnaHQgVE9ETworJWRvYyAle19tYW5kaXJ9L21hbjEveG1sbGludC4xKgorJWRvYyAle19tYW5kaXJ9L21hbjEveG1sY2F0YWxvZy4xKgorJWRvYyAle19tYW5kaXJ9L21hbjMvbGlieG1sLjMqCisKKyV7X2xpYmRpcn0vbGliKi5zby4qCisle19iaW5kaXJ9L3htbGxpbnQKKyV7X2JpbmRpcn0veG1sY2F0YWxvZworCislZmlsZXMgZGV2ZWwKKyVkZWZhdHRyKC0sIHJvb3QsIHJvb3QpCisKKyVkb2MgJXtfbWFuZGlyfS9tYW4xL3htbDItY29uZmlnLjEqCislZG9jIEFVVEhPUlMgQ2hhbmdlTG9nLmd6IE5FV1MgUkVBRE1FIENvcHlyaWdodAorJWRvYyBkb2MvKi5odG1sIGRvYy9odG1sIGRvYy8qLmdpZiBkb2MvKi5wbmcKKyVkb2MgZG9jL3R1dG9yaWFsIGRvYy9saWJ4bWwyLWFwaS54bWwuZ3oKKyVkb2MgZG9jL2V4YW1wbGVzCislZG9jICVkaXIgJXtfZGF0YWRpcn0vZ3RrLWRvYy9odG1sL2xpYnhtbDIKKyVkb2MgJXtfZGF0YWRpcn0vZ3RrLWRvYy9odG1sL2xpYnhtbDIvKi5kZXZoZWxwCislZG9jICV7X2RhdGFkaXJ9L2d0ay1kb2MvaHRtbC9saWJ4bWwyLyouaHRtbAorJWRvYyAle19kYXRhZGlyfS9ndGstZG9jL2h0bWwvbGlieG1sMi8qLnBuZworJWRvYyAle19kYXRhZGlyfS9ndGstZG9jL2h0bWwvbGlieG1sMi8qLmNzcworCisle19saWJkaXJ9L2xpYiouc28KKyV7X2xpYmRpcn0vKmEKKyV7X2xpYmRpcn0vKi5zaAorJXtfaW5jbHVkZWRpcn0vKgorJXtfYmluZGlyfS94bWwyLWNvbmZpZworJXtfZGF0YWRpcn0vYWNsb2NhbC9saWJ4bWwubTQKKyV7X2xpYmRpcn0vcGtnY29uZmlnL2xpYnhtbC0yLjAucGMKKyVmaWxlcyBweXRob24KKyVkZWZhdHRyKC0sIHJvb3QsIHJvb3QpCisKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cuZ3ogTkVXUyBSRUFETUUgQ29weXJpZ2h0Cisle19saWJkaXJ9L3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9saWJ4bWwyLnB5KgorJXtfbGliZGlyfS9weXRob24qL3NpdGUtcGFja2FnZXMvZHJ2X2xpYnhtbDIucHkqCisle19saWJkaXJ9L3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9saWJ4bWwybW9kKgorJWRvYyBweXRob24vVE9ETworJWRvYyBweXRob24vbGlieG1sMmNsYXNzLnR4dAorJWRvYyBweXRob24vdGVzdHMvKi5weQorJWRvYyBkb2MvKi5weQorJWRvYyBkb2MvcHl0aG9uLmh0bWwKKworJWNoYW5nZWxvZworKiBNb24gTWFyIDE1IDIwMTAgRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgorLSB1cHN0cmVhbSByZWxlYXNlIDIuNy43IHNlZSBodHRwOi8veG1sc29mdC5vcmcvbmV3cy5odG1sCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbGlieG1sMi5zeW1zIGIvbGlieG1sMi0yLjcuNy9saWJ4bWwyLnN5bXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE5NTE3NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvbGlieG1sMi5zeW1zCkBAIC0wLDAgKzEsMjIzMyBAQAorIworIyBPZmZpY2lhbGx5IGV4cG9ydGVkIHN5bWJvbHMsIGZvciB3aGljaCBoZWFkZXIKKyMgZmlsZSBkZWZpbml0aW9ucyBhcmUgaW5zdGFsbGVkIGluIC91c3IvaW5jbHVkZS9saWJ4bWwyCisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gc3ltYm9scy54bWwgYW5kIHN5bXMueHNsCisjCisjIFZlcnNpb25zIGhlcmUgYXJlICpmaXhlZCogdG8gbWF0Y2ggdGhlIGxpYnhtbDIgdmVyc2lvbgorIyBhdCB3aGljaCB0aGUgc3ltYm9sIHdhcyBpbnRyb2R1Y2VkLiBUaGlzIGVuc3VyZXMgdGhhdAorIyBhIG5ldyBjbGllbnQgYXBwIHJlcXVpcmluZyBzeW1ib2wgZm9vKCkgY2FuJ3QgYWNjaWRlbnRhbGx5CisjIHJ1biB3aXRoIG9sZCBsaWJ4bWwyLnNvIG5vdCBwcm92aWRpbmcgZm9vKCkgLSB0aGUgZ2xvYmFsCisjIHNvbmFtZSB2ZXJzaW9uIGluZm8gY2FuJ3QgZW5mb3JjZSB0aGlzIHNpbmNlIHdlIG5ldmVyCisjIGNoYW5nZSB0aGUgc29uYW1lCisjCisKK0xJQlhNTDJfMi40LjMwIHsKKyAgICBnbG9iYWw6CisKKyMgZGVidWdYTUwKKyAgeG1sQm9vbFRvVGV4dDsKKyAgeG1sRGVidWdEdW1wQXR0cjsKKyAgeG1sRGVidWdEdW1wQXR0ckxpc3Q7CisgIHhtbERlYnVnRHVtcERURDsKKyAgeG1sRGVidWdEdW1wRG9jdW1lbnQ7CisgIHhtbERlYnVnRHVtcERvY3VtZW50SGVhZDsKKyAgeG1sRGVidWdEdW1wRW50aXRpZXM7CisgIHhtbERlYnVnRHVtcE5vZGU7CisgIHhtbERlYnVnRHVtcE5vZGVMaXN0OworICB4bWxEZWJ1Z0R1bXBPbmVOb2RlOworICB4bWxEZWJ1Z0R1bXBTdHJpbmc7CisgIHhtbExzQ291bnROb2RlOworICB4bWxMc09uZU5vZGU7CisgIHhtbFNoZWxsOworICB4bWxTaGVsbEJhc2U7CisgIHhtbFNoZWxsQ2F0OworICB4bWxTaGVsbERpcjsKKyAgeG1sU2hlbGxEdTsKKyAgeG1sU2hlbGxMaXN0OworICB4bWxTaGVsbExvYWQ7CisgIHhtbFNoZWxsUHJpbnROb2RlOworICB4bWxTaGVsbFByaW50WFBhdGhFcnJvcjsKKyAgeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0OworICB4bWxTaGVsbFB3ZDsKKyAgeG1sU2hlbGxTYXZlOworICB4bWxTaGVsbFZhbGlkYXRlOworICB4bWxTaGVsbFdyaXRlOworCisjIHhwb2ludGVyCisgIHhtbFhQdHJCdWlsZE5vZGVMaXN0OworICB4bWxYUHRyRXZhbDsKKyAgeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZTsKKyAgeG1sWFB0ckZyZWVMb2NhdGlvblNldDsKKyAgeG1sWFB0ckxvY2F0aW9uU2V0QWRkOworICB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGU7CisgIHhtbFhQdHJMb2NhdGlvblNldERlbDsKKyAgeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U7CisgIHhtbFhQdHJMb2NhdGlvblNldFJlbW92ZTsKKyAgeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlOworICB4bWxYUHRyTmV3Q29udGV4dDsKKyAgeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldDsKKyAgeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXM7CisgIHhtbFhQdHJOZXdSYW5nZTsKKyAgeG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdDsKKyAgeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50OworICB4bWxYUHRyTmV3UmFuZ2VOb2RlczsKKyAgeG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlOworICB4bWxYUHRyTmV3UmFuZ2VQb2ludHM7CisgIHhtbFhQdHJSYW5nZVRvRnVuY3Rpb247CisgIHhtbFhQdHJXcmFwTG9jYXRpb25TZXQ7CisKKyMgU0FYCisgIGF0dHJpYnV0ZTsKKyAgYXR0cmlidXRlRGVjbDsKKyAgY2RhdGFCbG9jazsKKyAgY2hhcmFjdGVyczsKKyAgY2hlY2tOYW1lc3BhY2U7CisgIGNvbW1lbnQ7CisKKyMgU0FYMgorICBkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0OworCisjIFNBWAorICBlbGVtZW50RGVjbDsKKyAgZW5kRG9jdW1lbnQ7CisgIGVuZEVsZW1lbnQ7CisgIGVudGl0eURlY2w7CisgIGV4dGVybmFsU3Vic2V0OworICBnZXRDb2x1bW5OdW1iZXI7CisgIGdldEVudGl0eTsKKyAgZ2V0TGluZU51bWJlcjsKKyAgZ2V0TmFtZXNwYWNlOworICBnZXRQYXJhbWV0ZXJFbnRpdHk7CisgIGdldFB1YmxpY0lkOworICBnZXRTeXN0ZW1JZDsKKyAgZ2xvYmFsTmFtZXNwYWNlOworICBoYXNFeHRlcm5hbFN1YnNldDsKKyAgaGFzSW50ZXJuYWxTdWJzZXQ7CisKKyMgU0FYMgorICBodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0OworCisjIFNBWAorICBpZ25vcmFibGVXaGl0ZXNwYWNlOworICBpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyOworICBpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyOworICBpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXI7CisgIGludGVybmFsU3Vic2V0OworICBpc1N0YW5kYWxvbmU7CisgIG5hbWVzcGFjZURlY2w7CisgIG5vdGF0aW9uRGVjbDsKKyAgcHJvY2Vzc2luZ0luc3RydWN0aW9uOworICByZWZlcmVuY2U7CisgIHJlc29sdmVFbnRpdHk7CisgIHNldERvY3VtZW50TG9jYXRvcjsKKyAgc2V0TmFtZXNwYWNlOworICBzdGFydERvY3VtZW50OworICBzdGFydEVsZW1lbnQ7CisgIHVucGFyc2VkRW50aXR5RGVjbDsKKworIyBTQVgyCisgIHhtbERlZmF1bHRTQVhIYW5kbGVySW5pdDsKKworIyBwYXJzZXJJbnRlcm5hbHMKKyAgaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0OworICBodG1sSW5pdEF1dG9DbG9zZTsKKyAgaW5wdXRQb3A7CisgIGlucHV0UHVzaDsKKyAgbmFtZVBvcDsKKyAgbmFtZVB1c2g7CisgIG5vZGVQb3A7CisgIG5vZGVQdXNoOworICB4bWxDaGVja0xhbmd1YWdlSUQ7CisgIHhtbENvcHlDaGFyOworICB4bWxDb3B5Q2hhck11bHRpQnl0ZTsKKyAgeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dDsKKyAgeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQ7CisgIHhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ7CisgIHhtbEN1cnJlbnRDaGFyOworICB4bWxEZWNvZGVFbnRpdGllczsKKyAgeG1sRnJlZUlucHV0U3RyZWFtOworICB4bWxIYW5kbGVFbnRpdHk7CisKKyMgY2h2YWxpZAorICB4bWxJc0Jhc2VDaGFyOworICB4bWxJc0JsYW5rOworICB4bWxJc0NoYXI7CisgIHhtbElzQ29tYmluaW5nOworICB4bWxJc0RpZ2l0OworICB4bWxJc0V4dGVuZGVyOworICB4bWxJc0lkZW9ncmFwaGljOworCisjIHBhcnNlckludGVybmFscworICB4bWxJc0xldHRlcjsKKworIyBjaHZhbGlkCisgIHhtbElzUHViaWRDaGFyOworCisjIHBhcnNlckludGVybmFscworICB4bWxOYW1lc3BhY2VQYXJzZU5DTmFtZTsKKyAgeG1sTmFtZXNwYWNlUGFyc2VOU0RlZjsKKyAgeG1sTmFtZXNwYWNlUGFyc2VRTmFtZTsKKyAgeG1sTmV3RW50aXR5SW5wdXRTdHJlYW07CisgIHhtbE5ld0lucHV0RnJvbUZpbGU7CisgIHhtbE5ld0lucHV0U3RyZWFtOworCisjIHBhcnNlcgorICB4bWxOZXdQYXJzZXJDdHh0OworCisjIHBhcnNlckludGVybmFscworICB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbTsKKyAgeG1sTmV4dENoYXI7CisgIHhtbFBhcnNlQXR0VmFsdWU7CisgIHhtbFBhcnNlQXR0cmlidXRlOworICB4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsOworICB4bWxQYXJzZUF0dHJpYnV0ZVR5cGU7CisgIHhtbFBhcnNlQ0RTZWN0OworICB4bWxQYXJzZUNoYXJEYXRhOworICB4bWxQYXJzZUNoYXJSZWY7CisgIHhtbFBhcnNlQ29tbWVudDsKKyAgeG1sUGFyc2VDb250ZW50OworICB4bWxQYXJzZURlZmF1bHREZWNsOworICB4bWxQYXJzZURvY1R5cGVEZWNsOworICB4bWxQYXJzZUVsZW1lbnQ7CisgIHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2w7CisgIHhtbFBhcnNlRWxlbWVudENvbnRlbnREZWNsOworICB4bWxQYXJzZUVsZW1lbnREZWNsOworICB4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsOworICB4bWxQYXJzZUVuY05hbWU7CisgIHhtbFBhcnNlRW5jb2RpbmdEZWNsOworICB4bWxQYXJzZUVuZFRhZzsKKyAgeG1sUGFyc2VFbnRpdHlEZWNsOworICB4bWxQYXJzZUVudGl0eVJlZjsKKyAgeG1sUGFyc2VFbnRpdHlWYWx1ZTsKKyAgeG1sUGFyc2VFbnVtZXJhdGVkVHlwZTsKKyAgeG1sUGFyc2VFbnVtZXJhdGlvblR5cGU7CisgIHhtbFBhcnNlRXh0ZXJuYWxJRDsKKyAgeG1sUGFyc2VFeHRlcm5hbFN1YnNldDsKKyAgeG1sUGFyc2VNYXJrdXBEZWNsOworICB4bWxQYXJzZU1pc2M7CisgIHhtbFBhcnNlTmFtZTsKKyAgeG1sUGFyc2VOYW1lc3BhY2U7CisgIHhtbFBhcnNlTm10b2tlbjsKKyAgeG1sUGFyc2VOb3RhdGlvbkRlY2w7CisgIHhtbFBhcnNlTm90YXRpb25UeXBlOworICB4bWxQYXJzZVBFUmVmZXJlbmNlOworICB4bWxQYXJzZVBJOworICB4bWxQYXJzZVBJVGFyZ2V0OworICB4bWxQYXJzZVB1YmlkTGl0ZXJhbDsKKyAgeG1sUGFyc2VRdW90ZWRTdHJpbmc7CisgIHhtbFBhcnNlUmVmZXJlbmNlOworICB4bWxQYXJzZVNERGVjbDsKKyAgeG1sUGFyc2VTdGFydFRhZzsKKyAgeG1sUGFyc2VTeXN0ZW1MaXRlcmFsOworICB4bWxQYXJzZVRleHREZWNsOworICB4bWxQYXJzZVZlcnNpb25JbmZvOworICB4bWxQYXJzZVZlcnNpb25OdW07CisgIHhtbFBhcnNlWE1MRGVjbDsKKyAgeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2U7CisgIHhtbFBhcnNlckhhbmRsZVJlZmVyZW5jZTsKKyAgeG1sUGFyc2VySW5wdXRTaHJpbms7CisgIHhtbFBvcElucHV0OworICB4bWxQdXNoSW5wdXQ7CisgIHhtbFNjYW5OYW1lOworICB4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jOworICB4bWxTa2lwQmxhbmtDaGFyczsKKyAgeG1sU3BsaXRRTmFtZTsKKyAgeG1sU3RyaW5nQ29tbWVudDsgIyB2YXJpYWJsZQorICB4bWxTdHJpbmdDdXJyZW50Q2hhcjsKKyAgeG1sU3RyaW5nRGVjb2RlRW50aXRpZXM7CisgIHhtbFN0cmluZ1RleHQ7ICMgdmFyaWFibGUKKyAgeG1sU3RyaW5nVGV4dE5vZW5jOyAjIHZhcmlhYmxlCisgIHhtbFN3aXRjaEVuY29kaW5nOworICB4bWxTd2l0Y2hUb0VuY29kaW5nOworCisjIGMxNG4KKyAgeG1sQzE0TkRvY0R1bXBNZW1vcnk7CisgIHhtbEMxNE5Eb2NTYXZlOworICB4bWxDMTRORG9jU2F2ZVRvOworICB4bWxDMTRORXhlY3V0ZTsKKworIyBjYXRhbG9nCisgIHhtbEFDYXRhbG9nQWRkOworICB4bWxBQ2F0YWxvZ0R1bXA7CisgIHhtbEFDYXRhbG9nUmVtb3ZlOworICB4bWxBQ2F0YWxvZ1Jlc29sdmU7CisgIHhtbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYzsKKyAgeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtOworICB4bWxBQ2F0YWxvZ1Jlc29sdmVVUkk7CisgIHhtbENhdGFsb2dBZGQ7CisgIHhtbENhdGFsb2dBZGRMb2NhbDsKKyAgeG1sQ2F0YWxvZ0NsZWFudXA7CisgIHhtbENhdGFsb2dDb252ZXJ0OworICB4bWxDYXRhbG9nRHVtcDsKKyAgeG1sQ2F0YWxvZ0ZyZWVMb2NhbDsKKyAgeG1sQ2F0YWxvZ0dldERlZmF1bHRzOworICB4bWxDYXRhbG9nR2V0UHVibGljOworICB4bWxDYXRhbG9nR2V0U3lzdGVtOworICB4bWxDYXRhbG9nSXNFbXB0eTsKKyAgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZTsKKyAgeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSTsKKyAgeG1sQ2F0YWxvZ1JlbW92ZTsKKyAgeG1sQ2F0YWxvZ1Jlc29sdmU7CisgIHhtbENhdGFsb2dSZXNvbHZlUHVibGljOworICB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbTsKKyAgeG1sQ2F0YWxvZ1Jlc29sdmVVUkk7CisgIHhtbENhdGFsb2dTZXREZWJ1ZzsKKyAgeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXI7CisgIHhtbENhdGFsb2dTZXREZWZhdWx0czsKKyAgeG1sQ29udmVydFNHTUxDYXRhbG9nOworICB4bWxGcmVlQ2F0YWxvZzsKKyAgeG1sSW5pdGlhbGl6ZUNhdGFsb2c7CisgIHhtbExvYWRBQ2F0YWxvZzsKKyAgeG1sTG9hZENhdGFsb2c7CisgIHhtbExvYWRDYXRhbG9nczsKKyAgeG1sTG9hZFNHTUxTdXBlckNhdGFsb2c7CisgIHhtbE5ld0NhdGFsb2c7CisgIHhtbFBhcnNlQ2F0YWxvZ0ZpbGU7CisKKyMgeHBhdGhJbnRlcm5hbHMKKyAgdmFsdWVQb3A7CisgIHZhbHVlUHVzaDsKKyAgeG1sWFBhdGhBZGRWYWx1ZXM7CisgIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uOworICB4bWxYUGF0aENlaWxpbmdGdW5jdGlvbjsKKyAgeG1sWFBhdGhDb21wYXJlVmFsdWVzOworICB4bWxYUGF0aENvbmNhdEZ1bmN0aW9uOworICB4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb247CisgIHhtbFhQYXRoQ291bnRGdW5jdGlvbjsKKyAgeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcjsKKyAgeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3Q7CisgIHhtbFhQYXRoRGlmZmVyZW5jZTsKKyAgeG1sWFBhdGhEaXN0aW5jdDsKKyAgeG1sWFBhdGhEaXN0aW5jdFNvcnRlZDsKKyAgeG1sWFBhdGhEaXZWYWx1ZXM7CisgIHhtbFhQYXRoRXF1YWxWYWx1ZXM7CisgIHhtbFhQYXRoRXZhbEV4cHI7CisgIHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQ7CisgIHhtbFhQYXRoRmFsc2VGdW5jdGlvbjsKKyAgeG1sWFBhdGhGbG9vckZ1bmN0aW9uOworICB4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0OworICB4bWxYUGF0aEZ1bmN0aW9uTG9va3VwOworICB4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlM7CisgIHhtbFhQYXRoSGFzU2FtZU5vZGVzOworICB4bWxYUGF0aElkRnVuY3Rpb247CisgIHhtbFhQYXRoSW50ZXJzZWN0aW9uOworICB4bWxYUGF0aElzTm9kZVR5cGU7CisgIHhtbFhQYXRoTGFuZ0Z1bmN0aW9uOworICB4bWxYUGF0aExhc3RGdW5jdGlvbjsKKyAgeG1sWFBhdGhMZWFkaW5nOworICB4bWxYUGF0aExlYWRpbmdTb3J0ZWQ7CisgIHhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb247CisgIHhtbFhQYXRoTW9kVmFsdWVzOworICB4bWxYUGF0aE11bHRWYWx1ZXM7CisgIHhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb247CisgIHhtbFhQYXRoTmV3Qm9vbGVhbjsKKyAgeG1sWFBhdGhOZXdDU3RyaW5nOworICB4bWxYUGF0aE5ld0Zsb2F0OworICB4bWxYUGF0aE5ld05vZGVTZXQ7CisgIHhtbFhQYXRoTmV3Tm9kZVNldExpc3Q7CisgIHhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dDsKKyAgeG1sWFBhdGhOZXdTdHJpbmc7CisgIHhtbFhQYXRoTmV3VmFsdWVUcmVlOworICB4bWxYUGF0aE5leHRBbmNlc3RvcjsKKyAgeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGY7CisgIHhtbFhQYXRoTmV4dEF0dHJpYnV0ZTsKKyAgeG1sWFBhdGhOZXh0Q2hpbGQ7CisgIHhtbFhQYXRoTmV4dERlc2NlbmRhbnQ7CisgIHhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGY7CisgIHhtbFhQYXRoTmV4dEZvbGxvd2luZzsKKyAgeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzsKKyAgeG1sWFBhdGhOZXh0TmFtZXNwYWNlOworICB4bWxYUGF0aE5leHRQYXJlbnQ7CisgIHhtbFhQYXRoTmV4dFByZWNlZGluZzsKKyAgeG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzsKKyAgeG1sWFBhdGhOZXh0U2VsZjsKKyAgeG1sWFBhdGhOb2RlTGVhZGluZzsKKyAgeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZDsKKyAgeG1sWFBhdGhOb2RlU2V0QWRkOworICB4bWxYUGF0aE5vZGVTZXRBZGROczsKKyAgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlOworICB4bWxYUGF0aE5vZGVTZXRDb250YWluczsKKyAgeG1sWFBhdGhOb2RlU2V0RGVsOworICB4bWxYUGF0aE5vZGVTZXRGcmVlTnM7CisgIHhtbFhQYXRoTm9kZVNldE1lcmdlOworICB4bWxYUGF0aE5vZGVTZXRSZW1vdmU7CisgIHhtbFhQYXRoTm9kZVNldFNvcnQ7CisgIHhtbFhQYXRoTm9kZVRyYWlsaW5nOworICB4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDsKKyAgeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbjsKKyAgeG1sWFBhdGhOb3RFcXVhbFZhbHVlczsKKyAgeG1sWFBhdGhOb3RGdW5jdGlvbjsKKyAgeG1sWFBhdGhOc0xvb2t1cDsKKyAgeG1sWFBhdGhOdW1iZXJGdW5jdGlvbjsKKyAgeG1sWFBhdGhQYXJzZU5DTmFtZTsKKyAgeG1sWFBhdGhQYXJzZU5hbWU7CisgIHhtbFhQYXRoUG9wQm9vbGVhbjsKKyAgeG1sWFBhdGhQb3BFeHRlcm5hbDsKKyAgeG1sWFBhdGhQb3BOb2RlU2V0OworICB4bWxYUGF0aFBvcE51bWJlcjsKKyAgeG1sWFBhdGhQb3BTdHJpbmc7CisgIHhtbFhQYXRoUG9zaXRpb25GdW5jdGlvbjsKKyAgeG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9uczsKKyAgeG1sWFBhdGhSZWdpc3RlckZ1bmM7CisgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwOworICB4bWxYUGF0aFJlZ2lzdGVyRnVuY05TOworICB4bWxYUGF0aFJlZ2lzdGVyTnM7CisgIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZTsKKyAgeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwOworICB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUzsKKyAgeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwOworICB4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXA7CisgIHhtbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXA7CisgIHhtbFhQYXRoUm9vdDsKKyAgeG1sWFBhdGhSb3VuZEZ1bmN0aW9uOworICB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbjsKKyAgeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyOworICB4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uOworICB4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uOworICB4bWxYUGF0aFN1YlZhbHVlczsKKyAgeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uOworICB4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uOworICB4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uOworICB4bWxYUGF0aFN1bUZ1bmN0aW9uOworICB4bWxYUGF0aFRyYWlsaW5nOworICB4bWxYUGF0aFRyYWlsaW5nU29ydGVkOworICB4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uOworICB4bWxYUGF0aFRydWVGdW5jdGlvbjsKKyAgeG1sWFBhdGhWYWx1ZUZsaXBTaWduOworICB4bWxYUGF0aFZhcmlhYmxlTG9va3VwOworICB4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlM7CisgIHhtbFhQYXRoV3JhcENTdHJpbmc7CisgIHhtbFhQYXRoV3JhcEV4dGVybmFsOworICB4bWxYUGF0aFdyYXBOb2RlU2V0OworICB4bWxYUGF0aFdyYXBTdHJpbmc7CisgIHhtbFhQYXRoZXJyb3I7CisKKyMgeG1sYXV0b21hdGEKKyAgeG1sQXV0b21hdGFDb21waWxlOworICB4bWxBdXRvbWF0YUdldEluaXRTdGF0ZTsKKyAgeG1sQXV0b21hdGFJc0RldGVybWluaXN0OworICB4bWxBdXRvbWF0YU5ld0FsbFRyYW5zOworICB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM7CisgIHhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zOworICB4bWxBdXRvbWF0YU5ld0NvdW50ZXI7CisgIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zOworICB4bWxBdXRvbWF0YU5ld0Vwc2lsb247CisgIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zOworICB4bWxBdXRvbWF0YU5ld1N0YXRlOworICB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb247CisgIHhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZTsKKyAgeG1sRnJlZUF1dG9tYXRhOworICB4bWxOZXdBdXRvbWF0YTsKKworIyBIVE1MdHJlZQorICBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQ7CisgIGh0bWxEb2NDb250ZW50RHVtcE91dHB1dDsKKyAgaHRtbERvY0R1bXA7CisgIGh0bWxEb2NEdW1wTWVtb3J5OworICBodG1sR2V0TWV0YUVuY29kaW5nOworICBodG1sSXNCb29sZWFuQXR0cjsKKyAgaHRtbE5ld0RvYzsKKyAgaHRtbE5ld0RvY05vRHREOworICBodG1sTm9kZUR1bXA7CisgIGh0bWxOb2RlRHVtcEZpbGU7CisgIGh0bWxOb2RlRHVtcEZpbGVGb3JtYXQ7CisgIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dDsKKyAgaHRtbE5vZGVEdW1wT3V0cHV0OworICBodG1sU2F2ZUZpbGU7CisgIGh0bWxTYXZlRmlsZUVuYzsKKyAgaHRtbFNhdmVGaWxlRm9ybWF0OworICBodG1sU2V0TWV0YUVuY29kaW5nOworCisjIG5hbm9mdHAKKyAgeG1sTmFub0ZUUENoZWNrUmVzcG9uc2U7CisgIHhtbE5hbm9GVFBDbGVhbnVwOworICB4bWxOYW5vRlRQQ2xvc2U7CisgIHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb247CisgIHhtbE5hbm9GVFBDb25uZWN0OworICB4bWxOYW5vRlRQQ29ubmVjdFRvOworICB4bWxOYW5vRlRQQ3dkOworICB4bWxOYW5vRlRQRnJlZUN0eHQ7CisgIHhtbE5hbm9GVFBHZXQ7CisgIHhtbE5hbm9GVFBHZXRDb25uZWN0aW9uOworICB4bWxOYW5vRlRQR2V0UmVzcG9uc2U7CisgIHhtbE5hbm9GVFBHZXRTb2NrZXQ7CisgIHhtbE5hbm9GVFBJbml0OworICB4bWxOYW5vRlRQTGlzdDsKKyAgeG1sTmFub0ZUUE5ld0N0eHQ7CisgIHhtbE5hbm9GVFBPcGVuOworICB4bWxOYW5vRlRQUHJveHk7CisgIHhtbE5hbm9GVFBRdWl0OworICB4bWxOYW5vRlRQUmVhZDsKKyAgeG1sTmFub0ZUUFNjYW5Qcm94eTsKKyAgeG1sTmFub0ZUUFVwZGF0ZVVSTDsKKworIyBET0NCcGFyc2VyCisgIGRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dDsKKyAgZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0OworICBkb2NiRW5jb2RlRW50aXRpZXM7CisgIGRvY2JGcmVlUGFyc2VyQ3R4dDsKKyAgZG9jYlBhcnNlQ2h1bms7CisgIGRvY2JQYXJzZURvYzsKKyAgZG9jYlBhcnNlRG9jdW1lbnQ7CisgIGRvY2JQYXJzZUZpbGU7CisgIGRvY2JTQVhQYXJzZURvYzsKKyAgZG9jYlNBWFBhcnNlRmlsZTsKKworIyB4cGF0aAorICB4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXI7CisgIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZzsKKyAgeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbjsKKyAgeG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyOworICB4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmc7CisgIHhtbFhQYXRoQ2FzdE5vZGVUb051bWJlcjsKKyAgeG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nOworICB4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW47CisgIHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nOworICB4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW47CisgIHhtbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyOworICB4bWxYUGF0aENhc3RUb0Jvb2xlYW47CisgIHhtbFhQYXRoQ2FzdFRvTnVtYmVyOworICB4bWxYUGF0aENhc3RUb1N0cmluZzsKKyAgeG1sWFBhdGhDbXBOb2RlczsKKyAgeG1sWFBhdGhDb21waWxlOworICB4bWxYUGF0aENvbXBpbGVkRXZhbDsKKyAgeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbjsKKyAgeG1sWFBhdGhDb252ZXJ0TnVtYmVyOworICB4bWxYUGF0aENvbnZlcnRTdHJpbmc7CisgIHhtbFhQYXRoRXZhbDsKKyAgeG1sWFBhdGhFdmFsRXhwcmVzc2lvbjsKKyAgeG1sWFBhdGhFdmFsUHJlZGljYXRlOworICB4bWxYUGF0aEZyZWVDb21wRXhwcjsKKyAgeG1sWFBhdGhGcmVlQ29udGV4dDsKKyAgeG1sWFBhdGhGcmVlTm9kZVNldDsKKyAgeG1sWFBhdGhGcmVlTm9kZVNldExpc3Q7CisgIHhtbFhQYXRoRnJlZU9iamVjdDsKKyAgeG1sWFBhdGhJbml0OworICB4bWxYUGF0aElzSW5mOworICB4bWxYUGF0aElzTmFOOworICB4bWxYUGF0aE5BTjsgIyB2YXJpYWJsZQorICB4bWxYUGF0aE5JTkY7ICMgdmFyaWFibGUKKyAgeG1sWFBhdGhOZXdDb250ZXh0OworICB4bWxYUGF0aE5vZGVTZXRDcmVhdGU7CisgIHhtbFhQYXRoT2JqZWN0Q29weTsKKyAgeG1sWFBhdGhQSU5GOyAjIHZhcmlhYmxlCisKKyMgeGxpbmsKKyAgeGxpbmtHZXREZWZhdWx0RGV0ZWN0OworICB4bGlua0dldERlZmF1bHRIYW5kbGVyOworICB4bGlua0lzTGluazsKKyAgeGxpbmtTZXREZWZhdWx0RGV0ZWN0OworICB4bGlua1NldERlZmF1bHRIYW5kbGVyOworCisjIGVudGl0aWVzCisgIHhtbEFkZERvY0VudGl0eTsKKyAgeG1sQWRkRHRkRW50aXR5OworICB4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzOworICB4bWxDb3B5RW50aXRpZXNUYWJsZTsKKyAgeG1sQ3JlYXRlRW50aXRpZXNUYWJsZTsKKyAgeG1sRHVtcEVudGl0aWVzVGFibGU7CisgIHhtbER1bXBFbnRpdHlEZWNsOworICB4bWxFbmNvZGVFbnRpdGllczsKKyAgeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQ7CisgIHhtbEVuY29kZVNwZWNpYWxDaGFyczsKKyAgeG1sRnJlZUVudGl0aWVzVGFibGU7CisgIHhtbEdldERvY0VudGl0eTsKKyAgeG1sR2V0RHRkRW50aXR5OworICB4bWxHZXRQYXJhbWV0ZXJFbnRpdHk7CisgIHhtbEdldFByZWRlZmluZWRFbnRpdHk7CisgIHhtbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXM7CisKKyMgeGluY2x1ZGUKKyAgeG1sWEluY2x1ZGVQcm9jZXNzOworCisjIGxpc3QKKyAgeG1sTGlua0dldERhdGE7CisgIHhtbExpc3RBcHBlbmQ7CisgIHhtbExpc3RDbGVhcjsKKyAgeG1sTGlzdENvcHk7CisgIHhtbExpc3RDcmVhdGU7CisgIHhtbExpc3REZWxldGU7CisgIHhtbExpc3REdXA7CisgIHhtbExpc3RFbXB0eTsKKyAgeG1sTGlzdEVuZDsKKyAgeG1sTGlzdEZyb250OworICB4bWxMaXN0SW5zZXJ0OworICB4bWxMaXN0TWVyZ2U7CisgIHhtbExpc3RQb3BCYWNrOworICB4bWxMaXN0UG9wRnJvbnQ7CisgIHhtbExpc3RQdXNoQmFjazsKKyAgeG1sTGlzdFB1c2hGcm9udDsKKyAgeG1sTGlzdFJlbW92ZUFsbDsKKyAgeG1sTGlzdFJlbW92ZUZpcnN0OworICB4bWxMaXN0UmVtb3ZlTGFzdDsKKyAgeG1sTGlzdFJldmVyc2U7CisgIHhtbExpc3RSZXZlcnNlU2VhcmNoOworICB4bWxMaXN0UmV2ZXJzZVdhbGs7CisgIHhtbExpc3RTZWFyY2g7CisgIHhtbExpc3RTaXplOworICB4bWxMaXN0U29ydDsKKyAgeG1sTGlzdFdhbGs7CisKKyMgeG1sbWVtb3J5CisgIHhtbEluaXRNZW1vcnk7CisgIHhtbE1hbGxvY0xvYzsKKyAgeG1sTWVtRGlzcGxheTsKKyAgeG1sTWVtRnJlZTsKKyAgeG1sTWVtR2V0OworICB4bWxNZW1NYWxsb2M7CisgIHhtbE1lbVJlYWxsb2M7CisgIHhtbE1lbVNldHVwOworICB4bWxNZW1TaG93OworICB4bWxNZW1TdHJkdXBMb2M7CisgIHhtbE1lbVVzZWQ7CisgIHhtbE1lbW9yeUR1bXA7CisgIHhtbE1lbW9yeVN0cmR1cDsKKyAgeG1sUmVhbGxvY0xvYzsKKworIyB4bWxJTworICB4bWxBbGxvY091dHB1dEJ1ZmZlcjsKKyAgeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcjsKKyAgeG1sQ2hlY2tGaWxlbmFtZTsKKyAgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzOworICB4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzOworICB4bWxGaWxlQ2xvc2U7CisgIHhtbEZpbGVNYXRjaDsKKyAgeG1sRmlsZU9wZW47CisgIHhtbEZpbGVSZWFkOworICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXI7CisgIHhtbElPRlRQQ2xvc2U7CisgIHhtbElPRlRQTWF0Y2g7CisgIHhtbElPRlRQT3BlbjsKKyAgeG1sSU9GVFBSZWFkOworICB4bWxJT0hUVFBDbG9zZTsKKyAgeG1sSU9IVFRQTWF0Y2g7CisgIHhtbElPSFRUUE9wZW47CisgIHhtbElPSFRUUE9wZW5XOworICB4bWxJT0hUVFBSZWFkOworICB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyOworICB4bWxOb3JtYWxpemVXaW5kb3dzUGF0aDsKKyAgeG1sT3V0cHV0QnVmZmVyQ2xvc2U7CisgIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkOworICB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlOworICB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTsKKyAgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU87CisgIHhtbE91dHB1dEJ1ZmZlckZsdXNoOworICB4bWxPdXRwdXRCdWZmZXJXcml0ZTsKKyAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmc7CisgIHhtbFBhcnNlckdldERpcmVjdG9yeTsKKyAgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZDsKKyAgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlOworICB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lOworICB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPOworICB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbTsKKyAgeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93OworICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2g7CisgIHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZDsKKyAgeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3M7CisgIHhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrczsKKyAgeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrczsKKyAgeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrczsKKyAgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3M7CisKKyMgeG1sdmVyc2lvbgorICB4bWxDaGVja1ZlcnNpb247CisKKyMgdmFsaWQKKyAgeG1sQWRkQXR0cmlidXRlRGVjbDsKKyAgeG1sQWRkRWxlbWVudERlY2w7CisgIHhtbEFkZElEOworICB4bWxBZGROb3RhdGlvbkRlY2w7CisgIHhtbEFkZFJlZjsKKyAgeG1sQ29weUF0dHJpYnV0ZVRhYmxlOworICB4bWxDb3B5RWxlbWVudENvbnRlbnQ7CisgIHhtbENvcHlFbGVtZW50VGFibGU7CisgIHhtbENvcHlFbnVtZXJhdGlvbjsKKyAgeG1sQ29weU5vdGF0aW9uVGFibGU7CisgIHhtbENyZWF0ZUVudW1lcmF0aW9uOworICB4bWxEdW1wQXR0cmlidXRlRGVjbDsKKyAgeG1sRHVtcEF0dHJpYnV0ZVRhYmxlOworICB4bWxEdW1wRWxlbWVudERlY2w7CisgIHhtbER1bXBFbGVtZW50VGFibGU7CisgIHhtbER1bXBOb3RhdGlvbkRlY2w7CisgIHhtbER1bXBOb3RhdGlvblRhYmxlOworICB4bWxGcmVlQXR0cmlidXRlVGFibGU7CisgIHhtbEZyZWVFbGVtZW50Q29udGVudDsKKyAgeG1sRnJlZUVsZW1lbnRUYWJsZTsKKyAgeG1sRnJlZUVudW1lcmF0aW9uOworICB4bWxGcmVlSURUYWJsZTsKKyAgeG1sRnJlZU5vdGF0aW9uVGFibGU7CisgIHhtbEZyZWVSZWZUYWJsZTsKKyAgeG1sR2V0RHRkQXR0ckRlc2M7CisgIHhtbEdldER0ZEVsZW1lbnREZXNjOworICB4bWxHZXREdGROb3RhdGlvbkRlc2M7CisgIHhtbEdldER0ZFFBdHRyRGVzYzsKKyAgeG1sR2V0RHRkUUVsZW1lbnREZXNjOworICB4bWxHZXRJRDsKKyAgeG1sR2V0UmVmczsKKyAgeG1sSXNJRDsKKyAgeG1sSXNNaXhlZEVsZW1lbnQ7CisgIHhtbElzUmVmOworICB4bWxOZXdFbGVtZW50Q29udGVudDsKKyAgeG1sUmVtb3ZlSUQ7CisgIHhtbFJlbW92ZVJlZjsKKyAgeG1sU25wcmludGZFbGVtZW50Q29udGVudDsKKworIyB0cmVlCisgIHhtbFNwbGl0UU5hbWUyOworCisjIHZhbGlkCisgIHhtbFNwcmludGZFbGVtZW50Q29udGVudDsKKyAgeG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbDsKKyAgeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWU7CisgIHhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW47CisgIHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50czsKKyAgeG1sVmFsaWROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZTsKKyAgeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsOworICB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlOworICB4bWxWYWxpZGF0ZURvY3VtZW50OworICB4bWxWYWxpZGF0ZURvY3VtZW50RmluYWw7CisgIHhtbFZhbGlkYXRlRHRkOworICB4bWxWYWxpZGF0ZUR0ZEZpbmFsOworICB4bWxWYWxpZGF0ZUVsZW1lbnQ7CisgIHhtbFZhbGlkYXRlRWxlbWVudERlY2w7CisgIHhtbFZhbGlkYXRlTmFtZVZhbHVlOworICB4bWxWYWxpZGF0ZU5hbWVzVmFsdWU7CisgIHhtbFZhbGlkYXRlTm10b2tlblZhbHVlOworICB4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWU7CisgIHhtbFZhbGlkYXRlTm90YXRpb25EZWNsOworICB4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlOworICB4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZTsKKyAgeG1sVmFsaWRhdGVPbmVFbGVtZW50OworICB4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZTsKKyAgeG1sVmFsaWRhdGVSb290OworCisjIEhUTUxwYXJzZXIKKyAgVVRGOFRvSHRtbDsKKyAgaHRtbEF1dG9DbG9zZVRhZzsKKyAgaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0OworICBodG1sRW5jb2RlRW50aXRpZXM7CisgIGh0bWxFbnRpdHlMb29rdXA7CisgIGh0bWxFbnRpdHlWYWx1ZUxvb2t1cDsKKyAgaHRtbEZyZWVQYXJzZXJDdHh0OworICBodG1sSGFuZGxlT21pdHRlZEVsZW07CisgIGh0bWxJc0F1dG9DbG9zZWQ7CisgIGh0bWxJc1NjcmlwdEF0dHJpYnV0ZTsKKyAgaHRtbFBhcnNlQ2hhclJlZjsKKyAgaHRtbFBhcnNlQ2h1bms7CisgIGh0bWxQYXJzZURvYzsKKyAgaHRtbFBhcnNlRG9jdW1lbnQ7CisgIGh0bWxQYXJzZUVsZW1lbnQ7CisgIGh0bWxQYXJzZUVudGl0eVJlZjsKKyAgaHRtbFBhcnNlRmlsZTsKKyAgaHRtbFNBWFBhcnNlRG9jOworICBodG1sU0FYUGFyc2VGaWxlOworICBodG1sVGFnTG9va3VwOworCisjIHhtbHN0cmluZworICB4bWxDaGFyU3RyZHVwOworICB4bWxDaGFyU3RybmR1cDsKKworIyBwYXJzZXIKKyAgeG1sQ2xlYW51cFBhcnNlcjsKKyAgeG1sQ2xlYXJOb2RlSW5mb1NlcTsKKyAgeG1sQ2xlYXJQYXJzZXJDdHh0OworICB4bWxDcmVhdGVEb2NQYXJzZXJDdHh0OworICB4bWxDcmVhdGVJT1BhcnNlckN0eHQ7CisgIHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0OworICB4bWxGcmVlUGFyc2VyQ3R4dDsKKyAgeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI7CisgIHhtbEdldEZlYXR1cmU7CisgIHhtbEdldEZlYXR1cmVzTGlzdDsKKworIyBnbG9iYWxzCisgIHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlOyAjIHZhcmlhYmxlCisKKyMgcGFyc2VyCisgIHhtbElPUGFyc2VEVEQ7CisgIHhtbEluaXROb2RlSW5mb1NlcTsKKyAgeG1sSW5pdFBhcnNlcjsKKyAgeG1sSW5pdFBhcnNlckN0eHQ7CisgIHhtbEtlZXBCbGFua3NEZWZhdWx0OworICB4bWxMaW5lTnVtYmVyc0RlZmF1bHQ7CisgIHhtbExvYWRFeHRlcm5hbEVudGl0eTsKKyAgeG1sTmV3SU9JbnB1dFN0cmVhbTsKKyAgeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5OworICB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyOworICB4bWxQYXJzZUNodW5rOworICB4bWxQYXJzZUN0eHRFeHRlcm5hbEVudGl0eTsKKyAgeG1sUGFyc2VEVEQ7CisgIHhtbFBhcnNlRG9jOworICB4bWxQYXJzZURvY3VtZW50OworICB4bWxQYXJzZUVudGl0eTsKKyAgeG1sUGFyc2VFeHRQYXJzZWRFbnQ7CisgIHhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk7CisgIHhtbFBhcnNlRmlsZTsKKyAgeG1sUGFyc2VNZW1vcnk7CisgIHhtbFBhcnNlckFkZE5vZGVJbmZvOworICB4bWxQYXJzZXJGaW5kTm9kZUluZm87CisgIHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4OworICB4bWxQYXJzZXJJbnB1dEdyb3c7CisgIHhtbFBhcnNlcklucHV0UmVhZDsKKyAgeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0OworICB4bWxSZWNvdmVyRG9jOworICB4bWxSZWNvdmVyRmlsZTsKKyAgeG1sUmVjb3Zlck1lbW9yeTsKKyAgeG1sU0FYUGFyc2VEVEQ7CisgIHhtbFNBWFBhcnNlRG9jOworICB4bWxTQVhQYXJzZUVudGl0eTsKKyAgeG1sU0FYUGFyc2VGaWxlOworICB4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YTsKKyAgeG1sU0FYUGFyc2VNZW1vcnk7CisgIHhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE7CisgIHhtbFNBWFVzZXJQYXJzZUZpbGU7CisgIHhtbFNBWFVzZXJQYXJzZU1lbW9yeTsKKyAgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI7CisgIHhtbFNldEZlYXR1cmU7CisgIHhtbFNldHVwUGFyc2VyRm9yQnVmZmVyOworICB4bWxTdG9wUGFyc2VyOworCisjIHhtbHN0cmluZworICB4bWxTdHJFcXVhbDsKKyAgeG1sU3RyY2FzZWNtcDsKKyAgeG1sU3RyY2FzZXN0cjsKKyAgeG1sU3RyY2F0OworICB4bWxTdHJjaHI7CisgIHhtbFN0cmNtcDsKKyAgeG1sU3RyZHVwOworICB4bWxTdHJsZW47CisgIHhtbFN0cm5jYXNlY21wOworICB4bWxTdHJuY2F0OworICB4bWxTdHJuY21wOworICB4bWxTdHJuZHVwOworICB4bWxTdHJzdHI7CisgIHhtbFN0cnN1YjsKKworIyBwYXJzZXIKKyAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdDsKKworIyB4bWxyZWFkZXIKKyAgeG1sRnJlZVRleHRSZWFkZXI7CisgIHhtbE5ld1RleHRSZWFkZXI7CisgIHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZTsKKyAgeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50OworICB4bWxUZXh0UmVhZGVyQmFzZVVyaTsKKyAgeG1sVGV4dFJlYWRlckRlcHRoOworICB4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlczsKKyAgeG1sVGV4dFJlYWRlckhhc1ZhbHVlOworICB4bWxUZXh0UmVhZGVySXNEZWZhdWx0OworICB4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQ7CisgIHhtbFRleHRSZWFkZXJMb2NhbE5hbWU7CisgIHhtbFRleHRSZWFkZXJOYW1lOworICB4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpOworICB4bWxUZXh0UmVhZGVyTm9kZVR5cGU7CisgIHhtbFRleHRSZWFkZXJQcmVmaXg7CisgIHhtbFRleHRSZWFkZXJRdW90ZUNoYXI7CisgIHhtbFRleHRSZWFkZXJSZWFkOworICB4bWxUZXh0UmVhZGVyVmFsdWU7CisgIHhtbFRleHRSZWFkZXJYbWxMYW5nOworCisjIGdsb2JhbHMKKyAgZG9jYkRlZmF1bHRTQVhIYW5kbGVyOyAjIHZhcmlhYmxlCisgIGh0bWxEZWZhdWx0U0FYSGFuZGxlcjsgIyB2YXJpYWJsZQorICB4bWxEZWZhdWx0U0FYSGFuZGxlcjsgIyB2YXJpYWJsZQorICB4bWxEZWZhdWx0U0FYTG9jYXRvcjsgIyB2YXJpYWJsZQorICB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU7ICMgdmFyaWFibGUKKyAgeG1sRnJlZTsgIyB2YXJpYWJsZQorICB4bWxHZW5lcmljRXJyb3I7ICMgdmFyaWFibGUKKyAgeG1sR2VuZXJpY0Vycm9yQ29udGV4dDsgIyB2YXJpYWJsZQorICB4bWxJbml0aWFsaXplR2xvYmFsU3RhdGU7CisgIHhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWU7ICMgdmFyaWFibGUKKyAgeG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWU7ICMgdmFyaWFibGUKKyAgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZTsgIyB2YXJpYWJsZQorICB4bWxNYWxsb2M7ICMgdmFyaWFibGUKKyAgeG1sTWVtU3RyZHVwOyAjIHZhcmlhYmxlCisgIHhtbFBhcnNlckRlYnVnRW50aXRpZXM7ICMgdmFyaWFibGUKKyAgeG1sUGFyc2VyVmVyc2lvbjsgIyB2YXJpYWJsZQorICB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZTsgIyB2YXJpYWJsZQorICB4bWxSZWFsbG9jOyAjIHZhcmlhYmxlCisgIHhtbFNhdmVOb0VtcHR5VGFnczsgIyB2YXJpYWJsZQorICB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWU7ICMgdmFyaWFibGUKKyAgeG1sVHJlZUluZGVudFN0cmluZzsgIyB2YXJpYWJsZQorCisjIHRocmVhZHMKKyAgeG1sQ2xlYW51cFRocmVhZHM7CisgIHhtbEZyZWVNdXRleDsKKyAgeG1sRnJlZVJNdXRleDsKKyAgeG1sR2V0R2xvYmFsU3RhdGU7CisgIHhtbEdldFRocmVhZElkOworICB4bWxJbml0VGhyZWFkczsKKyAgeG1sSXNNYWluVGhyZWFkOworICB4bWxMb2NrTGlicmFyeTsKKyAgeG1sTXV0ZXhMb2NrOworICB4bWxNdXRleFVubG9jazsKKyAgeG1sTmV3TXV0ZXg7CisgIHhtbE5ld1JNdXRleDsKKyAgeG1sUk11dGV4TG9jazsKKyAgeG1sUk11dGV4VW5sb2NrOworICB4bWxVbmxvY2tMaWJyYXJ5OworCisjIGhhc2gKKyAgeG1sSGFzaEFkZEVudHJ5OworICB4bWxIYXNoQWRkRW50cnkyOworICB4bWxIYXNoQWRkRW50cnkzOworICB4bWxIYXNoQ29weTsKKyAgeG1sSGFzaENyZWF0ZTsKKyAgeG1sSGFzaEZyZWU7CisgIHhtbEhhc2hMb29rdXA7CisgIHhtbEhhc2hMb29rdXAyOworICB4bWxIYXNoTG9va3VwMzsKKyAgeG1sSGFzaFJlbW92ZUVudHJ5OworICB4bWxIYXNoUmVtb3ZlRW50cnkyOworICB4bWxIYXNoUmVtb3ZlRW50cnkzOworICB4bWxIYXNoU2NhbjsKKyAgeG1sSGFzaFNjYW4zOworICB4bWxIYXNoU2NhbkZ1bGw7CisgIHhtbEhhc2hTY2FuRnVsbDM7CisgIHhtbEhhc2hTaXplOworICB4bWxIYXNoVXBkYXRlRW50cnk7CisgIHhtbEhhc2hVcGRhdGVFbnRyeTI7CisgIHhtbEhhc2hVcGRhdGVFbnRyeTM7CisKKyMgeG1sZXJyb3IKKyAgaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jOworICB4bWxQYXJzZXJFcnJvcjsKKyAgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDsKKyAgeG1sUGFyc2VyUHJpbnRGaWxlSW5mbzsKKyAgeG1sUGFyc2VyVmFsaWRpdHlFcnJvcjsKKyAgeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nOworICB4bWxQYXJzZXJXYXJuaW5nOworICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jOworCisjIGdsb2JhbHMKKyAgb2xkWE1MV0Rjb21wYXRpYmlsaXR5OyAjIHZhcmlhYmxlCisKKyMgdHJlZQorICB4bWxBZGRDaGlsZDsKKyAgeG1sQWRkQ2hpbGRMaXN0OworICB4bWxBZGROZXh0U2libGluZzsKKyAgeG1sQWRkUHJldlNpYmxpbmc7CisgIHhtbEFkZFNpYmxpbmc7CisgIHhtbEJ1ZmZlckFkZDsKKyAgeG1sQnVmZmVyQWRkSGVhZDsKKworIyBnbG9iYWxzCisgIHhtbEJ1ZmZlckFsbG9jU2NoZW1lOyAjIHZhcmlhYmxlCisKKyMgdHJlZQorICB4bWxCdWZmZXJDQ2F0OworICB4bWxCdWZmZXJDYXQ7CisgIHhtbEJ1ZmZlckNvbnRlbnQ7CisgIHhtbEJ1ZmZlckNyZWF0ZTsKKyAgeG1sQnVmZmVyQ3JlYXRlU2l6ZTsKKyAgeG1sQnVmZmVyRHVtcDsKKyAgeG1sQnVmZmVyRW1wdHk7CisgIHhtbEJ1ZmZlckZyZWU7CisgIHhtbEJ1ZmZlckdyb3c7CisgIHhtbEJ1ZmZlckxlbmd0aDsKKyAgeG1sQnVmZmVyUmVzaXplOworICB4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lOworICB4bWxCdWZmZXJTaHJpbms7CisgIHhtbEJ1ZmZlcldyaXRlQ0hBUjsKKyAgeG1sQnVmZmVyV3JpdGVDaGFyOworICB4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZzsKKyAgeG1sQ29weURvYzsKKyAgeG1sQ29weUR0ZDsKKyAgeG1sQ29weU5hbWVzcGFjZTsKKyAgeG1sQ29weU5hbWVzcGFjZUxpc3Q7CisgIHhtbENvcHlOb2RlOworICB4bWxDb3B5Tm9kZUxpc3Q7CisgIHhtbENvcHlQcm9wOworICB4bWxDb3B5UHJvcExpc3Q7CisgIHhtbENyZWF0ZUludFN1YnNldDsKKworIyBnbG9iYWxzCisgIHhtbERlZmF1bHRCdWZmZXJTaXplOyAjIHZhcmlhYmxlCisKKyMgdHJlZQorICB4bWxEb2NDb3B5Tm9kZTsKKyAgeG1sRG9jRHVtcDsKKyAgeG1sRG9jRHVtcEZvcm1hdE1lbW9yeTsKKyAgeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYzsKKyAgeG1sRG9jRHVtcE1lbW9yeTsKKyAgeG1sRG9jRHVtcE1lbW9yeUVuYzsKKyAgeG1sRG9jRm9ybWF0RHVtcDsKKyAgeG1sRG9jR2V0Um9vdEVsZW1lbnQ7CisgIHhtbERvY1NldFJvb3RFbGVtZW50OworICB4bWxFbGVtRHVtcDsKKyAgeG1sRnJlZURvYzsKKyAgeG1sRnJlZUR0ZDsKKyAgeG1sRnJlZU5vZGU7CisgIHhtbEZyZWVOb2RlTGlzdDsKKyAgeG1sRnJlZU5zOworICB4bWxGcmVlTnNMaXN0OworICB4bWxGcmVlUHJvcDsKKyAgeG1sRnJlZVByb3BMaXN0OworICB4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lOworICB4bWxHZXRDb21wcmVzc01vZGU7CisgIHhtbEdldERvY0NvbXByZXNzTW9kZTsKKyAgeG1sR2V0SW50U3Vic2V0OworICB4bWxHZXRMYXN0Q2hpbGQ7CisgIHhtbEdldExpbmVObzsKKyAgeG1sR2V0Tm9kZVBhdGg7CisgIHhtbEdldE5zTGlzdDsKKyAgeG1sR2V0TnNQcm9wOworICB4bWxHZXRQcm9wOworICB4bWxIYXNOc1Byb3A7CisgIHhtbEhhc1Byb3A7CisKKyMgZ2xvYmFscworICB4bWxJbmRlbnRUcmVlT3V0cHV0OyAjIHZhcmlhYmxlCisKKyMgdHJlZQorICB4bWxJc0JsYW5rTm9kZTsKKyAgeG1sSXNYSFRNTDsKKyAgeG1sTmV3Q0RhdGFCbG9jazsKKyAgeG1sTmV3Q2hhclJlZjsKKyAgeG1sTmV3Q2hpbGQ7CisgIHhtbE5ld0NvbW1lbnQ7CisgIHhtbE5ld0RvYzsKKyAgeG1sTmV3RG9jQ29tbWVudDsKKyAgeG1sTmV3RG9jRnJhZ21lbnQ7CisgIHhtbE5ld0RvY05vZGU7CisgIHhtbE5ld0RvY05vZGVFYXROYW1lOworICB4bWxOZXdEb2NQcm9wOworICB4bWxOZXdEb2NSYXdOb2RlOworICB4bWxOZXdEb2NUZXh0OworICB4bWxOZXdEb2NUZXh0TGVuOworICB4bWxOZXdEdGQ7CisgIHhtbE5ld0dsb2JhbE5zOworICB4bWxOZXdOb2RlOworICB4bWxOZXdOb2RlRWF0TmFtZTsKKyAgeG1sTmV3TnM7CisgIHhtbE5ld05zUHJvcDsKKyAgeG1sTmV3TnNQcm9wRWF0TmFtZTsKKyAgeG1sTmV3UEk7CisgIHhtbE5ld1Byb3A7CisgIHhtbE5ld1JlZmVyZW5jZTsKKyAgeG1sTmV3VGV4dDsKKyAgeG1sTmV3VGV4dENoaWxkOworICB4bWxOZXdUZXh0TGVuOworICB4bWxOb2RlQWRkQ29udGVudDsKKyAgeG1sTm9kZUFkZENvbnRlbnRMZW47CisgIHhtbE5vZGVEdW1wOworICB4bWxOb2RlRHVtcE91dHB1dDsKKyAgeG1sTm9kZUdldEJhc2U7CisgIHhtbE5vZGVHZXRDb250ZW50OworICB4bWxOb2RlR2V0TGFuZzsKKyAgeG1sTm9kZUdldFNwYWNlUHJlc2VydmU7CisgIHhtbE5vZGVJc1RleHQ7CisgIHhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nOworICB4bWxOb2RlTGlzdEdldFN0cmluZzsKKyAgeG1sTm9kZVNldEJhc2U7CisgIHhtbE5vZGVTZXRDb250ZW50OworICB4bWxOb2RlU2V0Q29udGVudExlbjsKKyAgeG1sTm9kZVNldExhbmc7CisgIHhtbE5vZGVTZXROYW1lOworICB4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZTsKKyAgeG1sUmVjb25jaWxpYXRlTnM7CisgIHhtbFJlbW92ZVByb3A7CisgIHhtbFJlcGxhY2VOb2RlOworICB4bWxTYXZlRmlsZTsKKyAgeG1sU2F2ZUZpbGVFbmM7CisgIHhtbFNhdmVGaWxlVG87CisgIHhtbFNhdmVGb3JtYXRGaWxlOworICB4bWxTYXZlRm9ybWF0RmlsZUVuYzsKKyAgeG1sU2F2ZUZvcm1hdEZpbGVUbzsKKyAgeG1sU2VhcmNoTnM7CisgIHhtbFNlYXJjaE5zQnlIcmVmOworICB4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lOworICB4bWxTZXRDb21wcmVzc01vZGU7CisgIHhtbFNldERvY0NvbXByZXNzTW9kZTsKKyAgeG1sU2V0TGlzdERvYzsKKyAgeG1sU2V0TnM7CisgIHhtbFNldE5zUHJvcDsKKyAgeG1sU2V0UHJvcDsKKyAgeG1sU2V0VHJlZURvYzsKKyAgeG1sU3RyaW5nR2V0Tm9kZUxpc3Q7CisgIHhtbFN0cmluZ0xlbkdldE5vZGVMaXN0OworICB4bWxUZXh0Q29uY2F0OworICB4bWxUZXh0TWVyZ2U7CisgIHhtbFVubGlua05vZGU7CisgIHhtbFVuc2V0TnNQcm9wOworICB4bWxVbnNldFByb3A7CisKKyMgeG1scmVnZXhwCisgIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nOworICB4bWxSZWdGcmVlRXhlY0N0eHQ7CisgIHhtbFJlZ0ZyZWVSZWdleHA7CisgIHhtbFJlZ05ld0V4ZWNDdHh0OworICB4bWxSZWdleHBDb21waWxlOworICB4bWxSZWdleHBFeGVjOworICB4bWxSZWdleHBJc0RldGVybWluaXN0OworICB4bWxSZWdleHBQcmludDsKKworIyBuYW5vaHR0cAorICB4bWxOYW5vSFRUUEF1dGhIZWFkZXI7CisgIHhtbE5hbm9IVFRQQ2xlYW51cDsKKyAgeG1sTmFub0hUVFBDbG9zZTsKKyAgeG1sTmFub0hUVFBGZXRjaDsKKyAgeG1sTmFub0hUVFBJbml0OworICB4bWxOYW5vSFRUUE1ldGhvZDsKKyAgeG1sTmFub0hUVFBNZXRob2RSZWRpcjsKKyAgeG1sTmFub0hUVFBPcGVuOworICB4bWxOYW5vSFRUUE9wZW5SZWRpcjsKKyAgeG1sTmFub0hUVFBSZWFkOworICB4bWxOYW5vSFRUUFJldHVybkNvZGU7CisgIHhtbE5hbm9IVFRQU2F2ZTsKKyAgeG1sTmFub0hUVFBTY2FuUHJveHk7CisKKyMgeG1sdW5pY29kZQorICB4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtczsKKyAgeG1sVUNTSXNBcmFiaWM7CisgIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBOworICB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQjsKKyAgeG1sVUNTSXNBcm1lbmlhbjsKKyAgeG1sVUNTSXNBcnJvd3M7CisgIHhtbFVDU0lzQmFzaWNMYXRpbjsKKyAgeG1sVUNTSXNCZW5nYWxpOworICB4bWxVQ1NJc0Jsb2NrOworICB4bWxVQ1NJc0Jsb2NrRWxlbWVudHM7CisgIHhtbFVDU0lzQm9wb21vZm87CisgIHhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZDsKKyAgeG1sVUNTSXNCb3hEcmF3aW5nOworICB4bWxVQ1NJc0JyYWlsbGVQYXR0ZXJuczsKKyAgeG1sVUNTSXNCeXphbnRpbmVNdXNpY2FsU3ltYm9sczsKKyAgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5OworICB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtczsKKyAgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoczsKKyAgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQ7CisgIHhtbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50OworICB4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbjsKKyAgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoczsKKyAgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkE7CisgIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25COworICB4bWxVQ1NJc0NhdDsKKyAgeG1sVUNTSXNDYXRDOworICB4bWxVQ1NJc0NhdENjOworICB4bWxVQ1NJc0NhdENmOworICB4bWxVQ1NJc0NhdENvOworICB4bWxVQ1NJc0NhdENzOworICB4bWxVQ1NJc0NhdEw7CisgIHhtbFVDU0lzQ2F0TGw7CisgIHhtbFVDU0lzQ2F0TG07CisgIHhtbFVDU0lzQ2F0TG87CisgIHhtbFVDU0lzQ2F0THQ7CisgIHhtbFVDU0lzQ2F0THU7CisgIHhtbFVDU0lzQ2F0TTsKKyAgeG1sVUNTSXNDYXRNYzsKKyAgeG1sVUNTSXNDYXRNZTsKKyAgeG1sVUNTSXNDYXRNbjsKKyAgeG1sVUNTSXNDYXROOworICB4bWxVQ1NJc0NhdE5kOworICB4bWxVQ1NJc0NhdE5sOworICB4bWxVQ1NJc0NhdE5vOworICB4bWxVQ1NJc0NhdFA7CisgIHhtbFVDU0lzQ2F0UGM7CisgIHhtbFVDU0lzQ2F0UGQ7CisgIHhtbFVDU0lzQ2F0UGU7CisgIHhtbFVDU0lzQ2F0UGY7CisgIHhtbFVDU0lzQ2F0UGk7CisgIHhtbFVDU0lzQ2F0UG87CisgIHhtbFVDU0lzQ2F0UHM7CisgIHhtbFVDU0lzQ2F0UzsKKyAgeG1sVUNTSXNDYXRTYzsKKyAgeG1sVUNTSXNDYXRTazsKKyAgeG1sVUNTSXNDYXRTbTsKKyAgeG1sVUNTSXNDYXRTbzsKKyAgeG1sVUNTSXNDYXRaOworICB4bWxVQ1NJc0NhdFpsOworICB4bWxVQ1NJc0NhdFpwOworICB4bWxVQ1NJc0NhdFpzOworICB4bWxVQ1NJc0NoZXJva2VlOworICB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3M7CisgIHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzOworICB4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9sczsKKyAgeG1sVUNTSXNDb250cm9sUGljdHVyZXM7CisgIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzOworICB4bWxVQ1NJc0N5cmlsbGljOworICB4bWxVQ1NJc0Rlc2VyZXQ7CisgIHhtbFVDU0lzRGV2YW5hZ2FyaTsKKyAgeG1sVUNTSXNEaW5nYmF0czsKKyAgeG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3M7CisgIHhtbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzOworICB4bWxVQ1NJc0V0aGlvcGljOworICB4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbjsKKyAgeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXM7CisgIHhtbFVDU0lzR2VvcmdpYW47CisgIHhtbFVDU0lzR290aGljOworICB4bWxVQ1NJc0dyZWVrOworICB4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQ7CisgIHhtbFVDU0lzR3VqYXJhdGk7CisgIHhtbFVDU0lzR3VybXVraGk7CisgIHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM7CisgIHhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW87CisgIHhtbFVDU0lzSGFuZ3VsSmFtbzsKKyAgeG1sVUNTSXNIYW5ndWxTeWxsYWJsZXM7CisgIHhtbFVDU0lzSGVicmV3OworICB4bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlczsKKyAgeG1sVUNTSXNIaWdoU3Vycm9nYXRlczsKKyAgeG1sVUNTSXNIaXJhZ2FuYTsKKyAgeG1sVUNTSXNJUEFFeHRlbnNpb25zOworICB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzOworICB4bWxVQ1NJc0thbmJ1bjsKKyAgeG1sVUNTSXNLYW5neGlSYWRpY2FsczsKKyAgeG1sVUNTSXNLYW5uYWRhOworICB4bWxVQ1NJc0thdGFrYW5hOworICB4bWxVQ1NJc0tobWVyOworICB4bWxVQ1NJc0xhbzsKKyAgeG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50OworICB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBOworICB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsOworICB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCOworICB4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzOworICB4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXM7CisgIHhtbFVDU0lzTWFsYXlhbGFtOworICB4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHM7CisgIHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzOworICB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzOworICB4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWw7CisgIHhtbFVDU0lzTW9uZ29saWFuOworICB4bWxVQ1NJc011c2ljYWxTeW1ib2xzOworICB4bWxVQ1NJc015YW5tYXI7CisgIHhtbFVDU0lzTnVtYmVyRm9ybXM7CisgIHhtbFVDU0lzT2doYW07CisgIHhtbFVDU0lzT2xkSXRhbGljOworICB4bWxVQ1NJc09wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbjsKKyAgeG1sVUNTSXNPcml5YTsKKyAgeG1sVUNTSXNQcml2YXRlVXNlOworICB4bWxVQ1NJc1J1bmljOworICB4bWxVQ1NJc1NpbmhhbGE7CisgIHhtbFVDU0lzU21hbGxGb3JtVmFyaWFudHM7CisgIHhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVyczsKKyAgeG1sVUNTSXNTcGVjaWFsczsKKyAgeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzOworICB4bWxVQ1NJc1N5cmlhYzsKKyAgeG1sVUNTSXNUYWdzOworICB4bWxVQ1NJc1RhbWlsOworICB4bWxVQ1NJc1RlbHVndTsKKyAgeG1sVUNTSXNUaGFhbmE7CisgIHhtbFVDU0lzVGhhaTsKKyAgeG1sVUNTSXNUaWJldGFuOworICB4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3M7CisgIHhtbFVDU0lzWWlSYWRpY2FsczsKKyAgeG1sVUNTSXNZaVN5bGxhYmxlczsKKworIyB1cmkKKyAgeG1sQnVpbGRVUkk7CisgIHhtbENyZWF0ZVVSSTsKKyAgeG1sRnJlZVVSSTsKKyAgeG1sTm9ybWFsaXplVVJJUGF0aDsKKyAgeG1sUGFyc2VVUkk7CisgIHhtbFBhcnNlVVJJUmVmZXJlbmNlOworICB4bWxQcmludFVSSTsKKyAgeG1sU2F2ZVVyaTsKKyAgeG1sVVJJRXNjYXBlOworICB4bWxVUklFc2NhcGVTdHI7CisgIHhtbFVSSVVuZXNjYXBlU3RyaW5nOworCisjIGVuY29kaW5nCisgIFVURjhUb2lzb2xhdDE7CisgIGlzb2xhdDFUb1VURjg7CisgIHhtbEFkZEVuY29kaW5nQWxpYXM7CisgIHhtbENoYXJFbmNDbG9zZUZ1bmM7CisgIHhtbENoYXJFbmNGaXJzdExpbmU7CisgIHhtbENoYXJFbmNJbkZ1bmM7CisgIHhtbENoYXJFbmNPdXRGdW5jOworCisjIHhtbHN0cmluZworICB4bWxDaGVja1VURjg7CisKKyMgZW5jb2RpbmcKKyAgeG1sQ2xlYW51cENoYXJFbmNvZGluZ0hhbmRsZXJzOworICB4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzOworICB4bWxEZWxFbmNvZGluZ0FsaWFzOworICB4bWxEZXRlY3RDaGFyRW5jb2Rpbmc7CisgIHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyOworICB4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyOworICB4bWxHZXRDaGFyRW5jb2RpbmdOYW1lOworICB4bWxHZXRFbmNvZGluZ0FsaWFzOworCisjIHhtbHN0cmluZworICB4bWxHZXRVVEY4Q2hhcjsKKworIyBlbmNvZGluZworICB4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnM7CisgIHhtbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXI7CisgIHhtbFBhcnNlQ2hhckVuY29kaW5nOworICB4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXI7CisKKyMgeG1sc3RyaW5nCisgIHhtbFVURjhTdHJsZW47CisgIHhtbFVURjhTdHJsb2M7CisgIHhtbFVURjhTdHJuZHVwOworICB4bWxVVEY4U3RycG9zOworICB4bWxVVEY4U3Ryc2l6ZTsKKyAgeG1sVVRGOFN0cnN1YjsKK30gOworCitMSUJYTUwyXzIuNS4wIHsKKyAgICBnbG9iYWw6CisKKyMgZ2xvYmFscworICB4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHQ7CisgIHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlOyAjIHZhcmlhYmxlCisgIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHQ7CisgIHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZTsgIyB2YXJpYWJsZQorCisjIHhtbHJlYWRlcgorICB4bWxUZXh0UmVhZGVyQ2xvc2U7CisgIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jOworICB4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGU7CisgIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObzsKKyAgeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zOworICB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlOworICB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcDsKKyAgeG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcjsKKyAgeG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZTsKKyAgeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vOworICB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnM7CisgIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGU7CisgIHhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50OworICB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGU7CisgIHhtbFRleHRSZWFkZXJNb3ZlVG9OZXh0QXR0cmlidXRlOworICB4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjsKKyAgeG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZTsKKyAgeG1sVGV4dFJlYWRlclJlYWRJbm5lclhtbDsKKyAgeG1sVGV4dFJlYWRlclJlYWRPdXRlclhtbDsKKyAgeG1sVGV4dFJlYWRlclJlYWRTdGF0ZTsKKyAgeG1sVGV4dFJlYWRlclJlYWRTdHJpbmc7CisgIHhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wOworCisjIHZhbGlkCisgIHhtbFZhbGlkYXRlUG9wRWxlbWVudDsKKyAgeG1sVmFsaWRhdGVQdXNoQ0RhdGE7CisgIHhtbFZhbGlkYXRlUHVzaEVsZW1lbnQ7Cit9IExJQlhNTDJfMi40LjMwOworCitMSUJYTUwyXzIuNS4yIHsKKyAgICBnbG9iYWw6CisKKyMgdHJlZQorICB4bWxHZXROb05zUHJvcDsKKworIyBIVE1McGFyc2VyCisgIGh0bWxBdHRyQWxsb3dlZDsKKyAgaHRtbEVsZW1lbnRBbGxvd2VkSGVyZTsKKyAgaHRtbEVsZW1lbnRTdGF0dXNIZXJlOworICBodG1sTm9kZVN0YXR1czsKKworIyByZWxheG5nCisgIHhtbFJlbGF4TkdDbGVhbnVwVHlwZXM7CisgIHhtbFJlbGF4TkdEdW1wOworICB4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQ7CisgIHhtbFJlbGF4TkdGcmVlOworICB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dDsKKyAgeG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQ7CisgIHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0OworICB4bWxSZWxheE5HTmV3VmFsaWRDdHh0OworICB4bWxSZWxheE5HUGFyc2U7CisgIHhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnM7CisgIHhtbFJlbGF4TkdTZXRWYWxpZEVycm9yczsKKyAgeG1sUmVsYXhOR1ZhbGlkYXRlRG9jOworCisjIHhtbHJlYWRlcgorICB4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyOworICB4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkk7CisgIHhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjsKKyAgeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcjsKKworIyByZWxheG5nCisjIHhtbFJlbGF4TkdWYWxpZGF0ZVN0cmVhbTsgcmVtb3ZlZCBpbiAyLjUuNQorfSBMSUJYTUwyXzIuNS4wOworCitMSUJYTUwyXzIuNS40IHsKKyAgICBnbG9iYWw6CisKKyMgdXJpCisgIHhtbENhbm9uaWNQYXRoOworCisjIHJlbGF4bmcKKyAgeG1sUmVsYXhOR0R1bXBUcmVlOworCisjIHRyZWUKKyAgeG1sVmFsaWRhdGVOYW1lOworICB4bWxWYWxpZGF0ZU5DTmFtZTsKKyAgeG1sVmFsaWRhdGVOTVRva2VuOworICB4bWxWYWxpZGF0ZVFOYW1lOworfSBMSUJYTUwyXzIuNS4yOworCitMSUJYTUwyXzIuNS41IHsKKyAgICBnbG9iYWw6CisKKyMgbmFub2Z0cAorICB4bWxOYW5vRlRQRGVsZTsKK30gTElCWE1MMl8yLjUuNDsKKworTElCWE1MMl8yLjUuNiB7CisgICAgZ2xvYmFsOgorCisjIHhwYXRoCisgIHhtbFhQYXRoT3JkZXJEb2NFbGVtczsKK30gTElCWE1MMl8yLjUuNTsKKworTElCWE1MMl8yLjUuNyB7CisgICAgZ2xvYmFsOgorCisjIEhUTUxwYXJzZXIKKyAgaHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQ7CisKKyMgeG1sYXV0b21hdGEKKyAgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMjsKKworIyB0cmVlCisgIHhtbEJ1aWxkUU5hbWU7CisKKyMgeG1sbWVtb3J5CisgIHhtbEdjTWVtR2V0OworICB4bWxHY01lbVNldHVwOworCisjIGdsb2JhbHMKKyAgeG1sTWFsbG9jQXRvbWljOyAjIHZhcmlhYmxlCisKKyMgeG1scmVnZXhwCisgIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjsKKworIyByZWxheG5nCisgIHhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0OworICB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudDsKKyAgeG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudDsKKyAgeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhOworICB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudDsKKworIyB4bWxyZWFkZXIKKyAgeG1sVGV4dFJlYWRlckV4cGFuZDsKKyAgeG1sVGV4dFJlYWRlcklzVmFsaWQ7CisgIHhtbFRleHRSZWFkZXJOZXh0OworICB4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYTsKKyAgeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZTsKK30gTElCWE1MMl8yLjUuNjsKKworTElCWE1MMl8yLjUuOCB7CisgICAgZ2xvYmFsOgorCisjIGdsb2JhbHMKKyAgeG1sQ2xlYW51cEdsb2JhbHM7CisgIHhtbEluaXRHbG9iYWxzOworCisjIHZhbGlkCisgIHhtbEZyZWVWYWxpZEN0eHQ7CisgIHhtbE5ld1ZhbGlkQ3R4dDsKKworIyBzY2hlbWFzSW50ZXJuYWxzCisgIHhtbFNjaGVtYUZyZWVUeXBlOworCisjIHhtbHNjaGVtYXMKKyAgeG1sU2NoZW1hRHVtcDsKKyAgeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQ7CisgIHhtbFNjaGVtYUZyZWVWYWxpZEN0eHQ7CisgIHhtbFNjaGVtYUZyZWU7CisgIHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQ7CisgIHhtbFNjaGVtYU5ld1BhcnNlckN0eHQ7CisgIHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dDsKKyAgeG1sU2NoZW1hUGFyc2U7CisgIHhtbFNjaGVtYVNldFBhcnNlckVycm9yczsKKyAgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM7CisgIHhtbFNjaGVtYVZhbGlkYXRlRG9jOworICB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbTsKKworIyB4bWxzY2hlbWFzdHlwZXMKKyAgeG1sU2NoZW1hQ2hlY2tGYWNldDsKKyAgeG1sU2NoZW1hQ2xlYW51cFR5cGVzOworICB4bWxTY2hlbWFDb21wYXJlVmFsdWVzOworICB4bWxTY2hlbWFGcmVlRmFjZXQ7CisgIHhtbFNjaGVtYUZyZWVWYWx1ZTsKKyAgeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGU7CisgIHhtbFNjaGVtYUluaXRUeXBlczsKKyAgeG1sU2NoZW1hTmV3RmFjZXQ7CisgIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXQ7CisgIHhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGU7CisgIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlOworCisjIGdsb2JhbHMKKyAgeG1sVGhyRGVmQnVmZmVyQWxsb2NTY2hlbWU7CisgIHhtbFRockRlZkRlZmF1bHRCdWZmZXJTaXplOworICB4bWxUaHJEZWZEZXJlZ2lzdGVyTm9kZURlZmF1bHQ7CisgIHhtbFRockRlZkRvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZTsKKyAgeG1sVGhyRGVmR2V0V2FybmluZ3NEZWZhdWx0VmFsdWU7CisgIHhtbFRockRlZkluZGVudFRyZWVPdXRwdXQ7CisgIHhtbFRockRlZktlZXBCbGFua3NEZWZhdWx0VmFsdWU7CisgIHhtbFRockRlZkxpbmVOdW1iZXJzRGVmYXVsdFZhbHVlOworICB4bWxUaHJEZWZMb2FkRXh0RHRkRGVmYXVsdFZhbHVlOworICB4bWxUaHJEZWZQYXJzZXJEZWJ1Z0VudGl0aWVzOworICB4bWxUaHJEZWZQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZTsKKyAgeG1sVGhyRGVmUmVnaXN0ZXJOb2RlRGVmYXVsdDsKKyAgeG1sVGhyRGVmU2F2ZU5vRW1wdHlUYWdzOworICB4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jOworICB4bWxUaHJEZWZTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWU7CisgIHhtbFRockRlZlRyZWVJbmRlbnRTdHJpbmc7Cit9IExJQlhNTDJfMi41Ljc7CisKK0xJQlhNTDJfMi41LjkgeworICAgIGdsb2JhbDoKKworIyB4bWxtZW1vcnkKKyAgeG1sTWFsbG9jQXRvbWljTG9jOworCisjIHJlbGF4bmcKKyAgeG1sUmVsYXhOR0dldFBhcnNlckVycm9yczsKKyAgeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzOworCisjIHRyZWUKKyAgeG1sU3BsaXRRTmFtZTM7CisKKyMgeG1sc3RyaW5nCisgIHhtbFVURjhDaGFyY21wOworICB4bWxVVEY4U2l6ZTsKKworIyB4aW5jbHVkZQorICB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlOworfSBMSUJYTUwyXzIuNS44OworCitMSUJYTUwyXzIuNi4wIHsKKyAgICBnbG9iYWw6CisKKyMgU0FYMgorICB4bWxTQVgyQXR0cmlidXRlRGVjbDsKKyAgeG1sU0FYMkNEYXRhQmxvY2s7CisgIHhtbFNBWDJDaGFyYWN0ZXJzOworICB4bWxTQVgyQ29tbWVudDsKKyAgeG1sU0FYMkVsZW1lbnREZWNsOworICB4bWxTQVgyRW5kRG9jdW1lbnQ7CisgIHhtbFNBWDJFbmRFbGVtZW50TnM7CisgIHhtbFNBWDJFbmRFbGVtZW50OworICB4bWxTQVgyRW50aXR5RGVjbDsKKyAgeG1sU0FYMkV4dGVybmFsU3Vic2V0OworICB4bWxTQVgyR2V0Q29sdW1uTnVtYmVyOworICB4bWxTQVgyR2V0RW50aXR5OworICB4bWxTQVgyR2V0TGluZU51bWJlcjsKKyAgeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eTsKKyAgeG1sU0FYMkdldFB1YmxpY0lkOworICB4bWxTQVgyR2V0U3lzdGVtSWQ7CisgIHhtbFNBWDJIYXNFeHRlcm5hbFN1YnNldDsKKyAgeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0OworICB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZTsKKyAgeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcjsKKyAgeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXI7CisgIHhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyOworICB4bWxTQVgySW50ZXJuYWxTdWJzZXQ7CisgIHhtbFNBWDJJc1N0YW5kYWxvbmU7CisgIHhtbFNBWDJOb3RhdGlvbkRlY2w7CisgIHhtbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CisgIHhtbFNBWDJSZWZlcmVuY2U7CisgIHhtbFNBWDJSZXNvbHZlRW50aXR5OworICB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yOworICB4bWxTQVgyU3RhcnREb2N1bWVudDsKKyAgeG1sU0FYMlN0YXJ0RWxlbWVudE5zOworICB4bWxTQVgyU3RhcnRFbGVtZW50OworICB4bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsOworICB4bWxTQVhEZWZhdWx0VmVyc2lvbjsKKyAgeG1sU0FYVmVyc2lvbjsKKworIyBIVE1McGFyc2VyCisgIGh0bWxDdHh0UmVhZERvYzsKKyAgaHRtbEN0eHRSZWFkRmQ7CisgIGh0bWxDdHh0UmVhZEZpbGU7CisgIGh0bWxDdHh0UmVhZElPOworICBodG1sQ3R4dFJlYWRNZW1vcnk7CisgIGh0bWxDdHh0UmVzZXQ7CisgIGh0bWxDdHh0VXNlT3B0aW9uczsKKyAgaHRtbFJlYWREb2M7CisgIGh0bWxSZWFkRmQ7CisgIGh0bWxSZWFkRmlsZTsKKyAgaHRtbFJlYWRJTzsKKyAgaHRtbFJlYWRNZW1vcnk7CisKKyMgdHJlZQorICB4bWxCdWZmZXJDcmVhdGVTdGF0aWM7CisKKyMgY2h2YWxpZAorICB4bWxDaGFySW5SYW5nZTsKKworIyB4bWxJTworICB4bWxDaGVja0hUVFBJbnB1dDsKKworIyB4bWxlcnJvcgorICB4bWxDb3B5RXJyb3I7CisgIHhtbEN0eHRHZXRMYXN0RXJyb3I7CisgIHhtbEdldExhc3RFcnJvcjsKKyAgeG1sUmVzZXRFcnJvcjsKKyAgeG1sUmVzZXRMYXN0RXJyb3I7CisgIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmM7CisKKyMgcGFyc2VyCisgIHhtbEN0eHRSZWFkRG9jOworICB4bWxDdHh0UmVhZEZkOworICB4bWxDdHh0UmVhZEZpbGU7CisgIHhtbEN0eHRSZWFkSU87CisgIHhtbEN0eHRSZWFkTWVtb3J5OworCisjIHhtbGVycm9yCisgIHhtbEN0eHRSZXNldExhc3RFcnJvcjsKKworIyBwYXJzZXIKKyAgeG1sQ3R4dFJlc2V0OworICB4bWxDdHh0VXNlT3B0aW9uczsKKyAgeG1sUmVhZERvYzsKKyAgeG1sUmVhZEZkOworICB4bWxSZWFkRmlsZTsKKyAgeG1sUmVhZElPOworICB4bWxSZWFkTWVtb3J5OworCisjIHhtbHN0cmluZworICB4bWxTdHJQcmludGY7CisgIHhtbFN0clFFcXVhbDsKKworIyBkaWN0CisgIHhtbERpY3RDcmVhdGU7CisgIHhtbERpY3RGcmVlOworICB4bWxEaWN0TG9va3VwOworICB4bWxEaWN0T3duczsKKyAgeG1sRGljdFFMb29rdXA7CisgIHhtbERpY3RSZWZlcmVuY2U7CisgIHhtbERpY3RTaXplOworCisjIHBhcnNlckludGVybmFscworICB4bWxFcnJNZW1vcnk7CisgIHhtbFBhcnNlck1heERlcHRoOyAjIHZhcmlhYmxlCisgIHhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzOworICB4bWxTd2l0Y2hJbnB1dEVuY29kaW5nOworCisjIHhtbHdyaXRlcgorICB4bWxGcmVlVGV4dFdyaXRlcjsKKyAgeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lOworICB4bWxOZXdUZXh0V3JpdGVyTWVtb3J5OworICB4bWxOZXdUZXh0V3JpdGVyOworICB4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlOworICB4bWxUZXh0V3JpdGVyRW5kQ0RBVEE7CisgIHhtbFRleHRXcml0ZXJFbmREb2N1bWVudDsKKyAgeG1sVGV4dFdyaXRlckVuZERURDsKKyAgeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQ7CisgIHhtbFRleHRXcml0ZXJFbmRQSTsKKyAgeG1sVGV4dFdyaXRlckZsdXNoOworICB4bWxUZXh0V3JpdGVyRnVsbEVuZEVsZW1lbnQ7CisgIHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TOworICB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGU7CisgIHhtbFRleHRXcml0ZXJTdGFydENEQVRBOworICB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudDsKKyAgeG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdDsKKyAgeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudDsKKyAgeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5OworICB4bWxUZXh0V3JpdGVyU3RhcnREVEQ7CisgIHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUzsKKyAgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudDsKKyAgeG1sVGV4dFdyaXRlclN0YXJ0UEk7CisgIHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TOworICB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGU7CisgIHhtbFRleHRXcml0ZXJXcml0ZUJhc2U2NDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4OworICB4bWxUZXh0V3JpdGVyV3JpdGVDREFUQTsKKyAgeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5OworICB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eTsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRFRESW50ZXJuYWxFbnRpdHk7CisgIHhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uOworICB4bWxUZXh0V3JpdGVyV3JpdGVEVEQ7CisgIHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUzsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlM7CisgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZTsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE7CisgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQ7CisgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3Q7CisgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQ7CisgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5OworICB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQ7CisgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnROUzsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UEk7CisgIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nOworICB4bWxUZXh0V3JpdGVyV3JpdGVQSTsKKyAgeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuOworICB4bWxUZXh0V3JpdGVyV3JpdGVSYXc7CisgIHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZzsKKyAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TOworICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlOworICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q0RBVEE7CisgIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50OworICB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFREQXR0bGlzdDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQ7CisgIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERJbnRlcm5hbEVudGl0eTsKKyAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDsKKyAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzsKKyAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQ7CisgIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSTsKKyAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdzsKKyAgeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFN0cmluZzsKKworIyBoYXNoCisgIHhtbEhhc2hRTG9va3VwMjsKKyAgeG1sSGFzaFFMb29rdXAzOworICB4bWxIYXNoUUxvb2t1cDsKKworIyBjaHZhbGlkCisgIHhtbElzQmFzZUNoYXJHcm91cDsgIyB2YXJpYWJsZQorICB4bWxJc0NoYXJHcm91cDsgIyB2YXJpYWJsZQorICB4bWxJc0NvbWJpbmluZ0dyb3VwOyAjIHZhcmlhYmxlCisgIHhtbElzRGlnaXRHcm91cDsgIyB2YXJpYWJsZQorICB4bWxJc0V4dGVuZGVyR3JvdXA7ICMgdmFyaWFibGUKKyAgeG1sSXNJZGVvZ3JhcGhpY0dyb3VwOyAjIHZhcmlhYmxlCisgIHhtbElzUHViaWRDaGFyX3RhYjsgIyB2YXJpYWJsZQorCisjIGdsb2JhbHMKKyAgeG1sTGFzdEVycm9yOyAjIHZhcmlhYmxlCisKKyMgbmFub2h0dHAKKyAgeG1sTmFub0hUVFBFbmNvZGluZzsKKyAgeG1sTmFub0hUVFBNaW1lVHlwZTsKKyAgeG1sTmFub0hUVFBSZWRpcjsKKworIyB0cmVlCisgIHhtbE5vZGVCdWZHZXRDb250ZW50OworCisjIHhtbElPCisgIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljOworCisjIHhtbHJlYWRlcgorICB4bWxSZWFkZXJGb3JEb2M7CisgIHhtbFJlYWRlckZvckZkOworICB4bWxSZWFkZXJGb3JGaWxlOworICB4bWxSZWFkZXJGb3JJTzsKKyAgeG1sUmVhZGVyRm9yTWVtb3J5OworICB4bWxSZWFkZXJOZXdEb2M7CisgIHhtbFJlYWRlck5ld0ZkOworICB4bWxSZWFkZXJOZXdGaWxlOworICB4bWxSZWFkZXJOZXdJTzsKKyAgeG1sUmVhZGVyTmV3TWVtb3J5OworICB4bWxSZWFkZXJOZXdXYWxrZXI7CisgIHhtbFJlYWRlcldhbGtlcjsKKyAgeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaTsKKyAgeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lOworICB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lc3BhY2VVcmk7CisgIHhtbFRleHRSZWFkZXJDb25zdE5hbWU7CisgIHhtbFRleHRSZWFkZXJDb25zdFByZWZpeDsKKyAgeG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nOworICB4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZTsKKyAgeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZzsKKyAgeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nOworICB4bWxUZXh0UmVhZGVyUHJlc2VydmU7CisKKyMgZ2xvYmFscworICB4bWxTdHJ1Y3R1cmVkRXJyb3I7ICMgdmFyaWFibGUKKyAgeG1sVGhyRGVmU2V0U3RydWN0dXJlZEVycm9yRnVuYzsKKworIyB4cGF0aEludGVybmFscworICB4bWxYUGF0aEVycjsKKworIyBTQVgyCisjIHhtbFNBWDJDaGVja05hbWVzcGFjZTsgcmVtb3ZlZCBpbiAyLjYuMTAKKyMgeG1sU0FYMkdldE5hbWVzcGFjZTsgcmVtb3ZlZCBpbiAyLjYuMTAKKyMgeG1sU0FYMkdsb2JhbE5hbWVzcGFjZTsgcmVtb3ZlZCBpbiAyLjYuMTAKKyMgeG1sU0FYMk5hbWVzcGFjZURlY2w7IHJlbW92ZWQgaW4gMi42LjEwCisjIHhtbFNBWDJTZXROYW1lc3BhY2U7IHJlbW92ZWQgaW4gMi42LjEwCit9IExJQlhNTDJfMi41Ljk7CisKK0xJQlhNTDJfMi42LjEgeworICAgIGdsb2JhbDoKKworIyBwYXJzZXIKKyAgeG1sQ3R4dFJlc2V0UHVzaDsKK30gTElCWE1MMl8yLjYuMDsKKworTElCWE1MMl8yLjYuMiB7CisgICAgZ2xvYmFsOgorCisjIHBhcnNlckludGVybmFscworICB4bWxDcmVhdGVVUkxQYXJzZXJDdHh0OworCisjIHhtbHNjaGVtYXMKKyAgeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dDsKKworIyB4bWxzdHJpbmcKKyAgeG1sU3RyVlByaW50ZjsKKworIyB4aW5jbHVkZQorICB4bWxYSW5jbHVkZUZyZWVDb250ZXh0OworICB4bWxYSW5jbHVkZU5ld0NvbnRleHQ7CisgIHhtbFhJbmNsdWRlUHJvY2Vzc05vZGU7Cit9IExJQlhNTDJfMi42LjE7CisKK0xJQlhNTDJfMi42LjMgeworICAgIGdsb2JhbDoKKworIyBwYXR0ZXJuCisgIHhtbEZyZWVQYXR0ZXJuTGlzdDsKKyAgeG1sRnJlZVBhdHRlcm47CisgIHhtbFBhdHRlcm5jb21waWxlOworICB4bWxQYXR0ZXJuTWF0Y2g7CisKKyMgeG1sd3JpdGVyCisgIHhtbE5ld1RleHRXcml0ZXJEb2M7CisgIHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyOworICB4bWxOZXdUZXh0V3JpdGVyVHJlZTsKKworIyB4bWxyZWFkZXIKKyAgeG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybjsKKworIyB4bWx1bmljb2RlCisgIHhtbFVDU0lzQWVnZWFuTnVtYmVyczsKKyAgeG1sVUNTSXNCdWhpZDsKKyAgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9sczsKKyAgeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5OworICB4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudDsKKyAgeG1sVUNTSXNHcmVla2FuZENvcHRpYzsKKyAgeG1sVUNTSXNIYW51bm9vOworICB4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zOworICB4bWxVQ1NJc0tobWVyU3ltYm9sczsKKyAgeG1sVUNTSXNMaW1idTsKKyAgeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zOworICB4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnk7CisgIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBOworICB4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQjsKKyAgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93czsKKyAgeG1sVUNTSXNPc21hbnlhOworICB4bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9uczsKKyAgeG1sVUNTSXNQcml2YXRlVXNlQXJlYTsKKyAgeG1sVUNTSXNTaGF2aWFuOworICB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0E7CisgIHhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQjsKKyAgeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnM7CisgIHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQTsKKyAgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCOworICB4bWxVQ1NJc1RhZ2Fsb2c7CisgIHhtbFVDU0lzVGFnYmFud2E7CisgIHhtbFVDU0lzVGFpTGU7CisgIHhtbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzOworICB4bWxVQ1NJc1VnYXJpdGljOworICB4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQ7CisgIHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzOworICB4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9sczsKKworIyB4aW5jbHVkZQorICB4bWxYSW5jbHVkZVByb2Nlc3NGbGFnczsKKyAgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzOworICB4bWxYSW5jbHVkZVNldEZsYWdzOworfSBMSUJYTUwyXzIuNi4yOworCitMSUJYTUwyXzIuNi41IHsKKyAgICBnbG9iYWw6CisKKyMgeG1sbWVtb3J5CisgIHhtbENsZWFudXBNZW1vcnk7CisKKyMgZGljdAorICB4bWxEaWN0Q3JlYXRlU3ViOworCisjIHJlbGF4bmcKKyAgeG1sUmVsYXhQYXJzZXJTZXRGbGFnOworCisjIHhtbHN0cmluZworICB4bWxTdHJuY2F0TmV3OworCisjIHhtbHdyaXRlcgorICB4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nOworICB4bWxUZXh0V3JpdGVyU2V0SW5kZW50OworCisjIHhwYXRoCisgIHhtbFhQYXRoQ3R4dENvbXBpbGU7Cit9IExJQlhNTDJfMi42LjM7CisKK0xJQlhNTDJfMi42LjYgeworICAgIGdsb2JhbDoKKworIyB0cmVlCisgIHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50OworCisjIHBhcnNlcgorICB4bWxCeXRlQ29uc3VtZWQ7CisKKyMgeG1scmVhZGVyCisgIHhtbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyOworfSBMSUJYTUwyXzIuNi41OworCitMSUJYTUwyXzIuNi43IHsKKyAgICBnbG9iYWw6CisKKyMgeG1sd3JpdGVyCisgIHhtbFRleHRXcml0ZXJFbmRDb21tZW50OworICB4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50OworfSBMSUJYTUwyXzIuNi42OworCitMSUJYTUwyXzIuNi44IHsKKyAgICBnbG9iYWw6CisKKyMgeG1sc2F2ZQorICB4bWxTYXZlQ2xvc2U7CisgIHhtbFNhdmVEb2M7CisgIHhtbFNhdmVGbHVzaDsKKyAgeG1sU2F2ZVRvRmQ7CisgIHhtbFNhdmVUb0ZpbGVuYW1lOworICB4bWxTYXZlVG9JTzsKKyAgeG1sU2F2ZVRyZWU7CisKKyMgeG1sd3JpdGVyCisgIHhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0OworICB4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudDsKKyAgeG1sVGV4dFdyaXRlckVuZERUREVudGl0eTsKKyAgeG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHlDb250ZW50czsKK30gTElCWE1MMl8yLjYuNzsKKworTElCWE1MMl8yLjYuMTAgeworICAgIGdsb2JhbDoKKworIyB4bWxJTworICB4bWxPdXRwdXRCdWZmZXJXcml0ZUVzY2FwZTsKKyAgeG1sUG9wSW5wdXRDYWxsYmFja3M7CisKKyMgeG1sc2F2ZQorICB4bWxTYXZlU2V0QXR0ckVzY2FwZTsKKyAgeG1sU2F2ZVNldEVzY2FwZTsKK30gTElCWE1MMl8yLjYuODsKKworTElCWE1MMl8yLjYuMTEgeworICAgIGdsb2JhbDoKKworIyB1cmkKKyAgeG1sQnVpbGRSZWxhdGl2ZVVSSTsKKworIyBnbG9iYWxzCisgIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDsKKyAgeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZTsgIyB2YXJpYWJsZQorICB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDsKKyAgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlOyAjIHZhcmlhYmxlCisgIHhtbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDsKKyAgeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQ7CisKKyMgc2NoZW1hc0ludGVybmFscworICB4bWxTY2hlbWFGcmVlV2lsZGNhcmQ7CisKKyMgeG1sc2NoZW1hc3R5cGVzCisgIHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nOworICB4bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZTsKKyAgeG1sU2NoZW1hR2V0QnVpbHRJblR5cGU7CisgIHhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldDsKKyAgeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0OworfSBMSUJYTUwyXzIuNi4xMDsKKworTElCWE1MMl8yLjYuMTIgeworICAgIGdsb2JhbDoKKworIyBwYXJzZXIKKyAgeG1sUGFyc2VJbk5vZGVDb250ZXh0OworCisjIHhtbHNjaGVtYXN0eXBlcworICB4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZzsKKyAgeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldDsKKyAgeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm07CisKKyMgeG1sc2NoZW1hcworICB4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnM7CisgIHhtbFNjaGVtYUdldFZhbGlkRXJyb3JzOworfSBMSUJYTUwyXzIuNi4xMTsKKworTElCWE1MMl8yLjYuMTQgeworICAgIGdsb2JhbDoKKworIyB4bWxhdXRvbWF0YQorICB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyOworICB4bWxBdXRvbWF0YU5ld09uY2VUcmFuczI7CisKKyMgbmFub2h0dHAKKyAgeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoOworCisjIHhtbHNjaGVtYXMKKyAgeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zOworICB4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQ7CisgIHhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnM7Cit9IExJQlhNTDJfMi42LjEyOworCitMSUJYTUwyXzIuNi4xNSB7CisgICAgZ2xvYmFsOgorCisjIGRlYnVnWE1MCisgIHhtbERlYnVnQ2hlY2tEb2N1bWVudDsKKworIyB0cmVlCisgIHhtbERvY0NvcHlOb2RlTGlzdDsKKyAgeG1sTmV3RG9jUEk7CisKKyMgeG1scmVhZGVyCisgIHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nOworICB4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uOworICB4bWxUZXh0UmVhZGVySXNOYW1lc3BhY2VEZWNsOworICB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZTsKK30gTElCWE1MMl8yLjYuMTQ7CisKK0xJQlhNTDJfMi42LjE2IHsKKyAgICBnbG9iYWw6CisKKyMgeG1sbWVtb3J5CisgIHhtbE1lbUJsb2NrczsKKworIyByZWxheG5nCisgIHhtbFJlbGF4TkdJbml0VHlwZXM7Cit9IExJQlhNTDJfMi42LjE1OworCitMSUJYTUwyXzIuNi4xNyB7CisgICAgZ2xvYmFsOgorCisjIGRpY3QKKyAgeG1sRGljdEV4aXN0czsKKworIyB4bWxtb2R1bGUKKyAgeG1sTW9kdWxlQ2xvc2U7CisgIHhtbE1vZHVsZUZyZWU7CisgIHhtbE1vZHVsZU9wZW47CisgIHhtbE1vZHVsZVN5bWJvbDsKKworIyB4bWxyZWdleHAKKyAgeG1sUmVnRXhlY0VyckluZm87CisgIHhtbFJlZ0V4ZWNOZXh0VmFsdWVzOworCisjIHhtbHNjaGVtYXN0eXBlcworICB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZTsKKworIyB4bWxyZWFkZXIKKyAgeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcjsKKyAgeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXI7Cit9IExJQlhNTDJfMi42LjE2OworCitMSUJYTUwyXzIuNi4xOCB7CisgICAgZ2xvYmFsOgorCisjIHZhbGlkCisgIHhtbENvcHlEb2NFbGVtZW50Q29udGVudDsKKyAgeG1sRnJlZURvY0VsZW1lbnRDb250ZW50OworICB4bWxOZXdEb2NFbGVtZW50Q29udGVudDsKKworIyBkaWN0CisgIHhtbERpY3RDbGVhbnVwOworCisjIGhhc2gKKyAgeG1sSGFzaENyZWF0ZURpY3Q7CisKKyMgcGF0dGVybgorICB4bWxGcmVlU3RyZWFtQ3R4dDsKKyAgeG1sUGF0dGVybkZyb21Sb290OworICB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dDsKKyAgeG1sUGF0dGVybk1heERlcHRoOworICB4bWxQYXR0ZXJuU3RyZWFtYWJsZTsKKyAgeG1sU3RyZWFtUG9wOworICB4bWxTdHJlYW1QdXNoQXR0cjsKKyAgeG1sU3RyZWFtUHVzaDsKKworIyB4bWxzY2hlbWFzdHlwZXMKKyAgeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwOworICB4bWxTY2hlbWFDb3B5VmFsdWU7CisgIHhtbFNjaGVtYUdldENhbm9uVmFsdWU7CisgIHhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWU7CisgIHhtbFNjaGVtYU5ld1N0cmluZ1ZhbHVlOworCisjIHhtbHJlYWRlcgorICB4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkOworfSBMSUJYTUwyXzIuNi4xNzsKKworTElCWE1MMl8yLjYuMTkgeworICAgIGdsb2JhbDoKKworIyB4bWxzY2hlbWFzdHlwZXMKKyAgeG1sU2NoZW1hR2V0VmFsVHlwZTsKKyAgeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwOworICB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3A7Cit9IExJQlhNTDJfMi42LjE4OworCitMSUJYTUwyXzIuNi4yMCB7CisgICAgZ2xvYmFsOgorCisjIHRyZWUKKyAgeG1sRE9NV3JhcEFkb3B0Tm9kZTsKKyAgeG1sRE9NV3JhcEZyZWVDdHh0OworICB4bWxET01XcmFwTmV3Q3R4dDsKKyAgeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM7CisgIHhtbERPTVdyYXBSZW1vdmVOb2RlOworCisjIHhtbHNjaGVtYXN0eXBlcworICB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3A7CisgIHhtbFNjaGVtYU5ld1FOYW1lVmFsdWU7CisgIHhtbFNjaGVtYVZhbHVlQXBwZW5kOworICB4bWxTY2hlbWFWYWx1ZUdldEFzQm9vbGVhbjsKKyAgeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZzsKKyAgeG1sU2NoZW1hVmFsdWVHZXROZXh0OworCisjIHhtbHNjaGVtYXMKKyAgeG1sU2NoZW1hSXNWYWxpZDsKKyAgeG1sU2NoZW1hU0FYUGx1ZzsKKyAgeG1sU2NoZW1hU0FYVW5wbHVnOworICB4bWxTY2hlbWFWYWxpZGF0ZUZpbGU7CisKKyMgeG1scmVhZGVyCisgIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZTsKKyAgeG1sVGV4dFJlYWRlclNldFNjaGVtYTsKK30gTElCWE1MMl8yLjYuMTk7CisKK0xJQlhNTDJfMi42LjIxIHsKKyAgICBnbG9iYWw6CisKKyMgeG1sYXV0b21hdGEKKyAgeG1sQXV0b21hdGFOZXdOZWdUcmFuczsKKworIyB4bWxyZWdleHAKKyAgZW1wdHlFeHA7ICMgdmFyaWFibGUKKyAgZm9yYmlkZGVuRXhwOyAjIHZhcmlhYmxlCisgIHhtbEV4cEN0eHROYkNvbnM7CisgIHhtbEV4cEN0eHROYk5vZGVzOworICB4bWxFeHBEdW1wOworICB4bWxFeHBFeHBEZXJpdmU7CisgIHhtbEV4cEZyZWVDdHh0OworICB4bWxFeHBGcmVlOworICB4bWxFeHBHZXRMYW5ndWFnZTsKKyAgeG1sRXhwR2V0U3RhcnQ7CisgIHhtbEV4cElzTmlsbGFibGU7CisgIHhtbEV4cE1heFRva2VuOworICB4bWxFeHBOZXdBdG9tOworICB4bWxFeHBOZXdDdHh0OworICB4bWxFeHBOZXdPcjsKKyAgeG1sRXhwTmV3UmFuZ2U7CisgIHhtbEV4cE5ld1NlcTsKKyAgeG1sRXhwUGFyc2U7CisgIHhtbEV4cFJlZjsKKyAgeG1sRXhwU3RyaW5nRGVyaXZlOworICB4bWxFeHBTdWJzdW1lOworCisjIHBhcnNlcgorICB4bWxIYXNGZWF0dXJlOworCisjIHVyaQorICB4bWxQYXJzZVVSSVJhdzsKKworIyBwYXR0ZXJuCisgIHhtbFBhdHRlcm5NaW5EZXB0aDsKKworIyByZWxheG5nCisgIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM7CisKKyMgeG1sc2NoZW1hcworICB4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM7CisKKyMgc2NoZW1hdHJvbgorICB4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQ7CisgIHhtbFNjaGVtYXRyb25GcmVlOworICB4bWxTY2hlbWF0cm9uRnJlZVZhbGlkQ3R4dDsKKyAgeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQ7CisgIHhtbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0OworICB4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dDsKKyAgeG1sU2NoZW1hdHJvbk5ld1ZhbGlkQ3R4dDsKKyAgeG1sU2NoZW1hdHJvblBhcnNlOworICB4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2M7Cit9IExJQlhNTDJfMi42LjIwOworCitMSUJYTUwyXzIuNi4yMyB7CisgICAgZ2xvYmFsOgorCisjIEhUTUx0cmVlCisgIGh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0OworCisjIHhtbElPCisgIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcjsKKworIyB4bWxzYXZlCisgIHhtbFNhdmVUb0J1ZmZlcjsjIHN1cHByZXNzZWQgaW4gMi42LjExLCByZWFkZGVkIGluIDIuNi4yMworCisKKyMgeG1sc2NoZW1hcworICB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzOworCisjIHBhdHRlcm4KKyAgeG1sU3RyZWFtUHVzaE5vZGU7CisgIHhtbFN0cmVhbVdhbnRzQW55Tm9kZTsKKworIyB4bWxyZWFkZXIKKyAgeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDsKK30gTElCWE1MMl8yLjYuMjE7CisKK0xJQlhNTDJfMi42LjI0IHsKKyAgICBnbG9iYWw6CisKKyMgdHJlZQorICB4bWxET01XcmFwQ2xvbmVOb2RlOworCisjIHJlbGF4bmcKKyAgeG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnM7Cit9IExJQlhNTDJfMi42LjIzOworCitMSUJYTUwyXzIuNi4yNSB7CisgICAgZ2xvYmFsOgorCisjIHhwYXRoCisgIHhtbFhQYXRoQ29udGV4dFNldENhY2hlOworfSBMSUJYTUwyXzIuNi4yNDsKKworTElCWE1MMl8yLjYuMjcgeworICAgIGdsb2JhbDoKKworIyBIVE1McGFyc2VyCisgIGh0bWxOZXdQYXJzZXJDdHh0OworCisjIHVyaQorICB4bWxQYXRoVG9VUkk7CisKKyMgeGluY2x1ZGUKKyAgeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhOworCisjIHhwYXRoCisgIHhtbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuOworfSBMSUJYTUwyXzIuNi4yNTsKKworTElCWE1MMl8yLjYuMjggeworICAgIGdsb2JhbDoKKworIyB4bWxyZWFkZXIKKyAgeG1sVGV4dFJlYWRlclNldHVwOworfSBMSUJYTUwyXzIuNi4yNzsKKworTElCWE1MMl8yLjYuMjkgeworICAgIGdsb2JhbDoKKworIyB0aHJlYWRzCisgIHhtbERsbE1haW47Cit9IExJQlhNTDJfMi42LjI4OworCitMSUJYTUwyXzIuNi4zMiB7CisgICAgZ2xvYmFsOgorCisjIHNjaGVtYXRyb24KKyAgeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9yczsKK30gTElCWE1MMl8yLjYuMjk7CisKK0xJQlhNTDJfMi43LjAgeworICAgIGdsb2JhbDoKKworIyB4bWxtZW1vcnkKKyAgeG1sTWVtRGlzcGxheUxhc3Q7CisKKyMgZW50aXRpZXMKKyAgeG1sTmV3RW50aXR5OworCisjIHhtbHNjaGVtYXMKKyAgeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dDsKK30gTElCWE1MMl8yLjYuMzI7CisKK0xJQlhNTDJfMi43LjMgeworICAgIGdsb2JhbDoKKworIyB0cmVlCisgIHhtbENoaWxkRWxlbWVudENvdW50OworICB4bWxGaXJzdEVsZW1lbnRDaGlsZDsKKyAgeG1sTGFzdEVsZW1lbnRDaGlsZDsKKyAgeG1sTmV4dEVsZW1lbnRTaWJsaW5nOworICB4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nOworfSBMSUJYTUwyXzIuNy4wOworCitMSUJYTUwyXzIuNy40IHsKKyAgICBnbG9iYWw6CisKKyMgZ2xvYmFscworICB4bWxTdHJ1Y3R1cmVkRXJyb3JDb250ZXh0OyAjIHZhcmlhYmxlCisKKyMgeGluY2x1ZGUKKyAgeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YTsKK30gTElCWE1MMl8yLjcuMzsKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9saXN0LmMgYi9saWJ4bWwyLTIuNy43L2xpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzAxYzgzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9saXN0LmMKQEAgLTAsMCArMSw3NzkgQEAKKy8qCisgKiBsaXN0LmM6IGxpc3RzIGhhbmRsaW5nIGltcGxlbWVudGF0aW9uCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAwIEdhcnkgUGVubmluZ3RvbiBhbmQgRGFuaWVsIFZlaWxsYXJkLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRJQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gVEhFIEFVVEhPUlMgQU5ECisgKiBDT05UUklCVVRPUlMgQUNDRVBUIE5PIFJFU1BPTlNJQklMSVRZIElOIEFOWSBDT05DRUlWQUJMRSBNQU5ORVIuCisgKgorICogQXV0aG9yOiBHYXJ5LlBlbm5pbmd0b25AdWsuc3VuLmNvbQorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL2xpc3QuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorCisvKgorICogVHlwZSBkZWZpbml0aW9uIGFyZSBrZXB0IGludGVybmFsCisgKi8KKworc3RydWN0IF94bWxMaW5rCit7CisgICAgc3RydWN0IF94bWxMaW5rICpuZXh0OworICAgIHN0cnVjdCBfeG1sTGluayAqcHJldjsKKyAgICB2b2lkICpkYXRhOworfTsKKworc3RydWN0IF94bWxMaXN0Cit7CisgICAgeG1sTGlua1B0ciBzZW50aW5lbDsKKyAgICB2b2lkICgqbGlua0RlYWxsb2NhdG9yKSh4bWxMaW5rUHRyICk7CisgICAgaW50ICgqbGlua0NvbXBhcmUpKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCopOworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICBJbnRlcmZhY2VzICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxMaW5rRGVhbGxvY2F0b3I6CisgKiBAbDogIGEgbGlzdAorICogQGxrOiAgYSBsaW5rCisgKgorICogVW5saW5rIGFuZCBkZWFsbG9jYXRlIEBsayBmcm9tIGxpc3QgQGwKKyAqLworc3RhdGljIHZvaWQKK3htbExpbmtEZWFsbG9jYXRvcih4bWxMaXN0UHRyIGwsIHhtbExpbmtQdHIgbGspCit7CisgICAgKGxrLT5wcmV2KS0+bmV4dCA9IGxrLT5uZXh0OworICAgIChsay0+bmV4dCktPnByZXYgPSBsay0+cHJldjsKKyAgICBpZihsLT5saW5rRGVhbGxvY2F0b3IpCisgICAgICAgIGwtPmxpbmtEZWFsbG9jYXRvcihsayk7CisgICAgeG1sRnJlZShsayk7Cit9CisKKy8qKgorICogeG1sTGlua0NvbXBhcmU6CisgKiBAZGF0YTA6ICBmaXJzdCBkYXRhCisgKiBAZGF0YTE6ICBzZWNvbmQgZGF0YQorICoKKyAqIENvbXBhcmVzIHR3byBhcmJpdHJhcnkgZGF0YQorICoKKyAqIFJldHVybnMgLTEsIDAgb3IgMSBkZXBlbmRpbmcgb24gd2hldGhlciBkYXRhMSBpcyBncmVhdGVyIGVxdWFsIG9yIHNtYWxsZXIKKyAqICAgICAgICAgIHRoYW4gZGF0YTAKKyAqLworc3RhdGljIGludAoreG1sTGlua0NvbXBhcmUoY29uc3Qgdm9pZCAqZGF0YTAsIGNvbnN0IHZvaWQgKmRhdGExKQoreworICAgIGlmIChkYXRhMCA8IGRhdGExKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBlbHNlIGlmIChkYXRhMCA9PSBkYXRhMSkKKwlyZXR1cm4gKDApOworICAgIHJldHVybiAoMSk7Cit9CisKKy8qKgorICogeG1sTGlzdExvd2VyU2VhcmNoOgorICogQGw6ICBhIGxpc3QKKyAqIEBkYXRhOiAgYSBkYXRhCisgKgorICogU2VhcmNoIGRhdGEgaW4gdGhlIG9yZGVyZWQgbGlzdCB3YWxraW5nIGZyb20gdGhlIGJlZ2lubmluZworICoKKyAqIFJldHVybnMgdGhlIGxpbmsgY29udGFpbmluZyB0aGUgZGF0YSBvciBOVUxMCisgKi8KK3N0YXRpYyB4bWxMaW5rUHRyIAoreG1sTGlzdExvd2VyU2VhcmNoKHhtbExpc3RQdHIgbCwgdm9pZCAqZGF0YSkgCit7CisgICAgeG1sTGlua1B0ciBsazsKKworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBmb3IobGsgPSBsLT5zZW50aW5lbC0+bmV4dDtsayAhPSBsLT5zZW50aW5lbCAmJiBsLT5saW5rQ29tcGFyZShsay0+ZGF0YSwgZGF0YSkgPDAgO2xrID0gbGstPm5leHQpOworICAgIHJldHVybiBsazsgICAgCit9CisKKy8qKgorICogeG1sTGlzdEhpZ2hlclNlYXJjaDoKKyAqIEBsOiAgYSBsaXN0CisgKiBAZGF0YTogIGEgZGF0YQorICoKKyAqIFNlYXJjaCBkYXRhIGluIHRoZSBvcmRlcmVkIGxpc3Qgd2Fsa2luZyBiYWNrd2FyZCBmcm9tIHRoZSBlbmQKKyAqCisgKiBSZXR1cm5zIHRoZSBsaW5rIGNvbnRhaW5pbmcgdGhlIGRhdGEgb3IgTlVMTAorICovCitzdGF0aWMgeG1sTGlua1B0ciAKK3htbExpc3RIaWdoZXJTZWFyY2goeG1sTGlzdFB0ciBsLCB2b2lkICpkYXRhKSAKK3sKKyAgICB4bWxMaW5rUHRyIGxrOworCisgICAgaWYgKGwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGZvcihsayA9IGwtPnNlbnRpbmVsLT5wcmV2O2xrICE9IGwtPnNlbnRpbmVsICYmIGwtPmxpbmtDb21wYXJlKGxrLT5kYXRhLCBkYXRhKSA+MCA7bGsgPSBsay0+cHJldik7CisgICAgcmV0dXJuIGxrOyAgICAKK30KKworLyoqCisgKiB4bWxMaXN0U2VhcmNoOgorICogQGw6ICBhIGxpc3QKKyAqIEBkYXRhOiAgYSBkYXRhCisgKgorICogU2VhcmNoIGRhdGEgaW4gdGhlIGxpc3QKKyAqCisgKiBSZXR1cm5zIHRoZSBsaW5rIGNvbnRhaW5pbmcgdGhlIGRhdGEgb3IgTlVMTAorICovCitzdGF0aWMgeG1sTGlua1B0ciAKK3htbExpc3RMaW5rU2VhcmNoKHhtbExpc3RQdHIgbCwgdm9pZCAqZGF0YSkgCit7CisgICAgeG1sTGlua1B0ciBsazsKKyAgICBpZiAobCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgbGsgPSB4bWxMaXN0TG93ZXJTZWFyY2gobCwgZGF0YSk7CisgICAgaWYgKGxrID09IGwtPnNlbnRpbmVsKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGwtPmxpbmtDb21wYXJlKGxrLT5kYXRhLCBkYXRhKSA9PTApCisgICAgICAgICAgICByZXR1cm4gbGs7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyoqCisgKiB4bWxMaXN0TGlua1JldmVyc2VTZWFyY2g6CisgKiBAbDogIGEgbGlzdAorICogQGRhdGE6ICBhIGRhdGEKKyAqCisgKiBTZWFyY2ggZGF0YSBpbiB0aGUgbGlzdCBwcm9jZXNzaW5nIGJhY2t3YXJkCisgKgorICogUmV0dXJucyB0aGUgbGluayBjb250YWluaW5nIHRoZSBkYXRhIG9yIE5VTEwKKyAqLworc3RhdGljIHhtbExpbmtQdHIgCit4bWxMaXN0TGlua1JldmVyc2VTZWFyY2goeG1sTGlzdFB0ciBsLCB2b2lkICpkYXRhKSAKK3sKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBsayA9IHhtbExpc3RIaWdoZXJTZWFyY2gobCwgZGF0YSk7CisgICAgaWYgKGxrID09IGwtPnNlbnRpbmVsKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGwtPmxpbmtDb21wYXJlKGxrLT5kYXRhLCBkYXRhKSA9PTApCisgICAgICAgICAgICByZXR1cm4gbGs7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyoqCisgKiB4bWxMaXN0Q3JlYXRlOgorICogQGRlYWxsb2NhdG9yOiAgYW4gb3B0aW9uYWwgZGVhbGxvY2F0b3IgZnVuY3Rpb24KKyAqIEBjb21wYXJlOiAgYW4gb3B0aW9uYWwgY29tcGFyaXNvbiBmdW5jdGlvbgorICoKKyAqIENyZWF0ZSBhIG5ldyBsaXN0CisgKgorICogUmV0dXJucyB0aGUgbmV3IGxpc3Qgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbExpc3RQdHIKK3htbExpc3RDcmVhdGUoeG1sTGlzdERlYWxsb2NhdG9yIGRlYWxsb2NhdG9yLCB4bWxMaXN0RGF0YUNvbXBhcmUgY29tcGFyZSkKK3sKKyAgICB4bWxMaXN0UHRyIGw7CisgICAgaWYgKE5VTEwgPT0gKGwgPSAoeG1sTGlzdFB0ciApeG1sTWFsbG9jKCBzaXplb2YoeG1sTGlzdCkpKSkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgCisJCSAgICAgICAgIkNhbm5vdCBpbml0aWFsaXplIG1lbW9yeSBmb3IgbGlzdCIpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICAvKiBJbml0aWFsaXplIHRoZSBsaXN0IHRvIE5VTEwgKi8KKyAgICBtZW1zZXQobCwgMCwgc2l6ZW9mKHhtbExpc3QpKTsKKyAgICAKKyAgICAvKiBBZGQgdGhlIHNlbnRpbmVsICovCisgICAgaWYgKE5VTEwgPT0obC0+c2VudGluZWwgPSAoeG1sTGlua1B0ciApeG1sTWFsbG9jKHNpemVvZih4bWxMaW5rKSkpKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAKKwkJICAgICAgICAiQ2Fubm90IGluaXRpYWxpemUgbWVtb3J5IGZvciBzZW50aW5lbCIpOworCXhtbEZyZWUobCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGwtPnNlbnRpbmVsLT5uZXh0ID0gbC0+c2VudGluZWw7CisgICAgbC0+c2VudGluZWwtPnByZXYgPSBsLT5zZW50aW5lbDsKKyAgICBsLT5zZW50aW5lbC0+ZGF0YSA9IE5VTEw7CisgICAgCisgICAgLyogSWYgdGhlcmUgaXMgYSBsaW5rIGRlYWxsb2NhdG9yLCB1c2UgaXQgKi8KKyAgICBpZiAoZGVhbGxvY2F0b3IgIT0gTlVMTCkKKyAgICAgICAgbC0+bGlua0RlYWxsb2NhdG9yID0gZGVhbGxvY2F0b3I7CisgICAgLyogSWYgdGhlcmUgaXMgYSBsaW5rIGNvbXBhcmF0b3IsIHVzZSBpdCAqLworICAgIGlmIChjb21wYXJlICE9IE5VTEwpCisgICAgICAgIGwtPmxpbmtDb21wYXJlID0gY29tcGFyZTsKKyAgICBlbHNlIC8qIFVzZSBvdXIgb3duICovCisgICAgICAgIGwtPmxpbmtDb21wYXJlID0geG1sTGlua0NvbXBhcmU7CisgICAgcmV0dXJuIGw7Cit9CisgICAgCisvKioKKyAqIHhtbExpc3RTZWFyY2g6CisgKiBAbDogIGEgbGlzdAorICogQGRhdGE6ICBhIHNlYXJjaCB2YWx1ZQorICoKKyAqIFNlYXJjaCB0aGUgbGlzdCBmb3IgYW4gZXhpc3RpbmcgdmFsdWUgb2YgQGRhdGEKKyAqCisgKiBSZXR1cm5zIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHRvIEBkYXRhIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit2b2lkICoKK3htbExpc3RTZWFyY2goeG1sTGlzdFB0ciBsLCB2b2lkICpkYXRhKSAKK3sKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBsayA9IHhtbExpc3RMaW5rU2VhcmNoKGwsIGRhdGEpOworICAgIGlmIChsaykKKyAgICAgICAgcmV0dXJuIChsay0+ZGF0YSk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKKy8qKgorICogeG1sTGlzdFJldmVyc2VTZWFyY2g6CisgKiBAbDogIGEgbGlzdAorICogQGRhdGE6ICBhIHNlYXJjaCB2YWx1ZQorICoKKyAqIFNlYXJjaCB0aGUgbGlzdCBpbiByZXZlcnNlIG9yZGVyIGZvciBhbiBleGlzdGluZyB2YWx1ZSBvZiBAZGF0YQorICoKKyAqIFJldHVybnMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gQGRhdGEgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3ZvaWQgKgoreG1sTGlzdFJldmVyc2VTZWFyY2goeG1sTGlzdFB0ciBsLCB2b2lkICpkYXRhKSAKK3sKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBsayA9IHhtbExpc3RMaW5rUmV2ZXJzZVNlYXJjaChsLCBkYXRhKTsKKyAgICBpZiAobGspCisgICAgICAgIHJldHVybiAobGstPmRhdGEpOworICAgIHJldHVybiBOVUxMOworfQorCisvKioKKyAqIHhtbExpc3RJbnNlcnQ6CisgKiBAbDogIGEgbGlzdAorICogQGRhdGE6ICB0aGUgZGF0YQorICoKKyAqIEluc2VydCBkYXRhIGluIHRoZSBvcmRlcmVkIGxpc3QgYXQgdGhlIGJlZ2lubmluZyBmb3IgdGhpcyB2YWx1ZQorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIDEgaW4gY2FzZSBvZiBmYWlsdXJlCisgKi8KK2ludAoreG1sTGlzdEluc2VydCh4bWxMaXN0UHRyIGwsIHZvaWQgKmRhdGEpIAoreworICAgIHhtbExpbmtQdHIgbGtQbGFjZSwgbGtOZXc7CisKKyAgICBpZiAobCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMSk7CisgICAgbGtQbGFjZSA9IHhtbExpc3RMb3dlclNlYXJjaChsLCBkYXRhKTsKKyAgICAvKiBBZGQgdGhlIG5ldyBsaW5rICovCisgICAgbGtOZXcgPSAoeG1sTGlua1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxMaW5rKSk7CisgICAgaWYgKGxrTmV3ID09IE5VTEwpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsIAorCQkgICAgICAgICJDYW5ub3QgaW5pdGlhbGl6ZSBtZW1vcnkgZm9yIG5ldyBsaW5rIik7CisgICAgICAgIHJldHVybiAoMSk7CisgICAgfQorICAgIGxrTmV3LT5kYXRhID0gZGF0YTsKKyAgICBsa1BsYWNlID0gbGtQbGFjZS0+cHJldjsKKyAgICBsa05ldy0+bmV4dCA9IGxrUGxhY2UtPm5leHQ7CisgICAgKGxrUGxhY2UtPm5leHQpLT5wcmV2ID0gbGtOZXc7CisgICAgbGtQbGFjZS0+bmV4dCA9IGxrTmV3OworICAgIGxrTmV3LT5wcmV2ID0gbGtQbGFjZTsKKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiB4bWxMaXN0QXBwZW5kOgorICogQGw6ICBhIGxpc3QKKyAqIEBkYXRhOiAgdGhlIGRhdGEKKyAqCisgKiBJbnNlcnQgZGF0YSBpbiB0aGUgb3JkZXJlZCBsaXN0IGF0IHRoZSBlbmQgZm9yIHRoaXMgdmFsdWUKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAxIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCitpbnQgeG1sTGlzdEFwcGVuZCh4bWxMaXN0UHRyIGwsIHZvaWQgKmRhdGEpIAoreworICAgIHhtbExpbmtQdHIgbGtQbGFjZSwgbGtOZXc7CisKKyAgICBpZiAobCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMSk7CisgICAgbGtQbGFjZSA9IHhtbExpc3RIaWdoZXJTZWFyY2gobCwgZGF0YSk7CisgICAgLyogQWRkIHRoZSBuZXcgbGluayAqLworICAgIGxrTmV3ID0gKHhtbExpbmtQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTGluaykpOworICAgIGlmIChsa05ldyA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAKKwkJICAgICAgICAiQ2Fubm90IGluaXRpYWxpemUgbWVtb3J5IGZvciBuZXcgbGluayIpOworICAgICAgICByZXR1cm4gKDEpOworICAgIH0KKyAgICBsa05ldy0+ZGF0YSA9IGRhdGE7CisgICAgbGtOZXctPm5leHQgPSBsa1BsYWNlLT5uZXh0OworICAgIChsa1BsYWNlLT5uZXh0KS0+cHJldiA9IGxrTmV3OworICAgIGxrUGxhY2UtPm5leHQgPSBsa05ldzsKKyAgICBsa05ldy0+cHJldiA9IGxrUGxhY2U7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogeG1sTGlzdERlbGV0ZToKKyAqIEBsOiAgYSBsaXN0CisgKgorICogRGVsZXRlcyB0aGUgbGlzdCBhbmQgaXRzIGFzc29jaWF0ZWQgZGF0YQorICovCit2b2lkIHhtbExpc3REZWxldGUoeG1sTGlzdFB0ciBsKQoreworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIHhtbExpc3RDbGVhcihsKTsKKyAgICB4bWxGcmVlKGwtPnNlbnRpbmVsKTsKKyAgICB4bWxGcmVlKGwpOworfQorCisvKioKKyAqIHhtbExpc3RSZW1vdmVGaXJzdDoKKyAqIEBsOiAgYSBsaXN0CisgKiBAZGF0YTogIGxpc3QgZGF0YQorICoKKyAqIFJlbW92ZSB0aGUgZmlyc3QgaW5zdGFuY2UgYXNzb2NpYXRlZCB0byBkYXRhIGluIHRoZSBsaXN0CisgKgorICogUmV0dXJucyAxIGlmIGEgZGVhbGxvY2F0aW9uIG9jY3VyZWQsIG9yIDAgaWYgbm90IGZvdW5kCisgKi8KK2ludAoreG1sTGlzdFJlbW92ZUZpcnN0KHhtbExpc3RQdHIgbCwgdm9pZCAqZGF0YSkKK3sKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIAorICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKyAgICAvKkZpbmQgdGhlIGZpcnN0IGluc3RhbmNlIG9mIHRoaXMgZGF0YSAqLworICAgIGxrID0geG1sTGlzdExpbmtTZWFyY2gobCwgZGF0YSk7CisgICAgaWYgKGxrICE9IE5VTEwpIHsKKyAgICAgICAgeG1sTGlua0RlYWxsb2NhdG9yKGwsIGxrKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHhtbExpc3RSZW1vdmVMYXN0OgorICogQGw6ICBhIGxpc3QKKyAqIEBkYXRhOiAgbGlzdCBkYXRhCisgKgorICogUmVtb3ZlIHRoZSBsYXN0IGluc3RhbmNlIGFzc29jaWF0ZWQgdG8gZGF0YSBpbiB0aGUgbGlzdAorICoKKyAqIFJldHVybnMgMSBpZiBhIGRlYWxsb2NhdGlvbiBvY2N1cmVkLCBvciAwIGlmIG5vdCBmb3VuZAorICovCitpbnQKK3htbExpc3RSZW1vdmVMYXN0KHhtbExpc3RQdHIgbCwgdm9pZCAqZGF0YSkKK3sKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIAorICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKyAgICAvKkZpbmQgdGhlIGxhc3QgaW5zdGFuY2Ugb2YgdGhpcyBkYXRhICovCisgICAgbGsgPSB4bWxMaXN0TGlua1JldmVyc2VTZWFyY2gobCwgZGF0YSk7CisgICAgaWYgKGxrICE9IE5VTEwpIHsKKwl4bWxMaW5rRGVhbGxvY2F0b3IobCwgbGspOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogeG1sTGlzdFJlbW92ZUFsbDoKKyAqIEBsOiAgYSBsaXN0CisgKiBAZGF0YTogIGxpc3QgZGF0YQorICoKKyAqIFJlbW92ZSB0aGUgYWxsIGluc3RhbmNlIGFzc29jaWF0ZWQgdG8gZGF0YSBpbiB0aGUgbGlzdAorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkZWFsbG9jYXRpb24sIG9yIDAgaWYgbm90IGZvdW5kCisgKi8KK2ludAoreG1sTGlzdFJlbW92ZUFsbCh4bWxMaXN0UHRyIGwsIHZvaWQgKmRhdGEpCit7CisgICAgaW50IGNvdW50PTA7CisgICAgCisgICAgaWYgKGwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKDApOworCisgICAgd2hpbGUoeG1sTGlzdFJlbW92ZUZpcnN0KGwsIGRhdGEpKQorICAgICAgICBjb3VudCsrOworICAgIHJldHVybiBjb3VudDsKK30KKworLyoqCisgKiB4bWxMaXN0Q2xlYXI6CisgKiBAbDogIGEgbGlzdAorICoKKyAqIFJlbW92ZSB0aGUgYWxsIGRhdGEgaW4gdGhlIGxpc3QKKyAqLwordm9pZAoreG1sTGlzdENsZWFyKHhtbExpc3RQdHIgbCkKK3sKKyAgICB4bWxMaW5rUHRyICBsazsKKyAgICAKKyAgICBpZiAobCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgbGsgPSBsLT5zZW50aW5lbC0+bmV4dDsKKyAgICB3aGlsZShsayAhPSBsLT5zZW50aW5lbCkgeworICAgICAgICB4bWxMaW5rUHRyIG5leHQgPSBsay0+bmV4dDsKKworICAgICAgICB4bWxMaW5rRGVhbGxvY2F0b3IobCwgbGspOworICAgICAgICBsayA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbExpc3RFbXB0eToKKyAqIEBsOiAgYSBsaXN0CisgKgorICogSXMgdGhlIGxpc3QgZW1wdHkgPworICoKKyAqIFJldHVybnMgMSBpZiB0aGUgbGlzdCBpcyBlbXB0eSwgMCBpZiBub3QgZW1wdHkgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxMaXN0RW1wdHkoeG1sTGlzdFB0ciBsKQoreworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmV0dXJuIChsLT5zZW50aW5lbC0+bmV4dCA9PSBsLT5zZW50aW5lbCk7Cit9CisKKy8qKgorICogeG1sTGlzdEZyb250OgorICogQGw6ICBhIGxpc3QKKyAqCisgKiBHZXQgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGxpc3QKKyAqCisgKiBSZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0LCBvciBOVUxMCisgKi8KK3htbExpbmtQdHIgCit4bWxMaXN0RnJvbnQoeG1sTGlzdFB0ciBsKQoreworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXR1cm4gKGwtPnNlbnRpbmVsLT5uZXh0KTsKK30KKyAgICAKKy8qKgorICogeG1sTGlzdEVuZDoKKyAqIEBsOiAgYSBsaXN0CisgKgorICogR2V0IHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3QKKyAqCisgKiBSZXR1cm5zIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3QsIG9yIE5VTEwKKyAqLworeG1sTGlua1B0ciAKK3htbExpc3RFbmQoeG1sTGlzdFB0ciBsKQoreworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXR1cm4gKGwtPnNlbnRpbmVsLT5wcmV2KTsKK30KKyAgICAKKy8qKgorICogeG1sTGlzdFNpemU6CisgKiBAbDogIGEgbGlzdAorICoKKyAqIEdldCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsaXN0CisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsaXN0IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxMaXN0U2l6ZSh4bWxMaXN0UHRyIGwpCit7CisgICAgeG1sTGlua1B0ciBsazsKKyAgICBpbnQgY291bnQ9MDsKKworICAgIGlmIChsID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgLyogVE9ETzoga2VlcCBhIGNvdW50ZXIgaW4geG1sTGlzdCBpbnN0ZWFkICovCisgICAgZm9yKGxrID0gbC0+c2VudGluZWwtPm5leHQ7IGxrICE9IGwtPnNlbnRpbmVsOyBsayA9IGxrLT5uZXh0LCBjb3VudCsrKTsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKKy8qKgorICogeG1sTGlzdFBvcEZyb250OgorICogQGw6ICBhIGxpc3QKKyAqCisgKiBSZW1vdmVzIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0CisgKi8KK3ZvaWQKK3htbExpc3RQb3BGcm9udCh4bWxMaXN0UHRyIGwpCit7CisgICAgaWYoIXhtbExpc3RFbXB0eShsKSkKKyAgICAgICAgeG1sTGlua0RlYWxsb2NhdG9yKGwsIGwtPnNlbnRpbmVsLT5uZXh0KTsKK30KKworLyoqCisgKiB4bWxMaXN0UG9wQmFjazoKKyAqIEBsOiAgYSBsaXN0CisgKgorICogUmVtb3ZlcyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0CisgKi8KK3ZvaWQKK3htbExpc3RQb3BCYWNrKHhtbExpc3RQdHIgbCkKK3sKKyAgICBpZigheG1sTGlzdEVtcHR5KGwpKQorICAgICAgICB4bWxMaW5rRGVhbGxvY2F0b3IobCwgbC0+c2VudGluZWwtPnByZXYpOworfQorCisvKioKKyAqIHhtbExpc3RQdXNoRnJvbnQ6CisgKiBAbDogIGEgbGlzdAorICogQGRhdGE6ICBuZXcgZGF0YQorICoKKyAqIGFkZCB0aGUgbmV3IGRhdGEgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdAorICoKKyAqIFJldHVybnMgMSBpZiBzdWNjZXNzZnVsLCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbExpc3RQdXNoRnJvbnQoeG1sTGlzdFB0ciBsLCB2b2lkICpkYXRhKSAKK3sKKyAgICB4bWxMaW5rUHRyIGxrUGxhY2UsIGxrTmV3OworCisgICAgaWYgKGwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKDApOworICAgIGxrUGxhY2UgPSBsLT5zZW50aW5lbDsKKyAgICAvKiBBZGQgdGhlIG5ldyBsaW5rICovCisgICAgbGtOZXcgPSAoeG1sTGlua1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxMaW5rKSk7CisgICAgaWYgKGxrTmV3ID09IE5VTEwpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsIAorCQkgICAgICAgICJDYW5ub3QgaW5pdGlhbGl6ZSBtZW1vcnkgZm9yIG5ldyBsaW5rIik7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIGxrTmV3LT5kYXRhID0gZGF0YTsKKyAgICBsa05ldy0+bmV4dCA9IGxrUGxhY2UtPm5leHQ7CisgICAgKGxrUGxhY2UtPm5leHQpLT5wcmV2ID0gbGtOZXc7CisgICAgbGtQbGFjZS0+bmV4dCA9IGxrTmV3OworICAgIGxrTmV3LT5wcmV2ID0gbGtQbGFjZTsKKyAgICByZXR1cm4gMTsKK30KKworLyoqCisgKiB4bWxMaXN0UHVzaEJhY2s6CisgKiBAbDogIGEgbGlzdAorICogQGRhdGE6ICBuZXcgZGF0YQorICoKKyAqIGFkZCB0aGUgbmV3IGRhdGEgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdAorICoKKyAqIFJldHVybnMgMSBpZiBzdWNjZXNzZnVsLCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbExpc3RQdXNoQmFjayh4bWxMaXN0UHRyIGwsIHZvaWQgKmRhdGEpIAoreworICAgIHhtbExpbmtQdHIgbGtQbGFjZSwgbGtOZXc7CisKKyAgICBpZiAobCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMCk7CisgICAgbGtQbGFjZSA9IGwtPnNlbnRpbmVsLT5wcmV2OworICAgIC8qIEFkZCB0aGUgbmV3IGxpbmsgKi8KKyAgICBpZiAoTlVMTCA9PShsa05ldyA9ICh4bWxMaW5rUHRyICl4bWxNYWxsb2Moc2l6ZW9mKHhtbExpbmspKSkpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsIAorCQkgICAgICAgICJDYW5ub3QgaW5pdGlhbGl6ZSBtZW1vcnkgZm9yIG5ldyBsaW5rIik7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIGxrTmV3LT5kYXRhID0gZGF0YTsKKyAgICBsa05ldy0+bmV4dCA9IGxrUGxhY2UtPm5leHQ7CisgICAgKGxrUGxhY2UtPm5leHQpLT5wcmV2ID0gbGtOZXc7CisgICAgbGtQbGFjZS0+bmV4dCA9IGxrTmV3OworICAgIGxrTmV3LT5wcmV2ID0gbGtQbGFjZTsKKyAgICByZXR1cm4gMTsKK30KKworLyoqCisgKiB4bWxMaW5rR2V0RGF0YToKKyAqIEBsazogIGEgbGluaworICoKKyAqIFNlZSBSZXR1cm5zLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBkYXRhIHJlZmVyZW5jZWQgZnJvbSB0aGlzIGxpbmsKKyAqLwordm9pZCAqCit4bWxMaW5rR2V0RGF0YSh4bWxMaW5rUHRyIGxrKQoreworICAgIGlmIChsayA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgcmV0dXJuIGxrLT5kYXRhOworfQorCisvKioKKyAqIHhtbExpc3RSZXZlcnNlOgorICogQGw6ICBhIGxpc3QKKyAqCisgKiBSZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIGxpc3QKKyAqLwordm9pZAoreG1sTGlzdFJldmVyc2UoeG1sTGlzdFB0ciBsKQoreworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sTGlua1B0ciBsa1ByZXY7CisKKyAgICBpZiAobCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgbGtQcmV2ID0gbC0+c2VudGluZWw7CisgICAgZm9yIChsayA9IGwtPnNlbnRpbmVsLT5uZXh0OyBsayAhPSBsLT5zZW50aW5lbDsgbGsgPSBsay0+bmV4dCkgeworICAgICAgICBsa1ByZXYtPm5leHQgPSBsa1ByZXYtPnByZXY7CisgICAgICAgIGxrUHJldi0+cHJldiA9IGxrOworICAgICAgICBsa1ByZXYgPSBsazsKKyAgICB9CisgICAgLyogRml4IHVwIHRoZSBsYXN0IG5vZGUgKi8KKyAgICBsa1ByZXYtPm5leHQgPSBsa1ByZXYtPnByZXY7CisgICAgbGtQcmV2LT5wcmV2ID0gbGs7Cit9CisKKy8qKgorICogeG1sTGlzdFNvcnQ6CisgKiBAbDogIGEgbGlzdAorICoKKyAqIFNvcnQgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgbGlzdAorICovCit2b2lkCit4bWxMaXN0U29ydCh4bWxMaXN0UHRyIGwpCit7CisgICAgeG1sTGlzdFB0ciBsVGVtcDsKKyAgICAKKyAgICBpZiAobCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYoeG1sTGlzdEVtcHR5KGwpKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBJIHRoaW5rIHRoYXQgdGhlIHJlYWwgYW5zd2VyIGlzIHRvIGltcGxlbWVudCBxdWlja3NvcnQsIHRoZQorICAgICAqIGFsdGVybmF0aXZlIGlzIHRvIGltcGxlbWVudCBzb21lIGxpc3QgY29weWluZyBwcm9jZWR1cmUgd2hpY2gKKyAgICAgKiB3b3VsZCBiZSBiYXNlZCBvbiBhIGxpc3QgY29weSBmb2xsb3dlZCBieSBhIGNsZWFyIGZvbGxvd2VkIGJ5CisgICAgICogYW4gaW5zZXJ0LiBUaGlzIGlzIHNsb3cuLi4KKyAgICAgKi8KKworICAgIGlmIChOVUxMID09KGxUZW1wID0geG1sTGlzdER1cChsKSkpCisgICAgICAgIHJldHVybjsKKyAgICB4bWxMaXN0Q2xlYXIobCk7CisgICAgeG1sTGlzdE1lcmdlKGwsIGxUZW1wKTsKKyAgICB4bWxMaXN0RGVsZXRlKGxUZW1wKTsKKyAgICByZXR1cm47Cit9CisKKy8qKgorICogeG1sTGlzdFdhbGs6CisgKiBAbDogIGEgbGlzdAorICogQHdhbGtlcjogIGEgcHJvY2Vzc2luZyBmdW5jdGlvbgorICogQHVzZXI6ICBhIHVzZXIgcGFyYW1ldGVyIHBhc3NlZCB0byB0aGUgd2Fsa2VyIGZ1bmN0aW9uCisgKgorICogV2FsayBhbGwgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IGZyb20gZmlyc3QgdG8gbGFzdCBhbmQKKyAqIGFwcGx5IHRoZSB3YWxrZXIgZnVuY3Rpb24gdG8gaXQKKyAqLwordm9pZAoreG1sTGlzdFdhbGsoeG1sTGlzdFB0ciBsLCB4bWxMaXN0V2Fsa2VyIHdhbGtlciwgY29uc3Qgdm9pZCAqdXNlcikgeworICAgIHhtbExpbmtQdHIgbGs7CisKKyAgICBpZiAoKGwgPT0gTlVMTCkgfHwgKHdhbGtlciA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvcihsayA9IGwtPnNlbnRpbmVsLT5uZXh0OyBsayAhPSBsLT5zZW50aW5lbDsgbGsgPSBsay0+bmV4dCkgeworICAgICAgICBpZigod2Fsa2VyKGxrLT5kYXRhLCB1c2VyKSkgPT0gMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8qKgorICogeG1sTGlzdFJldmVyc2VXYWxrOgorICogQGw6ICBhIGxpc3QKKyAqIEB3YWxrZXI6ICBhIHByb2Nlc3NpbmcgZnVuY3Rpb24KKyAqIEB1c2VyOiAgYSB1c2VyIHBhcmFtZXRlciBwYXNzZWQgdG8gdGhlIHdhbGtlciBmdW5jdGlvbgorICoKKyAqIFdhbGsgYWxsIHRoZSBlbGVtZW50IG9mIHRoZSBsaXN0IGluIHJldmVyc2Ugb3JkZXIgYW5kCisgKiBhcHBseSB0aGUgd2Fsa2VyIGZ1bmN0aW9uIHRvIGl0CisgKi8KK3ZvaWQKK3htbExpc3RSZXZlcnNlV2Fsayh4bWxMaXN0UHRyIGwsIHhtbExpc3RXYWxrZXIgd2Fsa2VyLCBjb25zdCB2b2lkICp1c2VyKSB7CisgICAgeG1sTGlua1B0ciBsazsKKworICAgIGlmICgobCA9PSBOVUxMKSB8fCAod2Fsa2VyID09IE5VTEwpKQorICAgICAgICByZXR1cm47CisgICAgZm9yKGxrID0gbC0+c2VudGluZWwtPnByZXY7IGxrICE9IGwtPnNlbnRpbmVsOyBsayA9IGxrLT5wcmV2KSB7CisgICAgICAgIGlmKCh3YWxrZXIobGstPmRhdGEsIHVzZXIpKSA9PSAwKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLyoqCisgKiB4bWxMaXN0TWVyZ2U6CisgKiBAbDE6ICB0aGUgb3JpZ2luYWwgbGlzdAorICogQGwyOiAgdGhlIG5ldyBsaXN0CisgKgorICogaW5jbHVkZSBhbGwgdGhlIGVsZW1lbnRzIG9mIHRoZSBzZWNvbmQgbGlzdCBpbiB0aGUgZmlyc3Qgb25lIGFuZAorICogY2xlYXIgdGhlIHNlY29uZCBsaXN0CisgKi8KK3ZvaWQKK3htbExpc3RNZXJnZSh4bWxMaXN0UHRyIGwxLCB4bWxMaXN0UHRyIGwyKQoreworICAgIHhtbExpc3RDb3B5KGwxLCBsMik7CisgICAgeG1sTGlzdENsZWFyKGwyKTsKK30KKworLyoqCisgKiB4bWxMaXN0RHVwOgorICogQG9sZDogIHRoZSBsaXN0CisgKgorICogRHVwbGljYXRlIHRoZSBsaXN0CisgKiAKKyAqIFJldHVybnMgYSBuZXcgY29weSBvZiB0aGUgbGlzdCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sTGlzdFB0ciAKK3htbExpc3REdXAoY29uc3QgeG1sTGlzdFB0ciBvbGQpCit7CisgICAgeG1sTGlzdFB0ciBjdXI7CisKKyAgICBpZiAob2xkID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICAvKiBIbW1tLCBob3cgdG8gYmVzdCBkZWFsIHdpdGggYWxsb2NhdGlvbiBpc3N1ZXMgd2hlbiBjb3B5aW5nCisgICAgICogbGlzdHMuIElmIHRoZXJlIGlzIGEgZGUtYWxsb2NhdG9yLCBzaG91bGQgcmVzcG9uc2liaWxpdHkgbGllIHdpdGgKKyAgICAgKiB0aGUgbmV3IGxpc3Qgb3IgdGhlIG9sZCBsaXN0LiBTdXJlbHkgbm90IGJvdGguIEknbGwgYXJiaXRyYXJpbHkKKyAgICAgKiBzZXQgaXQgdG8gYmUgdGhlIG9sZCBsaXN0IGZvciB0aGUgdGltZSBiZWluZyB3aGlsc3QgSSB3b3JrIG91dAorICAgICAqIHRoZSBhbnN3ZXIKKyAgICAgKi8KKyAgICBpZiAoTlVMTCA9PShjdXIgPSB4bWxMaXN0Q3JlYXRlKE5VTEwsIG9sZC0+bGlua0NvbXBhcmUpKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoMCAhPSB4bWxMaXN0Q29weShjdXIsIG9sZCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBjdXI7Cit9CisKKy8qKgorICogeG1sTGlzdENvcHk6CisgKiBAY3VyOiAgdGhlIG5ldyBsaXN0CisgKiBAb2xkOiAgdGhlIG9sZCBsaXN0CisgKgorICogTW92ZSBhbGwgdGhlIGVsZW1lbnQgZnJvbSB0aGUgb2xkIGxpc3QgaW4gdGhlIG5ldyBsaXN0CisgKiAKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sTGlzdENvcHkoeG1sTGlzdFB0ciBjdXIsIGNvbnN0IHhtbExpc3RQdHIgb2xkKQoreworICAgIC8qIFdhbGsgdGhlIG9sZCB0cmVlIGFuZCBpbnNlcnQgdGhlIGRhdGEgaW50byB0aGUgbmV3IG9uZSAqLworICAgIHhtbExpbmtQdHIgbGs7CisKKyAgICBpZiAoKG9sZCA9PSBOVUxMKSB8fCAoY3VyID09IE5VTEwpKQorICAgICAgICByZXR1cm4oMSk7CisgICAgZm9yKGxrID0gb2xkLT5zZW50aW5lbC0+bmV4dDsgbGsgIT0gb2xkLT5zZW50aW5lbDsgbGsgPSBsay0+bmV4dCkgeworICAgICAgICBpZiAoMCAhPXhtbExpc3RJbnNlcnQoY3VyLCBsay0+ZGF0YSkpIHsKKyAgICAgICAgICAgIHhtbExpc3REZWxldGUoY3VyKTsKKyAgICAgICAgICAgIHJldHVybiAoMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICgwKTsgICAgCit9CisvKiB4bWxMaXN0VW5pcXVlKCkgKi8KKy8qIHhtbExpc3RTd2FwICovCisjZGVmaW5lIGJvdHRvbV9saXN0CisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9sdG1haW4uc2ggYi9saWJ4bWwyLTIuNy43L2x0bWFpbi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNzJmMmZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9sdG1haW4uc2gKQEAgLTAsMCArMSw4NDA2IEBACisjIEdlbmVyYXRlZCBmcm9tIGx0bWFpbi5tNHNoLgorCisjIGx0bWFpbi5zaCAoR05VIGxpYnRvb2wpIDIuMi42YgorIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3JkQGdudS5haS5taXQuZWR1PiwgMTk5NgorCisjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTworIyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorIyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0aGF0CisjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQorIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKyMKKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5CisjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLAorIyBvciBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorCisjIFVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gW01PREUtQVJHXS4uLgorIworIyBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KKyMKKyMgICAgIC0tY29uZmlnICAgICAgICAgICAgIHNob3cgYWxsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzCisjICAgICAtLWRlYnVnICAgICAgICAgICAgICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCisjIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICBkaXNwbGF5IGNvbW1hbmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcworIyAgICAgLS1mZWF0dXJlcyAgICAgICAgICAgZGlzcGxheSBiYXNpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CisjICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ugb3BlcmF0aW9uIG1vZGUgTU9ERQorIyAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcyAgZG9uJ3QgcmVtb3ZlIGR1cGxpY2F0ZSBkZXBlbmRlbmN5IGxpYnJhcmllcworIyAgICAgLS1xdWlldCwgLS1zaWxlbnQgICAgZG9uJ3QgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcworIyAgICAgLS10YWc9VEFHICAgICAgICAgICAgdXNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZyb20gdGFnIFRBRworIyAtdiwgLS12ZXJib3NlICAgICAgICAgICAgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyAoZGVmYXVsdCkKKyMgICAgIC0tdmVyc2lvbiAgICAgICAgICAgIHByaW50IHZlcnNpb24gaW5mb3JtYXRpb24KKyMgLWgsIC0taGVscCAgICAgICAgICAgICAgIHByaW50IHNob3J0IG9yIGxvbmcgaGVscCBtZXNzYWdlCisjCisjIE1PREUgbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyMKKyMgICAgICAgY2xlYW4gICAgICAgICAgICAgIHJlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKKyMgICAgICAgY29tcGlsZSAgICAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9vbCBvYmplY3QKKyMgICAgICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCisjICAgICAgIGZpbmlzaCAgICAgICAgICAgICBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCisjICAgICAgIGluc3RhbGwgICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBleGVjdXRhYmxlcworIyAgICAgICBsaW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVjdXRhYmxlCisjICAgICAgIHVuaW5zdGFsbCAgICAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGVkIGRpcmVjdG9yeQorIworIyBNT0RFLUFSR1MgdmFyeSBkZXBlbmRpbmcgb24gdGhlIE1PREUuCisjIFRyeSBgJHByb2duYW1lIC0taGVscCAtLW1vZGU9TU9ERScgZm9yIGEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBNT0RFLgorIworIyBXaGVuIHJlcG9ydGluZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVzdCBjYXNlIHRvIHJlcHJvZHVjZSBpdCBhbmQKKyMgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgorIworIyAgICAgICBob3N0LXRyaXBsZXQ6CSRob3N0CisjICAgICAgIHNoZWxsOgkJJFNIRUxMCisjICAgICAgIGNvbXBpbGVyOgkJJExUQ0MKKyMgICAgICAgY29tcGlsZXIgZmxhZ3M6CQkkTFRDRkxBR1MKKyMgICAgICAgbGlua2VyOgkJJExEIChnbnU/ICR3aXRoX2dudV9sZCkKKyMgICAgICAgJHByb2duYW1lOgkJKEdOVSBsaWJ0b29sKSAyLjIuNmIKKyMgICAgICAgYXV0b21ha2U6CQkkYXV0b21ha2VfdmVyc2lvbgorIyAgICAgICBhdXRvY29uZjoJCSRhdXRvY29uZl92ZXJzaW9uCisjCisjIFJlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4KKworUFJPR1JBTT1sdG1haW4uc2gKK1BBQ0tBR0U9bGlidG9vbAorVkVSU0lPTj0yLjIuNmIKK1RJTUVTVEFNUD0iIgorcGFja2FnZV9yZXZpc2lvbj0xLjMwMTcKKworIyBCZSBCb3VybmUgY29tcGF0aWJsZQoraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGVtdWxhdGUgc2gKKyAgTlVMTENNRD06CisgICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCisgIHNldG9wdCBOT19HTE9CX1NVQlNUCitlbHNlCisgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAqcG9zaXgqKSBzZXQgLW8gcG9zaXg7OyBlc2FjCitmaQorQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKworIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKyMgT25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFkeSBzZXQuCisjIFRoZXNlIG11c3Qgbm90IGJlIHNldCB1bmNvbmRpdGlvbmFsbHkgYmVjYXVzZSBub3QgYWxsIHN5c3RlbXMgdW5kZXJzdGFuZAorIyBlLmcuIExBTkc9QyAobm90YWJseSBTQ08pLgorbHRfdXNlcl9sb2NhbGU9CitsdF9zYWZlX2xvY2FsZT0KK2ZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUworZG8KKyAgZXZhbCAiaWYgdGVzdCBcIlwkeyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCisgICAgICAgICAgc2F2ZV8kbHRfdmFyPVwkJGx0X3ZhcgorICAgICAgICAgICRsdF92YXI9QworCSAgZXhwb3J0ICRsdF92YXIKKwkgIGx0X3VzZXJfbG9jYWxlPVwiJGx0X3Zhcj1cXFwkc2F2ZV9cJGx0X3ZhcjsgXCRsdF91c2VyX2xvY2FsZVwiCisJICBsdF9zYWZlX2xvY2FsZT1cIiRsdF92YXI9QzsgXCRsdF9zYWZlX2xvY2FsZVwiCisJZmkiCitkb25lCisKKyRsdF91bnNldCBDRFBBVEgKKworCisKKworCis6ICR7Q1A9ImNwIC1mIn0KKzogJHtFQ0hPPSJlY2hvIn0KKzogJHtFR1JFUD0iL2Jpbi9ncmVwIC1FIn0KKzogJHtGR1JFUD0iL2Jpbi9ncmVwIC1GIn0KKzogJHtHUkVQPSIvYmluL2dyZXAifQorOiAke0xOX1M9ImxuIC1zIn0KKzogJHtNQUtFPSJtYWtlIn0KKzogJHtNS0RJUj0ibWtkaXIifQorOiAke01WPSJtdiAtZiJ9Cis6ICR7Uk09InJtIC1mIn0KKzogJHtTRUQ9Ii9iaW4vc2VkIn0KKzogJHtTSEVMTD0iJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0ifQorOiAke1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyJ9CisKKyMgR2xvYmFsIHZhcmlhYmxlczoKK0VYSVRfU1VDQ0VTUz0wCitFWElUX0ZBSUxVUkU9MQorRVhJVF9NSVNNQVRDSD02MyAgIyAkPyA9IDYzIGlzIHVzZWQgdG8gaW5kaWNhdGUgdmVyc2lvbiBtaXNtYXRjaCB0byBtaXNzaW5nLgorRVhJVF9TS0lQPTc3CSAgIyAkPyA9IDc3IGlzIHVzZWQgdG8gaW5kaWNhdGUgYSBza2lwcGVkIHRlc3QgdG8gYXV0b21ha2UuCisKK2V4aXRfc3RhdHVzPSRFWElUX1NVQ0NFU1MKKworIyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNlbnNpYmxlIGRlZmF1bHQKK2x0X25sPScKKycKK0lGUz0iIAkkbHRfbmwiCisKK2Rpcm5hbWU9InMsL1teL10qJCwsIgorYmFzZW5hbWU9InMsXi4qLywsIgorCisjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisjIHBlcmZvcm0gZnVuY19iYXNlbmFtZSBhbmQgZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1bmN0aW9uCisjIGNhbGw6CisjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAorIyAgICAgICAgICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0CisjICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorIyAgIGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9mIEZJTEUuCisjICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9yIGVmZmljaWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0bworIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCitmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCit7CisgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAorICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCisgIGVsc2UKKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisgIGZpCisgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCit9CisKKyMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlLgorCisjIFdvcmsgYXJvdW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXNzdWUgb24gSVJJWCA2LjUuIE9uIElSSVggNi40Kywgc2gKKyMgaXMga3NoIGJ1dCB3aGVuIHRoZSBzaGVsbCBpcyBpbnZva2VkIGFzICJzaCIgYW5kIHRoZSBjdXJyZW50IHZhbHVlIG9mCisjIHRoZSBfWFBHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byAxIChvbmUpLCB0aGUgc3BlY2lhbAorIyBwb3NpdGlvbmFsIHBhcmFtZXRlciAkMCwgd2l0aGluIGEgZnVuY3Rpb24gY2FsbCwgaXMgdGhlIG5hbWUgb2YgdGhlCisjIGZ1bmN0aW9uLgorcHJvZ3BhdGg9IiQwIgorCisjIFRoZSBuYW1lIG9mIHRoaXMgcHJvZ3JhbToKKyMgSW4gdGhlIHVubGlrZWx5IGV2ZW50ICRwcm9nbmFtZSBiZWdhbiB3aXRoIGEgJy0nLCBpdCB3b3VsZCBwbGF5IGhhdm9jIHdpdGgKKyMgZnVuY19lY2hvIChpbWFnaW5lIHByb2duYW1lPS1uKSwgc28gd2UgcHJlcGVuZCAuLyBpbiB0aGF0IGNhc2U6CitmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkcHJvZ3BhdGgiCitwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKK2Nhc2UgJHByb2duYW1lIGluCisgIC0qKSBwcm9nbmFtZT0uLyRwcm9nbmFtZSA7OworZXNhYworCisjIE1ha2Ugc3VyZSB3ZSBoYXZlIGFuIGFic29sdXRlIHBhdGggZm9yIHJlZXhlY3V0aW9uOgorY2FzZSAkcHJvZ3BhdGggaW4KKyAgW1xcL10qfFtBLVphLXpdOlxcKikgOzsKKyAgKltcXC9dKikKKyAgICAgcHJvZ2Rpcj0kZnVuY19kaXJuYW1lX3Jlc3VsdAorICAgICBwcm9nZGlyPWBjZCAiJHByb2dkaXIiICYmIHB3ZGAKKyAgICAgcHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9nbmFtZSIKKyAgICAgOzsKKyAgKikKKyAgICAgc2F2ZV9JRlM9IiRJRlMiCisgICAgIElGUz06CisgICAgIGZvciBwcm9nZGlyIGluICRQQVRIOyBkbworICAgICAgIElGUz0iJHNhdmVfSUZTIgorICAgICAgIHRlc3QgLXggIiRwcm9nZGlyLyRwcm9nbmFtZSIgJiYgYnJlYWsKKyAgICAgZG9uZQorICAgICBJRlM9IiRzYXZlX0lGUyIKKyAgICAgdGVzdCAtbiAiJHByb2dkaXIiIHx8IHByb2dkaXI9YHB3ZGAKKyAgICAgcHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9nbmFtZSIKKyAgICAgOzsKK2VzYWMKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcworIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KK1hzZWQ9IiR7U0VEfSInIC1lIDFzL15YLy8nCitzZWRfcXVvdGVfc3Vic3Q9J3MvXChbYCIkXFxdXCkvXFxcMS9nJworCisjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycKKworIyBSZS1gXCcgcGFyYW1ldGVyIGV4cGFuc2lvbnMgaW4gb3V0cHV0IG9mIGRvdWJsZV9xdW90ZV9zdWJzdCB0aGF0IHdlcmUKKyMgYFwnLWVkIGluIGlucHV0IHRvIHRoZSBzYW1lLiAgSWYgYW4gb2RkIG51bWJlciBvZiBgXCcgcHJlY2VkZWQgYSAnJCcKKyMgaW4gaW5wdXQgdG8gZG91YmxlX3F1b3RlX3N1YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVjdGVkIGZyb20gZXhwYW5zaW9uLgorIyBTaW5jZSBlYWNoIGlucHV0IGBcJyBpcyBub3cgdHdvIGBcJ3MsIGxvb2sgZm9yIGFueSBudW1iZXIgb2YgcnVucyBvZgorIyBmb3VyIGBcJ3MgZm9sbG93ZWQgYnkgdHdvIGBcJ3MgYW5kIHRoZW4gYSAnJCcuICBgXCcgdGhhdCAnJCcuCiticz0nXFwnCiticzI9J1xcXFwnCiticzQ9J1xcXFxcXFxcJworZG9sbGFyPSdcJCcKK3NlZF9kb3VibGVfYmFja3NsYXNoPSJcCisgIHMvJGJzNC8mXFwKKy9nCisgIHMvXiRiczIkZG9sbGFyLyRicyYvCisgIHMvXFwoW14kYnNdXFwpJGJzMiRkb2xsYXIvXFwxJGJzMiRicyRkb2xsYXIvZworICBzL1xuLy9nIgorCisjIFN0YW5kYXJkIG9wdGlvbnM6CitvcHRfZHJ5X3J1bj1mYWxzZQorb3B0X2hlbHA9ZmFsc2UKK29wdF9xdWlldD1mYWxzZQorb3B0X3ZlcmJvc2U9ZmFsc2UKK29wdF93YXJuaW5nPToKKworIyBmdW5jX2VjaG8gYXJnLi4uCisjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UsIGFsb25nIHdpdGggdGhlIGN1cnJlbnQgbW9kZQorIyBuYW1lIGlmIGl0IGhhcyBiZWVuIHNldCB5ZXQuCitmdW5jX2VjaG8gKCkKK3sKKyAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAkKiIKK30KKworIyBmdW5jX3ZlcmJvc2UgYXJnLi4uCisjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgaW4gdmVyYm9zZSBtb2RlIG9ubHkuCitmdW5jX3ZlcmJvc2UgKCkKK3sKKyAgICAkb3B0X3ZlcmJvc2UgJiYgZnVuY19lY2hvICR7MSsiJEAifQorCisgICAgIyBBIGJ1ZyBpbiBiYXNoIGhhbHRzIHRoZSBzY3JpcHQgaWYgdGhlIGxhc3QgbGluZSBvZiBhIGZ1bmN0aW9uCisgICAgIyBmYWlscyB3aGVuIHNldCAtZSBpcyBpbiBmb3JjZSwgc28gd2UgbmVlZCBhbm90aGVyIGNvbW1hbmQgdG8KKyAgICAjIHdvcmsgYXJvdW5kIHRoYXQ6CisgICAgOgorfQorCisjIGZ1bmNfZXJyb3IgYXJnLi4uCisjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCitmdW5jX2Vycm9yICgpCit7CisgICAgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9kZTogIiR7MSsiJEAifSAxPiYyCit9CisKKyMgZnVuY193YXJuaW5nIGFyZy4uLgorIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCB3YXJuaW5nIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCitmdW5jX3dhcm5pbmcgKCkKK3sKKyAgICAkb3B0X3dhcm5pbmcgJiYgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9kZTogd2FybmluZzogIiR7MSsiJEAifSAxPiYyCisKKyAgICAjIGJhc2ggYnVnIGFnYWluOgorICAgIDoKK30KKworIyBmdW5jX2ZhdGFsX2Vycm9yIGFyZy4uLgorIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBhbmQgZXhpdC4KK2Z1bmNfZmF0YWxfZXJyb3IgKCkKK3sKKyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQorICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorfQorCisjIGZ1bmNfZmF0YWxfaGVscCBhcmcuLi4KKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93ZWQgYnkKKyMgYSBoZWxwIGhpbnQsIGFuZCBleGl0LgorZnVuY19mYXRhbF9oZWxwICgpCit7CisgICAgZnVuY19lcnJvciAkezErIiRAIn0KKyAgICBmdW5jX2ZhdGFsX2Vycm9yICIkaGVscCIKK30KK2hlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgICMjIGRlZmF1bHQKKworCisjIGZ1bmNfZ3JlcCBleHByZXNzaW9uIGZpbGVuYW1lCisjIENoZWNrIHdoZXRoZXIgRVhQUkVTU0lPTiBtYXRjaGVzIGFueSBsaW5lIG9mIEZJTEVOQU1FLCB3aXRob3V0IG91dHB1dC4KK2Z1bmNfZ3JlcCAoKQoreworICAgICRHUkVQICIkMSIgIiQyIiA+L2Rldi9udWxsIDI+JjEKK30KKworCisjIGZ1bmNfbWtkaXJfcCBkaXJlY3RvcnktcGF0aAorIyBNYWtlIHN1cmUgdGhlIGVudGlyZSBwYXRoIHRvIERJUkVDVE9SWS1QQVRIIGlzIGF2YWlsYWJsZS4KK2Z1bmNfbWtkaXJfcCAoKQoreworICAgIG15X2RpcmVjdG9yeV9wYXRoPSIkMSIKKyAgICBteV9kaXJfbGlzdD0KKworICAgIGlmIHRlc3QgLW4gIiRteV9kaXJlY3RvcnlfcGF0aCIgJiYgdGVzdCAiJG9wdF9kcnlfcnVuIiAhPSAiOiI7IHRoZW4KKworICAgICAgIyBQcm90ZWN0IGRpcmVjdG9yeSBuYW1lcyBzdGFydGluZyB3aXRoIGAtJworICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4KKyAgICAgICAgLSopIG15X2RpcmVjdG9yeV9wYXRoPSIuLyRteV9kaXJlY3RvcnlfcGF0aCIgOzsKKyAgICAgIGVzYWMKKworICAgICAgIyBXaGlsZSBzb21lIHBvcnRpb24gb2YgRElSIGRvZXMgbm90IHlldCBleGlzdC4uLgorICAgICAgd2hpbGUgdGVzdCAhIC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiOyBkbworICAgICAgICAjIC4uLm1ha2UgYSBsaXN0IGluIHRvcG1vc3QgZmlyc3Qgb3JkZXIuICBVc2UgYSBjb2xvbiBkZWxpbWl0ZWQKKwkjIGxpc3QgaW5jYXNlIHNvbWUgcG9ydGlvbiBvZiBwYXRoIGNvbnRhaW5zIHdoaXRlc3BhY2UuCisgICAgICAgIG15X2Rpcl9saXN0PSIkbXlfZGlyZWN0b3J5X3BhdGg6JG15X2Rpcl9saXN0IgorCisgICAgICAgICMgSWYgdGhlIGxhc3QgcG9ydGlvbiBhZGRlZCBoYXMgbm8gc2xhc2ggaW4gaXQsIHRoZSBsaXN0IGlzIGRvbmUKKyAgICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4gKi8qKSA7OyAqKSBicmVhayA7OyBlc2FjCisKKyAgICAgICAgIyAuLi5vdGhlcndpc2UgdGhyb3cgYXdheSB0aGUgY2hpbGQgZGlyZWN0b3J5IGFuZCBsb29wCisgICAgICAgIG15X2RpcmVjdG9yeV9wYXRoPWAkRUNITyAiWCRteV9kaXJlY3RvcnlfcGF0aCIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAorICAgICAgZG9uZQorICAgICAgbXlfZGlyX2xpc3Q9YCRFQ0hPICJYJG15X2Rpcl9saXN0IiB8ICRYc2VkIC1lICdzLDoqJCwsJ2AKKworICAgICAgc2F2ZV9ta2Rpcl9wX0lGUz0iJElGUyI7IElGUz0nOicKKyAgICAgIGZvciBteV9kaXIgaW4gJG15X2Rpcl9saXN0OyBkbworCUlGUz0iJHNhdmVfbWtkaXJfcF9JRlMiCisgICAgICAgICMgbWtkaXIgY2FuIGZhaWwgd2l0aCBhIGBGaWxlIGV4aXN0JyBlcnJvciBpZiB0d28gcHJvY2Vzc2VzCisgICAgICAgICMgdHJ5IHRvIGNyZWF0ZSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzIGNvbmN1cnJlbnRseS4gIERvbid0CisgICAgICAgICMgc3RvcCBpbiB0aGF0IGNhc2UhCisgICAgICAgICRNS0RJUiAiJG15X2RpciIgMj4vZGV2L251bGwgfHwgOgorICAgICAgZG9uZQorICAgICAgSUZTPSIkc2F2ZV9ta2Rpcl9wX0lGUyIKKworICAgICAgIyBCYWlsIG91dCBpZiB3ZSAob3Igc29tZSBvdGhlciBwcm9jZXNzKSBmYWlsZWQgdG8gY3JlYXRlIGEgZGlyZWN0b3J5LgorICAgICAgdGVzdCAtZCAiJG15X2RpcmVjdG9yeV9wYXRoIiB8fCBcCisgICAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIkZhaWxlZCB0byBjcmVhdGUgXGAkMSciCisgICAgZmkKK30KKworCisjIGZ1bmNfbWt0ZW1wZGlyIFtzdHJpbmddCisjIE1ha2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCisjIGxpYnRvb2wgcHJvY2Vzc2VzLCBhbmQgYXZvaWRzIHJhY2UgY29uZGl0aW9ucyBpZiBwb3NzaWJsZS4gIElmCisjIGdpdmVuLCBTVFJJTkcgaXMgdGhlIGJhc2VuYW1lIGZvciB0aGF0IGRpcmVjdG9yeS4KK2Z1bmNfbWt0ZW1wZGlyICgpCit7CisgICAgbXlfdGVtcGxhdGU9IiR7VE1QRElSLS90bXB9LyR7MS0kcHJvZ25hbWV9IgorCisgICAgaWYgdGVzdCAiJG9wdF9kcnlfcnVuIiA9ICI6IjsgdGhlbgorICAgICAgIyBSZXR1cm4gYSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRvbid0IGNyZWF0ZSBpdCBpbiBkcnktcnVuIG1vZGUKKyAgICAgIG15X3RtcGRpcj0iJHtteV90ZW1wbGF0ZX0tJCQiCisgICAgZWxzZQorCisgICAgICAjIElmIG1rdGVtcCB3b3JrcywgdXNlIHRoYXQgZmlyc3QgYW5kIGZvcmVtb3N0CisgICAgICBteV90bXBkaXI9YG1rdGVtcCAtZCAiJHtteV90ZW1wbGF0ZX0tWFhYWFhYWFgiIDI+L2Rldi9udWxsYAorCisgICAgICBpZiB0ZXN0ICEgLWQgIiRteV90bXBkaXIiOyB0aGVuCisgICAgICAgICMgRmFpbGluZyB0aGF0LCBhdCBsZWFzdCB0cnkgYW5kIHVzZSAkUkFORE9NIHRvIGF2b2lkIGEgcmFjZQorICAgICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSR7UkFORE9NLTB9JCQiCisKKyAgICAgICAgc2F2ZV9ta3RlbXBkaXJfdW1hc2s9YHVtYXNrYAorICAgICAgICB1bWFzayAwMDc3CisgICAgICAgICRNS0RJUiAiJG15X3RtcGRpciIKKyAgICAgICAgdW1hc2sgJHNhdmVfbWt0ZW1wZGlyX3VtYXNrCisgICAgICBmaQorCisgICAgICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVuIG1vZGUsIGJvbWIgb3V0IG9uIGZhaWx1cmUKKyAgICAgIHRlc3QgLWQgIiRteV90bXBkaXIiIHx8IFwKKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IFxgJG15X3RtcGRpciciCisgICAgZmkKKworICAgICRFQ0hPICJYJG15X3RtcGRpciIgfCAkWHNlZAorfQorCisKKyMgZnVuY19xdW90ZV9mb3JfZXZhbCBhcmcKKyMgQWVzdGhldGljYWxseSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVkIGxhdGVyLgorIyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHdvIHZhbHVlczogRlVOQ19RVU9URV9GT1JfRVZBTF9SRVNVTFQKKyMgaXMgZG91YmxlLXF1b3RlZCwgc3VpdGFibGUgZm9yIGEgc3Vic2VxdWVudCBldmFsLCB3aGVyZWFzCisjIEZVTkNfUVVPVEVfRk9SX0VWQUxfVU5RVU9URURfUkVTVUxUIGhhcyBtZXJlbHkgYWxsIGNoYXJhY3RlcnMKKyMgd2hpY2ggYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlIHF1b3RlcyBiYWNrc2xhc2hpZmllZC4KK2Z1bmNfcXVvdGVfZm9yX2V2YWwgKCkKK3sKKyAgICBjYXNlICQxIGluCisgICAgICAqW1xcXGBcIlwkXSopCisJZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9YCRFQ0hPICJYJDEiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYCA7OworICAgICAgKikKKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9IiQxIiA7OworICAgIGVzYWMKKworICAgIGNhc2UgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0IGluCisgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKKyAgICAgICMgd29yZCBzcGxpdHRpbmcsIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGFuZCBhbmQgdmFyaWFibGUKKyAgICAgICMgZXhwYW5zaW9uIGZvciBhIHN1YnNlcXVlbnQgZXZhbC4KKyAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5CisgICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgorICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSJcIiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdFwiIgorICAgICAgICA7OworICAgICAgKikKKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdCIKKyAgICBlc2FjCit9CisKKworIyBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgYXJnCisjIEFlc3RoZXRpY2FsbHkgcXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRlcjsgc2FtZSBhcyBhYm92ZSwKKyMgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgorZnVuY19xdW90ZV9mb3JfZXhwYW5kICgpCit7CisgICAgY2FzZSAkMSBpbgorICAgICAgKltcXFxgXCJdKikKKwlteV9hcmc9YCRFQ0hPICJYJDEiIHwgJFhzZWQgXAorCSAgICAtZSAiJGRvdWJsZV9xdW90ZV9zdWJzdCIgLWUgIiRzZWRfZG91YmxlX2JhY2tzbGFzaCJgIDs7CisgICAgICAqKQorICAgICAgICBteV9hcmc9IiQxIiA7OworICAgIGVzYWMKKworICAgIGNhc2UgJG15X2FyZyBpbgorICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0ZXJzIHRvIGRlbGF5CisgICAgICAjIHdvcmQgc3BsaXR0aW5nIGFuZCBjb21tYW5kIHN1YnN0aXR1dGlvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCisgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3NlIGJyYWNrZXRzIGNvcnJlY3RseQorICAgICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNwZWNpZnkgaXQgc2VwYXJhdGVseS4KKyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorICAgICAgICBteV9hcmc9IlwiJG15X2FyZ1wiIgorICAgICAgICA7OworICAgIGVzYWMKKworICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQ9IiRteV9hcmciCit9CisKKworIyBmdW5jX3Nob3dfZXZhbCBjbWQgW2ZhaWxfZXhwXQorIyBVbmxlc3Mgb3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQuICBUaGVuLCBpZiBvcHRfZHJ5cnVuIGlzCisjIG5vdCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBDTUQgZmFpbHMsIGFuZCBGQUlMX0VYUAorIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4KK2Z1bmNfc2hvd19ldmFsICgpCit7CisgICAgbXlfY21kPSIkMSIKKyAgICBteV9mYWlsX2V4cD0iJHsyLTp9IgorCisgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7CisgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRteV9jbWQiCisgICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisgICAgfQorCisgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRoZW4gOjsgZWxzZQorICAgICAgZXZhbCAiJG15X2NtZCIKKyAgICAgIG15X3N0YXR1cz0kPworICAgICAgaWYgdGVzdCAiJG15X3N0YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQorCWV2YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCisgICAgICBmaQorICAgIGZpCit9CisKKworIyBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgY21kIFtmYWlsX2V4cF0KKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcworIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhlIGV2YWx1YXRpb24gb2YgQ01EIGZhaWxzLCBhbmQgRkFJTF9FWFAKKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBVc2UgdGhlIHNhdmVkIGxvY2FsZSBmb3IgZXZhbHVhdGlvbi4KK2Z1bmNfc2hvd19ldmFsX2xvY2FsZSAoKQoreworICAgIG15X2NtZD0iJDEiCisgICAgbXlfZmFpbF9leHA9IiR7Mi06fSIKKworICAgICR7b3B0X3NpbGVudC1mYWxzZX0gfHwgeworICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkbXlfY21kIgorICAgICAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorICAgIH0KKworICAgIGlmICR7b3B0X2RyeV9ydW4tZmFsc2V9OyB0aGVuIDo7IGVsc2UKKyAgICAgIGV2YWwgIiRsdF91c2VyX2xvY2FsZQorCSAgICAkbXlfY21kIgorICAgICAgbXlfc3RhdHVzPSQ/CisgICAgICBldmFsICIkbHRfc2FmZV9sb2NhbGUiCisgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCisJZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIKKyAgICAgIGZpCisgICAgZmkKK30KKworCisKKworCisjIGZ1bmNfdmVyc2lvbgorIyBFY2hvIHZlcnNpb24gbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCitmdW5jX3ZlcnNpb24gKCkKK3sKKyAgICAkU0VEIC1uICcvXiMgJyRQUk9HUkFNJyAoR05VIC8sLyMgd2FycmFudHk7IC8geworICAgICAgICBzL14jIC8vCisJcy9eIyAqJC8vCisgICAgICAgIHMvXCgoQylcKVsgMC05LC1dKlwoIFsxLTldWzAtOV0qXCkvXDFcMi8KKyAgICAgICAgcAorICAgICB9JyA8ICIkcHJvZ3BhdGgiCisgICAgIGV4aXQgJD8KK30KKworIyBmdW5jX3VzYWdlCisjIEVjaG8gc2hvcnQgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KK2Z1bmNfdXNhZ2UgKCkKK3sKKyAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvIyAtaC8geworICAgICAgICBzL14jIC8vCisJcy9eIyAqJC8vCisJcy9cJHByb2duYW1lLyckcHJvZ25hbWUnLworCXAKKyAgICB9JyA8ICIkcHJvZ3BhdGgiCisgICAgJEVDSE8KKyAgICAkRUNITyAicnVuIFxgJHByb2duYW1lIC0taGVscCB8IG1vcmUnIGZvciBmdWxsIHVzYWdlIgorICAgIGV4aXQgJD8KK30KKworIyBmdW5jX2hlbHAKKyMgRWNobyBsb25nIGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCitmdW5jX2hlbHAgKCkKK3sKKyAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvIyBSZXBvcnQgYnVncyB0by8geworICAgICAgICBzL14jIC8vCisJcy9eIyAqJC8vCisJcypcJHByb2duYW1lKickcHJvZ25hbWUnKgorCXMqXCRob3N0KiciJGhvc3QiJyoKKwlzKlwkU0hFTEwqJyIkU0hFTEwiJyoKKwlzKlwkTFRDQyonIiRMVENDIicqCisJcypcJExUQ0ZMQUdTKiciJExUQ0ZMQUdTIicqCisJcypcJExEKiciJExEIicqCisJcy9cJHdpdGhfZ251X2xkLyciJHdpdGhfZ251X2xkIicvCisJcy9cJGF1dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFgIicvCisJcy9cJGF1dG9jb25mX3ZlcnNpb24vJyJgKGF1dG9jb25mIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFgIicvCisJcAorICAgICB9JyA8ICIkcHJvZ3BhdGgiCisgICAgZXhpdCAkPworfQorCisjIGZ1bmNfbWlzc2luZ19hcmcgYXJnbmFtZQorIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yIGFuZCBzZXQgZ2xvYmFsCisjIGV4aXRfY21kLgorZnVuY19taXNzaW5nX2FyZyAoKQoreworICAgIGZ1bmNfZXJyb3IgIm1pc3NpbmcgYXJndW1lbnQgZm9yICQxIgorICAgIGV4aXRfY21kPWV4aXQKK30KKworZXhpdF9jbWQ9OgorCisKKworCisKKyMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkRUNITy4KK2lmIHRlc3QgIlgkMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KKyAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisgIHNoaWZ0CitlbGlmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCisgICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKKyAgOgorZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCc7IHRoZW4KKyAgIyBZaXBwZWUsICRFQ0hPIHdvcmtzIQorICA6CitlbHNlCisgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbCwgYW5kIHRoZW4gbWF5YmUgJEVDSE8gd2lsbCB3b3JrLgorICBleGVjICRTSEVMTCAiJHByb2dwYXRoIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KK2ZpCisKK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCisgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCisgIHNoaWZ0CisgIGNhdCA8PEVPRgorJCoKK0VPRgorICBleGl0ICRFWElUX1NVQ0NFU1MKK2ZpCisKK21hZ2ljPSIlJSVNQUdJQyB2YXJpYWJsZSUlJSIKK21hZ2ljX2V4ZT0iJSUlTUFHSUMgRVhFIHZhcmlhYmxlJSUlIgorCisjIEdsb2JhbCB2YXJpYWJsZXMuCisjICRtb2RlIGlzIHVuc2V0Citub25vcHQ9CitleGVjdXRlX2RsZmlsZXM9CitwcmVzZXJ2ZV9hcmdzPQorbG8ybz0icy9cXC5sb1wkLy4ke29iamV4dH0vIgorbzJsbz0icy9cXC4ke29iamV4dH1cJC8ubG8vIgorZXh0cmFjdGVkX2FyY2hpdmVzPQorZXh0cmFjdGVkX3NlcmlhbD0wCisKK29wdF9kcnlfcnVuPWZhbHNlCitvcHRfZHVwbGljYXRlX2RlcHM9ZmFsc2UKK29wdF9zaWxlbnQ9ZmFsc2UKK29wdF9kZWJ1Zz06CisKKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAorIyB3aWxsIGJlIGV4ZWNlZCBhdCB0aGUgZW5kLiAgVGhpcyBwcmV2ZW50cyBoZXJlLWRvY3VtZW50cyBmcm9tIGJlaW5nCisjIGxlZnQgb3ZlciBieSBzaGVsbHMuCitleGVjX2NtZD0KKworIyBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gYXJnLi4uCisjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2VkIGJ5CisjIGEgY29uZmlndXJhdGlvbiBmYWlsdXJlIGhpbnQsIGFuZCBleGl0LgorZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICgpCit7CisgICAgZnVuY19lcnJvciAkezErIiRAIn0KKyAgICBmdW5jX2Vycm9yICJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorICAgIGZ1bmNfZmF0YWxfZXJyb3IgIkZhdGFsIGNvbmZpZ3VyYXRpb24gZXJyb3IuIgorfQorCisKKyMgZnVuY19jb25maWcKKyMgRGlzcGxheSB0aGUgY29uZmlndXJhdGlvbiBmb3IgYWxsIHRoZSB0YWdzIGluIHRoaXMgc2NyaXB0LgorZnVuY19jb25maWcgKCkKK3sKKyAgICByZV9iZWdpbmNmPSdeIyAjIyMgQkVHSU4gTElCVE9PTCcKKyAgICByZV9lbmRjZj0nXiMgIyMjIEVORCBMSUJUT09MJworCisgICAgIyBEZWZhdWx0IGNvbmZpZ3VyYXRpb24uCisgICAgJFNFRCAiMSwvJHJlX2JlZ2luY2YgQ09ORklHL2Q7LyRyZV9lbmRjZiBDT05GSUcvLFwkZCIgPCAiJHByb2dwYXRoIgorCisgICAgIyBOb3cgcHJpbnQgdGhlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgdGFncy4KKyAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KKyAgICAgICRTRUQgLW4gIi8kcmVfYmVnaW5jZiBUQUcgQ09ORklHOiAkdGFnbmFtZVwkLywvJHJlX2VuZGNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvcCIgPCAiJHByb2dwYXRoIgorICAgIGRvbmUKKworICAgIGV4aXQgJD8KK30KKworIyBmdW5jX2ZlYXR1cmVzCisjIERpc3BsYXkgdGhlIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KK2Z1bmNfZmVhdHVyZXMgKCkKK3sKKyAgICAkRUNITyAiaG9zdDogJGhvc3QiCisgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKyAgICAgICRFQ0hPICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKKyAgICBlbHNlCisgICAgICAkRUNITyAiZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIgorICAgIGZpCisgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorICAgICAgJEVDSE8gImVuYWJsZSBzdGF0aWMgbGlicmFyaWVzIgorICAgIGVsc2UKKyAgICAgICRFQ0hPICJkaXNhYmxlIHN0YXRpYyBsaWJyYXJpZXMiCisgICAgZmkKKworICAgIGV4aXQgJD8KK30KKworIyBmdW5jX2VuYWJsZV90YWcgdGFnbmFtZQorIyBWZXJpZnkgdGhhdCBUQUdOQU1FIGlzIHZhbGlkLCBhbmQgZWl0aGVyIGZsYWcgYW4gZXJyb3IgYW5kIGV4aXQsIG9yCisjIGVuYWJsZSB0aGUgVEFHTkFNRSB0YWcuICBXZSBhbHNvIGFkZCBUQUdOQU1FIHRvIHRoZSBnbG9iYWwgJHRhZ2xpc3QKKyMgdmFyaWFibGUgaGVyZS4KK2Z1bmNfZW5hYmxlX3RhZyAoKQoreworICAjIEdsb2JhbCB2YXJpYWJsZToKKyAgdGFnbmFtZT0iJDEiCisKKyAgcmVfYmVnaW5jZj0iXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWVcJCIKKyAgcmVfZW5kY2Y9Il4jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorICBzZWRfZXh0cmFjdGNmPSIvJHJlX2JlZ2luY2YvLC8kcmVfZW5kY2YvcCIKKworICAjIFZhbGlkYXRlIHRhZ25hbWUuCisgIGNhc2UgJHRhZ25hbWUgaW4KKyAgICAqWyEtX0EtWmEtejAtOSwvXSopCisgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIKKyAgICAgIDs7CisgIGVzYWMKKworICAjIERvbid0IHRlc3QgZm9yIHRoZSAiZGVmYXVsdCIgQyB0YWcsIGFzIHdlIGtub3cgaXQncworICAjIHRoZXJlIGJ1dCBub3Qgc3BlY2lhbGx5IG1hcmtlZC4KKyAgY2FzZSAkdGFnbmFtZSBpbgorICAgIENDKSA7OworICAgICopCisgICAgICBpZiAkR1JFUCAiJHJlX2JlZ2luY2YiICIkcHJvZ3BhdGgiID4vZGV2L251bGwgMj4mMTsgdGhlbgorCXRhZ2xpc3Q9IiR0YWdsaXN0ICR0YWduYW1lIgorCisJIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4gIEJlIGNhcmVmdWwgdG8gcXVvdGUgdGhlIHBhdGgKKwkjIGFuZCB0aGUgc2VkIHNjcmlwdCwgdG8gYXZvaWQgc3BsaXR0aW5nIG9uIHdoaXRlc3BhY2UsIGJ1dAorCSMgYWxzbyBkb24ndCB1c2Ugbm9uLXBvcnRhYmxlIHF1b3RlcyB3aXRoaW4gYmFja3F1b3RlcyB3aXRoaW4KKwkjIHF1b3RlcyB3ZSBoYXZlIHRvIGRvIGl0IGluIDIgc3RlcHM6CisJZXh0cmFjdGVkY2Y9YCRTRUQgLW4gLWUgIiRzZWRfZXh0cmFjdGNmIiA8ICIkcHJvZ3BhdGgiYAorCWV2YWwgIiRleHRyYWN0ZWRjZiIKKyAgICAgIGVsc2UKKwlmdW5jX2Vycm9yICJpZ25vcmluZyB1bmtub3duIHRhZyAkdGFnbmFtZSIKKyAgICAgIGZpCisgICAgICA7OworICBlc2FjCit9CisKKyMgUGFyc2Ugb3B0aW9ucyBvbmNlLCB0aG9yb3VnaGx5LiAgVGhpcyBjb21lcyBhcyBzb29uIGFzIHBvc3NpYmxlIGluCisjIHRoZSBzY3JpcHQgdG8gbWFrZSB0aGluZ3MgbGlrZSBgbGlidG9vbCAtLXZlcnNpb24nIGhhcHBlbiBxdWlja2x5LgoreworCisgICMgU2hvcnRoYW5kIGZvciAtLW1vZGU9Zm9vLCBvbmx5IHZhbGlkIGFzIHRoZSBmaXJzdCBhcmd1bWVudAorICBjYXNlICQxIGluCisgIGNsZWFufGNsZWF8Y2xlfGNsKQorICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNsZWFuICR7MSsiJEAifTsgc2hpZnQKKyAgICA7OworICBjb21waWxlfGNvbXBpbHxjb21waXxjb21wfGNvbXxjb3xjKQorICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNvbXBpbGUgJHsxKyIkQCJ9OyBzaGlmdAorICAgIDs7CisgIGV4ZWN1dGV8ZXhlY3V0fGV4ZWN1fGV4ZWN8ZXhlfGV4fGUpCisgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZXhlY3V0ZSAkezErIiRAIn07IHNoaWZ0CisgICAgOzsKKyAgZmluaXNofGZpbmlzfGZpbml8ZmlufGZpfGYpCisgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZmluaXNoICR7MSsiJEAifTsgc2hpZnQKKyAgICA7OworICBpbnN0YWxsfGluc3RhbHxpbnN0YXxpbnN0fGluc3xpbnxpKQorICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAorICAgIDs7CisgIGxpbmt8bGlufGxpfGwpCisgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgbGluayAkezErIiRAIn07IHNoaWZ0CisgICAgOzsKKyAgdW5pbnN0YWxsfHVuaW5zdGFsfHVuaW5zdGF8dW5pbnN0fHVuaW5zfHVuaW58dW5pfHVufHUpCisgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgdW5pbnN0YWxsICR7MSsiJEAifTsgc2hpZnQKKyAgICA7OworICBlc2FjCisKKyAgIyBQYXJzZSBub24tbW9kZSBzcGVjaWZpYyBhcmd1bWVudHM6CisgIHdoaWxlIHRlc3QgIiQjIiAtZ3QgMDsgZG8KKyAgICBvcHQ9IiQxIgorICAgIHNoaWZ0CisKKyAgICBjYXNlICRvcHQgaW4KKyAgICAgIC0tY29uZmlnKQkJZnVuY19jb25maWcJCQkJCTs7CisKKyAgICAgIC0tZGVidWcpCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgorCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgorCQkJb3B0X2RlYnVnPSdzZXQgLXgnCisJCQkkb3B0X2RlYnVnCisJCQk7OworCisgICAgICAtZGxvcGVuKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCisJCQlleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJDEiCisJCQlzaGlmdAorCQkJOzsKKworICAgICAgLS1kcnktcnVuIHwgLW4pCW9wdF9kcnlfcnVuPToJCQkJCTs7CisgICAgICAtLWZlYXR1cmVzKSAgICAgICBmdW5jX2ZlYXR1cmVzCQkJCQk7OworICAgICAgLS1maW5pc2gpCQltb2RlPSJmaW5pc2giCQkJCQk7OworCisgICAgICAtLW1vZGUpCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKKwkJCWNhc2UgJDEgaW4KKwkJCSAgIyBWYWxpZCBtb2RlIGFyZ3VtZW50czoKKwkJCSAgY2xlYW4pCTs7CisJCQkgIGNvbXBpbGUpCTs7CisJCQkgIGV4ZWN1dGUpCTs7CisJCQkgIGZpbmlzaCkJOzsKKwkJCSAgaW5zdGFsbCkJOzsKKwkJCSAgbGluaykJCTs7CisJCQkgIHJlbGluaykJOzsKKwkJCSAgdW5pbnN0YWxsKQk7OworCisJCQkgICMgQ2F0Y2ggYW55dGhpbmcgZWxzZSBhcyBhbiBlcnJvcgorCQkJICAqKSBmdW5jX2Vycm9yICJpbnZhbGlkIGFyZ3VtZW50IGZvciAkb3B0IgorCQkJICAgICBleGl0X2NtZD1leGl0CisJCQkgICAgIGJyZWFrCisJCQkgICAgIDs7CisJCSAgICAgICAgZXNhYworCisJCQltb2RlPSIkMSIKKwkJCXNoaWZ0CisJCQk7OworCisgICAgICAtLXByZXNlcnZlLWR1cC1kZXBzKQorCQkJb3B0X2R1cGxpY2F0ZV9kZXBzPToJCQkJOzsKKworICAgICAgLS1xdWlldHwtLXNpbGVudCkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKKwkJCW9wdF9zaWxlbnQ9OgorCQkJOzsKKworICAgICAgLS12ZXJib3NlfCAtdikJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKKwkJCW9wdF9zaWxlbnQ9ZmFsc2UKKwkJCTs7CisKKyAgICAgIC0tdGFnKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCisJCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0ICQxIgorCQkJZnVuY19lbmFibGVfdGFnICIkMSIJIyB0YWduYW1lIGlzIHNldCBoZXJlCisJCQlzaGlmdAorCQkJOzsKKworICAgICAgIyBTZXBhcmF0ZSBvcHRhcmdzIHRvIGxvbmcgb3B0aW9uczoKKyAgICAgIC1kbG9wZW49KnwtLW1vZGU9KnwtLXRhZz0qKQorCQkJZnVuY19vcHRfc3BsaXQgIiRvcHQiCisJCQlzZXQgZHVtbXkgIiRmdW5jX29wdF9zcGxpdF9vcHQiICIkZnVuY19vcHRfc3BsaXRfYXJnIiAkezErIiRAIn0KKwkJCXNoaWZ0CisJCQk7OworCisgICAgICAtXD98LWgpCQlmdW5jX3VzYWdlCQkJCQk7OworICAgICAgLS1oZWxwKQkJb3B0X2hlbHA9OgkJCQkJOzsKKyAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9uCQkJCQk7OworCisgICAgICAtKikJCWZ1bmNfZmF0YWxfaGVscCAidW5yZWNvZ25pemVkIG9wdGlvbiBcYCRvcHQnIgk7OworCisgICAgICAqKQkJbm9ub3B0PSIkb3B0IgorCQkJYnJlYWsKKwkJCTs7CisgICAgZXNhYworICBkb25lCisKKworICBjYXNlICRob3N0IGluCisgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKKyAgICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAkcG9zdGRlcHMgYW5kICRwcmVkZXBzCisgICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPToKKyAgICAgIDs7CisgICAgKikKKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9JG9wdF9kdXBsaWNhdGVfZGVwcworICAgICAgOzsKKyAgZXNhYworCisgICMgSGF2aW5nIHdhcm5lZCBhYm91dCBhbGwgbWlzLXNwZWNpZmllZCBvcHRpb25zLCBiYWlsIG91dCBpZgorICAjIGFueXRoaW5nIHdhcyB3cm9uZy4KKyAgJGV4aXRfY21kICRFWElUX0ZBSUxVUkUKK30KKworIyBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKKyMgRW5zdXJlIHRoYXQgd2UgYXJlIHVzaW5nIG00IG1hY3JvcywgYW5kIGxpYnRvb2wgc2NyaXB0IGZyb20gdGhlIHNhbWUKKyMgcmVsZWFzZSBvZiBsaWJ0b29sLgorZnVuY19jaGVja192ZXJzaW9uX21hdGNoICgpCit7CisgIGlmIHRlc3QgIiRwYWNrYWdlX3JldmlzaW9uIiAhPSAiJG1hY3JvX3JldmlzaW9uIjsgdGhlbgorICAgIGlmIHRlc3QgIiRWRVJTSU9OIiAhPSAiJG1hY3JvX3ZlcnNpb24iOyB0aGVuCisgICAgICBpZiB0ZXN0IC16ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKyAgICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKKyRwcm9nbmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJvci4gIFRoaXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04sIGJ1dCB0aGUKKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSBhbiBvbGRlciByZWxlYXNlLgorJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSAkUEFDS0FHRSAkVkVSU0lPTgorJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgorX0xUX0VPRgorICAgICAgZWxzZQorICAgICAgICBjYXQgPiYyIDw8X0xUX0VPRgorJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorJHByb2duYW1lOiBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tICRQQUNLQUdFICRtYWNyb192ZXJzaW9uLgorJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSAkUEFDS0FHRSAkVkVSU0lPTgorJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgorX0xUX0VPRgorICAgICAgZmkKKyAgICBlbHNlCisgICAgICBjYXQgPiYyIDw8X0xUX0VPRgorJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgcmV2aXNpb24gJHBhY2thZ2VfcmV2aXNpb24sCiskcHJvZ25hbWU6IGJ1dCB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSByZXZpc2lvbiAkbWFjcm9fcmV2aXNpb24uCiskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tIHJldmlzaW9uICRwYWNrYWdlX3JldmlzaW9uCiskcHJvZ25hbWU6IG9mICRQQUNLQUdFICRWRVJTSU9OIGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCitfTFRfRU9GCisgICAgZmkKKworICAgIGV4aXQgJEVYSVRfTUlTTUFUQ0gKKyAgZmkKK30KKworCisjIyAtLS0tLS0tLS0tLSAjIworIyMgICAgTWFpbi4gICAgIyMKKyMjIC0tLS0tLS0tLS0tICMjCisKKyRvcHRfaGVscCB8fCB7CisgICMgU2FuaXR5IGNoZWNrcyBmaXJzdDoKKyAgZnVuY19jaGVja192ZXJzaW9uX21hdGNoCisKKyAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgIT0geWVzOyB0aGVuCisgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkga2luZCBvZiBsaWJyYXJ5IgorICBmaQorCisgIHRlc3QgLXogIiRtb2RlIiAmJiBmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogeW91IG11c3Qgc3BlY2lmeSBhIE1PREUuIgorCisKKyAgIyBEYXJ3aW4gc3Vja3MKKyAgZXZhbCBzdGRfc2hyZXh0PVwiJHNocmV4dF9jbWRzXCIKKworCisgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0byBoYXZlIC1kbG9wZW4gZmxhZ3MuCisgIGlmIHRlc3QgLW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIHRlc3QgIiRtb2RlIiAhPSBleGVjdXRlOyB0aGVuCisgICAgZnVuY19lcnJvciAidW5yZWNvZ25pemVkIG9wdGlvbiBcYC1kbG9wZW4nIgorICAgICRFQ0hPICIkaGVscCIgMT4mMgorICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorICBmaQorCisgICMgQ2hhbmdlIHRoZSBoZWxwIG1lc3NhZ2UgdG8gYSBtb2RlLXNwZWNpZmljIG9uZS4KKyAgZ2VuZXJpY19oZWxwPSIkaGVscCIKKyAgaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9JG1vZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKK30KKworCisjIGZ1bmNfbGFsaWJfcCBmaWxlCisjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIGAubGEnIGxpYnJhcnkgb3IgYC5sbycgb2JqZWN0IGZpbGUuCisjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisjIGRldGVybWluZWQgaW1wb3N0ZXJzLgorZnVuY19sYWxpYl9wICgpCit7CisgICAgdGVzdCAtZiAiJDEiICYmCisgICAgICAkU0VEIC1lIDRxICIkMSIgMj4vZGV2L251bGwgXAorICAgICAgICB8ICRHUkVQICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIgPiAvZGV2L251bGwgMj4mMQorfQorCisjIGZ1bmNfbGFsaWJfdW5zYWZlX3AgZmlsZQorIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCBgLmxhJyBsaWJyYXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgorIyBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIHNhbWUgY2hlY2sgYXMgZnVuY19sYWxpYl9wIHdpdGhvdXQKKyMgcmVzb3J0aW5nIHRvIGV4dGVybmFsIHByb2dyYW1zLiAgVG8gdGhpcyBlbmQsIGl0IHJlZGlyZWN0cyBzdGRpbiBhbmQKKyMgY2xvc2VzIGl0IGFmdGVyd2FyZHMsIHdpdGhvdXQgc2F2aW5nIHRoZSBvcmlnaW5hbCBmaWxlIGRlc2NyaXB0b3IuCisjIEFzIGEgc2FmZXR5IG1lYXN1cmUsIHVzZSBpdCBvbmx5IHdoZXJlIGEgbmVnYXRpdmUgcmVzdWx0IHdvdWxkIGJlCisjIGZhdGFsIGFueXdheS4gIFdvcmtzIGlmIGBmaWxlJyBkb2VzIG5vdCBleGlzdC4KK2Z1bmNfbGFsaWJfdW5zYWZlX3AgKCkKK3sKKyAgICBsYWxpYl9wPW5vCisgICAgaWYgdGVzdCAtZiAiJDEiICYmIHRlc3QgLXIgIiQxIiAmJiBleGVjIDU8JjAgPCIkMSI7IHRoZW4KKwlmb3IgbGFsaWJfcF9sIGluIDEgMiAzIDQKKwlkbworCSAgICByZWFkIGxhbGliX3BfbGluZQorCSAgICBjYXNlICIkbGFsaWJfcF9saW5lIiBpbgorCQlcI1wgR2VuZXJhdGVkXCBieVwgKiRQQUNLQUdFKiApIGxhbGliX3A9eWVzOyBicmVhazs7CisJICAgIGVzYWMKKwlkb25lCisJZXhlYyAwPCY1IDU8Ji0KKyAgICBmaQorICAgIHRlc3QgIiRsYWxpYl9wIiA9IHllcworfQorCisjIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wIGZpbGUKKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQKKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCitmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAoKQoreworICAgIGZ1bmNfbGFsaWJfcCAiJDEiCit9CisKKyMgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wIGZpbGUKKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBleGVjdXRhYmxlCisjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisjIGRldGVybWluZWQgaW1wb3N0ZXJzLgorZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICgpCit7CisgICAgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXg9CisgICAgY2FzZSAkMSBpbgorICAgICouZXhlKSA7OworICAgICopIGZ1bmNfbHR3cmFwcGVyX2V4ZWNfc3VmZml4PS5leGUgOzsKKyAgICBlc2FjCisgICAgJEdSRVAgIiRtYWdpY19leGUiICIkMSRmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeCIgPi9kZXYvbnVsbCAyPiYxCit9CisKKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSBmaWxlCisjIEFzc3VtZXMgZmlsZSBpcyBhbiBsdHdyYXBwZXJfZXhlY3V0YWJsZQorIyB1c2VzICRmaWxlIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgZmlsZW5hbWUgZm9yIGEKKyMgdGVtcG9yYXJ5IGx0d3JhcHBlcl9zY3JpcHQuCitmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICgpCit7CisgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiIKKyAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIjsgdGhlbgorCWZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIKKwlmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwlmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQvJG9iamRpci8ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdH1fbHRzaHdyYXBwZXIiCisgICAgZmkKK30KKworIyBmdW5jX2x0d3JhcHBlcl9wIGZpbGUKKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb3Igd3JhcHBlciBleGVjdXRhYmxlCisjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisjIGRldGVybWluZWQgaW1wb3N0ZXJzLgorZnVuY19sdHdyYXBwZXJfcCAoKQoreworICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkMSIgfHwgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkMSIKK30KKworCisjIGZ1bmNfZXhlY3V0ZV9jbWRzIGNvbW1hbmRzIGZhaWxfY21kCisjIEV4ZWN1dGUgdGlsZGUtZGVsaW1pdGVkIENPTU1BTkRTLgorIyBJZiBGQUlMX0NNRCBpcyBnaXZlbiwgZXZhbCB0aGF0IHVwb24gZmFpbHVyZS4KKyMgRkFJTF9DTUQgbWF5IHJlYWQtYWNjZXNzIHRoZSBjdXJyZW50IGNvbW1hbmQgaW4gdmFyaWFibGUgQ01EIQorZnVuY19leGVjdXRlX2NtZHMgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgc2F2ZV9pZnM9JElGUzsgSUZTPSd+JworICAgIGZvciBjbWQgaW4gJDE7IGRvCisgICAgICBJRlM9JHNhdmVfaWZzCisgICAgICBldmFsIGNtZD1cIiRjbWRcIgorICAgICAgZnVuY19zaG93X2V2YWwgIiRjbWQiICIkezItOn0iCisgICAgZG9uZQorICAgIElGUz0kc2F2ZV9pZnMKK30KKworCisjIGZ1bmNfc291cmNlIGZpbGUKKyMgU291cmNlIEZJTEUsIGFkZGluZyBkaXJlY3RvcnkgY29tcG9uZW50IGlmIG5lY2Vzc2FyeS4KKyMgTm90ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRvIGFwcGVuZCBhIGRvdCB0bworIyBGSUxFIGV2ZW4gaWYgYm90aCBGSUxFIGFuZCBGSUxFLmV4ZSBleGlzdDogYXV0b21hdGljLWFwcGVuZC0uZXhlCisjIGJlaGF2aW9yIGhhcHBlbnMgb25seSBmb3IgZXhlYygzKSwgbm90IGZvciBvcGVuKDIpISAgQWxzbywgc291cmNpbmcKKyMgYEZJTEUuJyBkb2VzIG5vdCB3b3JrIG9uIGN5Z3dpbiBtYW5hZ2VkIG1vdW50cy4KK2Z1bmNfc291cmNlICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgIGNhc2UgJDEgaW4KKyAgICAqLyogfCAqXFwqKQkuICIkMSIgOzsKKyAgICAqKQkJLiAiLi8kMSIgOzsKKyAgICBlc2FjCit9CisKKworIyBmdW5jX2luZmVyX3RhZyBhcmcKKyMgSW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGlmIGFueSBhcmUgYXZhaWxhYmxlIGFuZAorIyBpZiBvbmUgd2Fzbid0IGNob3NlbiB2aWEgdGhlICItLXRhZyIgY29tbWFuZCBsaW5lIG9wdGlvbi4KKyMgT25seSBhdHRlbXB0IHRoaXMgaWYgdGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUKKyMgY29tbWFuZCBkb2Vzbid0IG1hdGNoIHRoZSBkZWZhdWx0IGNvbXBpbGVyLgorIyBhcmcgaXMgdXN1YWxseSBvZiB0aGUgZm9ybSAnZ2NjIC4uLicKK2Z1bmNfaW5mZXJfdGFnICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgIGlmIHRlc3QgLW4gIiRhdmFpbGFibGVfdGFncyIgJiYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCisgICAgICBDQ19xdW90ZWQ9CisgICAgICBmb3IgYXJnIGluICRDQzsgZG8KKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKwlDQ19xdW90ZWQ9IiRDQ19xdW90ZWQgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgICAgZG9uZQorICAgICAgY2FzZSAkQCBpbgorICAgICAgIyBCbGFua3MgaW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKKyAgICAgICMgYnV0IG5vdCBmcm9tIHRoZSBDQyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3VyZSB3YXMgcnVuLgorICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiBgJEVDSE8gJENDYCAiKiB8ICJgJEVDSE8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiIGAkRUNITyAkQ0NfcXVvdGVkYCAiKiB8ICJgJEVDSE8gJENDX3F1b3RlZGAgIiopIDs7CisgICAgICAjIEJsYW5rcyBhdCB0aGUgc3RhcnQgb2YgJGJhc2VfY29tcGlsZSB3aWxsIGNhdXNlIHRoaXMgdG8gZmFpbAorICAgICAgIyBpZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhlbSBhcyB3ZWxsLgorICAgICAgKikKKwlmb3IgeiBpbiAkYXZhaWxhYmxlX3RhZ3M7IGRvCisJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCisJICAgICMgRXZhbHVhdGUgdGhlIGNvbmZpZ3VyYXRpb24uCisJICAgIGV2YWwgImAke1NFRH0gLW4gLWUgJy9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAnJHonJC8sL14jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAnJHonJC9wJyA8ICRwcm9ncGF0aGAiCisJICAgIENDX3F1b3RlZD0KKwkgICAgZm9yIGFyZyBpbiAkQ0M7IGRvCisJICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgorCSAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisJICAgICAgQ0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgICAgZG9uZQorCSAgICBjYXNlICIkQCAiIGluCisJICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiBgJEVDSE8gJENDYCAiKiB8ICJgJEVDSE8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiIGAkRUNITyAkQ0NfcXVvdGVkYCAiKiB8ICJgJEVDSE8gJENDX3F1b3RlZGAgIiopCisJICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMKKwkgICAgICAjIHRoZSBvbmUgaW4gdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uLgorCSAgICAgICMgQXNzdW1lIHRoaXMgaXMgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uIHdlIHdhbnQuCisJICAgICAgdGFnbmFtZT0kegorCSAgICAgIGJyZWFrCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgZmkKKwlkb25lCisJIyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4gbm8gdGFnZ2VkIGNvbmZpZ3VyYXRpb24KKwkjIHdhcyBmb3VuZCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgdGhhdCB0aGUgIi0tdGFnIiBjb21tYW5kCisJIyBsaW5lIG9wdGlvbiBtdXN0IGJlIHVzZWQuCisJaWYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCisJICBmdW5jX2VjaG8gInVuYWJsZSB0byBpbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiIKKwkgIGZ1bmNfZmF0YWxfZXJyb3IgInNwZWNpZnkgYSB0YWcgd2l0aCBcYC0tdGFnJyIKKyMJZWxzZQorIwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgJHRhZ25hbWUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCisJZmkKKwk7OworICAgICAgZXNhYworICAgIGZpCit9CisKKworCisjIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qgb3V0cHV0X25hbWUgcGljX25hbWUgbm9ucGljX25hbWUKKyMgQ3JlYXRlIGEgbGlidG9vbCBvYmplY3QgZmlsZSAoYW5hbG9nb3VzIHRvIGEgIi5sYSIgZmlsZSksCisjIGJ1dCBkb24ndCBjcmVhdGUgaXQgaWYgd2UncmUgZG9pbmcgYSBkcnkgcnVuLgorZnVuY193cml0ZV9saWJ0b29sX29iamVjdCAoKQoreworICAgIHdyaXRlX2xpYm9iaj0kezF9CisgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKyAgICAgIHdyaXRlX2xvYmo9XCckezJ9XCcKKyAgICBlbHNlCisgICAgICB3cml0ZV9sb2JqPW5vbmUKKyAgICBmaQorCisgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorICAgICAgd3JpdGVfb2xkb2JqPVwnJHszfVwnCisgICAgZWxzZQorICAgICAgd3JpdGVfb2xkb2JqPW5vbmUKKyAgICBmaQorCisgICAgJG9wdF9kcnlfcnVuIHx8IHsKKyAgICAgIGNhdCA+JHt3cml0ZV9saWJvYmp9VCA8PEVPRgorIyAkd3JpdGVfbGlib2JqIC0gYSBsaWJ0b29sIG9iamVjdCBmaWxlCisjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKyMKKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQorIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisKKyMgTmFtZSBvZiB0aGUgUElDIG9iamVjdC4KK3BpY19vYmplY3Q9JHdyaXRlX2xvYmoKKworIyBOYW1lIG9mIHRoZSBub24tUElDIG9iamVjdAorbm9uX3BpY19vYmplY3Q9JHdyaXRlX29sZG9iagorCitFT0YKKyAgICAgICRNViAiJHt3cml0ZV9saWJvYmp9VCIgIiR7d3JpdGVfbGlib2JqfSIKKyAgICB9Cit9CisKKyMgZnVuY19tb2RlX2NvbXBpbGUgYXJnLi4uCitmdW5jX21vZGVfY29tcGlsZSAoKQoreworICAgICRvcHRfZGVidWcKKyAgICAjIEdldCB0aGUgY29tcGlsYXRpb24gY29tbWFuZCBhbmQgdGhlIHNvdXJjZSBmaWxlLgorICAgIGJhc2VfY29tcGlsZT0KKyAgICBzcmNmaWxlPSIkbm9ub3B0IiAgIyAgYWx3YXlzIGtlZXAgYSBub24tZW1wdHkgdmFsdWUgaW4gInNyY2ZpbGUiCisgICAgc3VwcHJlc3Nfb3B0PXllcworICAgIHN1cHByZXNzX291dHB1dD0KKyAgICBhcmdfbW9kZT1ub3JtYWwKKyAgICBsaWJvYmo9CisgICAgbGF0ZXI9CisgICAgcGllX2ZsYWc9CisKKyAgICBmb3IgYXJnCisgICAgZG8KKyAgICAgIGNhc2UgJGFyZ19tb2RlIGluCisgICAgICBhcmcgICkKKwkjIGRvIG5vdCAiY29udGludWUiLiAgSW5zdGVhZCwgYWRkIHRoaXMgdG8gYmFzZV9jb21waWxlCisJbGFzdGFyZz0iJGFyZyIKKwlhcmdfbW9kZT1ub3JtYWwKKwk7OworCisgICAgICB0YXJnZXQgKQorCWxpYm9iaj0iJGFyZyIKKwlhcmdfbW9kZT1ub3JtYWwKKwljb250aW51ZQorCTs7CisKKyAgICAgIG5vcm1hbCApCisJIyBBY2NlcHQgYW55IGNvbW1hbmQtbGluZSBvcHRpb25zLgorCWNhc2UgJGFyZyBpbgorCS1vKQorCSAgdGVzdCAtbiAiJGxpYm9iaiIgJiYgXAorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJ5b3UgY2Fubm90IHNwZWNpZnkgXGAtbycgbW9yZSB0aGFuIG9uY2UiCisJICBhcmdfbW9kZT10YXJnZXQKKwkgIGNvbnRpbnVlCisJICA7OworCisJLXBpZSB8IC1mcGllIHwgLWZQSUUpCisgICAgICAgICAgcGllX2ZsYWc9IiRwaWVfZmxhZyAkYXJnIgorCSAgY29udGludWUKKwkgIDs7CisKKwktc2hhcmVkIHwgLXN0YXRpYyB8IC1wcmVmZXItcGljIHwgLXByZWZlci1ub24tcGljKQorCSAgbGF0ZXI9IiRsYXRlciAkYXJnIgorCSAgY29udGludWUKKwkgIDs7CisKKwktbm8tc3VwcHJlc3MpCisJICBzdXBwcmVzc19vcHQ9bm8KKwkgIGNvbnRpbnVlCisJICA7OworCisJLVhjb21waWxlcikKKwkgIGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25lIGdvZXMgaW50byB0aGUgImJhc2VfY29tcGlsZSIgYXJnIGxpc3QKKwkgIGNvbnRpbnVlICAgICAgIyAgVGhlIGN1cnJlbnQgInNyY2ZpbGUiIHdpbGwgZWl0aGVyIGJlIHJldGFpbmVkIG9yCisJICA7OyAgICAgICAgICAgICMgIHJlcGxhY2VkIGxhdGVyLiAgSSB3b3VsZCBndWVzcyB0aGF0IHdvdWxkIGJlIGEgYnVnLgorCisJLVdjLCopCisJICBmdW5jX3N0cmlwbmFtZSAnLVdjLCcgJycgIiRhcmciCisJICBhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgIGxhc3Rhcmc9CisJICBzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKwkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCisJICAgIElGUz0iJHNhdmVfaWZzIgorCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorCSAgICBsYXN0YXJnPSIkbGFzdGFyZyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJICBkb25lCisJICBJRlM9IiRzYXZlX2lmcyIKKwkgIGZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGxhc3RhcmciCisJICBsYXN0YXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKworCSAgIyBBZGQgdGhlIGFyZ3VtZW50cyB0byBiYXNlX2NvbXBpbGUuCisJICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGxhc3RhcmciCisJICBjb250aW51ZQorCSAgOzsKKworCSopCisJICAjIEFjY2VwdCB0aGUgY3VycmVudCBhcmd1bWVudCBhcyB0aGUgc291cmNlIGZpbGUuCisJICAjIFRoZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4KKwkgICMKKwkgIGxhc3Rhcmc9IiRzcmNmaWxlIgorCSAgc3JjZmlsZT0iJGFyZyIKKwkgIDs7CisJZXNhYyAgIyAgY2FzZSAkYXJnCisJOzsKKyAgICAgIGVzYWMgICAgIyAgY2FzZSAkYXJnX21vZGUKKworICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVudC4KKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRsYXN0YXJnIgorICAgICAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKyAgICBkb25lICMgZm9yIGFyZworCisgICAgY2FzZSAkYXJnX21vZGUgaW4KKyAgICBhcmcpCisgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIGFyZ3VtZW50IGZvciAtWGNvbXBpbGUiCisgICAgICA7OworICAgIHRhcmdldCkKKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBtdXN0IHNwZWNpZnkgYSB0YXJnZXQgd2l0aCBcYC1vJyIKKyAgICAgIDs7CisgICAgKikKKyAgICAgICMgR2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IG9iamVjdC4KKyAgICAgIHRlc3QgLXogIiRsaWJvYmoiICYmIHsKKwlmdW5jX2Jhc2VuYW1lICIkc3JjZmlsZSIKKwlsaWJvYmo9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKyAgICAgIH0KKyAgICAgIDs7CisgICAgZXNhYworCisgICAgIyBSZWNvZ25pemUgc2V2ZXJhbCBkaWZmZXJlbnQgZmlsZSBzdWZmaXhlcy4KKyAgICAjIElmIHRoZSB1c2VyIHNwZWNpZmllcyAtbyBmaWxlLm8sIGl0IGlzIHJlcGxhY2VkIHdpdGggZmlsZS5sbworICAgIGNhc2UgJGxpYm9iaiBpbgorICAgICouW2NDRlNpZm1zb10gfCBcCisgICAgKi5hZGEgfCAqLmFkYiB8ICouYWRzIHwgKi5hc20gfCBcCisgICAgKi5jKysgfCAqLmNjIHwgKi5paSB8ICouY2xhc3MgfCAqLmNwcCB8ICouY3h4IHwgXAorICAgICouW2ZGXVswOV0/IHwgKi5mb3IgfCAqLmphdmEgfCAqLm9iaiB8ICouc3gpCisgICAgICBmdW5jX3hmb3JtICIkbGlib2JqIgorICAgICAgbGlib2JqPSRmdW5jX3hmb3JtX3Jlc3VsdAorICAgICAgOzsKKyAgICBlc2FjCisKKyAgICBjYXNlICRsaWJvYmogaW4KKyAgICAqLmxvKSBmdW5jX2xvMm8gIiRsaWJvYmoiOyBvYmo9JGZ1bmNfbG8yb19yZXN1bHQgOzsKKyAgICAqKQorICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkgb2JqZWN0IGZyb20gXGAkbGlib2JqJyIKKyAgICAgIDs7CisgICAgZXNhYworCisgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQorCisgICAgZm9yIGFyZyBpbiAkbGF0ZXI7IGRvCisgICAgICBjYXNlICRhcmcgaW4KKyAgICAgIC1zaGFyZWQpCisJdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5IgorCWJ1aWxkX29sZF9saWJzPW5vCisJY29udGludWUKKwk7OworCisgICAgICAtc3RhdGljKQorCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworCWJ1aWxkX29sZF9saWJzPXllcworCWNvbnRpbnVlCisJOzsKKworICAgICAgLXByZWZlci1waWMpCisJcGljX21vZGU9eWVzCisJY29udGludWUKKwk7OworCisgICAgICAtcHJlZmVyLW5vbi1waWMpCisJcGljX21vZGU9bm8KKwljb250aW51ZQorCTs7CisgICAgICBlc2FjCisgICAgZG9uZQorCisgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGxpYm9iaiIKKyAgICB0ZXN0ICJYJGxpYm9iaiIgIT0gIlgkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiIFwKKyAgICAgICYmICRFQ0hPICJYJGxpYm9iaiIgfCAkR1JFUCAnW11+I14qe307PD4/IiciJyInCSAmKCl8YCRbXScgXAorICAgICAgJiYgZnVuY193YXJuaW5nICJsaWJvYmogbmFtZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgorICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRvYmoiICIvIiAiIgorICAgIG9iam5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKyAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKyAgICBsb2JqPSR7eGRpcn0kb2JqZGlyLyRvYmpuYW1lCisKKyAgICB0ZXN0IC16ICIkYmFzZV9jb21waWxlIiAmJiBcCisgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBjb21waWxhdGlvbiBjb21tYW5kIgorCisgICAgIyBEZWxldGUgYW55IGxlZnRvdmVyIGxpYnJhcnkgb2JqZWN0cy4KKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisgICAgICByZW1vdmVsaXN0PSIkb2JqICRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKKyAgICBlbHNlCisgICAgICByZW1vdmVsaXN0PSIkbG9iaiAkbGlib2JqICR7bGlib2JqfVQiCisgICAgZmkKKworICAgICMgT24gQ3lnd2luIHRoZXJlJ3Mgbm8gInJlYWwiIFBJQyBmbGFnIHNvIHdlIG11c3QgYnVpbGQgYm90aCBvYmplY3QgdHlwZXMKKyAgICBjYXNlICRob3N0X29zIGluCisgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKyAgICAgIHBpY19tb2RlPWRlZmF1bHQKKyAgICAgIDs7CisgICAgZXNhYworICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgPSBubyAmJiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCisgICAgICAjIG5vbi1QSUMgY29kZSBpbiBzaGFyZWQgbGlicmFyaWVzIGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgIHBpY19tb2RlPWRlZmF1bHQKKyAgICBmaQorCisgICAgIyBDYWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKKyAgICAjIG5vdCBzdXBwb3J0IC1vIHdpdGggLWMKKyAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IG5vOyB0aGVuCisgICAgICBvdXRwdXRfb2JqPWAkRUNITyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQorICAgICAgbG9ja2ZpbGU9IiRvdXRwdXRfb2JqLmxvY2siCisgICAgZWxzZQorICAgICAgb3V0cHV0X29iaj0KKyAgICAgIG5lZWRfbG9ja3M9bm8KKyAgICAgIGxvY2tmaWxlPQorICAgIGZpCisKKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRlZAorICAgICMgV2UgdXNlIHRoaXMgc2NyaXB0IGZpbGUgdG8gbWFrZSB0aGUgbGluaywgaXQgYXZvaWRzIGNyZWF0aW5nIGEgbmV3IGZpbGUKKyAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB5ZXM7IHRoZW4KKyAgICAgIHVudGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxvY2tmaWxlIiAyPi9kZXYvbnVsbDsgZG8KKwlmdW5jX2VjaG8gIldhaXRpbmcgZm9yICRsb2NrZmlsZSB0byBiZSByZW1vdmVkIgorCXNsZWVwIDIKKyAgICAgIGRvbmUKKyAgICBlbGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm47IHRoZW4KKyAgICAgIGlmIHRlc3QgLWYgIiRsb2NrZmlsZSI7IHRoZW4KKwkkRUNITyAiXAorKioqIEVSUk9SLCAkbG9ja2ZpbGUgZXhpc3RzIGFuZCBjb250YWluczoKK2BjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAorCitUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCit0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCit5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CityZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCithdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgorY29tcGlsZXIuIgorCisJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAorCWV4aXQgJEVYSVRfRkFJTFVSRQorICAgICAgZmkKKyAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRvdXRwdXRfb2JqIgorICAgICAgJEVDSE8gIiRzcmNmaWxlIiA+ICIkbG9ja2ZpbGUiCisgICAgZmkKKworICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKyAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkbG9ja2ZpbGUiCisgICAgdHJhcCAnJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJyAxIDIgMTUKKworICAgIGlmIHRlc3QgLW4gIiRmaXhfc3JjZmlsZV9wYXRoIjsgdGhlbgorICAgICAgZXZhbCBzcmNmaWxlPVwiJGZpeF9zcmNmaWxlX3BhdGhcIgorICAgIGZpCisgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHNyY2ZpbGUiCisgICAgcXNyY2ZpbGU9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0CisKKyAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBidWlsZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorICAgICAgIyBXaXRob3V0IHRoaXMgYXNzaWdubWVudCwgYmFzZV9jb21waWxlIGdldHMgZW1wdGllZC4KKyAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJhc2VfY29tcGlsZQorCisgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IG5vOyB0aGVuCisJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgorICAgICAgZWxzZQorCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUKKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSIKKyAgICAgIGZpCisKKyAgICAgIGZ1bmNfbWtkaXJfcCAiJHhkaXIkb2JqZGlyIgorCisgICAgICBpZiB0ZXN0IC16ICIkb3V0cHV0X29iaiI7IHRoZW4KKwkjIFBsYWNlIFBJQyBvYmplY3RzIGluICRvYmpkaXIKKwljb21tYW5kPSIkY29tbWFuZCAtbyAkbG9iaiIKKyAgICAgIGZpCisKKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQiCVwKKyAgICAgICAgICAndGVzdCAtbiAiJG91dHB1dF9vYmoiICYmICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJworCisgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCisJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUiOyB0aGVuCisJJEVDSE8gIlwKKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgorYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisKK2J1dCBpdCBzaG91bGQgY29udGFpbjoKKyRzcmNmaWxlCisKK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCitjb21waWxlci4iCisKKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CisJZXhpdCAkRVhJVF9GQUlMVVJFCisgICAgICBmaQorCisgICAgICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZCwgdGhlbiBnbyBvbiB0byBjb21waWxlIHRoZSBuZXh0IG9uZQorICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkbG9iaiI7IHRoZW4KKwlmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0cHV0X29iaiIgIiRsb2JqIicgXAorCSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRlcnJvcicKKyAgICAgIGZpCisKKyAgICAgICMgQWxsb3cgZXJyb3IgbWVzc2FnZXMgb25seSBmcm9tIHRoZSBmaXJzdCBjb21waWxhdGlvbi4KKyAgICAgIGlmIHRlc3QgIiRzdXBwcmVzc19vcHQiID0geWVzOyB0aGVuCisJc3VwcHJlc3Nfb3V0cHV0PScgPi9kZXYvbnVsbCAyPiYxJworICAgICAgZmkKKyAgICBmaQorCisgICAgIyBPbmx5IGJ1aWxkIGEgcG9zaXRpb24tZGVwZW5kZW50IG9iamVjdCBpZiB3ZSBidWlsZCBvbGQgbGlicmFyaWVzLgorICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0geWVzOyB0aGVuCisJIyBEb24ndCBidWlsZCBQSUMgY29kZQorCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlJHBpZV9mbGFnIgorICAgICAgZWxzZQorCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IHllczsgdGhlbgorCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRvYmoiCisgICAgICBmaQorCisgICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBpZiB3ZSBhbHJlYWR5IGRpZCBhIFBJQyBjb21waWxhdGlvbi4KKyAgICAgIGNvbW1hbmQ9IiRjb21tYW5kJHN1cHByZXNzX291dHB1dCIKKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQiIFwKKyAgICAgICAgJyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScKKworICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgorCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSAiWCRzcmNmaWxlIjsgdGhlbgorCSRFQ0hPICJcCisqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoKK2BjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAorCitidXQgaXQgc2hvdWxkIGNvbnRhaW46Ciskc3JjZmlsZQorCitUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCit0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCit5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CityZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCithdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgorY29tcGlsZXIuIgorCisJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAorCWV4aXQgJEVYSVRfRkFJTFVSRQorICAgICAgZmkKKworICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQKKyAgICAgIGlmIHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJG9iaiI7IHRoZW4KKwlmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0cHV0X29iaiIgIiRvYmoiJyBcCisJICAnZXJyb3I9JD87ICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVycm9yJworICAgICAgZmkKKyAgICBmaQorCisgICAgJG9wdF9kcnlfcnVuIHx8IHsKKyAgICAgIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3QgIiRsaWJvYmoiICIkb2JqZGlyLyRvYmpuYW1lIiAiJG9iam5hbWUiCisKKyAgICAgICMgVW5sb2NrIHRoZSBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IHdhcyBsb2NrZWQKKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorCXJlbW92ZWxpc3Q9JGxvY2tmaWxlCisgICAgICAgICRSTSAiJGxvY2tmaWxlIgorICAgICAgZmkKKyAgICB9CisKKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKK30KKworJG9wdF9oZWxwIHx8IHsKK3Rlc3QgIiRtb2RlIiA9IGNvbXBpbGUgJiYgZnVuY19tb2RlX2NvbXBpbGUgJHsxKyIkQCJ9Cit9CisKK2Z1bmNfbW9kZV9oZWxwICgpCit7CisgICAgIyBXZSBuZWVkIHRvIGRpc3BsYXkgaGVscCBmb3IgZWFjaCBvZiB0aGUgbW9kZXMuCisgICAgY2FzZSAkbW9kZSBpbgorICAgICAgIiIpCisgICAgICAgICMgR2VuZXJpYyBoZWxwIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2FnZSBjb21tZW50cworICAgICAgICAjIGF0IHRoZSBzdGFydCBvZiB0aGlzIGZpbGUuCisgICAgICAgIGZ1bmNfaGVscAorICAgICAgICA7OworCisgICAgICBjbGVhbikKKyAgICAgICAgJEVDSE8gXAorIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1PUFRJT05dLi4uIEZJTEUuLi4KKworUmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKworUk0gaXMgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxFCisodHlwaWNhbGx5IFxgL2Jpbi9ybScpLiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1mJykgdG8gYmUgcGFzc2VkCit0byBSTS4KKworSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFyeSwgb2JqZWN0IG9yIHByb2dyYW0sIGFsbCB0aGUgZmlsZXMgYXNzb2NpYXRlZAord2l0aCBpdCBhcmUgZGVsZXRlZC4gT3RoZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgorICAgICAgICA7OworCisgICAgICBjb21waWxlKQorICAgICAgJEVDSE8gXAorIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNvbXBpbGUgQ09NUElMRS1DT01NQU5ELi4uIFNPVVJDRUZJTEUKKworQ29tcGlsZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIGxpYnJhcnkgb2JqZWN0LgorCitUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKKworICAtbyBPVVRQVVQtRklMRSAgICBzZXQgdGhlIG91dHB1dCBmaWxlIG5hbWUgdG8gT1VUUFVULUZJTEUKKyAgLW5vLXN1cHByZXNzICAgICAgZG8gbm90IHN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBmb3IgbXVsdGlwbGUgcGFzc2VzCisgIC1wcmVmZXItcGljICAgICAgIHRyeSB0byBidWlsZGluZyBQSUMgb2JqZWN0cyBvbmx5CisgIC1wcmVmZXItbm9uLXBpYyAgIHRyeSB0byBidWlsZGluZyBub24tUElDIG9iamVjdHMgb25seQorICAtc2hhcmVkICAgICAgICAgICBkbyBub3QgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZworICAtc3RhdGljICAgICAgICAgICBvbmx5IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtpbmcKKworQ09NUElMRS1DT01NQU5EIGlzIGEgY29tbWFuZCB0byBiZSB1c2VkIGluIGNyZWF0aW5nIGEgXGBzdGFuZGFyZCcgb2JqZWN0IGZpbGUKK2Zyb20gdGhlIGdpdmVuIFNPVVJDRUZJTEUuCisKK1RoZSBvdXRwdXQgZmlsZSBuYW1lIGlzIGRldGVybWluZWQgYnkgcmVtb3ZpbmcgdGhlIGRpcmVjdG9yeSBjb21wb25lbnQgZnJvbQorU09VUkNFRklMRSwgdGhlbiBzdWJzdGl0dXRpbmcgdGhlIEMgc291cmNlIGNvZGUgc3VmZml4IFxgLmMnIHdpdGggdGhlCitsaWJyYXJ5IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCisgICAgICAgIDs7CisKKyAgICAgIGV4ZWN1dGUpCisgICAgICAgICRFQ0hPIFwKKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1leGVjdXRlIENPTU1BTkQgW0FSR1NdLi4uCisKK0F1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtLgorCitUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKKworICAtZGxvcGVuIEZJTEUgICAgICBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIEZJTEUgdG8gdGhlIGxpYnJhcnkgcGF0aAorCitUaGlzIG1vZGUgc2V0cyB0aGUgbGlicmFyeSBwYXRoIGVudmlyb25tZW50IHZhcmlhYmxlIGFjY29yZGluZyB0byBcYC1kbG9wZW4nCitmbGFncy4KKworSWYgYW55IG9mIHRoZSBBUkdTIGFyZSBsaWJ0b29sIGV4ZWN1dGFibGUgd3JhcHBlcnMsIHRoZW4gdGhleSBhcmUgdHJhbnNsYXRlZAoraW50byB0aGVpciBjb3JyZXNwb25kaW5nIHVuaW5zdGFsbGVkIGJpbmFyeSwgYW5kIGFueSBvZiB0aGVpciByZXF1aXJlZCBsaWJyYXJ5CitkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4KKworVGhlbiwgQ09NTUFORCBpcyBleGVjdXRlZCwgd2l0aCBBUkdTIGFzIGFyZ3VtZW50cy4iCisgICAgICAgIDs7CisKKyAgICAgIGZpbmlzaCkKKyAgICAgICAgJEVDSE8gXAorIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWZpbmlzaCBbTElCRElSXS4uLgorCitDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzLgorCitFYWNoIExJQkRJUiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGxpYnRvb2wgbGlicmFyaWVzLgorCitUaGUgY29tbWFuZHMgdGhhdCB0aGlzIG1vZGUgZXhlY3V0ZXMgbWF5IHJlcXVpcmUgc3VwZXJ1c2VyIHByaXZpbGVnZXMuICBVc2UKK3RoZSBcYC0tZHJ5LXJ1bicgb3B0aW9uIGlmIHlvdSBqdXN0IHdhbnQgdG8gc2VlIHdoYXQgd291bGQgYmUgZXhlY3V0ZWQuIgorICAgICAgICA7OworCisgICAgICBpbnN0YWxsKQorICAgICAgICAkRUNITyBcCisiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9aW5zdGFsbCBJTlNUQUxMLUNPTU1BTkQuLi4KKworSW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMuCisKK0lOU1RBTEwtQ09NTUFORCBpcyB0aGUgaW5zdGFsbGF0aW9uIGNvbW1hbmQuICBUaGUgZmlyc3QgY29tcG9uZW50IHNob3VsZCBiZQorZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCisKK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBJTlNUQUxMLUNPTU1BTkQgYXJlIHRyZWF0ZWQgc3BlY2lhbGx5OgorCisgIC1pbnN0LXByZWZpeCBQUkVGSVgtRElSICBVc2UgUFJFRklYLURJUiBhcyBhIHN0YWdpbmcgYXJlYSBmb3IgaW5zdGFsbGF0aW9uCisKK1RoZSByZXN0IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBhcmd1bWVudHMgdG8gdGhhdCBjb21tYW5kIChvbmx5CitCU0QtY29tcGF0aWJsZSBpbnN0YWxsIG9wdGlvbnMgYXJlIHJlY29nbml6ZWQpLiIKKyAgICAgICAgOzsKKworICAgICAgbGluaykKKyAgICAgICAgJEVDSE8gXAorIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWxpbmsgTElOSy1DT01NQU5ELi4uCisKK0xpbmsgb2JqZWN0IGZpbGVzIG9yIGxpYnJhcmllcyB0b2dldGhlciB0byBmb3JtIGFub3RoZXIgbGlicmFyeSwgb3IgdG8KK2NyZWF0ZSBhbiBleGVjdXRhYmxlIHByb2dyYW0uCisKK0xJTkstQ09NTUFORCBpcyBhIGNvbW1hbmQgdXNpbmcgdGhlIEMgY29tcGlsZXIgdGhhdCB5b3Ugd291bGQgdXNlIHRvIGNyZWF0ZQorYSBwcm9ncmFtIGZyb20gc2V2ZXJhbCBvYmplY3QgZmlsZXMuCisKK1RoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBMSU5LLUNPTU1BTkQgYXJlIHRyZWF0ZWQgc3BlY2lhbGx5OgorCisgIC1hbGwtc3RhdGljICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIGF0IGFsbAorICAtYXZvaWQtdmVyc2lvbiAgICBkbyBub3QgYWRkIGEgdmVyc2lvbiBzdWZmaXggaWYgcG9zc2libGUKKyAgLWRsb3BlbiBGSUxFICAgICAgXGAtZGxwcmVvcGVuJyBGSUxFIGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZCBhdCBydW50aW1lCisgIC1kbHByZW9wZW4gRklMRSAgIGxpbmsgaW4gRklMRSBhbmQgYWRkIGl0cyBzeW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9zeW1ib2xzCisgIC1leHBvcnQtZHluYW1pYyAgIGFsbG93IHN5bWJvbHMgZnJvbSBPVVRQVVQtRklMRSB0byBiZSByZXNvbHZlZCB3aXRoIGRsc3ltKDMpCisgIC1leHBvcnQtc3ltYm9scyBTWU1GSUxFCisgICAgICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBsaXN0ZWQgaW4gU1lNRklMRQorICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggUkVHRVgKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xzIG1hdGNoaW5nIFJFR0VYCisgIC1MTElCRElSICAgICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJlcXVpcmVkIGluc3RhbGxlZCBsaWJyYXJpZXMKKyAgLWxOQU1FICAgICAgICAgICAgT1VUUFVULUZJTEUgcmVxdWlyZXMgdGhlIGluc3RhbGxlZCBsaWJyYXJ5IGxpYk5BTUUKKyAgLW1vZHVsZSAgICAgICAgICAgYnVpbGQgYSBsaWJyYXJ5IHRoYXQgY2FuIGRsb3BlbmVkCisgIC1uby1mYXN0LWluc3RhbGwgIGRpc2FibGUgdGhlIGZhc3QtaW5zdGFsbCBtb2RlCisgIC1uby1pbnN0YWxsICAgICAgIGxpbmsgYSBub3QtaW5zdGFsbGFibGUgZXhlY3V0YWJsZQorICAtbm8tdW5kZWZpbmVkICAgICBkZWNsYXJlIHRoYXQgYSBsaWJyYXJ5IGRvZXMgbm90IHJlZmVyIHRvIGV4dGVybmFsIHN5bWJvbHMKKyAgLW8gT1VUUFVULUZJTEUgICAgY3JlYXRlIE9VVFBVVC1GSUxFIGZyb20gdGhlIHNwZWNpZmllZCBvYmplY3RzCisgIC1vYmplY3RsaXN0IEZJTEUgIFVzZSBhIGxpc3Qgb2Ygb2JqZWN0IGZpbGVzIGZvdW5kIGluIEZJTEUgdG8gc3BlY2lmeSBvYmplY3RzCisgIC1wcmVjaW91cy1maWxlcy1yZWdleCBSRUdFWAorICAgICAgICAgICAgICAgICAgICBkb24ndCByZW1vdmUgb3V0cHV0IGZpbGVzIG1hdGNoaW5nIFJFR0VYCisgIC1yZWxlYXNlIFJFTEVBU0UgIHNwZWNpZnkgcGFja2FnZSByZWxlYXNlIGluZm9ybWF0aW9uCisgIC1ycGF0aCBMSUJESVIgICAgIHRoZSBjcmVhdGVkIGxpYnJhcnkgd2lsbCBldmVudHVhbGx5IGJlIGluc3RhbGxlZCBpbiBMSUJESVIKKyAgLVJbIF1MSUJESVIgICAgICAgYWRkIExJQkRJUiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMKKyAgLXNoYXJlZCAgICAgICAgICAgb25seSBkbyBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKKyAgLXNocmV4dCBTVUZGSVggICAgb3ZlcnJpZGUgdGhlIHN0YW5kYXJkIHNoYXJlZCBsaWJyYXJ5IGZpbGUgZXh0ZW5zaW9uCisgIC1zdGF0aWMgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCisgIC1zdGF0aWMtbGlidG9vbC1saWJzCisgICAgICAgICAgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIGxpYnRvb2wgbGlicmFyaWVzCisgIC12ZXJzaW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCisgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgbGlicmFyeSB2ZXJzaW9uIGluZm8gW2VhY2ggdmFyaWFibGUgZGVmYXVsdHMgdG8gMF0KKyAgLXdlYWsgTElCTkFNRSAgICAgZGVjbGFyZSB0aGF0IHRoZSB0YXJnZXQgcHJvdmlkZXMgdGhlIExJQk5BTUUgaW50ZXJmYWNlCisKK0FsbCBvdGhlciBvcHRpb25zIChhcmd1bWVudHMgYmVnaW5uaW5nIHdpdGggXGAtJykgYXJlIGlnbm9yZWQuCisKK0V2ZXJ5IG90aGVyIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlbmFtZS4gIEZpbGVzIGVuZGluZyBpbiBcYC5sYScgYXJlCit0cmVhdGVkIGFzIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzLCBvdGhlciBmaWxlcyBhcmUgc3RhbmRhcmQgb3IgbGlicmFyeQorb2JqZWN0IGZpbGVzLgorCitJZiB0aGUgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5sYScsIHRoZW4gYSBsaWJ0b29sIGxpYnJhcnkgaXMgY3JlYXRlZCwKK29ubHkgbGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKK3JlcXVpcmVkLCBleGNlcHQgd2hlbiBjcmVhdGluZyBhIGNvbnZlbmllbmNlIGxpYnJhcnkuCisKK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRlZAordXNpbmcgXGBhcicgYW5kIFxgcmFubGliJywgb3Igb24gV2luZG93cyB1c2luZyBcYGxpYicuCisKK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCitpcyBjcmVhdGVkLCBvdGhlcndpc2UgYW4gZXhlY3V0YWJsZSBwcm9ncmFtIGlzIGNyZWF0ZWQuIgorICAgICAgICA7OworCisgICAgICB1bmluc3RhbGwpCisgICAgICAgICRFQ0hPIFwKKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgorCitSZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGF0aW9uIGRpcmVjdG9yeS4KKworUk0gaXMgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxFCisodHlwaWNhbGx5IFxgL2Jpbi9ybScpLiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1mJykgdG8gYmUgcGFzc2VkCit0byBSTS4KKworSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFyeSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggaXQgYXJlIGRlbGV0ZWQuCitPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4iCisgICAgICAgIDs7CisKKyAgICAgICopCisgICAgICAgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRtb2RlJyIKKyAgICAgICAgOzsKKyAgICBlc2FjCisKKyAgICAkRUNITworICAgICRFQ0hPICJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy4iCisKKyAgICBleGl0ICQ/Cit9CisKKyAgIyBOb3cgdGhhdCB3ZSd2ZSBjb2xsZWN0ZWQgYSBwb3NzaWJsZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5CisgICRvcHRfaGVscCAmJiBmdW5jX21vZGVfaGVscAorCisKKyMgZnVuY19tb2RlX2V4ZWN1dGUgYXJnLi4uCitmdW5jX21vZGVfZXhlY3V0ZSAoKQoreworICAgICRvcHRfZGVidWcKKyAgICAjIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29tbWFuZCBuYW1lLgorICAgIGNtZD0iJG5vbm9wdCIKKyAgICB0ZXN0IC16ICIkY21kIiAmJiBcCisgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBDT01NQU5EIgorCisgICAgIyBIYW5kbGUgLWRsb3BlbiBmbGFncyBpbW1lZGlhdGVseS4KKyAgICBmb3IgZmlsZSBpbiAkZXhlY3V0ZV9kbGZpbGVzOyBkbworICAgICAgdGVzdCAtZiAiJGZpbGUiIFwKKwl8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIGZpbGUiCisKKyAgICAgIGRpcj0KKyAgICAgIGNhc2UgJGZpbGUgaW4KKyAgICAgICoubGEpCisJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorCSAgfHwgZnVuY19mYXRhbF9oZWxwICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKworCSMgUmVhZCB0aGUgbGlidG9vbCBsaWJyYXJ5LgorCWRsbmFtZT0KKwlsaWJyYXJ5X25hbWVzPQorCWZ1bmNfc291cmNlICIkZmlsZSIKKworCSMgU2tpcCB0aGlzIGxpYnJhcnkgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkLgorCWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCisJICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCisJICB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyIgJiYgXAorCSAgICBmdW5jX3dhcm5pbmcgIlxgJGZpbGUnIHdhcyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFtaWMnIgorCSAgY29udGludWUKKwlmaQorCisJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCisJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKworCWlmIHRlc3QgLWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsgdGhlbgorCSAgZGlyPSIkZGlyLyRvYmpkaXIiCisJZWxzZQorCSAgaWYgdGVzdCAhIC1mICIkZGlyLyRkbG5hbWUiOyB0aGVuCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIFxgJGRsbmFtZScgaW4gXGAkZGlyJyBvciBcYCRkaXIvJG9iamRpciciCisJICBmaQorCWZpCisJOzsKKworICAgICAgKi5sbykKKwkjIEp1c3QgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgLmxvIGZpbGUuCisJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCisJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKwk7OworCisgICAgICAqKQorCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBub24tbGlidG9vbCBsaWJyYXJpZXMgYW5kIG9iamVjdHMiCisJY29udGludWUKKwk7OworICAgICAgZXNhYworCisgICAgICAjIEdldCB0aGUgYWJzb2x1dGUgcGF0aG5hbWUuCisgICAgICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCisgICAgICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCisKKyAgICAgICMgTm93IGFkZCB0aGUgZGlyZWN0b3J5IHRvIHNobGlicGF0aF92YXIuCisgICAgICBpZiBldmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsgdGhlbgorCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXJcIiIKKyAgICAgIGVsc2UKKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIKKyAgICAgIGZpCisgICAgZG9uZQorCisgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCBzaGxpYnBhdGhfdmFyCisgICAgIyByYXRoZXIgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgorICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgorCisgICAgIyBDaGVjayBpZiBhbnkgb2YgdGhlIGFyZ3VtZW50cyBpcyBhIHdyYXBwZXIgc2NyaXB0LgorICAgIGFyZ3M9CisgICAgZm9yIGZpbGUKKyAgICBkbworICAgICAgY2FzZSAkZmlsZSBpbgorICAgICAgLSopIDs7CisgICAgICAqKQorCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KKwlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJGZpbGUiOyB0aGVuCisJICBmdW5jX3NvdXJjZSAiJGZpbGUiCisJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorCSAgZmlsZT0iJHByb2dkaXIvJHByb2dyYW0iCisJZWxpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgorCSAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisJICBmdW5jX3NvdXJjZSAiJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0IgorCSAgIyBUcmFuc2Zvcm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgorCWZpCisJOzsKKyAgICAgIGVzYWMKKyAgICAgICMgUXVvdGUgYXJndW1lbnRzICh0byBwcmVzZXJ2ZSBzaGVsbCBtZXRhY2hhcmFjdGVycykuCisgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmlsZSIKKyAgICAgIGFyZ3M9IiRhcmdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKyAgICBkb25lCisKKyAgICBpZiB0ZXN0ICJYJG9wdF9kcnlfcnVuIiA9IFhmYWxzZTsgdGhlbgorICAgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCisJIyBFeHBvcnQgdGhlIHNobGlicGF0aF92YXIuCisJZXZhbCAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorICAgICAgZmkKKworICAgICAgIyBSZXN0b3JlIHNhdmVkIGVudmlyb25tZW50IHZhcmlhYmxlcworICAgICAgZm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCisgICAgICBkbworCWV2YWwgImlmIHRlc3QgXCJcJHtzYXZlXyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCisgICAgICAgICAgICAgICAgJGx0X3Zhcj1cJHNhdmVfJGx0X3ZhcjsgZXhwb3J0ICRsdF92YXIKKwkgICAgICBlbHNlCisJCSRsdF91bnNldCAkbHRfdmFyCisJICAgICAgZmkiCisgICAgICBkb25lCisKKyAgICAgICMgTm93IHByZXBhcmUgdG8gYWN0dWFsbHkgZXhlYyB0aGUgY29tbWFuZC4KKyAgICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgorICAgIGVsc2UKKyAgICAgICMgRGlzcGxheSB3aGF0IHdvdWxkIGJlIGRvbmUuCisgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKwlldmFsICJcJEVDSE8gXCJcJHNobGlicGF0aF92YXI9XCQkc2hsaWJwYXRoX3ZhclwiIgorCSRFQ0hPICJleHBvcnQgJHNobGlicGF0aF92YXIiCisgICAgICBmaQorICAgICAgJEVDSE8gIiRjbWQkYXJncyIKKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworICAgIGZpCit9CisKK3Rlc3QgIiRtb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4ZWN1dGUgJHsxKyIkQCJ9CisKKworIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgorZnVuY19tb2RlX2ZpbmlzaCAoKQoreworICAgICRvcHRfZGVidWcKKyAgICBsaWJkaXJzPSIkbm9ub3B0IgorICAgIGFkbWluY21kcz0KKworICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCisgICAgICBmb3IgZGlyCisgICAgICBkbworCWxpYmRpcnM9IiRsaWJkaXJzICRkaXIiCisgICAgICBkb25lCisKKyAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisJaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzIjsgdGhlbgorCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGZpbmlzaCBjb21tYW5kcy4KKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZmluaXNoX2NtZHMiICdhZG1pbmNtZHM9IiRhZG1pbmNtZHMKKyciJGNtZCInIicKKwlmaQorCWlmIHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KKwkgICMgRG8gdGhlIHNpbmdsZSBmaW5pc2hfZXZhbC4KKwkgIGV2YWwgY21kcz1cIiRmaW5pc2hfZXZhbFwiCisJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZHMiIHx8IGFkbWluY21kcz0iJGFkbWluY21kcworICAgICAgICRjbWRzIgorCWZpCisgICAgICBkb25lCisgICAgZmkKKworICAgICMgRXhpdCBoZXJlIGlmIHRoZXkgd2FudGVkIHNpbGVudCBtb2RlLgorICAgICRvcHRfc2lsZW50ICYmIGV4aXQgJEVYSVRfU1VDQ0VTUworCisgICAgJEVDSE8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCisgICAgJEVDSE8gIkxpYnJhcmllcyBoYXZlIGJlZW4gaW5zdGFsbGVkIGluOiIKKyAgICBmb3IgbGliZGlyIGluICRsaWJkaXJzOyBkbworICAgICAgJEVDSE8gIiAgICRsaWJkaXIiCisgICAgZG9uZQorICAgICRFQ0hPCisgICAgJEVDSE8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgorICAgICRFQ0hPICJpbiBhIGdpdmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIgdXNlIGxpYnRvb2wsIGFuZCIKKyAgICAkRUNITyAic3BlY2lmeSB0aGUgZnVsbCBwYXRobmFtZSBvZiB0aGUgbGlicmFyeSwgb3IgdXNlIHRoZSBcYC1MTElCRElSJyIKKyAgICAkRUNITyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgorICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorICAgICAgJEVDSE8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkc2hsaWJwYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCisgICAgICAkRUNITyAiICAgICBkdXJpbmcgZXhlY3V0aW9uIgorICAgIGZpCisgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorICAgICAgJEVDSE8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorICAgICAgJEVDSE8gIiAgICAgZHVyaW5nIGxpbmtpbmciCisgICAgZmkKKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKyAgICAgIGxpYmRpcj1MSUJESVIKKyAgICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKworICAgICAgJEVDSE8gIiAgIC0gdXNlIHRoZSBcYCRmbGFnJyBsaW5rZXIgZmxhZyIKKyAgICBmaQorICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCisgICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgcnVuIHRoZXNlIGNvbW1hbmRzOiRhZG1pbmNtZHMiCisgICAgZmkKKyAgICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgorICAgICAgJEVDSE8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIGFkZCBMSUJESVIgdG8gXGAvZXRjL2xkLnNvLmNvbmYnIgorICAgIGZpCisgICAgJEVDSE8KKworICAgICRFQ0hPICJTZWUgYW55IG9wZXJhdGluZyBzeXN0ZW0gZG9jdW1lbnRhdGlvbiBhYm91dCBzaGFyZWQgbGlicmFyaWVzIGZvciIKKyAgICBjYXNlICRob3N0IGluCisgICAgICBzb2xhcmlzMi5bNjc4OV18c29sYXJpczIuMVswLTldKQorICAgICAgICAkRUNITyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSksIGNybGUoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCIKKwkkRUNITyAicGFnZXMuIgorCTs7CisgICAgICAqKQorICAgICAgICAkRUNITyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCBwYWdlcy4iCisgICAgICAgIDs7CisgICAgZXNhYworICAgICRFQ0hPICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAorICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworfQorCit0ZXN0ICIkbW9kZSIgPSBmaW5pc2ggJiYgZnVuY19tb2RlX2ZpbmlzaCAkezErIiRAIn0KKworCisjIGZ1bmNfbW9kZV9pbnN0YWxsIGFyZy4uLgorZnVuY19tb2RlX2luc3RhbGwgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgIyBUaGVyZSBtYXkgYmUgYW4gb3B0aW9uYWwgc2goMSkgYXJndW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZgorICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MgTlQpLgorICAgIGlmIHRlc3QgIiRub25vcHQiID0gIiRTSEVMTCIgfHwgdGVzdCAiJG5vbm9wdCIgPSAvYmluL3NoIHx8CisgICAgICAgIyBBbGxvdyB0aGUgdXNlIG9mIEdOVSBzaHRvb2wncyBpbnN0YWxsIGNvbW1hbmQuCisgICAgICAgJEVDSE8gIlgkbm9ub3B0IiB8ICRHUkVQIHNodG9vbCA+L2Rldi9udWxsOyB0aGVuCisgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCisgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbm9ub3B0IgorICAgICAgaW5zdGFsbF9wcm9nPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQgIgorICAgICAgYXJnPSQxCisgICAgICBzaGlmdAorICAgIGVsc2UKKyAgICAgIGluc3RhbGxfcHJvZz0KKyAgICAgIGFyZz0kbm9ub3B0CisgICAgZmkKKworICAgICMgVGhlIHJlYWwgZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIHRoZSBuYW1lIG9mIHRoZSBpbnN0YWxsYXRpb24gcHJvZ3JhbS4KKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCisgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKyAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2ckZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisKKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0IGxlYXN0IGFsbCB0aGUgQlNEIGluc3RhbGwgZmxhZ3MuCisgICAgZGVzdD0KKyAgICBmaWxlcz0KKyAgICBvcHRzPQorICAgIHByZXY9CisgICAgaW5zdGFsbF90eXBlPQorICAgIGlzZGlyPW5vCisgICAgc3RyaXBtZT0KKyAgICBmb3IgYXJnCisgICAgZG8KKyAgICAgIGlmIHRlc3QgLW4gIiRkZXN0IjsgdGhlbgorCWZpbGVzPSIkZmlsZXMgJGRlc3QiCisJZGVzdD0kYXJnCisJY29udGludWUKKyAgICAgIGZpCisKKyAgICAgIGNhc2UgJGFyZyBpbgorICAgICAgLWQpIGlzZGlyPXllcyA7OworICAgICAgLWYpCisJY2FzZSAiICRpbnN0YWxsX3Byb2cgIiBpbgorCSpbXFxcIC9dY3BcICopIDs7CisJKikgcHJldj0kYXJnIDs7CisJZXNhYworCTs7CisgICAgICAtZyB8IC1tIHwgLW8pCisJcHJldj0kYXJnCisJOzsKKyAgICAgIC1zKQorCXN0cmlwbWU9IiAtcyIKKwljb250aW51ZQorCTs7CisgICAgICAtKikKKwk7OworICAgICAgKikKKwkjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZGVkIGFuIGFyZ3VtZW50LCB0aGVuIHNraXAgaXQuCisJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisJICBwcmV2PQorCWVsc2UKKwkgIGRlc3Q9JGFyZworCSAgY29udGludWUKKwlmaQorCTs7CisgICAgICBlc2FjCisKKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCisgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorICAgICAgaW5zdGFsbF9wcm9nPSIkaW5zdGFsbF9wcm9nICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKyAgICBkb25lCisKKyAgICB0ZXN0IC16ICIkaW5zdGFsbF9wcm9nIiAmJiBcCisgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYW4gaW5zdGFsbCBwcm9ncmFtIgorCisgICAgdGVzdCAtbiAiJHByZXYiICYmIFwKKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXYnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIKKworICAgIGlmIHRlc3QgLXogIiRmaWxlcyI7IHRoZW4KKyAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgorCWZ1bmNfZmF0YWxfaGVscCAibm8gZmlsZSBvciBkZXN0aW5hdGlvbiBzcGVjaWZpZWQiCisgICAgICBlbHNlCisJZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24iCisgICAgICBmaQorICAgIGZpCisKKyAgICAjIFN0cmlwIGFueSB0cmFpbGluZyBzbGFzaCBmcm9tIHRoZSBkZXN0aW5hdGlvbi4KKyAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRkZXN0IgorICAgIGRlc3Q9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCisgICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnkuCisgICAgdGVzdCAtZCAiJGRlc3QiICYmIGlzZGlyPXllcworICAgIGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7IHRoZW4KKyAgICAgIGRlc3RkaXI9IiRkZXN0IgorICAgICAgZGVzdG5hbWU9CisgICAgZWxzZQorICAgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJGRlc3QiICIiICIuIgorICAgICAgZGVzdGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisgICAgICBkZXN0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCisgICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCisgICAgICBzZXQgZHVtbXkgJGZpbGVzOyBzaGlmdAorICAgICAgdGVzdCAiJCMiIC1ndCAxICYmIFwKKwlmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3QnIGlzIG5vdCBhIGRpcmVjdG9yeSIKKyAgICBmaQorICAgIGNhc2UgJGRlc3RkaXIgaW4KKyAgICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisgICAgKikKKyAgICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KKwljYXNlICRmaWxlIGluCisJKi5sbykgOzsKKwkqKQorCSAgZnVuY19mYXRhbF9oZWxwICJcYCRkZXN0ZGlyJyBtdXN0IGJlIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIgorCSAgOzsKKwllc2FjCisgICAgICBkb25lCisgICAgICA7OworICAgIGVzYWMKKworICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgorICAgICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgorICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgorCisgICAgc3RhdGljbGlicz0KKyAgICBmdXR1cmVfbGliZGlycz0KKyAgICBjdXJyZW50X2xpYmRpcnM9CisgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworCisgICAgICAjIERvIGVhY2ggaW5zdGFsbGF0aW9uLgorICAgICAgY2FzZSAkZmlsZSBpbgorICAgICAgKi4kbGliZXh0KQorCSMgRG8gdGhlIHN0YXRpYyBsaWJyYXJpZXMgbGF0ZXIuCisJc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGZpbGUiCisJOzsKKworICAgICAgKi5sYSkKKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCisJICB8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKworCWxpYnJhcnlfbmFtZXM9CisJb2xkX2xpYnJhcnk9CisJcmVsaW5rX2NvbW1hbmQ9CisJZnVuY19zb3VyY2UgIiRmaWxlIgorCisJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJyZW50X2xpYmRpcnMgaWYgaXQgaXMgdGhlIGRlc3RpbmF0aW9uLgorCWlmIHRlc3QgIlgkZGVzdGRpciIgPSAiWCRsaWJkaXIiOyB0aGVuCisJICBjYXNlICIkY3VycmVudF9saWJkaXJzICIgaW4KKwkgICoiICRsaWJkaXIgIiopIDs7CisJICAqKSBjdXJyZW50X2xpYmRpcnM9IiRjdXJyZW50X2xpYmRpcnMgJGxpYmRpciIgOzsKKwkgIGVzYWMKKwllbHNlCisJICAjIE5vdGUgdGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBsaWJkaXIuCisJICBjYXNlICIkZnV0dXJlX2xpYmRpcnMgIiBpbgorCSAgKiIgJGxpYmRpciAiKikgOzsKKwkgICopIGZ1dHVyZV9saWJkaXJzPSIkZnV0dXJlX2xpYmRpcnMgJGxpYmRpciIgOzsKKwkgIGVzYWMKKwlmaQorCisJZnVuY19kaXJuYW1lICIkZmlsZSIgIi8iICIiCisJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKwlkaXI9IiRkaXIkb2JqZGlyIgorCisJaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorCSAgIyBEZXRlcm1pbmUgdGhlIHByZWZpeCB0aGUgdXNlciBoYXMgYXBwbGllZCB0byBvdXIgZnV0dXJlIGRpci4KKwkgIGluc3RfcHJlZml4X2Rpcj1gJEVDSE8gIlgkZGVzdGRpciIgfCAkWHNlZCAtZSAicyUkbGliZGlyXCQlJSJgCisKKwkgICMgRG9uJ3QgYWxsb3cgdGhlIHVzZXIgdG8gcGxhY2UgdXMgb3V0c2lkZSBvZiBvdXIgZXhwZWN0ZWQKKwkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBlbmRlbnQgbGlicmFyaWVzIHRoYXQKKwkgICMgYXJlIGluc3RhbGxlZCB0byB0aGUgc2FtZSBwcmVmaXguCisJICAjIEF0IHByZXNlbnQsIHRoaXMgY2hlY2sgZG9lc24ndCBhZmZlY3Qgd2luZG93cyAuZGxsJ3MgdGhhdAorCSAgIyBhcmUgaW5zdGFsbGVkIGludG8gJGxpYmRpci8uLi9iaW4gKGN1cnJlbnRseSwgdGhhdCB3b3JrcyBmaW5lKQorCSAgIyBidXQgaXQncyBzb21ldGhpbmcgdG8ga2VlcCBhbiBleWUgb24uCisJICB0ZXN0ICIkaW5zdF9wcmVmaXhfZGlyIiA9ICIkZGVzdGRpciIgJiYgXAorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogY2Fubm90IGluc3RhbGwgXGAkZmlsZScgdG8gYSBkaXJlY3Rvcnkgbm90IGVuZGluZyBpbiAkbGliZGlyIgorCisJICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgorCSAgICAjIFN0aWNrIHRoZSBpbnN0X3ByZWZpeF9kaXIgZGF0YSBpbnRvIHRoZSBsaW5rIGNvbW1hbmQuCisJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZpeF9kaXIlImAKKwkgIGVsc2UKKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBpbnN0X3ByZWZpeF9kaXJAJSUiYAorCSAgZmkKKworCSAgZnVuY193YXJuaW5nICJyZWxpbmtpbmcgXGAkZmlsZSciCisJICBmdW5jX3Nob3dfZXZhbCAiJHJlbGlua19jb21tYW5kIiBcCisJICAgICdmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogcmVsaW5rIFxgJGZpbGUnXCcnIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQgYmVmb3JlIGluc3RhbGxpbmcgaXQiJworCWZpCisKKwkjIFNlZSB0aGUgbmFtZXMgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LgorCXNldCBkdW1teSAkbGlicmFyeV9uYW1lczsgc2hpZnQKKwlpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKwkgIHJlYWxuYW1lPSIkMSIKKwkgIHNoaWZ0CisKKwkgIHNyY25hbWU9IiRyZWFsbmFtZSIKKwkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKKworCSAgIyBJbnN0YWxsIHRoZSBzaGFyZWQgbGlicmFyeSBhbmQgYnVpbGQgdGhlIHN5bWxpbmtzLgorCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiIFwKKwkgICAgICAnZXhpdCAkPycKKwkgIHRzdHJpcG1lPSIkc3RyaXBtZSIKKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKwkgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKwkgICAgY2FzZSAkcmVhbG5hbWUgaW4KKwkgICAgKi5kbGwuYSkKKwkgICAgICB0c3RyaXBtZT0iIgorCSAgICAgIDs7CisJICAgIGVzYWMKKwkgICAgOzsKKwkgIGVzYWMKKwkgIGlmIHRlc3QgLW4gIiR0c3RyaXBtZSIgJiYgdGVzdCAtbiAiJHN0cmlwbGliIjsgdGhlbgorCSAgICBmdW5jX3Nob3dfZXZhbCAiJHN0cmlwbGliICRkZXN0ZGlyLyRyZWFsbmFtZSIgJ2V4aXQgJD8nCisJICBmaQorCisJICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKwkgICAgIyBEZWxldGUgdGhlIG9sZCBzeW1saW5rcywgYW5kIGNyZWF0ZSBuZXcgb25lcy4KKwkgICAgIyBUcnkgYGxuIC1zZicgZmlyc3QsIGJlY2F1c2UgdGhlIGBsbicgYmluYXJ5IG1pZ2h0IGRlcGVuZCBvbgorCSAgICAjIHRoZSBzeW1saW5rIHdlIHJlcGxhY2UhICBTb2xhcmlzIC9iaW4vbG4gZG9lcyBub3QgdW5kZXJzdGFuZCAtZiwKKwkgICAgIyBzbyB3ZSBhbHNvIG5lZWQgdG8gdHJ5IHJtICYmIGxuIC1zLgorCSAgICBmb3IgbGlua25hbWUKKwkgICAgZG8KKwkgICAgICB0ZXN0ICIkbGlua25hbWUiICE9ICIkcmVhbG5hbWUiIFwKKwkJJiYgZnVuY19zaG93X2V2YWwgIihjZCAkZGVzdGRpciAmJiB7ICRMTl9TIC1mICRyZWFsbmFtZSAkbGlua25hbWUgfHwgeyAkUk0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlua25hbWU7IH07IH0pIgorCSAgICBkb25lCisJICBmaQorCisJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCisJICBsaWI9IiRkZXN0ZGlyLyRyZWFsbmFtZSIKKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGluc3RhbGxfY21kcyIgJ2V4aXQgJD8nCisJZmkKKworCSMgSW5zdGFsbCB0aGUgcHNldWRvLWxpYnJhcnkgZm9yIGluZm9ybWF0aW9uIHB1cnBvc2VzLgorCWZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwlpbnN0bmFtZT0iJGRpci8kbmFtZSJpCisJZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGluc3RuYW1lICRkZXN0ZGlyLyRuYW1lIiAnZXhpdCAkPycKKworCSMgTWF5YmUgaW5zdGFsbCB0aGUgc3RhdGljIGxpYnJhcnksIHRvby4KKwl0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHN0YXRpY2xpYnM9IiRzdGF0aWNsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgorCTs7CisKKyAgICAgICoubG8pCisJIyBJbnN0YWxsIChpLmUuIGNvcHkpIGEgbGlidG9vbCBvYmplY3QuCisKKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCisJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgorCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKKwllbHNlCisJICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKKwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorCWZpCisKKwkjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgZGVzdGluYXRpb24gb2xkLXN0eWxlIG9iamVjdCBmaWxlLgorCWNhc2UgJGRlc3RmaWxlIGluCisJKi5sbykKKwkgIGZ1bmNfbG8ybyAiJGRlc3RmaWxlIgorCSAgc3RhdGljZGVzdD0kZnVuY19sbzJvX3Jlc3VsdAorCSAgOzsKKwkqLiRvYmpleHQpCisJICBzdGF0aWNkZXN0PSIkZGVzdGZpbGUiCisJICBkZXN0ZmlsZT0KKwkgIDs7CisJKikKKwkgIGZ1bmNfZmF0YWxfaGVscCAiY2Fubm90IGNvcHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRkZXN0ZmlsZSciCisJICA7OworCWVzYWMKKworCSMgSW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgorCXRlc3QgLW4gIiRkZXN0ZmlsZSIgJiYgXAorCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGZpbGUgJGRlc3RmaWxlIiAnZXhpdCAkPycKKworCSMgSW5zdGFsbCB0aGUgb2xkIG9iamVjdCBpZiBlbmFibGVkLgorCWlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKwkgICMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCisJICBmdW5jX2xvMm8gIiRmaWxlIgorCSAgc3RhdGljb2JqPSRmdW5jX2xvMm9fcmVzdWx0CisJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyBcJHN0YXRpY29iaiBcJHN0YXRpY2Rlc3QiICdleGl0ICQ/JworCWZpCisJZXhpdCAkRVhJVF9TVUNDRVNTCisJOzsKKworICAgICAgKikKKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCisJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgorCSAgZGVzdGZpbGU9IiRkZXN0ZGlyLyRkZXN0bmFtZSIKKwllbHNlCisJICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKKwkgIGRlc3RmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorCWZpCisKKwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0aGVyZSBpcyBhIC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKKwkjIGJlY2F1c2UgaXQgaXMgbW9zdCBsaWtlbHkgYSBsaWJ0b29sIHNjcmlwdCB3ZSBhY3R1YWxseSB3YW50IHRvCisJIyBpbnN0YWxsCisJc3RyaXBwZWRfZXh0PSIiCisJY2FzZSAkZmlsZSBpbgorCSAgKi5leGUpCisJICAgIGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0aGVuCisJICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIKKwkgICAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgICAgICBzdHJpcHBlZF9leHQ9Ii5leGUiCisJICAgIGZpCisJICAgIDs7CisJZXNhYworCisJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgorCWNhc2UgJGhvc3QgaW4KKwkqY3lnd2luKiB8ICptaW5ndyopCisJICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCisJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisJICAgICAgd3JhcHBlcj0kZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKwkgICAgZWxzZQorCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCisJICAgICAgd3JhcHBlcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICAgIGZpCisJICAgIDs7CisJKikKKwkgICAgd3JhcHBlcj0kZmlsZQorCSAgICA7OworCWVzYWMKKwlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJHdyYXBwZXIiOyB0aGVuCisJICBub3RpbnN0X2RlcGxpYnM9CisJICByZWxpbmtfY29tbWFuZD0KKworCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVyIgorCisJICAjIENoZWNrIHRoZSB2YXJpYWJsZXMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHNldC4KKwkgIHRlc3QgLXogIiRnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uIiAmJiBcCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBcYCR3cmFwcGVyJyIKKworCSAgZmluYWxpemU9eWVzCisJICBmb3IgbGliIGluICRub3RpbnN0X2RlcGxpYnM7IGRvCisJICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgZWFjaCBsaWJyYXJ5IGlzIGluc3RhbGxlZC4KKwkgICAgbGliZGlyPQorCSAgICBpZiB0ZXN0IC1mICIkbGliIjsgdGhlbgorCSAgICAgIGZ1bmNfc291cmNlICIkbGliIgorCSAgICBmaQorCSAgICBsaWJmaWxlPSIkbGliZGlyLyJgJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJWcnYCAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKwkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIgJiYgdGVzdCAhIC1mICIkbGliZmlsZSI7IHRoZW4KKwkgICAgICBmdW5jX3dhcm5pbmcgIlxgJGxpYicgaGFzIG5vdCBiZWVuIGluc3RhbGxlZCBpbiBcYCRsaWJkaXInIgorCSAgICAgIGZpbmFsaXplPW5vCisJICAgIGZpCisJICBkb25lCisKKwkgIHJlbGlua19jb21tYW5kPQorCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVyIgorCisJICBvdXRwdXRuYW1lPQorCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSBubyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisJICAgICRvcHRfZHJ5X3J1biB8fCB7CisJICAgICAgaWYgdGVzdCAiJGZpbmFsaXplIiA9IHllczsgdGhlbgorCSAgICAgICAgdG1wZGlyPWBmdW5jX21rdGVtcGRpcmAKKwkJZnVuY19iYXNlbmFtZSAiJGZpbGUkc3RyaXBwZWRfZXh0IgorCQlmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisJICAgICAgICBvdXRwdXRuYW1lPSIkdG1wZGlyLyRmaWxlIgorCSAgICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgorCSAgICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dG5hbWUiJyVnJ2AKKworCSAgICAgICAgJG9wdF9zaWxlbnQgfHwgeworCSAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRyZWxpbmtfY29tbWFuZCIKKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisJICAgICAgICB9CisJICAgICAgICBpZiBldmFsICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuIDoKKwkgICAgICAgICAgZWxzZQorCQkgIGZ1bmNfZXJyb3IgImVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIKKwkJICAkb3B0X2RyeV9ydW4gfHwgJHtSTX1yICIkdG1wZGlyIgorCQkgIGNvbnRpbnVlCisJICAgICAgICBmaQorCSAgICAgICAgZmlsZT0iJG91dHB1dG5hbWUiCisJICAgICAgZWxzZQorCSAgICAgICAgZnVuY193YXJuaW5nICJjYW5ub3QgcmVsaW5rIFxgJGZpbGUnIgorCSAgICAgIGZpCisJICAgIH0KKwkgIGVsc2UKKwkgICAgIyBJbnN0YWxsIHRoZSBiaW5hcnkgdGhhdCB3ZSBjb21waWxlZCBlYXJsaWVyLgorCSAgICBmaWxlPWAkRUNITyAiWCRmaWxlJHN0cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAicyVcKFteL10qXCkkJSRvYmpkaXIvXDElImAKKwkgIGZpCisJZmkKKworCSMgcmVtb3ZlIC5leGUgc2luY2UgY3lnd2luIC91c3IvYmluL2luc3RhbGwgd2lsbCBhcHBlbmQgYW5vdGhlcgorCSMgb25lIGFueXdheQorCWNhc2UgJGluc3RhbGxfcHJvZywkaG9zdCBpbgorCSovdXNyL2Jpbi9pbnN0YWxsKiwqY3lnd2luKikKKwkgIGNhc2UgJGZpbGU6JGRlc3RmaWxlIGluCisJICAqLmV4ZToqLmV4ZSkKKwkgICAgIyB0aGlzIGlzIG9rCisJICAgIDs7CisJICAqLmV4ZToqKQorCSAgICBkZXN0ZmlsZT0kZGVzdGZpbGUuZXhlCisJICAgIDs7CisJICAqOiouZXhlKQorCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRkZXN0ZmlsZSIKKwkgICAgZGVzdGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgICA7OworCSAgZXNhYworCSAgOzsKKwllc2FjCisJZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2dcJHN0cmlwbWUgXCRmaWxlIFwkZGVzdGZpbGUiICdleGl0ICQ/JworCSRvcHRfZHJ5X3J1biB8fCBpZiB0ZXN0IC1uICIkb3V0cHV0bmFtZSI7IHRoZW4KKwkgICR7Uk19ciAiJHRtcGRpciIKKwlmaQorCTs7CisgICAgICBlc2FjCisgICAgZG9uZQorCisgICAgZm9yIGZpbGUgaW4gJHN0YXRpY2xpYnM7IGRvCisgICAgICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKKyAgICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKworICAgICAgIyBTZXQgdXAgdGhlIHJhbmxpYiBwYXJhbWV0ZXJzLgorICAgICAgb2xkbGliPSIkZGVzdGRpci8kbmFtZSIKKworICAgICAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgXCRmaWxlIFwkb2xkbGliIiAnZXhpdCAkPycKKworICAgICAgaWYgdGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRvbGRfc3RyaXBsaWIiOyB0aGVuCisJZnVuY19zaG93X2V2YWwgIiRvbGRfc3RyaXBsaWIgJG9sZGxpYiIgJ2V4aXQgJD8nCisgICAgICBmaQorCisgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCisgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9wb3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycKKyAgICBkb25lCisKKyAgICB0ZXN0IC1uICIkZnV0dXJlX2xpYmRpcnMiICYmIFwKKyAgICAgIGZ1bmNfd2FybmluZyAicmVtZW1iZXIgdG8gcnVuIFxgJHByb2duYW1lIC0tZmluaXNoJGZ1dHVyZV9saWJkaXJzJyIKKworICAgIGlmIHRlc3QgLW4gIiRjdXJyZW50X2xpYmRpcnMiOyB0aGVuCisgICAgICAjIE1heWJlIGp1c3QgZG8gYSBkcnkgcnVuLgorICAgICAgJG9wdF9kcnlfcnVuICYmIGN1cnJlbnRfbGliZGlycz0iIC1uJGN1cnJlbnRfbGliZGlycyIKKyAgICAgIGV4ZWNfY21kPSckU0hFTEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tZmluaXNoJGN1cnJlbnRfbGliZGlycycKKyAgICBlbHNlCisgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyAgICBmaQorfQorCit0ZXN0ICIkbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQorCisKKyMgZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmlnaW5hdG9yIHBpY19wCisjIEV4dHJhY3Qgc3ltYm9scyBmcm9tIGRscHJlZmlsZXMgYW5kIGNyZWF0ZSAke291dHB1dG5hbWV9Uy5vIHdpdGgKKyMgYSBkbHByZW9wZW4gc3ltYm9sIHRhYmxlLgorZnVuY19nZW5lcmF0ZV9kbHN5bXMgKCkKK3sKKyAgICAkb3B0X2RlYnVnCisgICAgbXlfb3V0cHV0bmFtZT0iJDEiCisgICAgbXlfb3JpZ2luYXRvcj0iJDIiCisgICAgbXlfcGljX3A9IiR7My1ub30iCisgICAgbXlfcHJlZml4PWAkRUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2VkICdzJVteYS16QS1aMC05XSVfJWcnYAorICAgIG15X2Rsc3ltcz0KKworICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisgICAgICBpZiB0ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4gIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisJbXlfZGxzeW1zPSIke215X291dHB1dG5hbWV9Uy5jIgorICAgICAgZWxzZQorCWZ1bmNfZXJyb3IgIm5vdCBjb25maWd1cmVkIHRvIGV4dHJhY3QgZ2xvYmFsIHN5bWJvbHMgZnJvbSBkbHByZW9wZW5lZCBmaWxlcyIKKyAgICAgIGZpCisgICAgZmkKKworICAgIGlmIHRlc3QgLW4gIiRteV9kbHN5bXMiOyB0aGVuCisgICAgICBjYXNlICRteV9kbHN5bXMgaW4KKyAgICAgICIiKSA7OworICAgICAgKi5jKQorCSMgRGlzY292ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2YgdGhlIGRsZmlsZXMuCisJbmxpc3Q9IiRvdXRwdXRfb2JqZGlyLyR7bXlfb3V0cHV0bmFtZX0ubm0iCisKKwlmdW5jX3Nob3dfZXZhbCAiJFJNICRubGlzdCAke25saXN0fVMgJHtubGlzdH1UIgorCisJIyBQYXJzZSB0aGUgbmFtZSBsaXN0IGludG8gYSBzb3VyY2UgZmlsZS4KKwlmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisKKwkkb3B0X2RyeV9ydW4gfHwgJEVDSE8gPiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKKy8qICRteV9kbHN5bXMgLSBzeW1ib2wgcmVzb2x1dGlvbiB0YWJsZSBmb3IgXGAkbXlfb3V0cHV0bmFtZScgZGxzeW0gZW11bGF0aW9uLiAqLworLyogR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTiAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiBcIkNcIiB7CisjZW5kaWYKKworLyogRXh0ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGNvbXBpbGVyLiAqL1wKKyIKKworCWlmIHRlc3QgIiRkbHNlbGYiID0geWVzOyB0aGVuCisJICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJG91dHB1dCciCisKKwkgICRvcHRfZHJ5X3J1biB8fCBlY2hvICc6IEBQUk9HUkFNQCAnID4gIiRubGlzdCIKKworCSAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9iamVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgorCSAgcHJvZ2ZpbGVzPWAkRUNITyAiWCRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisJICBmb3IgcHJvZ2ZpbGUgaW4gJHByb2dmaWxlczsgZG8KKwkgICAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRwcm9nZmlsZSciCisJICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkTk0gJHByb2dmaWxlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKwkgIGRvbmUKKworCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICBldmFsICckRUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIkbmxpc3QiVCcKKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJworCSAgICB9CisJICBmaQorCisJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisJICAgICRvcHRfZHJ5X3J1biB8fCB7CisJICAgICAgZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkbmxpc3QiID4gIiRubGlzdCJUJworCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCisJICAgIH0KKwkgIGZpCisKKwkgICMgUHJlcGFyZSB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzCisJICBpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisJICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiCisJICAgICRvcHRfZHJ5X3J1biB8fCB7CisJICAgICAgJFJNICRleHBvcnRfc3ltYm9scworCSAgICAgIGV2YWwgIiR7U0VEfSAtbiAtZSAnL146IEBQUk9HUkFNQCAkL2QnIC1lICdzL14uKiBcKC4qXCkkL1wxL3AnICInPCAiJG5saXN0IiA+ICIkZXhwb3J0X3N5bWJvbHMiJworCSAgICAgIGNhc2UgJGhvc3QgaW4KKwkgICAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKKyAgICAgICAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworICAgICAgICAgICAgICAgIGV2YWwgJ2NhdCAiJGV4cG9ydF9zeW1ib2xzIiA+PiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKKwkgICAgICAgIDs7CisJICAgICAgZXNhYworCSAgICB9CisJICBlbHNlCisJICAgICRvcHRfZHJ5X3J1biB8fCB7CisJICAgICAgZXZhbCAiJHtTRUR9IC1lICdzL1woW10uWypeJF1cKS9cXFxcXDEvZycgLWUgJ3MvXi8gLycgLWUgJ3MvJC8kLyciJyA8ICIkZXhwb3J0X3N5bWJvbHMiID4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCInCisJICAgICAgZXZhbCAnJEdSRVAgLWYgIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJworCSAgICAgIGNhc2UgJGhvc3QgaW4KKwkgICAgICAgICpjeWd3aW4gfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisJICAgICAgICAgIGV2YWwgImVjaG8gRVhQT1JUUyAiJz4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCisJICAgICAgICAgIGV2YWwgJ2NhdCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKKwkgICAgICAgICAgOzsKKwkgICAgICBlc2FjCisJICAgIH0KKwkgIGZpCisJZmkKKworCWZvciBkbHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCisJICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9tIFxgJGRscHJlZmlsZSciCisJICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlIgorCSAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCSAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicKKwkgICAgZXZhbCAiJE5NICRkbHByZWZpbGUgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgorCSAgfQorCWRvbmUKKworCSRvcHRfZHJ5X3J1biB8fCB7CisJICAjIE1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0IGFuIGVtcHR5IGZpbGUuCisJICB0ZXN0IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0IgorCisJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgorCSAgICAkRUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIkbmxpc3QiVAorCSAgICAkTVYgIiRubGlzdCJUICIkbmxpc3QiCisJICBmaQorCisJICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgorCSAgaWYgJEdSRVAgLXYgIl46ICIgPCAiJG5saXN0IiB8CisJICAgICAgaWYgc29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJCXNvcnQgLWsgMworCSAgICAgIGVsc2UKKwkJc29ydCArMgorCSAgICAgIGZpIHwKKwkgICAgICB1bmlxID4gIiRubGlzdCJTOyB0aGVuCisJICAgIDoKKwkgIGVsc2UKKwkgICAgJEdSRVAgLXYgIl46ICIgPCAiJG5saXN0IiA+ICIkbmxpc3QiUworCSAgZmkKKworCSAgaWYgdGVzdCAtZiAiJG5saXN0IlM7IHRoZW4KKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyInCisJICBlbHNlCisJICAgICRFQ0hPICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKKwkgIGZpCisKKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorCisvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCit0eXBlZGVmIHN0cnVjdCB7CisgIGNvbnN0IGNoYXIgKm5hbWU7CisgIHZvaWQgKmFkZHJlc3M7Cit9IGx0X2Rsc3ltbGlzdDsKKyIKKwkgIGNhc2UgJGhvc3QgaW4KKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorCSAgICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKKy8qIERBVEEgaW1wb3J0cyBmcm9tIERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UKKyAgIHJ1bnRpbWUgcmVsb2NhdGlvbnMgYXJlIHBlcmZvcm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uCisgICBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8iCisJICAgIGx0X2Rsc3ltX2NvbnN0PSA7OworCSAgKm9zZjUqKQorCSAgICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorLyogVGhpcyBzeXN0ZW0gZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggcmVsb2NhdGlvbnMgaW4gY29uc3QgZGF0YSAqLyIKKwkgICAgbHRfZGxzeW1fY29uc3Q9IDs7CisJICAqKQorCSAgICBsdF9kbHN5bV9jb25zdD1jb25zdCA7OworCSAgZXNhYworCisJICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKK2V4dGVybiAkbHRfZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0CitsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW107CiskbHRfZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0CitsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQore1wKKyAgeyBcIiRteV9vcmlnaW5hdG9yXCIsICh2b2lkICopIDAgfSwiCisKKwkgIGNhc2UgJG5lZWRfbGliX3ByZWZpeCBpbgorCSAgbm8pCisJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiA8ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorCSAgICA7OworCSAgKikKKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKKwkgICAgOzsKKwkgIGVzYWMKKwkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorICB7MCwgKHZvaWQgKikgMH0KK307CisKKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxpbmtlciAqLworI2lmZGVmIEZSRUVCU0RfV09SS0FST1VORAorc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKKyAgcmV0dXJuIGx0XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHM7Cit9CisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWZcCisiCisJfSAjICEkb3B0X2RyeV9ydW4KKworCXBpY19mbGFnX2Zvcl9zeW10YWJsZT0KKwljYXNlICIkY29tcGlsZV9jb21tYW5kICIgaW4KKwkqIiAtc3RhdGljICIqKSA7OworCSopCisJICBjYXNlICRob3N0IGluCisJICAjIGNvbXBpbGluZyB0aGUgc3ltYm9sIHRhYmxlIGZpbGUgd2l0aCBwaWNfZmxhZyB3b3JrcyBhcm91bmQKKwkgICMgYSBGcmVlQlNEIGJ1ZyB0aGF0IGNhdXNlcyBwcm9ncmFtcyB0byBjcmFzaCB3aGVuIC1sbSBpcworCSAgIyBsaW5rZWQgYmVmb3JlIGFueSBvdGhlciBQSUMgb2JqZWN0LiAgQnV0IHdlIG11c3Qgbm90IHVzZQorCSAgIyBwaWNfZmxhZyB3aGVuIGxpbmtpbmcgd2l0aCAtc3RhdGljLiAgVGhlIHByb2JsZW0gZXhpc3RzIGluCisJICAjIEZyZWVCU0QgMi4yLjYgYW5kIGlzIGZpeGVkIGluIEZyZWVCU0QgMy4xLgorCSAgKi0qLWZyZWVic2QyKnwqLSotZnJlZWJzZDMuMCp8Ki0qLWZyZWVic2RlbGYzLjAqKQorCSAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWcgLURGUkVFQlNEX1dPUktBUk9VTkQiIDs7CisJICAqLSotaHB1eCopCisJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIgIDs7CisJICAqKQorCSAgICBpZiB0ZXN0ICJYJG15X3BpY19wIiAhPSBYbm87IHRoZW4KKwkgICAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWciCisJICAgIGZpCisJICAgIDs7CisJICBlc2FjCisJICA7OworCWVzYWMKKwlzeW10YWJfY2ZsYWdzPQorCWZvciBhcmcgaW4gJExUQ0ZMQUdTOyBkbworCSAgY2FzZSAkYXJnIGluCisJICAtcGllIHwgLWZwaWUgfCAtZlBJRSkgOzsKKwkgICopIHN5bXRhYl9jZmxhZ3M9IiRzeW10YWJfY2ZsYWdzICRhcmciIDs7CisJICBlc2FjCisJZG9uZQorCisJIyBOb3cgY29tcGlsZSB0aGUgZHluYW1pYyBzeW1ib2wgZmlsZS4KKwlmdW5jX3Nob3dfZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRMVENDJHN5bXRhYl9jZmxhZ3MgLWMkbm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zvcl9zeW10YWJsZSAiJG15X2Rsc3ltcyIpJyAnZXhpdCAkPycKKworCSMgQ2xlYW4gdXAgdGhlIGdlbmVyYXRlZCBmaWxlcy4KKwlmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiJG5saXN0IiAiJHtubGlzdH1TIiAiJHtubGlzdH1UIicKKworCSMgVHJhbnNmb3JtIHRoZSBzeW1ib2wgZmlsZSBpbnRvIHRoZSBjb3JyZWN0IG5hbWUuCisJc3ltZmlsZW9iaj0iJG91dHB1dF9vYmpkaXIvJHtteV9vdXRwdXRuYW1lfVMuJG9iamV4dCIKKwljYXNlICRob3N0IGluCisJKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisJICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYiOyB0aGVuCisJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKKwkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJgCisJICBlbHNlCisJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorCSAgZmkKKwkgIDs7CisJKikKKwkgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorCSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKwkgIDs7CisJZXNhYworCTs7CisgICAgICAqKQorCWZ1bmNfZmF0YWxfZXJyb3IgInVua25vd24gc3VmZml4IGZvciBcYCRteV9kbHN5bXMnIgorCTs7CisgICAgICBlc2FjCisgICAgZWxzZQorICAgICAgIyBXZSBrZWVwIGdvaW5nIGp1c3QgaW4gY2FzZSB0aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8KKyAgICAgICMgbHRfcHJlbG9hZGVkX3N5bWJvbHMuICBUaGUgbGlua2VyIHdpbGwgZmFpbCBpZiBnbG9iYWxfc3ltYm9sX3BpcGUKKyAgICAgICMgcmVhbGx5IHdhcyByZXF1aXJlZC4KKworICAgICAgIyBOdWxsaWZ5IHRoZSBzeW1ib2wgZmlsZS4KKyAgICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSJgCisgICAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSJgCisgICAgZmkKK30KKworIyBmdW5jX3dpbjMyX2xpYmlkIGFyZworIyByZXR1cm4gdGhlIGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcnCisjCisjIE5lZWQgYSBsb3Qgb2YgZ29vIHRvIGhhbmRsZSAqYm90aCogRExMcyBhbmQgaW1wb3J0IGxpYnMKKyMgSGFzIHRvIGJlIGEgc2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50CisjIHRoYXQgaXMgc3VwcGxpZWQgd2hlbiAkZmlsZV9tYWdpY19jb21tYW5kIGlzIGNhbGxlZC4KK2Z1bmNfd2luMzJfbGliaWQgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICB3aW4zMl9saWJpZF90eXBlPSJ1bmtub3duIgorICB3aW4zMl9maWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAorICBjYXNlICR3aW4zMl9maWxlcmVzIGluCisgICphclwgYXJjaGl2ZVwgaW1wb3J0XCBsaWJyYXJ5KikgIyBkZWZpbml0ZWx5IGltcG9ydAorICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKKyAgICA7OworICAqYXJcIGFyY2hpdmUqKSAjIGNvdWxkIGJlIGFuIGltcG9ydCwgb3Igc3RhdGljCisgICAgaWYgZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUgJzEwcScgMj4vZGV2L251bGwgfAorICAgICAgICRFR1JFUCAnZmlsZSBmb3JtYXQgcGUtaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JyA+L2Rldi9udWxsIDsgdGhlbgorICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4IC1BICQxIHwKKwkkU0VEIC1uIC1lICcKKwkgICAgMSwxMDB7CisJCS8gSSAveworCQkgICAgcywuKixpbXBvcnQsCisJCSAgICBwCisJCSAgICBxCisJCX0KKwkgICAgfSdgCisgICAgICBjYXNlICR3aW4zMl9ubXJlcyBpbgorICAgICAgaW1wb3J0KikgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCI7OworICAgICAgKikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIHN0YXRpYyI7OworICAgICAgZXNhYworICAgIGZpCisgICAgOzsKKyAgKkRMTCopCisgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IERMTCIKKyAgICA7OworICAqZXhlY3V0YWJsZSopICMgYnV0IHNoZWxsIHNjcmlwdHMgYXJlICJleGVjdXRhYmxlIiB0b28uLi4KKyAgICBjYXNlICR3aW4zMl9maWxlcmVzIGluCisgICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQorICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IERMTCIKKyAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisgIGVzYWMKKyAgJEVDSE8gIiR3aW4zMl9saWJpZF90eXBlIgorfQorCisKKworIyBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSBkaXIgb2xkbGliCitmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAoKQoreworICAgICRvcHRfZGVidWcKKyAgICBmX2V4X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAorICAgIGZfZXhfYW5fYXJfb2xkbGliPSIkMSIKKyAgICBmdW5jX3Nob3dfZXZhbCAiKGNkIFwkZl9leF9hbl9hcl9kaXIgJiYgJEFSIHggXCJcJGZfZXhfYW5fYXJfb2xkbGliXCIpIiAnZXhpdCAkPycKKyAgICBpZiAoJEFSIHQgIiRmX2V4X2FuX2FyX29sZGxpYiIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgorICAgICA6CisgICAgZWxzZQorICAgICAgZnVuY19mYXRhbF9lcnJvciAib2JqZWN0IG5hbWUgY29uZmxpY3RzIGluIGFyY2hpdmU6ICRmX2V4X2FuX2FyX2Rpci8kZl9leF9hbl9hcl9vbGRsaWIiCisgICAgZmkKK30KKworCisjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgorZnVuY19leHRyYWN0X2FyY2hpdmVzICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgIG15X2dlbnRvcD0iJDEiOyBzaGlmdAorICAgIG15X29sZGxpYnM9JHsxKyIkQCJ9CisgICAgbXlfb2xkb2Jqcz0iIgorICAgIG15X3hsaWI9IiIKKyAgICBteV94YWJzPSIiCisgICAgbXlfeGRpcj0iIgorCisgICAgZm9yIG15X3hsaWIgaW4gJG15X29sZGxpYnM7IGRvCisgICAgICAjIEV4dHJhY3QgdGhlIG9iamVjdHMuCisgICAgICBjYXNlICRteV94bGliIGluCisJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBteV94YWJzPSIkbXlfeGxpYiIgOzsKKwkqKSBteV94YWJzPWBwd2RgIi8kbXlfeGxpYiIgOzsKKyAgICAgIGVzYWMKKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRteV94bGliIgorICAgICAgbXlfeGxpYj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorICAgICAgbXlfeGxpYl91PSRteV94bGliCisgICAgICB3aGlsZSA6OyBkbworICAgICAgICBjYXNlICIgJGV4dHJhY3RlZF9hcmNoaXZlcyAiIGluCisJKiIgJG15X3hsaWJfdSAiKikKKwkgIGZ1bmNfYXJpdGggJGV4dHJhY3RlZF9zZXJpYWwgKyAxCisJICBleHRyYWN0ZWRfc2VyaWFsPSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgbXlfeGxpYl91PWx0JGV4dHJhY3RlZF9zZXJpYWwtJG15X3hsaWIgOzsKKwkqKSBicmVhayA7OworCWVzYWMKKyAgICAgIGRvbmUKKyAgICAgIGV4dHJhY3RlZF9hcmNoaXZlcz0iJGV4dHJhY3RlZF9hcmNoaXZlcyAkbXlfeGxpYl91IgorICAgICAgbXlfeGRpcj0iJG15X2dlbnRvcC8kbXlfeGxpYl91IgorCisgICAgICBmdW5jX21rZGlyX3AgIiRteV94ZGlyIgorCisgICAgICBjYXNlICRob3N0IGluCisgICAgICAqLWRhcndpbiopCisJZnVuY192ZXJib3NlICJFeHRyYWN0aW5nICRteV94YWJzIgorCSMgRG8gbm90IGJvdGhlciBkb2luZyBhbnl0aGluZyBpZiBqdXN0IGEgZHJ5IHJ1bgorCSRvcHRfZHJ5X3J1biB8fCB7CisJICBkYXJ3aW5fb3JpZ19kaXI9YHB3ZGAKKwkgIGNkICRteV94ZGlyIHx8IGV4aXQgJD8KKwkgIGRhcndpbl9hcmNoaXZlPSRteV94YWJzCisJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCisJICBkYXJ3aW5fYmFzZV9hcmNoaXZlPWBiYXNlbmFtZSAiJGRhcndpbl9hcmNoaXZlImAKKwkgIGRhcndpbl9hcmNoZXM9YCRMSVBPIC1pbmZvICIkZGFyd2luX2FyY2hpdmUiIDI+L2Rldi9udWxsIHwgJEdSRVAgQXJjaGl0ZWN0dXJlcyAyPi9kZXYvbnVsbCB8fCB0cnVlYAorCSAgaWYgdGVzdCAtbiAiJGRhcndpbl9hcmNoZXMiOyB0aGVuCisJICAgIGRhcndpbl9hcmNoZXM9YCRFQ0hPICIkZGFyd2luX2FyY2hlcyIgfCAkU0VEIC1lICdzLy4qYXJlOi8vJ2AKKwkgICAgZGFyd2luX2FyY2g9CisJICAgIGZ1bmNfdmVyYm9zZSAiJGRhcndpbl9iYXNlX2FyY2hpdmUgaGFzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgJGRhcndpbl9hcmNoZXMiCisJICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNoZXMgOyBkbworCSAgICAgIGZ1bmNfbWtkaXJfcCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKKwkgICAgICAkTElQTyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCisJICAgICAgY2QgInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCisJICAgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgImBwd2RgIiAiJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfSIKKwkgICAgICBjZCAiJGRhcndpbl9jdXJkaXIiCisJICAgICAgJFJNICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisJICAgIGRvbmUgIyAkZGFyd2luX2FyY2hlcworICAgICAgICAgICAgIyMgT2theSBub3cgd2UndmUgYSBidW5jaCBvZiB0aGluIG9iamVjdHMsIGdvdHRhIGZhdHRlbiB0aGVtIHVwIDopCisJICAgIGRhcndpbl9maWxlbGlzdD1gZmluZCB1bmZhdC0kJCAtdHlwZSBmIC1uYW1lIFwqLm8gLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICRTRUQgLWUgIiRiYXNlbmFtZSIgfCBzb3J0IC11YAorCSAgICBkYXJ3aW5fZmlsZT0KKwkgICAgZGFyd2luX2ZpbGVzPQorCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4gJGRhcndpbl9maWxlbGlzdDsgZG8KKwkgICAgICBkYXJ3aW5fZmlsZXM9YGZpbmQgdW5mYXQtJCQgLW5hbWUgJGRhcndpbl9maWxlIC1wcmludCB8ICROTDJTUGAKKwkgICAgICAkTElQTyAtY3JlYXRlIC1vdXRwdXQgIiRkYXJ3aW5fZmlsZSIgJGRhcndpbl9maWxlcworCSAgICBkb25lICMgJGRhcndpbl9maWxlbGlzdAorCSAgICAkUk0gLXJmIHVuZmF0LSQkCisJICAgIGNkICIkZGFyd2luX29yaWdfZGlyIgorCSAgZWxzZQorCSAgICBjZCAkZGFyd2luX29yaWdfZGlyCisJICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgorCSAgZmkgIyAkZGFyd2luX2FyY2hlcworCX0gIyAhJG9wdF9kcnlfcnVuCisJOzsKKyAgICAgICopCisgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgorCTs7CisgICAgICBlc2FjCisgICAgICBteV9vbGRvYmpzPSIkbXlfb2xkb2JqcyAiYGZpbmQgJG15X3hkaXIgLW5hbWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50IHwgJE5MMlNQYAorICAgIGRvbmUKKworICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQ9IiRteV9vbGRvYmpzIgorfQorCisKKworIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSBbYXJnPW5vXQorIworIyBFbWl0IHRoZSBmaXJzdCBwYXJ0IG9mIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCisjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uIGFzc29jaWF0ZWQgd2l0aAorIyBmdW5jX2VtaXRfd3JhcHBlcigpLCBiZWxvdy4KK2Z1bmNfZW1pdF93cmFwcGVyX3BhcnQxICgpCit7CisJZnVuY19lbWl0X3dyYXBwZXJfcGFydDFfYXJnMT1ubworCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KKwkgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9JDEKKwlmaQorCisJJEVDSE8gIlwKKyMhICRTSEVMTAorCisjICRvdXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKKyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorIworIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKKyMgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBhcmUgaW5zdGFsbGVkLgorIworIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKyMgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgorCisjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorWHNlZD0nJHtTRUR9IC1lIDFzL15YLy8nCitzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisKKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBlbXVsYXRlIHNoCisgIE5VTExDTUQ9OgorICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAorICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorICBhbGlhcyAtZyAnXCR7MStcIlwkQFwifSc9J1wiXCRAXCInCisgIHNldG9wdCBOT19HTE9CX1NVQlNUCitlbHNlCisgIGNhc2UgXGAoc2V0IC1vKSAyPi9kZXYvbnVsbFxgIGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMKK2ZpCitCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZvciBUcnU2NAorRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAorCisjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorIyBpZiBDRFBBVEggaXMgc2V0LgorKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorCityZWxpbmtfY29tbWFuZD1cIiRyZWxpbmtfY29tbWFuZFwiCisKKyMgVGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBkZXRlcm1pbmVzIG91ciBvcGVyYXRpb24gbW9kZS4KK2lmIHRlc3QgXCJcJGxpYnRvb2xfaW5zdGFsbF9tYWdpY1wiID0gXCIkbWFnaWNcIjsgdGhlbgorICAjIGluc3RhbGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKKyAgZ2VuZXJhdGVkX2J5X2xpYnRvb2xfdmVyc2lvbj0nJG1hY3JvX3ZlcnNpb24nCisgIG5vdGluc3RfZGVwbGlicz0nJG5vdGluc3RfZGVwbGlicycKK2Vsc2UKKyAgIyBXaGVuIHdlIGFyZSBzb3VyY2VkIGluIGV4ZWN1dGUgbW9kZSwgXCRmaWxlIGFuZCBcJEVDSE8gYXJlIGFscmVhZHkgc2V0LgorICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCisgICAgRUNITz1cIiRxZWNob1wiCisgICAgZmlsZT1cIlwkMFwiCisgICAgIyBNYWtlIHN1cmUgZWNobyB3b3Jrcy4KKyAgICBpZiB0ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCisgICAgICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKyAgICAgIHNoaWZ0CisgICAgZWxpZiB0ZXN0IFwiWFxgeyBcJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbFxgXCIgPSAnWFx0JzsgdGhlbgorICAgICAgIyBZaXBwZWUsIFwkRUNITyB3b3JrcyEKKyAgICAgIDoKKyAgICBlbHNlCisgICAgICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwsIGFuZCB0aGVuIG1heWJlIFwkRUNITyB3aWxsIHdvcmsuCisgICAgICBleGVjICRTSEVMTCBcIlwkMFwiIC0tbm8tcmVleGVjIFwkezErXCJcJEBcIn0KKyAgICBmaQorICBmaVwKKyIKKwkkRUNITyAiXAorCisgICMgRmluZCB0aGUgZGlyZWN0b3J5IHRoYXQgdGhpcyBzY3JpcHQgbGl2ZXMgaW4uCisgIHRoaXNkaXI9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qJCUlJ1xgCisgIHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBcInhcJGZpbGVcIiAmJiB0aGlzZGlyPS4KKworICAjIEZvbGxvdyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rpci4KKyAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xgCisgIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KKyAgICBkZXN0ZGlyPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJS9bXi9dKlwkJSUnXGAKKworICAgICMgSWYgdGhlcmUgd2FzIGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhpc2Rpci4KKyAgICBpZiB0ZXN0IFwieFwkZGVzdGRpclwiICE9IFwieFwkZmlsZVwiOyB0aGVuCisgICAgICBjYXNlIFwiXCRkZXN0ZGlyXCIgaW4KKyAgICAgIFtcXFxcL10qIHwgW0EtWmEtel06W1xcXFwvXSopIHRoaXNkaXI9XCJcJGRlc3RkaXJcIiA7OworICAgICAgKikgdGhpc2Rpcj1cIlwkdGhpc2Rpci9cJGRlc3RkaXJcIiA7OworICAgICAgZXNhYworICAgIGZpCisKKyAgICBmaWxlPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJV4uKi8lJSdcYAorICAgIGZpbGU9XGBscyAtbGQgXCJcJHRoaXNkaXIvXCRmaWxlXCIgfCAke1NFRH0gLW4gJ3MvLiotPiAvL3AnXGAKKyAgZG9uZQorIgorfQorIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxCisKKyMgZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgW2FyZz1ub10KKyMKKyMgRW1pdCB0aGUgc2Vjb25kIHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKyMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24gYXNzb2NpYXRlZCB3aXRoCisjIGZ1bmNfZW1pdF93cmFwcGVyKCksIGJlbG93LgorZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgKCkKK3sKKwlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPW5vCisJaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorCSAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMT0kMQorCWZpCisKKwkkRUNITyAiXAorCisgICMgVXN1YWxseSAnbm8nLCBleGNlcHQgb24gY3lnd2luL21pbmd3IHdoZW4gZW1iZWRkZWQgaW50bworICAjIHRoZSBjd3JhcHBlci4KKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzEKKyAgaWYgdGVzdCBcIlwkV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVJcIiA9IFwieWVzXCI7IHRoZW4KKyAgICAjIHNwZWNpYWwgY2FzZSBmb3IgJy4nCisgICAgaWYgdGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRoZW4KKyAgICAgIHRoaXNkaXI9XGBwd2RcYAorICAgIGZpCisgICAgIyByZW1vdmUgLmxpYnMgZnJvbSB0aGlzZGlyCisgICAgY2FzZSBcIlwkdGhpc2RpclwiIGluCisgICAgKltcXFxcL10kb2JqZGlyICkgdGhpc2Rpcj1cYFwkRUNITyBcIlhcJHRoaXNkaXJcIiB8IFwkWHNlZCAtZSAncyVbXFxcXC9dW15cXFxcL10qJCUlJ1xgIDs7CisgICAgJG9iamRpciApICAgdGhpc2Rpcj0uIDs7CisgICAgZXNhYworICBmaQorCisgICMgVHJ5IHRvIGdldCB0aGUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUuCisgIGFic2Rpcj1cYGNkIFwiXCR0aGlzZGlyXCIgJiYgcHdkXGAKKyAgdGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKKyIKKworCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisJICAkRUNITyAiXAorICBwcm9ncmFtPWx0LSckb3V0cHV0bmFtZSckZXhlZXh0CisgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisKKyAgaWYgdGVzdCAhIC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIHx8CisgICAgIHsgZmlsZT1cYGxzIC0xZHQgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCJcJHByb2dkaXIvLi4vXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfCAke1NFRH0gMXFcYDsgXFwKKyAgICAgICB0ZXN0IFwiWFwkZmlsZVwiICE9IFwiWFwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfTsgdGhlbgorCisgICAgZmlsZT1cIlwkXCQtXCRwcm9ncmFtXCIKKworICAgIGlmIHRlc3QgISAtZCBcIlwkcHJvZ2RpclwiOyB0aGVuCisgICAgICAkTUtESVIgXCJcJHByb2dkaXJcIgorICAgIGVsc2UKKyAgICAgICRSTSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgorICAgIGZpIgorCisJICAkRUNITyAiXAorCisgICAgIyByZWxpbmsgZXhlY3V0YWJsZSBpZiBuZWNlc3NhcnkKKyAgICBpZiB0ZXN0IC1uIFwiXCRyZWxpbmtfY29tbWFuZFwiOyB0aGVuCisgICAgICBpZiByZWxpbmtfY29tbWFuZF9vdXRwdXQ9XGBldmFsIFwkcmVsaW5rX2NvbW1hbmQgMj4mMVxgOyB0aGVuIDoKKyAgICAgIGVsc2UKKwkkRUNITyBcIlwkcmVsaW5rX2NvbW1hbmRfb3V0cHV0XCIgPiYyCisJJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisJZXhpdCAxCisgICAgICBmaQorICAgIGZpCisKKyAgICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfHwKKyAgICB7ICRSTSBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsKKyAgICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfQorICAgICRSTSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgorICBmaSIKKwllbHNlCisJICAkRUNITyAiXAorICBwcm9ncmFtPSckb3V0cHV0bmFtZScKKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKKyIKKwlmaQorCisJJEVDSE8gIlwKKworICBpZiB0ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB0aGVuIgorCisJIyBFeHBvcnQgb3VyIHNobGlicGF0aF92YXIgaWYgd2UgaGF2ZSBvbmUuCisJaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgorCSAgJEVDSE8gIlwKKyAgICAjIEFkZCBvdXIgb3duIGxpYnJhcnkgcGF0aCB0byAkc2hsaWJwYXRoX3ZhcgorICAgICRzaGxpYnBhdGhfdmFyPVwiJHRlbXBfcnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIKKworICAgICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3BlIHdpdGggY29sb24tdGVybWluYXRlZCAkc2hsaWJwYXRoX3ZhcgorICAgICMgVGhlIHNlY29uZCBjb2xvbiBpcyBhIHdvcmthcm91bmQgZm9yIGEgYnVnIGluIEJlT1MgUjQgc2VkCisgICAgJHNobGlicGF0aF92YXI9XGBcJEVDSE8gXCJYXCQkc2hsaWJwYXRoX3ZhclwiIHwgXCRYc2VkIC1lICdzLzo6KlwkLy8nXGAKKworICAgIGV4cG9ydCAkc2hsaWJwYXRoX3ZhcgorIgorCWZpCisKKwkjIGZpeHVwIHRoZSBkbGwgc2VhcmNocGF0aCBpZiB3ZSBuZWVkIHRvLgorCWlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgorCSAgJEVDSE8gIlwKKyAgICAjIEFkZCB0aGUgZGxsIHNlYXJjaCBwYXRoIGNvbXBvbmVudHMgdG8gdGhlIGV4ZWN1dGFibGUgUEFUSAorICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICisiCisJZmkKKworCSRFQ0hPICJcCisgICAgaWYgdGVzdCBcIlwkbGlidG9vbF9leGVjdXRlX21hZ2ljXCIgIT0gXCIkbWFnaWNcIjsgdGhlbgorICAgICAgIyBSdW4gdGhlIGFjdHVhbCBwcm9ncmFtIHdpdGggb3VyIGFyZ3VtZW50cy4KKyIKKwljYXNlICRob3N0IGluCisJIyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBwbGFpbiB3aW5kb3dzCisJKi0qLW1pbmd3IHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKKwkgICRFQ0hPICJcCisgICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKyIKKwkgIDs7CisKKwkqKQorCSAgJEVDSE8gIlwKKyAgICAgIGV4ZWMgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQorIgorCSAgOzsKKwllc2FjCisJJEVDSE8gIlwKKyAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKKyAgICAgIGV4aXQgMQorICAgIGZpCisgIGVsc2UKKyAgICAjIFRoZSBwcm9ncmFtIGRvZXNuJ3QgZXhpc3QuCisgICAgXCRFQ0hPIFwiXCQwOiBlcnJvcjogXFxcYFwkcHJvZ2Rpci9cJHByb2dyYW0nIGRvZXMgbm90IGV4aXN0XCIgMT4mMgorICAgIFwkRUNITyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dyYW0uXCIgMT4mMgorICAgICRFQ0hPIFwiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiIDE+JjIKKyAgICBleGl0IDEKKyAgZmkKK2ZpXAorIgorfQorIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyCisKKworIyBmdW5jX2VtaXRfd3JhcHBlciBbYXJnPW5vXQorIworIyBFbWl0IGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCisjIERvbid0IGRpcmVjdGx5IG9wZW4gYSBmaWxlIGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8KKyMgaW5jb3Jwb3JhdGUgdGhlIHNjcmlwdCBjb250ZW50cyB3aXRoaW4gYSBjeWd3aW4vbWluZ3cKKyMgd3JhcHBlciBleGVjdXRhYmxlLiAgTXVzdCBPTkxZIGJlIGNhbGxlZCBmcm9tIHdpdGhpbgorIyBmdW5jX21vZGVfbGluayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGVzCisjIHNldCB0aGVyZWluLgorIworIyBBUkcgaXMgdGhlIHZhbHVlIHRoYXQgdGhlIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSCisjIHZhcmlhYmxlIHdpbGwgdGFrZS4gIElmICd5ZXMnLCB0aGVuIHRoZSBlbWl0dGVkIHNjcmlwdAorIyB3aWxsIGFzc3VtZSB0aGF0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggaXQgaXMgc3RvcmVkIGlzCisjIHRoZSAkb2JqZGlyIGRpcmVjdG9yeS4gIFRoaXMgaXMgYSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKKyMgYmVoYXZpb3IuCitmdW5jX2VtaXRfd3JhcHBlciAoKQoreworCWZ1bmNfZW1pdF93cmFwcGVyX2FyZzE9bm8KKwlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCisJICBmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPSQxCisJZmkKKworCSMgc3BsaXQgdGhpcyB1cCBzbyB0aGF0IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKKwkjIGNhbiBjYWxsIGVhY2ggcGFydCBpbmRlcGVuZGVudGx5LgorCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxICIke2Z1bmNfZW1pdF93cmFwcGVyX2FyZzF9IgorCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyICIke2Z1bmNfZW1pdF93cmFwcGVyX2FyZzF9IgorfQorCisKKyMgZnVuY190b19ob3N0X3BhdGggYXJnCisjCisjIENvbnZlcnQgcGF0aHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdpdGggYnVpbGQgdG9vbHMuCisjIEludGVuZGVkIGZvciB1c2Ugd2l0aCAibmF0aXZlIiBtaW5ndyAod2hlcmUgbGlidG9vbCBpdHNlbGYKKyMgaXMgcnVubmluZyB1bmRlciB0aGUgbXN5cyBzaGVsbCksIG9yIGluIHRoZSBmb2xsb3dpbmcgY3Jvc3MtCisjIGJ1aWxkIGVudmlyb25tZW50czoKKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0CisjICAgIG1pbmd3IChtc3lzKSAgICBtaW5ndyAgW2UuZy4gbmF0aXZlXQorIyAgICBjeWd3aW4gICAgICAgICAgbWluZ3cKKyMgICAgKm5peCArIHdpbmUgICAgIG1pbmd3CisjIHdoZXJlIHdpbmUgaXMgZXF1aXBwZWQgd2l0aCB0aGUgYHdpbmVwYXRoJyBleGVjdXRhYmxlLgorIyBJbiB0aGUgbmF0aXZlIG1pbmd3IGNhc2UsIHRoZSAobXN5cykgc2hlbGwgYXV0b21hdGljYWxseQorIyBjb252ZXJ0cyBwYXRocyBmb3IgYW55IG5vbi1tc3lzIGFwcGxpY2F0aW9ucyBpdCBsYXVuY2hlcywKKyMgYnV0IHRoYXQgZmFjaWxpdHkgaXNuJ3QgYXZhaWxhYmxlIGZyb20gaW5zaWRlIHRoZSBjd3JhcHBlci4KKyMgU2ltaWxhciBhY2NvbW1vZGF0aW9ucyBhcmUgbmVjZXNzYXJ5IGZvciAkaG9zdCBtaW5ndyBhbmQKKyMgJGJ1aWxkIGN5Z3dpbi4gIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBkb2VzIG5vIGhhcm0gZm9yIG90aGVyCisjICRob3N0LyRidWlsZCBjb21iaW5hdGlvbnMgbm90IGxpc3RlZCBhYm92ZS4KKyMKKyMgQVJHIGlzIHRoZSBwYXRoIChvbiAkYnVpbGQpIHRoYXQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0bworIyB0aGUgcHJvcGVyIHJlcHJlc2VudGF0aW9uIGZvciAkaG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQKKyMgaW4gJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KK2Z1bmNfdG9faG9zdF9wYXRoICgpCit7CisgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KKyAgICBjYXNlICRob3N0IGluCisgICAgICAqbWluZ3cqICkKKyAgICAgICAgbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeT0nc3xcXFxcKnxcXHxnO3N8L3xcXHxnO3N8XFx8XFxcXHxnJworICAgICAgICBjYXNlICRidWlsZCBpbgorICAgICAgICAgICptaW5ndyogKSAjIGFjdHVhbGx5LCBtc3lzCisgICAgICAgICAgICAjIGF3a3dhcmQ6IGNtZCBhcHBlbmRzIHNwYWNlcyB0byByZXN1bHQKKyAgICAgICAgICAgIGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXM9InMvWyBdKlwkLy8iCisgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWAoIGNtZCAvL2MgZWNobyAiJDEiIHxcCisgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfc3RyaXBfdHJhaWxpbmdfc3BhY2VzIiApIDI+L2Rldi9udWxsIHx8IGVjaG8gIiJgCisgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAorICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisgICAgICAgICAgICA7OworICAgICAgICAgICpjeWd3aW4qICkKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YGN5Z3BhdGggLXcgIiQxImAKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCisgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKyAgICAgICAgICAgIDs7CisgICAgICAgICAgKiApCisgICAgICAgICAgICAjIFVuZm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvCisgICAgICAgICAgICAjIGVycm9yIGNvZGUsIHNvIHdlIGFyZSBmb3JjZWQgdG8gY2hlY2sgdGhlIGNvbnRlbnRzIG9mCisgICAgICAgICAgICAjIHN0ZG91dC4gT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoZSBjb21tYW5kIGlzIG5vdAorICAgICAgICAgICAgIyBmb3VuZCwgdGhlIHNoZWxsIHdpbGwgc2V0IGFuIGV4aXQgY29kZSBvZiAxMjcgYW5kIHByaW50CisgICAgICAgICAgICAjICphbiBlcnJvciBtZXNzYWdlKiB0byBzdGRvdXQuIFNvIHdlIG11c3QgY2hlY2sgZm9yIGJvdGgKKyAgICAgICAgICAgICMgZXJyb3IgY29kZSBvZiB6ZXJvIEFORCBub24tZW1wdHkgc3Rkb3V0LCB3aGljaCBleHBsYWlucworICAgICAgICAgICAgIyB0aGUgb2RkIGNvbnN0cnVjdGlvbjoKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YHdpbmVwYXRoIC13ICIkMSIgMj4vZGV2L251bGxgCisgICAgICAgICAgICBpZiB0ZXN0ICIkPyIgLWVxIDAgJiYgdGVzdCAtbiAiJHtmdW5jX3RvX2hvc3RfcGF0aF90bXAxfSI7IHRoZW4KKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgfFwKKyAgICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICMgQWxsb3cgd2FybmluZyBiZWxvdy4KKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIiCisgICAgICAgICAgICBmaQorICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRoZW4KKyAgICAgICAgICBmdW5jX2Vycm9yICJDb3VsZCBub3QgZGV0ZXJtaW5lIGhvc3QgcGF0aCBjb3JyZXNwb25kaW5nIHRvIgorICAgICAgICAgIGZ1bmNfZXJyb3IgIiAgJyQxJyIKKyAgICAgICAgICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKKyAgICAgICAgICAjIEZhbGxiYWNrOgorICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisgICAgICAgIGZpCisgICAgICAgIDs7CisgICAgZXNhYworICBmaQorfQorIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRoCisKKyMgZnVuY190b19ob3N0X3BhdGhsaXN0IGFyZworIworIyBDb252ZXJ0IHBhdGhsaXN0cyB0byBob3N0IGZvcm1hdCB3aGVuIHVzZWQgd2l0aCBidWlsZCB0b29scy4KKyMgU2VlIGZ1bmNfdG9faG9zdF9wYXRoKCksIGFib3ZlLiBUaGlzIGZ1bmN0aW9uIHN1cHBvcnRzIHRoZQorIyBmb2xsb3dpbmcgJGJ1aWxkLyRob3N0IGNvbWJpbmF0aW9ucyAoYnV0IGRvZXMgbm8gaGFybSBmb3IKKyMgY29tYmluYXRpb25zIG5vdCBsaXN0ZWQgaGVyZSk6CisjICAgICRidWlsZCAgICAgICAgICAkaG9zdAorIyAgICBtaW5ndyAobXN5cykgICAgbWluZ3cgIFtlLmcuIG5hdGl2ZV0KKyMgICAgY3lnd2luICAgICAgICAgIG1pbmd3CisjICAgICpuaXggKyB3aW5lICAgICBtaW5ndworIworIyBQYXRoIHNlcGFyYXRvcnMgYXJlIGFsc28gY29udmVydGVkIGZyb20gJGJ1aWxkIGZvcm1hdCB0bworIyAkaG9zdCBmb3JtYXQuIElmIEFSRyBiZWdpbnMgb3IgZW5kcyB3aXRoIGEgcGF0aCBzZXBhcmF0b3IKKyMgY2hhcmFjdGVyLCBpdCBpcyBwcmVzZXJ2ZWQgKGJ1dCBjb252ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0KQorIyBvbiBvdXRwdXQuCisjCisjIEFSRyBpcyBhIHBhdGhsaXN0IChvbiAkYnVpbGQpIHRoYXQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0bworIyB0aGUgcHJvcGVyIHJlcHJlc2VudGF0aW9uIG9uICRob3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAorIyBpbiAkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdC4KK2Z1bmNfdG9faG9zdF9wYXRobGlzdCAoKQoreworICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICptaW5ndyogKQorICAgICAgICBsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxcfGc7c3xcXHxcXFxcfGcnCisgICAgICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbQorICAgICAgICAjIEFSRy4gbXN5cyBiZWhhdmlvciBpcyBpbmNvbnNpc3RlbnQgaGVyZSwgY3lncGF0aCB0dXJucyB0aGVtCisgICAgICAgICMgaW50byAnLjsnIGFuZCAnOy4nLCBhbmQgd2luZXBhdGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHkuCisgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPSIkMSIKKyAgICAgICAgIyBPbmNlIHNldCBmb3IgdGhpcyBjYWxsLCB0aGlzIHZhcmlhYmxlIHNob3VsZCBub3QgYmUKKyAgICAgICAgIyByZWFzc2lnbmVkLiBJdCBpcyB1c2VkIGluIHRoYSBmYWxsYmFjayBjYXNlLgorICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMT1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAorICAgICAgICAgICRTRUQgLWUgJ3N8XjoqfHwnIC1lICdzfDoqJHx8J2AKKyAgICAgICAgY2FzZSAkYnVpbGQgaW4KKyAgICAgICAgICAqbWluZ3cqICkgIyBBY3R1YWxseSwgbXN5cy4KKyAgICAgICAgICAgICMgQXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRvIHJlc3VsdC4KKyAgICAgICAgICAgIGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXM9InMvWyBdKlwkLy8iCisgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj1gKCBjbWQgLy9jIGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgfFwKKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXMiICkgMj4vZGV2L251bGwgfHwgZWNobyAiImAKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorICAgICAgICAgICAgOzsKKyAgICAgICAgICAqY3lnd2luKiApCisgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj1gY3lncGF0aCAtdyAtcCAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxImAKKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorICAgICAgICAgICAgOzsKKyAgICAgICAgICAqICkKKyAgICAgICAgICAgICMgdW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lc24ndCBjb252ZXJ0IHBhdGhsaXN0cworICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iIgorICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUz0kSUZTCisgICAgICAgICAgICBJRlM9OgorICAgICAgICAgICAgZm9yIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSA7IGRvCisgICAgICAgICAgICAgIElGUz0kZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUworICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0X3BhdGhsaXN0X2YiIDsgdGhlbgorICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoICIkZnVuY190b19ob3N0X3BhdGhsaXN0X2YiCisgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0aGVuCisgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0OyRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgIElGUz06CisgICAgICAgICAgICBkb25lCisgICAgICAgICAgICBJRlM9JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlMKKyAgICAgICAgICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiIDsgdGhlbgorICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGhvc3QgcGF0aChzKSBjb3JyZXNwb25kaW5nIHRvIgorICAgICAgICAgIGZ1bmNfZXJyb3IgIiAgJyQxJyIKKyAgICAgICAgICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKKyAgICAgICAgICAjIEZhbGxiYWNrLiBUaGlzIG1heSBicmVhayBpZiAkMSBjb250YWlucyBET1Mtc3R5bGUgZHJpdmUKKyAgICAgICAgICAjIHNwZWNpZmljYXRpb25zLiBUaGUgZml4IGlzIG5vdCB0byBjb21wbGljYXRlIHRoZSBleHByZXNzaW9uCisgICAgICAgICAgIyBiZWxvdywgYnV0IGZvciB0aGUgdXNlciB0byBwcm92aWRlIGEgd29ya2luZyB3aW5lIGluc3RhbGxhdGlvbgorICAgICAgICAgICMgd2l0aCB3aW5lcGF0aCBzbyB0aGF0IHBhdGggdHJhbnNsYXRpb24gaW4gdGhlIGNyb3NzLXRvLW1pbmd3CisgICAgICAgICAgIyBjYXNlIHdvcmtzIHByb3Blcmx5LgorICAgICAgICAgIGx0X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zPSJzfDp8O3xnIgorICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgfFwKKyAgICAgICAgICAgICRTRUQgLWUgIiRsdF9yZXBsYWNlX3BhdGhzZXBfbml4X3RvX2RvcyJgCisgICAgICAgIGZpCisgICAgICAgICMgTm93LCBhZGQgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9ycyBiYWNrCisgICAgICAgIGNhc2UgIiQxIiBpbgorICAgICAgICAgIDoqICkgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iOyRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IgorICAgICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICBjYXNlICIkMSIgaW4KKyAgICAgICAgICAqOiApIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0OyIKKyAgICAgICAgICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgOzsKKyAgICBlc2FjCisgIGZpCit9CisjIGVuZDogZnVuY190b19ob3N0X3BhdGhsaXN0CisKKyMgZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYworIyBlbWl0IHRoZSBzb3VyY2UgY29kZSBmb3IgYSB3cmFwcGVyIGV4ZWN1dGFibGUgb24gc3Rkb3V0CisjIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gZnVuY19tb2RlX2xpbmsgYmVjYXVzZQorIyBpdCBkZXBlbmRzIG9uIGEgbnVtYmVyIG9mIHZhcmlhYmxlIHNldCB0aGVyZWluLgorZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYyAoKQoreworCWNhdCA8PEVPRgorCisvKiAkY3dyYXBwZXJzb3VyY2UgLSB0ZW1wb3Jhcnkgd3JhcHBlciBleGVjdXRhYmxlIGZvciAkb2JqZGlyLyRvdXRwdXRuYW1lCisgICBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCisKKyAgIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAorICAgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBhcmUgaW5zdGFsbGVkLgorCisgICBUaGlzIHdyYXBwZXIgZXhlY3V0YWJsZSBzaG91bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBidWlsZCBkaXJlY3RvcnkuCisgICBJZiBpdCBpcywgaXQgd2lsbCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCisKKyAgIEN1cnJlbnRseSwgaXQgc2ltcGx5IGV4ZWNzIHRoZSB3cmFwcGVyICpzY3JpcHQqICIkU0hFTEwgJG91dHB1dCIsCisgICBidXQgY291bGQgZXZlbnR1YWxseSBhYnNvcmIgYWxsIG9mIHRoZSBzY3JpcHRzIGZ1bmN0aW9uYWxpdHkgYW5kCisgICBleGVjICRvYmpkaXIvJG91dHB1dG5hbWUgZGlyZWN0bHkuCisqLworRU9GCisJICAgIGNhdCA8PCJFT0YiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpZmRlZiBfTVNDX1ZFUgorIyBpbmNsdWRlIDxkaXJlY3QuaD4KKyMgaW5jbHVkZSA8cHJvY2Vzcy5oPgorIyBpbmNsdWRlIDxpby5oPgorIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQorI2Vsc2UKKyMgaW5jbHVkZSA8dW5pc3RkLmg+CisjIGluY2x1ZGUgPHN0ZGludC5oPgorIyBpZmRlZiBfX0NZR1dJTl9fCisjICBpbmNsdWRlIDxpby5oPgorIyAgZGVmaW5lIEhBVkVfU0VURU5WCisjICBpZmRlZiBfX1NUUklDVF9BTlNJX18KK2NoYXIgKnJlYWxwYXRoIChjb25zdCBjaGFyICosIGNoYXIgKik7CitpbnQgcHV0ZW52IChjaGFyICopOworaW50IHNldGVudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGludCk7CisjICBlbmRpZgorIyBlbmRpZgorI2VuZGlmCisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKworI2lmIGRlZmluZWQoUEFUSF9NQVgpCisjIGRlZmluZSBMVF9QQVRITUFYIFBBVEhfTUFYCisjZWxpZiBkZWZpbmVkKE1BWFBBVEhMRU4pCisjIGRlZmluZSBMVF9QQVRITUFYIE1BWFBBVEhMRU4KKyNlbHNlCisjIGRlZmluZSBMVF9QQVRITUFYIDEwMjQKKyNlbmRpZgorCisjaWZuZGVmIFNfSVhPVEgKKyMgZGVmaW5lIFNfSVhPVEggMAorI2VuZGlmCisjaWZuZGVmIFNfSVhHUlAKKyMgZGVmaW5lIFNfSVhHUlAgMAorI2VuZGlmCisKKyNpZmRlZiBfTVNDX1ZFUgorIyBkZWZpbmUgU19JWFVTUiBfU19JRVhFQworIyBkZWZpbmUgc3RhdCBfc3RhdAorIyBpZm5kZWYgX0lOVFBUUl9UX0RFRklORUQKKyMgIGRlZmluZSBpbnRwdHJfdCBpbnQKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZuZGVmIERJUl9TRVBBUkFUT1IKKyMgZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8nCisjIGRlZmluZSBQQVRIX1NFUEFSQVRPUiAnOicKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX01TRE9TX18pIHx8IGRlZmluZWQgKF9fREpHUFBfXykgfHwgXAorICBkZWZpbmVkIChfX09TMl9fKQorIyBkZWZpbmUgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0KKyMgZGVmaW5lIEZPUEVOX1dCICJ3YiIKKyMgaWZuZGVmIERJUl9TRVBBUkFUT1JfMgorIyAgZGVmaW5lIERJUl9TRVBBUkFUT1JfMiAnXFwnCisjIGVuZGlmCisjIGlmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCisjICBkZWZpbmUgUEFUSF9TRVBBUkFUT1JfMiAnOycKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZuZGVmIERJUl9TRVBBUkFUT1JfMgorIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gRElSX1NFUEFSQVRPUikKKyNlbHNlIC8qIERJUl9TRVBBUkFUT1JfMiAqLworIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkgXAorCSgoKGNoKSA9PSBESVJfU0VQQVJBVE9SKSB8fCAoKGNoKSA9PSBESVJfU0VQQVJBVE9SXzIpKQorI2VuZGlmIC8qIERJUl9TRVBBUkFUT1JfMiAqLworCisjaWZuZGVmIFBBVEhfU0VQQVJBVE9SXzIKKyMgZGVmaW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUikKKyNlbHNlIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KKyMgZGVmaW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUl8yKQorI2VuZGlmIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KKworI2lmZGVmIF9fQ1lHV0lOX18KKyMgZGVmaW5lIEZPUEVOX1dCICJ3YiIKKyNlbmRpZgorCisjaWZuZGVmIEZPUEVOX1dCCisjIGRlZmluZSBGT1BFTl9XQiAidyIKKyNlbmRpZgorI2lmbmRlZiBfT19CSU5BUlkKKyMgZGVmaW5lIF9PX0JJTkFSWSAwCisjZW5kaWYKKworI2RlZmluZSBYTUFMTE9DKHR5cGUsIG51bSkgICAgICAoKHR5cGUgKikgeG1hbGxvYyAoKG51bSkgKiBzaXplb2YodHlwZSkpKQorI2RlZmluZSBYRlJFRShzdGFsZSkgZG8geyBcCisgIGlmIChzdGFsZSkgeyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCit9IHdoaWxlICgwKQorCisjdW5kZWYgTFRXUkFQUEVSX0RFQlVHUFJJTlRGCisjaWYgZGVmaW5lZCBERUJVR1dSQVBQRVIKKyMgZGVmaW5lIExUV1JBUFBFUl9ERUJVR1BSSU5URihhcmdzKSBsdHdyYXBwZXJfZGVidWdwcmludGYgYXJncworc3RhdGljIHZvaWQKK2x0d3JhcHBlcl9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworICAgICh2b2lkKSB2ZnByaW50ZiAoc3RkZXJyLCBmbXQsIGFyZ3MpOworICAgIHZhX2VuZCAoYXJncyk7Cit9CisjZWxzZQorIyBkZWZpbmUgTFRXUkFQUEVSX0RFQlVHUFJJTlRGKGFyZ3MpCisjZW5kaWYKKworY29uc3QgY2hhciAqcHJvZ3JhbV9uYW1lID0gTlVMTDsKKwordm9pZCAqeG1hbGxvYyAoc2l6ZV90IG51bSk7CitjaGFyICp4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcpOworY29uc3QgY2hhciAqYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsKK2NoYXIgKmZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcik7CitjaGFyICpjaGFzZV9zeW1saW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMpOworaW50IG1ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7CitpbnQgY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7CitjaGFyICpzdHJlbmR6YXAgKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0KTsKK3ZvaWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7Cit2b2lkIGx0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOworY2hhciAqbHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAqb3JpZ192YWx1ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5kKTsKK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAoY29uc3QgY2hhciAqYXJnKTsKK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIgKmFyZyk7Cit2b2lkIGx0X29wdF9wcm9jZXNzX2Vudl9hcHBlbmQgKGNvbnN0IGNoYXIgKmFyZyk7CitpbnQgbHRfc3BsaXRfbmFtZV92YWx1ZSAoY29uc3QgY2hhciAqYXJnLCBjaGFyKiogbmFtZSwgY2hhcioqIHZhbHVlKTsKK3ZvaWQgbHRfdXBkYXRlX2V4ZV9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7Cit2b2lkIGx0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOworCitzdGF0aWMgY29uc3QgY2hhciAqc2NyaXB0X3RleHRfcGFydDEgPQorRU9GCisKKwkgICAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgeWVzIHwKKwkgICAgICAgICRTRUQgLWUgJ3MvXChbXFwiXVwpL1xcXDEvZycgXAorCSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxuIi8nCisJICAgIGVjaG8gIjsiCisJICAgIGNhdCA8PEVPRgorCitzdGF0aWMgY29uc3QgY2hhciAqc2NyaXB0X3RleHRfcGFydDIgPQorRU9GCisJICAgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyIHllcyB8CisJICAgICAgICAkU0VEIC1lICdzL1woW1xcIl1cKS9cXFwxL2cnIFwKKwkgICAgICAgICAgICAgLWUgJ3MvXi8gICIvJyAtZSAncy8kL1xcbiIvJworCSAgICBlY2hvICI7IgorCisJICAgIGNhdCA8PEVPRgorY29uc3QgY2hhciAqIE1BR0lDX0VYRSA9ICIkbWFnaWNfZXhlIjsKK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQVJOQU1FID0gIiRzaGxpYnBhdGhfdmFyIjsKK0VPRgorCisJICAgIGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkdGVtcF9ycGF0aCIKKwkgICAgICBjYXQgPDxFT0YKK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKK0VPRgorCSAgICBlbHNlCisJICAgICAgY2F0IDw8IkVPRiIKK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQUxVRSAgID0gIiI7CitFT0YKKwkgICAgZmkKKworCSAgICBpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkZGxsc2VhcmNocGF0aDoiCisJICAgICAgY2F0IDw8RU9GCitjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICJQQVRIIjsKK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKK0VPRgorCSAgICBlbHNlCisJICAgICAgY2F0IDw8IkVPRiIKK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIiI7Citjb25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIiOworRU9GCisJICAgIGZpCisKKwkgICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KKwkgICAgICBjYXQgPDxFT0YKK2NvbnN0IGNoYXIgKiBUQVJHRVRfUFJPR1JBTV9OQU1FID0gImx0LSRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1bGx5LCBubyAuZXhlICovCitFT0YKKwkgICAgZWxzZQorCSAgICAgIGNhdCA8PEVPRgorY29uc3QgY2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAiJG91dHB1dG5hbWUiOyAvKiBob3BlZnVsbHksIG5vIC5leGUgKi8KK0VPRgorCSAgICBmaQorCisKKwkgICAgY2F0IDw8IkVPRiIKKworI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAgICAgICAgICItLWx0LSIKKyNkZWZpbmUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICA1CisKK3N0YXRpYyBjb25zdCBzaXplX3Qgb3B0X3ByZWZpeF9sZW4gICAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSDsKK3N0YXRpYyBjb25zdCBjaGFyICpsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYOworCitzdGF0aWMgY29uc3QgY2hhciAqZHVtcHNjcmlwdF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZHVtcC1zY3JpcHQiOworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9zZXRfb3B0X2xlbiAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyA3Oworc3RhdGljIGNvbnN0IGNoYXIgKmVudl9zZXRfb3B0ICAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1zZXQiOworICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCB2YWx1ZSBvZiBmb28gaXMgc2V0IHRvIGJhciAqLworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9wcmVwZW5kX29wdF9sZW4gPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyAxMTsKK3N0YXRpYyBjb25zdCBjaGFyICplbnZfcHJlcGVuZF9vcHQgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtcHJlcGVuZCI7CisgIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28gaXMgYmFyJHtmb299ICovCisKK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X2FwcGVuZF9vcHRfbGVuICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDEwOworc3RhdGljIGNvbnN0IGNoYXIgKmVudl9hcHBlbmRfb3B0ICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1hcHBlbmQiOworICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCBuZXcgdmFsdWUgb2YgZm9vIGlzICR7Zm9vfWJhciAqLworCitpbnQKK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgIGNoYXIgKipuZXdhcmd6OworICBpbnQgIG5ld2FyZ2M7CisgIGNoYXIgKnRtcF9wYXRoc3BlYzsKKyAgY2hhciAqYWN0dWFsX2N3cmFwcGVyX3BhdGg7CisgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9uYW1lOworICBjaGFyICp0YXJnZXRfbmFtZTsKKyAgY2hhciAqbHRfYXJndl96ZXJvOworICBpbnRwdHJfdCBydmFsID0gMTI3OworCisgIGludCBpOworCisgIHByb2dyYW1fbmFtZSA9IChjaGFyICopIHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJndlswXSkpOworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGFyZ3ZbMF0gICAgICA6ICVzXG4iLCBhcmd2WzBdKSk7CisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgcHJvZ3JhbV9uYW1lIDogJXNcbiIsIHByb2dyYW1fbmFtZSkpOworCisgIC8qIHZlcnkgc2ltcGxlIGFyZyBwYXJzaW5nOyBkb24ndCB3YW50IHRvIHJlbHkgb24gZ2V0b3B0ICovCisgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCisgICAgeworICAgICAgaWYgKHN0cmNtcCAoYXJndltpXSwgZHVtcHNjcmlwdF9vcHQpID09IDApCisJeworRU9GCisJICAgIGNhc2UgIiRob3N0IiBpbgorCSAgICAgICptaW5ndyogfCAqY3lnd2luKiApCisJCSMgbWFrZSBzdGRvdXQgdXNlICJ1bml4IiBsaW5lIGVuZGluZ3MKKwkJZWNobyAiICAgICAgICAgIHNldG1vZGUoMSxfT19CSU5BUlkpOyIKKwkJOzsKKwkgICAgICBlc2FjCisKKwkgICAgY2F0IDw8IkVPRiIKKwkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRfcGFydDEpOworCSAgcHJpbnRmICgiJXMiLCBzY3JpcHRfdGV4dF9wYXJ0Mik7CisJICByZXR1cm4gMDsKKwl9CisgICAgfQorCisgIG5ld2FyZ3ogPSBYTUFMTE9DIChjaGFyICosIGFyZ2MgKyAxKTsKKyAgdG1wX3BhdGhzcGVjID0gZmluZF9leGVjdXRhYmxlIChhcmd2WzBdKTsKKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSBOVUxMKQorICAgIGx0X2ZhdGFsICgiQ291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCisJCQkgIHRtcF9wYXRoc3BlYykpOworCisgIGFjdHVhbF9jd3JhcHBlcl9wYXRoID0gY2hhc2Vfc3ltbGlua3MgKHRtcF9wYXRoc3BlYyk7CisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZm91bmQgZXhlIChhZnRlciBzeW1saW5rIGNoYXNlKSBhdCA6ICVzXG4iLAorCQkJICBhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOworICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKworICBhY3R1YWxfY3dyYXBwZXJfbmFtZSA9IHhzdHJkdXAoIGJhc2VfbmFtZSAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpKTsKKyAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfcGF0aCwgYWN0dWFsX2N3cmFwcGVyX25hbWUpOworCisgIC8qIHdyYXBwZXIgbmFtZSB0cmFuc2Zvcm1zICovCisgIHN0cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIik7CisgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKGFjdHVhbF9jd3JhcHBlcl9uYW1lLCAiLmV4ZSIsIDEpOworICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworICBhY3R1YWxfY3dyYXBwZXJfbmFtZSA9IHRtcF9wYXRoc3BlYzsKKyAgdG1wX3BhdGhzcGVjID0gMDsKKworICAvKiB0YXJnZXRfbmFtZSB0cmFuc2Zvcm1zIC0tIHVzZSBhY3R1YWwgdGFyZ2V0IHByb2dyYW0gbmFtZTsgbWlnaHQgaGF2ZSBsdC0gcHJlZml4ICovCisgIHRhcmdldF9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1lIChUQVJHRVRfUFJPR1JBTV9OQU1FKSk7CisgIHN0cmVuZHphcCAodGFyZ2V0X25hbWUsICIuZXhlIik7CisgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKHRhcmdldF9uYW1lLCAiLmV4ZSIsIDEpOworICBYRlJFRSAodGFyZ2V0X25hbWUpOworICB0YXJnZXRfbmFtZSA9IHRtcF9wYXRoc3BlYzsKKyAgdG1wX3BhdGhzcGVjID0gMDsKKworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGxpYnRvb2wgdGFyZ2V0IG5hbWU6ICVzXG4iLAorCQkJICB0YXJnZXRfbmFtZSkpOworRU9GCisKKwkgICAgY2F0IDw8RU9GCisgIG5ld2FyZ3pbMF0gPQorICAgIFhNQUxMT0MgKGNoYXIsIChzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSArCisJCSAgICBzdHJsZW4gKCIkb2JqZGlyIikgKyAxICsgc3RybGVuIChhY3R1YWxfY3dyYXBwZXJfbmFtZSkgKyAxKSk7CisgIHN0cmNweSAobmV3YXJnelswXSwgYWN0dWFsX2N3cmFwcGVyX3BhdGgpOworICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIkb2JqZGlyIik7CisgIHN0cmNhdCAobmV3YXJnelswXSwgIi8iKTsKK0VPRgorCisJICAgIGNhdCA8PCJFT0YiCisgIC8qIHN0b3AgaGVyZSwgYW5kIGNvcHkgc28gd2UgZG9uJ3QgaGF2ZSB0byBkbyB0aGlzIHR3aWNlICovCisgIHRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKG5ld2FyZ3pbMF0pOworCisgIC8qIGRvIE5PVCB3YW50IHRoZSBsdC0gcHJlZml4IGhlcmUsIHNvIHVzZSBhY3R1YWxfY3dyYXBwZXJfbmFtZSAqLworICBzdHJjYXQgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKworICAvKiBETyB3YW50IHRoZSBsdC0gcHJlZml4IGhlcmUgaWYgaXQgZXhpc3RzLCBzbyB1c2UgdGFyZ2V0X25hbWUgKi8KKyAgbHRfYXJndl96ZXJvID0gbHRfZXh0ZW5kX3N0ciAodG1wX3BhdGhzcGVjLCB0YXJnZXRfbmFtZSwgMSk7CisgIFhGUkVFICh0bXBfcGF0aHNwZWMpOworICB0bXBfcGF0aHNwZWMgPSBOVUxMOworRU9GCisKKwkgICAgY2FzZSAkaG9zdF9vcyBpbgorCSAgICAgIG1pbmd3KikKKwkgICAgY2F0IDw8IkVPRiIKKyAgeworICAgIGNoYXIqIHA7CisgICAgd2hpbGUgKChwID0gc3RyY2hyIChuZXdhcmd6WzBdLCAnXFwnKSkgIT0gTlVMTCkKKyAgICAgIHsKKwkqcCA9ICcvJzsKKyAgICAgIH0KKyAgICB3aGlsZSAoKHAgPSBzdHJjaHIgKGx0X2FyZ3ZfemVybywgJ1xcJykpICE9IE5VTEwpCisgICAgICB7CisJKnAgPSAnLyc7CisgICAgICB9CisgIH0KK0VPRgorCSAgICA7OworCSAgICBlc2FjCisKKwkgICAgY2F0IDw8IkVPRiIKKyAgWEZSRUUgKHRhcmdldF9uYW1lKTsKKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKworICBsdF9zZXRlbnYgKCJCSU5fU0giLCAieHBnNCIpOyAvKiBmb3IgVHJ1NjQgKi8KKyAgbHRfc2V0ZW52ICgiRFVBTENBU0UiLCAiMSIpOyAgLyogZm9yIE1TSyBzaCAqLworICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKKyAgbHRfdXBkYXRlX2V4ZV9wYXRoIChFWEVfUEFUSF9WQVJOQU1FLCBFWEVfUEFUSF9WQUxVRSk7CisKKyAgbmV3YXJnYz0wOworICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQorICAgIHsKKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfc2V0X29wdCwgZW52X3NldF9vcHRfbGVuKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3NldF9vcHRfbGVuXSA9PSAnPScpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X3NldF9vcHRfbGVuICsgMTsKKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAocCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X3NldF9vcHQpOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X3ByZXBlbmRfb3B0LCBlbnZfcHJlcGVuZF9vcHRfbGVuKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3ByZXBlbmRfb3B0X2xlbl0gPT0gJz0nKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9wcmVwZW5kX29wdF9sZW4gKyAxOworICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAocCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfcHJlcGVuZF9vcHQpOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X2FwcGVuZF9vcHQsIGVudl9hcHBlbmRfb3B0X2xlbikgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgIGlmIChhcmd2W2ldW2Vudl9hcHBlbmRfb3B0X2xlbl0gPT0gJz0nKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9hcHBlbmRfb3B0X2xlbiArIDE7CisgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9hcHBlbmQgKHApOworICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoYXJndlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLworICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVudl9hcHBlbmRfb3B0KTsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBvcHRfcHJlZml4X2xlbikgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgIC8qIGhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKKyAgICAgICAgICAgICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJvdXQgYW5kCisgICAgICAgICAgICAgaGF2ZSBhbHJlYWR5IGRlYWx0IHdpdGgsIGFib3ZlIChpbmx1ZGluZyBkdW1wLXNjcmlwdCksIHRoZW4KKyAgICAgICAgICAgICByZXBvcnQgYW4gZXJyb3IuIE90aGVyd2lzZSwgdGFyZ2V0cyBtaWdodCBiZWdpbiB0byBiZWxpZXZlCisgICAgICAgICAgICAgdGhleSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKKyAgICAgICAgICAgICBuYW1lc3BhY2UuIFRoZSBmaXJzdCB0aW1lIGFueSB1c2VyIGNvbXBsYWlucyBhYm91dCB0aGlzLCB3ZSdsbAorICAgICAgICAgICAgIG5lZWQgdG8gbWFrZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbgorICAgICAgICAgICAgIG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgorICAgICAgICAgICAqLworICAgICAgICAgIGx0X2ZhdGFsICgiVW5yZWNvZ25pemVkIG9wdGlvbiBpbiAlcyBuYW1lc3BhY2U6ICclcyciLAorICAgICAgICAgICAgICAgICAgICBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCwgYXJndltpXSk7CisgICAgICAgIH0KKyAgICAgIC8qIG90aGVyd2lzZSAuLi4gKi8KKyAgICAgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IHhzdHJkdXAgKGFyZ3ZbaV0pOworICAgIH0KKyAgbmV3YXJnelsrK25ld2FyZ2NdID0gTlVMTDsKKworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgICAgICgoIihtYWluKSBsdF9hcmd2X3plcm8gOiAlc1xuIiwgKGx0X2FyZ3ZfemVybyA/IGx0X2FyZ3ZfemVybyA6ICI8TlVMTD4iKSkpOworICBmb3IgKGkgPSAwOyBpIDwgbmV3YXJnYzsgaSsrKQorICAgIHsKKyAgICAgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgbmV3YXJnelslZF0gICA6ICVzXG4iLCBpLCAobmV3YXJneltpXSA/IG5ld2FyZ3pbaV0gOiAiPE5VTEw+IikpKTsKKyAgICB9CisKK0VPRgorCisJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKwkgICAgICBtaW5ndyopCisJCWNhdCA8PCJFT0YiCisgIC8qIGV4ZWN2IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBvbiBtaW5ndyBhcyBleHBlY3RlZCBvbiB1bml4ICovCisgIHJ2YWwgPSBfc3Bhd252IChfUF9XQUlULCBsdF9hcmd2X3plcm8sIChjb25zdCBjaGFyICogY29uc3QgKikgbmV3YXJneik7CisgIGlmIChydmFsID09IC0xKQorICAgIHsKKyAgICAgIC8qIGZhaWxlZCB0byBzdGFydCBwcm9jZXNzICovCisgICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGZhaWxlZCB0byBsYXVuY2ggdGFyZ2V0IFwiJXNcIjogZXJybm8gPSAlZFxuIiwgbHRfYXJndl96ZXJvLCBlcnJubykpOworICAgICAgcmV0dXJuIDEyNzsKKyAgICB9CisgIHJldHVybiBydmFsOworRU9GCisJCTs7CisJICAgICAgKikKKwkJY2F0IDw8IkVPRiIKKyAgZXhlY3YgKGx0X2FyZ3ZfemVybywgbmV3YXJneik7CisgIHJldHVybiBydmFsOyAvKiA9MTI3LCBidXQgYXZvaWRzIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nICovCitFT0YKKwkJOzsKKwkgICAgZXNhYworCisJICAgIGNhdCA8PCJFT0YiCit9CisKK3ZvaWQgKgoreG1hbGxvYyAoc2l6ZV90IG51bSkKK3sKKyAgdm9pZCAqcCA9ICh2b2lkICopIG1hbGxvYyAobnVtKTsKKyAgaWYgKCFwKQorICAgIGx0X2ZhdGFsICgiTWVtb3J5IGV4aGF1c3RlZCIpOworCisgIHJldHVybiBwOworfQorCitjaGFyICoKK3hzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZykKK3sKKyAgcmV0dXJuIHN0cmluZyA/IHN0cmNweSAoKGNoYXIgKikgeG1hbGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksCisJCQkgIHN0cmluZykgOiBOVUxMOworfQorCitjb25zdCBjaGFyICoKK2Jhc2VfbmFtZSAoY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgY29uc3QgY2hhciAqYmFzZTsKKworI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICovCisgIGlmIChpc2FscGhhICgodW5zaWduZWQgY2hhcikgbmFtZVswXSkgJiYgbmFtZVsxXSA9PSAnOicpCisgICAgbmFtZSArPSAyOworI2VuZGlmCisKKyAgZm9yIChiYXNlID0gbmFtZTsgKm5hbWU7IG5hbWUrKykKKyAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAoKm5hbWUpKQorICAgICAgYmFzZSA9IG5hbWUgKyAxOworICByZXR1cm4gYmFzZTsKK30KKworaW50CitjaGVja19leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQoreworICBzdHJ1Y3Qgc3RhdCBzdDsKKworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGNoZWNrX2V4ZWN1dGFibGUpICA6ICVzXG4iLAorCQkJICBwYXRoID8gKCpwYXRoID8gcGF0aCA6ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKKyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisgICAgcmV0dXJuIDA7CisKKyAgaWYgKChzdGF0IChwYXRoLCAmc3QpID49IDApCisgICAgICAmJiAoc3Quc3RfbW9kZSAmIChTX0lYVVNSIHwgU19JWEdSUCB8IFNfSVhPVEgpKSkKKyAgICByZXR1cm4gMTsKKyAgZWxzZQorICAgIHJldHVybiAwOworfQorCitpbnQKK21ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCkKK3sKKyAgaW50IHJ2YWwgPSAwOworICBzdHJ1Y3Qgc3RhdCBzdDsKKworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1ha2VfZXhlY3V0YWJsZSkgICA6ICVzXG4iLAorCQkJICBwYXRoID8gKCpwYXRoID8gcGF0aCA6ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKKyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisgICAgcmV0dXJuIDA7CisKKyAgaWYgKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkKKyAgICB7CisgICAgICBydmFsID0gY2htb2QgKHBhdGgsIHN0LnN0X21vZGUgfCBTX0lYT1RIIHwgU19JWEdSUCB8IFNfSVhVU1IpOworICAgIH0KKyAgcmV0dXJuIHJ2YWw7Cit9CisKKy8qIFNlYXJjaGVzIGZvciB0aGUgZnVsbCBwYXRoIG9mIHRoZSB3cmFwcGVyLiAgUmV0dXJucworICAgbmV3bHkgYWxsb2NhdGVkIGZ1bGwgcGF0aCBuYW1lIGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZQorICAgRG9lcyBub3QgY2hhc2Ugc3ltbGlua3MsIGV2ZW4gb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCB0aGVtLgorKi8KK2NoYXIgKgorZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFyICp3cmFwcGVyKQoreworICBpbnQgaGFzX3NsYXNoID0gMDsKKyAgY29uc3QgY2hhciAqcDsKKyAgY29uc3QgY2hhciAqcF9uZXh0OworICAvKiBzdGF0aWMgYnVmZmVyIGZvciBnZXRjd2QgKi8KKyAgY2hhciB0bXBbTFRfUEFUSE1BWCArIDFdOworICBpbnQgdG1wX2xlbjsKKyAgY2hhciAqY29uY2F0X25hbWU7CisKKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihmaW5kX2V4ZWN1dGFibGUpICAgOiAlc1xuIiwKKwkJCSAgd3JhcHBlciA/ICgqd3JhcHBlciA/IHdyYXBwZXIgOiAiRU1QVFkhIikgOiAiTlVMTCEiKSk7CisKKyAgaWYgKCh3cmFwcGVyID09IE5VTEwpIHx8ICgqd3JhcHBlciA9PSAnXDAnKSkKKyAgICByZXR1cm4gTlVMTDsKKworICAvKiBBYnNvbHV0ZSBwYXRoPyAqLworI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIHdyYXBwZXJbMF0pICYmIHdyYXBwZXJbMV0gPT0gJzonKQorICAgIHsKKyAgICAgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAod3JhcHBlcik7CisgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorCXJldHVybiBjb25jYXRfbmFtZTsKKyAgICAgIFhGUkVFIChjb25jYXRfbmFtZSk7CisgICAgfQorICBlbHNlCisgICAgeworI2VuZGlmCisgICAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAod3JhcHBlclswXSkpCisJeworCSAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKwkgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCisJICAgIHJldHVybiBjb25jYXRfbmFtZTsKKwkgIFhGUkVFIChjb25jYXRfbmFtZSk7CisJfQorI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorICAgIH0KKyNlbmRpZgorCisgIGZvciAocCA9IHdyYXBwZXI7ICpwOyBwKyspCisgICAgaWYgKCpwID09ICcvJykKKyAgICAgIHsKKwloYXNfc2xhc2ggPSAxOworCWJyZWFrOworICAgICAgfQorICBpZiAoIWhhc19zbGFzaCkKKyAgICB7CisgICAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLworICAgICAgY29uc3QgY2hhciAqcGF0aCA9IGdldGVudiAoIlBBVEgiKTsKKyAgICAgIGlmIChwYXRoICE9IE5VTEwpCisJeworCSAgZm9yIChwID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCisJICAgIHsKKwkgICAgICBjb25zdCBjaGFyICpxOworCSAgICAgIHNpemVfdCBwX2xlbjsKKwkgICAgICBmb3IgKHEgPSBwOyAqcTsgcSsrKQorCQlpZiAoSVNfUEFUSF9TRVBBUkFUT1IgKCpxKSkKKwkJICBicmVhazsKKwkgICAgICBwX2xlbiA9IHEgLSBwOworCSAgICAgIHBfbmV4dCA9ICgqcSA9PSAnXDAnID8gcSA6IHEgKyAxKTsKKwkgICAgICBpZiAocF9sZW4gPT0gMCkKKwkJeworCQkgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQgZGlyZWN0b3J5ICovCisJCSAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQorCQkgICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFpbGVkIik7CisJCSAgdG1wX2xlbiA9IHN0cmxlbiAodG1wKTsKKwkJICBjb25jYXRfbmFtZSA9CisJCSAgICBYTUFMTE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKKwkJICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOworCQkgIGNvbmNhdF9uYW1lW3RtcF9sZW5dID0gJy8nOworCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7CisJCX0KKwkgICAgICBlbHNlCisJCXsKKwkJICBjb25jYXRfbmFtZSA9CisJCSAgICBYTUFMTE9DIChjaGFyLCBwX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisJCSAgbWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9sZW4pOworCQkgIGNvbmNhdF9uYW1lW3BfbGVuXSA9ICcvJzsKKwkJICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgcF9sZW4gKyAxLCB3cmFwcGVyKTsKKwkJfQorCSAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCisJCXJldHVybiBjb25jYXRfbmFtZTsKKwkgICAgICBYRlJFRSAoY29uY2F0X25hbWUpOworCSAgICB9CisJfQorICAgICAgLyogbm90IGZvdW5kIGluIFBBVEg7IGFzc3VtZSBjdXJkaXIgKi8KKyAgICB9CisgIC8qIFJlbGF0aXZlIHBhdGggfCBub3QgZm91bmQgaW4gcGF0aDogcHJlcGVuZCBjd2QgKi8KKyAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQorICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOworICB0bXBfbGVuID0gc3RybGVuICh0bXApOworICBjb25jYXRfbmFtZSA9IFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOworICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOworICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9ICcvJzsKKyAgc3RyY3B5IChjb25jYXRfbmFtZSArIHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKKworICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorICAgIHJldHVybiBjb25jYXRfbmFtZTsKKyAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKK2NoYXIgKgorY2hhc2Vfc3ltbGlua3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVjKQoreworI2lmbmRlZiBTX0lTTE5LCisgIHJldHVybiB4c3RyZHVwIChwYXRoc3BlYyk7CisjZWxzZQorICBjaGFyIGJ1ZltMVF9QQVRITUFYXTsKKyAgc3RydWN0IHN0YXQgczsKKyAgY2hhciAqdG1wX3BhdGhzcGVjID0geHN0cmR1cCAocGF0aHNwZWMpOworICBjaGFyICpwOworICBpbnQgaGFzX3N5bWxpbmtzID0gMDsKKyAgd2hpbGUgKHN0cmxlbiAodG1wX3BhdGhzcGVjKSAmJiAhaGFzX3N5bWxpbmtzKQorICAgIHsKKyAgICAgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCJjaGVja2luZyBwYXRoIGNvbXBvbmVudCBmb3Igc3ltbGlua3M6ICVzXG4iLAorCQkJICAgICAgdG1wX3BhdGhzcGVjKSk7CisgICAgICBpZiAobHN0YXQgKHRtcF9wYXRoc3BlYywgJnMpID09IDApCisJeworCSAgaWYgKFNfSVNMTksgKHMuc3RfbW9kZSkgIT0gMCkKKwkgICAgeworCSAgICAgIGhhc19zeW1saW5rcyA9IDE7CisJICAgICAgYnJlYWs7CisJICAgIH0KKworCSAgLyogc2VhcmNoIGJhY2t3YXJkcyBmb3IgbGFzdCBESVJfU0VQQVJBVE9SICovCisJICBwID0gdG1wX3BhdGhzcGVjICsgc3RybGVuICh0bXBfcGF0aHNwZWMpIC0gMTsKKwkgIHdoaWxlICgocCA+IHRtcF9wYXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJBVE9SICgqcCkpKQorCSAgICBwLS07CisJICBpZiAoKHAgPT0gdG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCisJICAgIHsKKwkgICAgICAvKiBubyBtb3JlIERJUl9TRVBBUkFUT1JTIGxlZnQgKi8KKwkgICAgICBicmVhazsKKwkgICAgfQorCSAgKnAgPSAnXDAnOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBjaGFyICplcnJzdHIgPSBzdHJlcnJvciAoZXJybm8pOworCSAgbHRfZmF0YWwgKCJFcnJvciBhY2Nlc3NpbmcgZmlsZSAlcyAoJXMpIiwgdG1wX3BhdGhzcGVjLCBlcnJzdHIpOworCX0KKyAgICB9CisgIFhGUkVFICh0bXBfcGF0aHNwZWMpOworCisgIGlmICghaGFzX3N5bWxpbmtzKQorICAgIHsKKyAgICAgIHJldHVybiB4c3RyZHVwIChwYXRoc3BlYyk7CisgICAgfQorCisgIHRtcF9wYXRoc3BlYyA9IHJlYWxwYXRoIChwYXRoc3BlYywgYnVmKTsKKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSAwKQorICAgIHsKKyAgICAgIGx0X2ZhdGFsICgiQ291bGQgbm90IGZvbGxvdyBzeW1saW5rcyBmb3IgJXMiLCBwYXRoc3BlYyk7CisgICAgfQorICByZXR1cm4geHN0cmR1cCAodG1wX3BhdGhzcGVjKTsKKyNlbmRpZgorfQorCitjaGFyICoKK3N0cmVuZHphcCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpCit7CisgIHNpemVfdCBsZW4sIHBhdGxlbjsKKworICBhc3NlcnQgKHN0ciAhPSBOVUxMKTsKKyAgYXNzZXJ0IChwYXQgIT0gTlVMTCk7CisKKyAgbGVuID0gc3RybGVuIChzdHIpOworICBwYXRsZW4gPSBzdHJsZW4gKHBhdCk7CisKKyAgaWYgKHBhdGxlbiA8PSBsZW4pCisgICAgeworICAgICAgc3RyICs9IGxlbiAtIHBhdGxlbjsKKyAgICAgIGlmIChzdHJjbXAgKHN0ciwgcGF0KSA9PSAwKQorCSpzdHIgPSAnXDAnOworICAgIH0KKyAgcmV0dXJuIHN0cjsKK30KKworc3RhdGljIHZvaWQKK2x0X2Vycm9yX2NvcmUgKGludCBleGl0X3N0YXR1cywgY29uc3QgY2hhciAqbW9kZSwKKwkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSwgdmFfbGlzdCBhcCkKK3sKKyAgZnByaW50ZiAoc3RkZXJyLCAiJXM6ICVzOiAiLCBwcm9ncmFtX25hbWUsIG1vZGUpOworICB2ZnByaW50ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7CisgIGZwcmludGYgKHN0ZGVyciwgIi5cbiIpOworCisgIGlmIChleGl0X3N0YXR1cyA+PSAwKQorICAgIGV4aXQgKGV4aXRfc3RhdHVzKTsKK30KKwordm9pZAorbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLikKK3sKKyAgdmFfbGlzdCBhcDsKKyAgdmFfc3RhcnQgKGFwLCBtZXNzYWdlKTsKKyAgbHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7CisgIHZhX2VuZCAoYXApOworfQorCit2b2lkCitsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQoreworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3NldGVudikgc2V0dGluZyAnJXMnIHRvICclcydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKyAgeworI2lmZGVmIEhBVkVfU0VURU5WCisgICAgLyogYWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29uc2lzdGVuY3kgd2l0aCAhSEFWRV9TRVRFTlYgKi8KKyAgICBjaGFyICpzdHIgPSB4c3RyZHVwICh2YWx1ZSk7CisgICAgc2V0ZW52IChuYW1lLCBzdHIsIDEpOworI2Vsc2UKKyAgICBpbnQgbGVuID0gc3RybGVuIChuYW1lKSArIDEgKyBzdHJsZW4gKHZhbHVlKSArIDE7CisgICAgY2hhciAqc3RyID0gWE1BTExPQyAoY2hhciwgbGVuKTsKKyAgICBzcHJpbnRmIChzdHIsICIlcz0lcyIsIG5hbWUsIHZhbHVlKTsKKyAgICBpZiAocHV0ZW52IChzdHIpICE9IEVYSVRfU1VDQ0VTUykKKyAgICAgIHsKKyAgICAgICAgWEZSRUUgKHN0cik7CisgICAgICB9CisjZW5kaWYKKyAgfQorfQorCitjaGFyICoKK2x0X2V4dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNoYXIgKmFkZCwgaW50IHRvX2VuZCkKK3sKKyAgY2hhciAqbmV3X3ZhbHVlOworICBpZiAob3JpZ192YWx1ZSAmJiAqb3JpZ192YWx1ZSkKKyAgICB7CisgICAgICBpbnQgb3JpZ192YWx1ZV9sZW4gPSBzdHJsZW4gKG9yaWdfdmFsdWUpOworICAgICAgaW50IGFkZF9sZW4gPSBzdHJsZW4gKGFkZCk7CisgICAgICBuZXdfdmFsdWUgPSBYTUFMTE9DIChjaGFyLCBhZGRfbGVuICsgb3JpZ192YWx1ZV9sZW4gKyAxKTsKKyAgICAgIGlmICh0b19lbmQpCisgICAgICAgIHsKKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSwgb3JpZ192YWx1ZSk7CisgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBvcmlnX3ZhbHVlX2xlbiwgYWRkKTsKKyAgICAgICAgfQorICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUsIGFkZCk7CisgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBhZGRfbGVuLCBvcmlnX3ZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIG5ld192YWx1ZSA9IHhzdHJkdXAgKGFkZCk7CisgICAgfQorICByZXR1cm4gbmV3X3ZhbHVlOworfQorCitpbnQKK2x0X3NwbGl0X25hbWVfdmFsdWUgKGNvbnN0IGNoYXIgKmFyZywgY2hhcioqIG5hbWUsIGNoYXIqKiB2YWx1ZSkKK3sKKyAgY29uc3QgY2hhciAqcDsKKyAgaW50IGxlbjsKKyAgaWYgKCFhcmcgfHwgISphcmcpCisgICAgcmV0dXJuIDE7CisKKyAgcCA9IHN0cmNociAoYXJnLCAoaW50KSc9Jyk7CisKKyAgaWYgKCFwKQorICAgIHJldHVybiAxOworCisgICp2YWx1ZSA9IHhzdHJkdXAgKCsrcCk7CisKKyAgbGVuID0gc3RybGVuIChhcmcpIC0gc3RybGVuICgqdmFsdWUpOworICAqbmFtZSA9IFhNQUxMT0MgKGNoYXIsIGxlbik7CisgIHN0cm5jcHkgKCpuYW1lLCBhcmcsIGxlbi0xKTsKKyAgKCpuYW1lKVtsZW4gLSAxXSA9ICdcMCc7CisKKyAgcmV0dXJuIDA7Cit9CisKK3ZvaWQKK2x0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGNvbnN0IGNoYXIgKmFyZykKK3sKKyAgY2hhciAqbmFtZSA9IE5VTEw7CisgIGNoYXIgKnZhbHVlID0gTlVMTDsKKworICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQorICAgIHsKKyAgICAgIFhGUkVFIChuYW1lKTsKKyAgICAgIFhGUkVFICh2YWx1ZSk7CisgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfc2V0X29wdCwgYXJnKTsKKyAgICB9CisKKyAgbHRfc2V0ZW52IChuYW1lLCB2YWx1ZSk7CisgIFhGUkVFIChuYW1lKTsKKyAgWEZSRUUgKHZhbHVlKTsKK30KKwordm9pZAorbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIgKmFyZykKK3sKKyAgY2hhciAqbmFtZSA9IE5VTEw7CisgIGNoYXIgKnZhbHVlID0gTlVMTDsKKyAgY2hhciAqbmV3X3ZhbHVlID0gTlVMTDsKKworICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQorICAgIHsKKyAgICAgIFhGUkVFIChuYW1lKTsKKyAgICAgIFhGUkVFICh2YWx1ZSk7CisgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfcHJlcGVuZF9vcHQsIGFyZyk7CisgICAgfQorCisgIG5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKKyAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOworICBYRlJFRSAobmV3X3ZhbHVlKTsKKyAgWEZSRUUgKG5hbWUpOworICBYRlJFRSAodmFsdWUpOworfQorCit2b2lkCitsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChjb25zdCBjaGFyICphcmcpCit7CisgIGNoYXIgKm5hbWUgPSBOVUxMOworICBjaGFyICp2YWx1ZSA9IE5VTEw7CisgIGNoYXIgKm5ld192YWx1ZSA9IE5VTEw7CisKKyAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKKyAgICB7CisgICAgICBYRlJFRSAobmFtZSk7CisgICAgICBYRlJFRSAodmFsdWUpOworICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwgZW52X2FwcGVuZF9vcHQsIGFyZyk7CisgICAgfQorCisgIG5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAxKTsKKyAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOworICBYRlJFRSAobmV3X3ZhbHVlKTsKKyAgWEZSRUUgKG5hbWUpOworICBYRlJFRSAodmFsdWUpOworfQorCit2b2lkCitsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQoreworICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3VwZGF0ZV9leGVfcGF0aCkgbW9kaWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSA/IG5hbWUgOiAiPE5VTEw+IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxMPiIpKSk7CisKKyAgaWYgKG5hbWUgJiYgKm5hbWUgJiYgdmFsdWUgJiYgKnZhbHVlKQorICAgIHsKKyAgICAgIGNoYXIgKm5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKKyAgICAgIC8qIHNvbWUgc3lzdGVtcyBjYW4ndCBjb3BlIHdpdGggYSAnOictdGVybWluYXRlZCBwYXRoICMnICovCisgICAgICBpbnQgbGVuID0gc3RybGVuIChuZXdfdmFsdWUpOworICAgICAgd2hpbGUgKCgobGVuID0gc3RybGVuIChuZXdfdmFsdWUpKSA+IDApICYmIElTX1BBVEhfU0VQQVJBVE9SIChuZXdfdmFsdWVbbGVuLTFdKSkKKyAgICAgICAgeworICAgICAgICAgIG5ld192YWx1ZVtsZW4tMV0gPSAnXDAnOworICAgICAgICB9CisgICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisgICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKKyAgICB9Cit9CisKK3ZvaWQKK2x0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCit7CisgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2xpYl9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKworICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCisgICAgeworICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOworICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOworICAgICAgWEZSRUUgKG5ld192YWx1ZSk7CisgICAgfQorfQorCisKK0VPRgorfQorIyBlbmQ6IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKKworIyBmdW5jX21vZGVfbGluayBhcmcuLi4KK2Z1bmNfbW9kZV9saW5rICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgIGNhc2UgJGhvc3QgaW4KKyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQorICAgICAgIyBJdCBpcyBpbXBvc3NpYmxlIHRvIGxpbmsgYSBkbGwgd2l0aG91dCB0aGlzIHNldHRpbmcsIGFuZAorICAgICAgIyB3ZSBzaG91bGRuJ3QgZm9yY2UgdGhlIG1ha2VmaWxlIG1haW50YWluZXIgdG8gZmlndXJlIG91dAorICAgICAgIyB3aGljaCBzeXN0ZW0gd2UgYXJlIGNvbXBpbGluZyBmb3IgaW4gb3JkZXIgdG8gcGFzcyBhbiBleHRyYQorICAgICAgIyBmbGFnIGZvciBldmVyeSBsaWJ0b29sIGludm9jYXRpb24uCisgICAgICAjIGFsbG93X3VuZGVmaW5lZD1ubworCisgICAgICAjIEZJWE1FOiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUgYWJvdmUgd2hlbiB0cnlpbmcKKyAgICAgICMgdG8gbWFrZSBhIGRsbCB3aGljaCBoYXMgdW5kZWZpbmVkIHN5bWJvbHMsIGluIHdoaWNoIGNhc2Ugbm90CisgICAgICAjIGV2ZW4gYSBzdGF0aWMgbGlicmFyeSBpcyBidWlsdC4gIEZvciBub3csIHdlIG5lZWQgdG8gc3BlY2lmeQorICAgICAgIyAtbm8tdW5kZWZpbmVkIG9uIHRoZSBsaWJ0b29sIGxpbmsgbGluZSB3aGVuIHdlIGNhbiBiZSBjZXJ0YWluCisgICAgICAjIHRoYXQgYWxsIHN5bWJvbHMgYXJlIHNhdGlzZmllZCwgb3RoZXJ3aXNlIHdlIGdldCBhIHN0YXRpYyBsaWJyYXJ5LgorICAgICAgYWxsb3dfdW5kZWZpbmVkPXllcworICAgICAgOzsKKyAgICAqKQorICAgICAgYWxsb3dfdW5kZWZpbmVkPXllcworICAgICAgOzsKKyAgICBlc2FjCisgICAgbGlidG9vbF9hcmdzPSRub25vcHQKKyAgICBiYXNlX2NvbXBpbGU9IiRub25vcHQgJEAiCisgICAgY29tcGlsZV9jb21tYW5kPSRub25vcHQKKyAgICBmaW5hbGl6ZV9jb21tYW5kPSRub25vcHQKKworICAgIGNvbXBpbGVfcnBhdGg9CisgICAgZmluYWxpemVfcnBhdGg9CisgICAgY29tcGlsZV9zaGxpYnBhdGg9CisgICAgZmluYWxpemVfc2hsaWJwYXRoPQorICAgIGNvbnZlbmllbmNlPQorICAgIG9sZF9jb252ZW5pZW5jZT0KKyAgICBkZXBsaWJzPQorICAgIG9sZF9kZXBsaWJzPQorICAgIGNvbXBpbGVyX2ZsYWdzPQorICAgIGxpbmtlcl9mbGFncz0KKyAgICBkbGxzZWFyY2hwYXRoPQorICAgIGxpYl9zZWFyY2hfcGF0aD1gcHdkYAorICAgIGluc3RfcHJlZml4X2Rpcj0KKyAgICBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0KKworICAgIGF2b2lkX3ZlcnNpb249bm8KKyAgICBkbGZpbGVzPQorICAgIGRscHJlZmlsZXM9CisgICAgZGxzZWxmPW5vCisgICAgZXhwb3J0X2R5bmFtaWM9bm8KKyAgICBleHBvcnRfc3ltYm9scz0KKyAgICBleHBvcnRfc3ltYm9sc19yZWdleD0KKyAgICBnZW5lcmF0ZWQ9CisgICAgbGlib2Jqcz0KKyAgICBsdGxpYnM9CisgICAgbW9kdWxlPW5vCisgICAgbm9faW5zdGFsbD1ubworICAgIG9ianM9CisgICAgbm9uX3BpY19vYmplY3RzPQorICAgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PQorICAgIHByZWZlcl9zdGF0aWNfbGlicz1ubworICAgIHByZWxvYWQ9bm8KKyAgICBwcmV2PQorICAgIHByZXZhcmc9CisgICAgcmVsZWFzZT0KKyAgICBycGF0aD0KKyAgICB4cnBhdGg9CisgICAgcGVybV9ycGF0aD0KKyAgICB0ZW1wX3JwYXRoPQorICAgIHRocmVhZF9zYWZlPW5vCisgICAgdmluZm89CisgICAgdmluZm9fbnVtYmVyPW5vCisgICAgd2Vha19saWJzPQorICAgIHNpbmdsZV9tb2R1bGU9IiR7d2x9LXNpbmdsZV9tb2R1bGUiCisgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQorCisgICAgIyBXZSBuZWVkIHRvIGtub3cgLXN0YXRpYywgdG8gZ2V0IHRoZSByaWdodCBvdXRwdXQgZmlsZW5hbWVzLgorICAgIGZvciBhcmcKKyAgICBkbworICAgICAgY2FzZSAkYXJnIGluCisgICAgICAtc2hhcmVkKQorCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBcCisJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gImNhbiBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKKwlidWlsZF9vbGRfbGlicz1ubworCWJyZWFrCisJOzsKKyAgICAgIC1hbGwtc3RhdGljIHwgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQorCWNhc2UgJGFyZyBpbgorCS1hbGwtc3RhdGljKQorCSAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAteiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisJICAgIGZ1bmNfd2FybmluZyAiY29tcGxldGUgc3RhdGljIGxpbmtpbmcgaXMgaW1wb3NzaWJsZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24iCisJICBmaQorCSAgaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKKwkgIGZpCisJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCisJICA7OworCS1zdGF0aWMpCisJICBpZiB0ZXN0IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCisJICBmaQorCSAgcHJlZmVyX3N0YXRpY19saWJzPWJ1aWx0CisJICA7OworCS1zdGF0aWMtbGlidG9vbC1saWJzKQorCSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYworCSAgZmkKKwkgIHByZWZlcl9zdGF0aWNfbGlicz15ZXMKKwkgIDs7CisJZXNhYworCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworCWJ1aWxkX29sZF9saWJzPXllcworCWJyZWFrCisJOzsKKyAgICAgIGVzYWMKKyAgICBkb25lCisKKyAgICAjIFNlZSBpZiBvdXIgc2hhcmVkIGFyY2hpdmVzIGRlcGVuZCBvbiBzdGF0aWMgYXJjaGl2ZXMuCisgICAgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIGJ1aWxkX29sZF9saWJzPXllcworCisgICAgIyBHbyB0aHJvdWdoIHRoZSBhcmd1bWVudHMsIHRyYW5zZm9ybWluZyB0aGVtIG9uIHRoZSB3YXkuCisgICAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbworICAgICAgYXJnPSIkMSIKKyAgICAgIHNoaWZ0CisgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorICAgICAgcWFyZz0kZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQKKyAgICAgIGZ1bmNfYXBwZW5kIGxpYnRvb2xfYXJncyAiICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKworICAgICAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCisgICAgICBpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KKwljYXNlICRwcmV2IGluCisJb3V0cHV0KQorCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgQE9VVFBVVEAiCisJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgQE9VVFBVVEAiCisJICA7OworCWVzYWMKKworCWNhc2UgJHByZXYgaW4KKwlkbGZpbGVzfGRscHJlZmlsZXMpCisJICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSBubzsgdGhlbgorCSAgICAjIEFkZCB0aGUgc3ltYm9sIG9iamVjdCBpbnRvIHRoZSBsaW5raW5nIGNvbW1hbmRzLgorCSAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiBAU1lNRklMRUAiCisJICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAU1lNRklMRUAiCisJICAgIHByZWxvYWQ9eWVzCisJICBmaQorCSAgY2FzZSAkYXJnIGluCisJICAqLmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNlIGNhc2VzIGJlbG93LgorCSAgZm9yY2UpCisJICAgIGlmIHRlc3QgIiRkbHNlbGYiID0gbm87IHRoZW4KKwkgICAgICBkbHNlbGY9bmVlZGxlc3MKKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKKwkgICAgZmkKKwkgICAgcHJldj0KKwkgICAgY29udGludWUKKwkgICAgOzsKKwkgIHNlbGYpCisJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKwkgICAgICBkbHNlbGY9eWVzCisJICAgIGVsaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiICE9IHllczsgdGhlbgorCSAgICAgIGRsc2VsZj15ZXMKKwkgICAgZWxzZQorCSAgICAgIGRsc2VsZj1uZWVkbGVzcworCSAgICAgIGV4cG9ydF9keW5hbWljPXllcworCSAgICBmaQorCSAgICBwcmV2PQorCSAgICBjb250aW51ZQorCSAgICA7OworCSAgKikKKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisJICAgIGVsc2UKKwkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorCSAgICBmaQorCSAgICBwcmV2PQorCSAgICBjb250aW51ZQorCSAgICA7OworCSAgZXNhYworCSAgOzsKKwlleHBzeW1zKQorCSAgZXhwb3J0X3N5bWJvbHM9IiRhcmciCisJICB0ZXN0IC1mICIkYXJnIiBcCisJICAgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgInN5bWJvbCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJZXhwc3ltc19yZWdleCkKKwkgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PSIkYXJnIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCWZyYW1ld29yaykKKwkgIGNhc2UgJGhvc3QgaW4KKwkgICAgKi0qLWRhcndpbiopCisJICAgICAgY2FzZSAiJGRlcGxpYnMgIiBpbgorCQkqIiAkcWFyZy5sdGZyYW1ld29yayAiKikgOzsKKwkJKikgZGVwbGlicz0iJGRlcGxpYnMgJHFhcmcubHRmcmFtZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgorCQkgICA7OworCSAgICAgIGVzYWMKKwkgICAgICA7OworCSAgZXNhYworCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCWluc3RfcHJlZml4KQorCSAgaW5zdF9wcmVmaXhfZGlyPSIkYXJnIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCW9iamVjdGxpc3QpCisJICBpZiB0ZXN0IC1mICIkYXJnIjsgdGhlbgorCSAgICBzYXZlX2FyZz0kYXJnCisJICAgIG1vcmVhcmdzPQorCSAgICBmb3IgZmlsIGluIGBjYXQgIiRzYXZlX2FyZyJgCisJICAgIGRvCisjCSAgICAgIG1vcmVhcmdzPSIkbW9yZWFyZ3MgJGZpbCIKKwkgICAgICBhcmc9JGZpbAorCSAgICAgICMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgorCisJICAgICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgb2JqZWN0LgorCSAgICAgIGlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCisJCXBpY19vYmplY3Q9CisJCW5vbl9waWNfb2JqZWN0PQorCisJCSMgUmVhZCB0aGUgLmxvIGZpbGUKKwkJZnVuY19zb3VyY2UgIiRhcmciCisKKwkJaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8CisJCSAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKKwkJICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAmJgorCQkgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgorCQkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2Ygb2JqZWN0IGZvciBcYCRhcmcnIgorCQlmaQorCisJCSMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisJCWZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisJCXhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCisJCWlmIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKwkJICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgorCisJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorCQkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsgdGhlbgorCQkgICAgICBkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKwkJICAgICAgcHJldj0KKwkJICAgICAgY29udGludWUKKwkJICAgIGVsc2UKKwkJICAgICAgIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KKwkJICAgICAgcHJldj1kbHByZWZpbGVzCisJCSAgICBmaQorCQkgIGZpCisKKwkJICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQorCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKwkJICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KKwkJICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgorCQkgICAgcHJldj0KKwkJICBmaQorCisJCSAgIyBBIFBJQyBvYmplY3QuCisJCSAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgorCQkgIGFyZz0iJHBpY19vYmplY3QiCisJCWZpCisKKwkJIyBOb24tUElDIG9iamVjdC4KKwkJaWYgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKwkJICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCisKKwkJICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisJCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCisJCSAgICBhcmc9IiRub25fcGljX29iamVjdCIKKwkJICBmaQorCQllbHNlCisJCSAgIyBJZiB0aGUgUElDIG9iamVjdCBleGlzdHMsIHVzZSBpdCBpbnN0ZWFkLgorCQkgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4KKwkJICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3QiCisJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorCQlmaQorCSAgICAgIGVsc2UKKwkJIyBPbmx5IGFuIGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4uCisJCWlmICRvcHRfZHJ5X3J1bjsgdGhlbgorCQkgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisJCSAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKKwkJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKworCQkgIGZ1bmNfbG8ybyAiJGFyZyIKKwkJICBwaWNfb2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAorCQkgIG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQKKwkJICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorCSAgICAgICAgZWxzZQorCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGFyZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiCisJCWZpCisJICAgICAgZmkKKwkgICAgZG9uZQorCSAgZWxzZQorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJsaW5rIGlucHV0IGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKKwkgIGZpCisJICBhcmc9JHNhdmVfYXJnCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJcHJlY2lvdXNfcmVnZXgpCisJICBwcmVjaW91c19maWxlc19yZWdleD0iJGFyZyIKKwkgIHByZXY9CisJICBjb250aW51ZQorCSAgOzsKKwlyZWxlYXNlKQorCSAgcmVsZWFzZT0iLSRhcmciCisJICBwcmV2PQorCSAgY29udGludWUKKwkgIDs7CisJcnBhdGggfCB4cnBhdGgpCisJICAjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKwkgIGNhc2UgJGFyZyBpbgorCSAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworCSAgKikKKwkgICAgZnVuY19mYXRhbF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCisJICAgIDs7CisJICBlc2FjCisJICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsgdGhlbgorCSAgICBjYXNlICIkcnBhdGggIiBpbgorCSAgICAqIiAkYXJnICIqKSA7OworCSAgICAqKSBycGF0aD0iJHJwYXRoICRhcmciIDs7CisJICAgIGVzYWMKKwkgIGVsc2UKKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisJICAgICoiICRhcmcgIiopIDs7CisJICAgICopIHhycGF0aD0iJHhycGF0aCAkYXJnIiA7OworCSAgICBlc2FjCisJICBmaQorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCXNocmV4dCkKKwkgIHNocmV4dF9jbWRzPSIkYXJnIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OworCXdlYWspCisJICB3ZWFrX2xpYnM9IiR3ZWFrX2xpYnMgJGFyZyIKKwkgIHByZXY9CisJICBjb250aW51ZQorCSAgOzsKKwl4Y2NsaW5rZXIpCisJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJHFhcmciCisJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgorCSAgcHJldj0KKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJnIgorCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJnIgorCSAgY29udGludWUKKwkgIDs7CisJeGNvbXBpbGVyKQorCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkcWFyZyIKKwkgIHByZXY9CisJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkcWFyZyIKKwkgIGNvbnRpbnVlCisJICA7OworCXhsaW5rZXIpCisJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJHFhcmciCisJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRxYXJnIgorCSAgcHJldj0KKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICR3bCRxYXJnIgorCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICR3bCRxYXJnIgorCSAgY29udGludWUKKwkgIDs7CisJKikKKwkgIGV2YWwgIiRwcmV2PVwiXCRhcmdcIiIKKwkgIHByZXY9CisJICBjb250aW51ZQorCSAgOzsKKwllc2FjCisgICAgICBmaSAjIHRlc3QgLW4gIiRwcmV2IgorCisgICAgICBwcmV2YXJnPSIkYXJnIgorCisgICAgICBjYXNlICRhcmcgaW4KKyAgICAgIC1hbGwtc3RhdGljKQorCWlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorCSAgIyBTZWUgY29tbWVudCBmb3IgLXN0YXRpYyBmbGFnIGJlbG93LCBmb3IgbW9yZSBkZXRhaWxzLgorCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGxpbmtfc3RhdGljX2ZsYWciCisJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGxpbmtfc3RhdGljX2ZsYWciCisJZmkKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1hbGxvdy11bmRlZmluZWQpCisJIyBGSVhNRTogcmVtb3ZlIHRoaXMgZmxhZyBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgorCWZ1bmNfZmF0YWxfZXJyb3IgIlxgLWFsbG93LXVuZGVmaW5lZCcgbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IgorCTs7CisKKyAgICAgIC1hdm9pZC12ZXJzaW9uKQorCWF2b2lkX3ZlcnNpb249eWVzCisJY29udGludWUKKwk7OworCisgICAgICAtZGxvcGVuKQorCXByZXY9ZGxmaWxlcworCWNvbnRpbnVlCisJOzsKKworICAgICAgLWRscHJlb3BlbikKKwlwcmV2PWRscHJlZmlsZXMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1leHBvcnQtZHluYW1pYykKKwlleHBvcnRfZHluYW1pYz15ZXMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1leHBvcnQtc3ltYm9scyB8IC1leHBvcnQtc3ltYm9scy1yZWdleCkKKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm1vcmUgdGhhbiBvbmUgLWV4cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCisJZmkKKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1leHBvcnQtc3ltYm9scyI7IHRoZW4KKwkgIHByZXY9ZXhwc3ltcworCWVsc2UKKwkgIHByZXY9ZXhwc3ltc19yZWdleAorCWZpCisJY29udGludWUKKwk7OworCisgICAgICAtZnJhbWV3b3JrKQorCXByZXY9ZnJhbWV3b3JrCisJY29udGludWUKKwk7OworCisgICAgICAtaW5zdC1wcmVmaXgtZGlyKQorCXByZXY9aW5zdF9wcmVmaXgKKwljb250aW51ZQorCTs7CisKKyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxpbmtlciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioKKyAgICAgICMgc28sIGlmIHdlIHNlZSB0aGVzZSBmbGFncyBiZSBjYXJlZnVsIG5vdCB0byB0cmVhdCB0aGVtIGxpa2UgLUwKKyAgICAgIC1MW0EtWl1bQS1aXSo6KikKKwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgorCW5vLyotKi1pcml4KiB8IC8qLSotaXJpeCopCisJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisJICA7OworCWVzYWMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1MKikKKwlmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkYXJnIgorCWRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJaWYgdGVzdCAteiAiJGRpciI7IHRoZW4KKwkgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJyZXF1aXJlIG5vIHNwYWNlIGJldHdlZW4gXGAtTCcgYW5kIFxgJDEnIgorCSAgZWxzZQorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJuZWVkIHBhdGggZm9yIFxgLUwnIG9wdGlvbiIKKwkgIGZpCisJZmkKKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKwljYXNlICRkaXIgaW4KKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisJKikKKwkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKwkgIHRlc3QgLXogIiRhYnNkaXIiICYmIFwKKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRkaXInIgorCSAgZGlyPSIkYWJzZGlyIgorCSAgOzsKKwllc2FjCisJY2FzZSAiJGRlcGxpYnMgIiBpbgorCSoiIC1MJGRpciAiKikgOzsKKwkqKQorCSAgZGVwbGlicz0iJGRlcGxpYnMgLUwkZGlyIgorCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCisJICA7OworCWVzYWMKKwljYXNlICRob3N0IGluCisJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKKwkgIHRlc3RiaW5kaXI9YCRFQ0hPICJYJGRpciIgfCAkWHNlZCAtZSAncyovbGliJCovYmluKidgCisJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KKwkgICoiOiRkaXI6IiopIDs7CisJICA6OikgZGxsc2VhcmNocGF0aD0kZGlyOzsKKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRkaXIiOzsKKwkgIGVzYWMKKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CisJICA6OikgZGxsc2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7CisJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokdGVzdGJpbmRpciI7OworCSAgZXNhYworCSAgOzsKKwllc2FjCisJY29udGludWUKKwk7OworCisgICAgICAtbCopCisJaWYgdGVzdCAiWCRhcmciID0gIlgtbGMiIHx8IHRlc3QgIlgkYXJnIiA9ICJYLWxtIjsgdGhlbgorCSAgY2FzZSAkaG9zdCBpbgorCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCisJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgQyBvciBtYXRoIGxpYnJhcnkgKGFzIHN1Y2gpCisJICAgIGNvbnRpbnVlCisJICAgIDs7CisJICAqLSotb3MyKikKKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIGxpYnJhcnkgKGFzIHN1Y2gpCisJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorCSAgICA7OworCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisJICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgorCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKwkgICAgOzsKKwkgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKwkgICAgIyBSaGFwc29keSBDIGFuZCBtYXRoIGxpYnJhcmllcyBhcmUgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKKwkgICAgZGVwbGlicz0iJGRlcGxpYnMgU3lzdGVtLmx0ZnJhbWV3b3JrIgorCSAgICBjb250aW51ZQorCSAgICA7OworCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQorCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCisJICAgIDs7CisJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCisJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCisJICAgIDs7CisJICBlc2FjCisJZWxpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sY19yIjsgdGhlbgorCSBjYXNlICRob3N0IGluCisJICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQorCSAgICMgRG8gbm90IGluY2x1ZGUgbGliY19yIGRpcmVjdGx5LCB1c2UgLXB0aHJlYWQgZmxhZy4KKwkgICBjb250aW51ZQorCSAgIDs7CisJIGVzYWMKKwlmaQorCWRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisJY29udGludWUKKwk7OworCisgICAgICAtbW9kdWxlKQorCW1vZHVsZT15ZXMKKwljb250aW51ZQorCTs7CisKKyAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKKyAgICAgICMgY2xhc3NlcywgbmFtZSBtYW5nbGluZywgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZy4KKyAgICAgICMgRGFyd2luIHVzZXMgdGhlIC1hcmNoIGZsYWcgdG8gZGV0ZXJtaW5lIG91dHB1dCBhcmNoaXRlY3R1cmUuCisgICAgICAtbW9kZWx8LWFyY2h8LWlzeXNyb290KQorCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorCXByZXY9eGNvbXBpbGVyCisJY29udGludWUKKwk7OworCisgICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQorCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisJICAgICoiICRhcmcgIiopIDs7CisJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRhcmciIDs7CisJZXNhYworCWNvbnRpbnVlCisJOzsKKworICAgICAgLW11bHRpX21vZHVsZSkKKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1tdWx0aV9tb2R1bGUiCisJY29udGludWUKKwk7OworCisgICAgICAtbm8tZmFzdC1pbnN0YWxsKQorCWZhc3RfaW5zdGFsbD1ubworCWNvbnRpbnVlCisJOzsKKworICAgICAgLW5vLWluc3RhbGwpCisJY2FzZSAkaG9zdCBpbgorCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWRhcndpbiogfCAqLWNlZ2NjKikKKwkgICMgVGhlIFBBVEggaGFja2VyeSBpbiB3cmFwcGVyIHNjcmlwdHMgaXMgcmVxdWlyZWQgb24gV2luZG93cworCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZvciB0aGUgbG9hZGVyIHRvIGZpbmQgYW55IGRsbHMgaXQgbmVlZHMuCisJICBmdW5jX3dhcm5pbmcgIlxgLW5vLWluc3RhbGwnIGlzIGlnbm9yZWQgZm9yICRob3N0IgorCSAgZnVuY193YXJuaW5nICJhc3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwnIGluc3RlYWQiCisJICBmYXN0X2luc3RhbGw9bm8KKwkgIDs7CisJKikgbm9faW5zdGFsbD15ZXMgOzsKKwllc2FjCisJY29udGludWUKKwk7OworCisgICAgICAtbm8tdW5kZWZpbmVkKQorCWFsbG93X3VuZGVmaW5lZD1ubworCWNvbnRpbnVlCisJOzsKKworICAgICAgLW9iamVjdGxpc3QpCisJcHJldj1vYmplY3RsaXN0CisJY29udGludWUKKwk7OworCisgICAgICAtbykgcHJldj1vdXRwdXQgOzsKKworICAgICAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4KQorCXByZXY9cHJlY2lvdXNfcmVnZXgKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1yZWxlYXNlKQorCXByZXY9cmVsZWFzZQorCWNvbnRpbnVlCisJOzsKKworICAgICAgLXJwYXRoKQorCXByZXY9cnBhdGgKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1SKQorCXByZXY9eHJwYXRoCisJY29udGludWUKKwk7OworCisgICAgICAtUiopCisJZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGFyZyIKKwlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorCWNhc2UgJGRpciBpbgorCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKKwkqKQorCSAgZnVuY19mYXRhbF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCisJICA7OworCWVzYWMKKwljYXNlICIkeHJwYXRoICIgaW4KKwkqIiAkZGlyICIqKSA7OworCSopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7OworCWVzYWMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1zaGFyZWQpCisJIyBUaGUgZWZmZWN0cyBvZiAtc2hhcmVkIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4KKwljb250aW51ZQorCTs7CisKKyAgICAgIC1zaHJleHQpCisJcHJldj1zaHJleHQKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKKwkjIFRoZSBlZmZlY3RzIG9mIC1zdGF0aWMgYXJlIGRlZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgorCSMgV2UgdXNlZCB0byBkbyB0aGUgc2FtZSBhcyAtYWxsLXN0YXRpYyBvbiBwbGF0Zm9ybXMgdGhhdAorCSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGVmZmVjdHMKKwkjIHdvdWxkIGJlIGVxdWl2YWxlbnQgd2FzIHdyb25nLiAgSXQgd291bGQgYnJlYWsgb24gYXQgbGVhc3QKKwkjIERpZ2l0YWwgVW5peCBhbmQgQUlYLgorCWNvbnRpbnVlCisJOzsKKworICAgICAgLXRocmVhZC1zYWZlKQorCXRocmVhZF9zYWZlPXllcworCWNvbnRpbnVlCisJOzsKKworICAgICAgLXZlcnNpb24taW5mbykKKwlwcmV2PXZpbmZvCisJY29udGludWUKKwk7OworCisgICAgICAtdmVyc2lvbi1udW1iZXIpCisJcHJldj12aW5mbworCXZpbmZvX251bWJlcj15ZXMKKwljb250aW51ZQorCTs7CisKKyAgICAgIC13ZWFrKQorICAgICAgICBwcmV2PXdlYWsKKwljb250aW51ZQorCTs7CisKKyAgICAgIC1XYywqKQorCWZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAiJGFyZyIKKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwlhcmc9CisJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCisJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisJICBJRlM9IiRzYXZlX2lmcyIKKyAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmxhZyIKKwkgIGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwlkb25lCisJSUZTPSIkc2F2ZV9pZnMiCisJZnVuY19zdHJpcG5hbWUgJyAnICcnICIkYXJnIgorCWFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJOzsKKworICAgICAgLVdsLCopCisJZnVuY19zdHJpcG5hbWUgJy1XbCwnICcnICIkYXJnIgorCWFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCWFyZz0KKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKwlmb3IgZmxhZyBpbiAkYXJnczsgZG8KKwkgIElGUz0iJHNhdmVfaWZzIgorICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgorCSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwlkb25lCisJSUZTPSIkc2F2ZV9pZnMiCisJZnVuY19zdHJpcG5hbWUgJyAnICcnICIkYXJnIgorCWFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJOzsKKworICAgICAgLVhjb21waWxlcikKKwlwcmV2PXhjb21waWxlcgorCWNvbnRpbnVlCisJOzsKKworICAgICAgLVhsaW5rZXIpCisJcHJldj14bGlua2VyCisJY29udGludWUKKwk7OworCisgICAgICAtWENDbGlua2VyKQorCXByZXY9eGNjbGlua2VyCisJY29udGludWUKKwk7OworCisgICAgICAjIC1tc2dfKiBmb3Igb3NmIGNjCisgICAgICAtbXNnXyopCisJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwk7OworCisgICAgICAjIC02NCwgLW1pcHNbMC05XSBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIFNHSSBjb21waWxlcgorICAgICAgIyAtclswLTldWzAtOV0qIHNwZWNpZmllcyB0aGUgcHJvY2Vzc29yIG9uIHRoZSBTR0kgY29tcGlsZXIKKyAgICAgICMgLXhhcmNoPSosIC14dGFyZ2V0PSogZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBTdW4gY29tcGlsZXIKKyAgICAgICMgK0RBKiwgK0REKiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIEhQIGNvbXBpbGVyCisgICAgICAjIC1xKiBwYXNzIHRocm91Z2ggY29tcGlsZXIgYXJncyBmb3IgdGhlIElCTSBjb21waWxlcgorICAgICAgIyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBwYXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCisgICAgICAjIGNvbXBpbGVyIGFyZ3MgZm9yIEdDQworICAgICAgIyAtRi9wYXRoIGdpdmVzIHBhdGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndpbgorICAgICAgIyAtcCwgLXBnLCAtLWNvdmVyYWdlLCAtZnByb2ZpbGUtKiBwYXNzIHRocm91Z2ggcHJvZmlsaW5nIGZsYWcgZm9yIEdDQworICAgICAgIyBAZmlsZSBHQ0MgcmVzcG9uc2UgZmlsZXMKKyAgICAgIC02NHwtbWlwc1swLTldfC1yWzAtOV1bMC05XSp8LXhhcmNoPSp8LXh0YXJnZXQ9KnwrREEqfCtERCp8LXEqfC1tKnwgXAorICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYqfEAqKQorICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorICAgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorICAgICAgICBjb250aW51ZQorICAgICAgICA7OworCisgICAgICAjIFNvbWUgb3RoZXIgY29tcGlsZXIgZmxhZy4KKyAgICAgIC0qIHwgKyopCisgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJOzsKKworICAgICAgKi4kb2JqZXh0KQorCSMgQSBzdGFuZGFyZCBvYmplY3QuCisJb2Jqcz0iJG9ianMgJGFyZyIKKwk7OworCisgICAgICAqLmxvKQorCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgorCisJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgb2JqZWN0LgorCWlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCisJICBwaWNfb2JqZWN0PQorCSAgbm9uX3BpY19vYmplY3Q9CisKKwkgICMgUmVhZCB0aGUgLmxvIGZpbGUKKwkgIGZ1bmNfc291cmNlICIkYXJnIgorCisJICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwKKwkgICAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYKKwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25lOyB0aGVuCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2Ygb2JqZWN0IGZvciBcYCRhcmcnIgorCSAgZmkKKworCSAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKwkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKworCSAgaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKwkgICAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKKworCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisJICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsgdGhlbgorCQlkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKwkJcHJldj0KKwkJY29udGludWUKKwkgICAgICBlbHNlCisJCSMgSWYgbGlidG9vbCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCisJCXByZXY9ZGxwcmVmaWxlcworCSAgICAgIGZpCisJICAgIGZpCisKKwkgICAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhpcy4gIC1Pc3NhbWEKKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgorCSAgICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KKwkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkcGljX29iamVjdCIKKwkgICAgICBwcmV2PQorCSAgICBmaQorCisJICAgICMgQSBQSUMgb2JqZWN0LgorCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisJICAgIGFyZz0iJHBpY19vYmplY3QiCisJICBmaQorCisJICAjIE5vbi1QSUMgb2JqZWN0LgorCSAgaWYgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisJICAgIG5vbl9waWNfb2JqZWN0PSIkeGRpciRub25fcGljX29iamVjdCIKKworCSAgICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4KKwkgICAgICBhcmc9IiRub25fcGljX29iamVjdCIKKwkgICAgZmkKKwkgIGVsc2UKKwkgICAgIyBJZiB0aGUgUElDIG9iamVjdCBleGlzdHMsIHVzZSBpdCBpbnN0ZWFkLgorCSAgICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQgdG8gJHBpY19vYmplY3QgYWJvdmUuCisJICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorCSAgZmkKKwllbHNlCisJICAjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KKwkgIGlmICRvcHRfZHJ5X3J1bjsgdGhlbgorCSAgICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorCSAgICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgorCSAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKworCSAgICBmdW5jX2xvMm8gIiRhcmciCisJICAgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CisJICAgIG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQKKwkgICAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgorCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisJICBlbHNlCisJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGFyZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiCisJICBmaQorCWZpCisJOzsKKworICAgICAgKi4kbGliZXh0KQorCSMgQW4gYXJjaGl2ZS4KKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorCW9sZF9kZXBsaWJzPSIkb2xkX2RlcGxpYnMgJGFyZyIKKwljb250aW51ZQorCTs7CisKKyAgICAgICoubGEpCisJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBsaWJyYXJ5LgorCisJaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorCSAgIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9wZW4uCisJICBkbGZpbGVzPSIkZGxmaWxlcyAkYXJnIgorCSAgcHJldj0KKwllbGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKwkgICMgVGhlIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCisJICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorCSAgcHJldj0KKwllbHNlCisJICBkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorCWZpCisJY29udGludWUKKwk7OworCisgICAgICAjIFNvbWUgb3RoZXIgY29tcGlsZXIgYXJndW1lbnQuCisgICAgICAqKQorCSMgVW5rbm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1hbmQgbmVlZAorCSMgdG8gYmUgYWVzdGhldGljYWxseSBxdW90ZWQgYmVjYXVzZSB0aGV5IGFyZSBldmFsZWQgbGF0ZXIuCisJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwk7OworICAgICAgZXNhYyAjIGFyZworCisgICAgICAjIE5vdyBhY3R1YWxseSBzdWJzdGl0dXRlIHRoZSBhcmd1bWVudCBpbnRvIHRoZSBjb21tYW5kcy4KKyAgICAgIGlmIHRlc3QgLW4gIiRhcmciOyB0aGVuCisJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKyAgICAgIGZpCisgICAgZG9uZSAjIGFyZ3VtZW50IHBhcnNpbmcgbG9vcAorCisgICAgdGVzdCAtbiAiJHByZXYiICYmIFwKKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIKKworICAgIGlmIHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5ZXMgJiYgdGVzdCAtbiAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRoZW4KKyAgICAgIGV2YWwgYXJnPVwiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCisgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisgICAgZmkKKworICAgIG9sZGxpYnM9CisgICAgIyBjYWxjdWxhdGUgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIHdpdGhvdXQgaXRzIGRpcmVjdG9yeQorICAgIGZ1bmNfYmFzZW5hbWUgIiRvdXRwdXQiCisgICAgb3V0cHV0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorICAgIGxpYm9ianNfc2F2ZT0iJGxpYm9ianMiCisKKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKyAgICAgICMgZ2V0IHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJHNobGlicGF0aF92YXIKKyAgICAgIGV2YWwgc2hsaWJfc2VhcmNoX3BhdGg9XGBcJEVDSE8gXCJYXCR7JHNobGlicGF0aF92YXJ9XCIgXHwgXCRYc2VkIC1lIFwncy86LyAvZ1wnXGAKKyAgICBlbHNlCisgICAgICBzaGxpYl9zZWFyY2hfcGF0aD0KKyAgICBmaQorICAgIGV2YWwgc3lzX2xpYl9zZWFyY2hfcGF0aD1cIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWNcIgorICAgIGV2YWwgc3lzX2xpYl9kbHNlYXJjaF9wYXRoPVwiJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXCIKKworICAgIGZ1bmNfZGlybmFtZSAiJG91dHB1dCIgIi8iICIiCisgICAgb3V0cHV0X29iamRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkb2JqZGlyIgorICAgICMgQ3JlYXRlIHRoZSBvYmplY3QgZGlyZWN0b3J5LgorICAgIGZ1bmNfbWtkaXJfcCAiJG91dHB1dF9vYmpkaXIiCisKKyAgICAjIERldGVybWluZSB0aGUgdHlwZSBvZiBvdXRwdXQKKyAgICBjYXNlICRvdXRwdXQgaW4KKyAgICAiIikKKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSIKKyAgICAgIDs7CisgICAgKi4kbGliZXh0KSBsaW5rbW9kZT1vbGRsaWIgOzsKKyAgICAqLmxvIHwgKi4kb2JqZXh0KSBsaW5rbW9kZT1vYmogOzsKKyAgICAqLmxhKSBsaW5rbW9kZT1saWIgOzsKKyAgICAqKSBsaW5rbW9kZT1wcm9nIDs7ICMgQW55dGhpbmcgZWxzZSBzaG91bGQgYmUgYSBwcm9ncmFtLgorICAgIGVzYWMKKworICAgIHNwZWNpYWxkZXBsaWJzPQorCisgICAgbGlicz0KKyAgICAjIEZpbmQgYWxsIGludGVyZGVwZW5kZW50IGRlcGxpYnMgYnkgc2VhcmNoaW5nIGZvciBsaWJyYXJpZXMKKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKKyAgICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbworICAgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KKwljYXNlICIkbGlicyAiIGluCisJKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCWVzYWMKKyAgICAgIGZpCisgICAgICBsaWJzPSIkbGlicyAkZGVwbGliIgorICAgIGRvbmUKKworICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21waWxlcl9saWJfc2VhcmNoX3BhdGggJHBvc3RkZXBzIgorCisgICAgICAjIENvbXB1dGUgbGlicmFyaWVzIHRoYXQgYXJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZSBpbiAkcHJlZGVwcworICAgICAgIyAkcG9zdGRlcHMgYW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNhdGVzIGFyZQorICAgICAgIyBub3QgdG8gYmUgZWxpbWluYXRlZCkuCisgICAgICBwcmVfcG9zdF9kZXBzPQorICAgICAgaWYgJG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM7IHRoZW4KKwlmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRwb3N0ZGVwczsgZG8KKwkgIGNhc2UgIiRwcmVfcG9zdF9kZXBzICIgaW4KKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJHByZV9wb3N0X2RlcHMiIDs7CisJICBlc2FjCisJICBwcmVfcG9zdF9kZXBzPSIkcHJlX3Bvc3RfZGVwcyAkcHJlX3Bvc3RfZGVwIgorCWRvbmUKKyAgICAgIGZpCisgICAgICBwcmVfcG9zdF9kZXBzPQorICAgIGZpCisKKyAgICBkZXBsaWJzPQorICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KKyAgICBuZXdsaWJfc2VhcmNoX3BhdGg9CisgICAgbmVlZF9yZWxpbms9bm8gIyB3aGV0aGVyIHdlJ3JlIGxpbmtpbmcgYW55IHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCisgICAgbm90aW5zdF9kZXBsaWJzPSAjIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKyAgICBub3RpbnN0X3BhdGg9ICMgcGF0aHMgdGhhdCBjb250YWluIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKworICAgIGNhc2UgJGxpbmttb2RlIGluCisgICAgbGliKQorCXBhc3Nlcz0iY29udiBkbHByZW9wZW4gbGluayIKKwlmb3IgZmlsZSBpbiAkZGxmaWxlcyAkZGxwcmVmaWxlczsgZG8KKwkgIGNhc2UgJGZpbGUgaW4KKwkgICoubGEpIDs7CisJICAqKQorCSAgICBmdW5jX2ZhdGFsX2hlbHAgImxpYnJhcmllcyBjYW4gXGAtZGxvcGVuJyBvbmx5IGxpYnRvb2wgbGlicmFyaWVzOiAkZmlsZSIKKwkgICAgOzsKKwkgIGVzYWMKKwlkb25lCisJOzsKKyAgICBwcm9nKQorCWNvbXBpbGVfZGVwbGlicz0KKwlmaW5hbGl6ZV9kZXBsaWJzPQorCWFsbGRlcGxpYnM9bm8KKwluZXdkbGZpbGVzPQorCW5ld2RscHJlZmlsZXM9CisJcGFzc2VzPSJjb252IHNjYW4gZGxvcGVuIGRscHJlb3BlbiBsaW5rIgorCTs7CisgICAgKikgIHBhc3Nlcz0iY29udiIKKwk7OworICAgIGVzYWMKKworICAgIGZvciBwYXNzIGluICRwYXNzZXM7IGRvCisgICAgICAjIFRoZSBwcmVvcGVuIHBhc3MgaW4gbGliIG1vZGUgcmV2ZXJzZXMgJGRlcGxpYnM7IHB1dCBpdCBiYWNrIGhlcmUKKyAgICAgICMgc28gdGhhdCAtTCBjb21lcyBiZWZvcmUgbGlicyB0aGF0IG5lZWQgaXQgZm9yIGluc3RhbmNlLi4uCisgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIjsgdGhlbgorCSMjIEZJWE1FOiBGaW5kIHRoZSBwbGFjZSB3aGVyZSB0aGUgbGlzdCBpcyByZWJ1aWx0IGluIHRoZSB3cm9uZworCSMjICAgICAgICBvcmRlciwgYW5kIGZpeCBpdCB0aGVyZSBwcm9wZXJseQorICAgICAgICB0bXBfZGVwbGlicz0KKwlmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbworCSAgdG1wX2RlcGxpYnM9IiRkZXBsaWIgJHRtcF9kZXBsaWJzIgorCWRvbmUKKwlkZXBsaWJzPSIkdG1wX2RlcGxpYnMiCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAorCSB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiI7IHRoZW4KKwlsaWJzPSIkZGVwbGlicyIKKwlkZXBsaWJzPQorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisJY2FzZSAkcGFzcyBpbgorCWRsb3BlbikgbGlicz0iJGRsZmlsZXMiIDs7CisJZGxwcmVvcGVuKSBsaWJzPSIkZGxwcmVmaWxlcyIgOzsKKwlsaW5rKSBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIgOzsKKwllc2FjCisgICAgICBmaQorICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsZGxwcmVvcGVuIjsgdGhlbgorCSMgQ29sbGVjdCBhbmQgZm9yd2FyZCBkZXBsaWJzIG9mIHByZW9wZW5lZCBsaWJ0b29sIGxpYnMKKwlmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbworCSAgIyBJZ25vcmUgbm9uLWxpYnRvb2wtbGlicworCSAgZGVwZW5kZW5jeV9saWJzPQorCSAgY2FzZSAkbGliIGluCisJICAqLmxhKQlmdW5jX3NvdXJjZSAiJGxpYiIgOzsKKwkgIGVzYWMKKworCSAgIyBDb2xsZWN0IHByZW9wZW5lZCBsaWJ0b29sIGRlcGxpYnMsIGV4Y2VwdCBhbnkgdGhpcyBsaWJyYXJ5CisJICAjIGhhcyBkZWNsYXJlZCBhcyB3ZWFrIGxpYnMKKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKyAgICAgICAgICAgIGRlcGxpYl9iYXNlPWAkRUNITyAiWCRkZXBsaWIiIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCisJICAgIGNhc2UgIiAkd2Vha19saWJzICIgaW4KKwkgICAgKiIgJGRlcGxpYl9iYXNlICIqKSA7OworCSAgICAqKSBkZXBsaWJzPSIkZGVwbGlicyAkZGVwbGliIiA7OworCSAgICBlc2FjCisJICBkb25lCisJZG9uZQorCWxpYnM9IiRkbHByZWZpbGVzIgorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRsb3BlbjsgdGhlbgorCSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKKwlzYXZlX2RlcGxpYnM9IiRkZXBsaWJzIgorCWRlcGxpYnM9CisgICAgICBmaQorCisgICAgICBmb3IgZGVwbGliIGluICRsaWJzOyBkbworCWxpYj0KKwlmb3VuZD1ubworCWNhc2UgJGRlcGxpYiBpbgorCS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCisJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisJICBlbHNlCisJICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYiIKKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KKwkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKwkJICAgICoiICRkZXBsaWIgIiopIDs7CisJCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OworCQllc2FjCisJICAgIGZpCisJICBmaQorCSAgY29udGludWUKKwkgIDs7CisJLWwqKQorCSAgaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWIgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nOyB0aGVuCisJICAgIGZ1bmNfd2FybmluZyAiXGAtbCcgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMvb2JqZWN0cyIKKwkgICAgY29udGludWUKKwkgIGZpCisJICBmdW5jX3N0cmlwbmFtZSAnLWwnICcnICIkZGVwbGliIgorCSAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxpYl9zZWFyY2hfcGF0aCAkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKKwkgIGVsc2UKKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKKwkgIGZpCisJICBmb3Igc2VhcmNoZGlyIGluICRzZWFyY2hkaXJzOyBkbworCSAgICBmb3Igc2VhcmNoX2V4dCBpbiAubGEgJHN0ZF9zaHJleHQgLnNvIC5hOyBkbworCSAgICAgICMgU2VhcmNoIHRoZSBsaWJ0b29sIGxpYnJhcnkKKwkgICAgICBsaWI9IiRzZWFyY2hkaXIvbGliJHtuYW1lfSR7c2VhcmNoX2V4dH0iCisJICAgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKwkJaWYgdGVzdCAiJHNlYXJjaF9leHQiID0gIi5sYSI7IHRoZW4KKwkJICBmb3VuZD15ZXMKKwkJZWxzZQorCQkgIGZvdW5kPW5vCisJCWZpCisJCWJyZWFrIDIKKwkgICAgICBmaQorCSAgICBkb25lCisJICBkb25lCisJICBpZiB0ZXN0ICIkZm91bmQiICE9IHllczsgdGhlbgorCSAgICAjIGRlcGxpYiBkb2Vzbid0IHNlZW0gdG8gYmUgYSBsaWJ0b29sIGxpYnJhcnkKKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKwkgICAgZWxzZQorCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKwkgICAgZmkKKwkgICAgY29udGludWUKKwkgIGVsc2UgIyBkZXBsaWIgaXMgYSBsaWJ0b29sIGxpYnJhcnkKKwkgICAgIyBJZiAkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBsaWIgaXMgYSBzdGRsaWIsCisJICAgICMgV2UgbmVlZCB0byBkbyBzb21lIHNwZWNpYWwgdGhpbmdzIGhlcmUsIGFuZCBub3QgbGF0ZXIuCisJICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKwkgICAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKwkgICAgICAqIiAkZGVwbGliICIqKQorCQlpZiBmdW5jX2xhbGliX3AgIiRsaWIiOyB0aGVuCisJCSAgbGlicmFyeV9uYW1lcz0KKwkJICBvbGRfbGlicmFyeT0KKwkJICBmdW5jX3NvdXJjZSAiJGxpYiIKKwkJICBmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCisJCSAgICBsbD0iJGwiCisJCSAgZG9uZQorCQkgIGlmIHRlc3QgIlgkbGwiID0gIlgkb2xkX2xpYnJhcnkiIDsgdGhlbiAjIG9ubHkgc3RhdGljIHZlcnNpb24gYXZhaWxhYmxlCisJCSAgICBmb3VuZD1ubworCQkgICAgZnVuY19kaXJuYW1lICIkbGliIiAiIiAiLiIKKwkJICAgIGxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKwkJICAgIGxpYj0kbGFkaXIvJG9sZF9saWJyYXJ5CisJCSAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKwkJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisJCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisJCSAgICBlbHNlCisJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisJCSAgICAgIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisJCSAgICBmaQorCQkgICAgY29udGludWUKKwkJICBmaQorCQlmaQorCQk7OworCSAgICAgICopIDs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgZmkKKwkgIDs7ICMgLWwKKwkqLmx0ZnJhbWV3b3JrKQorCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorCSAgZWxzZQorCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgorCQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgorCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKKwkJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBsaWIiIDs7CisJCWVzYWMKKwkgICAgZmkKKwkgIGZpCisJICBjb250aW51ZQorCSAgOzsKKwktTCopCisJICBjYXNlICRsaW5rbW9kZSBpbgorCSAgbGliKQorCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICB0ZXN0ICIkcGFzcyIgPSBjb252ICYmIGNvbnRpbnVlCisJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorCSAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKwkgICAgOzsKKwkgIHByb2cpCisJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICAgIGNvbnRpbnVlCisJICAgIGZpCisJICAgIGlmIHRlc3QgIiRwYXNzIiA9IHNjYW47IHRoZW4KKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICBlbHNlCisJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKwkgICAgZmkKKwkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisJICAgIDs7CisJICAqKQorCSAgICBmdW5jX3dhcm5pbmcgIlxgLUwnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzL29iamVjdHMiCisJICAgIDs7CisJICBlc2FjICMgbGlua21vZGUKKwkgIGNvbnRpbnVlCisJICA7OyAjIC1MCisJLVIqKQorCSAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorCSAgICBmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkZGVwbGliIgorCSAgICBkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgICAjIE1ha2Ugc3VyZSB0aGUgeHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgorCSAgICBjYXNlICIkeHJwYXRoICIgaW4KKwkgICAgKiIgJGRpciAiKikgOzsKKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7CisJICAgIGVzYWMKKwkgIGZpCisJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgY29udGludWUKKwkgIDs7CisJKi5sYSkgbGliPSIkZGVwbGliIiA7OworCSouJGxpYmV4dCkKKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgICAgY29udGludWUKKwkgIGZpCisJICBjYXNlICRsaW5rbW9kZSBpbgorCSAgbGliKQorCSAgICAjIExpbmtpbmcgY29udmVuaWVuY2UgbW9kdWxlcyBpbnRvIHNoYXJlZCBsaWJyYXJpZXMgaXMgYWxsb3dlZCwKKwkgICAgIyBidXQgbGlua2luZyBvdGhlciBzdGF0aWMgbGlicmFyaWVzIGlzIG5vbi1wb3J0YWJsZS4KKwkgICAgY2FzZSAiICRkbHByZWNvbnZlbmllbmNlbGlicyAiIGluCisJICAgICoiICRkZXBsaWIgIiopIDs7CisJICAgICopCisJICAgICAgdmFsaWRfYV9saWI9bm8KKwkgICAgICBjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorCQltYXRjaF9wYXR0ZXJuKikKKwkJICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAorCQkgIG1hdGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKKwkJICBpZiBldmFsICJcJEVDSE8gXCJYJGRlcGxpYlwiIiAyPi9kZXYvbnVsbCB8ICRYc2VkIC1lIDEwcSBcCisJCSAgICB8ICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisJCSAgICB2YWxpZF9hX2xpYj15ZXMKKwkJICBmaQorCQk7OworCQlwYXNzX2FsbCkKKwkJICB2YWxpZF9hX2xpYj15ZXMKKwkJOzsKKwkgICAgICBlc2FjCisJICAgICAgaWYgdGVzdCAiJHZhbGlkX2FfbGliIiAhPSB5ZXM7IHRoZW4KKwkJJEVDSE8KKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBUcnlpbmcgdG8gbGluayB3aXRoIHN0YXRpYyBsaWIgYXJjaGl2ZSAkZGVwbGliLiIKKwkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisJCSRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorCQkkRUNITyAiKioqIGJlY2F1c2UgdGhlIGZpbGUgZXh0ZW5zaW9ucyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2VzIG1lIGJlbGlldmUiCisJCSRFQ0hPICIqKiogdGhhdCBpdCBpcyBqdXN0IGEgc3RhdGljIGFyY2hpdmUgdGhhdCBJIHNob3VsZCBub3QgdXNlIGhlcmUuIgorCSAgICAgIGVsc2UKKwkJJEVDSE8KKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIgorCQkkRUNITyAiKioqIHN0YXRpYyBsaWJyYXJ5ICRkZXBsaWIgaXMgbm90IHBvcnRhYmxlISIKKwkJZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgICAgICBmaQorCSAgICAgIDs7CisJICAgIGVzYWMKKwkgICAgY29udGludWUKKwkgICAgOzsKKwkgIHByb2cpCisJICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCisJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgICAgZWxzZQorCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisJICAgIGZpCisJICAgIGNvbnRpbnVlCisJICAgIDs7CisJICBlc2FjICMgbGlua21vZGUKKwkgIDs7ICMgKi4kbGliZXh0CisJKi5sbyB8ICouJG9iamV4dCkKKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKwkgICAgICAjIElmIHRoZXJlIGlzIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdlJ3JlIGxpbmtpbmcgc3RhdGljYWxseSwKKwkgICAgICAjIHdlIG5lZWQgdG8gcHJlbG9hZC4KKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGVwbGliIgorCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisJICAgIGVsc2UKKwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkZGVwbGliIgorCSAgICBmaQorCSAgZmkKKwkgIGNvbnRpbnVlCisJICA7OworCSVERVBMSUJTJSkKKwkgIGFsbGRlcGxpYnM9eWVzCisJICBjb250aW51ZQorCSAgOzsKKwllc2FjICMgY2FzZSAkZGVwbGliCisKKwlpZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8IHRlc3QgLWYgIiRsaWIiOyB0aGVuIDoKKwllbHNlCisJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCB0aGUgbGlicmFyeSBcYCRsaWInIG9yIHVuaGFuZGxlZCBhcmd1bWVudCBcYCRkZXBsaWInIgorCWZpCisKKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRsaWIiIFwKKwkgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorCisJZnVuY19kaXJuYW1lICIkbGliIiAiIiAiLiIKKwlsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisKKwlkbG5hbWU9CisJZGxvcGVuPQorCWRscHJlb3Blbj0KKwlsaWJkaXI9CisJbGlicmFyeV9uYW1lcz0KKwlvbGRfbGlicmFyeT0KKwlpbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQorCSMgSWYgdGhlIGxpYnJhcnkgd2FzIGluc3RhbGxlZCB3aXRoIGFuIG9sZCByZWxlYXNlIG9mIGxpYnRvb2wsCisJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2YXJpYWJsZXMgaW5zdGFsbGVkLCBvciBzaG91bGRub3RsaW5rCisJaW5zdGFsbGVkPXllcworCXNob3VsZG5vdGxpbms9bm8KKwlhdm9pZHRlbXBycGF0aD0KKworCisJIyBSZWFkIHRoZSAubGEgZmlsZQorCWZ1bmNfc291cmNlICIkbGliIgorCisJIyBDb252ZXJ0ICItZnJhbWV3b3JrIGZvbyIgdG8gImZvby5sdGZyYW1ld29yayIKKwlpZiB0ZXN0IC1uICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyI7IHRoZW4KKwkgIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiWCRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2VkIC1lICdzLy1mcmFtZXdvcmsgXChbXiAkXSpcKS9cMS5sdGZyYW1ld29yay9nJ2AKKwkgIGZvciB0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIGluICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnczsgZG8KKwkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisJICAgICAgKiIgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgIiopIDs7CisJICAgICAgKikgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyI7OworCSAgICBlc2FjCisJICBkb25lCisJZmkKKwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICJYICRkZXBlbmRlbmN5X2xpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKKwkgICB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiIgfHwKKwkgICB7IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgfTsgdGhlbgorCSAgdGVzdCAtbiAiJGRsb3BlbiIgJiYgZGxmaWxlcz0iJGRsZmlsZXMgJGRsb3BlbiIKKwkgIHRlc3QgLW4gIiRkbHByZW9wZW4iICYmIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRkbHByZW9wZW4iCisJZmkKKworCWlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzCisJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgorCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKwkgICAgaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorCSAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgorCSAgICBmaQorCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCisJICAgIGNvbnZlbmllbmNlPSIkY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgorCSAgICBvbGRfY29udmVuaWVuY2U9IiRvbGRfY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgorCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRoZW4KKwkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSBjb252ZW5pZW5jZSBsaWJyYXJ5IgorCSAgZmkKKwkgIHRtcF9saWJzPQorCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCisJICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCSAgICAgIGVzYWMKKwkgICAgZmkKKwkgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgorCSAgZG9uZQorCSAgY29udGludWUKKwlmaSAjICRwYXNzID0gY29udgorCisKKwkjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSB3ZSBsaW5rIGFnYWluc3QuCisJbGlua2xpYj0KKwlmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCisJICBsaW5rbGliPSIkbCIKKwlkb25lCisJaWYgdGVzdCAteiAiJGxpbmtsaWIiOyB0aGVuCisJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAkbGliJyIKKwlmaQorCisJIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9wZW4uCisJaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgorCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgLWRsb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciCisJICBmaQorCSAgaWYgdGVzdCAteiAiJGRsbmFtZSIgfHwKKwkgICAgIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8CisJICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisJICAgICMgSWYgdGhlcmUgaXMgbm8gZGxuYW1lLCBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nCisJICAgICMgc3RhdGljYWxseSwgd2UgbmVlZCB0byBwcmVsb2FkLiAgV2UgYWxzbyBuZWVkIHRvIHByZWxvYWQgYW55CisJICAgICMgZGVwZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3MgZGVwbGliIHByZWxvYWRlciBkb2Vzbid0CisJICAgICMgYm9tYiBvdXQgaW4gdGhlIGxvYWQgZGVwbGlicyBwaGFzZS4KKwkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGxpYiAkZGVwZW5kZW5jeV9saWJzIgorCSAgZWxzZQorCSAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliIgorCSAgZmkKKwkgIGNvbnRpbnVlCisJZmkgIyAkcGFzcyA9IGRsb3BlbgorCisJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisJY2FzZSAkbGFkaXIgaW4KKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic19sYWRpcj0iJGxhZGlyIiA7OworCSopCisJICBhYnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKKwkgIGlmIHRlc3QgLXogIiRhYnNfbGFkaXIiOyB0aGVuCisJICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRsYWRpciciCisJICAgIGZ1bmNfd2FybmluZyAicGFzc2luZyBpdCBsaXRlcmFsbHkgdG8gdGhlIGxpbmtlciwgYWx0aG91Z2ggaXQgbWlnaHQgZmFpbCIKKwkgICAgYWJzX2xhZGlyPSIkbGFkaXIiCisJICBmaQorCSAgOzsKKwllc2FjCisJZnVuY19iYXNlbmFtZSAiJGxpYiIKKwlsYW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKworCSMgRmluZCB0aGUgcmVsZXZhbnQgb2JqZWN0IGRpcmVjdG9yeSBhbmQgbGlicmFyeSBuYW1lLgorCWlmIHRlc3QgIlgkaW5zdGFsbGVkIiA9IFh5ZXM7IHRoZW4KKwkgIGlmIHRlc3QgISAtZiAiJGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KKwkgICAgZnVuY193YXJuaW5nICJsaWJyYXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKKwkgICAgZGlyPSIkbGFkaXIiCisJICAgIGFic2Rpcj0iJGFic19sYWRpciIKKwkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgorCSAgZWxzZQorCSAgICBkaXI9IiRsaWJkaXIiCisJICAgIGFic2Rpcj0iJGxpYmRpciIKKwkgIGZpCisJICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSBYeWVzICYmIGF2b2lkdGVtcHJwYXRoPXllcworCWVsc2UKKwkgIGlmIHRlc3QgISAtZiAiJGxhZGlyLyRvYmpkaXIvJGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIiOyB0aGVuCisJICAgIGRpcj0iJGxhZGlyIgorCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIiCisJICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNoIHBhdGggbGF0ZXIKKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCisJICBlbHNlCisJICAgIGRpcj0iJGxhZGlyLyRvYmpkaXIiCisJICAgIGFic2Rpcj0iJGFic19sYWRpci8kb2JqZGlyIgorCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisJICAgIG5vdGluc3RfcGF0aD0iJG5vdGluc3RfcGF0aCAkYWJzX2xhZGlyIgorCSAgZmkKKwlmaSAjICRpbnN0YWxsZWQgPSB5ZXMKKwlmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmxhJyAiJGxhbmFtZSIKKwluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKworCSMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxwcmVvcGVuLgorCWlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbjsgdGhlbgorCSAgaWYgdGVzdCAteiAiJGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKwkgICAgZnVuY19mYXRhbF9lcnJvciAib25seSBsaWJyYXJpZXMgbWF5IC1kbHByZW9wZW4gYSBjb252ZW5pZW5jZSBsaWJyYXJ5OiBcYCRsaWInIgorCSAgZmkKKwkgICMgUHJlZmVyIHVzaW5nIGEgc3RhdGljIGxpYnJhcnkgKHNvIHRoYXQgbm8gc2lsbHkgX0RZTkFNSUMgc3ltYm9scworCSAgIyBhcmUgcmVxdWlyZWQgdG8gbGluaykuCisJICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCisJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJG9sZF9saWJyYXJ5IgorCSAgICAjIEtlZXAgYSBsaXN0IG9mIHByZW9wZW5lZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8gY2hlY2sKKwkgICAgIyB0aGF0IHRoZXkgYXJlIGJlaW5nIHVzZWQgY29ycmVjdGx5IGluIHRoZSBsaW5rIHBhc3MuCisJICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKwkJZGxwcmVjb252ZW5pZW5jZWxpYnM9IiRkbHByZWNvbnZlbmllbmNlbGlicyAkZGlyLyRvbGRfbGlicmFyeSIKKwkgICMgT3RoZXJ3aXNlLCB1c2UgdGhlIGRsbmFtZSwgc28gdGhhdCBsdF9kbG9wZW4gZmluZHMgaXQuCisJICBlbGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCisJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJGRsbmFtZSIKKwkgIGVsc2UKKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kbGlua2xpYiIKKwkgIGZpCisJZmkgIyAkcGFzcyA9IGRscHJlb3BlbgorCisJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKwkgICMgTGluayB0aGUgY29udmVuaWVuY2UgbGlicmFyeQorCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIKKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGZpbmFsaXplX2RlcGxpYnMiCisJICBlbHNlCisJICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3IgcHJvZyxzY2FuIHBhc3MKKwkgIGZpCisJICBjb250aW51ZQorCWZpCisKKworCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCisJICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxhZGlyIgorCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKKworCSAgbGlua2FsbGRlcGxpYnM9bm8KKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubyB8fCB0ZXN0IC16ICIkbGlicmFyeV9uYW1lcyIgfHwKKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKwkgICAgbGlua2FsbGRlcGxpYnM9eWVzCisJICBmaQorCisJICB0bXBfbGlicz0KKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKwkgICAgY2FzZSAkZGVwbGliIGluCisJICAgIC1MKikgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKKwkgICAgICAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKwkJIDs7CisJICAgIGVzYWMKKwkgICAgIyBOZWVkIHRvIGxpbmsgYWdhaW5zdCBhbGwgZGVwZW5kZW5jeV9saWJzPworCSAgICBpZiB0ZXN0ICIkbGlua2FsbGRlcGxpYnMiID0geWVzOyB0aGVuCisJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgICAgZWxzZQorCSAgICAgICMgTmVlZCB0byBoYXJkY29kZSBzaGFyZWQgbGlicmFyeSBwYXRocworCSAgICAgICMgb3IvYW5kIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGlicmFyaWVzCisJICAgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisJICAgIGZpCisJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCisJICAgICAgY2FzZSAiJHRtcF9saWJzICIgaW4KKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisJICBkb25lICMgZm9yIGRlcGxpYgorCSAgY29udGludWUKKwlmaSAjICRsaW5rbW9kZSA9IHByb2cuLi4KKworCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisJICAgICB7IHsgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSBubyB8fAorCSAgICAgICAgIHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMsJGluc3RhbGxlZCIgPSAiYnVpbHQseWVzIjsgfSB8fAorCSAgICAgICB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisJICAgICMgV2UgbmVlZCB0byBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoCisJICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC16ICIkYXZvaWR0ZW1wcnBhdGgiIDsgdGhlbgorCSAgICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKwkgICAgICBjYXNlICIkdGVtcF9ycGF0aDoiIGluCisJICAgICAgKiIkYWJzZGlyOiIqKSA7OworCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoJGFic2RpcjoiIDs7CisJICAgICAgZXNhYworCSAgICBmaQorCisJICAgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aC4KKwkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQorCSAgICAjIHNlYXJjaCBwYXRoLgorCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCisJICAgICoiICRhYnNkaXIgIiopIDs7CisJICAgICopCisJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgorCSAgICAgICoiICRhYnNkaXIgIiopIDs7CisJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKwkgICAgICBlc2FjCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCisJICAgICoiICRsaWJkaXIgIiopIDs7CisJICAgICopCisJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKwkgICAgICBlc2FjCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgZmkgIyAkbGlua21vZGUsJHBhc3MgPSBwcm9nLGxpbmsuLi4KKworCSAgaWYgdGVzdCAiJGFsbGRlcGxpYnMiID0geWVzICYmCisJICAgICB7IHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSBwYXNzX2FsbCB8fAorCSAgICAgICB7IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmCisJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IH07IH07IHRoZW4KKwkgICAgIyBXZSBvbmx5IG5lZWQgdG8gc2VhcmNoIGZvciBzdGF0aWMgbGlicmFyaWVzCisJICAgIGNvbnRpbnVlCisJICBmaQorCWZpCisKKwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5CisJdXNlX3N0YXRpY19saWJzPSRwcmVmZXJfc3RhdGljX2xpYnMKKwlpZiB0ZXN0ICIkdXNlX3N0YXRpY19saWJzIiA9IGJ1aWx0ICYmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCisJICB1c2Vfc3RhdGljX2xpYnM9bm8KKwlmaQorCWlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgorCSAgIHsgdGVzdCAiJHVzZV9zdGF0aWNfbGlicyIgPSBubyB8fCB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisJICBjYXNlICRob3N0IGluCisJICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqKQorCSAgICAgICMgTm8gcG9pbnQgaW4gcmVsaW5raW5nIERMTHMgYmVjYXVzZSBwYXRocyBhcmUgbm90IGVuY29kZWQKKwkgICAgICBub3RpbnN0X2RlcGxpYnM9IiRub3RpbnN0X2RlcGxpYnMgJGxpYiIKKwkgICAgICBuZWVkX3JlbGluaz1ubworCSAgICA7OworCSAgKikKKwkgICAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBubzsgdGhlbgorCSAgICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorCSAgICAgIG5lZWRfcmVsaW5rPXllcworCSAgICBmaQorCSAgICA7OworCSAgZXNhYworCSAgIyBUaGlzIGlzIGEgc2hhcmVkIGxpYnJhcnkKKworCSAgIyBXYXJuIGFib3V0IHBvcnRhYmlsaXR5LCBjYW4ndCBsaW5rIGFnYWluc3QgLW1vZHVsZSdzIG9uIHNvbWUKKwkgICMgc3lzdGVtcyAoZGFyd2luKS4gIERvbid0IGJsZWF0IGFib3V0IGRsb3BlbmVkIG1vZHVsZXMgdGhvdWdoIQorCSAgZGxvcGVubW9kdWxlPSIiCisJICBmb3IgZGxwcmVtb2R1bGV0ZXN0IGluICRkbHByZWZpbGVzOyBkbworCSAgICBpZiB0ZXN0ICJYJGRscHJlbW9kdWxldGVzdCIgPSAiWCRsaWIiOyB0aGVuCisJICAgICAgZGxvcGVubW9kdWxlPSIkZGxwcmVtb2R1bGV0ZXN0IgorCSAgICAgIGJyZWFrCisJICAgIGZpCisJICBkb25lCisJICBpZiB0ZXN0IC16ICIkZGxvcGVubW9kdWxlIiAmJiB0ZXN0ICIkc2hvdWxkbm90bGluayIgPSB5ZXMgJiYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorCSAgICAkRUNITworCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgZXhlY3V0YWJsZSAkb3V0cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKKwkgICAgZWxzZQorCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCisJICAgIGZpCisJICAgICRFQ0hPICIqKiogJGxpbmtsaWIgaXMgbm90IHBvcnRhYmxlISIKKwkgIGZpCisJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmCisJICAgICB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgorCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisJICAgICMgU2tpcCBkaXJlY3RvcmllcyB0aGF0IGFyZSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgcnVuLXRpbWUKKwkgICAgIyBzZWFyY2ggcGF0aC4KKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorCSAgICAqIiAkYWJzZGlyICIqKSA7OworCSAgICAqKQorCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KKwkgICAgICAqIiAkYWJzZGlyICIqKSA7OworCSAgICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIiCisJICAgICAgZXNhYworCSAgICAgIDs7CisJICAgIGVzYWMKKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorCSAgICAqIiAkbGliZGlyICIqKSA7OworCSAgICAqKQorCSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisJICAgICAgKiIgJGxpYmRpciAiKikgOzsKKwkgICAgICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiCisJICAgICAgZXNhYworCSAgICAgIDs7CisJICAgIGVzYWMKKwkgIGZpCisKKwkgIGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyI7IHRoZW4KKwkgICAgIyBmaWd1cmUgb3V0IHRoZSBzb25hbWUKKwkgICAgc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisJICAgIHNoaWZ0CisJICAgIHJlYWxuYW1lPSIkMSIKKwkgICAgc2hpZnQKKwkgICAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisJICAgICMgdXNlIGRsbmFtZSBpZiB3ZSBnb3QgaXQuIGl0J3MgcGVyZmVjdGx5IGdvb2QsIG5vPworCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgorCSAgICAgIHNvbmFtZT0iJGRsbmFtZSIKKwkgICAgZWxpZiB0ZXN0IC1uICIkc29uYW1lX3NwZWMiOyB0aGVuCisJICAgICAgIyBibGVoIHdpbmRvd3MKKwkgICAgICBjYXNlICRob3N0IGluCisJICAgICAgKmN5Z3dpbiogfCBtaW5ndyogfCAqY2VnY2MqKQorCSAgICAgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKwkJbWFqb3I9JGZ1bmNfYXJpdGhfcmVzdWx0CisJCXZlcnN1ZmZpeD0iLSRtYWpvciIKKwkJOzsKKwkgICAgICBlc2FjCisJICAgICAgZXZhbCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgorCSAgICBlbHNlCisJICAgICAgc29uYW1lPSIkcmVhbG5hbWUiCisJICAgIGZpCisKKwkgICAgIyBNYWtlIGEgbmV3IG5hbWUgZm9yIHRoZSBleHRyYWN0X2V4cHN5bXNfY21kcyB0byB1c2UKKwkgICAgc29yb290PSIkc29uYW1lIgorCSAgICBmdW5jX2Jhc2VuYW1lICIkc29yb290IgorCSAgICBzb25hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkgICAgZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5kbGwnICIkc29uYW1lIgorCSAgICBuZXdsaWI9bGliaW1wLSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuYQorCisJICAgICMgSWYgdGhlIGxpYnJhcnkgaGFzIG5vIGV4cG9ydCBsaXN0LCB0aGVuIGNyZWF0ZSBvbmUgbm93CisJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6CisJICAgIGVsc2UKKwkgICAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBcYCRzb25hbWUnIgorCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZXh0cmFjdF9leHBzeW1zX2NtZHMiICdleGl0ICQ/JworCSAgICBmaQorCisJICAgICMgQ3JlYXRlICRuZXdsaWIKKwkgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJG5ld2xpYiI7IHRoZW4gOjsgZWxzZQorCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBpbXBvcnQgbGlicmFyeSBmb3IgXGAkc29uYW1lJyIKKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiAnZXhpdCAkPycKKwkgICAgZmkKKwkgICAgIyBtYWtlIHN1cmUgdGhlIGxpYnJhcnkgdmFyaWFibGVzIGFyZSBwb2ludGluZyB0byB0aGUgbmV3IGxpYnJhcnkKKwkgICAgZGlyPSRvdXRwdXRfb2JqZGlyCisJICAgIGxpbmtsaWI9JG5ld2xpYgorCSAgZmkgIyB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiCisKKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4KKwkgICAgYWRkX3NobGlicGF0aD0KKwkgICAgYWRkX2Rpcj0KKwkgICAgYWRkPQorCSAgICBsaWJfbGlua2VkPXllcworCSAgICBjYXNlICRoYXJkY29kZV9hY3Rpb24gaW4KKwkgICAgaW1tZWRpYXRlIHwgdW5zdXBwb3J0ZWQpCisJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSBubzsgdGhlbgorCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCisJCWNhc2UgJGhvc3QgaW4KKwkJICAqLSotc2NvMy4ydjUuMC5bMDI0XSopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKwkJICAqLSotc3lzdjQqdXcyKikgYWRkX2Rpcj0iLUwkZGlyIiA7OworCQkgICotKi1zeXN2NU9wZW5VTklYKiB8ICotKi1zeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgXAorCQkgICAgKi0qLXVuaXh3YXJlNyopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKwkJICAqLSotZGFyd2luKiApCisJCSAgICAjIGlmIHRoZSBsaWIgaXMgYSAobm9uLWRsb3BlbmVkKSBtb2R1bGUgdGhlbiB3ZSBjYW4gbm90CisJCSAgICAjIGxpbmsgYWdhaW5zdCBpdCwgc29tZW9uZSBpcyBpZ25vcmluZyB0aGUgZWFybGllciB3YXJuaW5ncworCQkgICAgaWYgL3Vzci9iaW4vZmlsZSAtTCAkYWRkIDI+IC9kZXYvbnVsbCB8CisJCQkgJEdSRVAgIjogW146XSogYnVuZGxlIiA+L2Rldi9udWxsIDsgdGhlbgorCQkgICAgICBpZiB0ZXN0ICJYJGRsb3Blbm1vZHVsZSIgIT0gIlgkbGliIjsgdGhlbgorCQkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaWIgJGxpbmtsaWIgaXMgYSBtb2R1bGUsIG5vdCBhIHNoYXJlZCBsaWJyYXJ5IgorCQkJaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IiA7IHRoZW4KKwkJCSAgJEVDSE8KKwkJCSAgJEVDSE8gIioqKiBBbmQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgc3RhdGljIGFyY2hpdmUgYXZhaWxhYmxlIgorCQkJICAkRUNITyAiKioqIFRoZSBsaW5rIHdpbGwgcHJvYmFibHkgZmFpbCwgc29ycnkiCisJCQllbHNlCisJCQkgIGFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCisJCQlmaQorCQkgICAgICBlbGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKwkJCWFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCisJCSAgICAgIGZpCisJCSAgICBmaQorCQllc2FjCisJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSBubzsgdGhlbgorCQljYXNlICRob3N0IGluCisJCSotKi1zdW5vcyopIGFkZF9zaGxpYnBhdGg9IiRkaXIiIDs7CisJCWVzYWMKKwkJYWRkX2Rpcj0iLUwkZGlyIgorCQlhZGQ9Ii1sJG5hbWUiCisJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSBubzsgdGhlbgorCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgorCQlhZGQ9Ii1sJG5hbWUiCisJICAgICAgZWxzZQorCQlsaWJfbGlua2VkPW5vCisJICAgICAgZmkKKwkgICAgICA7OworCSAgICByZWxpbmspCisJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKKwkgICAgICAgICB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiA9IG5vOyB0aGVuCisJCWFkZD0iJGRpci8kbGlua2xpYiIKKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgorCQlhZGRfZGlyPSItTCRkaXIiCisJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KKwkJaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KKwkJICBjYXNlICRsaWJkaXIgaW4KKwkJICAgIFtcXC9dKikKKwkJICAgICAgYWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKKwkJICAgICAgOzsKKwkJICBlc2FjCisJCWZpCisJCWFkZD0iLWwkbmFtZSIKKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgorCQlhZGQ9Ii1sJG5hbWUiCisJICAgICAgZWxzZQorCQlsaWJfbGlua2VkPW5vCisJICAgICAgZmkKKwkgICAgICA7OworCSAgICAqKSBsaWJfbGlua2VkPW5vIDs7CisJICAgIGVzYWMKKworCSAgICBpZiB0ZXN0ICIkbGliX2xpbmtlZCIgIT0geWVzOyB0aGVuCisJICAgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJ1bnN1cHBvcnRlZCBoYXJkY29kZSBwcm9wZXJ0aWVzIgorCSAgICBmaQorCisJICAgIGlmIHRlc3QgLW4gIiRhZGRfc2hsaWJwYXRoIjsgdGhlbgorCSAgICAgIGNhc2UgOiRjb21waWxlX3NobGlicGF0aDogaW4KKwkgICAgICAqIjokYWRkX3NobGlicGF0aDoiKikgOzsKKwkgICAgICAqKSBjb21waWxlX3NobGlicGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJGFkZF9zaGxpYnBhdGg6IiA7OworCSAgICAgIGVzYWMKKwkgICAgZmkKKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgY29tcGlsZV9kZXBsaWJzPSIkYWRkX2RpciAkY29tcGlsZV9kZXBsaWJzIgorCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZCAkY29tcGlsZV9kZXBsaWJzIgorCSAgICBlbHNlCisJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgorCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCisJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0geWVzICYmCisJCSB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0geWVzICYmCisJCSB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KKwkJY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4KKwkJKiI6JGxpYmRpcjoiKikgOzsKKwkJKikgZmluYWxpemVfc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoJGxpYmRpcjoiIDs7CisJCWVzYWMKKwkgICAgICBmaQorCSAgICBmaQorCSAgZmkKKworCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJICAgIGFkZF9zaGxpYnBhdGg9CisJICAgIGFkZF9kaXI9CisJICAgIGFkZD0KKwkgICAgIyBGaW5hbGl6ZSBjb21tYW5kIGZvciBib3RoIGlzIHNpbXBsZToganVzdCBoYXJkY29kZSBpdC4KKwkgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKKwkgICAgICAgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgPSBubzsgdGhlbgorCSAgICAgIGFkZD0iJGxpYmRpci8kbGlua2xpYiIKKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KKwkgICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCisJICAgICAgYWRkPSItbCRuYW1lIgorCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorCSAgICAgIGNhc2UgOiRmaW5hbGl6ZV9zaGxpYnBhdGg6IGluCisJICAgICAgKiI6JGxpYmRpcjoiKikgOzsKKwkgICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIgOzsKKwkgICAgICBlc2FjCisJICAgICAgYWRkPSItbCRuYW1lIgorCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCisJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciIgJiYKKwkJIHRlc3QgLWYgIiRpbnN0X3ByZWZpeF9kaXIkbGliZGlyLyRsaW5rbGliIiA7IHRoZW4KKwkJYWRkPSIkaW5zdF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIKKwkgICAgICBlbHNlCisJCWFkZD0iJGxpYmRpci8kbGlua2xpYiIKKwkgICAgICBmaQorCSAgICBlbHNlCisJICAgICAgIyBXZSBjYW5ub3Qgc2VlbSB0byBoYXJkY29kZSBpdCwgZ3Vlc3Mgd2UnbGwgZmFrZSBpdC4KKwkgICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCisJICAgICAgIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgorCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCisJCWNhc2UgJGxpYmRpciBpbgorCQkgIFtcXC9dKikKKwkJICAgIGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCisJCSAgICA7OworCQllc2FjCisJICAgICAgZmkKKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisJICAgIGZpCisKKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIgJGZpbmFsaXplX2RlcGxpYnMiCisJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZCAkZmluYWxpemVfZGVwbGlicyIKKwkgICAgZWxzZQorCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgorCSAgICBmaQorCSAgZmkKKwllbGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisJICAjIEhlcmUgd2UgYXNzdW1lIHRoYXQgb25lIG9mIGhhcmRjb2RlX2RpcmVjdCBvciBoYXJkY29kZV9taW51c19MCisJICAjIGlzIG5vdCB1bnN1cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24gYWxsIGtub3duIHN0YXRpYyBhbmQKKwkgICMgc2hhcmVkIHBsYXRmb3Jtcy4KKwkgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHVuc3VwcG9ydGVkOyB0aGVuCisJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgbGlua2xpYj0iJG9sZF9saWJyYXJ5IgorCSAgICBjb21waWxlX2RlcGxpYnM9IiRkaXIvJGxpbmtsaWIgJGNvbXBpbGVfZGVwbGlicyIKKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkZmluYWxpemVfZGVwbGlicyIKKwkgIGVsc2UKKwkgICAgY29tcGlsZV9kZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkY29tcGlsZV9kZXBsaWJzIgorCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkZmluYWxpemVfZGVwbGlicyIKKwkgIGZpCisJZWxpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorCSAgIyBOb3QgYSBzaGFyZWQgbGlicmFyeQorCSAgaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgorCSAgICAjIFdlJ3JlIHRyeWluZyBsaW5rIGEgc2hhcmVkIGxpYnJhcnkgYWdhaW5zdCBhIHN0YXRpYyBvbmUKKwkgICAgIyBidXQgdGhlIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgaXQuCisKKwkgICAgIyBKdXN0IHByaW50IGEgd2FybmluZyBhbmQgYWRkIHRoZSBsaWJyYXJ5IHRvIGRlcGVuZGVuY3lfbGlicyBzbworCSAgICAjIHRoYXQgdGhlIHByb2dyYW0gY2FuIGJlIGxpbmtlZCBhZ2FpbnN0IHRoZSBzdGF0aWMgbGlicmFyeS4KKwkgICAgJEVDSE8KKwkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBUaGlzIHN5c3RlbSBjYW4gbm90IGxpbmsgdG8gc3RhdGljIGxpYiBhcmNoaXZlICRsaWIuIgorCSAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisJICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUuIgorCSAgICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorCSAgICAgICRFQ0hPICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQgYSBtb2R1bGUgbGlicmFyeSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCisJICAgICAgJEVDSE8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIGFwcGxpY2F0aW9uIgorCSAgICAgICRFQ0hPICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZyB0byByZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4iCisJICAgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKwkJJEVDSE8KKwkJJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgorCQkkRUNITyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKKwkJJEVDSE8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNzLiIKKwkJJEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorCSAgICAgIGZpCisJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCisJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKwkJYnVpbGRfb2xkX2xpYnM9eWVzCisJICAgICAgZWxzZQorCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKwkgICAgICBmaQorCSAgICBmaQorCSAgZWxzZQorCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKKwkgICAgbGlua19zdGF0aWM9eWVzCisJICBmaQorCWZpICMgbGluayBzaGFyZWQvc3RhdGljIGxpYnJhcnk/CisKKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgorCSAgICAgeyB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMgfHwKKwkgICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyB8fAorCSAgICAgICB0ZXN0ICIkbGlua19zdGF0aWMiID0geWVzOyB9OyB0aGVuCisJICAgICMgRXh0cmFjdCAtUiBmcm9tIGRlcGVuZGVuY3lfbGlicworCSAgICB0ZW1wX2RlcGxpYnM9CisJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKwkgICAgICBjYXNlICRsaWJkaXIgaW4KKwkgICAgICAtUiopIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRsaWJkaXIiCisJICAgICAgICAgICB0ZW1wX3hycGF0aD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJCSAgIGNhc2UgIiAkeHJwYXRoICIgaW4KKwkJICAgKiIgJHRlbXBfeHJwYXRoICIqKSA7OworCQkgICAqKSB4cnBhdGg9IiR4cnBhdGggJHRlbXBfeHJwYXRoIjs7CisJCSAgIGVzYWM7OworCSAgICAgICopIHRlbXBfZGVwbGlicz0iJHRlbXBfZGVwbGlicyAkbGliZGlyIjs7CisJICAgICAgZXNhYworCSAgICBkb25lCisJICAgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfZGVwbGlicyIKKwkgIGZpCisKKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkYWJzZGlyIgorCSAgIyBMaW5rIGFnYWluc3QgdGhpcyBsaWJyYXJ5CisJICB0ZXN0ICIkbGlua19zdGF0aWMiID0gbm8gJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkYWJzX2xhZGlyLyRsYW5hbWUgJG5ld2RlcGVuZGVuY3lfbGlicyIKKwkgICMgLi4uIGFuZCBpdHMgZGVwZW5kZW5jeV9saWJzCisJICB0bXBfbGlicz0KKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCisJICAgICAgY2FzZSAiJHRtcF9saWJzICIgaW4KKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisJICBkb25lCisKKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgorCSAgICAjIEFkZCB0aGUgc2VhcmNoIHBhdGhzIG9mIGFsbCBkZXBlbmRlbmN5IGxpYnJhcmllcworCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisJICAgICAgY2FzZSAkZGVwbGliIGluCisJICAgICAgLUwqKSBwYXRoPSIkZGVwbGliIiA7OworCSAgICAgICoubGEpCisJICAgICAgICBmdW5jX2Rpcm5hbWUgIiRkZXBsaWIiICIiICIuIgorCQlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCQkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKwkJY2FzZSAkZGlyIGluCisJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzZGlyPSIkZGlyIiA7OworCQkqKQorCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKwkJICBpZiB0ZXN0IC16ICIkYWJzZGlyIjsgdGhlbgorCQkgICAgZnVuY193YXJuaW5nICJjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpciciCisJCSAgICBhYnNkaXI9IiRkaXIiCisJCSAgZmkKKwkJICA7OworCQllc2FjCisJCWlmICRHUkVQICJeaW5zdGFsbGVkPW5vIiAkZGVwbGliID4gL2Rldi9udWxsOyB0aGVuCisJCWNhc2UgJGhvc3QgaW4KKwkJKi0qLWRhcndpbiopCisJCSAgZGVwZGVwbD0KKwkJICBldmFsIGRlcGxpYnJhcnlfbmFtZXM9YCR7U0VEfSAtbiAtZSAncy9ebGlicmFyeV9uYW1lcz1cKC4qXCkkL1wxL3AnICRkZXBsaWJgCisJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhlbgorCQkgICAgZm9yIHRtcCBpbiAkZGVwbGlicmFyeV9uYW1lcyA7IGRvCisJCSAgICAgIGRlcGRlcGw9JHRtcAorCQkgICAgZG9uZQorCQkgICAgaWYgdGVzdCAtZiAiJGFic2Rpci8kb2JqZGlyLyRkZXBkZXBsIiA7IHRoZW4KKwkJICAgICAgZGVwZGVwbD0iJGFic2Rpci8kb2JqZGlyLyRkZXBkZXBsIgorCQkgICAgICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MfSAtTCAkZGVwZGVwbCB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkZGFyd2luX2luc3RhbGxfbmFtZSI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyd2luX2luc3RhbGxfbmFtZT1gJHtPVE9PTDY0fSAtTCAkZGVwZGVwbCAgfCBhd2sgJ3tpZiAoTlIgPT0gMikge3ByaW50ICQxO2V4aXR9fSdgCisgICAgICAgICAgICAgICAgICAgICAgZmkKKwkJICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAke3dsfS1keWxpYl9maWxlICR7d2x9JHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgorCQkgICAgICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgLWR5bGliX2ZpbGUgJHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgorCQkgICAgICBwYXRoPQorCQkgICAgZmkKKwkJICBmaQorCQkgIDs7CisJCSopCisJCSAgcGF0aD0iLUwkYWJzZGlyLyRvYmpkaXIiCisJCSAgOzsKKwkJZXNhYworCQllbHNlCisJCSAgZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKwkJICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisJCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKwkJICB0ZXN0ICIkYWJzZGlyIiAhPSAiJGxpYmRpciIgJiYgXAorCQkgICAgZnVuY193YXJuaW5nICJcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVkIgorCisJCSAgcGF0aD0iLUwkYWJzZGlyIgorCQlmaQorCQk7OworCSAgICAgIGVzYWMKKwkgICAgICBjYXNlICIgJGRlcGxpYnMgIiBpbgorCSAgICAgICoiICRwYXRoICIqKSA7OworCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRkZXBsaWJzIiA7OworCSAgICAgIGVzYWMKKwkgICAgZG9uZQorCSAgZmkgIyBsaW5rX2FsbF9kZXBsaWJzICE9IG5vCisJZmkgIyBsaW5rbW9kZSA9IGxpYgorICAgICAgZG9uZSAjIGZvciBkZXBsaWIgaW4gJGxpYnMKKyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gInByb2ciOyB0aGVuCisJICBjb21waWxlX2RlcGxpYnM9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkY29tcGlsZV9kZXBsaWJzIgorCSAgZmluYWxpemVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRmaW5hbGl6ZV9kZXBsaWJzIgorCWVsc2UKKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgImAkRUNITyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJZmkKKyAgICAgIGZpCisgICAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCisgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW47IHRoZW4KKwkjIExpbmsgdGhlIGRscHJlb3BlbmVkIGxpYnJhcmllcyBiZWZvcmUgb3RoZXIgbGlicmFyaWVzCisJZm9yIGRlcGxpYiBpbiAkc2F2ZV9kZXBsaWJzOyBkbworCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwlkb25lCisgICAgICBmaQorICAgICAgaWYgdGVzdCAiJHBhc3MiICE9IGRsb3BlbjsgdGhlbgorCWlmIHRlc3QgIiRwYXNzIiAhPSBjb252OyB0aGVuCisJICAjIE1ha2Ugc3VyZSBsaWJfc2VhcmNoX3BhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCisJICBsaWJfc2VhcmNoX3BhdGg9CisJICBmb3IgZGlyIGluICRuZXdsaWJfc2VhcmNoX3BhdGg7IGRvCisJICAgIGNhc2UgIiRsaWJfc2VhcmNoX3BhdGggIiBpbgorCSAgICAqIiAkZGlyICIqKSA7OworCSAgICAqKSBsaWJfc2VhcmNoX3BhdGg9IiRsaWJfc2VhcmNoX3BhdGggJGRpciIgOzsKKwkgICAgZXNhYworCSAgZG9uZQorCSAgbmV3bGliX3NlYXJjaF9wYXRoPQorCWZpCisKKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiICE9ICJwcm9nLGxpbmsiOyB0aGVuCisJICB2YXJzPSJkZXBsaWJzIgorCWVsc2UKKwkgIHZhcnM9ImNvbXBpbGVfZGVwbGlicyBmaW5hbGl6ZV9kZXBsaWJzIgorCWZpCisJZm9yIHZhciBpbiAkdmFycyBkZXBlbmRlbmN5X2xpYnM7IGRvCisJICAjIEFkZCBsaWJyYXJpZXMgdG8gJHZhciBpbiByZXZlcnNlIG9yZGVyCisJICBldmFsIHRtcF9saWJzPVwiXCQkdmFyXCIKKwkgIG5ld19saWJzPQorCSAgZm9yIGRlcGxpYiBpbiAkdG1wX2xpYnM7IGRvCisJICAgICMgRklYTUU6IFBlZGFudGljYWxseSwgdGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIHNvCisJICAgICMgICAgICAgIHRoYXQgc29tZSBuYXN0eSBkZXBlbmRlbmN5IGxvb3AgaXNuJ3QgYWNjaWRlbnRhbGx5CisJICAgICMgICAgICAgIGJyb2tlbjoKKwkgICAgI25ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIKKwkgICAgIyBQcmFnbWF0aWNhbGx5LCB0aGlzIHNlZW1zIHRvIGNhdXNlIHZlcnkgZmV3IHByb2JsZW1zIGluCisJICAgICMgcHJhY3RpY2U6CisJICAgIGNhc2UgJGRlcGxpYiBpbgorCSAgICAtTCopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKwkgICAgLVIqKSA7OworCSAgICAqKQorCSAgICAgICMgQW5kIGhlcmUgaXMgdGhlIHJlYXNvbjogd2hlbiBhIGxpYnJhcnkgYXBwZWFycyBtb3JlCisJICAgICAgIyB0aGFuIG9uY2UgYXMgYW4gZXhwbGljaXQgZGVwZW5kZW5jZSBvZiBhIGxpYnJhcnksIG9yCisJICAgICAgIyBpcyBpbXBsaWNpdGx5IGxpbmtlZCBpbiBtb3JlIHRoYW4gb25jZSBieSB0aGUKKwkgICAgICAjIGNvbXBpbGVyLCBpdCBpcyBjb25zaWRlcmVkIHNwZWNpYWwsIGFuZCBtdWx0aXBsZQorCSAgICAgICMgb2NjdXJyZW5jZXMgdGhlcmVvZiBhcmUgbm90IHJlbW92ZWQuICBDb21wYXJlIHRoaXMKKwkgICAgICAjIHdpdGggaGF2aW5nIHRoZSBzYW1lIGxpYnJhcnkgYmVpbmcgbGlzdGVkIGFzIGEKKwkgICAgICAjIGRlcGVuZGVuY3kgb2YgbXVsdGlwbGUgb3RoZXIgbGlicmFyaWVzOiBpbiB0aGlzIGNhc2UsCisJICAgICAgIyB3ZSBrbm93IChwZWRhbnRpY2FsbHksIHdlIGFzc3VtZSkgdGhlIGxpYnJhcnkgZG9lcyBub3QKKwkgICAgICAjIG5lZWQgdG8gYmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlLCBzbyB3ZSBrZWVwIG9ubHkgdGhlCisJICAgICAgIyBsYXN0IGNvcHkuICBUaGlzIGlzIG5vdCBhbHdheXMgcmlnaHQsIGJ1dCBpdCBpcyByYXJlCisJICAgICAgIyBlbm91Z2ggdGhhdCB3ZSByZXF1aXJlIHVzZXJzIHRoYXQgcmVhbGx5IG1lYW4gdG8gcGxheQorCSAgICAgICMgc3VjaCB1bnBvcnRhYmxlIGxpbmtpbmcgdHJpY2tzIHRvIGxpbmsgdGhlIGxpYnJhcnkKKwkgICAgICAjIHVzaW5nIC1XbCwtbG5hbWUsIHNvIHRoYXQgbGlidG9vbCBkb2VzIG5vdCBjb25zaWRlciBpdAorCSAgICAgICMgZm9yIGR1cGxpY2F0ZSByZW1vdmFsLgorCSAgICAgIGNhc2UgIiAkc3BlY2lhbGRlcGxpYnMgIiBpbgorCSAgICAgICoiICRkZXBsaWIgIiopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKwkgICAgICAqKQorCQljYXNlICIgJG5ld19saWJzICIgaW4KKwkJKiIgJGRlcGxpYiAiKikgOzsKKwkJKikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OworCQllc2FjCisJCTs7CisJICAgICAgZXNhYworCSAgICAgIDs7CisJICAgIGVzYWMKKwkgIGRvbmUKKwkgIHRtcF9saWJzPQorCSAgZm9yIGRlcGxpYiBpbiAkbmV3X2xpYnM7IGRvCisJICAgIGNhc2UgJGRlcGxpYiBpbgorCSAgICAtTCopCisJICAgICAgY2FzZSAiICR0bXBfbGlicyAiIGluCisJICAgICAgKiIgJGRlcGxpYiAiKikgOzsKKwkgICAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7CisJICAgICAgZXNhYworCSAgICAgIDs7CisJICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKKwkgICAgZXNhYworCSAgZG9uZQorCSAgZXZhbCAkdmFyPVwiJHRtcF9saWJzXCIKKwlkb25lICMgZm9yIHZhcgorICAgICAgZmkKKyAgICAgICMgTGFzdCBzdGVwOiByZW1vdmUgcnVudGltZSBsaWJzIGZyb20gZGVwZW5kZW5jeV9saWJzCisgICAgICAjICh0aGV5IHN0YXkgaW4gZGVwbGlicykKKyAgICAgIHRtcF9saWJzPQorICAgICAgZm9yIGkgaW4gJGRlcGVuZGVuY3lfbGlicyA7IGRvCisJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoICIgaW4KKwkqIiAkaSAiKikKKwkgIGk9IiIKKwkgIDs7CisJZXNhYworCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KKwkgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGkiCisJZmkKKyAgICAgIGRvbmUKKyAgICAgIGRlcGVuZGVuY3lfbGlicz0kdG1wX2xpYnMKKyAgICBkb25lICMgZm9yIHBhc3MKKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorICAgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisgICAgZmkKKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisgICAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKyAgICBmaQorCisgICAgY2FzZSAkbGlua21vZGUgaW4KKyAgICBvbGRsaWIpCisgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgorCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKyAgICAgIGZpCisKKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KKyAgICAgICpcIC1sKiB8ICpcIC1MKikKKwlmdW5jX3dhcm5pbmcgIlxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDs7CisgICAgICBlc2FjCisKKyAgICAgIHRlc3QgLW4gIiRycGF0aCIgJiYgXAorCWZ1bmNfd2FybmluZyAiXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorCisgICAgICB0ZXN0IC1uICIkeHJwYXRoIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKworICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKworICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorCisgICAgICB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKworICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCisgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKyAgICAgIG9sZGxpYnM9IiRvdXRwdXQiCisgICAgICBvYmpzPSIkb2JqcyRvbGRfZGVwbGlicyIKKyAgICAgIDs7CisKKyAgICBsaWIpCisgICAgICAjIE1ha2Ugc3VyZSB3ZSBvbmx5IGdlbmVyYXRlIGxpYnJhcmllcyBvZiB0aGUgZm9ybSBgbGliTkFNRS5sYScuCisgICAgICBjYXNlICRvdXRwdXRuYW1lIGluCisgICAgICBsaWIqKQorCWZ1bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkb3V0cHV0bmFtZSIKKwluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwlldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgorCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorCTs7CisgICAgICAqKQorCXRlc3QgIiRtb2R1bGUiID0gbm8gJiYgXAorCSAgZnVuY19mYXRhbF9oZWxwICJsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBtdXN0IGJlZ2luIHdpdGggXGBsaWInIgorCisJaWYgdGVzdCAiJG5lZWRfbGliX3ByZWZpeCIgIT0gbm87IHRoZW4KKwkgICMgQWRkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXMgaWYgcmVxdWlyZWQKKwkgIGZ1bmNfc3RyaXBuYW1lICcnICcubGEnICIkb3V0cHV0bmFtZSIKKwkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKKwkgIGV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorCWVsc2UKKwkgIGZ1bmNfc3RyaXBuYW1lICcnICcubGEnICIkb3V0cHV0bmFtZSIKKwkgIGxpYm5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCWZpCisJOzsKKyAgICAgIGVzYWMKKworICAgICAgaWYgdGVzdCAtbiAiJG9ianMiOyB0aGVuCisJaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgorCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiCisJZWxzZQorCSAgJEVDSE8KKwkgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBub24tbGlidG9vbCIKKwkgICRFQ0hPICIqKiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgorCSAgbGlib2Jqcz0iJGxpYm9ianMgJG9ianMiCisJZmkKKyAgICAgIGZpCisKKyAgICAgIHRlc3QgIiRkbHNlbGYiICE9IG5vICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbiBzZWxmJyBpcyBpZ25vcmVkIGZvciBsaWJ0b29sIGxpYnJhcmllcyIKKworICAgICAgc2V0IGR1bW15ICRycGF0aAorICAgICAgc2hpZnQKKyAgICAgIHRlc3QgIiQjIiAtZ3QgMSAmJiBcCisJZnVuY193YXJuaW5nICJpZ25vcmluZyBtdWx0aXBsZSBcYC1ycGF0aCdzIGZvciBhIGxpYnRvb2wgbGlicmFyeSIKKworICAgICAgaW5zdGFsbF9saWJkaXI9IiQxIgorCisgICAgICBvbGRsaWJzPQorICAgICAgaWYgdGVzdCAteiAiJHJwYXRoIjsgdGhlbgorCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisJICAjIEJ1aWxkaW5nIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LgorCSAgIyBTb21lIGNvbXBpbGVycyBoYXZlIHByb2JsZW1zIHdpdGggYSBgLmFsJyBleHRlbnNpb24gc28KKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGV4dGVuc2lvbiBhbgorCSAgIyBhcmNoaXZlIG5vcm1hbGx5IHdvdWxkLgorCSAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCAkb2xkbGlicyIKKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1jb252ZW5pZW5jZQorCSAgYnVpbGRfb2xkX2xpYnM9eWVzCisJZmkKKworCXRlc3QgLW4gIiR2aW5mbyIgJiYgXAorCSAgZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMiCisKKwl0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorCSAgZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMiCisgICAgICBlbHNlCisKKwkjIFBhcnNlIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFyZ3VtZW50LgorCXNhdmVfaWZzPSIkSUZTIjsgSUZTPSc6JworCXNldCBkdW1teSAkdmluZm8gMCAwIDAKKwlzaGlmdAorCUlGUz0iJHNhdmVfaWZzIgorCisJdGVzdCAtbiAiJDciICYmIFwKKwkgIGZ1bmNfZmF0YWxfaGVscCAidG9vIG1hbnkgcGFyYW1ldGVycyB0byBcYC12ZXJzaW9uLWluZm8nIgorCisJIyBjb252ZXJ0IGFic29sdXRlIHZlcnNpb24gbnVtYmVycyB0byBsaWJ0b29sIGFnZXMKKwkjIHRoaXMgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0cworCSMgdG8gbWFrZSB0aGUgY29kZSBiZWxvdyBhIGJpdCBtb3JlIGNvbXByZWhlbnNpYmxlCisKKwljYXNlICR2aW5mb19udW1iZXIgaW4KKwl5ZXMpCisJICBudW1iZXJfbWFqb3I9IiQxIgorCSAgbnVtYmVyX21pbm9yPSIkMiIKKwkgIG51bWJlcl9yZXZpc2lvbj0iJDMiCisJICAjCisJICAjIFRoZXJlIGFyZSByZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAorCSAgIyB1c2UgdGhlIGN1cnJlbnQgcmV2aXNpb24gYXMgdGhlIG1ham9yIHZlcnNpb24KKwkgICMgYW5kIHRob3NlIHRoYXQgc3VidHJhY3QgYWdlIGFuZCB1c2UgYWdlIGFzCisJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwgdGhlbiB0aGVyZSBpcyBpcml4CisJICAjIHdoaWNoIGhhcyBhbiBleHRyYSAxIGFkZGVkIGp1c3QgZm9yIGZ1bgorCSAgIworCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisJICBkYXJ3aW58bGludXh8b3NmfHdpbmRvd3N8bm9uZSkKKwkgICAgZnVuY19hcml0aCAkbnVtYmVyX21ham9yICsgJG51bWJlcl9taW5vcgorCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCisJICAgIHJldmlzaW9uPSIkbnVtYmVyX3JldmlzaW9uIgorCSAgICA7OworCSAgZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHN1bm9zKQorCSAgICBjdXJyZW50PSIkbnVtYmVyX21ham9yIgorCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIKKwkgICAgYWdlPSIwIgorCSAgICA7OworCSAgaXJpeHxub25zdG9wdXgpCisJICAgIGZ1bmNfYXJpdGggJG51bWJlcl9tYWpvciArICRudW1iZXJfbWlub3IKKwkgICAgY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQKKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIKKwkgICAgbHRfaXJpeF9pbmNyZW1lbnQ9bm8KKwkgICAgOzsKKwkgIGVzYWMKKwkgIDs7CisJbm8pCisJICBjdXJyZW50PSIkMSIKKwkgIHJldmlzaW9uPSIkMiIKKwkgIGFnZT0iJDMiCisJICA7OworCWVzYWMKKworCSMgQ2hlY2sgdGhhdCBlYWNoIG9mIHRoZSB0aGluZ3MgYXJlIHZhbGlkIG51bWJlcnMuCisJY2FzZSAkY3VycmVudCBpbgorCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKwkqKQorCSAgZnVuY19lcnJvciAiQ1VSUkVOVCBcYCRjdXJyZW50JyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKKwkgIDs7CisJZXNhYworCisJY2FzZSAkcmV2aXNpb24gaW4KKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7CisJKikKKwkgIGZ1bmNfZXJyb3IgIlJFVklTSU9OIFxgJHJldmlzaW9uJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKKwkgIDs7CisJZXNhYworCisJY2FzZSAkYWdlIGluCisJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OworCSopCisJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdlJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKKwkgIDs7CisJZXNhYworCisJaWYgdGVzdCAiJGFnZSIgLWd0ICIkY3VycmVudCI7IHRoZW4KKwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIgorCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorCWZpCisKKwkjIENhbGN1bGF0ZSB0aGUgdmVyc2lvbiB2YXJpYWJsZXMuCisJbWFqb3I9CisJdmVyc3VmZml4PQorCXZlcnN0cmluZz0KKwljYXNlICR2ZXJzaW9uX3R5cGUgaW4KKwlub25lKSA7OworCisJZGFyd2luKQorCSAgIyBMaWtlIExpbnV4LCBidXQgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIGF2YWlsYWJsZSBpbgorCSAgIyB2ZXJzdHJpbmcgZm9yIGNvZGluZyBpdCBpbnRvIHRoZSBsaWJyYXJ5IGhlYWRlcgorCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgorCSAgIyBEYXJ3aW4gbGQgZG9lc24ndCBsaWtlIDAgZm9yIHRoZXNlIG9wdGlvbnMuLi4KKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgKyAxCisJICBtaW5vcl9jdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgeGxjdmVyc3RyaW5nPSIke3dsfS1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVudCAke3dsfS1jdXJyZW50X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVudC4kcmV2aXNpb24iCisJICB2ZXJzdHJpbmc9Ii1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQgLWN1cnJlbnRfdmVyc2lvbiAkbWlub3JfY3VycmVudC4kcmV2aXNpb24iCisJICA7OworCisJZnJlZWJzZC1hb3V0KQorCSAgbWFqb3I9Ii4kY3VycmVudCIKKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRyZXZpc2lvbiI7CisJICA7OworCisJZnJlZWJzZC1lbGYpCisJICBtYWpvcj0iLiRjdXJyZW50IgorCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQiCisJICA7OworCisJaXJpeCB8IG5vbnN0b3B1eCkKKwkgIGlmIHRlc3QgIlgkbHRfaXJpeF9pbmNyZW1lbnQiID0gIlhubyI7IHRoZW4KKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKwkgIGVsc2UKKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UgKyAxCisJICBmaQorCSAgbWFqb3I9JGZ1bmNfYXJpdGhfcmVzdWx0CisKKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorCSAgICBub25zdG9wdXgpIHZlcnN0cmluZ19wcmVmaXg9bm9uc3RvcHV4IDs7CisJICAgICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsKKwkgIGVzYWMKKwkgIHZlcnN0cmluZz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJHJldmlzaW9uIgorCisJICAjIEFkZCBpbiBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgorCSAgbG9vcD0kcmV2aXNpb24KKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KKwkgICAgZnVuY19hcml0aCAkcmV2aXNpb24gLSAkbG9vcAorCSAgICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKKwkgICAgZnVuY19hcml0aCAkbG9vcCAtIDEKKwkgICAgbG9vcD0kZnVuY19hcml0aF9yZXN1bHQKKwkgICAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kaWZhY2U6JHZlcnN0cmluZyIKKwkgIGRvbmUKKworCSAgIyBCZWZvcmUgdGhpcyBwb2ludCwgJG1ham9yIG11c3Qgbm90IGNvbnRhaW4gYC4nLgorCSAgbWFqb3I9LiRtYWpvcgorCSAgdmVyc3VmZml4PSIkbWFqb3IuJHJldmlzaW9uIgorCSAgOzsKKworCWxpbnV4KQorCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgorCSAgOzsKKworCW9zZikKKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCisJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVzdWx0CisJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKKwkgIHZlcnN0cmluZz0iJGN1cnJlbnQuJGFnZS4kcmV2aXNpb24iCisKKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCisJICBsb29wPSRhZ2UKKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRsb29wCisJICAgIGlmYWNlPSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQorCSAgICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtpZmFjZX0uMCIKKwkgIGRvbmUKKworCSAgIyBNYWtlIGV4ZWN1dGFibGVzIGRlcGVuZCBvbiBvdXIgY3VycmVudCB2ZXJzaW9uLgorCSAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nOiR7Y3VycmVudH0uMCIKKwkgIDs7CisKKwlxbngpCisJICBtYWpvcj0iLiRjdXJyZW50IgorCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQiCisJICA7OworCisJc3Vub3MpCisJICBtYWpvcj0iLiRjdXJyZW50IgorCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIgorCSAgOzsKKworCXdpbmRvd3MpCisJICAjIFVzZSAnLScgcmF0aGVyIHRoYW4gJy4nLCBzaW5jZSB3ZSBvbmx5IHdhbnQgb25lCisJICAjIGV4dGVuc2lvbiBvbiBET1MgOC4zIGZpbGVzeXN0ZW1zLgorCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKwkgIG1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgdmVyc3VmZml4PSItJG1ham9yIgorCSAgOzsKKworCSopCisJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVua25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBlJyIKKwkgIDs7CisJZXNhYworCisJIyBDbGVhciB0aGUgdmVyc2lvbiBpbmZvIGlmIHdlIGRlZmF1bHRlZCwgYW5kIHRoZXkgc3BlY2lmaWVkIGEgcmVsZWFzZS4KKwlpZiB0ZXN0IC16ICIkdmluZm8iICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgorCSAgbWFqb3I9CisJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKwkgIGRhcndpbikKKwkgICAgIyB3ZSBjYW4ndCBjaGVjayBmb3IgIjAuMCIgaW4gYXJjaGl2ZV9jbWRzIGR1ZSB0byBxdW90aW5nCisJICAgICMgcHJvYmxlbXMsIHNvIHdlIHJlc2V0IGl0IGNvbXBsZXRlbHkKKwkgICAgdmVyc3RyaW5nPQorCSAgICA7OworCSAgKikKKwkgICAgdmVyc3RyaW5nPSIwLjAiCisJICAgIDs7CisJICBlc2FjCisJICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCisJICAgIHZlcnN1ZmZpeD0KKwkgIGVsc2UKKwkgICAgdmVyc3VmZml4PSIuMC4wIgorCSAgZmkKKwlmaQorCisJIyBSZW1vdmUgdmVyc2lvbiBpbmZvIGZyb20gbmFtZSBpZiB2ZXJzaW9uaW5nIHNob3VsZCBiZSBhdm9pZGVkCisJaWYgdGVzdCAiJGF2b2lkX3ZlcnNpb24iID0geWVzICYmIHRlc3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KKwkgIG1ham9yPQorCSAgdmVyc3VmZml4PQorCSAgdmVyc3RyaW5nPSIiCisJZmkKKworCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBhcmNoaXZlIHdpbGwgaGF2ZSB1bmRlZmluZWQgc3ltYm9scy4KKwlpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IHllczsgdGhlbgorCSAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCisJICAgIGZ1bmNfd2FybmluZyAidW5kZWZpbmVkIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gJGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIKKwkgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisJICAgIGJ1aWxkX29sZF9saWJzPXllcworCSAgZmkKKwllbHNlCisJICAjIERvbid0IGFsbG93IHVuZGVmaW5lZCBzeW1ib2xzLgorCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiRub191bmRlZmluZWRfZmxhZyIKKwlmaQorCisgICAgICBmaQorCisgICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAiJGxpYm5hbWUiICIkbGlibmFtZSIgInllcyIKKyAgICAgIGxpYm9ianM9IiRsaWJvYmpzICRzeW1maWxlb2JqIgorICAgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKworICAgICAgaWYgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorCSMgUmVtb3ZlIG91ciBvdXRwdXRzLCBidXQgZG9uJ3QgcmVtb3ZlIG9iamVjdCBmaWxlcyBzaW5jZSB0aGV5CisJIyBtYXkgaGF2ZSBiZWVuIGNyZWF0ZWQgd2hlbiBjb21waWxpbmcgUElDIG9iamVjdHMuCisJcmVtb3ZlbGlzdD0KKwl0ZW1wcmVtb3ZlbGlzdD1gJEVDSE8gIiRvdXRwdXRfb2JqZGlyLyoiYAorCWZvciBwIGluICR0ZW1wcmVtb3ZlbGlzdDsgZG8KKwkgIGNhc2UgJHAgaW4KKwkgICAgKi4kb2JqZXh0IHwgKi5nY25vKQorCSAgICAgICA7OworCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxlYXNlfS4qKQorCSAgICAgICBpZiB0ZXN0ICJYJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiAhPSAiWCI7IHRoZW4KKwkJIGlmICRFQ0hPICIkcCIgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19yZWdleCIgPi9kZXYvbnVsbCAyPiYxCisJCSB0aGVuCisJCSAgIGNvbnRpbnVlCisJCSBmaQorCSAgICAgICBmaQorCSAgICAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkcCIKKwkgICAgICAgOzsKKwkgICAgKikgOzsKKwkgIGVzYWMKKwlkb25lCisJdGVzdCAtbiAiJHJlbW92ZWxpc3QiICYmIFwKKwkgIGZ1bmNfc2hvd19ldmFsICIke1JNfXIgXCRyZW1vdmVsaXN0IgorICAgICAgZmkKKworICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCisgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgorCW9sZGxpYnM9IiRvbGRsaWJzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQiCisKKwkjIFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCisJb2xkb2Jqcz0iJG9ianMgImAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICcvXC4nJHtsaWJleHR9JyQvZCcgLWUgIiRsbzJvIiB8ICROTDJTUGAKKyAgICAgIGZpCisKKyAgICAgICMgRWxpbWluYXRlIGFsbCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMuCisgICAgICAjZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KKyAgICAgICMJbGliX3NlYXJjaF9wYXRoPWAkRUNITyAiWCRsaWJfc2VhcmNoX3BhdGggIiB8ICRYc2VkIC1lICJzJSAkcGF0aCAlICVnImAKKyAgICAgICMJZGVwbGlicz1gJEVDSE8gIlgkZGVwbGlicyAiIHwgJFhzZWQgLWUgInMlIC1MJHBhdGggJSAlZyJgCisgICAgICAjCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIlgkZGVwZW5kZW5jeV9saWJzICIgfCAkWHNlZCAtZSAicyUgLUwkcGF0aCAlICVnImAKKyAgICAgICNkb25lCisKKyAgICAgIGlmIHRlc3QgLW4gIiR4cnBhdGgiOyB0aGVuCisJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0aGVtLgorCXRlbXBfeHJwYXRoPQorCWZvciBsaWJkaXIgaW4gJHhycGF0aDsgZG8KKwkgIHRlbXBfeHJwYXRoPSIkdGVtcF94cnBhdGggLVIkbGliZGlyIgorCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKwkgICoiICRsaWJkaXIgIiopIDs7CisJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7CisJICBlc2FjCisJZG9uZQorCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisJICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX3hycGF0aCAkZGVwZW5kZW5jeV9saWJzIgorCWZpCisgICAgICBmaQorCisgICAgICAjIE1ha2Ugc3VyZSBkbGZpbGVzIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGZpbGVzIHRoYXQgd29uJ3QgYmUgZGxwcmVvcGVuZWQKKyAgICAgIG9sZF9kbGZpbGVzPSIkZGxmaWxlcyIKKyAgICAgIGRsZmlsZXM9CisgICAgICBmb3IgbGliIGluICRvbGRfZGxmaWxlczsgZG8KKwljYXNlICIgJGRscHJlZmlsZXMgJGRsZmlsZXMgIiBpbgorCSoiICRsaWIgIiopIDs7CisJKikgZGxmaWxlcz0iJGRsZmlsZXMgJGxpYiIgOzsKKwllc2FjCisgICAgICBkb25lCisKKyAgICAgICMgTWFrZSBzdXJlIGRscHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKKyAgICAgIG9sZF9kbHByZWZpbGVzPSIkZGxwcmVmaWxlcyIKKyAgICAgIGRscHJlZmlsZXM9CisgICAgICBmb3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsgZG8KKwljYXNlICIkZGxwcmVmaWxlcyAiIGluCisJKiIgJGxpYiAiKikgOzsKKwkqKSBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliIiA7OworCWVzYWMKKyAgICAgIGRvbmUKKworICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKwlpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCisJICBjYXNlICRob3N0IGluCisJICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqKQorCSAgICAjIHRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIGMgbGlicmFyeSAoYXMgc3VjaCkhCisJICAgIDs7CisJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCisJICAgICMgUmhhcHNvZHkgQyBsaWJyYXJ5IGlzIGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisJICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKwkgICAgOzsKKwkgICotKi1uZXRic2QqKQorCSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBhLm91dCBsZC5zbyBpcyBmaXhlZC4KKwkgICAgOzsKKwkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQorCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKwkgICAgOzsKKwkgICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBlCisJICAgIDs7CisJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCisJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKwkgICAgOzsKKwkgICopCisJICAgICMgQWRkIGxpYmMgdG8gZGVwbGlicyBvbiBhbGwgb3RoZXIgc3lzdGVtcyBpZiBuZWNlc3NhcnkuCisJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX25lZWRfbGMiID0gInllcyI7IHRoZW4KKwkgICAgICBkZXBsaWJzPSIkZGVwbGlicyAtbGMiCisJICAgIGZpCisJICAgIDs7CisJICBlc2FjCisJZmkKKworCSMgVHJhbnNmb3JtIGRlcGxpYnMgaW50byBvbmx5IGRlcGxpYnMgdGhhdCBjYW4gYmUgbGlua2VkIGluIHNoYXJlZC4KKwluYW1lX3NhdmU9JG5hbWUKKwlsaWJuYW1lX3NhdmU9JGxpYm5hbWUKKwlyZWxlYXNlX3NhdmU9JHJlbGVhc2UKKwl2ZXJzdWZmaXhfc2F2ZT0kdmVyc3VmZml4CisJbWFqb3Jfc2F2ZT0kbWFqb3IKKwkjIEknbSBub3Qgc3VyZSBpZiBJJ20gdHJlYXRpbmcgdGhlIHJlbGVhc2UgY29ycmVjdGx5LiAgSSB0aGluaworCSMgcmVsZWFzZSBzaG91bGQgc2hvdyB1cCBpbiB0aGUgLWwgKGllIC1sZ21wNSkgc28gd2UgZG9uJ3Qgd2FudCB0bworCSMgYWRkIGl0IGluIHR3aWNlLiAgSXMgdGhhdCBjb3JyZWN0PworCXJlbGVhc2U9IiIKKwl2ZXJzdWZmaXg9IiIKKwltYWpvcj0iIgorCW5ld2RlcGxpYnM9CisJZHJvcHBlZGRlcHM9bm8KKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorCXBhc3NfYWxsKQorCSAgIyBEb24ndCBjaGVjayBmb3Igc2hhcmVkL3N0YXRpYy4gIEV2ZXJ5dGhpbmcgd29ya3MuCisJICAjIFRoaXMgbWlnaHQgYmUgYSBsaXR0bGUgbmFpdmUuICBXZSBtaWdodCB3YW50IHRvIGNoZWNrCisJICAjIHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4gIEJ1dCB0aGlzIGlzIG9uCisJICAjIG9zZjMgJiBvc2Y0IGFuZCBJJ20gbm90IHJlYWxseSBzdXJlLi4uIEp1c3QKKwkgICMgaW1wbGVtZW50aW5nIHdoYXQgd2FzIGFscmVhZHkgdGhlIGJlaGF2aW9yLgorCSAgbmV3ZGVwbGlicz0kZGVwbGlicworCSAgOzsKKwl0ZXN0X2NvbXBpbGUpCisJICAjIFRoaXMgY29kZSBzdHJlc3NlcyB0aGUgImxpYnJhcmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFkaWdtIHRvIGl0cworCSAgIyBsaW1pdHMuIE1heWJlIGV2ZW4gYnJlYWtzIGl0LiAgV2UgY29tcGlsZSBhIHByb2dyYW0sIGxpbmtpbmcgaXQKKwkgICMgYWdhaW5zdCB0aGUgZGVwbGlicyBhcyBhIHByb3h5IGZvciB0aGUgbGlicmFyeS4gIFRoZW4gd2UgY2FuIGNoZWNrCisJICAjIHdoZXRoZXIgdGhleSBsaW5rZWQgaW4gc3RhdGljYWxseSBvciBkeW5hbWljYWxseSB3aXRoIGxkZC4KKwkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QuYworCSAgY2F0ID4gY29uZnRlc3QuYyA8PEVPRgorCSAgaW50IG1haW4oKSB7IHJldHVybiAwOyB9CitFT0YKKwkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QKKwkgIGlmICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jICRkZXBsaWJzOyB0aGVuCisJICAgIGxkZF9vdXRwdXQ9YGxkZCBjb25mdGVzdGAKKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCisJICAgICAgY2FzZSAkaSBpbgorCSAgICAgIC1sKikKKwkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRpIgorCQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkJaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorCQkgICoiICRpICIqKQorCQkgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCSAgICBpPSIiCisJCSAgICA7OworCQkgIGVzYWMKKwkJZmkKKwkJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorCQkgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorCQkgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiImAKKwkJICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBzaGlmdAorCQkgIGRlcGxpYl9tYXRjaD0kMQorCQkgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KKwkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQkgIGVsc2UKKwkJICAgIGRyb3BwZWRkZXBzPXllcworCQkgICAgJEVDSE8KKwkJICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1pYyBsaW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKKwkJICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQkgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisJCSAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCBJIGJlbGlldmUgeW91IGRvIG5vdCBoYXZlIgorCQkgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIGl0IGZvciIKKwkJICAgICRFQ0hPICIqKiogaXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCisJCSAgZmkKKwkJZmkKKwkJOzsKKwkgICAgICAqKQorCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKwkJOzsKKwkgICAgICBlc2FjCisJICAgIGRvbmUKKwkgIGVsc2UKKwkgICAgIyBFcnJvciBvY2N1cnJlZCBpbiB0aGUgZmlyc3QgY29tcGlsZS4gIExldCdzIHRyeSB0byBzYWx2YWdlCisJICAgICMgdGhlIHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0gZm9yIGVhY2ggbGlicmFyeS4KKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCisJICAgICAgY2FzZSAkaSBpbgorCSAgICAgIC1sKikKKwkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRpIgorCQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkJJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdAorCQlpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkaTsgdGhlbgorCQkgIGxkZF9vdXRwdXQ9YGxkZCBjb25mdGVzdGAKKwkJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisJCSAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKwkJICAgICoiICRpICIqKQorCQkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKwkJICAgICAgaT0iIgorCQkgICAgICA7OworCQkgICAgZXNhYworCQkgIGZpCisJCSAgaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorCQkgICAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisJCSAgICBkZXBsaWJfbWF0Y2hlcz1gZXZhbCAiXFwkRUNITyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcIiJgCisJCSAgICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBzaGlmdAorCQkgICAgZGVwbGliX21hdGNoPSQxCisJCSAgICBpZiB0ZXN0IGBleHByICIkbGRkX291dHB1dCIgOiAiLiokZGVwbGliX21hdGNoImAgLW5lIDAgOyB0aGVuCisJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQkgICAgZWxzZQorCQkgICAgICBkcm9wcGVkZGVwcz15ZXMKKwkJICAgICAgJEVDSE8KKwkJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgorCQkgICAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJICAgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisJCSAgICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisJCSAgICAgICRFQ0hPICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKKwkJICAgICAgJEVDSE8gIioqKiBhcyBhIGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHByb2dyYW1zIGNhbiBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKwkJICAgIGZpCisJCSAgZmkKKwkJZWxzZQorCQkgIGRyb3BwZWRkZXBzPXllcworCQkgICRFQ0hPCisJCSAgJEVDSE8gIioqKiBXYXJuaW5nISAgTGlicmFyeSAkaSBpcyBuZWVkZWQgYnkgdGhpcyBsaWJyYXJ5IGJ1dCBJIHdhcyBub3QgYWJsZSB0byIKKwkJICAkRUNITyAiKioqIG1ha2UgaXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8gaW5zdGFsbCBpdCBvciBzb21lIgorCQkgICRFQ0hPICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24gYmVmb3JlIHRoaXMgbGlicmFyeSB3aWxsIGJlIGZ1bGx5IgorCQkgICRFQ0hPICIqKiogZnVuY3Rpb25hbC4gIEluc3RhbGxpbmcgaXQgYmVmb3JlIGNvbnRpbnVpbmcgd291bGQgYmUgZXZlbiBiZXR0ZXIuIgorCQlmaQorCQk7OworCSAgICAgICopCisJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQk7OworCSAgICAgIGVzYWMKKwkgICAgZG9uZQorCSAgZmkKKwkgIDs7CisJZmlsZV9tYWdpYyopCisJICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAorCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAorCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbworCSAgICBjYXNlICRhX2RlcGxpYiBpbgorCSAgICAtbCopCisJICAgICAgZnVuY19zdHJpcG5hbWUgLWwgJycgIiRhX2RlcGxpYiIKKwkgICAgICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorCQkqIiAkYV9kZXBsaWIgIiopCisJCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgIGFfZGVwbGliPSIiCisJCSAgOzsKKwkJZXNhYworCSAgICAgIGZpCisJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KKwkJbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisJCWZvciBpIGluICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoOyBkbworCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rldi9udWxsYAorCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KKwkJICAgICAgIyBGb2xsb3cgc29mdCBsaW5rcy4KKwkJICAgICAgaWYgbHMgLWxMZCAiJHBvdGVudF9saWIiIDI+L2Rldi9udWxsIHwKKwkJCSAkR1JFUCAiIC0+ICIgPi9kZXYvbnVsbDsgdGhlbgorCQkJY29udGludWUKKwkJICAgICAgZmkKKwkJICAgICAgIyBUaGUgc3RhdGVtZW50IGFib3ZlIHRyaWVzIHRvIGF2b2lkIGVudGVyaW5nIGFuCisJCSAgICAgICMgZW5kbGVzcyBsb29wIGJlbG93LCBpbiBjYXNlIG9mIGN5Y2xpYyBsaW5rcy4KKwkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGluaworCQkgICAgICAjIGxvb3AgY2FuIGJlIGNsb3NlZCB3aGlsZSB3ZSBmb2xsb3cgbGlua3MsCisJCSAgICAgICMgYnV0IHNvIHdoYXQ/CisJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCisJCSAgICAgIHdoaWxlIHRlc3QgLWggIiRwb3RsaWIiIDI+L2Rldi9udWxsOyBkbworCQkJcG90bGlibGluaz1gbHMgLWxkICRwb3RsaWIgfCAke1NFRH0gJ3MvLiogLT4gLy8nYAorCQkJY2FzZSAkcG90bGlibGluayBpbgorCQkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBwb3RsaWI9IiRwb3RsaWJsaW5rIjs7CisJCQkqKSBwb3RsaWI9YCRFQ0hPICJYJHBvdGxpYiIgfCAkWHNlZCAtZSAncyxbXi9dKiQsLCdgIiRwb3RsaWJsaW5rIjs7CisJCQllc2FjCisJCSAgICAgIGRvbmUKKwkJICAgICAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCJcJHBvdGxpYlwiIDI+L2Rldi9udWxsIHwKKwkJCSAkU0VEIC1lIDEwcSB8CisJCQkgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKwkJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKwkJCWFfZGVwbGliPSIiCisJCQlicmVhayAyCisJCSAgICAgIGZpCisJCSAgZG9uZQorCQlkb25lCisJICAgICAgZmkKKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorCQlkcm9wcGVkZGVwcz15ZXMKKwkJJEVDSE8KKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgorCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisJCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisJCSRFQ0hPICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgorCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgorCQllbHNlCisJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGFuZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9ybWF0IHRlc3QiCisJCSAgJEVDSE8gIioqKiB1c2luZyBhIGZpbGUgbWFnaWMuIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgorCQlmaQorCSAgICAgIGZpCisJICAgICAgOzsKKwkgICAgKikKKwkgICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50LgorCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKwkgICAgICA7OworCSAgICBlc2FjCisJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgorCSAgOzsKKwltYXRjaF9wYXR0ZXJuKikKKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CisJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCisJICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisJICAgIGNhc2UgJGFfZGVwbGliIGluCisJICAgIC1sKikKKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVwbGliIgorCSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKwkJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCisJCSoiICRhX2RlcGxpYiAiKikKKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisJCSAgYV9kZXBsaWI9IiIKKwkJICA7OworCQllc2FjCisJICAgICAgZmkKKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCisJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCisJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbworCQkgICAgcG90bGliPSIkcG90ZW50X2xpYiIgIyBzZWUgc3ltbGluay1jaGVjayBhYm92ZSBpbiBmaWxlX21hZ2ljIHRlc3QKKwkJICAgIGlmIGV2YWwgIlwkRUNITyBcIlgkcG90ZW50X2xpYlwiIiAyPi9kZXYvbnVsbCB8ICRYc2VkIC1lIDEwcSB8IFwKKwkJICAgICAgICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKwkJICAgICAgYV9kZXBsaWI9IiIKKwkJICAgICAgYnJlYWsgMgorCQkgICAgZmkKKwkJICBkb25lCisJCWRvbmUKKwkgICAgICBmaQorCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisJCWRyb3BwZWRkZXBzPXllcworCQkkRUNITworCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxpYi4iCisJCSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQkkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKwkJJEVDSE8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCisJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgorCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIHJlZ2V4IHBhdHRlcm4gdGVzdCkiCisJCWVsc2UKKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKKwkJICAkRUNITyAiKioqIHVzaW5nIGEgcmVnZXggcGF0dGVybi4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCisJCWZpCisJICAgICAgZmkKKwkgICAgICA7OworCSAgICAqKQorCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCisJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCSAgICAgIDs7CisJICAgIGVzYWMKKwkgIGRvbmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxpYnMuCisJICA7OworCW5vbmUgfCB1bmtub3duIHwgKikKKwkgIG5ld2RlcGxpYnM9IiIKKwkgIHRtcF9kZXBsaWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCBcCisJICAgICAgLWUgJ3MvIC1sYyQvLycgLWUgJ3MvIC1bTFJdW14gXSovL2cnYAorCSAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRlcHMgOyBkbworCSAgICAgICMgY2FuJ3QgdXNlIFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWlnaHQgY29udGFpbiAnLycKKwkgICAgICB0bXBfZGVwbGlicz1gJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICJzLCRpLCwiYAorCSAgICBkb25lCisJICBmaQorCSAgaWYgJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICdzL1sJIF0vL2cnIHwKKwkgICAgICRHUkVQIC4gPi9kZXYvbnVsbDsgdGhlbgorCSAgICAkRUNITworCSAgICBpZiB0ZXN0ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9ICJYbm9uZSI7IHRoZW4KKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGxhdGZvcm0uIgorCSAgICBlbHNlCisJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IGtub3duIHRvIGJlIHN1cHBvcnRlZC4iCisJICAgIGZpCisJICAgICRFQ0hPICIqKiogQWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBkcm9wcGVkLiIKKwkgICAgZHJvcHBlZGRlcHM9eWVzCisJICBmaQorCSAgOzsKKwllc2FjCisJdmVyc3VmZml4PSR2ZXJzdWZmaXhfc2F2ZQorCW1ham9yPSRtYWpvcl9zYXZlCisJcmVsZWFzZT0kcmVsZWFzZV9zYXZlCisJbGlibmFtZT0kbGlibmFtZV9zYXZlCisJbmFtZT0kbmFtZV9zYXZlCisKKwljYXNlICRob3N0IGluCisJKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQorCSAgIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgd2l0aCB0aGUgU3lzdGVtIGZyYW1ld29yaworCSAgbmV3ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKKwkgIDs7CisJZXNhYworCisJaWYgdGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsgdGhlbgorCSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXM7IHRoZW4KKwkgICAgJEVDSE8KKwkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBsaWJ0b29sIGNvdWxkIG5vdCBzYXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgorCSAgICAkRUNITyAiKioqIGRlcGVuZGVuY2llcyBvZiBtb2R1bGUgJGxpYm5hbWUuICBUaGVyZWZvcmUsIGxpYnRvb2wgd2lsbCBjcmVhdGUiCisJICAgICRFQ0hPICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyIKKwkgICAgJEVDSE8gIioqKiBhcHBsaWNhdGlvbiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnLiIKKwkgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKwkgICAgICAkRUNITworCSAgICAgICRFQ0hPICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKKwkgICAgICAkRUNITyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKKwkgICAgICAkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorCSAgICAgICRFQ0hPICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKKwkgICAgZmkKKwkgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCisJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKwkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCisJICAgICAgYnVpbGRfb2xkX2xpYnM9eWVzCisJICAgIGVsc2UKKwkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKwkgICAgZmkKKwkgIGVsc2UKKwkgICAgJEVDSE8gIioqKiBUaGUgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgdGhhdCBoYXZlIGJlZW4gZHJvcHBlZCBoZXJlIHdpbGwgYmUiCisJICAgICRFQ0hPICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgorCSAgICAkRUNITyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgorCisJICAgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0gbm87IHRoZW4KKwkgICAgICAkRUNITworCSAgICAgICRFQ0hPICIqKiogU2luY2UgdGhpcyBsaWJyYXJ5IG11c3Qgbm90IGNvbnRhaW4gdW5kZWZpbmVkIHN5bWJvbHMsIgorCSAgICAgICRFQ0hPICIqKiogYmVjYXVzZSBlaXRoZXIgdGhlIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgdGhlbSBvciIKKwkgICAgICAkRUNITyAiKioqIGl0IHdhcyBleHBsaWNpdGx5IHJlcXVlc3RlZCB3aXRoIC1uby11bmRlZmluZWQsIgorCSAgICAgICRFQ0hPICIqKiogbGlidG9vbCB3aWxsIG9ubHkgY3JlYXRlIGEgc3RhdGljIHZlcnNpb24gb2YgaXQuIgorCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgorCQlvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorCQlidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCisJCWJ1aWxkX29sZF9saWJzPXllcworCSAgICAgIGVsc2UKKwkJYnVpbGRfbGlidG9vbF9saWJzPW5vCisJICAgICAgZmkKKwkgICAgZmkKKwkgIGZpCisJZmkKKwkjIERvbmUgY2hlY2tpbmcgZGVwbGlicyEKKwlkZXBsaWJzPSRuZXdkZXBsaWJzCisgICAgICBmaQorICAgICAgIyBUaW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28ubHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsgZm9vIgorICAgICAgY2FzZSAkaG9zdCBpbgorCSotKi1kYXJ3aW4qKQorCSAgbmV3ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJICBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz1gJEVDSE8gIlggJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCSAgZGVwbGlicz1gJEVDSE8gIlggJGRlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJICA7OworICAgICAgZXNhYworCisgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQKKyAgICAgICMgaW5zdGFsbGVkIGxpYnJhcmllcyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaWJyYXJ5IHNlYXJjaCBsaXN0CisgICAgICBuZXdfbGlicz0KKyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCisJY2FzZSAiICRuZXdfbGlicyAiIGluCisJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7OworCSopCisJICBjYXNlICIgJGRlcGxpYnMgIiBpbgorCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQorCSAgICBuZXdfbGlicz0iJG5ld19saWJzIC1MJHBhdGgvJG9iamRpciIgOzsKKwkgIGVzYWMKKwkgIDs7CisJZXNhYworICAgICAgZG9uZQorICAgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKwljYXNlICRkZXBsaWIgaW4KKwktTCopCisJICBjYXNlICIgJG5ld19saWJzICIgaW4KKwkgICoiICRkZXBsaWIgIiopIDs7CisJICAqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7CisJICBlc2FjCisJICA7OworCSopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKwllc2FjCisgICAgICBkb25lCisgICAgICBkZXBsaWJzPSIkbmV3X2xpYnMiCisKKyAgICAgICMgQWxsIHRoZSBsaWJyYXJ5LXNwZWNpZmljIHZhcmlhYmxlcyAoaW5zdGFsbF9saWJkaXIgaXMgc2V0IGFib3ZlKS4KKyAgICAgIGxpYnJhcnlfbmFtZXM9CisgICAgICBvbGRfbGlicmFyeT0KKyAgICAgIGRsbmFtZT0KKworICAgICAgIyBUZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQorICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKwlpZiB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgorCSAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocworCSAgaGFyZGNvZGVfbGliZGlycz0KKwkgIGRlcF9ycGF0aD0KKwkgIHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCisJICB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHJwYXRoPSIkY29tcGlsZV9ycGF0aCRycGF0aCIKKwkgIGZvciBsaWJkaXIgaW4gJHJwYXRoOyBkbworCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKwkgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KKwkJaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisJCSAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKwkJZWxzZQorCQkgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorCQkgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKKwkJICAgIDs7CisJCSAgKikKKwkJICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgorCQkgICAgOzsKKwkJICBlc2FjCisJCWZpCisJICAgICAgZWxzZQorCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisJCWRlcF9ycGF0aD0iJGRlcF9ycGF0aCAkZmxhZyIKKwkgICAgICBmaQorCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKwkgICAgICBjYXNlICIkcGVybV9ycGF0aCAiIGluCisJICAgICAgKiIgJGxpYmRpciAiKikgOzsKKwkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworCSAgICAgIGVzYWMKKwkgICAgZmkKKwkgIGRvbmUKKwkgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYKKwkgICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorCSAgICBsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgorCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCI7IHRoZW4KKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkXCIKKwkgICAgZWxzZQorCSAgICAgIGV2YWwgZGVwX3JwYXRoPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorCSAgICBmaQorCSAgZmkKKwkgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCisJICAgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisJICAgIHJwYXRoPQorCSAgICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbworCSAgICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKwkgICAgZG9uZQorCSAgICBldmFsICIkcnVucGF0aF92YXI9JyRycGF0aFwkJHJ1bnBhdGhfdmFyJzsgZXhwb3J0ICRydW5wYXRoX3ZhciIKKwkgIGZpCisJICB0ZXN0IC1uICIkZGVwX3JwYXRoIiAmJiBkZXBsaWJzPSIkZGVwX3JwYXRoICRkZXBsaWJzIgorCWZpCisKKwlzaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCisJdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBzaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRzaGxpYnBhdGgiCisJaWYgdGVzdCAtbiAiJHNobGlicGF0aCI7IHRoZW4KKwkgIGV2YWwgIiRzaGxpYnBhdGhfdmFyPSckc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3Zhcic7IGV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKKwlmaQorCisJIyBHZXQgdGhlIHJlYWwgYW5kIGxpbmsgbmFtZXMgb2YgdGhlIGxpYnJhcnkuCisJZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKKwlldmFsIGxpYnJhcnlfbmFtZXM9XCIkbGlicmFyeV9uYW1lc19zcGVjXCIKKwlzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKKwlzaGlmdAorCXJlYWxuYW1lPSIkMSIKKwlzaGlmdAorCisJaWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgorCSAgZXZhbCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgorCWVsc2UKKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgorCWZpCisJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KKwkgIGRsbmFtZT0kc29uYW1lCisJZmkKKworCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgorCWxpbmtuYW1lcz0KKwlmb3IgbGluaworCWRvCisJICBsaW5rbmFtZXM9IiRsaW5rbmFtZXMgJGxpbmsiCisJZG9uZQorCisJIyBVc2Ugc3RhbmRhcmQgb2JqZWN0cyBpZiB0aGV5IGFyZSBwaWMKKwl0ZXN0IC16ICIkcGljX2ZsYWciICYmIGxpYm9ianM9YCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKwl0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorCisJZGVsZmlsZXM9CisJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgorCSAgJG9wdF9kcnlfcnVuIHx8IGNwICIkZXhwb3J0X3N5bWJvbHMiICIkb3V0cHV0X29iamRpci8kbGlibmFtZS51ZXhwIgorCSAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCisJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyIKKwlmaQorCisJb3JpZ19leHBvcnRfc3ltYm9scz0KKwljYXNlICRob3N0X29zIGluCisJY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorCSAgICAjIGV4cG9ydGluZyB1c2luZyB1c2VyIHN1cHBsaWVkIHN5bWZpbGUKKwkgICAgaWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiICE9IHhFWFBPUlRTOyB0aGVuCisJICAgICAgIyBhbmQgaXQncyBOT1QgYWxyZWFkeSBhIC5kZWYgZmlsZS4gTXVzdCBmaWd1cmUgb3V0CisJICAgICAgIyB3aGljaCBvZiB0aGUgZ2l2ZW4gc3ltYm9scyBhcmUgZGF0YSBzeW1ib2xzIGFuZCB0YWcKKwkgICAgICAjIHRoZW0gYXMgc3VjaC4gU28sIHRyaWdnZXIgdXNlIG9mIGV4cG9ydF9zeW1ib2xzX2NtZHMuCisJICAgICAgIyBleHBvcnRfc3ltYm9scyBnZXRzIHJlYXNzaWduZWQgaW5zaWRlIHRoZSAicHJlcGFyZQorCSAgICAgICMgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scyIgaWYgc3RhdGVtZW50LCBzbyB0aGUKKwkgICAgICAjIGluY2x1ZGVfZXhwc3ltcyBsb2dpYyBzdGlsbCB3b3Jrcy4KKwkgICAgICBvcmlnX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCisJICAgICAgZXhwb3J0X3N5bWJvbHM9CisJICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcworCSAgICBmaQorCSAgZmkKKwkgIDs7CisJZXNhYworCisJIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKKwlpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisJICBpZiB0ZXN0ICIkYWx3YXlzX2V4cG9ydF9zeW1ib2xzIiA9IHllcyB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisJICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCisJICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisJICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xzCisJICAgIGNtZHM9JGV4cG9ydF9zeW1ib2xzX2NtZHMKKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisJICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCisJICAgICAgSUZTPSIkc2F2ZV9pZnMiCisJICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKKwkgICAgICBmdW5jX2xlbiAiICRjbWQiCisJICAgICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQKKwkgICAgICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKwkJZnVuY19zaG93X2V2YWwgIiRjbWQiICdleGl0ICQ/JworCQlza2lwcGVkX2V4cG9ydD1mYWxzZQorCSAgICAgIGVsc2UKKwkJIyBUaGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGV4ZWN1dGUgaW4gb25lIHN0ZXAuCisJCWZ1bmNfdmVyYm9zZSAidXNpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZSBmb3IgZXhwb3J0IGxpc3QuLi4iCisJCXNraXBwZWRfZXhwb3J0PToKKwkJIyBCcmVhayBvdXQgZWFybHksIG90aGVyd2lzZSBza2lwcGVkX2V4cG9ydCBtYXkgYmUKKwkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQgc2hvcnRlciBjbWQuCisJCWJyZWFrCisJICAgICAgZmkKKwkgICAgZG9uZQorCSAgICBJRlM9IiRzYXZlX2lmcyIKKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiOyB0aGVuCisJICAgICAgZnVuY19zaG93X2V2YWwgJyRFR1JFUCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIke2V4cG9ydF9zeW1ib2xzfVQiJworCSAgICAgIGZ1bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9scyInCisJICAgIGZpCisJICBmaQorCWZpCisKKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisJICB0bXBfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKKwkgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgorCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisJZmkKKworCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisJICAjIFRoZSBnaXZlbiBleHBvcnRzX3N5bWJvbHMgZmlsZSBoYXMgdG8gYmUgZmlsdGVyZWQsIHNvIGZpbHRlciBpdC4KKwkgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgorCSAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKKwkgICMgJ3MnIGNvbW1hbmRzIHdoaWNoIG5vdCBhbGwgc2VkcyBjYW4gaGFuZGxlLiBHTlUgc2VkIHNob3VsZCBiZSBmaW5lCisJICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YKKwkgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CisJICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgorCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCisJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCisJICBleHBvcnRfc3ltYm9scz0kb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYKKwkgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCisJZmkKKworCXRtcF9kZXBsaWJzPQorCWZvciB0ZXN0X2RlcGxpYiBpbiAkZGVwbGliczsgZG8KKwkgIGNhc2UgIiAkY29udmVuaWVuY2UgIiBpbgorCSAgKiIgJHRlc3RfZGVwbGliICIqKSA7OworCSAgKikKKwkgICAgdG1wX2RlcGxpYnM9IiR0bXBfZGVwbGlicyAkdGVzdF9kZXBsaWIiCisJICAgIDs7CisJICBlc2FjCisJZG9uZQorCWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKKworCWlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgJiYKKwkgICAgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXMgJiYKKwkgICAgdGVzdCAteiAiJGxpYm9ianMiOyB0aGVuCisJICAgICMgZXh0cmFjdCB0aGUgYXJjaGl2ZXMsIHNvIHdlIGhhdmUgb2JqZWN0cyB0byBsaXN0LgorCSAgICAjIFRPRE86IGNvdWxkIG9wdGltaXplIHRoaXMgdG8ganVzdCBleHRyYWN0IG9uZSBhcmNoaXZlLgorCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKwkgIGZpCisJICBpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCisJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcworCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKKwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKwkgIGVsc2UKKwkgICAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKwkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisKKwkgICAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCisJICAgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgorCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorCSAgZmkKKwlmaQorCisJaWYgdGVzdCAiJHRocmVhZF9zYWZlIiA9IHllcyAmJiB0ZXN0IC1uICIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjIjsgdGhlbgorCSAgZXZhbCBmbGFnPVwiJHRocmVhZF9zYWZlX2ZsYWdfc3BlY1wiCisJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZsYWciCisJZmkKKworCSMgTWFrZSBhIGJhY2t1cCBvZiB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSB3aGVuIHJlbGlua2luZworCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1VICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1VKScgfHwgZXhpdCAkPworCWZpCisKKwkjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCisJaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2V4cHN5bV9jbWRzXCIKKwkgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRzCisJICBlbHNlCisJICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9jbWRzXCIKKwkgICAgY21kcz0kbW9kdWxlX2NtZHMKKwkgIGZpCisJZWxzZQorCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9leHBzeW1fY21kc1wiCisJICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKKwkgIGVsc2UKKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9jbWRzXCIKKwkgICAgY21kcz0kYXJjaGl2ZV9jbWRzCisJICBmaQorCWZpCisKKwlpZiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmCisJICAgZnVuY19sZW4gIiAkdGVzdF9jbWRzIiAmJgorCSAgIGxlbj0kZnVuY19sZW5fcmVzdWx0ICYmCisJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCisJICA6CisJZWxzZQorCSAgIyBUaGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgcGllY2V3aXNlCisJICAjIG9yLCBpZiB1c2luZyBHTlUgbGQgYW5kIHNraXBwZWRfZXhwb3J0IGlzIG5vdCA6LCB1c2UgYSBsaW5rZXIKKwkgICMgc2NyaXB0LgorCisJICAjIFNhdmUgdGhlIHZhbHVlIG9mICRvdXRwdXQgYW5kICRsaWJvYmpzIGJlY2F1c2Ugd2Ugd2FudCB0bworCSAgIyB1c2UgdGhlbSBsYXRlci4gIElmIHdlIGhhdmUgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsIHdlCisJICAjIHdhbnQgdG8gdXNlIHNhdmVfbGlib2JqcyBhcyBpdCB3YXMgYmVmb3JlCisJICAjIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIHdhcyBleHBhbmRlZCwgYmVjYXVzZSB3ZSBjYW4ndAorCSAgIyBhc3N1bWUgdGhlIGxpbmtlciB1bmRlcnN0YW5kcyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYy4KKwkgICMgVGhpcyBtYXkgaGF2ZSB0byBiZSByZXZpc2l0ZWQsIGluIGNhc2UgdG9vIG1hbnkKKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIGdldCBsaW5rZWQgaW4gYW5kIGVuZCB1cCBleGNlZWRpbmcKKwkgICMgdGhlIHNwZWMuCisJICBpZiB0ZXN0IC16ICIkY29udmVuaWVuY2UiIHx8IHRlc3QgLXogIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCisJICBmaQorCSAgc2F2ZV9vdXRwdXQ9JG91dHB1dAorCSAgb3V0cHV0X2xhPWAkRUNITyAiWCRvdXRwdXQiIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCisKKwkgICMgQ2xlYXIgdGhlIHJlbG9hZGFibGUgb2JqZWN0IGNyZWF0aW9uIGNvbW1hbmQgcXVldWUgYW5kCisJICAjIGluaXRpYWxpemUgayB0byBvbmUuCisJICB0ZXN0X2NtZHM9CisJICBjb25jYXRfY21kcz0KKwkgIG9iamxpc3Q9CisJICBsYXN0X3JvYmo9CisJICBrPTEKKworCSAgaWYgdGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5sbmtzY3JpcHQKKwkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBHTlUgbGQgc2NyaXB0OiAkb3V0cHV0IgorCSAgICAkRUNITyAnSU5QVVQgKCcgPiAkb3V0cHV0CisJICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcworCSAgICBkbworCSAgICAgICRFQ0hPICIkb2JqIiA+PiAkb3V0cHV0CisJICAgIGRvbmUKKwkgICAgJEVDSE8gJyknID4+ICRvdXRwdXQKKwkgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgorCSAgZWxpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIlgkZmlsZV9saXN0X3NwZWMiICE9IFg7IHRoZW4KKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9LmxuaworCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGxpbmtlciBpbnB1dCBmaWxlIGxpc3Q6ICRvdXRwdXQiCisJICAgIDogPiAkb3V0cHV0CisJICAgIHNldCB4ICRzYXZlX2xpYm9ianMKKwkgICAgc2hpZnQKKwkgICAgZmlyc3RvYmo9CisJICAgIGlmIHRlc3QgIiRjb21waWxlcl9uZWVkc19vYmplY3QiID0geWVzOyB0aGVuCisJICAgICAgZmlyc3RvYmo9IiQxICIKKwkgICAgICBzaGlmdAorCSAgICBmaQorCSAgICBmb3Igb2JqCisJICAgIGRvCisJICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKwkgICAgZG9uZQorCSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRwdXQiCisJICAgIG91dHB1dD0kZmlyc3RvYmpcIiRmaWxlX2xpc3Rfc3BlYyRvdXRwdXRcIgorCSAgZWxzZQorCSAgICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIjsgdGhlbgorCSAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuLi4iCisJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CisJICAgICAgZXZhbCB0ZXN0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgorCSAgICAgIGZ1bmNfbGVuICIgJHRlc3RfY21kcyIKKwkgICAgICBsZW4wPSRmdW5jX2xlbl9yZXN1bHQKKwkgICAgICBsZW49JGxlbjAKKworCSAgICAgICMgTG9vcCBvdmVyIHRoZSBsaXN0IG9mIG9iamVjdHMgdG8gYmUgbGlua2VkLgorCSAgICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcworCSAgICAgIGRvCisJCWZ1bmNfbGVuICIgJG9iaiIKKwkJZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jlc3VsdAorCQlsZW49JGZ1bmNfYXJpdGhfcmVzdWx0CisJCWlmIHRlc3QgIlgkb2JqbGlzdCIgPSBYIHx8CisJCSAgIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgorCQkgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgorCQllbHNlCisJCSAgIyBUaGUgY29tbWFuZCAkdGVzdF9jbWRzIGlzIGFsbW9zdCB0b28gbG9uZywgYWRkIGEKKwkJICAjIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgorCQkgIGlmIHRlc3QgIiRrIiAtZXEgMSA7IHRoZW4KKwkJICAgICMgVGhlIGZpcnN0IGZpbGUgZG9lc24ndCBoYXZlIGEgcHJldmlvdXMgY29tbWFuZCB0byBhZGQuCisJCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiJHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgorCQkgIGVsc2UKKwkJICAgICMgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMgd2lsbCBsaW5rIGluCisJCSAgICAjIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgorCQkgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+JHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmp+XCRSTSAkbGFzdF9yb2JqXCIKKwkJICBmaQorCQkgIGxhc3Rfcm9iaj0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAorCQkgIGZ1bmNfYXJpdGggJGsgKyAxCisJCSAgaz0kZnVuY19hcml0aF9yZXN1bHQKKwkJICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKKwkJICBvYmpsaXN0PSRvYmoKKwkJICBmdW5jX2xlbiAiICRsYXN0X3JvYmoiCisJCSAgZnVuY19hcml0aCAkbGVuMCArICRmdW5jX2xlbl9yZXN1bHQKKwkJICBsZW49JGZ1bmNfYXJpdGhfcmVzdWx0CisJCWZpCisJICAgICAgZG9uZQorCSAgICAgICMgSGFuZGxlIHRoZSByZW1haW5pbmcgb2JqZWN0cyBieSBjcmVhdGluZyBvbmUgbGFzdAorCSAgICAgICMgcmVsb2FkYWJsZSBvYmplY3QgZmlsZS4gIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0CisJICAgICAgIyBmaWxlcyB3aWxsIGxpbmsgaW4gdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCisJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+CisJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsgdGhlbgorCSAgICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfX5cJFJNICRsYXN0X3JvYmpcIgorCSAgICAgIGZpCisJICAgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgorCisJICAgIGVsc2UKKwkgICAgICBvdXRwdXQ9CisJICAgIGZpCisKKwkgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KKwkgICAgICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIgorCSAgICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKKwkgICAgICBsaWJvYmpzPSRvdXRwdXQKKwkgICAgICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0byBjcmVhdGUgdGhlIGV4cG9ydCBmaWxlLgorCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgorCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzJGV4cG9ydF9zeW1ib2xzX2NtZHNcIgorCSAgICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoiOyB0aGVuCisJCWV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCisJICAgICAgZmkKKwkgICAgZmkKKworCSAgICB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJgorCSAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgYSB0ZW1wb3JhcnkgcmVsb2FkYWJsZSBvYmplY3QgZmlsZTogJG91dHB1dCIKKworCSAgICAjIExvb3AgdGhyb3VnaCB0aGUgY29tbWFuZHMgZ2VuZXJhdGVkIGFib3ZlIGFuZCBleGVjdXRlIHRoZW0uCisJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworCSAgICBmb3IgY21kIGluICRjb25jYXRfY21kczsgZG8KKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKKwkgICAgICAkb3B0X3NpbGVudCB8fCB7CisJCSAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkY21kIgorCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKKwkgICAgICB9CisJICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8IHsKKwkJbHRfZXhpdD0kPworCisJCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAorCQlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKwkJICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAorCQkgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKKwkJICAgICRNViAiJHtyZWFsbmFtZX1VIiAiJHJlYWxuYW1lIiApCisJCWZpCisKKwkJZXhpdCAkbHRfZXhpdAorCSAgICAgIH0KKwkgICAgZG9uZQorCSAgICBJRlM9IiRzYXZlX2lmcyIKKworCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCisJICAgICAgZnVuY19zaG93X2V2YWwgJyRFR1JFUCAtZSAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAiJGV4cG9ydF9zeW1ib2xzIiA+ICIke2V4cG9ydF9zeW1ib2xzfVQiJworCSAgICAgIGZ1bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9scyInCisJICAgIGZpCisJICBmaQorCisgICAgICAgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgorCSAgICAgIHRtcF9leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgorCSAgICAgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgorCSAgICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICckRUNITyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFhzZWQgfCAkU1AyTkwgPj4gIiR0bXBfZXhwb3J0X3N5bWJvbHMiJworCSAgICBmaQorCisJICAgIGlmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhlbgorCSAgICAgICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0LgorCSAgICAgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgorCSAgICAgICMgRklYTUU6ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlucyBsb3RzIG9mCisJICAgICAgIyAncycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQgc2hvdWxkIGJlIGZpbmUKKwkgICAgICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YKKwkgICAgICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpvaW4oMSkgd291bGQgYmUgbmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQorCSAgICAgICMgaXNuJ3QgYSBibGVzc2VkIHRvb2wuCisJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCisJICAgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgorCSAgICAgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgorCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCisJICAgIGZpCisJICBmaQorCisJICBsaWJvYmpzPSRvdXRwdXQKKwkgICMgUmVzdG9yZSB0aGUgdmFsdWUgb2Ygb3V0cHV0LgorCSAgb3V0cHV0PSRzYXZlX291dHB1dAorCisJICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiICYmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKwkgICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CisJICBmaQorCSAgIyBFeHBhbmQgdGhlIGxpYnJhcnkgbGlua2luZyBjb21tYW5kcyBhZ2FpbiB0byByZXNldCB0aGUKKwkgICMgdmFsdWUgb2YgJGxpYm9ianMgZm9yIHBpZWNld2lzZSBsaW5raW5nLgorCisJICAjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCisJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsgdGhlbgorCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCisJICAgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRzCisJICAgIGVsc2UKKwkgICAgICBjbWRzPSRtb2R1bGVfY21kcworCSAgICBmaQorCSAgZWxzZQorCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgorCSAgICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKKwkgICAgZWxzZQorCSAgICAgIGNtZHM9JGFyY2hpdmVfY21kcworCSAgICBmaQorCSAgZmkKKwlmaQorCisJaWYgdGVzdCAtbiAiJGRlbGZpbGVzIjsgdGhlbgorCSAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcyB0byAkY21kcy4KKwkgIGV2YWwgY21kcz1cIlwkY21kc35cJFJNICRkZWxmaWxlc1wiCisJZmkKKworCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcworCWlmIHRlc3QgLW4gIiRkbHByZWZpbGVzIjsgdGhlbgorCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorCisJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxwcmVmaWxlcworCSAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorCWZpCisKKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nficKKwlmb3IgY21kIGluICRjbWRzOyBkbworCSAgSUZTPSIkc2F2ZV9pZnMiCisJICBldmFsIGNtZD1cIiRjbWRcIgorCSAgJG9wdF9zaWxlbnQgfHwgeworCSAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRjbWQiCisJICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKKwkgIH0KKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7CisJICAgIGx0X2V4aXQ9JD8KKworCSAgICAjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKKwkgICAgaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJICAgICAgKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmIFwKKwkgICAgICAgICRSTSAiJHtyZWFsbmFtZX1UIiAmJiBcCisJCSRNViAiJHtyZWFsbmFtZX1VIiAiJHJlYWxuYW1lIiApCisJICAgIGZpCisKKwkgICAgZXhpdCAkbHRfZXhpdAorCSAgfQorCWRvbmUKKwlJRlM9IiRzYXZlX2lmcyIKKworCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAorCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1UICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1UICYmICRNViAke3JlYWxuYW1lfVUgJHJlYWxuYW1lKScgfHwgZXhpdCAkPworCisJICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCisJICAgIGlmIHRlc3QgLXogIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKwkgICAgZmkKKwkgIGZpCisKKwkgIGV4aXQgJEVYSVRfU1VDQ0VTUworCWZpCisKKwkjIENyZWF0ZSBsaW5rcyB0byB0aGUgcmVhbCBsaWJyYXJ5LgorCWZvciBsaW5rbmFtZSBpbiAkbGlua25hbWVzOyBkbworCSAgaWYgdGVzdCAiJHJlYWxuYW1lIiAhPSAiJGxpbmtuYW1lIjsgdGhlbgorCSAgICBmdW5jX3Nob3dfZXZhbCAnKGNkICIkb3V0cHV0X29iamRpciIgJiYgJFJNICIkbGlua25hbWUiICYmICRMTl9TICIkcmVhbG5hbWUiICIkbGlua25hbWUiKScgJ2V4aXQgJD8nCisJICBmaQorCWRvbmUKKworCSMgSWYgLW1vZHVsZSBvciAtZXhwb3J0LWR5bmFtaWMgd2FzIHNwZWNpZmllZCwgc2V0IHRoZSBkbG5hbWUuCisJaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgfHwgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllczsgdGhlbgorCSAgIyBPbiBhbGwga25vd24gb3BlcmF0aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCisJICBkbG5hbWU9IiRzb25hbWUiCisJZmkKKyAgICAgIGZpCisgICAgICA7OworCisgICAgb2JqKQorICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKyAgICAgIGZpCisKKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KKyAgICAgICpcIC1sKiB8ICpcIC1MKikKKwlmdW5jX3dhcm5pbmcgIlxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cyIgOzsKKyAgICAgIGVzYWMKKworICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKworICAgICAgdGVzdCAtbiAiJHhycGF0aCIgJiYgXAorCWZ1bmNfd2FybmluZyAiXGAtUicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKworICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisKKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNlIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorCisgICAgICBjYXNlICRvdXRwdXQgaW4KKyAgICAgICoubG8pCisJdGVzdCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiICYmIFwKKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBidWlsZCBsaWJyYXJ5IG9iamVjdCBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyIKKworCWxpYm9iaj0kb3V0cHV0CisJZnVuY19sbzJvICIkbGlib2JqIgorCW9iaj0kZnVuY19sbzJvX3Jlc3VsdAorCTs7CisgICAgICAqKQorCWxpYm9iaj0KKwlvYmo9IiRvdXRwdXQiCisJOzsKKyAgICAgIGVzYWMKKworICAgICAgIyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgorICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkb2JqICRsaWJvYmoKKworICAgICAgIyBPYmplY3RzIGZyb20gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgVGhpcyBhc3N1bWVzCisgICAgICAjIHNpbmdsZS12ZXJzaW9uIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFdoZW5ldmVyIHdlIGNyZWF0ZQorICAgICAgIyBkaWZmZXJlbnQgb25lcyBmb3IgUElDL25vbi1QSUMsIHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKKyAgICAgICMgdGhlIGV4dHJhY3Rpb24uCisgICAgICByZWxvYWRfY29udl9vYmpzPQorICAgICAgZ2VudG9wPQorICAgICAgIyByZWxvYWRfY21kcyBydW5zICRMRCBkaXJlY3RseSwgc28gbGV0IHVzIGdldCByaWQgb2YKKyAgICAgICMgLVdsIGZyb20gd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgYW5kIGhvcGUgd2UgY2FuIGdldCBieSB3aXRoCisgICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCisgICAgICB3bD0KKworICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgorCWlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKwkgIGV2YWwgdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3M9XCIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgorCSAgcmVsb2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNcIGAkRUNITyAiWCR0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncyIgfCAkWHNlZCAtZSAnc3wsfCB8ZydgCisJZWxzZQorCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke29ian14IgorCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisKKwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRjb252ZW5pZW5jZQorCSAgcmVsb2FkX2NvbnZfb2Jqcz0iJHJlbG9hZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgorCWZpCisgICAgICBmaQorCisgICAgICAjIENyZWF0ZSB0aGUgb2xkLXN0eWxlIG9iamVjdC4KKyAgICAgIHJlbG9hZF9vYmpzPSIkb2JqcyRvbGRfZGVwbGlicyAiYCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgJy9cLicke2xpYmV4dH0kJy9kJyAtZSAnL1wubGliJC9kJyAtZSAiJGxvMm8iIHwgJE5MMlNQYCIgJHJlbG9hZF9jb252X29ianMiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAorCisgICAgICBvdXRwdXQ9IiRvYmoiCisgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKKworICAgICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCisgICAgICBpZiB0ZXN0IC16ICIkbGlib2JqIjsgdGhlbgorCWlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCisJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKwlmaQorCisJZXhpdCAkRVhJVF9TVUNDRVNTCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KKwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgorCSAgZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCisJZmkKKworCSMgQ3JlYXRlIGFuIGludmFsaWQgbGlidG9vbCBvYmplY3QgaWYgbm8gUElDLCBzbyB0aGF0IHdlIGRvbid0CisJIyBhY2NpZGVudGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4KKwkjICRzaG93ICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiCisJIyAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIiB8fCBleGl0ICQ/CisJZXhpdCAkRVhJVF9TVUNDRVNTCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0IC1uICIkcGljX2ZsYWciIHx8IHRlc3QgIiRwaWNfbW9kZSIgIT0gZGVmYXVsdDsgdGhlbgorCSMgT25seSBkbyBjb21tYW5kcyBpZiB3ZSByZWFsbHkgaGF2ZSBkaWZmZXJlbnQgUElDIG9iamVjdHMuCisJcmVsb2FkX29ianM9IiRsaWJvYmpzICRyZWxvYWRfY29udl9vYmpzIgorCW91dHB1dD0iJGxpYm9iaiIKKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCisJZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCisgICAgICBmaQorCisgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyAgICAgIDs7CisKKyAgICBwcm9nKQorICAgICAgY2FzZSAkaG9zdCBpbgorCSpjeWd3aW4qKSBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXQiCisJICAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0LmV4ZTs7CisgICAgICBlc2FjCisgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mbycgaXMgaWdub3JlZCBmb3IgcHJvZ3JhbXMiCisKKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNlIiAmJiBcCisJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKKworICAgICAgdGVzdCAiJHByZWxvYWQiID0geWVzIFwKKyAgICAgICAgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHVua25vd24gXAorCSYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgPSB1bmtub3duIFwKKwkmJiB0ZXN0ICIkZGxvcGVuX3NlbGZfc3RhdGljIiA9IHVua25vd24gJiYgXAorCSAgZnVuY193YXJuaW5nICJcYExUX0lOSVQoW2Rsb3Blbl0pJyBub3QgdXNlZC4gQXNzdW1pbmcgbm8gZGxvcGVuIHN1cHBvcnQuIgorCisgICAgICBjYXNlICRob3N0IGluCisgICAgICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCisJIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5c3RlbSBmcmFtZXdvcmsKKwljb21waWxlX2RlcGxpYnM9YCRFQ0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiWCAkZmluYWxpemVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAorCTs7CisgICAgICBlc2FjCisKKyAgICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICotKi1kYXJ3aW4qKQorCSMgRG9uJ3QgYWxsb3cgbGF6eSBsaW5raW5nLCBpdCBicmVha3MgQysrIGdsb2JhbCBjb25zdHJ1Y3RvcnMKKwkjIEJ1dCBpcyBzdXBwb3NlZGx5IGZpeGVkIG9uIDEwLjQgb3IgbGF0ZXIgKHlheSEpLgorCWlmIHRlc3QgIiR0YWduYW1lIiA9IENYWCA7IHRoZW4KKwkgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0gaW4KKwkgICAgMTAuWzAxMjNdKQorCSAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCisJICAgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJHt3bH0tYmluZF9hdF9sb2FkIgorCSAgICA7OworCSAgZXNhYworCWZpCisJIyBUaW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28ubHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsgZm9vIgorCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIlggJGNvbXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiWCAkZmluYWxpemVfZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwk7OworICAgICAgZXNhYworCisKKyAgICAgICMgbW92ZSBsaWJyYXJ5IHNlYXJjaCBwYXRocyB0aGF0IGNvaW5jaWRlIHdpdGggcGF0aHMgdG8gbm90IHlldAorICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKKyAgICAgIG5ld19saWJzPQorICAgICAgZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KKwljYXNlICIgJG5ld19saWJzICIgaW4KKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7CisJKikKKwkgIGNhc2UgIiAkY29tcGlsZV9kZXBsaWJzICIgaW4KKwkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7CisJICBlc2FjCisJICA7OworCWVzYWMKKyAgICAgIGRvbmUKKyAgICAgIGZvciBkZXBsaWIgaW4gJGNvbXBpbGVfZGVwbGliczsgZG8KKwljYXNlICRkZXBsaWIgaW4KKwktTCopCisJICBjYXNlICIgJG5ld19saWJzICIgaW4KKwkgICoiICRkZXBsaWIgIiopIDs7CisJICAqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7CisJICBlc2FjCisJICA7OworCSopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKwllc2FjCisgICAgICBkb25lCisgICAgICBjb21waWxlX2RlcGxpYnM9IiRuZXdfbGlicyIKKworCisgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGNvbXBpbGVfZGVwbGlicyIKKyAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRmaW5hbGl6ZV9kZXBsaWJzIgorCisgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgkeHJwYXRoIjsgdGhlbgorCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KKwlmb3IgbGliZGlyIGluICRycGF0aCAkeHJwYXRoOyBkbworCSAgIyBUaGlzIGlzIHRoZSBtYWdpYyB0byB1c2UgLXJwYXRoLgorCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKwkgICoiICRsaWJkaXIgIiopIDs7CisJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7CisJICBlc2FjCisJZG9uZQorICAgICAgZmkKKworICAgICAgIyBOb3cgaGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKKyAgICAgIHJwYXRoPQorICAgICAgaGFyZGNvZGVfbGliZGlycz0KKyAgICAgIGZvciBsaWJkaXIgaW4gJGNvbXBpbGVfcnBhdGggJGZpbmFsaXplX3JwYXRoOyBkbworCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCisJICAgIGVsc2UKKwkgICAgICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCisJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisJCTs7CisJICAgICAgKikKKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisJCTs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgZWxzZQorCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisJICBmaQorCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgorCSAgKiIgJGxpYmRpciAiKikgOzsKKwkgICopIHBlcm1fcnBhdGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7CisJICBlc2FjCisJZmkKKwljYXNlICRob3N0IGluCisJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKKwkgIHRlc3RiaW5kaXI9YCR7RUNIT30gIiRsaWJkaXIiIHwgJHtTRUR9IC1lICdzKi9saWIkKi9iaW4qJ2AKKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorCSAgKiI6JGxpYmRpcjoiKikgOzsKKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSRsaWJkaXI7OworCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JGxpYmRpciI7OworCSAgZXNhYworCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7CisJICBlc2FjCisJICA7OworCWVzYWMKKyAgICAgIGRvbmUKKyAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYKKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKwlldmFsIHJwYXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKyAgICAgIGZpCisgICAgICBjb21waWxlX3JwYXRoPSIkcnBhdGgiCisKKyAgICAgIHJwYXRoPQorICAgICAgaGFyZGNvZGVfbGliZGlycz0KKyAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFsaXplX3JwYXRoOyBkbworCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCisJICAgIGVsc2UKKwkgICAgICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCisJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisJCTs7CisJICAgICAgKikKKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisJCTs7CisJICAgICAgZXNhYworCSAgICBmaQorCSAgZWxzZQorCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisJICBmaQorCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorCSAgY2FzZSAiJGZpbmFsaXplX3Blcm1fcnBhdGggIiBpbgorCSAgKiIgJGxpYmRpciAiKikgOzsKKwkgICopIGZpbmFsaXplX3Blcm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7CisJICBlc2FjCisJZmkKKyAgICAgIGRvbmUKKyAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYKKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKwlldmFsIHJwYXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKyAgICAgIGZpCisgICAgICBmaW5hbGl6ZV9ycGF0aD0iJHJwYXRoIgorCisgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorCSMgVHJhbnNmb3JtIGFsbCB0aGUgbGlicmFyeSBvYmplY3RzIGludG8gc3RhbmRhcmQgb2JqZWN0cy4KKwljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorCWZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKyAgICAgIGZpCisKKyAgICAgIGZ1bmNfZ2VuZXJhdGVfZGxzeW1zICIkb3V0cHV0bmFtZSIgIkBQUk9HUkFNQCIgIm5vIgorCisgICAgICAjIHRlbXBsYXRlIHByZWxpbmtpbmcgc3RlcAorICAgICAgaWYgdGVzdCAtbiAiJHByZWxpbmtfY21kcyI7IHRoZW4KKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHByZWxpbmtfY21kcyIgJ2V4aXQgJD8nCisgICAgICBmaQorCisgICAgICB3cmFwcGVyc19yZXF1aXJlZD15ZXMKKyAgICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCisgICAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorICAgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCisgICAgICAgIGZpCisgICAgICAgIDs7CisgICAgICAqY2VnY2MpCisgICAgICAgICMgRGlzYWJsZSB3cmFwcGVycyBmb3IgY2VnY2MsIHdlIGFyZSBjcm9zcyBjb21waWxpbmcgYW55d2F5LgorICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworICAgICAgICA7OworICAgICAgKikKKyAgICAgICAgaWYgdGVzdCAiJG5lZWRfcmVsaW5rIiA9IG5vIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorICAgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCisgICAgICAgIGZpCisgICAgICAgIDs7CisgICAgICBlc2FjCisgICAgICBpZiB0ZXN0ICIkd3JhcHBlcnNfcmVxdWlyZWQiID0gbm87IHRoZW4KKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCisJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisKKwkjIFdlIGhhdmUgbm8gdW5pbnN0YWxsZWQgbGlicmFyeSBkZXBlbmRlbmNpZXMsIHNvIGZpbmFsaXplIHJpZ2h0IG5vdy4KKwlleGl0X3N0YXR1cz0wCisJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0X3N0YXR1cz0kPycKKworCSMgRGVsZXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMuCisJaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IjsgdGhlbgorCSAgZnVuY19zaG93X2V2YWwgJyRSTSAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IicKKwlmaQorCisJZXhpdCAkZXhpdF9zdGF0dXMKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgLW4gIiRjb21waWxlX3NobGlicGF0aCRmaW5hbGl6ZV9zaGxpYnBhdGgiOyB0aGVuCisJY29tcGlsZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRjb21waWxlX3NobGlicGF0aCRmaW5hbGl6ZV9zaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIgJGNvbXBpbGVfY29tbWFuZCIKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0IC1uICIkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhlbgorCWZpbmFsaXplX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkZmluYWxpemVfY29tbWFuZCIKKyAgICAgIGZpCisKKyAgICAgIGNvbXBpbGVfdmFyPQorICAgICAgZmluYWxpemVfdmFyPQorICAgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorCWlmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgorCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KKwkgIHJwYXRoPQorCSAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KKwkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorCSAgZG9uZQorCSAgY29tcGlsZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgorCWZpCisJaWYgdGVzdCAtbiAiJGZpbmFsaXplX3Blcm1fcnBhdGgiOyB0aGVuCisJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgorCSAgcnBhdGg9CisJICBmb3IgZGlyIGluICRmaW5hbGl6ZV9wZXJtX3JwYXRoOyBkbworCSAgICBycGF0aD0iJHJwYXRoJGRpcjoiCisJICBkb25lCisJICBmaW5hbGl6ZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgorCWZpCisgICAgICBmaQorCisgICAgICBpZiB0ZXN0ICIkbm9faW5zdGFsbCIgPSB5ZXM7IHRoZW4KKwkjIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCisJbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgorCWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorCSMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGUuCisJJG9wdF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0CisJIyBMaW5rIHRoZSBleGVjdXRhYmxlIGFuZCBleGl0CisJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JworCWV4aXQgJEVYSVRfU1VDQ0VTUworICAgICAgZmkKKworICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KKwkjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKwlyZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorCisJZnVuY193YXJuaW5nICJ0aGlzIHBsYXRmb3JtIGRvZXMgbm90IGxpa2UgdW5pbnN0YWxsZWQgc2hhcmVkIGxpYnJhcmllcyIKKwlmdW5jX3dhcm5pbmcgIlxgJG91dHB1dCcgd2lsbCBiZSByZWxpbmtlZCBkdXJpbmcgaW5zdGFsbGF0aW9uIgorICAgICAgZWxzZQorCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiICE9IG5vOyB0aGVuCisJICBsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJVwkcHJvZ2Rpci9cJGZpbGUlZydgCisJICBlbHNlCisJICAgICMgZmFzdF9pbnN0YWxsIGlzIHNldCB0byBuZWVkbGVzcworCSAgICByZWxpbmtfY29tbWFuZD0KKwkgIGZpCisJZWxzZQorCSAgbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisJICByZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorCWZpCisgICAgICBmaQorCisgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisgICAgICBsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIiclZydgCisKKyAgICAgICMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGVzLgorICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0ICRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0LSRvdXRwdXRuYW1lCisKKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKworICAgICAgIyBOb3cgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdC4KKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKKworICAgICAgIyBRdW90ZSB0aGUgcmVsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgorICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorCSMgUHJlc2VydmUgYW55IHZhcmlhYmxlcyB0aGF0IG1heSBhZmZlY3QgY29tcGlsZXIgYmVoYXZpb3IKKwlmb3IgdmFyIGluICR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluazsgZG8KKwkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisJICAgIHJlbGlua19jb21tYW5kPSJ7IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8fCAkbHRfdW5zZXQgJHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgorCSAgZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCisJICAgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKwkgIGVsc2UKKwkgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHZhcl92YWx1ZSIKKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorCSAgZmkKKwlkb25lCisJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5kKSIKKwlyZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorICAgICAgZmkKKworICAgICAgIyBRdW90ZSAkRUNITyBmb3Igc2hpcHBpbmcuCisgICAgICBpZiB0ZXN0ICJYJEVDSE8iID0gIlgkU0hFTEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KKwljYXNlICRwcm9ncGF0aCBpbgorCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcWVjaG89IiRTSEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjs7CisJKikgcWVjaG89IiRTSEVMTCBgcHdkYC8kcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjs7CisJZXNhYworCXFlY2hvPWAkRUNITyAiWCRxZWNobyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisgICAgICBlbHNlCisJcWVjaG89YCRFQ0hPICJYJEVDSE8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorICAgICAgZmkKKworICAgICAgIyBPbmx5IGFjdHVhbGx5IGRvIHRoaW5ncyBpZiBub3QgaW4gZHJ5IHJ1biBtb2RlLgorICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkjIHdpbjMyIHdpbGwgdGhpbmsgdGhlIHNjcmlwdCBpcyBhIGJpbmFyeSBpZiBpdCBoYXMKKwkjIGEgLmV4ZSBzdWZmaXgsIHNvIHdlIHN0cmlwIGl0IG9mZiBoZXJlLgorCWNhc2UgJG91dHB1dCBpbgorCSAgKi5leGUpIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG91dHB1dCIKKwkgICAgICAgICBvdXRwdXQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworCWVzYWMKKwkjIHRlc3QgZm9yIGN5Z3dpbiBiZWNhdXNlIG12IGZhaWxzIHcvbyAuZXhlIGV4dGVuc2lvbnMKKwljYXNlICRob3N0IGluCisJICAqY3lnd2luKikKKwkgICAgZXhlZXh0PS5leGUKKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0bmFtZSIKKwkgICAgb3V0cHV0bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7CisJICAqKSBleGVleHQ9IDs7CisJZXNhYworCWNhc2UgJGhvc3QgaW4KKwkgICpjeWd3aW4qIHwgKm1pbmd3KiApCisJICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRvdXRwdXQiICIiICIuIgorCSAgICBvdXRwdXRfbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKwkgICAgb3V0cHV0X3BhdGg9JGZ1bmNfZGlybmFtZV9yZXN1bHQKKwkgICAgY3dyYXBwZXJzb3VyY2U9IiRvdXRwdXRfcGF0aC8kb2JqZGlyL2x0LSRvdXRwdXRfbmFtZS5jIgorCSAgICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUiCisJICAgICRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVyCisJICAgIHRyYXAgIiRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVyOyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorCisJICAgIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMgPiAkY3dyYXBwZXJzb3VyY2UKKworCSAgICAjIFRoZSB3cmFwcGVyIGV4ZWN1dGFibGUgaXMgYnVpbHQgdXNpbmcgdGhlICRob3N0IGNvbXBpbGVyLAorCSAgICAjIGJlY2F1c2UgaXQgY29udGFpbnMgJGhvc3QgcGF0aHMgYW5kIGZpbGVzLiBJZiBjcm9zcy0KKwkgICAgIyBjb21waWxpbmcsIGl0LCBsaWtlIHRoZSB0YXJnZXQgZXhlY3V0YWJsZSwgbXVzdCBiZQorCSAgICAjIGV4ZWN1dGVkIG9uIHRoZSAkaG9zdCBvciB1bmRlciBhbiBlbXVsYXRpb24gZW52aXJvbm1lbnQuCisJICAgICRvcHRfZHJ5X3J1biB8fCB7CisJICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1vICRjd3JhcHBlciAkY3dyYXBwZXJzb3VyY2UKKwkgICAgICAkU1RSSVAgJGN3cmFwcGVyCisJICAgIH0KKworCSAgICAjIE5vdywgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdCBmb3IgZnVuY19zb3VyY2UgdXNlOgorCSAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICRjd3JhcHBlcgorCSAgICAkUk0gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0CisJICAgIHRyYXAgIiRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1CisJICAgICRvcHRfZHJ5X3J1biB8fCB7CisJICAgICAgIyBub3RlOiB0aGlzIHNjcmlwdCB3aWxsIG5vdCBiZSBleGVjdXRlZCwgc28gZG8gbm90IGNobW9kLgorCSAgICAgIGlmIHRlc3QgIngkYnVpbGQiID0gIngkaG9zdCIgOyB0aGVuCisJCSRjd3JhcHBlciAtLWx0LWR1bXAtc2NyaXB0ID4gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0CisJICAgICAgZWxzZQorCQlmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAorCSAgICAgIGZpCisJICAgIH0KKwkgIDs7CisJICAqICkKKwkgICAgJFJNICRvdXRwdXQKKwkgICAgdHJhcCAiJFJNICRvdXRwdXQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1CisKKwkgICAgZnVuY19lbWl0X3dyYXBwZXIgbm8gPiAkb3V0cHV0CisJICAgIGNobW9kICt4ICRvdXRwdXQKKwkgIDs7CisJZXNhYworICAgICAgfQorICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisgICAgICA7OworICAgIGVzYWMKKworICAgICMgU2VlIGlmIHdlIG5lZWQgdG8gYnVpbGQgYW4gb2xkLWZhc2hpb25lZCBhcmNoaXZlLgorICAgIGZvciBvbGRsaWIgaW4gJG9sZGxpYnM7IGRvCisKKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gY29udmVuaWVuY2U7IHRoZW4KKwlvbGRvYmpzPSIkbGlib2Jqc19zYXZlICRzeW1maWxlb2JqIgorCWFkZGxpYnM9IiRjb252ZW5pZW5jZSIKKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKyAgICAgIGVsc2UKKwlpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG1vZHVsZTsgdGhlbgorCSAgb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSIKKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubworCWVsc2UKKwkgIG9sZG9ianM9IiRvbGRfZGVwbGlicyAkbm9uX3BpY19vYmplY3RzIgorCSAgaWYgdGVzdCAiJHByZWxvYWQiID0geWVzICYmIHRlc3QgLWYgIiRzeW1maWxlb2JqIjsgdGhlbgorCSAgICBvbGRvYmpzPSIkb2xkb2JqcyAkc3ltZmlsZW9iaiIKKwkgIGZpCisJZmkKKwlhZGRsaWJzPSIkb2xkX2NvbnZlbmllbmNlIgorICAgICAgZmkKKworICAgICAgaWYgdGVzdCAtbiAiJGFkZGxpYnMiOyB0aGVuCisJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKwlnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKworCWZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRhZGRsaWJzCisJb2xkb2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisgICAgICBmaQorCisgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKyAgICAgIGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiAmJiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorCWNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKKyAgICAgIGVsc2UKKworCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcworCWlmIHRlc3QgLW4gIiRkbHByZWZpbGVzIjsgdGhlbgorCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorCisJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxwcmVmaWxlcworCSAgb2xkb2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJZmkKKworCSMgUE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2ZQorCSMgdG8gYXZvaWQgY3JlYXRpbmcgYXJjaGl2ZXMgd2l0aCBkdXBsaWNhdGUgYmFzZW5hbWVzIGlmIHdlCisJIyBtaWdodCBoYXZlIHRvIGV4dHJhY3QgdGhlbSBhZnRlcndhcmRzLCBlLmcuLCB3aGVuIGNyZWF0aW5nIGEKKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmllbmNlIGxpYnJhcnksIG9yIHdoZW4gbGlua2luZworCSMgdGhlIGVudGlyZXR5IG9mIGEgbGlidG9vbCBhcmNoaXZlIGludG8gYW5vdGhlciAoY3VycmVudGx5CisJIyBub3Qgc3VwcG9ydGVkIGJ5IGxpYnRvb2wpLgorCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCisJICAgIGRvCisJICAgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKKwkgICAgICAkRUNITyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCSAgICBkb25lIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KKwkgIDoKKwllbHNlCisJICAkRUNITyAiY29weWluZyBzZWxlY3RlZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxpY3RzLi4uIgorCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorCSAgZnVuY19ta2Rpcl9wICIkZ2VudG9wIgorCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCisJICBvbGRvYmpzPQorCSAgY291bnRlcj0xCisJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKKwkgIGRvCisJICAgIGZ1bmNfYmFzZW5hbWUgIiRvYmoiCisJICAgIG9iamJhc2U9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkgICAgY2FzZSAiICRvbGRvYmpzICIgaW4KKwkgICAgIiAiKSBvbGRvYmpzPSRvYmogOzsKKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQorCSAgICAgIHdoaWxlIDo7IGRvCisJCSMgTWFrZSBzdXJlIHdlIGRvbid0IHBpY2sgYW4gYWx0ZXJuYXRlIG5hbWUgdGhhdCBhbHNvCisJCSMgb3ZlcmxhcHMuCisJCW5ld29iaj1sdCRjb3VudGVyLSRvYmpiYXNlCisJCWZ1bmNfYXJpdGggJGNvdW50ZXIgKyAxCisJCWNvdW50ZXI9JGZ1bmNfYXJpdGhfcmVzdWx0CisJCWNhc2UgIiAkb2xkb2JqcyAiIGluCisJCSpbXCAvXSIkbmV3b2JqICIqKSA7OworCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRoZW4gYnJlYWs7IGZpIDs7CisJCWVzYWMKKwkgICAgICBkb25lCisJICAgICAgZnVuY19zaG93X2V2YWwgImxuICRvYmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgorCSAgICAgIG9sZG9ianM9IiRvbGRvYmpzICRnZW50b3AvJG5ld29iaiIKKwkgICAgICA7OworCSAgICAqKSBvbGRvYmpzPSIkb2xkb2JqcyAkb2JqIiA7OworCSAgICBlc2FjCisJICBkb25lCisJZmkKKwlldmFsIGNtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCisKKwlmdW5jX2xlbiAiICRjbWRzIgorCWxlbj0kZnVuY19sZW5fcmVzdWx0CisJaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCisJICBjbWRzPSRvbGRfYXJjaGl2ZV9jbWRzCisJZWxzZQorCSAgIyB0aGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgaW4gcGFydHMKKwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgcGllY2V3aXNlIGFyY2hpdmUgbGlua2luZy4uLiIKKwkgIHNhdmVfUkFOTElCPSRSQU5MSUIKKwkgIFJBTkxJQj06CisJICBvYmpsaXN0PQorCSAgY29uY2F0X2NtZHM9CisJICBzYXZlX29sZG9ianM9JG9sZG9ianMKKwkgIG9sZG9ianM9CisJICAjIElzIHRoZXJlIGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcworCSAgZG8KKwkgICAgbGFzdF9vbGRvYmo9JG9iagorCSAgZG9uZQorCSAgZXZhbCB0ZXN0X2NtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCisJICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiCisJICBsZW4wPSRmdW5jX2xlbl9yZXN1bHQKKwkgIGxlbj0kbGVuMAorCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCisJICBkbworCSAgICBmdW5jX2xlbiAiICRvYmoiCisJICAgIGZ1bmNfYXJpdGggJGxlbiArICRmdW5jX2xlbl9yZXN1bHQKKwkgICAgbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAorCSAgICBmdW5jX2FwcGVuZCBvYmpsaXN0ICIgJG9iaiIKKwkgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCisJICAgICAgOgorCSAgICBlbHNlCisJICAgICAgIyB0aGUgYWJvdmUgY29tbWFuZCBzaG91bGQgYmUgdXNlZCBiZWZvcmUgaXQgZ2V0cyB0b28gbG9uZworCSAgICAgIG9sZG9ianM9JG9iamxpc3QKKwkgICAgICBpZiB0ZXN0ICIkb2JqIiA9ICIkbGFzdF9vbGRvYmoiIDsgdGhlbgorCQlSQU5MSUI9JHNhdmVfUkFOTElCCisJICAgICAgZmkKKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JG9sZF9hcmNoaXZlX2NtZHNcIgorCSAgICAgIG9iamxpc3Q9CisJICAgICAgbGVuPSRsZW4wCisJICAgIGZpCisJICBkb25lCisJICBSQU5MSUI9JHNhdmVfUkFOTElCCisJICBvbGRvYmpzPSRvYmpsaXN0CisJICBpZiB0ZXN0ICJYJG9sZG9ianMiID0gIlgiIDsgdGhlbgorCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzXCIKKwkgIGVsc2UKKwkgICAgZXZhbCBjbWRzPVwiXCRjb25jYXRfY21kc35cJG9sZF9hcmNoaXZlX2NtZHNcIgorCSAgZmkKKwlmaQorICAgICAgZmkKKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkY21kcyIgJ2V4aXQgJD8nCisgICAgZG9uZQorCisgICAgdGVzdCAtbiAiJGdlbmVyYXRlZCIgJiYgXAorICAgICAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciRnZW5lcmF0ZWQiCisKKyAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wgYXJjaGl2ZS4KKyAgICBjYXNlICRvdXRwdXQgaW4KKyAgICAqLmxhKQorICAgICAgb2xkX2xpYnJhcnk9CisgICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIG9sZF9saWJyYXJ5PSIkbGlibmFtZS4kbGliZXh0IgorICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyAkb3V0cHV0IgorCisgICAgICAjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisgICAgICBmb3IgdmFyIGluICR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluazsgZG8KKwlpZiBldmFsIHRlc3QgLXogXCJcJHskdmFyK3NldH1cIjsgdGhlbgorCSAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAkdmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCisJZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCisJICByZWxpbmtfY29tbWFuZD0iJHZhcj07IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCisJZWxzZQorCSAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHZhcl92YWx1ZSIKKwkgIHJlbGlua19jb21tYW5kPSIkdmFyPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdDsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKwlmaQorICAgICAgZG9uZQorICAgICAgIyBRdW90ZSB0aGUgbGluayBjb21tYW5kIGZvciBzaGlwcGluZy4KKyAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJAKSIKKyAgICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllcyA7IHRoZW4KKwlyZWxpbmtfY29tbWFuZD0KKyAgICAgIGZpCisKKyAgICAgICMgT25seSBjcmVhdGUgdGhlIG91dHB1dCBpZiBub3QgYSBkcnkgcnVuLgorICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwlmb3IgaW5zdGFsbGVkIGluIG5vIHllczsgZG8KKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCisJICAgIGlmIHRlc3QgLXogIiRpbnN0YWxsX2xpYmRpciI7IHRoZW4KKwkgICAgICBicmVhaworCSAgICBmaQorCSAgICBvdXRwdXQ9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lImkKKwkgICAgIyBSZXBsYWNlIGFsbCB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcyB3aXRoIHRoZSBpbnN0YWxsZWQgb25lcworCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9CisJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKwkgICAgICBjYXNlICRkZXBsaWIgaW4KKwkgICAgICAqLmxhKQorCQlmdW5jX2Jhc2VuYW1lICIkZGVwbGliIgorCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRkZXBsaWJgCisJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKwkJbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCisJCTs7CisJICAgICAgKikgbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRkZXBsaWIiIDs7CisJICAgICAgZXNhYworCSAgICBkb25lCisJICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKKwkgICAgbmV3ZGxmaWxlcz0KKworCSAgICBmb3IgbGliIGluICRkbGZpbGVzOyBkbworCSAgICAgIGNhc2UgJGxpYiBpbgorCSAgICAgICoubGEpCisJICAgICAgICBmdW5jX2Jhc2VuYW1lICIkbGliIgorCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCisJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKwkJbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYmRpci8kbmFtZSIKKwkJOzsKKwkgICAgICAqKSBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliIiA7OworCSAgICAgIGVzYWMKKwkgICAgZG9uZQorCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKKwkgICAgbmV3ZGxwcmVmaWxlcz0KKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KKwkgICAgICBjYXNlICRsaWIgaW4KKwkgICAgICAqLmxhKQorCQkjIE9ubHkgcGFzcyBwcmVvcGVuZWQgZmlsZXMgdG8gdGhlIHBzZXVkby1hcmNoaXZlIChmb3IKKwkJIyBldmVudHVhbCBsaW5raW5nIHdpdGggdGhlIGFwcC4gdGhhdCBsaW5rcyBpdCkgaWYgd2UKKwkJIyBkaWRuJ3QgYWxyZWFkeSBsaW5rIHRoZSBwcmVvcGVuZWQgb2JqZWN0cyBkaXJlY3RseSBpbnRvCisJCSMgdGhlIGxpYnJhcnk6CisJCWZ1bmNfYmFzZW5hbWUgIiRsaWIiCisJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGxpYmAKKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorCQluZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkbGliZGlyLyRuYW1lIgorCQk7OworCSAgICAgIGVzYWMKKwkgICAgZG9uZQorCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKwkgIGVsc2UKKwkgICAgbmV3ZGxmaWxlcz0KKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KKwkgICAgICBjYXNlICRsaWIgaW4KKwkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7CisJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKwkgICAgICBlc2FjCisJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGFicyIKKwkgICAgZG9uZQorCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKKwkgICAgbmV3ZGxwcmVmaWxlcz0KKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KKwkgICAgICBjYXNlICRsaWIgaW4KKwkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7CisJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKwkgICAgICBlc2FjCisJICAgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGFicyIKKwkgICAgZG9uZQorCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKwkgIGZpCisJICAkUk0gJG91dHB1dAorCSAgIyBwbGFjZSBkbG5hbWUgaW4gY29ycmVjdCBwb3NpdGlvbiBmb3IgY3lnd2luCisJICB0ZGxuYW1lPSRkbG5hbWUKKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgorCSAgICAqY3lnd2luKiwqbGFpLHllcyxubywqLmRsbCB8ICptaW5ndyosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqY2VnY2MqLCpsYWkseWVzLG5vLCouZGxsKSB0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lIDs7CisJICBlc2FjCisJICAkRUNITyA+ICRvdXRwdXQgIlwKKyMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFyeSBmaWxlCisjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKyMKKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQorIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisKKyMgVGhlIG5hbWUgdGhhdCB3ZSBjYW4gZGxvcGVuKDMpLgorZGxuYW1lPSckdGRsbmFtZScKKworIyBOYW1lcyBvZiB0aGlzIGxpYnJhcnkuCitsaWJyYXJ5X25hbWVzPSckbGlicmFyeV9uYW1lcycKKworIyBUaGUgbmFtZSBvZiB0aGUgc3RhdGljIGFyY2hpdmUuCitvbGRfbGlicmFyeT0nJG9sZF9saWJyYXJ5JworCisjIExpbmtlciBmbGFncyB0aGF0IGNhbiBub3QgZ28gaW4gZGVwZW5kZW5jeV9saWJzLgoraW5oZXJpdGVkX2xpbmtlcl9mbGFncz0nJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzJworCisjIExpYnJhcmllcyB0aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KK2RlcGVuZGVuY3lfbGlicz0nJGRlcGVuZGVuY3lfbGlicycKKworIyBOYW1lcyBvZiBhZGRpdGlvbmFsIHdlYWsgbGlicmFyaWVzIHByb3ZpZGVkIGJ5IHRoaXMgbGlicmFyeQord2Vha19saWJyYXJ5X25hbWVzPSckd2Vha19saWJzJworCisjIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yICRsaWJuYW1lLgorY3VycmVudD0kY3VycmVudAorYWdlPSRhZ2UKK3JldmlzaW9uPSRyZXZpc2lvbgorCisjIElzIHRoaXMgYW4gYWxyZWFkeSBpbnN0YWxsZWQgbGlicmFyeT8KK2luc3RhbGxlZD0kaW5zdGFsbGVkCisKKyMgU2hvdWxkIHdlIHdhcm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hlbiBsaW5raW5nIGFnYWluc3QgLW1vZHVsZXM/CitzaG91bGRub3RsaW5rPSRtb2R1bGUKKworIyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCitkbG9wZW49JyRkbGZpbGVzJworZGxwcmVvcGVuPSckZGxwcmVmaWxlcycKKworIyBEaXJlY3RvcnkgdGhhdCB0aGlzIGxpYnJhcnkgbmVlZHMgdG8gYmUgaW5zdGFsbGVkIGluOgorbGliZGlyPSckaW5zdGFsbF9saWJkaXInIgorCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0geWVzOyB0aGVuCisJICAgICRFQ0hPID4+ICRvdXRwdXQgIlwKK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIiCisJICBmaQorCWRvbmUKKyAgICAgIH0KKworICAgICAgIyBEbyBhIHN5bWJvbGljIGxpbmsgc28gdGhhdCB0aGUgbGlidG9vbCBhcmNoaXZlIGNhbiBiZSBmb3VuZCBpbgorICAgICAgIyBMRF9MSUJSQVJZX1BBVEggYmVmb3JlIHRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZC4KKyAgICAgIGZ1bmNfc2hvd19ldmFsICcoIGNkICIkb3V0cHV0X29iamRpciIgJiYgJFJNICIkb3V0cHV0bmFtZSIgJiYgJExOX1MgIi4uLyRvdXRwdXRuYW1lIiAiJG91dHB1dG5hbWUiICknICdleGl0ICQ/JworICAgICAgOzsKKyAgICBlc2FjCisgICAgZXhpdCAkRVhJVF9TVUNDRVNTCit9CisKK3sgdGVzdCAiJG1vZGUiID0gbGluayB8fCB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IH0gJiYKKyAgICBmdW5jX21vZGVfbGluayAkezErIiRAIn0KKworCisjIGZ1bmNfbW9kZV91bmluc3RhbGwgYXJnLi4uCitmdW5jX21vZGVfdW5pbnN0YWxsICgpCit7CisgICAgJG9wdF9kZWJ1ZworICAgIFJNPSIkbm9ub3B0IgorICAgIGZpbGVzPQorICAgIHJtZm9yY2U9CisgICAgZXhpdF9zdGF0dXM9MAorCisgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCB2YXJpYWJsZXMgcmF0aGVyCisgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisgICAgbGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCisKKyAgICBmb3IgYXJnCisgICAgZG8KKyAgICAgIGNhc2UgJGFyZyBpbgorICAgICAgLWYpIFJNPSIkUk0gJGFyZyI7IHJtZm9yY2U9eWVzIDs7CisgICAgICAtKikgUk09IiRSTSAkYXJnIiA7OworICAgICAgKikgZmlsZXM9IiRmaWxlcyAkYXJnIiA7OworICAgICAgZXNhYworICAgIGRvbmUKKworICAgIHRlc3QgLXogIiRSTSIgJiYgXAorICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHByb2dyYW0iCisKKyAgICBybWRpcnM9CisKKyAgICBvcmlnb2JqZGlyPSIkb2JqZGlyIgorICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KKyAgICAgIGZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgorICAgICAgZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKyAgICAgIGlmIHRlc3QgIlgkZGlyIiA9IFguOyB0aGVuCisJb2JqZGlyPSIkb3JpZ29iamRpciIKKyAgICAgIGVsc2UKKwlvYmpkaXI9IiRkaXIvJG9yaWdvYmpkaXIiCisgICAgICBmaQorICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisgICAgICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisgICAgICB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgJiYgb2JqZGlyPSIkZGlyIgorCisgICAgICAjIFJlbWVtYmVyIG9iamRpciBmb3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVzCisgICAgICBpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhlbgorCWNhc2UgIiAkcm1kaXJzICIgaW4KKwkgICoiICRvYmpkaXIgIiopIDs7CisJICAqKSBybWRpcnM9IiRybWRpcnMgJG9iamRpciIgOzsKKwllc2FjCisgICAgICBmaQorCisgICAgICAjIERvbid0IGVycm9yIGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QgYW5kIHJtIC1mIHdhcyB1c2VkLgorICAgICAgaWYgeyB0ZXN0IC1MICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8CisJIHsgdGVzdCAtaCAiJGZpbGUiOyB9ID4vZGV2L251bGwgMj4mMSB8fAorCSB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KKwk6CisgICAgICBlbGlmIHRlc3QgLWQgIiRmaWxlIjsgdGhlbgorCWV4aXRfc3RhdHVzPTEKKwljb250aW51ZQorICAgICAgZWxpZiB0ZXN0ICIkcm1mb3JjZSIgPSB5ZXM7IHRoZW4KKwljb250aW51ZQorICAgICAgZmkKKworICAgICAgcm1maWxlcz0iJGZpbGUiCisKKyAgICAgIGNhc2UgJG5hbWUgaW4KKyAgICAgICoubGEpCisJIyBQb3NzaWJseSBhIGxpYnRvb2wgYXJjaGl2ZSwgc28gdmVyaWZ5IGl0LgorCWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCisJICBmdW5jX3NvdXJjZSAkZGlyLyRuYW1lCisKKwkgICMgRGVsZXRlIHRoZSBsaWJ0b29sIGxpYnJhcmllcyBhbmQgc3ltbGlua3MuCisJICBmb3IgbiBpbiAkbGlicmFyeV9uYW1lczsgZG8KKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbiIKKwkgIGRvbmUKKwkgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kb2xkX2xpYnJhcnkiCisKKwkgIGNhc2UgIiRtb2RlIiBpbgorCSAgY2xlYW4pCisJICAgIGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMgIiBpbgorCSAgICAjICIgICIgaW4gdGhlIGJlZ2lubmluZyBjYXRjaGVzIGVtcHR5ICRkbG5hbWUKKwkgICAgKiIgJGRsbmFtZSAiKikgOzsKKwkgICAgKikgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kZGxuYW1lIiA7OworCSAgICBlc2FjCisJICAgIHRlc3QgLW4gIiRsaWJkaXIiICYmIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9aSIKKwkgICAgOzsKKwkgIHVuaW5zdGFsbCkKKwkgICAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB0aGVuCisJICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3R1bmluc3RhbGwgY29tbWFuZHMuCisJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0dW5pbnN0YWxsX2NtZHMiICd0ZXN0ICIkcm1mb3JjZSIgPSB5ZXMgfHwgZXhpdF9zdGF0dXM9MScKKwkgICAgZmkKKworCSAgICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCisJICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIG9sZF9wb3N0dW5pbnN0YWxsIGNvbW1hbmRzLgorCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJworCSAgICBmaQorCSAgICAjIEZJWE1FOiBzaG91bGQgcmVpbnN0YWxsIHRoZSBiZXN0IHJlbWFpbmluZyBzaGFyZWQgbGlicmFyeS4KKwkgICAgOzsKKwkgIGVzYWMKKwlmaQorCTs7CisKKyAgICAgICoubG8pCisJIyBQb3NzaWJseSBhIGxpYnRvb2wgb2JqZWN0LCBzbyB2ZXJpZnkgaXQuCisJaWYgZnVuY19sYWxpYl9wICIkZmlsZSI7IHRoZW4KKworCSAgIyBSZWFkIHRoZSAubG8gZmlsZQorCSAgZnVuY19zb3VyY2UgJGRpci8kbmFtZQorCisJICAjIEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KKwkgIGlmIHRlc3QgLW4gIiRwaWNfb2JqZWN0IiAmJgorCSAgICAgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kcGljX29iamVjdCIKKwkgIGZpCisKKwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KKwkgIGlmIHRlc3QgLW4gIiRub25fcGljX29iamVjdCIgJiYKKwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRub25fcGljX29iamVjdCIKKwkgIGZpCisJZmkKKwk7OworCisgICAgICAqKQorCWlmIHRlc3QgIiRtb2RlIiA9IGNsZWFuIDsgdGhlbgorCSAgbm9leGVuYW1lPSRuYW1lCisJICBjYXNlICRmaWxlIGluCisJICAqLmV4ZSkKKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIKKwkgICAgZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG5hbWUiCisJICAgIG5vZXhlbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICAgICMgJGZpbGUgd2l0aCAuZXhlIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gcm1maWxlcywKKwkgICAgIyBhZGQgJGZpbGUgd2l0aG91dCAuZXhlCisJICAgIHJtZmlsZXM9IiRybWZpbGVzICRmaWxlIgorCSAgICA7OworCSAgZXNhYworCSAgIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCisJICBpZiBmdW5jX2x0d3JhcHBlcl9wICIkZmlsZSI7IHRoZW4KKwkgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KKwkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKKwkgICAgICByZWxpbmtfY29tbWFuZD0KKwkgICAgICBmdW5jX3NvdXJjZSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQiCisJICAgIGVsc2UKKwkgICAgICByZWxpbmtfY29tbWFuZD0KKwkgICAgICBmdW5jX3NvdXJjZSAkZGlyLyRub2V4ZW5hbWUKKwkgICAgZmkKKworCSAgICAjIG5vdGUgJG5hbWUgc3RpbGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3YXMgaW4gJGZpbGUgb3JpZ2luYWxseQorCSAgICAjIGFzIGRvZXMgdGhlIHZlcnNpb24gb2YgJGZpbGUgdGhhdCB3YXMgYWRkZWQgaW50byAkcm1maWxlcworCSAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuYW1lICRvYmpkaXIvJHtuYW1lfVMuJHtvYmpleHR9IgorCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllcyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0kbmFtZSIKKwkgICAgZmkKKwkgICAgaWYgdGVzdCAiWCRub2V4ZW5hbWUiICE9ICJYJG5hbWUiIDsgdGhlbgorCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJHtub2V4ZW5hbWV9LmMiCisJICAgIGZpCisJICBmaQorCWZpCisJOzsKKyAgICAgIGVzYWMKKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkUk0gJHJtZmlsZXMiICdleGl0X3N0YXR1cz0xJworICAgIGRvbmUKKyAgICBvYmpkaXI9IiRvcmlnb2JqZGlyIgorCisgICAgIyBUcnkgdG8gcmVtb3ZlIHRoZSAke29iamRpcn1zIGluIHRoZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCisgICAgZm9yIGRpciBpbiAkcm1kaXJzOyBkbworICAgICAgaWYgdGVzdCAtZCAiJGRpciI7IHRoZW4KKwlmdW5jX3Nob3dfZXZhbCAicm1kaXIgJGRpciA+L2Rldi9udWxsIDI+JjEiCisgICAgICBmaQorICAgIGRvbmUKKworICAgIGV4aXQgJGV4aXRfc3RhdHVzCit9CisKK3sgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsIHx8IHRlc3QgIiRtb2RlIiA9IGNsZWFuOyB9ICYmCisgICAgZnVuY19tb2RlX3VuaW5zdGFsbCAkezErIiRAIn0KKwordGVzdCAteiAiJG1vZGUiICYmIHsKKyAgaGVscD0iJGdlbmVyaWNfaGVscCIKKyAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERSIKK30KKwordGVzdCAteiAiJGV4ZWNfY21kIiAmJiBcCisgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRtb2RlJyIKKworaWYgdGVzdCAtbiAiJGV4ZWNfY21kIjsgdGhlbgorICBldmFsIGV4ZWMgIiRleGVjX2NtZCIKKyAgZXhpdCAkRVhJVF9GQUlMVVJFCitmaQorCitleGl0ICRleGl0X3N0YXR1cworCisKKyMgVGhlIFRBR3MgYmVsb3cgYXJlIGRlZmluZWQgc3VjaCB0aGF0IHdlIG5ldmVyIGdldCBpbnRvIGEgc2l0dWF0aW9uCisjIGluIHdoaWNoIHdlIGRpc2FibGUgYm90aCBraW5kcyBvZiBsaWJyYXJpZXMuICBHaXZlbiBjb25mbGljdGluZworIyBjaG9pY2VzLCB3ZSBnbyBmb3IgYSBzdGF0aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKKyMgc2luY2Ugd2UgY2FuJ3QgdGVsbCB3aGV0aGVyIHNoYXJlZCBsaWJyYXJpZXMgd2VyZSBkaXNhYmxlZCBiZWNhdXNlCisjIHRoZSB1c2VyIGFza2VkIGZvciB0aGF0IG9yIGJlY2F1c2UgdGhlIHBsYXRmb3JtIGRvZXNuJ3Qgc3VwcG9ydAorIyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IG9uIEFJWCwgYmVjYXVzZSB3ZSBkb24ndAorIyBzdXBwb3J0IGhhdmluZyBib3RoIHN0YXRpYyBhbmQgc2hhcmVkIGxpYnJhcmllcyBlbmFibGVkIGF0IHRoZSBzYW1lCisjIHRpbWUgb24gdGhhdCBwbGF0Zm9ybSwgc28gd2UgZGVmYXVsdCB0byBhIHNoYXJlZC1vbmx5IGNvbmZpZ3VyYXRpb24uCisjIElmIGEgZGlzYWJsZS1zaGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBhIHN0YXRpYy1vbmx5CisjIGNvbmZpZ3VyYXRpb24uICBCdXQgd2UnbGwgbmV2ZXIgZ28gZnJvbSBzdGF0aWMtb25seSB0byBzaGFyZWQtb25seS4KKworIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAorYnVpbGRfbGlidG9vbF9saWJzPW5vCitidWlsZF9vbGRfbGlicz15ZXMKKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCisKKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKK2J1aWxkX29sZF9saWJzPWBjYXNlICRidWlsZF9saWJ0b29sX2xpYnMgaW4geWVzKSBlY2hvIG5vOzsgKikgZWNobyB5ZXM7OyBlc2FjYAorIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKKworIyBMb2NhbCBWYXJpYWJsZXM6CisjIG1vZGU6c2hlbGwtc2NyaXB0CisjIHNoLWluZGVudGF0aW9uOjIKKyMgRW5kOgorIyB2aTpzdz0yCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbTQvbGlidG9vbC5tNCBiL2xpYnhtbDItMi43LjcvbTQvbGlidG9vbC5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzFjZGUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9tNC9saWJ0b29sLm00CkBAIC0wLDAgKzEsNzM2MCBAQAorIyBsaWJ0b29sLm00IC0gQ29uZmlndXJlIGxpYnRvb2wgZm9yIHRoZSBob3N0IHN5c3RlbS4gLSotQXV0b2NvbmYtKi0KKyMKKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCisjICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5OTYKKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCittNF9kZWZpbmUoW19MVF9DT1BZSU5HXSwgW2RubAorIyAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwKKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgorIworIyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sLgorIworIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyMgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorIyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0aGF0CisjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQorIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKyMKKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5CisjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgorIyBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorXSkKKworIyBzZXJpYWwgNTYgTFRfSU5JVAorCisKKyMgTFRfUFJFUkVRKFZFUlNJT04pCisjIC0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb21wbGFpbiBhbmQgZXhpdCBpZiB0aGlzIGxpYnRvb2wgdmVyc2lvbiBpcyBsZXNzIHRoYXQgVkVSU0lPTi4KK200X2RlZnVuKFtMVF9QUkVSRVFdLAorW200X2lmKG00X3ZlcnNpb25fY29tcGFyZShtNF9kZWZuKFtMVF9QQUNLQUdFX1ZFUlNJT05dKSwgWyQxXSksIC0xLAorICAgICAgIFttNF9kZWZhdWx0KFskM10sCisJCSAgIFttNF9mYXRhbChbTGlidG9vbCB2ZXJzaW9uICQxIG9yIGhpZ2hlciBpcyByZXF1aXJlZF0sCisJCSAgICAgICAgICAgICA2MyldKV0sCisgICAgICAgWyQyXSldKQorCisKKyMgX0xUX0NIRUNLX0JVSUxERElSCisjIC0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb21wbGFpbiBpZiB0aGUgYWJzb2x1dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzCittNF9kZWZ1bihbX0xUX0NIRUNLX0JVSUxERElSXSwKK1tjYXNlIGBwd2RgIGluCisgICpcICogfCAqXAkqKQorICAgIEFDX01TR19XQVJOKFtMaWJ0b29sIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4gYHB3ZGBdKSA7OworZXNhYworXSkKKworCisjIExUX0lOSVQoW09QVElPTlNdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtMVF9JTklUXSwKK1tBQ19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5DTFVERVNfREVGQVVMVAorQUNfQkVGT1JFKFskMF0sIFtMVF9MQU5HXSlkbmwKK0FDX0JFRk9SRShbJDBdLCBbTFRfT1VUUFVUXSlkbmwKK0FDX0JFRk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKK200X3JlcXVpcmUoW19MVF9DSEVDS19CVUlMRERJUl0pZG5sCisKK2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNoIHVuZXhwYW5kZWQgTFRfIG1hY3JvcyBieSBkZWZhdWx0OgorbTRfcGF0dGVybl9mb3JiaWQoW15fP0xUX1tBLVpfXSskXSlkbmwKK200X3BhdHRlcm5fYWxsb3coW14oX0xUX0VPRnxMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XfExUX01VTFRJX01PRFVMRSkkXSlkbmwKK2RubCBhY2xvY2FsIGRvZXNuJ3QgcHVsbCBsdG9wdGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAorZG5sIHVubGVzcyB3ZSByZXF1aXJlIGFuIEFDX0RFRlVOZWQgbWFjcm86CitBQ19SRVFVSVJFKFtMVE9QVElPTlNfVkVSU0lPTl0pZG5sCitBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRubAorQUNfUkVRVUlSRShbTFRWRVJTSU9OX1ZFUlNJT05dKWRubAorQUNfUkVRVUlSRShbTFRPQlNPTEVURV9WRVJTSU9OXSlkbmwKK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCisKK2RubCBQYXJzZSBPUFRJT05TCitfTFRfU0VUX09QVElPTlMoWyQwXSwgWyQxXSkKKworIyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9vbCB3aGVuIG5lZWRlZAorTElCVE9PTF9ERVBTPSIkbHRtYWluIgorCisjIEFsd2F5cyB1c2Ugb3VyIG93biBsaWJ0b29sLgorTElCVE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCitBQ19TVUJTVChMSUJUT09MKWRubAorCitfTFRfU0VUVVAKKworIyBPbmx5IGV4cGFuZCBvbmNlOgorbTRfZGVmaW5lKFtMVF9JTklUXSkKK10pIyBMVF9JTklUCisKKyMgT2xkIG5hbWVzOgorQVVfQUxJQVMoW0FDX1BST0dfTElCVE9PTF0sIFtMVF9JTklUXSkKK0FVX0FMSUFTKFtBTV9QUk9HX0xJQlRPT0xdLCBbTFRfSU5JVF0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX1BST0dfTElCVE9PTF0sIFtdKQorZG5sIEFDX0RFRlVOKFtBTV9QUk9HX0xJQlRPT0xdLCBbXSkKKworCisjIF9MVF9DQ19CQVNFTkFNRShDQykKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDYWxjdWxhdGUgY2NfYmFzZW5hbWUuICBTa2lwIGtub3duIGNvbXBpbGVyIHdyYXBwZXJzIGFuZCBjcm9zcy1wcmVmaXguCittNF9kZWZ1bihbX0xUX0NDX0JBU0VOQU1FXSwKK1tmb3IgY2NfdGVtcCBpbiAkMSIiOyBkbworICBjYXNlICRjY190ZW1wIGluCisgICAgY29tcGlsZSB8ICpbW1xcL11dY29tcGlsZSB8IGNjYWNoZSB8ICpbW1xcL11dY2NhY2hlICkgOzsKKyAgICBkaXN0Y2MgfCAqW1tcXC9dXWRpc3RjYyB8IHB1cmlmeSB8ICpbW1xcL11dcHVyaWZ5ICkgOzsKKyAgICBcLSopIDs7CisgICAgKikgYnJlYWs7OworICBlc2FjCitkb25lCitjY19iYXNlbmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKK10pCisKKworIyBfTFRfRklMRVVUSUxTX0RFRkFVTFRTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSXQgaXMgb2theSB0byB1c2UgdGhlc2UgZmlsZSBjb21tYW5kcyBhbmQgYXNzdW1lIHRoZXkgaGF2ZSBiZWVuIHNldAorIyBzZW5zaWJseSBhZnRlciBgbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pJy4KK200X2RlZnVuKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSwKK1s6ICR7Q1A9ImNwIC1mIn0KKzogJHtNVj0ibXYgLWYifQorOiAke1JNPSJybSAtZiJ9CitdKSMgX0xUX0ZJTEVVVElMU19ERUZBVUxUUworCisKKyMgX0xUX1NFVFVQCisjIC0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9TRVRVUF0sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKK19MVF9ERUNMKFtdLCBbaG9zdF9hbGlhc10sIFswXSwgW1RoZSBob3N0IHN5c3RlbV0pZG5sCitfTFRfREVDTChbXSwgW2hvc3RdLCBbMF0pZG5sCitfTFRfREVDTChbXSwgW2hvc3Rfb3NdLCBbMF0pZG5sCitkbmwKK19MVF9ERUNMKFtdLCBbYnVpbGRfYWxpYXNdLCBbMF0sIFtUaGUgYnVpbGQgc3lzdGVtXSlkbmwKK19MVF9ERUNMKFtdLCBbYnVpbGRdLCBbMF0pZG5sCitfTFRfREVDTChbXSwgW2J1aWxkX29zXSwgWzBdKWRubAorZG5sCitBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKK0FDX1JFUVVJUkUoW0xUX1BBVEhfTERdKWRubAorQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCitkbmwKK0FDX1JFUVVJUkUoW0FDX1BST0dfTE5fU10pZG5sCit0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCitfTFRfREVDTChbXSwgW0xOX1NdLCBbMV0sIFtXaGV0aGVyIHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzXSlkbmwKK2RubAorQUNfUkVRVUlSRShbTFRfQ01EX01BWF9MRU5dKWRubAorX0xUX0RFQ0woW29iamV4dF0sIFthY19vYmpleHRdLCBbMF0sIFtPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIildKWRubAorX0xUX0RFQ0woW10sIFtleGVleHRdLCBbMF0sIFtFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIildKWRubAorZG5sCittNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK200X3JlcXVpcmUoW19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10pZG5sCittNF9yZXF1aXJlKFtfTFRfQ01EX1JFTE9BRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSlkbmwKK200X3JlcXVpcmUoW19MVF9DTURfT0xEX0FSQ0hJVkVdKWRubAorbTRfcmVxdWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCisKK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFsKKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElOSVQuCitpZiB0ZXN0IC1uICJcJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCitmaQorXSkKK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorZmkKKworX0xUX0NIRUNLX09CSkRJUgorCittNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKK19MVF9QUk9HX0VDSE9fQkFDS1NMQVNICisKK2Nhc2UgJGhvc3Rfb3MgaW4KK2FpeDMqKQorICAjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KKyAgaWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisgICAgQ09MTEVDVF9OQU1FUz0KKyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUworICBmaQorICA7OworZXNhYworCisjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorc2VkX3F1b3RlX3N1YnN0PSdzL1woW1siYCRcXF1dXCkvXFxcMS9nJworCisjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtbImBcXF1dXCkvXFxcMS9nJworCisjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQorIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgorZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KK2RlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdD0ncy8nXCcnLydcJ1xcXFxcXFwnXCcnL2cnCisKKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBleHByZXNzaW9ucworbm9fZ2xvYl9zdWJzdD0ncy9cKi9cXFwqL2cnCisKKyMgR2xvYmFsIHZhcmlhYmxlczoKK29maWxlPWxpYnRvb2wKK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCisKKyMgQWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAuYScgYXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtpbmcgKGV4Y2VwdCBNU1ZDLAorIyB3aGljaCBuZWVkcyAnLmxpYicpLgorbGliZXh0PWEKKword2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKKworb2xkX0NDPSIkQ0MiCitvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgorCisjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcwordGVzdCAteiAiJENDIiAmJiBDQz1jYwordGVzdCAteiAiJExUQ0MiICYmIExUQ0M9JENDCit0ZXN0IC16ICIkTFRDRkxBR1MiICYmIExUQ0ZMQUdTPSRDRkxBR1MKK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKK3Rlc3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1vCisKK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKworIyBPbmx5IHBlcmZvcm0gdGhlIGNoZWNrIGZvciBmaWxlLCBpZiB0aGUgY2hlY2sgbWV0aG9kIHJlcXVpcmVzIGl0Cit0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQorY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KK2ZpbGVfbWFnaWMqKQorICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCisgICAgX0xUX1BBVEhfTUFHSUMKKyAgZmkKKyAgOzsKK2VzYWMKKworIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKK0xUX1NVUFBPUlRFRF9UQUcoW0NDXSkKK19MVF9MQU5HX0NfQ09ORklHCitfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworX0xUX0NPTkZJR19DT01NQU5EUworXSkjIF9MVF9TRVRVUAorCisKKyMgX0xUX1BST0dfTFRNQUlOCisjIC0tLS0tLS0tLS0tLS0tLQorIyBOb3RlIHRoYXQgdGhpcyBjb2RlIGlzIGNhbGxlZCBib3RoIGZyb20gYGNvbmZpZ3VyZScsIGFuZCBgY29uZmlnLnN0YXR1cycKKyMgbm93IHRoYXQgd2UgdXNlIEFDX0NPTkZJR19DT01NQU5EUyB0byBnZW5lcmF0ZSBsaWJ0b29sLiAgTm90YWJseSwKKyMgYGNvbmZpZy5zdGF0dXMnIGhhcyBubyB2YWx1ZSBmb3IgYWNfYXV4X2RpciB1bmxlc3Mgd2UgYXJlIHVzaW5nIEF1dG9tYWtlLAorIyBzbyB3ZSBwYXNzIGEgY29weSBhbG9uZyB0byBtYWtlIHN1cmUgaXQgaGFzIGEgc2Vuc2libGUgdmFsdWUgYW55d2F5LgorbTRfZGVmdW4oW19MVF9QUk9HX0xUTUFJTl0sCitbbTRfaWZkZWYoW0FDX1JFUVVJUkVfQVVYX0ZJTEVdLCBbQUNfUkVRVUlSRV9BVVhfRklMRShbbHRtYWluLnNoXSldKWRubAorX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW2FjX2F1eF9kaXI9JyRhY19hdXhfZGlyJ10pCitsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIKK10pIyBfTFRfUFJPR19MVE1BSU4KKworCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBBY2N1bXVsYXRlIGNvZGUgZm9yIGNyZWF0aW5nIGxpYnRvb2wuICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisKKyMgU28gdGhhdCB3ZSBjYW4gcmVjcmVhdGUgYSBmdWxsIGxpYnRvb2wgc2NyaXB0IGluY2x1ZGluZyBhZGRpdGlvbmFsCisjIHRhZ3MsIHdlIGFjY3VtdWxhdGUgdGhlIGNodW5rcyBvZiBjb2RlIHRvIHNlbmQgdG8gQUNfQ09ORklHX0NPTU1BTkRTCisjIGluIG1hY3JvcyBhbmQgdGhlbiBtYWtlIGEgc2luZ2xlIGNhbGwgYXQgdGhlIGVuZCB1c2luZyB0aGUgYGxpYnRvb2wnCisjIGxhYmVsLgorCisKKyMgX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW0lOSVQtQ09NTUFORFNdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFJlZ2lzdGVyIElOSVQtQ09NTUFORFMgdG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KK200X2RlZmluZShbX0xUX0NPTkZJR19MSUJUT09MX0lOSVRdLAorW200X2lmdmFsKFskMV0sCisgICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0lOSVRdLAorICAgICAgICAgICAgICAgICAgICAgWyQxCitdKV0pXSkKKworIyBJbml0aWFsaXplLgorbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfSU5JVF0pCisKKworIyBfTFRfQ09ORklHX0xJQlRPT0woW0NPTU1BTkRTXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFJlZ2lzdGVyIENPTU1BTkRTIHRvIGJlIHBhc3NlZCB0byBBQ19DT05GSUdfQ09NTUFORFMgbGF0ZXIuCittNF9kZWZpbmUoW19MVF9DT05GSUdfTElCVE9PTF0sCitbbTRfaWZ2YWwoWyQxXSwKKyAgICAgICAgICBbbTRfYXBwZW5kKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdLAorICAgICAgICAgICAgICAgICAgICAgWyQxCitdKV0pXSkKKworIyBJbml0aWFsaXplLgorbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdKQorCisKKyMgX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFtDT01NQU5EU10sIFtJTklUX0NPTU1BTkRTXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfQ09ORklHX1NBVkVfQ09NTUFORFNdLAorW19MVF9DT05GSUdfTElCVE9PTChbJDFdKQorX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoWyQyXSkKK10pCisKKworIyBfTFRfRk9STUFUX0NPTU1FTlQoW0NPTU1FTlRdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBZGQgbGVhZGluZyBjb21tZW50IG1hcmtzIHRvIHRoZSBzdGFydCBvZiBlYWNoIGxpbmUsIGFuZCBhIHRyYWlsaW5nCisjIGZ1bGwtc3RvcCB0byB0aGUgd2hvbGUgY29tbWVudCBpZiBvbmUgaXMgbm90IHByZXNlbnQgYWxyZWFkeS4KK200X2RlZmluZShbX0xUX0ZPUk1BVF9DT01NRU5UXSwKK1ttNF9pZnZhbChbJDFdLCBbCittNF9icGF0c3Vic3QoW200X2JwYXRzdWJzdChbJDFdLCBbXiAqXSwgWyMgXSldLAorICAgICAgICAgICAgICBbWydgJFxdXSwgW1xcXCZdKV1tNF9ibWF0Y2goWyQxXSwgW1shPy5dJF0sIFtdLCBbLl0pCispXSkKKworCisKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgRklYTUU6IEVsaW1pbmF0ZSBWQVJOQU1FICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKworCisjIF9MVF9ERUNMKFtDT05GSUdOQU1FXSwgVkFSTkFNRSwgVkFMVUUsIFtERVNDUklQVElPTl0sIFtJUy1UQUdHRUQ/XSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDT05GSUdOQU1FIGlzIHRoZSBuYW1lIGdpdmVuIHRvIHRoZSB2YWx1ZSBpbiB0aGUgbGlidG9vbCBzY3JpcHQuCisjIFZBUk5BTUUgaXMgdGhlIChiYXNlKSBuYW1lIHVzZWQgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQuCisjIFZBTFVFIG1heSBiZSAwLCAxIG9yIDIgZm9yIGEgY29tcHV0ZWQgcXVvdGUgZXNjYXBlZCB2YWx1ZSBiYXNlZCBvbgorIyBWQVJOQU1FLiAgQW55IG90aGVyIHZhbHVlIHdpbGwgYmUgdXNlZCBkaXJlY3RseS4KK200X2RlZmluZShbX0xUX0RFQ0xdLAorW2x0X2lmX2FwcGVuZF91bmlxKFtsdF9kZWNsX3Zhcm5hbWVzXSwgWyQyXSwgWywgXSwKKyAgICBbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbbGlidG9vbF9uYW1lXSwKKwlbbTRfaWZ2YWwoWyQxXSwgWyQxXSwgWyQyXSldKQorICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwgW3ZhbHVlXSwgWyQzXSkKKyAgICBtNF9pZnZhbChbJDRdLAorCVtsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sIFtkZXNjcmlwdGlvbl0sIFskNF0pXSkKKyAgICBsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sCisJW3RhZ2dlZD9dLCBbbTRfaWZ2YWwoWyQ1XSwgW3llc10sIFtub10pXSldKQorXSkKKworCisjIF9MVF9UQUdERUNMKFtDT05GSUdOQU1FXSwgVkFSTkFNRSwgVkFMVUUsIFtERVNDUklQVElPTl0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19MVF9UQUdERUNMXSwgW19MVF9ERUNMKFskMV0sIFskMl0sIFskM10sIFskNF0sIFt5ZXNdKV0pCisKKworIyBsdF9kZWNsX3RhZ192YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW2x0X2RlY2xfdGFnX3Zhcm5hbWVzXSwKK1tfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9dLCBbeWVzXSwgJEApXSkKKworCisjIF9sdF9kZWNsX2ZpbHRlcihTVUJLRVksIFZBTFVFLCBbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi5dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbX2x0X2RlY2xfZmlsdGVyXSwKK1ttNF9jYXNlKFskI10sCisgIFswXSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjXSldLAorICBbMV0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkIzogJDFdKV0sCisgIFsyXSwgW2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbXSwgbHRfZGVjbF92YXJuYW1lcyldLAorICBbM10sIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgWyQxXSwgWyQyXSwgWyQzXSwgbHRfZGVjbF92YXJuYW1lcyldLAorICBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sICRAKV0pW11kbmwKK10pCisKKworIyBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzXSwKK1tfbHRfZGVjbF9maWx0ZXIoW3ZhbHVlXSwgWzFdLCAkQCldKQorCisKKyMgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtsdF9kZWNsX2RxdW90ZV92YXJuYW1lc10sCitbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsyXSwgJEApXSkKKworCisjIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGVjbF92YXJuYW1lc190YWdnZWRdLAorW200X2Fzc2VydChbJCMgPD0gMl0pZG5sCitfJDAobTRfcXVvdGUobTRfZGVmYXVsdChbJDFdLCBbWywgXV0pKSwKKyAgICBtNF9pZnZhbChbJDJdLCBbWyQyXV0sIFttNF9kcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMpXSksCisgICAgbTRfc3BsaXQobTRfbm9ybWFsaXplKG00X3F1b3RlKF9MVF9UQUdTKSksIFsgXSkpXSkKK200X2RlZmluZShbX2x0X2RlY2xfdmFybmFtZXNfdGFnZ2VkXSwKK1ttNF9pZnZhbChbJDNdLCBbbHRfY29tYmluZShbJDFdLCBbJDJdLCBbX10sICQzKV0pXSkKKworCisjIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGVjbF9hbGxfdmFybmFtZXNdLAorW18kMChtNF9xdW90ZShtNF9kZWZhdWx0KFskMV0sIFtbLCBdXSkpLAorICAgICBtNF9pZihbJDJdLCBbXSwKKwkgICBtNF9xdW90ZShsdF9kZWNsX3Zhcm5hbWVzKSwKKwltNF9xdW90ZShtNF9zaGlmdCgkQCkpKSlbXWRubAorXSkKK200X2RlZmluZShbX2x0X2RlY2xfYWxsX3Zhcm5hbWVzXSwKK1tsdF9qb2luKCRALCBsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZChbJDFdLAorCQkJbHRfZGVjbF90YWdfdmFybmFtZXMoW1ssIF1dLCBtNF9zaGlmdCgkQCkpKSlkbmwKK10pCisKKworIyBfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJFKFtWQVJOQU1FXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFF1b3RlIGEgdmFyaWFibGUgdmFsdWUsIGFuZCBmb3J3YXJkIGl0IHRvIGBjb25maWcuc3RhdHVzJyBzbyB0aGF0IGl0cworIyBkZWNsYXJhdGlvbiB0aGVyZSB3aWxsIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgaW4gYGNvbmZpZ3VyZScuICBWQVJOQU1FCisjIG11c3QgaGF2ZSBhIHNpbmdsZSBxdW90ZSBkZWxpbWl0ZWQgdmFsdWUgZm9yIHRoaXMgdG8gd29yay4KK200X2RlZmluZShbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRV0sCitbJDE9J2AkRUNITyAiWCRdWyQxIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnXSkKKworCisjIF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgV2UgZGVsaW1pdCBsaWJ0b29sIGNvbmZpZyB2YXJpYWJsZXMgd2l0aCBzaW5nbGUgcXVvdGVzLCBzbyB3aGVuCisjIHdlIHdyaXRlIHRoZW0gdG8gY29uZmlnLnN0YXR1cywgd2UgaGF2ZSB0byBiZSBzdXJlIHRvIHF1b3RlIGFsbAorIyBlbWJlZGRlZCBzaW5nbGUgcXVvdGVzIHByb3Blcmx5LiAgSW4gY29uZmlndXJlLCB0aGlzIG1hY3JvIGV4cGFuZHMKKyMgZWFjaCB2YXJpYWJsZSBkZWNsYXJlZCB3aXRoIF9MVF9ERUNMIChhbmQgX0xUX1RBR0RFQ0wpIGludG86CisjCisjICAgIDx2YXI+PSdgJEVDSE8gIlgkPHZhcj4iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK200X2RlZnVuKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlNdLAorW200X2ZvcmVhY2goW19sdF92YXJdLCBtNF9xdW90ZShsdF9kZWNsX2FsbF92YXJuYW1lcyksCisgICAgW200X24oW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKKworCisjIF9MVF9MSUJUT09MX1RBR1MKKyMgLS0tLS0tLS0tLS0tLS0tLQorIyBPdXRwdXQgY29tbWVudCBhbmQgbGlzdCBvZiB0YWdzIHN1cHBvcnRlZCBieSB0aGUgc2NyaXB0CittNF9kZWZ1bihbX0xUX0xJQlRPT0xfVEFHU10sCitbX0xUX0ZPUk1BVF9DT01NRU5UKFtUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHRdKWRubAorYXZhaWxhYmxlX3RhZ3M9Il9MVF9UQUdTImRubAorXSkKKworCisjIF9MVF9MSUJUT09MX0RFQ0xBUkUoVkFSTkFNRSwgW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEV4dHJhY3QgdGhlIGRpY3Rpb25hcnkgdmFsdWVzIGZvciBWQVJOQU1FIChvcHRpb25hbGx5IHdpdGggVEFHKSBhbmQKKyMgZXhwYW5kIHRvIGEgY29tbWVudGVkIHNoZWxsIHZhcmlhYmxlIHNldHRpbmc6CisjCisjICAgICMgU29tZSBjb21tZW50IGFib3V0IHdoYXQgVkFSIGlzIGZvci4KKyMgICAgdmlzaWJsZV9uYW1lPSRsdF9pbnRlcm5hbF9uYW1lCittNF9kZWZpbmUoW19MVF9MSUJUT09MX0RFQ0xBUkVdLAorW19MVF9GT1JNQVRfQ09NTUVOVChtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLAorCQkJCQkgICBbZGVzY3JpcHRpb25dKSkpW11kbmwKK200X3B1c2hkZWYoW19saWJ0b29sX25hbWVdLAorICAgIG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFtsaWJ0b29sX25hbWVdKSkpW11kbmwKK200X2Nhc2UobTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwgW3ZhbHVlXSkpLAorICAgIFswXSwgW19saWJ0b29sX25hbWU9WyRdJDFdLAorICAgIFsxXSwgW19saWJ0b29sX25hbWU9JGx0X1tdJDFdLAorICAgIFsyXSwgW19saWJ0b29sX25hbWU9JGx0X1tdJDFdLAorICAgIFtfbGlidG9vbF9uYW1lPWx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pXSlbXWRubAorbTRfaWZ2YWwoWyQyXSwgW18kMl0pW11tNF9wb3BkZWYoW19saWJ0b29sX25hbWVdKVtdZG5sCitdKQorCisKKyMgX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJvZHVjZSBjb21tZW50ZWQgZGVjbGFyYXRpb25zIG9mIG5vbi10YWdnZWQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzCisjIHN1aXRhYmxlIGZvciBpbnNlcnRpb24gaW4gdGhlIExJQlRPT0wgQ09ORklHIHNlY3Rpb24gb2YgdGhlIGBsaWJ0b29sJworIyBzY3JpcHQuICBUYWdnZWQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzIChldmVuIGZvciB0aGUgTElCVE9PTCBDT05GSUcKKyMgc2VjdGlvbikgYXJlIHByb2R1Y2VkIGJ5IF9MVF9MSUJUT09MX1RBR19WQVJTLgorbTRfZGVmdW4oW19MVF9MSUJUT09MX0NPTkZJR19WQVJTXSwKK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwKKyAgICBtNF9xdW90ZShfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9dLCBbbm9dLCBbXSwgbHRfZGVjbF92YXJuYW1lcykpLAorICAgIFttNF9uKFtfTFRfTElCVE9PTF9ERUNMQVJFKF9sdF92YXIpXSldKV0pCisKKworIyBfTFRfTElCVE9PTF9UQUdfVkFSUyhUQUcpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbX0xUX0xJQlRPT0xfVEFHX1ZBUlNdLAorW200X2ZvcmVhY2goW19sdF92YXJdLCBtNF9xdW90ZShsdF9kZWNsX3RhZ192YXJuYW1lcyksCisgICAgW200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3ZhciwgWyQxXSldKV0pXSkKKworCisjIF9MVF9UQUdWQVIoVkFSTkFNRSwgW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbX0xUX1RBR1ZBUl0sIFttNF9pZnZhbChbJDJdLCBbJDFfJDJdLCBbJDFdKV0pCisKKworIyBfTFRfQ09ORklHX0NPTU1BTkRTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU2VuZCBhY2N1bXVsYXRlZCBvdXRwdXQgdG8gJENPTkZJR19TVEFUVVMuICBUaGFua3MgdG8gdGhlIGxpc3RzIG9mCisjIHZhcmlhYmxlcyBmb3Igc2luZ2xlIGFuZCBkb3VibGUgcXVvdGUgZXNjYXBpbmcgd2Ugc2F2ZWQgZnJvbSBjYWxscworIyB0byBfTFRfREVDTCwgd2UgY2FuIHB1dCBxdW90ZSBlc2NhcGVkIHZhcmlhYmxlcyBkZWNsYXJhdGlvbnMKKyMgaW50byBgY29uZmlnLnN0YXR1cycsIGFuZCB0aGVuIHRoZSBzaGVsbCBjb2RlIHRvIHF1b3RlIGVzY2FwZSB0aGVtIGluCisjIGZvciBsb29wcyBpbiBgY29uZmlnLnN0YXR1cycuICBGaW5hbGx5LCBhbnkgYWRkaXRpb25hbCBjb2RlIGFjY3VtdWxhdGVkCisjIGZyb20gY2FsbHMgdG8gX0xUX0NPTkZJR19MSUJUT09MX0lOSVQgaXMgZXhwYW5kZWQuCittNF9kZWZ1bihbX0xUX0NPTkZJR19DT01NQU5EU10sCitbQUNfUFJPVklERV9JRkVMU0UoW0xUX09VVFBVVF0sCisJZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBoYXMgYmVlbiBwbGFjZWQgaW4gJENPTkZJR19MVCwKKwlkbmwgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdCBhbGwgb3ZlciBhZ2FpbiBpbnRvIGNvbmZpZy5zdGF0dXMsCisJZG5sIHRoZW4gd2Ugd2lsbCBoYXZlIGNvbmZpZy5zdGF0dXMgcnVuICRDT05GSUdfTFQgbGF0ZXIsIHNvIGl0CisJZG5sIG5lZWRzIHRvIGtub3cgd2hhdCBuYW1lIGlzIHN0b3JlZCB0aGVyZToKKyAgICAgICAgW0FDX0NPTkZJR19DT01NQU5EUyhbbGlidG9vbF0sCisgICAgICAgICAgICBbJFNIRUxMICRDT05GSUdfTFQgfHwgQVNfRVhJVCgxKV0sIFtDT05GSUdfTFQ9JyRDT05GSUdfTFQnXSldLAorICAgIGRubCBJZiB0aGUgbGlidG9vbCBnZW5lcmF0aW9uIGNvZGUgaXMgZGVzdGluZWQgZm9yIGNvbmZpZy5zdGF0dXMsCisgICAgZG5sIGV4cGFuZCB0aGUgYWNjdW11bGF0ZWQgY29tbWFuZHMgYW5kIGluaXQgY29kZSBub3c6CisgICAgW0FDX0NPTkZJR19DT01NQU5EUyhbbGlidG9vbF0sCisgICAgICAgIFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdLCBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVRdKV0pCitdKSNfTFRfQ09ORklHX0NPTU1BTkRTCisKKworIyBJbml0aWFsaXplLgorbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNfSU5JVF0sCitbCisKKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0CisjIGlmIENEUEFUSCBpcyBzZXQuCisodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICisKK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKK2RvdWJsZV9xdW90ZV9zdWJzdD0nJGRvdWJsZV9xdW90ZV9zdWJzdCcKK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSckZGVsYXlfdmFyaWFibGVfc3Vic3QnCitfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKK0xUQ0M9JyRMVENDJworTFRDRkxBR1M9JyRMVENGTEFHUycKK2NvbXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKKworIyBRdW90ZSBldmFsZWQgc3RyaW5ncy4KK2ZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAorXV0sIGx0X2RlY2xfcXVvdGVfdmFybmFtZXMpOyBkbworICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgorICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKKyAgICAgIDs7CisgICAgKikKKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwiIgorICAgICAgOzsKKyAgICBlc2FjCitkb25lCisKKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KK2ZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAorXV0sIGx0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKTsgZG8KKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKyAgICAqW1tcXFxcXFxcYFxcIlxcXCRdXSopCisgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisgICAgICA7OworICAgICopCisgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKyAgICAgIDs7CisgICAgZXNhYworZG9uZQorCisjIEZpeC11cCBmYWxsYmFjayBlY2hvIGlmIGl0IHdhcyBtYW5nbGVkIGJ5IHRoZSBhYm92ZSBxdW90aW5nIHJ1bGVzLgorY2FzZSBcJGx0X0VDSE8gaW4KKyonXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8iJylkbmwgIgorICBsdF9FQ0hPPVxgXCRFQ0hPICJYXCRsdF9FQ0hPIiB8IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFxbJF0wIC0tZmFsbGJhY2stZWNobyJcWyRdL1xbJF0wIC0tZmFsbGJhY2stZWNobyIvJ1xgCisgIDs7Citlc2FjCisKK19MVF9PVVRQVVRfTElCVE9PTF9JTklUCitdKQorCisKKyMgTFRfT1VUUFVUCisjIC0tLS0tLS0tLQorIyBUaGlzIG1hY3JvIGFsbG93cyBlYXJseSBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdCAoYmVmb3JlCisjIEFDX09VVFBVVCBpcyBjYWxsZWQpLCBpbmNhc2UgaXQgaXMgdXNlZCBpbiBjb25maWd1cmUgZm9yIGNvbXBpbGF0aW9uCisjIHRlc3RzLgorQUNfREVGVU4oW0xUX09VVFBVVF0sCitbOiAke0NPTkZJR19MVD0uL2NvbmZpZy5sdH0KK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRDT05GSUdfTFRdKQorY2F0ID4iJENPTkZJR19MVCIgPDxfTFRFT0YKKyMhICRTSEVMTAorIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgorIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIGEgbGlidG9vbCBzdHViIHdpdGggdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KKworbHRfY2xfc2lsZW50PWZhbHNlCitTSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQorX0xURU9GCisKK2NhdCA+PiIkQ09ORklHX0xUIiA8PFxfTFRFT0YKK0FTX1NIRUxMX1NBTklUSVpFCitfQVNfUFJFUEFSRQorCitleGVjIEFTX01FU1NBR0VfRkQ+JjEKK2V4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+PmNvbmZpZy5sb2cKK3sKKyAgZWNobworICBBU19CT1goW1J1bm5pbmcgJGFzX21lLl0pCit9ID4mQVNfTUVTU0FHRV9MT0dfRkQKKworbHRfY2xfaGVscD0iXAorXGAkYXNfbWUnIGNyZWF0ZXMgYSBsb2NhbCBsaWJ0b29sIHN0dWIgZnJvbSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLAorZm9yIHVzZSBpbiBmdXJ0aGVyIGNvbmZpZ3VyZSB0aW1lIHRlc3RzIGJlZm9yZSB0aGUgcmVhbCBsaWJ0b29sIGlzCitnZW5lcmF0ZWQuCisKK1VzYWdlOiAkWzBdIFtbT1BUSU9OU11dCisKKyAgLWgsIC0taGVscCAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisgIC1WLCAtLXZlcnNpb24gICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisgIC1xLCAtLXF1aWV0ICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMKKyAgLWQsIC0tZGVidWcgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKKworUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+LiIKKworbHRfY2xfdmVyc2lvbj0iXAorbTRfaWZzZXQoW0FDX1BBQ0tBR0VfTkFNRV0sIFtBQ19QQUNLQUdFX05BTUUgXSljb25maWcubHRbXWRubAorbTRfaWZzZXQoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIFsgQUNfUEFDS0FHRV9WRVJTSU9OXSkKK2NvbmZpZ3VyZWQgYnkgJFswXSwgZ2VuZXJhdGVkIGJ5IG00X1BBQ0tBR0VfU1RSSU5HLgorCitDb3B5cmlnaHQgKEMpIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitUaGlzIGNvbmZpZy5sdCBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgorCit3aGlsZSB0ZXN0ICRbI10gIT0gMAorZG8KKyAgY2FzZSAkWzFdIGluCisgICAgLS12ZXJzaW9uIHwgLS12KiB8IC1WICkKKyAgICAgIGVjaG8gIiRsdF9jbF92ZXJzaW9uIjsgZXhpdCAwIDs7CisgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKKyAgICAgIGVjaG8gIiRsdF9jbF9oZWxwIjsgZXhpdCAwIDs7CisgICAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCisgICAgICBkZWJ1Zz06IDs7CisgICAgLS1xdWlldCB8IC0tcSogfCAtLXNpbGVudCB8IC0tcyogfCAtcSApCisgICAgICBsdF9jbF9zaWxlbnQ9OiA7OworCisgICAgLSopIEFDX01TR19FUlJPUihbdW5yZWNvZ25pemVkIG9wdGlvbjogJFsxXQorVHJ5IFxgJFswXSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7CisKKyAgICAqKSBBQ19NU0dfRVJST1IoW3VucmVjb2duaXplZCBhcmd1bWVudDogJFsxXQorVHJ5IFxgJFswXSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7CisgIGVzYWMKKyAgc2hpZnQKK2RvbmUKKworaWYgJGx0X2NsX3NpbGVudDsgdGhlbgorICBleGVjIEFTX01FU1NBR0VfRkQ+L2Rldi9udWxsCitmaQorX0xURU9GCisKK2NhdCA+PiIkQ09ORklHX0xUIiA8PF9MVEVPRgorX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVQKK19MVEVPRgorCitjYXQgPj4iJENPTkZJR19MVCIgPDxcX0xURU9GCitBQ19NU0dfTk9USUNFKFtjcmVhdGluZyAkb2ZpbGVdKQorX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTCitBU19FWElUKDApCitfTFRFT0YKK2NobW9kICt4ICIkQ09ORklHX0xUIgorCisjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGJ1dCBjb25maWcubHQgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLAorIyBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZywgd2hpY2ggZmFpbHMgb24gRE9TLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQKKyMgb3BlbiBieSBjb25maWd1cmUuICBIZXJlIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwgZWZmZWN0aXZlbHkgY2xvc2luZworIyBjb25maWcubG9nLCBzbyBpdCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQgYXBwZW5kZWQgdG8gYnkgY29uZmlnLmx0LgoraWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCisgIGx0X2NsX3N1Y2Nlc3M9OgorICB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgorICAgIGx0X2NvbmZpZ19sdF9hcmdzPSIkbHRfY29uZmlnX2x0X2FyZ3MgLS1xdWlldCIKKyAgZXhlYyBBU19NRVNTQUdFX0xPR19GRD4vZGV2L251bGwKKyAgJFNIRUxMICIkQ09ORklHX0xUIiAkbHRfY29uZmlnX2x0X2FyZ3MgfHwgbHRfY2xfc3VjY2Vzcz1mYWxzZQorICBleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCisgICRsdF9jbF9zdWNjZXNzIHx8IEFTX0VYSVQoMSkKK2ZpCitdKSMgTFRfT1VUUFVUCisKKworIyBfTFRfQ09ORklHKFRBRykKKyMgLS0tLS0tLS0tLS0tLS0tCisjIElmIFRBRyBpcyB0aGUgYnVpbHQtaW4gdGFnLCBjcmVhdGUgYW4gaW5pdGlhbCBsaWJ0b29sIHNjcmlwdCB3aXRoIGEKKyMgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZyb20gdGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3aXNlIGFkZCBjb2RlCisjIHRvIGNvbmZpZy5zdGF0dXMgZm9yIGFwcGVuZGluZyB0aGUgY29uZmlndXJhdGlvbiBuYW1lZCBieSBUQUcgZnJvbSB0aGUKKyMgbWF0Y2hpbmcgdGFnZ2VkIGNvbmZpZyB2YXJzLgorbTRfZGVmdW4oW19MVF9DT05GSUddLAorW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFsKKyAgbTRfZGVmaW5lKFtfTFRfVEFHXSwgbTRfaWYoWyQxXSwgW10sIFtDXSwgWyQxXSkpZG5sCisgIG00X2lmKF9MVF9UQUcsIFtDXSwgWworICAgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4KKyAgICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgorICAgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKyAgICBmaQorCisgICAgY2ZnZmlsZT0iJHtvZmlsZX1UIgorICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1CisgICAgJFJNICIkY2ZnZmlsZSIKKworICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorIyEgJFNIRUxMCisKKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisjIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5ICRhc19tZSAoJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgorIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCisjCitfTFRfQ09QWUlORworX0xUX0xJQlRPT0xfVEFHUworCisjICMjIyBCRUdJTiBMSUJUT09MIENPTkZJRworX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlMKK19MVF9MSUJUT09MX1RBR19WQVJTCisjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKKworX0xUX0VPRgorCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgYWl4MyopCisgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorIyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCisjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKyMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KK2lmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorICBDT0xMRUNUX05BTUVTPQorICBleHBvcnQgQ09MTEVDVF9OQU1FUworZmkKK19MVF9FT0YKKyAgICA7OworICBlc2FjCisKKyAgX0xUX1BST0dfTFRNQUlOCisKKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisgICMgaWYgZmluZHMgbWl4ZWQgQ1IvTEYgYW5kIExGLW9ubHkgbGluZXMuICBTaW5jZSBzZWQgb3BlcmF0ZXMgaW4KKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0KKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KKyAgc2VkICcvXiMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlL3EnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorCisgIF9MVF9QUk9HX1hTSV9TSEVMTEZOUworCisgIHNlZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS8sJHAnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorCisgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQorICBjaG1vZCAreCAiJG9maWxlIgorXSwKK1tjYXQgPDxfTFRfRU9GID4+ICIkb2ZpbGUiCisKK2RubCBVbmZvcnR1bmF0ZWx5IHdlIGhhdmUgdG8gdXNlICQxIGhlcmUsIHNpbmNlIF9MVF9UQUcgaXMgbm90IGV4cGFuZGVkCitkbmwgaW4gYSBjb21tZW50IChpZSBhZnRlciBhICMpLgorIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkMQorX0xUX0xJQlRPT0xfVEFHX1ZBUlMoX0xUX1RBRykKKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICQxCitfTFRfRU9GCitdKWRubCAvbTRfaWYKK10sCitbbTRfaWYoWyQxXSwgW10sIFsKKyAgICBQQUNLQUdFPSckUEFDS0FHRScKKyAgICBWRVJTSU9OPSckVkVSU0lPTicKKyAgICBUSU1FU1RBTVA9JyRUSU1FU1RBTVAnCisgICAgUk09JyRSTScKKyAgICBvZmlsZT0nJG9maWxlJ10sIFtdKQorXSlkbmwgL19MVF9DT05GSUdfU0FWRV9DT01NQU5EUworXSkjIF9MVF9DT05GSUcKKworCisjIExUX1NVUFBPUlRFRF9UQUcoVEFHKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVHJhY2UgdGhpcyBtYWNybyB0byBkaXNjb3ZlciB3aGF0IHRhZ3MgYXJlIHN1cHBvcnRlZCBieSB0aGUgbGlidG9vbAorIyAtLXRhZyBvcHRpb24sIHVzaW5nOgorIyAgICBhdXRvY29uZiAtLXRyYWNlICdMVF9TVVBQT1JURURfVEFHOiQxJworQUNfREVGVU4oW0xUX1NVUFBPUlRFRF9UQUddLCBbXSkKKworCisjIEMgc3VwcG9ydCBpcyBidWlsdC1pbiBmb3Igbm93CittNF9kZWZpbmUoW19MVF9MQU5HX0NfZW5hYmxlZF0sIFtdKQorbTRfZGVmaW5lKFtfTFRfVEFHU10sIFtdKQorCisKKyMgTFRfTEFORyhMQU5HKQorIyAtLS0tLS0tLS0tLS0tCisjIEVuYWJsZSBsaWJ0b29sIHN1cHBvcnQgZm9yIHRoZSBnaXZlbiBsYW5ndWFnZSBpZiBub3QgYWxyZWFkeSBlbmFibGVkLgorQUNfREVGVU4oW0xUX0xBTkddLAorW0FDX0JFRk9SRShbJDBdLCBbTFRfT1VUUFVUXSlkbmwKK200X2Nhc2UoWyQxXSwKKyAgW0NdLAkJCVtfTFRfTEFORyhDKV0sCisgIFtDKytdLAkJW19MVF9MQU5HKENYWCldLAorICBbSmF2YV0sCQlbX0xUX0xBTkcoR0NKKV0sCisgIFtGb3J0cmFuIDc3XSwJCVtfTFRfTEFORyhGNzcpXSwKKyAgW0ZvcnRyYW5dLAkJW19MVF9MQU5HKEZDKV0sCisgIFtXaW5kb3dzIFJlc291cmNlXSwJW19MVF9MQU5HKFJDKV0sCisgIFttNF9pZmRlZihbX0xUX0xBTkdfXSQxW19DT05GSUddLAorICAgIFtfTFRfTEFORygkMSldLAorICAgIFttNF9mYXRhbChbJDA6IHVuc3VwcG9ydGVkIGxhbmd1YWdlOiAiJDEiXSldKV0pZG5sCitdKSMgTFRfTEFORworCisKKyMgX0xUX0xBTkcoTEFOR05BTUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9MQU5HXSwKK1ttNF9pZmRlZihbX0xUX0xBTkdfXSQxW19lbmFibGVkXSwgW10sCisgIFtMVF9TVVBQT1JURURfVEFHKFskMV0pZG5sCisgIG00X2FwcGVuZChbX0xUX1RBR1NdLCBbJDEgXSlkbmwKKyAgbTRfZGVmaW5lKFtfTFRfTEFOR19dJDFbX2VuYWJsZWRdLCBbXSlkbmwKKyAgX0xUX0xBTkdfJDFfQ09ORklHKCQxKV0pZG5sCitdKSMgX0xUX0xBTkcKKworCisjIF9MVF9MQU5HX0RFRkFVTFRfQ09ORklHCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX0xBTkdfREVGQVVMVF9DT05GSUddLAorW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCisgIFtMVF9MQU5HKENYWCldLAorICBbbTRfZGVmaW5lKFtBQ19QUk9HX0NYWF0sIGRlZm4oW0FDX1BST0dfQ1hYXSlbTFRfTEFORyhDWFgpXSldKQorCitBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19GNzddLAorICBbTFRfTEFORyhGNzcpXSwKKyAgW200X2RlZmluZShbQUNfUFJPR19GNzddLCBkZWZuKFtBQ19QUk9HX0Y3N10pW0xUX0xBTkcoRjc3KV0pXSkKKworQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfRkNdLAorICBbTFRfTEFORyhGQyldLAorICBbbTRfZGVmaW5lKFtBQ19QUk9HX0ZDXSwgZGVmbihbQUNfUFJPR19GQ10pW0xUX0xBTkcoRkMpXSldKQorCitkbmwgVGhlIGNhbGwgdG8gW0FdW01fUFJPR19HQ0pdIGlzIHF1b3RlZCBsaWtlIHRoYXQgdG8gc3RvcCBhY2xvY2FsCitkbmwgcHVsbGluZyB0aGluZ3MgaW4gbmVlZGxlc3NseS4KK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0dDSl0sCisgIFtMVF9MQU5HKEdDSildLAorICBbQUNfUFJPVklERV9JRkVMU0UoW0FdW01fUFJPR19HQ0pdLAorICAgIFtMVF9MQU5HKEdDSildLAorICAgIFtBQ19QUk9WSURFX0lGRUxTRShbTFRfUFJPR19HQ0pdLAorICAgICAgW0xUX0xBTkcoR0NKKV0sCisgICAgICBbbTRfaWZkZWYoW0FDX1BST0dfR0NKXSwKKwlbbTRfZGVmaW5lKFtBQ19QUk9HX0dDSl0sIGRlZm4oW0FDX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKQorICAgICAgIG00X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwKKwlbbTRfZGVmaW5lKFtBXVtNX1BST0dfR0NKXSwgZGVmbihbQV1bTV9QUk9HX0dDSl0pW0xUX0xBTkcoR0NKKV0pXSkKKyAgICAgICBtNF9pZmRlZihbTFRfUFJPR19HQ0pdLAorCVttNF9kZWZpbmUoW0xUX1BST0dfR0NKXSwgZGVmbihbTFRfUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pXSldKV0pCisKK0FDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9HX1JDXSwKKyAgW0xUX0xBTkcoUkMpXSwKKyAgW200X2RlZmluZShbTFRfUFJPR19SQ10sIGRlZm4oW0xUX1BST0dfUkNdKVtMVF9MQU5HKFJDKV0pXSkKK10pIyBfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworCisjIE9ic29sZXRlIG1hY3JvczoKK0FVX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtMVF9MQU5HKEMrKyldKQorQVVfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwgW0xUX0xBTkcoRm9ydHJhbiA3NyldKQorQVVfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbTFRfTEFORyhGb3J0cmFuKV0pCitBVV9ERUZVTihbQUNfTElCVE9PTF9HQ0pdLCBbTFRfTEFORyhKYXZhKV0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ1hYXSwgW10pCitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwgW10pCitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbXSkKK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9HQ0pdLCBbXSkKKworCisjIF9MVF9UQUdfQ09NUElMRVIKKyMgLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9UQUdfQ09NUElMRVJdLAorW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorCitfTFRfREVDTChbTFRDQ10sIFtDQ10sIFsxXSwgW0EgQyBjb21waWxlcl0pZG5sCitfTFRfREVDTChbTFRDRkxBR1NdLCBbQ0ZMQUdTXSwgWzFdLCBbTFRDQyBjb21waWxlciBmbGFnc10pZG5sCitfTFRfVEFHREVDTChbQ0NdLCBbY29tcGlsZXJdLCBbMV0sIFtBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyXSlkbmwKK19MVF9UQUdERUNMKFt3aXRoX2djY10sIFtHQ0NdLCBbMF0sIFtJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj9dKWRubAorCisjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgorTFRDQz0ke0xUQ0MtIiRDQyJ9CisKKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQorCisjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorY29tcGlsZXI9JENDCitdKSMgX0xUX1RBR19DT01QSUxFUgorCisKKyMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayBmb3IgY29tcGlsZXIgYm9pbGVycGxhdGUgb3V0cHV0IG9yIHdhcm5pbmdzIHdpdGgKKyMgdGhlIHNpbXBsZSBjb21waWxlciB0ZXN0IGNvZGUuCittNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwKK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CitlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCitfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCiskUk0gY29uZnRlc3QqCitdKSMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisKKworIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgZm9yIGxpbmtlciBib2lsZXJwbGF0ZSBvdXRwdXQgb3Igd2FybmluZ3Mgd2l0aAorIyB0aGUgc2ltcGxlIGxpbmsgdGVzdCBjb2RlLgorbTRfZGVmdW4oW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdLAorW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCithY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CitldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCiskUk0gLXIgY29uZnRlc3QqCitdKSMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorCisjIF9MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuX29uY2UoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSxbCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICByaGFwc29keSogfCBkYXJ3aW4qKQorICAgIEFDX0NIRUNLX1RPT0woW0RTWU1VVElMXSwgW2RzeW11dGlsXSwgWzpdKQorICAgIEFDX0NIRUNLX1RPT0woW05NRURJVF0sIFtubWVkaXRdLCBbOl0pCisgICAgQUNfQ0hFQ0tfVE9PTChbTElQT10sIFtsaXBvXSwgWzpdKQorICAgIEFDX0NIRUNLX1RPT0woW09UT09MXSwgW290b29sXSwgWzpdKQorICAgIEFDX0NIRUNLX1RPT0woW09UT09MNjRdLCBbb3Rvb2w2NF0sIFs6XSkKKyAgICBfTFRfREVDTChbXSwgW0RTWU1VVElMXSwgWzFdLAorICAgICAgW1Rvb2wgdG8gbWFuaXB1bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1ib2wgZmlsZXMgb24gTWFjIE9TIFhdKQorICAgIF9MVF9ERUNMKFtdLCBbTk1FRElUXSwgWzFdLAorICAgICAgW1Rvb2wgdG8gY2hhbmdlIGdsb2JhbCB0byBsb2NhbCBzeW1ib2xzIG9uIE1hYyBPUyBYXSkKKyAgICBfTFRfREVDTChbXSwgW0xJUE9dLCBbMV0sCisgICAgICBbVG9vbCB0byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBvbiBNYWMgT1MgWF0pCisgICAgX0xUX0RFQ0woW10sIFtPVE9PTF0sIFsxXSwKKyAgICAgIFtsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWF0pCisgICAgX0xUX0RFQ0woW10sIFtPVE9PTDY0XSwgWzFdLAorICAgICAgW2xkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWCAxMC40XSkKKworICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWddLFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kXSwKKyAgICAgIFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCisgICAgICBpZiB0ZXN0IC16ICIke0xUX01VTFRJX01PRFVMRX0iOyB0aGVuCisJIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAtc2luZ2xlX21vZHVsZSBmbGFnLiBZb3UgY2FuIG92ZXJyaWRlCisJIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisJIyBub24tZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRoZQorCSMgbGluayBmbGFncy4KKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisJZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKKwllY2hvICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKwkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMgMj5jb25mdGVzdC5lcnIKKyAgICAgICAgX2x0X3Jlc3VsdD0kPworCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgorCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKKwllbHNlCisJICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKwlmaQorCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKKwlybSAtZiBjb25mdGVzdC4qCisgICAgICBmaV0pCisgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnXSwKKyAgICAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3RdLAorICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubworICAgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKKyAgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW10sW10pXSwKKwlbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllc10sCisJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ub10pCisJTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKyAgICBdKQorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICByaGFwc29keSogfCBkYXJ3aW4xLltbMDEyXV0pCisgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CisgICAgZGFyd2luMS4qKQorICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworICAgIGRhcndpbiopICMgZGFyd2luIDUueCBvbgorICAgICAgIyBpZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBkZXBsb3ltZW50IHRhcmdldCBkZWZhdWx0cworICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKKyAgICAgICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0PworICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSwkaG9zdCBpbgorCTEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2luW1s5MV1dKikKKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKKwkxMC5bWzAxMl1dKikKKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKwkxMC4qKQorCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OworICAgICAgZXNhYworICAgIDs7CisgIGVzYWMKKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSckc2luZ2xlX21vZHVsZScKKyAgICBmaQorICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9JyAke3dsfS1leHBvcnRlZF9zeW1ib2xzX2xpc3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bScKKyAgICBlbHNlCisgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKyAgICBmaQorICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiOyB0aGVuCisgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxpYiB8fCA6JworICAgIGVsc2UKKyAgICAgIF9sdF9kc3ltdXRpbD0KKyAgICBmaQorICAgIDs7CisgIGVzYWMKK10pCisKKworIyBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVja3MgZm9yIGxpbmtlciBhbmQgY29tcGlsZXIgZmVhdHVyZXMgb24gZGFyd2luCittNF9kZWZ1bihbX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVNdLAorWworICBtNF9yZXF1aXJlKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10pCisgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9eWVzCisgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJworICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKyAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCisgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgIGlmb3J0KikgX2x0X2Rhcl9jYW5fc2hhcmVkPXllcyA7OworICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OworICBlc2FjCisgIGlmIHRlc3QgIiRfbHRfZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCisgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKyAgICBfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKKyAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorICAgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKyAgICBtNF9pZihbJDFdLCBbQ1hYXSwKK1sgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKyAgICBmaQorXSxbXSkKKyAgZWxzZQorICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgIGZpCitdKQorCisjIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIExpbmtzIGEgbWluaW1hbCBwcm9ncmFtIGFuZCBjaGVja3MgdGhlIGV4ZWN1dGFibGUKKyMgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBoYXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNhc2VzLAorIyB0aGlzIGlzIC91c3IvbGliOi9saWIsIGJ1dCB3aGVuIHRoZSBNUEkgY29tcGlsZXJzIGFyZSB1c2VkCisjIHRoZSBsb2NhdGlvbiBvZiB0aGUgY29tbXVuaWNhdGlvbiBhbmQgTVBJIGxpYnMgYXJlIGluY2x1ZGVkIHRvby4KKyMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNlIHRoZSBkZWZhdWx0IGxpYnJhcnkgcGF0aCBhY2NvcmRpbmcKKyMgdG8gdGhlIGFpeCBsZCBtYW51YWwuCittNF9kZWZ1bihbX0xUX1NZU19NT0RVTEVfUEFUSF9BSVhdLAorW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCitBQ19MSU5LX0lGRUxTRShBQ19MQU5HX1BST0dSQU0sWworbHRfYWl4X2xpYnBhdGhfc2VkPScKKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisJL14wLyB7CisJICAgIHMvXjAgICpcKC4qXCkkL1wxLworCSAgICBwCisJfQorICAgIH0nCithaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCitmaV0sW10pCitpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKK10pIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorCisKKyMgX0xUX1NIRUxMX0lOSVQoQVJHKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19MVF9TSEVMTF9JTklUXSwKK1tpZmRlZihbQUNfRElWRVJTSU9OX05PVElDRV0sCisJICAgICBbQUNfRElWRVJUX1BVU0goQUNfRElWRVJTSU9OX05PVElDRSldLAorCSBbQUNfRElWRVJUX1BVU0goTk9USUNFKV0pCiskMQorQUNfRElWRVJUX1BPUAorXSkjIF9MVF9TSEVMTF9JTklUCisKKworIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBZGQgc29tZSBjb2RlIHRvIHRoZSBzdGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQgd2hpY2gKKyMgd2lsbCBmaW5kIGFuIGVjaG8gY29tbWFuZCB3aGljaCBkb2Vzbid0IGludGVycHJldCBiYWNrc2xhc2hlcy4KK200X2RlZnVuKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCitbX0xUX1NIRUxMX0lOSVQoWworIyBDaGVjayB0aGF0IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgorU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKworY2FzZSBYJGx0X0VDSE8gaW4KK1gqLS1mYWxsYmFjay1lY2hvKQorICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgorICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFxbJF1cXFskXTAsJ1skXTAnLCdgCisgIDs7Citlc2FjCisKK0VDSE89JHtsdF9FQ0hPLWVjaG99CitpZiB0ZXN0ICJYWyRdMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KKyAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisgIHNoaWZ0CitlbGlmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorICA6CitlbGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRoZW4KKyAgIyBZaXBwZWUsICRFQ0hPIHdvcmtzIQorICA6CitlbHNlCisgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KKyAgZXhlYyAkU0hFTEwgIlskXTAiIC0tbm8tcmVleGVjICR7MSsiWyRdQCJ9CitmaQorCitpZiB0ZXN0ICJYWyRdMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCisgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCisgIHNoaWZ0CisgIGNhdCA8PF9MVF9FT0YKK1skXSoKK19MVF9FT0YKKyAgZXhpdCAwCitmaQorCisjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorIyBpZiBDRFBBVEggaXMgc2V0LgorKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorCitpZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4KKyAgaWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCisgICAgIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0CisgICAgZm9yIGNtZCBpbiAnc2VkIDUwcSAiWyRdMCInICdzZWQgMjBxICJbJF0wIicgJ3NlZCAxMHEgIlskXTAiJyAnc2VkIDJxICJbJF0wIicgJ2VjaG8gdGVzdCc7IGRvCisgICAgICAjIGV4cGVjdGVkIHNpemVzOiBsZXNzIHRoYW4gMktiLCAxS2IsIDUxMiBieXRlcywgMTYgYnl0ZXMsIC4uLgorICAgICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgOyB9IDI+L2Rldi9udWxsICYmCisJIHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsCisgICAgICB0aGVuCisgICAgICAgIGJyZWFrCisgICAgICBmaQorICAgIGRvbmUKKyAgZmkKKworICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKyAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgorICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKyAgICA6CisgIGVsc2UKKyAgICAjIFRoZSBTb2xhcmlzLCBBSVgsIGFuZCBEaWdpdGFsIFVuaXggZGVmYXVsdCBlY2hvIHByb2dyYW1zIHVucXVvdGUKKyAgICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCisgICAgIyAgIGVjaG8gIiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKKyAgICAjCisgICAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3IgYSB3b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgorCisgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisgICAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3VjYjsgZG8KKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorICAgICAgaWYgKHRlc3QgLWYgJGRpci9lY2hvIHx8IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKKyAgICAgICAgIHRlc3QgIlhgKCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkZGlyL2VjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCisgICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKyAgICAgICAgRUNITz0iJGRpci9lY2hvIgorICAgICAgICBicmVhaworICAgICAgZmkKKyAgICBkb25lCisgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisKKyAgICBpZiB0ZXN0ICJYJEVDSE8iID0gWGVjaG87IHRoZW4KKyAgICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9vayBmb3IgYWx0ZXJuYXRpdmVzLgorICAgICAgaWYgdGVzdCAiWGB7IHByaW50IC1yICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisgICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7IHByaW50IC1yICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCisgICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKyAgICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRoZSB0cmljay4KKyAgICAgICAgRUNITz0ncHJpbnQgLXInCisgICAgICBlbGlmIHsgdGVzdCAtZiAvYmluL2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAmJgorCSAgIHRlc3QgIlgkQ09ORklHX1NIRUxMIiAhPSBYL2Jpbi9rc2g7IHRoZW4KKyAgICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5pbmcgY29uZmlndXJlIGFnYWluIHdpdGggaXQuCisgICAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorICAgICAgICBleHBvcnQgT1JJR0lOQUxfQ09ORklHX1NIRUxMCisgICAgICAgIENPTkZJR19TSEVMTD0vYmluL2tzaAorICAgICAgICBleHBvcnQgQ09ORklHX1NIRUxMCisgICAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiWyRdMCIgLS1uby1yZWV4ZWMgJHsxKyJbJF1AIn0KKyAgICAgIGVsc2UKKyAgICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgorICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKKyAgICAgICAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisJICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgorCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorCSAgIyBDb29sLCBwcmludGYgd29ya3MKKwkgIDoKKyAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgorCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCisJICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisJICBDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVMTAorCSAgZXhwb3J0IENPTkZJR19TSEVMTAorCSAgU0hFTEw9IiRDT05GSUdfU0hFTEwiCisJICBleHBvcnQgU0hFTEwKKwkgIEVDSE89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCisgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgorCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorCSAgRUNITz0iJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyIKKyAgICAgICAgZWxzZQorCSAgIyBtYXliZSB3aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KKwkgIHByZXY9OgorCisJICBmb3IgY21kIGluICdlY2hvIHRlc3QnICdzZWQgMnEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdzZWQgMjBxICJbJF0wIicgJ3NlZCA1MHEgIlskXTAiJzsgZG8KKwkgICAgaWYgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCI7IH0gMj4vZGV2L251bGwKKwkgICAgdGhlbgorCSAgICAgIGJyZWFrCisJICAgIGZpCisJICAgIHByZXY9IiRjbWQiCisJICBkb25lCisKKwkgIGlmIHRlc3QgIiRwcmV2IiAhPSAnc2VkIDUwcSAiWyRdMCInOyB0aGVuCisJICAgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCisJICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCisJICAgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19ICJbJF0wIiAkezErIlskXUAifQorCSAgZWxzZQorCSAgICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgorCSAgICBFQ0hPPWVjaG8KKwkgIGZpCisgICAgICAgIGZpCisgICAgICBmaQorICAgIGZpCisgIGZpCitmaQorCisjIENvcHkgZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCisjIHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KK2x0X0VDSE89JEVDSE8KK2lmIHRlc3QgIlgkbHRfRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCisgICBsdF9FQ0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcWyRdMCAtLWZhbGxiYWNrLWVjaG8iCitmaQorCitBQ19TVUJTVChsdF9FQ0hPKQorXSkKK19MVF9ERUNMKFtdLCBbU0hFTExdLCBbMV0sIFtTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzXSkKK19MVF9ERUNMKFtdLCBbRUNIT10sIFsxXSwKKyAgICBbQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzXSkKK10pIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorCisKKyMgX0xUX0VOQUJMRV9MT0NLCisjIC0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9FTkFCTEVfTE9DS10sCitbQUNfQVJHX0VOQUJMRShbbGlidG9vbC1sb2NrXSwKKyAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKKyAgICBbYXZvaWQgbG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVpbGRzKV0pXSkKK3Rlc3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCisKKyMgU29tZSBmbGFncyBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAorIyBsaWJ0b29sIHN1cHBvcnQuCitjYXNlICRob3N0IGluCitpYTY0LSotaHB1eCopCisgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisgICAgICAqRUxGLTMyKikKKwlIUFVYX0lBNjRfTU9ERT0iMzIiCisJOzsKKyAgICAgICpFTEYtNjQqKQorCUhQVVhfSUE2NF9NT0RFPSI2NCIKKwk7OworICAgIGVzYWMKKyAgZmkKKyAgcm0gLXJmIGNvbmZ0ZXN0KgorICA7OworKi0qLWlyaXg2KikKKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorICBlY2hvICdbI11saW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0CisgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisgICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorCSozMi1iaXQqKQorCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKwkgIDs7CisJKk4zMiopCisJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIiCisJICA7OworCSo2NC1iaXQqKQorCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorCTs7CisgICAgICBlc2FjCisgICAgZWxzZQorICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorCSozMi1iaXQqKQorCSAgTEQ9IiR7TEQtbGR9IC0zMiIKKwkgIDs7CisJKk4zMiopCisJICBMRD0iJHtMRC1sZH0gLW4zMiIKKwkgIDs7CisJKjY0LWJpdCopCisJICBMRD0iJHtMRC1sZH0gLTY0IgorCSAgOzsKKyAgICAgIGVzYWMKKyAgICBmaQorICBmaQorICBybSAtcmYgY29uZnRlc3QqCisgIDs7CisKK3g4Nl82NC0qa2ZyZWVic2QqLWdudXx4ODZfNjQtKmxpbnV4KnxwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KnwgXAorczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KKyAgICAgICozMi1iaXQqKQorCWNhc2UgJGhvc3QgaW4KKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2X2Zic2QiCisJICAgIDs7CisJICB4ODZfNjQtKmxpbnV4KikKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2IgorCSAgICA7OworCSAgcHBjNjQtKmxpbnV4Knxwb3dlcnBjNjQtKmxpbnV4KikKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMycHBjbGludXgiCisJICAgIDs7CisJICBzMzkweC0qbGludXgqKQorCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3MzOTAiCisJICAgIDs7CisJICBzcGFyYzY0LSpsaW51eCopCisJICAgIExEPSIke0xELWxkfSAtbSBlbGYzMl9zcGFyYyIKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgICo2NC1iaXQqKQorCWNhc2UgJGhvc3QgaW4KKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKwkgICAgOzsKKwkgIHg4Nl82NC0qbGludXgqKQorCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKwkgICAgOzsKKwkgIHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqKQorCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisJICAgIDs7CisJICBzMzkwKi0qbGludXgqfHMzOTAqLSp0cGYqKQorCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKKwkgICAgOzsKKwkgIHNwYXJjKi0qbGludXgqKQorCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCisJICAgIDs7CisJZXNhYworCTs7CisgICAgZXNhYworICBmaQorICBybSAtcmYgY29uZnRlc3QqCisgIDs7CisKKyotKi1zY28zLjJ2NSopCisgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KKyAgU0FWRV9DRkxBR1M9IiRDRkxBR1MiCisgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKyAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9jY19uZWVkc19iZWxmLAorICAgIFtBQ19MQU5HX1BVU0goQykKKyAgICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLFtbXV0pXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXNdLFtsdF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKyAgICAgQUNfTEFOR19QT1BdKQorICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgorICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVkIGZvciAtYmVsZgorICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgorICBmaQorICA7Oworc3BhcmMqLSpzb2xhcmlzKikKKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KKyAgICAqNjQtYml0KikKKyAgICAgIGNhc2UgJGx0X2N2X3Byb2dfZ251X2xkIGluCisgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7CisgICAgICAqKQorCWlmICR7TEQtbGR9IC02NCAtciAtbyBjb25mdGVzdDIubyBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgorCSAgTEQ9IiR7TEQtbGR9IC02NCIKKwlmaQorCTs7CisgICAgICBlc2FjCisgICAgICA7OworICAgIGVzYWMKKyAgZmkKKyAgcm0gLXJmIGNvbmZ0ZXN0KgorICA7OworZXNhYworCituZWVkX2xvY2tzPSIkZW5hYmxlX2xpYnRvb2xfbG9jayIKK10pIyBfTFRfRU5BQkxFX0xPQ0sKKworCisjIF9MVF9DTURfT0xEX0FSQ0hJVkUKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9DTURfT0xEX0FSQ0hJVkVdLAorW0FDX0NIRUNLX1RPT0woQVIsIGFyLCBmYWxzZSkKK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKK3Rlc3QgLXogIiRBUl9GTEFHUyIgJiYgQVJfRkxBR1M9Y3J1CitfTFRfREVDTChbXSwgW0FSXSwgWzFdLCBbVGhlIGFyY2hpdmVyXSkKK19MVF9ERUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0pCisKK0FDX0NIRUNLX1RPT0woU1RSSVAsIHN0cmlwLCA6KQordGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06CitfTFRfREVDTChbXSwgW1NUUklQXSwgWzFdLCBbQSBzeW1ib2wgc3RyaXBwaW5nIHByb2dyYW1dKQorCitBQ19DSEVDS19UT09MKFJBTkxJQiwgcmFubGliLCA6KQordGVzdCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKK19MVF9ERUNMKFtdLCBbUkFOTElCXSwgWzFdLAorICAgIFtDb21tYW5kcyB1c2VkIHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorCisjIERldGVybWluZSBjb21tYW5kcyB0byBjcmVhdGUgb2xkLXN0eWxlIHN0YXRpYyBhcmNoaXZlcy4KK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJworb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJworb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0KKworaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICBvcGVuYnNkKikKKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgorICAgIDs7CisgICopCisgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKKyAgICA7OworICBlc2FjCisgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGliIgorZmkKK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0pCitfTFRfREVDTChbXSwgW29sZF9wb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0pCitfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2NtZHNdLCBbMl0sCisgICAgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorXSkjIF9MVF9DTURfT0xEX0FSQ0hJVkUKKworCisjIF9MVF9DT01QSUxFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCisjCQlbT1VUUFVULUZJTEVdLCBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZBSUxVUkVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGNvbXBpbGVyIG9wdGlvbiB3b3JrcworQUNfREVGVU4oW19MVF9DT01QSUxFUl9PUFRJT05dLAorW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFskMl0sCisgIFskMj1ubworICAgbTRfaWYoWyQ0XSwgLCBbYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0XSwgW2FjX291dGZpbGU9JDRdKQorICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisgICBsdF9jb21waWxlcl9mbGFnPSIkMyIKKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCisgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICRsdF9jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorICAgYWNfc3RhdHVzPSQ/CisgICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgIGVjaG8gIiRhc19tZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgorICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisgICAgICAgJDI9eWVzCisgICAgIGZpCisgICBmaQorICAgJFJNIGNvbmZ0ZXN0KgorXSkKKworaWYgdGVzdCB4IlskXSQyIiA9IHh5ZXM7IHRoZW4KKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCitlbHNlCisgICAgbTRfaWYoWyQ2XSwgLCA6LCBbJDZdKQorZmkKK10pIyBfTFRfQ09NUElMRVJfT1BUSU9OCisKKyMgT2xkIG5hbWU6CitBVV9BTElBUyhbQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT05dLCBbX0xUX0NPTVBJTEVSX09QVElPTl0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW10pCisKKworIyBfTFRfTElOS0VSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKKyMgICAgICAgICAgICAgICAgICBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZBSUxVUkVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGxpbmtlciBvcHRpb24gd29ya3MKK0FDX0RFRlVOKFtfTFRfTElOS0VSX09QVElPTl0sCitbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorQUNfQ0FDSEVfQ0hFQ0soWyQxXSwgWyQyXSwKKyAgWyQyPW5vCisgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorICAgTERGTEFHUz0iJExERkxBR1MgJDMiCisgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgICAgJEVDSE8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCisgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKyAgICAgICAgICQyPXllcworICAgICAgIGZpCisgICAgIGVsc2UKKyAgICAgICAkMj15ZXMKKyAgICAgZmkKKyAgIGZpCisgICAkUk0gLXIgY29uZnRlc3QqCisgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorXSkKKworaWYgdGVzdCB4IlskXSQyIiA9IHh5ZXM7IHRoZW4KKyAgICBtNF9pZihbJDRdLCAsIDosIFskNF0pCitlbHNlCisgICAgbTRfaWYoWyQ1XSwgLCA6LCBbJDVdKQorZmkKK10pIyBfTFRfTElOS0VSX09QVElPTgorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtfTFRfTElOS0VSX09QVElPTl0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtdKQorCisKKyMgTFRfQ01EX01BWF9MRU4KKyMtLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtMVF9DTURfTUFYX0xFTl0sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorIyBmaW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCitBQ19NU0dfQ0hFQ0tJTkcoW3RoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzXSkKK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAorICBpPTAKKyAgdGVzdHN0cmluZz0iQUJDRCIKKworICBjYXNlICRidWlsZF9vcyBpbgorICBtc2Rvc2RqZ3BwKikKKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCisgICAgIyAoYW55IHNpbmdsZSBhcmd1bWVudCBleGNlZWRpbmcgMjAwMCBieXRlcyBjYXVzZXMgYSBidWZmZXIgb3ZlcnJ1bgorICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQgd2VyZSBmaXhlZCwgdGhlIHJlc3VsdCBvZiB0aGlzCisgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEyMjg4OyAgICAjIDEySyBpcyBhYm91dCByaWdodAorICAgIDs7CisKKyAgZ251KikKKyAgICAjIFVuZGVyIEdOVSBIdXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMKKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKyAgICAjIExpYnRvb2wgd2lsbCBpbnRlcnByZXQgLTEgYXMgbm8gbGltaXQgd2hhdHNvZXZlcgorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKKyAgICA7OworCisgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKKyAgICAjIGFib3V0IDUgbWludXRlcyBhcyB0aGUgdGVzdHN0cmluZyBncm93cyBleHBvbmVudGlhbGx5LgorICAgICMgV29yc2UsIHNpbmNlIDl4L01FIGFyZSBub3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCisgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQorICAgICMgdGhlIHRlc3QgZXZlbnR1YWxseSBzdWNjZWVkcyAod2l0aCBhIG1heCBsaW5lIGxlbmd0aCBvZiAyNTZrKS4KKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5pbXVtIGxpbmVsZW5ndGggcmVwb3J0ZWQgYnkKKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworICAgIDs7CisKKyAgYW1pZ2FvcyopCisgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gsIHRoaXMgdGVzdCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgorICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7CisgICAgOzsKKworICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkqKQorICAgICMgVGhpcyBoYXMgYmVlbiBhcm91bmQgc2luY2UgMzg2QlNELCBhdCBsZWFzdC4gIExpa2VseSBmdXJ0aGVyLgorICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCisgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKKyAgICBlbGlmIHRlc3QgLXggL3Vzci9zYmluL3N5c2N0bDsgdGhlbgorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorICAgIGVsc2UKKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj02NTUzNgkjIHVzYWJsZSBkZWZhdWx0IGZvciBhbGwgQlNEcworICAgIGZpCisgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCisgICAgOzsKKworICBpbnRlcml4KikKKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTk2NjA4CisgICAgOzsKKworICBvc2YqKQorICAgICMgRHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZpZ3VyZQorICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90CisgICAgIyBuaWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mgc28gbGV0cyBhdm9pZCB0aGUgbG9vcCBiZWxvdy4KKyAgICAjIEZpcnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVsdC4KKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTYzODQKKyAgICAjCisgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KKyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXRgIGluCisgICAgICAgICoxKikgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xIDs7CisgICAgICBlc2FjCisgICAgZmkKKyAgICA7OworICBzY28zLjJ2NSopCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEwMjQwMAorICAgIDs7CisgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4vZGV2L251bGxgCisgICAgaWYgdGVzdCAtbiAiJGthcmdtYXgiOyB0aGVuCisgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbWwkgXV0vLydgCisgICAgZWxzZQorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTMyNzY4CisgICAgZmkKKyAgICA7OworICAqKQorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAorICAgIGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCisgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKKyAgICBlbHNlCisgICAgICAjIE1ha2UgdGVzdHN0cmluZyBhIGxpdHRsZSBiaWdnZXIgYmVmb3JlIHdlIGRvIGFueXRoaW5nIHdpdGggaXQuCisgICAgICAjIGEgMUsgc3RyaW5nIHNob3VsZCBiZSBhIHJlYXNvbmFibGUgc3RhcnQuCisgICAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbworICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKyAgICAgIGRvbmUKKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19CisgICAgICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHByb2JhYmx5IGVuZCB1cCBjb21wdXRpbmcgYQorICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBidXQKKyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgJFNIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvICJYJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKKwkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorCSAgICAgIHRlc3QgJGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAorICAgICAgZG8KKyAgICAgICAgaT1gZXhwciAkaSArIDFgCisgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZworICAgICAgZG9uZQorICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCisgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgIlgkdGVzdHN0cmluZyIgOiAiLioiIDI+JjFgCisgICAgICB0ZXN0c3RyaW5nPQorICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorICAgICAgIyBtYXNzaXZlIGFtb3VudHMgb2YgYWRkaXRpb25hbCBhcmd1bWVudHMgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byB0aGUKKyAgICAgICMgbGlua2VyLiAgSXQgYXBwZWFycyBhcyB0aG91Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgorICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKKyAgICBmaQorICAgIDs7CisgIGVzYWMKK10pCitpZiB0ZXN0IC1uICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gOyB0aGVuCisgIEFDX01TR19SRVNVTFQoJGx0X2N2X3N5c19tYXhfY21kX2xlbikKK2Vsc2UKKyAgQUNfTVNHX1JFU1VMVChub25lKQorZmkKK21heF9jbWRfbGVuPSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KK19MVF9ERUNMKFtdLCBbbWF4X2NtZF9sZW5dLCBbMF0sCisgICAgW1doYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD9dKQorXSkjIExUX0NNRF9NQVhfTEVOCisKKyMgT2xkIG5hbWU6CitBVV9BTElBUyhbQUNfTElCVE9PTF9TWVNfTUFYX0NNRF9MRU5dLCBbTFRfQ01EX01BWF9MRU5dKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sIFtdKQorCisKKyMgX0xUX0hFQURFUl9ETEZDTgorIyAtLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX0hFQURFUl9ETEZDTl0sCitbQUNfQ0hFQ0tfSEVBREVSUyhbZGxmY24uaF0sIFtdLCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFVTFRdKWRubAorXSkjIF9MVF9IRUFERVJfRExGQ04KKworCisjIF9MVF9UUllfRExPUEVOX1NFTEYgKEFDVElPTi1JRi1UUlVFLCBBQ1RJT04tSUYtVFJVRS1XLVVTQ09SRSwKKyMgICAgICAgICAgICAgICAgICAgICAgQUNUSU9OLUlGLUZBTFNFLCBBQ1RJT04tSUYtQ1JPU1MtQ09NUElMSU5HKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX1RSWV9ETE9QRU5fU0VMRl0sCitbbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0pZG5sCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisgIFskNF0KK2Vsc2UKKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgorICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgorICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorWyNsaW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIgorI2luY2x1ZGUgImNvbmZkZWZzLmgiCisKKyNpZiBIQVZFX0RMRkNOX0gKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaWZkZWYgUlRMRF9HTE9CQUwKKyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKKyNlbHNlCisjICBpZmRlZiBETF9HTE9CQUwKKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKKyMgIGVsc2UKKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCisjICBlbmRpZgorI2VuZGlmCisKKy8qIFdlIG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVworIyAgaWZkZWYgUlRMRF9MQVpZCisjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKKyMgIGVsc2UKKyMgICAgaWZkZWYgRExfTEFaWQorIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCisjICAgIGVsc2UKKyMgICAgICBpZmRlZiBSVExEX05PVworIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKKyMgICAgICBlbHNlCisjICAgICAgICBpZmRlZiBETF9OT1cKKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisjICAgICAgICBlbHNlCisjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKKyMgICAgICAgIGVuZGlmCisjICAgICAgZW5kaWYKKyMgICAgZW5kaWYKKyMgIGVuZGlmCisjZW5kaWYKKwordm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQoraW50IG1haW4gKCkKK3sKKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7CisgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOworCisgIGlmIChzZWxmKQorICAgIHsKKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOworICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLworICAgIH0KKyAgZWxzZQorICAgIHB1dHMgKGRsZXJyb3IgKCkpOworCisgIHJldHVybiBzdGF0dXM7Cit9XQorX0xUX0VPRgorICBpZiBBQ19UUllfRVZBTChhY19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9IDI+L2Rldi9udWxsOyB0aGVuCisgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiZBU19NRVNTQUdFX0xPR19GRCAyPi9kZXYvbnVsbAorICAgIGx0X3N0YXR1cz0kPworICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KKyAgICAgIHgkbHRfZGxub191c2NvcmUpICQxIDs7CisgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpICQyIDs7CisgICAgICB4JGx0X2RsdW5rbm93bnx4KikgJDMgOzsKKyAgICBlc2FjCisgIGVsc2UgOgorICAgICMgY29tcGlsYXRpb24gZmFpbGVkCisgICAgJDMKKyAgZmkKK2ZpCitybSAtZnIgY29uZnRlc3QqCitdKSMgX0xUX1RSWV9ETE9QRU5fU0VMRgorCisKKyMgTFRfU1lTX0RMT1BFTl9TRUxGCisjIC0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW0xUX1NZU19ETE9QRU5fU0VMRl0sCitbbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0pZG5sCitpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRoZW4KKyAgZW5hYmxlX2Rsb3Blbj11bmtub3duCisgIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCisgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgorZWxzZQorICBsdF9jdl9kbG9wZW49bm8KKyAgbHRfY3ZfZGxvcGVuX2xpYnM9CisKKyAgY2FzZSAkaG9zdF9vcyBpbgorICBiZW9zKikKKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgorICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcworICAgIDs7CisKKyAgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKyAgICA7OworCisgIGN5Z3dpbiopCisgICAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCisgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisgICAgOzsKKworICBkYXJ3aW4qKQorICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAorICAgIEFDX0NIRUNLX0xJQihbZGxdLCBbZGxvcGVuXSwKKwkJW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLFsKKyAgICBsdF9jdl9kbG9wZW49ImR5bGQiCisgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisgICAgXSkKKyAgICA7OworCisgICopCisgICAgQUNfQ0hFQ0tfRlVOQyhbc2hsX2xvYWRdLAorCSAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiXSwKKyAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0sIFtzaGxfbG9hZF0sCisJICAgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiXSwKKwlbQUNfQ0hFQ0tfRlVOQyhbZGxvcGVuXSwKKwkgICAgICBbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iXSwKKwkgIFtBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCisJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiXSwKKwkgICAgW0FDX0NIRUNLX0xJQihbc3ZsZF0sIFtkbG9wZW5dLAorCQkgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCJdLAorCSAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0sIFtkbGRfbGlua10sCisJCSAgICBbbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIl0pCisJICAgICAgXSkKKwkgICAgXSkKKwkgIF0pCisJXSkKKyAgICAgIF0pCisgICAgOzsKKyAgZXNhYworCisgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KKyAgICBlbmFibGVfZGxvcGVuPXllcworICBlbHNlCisgICAgZW5hYmxlX2Rsb3Blbj1ubworICBmaQorCisgIGNhc2UgJGx0X2N2X2Rsb3BlbiBpbgorICBkbG9wZW4pCisgICAgc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1ESEFWRV9ETEZDTl9IIgorCisgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCisKKyAgICBzYXZlX0xJQlM9IiRMSUJTIgorICAgIExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKKworICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisJICBsdF9jdl9kbG9wZW5fc2VsZiwgW2RubAorCSAgX0xUX1RSWV9ETE9QRU5fU0VMRigKKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLCBsdF9jdl9kbG9wZW5fc2VsZj15ZXMsCisJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vLCBsdF9jdl9kbG9wZW5fc2VsZj1jcm9zcykKKyAgICBdKQorCisgICAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW5fc2VsZiIgPSB4eWVzOyB0aGVuCisgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKKyAgICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMsIFtkbmwKKwkgIF9MVF9UUllfRExPUEVOX1NFTEYoCisJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsCisJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubywgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcykKKyAgICAgIF0pCisgICAgZmkKKworICAgIENQUEZMQUdTPSIkc2F2ZV9DUFBGTEFHUyIKKyAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorICAgIExJQlM9IiRzYXZlX0xJQlMiCisgICAgOzsKKyAgZXNhYworCisgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmIGluCisgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2VsZiA7OworICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93biA7OworICBlc2FjCisKKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIGluCisgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIDs7CisgICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93biA7OworICBlc2FjCitmaQorX0xUX0RFQ0woW2Rsb3Blbl9zdXBwb3J0XSwgW2VuYWJsZV9kbG9wZW5dLCBbMF0sCisJIFtXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWRdKQorX0xUX0RFQ0woW2Rsb3Blbl9zZWxmXSwgW2VuYWJsZV9kbG9wZW5fc2VsZl0sIFswXSwKKwkgW1doZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCitfTFRfREVDTChbZGxvcGVuX3NlbGZfc3RhdGljXSwgW2VuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWNdLCBbMF0sCisJIFtXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWRdKQorXSkjIExUX1NZU19ETE9QRU5fU0VMRgorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZdLCBbTFRfU1lTX0RMT1BFTl9TRUxGXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5fU0VMRl0sIFtdKQorCisKKyMgX0xUX0NPTVBJTEVSX0NfTyhbVEFHTkFNRV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayB0byBzZWUgaWYgb3B0aW9ucyAtYyBhbmQgLW8gYXJlIHNpbXVsdGFuZW91c2x5IHN1cHBvcnRlZCBieSBjb21waWxlci4KKyMgVGhpcyBtYWNybyBkb2VzIG5vdCBoYXJkIGNvZGUgdGhlIGNvbXBpbGVyIGxpa2UgQUNfUFJPR19DQ19DX08uCittNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0NfT10sCitbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCitBQ19DQUNIRV9DSEVDSyhbaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dF0sCisgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSldLAorICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPW5vCisgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKyAgIG1rZGlyIGNvbmZ0ZXN0CisgICBjZCBjb25mdGVzdAorICAgbWtkaXIgb3V0CisgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKworICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkbHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisgICBhY19zdGF0dXM9JD8KKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgIGVjaG8gIiRhc19tZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisgICB0aGVuCisgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKKyAgICAgZmkKKyAgIGZpCisgICBjaG1vZCB1K3cgLiAyPiZBU19NRVNTQUdFX0xPR19GRAorICAgJFJNIGNvbmZ0ZXN0KgorICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCisgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisgICBjZCAuLgorICAgJFJNIC1yIGNvbmZ0ZXN0CisgICAkUk0gY29uZnRlc3QqCitdKQorX0xUX1RBR0RFQ0woW2NvbXBpbGVyX2Nfb10sIFtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb10sIFsxXSwKKwlbRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zP10pCitdKSMgX0xUX0NPTVBJTEVSX0NfTworCisKKyMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCittNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1NdLAorW200X3JlcXVpcmUoW19MVF9FTkFCTEVfTE9DS10pZG5sCittNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK19MVF9DT01QSUxFUl9DX08oWyQxXSkKKworaGFyZF9saW5rcz0ibm90dGVzdGVkIgoraWYgdGVzdCAiJF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKyAgIyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCisgIEFDX01TR19DSEVDS0lORyhbaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzXSkKKyAgaGFyZF9saW5rcz15ZXMKKyAgJFJNIGNvbmZ0ZXN0KgorICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworICB0b3VjaCBjb25mdGVzdC5hCisgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKyAgQUNfTVNHX1JFU1VMVChbJGhhcmRfbGlua3NdKQorICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgorICAgIEFDX01TR19XQVJOKFtgJENDJyBkb2VzIG5vdCBzdXBwb3J0IGAtYyAtbycsIHNvIGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlXSkKKyAgICBuZWVkX2xvY2tzPXdhcm4KKyAgZmkKK2Vsc2UKKyAgbmVlZF9sb2Nrcz1ubworZmkKK19MVF9ERUNMKFtdLCBbbmVlZF9sb2Nrc10sIFsxXSwgW011c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uP10pCitdKSMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MKKworCisjIF9MVF9DSEVDS19PQkpESVIKKyMgLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9DSEVDS19PQkpESVJdLAorW0FDX0NBQ0hFX0NIRUNLKFtmb3Igb2JqZGlyXSwgW2x0X2N2X29iamRpcl0sCitbcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKK21rZGlyIC5saWJzIDI+L2Rldi9udWxsCitpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCisgIGx0X2N2X29iamRpcj0ubGlicworZWxzZQorICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMgdGhhdCBiZWdpbiB3aXRoIGEgZG90LgorICBsdF9jdl9vYmpkaXI9X2xpYnMKK2ZpCitybWRpciAubGlicyAyPi9kZXYvbnVsbF0pCitvYmpkaXI9JGx0X2N2X29iamRpcgorX0xUX0RFQ0woW10sIFtvYmpkaXJdLCBbMF0sCisgICAgICAgICBbVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzXSlkbmwKK200X3BhdHRlcm5fYWxsb3coW0xUX09CSkRJUl0pZG5sCitBQ19ERUZJTkVfVU5RVU9URUQoTFRfT0JKRElSLCAiJGx0X2N2X29iamRpci8iLAorICBbRGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5zdGFsbGVkIGxpYnJhcmllcy5dKQorXSkjIF9MVF9DSEVDS19PQkpESVIKKworCisjIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSChbVEFHTkFNRV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIGhhcmRjb2RpbmcgYXR0cmlidXRlcy4KK200X2RlZnVuKFtfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEhdLAorW0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtc10pCitfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPQoraWYgdGVzdCAtbiAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpIiB8fAorICAgdGVzdCAtbiAiJF9MVF9UQUdWQVIocnVucGF0aF92YXIsICQxKSIgfHwKKyAgIHRlc3QgIlgkX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKSIgPSAiWHllcyIgOyB0aGVuCisKKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgorICBpZiB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKSIgIT0gbm8gJiYKKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQorICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5CisgICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpIiAhPSBubyAmJgorICAgICB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSkiICE9IG5vOyB0aGVuCisgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KKyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPXJlbGluaworICBlbHNlCisgICAgIyBXZSBjYW4gbGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KKyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPWltbWVkaWF0ZQorICBmaQorZWxzZQorICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZworICAjIGRpcmVjdG9yaWVzLgorICBfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPXVuc3VwcG9ydGVkCitmaQorQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSldKQorCitpZiB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKSIgPSByZWxpbmsgfHwKKyAgIHRlc3QgIiRfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKSIgPSB5ZXM7IHRoZW4KKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5CisgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKK2ZpCitfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2FjdGlvbl0sIFswXSwKKyAgICBbSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGVdKQorXSkjIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSAorCisKKyMgX0xUX0NNRF9TVFJJUExJQgorIyAtLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX0NNRF9TVFJJUExJQl0sCitbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKQorc3RyaXBsaWI9CitvbGRfc3RyaXBsaWI9CitBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZV0pCitpZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwgJEdSRVAgIkdOVSBzdHJpcCIgPi9kZXYvbnVsbDsgdGhlbgorICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgorICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIKKyAgQUNfTVNHX1JFU1VMVChbeWVzXSkKK2Vsc2UKKyMgRklYTUUgLSBpbnNlcnQgc29tZSByZWFsIHRlc3RzLCBob3N0X29zIGlzbid0IHJlYWxseSBnb29kIGVub3VnaAorICBjYXNlICRob3N0X29zIGluCisgIGRhcndpbiopCisgICAgaWYgdGVzdCAtbiAiJFNUUklQIiA7IHRoZW4KKyAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgiCisgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKKyAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCisgICAgZWxzZQorICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorICAgIGZpCisgICAgOzsKKyAgKikKKyAgICBBQ19NU0dfUkVTVUxUKFtub10pCisgICAgOzsKKyAgZXNhYworZmkKK19MVF9ERUNMKFtdLCBbb2xkX3N0cmlwbGliXSwgWzFdLCBbQ29tbWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzXSkKK19MVF9ERUNMKFtdLCBbc3RyaXBsaWJdLCBbMV0pCitdKSMgX0xUX0NNRF9TVFJJUExJQgorCisKKyMgX0xUX1NZU19EWU5BTUlDX0xJTktFUihbVEFHXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MKK200X2RlZnVuKFtfTFRfU1lTX0RZTkFNSUNfTElOS0VSXSwKK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCittNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX09CSkRVTVBdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK0FDX01TR19DSEVDS0lORyhbZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzXSkKK200X2lmKFskMV0sCisJW10sIFsKK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7CisgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKKyAgZXNhYworICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAorICBpZiAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJzsnID4vZGV2L251bGwgOyB0aGVuCisgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgorICAgICMgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6IikgLSBpdCBpcworICAgICMgYXNzdW1lZCB0aGF0IG5vIHBhcnQgb2YgYSBub3JtYWwgcGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0IHNob3VsZAorICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgorICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKyAgZWxzZQorICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKyAgZmkKKyAgIyBPaywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCisgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPQorICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAorICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9wYXRoX3NwZWM7IGRvCisgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiOyB0aGVuCisgICAgICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIgorICAgIGVsc2UKKyAgICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAorCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgorICAgIGZpCisgIGRvbmUKKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIHwgYXdrICcKK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKKyAgbHRfZm9vPSIiOworICBsdF9jb3VudD0wOworICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgeworICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKyAgICAgIGlmICgkbHRfaSA9PSAiLi4iKSB7CisgICAgICAgIGx0X2NvdW50Kys7CisgICAgICB9IGVsc2UgeworICAgICAgICBpZiAobHRfY291bnQgPT0gMCkgeworICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9vOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGx0X2NvdW50LS07CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW1tsdF9mb29dXSsrOyB9CisgIGlmIChsdF9mcmVxW1tsdF9mb29dXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQorfSdgCisgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCitlbHNlCisgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKK2ZpXSkKK2xpYnJhcnlfbmFtZXNfc3BlYz0KK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCitzb25hbWVfc3BlYz0KK3NocmV4dF9jbWRzPSIuc28iCitwb3N0aW5zdGFsbF9jbWRzPQorcG9zdHVuaW5zdGFsbF9jbWRzPQorZmluaXNoX2NtZHM9CitmaW5pc2hfZXZhbD0KK3NobGlicGF0aF92YXI9CitzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgordmVyc2lvbl90eXBlPW5vbmUKK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgorbmVlZF9saWJfcHJlZml4PXVua25vd24KK2hhcmRjb2RlX2ludG9fbGlicz1ubworCisjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cworbmVlZF92ZXJzaW9uPXVua25vd24KKworY2FzZSAkaG9zdF9vcyBpbgorYWl4MyopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisKKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgorICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICA7OworCithaXhbWzQtOV1dKikKKyAgdmVyc2lvbl90eXBlPWxpbnV4CisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIGVsc2UKKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCisgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAorICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgorICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgYWl4NCB8IGFpeDQuW1swMV1dIHwgYWl4NC5bWzAxXV0uKikKKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCisJICAgZWNobyAnIHllcyAnCisJICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KKwk6CisgICAgICBlbHNlCisJY2FuX2J1aWxkX3NoYXJlZD1ubworICAgICAgZmkKKyAgICAgIDs7CisgICAgZXNhYworICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCisgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbworICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKKyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgIGVsc2UKKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCisgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJworICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgICBmaQorICAgIHNobGlicGF0aF92YXI9TElCUEFUSAorICBmaQorICA7OworCithbWlnYW9zKikKKyAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgcG93ZXJwYykKKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCisgICAgIyBXaGVuIGNvbXBpbGluZyB0aGUgZXhlY3V0YWJsZSwgYWRkIC11c2UtZHlubGQgLUxzb2JqczogdG8gdGhlIGNvbXBpbGVsaW5lLgorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgIDs7CisgIG02OGspCisgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFtbXi9dXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCisgICAgOzsKKyAgZXNhYworICA7OworCitiZW9zKikKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorICA7OworCitic2RpW1s0NV1dKikKKyAgdmVyc2lvbl90eXBlPWxpbnV4CisgIG5lZWRfdmVyc2lvbj1ubworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93CisgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFtcworICA7OworCitjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgIHZlcnNpb25fdHlwZT13aW5kb3dzCisgIHNocmV4dF9jbWRzPSIuZGxsIgorICBuZWVkX3ZlcnNpb249bm8KKyAgbmVlZF9saWJfcHJlZml4PW5vCisKKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCisgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCisgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgorICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgorICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+CisgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lfgorICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87CisgICAgICBmaScKKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KKyAgICAgICAkUk0gXCRkbHBhdGgnCisgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgIGN5Z3dpbiopCisgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgorICAgICAgOzsKKyAgICBtaW5ndyogfCBjZWdjYyopCisgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAorICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAorICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgWyRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5CisgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQorICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCisgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorICAgICAgZWxzZQorICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorICAgICAgZmkKKyAgICAgIDs7CisgICAgcHczMiopCisgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKKworICAqKQorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCisgICAgOzsKKyAgZXNhYworICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJworICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKyAgc2hsaWJwYXRoX3Zhcj1QQVRICisgIDs7CisKK2RhcndpbiogfCByaGFwc29keSopCisgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgorICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKyAgc2hyZXh0X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCittNF9pZihbJDFdLCBbXSxbCisgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiJdKQorICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL2xpYiAvdXNyL2xpYicKKyAgOzsKKworZGd1eCopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgOzsKKworZnJlZWJzZDEqKQorICBkeW5hbWljX2xpbmtlcj1ubworICA7OworCitmcmVlYnNkKiB8IGRyYWdvbmZseSopCisgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCisgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCisgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisgIGVsc2UKKyAgICBjYXNlICRob3N0X29zIGluCisgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OworICAgICopIG9iamZvcm1hdD1lbGYgOzsKKyAgICBlc2FjCisgIGZpCisgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisgICAgZnJlZWJzZC1lbGYqKQorICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgICAgICBuZWVkX3ZlcnNpb249bm8KKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworICAgICAgOzsKKyAgICBmcmVlYnNkLSopCisgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKKyAgICAgIDs7CisgIGVzYWMKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgY2FzZSAkaG9zdF9vcyBpbgorICBmcmVlYnNkMiopCisgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworICAgIDs7CisgIGZyZWVic2QzLltbMDFdXSogfCBmcmVlYnNkZWxmMy5bWzAxXV0qKQorICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgICAgOzsKKyAgZnJlZWJzZDMuW1syLTldXSogfCBmcmVlYnNkZWxmMy5bWzItOV1dKiB8IFwKKyAgZnJlZWJzZDQuW1swLTVdXSB8IGZyZWVic2RlbGY0LltbMC01XV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworICAgIDs7CisgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworICAgIDs7CisgIGVzYWMKKyAgOzsKKworZ251KikKKyAgdmVyc2lvbl90eXBlPWxpbnV4CisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIDs7CisKK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgorICB2ZXJzaW9uX3R5cGU9c3Vub3MKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBjYXNlICRob3N0X2NwdSBpbgorICBpYTY0KikKKyAgICBzaHJleHRfY21kcz0nLnNvJworICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKKyAgICBlbHNlCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCisgICAgZmkKKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisgICAgOzsKKyAgaHBwYSo2NCopCisgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworICAgIDs7CisgICopCisgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgorICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAorICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgICA7OworICBlc2FjCisgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKyAgOzsKKworaW50ZXJpeFtbMy05XV0qKQorICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgOzsKKworaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKyAgY2FzZSAkaG9zdF9vcyBpbgorICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKKyAgICAqKQorCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKwkJdmVyc2lvbl90eXBlPWxpbnV4CisJZWxzZQorCQl2ZXJzaW9uX3R5cGU9aXJpeAorCWZpIDs7CisgIGVzYWMKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9CisgICAgOzsKKyAgKikKKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECisgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikKKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQorICAgICAgbGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7CisgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCisgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OworICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9bmV2ZXItbWF0Y2g7OworICAgIGVzYWMKKyAgICA7OworICBlc2FjCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgOzsKKworIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgorbGludXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpjb2ZmKikKKyAgZHluYW1pY19saW5rZXI9bm8KKyAgOzsKKworIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgorbGludXgqIHwgaypic2QqLWdudSkKKyAgdmVyc2lvbl90eXBlPWxpbnV4CisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICAjIFNvbWUgYmludXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKKyAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisgIHNhdmVfbGliZGlyPSRsaWJkaXIKKyAgZXZhbCAibGliZGlyPS9mb287IHdsPVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpXCI7IFwKKyAgICAgICBMREZMQUdTPVwiXCRMREZMQUdTICRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKVwiIgorICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisgICAgW0FTX0lGKFsgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsXSwKKyAgICAgICBbc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllc10pXSkKKyAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisgIGxpYmRpcj0kc2F2ZV9saWJkaXIKKworICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKworICAjIEFkZCBBQkktc3BlY2lmaWMgZGlyZWN0b3JpZXMgdG8gdGhlIHN5c3RlbSBsaWJyYXJ5IHBhdGguCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgorCisgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCisgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXFskXTIpKTsgc2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFxbJF0wOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKyAgZmkKKworICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgorICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworICA7OworCituZXRic2QqKQorICB2ZXJzaW9uX3R5cGU9c3Vub3MKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisgICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCisgIGVsc2UKKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCisgIGZpCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworICA7OworCituZXdzb3M2KQorICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKyAgOzsKKworKm50byogfCAqcW54KikKKyAgdmVyc2lvbl90eXBlPXFueAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCisgIDs7CisKK29wZW5ic2QqKQorICB2ZXJzaW9uX3R5cGU9c3Vub3MKKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgorICBjYXNlICRob3N0X29zIGluCisgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OworICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKKyAgZXNhYworICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgb3BlbmJzZDIuW1s4OV1dIHwgb3BlbmJzZDIuW1s4OV1dLiopCisJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisJOzsKKyAgICAgICopCisJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworCTs7CisgICAgICBlc2FjCisgIGVsc2UKKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIGZpCisgIDs7CisKK29zMiopCisgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCisgIHNocmV4dF9jbWRzPSIuZGxsIgorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKyAgOzsKKworb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICB2ZXJzaW9uX3R5cGU9b3NmCisgIG5lZWRfbGliX3ByZWZpeD1ubworICBuZWVkX3ZlcnNpb249bm8KKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorICA7OworCityZG9zKikKKyAgZHluYW1pY19saW5rZXI9bm8KKyAgOzsKKworc29sYXJpcyopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKKyAgOzsKKworc3Vub3M0KikKKyAgdmVyc2lvbl90eXBlPXN1bm9zCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorICAgIG5lZWRfbGliX3ByZWZpeD1ubworICBmaQorICBuZWVkX3ZlcnNpb249eWVzCisgIDs7CisKK3N5c3Y0IHwgc3lzdjQuMyopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKyAgICBzbmkpCisgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKyAgICAgIDs7CisgICAgc2llbWVucykKKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworICAgICAgOzsKKyAgICBtb3Rvcm9sYSkKKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworICAgICAgbmVlZF92ZXJzaW9uPW5vCisgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCisgICAgICA7OworICBlc2FjCisgIDs7CisKK3N5c3Y0Kk1QKikKKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgorICAgIHZlcnNpb25fdHlwZT1saW51eAorICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCisgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKyAgZmkKKyAgOzsKKworc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJworICBlbHNlCisgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgc2NvMy4ydjUqKQorICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKKwk7OworICAgIGVzYWMKKyAgZmkKKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJworICA7OworCit0cGYqKQorICAjIFRQRiBpcyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3NzLWhvc3QgPSBHTlUvTGludXguCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworICA7OworCit1dHM0KikKKyAgdmVyc2lvbl90eXBlPWxpbnV4CisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICA7OworCisqKQorICBkeW5hbWljX2xpbmtlcj1ubworICA7OworZXNhYworQUNfTVNHX1JFU1VMVChbJGR5bmFtaWNfbGlua2VyXSkKK3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisKK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgorZmkKKworaWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorZmkKK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKK2ZpCisKK19MVF9ERUNMKFtdLCBbdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmtdLCBbMV0sCisgICAgW1ZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAorICAgIHJlc3RvcmVkIGF0IGxpbmsgdGltZV0pCitfTFRfREVDTChbXSwgW25lZWRfbGliX3ByZWZpeF0sIFswXSwKKyAgICBbRG8gd2UgbmVlZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzP10pCitfTFRfREVDTChbXSwgW25lZWRfdmVyc2lvbl0sIFswXSwgW0RvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/XSkKK19MVF9ERUNMKFtdLCBbdmVyc2lvbl90eXBlXSwgWzBdLCBbTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGVdKQorX0xUX0RFQ0woW10sIFtydW5wYXRoX3Zhcl0sIFswXSwgIFtTaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGVdKQorX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhfdmFyXSwgWzBdLFtTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlXSkKK19MVF9ERUNMKFtdLCBbc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoXSwgWzBdLAorICAgIFtJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/XSkKK19MVF9ERUNMKFtdLCBbbGlibmFtZV9zcGVjXSwgWzFdLCBbRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXhdKQorX0xUX0RFQ0woW10sIFtsaWJyYXJ5X25hbWVzX3NwZWNdLCBbMV0sCisgICAgW1tMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorICAgIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUVdXSkKK19MVF9ERUNMKFtdLCBbc29uYW1lX3NwZWNdLCBbMV0sCisgICAgW1tUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZV1dKQorX0xUX0RFQ0woW10sIFtwb3N0aW5zdGFsbF9jbWRzXSwgWzJdLAorICAgIFtDb21tYW5kIHRvIHVzZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCitfTFRfREVDTChbXSwgW3Bvc3R1bmluc3RhbGxfY21kc10sIFsyXSwKKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCitfTFRfREVDTChbXSwgW2ZpbmlzaF9jbWRzXSwgWzJdLAorICAgIFtDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnldKQorX0xUX0RFQ0woW10sIFtmaW5pc2hfZXZhbF0sIFsxXSwKKyAgICBbW0FzICJmaW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAorICAgIG5vdCBzaG93bl1dKQorX0xUX0RFQ0woW10sIFtoYXJkY29kZV9pbnRvX2xpYnNdLCBbMF0sCisgICAgW1doZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXNdKQorX0xUX0RFQ0woW10sIFtzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWNdLCBbMl0sCisgICAgW0NvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllc10pCitfTFRfREVDTChbXSwgW3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAorICAgIFtSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllc10pCitdKSMgX0xUX1NZU19EWU5BTUlDX0xJTktFUgorCisKKyMgX0xUX1BBVEhfVE9PTF9QUkVGSVgoVE9PTCkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJ5CitBQ19ERUZVTihbX0xUX1BBVEhfVE9PTF9QUkVGSVhdLAorW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKK0FDX01TR19DSEVDS0lORyhbZm9yICQxXSkKK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX01BR0lDX0NNRCwKK1tjYXNlICRNQUdJQ19DTUQgaW4KK1tbXFwvKl0gfCAgPzpbXFwvXSpdKQorICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7CisqKQorICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitkbmwgJGFjX2R1bW15IGZvcmNlcyBzcGxpdHRpbmcgb24gY29uc3RhbnQgdXNlci1zdXBwbGllZCBwYXRocy4KK2RubCBQT1NJWC4yIHdvcmQgc3BsaXR0aW5nIGlzIGRvbmUgb25seSBvbiB0aGUgb3V0cHV0IG9mIHdvcmQgZXhwYW5zaW9ucywKK2RubCBub3QgZXZlcnkgd29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5kaW5nIHNoIHNlY3VyaXR5IGhvbGUuCisgIGFjX2R1bW15PSJtNF9pZihbJDJdLCAsICRQQVRILCBbJDJdKSIKKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJDE7IHRoZW4KKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyLyQxIgorICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgorCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisJImZpbGVfbWFnaWMgIiopCisJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorCSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAorCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorCSAgICA6CisJICBlbHNlCisJICAgIGNhdCA8PF9MVF9FT0YgMT4mMgorCisqKiogV2FybmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAorKioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgorKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAorKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bworKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKKworX0xUX0VPRgorCSAgZmkgOzsKKwllc2FjCisgICAgICBmaQorICAgICAgYnJlYWsKKyAgICBmaQorICBkb25lCisgIElGUz0iJGx0X3NhdmVfaWZzIgorICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKyAgOzsKK2VzYWNdKQorTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCitpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgorICBBQ19NU0dfUkVTVUxUKCRNQUdJQ19DTUQpCitlbHNlCisgIEFDX01TR19SRVNVTFQobm8pCitmaQorX0xUX0RFQ0woW10sIFtNQUdJQ19DTURdLCBbMF0sCisJIFtVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zIHdpdGggImZpbGUiXSlkbmwKK10pIyBfTFRfUEFUSF9UT09MX1BSRUZJWAorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX1BBVEhfVE9PTF9QUkVGSVhdLCBbX0xUX1BBVEhfVE9PTF9QUkVGSVhdKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwgW10pCisKKworIyBfTFRfUEFUSF9NQUdJQworIyAtLS0tLS0tLS0tLS0tLQorIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQorbTRfZGVmdW4oW19MVF9QQVRIX01BR0lDXSwKK1tfTFRfUEFUSF9UT09MX1BSRUZJWCgke2FjX3Rvb2xfcHJlZml4fWZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCitpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCisgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgICBfTFRfUEFUSF9UT09MX1BSRUZJWChmaWxlLCAvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIKQorICBlbHNlCisgICAgTUFHSUNfQ01EPToKKyAgZmkKK2ZpCitdKSMgX0xUX1BBVEhfTUFHSUMKKworCisjIExUX1BBVEhfTEQKKyMgLS0tLS0tLS0tLQorIyBmaW5kIHRoZSBwYXRobmFtZSB0byB0aGUgR05VIG9yIG5vbi1HTlUgbGlua2VyCitBQ19ERUZVTihbTFRfUEFUSF9MRF0sCitbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCitBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCitBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKworQUNfQVJHX1dJVEgoW2dudS1sZF0sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ251LWxkXSwKKwlbYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIEA8OkBkZWZhdWx0PW5vQDo+QF0pXSwKKyAgICBbdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzXSwKKyAgICBbd2l0aF9nbnVfbGQ9bm9dKWRubAorCithY19wcm9nPWxkCitpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0aC4KKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgbGQgdXNlZCBieSAkQ0NdKQorICBjYXNlICRob3N0IGluCisgICotKi1taW5ndyopCisgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndworICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKyAgKikKKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CisgIGVzYWMKKyAgY2FzZSAkYWNfcHJvZyBpbgorICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgorICAgIFtbXFwvXV0qIHwgPzpbW1xcL11dKikKKyAgICAgIHJlX2RpcmVsdD0nL1tbXi9dXVtbXi9dXSovXC5cLi8nCisgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAorICAgICAgd2hpbGUgJEVDSE8gIiRhY19wcm9nIiB8ICRHUkVQICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbworCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAorICAgICAgZG9uZQorICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ciCisgICAgICA7OworICAiIikKKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KKyAgICBhY19wcm9nPWxkCisgICAgOzsKKyAgKikKKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgorICAgIDs7CisgIGVzYWMKK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBHTlUgbGRdKQorZWxzZQorICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBub24tR05VIGxkXSkKK2ZpCitBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9MRCwKK1tpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworICAgIElGUz0iJGx0X3NhdmVfaWZzIgorICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCisgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgorICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAorICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251bGxgIGluCisgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisJOzsKKyAgICAgICopCisJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKwk7OworICAgICAgZXNhYworICAgIGZpCisgIGRvbmUKKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCitlbHNlCisgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCitmaV0pCitMRD0iJGx0X2N2X3BhdGhfTEQiCitpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCisgIEFDX01TR19SRVNVTFQoJExEKQorZWxzZQorICBBQ19NU0dfUkVTVUxUKG5vKQorZmkKK3Rlc3QgLXogIiRMRCIgJiYgQUNfTVNHX0VSUk9SKFtubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSF0pCitfTFRfUEFUSF9MRF9HTlUKK0FDX1NVQlNUKFtMRF0pCisKK19MVF9UQUdERUNMKFtdLCBbTERdLCBbMV0sIFtUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzXSkKK10pIyBMVF9QQVRIX0xECisKKyMgT2xkIG5hbWVzOgorQVVfQUxJQVMoW0FNX1BST0dfTERdLCBbTFRfUEFUSF9MRF0pCitBVV9BTElBUyhbQUNfUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQU1fUFJPR19MRF0sIFtdKQorZG5sIEFDX0RFRlVOKFtBQ19QUk9HX0xEXSwgW10pCisKKworIyBfTFRfUEFUSF9MRF9HTlUKKyMtIC0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX1BBVEhfTERfR05VXSwKK1tBQ19DQUNIRV9DSEVDSyhbaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGRdLCBsdF9jdl9wcm9nX2dudV9sZCwKK1sjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCitjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKkdOVSogfCAqJ3dpdGggQkZEJyopCisgIGx0X2N2X3Byb2dfZ251X2xkPXllcworICA7OworKikKKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KKyAgOzsKK2VzYWNdKQord2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCitdKSMgX0xUX1BBVEhfTERfR05VCisKKworIyBfTFRfQ01EX1JFTE9BRAorIyAtLS0tLS0tLS0tLS0tLQorIyBmaW5kIHJlbG9hZCBmbGFnIGZvciBsaW5rZXIKKyMgICAtLSBQT1JUTUUgU29tZSBsaW5rZXJzIG1heSBuZWVkIGEgZGlmZmVyZW50IHJlbG9hZCBmbGFnLgorbTRfZGVmdW4oW19MVF9DTURfUkVMT0FEXSwKK1tBQ19DQUNIRV9DSEVDSyhbZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlc10sCisgIGx0X2N2X2xkX3JlbG9hZF9mbGFnLAorICBbbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJ10pCityZWxvYWRfZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2ZsYWcKK2Nhc2UgJHJlbG9hZF9mbGFnIGluCisiIiB8ICIgIiopIDs7CisqKSByZWxvYWRfZmxhZz0iICRyZWxvYWRfZmxhZyIgOzsKK2VzYWMKK3JlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKK2Nhc2UgJGhvc3Rfb3MgaW4KKyAgZGFyd2luKikKKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAgICAgcmVsb2FkX2NtZHM9JyRMVENDICRMVENGTEFHUyAtbm9zdGRsaWIgJHt3bH0tciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworICAgIGVsc2UKKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKyAgICBmaQorICAgIDs7Citlc2FjCitfTFRfREVDTChbXSwgW3JlbG9hZF9mbGFnXSwgWzFdLCBbSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlc10pZG5sCitfTFRfREVDTChbXSwgW3JlbG9hZF9jbWRzXSwgWzJdKWRubAorXSkjIF9MVF9DTURfUkVMT0FECisKKworIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgaG93IHRvIGNoZWNrIGZvciBsaWJyYXJ5IGRlcGVuZGVuY2llcworIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1pYyBsaWJyYXJ5IGNoYXJhY3RlcmlzdGljcworbTRfZGVmdW4oW19MVF9DSEVDS19NQUdJQ19NRVRIT0RdLAorW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKK200X3JlcXVpcmUoW19MVF9ERUNMX09CSkRVTVBdKQorQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllc10sCitsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCwKK1tsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NNRCcKK2x0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQorbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24nCisjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKKyMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2llcy4KKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBub3Qgc3VwcG9ydGVkLgorIyBgdW5rbm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0IGtub3cuCisjICdwYXNzX2FsbCcgLS0gYWxsIGRlcGVuZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCisjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNrIGJ5IG1ha2luZyB0ZXN0IHByb2dyYW0uCisjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRoCisjIHdoaWNoIHJlc3BvbmRzIHRvIHRoZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVkIHJlZ2V4LgorIyBJZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91J3JlIG5vdCBzdXJlCisjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMgb25lLgorCitjYXNlICRob3N0X29zIGluCithaXhbWzQtOV1dKikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworYmVvcyopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK2JzZGlbWzQ1XV0qKQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiknCisgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJworICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vc2hsaWIvbGliYy5zbworICA7OworCitjeWd3aW4qKQorICAjIGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFpbi5zaAorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJworICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKKyAgOzsKKworbWluZ3cqIHwgcHczMiopCisgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKKyAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCisgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCisgIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKKyAgZWxzZQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JworICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKyAgZmkKKyAgOzsKKworY2VnY2MpCisgICMgdXNlIHRoZSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyouCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlLWFybS0uKmxpdHRsZSguKmFyY2hpdGVjdHVyZTogYXJtKT8nCisgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKyAgOzsKKworZGFyd2luKiB8IHJoYXBzb2R5KikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworZnJlZWJzZCogfCBkcmFnb25mbHkqKQorICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KKyAgICBjYXNlICRob3N0X2NwdSBpbgorICAgIGkqODYgKQorICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCisgICAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoRnJlZUJTRHxPcGVuQlNEfERyYWdvbkZseSkvaVtbMy05XV04NiAoY29tcGFjdCApP2RlbWFuZCBwYWdlZCBzaGFyZWQgbGlicmFyeScKKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28uKmAKKyAgICAgIDs7CisgICAgZXNhYworICBlbHNlCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgZmkKKyAgOzsKKworZ251KikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworaHB1eDEwLjIwKiB8IGhwdXgxMSopCisgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKyAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgaWE2NCopCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAtOV1dW1swLTldXVtbMC05XV18RUxGLVtbMC05XV1bWzAtOV1dKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBJQTY0JworICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJjLnNvCisgICAgOzsKKyAgaHBwYSo2NCopCisgICAgW2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBQQS1SSVNDIFswLTldLlswLTldJ10KKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9wYTIwXzY0L2xpYmMuc2wKKyAgICA7OworICAqKQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfFBBLVJJU0NbWzAtOV1dLltbMC05XV0pIHNoYXJlZCBsaWJyYXJ5JworICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKKyAgICA7OworICBlc2FjCisgIDs7CisKK2ludGVyaXhbWzMtOV1dKikKKyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50ZXJpeCAzLngsIHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNcLmEgaGVyZQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfFwuYSkkJworICA7OworCitpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorICBjYXNlICRMRCBpbgorICAqLTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJpdDs7CisgICotbjMyfCoiLW4zMiAiKSBsaWJtYWdpYz1OMzI7OworICAqLTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7CisgICopIGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKyAgZXNhYworICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICA7OworCisjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCitsaW51eCogfCBrKmJzZCotZ251KQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICA7OworCituZXRic2QqKQorICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJworICBlbHNlCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xfcGljXC5hKSQnCisgIGZpCisgIDs7CisKK25ld29zNiopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChleGVjdXRhYmxlfGR5bmFtaWMgbGliKScKKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJubHMuc28KKyAgOzsKKworKm50byogfCAqcW54KikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworb3BlbmJzZCopCisgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8XC5zb3xfcGljXC5hKSQnCisgIGVsc2UKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJworICBmaQorICA7OworCitvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK3Jkb3MqKQorICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorICA7OworCitzb2xhcmlzKikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKworc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKK3N5c3Y0IHwgc3lzdjQuMyopCisgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisgIG1vdG9yb2xhKQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKSBNW1swLTldXVtbMC05XV0qIFZlcnNpb24gW1swLTldXScKKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKyAgICA7OworICBuY3IpCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgICA7OworICBzZXF1ZW50KQorICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIgKScKKyAgICA7OworICBzbmkpCisgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0iZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW0xNXV1TQiBkeW5hbWljIGxpYiIKKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKyAgICA7OworICBzaWVtZW5zKQorICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgICAgOzsKKyAgcGMpCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgICA7OworICBlc2FjCisgIDs7CisKK3RwZiopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7Citlc2FjCitdKQorZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21kCitkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QKK3Rlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgorCitfTFRfREVDTChbXSwgW2RlcGxpYnNfY2hlY2tfbWV0aG9kXSwgWzFdLAorICAgIFtNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0c10pCitfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNfY21kXSwgWzFdLAorICAgIFtDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09ICJmaWxlX21hZ2ljIl0pCitdKSMgX0xUX0NIRUNLX01BR0lDX01FVEhPRAorCisKKyMgTFRfUEFUSF9OTQorIyAtLS0tLS0tLS0tCisjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIGEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyCitBQ19ERUZVTihbTFRfUEFUSF9OTV0sCitbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCitBQ19DQUNIRV9DSEVDSyhbZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pXSwgbHRfY3ZfcGF0aF9OTSwKK1tpZiB0ZXN0IC1uICIkTk0iOyB0aGVuCisgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorICBsdF9jdl9wYXRoX05NPSIkTk0iCitlbHNlCisgIGx0X25tX3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4fW5tIgorICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiICYmIHRlc3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCisgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKKyAgZmkKKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7IGRvCisgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisgICAgZm9yIGFjX2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAvYmluOyBkbworICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisgICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorICAgICAgdG1wX25tPSIkYWNfZGlyLyRsdF90bXBfbm0iCisgICAgICBpZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVuCisJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZsYWcuCisJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2ggc2F5czoKKwkjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVkCisJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCisJY2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisJKi9kZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmplY3QgdHlwZScqKQorCSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKKwkgIGJyZWFrCisJICA7OworCSopCisJICBjYXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKwkgICovZGV2L251bGwqKQorCSAgICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgorCSAgICBicmVhaworCSAgICA7OworCSAgKikKKwkgICAgbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKKwkgICAgY29udGludWUgIyBzbyB0aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MKKwkgICAgOzsKKwkgIGVzYWMKKwkgIDs7CisJZXNhYworICAgICAgZmkKKyAgICBkb25lCisgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisgIGRvbmUKKyAgOiAke2x0X2N2X3BhdGhfTk09bm99CitmaV0pCitpZiB0ZXN0ICIkbHRfY3ZfcGF0aF9OTSIgIT0gIm5vIjsgdGhlbgorICBOTT0iJGx0X2N2X3BhdGhfTk0iCitlbHNlCisgICMgRGlkbid0IGZpbmQgYW55IEJTRCBjb21wYXRpYmxlIG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmluLgorICBBQ19DSEVDS19UT09MUyhEVU1QQklOLCBbImR1bXBiaW4gLXN5bWJvbHMiICJsaW5rIC1kdW1wIC1zeW1ib2xzIl0sIDopCisgIEFDX1NVQlNUKFtEVU1QQklOXSkKKyAgaWYgdGVzdCAiJERVTVBCSU4iICE9ICI6IjsgdGhlbgorICAgIE5NPSIkRFVNUEJJTiIKKyAgZmkKK2ZpCit0ZXN0IC16ICIkTk0iICYmIE5NPW5tCitBQ19TVUJTVChbTk1dKQorX0xUX0RFQ0woW10sIFtOTV0sIFsxXSwgW0EgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyXSlkbmwKKworQUNfQ0FDSEVfQ0hFQ0soW3RoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2VdLCBbbHRfY3Zfbm1faW50ZXJmYWNlXSwKKyAgW2x0X2N2X25tX2ludGVyZmFjZT0iQlNEIG5tIgorICBlY2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRhY19leHQKKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGFjX2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgKGV2YWwgIiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQpCisgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiBvdXRwdXRcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgY2F0IGNvbmZ0ZXN0Lm91dCA+JkFTX01FU1NBR0VfTE9HX0ZECisgIGlmICRHUkVQICdFeHRlcm5hbC4qc29tZV92YXJpYWJsZScgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCisgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgorICBmaQorICBybSAtZiBjb25mdGVzdCpdKQorXSkjIExUX1BBVEhfTk0KKworIyBPbGQgbmFtZXM6CitBVV9BTElBUyhbQU1fUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKK0FVX0FMSUFTKFtBQ19QUk9HX05NXSwgW0xUX1BBVEhfTk1dKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBTV9QUk9HX05NXSwgW10pCitkbmwgQUNfREVGVU4oW0FDX1BST0dfTk1dLCBbXSkKKworCisjIExUX0xJQl9NCisjIC0tLS0tLS0tCisjIGNoZWNrIGZvciBtYXRoIGxpYnJhcnkKK0FDX0RFRlVOKFtMVF9MSUJfTV0sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorTElCTT0KK2Nhc2UgJGhvc3QgaW4KKyotKi1iZW9zKiB8ICotKi1jeWd3aW4qIHwgKi0qLXB3MzIqIHwgKi0qLWRhcndpbiopCisgICMgVGhlc2Ugc3lzdGVtIGRvbid0IGhhdmUgbGlibSwgb3IgZG9uJ3QgbmVlZCBpdAorICA7OworKi1uY3Itc3lzdjQuMyopCisgIEFDX0NIRUNLX0xJQihtdywgX213dmFsaWRjaGVja2wsIExJQk09Ii1sbXciKQorICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJNPSIkTElCTSAtbG0iKQorICA7OworKikKKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0iLWxtIikKKyAgOzsKK2VzYWMKK0FDX1NVQlNUKFtMSUJNXSkKK10pIyBMVF9MSUJfTQorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX0NIRUNLX0xJQk1dLCBbTFRfTElCX01dKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19DSEVDS19MSUJNXSwgW10pCisKKworIyBfTFRfQ09NUElMRVJfTk9fUlRUSShbVEFHTkFNRV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfQ09NUElMRVJfTk9fUlRUSV0sCitbbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisKK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KKworaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJworCisgIF9MVF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwKKyAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucywKKyAgICBbLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9uc10sIFtdLAorICAgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9IiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyJdKQorZmkKK19MVF9UQUdERUNMKFtub19idWlsdGluX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWddLCBbMV0sCisJW0NvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnNdKQorXSkjIF9MVF9DT01QSUxFUl9OT19SVFRJCisKKworIyBfTFRfQ01EX0dMT0JBTF9TWU1CT0xTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSwKK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCitBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAorQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisKKyMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0uCitBQ19NU0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3RdKQorQUNfQ0FDSEVfVkFMKFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlXSwKK1sKKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgorIyBbVGhleSBjb21lIGZyb20gVWx0cml4LiAgV2hhdCBjb3VsZCBiZSBvbGRlciB0aGFuIFVsdHJpeD8hISA7KV0KKworIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorc3ltY29kZT0nW1tCQ0RFR1JTVF1dJworCisjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KK3N5bXBhdD0nXChbW19BLVphLXpdXVtbX0EtWmEtejAtOV1dKlwpJworCisjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgorY2FzZSAkaG9zdF9vcyBpbgorYWl4KikKKyAgc3ltY29kZT0nW1tCQ0RUXV0nCisgIDs7CitjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0nCisgIDs7CitocHV4KikKKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JTVF1dJworICBmaQorICA7OworaXJpeCogfCBub25zdG9wdXgqKQorICBzeW1jb2RlPSdbW0JDREVHUlNUXV0nCisgIDs7Citvc2YqKQorICBzeW1jb2RlPSdbW0JDREVHUVJTVF1dJworICA7Oworc29sYXJpcyopCisgIHN5bWNvZGU9J1tbQkRSVF1dJworICA7Oworc2NvMy4ydjUqKQorICBzeW1jb2RlPSdbW0RUXV0nCisgIDs7CitzeXN2NC4ydXcyKikKKyAgc3ltY29kZT0nW1tEVF1dJworICA7Oworc3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKyAgc3ltY29kZT0nW1tBQkRUXV0nCisgIDs7CitzeXN2NCkKKyAgc3ltY29kZT0nW1tERk5TVFVdXScKKyAgOzsKK2VzYWMKKworIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCitjYXNlIGAkTk0gLVYgMj4mMWAgaW4KKypHTlUqIHwgKid3aXRoIEJGRCcqKQorICBzeW1jb2RlPSdbW0FCQ0RHSVJTVFddXScgOzsKK2VzYWMKKworIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1ib2xzIGRpZmZlcmVudGx5LAorIyBzbyB1c2UgdGhpcyBnZW5lcmFsIGFwcHJvYWNoLgorbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKKworIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gc3ltYm9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCitsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgorbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChsaWJbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wibGliXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgorCisjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hhaW4KK29wdF9jcj0KK2Nhc2UgJGJ1aWxkX29zIGluCittaW5ndyopCisgIG9wdF9jcj1gJEVDSE8gJ3hcezAsMVx9JyB8IHRyIHggJ1wwMTUnYCAjIG9wdGlvbiBjciBpbiByZWdleHAKKyAgOzsKK2VzYWMKKworIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCitmb3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7IGRvCisKKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KKyAgc3lteGZybT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKworICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmllcnMuCisgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIk1TIGR1bXBiaW4iOyB0aGVuCisgICAgIyBGYWtlIGl0IGZvciBkdW1wYmluIGFuZCBzYXkgVCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24KKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxlLgorICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBzeW1ib2xzIGZyb20gTVNWQysrLAorICAgICMgd2hpY2ggc3RhcnQgd2l0aCBAIG9yID8uCisgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJEFXSyBbJyJcCisiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNlY3Rpb249XCQgM307IlwKKyIgICAgIC9TZWN0aW9uIGxlbmd0aCAuKiNyZWxvY3MuKihwaWNrIGFueSkve2hpZGVbbGFzdF9zZWN0aW9uXT0xfTsiXAorIiAgICAgXCQgMCF+L0V4dGVybmFsICpcfC97bmV4dH07IlwKKyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSooKS97bmV4dH07IlwKKyIgICAgIHtpZihoaWRlW3NlY3Rpb25dKSBuZXh0fTsiXAorIiAgICAge2Y9MH07IFwkIDB+L1woXCkuKlx8L3tmPTF9OyB7cHJpbnRmIGYgPyBcIlQgXCIgOiBcIkQgXCJ9OyJcCisiICAgICB7c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAorIiAgICAgc1sxXX4vXltAP10ve3ByaW50IHNbMV0sIHNbMV07IG5leHR9OyJcCisiICAgICBzWzFdfnByZngge3NwbGl0KHNbMV0sdCxcIkBcIik7IHByaW50IHRbMV0sIHN1YnN0cih0WzFdLGxlbmd0aChwcmZ4KSl9IlwKKyIgICAgICcgcHJmeD1eJGFjX3N5bXByZnhdIgorICBlbHNlCisgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKltbCSBdXVwoJHN5bWNvZGUkc3ltY29kZSpcKVtbCSBdXVtbCSBdXSokYWNfc3ltcHJmeCRzeW1wYXQkb3B0X2NyJC8kc3lteGZybS9wJyIKKyAgZmkKKworICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KKyAgcGlwZV93b3Jrcz1ubworCisgIHJtIC1mIGNvbmZ0ZXN0KgorICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorY2hhciBubV90ZXN0X3ZhcjsKK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpOwordm9pZCBubV90ZXN0X2Z1bmModm9pZCl7fQorI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKK2ludCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9CitfTFRfRU9GCisKKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KKyAgICBubGlzdD1jb25mdGVzdC5ubQorICAgIGlmIEFDX1RSWV9FVkFMKE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0KSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCisgICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgorICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KKwltdiAtZiAiJG5saXN0IlQgIiRubGlzdCIKKyAgICAgIGVsc2UKKwlybSAtZiAiJG5saXN0IlQKKyAgICAgIGZpCisKKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KKyAgICAgIGlmICRHUkVQICcgbm1fdGVzdF92YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCisJaWYgJEdSRVAgJyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCisJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitfTFRfRU9GCisJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisJICBldmFsICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0JworCisJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKKworLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLworY29uc3Qgc3RydWN0IHsKKyAgY29uc3QgY2hhciAqbmFtZTsKKyAgdm9pZCAgICAgICAqYWRkcmVzczsKK30KK2x0X19QUk9HUkFNX19MVFhfcHJlbG9hZGVkX3N5bWJvbHNbW11dID0KK3sKKyAgeyAiQFBST0dSQU1AIiwgKHZvaWQgKikgMCB9LAorX0xUX0VPRgorCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0CisJICBjYXQgPDxcX0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisgIHswLCAodm9pZCAqKSAwfQorfTsKKworLyogVGhpcyB3b3JrcyBhcm91bmQgYSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCisjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECitzdGF0aWMgY29uc3Qgdm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgeworICByZXR1cm4gbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sczsKK30KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorX0xUX0VPRgorCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KKwkgIG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0uJGFjX29iamV4dAorCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorCSAgTElCUz0iY29uZnRzdG0uJGFjX29iamV4dCIKKwkgIENGTEFHUz0iJENGTEFHUyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkiCisJICBpZiBBQ19UUllfRVZBTChhY19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisJICAgIHBpcGVfd29ya3M9eWVzCisJICBmaQorCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKwkgIENGTEFHUz0iJGx0X3NhdmVfQ0ZMQUdTIgorCWVsc2UKKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKwlmaQorICAgICAgZWxzZQorCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgZmkKKyAgICBlbHNlCisgICAgICBlY2hvICJjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgZmkKKyAgZWxzZQorICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorICBmaQorICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCisKKyAgIyBEbyBub3QgdXNlIHRoZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgorICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KKyAgICBicmVhaworICBlbHNlCisgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KKyAgZmkKK2RvbmUKK10pCitpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9CitmaQoraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiOyB0aGVuCisgIEFDX01TR19SRVNVTFQoZmFpbGVkKQorZWxzZQorICBBQ19NU0dfUkVTVUxUKG9rKQorZmkKKworX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfcGlwZV0sIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlXSwgWzFdLAorICAgIFtUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzXSkKK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgWzFdLAorICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uXSkKK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzXSwKKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLCBbMV0sCisgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcl0pCitfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4XSwKKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sIFsxXSwKKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyIHdoZW4gbGliIHByZWZpeCBpcyBuZWVkZWRdKQorXSkgIyBfTFRfQ01EX0dMT0JBTF9TWU1CT0xTCisKKworIyBfTFRfQ09NUElMRVJfUElDKFtUQUdOQU1FXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX0NPTVBJTEVSX1BJQ10sCitbbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCitfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0KK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KKworQUNfTVNHX0NIRUNLSU5HKFtmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQ10pCittNF9pZihbJDFdLCBbQ1hYXSwgWworICAjIEMrKyBzcGVjaWZpYyBjYXNlcyBmb3IgcGljLCBzdGF0aWMsIHdsLCBldGMuCisgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgIGFpeCopCisgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCisgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIGZpCisgICAgICA7OworCisgICAgYW1pZ2FvcyopCisgICAgICBjYXNlICRob3N0X2NwdSBpbgorICAgICAgcG93ZXJwYykKKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisgICAgICAgIDs7CisgICAgICBtNjhrKQorICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCisgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgorICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisgICAgICAgIDs7CisgICAgICBlc2FjCisgICAgICA7OworCisgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisgICAgICA7OworICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCisgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKyAgICAgIG00X2lmKFskMV0sIFtHQ0pdLCBbXSwKKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKyAgICAgIDs7CisgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZuby1jb21tb24nCisgICAgICA7OworICAgICpkamdwcCopCisgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KKyAgICAgIDs7CisgICAgaW50ZXJpeFtbMy05XV0qKQorICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorICAgICAgOzsKKyAgICBzeXN2NCpNUCopCisgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPS1LY29uZm9ybV9waWMKKyAgICAgIGZpCisgICAgICA7OworICAgIGhwdXgqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0CisgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcuCisgICAgICBjYXNlICRob3N0X2NwdSBpbgorICAgICAgaHBwYSo2NCopCisJOzsKKyAgICAgICopCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKwk7OworICAgICAgZXNhYworICAgICAgOzsKKyAgICAqcW54KiB8ICpudG8qKQorICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKKyAgICAgIDs7CisgICAgKikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisgICAgICA7OworICAgIGVzYWMKKyAgZWxzZQorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIGFpeFtbNC05XV0qKQorCSMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJZWxzZQorCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisJZmkKKwk7OworICAgICAgY2hvcnVzKikKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCWN4Y2g2OCopCisJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorCSAgIyBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKKwkgIDs7CisJZXNhYworCTs7CisgICAgICBkZ3V4KikKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCSAgZWMrKyopCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisJICAgIDs7CisJICBnaGN4KikKKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworCSAgICA7OworCSAgKikKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKwkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCisJOzsKKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJICBDQyopCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworCSAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJworCSAgICBmaQorCSAgICA7OworCSAgYUNDKikKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisJICAgIGNhc2UgJGhvc3RfY3B1IGluCisJICAgIGhwcGEqNjQqfGlhNjQqKQorCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKKwkgICAgICA7OworCSAgICAqKQorCSAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgICA7OworCSAgKikKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgIGludGVyaXgqKQorCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3VhbCBDKysgKG5vIHNoYXJlZCBsaWJzKQorCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKwk7OworICAgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCSAgQ0MqKQorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUgZGVmYXVsdC4KKwkgICAgOzsKKwkgICopCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICBsaW51eCogfCBrKmJzZCotZ251KQorCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJICBLQ0MqKQorCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy0tYmFja2VuZCAtV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworCSAgICA7OworCSAgZWNwYyogKQorCSAgICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisJICAgIDs7CisJICBpY3BjKiApCisJICAgICMgSW50ZWwgQysrLCB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KKwkgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisJICAgIDs7CisJICBwZ0NDKiB8IHBnY3BwKikKKwkgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJICAgIDs7CisJICBjeHgqKQorCSAgICAjIENvbXBhcSBDKysKKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKwkgICAgOzsKKwkgIHhsYyogfCB4bEMqKQorCSAgICAjIElCTSBYTCA4LjAgb24gUFBDCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xcGljJworCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1xc3RhdGljbGluaycKKwkgICAgOzsKKwkgICopCisJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorCSAgICAqU3VuXCBDKikKKwkgICAgICAjIFN1biBDKysgNS45CisJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworCSAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCisJICAgICAgOzsKKwkgICAgZXNhYworCSAgICA7OworCWVzYWMKKwk7OworICAgICAgbHlueG9zKikKKwk7OworICAgICAgbTg4ayopCisJOzsKKyAgICAgIG12cyopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIGN4eCopCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVcgYyxleHBvcnRhbGwnCisJICAgIDs7CisJICAqKQorCSAgICA7OworCWVzYWMKKwk7OworICAgICAgbmV0YnNkKikKKwk7OworICAgICAgKnFueCogfCAqbnRvKikKKyAgICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKyAgICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisgICAgICAgIDs7CisgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIEtDQyopCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKKwkgICAgOzsKKwkgIFJDQyopCisJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKKwkgICAgOzsKKwkgIGN4eCopCisJICAgICMgRGlnaXRhbC9Db21wYXEgQysrCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworCSAgICA7OworCSAgKikKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgIHBzb3MqKQorCTs7CisgICAgICBzb2xhcmlzKikKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCSAgQ0MqKQorCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCisJICAgIDs7CisJICBnY3gqKQorCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCisJICAgIDs7CisJICAqKQorCSAgICA7OworCWVzYWMKKwk7OworICAgICAgc3Vub3M0KikKKwljYXNlICRjY19iYXNlbmFtZSBpbgorCSAgQ0MqKQorCSAgICAjIFN1biBDKysgNC54CisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKwkgICAgOzsKKwkgIGxjYyopCisJICAgICMgTHVjaWQKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworCSAgICA7OworCSAgKikKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIENDKikKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICB0YW5kZW0qKQorCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisJICBOQ0MqKQorCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKwkgICAgOzsKKwkgICopCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICB2eHdvcmtzKikKKwk7OworICAgICAgKikKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCisJOzsKKyAgICBlc2FjCisgIGZpCitdLAorWworICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKworICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIGFpeCopCisgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCisgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIGZpCisgICAgICA7OworCisgICAgYW1pZ2FvcyopCisgICAgICBjYXNlICRob3N0X2NwdSBpbgorICAgICAgcG93ZXJwYykKKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisgICAgICAgIDs7CisgICAgICBtNjhrKQorICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCisgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgorICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisgICAgICAgIDs7CisgICAgICBlc2FjCisgICAgICA7OworCisgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisgICAgICA7OworCisgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcworICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQorICAgICAgOzsKKworICAgIGRhcndpbiogfCByaGFwc29keSopCisgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworICAgICAgOzsKKworICAgIGhwdXgqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0CisgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcuCisgICAgICBjYXNlICRob3N0X2NwdSBpbgorICAgICAgaHBwYSo2NCopCisJIyArWiB0aGUgZGVmYXVsdAorCTs7CisgICAgICAqKQorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisJOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisKKyAgICBpbnRlcml4W1szLTldXSopCisgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisgICAgICA7OworCisgICAgbXNkb3NkamdwcCopCisgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcworICAgICAgIyBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworICAgICAgZW5hYmxlX3NoYXJlZD1ubworICAgICAgOzsKKworICAgICpudG8qIHwgKnFueCopCisgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJworICAgICAgOzsKKworICAgIHN5c3Y0Kk1QKikKKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9LUtjb25mb3JtX3BpYworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICAqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKyAgICAgIDs7CisgICAgZXNhYworICBlbHNlCisgICAgIyBQT1JUTUUgQ2hlY2sgZm9yIGZsYWcgdG8gcGFzcyBsaW5rZXIgZmxhZ3MgdGhyb3VnaCB0aGUgc3lzdGVtIGNvbXBpbGVyLgorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBhaXgqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKyAgICAgIGZpCisgICAgICA7OworCisgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCisJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLURETExfRVhQT1JUJ10pCisgICAgICA7OworCisgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAorICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgorICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgIGhwcGEqNjQqfGlhNjQqKQorCSMgK1ogdGhlIGRlZmF1bHQKKwk7OworICAgICAgKikKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJworCTs7CisgICAgICBlc2FjCisgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisgICAgICA7OworCisgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworICAgICAgIyBQSUMgKHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKyAgICAgIDs7CisKKyAgICBsaW51eCogfCBrKmJzZCotZ251KQorICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICMgb2xkIEludGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgorICAgICAgZWNjKikKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKyAgICAgICAgOzsKKyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgorICAgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCisgICAgICBpY2MqIHwgaWZvcnQqKQorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworICAgICAgICA7OworICAgICAgIyBMYWhleSBGb3J0cmFuIDguMS4KKyAgICAgIGxmOTUqKQorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLS1zaGFyZWQnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctLXN0YXRpYycKKwk7OworICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCisgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCisJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mcGljJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICAgIDs7CisgICAgICBjY2MqKQorICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCisgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisgICAgICAgIDs7CisgICAgICB4bCopCisJIyBJQk0gWEwgQyA4LjAvRm9ydHJhbiAxMC4xIG9uIFBQQworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFwaWMnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCisJOzsKKyAgICAgICopCisJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisJKlN1blwgQyopCisJICAjIFN1biBDIDUuOQorCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKwkgIDs7CisJKlN1blwgRiopCisJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCisJICA7OworCWVzYWMKKwk7OworICAgICAgZXNhYworICAgICAgOzsKKworICAgIG5ld3NvczYpCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIDs7CisKKyAgICAqbnRvKiB8ICpxbngqKQorICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKKyAgICAgIDs7CisKKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKyAgICAgIDs7CisKKyAgICByZG9zKikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisgICAgICA7OworCisgICAgc29sYXJpcyopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICBmNzcqIHwgZjkwKiB8IGY5NSopCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OworICAgICAgKikKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCc7OworICAgICAgZXNhYworICAgICAgOzsKKworICAgIHN1bm9zNCopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIDs7CisKKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworICAgICAgOzsKKworICAgIHN5c3Y0Kk1QKikKKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LY29uZm9ybV9waWMnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIGZpCisgICAgICA7OworCisgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisgICAgICA7OworCisgICAgdW5pY29zKikKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworICAgICAgOzsKKworICAgIHV0czQqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKyAgICAgIDs7CisKKyAgICAqKQorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworICAgICAgOzsKKyAgICBlc2FjCisgIGZpCitdKQorY2FzZSAkaG9zdF9vcyBpbgorICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKKyAgKmRqZ3BwKikKKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisgICAgOzsKKyAgKikKKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9IiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSlAJnRAbTRfaWYoWyQxXSxbXSxbIC1EUElDXSxbbTRfaWYoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKSIKKyAgICA7OworZXNhYworQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKV0pCitfTFRfVEFHREVDTChbd2xdLCBbbHRfcHJvZ19jb21waWxlcl93bF0sIFsxXSwKKwlbSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlcl0pCisKKyMKKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKyMKK2lmIHRlc3QgLW4gIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkiOyB0aGVuCisgIF9MVF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBQSUMgZmxhZyAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtzXSwKKyAgICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcywgJDEpXSwKKyAgICBbJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pXSwgW10sCisgICAgW2Nhc2UgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSBpbgorICAgICAiIiB8ICIgIiopIDs7CisgICAgICopIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0iICRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkiIDs7CisgICAgIGVzYWNdLAorICAgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm9dKQorZmkKK19MVF9UQUdERUNMKFtwaWNfZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVyX3BpY10sIFsxXSwKKwlbQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzXSkKKworIworIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorIword2w9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKVwiCitfTFRfTElOS0VSX09QVElPTihbaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3NdLAorICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzLCAkMSksCisgICRsdF90bXBfc3RhdGljX2ZsYWcsCisgIFtdLAorICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPV0pCitfTFRfVEFHREVDTChbbGlua19zdGF0aWNfZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY10sIFsxXSwKKwlbQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZ10pCitdKSMgX0xUX0NPTVBJTEVSX1BJQworCisKKyMgX0xUX0xJTktFUl9TSExJQlMoW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNlZSBpZiB0aGUgbGlua2VyIHN1cHBvcnRzIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCittNF9kZWZ1bihbX0xUX0xJTktFUl9TSExJQlNdLAorW0FDX1JFUVVJUkUoW0xUX1BBVEhfTERdKWRubAorQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCittNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwKK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorbTRfaWYoWyQxXSwgW0NYWF0sIFsKKyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgY2FzZSAkaG9zdF9vcyBpbgorICBhaXhbWzQtOV1dKikKKyAgICAjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisgICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKyAgICBlbHNlCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKyAgICBmaQorICAgIDs7CisgIHB3MzIqKQorICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSIkbHRkbGxfY21kcyIKKyAgOzsKKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLzsvXi4qW1sgXV1fX25tX18vcy9eLipbWyBdXV9fbm1fX1woW1teIF1dKlwpW1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtbIF1dL2Q7L15bW0FJVFddXVtbIF1dL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisgIDs7CisgICopCisgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgOzsKKyAgZXNhYworICBfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJ10KK10sIFsKKyAgcnVucGF0aF92YXI9CisgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKyAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPQorICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKyAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubworICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubworICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAorICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubworICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCisgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KKyAgX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKyAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9CisgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKT0KKyAgX0xUX1RBR1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKT0KKyAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCisgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0CisgIF9MVF9UQUdWQVIoaW5jbHVkZV9leHBzeW1zLCAkMSk9CisgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCisgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAorICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KKyAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKiddCisgICMgQWx0aG91Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBhLm91dAorICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKKyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisgICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgorICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgorICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCitkbmwgTm90ZSBhbHNvIGFkanVzdCBleGNsdWRlX2V4cHN5bXMgZm9yIEMrKyBhYm92ZS4KKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisKKyAgY2FzZSAkaG9zdF9vcyBpbgorICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKyAgICAgIHdpdGhfZ251X2xkPW5vCisgICAgZmkKKyAgICA7OworICBpbnRlcml4KikKKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQorICAgIHdpdGhfZ251X2xkPXllcworICAgIDs7CisgIG9wZW5ic2QqKQorICAgIHdpdGhfZ251X2xkPW5vCisgICAgOzsKKyAgZXNhYworCisgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorICAgIHdsYXJjPScke3dsfScKKworICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCisgICAgIyBhcmUgcmVzZXQgbGF0ZXIgaWYgc2hhcmVkIGxpYnJhcmllcyBhcmUgbm90IHN1cHBvcnRlZC4gUHV0dGluZyB0aGVtCisgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgorICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworICAgIGVsc2UKKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKyAgICBmaQorICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubworICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorICAgICAgKlwgW1swMV1dLiogfCAqXCAyLltbMC05XV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCisgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCisgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucworICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworICAgIGVzYWMKKworICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBhaXhbWzMtOV1dKikKKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwljYXQgPDxfTFRfRU9GIDE+JjIKKworKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAorKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKKyoqKiBzbyB0aGF0IGEgbm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisKK19MVF9FT0YKKyAgICAgIGZpCisgICAgICA7OworCisgICAgYW1pZ2FvcyopCisgICAgICBjYXNlICRob3N0X2NwdSBpbgorICAgICAgcG93ZXJwYykKKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKyAgICAgICAgOzsKKyAgICAgIG02OGspCisgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworICAgICAgICA7OworICAgICAgZXNhYworICAgICAgOzsKKworICAgIGJlb3MqKQorICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorCSMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKKwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgIGZpCisgICAgICA7OworCisgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKyAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKworICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisJIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKwllbHNlCisJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisJZml+CisJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBpbnRlcml4W1szLTldXSopCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQorICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluaworICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisgICAgICA7OworCisgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251KQorICAgICAgdG1wX2RpZXQ9bm8KKyAgICAgIGlmIHRlc3QgIiRob3N0X29zIiA9IGxpbnV4LWRpZXRsaWJjOyB0aGVuCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwkgIGRpZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGludXgtZGlldGxpYmMgd2l0aCBzdGF0aWMgbGlua2luZyAoIWRpZXQtZHluKQorCWVzYWMKKyAgICAgIGZpCisgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbCBcCisJICYmIHRlc3QgIiR0bXBfZGlldCIgPSBubworICAgICAgdGhlbgorCXRtcF9hZGRmbGFnPQorCXRtcF9zaGFyZWRmbGFnPSctc2hhcmVkJworCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorICAgICAgICBwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJworCSAgOzsKKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OworCWVjYyosaWE2NCogfCBpY2MqLGlhNjQqKQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAorCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworCWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBpYTY0CisJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7CisJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKKwkgIHRtcF9hZGRmbGFnPScgLW5vZm9yX21haW4nIDs7CisJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEKKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKwkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKKwl4bFtbY0NdXSopCQkJIyBJQk0gWEwgQyA4LjAgb24gUFBDIChkZWFsIHdpdGggeGxmIGJlbG93KQorCSAgdG1wX3NoYXJlZGZsYWc9Jy1xbWtzaHJvYmonCisJICB0bXBfYWRkZmxhZz0gOzsKKwllc2FjCisJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcworCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCisJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CisJZXNhYworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisKKyAgICAgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgorICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisJICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorCSAgICAkQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworICAgICAgICBmaQorCisJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKwl4bGYqKQorCSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3JlYXRlIHNoYXJlZCBsaWJzIGl0c2VsZgorCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSctLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgLS1uby13aG9sZS1hcmNoaXZlJworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nLXJwYXRoICRsaWJkaXInCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC1vICRsaWInCisJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorCSAgICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkgICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12ZXJzaW9uLXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKwkgIGZpCisJICA7OworCWVzYWMKKyAgICAgIGVsc2UKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBuZXRic2QqKQorICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJworCXdsYXJjPQorICAgICAgZWxzZQorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKyAgICAgIGZpCisgICAgICA7OworCisgICAgc29sYXJpcyopCisgICAgICBpZiAkTEQgLXYgMj4mMSB8ICRHUkVQICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4KKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJY2F0IDw8X0xUX0VPRiAxPiYyCisKKyoqKiBXYXJuaW5nOiBUaGUgcmVsZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5CisqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorCitfTFRfRU9GCisgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQorICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisgICAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjFbWzAtNV1dLiopCisJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCWNhdCA8PF9MVF9FT0YgMT4mMgorCisqKiogV2FybmluZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2FuIG5vdAorKioqIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorCitfTFRfRU9GCisJOzsKKwkqKQorCSAgIyBGb3Igc2VjdXJpdHkgcmVhc29ucywgaXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5cworCSAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKKwkgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCisJICAjIHJlcXVpcmVzIHRoYXQgeW91IGNvbXBpbGUgZXZlcnl0aGluZyB0d2ljZSwgd2hpY2ggaXMgYSBwYWluLgorCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCSAgZWxzZQorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICBmaQorCTs7CisgICAgICBlc2FjCisgICAgICA7OworCisgICAgc3Vub3M0KikKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisgICAgICB3bGFyYz0KKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgOzsKKworICAgICopCisgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgIGZpCisgICAgICA7OworICAgIGVzYWMKKworICAgIGlmIHRlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vOyB0aGVuCisgICAgICBydW5wYXRoX3Zhcj0KKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKyAgICBmaQorICBlbHNlCisgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBhaXgzKikKKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckTEQgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCisgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKwkjIGJyb2tlbiBjb2xsZWN0Mi4KKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisgICAgICBmaQorICAgICAgOzsKKworICAgIGFpeFtbNC05XV0qKQorICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisJbm9fZW50cnlfZmxhZz0iIgorICAgICAgZWxzZQorCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKwlpZiAkTk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworCWVsc2UKKwkgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworCWZpCisJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworCisJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCisJIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKwljYXNlICRob3N0X29zIGluIGFpeDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCisJICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KKwkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCisJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisJICAgIGJyZWFrCisJICBmaQorCSAgZG9uZQorCSAgOzsKKwllc2FjCisKKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JworCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKyAgICAgIGZpCisKKyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKworICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3dsfS1mLCcKKworICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwljYXNlICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxhaXg0LltbMDEyXV0uKikKKwkjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCisJICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKwkgIHRoZW4KKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorCSAgOgorCSAgZWxzZQorCSAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgorCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAorCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAorCSAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisJICBmaQorCSAgOzsKKwllc2FjCisJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKwlmaQorICAgICAgZWxzZQorCSMgbm90IHVzaW5nIGdjYworCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorCSAgc2hhcmVkX2ZsYWc9Jy1HJworCWVsc2UKKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKKwkgIGVsc2UKKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKwkgIGZpCisJZmkKKyAgICAgIGZpCisKKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJleHBhbGwnCisgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCisgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCisJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9rJworICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKyAgICAgICAgIyBlbXB0eSBleGVjdXRhYmxlLgorICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorICAgICAgZWxzZQorCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCisJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorCWVsc2UKKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisJICMgZW1wdHkgZXhlY3V0YWJsZS4KKwkgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKwkgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAorCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorCSAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2snCisJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJvaycKKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCisJICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKwlmaQorICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBhbWlnYW9zKikKKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisgICAgICBwb3dlcnBjKQorICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJworICAgICAgICA7OworICAgICAgbTY4aykKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCisgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisgICAgICAgIDs7CisgICAgICBlc2FjCisgICAgICA7OworCisgICAgYnNkaVtbNDVdXSopCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPS1yZHluYW1pYworICAgICAgOzsKKworICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKyAgICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcworICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScgJworICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorICAgICAgbGliZXh0PWxpYgorICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisgICAgICBzaHJleHRfY21kcz0iLmRsbCIKKyAgICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JworICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KKyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPSd0cnVlJworICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCisgICAgICBfTFRfVEFHVkFSKGZpeF9zcmNmaWxlX3BhdGgsICQxKT0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCisgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKyAgICAgIDs7CisKKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCisgICAgICA7OworCisgICAgZGd1eCopCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICBmcmVlYnNkMSopCisgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICA7OworCisgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAubyB0byBnZXQgQysrIGNvbnN0cnVjdG9yCisgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCisgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCisgICAgIyBleHRyYSBzcGFjZSkuCisgICAgZnJlZWJzZDIuMiopCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgOzsKKworICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KKyAgICBmcmVlYnNkMiopCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCisgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICA7OworCisgICAgaHB1eDkqKQorICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworICAgICAgZWxzZQorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworICAgICAgZmkKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisKKyAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKyAgICAgIDs7CisKKyAgICBocHV4MTAqKQorICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9JytiICRsaWJkaXInCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworCSMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisJX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisgICAgICBmaQorICAgICAgOzsKKworICAgIGhwdXgxMSopCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisJY2FzZSAkaG9zdF9jcHUgaW4KKwlocHBhKjY0KikKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgOzsKKwlpYTY0KikKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgOzsKKwkqKQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIDs7CisJZXNhYworICAgICAgZWxzZQorCWNhc2UgJGhvc3RfY3B1IGluCisJaHBwYSo2NCopCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICA7OworCWlhNjQqKQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgOzsKKwkqKQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICA7OworCWVzYWMKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorCisJY2FzZSAkaG9zdF9jcHUgaW4KKwlocHBhKjY0KnxpYTY0KikKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisJICA7OworCSopCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisKKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisJICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworCSAgOzsKKwllc2FjCisgICAgICBmaQorICAgICAgOzsKKworICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAorCSMgd29yaywgYXNzdW1lIHRoYXQgLWV4cG9ydHNfZmlsZSBkb2VzIG5vdCB3b3JrIGVpdGhlciBhbmQKKwkjIGltcGxpY2l0bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgorICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAtc2hhcmVkICR7d2x9LWV4cG9ydGVkX3N5bWJvbCAke3dsfWZvbyAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0vZGV2L251bGwiCisgICAgICAgIEFDX0xJTktfSUZFTFNFKGludCBmb28odm9pZCkge30sCisgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgJHt3bH0tZXhwb3J0c19maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisgICAgICAgICkKKyAgICAgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKyAgICAgIGZpCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKyAgICAgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisgICAgICA7OworCisgICAgbmV0YnNkKikKKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBFTEYKKyAgICAgIGZpCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICA7OworCisgICAgbmV3c29zNikKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICAqbnRvKiB8ICpxbngqKQorICAgICAgOzsKKworICAgIG9wZW5ic2QqKQorICAgICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzJworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworCWVsc2UKKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKwkgICBvcGVuYnNkW1swMV1dLiogfCBvcGVuYnNkMi5bWzAtN11dIHwgb3BlbmJzZDIuW1swLTddXS4qKQorCSAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKwkgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisJICAgICA7OworCSAgICopCisJICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKwkgICAgIDs7CisJICBlc2FjCisJZmkKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICBmaQorICAgICAgOzsKKworICAgIG9zMiopCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKKyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisgICAgICA7OworCisgICAgb3NmMyopCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworICAgICAgZmkKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorICAgICAgOzsKKworICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZworICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgcHJpbnRmICIlc1xcbiIgIi1oaWRkZW4iPj4gJGxpYi5leHB+CisJJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICRjb21waWxlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kUk0gJGxpYi5leHAnCisKKwkjIEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJworICAgICAgZmkKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisgICAgICA7OworCisgICAgc29sYXJpcyopCisgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAteiBkZWZzJworICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwl3bGFyYz0nJHt3bH0nCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKwkgICRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisgICAgICBlbHNlCisJY2FzZSBgJENDIC1WIDI+JjFgIGluCisJKiJDb21waWxlcnMgNS4wIiopCisJICB3bGFyYz0nJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorCSAgJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworCSAgOzsKKwkqKQorCSAgd2xhcmM9JyR7d2x9JworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisJICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKwkgIDs7CisJZXNhYworICAgICAgZmkKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKyAgICAgICopCisJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisJIyBidXQgaXMgY2FyZWZ1bCBlbm91Z2ggbm90IHRvIHJlb3JkZXIuCisJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCisJZWxzZQorCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworCWZpCisJOzsKKyAgICAgIGVzYWMKKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworICAgICAgOzsKKworICAgIHN1bm9zNCopCisgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCisJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3MgaW4gc29tZSBleHRyYSAubworCSMgZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgorCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKyAgICAgIGZpCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICBzeXN2NCkKKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisJc25pKQorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVlPz8/CisJOzsKKwlzaWVtZW5zKQorCSAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCisJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihyZWxvYWRfY21kcywgJDEpPSckQ0MgLXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKyAgICAgICAgOzsKKwltb3Rvcm9sYSkKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQorCTs7CisgICAgICBlc2FjCisgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgOzsKKworICAgIHN5c3Y0LjMqKQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Jy1CZXhwb3J0JworICAgICAgOzsKKworICAgIHN5c3Y0Kk1QKikKKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcworCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisgICAgICBmaQorICAgICAgOzsKKworICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRdXSopCisgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKworICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKyAgICAgIGVsc2UKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworICAgICAgZmkKKyAgICAgIDs7CisKKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKyAgICAgICMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorICAgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorICAgICAgIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCisgICAgICAjIGFzIC16IGRlZnMuCisgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teixub2RlZnMnCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJleHBvcnQnCisgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBlbHNlCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKyAgICAgIGZpCisgICAgICA7OworCisgICAgdXRzNCopCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKyAgICAgIDs7CisKKyAgICAqKQorICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgOzsKKyAgICBlc2FjCisKKyAgICBpZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0aGVuCisgICAgICBjYXNlICRob3N0IGluCisgICAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyogfCBzeXN2NSopCisJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmxhcmdlZHluc3ltJworCTs7CisgICAgICBlc2FjCisgICAgZmkKKyAgZmkKK10pCitBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCit0ZXN0ICIkX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisKK19MVF9UQUdWQVIod2l0aF9nbnVfbGQsICQxKT0kd2l0aF9nbnVfbGQKKworX0xUX0RFQ0woW10sIFtsaWJleHRdLCBbMF0sIFtPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIildKWRubAorX0xUX0RFQ0woW10sIFtzaHJleHRfY21kc10sIFsxXSwgW1NoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpXSlkbmwKK19MVF9ERUNMKFtdLCBbZXh0cmFjdF9leHBzeW1zX2NtZHNdLCBbMl0sCisgICAgW1RoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmVdKQorCisjCisjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisjCitjYXNlICJ4JF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKSIgaW4KK3h8eHllcykKKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCisKKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICAgY2FzZSAkX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKSBpbgorICAgIConficqKQorICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorICAgICAgOzsKKyAgICAnJENDICcqKQorICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQorICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCisgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKyAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluXSkKKyAgICAgICRSTSBjb25mdGVzdCoKKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorCisgICAgICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorICAgICAgICBzb25hbWU9Y29uZnRlc3QKKyAgICAgICAgbGliPWNvbmZ0ZXN0CisgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAorICAgICAgICBkZXBsaWJzPQorICAgICAgICB3bD0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkKKwlwaWNfZmxhZz0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCisgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12CisgICAgICAgIGxpbmtlcl9mbGFncz0tdgorICAgICAgICB2ZXJzdHJpbmc9CisgICAgICAgIG91dHB1dF9vYmpkaXI9LgorICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisgICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKQorICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisgICAgICAgIGlmIEFDX1RSWV9FVkFMKF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpCisgICAgICAgIHRoZW4KKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworICAgICAgICBlbHNlCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCisgICAgICAgIGZpCisgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworICAgICAgZWxzZQorICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKyAgICAgIGZpCisgICAgICAkUk0gY29uZnRlc3QqCisgICAgICBBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpXSkKKyAgICAgIDs7CisgICAgZXNhYworICBmaQorICA7OworZXNhYworCitfTFRfVEFHREVDTChbYnVpbGRfbGlidG9vbF9uZWVkX2xjXSwgW2FyY2hpdmVfY21kc19uZWVkX2xjXSwgWzBdLAorICAgIFtXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzXSkKK19MVF9UQUdERUNMKFthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXNdLAorICAgIFtlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzXSwgWzBdLAorICAgIFtXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljXSkKK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXSwgWzFdLAorICAgIFtDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zXSkKK19MVF9UQUdERUNMKFtdLCBbd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNdLCBbMV0sCisgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlc10pCitfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX25lZWRzX29iamVjdF0sIFsxXSwKKyAgICBbV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHldKQorX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzXSwgWzJdLAorICAgIFtDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKK19MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNdLCBbMl0sCisgICAgW0NyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCitfTFRfVEFHREVDTChbXSwgW2FyY2hpdmVfY21kc10sIFsyXSwgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZV0pCitfTFRfVEFHREVDTChbXSwgW2FyY2hpdmVfZXhwc3ltX2NtZHNdLCBbMl0pCitfTFRfVEFHREVDTChbXSwgW21vZHVsZV9jbWRzXSwgWzJdLAorICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5nCisgICAgYSBzaGFyZWQgYXJjaGl2ZS5dKQorX0xUX1RBR0RFQ0woW10sIFttb2R1bGVfZXhwc3ltX2NtZHNdLCBbMl0pCitfTFRfVEFHREVDTChbXSwgW3dpdGhfZ251X2xkXSwgWzFdLAorICAgIFtXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBvciBub3RdKQorX0xUX1RBR0RFQ0woW10sIFthbGxvd191bmRlZmluZWRfZmxhZ10sIFsxXSwKKyAgICBbRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHRdKQorX0xUX1RBR0RFQ0woW10sIFtub191bmRlZmluZWRfZmxhZ10sIFsxXSwKKyAgICBbRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzXSkKK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY10sIFsxXSwKKyAgICBbRmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCisgICAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0XSkKK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF0sIFsxXSwKKyAgICBbW0lmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJpbmFyeQorICAgIGR1cmluZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiAkbGliZGlyIGRvZXMgbm90IGV4aXN0XV0pCitfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JdLCBbMV0sCisgICAgW1doZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnRdKQorX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RdLCBbMF0sCisgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisgICAgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQorX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVdLCBbMF0sCisgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisgICAgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCisgICAgImFic29sdXRlIiwgaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgJHtzaGxpYnBhdGhfdmFyfSBpZiB0aGUKKyAgICBsaWJyYXJ5IGlzIHJlbG9jYXRlZF0pCitfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX21pbnVzX0xdLCBbMF0sCisgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCitfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX3NobGlicGF0aF92YXJdLCBbMF0sCisgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCitfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2F1dG9tYXRpY10sIFswXSwKKyAgICBbU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCisgICAgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKKyAgICBhZ2FpbnN0IGl0XSkKK19MVF9UQUdERUNMKFtdLCBbaW5oZXJpdF9ycGF0aF0sIFswXSwKKyAgICBbU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKKyAgICB0byBydW50aW1lIHBhdGggbGlzdF0pCitfTFRfVEFHREVDTChbXSwgW2xpbmtfYWxsX2RlcGxpYnNdLCBbMF0sCisgICAgW1doZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllc10pCitfTFRfVEFHREVDTChbXSwgW2ZpeF9zcmNmaWxlX3BhdGhdLCBbMV0sCisgICAgW0ZpeCB0aGUgc2hlbGwgdmFyaWFibGUgJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlcl0pCitfTFRfVEFHREVDTChbXSwgW2Fsd2F5c19leHBvcnRfc3ltYm9sc10sIFswXSwKKyAgICBbU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkXSkKK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X3N5bWJvbHNfY21kc10sIFsyXSwKKyAgICBbVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9sc10pCitfTFRfVEFHREVDTChbXSwgW2V4Y2x1ZGVfZXhwc3ltc10sIFsxXSwKKyAgICBbU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9sc10pCitfTFRfVEFHREVDTChbXSwgW2luY2x1ZGVfZXhwc3ltc10sIFsxXSwKKyAgICBbU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkXSkKK19MVF9UQUdERUNMKFtdLCBbcHJlbGlua19jbWRzXSwgWzJdLAorICAgIFtDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlc10pCitfTFRfVEFHREVDTChbXSwgW2ZpbGVfbGlzdF9zcGVjXSwgWzFdLAorICAgIFtTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXNdKQorZG5sIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCitkbmwgX0xUX1RBR0RFQ0woW10sIFt0aHJlYWRfc2FmZV9mbGFnX3NwZWNdLCBbMV0sCitkbmwgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkIHNhZmUgb2JqZWN0c10pCitdKSMgX0xUX0xJTktFUl9TSExJQlMKKworCisjIF9MVF9MQU5HX0NfQ09ORklHKFtUQUddKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMgY29tcGlsZXIgYXJlIHN1aXRhYmx5CisjIGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3JpdGUKKyMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorbTRfZGVmdW4oW19MVF9MQU5HX0NfQ09ORklHXSwKK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCitsdF9zYXZlX0NDPSIkQ0MiCitBQ19MQU5HX1BVU0goQykKKworIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMgdGVzdCBzb3VyY2VzLgorYWNfZXh0PWMKKworIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMgdGVzdCBzb3VyY2VzLgorb2JqZXh0PW8KK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorCisjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorCisjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9JworCitfTFRfVEFHX0NPTVBJTEVSCisjIFNhdmUgdGhlIGRlZmF1bHQgY29tcGlsZXIsIHNpbmNlIGl0IGdldHMgb3ZlcndyaXR0ZW4gd2hlbiB0aGUgb3RoZXIKKyMgdGFncyBhcmUgYmVpbmcgdGVzdGVkLCBhbmQgX0xUX1RBR1ZBUihjb21waWxlciwgW10pIGlzIGEgTk9QLgorY29tcGlsZXJfREVGQVVMVD0kQ0MKKworIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKK19MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorX0xUX0xJTktFUl9CT0lMRVJQTEFURQorCisjIyBDQVZFQVQgRU1QVE9SOgorIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKyAgX0xUX0NPTVBJTEVSX05PX1JUVEkoJDEpCisgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisgIF9MVF9DT01QSUxFUl9DX08oJDEpCisgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorICBfTFRfTElOS0VSX1NITElCUygkMSkKKyAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorICBMVF9TWVNfRExPUEVOX1NFTEYKKyAgX0xUX0NNRF9TVFJJUExJQgorCisgICMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAorICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKKworICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisgIHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworCisgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgYWl4MyopCisgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKyAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJworICAgIGZpCisgICAgOzsKKworICBhaXhbWzQtOV1dKikKKyAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCisgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworICAgIGZpCisgICAgOzsKKyAgZXNhYworICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCisKKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKyAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKKworICBfTFRfQ09ORklHKCQxKQorZmkKK0FDX0xBTkdfUE9QCitDQz0iJGx0X3NhdmVfQ0MiCitdKSMgX0xUX0xBTkdfQ19DT05GSUcKKworCisjIF9MVF9QUk9HX0NYWAorIyAtLS0tLS0tLS0tLS0KKyMgU2luY2UgQUNfUFJPR19DWFggaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgZysrIGlmIHRoZXJlIGlzIG5vIGMrKworIyBjb21waWxlciwgd2UgaGF2ZSBvdXIgb3duIHZlcnNpb24gaGVyZS4KK200X2RlZnVuKFtfTFRfUFJPR19DWFhdLAorWworcHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9jYXVnaHRfQ1hYX2Vycm9yPXllc10pCitBQ19QUk9HX0NYWAoraWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKKyAgICAoICh0ZXN0ICJYJENYWCIgPSAiWGcrKyIgJiYgYGcrKyAtdiA+L2Rldi9udWxsIDI+JjFgICkgfHwKKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KKyAgQUNfUFJPR19DWFhDUFAKK2Vsc2UKKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCitmaQorcG9wZGVmKFtBQ19NU0dfRVJST1JdKQorXSkjIF9MVF9QUk9HX0NYWAorCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW19MVF9QUk9HX0NYWF0sIFtdKQorCisKKyMgX0xUX0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMrKyBjb21waWxlciBhcmUgc3VpdGFibHkKKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQorIyB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCittNF9kZWZ1bihbX0xUX0xBTkdfQ1hYX0NPTkZJR10sCitbQUNfUkVRVUlSRShbX0xUX1BST0dfQ1hYXSlkbmwKK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorCitBQ19MQU5HX1BVU0goQysrKQorX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCitfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CitfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCitfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KK19MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9bm8KK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCitfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCitfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKK19MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCitfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CitfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQorX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKK19MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0KK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisKKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDKysgdGVzdCBzb3VyY2VzLgorYWNfZXh0PWNwcAorCisjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQysrIHRlc3Qgc291cmNlcy4KK29iamV4dD1vCitfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKworIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAorIyB0aGUgQ1hYIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQorIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCitpZiB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllczsgdGhlbgorICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCisKKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltbXV0pIHsgcmV0dXJuKDApOyB9JworCisgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKyAgX0xUX1RBR19DT01QSUxFUgorCisgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisgIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisKKyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKyAgbHRfc2F2ZV9DQz0kQ0MKKyAgbHRfc2F2ZV9MRD0kTEQKKyAgbHRfc2F2ZV9HQ0M9JEdDQworICBHQ0M9JEdYWAorICBsdF9zYXZlX3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAorICBsdF9zYXZlX3BhdGhfTEQ9JGx0X2N2X3BhdGhfTEQKKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgorICAgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAorICBlbHNlCisgICAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCisgIGZpCisgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcGF0aF9MRENYWCtzZXR9IjsgdGhlbgorICAgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgKKyAgZWxzZQorICAgICRhc191bnNldCBsdF9jdl9wYXRoX0xECisgIGZpCisgIHRlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExEQ1hYCisgIENDPSR7Q1hYLSJjKysifQorICBjb21waWxlcj0kQ0MKKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisKKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3aGVuIGNvbXBpbGluZyBDKysgY29kZSwgc28gc2V0IHRoZQorICAgICMgbm9fYnVpbHRpbl9mbGFnIHNlcGFyYXRlbHkKKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJworICAgIGVsc2UKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KKyAgICBmaQorCisgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKyAgICAgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCisKKyAgICAgIExUX1BBVEhfTEQKKworICAgICAgIyBDaGVjayBpZiBHTlUgQysrIHVzZXMgR05VIGxkIGFzIHRoZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCisgICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNlZC4KKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKworICAgICAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorICAgICAgICAjIFhYWCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVkIHRvCisgICAgICAgICMgICAgIGludmVzdGlnYXRlIGl0IGEgbGl0dGxlIGJpdCBtb3JlLiAoTU0pCisgICAgICAgIHdsYXJjPScke3dsfScKKworICAgICAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisgICAgICAgIGlmIGV2YWwgImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwKKwkgICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKyAgICAgICAgZWxzZQorICAgICAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKyAgICAgICAgZmkKKyAgICAgIGVsc2UKKyAgICAgICAgd2l0aF9nbnVfbGQ9bm8KKyAgICAgICAgd2xhcmM9CisKKyAgICAgICAgIyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KKyAgICAgICAgIyBjb21tYW5kIGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1c2VzIHRoZSBuYXRpdmUKKyAgICAgICAgIyBsaW5rZXIsIGluc3RlYWQgb2YgR05VIGxkLiAgSWYgcG9zc2libGUsIHRoaXMgc2V0dGluZyBzaG91bGQKKyAgICAgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9uCisgICAgICAgICMgdGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVzZWQgb24uCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKyAgICAgIGZpCisKKyAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKworICAgIGVsc2UKKyAgICAgIEdYWD1ubworICAgICAgd2l0aF9nbnVfbGQ9bm8KKyAgICAgIHdsYXJjPQorICAgIGZpCisKKyAgICAjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCisgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgYWl4MyopCisgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICAgIDs7CisgICAgICBhaXhbWzQtOV1dKikKKyAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKyAgICAgICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisgICAgICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisgICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgorICAgICAgICBlbHNlCisgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworCisgICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisgICAgICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCisgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCisJICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbworCSAgICAgIGNhc2UgJGxkX2ZsYWcgaW4KKwkgICAgICAqLWJydGwqKQorCSAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKKwkgICAgICAgIGJyZWFrCisJICAgICAgICA7OworCSAgICAgIGVzYWMKKwkgICAgZG9uZQorCSAgICA7OworICAgICAgICAgIGVzYWMKKworICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisgICAgICAgICAgbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JworICAgICAgICBmaQorCisgICAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKyAgICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5CisgICAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisgICAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisgICAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JycKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisgICAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworICAgICAgICBfTFRfVEFHVkFSKGZpbGVfbGlzdF9zcGVjLCAkMSk9JyR7d2x9LWYsJworCisgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCisgICAgICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCisgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgorCSAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKwkgIHRoZW4KKwkgICAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisJICAgIDoKKwkgIGVsc2UKKwkgICAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgorCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisJICAgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKwkgICAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKKwkgICAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKwkgIGZpCisgICAgICAgICAgZXNhYworICAgICAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVkJworCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisJICAgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworCSAgZmkKKyAgICAgICAgZWxzZQorICAgICAgICAgICMgbm90IHVzaW5nIGdjYworICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisJICAjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQorCSAgIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKKwkgIHNoYXJlZF9mbGFnPSctRycKKyAgICAgICAgICBlbHNlCisJICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworCSAgICBlbHNlCisJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKwkgICAgZmkKKyAgICAgICAgICBmaQorICAgICAgICBmaQorCisgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJleHBhbGwnCisgICAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAorICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKwkjIGV4cG9ydC4KKyAgICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKKyAgICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisgICAgICAgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCisgICAgICAgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorICAgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9rJworICAgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eQorICAgICAgICAgICMgZXhlY3V0YWJsZS4KKyAgICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorCisgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorICAgICAgICBlbHNlCisgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworCSAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCisgICAgICAgICAgZWxzZQorCSAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKwkgICAgIyBlbXB0eSBleGVjdXRhYmxlLgorCSAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKKwkgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorCSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycKKwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCisJICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKKwkgICAgIyBsaWJyYXJpZXMuCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKyAgICAgICAgOzsKKworICAgICAgYmVvcyopCisJaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisJICAjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisJICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJZWxzZQorCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCWZpCisJOzsKKworICAgICAgY2hvcnVzKikKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICAqKQorCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICA7OworICAgICAgICBlc2FjCisgICAgICAgIDs7CisKKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKyAgICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKyAgICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisgICAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKyAgICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisKKyAgICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKyAgICAgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisgICAgICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKwkgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworICAgICAgICAgIGVsc2UKKwkgICAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisgICAgICAgICAgZml+CisgICAgICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworICAgICAgICBlbHNlCisgICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgICBmaQorICAgICAgICA7OworICAgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKyAgICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCisJOzsKKworICAgICAgZGd1eCopCisgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAgICAgZWMrKyopCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisgICAgICAgICAgZ2hjeCopCisJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisgICAgICAgICAgKikKKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworCisgICAgICBmcmVlYnNkW1sxMl1dKikKKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBmYWlybHkgYnJva2VuIGJlZm9yZQorCSMgc3dpdGNoIHRvIEVMRgorICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICAgIDs7CisKKyAgICAgIGZyZWVic2QtZWxmKikKKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisgICAgICAgIDs7CisKKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKyAgICAgICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYKKyAgICAgICAgIyBjb252ZW50aW9ucworICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworICAgICAgICA7OworCisgICAgICBnbnUqKQorICAgICAgICA7OworCisgICAgICBocHV4OSopCisgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorCQkJCSAgICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAorCQkJCSAgICAgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorCisgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAgICAgQ0MqKQorICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisgICAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICAgICAgICA7OworICAgICAgICAgIGFDQyopCisgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKyAgICAgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKyAgICAgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisgICAgICAgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorICAgICAgICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCisgICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisgICAgICAgICAgICA7OworICAgICAgICAgICopCisgICAgICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorICAgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisgICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIDs7CisKKyAgICAgIGhwdXgxMCp8aHB1eDExKikKKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorCisgICAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQorICAgICAgICAgICAgICA7OworICAgICAgICAgICAgKikKKwkgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworICAgICAgICAgICAgICA7OworICAgICAgICAgIGVzYWMKKyAgICAgICAgZmkKKyAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKyAgICAgICAgICBocHBhKjY0KnxpYTY0KikKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisgICAgICAgICAgICA7OworICAgICAgICAgICopCisgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisJCQkJCSAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0CisJCQkJCSAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICBDQyopCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisgICAgICAgICAgYUNDKikKKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KKwkgICAgICBocHBhKjY0KikKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKwkgICAgICAgIDs7CisJICAgICAgaWE2NCopCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICA7OworCSAgICAgICopCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKwkgICAgICAgIDs7CisJICAgIGVzYWMKKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisJICAgICMKKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisJICAgICMgZGVwZW5kZW5jaWVzLgorCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKwkgICAgOzsKKyAgICAgICAgICAqKQorCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorCSAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKwkgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisJICAgICAgICAgIGhwcGEqNjQqKQorCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKwkgICAgICAgICAgICA7OworCSAgICAgICAgICBpYTY0KikKKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICAgICAgOzsKKwkgICAgICAgICAgKikKKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKwkgICAgICAgICAgICA7OworCSAgICAgICAgZXNhYworCSAgICAgIGZpCisJICAgIGVsc2UKKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIGZpCisJICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgOzsKKworICAgICAgaW50ZXJpeFtbMy05XV0qKQorCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisJIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorCSMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKwkjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5CisJIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorCSMgMjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKKwkjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworCTs7CisgICAgICBpcml4NSogfCBpcml4NiopCisgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAgICAgQ0MqKQorCSAgICAjIFNHSSBDKysKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCisJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworCSAgICAjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisJICAgICMgaW4gdGhlIGFyY2hpdmUuCisJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJworCSAgICA7OworICAgICAgICAgICopCisJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisJICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICAgIGVsc2UKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgIC1vICRsaWInCisJICAgICAgZmkKKwkgICAgZmkKKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisJICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorICAgICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT15ZXMKKyAgICAgICAgOzsKKworICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgICAgICBLQ0MqKQorCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisKKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRlbXBsaWIgJGxpYicKKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisJICAgICMKKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisJICAgICMgZGVwZW5kZW5jaWVzLgorCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisKKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisJICAgICMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBpcyB0aGUgS0FJIEMrKyBjb21waWxlci4KKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJworCSAgICA7OworCSAgaWNwYyogfCBlY3BjKiApCisJICAgICMgSW50ZWwgQysrCisJICAgIHdpdGhfZ251X2xkPXllcworCSAgICAjIHZlcnNpb24gOC4wIGFuZCBhYm92ZSBvZiBpY3BjIGNob2tlIG9uIG11bHRpcGx5IGRlZmluZWQgc3ltYm9scworCSAgICAjIGlmIHdlIGFkZCAkcHJlZGVwX29iamVjdHMgYW5kICRwb3N0ZGVwX29iamVjdHMsIGhvd2V2ZXIgNy4xIGFuZAorCSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorCSAgICBjYXNlIGAkQ0MgLVYgMj4mMWAgaW4KKwkgICAgICAqIlZlcnNpb24gNy4iKikKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJCTs7CisJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKKwkgICAgICAgIHRtcF9pZHluPQorCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKwkJICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7CisJCWVzYWMKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwkJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwkJOzsKKwkgICAgZXNhYworCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgICAgOzsKKyAgICAgICAgICBwZ0NDKiB8IHBnY3BwKikKKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisJICAgIGNhc2UgYCRDQyAtVmAgaW4KKwkgICAgKnBnQ0NcIFtbMS01XV0qIHwgKnBnY3BwXCBbWzEtNV1dKikKKwkgICAgICBfTFRfVEFHVkFSKHByZWxpbmtfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorCQlybSAtcmYgJHRwbGRpcn4KKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAkbGlib2JqcyAkY29tcGlsZV9kZXBsaWJzfgorCQljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCInCisJICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisJCXJtIC1yZiAkdHBsZGlyfgorCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRvbGRvYmpzJG9sZF9kZXBsaWJzfgorCQkkQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgfgorCQkkUkFOTElCICRvbGRsaWInCisJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKwkJcm0gLXJmICR0cGxkaXJ+CisJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgorCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorCQlybSAtcmYgJHRwbGRpcn4KKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwkgICAgICA7OworCSAgICAqKSAjIFZlcnNpb24gNiB3aWxsIHVzZSB3ZWFrIHN5bWJvbHMKKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwkgICAgICA7OworCSAgICBlc2FjCisKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisgICAgICAgICAgICA7OworCSAgY3h4KikKKwkgICAgIyBDb21wYXEgQysrCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICAtbyAkbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzJworCisJICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorCisJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorCSAgICAjCisJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorCSAgICAjIGRlcGVuZGVuY2llcy4KKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKwkgICAgOzsKKwkgIHhsKikKKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQywgd2l0aCBHTlUgbGQKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwkgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgorCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorCQljYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisJCWVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorCQkkQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKwkgICAgZmkKKwkgICAgOzsKKwkgICopCisJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorCSAgICAqU3VuXCBDKikKKwkgICAgICAjIFN1biBDKysgNS45CisJICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJworCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCisJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKwkgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCisKKwkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCisJICAgICAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQorCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgorCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworCisJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisJICAgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCisJICAgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKwkgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKKwkgICAgICA7OworCSAgICBlc2FjCisJICAgIDs7CisJZXNhYworCTs7CisKKyAgICAgIGx5bnhvcyopCisgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwk7OworCisgICAgICBtODhrKikKKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwk7OworCisgICAgICBtdnMqKQorICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIGN4eCopCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisJICAqKQorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworCWVzYWMKKwk7OworCisgICAgICBuZXRic2QqKQorICAgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCisJICB3bGFyYz0KKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKwlmaQorCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCBjb25mdGVzdC4kb2JqZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCisJOzsKKworICAgICAgKm50byogfCAqcW54KikKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKwk7OworCisgICAgICBvcGVuYnNkMiopCisgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJOzsKKworICAgICAgb3BlbmJzZCopCisJaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworCSAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIGZpCisJICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCisJZWxzZQorCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCWZpCisJOzsKKworICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIEtDQyopCisJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKKworCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICIkbGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisKKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKworCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KKwkgICAgY2FzZSAkaG9zdCBpbgorCSAgICAgIG9zZjMqKSBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7CisJICAgICAgKikgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OworCSAgICBlc2FjCisJICAgIDs7CisgICAgICAgICAgUkNDKikKKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEKKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgOzsKKyAgICAgICAgICBjeHgqKQorCSAgICBjYXNlICRob3N0IGluCisJICAgICAgb3NmMyopCisJICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKwkJOzsKKwkgICAgICAqKQorCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgorCSAgICAgICAgICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgorCSAgICAgICAgICAkQ0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+CisJICAgICAgICAgICRSTSAkbGliLmV4cCcKKwkgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKwkJOzsKKwkgICAgZXNhYworCisJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKworCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKwkgICAgIworCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKwkgICAgIyBkZXBlbmRlbmNpZXMuCisJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworCSAgICA7OworCSAgKikKKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisJICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKwkgICAgICBjYXNlICRob3N0IGluCisJICAgICAgICBvc2YzKikKKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkJICA7OworCSAgICAgICAgKikKKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJCSAgOzsKKwkgICAgICBlc2FjCisKKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKworCSAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKwkgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKworCSAgICBlbHNlCisJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICBmaQorCSAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIDs7CisKKyAgICAgIHBzb3MqKQorICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworICAgICAgICA7OworCisgICAgICBzdW5vczQqKQorICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIENDKikKKwkgICAgIyBTdW4gQysrIDQueAorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworICAgICAgICAgIGxjYyopCisJICAgICMgTHVjaWQKKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgICAgOzsKKyAgICAgICAgICAqKQorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworICAgICAgICBlc2FjCisgICAgICAgIDs7CisKKyAgICAgIHNvbGFyaXMqKQorICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIENDKikKKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKworICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywkMSk9eWVzCisJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKwkgICAgICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworCSAgICBjYXNlICRob3N0X29zIGluCisJICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKwkgICAgICAqKQorCQkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAorCQkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLgorCSAgICAgICAgIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKwkJX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworCSAgICAgICAgOzsKKwkgICAgZXNhYworCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKworCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKworCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKwkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCisJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorCSAgICAjIGluIHRoZSBhcmNoaXZlLgorCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKKwkgICAgOzsKKyAgICAgICAgICBnY3gqKQorCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisKKwkgICAgIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCisJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKwkgICAgOzsKKyAgICAgICAgICAqKQorCSAgICAjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgorCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKwkgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9ZGVmcycKKwkgICAgICBpZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgorCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisJCSAgJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworCisJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisJICAgICAgZWxzZQorCSAgICAgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24gdGhpcworCSAgICAgICAgIyBwbGF0Zm9ybS4KKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKwkJICAkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworCisJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtRyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworCSAgICAgIGZpCisKKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkd2wkbGliZGlyJworCSAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKwkJc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKwkJKikKKwkJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKwkJICA7OworCSAgICAgIGVzYWMKKwkgICAgZmkKKwkgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworCisgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBdXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKKyAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JworICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworCisgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICBDQyopCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICA7OworCSopCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgOzsKKyAgICAgIGVzYWMKKyAgICAgIDs7CisKKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisJIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKwkjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCisJIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorCSMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorCSMgYXMgLXogZGVmcy4KKwlfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosbm9kZWZzJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRpcicKKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKKwlfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JworCXJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKworCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICAgICAgQ0MqKQorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgICAgOzsKKwkgICopCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgICAgOzsKKwllc2FjCisgICAgICA7OworCisgICAgICB0YW5kZW0qKQorICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgICAgIE5DQyopCisJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAorCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgICA7OworICAgICAgICAgICopCisJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisJICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgOzsKKworICAgICAgdnh3b3JrcyopCisgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICAgIDs7CisKKyAgICAgICopCisgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisgICAgICAgIDs7CisgICAgZXNhYworCisgICAgQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQorICAgIHRlc3QgIiRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKworICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRHWFgiCisgICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisKKyAgICAjIyBDQVZFQVQgRU1QVE9SOgorICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKyAgICAjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKyAgICBfTFRfU1lTX0hJRERFTl9MSUJERVBTKCQxKQorICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisgICAgX0xUX0NPTVBJTEVSX0NfTygkMSkKKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKyAgICBfTFRfTElOS0VSX1NITElCUygkMSkKKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQorICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKworICAgIF9MVF9DT05GSUcoJDEpCisgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorCisgIENDPSRsdF9zYXZlX0NDCisgIExEQ1hYPSRMRAorICBMRD0kbHRfc2F2ZV9MRAorICBHQ0M9JGx0X3NhdmVfR0NDCisgIHdpdGhfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCisgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKKyAgbHRfY3ZfcGF0aF9MRD0kbHRfc2F2ZV9wYXRoX0xECisgIGx0X2N2X3Byb2dfZ251X2xkY3h4PSRsdF9jdl9wcm9nX2dudV9sZAorICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAorZmkgIyB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllcworCitBQ19MQU5HX1BPUAorXSkjIF9MVF9MQU5HX0NYWF9DT05GSUcKKworCisjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMoW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRmlndXJlIG91dCAiaGlkZGVuIiBsaWJyYXJ5IGRlcGVuZGVuY2llcyBmcm9tIHZlcmJvc2UKKyMgY29tcGlsZXIgb3V0cHV0IHdoZW4gbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKKyMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorbTRfZGVmdW4oW19MVF9TWVNfSElEREVOX0xJQkRFUFNdLAorW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKK19MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKT0KK19MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9CitfTFRfVEFHVkFSKHByZWRlcHMsICQxKT0KK19MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0KK19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9CisKK2RubCB3ZSBjYW4ndCB1c2UgdGhlIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSBoZXJlLAorZG5sIGJlY2F1c2UgaXQgY29udGFpbnMgY29kZSBpbnRlbmRlZCBmb3IgYW4gZXhlY3V0YWJsZSwKK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJsZSB3ZSBzaG91bGQgbGV0IGVhY2gKK2RubCB0YWcgZGVmaW5lIGEgbmV3IGx0Xz8/Pz9fbGlua190ZXN0X2NvZGUgdmFyaWFibGUsCitkbmwgYnV0IGl0J3Mgb25seSB1c2VkIGhlcmUuLi4KK200X2lmKFskMV0sIFtdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKK2ludCBhOwordm9pZCBmb28gKHZvaWQpIHsgYSA9IDA7IH0KK19MVF9FT0YKK10sIFskMV0sIFtDWFhdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKK2NsYXNzIEZvbworeworcHVibGljOgorICBGb28gKHZvaWQpIHsgYSA9IDA7IH0KK3ByaXZhdGU6CisgIGludCBhOworfTsKK19MVF9FT0YKK10sIFskMV0sIFtGNzddLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKyAgICAgIHN1YnJvdXRpbmUgZm9vCisgICAgICBpbXBsaWNpdCBub25lCisgICAgICBpbnRlZ2VyKjQgYQorICAgICAgYT0wCisgICAgICByZXR1cm4KKyAgICAgIGVuZAorX0xUX0VPRgorXSwgWyQxXSwgW0ZDXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisgICAgICBzdWJyb3V0aW5lIGZvbworICAgICAgaW1wbGljaXQgbm9uZQorICAgICAgaW50ZWdlciBhCisgICAgICBhPTAKKyAgICAgIHJldHVybgorICAgICAgZW5kCitfTFRfRU9GCitdLCBbJDFdLCBbR0NKXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCitwdWJsaWMgY2xhc3MgZm9vIHsKKyAgcHJpdmF0ZSBpbnQgYTsKKyAgcHVibGljIHZvaWQgYmFyICh2b2lkKSB7CisgICAgYSA9IDA7CisgIH0KK307CitfTFRfRU9GCitdKQorZG5sIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorZG5sIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KK2lmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisgICMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CisgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorCisgICMgU2VudGluZWwgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHdlIGFyZSBiZWZvcmUKKyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCisgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKworICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7IGRvCisgICAgY2FzZSAkcCBpbgorCisgICAgLUwqIHwgLVIqIHwgLWwqKQorICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAiLXtMLFJ9IiBhbmQgdGhlIHBhdGguCisgICAgICAgIyBSZW1vdmUgdGhlIHNwYWNlLgorICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIHx8CisgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4KKwkgcHJldj0kcAorCSBjb250aW51ZQorICAgICAgIGVsc2UKKwkgcHJldj0KKyAgICAgICBmaQorCisgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKwkgY2FzZSAkcCBpbgorCSAtTCogfCAtUiopCisJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCisJICAgIyBwcm92aWRlZCB0aGUgdXNlci4gIFRoZSBwb3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhlCisJICAgIyB1c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCisJICAgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkiOyB0aGVuCisJICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke3ByZXZ9JHtwfSIKKwkgICBlbHNlCisJICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9ICR7cHJldn0ke3B9IgorCSAgIGZpCisJICAgOzsKKwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKKwkgIyBsaW5rZWQsIHNvIGRvbid0IGJvdGhlciBoYW5kbGluZyB0aGlzIGNhc2UuCisJIGVzYWMKKyAgICAgICBlbHNlCisJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSkiOyB0aGVuCisJICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke3ByZXZ9JHtwfSIKKwkgZWxzZQorCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0iJHtfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSl9ICR7cHJldn0ke3B9IgorCSBmaQorICAgICAgIGZpCisgICAgICAgOzsKKworICAgICouJG9iamV4dCkKKyAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hvd3MgdXAKKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1dC4KKyAgICAgICBpZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KKwkgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMKKwkgY29udGludWUKKyAgICAgICBmaQorCisgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSI7IHRoZW4KKwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9IiRwIgorCSBlbHNlCisJICAgX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpICRwIgorCSBmaQorICAgICAgIGVsc2UKKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCisJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJHAiCisJIGVsc2UKKwkgICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIkX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKSAkcCIKKwkgZmkKKyAgICAgICBmaQorICAgICAgIDs7CisKKyAgICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KKworICAgIGVzYWMKKyAgZG9uZQorCisgICMgQ2xlYW4gdXAuCisgIHJtIC1mIGEub3V0IGEuZXhlCitlbHNlCisgIGVjaG8gImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBpbGluZyAkMSB0ZXN0IHByb2dyYW0iCitmaQorCiskUk0gLWYgY29uZmVzdC4kb2JqZXh0CisKKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCittNF9pZihbJDFdLCBbQ1hYXSwKK1tjYXNlICRob3N0X29zIGluCitpbnRlcml4W1szLTldXSopCisgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9yIEMrKywgc28gcmF0aGVyIHRoYW4KKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3QgImcrKyIgdG8gRFRSVC4KKyAgX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywkMSk9CisgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCQxKT0KKyAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9CisgIDs7CisKK2xpbnV4KikKKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisgICpTdW5cIEMqKQorICAgICMgU3VuIEMrKyA1LjkKKworICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZworICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworICAgICAgOzsKKyAgICBlc2FjCisKKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKyAgICBmaQorICAgIDs7CisgIGVzYWMKKyAgOzsKKworc29sYXJpcyopCisgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgIENDKikKKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCisgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgorICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCisgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKyAgICAgIDs7CisgICAgZXNhYworCisgICAgIyBBZGRpbmcgdGhpcyByZXF1aXJlcyBhIGtub3duLWdvb2Qgc2V0dXAgb2Ygc2hhcmVkIGxpYnJhcmllcyBmb3IKKyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNlIFBJQyBvYmplY3RzIGZyb20gYW4gb2xkCisgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4KKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKyAgICBmaQorICAgIDs7CisgIGVzYWMKKyAgOzsKK2VzYWMKK10pCisKK2Nhc2UgIiAkX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpICIgaW4KKyoiIC1sYyAiKikgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vIDs7Citlc2FjCisgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT0KK2lmIHRlc3QgLW4gIiR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0iOyB0aGVuCisgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT1gZWNobyAiICR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdzIV4gISEnYAorZmkKK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzXSwgWzFdLAorICAgIFtUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnldKQorX0xUX1RBR0RFQ0woW10sIFtwcmVkZXBfb2JqZWN0c10sIFsxXSwKKyAgICBbRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCisgICAgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnldKQorX0xUX1RBR0RFQ0woW10sIFtwb3N0ZGVwX29iamVjdHNdLCBbMV0pCitfTFRfVEFHREVDTChbXSwgW3ByZWRlcHNdLCBbMV0pCitfTFRfVEFHREVDTChbXSwgW3Bvc3RkZXBzXSwgWzFdKQorX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhdLCBbMV0sCisgICAgW1RoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCisgICAgYSBzaGFyZWQgbGlicmFyeV0pCitdKSMgX0xUX1NZU19ISURERU5fTElCREVQUworCisKKyMgX0xUX1BST0dfRjc3CisjIC0tLS0tLS0tLS0tLQorIyBTaW5jZSBBQ19QUk9HX0Y3NyBpcyBicm9rZW4sIGluIHRoYXQgaXQgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nCisjIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCittNF9kZWZ1bihbX0xUX1BST0dfRjc3XSwKK1sKK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GNzc9eWVzXSkKK0FDX1BST0dfRjc3CitpZiB0ZXN0IC16ICIkRjc3IiB8fCB0ZXN0ICJYJEY3NyIgPSAiWG5vIjsgdGhlbgorICBfbHRfZGlzYWJsZV9GNzc9eWVzCitmaQorcG9wZGVmKFtBQ19NU0dfRVJST1JdKQorXSkjIF9MVF9QUk9HX0Y3NworCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW19MVF9QUk9HX0Y3N10sIFtdKQorCisKKyMgX0xUX0xBTkdfRjc3X0NPTkZJRyhbVEFHXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4gNzcgY29tcGlsZXIgYXJlCisjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorbTRfZGVmdW4oW19MVF9MQU5HX0Y3N19DT05GSUddLAorW0FDX1JFUVVJUkUoW19MVF9QUk9HX0Y3N10pZG5sCitBQ19MQU5HX1BVU0goRm9ydHJhbiA3NykKKworX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCitfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CitfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCitfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCitfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCitfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KK19MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CitfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCitfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcworX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQorX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8KKworIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGY3NyB0ZXN0IHNvdXJjZXMuCithY19leHQ9ZgorCisjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZjc3IHRlc3Qgc291cmNlcy4KK29iamV4dD1vCitfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKworIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAorIyB0aGUgRjc3IGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQorIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCitpZiB0ZXN0ICIkX2x0X2Rpc2FibGVfRjc3IiAhPSB5ZXM7IHRoZW4KKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJcCisgICAgICBzdWJyb3V0aW5lIHQKKyAgICAgIHJldHVybgorICAgICAgZW5kCisiCisKKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSJcCisgICAgICBwcm9ncmFtIHQKKyAgICAgIGVuZAorIgorCisgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKyAgX0xUX1RBR19DT01QSUxFUgorCisgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisgIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisKKyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKyAgbHRfc2F2ZV9DQz0iJENDIgorICBsdF9zYXZlX0dDQz0kR0NDCisgIENDPSR7Rjc3LSJmNzcifQorICBjb21waWxlcj0kQ0MKKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisgIEdDQz0kRzc3CisgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisgICAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorCisgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorICAgIHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworCisgICAgIyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5kCisgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgIGFpeDMqKQorICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworICAgICAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorICAgICAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisgICAgICAgIGZpCisgICAgICAgIDs7CisgICAgICBhaXhbWzQtOV1dKikKKwlpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCisJICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworCWZpCisgICAgICAgIDs7CisgICAgZXNhYworICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKworICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCisKKyAgICBfTFRfVEFHVkFSKEdDQywgJDEpPSIkRzc3IgorICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExEIgorCisgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQorICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQorICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorCisgICAgX0xUX0NPTkZJRygkMSkKKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCisKKyAgR0NDPSRsdF9zYXZlX0dDQworICBDQz0iJGx0X3NhdmVfQ0MiCitmaSAjIHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9IHllcworCitBQ19MQU5HX1BPUAorXSkjIF9MVF9MQU5HX0Y3N19DT05GSUcKKworCisjIF9MVF9QUk9HX0ZDCisjIC0tLS0tLS0tLS0tCisjIFNpbmNlIEFDX1BST0dfRkMgaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgdGhlIGVtcHR5IHN0cmluZworIyBpZiB0aGVyZSBpcyBubyBmb3J0cmFuIGNvbXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgorbTRfZGVmdW4oW19MVF9QUk9HX0ZDXSwKK1sKK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GQz15ZXNdKQorQUNfUFJPR19GQworaWYgdGVzdCAteiAiJEZDIiB8fCB0ZXN0ICJYJEZDIiA9ICJYbm8iOyB0aGVuCisgIF9sdF9kaXNhYmxlX0ZDPXllcworZmkKK3BvcGRlZihbQUNfTVNHX0VSUk9SXSkKK10pIyBfTFRfUFJPR19GQworCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW19MVF9QUk9HX0ZDXSwgW10pCisKKworIyBfTFRfTEFOR19GQ19DT05GSUcoW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4gY29tcGlsZXIgYXJlCisjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorbTRfZGVmdW4oW19MVF9MQU5HX0ZDX0NPTkZJR10sCitbQUNfUkVRVUlSRShbX0xUX1BST0dfRkNdKWRubAorQUNfTEFOR19QVVNIKEZvcnRyYW4pCisKK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CitfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CitfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KK19MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCitfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CitfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQorX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKK19MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0KK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisKKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmYyB0ZXN0IHNvdXJjZXMuCithY19leHQ9JHthY19mY19zcmNleHQtZn0KKworIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGZjIHRlc3Qgc291cmNlcy4KK29iamV4dD1vCitfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKworIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAorIyB0aGUgRkMgY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCisjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KK2lmIHRlc3QgIiRfbHRfZGlzYWJsZV9GQyIgIT0geWVzOyB0aGVuCisgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorICAgICAgc3Vicm91dGluZSB0CisgICAgICByZXR1cm4KKyAgICAgIGVuZAorIgorCisgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAorICAgICAgcHJvZ3JhbSB0CisgICAgICBlbmQKKyIKKworICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisgIF9MVF9UQUdfQ09NUElMRVIKKworICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorCisgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisgIGx0X3NhdmVfQ0M9IiRDQyIKKyAgbHRfc2F2ZV9HQ0M9JEdDQworICBDQz0ke0ZDLSJmOTUifQorICBjb21waWxlcj0kQ0MKKyAgR0NDPSRhY19jdl9mY19jb21waWxlcl9nbnUKKworICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKworICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorICAgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKKworICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKKyAgICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKworICAgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorICAgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KKyAgICBjYXNlICRob3N0X29zIGluCisgICAgICBhaXgzKikKKyAgICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKyAgICAgICAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisgICAgICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJworICAgICAgICBmaQorICAgICAgICA7OworICAgICAgYWl4W1s0LTldXSopCisJaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorCSAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKwlmaQorICAgICAgICA7OworICAgIGVzYWMKKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCisKKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisgICAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCisgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQorCisgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJGFjX2N2X2ZjX2NvbXBpbGVyX2dudSIKKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKKworICAgICMjIENBVkVBVCBFTVBUT1I6CisgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorICAgIF9MVF9TWVNfSElEREVOX0xJQkRFUFMoJDEpCisgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQorICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorCisgICAgX0xUX0NPTkZJRygkMSkKKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCisKKyAgR0NDPSRsdF9zYXZlX0dDQworICBDQz0iJGx0X3NhdmVfQ0MiCitmaSAjIHRlc3QgIiRfbHRfZGlzYWJsZV9GQyIgIT0geWVzCisKK0FDX0xBTkdfUE9QCitdKSMgX0xUX0xBTkdfRkNfQ09ORklHCisKKworIyBfTFRfTEFOR19HQ0pfQ09ORklHKFtUQUddKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBHTlUgSmF2YSBDb21waWxlciBjb21waWxlcgorIyBhcmUgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRworIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCittNF9kZWZ1bihbX0xUX0xBTkdfR0NKX0NPTkZJR10sCitbQUNfUkVRVUlSRShbTFRfUFJPR19HQ0pdKWRubAorQUNfTEFOR19TQVZFCisKKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBKYXZhIHRlc3Qgc291cmNlcy4KK2FjX2V4dD1qYXZhCisKKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBKYXZhIHRlc3Qgc291cmNlcy4KK29iamV4dD1vCitfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKworIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgorCisjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdwdWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11dIGFyZ3YpIHt9OyB9JworCisjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCitfTFRfVEFHX0NPTVBJTEVSCisKKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCitfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKKworIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KK2x0X3NhdmVfQ0M9IiRDQyIKK2x0X3NhdmVfR0NDPSRHQ0MKK0dDQz15ZXMKK0NDPSR7R0NKLSJnY2oifQorY29tcGlsZXI9JENDCitfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCitfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKworIyBHQ0ogZGlkIG5vdCBleGlzdCBhdCB0aGUgdGltZSBHQ0MgZGlkbid0IGltcGxpY2l0bHkgbGluayBsaWJjIGluLgorX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisKK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisKKyMjIENBVkVBVCBFTVBUT1I6CisjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQorIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgoraWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorICBfTFRfQ09NUElMRVJfTk9fUlRUSSgkMSkKKyAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKyAgX0xUX0NPTVBJTEVSX0NfTygkMSkKKyAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCisgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCisKKyAgX0xUX0NPTkZJRygkMSkKK2ZpCisKK0FDX0xBTkdfUkVTVE9SRQorCitHQ0M9JGx0X3NhdmVfR0NDCitDQz0iJGx0X3NhdmVfQ0MiCitdKSMgX0xUX0xBTkdfR0NKX0NPTkZJRworCisKKyMgX0xUX0xBTkdfUkNfQ09ORklHKFtUQUddKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIFdpbmRvd3MgcmVzb3VyY2UgY29tcGlsZXIKKyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorbTRfZGVmdW4oW19MVF9MQU5HX1JDX0NPTkZJR10sCitbQUNfUkVRVUlSRShbTFRfUFJPR19SQ10pZG5sCitBQ19MQU5HX1NBVkUKKworIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIFJDIHRlc3Qgc291cmNlcy4KK2FjX2V4dD1yYworCisjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgUkMgdGVzdCBzb3VyY2VzLgorb2JqZXh0PW8KK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorCisjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSdzYW1wbGUgTUVOVSB7IE1FTlVJVEVNICImU291cCIsIDEwMCwgQ0hFQ0tFRCB9JworCisjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIgorCisjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCitfTFRfVEFHX0NPTVBJTEVSCisKKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCitfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKKworIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KK2x0X3NhdmVfQ0M9IiRDQyIKK2x0X3NhdmVfR0NDPSRHQ0MKK0dDQz0KK0NDPSR7UkMtIndpbmRyZXMifQorY29tcGlsZXI9JENDCitfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCitfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCitfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisKK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKyAgOgorICBfTFRfQ09ORklHKCQxKQorZmkKKworR0NDPSRsdF9zYXZlX0dDQworQUNfTEFOR19SRVNUT1JFCitDQz0iJGx0X3NhdmVfQ0MiCitdKSMgX0xUX0xBTkdfUkNfQ09ORklHCisKKworIyBMVF9QUk9HX0dDSgorIyAtLS0tLS0tLS0tLQorQUNfREVGVU4oW0xUX1BST0dfR0NKXSwKK1ttNF9pZmRlZihbQUNfUFJPR19HQ0pdLCBbQUNfUFJPR19HQ0pdLAorICBbbTRfaWZkZWYoW0FdW01fUFJPR19HQ0pdLCBbQV1bTV9QUk9HX0dDSl0sCisgICAgW0FDX0NIRUNLX1RPT0woR0NKLCBnY2osKQorICAgICAgdGVzdCAieCR7R0NKRkxBR1Mrc2V0fSIgPSB4c2V0IHx8IEdDSkZMQUdTPSItZyAtTzIiCisgICAgICBBQ19TVUJTVChHQ0pGTEFHUyldKV0pW11kbmwKK10pCisKKyMgT2xkIG5hbWU6CitBVV9BTElBUyhbTFRfQUNfUFJPR19HQ0pdLCBbTFRfUFJPR19HQ0pdKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX0dDSl0sIFtdKQorCisKKyMgTFRfUFJPR19SQworIyAtLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfUFJPR19SQ10sCitbQUNfQ0hFQ0tfVE9PTChSQywgd2luZHJlcywpCitdKQorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0xUX0FDX1BST0dfUkNdLCBbTFRfUFJPR19SQ10pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfUkNdLCBbXSkKKworCisjIF9MVF9ERUNMX0VHUkVQCisjIC0tLS0tLS0tLS0tLS0tCisjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUgYmVzdCBncmVwCisjIGF2YWlsYWJsZSwgY2hvb3NlIHRoZSBvbmUgZmlyc3QgaW4gdGhlIHVzZXIncyBQQVRILgorbTRfZGVmdW4oW19MVF9ERUNMX0VHUkVQXSwKK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlkbmwKK0FDX1JFUVVJUkUoW0FDX1BST0dfRkdSRVBdKWRubAordGVzdCAteiAiJEdSRVAiICYmIEdSRVA9Z3JlcAorX0xUX0RFQ0woW10sIFtHUkVQXSwgWzFdLCBbQSBncmVwIHByb2dyYW0gdGhhdCBoYW5kbGVzIGxvbmcgbGluZXNdKQorX0xUX0RFQ0woW10sIFtFR1JFUF0sIFsxXSwgW0FuIEVSRSBtYXRjaGVyXSkKK19MVF9ERUNMKFtdLCBbRkdSRVBdLCBbMV0sIFtBIGxpdGVyYWwgc3RyaW5nIG1hdGNoZXJdKQorZG5sIE5vbi1ibGVlZGluZy1lZGdlIGF1dG9jb25mIGRvZXNuJ3Qgc3Vic3QgR1JFUCwgc28gZG8gaXQgaGVyZSB0b28KK0FDX1NVQlNUKFtHUkVQXSkKK10pCisKKworIyBfTFRfREVDTF9PQkpEVU1QCisjIC0tLS0tLS0tLS0tLS0tCisjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUgYmVzdCBvYmpkdW1wCisjIGF2YWlsYWJsZSwgY2hvb3NlIHRoZSBvbmUgZmlyc3QgaW4gdGhlIHVzZXIncyBQQVRILgorbTRfZGVmdW4oW19MVF9ERUNMX09CSkRVTVBdLAorW0FDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCit0ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpkdW1wCitfTFRfREVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtBbiBvYmplY3Qgc3ltYm9sIGR1bXBlcl0pCitBQ19TVUJTVChbT0JKRFVNUF0pCitdKQorCisKKyMgX0xUX0RFQ0xfU0VECisjIC0tLS0tLS0tLS0tLQorIyBDaGVjayBmb3IgYSBmdWxseS1mdW5jdGlvbmFsIHNlZCBwcm9ncmFtLCB0aGF0IHRydW5jYXRlcworIyBhcyBmZXcgY2hhcmFjdGVycyBhcyBwb3NzaWJsZS4gIFByZWZlciBHTlUgc2VkIGlmIGZvdW5kLgorbTRfZGVmdW4oW19MVF9ERUNMX1NFRF0sCitbQUNfUFJPR19TRUQKK3Rlc3QgLXogIiRTRUQiICYmIFNFRD1zZWQKK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKK19MVF9ERUNMKFtdLCBbU0VEXSwgWzFdLCBbQSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCitfTFRfREVDTChbXSwgW1hzZWRdLCBbIlwkU0VEIC1lIDFzL15YLy8iXSwKKyAgICBbU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW5dKQorXSkjIF9MVF9ERUNMX1NFRAorCittNF9pZm5kZWYoW0FDX1BST0dfU0VEXSwgWworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIE5PVEU6IFRoaXMgbWFjcm8gaGFzIGJlZW4gc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW50byAgICMKKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9HX1NFRC4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIworIyAgYSByZWxlYXNlZCB2ZXJzaW9uIG9mIEF1dG9jb25mIHdlIHNob3VsZCByZW1vdmUgdGhpcyAgICAjCisjICBtYWNybyBhbmQgdXNlIGl0IGluc3RlYWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCittNF9kZWZ1bihbQUNfUFJPR19TRURdLAorW0FDX01TR19DSEVDS0lORyhbZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0XSkKK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX1NFRCwKK1sjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIHNlZCBhbmQgZ3NlZC4KKyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFzIG9uZXMgdG8gdGVzdCBmb3IgdHJ1bmNhdGlvbi4KK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGx0X2FjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCisgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgICAgICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgICAgICBsdF9hY19zZWRfbGlzdD0iJGx0X2FjX3NlZF9saXN0ICRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCisgICAgICBmaQorICAgIGRvbmUKKyAgZG9uZQorZG9uZQorSUZTPSRhc19zYXZlX0lGUworbHRfYWNfbWF4PTAKK2x0X2FjX2NvdW50PTAKKyMgQWRkIC91c3IveHBnNC9iaW4vc2VkIGFzIGl0IGlzIHR5cGljYWxseSBmb3VuZCBvbiBTb2xhcmlzCisjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0LgorZm9yIGx0X2FjX3NlZCBpbiAkbHRfYWNfc2VkX2xpc3QgL3Vzci94cGc0L2Jpbi9zZWQ7IGRvCisgIHRlc3QgISAtZiAkbHRfYWNfc2VkICYmIGNvbnRpbnVlCisgIGNhdCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgorICBsdF9hY19jb3VudD0wCisgIGVjaG8gJEVDSE9fTiAiMDEyMzQ1Njc4OSRFQ0hPX0MiID5jb25mdGVzdC5pbgorICAjIENoZWNrIGZvciBHTlUgc2VkIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisgIGlmICIkbHRfYWNfc2VkIiAtLXZlcnNpb24gMj4mMSA8IC9kZXYvbnVsbCB8IGdyZXAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KKyAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCisgICAgYnJlYWsKKyAgZmkKKyAgd2hpbGUgdHJ1ZTsgZG8KKyAgICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAorICAgIG12IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5pbgorICAgIGNwIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0Lm5sCisgICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCisgICAgJGx0X2FjX3NlZCAtZSAncy9hJC8vJyA8IGNvbmZ0ZXN0Lm5sID5jb25mdGVzdC5vdXQgfHwgYnJlYWsKKyAgICBjbXAgLXMgY29uZnRlc3Qub3V0IGNvbmZ0ZXN0Lm5sIHx8IGJyZWFrCisgICAgIyAxMDAwMCBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisgICAgdGVzdCAkbHRfYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisgICAgbHRfYWNfY291bnQ9YGV4cHIgJGx0X2FjX2NvdW50ICsgMWAKKyAgICBpZiB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgorICAgICAgbHRfYWNfbWF4PSRsdF9hY19jb3VudAorICAgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAorICAgIGZpCisgIGRvbmUKK2RvbmUKK10pCitTRUQ9JGx0X2N2X3BhdGhfU0VECitBQ19TVUJTVChbU0VEXSkKK0FDX01TR19SRVNVTFQoWyRTRURdKQorXSkjQUNfUFJPR19TRUQKK10pI200X2lmbmRlZgorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0xUX0FDX1BST0dfU0VEXSwgW0FDX1BST0dfU0VEXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdLCBbXSkKKworCisjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRmluZCBvdXQgd2hldGhlciB0aGUgc2hlbGwgaXMgQm91cm5lIG9yIFhTSSBjb21wYXRpYmxlLAorIyBvciBoYXMgc29tZSBvdGhlciB1c2VmdWwgZmVhdHVyZXMuCittNF9kZWZ1bihbX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHNdKQorIyBUcnkgc29tZSBYU0kgZmVhdHVyZXMKK3hzaV9zaGVsbD1ubworKCBfbHRfZHVtbXk9ImEvYi9jIgorICB0ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAorICAgICAgPSBjLGEvYiwsIFwKKyAgICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCisgICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9kZXYvbnVsbCAyPiYxIFwKKyAgJiYgeHNpX3NoZWxsPXllcworQUNfTVNHX1JFU1VMVChbJHhzaV9zaGVsbF0pCitfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbeHNpX3NoZWxsPSckeHNpX3NoZWxsJ10pCisKK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Il0pCitsdF9zaGVsbF9hcHBlbmQ9bm8KKyggZm9vPWJhcjsgc2V0IGZvbyBiYXo7IGV2YWwgIiRbMV0rPVwkWzJdIiAmJiB0ZXN0ICIkZm9vIiA9IGJhcmJheiApIFwKKyAgICA+L2Rldi9udWxsIDI+JjEgXAorICAmJiBsdF9zaGVsbF9hcHBlbmQ9eWVzCitBQ19NU0dfUkVTVUxUKFskbHRfc2hlbGxfYXBwZW5kXSkKK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFtsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQnXSkKKworaWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGx0X3Vuc2V0PXVuc2V0CitlbHNlCisgIGx0X3Vuc2V0PWZhbHNlCitmaQorX0xUX0RFQ0woW10sIFtsdF91bnNldF0sIFswXSwgW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICJ1bnNldCJdKWRubAorCisjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCitjYXNlIGBlY2hvIFh8dHIgWCAnXDEwMSdgIGluCisgQSkgIyBBU0NJSSBiYXNlZCBzeXN0ZW0KKyAgICAjIFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisgIGx0X1NQMk5MPSd0ciBcMDQwIFwwMTInCisgIGx0X05MMlNQPSd0ciBcMDE1XDAxMiBcMDQwXDA0MCcKKyAgOzsKKyAqKSAjIEVCQ0RJQyBiYXNlZCBzeXN0ZW0KKyAgbHRfU1AyTkw9J3RyIFwxMDAgXG4nCisgIGx0X05MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworICA7OworZXNhYworX0xUX0RFQ0woW1NQMk5MXSwgW2x0X1NQMk5MXSwgWzFdLCBbdHVybiBzcGFjZXMgaW50byBuZXdsaW5lc10pZG5sCitfTFRfREVDTChbTkwyU1BdLCBbbHRfTkwyU1BdLCBbMV0sIFt0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzXSlkbmwKK10pIyBfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVMKKworCisjIF9MVF9QUk9HX1hTSV9TSEVMTEZOUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQm91cm5lIGFuZCBYU0kgY29tcGF0aWJsZSB2YXJpYW50cyBvZiBzb21lIHVzZWZ1bCBzaGVsbCBmdW5jdGlvbnMuCittNF9kZWZ1bihbX0xUX1BST0dfWFNJX1NIRUxMRk5TXSwKK1tjYXNlICR4c2lfc2hlbGwgaW4KKyAgeWVzKQorICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisKKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAorIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAorIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCitmdW5jX2Rpcm5hbWUgKCkKK3sKKyAgY2FzZSAkezF9IGluCisgICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7CisgIGVzYWMKK30KKworIyBmdW5jX2Jhc2VuYW1lIGZpbGUKK2Z1bmNfYmFzZW5hbWUgKCkKK3sKKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgorfQorCisjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisjIHBlcmZvcm0gZnVuY19iYXNlbmFtZSBhbmQgZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1bmN0aW9uCisjIGNhbGw6CisjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAorIyAgICAgICAgICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0CisjICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorIyAgIGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9mIEZJTEUuCisjICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9yIGVmZmljaWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0bworIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCitmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCit7CisgIGNhc2UgJHsxfSBpbgorICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisgICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OworICBlc2FjCisgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKK30KKworIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCisjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAorIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisjIGRvdCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCitmdW5jX3N0cmlwbmFtZSAoKQoreworICAjIHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1glJFl9IGNvcnJlY3RseSBpZiBib3RoIFggYW5kIFkgYXJlCisgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGluYXJ5IHBhcmFtZXRlciBmaXJzdC4KKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0IyIkezF9In0KKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In0KK30KKworIyBmdW5jX29wdF9zcGxpdAorZnVuY19vcHRfc3BsaXQgKCkKK3sKKyAgZnVuY19vcHRfc3BsaXRfb3B0PSR7MSUlPSp9CisgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19Cit9CisKKyMgZnVuY19sbzJvIG9iamVjdAorZnVuY19sbzJvICgpCit7CisgIGNhc2UgJHsxfSBpbgorICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtvYmpleHR9IDs7CisgICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7CisgIGVzYWMKK30KKworIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKK2Z1bmNfeGZvcm0gKCkKK3sKKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbworfQorCisjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCitmdW5jX2FyaXRoICgpCit7CisgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkWypdICkpCit9CisKKyMgZnVuY19sZW4gc3RyaW5nCisjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCitmdW5jX2xlbiAoKQoreworICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX0KK30KKworX0xUX0VPRgorICAgIDs7CisgICopICMgQm91cm5lIGNvbXBhdGlibGUgZnVuY3Rpb25zLgorICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisKKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAorIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAorIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCitmdW5jX2Rpcm5hbWUgKCkKK3sKKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKyAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCisgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKKyAgZWxzZQorICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKKyAgZmkKK30KKworIyBmdW5jX2Jhc2VuYW1lIGZpbGUKK2Z1bmNfYmFzZW5hbWUgKCkKK3sKKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKK30KKworZG5sIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUKK2RubCBBIHBvcnRhYmxlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBhbHJlYWR5IGRlZmluZWQgaW4gZ2VuZXJhbC5tNHNoCitkbmwgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQgaGVyZS4KKworIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCisjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAorIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisjIGRvdCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCisjIGZ1bmNfc3RyaXBfc3VmZml4IHByZWZpeCBuYW1lCitmdW5jX3N0cmlwbmFtZSAoKQoreworICBjYXNlICR7Mn0gaW4KKyAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwKKyAgICAgICAgICAgfCAkWHNlZCAtZSAicyVeJHsxfSUlIiAtZSAicyVcXFxcJHsyfVwkJSUiYDs7CisgICAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCisgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlJHsyfVwkJSUiYDs7CisgIGVzYWMKK30KKworIyBzZWQgc2NyaXB0czoKK215X3NlZF9sb25nX29wdD0nMXMvXlwoLVtbXj1dXSpcKT0uKi9cMS87cScKK215X3NlZF9sb25nX2FyZz0nMXMvXi1bW149XV0qPS8vJworCisjIGZ1bmNfb3B0X3NwbGl0CitmdW5jX29wdF9zcGxpdCAoKQoreworICBmdW5jX29wdF9zcGxpdF9vcHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJG15X3NlZF9sb25nX29wdCJgCisgIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAKK30KKworIyBmdW5jX2xvMm8gb2JqZWN0CitmdW5jX2xvMm8gKCkKK3sKKyAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJgCit9CisKKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCitmdW5jX3hmb3JtICgpCit7CisgIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5bW14uXV0qJC8ubG8vJ2AKK30KKworIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorZnVuY19hcml0aCAoKQoreworICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJFtAXSJgCit9CisKKyMgZnVuY19sZW4gc3RyaW5nCisjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCitmdW5jX2xlbiAoKQoreworICBmdW5jX2xlbl9yZXN1bHQ9YGV4cHIgIiRbMV0iIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xlbmAKK30KKworX0xUX0VPRgorZXNhYworCitjYXNlICRsdF9zaGVsbF9hcHBlbmQgaW4KKyAgeWVzKQorICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisKKyMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCisjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KK2Z1bmNfYXBwZW5kICgpCit7CisgIGV2YWwgIiRbMV0rPVwkWzJdIgorfQorX0xUX0VPRgorICAgIDs7CisgICopCisgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKworIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgorZnVuY19hcHBlbmQgKCkKK3sKKyAgZXZhbCAiJFsxXT1cJCRbMV1cJFsyXSIKK30KKworX0xUX0VPRgorICAgIDs7CisgIGVzYWMKK10pCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L200L2x0b3B0aW9ucy5tNCBiL2xpYnhtbDItMi43LjcvbTQvbHRvcHRpb25zLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MTUxYTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L200L2x0b3B0aW9ucy5tNApAQCAtMCwwICsxLDM2OCBAQAorIyBIZWxwZXIgZnVuY3Rpb25zIGZvciBvcHRpb24gaGFuZGxpbmcuICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisjCisjICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIFdyaXR0ZW4gYnkgR2FyeSBWLiBWYXVnaGFuLCAyMDA0CisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgNiBsdG9wdGlvbnMubTQKKworIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KK0FDX0RFRlVOKFtMVE9QVElPTlNfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKKworCisjIF9MVF9NQU5HTEVfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbX0xUX01BTkdMRV9PUFRJT05dLAorW1tfTFRfT1BUSU9OX11tNF9icGF0c3Vic3QoJDFfXyQyLCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQorCisKKyMgX0xUX1NFVF9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZXQgb3B0aW9uIE9QVElPTi1OQU1FIGZvciBtYWNybyBNQUNSTy1OQU1FLCBhbmQgaWYgdGhlcmUgaXMgYQorIyBtYXRjaGluZyBoYW5kbGVyIGRlZmluZWQsIGRpc3BhdGNoIHRvIGl0LiAgT3RoZXIgT1BUSU9OLU5BTUVzIGFyZQorIyBzYXZlZCBhcyBhIGZsYWcuCittNF9kZWZpbmUoW19MVF9TRVRfT1BUSU9OXSwKK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgWyQyXSkpZG5sCittNF9pZmRlZihfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLAorICAgICAgICBfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLAorICAgIFttNF93YXJuaW5nKFtVbmtub3duICQxIG9wdGlvbiBgJDInXSldKVtdZG5sCitdKQorCisKKyMgX0xUX0lGX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KK200X2RlZmluZShbX0xUX0lGX09QVElPTl0sCitbbTRfaWZkZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgWyQyXSksIFskM10sIFskNF0pXSkKKworCisjIF9MVF9VTkxFU1NfT1BUSU9OUyhNQUNSTy1OQU1FLCBPUFRJT04tTElTVCwgSUYtTk9ULVNFVCkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBFeGVjdXRlIElGLU5PVC1TRVQgdW5sZXNzIGFsbCBvcHRpb25zIGluIE9QVElPTi1MSVNUIGZvciBNQUNSTy1OQU1FCisjIGFyZSBzZXQuCittNF9kZWZpbmUoW19MVF9VTkxFU1NfT1BUSU9OU10sCitbbTRfZm9yZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShbJDJdKSksCisJICAgIFttNF9pZmRlZihfTFRfTUFOR0xFX09QVElPTihbJDFdLCBfTFRfT3B0aW9uKSwKKwkJICAgICAgW200X2RlZmluZShbJDBfZm91bmRdKV0pXSlbXWRubAorbTRfaWZkZWYoWyQwX2ZvdW5kXSwgW200X3VuZGVmaW5lKFskMF9mb3VuZF0pXSwgWyQzCitdKVtdZG5sCitdKQorCisKKyMgX0xUX1NFVF9PUFRJT05TKE1BQ1JPLU5BTUUsIE9QVElPTi1MSVNUKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE9QVElPTi1MSVNUIGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgTGlidG9vbCBvcHRpb25zIGFzc29jaWF0ZWQKKyMgd2l0aCBNQUNSTy1OQU1FLiAgSWYgYW55IE9QVElPTiBoYXMgYSBtYXRjaGluZyBoYW5kbGVyIGRlY2xhcmVkIHdpdGgKKyMgTFRfT1BUSU9OX0RFRklORSwgZGlzcGF0Y2ggdG8gdGhhdCBtYWNybzsgb3RoZXJ3aXNlIGNvbXBsYWluIGFib3V0CisjIHRoZSB1bmtub3duIG9wdGlvbiBhbmQgZXhpdC4KK200X2RlZnVuKFtfTFRfU0VUX09QVElPTlNdLAorWyMgU2V0IG9wdGlvbnMKK200X2ZvcmVhY2goW19MVF9PcHRpb25dLCBtNF9zcGxpdChtNF9ub3JtYWxpemUoWyQyXSkpLAorICAgIFtfTFRfU0VUX09QVElPTihbJDFdLCBfTFRfT3B0aW9uKV0pCisKK200X2lmKFskMV0sW0xUX0lOSVRdLFsKKyAgZG5sCisgIGRubCBTaW1wbHkgc2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMgKGkuZSBvZmYpIGlmIGJvb2xlYW4gb3B0aW9ucyB3ZXJlIG5vdAorICBkbmwgc3BlY2lmaWVkOgorICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49bm8KKyAgXSkKKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3dpbjMyLWRsbF0sIFtlbmFibGVfd2luMzJfZGxsPW5vCisgIF0pCisgIGRubAorICBkbmwgSWYgbm8gcmVmZXJlbmNlIHdhcyBtYWRlIHRvIHZhcmlvdXMgcGFpcnMgb2Ygb3Bwb3Npbmcgb3B0aW9ucywgdGhlbgorICBkbmwgd2UgcnVuIHRoZSBkZWZhdWx0IG1vZGUgaGFuZGxlciBmb3IgdGhlIHBhaXIuICBGb3IgZXhhbXBsZSwgaWYgbmVpdGhlcgorICBkbmwgYHNoYXJlZCcgbm9yIGBkaXNhYmxlLXNoYXJlZCcgd2FzIHBhc3NlZCwgd2UgZW5hYmxlIGJ1aWxkaW5nIG9mIHNoYXJlZAorICBkbmwgYXJjaGl2ZXMgYnkgZGVmYXVsdDoKKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3NoYXJlZCBkaXNhYmxlLXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRF0pCisgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtzdGF0aWMgZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUNdKQorICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbcGljLW9ubHkgbm8tcGljXSwgW19MVF9XSVRIX1BJQ10pCisgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtmYXN0LWluc3RhbGwgZGlzYWJsZS1mYXN0LWluc3RhbGxdLAorICAJCSAgIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF0pCisgIF0pCitdKSMgX0xUX1NFVF9PUFRJT05TCisKKworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBNYWNyb3MgdG8gaGFuZGxlIExUX0lOSVQgb3B0aW9ucy4gIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworCisjIF9MVF9NQU5HTEVfREVGVU4oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19MVF9NQU5HTEVfREVGVU5dLAorW1tfTFRfT1BUSU9OX0RFRlVOX11tNF9icGF0c3Vic3QobTRfdG91cHBlcihbJDFfXyQyXSksIFtbXkEtWjAtOV9dXSwgW19dKV0pCisKKworIyBMVF9PUFRJT05fREVGSU5FKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FLCBDT0RFKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtMVF9PUFRJT05fREVGSU5FXSwKK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwgWyQzXSlbXWRubAorXSkjIExUX09QVElPTl9ERUZJTkUKKworCisjIGRsb3BlbgorIyAtLS0tLS0KK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49eWVzCitdKQorCitBVV9ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLAorW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rsb3Blbl0pCitBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQorcHV0IHRoZSBgZGxvcGVuJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCitdKQorCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwgW10pCisKKworIyB3aW4zMi1kbGwKKyMgLS0tLS0tLS0tCisjIERlY2xhcmUgcGFja2FnZSBzdXBwb3J0IGZvciBidWlsZGluZyB3aW4zMiBkbGwncy4KK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbd2luMzItZGxsXSwKK1tlbmFibGVfd2luMzJfZGxsPXllcworCitjYXNlICRob3N0IGluCisqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLWNlZ2NjKikKKyAgQUNfQ0hFQ0tfVE9PTChBUywgYXMsIGZhbHNlKQorICBBQ19DSEVDS19UT09MKERMTFRPT0wsIGRsbHRvb2wsIGZhbHNlKQorICBBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQorICA7OworZXNhYworCit0ZXN0IC16ICIkQVMiICYmIEFTPWFzCitfTFRfREVDTChbXSwgW0FTXSwgICAgICBbMF0sIFtBc3NlbWJsZXIgcHJvZ3JhbV0pZG5sCisKK3Rlc3QgLXogIiRETExUT09MIiAmJiBETExUT09MPWRsbHRvb2wKK19MVF9ERUNMKFtdLCBbRExMVE9PTF0sIFswXSwgW0RMTCBjcmVhdGlvbiBwcm9ncmFtXSlkbmwKKwordGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAorX0xUX0RFQ0woW10sIFtPQkpEVU1QXSwgWzBdLCBbT2JqZWN0IGR1bXBlciBwcm9ncmFtXSlkbmwKK10pIyB3aW4zMi1kbGwKKworQVVfREVGVU4oW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwKK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCitfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFt3aW4zMi1kbGxdKQorQUNfRElBR05PU0UoW29ic29sZXRlXSwKK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKK3B1dCB0aGUgYHdpbjMyLWRsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorXSkKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sIFtdKQorCisKKyMgX0xUX0VOQUJMRV9TSEFSRUQoW0RFRkFVTFRdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc2hhcmVkIGZsYWcsIGFuZCBzdXBwb3J0cyB0aGUgYHNoYXJlZCcgYW5kCisjIGBkaXNhYmxlLXNoYXJlZCcgTFRfSU5JVCBvcHRpb25zLgorIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCittNF9kZWZpbmUoW19MVF9FTkFCTEVfU0hBUkVEXSwKK1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCitBQ19BUkdfRU5BQkxFKFtzaGFyZWRdLAorICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtc2hhcmVkQDw6QD1QS0dTQDo+QF0sCisJW2J1aWxkIHNoYXJlZCBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XV9MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFRbQDo+QF0pXSwKKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7CisgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8gOzsKKyAgICAqKQorICAgICAgZW5hYmxlX3NoYXJlZD1ubworICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisJSUZTPSIkbHRfc2F2ZV9pZnMiCisJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCisJZmkKKyAgICAgIGRvbmUKKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorICAgICAgOzsKKyAgICBlc2FjXSwKKyAgICBbZW5hYmxlX3NoYXJlZD1dX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVCkKKworICAgIF9MVF9ERUNMKFtidWlsZF9saWJ0b29sX2xpYnNdLCBbZW5hYmxlX3NoYXJlZF0sIFswXSwKKwlbV2hldGhlciBvciBub3QgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCitdKSMgX0xUX0VOQUJMRV9TSEFSRUQKKworTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtzaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRUQoW3llc10pXSkKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRUQoW25vXSldKQorCisjIE9sZCBuYW1lczoKK0FDX0RFRlVOKFtBQ19FTkFCTEVfU0hBUkVEXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3NoYXJlZF0pCitdKQorCitBQ19ERUZVTihbQUNfRElTQUJMRV9TSEFSRURdLAorW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rpc2FibGUtc2hhcmVkXSkKK10pCisKK0FVX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgW0FDX0VOQUJMRV9TSEFSRUQoJEApXSkKK0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NIQVJFRF0sIFtBQ19ESVNBQkxFX1NIQVJFRCgkQCldKQorCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TSEFSRURdLCBbXSkKK2RubCBBQ19ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbXSkKKworCisKKyMgX0xUX0VOQUJMRV9TVEFUSUMoW0RFRkFVTFRdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc3RhdGljIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgc3RhdGljJyBhbmQKKyMgYGRpc2FibGUtc3RhdGljJyBMVF9JTklUIG9wdGlvbnMuCisjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KK200X2RlZmluZShbX0xUX0VOQUJMRV9TVEFUSUNdLAorW200X2RlZmluZShbX0xUX0VOQUJMRV9TVEFUSUNfREVGQVVMVF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlkbmwKK0FDX0FSR19FTkFCTEUoW3N0YXRpY10sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWNAPDpAPVBLR1NAOj5AXSwKKwlbYnVpbGQgc3RhdGljIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9TVEFUSUNfREVGQVVMVFtAOj5AXSldLAorICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKyAgICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OworICAgICopCisgICAgIGVuYWJsZV9zdGF0aWM9bm8KKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworCUlGUz0iJGx0X3NhdmVfaWZzIgorCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisJICBlbmFibGVfc3RhdGljPXllcworCWZpCisgICAgICBkb25lCisgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKyAgICAgIDs7CisgICAgZXNhY10sCisgICAgW2VuYWJsZV9zdGF0aWM9XV9MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFQpCisKKyAgICBfTFRfREVDTChbYnVpbGRfb2xkX2xpYnNdLCBbZW5hYmxlX3N0YXRpY10sIFswXSwKKwlbV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCitdKSMgX0xUX0VOQUJMRV9TVEFUSUMKKworTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtzdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMoW3llc10pXSkKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMoW25vXSldKQorCisjIE9sZCBuYW1lczoKK0FDX0RFRlVOKFtBQ19FTkFCTEVfU1RBVElDXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3N0YXRpY10pCitdKQorCitBQ19ERUZVTihbQUNfRElTQUJMRV9TVEFUSUNdLAorW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rpc2FibGUtc3RhdGljXSkKK10pCisKK0FVX0RFRlVOKFtBTV9FTkFCTEVfU1RBVElDXSwgW0FDX0VOQUJMRV9TVEFUSUMoJEApXSkKK0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NUQVRJQ10sIFtBQ19ESVNBQkxFX1NUQVRJQygkQCldKQorCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBbXSkKK2RubCBBQ19ERUZVTihbQU1fRElTQUJMRV9TVEFUSUNdLCBbXSkKKworCisKKyMgX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW0RFRkFVTFRdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgZmFzdC1pbnN0YWxsJworIyBhbmQgYGRpc2FibGUtZmFzdC1pbnN0YWxsJyBMVF9JTklUIG9wdGlvbnMuCisjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KK200X2RlZmluZShbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExdLAorW200X2RlZmluZShbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlkbmwKK0FDX0FSR19FTkFCTEUoW2Zhc3QtaW5zdGFsbF0sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1mYXN0LWluc3RhbGxAPDpAPVBLR1NAOj5AXSwKKyAgICBbb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUW0A6PkBdKV0sCisgICAgW3A9JHtQQUNLQUdFLWRlZmF1bHR9CisgICAgY2FzZSAkZW5hYmxldmFsIGluCisgICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5vIDs7CisgICAgKikKKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworCUlGUz0iJGx0X3NhdmVfaWZzIgorCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisJICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcworCWZpCisgICAgICBkb25lCisgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKyAgICAgIDs7CisgICAgZXNhY10sCisgICAgW2VuYWJsZV9mYXN0X2luc3RhbGw9XV9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFQpCisKK19MVF9ERUNMKFtmYXN0X2luc3RhbGxdLCBbZW5hYmxlX2Zhc3RfaW5zdGFsbF0sIFswXSwKKwkgW1doZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbl0pZG5sCitdKSMgX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwKKworTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtmYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW3llc10pXSkKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW25vXSldKQorCisjIE9sZCBuYW1lczoKK0FVX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW2Zhc3QtaW5zdGFsbF0pCitBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKK3RoZSBgZmFzdC1pbnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCitdKQorCitBVV9ERUZVTihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAorW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rpc2FibGUtZmFzdC1pbnN0YWxsXSkKK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCitbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91IHB1dAordGhlIGBkaXNhYmxlLWZhc3QtaW5zdGFsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorXSkKKworZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwgW10pCitkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwgW10pCisKKworIyBfTFRfV0lUSF9QSUMoW01PREVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBpbXBsZW1lbnQgdGhlIC0td2l0aC1waWMgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBwaWMtb25seScgYW5kIGBuby1waWMnCisjIExUX0lOSVQgb3B0aW9ucy4KKyMgTU9ERSBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGBib3RoJy4KK200X2RlZmluZShbX0xUX1dJVEhfUElDXSwKK1tBQ19BUkdfV0lUSChbcGljXSwKKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1waWNdLAorCVt0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBAPDpAZGVmYXVsdD11c2UgYm90aEA6PkBdKV0sCisgICAgW3BpY19tb2RlPSIkd2l0aHZhbCJdLAorICAgIFtwaWNfbW9kZT1kZWZhdWx0XSkKKwordGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1tNF9kZWZhdWx0KFskMV0sIFtkZWZhdWx0XSkKKworX0xUX0RFQ0woW10sIFtwaWNfbW9kZV0sIFswXSwgW1doYXQgdHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkXSlkbmwKK10pIyBfTFRfV0lUSF9QSUMKKworTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtwaWMtb25seV0sIFtfTFRfV0lUSF9QSUMoW3llc10pXSkKK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbbm8tcGljXSwgW19MVF9XSVRIX1BJQyhbbm9dKV0pCisKKyMgT2xkIG5hbWU6CitBVV9ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwKK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtwaWMtb25seV0pCitBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQorcHV0IHRoZSBgcGljLW9ubHknIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKK10pCisKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwgW10pCisKKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBMVERMX0lOSVQgT3B0aW9ucyAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKworbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW10pCitMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbbm9ucmVjdXJzaXZlXSwKKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbbm9ucmVjdXJzaXZlXSldKQorTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW3JlY3Vyc2l2ZV0sCisJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW3JlY3Vyc2l2ZV0pXSkKK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtzdWJwcm9qZWN0XSwKKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbc3VicHJvamVjdF0pXSkKKworbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwgW10pCitMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbaW5zdGFsbGFibGVdLAorCQkgW200X2RlZmluZShbX0xURExfVFlQRV0sIFtpbnN0YWxsYWJsZV0pXSkKK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtjb252ZW5pZW5jZV0sCisJCSBbbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwgW2NvbnZlbmllbmNlXSldKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9tNC9sdHN1Z2FyLm00IGIvbGlieG1sMi0yLjcuNy9tNC9sdHN1Z2FyLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwMDBhMDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L200L2x0c3VnYXIubTQKQEAgLTAsMCArMSwxMjMgQEAKKyMgbHRzdWdhci5tNCAtLSBsaWJ0b29sIG00IGJhc2UgbGF5ZXIuICAgICAgICAgICAgICAgICAgICAgICAgIC0qLUF1dG9jb25mLSotCisjCisjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCA2IGx0c3VnYXIubTQKKworIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KK0FDX0RFRlVOKFtMVFNVR0FSX1ZFUlNJT05dLCBbbTRfaWYoWzAuMV0pXSkKKworCisjIGx0X2pvaW4oU0VQLCBBUkcxLCBbQVJHMi4uLl0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFByb2R1Y2UgQVJHMVNFUEFSRzIuLi5TRVBBUkduLCBvbWl0dGluZyBbXSBhcmd1bWVudHMgYW5kIHRoZWlyCisjIGFzc29jaWF0ZWQgc2VwYXJhdG9yLgorIyBOZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gbTRfam9pbiBmcm9tIEF1dG9jb25mIDIuNjIsIHNpbmNlIGFsbCBlYXJsaWVyCisjIHZlcnNpb25zIGluIG00c3VnYXIgaGFkIGJ1Z3MuCittNF9kZWZpbmUoW2x0X2pvaW5dLAorW200X2lmKFskI10sIFsxXSwgW10sCisgICAgICAgWyQjXSwgWzJdLCBbWyQyXV0sCisgICAgICAgW200X2lmKFskMl0sIFtdLCBbXSwgW1skMl1fXSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKK200X2RlZmluZShbX2x0X2pvaW5dLAorW200X2lmKFskIyQyXSwgWzJdLCBbXSwKKyAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQxJDJdXSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKKworCisjIGx0X2NhcihMSVNUKQorIyBsdF9jZHIoTElTVCkKKyMgLS0tLS0tLS0tLS0tCisjIE1hbmlwdWxhdGUgbTQgbGlzdHMuCisjIFRoZXNlIG1hY3JvcyBhcmUgbmVjZXNzYXJ5IGFzIGxvbmcgYXMgd2lsbCBzdGlsbCBuZWVkIHRvIHN1cHBvcnQKKyMgQXV0b2NvbmYtMi41OSB3aGljaCBxdW90ZXMgZGlmZmVyZW50bHkuCittNF9kZWZpbmUoW2x0X2Nhcl0sIFtbJDFdXSkKK200X2RlZmluZShbbHRfY2RyXSwKK1ttNF9pZihbJCNdLCAwLCBbbTRfZmF0YWwoWyQwOiBjYW5ub3QgYmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzXSldLAorICAgICAgIFskI10sIDEsIFtdLAorICAgICAgIFttNF9kcXVvdGUobTRfc2hpZnQoJEApKV0pXSkKK200X2RlZmluZShbbHRfdW5xdW90ZV0sICQxKQorCisKKyMgbHRfYXBwZW5kKE1BQ1JPLU5BTUUsIFNUUklORywgW1NFUEFSQVRPUl0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBSZWRlZmluZSBNQUNSTy1OQU1FIHRvIGhvbGQgaXRzIGZvcm1lciBjb250ZW50IHBsdXMgYFNFUEFSQVRPUidgU1RSSU5HJy4KKyMgTm90ZSB0aGF0IG5laXRoZXIgU0VQQVJBVE9SIG5vciBTVFJJTkcgYXJlIGV4cGFuZGVkOyB0aGV5IGFyZSBhcHBlbmRlZAorIyB0byBNQUNSTy1OQU1FIGFzIGlzIChsZWF2aW5nIHRoZSBleHBhbnNpb24gZm9yIHdoZW4gTUFDUk8tTkFNRSBpcyBpbnZva2VkKS4KKyMgTm8gU0VQQVJBVE9SIGlzIG91dHB1dCBpZiBNQUNSTy1OQU1FIHdhcyBwcmV2aW91c2x5IHVuZGVmaW5lZCAoZGlmZmVyZW50CisjIHRoYW4gZGVmaW5lZCBhbmQgZW1wdHkpLgorIworIyBUaGlzIG1hY3JvIGlzIG5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBvbiBBdXRvY29uZiAyLjYyLCBzaW5jZSBlYXJsaWVyCisjIHZlcnNpb25zIG9mIG00c3VnYXIgbWlzdGFrZW5seSBleHBhbmRlZCBTRVBBUkFUT1IgYnV0IG5vdCBTVFJJTkcuCittNF9kZWZpbmUoW2x0X2FwcGVuZF0sCitbbTRfZGVmaW5lKFskMV0sCisJICAgbTRfaWZkZWYoWyQxXSwgW200X2RlZm4oWyQxXSlbJDNdXSlbJDJdKV0pCisKKworCisjIGx0X2NvbWJpbmUoU0VQLCBQUkVGSVgtTElTVCwgSU5GSVgsIFNVRkZJWDEsIFtTVUZGSVgyLi4uXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBQcm9kdWNlIGEgU0VQIGRlbGltaXRlZCBsaXN0IG9mIGFsbCBwYWlyZWQgY29tYmluYXRpb25zIG9mIGVsZW1lbnRzIG9mCisjIFBSRUZJWC1MSVNUIHdpdGggU1VGRklYMSB0aHJvdWdoIFNVRkZJWG4uICBFYWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QKKyMgaGFzIHRoZSBmb3JtIFBSRUZJWG1JTkZJWFNVRkZJWG4uCisjIE5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBvbiBtNF9jb21iaW5lIGFkZGVkIGluIEF1dG9jb25mIDIuNjIuCittNF9kZWZpbmUoW2x0X2NvbWJpbmVdLAorW200X2lmKG00X2V2YWwoWyQjID4gM10pLCBbMV0sCisgICAgICAgW200X3B1c2hkZWYoW19MdF9zZXBdLCBbbTRfZGVmaW5lKFtfTHRfc2VwXSwgbTRfZGVmbihbbHRfY2FyXSkpXSldXWRubAorW1ttNF9mb3JlYWNoKFtfTHRfcHJlZml4XSwgWyQyXSwKKwkgICAgIFttNF9mb3JlYWNoKFtfTHRfc3VmZml4XSwKKwkJXW00X2RxdW90ZShtNF9kcXVvdGUobTRfc2hpZnQobTRfc2hpZnQobTRfc2hpZnQoJEApKSkpKVssCisJW19MdF9zZXAoWyQxXSlbXW00X2RlZm4oW19MdF9wcmVmaXhdKVskM11tNF9kZWZuKFtfTHRfc3VmZml4XSldKV0pXSldKQorCisKKyMgbHRfaWZfYXBwZW5kX3VuaXEoTUFDUk8tTkFNRSwgVkFSTkFNRSwgW1NFUEFSQVRPUl0sIFtVTklRXSwgW05PVC1VTklRXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSWZmIE1BQ1JPLU5BTUUgZG9lcyBub3QgeWV0IGNvbnRhaW4gVkFSTkFNRSwgdGhlbiBhcHBlbmQgaXQgKGRlbGltaXRlZAorIyBieSBTRVBBUkFUT1IgaWYgc3VwcGxpZWQpIGFuZCBleHBhbmQgVU5JUSwgZWxzZSBOT1QtVU5JUS4KK200X2RlZmluZShbbHRfaWZfYXBwZW5kX3VuaXFdLAorW200X2lmZGVmKFskMV0sCisJICBbbTRfaWYobTRfaW5kZXgoWyQzXW00X2RlZm4oWyQxXSlbJDNdLCBbJDMkMiQzXSksIFstMV0sCisJCSBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdLAorCQkgWyQ1XSldLAorCSAgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSldKQorCisKKyMgbHRfZGljdF9hZGQoRElDVCwgS0VZLCBWQUxVRSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGljdF9hZGRdLAorW200X2RlZmluZShbJDEoJDIpXSwgWyQzXSldKQorCisKKyMgbHRfZGljdF9hZGRfc3Via2V5KERJQ1QsIEtFWSwgU1VCS0VZLCBWQUxVRSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK200X2RlZmluZShbbHRfZGljdF9hZGRfc3Via2V5XSwKK1ttNF9kZWZpbmUoWyQxKCQyOiQzKV0sIFskNF0pXSkKKworCisjIGx0X2RpY3RfZmV0Y2goRElDVCwgS0VZLCBbU1VCS0VZXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtsdF9kaWN0X2ZldGNoXSwKK1ttNF9pZnZhbChbJDNdLAorCW00X2lmZGVmKFskMSgkMjokMyldLCBbbTRfZGVmbihbJDEoJDI6JDMpXSldKSwKKyAgICBtNF9pZmRlZihbJDEoJDIpXSwgW200X2RlZm4oWyQxKCQyKV0pXSkpXSkKKworCisjIGx0X2lmX2RpY3RfZmV0Y2goRElDVCwgS0VZLCBbU1VCS0VZXSwgVkFMVUUsIElGLVRSVUUsIFtJRi1GQUxTRV0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW2x0X2lmX2RpY3RfZmV0Y2hdLAorW200X2lmKGx0X2RpY3RfZmV0Y2goWyQxXSwgWyQyXSwgWyQzXSksIFskNF0sCisJWyQ1XSwKKyAgICBbJDZdKV0pCisKKworIyBsdF9kaWN0X2ZpbHRlcihESUNULCBbU1VCS0VZXSwgVkFMVUUsIFtTRVBBUkFUT1JdLCBLRVksIFsuLi5dKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtsdF9kaWN0X2ZpbHRlcl0sCitbbTRfaWYoWyQ1XSwgW10sIFtdLAorICBbbHRfam9pbihtNF9xdW90ZShtNF9kZWZhdWx0KFskNF0sIFtbLCBdXSkpLAorICAgICAgICAgICBsdF91bnF1b3RlKG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9mb3JlYWNoKF9MdF9rZXksIGx0X2NhcihbbTRfc2hpZnRuKDQsICRAKV0pLAorCQkgICAgICBbbHRfaWZfZGljdF9mZXRjaChbJDFdLCBfTHRfa2V5LCBbJDJdLCBbJDNdLCBbX0x0X2tleSBdKV0pKSkpKV0pW11kbmwKK10pCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L200L2x0dmVyc2lvbi5tNCBiL2xpYnhtbDItMi43LjcvbTQvbHR2ZXJzaW9uLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYzUzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L200L2x0dmVyc2lvbi5tNApAQCAtMCwwICsxLDIzIEBACisjIGx0dmVyc2lvbi5tNCAtLSB2ZXJzaW9uIG51bWJlcnMJCQktKi0gQXV0b2NvbmYgLSotCisjCisjICAgQ29weXJpZ2h0IChDKSAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIFdyaXR0ZW4gYnkgU2NvdHQgSmFtZXMgUmVtbmFudCwgMjAwNAorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgR2VuZXJhdGVkIGZyb20gbHR2ZXJzaW9uLmluLgorCisjIHNlcmlhbCAzMDE3IGx0dmVyc2lvbi5tNAorIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbAorCittNF9kZWZpbmUoW0xUX1BBQ0tBR0VfVkVSU0lPTl0sIFsyLjIuNmJdKQorbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwgWzEuMzAxN10pCisKK0FDX0RFRlVOKFtMVFZFUlNJT05fVkVSU0lPTl0sCitbbWFjcm9fdmVyc2lvbj0nMi4yLjZiJworbWFjcm9fcmV2aXNpb249JzEuMzAxNycKK19MVF9ERUNMKCwgbWFjcm9fdmVyc2lvbiwgMCwgW1doaWNoIHJlbGVhc2Ugb2YgbGlidG9vbC5tNCB3YXMgdXNlZD9dKQorX0xUX0RFQ0woLCBtYWNyb19yZXZpc2lvbiwgMCkKK10pCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L200L2x0fm9ic29sZXRlLm00IGIvbGlieG1sMi0yLjcuNy9tNC9sdH5vYnNvbGV0ZS5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzdiYjIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9tNC9sdH5vYnNvbGV0ZS5tNApAQCAtMCwwICsxLDkyIEBACisjIGx0fm9ic29sZXRlLm00IC0tIGFjbG9jYWwgc2F0aXNmeWluZyBvYnNvbGV0ZSBkZWZpbml0aW9ucy4gICAgLSotQXV0b2NvbmYtKi0KKyMKKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgV3JpdHRlbiBieSBTY290dCBKYW1lcyBSZW1uYW50LCAyMDA0LgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDQgbHR+b2Jzb2xldGUubTQKKworIyBUaGVzZSBleGlzdCBlbnRpcmVseSB0byBmb29sIGFjbG9jYWwgd2hlbiBib290c3RyYXBwaW5nIGxpYnRvb2wuCisjCisjIEluIHRoZSBwYXN0IGxpYnRvb2wubTQgaGFzIHByb3ZpZGVkIG1hY3JvcyB2aWEgQUNfREVGVU4gKG9yIEFVX0RFRlVOKQorIyB3aGljaCBoYXZlIGxhdGVyIGJlZW4gY2hhbmdlZCB0byBtNF9kZWZpbmUgYXMgdGhleSBhcmVuJ3QgcGFydCBvZiB0aGUKKyMgZXhwb3J0ZWQgQVBJLCBvciBtb3ZlZCB0byBBdXRvY29uZiBvciBBdXRvbWFrZSB3aGVyZSB0aGV5IGJlbG9uZy4KKyMKKyMgVGhlIHRyb3VibGUgaXMsIGFjbG9jYWwgaXMgYSBiaXQgdGhpY2suICBJdCdsbCBzZWUgdGhlIG9sZCBBQ19ERUZVTgorIyBpbiAvdXNyL3NoYXJlL2FjbG9jYWwvbGlidG9vbC5tNCBhbmQgcmVtZW1iZXIgaXQsIHRoZW4gd2hlbiBpdCBzZWVzIHVzCisjIHVzaW5nIGEgbWFjcm8gd2l0aCB0aGUgc2FtZSBuYW1lIGluIG91ciBsb2NhbCBtNC9saWJ0b29sLm00IGl0J2xsCisjIHB1bGwgdGhlIG9sZCBsaWJ0b29sLm00IGluIChpdCBkb2Vzbid0IHNlZSBvdXIgc2hpbnkgbmV3IG00X2RlZmluZQorIyBhbmQgZG9lc24ndCBrbm93IGFib3V0IEF1dG9jb25mIG1hY3JvcyBhdCBhbGwuKQorIworIyBTbyB3ZSBwcm92aWRlIHRoaXMgZmlsZSwgd2hpY2ggaGFzIGEgc2lsbHkgZmlsZW5hbWUgc28gaXQncyBhbHdheXMKKyMgaW5jbHVkZWQgYWZ0ZXIgZXZlcnl0aGluZyBlbHNlLiAgVGhpcyBwcm92aWRlcyBhY2xvY2FsIHdpdGggdGhlCisjIEFDX0RFRlVOcyBpdCB3YW50cywgYnV0IHdoZW4gbTQgcHJvY2Vzc2VzIGl0LCBpdCBkb2Vzbid0IGRvIGFueXRoaW5nCisjIGJlY2F1c2UgdGhvc2UgbWFjcm9zIGFscmVhZHkgZXhpc3QsIG9yIHdpbGwgYmUgb3ZlcndyaXR0ZW4gbGF0ZXIuCisjIFdlIHVzZSBBQ19ERUZVTiBvdmVyIEFVX0RFRlVOIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYWNsb2NhbC0xLjYuIAorIworIyBBbnl0aW1lIHdlIHdpdGhkcmF3IGFuIEFDX0RFRlVOIG9yIEFVX0RFRlVOLCByZW1lbWJlciB0byBhZGQgaXQgaGVyZS4KKyMgWWVzLCB0aGF0IG1lYW5zIGV2ZXJ5IG5hbWUgb25jZSB0YWtlbiB3aWxsIG5lZWQgdG8gcmVtYWluIGhlcmUgdW50aWwKKyMgd2UgZ2l2ZSB1cCBjb21wYXRpYmlsaXR5IHdpdGggdmVyc2lvbnMgYmVmb3JlIDEuNywgYXQgd2hpY2ggcG9pbnQKKyMgd2UgbmVlZCB0byBrZWVwIG9ubHkgdGhvc2UgbmFtZXMgd2hpY2ggd2Ugc3RpbGwgcmVmZXIgdG8uCisKKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCitBQ19ERUZVTihbTFRPQlNPTEVURV9WRVJTSU9OXSwgW200X2lmKFsxXSldKQorCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSldKQorbTRfaWZuZGVmKFtBQ19QUk9HX0VHUkVQXSwJCVtBQ19ERUZVTihbQUNfUFJPR19FR1JFUF0pXSkKK200X2lmbmRlZihbX0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0hdLAlbQUNfREVGVU4oW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfU0hFTExfSU5JVF0sCQlbQUNfREVGVU4oW19MVF9BQ19TSEVMTF9JTklUXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlYXSwJW0FDX0RFRlVOKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlYXSldKQorbTRfaWZuZGVmKFtfTFRfUFJPR19MVE1BSU5dLAkJW0FDX0RFRlVOKFtfTFRfUFJPR19MVE1BSU5dKV0pCittNF9pZm5kZWYoW19MVF9BQ19UQUdWQVJdLAkJW0FDX0RFRlVOKFtfTFRfQUNfVEFHVkFSXSldKQorbTRfaWZuZGVmKFtBQ19MVERMX0VOQUJMRV9JTlNUQUxMXSwJW0FDX0RFRlVOKFtBQ19MVERMX0VOQUJMRV9JTlNUQUxMXSldKQorbTRfaWZuZGVmKFtBQ19MVERMX1BSRU9QRU5dLAkJW0FDX0RFRlVOKFtBQ19MVERMX1BSRU9QRU5dKV0pCittNF9pZm5kZWYoW19MVF9BQ19TWVNfQ09NUElMRVJdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfQ09NUElMRVJdKV0pCittNF9pZm5kZWYoW19MVF9BQ19MT0NLXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xPQ0tdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX09MRF9BUkNISVZFXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19PTERfQVJDSElWRV0pXSkKK200X2lmbmRlZihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0sCVtBQ19ERUZVTihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1NdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfT0JKRElSXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9PQkpESVJdKV0pCittNF9pZm5kZWYoW0FDX0xURExfT0JKRElSXSwJCVtBQ19ERUZVTihbQUNfTFRETF9PQkpESVJdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfTElCX1NUUklQXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBdKV0pCittNF9pZm5kZWYoW0FDX1BBVEhfTUFHSUNdLAkJW0FDX0RFRlVOKFtBQ19QQVRIX01BR0lDXSldKQorbTRfaWZuZGVmKFtBQ19QUk9HX0xEX0dOVV0sCQlbQUNfREVGVU4oW0FDX1BST0dfTERfR05VXSldKQorbTRfaWZuZGVmKFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSwJW0FDX0RFRlVOKFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSldKQorbTRfaWZuZGVmKFtBQ19ERVBMSUJTX0NIRUNLX01FVEhPRF0sCVtBQ19ERUZVTihbQUNfREVQTElCU19DSEVDS19NRVRIT0RdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9OT19SVFRJXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSV0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUNdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUNdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdKV0pCittNF9pZm5kZWYoW0xUX0FDX1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtMVF9BQ19QUk9HX0VHUkVQXSldKQorbTRfaWZuZGVmKFtMVF9BQ19QUk9HX1NFRF0sCQlbQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSldKQorbTRfaWZuZGVmKFtfTFRfQ0NfQkFTRU5BTUVdLAkJW0FDX0RFRlVOKFtfTFRfQ0NfQkFTRU5BTUVdKV0pCittNF9pZm5kZWYoW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0sCVtBQ19ERUZVTihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSldKQorbTRfaWZuZGVmKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwJW0FDX0RFRlVOKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSldKQorbTRfaWZuZGVmKFtfQUNfUFJPR19MSUJUT09MXSwJCVtBQ19ERUZVTihbX0FDX1BST0dfTElCVE9PTF0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9TRVRVUF0sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU0VUVVBdKV0pCittNF9pZm5kZWYoW19MVF9BQ19DSEVDS19ETEZDTl0sCQlbQUNfREVGVU4oW19MVF9BQ19DSEVDS19ETEZDTl0pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfVEFHQ09ORklHXSwJCVtBQ19ERUZVTihbX0xUX0FDX1RBR0NPTkZJR10pXSkKK200X2lmbmRlZihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAlbQUNfREVGVU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhdKV0pCittNF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3N10sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N10pXSkKK200X2lmbmRlZihbX0xUX0FDX0xBTkdfR0NKXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfR0NKXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX1JDXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9SQ10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ19DT05GSUddKV0pCittNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DX0NPTkZJR10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSldKQorbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0Y3N19DT05GSUddKV0pCittNF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3N19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N19DT05GSUddKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19HQ0pfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10pXSkKK200X2lmbmRlZihbX0xUX0FDX0xBTkdfR0NKX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfR0NKX0NPTkZJR10pXSkKK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJR10pXSkKK200X2lmbmRlZihbX0xUX0FDX0xBTkdfUkNfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19SQ19DT05GSUddKV0pCittNF9pZm5kZWYoW0FDX0xJQlRPT0xfQ09ORklHXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9DT05GSUddKV0pCittNF9pZm5kZWYoW19MVF9BQ19GSUxFX0xURExMX0NdLAlbQUNfREVGVU4oW19MVF9BQ19GSUxFX0xURExMX0NdKV0pCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L21hY29zL1JFQURNRSBiL2xpYnhtbDItMi43LjcvbWFjb3MvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNGFlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L21hY29zL1JFQURNRQpAQCAtMCwwICsxLDggQEAKK1RoaXMgaXMgYSBNYWNPUyBwb3J0IGNvbnRyaWJ1dGlvbiAobm90IHRvIGJlIHVzZWQgZm9yIE1hY09TLVgpCitmb3IgdGhlIENvZGVXYXJyaW9yIGVudmlyb25tZW50LgorUGxlYXNlIGNvbnRhY3QgdGhlIGF1dGhvciBkaXJlY3RseSBpbiBjYXNlIG9mIHByb2JsZW1zOgorICAgRXJpYyA8ZXJsYXZpZ25lQHdhbmFkb28uZnI+CisKKyAgdGhhbmtzLAorCitEYW5pZWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbWFjb3MvbGlieG1sMi5tY3AueG1sLnNpdC5ocXggYi9saWJ4bWwyLTIuNy43L21hY29zL2xpYnhtbDIubWNwLnhtbC5zaXQuaHF4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ODU1NGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L21hY29zL2xpYnhtbDIubWNwLnhtbC5zaXQuaHF4CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbWFjb3Mvc3JjL1hNTFRlc3RQcmVmaXguaCBiL2xpYnhtbDItMi43LjcvbWFjb3Mvc3JjL1hNTFRlc3RQcmVmaXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTg0MjU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9tYWNvcy9zcmMvWE1MVGVzdFByZWZpeC5oCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbWFjb3Mvc3JjL1hNTFRlc3RQcmVmaXgyLmggYi9saWJ4bWwyLTIuNy43L21hY29zL3NyYy9YTUxUZXN0UHJlZml4Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZGY1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L21hY29zL3NyYy9YTUxUZXN0UHJlZml4Mi5oCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbWFjb3Mvc3JjL2NvbmZpZy1tYWMuaCBiL2xpYnhtbDItMi43LjcvbWFjb3Mvc3JjL2NvbmZpZy1tYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWE4ZjlkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9tYWNvcy9zcmMvY29uZmlnLW1hYy5oCkBAIC0wLDAgKzEsMTkyIEBACisvKiBjb25maWcuaCBnZW5lcmF0ZWQgbWFudWFsbHkgZm9yIG1hY29zLiAgKi8KKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdHJmdGltZSBmdW5jdGlvbi4gICovCisjZGVmaW5lIEhBVkVfU1RSRlRJTUUKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAgKi8KKyNkZWZpbmUgU1REQ19IRUFERVJTCisKKyNkZWZpbmUgUEFDS0FHRQorI2RlZmluZSBWRVJTSU9OCisKKyN1bmRlZiBIQVZFX0xJQloKKyN1bmRlZiBIQVZFX0xJQk0KKyN1bmRlZiBIQVZFX0lTSU5GCisjdW5kZWYgSEFWRV9JU05BTgorI3VuZGVmIEhBVkVfTElCSElTVE9SWQorI3VuZGVmIEhBVkVfTElCUkVBRExJTkUKKworI2RlZmluZSBYTUxfU09DS0xFTl9UIHNvY2tsZW5fdAorI2RlZmluZSBIQVZFX0xJQlBUSFJFQUQKKyNkZWZpbmUgSEFWRV9QVEhSRUFEX0gKKyNkZWZpbmUgTElCWE1MX1RIUkVBRF9FTkFCTEVECisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX3N0YXQgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX19TVEFUCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY2xhc3MgZnVuY3Rpb24uICAqLworI3VuZGVmIEhBVkVfQ0xBU1MKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmaW5pdGUgZnVuY3Rpb24uICAqLworI3VuZGVmIEhBVkVfRklOSVRFCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZnBfY2xhc3MgZnVuY3Rpb24uICAqLworI3VuZGVmIEhBVkVfRlBfQ0xBU1MKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmcGNsYXNzIGZ1bmN0aW9uLiAgKi8KKyN1bmRlZiBIQVZFX0ZQQ0xBU1MKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmcHJpbnRmIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9GUFJJTlRGCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaXNuYW5kIGZ1bmN0aW9uLiAgKi8KKyN1bmRlZiBIQVZFX0lTTkFORAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGxvY2FsdGltZSBmdW5jdGlvbi4gICovCisjZGVmaW5lIEhBVkVfTE9DQUxUSU1FCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgcHJpbnRmIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9QUklOVEYKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzaWduYWwgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1NJR05BTAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNucHJpbnRmIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9TTlBSSU5URgorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNwcmludGYgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1NQUklOVEYKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzc2NhbmYgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1NTQ0FORgorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0YXQgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1NUQVQKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdHJkdXAgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1NUUkRVUAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cmVycm9yIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9TVFJFUlJPUgorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cmZ0aW1lIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9TVFJGVElNRQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cm5kdXAgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1NUUk5EVVAKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2ZnByaW50ZiBmdW5jdGlvbi4gICovCisjZGVmaW5lIEhBVkVfVkZQUklOVEYKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2c25wcmludGYgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1ZTTlBSSU5URgorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHZzcHJpbnRmIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9WU1BSSU5URgorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxhbnNpZGVjbC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfQU5TSURFQ0xfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxhcnBhL2luZXQuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGN0eXBlLmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9DVFlQRV9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfRElSRU5UX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZGxmY24uaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX0RMRkNOX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZXJybm8uaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX0VSUk5PX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX0ZDTlRMX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZmxvYXQuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX0ZMT0FUX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZnBfY2xhc3MuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX0ZQX0NMQVNTX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8aWVlZWZwLmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9JRUVFRlBfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfTUFMTE9DX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bWF0aC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfTUFUSF9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG5hbi5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfTkFOX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bmRpci5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfTkRJUl9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGRiLmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9ORVREQl9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW4uaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX05FVElORVRfSU5fSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzaWduYWwuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1NJR05BTF9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGFyZy5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfU1REQVJHX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9TVERMSUJfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1NUUklOR19ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXIuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1NZU19ESVJfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW1hbi5oPiBoZWFkZXIgZmlsZS4gICovCisjdW5kZWYgSEFWRV9TWVNfTU1BTl9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX1NZU19ORElSX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NlbGVjdC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NrZXQuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZS5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1NZU19UWVBFU19ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHRpbWUuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1RJTUVfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1VOSVNURF9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHpsaWIuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfWkxJQl9ICisKKy8qIE5hbWUgb2YgcGFja2FnZSAqLworI2RlZmluZSBQQUNLQUdFCisKKy8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KKyNkZWZpbmUgVkVSU0lPTgorCisvKiBEZWZpbmUgaWYgY29tcGlsZXIgaGFzIGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KKyNkZWZpbmUgUFJPVE9UWVBFUworCisjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxleHRyYS9zdHJpY21wLmg+CisjaW5jbHVkZSA8ZXh0cmEvc3RyZHVwLmg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L21hY29zL3NyYy9saWJ4bWwyX0dVU0lDb25maWcuY3AgYi9saWJ4bWwyLTIuNy43L21hY29zL3NyYy9saWJ4bWwyX0dVU0lDb25maWcuY3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdkMGM5MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvbWFjb3Mvc3JjL2xpYnhtbDJfR1VTSUNvbmZpZy5jcApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L21hY29zL3NyYy9tYWNvc19tYWluLmMgYi9saWJ4bWwyLTIuNy43L21hY29zL3NyYy9tYWNvc19tYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYyNTAwMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvbWFjb3Mvc3JjL21hY29zX21haW4uYwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L21pc3NpbmcgYi9saWJ4bWwyLTIuNy43L21pc3NpbmcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjgwNTVkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvbWlzc2luZwpAQCAtMCwwICsxLDM3NiBAQAorIyEgL2Jpbi9zaAorIyBDb21tb24gc3R1YiBmb3IgYSBmZXcgbWlzc2luZyBHTlUgcHJvZ3JhbXMgd2hpbGUgaW5zdGFsbGluZy4KKworc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVUQworCisjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OSwgMjAwMCwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwKKyMgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgT3JpZ2luYWxseSBieSBGcmFuLGNvaXMgUGluYXJkIDxwaW5hcmRAaXJvLnVtb250cmVhbC5jYT4sIDE5OTYuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQorIyBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworaWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisgIGV4aXQgMQorZmkKKworcnVuPToKK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEvcCcKK3NlZF9taW51c289J3MvLiogLW8gXChbXiBdKlwpLiovXDEvcCcKKworIyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQorIyBzcmNkaXIgYWxyZWFkeS4KK2lmIHRlc3QgLWYgY29uZmlndXJlLmFjOyB0aGVuCisgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKK2Vsc2UKKyAgY29uZmlndXJlX2FjPWNvbmZpZ3VyZS5pbgorZmkKKworbXNnPSJtaXNzaW5nIG9uIHlvdXIgc3lzdGVtIgorCitjYXNlICQxIGluCistLXJ1bikKKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1Y2NlZWRzLgorICBydW49CisgIHNoaWZ0CisgICIkQCIgJiYgZXhpdCAwCisgICMgRXhpdCBjb2RlIDYzIG1lYW5zIHZlcnNpb24gbWlzbWF0Y2guICBUaGlzIG9mdGVuIGhhcHBlbnMKKyAgIyB3aGVuIHRoZSB1c2VyIHRyeSB0byB1c2UgYW4gYW5jaWVudCB2ZXJzaW9uIG9mIGEgdG9vbCBvbgorICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNlIHdlCisgICMgd2Ugc2hvdWxkIHByb2NlZWQgaGFzIGlmIHRoZSBwcm9ncmFtIGhhZCBiZWVuIGFic2VudCwgb3IKKyAgIyBpZiAtLXJ1biBoYWRuJ3QgYmVlbiBwYXNzZWQuCisgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgorICAgIHJ1bj06CisgICAgbXNnPSJwcm9iYWJseSB0b28gb2xkIgorICBmaQorICA7OworCisgIC1ofC0taHwtLWhlfC0taGVsfC0taGVscCkKKyAgICBlY2hvICJcCiskMCBbT1BUSU9OXS4uLiBQUk9HUkFNIFtBUkdVTUVOVF0uLi4KKworSGFuZGxlIFxgUFJPR1JBTSBbQVJHVU1FTlRdLi4uJyBmb3Igd2hlbiBQUk9HUkFNIGlzIG1pc3NpbmcsIG9yIHJldHVybiBhbgorZXJyb3Igc3RhdHVzIGlmIHRoZXJlIGlzIG5vIGtub3duIGhhbmRsaW5nIGZvciBQUk9HUkFNLgorCitPcHRpb25zOgorICAtaCwgLS1oZWxwICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKKyAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CisgIC0tcnVuICAgICAgICAgICB0cnkgdG8gcnVuIHRoZSBnaXZlbiBjb21tYW5kLCBhbmQgZW11bGF0ZSBpdCBpZiBpdCBmYWlscworCitTdXBwb3J0ZWQgUFJPR1JBTSB2YWx1ZXM6CisgIGFjbG9jYWwgICAgICB0b3VjaCBmaWxlIFxgYWNsb2NhbC5tNCcKKyAgYXV0b2NvbmYgICAgIHRvdWNoIGZpbGUgXGBjb25maWd1cmUnCisgIGF1dG9oZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCisgIGF1dG9tNHRlICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUsIG9yIGNyZWF0ZSBhIHN0dWIgb25lCisgIGF1dG9tYWtlICAgICB0b3VjaCBhbGwgXGBNYWtlZmlsZS5pbicgZmlsZXMKKyAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorICBmbGV4ICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuYworICBoZWxwMm1hbiAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCisgIGxleCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCisgIG1ha2VpbmZvICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKKyAgdGFyICAgICAgICAgIHRyeSB0YXIsIGdudXRhciwgZ3RhciwgdGhlbiB0YXIgd2l0aG91dCBub24tcG9ydGFibGUgZmxhZ3MKKyAgeWFjYyAgICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorCitWZXJzaW9uIHN1ZmZpeGVzIHRvIFBST0dSQU0gYXMgd2VsbCBhcyB0aGUgcHJlZml4ZXMgXGBnbnUtJywgXGBnbnUnLCBhbmQKK1xgZycgYXJlIGlnbm9yZWQgd2hlbiBjaGVja2luZyB0aGUgbmFtZS4KKworU2VuZCBidWcgcmVwb3J0cyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LiIKKyAgICBleGl0ICQ/CisgICAgOzsKKworICAtdnwtLXZ8LS12ZXwtLXZlcnwtLXZlcnN8LS12ZXJzaXwtLXZlcnNpb3wtLXZlcnNpb24pCisgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAoR05VIEF1dG9tYWtlKSIKKyAgICBleGl0ICQ/CisgICAgOzsKKworICAtKikKKyAgICBlY2hvIDE+JjIgIiQwOiBVbmtub3duIFxgJDEnIG9wdGlvbiIKKyAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisgICAgZXhpdCAxCisgICAgOzsKKworZXNhYworCisjIG5vcm1hbGl6ZSBwcm9ncmFtIG5hbWUgdG8gY2hlY2sgZm9yLgorcHJvZ3JhbT1gZWNobyAiJDEiIHwgc2VkICcKKyAgcy9eZ251LS8vOyB0CisgIHMvXmdudS8vOyB0CisgIHMvXmcvLzsgdCdgCisKKyMgTm93IGV4aXQgaWYgd2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4gIEFsc28gZXhpdCBub3cgaWYgd2UKKyMgZG9uJ3QgaGF2ZSBpdCBhbmQgLS12ZXJzaW9uIHdhcyBwYXNzZWQgKG1vc3QgbGlrZWx5IHRvIGRldGVjdAorIyB0aGUgcHJvZ3JhbSkuICBUaGlzIGlzIGFib3V0IG5vbi1HTlUgcHJvZ3JhbXMsIHNvIHVzZSAkMSBub3QKKyMgJHByb2dyYW0uCitjYXNlICQxIGluCisgIGxleCp8eWFjYyopCisgICAgIyBOb3QgR05VIHByb2dyYW1zLCB0aGV5IGRvbid0IGhhdmUgLS12ZXJzaW9uLgorICAgIDs7CisKKyAgdGFyKikKKyAgICBpZiB0ZXN0IC1uICIkcnVuIjsgdGhlbgorICAgICAgIGVjaG8gMT4mMiAiRVJST1I6IFxgdGFyJyByZXF1aXJlcyAtLXJ1biIKKyAgICAgICBleGl0IDEKKyAgICBlbGlmIHRlc3QgIngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVzdCAieCQyIiA9ICJ4LS1oZWxwIjsgdGhlbgorICAgICAgIGV4aXQgMQorICAgIGZpCisgICAgOzsKKworICAqKQorICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCisgICAgICAgZXhpdCAxCisgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KKyAgICAgICAjIENvdWxkIG5vdCBydW4gLS12ZXJzaW9uIG9yIC0taGVscC4gIFRoaXMgaXMgcHJvYmFibHkgc29tZW9uZQorICAgICAgICMgcnVubmluZyBgJFRPT0wgLS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxwJyB0byBjaGVjayB3aGV0aGVyCisgICAgICAgIyAkVE9PTCBleGlzdHMgYW5kIG5vdCBrbm93aW5nICRUT09MIHVzZXMgbWlzc2luZy4KKyAgICAgICBleGl0IDEKKyAgICBmaQorICAgIDs7Citlc2FjCisKKyMgSWYgaXQgZG9lcyBub3QgZXhpc3QsIG9yIGZhaWxzIHRvIHJ1biAocG9zc2libHkgYW4gb3V0ZGF0ZWQgdmVyc2lvbiksCisjIHRyeSB0byBlbXVsYXRlIGl0LgorY2FzZSAkcHJvZ3JhbSBpbgorICBhY2xvY2FsKikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNpbmNsdWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAorICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvbWFrZScgYW5kIFxgUGVybCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbQorICAgICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorICAgIHRvdWNoIGFjbG9jYWwubTQKKyAgICA7OworCisgIGF1dG9jb25mKikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorICAgICAgICAgeW91IG1vZGlmaWVkIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlCisgICAgICAgICBcYEF1dG9jb25mJyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZyb20gYW55IEdOVQorICAgICAgICAgYXJjaGl2ZSBzaXRlLiIKKyAgICB0b3VjaCBjb25maWd1cmUKKyAgICA7OworCisgIGF1dG9oZWFkZXIqKQorICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisgICAgICAgICB5b3UgbW9kaWZpZWQgXGBhY2NvbmZpZy5oJyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAorICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQorICAgICAgICAgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgZmlsZXM9YHNlZCAtbiAncy9eWyBdKkFbQ01dX0NPTkZJR19IRUFERVIoXChbXildKlwpKS4qL1wxL3AnICR7Y29uZmlndXJlX2FjfWAKKyAgICB0ZXN0IC16ICIkZmlsZXMiICYmIGZpbGVzPSJjb25maWcuaCIKKyAgICB0b3VjaF9maWxlcz0KKyAgICBmb3IgZiBpbiAkZmlsZXM7IGRvCisgICAgICBjYXNlICRmIGluCisgICAgICAqOiopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIgfAorCQkJCSAgICAgICBzZWQgLWUgJ3MvXlteOl0qOi8vJyAtZSAncy86LiovLydgOzsKKyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKKyAgICAgIGVzYWMKKyAgICBkb25lCisgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCisgICAgOzsKKworICBhdXRvbWFrZSopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4KKyAgICAgICAgIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLgorICAgICAgICAgR3JhYiB0aGVtIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmludCB8CisJICAgc2VkICdzL1wuYW0kLy5pbi8nIHwKKwkgICB3aGlsZSByZWFkIGY7IGRvIHRvdWNoICIkZiI7IGRvbmUKKyAgICA7OworCisgIGF1dG9tNHRlKikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlzICRtc2cuCisgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQorICAgICAgICAgcHJvcGVyIHRvb2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uCisgICAgICAgICBZb3UgY2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2NvbmYnIGZyb20gYW55IEdOVQorICAgICAgICAgYXJjaGl2ZSBzaXRlLiIKKworICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNvImAKKyAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KKwl0b3VjaCAkZmlsZQorICAgIGVsc2UKKwl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKKwllY2hvICIjISAvYmluL3NoIgorCWVjaG8gIiMgQ3JlYXRlZCBieSBHTlUgQXV0b21ha2UgbWlzc2luZyBhcyBhIHJlcGxhY2VtZW50IG9mIgorCWVjaG8gIiMgICQgJEAiCisJZWNobyAiZXhpdCAwIgorCWNobW9kICt4ICRmaWxlCisJZXhpdCAxCisgICAgZmkKKyAgICA7OworCisgIGJpc29uKnx5YWNjKikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorICAgICAgICAgeW91IG1vZGlmaWVkIGEgXGAueScgZmlsZS4gIFlvdSBtYXkgbmVlZCB0aGUgXGBCaXNvbicgcGFja2FnZQorICAgICAgICAgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZSBlZmZlY3QuICBZb3UgY2FuIGdldAorICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgcm0gLWYgeS50YWIuYyB5LnRhYi5oCisgICAgaWYgdGVzdCAkIyAtbmUgMTsgdGhlbgorICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKKwljYXNlICRMQVNUQVJHIGluCisJKi55KQorCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAorCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmMKKwkgICAgZmkKKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL3kkL2gvJ2AKKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCisJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5oCisJICAgIGZpCisJICA7OworCWVzYWMKKyAgICBmaQorICAgIGlmIHRlc3QgISAtZiB5LnRhYi5oOyB0aGVuCisJZWNobyA+eS50YWIuaAorICAgIGZpCisgICAgaWYgdGVzdCAhIC1mIHkudGFiLmM7IHRoZW4KKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPnkudGFiLmMKKyAgICBmaQorICAgIDs7CisKKyAgbGV4KnxmbGV4KikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorICAgICAgICAgeW91IG1vZGlmaWVkIGEgXGAubCcgZmlsZS4gIFlvdSBtYXkgbmVlZCB0aGUgXGBGbGV4JyBwYWNrYWdlCisgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0CisgICAgICAgICBcYEZsZXgnIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorICAgIHJtIC1mIGxleC55eS5jCisgICAgaWYgdGVzdCAkIyAtbmUgMTsgdGhlbgorICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKKwljYXNlICRMQVNUQVJHIGluCisJKi5sKQorCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MvbCQvYy8nYAorCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIGxleC55eS5jCisJICAgIGZpCisJICA7OworCWVzYWMKKyAgICBmaQorICAgIGlmIHRlc3QgISAtZiBsZXgueXkuYzsgdGhlbgorCWVjaG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+bGV4Lnl5LmMKKyAgICBmaQorICAgIDs7CisKKyAgaGVscDJtYW4qKQorICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKKwkgXGBIZWxwMm1hbicgcGFja2FnZSBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlCisJIGVmZmVjdC4gIFlvdSBjYW4gZ2V0IFxgSGVscDJtYW4nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorCisgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCisgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAorICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorCXRvdWNoICRmaWxlCisgICAgZWxzZQorCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQorCWVjaG8gIi5hYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UiCisJZXhpdCAkPworICAgIGZpCisgICAgOzsKKworICBtYWtlaW5mbyopCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnRleGknIG9yIFxgLnRleGluZm8nIGZpbGUsIG9yIGFueSBvdGhlciBmaWxlCisgICAgICAgICBpbmRpcmVjdGx5IGFmZmVjdGluZyB0aGUgYXNwZWN0IG9mIHRoZSBtYW51YWwuICBUaGUgc3B1cmlvdXMKKyAgICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ugb2YgdXNpbmcgYSBidWdneSBcYG1ha2UnIChBSVgsCisgICAgICAgICBEVSwgSVJJWCkuICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYFRleGluZm8nIHBhY2thZ2Ugb3IKKyAgICAgICAgIHRoZSBcYEdOVSBtYWtlJyBwYWNrYWdlLiAgR3JhYiBlaXRoZXIgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgIyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0IHNwZWNpZmllZCB3aXRoIC1vIC4uLgorICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNvImAKKyAgICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KKyAgICAgICMgLi4uIG9yIGl0IGlzIHRoZSBvbmUgc3BlY2lmaWVkIHdpdGggQHNldGZpbGVuYW1lIC4uLgorICAgICAgaW5maWxlPWBlY2hvICIkKiIgfCBzZWQgJ3MvLiogXChbXiBdKlwpICokL1wxLydgCisgICAgICBmaWxlPWBzZWQgLW4gJworCS9eQHNldGZpbGVuYW1lL3sKKwkgIHMvLiogXChbXiBdKlwpICokL1wxLworCSAgcAorCSAgcQorCX0nICRpbmZpbGVgCisgICAgICAjIC4uLiBvciBpdCBpcyBkZXJpdmVkIGZyb20gdGhlIHNvdXJjZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMgZi5pbmZvKQorICAgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiRpbmZpbGUiIHwgc2VkICdzLC4qLywsO3MsLlteLl0qJCwsJ2AuaW5mbworICAgIGZpCisgICAgIyBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhlIHVzZXIgcmVhbGx5IG5lZWRzIG1ha2VpbmZvOworICAgICMgbGV0J3MgZmFpbCB3aXRob3V0IHRvdWNoaW5nIGFueXRoaW5nLgorICAgIHRlc3QgLWYgJGZpbGUgfHwgZXhpdCAxCisgICAgdG91Y2ggJGZpbGUKKyAgICA7OworCisgIHRhciopCisgICAgc2hpZnQKKworICAgICMgV2UgaGF2ZSBhbHJlYWR5IHRyaWVkIHRhciBpbiB0aGUgZ2VuZXJpYyBwYXJ0LgorICAgICMgTG9vayBmb3IgZ251dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBlcnJvcgorICAgICMgbWVzc2FnZXMuCisgICAgaWYgKGdudXRhciAtLXZlcnNpb24gPiAvZGV2L251bGwgMj4mMSk7IHRoZW4KKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKKyAgICBmaQorICAgIGlmIChndGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgorICAgICAgIGd0YXIgIiRAIiAmJiBleGl0IDAKKyAgICBmaQorICAgIGZpcnN0YXJnPSIkMSIKKyAgICBpZiBzaGlmdDsgdGhlbgorCWNhc2UgJGZpcnN0YXJnIGluCisJKm8qKQorCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCisJICAgIDs7CisJZXNhYworCWNhc2UgJGZpcnN0YXJnIGluCisJKmgqKQorCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCisJICAgIDs7CisJZXNhYworICAgIGZpCisKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IEkgY2FuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIHJ1biBcYHRhcicgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLgorICAgICAgICAgWW91IG1heSB3YW50IHRvIGluc3RhbGwgR05VIHRhciBvciBGcmVlIHBheHV0aWxzLCBvciBjaGVjayB0aGUKKyAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgorICAgIGV4aXQgMQorICAgIDs7CisKKyAgKikKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRtc2cuCisgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQorICAgICAgICAgcHJvcGVyIHRvb2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uICBDaGVjayB0aGUgXGBSRUFETUUnIGZpbGUsCisgICAgICAgICBpdCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCisgICAgICAgICB0aGlzIHBhY2thZ2UuICBZb3UgbWF5IGFsc28gcGVlayBhdCBhbnkgR05VIGFyY2hpdmUgc2l0ZSwgaW4gY2FzZQorICAgICAgICAgc29tZSBvdGhlciBwYWNrYWdlIHdvdWxkIGNvbnRhaW4gdGhpcyBtaXNzaW5nIFxgJDEnIHByb2dyYW0uIgorICAgIGV4aXQgMQorICAgIDs7Citlc2FjCisKK2V4aXQgMAorCisjIExvY2FsIHZhcmlhYmxlczoKKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCisjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgorIyBFbmQ6CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L21raW5zdGFsbGRpcnMgYi9saWJ4bWwyLTIuNy43L21raW5zdGFsbGRpcnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDE5MWE0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvbWtpbnN0YWxsZGlycwpAQCAtMCwwICsxLDE2MiBAQAorIyEgL2Jpbi9zaAorIyBta2luc3RhbGxkaXJzIC0tLSBtYWtlIGRpcmVjdG9yeSBoaWVyYXJjaHkKKworc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVUQworCisjIE9yaWdpbmFsIGF1dGhvcjogTm9haCBGcmllZG1hbiA8ZnJpZWRtYW5AcHJlcC5haS5taXQuZWR1PgorIyBDcmVhdGVkOiAxOTkzLTA1LTE2CisjIFB1YmxpYyBkb21haW4uCisjCisjIFRoaXMgZmlsZSBpcyBtYWludGFpbmVkIGluIEF1dG9tYWtlLCBwbGVhc2UgcmVwb3J0CisjIGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPiBvciBzZW5kIHBhdGNoZXMgdG8KKyMgPGF1dG9tYWtlLXBhdGNoZXNAZ251Lm9yZz4uCisKK25sPScKKycKK0lGUz0iICIiCSRubCIKK2VycnN0YXR1cz0wCitkaXJtb2RlPQorCit1c2FnZT0iXAorVXNhZ2U6IG1raW5zdGFsbGRpcnMgWy1oXSBbLS1oZWxwXSBbLS12ZXJzaW9uXSBbLW0gTU9ERV0gRElSIC4uLgorCitDcmVhdGUgZWFjaCBkaXJlY3RvcnkgRElSICh3aXRoIG1vZGUgTU9ERSwgaWYgc3BlY2lmaWVkKSwgaW5jbHVkaW5nIGFsbAorbGVhZGluZyBmaWxlIG5hbWUgY29tcG9uZW50cy4KKworUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisKKyMgcHJvY2VzcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzCit3aGlsZSB0ZXN0ICQjIC1ndCAwIDsgZG8KKyAgY2FzZSAkMSBpbgorICAgIC1oIHwgLS1oZWxwIHwgLS1oKikgICAgICAgICAjIC1oIGZvciBoZWxwCisgICAgICBlY2hvICIkdXNhZ2UiCisgICAgICBleGl0ICQ/CisgICAgICA7OworICAgIC1tKSAgICAgICAgICAgICAgICAgICAgICAgICAjIC1tIFBFUk0gYXJnCisgICAgICBzaGlmdAorICAgICAgdGVzdCAkIyAtZXEgMCAmJiB7IGVjaG8gIiR1c2FnZSIgMT4mMjsgZXhpdCAxOyB9CisgICAgICBkaXJtb2RlPSQxCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAtLXZlcnNpb24pCisgICAgICBlY2hvICIkMCAkc2NyaXB0dmVyc2lvbiIKKyAgICAgIGV4aXQgJD8KKyAgICAgIDs7CisgICAgLS0pICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgc2hpZnQKKyAgICAgIGJyZWFrCisgICAgICA7OworICAgIC0qKSAgICAgICAgICAgICAgICAgICAgICAgICAjIHVua25vd24gb3B0aW9uCisgICAgICBlY2hvICIkdXNhZ2UiIDE+JjIKKyAgICAgIGV4aXQgMQorICAgICAgOzsKKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmaXJzdCBub24tb3B0IGFyZworICAgICAgYnJlYWsKKyAgICAgIDs7CisgIGVzYWMKK2RvbmUKKworZm9yIGZpbGUKK2RvCisgIGlmIHRlc3QgLWQgIiRmaWxlIjsgdGhlbgorICAgIHNoaWZ0CisgIGVsc2UKKyAgICBicmVhaworICBmaQorZG9uZQorCitjYXNlICQjIGluCisgIDApIGV4aXQgMCA7OworZXNhYworCisjIFNvbGFyaXMgOCdzIG1rZGlyIC1wIGlzbid0IHRocmVhZC1zYWZlLiAgSWYgeW91IG1rZGlyIC1wIGEvYiBhbmQKKyMgbWtkaXIgLXAgYS9jIGF0IHRoZSBzYW1lIHRpbWUsIGJvdGggd2lsbCBkZXRlY3QgdGhhdCBhIGlzIG1pc3NpbmcsCisjIG9uZSB3aWxsIGNyZWF0ZSBhLCB0aGVuIHRoZSBvdGhlciB3aWxsIHRyeSB0byBjcmVhdGUgYSBhbmQgZGllIHdpdGgKKyMgYSAiRmlsZSBleGlzdHMiIGVycm9yLiAgVGhpcyBpcyBhIHByb2JsZW0gd2hlbiBjYWxsaW5nIG1raW5zdGFsbGRpcnMKKyMgZnJvbSBhIHBhcmFsbGVsIG1ha2UuICBXZSB1c2UgLS12ZXJzaW9uIGluIHRoZSBwcm9iZSB0byByZXN0cmljdAorIyBvdXJzZWx2ZXMgdG8gR05VIG1rZGlyLCB3aGljaCBpcyB0aHJlYWQtc2FmZS4KK2Nhc2UgJGRpcm1vZGUgaW4KKyAgJycpCisgICAgaWYgbWtkaXIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgorICAgICAgZWNobyAibWtkaXIgLXAgLS0gJCoiCisgICAgICBleGVjIG1rZGlyIC1wIC0tICIkQCIKKyAgICBlbHNlCisgICAgICAjIE9uIE5leHRTdGVwIGFuZCBPcGVuU3RlcCwgdGhlIGBta2RpcicgY29tbWFuZCBkb2VzIG5vdAorICAgICAgIyByZWNvZ25pemUgYW55IG9wdGlvbi4gIEl0IHdpbGwgaW50ZXJwcmV0IGFsbCBvcHRpb25zIGFzCisgICAgICAjIGRpcmVjdG9yaWVzIHRvIGNyZWF0ZSwgYW5kIHRoZW4gYWJvcnQgYmVjYXVzZSBgLicgYWxyZWFkeQorICAgICAgIyBleGlzdHMuCisgICAgICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorICAgICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgorICAgIGZpCisgICAgOzsKKyAgKikKKyAgICBpZiBta2RpciAtbSAiJGRpcm1vZGUiIC1wIC0tdmVyc2lvbiAuID4vZGV2L251bGwgMj4mMSAmJgorICAgICAgIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgorICAgICAgZWNobyAibWtkaXIgLW0gJGRpcm1vZGUgLXAgLS0gJCoiCisgICAgICBleGVjIG1rZGlyIC1tICIkZGlybW9kZSIgLXAgLS0gIiRAIgorICAgIGVsc2UKKyAgICAgICMgQ2xlYW4gdXAgYWZ0ZXIgTmV4dFN0ZXAgYW5kIE9wZW5TdGVwIG1rZGlyLgorICAgICAgZm9yIGQgaW4gLi8tbSAuLy1wIC4vLS12ZXJzaW9uICIuLyRkaXJtb2RlIjsKKyAgICAgIGRvCisgICAgICAgIHRlc3QgLWQgJGQgJiYgcm1kaXIgJGQKKyAgICAgIGRvbmUKKyAgICBmaQorICAgIDs7Citlc2FjCisKK2ZvciBmaWxlCitkbworICBjYXNlICRmaWxlIGluCisgICAgLyopIHBhdGhjb21wPS8gOzsKKyAgICAqKSAgcGF0aGNvbXA9IDs7CisgIGVzYWMKKyAgb0lGUz0kSUZTCisgIElGUz0vCisgIHNldCBmbm9yZCAkZmlsZQorICBzaGlmdAorICBJRlM9JG9JRlMKKworICBmb3IgZAorICBkbworICAgIHRlc3QgIngkZCIgPSB4ICYmIGNvbnRpbnVlCisKKyAgICBwYXRoY29tcD0kcGF0aGNvbXAkZAorICAgIGNhc2UgJHBhdGhjb21wIGluCisgICAgICAtKikgcGF0aGNvbXA9Li8kcGF0aGNvbXAgOzsKKyAgICBlc2FjCisKKyAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KKyAgICAgIGVjaG8gIm1rZGlyICRwYXRoY29tcCIKKworICAgICAgbWtkaXIgIiRwYXRoY29tcCIgfHwgbGFzdGVycj0kPworCisgICAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KKwllcnJzdGF0dXM9JGxhc3RlcnIKKyAgICAgIGVsc2UKKwlpZiB0ZXN0ICEgLXogIiRkaXJtb2RlIjsgdGhlbgorCSAgZWNobyAiY2htb2QgJGRpcm1vZGUgJHBhdGhjb21wIgorCSAgbGFzdGVycj0KKwkgIGNobW9kICIkZGlybW9kZSIgIiRwYXRoY29tcCIgfHwgbGFzdGVycj0kPworCisJICBpZiB0ZXN0ICEgLXogIiRsYXN0ZXJyIjsgdGhlbgorCSAgICBlcnJzdGF0dXM9JGxhc3RlcnIKKwkgIGZpCisJZmkKKyAgICAgIGZpCisgICAgZmkKKworICAgIHBhdGhjb21wPSRwYXRoY29tcC8KKyAgZG9uZQorZG9uZQorCitleGl0ICRlcnJzdGF0dXMKKworIyBMb2NhbCBWYXJpYWJsZXM6CisjIG1vZGU6IHNoZWxsLXNjcmlwdAorIyBzaC1pbmRlbnRhdGlvbjogMgorIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCisjIEVuZDoKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvbmFub2Z0cC5jIGIvbGlieG1sMi0yLjcuNy9uYW5vZnRwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU0Yjg1YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvbmFub2Z0cC5jCkBAIC0wLDAgKzEsMjExMSBAQAorLyoKKyAqIG5hbm9mdHAuYzogYmFzaWMgRlRQIGNsaWVudCBzdXBwb3J0CisgKgorICogIFJlZmVyZW5jZTogUkZDIDk1OQorICovCisKKyNpZmRlZiBURVNUSU5HCisjZGVmaW5lIFNUQU5EQUxPTkUKKyNkZWZpbmUgSEFWRV9TVERMSUJfSAorI2RlZmluZSBIQVZFX1VOSVNURF9ICisjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9ICisjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9ICisjZGVmaW5lIEhBVkVfTkVUREJfSAorI2RlZmluZSBIQVZFX1NZU19USU1FX0gKKyNlbHNlIC8qIFRFU1RJTkcgKi8KKyNkZWZpbmUgTkVFRF9TT0NLRVRTCisjZW5kaWYgLyogVEVTVElORyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19TT0NLRVRfSAorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfTkVUSU5FVF9JTl9ICisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9BUlBBX0lORVRfSAorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9ORVREQl9ICisjaW5jbHVkZSA8bmV0ZGIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkNOVExfSAorI2luY2x1ZGUgPGZjbnRsLmg+IAorI2VuZGlmCisjaWZkZWYgSEFWRV9FUlJOT19ICisjaW5jbHVkZSA8ZXJybm8uaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1RJTUVfSAorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19TRUxFQ1RfSAorI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVFJJTkdTX0gKKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2luY2x1ZGUgPGxpYnhtbC9uYW5vZnRwLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworLyogI2RlZmluZSBERUJVR19GVFAgMSAgKi8KKyNpZmRlZiBTVEFOREFMT05FCisjaWZuZGVmIERFQlVHX0ZUUAorI2RlZmluZSBERUJVR19GVFAgMQorI2VuZGlmCisjZW5kaWYKKworCisjaWYgZGVmaW5lZChfX01JTkdXMzJfXykgfHwgZGVmaW5lZChfV0lOMzJfV0NFKQorI2RlZmluZSBfV0lOU09DS0FQSV8KKyNpbmNsdWRlIDx3c29ja2NvbXBhdC5oPgorI2luY2x1ZGUgPHdpbnNvY2syLmg+CisjdW5kZWYgWE1MX1NPQ0tMRU5fVAorI2RlZmluZSBYTUxfU09DS0xFTl9UIHVuc2lnbmVkIGludAorI2VuZGlmCisKKy8qKgorICogQSBjb3VwbGUgcG9ydGFiaWxpdHkgbWFjcm9zCisgKi8KKyNpZm5kZWYgX1dJTlNPQ0tBUElfCisjaWYgIWRlZmluZWQoX19CRU9TX18pIHx8IGRlZmluZWQoX19IQUlLVV9fKQorI2RlZmluZSBjbG9zZXNvY2tldChzKSBjbG9zZShzKQorI2VuZGlmCisjZGVmaW5lIFNPQ0tFVCBpbnQKKyNlbmRpZgorCisjaWZkZWYgX19CRU9TX18KKyNpZm5kZWYgUEZfSU5FVAorI2RlZmluZSBQRl9JTkVUIEFGX0lORVQKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBfQUlYCisjaWZkZWYgSEFWRV9CUk9LRU5fU1NfRkFNSUxZCisjZGVmaW5lIHNzX2ZhbWlseSBfX3NzX2ZhbWlseQorI2VuZGlmCisjZW5kaWYKKworI2lmbmRlZiBYTUxfU09DS0xFTl9UCisjZGVmaW5lIFhNTF9TT0NLTEVOX1QgdW5zaWduZWQgaW50CisjZW5kaWYKKworI2RlZmluZSBGVFBfQ09NTUFORF9PSwkJMjAwCisjZGVmaW5lIEZUUF9TWU5UQVhfRVJST1IJNTAwCisjZGVmaW5lIEZUUF9HRVRfUEFTU1dECQkzMzEKKyNkZWZpbmUgRlRQX0JVRl9TSVpFCQkxMDI0CisKKyNkZWZpbmUgWE1MX05BTk9fTUFYX1VSTEJVRgk0MDk2CisKK3R5cGVkZWYgc3RydWN0IHhtbE5hbm9GVFBDdHh0IHsKKyAgICBjaGFyICpwcm90b2NvbDsJLyogdGhlIHByb3RvY29sIG5hbWUgKi8KKyAgICBjaGFyICpob3N0bmFtZTsJLyogdGhlIGhvc3QgbmFtZSAqLworICAgIGludCBwb3J0OwkJLyogdGhlIHBvcnQgKi8KKyAgICBjaGFyICpwYXRoOwkJLyogdGhlIHBhdGggd2l0aGluIHRoZSBVUkwgKi8KKyAgICBjaGFyICp1c2VyOwkJLyogdXNlciBzdHJpbmcgKi8KKyAgICBjaGFyICpwYXNzd2Q7CS8qIHBhc3N3ZCBzdHJpbmcgKi8KKyNpZmRlZiBTVVBQT1JUX0lQNgorICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGZ0cEFkZHI7IC8qIHRoaXMgaXMgbGFyZ2UgZW5vdWdoIHRvIGhvbGQgSVB2NiBhZGRyZXNzKi8KKyNlbHNlCisgICAgc3RydWN0IHNvY2thZGRyX2luIGZ0cEFkZHI7IC8qIHRoZSBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3QgKi8KKyNlbmRpZgorICAgIGludCBwYXNzaXZlOwkvKiBjdXJyZW50bHkgd2Ugc3VwcG9ydCBvbmx5IHBhc3NpdmUgISEhICovCisgICAgU09DS0VUIGNvbnRyb2xGZDsJLyogdGhlIGZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIGNvbnRyb2wgc29ja2V0ICovCisgICAgU09DS0VUIGRhdGFGZDsJLyogdGhlIGZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIGRhdGEgc29ja2V0ICovCisgICAgaW50IHN0YXRlOwkJLyogV1JJVEUgLyBSRUFEIC8gQ0xPU0VEICovCisgICAgaW50IHJldHVyblZhbHVlOwkvKiB0aGUgcHJvdG9jb2wgcmV0dXJuIHZhbHVlICovCisgICAgLyogYnVmZmVyIGZvciBkYXRhIHJlY2VpdmVkIGZyb20gdGhlIGNvbnRyb2wgY29ubmVjdGlvbiAqLworICAgIGNoYXIgY29udHJvbEJ1ZltGVFBfQlVGX1NJWkUgKyAxXTsKKyAgICBpbnQgY29udHJvbEJ1ZkluZGV4OworICAgIGludCBjb250cm9sQnVmVXNlZDsKKyAgICBpbnQgY29udHJvbEJ1ZkFuc3dlcjsKK30geG1sTmFub0ZUUEN0eHQsICp4bWxOYW5vRlRQQ3R4dFB0cjsKKworc3RhdGljIGludCBpbml0aWFsaXplZCA9IDA7CitzdGF0aWMgY2hhciAqcHJveHkgPSBOVUxMOwkvKiB0aGUgcHJveHkgbmFtZSBpZiBhbnkgKi8KK3N0YXRpYyBpbnQgcHJveHlQb3J0ID0gMDsJLyogdGhlIHByb3h5IHBvcnQgaWYgYW55ICovCitzdGF0aWMgY2hhciAqcHJveHlVc2VyID0gTlVMTDsJLyogdXNlciBmb3IgcHJveHkgYXV0aGVudGljYXRpb24gKi8KK3N0YXRpYyBjaGFyICpwcm94eVBhc3N3ZCA9IE5VTEw7LyogcGFzc3dkIGZvciBwcm94eSBhdXRoZW50aWNhdGlvbiAqLworc3RhdGljIGludCBwcm94eVR5cGUgPSAwOwkvKiB1c2VzIFRZUEUgb3IgYUBiID8gKi8KKworI2lmZGVmIFNVUFBPUlRfSVA2CitzdGF0aWMKK2ludCBoYXZlX2lwdjYodm9pZCkgeworICAgIGludCBzOworCisgICAgcyA9IHNvY2tldCAoQUZfSU5FVDYsIFNPQ0tfU1RSRUFNLCAwKTsKKyAgICBpZiAocyAhPSAtMSkgeworCWNsb3NlIChzKTsKKwlyZXR1cm4gKDEpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorI2VuZGlmCisKKy8qKgorICogeG1sRlRQRXJyTWVtb3J5OgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGVFBFcnJNZW1vcnkoY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9GVFAsIFhNTF9FUlJfTk9fTUVNT1JZLCBOVUxMLCBOVUxMLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUEluaXQ6CisgKgorICogSW5pdGlhbGl6ZSB0aGUgRlRQIHByb3RvY29sIGxheWVyLgorICogQ3VycmVudGx5IGl0IGp1c3QgY2hlY2tzIGZvciBwcm94eSBpbmZvcm1hdGlvbnMsCisgKiBhbmQgZ2V0IHRoZSBob3N0bmFtZQorICovCisKK3ZvaWQKK3htbE5hbm9GVFBJbml0KHZvaWQpIHsKKyAgICBjb25zdCBjaGFyICplbnY7CisjaWZkZWYgX1dJTlNPQ0tBUElfCisgICAgV1NBREFUQSB3c2FEYXRhOyAgICAKKyNlbmRpZgorCisgICAgaWYgKGluaXRpYWxpemVkKQorCXJldHVybjsKKworI2lmZGVmIF9XSU5TT0NLQVBJXworICAgIGlmIChXU0FTdGFydHVwKE1BS0VXT1JEKDEsIDEpLCAmd3NhRGF0YSkgIT0gMCkKKwlyZXR1cm47CisjZW5kaWYKKworICAgIHByb3h5UG9ydCA9IDIxOworICAgIGVudiA9IGdldGVudigibm9fcHJveHkiKTsKKyAgICBpZiAoZW52ICYmICgoZW52WzBdID09ICcqJyApICYmIChlbnZbMV0gPT0gMCkpKQorCXJldHVybjsKKyAgICBlbnYgPSBnZXRlbnYoImZ0cF9wcm94eSIpOworICAgIGlmIChlbnYgIT0gTlVMTCkgeworCXhtbE5hbm9GVFBTY2FuUHJveHkoZW52KTsKKyAgICB9IGVsc2UgeworCWVudiA9IGdldGVudigiRlRQX1BST1hZIik7CisJaWYgKGVudiAhPSBOVUxMKSB7CisJICAgIHhtbE5hbm9GVFBTY2FuUHJveHkoZW52KTsKKwl9CisgICAgfQorICAgIGVudiA9IGdldGVudigiZnRwX3Byb3h5X3VzZXIiKTsKKyAgICBpZiAoZW52ICE9IE5VTEwpIHsKKwlwcm94eVVzZXIgPSB4bWxNZW1TdHJkdXAoZW52KTsKKyAgICB9CisgICAgZW52ID0gZ2V0ZW52KCJmdHBfcHJveHlfcGFzc3dvcmQiKTsKKyAgICBpZiAoZW52ICE9IE5VTEwpIHsKKwlwcm94eVBhc3N3ZCA9IHhtbE1lbVN0cmR1cChlbnYpOworICAgIH0KKyAgICBpbml0aWFsaXplZCA9IDE7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUENsZWFudXA6CisgKgorICogQ2xlYW51cCB0aGUgRlRQIHByb3RvY29sIGxheWVyLiBUaGlzIGNsZWFudXAgcHJveHkgaW5mb3JtYXRpb25zLgorICovCisKK3ZvaWQKK3htbE5hbm9GVFBDbGVhbnVwKHZvaWQpIHsKKyAgICBpZiAocHJveHkgIT0gTlVMTCkgeworCXhtbEZyZWUocHJveHkpOworCXByb3h5ID0gTlVMTDsKKyAgICB9CisgICAgaWYgKHByb3h5VXNlciAhPSBOVUxMKSB7CisJeG1sRnJlZShwcm94eVVzZXIpOworCXByb3h5VXNlciA9IE5VTEw7CisgICAgfQorICAgIGlmIChwcm94eVBhc3N3ZCAhPSBOVUxMKSB7CisJeG1sRnJlZShwcm94eVBhc3N3ZCk7CisJcHJveHlQYXNzd2QgPSBOVUxMOworICAgIH0KKyNpZmRlZiBfV0lOU09DS0FQSV8KKyAgICBpZiAoaW5pdGlhbGl6ZWQpCisJV1NBQ2xlYW51cCgpOworI2VuZGlmCisgICAgaW5pdGlhbGl6ZWQgPSAwOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBQcm94eToKKyAqIEBob3N0OiAgdGhlIHByb3h5IGhvc3QgbmFtZQorICogQHBvcnQ6ICB0aGUgcHJveHkgcG9ydAorICogQHVzZXI6ICB0aGUgcHJveHkgdXNlciBuYW1lCisgKiBAcGFzc3dkOiAgdGhlIHByb3h5IHBhc3N3b3JkCisgKiBAdHlwZTogIHRoZSB0eXBlIG9mIHByb3h5IDEgZm9yIHVzaW5nIFNJVEUsIDIgZm9yIFVTRVIgYUBiCisgKgorICogU2V0dXAgdGhlIEZUUCBwcm94eSBpbmZvcm1hdGlvbnMuCisgKiBUaGlzIGNhbiBhbHNvIGJlIGRvbmUgYnkgdXNpbmcgZnRwX3Byb3h5IGZ0cF9wcm94eV91c2VyIGFuZAorICogZnRwX3Byb3h5X3Bhc3N3b3JkIGVudmlyb25tZW50IHZhcmlhYmxlcy4KKyAqLworCit2b2lkCit4bWxOYW5vRlRQUHJveHkoY29uc3QgY2hhciAqaG9zdCwgaW50IHBvcnQsIGNvbnN0IGNoYXIgKnVzZXIsCisJICAgICAgICBjb25zdCBjaGFyICpwYXNzd2QsIGludCB0eXBlKSB7CisgICAgaWYgKHByb3h5ICE9IE5VTEwpIHsKKwl4bWxGcmVlKHByb3h5KTsKKwlwcm94eSA9IE5VTEw7CisgICAgfQorICAgIGlmIChwcm94eVVzZXIgIT0gTlVMTCkgeworCXhtbEZyZWUocHJveHlVc2VyKTsKKwlwcm94eVVzZXIgPSBOVUxMOworICAgIH0KKyAgICBpZiAocHJveHlQYXNzd2QgIT0gTlVMTCkgeworCXhtbEZyZWUocHJveHlQYXNzd2QpOworCXByb3h5UGFzc3dkID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGhvc3QpCisJcHJveHkgPSB4bWxNZW1TdHJkdXAoaG9zdCk7CisgICAgaWYgKHVzZXIpCisJcHJveHlVc2VyID0geG1sTWVtU3RyZHVwKHVzZXIpOworICAgIGlmIChwYXNzd2QpCisJcHJveHlQYXNzd2QgPSB4bWxNZW1TdHJkdXAocGFzc3dkKTsKKyAgICBwcm94eVBvcnQgPSBwb3J0OworICAgIHByb3h5VHlwZSA9IHR5cGU7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUFNjYW5VUkw6CisgKiBAY3R4OiAgYW4gRlRQIGNvbnRleHQKKyAqIEBVUkw6ICBUaGUgVVJMIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgY29udGV4dAorICoKKyAqIChSZSlJbml0aWFsaXplIGFuIEZUUCBjb250ZXh0IGJ5IHBhcnNpbmcgdGhlIFVSTCBhbmQgZmluZGluZworICogdGhlIHByb3RvY29sIGhvc3QgcG9ydCBhbmQgcGF0aCBpdCBpbmRpY2F0ZXMuCisgKi8KKworc3RhdGljIHZvaWQKK3htbE5hbm9GVFBTY2FuVVJMKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqVVJMKSB7CisgICAgeG1sTmFub0ZUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vRlRQQ3R4dFB0cikgY3R4OworICAgIHhtbFVSSVB0ciB1cmk7CisKKyAgICAvKgorICAgICAqIENsZWFyIGFueSBleGlzdGluZyBkYXRhIGZyb20gdGhlIGNvbnRleHQKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+cHJvdG9jb2wgIT0gTlVMTCkgeyAKKyAgICAgICAgeG1sRnJlZShjdHh0LT5wcm90b2NvbCk7CisJY3R4dC0+cHJvdG9jb2wgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+aG9zdG5hbWUgIT0gTlVMTCkgeyAKKyAgICAgICAgeG1sRnJlZShjdHh0LT5ob3N0bmFtZSk7CisJY3R4dC0+aG9zdG5hbWUgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+cGF0aCAhPSBOVUxMKSB7IAorICAgICAgICB4bWxGcmVlKGN0eHQtPnBhdGgpOworCWN0eHQtPnBhdGggPSBOVUxMOworICAgIH0KKyAgICBpZiAoVVJMID09IE5VTEwpIHJldHVybjsKKworICAgIHVyaSA9IHhtbFBhcnNlVVJJUmF3KFVSTCwgMSk7CisgICAgaWYgKHVyaSA9PSBOVUxMKQorCXJldHVybjsKKworICAgIGlmICgodXJpLT5zY2hlbWUgPT0gTlVMTCkgfHwgKHVyaS0+c2VydmVyID09IE5VTEwpKSB7CisJeG1sRnJlZVVSSSh1cmkpOworCXJldHVybjsKKyAgICB9CisgICAgCisgICAgY3R4dC0+cHJvdG9jb2wgPSB4bWxNZW1TdHJkdXAodXJpLT5zY2hlbWUpOworICAgIGN0eHQtPmhvc3RuYW1lID0geG1sTWVtU3RyZHVwKHVyaS0+c2VydmVyKTsKKyAgICBpZiAodXJpLT5wYXRoICE9IE5VTEwpCisJY3R4dC0+cGF0aCA9IHhtbE1lbVN0cmR1cCh1cmktPnBhdGgpOworICAgIGVsc2UKKwljdHh0LT5wYXRoID0geG1sTWVtU3RyZHVwKCIvIik7CisgICAgaWYgKHVyaS0+cG9ydCAhPSAwKQorCWN0eHQtPnBvcnQgPSB1cmktPnBvcnQ7CisKKyAgICBpZiAodXJpLT51c2VyICE9IE5VTEwpIHsKKwljaGFyICpjcHRyOworCWlmICgoY3B0cj1zdHJjaHIodXJpLT51c2VyLCAnOicpKSA9PSBOVUxMKQorCSAgICBjdHh0LT51c2VyID0geG1sTWVtU3RyZHVwKHVyaS0+dXNlcik7CisJZWxzZSB7CisJICAgIGN0eHQtPnVzZXIgPSAoY2hhciAqKXhtbFN0cm5kdXAoKHhtbENoYXIgKil1cmktPnVzZXIsCisJCQkgICAgKGNwdHIgLSB1cmktPnVzZXIpKTsKKwkgICAgY3R4dC0+cGFzc3dkID0geG1sTWVtU3RyZHVwKGNwdHIrMSk7CisJfQorICAgIH0KKworICAgIHhtbEZyZWVVUkkodXJpKTsKKworfQorCisvKioKKyAqIHhtbE5hbm9GVFBVcGRhdGVVUkw6CisgKiBAY3R4OiAgYW4gRlRQIGNvbnRleHQKKyAqIEBVUkw6ICBUaGUgVVJMIHVzZWQgdG8gdXBkYXRlIHRoZSBjb250ZXh0CisgKgorICogVXBkYXRlIGFuIEZUUCBjb250ZXh0IGJ5IHBhcnNpbmcgdGhlIFVSTCBhbmQgZmluZGluZworICogbmV3IHBhdGggaXQgaW5kaWNhdGVzLiBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbiB0aGUgCisgKiBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgb3Igb3RoZXIgaW5mb3JtYXRpb24sIHRoZQorICogZXJyb3IgaXMgcmFpc2VkLiBJdCBpbmRpY2F0ZXMgYSBuZXcgY29ubmVjdGlvbiBoYXMgdG8KKyAqIGJlIGVzdGFibGlzaGVkLgorICoKKyAqIFJldHVybnMgMCBpZiBPaywgLTEgaW4gY2FzZSBvZiBlcnJvciAob3RoZXIgaG9zdCkuCisgKi8KKworaW50Cit4bWxOYW5vRlRQVXBkYXRlVVJMKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqVVJMKSB7CisgICAgeG1sTmFub0ZUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vRlRQQ3R4dFB0cikgY3R4OworICAgIHhtbFVSSVB0ciB1cmk7CisKKyAgICBpZiAoVVJMID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKGN0eHQtPnByb3RvY29sID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoY3R4dC0+aG9zdG5hbWUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgdXJpID0geG1sUGFyc2VVUklSYXcoVVJMLCAxKTsKKyAgICBpZiAodXJpID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKworICAgIGlmICgodXJpLT5zY2hlbWUgPT0gTlVMTCkgfHwgKHVyaS0+c2VydmVyID09IE5VTEwpKSB7CisJeG1sRnJlZVVSSSh1cmkpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmICgoc3RyY21wKGN0eHQtPnByb3RvY29sLCB1cmktPnNjaGVtZSkpIHx8CisJKHN0cmNtcChjdHh0LT5ob3N0bmFtZSwgdXJpLT5zZXJ2ZXIpKSB8fAorCSgodXJpLT5wb3J0ICE9IDApICYmIChjdHh0LT5wb3J0ICE9IHVyaS0+cG9ydCkpKSB7CisJeG1sRnJlZVVSSSh1cmkpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgaWYgKHVyaS0+cG9ydCAhPSAwKQorCWN0eHQtPnBvcnQgPSB1cmktPnBvcnQ7CisKKyAgICBpZiAoY3R4dC0+cGF0aCAhPSBOVUxMKSB7CisJeG1sRnJlZShjdHh0LT5wYXRoKTsKKwljdHh0LT5wYXRoID0gTlVMTDsKKyAgICB9CisKKyAgICBpZiAodXJpLT5wYXRoID09IE5VTEwpIAorICAgICAgICBjdHh0LT5wYXRoID0geG1sTWVtU3RyZHVwKCIvIik7CisgICAgZWxzZQorCWN0eHQtPnBhdGggPSB4bWxNZW1TdHJkdXAodXJpLT5wYXRoKTsKKworICAgIHhtbEZyZWVVUkkodXJpKTsKKworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxOYW5vRlRQU2NhblByb3h5OgorICogQFVSTDogIFRoZSBwcm94eSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwcm94eSBjb250ZXh0CisgKgorICogKFJlKUluaXRpYWxpemUgdGhlIEZUUCBQcm94eSBjb250ZXh0IGJ5IHBhcnNpbmcgdGhlIFVSTCBhbmQgZmluZGluZworICogdGhlIHByb3RvY29sIGhvc3QgcG9ydCBpdCBpbmRpY2F0ZXMuCisgKiBTaG91bGQgYmUgbGlrZSBmdHA6Ly9teXByb3h5LyBvciBmdHA6Ly9teXByb3h5OjMxMjgvCisgKiBBIE5VTEwgVVJMIGNsZWFucyB1cCBwcm94eSBpbmZvcm1hdGlvbnMuCisgKi8KKwordm9pZAoreG1sTmFub0ZUUFNjYW5Qcm94eShjb25zdCBjaGFyICpVUkwpIHsKKyAgICB4bWxVUklQdHIgdXJpOworCisgICAgaWYgKHByb3h5ICE9IE5VTEwpIHsgCisgICAgICAgIHhtbEZyZWUocHJveHkpOworCXByb3h5ID0gTlVMTDsKKyAgICB9CisgICAgcHJveHlQb3J0ID0gMDsKKworI2lmZGVmIERFQlVHX0ZUUAorICAgIGlmIChVUkwgPT0gTlVMTCkKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlJlbW92aW5nIEZUUCBwcm94eSBpbmZvXG4iKTsKKyAgICBlbHNlCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJVc2luZyBGVFAgcHJveHkgJXNcbiIsIFVSTCk7CisjZW5kaWYKKyAgICBpZiAoVVJMID09IE5VTEwpIHJldHVybjsKKworICAgIHVyaSA9IHhtbFBhcnNlVVJJUmF3KFVSTCwgMSk7CisgICAgaWYgKCh1cmkgPT0gTlVMTCkgfHwgKHVyaS0+c2NoZW1lID09IE5VTEwpIHx8CisJKHN0cmNtcCh1cmktPnNjaGVtZSwgImZ0cCIpKSB8fCAodXJpLT5zZXJ2ZXIgPT0gTlVMTCkpIHsKKwlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgWE1MX0ZUUF9VUkxfU1lOVEFYLCAiU3ludGF4IEVycm9yXG4iKTsKKwlpZiAodXJpICE9IE5VTEwpCisJICAgIHhtbEZyZWVVUkkodXJpKTsKKwlyZXR1cm47CisgICAgfQorICAgIAorICAgIHByb3h5ID0geG1sTWVtU3RyZHVwKHVyaS0+c2VydmVyKTsKKyAgICBpZiAodXJpLT5wb3J0ICE9IDApCisJcHJveHlQb3J0ID0gdXJpLT5wb3J0OworCisgICAgeG1sRnJlZVVSSSh1cmkpOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBOZXdDdHh0OgorICogQFVSTDogIFRoZSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBjb250ZXh0CisgKgorICogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgRlRQIGNvbnRleHQuCisgKgorICogUmV0dXJucyBhbiBGVFAgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KKwordm9pZCoKK3htbE5hbm9GVFBOZXdDdHh0KGNvbnN0IGNoYXIgKlVSTCkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIHJldDsKKyAgICBjaGFyICp1bmVzY2FwZWQ7CisKKyAgICByZXQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTmFub0ZUUEN0eHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sRlRQRXJyTWVtb3J5KCJhbGxvY2F0aW5nIEZUUCBjb250ZXh0Iik7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sTmFub0ZUUEN0eHQpKTsKKyAgICByZXQtPnBvcnQgPSAyMTsKKyAgICByZXQtPnBhc3NpdmUgPSAxOworICAgIHJldC0+cmV0dXJuVmFsdWUgPSAwOworICAgIHJldC0+Y29udHJvbEJ1ZkluZGV4ID0gMDsKKyAgICByZXQtPmNvbnRyb2xCdWZVc2VkID0gMDsKKyAgICByZXQtPmNvbnRyb2xGZCA9IC0xOworCisgICAgdW5lc2NhcGVkID0geG1sVVJJVW5lc2NhcGVTdHJpbmcoVVJMLCAwLCBOVUxMKTsKKyAgICBpZiAodW5lc2NhcGVkICE9IE5VTEwpIHsKKwl4bWxOYW5vRlRQU2NhblVSTChyZXQsIHVuZXNjYXBlZCk7CisJeG1sRnJlZSh1bmVzY2FwZWQpOworICAgIH0gZWxzZSBpZiAoVVJMICE9IE5VTEwpCisJeG1sTmFub0ZUUFNjYW5VUkwocmV0LCBVUkwpOworCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUEZyZWVDdHh0OgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKgorICogRnJlZXMgdGhlIGNvbnRleHQgYWZ0ZXIgY2xvc2luZyB0aGUgY29ubmVjdGlvbi4KKyAqLworCit2b2lkCit4bWxOYW5vRlRQRnJlZUN0eHQodm9pZCAqIGN0eCkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIGN0eDsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKGN0eHQtPmhvc3RuYW1lICE9IE5VTEwpIHhtbEZyZWUoY3R4dC0+aG9zdG5hbWUpOworICAgIGlmIChjdHh0LT5wcm90b2NvbCAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPnByb3RvY29sKTsKKyAgICBpZiAoY3R4dC0+cGF0aCAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPnBhdGgpOworICAgIGN0eHQtPnBhc3NpdmUgPSAxOworICAgIGlmIChjdHh0LT5jb250cm9sRmQgPj0gMCkgY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsKKyAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKyAgICBjdHh0LT5jb250cm9sQnVmSW5kZXggPSAtMTsKKyAgICBjdHh0LT5jb250cm9sQnVmVXNlZCA9IC0xOworICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUFBhcnNlUmVzcG9uc2U6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSByZXNwb25zZQorICogQGxlbjogIHRoZSBidWZmZXIgbGVuZ3RoCisgKiAKKyAqIFBhcnNpbmcgb2YgdGhlIHNlcnZlciBhbnN3ZXIsIHdlIGp1c3QgZXh0cmFjdCB0aGUgY29kZS4KKyAqCisgKiByZXR1cm5zIDAgZm9yIGVycm9ycworICogICAgICtYWFggZm9yIGxhc3QgbGluZSBvZiByZXNwb25zZQorICogICAgIC1YWFggZm9yIHJlc3BvbnNlIHRvIGJlIGNvbnRpbnVlZAorICovCitzdGF0aWMgaW50Cit4bWxOYW5vRlRQUGFyc2VSZXNwb25zZShjaGFyICpidWYsIGludCBsZW4pIHsKKyAgICBpbnQgdmFsID0gMDsKKworICAgIGlmIChsZW4gPCAzKSByZXR1cm4oLTEpOworICAgIGlmICgoKmJ1ZiA+PSAnMCcpICYmICgqYnVmIDw9ICc5JykpIAorICAgICAgICB2YWwgPSB2YWwgKiAxMCArICgqYnVmIC0gJzAnKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybigwKTsKKyAgICBidWYrKzsKKyAgICBpZiAoKCpidWYgPj0gJzAnKSAmJiAoKmJ1ZiA8PSAnOScpKSAKKyAgICAgICAgdmFsID0gdmFsICogMTAgKyAoKmJ1ZiAtICcwJyk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4oMCk7CisgICAgYnVmKys7CisgICAgaWYgKCgqYnVmID49ICcwJykgJiYgKCpidWYgPD0gJzknKSkgCisgICAgICAgIHZhbCA9IHZhbCAqIDEwICsgKCpidWYgLSAnMCcpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuKDApOworICAgIGJ1ZisrOworICAgIGlmICgqYnVmID09ICctJykgCisgICAgICAgIHJldHVybigtdmFsKTsKKyAgICByZXR1cm4odmFsKTsKK30KKworLyoqCisgKiB4bWxOYW5vRlRQR2V0TW9yZToKKyAqIEBjdHg6ICBhbiBGVFAgY29udGV4dAorICoKKyAqIFJlYWQgbW9yZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBGVFAgY29udHJvbCBjb25uZWN0aW9uCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCwgPCAwIGluZGljYXRlcyBhbiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxOYW5vRlRQR2V0TW9yZSh2b2lkICpjdHgpIHsKKyAgICB4bWxOYW5vRlRQQ3R4dFB0ciBjdHh0ID0gKHhtbE5hbm9GVFBDdHh0UHRyKSBjdHg7CisgICAgaW50IGxlbjsKKyAgICBpbnQgc2l6ZTsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udHJvbEZkIDwgMCkpIHJldHVybigtMSk7CisKKyAgICBpZiAoKGN0eHQtPmNvbnRyb2xCdWZJbmRleCA8IDApIHx8IChjdHh0LT5jb250cm9sQnVmSW5kZXggPiBGVFBfQlVGX1NJWkUpKSB7CisjaWZkZWYgREVCVUdfRlRQCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmFub0ZUUEdldE1vcmUgOiBjb250cm9sQnVmSW5kZXggPSAlZFxuIiwKKwkJY3R4dC0+Y29udHJvbEJ1ZkluZGV4KTsKKyNlbmRpZgorCXJldHVybigtMSk7CisgICAgfQorCisgICAgaWYgKChjdHh0LT5jb250cm9sQnVmVXNlZCA8IDApIHx8IChjdHh0LT5jb250cm9sQnVmVXNlZCA+IEZUUF9CVUZfU0laRSkpIHsKKyNpZmRlZiBERUJVR19GVFAKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxOYW5vRlRQR2V0TW9yZSA6IGNvbnRyb2xCdWZVc2VkID0gJWRcbiIsCisJCWN0eHQtPmNvbnRyb2xCdWZVc2VkKTsKKyNlbmRpZgorCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChjdHh0LT5jb250cm9sQnVmSW5kZXggPiBjdHh0LT5jb250cm9sQnVmVXNlZCkgeworI2lmZGVmIERFQlVHX0ZUUAorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5hbm9GVFBHZXRNb3JlIDogY29udHJvbEJ1ZkluZGV4ID4gY29udHJvbEJ1ZlVzZWQgJWQgPiAlZFxuIiwKKwkgICAgICAgY3R4dC0+Y29udHJvbEJ1ZkluZGV4LCBjdHh0LT5jb250cm9sQnVmVXNlZCk7CisjZW5kaWYKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogRmlyc3QgcGFjayB0aGUgY29udHJvbCBidWZmZXIKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+Y29udHJvbEJ1ZkluZGV4ID4gMCkgeworCW1lbW1vdmUoJmN0eHQtPmNvbnRyb2xCdWZbMF0sICZjdHh0LT5jb250cm9sQnVmW2N0eHQtPmNvbnRyb2xCdWZJbmRleF0sCisJCWN0eHQtPmNvbnRyb2xCdWZVc2VkIC0gY3R4dC0+Y29udHJvbEJ1ZkluZGV4KTsKKwljdHh0LT5jb250cm9sQnVmVXNlZCAtPSBjdHh0LT5jb250cm9sQnVmSW5kZXg7CisJY3R4dC0+Y29udHJvbEJ1ZkluZGV4ID0gMDsKKyAgICB9CisgICAgc2l6ZSA9IEZUUF9CVUZfU0laRSAtIGN0eHQtPmNvbnRyb2xCdWZVc2VkOworICAgIGlmIChzaXplID09IDApIHsKKyNpZmRlZiBERUJVR19GVFAKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxOYW5vRlRQR2V0TW9yZSA6IGJ1ZmZlciBmdWxsICVkIFxuIiwgY3R4dC0+Y29udHJvbEJ1ZlVzZWQpOworI2VuZGlmCisJcmV0dXJuKDApOworICAgIH0KKworICAgIC8qCisgICAgICogUmVhZCB0aGUgYW1vdW50IGxlZnQgb24gdGhlIGNvbnRyb2wgY29ubmVjdGlvbgorICAgICAqLworICAgIGlmICgobGVuID0gcmVjdihjdHh0LT5jb250cm9sRmQsICZjdHh0LT5jb250cm9sQnVmW2N0eHQtPmNvbnRyb2xCdWZJbmRleF0sCisJCSAgICBzaXplLCAwKSkgPCAwKSB7CisJX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJyZWN2IGZhaWxlZCIpOworCWNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7IGN0eHQtPmNvbnRyb2xGZCA9IC0xOworICAgICAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisjaWZkZWYgREVCVUdfRlRQCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJ4bWxOYW5vRlRQR2V0TW9yZSA6IHJlYWQgJWQgWyVkIC0gJWRdXG4iLCBsZW4sCisJICAgY3R4dC0+Y29udHJvbEJ1ZlVzZWQsIGN0eHQtPmNvbnRyb2xCdWZVc2VkICsgbGVuKTsKKyNlbmRpZgorICAgIGN0eHQtPmNvbnRyb2xCdWZVc2VkICs9IGxlbjsKKyAgICBjdHh0LT5jb250cm9sQnVmW2N0eHQtPmNvbnRyb2xCdWZVc2VkXSA9IDA7CisKKyAgICByZXR1cm4obGVuKTsKK30KKworLyoqCisgKiB4bWxOYW5vRlRQUmVhZFJlc3BvbnNlOgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKgorICogUmVhZCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgRlRQIHNlcnZlciBhZnRlciBhIGNvbW1hbmQuCisgKiBSZXR1cm5zIHRoZSBjb2RlIG51bWJlcgorICovCitzdGF0aWMgaW50Cit4bWxOYW5vRlRQUmVhZFJlc3BvbnNlKHZvaWQgKmN0eCkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIGN0eDsKKyAgICBjaGFyICpwdHIsICplbmQ7CisgICAgaW50IGxlbjsKKyAgICBpbnQgcmVzID0gLTEsIGN1ciA9IC0xOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250cm9sRmQgPCAwKSkgcmV0dXJuKC0xKTsKKworZ2V0X21vcmU6CisgICAgLyoKKyAgICAgKiBBc3N1bWVzIGV2ZXJ5dGhpbmcgdXAgdG8gY29udHJvbEJ1Zltjb250cm9sQnVmSW5kZXhdIGhhcyBiZWVuIHJlYWQKKyAgICAgKiBhbmQgYW5hbHl6ZWQuCisgICAgICovCisgICAgbGVuID0geG1sTmFub0ZUUEdldE1vcmUoY3R4KTsKKyAgICBpZiAobGVuIDwgMCkgeworICAgICAgICByZXR1cm4oLTEpOworICAgIH0KKyAgICBpZiAoKGN0eHQtPmNvbnRyb2xCdWZVc2VkID09IDApICYmIChsZW4gPT0gMCkpIHsKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcHRyID0gJmN0eHQtPmNvbnRyb2xCdWZbY3R4dC0+Y29udHJvbEJ1ZkluZGV4XTsKKyAgICBlbmQgPSAmY3R4dC0+Y29udHJvbEJ1ZltjdHh0LT5jb250cm9sQnVmVXNlZF07CisKKyNpZmRlZiBERUJVR19GVFAKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIlxuPDw8XG4lc1xuLS1cbiIsIHB0cik7CisjZW5kaWYKKyAgICB3aGlsZSAocHRyIDwgZW5kKSB7CisgICAgICAgIGN1ciA9IHhtbE5hbm9GVFBQYXJzZVJlc3BvbnNlKHB0ciwgZW5kIC0gcHRyKTsKKwlpZiAoY3VyID4gMCkgeworCSAgICAvKgorCSAgICAgKiBTdWNjZXNzZnVsbHkgc2Nhbm5lZCB0aGUgY29udHJvbCBjb2RlLCBzY3JhdGNoCisJICAgICAqIHRpbGwgdGhlIGVuZCBvZiB0aGUgbGluZSwgYnV0IGtlZXAgdGhlIGluZGV4IHRvIGJlCisJICAgICAqIGFibGUgdG8gYW5hbHl6ZSB0aGUgcmVzdWx0IGlmIG5lZWRlZC4KKwkgICAgICovCisJICAgIHJlcyA9IGN1cjsKKwkgICAgcHRyICs9IDM7CisJICAgIGN0eHQtPmNvbnRyb2xCdWZBbnN3ZXIgPSBwdHIgLSBjdHh0LT5jb250cm9sQnVmOworCSAgICB3aGlsZSAoKHB0ciA8IGVuZCkgJiYgKCpwdHIgIT0gJ1xuJykpIHB0cisrOworCSAgICBpZiAoKnB0ciA9PSAnXG4nKSBwdHIrKzsKKwkgICAgaWYgKCpwdHIgPT0gJ1xyJykgcHRyKys7CisJICAgIGJyZWFrOworCX0KKwl3aGlsZSAoKHB0ciA8IGVuZCkgJiYgKCpwdHIgIT0gJ1xuJykpIHB0cisrOworCWlmIChwdHIgPj0gZW5kKSB7CisJICAgIGN0eHQtPmNvbnRyb2xCdWZJbmRleCA9IGN0eHQtPmNvbnRyb2xCdWZVc2VkOworCSAgICBnb3RvIGdldF9tb3JlOworCX0KKwlpZiAoKnB0ciAhPSAnXHInKSBwdHIrKzsKKyAgICB9CisKKyAgICBpZiAocmVzIDwgMCkgZ290byBnZXRfbW9yZTsKKyAgICBjdHh0LT5jb250cm9sQnVmSW5kZXggPSBwdHIgLSBjdHh0LT5jb250cm9sQnVmOworI2lmZGVmIERFQlVHX0ZUUAorICAgIHB0ciA9ICZjdHh0LT5jb250cm9sQnVmW2N0eHQtPmNvbnRyb2xCdWZJbmRleF07CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJcbi0tLVxuJXNcbi0tXG4iLCBwdHIpOworI2VuZGlmCisKKyNpZmRlZiBERUJVR19GVFAKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkdvdCAlZFxuIiwgcmVzKTsKKyNlbmRpZgorICAgIHJldHVybihyZXMgLyAxMDApOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBHZXRSZXNwb25zZToKKyAqIEBjdHg6ICBhbiBGVFAgY29udGV4dAorICoKKyAqIEdldCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgRlRQIHNlcnZlciBhZnRlciBhIGNvbW1hbmQuCisgKiBSZXR1cm5zIHRoZSBjb2RlIG51bWJlcgorICovCisKK2ludAoreG1sTmFub0ZUUEdldFJlc3BvbnNlKHZvaWQgKmN0eCkgeworICAgIGludCByZXM7CisKKyAgICByZXMgPSB4bWxOYW5vRlRQUmVhZFJlc3BvbnNlKGN0eCk7CisKKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqCisgKiB4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZToKKyAqIEBjdHg6ICBhbiBGVFAgY29udGV4dAorICoKKyAqIENoZWNrIGlmIHRoZXJlIGlzIGEgcmVzcG9uc2UgZnJvbSB0aGUgRlRQIHNlcnZlciBhZnRlciBhIGNvbW1hbmQuCisgKiBSZXR1cm5zIHRoZSBjb2RlIG51bWJlciwgb3IgMAorICovCisKK2ludAoreG1sTmFub0ZUUENoZWNrUmVzcG9uc2Uodm9pZCAqY3R4KSB7CisgICAgeG1sTmFub0ZUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vRlRQQ3R4dFB0cikgY3R4OworICAgIGZkX3NldCByZmQ7CisgICAgc3RydWN0IHRpbWV2YWwgdHY7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRyb2xGZCA8IDApKSByZXR1cm4oLTEpOworICAgIHR2LnR2X3NlYyA9IDA7CisgICAgdHYudHZfdXNlYyA9IDA7CisgICAgRkRfWkVSTygmcmZkKTsKKyAgICBGRF9TRVQoY3R4dC0+Y29udHJvbEZkLCAmcmZkKTsKKyAgICBzd2l0Y2goc2VsZWN0KGN0eHQtPmNvbnRyb2xGZCArIDEsICZyZmQsIE5VTEwsIE5VTEwsICZ0dikpIHsKKwljYXNlIDA6CisJICAgIHJldHVybigwKTsKKwljYXNlIC0xOgorCSAgICBfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgMCwgInNlbGVjdCIpOworCSAgICByZXR1cm4oLTEpOworCQkJCisgICAgfQorCisgICAgcmV0dXJuKHhtbE5hbm9GVFBSZWFkUmVzcG9uc2UoY3R4KSk7Cit9CisKKy8qKgorICogU2VuZCB0aGUgdXNlciBhdXRoZW50aWNhdGlvbgorICovCisKK3N0YXRpYyBpbnQKK3htbE5hbm9GVFBTZW5kVXNlcih2b2lkICpjdHgpIHsKKyAgICB4bWxOYW5vRlRQQ3R4dFB0ciBjdHh0ID0gKHhtbE5hbm9GVFBDdHh0UHRyKSBjdHg7CisgICAgY2hhciBidWZbMjAwXTsKKyAgICBpbnQgbGVuOworICAgIGludCByZXM7CisKKyAgICBpZiAoY3R4dC0+dXNlciA9PSBOVUxMKQorCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJVU0VSIGFub255bW91c1xyXG4iKTsKKyAgICBlbHNlCisJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIlVTRVIgJXNcclxuIiwgY3R4dC0+dXNlcik7CisgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOworICAgIGxlbiA9IHN0cmxlbihidWYpOworI2lmZGVmIERFQlVHX0ZUUAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiJXMiLCBidWYpOworI2VuZGlmCisgICAgcmVzID0gc2VuZChjdHh0LT5jb250cm9sRmQsIGJ1ZiwgbGVuLCAwKTsKKyAgICBpZiAocmVzIDwgMCkgeworCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAic2VuZCBmYWlsZWQiKTsKKwlyZXR1cm4ocmVzKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIFNlbmQgdGhlIHBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uCisgKi8KKworc3RhdGljIGludAoreG1sTmFub0ZUUFNlbmRQYXNzd2Qodm9pZCAqY3R4KSB7CisgICAgeG1sTmFub0ZUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vRlRQQ3R4dFB0cikgY3R4OworICAgIGNoYXIgYnVmWzIwMF07CisgICAgaW50IGxlbjsKKyAgICBpbnQgcmVzOworCisgICAgaWYgKGN0eHQtPnBhc3N3ZCA9PSBOVUxMKQorCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJQQVNTIGFub255bW91c0BcclxuIik7CisgICAgZWxzZQorCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJQQVNTICVzXHJcbiIsIGN0eHQtPnBhc3N3ZCk7CisgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOworICAgIGxlbiA9IHN0cmxlbihidWYpOworI2lmZGVmIERFQlVHX0ZUUAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiJXMiLCBidWYpOworI2VuZGlmCisgICAgcmVzID0gc2VuZChjdHh0LT5jb250cm9sRmQsIGJ1ZiwgbGVuLCAwKTsKKyAgICBpZiAocmVzIDwgMCkgeworCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAic2VuZCBmYWlsZWQiKTsKKwlyZXR1cm4ocmVzKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBRdWl0OgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKgorICogU2VuZCBhIFFVSVQgY29tbWFuZCB0byB0aGUgc2VydmVyCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZQorICovCisKKworaW50Cit4bWxOYW5vRlRQUXVpdCh2b2lkICpjdHgpIHsKKyAgICB4bWxOYW5vRlRQQ3R4dFB0ciBjdHh0ID0gKHhtbE5hbm9GVFBDdHh0UHRyKSBjdHg7CisgICAgY2hhciBidWZbMjAwXTsKKyAgICBpbnQgbGVuLCByZXM7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRyb2xGZCA8IDApKSByZXR1cm4oLTEpOworCisgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIlFVSVRcclxuIik7CisgICAgbGVuID0gc3RybGVuKGJ1Zik7CisjaWZkZWYgREVCVUdfRlRQCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIlcyIsIGJ1Zik7IC8qIEp1c3QgdG8gYmUgY29uc2lzdGVudCwgZXZlbiB0aG91Z2ggd2Uga25vdyBpdCBjYW4ndCBoYXZlIGEgJSBpbiBpdCAqLworI2VuZGlmCisgICAgcmVzID0gc2VuZChjdHh0LT5jb250cm9sRmQsIGJ1ZiwgbGVuLCAwKTsKKyAgICBpZiAocmVzIDwgMCkgeworCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAic2VuZCBmYWlsZWQiKTsKKwlyZXR1cm4ocmVzKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBDb25uZWN0OgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKgorICogVHJpZXMgdG8gb3BlbiBhIGNvbnRyb2wgY29ubmVjdGlvbgorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbE5hbm9GVFBDb25uZWN0KHZvaWQgKmN0eCkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIGN0eDsKKyAgICBzdHJ1Y3QgaG9zdGVudCAqaHA7CisgICAgaW50IHBvcnQ7CisgICAgaW50IHJlczsKKyAgICBpbnQgYWRkcmxlbiA9IHNpemVvZiAoc3RydWN0IHNvY2thZGRyX2luKTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoY3R4dC0+aG9zdG5hbWUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgLyoKKyAgICAgKiBkbyB0aGUgYmxvY2tpbmcgRE5TIHF1ZXJ5LgorICAgICAqLworICAgIGlmIChwcm94eSkgeworICAgICAgICBwb3J0ID0gcHJveHlQb3J0OworICAgIH0gZWxzZSB7CisJcG9ydCA9IGN0eHQtPnBvcnQ7CisgICAgfQorICAgIGlmIChwb3J0ID09IDApCisJcG9ydCA9IDIxOworCisgICAgbWVtc2V0ICgmY3R4dC0+ZnRwQWRkciwgMCwgc2l6ZW9mKGN0eHQtPmZ0cEFkZHIpKTsKKworI2lmZGVmIFNVUFBPUlRfSVA2CisgICAgaWYgKGhhdmVfaXB2NiAoKSkgeworCXN0cnVjdCBhZGRyaW5mbyBoaW50cywgKnRtcCwgKnJlc3VsdDsKKworCXJlc3VsdCA9IE5VTEw7CisJbWVtc2V0ICgmaGludHMsIDAsIHNpemVvZihoaW50cykpOworCWhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07CisKKwlpZiAocHJveHkpIHsKKwkgICAgaWYgKGdldGFkZHJpbmZvIChwcm94eSwgTlVMTCwgJmhpbnRzLCAmcmVzdWx0KSAhPSAwKSB7CisJCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAiZ2V0YWRkcmluZm8gZmFpbGVkIik7CisJCXJldHVybiAoLTEpOworCSAgICB9CisJfQorCWVsc2UKKwkgICAgaWYgKGdldGFkZHJpbmZvIChjdHh0LT5ob3N0bmFtZSwgTlVMTCwgJmhpbnRzLCAmcmVzdWx0KSAhPSAwKSB7CisJCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAiZ2V0YWRkcmluZm8gZmFpbGVkIik7CisJCXJldHVybiAoLTEpOworCSAgICB9CisKKwlmb3IgKHRtcCA9IHJlc3VsdDsgdG1wOyB0bXAgPSB0bXAtPmFpX25leHQpCisJICAgIGlmICh0bXAtPmFpX2ZhbWlseSA9PSBBRl9JTkVUIHx8IHRtcC0+YWlfZmFtaWx5ID09IEFGX0lORVQ2KQorCQlicmVhazsKKworCWlmICghdG1wKSB7CisJICAgIGlmIChyZXN1bHQpCisJCWZyZWVhZGRyaW5mbyAocmVzdWx0KTsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJnZXRhZGRyaW5mbyBmYWlsZWQiKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCWlmICh0bXAtPmFpX2FkZHJsZW4gPiBzaXplb2YoY3R4dC0+ZnRwQWRkcikpIHsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJnZXRob3N0YnluYW1lIGFkZHJlc3MgbWlzbWF0Y2giKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCWlmICh0bXAtPmFpX2ZhbWlseSA9PSBBRl9JTkVUNikgeworCSAgICBtZW1jcHkgKCZjdHh0LT5mdHBBZGRyLCB0bXAtPmFpX2FkZHIsIHRtcC0+YWlfYWRkcmxlbik7CisJICAgICgoc3RydWN0IHNvY2thZGRyX2luNiAqKSAmY3R4dC0+ZnRwQWRkciktPnNpbjZfcG9ydCA9IGh0b25zIChwb3J0KTsKKwkgICAgY3R4dC0+Y29udHJvbEZkID0gc29ja2V0IChBRl9JTkVUNiwgU09DS19TVFJFQU0sIDApOworCX0KKwllbHNlIHsKKwkgICAgbWVtY3B5ICgmY3R4dC0+ZnRwQWRkciwgdG1wLT5haV9hZGRyLCB0bXAtPmFpX2FkZHJsZW4pOworCSAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSAmY3R4dC0+ZnRwQWRkciktPnNpbl9wb3J0ID0gaHRvbnMgKHBvcnQpOworCSAgICBjdHh0LT5jb250cm9sRmQgPSBzb2NrZXQgKEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKwl9CisJYWRkcmxlbiA9IHRtcC0+YWlfYWRkcmxlbjsKKwlmcmVlYWRkcmluZm8gKHJlc3VsdCk7CisgICAgfQorICAgIGVsc2UKKyNlbmRpZgorICAgIHsKKwlpZiAocHJveHkpCisJICAgIGhwID0gZ2V0aG9zdGJ5bmFtZSAocHJveHkpOworCWVsc2UKKwkgICAgaHAgPSBnZXRob3N0YnluYW1lIChjdHh0LT5ob3N0bmFtZSk7CisJaWYgKGhwID09IE5VTEwpIHsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJnZXRob3N0YnluYW1lIGZhaWxlZCIpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisJaWYgKCh1bnNpZ25lZCBpbnQpIGhwLT5oX2xlbmd0aCA+CisJICAgIHNpemVvZigoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSZjdHh0LT5mdHBBZGRyKS0+c2luX2FkZHIpKSB7CisJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAiZ2V0aG9zdGJ5bmFtZSBhZGRyZXNzIG1pc21hdGNoIik7CisJICAgIHJldHVybiAoLTEpOworCX0KKworCS8qCisJICogUHJlcGFyZSB0aGUgc29ja2V0CisJICovCisJKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmY3R4dC0+ZnRwQWRkciktPnNpbl9mYW1pbHkgPSBBRl9JTkVUOworCW1lbWNweSAoJigoc3RydWN0IHNvY2thZGRyX2luICopJmN0eHQtPmZ0cEFkZHIpLT5zaW5fYWRkciwKKwkJaHAtPmhfYWRkcl9saXN0WzBdLCBocC0+aF9sZW5ndGgpOworCSgoc3RydWN0IHNvY2thZGRyX2luICopJmN0eHQtPmZ0cEFkZHIpLT5zaW5fcG9ydCA9ICh1X3Nob3J0KWh0b25zICgodW5zaWduZWQgc2hvcnQpcG9ydCk7CisJY3R4dC0+Y29udHJvbEZkID0gc29ja2V0IChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CisJYWRkcmxlbiA9IHNpemVvZiAoc3RydWN0IHNvY2thZGRyX2luKTsKKyAgICB9CisKKyAgICBpZiAoY3R4dC0+Y29udHJvbEZkIDwgMCkgeworCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAic29ja2V0IGZhaWxlZCIpOworICAgICAgICByZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogRG8gdGhlIGNvbm5lY3QuCisgICAgICovCisgICAgaWYgKGNvbm5lY3QoY3R4dC0+Y29udHJvbEZkLCAoc3RydWN0IHNvY2thZGRyICopICZjdHh0LT5mdHBBZGRyLAorCSAgICBhZGRybGVuKSA8IDApIHsKKwlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgMCwgIkZhaWxlZCB0byBjcmVhdGUgYSBjb25uZWN0aW9uIik7CisgICAgICAgIGNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7IGN0eHQtPmNvbnRyb2xGZCA9IC0xOworICAgICAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogV2FpdCBmb3IgdGhlIEhFTExPIGZyb20gdGhlIHNlcnZlci4KKyAgICAgKi8KKyAgICByZXMgPSB4bWxOYW5vRlRQR2V0UmVzcG9uc2UoY3R4dCk7CisgICAgaWYgKHJlcyAhPSAyKSB7CisgICAgICAgIGNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7IGN0eHQtPmNvbnRyb2xGZCA9IC0xOworICAgICAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogU3RhdGUgZGlhZ3JhbSBmb3IgdGhlIGxvZ2luIG9wZXJhdGlvbiBvbiB0aGUgRlRQIHNlcnZlcgorICAgICAqCisgICAgICogUmVmZXJlbmNlOiBSRkMgOTU5CisgICAgICoKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgMQorICAgICAqICstLS0rICAgVVNFUiAgICArLS0tKy0tLS0tLS0tLS0tLS0+Ky0tLSsKKyAgICAgKiB8IEIgfC0tLS0tLS0tLS0+fCBXIHwgMiAgICAgICAtLS0tPnwgRSB8CisgICAgICogKy0tLSsgICAgICAgICAgICstLS0rLS0tLS0tICB8ICAtLT4rLS0tKworICAgICAqICAgICAgICAgICAgICAgICAgfCB8ICAgICAgIHwgfCB8CisgICAgICogICAgICAgICAgICAgICAgMyB8IHwgNCw1ICAgfCB8IHwKKyAgICAgKiAgICAtLS0tLS0tLS0tLS0tLSAgIC0tLS0tICB8IHwgfAorICAgICAqICAgfCAgICAgICAgICAgICAgICAgICAgICB8IHwgfCB8CisgICAgICogICB8ICAgICAgICAgICAgICAgICAgICAgIHwgfCB8IHwKKyAgICAgKiAgIHwgICAgICAgICAgICAgICAgIC0tLS0tLS0tLSAgfAorICAgICAqICAgfCAgICAgICAgICAgICAgIDF8ICAgICB8IHwgICB8CisgICAgICogICBWICAgICAgICAgICAgICAgIHwgICAgIHwgfCAgIHwKKyAgICAgKiArLS0tKyAgIFBBU1MgICAgKy0tLSsgMiAgfCAgLS0tLS0tPistLS0rCisgICAgICogfCAgIHwtLS0tLS0tLS0tPnwgVyB8LS0tLS0tLS0tLS0tLT58IFMgfAorICAgICAqICstLS0rICAgICAgICAgICArLS0tKyAgIC0tLS0tLS0tLS0+Ky0tLSsKKyAgICAgKiAgICAgICAgICAgICAgICAgIHwgfCAgIHwgfCAgICAgfAorICAgICAqICAgICAgICAgICAgICAgIDMgfCB8NCw1fCB8ICAgICB8CisgICAgICogICAgLS0tLS0tLS0tLS0tLS0gICAtLS0tLS0tLSAgIHwKKyAgICAgKiAgIHwgICAgICAgICAgICAgICAgICAgIHwgfCAgfCAgfAorICAgICAqICAgfCAgICAgICAgICAgICAgICAgICAgfCB8ICB8ICB8CisgICAgICogICB8ICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLQorICAgICAqICAgfCAgICAgICAgICAgICAxLDN8ICAgfCB8ICB8CisgICAgICogICBWICAgICAgICAgICAgICAgIHwgIDJ8IHwgIHwKKyAgICAgKiArLS0tKyAgIEFDQ1QgICAgKy0tLSstLSAgfCAgIC0tLS0tPistLS0rCisgICAgICogfCAgIHwtLS0tLS0tLS0tPnwgVyB8IDQsNSAtLS0tLS0tLT58IEYgfAorICAgICAqICstLS0rICAgICAgICAgICArLS0tKy0tLS0tLS0tLS0tLS0+Ky0tLSsKKyAgICAgKgorICAgICAqIE9mIGNvdXJzZSBpbiBjYXNlIG9mIHVzaW5nIGEgcHJveHkgdGhpcyBnZXQgcmVhbGx5IG5hc3R5IGFuZCBpcyBub3QKKyAgICAgKiBzdGFuZGFyZGl6ZWQgYXQgYWxsIDotKAorICAgICAqLworICAgIGlmIChwcm94eSkgeworICAgICAgICBpbnQgbGVuOworCWNoYXIgYnVmWzQwMF07CisKKyAgICAgICAgaWYgKHByb3h5VXNlciAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICAqIFdlIG5lZWQgcHJveHkgYXV0aAorCSAgICAgKi8KKwkgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIlVTRVIgJXNcclxuIiwgcHJveHlVc2VyKTsKKyAgICAgICAgICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKKyAgICAgICAgICAgIGxlbiA9IHN0cmxlbihidWYpOworI2lmZGVmIERFQlVHX0ZUUAorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorCSAgICByZXMgPSBzZW5kKGN0eHQtPmNvbnRyb2xGZCwgYnVmLCBsZW4sIDApOworCSAgICBpZiAocmVzIDwgMCkgeworCQlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgMCwgInNlbmQgZmFpbGVkIik7CisJCWNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7CisJCWN0eHQtPmNvbnRyb2xGZCA9IC0xOworCSAgICAgICAgcmV0dXJuKHJlcyk7CisJICAgIH0KKwkgICAgcmVzID0geG1sTmFub0ZUUEdldFJlc3BvbnNlKGN0eHQpOworCSAgICBzd2l0Y2ggKHJlcykgeworCQljYXNlIDI6CisJCSAgICBpZiAocHJveHlQYXNzd2QgPT0gTlVMTCkKKwkJCWJyZWFrOworCQljYXNlIDM6CisJCSAgICBpZiAocHJveHlQYXNzd2QgIT0gTlVMTCkKKwkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJQQVNTICVzXHJcbiIsIHByb3h5UGFzc3dkKTsKKwkJICAgIGVsc2UKKwkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJQQVNTIGFub255bW91c0BcclxuIik7CisgICAgICAgICAgICAgICAgICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbGVuID0gc3RybGVuKGJ1Zik7CisjaWZkZWYgREVCVUdfRlRQCisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorCQkgICAgcmVzID0gc2VuZChjdHh0LT5jb250cm9sRmQsIGJ1ZiwgbGVuLCAwKTsKKwkJICAgIGlmIChyZXMgPCAwKSB7CisJCQlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgMCwgInNlbmQgZmFpbGVkIik7CisJCQljbG9zZXNvY2tldChjdHh0LT5jb250cm9sRmQpOworCQkJY3R4dC0+Y29udHJvbEZkID0gLTE7CisJCQlyZXR1cm4ocmVzKTsKKwkJICAgIH0KKwkJICAgIHJlcyA9IHhtbE5hbm9GVFBHZXRSZXNwb25zZShjdHh0KTsKKwkJICAgIGlmIChyZXMgPiAzKSB7CisJCQljbG9zZXNvY2tldChjdHh0LT5jb250cm9sRmQpOworCQkJY3R4dC0+Y29udHJvbEZkID0gLTE7CisJCQlyZXR1cm4oLTEpOworCQkgICAgfQorCQkgICAgYnJlYWs7CisJCWNhc2UgMToKKwkJICAgIGJyZWFrOworCQljYXNlIDQ6CisJCWNhc2UgNToKKwkJY2FzZSAtMToKKwkJZGVmYXVsdDoKKwkJICAgIGNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7CisJCSAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwkJICAgIHJldHVybigtMSk7CisJICAgIH0KKwl9CisKKwkvKgorCSAqIFdlIGFzc3VtZSB3ZSBkb24ndCBuZWVkIG1vcmUgYXV0aGVudGljYXRpb24gdG8gdGhlIHByb3h5CisJICogYW5kIHRoYXQgaXQgc3VjY2VlZGVkIDotXAorCSAqLworCXN3aXRjaCAocHJveHlUeXBlKSB7CisJICAgIGNhc2UgMDoKKwkJLyogd2Ugd2lsbCB0cnkgaW4gc2VxdWVuY2UgKi8KKwkgICAgY2FzZSAxOgorCQkvKiBVc2luZyBTSVRFIGNvbW1hbmQgKi8KKwkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIlNJVEUgJXNcclxuIiwgY3R4dC0+aG9zdG5hbWUpOworICAgICAgICAgICAgICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKKyAgICAgICAgICAgICAgICBsZW4gPSBzdHJsZW4oYnVmKTsKKyNpZmRlZiBERUJVR19GVFAKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIlcyIsIGJ1Zik7CisjZW5kaWYKKwkJcmVzID0gc2VuZChjdHh0LT5jb250cm9sRmQsIGJ1ZiwgbGVuLCAwKTsKKwkJaWYgKHJlcyA8IDApIHsKKwkJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAic2VuZCBmYWlsZWQiKTsKKwkJICAgIGNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7IGN0eHQtPmNvbnRyb2xGZCA9IC0xOworCQkgICAgY3R4dC0+Y29udHJvbEZkID0gLTE7CisJCSAgICByZXR1cm4ocmVzKTsKKwkJfQorCQlyZXMgPSB4bWxOYW5vRlRQR2V0UmVzcG9uc2UoY3R4dCk7CisJCWlmIChyZXMgPT0gMikgeworCQkgICAgLyogd2UgYXNzdW1lIGl0IHdvcmtlZCA6LVwgMSBpcyBlcnJvciBmb3IgU0lURSBjb21tYW5kICovCisJCSAgICBwcm94eVR5cGUgPSAxOworCQkgICAgYnJlYWs7CisJCX0gICAgCisJCWlmIChwcm94eVR5cGUgPT0gMSkgeworCQkgICAgY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsgY3R4dC0+Y29udHJvbEZkID0gLTE7CisJCSAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwkJICAgIHJldHVybigtMSk7CisJCX0KKwkgICAgY2FzZSAyOgorCQkvKiBVU0VSIHVzZXJAaG9zdCBjb21tYW5kICovCisJCWlmIChjdHh0LT51c2VyID09IE5VTEwpCisJCSAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiVVNFUiBhbm9ueW1vdXNAJXNcclxuIiwKKwkJCSAgICAgICAgICAgY3R4dC0+aG9zdG5hbWUpOworCQllbHNlCisJCSAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiVVNFUiAlc0Alc1xyXG4iLAorCQkJICAgICAgICAgICBjdHh0LT51c2VyLCBjdHh0LT5ob3N0bmFtZSk7CisgICAgICAgICAgICAgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOworICAgICAgICAgICAgICAgIGxlbiA9IHN0cmxlbihidWYpOworI2lmZGVmIERFQlVHX0ZUUAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorCQlyZXMgPSBzZW5kKGN0eHQtPmNvbnRyb2xGZCwgYnVmLCBsZW4sIDApOworCQlpZiAocmVzIDwgMCkgeworCQkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJzZW5kIGZhaWxlZCIpOworCQkgICAgY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsgY3R4dC0+Y29udHJvbEZkID0gLTE7CisJCSAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwkJICAgIHJldHVybihyZXMpOworCQl9CisJCXJlcyA9IHhtbE5hbm9GVFBHZXRSZXNwb25zZShjdHh0KTsKKwkJaWYgKChyZXMgPT0gMSkgfHwgKHJlcyA9PSAyKSkgeworCQkgICAgLyogd2UgYXNzdW1lIGl0IHdvcmtlZCA6LVwgKi8KKwkJICAgIHByb3h5VHlwZSA9IDI7CisJCSAgICByZXR1cm4oMCk7CisJCX0gICAgCisJCWlmIChjdHh0LT5wYXNzd2QgPT0gTlVMTCkKKwkJICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJQQVNTIGFub255bW91c0BcclxuIik7CisJCWVsc2UKKwkJICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJQQVNTICVzXHJcbiIsIGN0eHQtPnBhc3N3ZCk7CisgICAgICAgICAgICAgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOworICAgICAgICAgICAgICAgIGxlbiA9IHN0cmxlbihidWYpOworI2lmZGVmIERFQlVHX0ZUUAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorCQlyZXMgPSBzZW5kKGN0eHQtPmNvbnRyb2xGZCwgYnVmLCBsZW4sIDApOworCQlpZiAocmVzIDwgMCkgeworCQkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJzZW5kIGZhaWxlZCIpOworCQkgICAgY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsgY3R4dC0+Y29udHJvbEZkID0gLTE7CisJCSAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwkJICAgIHJldHVybihyZXMpOworCQl9CisJCXJlcyA9IHhtbE5hbm9GVFBHZXRSZXNwb25zZShjdHh0KTsKKwkJaWYgKChyZXMgPT0gMSkgfHwgKHJlcyA9PSAyKSkgeworCQkgICAgLyogd2UgYXNzdW1lIGl0IHdvcmtlZCA6LVwgKi8KKwkJICAgIHByb3h5VHlwZSA9IDI7CisJCSAgICByZXR1cm4oMCk7CisJCX0KKwkJaWYgKHByb3h5VHlwZSA9PSAyKSB7CisJCSAgICBjbG9zZXNvY2tldChjdHh0LT5jb250cm9sRmQpOyBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwkJICAgIGN0eHQtPmNvbnRyb2xGZCA9IC0xOworCQkgICAgcmV0dXJuKC0xKTsKKwkJfQorCSAgICBjYXNlIDM6CisJCS8qCisJCSAqIElmIHlvdSBuZWVkIHN1cHBvcnQgZm9yIG90aGVyIFByb3h5IGF1dGhlbnRpY2F0aW9uIHNjaGVtZQorCQkgKiBzZW5kIHRoZSBjb2RlIG9yIGF0IGxlYXN0IHRoZSBzZXF1ZW5jZSBpbiB1c2UuCisJCSAqLworCSAgICBkZWZhdWx0OgorCQljbG9zZXNvY2tldChjdHh0LT5jb250cm9sRmQpOyBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwkJY3R4dC0+Y29udHJvbEZkID0gLTE7CisJCXJldHVybigtMSk7CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIE5vbi1wcm94eSBoYW5kbGluZy4KKyAgICAgKi8KKyAgICByZXMgPSB4bWxOYW5vRlRQU2VuZFVzZXIoY3R4dCk7CisgICAgaWYgKHJlcyA8IDApIHsKKyAgICAgICAgY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsgY3R4dC0+Y29udHJvbEZkID0gLTE7CisgICAgICAgIGN0eHQtPmNvbnRyb2xGZCA9IC0xOworCXJldHVybigtMSk7CisgICAgfQorICAgIHJlcyA9IHhtbE5hbm9GVFBHZXRSZXNwb25zZShjdHh0KTsKKyAgICBzd2l0Y2ggKHJlcykgeworCWNhc2UgMjoKKwkgICAgcmV0dXJuKDApOworCWNhc2UgMzoKKwkgICAgYnJlYWs7CisJY2FzZSAxOgorCWNhc2UgNDoKKwljYXNlIDU6CisgICAgICAgIGNhc2UgLTE6CisJZGVmYXVsdDoKKwkgICAgY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsgY3R4dC0+Y29udHJvbEZkID0gLTE7CisJICAgIGN0eHQtPmNvbnRyb2xGZCA9IC0xOworCSAgICByZXR1cm4oLTEpOworICAgIH0KKyAgICByZXMgPSB4bWxOYW5vRlRQU2VuZFBhc3N3ZChjdHh0KTsKKyAgICBpZiAocmVzIDwgMCkgeworICAgICAgICBjbG9zZXNvY2tldChjdHh0LT5jb250cm9sRmQpOyBjdHh0LT5jb250cm9sRmQgPSAtMTsKKyAgICAgICAgY3R4dC0+Y29udHJvbEZkID0gLTE7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcmVzID0geG1sTmFub0ZUUEdldFJlc3BvbnNlKGN0eHQpOworICAgIHN3aXRjaCAocmVzKSB7CisJY2FzZSAyOgorCSAgICBicmVhazsKKwljYXNlIDM6CisJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCBYTUxfRlRQX0FDQ05ULAorCQkgICAgICAgIkZUUCBzZXJ2ZXIgYXNraW5nIGZvciBBQ0NOVCBvbiBhbm9ueW1vdXNcbiIpOworCWNhc2UgMToKKwljYXNlIDQ6CisJY2FzZSA1OgorICAgICAgICBjYXNlIC0xOgorCWRlZmF1bHQ6CisJICAgIGNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7IGN0eHQtPmNvbnRyb2xGZCA9IC0xOworCSAgICBjdHh0LT5jb250cm9sRmQgPSAtMTsKKwkgICAgcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUENvbm5lY3RUbzoKKyAqIEBzZXJ2ZXI6ICBhbiBGVFAgc2VydmVyIG5hbWUKKyAqIEBwb3J0OiAgdGhlIHBvcnQgKHVzZSAyMSBpZiAwKQorICoKKyAqIFRyaWVzIHRvIG9wZW4gYSBjb250cm9sIGNvbm5lY3Rpb24gdG8gdGhlIGdpdmVuIHNlcnZlci9wb3J0CisgKgorICogUmV0dXJucyBhbiBmVFAgY29udGV4dCBvciBOVUxMIGlmIGl0IGZhaWxlZAorICovCisKK3ZvaWQqCit4bWxOYW5vRlRQQ29ubmVjdFRvKGNvbnN0IGNoYXIgKnNlcnZlciwgaW50IHBvcnQpIHsKKyAgICB4bWxOYW5vRlRQQ3R4dFB0ciBjdHh0OworICAgIGludCByZXM7CisKKyAgICB4bWxOYW5vRlRQSW5pdCgpOworICAgIGlmIChzZXJ2ZXIgPT0gTlVMTCkgCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChwb3J0IDw9IDApCisJcmV0dXJuKE5VTEwpOworICAgIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIHhtbE5hbm9GVFBOZXdDdHh0KE5VTEwpOworICAgIGN0eHQtPmhvc3RuYW1lID0geG1sTWVtU3RyZHVwKHNlcnZlcik7CisgICAgaWYgKHBvcnQgIT0gMCkKKwljdHh0LT5wb3J0ID0gcG9ydDsKKyAgICByZXMgPSB4bWxOYW5vRlRQQ29ubmVjdChjdHh0KTsKKyAgICBpZiAocmVzIDwgMCkgeworCXhtbE5hbm9GVFBGcmVlQ3R4dChjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihjdHh0KTsKK30KKworLyoqCisgKiB4bWxOYW5vRlRQQ3dkOgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKiBAZGlyZWN0b3J5OiAgYSBkaXJlY3Rvcnkgb24gdGhlIHNlcnZlcgorICoKKyAqIFRyaWVzIHRvIGNoYW5nZSB0aGUgcmVtb3RlIGRpcmVjdG9yeQorICoKKyAqIFJldHVybnMgLTEgaW5jYXNlIG9mIGVycm9yLCAxIGlmIENXRCB3b3JrZWQsIDAgaWYgaXQgZmFpbGVkCisgKi8KKworaW50Cit4bWxOYW5vRlRQQ3dkKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqZGlyZWN0b3J5KSB7CisgICAgeG1sTmFub0ZUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vRlRQQ3R4dFB0cikgY3R4OworICAgIGNoYXIgYnVmWzQwMF07CisgICAgaW50IGxlbjsKKyAgICBpbnQgcmVzOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250cm9sRmQgPCAwKSkgcmV0dXJuKC0xKTsKKyAgICBpZiAoZGlyZWN0b3J5ID09IE5VTEwpIHJldHVybiAwOworCisgICAgLyoKKyAgICAgKiBFeHBlY3RlZCByZXNwb25zZSBjb2RlIGZvciBDV0Q6CisgICAgICoKKyAgICAgKiBDV0QKKyAgICAgKiAgICAgMjUwCisgICAgICogICAgIDUwMCwgNTAxLCA1MDIsIDQyMSwgNTMwLCA1NTAKKyAgICAgKi8KKyAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiQ1dEICVzXHJcbiIsIGRpcmVjdG9yeSk7CisgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOworICAgIGxlbiA9IHN0cmxlbihidWYpOworI2lmZGVmIERFQlVHX0ZUUAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiJXMiLCBidWYpOworI2VuZGlmCisgICAgcmVzID0gc2VuZChjdHh0LT5jb250cm9sRmQsIGJ1ZiwgbGVuLCAwKTsKKyAgICBpZiAocmVzIDwgMCkgeworCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAic2VuZCBmYWlsZWQiKTsKKwlyZXR1cm4ocmVzKTsKKyAgICB9CisgICAgcmVzID0geG1sTmFub0ZUUEdldFJlc3BvbnNlKGN0eHQpOworICAgIGlmIChyZXMgPT0gNCkgeworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChyZXMgPT0gMikgcmV0dXJuKDEpOworICAgIGlmIChyZXMgPT0gNSkgeworCXJldHVybigwKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBEZWxlOgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKiBAZmlsZTogIGEgZmlsZSBvciBkaXJlY3Rvcnkgb24gdGhlIHNlcnZlcgorICoKKyAqIFRyaWVzIHRvIGRlbGV0ZSBhbiBpdGVtIChmaWxlIG9yIGRpcmVjdG9yeSkgZnJvbSBzZXJ2ZXIKKyAqCisgKiBSZXR1cm5zIC0xIGluY2FzZSBvZiBlcnJvciwgMSBpZiBERUxFIHdvcmtlZCwgMCBpZiBpdCBmYWlsZWQKKyAqLworCitpbnQKK3htbE5hbm9GVFBEZWxlKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqZmlsZSkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIGN0eDsKKyAgICBjaGFyIGJ1Zls0MDBdOworICAgIGludCBsZW47CisgICAgaW50IHJlczsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udHJvbEZkIDwgMCkgfHwgKGZpbGUgPT0gTlVMTCkpIHJldHVybigtMSk7CisgICAgaWYgKGZpbGUgPT0gTlVMTCkgcmV0dXJuICgwKTsKKworICAgIC8qCisgICAgICogRXhwZWN0ZWQgcmVzcG9uc2UgY29kZSBmb3IgREVMRToKKyAgICAgKgorICAgICAqIERFTEUKKyAgICAgKiAgICAgICAyNTAKKyAgICAgKiAgICAgICA0NTAsIDU1MAorICAgICAqICAgICAgIDUwMCwgNTAxLCA1MDIsIDQyMSwgNTMwCisgICAgICovCisJIAorICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJERUxFICVzXHJcbiIsIGZpbGUpOworICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKKyAgICBsZW4gPSBzdHJsZW4oYnVmKTsKKyNpZmRlZiBERUJVR19GVFAKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorICAgIHJlcyA9IHNlbmQoY3R4dC0+Y29udHJvbEZkLCBidWYsIGxlbiwgMCk7CisgICAgaWYgKHJlcyA8IDApIHsKKwlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgMCwgInNlbmQgZmFpbGVkIik7CisJcmV0dXJuKHJlcyk7CisgICAgfQorICAgIHJlcyA9IHhtbE5hbm9GVFBHZXRSZXNwb25zZShjdHh0KTsKKyAgICBpZiAocmVzID09IDQpIHsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBpZiAocmVzID09IDIpIHJldHVybigxKTsKKyAgICBpZiAocmVzID09IDUpIHsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKy8qKgorICogeG1sTmFub0ZUUEdldENvbm5lY3Rpb246CisgKiBAY3R4OiAgYW4gRlRQIGNvbnRleHQKKyAqCisgKiBUcnkgdG8gb3BlbiBhIGRhdGEgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyLiBDdXJyZW50bHkgb25seQorICogcGFzc2l2ZSBtb2RlIGlzIHN1cHBvcnRlZC4KKyAqCisgKiBSZXR1cm5zIC0xIGluY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbE5hbm9GVFBHZXRDb25uZWN0aW9uKHZvaWQgKmN0eCkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIGN0eDsKKyAgICBjaGFyIGJ1ZlsyMDBdLCAqY3VyOworICAgIGludCBsZW4sIGk7CisgICAgaW50IHJlczsKKyAgICB1bnNpZ25lZCBjaGFyIGFkWzZdLCAqYWRwLCAqcG9ydHA7CisgICAgdW5zaWduZWQgaW50IHRlbXBbNl07CisjaWZkZWYgU1VQUE9SVF9JUDYKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBkYXRhQWRkcjsKKyNlbHNlCisgICAgc3RydWN0IHNvY2thZGRyX2luIGRhdGFBZGRyOworI2VuZGlmCisgICAgWE1MX1NPQ0tMRU5fVCBkYXRhQWRkckxlbjsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybigtMSk7CisKKyAgICBtZW1zZXQgKCZkYXRhQWRkciwgMCwgc2l6ZW9mKGRhdGFBZGRyKSk7CisjaWZkZWYgU1VQUE9SVF9JUDYKKyAgICBpZiAoKGN0eHQtPmZ0cEFkZHIpLnNzX2ZhbWlseSA9PSBBRl9JTkVUNikgeworCWN0eHQtPmRhdGFGZCA9IHNvY2tldCAoQUZfSU5FVDYsIFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCk7CisJKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJmRhdGFBZGRyKS0+c2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKKwlkYXRhQWRkckxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKwljdHh0LT5kYXRhRmQgPSBzb2NrZXQgKEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCk7CisJKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmZGF0YUFkZHIpLT5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKKwlkYXRhQWRkckxlbiA9IHNpemVvZiAoc3RydWN0IHNvY2thZGRyX2luKTsKKyAgICB9CisKKyAgICBpZiAoY3R4dC0+ZGF0YUZkIDwgMCkgeworCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAic29ja2V0IGZhaWxlZCIpOworCXJldHVybiAoLTEpOworICAgIH0KKworICAgIGlmIChjdHh0LT5wYXNzaXZlKSB7CisjaWZkZWYgU1VQUE9SVF9JUDYKKwlpZiAoKGN0eHQtPmZ0cEFkZHIpLnNzX2ZhbWlseSA9PSBBRl9JTkVUNikKKwkgICAgc25wcmludGYgKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJFUFNWXHJcbiIpOworCWVsc2UKKyNlbmRpZgorCSAgICBzbnByaW50ZiAoYnVmLCBzaXplb2YoYnVmKSwgIlBBU1ZcclxuIik7CisgICAgICAgIGxlbiA9IHN0cmxlbiAoYnVmKTsKKyNpZmRlZiBERUJVR19GVFAKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorCXJlcyA9IHNlbmQoY3R4dC0+Y29udHJvbEZkLCBidWYsIGxlbiwgMCk7CisJaWYgKHJlcyA8IDApIHsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJzZW5kIGZhaWxlZCIpOworCSAgICBjbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkgICAgcmV0dXJuKHJlcyk7CisJfQorICAgICAgICByZXMgPSB4bWxOYW5vRlRQUmVhZFJlc3BvbnNlKGN0eCk7CisJaWYgKHJlcyAhPSAyKSB7CisJICAgIGlmIChyZXMgPT0gNSkgeworCSAgICAgICAgY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJCXJldHVybigtMSk7CisJICAgIH0gZWxzZSB7CisJCS8qCisJCSAqIHJldHJ5IHdpdGggYW4gYWN0aXZlIGNvbm5lY3Rpb24KKwkJICovCisJICAgICAgICBjbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkgICAgICAgIGN0eHQtPnBhc3NpdmUgPSAwOworCSAgICB9CisJfQorCWN1ciA9ICZjdHh0LT5jb250cm9sQnVmW2N0eHQtPmNvbnRyb2xCdWZBbnN3ZXJdOyAKKwl3aGlsZSAoKCgqY3VyIDwgJzAnKSB8fCAoKmN1ciA+ICc5JykpICYmICpjdXIgIT0gJ1wwJykgY3VyKys7CisjaWZkZWYgU1VQUE9SVF9JUDYKKwlpZiAoKGN0eHQtPmZ0cEFkZHIpLnNzX2ZhbWlseSA9PSBBRl9JTkVUNikgeworCSAgICBpZiAoc3NjYW5mIChjdXIsICIldSIsICZ0ZW1wWzBdKSAhPSAxKSB7CisJCV9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCBYTUxfRlRQX0VQU1ZfQU5TV0VSLAorCQkJIkludmFsaWQgYW5zd2VyIHRvIEVQU1ZcbiIpOworCQlpZiAoY3R4dC0+ZGF0YUZkICE9IC0xKSB7CisJCSAgICBjbG9zZXNvY2tldCAoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJCX0KKwkJcmV0dXJuICgtMSk7CisJICAgIH0KKwkgICAgbWVtY3B5ICgmKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJmRhdGFBZGRyKS0+c2luNl9hZGRyLCAmKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJmN0eHQtPmZ0cEFkZHIpLT5zaW42X2FkZHIsIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKTsKKwkgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJmRhdGFBZGRyKS0+c2luNl9wb3J0ID0gaHRvbnMgKHRlbXBbMF0pOworCX0KKwllbHNlCisjZW5kaWYKKwl7CisJICAgIGlmIChzc2NhbmYgKGN1ciwgIiV1LCV1LCV1LCV1LCV1LCV1IiwgJnRlbXBbMF0sICZ0ZW1wWzFdLCAmdGVtcFsyXSwKKwkJJnRlbXBbM10sICZ0ZW1wWzRdLCAmdGVtcFs1XSkgIT0gNikgeworCQlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgWE1MX0ZUUF9QQVNWX0FOU1dFUiwKKwkJCSJJbnZhbGlkIGFuc3dlciB0byBQQVNWXG4iKTsKKwkJaWYgKGN0eHQtPmRhdGFGZCAhPSAtMSkgeworCQkgICAgY2xvc2Vzb2NrZXQgKGN0eHQtPmRhdGFGZCk7IGN0eHQtPmRhdGFGZCA9IC0xOworCQl9CisJCXJldHVybiAoLTEpOworCSAgICB9CisJICAgIGZvciAoaT0wOyBpPDY7IGkrKykgYWRbaV0gPSAodW5zaWduZWQgY2hhcikgKHRlbXBbaV0gJiAweGZmKTsKKwkgICAgbWVtY3B5ICgmKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmZGF0YUFkZHIpLT5zaW5fYWRkciwgJmFkWzBdLCA0KTsKKwkgICAgbWVtY3B5ICgmKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmZGF0YUFkZHIpLT5zaW5fcG9ydCwgJmFkWzRdLCAyKTsKKwl9CisKKwlpZiAoY29ubmVjdChjdHh0LT5kYXRhRmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmRhdGFBZGRyLCBkYXRhQWRkckxlbikgPCAwKSB7CisJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAiRmFpbGVkIHRvIGNyZWF0ZSBhIGRhdGEgY29ubmVjdGlvbiIpOworCSAgICBjbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgIGdldHNvY2tuYW1lKGN0eHQtPmRhdGFGZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmZGF0YUFkZHIsICZkYXRhQWRkckxlbik7CisjaWZkZWYgU1VQUE9SVF9JUDYKKwlpZiAoKGN0eHQtPmZ0cEFkZHIpLnNzX2ZhbWlseSA9PSBBRl9JTkVUNikKKwkgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJmRhdGFBZGRyKS0+c2luNl9wb3J0ID0gMDsKKwllbHNlCisjZW5kaWYKKwkgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmZGF0YUFkZHIpLT5zaW5fcG9ydCA9IDA7CisKKwlpZiAoYmluZChjdHh0LT5kYXRhRmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmRhdGFBZGRyLCBkYXRhQWRkckxlbikgPCAwKSB7CisJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fRlRQLCAwLCAiYmluZCBmYWlsZWQiKTsKKwkgICAgY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJICAgIHJldHVybiAoLTEpOworCX0KKyAgICAgICAgZ2V0c29ja25hbWUoY3R4dC0+ZGF0YUZkLCAoc3RydWN0IHNvY2thZGRyICopICZkYXRhQWRkciwgJmRhdGFBZGRyTGVuKTsKKworCWlmIChsaXN0ZW4oY3R4dC0+ZGF0YUZkLCAxKSA8IDApIHsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJsaXN0ZW4gZmFpbGVkIik7CisJICAgIGNsb3Nlc29ja2V0KGN0eHQtPmRhdGFGZCk7IGN0eHQtPmRhdGFGZCA9IC0xOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisjaWZkZWYgU1VQUE9SVF9JUDYKKwlpZiAoKGN0eHQtPmZ0cEFkZHIpLnNzX2ZhbWlseSA9PSBBRl9JTkVUNikgeworCSAgICBjaGFyIGJ1ZjZbSU5FVDZfQUREUlNUUkxFTl07CisJICAgIGluZXRfbnRvcCAoQUZfSU5FVDYsICYoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmZGF0YUFkZHIpLT5zaW42X2FkZHIsCisJCSAgICBidWY2LCBJTkVUNl9BRERSU1RSTEVOKTsKKwkgICAgYWRwID0gKHVuc2lnbmVkIGNoYXIgKikgYnVmNjsKKwkgICAgcG9ydHAgPSAodW5zaWduZWQgY2hhciAqKSAmKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJmRhdGFBZGRyKS0+c2luNl9wb3J0OworCSAgICBzbnByaW50ZiAoYnVmLCBzaXplb2YoYnVmKSwgIkVQUlQgfDJ8JXN8JXN8XHJcbiIsIGFkcCwgcG9ydHApOworICAgICAgICB9IGVsc2UKKyNlbmRpZgorCXsKKwkgICAgYWRwID0gKHVuc2lnbmVkIGNoYXIgKikgJigoc3RydWN0IHNvY2thZGRyX2luICopJmRhdGFBZGRyKS0+c2luX2FkZHI7CisJICAgIHBvcnRwID0gKHVuc2lnbmVkIGNoYXIgKikgJigoc3RydWN0IHNvY2thZGRyX2luICopJmRhdGFBZGRyKS0+c2luX3BvcnQ7CisJICAgIHNucHJpbnRmIChidWYsIHNpemVvZihidWYpLCAiUE9SVCAlZCwlZCwlZCwlZCwlZCwlZFxyXG4iLAorCSAgICBhZHBbMF0gJiAweGZmLCBhZHBbMV0gJiAweGZmLCBhZHBbMl0gJiAweGZmLCBhZHBbM10gJiAweGZmLAorCSAgICBwb3J0cFswXSAmIDB4ZmYsIHBvcnRwWzFdICYgMHhmZik7CisJfQorCisgICAgICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKKyAgICAgICAgbGVuID0gc3RybGVuKGJ1Zik7CisjaWZkZWYgREVCVUdfRlRQCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIlcyIsIGJ1Zik7CisjZW5kaWYKKworCXJlcyA9IHNlbmQoY3R4dC0+Y29udHJvbEZkLCBidWYsIGxlbiwgMCk7CisJaWYgKHJlcyA8IDApIHsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJzZW5kIGZhaWxlZCIpOworCSAgICBjbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkgICAgcmV0dXJuKHJlcyk7CisJfQorICAgICAgICByZXMgPSB4bWxOYW5vRlRQR2V0UmVzcG9uc2UoY3R4dCk7CisJaWYgKHJlcyAhPSAyKSB7CisJICAgIGNsb3Nlc29ja2V0KGN0eHQtPmRhdGFGZCk7IGN0eHQtPmRhdGFGZCA9IC0xOworCSAgICByZXR1cm4oLTEpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybihjdHh0LT5kYXRhRmQpOworICAgIAorfQorCisvKioKKyAqIHhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb246CisgKiBAY3R4OiAgYW4gRlRQIGNvbnRleHQKKyAqCisgKiBDbG9zZSB0aGUgZGF0YSBjb25uZWN0aW9uIGZyb20gdGhlIHNlcnZlcgorICoKKyAqIFJldHVybnMgLTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZQorICovCisKK2ludAoreG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbih2b2lkICpjdHgpIHsKKyAgICB4bWxOYW5vRlRQQ3R4dFB0ciBjdHh0ID0gKHhtbE5hbm9GVFBDdHh0UHRyKSBjdHg7CisgICAgaW50IHJlczsKKyAgICBmZF9zZXQgcmZkLCBlZmQ7CisgICAgc3RydWN0IHRpbWV2YWwgdHY7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRyb2xGZCA8IDApKSByZXR1cm4oLTEpOworCisgICAgY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisgICAgdHYudHZfc2VjID0gMTU7CisgICAgdHYudHZfdXNlYyA9IDA7CisgICAgRkRfWkVSTygmcmZkKTsKKyAgICBGRF9TRVQoY3R4dC0+Y29udHJvbEZkLCAmcmZkKTsKKyAgICBGRF9aRVJPKCZlZmQpOworICAgIEZEX1NFVChjdHh0LT5jb250cm9sRmQsICZlZmQpOworICAgIHJlcyA9IHNlbGVjdChjdHh0LT5jb250cm9sRmQgKyAxLCAmcmZkLCBOVUxMLCAmZWZkLCAmdHYpOworICAgIGlmIChyZXMgPCAwKSB7CisjaWZkZWYgREVCVUdfRlRQCisJcGVycm9yKCJzZWxlY3QiKTsKKyNlbmRpZgorCWNsb3Nlc29ja2V0KGN0eHQtPmNvbnRyb2xGZCk7IGN0eHQtPmNvbnRyb2xGZCA9IC0xOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChyZXMgPT0gMCkgeworI2lmZGVmIERFQlVHX0ZUUAorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbjogdGltZW91dFxuIik7CisjZW5kaWYKKwljbG9zZXNvY2tldChjdHh0LT5jb250cm9sRmQpOyBjdHh0LT5jb250cm9sRmQgPSAtMTsKKyAgICB9IGVsc2UgeworCXJlcyA9IHhtbE5hbm9GVFBHZXRSZXNwb25zZShjdHh0KTsKKwlpZiAocmVzICE9IDIpIHsKKwkgICAgY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsgY3R4dC0+Y29udHJvbEZkID0gLTE7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUFBhcnNlTGlzdDoKKyAqIEBsaXN0OiAgc29tZSBkYXRhIGxpc3RpbmcgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyCisgKiBAY2FsbGJhY2s6ICB0aGUgdXNlciBjYWxsYmFjaworICogQHVzZXJEYXRhOiAgdGhlIHVzZXIgY2FsbGJhY2sgZGF0YQorICoKKyAqIFBhcnNlIGF0IG1vc3Qgb25lIGVudHJ5IGZyb20gdGhlIGxpc3RpbmcuIAorICoKKyAqIFJldHVybnMgLTEgaW5jYXNlIG9mIGVycm9yLCB0aGUgbGVuZ3RoIG9mIGRhdGEgcGFyc2VkIG90aGVyd2lzZQorICovCisKK3N0YXRpYyBpbnQKK3htbE5hbm9GVFBQYXJzZUxpc3QoY29uc3QgY2hhciAqbGlzdCwgZnRwTGlzdENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICp1c2VyRGF0YSkgeworICAgIGNvbnN0IGNoYXIgKmN1ciA9IGxpc3Q7CisgICAgY2hhciBmaWxlbmFtZVsxNTFdOworICAgIGNoYXIgYXR0cmliWzExXTsKKyAgICBjaGFyIG93bmVyWzExXTsKKyAgICBjaGFyIGdyb3VwWzExXTsKKyAgICBjaGFyIG1vbnRoWzRdOworICAgIGludCB5ZWFyID0gMDsKKyAgICBpbnQgbWludXRlID0gMDsKKyAgICBpbnQgaG91ciA9IDA7CisgICAgaW50IGRheSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyBzaXplID0gMDsKKyAgICBpbnQgbGlua3MgPSAwOworICAgIGludCBpOworCisgICAgaWYgKCFzdHJuY21wKGN1ciwgInRvdGFsIiwgNSkpIHsKKyAgICAgICAgY3VyICs9IDU7CisJd2hpbGUgKCpjdXIgPT0gJyAnKSBjdXIrKzsKKwl3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKQorCSAgICBsaW5rcyA9IChsaW5rcyAqIDEwKSArICgqY3VyKysgLSAnMCcpOworCXdoaWxlICgoKmN1ciA9PSAnICcpIHx8ICgqY3VyID09ICdcbicpICB8fCAoKmN1ciA9PSAnXHInKSkKKwkgICAgY3VyKys7CisJcmV0dXJuKGN1ciAtIGxpc3QpOworICAgIH0gZWxzZSBpZiAoKmxpc3QgPT0gJysnKSB7CisJcmV0dXJuKDApOworICAgIH0gZWxzZSB7CisJd2hpbGUgKCgqY3VyID09ICcgJykgfHwgKCpjdXIgPT0gJ1xuJykgIHx8ICgqY3VyID09ICdccicpKQorCSAgICBjdXIrKzsKKwlpZiAoKmN1ciA9PSAwKSByZXR1cm4oMCk7CisJaSA9IDA7CisJd2hpbGUgKCpjdXIgIT0gJyAnKSB7CisJICAgIGlmIChpIDwgMTApIAorCQlhdHRyaWJbaSsrXSA9ICpjdXI7CisJICAgIGN1cisrOworCSAgICBpZiAoKmN1ciA9PSAwKSByZXR1cm4oMCk7CisJfQorCWF0dHJpYlsxMF0gPSAwOworCXdoaWxlICgqY3VyID09ICcgJykgY3VyKys7CisJaWYgKCpjdXIgPT0gMCkgcmV0dXJuKDApOworCXdoaWxlICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpCisJICAgIGxpbmtzID0gKGxpbmtzICogMTApICsgKCpjdXIrKyAtICcwJyk7CisJd2hpbGUgKCpjdXIgPT0gJyAnKSBjdXIrKzsKKwlpZiAoKmN1ciA9PSAwKSByZXR1cm4oMCk7CisJaSA9IDA7CisJd2hpbGUgKCpjdXIgIT0gJyAnKSB7CisJICAgIGlmIChpIDwgMTApIAorCQlvd25lcltpKytdID0gKmN1cjsKKwkgICAgY3VyKys7CisJICAgIGlmICgqY3VyID09IDApIHJldHVybigwKTsKKwl9CisJb3duZXJbaV0gPSAwOworCXdoaWxlICgqY3VyID09ICcgJykgY3VyKys7CisJaWYgKCpjdXIgPT0gMCkgcmV0dXJuKDApOworCWkgPSAwOworCXdoaWxlICgqY3VyICE9ICcgJykgeworCSAgICBpZiAoaSA8IDEwKSAKKwkJZ3JvdXBbaSsrXSA9ICpjdXI7CisJICAgIGN1cisrOworCSAgICBpZiAoKmN1ciA9PSAwKSByZXR1cm4oMCk7CisJfQorCWdyb3VwW2ldID0gMDsKKwl3aGlsZSAoKmN1ciA9PSAnICcpIGN1cisrOworCWlmICgqY3VyID09IDApIHJldHVybigwKTsKKwl3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKQorCSAgICBzaXplID0gKHNpemUgKiAxMCkgKyAoKmN1cisrIC0gJzAnKTsKKwl3aGlsZSAoKmN1ciA9PSAnICcpIGN1cisrOworCWlmICgqY3VyID09IDApIHJldHVybigwKTsKKwlpID0gMDsKKwl3aGlsZSAoKmN1ciAhPSAnICcpIHsKKwkgICAgaWYgKGkgPCAzKQorCQltb250aFtpKytdID0gKmN1cjsKKwkgICAgY3VyKys7CisJICAgIGlmICgqY3VyID09IDApIHJldHVybigwKTsKKwl9CisJbW9udGhbaV0gPSAwOworCXdoaWxlICgqY3VyID09ICcgJykgY3VyKys7CisJaWYgKCpjdXIgPT0gMCkgcmV0dXJuKDApOworICAgICAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKQorCSAgICBkYXkgPSAoZGF5ICogMTApICsgKCpjdXIrKyAtICcwJyk7CisJd2hpbGUgKCpjdXIgPT0gJyAnKSBjdXIrKzsKKwlpZiAoKmN1ciA9PSAwKSByZXR1cm4oMCk7CisJaWYgKChjdXJbMV0gPT0gMCkgfHwgKGN1clsyXSA9PSAwKSkgcmV0dXJuKDApOworCWlmICgoY3VyWzFdID09ICc6JykgfHwgKGN1clsyXSA9PSAnOicpKSB7CisJICAgIHdoaWxlICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpCisJCWhvdXIgPSAoaG91ciAqIDEwKSArICgqY3VyKysgLSAnMCcpOworCSAgICBpZiAoKmN1ciA9PSAnOicpIGN1cisrOworCSAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKQorCQltaW51dGUgPSAobWludXRlICogMTApICsgKCpjdXIrKyAtICcwJyk7CisJfSBlbHNlIHsKKwkgICAgd2hpbGUgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkKKwkJeWVhciA9ICh5ZWFyICogMTApICsgKCpjdXIrKyAtICcwJyk7CisJfQorCXdoaWxlICgqY3VyID09ICcgJykgY3VyKys7CisJaWYgKCpjdXIgPT0gMCkgcmV0dXJuKDApOworCWkgPSAwOworCXdoaWxlICgoKmN1ciAhPSAnXG4nKSAgJiYgKCpjdXIgIT0gJ1xyJykpIHsKKwkgICAgaWYgKGkgPCAxNTApCisJCWZpbGVuYW1lW2krK10gPSAqY3VyOworCSAgICBjdXIrKzsKKwkgICAgaWYgKCpjdXIgPT0gMCkgcmV0dXJuKDApOworCX0KKwlmaWxlbmFtZVtpXSA9IDA7CisJaWYgKCgqY3VyICE9ICdcbicpICYmICgqY3VyICE9ICdccicpKQorCSAgICByZXR1cm4oMCk7CisJd2hpbGUgKCgqY3VyID09ICdcbicpICB8fCAoKmN1ciA9PSAnXHInKSkKKwkgICAgY3VyKys7CisgICAgfQorICAgIGlmIChjYWxsYmFjayAhPSBOVUxMKSB7CisgICAgICAgIGNhbGxiYWNrKHVzZXJEYXRhLCBmaWxlbmFtZSwgYXR0cmliLCBvd25lciwgZ3JvdXAsIHNpemUsIGxpbmtzLAorCQkgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlKTsKKyAgICB9CisgICAgcmV0dXJuKGN1ciAtIGxpc3QpOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBMaXN0OgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKiBAY2FsbGJhY2s6ICB0aGUgdXNlciBjYWxsYmFjaworICogQHVzZXJEYXRhOiAgdGhlIHVzZXIgY2FsbGJhY2sgZGF0YQorICogQGZpbGVuYW1lOiAgb3B0aW9uYWwgZmlsZXMgdG8gbGlzdAorICoKKyAqIERvIGEgbGlzdGluZyBvbiB0aGUgc2VydmVyLiBBbGwgZmlsZXMgaW5mbyBhcmUgcGFzc2VkIGJhY2sKKyAqIGluIHRoZSBjYWxsYmFja3MuCisgKgorICogUmV0dXJucyAtMSBpbmNhc2Ugb2YgZXJyb3IsIDAgb3RoZXJ3aXNlCisgKi8KKworaW50Cit4bWxOYW5vRlRQTGlzdCh2b2lkICpjdHgsIGZ0cExpc3RDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqdXNlckRhdGEsCisJICAgICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgeG1sTmFub0ZUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vRlRQQ3R4dFB0cikgY3R4OworICAgIGNoYXIgYnVmWzQwOTYgKyAxXTsKKyAgICBpbnQgbGVuLCByZXM7CisgICAgaW50IGluZHggPSAwLCBiYXNlOworICAgIGZkX3NldCByZmQsIGVmZDsKKyAgICBzdHJ1Y3QgdGltZXZhbCB0djsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybiAoLTEpOworICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKSB7CisgICAgICAgIGlmICh4bWxOYW5vRlRQQ3dkKGN0eHQsIGN0eHQtPnBhdGgpIDwgMSkKKwkgICAgcmV0dXJuKC0xKTsKKwljdHh0LT5kYXRhRmQgPSB4bWxOYW5vRlRQR2V0Q29ubmVjdGlvbihjdHh0KTsKKwlpZiAoY3R4dC0+ZGF0YUZkID09IC0xKQorCSAgICByZXR1cm4oLTEpOworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJMSVNUIC1MXHJcbiIpOworICAgIH0gZWxzZSB7CisJaWYgKGZpbGVuYW1lWzBdICE9ICcvJykgeworCSAgICBpZiAoeG1sTmFub0ZUUEN3ZChjdHh0LCBjdHh0LT5wYXRoKSA8IDEpCisJCXJldHVybigtMSk7CisJfQorCWN0eHQtPmRhdGFGZCA9IHhtbE5hbm9GVFBHZXRDb25uZWN0aW9uKGN0eHQpOworCWlmIChjdHh0LT5kYXRhRmQgPT0gLTEpCisJICAgIHJldHVybigtMSk7CisJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIkxJU1QgLUwgJXNcclxuIiwgZmlsZW5hbWUpOworICAgIH0KKyAgICBidWZbc2l6ZW9mKGJ1ZikgLSAxXSA9IDA7CisgICAgbGVuID0gc3RybGVuKGJ1Zik7CisjaWZkZWYgREVCVUdfRlRQCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIlcyIsIGJ1Zik7CisjZW5kaWYKKyAgICByZXMgPSBzZW5kKGN0eHQtPmNvbnRyb2xGZCwgYnVmLCBsZW4sIDApOworICAgIGlmIChyZXMgPCAwKSB7CisJX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJzZW5kIGZhaWxlZCIpOworCWNsb3Nlc29ja2V0KGN0eHQtPmRhdGFGZCk7IGN0eHQtPmRhdGFGZCA9IC0xOworCXJldHVybihyZXMpOworICAgIH0KKyAgICByZXMgPSB4bWxOYW5vRlRQUmVhZFJlc3BvbnNlKGN0eHQpOworICAgIGlmIChyZXMgIT0gMSkgeworCWNsb3Nlc29ja2V0KGN0eHQtPmRhdGFGZCk7IGN0eHQtPmRhdGFGZCA9IC0xOworCXJldHVybigtcmVzKTsKKyAgICB9CisKKyAgICBkbyB7CisJdHYudHZfc2VjID0gMTsKKwl0di50dl91c2VjID0gMDsKKwlGRF9aRVJPKCZyZmQpOworCUZEX1NFVChjdHh0LT5kYXRhRmQsICZyZmQpOworCUZEX1pFUk8oJmVmZCk7CisJRkRfU0VUKGN0eHQtPmRhdGFGZCwgJmVmZCk7CisJcmVzID0gc2VsZWN0KGN0eHQtPmRhdGFGZCArIDEsICZyZmQsIE5VTEwsICZlZmQsICZ0dik7CisJaWYgKHJlcyA8IDApIHsKKyNpZmRlZiBERUJVR19GVFAKKwkgICAgcGVycm9yKCJzZWxlY3QiKTsKKyNlbmRpZgorCSAgICBjbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJaWYgKHJlcyA9PSAwKSB7CisJICAgIHJlcyA9IHhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlKGN0eHQpOworCSAgICBpZiAocmVzIDwgMCkgeworCQljbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkJY3R4dC0+ZGF0YUZkID0gLTE7CisJCXJldHVybigtMSk7CisJICAgIH0KKwkgICAgaWYgKHJlcyA9PSAyKSB7CisJCWNsb3Nlc29ja2V0KGN0eHQtPmRhdGFGZCk7IGN0eHQtPmRhdGFGZCA9IC0xOworCQlyZXR1cm4oMCk7CisJICAgIH0KKworCSAgICBjb250aW51ZTsKKwl9CisKKwlpZiAoKGxlbiA9IHJlY3YoY3R4dC0+ZGF0YUZkLCAmYnVmW2luZHhdLCBzaXplb2YoYnVmKSAtIChpbmR4ICsgMSksIDApKSA8IDApIHsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJyZWN2Iik7CisJICAgIGNsb3Nlc29ja2V0KGN0eHQtPmRhdGFGZCk7IGN0eHQtPmRhdGFGZCA9IC0xOworCSAgICBjdHh0LT5kYXRhRmQgPSAtMTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisjaWZkZWYgREVCVUdfRlRQCisgICAgICAgIHdyaXRlKDEsICZidWZbaW5keF0sIGxlbik7CisjZW5kaWYKKwlpbmR4ICs9IGxlbjsKKwlidWZbaW5keF0gPSAwOworCWJhc2UgPSAwOworCWRvIHsKKwkgICAgcmVzID0geG1sTmFub0ZUUFBhcnNlTGlzdCgmYnVmW2Jhc2VdLCBjYWxsYmFjaywgdXNlckRhdGEpOworCSAgICBiYXNlICs9IHJlczsKKwl9IHdoaWxlIChyZXMgPiAwKTsKKworCW1lbW1vdmUoJmJ1ZlswXSwgJmJ1ZltiYXNlXSwgaW5keCAtIGJhc2UpOworCWluZHggLT0gYmFzZTsKKyAgICB9IHdoaWxlIChsZW4gIT0gMCk7CisgICAgeG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbihjdHh0KTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUEdldFNvY2tldDoKKyAqIEBjdHg6ICBhbiBGVFAgY29udGV4dAorICogQGZpbGVuYW1lOiAgdGhlIGZpbGUgdG8gcmV0cmlldmUgKG9yIE5VTEwgaWYgcGF0aCBpcyBpbiBjb250ZXh0KS4KKyAqCisgKiBJbml0aWF0ZSBmZXRjaCBvZiB0aGUgZ2l2ZW4gZmlsZSBmcm9tIHRoZSBzZXJ2ZXIuCisgKgorICogUmV0dXJucyB0aGUgc29ja2V0IGZvciB0aGUgZGF0YSBjb25uZWN0aW9uLCBvciA8MCBpbiBjYXNlIG9mIGVycm9yCisgKi8KKworCitpbnQKK3htbE5hbm9GVFBHZXRTb2NrZXQodm9pZCAqY3R4LCBjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIGN0eDsKKyAgICBjaGFyIGJ1ZlszMDBdOworICAgIGludCByZXMsIGxlbjsKKyAgICBpZiAoY3R4ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoKGZpbGVuYW1lID09IE5VTEwpICYmIChjdHh0LT5wYXRoID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgY3R4dC0+ZGF0YUZkID0geG1sTmFub0ZUUEdldENvbm5lY3Rpb24oY3R4dCk7CisgICAgaWYgKGN0eHQtPmRhdGFGZCA9PSAtMSkKKwlyZXR1cm4oLTEpOworCisgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIlRZUEUgSVxyXG4iKTsKKyAgICBsZW4gPSBzdHJsZW4oYnVmKTsKKyNpZmRlZiBERUJVR19GVFAKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorICAgIHJlcyA9IHNlbmQoY3R4dC0+Y29udHJvbEZkLCBidWYsIGxlbiwgMCk7CisgICAgaWYgKHJlcyA8IDApIHsKKwlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgMCwgInNlbmQgZmFpbGVkIik7CisJY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJcmV0dXJuKHJlcyk7CisgICAgfQorICAgIHJlcyA9IHhtbE5hbm9GVFBSZWFkUmVzcG9uc2UoY3R4dCk7CisgICAgaWYgKHJlcyAhPSAyKSB7CisJY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJcmV0dXJuKC1yZXMpOworICAgIH0KKyAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKKwlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiUkVUUiAlc1xyXG4iLCBjdHh0LT5wYXRoKTsKKyAgICBlbHNlCisJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIlJFVFIgJXNcclxuIiwgZmlsZW5hbWUpOworICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKKyAgICBsZW4gPSBzdHJsZW4oYnVmKTsKKyNpZmRlZiBERUJVR19GVFAKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgYnVmKTsKKyNlbmRpZgorICAgIHJlcyA9IHNlbmQoY3R4dC0+Y29udHJvbEZkLCBidWYsIGxlbiwgMCk7CisgICAgaWYgKHJlcyA8IDApIHsKKwlfX3htbElPRXJyKFhNTF9GUk9NX0ZUUCwgMCwgInNlbmQgZmFpbGVkIik7CisJY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJcmV0dXJuKHJlcyk7CisgICAgfQorICAgIHJlcyA9IHhtbE5hbm9GVFBSZWFkUmVzcG9uc2UoY3R4dCk7CisgICAgaWYgKHJlcyAhPSAxKSB7CisJY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJcmV0dXJuKC1yZXMpOworICAgIH0KKyAgICByZXR1cm4oY3R4dC0+ZGF0YUZkKTsKK30KKworLyoqCisgKiB4bWxOYW5vRlRQR2V0OgorICogQGN0eDogIGFuIEZUUCBjb250ZXh0CisgKiBAY2FsbGJhY2s6ICB0aGUgdXNlciBjYWxsYmFjaworICogQHVzZXJEYXRhOiAgdGhlIHVzZXIgY2FsbGJhY2sgZGF0YQorICogQGZpbGVuYW1lOiAgdGhlIGZpbGUgdG8gcmV0cmlldmUKKyAqCisgKiBGZXRjaCB0aGUgZ2l2ZW4gZmlsZSBmcm9tIHRoZSBzZXJ2ZXIuIEFsbCBkYXRhIGFyZSBwYXNzZWQgYmFjaworICogaW4gdGhlIGNhbGxiYWNrcy4gVGhlIGxhc3QgY2FsbGJhY2sgaGFzIGEgc2l6ZSBvZiAwIGJsb2NrLgorICoKKyAqIFJldHVybnMgLTEgaW5jYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZQorICovCisKK2ludAoreG1sTmFub0ZUUEdldCh2b2lkICpjdHgsIGZ0cERhdGFDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqdXNlckRhdGEsCisJICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxOYW5vRlRQQ3R4dFB0ciBjdHh0ID0gKHhtbE5hbm9GVFBDdHh0UHRyKSBjdHg7CisgICAgY2hhciBidWZbNDA5Nl07CisgICAgaW50IGxlbiA9IDAsIHJlczsKKyAgICBmZF9zZXQgcmZkOworICAgIHN0cnVjdCB0aW1ldmFsIHR2OworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoKGZpbGVuYW1lID09IE5VTEwpICYmIChjdHh0LT5wYXRoID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgaWYgKGNhbGxiYWNrID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoeG1sTmFub0ZUUEdldFNvY2tldChjdHh0LCBmaWxlbmFtZSkgPCAwKQorCXJldHVybigtMSk7CisKKyAgICBkbyB7CisJdHYudHZfc2VjID0gMTsKKwl0di50dl91c2VjID0gMDsKKwlGRF9aRVJPKCZyZmQpOworCUZEX1NFVChjdHh0LT5kYXRhRmQsICZyZmQpOworCXJlcyA9IHNlbGVjdChjdHh0LT5kYXRhRmQgKyAxLCAmcmZkLCBOVUxMLCBOVUxMLCAmdHYpOworCWlmIChyZXMgPCAwKSB7CisjaWZkZWYgREVCVUdfRlRQCisJICAgIHBlcnJvcigic2VsZWN0Iik7CisjZW5kaWYKKwkgICAgY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJICAgIHJldHVybigtMSk7CisJfQorCWlmIChyZXMgPT0gMCkgeworCSAgICByZXMgPSB4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZShjdHh0KTsKKwkgICAgaWYgKHJlcyA8IDApIHsKKwkJY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsgY3R4dC0+ZGF0YUZkID0gLTE7CisJCWN0eHQtPmRhdGFGZCA9IC0xOworCQlyZXR1cm4oLTEpOworCSAgICB9CisJICAgIGlmIChyZXMgPT0gMikgeworCQljbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkJcmV0dXJuKDApOworCSAgICB9CisKKwkgICAgY29udGludWU7CisJfQorCWlmICgobGVuID0gcmVjdihjdHh0LT5kYXRhRmQsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApKSA8IDApIHsKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJyZWN2IGZhaWxlZCIpOworCSAgICBjYWxsYmFjayh1c2VyRGF0YSwgYnVmLCBsZW4pOworCSAgICBjbG9zZXNvY2tldChjdHh0LT5kYXRhRmQpOyBjdHh0LT5kYXRhRmQgPSAtMTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY2FsbGJhY2sodXNlckRhdGEsIGJ1ZiwgbGVuKTsKKyAgICB9IHdoaWxlIChsZW4gIT0gMCk7CisKKyAgICByZXR1cm4oeG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbihjdHh0KSk7Cit9CisKKy8qKgorICogeG1sTmFub0ZUUFJlYWQ6CisgKiBAY3R4OiAgdGhlIEZUUCBjb250ZXh0CisgKiBAZGVzdDogIGEgYnVmZmVyCisgKiBAbGVuOiAgdGhlIGJ1ZmZlciBsZW5ndGgKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlYWQgQGxlbiBieXRlcyBmcm9tIHRoZSBleGlzdGluZyBGVFAgY29ubmVjdGlvbgorICogYW5kIHNhdmVzIHRoZW0gaW4gQGRlc3QuIFRoaXMgaXMgYSBibG9ja2luZyBjYWxsLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlIHJlYWQuIDAgaXMgYW4gaW5kaWNhdGlvbiBvZiBhbiBlbmQgb2YgY29ubmVjdGlvbi4KKyAqICAgICAgICAgLTEgaW5kaWNhdGVzIGEgcGFyYW1ldGVyIGVycm9yLgorICovCitpbnQKK3htbE5hbm9GVFBSZWFkKHZvaWQgKmN0eCwgdm9pZCAqZGVzdCwgaW50IGxlbikgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0ZUUEN0eHRQdHIpIGN0eDsKKworICAgIGlmIChjdHggPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoY3R4dC0+ZGF0YUZkIDwgMCkgcmV0dXJuKDApOworICAgIGlmIChkZXN0ID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaWYgKGxlbiA8PSAwKSByZXR1cm4oMCk7CisKKyAgICBsZW4gPSByZWN2KGN0eHQtPmRhdGFGZCwgZGVzdCwgbGVuLCAwKTsKKyAgICBpZiAobGVuIDw9IDApIHsKKwlpZiAobGVuIDwgMCkKKwkgICAgX194bWxJT0VycihYTUxfRlJPTV9GVFAsIDAsICJyZWN2IGZhaWxlZCIpOworCXhtbE5hbm9GVFBDbG9zZUNvbm5lY3Rpb24oY3R4dCk7CisgICAgfQorI2lmZGVmIERFQlVHX0ZUUAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiUmVjdmQgJWQgYnl0ZXNcbiIsIGxlbik7CisjZW5kaWYKKyAgICByZXR1cm4obGVuKTsKK30KKworLyoqCisgKiB4bWxOYW5vRlRQT3BlbjoKKyAqIEBVUkw6IHRoZSBVUkwgdG8gdGhlIHJlc291cmNlCisgKgorICogU3RhcnQgdG8gZmV0Y2ggdGhlIGdpdmVuIGZ0cDovLyByZXNvdXJjZQorICoKKyAqIFJldHVybnMgYW4gRlRQIGNvbnRleHQsIG9yIE5VTEwgCisgKi8KKwordm9pZCoKK3htbE5hbm9GVFBPcGVuKGNvbnN0IGNoYXIgKlVSTCkgeworICAgIHhtbE5hbm9GVFBDdHh0UHRyIGN0eHQ7CisgICAgaW50IHNvY2s7CisKKyAgICB4bWxOYW5vRlRQSW5pdCgpOworICAgIGlmIChVUkwgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChzdHJuY21wKCJmdHA6Ly8iLCBVUkwsIDYpKSByZXR1cm4oTlVMTCk7CisKKyAgICBjdHh0ID0gKHhtbE5hbm9GVFBDdHh0UHRyKSB4bWxOYW5vRlRQTmV3Q3R4dChVUkwpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoeG1sTmFub0ZUUENvbm5lY3QoY3R4dCkgPCAwKSB7CisJeG1sTmFub0ZUUEZyZWVDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgc29jayA9IHhtbE5hbm9GVFBHZXRTb2NrZXQoY3R4dCwgY3R4dC0+cGF0aCk7CisgICAgaWYgKHNvY2sgPCAwKSB7CisJeG1sTmFub0ZUUEZyZWVDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKGN0eHQpOworfQorCisvKioKKyAqIHhtbE5hbm9GVFBDbG9zZToKKyAqIEBjdHg6IGFuIEZUUCBjb250ZXh0CisgKgorICogQ2xvc2UgdGhlIGNvbm5lY3Rpb24gYW5kIGJvdGggY29udHJvbCBhbmQgdHJhbnNwb3J0CisgKgorICogUmV0dXJucyAtMSBpbmNhc2Ugb2YgZXJyb3IsIDAgb3RoZXJ3aXNlCisgKi8KKworaW50Cit4bWxOYW5vRlRQQ2xvc2Uodm9pZCAqY3R4KSB7CisgICAgeG1sTmFub0ZUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vRlRQQ3R4dFB0cikgY3R4OworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKGN0eHQtPmRhdGFGZCA+PSAwKSB7CisJY2xvc2Vzb2NrZXQoY3R4dC0+ZGF0YUZkKTsKKwljdHh0LT5kYXRhRmQgPSAtMTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmNvbnRyb2xGZCA+PSAwKSB7CisJeG1sTmFub0ZUUFF1aXQoY3R4dCk7CisJY2xvc2Vzb2NrZXQoY3R4dC0+Y29udHJvbEZkKTsKKwljdHh0LT5jb250cm9sRmQgPSAtMTsKKyAgICB9CisgICAgeG1sTmFub0ZUUEZyZWVDdHh0KGN0eHQpOworICAgIHJldHVybigwKTsKK30KKworI2lmZGVmIFNUQU5EQUxPTkUKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCUJhc2ljIHRlc3QgaW4gU3RhbmRhbG9uZSBtb2RlCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYwordm9pZCBmdHBMaXN0KHZvaWQgKnVzZXJEYXRhLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciogYXR0cmliLAorCSAgICAgY29uc3QgY2hhciAqb3duZXIsIGNvbnN0IGNoYXIgKmdyb3VwLCB1bnNpZ25lZCBsb25nIHNpemUsIGludCBsaW5rcywKKwkgICAgIGludCB5ZWFyLCBjb25zdCBjaGFyICptb250aCwgaW50IGRheSwgaW50IGhvdXIsIGludCBtaW51dGUpIHsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIiVzICVzICVzICVsZCAlc1xuIiwgYXR0cmliLCBvd25lciwgZ3JvdXAsIHNpemUsIGZpbGVuYW1lKTsKK30KK3N0YXRpYwordm9pZCBmdHBEYXRhKHZvaWQgKnVzZXJEYXRhLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgbGVuKSB7CisgICAgaWYgKHVzZXJEYXRhID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAobGVuIDw9IDApIHsKKwlmY2xvc2UoKEZJTEUqKXVzZXJEYXRhKTsKKwlyZXR1cm47CisgICAgfQkKKyAgICBmd3JpdGUoZGF0YSwgbGVuLCAxLCAoRklMRSopdXNlckRhdGEpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICB2b2lkICpjdHh0OworICAgIEZJTEUgKm91dHB1dDsKKyAgICBjaGFyICp0c3RmaWxlID0gTlVMTDsKKworICAgIHhtbE5hbm9GVFBJbml0KCk7CisgICAgaWYgKGFyZ2MgPiAxKSB7CisJY3R4dCA9IHhtbE5hbm9GVFBOZXdDdHh0KGFyZ3ZbMV0pOworCWlmICh4bWxOYW5vRlRQQ29ubmVjdChjdHh0KSA8IDApIHsKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiQ291bGRuJ3QgY29ubmVjdCB0byAlc1xuIiwgYXJndlsxXSk7CisJICAgIGV4aXQoMSk7CisJfQorCWlmIChhcmdjID4gMikKKwkgICAgdHN0ZmlsZSA9IGFyZ3ZbMl07CisgICAgfSBlbHNlCisJY3R4dCA9IHhtbE5hbm9GVFBDb25uZWN0VG8oImxvY2FsaG9zdCIsIDApOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJDb3VsZG4ndCBjb25uZWN0IHRvIGxvY2FsaG9zdFxuIik7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIHhtbE5hbm9GVFBMaXN0KGN0eHQsIGZ0cExpc3QsIE5VTEwsIHRzdGZpbGUpOworICAgIG91dHB1dCA9IGZvcGVuKCIvdG1wL3RzdGRhdGEiLCAidyIpOworICAgIGlmIChvdXRwdXQgIT0gTlVMTCkgeworCWlmICh4bWxOYW5vRlRQR2V0KGN0eHQsIGZ0cERhdGEsICh2b2lkICopIG91dHB1dCwgdHN0ZmlsZSkgPCAwKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJGYWlsZWQgdG8gZ2V0IGZpbGVcbiIpOworCQorICAgIH0KKyAgICB4bWxOYW5vRlRQQ2xvc2UoY3R4dCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworICAgIGV4aXQoMCk7Cit9CisjZW5kaWYgLyogU1RBTkRBTE9ORSAqLworI2Vsc2UgLyogIUxJQlhNTF9GVFBfRU5BQkxFRCAqLworI2lmZGVmIFNUQU5EQUxPTkUKKyNpbmNsdWRlIDxzdGRpby5oPgoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICIlcyA6IEZUUCBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIiwgYXJndlswXSk7CisgICAgcmV0dXJuKDApOworfQorI2VuZGlmIC8qIFNUQU5EQUxPTkUgKi8KKyNlbmRpZiAvKiBMSUJYTUxfRlRQX0VOQUJMRUQgKi8KKyNkZWZpbmUgYm90dG9tX25hbm9mdHAKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L25hbm9odHRwLmMgYi9saWJ4bWwyLTIuNy43L25hbm9odHRwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyYzRlYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvbmFub2h0dHAuYwpAQCAtMCwwICsxLDE4NzUgQEAKKy8qCisgKiBuYW5vaHR0cC5jOiBtaW5pbWFsaXN0IEhUVFAgR0VUIGltcGxlbWVudGF0aW9uIHRvIGZldGNoIGV4dGVybmFsIHN1YnNldHMuCisgKiAgICAgICAgICAgICBmb2N1c2VzIG9uIHNpemUsIHN0cmVhbWFiaWxpdHksIHJlZW50cmFuY3kgYW5kIHBvcnRhYmlsaXR5CisgKgorICogVGhpcyBpcyBjbGVhcmx5IG5vdCBhIGdlbmVyYWwgcHVycG9zZSBIVFRQIGltcGxlbWVudGF0aW9uCisgKiBJZiB5b3UgbG9vayBmb3Igb25lLCBjaGVjazoKKyAqICAgICAgICAgaHR0cDovL3d3dy53My5vcmcvTGlicmFyeS8KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisgCisjZGVmaW5lIE5FRURfU09DS0VUUworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfVU5JU1REX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9ORVRJTkVUX0lOX0gKKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0FSUEFfSU5FVF9ICisjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX05FVERCX0gKKyNpbmNsdWRlIDxuZXRkYi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9SRVNPTFZfSAorI2lmZGVmIEhBVkVfQVJQQV9OQU1FU0VSX0gKKyNpbmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHJlc29sdi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9GQ05UTF9ICisjaW5jbHVkZSA8ZmNudGwuaD4gCisjZW5kaWYKKyNpZmRlZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfVElNRV9ICisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNlbmRpZgorI2lmbmRlZiBIQVZFX1BPTExfSAorI2lmZGVmIEhBVkVfU1lTX1NFTEVDVF9ICisjaW5jbHVkZSA8c3lzL3NlbGVjdC5oPgorI2VuZGlmCisjZWxzZQorI2luY2x1ZGUgPHBvbGwuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RSSU5HU19ICisjaW5jbHVkZSA8c3RyaW5ncy5oPgorI2VuZGlmCisjaWZkZWYgU1VQUE9SVF9JUDYKKyNpbmNsdWRlIDxyZXNvbHYuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfWkxJQl9ICisjaW5jbHVkZSA8emxpYi5oPgorI2VuZGlmCisKKworI2lmZGVmIFZNUworI2luY2x1ZGUgPHN0cm9wdHM+CisjZGVmaW5lIFhNTF9TT0NLTEVOX1QgdW5zaWduZWQgaW50CisjZGVmaW5lIFNPQ0tFVCBpbnQKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX01JTkdXMzJfXykgfHwgZGVmaW5lZChfV0lOMzJfV0NFKQorI2RlZmluZSBfV0lOU09DS0FQSV8KKyNpbmNsdWRlIDx3c29ja2NvbXBhdC5oPgorI2luY2x1ZGUgPHdpbnNvY2syLmg+CisjdW5kZWYgWE1MX1NPQ0tMRU5fVAorI2RlZmluZSBYTUxfU09DS0xFTl9UIHVuc2lnbmVkIGludAorI2VuZGlmCisKKworI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4gLyogZm9yIHhtbFN0cihuKWNhc2VjbXAoKSAqLworI2luY2x1ZGUgPGxpYnhtbC9uYW5vaHR0cC5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorCisvKioKKyAqIEEgY291cGxlIHBvcnRhYmlsaXR5IG1hY3JvcworICovCisjaWZuZGVmIF9XSU5TT0NLQVBJXworI2lmICFkZWZpbmVkKF9fQkVPU19fKSB8fCBkZWZpbmVkKF9fSEFJS1VfXykKKyNkZWZpbmUgY2xvc2Vzb2NrZXQocykgY2xvc2UocykKKyNlbmRpZgorI2RlZmluZSBTT0NLRVQgaW50CisjZW5kaWYKKworI2lmZGVmIF9fQkVPU19fCisjaWZuZGVmIFBGX0lORVQKKyNkZWZpbmUgUEZfSU5FVCBBRl9JTkVUCisjZW5kaWYKKyNlbmRpZgorCisjaWZuZGVmIFhNTF9TT0NLTEVOX1QKKyNkZWZpbmUgWE1MX1NPQ0tMRU5fVCB1bnNpZ25lZCBpbnQKKyNlbmRpZgorI2lmbmRlZiBTT0NLRVQKKyNkZWZpbmUgU09DS0VUIGludAorI2VuZGlmCisKKyNpZmRlZiBTVEFOREFMT05FCisjZGVmaW5lIERFQlVHX0hUVFAKKyNkZWZpbmUgeG1sU3RybmNhc2VjbXAoYSwgYiwgbikgc3RybmNhc2VjbXAoKGNoYXIgKilhLCAoY2hhciAqKWIsIG4pCisjZGVmaW5lIHhtbFN0cmNhc2VjbXBpKGEsIGIpIHN0cmNhc2VjbXAoKGNoYXIgKilhLCAoY2hhciAqKWIpCisjZW5kaWYKKworI2RlZmluZSBYTUxfTkFOT19IVFRQX01BWF9SRURJUgkxMAorCisjZGVmaW5lIFhNTF9OQU5PX0hUVFBfQ0hVTksJNDA5NgorCisjZGVmaW5lIFhNTF9OQU5PX0hUVFBfQ0xPU0VECTAKKyNkZWZpbmUgWE1MX05BTk9fSFRUUF9XUklURQkxCisjZGVmaW5lIFhNTF9OQU5PX0hUVFBfUkVBRAkyCisjZGVmaW5lIFhNTF9OQU5PX0hUVFBfTk9ORQk0CisKK3R5cGVkZWYgc3RydWN0IHhtbE5hbm9IVFRQQ3R4dCB7CisgICAgY2hhciAqcHJvdG9jb2w7CS8qIHRoZSBwcm90b2NvbCBuYW1lICovCisgICAgY2hhciAqaG9zdG5hbWU7CS8qIHRoZSBob3N0IG5hbWUgKi8KKyAgICBpbnQgcG9ydDsJCS8qIHRoZSBwb3J0ICovCisgICAgY2hhciAqcGF0aDsJCS8qIHRoZSBwYXRoIHdpdGhpbiB0aGUgVVJMICovCisgICAgY2hhciAqcXVlcnk7CS8qIHRoZSBxdWVyeSBzdHJpbmcgKi8KKyAgICBTT0NLRVQgZmQ7CQkvKiB0aGUgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgc29ja2V0ICovCisgICAgaW50IHN0YXRlOwkJLyogV1JJVEUgLyBSRUFEIC8gQ0xPU0VEICovCisgICAgY2hhciAqb3V0OwkJLyogYnVmZmVyIHNlbnQgKHplcm8gdGVybWluYXRlZCkgKi8KKyAgICBjaGFyICpvdXRwdHI7CS8qIGluZGV4IHdpdGhpbiB0aGUgYnVmZmVyIHNlbnQgKi8KKyAgICBjaGFyICppbjsJCS8qIHRoZSByZWNlaXZpbmcgYnVmZmVyICovCisgICAgY2hhciAqY29udGVudDsJLyogdGhlIHN0YXJ0IG9mIHRoZSBjb250ZW50ICovCisgICAgY2hhciAqaW5wdHI7CS8qIHRoZSBuZXh0IGJ5dGUgdG8gcmVhZCBmcm9tIG5ldHdvcmsgKi8KKyAgICBjaGFyICppbnJwdHI7CS8qIHRoZSBuZXh0IGJ5dGUgdG8gZ2l2ZSBiYWNrIHRvIHRoZSBjbGllbnQgKi8KKyAgICBpbnQgaW5sZW47CQkvKiBsZW4gb2YgdGhlIGlucHV0IGJ1ZmZlciAqLworICAgIGludCBsYXN0OwkJLyogcmV0dXJuIGNvZGUgZm9yIGxhc3Qgb3BlcmF0aW9uICovCisgICAgaW50IHJldHVyblZhbHVlOwkvKiB0aGUgcHJvdG9jb2wgcmV0dXJuIHZhbHVlICovCisgICAgaW50IHZlcnNpb247ICAgICAgICAvKiB0aGUgcHJvdG9jb2wgdmVyc2lvbiAqLworICAgIGludCBDb250ZW50TGVuZ3RoOyAgLyogc3BlY2lmaWVkIGNvbnRlbnQgbGVuZ3RoIGZyb20gSFRUUCBoZWFkZXIgKi8KKyAgICBjaGFyICpjb250ZW50VHlwZTsJLyogdGhlIE1JTUUgdHlwZSBmb3IgdGhlIGlucHV0ICovCisgICAgY2hhciAqbG9jYXRpb247CS8qIHRoZSBuZXcgVVJMIGluIGNhc2Ugb2YgcmVkaXJlY3QgKi8KKyAgICBjaGFyICphdXRoSGVhZGVyOwkvKiBjb250ZW50cyBvZiB7V1dXLFByb3h5fS1BdXRoZW50aWNhdGUgaGVhZGVyICovCisgICAgY2hhciAqZW5jb2Rpbmc7CS8qIGVuY29kaW5nIGV4dHJhY3RlZCBmcm9tIHRoZSBjb250ZW50VHlwZSAqLworICAgIGNoYXIgKm1pbWVUeXBlOwkvKiBNaW1lLVR5cGUgZXh0cmFjdGVkIGZyb20gdGhlIGNvbnRlbnRUeXBlICovCisjaWZkZWYgSEFWRV9aTElCX0gKKyAgICB6X3N0cmVhbSAqc3RybTsJLyogWmxpYiBzdHJlYW0gb2JqZWN0ICovCisgICAgaW50IHVzZXNHemlwOwkvKiAiQ29udGVudC1FbmNvZGluZzogZ3ppcCIgd2FzIGRldGVjdGVkICovCisjZW5kaWYKK30geG1sTmFub0hUVFBDdHh0LCAqeG1sTmFub0hUVFBDdHh0UHRyOworCitzdGF0aWMgaW50IGluaXRpYWxpemVkID0gMDsKK3N0YXRpYyBjaGFyICpwcm94eSA9IE5VTEw7CSAvKiB0aGUgcHJveHkgbmFtZSBpZiBhbnkgKi8KK3N0YXRpYyBpbnQgcHJveHlQb3J0OwkvKiB0aGUgcHJveHkgcG9ydCBpZiBhbnkgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgdGltZW91dCA9IDYwOy8qIHRoZSBzZWxlY3QoKSB0aW1lb3V0IGluIHNlY29uZHMgKi8KKworc3RhdGljIGludCB4bWxOYW5vSFRUUEZldGNoQ29udGVudCggdm9pZCAqIGN0eCwgY2hhciAqKiBwdHIsIGludCAqIGxlbiApOworCisvKioKKyAqIHhtbEhUVFBFcnJNZW1vcnk6CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBjb25kaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbEhUVFBFcnJNZW1vcnkoY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9IVFRQLCBYTUxfRVJSX05PX01FTU9SWSwgTlVMTCwgTlVMTCwgZXh0cmEpOworfQorCisvKioKKyAqIEEgcG9ydGFiaWxpdHkgZnVuY3Rpb24KKyAqLworc3RhdGljIGludCBzb2NrZXRfZXJybm8odm9pZCkgeworI2lmZGVmIF9XSU5TT0NLQVBJXworICAgIHJldHVybihXU0FHZXRMYXN0RXJyb3IoKSk7CisjZWxzZQorICAgIHJldHVybihlcnJubyk7CisjZW5kaWYKK30KKworI2lmZGVmIFNVUFBPUlRfSVA2CitzdGF0aWMKK2ludCBoYXZlX2lwdjYodm9pZCkgeworICAgIGludCBzOworCisgICAgcyA9IHNvY2tldCAoQUZfSU5FVDYsIFNPQ0tfU1RSRUFNLCAwKTsKKyAgICBpZiAocyAhPSAtMSkgeworCWNsb3NlIChzKTsKKwlyZXR1cm4gKDEpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorI2VuZGlmCisKKy8qKgorICogeG1sTmFub0hUVFBJbml0OgorICoKKyAqIEluaXRpYWxpemUgdGhlIEhUVFAgcHJvdG9jb2wgbGF5ZXIuCisgKiBDdXJyZW50bHkgaXQganVzdCBjaGVja3MgZm9yIHByb3h5IGluZm9ybWF0aW9ucworICovCisKK3ZvaWQKK3htbE5hbm9IVFRQSW5pdCh2b2lkKSB7CisgICAgY29uc3QgY2hhciAqZW52OworI2lmZGVmIF9XSU5TT0NLQVBJXworICAgIFdTQURBVEEgd3NhRGF0YTsgICAgCisjZW5kaWYKKworICAgIGlmIChpbml0aWFsaXplZCkKKwlyZXR1cm47CisKKyNpZmRlZiBfV0lOU09DS0FQSV8KKyAgICBpZiAoV1NBU3RhcnR1cChNQUtFV09SRCgxLCAxKSwgJndzYURhdGEpICE9IDApCisJcmV0dXJuOworI2VuZGlmCisKKyAgICBpZiAocHJveHkgPT0gTlVMTCkgeworCXByb3h5UG9ydCA9IDgwOworCWVudiA9IGdldGVudigibm9fcHJveHkiKTsKKwlpZiAoZW52ICYmICgoZW52WzBdID09ICcqJykgJiYgKGVudlsxXSA9PSAwKSkpCisJICAgIGdvdG8gZG9uZTsKKwllbnYgPSBnZXRlbnYoImh0dHBfcHJveHkiKTsKKwlpZiAoZW52ICE9IE5VTEwpIHsKKwkgICAgeG1sTmFub0hUVFBTY2FuUHJveHkoZW52KTsKKwkgICAgZ290byBkb25lOworCX0KKwllbnYgPSBnZXRlbnYoIkhUVFBfUFJPWFkiKTsKKwlpZiAoZW52ICE9IE5VTEwpIHsKKwkgICAgeG1sTmFub0hUVFBTY2FuUHJveHkoZW52KTsKKwkgICAgZ290byBkb25lOworCX0KKyAgICB9Citkb25lOgorICAgIGluaXRpYWxpemVkID0gMTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUENsZWFudXA6CisgKgorICogQ2xlYW51cCB0aGUgSFRUUCBwcm90b2NvbCBsYXllci4KKyAqLworCit2b2lkCit4bWxOYW5vSFRUUENsZWFudXAodm9pZCkgeworICAgIGlmIChwcm94eSAhPSBOVUxMKSB7CisJeG1sRnJlZShwcm94eSk7CisJcHJveHkgPSBOVUxMOworICAgIH0KKyNpZmRlZiBfV0lOU09DS0FQSV8KKyAgICBpZiAoaW5pdGlhbGl6ZWQpCisJV1NBQ2xlYW51cCgpOworI2VuZGlmCisgICAgaW5pdGlhbGl6ZWQgPSAwOworICAgIHJldHVybjsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUFNjYW5VUkw6CisgKiBAY3R4dDogIGFuIEhUVFAgY29udGV4dAorICogQFVSTDogIFRoZSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBjb250ZXh0CisgKgorICogKFJlKUluaXRpYWxpemUgYW4gSFRUUCBjb250ZXh0IGJ5IHBhcnNpbmcgdGhlIFVSTCBhbmQgZmluZGluZworICogdGhlIHByb3RvY29sIGhvc3QgcG9ydCBhbmQgcGF0aCBpdCBpbmRpY2F0ZXMuCisgKi8KKworc3RhdGljIHZvaWQKK3htbE5hbm9IVFRQU2NhblVSTCh4bWxOYW5vSFRUUEN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqVVJMKSB7CisgICAgeG1sVVJJUHRyIHVyaTsKKyAgICAvKgorICAgICAqIENsZWFyIGFueSBleGlzdGluZyBkYXRhIGZyb20gdGhlIGNvbnRleHQKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+cHJvdG9jb2wgIT0gTlVMTCkgeyAKKyAgICAgICAgeG1sRnJlZShjdHh0LT5wcm90b2NvbCk7CisJY3R4dC0+cHJvdG9jb2wgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+aG9zdG5hbWUgIT0gTlVMTCkgeyAKKyAgICAgICAgeG1sRnJlZShjdHh0LT5ob3N0bmFtZSk7CisJY3R4dC0+aG9zdG5hbWUgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+cGF0aCAhPSBOVUxMKSB7IAorICAgICAgICB4bWxGcmVlKGN0eHQtPnBhdGgpOworCWN0eHQtPnBhdGggPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+cXVlcnkgIT0gTlVMTCkgeyAKKyAgICAgICAgeG1sRnJlZShjdHh0LT5xdWVyeSk7CisJY3R4dC0+cXVlcnkgPSBOVUxMOworICAgIH0KKyAgICBpZiAoVVJMID09IE5VTEwpIHJldHVybjsKKworICAgIHVyaSA9IHhtbFBhcnNlVVJJUmF3KFVSTCwgMSk7CisgICAgaWYgKHVyaSA9PSBOVUxMKQorCXJldHVybjsKKworICAgIGlmICgodXJpLT5zY2hlbWUgPT0gTlVMTCkgfHwgKHVyaS0+c2VydmVyID09IE5VTEwpKSB7CisJeG1sRnJlZVVSSSh1cmkpOworCXJldHVybjsKKyAgICB9CisgICAgCisgICAgY3R4dC0+cHJvdG9jb2wgPSB4bWxNZW1TdHJkdXAodXJpLT5zY2hlbWUpOworICAgIGN0eHQtPmhvc3RuYW1lID0geG1sTWVtU3RyZHVwKHVyaS0+c2VydmVyKTsKKyAgICBpZiAodXJpLT5wYXRoICE9IE5VTEwpCisJY3R4dC0+cGF0aCA9IHhtbE1lbVN0cmR1cCh1cmktPnBhdGgpOworICAgIGVsc2UKKwljdHh0LT5wYXRoID0geG1sTWVtU3RyZHVwKCIvIik7CisgICAgaWYgKHVyaS0+cXVlcnkgIT0gTlVMTCkKKwljdHh0LT5xdWVyeSA9IHhtbE1lbVN0cmR1cCh1cmktPnF1ZXJ5KTsKKyAgICBpZiAodXJpLT5wb3J0ICE9IDApCisJY3R4dC0+cG9ydCA9IHVyaS0+cG9ydDsKKworICAgIHhtbEZyZWVVUkkodXJpKTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUFNjYW5Qcm94eToKKyAqIEBVUkw6ICBUaGUgcHJveHkgVVJMIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgcHJveHkgY29udGV4dAorICoKKyAqIChSZSlJbml0aWFsaXplIHRoZSBIVFRQIFByb3h5IGNvbnRleHQgYnkgcGFyc2luZyB0aGUgVVJMIGFuZCBmaW5kaW5nCisgKiB0aGUgcHJvdG9jb2wgaG9zdCBwb3J0IGl0IGluZGljYXRlcy4KKyAqIFNob3VsZCBiZSBsaWtlIGh0dHA6Ly9teXByb3h5LyBvciBodHRwOi8vbXlwcm94eTozMTI4LworICogQSBOVUxMIFVSTCBjbGVhbnMgdXAgcHJveHkgaW5mb3JtYXRpb25zLgorICovCisKK3ZvaWQKK3htbE5hbm9IVFRQU2NhblByb3h5KGNvbnN0IGNoYXIgKlVSTCkgeworICAgIHhtbFVSSVB0ciB1cmk7CisKKyAgICBpZiAocHJveHkgIT0gTlVMTCkgeyAKKyAgICAgICAgeG1sRnJlZShwcm94eSk7CisJcHJveHkgPSBOVUxMOworICAgIH0KKyAgICBwcm94eVBvcnQgPSAwOworCisjaWZkZWYgREVCVUdfSFRUUAorICAgIGlmIChVUkwgPT0gTlVMTCkKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlJlbW92aW5nIEhUVFAgcHJveHkgaW5mb1xuIik7CisgICAgZWxzZQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiVXNpbmcgSFRUUCBwcm94eSAlc1xuIiwgVVJMKTsKKyNlbmRpZgorICAgIGlmIChVUkwgPT0gTlVMTCkgcmV0dXJuOworCisgICAgdXJpID0geG1sUGFyc2VVUklSYXcoVVJMLCAxKTsKKyAgICBpZiAoKHVyaSA9PSBOVUxMKSB8fCAodXJpLT5zY2hlbWUgPT0gTlVMTCkgfHwKKwkoc3RyY21wKHVyaS0+c2NoZW1lLCAiaHR0cCIpKSB8fCAodXJpLT5zZXJ2ZXIgPT0gTlVMTCkpIHsKKwlfX3htbElPRXJyKFhNTF9GUk9NX0hUVFAsIFhNTF9IVFRQX1VSTF9TWU5UQVgsICJTeW50YXggRXJyb3JcbiIpOworCWlmICh1cmkgIT0gTlVMTCkKKwkgICAgeG1sRnJlZVVSSSh1cmkpOworCXJldHVybjsKKyAgICB9CisgICAgCisgICAgcHJveHkgPSB4bWxNZW1TdHJkdXAodXJpLT5zZXJ2ZXIpOworICAgIGlmICh1cmktPnBvcnQgIT0gMCkKKwlwcm94eVBvcnQgPSB1cmktPnBvcnQ7CisKKyAgICB4bWxGcmVlVVJJKHVyaSk7Cit9CisKKy8qKgorICogeG1sTmFub0hUVFBOZXdDdHh0OgorICogQFVSTDogIFRoZSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBjb250ZXh0CisgKgorICogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgSFRUUCBjb250ZXh0LgorICoKKyAqIFJldHVybnMgYW4gSFRUUCBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworCitzdGF0aWMgeG1sTmFub0hUVFBDdHh0UHRyCit4bWxOYW5vSFRUUE5ld0N0eHQoY29uc3QgY2hhciAqVVJMKSB7CisgICAgeG1sTmFub0hUVFBDdHh0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxOYW5vSFRUUEN0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTmFub0hUVFBDdHh0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEhUVFBFcnJNZW1vcnkoImFsbG9jYXRpbmcgY29udGV4dCIpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbE5hbm9IVFRQQ3R4dCkpOworICAgIHJldC0+cG9ydCA9IDgwOworICAgIHJldC0+cmV0dXJuVmFsdWUgPSAwOworICAgIHJldC0+ZmQgPSAtMTsKKyAgICByZXQtPkNvbnRlbnRMZW5ndGggPSAtMTsKKworICAgIHhtbE5hbm9IVFRQU2NhblVSTChyZXQsIFVSTCk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUEZyZWVDdHh0OgorICogQGN0eHQ6ICBhbiBIVFRQIGNvbnRleHQKKyAqCisgKiBGcmVlcyB0aGUgY29udGV4dCBhZnRlciBjbG9zaW5nIHRoZSBjb25uZWN0aW9uLgorICovCisKK3N0YXRpYyB2b2lkCit4bWxOYW5vSFRUUEZyZWVDdHh0KHhtbE5hbm9IVFRQQ3R4dFB0ciBjdHh0KSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChjdHh0LT5ob3N0bmFtZSAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPmhvc3RuYW1lKTsKKyAgICBpZiAoY3R4dC0+cHJvdG9jb2wgIT0gTlVMTCkgeG1sRnJlZShjdHh0LT5wcm90b2NvbCk7CisgICAgaWYgKGN0eHQtPnBhdGggIT0gTlVMTCkgeG1sRnJlZShjdHh0LT5wYXRoKTsKKyAgICBpZiAoY3R4dC0+cXVlcnkgIT0gTlVMTCkgeG1sRnJlZShjdHh0LT5xdWVyeSk7CisgICAgaWYgKGN0eHQtPm91dCAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPm91dCk7CisgICAgaWYgKGN0eHQtPmluICE9IE5VTEwpIHhtbEZyZWUoY3R4dC0+aW4pOworICAgIGlmIChjdHh0LT5jb250ZW50VHlwZSAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPmNvbnRlbnRUeXBlKTsKKyAgICBpZiAoY3R4dC0+ZW5jb2RpbmcgIT0gTlVMTCkgeG1sRnJlZShjdHh0LT5lbmNvZGluZyk7CisgICAgaWYgKGN0eHQtPm1pbWVUeXBlICE9IE5VTEwpIHhtbEZyZWUoY3R4dC0+bWltZVR5cGUpOworICAgIGlmIChjdHh0LT5sb2NhdGlvbiAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPmxvY2F0aW9uKTsKKyAgICBpZiAoY3R4dC0+YXV0aEhlYWRlciAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPmF1dGhIZWFkZXIpOworI2lmZGVmIEhBVkVfWkxJQl9ICisgICAgaWYgKGN0eHQtPnN0cm0gIT0gTlVMTCkgeworCWluZmxhdGVFbmQoY3R4dC0+c3RybSk7CisJeG1sRnJlZShjdHh0LT5zdHJtKTsKKyAgICB9CisjZW5kaWYKKworICAgIGN0eHQtPnN0YXRlID0gWE1MX05BTk9fSFRUUF9OT05FOworICAgIGlmIChjdHh0LT5mZCA+PSAwKSBjbG9zZXNvY2tldChjdHh0LT5mZCk7CisgICAgY3R4dC0+ZmQgPSAtMTsKKyAgICB4bWxGcmVlKGN0eHQpOworfQorCisvKioKKyAqIHhtbE5hbm9IVFRQU2VuZDoKKyAqIEBjdHh0OiAgYW4gSFRUUCBjb250ZXh0CisgKgorICogU2VuZCB0aGUgaW5wdXQgbmVlZGVkIHRvIGluaXRpYXRlIHRoZSBwcm9jZXNzaW5nIG9uIHRoZSBzZXJ2ZXIgc2lkZQorICogUmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgc2VudCBvciAtMSBvbiBlcnJvci4KKyAqLworCitzdGF0aWMgaW50Cit4bWxOYW5vSFRUUFNlbmQoeG1sTmFub0hUVFBDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKnhtdF9wdHIsIGludCBvdXRsZW4pCit7CisgICAgaW50IHRvdGFsX3NlbnQgPSAwOworI2lmZGVmIEhBVkVfUE9MTF9ICisgICAgc3RydWN0IHBvbGxmZCBwOworI2Vsc2UKKyAgICBzdHJ1Y3QgdGltZXZhbCB0djsKKyAgICBmZF9zZXQgd2ZkOworI2VuZGlmCisKKyAgICBpZiAoKGN0eHQtPnN0YXRlICYgWE1MX05BTk9fSFRUUF9XUklURSkgJiYgKHhtdF9wdHIgIT0gTlVMTCkpIHsKKyAgICAgICAgd2hpbGUgKHRvdGFsX3NlbnQgPCBvdXRsZW4pIHsKKyAgICAgICAgICAgIGludCBuc2VudCA9IHNlbmQoY3R4dC0+ZmQsIHhtdF9wdHIgKyB0b3RhbF9zZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsZW4gLSB0b3RhbF9zZW50LCAwKTsKKworICAgICAgICAgICAgaWYgKG5zZW50ID4gMCkKKyAgICAgICAgICAgICAgICB0b3RhbF9zZW50ICs9IG5zZW50OworICAgICAgICAgICAgZWxzZSBpZiAoKG5zZW50ID09IC0xKSAmJgorI2lmIGRlZmluZWQoRUFHQUlOKSAmJiBFQUdBSU4gIT0gRVdPVUxEQkxPQ0sKKyAgICAgICAgICAgICAgICAgICAgIChzb2NrZXRfZXJybm8oKSAhPSBFQUdBSU4pICYmCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgIChzb2NrZXRfZXJybm8oKSAhPSBFV09VTERCTE9DSykpIHsKKyAgICAgICAgICAgICAgICBfX3htbElPRXJyKFhNTF9GUk9NX0hUVFAsIDAsICJzZW5kIGZhaWxlZFxuIik7CisgICAgICAgICAgICAgICAgaWYgKHRvdGFsX3NlbnQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgdG90YWxfc2VudCA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIE5vIGRhdGEgc2VudAorICAgICAgICAgICAgICAgICAqIFNpbmNlIG5vbi1ibG9ja2luZyBzb2NrZXRzIGFyZSB1c2VkLCB3YWl0IGZvcgorICAgICAgICAgICAgICAgICAqIHNvY2tldCB0byBiZSB3cml0YWJsZSBvciBkZWZhdWx0IHRpbWVvdXQgcHJpb3IKKyAgICAgICAgICAgICAgICAgKiB0byByZXRyeWluZy4KKyAgICAgICAgICAgICAgICAgKi8KKyNpZm5kZWYgSEFWRV9QT0xMX0gKKyNpZm5kZWYgX1dJTlNPQ0tBUElfCisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmZkID4gRkRfU0VUU0laRSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworI2VuZGlmCisKKyAgICAgICAgICAgICAgICB0di50dl9zZWMgPSB0aW1lb3V0OworICAgICAgICAgICAgICAgIHR2LnR2X3VzZWMgPSAwOworICAgICAgICAgICAgICAgIEZEX1pFUk8oJndmZCk7CisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQwMTgpCisjZW5kaWYKKyAgICAgICAgICAgICAgICBGRF9TRVQoY3R4dC0+ZmQsICZ3ZmQpOworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisgICAgICAgICAgICAgICAgKHZvaWQpIHNlbGVjdChjdHh0LT5mZCArIDEsIE5VTEwsICZ3ZmQsIE5VTEwsICZ0dik7CisjZWxzZQorICAgICAgICAgICAgICAgIHAuZmQgPSBjdHh0LT5mZDsKKyAgICAgICAgICAgICAgICBwLmV2ZW50cyA9IFBPTExPVVQ7CisgICAgICAgICAgICAgICAgKHZvaWQpIHBvbGwoJnAsIDEsIHRpbWVvdXQgKiAxMDAwKTsKKyNlbmRpZiAvKiAhSEFWRV9QT0xMX0ggKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0b3RhbF9zZW50OworfQorCisvKioKKyAqIHhtbE5hbm9IVFRQUmVjdjoKKyAqIEBjdHh0OiAgYW4gSFRUUCBjb250ZXh0CisgKgorICogUmVhZCBpbmZvcm1hdGlvbiBjb21pbmcgZnJvbSB0aGUgSFRUUCBjb25uZWN0aW9uLgorICogVGhpcyBpcyBhIGJsb2NraW5nIGNhbGwgKGJ1dCBpdCBibG9ja3MgaW4gc2VsZWN0KCksIG5vdCByZWFkKCkpLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlIHJlYWQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworCitzdGF0aWMgaW50Cit4bWxOYW5vSFRUUFJlY3YoeG1sTmFub0hUVFBDdHh0UHRyIGN0eHQpCit7CisjaWZkZWYgSEFWRV9QT0xMX0gKKyAgICBzdHJ1Y3QgcG9sbGZkIHA7CisjZWxzZQorICAgIGZkX3NldCByZmQ7CisgICAgc3RydWN0IHRpbWV2YWwgdHY7CisjZW5kaWYKKworCisgICAgd2hpbGUgKGN0eHQtPnN0YXRlICYgWE1MX05BTk9fSFRUUF9SRUFEKSB7CisgICAgICAgIGlmIChjdHh0LT5pbiA9PSBOVUxMKSB7CisgICAgICAgICAgICBjdHh0LT5pbiA9IChjaGFyICopIHhtbE1hbGxvY0F0b21pYyg2NTAwMCAqIHNpemVvZihjaGFyKSk7CisgICAgICAgICAgICBpZiAoY3R4dC0+aW4gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbEhUVFBFcnJNZW1vcnkoImFsbG9jYXRpbmcgaW5wdXQiKTsKKyAgICAgICAgICAgICAgICBjdHh0LT5sYXN0ID0gLTE7CisgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdHh0LT5pbmxlbiA9IDY1MDAwOworICAgICAgICAgICAgY3R4dC0+aW5wdHIgPSBjdHh0LT5jb250ZW50ID0gY3R4dC0+aW5ycHRyID0gY3R4dC0+aW47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN0eHQtPmlucnB0ciA+IGN0eHQtPmluICsgWE1MX05BTk9fSFRUUF9DSFVOSykgeworICAgICAgICAgICAgaW50IGRlbHRhID0gY3R4dC0+aW5ycHRyIC0gY3R4dC0+aW47CisgICAgICAgICAgICBpbnQgbGVuID0gY3R4dC0+aW5wdHIgLSBjdHh0LT5pbnJwdHI7CisKKyAgICAgICAgICAgIG1lbW1vdmUoY3R4dC0+aW4sIGN0eHQtPmlucnB0ciwgbGVuKTsKKyAgICAgICAgICAgIGN0eHQtPmlucnB0ciAtPSBkZWx0YTsKKyAgICAgICAgICAgIGN0eHQtPmNvbnRlbnQgLT0gZGVsdGE7CisgICAgICAgICAgICBjdHh0LT5pbnB0ciAtPSBkZWx0YTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGN0eHQtPmluICsgY3R4dC0+aW5sZW4pIDwgKGN0eHQtPmlucHRyICsgWE1MX05BTk9fSFRUUF9DSFVOSykpIHsKKyAgICAgICAgICAgIGludCBkX2lucHRyID0gY3R4dC0+aW5wdHIgLSBjdHh0LT5pbjsKKyAgICAgICAgICAgIGludCBkX2NvbnRlbnQgPSBjdHh0LT5jb250ZW50IC0gY3R4dC0+aW47CisgICAgICAgICAgICBpbnQgZF9pbnJwdHIgPSBjdHh0LT5pbnJwdHIgLSBjdHh0LT5pbjsKKyAgICAgICAgICAgIGNoYXIgKnRtcF9wdHIgPSBjdHh0LT5pbjsKKworICAgICAgICAgICAgY3R4dC0+aW5sZW4gKj0gMjsKKyAgICAgICAgICAgIGN0eHQtPmluID0gKGNoYXIgKikgeG1sUmVhbGxvYyh0bXBfcHRyLCBjdHh0LT5pbmxlbik7CisgICAgICAgICAgICBpZiAoY3R4dC0+aW4gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbEhUVFBFcnJNZW1vcnkoImFsbG9jYXRpbmcgaW5wdXQgYnVmZmVyIik7CisgICAgICAgICAgICAgICAgeG1sRnJlZSh0bXBfcHRyKTsKKyAgICAgICAgICAgICAgICBjdHh0LT5sYXN0ID0gLTE7CisgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdHh0LT5pbnB0ciA9IGN0eHQtPmluICsgZF9pbnB0cjsKKyAgICAgICAgICAgIGN0eHQtPmNvbnRlbnQgPSBjdHh0LT5pbiArIGRfY29udGVudDsKKyAgICAgICAgICAgIGN0eHQtPmlucnB0ciA9IGN0eHQtPmluICsgZF9pbnJwdHI7CisgICAgICAgIH0KKyAgICAgICAgY3R4dC0+bGFzdCA9IHJlY3YoY3R4dC0+ZmQsIGN0eHQtPmlucHRyLCBYTUxfTkFOT19IVFRQX0NIVU5LLCAwKTsKKyAgICAgICAgaWYgKGN0eHQtPmxhc3QgPiAwKSB7CisgICAgICAgICAgICBjdHh0LT5pbnB0ciArPSBjdHh0LT5sYXN0OworICAgICAgICAgICAgcmV0dXJuIChjdHh0LT5sYXN0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY3R4dC0+bGFzdCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9CisgICAgICAgIGlmIChjdHh0LT5sYXN0ID09IC0xKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHNvY2tldF9lcnJubygpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBFSU5QUk9HUkVTUzoKKyAgICAgICAgICAgICAgICBjYXNlIEVXT1VMREJMT0NLOgorI2lmIGRlZmluZWQoRUFHQUlOKSAmJiBFQUdBSU4gIT0gRVdPVUxEQkxPQ0sKKyAgICAgICAgICAgICAgICBjYXNlIEVBR0FJTjoKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgRUNPTk5SRVNFVDoKKyAgICAgICAgICAgICAgICBjYXNlIEVTSFVURE9XTjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwKTsKKworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgInJlY3YgZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNpZmRlZiBIQVZFX1BPTExfSAorICAgICAgICBwLmZkID0gY3R4dC0+ZmQ7CisgICAgICAgIHAuZXZlbnRzID0gUE9MTElOOworICAgICAgICBpZiAoKHBvbGwoJnAsIDEsIHRpbWVvdXQgKiAxMDAwKSA8IDEpCisjaWYgZGVmaW5lZChFSU5UUikKKyAgICAgICAgICAgICYmIChlcnJubyAhPSBFSU5UUikKKyNlbmRpZgorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJuICgwKTsKKyNlbHNlIC8qICFIQVZFX1BPTExfSCAqLworI2lmbmRlZiBfV0lOU09DS0FQSV8KKyAgICAgICAgaWYgKGN0eHQtPmZkID4gRkRfU0VUU0laRSkKKyAgICAgICAgICAgIHJldHVybiAwOworI2VuZGlmCisKKyAgICAgICAgdHYudHZfc2VjID0gdGltZW91dDsKKyAgICAgICAgdHYudHZfdXNlYyA9IDA7CisgICAgICAgIEZEX1pFUk8oJnJmZCk7CisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDAxOCkKKyNlbmRpZgorCisgICAgICAgIEZEX1NFVChjdHh0LT5mZCwgJnJmZCk7CisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisgICAgICAgIGlmICgoc2VsZWN0KGN0eHQtPmZkICsgMSwgJnJmZCwgTlVMTCwgTlVMTCwgJnR2KSA8IDEpCisjaWYgZGVmaW5lZChFSU5UUikKKyAgICAgICAgICAgICYmIChlcnJubyAhPSBFSU5UUikKKyNlbmRpZgorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJuICgwKTsKKyNlbmRpZiAvKiAhSEFWRV9QT0xMX0ggKi8KKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUFJlYWRMaW5lOgorICogQGN0eHQ6ICBhbiBIVFRQIGNvbnRleHQKKyAqCisgKiBSZWFkIG9uZSBsaW5lIGluIHRoZSBIVFRQIHNlcnZlciBvdXRwdXQsIHVzdWFsbHkgZm9yIGV4dHJhY3RpbmcKKyAqIHRoZSBIVFRQIHByb3RvY29sIGluZm9ybWF0aW9ucyBmcm9tIHRoZSBhbnN3ZXIgaGVhZGVyLgorICoKKyAqIFJldHVybnMgYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggYSBjb3B5IG9mIHRoZSBsaW5lLCBvciBOVUxMCisgKiAgICAgICAgIHdoaWNoIGluZGljYXRlIHRoZSBlbmQgb2YgdGhlIGlucHV0LgorICovCisKK3N0YXRpYyBjaGFyICoKK3htbE5hbm9IVFRQUmVhZExpbmUoeG1sTmFub0hUVFBDdHh0UHRyIGN0eHQpIHsKKyAgICBjaGFyIGJ1Zls0MDk2XTsKKyAgICBjaGFyICpicCA9IGJ1ZjsKKyAgICBpbnQJcmM7CisgICAgCisgICAgd2hpbGUgKGJwIC0gYnVmIDwgNDA5NSkgeworCWlmIChjdHh0LT5pbnJwdHIgPT0gY3R4dC0+aW5wdHIpIHsKKwkgICAgaWYgKCAocmMgPSB4bWxOYW5vSFRUUFJlY3YoY3R4dCkpID09IDApIHsKKwkJaWYgKGJwID09IGJ1ZikKKwkJICAgIHJldHVybihOVUxMKTsKKwkJZWxzZQorCQkgICAgKmJwID0gMDsKKwkJcmV0dXJuKHhtbE1lbVN0cmR1cChidWYpKTsKKwkgICAgfQorCSAgICBlbHNlIGlmICggcmMgPT0gLTEgKSB7CisJICAgICAgICByZXR1cm4gKCBOVUxMICk7CisJICAgIH0KKwl9CisJKmJwID0gKmN0eHQtPmlucnB0cisrOworCWlmICgqYnAgPT0gJ1xuJykgeworCSAgICAqYnAgPSAwOworCSAgICByZXR1cm4oeG1sTWVtU3RyZHVwKGJ1ZikpOworCX0KKwlpZiAoKmJwICE9ICdccicpCisJICAgIGJwKys7CisgICAgfQorICAgIGJ1Zls0MDk1XSA9IDA7CisgICAgcmV0dXJuKHhtbE1lbVN0cmR1cChidWYpKTsKK30KKworCisvKioKKyAqIHhtbE5hbm9IVFRQU2NhbkFuc3dlcjoKKyAqIEBjdHh0OiAgYW4gSFRUUCBjb250ZXh0CisgKiBAbGluZTogIGFuIEhUVFAgaGVhZGVyIGxpbmUKKyAqCisgKiBUcnkgdG8gZXh0cmFjdCB1c2VmdWwgaW5mb3JtYXRpb25zIGZyb20gdGhlIHNlcnZlciBhbnN3ZXIuCisgKiBXZSBjdXJyZW50bHkgcGFyc2UgYW5kIHByb2Nlc3M6CisgKiAgLSBUaGUgSFRUUCByZXZpc2lvbi8gcmV0dXJuIGNvZGUKKyAqICAtIFRoZSBDb250ZW50LVR5cGUsIE1pbWUtVHlwZSBhbmQgY2hhcnNldCB1c2VkCisgKiAgLSBUaGUgTG9jYXRpb24gZm9yIHJlZGlyZWN0IHByb2Nlc3NpbmcuCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIHRoZSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyIG90aGVyd2lzZQorICovCisKK3N0YXRpYyB2b2lkCit4bWxOYW5vSFRUUFNjYW5BbnN3ZXIoeG1sTmFub0hUVFBDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmxpbmUpIHsKKyAgICBjb25zdCBjaGFyICpjdXIgPSBsaW5lOworCisgICAgaWYgKGxpbmUgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKCFzdHJuY21wKGxpbmUsICJIVFRQLyIsIDUpKSB7CisgICAgICAgIGludCB2ZXJzaW9uID0gMDsKKwlpbnQgcmV0ID0gMDsKKworCWN1ciArPSA1OworCXdoaWxlICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpIHsKKwkgICAgdmVyc2lvbiAqPSAxMDsKKwkgICAgdmVyc2lvbiArPSAqY3VyIC0gJzAnOworCSAgICBjdXIrKzsKKwl9CisJaWYgKCpjdXIgPT0gJy4nKSB7CisJICAgIGN1cisrOworCSAgICBpZiAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CisJCXZlcnNpb24gKj0gMTA7CisJCXZlcnNpb24gKz0gKmN1ciAtICcwJzsKKwkJY3VyKys7CisJICAgIH0KKwkgICAgd2hpbGUgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkKKwkJY3VyKys7CisJfSBlbHNlCisJICAgIHZlcnNpb24gKj0gMTA7CisJaWYgKCgqY3VyICE9ICcgJykgJiYgKCpjdXIgIT0gJ1x0JykpIHJldHVybjsKKwl3aGlsZSAoKCpjdXIgPT0gJyAnKSB8fCAoKmN1ciA9PSAnXHQnKSkgY3VyKys7CisJaWYgKCgqY3VyIDwgJzAnKSB8fCAoKmN1ciA+ICc5JykpIHJldHVybjsKKwl3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CisJICAgIHJldCAqPSAxMDsKKwkgICAgcmV0ICs9ICpjdXIgLSAnMCc7CisJICAgIGN1cisrOworCX0KKwlpZiAoKCpjdXIgIT0gMCkgJiYgKCpjdXIgIT0gJyAnKSAmJiAoKmN1ciAhPSAnXHQnKSkgcmV0dXJuOworCWN0eHQtPnJldHVyblZhbHVlID0gcmV0OworICAgICAgICBjdHh0LT52ZXJzaW9uID0gdmVyc2lvbjsKKyAgICB9IGVsc2UgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBsaW5lLCBCQURfQ0FTVCJDb250ZW50LVR5cGU6IiwgMTMpKSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIgKmNoYXJzZXQsICpsYXN0LCAqbWltZTsKKyAgICAgICAgY3VyICs9IDEzOworCXdoaWxlICgoKmN1ciA9PSAnICcpIHx8ICgqY3VyID09ICdcdCcpKSBjdXIrKzsKKwlpZiAoY3R4dC0+Y29udGVudFR5cGUgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShjdHh0LT5jb250ZW50VHlwZSk7CisJY3R4dC0+Y29udGVudFR5cGUgPSB4bWxNZW1TdHJkdXAoY3VyKTsKKwltaW1lID0gKGNvbnN0IHhtbENoYXIgKikgY3VyOworCWxhc3QgPSBtaW1lOworCXdoaWxlICgoKmxhc3QgIT0gMCkgJiYgKCpsYXN0ICE9ICcgJykgJiYgKCpsYXN0ICE9ICdcdCcpICYmCisJICAgICAgICgqbGFzdCAhPSAnOycpICYmICgqbGFzdCAhPSAnLCcpKQorCSAgICBsYXN0Kys7CisJaWYgKGN0eHQtPm1pbWVUeXBlICE9IE5VTEwpCisJICAgIHhtbEZyZWUoY3R4dC0+bWltZVR5cGUpOworCWN0eHQtPm1pbWVUeXBlID0gKGNoYXIgKikgeG1sU3RybmR1cChtaW1lLCBsYXN0IC0gbWltZSk7CisJY2hhcnNldCA9IHhtbFN0cnN0cihCQURfQ0FTVCBjdHh0LT5jb250ZW50VHlwZSwgQkFEX0NBU1QgImNoYXJzZXQ9Iik7CisJaWYgKGNoYXJzZXQgIT0gTlVMTCkgeworCSAgICBjaGFyc2V0ICs9IDg7CisJICAgIGxhc3QgPSBjaGFyc2V0OworCSAgICB3aGlsZSAoKCpsYXN0ICE9IDApICYmICgqbGFzdCAhPSAnICcpICYmICgqbGFzdCAhPSAnXHQnKSAmJgorCSAgICAgICAgICAgKCpsYXN0ICE9ICc7JykgJiYgKCpsYXN0ICE9ICcsJykpCisJCWxhc3QrKzsKKwkgICAgaWYgKGN0eHQtPmVuY29kaW5nICE9IE5VTEwpCisJICAgICAgICB4bWxGcmVlKGN0eHQtPmVuY29kaW5nKTsKKwkgICAgY3R4dC0+ZW5jb2RpbmcgPSAoY2hhciAqKSB4bWxTdHJuZHVwKGNoYXJzZXQsIGxhc3QgLSBjaGFyc2V0KTsKKwl9CisgICAgfSBlbHNlIGlmICgheG1sU3RybmNhc2VjbXAoQkFEX0NBU1QgbGluZSwgQkFEX0NBU1QiQ29udGVudFR5cGU6IiwgMTIpKSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIgKmNoYXJzZXQsICpsYXN0LCAqbWltZTsKKyAgICAgICAgY3VyICs9IDEyOworCWlmIChjdHh0LT5jb250ZW50VHlwZSAhPSBOVUxMKSByZXR1cm47CisJd2hpbGUgKCgqY3VyID09ICcgJykgfHwgKCpjdXIgPT0gJ1x0JykpIGN1cisrOworCWN0eHQtPmNvbnRlbnRUeXBlID0geG1sTWVtU3RyZHVwKGN1cik7CisJbWltZSA9IChjb25zdCB4bWxDaGFyICopIGN1cjsKKwlsYXN0ID0gbWltZTsKKwl3aGlsZSAoKCpsYXN0ICE9IDApICYmICgqbGFzdCAhPSAnICcpICYmICgqbGFzdCAhPSAnXHQnKSAmJgorCSAgICAgICAoKmxhc3QgIT0gJzsnKSAmJiAoKmxhc3QgIT0gJywnKSkKKwkgICAgbGFzdCsrOworCWlmIChjdHh0LT5taW1lVHlwZSAhPSBOVUxMKQorCSAgICB4bWxGcmVlKGN0eHQtPm1pbWVUeXBlKTsKKwljdHh0LT5taW1lVHlwZSA9IChjaGFyICopIHhtbFN0cm5kdXAobWltZSwgbGFzdCAtIG1pbWUpOworCWNoYXJzZXQgPSB4bWxTdHJzdHIoQkFEX0NBU1QgY3R4dC0+Y29udGVudFR5cGUsIEJBRF9DQVNUICJjaGFyc2V0PSIpOworCWlmIChjaGFyc2V0ICE9IE5VTEwpIHsKKwkgICAgY2hhcnNldCArPSA4OworCSAgICBsYXN0ID0gY2hhcnNldDsKKwkgICAgd2hpbGUgKCgqbGFzdCAhPSAwKSAmJiAoKmxhc3QgIT0gJyAnKSAmJiAoKmxhc3QgIT0gJ1x0JykgJiYKKwkgICAgICAgICAgICgqbGFzdCAhPSAnOycpICYmICgqbGFzdCAhPSAnLCcpKQorCQlsYXN0Kys7CisJICAgIGlmIChjdHh0LT5lbmNvZGluZyAhPSBOVUxMKQorCSAgICAgICAgeG1sRnJlZShjdHh0LT5lbmNvZGluZyk7CisJICAgIGN0eHQtPmVuY29kaW5nID0gKGNoYXIgKikgeG1sU3RybmR1cChjaGFyc2V0LCBsYXN0IC0gY2hhcnNldCk7CisJfQorICAgIH0gZWxzZSBpZiAoIXhtbFN0cm5jYXNlY21wKEJBRF9DQVNUIGxpbmUsIEJBRF9DQVNUIkxvY2F0aW9uOiIsIDkpKSB7CisgICAgICAgIGN1ciArPSA5OworCXdoaWxlICgoKmN1ciA9PSAnICcpIHx8ICgqY3VyID09ICdcdCcpKSBjdXIrKzsKKwlpZiAoY3R4dC0+bG9jYXRpb24gIT0gTlVMTCkKKwkgICAgeG1sRnJlZShjdHh0LT5sb2NhdGlvbik7CisJaWYgKCpjdXIgPT0gJy8nKSB7CisJICAgIHhtbENoYXIgKnRtcF9odHRwID0geG1sU3RyZHVwKEJBRF9DQVNUICJodHRwOi8vIik7CisJICAgIHhtbENoYXIgKnRtcF9sb2MgPSAKKwkgICAgICAgIHhtbFN0cmNhdCh0bXBfaHR0cCwgKGNvbnN0IHhtbENoYXIgKikgY3R4dC0+aG9zdG5hbWUpOworCSAgICBjdHh0LT5sb2NhdGlvbiA9IAorCSAgICAgICAgKGNoYXIgKikgeG1sU3RyY2F0ICh0bXBfbG9jLCAoY29uc3QgeG1sQ2hhciAqKSBjdXIpOworCX0gZWxzZSB7CisJICAgIGN0eHQtPmxvY2F0aW9uID0geG1sTWVtU3RyZHVwKGN1cik7CisJfQorICAgIH0gZWxzZSBpZiAoIXhtbFN0cm5jYXNlY21wKEJBRF9DQVNUIGxpbmUsIEJBRF9DQVNUIldXVy1BdXRoZW50aWNhdGU6IiwgMTcpKSB7CisgICAgICAgIGN1ciArPSAxNzsKKwl3aGlsZSAoKCpjdXIgPT0gJyAnKSB8fCAoKmN1ciA9PSAnXHQnKSkgY3VyKys7CisJaWYgKGN0eHQtPmF1dGhIZWFkZXIgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShjdHh0LT5hdXRoSGVhZGVyKTsKKwljdHh0LT5hdXRoSGVhZGVyID0geG1sTWVtU3RyZHVwKGN1cik7CisgICAgfSBlbHNlIGlmICgheG1sU3RybmNhc2VjbXAoQkFEX0NBU1QgbGluZSwgQkFEX0NBU1QiUHJveHktQXV0aGVudGljYXRlOiIsIDE5KSkgeworICAgICAgICBjdXIgKz0gMTk7CisJd2hpbGUgKCgqY3VyID09ICcgJykgfHwgKCpjdXIgPT0gJ1x0JykpIGN1cisrOworCWlmIChjdHh0LT5hdXRoSGVhZGVyICE9IE5VTEwpCisJICAgIHhtbEZyZWUoY3R4dC0+YXV0aEhlYWRlcik7CisJY3R4dC0+YXV0aEhlYWRlciA9IHhtbE1lbVN0cmR1cChjdXIpOworI2lmZGVmIEhBVkVfWkxJQl9ICisgICAgfSBlbHNlIGlmICggIXhtbFN0cm5jYXNlY21wKCBCQURfQ0FTVCBsaW5lLCBCQURfQ0FTVCJDb250ZW50LUVuY29kaW5nOiIsIDE3KSApIHsKKwljdXIgKz0gMTc7CisJd2hpbGUgKCgqY3VyID09ICcgJykgfHwgKCpjdXIgPT0gJ1x0JykpIGN1cisrOworCWlmICggIXhtbFN0cm5jYXNlY21wKCBCQURfQ0FTVCBjdXIsIEJBRF9DQVNUImd6aXAiLCA0KSApIHsKKwkgICAgY3R4dC0+dXNlc0d6aXAgPSAxOworCisJICAgIGN0eHQtPnN0cm0gPSB4bWxNYWxsb2Moc2l6ZW9mKHpfc3RyZWFtKSk7CisKKwkgICAgaWYgKGN0eHQtPnN0cm0gIT0gTlVMTCkgeworCQljdHh0LT5zdHJtLT56YWxsb2MgPSBaX05VTEw7CisJCWN0eHQtPnN0cm0tPnpmcmVlID0gWl9OVUxMOworCQljdHh0LT5zdHJtLT5vcGFxdWUgPSBaX05VTEw7CisJCWN0eHQtPnN0cm0tPmF2YWlsX2luID0gMDsKKwkJY3R4dC0+c3RybS0+bmV4dF9pbiA9IFpfTlVMTDsKKworCQlpbmZsYXRlSW5pdDIoIGN0eHQtPnN0cm0sIDMxICk7CisJICAgIH0KKwl9CisjZW5kaWYKKyAgICB9IGVsc2UgaWYgKCAheG1sU3RybmNhc2VjbXAoIEJBRF9DQVNUIGxpbmUsIEJBRF9DQVNUIkNvbnRlbnQtTGVuZ3RoOiIsIDE1KSApIHsKKwljdXIgKz0gMTU7CisJY3R4dC0+Q29udGVudExlbmd0aCA9IHN0cnRvbCggY3VyLCBOVUxMLCAxMCApOworICAgIH0KK30KKworLyoqCisgKiB4bWxOYW5vSFRUUENvbm5lY3RBdHRlbXB0OgorICogQGFkZHI6ICBhIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQorICoKKyAqIEF0dGVtcHQgYSBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbiBJUDpwb3J0IGVuZHBvaW50LiBJdCBmb3JjZXMKKyAqIG5vbi1ibG9ja2luZyBzZW1hbnRpYyBvbiB0aGUgc29ja2V0LCBhbmQgYWxsb3cgNjAgc2Vjb25kcyBmb3IKKyAqIHRoZSBob3N0IHRvIGFuc3dlci4KKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgdGhlIGZpbGUgZGVzY3JpcHRvciBudW1iZXIgb3RoZXJ3aXNlCisgKi8KKworc3RhdGljIGludAoreG1sTmFub0hUVFBDb25uZWN0QXR0ZW1wdChzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIpCit7CisjaWZuZGVmIEhBVkVfUE9MTF9ICisgICAgZmRfc2V0IHdmZDsKKyNpZmRlZiBfV0lOU09DS0FQSV8KKyAgICBmZF9zZXQgeGZkOworI2VuZGlmCisgICAgc3RydWN0IHRpbWV2YWwgdHY7CisjZWxzZSAvKiAhSEFWRV9QT0xMX0ggKi8KKyAgICBzdHJ1Y3QgcG9sbGZkIHA7CisjZW5kaWYgLyogIUhBVkVfUE9MTF9IICovCisgICAgaW50IHN0YXR1czsKKworICAgIGludCBhZGRybGVuOworCisgICAgU09DS0VUIHM7CisKKyNpZmRlZiBTVVBQT1JUX0lQNgorICAgIGlmIChhZGRyLT5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKKyAgICAgICAgcyA9IHNvY2tldChQRl9JTkVUNiwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKTsKKyAgICAgICAgYWRkcmxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKyAgICAgICAgcyA9IHNvY2tldChQRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOworICAgICAgICBhZGRybGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbik7CisgICAgfQorICAgIGlmIChzID09IC0xKSB7CisjaWZkZWYgREVCVUdfSFRUUAorICAgICAgICBwZXJyb3IoInNvY2tldCIpOworI2VuZGlmCisgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgInNvY2tldCBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisjaWZkZWYgX1dJTlNPQ0tBUElfCisgICAgeworICAgICAgICB1X2xvbmcgb25lID0gMTsKKworICAgICAgICBzdGF0dXMgPSBpb2N0bHNvY2tldChzLCBGSU9OQklPLCAmb25lKSA9PSBTT0NLRVRfRVJST1IgPyAtMSA6IDA7CisgICAgfQorI2Vsc2UgLyogX1dJTlNPQ0tBUElfICovCisjaWYgZGVmaW5lZChWTVMpCisgICAgeworICAgICAgICBpbnQgZW5hYmxlID0gMTsKKworICAgICAgICBzdGF0dXMgPSBpb2N0bChzLCBGSU9OQklPLCAmZW5hYmxlKTsKKyAgICB9CisjZWxzZSAvKiBWTVMgKi8KKyNpZiBkZWZpbmVkKF9fQkVPU19fKSAmJiAhZGVmaW5lZChfX0hBSUtVX18pCisgICAgeworICAgICAgICBib29sIG5vYmxvY2sgPSB0cnVlOworCisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBzZXRzb2Nrb3B0KHMsIFNPTF9TT0NLRVQsIFNPX05PTkJMT0NLLCAmbm9ibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKG5vYmxvY2spKTsKKyAgICB9CisjZWxzZSAvKiBfX0JFT1NfXyAqLworICAgIGlmICgoc3RhdHVzID0gZmNudGwocywgRl9HRVRGTCwgMCkpICE9IC0xKSB7CisjaWZkZWYgT19OT05CTE9DSworICAgICAgICBzdGF0dXMgfD0gT19OT05CTE9DSzsKKyNlbHNlIC8qIE9fTk9OQkxPQ0sgKi8KKyNpZmRlZiBGX05ERUxBWQorICAgICAgICBzdGF0dXMgfD0gRl9OREVMQVk7CisjZW5kaWYgLyogRl9OREVMQVkgKi8KKyNlbmRpZiAvKiAhT19OT05CTE9DSyAqLworICAgICAgICBzdGF0dXMgPSBmY250bChzLCBGX1NFVEZMLCBzdGF0dXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzIDwgMCkgeworI2lmZGVmIERFQlVHX0hUVFAKKyAgICAgICAgcGVycm9yKCJub25ibG9ja2luZyIpOworI2VuZGlmCisgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgImVycm9yIHNldHRpbmcgbm9uLWJsb2NraW5nIElPXG4iKTsKKyAgICAgICAgY2xvc2Vzb2NrZXQocyk7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyNlbmRpZiAvKiAhX19CRU9TX18gKi8KKyNlbmRpZiAvKiAhVk1TICovCisjZW5kaWYgLyogIV9XSU5TT0NLQVBJXyAqLworCisgICAgaWYgKGNvbm5lY3QocywgYWRkciwgYWRkcmxlbikgPT0gLTEpIHsKKyAgICAgICAgc3dpdGNoIChzb2NrZXRfZXJybm8oKSkgeworICAgICAgICAgICAgY2FzZSBFSU5QUk9HUkVTUzoKKyAgICAgICAgICAgIGNhc2UgRVdPVUxEQkxPQ0s6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciBjb25uZWN0aW5nIHRvIEhUVFAgc2VydmVyIik7CisgICAgICAgICAgICAgICAgY2xvc2Vzb2NrZXQocyk7CisgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICB9CisjaWZuZGVmIEhBVkVfUE9MTF9ICisgICAgdHYudHZfc2VjID0gdGltZW91dDsKKyAgICB0di50dl91c2VjID0gMDsKKworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MDE4KQorI2VuZGlmCisjaWZuZGVmIF9XSU5TT0NLQVBJXworICAgIGlmIChzID4gRkRfU0VUU0laRSkKKyAgICAgICAgcmV0dXJuIC0xOworI2VuZGlmCisgICAgRkRfWkVSTygmd2ZkKTsKKyAgICBGRF9TRVQocywgJndmZCk7CisKKyNpZmRlZiBfV0lOU09DS0FQSV8KKyAgICBGRF9aRVJPKCZ4ZmQpOworICAgIEZEX1NFVChzLCAmeGZkKTsKKworICAgIHN3aXRjaCAoc2VsZWN0KHMgKyAxLCBOVUxMLCAmd2ZkLCAmeGZkLCAmdHYpKQorI2Vsc2UKKyAgICBzd2l0Y2ggKHNlbGVjdChzICsgMSwgTlVMTCwgJndmZCwgTlVMTCwgJnR2KSkKKyNlbmRpZgorI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKyNlbHNlIC8qICFIQVZFX1BPTExfSCAqLworICAgIHAuZmQgPSBzOworICAgIHAuZXZlbnRzID0gUE9MTE9VVDsKKyAgICBzd2l0Y2ggKHBvbGwoJnAsIDEsIHRpbWVvdXQgKiAxMDAwKSkKKyNlbmRpZiAvKiAhSEFWRV9QT0xMX0ggKi8KKworICAgIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgLyogVGltZSBvdXQgKi8KKyAgICAgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgIkNvbm5lY3QgYXR0ZW1wdCB0aW1lZCBvdXQiKTsKKyAgICAgICAgICAgIGNsb3Nlc29ja2V0KHMpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIGNhc2UgLTE6CisgICAgICAgICAgICAvKiBFcm1tLi4gPz8gKi8KKyAgICAgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgIkNvbm5lY3QgZmFpbGVkIik7CisgICAgICAgICAgICBjbG9zZXNvY2tldChzKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKworI2lmbmRlZiBIQVZFX1BPTExfSAorICAgIGlmIChGRF9JU1NFVChzLCAmd2ZkKQorI2lmZGVmIF9XSU5TT0NLQVBJXworICAgICAgICB8fCBGRF9JU1NFVChzLCAmeGZkKQorI2VuZGlmCisgICAgICAgICkKKyNlbHNlIC8qICFIQVZFX1BPTExfSCAqLworICAgIGlmIChwLnJldmVudHMgPT0gUE9MTE9VVCkKKyNlbmRpZiAvKiAhSEFWRV9QT0xMX0ggKi8KKyAgICB7CisgICAgICAgIFhNTF9TT0NLTEVOX1QgbGVuOworCisgICAgICAgIGxlbiA9IHNpemVvZihzdGF0dXMpOworI2lmZGVmIFNPX0VSUk9SCisgICAgICAgIGlmIChnZXRzb2Nrb3B0KHMsIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAmc3RhdHVzLCAmbGVuKSA8CisgICAgICAgICAgICAwKSB7CisgICAgICAgICAgICAvKiBTb2xhcmlzIGVycm9yIGNvZGUgKi8KKyAgICAgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgImdldHNvY2tvcHQgZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgaWYgKHN0YXR1cykgeworICAgICAgICAgICAgX194bWxJT0VycihYTUxfRlJPTV9IVFRQLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgY29ubmVjdGluZyB0byByZW1vdGUgaG9zdCIpOworICAgICAgICAgICAgY2xvc2Vzb2NrZXQocyk7CisgICAgICAgICAgICBlcnJubyA9IHN0YXR1czsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyogcGJtICovCisgICAgICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgInNlbGVjdCBmYWlsZWRcbiIpOworICAgICAgICBjbG9zZXNvY2tldChzKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgcmV0dXJuIChzKTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUENvbm5lY3RIb3N0OgorICogQGhvc3Q6ICB0aGUgaG9zdCBuYW1lCisgKiBAcG9ydDogIHRoZSBwb3J0IG51bWJlcgorICoKKyAqIEF0dGVtcHQgYSBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbiBob3N0OnBvcnQgZW5kcG9pbnQuIEl0IHRyaWVzCisgKiB0aGUgbXVsdGlwbGUgSVAgcHJvdmlkZWQgYnkgdGhlIEROUyBpZiBhdmFpbGFibGUuCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIHRoZSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyIG90aGVyd2lzZQorICovCisKK3N0YXRpYyBpbnQKK3htbE5hbm9IVFRQQ29ubmVjdEhvc3QoY29uc3QgY2hhciAqaG9zdCwgaW50IHBvcnQpCit7CisgICAgc3RydWN0IGhvc3RlbnQgKmg7CisgICAgc3RydWN0IHNvY2thZGRyICphZGRyID0gTlVMTDsKKyAgICBzdHJ1Y3QgaW5fYWRkciBpYTsKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2luOworCisjaWZkZWYgU1VQUE9SVF9JUDYKKyAgICBzdHJ1Y3QgaW42X2FkZHIgaWE2OworICAgIHN0cnVjdCBzb2NrYWRkcl9pbjYgc29ja2luNjsKKyNlbmRpZgorICAgIGludCBpOworICAgIGludCBzOworCisgICAgbWVtc2V0ICgmc29ja2luLCAwLCBzaXplb2Yoc29ja2luKSk7CisjaWZkZWYgU1VQUE9SVF9JUDYKKyAgICBtZW1zZXQgKCZzb2NraW42LCAwLCBzaXplb2Yoc29ja2luNikpOworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChIQVZFX0dFVEFERFJJTkZPKSAmJiBkZWZpbmVkKFNVUFBPUlRfSVA2KSAmJiBkZWZpbmVkKFJFU19VU0VfSU5FVDYpCisgICAgaWYgKGhhdmVfaXB2NiAoKSkKKyAgICB7CisJaWYgKCEoX3Jlcy5vcHRpb25zICYgUkVTX0lOSVQpKQorCSAgICByZXNfaW5pdCgpOworCV9yZXMub3B0aW9ucyB8PSBSRVNfVVNFX0lORVQ2OworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChIQVZFX0dFVEFERFJJTkZPKSAmJiBkZWZpbmVkKFNVUFBPUlRfSVA2KSAmJiAhZGVmaW5lZChfV0lOMzIpCisgICAgaWYgKGhhdmVfaXB2NiAoKSkKKyNlbmRpZgorI2lmIGRlZmluZWQoSEFWRV9HRVRBRERSSU5GTykgJiYgKGRlZmluZWQoU1VQUE9SVF9JUDYpIHx8IGRlZmluZWQoX1dJTjMyKSkKKyAgICB7CisJaW50IHN0YXR1czsKKwlzdHJ1Y3QgYWRkcmluZm8gaGludHMsICpyZXMsICpyZXN1bHQ7CisKKwlyZXN1bHQgPSBOVUxMOworCW1lbXNldCAoJmhpbnRzLCAwLHNpemVvZihoaW50cykpOworCWhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07CisKKwlzdGF0dXMgPSBnZXRhZGRyaW5mbyAoaG9zdCwgTlVMTCwgJmhpbnRzLCAmcmVzdWx0KTsKKwlpZiAoc3RhdHVzKSB7CisJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgImdldGFkZHJpbmZvIGZhaWxlZFxuIik7CisJICAgIHJldHVybiAoLTEpOworCX0KKworCWZvciAocmVzID0gcmVzdWx0OyByZXM7IHJlcyA9IHJlcy0+YWlfbmV4dCkgeworCSAgICBpZiAocmVzLT5haV9mYW1pbHkgPT0gQUZfSU5FVCkgeworCQlpZiAocmVzLT5haV9hZGRybGVuID4gc2l6ZW9mKHNvY2tpbikpIHsKKwkJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgImFkZHJlc3Mgc2l6ZSBtaXNtYXRjaFxuIik7CisJCSAgICBmcmVlYWRkcmluZm8gKHJlc3VsdCk7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCQltZW1jcHkgKCZzb2NraW4sIHJlcy0+YWlfYWRkciwgcmVzLT5haV9hZGRybGVuKTsKKwkJc29ja2luLnNpbl9wb3J0ID0gaHRvbnMgKHBvcnQpOworCQlhZGRyID0gKHN0cnVjdCBzb2NrYWRkciAqKSZzb2NraW47CisjaWZkZWYgU1VQUE9SVF9JUDYKKwkgICAgfSBlbHNlIGlmIChoYXZlX2lwdjYgKCkgJiYgKHJlcy0+YWlfZmFtaWx5ID09IEFGX0lORVQ2KSkgeworCQlpZiAocmVzLT5haV9hZGRybGVuID4gc2l6ZW9mKHNvY2tpbjYpKSB7CisJCSAgICBfX3htbElPRXJyKFhNTF9GUk9NX0hUVFAsIDAsICJhZGRyZXNzIHNpemUgbWlzbWF0Y2hcbiIpOworCQkgICAgZnJlZWFkZHJpbmZvIChyZXN1bHQpOworCQkgICAgcmV0dXJuICgtMSk7CisJCX0KKwkJbWVtY3B5ICgmc29ja2luNiwgcmVzLT5haV9hZGRyLCByZXMtPmFpX2FkZHJsZW4pOworCQlzb2NraW42LnNpbjZfcG9ydCA9IGh0b25zIChwb3J0KTsKKwkJYWRkciA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmc29ja2luNjsKKyNlbmRpZgorCSAgICB9IGVsc2UKKwkJY29udGludWU7ICAgICAgICAgICAgICAvKiBmb3IgKi8KKworCSAgICBzID0geG1sTmFub0hUVFBDb25uZWN0QXR0ZW1wdCAoYWRkcik7CisJICAgIGlmIChzICE9IC0xKSB7CisJCWZyZWVhZGRyaW5mbyAocmVzdWx0KTsKKwkJcmV0dXJuIChzKTsKKwkgICAgfQorCX0KKworCWlmIChyZXN1bHQpCisJICAgIGZyZWVhZGRyaW5mbyAocmVzdWx0KTsKKyAgICB9CisjZW5kaWYKKyNpZiBkZWZpbmVkKEhBVkVfR0VUQUREUklORk8pICYmIGRlZmluZWQoU1VQUE9SVF9JUDYpICYmICFkZWZpbmVkKF9XSU4zMikKKyAgICBlbHNlCisjZW5kaWYKKyNpZiAhZGVmaW5lZChIQVZFX0dFVEFERFJJTkZPKSB8fCAhZGVmaW5lZChfV0lOMzIpCisgICAgeworCWggPSBnZXRob3N0YnluYW1lIChob3N0KTsKKwlpZiAoaCA9PSBOVUxMKSB7CisKKy8qCisgKiBPa2F5LCBJIGdvdCBmZWQgdXAgYnkgdGhlIG5vbi1wb3J0YWJpbGl0eSBvZiB0aGlzIGVycm9yIG1lc3NhZ2UKKyAqIGV4dHJhY3Rpb24gY29kZS4gaXQgd29yayBvbiBMaW51eCwgaWYgaXQgd29yayBvbiB5b3VyIHBsYXRmb3JtCisgKiBhbmQgb25lIHdhbnQgdG8gZW5hYmxlIGl0LCBzZW5kIG1lIHRoZSBkZWZpbmVkKGZvb2JhcikgbmVlZGVkCisgKi8KKyNpZiBkZWZpbmVkKEhBVkVfTkVUREJfSCkgJiYgZGVmaW5lZChIT1NUX05PVF9GT1VORCkgJiYgZGVmaW5lZChsaW51eCkKKwkgICAgY29uc3QgY2hhciAqaF9lcnJfdHh0ID0gIiI7CisKKwkgICAgc3dpdGNoIChoX2Vycm5vKSB7CisJCWNhc2UgSE9TVF9OT1RfRk9VTkQ6CisJCSAgICBoX2Vycl90eHQgPSAiQXV0aG9yaXRpdmUgaG9zdCBub3QgZm91bmQiOworCQkgICAgYnJlYWs7CisKKwkJY2FzZSBUUllfQUdBSU46CisJCSAgICBoX2Vycl90eHQgPQorCQkJIk5vbi1hdXRob3JpdGl2ZSBob3N0IG5vdCBmb3VuZCBvciBzZXJ2ZXIgZmFpbHVyZS4iOworCQkgICAgYnJlYWs7CisKKwkJY2FzZSBOT19SRUNPVkVSWToKKwkJICAgIGhfZXJyX3R4dCA9CisJCQkiTm9uLXJlY292ZXJhYmxlIGVycm9yczogIEZPUk1FUlIsIFJFRlVTRUQsIG9yIE5PVElNUC4iOworCQkgICAgYnJlYWs7CisKKwkJY2FzZSBOT19BRERSRVNTOgorCQkgICAgaF9lcnJfdHh0ID0KKwkJCSJWYWxpZCBuYW1lLCBubyBkYXRhIHJlY29yZCBvZiByZXF1ZXN0ZWQgdHlwZS4iOworCQkgICAgYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJICAgIGhfZXJyX3R4dCA9ICJObyBlcnJvciB0ZXh0IGRlZmluZWQuIjsKKwkJICAgIGJyZWFrOworCSAgICB9CisJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgaF9lcnJfdHh0KTsKKyNlbHNlCisJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgIkZhaWxlZCB0byByZXNvbHZlIGhvc3QiKTsKKyNlbmRpZgorCSAgICByZXR1cm4gKC0xKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBoLT5oX2FkZHJfbGlzdFtpXTsgaSsrKSB7CisJICAgIGlmIChoLT5oX2FkZHJ0eXBlID09IEFGX0lORVQpIHsKKwkJLyogQSByZWNvcmRzIChJUHY0KSAqLworCQlpZiAoKHVuc2lnbmVkIGludCkgaC0+aF9sZW5ndGggPiBzaXplb2YoaWEpKSB7CisJCSAgICBfX3htbElPRXJyKFhNTF9GUk9NX0hUVFAsIDAsICJhZGRyZXNzIHNpemUgbWlzbWF0Y2hcbiIpOworCQkgICAgcmV0dXJuICgtMSk7CisJCX0KKwkJbWVtY3B5ICgmaWEsIGgtPmhfYWRkcl9saXN0W2ldLCBoLT5oX2xlbmd0aCk7CisJCXNvY2tpbi5zaW5fZmFtaWx5ID0gaC0+aF9hZGRydHlwZTsKKwkJc29ja2luLnNpbl9hZGRyID0gaWE7CisJCXNvY2tpbi5zaW5fcG9ydCA9ICh1X3Nob3J0KWh0b25zICgodW5zaWduZWQgc2hvcnQpcG9ydCk7CisJCWFkZHIgPSAoc3RydWN0IHNvY2thZGRyICopICZzb2NraW47CisjaWZkZWYgU1VQUE9SVF9JUDYKKwkgICAgfSBlbHNlIGlmIChoYXZlX2lwdjYgKCkgJiYgKGgtPmhfYWRkcnR5cGUgPT0gQUZfSU5FVDYpKSB7CisJCS8qIEFBQUEgcmVjb3JkcyAoSVB2NikgKi8KKwkJaWYgKCh1bnNpZ25lZCBpbnQpIGgtPmhfbGVuZ3RoID4gc2l6ZW9mKGlhNikpIHsKKwkJICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgMCwgImFkZHJlc3Mgc2l6ZSBtaXNtYXRjaFxuIik7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCQltZW1jcHkgKCZpYTYsIGgtPmhfYWRkcl9saXN0W2ldLCBoLT5oX2xlbmd0aCk7CisJCXNvY2tpbjYuc2luNl9mYW1pbHkgPSBoLT5oX2FkZHJ0eXBlOworCQlzb2NraW42LnNpbjZfYWRkciA9IGlhNjsKKwkJc29ja2luNi5zaW42X3BvcnQgPSBodG9ucyAocG9ydCk7CisJCWFkZHIgPSAoc3RydWN0IHNvY2thZGRyICopICZzb2NraW42OworI2VuZGlmCisJICAgIH0gZWxzZQorCQlicmVhazsgICAgICAgICAgICAgIC8qIGZvciAqLworCisJICAgIHMgPSB4bWxOYW5vSFRUUENvbm5lY3RBdHRlbXB0IChhZGRyKTsKKwkgICAgaWYgKHMgIT0gLTEpCisJCXJldHVybiAocyk7CisJfQorICAgIH0KKyNlbmRpZgorCisjaWZkZWYgREVCVUdfSFRUUAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAieG1sTmFub0hUVFBDb25uZWN0SG9zdDogIHVuYWJsZSB0byBjb25uZWN0IHRvICclcycuXG4iLAorICAgICAgICAgICAgICAgICAgICBob3N0KTsKKyNlbmRpZgorICAgIHJldHVybiAoLTEpOworfQorCisKKy8qKgorICogeG1sTmFub0hUVFBPcGVuOgorICogQFVSTDogIFRoZSBVUkwgdG8gbG9hZAorICogQGNvbnRlbnRUeXBlOiAgaWYgYXZhaWxhYmxlIHRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gd2lsbCBiZQorICogICAgICAgICAgICAgICAgcmV0dXJuZWQgYXQgdGhhdCBsb2NhdGlvbgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdHJ5IHRvIG9wZW4gYSBjb25uZWN0aW9uIHRvIHRoZSBpbmRpY2F0ZWQgcmVzb3VyY2UKKyAqIHZpYSBIVFRQIEdFVC4KKyAqCisgKiBSZXR1cm5zIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLCBvdGhlcndpc2UgYSByZXF1ZXN0IGhhbmRsZXIuCisgKiAgICAgVGhlIGNvbnRlbnRUeXBlLCBpZiBwcm92aWRlZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIKKyAqLworCit2b2lkKgoreG1sTmFub0hUVFBPcGVuKGNvbnN0IGNoYXIgKlVSTCwgY2hhciAqKmNvbnRlbnRUeXBlKSB7CisgICAgaWYgKGNvbnRlbnRUeXBlICE9IE5VTEwpICpjb250ZW50VHlwZSA9IE5VTEw7CisgICAgcmV0dXJuKHhtbE5hbm9IVFRQTWV0aG9kKFVSTCwgTlVMTCwgTlVMTCwgY29udGVudFR5cGUsIE5VTEwsIDApKTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUE9wZW5SZWRpcjoKKyAqIEBVUkw6ICBUaGUgVVJMIHRvIGxvYWQKKyAqIEBjb250ZW50VHlwZTogIGlmIGF2YWlsYWJsZSB0aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgIHJldHVybmVkIGF0IHRoYXQgbG9jYXRpb24KKyAqIEByZWRpcjogaWYgYXZhaWxhYmxlIHRoZSByZWRpcmVjdGVkIFVSTCB3aWxsIGJlIHJldHVybmVkCisgKgorICogVGhpcyBmdW5jdGlvbiB0cnkgdG8gb3BlbiBhIGNvbm5lY3Rpb24gdG8gdGhlIGluZGljYXRlZCByZXNvdXJjZQorICogdmlhIEhUVFAgR0VULgorICoKKyAqIFJldHVybnMgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUsIG90aGVyd2lzZSBhIHJlcXVlc3QgaGFuZGxlci4KKyAqICAgICBUaGUgY29udGVudFR5cGUsIGlmIHByb3ZpZGVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlcgorICovCisKK3ZvaWQqCit4bWxOYW5vSFRUUE9wZW5SZWRpcihjb25zdCBjaGFyICpVUkwsIGNoYXIgKipjb250ZW50VHlwZSwgY2hhciAqKnJlZGlyKSB7CisgICAgaWYgKGNvbnRlbnRUeXBlICE9IE5VTEwpICpjb250ZW50VHlwZSA9IE5VTEw7CisgICAgaWYgKHJlZGlyICE9IE5VTEwpICpyZWRpciA9IE5VTEw7CisgICAgcmV0dXJuKHhtbE5hbm9IVFRQTWV0aG9kUmVkaXIoVVJMLCBOVUxMLCBOVUxMLCBjb250ZW50VHlwZSwgcmVkaXIsIE5VTEwsMCkpOworfQorCisvKioKKyAqIHhtbE5hbm9IVFRQUmVhZDoKKyAqIEBjdHg6ICB0aGUgSFRUUCBjb250ZXh0CisgKiBAZGVzdDogIGEgYnVmZmVyCisgKiBAbGVuOiAgdGhlIGJ1ZmZlciBsZW5ndGgKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIHJlYWQgQGxlbiBieXRlcyBmcm9tIHRoZSBleGlzdGluZyBIVFRQIGNvbm5lY3Rpb24KKyAqIGFuZCBzYXZlcyB0aGVtIGluIEBkZXN0LiBUaGlzIGlzIGEgYmxvY2tpbmcgY2FsbC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZSByZWFkLiAwIGlzIGFuIGluZGljYXRpb24gb2YgYW4gZW5kIG9mIGNvbm5lY3Rpb24uCisgKiAgICAgICAgIC0xIGluZGljYXRlcyBhIHBhcmFtZXRlciBlcnJvci4KKyAqLworaW50Cit4bWxOYW5vSFRUUFJlYWQodm9pZCAqY3R4LCB2b2lkICpkZXN0LCBpbnQgbGVuKSB7CisgICAgeG1sTmFub0hUVFBDdHh0UHRyIGN0eHQgPSAoeG1sTmFub0hUVFBDdHh0UHRyKSBjdHg7CisjaWZkZWYgSEFWRV9aTElCX0gKKyAgICBpbnQgYnl0ZXNfcmVhZCA9IDA7CisgICAgaW50IG9yaWdfYXZhaWxfaW47CisgICAgaW50IHpfcmV0OworI2VuZGlmCisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaWYgKGRlc3QgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAobGVuIDw9IDApIHJldHVybigwKTsKKworI2lmZGVmIEhBVkVfWkxJQl9ICisgICAgaWYgKGN0eHQtPnVzZXNHemlwID09IDEpIHsKKyAgICAgICAgaWYgKGN0eHQtPnN0cm0gPT0gTlVMTCkgcmV0dXJuKDApOworIAorICAgICAgICBjdHh0LT5zdHJtLT5uZXh0X291dCA9IGRlc3Q7CisgICAgICAgIGN0eHQtPnN0cm0tPmF2YWlsX291dCA9IGxlbjsKKwljdHh0LT5zdHJtLT5hdmFpbF9pbiA9IGN0eHQtPmlucHRyIC0gY3R4dC0+aW5ycHRyOworCisgICAgICAgIHdoaWxlIChjdHh0LT5zdHJtLT5hdmFpbF9vdXQgPiAwICYmCisJICAgICAgIChjdHh0LT5zdHJtLT5hdmFpbF9pbiA+IDAgfHwgeG1sTmFub0hUVFBSZWN2KGN0eHQpID4gMCkpIHsKKyAgICAgICAgICAgIG9yaWdfYXZhaWxfaW4gPSBjdHh0LT5zdHJtLT5hdmFpbF9pbiA9CisJCQkgICAgY3R4dC0+aW5wdHIgLSBjdHh0LT5pbnJwdHIgLSBieXRlc19yZWFkOworICAgICAgICAgICAgY3R4dC0+c3RybS0+bmV4dF9pbiA9IEJBRF9DQVNUIChjdHh0LT5pbnJwdHIgKyBieXRlc19yZWFkKTsKKworICAgICAgICAgICAgel9yZXQgPSBpbmZsYXRlKGN0eHQtPnN0cm0sIFpfTk9fRkxVU0gpOworICAgICAgICAgICAgYnl0ZXNfcmVhZCArPSBvcmlnX2F2YWlsX2luIC0gY3R4dC0+c3RybS0+YXZhaWxfaW47CisKKyAgICAgICAgICAgIGlmICh6X3JldCAhPSBaX09LKSBicmVhazsKKwl9CisKKyAgICAgICAgY3R4dC0+aW5ycHRyICs9IGJ5dGVzX3JlYWQ7CisgICAgICAgIHJldHVybihsZW4gLSBjdHh0LT5zdHJtLT5hdmFpbF9vdXQpOworICAgIH0KKyNlbmRpZgorCisgICAgd2hpbGUgKGN0eHQtPmlucHRyIC0gY3R4dC0+aW5ycHRyIDwgbGVuKSB7CisgICAgICAgIGlmICh4bWxOYW5vSFRUUFJlY3YoY3R4dCkgPD0gMCkgYnJlYWs7CisgICAgfQorICAgIGlmIChjdHh0LT5pbnB0ciAtIGN0eHQtPmlucnB0ciA8IGxlbikKKyAgICAgICAgbGVuID0gY3R4dC0+aW5wdHIgLSBjdHh0LT5pbnJwdHI7CisgICAgbWVtY3B5KGRlc3QsIGN0eHQtPmlucnB0ciwgbGVuKTsKKyAgICBjdHh0LT5pbnJwdHIgKz0gbGVuOworICAgIHJldHVybihsZW4pOworfQorCisvKioKKyAqIHhtbE5hbm9IVFRQQ2xvc2U6CisgKiBAY3R4OiAgdGhlIEhUVFAgY29udGV4dAorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2xvc2VzIGFuIEhUVFAgY29udGV4dCwgaXQgZW5kcyB1cCB0aGUgY29ubmVjdGlvbiBhbmQKKyAqIGZyZWUgYWxsIGRhdGEgcmVsYXRlZCB0byBpdC4KKyAqLwordm9pZAoreG1sTmFub0hUVFBDbG9zZSh2b2lkICpjdHgpIHsKKyAgICB4bWxOYW5vSFRUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vSFRUUEN0eHRQdHIpIGN0eDsKKworICAgIGlmIChjdHggPT0gTlVMTCkgcmV0dXJuOworCisgICAgeG1sTmFub0hUVFBGcmVlQ3R4dChjdHh0KTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUE1ldGhvZFJlZGlyOgorICogQFVSTDogIFRoZSBVUkwgdG8gbG9hZAorICogQG1ldGhvZDogIHRoZSBIVFRQIG1ldGhvZCB0byB1c2UKKyAqIEBpbnB1dDogIHRoZSBpbnB1dCBzdHJpbmcgaWYgYW55CisgKiBAY29udGVudFR5cGU6ICB0aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIElOIGFuZCBPVVQKKyAqIEByZWRpcjogIHRoZSByZWRpcmVjdGVkIFVSTCBPVVQKKyAqIEBoZWFkZXJzOiAgdGhlIGV4dHJhIGhlYWRlcnMKKyAqIEBpbGVuOiAgaW5wdXQgbGVuZ3RoCisgKgorICogVGhpcyBmdW5jdGlvbiB0cnkgdG8gb3BlbiBhIGNvbm5lY3Rpb24gdG8gdGhlIGluZGljYXRlZCByZXNvdXJjZQorICogdmlhIEhUVFAgdXNpbmcgdGhlIGdpdmVuIEBtZXRob2QsIGFkZGluZyB0aGUgZ2l2ZW4gZXh0cmEgaGVhZGVycworICogYW5kIHRoZSBpbnB1dCBidWZmZXIgZm9yIHRoZSByZXF1ZXN0IGNvbnRlbnQuCisgKgorICogUmV0dXJucyBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZSwgb3RoZXJ3aXNlIGEgcmVxdWVzdCBoYW5kbGVyLgorICogICAgIFRoZSBjb250ZW50VHlwZSwgb3IgcmVkaXIsIGlmIHByb3ZpZGVkIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlcgorICovCisKK3ZvaWQqCit4bWxOYW5vSFRUUE1ldGhvZFJlZGlyKGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqbWV0aG9kLCBjb25zdCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgIGNoYXIgKipjb250ZW50VHlwZSwgY2hhciAqKnJlZGlyLAorCQkgIGNvbnN0IGNoYXIgKmhlYWRlcnMsIGludCBpbGVuICkgeworICAgIHhtbE5hbm9IVFRQQ3R4dFB0ciBjdHh0OworICAgIGNoYXIgKmJwLCAqcDsKKyAgICBpbnQgYmxlbiwgcmV0OworICAgIGludCBuYlJlZGlyZWN0cyA9IDA7CisgICAgY2hhciAqcmVkaXJVUkwgPSBOVUxMOworI2lmZGVmIERFQlVHX0hUVFAKKyAgICBpbnQgeG10X2J5dGVzOworI2VuZGlmCisgICAgCisgICAgaWYgKFVSTCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKG1ldGhvZCA9PSBOVUxMKSBtZXRob2QgPSAiR0VUIjsKKyAgICB4bWxOYW5vSFRUUEluaXQoKTsKKworcmV0cnk6CisgICAgaWYgKHJlZGlyVVJMID09IE5VTEwpCisJY3R4dCA9IHhtbE5hbm9IVFRQTmV3Q3R4dChVUkwpOworICAgIGVsc2UgeworCWN0eHQgPSB4bWxOYW5vSFRUUE5ld0N0eHQocmVkaXJVUkwpOworCWN0eHQtPmxvY2F0aW9uID0geG1sTWVtU3RyZHVwKHJlZGlyVVJMKTsKKyAgICB9CisKKyAgICBpZiAoIGN0eHQgPT0gTlVMTCApIHsKKwlyZXR1cm4gKCBOVUxMICk7CisgICAgfQorCisgICAgaWYgKChjdHh0LT5wcm90b2NvbCA9PSBOVUxMKSB8fCAoc3RyY21wKGN0eHQtPnByb3RvY29sLCAiaHR0cCIpKSkgeworCV9feG1sSU9FcnIoWE1MX0ZST01fSFRUUCwgWE1MX0hUVFBfVVJMX1NZTlRBWCwgIk5vdCBhIHZhbGlkIEhUVFAgVVJJIik7CisgICAgICAgIHhtbE5hbm9IVFRQRnJlZUN0eHQoY3R4dCk7CisJaWYgKHJlZGlyVVJMICE9IE5VTEwpIHhtbEZyZWUocmVkaXJVUkwpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChjdHh0LT5ob3N0bmFtZSA9PSBOVUxMKSB7CisJX194bWxJT0VycihYTUxfRlJPTV9IVFRQLCBYTUxfSFRUUF9VTktOT1dOX0hPU1QsCisJICAgICAgICAgICAiRmFpbGVkIHRvIGlkZW50aWZ5IGhvc3QgaW4gVVJJIik7CisgICAgICAgIHhtbE5hbm9IVFRQRnJlZUN0eHQoY3R4dCk7CisJaWYgKHJlZGlyVVJMICE9IE5VTEwpIHhtbEZyZWUocmVkaXJVUkwpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChwcm94eSkgeworCWJsZW4gPSBzdHJsZW4oY3R4dC0+aG9zdG5hbWUpICogMiArIDE2OworCXJldCA9IHhtbE5hbm9IVFRQQ29ubmVjdEhvc3QocHJveHksIHByb3h5UG9ydCk7CisgICAgfQorICAgIGVsc2UgeworCWJsZW4gPSBzdHJsZW4oY3R4dC0+aG9zdG5hbWUpOworCXJldCA9IHhtbE5hbm9IVFRQQ29ubmVjdEhvc3QoY3R4dC0+aG9zdG5hbWUsIGN0eHQtPnBvcnQpOworICAgIH0KKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICB4bWxOYW5vSFRUUEZyZWVDdHh0KGN0eHQpOworCWlmIChyZWRpclVSTCAhPSBOVUxMKSB4bWxGcmVlKHJlZGlyVVJMKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBjdHh0LT5mZCA9IHJldDsKKworICAgIGlmIChpbnB1dCA9PSBOVUxMKQorCWlsZW4gPSAwOworICAgIGVsc2UKKwlibGVuICs9IDM2OworCisgICAgaWYgKGhlYWRlcnMgIT0gTlVMTCkKKwlibGVuICs9IHN0cmxlbihoZWFkZXJzKSArIDI7CisgICAgaWYgKGNvbnRlbnRUeXBlICYmICpjb250ZW50VHlwZSkKKwkvKiByZXNlcnZlIGZvciBzdHJpbmcgcGx1cyAnQ29udGVudC1UeXBlOiBcclxuIiAqLworCWJsZW4gKz0gc3RybGVuKCpjb250ZW50VHlwZSkgKyAxNjsKKyAgICBpZiAoY3R4dC0+cXVlcnkgIT0gTlVMTCkKKwkvKiAxIGZvciAnPycgKi8KKwlibGVuICs9IHN0cmxlbihjdHh0LT5xdWVyeSkgKyAxOworICAgIGJsZW4gKz0gc3RybGVuKG1ldGhvZCkgKyBzdHJsZW4oY3R4dC0+cGF0aCkgKyAyNDsKKyNpZmRlZiBIQVZFX1pMSUJfSAorICAgIC8qIHJlc2VydmUgZm9yIHBvc3NpYmxlICdBY2NlcHQtRW5jb2Rpbmc6IGd6aXAnIHN0cmluZyAqLworICAgIGJsZW4gKz0gMjM7CisjZW5kaWYKKyAgICBpZiAoY3R4dC0+cG9ydCAhPSA4MCkgeworCS8qIHJlc2VydmUgc3BhY2UgZm9yICc6eHh4eHgnLCBpbmNsLiBwb3RlbnRpYWwgcHJveHkgKi8KKwlpZiAocHJveHkpCisJICAgIGJsZW4gKz0gMTI7CisJZWxzZQorCSAgICBibGVuICs9IDY7CisgICAgfQorICAgIGJwID0gKGNoYXIqKXhtbE1hbGxvY0F0b21pYyhibGVuKTsKKyAgICBpZiAoIGJwID09IE5VTEwgKSB7CisgICAgICAgIHhtbE5hbm9IVFRQRnJlZUN0eHQoIGN0eHQgKTsKKwl4bWxIVFRQRXJyTWVtb3J5KCJhbGxvY2F0aW5nIGhlYWRlciBidWZmZXIiKTsKKwlyZXR1cm4gKCBOVUxMICk7CisgICAgfQorCisgICAgcCA9IGJwOworCisgICAgaWYgKHByb3h5KSB7CisJaWYgKGN0eHQtPnBvcnQgIT0gODApIHsKKwkgICAgcCArPSBzbnByaW50ZiggcCwgYmxlbiAtIChwIC0gYnApLCAiJXMgaHR0cDovLyVzOiVkJXMiLCAKKwkJCW1ldGhvZCwgY3R4dC0+aG9zdG5hbWUsCisJCSAJY3R4dC0+cG9ydCwgY3R4dC0+cGF0aCApOworCX0KKwllbHNlIAorCSAgICBwICs9IHNucHJpbnRmKCBwLCBibGVuIC0gKHAgLSBicCksICIlcyBodHRwOi8vJXMlcyIsIG1ldGhvZCwKKwkgICAgCQljdHh0LT5ob3N0bmFtZSwgY3R4dC0+cGF0aCk7CisgICAgfQorICAgIGVsc2UKKwlwICs9IHNucHJpbnRmKCBwLCBibGVuIC0gKHAgLSBicCksICIlcyAlcyIsIG1ldGhvZCwgY3R4dC0+cGF0aCk7CisKKyAgICBpZiAoY3R4dC0+cXVlcnkgIT0gTlVMTCkKKwlwICs9IHNucHJpbnRmKCBwLCBibGVuIC0gKHAgLSBicCksICI/JXMiLCBjdHh0LT5xdWVyeSk7CisKKyAgICBpZiAoY3R4dC0+cG9ydCA9PSA4MCkgeworICAgICAgICBwICs9IHNucHJpbnRmKCBwLCBibGVuIC0gKHAgLSBicCksICIgSFRUUC8xLjBcclxuSG9zdDogJXNcclxuIiwgCisJCSAgICBjdHh0LT5ob3N0bmFtZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcCArPSBzbnByaW50ZiggcCwgYmxlbiAtIChwIC0gYnApLCAiIEhUVFAvMS4wXHJcbkhvc3Q6ICVzOiVkXHJcbiIsCisJCSAgICBjdHh0LT5ob3N0bmFtZSwgY3R4dC0+cG9ydCk7CisgICAgfQorCisjaWZkZWYgSEFWRV9aTElCX0gKKyAgICBwICs9IHNucHJpbnRmKHAsIGJsZW4gLSAocCAtIGJwKSwgIkFjY2VwdC1FbmNvZGluZzogZ3ppcFxyXG4iKTsKKyNlbmRpZgorCisgICAgaWYgKGNvbnRlbnRUeXBlICE9IE5VTEwgJiYgKmNvbnRlbnRUeXBlKSAKKwlwICs9IHNucHJpbnRmKHAsIGJsZW4gLSAocCAtIGJwKSwgIkNvbnRlbnQtVHlwZTogJXNcclxuIiwgKmNvbnRlbnRUeXBlKTsKKworICAgIGlmIChoZWFkZXJzICE9IE5VTEwpCisJcCArPSBzbnByaW50ZiggcCwgYmxlbiAtIChwIC0gYnApLCAiJXMiLCBoZWFkZXJzICk7CisKKyAgICBpZiAoaW5wdXQgIT0gTlVMTCkKKwlzbnByaW50ZihwLCBibGVuIC0gKHAgLSBicCksICJDb250ZW50LUxlbmd0aDogJWRcclxuXHJcbiIsIGlsZW4gKTsKKyAgICBlbHNlCisJc25wcmludGYocCwgYmxlbiAtIChwIC0gYnApLCAiXHJcbiIpOworCisjaWZkZWYgREVCVUdfSFRUUAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiLT4gJXMlcyIsIHByb3h5PyAiKFByb3h5KSAiIDogIiIsIGJwKTsKKyAgICBpZiAoKGJsZW4gLT0gc3RybGVuKGJwKSsxKSA8IDApCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJFUlJPUjogb3ZlcmZsb3dlZCBidWZmZXIgYnkgJWQgYnl0ZXNcbiIsIC1ibGVuKTsKKyNlbmRpZgorICAgIGN0eHQtPm91dHB0ciA9IGN0eHQtPm91dCA9IGJwOworICAgIGN0eHQtPnN0YXRlID0gWE1MX05BTk9fSFRUUF9XUklURTsKKyAgICBibGVuID0gc3RybGVuKCBjdHh0LT5vdXQgKTsKKyNpZmRlZiBERUJVR19IVFRQCisgICAgeG10X2J5dGVzID0geG1sTmFub0hUVFBTZW5kKGN0eHQsIGN0eHQtPm91dCwgYmxlbiApOworICAgIGlmICggeG10X2J5dGVzICE9IGJsZW4gKQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoIHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkieG1sTmFub0hUVFBNZXRob2RSZWRpcjogIE9ubHkgJWQgb2YgJWQgJXMgJXNcbiIsCisJCQl4bXRfYnl0ZXMsIGJsZW4sCisJCQkiYnl0ZXMgb2YgSFRUUCBoZWFkZXJzIHNlbnQgdG8gaG9zdCIsCisJCQljdHh0LT5ob3N0bmFtZSApOworI2Vsc2UKKyAgICB4bWxOYW5vSFRUUFNlbmQoY3R4dCwgY3R4dC0+b3V0LCBibGVuICk7CisjZW5kaWYKKworICAgIGlmICggaW5wdXQgIT0gTlVMTCApIHsKKyNpZmRlZiBERUJVR19IVFRQCisgICAgICAgIHhtdF9ieXRlcyA9IHhtbE5hbm9IVFRQU2VuZCggY3R4dCwgaW5wdXQsIGlsZW4gKTsKKworCWlmICggeG10X2J5dGVzICE9IGlsZW4gKQorCSAgICB4bWxHZW5lcmljRXJyb3IoIHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgIAkJInhtbE5hbm9IVFRQTWV0aG9kUmVkaXI6ICBPbmx5ICVkIG9mICVkICVzICVzXG4iLAorCQkJeG10X2J5dGVzLCBpbGVuLAorCQkJImJ5dGVzIG9mIEhUVFAgY29udGVudCBzZW50IHRvIGhvc3QiLAorCQkJY3R4dC0+aG9zdG5hbWUgKTsKKyNlbHNlCisJeG1sTmFub0hUVFBTZW5kKCBjdHh0LCBpbnB1dCwgaWxlbiApOworI2VuZGlmCisgICAgfQorCisgICAgY3R4dC0+c3RhdGUgPSBYTUxfTkFOT19IVFRQX1JFQUQ7CisKKyAgICB3aGlsZSAoKHAgPSB4bWxOYW5vSFRUUFJlYWRMaW5lKGN0eHQpKSAhPSBOVUxMKSB7CisgICAgICAgIGlmICgqcCA9PSAwKSB7CisJICAgIGN0eHQtPmNvbnRlbnQgPSBjdHh0LT5pbnJwdHI7CisJICAgIHhtbEZyZWUocCk7CisJICAgIGJyZWFrOworCX0KKwl4bWxOYW5vSFRUUFNjYW5BbnN3ZXIoY3R4dCwgcCk7CisKKyNpZmRlZiBERUJVR19IVFRQCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8LSAlc1xuIiwgcCk7CisjZW5kaWYKKyAgICAgICAgeG1sRnJlZShwKTsKKyAgICB9CisKKyAgICBpZiAoKGN0eHQtPmxvY2F0aW9uICE9IE5VTEwpICYmIChjdHh0LT5yZXR1cm5WYWx1ZSA+PSAzMDApICYmCisgICAgICAgIChjdHh0LT5yZXR1cm5WYWx1ZSA8IDQwMCkpIHsKKyNpZmRlZiBERUJVR19IVFRQCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJcblJlZGlyZWN0IHRvOiAlc1xuIiwgY3R4dC0+bG9jYXRpb24pOworI2VuZGlmCisJd2hpbGUgKCB4bWxOYW5vSFRUUFJlY3YoY3R4dCkgPiAwICkgOworICAgICAgICBpZiAobmJSZWRpcmVjdHMgPCBYTUxfTkFOT19IVFRQX01BWF9SRURJUikgeworCSAgICBuYlJlZGlyZWN0cysrOworCSAgICBpZiAocmVkaXJVUkwgIT0gTlVMTCkKKwkJeG1sRnJlZShyZWRpclVSTCk7CisJICAgIHJlZGlyVVJMID0geG1sTWVtU3RyZHVwKGN0eHQtPmxvY2F0aW9uKTsKKwkgICAgeG1sTmFub0hUVFBGcmVlQ3R4dChjdHh0KTsKKwkgICAgZ290byByZXRyeTsKKwl9CisJeG1sTmFub0hUVFBGcmVlQ3R4dChjdHh0KTsKKwlpZiAocmVkaXJVUkwgIT0gTlVMTCkgeG1sRnJlZShyZWRpclVSTCk7CisjaWZkZWYgREVCVUdfSFRUUAorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmFub0hUVFBNZXRob2RSZWRpcjogVG9vIG1hbnkgcmVkaXJlY3RzLCBhYm9ydGluZyAuLi5cbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmIChjb250ZW50VHlwZSAhPSBOVUxMKSB7CisJaWYgKGN0eHQtPmNvbnRlbnRUeXBlICE9IE5VTEwpCisJICAgICpjb250ZW50VHlwZSA9IHhtbE1lbVN0cmR1cChjdHh0LT5jb250ZW50VHlwZSk7CisJZWxzZQorCSAgICAqY29udGVudFR5cGUgPSBOVUxMOworICAgIH0KKworICAgIGlmICgocmVkaXIgIT0gTlVMTCkgJiYgKHJlZGlyVVJMICE9IE5VTEwpKSB7CisJKnJlZGlyID0gcmVkaXJVUkw7CisgICAgfSBlbHNlIHsKKwlpZiAocmVkaXJVUkwgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShyZWRpclVSTCk7CisJaWYgKHJlZGlyICE9IE5VTEwpCisJICAgICpyZWRpciA9IE5VTEw7CisgICAgfQorCisjaWZkZWYgREVCVUdfSFRUUAorICAgIGlmIChjdHh0LT5jb250ZW50VHlwZSAhPSBOVUxMKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiXG5Db2RlICVkLCBjb250ZW50LXR5cGUgJyVzJ1xuXG4iLAorCSAgICAgICBjdHh0LT5yZXR1cm5WYWx1ZSwgY3R4dC0+Y29udGVudFR5cGUpOworICAgIGVsc2UKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlxuQ29kZSAlZCwgbm8gY29udGVudC10eXBlXG5cbiIsCisJICAgICAgIGN0eHQtPnJldHVyblZhbHVlKTsKKyNlbmRpZgorCisgICAgcmV0dXJuKCh2b2lkICopIGN0eHQpOworfQorCisvKioKKyAqIHhtbE5hbm9IVFRQTWV0aG9kOgorICogQFVSTDogIFRoZSBVUkwgdG8gbG9hZAorICogQG1ldGhvZDogIHRoZSBIVFRQIG1ldGhvZCB0byB1c2UKKyAqIEBpbnB1dDogIHRoZSBpbnB1dCBzdHJpbmcgaWYgYW55CisgKiBAY29udGVudFR5cGU6ICB0aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIElOIGFuZCBPVVQKKyAqIEBoZWFkZXJzOiAgdGhlIGV4dHJhIGhlYWRlcnMKKyAqIEBpbGVuOiAgaW5wdXQgbGVuZ3RoCisgKgorICogVGhpcyBmdW5jdGlvbiB0cnkgdG8gb3BlbiBhIGNvbm5lY3Rpb24gdG8gdGhlIGluZGljYXRlZCByZXNvdXJjZQorICogdmlhIEhUVFAgdXNpbmcgdGhlIGdpdmVuIEBtZXRob2QsIGFkZGluZyB0aGUgZ2l2ZW4gZXh0cmEgaGVhZGVycworICogYW5kIHRoZSBpbnB1dCBidWZmZXIgZm9yIHRoZSByZXF1ZXN0IGNvbnRlbnQuCisgKgorICogUmV0dXJucyBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZSwgb3RoZXJ3aXNlIGEgcmVxdWVzdCBoYW5kbGVyLgorICogICAgIFRoZSBjb250ZW50VHlwZSwgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyCisgKi8KKwordm9pZCoKK3htbE5hbm9IVFRQTWV0aG9kKGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqbWV0aG9kLCBjb25zdCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgIGNoYXIgKipjb250ZW50VHlwZSwgY29uc3QgY2hhciAqaGVhZGVycywgaW50IGlsZW4pIHsKKyAgICByZXR1cm4oeG1sTmFub0hUVFBNZXRob2RSZWRpcihVUkwsIG1ldGhvZCwgaW5wdXQsIGNvbnRlbnRUeXBlLAorCQkgICAgICAgICAgICAgICAgICBOVUxMLCBoZWFkZXJzLCBpbGVuKSk7Cit9CisKKy8qKgorICogeG1sTmFub0hUVFBGZXRjaDoKKyAqIEBVUkw6ICBUaGUgVVJMIHRvIGxvYWQKKyAqIEBmaWxlbmFtZTogIHRoZSBmaWxlbmFtZSB3aGVyZSB0aGUgY29udGVudCBzaG91bGQgYmUgc2F2ZWQKKyAqIEBjb250ZW50VHlwZTogIGlmIGF2YWlsYWJsZSB0aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgIHJldHVybmVkIGF0IHRoYXQgbG9jYXRpb24KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHRyeSB0byBmZXRjaCB0aGUgaW5kaWNhdGVkIHJlc291cmNlIHZpYSBIVFRQIEdFVAorICogYW5kIHNhdmUgaXQncyBjb250ZW50IGluIHRoZSBmaWxlLgorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCAwIGluY2FzZSBvZiBzdWNjZXNzLiBUaGUgY29udGVudFR5cGUsCisgKiAgICAgaWYgcHJvdmlkZWQgbXVzdCBiZSBmcmVlZCBieSB0aGUgY2FsbGVyCisgKi8KK2ludAoreG1sTmFub0hUVFBGZXRjaChjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjaGFyICoqY29udGVudFR5cGUpIHsKKyAgICB2b2lkICpjdHh0ID0gTlVMTDsKKyAgICBjaGFyICpidWYgPSBOVUxMOworICAgIGludCBmZDsKKyAgICBpbnQgbGVuOworICAgIAorICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGN0eHQgPSB4bWxOYW5vSFRUUE9wZW4oVVJMLCBjb250ZW50VHlwZSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKworICAgIGlmICghc3RyY21wKGZpbGVuYW1lLCAiLSIpKSAKKyAgICAgICAgZmQgPSAwOworICAgIGVsc2UgeworICAgICAgICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fQ1JFQVQgfCBPX1dST05MWSwgMDA2NDQpOworCWlmIChmZCA8IDApIHsKKwkgICAgeG1sTmFub0hUVFBDbG9zZShjdHh0KTsKKwkgICAgaWYgKChjb250ZW50VHlwZSAhPSBOVUxMKSAmJiAoKmNvbnRlbnRUeXBlICE9IE5VTEwpKSB7CisJICAgICAgICB4bWxGcmVlKCpjb250ZW50VHlwZSk7CisJCSpjb250ZW50VHlwZSA9IE5VTEw7CisJICAgIH0KKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorCisgICAgeG1sTmFub0hUVFBGZXRjaENvbnRlbnQoIGN0eHQsICZidWYsICZsZW4gKTsKKyAgICBpZiAoIGxlbiA+IDAgKSB7CisJd3JpdGUoZmQsIGJ1ZiwgbGVuKTsKKyAgICB9CisKKyAgICB4bWxOYW5vSFRUUENsb3NlKGN0eHQpOworICAgIGNsb3NlKGZkKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sTmFub0hUVFBTYXZlOgorICogQGN0eHQ6ICB0aGUgSFRUUCBjb250ZXh0CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUgd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNhdmVkCisgKgorICogVGhpcyBmdW5jdGlvbiBzYXZlcyB0aGUgb3V0cHV0IG9mIHRoZSBIVFRQIHRyYW5zYWN0aW9uIHRvIGEgZmlsZQorICogSXQgY2xvc2VzIGFuZCBmcmVlIHRoZSBjb250ZXh0IGF0IHRoZSBlbmQKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBpbmNhc2Ugb2Ygc3VjY2Vzcy4KKyAqLworaW50Cit4bWxOYW5vSFRUUFNhdmUodm9pZCAqY3R4dCwgY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICBjaGFyICpidWYgPSBOVUxMOworICAgIGludCBmZDsKKyAgICBpbnQgbGVuOworICAgIAorICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZmlsZW5hbWUgPT0gTlVMTCkpIHJldHVybigtMSk7CisKKyAgICBpZiAoIXN0cmNtcChmaWxlbmFtZSwgIi0iKSkgCisgICAgICAgIGZkID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgZmQgPSBvcGVuKGZpbGVuYW1lLCBPX0NSRUFUIHwgT19XUk9OTFksIDA2NjYpOworCWlmIChmZCA8IDApIHsKKwkgICAgeG1sTmFub0hUVFBDbG9zZShjdHh0KTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorCisgICAgeG1sTmFub0hUVFBGZXRjaENvbnRlbnQoIGN0eHQsICZidWYsICZsZW4gKTsKKyAgICBpZiAoIGxlbiA+IDAgKSB7CisJd3JpdGUoZmQsIGJ1ZiwgbGVuKTsKKyAgICB9CisKKyAgICB4bWxOYW5vSFRUUENsb3NlKGN0eHQpOworICAgIGNsb3NlKGZkKTsKKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKgorICogeG1sTmFub0hUVFBSZXR1cm5Db2RlOgorICogQGN0eDogIHRoZSBIVFRQIGNvbnRleHQKKyAqCisgKiBHZXQgdGhlIGxhdGVzdCBIVFRQIHJldHVybiBjb2RlIHJlY2VpdmVkCisgKgorICogUmV0dXJucyB0aGUgSFRUUCByZXR1cm4gY29kZSBmb3IgdGhlIHJlcXVlc3QuCisgKi8KK2ludAoreG1sTmFub0hUVFBSZXR1cm5Db2RlKHZvaWQgKmN0eCkgeworICAgIHhtbE5hbm9IVFRQQ3R4dFB0ciBjdHh0ID0gKHhtbE5hbm9IVFRQQ3R4dFB0cikgY3R4OworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKworICAgIHJldHVybihjdHh0LT5yZXR1cm5WYWx1ZSk7Cit9CisKKy8qKgorICogeG1sTmFub0hUVFBBdXRoSGVhZGVyOgorICogQGN0eDogIHRoZSBIVFRQIGNvbnRleHQKKyAqCisgKiBHZXQgdGhlIGF1dGhlbnRpY2F0aW9uIGhlYWRlciBvZiBhbiBIVFRQIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSBzdGFzaGVkIHZhbHVlIG9mIHRoZSBXV1ctQXV0aGVudGljYXRlIG9yIFByb3h5LUF1dGhlbnRpY2F0ZQorICogaGVhZGVyLgorICovCitjb25zdCBjaGFyICoKK3htbE5hbm9IVFRQQXV0aEhlYWRlcih2b2lkICpjdHgpIHsKKyAgICB4bWxOYW5vSFRUUEN0eHRQdHIgY3R4dCA9ICh4bWxOYW5vSFRUUEN0eHRQdHIpIGN0eDsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHJldHVybihjdHh0LT5hdXRoSGVhZGVyKTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGg6CisgKiBAY3R4OiAgdGhlIEhUVFAgY29udGV4dAorICoKKyAqIFByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgY29udGVudCBsZW5ndGggZnJvbSB0aGUgSFRUUCBoZWFkZXIuCisgKgorICogUmV0dXJuIHRoZSBzcGVjaWZpZWQgY29udGVudCBsZW5ndGggZnJvbSB0aGUgSFRUUCBoZWFkZXIuICBOb3RlIHRoYXQKKyAqIGEgdmFsdWUgb2YgLTEgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbnRlbnQgbGVuZ3RoIGVsZW1lbnQgd2FzIG5vdCBpbmNsdWRlZCBpbgorICogdGhlIHJlc3BvbnNlIGhlYWRlci4KKyAqLworaW50Cit4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgoIHZvaWQgKiBjdHggKSB7CisgICAgeG1sTmFub0hUVFBDdHh0UHRyCWN0eHQgPSAoeG1sTmFub0hUVFBDdHh0UHRyKWN0eDsKKworICAgIHJldHVybiAoICggY3R4dCA9PSBOVUxMICkgPyAtMSA6IGN0eHQtPkNvbnRlbnRMZW5ndGggKTsKK30KKworLyoqCisgKiB4bWxOYW5vSFRUUFJlZGlyOgorICogQGN0eDogIHRoZSBIVFRQIGNvbnRleHQKKyAqCisgKiBQcm92aWRlcyB0aGUgc3BlY2lmaWVkIHJlZGlyZWN0aW9uIFVSTCBpZiBhdmFpbGFibGUgZnJvbSB0aGUgSFRUUCBoZWFkZXIuCisgKgorICogUmV0dXJuIHRoZSBzcGVjaWZpZWQgcmVkaXJlY3Rpb24gVVJMIG9yIE5VTEwgaWYgbm90IHJlZGlyZWN0ZWQuCisgKi8KK2NvbnN0IGNoYXIgKgoreG1sTmFub0hUVFBSZWRpciggdm9pZCAqIGN0eCApIHsKKyAgICB4bWxOYW5vSFRUUEN0eHRQdHIJY3R4dCA9ICh4bWxOYW5vSFRUUEN0eHRQdHIpY3R4OworCisgICAgcmV0dXJuICggKCBjdHh0ID09IE5VTEwgKSA/IE5VTEwgOiBjdHh0LT5sb2NhdGlvbiApOworfQorCisvKioKKyAqIHhtbE5hbm9IVFRQRW5jb2Rpbmc6CisgKiBAY3R4OiAgdGhlIEhUVFAgY29udGV4dAorICoKKyAqIFByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgZW5jb2RpbmcgaWYgc3BlY2lmaWVkIGluIHRoZSBIVFRQIGhlYWRlcnMuCisgKgorICogUmV0dXJuIHRoZSBzcGVjaWZpZWQgZW5jb2Rpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlCisgKi8KK2NvbnN0IGNoYXIgKgoreG1sTmFub0hUVFBFbmNvZGluZyggdm9pZCAqIGN0eCApIHsKKyAgICB4bWxOYW5vSFRUUEN0eHRQdHIJY3R4dCA9ICh4bWxOYW5vSFRUUEN0eHRQdHIpY3R4OworCisgICAgcmV0dXJuICggKCBjdHh0ID09IE5VTEwgKSA/IE5VTEwgOiBjdHh0LT5lbmNvZGluZyApOworfQorCisvKioKKyAqIHhtbE5hbm9IVFRQTWltZVR5cGU6CisgKiBAY3R4OiAgdGhlIEhUVFAgY29udGV4dAorICoKKyAqIFByb3ZpZGVzIHRoZSBzcGVjaWZpZWQgTWltZS1UeXBlIGlmIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLgorICoKKyAqIFJldHVybiB0aGUgc3BlY2lmaWVkIE1pbWUtVHlwZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUKKyAqLworY29uc3QgY2hhciAqCit4bWxOYW5vSFRUUE1pbWVUeXBlKCB2b2lkICogY3R4ICkgeworICAgIHhtbE5hbm9IVFRQQ3R4dFB0cgljdHh0ID0gKHhtbE5hbm9IVFRQQ3R4dFB0ciljdHg7CisKKyAgICByZXR1cm4gKCAoIGN0eHQgPT0gTlVMTCApID8gTlVMTCA6IGN0eHQtPm1pbWVUeXBlICk7Cit9CisKKy8qKgorICogeG1sTmFub0hUVFBGZXRjaENvbnRlbnQ6CisgKiBAY3R4OiAgdGhlIEhUVFAgY29udGV4dAorICogQHB0cjogIHBvaW50ZXIgdG8gc2V0IHRvIHRoZSBjb250ZW50IGJ1ZmZlci4KKyAqIEBsZW46ICBpbnRlZ2VyIHBvaW50ZXIgdG8gaG9sZCB0aGUgbGVuZ3RoIG9mIHRoZSBjb250ZW50CisgKgorICogQ2hlY2sgaWYgYWxsIHRoZSBjb250ZW50IHdhcyByZWFkCisgKgorICogUmV0dXJucyAwIGlmIGFsbCB0aGUgY29udGVudCB3YXMgcmVhZCBhbmQgYXZhaWxhYmxlLCByZXR1cm5zCisgKiAtMSBpZiByZWNlaXZlZCBjb250ZW50IGxlbmd0aCB3YXMgbGVzcyB0aGFuIHNwZWNpZmllZCBvciBhbiBlcnJvciAKKyAqIG9jY3VycmVkLgorICovCitzdGF0aWMgaW50Cit4bWxOYW5vSFRUUEZldGNoQ29udGVudCggdm9pZCAqIGN0eCwgY2hhciAqKiBwdHIsIGludCAqIGxlbiApIHsKKyAgICB4bWxOYW5vSFRUUEN0eHRQdHIJY3R4dCA9ICh4bWxOYW5vSFRUUEN0eHRQdHIpY3R4OworCisgICAgaW50CQkJcmMgPSAwOworICAgIGludAkJCWN1cl9sZ3RoOworICAgIGludAkJCXJjdmRfbGd0aDsKKyAgICBpbnQJCQlkdW1teV9pbnQ7CisgICAgY2hhciAqCQlkdW1teV9wdHIgPSBOVUxMOworCisgICAgLyogIER1bW15IHVwIHJldHVybiBpbnB1dCBwYXJhbWV0ZXJzIGlmIG5vdCBwcm92aWRlZCAgKi8KKworICAgIGlmICggbGVuID09IE5VTEwgKQorICAgICAgICBsZW4gPSAmZHVtbXlfaW50OworCisgICAgaWYgKCBwdHIgPT0gTlVMTCApCisgICAgICAgIHB0ciA9ICZkdW1teV9wdHI7CisKKyAgICAvKiAgQnV0IGNhbid0IHdvcmsgd2l0aG91dCB0aGUgY29udGV4dCBwb2ludGVyICAqLworCisgICAgaWYgKCAoIGN0eHQgPT0gTlVMTCApIHx8ICggY3R4dC0+Y29udGVudCA9PSBOVUxMICkgKSB7CisgICAgICAgICpsZW4gPSAwOworCSpwdHIgPSBOVUxMOworCXJldHVybiAoIC0xICk7CisgICAgfQorCisgICAgcmN2ZF9sZ3RoID0gY3R4dC0+aW5wdHIgLSBjdHh0LT5jb250ZW50OworCisgICAgd2hpbGUgKCAoY3VyX2xndGggPSB4bWxOYW5vSFRUUFJlY3YoIGN0eHQgKSkgPiAwICkgeworCisJcmN2ZF9sZ3RoICs9IGN1cl9sZ3RoOworCWlmICggKGN0eHQtPkNvbnRlbnRMZW5ndGggPiAwKSAmJiAocmN2ZF9sZ3RoID49IGN0eHQtPkNvbnRlbnRMZW5ndGgpICkKKwkgICAgYnJlYWs7CisgICAgfQorCisgICAgKnB0ciA9IGN0eHQtPmNvbnRlbnQ7CisgICAgKmxlbiA9IHJjdmRfbGd0aDsKKworICAgIGlmICggKCBjdHh0LT5Db250ZW50TGVuZ3RoID4gMCApICYmICggcmN2ZF9sZ3RoIDwgY3R4dC0+Q29udGVudExlbmd0aCApICkKKyAgICAgICAgcmMgPSAtMTsKKyAgICBlbHNlIGlmICggcmN2ZF9sZ3RoID09IDAgKQorCXJjID0gLTE7CisKKyAgICByZXR1cm4gKCByYyApOworfQorCisjaWZkZWYgU1RBTkRBTE9ORQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgY2hhciAqY29udGVudFR5cGUgPSBOVUxMOworCisgICAgaWYgKGFyZ3ZbMV0gIT0gTlVMTCkgeworCWlmIChhcmd2WzJdICE9IE5VTEwpIAorCSAgICB4bWxOYW5vSFRUUEZldGNoKGFyZ3ZbMV0sIGFyZ3ZbMl0sICZjb250ZW50VHlwZSk7CisgICAgICAgIGVsc2UKKwkgICAgeG1sTmFub0hUVFBGZXRjaChhcmd2WzFdLCAiLSIsICZjb250ZW50VHlwZSk7CisJaWYgKGNvbnRlbnRUeXBlICE9IE5VTEwpIHhtbEZyZWUoY29udGVudFR5cGUpOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiJXM6IG1pbmltYWwgSFRUUCBHRVQgaW1wbGVtZW50YXRpb25cbiIsIGFyZ3ZbMF0pOworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlx0dXNhZ2UgJXMgWyBVUkwgWyBmaWxlbmFtZSBdIF1cbiIsIGFyZ3ZbMF0pOworICAgIH0KKyAgICB4bWxOYW5vSFRUUENsZWFudXAoKTsKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuKDApOworfQorI2VuZGlmIC8qIFNUQU5EQUxPTkUgKi8KKyNlbHNlIC8qICFMSUJYTUxfSFRUUF9FTkFCTEVEICovCisjaWZkZWYgU1RBTkRBTE9ORQorI2luY2x1ZGUgPHN0ZGlvLmg+CitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIiVzIDogSFRUUCBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIiwgYXJndlswXSk7CisgICAgcmV0dXJuKDApOworfQorI2VuZGlmIC8qIFNUQU5EQUxPTkUgKi8KKyNlbmRpZiAvKiBMSUJYTUxfSFRUUF9FTkFCTEVEICovCisjZGVmaW5lIGJvdHRvbV9uYW5vaHR0cAorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcGFyc2VyLmMgYi9saWJ4bWwyLTIuNy43L3BhcnNlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZTc1OTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3BhcnNlci5jCkBAIC0wLDAgKzEsMTQ4NTMgQEAKKy8qCisgKiBwYXJzZXIuYyA6IGFuIFhNTCAxLjAgcGFyc2VyLCBuYW1lc3BhY2VzIGFuZCB2YWxpZGl0eSBzdXBwb3J0IGFyZSBtb3N0bHkKKyAqICAgICAgICAgICAgaW1wbGVtZW50ZWQgb24gdG9wIG9mIHRoZSBTQVggaW50ZXJmYWNlcworICoKKyAqIFJlZmVyZW5jZXM6CisgKiAgIFRoZSBYTUwgc3BlY2lmaWNhdGlvbjoKKyAqICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sCisgKiAgIE9yaWdpbmFsIDEuMCB2ZXJzaW9uOgorICogICAgIGh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0xOTk4MDIxMAorICogICBYTUwgc2Vjb25kIGVkaXRpb24gd29ya2luZyBkcmFmdAorICogICAgIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDAvV0QteG1sLTJlLTIwMDAwODE0CisgKgorICogT2theSB0aGlzIGlzIGEgYmlnIGZpbGUsIHRoZSBwYXJzZXIgY29yZSBpcyBhcm91bmQgNzAwMCBsaW5lcywgdGhlbiBpdAorICogaXMgZm9sbG93ZWQgYnkgdGhlIHByb2dyZXNzaXZlIHBhcnNlciB0b3Agcm91dGluZXMsIHRoZW4gdGhlIHZhcmlvdXMKKyAqIGhpZ2ggbGV2ZWwgQVBJcyB0byBjYWxsIHRoZSBwYXJzZXIgYW5kIGEgZmV3IG1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zLgorICogQSBudW1iZXIgb2YgaGVscGVyIGZ1bmN0aW9ucyBhbmQgZGVwcmVjYXRlZCBvbmVzIGhhdmUgYmVlbiBtb3ZlZCB0bworICogcGFyc2VySW50ZXJuYWxzLmMgdG8gcmVkdWNlIHRoaXMgZmlsZSBzaXplLgorICogQXMgbXVjaCBhcyBwb3NzaWJsZSB0aGUgZnVuY3Rpb25zIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlaXIgcmVsYXRpdmUKKyAqIHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBzcGVjaWZpY2F0aW9uLiBBIGZldyBwcm9kdWN0aW9ucyBkZWZpbmluZyB0aGUKKyAqIGRpZmZlcmVudCByYW5nZXMgb2YgY2hhcmFjdGVyIGFyZSBhY3R1YWxseSBpbXBsYW50ZWQgZWl0aGVyIGluIAorICogcGFyc2VySW50ZXJuYWxzLmggb3IgcGFyc2VySW50ZXJuYWxzLmMKKyAqIFRoZSBET00gdHJlZSBidWlsZCBpcyByZWFsaXplZCBmcm9tIHRoZSBkZWZhdWx0IFNBWCBjYWxsYmFja3MgaW4KKyAqIHRoZSBtb2R1bGUgU0FYLmMuCisgKiBUaGUgcm91dGluZXMgZG9pbmcgdGhlIHZhbGlkYXRpb24gY2hlY2tzIGFyZSBpbiB2YWxpZC5jIGFuZCBjYWxsZWQgZWl0aGVyCisgKiBmcm9tIHRoZSBTQVggY2FsbGJhY2tzIG9yIGFzIHN0YW5kYWxvbmUgZnVuY3Rpb25zIHVzaW5nIGEgcHJlcGFyc2VkCisgKiBkb2N1bWVudC4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpZiBkZWZpbmVkKFdJTjMyKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKyNkZWZpbmUgWE1MX0RJUl9TRVAgJ1xcJworI2Vsc2UKKyNkZWZpbmUgWE1MX0RJUl9TRVAgJy8nCisjZW5kaWYKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdGhyZWFkcy5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC92YWxpZC5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbmNvZGluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxJTy5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL2NhdGFsb2cuaD4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg+CisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfQ1RZUEVfSAorI2luY2x1ZGUgPGN0eXBlLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9GQ05UTF9ICisjaW5jbHVkZSA8ZmNudGwuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfVU5JU1REX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfWkxJQl9ICisjaW5jbHVkZSA8emxpYi5oPgorI2VuZGlmCisKK3N0YXRpYyB2b2lkCit4bWxGYXRhbEVycih4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwgY29uc3QgY2hhciAqaW5mbyk7CisKK3N0YXRpYyB4bWxQYXJzZXJDdHh0UHRyCit4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0SW50ZXJuYWwoY29uc3QgeG1sQ2hhciAqVVJMLCBjb25zdCB4bWxDaGFyICpJRCwKKwkgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpiYXNlLCB4bWxQYXJzZXJDdHh0UHRyIHBjdHgpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCUFyYml0cmFyeSBsaW1pdHMgc2V0IGluIHRoZSBwYXJzZXIuIFNlZSBYTUxfUEFSU0VfSFVHRQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFhNTF9QQVJTRVJfQklHX0VOVElUWSAxMDAwCisjZGVmaW5lIFhNTF9QQVJTRVJfTE9UX0VOVElUWSA1MDAwCisKKy8qCisgKiBYTUxfUEFSU0VSX05PTl9MSU5FQVIgaXMgdGhlIHRocmVzaG9sZCB3aGVyZSB0aGUgcmF0aW8gb2YgcGFyc2VkIGVudGl0eQorICogICAgcmVwbGFjZW1lbnQgb3ZlciB0aGUgc2l6ZSBpbiBieXRlIG9mIHRoZSBpbnB1dCBpbmRpY2F0ZXMgdGhhdCB5b3UgaGF2ZQorICogICAgYW5kIGVwb25lbnRpYWwgYmVoYXZpb3VyLiBBIHZhbHVlIG9mIDEwIGNvcnJlc3BvbmQgdG8gYXQgbGVhc3QgMyBlbnRpdHkKKyAqICAgIHJlcGxhY2VtZW50IHBlciBieXRlIG9mIGlucHV0LgorICovCisjZGVmaW5lIFhNTF9QQVJTRVJfTk9OX0xJTkVBUiAxMAorCisvKgorICogeG1sUGFyc2VyRW50aXR5Q2hlY2sKKyAqCisgKiBGdW5jdGlvbiB0byBjaGVjayBub24tbGluZWFyIGVudGl0eSBleHBhbnNpb24gYmVoYXZpb3VyCisgKiBUaGlzIGlzIGhlcmUgdG8gZGV0ZWN0IGFuZCBzdG9wIGV4cG9uZW50aWFsIGxpbmVhciBlbnRpdHkgZXhwYW5zaW9uCisgKiBUaGlzIGlzIG5vdCBhIGxpbWl0YXRpb24gb2YgdGhlIHBhcnNlciBidXQgYSBzYWZldHkKKyAqIGJvdW5kYXJ5IGZlYXR1cmUuIEl0IGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSBYTUxfUEFSU0VfSFVHRQorICogcGFyc2VyIG9wdGlvbi4KKyAqLworc3RhdGljIGludAoreG1sUGFyc2VyRW50aXR5Q2hlY2soeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB1bnNpZ25lZCBsb25nIHNpemUsCisgICAgICAgICAgICAgICAgICAgICB4bWxFbnRpdHlQdHIgZW50KQoreworICAgIHVuc2lnbmVkIGxvbmcgY29uc3VtZWQgPSAwOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpKQorICAgICAgICByZXR1cm4gKDApOworICAgIGlmIChjdHh0LT5sYXN0RXJyb3IuY29kZSA9PSBYTUxfRVJSX0VOVElUWV9MT09QKQorICAgICAgICByZXR1cm4gKDEpOworICAgIGlmIChzaXplICE9IDApIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gdGhlIGNoZWNrIGJhc2VkIG9uIHRoZSByZXBsYWNlbWVudCBzaXplIG9mIHRoZSBlbnRpdHkKKyAgICAgICAgICovCisgICAgICAgIGlmIChzaXplIDwgWE1MX1BBUlNFUl9CSUdfRU5USVRZKQorCSAgICByZXR1cm4oMCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQSBsaW1pdCBvbiB0aGUgYW1vdW50IG9mIHRleHQgZGF0YSByZWFzb25hYmx5IHVzZWQKKyAgICAgICAgICovCisgICAgICAgIGlmIChjdHh0LT5pbnB1dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBjb25zdW1lZCA9IGN0eHQtPmlucHV0LT5jb25zdW1lZCArCisgICAgICAgICAgICAgICAgKGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSk7CisgICAgICAgIH0KKyAgICAgICAgY29uc3VtZWQgKz0gY3R4dC0+c2l6ZWVudGl0aWVzOworCisgICAgICAgIGlmICgoc2l6ZSA8IFhNTF9QQVJTRVJfTk9OX0xJTkVBUiAqIGNvbnN1bWVkKSAmJgorCSAgICAoY3R4dC0+bmJlbnRpdGllcyAqIDMgPCBYTUxfUEFSU0VSX05PTl9MSU5FQVIgKiBjb25zdW1lZCkpCisgICAgICAgICAgICByZXR1cm4gKDApOworICAgIH0gZWxzZSBpZiAoZW50ICE9IE5VTEwpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogdXNlIHRoZSBudW1iZXIgb2YgcGFyc2VkIGVudGl0aWVzIGluIHRoZSByZXBsYWNlbWVudAorICAgICAgICAgKi8KKyAgICAgICAgc2l6ZSA9IGVudC0+Y2hlY2tlZDsKKworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgYW1vdW50IG9mIGRhdGEgcGFyc2VkIGNvdW50aW5nIGVudGl0aWVzIHNpemUgb25seSBvbmNlCisgICAgICAgICAqLworICAgICAgICBpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgeworICAgICAgICAgICAgY29uc3VtZWQgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQgKworICAgICAgICAgICAgICAgIChjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworICAgICAgICB9CisgICAgICAgIGNvbnN1bWVkICs9IGN0eHQtPnNpemVlbnRpdGllczsKKworICAgICAgICAvKgorICAgICAgICAgKiBDaGVjayB0aGUgZGVuc2l0eSBvZiBlbnRpdGllcyBmb3IgdGhlIGFtb3VudCBvZiBkYXRhCisJICoga25vd2luZyBhbiBlbnRpdHkgcmVmZXJlbmNlIHdpbGwgdGFrZSBhdCBsZWFzdCAzIGJ5dGVzCisgICAgICAgICAqLworICAgICAgICBpZiAoc2l6ZSAqIDMgPCBjb25zdW1lZCAqIFhNTF9QQVJTRVJfTk9OX0xJTkVBUikKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogc3RyYW5nZSB3ZSBnb3Qgbm8gZGF0YSBmb3IgY2hlY2tpbmcganVzdCByZXR1cm4KKyAgICAgICAgICovCisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorCisgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FTlRJVFlfTE9PUCwgTlVMTCk7CisgICAgcmV0dXJuICgxKTsKK30KKworLyoqCisgKiB4bWxQYXJzZXJNYXhEZXB0aDoKKyAqCisgKiBhcmJpdHJhcnkgZGVwdGggbGltaXQgZm9yIHRoZSBYTUwgZG9jdW1lbnRzIHRoYXQgd2UgYWxsb3cgdG8KKyAqIHByb2Nlc3MuIFRoaXMgaXMgbm90IGEgbGltaXRhdGlvbiBvZiB0aGUgcGFyc2VyIGJ1dCBhIHNhZmV0eQorICogYm91bmRhcnkgZmVhdHVyZS4gSXQgY2FuIGJlIGRpc2FibGVkIHdpdGggdGhlIFhNTF9QQVJTRV9IVUdFCisgKiBwYXJzZXIgb3B0aW9uLgorICovCit1bnNpZ25lZCBpbnQgeG1sUGFyc2VyTWF4RGVwdGggPSAyNTY7CisKKworCisjZGVmaW5lIFNBWDIgMQorI2RlZmluZSBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSAzMDAKKyNkZWZpbmUgWE1MX1BBUlNFUl9CVUZGRVJfU0laRSAxMDAKKyNkZWZpbmUgU0FYX0NPTVBBVF9NT0RFIEJBRF9DQVNUICJTQVggY29tcGF0aWJpbGl0eSBtb2RlIGRvY3VtZW50IgorCisvKgorICogTGlzdCBvZiBYTUwgcHJlZml4ZWQgUEkgYWxsb3dlZCBieSBXM0Mgc3BlY3MKKyAqLworCitzdGF0aWMgY29uc3QgY2hhciAqeG1sVzNDUElzW10gPSB7CisgICAgInhtbC1zdHlsZXNoZWV0IiwKKyAgICBOVUxMCit9OworCisKKy8qIERFUFIgdm9pZCB4bWxQYXJzZXJIYW5kbGVSZWZlcmVuY2UoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KTsgKi8KK3N0YXRpYyB4bWxFbnRpdHlQdHIgeG1sUGFyc2VTdHJpbmdQRVJlZmVyZW5jZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqKnN0cik7CisKK3N0YXRpYyB4bWxQYXJzZXJFcnJvcnMKK3htbFBhcnNlRXh0ZXJuYWxFbnRpdHlQcml2YXRlKHhtbERvY1B0ciBkb2MsIHhtbFBhcnNlckN0eHRQdHIgb2xkY3R4dCwKKwkgICAgICAgICAgICAgIHhtbFNBWEhhbmRsZXJQdHIgc2F4LAorCQkgICAgICB2b2lkICp1c2VyX2RhdGEsIGludCBkZXB0aCwgY29uc3QgeG1sQ2hhciAqVVJMLAorCQkgICAgICBjb25zdCB4bWxDaGFyICpJRCwgeG1sTm9kZVB0ciAqbGlzdCk7CisKK3N0YXRpYyBpbnQKK3htbEN0eHRVc2VPcHRpb25zSW50ZXJuYWwoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcpOworI2lmZGVmIExJQlhNTF9MRUdBQ1lfRU5BQkxFRAorc3RhdGljIHZvaWQKK3htbEFkZEVudGl0eVJlZmVyZW5jZSh4bWxFbnRpdHlQdHIgZW50LCB4bWxOb2RlUHRyIGZpcnN0Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGxhc3ROb2RlKTsKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KKworc3RhdGljIHhtbFBhcnNlckVycm9ycworeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5SW50ZXJuYWwoeG1sUGFyc2VyQ3R4dFB0ciBvbGRjdHh0LAorCQkgICAgICBjb25zdCB4bWxDaGFyICpzdHJpbmcsIHZvaWQgKnVzZXJfZGF0YSwgeG1sTm9kZVB0ciAqbHN0KTsKKworc3RhdGljIGludAoreG1sTG9hZEVudGl0eUNvbnRlbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxFbnRpdHlQdHIgZW50aXR5KTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAJCVNvbWUgZmFjdG9yaXplZCBlcnJvciByb3V0aW5lcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sRXJyQXR0cmlidXRlRHVwOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBwcmVmaXg6ICB0aGUgYXR0cmlidXRlIHByZWZpeAorICogQGxvY2FsbmFtZTogIHRoZSBhdHRyaWJ1dGUgbG9jYWxuYW1lCisgKgorICogSGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIGF0dHJpYnV0ZSBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sRXJyQXR0cmlidXRlRHVwKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbG9jYWxuYW1lKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgorICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCisJcmV0dXJuOworICAgIGlmIChjdHh0ICE9IE5VTEwpCisJY3R4dC0+ZXJyTm8gPSBYTUxfRVJSX0FUVFJJQlVURV9SRURFRklORUQ7CisKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0FUVFJJQlVURV9SRURFRklORUQsIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBsb2NhbG5hbWUsIE5VTEwsIE5VTEwsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAiQXR0cmlidXRlICVzIHJlZGVmaW5lZFxuIiwgbG9jYWxuYW1lKTsKKyAgICBlbHNlCisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0FUVFJJQlVURV9SRURFRklORUQsIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBwcmVmaXgsIChjb25zdCBjaGFyICopIGxvY2FsbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIDAsICJBdHRyaWJ1dGUgJXM6JXMgcmVkZWZpbmVkXG4iLCBwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbG5hbWUpOworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwljdHh0LT53ZWxsRm9ybWVkID0gMDsKKwlpZiAoY3R4dC0+cmVjb3ZlcnkgPT0gMCkKKwkgICAgY3R4dC0+ZGlzYWJsZVNBWCA9IDE7CisgICAgfQorfQorCisvKioKKyAqIHhtbEZhdGFsRXJyOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9uIHN0cmluZworICoKKyAqIEhhbmRsZSBhIGZhdGFsIHBhcnNlciBlcnJvciwgaS5lLiB2aW9sYXRpbmcgV2VsbC1Gb3JtZWRuZXNzIGNvbnN0cmFpbnRzCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGYXRhbEVycih4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwgY29uc3QgY2hhciAqaW5mbykKK3sKKyAgICBjb25zdCBjaGFyICplcnJtc2c7CisKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmRpc2FibGVTQVggIT0gMCkgJiYKKyAgICAgICAgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpKQorCXJldHVybjsKKyAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgICAgIGNhc2UgWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGOgorICAgICAgICAgICAgZXJybXNnID0gIkNoYXJSZWY6IGludmFsaWQgaGV4YWRlY2ltYWwgdmFsdWVcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0lOVkFMSURfREVDX0NIQVJSRUY6CisgICAgICAgICAgICBlcnJtc2cgPSAiQ2hhclJlZjogaW52YWxpZCBkZWNpbWFsIHZhbHVlXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9JTlZBTElEX0NIQVJSRUY6CisgICAgICAgICAgICBlcnJtc2cgPSAiQ2hhclJlZjogaW52YWxpZCB2YWx1ZVxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfSU5URVJOQUxfRVJST1I6CisgICAgICAgICAgICBlcnJtc2cgPSAiaW50ZXJuYWwgZXJyb3IiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9QRVJFRl9BVF9FT0Y6CisgICAgICAgICAgICBlcnJtc2cgPSAiUEVSZWZlcmVuY2UgYXQgZW5kIG9mIGRvY3VtZW50XG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9QRVJFRl9JTl9QUk9MT0c6CisgICAgICAgICAgICBlcnJtc2cgPSAiUEVSZWZlcmVuY2UgaW4gcHJvbG9nXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9QRVJFRl9JTl9FUElMT0c6CisgICAgICAgICAgICBlcnJtc2cgPSAiUEVSZWZlcmVuY2UgaW4gZXBpbG9nXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9QRVJFRl9OT19OQU1FOgorICAgICAgICAgICAgZXJybXNnID0gIlBFUmVmZXJlbmNlOiBubyBuYW1lXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9QRVJFRl9TRU1JQ09MX01JU1NJTkc6CisgICAgICAgICAgICBlcnJtc2cgPSAiUEVSZWZlcmVuY2U6IGV4cGVjdGluZyAnOydcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VOVElUWV9MT09QOgorICAgICAgICAgICAgZXJybXNnID0gIkRldGVjdGVkIGFuIGVudGl0eSByZWZlcmVuY2UgbG9vcFxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfRU5USVRZX05PVF9TVEFSVEVEOgorICAgICAgICAgICAgZXJybXNnID0gIkVudGl0eVZhbHVlOiBcIiBvciAnIGV4cGVjdGVkXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9FTlRJVFlfUEVfSU5URVJOQUw6CisgICAgICAgICAgICBlcnJtc2cgPSAiUEVSZWZlcmVuY2VzIGZvcmJpZGRlbiBpbiBpbnRlcm5hbCBzdWJzZXRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VOVElUWV9OT1RfRklOSVNIRUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiRW50aXR5VmFsdWU6IFwiIG9yICcgZXhwZWN0ZWRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0FUVFJJQlVURV9OT1RfU1RBUlRFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJBdHRWYWx1ZTogXCIgb3IgJyBleHBlY3RlZFxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfTFRfSU5fQVRUUklCVVRFOgorICAgICAgICAgICAgZXJybXNnID0gIlVuZXNjYXBlZCAnPCcgbm90IGFsbG93ZWQgaW4gYXR0cmlidXRlcyB2YWx1ZXNcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0xJVEVSQUxfTk9UX1NUQVJURUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiU3lzdGVtTGl0ZXJhbCBcIiBvciAnIGV4cGVjdGVkXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9MSVRFUkFMX05PVF9GSU5JU0hFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJVbmZpbmlzaGVkIFN5c3RlbSBvciBQdWJsaWMgSUQgXCIgb3IgJyBleHBlY3RlZFxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfTUlTUExBQ0VEX0NEQVRBX0VORDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJTZXF1ZW5jZSAnXV0+JyBub3QgYWxsb3dlZCBpbiBjb250ZW50XG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9VUklfUkVRVUlSRUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiU1lTVEVNIG9yIFBVQkxJQywgdGhlIFVSSSBpcyBtaXNzaW5nXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9QVUJJRF9SRVFVSVJFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJQVUJMSUMsIHRoZSBQdWJsaWMgSWRlbnRpZmllciBpcyBtaXNzaW5nXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJDb21tZW50IG11c3Qgbm90IGNvbnRhaW4gJy0tJyAoZG91YmxlLWh5cGhlbilcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX1BJX05PVF9TVEFSVEVEOgorICAgICAgICAgICAgZXJybXNnID0gInhtbFBhcnNlUEkgOiBubyB0YXJnZXQgbmFtZVxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfUkVTRVJWRURfWE1MX05BTUU6CisgICAgICAgICAgICBlcnJtc2cgPSAiSW52YWxpZCBQSSBuYW1lXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9OT1RBVElPTl9OT1RfU1RBUlRFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJOT1RBVElPTjogTmFtZSBleHBlY3RlZCBoZXJlXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9OT1RBVElPTl9OT1RfRklOSVNIRUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiJz4nIHJlcXVpcmVkIHRvIGNsb3NlIE5PVEFUSU9OIGRlY2xhcmF0aW9uXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9WQUxVRV9SRVFVSVJFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJFbnRpdHkgdmFsdWUgcmVxdWlyZWRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX1VSSV9GUkFHTUVOVDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJGcmFnbWVudCBub3QgYWxsb3dlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0FUVExJU1RfTk9UX1NUQVJURUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiJygnIHJlcXVpcmVkIHRvIHN0YXJ0IEFUVExJU1QgZW51bWVyYXRpb25cbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX05NVE9LRU5fUkVRVUlSRUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiTm1Ub2tlbiBleHBlY3RlZCBpbiBBVFRMSVNUIGVudW1lcmF0aW9uXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICInKScgcmVxdWlyZWQgdG8gZmluaXNoIEFUVExJU1QgZW51bWVyYXRpb25cbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX01JWEVEX05PVF9TVEFSVEVEOgorICAgICAgICAgICAgZXJybXNnID0gIk1peGVkQ29udGVudERlY2wgOiAnfCcgb3IgJykqJyBleHBlY3RlZFxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfUENEQVRBX1JFUVVJUkVEOgorICAgICAgICAgICAgZXJybXNnID0gIk1peGVkQ29udGVudERlY2wgOiAnI1BDREFUQScgZXhwZWN0ZWRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVEOgorICAgICAgICAgICAgZXJybXNnID0gIkNvbnRlbnREZWNsIDogTmFtZSBvciAnKCcgZXhwZWN0ZWRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VMRU1DT05URU5UX05PVF9GSU5JU0hFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJDb250ZW50RGVjbCA6ICcsJyAnfCcgb3IgJyknIGV4cGVjdGVkXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9QRVJFRl9JTl9JTlRfU1VCU0VUOgorICAgICAgICAgICAgZXJybXNnID0KKyAgICAgICAgICAgICAgICAiUEVSZWZlcmVuY2U6IGZvcmJpZGRlbiB3aXRoaW4gbWFya3VwIGRlY2wgaW4gaW50ZXJuYWwgc3Vic2V0XG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9HVF9SRVFVSVJFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJleHBlY3RlZCAnPidcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0NPTkRTRUNfSU5WQUxJRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJYTUwgY29uZGl0aW9uYWwgc2VjdGlvbiAnWycgZXhwZWN0ZWRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVEOgorICAgICAgICAgICAgZXJybXNnID0gIkNvbnRlbnQgZXJyb3IgaW4gdGhlIGV4dGVybmFsIHN1YnNldFxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfQ09ORFNFQ19JTlZBTElEX0tFWVdPUkQ6CisgICAgICAgICAgICBlcnJtc2cgPQorICAgICAgICAgICAgICAgICJjb25kaXRpb25hbCBzZWN0aW9uIElOQ0xVREUgb3IgSUdOT1JFIGtleXdvcmQgZXhwZWN0ZWRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0NPTkRTRUNfTk9UX0ZJTklTSEVEOgorICAgICAgICAgICAgZXJybXNnID0gIlhNTCBjb25kaXRpb25hbCBzZWN0aW9uIG5vdCBjbG9zZWRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX1hNTERFQ0xfTk9UX1NUQVJURUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiVGV4dCBkZWNsYXJhdGlvbiAnPD94bWwnIHJlcXVpcmVkXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9YTUxERUNMX05PVF9GSU5JU0hFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJwYXJzaW5nIFhNTCBkZWNsYXJhdGlvbjogJz8+JyBleHBlY3RlZFxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfRVhUX0VOVElUWV9TVEFOREFMT05FOgorICAgICAgICAgICAgZXJybXNnID0gImV4dGVybmFsIHBhcnNlZCBlbnRpdGllcyBjYW5ub3QgYmUgc3RhbmRhbG9uZVxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORzoKKyAgICAgICAgICAgIGVycm1zZyA9ICJFbnRpdHlSZWY6IGV4cGVjdGluZyAnOydcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0RPQ1RZUEVfTk9UX0ZJTklTSEVEOgorICAgICAgICAgICAgZXJybXNnID0gIkRPQ1RZUEUgaW1wcm9wZXJseSB0ZXJtaW5hdGVkXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9MVFNMQVNIX1JFUVVJUkVEOgorICAgICAgICAgICAgZXJybXNnID0gIkVuZFRhZzogJzwvJyBub3QgZm91bmRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VRVUFMX1JFUVVJUkVEOgorICAgICAgICAgICAgZXJybXNnID0gImV4cGVjdGVkICc9J1xuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiU3RyaW5nIG5vdCBjbG9zZWQgZXhwZWN0aW5nIFwiIG9yICdcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRDoKKyAgICAgICAgICAgIGVycm1zZyA9ICJTdHJpbmcgbm90IHN0YXJ0ZWQgZXhwZWN0aW5nICcgb3IgXCJcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VOQ09ESU5HX05BTUU6CisgICAgICAgICAgICBlcnJtc2cgPSAiSW52YWxpZCBYTUwgZW5jb2RpbmcgbmFtZVxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfU1RBTkRBTE9ORV9WQUxVRToKKyAgICAgICAgICAgIGVycm1zZyA9ICJzdGFuZGFsb25lIGFjY2VwdHMgb25seSAneWVzJyBvciAnbm8nXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9ET0NVTUVOVF9FTVBUWToKKyAgICAgICAgICAgIGVycm1zZyA9ICJEb2N1bWVudCBpcyBlbXB0eVxuIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfRE9DVU1FTlRfRU5EOgorICAgICAgICAgICAgZXJybXNnID0gIkV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnRcbiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VEOgorICAgICAgICAgICAgZXJybXNnID0gImNodW5rIGlzIG5vdCB3ZWxsIGJhbGFuY2VkXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9FWFRSQV9DT05URU5UOgorICAgICAgICAgICAgZXJybXNnID0gImV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB3ZWxsIGJhbGFuY2VkIGNodW5rXG4iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9WRVJTSU9OX01JU1NJTkc6CisgICAgICAgICAgICBlcnJtc2cgPSAiTWFsZm9ybWVkIGRlY2xhcmF0aW9uIGV4cGVjdGluZyB2ZXJzaW9uXG4iOworICAgICAgICAgICAgYnJlYWs7CisjaWYgMAorICAgICAgICBjYXNlOgorICAgICAgICAgICAgZXJybXNnID0gIlxuIjsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBlcnJtc2cgPSAiVW5yZWdpc3RlcmVkIGVycm9yIG1lc3NhZ2VcbiI7CisgICAgfQorICAgIGlmIChjdHh0ICE9IE5VTEwpCisJY3R4dC0+ZXJyTm8gPSBlcnJvcjsKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgaW5mbywgTlVMTCwgTlVMTCwgMCwgMCwgZXJybXNnLAorICAgICAgICAgICAgICAgICAgICBpbmZvKTsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisJY3R4dC0+d2VsbEZvcm1lZCA9IDA7CisJaWYgKGN0eHQtPnJlY292ZXJ5ID09IDApCisJICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgIH0KK30KKworLyoqCisgKiB4bWxGYXRhbEVyck1zZzoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqCisgKiBIYW5kbGUgYSBmYXRhbCBwYXJzZXIgZXJyb3IsIGkuZS4gdmlvbGF0aW5nIFdlbGwtRm9ybWVkbmVzcyBjb25zdHJhaW50cworICovCitzdGF0aWMgdm9pZAoreG1sRmF0YWxFcnJNc2coeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2cpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwljdHh0LT5lcnJObyA9IGVycm9yOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAwLCAiJXMiLCBtc2cpOworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwljdHh0LT53ZWxsRm9ybWVkID0gMDsKKwlpZiAoY3R4dC0+cmVjb3ZlcnkgPT0gMCkKKwkgICAgY3R4dC0+ZGlzYWJsZVNBWCA9IDE7CisgICAgfQorfQorCisvKioKKyAqIHhtbFdhcm5pbmdNc2c6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAc3RyMTogIGV4dHJhIGRhdGEKKyAqIEBzdHIyOiAgZXh0cmEgZGF0YQorICoKKyAqIEhhbmRsZSBhIHdhcm5pbmcuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxXYXJuaW5nTXNnKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIpCit7CisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzY2hhbm5lbCA9IE5VTEw7CisKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmRpc2FibGVTQVggIT0gMCkgJiYKKyAgICAgICAgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpKQorCXJldHVybjsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+c2F4LT5pbml0aWFsaXplZCA9PSBYTUxfU0FYMl9NQUdJQykpCisgICAgICAgIHNjaGFubmVsID0gY3R4dC0+c2F4LT5zZXJyb3I7CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsCisgICAgICAgICAgICAgICAgICAgIChjdHh0LT5zYXgpID8gY3R4dC0+c2F4LT53YXJuaW5nIDogTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+dXNlckRhdGEsCisgICAgICAgICAgICAgICAgICAgIGN0eHQsIE5VTEwsIFhNTF9GUk9NX1BBUlNFUiwgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfV0FSTklORywgTlVMTCwgMCwKKwkJICAgIChjb25zdCBjaGFyICopIHN0cjEsIChjb25zdCBjaGFyICopIHN0cjIsIE5VTEwsIDAsIDAsCisJCSAgICBtc2csIChjb25zdCBjaGFyICopIHN0cjEsIChjb25zdCBjaGFyICopIHN0cjIpOworICAgIH0gZWxzZSB7CisgICAgICAgIF9feG1sUmFpc2VFcnJvcihzY2hhbm5lbCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9XQVJOSU5HLCBOVUxMLCAwLAorCQkgICAgKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMiwgTlVMTCwgMCwgMCwKKwkJICAgIG1zZywgKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMik7CisgICAgfQorfQorCisvKioKKyAqIHhtbFZhbGlkaXR5RXJyb3I6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAc3RyMTogIGV4dHJhIGRhdGEKKyAqCisgKiBIYW5kbGUgYSB2YWxpZGl0eSBlcnJvci4KKyAqLworc3RhdGljIHZvaWQKK3htbFZhbGlkaXR5RXJyb3IoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikKK3sKKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNjaGFubmVsID0gTlVMTDsKKworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgorICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCisJcmV0dXJuOworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwljdHh0LT5lcnJObyA9IGVycm9yOworCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmluaXRpYWxpemVkID09IFhNTF9TQVgyX01BR0lDKSkKKwkgICAgc2NoYW5uZWwgPSBjdHh0LT5zYXgtPnNlcnJvcjsKKyAgICB9CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsCisgICAgICAgICAgICAgICAgICAgIGN0eHQtPnZjdHh0LmVycm9yLCBjdHh0LT52Y3R4dC51c2VyRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgY3R4dCwgTlVMTCwgWE1MX0ZST01fRFRELCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwgKGNvbnN0IGNoYXIgKikgc3RyMSwKKwkJICAgIChjb25zdCBjaGFyICopIHN0cjIsIE5VTEwsIDAsIDAsCisJCSAgICBtc2csIChjb25zdCBjaGFyICopIHN0cjEsIChjb25zdCBjaGFyICopIHN0cjIpOworCWN0eHQtPnZhbGlkID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgIGN0eHQsIE5VTEwsIFhNTF9GUk9NX0RURCwgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsIChjb25zdCBjaGFyICopIHN0cjEsCisJCSAgICAoY29uc3QgY2hhciAqKSBzdHIyLCBOVUxMLCAwLCAwLAorCQkgICAgbXNnLCAoY29uc3QgY2hhciAqKSBzdHIxLCAoY29uc3QgY2hhciAqKSBzdHIyKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sRmF0YWxFcnJNc2dJbnQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAdmFsOiAgYW4gaW50ZWdlciB2YWx1ZQorICoKKyAqIEhhbmRsZSBhIGZhdGFsIHBhcnNlciBlcnJvciwgaS5lLiB2aW9sYXRpbmcgV2VsbC1Gb3JtZWRuZXNzIGNvbnN0cmFpbnRzCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGYXRhbEVyck1zZ0ludCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgaW50IHZhbCkKK3sKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmRpc2FibGVTQVggIT0gMCkgJiYKKyAgICAgICAgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpKQorCXJldHVybjsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKQorCWN0eHQtPmVyck5vID0gZXJyb3I7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgIGN0eHQsIE5VTEwsIFhNTF9GUk9NX1BBUlNFUiwgZXJyb3IsIFhNTF9FUlJfRkFUQUwsCisgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIHZhbCwgMCwgbXNnLCB2YWwpOworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwljdHh0LT53ZWxsRm9ybWVkID0gMDsKKwlpZiAoY3R4dC0+cmVjb3ZlcnkgPT0gMCkKKwkgICAgY3R4dC0+ZGlzYWJsZVNBWCA9IDE7CisgICAgfQorfQorCisvKioKKyAqIHhtbEZhdGFsRXJyTXNnU3RySW50U3RyOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBtc2c6ICB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6ICBhbiBzdHJpbmcgaW5mbworICogQHZhbDogIGFuIGludGVnZXIgdmFsdWUKKyAqIEBzdHIyOiAgYW4gc3RyaW5nIGluZm8KKyAqCisgKiBIYW5kbGUgYSBmYXRhbCBwYXJzZXIgZXJyb3IsIGkuZS4gdmlvbGF0aW5nIFdlbGwtRm9ybWVkbmVzcyBjb25zdHJhaW50cworICovCitzdGF0aWMgdm9pZAoreG1sRmF0YWxFcnJNc2dTdHJJbnRTdHIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKnN0cjEsIGludCB2YWwsIAorCQkgIGNvbnN0IHhtbENoYXIgKnN0cjIpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwljdHh0LT5lcnJObyA9IGVycm9yOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsIGVycm9yLCBYTUxfRVJSX0ZBVEFMLAorICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCAoY29uc3QgY2hhciAqKSBzdHIxLCAoY29uc3QgY2hhciAqKSBzdHIyLAorCQkgICAgTlVMTCwgdmFsLCAwLCBtc2csIHN0cjEsIHZhbCwgc3RyMik7CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCWN0eHQtPndlbGxGb3JtZWQgPSAwOworCWlmIChjdHh0LT5yZWNvdmVyeSA9PSAwKQorCSAgICBjdHh0LT5kaXNhYmxlU0FYID0gMTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sRmF0YWxFcnJNc2dTdHI6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAdmFsOiAgYSBzdHJpbmcgdmFsdWUKKyAqCisgKiBIYW5kbGUgYSBmYXRhbCBwYXJzZXIgZXJyb3IsIGkuZS4gdmlvbGF0aW5nIFdlbGwtRm9ybWVkbmVzcyBjb25zdHJhaW50cworICovCitzdGF0aWMgdm9pZAoreG1sRmF0YWxFcnJNc2dTdHIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKiB2YWwpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwljdHh0LT5lcnJObyA9IGVycm9yOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICBYTUxfRlJPTV9QQVJTRVIsIGVycm9yLCBYTUxfRVJSX0ZBVEFMLAorICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCAoY29uc3QgY2hhciAqKSB2YWwsIE5VTEwsIE5VTEwsIDAsIDAsIG1zZywKKyAgICAgICAgICAgICAgICAgICAgdmFsKTsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisJY3R4dC0+d2VsbEZvcm1lZCA9IDA7CisJaWYgKGN0eHQtPnJlY292ZXJ5ID09IDApCisJICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgIH0KK30KKworLyoqCisgKiB4bWxFcnJNc2dTdHI6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAdmFsOiAgYSBzdHJpbmcgdmFsdWUKKyAqCisgKiBIYW5kbGUgYSBub24gZmF0YWwgcGFyc2VyIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxFcnJNc2dTdHIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKiB2YWwpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwljdHh0LT5lcnJObyA9IGVycm9yOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICBYTUxfRlJPTV9QQVJTRVIsIGVycm9yLCBYTUxfRVJSX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCAoY29uc3QgY2hhciAqKSB2YWwsIE5VTEwsIE5VTEwsIDAsIDAsIG1zZywKKyAgICAgICAgICAgICAgICAgICAgdmFsKTsKK30KKworLyoqCisgKiB4bWxOc0VycjoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UKKyAqIEBpbmZvMTogIGV4dHJhIGluZm9ybWF0aW9uIHN0cmluZworICogQGluZm8yOiAgZXh0cmEgaW5mb3JtYXRpb24gc3RyaW5nCisgKgorICogSGFuZGxlIGEgZmF0YWwgcGFyc2VyIGVycm9yLCBpLmUuIHZpb2xhdGluZyBXZWxsLUZvcm1lZG5lc3MgY29uc3RyYWludHMKKyAqLworc3RhdGljIHZvaWQKK3htbE5zRXJyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgY29uc3QgY2hhciAqbXNnLAorICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGluZm8xLCBjb25zdCB4bWxDaGFyICogaW5mbzIsCisgICAgICAgICBjb25zdCB4bWxDaGFyICogaW5mbzMpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwljdHh0LT5lcnJObyA9IGVycm9yOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9OQU1FU1BBQ0UsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLCAoY29uc3QgY2hhciAqKSBpbmZvMSwKKyAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgaW5mbzIsIChjb25zdCBjaGFyICopIGluZm8zLCAwLCAwLCBtc2csCisgICAgICAgICAgICAgICAgICAgIGluZm8xLCBpbmZvMiwgaW5mbzMpOworICAgIGlmIChjdHh0ICE9IE5VTEwpCisJY3R4dC0+bnNXZWxsRm9ybWVkID0gMDsKK30KKworLyoqCisgKiB4bWxOc1dhcm4KKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UKKyAqIEBpbmZvMTogIGV4dHJhIGluZm9ybWF0aW9uIHN0cmluZworICogQGluZm8yOiAgZXh0cmEgaW5mb3JtYXRpb24gc3RyaW5nCisgKgorICogSGFuZGxlIGEgZmF0YWwgcGFyc2VyIGVycm9yLCBpLmUuIHZpb2xhdGluZyBXZWxsLUZvcm1lZG5lc3MgY29uc3RyYWludHMKKyAqLworc3RhdGljIHZvaWQKK3htbE5zV2Fybih4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywKKyAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBpbmZvMSwgY29uc3QgeG1sQ2hhciAqIGluZm8yLAorICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGluZm8zKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgorICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCisJcmV0dXJuOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9OQU1FU1BBQ0UsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX1dBUk5JTkcsIE5VTEwsIDAsIChjb25zdCBjaGFyICopIGluZm8xLAorICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBpbmZvMiwgKGNvbnN0IGNoYXIgKikgaW5mbzMsIDAsIDAsIG1zZywKKyAgICAgICAgICAgICAgICAgICAgaW5mbzEsIGluZm8yLCBpbmZvMyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQlMaWJyYXJ5IHdpZGUgb3B0aW9ucwkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAgKiB4bWxIYXNGZWF0dXJlOgorICAqIEBmZWF0dXJlOiB0aGUgZmVhdHVyZSB0byBiZSBleGFtaW5lZAorICAqCisgICogRXhhbWluZXMgaWYgdGhlIGxpYnJhcnkgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBhIGdpdmVuIGZlYXR1cmUuCisgICoKKyAgKiBSZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUgaWYgdGhlIGZlYXR1cmUgZXhpc3QsIG90aGVyd2lzZSB6ZXJvLgorICAqIFJldHVybnMgemVybyAoMCkgaWYgdGhlIGZlYXR1cmUgZG9lcyBub3QgZXhpc3Qgb3IgYW4gdW5rbm93bgorICAqIHVua25vd24gZmVhdHVyZSBpcyByZXF1ZXN0ZWQsIG5vbi16ZXJvIG90aGVyd2lzZS4KKyAgKi8KK2ludAoreG1sSGFzRmVhdHVyZSh4bWxGZWF0dXJlIGZlYXR1cmUpCit7CisgICAgc3dpdGNoIChmZWF0dXJlKSB7CisJY2FzZSBYTUxfV0lUSF9USFJFQUQ6CisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisJICAgIHJldHVybigxKTsKKyNlbHNlCisJICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1RSRUU6CisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX09VVFBVVDoKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9QVVNIOgorI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9SRUFERVI6CisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisgICAgICAgICAgICByZXR1cm4oMSk7CisjZWxzZQorICAgICAgICAgICAgcmV0dXJuKDApOworI2VuZGlmCisgICAgICAgIGNhc2UgWE1MX1dJVEhfUEFUVEVSTjoKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgICAgICAgICByZXR1cm4oMSk7CisjZWxzZQorICAgICAgICAgICAgcmV0dXJuKDApOworI2VuZGlmCisgICAgICAgIGNhc2UgWE1MX1dJVEhfV1JJVEVSOgorI2lmZGVmIExJQlhNTF9XUklURVJfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1NBWDE6CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX0ZUUDoKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9IVFRQOgorI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9WQUxJRDoKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX0hUTUw6CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX0xFR0FDWToKKyNpZmRlZiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9DMTROOgorI2lmZGVmIExJQlhNTF9DMTROX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9DQVRBTE9HOgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9YUEFUSDoKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1hQVFI6CisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1hJTkNMVURFOgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECisgICAgICAgICAgICByZXR1cm4oMSk7CisjZWxzZQorICAgICAgICAgICAgcmV0dXJuKDApOworI2VuZGlmCisgICAgICAgIGNhc2UgWE1MX1dJVEhfSUNPTlY6CisjaWZkZWYgTElCWE1MX0lDT05WX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9JU084ODU5WDoKKyNpZmRlZiBMSUJYTUxfSVNPODg1OVhfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1VOSUNPREU6CisjaWZkZWYgTElCWE1MX1VOSUNPREVfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1JFR0VYUDoKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKKyAgICAgICAgICAgIHJldHVybigxKTsKKyNlbHNlCisgICAgICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfV0lUSF9BVVRPTUFUQToKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX0VYUFI6CisjaWZkZWYgTElCWE1MX0VYUFJfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1NDSEVNQVM6CisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1NDSEVNQVRST046CisjaWZkZWYgTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX01PRFVMRVM6CisjaWZkZWYgTElCWE1MX01PRFVMRVNfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX0RFQlVHOgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisgICAgICAgICAgICByZXR1cm4oMSk7CisjZWxzZQorICAgICAgICAgICAgcmV0dXJuKDApOworI2VuZGlmCisgICAgICAgIGNhc2UgWE1MX1dJVEhfREVCVUdfTUVNOgorI2lmZGVmIERFQlVHX01FTU9SWV9MT0NBVElPTgorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX0RFQlVHX1JVTjoKKyNpZmRlZiBMSUJYTUxfREVCVUdfUlVOVElNRQorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9XSVRIX1pMSUI6CisjaWZkZWYgTElCWE1MX1pMSUJfRU5BQkxFRAorICAgICAgICAgICAgcmV0dXJuKDEpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybigwKTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICAgfQorICAgICByZXR1cm4oMCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQlTQVgyIGRlZmF1bHRlZCBhdHRyaWJ1dGVzIGhhbmRsaW5nCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbERldGVjdFNBWDI6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvIHRoZSBTQVgyIGRldGVjdGlvbiBhbmQgc3BlY2lmaWMgaW50aWFsaXphdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sRGV0ZWN0U0FYMih4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm47CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGlmICgoY3R4dC0+c2F4KSAmJiAgKGN0eHQtPnNheC0+aW5pdGlhbGl6ZWQgPT0gWE1MX1NBWDJfTUFHSUMpICYmCisgICAgICAgICgoY3R4dC0+c2F4LT5zdGFydEVsZW1lbnROcyAhPSBOVUxMKSB8fAorICAgICAgICAgKGN0eHQtPnNheC0+ZW5kRWxlbWVudE5zICE9IE5VTEwpKSkgY3R4dC0+c2F4MiA9IDE7CisjZWxzZQorICAgIGN0eHQtPnNheDIgPSAxOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKworICAgIGN0eHQtPnN0cl94bWwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJ4bWwiLCAzKTsKKyAgICBjdHh0LT5zdHJfeG1sbnMgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJ4bWxucyIsIDUpOworICAgIGN0eHQtPnN0cl94bWxfbnMgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIFhNTF9YTUxfTkFNRVNQQUNFLCAzNik7CisgICAgaWYgKChjdHh0LT5zdHJfeG1sPT1OVUxMKSB8fCAoY3R4dC0+c3RyX3htbG5zPT1OVUxMKSB8fCAKKyAgICAJCShjdHh0LT5zdHJfeG1sX25zID09IE5VTEwpKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKyAgICB9Cit9CisKK3R5cGVkZWYgc3RydWN0IF94bWxEZWZBdHRycyB4bWxEZWZBdHRyczsKK3R5cGVkZWYgeG1sRGVmQXR0cnMgKnhtbERlZkF0dHJzUHRyOworc3RydWN0IF94bWxEZWZBdHRycyB7CisgICAgaW50IG5iQXR0cnM7CS8qIG51bWJlciBvZiBkZWZhdWx0ZWQgYXR0cmlidXRlcyBvbiB0aGF0IGVsZW1lbnQgKi8KKyAgICBpbnQgbWF4QXR0cnM7ICAgICAgIC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlc1s1XTsgLyogYXJyYXkgb2YgbG9jYWxuYW1lL3ByZWZpeC92YWx1ZXMvZXh0ZXJuYWwgKi8KK307CisKKy8qKgorICogeG1sQXR0ck5vcm1hbGl6ZVNwYWNlOgorICogQHNyYzogdGhlIHNvdXJjZSBzdHJpbmcKKyAqIEBkc3Q6IHRoZSB0YXJnZXQgc3RyaW5nCisgKgorICogTm9ybWFsaXplIHRoZSBzcGFjZSBpbiBub24gQ0RBVEEgYXR0cmlidXRlIHZhbHVlczoKKyAqIElmIHRoZSBhdHRyaWJ1dGUgdHlwZSBpcyBub3QgQ0RBVEEsIHRoZW4gdGhlIFhNTCBwcm9jZXNzb3IgTVVTVCBmdXJ0aGVyCisgKiBwcm9jZXNzIHRoZSBub3JtYWxpemVkIGF0dHJpYnV0ZSB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueSBsZWFkaW5nIGFuZAorICogdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHNwYWNlCisgKiAoI3gyMCkgY2hhcmFjdGVycyBieSBhIHNpbmdsZSBzcGFjZSAoI3gyMCkgY2hhcmFjdGVyLgorICogTm90ZSB0aGF0IHRoZSBzaXplIG9mIGRzdCBuZWVkIHRvIGJlIGF0IGxlYXN0IHNyYywgYW5kIGlmIG9uZSBkb2Vzbid0IG5lZWQKKyAqIHRvIHByZXNlcnZlIGRzdCAoYW5kIGl0IGRvZXNuJ3QgY29tZSBmcm9tIGEgZGljdGlvbmFyeSBvciByZWFkLW9ubHkpIHRoZW4KKyAqIHBhc3Npbmcgc3JjIGFzIGRzdCBpcyBqdXN0IGZpbmUuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5vcm1hbGl6ZWQgdmFsdWUgKGRzdCkgb3IgTlVMTCBpZiBubyBjb252ZXJzaW9uCisgKiAgICAgICAgIGlzIG5lZWRlZC4KKyAqLworc3RhdGljIHhtbENoYXIgKgoreG1sQXR0ck5vcm1hbGl6ZVNwYWNlKGNvbnN0IHhtbENoYXIgKnNyYywgeG1sQ2hhciAqZHN0KQoreworICAgIGlmICgoc3JjID09IE5VTEwpIHx8IChkc3QgPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIHdoaWxlICgqc3JjID09IDB4MjApIHNyYysrOworICAgIHdoaWxlICgqc3JjICE9IDApIHsKKwlpZiAoKnNyYyA9PSAweDIwKSB7CisJICAgIHdoaWxlICgqc3JjID09IDB4MjApIHNyYysrOworCSAgICBpZiAoKnNyYyAhPSAwKQorCQkqZHN0KysgPSAweDIwOworCX0gZWxzZSB7CisJICAgICpkc3QrKyA9ICpzcmMrKzsKKwl9CisgICAgfQorICAgICpkc3QgPSAwOworICAgIGlmIChkc3QgPT0gc3JjKQorICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXR1cm4oZHN0KTsKK30KKworLyoqCisgKiB4bWxBdHRyTm9ybWFsaXplU3BhY2UyOgorICogQHNyYzogdGhlIHNvdXJjZSBzdHJpbmcKKyAqCisgKiBOb3JtYWxpemUgdGhlIHNwYWNlIGluIG5vbiBDREFUQSBhdHRyaWJ1dGUgdmFsdWVzLCBhIHNsaWdodGx5IG1vcmUgY29tcGxleAorICogZnJvbnQgZW5kIHRvIGF2b2lkIGFsbG9jYXRpb24gcHJvYmxlbXMgd2hlbiBydW5uaW5nIG9uIGF0dHJpYnV0ZSB2YWx1ZXMKKyAqIGNvbWluZyBmcm9tIHRoZSBpbnB1dC4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbm9ybWFsaXplZCB2YWx1ZSAoZHN0KSBvciBOVUxMIGlmIG5vIGNvbnZlcnNpb24KKyAqICAgICAgICAgaXMgbmVlZGVkLgorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxBdHRyTm9ybWFsaXplU3BhY2UyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sQ2hhciAqc3JjLCBpbnQgKmxlbikKK3sKKyAgICBpbnQgaTsKKyAgICBpbnQgcmVtb3ZlX2hlYWQgPSAwOworICAgIGludCBuZWVkX3JlYWxsb2MgPSAwOworICAgIGNvbnN0IHhtbENoYXIgKmN1cjsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc3JjID09IE5VTEwpIHx8IChsZW4gPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpID0gKmxlbjsKKyAgICBpZiAoaSA8PSAwKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICBjdXIgPSBzcmM7CisgICAgd2hpbGUgKCpjdXIgPT0gMHgyMCkgeworICAgICAgICBjdXIrKzsKKwlyZW1vdmVfaGVhZCsrOworICAgIH0KKyAgICB3aGlsZSAoKmN1ciAhPSAwKSB7CisJaWYgKCpjdXIgPT0gMHgyMCkgeworCSAgICBjdXIrKzsKKwkgICAgaWYgKCgqY3VyID09IDB4MjApIHx8ICgqY3VyID09IDApKSB7CisJICAgICAgICBuZWVkX3JlYWxsb2MgPSAxOworCQlicmVhazsKKwkgICAgfQorCX0gZWxzZQorCSAgICBjdXIrKzsKKyAgICB9CisgICAgaWYgKG5lZWRfcmVhbGxvYykgeworICAgICAgICB4bWxDaGFyICpyZXQ7CisKKwlyZXQgPSB4bWxTdHJuZHVwKHNyYyArIHJlbW92ZV9oZWFkLCBpIC0gcmVtb3ZlX2hlYWQgKyAxKTsKKwlpZiAocmV0ID09IE5VTEwpIHsKKwkgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCXhtbEF0dHJOb3JtYWxpemVTcGFjZShyZXQsIHJldCk7CisJKmxlbiA9IChpbnQpIHN0cmxlbigoY29uc3QgY2hhciAqKXJldCk7CisgICAgICAgIHJldHVybihyZXQpOworICAgIH0gZWxzZSBpZiAocmVtb3ZlX2hlYWQpIHsKKyAgICAgICAgKmxlbiAtPSByZW1vdmVfaGVhZDsKKyAgICAgICAgbWVtbW92ZShzcmMsIHNyYyArIHJlbW92ZV9oZWFkLCAxICsgKmxlbik7CisJcmV0dXJuKHNyYyk7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxBZGREZWZBdHRyczoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAZnVsbG5hbWU6ICB0aGUgZWxlbWVudCBmdWxsbmFtZQorICogQGZ1bGxhdHRyOiAgdGhlIGF0dHJpYnV0ZSBmdWxsbmFtZQorICogQHZhbHVlOiAgdGhlIGF0dHJpYnV0ZSB2YWx1ZQorICoKKyAqIEFkZCBhIGRlZmF1bHRlZCBhdHRyaWJ1dGUgZm9yIGFuIGVsZW1lbnQKKyAqLworc3RhdGljIHZvaWQKK3htbEFkZERlZkF0dHJzKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmZ1bGxuYW1lLAorICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqZnVsbGF0dHIsCisgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIHhtbERlZkF0dHJzUHRyIGRlZmF1bHRzOworICAgIGludCBsZW47CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICpwcmVmaXg7CisKKyAgICAvKgorICAgICAqIEFsbG93cyB0byBkZXRlY3QgYXR0cmlidXRlIHJlZGVmaW5pdGlvbnMKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+YXR0c1NwZWNpYWwgIT0gTlVMTCkgeworICAgICAgICBpZiAoeG1sSGFzaExvb2t1cDIoY3R4dC0+YXR0c1NwZWNpYWwsIGZ1bGxuYW1lLCBmdWxsYXR0cikgIT0gTlVMTCkKKwkgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjdHh0LT5hdHRzRGVmYXVsdCA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPmF0dHNEZWZhdWx0ID0geG1sSGFzaENyZWF0ZURpY3QoMTAsIGN0eHQtPmRpY3QpOworCWlmIChjdHh0LT5hdHRzRGVmYXVsdCA9PSBOVUxMKQorCSAgICBnb3RvIG1lbV9lcnJvcjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIHNwbGl0IHRoZSBlbGVtZW50IG5hbWUgaW50byBwcmVmaXg6bG9jYWxuYW1lICwgdGhlIHN0cmluZyBmb3VuZAorICAgICAqIGFyZSB3aXRoaW4gdGhlIERURCBhbmQgdGhlbiBub3QgYXNzb2NpYXRlZCB0byBuYW1lc3BhY2UgbmFtZXMuCisgICAgICovCisgICAgbmFtZSA9IHhtbFNwbGl0UU5hbWUzKGZ1bGxuYW1lLCAmbGVuKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisgICAgICAgIG5hbWUgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIGZ1bGxuYW1lLCAtMSk7CisJcHJlZml4ID0gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBuYW1lID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBuYW1lLCAtMSk7CisJcHJlZml4ID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBmdWxsbmFtZSwgbGVuKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIG1ha2Ugc3VyZSB0aGVyZSBpcyBzb21lIHN0b3JhZ2UKKyAgICAgKi8KKyAgICBkZWZhdWx0cyA9IHhtbEhhc2hMb29rdXAyKGN0eHQtPmF0dHNEZWZhdWx0LCBuYW1lLCBwcmVmaXgpOworICAgIGlmIChkZWZhdWx0cyA9PSBOVUxMKSB7CisgICAgICAgIGRlZmF1bHRzID0gKHhtbERlZkF0dHJzUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbERlZkF0dHJzKSArCisJICAgICAgICAgICAgICAgICAgICg0ICogNSkgKiBzaXplb2YoY29uc3QgeG1sQ2hhciAqKSk7CisJaWYgKGRlZmF1bHRzID09IE5VTEwpCisJICAgIGdvdG8gbWVtX2Vycm9yOworCWRlZmF1bHRzLT5uYkF0dHJzID0gMDsKKwlkZWZhdWx0cy0+bWF4QXR0cnMgPSA0OworCWlmICh4bWxIYXNoVXBkYXRlRW50cnkyKGN0eHQtPmF0dHNEZWZhdWx0LCBuYW1lLCBwcmVmaXgsCisJICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHMsIE5VTEwpIDwgMCkgeworCSAgICB4bWxGcmVlKGRlZmF1bHRzKTsKKwkgICAgZ290byBtZW1fZXJyb3I7CisJfQorICAgIH0gZWxzZSBpZiAoZGVmYXVsdHMtPm5iQXR0cnMgPj0gZGVmYXVsdHMtPm1heEF0dHJzKSB7CisgICAgICAgIHhtbERlZkF0dHJzUHRyIHRlbXA7CisKKyAgICAgICAgdGVtcCA9ICh4bWxEZWZBdHRyc1B0cikgeG1sUmVhbGxvYyhkZWZhdWx0cywgc2l6ZW9mKHhtbERlZkF0dHJzKSArCisJCSAgICAgICAoMiAqIGRlZmF1bHRzLT5tYXhBdHRycyAqIDUpICogc2l6ZW9mKGNvbnN0IHhtbENoYXIgKikpOworCWlmICh0ZW1wID09IE5VTEwpCisJICAgIGdvdG8gbWVtX2Vycm9yOworCWRlZmF1bHRzID0gdGVtcDsKKwlkZWZhdWx0cy0+bWF4QXR0cnMgKj0gMjsKKwlpZiAoeG1sSGFzaFVwZGF0ZUVudHJ5MihjdHh0LT5hdHRzRGVmYXVsdCwgbmFtZSwgcHJlZml4LAorCSAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzLCBOVUxMKSA8IDApIHsKKwkgICAgeG1sRnJlZShkZWZhdWx0cyk7CisJICAgIGdvdG8gbWVtX2Vycm9yOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFNwbGl0IHRoZSBlbGVtZW50IG5hbWUgaW50byBwcmVmaXg6bG9jYWxuYW1lICwgdGhlIHN0cmluZyBmb3VuZAorICAgICAqIGFyZSB3aXRoaW4gdGhlIERURCBhbmQgaGVuIG5vdCBhc3NvY2lhdGVkIHRvIG5hbWVzcGFjZSBuYW1lcy4KKyAgICAgKi8KKyAgICBuYW1lID0geG1sU3BsaXRRTmFtZTMoZnVsbGF0dHIsICZsZW4pOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKyAgICAgICAgbmFtZSA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgZnVsbGF0dHIsIC0xKTsKKwlwcmVmaXggPSBOVUxMOworICAgIH0gZWxzZSB7CisgICAgICAgIG5hbWUgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIG5hbWUsIC0xKTsKKwlwcmVmaXggPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIGZ1bGxhdHRyLCBsZW4pOworICAgIH0KKworICAgIGRlZmF1bHRzLT52YWx1ZXNbNSAqIGRlZmF1bHRzLT5uYkF0dHJzXSA9IG5hbWU7CisgICAgZGVmYXVsdHMtPnZhbHVlc1s1ICogZGVmYXVsdHMtPm5iQXR0cnMgKyAxXSA9IHByZWZpeDsKKyAgICAvKiBpbnRlcm4gdGhlIHN0cmluZyBhbmQgcHJlY29tcHV0ZSB0aGUgZW5kICovCisgICAgbGVuID0geG1sU3RybGVuKHZhbHVlKTsKKyAgICB2YWx1ZSA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgdmFsdWUsIGxlbik7CisgICAgZGVmYXVsdHMtPnZhbHVlc1s1ICogZGVmYXVsdHMtPm5iQXR0cnMgKyAyXSA9IHZhbHVlOworICAgIGRlZmF1bHRzLT52YWx1ZXNbNSAqIGRlZmF1bHRzLT5uYkF0dHJzICsgM10gPSB2YWx1ZSArIGxlbjsKKyAgICBpZiAoY3R4dC0+ZXh0ZXJuYWwpCisgICAgICAgIGRlZmF1bHRzLT52YWx1ZXNbNSAqIGRlZmF1bHRzLT5uYkF0dHJzICsgNF0gPSBCQURfQ0FTVCAiZXh0ZXJuYWwiOworICAgIGVsc2UKKyAgICAgICAgZGVmYXVsdHMtPnZhbHVlc1s1ICogZGVmYXVsdHMtPm5iQXR0cnMgKyA0XSA9IE5VTEw7CisgICAgZGVmYXVsdHMtPm5iQXR0cnMrKzsKKworICAgIHJldHVybjsKKworbWVtX2Vycm9yOgorICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKyAgICByZXR1cm47Cit9CisKKy8qKgorICogeG1sQWRkU3BlY2lhbEF0dHI6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGZ1bGxuYW1lOiAgdGhlIGVsZW1lbnQgZnVsbG5hbWUKKyAqIEBmdWxsYXR0cjogIHRoZSBhdHRyaWJ1dGUgZnVsbG5hbWUKKyAqIEB0eXBlOiAgdGhlIGF0dHJpYnV0ZSB0eXBlCisgKgorICogUmVnaXN0ZXIgdGhpcyBhdHRyaWJ1dGUgdHlwZQorICovCitzdGF0aWMgdm9pZAoreG1sQWRkU3BlY2lhbEF0dHIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkgIGNvbnN0IHhtbENoYXIgKmZ1bGxuYW1lLAorCQkgIGNvbnN0IHhtbENoYXIgKmZ1bGxhdHRyLAorCQkgIGludCB0eXBlKQoreworICAgIGlmIChjdHh0LT5hdHRzU3BlY2lhbCA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPmF0dHNTcGVjaWFsID0geG1sSGFzaENyZWF0ZURpY3QoMTAsIGN0eHQtPmRpY3QpOworCWlmIChjdHh0LT5hdHRzU3BlY2lhbCA9PSBOVUxMKQorCSAgICBnb3RvIG1lbV9lcnJvcjsKKyAgICB9CisKKyAgICBpZiAoeG1sSGFzaExvb2t1cDIoY3R4dC0+YXR0c1NwZWNpYWwsIGZ1bGxuYW1lLCBmdWxsYXR0cikgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgeG1sSGFzaEFkZEVudHJ5MihjdHh0LT5hdHRzU3BlY2lhbCwgZnVsbG5hbWUsIGZ1bGxhdHRyLAorICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgKGxvbmcpIHR5cGUpOworICAgIHJldHVybjsKKworbWVtX2Vycm9yOgorICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKyAgICByZXR1cm47Cit9CisKKy8qKgorICogeG1sQ2xlYW5TcGVjaWFsQXR0ckNhbGxiYWNrOgorICoKKyAqIFJlbW92ZXMgQ0RBVEEgYXR0cmlidXRlcyBmcm9tIHRoZSBzcGVjaWFsIGF0dHJpYnV0ZSB0YWJsZQorICovCitzdGF0aWMgdm9pZAoreG1sQ2xlYW5TcGVjaWFsQXR0ckNhbGxiYWNrKHZvaWQgKnBheWxvYWQsIHZvaWQgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqZnVsbG5hbWUsIGNvbnN0IHhtbENoYXIgKmZ1bGxhdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnVudXNlZCBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGRhdGE7CisKKyAgICBpZiAoKChsb25nKSBwYXlsb2FkKSA9PSBYTUxfQVRUUklCVVRFX0NEQVRBKSB7CisgICAgICAgIHhtbEhhc2hSZW1vdmVFbnRyeTIoY3R4dC0+YXR0c1NwZWNpYWwsIGZ1bGxuYW1lLCBmdWxsYXR0ciwgTlVMTCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbENsZWFuU3BlY2lhbEF0dHI6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIFRyaW0gdGhlIGxpc3Qgb2YgYXR0cmlidXRlcyBkZWZpbmVkIHRvIHJlbW92ZSBhbGwgdGhvc2Ugb2YgdHlwZQorICogQ0RBVEEgYXMgdGhleSBhcmUgbm90IHNwZWNpYWwuIFRoaXMgY2FsbCBzaG91bGQgYmUgZG9uZSB3aGVuIGZpbmlzaGluZworICogdG8gcGFyc2UgdGhlIERURCBhbmQgYmVmb3JlIHN0YXJ0aW5nIHRvIHBhcnNlIHRoZSBkb2N1bWVudCByb290LgorICovCitzdGF0aWMgdm9pZAoreG1sQ2xlYW5TcGVjaWFsQXR0cih4bWxQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgaWYgKGN0eHQtPmF0dHNTcGVjaWFsID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIHhtbEhhc2hTY2FuRnVsbChjdHh0LT5hdHRzU3BlY2lhbCwgeG1sQ2xlYW5TcGVjaWFsQXR0ckNhbGxiYWNrLCBjdHh0KTsKKworICAgIGlmICh4bWxIYXNoU2l6ZShjdHh0LT5hdHRzU3BlY2lhbCkgPT0gMCkgeworICAgICAgICB4bWxIYXNoRnJlZShjdHh0LT5hdHRzU3BlY2lhbCwgTlVMTCk7CisgICAgICAgIGN0eHQtPmF0dHNTcGVjaWFsID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuOworfQorCisvKioKKyAqIHhtbENoZWNrTGFuZ3VhZ2VJRDoKKyAqIEBsYW5nOiAgcG9pbnRlciB0byB0aGUgc3RyaW5nIHZhbHVlCisgKgorICogQ2hlY2tzIHRoYXQgdGhlIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBMYW5ndWFnZUlEIHByb2R1Y3Rpb246CisgKgorICogTk9URTogdGhpcyBpcyBzb21ld2hhdCBkZXByZWNhdGVkLCB0aG9zZSBwcm9kdWN0aW9ucyB3ZXJlIHJlbW92ZWQgZnJvbQorICogICAgICAgdGhlIFhNTCBTZWNvbmQgZWRpdGlvbi4KKyAqCisgKiBbMzNdIExhbmd1YWdlSUQgOjo9IExhbmdjb2RlICgnLScgU3ViY29kZSkqCisgKiBbMzRdIExhbmdjb2RlIDo6PSBJU082MzlDb2RlIHwgIElhbmFDb2RlIHwgIFVzZXJDb2RlCisgKiBbMzVdIElTTzYzOUNvZGUgOjo9IChbYS16XSB8IFtBLVpdKSAoW2Etel0gfCBbQS1aXSkKKyAqIFszNl0gSWFuYUNvZGUgOjo9ICgnaScgfCAnSScpICctJyAoW2Etel0gfCBbQS1aXSkrCisgKiBbMzddIFVzZXJDb2RlIDo6PSAoJ3gnIHwgJ1gnKSAnLScgKFthLXpdIHwgW0EtWl0pKworICogWzM4XSBTdWJjb2RlIDo6PSAoW2Etel0gfCBbQS1aXSkrCisgKgorICogUmV0dXJucyAxIGlmIGNvcnJlY3QgMCBvdGhlcndpc2UKKyAqKi8KK2ludAoreG1sQ2hlY2tMYW5ndWFnZUlEKGNvbnN0IHhtbENoYXIgKiBsYW5nKQoreworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IGxhbmc7CisKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoMCk7CisgICAgaWYgKCgoY3VyWzBdID09ICdpJykgJiYgKGN1clsxXSA9PSAnLScpKSB8fAorICAgICAgICAoKGN1clswXSA9PSAnSScpICYmIChjdXJbMV0gPT0gJy0nKSkpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogSUFOQSBjb2RlCisgICAgICAgICAqLworICAgICAgICBjdXIgKz0gMjsKKyAgICAgICAgd2hpbGUgKCgoY3VyWzBdID49ICdBJykgJiYgKGN1clswXSA8PSAnWicpKSB8fCAgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLworICAgICAgICAgICAgICAgKChjdXJbMF0gPj0gJ2EnKSAmJiAoY3VyWzBdIDw9ICd6JykpKQorICAgICAgICAgICAgY3VyKys7CisgICAgfSBlbHNlIGlmICgoKGN1clswXSA9PSAneCcpICYmIChjdXJbMV0gPT0gJy0nKSkgfHwKKyAgICAgICAgICAgICAgICgoY3VyWzBdID09ICdYJykgJiYgKGN1clsxXSA9PSAnLScpKSkgeworICAgICAgICAvKgorICAgICAgICAgKiBVc2VyIGNvZGUKKyAgICAgICAgICovCisgICAgICAgIGN1ciArPSAyOworICAgICAgICB3aGlsZSAoKChjdXJbMF0gPj0gJ0EnKSAmJiAoY3VyWzBdIDw9ICdaJykpIHx8ICAvKiBub24gaW5wdXQgY29uc3VtaW5nICovCisgICAgICAgICAgICAgICAoKGN1clswXSA+PSAnYScpICYmIChjdXJbMF0gPD0gJ3onKSkpCisgICAgICAgICAgICBjdXIrKzsKKyAgICB9IGVsc2UgaWYgKCgoY3VyWzBdID49ICdBJykgJiYgKGN1clswXSA8PSAnWicpKSB8fAorICAgICAgICAgICAgICAgKChjdXJbMF0gPj0gJ2EnKSAmJiAoY3VyWzBdIDw9ICd6JykpKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIElTTzYzOQorICAgICAgICAgKi8KKyAgICAgICAgY3VyKys7CisgICAgICAgIGlmICgoKGN1clswXSA+PSAnQScpICYmIChjdXJbMF0gPD0gJ1onKSkgfHwKKyAgICAgICAgICAgICgoY3VyWzBdID49ICdhJykgJiYgKGN1clswXSA8PSAneicpKSkKKyAgICAgICAgICAgIGN1cisrOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gKDApOworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gKDApOworICAgIHdoaWxlIChjdXJbMF0gIT0gMCkgeyAgICAgICAvKiBub24gaW5wdXQgY29uc3VtaW5nICovCisgICAgICAgIGlmIChjdXJbMF0gIT0gJy0nKQorICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgY3VyKys7CisgICAgICAgIGlmICgoKGN1clswXSA+PSAnQScpICYmIChjdXJbMF0gPD0gJ1onKSkgfHwKKyAgICAgICAgICAgICgoY3VyWzBdID49ICdhJykgJiYgKGN1clswXSA8PSAneicpKSkKKyAgICAgICAgICAgIGN1cisrOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB3aGlsZSAoKChjdXJbMF0gPj0gJ0EnKSAmJiAoY3VyWzBdIDw9ICdaJykpIHx8ICAvKiBub24gaW5wdXQgY29uc3VtaW5nICovCisgICAgICAgICAgICAgICAoKGN1clswXSA+PSAnYScpICYmIChjdXJbMF0gPD0gJ3onKSkpCisgICAgICAgICAgICBjdXIrKzsKKyAgICB9CisgICAgcmV0dXJuICgxKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUGFyc2VyIHN0YWNrcyByZWxhdGVkIGZ1bmN0aW9ucyBhbmQgbWFjcm9zCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB4bWxFbnRpdHlQdHIgeG1sUGFyc2VTdHJpbmdFbnRpdHlSZWYoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoqIHN0cik7CisKKyNpZmRlZiBTQVgyCisvKioKKyAqIG5zUHVzaDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAcHJlZml4OiAgdGhlIG5hbWVzcGFjZSBwcmVmaXggb3IgTlVMTAorICogQFVSTDogIHRoZSBuYW1lc3BhY2UgbmFtZQorICoKKyAqIFB1c2hlcyBhIG5ldyBwYXJzZXIgbmFtZXNwYWNlIG9uIHRvcCBvZiB0aGUgbnMgc3RhY2sKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZXJyb3IsIC0yIGlmIHRoZSBuYW1lc3BhY2Ugc2hvdWxkIGJlIGRpc2NhcmRlZAorICoJICAgYW5kIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cituc1B1c2goeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpwcmVmaXgsIGNvbnN0IHhtbENoYXIgKlVSTCkKK3sKKyAgICBpZiAoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9OU0NMRUFOKSB7CisgICAgICAgIGludCBpOworCWZvciAoaSA9IDA7aSA8IGN0eHQtPm5zTnI7aSArPSAyKSB7CisJICAgIGlmIChjdHh0LT5uc1RhYltpXSA9PSBwcmVmaXgpIHsKKwkJLyogaW4gc2NvcGUgKi8KKwkgICAgICAgIGlmIChjdHh0LT5uc1RhYltpICsgMV0gPT0gVVJMKQorCQkgICAgcmV0dXJuKC0yKTsKKwkJLyogb3V0IG9mIHNjb3BlIGtlZXAgaXQgKi8KKwkJYnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmICgoY3R4dC0+bnNNYXggPT0gMCkgfHwgKGN0eHQtPm5zVGFiID09IE5VTEwpKSB7CisJY3R4dC0+bnNNYXggPSAxMDsKKwljdHh0LT5uc05yID0gMDsKKwljdHh0LT5uc1RhYiA9IChjb25zdCB4bWxDaGFyICoqKQorCSAgICAgICAgICAgICAgeG1sTWFsbG9jKGN0eHQtPm5zTWF4ICogc2l6ZW9mKHhtbENoYXIgKikpOworCWlmIChjdHh0LT5uc1RhYiA9PSBOVUxMKSB7CisJICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkgICAgY3R4dC0+bnNNYXggPSAwOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisJfQorICAgIH0gZWxzZSBpZiAoY3R4dC0+bnNOciA+PSBjdHh0LT5uc01heCkgeworICAgICAgICBjb25zdCB4bWxDaGFyICoqIHRtcDsKKyAgICAgICAgY3R4dC0+bnNNYXggKj0gMjsKKyAgICAgICAgdG1wID0gKGNvbnN0IHhtbENoYXIgKiopIHhtbFJlYWxsb2MoKGNoYXIgKikgY3R4dC0+bnNUYWIsCisJCQkJICAgIGN0eHQtPm5zTWF4ICogc2l6ZW9mKGN0eHQtPm5zVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCSAgICBjdHh0LT5uc01heCAvPSAyOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKwljdHh0LT5uc1RhYiA9IHRtcDsKKyAgICB9CisgICAgY3R4dC0+bnNUYWJbY3R4dC0+bnNOcisrXSA9IHByZWZpeDsKKyAgICBjdHh0LT5uc1RhYltjdHh0LT5uc05yKytdID0gVVJMOworICAgIHJldHVybiAoY3R4dC0+bnNOcik7Cit9CisvKioKKyAqIG5zUG9wOgorICogQGN0eHQ6IGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5yOiAgdGhlIG51bWJlciB0byBwb3AKKyAqCisgKiBQb3BzIHRoZSB0b3AgQG5yIHBhcnNlciBwcmVmaXgvbmFtZXNwYWNlIGZyb20gdGhlIG5zIHN0YWNrCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5hbWVzcGFjZXMgcmVtb3ZlZAorICovCitzdGF0aWMgaW50Cituc1BvcCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBucikKK3sKKyAgICBpbnQgaTsKKworICAgIGlmIChjdHh0LT5uc1RhYiA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgaWYgKGN0eHQtPm5zTnIgPCBucikgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlBibSBwb3BwaW5nICVkIE5TXG4iLCBucik7CisgICAgICAgIG5yID0gY3R4dC0+bnNOcjsKKyAgICB9CisgICAgaWYgKGN0eHQtPm5zTnIgPD0gMCkKKyAgICAgICAgcmV0dXJuICgwKTsKKworICAgIGZvciAoaSA9IDA7aSA8IG5yO2krKykgeworICAgICAgICAgY3R4dC0+bnNOci0tOworCSBjdHh0LT5uc1RhYltjdHh0LT5uc05yXSA9IE5VTEw7CisgICAgfQorICAgIHJldHVybihucik7Cit9CisjZW5kaWYKKworc3RhdGljIGludAoreG1sQ3R4dEdyb3dBdHRycyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBucikgeworICAgIGNvbnN0IHhtbENoYXIgKiphdHRzOworICAgIGludCAqYXR0YWxsb2NzOworICAgIGludCBtYXhhdHRzOworCisgICAgaWYgKGN0eHQtPmF0dHMgPT0gTlVMTCkgeworCW1heGF0dHMgPSA1NTsgLyogYWxsb3cgZm9yIDEwIGF0dHJzIGJ5IGRlZmF1bHQgKi8KKwlhdHRzID0gKGNvbnN0IHhtbENoYXIgKiopCisJICAgICAgIHhtbE1hbGxvYyhtYXhhdHRzICogc2l6ZW9mKHhtbENoYXIgKikpOworCWlmIChhdHRzID09IE5VTEwpIGdvdG8gbWVtX2Vycm9yOworCWN0eHQtPmF0dHMgPSBhdHRzOworCWF0dGFsbG9jcyA9IChpbnQgKikgeG1sTWFsbG9jKChtYXhhdHRzIC8gNSkgKiBzaXplb2YoaW50KSk7CisJaWYgKGF0dGFsbG9jcyA9PSBOVUxMKSBnb3RvIG1lbV9lcnJvcjsKKwljdHh0LT5hdHRhbGxvY3MgPSBhdHRhbGxvY3M7CisJY3R4dC0+bWF4YXR0cyA9IG1heGF0dHM7CisgICAgfSBlbHNlIGlmIChuciArIDUgPiBjdHh0LT5tYXhhdHRzKSB7CisJbWF4YXR0cyA9IChuciArIDUpICogMjsKKwlhdHRzID0gKGNvbnN0IHhtbENoYXIgKiopIHhtbFJlYWxsb2MoKHZvaWQgKikgY3R4dC0+YXR0cywKKwkJCQkgICAgIG1heGF0dHMgKiBzaXplb2YoY29uc3QgeG1sQ2hhciAqKSk7CisJaWYgKGF0dHMgPT0gTlVMTCkgZ290byBtZW1fZXJyb3I7CisJY3R4dC0+YXR0cyA9IGF0dHM7CisJYXR0YWxsb2NzID0gKGludCAqKSB4bWxSZWFsbG9jKCh2b2lkICopIGN0eHQtPmF0dGFsbG9jcywKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXhhdHRzIC8gNSkgKiBzaXplb2YoaW50KSk7CisJaWYgKGF0dGFsbG9jcyA9PSBOVUxMKSBnb3RvIG1lbV9lcnJvcjsKKwljdHh0LT5hdHRhbGxvY3MgPSBhdHRhbGxvY3M7CisJY3R4dC0+bWF4YXR0cyA9IG1heGF0dHM7CisgICAgfQorICAgIHJldHVybihjdHh0LT5tYXhhdHRzKTsKK21lbV9lcnJvcjoKKyAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiBpbnB1dFB1c2g6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHZhbHVlOiAgdGhlIHBhcnNlciBpbnB1dAorICoKKyAqIFB1c2hlcyBhIG5ldyBwYXJzZXIgaW5wdXQgb24gdG9wIG9mIHRoZSBpbnB1dCBzdGFjaworICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBlcnJvciwgdGhlIGluZGV4IGluIHRoZSBzdGFjayBvdGhlcndpc2UKKyAqLworaW50CitpbnB1dFB1c2goeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJJbnB1dFB0ciB2YWx1ZSkKK3sKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHZhbHVlID09IE5VTEwpKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChjdHh0LT5pbnB1dE5yID49IGN0eHQtPmlucHV0TWF4KSB7CisgICAgICAgIGN0eHQtPmlucHV0TWF4ICo9IDI7CisgICAgICAgIGN0eHQtPmlucHV0VGFiID0KKyAgICAgICAgICAgICh4bWxQYXJzZXJJbnB1dFB0ciAqKSB4bWxSZWFsbG9jKGN0eHQtPmlucHV0VGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+aW5wdXRNYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPmlucHV0VGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT5pbnB1dFRhYiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJICAgIHhtbEZyZWVJbnB1dFN0cmVhbSh2YWx1ZSk7CisJICAgIGN0eHQtPmlucHV0TWF4IC89IDI7CisJICAgIHZhbHVlID0gTlVMTDsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgfQorICAgIGN0eHQtPmlucHV0VGFiW2N0eHQtPmlucHV0TnJdID0gdmFsdWU7CisgICAgY3R4dC0+aW5wdXQgPSB2YWx1ZTsKKyAgICByZXR1cm4gKGN0eHQtPmlucHV0TnIrKyk7Cit9CisvKioKKyAqIGlucHV0UG9wOgorICogQGN0eHQ6IGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIFBvcHMgdGhlIHRvcCBwYXJzZXIgaW5wdXQgZnJvbSB0aGUgaW5wdXQgc3RhY2sKKyAqCisgKiBSZXR1cm5zIHRoZSBpbnB1dCBqdXN0IHJlbW92ZWQKKyAqLworeG1sUGFyc2VySW5wdXRQdHIKK2lucHV0UG9wKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXQ7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN0eHQtPmlucHV0TnIgPD0gMCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjdHh0LT5pbnB1dE5yLS07CisgICAgaWYgKGN0eHQtPmlucHV0TnIgPiAwKQorICAgICAgICBjdHh0LT5pbnB1dCA9IGN0eHQtPmlucHV0VGFiW2N0eHQtPmlucHV0TnIgLSAxXTsKKyAgICBlbHNlCisgICAgICAgIGN0eHQtPmlucHV0ID0gTlVMTDsKKyAgICByZXQgPSBjdHh0LT5pbnB1dFRhYltjdHh0LT5pbnB1dE5yXTsKKyAgICBjdHh0LT5pbnB1dFRhYltjdHh0LT5pbnB1dE5yXSA9IE5VTEw7CisgICAgcmV0dXJuIChyZXQpOworfQorLyoqCisgKiBub2RlUHVzaDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAdmFsdWU6ICB0aGUgZWxlbWVudCBub2RlCisgKgorICogUHVzaGVzIGEgbmV3IGVsZW1lbnQgbm9kZSBvbiB0b3Agb2YgdGhlIG5vZGUgc3RhY2sKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlCisgKi8KK2ludAorbm9kZVB1c2goeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIHZhbHVlKQoreworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybigwKTsKKyAgICBpZiAoY3R4dC0+bm9kZU5yID49IGN0eHQtPm5vZGVNYXgpIHsKKyAgICAgICAgeG1sTm9kZVB0ciAqdG1wOworCisJdG1wID0gKHhtbE5vZGVQdHIgKikgeG1sUmVhbGxvYyhjdHh0LT5ub2RlVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5ub2RlTWF4ICogMiAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjdHh0LT5ub2RlVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICAgICAgY3R4dC0+bm9kZVRhYiA9IHRtcDsKKwljdHh0LT5ub2RlTWF4ICo9IDI7CisgICAgfQorICAgIGlmICgoKCh1bnNpZ25lZCBpbnQpIGN0eHQtPm5vZGVOcikgPiB4bWxQYXJzZXJNYXhEZXB0aCkgJiYKKyAgICAgICAgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpID09IDApKSB7CisJeG1sRmF0YWxFcnJNc2dJbnQoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICJFeGNlc3NpdmUgZGVwdGggaW4gZG9jdW1lbnQ6ICVkIHVzZSBYTUxfUEFSU0VfSFVHRSBvcHRpb25cbiIsCisJCQkgIHhtbFBhcnNlck1heERlcHRoKTsKKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgY3R4dC0+bm9kZVRhYltjdHh0LT5ub2RlTnJdID0gdmFsdWU7CisgICAgY3R4dC0+bm9kZSA9IHZhbHVlOworICAgIHJldHVybiAoY3R4dC0+bm9kZU5yKyspOworfQorCisvKioKKyAqIG5vZGVQb3A6CisgKiBAY3R4dDogYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUG9wcyB0aGUgdG9wIGVsZW1lbnQgbm9kZSBmcm9tIHRoZSBub2RlIHN0YWNrCisgKgorICogUmV0dXJucyB0aGUgbm9kZSBqdXN0IHJlbW92ZWQKKyAqLworeG1sTm9kZVB0cgorbm9kZVBvcCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sTm9kZVB0ciByZXQ7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN0eHQtPm5vZGVOciA8PSAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGN0eHQtPm5vZGVOci0tOworICAgIGlmIChjdHh0LT5ub2RlTnIgPiAwKQorICAgICAgICBjdHh0LT5ub2RlID0gY3R4dC0+bm9kZVRhYltjdHh0LT5ub2RlTnIgLSAxXTsKKyAgICBlbHNlCisgICAgICAgIGN0eHQtPm5vZGUgPSBOVUxMOworICAgIHJldCA9IGN0eHQtPm5vZGVUYWJbY3R4dC0+bm9kZU5yXTsKKyAgICBjdHh0LT5ub2RlVGFiW2N0eHQtPm5vZGVOcl0gPSBOVUxMOworICAgIHJldHVybiAocmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKy8qKgorICogbmFtZU5zUHVzaDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAdmFsdWU6ICB0aGUgZWxlbWVudCBuYW1lCisgKiBAcHJlZml4OiAgdGhlIGVsZW1lbnQgcHJlZml4CisgKiBAVVJJOiAgdGhlIGVsZW1lbnQgbmFtZXNwYWNlIG5hbWUKKyAqCisgKiBQdXNoZXMgYSBuZXcgZWxlbWVudCBuYW1lL3ByZWZpeC9VUkwgb24gdG9wIG9mIHRoZSBuYW1lIHN0YWNrCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yLCB0aGUgaW5kZXggaW4gdGhlIHN0YWNrIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50CituYW1lTnNQdXNoKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqIHZhbHVlLAorICAgICAgICAgICBjb25zdCB4bWxDaGFyICpwcmVmaXgsIGNvbnN0IHhtbENoYXIgKlVSSSwgaW50IG5zTnIpCit7CisgICAgaWYgKGN0eHQtPm5hbWVOciA+PSBjdHh0LT5uYW1lTWF4KSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIgKiAqdG1wOworICAgICAgICB2b2lkICoqdG1wMjsKKyAgICAgICAgY3R4dC0+bmFtZU1heCAqPSAyOworICAgICAgICB0bXAgPSAoY29uc3QgeG1sQ2hhciAqICopIHhtbFJlYWxsb2MoKHhtbENoYXIgKiAqKWN0eHQtPm5hbWVUYWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5uYW1lTWF4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjdHh0LT5uYW1lVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworCSAgICBjdHh0LT5uYW1lTWF4IC89IDI7CisJICAgIGdvdG8gbWVtX2Vycm9yOworICAgICAgICB9CisJY3R4dC0+bmFtZVRhYiA9IHRtcDsKKyAgICAgICAgdG1wMiA9ICh2b2lkICoqKSB4bWxSZWFsbG9jKCh2b2lkICogKiljdHh0LT5wdXNoVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+bmFtZU1heCAqIDMgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPnB1c2hUYWJbMF0pKTsKKyAgICAgICAgaWYgKHRtcDIgPT0gTlVMTCkgeworCSAgICBjdHh0LT5uYW1lTWF4IC89IDI7CisJICAgIGdvdG8gbWVtX2Vycm9yOworICAgICAgICB9CisJY3R4dC0+cHVzaFRhYiA9IHRtcDI7CisgICAgfQorICAgIGN0eHQtPm5hbWVUYWJbY3R4dC0+bmFtZU5yXSA9IHZhbHVlOworICAgIGN0eHQtPm5hbWUgPSB2YWx1ZTsKKyAgICBjdHh0LT5wdXNoVGFiW2N0eHQtPm5hbWVOciAqIDNdID0gKHZvaWQgKikgcHJlZml4OworICAgIGN0eHQtPnB1c2hUYWJbY3R4dC0+bmFtZU5yICogMyArIDFdID0gKHZvaWQgKikgVVJJOworICAgIGN0eHQtPnB1c2hUYWJbY3R4dC0+bmFtZU5yICogMyArIDJdID0gKHZvaWQgKikgKGxvbmcpIG5zTnI7CisgICAgcmV0dXJuIChjdHh0LT5uYW1lTnIrKyk7CittZW1fZXJyb3I6CisgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworICAgIHJldHVybiAoLTEpOworfQorLyoqCisgKiBuYW1lTnNQb3A6CisgKiBAY3R4dDogYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUG9wcyB0aGUgdG9wIGVsZW1lbnQvcHJlZml4L1VSSSBuYW1lIGZyb20gdGhlIG5hbWUgc3RhY2sKKyAqCisgKiBSZXR1cm5zIHRoZSBuYW1lIGp1c3QgcmVtb3ZlZAorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCituYW1lTnNQb3AoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKworICAgIGlmIChjdHh0LT5uYW1lTnIgPD0gMCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjdHh0LT5uYW1lTnItLTsKKyAgICBpZiAoY3R4dC0+bmFtZU5yID4gMCkKKyAgICAgICAgY3R4dC0+bmFtZSA9IGN0eHQtPm5hbWVUYWJbY3R4dC0+bmFtZU5yIC0gMV07CisgICAgZWxzZQorICAgICAgICBjdHh0LT5uYW1lID0gTlVMTDsKKyAgICByZXQgPSBjdHh0LT5uYW1lVGFiW2N0eHQtPm5hbWVOcl07CisgICAgY3R4dC0+bmFtZVRhYltjdHh0LT5uYW1lTnJdID0gTlVMTDsKKyAgICByZXR1cm4gKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1BVU0hfRU5BQkxFRCAqLworCisvKioKKyAqIG5hbWVQdXNoOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEB2YWx1ZTogIHRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBQdXNoZXMgYSBuZXcgZWxlbWVudCBuYW1lIG9uIHRvcCBvZiB0aGUgbmFtZSBzdGFjaworICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBlcnJvciwgdGhlIGluZGV4IGluIHRoZSBzdGFjayBvdGhlcndpc2UKKyAqLworaW50CituYW1lUHVzaCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKiB2YWx1ZSkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm4gKC0xKTsKKworICAgIGlmIChjdHh0LT5uYW1lTnIgPj0gY3R4dC0+bmFtZU1heCkgeworICAgICAgICBjb25zdCB4bWxDaGFyICogKnRtcDsKKyAgICAgICAgY3R4dC0+bmFtZU1heCAqPSAyOworICAgICAgICB0bXAgPSAoY29uc3QgeG1sQ2hhciAqICopIHhtbFJlYWxsb2MoKHhtbENoYXIgKiAqKWN0eHQtPm5hbWVUYWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5uYW1lTWF4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjdHh0LT5uYW1lVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworCSAgICBjdHh0LT5uYW1lTWF4IC89IDI7CisJICAgIGdvdG8gbWVtX2Vycm9yOworICAgICAgICB9CisJY3R4dC0+bmFtZVRhYiA9IHRtcDsKKyAgICB9CisgICAgY3R4dC0+bmFtZVRhYltjdHh0LT5uYW1lTnJdID0gdmFsdWU7CisgICAgY3R4dC0+bmFtZSA9IHZhbHVlOworICAgIHJldHVybiAoY3R4dC0+bmFtZU5yKyspOworbWVtX2Vycm9yOgorICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKyAgICByZXR1cm4gKC0xKTsKK30KKy8qKgorICogbmFtZVBvcDoKKyAqIEBjdHh0OiBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQb3BzIHRoZSB0b3AgZWxlbWVudCBuYW1lIGZyb20gdGhlIG5hbWUgc3RhY2sKKyAqCisgKiBSZXR1cm5zIHRoZSBuYW1lIGp1c3QgcmVtb3ZlZAorICovCitjb25zdCB4bWxDaGFyICoKK25hbWVQb3AoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+bmFtZU5yIDw9IDApKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGN0eHQtPm5hbWVOci0tOworICAgIGlmIChjdHh0LT5uYW1lTnIgPiAwKQorICAgICAgICBjdHh0LT5uYW1lID0gY3R4dC0+bmFtZVRhYltjdHh0LT5uYW1lTnIgLSAxXTsKKyAgICBlbHNlCisgICAgICAgIGN0eHQtPm5hbWUgPSBOVUxMOworICAgIHJldCA9IGN0eHQtPm5hbWVUYWJbY3R4dC0+bmFtZU5yXTsKKyAgICBjdHh0LT5uYW1lVGFiW2N0eHQtPm5hbWVOcl0gPSBOVUxMOworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIGludCBzcGFjZVB1c2goeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgdmFsKSB7CisgICAgaWYgKGN0eHQtPnNwYWNlTnIgPj0gY3R4dC0+c3BhY2VNYXgpIHsKKyAgICAgICAgaW50ICp0bXA7CisKKwljdHh0LT5zcGFjZU1heCAqPSAyOworICAgICAgICB0bXAgPSAoaW50ICopIHhtbFJlYWxsb2MoY3R4dC0+c3BhY2VUYWIsCisJICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnNwYWNlTWF4ICogc2l6ZW9mKGN0eHQtPnNwYWNlVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworCSAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJICAgIGN0eHQtPnNwYWNlTWF4IC89MjsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY3R4dC0+c3BhY2VUYWIgPSB0bXA7CisgICAgfQorICAgIGN0eHQtPnNwYWNlVGFiW2N0eHQtPnNwYWNlTnJdID0gdmFsOworICAgIGN0eHQtPnNwYWNlID0gJmN0eHQtPnNwYWNlVGFiW2N0eHQtPnNwYWNlTnJdOworICAgIHJldHVybihjdHh0LT5zcGFjZU5yKyspOworfQorCitzdGF0aWMgaW50IHNwYWNlUG9wKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCByZXQ7CisgICAgaWYgKGN0eHQtPnNwYWNlTnIgPD0gMCkgcmV0dXJuKDApOworICAgIGN0eHQtPnNwYWNlTnItLTsKKyAgICBpZiAoY3R4dC0+c3BhY2VOciA+IDApCisJY3R4dC0+c3BhY2UgPSAmY3R4dC0+c3BhY2VUYWJbY3R4dC0+c3BhY2VOciAtIDFdOworICAgIGVsc2UKKyAgICAgICAgY3R4dC0+c3BhY2UgPSAmY3R4dC0+c3BhY2VUYWJbMF07CisgICAgcmV0ID0gY3R4dC0+c3BhY2VUYWJbY3R4dC0+c3BhY2VOcl07CisgICAgY3R4dC0+c3BhY2VUYWJbY3R4dC0+c3BhY2VOcl0gPSAtMTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoKKyAqIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBjb250ZW50LiBUaG9zZSBzaG91bGQgYmUgdXNlZCBvbmx5IGJ5IHRoZSBwYXJzZXIsCisgKiBhbmQgbm90IGV4cG9ydGVkLgorICoKKyAqIERpcnR5IG1hY3JvcywgaS5lLiBvbmUgb2Z0ZW4gbmVlZCB0byBtYWtlIGFzc3VtcHRpb24gb24gdGhlIGNvbnRleHQgdG8KKyAqIHVzZSB0aGVtCisgKgorICogICBDVVJfUFRSIHJldHVybiB0aGUgY3VycmVudCBwb2ludGVyIHRvIHRoZSB4bWxDaGFyIHRvIGJlIHBhcnNlZC4KKyAqICAgICAgICAgICBUbyBiZSB1c2VkIHdpdGggZXh0cmVtZSBjYXV0aW9uIHNpbmNlIG9wZXJhdGlvbnMgY29uc3VtaW5nCisgKiAgICAgICAgICAgY2hhcmFjdGVycyBtYXkgbW92ZSB0aGUgaW5wdXQgYnVmZmVyIHRvIGEgZGlmZmVyZW50IGxvY2F0aW9uICEKKyAqICAgQ1VSICAgICByZXR1cm5zIHRoZSBjdXJyZW50IHhtbENoYXIgdmFsdWUsIGkuZS4gYSA4IGJpdCB2YWx1ZSBpZiBjb21waWxlZAorICogICAgICAgICAgIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgcGFyc2VyCisgKiAgICAgICAgICAgb25seSB0byBjb21wYXJlIHRvIEFTQ0lJIHZhbHVlcyBvdGhlcndpc2UgaXQgd291bGQgYnJlYWsgd2hlbgorICogICAgICAgICAgIHJ1bm5pbmcgd2l0aCBVVEYtOCBlbmNvZGluZy4KKyAqICAgUkFXICAgICBzYW1lIGFzIENVUiBidXQgaW4gdGhlIGlucHV0IGJ1ZmZlciwgYnlwYXNzIGFueSB0b2tlbgorICogICAgICAgICAgIGV4dHJhY3Rpb24gdGhhdCBtYXkgaGF2ZSBiZWVuIGRvbmUKKyAqICAgTlhUKG4pICByZXR1cm5zIHRoZSBuJ3RoIG5leHQgeG1sQ2hhci4gU2FtZSBhcyBDVVIgaXMgc2hvdWxkIGJlIHVzZWQgb25seQorICogICAgICAgICAgIHRvIGNvbXBhcmUgb24gQVNDSUkgYmFzZWQgc3Vic3RyaW5nLgorICogICBTS0lQKG4pIFNraXAgbiB4bWxDaGFyLCBhbmQgbXVzdCBhbHNvIGJlIHVzZWQgb25seSB0byBza2lwIEFTQ0lJIGRlZmluZWQKKyAqICAgICAgICAgICBzdHJpbmdzIHdpdGhvdXQgbmV3bGluZXMgd2l0aGluIHRoZSBwYXJzZXIuCisgKiAgIE5FWFQxKGwpIFNraXAgMSB4bWxDaGFyLCBhbmQgbXVzdCBhbHNvIGJlIHVzZWQgb25seSB0byBza2lwIDEgbm9uLW5ld2xpbmUgQVNDSUkgCisgKiAgICAgICAgICAgZGVmaW5lZCBjaGFyIHdpdGhpbiB0aGUgcGFyc2VyLgorICogQ2xlYW4gbWFjcm9zLCBub3QgZGVwZW5kZW50IG9mIGFuIEFTQ0lJIGNvbnRleHQsIGV4cGVjdCBVVEYtOCBlbmNvZGluZworICoKKyAqICAgTkVYVCAgICBTa2lwIHRvIHRoZSBuZXh0IGNoYXJhY3RlciwgdGhpcyBkb2VzIHRoZSBwcm9wZXIgZGVjb2RpbmcKKyAqICAgICAgICAgICBpbiBVVEYtOCBtb2RlLiBJdCBhbHNvIHBvcC11cCB1bmZpbmlzaGVkIGVudGl0aWVzIG9uIHRoZSBmbHkuCisgKiAgIE5FWFRMKGwpIFNraXAgdGhlIGN1cnJlbnQgdW5pY29kZSBjaGFyYWN0ZXIgb2YgbCB4bWxDaGFycyBsb25nLgorICogICBDVVJfQ0hBUihsKSByZXR1cm5zIHRoZSBjdXJyZW50IHVuaWNvZGUgY2hhcmFjdGVyIChpbnQpLCBzZXQgbAorICogICAgICAgICAgIHRvIHRoZSBudW1iZXIgb2YgeG1sQ2hhcnMgdXNlZCBmb3IgdGhlIGVuY29kaW5nIFswLTVdLgorICogICBDVVJfU0NIQVIgIHNhbWUgYnV0IG9wZXJhdGUgb24gYSBzdHJpbmcgaW5zdGVhZCBvZiB0aGUgY29udGV4dAorICogICBDT1BZX0JVRiAgY29weSB0aGUgY3VycmVudCB1bmljb2RlIGNoYXIgdG8gdGhlIHRhcmdldCBidWZmZXIsIGluY3JlbWVudAorICogICAgICAgICAgICB0aGUgaW5kZXgKKyAqICAgR1JPVywgU0hSSU5LICBoYW5kbGluZyBvZiBpbnB1dCBidWZmZXJzCisgKi8KKworI2RlZmluZSBSQVcgKCpjdHh0LT5pbnB1dC0+Y3VyKQorI2RlZmluZSBDVVIgKCpjdHh0LT5pbnB1dC0+Y3VyKQorI2RlZmluZSBOWFQodmFsKSBjdHh0LT5pbnB1dC0+Y3VyWyh2YWwpXQorI2RlZmluZSBDVVJfUFRSIGN0eHQtPmlucHV0LT5jdXIKKworI2RlZmluZSBDTVA0KCBzLCBjMSwgYzIsIGMzLCBjNCApIFwKKyAgKCAoKHVuc2lnbmVkIGNoYXIgKikgcylbIDAgXSA9PSBjMSAmJiAoKHVuc2lnbmVkIGNoYXIgKikgcylbIDEgXSA9PSBjMiAmJiBcCisgICAgKCh1bnNpZ25lZCBjaGFyICopIHMpWyAyIF0gPT0gYzMgJiYgKCh1bnNpZ25lZCBjaGFyICopIHMpWyAzIF0gPT0gYzQgKQorI2RlZmluZSBDTVA1KCBzLCBjMSwgYzIsIGMzLCBjNCwgYzUgKSBcCisgICggQ01QNCggcywgYzEsIGMyLCBjMywgYzQgKSAmJiAoKHVuc2lnbmVkIGNoYXIgKikgcylbIDQgXSA9PSBjNSApCisjZGVmaW5lIENNUDYoIHMsIGMxLCBjMiwgYzMsIGM0LCBjNSwgYzYgKSBcCisgICggQ01QNSggcywgYzEsIGMyLCBjMywgYzQsIGM1ICkgJiYgKCh1bnNpZ25lZCBjaGFyICopIHMpWyA1IF0gPT0gYzYgKQorI2RlZmluZSBDTVA3KCBzLCBjMSwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNyApIFwKKyAgKCBDTVA2KCBzLCBjMSwgYzIsIGMzLCBjNCwgYzUsIGM2ICkgJiYgKCh1bnNpZ25lZCBjaGFyICopIHMpWyA2IF0gPT0gYzcgKQorI2RlZmluZSBDTVA4KCBzLCBjMSwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzggKSBcCisgICggQ01QNyggcywgYzEsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcgKSAmJiAoKHVuc2lnbmVkIGNoYXIgKikgcylbIDcgXSA9PSBjOCApCisjZGVmaW5lIENNUDkoIHMsIGMxLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCwgYzkgKSBcCisgICggQ01QOCggcywgYzEsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4ICkgJiYgXAorICAgICgodW5zaWduZWQgY2hhciAqKSBzKVsgOCBdID09IGM5ICkKKyNkZWZpbmUgQ01QMTAoIHMsIGMxLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCwgYzksIGMxMCApIFwKKyAgKCBDTVA5KCBzLCBjMSwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzgsIGM5ICkgJiYgXAorICAgICgodW5zaWduZWQgY2hhciAqKSBzKVsgOSBdID09IGMxMCApCisKKyNkZWZpbmUgU0tJUCh2YWwpIGRvIHsJCQkJCQkJXAorICAgIGN0eHQtPm5iQ2hhcnMgKz0gKHZhbCksY3R4dC0+aW5wdXQtPmN1ciArPSAodmFsKSxjdHh0LT5pbnB1dC0+Y29sKz0odmFsKTsJCQlcCisgICAgaWYgKCpjdHh0LT5pbnB1dC0+Y3VyID09ICclJykgeG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UoY3R4dCk7CVwKKyAgICBpZiAoKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApICYmCQkJCQlcCisgICAgICAgICh4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKSA8PSAwKSkJCVwKKwkgICAgeG1sUG9wSW5wdXQoY3R4dCk7CQkJCQkJXAorICB9IHdoaWxlICgwKQorCisjZGVmaW5lIFNLSVBMKHZhbCkgZG8gewkJCQkJCQlcCisgICAgaW50IHNraXBsOwkJCQkJCQkJXAorICAgIGZvcihza2lwbD0wOyBza2lwbDx2YWw7IHNraXBsKyspIHsJCQkJCVwKKyAgICAJaWYgKCooY3R4dC0+aW5wdXQtPmN1cikgPT0gJ1xuJykgewkJCQlcCisJY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CQkJXAorICAgIAl9IGVsc2UgY3R4dC0+aW5wdXQtPmNvbCsrOwkJCQkJXAorICAgIAljdHh0LT5uYkNoYXJzKys7CQkJCQkJXAorCWN0eHQtPmlucHV0LT5jdXIrKzsJCQkJCQlcCisgICAgfQkJCQkJCQkJCVwKKyAgICBpZiAoKmN0eHQtPmlucHV0LT5jdXIgPT0gJyUnKSB4bWxQYXJzZXJIYW5kbGVQRVJlZmVyZW5jZShjdHh0KTsJXAorICAgIGlmICgoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkgJiYJCQkJCVwKKyAgICAgICAgKHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspIDw9IDApKQkJXAorCSAgICB4bWxQb3BJbnB1dChjdHh0KTsJCQkJCQlcCisgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgU0hSSU5LIGlmICgoY3R4dC0+cHJvZ3Jlc3NpdmUgPT0gMCkgJiYJCQkJXAorCQkgICAoY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlID4gMiAqIElOUFVUX0NIVU5LKSAmJiBcCisJCSAgIChjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1ciA8IDIgKiBJTlBVVF9DSFVOSykpIFwKKwl4bWxTSFJJTksgKGN0eHQpOworCitzdGF0aWMgdm9pZCB4bWxTSFJJTksgKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbFBhcnNlcklucHV0U2hyaW5rKGN0eHQtPmlucHV0KTsKKyAgICBpZiAoKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApICYmCisgICAgICAgICh4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKSA8PSAwKSkKKwkgICAgeG1sUG9wSW5wdXQoY3R4dCk7CisgIH0KKworI2RlZmluZSBHUk9XIGlmICgoY3R4dC0+cHJvZ3Jlc3NpdmUgPT0gMCkgJiYJCQkJXAorCQkgKGN0eHQtPmlucHV0LT5lbmQgLSBjdHh0LT5pbnB1dC0+Y3VyIDwgSU5QVVRfQ0hVTkspKQlcCisJeG1sR1JPVyAoY3R4dCk7CisKK3N0YXRpYyB2b2lkIHhtbEdST1cgKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOworICAgIGlmICgoY3R4dC0+aW5wdXQtPmN1ciAhPSBOVUxMKSAmJiAoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkgJiYKKyAgICAgICAgKHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspIDw9IDApKQorCSAgICB4bWxQb3BJbnB1dChjdHh0KTsKK30KKworI2RlZmluZSBTS0lQX0JMQU5LUyB4bWxTa2lwQmxhbmtDaGFycyhjdHh0KQorCisjZGVmaW5lIE5FWFQgeG1sTmV4dENoYXIoY3R4dCkKKworI2RlZmluZSBORVhUMSB7CQkJCQkJCQlcCisJY3R4dC0+aW5wdXQtPmNvbCsrOwkJCQkJCVwKKwljdHh0LT5pbnB1dC0+Y3VyKys7CQkJCQkJXAorCWN0eHQtPm5iQ2hhcnMrKzsJCQkJCQlcCisJaWYgKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApCQkJCQlcCisJICAgIHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOwkJXAorICAgIH0KKworI2RlZmluZSBORVhUTChsKSBkbyB7CQkJCQkJCVwKKyAgICBpZiAoKihjdHh0LT5pbnB1dC0+Y3VyKSA9PSAnXG4nKSB7CQkJCQlcCisJY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CQkJXAorICAgIH0gZWxzZSBjdHh0LT5pbnB1dC0+Y29sKys7CQkJCQkJXAorICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gbDsJCQkJXAorICAgIGlmICgqY3R4dC0+aW5wdXQtPmN1ciA9PSAnJScpIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlKGN0eHQpOwlcCisgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgQ1VSX0NIQVIobCkgeG1sQ3VycmVudENoYXIoY3R4dCwgJmwpCisjZGVmaW5lIENVUl9TQ0hBUihzLCBsKSB4bWxTdHJpbmdDdXJyZW50Q2hhcihjdHh0LCBzLCAmbCkKKworI2RlZmluZSBDT1BZX0JVRihsLGIsaSx2KQkJCQkJCVwKKyAgICBpZiAobCA9PSAxKSBiW2krK10gPSAoeG1sQ2hhcikgdjsJCQkJCVwKKyAgICBlbHNlIGkgKz0geG1sQ29weUNoYXJNdWx0aUJ5dGUoJmJbaV0sdikKKworLyoqCisgKiB4bWxTa2lwQmxhbmtDaGFyczoKKyAqIEBjdHh0OiAgdGhlIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHNraXAgYWxsIGJsYW5rcyBjaGFyYWN0ZXIgZm91bmQgYXQgdGhhdCBwb2ludCBpbiB0aGUgaW5wdXQgc3RyZWFtcy4KKyAqIEl0IHBvcHMgdXAgZmluaXNoZWQgZW50aXRpZXMgaW4gdGhlIHByb2Nlc3MgaWYgYWxsb3dhYmxlIGF0IHRoYXQgcG9pbnQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHNwYWNlIGNoYXJzIHNraXBwZWQKKyAqLworCitpbnQKK3htbFNraXBCbGFua0NoYXJzKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCByZXMgPSAwOworCisgICAgLyoKKyAgICAgKiBJdCdzIE9rYXkgdG8gdXNlIENVUi9ORVhUIGhlcmUgc2luY2UgYWxsIHRoZSBibGFua3MgYXJlIG9uCisgICAgICogdGhlIEFTQ0lJIHJhbmdlLgorICAgICAqLworICAgIGlmICgoY3R4dC0+aW5wdXROciA9PSAxKSAmJiAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0RURCkpIHsKKwljb25zdCB4bWxDaGFyICpjdXI7CisJLyoKKwkgKiBpZiB3ZSBhcmUgaW4gdGhlIGRvY3VtZW50IGNvbnRlbnQsIGdvIHJlYWxseSBmYXN0CisJICovCisJY3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIHsKKwkgICAgaWYgKCpjdXIgPT0gJ1xuJykgeworCQljdHh0LT5pbnB1dC0+bGluZSsrOyBjdHh0LT5pbnB1dC0+Y29sID0gMTsKKwkgICAgfQorCSAgICBjdXIrKzsKKwkgICAgcmVzKys7CisJICAgIGlmICgqY3VyID09IDApIHsKKwkJY3R4dC0+aW5wdXQtPmN1ciA9IGN1cjsKKwkJeG1sUGFyc2VySW5wdXRHcm93KGN0eHQtPmlucHV0LCBJTlBVVF9DSFVOSyk7CisJCWN1ciA9IGN0eHQtPmlucHV0LT5jdXI7CisJICAgIH0KKwl9CisJY3R4dC0+aW5wdXQtPmN1ciA9IGN1cjsKKyAgICB9IGVsc2UgeworCWludCBjdXI7CisJZG8geworCSAgICBjdXIgPSBDVVI7CisJICAgIHdoaWxlIChJU19CTEFOS19DSChjdXIpKSB7IC8qIENIRUNLRUQgdHN0YmxhbmtzLnhtbCAqLworCQlORVhUOworCQljdXIgPSBDVVI7CisJCXJlcysrOworCSAgICB9CisJICAgIHdoaWxlICgoY3VyID09IDApICYmIChjdHh0LT5pbnB1dE5yID4gMSkgJiYKKwkJICAgKGN0eHQtPmluc3RhdGUgIT0gWE1MX1BBUlNFUl9DT01NRU5UKSkgeworCQl4bWxQb3BJbnB1dChjdHh0KTsKKwkJY3VyID0gQ1VSOworCSAgICB9CisJICAgIC8qCisJICAgICAqIE5lZWQgdG8gaGFuZGxlIHN1cHBvcnQgb2YgZW50aXRpZXMgYnJhbmNoaW5nIGhlcmUKKwkgICAgICovCisJICAgIGlmICgqY3R4dC0+aW5wdXQtPmN1ciA9PSAnJScpIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlKGN0eHQpOworCX0gd2hpbGUgKElTX0JMQU5LKGN1cikpOyAvKiBDSEVDS0VEIHRzdGJsYW5rcy54bWwgKi8KKyAgICB9CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUNvbW1vZGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIGVudGl0aWVzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFBvcElucHV0OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiB4bWxQb3BJbnB1dDogdGhlIGN1cnJlbnQgaW5wdXQgcG9pbnRlZCBieSBjdHh0LT5pbnB1dCBjYW1lIHRvIGFuIGVuZAorICogICAgICAgICAgcG9wIGl0IGFuZCByZXR1cm4gdGhlIG5leHQgY2hhci4KKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHhtbENoYXIgaW4gdGhlIHBhcnNlciBjb250ZXh0CisgKi8KK3htbENoYXIKK3htbFBvcElucHV0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXROciA8PSAxKSkgcmV0dXJuKDApOworICAgIGlmICh4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiUG9wcGluZyBpbnB1dCAlZFxuIiwgY3R4dC0+aW5wdXROcik7CisgICAgeG1sRnJlZUlucHV0U3RyZWFtKGlucHV0UG9wKGN0eHQpKTsKKyAgICBpZiAoKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApICYmCisgICAgICAgICh4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKSA8PSAwKSkKKwkgICAgcmV0dXJuKHhtbFBvcElucHV0KGN0eHQpKTsKKyAgICByZXR1cm4oQ1VSKTsKK30KKworLyoqCisgKiB4bWxQdXNoSW5wdXQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGlucHV0OiAgYW4gWE1MIHBhcnNlciBpbnB1dCBmcmFnbWVudCAoZW50aXR5LCBYTUwgZnJhZ21lbnQgLi4uKS4KKyAqCisgKiB4bWxQdXNoSW5wdXQ6IHN3aXRjaCB0byBhIG5ldyBpbnB1dCBzdHJlYW0gd2hpY2ggaXMgc3RhY2tlZCBvbiB0b3AKKyAqICAgICAgICAgICAgICAgb2YgdGhlIHByZXZpb3VzIG9uZShzKS4KKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBlcnJvciBvciB0aGUgaW5kZXggaW4gdGhlIGlucHV0IHN0YWNrCisgKi8KK2ludAoreG1sUHVzaElucHV0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQpIHsKKyAgICBpbnQgcmV0OworICAgIGlmIChpbnB1dCA9PSBOVUxMKSByZXR1cm4oLTEpOworCisgICAgaWYgKHhtbFBhcnNlckRlYnVnRW50aXRpZXMpIHsKKwlpZiAoKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dC0+ZmlsZW5hbWUpKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICIlcyglZCk6ICIsIGN0eHQtPmlucHV0LT5maWxlbmFtZSwKKwkJICAgIGN0eHQtPmlucHV0LT5saW5lKTsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIlB1c2hpbmcgaW5wdXQgJWQgOiAlLjMwc1xuIiwgY3R4dC0+aW5wdXROcisxLCBpbnB1dC0+Y3VyKTsKKyAgICB9CisgICAgcmV0ID0gaW5wdXRQdXNoKGN0eHQsIGlucHV0KTsKKyAgICBHUk9XOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFBhcnNlQ2hhclJlZjoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgUmVmZXJlbmNlIGRlY2xhcmF0aW9ucworICoKKyAqIFs2Nl0gQ2hhclJlZiA6Oj0gJyYjJyBbMC05XSsgJzsnIHwKKyAqICAgICAgICAgICAgICAgICAgJyYjeCcgWzAtOWEtZkEtRl0rICc7JworICoKKyAqIFsgV0ZDOiBMZWdhbCBDaGFyYWN0ZXIgXQorICogQ2hhcmFjdGVycyByZWZlcnJlZCB0byB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IG1hdGNoIHRoZQorICogcHJvZHVjdGlvbiBmb3IgQ2hhci4gCisgKgorICogUmV0dXJucyB0aGUgdmFsdWUgcGFyc2VkIChhcyBhbiBpbnQpLCAwIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxQYXJzZUNoYXJSZWYoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgdW5zaWduZWQgaW50IHZhbCA9IDA7CisgICAgaW50IGNvdW50ID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgb3V0b2ZyYW5nZSA9IDA7CisKKyAgICAvKgorICAgICAqIFVzaW5nIFJBVy9DVVIvTkVYVCBpcyBva2F5IHNpbmNlIHdlIGFyZSB3b3JraW5nIG9uIEFTQ0lJIHJhbmdlIGhlcmUKKyAgICAgKi8KKyAgICBpZiAoKFJBVyA9PSAnJicpICYmIChOWFQoMSkgPT0gJyMnKSAmJgorICAgICAgICAoTlhUKDIpID09ICd4JykpIHsKKwlTS0lQKDMpOworCUdST1c7CisJd2hpbGUgKFJBVyAhPSAnOycpIHsgLyogbG9vcCBibG9ja2VkIGJ5IGNvdW50ICovCisJICAgIGlmIChjb3VudCsrID4gMjApIHsKKwkJY291bnQgPSAwOworCQlHUk9XOworCSAgICB9CisJICAgIGlmICgoUkFXID49ICcwJykgJiYgKFJBVyA8PSAnOScpKSAKKwkgICAgICAgIHZhbCA9IHZhbCAqIDE2ICsgKENVUiAtICcwJyk7CisJICAgIGVsc2UgaWYgKChSQVcgPj0gJ2EnKSAmJiAoUkFXIDw9ICdmJykgJiYgKGNvdW50IDwgMjApKQorCSAgICAgICAgdmFsID0gdmFsICogMTYgKyAoQ1VSIC0gJ2EnKSArIDEwOworCSAgICBlbHNlIGlmICgoUkFXID49ICdBJykgJiYgKFJBVyA8PSAnRicpICYmIChjb3VudCA8IDIwKSkKKwkgICAgICAgIHZhbCA9IHZhbCAqIDE2ICsgKENVUiAtICdBJykgKyAxMDsKKwkgICAgZWxzZSB7CisJCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9IRVhfQ0hBUlJFRiwgTlVMTCk7CisJCXZhbCA9IDA7CisJCWJyZWFrOworCSAgICB9CisJICAgIGlmICh2YWwgPiAweDEwRkZGRikKKwkgICAgICAgIG91dG9mcmFuZ2UgPSB2YWw7CisKKwkgICAgTkVYVDsKKwkgICAgY291bnQrKzsKKwl9CisJaWYgKFJBVyA9PSAnOycpIHsKKwkgICAgLyogb24gcHVycG9zZSB0byBhdm9pZCByZWVudHJhbmN5IHByb2JsZW1zIHdpdGggTkVYVCBhbmQgU0tJUCAqLworCSAgICBjdHh0LT5pbnB1dC0+Y29sKys7CisJICAgIGN0eHQtPm5iQ2hhcnMgKys7CisJICAgIGN0eHQtPmlucHV0LT5jdXIrKzsKKwl9CisgICAgfSBlbHNlIGlmICAoKFJBVyA9PSAnJicpICYmIChOWFQoMSkgPT0gJyMnKSkgeworCVNLSVAoMik7CisJR1JPVzsKKwl3aGlsZSAoUkFXICE9ICc7JykgeyAvKiBsb29wIGJsb2NrZWQgYnkgY291bnQgKi8KKwkgICAgaWYgKGNvdW50KysgPiAyMCkgeworCQljb3VudCA9IDA7CisJCUdST1c7CisJICAgIH0KKwkgICAgaWYgKChSQVcgPj0gJzAnKSAmJiAoUkFXIDw9ICc5JykpIAorCSAgICAgICAgdmFsID0gdmFsICogMTAgKyAoQ1VSIC0gJzAnKTsKKwkgICAgZWxzZSB7CisJCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9ERUNfQ0hBUlJFRiwgTlVMTCk7CisJCXZhbCA9IDA7CisJCWJyZWFrOworCSAgICB9CisJICAgIGlmICh2YWwgPiAweDEwRkZGRikKKwkgICAgICAgIG91dG9mcmFuZ2UgPSB2YWw7CisKKwkgICAgTkVYVDsKKwkgICAgY291bnQrKzsKKwl9CisJaWYgKFJBVyA9PSAnOycpIHsKKwkgICAgLyogb24gcHVycG9zZSB0byBhdm9pZCByZWVudHJhbmN5IHByb2JsZW1zIHdpdGggTkVYVCBhbmQgU0tJUCAqLworCSAgICBjdHh0LT5pbnB1dC0+Y29sKys7CisJICAgIGN0eHQtPm5iQ2hhcnMgKys7CisJICAgIGN0eHQtPmlucHV0LT5jdXIrKzsKKwl9CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVJSRUYsIE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogWyBXRkM6IExlZ2FsIENoYXJhY3RlciBdCisgICAgICogQ2hhcmFjdGVycyByZWZlcnJlZCB0byB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IG1hdGNoIHRoZQorICAgICAqIHByb2R1Y3Rpb24gZm9yIENoYXIuIAorICAgICAqLworICAgIGlmICgoSVNfQ0hBUih2YWwpICYmIChvdXRvZnJhbmdlID09IDApKSkgeworICAgICAgICByZXR1cm4odmFsKTsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxGYXRhbEVyck1zZ0ludChjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFBhcnNlQ2hhclJlZjogaW52YWxpZCB4bWxDaGFyIHZhbHVlICVkXG4iLAorCSAgICAgICAgICAgICAgICAgIHZhbCk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVN0cmluZ0NoYXJSZWY6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHN0cjogIGEgcG9pbnRlciB0byBhbiBpbmRleCBpbiB0aGUgc3RyaW5nCisgKgorICogcGFyc2UgUmVmZXJlbmNlIGRlY2xhcmF0aW9ucywgdmFyaWFudCBwYXJzaW5nIGZyb20gYSBzdHJpbmcgcmF0aGVyCisgKiB0aGFuIGFuIGFuIGlucHV0IGZsb3cuCisgKgorICogWzY2XSBDaGFyUmVmIDo6PSAnJiMnIFswLTldKyAnOycgfAorICogICAgICAgICAgICAgICAgICAnJiN4JyBbMC05YS1mQS1GXSsgJzsnCisgKgorICogWyBXRkM6IExlZ2FsIENoYXJhY3RlciBdCisgKiBDaGFyYWN0ZXJzIHJlZmVycmVkIHRvIHVzaW5nIGNoYXJhY3RlciByZWZlcmVuY2VzIG11c3QgbWF0Y2ggdGhlCisgKiBwcm9kdWN0aW9uIGZvciBDaGFyLiAKKyAqCisgKiBSZXR1cm5zIHRoZSB2YWx1ZSBwYXJzZWQgKGFzIGFuIGludCksIDAgaW4gY2FzZSBvZiBlcnJvciwgc3RyIHdpbGwgYmUKKyAqICAgICAgICAgdXBkYXRlZCB0byB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgaW5kZXgKKyAqLworc3RhdGljIGludAoreG1sUGFyc2VTdHJpbmdDaGFyUmVmKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqKnN0cikgeworICAgIGNvbnN0IHhtbENoYXIgKnB0cjsKKyAgICB4bWxDaGFyIGN1cjsKKyAgICB1bnNpZ25lZCBpbnQgdmFsID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgb3V0b2ZyYW5nZSA9IDA7CisKKyAgICBpZiAoKHN0ciA9PSBOVUxMKSB8fCAoKnN0ciA9PSBOVUxMKSkgcmV0dXJuKDApOworICAgIHB0ciA9ICpzdHI7CisgICAgY3VyID0gKnB0cjsKKyAgICBpZiAoKGN1ciA9PSAnJicpICYmIChwdHJbMV0gPT0gJyMnKSAmJiAocHRyWzJdID09ICd4JykpIHsKKwlwdHIgKz0gMzsKKwljdXIgPSAqcHRyOworCXdoaWxlIChjdXIgIT0gJzsnKSB7IC8qIE5vbiBpbnB1dCBjb25zdW1pbmcgbG9vcCAqLworCSAgICBpZiAoKGN1ciA+PSAnMCcpICYmIChjdXIgPD0gJzknKSkgCisJICAgICAgICB2YWwgPSB2YWwgKiAxNiArIChjdXIgLSAnMCcpOworCSAgICBlbHNlIGlmICgoY3VyID49ICdhJykgJiYgKGN1ciA8PSAnZicpKQorCSAgICAgICAgdmFsID0gdmFsICogMTYgKyAoY3VyIC0gJ2EnKSArIDEwOworCSAgICBlbHNlIGlmICgoY3VyID49ICdBJykgJiYgKGN1ciA8PSAnRicpKQorCSAgICAgICAgdmFsID0gdmFsICogMTYgKyAoY3VyIC0gJ0EnKSArIDEwOworCSAgICBlbHNlIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0hFWF9DSEFSUkVGLCBOVUxMKTsKKwkJdmFsID0gMDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgaWYgKHZhbCA+IDB4MTBGRkZGKQorCSAgICAgICAgb3V0b2ZyYW5nZSA9IHZhbDsKKworCSAgICBwdHIrKzsKKwkgICAgY3VyID0gKnB0cjsKKwl9CisJaWYgKGN1ciA9PSAnOycpCisJICAgIHB0cisrOworICAgIH0gZWxzZSBpZiAgKChjdXIgPT0gJyYnKSAmJiAocHRyWzFdID09ICcjJykpeworCXB0ciArPSAyOworCWN1ciA9ICpwdHI7CisJd2hpbGUgKGN1ciAhPSAnOycpIHsgLyogTm9uIGlucHV0IGNvbnN1bWluZyBsb29wcyAqLworCSAgICBpZiAoKGN1ciA+PSAnMCcpICYmIChjdXIgPD0gJzknKSkgCisJICAgICAgICB2YWwgPSB2YWwgKiAxMCArIChjdXIgLSAnMCcpOworCSAgICBlbHNlIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0RFQ19DSEFSUkVGLCBOVUxMKTsKKwkJdmFsID0gMDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgaWYgKHZhbCA+IDB4MTBGRkZGKQorCSAgICAgICAgb3V0b2ZyYW5nZSA9IHZhbDsKKworCSAgICBwdHIrKzsKKwkgICAgY3VyID0gKnB0cjsKKwl9CisJaWYgKGN1ciA9PSAnOycpCisJICAgIHB0cisrOworICAgIH0gZWxzZSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVJSRUYsIE5VTEwpOworCXJldHVybigwKTsKKyAgICB9CisgICAgKnN0ciA9IHB0cjsKKworICAgIC8qCisgICAgICogWyBXRkM6IExlZ2FsIENoYXJhY3RlciBdCisgICAgICogQ2hhcmFjdGVycyByZWZlcnJlZCB0byB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IG1hdGNoIHRoZQorICAgICAqIHByb2R1Y3Rpb24gZm9yIENoYXIuIAorICAgICAqLworICAgIGlmICgoSVNfQ0hBUih2YWwpICYmIChvdXRvZnJhbmdlID09IDApKSkgeworICAgICAgICByZXR1cm4odmFsKTsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxGYXRhbEVyck1zZ0ludChjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKwkJCSAgInhtbFBhcnNlU3RyaW5nQ2hhclJlZjogaW52YWxpZCB4bWxDaGFyIHZhbHVlICVkXG4iLAorCQkJICB2YWwpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sTmV3QmxhbmtzV3JhcHBlcklucHV0U3RyZWFtOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlbnRpdHk6ICBhbiBFbnRpdHkgcG9pbnRlcgorICoKKyAqIENyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gZm9yIHdyYXBwaW5nCisgKiBibGFua3MgYXJvdW5kIGEgUEVSZWZlcmVuY2UKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwKKyAqLworIAorc3RhdGljIHZvaWQgZGVhbGxvY2JsYW5rc3dyYXBwZXIgKHhtbENoYXIgKnN0cikge3htbEZyZWUoc3RyKTt9CisgCitzdGF0aWMgeG1sUGFyc2VySW5wdXRQdHIKK3htbE5ld0JsYW5rc1dyYXBwZXJJbnB1dFN0cmVhbSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbEVudGl0eVB0ciBlbnRpdHkpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKyAgICB4bWxDaGFyICpidWZmZXI7CisgICAgc2l6ZV90IGxlbmd0aDsKKyAgICBpZiAoZW50aXR5ID09IE5VTEwpIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCSAgICAgICAgICAgICJ4bWxOZXdCbGFua3NXcmFwcGVySW5wdXRTdHJlYW0gZW50aXR5XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICh4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkibmV3IGJsYW5rcyB3cmFwcGVyIGZvciBlbnRpdHk6ICVzXG4iLCBlbnRpdHktPm5hbWUpOworICAgIGlucHV0ID0geG1sTmV3SW5wdXRTdHJlYW0oY3R4dCk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGxlbmd0aCA9IHhtbFN0cmxlbihlbnRpdHktPm5hbWUpICsgNTsKKyAgICBidWZmZXIgPSB4bWxNYWxsb2NBdG9taWMobGVuZ3RoKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpIHsKKwl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisgICAgICAgIHhtbEZyZWUoaW5wdXQpOworICAgIAlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGJ1ZmZlciBbMF0gPSAnICc7CisgICAgYnVmZmVyIFsxXSA9ICclJzsKKyAgICBidWZmZXIgW2xlbmd0aC0zXSA9ICc7JzsKKyAgICBidWZmZXIgW2xlbmd0aC0yXSA9ICcgJzsKKyAgICBidWZmZXIgW2xlbmd0aC0xXSA9IDA7CisgICAgbWVtY3B5KGJ1ZmZlciArIDIsIGVudGl0eS0+bmFtZSwgbGVuZ3RoIC0gNSk7CisgICAgaW5wdXQtPmZyZWUgPSBkZWFsbG9jYmxhbmtzd3JhcHBlcjsKKyAgICBpbnB1dC0+YmFzZSA9IGJ1ZmZlcjsKKyAgICBpbnB1dC0+Y3VyID0gYnVmZmVyOworICAgIGlucHV0LT5sZW5ndGggPSBsZW5ndGg7CisgICAgaW5wdXQtPmVuZCA9ICZidWZmZXJbbGVuZ3RoXTsKKyAgICByZXR1cm4oaW5wdXQpOworfQorCisvKioKKyAqIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIAorICogWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnCisgKgorICogWyBXRkM6IE5vIFJlY3Vyc2lvbiBdCisgKiBBIHBhcnNlZCBlbnRpdHkgbXVzdCBub3QgY29udGFpbiBhIHJlY3Vyc2l2ZQorICogcmVmZXJlbmNlIHRvIGl0c2VsZiwgZWl0aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkuIAorICoKKyAqIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXQorICogSW4gYSBkb2N1bWVudCB3aXRob3V0IGFueSBEVEQsIGEgZG9jdW1lbnQgd2l0aCBvbmx5IGFuIGludGVybmFsIERURAorICogc3Vic2V0IHdoaWNoIGNvbnRhaW5zIG5vIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlcywgb3IgYSBkb2N1bWVudAorICogd2l0aCAic3RhbmRhbG9uZT0neWVzJyIsIC4uLiAgLi4uIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlcgorICogZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0Li4uCisgKgorICogWyBWQzogRW50aXR5IERlY2xhcmVkIF0KKyAqIEluIGEgZG9jdW1lbnQgd2l0aCBhbiBleHRlcm5hbCBzdWJzZXQgb3IgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzCisgKiB3aXRoICJzdGFuZGFsb25lPSdubyciLCAuLi4gIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5CisgKiBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdC4uLgorICoKKyAqIFsgV0ZDOiBJbiBEVEQgXQorICogUGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzIG1heSBvbmx5IGFwcGVhciBpbiB0aGUgRFRELgorICogTk9URTogbWlzbGVhZGluZyBidXQgdGhpcyBpcyBoYW5kbGVkLgorICoKKyAqIEEgUEVSZWZlcmVuY2UgbWF5IGhhdmUgYmVlbiBkZXRlY3RlZCBpbiB0aGUgY3VycmVudCBpbnB1dCBzdHJlYW0KKyAqIHRoZSBoYW5kbGluZyBpcyBkb25lIGFjY29yZGluZ2x5IHRvIAorICogICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI2VudHByb2MKKyAqIGkuZS4gCisgKiAgIC0gSW5jbHVkZWQgaW4gbGl0ZXJhbCBpbiBlbnRpdHkgdmFsdWVzCisgKiAgIC0gSW5jbHVkZWQgYXMgUGFyYW1ldGVyIEVudGl0eSByZWZlcmVuY2Ugd2l0aGluIERURHMKKyAqLwordm9pZAoreG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxFbnRpdHlQdHIgZW50aXR5ID0gTlVMTDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKworICAgIGlmIChSQVcgIT0gJyUnKSByZXR1cm47CisgICAgc3dpdGNoKGN0eHQtPmluc3RhdGUpIHsKKwljYXNlIFhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTjoKKwkgICAgcmV0dXJuOworICAgICAgICBjYXNlIFhNTF9QQVJTRVJfQ09NTUVOVDoKKwkgICAgcmV0dXJuOworCWNhc2UgWE1MX1BBUlNFUl9TVEFSVF9UQUc6CisJICAgIHJldHVybjsKKwljYXNlIFhNTF9QQVJTRVJfRU5EX1RBRzoKKwkgICAgcmV0dXJuOworICAgICAgICBjYXNlIFhNTF9QQVJTRVJfRU9GOgorCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1BFUkVGX0FUX0VPRiwgTlVMTCk7CisJICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBYTUxfUEFSU0VSX1BST0xPRzoKKwljYXNlIFhNTF9QQVJTRVJfU1RBUlQ6CisJY2FzZSBYTUxfUEFSU0VSX01JU0M6CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfUEVSRUZfSU5fUFJPTE9HLCBOVUxMKTsKKwkgICAgcmV0dXJuOworCWNhc2UgWE1MX1BBUlNFUl9FTlRJVFlfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0NPTlRFTlQ6CisgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9BVFRSSUJVVEVfVkFMVUU6CisgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9QSToKKwljYXNlIFhNTF9QQVJTRVJfU1lTVEVNX0xJVEVSQUw6CisJY2FzZSBYTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMOgorCSAgICAvKiB3ZSBqdXN0IGlnbm9yZSBpdCB0aGVyZSAqLworCSAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9FUElMT0c6CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfUEVSRUZfSU5fRVBJTE9HLCBOVUxMKTsKKwkgICAgcmV0dXJuOworCWNhc2UgWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUU6CisJICAgIC8qCisJICAgICAqIE5PVEU6IGluIHRoZSBjYXNlIG9mIGVudGl0eSB2YWx1ZXMsIHdlIGRvbid0IGRvIHRoZQorCSAgICAgKiAgICAgICBzdWJzdGl0dXRpb24gaGVyZSBzaW5jZSB3ZSBuZWVkIHRoZSBsaXRlcmFsCisJICAgICAqICAgICAgIGVudGl0eSB2YWx1ZSB0byBiZSBhYmxlIHRvIHNhdmUgdGhlIGludGVybmFsCisJICAgICAqICAgICAgIHN1YnNldCBvZiB0aGUgZG9jdW1lbnQuCisJICAgICAqICAgICAgIFRoaXMgd2lsbCBiZSBoYW5kbGVkIGJ5IHhtbFN0cmluZ0RlY29kZUVudGl0aWVzCisJICAgICAqLworCSAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9EVEQ6CisJICAgIC8qCisJICAgICAqIFtXRkM6IFdlbGwtRm9ybWVkbmVzcyBDb25zdHJhaW50OiBQRXMgaW4gSW50ZXJuYWwgU3Vic2V0XQorCSAgICAgKiBJbiB0aGUgaW50ZXJuYWwgRFREIHN1YnNldCwgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzCisJICAgICAqIGNhbiBvY2N1ciBvbmx5IHdoZXJlIG1hcmt1cCBkZWNsYXJhdGlvbnMgY2FuIG9jY3VyLCBub3QKKwkgICAgICogd2l0aGluIG1hcmt1cCBkZWNsYXJhdGlvbnMuCisJICAgICAqIEluIHRoYXQgY2FzZSB0aGlzIGlzIGhhbmRsZWQgaW4geG1sUGFyc2VNYXJrdXBEZWNsCisJICAgICAqLworCSAgICBpZiAoKGN0eHQtPmV4dGVybmFsID09IDApICYmIChjdHh0LT5pbnB1dE5yID09IDEpKQorCQlyZXR1cm47CisJICAgIGlmIChJU19CTEFOS19DSChOWFQoMSkpIHx8IE5YVCgxKSA9PSAwKQorCQlyZXR1cm47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0lHTk9SRToKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBORVhUOworICAgIG5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisgICAgaWYgKHhtbFBhcnNlckRlYnVnRW50aXRpZXMpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJQRVJlZmVyZW5jZTogJXNcbiIsIG5hbWUpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1BFUkVGX05PX05BTUUsIE5VTEwpOworICAgIH0gZWxzZSB7CisJaWYgKFJBVyA9PSAnOycpIHsKKwkgICAgTkVYVDsKKwkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+Z2V0UGFyYW1ldGVyRW50aXR5ICE9IE5VTEwpKQorCQllbnRpdHkgPSBjdHh0LT5zYXgtPmdldFBhcmFtZXRlckVudGl0eShjdHh0LT51c2VyRGF0YSwgbmFtZSk7CisJICAgIGlmIChlbnRpdHkgPT0gTlVMTCkgeworCSAgICAgICAgCisJCS8qCisJCSAqIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXQorCQkgKiBJbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4KKwkJICogaW50ZXJuYWwgRFREIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5CisJCSAqIHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQgd2l0aCAic3RhbmRhbG9uZT0neWVzJyIsIC4uLgorCQkgKiAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUKKwkJICogYW55IHJlZmVyZW5jZSB0byBpdC4uLgorCQkgKi8KKwkJaWYgKChjdHh0LT5zdGFuZGFsb25lID09IDEpIHx8CisJCSAgICAoKGN0eHQtPmhhc0V4dGVybmFsU3Vic2V0ID09IDApICYmCisJCSAgICAgKGN0eHQtPmhhc1BFcmVmcyA9PSAwKSkpIHsKKwkJICAgIHhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfVU5ERUNMQVJFRF9FTlRJVFksCisJCQkgIlBFUmVmZXJlbmNlOiAlJSVzOyBub3QgZm91bmRcbiIsIG5hbWUpOworCSAgICAgICAgfSBlbHNlIHsKKwkJICAgIC8qCisJCSAgICAgKiBbIFZDOiBFbnRpdHkgRGVjbGFyZWQgXQorCQkgICAgICogSW4gYSBkb2N1bWVudCB3aXRoIGFuIGV4dGVybmFsIHN1YnNldCBvciBleHRlcm5hbAorCQkgICAgICogcGFyYW1ldGVyIGVudGl0aWVzIHdpdGggInN0YW5kYWxvbmU9J25vJyIsIC4uLgorCQkgICAgICogLi4uIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBwcmVjZWRlCisJCSAgICAgKiBhbnkgcmVmZXJlbmNlIHRvIGl0Li4uCisJCSAgICAgKi8KKwkJICAgIGlmICgoY3R4dC0+dmFsaWRhdGUpICYmIChjdHh0LT52Y3R4dC5lcnJvciAhPSBOVUxMKSkgeworCQkgICAgICAgIHhtbFZhbGlkaXR5RXJyb3IoY3R4dCwgWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWSwKKwkJCSAgICAgICAgICAgICAgICAgIlBFUmVmZXJlbmNlOiAlJSVzOyBub3QgZm91bmRcbiIsCisJCQkJICAgICAgICAgbmFtZSwgTlVMTCk7CisJCSAgICB9IGVsc2UgCisJCSAgICAgICAgeG1sV2FybmluZ01zZyhjdHh0LCBYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZLAorCQkJICAgICAgICAgICAgICAiUEVSZWZlcmVuY2U6ICUlJXM7IG5vdCBmb3VuZFxuIiwKKwkJCQkgICAgICBuYW1lLCBOVUxMKTsKKwkJICAgIGN0eHQtPnZhbGlkID0gMDsKKwkJfQorCSAgICB9IGVsc2UgaWYgKGN0eHQtPmlucHV0LT5mcmVlICE9IGRlYWxsb2NibGFua3N3cmFwcGVyKSB7CisJCSAgICBpbnB1dCA9IHhtbE5ld0JsYW5rc1dyYXBwZXJJbnB1dFN0cmVhbShjdHh0LCBlbnRpdHkpOworCQkgICAgaWYgKHhtbFB1c2hJbnB1dChjdHh0LCBpbnB1dCkgPCAwKQorCQkgICAgICAgIHJldHVybjsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGlmICgoZW50aXR5LT5ldHlwZSA9PSBYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWSkgfHwKKwkJICAgIChlbnRpdHktPmV0eXBlID09IFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZKSkgeworCQkgICAgeG1sQ2hhciBzdGFydFs0XTsKKwkJICAgIHhtbENoYXJFbmNvZGluZyBlbmM7CisKKwkJICAgIC8qCisJCSAgICAgKiBoYW5kbGUgdGhlIGV4dHJhIHNwYWNlcyBhZGRlZCBiZWZvcmUgYW5kIGFmdGVyCisJCSAgICAgKiBjLmYuIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjYXMtUEUKKwkJICAgICAqIHRoaXMgaXMgZG9uZSBpbmRlcGVuZGVudGx5LgorCQkgICAgICovCisJCSAgICBpbnB1dCA9IHhtbE5ld0VudGl0eUlucHV0U3RyZWFtKGN0eHQsIGVudGl0eSk7CisJCSAgICBpZiAoeG1sUHVzaElucHV0KGN0eHQsIGlucHV0KSA8IDApCisJCSAgICAgICAgcmV0dXJuOworCisJCSAgICAvKiAKKwkJICAgICAqIEdldCB0aGUgNCBmaXJzdCBieXRlcyBhbmQgZGVjb2RlIHRoZSBjaGFyc2V0CisJCSAgICAgKiBpZiBlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORQorCQkgICAgICogcGx1ZyBzb21lIGVuY29kaW5nIGNvbnZlcnNpb24gcm91dGluZXMuCisJCSAgICAgKiBOb3RlIHRoYXQsIHNpbmNlIHdlIG1heSBoYXZlIHNvbWUgbm9uLVVURjgKKwkJICAgICAqIGVuY29kaW5nIChsaWtlIFVURjE2LCBidWcgMTM1MjI5KSwgdGhlICdsZW5ndGgnCisJCSAgICAgKiBpcyBub3Qga25vd24sIGJ1dCB3ZSBjYW4gY2FsY3VsYXRlIGJhc2VkIHVwb24KKwkJICAgICAqIHRoZSBhbW91bnQgb2YgZGF0YSBpbiB0aGUgYnVmZmVyLgorCQkgICAgICovCisJCSAgICBHUk9XCisJCSAgICBpZiAoKGN0eHQtPmlucHV0LT5lbmQgLSBjdHh0LT5pbnB1dC0+Y3VyKT49NCkgeworCQkJc3RhcnRbMF0gPSBSQVc7CisJCQlzdGFydFsxXSA9IE5YVCgxKTsKKwkJCXN0YXJ0WzJdID0gTlhUKDIpOworCQkJc3RhcnRbM10gPSBOWFQoMyk7CisJCQllbmMgPSB4bWxEZXRlY3RDaGFyRW5jb2Rpbmcoc3RhcnQsIDQpOworCQkJaWYgKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FKSB7CisJCQkgICAgeG1sU3dpdGNoRW5jb2RpbmcoY3R4dCwgZW5jKTsKKwkJCX0KKwkJICAgIH0KKworCQkgICAgaWYgKChlbnRpdHktPmV0eXBlID09IFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZKSAmJgorCQkJKENNUDUoQ1VSX1BUUiwgJzwnLCAnPycsICd4JywgJ20nLCAnbCcgKSkgJiYKKwkJCShJU19CTEFOS19DSChOWFQoNSkpKSkgeworCQkJeG1sUGFyc2VUZXh0RGVjbChjdHh0KTsKKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIHhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfRU5USVRZX0lTX1BBUkFNRVRFUiwKKwkJCSAgICAgIlBFUmVmZXJlbmNlOiAlcyBpcyBub3QgYSBwYXJhbWV0ZXIgZW50aXR5XG4iLAorCQkJCSAgICAgIG5hbWUpOworCQl9CisJICAgIH0KKwl9IGVsc2UgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1BFUkVGX1NFTUlDT0xfTUlTU0lORywgTlVMTCk7CisJfQorICAgIH0KK30KKworLyoKKyAqIE1hY3JvIHVzZWQgdG8gZ3JvdyB0aGUgY3VycmVudCBidWZmZXIuCisgKi8KKyNkZWZpbmUgZ3Jvd0J1ZmZlcihidWZmZXIsIG4pIHsJCQkJCQlcCisgICAgeG1sQ2hhciAqdG1wOwkJCQkJCQlcCisgICAgYnVmZmVyIyNfc2l6ZSAqPSAyOwkJCQkJCQlcCisgICAgYnVmZmVyIyNfc2l6ZSArPSBuOwkJCQkJCQlcCisgICAgdG1wID0gKHhtbENoYXIgKikJCQkJCQkJXAorCQl4bWxSZWFsbG9jKGJ1ZmZlciwgYnVmZmVyIyNfc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CVwKKyAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gbWVtX2Vycm9yOwkJCQkJXAorICAgIGJ1ZmZlciA9IHRtcDsJCQkJCQkJXAorfQorCisvKioKKyAqIHhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBzdHI6ICB0aGUgaW5wdXQgc3RyaW5nCisgKiBAbGVuOiB0aGUgc3RyaW5nIGxlbmd0aAorICogQHdoYXQ6ICBjb21iaW5hdGlvbiBvZiBYTUxfU1VCU1RJVFVURV9SRUYgYW5kIFhNTF9TVUJTVElUVVRFX1BFUkVGCisgKiBAZW5kOiAgYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUKKyAqIEBlbmQyOiAgYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUKKyAqIEBlbmQzOiAgYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUKKyAqIAorICogVGFrZXMgYSBlbnRpdHkgc3RyaW5nIGNvbnRlbnQgYW5kIHByb2Nlc3MgdG8gZG8gdGhlIGFkZXF1YXRlIHN1YnN0aXR1dGlvbnMuCisgKgorICogWzY3XSBSZWZlcmVuY2UgOjo9IEVudGl0eVJlZiB8IENoYXJSZWYKKyAqCisgKiBbNjldIFBFUmVmZXJlbmNlIDo6PSAnJScgTmFtZSAnOycKKyAqCisgKiBSZXR1cm5zIEEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzdWJzdGl0dXRpb24gZG9uZS4gVGhlIGNhbGxlcgorICogICAgICBtdXN0IGRlYWxsb2NhdGUgaXQgIQorICovCit4bWxDaGFyICoKK3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqc3RyLCBpbnQgbGVuLAorCQkgICAgICBpbnQgd2hhdCwgeG1sQ2hhciBlbmQsIHhtbENoYXIgIGVuZDIsIHhtbENoYXIgZW5kMykgeworICAgIHhtbENoYXIgKmJ1ZmZlciA9IE5VTEw7CisgICAgaW50IGJ1ZmZlcl9zaXplID0gMDsKKworICAgIHhtbENoYXIgKmN1cnJlbnQgPSBOVUxMOworICAgIHhtbENoYXIgKnJlcCA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqbGFzdDsKKyAgICB4bWxFbnRpdHlQdHIgZW50OworICAgIGludCBjLGw7CisgICAgaW50IG5iY2hhcnMgPSAwOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzdHIgPT0gTlVMTCkgfHwgKGxlbiA8IDApKQorCXJldHVybihOVUxMKTsKKyAgICBsYXN0ID0gc3RyICsgbGVuOworCisgICAgaWYgKCgoY3R4dC0+ZGVwdGggPiA0MCkgJiYKKyAgICAgICAgICgoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9IVUdFKSA9PSAwKSkgfHwKKwkoY3R4dC0+ZGVwdGggPiAxMDI0KSkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRU5USVRZX0xPT1AsIE5VTEwpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGFsbG9jYXRlIGEgdHJhbnNsYXRpb24gYnVmZmVyLgorICAgICAqLworICAgIGJ1ZmZlcl9zaXplID0gWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkU7CisgICAgYnVmZmVyID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKGJ1ZmZlcl9zaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpIGdvdG8gbWVtX2Vycm9yOworCisgICAgLyoKKyAgICAgKiBPSyBsb29wIHVudGlsIHdlIHJlYWNoIG9uZSBvZiB0aGUgZW5kaW5nIGNoYXIgb3IgYSBzaXplIGxpbWl0LgorICAgICAqIHdlIGFyZSBvcGVyYXRpbmcgb24gYWxyZWFkeSBwYXJzZWQgdmFsdWVzLgorICAgICAqLworICAgIGlmIChzdHIgPCBsYXN0KQorCWMgPSBDVVJfU0NIQVIoc3RyLCBsKTsKKyAgICBlbHNlCisgICAgICAgIGMgPSAwOworICAgIHdoaWxlICgoYyAhPSAwKSAmJiAoYyAhPSBlbmQpICYmIC8qIG5vbiBpbnB1dCBjb25zdW1pbmcgbG9vcCAqLworCSAgIChjICE9IGVuZDIpICYmIChjICE9IGVuZDMpKSB7CisKKwlpZiAoYyA9PSAwKSBicmVhazsKKyAgICAgICAgaWYgKChjID09ICcmJykgJiYgKHN0clsxXSA9PSAnIycpKSB7CisJICAgIGludCB2YWwgPSB4bWxQYXJzZVN0cmluZ0NoYXJSZWYoY3R4dCwgJnN0cik7CisJICAgIGlmICh2YWwgIT0gMCkgeworCQlDT1BZX0JVRigwLGJ1ZmZlcixuYmNoYXJzLHZhbCk7CisJICAgIH0KKwkgICAgaWYgKG5iY2hhcnMgPiBidWZmZXJfc2l6ZSAtIFhNTF9QQVJTRVJfQlVGRkVSX1NJWkUpIHsKKwkgICAgICAgIGdyb3dCdWZmZXIoYnVmZmVyLCBYTUxfUEFSU0VSX0JVRkZFUl9TSVpFKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoKGMgPT0gJyYnKSAmJiAod2hhdCAmIFhNTF9TVUJTVElUVVRFX1JFRikpIHsKKwkgICAgaWYgKHhtbFBhcnNlckRlYnVnRW50aXRpZXMpCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlN0cmluZyBkZWNvZGluZyBFbnRpdHkgUmVmZXJlbmNlOiAlLjMwc1xuIiwKKwkJCXN0cik7CisJICAgIGVudCA9IHhtbFBhcnNlU3RyaW5nRW50aXR5UmVmKGN0eHQsICZzdHIpOworCSAgICBpZiAoKGN0eHQtPmxhc3RFcnJvci5jb2RlID09IFhNTF9FUlJfRU5USVRZX0xPT1ApIHx8CisJICAgICAgICAoY3R4dC0+bGFzdEVycm9yLmNvZGUgPT0gWE1MX0VSUl9JTlRFUk5BTF9FUlJPUikpCisJICAgICAgICBnb3RvIGludF9lcnJvcjsKKwkgICAgaWYgKGVudCAhPSBOVUxMKQorCSAgICAgICAgY3R4dC0+bmJlbnRpdGllcyArPSBlbnQtPmNoZWNrZWQ7CisJICAgIGlmICgoZW50ICE9IE5VTEwpICYmCisJCShlbnQtPmV0eXBlID09IFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSkpIHsKKwkJaWYgKGVudC0+Y29udGVudCAhPSBOVUxMKSB7CisJCSAgICBDT1BZX0JVRigwLGJ1ZmZlcixuYmNoYXJzLGVudC0+Y29udGVudFswXSk7CisJCSAgICBpZiAobmJjaGFycyA+IGJ1ZmZlcl9zaXplIC0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRSkgeworCQkJZ3Jvd0J1ZmZlcihidWZmZXIsIFhNTF9QQVJTRVJfQlVGRkVSX1NJWkUpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSAgICAicHJlZGVmaW5lZCBlbnRpdHkgaGFzIG5vIGNvbnRlbnRcbiIpOworCQl9CisJICAgIH0gZWxzZSBpZiAoKGVudCAhPSBOVUxMKSAmJiAoZW50LT5jb250ZW50ICE9IE5VTEwpKSB7CisJCWN0eHQtPmRlcHRoKys7CisJCXJlcCA9IHhtbFN0cmluZ0RlY29kZUVudGl0aWVzKGN0eHQsIGVudC0+Y29udGVudCwgd2hhdCwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwKTsKKwkJY3R4dC0+ZGVwdGgtLTsKKworCQlpZiAocmVwICE9IE5VTEwpIHsKKwkJICAgIGN1cnJlbnQgPSByZXA7CisJCSAgICB3aGlsZSAoKmN1cnJlbnQgIT0gMCkgeyAvKiBub24gaW5wdXQgY29uc3VtaW5nIGxvb3AgKi8KKwkJCWJ1ZmZlcltuYmNoYXJzKytdID0gKmN1cnJlbnQrKzsKKwkJCWlmIChuYmNoYXJzID4KKwkJICAgICAgICAgICAgYnVmZmVyX3NpemUgLSBYTUxfUEFSU0VSX0JVRkZFUl9TSVpFKSB7CisJCQkgICAgaWYgKHhtbFBhcnNlckVudGl0eUNoZWNrKGN0eHQsIG5iY2hhcnMsIGVudCkpCisJCQkJZ290byBpbnRfZXJyb3I7CisJCQkgICAgZ3Jvd0J1ZmZlcihidWZmZXIsIFhNTF9QQVJTRVJfQlVGRkVSX1NJWkUpOworCQkJfQorCQkgICAgfQorCQkgICAgeG1sRnJlZShyZXApOworCQkgICAgcmVwID0gTlVMTDsKKwkJfQorCSAgICB9IGVsc2UgaWYgKGVudCAhPSBOVUxMKSB7CisJCWludCBpID0geG1sU3RybGVuKGVudC0+bmFtZSk7CisJCWNvbnN0IHhtbENoYXIgKmN1ciA9IGVudC0+bmFtZTsKKworCQlidWZmZXJbbmJjaGFycysrXSA9ICcmJzsKKwkJaWYgKG5iY2hhcnMgPiBidWZmZXJfc2l6ZSAtIGkgLSBYTUxfUEFSU0VSX0JVRkZFUl9TSVpFKSB7CisJCSAgICBncm93QnVmZmVyKGJ1ZmZlciwgWE1MX1BBUlNFUl9CVUZGRVJfU0laRSk7CisJCX0KKwkJZm9yICg7aSA+IDA7aS0tKQorCQkgICAgYnVmZmVyW25iY2hhcnMrK10gPSAqY3VyKys7CisJCWJ1ZmZlcltuYmNoYXJzKytdID0gJzsnOworCSAgICB9CisJfSBlbHNlIGlmIChjID09ICclJyAmJiAod2hhdCAmIFhNTF9TVUJTVElUVVRFX1BFUkVGKSkgeworCSAgICBpZiAoeG1sUGFyc2VyRGVidWdFbnRpdGllcykKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiU3RyaW5nIGRlY29kaW5nIFBFIFJlZmVyZW5jZTogJS4zMHNcbiIsIHN0cik7CisJICAgIGVudCA9IHhtbFBhcnNlU3RyaW5nUEVSZWZlcmVuY2UoY3R4dCwgJnN0cik7CisJICAgIGlmIChjdHh0LT5sYXN0RXJyb3IuY29kZSA9PSBYTUxfRVJSX0VOVElUWV9MT09QKQorCSAgICAgICAgZ290byBpbnRfZXJyb3I7CisJICAgIGlmIChlbnQgIT0gTlVMTCkKKwkgICAgICAgIGN0eHQtPm5iZW50aXRpZXMgKz0gZW50LT5jaGVja2VkOworCSAgICBpZiAoZW50ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW50LT5jb250ZW50ID09IE5VTEwpIHsKKwkJICAgIHhtbExvYWRFbnRpdHlDb250ZW50KGN0eHQsIGVudCk7CisJCX0KKwkJY3R4dC0+ZGVwdGgrKzsKKwkJcmVwID0geG1sU3RyaW5nRGVjb2RlRW50aXRpZXMoY3R4dCwgZW50LT5jb250ZW50LCB3aGF0LAorCQkJICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDApOworCQljdHh0LT5kZXB0aC0tOworCQlpZiAocmVwICE9IE5VTEwpIHsKKwkJICAgIGN1cnJlbnQgPSByZXA7CisJCSAgICB3aGlsZSAoKmN1cnJlbnQgIT0gMCkgeyAvKiBub24gaW5wdXQgY29uc3VtaW5nIGxvb3AgKi8KKwkJCWJ1ZmZlcltuYmNoYXJzKytdID0gKmN1cnJlbnQrKzsKKwkJCWlmIChuYmNoYXJzID4KKwkJICAgICAgICAgICAgYnVmZmVyX3NpemUgLSBYTUxfUEFSU0VSX0JVRkZFUl9TSVpFKSB7CisJCQkgICAgaWYgKHhtbFBhcnNlckVudGl0eUNoZWNrKGN0eHQsIG5iY2hhcnMsIGVudCkpCisJCQkgICAgICAgIGdvdG8gaW50X2Vycm9yOworCQkJICAgIGdyb3dCdWZmZXIoYnVmZmVyLCBYTUxfUEFSU0VSX0JVRkZFUl9TSVpFKTsKKwkJCX0KKwkJICAgIH0KKwkJICAgIHhtbEZyZWUocmVwKTsKKwkJICAgIHJlcCA9IE5VTEw7CisJCX0KKwkgICAgfQorCX0gZWxzZSB7CisJICAgIENPUFlfQlVGKGwsYnVmZmVyLG5iY2hhcnMsYyk7CisJICAgIHN0ciArPSBsOworCSAgICBpZiAobmJjaGFycyA+IGJ1ZmZlcl9zaXplIC0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRSkgeworCSAgICAgIGdyb3dCdWZmZXIoYnVmZmVyLCBYTUxfUEFSU0VSX0JVRkZFUl9TSVpFKTsKKwkgICAgfQorCX0KKwlpZiAoc3RyIDwgbGFzdCkKKwkgICAgYyA9IENVUl9TQ0hBUihzdHIsIGwpOworCWVsc2UKKwkgICAgYyA9IDA7CisgICAgfQorICAgIGJ1ZmZlcltuYmNoYXJzXSA9IDA7CisgICAgcmV0dXJuKGJ1ZmZlcik7CisKK21lbV9lcnJvcjoKKyAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CitpbnRfZXJyb3I6CisgICAgaWYgKHJlcCAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHJlcCk7CisgICAgaWYgKGJ1ZmZlciAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGJ1ZmZlcik7CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFN0cmluZ0RlY29kZUVudGl0aWVzOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBzdHI6ICB0aGUgaW5wdXQgc3RyaW5nCisgKiBAd2hhdDogIGNvbWJpbmF0aW9uIG9mIFhNTF9TVUJTVElUVVRFX1JFRiBhbmQgWE1MX1NVQlNUSVRVVEVfUEVSRUYKKyAqIEBlbmQ6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogQGVuZDI6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogQGVuZDM6ICBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZQorICogCisgKiBUYWtlcyBhIGVudGl0eSBzdHJpbmcgY29udGVudCBhbmQgcHJvY2VzcyB0byBkbyB0aGUgYWRlcXVhdGUgc3Vic3RpdHV0aW9ucy4KKyAqCisgKiBbNjddIFJlZmVyZW5jZSA6Oj0gRW50aXR5UmVmIHwgQ2hhclJlZgorICoKKyAqIFs2OV0gUEVSZWZlcmVuY2UgOjo9ICclJyBOYW1lICc7JworICoKKyAqIFJldHVybnMgQSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIHdpdGggdGhlIHN1YnN0aXR1dGlvbiBkb25lLiBUaGUgY2FsbGVyCisgKiAgICAgIG11c3QgZGVhbGxvY2F0ZSBpdCAhCisgKi8KK3htbENoYXIgKgoreG1sU3RyaW5nRGVjb2RlRW50aXRpZXMoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpzdHIsIGludCB3aGF0LAorCQkgICAgICAgIHhtbENoYXIgZW5kLCB4bWxDaGFyICBlbmQyLCB4bWxDaGFyIGVuZDMpIHsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHN0ciA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworICAgIHJldHVybih4bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyhjdHh0LCBzdHIsIHhtbFN0cmxlbihzdHIpLCB3aGF0LAorICAgICAgICAgICBlbmQsIGVuZDIsIGVuZDMpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJQ29tbW9kaXR5IGZ1bmN0aW9ucywgY2xlYW51cCBuZWVkZWQgPwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBhcmVCbGFua3M6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHN0cjogIGEgeG1sQ2hhciAqCisgKiBAbGVuOiAgdGhlIHNpemUgb2YgQHN0cgorICogQGJsYW5rX2NoYXJzOiB3ZSBrbm93IHRoZSBjaGFycyBhcmUgYmxhbmtzCisgKgorICogSXMgdGhpcyBhIHNlcXVlbmNlIG9mIGJsYW5rIGNoYXJzIHRoYXQgb25lIGNhbiBpZ25vcmUgPworICoKKyAqIFJldHVybnMgMSBpZiBpZ25vcmFibGUgMCBvdGhlcndpc2UuCisgKi8KKworc3RhdGljIGludCBhcmVCbGFua3MoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpzdHIsIGludCBsZW4sCisgICAgICAgICAgICAgICAgICAgICBpbnQgYmxhbmtfY2hhcnMpIHsKKyAgICBpbnQgaSwgcmV0OworICAgIHhtbE5vZGVQdHIgbGFzdENoaWxkOworCisgICAgLyoKKyAgICAgKiBEb24ndCBzcGVuZCB0aW1lIHRyeWluZyB0byBkaWZmZXJlbnRpYXRlIHRoZW0sIHRoZSBzYW1lIGNhbGxiYWNrIGlzCisgICAgICogdXNlZCAhCisgICAgICovCisgICAgaWYgKGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSA9PSBjdHh0LT5zYXgtPmNoYXJhY3RlcnMpCisJcmV0dXJuKDApOworCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgeG1sOnNwYWNlIHZhbHVlLgorICAgICAqLworICAgIGlmICgoY3R4dC0+c3BhY2UgPT0gTlVMTCkgfHwgKCooY3R4dC0+c3BhY2UpID09IDEpIHx8CisgICAgICAgICgqKGN0eHQtPnNwYWNlKSA9PSAtMikpCisJcmV0dXJuKDApOworCisgICAgLyoKKyAgICAgKiBDaGVjayB0aGF0IHRoZSBzdHJpbmcgaXMgbWFkZSBvZiBibGFua3MKKyAgICAgKi8KKyAgICBpZiAoYmxhbmtfY2hhcnMgPT0gMCkgeworCWZvciAoaSA9IDA7aSA8IGxlbjtpKyspCisJICAgIGlmICghKElTX0JMQU5LX0NIKHN0cltpXSkpKSByZXR1cm4oMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBMb29rIGlmIHRoZSBlbGVtZW50IGlzIG1peGVkIGNvbnRlbnQgaW4gdGhlIERURCBpZiBhdmFpbGFibGUKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+bm9kZSA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgaWYgKGN0eHQtPm15RG9jICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxJc01peGVkRWxlbWVudChjdHh0LT5teURvYywgY3R4dC0+bm9kZS0+bmFtZSk7CisgICAgICAgIGlmIChyZXQgPT0gMCkgcmV0dXJuKDEpOworICAgICAgICBpZiAocmV0ID09IDEpIHJldHVybigwKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE90aGVyd2lzZSwgaGV1cmlzdGljIDotXAorICAgICAqLworICAgIGlmICgoUkFXICE9ICc8JykgJiYgKFJBVyAhPSAweEQpKSByZXR1cm4oMCk7CisgICAgaWYgKChjdHh0LT5ub2RlLT5jaGlsZHJlbiA9PSBOVUxMKSAmJgorCShSQVcgPT0gJzwnKSAmJiAoTlhUKDEpID09ICcvJykpIHJldHVybigwKTsKKworICAgIGxhc3RDaGlsZCA9IHhtbEdldExhc3RDaGlsZChjdHh0LT5ub2RlKTsKKyAgICBpZiAobGFzdENoaWxkID09IE5VTEwpIHsKKyAgICAgICAgaWYgKChjdHh0LT5ub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisgICAgICAgICAgICAoY3R4dC0+bm9kZS0+Y29udGVudCAhPSBOVUxMKSkgcmV0dXJuKDApOworICAgIH0gZWxzZSBpZiAoeG1sTm9kZUlzVGV4dChsYXN0Q2hpbGQpKQorICAgICAgICByZXR1cm4oMCk7CisgICAgZWxzZSBpZiAoKGN0eHQtPm5vZGUtPmNoaWxkcmVuICE9IE5VTEwpICYmCisgICAgICAgICAgICAgKHhtbE5vZGVJc1RleHQoY3R4dC0+bm9kZS0+Y2hpbGRyZW4pKSkKKyAgICAgICAgcmV0dXJuKDApOworICAgIHJldHVybigxKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJRXh0cmEgc3R1ZmYgZm9yIG5hbWVzcGFjZSBzdXBwb3J0CQkJKgorICoJUmVsYXRlcyB0byBodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbmFtZXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sU3BsaXRRTmFtZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHByZWZpeDogIGEgeG1sQ2hhciAqKgorICoKKyAqIHBhcnNlIGFuIFVURjggZW5jb2RlZCBYTUwgcXVhbGlmaWVkIG5hbWUgc3RyaW5nCisgKgorICogW05TIDVdIFFOYW1lIDo6PSAoUHJlZml4ICc6Jyk/IExvY2FsUGFydAorICoKKyAqIFtOUyA2XSBQcmVmaXggOjo9IE5DTmFtZQorICoKKyAqIFtOUyA3XSBMb2NhbFBhcnQgOjo9IE5DTmFtZQorICoKKyAqIFJldHVybnMgdGhlIGxvY2FsIHBhcnQsIGFuZCBwcmVmaXggaXMgdXBkYXRlZAorICogICB0byBnZXQgdGhlIFByZWZpeCBpZiBhbnkuCisgKi8KKworeG1sQ2hhciAqCit4bWxTcGxpdFFOYW1lKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgeG1sQ2hhciAqKnByZWZpeCkgeworICAgIHhtbENoYXIgYnVmW1hNTF9NQVhfTkFNRUxFTiArIDVdOworICAgIHhtbENoYXIgKmJ1ZmZlciA9IE5VTEw7CisgICAgaW50IGxlbiA9IDA7CisgICAgaW50IG1heCA9IFhNTF9NQVhfTkFNRUxFTjsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IG5hbWU7CisgICAgaW50IGM7CisKKyAgICBpZiAocHJlZml4ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICAqcHJlZml4ID0gTlVMTDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisjaWZuZGVmIFhNTF9YTUxfTkFNRVNQQUNFCisgICAgLyogeG1sOiBwcmVmaXggaXMgbm90IHJlYWxseSBhIG5hbWVzcGFjZSAqLworICAgIGlmICgoY3VyWzBdID09ICd4JykgJiYgKGN1clsxXSA9PSAnbScpICYmCisgICAgICAgIChjdXJbMl0gPT0gJ2wnKSAmJiAoY3VyWzNdID09ICc6JykpCisJcmV0dXJuKHhtbFN0cmR1cChuYW1lKSk7CisjZW5kaWYKKworICAgIC8qIG5hc3R5IGJ1dCB3ZWxsPWZvcm1lZCAqLworICAgIGlmIChjdXJbMF0gPT0gJzonKQorCXJldHVybih4bWxTdHJkdXAobmFtZSkpOworCisgICAgYyA9ICpjdXIrKzsKKyAgICB3aGlsZSAoKGMgIT0gMCkgJiYgKGMgIT0gJzonKSAmJiAobGVuIDwgbWF4KSkgeyAvKiB0ZXN0ZWQgYmlnbmFtZS54bWwgKi8KKwlidWZbbGVuKytdID0gYzsKKwljID0gKmN1cisrOworICAgIH0KKyAgICBpZiAobGVuID49IG1heCkgeworCS8qCisJICogT2theSBzb21lb25lIG1hbmFnZWQgdG8gbWFrZSBhIGh1Z2UgbmFtZSwgc28gaGUncyByZWFkeSB0byBwYXkKKwkgKiBmb3IgdGhlIHByb2Nlc3Npbmcgc3BlZWQuCisJICovCisJbWF4ID0gbGVuICogMjsKKworCWJ1ZmZlciA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhtYXggKiBzaXplb2YoeG1sQ2hhcikpOworCWlmIChidWZmZXIgPT0gTlVMTCkgeworCSAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbWVtY3B5KGJ1ZmZlciwgYnVmLCBsZW4pOworCXdoaWxlICgoYyAhPSAwKSAmJiAoYyAhPSAnOicpKSB7IC8qIHRlc3RlZCBiaWduYW1lLnhtbCAqLworCSAgICBpZiAobGVuICsgMTAgPiBtYXgpIHsKKwkgICAgICAgIHhtbENoYXIgKnRtcDsKKworCQltYXggKj0gMjsKKwkJdG1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhidWZmZXIsCisJCQkJCQltYXggKiBzaXplb2YoeG1sQ2hhcikpOworCQlpZiAodG1wID09IE5VTEwpIHsKKwkJICAgIHhtbEZyZWUoYnVmZmVyKTsKKwkJICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJICAgIHJldHVybihOVUxMKTsKKwkJfQorCQlidWZmZXIgPSB0bXA7CisJICAgIH0KKwkgICAgYnVmZmVyW2xlbisrXSA9IGM7CisJICAgIGMgPSAqY3VyKys7CisJfQorCWJ1ZmZlcltsZW5dID0gMDsKKyAgICB9CisKKyAgICBpZiAoKGMgPT0gJzonKSAmJiAoKmN1ciA9PSAwKSkgeworICAgICAgICBpZiAoYnVmZmVyICE9IE5VTEwpCisJICAgIHhtbEZyZWUoYnVmZmVyKTsKKwkqcHJlZml4ID0gTlVMTDsKKwlyZXR1cm4oeG1sU3RyZHVwKG5hbWUpKTsKKyAgICB9CisKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisJcmV0ID0geG1sU3RybmR1cChidWYsIGxlbik7CisgICAgZWxzZSB7CisJcmV0ID0gYnVmZmVyOworCWJ1ZmZlciA9IE5VTEw7CisJbWF4ID0gWE1MX01BWF9OQU1FTEVOOworICAgIH0KKworCisgICAgaWYgKGMgPT0gJzonKSB7CisJYyA9ICpjdXI7CisgICAgICAgICpwcmVmaXggPSByZXQ7CisJaWYgKGMgPT0gMCkgeworCSAgICByZXR1cm4oeG1sU3RybmR1cChCQURfQ0FTVCAiIiwgMCkpOworCX0KKwlsZW4gPSAwOworCisJLyoKKwkgKiBDaGVjayB0aGF0IHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgcHJvcGVyIHRvIHN0YXJ0CisJICogYSBuZXcgbmFtZQorCSAqLworCWlmICghKCgoYyA+PSAweDYxKSAmJiAoYyA8PSAweDdBKSkgfHwKKwkgICAgICAoKGMgPj0gMHg0MSkgJiYgKGMgPD0gMHg1QSkpIHx8CisJICAgICAgKGMgPT0gJ18nKSB8fCAoYyA9PSAnOicpKSkgeworCSAgICBpbnQgbDsKKwkgICAgaW50IGZpcnN0ID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisKKwkgICAgaWYgKCFJU19MRVRURVIoZmlyc3QpICYmIChmaXJzdCAhPSAnXycpKSB7CisJCXhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9OU19FUlJfUU5BTUUsCisJCQkgICAgIk5hbWUgJXMgaXMgbm90IFhNTCBOYW1lc3BhY2UgY29tcGxpYW50XG4iLAorCQkJCSAgbmFtZSk7CisJICAgIH0KKwl9CisJY3VyKys7CisKKwl3aGlsZSAoKGMgIT0gMCkgJiYgKGxlbiA8IG1heCkpIHsgLyogdGVzdGVkIGJpZ25hbWUyLnhtbCAqLworCSAgICBidWZbbGVuKytdID0gYzsKKwkgICAgYyA9ICpjdXIrKzsKKwl9CisJaWYgKGxlbiA+PSBtYXgpIHsKKwkgICAgLyoKKwkgICAgICogT2theSBzb21lb25lIG1hbmFnZWQgdG8gbWFrZSBhIGh1Z2UgbmFtZSwgc28gaGUncyByZWFkeSB0byBwYXkKKwkgICAgICogZm9yIHRoZSBwcm9jZXNzaW5nIHNwZWVkLgorCSAgICAgKi8KKwkgICAgbWF4ID0gbGVuICogMjsKKworCSAgICBidWZmZXIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobWF4ICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisJICAgICAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBtZW1jcHkoYnVmZmVyLCBidWYsIGxlbik7CisJICAgIHdoaWxlIChjICE9IDApIHsgLyogdGVzdGVkIGJpZ25hbWUyLnhtbCAqLworCQlpZiAobGVuICsgMTAgPiBtYXgpIHsKKwkJICAgIHhtbENoYXIgKnRtcDsKKworCQkgICAgbWF4ICo9IDI7CisJCSAgICB0bXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1ZmZlciwKKwkJCQkJCSAgICBtYXggKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCQl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCQl4bWxGcmVlKGJ1ZmZlcik7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICBidWZmZXIgPSB0bXA7CisJCX0KKwkJYnVmZmVyW2xlbisrXSA9IGM7CisJCWMgPSAqY3VyKys7CisJICAgIH0KKwkgICAgYnVmZmVyW2xlbl0gPSAwOworCX0KKworCWlmIChidWZmZXIgPT0gTlVMTCkKKwkgICAgcmV0ID0geG1sU3RybmR1cChidWYsIGxlbik7CisJZWxzZSB7CisJICAgIHJldCA9IGJ1ZmZlcjsKKwl9CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlUaGUgcGFyc2VyIGl0c2VsZgkJCQkqCisgKglSZWxhdGVzIHRvIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCVJvdXRpbmVzIHRvIHBhcnNlIE5hbWUsIE5DTmFtZSBhbmQgTm1Ub2tlbgkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZmRlZiBERUJVRworc3RhdGljIHVuc2lnbmVkIGxvbmcgbmJQYXJzZU5hbWUgPSAwOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbmJQYXJzZU5tVG9rZW4gPSAwOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbmJQYXJzZU5DTmFtZSA9IDA7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBuYlBhcnNlTkNOYW1lQ29tcGxleCA9IDA7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBuYlBhcnNlTmFtZUNvbXBsZXggPSAwOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbmJQYXJzZVN0cmluZ05hbWUgPSAwOworI2VuZGlmCisKKy8qCisgKiBUaGUgdHdvIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHJlbGF0ZWQgdG8gdGhlIGNoYW5nZSBvZiBhY2NlcHRlZAorICogY2hhcmFjdGVycyBmb3IgTmFtZSBhbmQgTm1Ub2tlbiBpbiB0aGUgUmV2aXNpb24gNSBvZiBYTUwtMS4wCisgKiBUaGV5IGNvcnJlc3BvbmQgdG8gdGhlIG1vZGlmaWVkIHByb2R1Y3Rpb24gWzRdIGFuZCB0aGUgbmV3IHByb2R1Y3Rpb24gWzRhXQorICogY2hhbmdlcyBpbiB0aGF0IHJldmlzaW9uLiBBbHNvIG5vdGUgdGhhdCB0aGUgbWFjcm9zIHVzZWQgZm9yIHRoZQorICogcHJvZHVjdGlvbnMgTGV0dGVyLCBEaWdpdCwgQ29tYmluaW5nQ2hhciBhbmQgRXh0ZW5kZXIgYXJlIG5vdCBuZWVkZWQKKyAqIGFueW1vcmUuCisgKiBXZSBzdGlsbCBrZWVwIGNvbXBhdGliaWxpdHkgdG8gcHJlLXJldmlzaW9uNSBwYXJzaW5nIHNlbWFudGljIGlmIHRoZQorICogbmV3IFhNTF9QQVJTRV9PTEQxMCBvcHRpb24gaXMgZ2l2ZW4gdG8gdGhlIHBhcnNlci4KKyAqLworc3RhdGljIGludAoreG1sSXNOYW1lU3RhcnRDaGFyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50IGMpIHsKKyAgICBpZiAoKGN0eHQtPm9wdGlvbnMgJiBYTUxfUEFSU0VfT0xEMTApID09IDApIHsKKyAgICAgICAgLyoKKwkgKiBVc2UgdGhlIG5ldyBjaGVja3Mgb2YgcHJvZHVjdGlvbiBbNF0gWzRhXSBhbWQgWzVdIG9mIHRoZQorCSAqIFVwZGF0ZSA1IG9mIFhNTC0xLjAKKwkgKi8KKwlpZiAoKGMgIT0gJyAnKSAmJiAoYyAhPSAnPicpICYmIChjICE9ICcvJykgJiYgLyogYWNjZWxlcmF0b3JzICovCisJICAgICgoKGMgPj0gJ2EnKSAmJiAoYyA8PSAneicpKSB8fAorCSAgICAgKChjID49ICdBJykgJiYgKGMgPD0gJ1onKSkgfHwKKwkgICAgIChjID09ICdfJykgfHwgKGMgPT0gJzonKSB8fAorCSAgICAgKChjID49IDB4QzApICYmIChjIDw9IDB4RDYpKSB8fAorCSAgICAgKChjID49IDB4RDgpICYmIChjIDw9IDB4RjYpKSB8fAorCSAgICAgKChjID49IDB4RjgpICYmIChjIDw9IDB4MkZGKSkgfHwKKwkgICAgICgoYyA+PSAweDM3MCkgJiYgKGMgPD0gMHgzN0QpKSB8fAorCSAgICAgKChjID49IDB4MzdGKSAmJiAoYyA8PSAweDFGRkYpKSB8fAorCSAgICAgKChjID49IDB4MjAwQykgJiYgKGMgPD0gMHgyMDBEKSkgfHwKKwkgICAgICgoYyA+PSAweDIwNzApICYmIChjIDw9IDB4MjE4RikpIHx8CisJICAgICAoKGMgPj0gMHgyQzAwKSAmJiAoYyA8PSAweDJGRUYpKSB8fAorCSAgICAgKChjID49IDB4MzAwMSkgJiYgKGMgPD0gMHhEN0ZGKSkgfHwKKwkgICAgICgoYyA+PSAweEY5MDApICYmIChjIDw9IDB4RkRDRikpIHx8CisJICAgICAoKGMgPj0gMHhGREYwKSAmJiAoYyA8PSAweEZGRkQpKSB8fAorCSAgICAgKChjID49IDB4MTAwMDApICYmIChjIDw9IDB4RUZGRkYpKSkpCisJICAgIHJldHVybigxKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoSVNfTEVUVEVSKGMpIHx8IChjID09ICdfJykgfHwgKGMgPT0gJzonKSkKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbElzTmFtZUNoYXIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgYykgeworICAgIGlmICgoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9PTEQxMCkgPT0gMCkgeworICAgICAgICAvKgorCSAqIFVzZSB0aGUgbmV3IGNoZWNrcyBvZiBwcm9kdWN0aW9uIFs0XSBbNGFdIGFtZCBbNV0gb2YgdGhlCisJICogVXBkYXRlIDUgb2YgWE1MLTEuMAorCSAqLworCWlmICgoYyAhPSAnICcpICYmIChjICE9ICc+JykgJiYgKGMgIT0gJy8nKSAmJiAvKiBhY2NlbGVyYXRvcnMgKi8KKwkgICAgKCgoYyA+PSAnYScpICYmIChjIDw9ICd6JykpIHx8CisJICAgICAoKGMgPj0gJ0EnKSAmJiAoYyA8PSAnWicpKSB8fAorCSAgICAgKChjID49ICcwJykgJiYgKGMgPD0gJzknKSkgfHwgLyogIXN0YXJ0ICovCisJICAgICAoYyA9PSAnXycpIHx8IChjID09ICc6JykgfHwKKwkgICAgIChjID09ICctJykgfHwgKGMgPT0gJy4nKSB8fCAoYyA9PSAweEI3KSB8fCAvKiAhc3RhcnQgKi8KKwkgICAgICgoYyA+PSAweEMwKSAmJiAoYyA8PSAweEQ2KSkgfHwKKwkgICAgICgoYyA+PSAweEQ4KSAmJiAoYyA8PSAweEY2KSkgfHwKKwkgICAgICgoYyA+PSAweEY4KSAmJiAoYyA8PSAweDJGRikpIHx8CisJICAgICAoKGMgPj0gMHgzMDApICYmIChjIDw9IDB4MzZGKSkgfHwgLyogIXN0YXJ0ICovCisJICAgICAoKGMgPj0gMHgzNzApICYmIChjIDw9IDB4MzdEKSkgfHwKKwkgICAgICgoYyA+PSAweDM3RikgJiYgKGMgPD0gMHgxRkZGKSkgfHwKKwkgICAgICgoYyA+PSAweDIwMEMpICYmIChjIDw9IDB4MjAwRCkpIHx8CisJICAgICAoKGMgPj0gMHgyMDNGKSAmJiAoYyA8PSAweDIwNDApKSB8fCAvKiAhc3RhcnQgKi8KKwkgICAgICgoYyA+PSAweDIwNzApICYmIChjIDw9IDB4MjE4RikpIHx8CisJICAgICAoKGMgPj0gMHgyQzAwKSAmJiAoYyA8PSAweDJGRUYpKSB8fAorCSAgICAgKChjID49IDB4MzAwMSkgJiYgKGMgPD0gMHhEN0ZGKSkgfHwKKwkgICAgICgoYyA+PSAweEY5MDApICYmIChjIDw9IDB4RkRDRikpIHx8CisJICAgICAoKGMgPj0gMHhGREYwKSAmJiAoYyA8PSAweEZGRkQpKSB8fAorCSAgICAgKChjID49IDB4MTAwMDApICYmIChjIDw9IDB4RUZGRkYpKSkpCisJICAgICByZXR1cm4oMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKChJU19MRVRURVIoYykpIHx8IChJU19ESUdJVChjKSkgfHwKKyAgICAgICAgICAgIChjID09ICcuJykgfHwgKGMgPT0gJy0nKSB8fAorCSAgICAoYyA9PSAnXycpIHx8IChjID09ICc6JykgfHwgCisJICAgIChJU19DT01CSU5JTkcoYykpIHx8CisJICAgIChJU19FWFRFTkRFUihjKSkpCisJICAgIHJldHVybigxKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgeG1sQ2hhciAqIHhtbFBhcnNlQXR0VmFsdWVJbnRlcm5hbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmxlbiwgaW50ICphbGxvYywgaW50IG5vcm1hbGl6ZSk7CisKK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbFBhcnNlTmFtZUNvbXBsZXgoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaW50IGxlbiA9IDAsIGw7CisgICAgaW50IGM7CisgICAgaW50IGNvdW50ID0gMDsKKworI2lmZGVmIERFQlVHCisgICAgbmJQYXJzZU5hbWVDb21wbGV4Kys7CisjZW5kaWYKKworICAgIC8qCisgICAgICogSGFuZGxlciBmb3IgbW9yZSBjb21wbGV4IGNhc2VzCisgICAgICovCisgICAgR1JPVzsKKyAgICBjID0gQ1VSX0NIQVIobCk7CisgICAgaWYgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX09MRDEwKSA9PSAwKSB7CisgICAgICAgIC8qCisJICogVXNlIHRoZSBuZXcgY2hlY2tzIG9mIHByb2R1Y3Rpb24gWzRdIFs0YV0gYW1kIFs1XSBvZiB0aGUKKwkgKiBVcGRhdGUgNSBvZiBYTUwtMS4wCisJICovCisJaWYgKChjID09ICcgJykgfHwgKGMgPT0gJz4nKSB8fCAoYyA9PSAnLycpIHx8IC8qIGFjY2VsZXJhdG9ycyAqLworCSAgICAoISgoKGMgPj0gJ2EnKSAmJiAoYyA8PSAneicpKSB8fAorCSAgICAgICAoKGMgPj0gJ0EnKSAmJiAoYyA8PSAnWicpKSB8fAorCSAgICAgICAoYyA9PSAnXycpIHx8IChjID09ICc6JykgfHwKKwkgICAgICAgKChjID49IDB4QzApICYmIChjIDw9IDB4RDYpKSB8fAorCSAgICAgICAoKGMgPj0gMHhEOCkgJiYgKGMgPD0gMHhGNikpIHx8CisJICAgICAgICgoYyA+PSAweEY4KSAmJiAoYyA8PSAweDJGRikpIHx8CisJICAgICAgICgoYyA+PSAweDM3MCkgJiYgKGMgPD0gMHgzN0QpKSB8fAorCSAgICAgICAoKGMgPj0gMHgzN0YpICYmIChjIDw9IDB4MUZGRikpIHx8CisJICAgICAgICgoYyA+PSAweDIwMEMpICYmIChjIDw9IDB4MjAwRCkpIHx8CisJICAgICAgICgoYyA+PSAweDIwNzApICYmIChjIDw9IDB4MjE4RikpIHx8CisJICAgICAgICgoYyA+PSAweDJDMDApICYmIChjIDw9IDB4MkZFRikpIHx8CisJICAgICAgICgoYyA+PSAweDMwMDEpICYmIChjIDw9IDB4RDdGRikpIHx8CisJICAgICAgICgoYyA+PSAweEY5MDApICYmIChjIDw9IDB4RkRDRikpIHx8CisJICAgICAgICgoYyA+PSAweEZERjApICYmIChjIDw9IDB4RkZGRCkpIHx8CisJICAgICAgICgoYyA+PSAweDEwMDAwKSAmJiAoYyA8PSAweEVGRkZGKSkpKSkgeworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCWxlbiArPSBsOworCU5FWFRMKGwpOworCWMgPSBDVVJfQ0hBUihsKTsKKwl3aGlsZSAoKGMgIT0gJyAnKSAmJiAoYyAhPSAnPicpICYmIChjICE9ICcvJykgJiYgLyogYWNjZWxlcmF0b3JzICovCisJICAgICAgICgoKGMgPj0gJ2EnKSAmJiAoYyA8PSAneicpKSB8fAorCSAgICAgICAgKChjID49ICdBJykgJiYgKGMgPD0gJ1onKSkgfHwKKwkgICAgICAgICgoYyA+PSAnMCcpICYmIChjIDw9ICc5JykpIHx8IC8qICFzdGFydCAqLworCSAgICAgICAgKGMgPT0gJ18nKSB8fCAoYyA9PSAnOicpIHx8CisJICAgICAgICAoYyA9PSAnLScpIHx8IChjID09ICcuJykgfHwgKGMgPT0gMHhCNykgfHwgLyogIXN0YXJ0ICovCisJICAgICAgICAoKGMgPj0gMHhDMCkgJiYgKGMgPD0gMHhENikpIHx8CisJICAgICAgICAoKGMgPj0gMHhEOCkgJiYgKGMgPD0gMHhGNikpIHx8CisJICAgICAgICAoKGMgPj0gMHhGOCkgJiYgKGMgPD0gMHgyRkYpKSB8fAorCSAgICAgICAgKChjID49IDB4MzAwKSAmJiAoYyA8PSAweDM2RikpIHx8IC8qICFzdGFydCAqLworCSAgICAgICAgKChjID49IDB4MzcwKSAmJiAoYyA8PSAweDM3RCkpIHx8CisJICAgICAgICAoKGMgPj0gMHgzN0YpICYmIChjIDw9IDB4MUZGRikpIHx8CisJICAgICAgICAoKGMgPj0gMHgyMDBDKSAmJiAoYyA8PSAweDIwMEQpKSB8fAorCSAgICAgICAgKChjID49IDB4MjAzRikgJiYgKGMgPD0gMHgyMDQwKSkgfHwgLyogIXN0YXJ0ICovCisJICAgICAgICAoKGMgPj0gMHgyMDcwKSAmJiAoYyA8PSAweDIxOEYpKSB8fAorCSAgICAgICAgKChjID49IDB4MkMwMCkgJiYgKGMgPD0gMHgyRkVGKSkgfHwKKwkgICAgICAgICgoYyA+PSAweDMwMDEpICYmIChjIDw9IDB4RDdGRikpIHx8CisJICAgICAgICAoKGMgPj0gMHhGOTAwKSAmJiAoYyA8PSAweEZEQ0YpKSB8fAorCSAgICAgICAgKChjID49IDB4RkRGMCkgJiYgKGMgPD0gMHhGRkZEKSkgfHwKKwkgICAgICAgICgoYyA+PSAweDEwMDAwKSAmJiAoYyA8PSAweEVGRkZGKSkKKwkJKSkgeworCSAgICBpZiAoY291bnQrKyA+IDEwMCkgeworCQljb3VudCA9IDA7CisJCUdST1c7CisJICAgIH0KKwkgICAgbGVuICs9IGw7CisJICAgIE5FWFRMKGwpOworCSAgICBjID0gQ1VSX0NIQVIobCk7CisJfQorICAgIH0gZWxzZSB7CisJaWYgKChjID09ICcgJykgfHwgKGMgPT0gJz4nKSB8fCAoYyA9PSAnLycpIHx8IC8qIGFjY2VsZXJhdG9ycyAqLworCSAgICAoIUlTX0xFVFRFUihjKSAmJiAoYyAhPSAnXycpICYmCisJICAgICAoYyAhPSAnOicpKSkgeworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCWxlbiArPSBsOworCU5FWFRMKGwpOworCWMgPSBDVVJfQ0hBUihsKTsKKworCXdoaWxlICgoYyAhPSAnICcpICYmIChjICE9ICc+JykgJiYgKGMgIT0gJy8nKSAmJiAvKiB0ZXN0IGJpZ25hbWUueG1sICovCisJICAgICAgICgoSVNfTEVUVEVSKGMpKSB8fCAoSVNfRElHSVQoYykpIHx8CisJCShjID09ICcuJykgfHwgKGMgPT0gJy0nKSB8fAorCQkoYyA9PSAnXycpIHx8IChjID09ICc6JykgfHwgCisJCShJU19DT01CSU5JTkcoYykpIHx8CisJCShJU19FWFRFTkRFUihjKSkpKSB7CisJICAgIGlmIChjb3VudCsrID4gMTAwKSB7CisJCWNvdW50ID0gMDsKKwkJR1JPVzsKKwkgICAgfQorCSAgICBsZW4gKz0gbDsKKwkgICAgTkVYVEwobCk7CisJICAgIGMgPSBDVVJfQ0hBUihsKTsKKwl9CisgICAgfQorICAgIGlmICgoKmN0eHQtPmlucHV0LT5jdXIgPT0gJ1xuJykgJiYgKGN0eHQtPmlucHV0LT5jdXJbLTFdID09ICdccicpKQorICAgICAgICByZXR1cm4oeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBjdHh0LT5pbnB1dC0+Y3VyIC0gKGxlbiArIDEpLCBsZW4pKTsKKyAgICByZXR1cm4oeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBjdHh0LT5pbnB1dC0+Y3VyIC0gbGVuLCBsZW4pKTsKK30KKworLyoqCisgKiB4bWxQYXJzZU5hbWU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIFhNTCBuYW1lLgorICoKKyAqIFs0XSBOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAnLicgfCAnLScgfCAnXycgfCAnOicgfAorICogICAgICAgICAgICAgICAgICBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXIKKyAqCisgKiBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSoKKyAqCisgKiBbNl0gTmFtZXMgOjo9IE5hbWUgKCN4MjAgTmFtZSkqCisgKgorICogUmV0dXJucyB0aGUgTmFtZSBwYXJzZWQgb3IgTlVMTAorICovCisKK2NvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VOYW1lKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKmluOworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKyAgICBpbnQgY291bnQgPSAwOworCisgICAgR1JPVzsKKworI2lmZGVmIERFQlVHCisgICAgbmJQYXJzZU5hbWUrKzsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBBY2NlbGVyYXRvciBmb3Igc2ltcGxlIEFTQ0lJIG5hbWVzCisgICAgICovCisgICAgaW4gPSBjdHh0LT5pbnB1dC0+Y3VyOworICAgIGlmICgoKCppbiA+PSAweDYxKSAmJiAoKmluIDw9IDB4N0EpKSB8fAorCSgoKmluID49IDB4NDEpICYmICgqaW4gPD0gMHg1QSkpIHx8CisJKCppbiA9PSAnXycpIHx8ICgqaW4gPT0gJzonKSkgeworCWluKys7CisJd2hpbGUgKCgoKmluID49IDB4NjEpICYmICgqaW4gPD0gMHg3QSkpIHx8CisJICAgICAgICgoKmluID49IDB4NDEpICYmICgqaW4gPD0gMHg1QSkpIHx8CisJICAgICAgICgoKmluID49IDB4MzApICYmICgqaW4gPD0gMHgzOSkpIHx8CisJICAgICAgICgqaW4gPT0gJ18nKSB8fCAoKmluID09ICctJykgfHwKKwkgICAgICAgKCppbiA9PSAnOicpIHx8ICgqaW4gPT0gJy4nKSkKKwkgICAgaW4rKzsKKwlpZiAoKCppbiA+IDApICYmICgqaW4gPCAweDgwKSkgeworCSAgICBjb3VudCA9IGluIC0gY3R4dC0+aW5wdXQtPmN1cjsKKwkgICAgcmV0ID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBjdHh0LT5pbnB1dC0+Y3VyLCBjb3VudCk7CisJICAgIGN0eHQtPmlucHV0LT5jdXIgPSBpbjsKKwkgICAgY3R4dC0+bmJDaGFycyArPSBjb3VudDsKKwkgICAgY3R4dC0+aW5wdXQtPmNvbCArPSBjb3VudDsKKwkgICAgaWYgKHJldCA9PSBOVUxMKQorCSAgICAgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCSAgICByZXR1cm4ocmV0KTsKKwl9CisgICAgfQorICAgIC8qIGFjY2VsZXJhdG9yIGZvciBzcGVjaWFsIGNhc2VzICovCisgICAgcmV0dXJuKHhtbFBhcnNlTmFtZUNvbXBsZXgoY3R4dCkpOworfQorCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxQYXJzZU5DTmFtZUNvbXBsZXgoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaW50IGxlbiA9IDAsIGw7CisgICAgaW50IGM7CisgICAgaW50IGNvdW50ID0gMDsKKworI2lmZGVmIERFQlVHCisgICAgbmJQYXJzZU5DTmFtZUNvbXBsZXgrKzsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBIYW5kbGVyIGZvciBtb3JlIGNvbXBsZXggY2FzZXMKKyAgICAgKi8KKyAgICBHUk9XOworICAgIGMgPSBDVVJfQ0hBUihsKTsKKyAgICBpZiAoKGMgPT0gJyAnKSB8fCAoYyA9PSAnPicpIHx8IChjID09ICcvJykgfHwgLyogYWNjZWxlcmF0b3JzICovCisJKCF4bWxJc05hbWVTdGFydENoYXIoY3R4dCwgYykgfHwgKGMgPT0gJzonKSkpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgd2hpbGUgKChjICE9ICcgJykgJiYgKGMgIT0gJz4nKSAmJiAoYyAhPSAnLycpICYmIC8qIHRlc3QgYmlnbmFtZS54bWwgKi8KKwkgICAoeG1sSXNOYW1lQ2hhcihjdHh0LCBjKSAmJiAoYyAhPSAnOicpKSkgeworCWlmIChjb3VudCsrID4gMTAwKSB7CisJICAgIGNvdW50ID0gMDsKKwkgICAgR1JPVzsKKwl9CisJbGVuICs9IGw7CisJTkVYVEwobCk7CisJYyA9IENVUl9DSEFSKGwpOworICAgIH0KKyAgICByZXR1cm4oeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBjdHh0LT5pbnB1dC0+Y3VyIC0gbGVuLCBsZW4pKTsKK30KKworLyoqCisgKiB4bWxQYXJzZU5DTmFtZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbGVuOiAgbGVuZ2h0IG9mIHRoZSBzdHJpbmcgcGFyc2VkCisgKgorICogcGFyc2UgYW4gWE1MIG5hbWUuCisgKgorICogWzROU10gTkNOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAnLicgfCAnLScgfCAnXycgfAorICogICAgICAgICAgICAgICAgICAgICAgQ29tYmluaW5nQ2hhciB8IEV4dGVuZGVyCisgKgorICogWzVOU10gTkNOYW1lIDo6PSAoTGV0dGVyIHwgJ18nKSAoTkNOYW1lQ2hhcikqCisgKgorICogUmV0dXJucyB0aGUgTmFtZSBwYXJzZWQgb3IgTlVMTAorICovCisKK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbFBhcnNlTkNOYW1lKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKmluOworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKyAgICBpbnQgY291bnQgPSAwOworCisjaWZkZWYgREVCVUcKKyAgICBuYlBhcnNlTkNOYW1lKys7CisjZW5kaWYKKworICAgIC8qCisgICAgICogQWNjZWxlcmF0b3IgZm9yIHNpbXBsZSBBU0NJSSBuYW1lcworICAgICAqLworICAgIGluID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICBpZiAoKCgqaW4gPj0gMHg2MSkgJiYgKCppbiA8PSAweDdBKSkgfHwKKwkoKCppbiA+PSAweDQxKSAmJiAoKmluIDw9IDB4NUEpKSB8fAorCSgqaW4gPT0gJ18nKSkgeworCWluKys7CisJd2hpbGUgKCgoKmluID49IDB4NjEpICYmICgqaW4gPD0gMHg3QSkpIHx8CisJICAgICAgICgoKmluID49IDB4NDEpICYmICgqaW4gPD0gMHg1QSkpIHx8CisJICAgICAgICgoKmluID49IDB4MzApICYmICgqaW4gPD0gMHgzOSkpIHx8CisJICAgICAgICgqaW4gPT0gJ18nKSB8fCAoKmluID09ICctJykgfHwKKwkgICAgICAgKCppbiA9PSAnLicpKQorCSAgICBpbisrOworCWlmICgoKmluID4gMCkgJiYgKCppbiA8IDB4ODApKSB7CisJICAgIGNvdW50ID0gaW4gLSBjdHh0LT5pbnB1dC0+Y3VyOworCSAgICByZXQgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIGN0eHQtPmlucHV0LT5jdXIsIGNvdW50KTsKKwkgICAgY3R4dC0+aW5wdXQtPmN1ciA9IGluOworCSAgICBjdHh0LT5uYkNoYXJzICs9IGNvdW50OworCSAgICBjdHh0LT5pbnB1dC0+Y29sICs9IGNvdW50OworCSAgICBpZiAocmV0ID09IE5VTEwpIHsKKwkgICAgICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkgICAgfQorCSAgICByZXR1cm4ocmV0KTsKKwl9CisgICAgfQorICAgIHJldHVybih4bWxQYXJzZU5DTmFtZUNvbXBsZXgoY3R4dCkpOworfQorCisvKioKKyAqIHhtbFBhcnNlTmFtZUFuZENvbXBhcmU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIFhNTCBuYW1lIGFuZCBjb21wYXJlcyBmb3IgbWF0Y2gKKyAqIChzcGVjaWFsaXplZCBmb3IgZW5kdGFnIHBhcnNpbmcpCisgKgorICogUmV0dXJucyBOVUxMIGZvciBhbiBpbGxlZ2FsIG5hbWUsICh4bWxDaGFyKikgMSBmb3Igc3VjY2VzcworICogYW5kIHRoZSBuYW1lIGZvciBtaXNtYXRjaAorICovCisKK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbFBhcnNlTmFtZUFuZENvbXBhcmUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxDaGFyIGNvbnN0ICpvdGhlcikgeworICAgIHJlZ2lzdGVyIGNvbnN0IHhtbENoYXIgKmNtcCA9IG90aGVyOworICAgIHJlZ2lzdGVyIGNvbnN0IHhtbENoYXIgKmluOworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKworICAgIEdST1c7CisKKyAgICBpbiA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgd2hpbGUgKCppbiAhPSAwICYmICppbiA9PSAqY21wKSB7CisJKytpbjsKKwkrK2NtcDsKKwljdHh0LT5pbnB1dC0+Y29sKys7CisgICAgfQorICAgIGlmICgqY21wID09IDAgJiYgKCppbiA9PSAnPicgfHwgSVNfQkxBTktfQ0ggKCppbikpKSB7CisJLyogc3VjY2VzcyAqLworCWN0eHQtPmlucHV0LT5jdXIgPSBpbjsKKwlyZXR1cm4gKGNvbnN0IHhtbENoYXIqKSAxOworICAgIH0KKyAgICAvKiBmYWlsdXJlIChvciBlbmQgb2YgaW5wdXQgYnVmZmVyKSwgY2hlY2sgd2l0aCBmdWxsIGZ1bmN0aW9uICovCisgICAgcmV0ID0geG1sUGFyc2VOYW1lIChjdHh0KTsKKyAgICAvKiBzdHJpbmdzIGNvbWluZyBmcm9tIHRoZSBkaWN0aW9ubmFyeSBkaXJlY3QgY29tcGFyZSBwb3NzaWJsZSAqLworICAgIGlmIChyZXQgPT0gb3RoZXIpIHsKKwlyZXR1cm4gKGNvbnN0IHhtbENoYXIqKSAxOworICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIHhtbFBhcnNlU3RyaW5nTmFtZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAc3RyOiAgYSBwb2ludGVyIHRvIHRoZSBzdHJpbmcgcG9pbnRlciAoSU4vT1VUKQorICoKKyAqIHBhcnNlIGFuIFhNTCBuYW1lLgorICoKKyAqIFs0XSBOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAnLicgfCAnLScgfCAnXycgfCAnOicgfAorICogICAgICAgICAgICAgICAgICBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXIKKyAqCisgKiBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSoKKyAqCisgKiBbNl0gTmFtZXMgOjo9IE5hbWUgKCN4MjAgTmFtZSkqCisgKgorICogUmV0dXJucyB0aGUgTmFtZSBwYXJzZWQgb3IgTlVMTC4gVGhlIEBzdHIgcG9pbnRlciAKKyAqIGlzIHVwZGF0ZWQgdG8gdGhlIGN1cnJlbnQgbG9jYXRpb24gaW4gdGhlIHN0cmluZy4KKyAqLworCitzdGF0aWMgeG1sQ2hhciAqCit4bWxQYXJzZVN0cmluZ05hbWUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyKiogc3RyKSB7CisgICAgeG1sQ2hhciBidWZbWE1MX01BWF9OQU1FTEVOICsgNV07CisgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gKnN0cjsKKyAgICBpbnQgbGVuID0gMCwgbDsKKyAgICBpbnQgYzsKKworI2lmZGVmIERFQlVHCisgICAgbmJQYXJzZVN0cmluZ05hbWUrKzsKKyNlbmRpZgorCisgICAgYyA9IENVUl9TQ0hBUihjdXIsIGwpOworICAgIGlmICgheG1sSXNOYW1lU3RhcnRDaGFyKGN0eHQsIGMpKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIENPUFlfQlVGKGwsYnVmLGxlbixjKTsKKyAgICBjdXIgKz0gbDsKKyAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgd2hpbGUgKHhtbElzTmFtZUNoYXIoY3R4dCwgYykpIHsKKwlDT1BZX0JVRihsLGJ1ZixsZW4sYyk7CisJY3VyICs9IGw7CisJYyA9IENVUl9TQ0hBUihjdXIsIGwpOworCWlmIChsZW4gPj0gWE1MX01BWF9OQU1FTEVOKSB7IC8qIHRlc3QgYmlnZW50bmFtZS54bWwgKi8KKwkgICAgLyoKKwkgICAgICogT2theSBzb21lb25lIG1hbmFnZWQgdG8gbWFrZSBhIGh1Z2UgbmFtZSwgc28gaGUncyByZWFkeSB0byBwYXkKKwkgICAgICogZm9yIHRoZSBwcm9jZXNzaW5nIHNwZWVkLgorCSAgICAgKi8KKwkgICAgeG1sQ2hhciAqYnVmZmVyOworCSAgICBpbnQgbWF4ID0gbGVuICogMjsKKworCSAgICBidWZmZXIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobWF4ICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisJICAgICAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBtZW1jcHkoYnVmZmVyLCBidWYsIGxlbik7CisJICAgIHdoaWxlICh4bWxJc05hbWVDaGFyKGN0eHQsIGMpKSB7CisJCWlmIChsZW4gKyAxMCA+IG1heCkgeworCQkgICAgeG1sQ2hhciAqdG1wOworCQkgICAgbWF4ICo9IDI7CisJCSAgICB0bXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1ZmZlciwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCQl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCQl4bWxGcmVlKGJ1ZmZlcik7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICBidWZmZXIgPSB0bXA7CisJCX0KKwkJQ09QWV9CVUYobCxidWZmZXIsbGVuLGMpOworCQljdXIgKz0gbDsKKwkJYyA9IENVUl9TQ0hBUihjdXIsIGwpOworCSAgICB9CisJICAgIGJ1ZmZlcltsZW5dID0gMDsKKwkgICAgKnN0ciA9IGN1cjsKKwkgICAgcmV0dXJuKGJ1ZmZlcik7CisJfQorICAgIH0KKyAgICAqc3RyID0gY3VyOworICAgIHJldHVybih4bWxTdHJuZHVwKGJ1ZiwgbGVuKSk7Cit9CisKKy8qKgorICogeG1sUGFyc2VObXRva2VuOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbiBYTUwgTm10b2tlbi4KKyAqCisgKiBbN10gTm10b2tlbiA6Oj0gKE5hbWVDaGFyKSsKKyAqCisgKiBbOF0gTm10b2tlbnMgOjo9IE5tdG9rZW4gKCN4MjAgTm10b2tlbikqCisgKgorICogUmV0dXJucyB0aGUgTm10b2tlbiBwYXJzZWQgb3IgTlVMTAorICovCisKK3htbENoYXIgKgoreG1sUGFyc2VObXRva2VuKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgYnVmW1hNTF9NQVhfTkFNRUxFTiArIDVdOworICAgIGludCBsZW4gPSAwLCBsOworICAgIGludCBjOworICAgIGludCBjb3VudCA9IDA7CisKKyNpZmRlZiBERUJVRworICAgIG5iUGFyc2VObVRva2VuKys7CisjZW5kaWYKKworICAgIEdST1c7CisgICAgYyA9IENVUl9DSEFSKGwpOworCisgICAgd2hpbGUgKHhtbElzTmFtZUNoYXIoY3R4dCwgYykpIHsKKwlpZiAoY291bnQrKyA+IDEwMCkgeworCSAgICBjb3VudCA9IDA7CisJICAgIEdST1c7CisJfQorCUNPUFlfQlVGKGwsYnVmLGxlbixjKTsKKwlORVhUTChsKTsKKwljID0gQ1VSX0NIQVIobCk7CisJaWYgKGxlbiA+PSBYTUxfTUFYX05BTUVMRU4pIHsKKwkgICAgLyoKKwkgICAgICogT2theSBzb21lb25lIG1hbmFnZWQgdG8gbWFrZSBhIGh1Z2UgdG9rZW4sIHNvIGhlJ3MgcmVhZHkgdG8gcGF5CisJICAgICAqIGZvciB0aGUgcHJvY2Vzc2luZyBzcGVlZC4KKwkgICAgICovCisJICAgIHhtbENoYXIgKmJ1ZmZlcjsKKwkgICAgaW50IG1heCA9IGxlbiAqIDI7CisKKwkgICAgYnVmZmVyID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKG1heCAqIHNpemVvZih4bWxDaGFyKSk7CisJICAgIGlmIChidWZmZXIgPT0gTlVMTCkgeworCSAgICAgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgbWVtY3B5KGJ1ZmZlciwgYnVmLCBsZW4pOworCSAgICB3aGlsZSAoeG1sSXNOYW1lQ2hhcihjdHh0LCBjKSkgeworCQlpZiAoY291bnQrKyA+IDEwMCkgeworCQkgICAgY291bnQgPSAwOworCQkgICAgR1JPVzsKKwkJfQorCQlpZiAobGVuICsgMTAgPiBtYXgpIHsKKwkJICAgIHhtbENoYXIgKnRtcDsKKworCQkgICAgbWF4ICo9IDI7CisJCSAgICB0bXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1ZmZlciwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCQl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCQl4bWxGcmVlKGJ1ZmZlcik7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICBidWZmZXIgPSB0bXA7CisJCX0KKwkJQ09QWV9CVUYobCxidWZmZXIsbGVuLGMpOworCQlORVhUTChsKTsKKwkJYyA9IENVUl9DSEFSKGwpOworCSAgICB9CisJICAgIGJ1ZmZlcltsZW5dID0gMDsKKwkgICAgcmV0dXJuKGJ1ZmZlcik7CisJfQorICAgIH0KKyAgICBpZiAobGVuID09IDApCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXR1cm4oeG1sU3RybmR1cChidWYsIGxlbikpOworfQorCisvKioKKyAqIHhtbFBhcnNlRW50aXR5VmFsdWU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG9yaWc6ICBpZiBub24tTlVMTCBzdG9yZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIGVudGl0eSB2YWx1ZQorICoKKyAqIHBhcnNlIGEgdmFsdWUgZm9yIEVOVElUWSBkZWNsYXJhdGlvbnMKKyAqCisgKiBbOV0gRW50aXR5VmFsdWUgOjo9ICciJyAoW14lJiJdIHwgUEVSZWZlcmVuY2UgfCBSZWZlcmVuY2UpKiAnIicgfAorICoJICAgICAgICAgICAgICAgIiciIChbXiUmJ10gfCBQRVJlZmVyZW5jZSB8IFJlZmVyZW5jZSkqICInIgorICoKKyAqIFJldHVybnMgdGhlIEVudGl0eVZhbHVlIHBhcnNlZCB3aXRoIHJlZmVyZW5jZSBzdWJzdGl0dXRlZCBvciBOVUxMCisgKi8KKworeG1sQ2hhciAqCit4bWxQYXJzZUVudGl0eVZhbHVlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sQ2hhciAqKm9yaWcpIHsKKyAgICB4bWxDaGFyICpidWYgPSBOVUxMOworICAgIGludCBsZW4gPSAwOworICAgIGludCBzaXplID0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRTsKKyAgICBpbnQgYywgbDsKKyAgICB4bWxDaGFyIHN0b3A7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIgPSBOVUxMOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworCisgICAgaWYgKFJBVyA9PSAnIicpIHN0b3AgPSAnIic7CisgICAgZWxzZSBpZiAoUkFXID09ICdcJycpIHN0b3AgPSAnXCcnOworICAgIGVsc2UgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRU5USVRZX05PVF9TVEFSVEVELCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGJ1ZiA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKwl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSBkZWZpbml0aW9uIGlzIGNvcGllZCBpbiBhIGJ1ZmZlci4KKyAgICAgKi8KKworICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VOVElUWV9WQUxVRTsKKyAgICBpbnB1dCA9IGN0eHQtPmlucHV0OworICAgIEdST1c7CisgICAgTkVYVDsKKyAgICBjID0gQ1VSX0NIQVIobCk7CisgICAgLyoKKyAgICAgKiBOT1RFOiA0LjQuNSBJbmNsdWRlZCBpbiBMaXRlcmFsCisgICAgICogV2hlbiBhIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlIGFwcGVhcnMgaW4gYSBsaXRlcmFsIGVudGl0eQorICAgICAqIHZhbHVlLCAuLi4gYSBzaW5nbGUgb3IgZG91YmxlIHF1b3RlIGNoYXJhY3RlciBpbiB0aGUgcmVwbGFjZW1lbnQKKyAgICAgKiB0ZXh0IGlzIGFsd2F5cyB0cmVhdGVkIGFzIGEgbm9ybWFsIGRhdGEgY2hhcmFjdGVyIGFuZCB3aWxsIG5vdAorICAgICAqIHRlcm1pbmF0ZSB0aGUgbGl0ZXJhbC4gCisgICAgICogSW4gcHJhY3RpY2UgaXQgbWVhbnMgd2Ugc3RvcCB0aGUgbG9vcCBvbmx5IHdoZW4gYmFjayBhdCBwYXJzaW5nCisgICAgICogdGhlIGluaXRpYWwgZW50aXR5IGFuZCB0aGUgcXVvdGUgaXMgZm91bmQKKyAgICAgKi8KKyAgICB3aGlsZSAoKElTX0NIQVIoYykpICYmICgoYyAhPSBzdG9wKSB8fCAvKiBjaGVja2VkICovCisJICAgKGN0eHQtPmlucHV0ICE9IGlucHV0KSkpIHsKKwlpZiAobGVuICsgNSA+PSBzaXplKSB7CisJICAgIHhtbENoYXIgKnRtcDsKKworCSAgICBzaXplICo9IDI7CisJICAgIHRtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLCBzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCXhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJeG1sRnJlZShidWYpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgYnVmID0gdG1wOworCX0KKwlDT1BZX0JVRihsLGJ1ZixsZW4sYyk7CisJTkVYVEwobCk7CisJLyoKKwkgKiBQb3AtdXAgb2YgZmluaXNoZWQgZW50aXRpZXMuCisJICovCisJd2hpbGUgKChSQVcgPT0gMCkgJiYgKGN0eHQtPmlucHV0TnIgPiAxKSkgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLworCSAgICB4bWxQb3BJbnB1dChjdHh0KTsKKworCUdST1c7CisJYyA9IENVUl9DSEFSKGwpOworCWlmIChjID09IDApIHsKKwkgICAgR1JPVzsKKwkgICAgYyA9IENVUl9DSEFSKGwpOworCX0KKyAgICB9CisgICAgYnVmW2xlbl0gPSAwOworCisgICAgLyoKKyAgICAgKiBSYWlzZSBwcm9ibGVtIHcuci50LiAnJicgYW5kICclJyBiZWluZyB1c2VkIGluIG5vbi1lbnRpdGllcworICAgICAqIHJlZmVyZW5jZSBjb25zdHJ1Y3RzLiBOb3RlIENoYXJyZWYgd2lsbCBiZSBoYW5kbGVkIGluCisgICAgICogeG1sU3RyaW5nRGVjb2RlRW50aXRpZXMoKQorICAgICAqLworICAgIGN1ciA9IGJ1ZjsKKyAgICB3aGlsZSAoKmN1ciAhPSAwKSB7IC8qIG5vbiBpbnB1dCBjb25zdW1pbmcgKi8KKwlpZiAoKCpjdXIgPT0gJyUnKSB8fCAoKCpjdXIgPT0gJyYnKSAmJiAoY3VyWzFdICE9ICcjJykpKSB7CisJICAgIHhtbENoYXIgKm5hbWU7CisJICAgIHhtbENoYXIgdG1wID0gKmN1cjsKKworCSAgICBjdXIrKzsKKwkgICAgbmFtZSA9IHhtbFBhcnNlU3RyaW5nTmFtZShjdHh0LCAmY3VyKTsKKyAgICAgICAgICAgIGlmICgobmFtZSA9PSBOVUxMKSB8fCAoKmN1ciAhPSAnOycpKSB7CisJCXhtbEZhdGFsRXJyTXNnSW50KGN0eHQsIFhNTF9FUlJfRU5USVRZX0NIQVJfRVJST1IsCisJICAgICJFbnRpdHlWYWx1ZTogJyVjJyBmb3JiaWRkZW4gZXhjZXB0IGZvciBlbnRpdGllcyByZWZlcmVuY2VzXG4iLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wKTsKKwkgICAgfQorCSAgICBpZiAoKHRtcCA9PSAnJScpICYmIChjdHh0LT5pblN1YnNldCA9PSAxKSAmJgorCQkoY3R4dC0+aW5wdXROciA9PSAxKSkgeworCQl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VOVElUWV9QRV9JTlRFUk5BTCwgTlVMTCk7CisJICAgIH0KKwkgICAgaWYgKG5hbWUgIT0gTlVMTCkKKwkJeG1sRnJlZShuYW1lKTsKKwkgICAgaWYgKCpjdXIgPT0gMCkKKwkgICAgICAgIGJyZWFrOworCX0KKwljdXIrKzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZW4gUEVSZWZlcmVuY2UgZW50aXRpZXMgYXJlIHN1YnN0aXR1dGVkLgorICAgICAqLworICAgIGlmIChjICE9IHN0b3ApIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VOVElUWV9OT1RfRklOSVNIRUQsIE5VTEwpOworCXhtbEZyZWUoYnVmKTsKKyAgICB9IGVsc2UgeworCU5FWFQ7CisJLyoKKwkgKiBOT1RFOiA0LjQuNyBCeXBhc3NlZAorCSAqIFdoZW4gYSBnZW5lcmFsIGVudGl0eSByZWZlcmVuY2UgYXBwZWFycyBpbiB0aGUgRW50aXR5VmFsdWUgaW4KKwkgKiBhbiBlbnRpdHkgZGVjbGFyYXRpb24sIGl0IGlzIGJ5cGFzc2VkIGFuZCBsZWZ0IGFzIGlzLgorCSAqIHNvIFhNTF9TVUJTVElUVVRFX1JFRiBpcyBub3Qgc2V0IGhlcmUuCisJICovCisJcmV0ID0geG1sU3RyaW5nRGVjb2RlRW50aXRpZXMoY3R4dCwgYnVmLCBYTUxfU1VCU1RJVFVURV9QRVJFRiwKKwkJCQkgICAgICAwLCAwLCAwKTsKKwlpZiAob3JpZyAhPSBOVUxMKSAKKwkgICAgKm9yaWcgPSBidWY7CisJZWxzZQorCSAgICB4bWxGcmVlKGJ1Zik7CisgICAgfQorICAgIAorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFBhcnNlQXR0VmFsdWVDb21wbGV4OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBsZW46ICAgdGhlIHJlc3VsdGluZyBhdHRyaWJ1dGUgbGVuCisgKiBAbm9ybWFsaXplOiAgd2V0aGVyIHRvIGFwcGx5IHRoZSBpbm5lciBub3JtYWxpemF0aW9uCisgKgorICogcGFyc2UgYSB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlLCB0aGlzIGlzIHRoZSBmYWxsYmFjayBmdW5jdGlvbgorICogb2YgeG1sUGFyc2VBdHRWYWx1ZSgpIHdoZW4gdGhlIGF0dHJpYnV0ZSBwYXJzaW5nIHJlcXVpcmVzIGhhbmRsaW5nCisgKiBvZiBub24tQVNDSUkgY2hhcmFjdGVycywgb3Igbm9ybWFsaXphdGlvbiBjb21wYWN0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIEF0dFZhbHVlIHBhcnNlZCBvciBOVUxMLiBUaGUgdmFsdWUgaGFzIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbFBhcnNlQXR0VmFsdWVDb21wbGV4KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50ICphdHRsZW4sIGludCBub3JtYWxpemUpIHsKKyAgICB4bWxDaGFyIGxpbWl0ID0gMDsKKyAgICB4bWxDaGFyICpidWYgPSBOVUxMOworICAgIHhtbENoYXIgKnJlcCA9IE5VTEw7CisgICAgaW50IGxlbiA9IDA7CisgICAgaW50IGJ1Zl9zaXplID0gMDsKKyAgICBpbnQgYywgbCwgaW5fc3BhY2UgPSAwOworICAgIHhtbENoYXIgKmN1cnJlbnQgPSBOVUxMOworICAgIHhtbEVudGl0eVB0ciBlbnQ7CisKKyAgICBpZiAoTlhUKDApID09ICciJykgeworCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRTsKKwlsaW1pdCA9ICciJzsKKyAgICAgICAgTkVYVDsKKyAgICB9IGVsc2UgaWYgKE5YVCgwKSA9PSAnXCcnKSB7CisJbGltaXQgPSAnXCcnOworCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRTsKKyAgICAgICAgTkVYVDsKKyAgICB9IGVsc2UgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfQVRUUklCVVRFX05PVF9TVEFSVEVELCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBhbGxvY2F0ZSBhIHRyYW5zbGF0aW9uIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBidWZfc2l6ZSA9IFhNTF9QQVJTRVJfQlVGRkVSX1NJWkU7CisgICAgYnVmID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKGJ1Zl9zaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIGdvdG8gbWVtX2Vycm9yOworCisgICAgLyoKKyAgICAgKiBPSyBsb29wIHVudGlsIHdlIHJlYWNoIG9uZSBvZiB0aGUgZW5kaW5nIGNoYXIgb3IgYSBzaXplIGxpbWl0LgorICAgICAqLworICAgIGMgPSBDVVJfQ0hBUihsKTsKKyAgICB3aGlsZSAoKE5YVCgwKSAhPSBsaW1pdCkgJiYgLyogY2hlY2tlZCAqLworICAgICAgICAgICAoSVNfQ0hBUihjKSkgJiYgKGMgIT0gJzwnKSkgeworCWlmIChjID09IDApIGJyZWFrOworCWlmIChjID09ICcmJykgeworCSAgICBpbl9zcGFjZSA9IDA7CisJICAgIGlmIChOWFQoMSkgPT0gJyMnKSB7CisJCWludCB2YWwgPSB4bWxQYXJzZUNoYXJSZWYoY3R4dCk7CisKKwkJaWYgKHZhbCA9PSAnJicpIHsKKwkJICAgIGlmIChjdHh0LT5yZXBsYWNlRW50aXRpZXMpIHsKKwkJCWlmIChsZW4gPiBidWZfc2l6ZSAtIDEwKSB7CisJCQkgICAgZ3Jvd0J1ZmZlcihidWYsIDEwKTsKKwkJCX0KKwkJCWJ1ZltsZW4rK10gPSAnJic7CisJCSAgICB9IGVsc2UgeworCQkJLyoKKwkJCSAqIFRoZSByZXBhcnNpbmcgd2lsbCBiZSBkb25lIGluIHhtbFN0cmluZ0dldE5vZGVMaXN0KCkKKwkJCSAqIGNhbGxlZCBieSB0aGUgYXR0cmlidXRlKCkgZnVuY3Rpb24gaW4gU0FYLmMKKwkJCSAqLworCQkJaWYgKGxlbiA+IGJ1Zl9zaXplIC0gMTApIHsKKwkJCSAgICBncm93QnVmZmVyKGJ1ZiwgMTApOworCQkJfQorCQkJYnVmW2xlbisrXSA9ICcmJzsKKwkJCWJ1ZltsZW4rK10gPSAnIyc7CisJCQlidWZbbGVuKytdID0gJzMnOworCQkJYnVmW2xlbisrXSA9ICc4JzsKKwkJCWJ1ZltsZW4rK10gPSAnOyc7CisJCSAgICB9CisJCX0gZWxzZSBpZiAodmFsICE9IDApIHsKKwkJICAgIGlmIChsZW4gPiBidWZfc2l6ZSAtIDEwKSB7CisJCQlncm93QnVmZmVyKGJ1ZiwgMTApOworCQkgICAgfQorCQkgICAgbGVuICs9IHhtbENvcHlDaGFyKDAsICZidWZbbGVuXSwgdmFsKTsKKwkJfQorCSAgICB9IGVsc2UgeworCQllbnQgPSB4bWxQYXJzZUVudGl0eVJlZihjdHh0KTsKKwkJY3R4dC0+bmJlbnRpdGllcysrOworCQlpZiAoZW50ICE9IE5VTEwpCisJCSAgICBjdHh0LT5uYmVudGl0aWVzICs9IGVudC0+b3duZXI7CisJCWlmICgoZW50ICE9IE5VTEwpICYmCisJCSAgICAoZW50LT5ldHlwZSA9PSBYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkpKSB7CisJCSAgICBpZiAobGVuID4gYnVmX3NpemUgLSAxMCkgeworCQkJZ3Jvd0J1ZmZlcihidWYsIDEwKTsKKwkJICAgIH0KKwkJICAgIGlmICgoY3R4dC0+cmVwbGFjZUVudGl0aWVzID09IDApICYmCisJCSAgICAgICAgKGVudC0+Y29udGVudFswXSA9PSAnJicpKSB7CisJCQlidWZbbGVuKytdID0gJyYnOworCQkJYnVmW2xlbisrXSA9ICcjJzsKKwkJCWJ1ZltsZW4rK10gPSAnMyc7CisJCQlidWZbbGVuKytdID0gJzgnOworCQkJYnVmW2xlbisrXSA9ICc7JzsKKwkJICAgIH0gZWxzZSB7CisJCQlidWZbbGVuKytdID0gZW50LT5jb250ZW50WzBdOworCQkgICAgfQorCQl9IGVsc2UgaWYgKChlbnQgIT0gTlVMTCkgJiYgCisJCSAgICAgICAgICAgKGN0eHQtPnJlcGxhY2VFbnRpdGllcyAhPSAwKSkgeworCQkgICAgaWYgKGVudC0+ZXR5cGUgIT0gWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZKSB7CisJCQlyZXAgPSB4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyhjdHh0LCBlbnQtPmNvbnRlbnQsCisJCQkJCQkgICAgICBYTUxfU1VCU1RJVFVURV9SRUYsCisJCQkJCQkgICAgICAwLCAwLCAwKTsKKwkJCWlmIChyZXAgIT0gTlVMTCkgeworCQkJICAgIGN1cnJlbnQgPSByZXA7CisJCQkgICAgd2hpbGUgKCpjdXJyZW50ICE9IDApIHsgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCpjdXJyZW50ID09IDB4RCkgfHwgKCpjdXJyZW50ID09IDB4QSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqY3VycmVudCA9PSAweDkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZbbGVuKytdID0gMHgyMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZbbGVuKytdID0gKmN1cnJlbnQrKzsKKwkJCQlpZiAobGVuID4gYnVmX3NpemUgLSAxMCkgeworCQkJCSAgICBncm93QnVmZmVyKGJ1ZiwgMTApOworCQkJCX0KKwkJCSAgICB9CisJCQkgICAgeG1sRnJlZShyZXApOworCQkJICAgIHJlcCA9IE5VTEw7CisJCQl9CisJCSAgICB9IGVsc2UgeworCQkJaWYgKGxlbiA+IGJ1Zl9zaXplIC0gMTApIHsKKwkJCSAgICBncm93QnVmZmVyKGJ1ZiwgMTApOworCQkJfQorCQkJaWYgKGVudC0+Y29udGVudCAhPSBOVUxMKQorCQkJICAgIGJ1ZltsZW4rK10gPSBlbnQtPmNvbnRlbnRbMF07CisJCSAgICB9CisJCX0gZWxzZSBpZiAoZW50ICE9IE5VTEwpIHsKKwkJICAgIGludCBpID0geG1sU3RybGVuKGVudC0+bmFtZSk7CisJCSAgICBjb25zdCB4bWxDaGFyICpjdXIgPSBlbnQtPm5hbWU7CisKKwkJICAgIC8qCisJCSAgICAgKiBUaGlzIG1heSBsb29rIGFic3VyZCBidXQgaXMgbmVlZGVkIHRvIGRldGVjdAorCQkgICAgICogZW50aXRpZXMgcHJvYmxlbXMKKwkJICAgICAqLworCQkgICAgaWYgKChlbnQtPmV0eXBlICE9IFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSkgJiYKKwkJCShlbnQtPmNvbnRlbnQgIT0gTlVMTCkpIHsKKwkJCXJlcCA9IHhtbFN0cmluZ0RlY29kZUVudGl0aWVzKGN0eHQsIGVudC0+Y29udGVudCwKKwkJCQkJCSAgWE1MX1NVQlNUSVRVVEVfUkVGLCAwLCAwLCAwKTsKKwkJCWlmIChyZXAgIT0gTlVMTCkgeworCQkJICAgIHhtbEZyZWUocmVwKTsKKwkJCSAgICByZXAgPSBOVUxMOworCQkJfQorCQkgICAgfQorCisJCSAgICAvKgorCQkgICAgICogSnVzdCBvdXRwdXQgdGhlIHJlZmVyZW5jZQorCQkgICAgICovCisJCSAgICBidWZbbGVuKytdID0gJyYnOworCQkgICAgd2hpbGUgKGxlbiA+IGJ1Zl9zaXplIC0gaSAtIDEwKSB7CisJCQlncm93QnVmZmVyKGJ1ZiwgaSArIDEwKTsKKwkJICAgIH0KKwkJICAgIGZvciAoO2kgPiAwO2ktLSkKKwkJCWJ1ZltsZW4rK10gPSAqY3VyKys7CisJCSAgICBidWZbbGVuKytdID0gJzsnOworCQl9CisJICAgIH0KKwl9IGVsc2UgeworCSAgICBpZiAoKGMgPT0gMHgyMCkgfHwgKGMgPT0gMHhEKSB8fCAoYyA9PSAweEEpIHx8IChjID09IDB4OSkpIHsKKwkgICAgICAgIGlmICgobGVuICE9IDApIHx8ICghbm9ybWFsaXplKSkgeworCQkgICAgaWYgKCghbm9ybWFsaXplKSB8fCAoIWluX3NwYWNlKSkgeworCQkJQ09QWV9CVUYobCxidWYsbGVuLDB4MjApOworCQkJd2hpbGUgKGxlbiA+IGJ1Zl9zaXplIC0gMTApIHsKKwkJCSAgICBncm93QnVmZmVyKGJ1ZiwgMTApOworCQkJfQorCQkgICAgfQorCQkgICAgaW5fc3BhY2UgPSAxOworCQl9CisJICAgIH0gZWxzZSB7CisJICAgICAgICBpbl9zcGFjZSA9IDA7CisJCUNPUFlfQlVGKGwsYnVmLGxlbixjKTsKKwkJaWYgKGxlbiA+IGJ1Zl9zaXplIC0gMTApIHsKKwkJICAgIGdyb3dCdWZmZXIoYnVmLCAxMCk7CisJCX0KKwkgICAgfQorCSAgICBORVhUTChsKTsKKwl9CisJR1JPVzsKKwljID0gQ1VSX0NIQVIobCk7CisgICAgfQorICAgIGlmICgoaW5fc3BhY2UpICYmIChub3JtYWxpemUpKSB7CisgICAgICAgIHdoaWxlIChidWZbbGVuIC0gMV0gPT0gMHgyMCkgbGVuLS07CisgICAgfQorICAgIGJ1ZltsZW5dID0gMDsKKyAgICBpZiAoUkFXID09ICc8JykgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTFRfSU5fQVRUUklCVVRFLCBOVUxMKTsKKyAgICB9IGVsc2UgaWYgKFJBVyAhPSBsaW1pdCkgeworCWlmICgoYyAhPSAwKSAmJiAoIUlTX0NIQVIoYykpKSB7CisJICAgIHhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorCQkJICAgImludmFsaWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSB2YWx1ZVxuIik7CisJfSBlbHNlIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9BVFRSSUJVVEVfTk9UX0ZJTklTSEVELAorCQkJICAgIkF0dFZhbHVlOiAnIGV4cGVjdGVkXG4iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorCU5FWFQ7CisgICAgaWYgKGF0dGxlbiAhPSBOVUxMKSAqYXR0bGVuID0gbGVuOworICAgIHJldHVybihidWYpOworCittZW1fZXJyb3I6CisgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworICAgIGlmIChidWYgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShidWYpOworICAgIGlmIChyZXAgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShyZXApOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUF0dFZhbHVlOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhIHZhbHVlIGZvciBhbiBhdHRyaWJ1dGUKKyAqIE5vdGU6IHRoZSBwYXJzZXIgd29uJ3QgZG8gc3Vic3RpdHV0aW9uIG9mIGVudGl0aWVzIGhlcmUsIHRoaXMKKyAqIHdpbGwgYmUgaGFuZGxlZCBsYXRlciBpbiB4bWxTdHJpbmdHZXROb2RlTGlzdAorICoKKyAqIFsxMF0gQXR0VmFsdWUgOjo9ICciJyAoW148JiJdIHwgUmVmZXJlbmNlKSogJyInIHwKKyAqICAgICAgICAgICAgICAgICAgICInIiAoW148JiddIHwgUmVmZXJlbmNlKSogIiciCisgKgorICogMy4zLjMgQXR0cmlidXRlLVZhbHVlIE5vcm1hbGl6YXRpb246CisgKiBCZWZvcmUgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBpcyBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yCisgKiBjaGVja2VkIGZvciB2YWxpZGl0eSwgdGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBub3JtYWxpemUgaXQgYXMgZm9sbG93czogCisgKiAtIGEgY2hhcmFjdGVyIHJlZmVyZW5jZSBpcyBwcm9jZXNzZWQgYnkgYXBwZW5kaW5nIHRoZSByZWZlcmVuY2VkCisgKiAgIGNoYXJhY3RlciB0byB0aGUgYXR0cmlidXRlIHZhbHVlCisgKiAtIGFuIGVudGl0eSByZWZlcmVuY2UgaXMgcHJvY2Vzc2VkIGJ5IHJlY3Vyc2l2ZWx5IHByb2Nlc3NpbmcgdGhlCisgKiAgIHJlcGxhY2VtZW50IHRleHQgb2YgdGhlIGVudGl0eSAKKyAqIC0gYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAoI3gyMCwgI3hELCAjeEEsICN4OSkgaXMgcHJvY2Vzc2VkIGJ5CisgKiAgIGFwcGVuZGluZyAjeDIwIHRvIHRoZSBub3JtYWxpemVkIHZhbHVlLCBleGNlcHQgdGhhdCBvbmx5IGEgc2luZ2xlCisgKiAgICN4MjAgaXMgYXBwZW5kZWQgZm9yIGEgIiN4RCN4QSIgc2VxdWVuY2UgdGhhdCBpcyBwYXJ0IG9mIGFuIGV4dGVybmFsCisgKiAgIHBhcnNlZCBlbnRpdHkgb3IgdGhlIGxpdGVyYWwgZW50aXR5IHZhbHVlIG9mIGFuIGludGVybmFsIHBhcnNlZCBlbnRpdHkgCisgKiAtIG90aGVyIGNoYXJhY3RlcnMgYXJlIHByb2Nlc3NlZCBieSBhcHBlbmRpbmcgdGhlbSB0byB0aGUgbm9ybWFsaXplZCB2YWx1ZSAKKyAqIElmIHRoZSBkZWNsYXJlZCB2YWx1ZSBpcyBub3QgQ0RBVEEsIHRoZW4gdGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBmdXJ0aGVyCisgKiBwcm9jZXNzIHRoZSBub3JtYWxpemVkIGF0dHJpYnV0ZSB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueSBsZWFkaW5nIGFuZAorICogdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHNwYWNlCisgKiAoI3gyMCkgY2hhcmFjdGVycyBieSBhIHNpbmdsZSBzcGFjZSAoI3gyMCkgY2hhcmFjdGVyLiAgCisgKiBBbGwgYXR0cmlidXRlcyBmb3Igd2hpY2ggbm8gZGVjbGFyYXRpb24gaGFzIGJlZW4gcmVhZCBzaG91bGQgYmUgdHJlYXRlZAorICogYnkgYSBub24tdmFsaWRhdGluZyBwYXJzZXIgYXMgaWYgZGVjbGFyZWQgQ0RBVEEuCisgKgorICogUmV0dXJucyB0aGUgQXR0VmFsdWUgcGFyc2VkIG9yIE5VTEwuIFRoZSB2YWx1ZSBoYXMgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4KKyAqLworCisKK3htbENoYXIgKgoreG1sUGFyc2VBdHRWYWx1ZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmlucHV0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgcmV0dXJuKHhtbFBhcnNlQXR0VmFsdWVJbnRlcm5hbChjdHh0LCBOVUxMLCBOVUxMLCAwKSk7Cit9CisKKy8qKgorICogeG1sUGFyc2VTeXN0ZW1MaXRlcmFsOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIAorICogcGFyc2UgYW4gWE1MIExpdGVyYWwKKyAqCisgKiBbMTFdIFN5c3RlbUxpdGVyYWwgOjo9ICgnIicgW14iXSogJyInKSB8ICgiJyIgW14nXSogIiciKQorICoKKyAqIFJldHVybnMgdGhlIFN5c3RlbUxpdGVyYWwgcGFyc2VkIG9yIE5VTEwKKyAqLworCit4bWxDaGFyICoKK3htbFBhcnNlU3lzdGVtTGl0ZXJhbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpidWYgPSBOVUxMOworICAgIGludCBsZW4gPSAwOworICAgIGludCBzaXplID0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRTsKKyAgICBpbnQgY3VyLCBsOworICAgIHhtbENoYXIgc3RvcDsKKyAgICBpbnQgc3RhdGUgPSBjdHh0LT5pbnN0YXRlOworICAgIGludCBjb3VudCA9IDA7CisKKyAgICBTSFJJTks7CisgICAgaWYgKFJBVyA9PSAnIicpIHsKKyAgICAgICAgTkVYVDsKKwlzdG9wID0gJyInOworICAgIH0gZWxzZSBpZiAoUkFXID09ICdcJycpIHsKKyAgICAgICAgTkVYVDsKKwlzdG9wID0gJ1wnJzsKKyAgICB9IGVsc2UgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTElURVJBTF9OT1RfU1RBUlRFRCwgTlVMTCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICAKKyAgICBidWYgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1NZU1RFTV9MSVRFUkFMOworICAgIGN1ciA9IENVUl9DSEFSKGwpOworICAgIHdoaWxlICgoSVNfQ0hBUihjdXIpKSAmJiAoY3VyICE9IHN0b3ApKSB7IC8qIGNoZWNrZWQgKi8KKwlpZiAobGVuICsgNSA+PSBzaXplKSB7CisJICAgIHhtbENoYXIgKnRtcDsKKworCSAgICBzaXplICo9IDI7CisJICAgIHRtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLCBzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgICAgICB4bWxGcmVlKGJ1Zik7CisJCXhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJY3R4dC0+aW5zdGF0ZSA9ICh4bWxQYXJzZXJJbnB1dFN0YXRlKSBzdGF0ZTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGJ1ZiA9IHRtcDsKKwl9CisJY291bnQrKzsKKwlpZiAoY291bnQgPiA1MCkgeworCSAgICBHUk9XOworCSAgICBjb3VudCA9IDA7CisJfQorCUNPUFlfQlVGKGwsYnVmLGxlbixjdXIpOworCU5FWFRMKGwpOworCWN1ciA9IENVUl9DSEFSKGwpOworCWlmIChjdXIgPT0gMCkgeworCSAgICBHUk9XOworCSAgICBTSFJJTks7CisJICAgIGN1ciA9IENVUl9DSEFSKGwpOworCX0KKyAgICB9CisgICAgYnVmW2xlbl0gPSAwOworICAgIGN0eHQtPmluc3RhdGUgPSAoeG1sUGFyc2VySW5wdXRTdGF0ZSkgc3RhdGU7CisgICAgaWYgKCFJU19DSEFSKGN1cikpIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0xJVEVSQUxfTk9UX0ZJTklTSEVELCBOVUxMKTsKKyAgICB9IGVsc2UgeworCU5FWFQ7CisgICAgfQorICAgIHJldHVybihidWYpOworfQorCisvKioKKyAqIHhtbFBhcnNlUHViaWRMaXRlcmFsOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbiBYTUwgcHVibGljIGxpdGVyYWwKKyAqCisgKiBbMTJdIFB1YmlkTGl0ZXJhbCA6Oj0gJyInIFB1YmlkQ2hhciogJyInIHwgIiciIChQdWJpZENoYXIgLSAiJyIpKiAiJyIKKyAqCisgKiBSZXR1cm5zIHRoZSBQdWJpZExpdGVyYWwgcGFyc2VkIG9yIE5VTEwuCisgKi8KKworeG1sQ2hhciAqCit4bWxQYXJzZVB1YmlkTGl0ZXJhbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpidWYgPSBOVUxMOworICAgIGludCBsZW4gPSAwOworICAgIGludCBzaXplID0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRTsKKyAgICB4bWxDaGFyIGN1cjsKKyAgICB4bWxDaGFyIHN0b3A7CisgICAgaW50IGNvdW50ID0gMDsKKyAgICB4bWxQYXJzZXJJbnB1dFN0YXRlIG9sZHN0YXRlID0gY3R4dC0+aW5zdGF0ZTsKKworICAgIFNIUklOSzsKKyAgICBpZiAoUkFXID09ICciJykgeworICAgICAgICBORVhUOworCXN0b3AgPSAnIic7CisgICAgfSBlbHNlIGlmIChSQVcgPT0gJ1wnJykgeworICAgICAgICBORVhUOworCXN0b3AgPSAnXCcnOworICAgIH0gZWxzZSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9MSVRFUkFMX05PVF9TVEFSVEVELCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGJ1ZiA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKwl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9QVUJMSUNfTElURVJBTDsKKyAgICBjdXIgPSBDVVI7CisgICAgd2hpbGUgKChJU19QVUJJRENIQVJfQ0goY3VyKSkgJiYgKGN1ciAhPSBzdG9wKSkgeyAvKiBjaGVja2VkICovCisJaWYgKGxlbiArIDEgPj0gc2l6ZSkgeworCSAgICB4bWxDaGFyICp0bXA7CisKKwkgICAgc2l6ZSAqPSAyOworCSAgICB0bXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1Ziwgc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisJICAgIGlmICh0bXAgPT0gTlVMTCkgeworCQl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCXhtbEZyZWUoYnVmKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGJ1ZiA9IHRtcDsKKwl9CisJYnVmW2xlbisrXSA9IGN1cjsKKwljb3VudCsrOworCWlmIChjb3VudCA+IDUwKSB7CisJICAgIEdST1c7CisJICAgIGNvdW50ID0gMDsKKwl9CisJTkVYVDsKKwljdXIgPSBDVVI7CisJaWYgKGN1ciA9PSAwKSB7CisJICAgIEdST1c7CisJICAgIFNIUklOSzsKKwkgICAgY3VyID0gQ1VSOworCX0KKyAgICB9CisgICAgYnVmW2xlbl0gPSAwOworICAgIGlmIChjdXIgIT0gc3RvcCkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTElURVJBTF9OT1RfRklOSVNIRUQsIE5VTEwpOworICAgIH0gZWxzZSB7CisJTkVYVDsKKyAgICB9CisgICAgY3R4dC0+aW5zdGF0ZSA9IG9sZHN0YXRlOworICAgIHJldHVybihidWYpOworfQorCitzdGF0aWMgdm9pZCB4bWxQYXJzZUNoYXJEYXRhQ29tcGxleCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBjZGF0YSk7CisKKy8qCisgKiB1c2VkIGZvciB0aGUgdGVzdCBpbiB0aGUgaW5uZXIgbG9vcCBvZiB0aGUgY2hhciBkYXRhIHRlc3RpbmcKKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9jaGFyX2RhdGFbMjU2XSA9IHsKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIC8qIDB4OSwgQ1IvTEYgc2VwYXJhdGVkICovCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MjAsIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4MDAsIDB4MjcsIC8qICYgKi8KKyAgICAweDI4LCAweDI5LCAweDJBLCAweDJCLCAweDJDLCAweDJELCAweDJFLCAweDJGLAorICAgIDB4MzAsIDB4MzEsIDB4MzIsIDB4MzMsIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsCisgICAgMHgzOCwgMHgzOSwgMHgzQSwgMHgzQiwgMHgwMCwgMHgzRCwgMHgzRSwgMHgzRiwgLyogPCAqLworICAgIDB4NDAsIDB4NDEsIDB4NDIsIDB4NDMsIDB4NDQsIDB4NDUsIDB4NDYsIDB4NDcsCisgICAgMHg0OCwgMHg0OSwgMHg0QSwgMHg0QiwgMHg0QywgMHg0RCwgMHg0RSwgMHg0RiwKKyAgICAweDUwLCAweDUxLCAweDUyLCAweDUzLCAweDU0LCAweDU1LCAweDU2LCAweDU3LAorICAgIDB4NTgsIDB4NTksIDB4NUEsIDB4NUIsIDB4NUMsIDB4MDAsIDB4NUUsIDB4NUYsIC8qIF0gKi8KKyAgICAweDYwLCAweDYxLCAweDYyLCAweDYzLCAweDY0LCAweDY1LCAweDY2LCAweDY3LAorICAgIDB4NjgsIDB4NjksIDB4NkEsIDB4NkIsIDB4NkMsIDB4NkQsIDB4NkUsIDB4NkYsCisgICAgMHg3MCwgMHg3MSwgMHg3MiwgMHg3MywgMHg3NCwgMHg3NSwgMHg3NiwgMHg3NywKKyAgICAweDc4LCAweDc5LCAweDdBLCAweDdCLCAweDdDLCAweDdELCAweDdFLCAweDdGLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIC8qIG5vbi1hc2NpaSAqLworICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwCit9OworCisvKioKKyAqIHhtbFBhcnNlQ2hhckRhdGE6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGNkYXRhOiAgaW50IGluZGljYXRpbmcgd2hldGhlciB3ZSBhcmUgd2l0aGluIGEgQ0RBVEEgc2VjdGlvbgorICoKKyAqIHBhcnNlIGEgQ2hhckRhdGEgc2VjdGlvbi4KKyAqIGlmIHdlIGFyZSB3aXRoaW4gYSBDREFUQSBzZWN0aW9uICddXT4nIG1hcmtzIGFuIGVuZCBvZiBzZWN0aW9uLgorICoKKyAqIFRoZSByaWdodCBhbmdsZSBicmFja2V0ICg+KSBtYXkgYmUgcmVwcmVzZW50ZWQgdXNpbmcgdGhlIHN0cmluZyAiJmd0OyIsCisgKiBhbmQgbXVzdCwgZm9yIGNvbXBhdGliaWxpdHksIGJlIGVzY2FwZWQgdXNpbmcgIiZndDsiIG9yIGEgY2hhcmFjdGVyCisgKiByZWZlcmVuY2Ugd2hlbiBpdCBhcHBlYXJzIGluIHRoZSBzdHJpbmcgIl1dPiIgaW4gY29udGVudCwgd2hlbiB0aGF0CisgKiBzdHJpbmcgaXMgbm90IG1hcmtpbmcgdGhlIGVuZCBvZiBhIENEQVRBIHNlY3Rpb24uIAorICoKKyAqIFsxNF0gQ2hhckRhdGEgOjo9IFtePCZdKiAtIChbXjwmXSogJ11dPicgW148Jl0qKQorICovCisKK3ZvaWQKK3htbFBhcnNlQ2hhckRhdGEoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgY2RhdGEpIHsKKyAgICBjb25zdCB4bWxDaGFyICppbjsKKyAgICBpbnQgbmJjaGFyID0gMDsKKyAgICBpbnQgbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworICAgIGludCBjb2wgPSBjdHh0LT5pbnB1dC0+Y29sOworICAgIGludCBjY29sOworCisgICAgU0hSSU5LOworICAgIEdST1c7CisgICAgLyoKKyAgICAgKiBBY2NlbGVyYXRlZCBjb21tb24gY2FzZSB3aGVyZSBpbnB1dCBkb24ndCBuZWVkIHRvIGJlCisgICAgICogbW9kaWZpZWQgYmVmb3JlIHBhc3NpbmcgaXQgdG8gdGhlIGhhbmRsZXIuCisgICAgICovCisgICAgaWYgKCFjZGF0YSkgeworCWluID0gY3R4dC0+aW5wdXQtPmN1cjsKKwlkbyB7CitnZXRfbW9yZV9zcGFjZToKKwkgICAgd2hpbGUgKCppbiA9PSAweDIwKSB7IGluKys7IGN0eHQtPmlucHV0LT5jb2wrKzsgfQorCSAgICBpZiAoKmluID09IDB4QSkgeworCQlkbyB7CisJCSAgICBjdHh0LT5pbnB1dC0+bGluZSsrOyBjdHh0LT5pbnB1dC0+Y29sID0gMTsKKwkJICAgIGluKys7CisJCX0gd2hpbGUgKCppbiA9PSAweEEpOworCQlnb3RvIGdldF9tb3JlX3NwYWNlOworCSAgICB9CisJICAgIGlmICgqaW4gPT0gJzwnKSB7CisJCW5iY2hhciA9IGluIC0gY3R4dC0+aW5wdXQtPmN1cjsKKwkJaWYgKG5iY2hhciA+IDApIHsKKwkJICAgIGNvbnN0IHhtbENoYXIgKnRtcCA9IGN0eHQtPmlucHV0LT5jdXI7CisJCSAgICBjdHh0LT5pbnB1dC0+Y3VyID0gaW47CisKKwkJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJCSAgICAgICAgKGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSAhPQorCQkgICAgICAgICBjdHh0LT5zYXgtPmNoYXJhY3RlcnMpKSB7CisJCQlpZiAoYXJlQmxhbmtzKGN0eHQsIHRtcCwgbmJjaGFyLCAxKSkgeworCQkJICAgIGlmIChjdHh0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UgIT0gTlVMTCkKKwkJCQljdHh0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UoY3R4dC0+dXNlckRhdGEsCisJCQkJCQkgICAgICAgdG1wLCBuYmNoYXIpOworCQkJfSBlbHNlIHsKKwkJCSAgICBpZiAoY3R4dC0+c2F4LT5jaGFyYWN0ZXJzICE9IE5VTEwpCisJCQkJY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLAorCQkJCQkJICAgICAgdG1wLCBuYmNoYXIpOworCQkJICAgIGlmICgqY3R4dC0+c3BhY2UgPT0gLTEpCisJCQkgICAgICAgICpjdHh0LT5zcGFjZSA9IC0yOworCQkJfQorCQkgICAgfSBlbHNlIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJCSAgICAgICAgICAgICAgIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkpIHsKKwkJCWN0eHQtPnNheC0+Y2hhcmFjdGVycyhjdHh0LT51c2VyRGF0YSwKKwkJCQkJICAgICAgdG1wLCBuYmNoYXIpOworCQkgICAgfQorCQl9CisJCXJldHVybjsKKwkgICAgfQorCitnZXRfbW9yZToKKyAgICAgICAgICAgIGNjb2wgPSBjdHh0LT5pbnB1dC0+Y29sOworCSAgICB3aGlsZSAodGVzdF9jaGFyX2RhdGFbKmluXSkgeworCQlpbisrOworCQljY29sKys7CisJICAgIH0KKwkgICAgY3R4dC0+aW5wdXQtPmNvbCA9IGNjb2w7CisJICAgIGlmICgqaW4gPT0gMHhBKSB7CisJCWRvIHsKKwkJICAgIGN0eHQtPmlucHV0LT5saW5lKys7IGN0eHQtPmlucHV0LT5jb2wgPSAxOworCQkgICAgaW4rKzsKKwkJfSB3aGlsZSAoKmluID09IDB4QSk7CisJCWdvdG8gZ2V0X21vcmU7CisJICAgIH0KKwkgICAgaWYgKCppbiA9PSAnXScpIHsKKwkJaWYgKChpblsxXSA9PSAnXScpICYmIChpblsyXSA9PSAnPicpKSB7CisJCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQsIE5VTEwpOworCQkgICAgY3R4dC0+aW5wdXQtPmN1ciA9IGluOworCQkgICAgcmV0dXJuOworCQl9CisJCWluKys7CisJCWN0eHQtPmlucHV0LT5jb2wrKzsKKwkJZ290byBnZXRfbW9yZTsKKwkgICAgfQorCSAgICBuYmNoYXIgPSBpbiAtIGN0eHQtPmlucHV0LT5jdXI7CisJICAgIGlmIChuYmNoYXIgPiAwKSB7CisJCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJCSAgICAoY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlICE9CisJCSAgICAgY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKSAmJgorCQkgICAgKElTX0JMQU5LX0NIKCpjdHh0LT5pbnB1dC0+Y3VyKSkpIHsKKwkJICAgIGNvbnN0IHhtbENoYXIgKnRtcCA9IGN0eHQtPmlucHV0LT5jdXI7CisJCSAgICBjdHh0LT5pbnB1dC0+Y3VyID0gaW47CisKKwkJICAgIGlmIChhcmVCbGFua3MoY3R4dCwgdG1wLCBuYmNoYXIsIDApKSB7CisJCSAgICAgICAgaWYgKGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSAhPSBOVUxMKQorCQkJICAgIGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZShjdHh0LT51c2VyRGF0YSwKKwkJCQkJCQkgICB0bXAsIG5iY2hhcik7CisJCSAgICB9IGVsc2UgeworCQkgICAgICAgIGlmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkKKwkJCSAgICBjdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsCisJCQkJCQkgIHRtcCwgbmJjaGFyKTsKKwkJCWlmICgqY3R4dC0+c3BhY2UgPT0gLTEpCisJCQkgICAgKmN0eHQtPnNwYWNlID0gLTI7CisJCSAgICB9CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBjdHh0LT5pbnB1dC0+bGluZTsKKyAgICAgICAgICAgICAgICAgICAgY29sID0gY3R4dC0+aW5wdXQtPmNvbDsKKwkJfSBlbHNlIGlmIChjdHh0LT5zYXggIT0gTlVMTCkgeworCQkgICAgaWYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKQorCQkJY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLAorCQkJCQkgICAgICBjdHh0LT5pbnB1dC0+Y3VyLCBuYmNoYXIpOworICAgICAgICAgICAgICAgICAgICBsaW5lID0gY3R4dC0+aW5wdXQtPmxpbmU7CisgICAgICAgICAgICAgICAgICAgIGNvbCA9IGN0eHQtPmlucHV0LT5jb2w7CisJCX0KKyAgICAgICAgICAgICAgICAvKiBzb21ldGhpbmcgcmVhbGx5IGJhZCBoYXBwZW5lZCBpbiB0aGUgU0FYIGNhbGxiYWNrICovCisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmluc3RhdGUgIT0gWE1MX1BBUlNFUl9DT05URU5UKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisJICAgIH0KKwkgICAgY3R4dC0+aW5wdXQtPmN1ciA9IGluOworCSAgICBpZiAoKmluID09IDB4RCkgeworCQlpbisrOworCQlpZiAoKmluID09IDB4QSkgeworCQkgICAgY3R4dC0+aW5wdXQtPmN1ciA9IGluOworCQkgICAgaW4rKzsKKwkJICAgIGN0eHQtPmlucHV0LT5saW5lKys7IGN0eHQtPmlucHV0LT5jb2wgPSAxOworCQkgICAgY29udGludWU7IC8qIHdoaWxlICovCisJCX0KKwkJaW4tLTsKKwkgICAgfQorCSAgICBpZiAoKmluID09ICc8JykgeworCQlyZXR1cm47CisJICAgIH0KKwkgICAgaWYgKCppbiA9PSAnJicpIHsKKwkJcmV0dXJuOworCSAgICB9CisJICAgIFNIUklOSzsKKwkgICAgR1JPVzsKKwkgICAgaW4gPSBjdHh0LT5pbnB1dC0+Y3VyOworCX0gd2hpbGUgKCgoKmluID49IDB4MjApICYmICgqaW4gPD0gMHg3RikpIHx8ICgqaW4gPT0gMHgwOSkpOworCW5iY2hhciA9IDA7CisgICAgfQorICAgIGN0eHQtPmlucHV0LT5saW5lID0gbGluZTsKKyAgICBjdHh0LT5pbnB1dC0+Y29sID0gY29sOworICAgIHhtbFBhcnNlQ2hhckRhdGFDb21wbGV4KGN0eHQsIGNkYXRhKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUNoYXJEYXRhQ29tcGxleDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAY2RhdGE6ICBpbnQgaW5kaWNhdGluZyB3aGV0aGVyIHdlIGFyZSB3aXRoaW4gYSBDREFUQSBzZWN0aW9uCisgKgorICogcGFyc2UgYSBDaGFyRGF0YSBzZWN0aW9uLnRoaXMgaXMgdGhlIGZhbGxiYWNrIGZ1bmN0aW9uCisgKiBvZiB4bWxQYXJzZUNoYXJEYXRhKCkgd2hlbiB0aGUgcGFyc2luZyByZXF1aXJlcyBoYW5kbGluZworICogb2Ygbm9uLUFTQ0lJIGNoYXJhY3RlcnMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxQYXJzZUNoYXJEYXRhQ29tcGxleCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBjZGF0YSkgeworICAgIHhtbENoYXIgYnVmW1hNTF9QQVJTRVJfQklHX0JVRkZFUl9TSVpFICsgNV07CisgICAgaW50IG5iY2hhciA9IDA7CisgICAgaW50IGN1ciwgbDsKKyAgICBpbnQgY291bnQgPSAwOworCisgICAgU0hSSU5LOworICAgIEdST1c7CisgICAgY3VyID0gQ1VSX0NIQVIobCk7CisgICAgd2hpbGUgKChjdXIgIT0gJzwnKSAmJiAvKiBjaGVja2VkICovCisgICAgICAgICAgIChjdXIgIT0gJyYnKSAmJiAKKwkgICAoSVNfQ0hBUihjdXIpKSkgLyogdGVzdCBhbHNvIGRvbmUgaW4geG1sQ3VycmVudENoYXIoKSAqLyB7CisJaWYgKChjdXIgPT0gJ10nKSAmJiAoTlhUKDEpID09ICddJykgJiYKKwkgICAgKE5YVCgyKSA9PSAnPicpKSB7CisJICAgIGlmIChjZGF0YSkgYnJlYWs7CisJICAgIGVsc2UgeworCQl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX01JU1BMQUNFRF9DREFUQV9FTkQsIE5VTEwpOworCSAgICB9CisJfQorCUNPUFlfQlVGKGwsYnVmLG5iY2hhcixjdXIpOworCWlmIChuYmNoYXIgPj0gWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUpIHsKKwkgICAgYnVmW25iY2hhcl0gPSAwOworCisJICAgIC8qCisJICAgICAqIE9LIHRoZSBzZWdtZW50IGlzIHRvIGJlIGNvbnN1bWVkIGFzIGNoYXJzLgorCSAgICAgKi8KKwkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSkgeworCQlpZiAoYXJlQmxhbmtzKGN0eHQsIGJ1ZiwgbmJjaGFyLCAwKSkgeworCQkgICAgaWYgKGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSAhPSBOVUxMKQorCQkJY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlKGN0eHQtPnVzZXJEYXRhLAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgbmJjaGFyKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkKKwkJCWN0eHQtPnNheC0+Y2hhcmFjdGVycyhjdHh0LT51c2VyRGF0YSwgYnVmLCBuYmNoYXIpOworCQkgICAgaWYgKChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0KKwkJICAgICAgICAgY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlKSAmJgorCQkJKCpjdHh0LT5zcGFjZSA9PSAtMSkpCisJCQkqY3R4dC0+c3BhY2UgPSAtMjsKKwkJfQorCSAgICB9CisJICAgIG5iY2hhciA9IDA7CisgICAgICAgICAgICAvKiBzb21ldGhpbmcgcmVhbGx5IGJhZCBoYXBwZW5lZCBpbiB0aGUgU0FYIGNhbGxiYWNrICovCisgICAgICAgICAgICBpZiAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0NPTlRFTlQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCX0KKwljb3VudCsrOworCWlmIChjb3VudCA+IDUwKSB7CisJICAgIEdST1c7CisJICAgIGNvdW50ID0gMDsKKwl9CisJTkVYVEwobCk7CisJY3VyID0gQ1VSX0NIQVIobCk7CisgICAgfQorICAgIGlmIChuYmNoYXIgIT0gMCkgeworICAgICAgICBidWZbbmJjaGFyXSA9IDA7CisJLyoKKwkgKiBPSyB0aGUgc2VnbWVudCBpcyB0byBiZSBjb25zdW1lZCBhcyBjaGFycy4KKwkgKi8KKwlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpKSB7CisJICAgIGlmIChhcmVCbGFua3MoY3R4dCwgYnVmLCBuYmNoYXIsIDApKSB7CisJCWlmIChjdHh0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UgIT0gTlVMTCkKKwkJICAgIGN0eHQtPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZShjdHh0LT51c2VyRGF0YSwgYnVmLCBuYmNoYXIpOworCSAgICB9IGVsc2UgeworCQlpZiAoY3R4dC0+c2F4LT5jaGFyYWN0ZXJzICE9IE5VTEwpCisJCSAgICBjdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsIGJ1ZiwgbmJjaGFyKTsKKwkJaWYgKChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlKSAmJgorCQkgICAgKCpjdHh0LT5zcGFjZSA9PSAtMSkpCisJCSAgICAqY3R4dC0+c3BhY2UgPSAtMjsKKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKChjdXIgIT0gMCkgJiYgKCFJU19DSEFSKGN1cikpKSB7CisJLyogR2VuZXJhdGUgdGhlIGVycm9yIGFuZCBza2lwIHRoZSBvZmZlbmRpbmcgY2hhcmFjdGVyICovCisgICAgICAgIHhtbEZhdGFsRXJyTXNnSW50KGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiUENEQVRBIGludmFsaWQgQ2hhciB2YWx1ZSAlZFxuIiwKKwkgICAgICAgICAgICAgICAgICBjdXIpOworCU5FWFRMKGwpOworICAgIH0KK30KKworLyoqCisgKiB4bWxQYXJzZUV4dGVybmFsSUQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHB1YmxpY0lEOiAgYSB4bWxDaGFyKiogcmVjZWl2aW5nIFB1YmlkTGl0ZXJhbAorICogQHN0cmljdDogaW5kaWNhdGUgd2hldGhlciB3ZSBzaG91bGQgcmVzdHJpY3QgcGFyc2luZyB0byBvbmx5CisgKiAgICAgICAgICBwcm9kdWN0aW9uIFs3NV0sIHNlZSBOT1RFIGJlbG93CisgKgorICogUGFyc2UgYW4gRXh0ZXJuYWwgSUQgb3IgYSBQdWJsaWMgSUQKKyAqCisgKiBOT1RFOiBQcm9kdWN0aW9ucyBbNzVdIGFuZCBbODNdIGludGVyYWN0IGJhZGx5IHNpbmNlIFs3NV0gY2FuIGdlbmVyYXRlCisgKiAgICAgICAnUFVCTElDJyBTIFB1YmlkTGl0ZXJhbCBTIFN5c3RlbUxpdGVyYWwKKyAqCisgKiBbNzVdIEV4dGVybmFsSUQgOjo9ICdTWVNURU0nIFMgU3lzdGVtTGl0ZXJhbAorICogICAgICAgICAgICAgICAgICAgfCAnUFVCTElDJyBTIFB1YmlkTGl0ZXJhbCBTIFN5c3RlbUxpdGVyYWwKKyAqCisgKiBbODNdIFB1YmxpY0lEIDo6PSAnUFVCTElDJyBTIFB1YmlkTGl0ZXJhbAorICoKKyAqIFJldHVybnMgdGhlIGZ1bmN0aW9uIHJldHVybnMgU3lzdGVtTGl0ZXJhbCBhbmQgaW4gdGhlIHNlY29uZAorICogICAgICAgICAgICAgICAgY2FzZSBwdWJsaWNJRCByZWNlaXZlcyBQdWJpZExpdGVyYWwsIGlzIHN0cmljdCBpcyBvZmYKKyAqICAgICAgICAgICAgICAgIGl0IGlzIHBvc3NpYmxlIHRvIHJldHVybiBOVUxMIGFuZCBoYXZlIHB1YmxpY0lEIHNldC4KKyAqLworCit4bWxDaGFyICoKK3htbFBhcnNlRXh0ZXJuYWxJRCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbENoYXIgKipwdWJsaWNJRCwgaW50IHN0cmljdCkgeworICAgIHhtbENoYXIgKlVSSSA9IE5VTEw7CisKKyAgICBTSFJJTks7CisKKyAgICAqcHVibGljSUQgPSBOVUxMOworICAgIGlmIChDTVA2KENVUl9QVFIsICdTJywgJ1knLCAnUycsICdUJywgJ0UnLCAnTScpKSB7CisgICAgICAgIFNLSVAoNik7CisJaWYgKCFJU19CTEFOS19DSChDVVIpKSB7CisJICAgIHhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCisJICAgICAgICAgICAgICAgICAgICJTcGFjZSByZXF1aXJlZCBhZnRlciAnU1lTVEVNJ1xuIik7CisJfQorICAgICAgICBTS0lQX0JMQU5LUzsKKwlVUkkgPSB4bWxQYXJzZVN5c3RlbUxpdGVyYWwoY3R4dCk7CisJaWYgKFVSSSA9PSBOVUxMKSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfVVJJX1JFUVVJUkVELCBOVUxMKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoQ01QNihDVVJfUFRSLCAnUCcsICdVJywgJ0InLCAnTCcsICdJJywgJ0MnKSkgeworICAgICAgICBTS0lQKDYpOworCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkgICAgIlNwYWNlIHJlcXVpcmVkIGFmdGVyICdQVUJMSUMnXG4iKTsKKwl9CisgICAgICAgIFNLSVBfQkxBTktTOworCSpwdWJsaWNJRCA9IHhtbFBhcnNlUHViaWRMaXRlcmFsKGN0eHQpOworCWlmICgqcHVibGljSUQgPT0gTlVMTCkgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1BVQklEX1JFUVVJUkVELCBOVUxMKTsKKwl9CisJaWYgKHN0cmljdCkgeworCSAgICAvKgorCSAgICAgKiBXZSBkb24ndCBoYW5kbGUgWzgzXSBzbyAiUyBTeXN0ZW1MaXRlcmFsIiBpcyByZXF1aXJlZC4KKwkgICAgICovCisJICAgIGlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCQl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkJIlNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoZSBQdWJsaWMgSWRlbnRpZmllclxuIik7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiBXZSBoYW5kbGUgWzgzXSBzbyB3ZSByZXR1cm4gaW1tZWRpYXRlbHksIGlmIAorCSAgICAgKiAiUyBTeXN0ZW1MaXRlcmFsIiBpcyBub3QgZGV0ZWN0ZWQuIEZyb20gYSBwdXJlbHkgcGFyc2luZworCSAgICAgKiBwb2ludCBvZiB2aWV3IHRoYXQncyBhIG5pY2UgbWVzcy4KKwkgICAgICovCisJICAgIGNvbnN0IHhtbENoYXIgKnB0cjsKKwkgICAgR1JPVzsKKworCSAgICBwdHIgPSBDVVJfUFRSOworCSAgICBpZiAoIUlTX0JMQU5LX0NIKCpwdHIpKSByZXR1cm4oTlVMTCk7CisJICAgIAorCSAgICB3aGlsZSAoSVNfQkxBTktfQ0goKnB0cikpIHB0cisrOyAvKiBUT0RPOiBkYW5nZXJvdXMsIGZpeCAhICovCisJICAgIGlmICgoKnB0ciAhPSAnXCcnKSAmJiAoKnB0ciAhPSAnIicpKSByZXR1cm4oTlVMTCk7CisJfQorICAgICAgICBTS0lQX0JMQU5LUzsKKwlVUkkgPSB4bWxQYXJzZVN5c3RlbUxpdGVyYWwoY3R4dCk7CisJaWYgKFVSSSA9PSBOVUxMKSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfVVJJX1JFUVVJUkVELCBOVUxMKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4oVVJJKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUNvbW1lbnRDb21wbGV4OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBidWY6ICB0aGUgYWxyZWFkeSBwYXJzZWQgcGFydCBvZiB0aGUgYnVmZmVyCisgKiBAbGVuOiAgbnVtYmVyIG9mIGJ5dGVzIGZpbGxlcyBpbiB0aGUgYnVmZmVyCisgKiBAc2l6ZTogIGFsbG9jYXRlZCBzaXplIG9mIHRoZSBidWZmZXIKKyAqCisgKiBTa2lwIGFuIFhNTCAoU0dNTCkgY29tbWVudCA8IS0tIC4uLi4gLS0+CisgKiAgVGhlIHNwZWMgc2F5cyB0aGF0ICJGb3IgY29tcGF0aWJpbGl0eSwgdGhlIHN0cmluZyAiLS0iIChkb3VibGUtaHlwaGVuKQorICogIG11c3Qgbm90IG9jY3VyIHdpdGhpbiBjb21tZW50cy4gIgorICogVGhpcyBpcyB0aGUgc2xvdyByb3V0aW5lIGluIGNhc2UgdGhlIGFjY2VsZXJhdG9yIGZvciBhc2NpaSBkaWRuJ3Qgd29yaworICoKKyAqIFsxNV0gQ29tbWVudCA6Oj0gJzwhLS0nICgoQ2hhciAtICctJykgfCAoJy0nIChDaGFyIC0gJy0nKSkpKiAnLS0+JworICovCitzdGF0aWMgdm9pZAoreG1sUGFyc2VDb21tZW50Q29tcGxleCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbENoYXIgKmJ1ZiwgaW50IGxlbiwgaW50IHNpemUpIHsKKyAgICBpbnQgcSwgcWw7CisgICAgaW50IHIsIHJsOworICAgIGludCBjdXIsIGw7CisgICAgaW50IGNvdW50ID0gMDsKKyAgICBpbnQgaW5wdXRpZDsKKworICAgIGlucHV0aWQgPSBjdHh0LT5pbnB1dC0+aWQ7CisKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyAgICAgICAgbGVuID0gMDsKKwlzaXplID0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRTsKKwlidWYgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisJaWYgKGJ1ZiA9PSBOVUxMKSB7CisJICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9CisgICAgR1JPVzsJLyogQXNzdXJlIHRoZXJlJ3MgZW5vdWdoIGlucHV0IGRhdGEgKi8KKyAgICBxID0gQ1VSX0NIQVIocWwpOworICAgIGlmIChxID09IDApCisgICAgICAgIGdvdG8gbm90X3Rlcm1pbmF0ZWQ7CisgICAgaWYgKCFJU19DSEFSKHEpKSB7CisgICAgICAgIHhtbEZhdGFsRXJyTXNnSW50KGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sUGFyc2VDb21tZW50OiBpbnZhbGlkIHhtbENoYXIgdmFsdWUgJWRcbiIsCisJICAgICAgICAgICAgICAgICAgcSk7CisJeG1sRnJlZSAoYnVmKTsKKwlyZXR1cm47CisgICAgfQorICAgIE5FWFRMKHFsKTsKKyAgICByID0gQ1VSX0NIQVIocmwpOworICAgIGlmIChyID09IDApCisgICAgICAgIGdvdG8gbm90X3Rlcm1pbmF0ZWQ7CisgICAgaWYgKCFJU19DSEFSKHIpKSB7CisgICAgICAgIHhtbEZhdGFsRXJyTXNnSW50KGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sUGFyc2VDb21tZW50OiBpbnZhbGlkIHhtbENoYXIgdmFsdWUgJWRcbiIsCisJICAgICAgICAgICAgICAgICAgcSk7CisJeG1sRnJlZSAoYnVmKTsKKwlyZXR1cm47CisgICAgfQorICAgIE5FWFRMKHJsKTsKKyAgICBjdXIgPSBDVVJfQ0hBUihsKTsKKyAgICBpZiAoY3VyID09IDApCisgICAgICAgIGdvdG8gbm90X3Rlcm1pbmF0ZWQ7CisgICAgd2hpbGUgKElTX0NIQVIoY3VyKSAmJiAvKiBjaGVja2VkICovCisgICAgICAgICAgICgoY3VyICE9ICc+JykgfHwKKwkgICAgKHIgIT0gJy0nKSB8fCAocSAhPSAnLScpKSkgeworCWlmICgociA9PSAnLScpICYmIChxID09ICctJykpIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9IWVBIRU5fSU5fQ09NTUVOVCwgTlVMTCk7CisJfQorCWlmIChsZW4gKyA1ID49IHNpemUpIHsKKwkgICAgeG1sQ2hhciAqbmV3X2J1ZjsKKwkgICAgc2l6ZSAqPSAyOworCSAgICBuZXdfYnVmID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhidWYsIHNpemUgKiBzaXplb2YoeG1sQ2hhcikpOworCSAgICBpZiAobmV3X2J1ZiA9PSBOVUxMKSB7CisJCXhtbEZyZWUgKGJ1Zik7CisJCXhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJcmV0dXJuOworCSAgICB9CisJICAgIGJ1ZiA9IG5ld19idWY7CisJfQorCUNPUFlfQlVGKHFsLGJ1ZixsZW4scSk7CisJcSA9IHI7CisJcWwgPSBybDsKKwlyID0gY3VyOworCXJsID0gbDsKKworCWNvdW50Kys7CisJaWYgKGNvdW50ID4gNTApIHsKKwkgICAgR1JPVzsKKwkgICAgY291bnQgPSAwOworCX0KKwlORVhUTChsKTsKKwljdXIgPSBDVVJfQ0hBUihsKTsKKwlpZiAoY3VyID09IDApIHsKKwkgICAgU0hSSU5LOworCSAgICBHUk9XOworCSAgICBjdXIgPSBDVVJfQ0hBUihsKTsKKwl9CisgICAgfQorICAgIGJ1ZltsZW5dID0gMDsKKyAgICBpZiAoY3VyID09IDApIHsKKwl4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0NPTU1FTlRfTk9UX0ZJTklTSEVELAorCSAgICAgICAgICAgICAgICAgICAgICJDb21tZW50IG5vdCB0ZXJtaW5hdGVkIFxuPCEtLSUuNTBzXG4iLCBidWYpOworICAgIH0gZWxzZSBpZiAoIUlTX0NIQVIoY3VyKSkgeworICAgICAgICB4bWxGYXRhbEVyck1zZ0ludChjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFBhcnNlQ29tbWVudDogaW52YWxpZCB4bWxDaGFyIHZhbHVlICVkXG4iLAorCSAgICAgICAgICAgICAgICAgIGN1cik7CisgICAgfSBlbHNlIHsKKwlpZiAoaW5wdXRpZCAhPSBjdHh0LT5pbnB1dC0+aWQpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlksCisJCSJDb21tZW50IGRvZXNuJ3Qgc3RhcnQgYW5kIHN0b3AgaW4gdGhlIHNhbWUgZW50aXR5XG4iKTsKKwl9CisgICAgICAgIE5FWFQ7CisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+Y29tbWVudCAhPSBOVUxMKSAmJgorCSAgICAoIWN0eHQtPmRpc2FibGVTQVgpKQorCSAgICBjdHh0LT5zYXgtPmNvbW1lbnQoY3R4dC0+dXNlckRhdGEsIGJ1Zik7CisgICAgfQorICAgIHhtbEZyZWUoYnVmKTsKKyAgICByZXR1cm47Citub3RfdGVybWluYXRlZDoKKyAgICB4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0NPTU1FTlRfTk9UX0ZJTklTSEVELAorCQkJICJDb21tZW50IG5vdCB0ZXJtaW5hdGVkXG4iLCBOVUxMKTsKKyAgICB4bWxGcmVlKGJ1Zik7CisgICAgcmV0dXJuOworfQorCisvKioKKyAqIHhtbFBhcnNlQ29tbWVudDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogU2tpcCBhbiBYTUwgKFNHTUwpIGNvbW1lbnQgPCEtLSAuLi4uIC0tPgorICogIFRoZSBzcGVjIHNheXMgdGhhdCAiRm9yIGNvbXBhdGliaWxpdHksIHRoZSBzdHJpbmcgIi0tIiAoZG91YmxlLWh5cGhlbikKKyAqICBtdXN0IG5vdCBvY2N1ciB3aXRoaW4gY29tbWVudHMuICIKKyAqCisgKiBbMTVdIENvbW1lbnQgOjo9ICc8IS0tJyAoKENoYXIgLSAnLScpIHwgKCctJyAoQ2hhciAtICctJykpKSogJy0tPicKKyAqLwordm9pZAoreG1sUGFyc2VDb21tZW50KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgKmJ1ZiA9IE5VTEw7CisgICAgaW50IHNpemUgPSBYTUxfUEFSU0VSX0JVRkZFUl9TSVpFOworICAgIGludCBsZW4gPSAwOworICAgIHhtbFBhcnNlcklucHV0U3RhdGUgc3RhdGU7CisgICAgY29uc3QgeG1sQ2hhciAqaW47CisgICAgaW50IG5iY2hhciA9IDAsIGNjb2w7CisgICAgaW50IGlucHV0aWQ7CisKKyAgICAvKgorICAgICAqIENoZWNrIHRoYXQgdGhlcmUgaXMgYSBjb21tZW50IHJpZ2h0IGhlcmUuCisgICAgICovCisgICAgaWYgKChSQVcgIT0gJzwnKSB8fCAoTlhUKDEpICE9ICchJykgfHwKKyAgICAgICAgKE5YVCgyKSAhPSAnLScpIHx8IChOWFQoMykgIT0gJy0nKSkgcmV0dXJuOworICAgIHN0YXRlID0gY3R4dC0+aW5zdGF0ZTsKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT01NRU5UOworICAgIGlucHV0aWQgPSBjdHh0LT5pbnB1dC0+aWQ7CisgICAgU0tJUCg0KTsKKyAgICBTSFJJTks7CisgICAgR1JPVzsKKworICAgIC8qCisgICAgICogQWNjZWxlcmF0ZWQgY29tbW9uIGNhc2Ugd2hlcmUgaW5wdXQgZG9uJ3QgbmVlZCB0byBiZQorICAgICAqIG1vZGlmaWVkIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHRoZSBoYW5kbGVyLgorICAgICAqLworICAgIGluID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICBkbyB7CisJaWYgKCppbiA9PSAweEEpIHsKKwkgICAgZG8geworCQljdHh0LT5pbnB1dC0+bGluZSsrOyBjdHh0LT5pbnB1dC0+Y29sID0gMTsKKwkJaW4rKzsKKwkgICAgfSB3aGlsZSAoKmluID09IDB4QSk7CisJfQorZ2V0X21vcmU6CisgICAgICAgIGNjb2wgPSBjdHh0LT5pbnB1dC0+Y29sOworCXdoaWxlICgoKCppbiA+ICctJykgJiYgKCppbiA8PSAweDdGKSkgfHwKKwkgICAgICAgKCgqaW4gPj0gMHgyMCkgJiYgKCppbiA8ICctJykpIHx8CisJICAgICAgICgqaW4gPT0gMHgwOSkpIHsKKwkJICAgIGluKys7CisJCSAgICBjY29sKys7CisJfQorCWN0eHQtPmlucHV0LT5jb2wgPSBjY29sOworCWlmICgqaW4gPT0gMHhBKSB7CisJICAgIGRvIHsKKwkJY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CisJCWluKys7CisJICAgIH0gd2hpbGUgKCppbiA9PSAweEEpOworCSAgICBnb3RvIGdldF9tb3JlOworCX0KKwluYmNoYXIgPSBpbiAtIGN0eHQtPmlucHV0LT5jdXI7CisJLyoKKwkgKiBzYXZlIGN1cnJlbnQgc2V0IG9mIGRhdGEKKwkgKi8KKwlpZiAobmJjaGFyID4gMCkgeworCSAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorCQkoY3R4dC0+c2F4LT5jb21tZW50ICE9IE5VTEwpKSB7CisJCWlmIChidWYgPT0gTlVMTCkgeworCQkgICAgaWYgKCgqaW4gPT0gJy0nKSAmJiAoaW5bMV0gPT0gJy0nKSkKKwkJICAgICAgICBzaXplID0gbmJjaGFyICsgMTsKKwkJICAgIGVsc2UKKwkJICAgICAgICBzaXplID0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRSArIG5iY2hhcjsKKwkJICAgIGJ1ZiA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKwkJICAgIGlmIChidWYgPT0gTlVMTCkgeworCQkgICAgICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJCWN0eHQtPmluc3RhdGUgPSBzdGF0ZTsKKwkJCXJldHVybjsKKwkJICAgIH0KKwkJICAgIGxlbiA9IDA7CisJCX0gZWxzZSBpZiAobGVuICsgbmJjaGFyICsgMSA+PSBzaXplKSB7CisJCSAgICB4bWxDaGFyICpuZXdfYnVmOworCQkgICAgc2l6ZSAgKz0gbGVuICsgbmJjaGFyICsgWE1MX1BBUlNFUl9CVUZGRVJfU0laRTsKKwkJICAgIG5ld19idWYgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1ZiwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKG5ld19idWYgPT0gTlVMTCkgeworCQkgICAgICAgIHhtbEZyZWUgKGJ1Zik7CisJCQl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCQljdHh0LT5pbnN0YXRlID0gc3RhdGU7CisJCQlyZXR1cm47CisJCSAgICB9CisJCSAgICBidWYgPSBuZXdfYnVmOworCQl9CisJCW1lbWNweSgmYnVmW2xlbl0sIGN0eHQtPmlucHV0LT5jdXIsIG5iY2hhcik7CisJCWxlbiArPSBuYmNoYXI7CisJCWJ1ZltsZW5dID0gMDsKKwkgICAgfQorCX0KKwljdHh0LT5pbnB1dC0+Y3VyID0gaW47CisJaWYgKCppbiA9PSAweEEpIHsKKwkgICAgaW4rKzsKKwkgICAgY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CisJfQorCWlmICgqaW4gPT0gMHhEKSB7CisJICAgIGluKys7CisJICAgIGlmICgqaW4gPT0gMHhBKSB7CisJCWN0eHQtPmlucHV0LT5jdXIgPSBpbjsKKwkJaW4rKzsKKwkJY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CisJCWNvbnRpbnVlOyAvKiB3aGlsZSAqLworCSAgICB9CisJICAgIGluLS07CisJfQorCVNIUklOSzsKKwlHUk9XOworCWluID0gY3R4dC0+aW5wdXQtPmN1cjsKKwlpZiAoKmluID09ICctJykgeworCSAgICBpZiAoaW5bMV0gPT0gJy0nKSB7CisJICAgICAgICBpZiAoaW5bMl0gPT0gJz4nKSB7CisJCSAgICBpZiAoY3R4dC0+aW5wdXQtPmlkICE9IGlucHV0aWQpIHsKKwkJCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfRU5USVRZX0JPVU5EQVJZLAorCQkJImNvbW1lbnQgZG9lc24ndCBzdGFydCBhbmQgc3RvcCBpbiB0aGUgc2FtZSBlbnRpdHlcbiIpOworCQkgICAgfQorCQkgICAgU0tJUCgzKTsKKwkJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmNvbW1lbnQgIT0gTlVMTCkgJiYKKwkJICAgICAgICAoIWN0eHQtPmRpc2FibGVTQVgpKSB7CisJCQlpZiAoYnVmICE9IE5VTEwpCisJCQkgICAgY3R4dC0+c2F4LT5jb21tZW50KGN0eHQtPnVzZXJEYXRhLCBidWYpOworCQkJZWxzZQorCQkJICAgIGN0eHQtPnNheC0+Y29tbWVudChjdHh0LT51c2VyRGF0YSwgQkFEX0NBU1QgIiIpOworCQkgICAgfQorCQkgICAgaWYgKGJ1ZiAhPSBOVUxMKQorCQkgICAgICAgIHhtbEZyZWUoYnVmKTsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBzdGF0ZTsKKwkJICAgIHJldHVybjsKKwkJfQorCQlpZiAoYnVmICE9IE5VTEwpCisJCSAgICB4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0NPTU1FTlRfTk9UX0ZJTklTSEVELAorCQkgICAgICAgICAgICAgICAgICAgICAgIkNvbW1lbnQgbm90IHRlcm1pbmF0ZWQgXG48IS0tJS41MHNcbiIsCisJCQkJICAgICAgYnVmKTsKKwkJZWxzZQorCQkgICAgeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9DT01NRU5UX05PVF9GSU5JU0hFRCwKKwkJICAgICAgICAgICAgICAgICAgICAgICJDb21tZW50IG5vdCB0ZXJtaW5hdGVkIFxuIiwgTlVMTCk7CisJCWluKys7CisJCWN0eHQtPmlucHV0LT5jb2wrKzsKKwkgICAgfQorCSAgICBpbisrOworCSAgICBjdHh0LT5pbnB1dC0+Y29sKys7CisJICAgIGdvdG8gZ2V0X21vcmU7CisJfQorICAgIH0gd2hpbGUgKCgoKmluID49IDB4MjApICYmICgqaW4gPD0gMHg3RikpIHx8ICgqaW4gPT0gMHgwOSkpOworICAgIHhtbFBhcnNlQ29tbWVudENvbXBsZXgoY3R4dCwgYnVmLCBsZW4sIHNpemUpOworICAgIGN0eHQtPmluc3RhdGUgPSBzdGF0ZTsKKyAgICByZXR1cm47Cit9CisKKworLyoqCisgKiB4bWxQYXJzZVBJVGFyZ2V0OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIAorICogcGFyc2UgdGhlIG5hbWUgb2YgYSBQSQorICoKKyAqIFsxN10gUElUYXJnZXQgOjo9IE5hbWUgLSAoKCdYJyB8ICd4JykgKCdNJyB8ICdtJykgKCdMJyB8ICdsJykpCisgKgorICogUmV0dXJucyB0aGUgUElUYXJnZXQgbmFtZSBvciBOVUxMCisgKi8KKworY29uc3QgeG1sQ2hhciAqCit4bWxQYXJzZVBJVGFyZ2V0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisKKyAgICBuYW1lID0geG1sUGFyc2VOYW1lKGN0eHQpOworICAgIGlmICgobmFtZSAhPSBOVUxMKSAmJgorICAgICAgICAoKG5hbWVbMF0gPT0gJ3gnKSB8fCAobmFtZVswXSA9PSAnWCcpKSAmJgorICAgICAgICAoKG5hbWVbMV0gPT0gJ20nKSB8fCAobmFtZVsxXSA9PSAnTScpKSAmJgorICAgICAgICAoKG5hbWVbMl0gPT0gJ2wnKSB8fCAobmFtZVsyXSA9PSAnTCcpKSkgeworCWludCBpOworCWlmICgobmFtZVswXSA9PSAneCcpICYmIChuYW1lWzFdID09ICdtJykgJiYKKwkgICAgKG5hbWVbMl0gPT0gJ2wnKSAmJiAobmFtZVszXSA9PSAwKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1JFU0VSVkVEX1hNTF9OQU1FLAorCQkgIlhNTCBkZWNsYXJhdGlvbiBhbGxvd2VkIG9ubHkgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudFxuIik7CisJICAgIHJldHVybihuYW1lKTsKKwl9IGVsc2UgaWYgKG5hbWVbM10gPT0gMCkgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1JFU0VSVkVEX1hNTF9OQU1FLCBOVUxMKTsKKwkgICAgcmV0dXJuKG5hbWUpOworCX0KKwlmb3IgKGkgPSAwOztpKyspIHsKKwkgICAgaWYgKHhtbFczQ1BJc1tpXSA9PSBOVUxMKSBicmVhazsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIChjb25zdCB4bWxDaGFyICopeG1sVzNDUElzW2ldKSkKKwkgICAgICAgIHJldHVybihuYW1lKTsKKwl9CisJeG1sV2FybmluZ01zZyhjdHh0LCBYTUxfRVJSX1JFU0VSVkVEX1hNTF9OQU1FLAorCQkgICAgICAieG1sUGFyc2VQSVRhcmdldDogaW52YWxpZCBuYW1lIHByZWZpeCAneG1sJ1xuIiwKKwkJICAgICAgTlVMTCwgTlVMTCk7CisgICAgfQorICAgIGlmICgobmFtZSAhPSBOVUxMKSAmJiAoeG1sU3RyY2hyKG5hbWUsICc6JykgIT0gTlVMTCkpIHsKKwl4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX0NPTE9OLCAKKwkJICJjb2xvbiBhcmUgZm9yYmlkZGVuIGZyb20gUEkgbmFtZXMgJyVzJ1xuIiwgbmFtZSwgTlVMTCwgTlVMTCk7CisgICAgfQorICAgIHJldHVybihuYW1lKTsKK30KKworI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKy8qKgorICogeG1sUGFyc2VDYXRhbG9nUEk6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGNhdGFsb2c6ICB0aGUgUEkgdmFsdWUgc3RyaW5nCisgKiAKKyAqIHBhcnNlIGFuIFhNTCBDYXRhbG9nIFByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb24uCisgKgorICogPD9vYXNpcy14bWwtY2F0YWxvZyBjYXRhbG9nPSJodHRwOi8vZXhhbXBsZS5jb20vY2F0YWxvZy54bWwiPz4KKyAqCisgKiBPY2N1cnMgb25seSBpZiBhbGxvd2VkIGJ5IHRoZSB1c2VyIGFuZCBpZiBoYXBwZW5pbmcgaW4gdGhlIE1pc2MKKyAqIHBhcnQgb2YgdGhlIGRvY3VtZW50IGJlZm9yZSBhbnkgZG9jdHlwZSBpbmZvcm1hdGlvbnMKKyAqIFRoaXMgd2lsbCBhZGQgdGhlIGdpdmVuIGNhdGFsb2cgdG8gdGhlIHBhcnNpbmcgY29udGV4dCBpbiBvcmRlcgorICogdG8gYmUgdXNlZCBpZiB0aGVyZSBpcyBhIHJlc29sdXRpb24gbmVlZCBmdXJ0aGVyIGRvd24gaW4gdGhlIGRvY3VtZW50CisgKi8KKworc3RhdGljIHZvaWQKK3htbFBhcnNlQ2F0YWxvZ1BJKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqY2F0YWxvZykgeworICAgIHhtbENoYXIgKlVSTCA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqdG1wLCAqYmFzZTsKKyAgICB4bWxDaGFyIG1hcmtlcjsKKworICAgIHRtcCA9IGNhdGFsb2c7CisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCp0bXApKSB0bXArKzsKKyAgICBpZiAoeG1sU3RybmNtcCh0bXAsIEJBRF9DQVNUImNhdGFsb2ciLCA3KSkKKwlnb3RvIGVycm9yOworICAgIHRtcCArPSA3OworICAgIHdoaWxlIChJU19CTEFOS19DSCgqdG1wKSkgdG1wKys7CisgICAgaWYgKCp0bXAgIT0gJz0nKSB7CisJcmV0dXJuOworICAgIH0KKyAgICB0bXArKzsKKyAgICB3aGlsZSAoSVNfQkxBTktfQ0goKnRtcCkpIHRtcCsrOworICAgIG1hcmtlciA9ICp0bXA7CisgICAgaWYgKChtYXJrZXIgIT0gJ1wnJykgJiYgKG1hcmtlciAhPSAnIicpKQorCWdvdG8gZXJyb3I7CisgICAgdG1wKys7CisgICAgYmFzZSA9IHRtcDsKKyAgICB3aGlsZSAoKCp0bXAgIT0gMCkgJiYgKCp0bXAgIT0gbWFya2VyKSkgdG1wKys7CisgICAgaWYgKCp0bXAgPT0gMCkKKwlnb3RvIGVycm9yOworICAgIFVSTCA9IHhtbFN0cm5kdXAoYmFzZSwgdG1wIC0gYmFzZSk7CisgICAgdG1wKys7CisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCp0bXApKSB0bXArKzsKKyAgICBpZiAoKnRtcCAhPSAwKQorCWdvdG8gZXJyb3I7CisKKyAgICBpZiAoVVJMICE9IE5VTEwpIHsKKwljdHh0LT5jYXRhbG9ncyA9IHhtbENhdGFsb2dBZGRMb2NhbChjdHh0LT5jYXRhbG9ncywgVVJMKTsKKwl4bWxGcmVlKFVSTCk7CisgICAgfQorICAgIHJldHVybjsKKworZXJyb3I6CisgICAgeG1sV2FybmluZ01zZyhjdHh0LCBYTUxfV0FSX0NBVEFMT0dfUEksCisJICAgICAgICAgICJDYXRhbG9nIFBJIHN5bnRheCBlcnJvcjogJXNcbiIsCisJCSAgY2F0YWxvZywgTlVMTCk7CisgICAgaWYgKFVSTCAhPSBOVUxMKQorCXhtbEZyZWUoVVJMKTsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbFBhcnNlUEk6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogCisgKiBwYXJzZSBhbiBYTUwgUHJvY2Vzc2luZyBJbnN0cnVjdGlvbi4KKyAqCisgKiBbMTZdIFBJIDo6PSAnPD8nIFBJVGFyZ2V0IChTIChDaGFyKiAtIChDaGFyKiAnPz4nIENoYXIqKSkpPyAnPz4nCisgKgorICogVGhlIHByb2Nlc3NpbmcgaXMgdHJhbnNmZXJlZCB0byBTQVggb25jZSBwYXJzZWQuCisgKi8KKwordm9pZAoreG1sUGFyc2VQSSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpidWYgPSBOVUxMOworICAgIGludCBsZW4gPSAwOworICAgIGludCBzaXplID0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRTsKKyAgICBpbnQgY3VyLCBsOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldDsKKyAgICB4bWxQYXJzZXJJbnB1dFN0YXRlIHN0YXRlOworICAgIGludCBjb3VudCA9IDA7CisKKyAgICBpZiAoKFJBVyA9PSAnPCcpICYmIChOWFQoMSkgPT0gJz8nKSkgeworCXhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gY3R4dC0+aW5wdXQ7CisJc3RhdGUgPSBjdHh0LT5pbnN0YXRlOworICAgICAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9QSTsKKwkvKgorCSAqIHRoaXMgaXMgYSBQcm9jZXNzaW5nIEluc3RydWN0aW9uLgorCSAqLworCVNLSVAoMik7CisJU0hSSU5LOworCisJLyoKKwkgKiBQYXJzZSB0aGUgdGFyZ2V0IG5hbWUgYW5kIGNoZWNrIGZvciBzcGVjaWFsIHN1cHBvcnQgbGlrZQorCSAqIG5hbWVzcGFjZS4KKwkgKi8KKyAgICAgICAgdGFyZ2V0ID0geG1sUGFyc2VQSVRhcmdldChjdHh0KTsKKwlpZiAodGFyZ2V0ICE9IE5VTEwpIHsKKwkgICAgaWYgKChSQVcgPT0gJz8nKSAmJiAoTlhUKDEpID09ICc+JykpIHsKKwkJaWYgKGlucHV0ICE9IGN0eHQtPmlucHV0KSB7CisJCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX0VOVElUWV9CT1VOREFSWSwKKwkgICAgIlBJIGRlY2xhcmF0aW9uIGRvZXNuJ3Qgc3RhcnQgYW5kIHN0b3AgaW4gdGhlIHNhbWUgZW50aXR5XG4iKTsKKwkJfQorCQlTS0lQKDIpOworCisJCS8qCisJCSAqIFNBWDogUEkgZGV0ZWN0ZWQuCisJCSAqLworCQlpZiAoKGN0eHQtPnNheCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJgorCQkgICAgKGN0eHQtPnNheC0+cHJvY2Vzc2luZ0luc3RydWN0aW9uICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY3R4dC0+dXNlckRhdGEsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIE5VTEwpOworCQljdHh0LT5pbnN0YXRlID0gc3RhdGU7CisJCXJldHVybjsKKwkgICAgfQorCSAgICBidWYgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisJICAgIGlmIChidWYgPT0gTlVMTCkgeworCQl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCWN0eHQtPmluc3RhdGUgPSBzdGF0ZTsKKwkJcmV0dXJuOworCSAgICB9CisJICAgIGN1ciA9IENVUjsKKwkgICAgaWYgKCFJU19CTEFOSyhjdXIpKSB7CisJCXhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCisJCQkgICJQYXJzZVBJOiBQSSAlcyBzcGFjZSBleHBlY3RlZFxuIiwgdGFyZ2V0KTsKKwkgICAgfQorICAgICAgICAgICAgU0tJUF9CTEFOS1M7CisJICAgIGN1ciA9IENVUl9DSEFSKGwpOworCSAgICB3aGlsZSAoSVNfQ0hBUihjdXIpICYmIC8qIGNoZWNrZWQgKi8KKwkJICAgKChjdXIgIT0gJz8nKSB8fCAoTlhUKDEpICE9ICc+JykpKSB7CisJCWlmIChsZW4gKyA1ID49IHNpemUpIHsKKwkJICAgIHhtbENoYXIgKnRtcDsKKworCQkgICAgc2l6ZSAqPSAyOworCQkgICAgdG1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhidWYsIHNpemUgKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCQl4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCQl4bWxGcmVlKGJ1Zik7CisJCQljdHh0LT5pbnN0YXRlID0gc3RhdGU7CisJCQlyZXR1cm47CisJCSAgICB9CisJCSAgICBidWYgPSB0bXA7CisJCX0KKwkJY291bnQrKzsKKwkJaWYgKGNvdW50ID4gNTApIHsKKwkJICAgIEdST1c7CisJCSAgICBjb3VudCA9IDA7CisJCX0KKwkJQ09QWV9CVUYobCxidWYsbGVuLGN1cik7CisJCU5FWFRMKGwpOworCQljdXIgPSBDVVJfQ0hBUihsKTsKKwkJaWYgKGN1ciA9PSAwKSB7CisJCSAgICBTSFJJTks7CisJCSAgICBHUk9XOworCQkgICAgY3VyID0gQ1VSX0NIQVIobCk7CisJCX0KKwkgICAgfQorCSAgICBidWZbbGVuXSA9IDA7CisJICAgIGlmIChjdXIgIT0gJz8nKSB7CisJCXhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfUElfTk9UX0ZJTklTSEVELAorCQkgICAgICAiUGFyc2VQSTogUEkgJXMgbmV2ZXIgZW5kIC4uLlxuIiwgdGFyZ2V0KTsKKwkgICAgfSBlbHNlIHsKKwkJaWYgKGlucHV0ICE9IGN0eHQtPmlucHV0KSB7CisJCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCSAgICAiUEkgZGVjbGFyYXRpb24gZG9lc24ndCBzdGFydCBhbmQgc3RvcCBpbiB0aGUgc2FtZSBlbnRpdHlcbiIpOworCQl9CisJCVNLSVAoMik7CisKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECisJCWlmICgoKHN0YXRlID09IFhNTF9QQVJTRVJfTUlTQykgfHwKKwkgICAgICAgICAgICAgKHN0YXRlID09IFhNTF9QQVJTRVJfU1RBUlQpKSAmJgorCQkgICAgKHhtbFN0ckVxdWFsKHRhcmdldCwgWE1MX0NBVEFMT0dfUEkpKSkgeworCQkgICAgeG1sQ2F0YWxvZ0FsbG93IGFsbG93ID0geG1sQ2F0YWxvZ0dldERlZmF1bHRzKCk7CisJCSAgICBpZiAoKGFsbG93ID09IFhNTF9DQVRBX0FMTE9XX0RPQ1VNRU5UKSB8fAorCQkJKGFsbG93ID09IFhNTF9DQVRBX0FMTE9XX0FMTCkpCisJCQl4bWxQYXJzZUNhdGFsb2dQSShjdHh0LCBidWYpOworCQl9CisjZW5kaWYKKworCisJCS8qCisJCSAqIFNBWDogUEkgZGV0ZWN0ZWQuCisJCSAqLworCQlpZiAoKGN0eHQtPnNheCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJgorCQkgICAgKGN0eHQtPnNheC0+cHJvY2Vzc2luZ0luc3RydWN0aW9uICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY3R4dC0+dXNlckRhdGEsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIGJ1Zik7CisJICAgIH0KKwkgICAgeG1sRnJlZShidWYpOworCX0gZWxzZSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfUElfTk9UX1NUQVJURUQsIE5VTEwpOworCX0KKwljdHh0LT5pbnN0YXRlID0gc3RhdGU7CisgICAgfQorfQorCisvKioKKyAqIHhtbFBhcnNlTm90YXRpb25EZWNsOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uCisgKgorICogWzgyXSBOb3RhdGlvbkRlY2wgOjo9ICc8IU5PVEFUSU9OJyBTIE5hbWUgUyAoRXh0ZXJuYWxJRCB8ICBQdWJsaWNJRCkgUz8gJz4nCisgKgorICogSGVuY2UgdGhlcmUgaXMgYWN0dWFsbHkgMyBjaG9pY2VzOgorICogICAgICdQVUJMSUMnIFMgUHViaWRMaXRlcmFsCisgKiAgICAgJ1BVQkxJQycgUyBQdWJpZExpdGVyYWwgUyBTeXN0ZW1MaXRlcmFsCisgKiBhbmQgJ1NZU1RFTScgUyBTeXN0ZW1MaXRlcmFsCisgKgorICogU2VlIHRoZSBOT1RFIG9uIHhtbFBhcnNlRXh0ZXJuYWxJRCgpLgorICovCisKK3ZvaWQKK3htbFBhcnNlTm90YXRpb25EZWNsKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgeG1sQ2hhciAqUHViaWQ7CisgICAgeG1sQ2hhciAqU3lzdGVtaWQ7CisgICAgCisgICAgaWYgKENNUDEwKENVUl9QVFIsICc8JywgJyEnLCAnTicsICdPJywgJ1QnLCAnQScsICdUJywgJ0knLCAnTycsICdOJykpIHsKKwl4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCA9IGN0eHQtPmlucHV0OworCVNIUklOSzsKKwlTS0lQKDEwKTsKKwlpZiAoIUlTX0JMQU5LX0NIKENVUikpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJCSAgICJTcGFjZSByZXF1aXJlZCBhZnRlciAnPCFOT1RBVElPTidcbiIpOworCSAgICByZXR1cm47CisJfQorCVNLSVBfQkxBTktTOworCisgICAgICAgIG5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisJaWYgKG5hbWUgPT0gTlVMTCkgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05PVEFUSU9OX05PVF9TVEFSVEVELCBOVUxMKTsKKwkgICAgcmV0dXJuOworCX0KKwlpZiAoIUlTX0JMQU5LX0NIKENVUikpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJICAgICAiU3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhlIE5PVEFUSU9OIG5hbWUnXG4iKTsKKwkgICAgcmV0dXJuOworCX0KKwlpZiAoeG1sU3RyY2hyKG5hbWUsICc6JykgIT0gTlVMTCkgeworCSAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX0NPTE9OLCAKKwkJICAgICAiY29sb24gYXJlIGZvcmJpZGRlbiBmcm9tIG5vdGF0aW9uIG5hbWVzICclcydcbiIsCisJCSAgICAgbmFtZSwgTlVMTCwgTlVMTCk7CisJfQorCVNLSVBfQkxBTktTOworCisJLyoKKwkgKiBQYXJzZSB0aGUgSURzLgorCSAqLworCVN5c3RlbWlkID0geG1sUGFyc2VFeHRlcm5hbElEKGN0eHQsICZQdWJpZCwgMCk7CisJU0tJUF9CTEFOS1M7CisKKwlpZiAoUkFXID09ICc+JykgeworCSAgICBpZiAoaW5wdXQgIT0gY3R4dC0+aW5wdXQpIHsKKwkJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkiTm90YXRpb24gZGVjbGFyYXRpb24gZG9lc24ndCBzdGFydCBhbmQgc3RvcCBpbiB0aGUgc2FtZSBlbnRpdHlcbiIpOworCSAgICB9CisJICAgIE5FWFQ7CisJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmICghY3R4dC0+ZGlzYWJsZVNBWCkgJiYKKwkJKGN0eHQtPnNheC0+bm90YXRpb25EZWNsICE9IE5VTEwpKQorCQljdHh0LT5zYXgtPm5vdGF0aW9uRGVjbChjdHh0LT51c2VyRGF0YSwgbmFtZSwgUHViaWQsIFN5c3RlbWlkKTsKKwl9IGVsc2UgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05PVEFUSU9OX05PVF9GSU5JU0hFRCwgTlVMTCk7CisJfQorCWlmIChTeXN0ZW1pZCAhPSBOVUxMKSB4bWxGcmVlKFN5c3RlbWlkKTsKKwlpZiAoUHViaWQgIT0gTlVMTCkgeG1sRnJlZShQdWJpZCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFBhcnNlRW50aXR5RGVjbDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgPCFFTlRJVFkgZGVjbGFyYXRpb25zCisgKgorICogWzcwXSBFbnRpdHlEZWNsIDo6PSBHRURlY2wgfCBQRURlY2wKKyAqCisgKiBbNzFdIEdFRGVjbCA6Oj0gJzwhRU5USVRZJyBTIE5hbWUgUyBFbnRpdHlEZWYgUz8gJz4nCisgKgorICogWzcyXSBQRURlY2wgOjo9ICc8IUVOVElUWScgUyAnJScgUyBOYW1lIFMgUEVEZWYgUz8gJz4nCisgKgorICogWzczXSBFbnRpdHlEZWYgOjo9IEVudGl0eVZhbHVlIHwgKEV4dGVybmFsSUQgTkRhdGFEZWNsPykKKyAqCisgKiBbNzRdIFBFRGVmIDo6PSBFbnRpdHlWYWx1ZSB8IEV4dGVybmFsSUQKKyAqCisgKiBbNzZdIE5EYXRhRGVjbCA6Oj0gUyAnTkRBVEEnIFMgTmFtZQorICoKKyAqIFsgVkM6IE5vdGF0aW9uIERlY2xhcmVkIF0KKyAqIFRoZSBOYW1lIG11c3QgbWF0Y2ggdGhlIGRlY2xhcmVkIG5hbWUgb2YgYSBub3RhdGlvbi4KKyAqLworCit2b2lkCit4bWxQYXJzZUVudGl0eURlY2woeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZSA9IE5VTEw7CisgICAgeG1sQ2hhciAqdmFsdWUgPSBOVUxMOworICAgIHhtbENoYXIgKlVSSSA9IE5VTEwsICpsaXRlcmFsID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICpuZGF0YSA9IE5VTEw7CisgICAgaW50IGlzUGFyYW1ldGVyID0gMDsKKyAgICB4bWxDaGFyICpvcmlnID0gTlVMTDsKKyAgICBpbnQgc2tpcHBlZDsKKyAgICAKKyAgICAvKiBHUk9XOyBkb25lIGluIHRoZSBjYWxsZXIgKi8KKyAgICBpZiAoQ01QOChDVVJfUFRSLCAnPCcsICchJywgJ0UnLCAnTicsICdUJywgJ0knLCAnVCcsICdZJykpIHsKKwl4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCA9IGN0eHQtPmlucHV0OworCVNIUklOSzsKKwlTS0lQKDgpOworCXNraXBwZWQgPSBTS0lQX0JMQU5LUzsKKwlpZiAoc2tpcHBlZCA9PSAwKSB7CisJICAgIHhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCisJCQkgICAiU3BhY2UgcmVxdWlyZWQgYWZ0ZXIgJzwhRU5USVRZJ1xuIik7CisJfQorCisJaWYgKFJBVyA9PSAnJScpIHsKKwkgICAgTkVYVDsKKwkgICAgc2tpcHBlZCA9IFNLSVBfQkxBTktTOworCSAgICBpZiAoc2tpcHBlZCA9PSAwKSB7CisJCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCisJCQkgICAgICAgIlNwYWNlIHJlcXVpcmVkIGFmdGVyICclJ1xuIik7CisJICAgIH0KKwkgICAgaXNQYXJhbWV0ZXIgPSAxOworCX0KKworICAgICAgICBuYW1lID0geG1sUGFyc2VOYW1lKGN0eHQpOworCWlmIChuYW1lID09IE5VTEwpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9OQU1FX1JFUVVJUkVELAorCSAgICAgICAgICAgICAgICAgICAieG1sUGFyc2VFbnRpdHlEZWNsOiBubyBuYW1lXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKwl9CisJaWYgKHhtbFN0cmNocihuYW1lLCAnOicpICE9IE5VTEwpIHsKKwkgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9DT0xPTiwgCisJCSAgICAgImNvbG9uIGFyZSBmb3JiaWRkZW4gZnJvbSBlbnRpdGllcyBuYW1lcyAnJXMnXG4iLAorCQkgICAgIG5hbWUsIE5VTEwsIE5VTEwpOworCX0KKyAgICAgICAgc2tpcHBlZCA9IFNLSVBfQkxBTktTOworCWlmIChza2lwcGVkID09IDApIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJCSAgICJTcGFjZSByZXF1aXJlZCBhZnRlciB0aGUgZW50aXR5IG5hbWVcbiIpOworCX0KKworCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VOVElUWV9ERUNMOworCS8qCisJICogaGFuZGxlIHRoZSB2YXJpb3VzIGNhc2Ugb2YgZGVmaW5pdGlvbnMuLi4KKwkgKi8KKwlpZiAoaXNQYXJhbWV0ZXIpIHsKKwkgICAgaWYgKChSQVcgPT0gJyInKSB8fCAoUkFXID09ICdcJycpKSB7CisJICAgICAgICB2YWx1ZSA9IHhtbFBhcnNlRW50aXR5VmFsdWUoY3R4dCwgJm9yaWcpOworCQlpZiAodmFsdWUpIHsKKwkJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJCQkoIWN0eHQtPmRpc2FibGVTQVgpICYmIChjdHh0LT5zYXgtPmVudGl0eURlY2wgIT0gTlVMTCkpCisJCQljdHh0LT5zYXgtPmVudGl0eURlY2woY3R4dC0+dXNlckRhdGEsIG5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFksCisJCQkJICAgIE5VTEwsIE5VTEwsIHZhbHVlKTsKKwkJfQorCSAgICB9IGVsc2UgeworCSAgICAgICAgVVJJID0geG1sUGFyc2VFeHRlcm5hbElEKGN0eHQsICZsaXRlcmFsLCAxKTsKKwkJaWYgKChVUkkgPT0gTlVMTCkgJiYgKGxpdGVyYWwgPT0gTlVMTCkpIHsKKwkJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfVkFMVUVfUkVRVUlSRUQsIE5VTEwpOworCQl9CisJCWlmIChVUkkpIHsKKwkJICAgIHhtbFVSSVB0ciB1cmk7CisKKwkJICAgIHVyaSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopIFVSSSk7CisJCSAgICBpZiAodXJpID09IE5VTEwpIHsKKwkJICAgICAgICB4bWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9JTlZBTElEX1VSSSwKKwkJCQkgICAgICJJbnZhbGlkIFVSSTogJXNcbiIsIFVSSSk7CisJCQkvKgorCQkJICogVGhpcyByZWFsbHkgb3VnaHQgdG8gYmUgYSB3ZWxsIGZvcm1lZG5lc3MgZXJyb3IKKwkJCSAqIGJ1dCB0aGUgWE1MIENvcmUgV0cgZGVjaWRlZCBvdGhlcndpc2UgYy5mLiBpc3N1ZQorCQkJICogRTI2IG9mIHRoZSBYTUwgZXJyYXRhcy4KKwkJCSAqLworCQkgICAgfSBlbHNlIHsKKwkJCWlmICh1cmktPmZyYWdtZW50ICE9IE5VTEwpIHsKKwkJCSAgICAvKgorCQkJICAgICAqIE9rYXkgdGhpcyBpcyBmb29saXNoIHRvIGJsb2NrIHRob3NlIGJ1dCBub3QKKwkJCSAgICAgKiBpbnZhbGlkIFVSSXMuCisJCQkgICAgICovCisJCQkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9VUklfRlJBR01FTlQsIE5VTEwpOworCQkJfSBlbHNlIHsKKwkJCSAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorCQkJCSghY3R4dC0+ZGlzYWJsZVNBWCkgJiYKKwkJCQkoY3R4dC0+c2F4LT5lbnRpdHlEZWNsICE9IE5VTEwpKQorCQkJCWN0eHQtPnNheC0+ZW50aXR5RGVjbChjdHh0LT51c2VyRGF0YSwgbmFtZSwKKwkJCQkJICAgIFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZLAorCQkJCQkgICAgbGl0ZXJhbCwgVVJJLCBOVUxMKTsKKwkJCX0KKwkJCXhtbEZyZWVVUkkodXJpKTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJfSBlbHNlIHsKKwkgICAgaWYgKChSQVcgPT0gJyInKSB8fCAoUkFXID09ICdcJycpKSB7CisJICAgICAgICB2YWx1ZSA9IHhtbFBhcnNlRW50aXR5VmFsdWUoY3R4dCwgJm9yaWcpOworCQlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorCQkgICAgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJiAoY3R4dC0+c2F4LT5lbnRpdHlEZWNsICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT5lbnRpdHlEZWNsKGN0eHQtPnVzZXJEYXRhLCBuYW1lLAorCQkJCVhNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWSwKKwkJCQlOVUxMLCBOVUxMLCB2YWx1ZSk7CisJCS8qCisJCSAqIEZvciBleHBhdCBjb21wYXRpYmlsaXR5IGluIFNBWCBtb2RlLgorCQkgKi8KKwkJaWYgKChjdHh0LT5teURvYyA9PSBOVUxMKSB8fAorCQkgICAgKHhtbFN0ckVxdWFsKGN0eHQtPm15RG9jLT52ZXJzaW9uLCBTQVhfQ09NUEFUX01PREUpKSkgeworCQkgICAgaWYgKGN0eHQtPm15RG9jID09IE5VTEwpIHsKKwkJCWN0eHQtPm15RG9jID0geG1sTmV3RG9jKFNBWF9DT01QQVRfTU9ERSk7CisJCQlpZiAoY3R4dC0+bXlEb2MgPT0gTlVMTCkgeworCQkJICAgIHhtbEVyck1lbW9yeShjdHh0LCAiTmV3IERvYyBmYWlsZWQiKTsKKwkJCSAgICByZXR1cm47CisJCQl9CisJCQljdHh0LT5teURvYy0+cHJvcGVydGllcyA9IFhNTF9ET0NfSU5URVJOQUw7CisJCSAgICB9CisJCSAgICBpZiAoY3R4dC0+bXlEb2MtPmludFN1YnNldCA9PSBOVUxMKQorCQkJY3R4dC0+bXlEb2MtPmludFN1YnNldCA9IHhtbE5ld0R0ZChjdHh0LT5teURvYywKKwkJCQkJICAgIEJBRF9DQVNUICJmYWtlIiwgTlVMTCwgTlVMTCk7CisKKwkJICAgIHhtbFNBWDJFbnRpdHlEZWNsKGN0eHQsIG5hbWUsIFhNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWSwKKwkJCSAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgdmFsdWUpOworCQl9CisJICAgIH0gZWxzZSB7CisJICAgICAgICBVUkkgPSB4bWxQYXJzZUV4dGVybmFsSUQoY3R4dCwgJmxpdGVyYWwsIDEpOworCQlpZiAoKFVSSSA9PSBOVUxMKSAmJiAobGl0ZXJhbCA9PSBOVUxMKSkgeworCQkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9WQUxVRV9SRVFVSVJFRCwgTlVMTCk7CisJCX0KKwkJaWYgKFVSSSkgeworCQkgICAgeG1sVVJJUHRyIHVyaTsKKworCQkgICAgdXJpID0geG1sUGFyc2VVUkkoKGNvbnN0IGNoYXIgKilVUkkpOworCQkgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisJCSAgICAgICAgeG1sRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9VUkksCisJCQkJICAgICAiSW52YWxpZCBVUkk6ICVzXG4iLCBVUkkpOworCQkJLyoKKwkJCSAqIFRoaXMgcmVhbGx5IG91Z2h0IHRvIGJlIGEgd2VsbCBmb3JtZWRuZXNzIGVycm9yCisJCQkgKiBidXQgdGhlIFhNTCBDb3JlIFdHIGRlY2lkZWQgb3RoZXJ3aXNlIGMuZi4gaXNzdWUKKwkJCSAqIEUyNiBvZiB0aGUgWE1MIGVycmF0YXMuCisJCQkgKi8KKwkJICAgIH0gZWxzZSB7CisJCQlpZiAodXJpLT5mcmFnbWVudCAhPSBOVUxMKSB7CisJCQkgICAgLyoKKwkJCSAgICAgKiBPa2F5IHRoaXMgaXMgZm9vbGlzaCB0byBibG9jayB0aG9zZSBidXQgbm90CisJCQkgICAgICogaW52YWxpZCBVUklzLgorCQkJICAgICAqLworCQkJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfVVJJX0ZSQUdNRU5ULCBOVUxMKTsKKwkJCX0KKwkJCXhtbEZyZWVVUkkodXJpKTsKKwkJICAgIH0KKwkJfQorCQlpZiAoKFJBVyAhPSAnPicpICYmICghSVNfQkxBTktfQ0goQ1VSKSkpIHsKKwkJICAgIHhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCisJCQkJICAgIlNwYWNlIHJlcXVpcmVkIGJlZm9yZSAnTkRBVEEnXG4iKTsKKwkJfQorCQlTS0lQX0JMQU5LUzsKKwkJaWYgKENNUDUoQ1VSX1BUUiwgJ04nLCAnRCcsICdBJywgJ1QnLCAnQScpKSB7CisJCSAgICBTS0lQKDUpOworCQkgICAgaWYgKCFJU19CTEFOS19DSChDVVIpKSB7CisJCQl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkJCSAgICAgICAiU3BhY2UgcmVxdWlyZWQgYWZ0ZXIgJ05EQVRBJ1xuIik7CisJCSAgICB9CisJCSAgICBTS0lQX0JMQU5LUzsKKwkJICAgIG5kYXRhID0geG1sUGFyc2VOYW1lKGN0eHQpOworCQkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJgorCQkgICAgICAgIChjdHh0LT5zYXgtPnVucGFyc2VkRW50aXR5RGVjbCAhPSBOVUxMKSkKKwkJCWN0eHQtPnNheC0+dW5wYXJzZWRFbnRpdHlEZWNsKGN0eHQtPnVzZXJEYXRhLCBuYW1lLAorCQkJCSAgICBsaXRlcmFsLCBVUkksIG5kYXRhKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJCSAgICAgICAgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJiAoY3R4dC0+c2F4LT5lbnRpdHlEZWNsICE9IE5VTEwpKQorCQkJY3R4dC0+c2F4LT5lbnRpdHlEZWNsKGN0eHQtPnVzZXJEYXRhLCBuYW1lLAorCQkJCSAgICBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZLAorCQkJCSAgICBsaXRlcmFsLCBVUkksIE5VTEwpOworCQkgICAgLyoKKwkJICAgICAqIEZvciBleHBhdCBjb21wYXRpYmlsaXR5IGluIFNBWCBtb2RlLgorCQkgICAgICogYXNzdW1pbmcgdGhlIGVudGl0eSByZXBhbGNlbWVudCB3YXMgYXNrZWQgZm9yCisJCSAgICAgKi8KKwkJICAgIGlmICgoY3R4dC0+cmVwbGFjZUVudGl0aWVzICE9IDApICYmCisJCQkoKGN0eHQtPm15RG9jID09IE5VTEwpIHx8CisJCQkoeG1sU3RyRXF1YWwoY3R4dC0+bXlEb2MtPnZlcnNpb24sIFNBWF9DT01QQVRfTU9ERSkpKSkgeworCQkJaWYgKGN0eHQtPm15RG9jID09IE5VTEwpIHsKKwkJCSAgICBjdHh0LT5teURvYyA9IHhtbE5ld0RvYyhTQVhfQ09NUEFUX01PREUpOworCQkJICAgIGlmIChjdHh0LT5teURvYyA9PSBOVUxMKSB7CisJCQkgICAgICAgIHhtbEVyck1lbW9yeShjdHh0LCAiTmV3IERvYyBmYWlsZWQiKTsKKwkJCQlyZXR1cm47CisJCQkgICAgfQorCQkJICAgIGN0eHQtPm15RG9jLT5wcm9wZXJ0aWVzID0gWE1MX0RPQ19JTlRFUk5BTDsKKwkJCX0KKworCQkJaWYgKGN0eHQtPm15RG9jLT5pbnRTdWJzZXQgPT0gTlVMTCkKKwkJCSAgICBjdHh0LT5teURvYy0+aW50U3Vic2V0ID0geG1sTmV3RHRkKGN0eHQtPm15RG9jLAorCQkJCQkJQkFEX0NBU1QgImZha2UiLCBOVUxMLCBOVUxMKTsKKwkJCXhtbFNBWDJFbnRpdHlEZWNsKGN0eHQsIG5hbWUsCisJCQkJICAgICAgICAgIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFksCisJCQkJICAgICAgICAgIGxpdGVyYWwsIFVSSSwgTlVMTCk7CisJCSAgICB9CisJCX0KKwkgICAgfQorCX0KKwlTS0lQX0JMQU5LUzsKKwlpZiAoUkFXICE9ICc+JykgeworCSAgICB4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0VOVElUWV9OT1RfRklOSVNIRUQsCisJICAgICAgICAgICAgInhtbFBhcnNlRW50aXR5RGVjbDogZW50aXR5ICVzIG5vdCB0ZXJtaW5hdGVkXG4iLCBuYW1lKTsKKwl9IGVsc2UgeworCSAgICBpZiAoaW5wdXQgIT0gY3R4dC0+aW5wdXQpIHsKKwkJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlksCisJIkVudGl0eSBkZWNsYXJhdGlvbiBkb2Vzbid0IHN0YXJ0IGFuZCBzdG9wIGluIHRoZSBzYW1lIGVudGl0eVxuIik7CisJICAgIH0KKwkgICAgTkVYVDsKKwl9CisJaWYgKG9yaWcgIT0gTlVMTCkgeworCSAgICAvKgorCSAgICAgKiBVZ2x5IG1lY2hhbmlzbSB0byBzYXZlIHRoZSByYXcgZW50aXR5IHZhbHVlLgorCSAgICAgKi8KKwkgICAgeG1sRW50aXR5UHRyIGN1ciA9IE5VTEw7CisKKwkgICAgaWYgKGlzUGFyYW1ldGVyKSB7CisJICAgICAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorCQkgICAgKGN0eHQtPnNheC0+Z2V0UGFyYW1ldGVyRW50aXR5ICE9IE5VTEwpKQorCQkgICAgY3VyID0gY3R4dC0+c2F4LT5nZXRQYXJhbWV0ZXJFbnRpdHkoY3R4dC0+dXNlckRhdGEsIG5hbWUpOworCSAgICB9IGVsc2UgeworCSAgICAgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYKKwkJICAgIChjdHh0LT5zYXgtPmdldEVudGl0eSAhPSBOVUxMKSkKKwkJICAgIGN1ciA9IGN0eHQtPnNheC0+Z2V0RW50aXR5KGN0eHQtPnVzZXJEYXRhLCBuYW1lKTsKKwkJaWYgKChjdXIgPT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJEYXRhPT1jdHh0KSkgeworCQkgICAgY3VyID0geG1sU0FYMkdldEVudGl0eShjdHh0LCBuYW1lKTsKKwkJfQorCSAgICB9CisgICAgICAgICAgICBpZiAoY3VyICE9IE5VTEwpIHsKKwkgICAgICAgIGlmIChjdXItPm9yaWcgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUob3JpZyk7CisJCWVsc2UKKwkJICAgIGN1ci0+b3JpZyA9IG9yaWc7CisJICAgIH0gZWxzZQorCQl4bWxGcmVlKG9yaWcpOworCX0KKwlpZiAodmFsdWUgIT0gTlVMTCkgeG1sRnJlZSh2YWx1ZSk7CisJaWYgKFVSSSAhPSBOVUxMKSB4bWxGcmVlKFVSSSk7CisJaWYgKGxpdGVyYWwgIT0gTlVMTCkgeG1sRnJlZShsaXRlcmFsKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sUGFyc2VEZWZhdWx0RGVjbDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAdmFsdWU6ICBSZWNlaXZlIGEgcG9zc2libGUgZml4ZWQgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZQorICoKKyAqIFBhcnNlIGFuIGF0dHJpYnV0ZSBkZWZhdWx0IGRlY2xhcmF0aW9uCisgKgorICogWzYwXSBEZWZhdWx0RGVjbCA6Oj0gJyNSRVFVSVJFRCcgfCAnI0lNUExJRUQnIHwgKCgnI0ZJWEVEJyBTKT8gQXR0VmFsdWUpCisgKgorICogWyBWQzogUmVxdWlyZWQgQXR0cmlidXRlIF0KKyAqIGlmIHRoZSBkZWZhdWx0IGRlY2xhcmF0aW9uIGlzIHRoZSBrZXl3b3JkICNSRVFVSVJFRCwgdGhlbiB0aGUKKyAqIGF0dHJpYnV0ZSBtdXN0IGJlIHNwZWNpZmllZCBmb3IgYWxsIGVsZW1lbnRzIG9mIHRoZSB0eXBlIGluIHRoZQorICogYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uCisgKgorICogWyBWQzogQXR0cmlidXRlIERlZmF1bHQgTGVnYWwgXQorICogVGhlIGRlY2xhcmVkIGRlZmF1bHQgdmFsdWUgbXVzdCBtZWV0IHRoZSBsZXhpY2FsIGNvbnN0cmFpbnRzIG9mCisgKiB0aGUgZGVjbGFyZWQgYXR0cmlidXRlIHR5cGUgYy5mLiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZURlY2woKQorICoKKyAqIFsgVkM6IEZpeGVkIEF0dHJpYnV0ZSBEZWZhdWx0IF0KKyAqIGlmIGFuIGF0dHJpYnV0ZSBoYXMgYSBkZWZhdWx0IHZhbHVlIGRlY2xhcmVkIHdpdGggdGhlICNGSVhFRAorICoga2V5d29yZCwgaW5zdGFuY2VzIG9mIHRoYXQgYXR0cmlidXRlIG11c3QgbWF0Y2ggdGhlIGRlZmF1bHQgdmFsdWUuIAorICoKKyAqIFsgV0ZDOiBObyA8IGluIEF0dHJpYnV0ZSBWYWx1ZXMgXQorICogaGFuZGxlZCBpbiB4bWxQYXJzZUF0dFZhbHVlKCkKKyAqCisgKiByZXR1cm5zOiBYTUxfQVRUUklCVVRFX05PTkUsIFhNTF9BVFRSSUJVVEVfUkVRVUlSRUQsIFhNTF9BVFRSSUJVVEVfSU1QTElFRAorICogICAgICAgICAgb3IgWE1MX0FUVFJJQlVURV9GSVhFRC4gCisgKi8KKworaW50Cit4bWxQYXJzZURlZmF1bHREZWNsKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sQ2hhciAqKnZhbHVlKSB7CisgICAgaW50IHZhbDsKKyAgICB4bWxDaGFyICpyZXQ7CisKKyAgICAqdmFsdWUgPSBOVUxMOworICAgIGlmIChDTVA5KENVUl9QVFIsICcjJywgJ1InLCAnRScsICdRJywgJ1UnLCAnSScsICdSJywgJ0UnLCAnRCcpKSB7CisJU0tJUCg5KTsKKwlyZXR1cm4oWE1MX0FUVFJJQlVURV9SRVFVSVJFRCk7CisgICAgfQorICAgIGlmIChDTVA4KENVUl9QVFIsICcjJywgJ0knLCAnTScsICdQJywgJ0wnLCAnSScsICdFJywgJ0QnKSkgeworCVNLSVAoOCk7CisJcmV0dXJuKFhNTF9BVFRSSUJVVEVfSU1QTElFRCk7CisgICAgfQorICAgIHZhbCA9IFhNTF9BVFRSSUJVVEVfTk9ORTsKKyAgICBpZiAoQ01QNihDVVJfUFRSLCAnIycsICdGJywgJ0knLCAnWCcsICdFJywgJ0QnKSkgeworCVNLSVAoNik7CisJdmFsID0gWE1MX0FUVFJJQlVURV9GSVhFRDsKKwlpZiAoIUlTX0JMQU5LX0NIKENVUikpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJCSAgICJTcGFjZSByZXF1aXJlZCBhZnRlciAnI0ZJWEVEJ1xuIik7CisJfQorCVNLSVBfQkxBTktTOworICAgIH0KKyAgICByZXQgPSB4bWxQYXJzZUF0dFZhbHVlKGN0eHQpOworICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0RURDsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxGYXRhbEVyck1zZyhjdHh0LCAoeG1sUGFyc2VyRXJyb3JzKWN0eHQtPmVyck5vLAorCQkgICAgICAgIkF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlIGRlY2xhcmF0aW9uIGVycm9yXG4iKTsKKyAgICB9IGVsc2UKKyAgICAgICAgKnZhbHVlID0gcmV0OworICAgIHJldHVybih2YWwpOworfQorCisvKioKKyAqIHhtbFBhcnNlTm90YXRpb25UeXBlOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbiBOb3RhdGlvbiBhdHRyaWJ1dGUgdHlwZS4KKyAqCisgKiBOb3RlOiB0aGUgbGVhZGluZyAnTk9UQVRJT04nIFMgcGFydCBoYXMgYWxyZWFkeSBiZWluZyBwYXJzZWQuLi4KKyAqCisgKiBbNThdIE5vdGF0aW9uVHlwZSA6Oj0gJ05PVEFUSU9OJyBTICcoJyBTPyBOYW1lIChTPyAnfCcgUz8gTmFtZSkqIFM/ICcpJworICoKKyAqIFsgVkM6IE5vdGF0aW9uIEF0dHJpYnV0ZXMgXQorICogVmFsdWVzIG9mIHRoaXMgdHlwZSBtdXN0IG1hdGNoIG9uZSBvZiB0aGUgbm90YXRpb24gbmFtZXMgaW5jbHVkZWQKKyAqIGluIHRoZSBkZWNsYXJhdGlvbjsgYWxsIG5vdGF0aW9uIG5hbWVzIGluIHRoZSBkZWNsYXJhdGlvbiBtdXN0IGJlIGRlY2xhcmVkLiAKKyAqCisgKiBSZXR1cm5zOiB0aGUgbm90YXRpb24gYXR0cmlidXRlIHRyZWUgYnVpbHQgd2hpbGUgcGFyc2luZworICovCisKK3htbEVudW1lcmF0aW9uUHRyCit4bWxQYXJzZU5vdGF0aW9uVHlwZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbEVudW1lcmF0aW9uUHRyIHJldCA9IE5VTEwsIGxhc3QgPSBOVUxMLCBjdXIsIHRtcDsKKworICAgIGlmIChSQVcgIT0gJygnKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9OT1RBVElPTl9OT1RfU1RBUlRFRCwgTlVMTCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBTSFJJTks7CisgICAgZG8geworICAgICAgICBORVhUOworCVNLSVBfQkxBTktTOworICAgICAgICBuYW1lID0geG1sUGFyc2VOYW1lKGN0eHQpOworCWlmIChuYW1lID09IE5VTEwpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9OQU1FX1JFUVVJUkVELAorCQkJICAgIk5hbWUgZXhwZWN0ZWQgaW4gTk9UQVRJT04gZGVjbGFyYXRpb25cbiIpOworICAgICAgICAgICAgeG1sRnJlZUVudW1lcmF0aW9uKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJdG1wID0gcmV0OworCXdoaWxlICh0bXAgIT0gTlVMTCkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgdG1wLT5uYW1lKSkgeworCQl4bWxWYWxpZGl0eUVycm9yKGN0eHQsIFhNTF9EVERfRFVQX1RPS0VOLAorCSAgInN0YW5kYWxvbmU6IGF0dHJpYnV0ZSBub3RhdGlvbiB2YWx1ZSB0b2tlbiAlcyBkdXBsaWNhdGVkXG4iLAorCQkJCSBuYW1lLCBOVUxMKTsKKwkJaWYgKCF4bWxEaWN0T3ducyhjdHh0LT5kaWN0LCBuYW1lKSkKKwkJICAgIHhtbEZyZWUoKHhtbENoYXIgKikgbmFtZSk7CisJCWJyZWFrOworCSAgICB9CisJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwl9CisJaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIGN1ciA9IHhtbENyZWF0ZUVudW1lcmF0aW9uKG5hbWUpOworCSAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxGcmVlRW51bWVyYXRpb24ocmV0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgICAgICAgICB9CisJICAgIGlmIChsYXN0ID09IE5VTEwpIHJldCA9IGxhc3QgPSBjdXI7CisJICAgIGVsc2UgeworCQlsYXN0LT5uZXh0ID0gY3VyOworCQlsYXN0ID0gY3VyOworCSAgICB9CisJfQorCVNLSVBfQkxBTktTOworICAgIH0gd2hpbGUgKFJBVyA9PSAnfCcpOworICAgIGlmIChSQVcgIT0gJyknKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9OT1RBVElPTl9OT1RfRklOSVNIRUQsIE5VTEwpOworICAgICAgICB4bWxGcmVlRW51bWVyYXRpb24ocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIE5FWFQ7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VFbnVtZXJhdGlvblR5cGU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIEVudW1lcmF0aW9uIGF0dHJpYnV0ZSB0eXBlLgorICoKKyAqIFs1OV0gRW51bWVyYXRpb24gOjo9ICcoJyBTPyBObXRva2VuIChTPyAnfCcgUz8gTm10b2tlbikqIFM/ICcpJworICoKKyAqIFsgVkM6IEVudW1lcmF0aW9uIF0KKyAqIFZhbHVlcyBvZiB0aGlzIHR5cGUgbXVzdCBtYXRjaCBvbmUgb2YgdGhlIE5tdG9rZW4gdG9rZW5zIGluCisgKiB0aGUgZGVjbGFyYXRpb24KKyAqCisgKiBSZXR1cm5zOiB0aGUgZW51bWVyYXRpb24gYXR0cmlidXRlIHRyZWUgYnVpbHQgd2hpbGUgcGFyc2luZworICovCisKK3htbEVudW1lcmF0aW9uUHRyCit4bWxQYXJzZUVudW1lcmF0aW9uVHlwZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIHhtbEVudW1lcmF0aW9uUHRyIHJldCA9IE5VTEwsIGxhc3QgPSBOVUxMLCBjdXIsIHRtcDsKKworICAgIGlmIChSQVcgIT0gJygnKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9BVFRMSVNUX05PVF9TVEFSVEVELCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIFNIUklOSzsKKyAgICBkbyB7CisgICAgICAgIE5FWFQ7CisJU0tJUF9CTEFOS1M7CisgICAgICAgIG5hbWUgPSB4bWxQYXJzZU5tdG9rZW4oY3R4dCk7CisJaWYgKG5hbWUgPT0gTlVMTCkgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05NVE9LRU5fUkVRVUlSRUQsIE5VTEwpOworCSAgICByZXR1cm4ocmV0KTsKKwl9CisJdG1wID0gcmV0OworCXdoaWxlICh0bXAgIT0gTlVMTCkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgdG1wLT5uYW1lKSkgeworCQl4bWxWYWxpZGl0eUVycm9yKGN0eHQsIFhNTF9EVERfRFVQX1RPS0VOLAorCSAgInN0YW5kYWxvbmU6IGF0dHJpYnV0ZSBlbnVtZXJhdGlvbiB2YWx1ZSB0b2tlbiAlcyBkdXBsaWNhdGVkXG4iLAorCQkJCSBuYW1lLCBOVUxMKTsKKwkJaWYgKCF4bWxEaWN0T3ducyhjdHh0LT5kaWN0LCBuYW1lKSkKKwkJICAgIHhtbEZyZWUobmFtZSk7CisJCWJyZWFrOworCSAgICB9CisJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwl9CisJaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIGN1ciA9IHhtbENyZWF0ZUVudW1lcmF0aW9uKG5hbWUpOworCSAgICBpZiAoIXhtbERpY3RPd25zKGN0eHQtPmRpY3QsIG5hbWUpKQorCQl4bWxGcmVlKG5hbWUpOworCSAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxGcmVlRW51bWVyYXRpb24ocmV0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgICAgICAgICB9CisJICAgIGlmIChsYXN0ID09IE5VTEwpIHJldCA9IGxhc3QgPSBjdXI7CisJICAgIGVsc2UgeworCQlsYXN0LT5uZXh0ID0gY3VyOworCQlsYXN0ID0gY3VyOworCSAgICB9CisJfQorCVNLSVBfQkxBTktTOworICAgIH0gd2hpbGUgKFJBVyA9PSAnfCcpOworICAgIGlmIChSQVcgIT0gJyknKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9BVFRMSVNUX05PVF9GSU5JU0hFRCwgTlVMTCk7CisJcmV0dXJuKHJldCk7CisgICAgfQorICAgIE5FWFQ7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VFbnVtZXJhdGVkVHlwZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAdHJlZTogIHRoZSBlbnVtZXJhdGlvbiB0cmVlIGJ1aWx0IHdoaWxlIHBhcnNpbmcKKyAqCisgKiBwYXJzZSBhbiBFbnVtZXJhdGVkIGF0dHJpYnV0ZSB0eXBlLgorICoKKyAqIFs1N10gRW51bWVyYXRlZFR5cGUgOjo9IE5vdGF0aW9uVHlwZSB8IEVudW1lcmF0aW9uCisgKgorICogWzU4XSBOb3RhdGlvblR5cGUgOjo9ICdOT1RBVElPTicgUyAnKCcgUz8gTmFtZSAoUz8gJ3wnIFM/IE5hbWUpKiBTPyAnKScKKyAqCisgKgorICogUmV0dXJuczogWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTiBvciBYTUxfQVRUUklCVVRFX05PVEFUSU9OCisgKi8KKworaW50Cit4bWxQYXJzZUVudW1lcmF0ZWRUeXBlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sRW51bWVyYXRpb25QdHIgKnRyZWUpIHsKKyAgICBpZiAoQ01QOChDVVJfUFRSLCAnTicsICdPJywgJ1QnLCAnQScsICdUJywgJ0knLCAnTycsICdOJykpIHsKKwlTS0lQKDgpOworCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkJICAgIlNwYWNlIHJlcXVpcmVkIGFmdGVyICdOT1RBVElPTidcbiIpOworCSAgICByZXR1cm4oMCk7CisJfQorICAgICAgICBTS0lQX0JMQU5LUzsKKwkqdHJlZSA9IHhtbFBhcnNlTm90YXRpb25UeXBlKGN0eHQpOworCWlmICgqdHJlZSA9PSBOVUxMKSByZXR1cm4oMCk7CisJcmV0dXJuKFhNTF9BVFRSSUJVVEVfTk9UQVRJT04pOworICAgIH0KKyAgICAqdHJlZSA9IHhtbFBhcnNlRW51bWVyYXRpb25UeXBlKGN0eHQpOworICAgIGlmICgqdHJlZSA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgcmV0dXJuKFhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT04pOworfQorCisvKioKKyAqIHhtbFBhcnNlQXR0cmlidXRlVHlwZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAdHJlZTogIHRoZSBlbnVtZXJhdGlvbiB0cmVlIGJ1aWx0IHdoaWxlIHBhcnNpbmcKKyAqCisgKiBwYXJzZSB0aGUgQXR0cmlidXRlIGxpc3QgZGVmIGZvciBhbiBlbGVtZW50CisgKgorICogWzU0XSBBdHRUeXBlIDo6PSBTdHJpbmdUeXBlIHwgVG9rZW5pemVkVHlwZSB8IEVudW1lcmF0ZWRUeXBlCisgKgorICogWzU1XSBTdHJpbmdUeXBlIDo6PSAnQ0RBVEEnCisgKgorICogWzU2XSBUb2tlbml6ZWRUeXBlIDo6PSAnSUQnIHwgJ0lEUkVGJyB8ICdJRFJFRlMnIHwgJ0VOVElUWScgfAorICogICAgICAgICAgICAgICAgICAgICAgICAnRU5USVRJRVMnIHwgJ05NVE9LRU4nIHwgJ05NVE9LRU5TJworICoKKyAqIFZhbGlkaXR5IGNvbnN0cmFpbnRzIGZvciBhdHRyaWJ1dGUgdmFsdWVzIHN5bnRheCBhcmUgY2hlY2tlZCBpbgorICogeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSgpCisgKgorICogWyBWQzogSUQgXQorICogVmFsdWVzIG9mIHR5cGUgSUQgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLiBBIG5hbWUgbXVzdCBub3QKKyAqIGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiBhbiBYTUwgZG9jdW1lbnQgYXMgYSB2YWx1ZSBvZiB0aGlzIHR5cGU7CisgKiBpLmUuLCBJRCB2YWx1ZXMgbXVzdCB1bmlxdWVseSBpZGVudGlmeSB0aGUgZWxlbWVudHMgd2hpY2ggYmVhciB0aGVtLgorICoKKyAqIFsgVkM6IE9uZSBJRCBwZXIgRWxlbWVudCBUeXBlIF0KKyAqIE5vIGVsZW1lbnQgdHlwZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIElEIGF0dHJpYnV0ZSBzcGVjaWZpZWQuCisgKgorICogWyBWQzogSUQgQXR0cmlidXRlIERlZmF1bHQgXQorICogQW4gSUQgYXR0cmlidXRlIG11c3QgaGF2ZSBhIGRlY2xhcmVkIGRlZmF1bHQgb2YgI0lNUExJRUQgb3IgI1JFUVVJUkVELgorICoKKyAqIFsgVkM6IElEUkVGIF0KKyAqIFZhbHVlcyBvZiB0eXBlIElEUkVGIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgYW5kIHZhbHVlcworICogb2YgdHlwZSBJRFJFRlMgbXVzdCBtYXRjaCBOYW1lczsgZWFjaCBJRFJFRiBOYW1lIG11c3QgbWF0Y2ggdGhlIHZhbHVlCisgKiBvZiBhbiBJRCBhdHRyaWJ1dGUgb24gc29tZSBlbGVtZW50IGluIHRoZSBYTUwgZG9jdW1lbnQ7IGkuZS4gSURSRUYKKyAqIHZhbHVlcyBtdXN0IG1hdGNoIHRoZSB2YWx1ZSBvZiBzb21lIElEIGF0dHJpYnV0ZS4KKyAqCisgKiBbIFZDOiBFbnRpdHkgTmFtZSBdCisgKiBWYWx1ZXMgb2YgdHlwZSBFTlRJVFkgbXVzdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCB2YWx1ZXMKKyAqIG9mIHR5cGUgRU5USVRJRVMgbXVzdCBtYXRjaCBOYW1lczsgZWFjaCBFbnRpdHkgTmFtZSBtdXN0IG1hdGNoIHRoZQorICogbmFtZSBvZiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyZWQgaW4gdGhlIERURC4gIAorICoKKyAqIFsgVkM6IE5hbWUgVG9rZW4gXQorICogVmFsdWVzIG9mIHR5cGUgTk1UT0tFTiBtdXN0IG1hdGNoIHRoZSBObXRva2VuIHByb2R1Y3Rpb247IHZhbHVlcworICogb2YgdHlwZSBOTVRPS0VOUyBtdXN0IG1hdGNoIE5tdG9rZW5zLiAKKyAqCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgdHlwZQorICovCitpbnQgCit4bWxQYXJzZUF0dHJpYnV0ZVR5cGUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxFbnVtZXJhdGlvblB0ciAqdHJlZSkgeworICAgIFNIUklOSzsKKyAgICBpZiAoQ01QNShDVVJfUFRSLCAnQycsICdEJywgJ0EnLCAnVCcsICdBJykpIHsKKwlTS0lQKDUpOworCXJldHVybihYTUxfQVRUUklCVVRFX0NEQVRBKTsKKyAgICAgfSBlbHNlIGlmIChDTVA2KENVUl9QVFIsICdJJywgJ0QnLCAnUicsICdFJywgJ0YnLCAnUycpKSB7CisJU0tJUCg2KTsKKwlyZXR1cm4oWE1MX0FUVFJJQlVURV9JRFJFRlMpOworICAgICB9IGVsc2UgaWYgKENNUDUoQ1VSX1BUUiwgJ0knLCAnRCcsICdSJywgJ0UnLCAnRicpKSB7CisJU0tJUCg1KTsKKwlyZXR1cm4oWE1MX0FUVFJJQlVURV9JRFJFRik7CisgICAgIH0gZWxzZSBpZiAoKFJBVyA9PSAnSScpICYmIChOWFQoMSkgPT0gJ0QnKSkgeworICAgICAgICBTS0lQKDIpOworCXJldHVybihYTUxfQVRUUklCVVRFX0lEKTsKKyAgICAgfSBlbHNlIGlmIChDTVA2KENVUl9QVFIsICdFJywgJ04nLCAnVCcsICdJJywgJ1QnLCAnWScpKSB7CisJU0tJUCg2KTsKKwlyZXR1cm4oWE1MX0FUVFJJQlVURV9FTlRJVFkpOworICAgICB9IGVsc2UgaWYgKENNUDgoQ1VSX1BUUiwgJ0UnLCAnTicsICdUJywgJ0knLCAnVCcsICdJJywgJ0UnLCAnUycpKSB7CisJU0tJUCg4KTsKKwlyZXR1cm4oWE1MX0FUVFJJQlVURV9FTlRJVElFUyk7CisgICAgIH0gZWxzZSBpZiAoQ01QOChDVVJfUFRSLCAnTicsICdNJywgJ1QnLCAnTycsICdLJywgJ0UnLCAnTicsICdTJykpIHsKKwlTS0lQKDgpOworCXJldHVybihYTUxfQVRUUklCVVRFX05NVE9LRU5TKTsKKyAgICAgfSBlbHNlIGlmIChDTVA3KENVUl9QVFIsICdOJywgJ00nLCAnVCcsICdPJywgJ0snLCAnRScsICdOJykpIHsKKwlTS0lQKDcpOworCXJldHVybihYTUxfQVRUUklCVVRFX05NVE9LRU4pOworICAgICB9CisgICAgIHJldHVybih4bWxQYXJzZUVudW1lcmF0ZWRUeXBlKGN0eHQsIHRyZWUpKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiA6IHBhcnNlIHRoZSBBdHRyaWJ1dGUgbGlzdCBkZWYgZm9yIGFuIGVsZW1lbnQKKyAqCisgKiBbNTJdIEF0dGxpc3REZWNsIDo6PSAnPCFBVFRMSVNUJyBTIE5hbWUgQXR0RGVmKiBTPyAnPicKKyAqCisgKiBbNTNdIEF0dERlZiA6Oj0gUyBOYW1lIFMgQXR0VHlwZSBTIERlZmF1bHREZWNsCisgKgorICovCit2b2lkCit4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKmVsZW1OYW1lOworICAgIGNvbnN0IHhtbENoYXIgKmF0dHJOYW1lOworICAgIHhtbEVudW1lcmF0aW9uUHRyIHRyZWU7CisKKyAgICBpZiAoQ01QOShDVVJfUFRSLCAnPCcsICchJywgJ0EnLCAnVCcsICdUJywgJ0wnLCAnSScsICdTJywgJ1QnKSkgeworCXhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gY3R4dC0+aW5wdXQ7CisKKwlTS0lQKDkpOworCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkgICAgICAgICAgICAgICAgICJTcGFjZSByZXF1aXJlZCBhZnRlciAnPCFBVFRMSVNUJ1xuIik7CisJfQorICAgICAgICBTS0lQX0JMQU5LUzsKKyAgICAgICAgZWxlbU5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisJaWYgKGVsZW1OYW1lID09IE5VTEwpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9OQU1FX1JFUVVJUkVELAorCQkJICAgIkFUVExJU1Q6IG5vIG5hbWUgZm9yIEVsZW1lbnRcbiIpOworCSAgICByZXR1cm47CisJfQorCVNLSVBfQkxBTktTOworCUdST1c7CisJd2hpbGUgKFJBVyAhPSAnPicpIHsKKwkgICAgY29uc3QgeG1sQ2hhciAqY2hlY2sgPSBDVVJfUFRSOworCSAgICBpbnQgdHlwZTsKKwkgICAgaW50IGRlZjsKKwkgICAgeG1sQ2hhciAqZGVmYXVsdFZhbHVlID0gTlVMTDsKKworCSAgICBHUk9XOworICAgICAgICAgICAgdHJlZSA9IE5VTEw7CisJICAgIGF0dHJOYW1lID0geG1sUGFyc2VOYW1lKGN0eHQpOworCSAgICBpZiAoYXR0ck5hbWUgPT0gTlVMTCkgeworCQl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisJCQkgICAgICAgIkFUVExJU1Q6IG5vIG5hbWUgZm9yIEF0dHJpYnV0ZVxuIik7CisJCWJyZWFrOworCSAgICB9CisJICAgIEdST1c7CisJICAgIGlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCQl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkgICAgICAgICJTcGFjZSByZXF1aXJlZCBhZnRlciB0aGUgYXR0cmlidXRlIG5hbWVcbiIpOworCQlicmVhazsKKwkgICAgfQorCSAgICBTS0lQX0JMQU5LUzsKKworCSAgICB0eXBlID0geG1sUGFyc2VBdHRyaWJ1dGVUeXBlKGN0eHQsICZ0cmVlKTsKKwkgICAgaWYgKHR5cGUgPD0gMCkgeworCSAgICAgICAgYnJlYWs7CisJICAgIH0KKworCSAgICBHUk9XOworCSAgICBpZiAoIUlTX0JMQU5LX0NIKENVUikpIHsKKwkJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJCSAgICAgICAiU3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhlIGF0dHJpYnV0ZSB0eXBlXG4iKTsKKwkgICAgICAgIGlmICh0cmVlICE9IE5VTEwpCisJCSAgICB4bWxGcmVlRW51bWVyYXRpb24odHJlZSk7CisJCWJyZWFrOworCSAgICB9CisJICAgIFNLSVBfQkxBTktTOworCisJICAgIGRlZiA9IHhtbFBhcnNlRGVmYXVsdERlY2woY3R4dCwgJmRlZmF1bHRWYWx1ZSk7CisJICAgIGlmIChkZWYgPD0gMCkgeworICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUoZGVmYXVsdFZhbHVlKTsKKwkgICAgICAgIGlmICh0cmVlICE9IE5VTEwpCisJCSAgICB4bWxGcmVlRW51bWVyYXRpb24odHJlZSk7CisJICAgICAgICBicmVhazsKKwkgICAgfQorCSAgICBpZiAoKHR5cGUgIT0gWE1MX0FUVFJJQlVURV9DREFUQSkgJiYgKGRlZmF1bHRWYWx1ZSAhPSBOVUxMKSkKKwkgICAgICAgIHhtbEF0dHJOb3JtYWxpemVTcGFjZShkZWZhdWx0VmFsdWUsIGRlZmF1bHRWYWx1ZSk7CisKKwkgICAgR1JPVzsKKyAgICAgICAgICAgIGlmIChSQVcgIT0gJz4nKSB7CisJCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCQkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJCSJTcGFjZSByZXF1aXJlZCBhZnRlciB0aGUgYXR0cmlidXRlIGRlZmF1bHQgdmFsdWVcbiIpOworCQkgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPSBOVUxMKQorCQkJeG1sRnJlZShkZWZhdWx0VmFsdWUpOworCQkgICAgaWYgKHRyZWUgIT0gTlVMTCkKKwkJCXhtbEZyZWVFbnVtZXJhdGlvbih0cmVlKTsKKwkJICAgIGJyZWFrOworCQl9CisJCVNLSVBfQkxBTktTOworCSAgICB9CisJICAgIGlmIChjaGVjayA9PSBDVVJfUFRSKSB7CisJCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAgICAgICAgICJpbiB4bWxQYXJzZUF0dHJpYnV0ZUxpc3REZWNsXG4iKTsKKwkJaWYgKGRlZmF1bHRWYWx1ZSAhPSBOVUxMKQorCQkgICAgeG1sRnJlZShkZWZhdWx0VmFsdWUpOworCSAgICAgICAgaWYgKHRyZWUgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWVFbnVtZXJhdGlvbih0cmVlKTsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJgorCQkoY3R4dC0+c2F4LT5hdHRyaWJ1dGVEZWNsICE9IE5VTEwpKQorCQljdHh0LT5zYXgtPmF0dHJpYnV0ZURlY2woY3R4dC0+dXNlckRhdGEsIGVsZW1OYW1lLCBhdHRyTmFtZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLCBkZWYsIGRlZmF1bHRWYWx1ZSwgdHJlZSk7CisJICAgIGVsc2UgaWYgKHRyZWUgIT0gTlVMTCkKKwkJeG1sRnJlZUVudW1lcmF0aW9uKHRyZWUpOworCisJICAgIGlmICgoY3R4dC0+c2F4MikgJiYgKGRlZmF1bHRWYWx1ZSAhPSBOVUxMKSAmJgorCSAgICAgICAgKGRlZiAhPSBYTUxfQVRUUklCVVRFX0lNUExJRUQpICYmIAorCQkoZGVmICE9IFhNTF9BVFRSSUJVVEVfUkVRVUlSRUQpKSB7CisJCXhtbEFkZERlZkF0dHJzKGN0eHQsIGVsZW1OYW1lLCBhdHRyTmFtZSwgZGVmYXVsdFZhbHVlKTsKKwkgICAgfQorCSAgICBpZiAoY3R4dC0+c2F4MikgeworCQl4bWxBZGRTcGVjaWFsQXR0cihjdHh0LCBlbGVtTmFtZSwgYXR0ck5hbWUsIHR5cGUpOworCSAgICB9CisJICAgIGlmIChkZWZhdWx0VmFsdWUgIT0gTlVMTCkKKwkgICAgICAgIHhtbEZyZWUoZGVmYXVsdFZhbHVlKTsKKwkgICAgR1JPVzsKKwl9CisJaWYgKFJBVyA9PSAnPicpIHsKKwkgICAgaWYgKGlucHV0ICE9IGN0eHQtPmlucHV0KSB7CisJCXhtbFZhbGlkaXR5RXJyb3IoY3R4dCwgWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlksCisgICAgIkF0dHJpYnV0ZSBsaXN0IGRlY2xhcmF0aW9uIGRvZXNuJ3Qgc3RhcnQgYW5kIHN0b3AgaW4gdGhlIHNhbWUgZW50aXR5XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisJICAgIH0KKwkgICAgTkVYVDsKKwl9CisgICAgfQorfQorCisvKioKKyAqIHhtbFBhcnNlRWxlbWVudE1peGVkQ29udGVudERlY2w6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGlucHV0Y2hrOiAgdGhlIGlucHV0IHVzZWQgZm9yIHRoZSBjdXJyZW50IGVudGl0eSwgbmVlZGVkIGZvciBib3VuZGFyeSBjaGVja3MKKyAqCisgKiBwYXJzZSB0aGUgZGVjbGFyYXRpb24gZm9yIGEgTWl4ZWQgRWxlbWVudCBjb250ZW50CisgKiBUaGUgbGVhZGluZyAnKCcgYW5kIHNwYWNlcyBoYXZlIGJlZW4gc2tpcHBlZCBpbiB4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbAorICogCisgKiBbNTFdIE1peGVkIDo6PSAnKCcgUz8gJyNQQ0RBVEEnIChTPyAnfCcgUz8gTmFtZSkqIFM/ICcpKicgfAorICogICAgICAgICAgICAgICAgJygnIFM/ICcjUENEQVRBJyBTPyAnKScKKyAqCisgKiBbIFZDOiBQcm9wZXIgR3JvdXAvUEUgTmVzdGluZyBdIGFwcGxpZXMgdG8gWzUxXSB0b28gKHNlZSBbNDldKQorICoKKyAqIFsgVkM6IE5vIER1cGxpY2F0ZSBUeXBlcyBdCisgKiBUaGUgc2FtZSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiBhIHNpbmdsZQorICogbWl4ZWQtY29udGVudCBkZWNsYXJhdGlvbi4gCisgKgorICogcmV0dXJuczogdGhlIGxpc3Qgb2YgdGhlIHhtbEVsZW1lbnRDb250ZW50UHRyIGRlc2NyaWJpbmcgdGhlIGVsZW1lbnQgY2hvaWNlcworICovCit4bWxFbGVtZW50Q29udGVudFB0cgoreG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBpbnB1dGNoaykgeworICAgIHhtbEVsZW1lbnRDb250ZW50UHRyIHJldCA9IE5VTEwsIGN1ciA9IE5VTEwsIG47CisgICAgY29uc3QgeG1sQ2hhciAqZWxlbSA9IE5VTEw7CisKKyAgICBHUk9XOworICAgIGlmIChDTVA3KENVUl9QVFIsICcjJywgJ1AnLCAnQycsICdEJywgJ0EnLCAnVCcsICdBJykpIHsKKwlTS0lQKDcpOworCVNLSVBfQkxBTktTOworCVNIUklOSzsKKwlpZiAoUkFXID09ICcpJykgeworCSAgICBpZiAoKGN0eHQtPnZhbGlkYXRlKSAmJiAoY3R4dC0+aW5wdXQtPmlkICE9IGlucHV0Y2hrKSkgeworCQl4bWxWYWxpZGl0eUVycm9yKGN0eHQsIFhNTF9FUlJfRU5USVRZX0JPVU5EQVJZLAorIkVsZW1lbnQgY29udGVudCBkZWNsYXJhdGlvbiBkb2Vzbid0IHN0YXJ0IGFuZCBzdG9wIGluIHRoZSBzYW1lIGVudGl0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworCSAgICB9CisJICAgIE5FWFQ7CisJICAgIHJldCA9IHhtbE5ld0RvY0VsZW1lbnRDb250ZW50KGN0eHQtPm15RG9jLCBOVUxMLCBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQSk7CisJICAgIGlmIChyZXQgPT0gTlVMTCkKKwkgICAgICAgIHJldHVybihOVUxMKTsKKwkgICAgaWYgKFJBVyA9PSAnKicpIHsKKwkJcmV0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOworCQlORVhUOworCSAgICB9CisJICAgIHJldHVybihyZXQpOworCX0KKwlpZiAoKFJBVyA9PSAnKCcpIHx8IChSQVcgPT0gJ3wnKSkgeworCSAgICByZXQgPSBjdXIgPSB4bWxOZXdEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgTlVMTCwgWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEpOworCSAgICBpZiAocmV0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKwl9CisJd2hpbGUgKFJBVyA9PSAnfCcpIHsKKwkgICAgTkVYVDsKKwkgICAgaWYgKGVsZW0gPT0gTlVMTCkgeworCSAgICAgICAgcmV0ID0geG1sTmV3RG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIE5VTEwsIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpOworCQlpZiAocmV0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKwkJcmV0LT5jMSA9IGN1cjsKKwkJaWYgKGN1ciAhPSBOVUxMKQorCQkgICAgY3VyLT5wYXJlbnQgPSByZXQ7CisJCWN1ciA9IHJldDsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIG4gPSB4bWxOZXdEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgTlVMTCwgWE1MX0VMRU1FTlRfQ09OVEVOVF9PUik7CisJCWlmIChuID09IE5VTEwpIHJldHVybihOVUxMKTsKKwkJbi0+YzEgPSB4bWxOZXdEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgZWxlbSwgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKTsKKwkJaWYgKG4tPmMxICE9IE5VTEwpCisJCSAgICBuLT5jMS0+cGFyZW50ID0gbjsKKwkgICAgICAgIGN1ci0+YzIgPSBuOworCQlpZiAobiAhPSBOVUxMKQorCQkgICAgbi0+cGFyZW50ID0gY3VyOworCQljdXIgPSBuOworCSAgICB9CisJICAgIFNLSVBfQkxBTktTOworCSAgICBlbGVtID0geG1sUGFyc2VOYW1lKGN0eHQpOworCSAgICBpZiAoZWxlbSA9PSBOVUxMKSB7CisJCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkJCSJ4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsIDogTmFtZSBleHBlY3RlZFxuIik7CisJCXhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgY3VyKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIFNLSVBfQkxBTktTOworCSAgICBHUk9XOworCX0KKwlpZiAoKFJBVyA9PSAnKScpICYmIChOWFQoMSkgPT0gJyonKSkgeworCSAgICBpZiAoZWxlbSAhPSBOVUxMKSB7CisJCWN1ci0+YzIgPSB4bWxOZXdEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgZWxlbSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCk7CisJCWlmIChjdXItPmMyICE9IE5VTEwpCisJCSAgICBjdXItPmMyLT5wYXJlbnQgPSBjdXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmV0ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOworCSAgICBpZiAoKGN0eHQtPnZhbGlkYXRlKSAmJiAoY3R4dC0+aW5wdXQtPmlkICE9IGlucHV0Y2hrKSkgeworCQl4bWxWYWxpZGl0eUVycm9yKGN0eHQsIFhNTF9FUlJfRU5USVRZX0JPVU5EQVJZLAorIkVsZW1lbnQgY29udGVudCBkZWNsYXJhdGlvbiBkb2Vzbid0IHN0YXJ0IGFuZCBzdG9wIGluIHRoZSBzYW1lIGVudGl0eVxuIiwKKwkJCQkgTlVMTCwgTlVMTCk7CisJICAgIH0KKwkgICAgU0tJUCgyKTsKKwl9IGVsc2UgeworCSAgICB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIHJldCk7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTUlYRURfTk9UX1NUQVJURUQsIE5VTEwpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCisgICAgfSBlbHNlIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1BDREFUQV9SRVFVSVJFRCwgTlVMTCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2xQcml2OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBpbnB1dGNoazogIHRoZSBpbnB1dCB1c2VkIGZvciB0aGUgY3VycmVudCBlbnRpdHksIG5lZWRlZCBmb3IgYm91bmRhcnkgY2hlY2tzCisgKiBAZGVwdGg6IHRoZSBsZXZlbCBvZiByZWN1cnNpb24KKyAqCisgKiBwYXJzZSB0aGUgZGVjbGFyYXRpb24gZm9yIGEgTWl4ZWQgRWxlbWVudCBjb250ZW50CisgKiBUaGUgbGVhZGluZyAnKCcgYW5kIHNwYWNlcyBoYXZlIGJlZW4gc2tpcHBlZCBpbiB4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbAorICogCisgKgorICogWzQ3XSBjaGlsZHJlbiA6Oj0gKGNob2ljZSB8IHNlcSkgKCc/JyB8ICcqJyB8ICcrJyk/CisgKgorICogWzQ4XSBjcCA6Oj0gKE5hbWUgfCBjaG9pY2UgfCBzZXEpICgnPycgfCAnKicgfCAnKycpPworICoKKyAqIFs0OV0gY2hvaWNlIDo6PSAnKCcgUz8gY3AgKCBTPyAnfCcgUz8gY3AgKSogUz8gJyknCisgKgorICogWzUwXSBzZXEgOjo9ICcoJyBTPyBjcCAoIFM/ICcsJyBTPyBjcCApKiBTPyAnKScKKyAqCisgKiBbIFZDOiBQcm9wZXIgR3JvdXAvUEUgTmVzdGluZyBdIGFwcGxpZXMgdG8gWzQ5XSBhbmQgWzUwXQorICogVE9ETyBQYXJhbWV0ZXItZW50aXR5IHJlcGxhY2VtZW50IHRleHQgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQKKyAqCXdpdGggcGFyZW50aGVzaXplZCBncm91cHMuIFRoYXQgaXMgdG8gc2F5LCBpZiBlaXRoZXIgb2YgdGhlCisgKglvcGVuaW5nIG9yIGNsb3NpbmcgcGFyZW50aGVzZXMgaW4gYSBjaG9pY2UsIHNlcSwgb3IgTWl4ZWQKKyAqCWNvbnN0cnVjdCBpcyBjb250YWluZWQgaW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIGEgcGFyYW1ldGVyCisgKgllbnRpdHksIGJvdGggbXVzdCBiZSBjb250YWluZWQgaW4gdGhlIHNhbWUgcmVwbGFjZW1lbnQgdGV4dC4gRm9yCisgKglpbnRlcm9wZXJhYmlsaXR5LCBpZiBhIHBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlIGFwcGVhcnMgaW4gYQorICoJY2hvaWNlLCBzZXEsIG9yIE1peGVkIGNvbnN0cnVjdCwgaXRzIHJlcGxhY2VtZW50IHRleHQgc2hvdWxkIG5vdAorICoJYmUgZW1wdHksIGFuZCBuZWl0aGVyIHRoZSBmaXJzdCBub3IgbGFzdCBub24tYmxhbmsgY2hhcmFjdGVyIG9mCisgKgl0aGUgcmVwbGFjZW1lbnQgdGV4dCBzaG91bGQgYmUgYSBjb25uZWN0b3IgKHwgb3IgLCkuCisgKgorICogUmV0dXJucyB0aGUgdHJlZSBvZiB4bWxFbGVtZW50Q29udGVudFB0ciBkZXNjcmliaW5nIHRoZSBlbGVtZW50IAorICogICAgICAgICAgaGllcmFyY2h5LgorICovCitzdGF0aWMgeG1sRWxlbWVudENvbnRlbnRQdHIKK3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2xQcml2KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50IGlucHV0Y2hrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlcHRoKSB7CisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgcmV0ID0gTlVMTCwgY3VyID0gTlVMTCwgbGFzdCA9IE5VTEwsIG9wID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICplbGVtOworICAgIHhtbENoYXIgdHlwZSA9IDA7CisKKyAgICBpZiAoKChkZXB0aCA+IDEyOCkgJiYgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpID09IDApKSB8fAorICAgICAgICAoZGVwdGggPiAgMjA0OCkpIHsKKyAgICAgICAgeG1sRmF0YWxFcnJNc2dJbnQoY3R4dCwgWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQsCisieG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCA6IGRlcHRoICVkIHRvbyBkZWVwLCB1c2UgWE1MX1BBUlNFX0hVR0VcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIFNLSVBfQkxBTktTOworICAgIEdST1c7CisgICAgaWYgKFJBVyA9PSAnKCcpIHsKKwlpbnQgaW5wdXRpZCA9IGN0eHQtPmlucHV0LT5pZDsKKworICAgICAgICAvKiBSZWN1cnNlIG9uIGZpcnN0IGNoaWxkICovCisJTkVYVDsKKwlTS0lQX0JMQU5LUzsKKyAgICAgICAgY3VyID0gcmV0ID0geG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbFByaXYoY3R4dCwgaW5wdXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGggKyAxKTsKKwlTS0lQX0JMQU5LUzsKKwlHUk9XOworICAgIH0gZWxzZSB7CisJZWxlbSA9IHhtbFBhcnNlTmFtZShjdHh0KTsKKwlpZiAoZWxlbSA9PSBOVUxMKSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRUxFTUNPTlRFTlRfTk9UX1NUQVJURUQsIE5VTEwpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgICAgICBjdXIgPSByZXQgPSB4bWxOZXdEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgZWxlbSwgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKTsKKwlpZiAoY3VyID09IE5VTEwpIHsKKwkgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCUdST1c7CisJaWYgKFJBVyA9PSAnPycpIHsKKwkgICAgY3VyLT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQ7CisJICAgIE5FWFQ7CisJfSBlbHNlIGlmIChSQVcgPT0gJyonKSB7CisJICAgIGN1ci0+b2N1ciA9IFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVDsKKwkgICAgTkVYVDsKKwl9IGVsc2UgaWYgKFJBVyA9PSAnKycpIHsKKwkgICAgY3VyLT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTOworCSAgICBORVhUOworCX0gZWxzZSB7CisJICAgIGN1ci0+b2N1ciA9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRTsKKwl9CisJR1JPVzsKKyAgICB9CisgICAgU0tJUF9CTEFOS1M7CisgICAgU0hSSU5LOworICAgIHdoaWxlIChSQVcgIT0gJyknKSB7CisgICAgICAgIC8qCisJICogRWFjaCBsb29wIHdlIHBhcnNlIG9uZSBzZXBhcmF0b3IgYW5kIG9uZSBlbGVtZW50LgorCSAqLworICAgICAgICBpZiAoUkFXID09ICcsJykgeworCSAgICBpZiAodHlwZSA9PSAwKSB0eXBlID0gQ1VSOworCisJICAgIC8qCisJICAgICAqIERldGVjdCAiTmFtZSB8IE5hbWUgLCBOYW1lIiBlcnJvcgorCSAgICAgKi8KKwkgICAgZWxzZSBpZiAodHlwZSAhPSBDVVIpIHsKKwkJeG1sRmF0YWxFcnJNc2dJbnQoY3R4dCwgWE1MX0VSUl9TRVBBUkFUT1JfUkVRVUlSRUQsCisJCSAgICAieG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCA6ICclYycgZXhwZWN0ZWRcbiIsCisJCSAgICAgICAgICAgICAgICAgIHR5cGUpOworCQlpZiAoKGxhc3QgIT0gTlVMTCkgJiYgKGxhc3QgIT0gcmV0KSkKKwkJICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgbGFzdCk7CisJCWlmIChyZXQgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgcmV0KTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIE5FWFQ7CisKKwkgICAgb3AgPSB4bWxOZXdEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgTlVMTCwgWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpOworCSAgICBpZiAob3AgPT0gTlVMTCkgeworCQlpZiAoKGxhc3QgIT0gTlVMTCkgJiYgKGxhc3QgIT0gcmV0KSkKKwkJICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgbGFzdCk7CisJICAgICAgICB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIHJldCk7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBpZiAobGFzdCA9PSBOVUxMKSB7CisJCW9wLT5jMSA9IHJldDsKKwkJaWYgKHJldCAhPSBOVUxMKQorCQkgICAgcmV0LT5wYXJlbnQgPSBvcDsKKwkJcmV0ID0gY3VyID0gb3A7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBjdXItPmMyID0gb3A7CisJCWlmIChvcCAhPSBOVUxMKQorCQkgICAgb3AtPnBhcmVudCA9IGN1cjsKKwkJb3AtPmMxID0gbGFzdDsKKwkJaWYgKGxhc3QgIT0gTlVMTCkKKwkJICAgIGxhc3QtPnBhcmVudCA9IG9wOworCQljdXIgPW9wOworCQlsYXN0ID0gTlVMTDsKKwkgICAgfQorCX0gZWxzZSBpZiAoUkFXID09ICd8JykgeworCSAgICBpZiAodHlwZSA9PSAwKSB0eXBlID0gQ1VSOworCisJICAgIC8qCisJICAgICAqIERldGVjdCAiTmFtZSAsIE5hbWUgfCBOYW1lIiBlcnJvcgorCSAgICAgKi8KKwkgICAgZWxzZSBpZiAodHlwZSAhPSBDVVIpIHsKKwkJeG1sRmF0YWxFcnJNc2dJbnQoY3R4dCwgWE1MX0VSUl9TRVBBUkFUT1JfUkVRVUlSRUQsCisJCSAgICAieG1sUGFyc2VFbGVtZW50Q2hpbGRyZW5Db250ZW50RGVjbCA6ICclYycgZXhwZWN0ZWRcbiIsCisJCQkJICB0eXBlKTsKKwkJaWYgKChsYXN0ICE9IE5VTEwpICYmIChsYXN0ICE9IHJldCkpCisJCSAgICB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIGxhc3QpOworCQlpZiAocmV0ICE9IE5VTEwpCisJCSAgICB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIHJldCk7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBORVhUOworCisJICAgIG9wID0geG1sTmV3RG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIE5VTEwsIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpOworCSAgICBpZiAob3AgPT0gTlVMTCkgeworCQlpZiAoKGxhc3QgIT0gTlVMTCkgJiYgKGxhc3QgIT0gcmV0KSkKKwkJICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgbGFzdCk7CisJCWlmIChyZXQgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgcmV0KTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGlmIChsYXN0ID09IE5VTEwpIHsKKwkJb3AtPmMxID0gcmV0OworCQlpZiAocmV0ICE9IE5VTEwpCisJCSAgICByZXQtPnBhcmVudCA9IG9wOworCQlyZXQgPSBjdXIgPSBvcDsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGN1ci0+YzIgPSBvcDsKKwkJaWYgKG9wICE9IE5VTEwpCisJCSAgICBvcC0+cGFyZW50ID0gY3VyOworCQlvcC0+YzEgPSBsYXN0OworCQlpZiAobGFzdCAhPSBOVUxMKQorCQkgICAgbGFzdC0+cGFyZW50ID0gb3A7CisJCWN1ciA9b3A7CisJCWxhc3QgPSBOVUxMOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfRklOSVNIRUQsIE5VTEwpOworCSAgICBpZiAoKGxhc3QgIT0gTlVMTCkgJiYgKGxhc3QgIT0gcmV0KSkKKwkgICAgICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgbGFzdCk7CisJICAgIGlmIChyZXQgIT0gTlVMTCkKKwkJeG1sRnJlZURvY0VsZW1lbnRDb250ZW50KGN0eHQtPm15RG9jLCByZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCUdST1c7CisJU0tJUF9CTEFOS1M7CisJR1JPVzsKKwlpZiAoUkFXID09ICcoJykgeworCSAgICBpbnQgaW5wdXRpZCA9IGN0eHQtPmlucHV0LT5pZDsKKwkgICAgLyogUmVjdXJzZSBvbiBzZWNvbmQgY2hpbGQgKi8KKwkgICAgTkVYVDsKKwkgICAgU0tJUF9CTEFOS1M7CisJICAgIGxhc3QgPSB4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsUHJpdihjdHh0LCBpbnB1dGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoICsgMSk7CisJICAgIFNLSVBfQkxBTktTOworCX0gZWxzZSB7CisJICAgIGVsZW0gPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisJICAgIGlmIChlbGVtID09IE5VTEwpIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfU1RBUlRFRCwgTlVMTCk7CisJCWlmIChyZXQgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgcmV0KTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGxhc3QgPSB4bWxOZXdEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgZWxlbSwgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKTsKKwkgICAgaWYgKGxhc3QgPT0gTlVMTCkgeworCQlpZiAocmV0ICE9IE5VTEwpCisJCSAgICB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIHJldCk7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBpZiAoUkFXID09ICc/JykgeworCQlsYXN0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQ7CisJCU5FWFQ7CisJICAgIH0gZWxzZSBpZiAoUkFXID09ICcqJykgeworCQlsYXN0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOworCQlORVhUOworCSAgICB9IGVsc2UgaWYgKFJBVyA9PSAnKycpIHsKKwkJbGFzdC0+b2N1ciA9IFhNTF9FTEVNRU5UX0NPTlRFTlRfUExVUzsKKwkJTkVYVDsKKwkgICAgfSBlbHNlIHsKKwkJbGFzdC0+b2N1ciA9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRTsKKwkgICAgfQorCX0KKwlTS0lQX0JMQU5LUzsKKwlHUk9XOworICAgIH0KKyAgICBpZiAoKGN1ciAhPSBOVUxMKSAmJiAobGFzdCAhPSBOVUxMKSkgeworICAgICAgICBjdXItPmMyID0gbGFzdDsKKwlpZiAobGFzdCAhPSBOVUxMKQorCSAgICBsYXN0LT5wYXJlbnQgPSBjdXI7CisgICAgfQorICAgIGlmICgoY3R4dC0+dmFsaWRhdGUpICYmIChjdHh0LT5pbnB1dC0+aWQgIT0gaW5wdXRjaGspKSB7CisJeG1sVmFsaWRpdHlFcnJvcihjdHh0LCBYTUxfRVJSX0VOVElUWV9CT1VOREFSWSwKKyJFbGVtZW50IGNvbnRlbnQgZGVjbGFyYXRpb24gZG9lc24ndCBzdGFydCBhbmQgc3RvcCBpbiB0aGUgc2FtZSBlbnRpdHlcbiIsCisJCQkgTlVMTCwgTlVMTCk7CisgICAgfQorICAgIE5FWFQ7CisgICAgaWYgKFJBVyA9PSAnPycpIHsKKwlpZiAocmV0ICE9IE5VTEwpIHsKKwkgICAgaWYgKChyZXQtPm9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTKSB8fAorCSAgICAgICAgKHJldC0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX01VTFQpKQorCSAgICAgICAgcmV0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOworCSAgICBlbHNlCisJICAgICAgICByZXQtPm9jdXIgPSBYTUxfRUxFTUVOVF9DT05URU5UX09QVDsKKwl9CisJTkVYVDsKKyAgICB9IGVsc2UgaWYgKFJBVyA9PSAnKicpIHsKKwlpZiAocmV0ICE9IE5VTEwpIHsKKwkgICAgcmV0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOworCSAgICBjdXIgPSByZXQ7CisJICAgIC8qCisJICAgICAqIFNvbWUgbm9ybWFsaXphdGlvbjoKKwkgICAgICogKGEgfCBiKiB8IGM/KSogPT0gKGEgfCBiIHwgYykqCisJICAgICAqLworCSAgICB3aGlsZSAoKGN1ciAhPSBOVUxMKSAmJiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpKSB7CisJCWlmICgoY3VyLT5jMSAhPSBOVUxMKSAmJgorCSAgICAgICAgICAgICgoY3VyLT5jMS0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09QVCkgfHwKKwkJICAgICAoY3VyLT5jMS0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX01VTFQpKSkKKwkJICAgIGN1ci0+YzEtPm9jdXIgPSBYTUxfRUxFTUVOVF9DT05URU5UX09OQ0U7CisJCWlmICgoY3VyLT5jMiAhPSBOVUxMKSAmJgorCSAgICAgICAgICAgICgoY3VyLT5jMi0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09QVCkgfHwKKwkJICAgICAoY3VyLT5jMi0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX01VTFQpKSkKKwkJICAgIGN1ci0+YzItPm9jdXIgPSBYTUxfRUxFTUVOVF9DT05URU5UX09OQ0U7CisJCWN1ciA9IGN1ci0+YzI7CisJICAgIH0KKwl9CisJTkVYVDsKKyAgICB9IGVsc2UgaWYgKFJBVyA9PSAnKycpIHsKKwlpZiAocmV0ICE9IE5VTEwpIHsKKwkgICAgaW50IGZvdW5kID0gMDsKKworCSAgICBpZiAoKHJldC0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09QVCkgfHwKKwkgICAgICAgIChyZXQtPm9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUKSkKKwkgICAgICAgIHJldC0+b2N1ciA9IFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVDsKKwkgICAgZWxzZQorCSAgICAgICAgcmV0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTOworCSAgICAvKgorCSAgICAgKiBTb21lIG5vcm1hbGl6YXRpb246CisJICAgICAqIChhIHwgYiopKyA9PSAoYSB8IGIpKgorCSAgICAgKiAoYSB8IGI/KSsgPT0gKGEgfCBiKSoKKwkgICAgICovCisJICAgIHdoaWxlICgoY3VyICE9IE5VTEwpICYmIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikpIHsKKwkJaWYgKChjdXItPmMxICE9IE5VTEwpICYmCisJICAgICAgICAgICAgKChjdXItPmMxLT5vY3VyID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUKSB8fAorCQkgICAgIChjdXItPmMxLT5vY3VyID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVCkpKSB7CisJCSAgICBjdXItPmMxLT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFOworCQkgICAgZm91bmQgPSAxOworCQl9CisJCWlmICgoY3VyLT5jMiAhPSBOVUxMKSAmJgorCSAgICAgICAgICAgICgoY3VyLT5jMi0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09QVCkgfHwKKwkJICAgICAoY3VyLT5jMi0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX01VTFQpKSkgeworCQkgICAgY3VyLT5jMi0+b2N1ciA9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRTsKKwkJICAgIGZvdW5kID0gMTsKKwkJfQorCQljdXIgPSBjdXItPmMyOworCSAgICB9CisJICAgIGlmIChmb3VuZCkKKwkJcmV0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOworCX0KKwlORVhUOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBpbnB1dGNoazogIHRoZSBpbnB1dCB1c2VkIGZvciB0aGUgY3VycmVudCBlbnRpdHksIG5lZWRlZCBmb3IgYm91bmRhcnkgY2hlY2tzCisgKgorICogcGFyc2UgdGhlIGRlY2xhcmF0aW9uIGZvciBhIE1peGVkIEVsZW1lbnQgY29udGVudAorICogVGhlIGxlYWRpbmcgJygnIGFuZCBzcGFjZXMgaGF2ZSBiZWVuIHNraXBwZWQgaW4geG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wKKyAqCisgKiBbNDddIGNoaWxkcmVuIDo6PSAoY2hvaWNlIHwgc2VxKSAoJz8nIHwgJyonIHwgJysnKT8KKyAqCisgKiBbNDhdIGNwIDo6PSAoTmFtZSB8IGNob2ljZSB8IHNlcSkgKCc/JyB8ICcqJyB8ICcrJyk/CisgKgorICogWzQ5XSBjaG9pY2UgOjo9ICcoJyBTPyBjcCAoIFM/ICd8JyBTPyBjcCApKiBTPyAnKScKKyAqCisgKiBbNTBdIHNlcSA6Oj0gJygnIFM/IGNwICggUz8gJywnIFM/IGNwICkqIFM/ICcpJworICoKKyAqIFsgVkM6IFByb3BlciBHcm91cC9QRSBOZXN0aW5nIF0gYXBwbGllcyB0byBbNDldIGFuZCBbNTBdCisgKiBUT0RPIFBhcmFtZXRlci1lbnRpdHkgcmVwbGFjZW1lbnQgdGV4dCBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZAorICoJd2l0aCBwYXJlbnRoZXNpemVkIGdyb3Vwcy4gVGhhdCBpcyB0byBzYXksIGlmIGVpdGhlciBvZiB0aGUKKyAqCW9wZW5pbmcgb3IgY2xvc2luZyBwYXJlbnRoZXNlcyBpbiBhIGNob2ljZSwgc2VxLCBvciBNaXhlZAorICoJY29uc3RydWN0IGlzIGNvbnRhaW5lZCBpbiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBmb3IgYSBwYXJhbWV0ZXIKKyAqCWVudGl0eSwgYm90aCBtdXN0IGJlIGNvbnRhaW5lZCBpbiB0aGUgc2FtZSByZXBsYWNlbWVudCB0ZXh0LiBGb3IKKyAqCWludGVyb3BlcmFiaWxpdHksIGlmIGEgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UgYXBwZWFycyBpbiBhCisgKgljaG9pY2UsIHNlcSwgb3IgTWl4ZWQgY29uc3RydWN0LCBpdHMgcmVwbGFjZW1lbnQgdGV4dCBzaG91bGQgbm90CisgKgliZSBlbXB0eSwgYW5kIG5laXRoZXIgdGhlIGZpcnN0IG5vciBsYXN0IG5vbi1ibGFuayBjaGFyYWN0ZXIgb2YKKyAqCXRoZSByZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBiZSBhIGNvbm5lY3RvciAofCBvciAsKS4KKyAqCisgKiBSZXR1cm5zIHRoZSB0cmVlIG9mIHhtbEVsZW1lbnRDb250ZW50UHRyIGRlc2NyaWJpbmcgdGhlIGVsZW1lbnQKKyAqICAgICAgICAgIGhpZXJhcmNoeS4KKyAqLworeG1sRWxlbWVudENvbnRlbnRQdHIKK3htbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2woeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgaW5wdXRjaGspIHsKKyAgICAvKiBzdHViIGxlZnQgZm9yIEFQSS9BQkkgY29tcGF0ICovCisgICAgcmV0dXJuKHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2xQcml2KGN0eHQsIGlucHV0Y2hrLCAxKSk7Cit9CisKKy8qKgorICogeG1sUGFyc2VFbGVtZW50Q29udGVudERlY2w6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudCBiZWluZyBkZWZpbmVkLgorICogQHJlc3VsdDogIHRoZSBFbGVtZW50IENvbnRlbnQgcG9pbnRlciB3aWxsIGJlIHN0b3JlZCBoZXJlIGlmIGFueQorICoKKyAqIHBhcnNlIHRoZSBkZWNsYXJhdGlvbiBmb3IgYW4gRWxlbWVudCBjb250ZW50IGVpdGhlciBNaXhlZCBvciBDaGlsZHJlbiwKKyAqIHRoZSBjYXNlcyBFTVBUWSBhbmQgQU5ZIGFyZSBoYW5kbGVkIGRpcmVjdGx5IGluIHhtbFBhcnNlRWxlbWVudERlY2wKKyAqIAorICogWzQ2XSBjb250ZW50c3BlYyA6Oj0gJ0VNUFRZJyB8ICdBTlknIHwgTWl4ZWQgfCBjaGlsZHJlbgorICoKKyAqIHJldHVybnM6IHRoZSB0eXBlIG9mIGVsZW1lbnQgY29udGVudCBYTUxfRUxFTUVOVF9UWVBFX3h4eAorICovCisKK2ludAoreG1sUGFyc2VFbGVtZW50Q29udGVudERlY2woeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgKnJlc3VsdCkgeworCisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgdHJlZSA9IE5VTEw7CisgICAgaW50IGlucHV0aWQgPSBjdHh0LT5pbnB1dC0+aWQ7CisgICAgaW50IHJlczsKKworICAgICpyZXN1bHQgPSBOVUxMOworCisgICAgaWYgKFJBVyAhPSAnKCcpIHsKKwl4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0VMRU1DT05URU5UX05PVF9TVEFSVEVELAorCQkieG1sUGFyc2VFbGVtZW50Q29udGVudERlY2wgOiAlcyAnKCcgZXhwZWN0ZWRcbiIsIG5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorICAgIE5FWFQ7CisgICAgR1JPVzsKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoQ01QNyhDVVJfUFRSLCAnIycsICdQJywgJ0MnLCAnRCcsICdBJywgJ1QnLCAnQScpKSB7CisgICAgICAgIHRyZWUgPSB4bWxQYXJzZUVsZW1lbnRNaXhlZENvbnRlbnREZWNsKGN0eHQsIGlucHV0aWQpOworCXJlcyA9IFhNTF9FTEVNRU5UX1RZUEVfTUlYRUQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdHJlZSA9IHhtbFBhcnNlRWxlbWVudENoaWxkcmVuQ29udGVudERlY2xQcml2KGN0eHQsIGlucHV0aWQsIDEpOworCXJlcyA9IFhNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVDsKKyAgICB9CisgICAgU0tJUF9CTEFOS1M7CisgICAgKnJlc3VsdCA9IHRyZWU7CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKy8qKgorICogeG1sUGFyc2VFbGVtZW50RGVjbDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYW4gRWxlbWVudCBkZWNsYXJhdGlvbi4KKyAqCisgKiBbNDVdIGVsZW1lbnRkZWNsIDo6PSAnPCFFTEVNRU5UJyBTIE5hbWUgUyBjb250ZW50c3BlYyBTPyAnPicKKyAqCisgKiBbIFZDOiBVbmlxdWUgRWxlbWVudCBUeXBlIERlY2xhcmF0aW9uIF0KKyAqIE5vIGVsZW1lbnQgdHlwZSBtYXkgYmUgZGVjbGFyZWQgbW9yZSB0aGFuIG9uY2UKKyAqCisgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sUGFyc2VFbGVtZW50RGVjbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGludCByZXQgPSAtMTsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50ICA9IE5VTEw7CisKKyAgICAvKiBHUk9XOyBkb25lIGluIHRoZSBjYWxsZXIgKi8KKyAgICBpZiAoQ01QOShDVVJfUFRSLCAnPCcsICchJywgJ0UnLCAnTCcsICdFJywgJ00nLCAnRScsICdOJywgJ1QnKSkgeworCXhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gY3R4dC0+aW5wdXQ7CisKKwlTS0lQKDkpOworCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkgICAgICAgICAgICJTcGFjZSByZXF1aXJlZCBhZnRlciAnRUxFTUVOVCdcbiIpOworCX0KKyAgICAgICAgU0tJUF9CTEFOS1M7CisgICAgICAgIG5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisJaWYgKG5hbWUgPT0gTlVMTCkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisJCQkgICAieG1sUGFyc2VFbGVtZW50RGVjbDogbm8gbmFtZSBmb3IgRWxlbWVudFxuIik7CisJICAgIHJldHVybigtMSk7CisJfQorCXdoaWxlICgoUkFXID09IDApICYmIChjdHh0LT5pbnB1dE5yID4gMSkpCisJICAgIHhtbFBvcElucHV0KGN0eHQpOworCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkJICAgIlNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoZSBlbGVtZW50IG5hbWVcbiIpOworCX0KKyAgICAgICAgU0tJUF9CTEFOS1M7CisJaWYgKENNUDUoQ1VSX1BUUiwgJ0UnLCAnTScsICdQJywgJ1QnLCAnWScpKSB7CisJICAgIFNLSVAoNSk7CisJICAgIC8qCisJICAgICAqIEVsZW1lbnQgbXVzdCBhbHdheXMgYmUgZW1wdHkuCisJICAgICAqLworCSAgICByZXQgPSBYTUxfRUxFTUVOVF9UWVBFX0VNUFRZOworCX0gZWxzZSBpZiAoKFJBVyA9PSAnQScpICYmIChOWFQoMSkgPT0gJ04nKSAmJgorCSAgICAgICAgICAgKE5YVCgyKSA9PSAnWScpKSB7CisJICAgIFNLSVAoMyk7CisJICAgIC8qCisJICAgICAqIEVsZW1lbnQgaXMgYSBnZW5lcmljIGNvbnRhaW5lci4KKwkgICAgICovCisJICAgIHJldCA9IFhNTF9FTEVNRU5UX1RZUEVfQU5ZOworCX0gZWxzZSBpZiAoUkFXID09ICcoJykgeworCSAgICByZXQgPSB4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbChjdHh0LCBuYW1lLCAmY29udGVudCk7CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgICogWyBXRkM6IFBFcyBpbiBJbnRlcm5hbCBTdWJzZXQgXSBlcnJvciBoYW5kbGluZy4KKwkgICAgICovCisJICAgIGlmICgoUkFXID09ICclJykgJiYgKGN0eHQtPmV4dGVybmFsID09IDApICYmCisJICAgICAgICAoY3R4dC0+aW5wdXROciA9PSAxKSkgeworCQl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1BFUkVGX0lOX0lOVF9TVUJTRVQsCisJICAiUEVSZWZlcmVuY2U6IGZvcmJpZGRlbiB3aXRoaW4gbWFya3VwIGRlY2wgaW4gaW50ZXJuYWwgc3Vic2V0XG4iKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9FTEVNQ09OVEVOVF9OT1RfU1RBUlRFRCwKKwkJICAgICAgInhtbFBhcnNlRWxlbWVudERlY2w6ICdFTVBUWScsICdBTlknIG9yICcoJyBleHBlY3RlZFxuIik7CisgICAgICAgICAgICB9CisJICAgIHJldHVybigtMSk7CisJfQorCisJU0tJUF9CTEFOS1M7CisJLyoKKwkgKiBQb3AtdXAgb2YgZmluaXNoZWQgZW50aXRpZXMuCisJICovCisJd2hpbGUgKChSQVcgPT0gMCkgJiYgKGN0eHQtPmlucHV0TnIgPiAxKSkKKwkgICAgeG1sUG9wSW5wdXQoY3R4dCk7CisJU0tJUF9CTEFOS1M7CisKKwlpZiAoUkFXICE9ICc+JykgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0dUX1JFUVVJUkVELCBOVUxMKTsKKwkgICAgaWYgKGNvbnRlbnQgIT0gTlVMTCkgeworCQl4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoY3R4dC0+bXlEb2MsIGNvbnRlbnQpOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgaWYgKGlucHV0ICE9IGN0eHQtPmlucHV0KSB7CisJCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfRU5USVRZX0JPVU5EQVJZLAorICAgICJFbGVtZW50IGRlY2xhcmF0aW9uIGRvZXNuJ3Qgc3RhcnQgYW5kIHN0b3AgaW4gdGhlIHNhbWUgZW50aXR5XG4iKTsKKwkgICAgfQorCQkKKwkgICAgTkVYVDsKKwkgICAgaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSAmJgorCQkoY3R4dC0+c2F4LT5lbGVtZW50RGVjbCAhPSBOVUxMKSkgeworCQlpZiAoY29udGVudCAhPSBOVUxMKQorCQkgICAgY29udGVudC0+cGFyZW50ID0gTlVMTDsKKwkgICAgICAgIGN0eHQtPnNheC0+ZWxlbWVudERlY2woY3R4dC0+dXNlckRhdGEsIG5hbWUsIHJldCwKKwkJICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KTsKKwkJaWYgKChjb250ZW50ICE9IE5VTEwpICYmIChjb250ZW50LT5wYXJlbnQgPT0gTlVMTCkpIHsKKwkJICAgIC8qCisJCSAgICAgKiB0aGlzIGlzIGEgdHJpY2s6IGlmIHhtbEFkZEVsZW1lbnREZWNsIGlzIGNhbGxlZCwKKwkJICAgICAqIGluc3RlYWQgb2YgY29weWluZyB0aGUgZnVsbCB0cmVlIGl0IGlzIHBsdWdnZWQgZGlyZWN0bHkKKwkJICAgICAqIGlmIGNhbGxlZCBmcm9tIHRoZSBwYXJzZXIuIEF2b2lkIGR1cGxpY2F0aW5nIHRoZSAKKwkJICAgICAqIGludGVyZmFjZXMgb3IgY2hhbmdlIHRoZSBBUEkvQUJJCisJCSAgICAgKi8KKwkJICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChjdHh0LT5teURvYywgY29udGVudCk7CisJCX0KKwkgICAgfSBlbHNlIGlmIChjb250ZW50ICE9IE5VTEwpIHsKKwkJeG1sRnJlZURvY0VsZW1lbnRDb250ZW50KGN0eHQtPm15RG9jLCBjb250ZW50KTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VDb25kaXRpb25hbFNlY3Rpb25zCisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIFs2MV0gY29uZGl0aW9uYWxTZWN0IDo6PSBpbmNsdWRlU2VjdCB8IGlnbm9yZVNlY3QgCisgKiBbNjJdIGluY2x1ZGVTZWN0IDo6PSAnPCFbJyBTPyAnSU5DTFVERScgUz8gJ1snIGV4dFN1YnNldERlY2wgJ11dPicgCisgKiBbNjNdIGlnbm9yZVNlY3QgOjo9ICc8IVsnIFM/ICdJR05PUkUnIFM/ICdbJyBpZ25vcmVTZWN0Q29udGVudHMqICddXT4nCisgKiBbNjRdIGlnbm9yZVNlY3RDb250ZW50cyA6Oj0gSWdub3JlICgnPCFbJyBpZ25vcmVTZWN0Q29udGVudHMgJ11dPicgSWdub3JlKSoKKyAqIFs2NV0gSWdub3JlIDo6PSBDaGFyKiAtIChDaGFyKiAoJzwhWycgfCAnXV0+JykgQ2hhciopCisgKi8KKworc3RhdGljIHZvaWQKK3htbFBhcnNlQ29uZGl0aW9uYWxTZWN0aW9ucyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgaWQgPSBjdHh0LT5pbnB1dC0+aWQ7CisKKyAgICBTS0lQKDMpOworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDTVA3KENVUl9QVFIsICdJJywgJ04nLCAnQycsICdMJywgJ1UnLCAnRCcsICdFJykpIHsKKwlTS0lQKDcpOworCVNLSVBfQkxBTktTOworCWlmIChSQVcgIT0gJ1snKSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfQ09ORFNFQ19JTlZBTElELCBOVUxMKTsKKwl9IGVsc2UgeworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmlkICE9IGlkKSB7CisJCXhtbFZhbGlkaXR5RXJyb3IoY3R4dCwgWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlksCisJICAgICJBbGwgbWFya3VwIG9mIHRoZSBjb25kaXRpb25hbCBzZWN0aW9uIGlzIG5vdCBpbiB0aGUgc2FtZSBlbnRpdHlcbiIsCisJCQkJICAgICBOVUxMLCBOVUxMKTsKKwkgICAgfQorCSAgICBORVhUOworCX0KKwlpZiAoeG1sUGFyc2VyRGVidWdFbnRpdGllcykgeworCSAgICBpZiAoKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dC0+ZmlsZW5hbWUpKQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSIlcyglZCk6ICIsIGN0eHQtPmlucHV0LT5maWxlbmFtZSwKKwkJCWN0eHQtPmlucHV0LT5saW5lKTsKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiRW50ZXJpbmcgSU5DTFVERSBDb25kaXRpb25hbCBTZWN0aW9uXG4iKTsKKwl9CisKKwl3aGlsZSAoKFJBVyAhPSAwKSAmJiAoKFJBVyAhPSAnXScpIHx8IChOWFQoMSkgIT0gJ10nKSB8fAorCSAgICAgICAoTlhUKDIpICE9ICc+JykpKSB7CisJICAgIGNvbnN0IHhtbENoYXIgKmNoZWNrID0gQ1VSX1BUUjsKKwkgICAgdW5zaWduZWQgaW50IGNvbnMgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQ7CisKKwkgICAgaWYgKChSQVcgPT0gJzwnKSAmJiAoTlhUKDEpID09ICchJykgJiYgKE5YVCgyKSA9PSAnWycpKSB7CisJCXhtbFBhcnNlQ29uZGl0aW9uYWxTZWN0aW9ucyhjdHh0KTsKKwkgICAgfSBlbHNlIGlmIChJU19CTEFOS19DSChDVVIpKSB7CisJCU5FWFQ7CisJICAgIH0gZWxzZSBpZiAoUkFXID09ICclJykgeworCQl4bWxQYXJzZVBFUmVmZXJlbmNlKGN0eHQpOworCSAgICB9IGVsc2UKKwkJeG1sUGFyc2VNYXJrdXBEZWNsKGN0eHQpOworCisJICAgIC8qCisJICAgICAqIFBvcC11cCBvZiBmaW5pc2hlZCBlbnRpdGllcy4KKwkgICAgICovCisJICAgIHdoaWxlICgoUkFXID09IDApICYmIChjdHh0LT5pbnB1dE5yID4gMSkpCisJCXhtbFBvcElucHV0KGN0eHQpOworCisJICAgIGlmICgoQ1VSX1BUUiA9PSBjaGVjaykgJiYgKGNvbnMgPT0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkKSkgeworCQl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVELCBOVUxMKTsKKwkJYnJlYWs7CisJICAgIH0KKwl9CisJaWYgKHhtbFBhcnNlckRlYnVnRW50aXRpZXMpIHsKKwkgICAgaWYgKChjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJiAoY3R4dC0+aW5wdXQtPmZpbGVuYW1lKSkKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiJXMoJWQpOiAiLCBjdHh0LT5pbnB1dC0+ZmlsZW5hbWUsCisJCQljdHh0LT5pbnB1dC0+bGluZSk7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIkxlYXZpbmcgSU5DTFVERSBDb25kaXRpb25hbCBTZWN0aW9uXG4iKTsKKwl9CisKKyAgICB9IGVsc2UgaWYgKENNUDYoQ1VSX1BUUiwgJ0knLCAnRycsICdOJywgJ08nLCAnUicsICdFJykpIHsKKwlpbnQgc3RhdGU7CisJeG1sUGFyc2VySW5wdXRTdGF0ZSBpbnN0YXRlOworCWludCBkZXB0aCA9IDA7CisKKwlTS0lQKDYpOworCVNLSVBfQkxBTktTOworCWlmIChSQVcgIT0gJ1snKSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfQ09ORFNFQ19JTlZBTElELCBOVUxMKTsKKwl9IGVsc2UgeworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmlkICE9IGlkKSB7CisJCXhtbFZhbGlkaXR5RXJyb3IoY3R4dCwgWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlksCisJICAgICJBbGwgbWFya3VwIG9mIHRoZSBjb25kaXRpb25hbCBzZWN0aW9uIGlzIG5vdCBpbiB0aGUgc2FtZSBlbnRpdHlcbiIsCisJCQkJICAgICBOVUxMLCBOVUxMKTsKKwkgICAgfQorCSAgICBORVhUOworCX0KKwlpZiAoeG1sUGFyc2VyRGVidWdFbnRpdGllcykgeworCSAgICBpZiAoKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dC0+ZmlsZW5hbWUpKQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSIlcyglZCk6ICIsIGN0eHQtPmlucHV0LT5maWxlbmFtZSwKKwkJCWN0eHQtPmlucHV0LT5saW5lKTsKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiRW50ZXJpbmcgSUdOT1JFIENvbmRpdGlvbmFsIFNlY3Rpb25cbiIpOworCX0KKworCS8qCisJICogUGFyc2UgdXAgdG8gdGhlIGVuZCBvZiB0aGUgY29uZGl0aW9uYWwgc2VjdGlvbgorCSAqIEJ1dCBkaXNhYmxlIFNBWCBldmVudCBnZW5lcmF0aW5nIERURCBidWlsZGluZyBpbiB0aGUgbWVhbnRpbWUKKwkgKi8KKwlzdGF0ZSA9IGN0eHQtPmRpc2FibGVTQVg7CisJaW5zdGF0ZSA9IGN0eHQtPmluc3RhdGU7CisJaWYgKGN0eHQtPnJlY292ZXJ5ID09IDApIGN0eHQtPmRpc2FibGVTQVggPSAxOworCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0lHTk9SRTsKKworCXdoaWxlICgoZGVwdGggPj0gMCkgJiYgKFJBVyAhPSAwKSkgeworCSAgaWYgKChSQVcgPT0gJzwnKSAmJiAoTlhUKDEpID09ICchJykgJiYgKE5YVCgyKSA9PSAnWycpKSB7CisJICAgIGRlcHRoKys7CisJICAgIFNLSVAoMyk7CisJICAgIGNvbnRpbnVlOworCSAgfQorCSAgaWYgKChSQVcgPT0gJ10nKSAmJiAoTlhUKDEpID09ICddJykgJiYgKE5YVCgyKSA9PSAnPicpKSB7CisJICAgIGlmICgtLWRlcHRoID49IDApIFNLSVAoMyk7CisJICAgIGNvbnRpbnVlOworCSAgfQorCSAgTkVYVDsKKwkgIGNvbnRpbnVlOworCX0KKworCWN0eHQtPmRpc2FibGVTQVggPSBzdGF0ZTsKKwljdHh0LT5pbnN0YXRlID0gaW5zdGF0ZTsKKworCWlmICh4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzKSB7CisJICAgIGlmICgoY3R4dC0+aW5wdXQgIT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0LT5maWxlbmFtZSkpCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIiVzKCVkKTogIiwgY3R4dC0+aW5wdXQtPmZpbGVuYW1lLAorCQkJY3R4dC0+aW5wdXQtPmxpbmUpOworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJMZWF2aW5nIElHTk9SRSBDb25kaXRpb25hbCBTZWN0aW9uXG4iKTsKKwl9CisKKyAgICB9IGVsc2UgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfQ09ORFNFQ19JTlZBTElEX0tFWVdPUkQsIE5VTEwpOworICAgIH0KKworICAgIGlmIChSQVcgPT0gMCkKKyAgICAgICAgU0hSSU5LOworCisgICAgaWYgKFJBVyA9PSAwKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9DT05EU0VDX05PVF9GSU5JU0hFRCwgTlVMTCk7CisgICAgfSBlbHNlIHsKKwlpZiAoY3R4dC0+aW5wdXQtPmlkICE9IGlkKSB7CisJICAgIHhtbFZhbGlkaXR5RXJyb3IoY3R4dCwgWE1MX0VSUl9FTlRJVFlfQk9VTkRBUlksCisJIkFsbCBtYXJrdXAgb2YgdGhlIGNvbmRpdGlvbmFsIHNlY3Rpb24gaXMgbm90IGluIHRoZSBzYW1lIGVudGl0eVxuIiwKKwkJCQkgTlVMTCwgTlVMTCk7CisJfQorICAgICAgICBTS0lQKDMpOworICAgIH0KK30KKworLyoqCisgKiB4bWxQYXJzZU1hcmt1cERlY2w6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogCisgKiBwYXJzZSBNYXJrdXAgZGVjbGFyYXRpb25zCisgKgorICogWzI5XSBtYXJrdXBkZWNsIDo6PSBlbGVtZW50ZGVjbCB8IEF0dGxpc3REZWNsIHwgRW50aXR5RGVjbCB8CisgKiAgICAgICAgICAgICAgICAgICAgIE5vdGF0aW9uRGVjbCB8IFBJIHwgQ29tbWVudAorICoKKyAqIFsgVkM6IFByb3BlciBEZWNsYXJhdGlvbi9QRSBOZXN0aW5nIF0KKyAqIFBhcmFtZXRlci1lbnRpdHkgcmVwbGFjZW1lbnQgdGV4dCBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZCB3aXRoCisgKiBtYXJrdXAgZGVjbGFyYXRpb25zLiBUaGF0IGlzIHRvIHNheSwgaWYgZWl0aGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAqIG9yIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIG1hcmt1cCBkZWNsYXJhdGlvbiAobWFya3VwZGVjbCBhYm92ZSkgaXMKKyAqIGNvbnRhaW5lZCBpbiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBmb3IgYSBwYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZSwKKyAqIGJvdGggbXVzdCBiZSBjb250YWluZWQgaW4gdGhlIHNhbWUgcmVwbGFjZW1lbnQgdGV4dC4KKyAqCisgKiBbIFdGQzogUEVzIGluIEludGVybmFsIFN1YnNldCBdCisgKiBJbiB0aGUgaW50ZXJuYWwgRFREIHN1YnNldCwgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzIGNhbiBvY2N1cgorICogb25seSB3aGVyZSBtYXJrdXAgZGVjbGFyYXRpb25zIGNhbiBvY2N1ciwgbm90IHdpdGhpbiBtYXJrdXAgZGVjbGFyYXRpb25zLgorICogKFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gcmVmZXJlbmNlcyB0aGF0IG9jY3VyIGluIGV4dGVybmFsIHBhcmFtZXRlcgorICogZW50aXRpZXMgb3IgdG8gdGhlIGV4dGVybmFsIHN1YnNldC4pIAorICovCit2b2lkCit4bWxQYXJzZU1hcmt1cERlY2woeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgR1JPVzsKKyAgICBpZiAoQ1VSID09ICc8JykgeworICAgICAgICBpZiAoTlhUKDEpID09ICchJykgeworCSAgICBzd2l0Y2ggKE5YVCgyKSkgeworCSAgICAgICAgY2FzZSAnRSc6CisJCSAgICBpZiAoTlhUKDMpID09ICdMJykKKwkJCXhtbFBhcnNlRWxlbWVudERlY2woY3R4dCk7CisJCSAgICBlbHNlIGlmIChOWFQoMykgPT0gJ04nKQorCQkJeG1sUGFyc2VFbnRpdHlEZWNsKGN0eHQpOworCQkgICAgYnJlYWs7CisJICAgICAgICBjYXNlICdBJzoKKwkJICAgIHhtbFBhcnNlQXR0cmlidXRlTGlzdERlY2woY3R4dCk7CisJCSAgICBicmVhazsKKwkgICAgICAgIGNhc2UgJ04nOgorCQkgICAgeG1sUGFyc2VOb3RhdGlvbkRlY2woY3R4dCk7CisJCSAgICBicmVhazsKKwkgICAgICAgIGNhc2UgJy0nOgorCQkgICAgeG1sUGFyc2VDb21tZW50KGN0eHQpOworCQkgICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCSAgICAvKiB0aGVyZSBpcyBhbiBlcnJvciBidXQgaXQgd2lsbCBiZSBkZXRlY3RlZCBsYXRlciAqLworCQkgICAgYnJlYWs7CisJICAgIH0KKwl9IGVsc2UgaWYgKE5YVCgxKSA9PSAnPycpIHsKKwkgICAgeG1sUGFyc2VQSShjdHh0KTsKKwl9CisgICAgfQorICAgIC8qCisgICAgICogVGhpcyBpcyBvbmx5IGZvciBpbnRlcm5hbCBzdWJzZXQuIE9uIGV4dGVybmFsIGVudGl0aWVzLAorICAgICAqIHRoZSByZXBsYWNlbWVudCBpcyBkb25lIGJlZm9yZSBwYXJzaW5nIHN0YWdlCisgICAgICovCisgICAgaWYgKChjdHh0LT5leHRlcm5hbCA9PSAwKSAmJiAoY3R4dC0+aW5wdXROciA9PSAxKSkKKwl4bWxQYXJzZVBFUmVmZXJlbmNlKGN0eHQpOworCisgICAgLyoKKyAgICAgKiBDb25kaXRpb25hbCBzZWN0aW9ucyBhcmUgYWxsb3dlZCBmcm9tIGVudGl0aWVzIGluY2x1ZGVkCisgICAgICogYnkgUEUgUmVmZXJlbmNlcyBpbiB0aGUgaW50ZXJuYWwgc3Vic2V0LgorICAgICAqLworICAgIGlmICgoY3R4dC0+ZXh0ZXJuYWwgPT0gMCkgJiYgKGN0eHQtPmlucHV0TnIgPiAxKSkgeworICAgICAgICBpZiAoKFJBVyA9PSAnPCcpICYmIChOWFQoMSkgPT0gJyEnKSAmJiAoTlhUKDIpID09ICdbJykpIHsKKwkgICAgeG1sUGFyc2VDb25kaXRpb25hbFNlY3Rpb25zKGN0eHQpOworCX0KKyAgICB9CisKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9EVEQ7Cit9CisKKy8qKgorICogeG1sUGFyc2VUZXh0RGVjbDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYW4gWE1MIGRlY2xhcmF0aW9uIGhlYWRlciBmb3IgZXh0ZXJuYWwgZW50aXRpZXMKKyAqCisgKiBbNzddIFRleHREZWNsIDo6PSAnPD94bWwnIFZlcnNpb25JbmZvPyBFbmNvZGluZ0RlY2wgUz8gJz8+JworICovCisKK3ZvaWQKK3htbFBhcnNlVGV4dERlY2woeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciAqdmVyc2lvbjsKKyAgICBjb25zdCB4bWxDaGFyICplbmNvZGluZzsKKworICAgIC8qCisgICAgICogV2Uga25vdyB0aGF0ICc8P3htbCcgaXMgaGVyZS4KKyAgICAgKi8KKyAgICBpZiAoKENNUDUoQ1VSX1BUUiwgJzwnLCAnPycsICd4JywgJ20nLCAnbCcpKSAmJiAoSVNfQkxBTktfQ0goTlhUKDUpKSkpIHsKKwlTS0lQKDUpOworICAgIH0gZWxzZSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9YTUxERUNMX05PVF9TVEFSVEVELCBOVUxMKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgaWYgKCFJU19CTEFOS19DSChDVVIpKSB7CisJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwKKwkJICAgICAgICJTcGFjZSBuZWVkZWQgYWZ0ZXIgJzw/eG1sJ1xuIik7CisgICAgfQorICAgIFNLSVBfQkxBTktTOworCisgICAgLyoKKyAgICAgKiBXZSBtYXkgaGF2ZSB0aGUgVmVyc2lvbkluZm8gaGVyZS4KKyAgICAgKi8KKyAgICB2ZXJzaW9uID0geG1sUGFyc2VWZXJzaW9uSW5mbyhjdHh0KTsKKyAgICBpZiAodmVyc2lvbiA9PSBOVUxMKQorCXZlcnNpb24gPSB4bWxDaGFyU3RyZHVwKFhNTF9ERUZBVUxUX1ZFUlNJT04pOworICAgIGVsc2UgeworCWlmICghSVNfQkxBTktfQ0goQ1VSKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkgICAgICAgICAgICJTcGFjZSBuZWVkZWQgaGVyZVxuIik7CisJfQorICAgIH0KKyAgICBjdHh0LT5pbnB1dC0+dmVyc2lvbiA9IHZlcnNpb247CisKKyAgICAvKgorICAgICAqIFdlIG11c3QgaGF2ZSB0aGUgZW5jb2RpbmcgZGVjbGFyYXRpb24KKyAgICAgKi8KKyAgICBlbmNvZGluZyA9IHhtbFBhcnNlRW5jb2RpbmdEZWNsKGN0eHQpOworICAgIGlmIChjdHh0LT5lcnJObyA9PSBYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HKSB7CisJLyoKKwkgKiBUaGUgWE1MIFJFQyBpbnN0cnVjdHMgdXMgdG8gc3RvcCBwYXJzaW5nIHJpZ2h0IGhlcmUKKwkgKi8KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoKGVuY29kaW5nID09IE5VTEwpICYmIChjdHh0LT5lcnJObyA9PSBYTUxfRVJSX09LKSkgeworCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfTUlTU0lOR19FTkNPRElORywKKwkJICAgICAgICJNaXNzaW5nIGVuY29kaW5nIGluIHRleHQgZGVjbGFyYXRpb25cbiIpOworICAgIH0KKworICAgIFNLSVBfQkxBTktTOworICAgIGlmICgoUkFXID09ICc/JykgJiYgKE5YVCgxKSA9PSAnPicpKSB7CisgICAgICAgIFNLSVAoMik7CisgICAgfSBlbHNlIGlmIChSQVcgPT0gJz4nKSB7CisgICAgICAgIC8qIERlcHJlY2F0ZWQgb2xkIFdEIC4uLiAqLworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfWE1MREVDTF9OT1RfRklOSVNIRUQsIE5VTEwpOworCU5FWFQ7CisgICAgfSBlbHNlIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1hNTERFQ0xfTk9UX0ZJTklTSEVELCBOVUxMKTsKKwlNT1ZFVE9fRU5EVEFHKENVUl9QVFIpOworCU5FWFQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQEV4dGVybmFsSUQ6IHRoZSBleHRlcm5hbCBpZGVudGlmaWVyCisgKiBAU3lzdGVtSUQ6IHRoZSBzeXN0ZW0gaWRlbnRpZmllciAob3IgVVJMKQorICogCisgKiBwYXJzZSBNYXJrdXAgZGVjbGFyYXRpb25zIGZyb20gYW4gZXh0ZXJuYWwgc3Vic2V0CisgKgorICogWzMwXSBleHRTdWJzZXQgOjo9IHRleHREZWNsPyBleHRTdWJzZXREZWNsCisgKgorICogWzMxXSBleHRTdWJzZXREZWNsIDo6PSAobWFya3VwZGVjbCB8IGNvbmRpdGlvbmFsU2VjdCB8IFBFUmVmZXJlbmNlIHwgUykgKgorICovCit2b2lkCit4bWxQYXJzZUV4dGVybmFsU3Vic2V0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpIHsKKyAgICB4bWxEZXRlY3RTQVgyKGN0eHQpOworICAgIEdST1c7CisKKyAgICBpZiAoKGN0eHQtPmVuY29kaW5nID09IChjb25zdCB4bWxDaGFyICopWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkgJiYKKyAgICAgICAgKGN0eHQtPmlucHV0LT5lbmQgLSBjdHh0LT5pbnB1dC0+Y3VyID49IDQpKSB7CisgICAgICAgIHhtbENoYXIgc3RhcnRbNF07CisJeG1sQ2hhckVuY29kaW5nIGVuYzsKKworCXN0YXJ0WzBdID0gUkFXOworCXN0YXJ0WzFdID0gTlhUKDEpOworCXN0YXJ0WzJdID0gTlhUKDIpOworCXN0YXJ0WzNdID0gTlhUKDMpOworCWVuYyA9IHhtbERldGVjdENoYXJFbmNvZGluZyhzdGFydCwgNCk7CisJaWYgKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FKQorCSAgICB4bWxTd2l0Y2hFbmNvZGluZyhjdHh0LCBlbmMpOworICAgIH0KKworICAgIGlmIChDTVA1KENVUl9QVFIsICc8JywgJz8nLCAneCcsICdtJywgJ2wnKSkgeworCXhtbFBhcnNlVGV4dERlY2woY3R4dCk7CisJaWYgKGN0eHQtPmVyck5vID09IFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcpIHsKKwkgICAgLyoKKwkgICAgICogVGhlIFhNTCBSRUMgaW5zdHJ1Y3RzIHVzIHRvIHN0b3AgcGFyc2luZyByaWdodCBoZXJlCisJICAgICAqLworCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisJICAgIHJldHVybjsKKwl9CisgICAgfQorICAgIGlmIChjdHh0LT5teURvYyA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPm15RG9jID0geG1sTmV3RG9jKEJBRF9DQVNUICIxLjAiKTsKKwlpZiAoY3R4dC0+bXlEb2MgPT0gTlVMTCkgeworCSAgICB4bWxFcnJNZW1vcnkoY3R4dCwgIk5ldyBEb2MgZmFpbGVkIik7CisJICAgIHJldHVybjsKKwl9CisJY3R4dC0+bXlEb2MtPnByb3BlcnRpZXMgPSBYTUxfRE9DX0lOVEVSTkFMOworICAgIH0KKyAgICBpZiAoKGN0eHQtPm15RG9jICE9IE5VTEwpICYmIChjdHh0LT5teURvYy0+aW50U3Vic2V0ID09IE5VTEwpKQorICAgICAgICB4bWxDcmVhdGVJbnRTdWJzZXQoY3R4dC0+bXlEb2MsIE5VTEwsIEV4dGVybmFsSUQsIFN5c3RlbUlEKTsKKworICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0RURDsKKyAgICBjdHh0LT5leHRlcm5hbCA9IDE7CisgICAgd2hpbGUgKCgoUkFXID09ICc8JykgJiYgKE5YVCgxKSA9PSAnPycpKSB8fAorICAgICAgICAgICAoKFJBVyA9PSAnPCcpICYmIChOWFQoMSkgPT0gJyEnKSkgfHwKKwkgICAoUkFXID09ICclJykgfHwgSVNfQkxBTktfQ0goQ1VSKSkgeworCWNvbnN0IHhtbENoYXIgKmNoZWNrID0gQ1VSX1BUUjsKKwl1bnNpZ25lZCBpbnQgY29ucyA9IGN0eHQtPmlucHV0LT5jb25zdW1lZDsKKworCUdST1c7CisgICAgICAgIGlmICgoUkFXID09ICc8JykgJiYgKE5YVCgxKSA9PSAnIScpICYmIChOWFQoMikgPT0gJ1snKSkgeworCSAgICB4bWxQYXJzZUNvbmRpdGlvbmFsU2VjdGlvbnMoY3R4dCk7CisJfSBlbHNlIGlmIChJU19CTEFOS19DSChDVVIpKSB7CisJICAgIE5FWFQ7CisJfSBlbHNlIGlmIChSQVcgPT0gJyUnKSB7CisgICAgICAgICAgICB4bWxQYXJzZVBFUmVmZXJlbmNlKGN0eHQpOworCX0gZWxzZQorCSAgICB4bWxQYXJzZU1hcmt1cERlY2woY3R4dCk7CisKKwkvKgorCSAqIFBvcC11cCBvZiBmaW5pc2hlZCBlbnRpdGllcy4KKwkgKi8KKwl3aGlsZSAoKFJBVyA9PSAwKSAmJiAoY3R4dC0+aW5wdXROciA+IDEpKQorCSAgICB4bWxQb3BJbnB1dChjdHh0KTsKKworCWlmICgoQ1VSX1BUUiA9PSBjaGVjaykgJiYgKGNvbnMgPT0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkKSkgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVELCBOVUxMKTsKKwkgICAgYnJlYWs7CisJfQorICAgIH0KKyAgICAKKyAgICBpZiAoUkFXICE9IDApIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVF9TVUJTRVRfTk9UX0ZJTklTSEVELCBOVUxMKTsKKyAgICB9CisKK30KKworLyoqCisgKiB4bWxQYXJzZVJlZmVyZW5jZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYW5kIGhhbmRsZSBlbnRpdHkgcmVmZXJlbmNlcyBpbiBjb250ZW50LCBkZXBlbmRpbmcgb24gdGhlIFNBWAorICogaW50ZXJmYWNlLCB0aGlzIG1heSBlbmQtdXAgaW4gYSBjYWxsIHRvIGNoYXJhY3RlcigpIGlmIHRoaXMgaXMgYQorICogQ2hhclJlZiwgYSBwcmVkZWZpbmVkIGVudGl0eSwgaWYgdGhlcmUgaXMgbm8gcmVmZXJlbmNlKCkgY2FsbGJhY2suCisgKiBvciBpZiB0aGUgcGFyc2VyIHdhcyBhc2tlZCB0byBzd2l0Y2ggdG8gdGhhdCBtb2RlLgorICoKKyAqIFs2N10gUmVmZXJlbmNlIDo6PSBFbnRpdHlSZWYgfCBDaGFyUmVmCisgKi8KK3ZvaWQKK3htbFBhcnNlUmVmZXJlbmNlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbEVudGl0eVB0ciBlbnQ7CisgICAgeG1sQ2hhciAqdmFsOworICAgIGludCB3YXNfY2hlY2tlZDsKKyAgICB4bWxOb2RlUHRyIGxpc3QgPSBOVUxMOworICAgIHhtbFBhcnNlckVycm9ycyByZXQgPSBYTUxfRVJSX09LOworCisKKyAgICBpZiAoUkFXICE9ICcmJykKKyAgICAgICAgcmV0dXJuOworCisgICAgLyoKKyAgICAgKiBTaW1wbGUgY2FzZSBvZiBhIENoYXJSZWYKKyAgICAgKi8KKyAgICBpZiAoTlhUKDEpID09ICcjJykgeworCWludCBpID0gMDsKKwl4bWxDaGFyIG91dFsxMF07CisJaW50IGhleCA9IE5YVCgyKTsKKwlpbnQgdmFsdWUgPSB4bWxQYXJzZUNoYXJSZWYoY3R4dCk7CisKKwlpZiAodmFsdWUgPT0gMCkKKwkgICAgcmV0dXJuOworCWlmIChjdHh0LT5jaGFyc2V0ICE9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpIHsKKwkgICAgLyoKKwkgICAgICogU28gd2UgYXJlIHVzaW5nIG5vbi1VVEYtOCBidWZmZXJzCisJICAgICAqIENoZWNrIHRoYXQgdGhlIGNoYXIgZml0IG9uIDhiaXRzLCBpZiBub3QKKwkgICAgICogZ2VuZXJhdGUgYSBDaGFyUmVmLgorCSAgICAgKi8KKwkgICAgaWYgKHZhbHVlIDw9IDB4RkYpIHsKKwkJb3V0WzBdID0gdmFsdWU7CisJCW91dFsxXSA9IDA7CisJCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkgJiYKKwkJICAgICghY3R4dC0+ZGlzYWJsZVNBWCkpCisJCSAgICBjdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsIG91dCwgMSk7CisJICAgIH0gZWxzZSB7CisJCWlmICgoaGV4ID09ICd4JykgfHwgKGhleCA9PSAnWCcpKQorCQkgICAgc25wcmludGYoKGNoYXIgKilvdXQsIHNpemVvZihvdXQpLCAiI3glWCIsIHZhbHVlKTsKKwkJZWxzZQorCQkgICAgc25wcmludGYoKGNoYXIgKilvdXQsIHNpemVvZihvdXQpLCAiIyVkIiwgdmFsdWUpOworCQlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5yZWZlcmVuY2UgIT0gTlVMTCkgJiYKKwkJICAgICghY3R4dC0+ZGlzYWJsZVNBWCkpCisJCSAgICBjdHh0LT5zYXgtPnJlZmVyZW5jZShjdHh0LT51c2VyRGF0YSwgb3V0KTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIC8qCisJICAgICAqIEp1c3QgZW5jb2RlIHRoZSB2YWx1ZSBpbiBVVEYtOAorCSAgICAgKi8KKwkgICAgQ09QWV9CVUYoMCAsb3V0LCBpLCB2YWx1ZSk7CisJICAgIG91dFtpXSA9IDA7CisJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkgJiYKKwkJKCFjdHh0LT5kaXNhYmxlU0FYKSkKKwkJY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLCBvdXQsIGkpOworCX0KKwlyZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBXZSBhcmUgc2VlaW5nIGFuIGVudGl0eSByZWZlcmVuY2UKKyAgICAgKi8KKyAgICBlbnQgPSB4bWxQYXJzZUVudGl0eVJlZihjdHh0KTsKKyAgICBpZiAoZW50ID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAoIWN0eHQtPndlbGxGb3JtZWQpCisJcmV0dXJuOworICAgIHdhc19jaGVja2VkID0gZW50LT5jaGVja2VkOworCisgICAgLyogc3BlY2lhbCBjYXNlIG9mIHByZWRlZmluZWQgZW50aXRpZXMgKi8KKyAgICBpZiAoKGVudC0+bmFtZSA9PSBOVUxMKSB8fAorICAgICAgICAoZW50LT5ldHlwZSA9PSBYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkpKSB7CisJdmFsID0gZW50LT5jb250ZW50OworCWlmICh2YWwgPT0gTlVMTCkgcmV0dXJuOworCS8qCisJICogaW5saW5lIHRoZSBlbnRpdHkuCisJICovCisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKSAmJgorCSAgICAoIWN0eHQtPmRpc2FibGVTQVgpKQorCSAgICBjdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsIHZhbCwgeG1sU3RybGVuKHZhbCkpOworCXJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZSBmaXJzdCByZWZlcmVuY2UgdG8gdGhlIGVudGl0eSB0cmlnZ2VyIGEgcGFyc2luZyBwaGFzZQorICAgICAqIHdoZXJlIHRoZSBlbnQtPmNoaWxkcmVuIGlzIGZpbGxlZCB3aXRoIHRoZSByZXN1bHQgZnJvbQorICAgICAqIHRoZSBwYXJzaW5nLgorICAgICAqLworICAgIGlmIChlbnQtPmNoZWNrZWQgPT0gMCkgeworCXVuc2lnbmVkIGxvbmcgb2xkbmJlbnQgPSBjdHh0LT5uYmVudGl0aWVzOworCisJLyoKKwkgKiBUaGlzIGlzIGEgYml0IGhhY2tpc2ggYnV0IHRoaXMgc2VlbXMgdGhlIGJlc3QKKwkgKiB3YXkgdG8gbWFrZSBzdXJlIGJvdGggU0FYIGFuZCBET00gZW50aXR5IHN1cHBvcnQKKwkgKiBiZWhhdmVzIG9rYXkuCisJICovCisJdm9pZCAqdXNlcl9kYXRhOworCWlmIChjdHh0LT51c2VyRGF0YSA9PSBjdHh0KQorCSAgICB1c2VyX2RhdGEgPSBOVUxMOworCWVsc2UKKwkgICAgdXNlcl9kYXRhID0gY3R4dC0+dXNlckRhdGE7CisKKwkvKgorCSAqIENoZWNrIHRoYXQgdGhpcyBlbnRpdHkgaXMgd2VsbCBmb3JtZWQKKwkgKiA0LjMuMjogQW4gaW50ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkCisJICogaWYgaXRzIHJlcGxhY2VtZW50IHRleHQgbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkCisJICogY29udGVudC4KKwkgKi8KKwlpZiAoZW50LT5ldHlwZSA9PSBYTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFkpIHsKKwkgICAgY3R4dC0+ZGVwdGgrKzsKKwkgICAgcmV0ID0geG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5SW50ZXJuYWwoY3R4dCwgZW50LT5jb250ZW50LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEsICZsaXN0KTsKKwkgICAgY3R4dC0+ZGVwdGgtLTsKKworCX0gZWxzZSBpZiAoZW50LT5ldHlwZSA9PSBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZKSB7CisJICAgIGN0eHQtPmRlcHRoKys7CisJICAgIHJldCA9IHhtbFBhcnNlRXh0ZXJuYWxFbnRpdHlQcml2YXRlKGN0eHQtPm15RG9jLCBjdHh0LCBjdHh0LT5zYXgsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEsIGN0eHQtPmRlcHRoLCBlbnQtPlVSSSwKKwkJCQkJICAgZW50LT5FeHRlcm5hbElELCAmbGlzdCk7CisJICAgIGN0eHQtPmRlcHRoLS07CisJfSBlbHNlIHsKKwkgICAgcmV0ID0gWE1MX0VSUl9FTlRJVFlfUEVfSU5URVJOQUw7CisJICAgIHhtbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkJICJpbnZhbGlkIGVudGl0eSB0eXBlIGZvdW5kXG4iLCBOVUxMKTsKKwl9CisKKwkvKgorCSAqIFN0b3JlIHRoZSBudW1iZXIgb2YgZW50aXRpZXMgbmVlZGluZyBwYXJzaW5nIGZvciB0aGlzIGVudGl0eQorCSAqIGNvbnRlbnQgYW5kIGRvIGNoZWNraW5ncworCSAqLworCWVudC0+Y2hlY2tlZCA9IGN0eHQtPm5iZW50aXRpZXMgLSBvbGRuYmVudDsKKwlpZiAocmV0ID09IFhNTF9FUlJfRU5USVRZX0xPT1ApIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FTlRJVFlfTE9PUCwgTlVMTCk7CisJICAgIHhtbEZyZWVOb2RlTGlzdChsaXN0KTsKKwkgICAgcmV0dXJuOworCX0KKwlpZiAoeG1sUGFyc2VyRW50aXR5Q2hlY2soY3R4dCwgMCwgZW50KSkgeworCSAgICB4bWxGcmVlTm9kZUxpc3QobGlzdCk7CisJICAgIHJldHVybjsKKwl9CisKKwlpZiAoKHJldCA9PSBYTUxfRVJSX09LKSAmJiAobGlzdCAhPSBOVUxMKSkgeworCSAgICBpZiAoKChlbnQtPmV0eXBlID09IFhNTF9JTlRFUk5BTF9HRU5FUkFMX0VOVElUWSkgfHwKKwkgICAgIChlbnQtPmV0eXBlID09IFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFkpKSYmCisJCShlbnQtPmNoaWxkcmVuID09IE5VTEwpKSB7CisJCWVudC0+Y2hpbGRyZW4gPSBsaXN0OworCQlpZiAoY3R4dC0+cmVwbGFjZUVudGl0aWVzKSB7CisJCSAgICAvKgorCQkgICAgICogUHJ1bmUgaXQgZGlyZWN0bHkgaW4gdGhlIGdlbmVyYXRlZCBkb2N1bWVudAorCQkgICAgICogZXhjZXB0IGZvciBzaW5nbGUgdGV4dCBub2Rlcy4KKwkJICAgICAqLworCQkgICAgaWYgKCgobGlzdC0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSAmJgorCQkJIChsaXN0LT5uZXh0ID09IE5VTEwpKSB8fAorCQkJKGN0eHQtPnBhcnNlTW9kZSA9PSBYTUxfUEFSU0VfUkVBREVSKSkgeworCQkJbGlzdC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIGVudDsKKwkJCWxpc3QgPSBOVUxMOworCQkJZW50LT5vd25lciA9IDE7CisJCSAgICB9IGVsc2UgeworCQkJZW50LT5vd25lciA9IDA7CisJCQl3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisJCQkgICAgbGlzdC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIGN0eHQtPm5vZGU7CisJCQkgICAgbGlzdC0+ZG9jID0gY3R4dC0+bXlEb2M7CisJCQkgICAgaWYgKGxpc3QtPm5leHQgPT0gTlVMTCkKKwkJCQllbnQtPmxhc3QgPSBsaXN0OworCQkJICAgIGxpc3QgPSBsaXN0LT5uZXh0OworCQkJfQorCQkJbGlzdCA9IGVudC0+Y2hpbGRyZW47CisjaWZkZWYgTElCWE1MX0xFR0FDWV9FTkFCTEVECisJCQlpZiAoZW50LT5ldHlwZSA9PSBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZKQorCQkJICB4bWxBZGRFbnRpdHlSZWZlcmVuY2UoZW50LCBsaXN0LCBOVUxMKTsKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIGVudC0+b3duZXIgPSAxOworCQkgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworCQkJbGlzdC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIGVudDsKKwkJCWlmIChsaXN0LT5uZXh0ID09IE5VTEwpCisJCQkgICAgZW50LT5sYXN0ID0gbGlzdDsKKwkJCWxpc3QgPSBsaXN0LT5uZXh0OworCQkgICAgfQorCQl9CisJICAgIH0gZWxzZSB7CisJCXhtbEZyZWVOb2RlTGlzdChsaXN0KTsKKwkJbGlzdCA9IE5VTEw7CisJICAgIH0KKwl9IGVsc2UgaWYgKChyZXQgIT0gWE1MX0VSUl9PSykgJiYKKwkJICAgKHJldCAhPSBYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZKSkgeworCSAgICB4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX1VOREVDTEFSRURfRU5USVRZLAorCQkgICAgICJFbnRpdHkgJyVzJyBmYWlsZWQgdG8gcGFyc2VcbiIsIGVudC0+bmFtZSk7CisJfSBlbHNlIGlmIChsaXN0ICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZU5vZGVMaXN0KGxpc3QpOworCSAgICBsaXN0ID0gTlVMTDsKKwl9CisJaWYgKGVudC0+Y2hlY2tlZCA9PSAwKQorCSAgICBlbnQtPmNoZWNrZWQgPSAxOworICAgIH0gZWxzZSBpZiAoZW50LT5jaGVja2VkICE9IDEpIHsKKwljdHh0LT5uYmVudGl0aWVzICs9IGVudC0+Y2hlY2tlZDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5vdyB0aGF0IHRoZSBlbnRpdHkgY29udGVudCBoYXMgYmVlbiBnYXRoZXJlZAorICAgICAqIHByb3ZpZGUgaXQgdG8gdGhlIGFwcGxpY2F0aW9uLCB0aGlzIGNhbiB0YWtlIGRpZmZlcmVudCBmb3JtcyBiYXNlZAorICAgICAqIG9uIHRoZSBwYXJzaW5nIG1vZGVzLgorICAgICAqLworICAgIGlmIChlbnQtPmNoaWxkcmVuID09IE5VTEwpIHsKKwkvKgorCSAqIFByb2JhYmx5IHJ1bm5pbmcgaW4gU0FYIG1vZGUgYW5kIHRoZSBjYWxsYmFja3MgZG9uJ3QKKwkgKiBidWlsZCB0aGUgZW50aXR5IGNvbnRlbnQuIFNvIHVubGVzcyB3ZSBhbHJlYWR5IHdlbnQKKwkgKiB0aG91Z2ggcGFyc2luZyBmb3IgZmlyc3QgY2hlY2tpbmcgZ28gdGhvdWdoIHRoZSBlbnRpdHkKKwkgKiBjb250ZW50IHRvIGdlbmVyYXRlIGNhbGxiYWNrcyBhc3NvY2lhdGVkIHRvIHRoZSBlbnRpdHkKKwkgKi8KKwlpZiAod2FzX2NoZWNrZWQgIT0gMCkgeworCSAgICB2b2lkICp1c2VyX2RhdGE7CisJICAgIC8qCisJICAgICAqIFRoaXMgaXMgYSBiaXQgaGFja2lzaCBidXQgdGhpcyBzZWVtcyB0aGUgYmVzdAorCSAgICAgKiB3YXkgdG8gbWFrZSBzdXJlIGJvdGggU0FYIGFuZCBET00gZW50aXR5IHN1cHBvcnQKKwkgICAgICogYmVoYXZlcyBva2F5LgorCSAgICAgKi8KKwkgICAgaWYgKGN0eHQtPnVzZXJEYXRhID09IGN0eHQpCisJCXVzZXJfZGF0YSA9IE5VTEw7CisJICAgIGVsc2UKKwkJdXNlcl9kYXRhID0gY3R4dC0+dXNlckRhdGE7CisKKwkgICAgaWYgKGVudC0+ZXR5cGUgPT0gWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZKSB7CisJCWN0eHQtPmRlcHRoKys7CisJCXJldCA9IHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeUludGVybmFsKGN0eHQsCisJCQkJICAgZW50LT5jb250ZW50LCB1c2VyX2RhdGEsIE5VTEwpOworCQljdHh0LT5kZXB0aC0tOworCSAgICB9IGVsc2UgaWYgKGVudC0+ZXR5cGUgPT0KKwkJICAgICAgIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFkpIHsKKwkJY3R4dC0+ZGVwdGgrKzsKKwkJcmV0ID0geG1sUGFyc2VFeHRlcm5hbEVudGl0eVByaXZhdGUoY3R4dC0+bXlEb2MsIGN0eHQsCisJCQkgICBjdHh0LT5zYXgsIHVzZXJfZGF0YSwgY3R4dC0+ZGVwdGgsCisJCQkgICBlbnQtPlVSSSwgZW50LT5FeHRlcm5hbElELCBOVUxMKTsKKwkJY3R4dC0+ZGVwdGgtLTsKKwkgICAgfSBlbHNlIHsKKwkJcmV0ID0gWE1MX0VSUl9FTlRJVFlfUEVfSU5URVJOQUw7CisJCXhtbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkJICAgICAiaW52YWxpZCBlbnRpdHkgdHlwZSBmb3VuZFxuIiwgTlVMTCk7CisJICAgIH0KKwkgICAgaWYgKHJldCA9PSBYTUxfRVJSX0VOVElUWV9MT09QKSB7CisJCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRU5USVRZX0xPT1AsIE5VTEwpOworCQlyZXR1cm47CisJICAgIH0KKwl9CisJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnNheC0+cmVmZXJlbmNlICE9IE5VTEwpICYmCisJICAgIChjdHh0LT5yZXBsYWNlRW50aXRpZXMgPT0gMCkgJiYgKCFjdHh0LT5kaXNhYmxlU0FYKSkgeworCSAgICAvKgorCSAgICAgKiBFbnRpdHkgcmVmZXJlbmNlIGNhbGxiYWNrIGNvbWVzIHNlY29uZCwgaXQncyBzb21ld2hhdAorCSAgICAgKiBzdXBlcmZsdW91cyBidXQgYSBjb21wYXRpYmlsaXR5IHRvIGhpc3RvcmljYWwgYmVoYXZpb3VyCisJICAgICAqLworCSAgICBjdHh0LT5zYXgtPnJlZmVyZW5jZShjdHh0LT51c2VyRGF0YSwgZW50LT5uYW1lKTsKKwl9CisJcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogSWYgd2UgZGlkbid0IGdldCBhbnkgY2hpbGRyZW4gZm9yIHRoZSBlbnRpdHkgYmVpbmcgYnVpbHQKKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5yZWZlcmVuY2UgIT0gTlVMTCkgJiYKKwkoY3R4dC0+cmVwbGFjZUVudGl0aWVzID09IDApICYmICghY3R4dC0+ZGlzYWJsZVNBWCkpIHsKKwkvKgorCSAqIENyZWF0ZSBhIG5vZGUuCisJICovCisJY3R4dC0+c2F4LT5yZWZlcmVuY2UoY3R4dC0+dXNlckRhdGEsIGVudC0+bmFtZSk7CisJcmV0dXJuOworICAgIH0KKworICAgIGlmICgoY3R4dC0+cmVwbGFjZUVudGl0aWVzKSB8fCAoZW50LT5jaGlsZHJlbiA9PSBOVUxMKSkgIHsKKwkvKgorCSAqIFRoZXJlIGlzIGEgcHJvYmxlbSBvbiB0aGUgaGFuZGxpbmcgb2YgX3ByaXZhdGUgZm9yIGVudGl0aWVzCisJICogKGJ1ZyAxNTU4MTYpOiBTaG91bGQgd2UgY29weSB0aGUgY29udGVudCBvZiB0aGUgZmllbGQgZnJvbQorCSAqIHRoZSBlbnRpdHkgKHBvc3NpYmx5IG92ZXJ3cml0aW5nIHNvbWUgdmFsdWUgc2V0IGJ5IHRoZSB1c2VyCisJICogd2hlbiBhIGNvcHkgaXMgY3JlYXRlZCksIHNob3VsZCB3ZSBsZWF2ZSBpdCBhbG9uZSwgb3Igc2hvdWxkCisJICogd2UgdHJ5IHRvIHRha2UgY2FyZSBvZiBkaWZmZXJlbnQgc2l0dWF0aW9ucz8gIFRoZSBwcm9ibGVtCisJICogaXMgZXhhY2VyYmF0ZWQgYnkgdGhlIHVzYWdlIG9mIHRoaXMgZmllbGQgYnkgdGhlIHhtbFJlYWRlci4KKwkgKiBUbyBmaXggdGhpcyBidWcsIHdlIGxvb2sgYXQgX3ByaXZhdGUgb24gdGhlIGNyZWF0ZWQgbm9kZQorCSAqIGFuZCwgaWYgaXQncyBOVUxMLCB3ZSBjb3B5IGluIHdoYXRldmVyIHdhcyBpbiB0aGUgZW50aXR5LgorCSAqIElmIGl0J3Mgbm90IE5VTEwgd2UgbGVhdmUgaXQgYWxvbmUuICBUaGlzIGlzIHNvbWV3aGF0IG9mIGEKKwkgKiBoYWNrIC0gbWF5YmUgd2Ugc2hvdWxkIGhhdmUgZnVydGhlciB0ZXN0cyB0byBkZXRlcm1pbmUKKwkgKiB3aGF0IHRvIGRvLgorCSAqLworCWlmICgoY3R4dC0+bm9kZSAhPSBOVUxMKSAmJiAoZW50LT5jaGlsZHJlbiAhPSBOVUxMKSkgeworCSAgICAvKgorCSAgICAgKiBTZWVtcyB3ZSBhcmUgZ2VuZXJhdGluZyB0aGUgRE9NIGNvbnRlbnQsIGRvCisJICAgICAqIGEgc2ltcGxlIHRyZWUgY29weSBmb3IgYWxsIHJlZmVyZW5jZXMgZXhjZXB0IHRoZSBmaXJzdAorCSAgICAgKiBJbiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBsaXN0IGNvbnRhaW5zIHRoZSByZXBsYWNlbWVudC4KKwkgICAgICogcHJvZ3Jlc3NpdmUgPT0gMiBtZWFucyB3ZSBhcmUgb3BlcmF0aW5nIG9uIHRoZSBSZWFkZXIKKwkgICAgICogYW5kIHNpbmNlIG5vZGVzIGFyZSBkaXNjYXJkZWQgd2UgbXVzdCBjb3B5IGFsbCB0aGUgdGltZS4KKwkgICAgICovCisJICAgIGlmICgoKGxpc3QgPT0gTlVMTCkgJiYgKGVudC0+b3duZXIgPT0gMCkpIHx8CisJCShjdHh0LT5wYXJzZU1vZGUgPT0gWE1MX1BBUlNFX1JFQURFUikpIHsKKwkJeG1sTm9kZVB0ciBudyA9IE5VTEwsIGN1ciwgZmlyc3RDaGlsZCA9IE5VTEw7CisKKwkJLyoKKwkJICogd2hlbiBvcGVyYXRpbmcgb24gYSByZWFkZXIsIHRoZSBlbnRpdGllcyBkZWZpbml0aW9ucworCQkgKiBhcmUgYWx3YXlzIG93bmluZyB0aGUgZW50aXRpZXMgc3VidHJlZS4KKwkJaWYgKGN0eHQtPnBhcnNlTW9kZSA9PSBYTUxfUEFSU0VfUkVBREVSKQorCQkgICAgZW50LT5vd25lciA9IDE7CisJCSAqLworCisJCWN1ciA9IGVudC0+Y2hpbGRyZW47CisJCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCQkgICAgbncgPSB4bWxEb2NDb3B5Tm9kZShjdXIsIGN0eHQtPm15RG9jLCAxKTsKKwkJICAgIGlmIChudyAhPSBOVUxMKSB7CisJCQlpZiAobnctPl9wcml2YXRlID09IE5VTEwpCisJCQkgICAgbnctPl9wcml2YXRlID0gY3VyLT5fcHJpdmF0ZTsKKwkJCWlmIChmaXJzdENoaWxkID09IE5VTEwpeworCQkJICAgIGZpcnN0Q2hpbGQgPSBudzsKKwkJCX0KKwkJCW53ID0geG1sQWRkQ2hpbGQoY3R4dC0+bm9kZSwgbncpOworCQkgICAgfQorCQkgICAgaWYgKGN1ciA9PSBlbnQtPmxhc3QpIHsKKwkJCS8qCisJCQkgKiBuZWVkZWQgdG8gZGV0ZWN0IHNvbWUgc3RyYW5nZSBlbXB0eQorCQkJICogbm9kZSBjYXNlcyBpbiB0aGUgcmVhZGVyIHRlc3RzCisJCQkgKi8KKwkJCWlmICgoY3R4dC0+cGFyc2VNb2RlID09IFhNTF9QQVJTRV9SRUFERVIpICYmCisJCQkgICAgKG53ICE9IE5VTEwpICYmCisJCQkgICAgKG53LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJCQkgICAgKG53LT5jaGlsZHJlbiA9PSBOVUxMKSkKKwkJCSAgICBudy0+ZXh0cmEgPSAxOworCisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGN1ciA9IGN1ci0+bmV4dDsKKwkJfQorI2lmZGVmIExJQlhNTF9MRUdBQ1lfRU5BQkxFRAorCQlpZiAoZW50LT5ldHlwZSA9PSBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZKQorCQkgIHhtbEFkZEVudGl0eVJlZmVyZW5jZShlbnQsIGZpcnN0Q2hpbGQsIG53KTsKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KKwkgICAgfSBlbHNlIGlmIChsaXN0ID09IE5VTEwpIHsKKwkJeG1sTm9kZVB0ciBudyA9IE5VTEwsIGN1ciwgbmV4dCwgbGFzdCwKKwkJCSAgIGZpcnN0Q2hpbGQgPSBOVUxMOworCQkvKgorCQkgKiBDb3B5IHRoZSBlbnRpdHkgY2hpbGQgbGlzdCBhbmQgbWFrZSBpdCB0aGUgbmV3CisJCSAqIGVudGl0eSBjaGlsZCBsaXN0LiBUaGUgZ29hbCBpcyB0byBtYWtlIHN1cmUgYW55CisJCSAqIElEIG9yIFJFRiByZWZlcmVuY2VkIHdpbGwgYmUgdGhlIG9uZSBmcm9tIHRoZQorCQkgKiBkb2N1bWVudCBjb250ZW50IGFuZCBub3QgdGhlIGVudGl0eSBjb3B5LgorCQkgKi8KKwkJY3VyID0gZW50LT5jaGlsZHJlbjsKKwkJZW50LT5jaGlsZHJlbiA9IE5VTEw7CisJCWxhc3QgPSBlbnQtPmxhc3Q7CisJCWVudC0+bGFzdCA9IE5VTEw7CisJCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCQkgICAgbmV4dCA9IGN1ci0+bmV4dDsKKwkJICAgIGN1ci0+bmV4dCA9IE5VTEw7CisJCSAgICBjdXItPnBhcmVudCA9IE5VTEw7CisJCSAgICBudyA9IHhtbERvY0NvcHlOb2RlKGN1ciwgY3R4dC0+bXlEb2MsIDEpOworCQkgICAgaWYgKG53ICE9IE5VTEwpIHsKKwkJCWlmIChudy0+X3ByaXZhdGUgPT0gTlVMTCkKKwkJCSAgICBudy0+X3ByaXZhdGUgPSBjdXItPl9wcml2YXRlOworCQkJaWYgKGZpcnN0Q2hpbGQgPT0gTlVMTCl7CisJCQkgICAgZmlyc3RDaGlsZCA9IGN1cjsKKwkJCX0KKwkJCXhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBlbnQsIG53KTsKKwkJCXhtbEFkZENoaWxkKGN0eHQtPm5vZGUsIGN1cik7CisJCSAgICB9CisJCSAgICBpZiAoY3VyID09IGxhc3QpCisJCQlicmVhazsKKwkJICAgIGN1ciA9IG5leHQ7CisJCX0KKwkJaWYgKGVudC0+b3duZXIgPT0gMCkKKwkJICAgIGVudC0+b3duZXIgPSAxOworI2lmZGVmIExJQlhNTF9MRUdBQ1lfRU5BQkxFRAorCQlpZiAoZW50LT5ldHlwZSA9PSBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZKQorCQkgIHhtbEFkZEVudGl0eVJlZmVyZW5jZShlbnQsIGZpcnN0Q2hpbGQsIG53KTsKKyNlbmRpZiAvKiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQgKi8KKwkgICAgfSBlbHNlIHsKKwkJY29uc3QgeG1sQ2hhciAqbmJrdGV4dDsKKworCQkvKgorCQkgKiB0aGUgbmFtZSBjaGFuZ2UgaXMgdG8gYXZvaWQgY29hbGVzY2luZyBvZiB0aGUKKwkJICogbm9kZSB3aXRoIGEgcG9zc2libGUgcHJldmlvdXMgdGV4dCBvbmUgd2hpY2gKKwkJICogd291bGQgbWFrZSBlbnQtPmNoaWxkcmVuIGEgZGFuZ2xpbmcgcG9pbnRlcgorCQkgKi8KKwkJbmJrdGV4dCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgQkFEX0NBU1QgIm5ia3RleHQiLAorCQkJCQktMSk7CisJCWlmIChlbnQtPmNoaWxkcmVuLT50eXBlID09IFhNTF9URVhUX05PREUpCisJCSAgICBlbnQtPmNoaWxkcmVuLT5uYW1lID0gbmJrdGV4dDsKKwkJaWYgKChlbnQtPmxhc3QgIT0gZW50LT5jaGlsZHJlbikgJiYKKwkJICAgIChlbnQtPmxhc3QtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkpCisJCSAgICBlbnQtPmxhc3QtPm5hbWUgPSBuYmt0ZXh0OworCQl4bWxBZGRDaGlsZExpc3QoY3R4dC0+bm9kZSwgZW50LT5jaGlsZHJlbik7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBUaGlzIGlzIHRvIGF2b2lkIGEgbmFzdHkgc2lkZSBlZmZlY3QsIHNlZQorCSAgICAgKiBjaGFyYWN0ZXJzKCkgaW4gU0FYLmMKKwkgICAgICovCisJICAgIGN0eHQtPm5vZGVtZW0gPSAwOworCSAgICBjdHh0LT5ub2RlbGVuID0gMDsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9Cit9CisKKy8qKgorICogeG1sUGFyc2VFbnRpdHlSZWY6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIEVOVElUWSByZWZlcmVuY2VzIGRlY2xhcmF0aW9ucworICoKKyAqIFs2OF0gRW50aXR5UmVmIDo6PSAnJicgTmFtZSAnOycKKyAqCisgKiBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0KKyAqIEluIGEgZG9jdW1lbnQgd2l0aG91dCBhbnkgRFRELCBhIGRvY3VtZW50IHdpdGggb25seSBhbiBpbnRlcm5hbCBEVEQKKyAqIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQKKyAqIHdpdGggInN0YW5kYWxvbmU9J3llcyciLCB0aGUgTmFtZSBnaXZlbiBpbiB0aGUgZW50aXR5IHJlZmVyZW5jZQorICogbXVzdCBtYXRjaCB0aGF0IGluIGFuIGVudGl0eSBkZWNsYXJhdGlvbiwgZXhjZXB0IHRoYXQgd2VsbC1mb3JtZWQKKyAqIGRvY3VtZW50cyBuZWVkIG5vdCBkZWNsYXJlIGFueSBvZiB0aGUgZm9sbG93aW5nIGVudGl0aWVzOiBhbXAsIGx0LAorICogZ3QsIGFwb3MsIHF1b3QuICBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZQorICogYW55IHJlZmVyZW5jZSB0byBpdC4gIFNpbWlsYXJseSwgdGhlIGRlY2xhcmF0aW9uIG9mIGEgZ2VuZXJhbCBlbnRpdHkKKyAqIG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0IHdoaWNoIGFwcGVhcnMgaW4gYSBkZWZhdWx0IHZhbHVlIGluIGFuCisgKiBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbi4gTm90ZSB0aGF0IGlmIGVudGl0aWVzIGFyZSBkZWNsYXJlZCBpbiB0aGUKKyAqIGV4dGVybmFsIHN1YnNldCBvciBpbiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMsIGEgbm9uLXZhbGlkYXRpbmcKKyAqIHByb2Nlc3NvciBpcyBub3Qgb2JsaWdhdGVkIHRvIHJlYWQgYW5kIHByb2Nlc3MgdGhlaXIgZGVjbGFyYXRpb25zOworICogZm9yIHN1Y2ggZG9jdW1lbnRzLCB0aGUgcnVsZSB0aGF0IGFuIGVudGl0eSBtdXN0IGJlIGRlY2xhcmVkIGlzIGEKKyAqIHdlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50IG9ubHkgaWYgc3RhbmRhbG9uZT0neWVzJy4KKyAqCisgKiBbIFdGQzogUGFyc2VkIEVudGl0eSBdCisgKiBBbiBlbnRpdHkgcmVmZXJlbmNlIG11c3Qgbm90IGNvbnRhaW4gdGhlIG5hbWUgb2YgYW4gdW5wYXJzZWQgZW50aXR5CisgKgorICogUmV0dXJucyB0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLCBvciBOVUxMIG90aGVyd2lzZS4KKyAqLworeG1sRW50aXR5UHRyCit4bWxQYXJzZUVudGl0eVJlZih4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbEVudGl0eVB0ciBlbnQgPSBOVUxMOworCisgICAgR1JPVzsKKworICAgIGlmIChSQVcgIT0gJyYnKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgTkVYVDsKKyAgICBuYW1lID0geG1sUGFyc2VOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisJCSAgICAgICAieG1sUGFyc2VFbnRpdHlSZWY6IG5vIG5hbWVcbiIpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChSQVcgIT0gJzsnKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FTlRJVFlSRUZfU0VNSUNPTF9NSVNTSU5HLCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIE5FWFQ7CisKKyAgICAvKgorICAgICAqIFByZWRlZmluZWQgZW50aXRlcyBvdmVycmlkZSBhbnkgZXh0cmEgZGVmaW5pdGlvbgorICAgICAqLworICAgIGlmICgoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9PTERTQVgpID09IDApIHsKKyAgICAgICAgZW50ID0geG1sR2V0UHJlZGVmaW5lZEVudGl0eShuYW1lKTsKKyAgICAgICAgaWYgKGVudCAhPSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuKGVudCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBJbmNyZWF0ZSB0aGUgbnVtYmVyIG9mIGVudGl0eSByZWZlcmVuY2VzIHBhcnNlZAorICAgICAqLworICAgIGN0eHQtPm5iZW50aXRpZXMrKzsKKworICAgIC8qCisgICAgICogQXNrIGZpcnN0IFNBWCBmb3IgZW50aXR5IHJlc29sdXRpb24sIG90aGVyd2lzZSB0cnkgdGhlCisgICAgICogZW50aXRpZXMgd2hpY2ggbWF5IGhhdmUgc3RvcmVkIGluIHRoZSBwYXJzZXIgY29udGV4dC4KKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+c2F4ICE9IE5VTEwpIHsKKwlpZiAoY3R4dC0+c2F4LT5nZXRFbnRpdHkgIT0gTlVMTCkKKwkgICAgZW50ID0gY3R4dC0+c2F4LT5nZXRFbnRpdHkoY3R4dC0+dXNlckRhdGEsIG5hbWUpOworCWlmICgoY3R4dC0+d2VsbEZvcm1lZCA9PSAxICkgJiYgKGVudCA9PSBOVUxMKSAmJiAKKwkgICAgKGN0eHQtPm9wdGlvbnMgJiBYTUxfUEFSU0VfT0xEU0FYKSkKKwkgICAgZW50ID0geG1sR2V0UHJlZGVmaW5lZEVudGl0eShuYW1lKTsKKwlpZiAoKGN0eHQtPndlbGxGb3JtZWQgPT0gMSApICYmIChlbnQgPT0gTlVMTCkgJiYKKwkgICAgKGN0eHQtPnVzZXJEYXRhPT1jdHh0KSkgeworCSAgICBlbnQgPSB4bWxTQVgyR2V0RW50aXR5KGN0eHQsIG5hbWUpOworCX0KKyAgICB9CisgICAgLyoKKyAgICAgKiBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0KKyAgICAgKiBJbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4KKyAgICAgKiBpbnRlcm5hbCBEVEQgc3Vic2V0IHdoaWNoIGNvbnRhaW5zIG5vIHBhcmFtZXRlciBlbnRpdHkKKyAgICAgKiByZWZlcmVuY2VzLCBvciBhIGRvY3VtZW50IHdpdGggInN0YW5kYWxvbmU9J3llcyciLCB0aGUKKyAgICAgKiBOYW1lIGdpdmVuIGluIHRoZSBlbnRpdHkgcmVmZXJlbmNlIG11c3QgbWF0Y2ggdGhhdCBpbiBhbgorICAgICAqIGVudGl0eSBkZWNsYXJhdGlvbiwgZXhjZXB0IHRoYXQgd2VsbC1mb3JtZWQgZG9jdW1lbnRzCisgICAgICogbmVlZCBub3QgZGVjbGFyZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBlbnRpdGllczogYW1wLCBsdCwKKyAgICAgKiBndCwgYXBvcywgcXVvdC4KKyAgICAgKiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkKKyAgICAgKiByZWZlcmVuY2UgdG8gaXQuCisgICAgICogU2ltaWxhcmx5LCB0aGUgZGVjbGFyYXRpb24gb2YgYSBnZW5lcmFsIGVudGl0eSBtdXN0CisgICAgICogcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0IHdoaWNoIGFwcGVhcnMgaW4gYSBkZWZhdWx0CisgICAgICogdmFsdWUgaW4gYW4gYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uIE5vdGUgdGhhdCBpZgorICAgICAqIGVudGl0aWVzIGFyZSBkZWNsYXJlZCBpbiB0aGUgZXh0ZXJuYWwgc3Vic2V0IG9yIGluCisgICAgICogZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzLCBhIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvcgorICAgICAqIGlzIG5vdCBvYmxpZ2F0ZWQgdG8gcmVhZCBhbmQgcHJvY2VzcyB0aGVpciBkZWNsYXJhdGlvbnM7CisgICAgICogZm9yIHN1Y2ggZG9jdW1lbnRzLCB0aGUgcnVsZSB0aGF0IGFuIGVudGl0eSBtdXN0IGJlCisgICAgICogZGVjbGFyZWQgaXMgYSB3ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludCBvbmx5IGlmCisgICAgICogc3RhbmRhbG9uZT0neWVzJy4KKyAgICAgKi8KKyAgICBpZiAoZW50ID09IE5VTEwpIHsKKwlpZiAoKGN0eHQtPnN0YW5kYWxvbmUgPT0gMSkgfHwKKwkgICAgKChjdHh0LT5oYXNFeHRlcm5hbFN1YnNldCA9PSAwKSAmJgorCSAgICAgKGN0eHQtPmhhc1BFcmVmcyA9PSAwKSkpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9VTkRFQ0xBUkVEX0VOVElUWSwKKwkJICAgICAiRW50aXR5ICclcycgbm90IGRlZmluZWRcbiIsIG5hbWUpOworCX0gZWxzZSB7CisJICAgIHhtbEVyck1zZ1N0cihjdHh0LCBYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZLAorCQkgICAgICJFbnRpdHkgJyVzJyBub3QgZGVmaW5lZFxuIiwgbmFtZSk7CisJICAgIGlmICgoY3R4dC0+aW5TdWJzZXQgPT0gMCkgJiYKKwkJKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorCQkoY3R4dC0+c2F4LT5yZWZlcmVuY2UgIT0gTlVMTCkpIHsKKwkJY3R4dC0+c2F4LT5yZWZlcmVuY2UoY3R4dC0+dXNlckRhdGEsIG5hbWUpOworCSAgICB9CisJfQorCWN0eHQtPnZhbGlkID0gMDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFsgV0ZDOiBQYXJzZWQgRW50aXR5IF0KKyAgICAgKiBBbiBlbnRpdHkgcmVmZXJlbmNlIG11c3Qgbm90IGNvbnRhaW4gdGhlIG5hbWUgb2YgYW4KKyAgICAgKiB1bnBhcnNlZCBlbnRpdHkKKyAgICAgKi8KKyAgICBlbHNlIGlmIChlbnQtPmV0eXBlID09IFhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWSkgeworCXhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfVU5QQVJTRURfRU5USVRZLAorCQkgIkVudGl0eSByZWZlcmVuY2UgdG8gdW5wYXJzZWQgZW50aXR5ICVzXG4iLCBuYW1lKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFsgV0ZDOiBObyBFeHRlcm5hbCBFbnRpdHkgUmVmZXJlbmNlcyBdCisgICAgICogQXR0cmlidXRlIHZhbHVlcyBjYW5ub3QgY29udGFpbiBkaXJlY3Qgb3IgaW5kaXJlY3QKKyAgICAgKiBlbnRpdHkgcmVmZXJlbmNlcyB0byBleHRlcm5hbCBlbnRpdGllcy4KKyAgICAgKi8KKyAgICBlbHNlIGlmICgoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRSkgJiYKKwkgICAgIChlbnQtPmV0eXBlID09IFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFkpKSB7CisJeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9FTlRJVFlfSVNfRVhURVJOQUwsCisJICAgICAiQXR0cmlidXRlIHJlZmVyZW5jZXMgZXh0ZXJuYWwgZW50aXR5ICclcydcbiIsIG5hbWUpOworICAgIH0KKyAgICAvKgorICAgICAqIFsgV0ZDOiBObyA8IGluIEF0dHJpYnV0ZSBWYWx1ZXMgXQorICAgICAqIFRoZSByZXBsYWNlbWVudCB0ZXh0IG9mIGFueSBlbnRpdHkgcmVmZXJyZWQgdG8gZGlyZWN0bHkgb3IKKyAgICAgKiBpbmRpcmVjdGx5IGluIGFuIGF0dHJpYnV0ZSB2YWx1ZSAob3RoZXIgdGhhbiAiJmx0OyIpIG11c3QKKyAgICAgKiBub3QgY29udGFpbiBhIDwuIAorICAgICAqLworICAgIGVsc2UgaWYgKChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFKSAmJgorCSAgICAgKGVudCAhPSBOVUxMKSAmJiAoZW50LT5jb250ZW50ICE9IE5VTEwpICYmCisJICAgICAoZW50LT5ldHlwZSAhPSBYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkpICYmCisJICAgICAoeG1sU3RyY2hyKGVudC0+Y29udGVudCwgJzwnKSkpIHsKKwl4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0xUX0lOX0FUVFJJQlVURSwKKyAgICAiJzwnIGluIGVudGl0eSAnJXMnIGlzIG5vdCBhbGxvd2VkIGluIGF0dHJpYnV0ZXMgdmFsdWVzXG4iLCBuYW1lKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEludGVybmFsIGNoZWNrLCBubyBwYXJhbWV0ZXIgZW50aXRpZXMgaGVyZSAuLi4KKyAgICAgKi8KKyAgICBlbHNlIHsKKwlzd2l0Y2ggKGVudC0+ZXR5cGUpIHsKKwkgICAgY2FzZSBYTUxfSU5URVJOQUxfUEFSQU1FVEVSX0VOVElUWToKKwkgICAgY2FzZSBYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWToKKwkgICAgeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9FTlRJVFlfSVNfUEFSQU1FVEVSLAorCSAgICAgIkF0dGVtcHQgdG8gcmVmZXJlbmNlIHRoZSBwYXJhbWV0ZXIgZW50aXR5ICclcydcbiIsCisJCQkgICAgICBuYW1lKTsKKwkgICAgYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJICAgIGJyZWFrOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFsgV0ZDOiBObyBSZWN1cnNpb24gXQorICAgICAqIEEgcGFyc2VkIGVudGl0eSBtdXN0IG5vdCBjb250YWluIGEgcmVjdXJzaXZlIHJlZmVyZW5jZQorICAgICAqIHRvIGl0c2VsZiwgZWl0aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkuIAorICAgICAqIERvbmUgc29tZXdoZXJlIGVsc2UKKyAgICAgKi8KKyAgICByZXR1cm4oZW50KTsKK30KKworLyoqCisgKiB4bWxQYXJzZVN0cmluZ0VudGl0eVJlZjoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAc3RyOiAgYSBwb2ludGVyIHRvIGFuIGluZGV4IGluIHRoZSBzdHJpbmcKKyAqCisgKiBwYXJzZSBFTlRJVFkgcmVmZXJlbmNlcyBkZWNsYXJhdGlvbnMsIGJ1dCB0aGlzIHZlcnNpb24gcGFyc2VzIGl0IGZyb20KKyAqIGEgc3RyaW5nIHZhbHVlLgorICoKKyAqIFs2OF0gRW50aXR5UmVmIDo6PSAnJicgTmFtZSAnOycKKyAqCisgKiBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0KKyAqIEluIGEgZG9jdW1lbnQgd2l0aG91dCBhbnkgRFRELCBhIGRvY3VtZW50IHdpdGggb25seSBhbiBpbnRlcm5hbCBEVEQKKyAqIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQKKyAqIHdpdGggInN0YW5kYWxvbmU9J3llcyciLCB0aGUgTmFtZSBnaXZlbiBpbiB0aGUgZW50aXR5IHJlZmVyZW5jZQorICogbXVzdCBtYXRjaCB0aGF0IGluIGFuIGVudGl0eSBkZWNsYXJhdGlvbiwgZXhjZXB0IHRoYXQgd2VsbC1mb3JtZWQKKyAqIGRvY3VtZW50cyBuZWVkIG5vdCBkZWNsYXJlIGFueSBvZiB0aGUgZm9sbG93aW5nIGVudGl0aWVzOiBhbXAsIGx0LAorICogZ3QsIGFwb3MsIHF1b3QuICBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZQorICogYW55IHJlZmVyZW5jZSB0byBpdC4gIFNpbWlsYXJseSwgdGhlIGRlY2xhcmF0aW9uIG9mIGEgZ2VuZXJhbCBlbnRpdHkKKyAqIG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0IHdoaWNoIGFwcGVhcnMgaW4gYSBkZWZhdWx0IHZhbHVlIGluIGFuCisgKiBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbi4gTm90ZSB0aGF0IGlmIGVudGl0aWVzIGFyZSBkZWNsYXJlZCBpbiB0aGUKKyAqIGV4dGVybmFsIHN1YnNldCBvciBpbiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMsIGEgbm9uLXZhbGlkYXRpbmcKKyAqIHByb2Nlc3NvciBpcyBub3Qgb2JsaWdhdGVkIHRvIHJlYWQgYW5kIHByb2Nlc3MgdGhlaXIgZGVjbGFyYXRpb25zOworICogZm9yIHN1Y2ggZG9jdW1lbnRzLCB0aGUgcnVsZSB0aGF0IGFuIGVudGl0eSBtdXN0IGJlIGRlY2xhcmVkIGlzIGEKKyAqIHdlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50IG9ubHkgaWYgc3RhbmRhbG9uZT0neWVzJy4KKyAqCisgKiBbIFdGQzogUGFyc2VkIEVudGl0eSBdCisgKiBBbiBlbnRpdHkgcmVmZXJlbmNlIG11c3Qgbm90IGNvbnRhaW4gdGhlIG5hbWUgb2YgYW4gdW5wYXJzZWQgZW50aXR5CisgKgorICogUmV0dXJucyB0aGUgeG1sRW50aXR5UHRyIGlmIGZvdW5kLCBvciBOVUxMIG90aGVyd2lzZS4gVGhlIHN0ciBwb2ludGVyCisgKiBpcyB1cGRhdGVkIHRvIHRoZSBjdXJyZW50IGxvY2F0aW9uIGluIHRoZSBzdHJpbmcuCisgKi8KK3N0YXRpYyB4bWxFbnRpdHlQdHIKK3htbFBhcnNlU3RyaW5nRW50aXR5UmVmKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqKiBzdHIpIHsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIGNvbnN0IHhtbENoYXIgKnB0cjsKKyAgICB4bWxDaGFyIGN1cjsKKyAgICB4bWxFbnRpdHlQdHIgZW50ID0gTlVMTDsKKworICAgIGlmICgoc3RyID09IE5VTEwpIHx8ICgqc3RyID09IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgcHRyID0gKnN0cjsKKyAgICBjdXIgPSAqcHRyOworICAgIGlmIChjdXIgIT0gJyYnKQorCXJldHVybihOVUxMKTsKKworICAgIHB0cisrOworICAgIG5hbWUgPSB4bWxQYXJzZVN0cmluZ05hbWUoY3R4dCwgJnB0cik7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkJICAgICAgICJ4bWxQYXJzZVN0cmluZ0VudGl0eVJlZjogbm8gbmFtZVxuIik7CisJKnN0ciA9IHB0cjsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICgqcHRyICE9ICc7JykgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRU5USVRZUkVGX1NFTUlDT0xfTUlTU0lORywgTlVMTCk7CisgICAgICAgIHhtbEZyZWUobmFtZSk7CisJKnN0ciA9IHB0cjsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHB0cisrOworCisKKyAgICAvKgorICAgICAqIFByZWRlZmluZWQgZW50aXRlcyBvdmVycmlkZSBhbnkgZXh0cmEgZGVmaW5pdGlvbgorICAgICAqLworICAgIGlmICgoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9PTERTQVgpID09IDApIHsKKyAgICAgICAgZW50ID0geG1sR2V0UHJlZGVmaW5lZEVudGl0eShuYW1lKTsKKyAgICAgICAgaWYgKGVudCAhPSBOVUxMKSB7CisgICAgICAgICAgICB4bWxGcmVlKG5hbWUpOworICAgICAgICAgICAgKnN0ciA9IHB0cjsKKyAgICAgICAgICAgIHJldHVybihlbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBJbmNyZWF0ZSB0aGUgbnVtYmVyIG9mIGVudGl0eSByZWZlcmVuY2VzIHBhcnNlZAorICAgICAqLworICAgIGN0eHQtPm5iZW50aXRpZXMrKzsKKworICAgIC8qCisgICAgICogQXNrIGZpcnN0IFNBWCBmb3IgZW50aXR5IHJlc29sdXRpb24sIG90aGVyd2lzZSB0cnkgdGhlCisgICAgICogZW50aXRpZXMgd2hpY2ggbWF5IGhhdmUgc3RvcmVkIGluIHRoZSBwYXJzZXIgY29udGV4dC4KKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+c2F4ICE9IE5VTEwpIHsKKwlpZiAoY3R4dC0+c2F4LT5nZXRFbnRpdHkgIT0gTlVMTCkKKwkgICAgZW50ID0gY3R4dC0+c2F4LT5nZXRFbnRpdHkoY3R4dC0+dXNlckRhdGEsIG5hbWUpOworCWlmICgoZW50ID09IE5VTEwpICYmIChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX09MRFNBWCkpCisJICAgIGVudCA9IHhtbEdldFByZWRlZmluZWRFbnRpdHkobmFtZSk7CisJaWYgKChlbnQgPT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJEYXRhPT1jdHh0KSkgeworCSAgICBlbnQgPSB4bWxTQVgyR2V0RW50aXR5KGN0eHQsIG5hbWUpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXQorICAgICAqIEluIGEgZG9jdW1lbnQgd2l0aG91dCBhbnkgRFRELCBhIGRvY3VtZW50IHdpdGggb25seSBhbgorICAgICAqIGludGVybmFsIERURCBzdWJzZXQgd2hpY2ggY29udGFpbnMgbm8gcGFyYW1ldGVyIGVudGl0eQorICAgICAqIHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQgd2l0aCAic3RhbmRhbG9uZT0neWVzJyIsIHRoZQorICAgICAqIE5hbWUgZ2l2ZW4gaW4gdGhlIGVudGl0eSByZWZlcmVuY2UgbXVzdCBtYXRjaCB0aGF0IGluIGFuCisgICAgICogZW50aXR5IGRlY2xhcmF0aW9uLCBleGNlcHQgdGhhdCB3ZWxsLWZvcm1lZCBkb2N1bWVudHMKKyAgICAgKiBuZWVkIG5vdCBkZWNsYXJlIGFueSBvZiB0aGUgZm9sbG93aW5nIGVudGl0aWVzOiBhbXAsIGx0LAorICAgICAqIGd0LCBhcG9zLCBxdW90LgorICAgICAqIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBwcmVjZWRlIGFueQorICAgICAqIHJlZmVyZW5jZSB0byBpdC4KKyAgICAgKiBTaW1pbGFybHksIHRoZSBkZWNsYXJhdGlvbiBvZiBhIGdlbmVyYWwgZW50aXR5IG11c3QKKyAgICAgKiBwcmVjZWRlIGFueSByZWZlcmVuY2UgdG8gaXQgd2hpY2ggYXBwZWFycyBpbiBhIGRlZmF1bHQKKyAgICAgKiB2YWx1ZSBpbiBhbiBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbi4gTm90ZSB0aGF0IGlmCisgICAgICogZW50aXRpZXMgYXJlIGRlY2xhcmVkIGluIHRoZSBleHRlcm5hbCBzdWJzZXQgb3IgaW4KKyAgICAgKiBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMsIGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yCisgICAgICogaXMgbm90IG9ibGlnYXRlZCB0byByZWFkIGFuZCBwcm9jZXNzIHRoZWlyIGRlY2xhcmF0aW9uczsKKyAgICAgKiBmb3Igc3VjaCBkb2N1bWVudHMsIHRoZSBydWxlIHRoYXQgYW4gZW50aXR5IG11c3QgYmUKKyAgICAgKiBkZWNsYXJlZCBpcyBhIHdlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50IG9ubHkgaWYKKyAgICAgKiBzdGFuZGFsb25lPSd5ZXMnLiAKKyAgICAgKi8KKyAgICBpZiAoZW50ID09IE5VTEwpIHsKKwlpZiAoKGN0eHQtPnN0YW5kYWxvbmUgPT0gMSkgfHwKKwkgICAgKChjdHh0LT5oYXNFeHRlcm5hbFN1YnNldCA9PSAwKSAmJgorCSAgICAgKGN0eHQtPmhhc1BFcmVmcyA9PSAwKSkpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9VTkRFQ0xBUkVEX0VOVElUWSwKKwkJICAgICAiRW50aXR5ICclcycgbm90IGRlZmluZWRcbiIsIG5hbWUpOworCX0gZWxzZSB7CisJICAgIHhtbEVyck1zZ1N0cihjdHh0LCBYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZLAorCQkJICAiRW50aXR5ICclcycgbm90IGRlZmluZWRcbiIsCisJCQkgIG5hbWUpOworCX0KKwkvKiBUT0RPID8gY2hlY2sgcmVncmVzc2lvbnMgY3R4dC0+dmFsaWQgPSAwOyAqLworICAgIH0KKworICAgIC8qCisgICAgICogWyBXRkM6IFBhcnNlZCBFbnRpdHkgXQorICAgICAqIEFuIGVudGl0eSByZWZlcmVuY2UgbXVzdCBub3QgY29udGFpbiB0aGUgbmFtZSBvZiBhbgorICAgICAqIHVucGFyc2VkIGVudGl0eQorICAgICAqLworICAgIGVsc2UgaWYgKGVudC0+ZXR5cGUgPT0gWE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZKSB7CisJeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9VTlBBUlNFRF9FTlRJVFksCisJCSAiRW50aXR5IHJlZmVyZW5jZSB0byB1bnBhcnNlZCBlbnRpdHkgJXNcbiIsIG5hbWUpOworICAgIH0KKworICAgIC8qCisgICAgICogWyBXRkM6IE5vIEV4dGVybmFsIEVudGl0eSBSZWZlcmVuY2VzIF0KKyAgICAgKiBBdHRyaWJ1dGUgdmFsdWVzIGNhbm5vdCBjb250YWluIGRpcmVjdCBvciBpbmRpcmVjdAorICAgICAqIGVudGl0eSByZWZlcmVuY2VzIHRvIGV4dGVybmFsIGVudGl0aWVzLgorICAgICAqLworICAgIGVsc2UgaWYgKChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFKSAmJgorCSAgICAgKGVudC0+ZXR5cGUgPT0gWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWSkpIHsKKwl4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0VOVElUWV9JU19FWFRFUk5BTCwKKwkgIkF0dHJpYnV0ZSByZWZlcmVuY2VzIGV4dGVybmFsIGVudGl0eSAnJXMnXG4iLCBuYW1lKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBbIFdGQzogTm8gPCBpbiBBdHRyaWJ1dGUgVmFsdWVzIF0KKyAgICAgKiBUaGUgcmVwbGFjZW1lbnQgdGV4dCBvZiBhbnkgZW50aXR5IHJlZmVycmVkIHRvIGRpcmVjdGx5IG9yCisgICAgICogaW5kaXJlY3RseSBpbiBhbiBhdHRyaWJ1dGUgdmFsdWUgKG90aGVyIHRoYW4gIiZsdDsiKSBtdXN0CisgICAgICogbm90IGNvbnRhaW4gYSA8LgorICAgICAqLworICAgIGVsc2UgaWYgKChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFKSAmJgorCSAgICAgKGVudCAhPSBOVUxMKSAmJiAoZW50LT5jb250ZW50ICE9IE5VTEwpICYmCisJICAgICAoZW50LT5ldHlwZSAhPSBYTUxfSU5URVJOQUxfUFJFREVGSU5FRF9FTlRJVFkpICYmCisJICAgICAoeG1sU3RyY2hyKGVudC0+Y29udGVudCwgJzwnKSkpIHsKKwl4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0xUX0lOX0FUVFJJQlVURSwKKyAgICAgIic8JyBpbiBlbnRpdHkgJyVzJyBpcyBub3QgYWxsb3dlZCBpbiBhdHRyaWJ1dGVzIHZhbHVlc1xuIiwKKwkJCSAgbmFtZSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBjaGVjaywgbm8gcGFyYW1ldGVyIGVudGl0aWVzIGhlcmUgLi4uCisgICAgICovCisgICAgZWxzZSB7CisJc3dpdGNoIChlbnQtPmV0eXBlKSB7CisJICAgIGNhc2UgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJICAgIGNhc2UgWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJCXhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfRU5USVRZX0lTX1BBUkFNRVRFUiwKKwkgICAgICJBdHRlbXB0IHRvIHJlZmVyZW5jZSB0aGUgcGFyYW1ldGVyIGVudGl0eSAnJXMnXG4iLAorCQkJCSAgbmFtZSk7CisJICAgIGJyZWFrOworCSAgICBkZWZhdWx0OgorCSAgICBicmVhazsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBbIFdGQzogTm8gUmVjdXJzaW9uIF0KKyAgICAgKiBBIHBhcnNlZCBlbnRpdHkgbXVzdCBub3QgY29udGFpbiBhIHJlY3Vyc2l2ZSByZWZlcmVuY2UKKyAgICAgKiB0byBpdHNlbGYsIGVpdGhlciBkaXJlY3RseSBvciBpbmRpcmVjdGx5LgorICAgICAqIERvbmUgc29tZXdoZXJlIGVsc2UKKyAgICAgKi8KKworICAgIHhtbEZyZWUobmFtZSk7CisgICAgKnN0ciA9IHB0cjsKKyAgICByZXR1cm4oZW50KTsKK30KKworLyoqCisgKiB4bWxQYXJzZVBFUmVmZXJlbmNlOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBQRVJlZmVyZW5jZSBkZWNsYXJhdGlvbnMKKyAqIFRoZSBlbnRpdHkgY29udGVudCBpcyBoYW5kbGVkIGRpcmVjdGx5IGJ5IHB1c2hpbmcgaXQncyBjb250ZW50IGFzCisgKiBhIG5ldyBpbnB1dCBzdHJlYW0uCisgKgorICogWzY5XSBQRVJlZmVyZW5jZSA6Oj0gJyUnIE5hbWUgJzsnCisgKgorICogWyBXRkM6IE5vIFJlY3Vyc2lvbiBdCisgKiBBIHBhcnNlZCBlbnRpdHkgbXVzdCBub3QgY29udGFpbiBhIHJlY3Vyc2l2ZQorICogcmVmZXJlbmNlIHRvIGl0c2VsZiwgZWl0aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkuIAorICoKKyAqIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXQorICogSW4gYSBkb2N1bWVudCB3aXRob3V0IGFueSBEVEQsIGEgZG9jdW1lbnQgd2l0aCBvbmx5IGFuIGludGVybmFsIERURAorICogc3Vic2V0IHdoaWNoIGNvbnRhaW5zIG5vIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlcywgb3IgYSBkb2N1bWVudAorICogd2l0aCAic3RhbmRhbG9uZT0neWVzJyIsIC4uLiAgLi4uIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlcgorICogZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0Li4uCisgKgorICogWyBWQzogRW50aXR5IERlY2xhcmVkIF0KKyAqIEluIGEgZG9jdW1lbnQgd2l0aCBhbiBleHRlcm5hbCBzdWJzZXQgb3IgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzCisgKiB3aXRoICJzdGFuZGFsb25lPSdubyciLCAuLi4gIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5CisgKiBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdC4uLgorICoKKyAqIFsgV0ZDOiBJbiBEVEQgXQorICogUGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzIG1heSBvbmx5IGFwcGVhciBpbiB0aGUgRFRELgorICogTk9URTogbWlzbGVhZGluZyBidXQgdGhpcyBpcyBoYW5kbGVkLgorICovCit2b2lkCit4bWxQYXJzZVBFUmVmZXJlbmNlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbEVudGl0eVB0ciBlbnRpdHkgPSBOVUxMOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworCisgICAgaWYgKFJBVyAhPSAnJScpCisgICAgICAgIHJldHVybjsKKyAgICBORVhUOworICAgIG5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkJICAgICAgICJ4bWxQYXJzZVBFUmVmZXJlbmNlOiBubyBuYW1lXG4iKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChSQVcgIT0gJzsnKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FTlRJVFlSRUZfU0VNSUNPTF9NSVNTSU5HLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5FWFQ7CisKKyAgICAvKgorICAgICAqIEluY3JlYXRlIHRoZSBudW1iZXIgb2YgZW50aXR5IHJlZmVyZW5jZXMgcGFyc2VkCisgICAgICovCisgICAgY3R4dC0+bmJlbnRpdGllcysrOworCisgICAgLyoKKyAgICAgKiBSZXF1ZXN0IHRoZSBlbnRpdHkgZnJvbSBTQVgKKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorCShjdHh0LT5zYXgtPmdldFBhcmFtZXRlckVudGl0eSAhPSBOVUxMKSkKKwllbnRpdHkgPSBjdHh0LT5zYXgtPmdldFBhcmFtZXRlckVudGl0eShjdHh0LT51c2VyRGF0YSwKKwkJCQkJICAgICAgIG5hbWUpOworICAgIGlmIChlbnRpdHkgPT0gTlVMTCkgeworCS8qCisJICogWyBXRkM6IEVudGl0eSBEZWNsYXJlZCBdCisJICogSW4gYSBkb2N1bWVudCB3aXRob3V0IGFueSBEVEQsIGEgZG9jdW1lbnQgd2l0aCBvbmx5IGFuCisJICogaW50ZXJuYWwgRFREIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5CisJICogcmVmZXJlbmNlcywgb3IgYSBkb2N1bWVudCB3aXRoICJzdGFuZGFsb25lPSd5ZXMnIiwgLi4uCisJICogLi4uIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBwcmVjZWRlCisJICogYW55IHJlZmVyZW5jZSB0byBpdC4uLgorCSAqLworCWlmICgoY3R4dC0+c3RhbmRhbG9uZSA9PSAxKSB8fAorCSAgICAoKGN0eHQtPmhhc0V4dGVybmFsU3Vic2V0ID09IDApICYmCisJICAgICAoY3R4dC0+aGFzUEVyZWZzID09IDApKSkgeworCSAgICB4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX1VOREVDTEFSRURfRU5USVRZLAorCQkJICAgICAgIlBFUmVmZXJlbmNlOiAlJSVzOyBub3QgZm91bmRcbiIsCisJCQkgICAgICBuYW1lKTsKKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiBbIFZDOiBFbnRpdHkgRGVjbGFyZWQgXQorCSAgICAgKiBJbiBhIGRvY3VtZW50IHdpdGggYW4gZXh0ZXJuYWwgc3Vic2V0IG9yIGV4dGVybmFsCisJICAgICAqIHBhcmFtZXRlciBlbnRpdGllcyB3aXRoICJzdGFuZGFsb25lPSdubyciLCAuLi4KKwkgICAgICogLi4uIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdAorCSAgICAgKiBwcmVjZWRlIGFueSByZWZlcmVuY2UgdG8gaXQuLi4KKwkgICAgICovCisJICAgIHhtbFdhcm5pbmdNc2coY3R4dCwgWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWSwKKwkJCSAgIlBFUmVmZXJlbmNlOiAlJSVzOyBub3QgZm91bmRcbiIsCisJCQkgIG5hbWUsIE5VTEwpOworCSAgICBjdHh0LT52YWxpZCA9IDA7CisJfQorICAgIH0gZWxzZSB7CisJLyoKKwkgKiBJbnRlcm5hbCBjaGVja2luZyBpbiBjYXNlIHRoZSBlbnRpdHkgcXVlc3QgYmFyZmVkCisJICovCisJaWYgKChlbnRpdHktPmV0eXBlICE9IFhNTF9JTlRFUk5BTF9QQVJBTUVURVJfRU5USVRZKSAmJgorCSAgICAoZW50aXR5LT5ldHlwZSAhPSBYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWSkpIHsKKwkgICAgeG1sV2FybmluZ01zZyhjdHh0LCBYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZLAorCQkgICJJbnRlcm5hbDogJSUlczsgaXMgbm90IGEgcGFyYW1ldGVyIGVudGl0eVxuIiwKKwkJCSAgbmFtZSwgTlVMTCk7CisJfSBlbHNlIGlmIChjdHh0LT5pbnB1dC0+ZnJlZSAhPSBkZWFsbG9jYmxhbmtzd3JhcHBlcikgeworCSAgICBpbnB1dCA9IHhtbE5ld0JsYW5rc1dyYXBwZXJJbnB1dFN0cmVhbShjdHh0LCBlbnRpdHkpOworCSAgICBpZiAoeG1sUHVzaElucHV0KGN0eHQsIGlucHV0KSA8IDApCisJCXJldHVybjsKKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiBUT0RPICEhIQorCSAgICAgKiBoYW5kbGUgdGhlIGV4dHJhIHNwYWNlcyBhZGRlZCBiZWZvcmUgYW5kIGFmdGVyCisJICAgICAqIGMuZi4gaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNhcy1QRQorCSAgICAgKi8KKwkgICAgaW5wdXQgPSB4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbShjdHh0LCBlbnRpdHkpOworCSAgICBpZiAoeG1sUHVzaElucHV0KGN0eHQsIGlucHV0KSA8IDApCisJCXJldHVybjsKKwkgICAgaWYgKChlbnRpdHktPmV0eXBlID09IFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZKSAmJgorCQkoQ01QNShDVVJfUFRSLCAnPCcsICc/JywgJ3gnLCAnbScsICdsJykpICYmCisJCShJU19CTEFOS19DSChOWFQoNSkpKSkgeworCQl4bWxQYXJzZVRleHREZWNsKGN0eHQpOworCQlpZiAoY3R4dC0+ZXJyTm8gPT0KKwkJICAgIFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcpIHsKKwkJICAgIC8qCisJCSAgICAgKiBUaGUgWE1MIFJFQyBpbnN0cnVjdHMgdXMgdG8gc3RvcCBwYXJzaW5nCisJCSAgICAgKiByaWdodCBoZXJlCisJCSAgICAgKi8KKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKwkJICAgIHJldHVybjsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKyAgICBjdHh0LT5oYXNQRXJlZnMgPSAxOworfQorCisvKioKKyAqIHhtbExvYWRFbnRpdHlDb250ZW50OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBlbnRpdHk6IGFuIHVubG9hZGVkIHN5c3RlbSBlbnRpdHkKKyAqCisgKiBMb2FkIHRoZSBvcmlnaW5hbCBjb250ZW50IG9mIHRoZSBnaXZlbiBzeXN0ZW0gZW50aXR5IGZyb20gdGhlCisgKiBFeHRlcm5hbElEL1N5c3RlbUlEIGdpdmVuLiBUaGlzIGlzIHRvIGJlIHVzZWQgZm9yIEluY2x1ZGVkIGluIExpdGVyYWwKKyAqIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwvI2lubGl0ZXJhbCBwcm9jZXNzaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworc3RhdGljIGludAoreG1sTG9hZEVudGl0eUNvbnRlbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxFbnRpdHlQdHIgZW50aXR5KSB7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQ7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsKKyAgICBpbnQgbCwgYzsKKyAgICBpbnQgY291bnQgPSAwOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChlbnRpdHkgPT0gTlVMTCkgfHwKKyAgICAgICAgKChlbnRpdHktPmV0eXBlICE9IFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZKSAmJgorCSAoZW50aXR5LT5ldHlwZSAhPSBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZKSkgfHwKKwkoZW50aXR5LT5jb250ZW50ICE9IE5VTEwpKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICAgICAgICAieG1sTG9hZEVudGl0eUNvbnRlbnQgcGFyYW1ldGVyIGVycm9yIik7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgaWYgKHhtbFBhcnNlckRlYnVnRW50aXRpZXMpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJSZWFkaW5nICVzIGVudGl0eSBjb250ZW50IGlucHV0XG4iLCBlbnRpdHktPm5hbWUpOworCisgICAgYnVmID0geG1sQnVmZmVyQ3JlYXRlKCk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICAgICAgICAieG1sTG9hZEVudGl0eUNvbnRlbnQgcGFyYW1ldGVyIGVycm9yIik7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgaW5wdXQgPSB4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbShjdHh0LCBlbnRpdHkpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICAgICAgICAieG1sTG9hZEVudGl0eUNvbnRlbnQgaW5wdXQgZXJyb3IiKTsKKwl4bWxCdWZmZXJGcmVlKGJ1Zik7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBQdXNoIHRoZSBlbnRpdHkgYXMgdGhlIGN1cnJlbnQgaW5wdXQsIHJlYWQgY2hhciBieSBjaGFyCisgICAgICogc2F2aW5nIHRvIHRoZSBidWZmZXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgZW50aXR5IG9yIGFuIGVycm9yCisgICAgICovCisgICAgaWYgKHhtbFB1c2hJbnB1dChjdHh0LCBpbnB1dCkgPCAwKSB7CisgICAgICAgIHhtbEJ1ZmZlckZyZWUoYnVmKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIEdST1c7CisgICAgYyA9IENVUl9DSEFSKGwpOworICAgIHdoaWxlICgoY3R4dC0+aW5wdXQgPT0gaW5wdXQpICYmIChjdHh0LT5pbnB1dC0+Y3VyIDwgY3R4dC0+aW5wdXQtPmVuZCkgJiYKKyAgICAgICAgICAgKElTX0NIQVIoYykpKSB7CisgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsIGN0eHQtPmlucHV0LT5jdXIsIGwpOworCWlmIChjb3VudCsrID4gMTAwKSB7CisJICAgIGNvdW50ID0gMDsKKwkgICAgR1JPVzsKKwl9CisJTkVYVEwobCk7CisJYyA9IENVUl9DSEFSKGwpOworICAgIH0KKworICAgIGlmICgoY3R4dC0+aW5wdXQgPT0gaW5wdXQpICYmIChjdHh0LT5pbnB1dC0+Y3VyID49IGN0eHQtPmlucHV0LT5lbmQpKSB7CisgICAgICAgIHhtbFBvcElucHV0KGN0eHQpOworICAgIH0gZWxzZSBpZiAoIUlTX0NIQVIoYykpIHsKKyAgICAgICAgeG1sRmF0YWxFcnJNc2dJbnQoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxMb2FkRW50aXR5Q29udGVudDogaW52YWxpZCBjaGFyIHZhbHVlICVkXG4iLAorCSAgICAgICAgICAgICAgICAgIGMpOworCXhtbEJ1ZmZlckZyZWUoYnVmKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBlbnRpdHktPmNvbnRlbnQgPSBidWYtPmNvbnRlbnQ7CisgICAgYnVmLT5jb250ZW50ID0gTlVMTDsKKyAgICB4bWxCdWZmZXJGcmVlKGJ1Zik7CisKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VTdHJpbmdQRVJlZmVyZW5jZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAc3RyOiAgYSBwb2ludGVyIHRvIGFuIGluZGV4IGluIHRoZSBzdHJpbmcKKyAqCisgKiBwYXJzZSBQRVJlZmVyZW5jZSBkZWNsYXJhdGlvbnMKKyAqCisgKiBbNjldIFBFUmVmZXJlbmNlIDo6PSAnJScgTmFtZSAnOycKKyAqCisgKiBbIFdGQzogTm8gUmVjdXJzaW9uIF0KKyAqIEEgcGFyc2VkIGVudGl0eSBtdXN0IG5vdCBjb250YWluIGEgcmVjdXJzaXZlCisgKiByZWZlcmVuY2UgdG8gaXRzZWxmLCBlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4KKyAqCisgKiBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0KKyAqIEluIGEgZG9jdW1lbnQgd2l0aG91dCBhbnkgRFRELCBhIGRvY3VtZW50IHdpdGggb25seSBhbiBpbnRlcm5hbCBEVEQKKyAqIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQKKyAqIHdpdGggInN0YW5kYWxvbmU9J3llcyciLCAuLi4gIC4uLiBUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIKKyAqIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdC4uLgorICoKKyAqIFsgVkM6IEVudGl0eSBEZWNsYXJlZCBdCisgKiBJbiBhIGRvY3VtZW50IHdpdGggYW4gZXh0ZXJuYWwgc3Vic2V0IG9yIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdGllcworICogd2l0aCAic3RhbmRhbG9uZT0nbm8nIiwgLi4uICAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eQorICogbXVzdCBwcmVjZWRlIGFueSByZWZlcmVuY2UgdG8gaXQuLi4KKyAqCisgKiBbIFdGQzogSW4gRFREIF0KKyAqIFBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBtYXkgb25seSBhcHBlYXIgaW4gdGhlIERURC4KKyAqIE5PVEU6IG1pc2xlYWRpbmcgYnV0IHRoaXMgaXMgaGFuZGxlZC4KKyAqCisgKiBSZXR1cm5zIHRoZSBzdHJpbmcgb2YgdGhlIGVudGl0eSBjb250ZW50LgorICogICAgICAgICBzdHIgaXMgdXBkYXRlZCB0byB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgaW5kZXgKKyAqLworc3RhdGljIHhtbEVudGl0eVB0cgoreG1sUGFyc2VTdHJpbmdQRVJlZmVyZW5jZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKipzdHIpIHsKKyAgICBjb25zdCB4bWxDaGFyICpwdHI7CisgICAgeG1sQ2hhciBjdXI7CisgICAgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxFbnRpdHlQdHIgZW50aXR5ID0gTlVMTDsKKworICAgIGlmICgoc3RyID09IE5VTEwpIHx8ICgqc3RyID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgcHRyID0gKnN0cjsKKyAgICBjdXIgPSAqcHRyOworICAgIGlmIChjdXIgIT0gJyUnKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgcHRyKys7CisgICAgbmFtZSA9IHhtbFBhcnNlU3RyaW5nTmFtZShjdHh0LCAmcHRyKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9OQU1FX1JFUVVJUkVELAorCQkgICAgICAgInhtbFBhcnNlU3RyaW5nUEVSZWZlcmVuY2U6IG5vIG5hbWVcbiIpOworCSpzdHIgPSBwdHI7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBjdXIgPSAqcHRyOworICAgIGlmIChjdXIgIT0gJzsnKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FTlRJVFlSRUZfU0VNSUNPTF9NSVNTSU5HLCBOVUxMKTsKKwl4bWxGcmVlKG5hbWUpOworCSpzdHIgPSBwdHI7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBwdHIrKzsKKworICAgIC8qCisgICAgICogSW5jcmVhdGUgdGhlIG51bWJlciBvZiBlbnRpdHkgcmVmZXJlbmNlcyBwYXJzZWQKKyAgICAgKi8KKyAgICBjdHh0LT5uYmVudGl0aWVzKys7CisKKyAgICAvKgorICAgICAqIFJlcXVlc3QgdGhlIGVudGl0eSBmcm9tIFNBWAorICAgICAqLworICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJKGN0eHQtPnNheC0+Z2V0UGFyYW1ldGVyRW50aXR5ICE9IE5VTEwpKQorCWVudGl0eSA9IGN0eHQtPnNheC0+Z2V0UGFyYW1ldGVyRW50aXR5KGN0eHQtPnVzZXJEYXRhLAorCQkJCQkgICAgICAgbmFtZSk7CisgICAgaWYgKGVudGl0eSA9PSBOVUxMKSB7CisJLyoKKwkgKiBbIFdGQzogRW50aXR5IERlY2xhcmVkIF0KKwkgKiBJbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4KKwkgKiBpbnRlcm5hbCBEVEQgc3Vic2V0IHdoaWNoIGNvbnRhaW5zIG5vIHBhcmFtZXRlciBlbnRpdHkKKwkgKiByZWZlcmVuY2VzLCBvciBhIGRvY3VtZW50IHdpdGggInN0YW5kYWxvbmU9J3llcyciLCAuLi4KKwkgKiAuLi4gVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUKKwkgKiBhbnkgcmVmZXJlbmNlIHRvIGl0Li4uCisJICovCisJaWYgKChjdHh0LT5zdGFuZGFsb25lID09IDEpIHx8CisJICAgICgoY3R4dC0+aGFzRXh0ZXJuYWxTdWJzZXQgPT0gMCkgJiYgKGN0eHQtPmhhc1BFcmVmcyA9PSAwKSkpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9VTkRFQ0xBUkVEX0VOVElUWSwKKwkJICJQRVJlZmVyZW5jZTogJSUlczsgbm90IGZvdW5kXG4iLCBuYW1lKTsKKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiBbIFZDOiBFbnRpdHkgRGVjbGFyZWQgXQorCSAgICAgKiBJbiBhIGRvY3VtZW50IHdpdGggYW4gZXh0ZXJuYWwgc3Vic2V0IG9yIGV4dGVybmFsCisJICAgICAqIHBhcmFtZXRlciBlbnRpdGllcyB3aXRoICJzdGFuZGFsb25lPSdubyciLCAuLi4KKwkgICAgICogLi4uIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdAorCSAgICAgKiBwcmVjZWRlIGFueSByZWZlcmVuY2UgdG8gaXQuLi4KKwkgICAgICovCisJICAgIHhtbFdhcm5pbmdNc2coY3R4dCwgWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWSwKKwkJCSAgIlBFUmVmZXJlbmNlOiAlJSVzOyBub3QgZm91bmRcbiIsCisJCQkgIG5hbWUsIE5VTEwpOworCSAgICBjdHh0LT52YWxpZCA9IDA7CisJfQorICAgIH0gZWxzZSB7CisJLyoKKwkgKiBJbnRlcm5hbCBjaGVja2luZyBpbiBjYXNlIHRoZSBlbnRpdHkgcXVlc3QgYmFyZmVkCisJICovCisJaWYgKChlbnRpdHktPmV0eXBlICE9IFhNTF9JTlRFUk5BTF9QQVJBTUVURVJfRU5USVRZKSAmJgorCSAgICAoZW50aXR5LT5ldHlwZSAhPSBYTUxfRVhURVJOQUxfUEFSQU1FVEVSX0VOVElUWSkpIHsKKwkgICAgeG1sV2FybmluZ01zZyhjdHh0LCBYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZLAorCQkJICAiJSUlczsgaXMgbm90IGEgcGFyYW1ldGVyIGVudGl0eVxuIiwKKwkJCSAgbmFtZSwgTlVMTCk7CisJfQorICAgIH0KKyAgICBjdHh0LT5oYXNQRXJlZnMgPSAxOworICAgIHhtbEZyZWUobmFtZSk7CisgICAgKnN0ciA9IHB0cjsKKyAgICByZXR1cm4oZW50aXR5KTsKK30KKworLyoqCisgKiB4bWxQYXJzZURvY1R5cGVEZWNsOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhIERPQ1RZUEUgZGVjbGFyYXRpb24KKyAqCisgKiBbMjhdIGRvY3R5cGVkZWNsIDo6PSAnPCFET0NUWVBFJyBTIE5hbWUgKFMgRXh0ZXJuYWxJRCk/IFM/IAorICogICAgICAgICAgICAgICAgICAgICAgKCdbJyAobWFya3VwZGVjbCB8IFBFUmVmZXJlbmNlIHwgUykqICddJyBTPyk/ICc+JworICoKKyAqIFsgVkM6IFJvb3QgRWxlbWVudCBUeXBlIF0KKyAqIFRoZSBOYW1lIGluIHRoZSBkb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uIG11c3QgbWF0Y2ggdGhlIGVsZW1lbnQKKyAqIHR5cGUgb2YgdGhlIHJvb3QgZWxlbWVudC4gCisgKi8KKwordm9pZAoreG1sUGFyc2VEb2NUeXBlRGVjbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lID0gTlVMTDsKKyAgICB4bWxDaGFyICpFeHRlcm5hbElEID0gTlVMTDsKKyAgICB4bWxDaGFyICpVUkkgPSBOVUxMOworCisgICAgLyoKKyAgICAgKiBXZSBrbm93IHRoYXQgJzwhRE9DVFlQRScgaGFzIGJlZW4gZGV0ZWN0ZWQuCisgICAgICovCisgICAgU0tJUCg5KTsKKworICAgIFNLSVBfQkxBTktTOworCisgICAgLyoKKyAgICAgKiBQYXJzZSB0aGUgRE9DVFlQRSBuYW1lLgorICAgICAqLworICAgIG5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkJICAgICAgICJ4bWxQYXJzZURvY1R5cGVEZWNsIDogbm8gRE9DVFlQRSBuYW1lICFcbiIpOworICAgIH0KKyAgICBjdHh0LT5pbnRTdWJOYW1lID0gbmFtZTsKKworICAgIFNLSVBfQkxBTktTOworCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgU3lzdGVtSUQgYW5kIEV4dGVybmFsSUQKKyAgICAgKi8KKyAgICBVUkkgPSB4bWxQYXJzZUV4dGVybmFsSUQoY3R4dCwgJkV4dGVybmFsSUQsIDEpOworCisgICAgaWYgKChVUkkgIT0gTlVMTCkgfHwgKEV4dGVybmFsSUQgIT0gTlVMTCkpIHsKKyAgICAgICAgY3R4dC0+aGFzRXh0ZXJuYWxTdWJzZXQgPSAxOworICAgIH0KKyAgICBjdHh0LT5leHRTdWJVUkkgPSBVUkk7CisgICAgY3R4dC0+ZXh0U3ViU3lzdGVtID0gRXh0ZXJuYWxJRDsKKworICAgIFNLSVBfQkxBTktTOworCisgICAgLyoKKyAgICAgKiBDcmVhdGUgYW5kIHVwZGF0ZSB0aGUgaW50ZXJuYWwgc3Vic2V0LgorICAgICAqLworICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmludGVybmFsU3Vic2V0ICE9IE5VTEwpICYmCisJKCFjdHh0LT5kaXNhYmxlU0FYKSkKKwljdHh0LT5zYXgtPmludGVybmFsU3Vic2V0KGN0eHQtPnVzZXJEYXRhLCBuYW1lLCBFeHRlcm5hbElELCBVUkkpOworCisgICAgLyoKKyAgICAgKiBJcyB0aGVyZSBhbnkgaW50ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9ucyA/CisgICAgICogdGhleSBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5IGluIHhtbFBhcnNlSW50ZXJuYWxTdWJzZXQoKQorICAgICAqLworICAgIGlmIChSQVcgPT0gJ1snKQorCXJldHVybjsKKworICAgIC8qCisgICAgICogV2Ugc2hvdWxkIGJlIGF0IHRoZSBlbmQgb2YgdGhlIERPQ1RZUEUgZGVjbGFyYXRpb24uCisgICAgICovCisgICAgaWYgKFJBVyAhPSAnPicpIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0RPQ1RZUEVfTk9UX0ZJTklTSEVELCBOVUxMKTsKKyAgICB9CisgICAgTkVYVDsKK30KKworLyoqCisgKiB4bWxQYXJzZUludGVybmFsU3Vic2V0OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSB0aGUgaW50ZXJuYWwgc3Vic2V0IGRlY2xhcmF0aW9uCisgKgorICogWzI4IGVuZF0gKCdbJyAobWFya3VwZGVjbCB8IFBFUmVmZXJlbmNlIHwgUykqICddJyBTPyk/ICc+JworICovCisKK3N0YXRpYyB2b2lkCit4bWxQYXJzZUludGVybmFsU3Vic2V0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIC8qCisgICAgICogSXMgdGhlcmUgYW55IERURCBkZWZpbml0aW9uID8KKyAgICAgKi8KKyAgICBpZiAoUkFXID09ICdbJykgeworICAgICAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9EVEQ7CisgICAgICAgIE5FWFQ7CisJLyoKKwkgKiBQYXJzZSB0aGUgc3VjY2Vzc2lvbiBvZiBNYXJrdXAgZGVjbGFyYXRpb25zIGFuZCAKKwkgKiBQRVJlZmVyZW5jZXMuCisJICogU3Vic2VxdWVuY2UgKG1hcmt1cGRlY2wgfCBQRVJlZmVyZW5jZSB8IFMpKgorCSAqLworCXdoaWxlIChSQVcgIT0gJ10nKSB7CisJICAgIGNvbnN0IHhtbENoYXIgKmNoZWNrID0gQ1VSX1BUUjsKKwkgICAgdW5zaWduZWQgaW50IGNvbnMgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQ7CisKKwkgICAgU0tJUF9CTEFOS1M7CisJICAgIHhtbFBhcnNlTWFya3VwRGVjbChjdHh0KTsKKwkgICAgeG1sUGFyc2VQRVJlZmVyZW5jZShjdHh0KTsKKworCSAgICAvKgorCSAgICAgKiBQb3AtdXAgb2YgZmluaXNoZWQgZW50aXRpZXMuCisJICAgICAqLworCSAgICB3aGlsZSAoKFJBVyA9PSAwKSAmJiAoY3R4dC0+aW5wdXROciA+IDEpKQorCQl4bWxQb3BJbnB1dChjdHh0KTsKKworCSAgICBpZiAoKENVUl9QVFIgPT0gY2hlY2spICYmIChjb25zID09IGN0eHQtPmlucHV0LT5jb25zdW1lZCkpIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICJ4bWxQYXJzZUludGVybmFsU3Vic2V0OiBlcnJvciBkZXRlY3RlZCBpbiBNYXJrdXAgZGVjbGFyYXRpb25cbiIpOworCQlicmVhazsKKwkgICAgfQorCX0KKwlpZiAoUkFXID09ICddJykgeyAKKwkgICAgTkVYVDsKKwkgICAgU0tJUF9CTEFOS1M7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogV2Ugc2hvdWxkIGJlIGF0IHRoZSBlbmQgb2YgdGhlIERPQ1RZUEUgZGVjbGFyYXRpb24uCisgICAgICovCisgICAgaWYgKFJBVyAhPSAnPicpIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0RPQ1RZUEVfTk9UX0ZJTklTSEVELCBOVUxMKTsKKyAgICB9CisgICAgTkVYVDsKK30KKworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKy8qKgorICogeG1sUGFyc2VBdHRyaWJ1dGU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHZhbHVlOiAgYSB4bWxDaGFyICoqIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBwYXJzZSBhbiBhdHRyaWJ1dGUKKyAqCisgKiBbNDFdIEF0dHJpYnV0ZSA6Oj0gTmFtZSBFcSBBdHRWYWx1ZQorICoKKyAqIFsgV0ZDOiBObyBFeHRlcm5hbCBFbnRpdHkgUmVmZXJlbmNlcyBdCisgKiBBdHRyaWJ1dGUgdmFsdWVzIGNhbm5vdCBjb250YWluIGRpcmVjdCBvciBpbmRpcmVjdCBlbnRpdHkgcmVmZXJlbmNlcworICogdG8gZXh0ZXJuYWwgZW50aXRpZXMuCisgKgorICogWyBXRkM6IE5vIDwgaW4gQXR0cmlidXRlIFZhbHVlcyBdCisgKiBUaGUgcmVwbGFjZW1lbnQgdGV4dCBvZiBhbnkgZW50aXR5IHJlZmVycmVkIHRvIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgaW4KKyAqIGFuIGF0dHJpYnV0ZSB2YWx1ZSAob3RoZXIgdGhhbiAiJmx0OyIpIG11c3Qgbm90IGNvbnRhaW4gYSA8LiAKKyAqIAorICogWyBWQzogQXR0cmlidXRlIFZhbHVlIFR5cGUgXQorICogVGhlIGF0dHJpYnV0ZSBtdXN0IGhhdmUgYmVlbiBkZWNsYXJlZDsgdGhlIHZhbHVlIG11c3QgYmUgb2YgdGhlIHR5cGUKKyAqIGRlY2xhcmVkIGZvciBpdC4KKyAqCisgKiBbMjVdIEVxIDo6PSBTPyAnPScgUz8KKyAqCisgKiBXaXRoIG5hbWVzcGFjZToKKyAqCisgKiBbTlMgMTFdIEF0dHJpYnV0ZSA6Oj0gUU5hbWUgRXEgQXR0VmFsdWUKKyAqCisgKiBBbHNvIHRoZSBjYXNlIFFOYW1lID09IHhtbG5zOj8/PyBpcyBoYW5kbGVkIGluZGVwZW5kZW50bHkgYXMgYSBuYW1lc3BhY2UKKyAqIGRlZmluaXRpb24uCisgKgorICogUmV0dXJucyB0aGUgYXR0cmlidXRlIG5hbWUsIGFuZCB0aGUgdmFsdWUgaW4gKnZhbHVlLgorICovCisKK2NvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VBdHRyaWJ1dGUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxDaGFyICoqdmFsdWUpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKnZhbDsKKworICAgICp2YWx1ZSA9IE5VTEw7CisgICAgR1JPVzsKKyAgICBuYW1lID0geG1sUGFyc2VOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisJICAgICAgICAgICAgICAgImVycm9yIHBhcnNpbmcgYXR0cmlidXRlIG5hbWVcbiIpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiByZWFkIHRoZSB2YWx1ZQorICAgICAqLworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChSQVcgPT0gJz0nKSB7CisgICAgICAgIE5FWFQ7CisJU0tJUF9CTEFOS1M7CisJdmFsID0geG1sUGFyc2VBdHRWYWx1ZShjdHh0KTsKKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgIH0gZWxzZSB7CisJeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9BVFRSSUJVVEVfV0lUSE9VVF9WQUxVRSwKKwkgICAgICAgIlNwZWNpZmljYXRpb24gbWFuZGF0ZSB2YWx1ZSBmb3IgYXR0cmlidXRlICVzXG4iLCBuYW1lKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDaGVjayB0aGF0IHhtbDpsYW5nIGNvbmZvcm1zIHRvIHRoZSBzcGVjaWZpY2F0aW9uCisgICAgICogTm8gbW9yZSByZWdpc3RlcmVkIGFzIGFuIGVycm9yLCBqdXN0IGdlbmVyYXRlIGEgd2FybmluZyBub3cKKyAgICAgKiBzaW5jZSB0aGlzIHdhcyBkZXByZWNhdGVkIGluIFhNTCBzZWNvbmQgZWRpdGlvbgorICAgICAqLworICAgIGlmICgoY3R4dC0+cGVkYW50aWMpICYmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAieG1sOmxhbmciKSkpIHsKKwlpZiAoIXhtbENoZWNrTGFuZ3VhZ2VJRCh2YWwpKSB7CisJICAgIHhtbFdhcm5pbmdNc2coY3R4dCwgWE1MX1dBUl9MQU5HX1ZBTFVFLAorCQkgICAgICAgICAgIk1hbGZvcm1lZCB2YWx1ZSBmb3IgeG1sOmxhbmcgOiAlc1xuIiwKKwkJCSAgdmFsLCBOVUxMKTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDaGVjayB0aGF0IHhtbDpzcGFjZSBjb25mb3JtcyB0byB0aGUgc3BlY2lmaWNhdGlvbgorICAgICAqLworICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAieG1sOnNwYWNlIikpIHsKKwlpZiAoeG1sU3RyRXF1YWwodmFsLCBCQURfQ0FTVCAiZGVmYXVsdCIpKQorCSAgICAqKGN0eHQtPnNwYWNlKSA9IDA7CisJZWxzZSBpZiAoeG1sU3RyRXF1YWwodmFsLCBCQURfQ0FTVCAicHJlc2VydmUiKSkKKwkgICAgKihjdHh0LT5zcGFjZSkgPSAxOworCWVsc2UgeworCQl4bWxXYXJuaW5nTXNnKGN0eHQsIFhNTF9XQVJfU1BBQ0VfVkFMVUUsCisiSW52YWxpZCB2YWx1ZSBcIiVzXCIgZm9yIHhtbDpzcGFjZSA6IFwiZGVmYXVsdFwiIG9yIFwicHJlc2VydmVcIiBleHBlY3RlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgTlVMTCk7CisJfQorICAgIH0KKworICAgICp2YWx1ZSA9IHZhbDsKKyAgICByZXR1cm4obmFtZSk7Cit9CisKKy8qKgorICogeG1sUGFyc2VTdGFydFRhZzoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiAKKyAqIHBhcnNlIGEgc3RhcnQgb2YgdGFnIGVpdGhlciBmb3IgcnVsZSBlbGVtZW50IG9yCisgKiBFbXB0eUVsZW1lbnQuIEluIGJvdGggY2FzZSB3ZSBkb24ndCBwYXJzZSB0aGUgdGFnIGNsb3NpbmcgY2hhcnMuCisgKgorICogWzQwXSBTVGFnIDo6PSAnPCcgTmFtZSAoUyBBdHRyaWJ1dGUpKiBTPyAnPicKKyAqCisgKiBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0KKyAqIE5vIGF0dHJpYnV0ZSBuYW1lIG1heSBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgc3RhcnQtdGFnIG9yCisgKiBlbXB0eS1lbGVtZW50IHRhZy4gCisgKgorICogWzQ0XSBFbXB0eUVsZW1UYWcgOjo9ICc8JyBOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICcvPicKKyAqCisgKiBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0KKyAqIE5vIGF0dHJpYnV0ZSBuYW1lIG1heSBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgc3RhcnQtdGFnIG9yCisgKiBlbXB0eS1lbGVtZW50IHRhZy4gCisgKgorICogV2l0aCBuYW1lc3BhY2U6CisgKgorICogW05TIDhdIFNUYWcgOjo9ICc8JyBRTmFtZSAoUyBBdHRyaWJ1dGUpKiBTPyAnPicKKyAqCisgKiBbTlMgMTBdIEVtcHR5RWxlbWVudCA6Oj0gJzwnIFFOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICcvPicKKyAqCisgKiBSZXR1cm5zIHRoZSBlbGVtZW50IG5hbWUgcGFyc2VkCisgKi8KKworY29uc3QgeG1sQ2hhciAqCit4bWxQYXJzZVN0YXJ0VGFnKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgY29uc3QgeG1sQ2hhciAqYXR0bmFtZTsKKyAgICB4bWxDaGFyICphdHR2YWx1ZTsKKyAgICBjb25zdCB4bWxDaGFyICoqYXR0cyA9IGN0eHQtPmF0dHM7CisgICAgaW50IG5iYXR0cyA9IDA7CisgICAgaW50IG1heGF0dHMgPSBjdHh0LT5tYXhhdHRzOworICAgIGludCBpOworCisgICAgaWYgKFJBVyAhPSAnPCcpIHJldHVybihOVUxMKTsKKyAgICBORVhUMTsKKworICAgIG5hbWUgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfTkFNRV9SRVFVSVJFRCwKKwkgICAgICJ4bWxQYXJzZVN0YXJ0VGFnOiBpbnZhbGlkIGVsZW1lbnQgbmFtZVxuIik7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5vdyBwYXJzZSB0aGUgYXR0cmlidXRlcywgaXQgZW5kcyB1cCB3aXRoIHRoZSBlbmRpbmcKKyAgICAgKgorICAgICAqIChTIEF0dHJpYnV0ZSkqIFM/CisgICAgICovCisgICAgU0tJUF9CTEFOS1M7CisgICAgR1JPVzsKKworICAgIHdoaWxlICgoUkFXICE9ICc+JykgJiYgCisJICAgKChSQVcgIT0gJy8nKSB8fCAoTlhUKDEpICE9ICc+JykpICYmCisJICAgKElTX0JZVEVfQ0hBUihSQVcpKSkgeworCWNvbnN0IHhtbENoYXIgKnEgPSBDVVJfUFRSOworCXVuc2lnbmVkIGludCBjb25zID0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkOworCisJYXR0bmFtZSA9IHhtbFBhcnNlQXR0cmlidXRlKGN0eHQsICZhdHR2YWx1ZSk7CisgICAgICAgIGlmICgoYXR0bmFtZSAhPSBOVUxMKSAmJiAoYXR0dmFsdWUgIT0gTlVMTCkpIHsKKwkgICAgLyoKKwkgICAgICogWyBXRkM6IFVuaXF1ZSBBdHQgU3BlYyBdCisJICAgICAqIE5vIGF0dHJpYnV0ZSBuYW1lIG1heSBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUKKwkgICAgICogc3RhcnQtdGFnIG9yIGVtcHR5LWVsZW1lbnQgdGFnLiAKKwkgICAgICovCisJICAgIGZvciAoaSA9IDA7IGkgPCBuYmF0dHM7aSArPSAyKSB7CisJICAgICAgICBpZiAoeG1sU3RyRXF1YWwoYXR0c1tpXSwgYXR0bmFtZSkpIHsKKwkJICAgIHhtbEVyckF0dHJpYnV0ZUR1cChjdHh0LCBOVUxMLCBhdHRuYW1lKTsKKwkJICAgIHhtbEZyZWUoYXR0dmFsdWUpOworCQkgICAgZ290byBmYWlsZWQ7CisJCX0KKwkgICAgfQorCSAgICAvKgorCSAgICAgKiBBZGQgdGhlIHBhaXIgdG8gYXR0cworCSAgICAgKi8KKwkgICAgaWYgKGF0dHMgPT0gTlVMTCkgeworCSAgICAgICAgbWF4YXR0cyA9IDIyOyAvKiBhbGxvdyBmb3IgMTAgYXR0cnMgYnkgZGVmYXVsdCAqLworCSAgICAgICAgYXR0cyA9IChjb25zdCB4bWxDaGFyICoqKQorCQkgICAgICAgeG1sTWFsbG9jKG1heGF0dHMgKiBzaXplb2YoeG1sQ2hhciAqKSk7CisJCWlmIChhdHRzID09IE5VTEwpIHsKKwkJICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJICAgIGlmIChhdHR2YWx1ZSAhPSBOVUxMKQorCQkJeG1sRnJlZShhdHR2YWx1ZSk7CisJCSAgICBnb3RvIGZhaWxlZDsKKwkJfQorCQljdHh0LT5hdHRzID0gYXR0czsKKwkJY3R4dC0+bWF4YXR0cyA9IG1heGF0dHM7CisJICAgIH0gZWxzZSBpZiAobmJhdHRzICsgNCA+IG1heGF0dHMpIHsKKwkgICAgICAgIGNvbnN0IHhtbENoYXIgKipuOworCisJICAgICAgICBtYXhhdHRzICo9IDI7CisJICAgICAgICBuID0gKGNvbnN0IHhtbENoYXIgKiopIHhtbFJlYWxsb2MoKHZvaWQgKikgYXR0cywKKwkJCQkJICAgICBtYXhhdHRzICogc2l6ZW9mKGNvbnN0IHhtbENoYXIgKikpOworCQlpZiAobiA9PSBOVUxMKSB7CisJCSAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCSAgICBpZiAoYXR0dmFsdWUgIT0gTlVMTCkKKwkJCXhtbEZyZWUoYXR0dmFsdWUpOworCQkgICAgZ290byBmYWlsZWQ7CisJCX0KKwkJYXR0cyA9IG47CisJCWN0eHQtPmF0dHMgPSBhdHRzOworCQljdHh0LT5tYXhhdHRzID0gbWF4YXR0czsKKwkgICAgfQorCSAgICBhdHRzW25iYXR0cysrXSA9IGF0dG5hbWU7CisJICAgIGF0dHNbbmJhdHRzKytdID0gYXR0dmFsdWU7CisJICAgIGF0dHNbbmJhdHRzXSA9IE5VTEw7CisJICAgIGF0dHNbbmJhdHRzICsgMV0gPSBOVUxMOworCX0gZWxzZSB7CisJICAgIGlmIChhdHR2YWx1ZSAhPSBOVUxMKQorCQl4bWxGcmVlKGF0dHZhbHVlKTsKKwl9CisKK2ZhaWxlZDogICAgIAorCisJR1JPVworCWlmICgoUkFXID09ICc+JykgfHwgKCgoUkFXID09ICcvJykgJiYgKE5YVCgxKSA9PSAnPicpKSkpCisJICAgIGJyZWFrOworCWlmICghSVNfQkxBTktfQ0goUkFXKSkgeworCSAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX1NQQUNFX1JFUVVJUkVELAorCQkJICAgImF0dHJpYnV0ZXMgY29uc3RydWN0IGVycm9yXG4iKTsKKwl9CisJU0tJUF9CTEFOS1M7CisgICAgICAgIGlmICgoY29ucyA9PSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQpICYmIChxID09IENVUl9QVFIpICYmCisgICAgICAgICAgICAoYXR0bmFtZSA9PSBOVUxMKSAmJiAoYXR0dmFsdWUgPT0gTlVMTCkpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSAgICJ4bWxQYXJzZVN0YXJ0VGFnOiBwcm9ibGVtIHBhcnNpbmcgYXR0cmlidXRlc1xuIik7CisJICAgIGJyZWFrOworCX0KKwlTSFJJTks7CisgICAgICAgIEdST1c7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTQVg6IFN0YXJ0IG9mIEVsZW1lbnQgIQorICAgICAqLworICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPnN0YXJ0RWxlbWVudCAhPSBOVUxMKSAmJgorCSghY3R4dC0+ZGlzYWJsZVNBWCkpIHsKKwlpZiAobmJhdHRzID4gMCkKKwkgICAgY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIG5hbWUsIGF0dHMpOworCWVsc2UKKwkgICAgY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIG5hbWUsIE5VTEwpOworICAgIH0KKworICAgIGlmIChhdHRzICE9IE5VTEwpIHsKKyAgICAgICAgLyogRnJlZSBvbmx5IHRoZSBjb250ZW50IHN0cmluZ3MgKi8KKyAgICAgICAgZm9yIChpID0gMTtpIDwgbmJhdHRzO2krPTIpCisJICAgIGlmIChhdHRzW2ldICE9IE5VTEwpCisJICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgYXR0c1tpXSk7CisgICAgfQorICAgIHJldHVybihuYW1lKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUVuZFRhZzE6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGxpbmU6ICBsaW5lIG9mIHRoZSBzdGFydCB0YWcKKyAqIEBuc05yOiAgbnVtYmVyIG9mIG5hbWVzcGFjZXMgb24gdGhlIHN0YXJ0IHRhZworICoKKyAqIHBhcnNlIGFuIGVuZCBvZiB0YWcKKyAqCisgKiBbNDJdIEVUYWcgOjo9ICc8LycgTmFtZSBTPyAnPicKKyAqCisgKiBXaXRoIG5hbWVzcGFjZQorICoKKyAqIFtOUyA5XSBFVGFnIDo6PSAnPC8nIFFOYW1lIFM/ICc+JworICovCisKK3N0YXRpYyB2b2lkCit4bWxQYXJzZUVuZFRhZzEoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgbGluZSkgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisKKyAgICBHUk9XOworICAgIGlmICgoUkFXICE9ICc8JykgfHwgKE5YVCgxKSAhPSAnLycpKSB7CisJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9MVFNMQVNIX1JFUVVJUkVELAorCQkgICAgICAgInhtbFBhcnNlRW5kVGFnOiAnPC8nIG5vdCBmb3VuZFxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICBTS0lQKDIpOworCisgICAgbmFtZSA9IHhtbFBhcnNlTmFtZUFuZENvbXBhcmUoY3R4dCxjdHh0LT5uYW1lKTsKKworICAgIC8qCisgICAgICogV2Ugc2hvdWxkIGRlZmluaXRlbHkgYmUgYXQgdGhlIGVuZGluZyAiUz8gJz4nIiBwYXJ0CisgICAgICovCisgICAgR1JPVzsKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoKCFJU19CWVRFX0NIQVIoUkFXKSkgfHwgKFJBVyAhPSAnPicpKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9HVF9SRVFVSVJFRCwgTlVMTCk7CisgICAgfSBlbHNlCisJTkVYVDE7CisKKyAgICAvKgorICAgICAqIFsgV0ZDOiBFbGVtZW50IFR5cGUgTWF0Y2ggXQorICAgICAqIFRoZSBOYW1lIGluIGFuIGVsZW1lbnQncyBlbmQtdGFnIG11c3QgbWF0Y2ggdGhlIGVsZW1lbnQgdHlwZSBpbiB0aGUKKyAgICAgKiBzdGFydC10YWcuIAorICAgICAqCisgICAgICovCisgICAgaWYgKG5hbWUgIT0gKHhtbENoYXIqKTEpIHsKKyAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkgbmFtZSA9IEJBRF9DQVNUICJ1bnBhcnNlYWJsZSI7CisgICAgICAgIHhtbEZhdGFsRXJyTXNnU3RySW50U3RyKGN0eHQsIFhNTF9FUlJfVEFHX05BTUVfTUlTTUFUQ0gsCisJCSAgICAgIk9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6ICVzIGxpbmUgJWQgYW5kICVzXG4iLAorCQkgICAgICAgICAgICAgICAgY3R4dC0+bmFtZSwgbGluZSwgbmFtZSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTQVg6IEVuZCBvZiBUYWcKKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpICYmCisJKCFjdHh0LT5kaXNhYmxlU0FYKSkKKyAgICAgICAgY3R4dC0+c2F4LT5lbmRFbGVtZW50KGN0eHQtPnVzZXJEYXRhLCBjdHh0LT5uYW1lKTsKKworICAgIG5hbWVQb3AoY3R4dCk7CisgICAgc3BhY2VQb3AoY3R4dCk7CisgICAgcmV0dXJuOworfQorCisvKioKKyAqIHhtbFBhcnNlRW5kVGFnOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbiBlbmQgb2YgdGFnCisgKgorICogWzQyXSBFVGFnIDo6PSAnPC8nIE5hbWUgUz8gJz4nCisgKgorICogV2l0aCBuYW1lc3BhY2UKKyAqCisgKiBbTlMgOV0gRVRhZyA6Oj0gJzwvJyBRTmFtZSBTPyAnPicKKyAqLworCit2b2lkCit4bWxQYXJzZUVuZFRhZyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZUVuZFRhZzEoY3R4dCwgMCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkgICAgICBTQVggMiBzcGVjaWZpYyBvcGVyYXRpb25zCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIHhtbEdldE5hbWVzcGFjZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAcHJlZml4OiAgdGhlIHByZWZpeCB0byBsb29rdXAKKyAqCisgKiBMb29rdXAgdGhlIG5hbWVzcGFjZSBuYW1lIGZvciB0aGUgQHByZWZpeCAod2hpY2ggY2EgYmUgTlVMTCkKKyAqIFRoZSBwcmVmaXggbXVzdCBjb21lIGZyb20gdGhlIEBjdHh0LT5kaWN0IGRpY3Rpb25uYXJ5CisgKgorICogUmV0dXJucyB0aGUgbmFtZXNwYWNlIG5hbWUgb3IgTlVMTCBpZiBub3QgYm91bmQKKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sR2V0TmFtZXNwYWNlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqcHJlZml4KSB7CisgICAgaW50IGk7CisKKyAgICBpZiAocHJlZml4ID09IGN0eHQtPnN0cl94bWwpIHJldHVybihjdHh0LT5zdHJfeG1sX25zKTsKKyAgICBmb3IgKGkgPSBjdHh0LT5uc05yIC0gMjtpID49IDA7aS09MikKKyAgICAgICAgaWYgKGN0eHQtPm5zVGFiW2ldID09IHByZWZpeCkgeworCSAgICBpZiAoKHByZWZpeCA9PSBOVUxMKSAmJiAoKmN0eHQtPm5zVGFiW2kgKyAxXSA9PSAwKSkKKwkgICAgICAgIHJldHVybihOVUxMKTsKKwkgICAgcmV0dXJuKGN0eHQtPm5zVGFiW2kgKyAxXSk7CisJfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVFOYW1lOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBwcmVmaXg6ICBwb2ludGVyIHRvIHN0b3JlIHRoZSBwcmVmaXggcGFydAorICoKKyAqIHBhcnNlIGFuIFhNTCBOYW1lc3BhY2UgUU5hbWUKKyAqCisgKiBbNl0gIFFOYW1lICA6Oj0gKFByZWZpeCAnOicpPyBMb2NhbFBhcnQKKyAqIFs3XSAgUHJlZml4ICA6Oj0gTkNOYW1lCisgKiBbOF0gIExvY2FsUGFydCAgOjo9IE5DTmFtZQorICoKKyAqIFJldHVybnMgdGhlIE5hbWUgcGFyc2VkIG9yIE5VTEwKKyAqLworCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxQYXJzZVFOYW1lKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqKnByZWZpeCkgeworICAgIGNvbnN0IHhtbENoYXIgKmwsICpwOworCisgICAgR1JPVzsKKworICAgIGwgPSB4bWxQYXJzZU5DTmFtZShjdHh0KTsKKyAgICBpZiAobCA9PSBOVUxMKSB7CisgICAgICAgIGlmIChDVVIgPT0gJzonKSB7CisJICAgIGwgPSB4bWxQYXJzZU5hbWUoY3R4dCk7CisJICAgIGlmIChsICE9IE5VTEwpIHsKKwkgICAgICAgIHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfUU5BTUUsIAorCQkgICAgICAgICAiRmFpbGVkIHRvIHBhcnNlIFFOYW1lICclcydcbiIsIGwsIE5VTEwsIE5VTEwpOworCQkqcHJlZml4ID0gTlVMTDsKKwkJcmV0dXJuKGwpOworCSAgICB9CisJfQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChDVVIgPT0gJzonKSB7CisgICAgICAgIE5FWFQ7CisJcCA9IGw7CisJbCA9IHhtbFBhcnNlTkNOYW1lKGN0eHQpOworCWlmIChsID09IE5VTEwpIHsKKwkgICAgeG1sQ2hhciAqdG1wOworCisgICAgICAgICAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1FOQU1FLAorCSAgICAgICAgICAgICAiRmFpbGVkIHRvIHBhcnNlIFFOYW1lICclczonXG4iLCBwLCBOVUxMLCBOVUxMKTsKKwkgICAgbCA9IHhtbFBhcnNlTm10b2tlbihjdHh0KTsKKwkgICAgaWYgKGwgPT0gTlVMTCkKKwkJdG1wID0geG1sQnVpbGRRTmFtZShCQURfQ0FTVCAiIiwgcCwgTlVMTCwgMCk7CisJICAgIGVsc2UgeworCQl0bXAgPSB4bWxCdWlsZFFOYW1lKGwsIHAsIE5VTEwsIDApOworCQl4bWxGcmVlKChjaGFyICopbCk7CisJICAgIH0KKwkgICAgcCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgdG1wLCAtMSk7CisJICAgIGlmICh0bXAgIT0gTlVMTCkgeG1sRnJlZSh0bXApOworCSAgICAqcHJlZml4ID0gTlVMTDsKKwkgICAgcmV0dXJuKHApOworCX0KKwlpZiAoQ1VSID09ICc6JykgeworCSAgICB4bWxDaGFyICp0bXA7CisKKyAgICAgICAgICAgIHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfUU5BTUUsCisJICAgICAgICAgICAgICJGYWlsZWQgdG8gcGFyc2UgUU5hbWUgJyVzOiVzOidcbiIsIHAsIGwsIE5VTEwpOworCSAgICBORVhUOworCSAgICB0bXAgPSAoeG1sQ2hhciAqKSB4bWxQYXJzZU5hbWUoY3R4dCk7CisJICAgIGlmICh0bXAgIT0gTlVMTCkgeworCSAgICAgICAgdG1wID0geG1sQnVpbGRRTmFtZSh0bXAsIGwsIE5VTEwsIDApOworCQlsID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCB0bXAsIC0xKTsKKwkJaWYgKHRtcCAhPSBOVUxMKSB4bWxGcmVlKHRtcCk7CisJCSpwcmVmaXggPSBwOworCQlyZXR1cm4obCk7CisJICAgIH0KKwkgICAgdG1wID0geG1sQnVpbGRRTmFtZShCQURfQ0FTVCAiIiwgbCwgTlVMTCwgMCk7CisJICAgIGwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIHRtcCwgLTEpOworCSAgICBpZiAodG1wICE9IE5VTEwpIHhtbEZyZWUodG1wKTsKKwkgICAgKnByZWZpeCA9IHA7CisJICAgIHJldHVybihsKTsKKwl9CisJKnByZWZpeCA9IHA7CisgICAgfSBlbHNlCisgICAgICAgICpwcmVmaXggPSBOVUxMOworICAgIHJldHVybihsKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVFOYW1lQW5kQ29tcGFyZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBsb2NhbG5hbWUKKyAqIEBwcmVmaXg6ICB0aGUgcHJlZml4LCBpZiBhbnkuCisgKgorICogcGFyc2UgYW4gWE1MIG5hbWUgYW5kIGNvbXBhcmVzIGZvciBtYXRjaAorICogKHNwZWNpYWxpemVkIGZvciBlbmR0YWcgcGFyc2luZykKKyAqCisgKiBSZXR1cm5zIE5VTEwgZm9yIGFuIGlsbGVnYWwgbmFtZSwgKHhtbENoYXIqKSAxIGZvciBzdWNjZXNzCisgKiBhbmQgdGhlIG5hbWUgZm9yIG1pc21hdGNoCisgKi8KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VRTmFtZUFuZENvbXBhcmUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxDaGFyIGNvbnN0ICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciBjb25zdCAqcHJlZml4KSB7CisgICAgY29uc3QgeG1sQ2hhciAqY21wOworICAgIGNvbnN0IHhtbENoYXIgKmluOworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKyAgICBjb25zdCB4bWxDaGFyICpwcmVmaXgyOworCisgICAgaWYgKHByZWZpeCA9PSBOVUxMKSByZXR1cm4oeG1sUGFyc2VOYW1lQW5kQ29tcGFyZShjdHh0LCBuYW1lKSk7CisKKyAgICBHUk9XOworICAgIGluID0gY3R4dC0+aW5wdXQtPmN1cjsKKworICAgIGNtcCA9IHByZWZpeDsKKyAgICB3aGlsZSAoKmluICE9IDAgJiYgKmluID09ICpjbXApIHsKKyAgICAJKytpbjsKKwkrK2NtcDsKKyAgICB9CisgICAgaWYgKCgqY21wID09IDApICYmICgqaW4gPT0gJzonKSkgeworICAgICAgICBpbisrOworCWNtcCA9IG5hbWU7CisJd2hpbGUgKCppbiAhPSAwICYmICppbiA9PSAqY21wKSB7CisJICAgICsraW47CisJICAgICsrY21wOworCX0KKwlpZiAoKmNtcCA9PSAwICYmICgqaW4gPT0gJz4nIHx8IElTX0JMQU5LX0NIICgqaW4pKSkgeworCSAgICAvKiBzdWNjZXNzICovCisJICAgIGN0eHQtPmlucHV0LT5jdXIgPSBpbjsKKwkgICAgcmV0dXJuKChjb25zdCB4bWxDaGFyKikgMSk7CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIGFsbCBzdHJpbmdzIGNvbXMgZnJvbSB0aGUgZGljdGlvbmFyeSwgZXF1YWxpdHkgY2FuIGJlIGRvbmUgZGlyZWN0bHkKKyAgICAgKi8KKyAgICByZXQgPSB4bWxQYXJzZVFOYW1lIChjdHh0LCAmcHJlZml4Mik7CisgICAgaWYgKChyZXQgPT0gbmFtZSkgJiYgKHByZWZpeCA9PSBwcmVmaXgyKSkKKwlyZXR1cm4oKGNvbnN0IHhtbENoYXIqKSAxKTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIHhtbFBhcnNlQXR0VmFsdWVJbnRlcm5hbDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbGVuOiAgYXR0cmlidXRlIGxlbiByZXN1bHQKKyAqIEBhbGxvYzogIHdoZXRoZXIgdGhlIGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQgYXMgYSBuZXcgc3RyaW5nCisgKiBAbm9ybWFsaXplOiAgaWYgMSB0aGVuIGZ1cnRoZXIgbm9uLUNEQVRBIG5vcm1hbGl6YXRpb24gbXVzdCBiZSBkb25lCisgKgorICogcGFyc2UgYSB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlLgorICogTk9URTogaWYgbm8gbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQsIHRoZSByb3V0aW5lIHdpbGwgcmV0dXJuIHBvaW50ZXJzCisgKiAgICAgICBkaXJlY3RseSBmcm9tIHRoZSBkYXRhIGJ1ZmZlci4KKyAqCisgKiAzLjMuMyBBdHRyaWJ1dGUtVmFsdWUgTm9ybWFsaXphdGlvbjoKKyAqIEJlZm9yZSB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIGlzIHBhc3NlZCB0byB0aGUgYXBwbGljYXRpb24gb3IKKyAqIGNoZWNrZWQgZm9yIHZhbGlkaXR5LCB0aGUgWE1MIHByb2Nlc3NvciBtdXN0IG5vcm1hbGl6ZSBpdCBhcyBmb2xsb3dzOiAKKyAqIC0gYSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGlzIHByb2Nlc3NlZCBieSBhcHBlbmRpbmcgdGhlIHJlZmVyZW5jZWQKKyAqICAgY2hhcmFjdGVyIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWUKKyAqIC0gYW4gZW50aXR5IHJlZmVyZW5jZSBpcyBwcm9jZXNzZWQgYnkgcmVjdXJzaXZlbHkgcHJvY2Vzc2luZyB0aGUKKyAqICAgcmVwbGFjZW1lbnQgdGV4dCBvZiB0aGUgZW50aXR5IAorICogLSBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyICgjeDIwLCAjeEQsICN4QSwgI3g5KSBpcyBwcm9jZXNzZWQgYnkKKyAqICAgYXBwZW5kaW5nICN4MjAgdG8gdGhlIG5vcm1hbGl6ZWQgdmFsdWUsIGV4Y2VwdCB0aGF0IG9ubHkgYSBzaW5nbGUKKyAqICAgI3gyMCBpcyBhcHBlbmRlZCBmb3IgYSAiI3hEI3hBIiBzZXF1ZW5jZSB0aGF0IGlzIHBhcnQgb2YgYW4gZXh0ZXJuYWwKKyAqICAgcGFyc2VkIGVudGl0eSBvciB0aGUgbGl0ZXJhbCBlbnRpdHkgdmFsdWUgb2YgYW4gaW50ZXJuYWwgcGFyc2VkIGVudGl0eSAKKyAqIC0gb3RoZXIgY2hhcmFjdGVycyBhcmUgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyB0aGVtIHRvIHRoZSBub3JtYWxpemVkIHZhbHVlIAorICogSWYgdGhlIGRlY2xhcmVkIHZhbHVlIGlzIG5vdCBDREFUQSwgdGhlbiB0aGUgWE1MIHByb2Nlc3NvciBtdXN0IGZ1cnRoZXIKKyAqIHByb2Nlc3MgdGhlIG5vcm1hbGl6ZWQgYXR0cmlidXRlIHZhbHVlIGJ5IGRpc2NhcmRpbmcgYW55IGxlYWRpbmcgYW5kCisgKiB0cmFpbGluZyBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycywgYW5kIGJ5IHJlcGxhY2luZyBzZXF1ZW5jZXMgb2Ygc3BhY2UKKyAqICgjeDIwKSBjaGFyYWN0ZXJzIGJ5IGEgc2luZ2xlIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXIuICAKKyAqIEFsbCBhdHRyaWJ1dGVzIGZvciB3aGljaCBubyBkZWNsYXJhdGlvbiBoYXMgYmVlbiByZWFkIHNob3VsZCBiZSB0cmVhdGVkCisgKiBieSBhIG5vbi12YWxpZGF0aW5nIHBhcnNlciBhcyBpZiBkZWNsYXJlZCBDREFUQS4KKyAqCisgKiBSZXR1cm5zIHRoZSBBdHRWYWx1ZSBwYXJzZWQgb3IgTlVMTC4gVGhlIHZhbHVlIGhhcyB0byBiZSBmcmVlZCBieSB0aGUKKyAqICAgICBjYWxsZXIgaWYgaXQgd2FzIGNvcGllZCwgdGhpcyBjYW4gYmUgZGV0ZWN0ZWQgYnkgdmFsWypsZW5dID09IDAuCisgKi8KKworc3RhdGljIHhtbENoYXIgKgoreG1sUGFyc2VBdHRWYWx1ZUludGVybmFsKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50ICpsZW4sIGludCAqYWxsb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5vcm1hbGl6ZSkKK3sKKyAgICB4bWxDaGFyIGxpbWl0ID0gMDsKKyAgICBjb25zdCB4bWxDaGFyICppbiA9IE5VTEwsICpzdGFydCwgKmVuZCwgKmxhc3Q7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKworICAgIEdST1c7CisgICAgaW4gPSAoeG1sQ2hhciAqKSBDVVJfUFRSOworICAgIGlmICgqaW4gIT0gJyInICYmICppbiAhPSAnXCcnKSB7CisgICAgICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfQVRUUklCVVRFX05PVF9TVEFSVEVELCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQVRUUklCVVRFX1ZBTFVFOworCisgICAgLyoKKyAgICAgKiB0cnkgdG8gaGFuZGxlIGluIHRoaXMgcm91dGluZSB0aGUgbW9zdCBjb21tb24gY2FzZSB3aGVyZSBubworICAgICAqIGFsbG9jYXRpb24gb2YgYSBuZXcgc3RyaW5nIGlzIHJlcXVpcmVkIGFuZCB3aGVyZSBjb250ZW50IGlzCisgICAgICogcHVyZSBBU0NJSS4KKyAgICAgKi8KKyAgICBsaW1pdCA9ICppbisrOworICAgIGVuZCA9IGN0eHQtPmlucHV0LT5lbmQ7CisgICAgc3RhcnQgPSBpbjsKKyAgICBpZiAoaW4gPj0gZW5kKSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIgKm9sZGJhc2UgPSBjdHh0LT5pbnB1dC0+YmFzZTsKKwlHUk9XOworCWlmIChvbGRiYXNlICE9IGN0eHQtPmlucHV0LT5iYXNlKSB7CisJICAgIGxvbmcgZGVsdGEgPSBjdHh0LT5pbnB1dC0+YmFzZSAtIG9sZGJhc2U7CisJICAgIHN0YXJ0ID0gc3RhcnQgKyBkZWx0YTsKKwkgICAgaW4gPSBpbiArIGRlbHRhOworCX0KKwllbmQgPSBjdHh0LT5pbnB1dC0+ZW5kOworICAgIH0KKyAgICBpZiAobm9ybWFsaXplKSB7CisgICAgICAgIC8qCisJICogU2tpcCBhbnkgbGVhZGluZyBzcGFjZXMKKwkgKi8KKwl3aGlsZSAoKGluIDwgZW5kKSAmJiAoKmluICE9IGxpbWl0KSAmJiAKKwkgICAgICAgKCgqaW4gPT0gMHgyMCkgfHwgKCppbiA9PSAweDkpIHx8CisJICAgICAgICAoKmluID09IDB4QSkgfHwgKCppbiA9PSAweEQpKSkgeworCSAgICBpbisrOworCSAgICBzdGFydCA9IGluOworCSAgICBpZiAoaW4gPj0gZW5kKSB7CisJCWNvbnN0IHhtbENoYXIgKm9sZGJhc2UgPSBjdHh0LT5pbnB1dC0+YmFzZTsKKwkJR1JPVzsKKwkJaWYgKG9sZGJhc2UgIT0gY3R4dC0+aW5wdXQtPmJhc2UpIHsKKwkJICAgIGxvbmcgZGVsdGEgPSBjdHh0LT5pbnB1dC0+YmFzZSAtIG9sZGJhc2U7CisJCSAgICBzdGFydCA9IHN0YXJ0ICsgZGVsdGE7CisJCSAgICBpbiA9IGluICsgZGVsdGE7CisJCX0KKwkJZW5kID0gY3R4dC0+aW5wdXQtPmVuZDsKKwkgICAgfQorCX0KKwl3aGlsZSAoKGluIDwgZW5kKSAmJiAoKmluICE9IGxpbWl0KSAmJiAoKmluID49IDB4MjApICYmCisJICAgICAgICgqaW4gPD0gMHg3ZikgJiYgKCppbiAhPSAnJicpICYmICgqaW4gIT0gJzwnKSkgeworCSAgICBpZiAoKCppbisrID09IDB4MjApICYmICgqaW4gPT0gMHgyMCkpIGJyZWFrOworCSAgICBpZiAoaW4gPj0gZW5kKSB7CisJCWNvbnN0IHhtbENoYXIgKm9sZGJhc2UgPSBjdHh0LT5pbnB1dC0+YmFzZTsKKwkJR1JPVzsKKwkJaWYgKG9sZGJhc2UgIT0gY3R4dC0+aW5wdXQtPmJhc2UpIHsKKwkJICAgIGxvbmcgZGVsdGEgPSBjdHh0LT5pbnB1dC0+YmFzZSAtIG9sZGJhc2U7CisJCSAgICBzdGFydCA9IHN0YXJ0ICsgZGVsdGE7CisJCSAgICBpbiA9IGluICsgZGVsdGE7CisJCX0KKwkJZW5kID0gY3R4dC0+aW5wdXQtPmVuZDsKKwkgICAgfQorCX0KKwlsYXN0ID0gaW47CisJLyoKKwkgKiBza2lwIHRoZSB0cmFpbGluZyBibGFua3MKKwkgKi8KKwl3aGlsZSAoKGxhc3RbLTFdID09IDB4MjApICYmIChsYXN0ID4gc3RhcnQpKSBsYXN0LS07CisJd2hpbGUgKChpbiA8IGVuZCkgJiYgKCppbiAhPSBsaW1pdCkgJiYgCisJICAgICAgICgoKmluID09IDB4MjApIHx8ICgqaW4gPT0gMHg5KSB8fAorCSAgICAgICAgKCppbiA9PSAweEEpIHx8ICgqaW4gPT0gMHhEKSkpIHsKKwkgICAgaW4rKzsKKwkgICAgaWYgKGluID49IGVuZCkgeworCQljb25zdCB4bWxDaGFyICpvbGRiYXNlID0gY3R4dC0+aW5wdXQtPmJhc2U7CisJCUdST1c7CisJCWlmIChvbGRiYXNlICE9IGN0eHQtPmlucHV0LT5iYXNlKSB7CisJCSAgICBsb25nIGRlbHRhID0gY3R4dC0+aW5wdXQtPmJhc2UgLSBvbGRiYXNlOworCQkgICAgc3RhcnQgPSBzdGFydCArIGRlbHRhOworCQkgICAgaW4gPSBpbiArIGRlbHRhOworCQkgICAgbGFzdCA9IGxhc3QgKyBkZWx0YTsKKwkJfQorCQllbmQgPSBjdHh0LT5pbnB1dC0+ZW5kOworCSAgICB9CisJfQorCWlmICgqaW4gIT0gbGltaXQpIGdvdG8gbmVlZF9jb21wbGV4OworICAgIH0gZWxzZSB7CisJd2hpbGUgKChpbiA8IGVuZCkgJiYgKCppbiAhPSBsaW1pdCkgJiYgKCppbiA+PSAweDIwKSAmJgorCSAgICAgICAoKmluIDw9IDB4N2YpICYmICgqaW4gIT0gJyYnKSAmJiAoKmluICE9ICc8JykpIHsKKwkgICAgaW4rKzsKKwkgICAgaWYgKGluID49IGVuZCkgeworCQljb25zdCB4bWxDaGFyICpvbGRiYXNlID0gY3R4dC0+aW5wdXQtPmJhc2U7CisJCUdST1c7CisJCWlmIChvbGRiYXNlICE9IGN0eHQtPmlucHV0LT5iYXNlKSB7CisJCSAgICBsb25nIGRlbHRhID0gY3R4dC0+aW5wdXQtPmJhc2UgLSBvbGRiYXNlOworCQkgICAgc3RhcnQgPSBzdGFydCArIGRlbHRhOworCQkgICAgaW4gPSBpbiArIGRlbHRhOworCQl9CisJCWVuZCA9IGN0eHQtPmlucHV0LT5lbmQ7CisJICAgIH0KKwl9CisJbGFzdCA9IGluOworCWlmICgqaW4gIT0gbGltaXQpIGdvdG8gbmVlZF9jb21wbGV4OworICAgIH0KKyAgICBpbisrOworICAgIGlmIChsZW4gIT0gTlVMTCkgeworICAgICAgICAqbGVuID0gbGFzdCAtIHN0YXJ0OworICAgICAgICByZXQgPSAoeG1sQ2hhciAqKSBzdGFydDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoYWxsb2MpICphbGxvYyA9IDE7CisgICAgICAgIHJldCA9IHhtbFN0cm5kdXAoc3RhcnQsIGxhc3QgLSBzdGFydCk7CisgICAgfQorICAgIENVUl9QVFIgPSBpbjsKKyAgICBpZiAoYWxsb2MpICphbGxvYyA9IDA7CisgICAgcmV0dXJuIHJldDsKK25lZWRfY29tcGxleDoKKyAgICBpZiAoYWxsb2MpICphbGxvYyA9IDE7CisgICAgcmV0dXJuIHhtbFBhcnNlQXR0VmFsdWVDb21wbGV4KGN0eHQsIGxlbiwgbm9ybWFsaXplKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUF0dHJpYnV0ZTI6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHByZWY6ICB0aGUgZWxlbWVudCBwcmVmaXgKKyAqIEBlbGVtOiAgdGhlIGVsZW1lbnQgbmFtZQorICogQHByZWZpeDogIGEgeG1sQ2hhciAqKiB1c2VkIHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlIHByZWZpeAorICogQHZhbHVlOiAgYSB4bWxDaGFyICoqIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUKKyAqIEBsZW46ICBhbiBpbnQgKiB0byBzYXZlIHRoZSBsZW5ndGggb2YgdGhlIGF0dHJpYnV0ZQorICogQGFsbG9jOiAgYW4gaW50ICogdG8gaW5kaWNhdGUgaWYgdGhlIGF0dHJpYnV0ZSB3YXMgYWxsb2NhdGVkCisgKgorICogcGFyc2UgYW4gYXR0cmlidXRlIGluIHRoZSBuZXcgU0FYMiBmcmFtZXdvcmsuCisgKgorICogUmV0dXJucyB0aGUgYXR0cmlidXRlIG5hbWUsIGFuZCB0aGUgdmFsdWUgaW4gKnZhbHVlLCAuCisgKi8KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VBdHRyaWJ1dGUyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZiwgY29uc3QgeG1sQ2hhciAqIGVsZW0sCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqKiBwcmVmaXgsIHhtbENoYXIgKiogdmFsdWUsCisgICAgICAgICAgICAgICAgICAgaW50ICpsZW4sIGludCAqYWxsb2MpCit7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxDaGFyICp2YWwsICppbnRlcm5hbF92YWwgPSBOVUxMOworICAgIGludCBub3JtYWxpemUgPSAwOworCisgICAgKnZhbHVlID0gTlVMTDsKKyAgICBHUk9XOworICAgIG5hbWUgPSB4bWxQYXJzZVFOYW1lKGN0eHQsIHByZWZpeCk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworICAgICAgICB4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciBwYXJzaW5nIGF0dHJpYnV0ZSBuYW1lXG4iKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGdldCB0aGUgdHlwZSBpZiBuZWVkZWQKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+YXR0c1NwZWNpYWwgIT0gTlVMTCkgeworICAgICAgICBpbnQgdHlwZTsKKworICAgICAgICB0eXBlID0gKGludCkgKGxvbmcpIHhtbEhhc2hRTG9va3VwMihjdHh0LT5hdHRzU3BlY2lhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZiwgZWxlbSwgKnByZWZpeCwgbmFtZSk7CisgICAgICAgIGlmICh0eXBlICE9IDApCisgICAgICAgICAgICBub3JtYWxpemUgPSAxOworICAgIH0KKworICAgIC8qCisgICAgICogcmVhZCB0aGUgdmFsdWUKKyAgICAgKi8KKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoUkFXID09ICc9JykgeworICAgICAgICBORVhUOworICAgICAgICBTS0lQX0JMQU5LUzsKKyAgICAgICAgdmFsID0geG1sUGFyc2VBdHRWYWx1ZUludGVybmFsKGN0eHQsIGxlbiwgYWxsb2MsIG5vcm1hbGl6ZSk7CisJaWYgKG5vcm1hbGl6ZSkgeworCSAgICAvKgorCSAgICAgKiBTb21ldGltZXMgYSBzZWNvbmQgbm9ybWFsaXNhdGlvbiBwYXNzIGZvciBzcGFjZXMgaXMgbmVlZGVkCisJICAgICAqIGJ1dCB0aGF0IG9ubHkgaGFwcGVucyBpZiBjaGFycmVmcyBvciBlbnRpdGllcyByZWZlcm5jZXMKKwkgICAgICogaGF2ZSBiZWVuIHVzZWQgaW4gdGhlIGF0dHJpYnV0ZSB2YWx1ZSwgaS5lLiB0aGUgYXR0cmlidXRlCisJICAgICAqIHZhbHVlIGhhdmUgYmVlbiBleHRyYWN0ZWQgaW4gYW4gYWxsb2NhdGVkIHN0cmluZyBhbHJlYWR5LgorCSAgICAgKi8KKwkgICAgaWYgKCphbGxvYykgeworCSAgICAgICAgY29uc3QgeG1sQ2hhciAqdmFsMjsKKworCSAgICAgICAgdmFsMiA9IHhtbEF0dHJOb3JtYWxpemVTcGFjZTIoY3R4dCwgdmFsLCBsZW4pOworCQlpZiAoKHZhbDIgIT0gTlVMTCkgJiYgKHZhbDIgIT0gdmFsKSkgeworCQkgICAgeG1sRnJlZSh2YWwpOworCQkgICAgdmFsID0gKHhtbENoYXIgKikgdmFsMjsKKwkJfQorCSAgICB9CisJfQorICAgICAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfQVRUUklCVVRFX1dJVEhPVVRfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJTcGVjaWZpY2F0aW9uIG1hbmRhdGUgdmFsdWUgZm9yIGF0dHJpYnV0ZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgaWYgKCpwcmVmaXggPT0gY3R4dC0+c3RyX3htbCkgeworICAgICAgICAvKgorICAgICAgICAgKiBDaGVjayB0aGF0IHhtbDpsYW5nIGNvbmZvcm1zIHRvIHRoZSBzcGVjaWZpY2F0aW9uCisgICAgICAgICAqIE5vIG1vcmUgcmVnaXN0ZXJlZCBhcyBhbiBlcnJvciwganVzdCBnZW5lcmF0ZSBhIHdhcm5pbmcgbm93CisgICAgICAgICAqIHNpbmNlIHRoaXMgd2FzIGRlcHJlY2F0ZWQgaW4gWE1MIHNlY29uZCBlZGl0aW9uCisgICAgICAgICAqLworICAgICAgICBpZiAoKGN0eHQtPnBlZGFudGljKSAmJiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgImxhbmciKSkpIHsKKyAgICAgICAgICAgIGludGVybmFsX3ZhbCA9IHhtbFN0cm5kdXAodmFsLCAqbGVuKTsKKyAgICAgICAgICAgIGlmICgheG1sQ2hlY2tMYW5ndWFnZUlEKGludGVybmFsX3ZhbCkpIHsKKyAgICAgICAgICAgICAgICB4bWxXYXJuaW5nTXNnKGN0eHQsIFhNTF9XQVJfTEFOR19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWxmb3JtZWQgdmFsdWUgZm9yIHhtbDpsYW5nIDogJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF92YWwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hlY2sgdGhhdCB4bWw6c3BhY2UgY29uZm9ybXMgdG8gdGhlIHNwZWNpZmljYXRpb24KKyAgICAgICAgICovCisgICAgICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAic3BhY2UiKSkgeworICAgICAgICAgICAgaW50ZXJuYWxfdmFsID0geG1sU3RybmR1cCh2YWwsICpsZW4pOworICAgICAgICAgICAgaWYgKHhtbFN0ckVxdWFsKGludGVybmFsX3ZhbCwgQkFEX0NBU1QgImRlZmF1bHQiKSkKKyAgICAgICAgICAgICAgICAqKGN0eHQtPnNwYWNlKSA9IDA7CisgICAgICAgICAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChpbnRlcm5hbF92YWwsIEJBRF9DQVNUICJwcmVzZXJ2ZSIpKQorICAgICAgICAgICAgICAgICooY3R4dC0+c3BhY2UpID0gMTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHhtbFdhcm5pbmdNc2coY3R4dCwgWE1MX1dBUl9TUEFDRV9WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHZhbHVlIFwiJXNcIiBmb3IgeG1sOnNwYWNlIDogXCJkZWZhdWx0XCIgb3IgXCJwcmVzZXJ2ZVwiIGV4cGVjdGVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfdmFsLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW50ZXJuYWxfdmFsKSB7CisgICAgICAgICAgICB4bWxGcmVlKGludGVybmFsX3ZhbCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqdmFsdWUgPSB2YWw7CisgICAgcmV0dXJuIChuYW1lKTsKK30KKy8qKgorICogeG1sUGFyc2VTdGFydFRhZzI6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogCisgKiBwYXJzZSBhIHN0YXJ0IG9mIHRhZyBlaXRoZXIgZm9yIHJ1bGUgZWxlbWVudCBvcgorICogRW1wdHlFbGVtZW50LiBJbiBib3RoIGNhc2Ugd2UgZG9uJ3QgcGFyc2UgdGhlIHRhZyBjbG9zaW5nIGNoYXJzLgorICogVGhpcyByb3V0aW5lIGlzIGNhbGxlZCB3aGVuIHJ1bm5pbmcgU0FYMiBwYXJzaW5nCisgKgorICogWzQwXSBTVGFnIDo6PSAnPCcgTmFtZSAoUyBBdHRyaWJ1dGUpKiBTPyAnPicKKyAqCisgKiBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0KKyAqIE5vIGF0dHJpYnV0ZSBuYW1lIG1heSBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgc3RhcnQtdGFnIG9yCisgKiBlbXB0eS1lbGVtZW50IHRhZy4gCisgKgorICogWzQ0XSBFbXB0eUVsZW1UYWcgOjo9ICc8JyBOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICcvPicKKyAqCisgKiBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0KKyAqIE5vIGF0dHJpYnV0ZSBuYW1lIG1heSBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgc3RhcnQtdGFnIG9yCisgKiBlbXB0eS1lbGVtZW50IHRhZy4gCisgKgorICogV2l0aCBuYW1lc3BhY2U6CisgKgorICogW05TIDhdIFNUYWcgOjo9ICc8JyBRTmFtZSAoUyBBdHRyaWJ1dGUpKiBTPyAnPicKKyAqCisgKiBbTlMgMTBdIEVtcHR5RWxlbWVudCA6Oj0gJzwnIFFOYW1lIChTIEF0dHJpYnV0ZSkqIFM/ICcvPicKKyAqCisgKiBSZXR1cm5zIHRoZSBlbGVtZW50IG5hbWUgcGFyc2VkCisgKi8KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sUGFyc2VTdGFydFRhZzIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICoqcHJlZiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKipVUkksIGludCAqdGxlbikgeworICAgIGNvbnN0IHhtbENoYXIgKmxvY2FsbmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICpwcmVmaXg7CisgICAgY29uc3QgeG1sQ2hhciAqYXR0bmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICphcHJlZml4OworICAgIGNvbnN0IHhtbENoYXIgKm5zbmFtZTsKKyAgICB4bWxDaGFyICphdHR2YWx1ZTsKKyAgICBjb25zdCB4bWxDaGFyICoqYXR0cyA9IGN0eHQtPmF0dHM7CisgICAgaW50IG1heGF0dHMgPSBjdHh0LT5tYXhhdHRzOworICAgIGludCBucmF0dHMsIG5iYXR0cywgbmJkZWY7CisgICAgaW50IGksIGosIG5iTnMsIGF0dHZhbCwgb2xkbGluZSwgb2xkY29sOworICAgIGNvbnN0IHhtbENoYXIgKmJhc2U7CisgICAgdW5zaWduZWQgbG9uZyBjdXI7CisgICAgaW50IG5zTnIgPSBjdHh0LT5uc05yOworCisgICAgaWYgKFJBVyAhPSAnPCcpIHJldHVybihOVUxMKTsKKyAgICBORVhUMTsKKworICAgIC8qCisgICAgICogTk9URTogaXQgaXMgY3J1Y2lhbCB3aXRoIHRoZSBTQVgyIEFQSSB0byBuZXZlciBjYWxsIFNIUklOSyBiZXlvbmQgdGhhdAorICAgICAqICAgICAgIHBvaW50IHNpbmNlIHRoZSBhdHRyaWJ1dGUgdmFsdWVzIG1heSBiZSBzdG9yZWQgYXMgcG9pbnRlcnMgdG8KKyAgICAgKiAgICAgICB0aGUgYnVmZmVyIGFuZCBjYWxsaW5nIFNIUklOSyB3b3VsZCBkZXN0cm95IHRoZW0gIQorICAgICAqICAgICAgIFRoZSBTaHJpbmtpbmcgaXMgb25seSBwb3NzaWJsZSBvbmNlIHRoZSBmdWxsIHNldCBvZiBhdHRyaWJ1dGUKKyAgICAgKiAgICAgICBjYWxsYmFja3MgaGF2ZSBiZWVuIGRvbmUuCisgICAgICovCityZXBhcnNlOgorICAgIFNIUklOSzsKKyAgICBiYXNlID0gY3R4dC0+aW5wdXQtPmJhc2U7CisgICAgY3VyID0gY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlOworICAgIG9sZGxpbmUgPSBjdHh0LT5pbnB1dC0+bGluZTsKKyAgICBvbGRjb2wgPSBjdHh0LT5pbnB1dC0+Y29sOworICAgIG5iYXR0cyA9IDA7CisgICAgbnJhdHRzID0gMDsKKyAgICBuYmRlZiA9IDA7CisgICAgbmJOcyA9IDA7CisgICAgYXR0dmFsID0gMDsKKyAgICAvKiBGb3JnZXQgYW55IG5hbWVzcGFjZXMgYWRkZWQgZHVyaW5nIGFuIGVhcmxpZXIgcGFyc2Ugb2YgdGhpcyBlbGVtZW50LiAqLworICAgIGN0eHQtPm5zTnIgPSBuc05yOworCisgICAgbG9jYWxuYW1lID0geG1sUGFyc2VRTmFtZShjdHh0LCAmcHJlZml4KTsKKyAgICBpZiAobG9jYWxuYW1lID09IE5VTEwpIHsKKwl4bWxGYXRhbEVyck1zZyhjdHh0LCBYTUxfRVJSX05BTUVfUkVRVUlSRUQsCisJCSAgICAgICAiU3RhcnRUYWc6IGludmFsaWQgZWxlbWVudCBuYW1lXG4iKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICAqdGxlbiA9IGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSAtIGN1cjsKKworICAgIC8qCisgICAgICogTm93IHBhcnNlIHRoZSBhdHRyaWJ1dGVzLCBpdCBlbmRzIHVwIHdpdGggdGhlIGVuZGluZworICAgICAqCisgICAgICogKFMgQXR0cmlidXRlKSogUz8KKyAgICAgKi8KKyAgICBTS0lQX0JMQU5LUzsKKyAgICBHUk9XOworICAgIGlmIChjdHh0LT5pbnB1dC0+YmFzZSAhPSBiYXNlKSBnb3RvIGJhc2VfY2hhbmdlZDsKKworICAgIHdoaWxlICgoUkFXICE9ICc+JykgJiYgCisJICAgKChSQVcgIT0gJy8nKSB8fCAoTlhUKDEpICE9ICc+JykpICYmCisJICAgKElTX0JZVEVfQ0hBUihSQVcpKSkgeworCWNvbnN0IHhtbENoYXIgKnEgPSBDVVJfUFRSOworCXVuc2lnbmVkIGludCBjb25zID0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkOworCWludCBsZW4gPSAtMSwgYWxsb2MgPSAwOworCisJYXR0bmFtZSA9IHhtbFBhcnNlQXR0cmlidXRlMihjdHh0LCBwcmVmaXgsIGxvY2FsbmFtZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcHJlZml4LCAmYXR0dmFsdWUsICZsZW4sICZhbGxvYyk7CisJaWYgKGN0eHQtPmlucHV0LT5iYXNlICE9IGJhc2UpIHsKKwkgICAgaWYgKChhdHR2YWx1ZSAhPSBOVUxMKSAmJiAoYWxsb2MgIT0gMCkpCisJICAgICAgICB4bWxGcmVlKGF0dHZhbHVlKTsKKwkgICAgYXR0dmFsdWUgPSBOVUxMOworCSAgICBnb3RvIGJhc2VfY2hhbmdlZDsKKwl9CisgICAgICAgIGlmICgoYXR0bmFtZSAhPSBOVUxMKSAmJiAoYXR0dmFsdWUgIT0gTlVMTCkpIHsKKwkgICAgaWYgKGxlbiA8IDApIGxlbiA9IHhtbFN0cmxlbihhdHR2YWx1ZSk7CisgICAgICAgICAgICBpZiAoKGF0dG5hbWUgPT0gY3R4dC0+c3RyX3htbG5zKSAmJiAoYXByZWZpeCA9PSBOVUxMKSkgeworCSAgICAgICAgY29uc3QgeG1sQ2hhciAqVVJMID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBhdHR2YWx1ZSwgbGVuKTsKKwkJeG1sVVJJUHRyIHVyaTsKKworICAgICAgICAgICAgICAgIGlmICgqVVJMICE9IDApIHsKKwkJICAgIHVyaSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopIFVSTCk7CisJCSAgICBpZiAodXJpID09IE5VTEwpIHsKKwkJCXhtbE5zRXJyKGN0eHQsIFhNTF9XQVJfTlNfVVJJLAorCQkJICAgICAgICAgInhtbG5zOiAnJXMnIGlzIG5vdCBhIHZhbGlkIFVSSVxuIiwKKwkJCQkJICAgVVJMLCBOVUxMLCBOVUxMKTsKKwkJICAgIH0gZWxzZSB7CisJCQlpZiAodXJpLT5zY2hlbWUgPT0gTlVMTCkgeworCQkJICAgIHhtbE5zV2FybihjdHh0LCBYTUxfV0FSX05TX1VSSV9SRUxBVElWRSwKKwkJCQkgICAgICAieG1sbnM6IFVSSSAlcyBpcyBub3QgYWJzb2x1dGVcbiIsCisJCQkJICAgICAgVVJMLCBOVUxMLCBOVUxMKTsKKwkJCX0KKwkJCXhtbEZyZWVVUkkodXJpKTsKKwkJICAgIH0KKwkJICAgIGlmIChVUkwgPT0gY3R4dC0+c3RyX3htbF9ucykgeworCQkJaWYgKGF0dG5hbWUgIT0gY3R4dC0+c3RyX3htbCkgeworCQkJICAgIHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfWE1MX05BTUVTUEFDRSwKKwkJCSAieG1sIG5hbWVzcGFjZSBVUkkgY2Fubm90IGJlIHRoZSBkZWZhdWx0IG5hbWVzcGFjZVxuIiwKKwkJCQkgICAgIE5VTEwsIE5VTEwsIE5VTEwpOworCQkJfQorCQkJZ290byBza2lwX2RlZmF1bHRfbnM7CisJCSAgICB9CisJCSAgICBpZiAoKGxlbiA9PSAyOSkgJiYKKwkJCSh4bWxTdHJFcXVhbChVUkwsCisJCQkJIEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIpKSkgeworCQkJeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLAorCQkJICAgICAicmV1c2Ugb2YgdGhlIHhtbG5zIG5hbWVzcGFjZSBuYW1lIGlzIGZvcmJpZGRlblxuIiwKKwkJCQkgTlVMTCwgTlVMTCwgTlVMTCk7CisJCQlnb3RvIHNraXBfZGVmYXVsdF9uczsKKwkJICAgIH0KKwkJfQorCQkvKgorCQkgKiBjaGVjayB0aGF0IGl0J3Mgbm90IGEgZGVmaW5lZCBuYW1lc3BhY2UKKwkJICovCisJCWZvciAoaiA9IDE7aiA8PSBuYk5zO2orKykKKwkJICAgIGlmIChjdHh0LT5uc1RhYltjdHh0LT5uc05yIC0gMiAqIGpdID09IE5VTEwpCisJCQlicmVhazsKKwkJaWYgKGogPD0gbmJOcykKKwkJICAgIHhtbEVyckF0dHJpYnV0ZUR1cChjdHh0LCBOVUxMLCBhdHRuYW1lKTsKKwkJZWxzZQorCQkgICAgaWYgKG5zUHVzaChjdHh0LCBOVUxMLCBVUkwpID4gMCkgbmJOcysrOworc2tpcF9kZWZhdWx0X25zOgorCQlpZiAoYWxsb2MgIT0gMCkgeG1sRnJlZShhdHR2YWx1ZSk7CisJCVNLSVBfQkxBTktTOworCQljb250aW51ZTsKKwkgICAgfQorICAgICAgICAgICAgaWYgKGFwcmVmaXggPT0gY3R4dC0+c3RyX3htbG5zKSB7CisJICAgICAgICBjb25zdCB4bWxDaGFyICpVUkwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIGF0dHZhbHVlLCBsZW4pOworCQl4bWxVUklQdHIgdXJpOworCisgICAgICAgICAgICAgICAgaWYgKGF0dG5hbWUgPT0gY3R4dC0+c3RyX3htbCkgeworCQkgICAgaWYgKFVSTCAhPSBjdHh0LT5zdHJfeG1sX25zKSB7CisJCSAgICAgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLAorCQkJICAgICAgICAgInhtbCBuYW1lc3BhY2UgcHJlZml4IG1hcHBlZCB0byB3cm9uZyBVUklcbiIsCisJCQkgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJICAgIH0KKwkJICAgIC8qCisJCSAgICAgKiBEbyBub3Qga2VlcCBhIG5hbWVzcGFjZSBkZWZpbml0aW9uIG5vZGUKKwkJICAgICAqLworCQkgICAgZ290byBza2lwX25zOworCQl9CisgICAgICAgICAgICAgICAgaWYgKFVSTCA9PSBjdHh0LT5zdHJfeG1sX25zKSB7CisJCSAgICBpZiAoYXR0bmFtZSAhPSBjdHh0LT5zdHJfeG1sKSB7CisJCSAgICAgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLAorCQkJICAgICAgICAgInhtbCBuYW1lc3BhY2UgVVJJIG1hcHBlZCB0byB3cm9uZyBwcmVmaXhcbiIsCisJCQkgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJICAgIH0KKwkJICAgIGdvdG8gc2tpcF9uczsKKwkJfQorICAgICAgICAgICAgICAgIGlmIChhdHRuYW1lID09IGN0eHQtPnN0cl94bWxucykgeworCQkgICAgeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9YTUxfTkFNRVNQQUNFLAorCQkJICAgICAicmVkZWZpbml0aW9uIG9mIHRoZSB4bWxucyBwcmVmaXggaXMgZm9yYmlkZGVuXG4iLAorCQkJICAgICBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJICAgIGdvdG8gc2tpcF9uczsKKwkJfQorCQlpZiAoKGxlbiA9PSAyOSkgJiYKKwkJICAgICh4bWxTdHJFcXVhbChVUkwsCisJCSAgICAgICAgICAgICAgICAgQkFEX0NBU1QgImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIikpKSB7CisJCSAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsCisJCQkgICAgICJyZXVzZSBvZiB0aGUgeG1sbnMgbmFtZXNwYWNlIG5hbWUgaXMgZm9yYmlkZGVuXG4iLAorCQkJICAgICBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJICAgIGdvdG8gc2tpcF9uczsKKwkJfQorCQlpZiAoKFVSTCA9PSBOVUxMKSB8fCAoVVJMWzBdID09IDApKSB7CisJCSAgICB4bWxOc0VycihjdHh0LCBYTUxfTlNfRVJSX1hNTF9OQU1FU1BBQ0UsCisJCSAgICAgICAgICAgICAieG1sbnM6JXM6IEVtcHR5IFhNTCBuYW1lc3BhY2UgaXMgbm90IGFsbG93ZWRcbiIsCisJCQkgICAgICAgICAgYXR0bmFtZSwgTlVMTCwgTlVMTCk7CisJCSAgICBnb3RvIHNraXBfbnM7CisJCX0gZWxzZSB7CisJCSAgICB1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBVUkwpOworCQkgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisJCQl4bWxOc0VycihjdHh0LCBYTUxfV0FSX05TX1VSSSwKKwkJCSAgICAgInhtbG5zOiVzOiAnJXMnIGlzIG5vdCBhIHZhbGlkIFVSSVxuIiwKKwkJCQkJICAgYXR0bmFtZSwgVVJMLCBOVUxMKTsKKwkJICAgIH0gZWxzZSB7CisJCQlpZiAoKGN0eHQtPnBlZGFudGljKSAmJiAodXJpLT5zY2hlbWUgPT0gTlVMTCkpIHsKKwkJCSAgICB4bWxOc1dhcm4oY3R4dCwgWE1MX1dBUl9OU19VUklfUkVMQVRJVkUsCisJCQkJICAgICAgInhtbG5zOiVzOiBVUkkgJXMgaXMgbm90IGFic29sdXRlXG4iLAorCQkJCSAgICAgIGF0dG5hbWUsIFVSTCwgTlVMTCk7CisJCQl9CisJCQl4bWxGcmVlVVJJKHVyaSk7CisJCSAgICB9CisJCX0KKworCQkvKgorCQkgKiBjaGVjayB0aGF0IGl0J3Mgbm90IGEgZGVmaW5lZCBuYW1lc3BhY2UKKwkJICovCisJCWZvciAoaiA9IDE7aiA8PSBuYk5zO2orKykKKwkJICAgIGlmIChjdHh0LT5uc1RhYltjdHh0LT5uc05yIC0gMiAqIGpdID09IGF0dG5hbWUpCisJCQlicmVhazsKKwkJaWYgKGogPD0gbmJOcykKKwkJICAgIHhtbEVyckF0dHJpYnV0ZUR1cChjdHh0LCBhcHJlZml4LCBhdHRuYW1lKTsKKwkJZWxzZQorCQkgICAgaWYgKG5zUHVzaChjdHh0LCBhdHRuYW1lLCBVUkwpID4gMCkgbmJOcysrOworc2tpcF9uczoKKwkJaWYgKGFsbG9jICE9IDApIHhtbEZyZWUoYXR0dmFsdWUpOworCQlTS0lQX0JMQU5LUzsKKwkJaWYgKGN0eHQtPmlucHV0LT5iYXNlICE9IGJhc2UpIGdvdG8gYmFzZV9jaGFuZ2VkOworCQljb250aW51ZTsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIEFkZCB0aGUgcGFpciB0byBhdHRzCisJICAgICAqLworCSAgICBpZiAoKGF0dHMgPT0gTlVMTCkgfHwgKG5iYXR0cyArIDUgPiBtYXhhdHRzKSkgeworCSAgICAgICAgaWYgKHhtbEN0eHRHcm93QXR0cnMoY3R4dCwgbmJhdHRzICsgNSkgPCAwKSB7CisJCSAgICBpZiAoYXR0dmFsdWVbbGVuXSA9PSAwKQorCQkJeG1sRnJlZShhdHR2YWx1ZSk7CisJCSAgICBnb3RvIGZhaWxlZDsKKwkJfQorCSAgICAgICAgbWF4YXR0cyA9IGN0eHQtPm1heGF0dHM7CisJCWF0dHMgPSBjdHh0LT5hdHRzOworCSAgICB9CisJICAgIGN0eHQtPmF0dGFsbG9jc1tucmF0dHMrK10gPSBhbGxvYzsKKwkgICAgYXR0c1tuYmF0dHMrK10gPSBhdHRuYW1lOworCSAgICBhdHRzW25iYXR0cysrXSA9IGFwcmVmaXg7CisJICAgIGF0dHNbbmJhdHRzKytdID0gTlVMTDsgLyogdGhlIFVSSSB3aWxsIGJlIGZldGNoZWQgbGF0ZXIgKi8KKwkgICAgYXR0c1tuYmF0dHMrK10gPSBhdHR2YWx1ZTsKKwkgICAgYXR0dmFsdWUgKz0gbGVuOworCSAgICBhdHRzW25iYXR0cysrXSA9IGF0dHZhbHVlOworCSAgICAvKgorCSAgICAgKiB0YWcgaWYgc29tZSBkZWFsbG9jYXRpb24gaXMgbmVlZGVkCisJICAgICAqLworCSAgICBpZiAoYWxsb2MgIT0gMCkgYXR0dmFsID0gMTsKKwl9IGVsc2UgeworCSAgICBpZiAoKGF0dHZhbHVlICE9IE5VTEwpICYmIChhdHR2YWx1ZVtsZW5dID09IDApKQorCQl4bWxGcmVlKGF0dHZhbHVlKTsKKwl9CisKK2ZhaWxlZDoKKworCUdST1cKKwlpZiAoY3R4dC0+aW5wdXQtPmJhc2UgIT0gYmFzZSkgZ290byBiYXNlX2NoYW5nZWQ7CisJaWYgKChSQVcgPT0gJz4nKSB8fCAoKChSQVcgPT0gJy8nKSAmJiAoTlhUKDEpID09ICc+JykpKSkKKwkgICAgYnJlYWs7CisJaWYgKCFJU19CTEFOS19DSChSQVcpKSB7CisJICAgIHhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCisJCQkgICAiYXR0cmlidXRlcyBjb25zdHJ1Y3QgZXJyb3JcbiIpOworCSAgICBicmVhazsKKwl9CisJU0tJUF9CTEFOS1M7CisgICAgICAgIGlmICgoY29ucyA9PSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQpICYmIChxID09IENVUl9QVFIpICYmCisgICAgICAgICAgICAoYXR0bmFtZSA9PSBOVUxMKSAmJiAoYXR0dmFsdWUgPT0gTlVMTCkpIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICAgICAieG1sUGFyc2VTdGFydFRhZzogcHJvYmxlbSBwYXJzaW5nIGF0dHJpYnV0ZXNcbiIpOworCSAgICBicmVhazsKKwl9CisgICAgICAgIEdST1c7CisJaWYgKGN0eHQtPmlucHV0LT5iYXNlICE9IGJhc2UpIGdvdG8gYmFzZV9jaGFuZ2VkOworICAgIH0KKworICAgIC8qCisgICAgICogVGhlIGF0dHJpYnV0ZXMgZGVmYXVsdGluZworICAgICAqLworICAgIGlmIChjdHh0LT5hdHRzRGVmYXVsdCAhPSBOVUxMKSB7CisgICAgICAgIHhtbERlZkF0dHJzUHRyIGRlZmF1bHRzOworCisJZGVmYXVsdHMgPSB4bWxIYXNoTG9va3VwMihjdHh0LT5hdHRzRGVmYXVsdCwgbG9jYWxuYW1lLCBwcmVmaXgpOworCWlmIChkZWZhdWx0cyAhPSBOVUxMKSB7CisJICAgIGZvciAoaSA9IDA7aSA8IGRlZmF1bHRzLT5uYkF0dHJzO2krKykgeworCSAgICAgICAgYXR0bmFtZSA9IGRlZmF1bHRzLT52YWx1ZXNbNSAqIGldOworCQlhcHJlZml4ID0gZGVmYXVsdHMtPnZhbHVlc1s1ICogaSArIDFdOworCisgICAgICAgICAgICAgICAgLyoKKwkJICogc3BlY2lhbCB3b3JrIGZvciBuYW1lc3BhY2VzIGRlZmF1bHRlZCBkZWZzCisJCSAqLworCQlpZiAoKGF0dG5hbWUgPT0gY3R4dC0+c3RyX3htbG5zKSAmJiAoYXByZWZpeCA9PSBOVUxMKSkgeworCQkgICAgLyoKKwkJICAgICAqIGNoZWNrIHRoYXQgaXQncyBub3QgYSBkZWZpbmVkIG5hbWVzcGFjZQorCQkgICAgICovCisJCSAgICBmb3IgKGogPSAxO2ogPD0gbmJOcztqKyspCisJCSAgICAgICAgaWYgKGN0eHQtPm5zVGFiW2N0eHQtPm5zTnIgLSAyICogal0gPT0gTlVMTCkKKwkJCSAgICBicmVhazsKKwkgICAgICAgICAgICBpZiAoaiA8PSBuYk5zKSBjb250aW51ZTsKKworCQkgICAgbnNuYW1lID0geG1sR2V0TmFtZXNwYWNlKGN0eHQsIE5VTEwpOworCQkgICAgaWYgKG5zbmFtZSAhPSBkZWZhdWx0cy0+dmFsdWVzWzUgKiBpICsgMl0pIHsKKwkJCWlmIChuc1B1c2goY3R4dCwgTlVMTCwKKwkJCSAgICAgICAgICAgZGVmYXVsdHMtPnZhbHVlc1s1ICogaSArIDJdKSA+IDApCisJCQkgICAgbmJOcysrOworCQkgICAgfQorCQl9IGVsc2UgaWYgKGFwcmVmaXggPT0gY3R4dC0+c3RyX3htbG5zKSB7CisJCSAgICAvKgorCQkgICAgICogY2hlY2sgdGhhdCBpdCdzIG5vdCBhIGRlZmluZWQgbmFtZXNwYWNlCisJCSAgICAgKi8KKwkJICAgIGZvciAoaiA9IDE7aiA8PSBuYk5zO2orKykKKwkJICAgICAgICBpZiAoY3R4dC0+bnNUYWJbY3R4dC0+bnNOciAtIDIgKiBqXSA9PSBhdHRuYW1lKQorCQkJICAgIGJyZWFrOworCSAgICAgICAgICAgIGlmIChqIDw9IG5iTnMpIGNvbnRpbnVlOworCisJCSAgICBuc25hbWUgPSB4bWxHZXROYW1lc3BhY2UoY3R4dCwgYXR0bmFtZSk7CisJCSAgICBpZiAobnNuYW1lICE9IGRlZmF1bHRzLT52YWx1ZXNbMl0pIHsKKwkJCWlmIChuc1B1c2goY3R4dCwgYXR0bmFtZSwKKwkJCSAgICAgICAgICAgZGVmYXVsdHMtPnZhbHVlc1s1ICogaSArIDJdKSA+IDApCisJCQkgICAgbmJOcysrOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgLyoKKwkJICAgICAqIGNoZWNrIHRoYXQgaXQncyBub3QgYSBkZWZpbmVkIGF0dHJpYnV0ZQorCQkgICAgICovCisJCSAgICBmb3IgKGogPSAwO2ogPCBuYmF0dHM7ais9NSkgeworCQkJaWYgKChhdHRuYW1lID09IGF0dHNbal0pICYmIChhcHJlZml4ID09IGF0dHNbaisxXSkpCisJCQkgICAgYnJlYWs7CisJCSAgICB9CisJCSAgICBpZiAoaiA8IG5iYXR0cykgY29udGludWU7CisKKwkJICAgIGlmICgoYXR0cyA9PSBOVUxMKSB8fCAobmJhdHRzICsgNSA+IG1heGF0dHMpKSB7CisJCQlpZiAoeG1sQ3R4dEdyb3dBdHRycyhjdHh0LCBuYmF0dHMgKyA1KSA8IDApIHsKKwkJCSAgICByZXR1cm4oTlVMTCk7CisJCQl9CisJCQltYXhhdHRzID0gY3R4dC0+bWF4YXR0czsKKwkJCWF0dHMgPSBjdHh0LT5hdHRzOworCQkgICAgfQorCQkgICAgYXR0c1tuYmF0dHMrK10gPSBhdHRuYW1lOworCQkgICAgYXR0c1tuYmF0dHMrK10gPSBhcHJlZml4OworCQkgICAgaWYgKGFwcmVmaXggPT0gTlVMTCkKKwkJCWF0dHNbbmJhdHRzKytdID0gTlVMTDsKKwkJICAgIGVsc2UKKwkJICAgICAgICBhdHRzW25iYXR0cysrXSA9IHhtbEdldE5hbWVzcGFjZShjdHh0LCBhcHJlZml4KTsKKwkJICAgIGF0dHNbbmJhdHRzKytdID0gZGVmYXVsdHMtPnZhbHVlc1s1ICogaSArIDJdOworCQkgICAgYXR0c1tuYmF0dHMrK10gPSBkZWZhdWx0cy0+dmFsdWVzWzUgKiBpICsgM107CisJCSAgICBpZiAoKGN0eHQtPnN0YW5kYWxvbmUgPT0gMSkgJiYKKwkJICAgICAgICAoZGVmYXVsdHMtPnZhbHVlc1s1ICogaSArIDRdICE9IE5VTEwpKSB7CisJCQl4bWxWYWxpZGl0eUVycm9yKGN0eHQsIFhNTF9EVERfU1RBTkRBTE9ORV9ERUZBVUxURUQsIAorCSAgInN0YW5kYWxvbmU6IGF0dHJpYnV0ZSAlcyBvbiAlcyBkZWZhdWx0ZWQgZnJvbSBleHRlcm5hbCBzdWJzZXRcbiIsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0bmFtZSwgbG9jYWxuYW1lKTsKKwkJICAgIH0KKwkJICAgIG5iZGVmKys7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZSBhdHRyaWJ1dGVzIGNoZWNraW5ncworICAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBuYmF0dHM7aSArPSA1KSB7CisgICAgICAgIC8qCisJKiBUaGUgZGVmYXVsdCBuYW1lc3BhY2UgZG9lcyBub3QgYXBwbHkgdG8gYXR0cmlidXRlIG5hbWVzLgorCSovCisJaWYgKGF0dHNbaSArIDFdICE9IE5VTEwpIHsKKwkgICAgbnNuYW1lID0geG1sR2V0TmFtZXNwYWNlKGN0eHQsIGF0dHNbaSArIDFdKTsKKwkgICAgaWYgKG5zbmFtZSA9PSBOVUxMKSB7CisJCXhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfVU5ERUZJTkVEX05BTUVTUEFDRSwKKwkJICAgICJOYW1lc3BhY2UgcHJlZml4ICVzIGZvciAlcyBvbiAlcyBpcyBub3QgZGVmaW5lZFxuIiwKKwkJICAgIGF0dHNbaSArIDFdLCBhdHRzW2ldLCBsb2NhbG5hbWUpOworCSAgICB9CisJICAgIGF0dHNbaSArIDJdID0gbnNuYW1lOworCX0gZWxzZQorCSAgICBuc25hbWUgPSBOVUxMOworCS8qCisJICogWyBXRkM6IFVuaXF1ZSBBdHQgU3BlYyBdCisJICogTm8gYXR0cmlidXRlIG5hbWUgbWF5IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZQorCSAqIHN0YXJ0LXRhZyBvciBlbXB0eS1lbGVtZW50IHRhZy4gCisJICogQXMgZXh0ZW5kZWQgYnkgdGhlIE5hbWVzcGFjZSBpbiBYTUwgUkVDLgorCSAqLworICAgICAgICBmb3IgKGogPSAwOyBqIDwgaTtqICs9IDUpIHsKKwkgICAgaWYgKGF0dHNbaV0gPT0gYXR0c1tqXSkgeworCSAgICAgICAgaWYgKGF0dHNbaSsxXSA9PSBhdHRzW2orMV0pIHsKKwkJICAgIHhtbEVyckF0dHJpYnV0ZUR1cChjdHh0LCBhdHRzW2krMV0sIGF0dHNbaV0pOworCQkgICAgYnJlYWs7CisJCX0KKwkJaWYgKChuc25hbWUgIT0gTlVMTCkgJiYgKGF0dHNbaiArIDJdID09IG5zbmFtZSkpIHsKKwkJICAgIHhtbE5zRXJyKGN0eHQsIFhNTF9OU19FUlJfQVRUUklCVVRFX1JFREVGSU5FRCwKKwkJCSAgICAgIk5hbWVzcGFjZWQgQXR0cmlidXRlICVzIGluICclcycgcmVkZWZpbmVkXG4iLAorCQkJICAgICBhdHRzW2ldLCBuc25hbWUsIE5VTEwpOworCQkgICAgYnJlYWs7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisKKyAgICBuc25hbWUgPSB4bWxHZXROYW1lc3BhY2UoY3R4dCwgcHJlZml4KTsKKyAgICBpZiAoKHByZWZpeCAhPSBOVUxMKSAmJiAobnNuYW1lID09IE5VTEwpKSB7CisJeG1sTnNFcnIoY3R4dCwgWE1MX05TX0VSUl9VTkRFRklORURfTkFNRVNQQUNFLAorCSAgICAgICAgICJOYW1lc3BhY2UgcHJlZml4ICVzIG9uICVzIGlzIG5vdCBkZWZpbmVkXG4iLAorCQkgcHJlZml4LCBsb2NhbG5hbWUsIE5VTEwpOworICAgIH0KKyAgICAqcHJlZiA9IHByZWZpeDsKKyAgICAqVVJJID0gbnNuYW1lOworCisgICAgLyoKKyAgICAgKiBTQVg6IFN0YXJ0IG9mIEVsZW1lbnQgIQorICAgICAqLworICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPnN0YXJ0RWxlbWVudE5zICE9IE5VTEwpICYmCisJKCFjdHh0LT5kaXNhYmxlU0FYKSkgeworCWlmIChuYk5zID4gMCkKKwkgICAgY3R4dC0+c2F4LT5zdGFydEVsZW1lbnROcyhjdHh0LT51c2VyRGF0YSwgbG9jYWxuYW1lLCBwcmVmaXgsCisJCQkgIG5zbmFtZSwgbmJOcywgJmN0eHQtPm5zVGFiW2N0eHQtPm5zTnIgLSAyICogbmJOc10sCisJCQkgIG5iYXR0cyAvIDUsIG5iZGVmLCBhdHRzKTsKKwllbHNlCisJICAgIGN0eHQtPnNheC0+c3RhcnRFbGVtZW50TnMoY3R4dC0+dXNlckRhdGEsIGxvY2FsbmFtZSwgcHJlZml4LAorCSAgICAgICAgICAgICAgICAgIG5zbmFtZSwgMCwgTlVMTCwgbmJhdHRzIC8gNSwgbmJkZWYsIGF0dHMpOworICAgIH0KKworICAgIC8qCisgICAgICogRnJlZSB1cCBhdHRyaWJ1dGUgYWxsb2NhdGVkIHN0cmluZ3MgaWYgbmVlZGVkCisgICAgICovCisgICAgaWYgKGF0dHZhbCAhPSAwKSB7CisJZm9yIChpID0gMyxqID0gMDsgaiA8IG5yYXR0cztpICs9IDUsaisrKQorCSAgICBpZiAoKGN0eHQtPmF0dGFsbG9jc1tqXSAhPSAwKSAmJiAoYXR0c1tpXSAhPSBOVUxMKSkKKwkgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgYXR0c1tpXSk7CisgICAgfQorCisgICAgcmV0dXJuKGxvY2FsbmFtZSk7CisKK2Jhc2VfY2hhbmdlZDoKKyAgICAvKgorICAgICAqIHRoZSBhdHRyaWJ1dGUgc3RyaW5ncyBhcmUgdmFsaWQgaWlmIHRoZSBiYXNlIGRpZG4ndCBjaGFuZ2VkCisgICAgICovCisgICAgaWYgKGF0dHZhbCAhPSAwKSB7CisJZm9yIChpID0gMyxqID0gMDsgaiA8IG5yYXR0cztpICs9IDUsaisrKQorCSAgICBpZiAoKGN0eHQtPmF0dGFsbG9jc1tqXSAhPSAwKSAmJiAoYXR0c1tpXSAhPSBOVUxMKSkKKwkgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgYXR0c1tpXSk7CisgICAgfQorICAgIGN0eHQtPmlucHV0LT5jdXIgPSBjdHh0LT5pbnB1dC0+YmFzZSArIGN1cjsKKyAgICBjdHh0LT5pbnB1dC0+bGluZSA9IG9sZGxpbmU7CisgICAgY3R4dC0+aW5wdXQtPmNvbCA9IG9sZGNvbDsKKyAgICBpZiAoY3R4dC0+d2VsbEZvcm1lZCA9PSAxKSB7CisJZ290byByZXBhcnNlOworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VFbmRUYWcyOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBsaW5lOiAgbGluZSBvZiB0aGUgc3RhcnQgdGFnCisgKiBAbnNOcjogIG51bWJlciBvZiBuYW1lc3BhY2VzIG9uIHRoZSBzdGFydCB0YWcKKyAqCisgKiBwYXJzZSBhbiBlbmQgb2YgdGFnCisgKgorICogWzQyXSBFVGFnIDo6PSAnPC8nIE5hbWUgUz8gJz4nCisgKgorICogV2l0aCBuYW1lc3BhY2UKKyAqCisgKiBbTlMgOV0gRVRhZyA6Oj0gJzwvJyBRTmFtZSBTPyAnPicKKyAqLworCitzdGF0aWMgdm9pZAoreG1sUGFyc2VFbmRUYWcyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqcHJlZml4LAorICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKlVSSSwgaW50IGxpbmUsIGludCBuc05yLCBpbnQgdGxlbikgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisKKyAgICBHUk9XOworICAgIGlmICgoUkFXICE9ICc8JykgfHwgKE5YVCgxKSAhPSAnLycpKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9MVFNMQVNIX1JFUVVJUkVELCBOVUxMKTsKKwlyZXR1cm47CisgICAgfQorICAgIFNLSVAoMik7CisKKyAgICBpZiAoKHRsZW4gPiAwKSAmJiAoeG1sU3RybmNtcChjdHh0LT5pbnB1dC0+Y3VyLCBjdHh0LT5uYW1lLCB0bGVuKSA9PSAwKSkgeworICAgICAgICBpZiAoY3R4dC0+aW5wdXQtPmN1clt0bGVuXSA9PSAnPicpIHsKKwkgICAgY3R4dC0+aW5wdXQtPmN1ciArPSB0bGVuICsgMTsKKwkgICAgZ290byBkb25lOworCX0KKwljdHh0LT5pbnB1dC0+Y3VyICs9IHRsZW47CisJbmFtZSA9ICh4bWxDaGFyKikxOworICAgIH0gZWxzZSB7CisJaWYgKHByZWZpeCA9PSBOVUxMKQorCSAgICBuYW1lID0geG1sUGFyc2VOYW1lQW5kQ29tcGFyZShjdHh0LCBjdHh0LT5uYW1lKTsKKwllbHNlCisJICAgIG5hbWUgPSB4bWxQYXJzZVFOYW1lQW5kQ29tcGFyZShjdHh0LCBjdHh0LT5uYW1lLCBwcmVmaXgpOworICAgIH0KKworICAgIC8qCisgICAgICogV2Ugc2hvdWxkIGRlZmluaXRlbHkgYmUgYXQgdGhlIGVuZGluZyAiUz8gJz4nIiBwYXJ0CisgICAgICovCisgICAgR1JPVzsKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoKCFJU19CWVRFX0NIQVIoUkFXKSkgfHwgKFJBVyAhPSAnPicpKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9HVF9SRVFVSVJFRCwgTlVMTCk7CisgICAgfSBlbHNlCisJTkVYVDE7CisKKyAgICAvKgorICAgICAqIFsgV0ZDOiBFbGVtZW50IFR5cGUgTWF0Y2ggXQorICAgICAqIFRoZSBOYW1lIGluIGFuIGVsZW1lbnQncyBlbmQtdGFnIG11c3QgbWF0Y2ggdGhlIGVsZW1lbnQgdHlwZSBpbiB0aGUKKyAgICAgKiBzdGFydC10YWcuIAorICAgICAqCisgICAgICovCisgICAgaWYgKG5hbWUgIT0gKHhtbENoYXIqKTEpIHsKKyAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkgbmFtZSA9IEJBRF9DQVNUICJ1bnBhcnNlYWJsZSI7CisgICAgICAgIGlmICgobGluZSA9PSAwKSAmJiAoY3R4dC0+bm9kZSAhPSBOVUxMKSkKKyAgICAgICAgICAgIGxpbmUgPSBjdHh0LT5ub2RlLT5saW5lOworICAgICAgICB4bWxGYXRhbEVyck1zZ1N0ckludFN0cihjdHh0LCBYTUxfRVJSX1RBR19OQU1FX01JU01BVENILAorCQkgICAgICJPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiAlcyBsaW5lICVkIGFuZCAlc1xuIiwKKwkJICAgICAgICAgICAgICAgIGN0eHQtPm5hbWUsIGxpbmUsIG5hbWUpOworICAgIH0KKworICAgIC8qCisgICAgICogU0FYOiBFbmQgb2YgVGFnCisgICAgICovCitkb25lOgorICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmVuZEVsZW1lbnROcyAhPSBOVUxMKSAmJgorCSghY3R4dC0+ZGlzYWJsZVNBWCkpCisJY3R4dC0+c2F4LT5lbmRFbGVtZW50TnMoY3R4dC0+dXNlckRhdGEsIGN0eHQtPm5hbWUsIHByZWZpeCwgVVJJKTsKKworICAgIHNwYWNlUG9wKGN0eHQpOworICAgIGlmIChuc05yICE9IDApCisJbnNQb3AoY3R4dCwgbnNOcik7CisgICAgcmV0dXJuOworfQorCisvKioKKyAqIHhtbFBhcnNlQ0RTZWN0OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIAorICogUGFyc2UgZXNjYXBlZCBwdXJlIHJhdyBjb250ZW50LgorICoKKyAqIFsxOF0gQ0RTZWN0IDo6PSBDRFN0YXJ0IENEYXRhIENERW5kCisgKgorICogWzE5XSBDRFN0YXJ0IDo6PSAnPCFbQ0RBVEFbJworICoKKyAqIFsyMF0gRGF0YSA6Oj0gKENoYXIqIC0gKENoYXIqICddXT4nIENoYXIqKSkKKyAqCisgKiBbMjFdIENERW5kIDo6PSAnXV0+JworICovCit2b2lkCit4bWxQYXJzZUNEU2VjdCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpidWYgPSBOVUxMOworICAgIGludCBsZW4gPSAwOworICAgIGludCBzaXplID0gWE1MX1BBUlNFUl9CVUZGRVJfU0laRTsKKyAgICBpbnQgciwgcmw7CisgICAgaW50CXMsIHNsOworICAgIGludCBjdXIsIGw7CisgICAgaW50IGNvdW50ID0gMDsKKworICAgIC8qIENoZWNrIDIuNi4wIHdhcyBOWFQoMCkgbm90IFJBVyAqLworICAgIGlmIChDTVA5KENVUl9QVFIsICc8JywgJyEnLCAnWycsICdDJywgJ0QnLCAnQScsICdUJywgJ0EnLCAnWycpKSB7CisJU0tJUCg5KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuOworCisgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTjsKKyAgICByID0gQ1VSX0NIQVIocmwpOworICAgIGlmICghSVNfQ0hBUihyKSkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfQ0RBVEFfTk9UX0ZJTklTSEVELCBOVUxMKTsKKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIE5FWFRMKHJsKTsKKyAgICBzID0gQ1VSX0NIQVIoc2wpOworICAgIGlmICghSVNfQ0hBUihzKSkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfQ0RBVEFfTk9UX0ZJTklTSEVELCBOVUxMKTsKKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIE5FWFRMKHNsKTsKKyAgICBjdXIgPSBDVVJfQ0hBUihsKTsKKyAgICBidWYgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisJeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCXJldHVybjsKKyAgICB9CisgICAgd2hpbGUgKElTX0NIQVIoY3VyKSAmJgorICAgICAgICAgICAoKHIgIT0gJ10nKSB8fCAocyAhPSAnXScpIHx8IChjdXIgIT0gJz4nKSkpIHsKKwlpZiAobGVuICsgNSA+PSBzaXplKSB7CisJICAgIHhtbENoYXIgKnRtcDsKKworCSAgICBzaXplICo9IDI7CisJICAgIHRtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLCBzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgICAgICB4bWxGcmVlKGJ1Zik7CisJCXhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJcmV0dXJuOworCSAgICB9CisJICAgIGJ1ZiA9IHRtcDsKKwl9CisJQ09QWV9CVUYocmwsYnVmLGxlbixyKTsKKwlyID0gczsKKwlybCA9IHNsOworCXMgPSBjdXI7CisJc2wgPSBsOworCWNvdW50Kys7CisJaWYgKGNvdW50ID4gNTApIHsKKwkgICAgR1JPVzsKKwkgICAgY291bnQgPSAwOworCX0KKwlORVhUTChsKTsKKwljdXIgPSBDVVJfQ0hBUihsKTsKKyAgICB9CisgICAgYnVmW2xlbl0gPSAwOworICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisgICAgaWYgKGN1ciAhPSAnPicpIHsKKwl4bWxGYXRhbEVyck1zZ1N0cihjdHh0LCBYTUxfRVJSX0NEQVRBX05PVF9GSU5JU0hFRCwKKwkgICAgICAgICAgICAgICAgICAgICAiQ0RhdGEgc2VjdGlvbiBub3QgZmluaXNoZWRcbiUuNTBzXG4iLCBidWYpOworCXhtbEZyZWUoYnVmKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBORVhUTChsKTsKKworICAgIC8qCisgICAgICogT0sgdGhlIGJ1ZmZlciBpcyB0byBiZSBjb25zdW1lZCBhcyBjZGF0YS4KKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpKSB7CisJaWYgKGN0eHQtPnNheC0+Y2RhdGFCbG9jayAhPSBOVUxMKQorCSAgICBjdHh0LT5zYXgtPmNkYXRhQmxvY2soY3R4dC0+dXNlckRhdGEsIGJ1ZiwgbGVuKTsKKwllbHNlIGlmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkKKwkgICAgY3R4dC0+c2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJEYXRhLCBidWYsIGxlbik7CisgICAgfQorICAgIHhtbEZyZWUoYnVmKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUNvbnRlbnQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIFBhcnNlIGEgY29udGVudDoKKyAqCisgKiBbNDNdIGNvbnRlbnQgOjo9IChlbGVtZW50IHwgQ2hhckRhdGEgfCBSZWZlcmVuY2UgfCBDRFNlY3QgfCBQSSB8IENvbW1lbnQpKgorICovCisKK3ZvaWQKK3htbFBhcnNlQ29udGVudCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBHUk9XOworICAgIHdoaWxlICgoUkFXICE9IDApICYmCisJICAgKChSQVcgIT0gJzwnKSB8fCAoTlhUKDEpICE9ICcvJykpICYmCisJICAgKGN0eHQtPmluc3RhdGUgIT0gWE1MX1BBUlNFUl9FT0YpKSB7CisJY29uc3QgeG1sQ2hhciAqdGVzdCA9IENVUl9QVFI7CisJdW5zaWduZWQgaW50IGNvbnMgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQ7CisJY29uc3QgeG1sQ2hhciAqY3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKKworCS8qCisJICogRmlyc3QgY2FzZSA6IGEgUHJvY2Vzc2luZyBJbnN0cnVjdGlvbi4KKwkgKi8KKwlpZiAoKCpjdXIgPT0gJzwnKSAmJiAoY3VyWzFdID09ICc/JykpIHsKKwkgICAgeG1sUGFyc2VQSShjdHh0KTsKKwl9CisKKwkvKgorCSAqIFNlY29uZCBjYXNlIDogYSBDRFNlY3Rpb24KKwkgKi8KKwkvKiAyLjYuMCB0ZXN0IHdhcyAqY3VyIG5vdCBSQVcgKi8KKwllbHNlIGlmIChDTVA5KENVUl9QVFIsICc8JywgJyEnLCAnWycsICdDJywgJ0QnLCAnQScsICdUJywgJ0EnLCAnWycpKSB7CisJICAgIHhtbFBhcnNlQ0RTZWN0KGN0eHQpOworCX0KKworCS8qCisJICogVGhpcmQgY2FzZSA6ICBhIGNvbW1lbnQKKwkgKi8KKwllbHNlIGlmICgoKmN1ciA9PSAnPCcpICYmIChOWFQoMSkgPT0gJyEnKSAmJgorCQkgKE5YVCgyKSA9PSAnLScpICYmIChOWFQoMykgPT0gJy0nKSkgeworCSAgICB4bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJfQorCisJLyoKKwkgKiBGb3VydGggY2FzZSA6ICBhIHN1Yi1lbGVtZW50LgorCSAqLworCWVsc2UgaWYgKCpjdXIgPT0gJzwnKSB7CisJICAgIHhtbFBhcnNlRWxlbWVudChjdHh0KTsKKwl9CisKKwkvKgorCSAqIEZpZnRoIGNhc2UgOiBhIHJlZmVyZW5jZS4gSWYgaWYgaGFzIG5vdCBiZWVuIHJlc29sdmVkLAorCSAqICAgIHBhcnNpbmcgcmV0dXJucyBpdCdzIE5hbWUsIGNyZWF0ZSB0aGUgbm9kZSAKKwkgKi8KKworCWVsc2UgaWYgKCpjdXIgPT0gJyYnKSB7CisJICAgIHhtbFBhcnNlUmVmZXJlbmNlKGN0eHQpOworCX0KKworCS8qCisJICogTGFzdCBjYXNlLCB0ZXh0LiBOb3RlIHRoYXQgUmVmZXJlbmNlcyBhcmUgaGFuZGxlZCBkaXJlY3RseS4KKwkgKi8KKwllbHNlIHsKKwkgICAgeG1sUGFyc2VDaGFyRGF0YShjdHh0LCAwKTsKKwl9CisKKwlHUk9XOworCS8qCisJICogUG9wLXVwIG9mIGZpbmlzaGVkIGVudGl0aWVzLgorCSAqLworCXdoaWxlICgoUkFXID09IDApICYmIChjdHh0LT5pbnB1dE5yID4gMSkpCisJICAgIHhtbFBvcElucHV0KGN0eHQpOworCVNIUklOSzsKKworCWlmICgoY29ucyA9PSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQpICYmICh0ZXN0ID09IENVUl9QVFIpKSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJICAgICAgICAgICAgICAgICJkZXRlY3RlZCBhbiBlcnJvciBpbiBlbGVtZW50IGNvbnRlbnRcbiIpOworCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgICAgICAgICBicmVhazsKKwl9CisgICAgfQorfQorCisvKioKKyAqIHhtbFBhcnNlRWxlbWVudDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogcGFyc2UgYW4gWE1MIGVsZW1lbnQsIHRoaXMgaXMgaGlnaGx5IHJlY3Vyc2l2ZQorICoKKyAqIFszOV0gZWxlbWVudCA6Oj0gRW1wdHlFbGVtVGFnIHwgU1RhZyBjb250ZW50IEVUYWcKKyAqCisgKiBbIFdGQzogRWxlbWVudCBUeXBlIE1hdGNoIF0KKyAqIFRoZSBOYW1lIGluIGFuIGVsZW1lbnQncyBlbmQtdGFnIG11c3QgbWF0Y2ggdGhlIGVsZW1lbnQgdHlwZSBpbiB0aGUKKyAqIHN0YXJ0LXRhZy4gCisgKgorICovCisKK3ZvaWQKK3htbFBhcnNlRWxlbWVudCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqVVJJID0gTlVMTDsKKyAgICB4bWxQYXJzZXJOb2RlSW5mbyBub2RlX2luZm87CisgICAgaW50IGxpbmUsIHRsZW47CisgICAgeG1sTm9kZVB0ciByZXQ7CisgICAgaW50IG5zTnIgPSBjdHh0LT5uc05yOworCisgICAgaWYgKCgodW5zaWduZWQgaW50KSBjdHh0LT5uYW1lTnIgPiB4bWxQYXJzZXJNYXhEZXB0aCkgJiYKKyAgICAgICAgKChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpID09IDApKSB7CisJeG1sRmF0YWxFcnJNc2dJbnQoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICJFeGNlc3NpdmUgZGVwdGggaW4gZG9jdW1lbnQ6ICVkIHVzZSBYTUxfUEFSU0VfSFVHRSBvcHRpb25cbiIsCisJCQkgIHhtbFBhcnNlck1heERlcHRoKTsKKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisJcmV0dXJuOworICAgIH0KKworICAgIC8qIENhcHR1cmUgc3RhcnQgcG9zaXRpb24gKi8KKyAgICBpZiAoY3R4dC0+cmVjb3JkX2luZm8pIHsKKyAgICAgICAgbm9kZV9pbmZvLmJlZ2luX3BvcyA9IGN0eHQtPmlucHV0LT5jb25zdW1lZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgIChDVVJfUFRSIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworCW5vZGVfaW5mby5iZWdpbl9saW5lID0gY3R4dC0+aW5wdXQtPmxpbmU7CisgICAgfQorCisgICAgaWYgKGN0eHQtPnNwYWNlTnIgPT0gMCkKKwlzcGFjZVB1c2goY3R4dCwgLTEpOworICAgIGVsc2UgaWYgKCpjdHh0LT5zcGFjZSA9PSAtMikKKwlzcGFjZVB1c2goY3R4dCwgLTEpOworICAgIGVsc2UKKwlzcGFjZVB1c2goY3R4dCwgKmN0eHQtPnNwYWNlKTsKKworICAgIGxpbmUgPSBjdHh0LT5pbnB1dC0+bGluZTsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaWYgKGN0eHQtPnNheDIpCisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworICAgICAgICBuYW1lID0geG1sUGFyc2VTdGFydFRhZzIoY3R4dCwgJnByZWZpeCwgJlVSSSwgJnRsZW4pOworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBlbHNlCisJbmFtZSA9IHhtbFBhcnNlU3RhcnRUYWcoY3R4dCk7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwlzcGFjZVBvcChjdHh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBuYW1lUHVzaChjdHh0LCBuYW1lKTsKKyAgICByZXQgPSBjdHh0LT5ub2RlOworCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICAvKgorICAgICAqIFsgVkM6IFJvb3QgRWxlbWVudCBUeXBlIF0KKyAgICAgKiBUaGUgTmFtZSBpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBtdXN0IG1hdGNoIHRoZSBlbGVtZW50CisgICAgICogdHlwZSBvZiB0aGUgcm9vdCBlbGVtZW50LiAKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+dmFsaWRhdGUgJiYgY3R4dC0+d2VsbEZvcm1lZCAmJiBjdHh0LT5teURvYyAmJgorICAgICAgICBjdHh0LT5ub2RlICYmIChjdHh0LT5ub2RlID09IGN0eHQtPm15RG9jLT5jaGlsZHJlbikpCisgICAgICAgIGN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlUm9vdCgmY3R4dC0+dmN0eHQsIGN0eHQtPm15RG9jKTsKKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgYW4gRW1wdHkgRWxlbWVudC4KKyAgICAgKi8KKyAgICBpZiAoKFJBVyA9PSAnLycpICYmIChOWFQoMSkgPT0gJz4nKSkgeworICAgICAgICBTS0lQKDIpOworCWlmIChjdHh0LT5zYXgyKSB7CisJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChjdHh0LT5zYXgtPmVuZEVsZW1lbnROcyAhPSBOVUxMKSAmJgorCQkoIWN0eHQtPmRpc2FibGVTQVgpKQorCQljdHh0LT5zYXgtPmVuZEVsZW1lbnROcyhjdHh0LT51c2VyRGF0YSwgbmFtZSwgcHJlZml4LCBVUkkpOworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKwl9IGVsc2UgeworCSAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpICYmCisJCSghY3R4dC0+ZGlzYWJsZVNBWCkpCisJCWN0eHQtPnNheC0+ZW5kRWxlbWVudChjdHh0LT51c2VyRGF0YSwgbmFtZSk7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCX0KKwluYW1lUG9wKGN0eHQpOworCXNwYWNlUG9wKGN0eHQpOworCWlmIChuc05yICE9IGN0eHQtPm5zTnIpCisJICAgIG5zUG9wKGN0eHQsIGN0eHQtPm5zTnIgLSBuc05yKTsKKwlpZiAoIHJldCAhPSBOVUxMICYmIGN0eHQtPnJlY29yZF9pbmZvICkgeworCSAgIG5vZGVfaW5mby5lbmRfcG9zID0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkICsKKwkJCSAgICAgIChDVVJfUFRSIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworCSAgIG5vZGVfaW5mby5lbmRfbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworCSAgIG5vZGVfaW5mby5ub2RlID0gcmV0OworCSAgIHhtbFBhcnNlckFkZE5vZGVJbmZvKGN0eHQsICZub2RlX2luZm8pOworCX0KKwlyZXR1cm47CisgICAgfQorICAgIGlmIChSQVcgPT0gJz4nKSB7CisgICAgICAgIE5FWFQxOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbEZhdGFsRXJyTXNnU3RySW50U3RyKGN0eHQsIFhNTF9FUlJfR1RfUkVRVUlSRUQsCisJCSAgICAgIkNvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyAlcyBsaW5lICVkXG4iLAorCQkgICAgICAgICAgICAgICAgbmFtZSwgbGluZSwgTlVMTCk7CisKKwkvKgorCSAqIGVuZCBvZiBwYXJzaW5nIG9mIHRoaXMgbm9kZS4KKwkgKi8KKwlub2RlUG9wKGN0eHQpOworCW5hbWVQb3AoY3R4dCk7CisJc3BhY2VQb3AoY3R4dCk7CisJaWYgKG5zTnIgIT0gY3R4dC0+bnNOcikKKwkgICAgbnNQb3AoY3R4dCwgY3R4dC0+bnNOciAtIG5zTnIpOworCisJLyoKKwkgKiBDYXB0dXJlIGVuZCBwb3NpdGlvbiBhbmQgYWRkIG5vZGUKKwkgKi8KKwlpZiAoIHJldCAhPSBOVUxMICYmIGN0eHQtPnJlY29yZF9pbmZvICkgeworCSAgIG5vZGVfaW5mby5lbmRfcG9zID0gY3R4dC0+aW5wdXQtPmNvbnN1bWVkICsKKwkJCSAgICAgIChDVVJfUFRSIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworCSAgIG5vZGVfaW5mby5lbmRfbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworCSAgIG5vZGVfaW5mby5ub2RlID0gcmV0OworCSAgIHhtbFBhcnNlckFkZE5vZGVJbmZvKGN0eHQsICZub2RlX2luZm8pOworCX0KKwlyZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBQYXJzZSB0aGUgY29udGVudCBvZiB0aGUgZWxlbWVudDoKKyAgICAgKi8KKyAgICB4bWxQYXJzZUNvbnRlbnQoY3R4dCk7CisgICAgaWYgKCFJU19CWVRFX0NIQVIoUkFXKSkgeworICAgICAgICB4bWxGYXRhbEVyck1zZ1N0ckludFN0cihjdHh0LCBYTUxfRVJSX1RBR19OT1RfRklOSVNIRUQsCisJICJQcmVtYXR1cmUgZW5kIG9mIGRhdGEgaW4gdGFnICVzIGxpbmUgJWRcbiIsCisJCSAgICAgICAgICAgICAgICBuYW1lLCBsaW5lLCBOVUxMKTsKKworCS8qCisJICogZW5kIG9mIHBhcnNpbmcgb2YgdGhpcyBub2RlLgorCSAqLworCW5vZGVQb3AoY3R4dCk7CisJbmFtZVBvcChjdHh0KTsKKwlzcGFjZVBvcChjdHh0KTsKKwlpZiAobnNOciAhPSBjdHh0LT5uc05yKQorCSAgICBuc1BvcChjdHh0LCBjdHh0LT5uc05yIC0gbnNOcik7CisJcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogcGFyc2UgdGhlIGVuZCBvZiB0YWc6ICc8Lycgc2hvdWxkIGJlIGhlcmUuCisgICAgICovCisgICAgaWYgKGN0eHQtPnNheDIpIHsKKwl4bWxQYXJzZUVuZFRhZzIoY3R4dCwgcHJlZml4LCBVUkksIGxpbmUsIGN0eHQtPm5zTnIgLSBuc05yLCB0bGVuKTsKKwluYW1lUG9wKGN0eHQpOworICAgIH0KKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgICBlbHNlCisJeG1sUGFyc2VFbmRUYWcxKGN0eHQsIGxpbmUpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKworICAgIC8qCisgICAgICogQ2FwdHVyZSBlbmQgcG9zaXRpb24gYW5kIGFkZCBub2RlCisgICAgICovCisgICAgaWYgKCByZXQgIT0gTlVMTCAmJiBjdHh0LT5yZWNvcmRfaW5mbyApIHsKKyAgICAgICBub2RlX2luZm8uZW5kX3BvcyA9IGN0eHQtPmlucHV0LT5jb25zdW1lZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgIChDVVJfUFRSIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworICAgICAgIG5vZGVfaW5mby5lbmRfbGluZSA9IGN0eHQtPmlucHV0LT5saW5lOworICAgICAgIG5vZGVfaW5mby5ub2RlID0gcmV0OworICAgICAgIHhtbFBhcnNlckFkZE5vZGVJbmZvKGN0eHQsICZub2RlX2luZm8pOworICAgIH0KK30KKworLyoqCisgKiB4bWxQYXJzZVZlcnNpb25OdW06CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIHRoZSBYTUwgdmVyc2lvbiB2YWx1ZS4KKyAqCisgKiBbMjZdIFZlcnNpb25OdW0gOjo9ICcxLicgWzAtOV0rCisgKgorICogSW4gcHJhY3RpY2UgYWxsb3cgWzAtOV0uWzAtOV0rIGF0IHRoYXQgbGV2ZWwKKyAqCisgKiBSZXR1cm5zIHRoZSBzdHJpbmcgZ2l2aW5nIHRoZSBYTUwgdmVyc2lvbiBudW1iZXIsIG9yIE5VTEwKKyAqLworeG1sQ2hhciAqCit4bWxQYXJzZVZlcnNpb25OdW0oeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciAqYnVmID0gTlVMTDsKKyAgICBpbnQgbGVuID0gMDsKKyAgICBpbnQgc2l6ZSA9IDEwOworICAgIHhtbENoYXIgY3VyOworCisgICAgYnVmID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKHNpemUgKiBzaXplb2YoeG1sQ2hhcikpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworCXhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGN1ciA9IENVUjsKKyAgICBpZiAoISgoY3VyID49ICcwJykgJiYgKGN1ciA8PSAnOScpKSkgeworCXhtbEZyZWUoYnVmKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGJ1ZltsZW4rK10gPSBjdXI7CisgICAgTkVYVDsKKyAgICBjdXI9Q1VSOworICAgIGlmIChjdXIgIT0gJy4nKSB7CisJeG1sRnJlZShidWYpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgYnVmW2xlbisrXSA9IGN1cjsKKyAgICBORVhUOworICAgIGN1cj1DVVI7CisgICAgd2hpbGUgKChjdXIgPj0gJzAnKSAmJiAoY3VyIDw9ICc5JykpIHsKKwlpZiAobGVuICsgMSA+PSBzaXplKSB7CisJICAgIHhtbENoYXIgKnRtcDsKKworCSAgICBzaXplICo9IDI7CisJICAgIHRtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLCBzaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgICAgICB4bWxGcmVlKGJ1Zik7CisJCXhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGJ1ZiA9IHRtcDsKKwl9CisJYnVmW2xlbisrXSA9IGN1cjsKKwlORVhUOworCWN1cj1DVVI7CisgICAgfQorICAgIGJ1ZltsZW5dID0gMDsKKyAgICByZXR1cm4oYnVmKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVZlcnNpb25JbmZvOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSB0aGUgWE1MIHZlcnNpb24uCisgKgorICogWzI0XSBWZXJzaW9uSW5mbyA6Oj0gUyAndmVyc2lvbicgRXEgKCcgVmVyc2lvbk51bSAnIHwgIiBWZXJzaW9uTnVtICIpCisgKgorICogWzI1XSBFcSA6Oj0gUz8gJz0nIFM/CisgKgorICogUmV0dXJucyB0aGUgdmVyc2lvbiBzdHJpbmcsIGUuZy4gIjEuMCIKKyAqLworCit4bWxDaGFyICoKK3htbFBhcnNlVmVyc2lvbkluZm8oeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciAqdmVyc2lvbiA9IE5VTEw7CisKKyAgICBpZiAoQ01QNyhDVVJfUFRSLCAndicsICdlJywgJ3InLCAncycsICdpJywgJ28nLCAnbicpKSB7CisJU0tJUCg3KTsKKwlTS0lQX0JMQU5LUzsKKwlpZiAoUkFXICE9ICc9JykgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VRVUFMX1JFUVVJUkVELCBOVUxMKTsKKwkgICAgcmV0dXJuKE5VTEwpOworICAgICAgICB9CisJTkVYVDsKKwlTS0lQX0JMQU5LUzsKKwlpZiAoUkFXID09ICciJykgeworCSAgICBORVhUOworCSAgICB2ZXJzaW9uID0geG1sUGFyc2VWZXJzaW9uTnVtKGN0eHQpOworCSAgICBpZiAoUkFXICE9ICciJykgeworCQl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VELCBOVUxMKTsKKwkgICAgfSBlbHNlCisJICAgICAgICBORVhUOworCX0gZWxzZSBpZiAoUkFXID09ICdcJycpeworCSAgICBORVhUOworCSAgICB2ZXJzaW9uID0geG1sUGFyc2VWZXJzaW9uTnVtKGN0eHQpOworCSAgICBpZiAoUkFXICE9ICdcJycpIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9TVFJJTkdfTk9UX0NMT1NFRCwgTlVMTCk7CisJICAgIH0gZWxzZQorCSAgICAgICAgTkVYVDsKKwl9IGVsc2UgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRCwgTlVMTCk7CisJfQorICAgIH0KKyAgICByZXR1cm4odmVyc2lvbik7Cit9CisKKy8qKgorICogeG1sUGFyc2VFbmNOYW1lOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSB0aGUgWE1MIGVuY29kaW5nIG5hbWUKKyAqCisgKiBbODFdIEVuY05hbWUgOjo9IFtBLVphLXpdIChbQS1aYS16MC05Ll9dIHwgJy0nKSoKKyAqCisgKiBSZXR1cm5zIHRoZSBlbmNvZGluZyBuYW1lIHZhbHVlIG9yIE5VTEwKKyAqLworeG1sQ2hhciAqCit4bWxQYXJzZUVuY05hbWUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciAqYnVmID0gTlVMTDsKKyAgICBpbnQgbGVuID0gMDsKKyAgICBpbnQgc2l6ZSA9IDEwOworICAgIHhtbENoYXIgY3VyOworCisgICAgY3VyID0gQ1VSOworICAgIGlmICgoKGN1ciA+PSAnYScpICYmIChjdXIgPD0gJ3onKSkgfHwKKyAgICAgICAgKChjdXIgPj0gJ0EnKSAmJiAoY3VyIDw9ICdaJykpKSB7CisJYnVmID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKHNpemUgKiBzaXplb2YoeG1sQ2hhcikpOworCWlmIChidWYgPT0gTlVMTCkgeworCSAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisKKwlidWZbbGVuKytdID0gY3VyOworCU5FWFQ7CisJY3VyID0gQ1VSOworCXdoaWxlICgoKGN1ciA+PSAnYScpICYmIChjdXIgPD0gJ3onKSkgfHwKKwkgICAgICAgKChjdXIgPj0gJ0EnKSAmJiAoY3VyIDw9ICdaJykpIHx8CisJICAgICAgICgoY3VyID49ICcwJykgJiYgKGN1ciA8PSAnOScpKSB8fAorCSAgICAgICAoY3VyID09ICcuJykgfHwgKGN1ciA9PSAnXycpIHx8CisJICAgICAgIChjdXIgPT0gJy0nKSkgeworCSAgICBpZiAobGVuICsgMSA+PSBzaXplKSB7CisJICAgICAgICB4bWxDaGFyICp0bXA7CisKKwkJc2l6ZSAqPSAyOworCQl0bXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1Ziwgc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisJCWlmICh0bXAgPT0gTlVMTCkgeworCQkgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCQkgICAgeG1sRnJlZShidWYpOworCQkgICAgcmV0dXJuKE5VTEwpOworCQl9CisJCWJ1ZiA9IHRtcDsKKwkgICAgfQorCSAgICBidWZbbGVuKytdID0gY3VyOworCSAgICBORVhUOworCSAgICBjdXIgPSBDVVI7CisJICAgIGlmIChjdXIgPT0gMCkgeworCSAgICAgICAgU0hSSU5LOworCQlHUk9XOworCQljdXIgPSBDVVI7CisJICAgIH0KKyAgICAgICAgfQorCWJ1ZltsZW5dID0gMDsKKyAgICB9IGVsc2UgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRU5DT0RJTkdfTkFNRSwgTlVMTCk7CisgICAgfQorICAgIHJldHVybihidWYpOworfQorCisvKioKKyAqIHhtbFBhcnNlRW5jb2RpbmdEZWNsOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIAorICogcGFyc2UgdGhlIFhNTCBlbmNvZGluZyBkZWNsYXJhdGlvbgorICoKKyAqIFs4MF0gRW5jb2RpbmdEZWNsIDo6PSBTICdlbmNvZGluZycgRXEgKCciJyBFbmNOYW1lICciJyB8ICAiJyIgRW5jTmFtZSAiJyIpCisgKgorICogdGhpcyBzZXR1cHMgdGhlIGNvbnZlcnNpb24gZmlsdGVycy4KKyAqCisgKiBSZXR1cm5zIHRoZSBlbmNvZGluZyB2YWx1ZSBvciBOVUxMCisgKi8KKworY29uc3QgeG1sQ2hhciAqCit4bWxQYXJzZUVuY29kaW5nRGVjbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICplbmNvZGluZyA9IE5VTEw7CisKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoQ01QOChDVVJfUFRSLCAnZScsICduJywgJ2MnLCAnbycsICdkJywgJ2knLCAnbicsICdnJykpIHsKKwlTS0lQKDgpOworCVNLSVBfQkxBTktTOworCWlmIChSQVcgIT0gJz0nKSB7CisJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRVFVQUxfUkVRVUlSRUQsIE5VTEwpOworCSAgICByZXR1cm4oTlVMTCk7CisgICAgICAgIH0KKwlORVhUOworCVNLSVBfQkxBTktTOworCWlmIChSQVcgPT0gJyInKSB7CisJICAgIE5FWFQ7CisJICAgIGVuY29kaW5nID0geG1sUGFyc2VFbmNOYW1lKGN0eHQpOworCSAgICBpZiAoUkFXICE9ICciJykgeworCQl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1NUUklOR19OT1RfQ0xPU0VELCBOVUxMKTsKKwkgICAgfSBlbHNlCisJICAgICAgICBORVhUOworCX0gZWxzZSBpZiAoUkFXID09ICdcJycpeworCSAgICBORVhUOworCSAgICBlbmNvZGluZyA9IHhtbFBhcnNlRW5jTmFtZShjdHh0KTsKKwkgICAgaWYgKFJBVyAhPSAnXCcnKSB7CisJCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfU1RSSU5HX05PVF9DTE9TRUQsIE5VTEwpOworCSAgICB9IGVsc2UKKwkgICAgICAgIE5FWFQ7CisJfSBlbHNlIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9TVFJJTkdfTk9UX1NUQVJURUQsIE5VTEwpOworCX0KKwkvKgorCSAqIFVURi0xNiBlbmNvZGluZyBzdHdpY2ggaGFzIGFscmVhZHkgdGFrZW4gcGxhY2UgYXQgdGhpcyBzdGFnZSwKKwkgKiBtb3JlIG92ZXIgdGhlIGxpdHRsZS1lbmRpYW4vYmlnLWVuZGlhbiBzZWxlY3Rpb24gaXMgYWxyZWFkeSBkb25lCisJICovCisgICAgICAgIGlmICgoZW5jb2RpbmcgIT0gTlVMTCkgJiYKKwkgICAgKCgheG1sU3RyY2FzZWNtcChlbmNvZGluZywgQkFEX0NBU1QgIlVURi0xNiIpKSB8fAorCSAgICAgKCF4bWxTdHJjYXNlY21wKGVuY29kaW5nLCBCQURfQ0FTVCAiVVRGMTYiKSkpKSB7CisJICAgIC8qCisJICAgICAqIElmIG5vIGVuY29kaW5nIHdhcyBwYXNzZWQgdG8gdGhlIHBhcnNlciwgdGhhdCB3ZSBhcmUKKwkgICAgICogdXNpbmcgVVRGLTE2IGFuZCBubyBkZWNvZGVyIGlzIHByZXNlbnQgaS5lLiB0aGUgCisJICAgICAqIGRvY3VtZW50IGlzIGFwcGFyZW50bHkgVVRGLTggY29tcGF0aWJsZSwgdGhlbiByYWlzZSBhbgorCSAgICAgKiBlbmNvZGluZyBtaXNtYXRjaCBmYXRhbCBlcnJvcgorCSAgICAgKi8KKwkgICAgaWYgKChjdHh0LT5lbmNvZGluZyA9PSBOVUxMKSAmJgorCSAgICAgICAgKGN0eHQtPmlucHV0LT5idWYgIT0gTlVMTCkgJiYKKwkgICAgICAgIChjdHh0LT5pbnB1dC0+YnVmLT5lbmNvZGVyID09IE5VTEwpKSB7CisJCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9FTkNPRElORywKKwkJICAiRG9jdW1lbnQgbGFiZWxsZWQgVVRGLTE2IGJ1dCBoYXMgVVRGLTggY29udGVudFxuIik7CisJICAgIH0KKwkgICAgaWYgKGN0eHQtPmVuY29kaW5nICE9IE5VTEwpCisJCXhtbEZyZWUoKHhtbENoYXIgKikgY3R4dC0+ZW5jb2RpbmcpOworCSAgICBjdHh0LT5lbmNvZGluZyA9IGVuY29kaW5nOworCX0KKwkvKgorCSAqIFVURi04IGVuY29kaW5nIGlzIGhhbmRsZWQgbmF0aXZlbHkKKwkgKi8KKyAgICAgICAgZWxzZSBpZiAoKGVuY29kaW5nICE9IE5VTEwpICYmCisJICAgICgoIXhtbFN0cmNhc2VjbXAoZW5jb2RpbmcsIEJBRF9DQVNUICJVVEYtOCIpKSB8fAorCSAgICAgKCF4bWxTdHJjYXNlY21wKGVuY29kaW5nLCBCQURfQ0FTVCAiVVRGOCIpKSkpIHsKKwkgICAgaWYgKGN0eHQtPmVuY29kaW5nICE9IE5VTEwpCisJCXhtbEZyZWUoKHhtbENoYXIgKikgY3R4dC0+ZW5jb2RpbmcpOworCSAgICBjdHh0LT5lbmNvZGluZyA9IGVuY29kaW5nOworCX0KKwllbHNlIGlmIChlbmNvZGluZyAhPSBOVUxMKSB7CisJICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsKKworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmVuY29kaW5nICE9IE5VTEwpCisJCXhtbEZyZWUoKHhtbENoYXIgKikgY3R4dC0+aW5wdXQtPmVuY29kaW5nKTsKKwkgICAgY3R4dC0+aW5wdXQtPmVuY29kaW5nID0gZW5jb2Rpbmc7CisKKyAgICAgICAgICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigoY29uc3QgY2hhciAqKSBlbmNvZGluZyk7CisJICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHsKKwkJeG1sU3dpdGNoVG9FbmNvZGluZyhjdHh0LCBoYW5kbGVyKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORywKKwkJCSJVbnN1cHBvcnRlZCBlbmNvZGluZyAlc1xuIiwgZW5jb2RpbmcpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybihlbmNvZGluZyk7Cit9CisKKy8qKgorICogeG1sUGFyc2VTRERlY2w6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIHRoZSBYTUwgc3RhbmRhbG9uZSBkZWNsYXJhdGlvbgorICoKKyAqIFszMl0gU0REZWNsIDo6PSBTICdzdGFuZGFsb25lJyBFcQorICogICAgICAgICAgICAgICAgICgoIiciICgneWVzJyB8ICdubycpICInIikgfCAoJyInICgneWVzJyB8ICdubycpJyInKSkgCisgKgorICogWyBWQzogU3RhbmRhbG9uZSBEb2N1bWVudCBEZWNsYXJhdGlvbiBdCisgKiBUT0RPIFRoZSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uIG11c3QgaGF2ZSB0aGUgdmFsdWUgIm5vIgorICogaWYgYW55IGV4dGVybmFsIG1hcmt1cCBkZWNsYXJhdGlvbnMgY29udGFpbiBkZWNsYXJhdGlvbnMgb2Y6CisgKiAgLSBhdHRyaWJ1dGVzIHdpdGggZGVmYXVsdCB2YWx1ZXMsIGlmIGVsZW1lbnRzIHRvIHdoaWNoIHRoZXNlCisgKiAgICBhdHRyaWJ1dGVzIGFwcGx5IGFwcGVhciBpbiB0aGUgZG9jdW1lbnQgd2l0aG91dCBzcGVjaWZpY2F0aW9ucworICogICAgb2YgdmFsdWVzIGZvciB0aGVzZSBhdHRyaWJ1dGVzLCBvcgorICogIC0gZW50aXRpZXMgKG90aGVyIHRoYW4gYW1wLCBsdCwgZ3QsIGFwb3MsIHF1b3QpLCBpZiByZWZlcmVuY2VzCisgKiAgICB0byB0aG9zZSBlbnRpdGllcyBhcHBlYXIgaW4gdGhlIGRvY3VtZW50LCBvcgorICogIC0gYXR0cmlidXRlcyB3aXRoIHZhbHVlcyBzdWJqZWN0IHRvIG5vcm1hbGl6YXRpb24sIHdoZXJlIHRoZQorICogICAgYXR0cmlidXRlIGFwcGVhcnMgaW4gdGhlIGRvY3VtZW50IHdpdGggYSB2YWx1ZSB3aGljaCB3aWxsIGNoYW5nZQorICogICAgYXMgYSByZXN1bHQgb2Ygbm9ybWFsaXphdGlvbiwgb3IKKyAqICAtIGVsZW1lbnQgdHlwZXMgd2l0aCBlbGVtZW50IGNvbnRlbnQsIGlmIHdoaXRlIHNwYWNlIG9jY3VycyBkaXJlY3RseQorICogICAgd2l0aGluIGFueSBpbnN0YW5jZSBvZiB0aG9zZSB0eXBlcy4KKyAqCisgKiBSZXR1cm5zOgorICogICAxIGlmIHN0YW5kYWxvbmU9InllcyIKKyAqICAgMCBpZiBzdGFuZGFsb25lPSJubyIKKyAqICAtMiBpZiBzdGFuZGFsb25lIGF0dHJpYnV0ZSBpcyBtaXNzaW5nIG9yIGludmFsaWQKKyAqCSAgKEEgc3RhbmRhbG9uZSB2YWx1ZSBvZiAtMiBtZWFucyB0aGF0IHRoZSBYTUwgZGVjbGFyYXRpb24gd2FzIGZvdW5kLAorICoJICAgYnV0IG5vIHZhbHVlIHdhcyBzcGVjaWZpZWQgZm9yIHRoZSBzdGFuZGFsb25lIGF0dHJpYnV0ZSkuCisgKi8KKworaW50Cit4bWxQYXJzZVNERGVjbCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgc3RhbmRhbG9uZSA9IC0yOworCisgICAgU0tJUF9CTEFOS1M7CisgICAgaWYgKENNUDEwKENVUl9QVFIsICdzJywgJ3QnLCAnYScsICduJywgJ2QnLCAnYScsICdsJywgJ28nLCAnbicsICdlJykpIHsKKwlTS0lQKDEwKTsKKyAgICAgICAgU0tJUF9CTEFOS1M7CisJaWYgKFJBVyAhPSAnPScpIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FUVVBTF9SRVFVSVJFRCwgTlVMTCk7CisJICAgIHJldHVybihzdGFuZGFsb25lKTsKKyAgICAgICAgfQorCU5FWFQ7CisJU0tJUF9CTEFOS1M7CisgICAgICAgIGlmIChSQVcgPT0gJ1wnJyl7CisJICAgIE5FWFQ7CisJICAgIGlmICgoUkFXID09ICduJykgJiYgKE5YVCgxKSA9PSAnbycpKSB7CisJICAgICAgICBzdGFuZGFsb25lID0gMDsKKyAgICAgICAgICAgICAgICBTS0lQKDIpOworCSAgICB9IGVsc2UgaWYgKChSQVcgPT0gJ3knKSAmJiAoTlhUKDEpID09ICdlJykgJiYKKwkgICAgICAgICAgICAgICAoTlhUKDIpID09ICdzJykpIHsKKwkgICAgICAgIHN0YW5kYWxvbmUgPSAxOworCQlTS0lQKDMpOworICAgICAgICAgICAgfSBlbHNlIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9TVEFOREFMT05FX1ZBTFVFLCBOVUxMKTsKKwkgICAgfQorCSAgICBpZiAoUkFXICE9ICdcJycpIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9TVFJJTkdfTk9UX0NMT1NFRCwgTlVMTCk7CisJICAgIH0gZWxzZQorCSAgICAgICAgTkVYVDsKKwl9IGVsc2UgaWYgKFJBVyA9PSAnIicpeworCSAgICBORVhUOworCSAgICBpZiAoKFJBVyA9PSAnbicpICYmIChOWFQoMSkgPT0gJ28nKSkgeworCSAgICAgICAgc3RhbmRhbG9uZSA9IDA7CisJCVNLSVAoMik7CisJICAgIH0gZWxzZSBpZiAoKFJBVyA9PSAneScpICYmIChOWFQoMSkgPT0gJ2UnKSAmJgorCSAgICAgICAgICAgICAgIChOWFQoMikgPT0gJ3MnKSkgeworCSAgICAgICAgc3RhbmRhbG9uZSA9IDE7CisgICAgICAgICAgICAgICAgU0tJUCgzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisJCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfU1RBTkRBTE9ORV9WQUxVRSwgTlVMTCk7CisJICAgIH0KKwkgICAgaWYgKFJBVyAhPSAnIicpIHsKKwkJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9TVFJJTkdfTk9UX0NMT1NFRCwgTlVMTCk7CisJICAgIH0gZWxzZQorCSAgICAgICAgTkVYVDsKKwl9IGVsc2UgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1NUUklOR19OT1RfU1RBUlRFRCwgTlVMTCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuKHN0YW5kYWxvbmUpOworfQorCisvKioKKyAqIHhtbFBhcnNlWE1MRGVjbDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiAKKyAqIHBhcnNlIGFuIFhNTCBkZWNsYXJhdGlvbiBoZWFkZXIKKyAqCisgKiBbMjNdIFhNTERlY2wgOjo9ICc8P3htbCcgVmVyc2lvbkluZm8gRW5jb2RpbmdEZWNsPyBTRERlY2w/IFM/ICc/PicKKyAqLworCit2b2lkCit4bWxQYXJzZVhNTERlY2woeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciAqdmVyc2lvbjsKKworICAgIC8qCisgICAgICogVGhpcyB2YWx1ZSBmb3Igc3RhbmRhbG9uZSBpbmRpY2F0ZXMgdGhhdCB0aGUgZG9jdW1lbnQgaGFzIGFuCisgICAgICogWE1MIGRlY2xhcmF0aW9uIGJ1dCBpdCBkb2VzIG5vdCBoYXZlIGEgc3RhbmRhbG9uZSBhdHRyaWJ1dGUuCisgICAgICogSXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBsYXRlciBpZiBhIHN0YW5kYWxvbmUgYXR0cmlidXRlIGlzIGZvdW5kLgorICAgICAqLworICAgIGN0eHQtPmlucHV0LT5zdGFuZGFsb25lID0gLTI7CisKKyAgICAvKgorICAgICAqIFdlIGtub3cgdGhhdCAnPD94bWwnIGlzIGhlcmUuCisgICAgICovCisgICAgU0tJUCg1KTsKKworICAgIGlmICghSVNfQkxBTktfQ0goUkFXKSkgeworCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsCisJICAgICAgICAgICAgICAgIkJsYW5rIG5lZWRlZCBhZnRlciAnPD94bWwnXG4iKTsKKyAgICB9CisgICAgU0tJUF9CTEFOS1M7CisKKyAgICAvKgorICAgICAqIFdlIG11c3QgaGF2ZSB0aGUgVmVyc2lvbkluZm8gaGVyZS4KKyAgICAgKi8KKyAgICB2ZXJzaW9uID0geG1sUGFyc2VWZXJzaW9uSW5mbyhjdHh0KTsKKyAgICBpZiAodmVyc2lvbiA9PSBOVUxMKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9WRVJTSU9OX01JU1NJTkcsIE5VTEwpOworICAgIH0gZWxzZSB7CisJaWYgKCF4bWxTdHJFcXVhbCh2ZXJzaW9uLCAoY29uc3QgeG1sQ2hhciAqKSBYTUxfREVGQVVMVF9WRVJTSU9OKSkgeworCSAgICAvKgorCSAgICAgKiBDaGFuZ2VkIGhlcmUgZm9yIFhNTC0xLjAgNXRoIGVkaXRpb24KKwkgICAgICovCisJICAgIGlmIChjdHh0LT5vcHRpb25zICYgWE1MX1BBUlNFX09MRDEwKSB7CisJCXhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfVU5LTk9XTl9WRVJTSU9OLAorCQkJICAgICAgICAgICJVbnN1cHBvcnRlZCB2ZXJzaW9uICclcydcbiIsCisJCQkgICAgICAgICAgdmVyc2lvbik7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBpZiAoKHZlcnNpb25bMF0gPT0gJzEnKSAmJiAoKHZlcnNpb25bMV0gPT0gJy4nKSkpIHsKKwkJICAgIHhtbFdhcm5pbmdNc2coY3R4dCwgWE1MX1dBUl9VTktOT1dOX1ZFUlNJT04sCisJCSAgICAgICAgICAgICAgICAgICJVbnN1cHBvcnRlZCB2ZXJzaW9uICclcydcbiIsCisJCQkJICB2ZXJzaW9uLCBOVUxMKTsKKwkJfSBlbHNlIHsKKwkJICAgIHhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfVU5LTk9XTl9WRVJTSU9OLAorCQkJCSAgICAgICJVbnN1cHBvcnRlZCB2ZXJzaW9uICclcydcbiIsCisJCQkJICAgICAgdmVyc2lvbik7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoY3R4dC0+dmVyc2lvbiAhPSBOVUxMKQorCSAgICB4bWxGcmVlKCh2b2lkICopIGN0eHQtPnZlcnNpb24pOworCWN0eHQtPnZlcnNpb24gPSB2ZXJzaW9uOworICAgIH0KKworICAgIC8qCisgICAgICogV2UgbWF5IGhhdmUgdGhlIGVuY29kaW5nIGRlY2xhcmF0aW9uCisgICAgICovCisgICAgaWYgKCFJU19CTEFOS19DSChSQVcpKSB7CisgICAgICAgIGlmICgoUkFXID09ICc/JykgJiYgKE5YVCgxKSA9PSAnPicpKSB7CisJICAgIFNLSVAoMik7CisJICAgIHJldHVybjsKKwl9CisJeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9TUEFDRV9SRVFVSVJFRCwgIkJsYW5rIG5lZWRlZCBoZXJlXG4iKTsKKyAgICB9CisgICAgeG1sUGFyc2VFbmNvZGluZ0RlY2woY3R4dCk7CisgICAgaWYgKGN0eHQtPmVyck5vID09IFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcpIHsKKwkvKgorCSAqIFRoZSBYTUwgUkVDIGluc3RydWN0cyB1cyB0byBzdG9wIHBhcnNpbmcgcmlnaHQgaGVyZQorCSAqLworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBXZSBtYXkgaGF2ZSB0aGUgc3RhbmRhbG9uZSBzdGF0dXMuCisgICAgICovCisgICAgaWYgKChjdHh0LT5pbnB1dC0+ZW5jb2RpbmcgIT0gTlVMTCkgJiYgKCFJU19CTEFOS19DSChSQVcpKSkgeworICAgICAgICBpZiAoKFJBVyA9PSAnPycpICYmIChOWFQoMSkgPT0gJz4nKSkgeworCSAgICBTS0lQKDIpOworCSAgICByZXR1cm47CisJfQorCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfU1BBQ0VfUkVRVUlSRUQsICJCbGFuayBuZWVkZWQgaGVyZVxuIik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBXZSBjYW4gZ3JvdyB0aGUgaW5wdXQgYnVmZmVyIGZyZWVseSBhdCB0aGF0IHBvaW50CisgICAgICovCisgICAgR1JPVzsKKworICAgIFNLSVBfQkxBTktTOworICAgIGN0eHQtPmlucHV0LT5zdGFuZGFsb25lID0geG1sUGFyc2VTRERlY2woY3R4dCk7CisKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoKFJBVyA9PSAnPycpICYmIChOWFQoMSkgPT0gJz4nKSkgeworICAgICAgICBTS0lQKDIpOworICAgIH0gZWxzZSBpZiAoUkFXID09ICc+JykgeworICAgICAgICAvKiBEZXByZWNhdGVkIG9sZCBXRCAuLi4gKi8KKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX1hNTERFQ0xfTk9UX0ZJTklTSEVELCBOVUxMKTsKKwlORVhUOworICAgIH0gZWxzZSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9YTUxERUNMX05PVF9GSU5JU0hFRCwgTlVMTCk7CisJTU9WRVRPX0VORFRBRyhDVVJfUFRSKTsKKwlORVhUOworICAgIH0KK30KKworLyoqCisgKiB4bWxQYXJzZU1pc2M6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogCisgKiBwYXJzZSBhbiBYTUwgTWlzYyogb3B0aW9uYWwgZmllbGQuCisgKgorICogWzI3XSBNaXNjIDo6PSBDb21tZW50IHwgUEkgfCAgUworICovCisKK3ZvaWQKK3htbFBhcnNlTWlzYyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB3aGlsZSAoKChSQVcgPT0gJzwnKSAmJiAoTlhUKDEpID09ICc/JykpIHx8CisgICAgICAgICAgIChDTVA0KENVUl9QVFIsICc8JywgJyEnLCAnLScsICctJykpIHx8CisgICAgICAgICAgIElTX0JMQU5LX0NIKENVUikpIHsKKyAgICAgICAgaWYgKChSQVcgPT0gJzwnKSAmJiAoTlhUKDEpID09ICc/JykpIHsKKwkgICAgeG1sUGFyc2VQSShjdHh0KTsKKwl9IGVsc2UgaWYgKElTX0JMQU5LX0NIKENVUikpIHsKKwkgICAgTkVYVDsKKwl9IGVsc2UKKwkgICAgeG1sUGFyc2VDb21tZW50KGN0eHQpOworICAgIH0KK30KKworLyoqCisgKiB4bWxQYXJzZURvY3VtZW50OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIAorICogcGFyc2UgYW4gWE1MIGRvY3VtZW50IChhbmQgYnVpbGQgYSB0cmVlIGlmIHVzaW5nIHRoZSBzdGFuZGFyZCBTQVgKKyAqIGludGVyZmFjZSkuCisgKgorICogWzFdIGRvY3VtZW50IDo6PSBwcm9sb2cgZWxlbWVudCBNaXNjKgorICoKKyAqIFsyMl0gcHJvbG9nIDo6PSBYTUxEZWNsPyBNaXNjKiAoZG9jdHlwZWRlY2wgTWlzYyopPworICoKKyAqIFJldHVybnMgMCwgLTEgaW4gY2FzZSBvZiBlcnJvci4gdGhlIHBhcnNlciBjb250ZXh0IGlzIGF1Z21lbnRlZAorICogICAgICAgICAgICAgICAgYXMgYSByZXN1bHQgb2YgdGhlIHBhcnNpbmcuCisgKi8KKworaW50Cit4bWxQYXJzZURvY3VtZW50KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgc3RhcnRbNF07CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXQgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICBHUk9XOworCisgICAgLyoKKyAgICAgKiBTQVg6IGRldGVjdGluZyB0aGUgbGV2ZWwuCisgICAgICovCisgICAgeG1sRGV0ZWN0U0FYMihjdHh0KTsKKworICAgIC8qCisgICAgICogU0FYOiBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50IHByb2Nlc3NpbmcuCisgICAgICovCisgICAgaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcikpCisgICAgICAgIGN0eHQtPnNheC0+c2V0RG9jdW1lbnRMb2NhdG9yKGN0eHQtPnVzZXJEYXRhLCAmeG1sRGVmYXVsdFNBWExvY2F0b3IpOworCisgICAgaWYgKChjdHh0LT5lbmNvZGluZyA9PSAoY29uc3QgeG1sQ2hhciAqKVhNTF9DSEFSX0VOQ09ESU5HX05PTkUpICYmCisgICAgICAgICgoY3R4dC0+aW5wdXQtPmVuZCAtIGN0eHQtPmlucHV0LT5jdXIpID49IDQpKSB7CisJLyogCisJICogR2V0IHRoZSA0IGZpcnN0IGJ5dGVzIGFuZCBkZWNvZGUgdGhlIGNoYXJzZXQKKwkgKiBpZiBlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORQorCSAqIHBsdWcgc29tZSBlbmNvZGluZyBjb252ZXJzaW9uIHJvdXRpbmVzLgorCSAqLworCXN0YXJ0WzBdID0gUkFXOworCXN0YXJ0WzFdID0gTlhUKDEpOworCXN0YXJ0WzJdID0gTlhUKDIpOworCXN0YXJ0WzNdID0gTlhUKDMpOworCWVuYyA9IHhtbERldGVjdENoYXJFbmNvZGluZygmc3RhcnRbMF0sIDQpOworCWlmIChlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkgeworCSAgICB4bWxTd2l0Y2hFbmNvZGluZyhjdHh0LCBlbmMpOworCX0KKyAgICB9CisKKworICAgIGlmIChDVVIgPT0gMCkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRE9DVU1FTlRfRU1QVFksIE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQ2hlY2sgZm9yIHRoZSBYTUxEZWNsIGluIHRoZSBQcm9sb2cuCisgICAgICogZG8gbm90IEdST1cgaGVyZSB0byBhdm9pZCB0aGUgZGV0ZWN0ZWQgZW5jb2RlciB0byBkZWNvZGUgbW9yZQorICAgICAqIHRoYW4ganVzdCB0aGUgZmlyc3QgbGluZSwgdW5sZXNzIHRoZSBhbW91bnQgb2YgZGF0YSBpcyByZWFsbHkKKyAgICAgKiB0b28gc21hbGwgdG8gaG9sZCAiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iZm9vIgorICAgICAqLworICAgIGlmICgoY3R4dC0+aW5wdXQtPmVuZCAtIGN0eHQtPmlucHV0LT5jdXIpIDwgMzUpIHsKKyAgICAgICBHUk9XOworICAgIH0KKyAgICBpZiAoKENNUDUoQ1VSX1BUUiwgJzwnLCAnPycsICd4JywgJ20nLCAnbCcpKSAmJiAoSVNfQkxBTktfQ0goTlhUKDUpKSkpIHsKKworCS8qCisJICogTm90ZSB0aGF0IHdlIHdpbGwgc3dpdGNoIGVuY29kaW5nIG9uIHRoZSBmbHkuCisJICovCisJeG1sUGFyc2VYTUxEZWNsKGN0eHQpOworCWlmIChjdHh0LT5lcnJObyA9PSBYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HKSB7CisJICAgIC8qCisJICAgICAqIFRoZSBYTUwgUkVDIGluc3RydWN0cyB1cyB0byBzdG9wIHBhcnNpbmcgcmlnaHQgaGVyZQorCSAgICAgKi8KKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY3R4dC0+c3RhbmRhbG9uZSA9IGN0eHQtPmlucHV0LT5zdGFuZGFsb25lOworCVNLSVBfQkxBTktTOworICAgIH0gZWxzZSB7CisJY3R4dC0+dmVyc2lvbiA9IHhtbENoYXJTdHJkdXAoWE1MX0RFRkFVTFRfVkVSU0lPTik7CisgICAgfQorICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5zdGFydERvY3VtZW50KSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpKQorICAgICAgICBjdHh0LT5zYXgtPnN0YXJ0RG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCisgICAgLyoKKyAgICAgKiBUaGUgTWlzYyBwYXJ0IG9mIHRoZSBQcm9sb2cKKyAgICAgKi8KKyAgICBHUk9XOworICAgIHhtbFBhcnNlTWlzYyhjdHh0KTsKKworICAgIC8qCisgICAgICogVGhlbiBwb3NzaWJseSBkb2MgdHlwZSBkZWNsYXJhdGlvbihzKSBhbmQgbW9yZSBNaXNjCisgICAgICogKGRvY3R5cGVkZWNsIE1pc2MqKT8KKyAgICAgKi8KKyAgICBHUk9XOworICAgIGlmIChDTVA5KENVUl9QVFIsICc8JywgJyEnLCAnRCcsICdPJywgJ0MnLCAnVCcsICdZJywgJ1AnLCAnRScpKSB7CisKKwljdHh0LT5pblN1YnNldCA9IDE7CisJeG1sUGFyc2VEb2NUeXBlRGVjbChjdHh0KTsKKwlpZiAoUkFXID09ICdbJykgeworCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9EVEQ7CisJICAgIHhtbFBhcnNlSW50ZXJuYWxTdWJzZXQoY3R4dCk7CisJfQorCisJLyoKKwkgKiBDcmVhdGUgYW5kIHVwZGF0ZSB0aGUgZXh0ZXJuYWwgc3Vic2V0LgorCSAqLworCWN0eHQtPmluU3Vic2V0ID0gMjsKKwlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5leHRlcm5hbFN1YnNldCAhPSBOVUxMKSAmJgorCSAgICAoIWN0eHQtPmRpc2FibGVTQVgpKQorCSAgICBjdHh0LT5zYXgtPmV4dGVybmFsU3Vic2V0KGN0eHQtPnVzZXJEYXRhLCBjdHh0LT5pbnRTdWJOYW1lLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmV4dFN1YlN5c3RlbSwgY3R4dC0+ZXh0U3ViVVJJKTsKKwljdHh0LT5pblN1YnNldCA9IDA7CisKKyAgICAgICAgeG1sQ2xlYW5TcGVjaWFsQXR0cihjdHh0KTsKKworCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1BST0xPRzsKKwl4bWxQYXJzZU1pc2MoY3R4dCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUaW1lIHRvIHN0YXJ0IHBhcnNpbmcgdGhlIHRyZWUgaXRzZWxmCisgICAgICovCisgICAgR1JPVzsKKyAgICBpZiAoUkFXICE9ICc8JykgeworCXhtbEZhdGFsRXJyTXNnKGN0eHQsIFhNTF9FUlJfRE9DVU1FTlRfRU1QVFksCisJCSAgICAgICAiU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kXG4iKTsKKyAgICB9IGVsc2UgeworCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisJeG1sUGFyc2VFbGVtZW50KGN0eHQpOworCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VQSUxPRzsKKworCisJLyoKKwkgKiBUaGUgTWlzYyBwYXJ0IGF0IHRoZSBlbmQKKwkgKi8KKwl4bWxQYXJzZU1pc2MoY3R4dCk7CisKKwlpZiAoUkFXICE9IDApIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9ET0NVTUVOVF9FTkQsIE5VTEwpOworCX0KKwljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTQVg6IGVuZCBvZiB0aGUgZG9jdW1lbnQgcHJvY2Vzc2luZy4KKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPnNheCkgJiYgKGN0eHQtPnNheC0+ZW5kRG9jdW1lbnQgIT0gTlVMTCkpCisgICAgICAgIGN0eHQtPnNheC0+ZW5kRG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCisgICAgLyoKKyAgICAgKiBSZW1vdmUgbG9jYWxseSBrZXB0IGVudGl0eSBkZWZpbml0aW9ucyBpZiB0aGUgdHJlZSB3YXMgbm90IGJ1aWx0CisgICAgICovCisgICAgaWYgKChjdHh0LT5teURvYyAhPSBOVUxMKSAmJgorCSh4bWxTdHJFcXVhbChjdHh0LT5teURvYy0+dmVyc2lvbiwgU0FYX0NPTVBBVF9NT0RFKSkpIHsKKwl4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKwljdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorCisgICAgaWYgKChjdHh0LT53ZWxsRm9ybWVkKSAmJiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkpIHsKKyAgICAgICAgY3R4dC0+bXlEb2MtPnByb3BlcnRpZXMgfD0gWE1MX0RPQ19XRUxMRk9STUVEOworCWlmIChjdHh0LT52YWxpZCkKKwkgICAgY3R4dC0+bXlEb2MtPnByb3BlcnRpZXMgfD0gWE1MX0RPQ19EVERWQUxJRDsKKwlpZiAoY3R4dC0+bnNXZWxsRm9ybWVkKQorCSAgICBjdHh0LT5teURvYy0+cHJvcGVydGllcyB8PSBYTUxfRE9DX05TVkFMSUQ7CisJaWYgKGN0eHQtPm9wdGlvbnMgJiBYTUxfUEFSU0VfT0xEMTApCisJICAgIGN0eHQtPm15RG9jLT5wcm9wZXJ0aWVzIHw9IFhNTF9ET0NfT0xEMTA7CisgICAgfQorICAgIGlmICghIGN0eHQtPndlbGxGb3JtZWQpIHsKKwljdHh0LT52YWxpZCA9IDA7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFBhcnNlRXh0UGFyc2VkRW50OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIAorICogcGFyc2UgYSBnZW5lcmFsIHBhcnNlZCBlbnRpdHkKKyAqIEFuIGV4dGVybmFsIGdlbmVyYWwgcGFyc2VkIGVudGl0eSBpcyB3ZWxsLWZvcm1lZCBpZiBpdCBtYXRjaGVzIHRoZQorICogcHJvZHVjdGlvbiBsYWJlbGVkIGV4dFBhcnNlZEVudC4KKyAqCisgKiBbNzhdIGV4dFBhcnNlZEVudCA6Oj0gVGV4dERlY2w/IGNvbnRlbnQKKyAqCisgKiBSZXR1cm5zIDAsIC0xIGluIGNhc2Ugb2YgZXJyb3IuIHRoZSBwYXJzZXIgY29udGV4dCBpcyBhdWdtZW50ZWQKKyAqICAgICAgICAgICAgICAgIGFzIGEgcmVzdWx0IG9mIHRoZSBwYXJzaW5nLgorICovCisKK2ludAoreG1sUGFyc2VFeHRQYXJzZWRFbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciBzdGFydFs0XTsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5pbnB1dCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIHhtbERlZmF1bHRTQVhIYW5kbGVySW5pdCgpOworCisgICAgeG1sRGV0ZWN0U0FYMihjdHh0KTsKKworICAgIEdST1c7CisKKyAgICAvKgorICAgICAqIFNBWDogYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudCBwcm9jZXNzaW5nLgorICAgICAqLworICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5zZXREb2N1bWVudExvY2F0b3IpKQorICAgICAgICBjdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcihjdHh0LT51c2VyRGF0YSwgJnhtbERlZmF1bHRTQVhMb2NhdG9yKTsKKworICAgIC8qIAorICAgICAqIEdldCB0aGUgNCBmaXJzdCBieXRlcyBhbmQgZGVjb2RlIHRoZSBjaGFyc2V0CisgICAgICogaWYgZW5jICE9IFhNTF9DSEFSX0VOQ09ESU5HX05PTkUKKyAgICAgKiBwbHVnIHNvbWUgZW5jb2RpbmcgY29udmVyc2lvbiByb3V0aW5lcy4KKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPmlucHV0LT5lbmQgLSBjdHh0LT5pbnB1dC0+Y3VyKSA+PSA0KSB7CisJc3RhcnRbMF0gPSBSQVc7CisJc3RhcnRbMV0gPSBOWFQoMSk7CisJc3RhcnRbMl0gPSBOWFQoMik7CisJc3RhcnRbM10gPSBOWFQoMyk7CisJZW5jID0geG1sRGV0ZWN0Q2hhckVuY29kaW5nKHN0YXJ0LCA0KTsKKwlpZiAoZW5jICE9IFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpIHsKKwkgICAgeG1sU3dpdGNoRW5jb2RpbmcoY3R4dCwgZW5jKTsKKwl9CisgICAgfQorCisKKyAgICBpZiAoQ1VSID09IDApIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0RPQ1VNRU5UX0VNUFRZLCBOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciB0aGUgWE1MRGVjbCBpbiB0aGUgUHJvbG9nLgorICAgICAqLworICAgIEdST1c7CisgICAgaWYgKChDTVA1KENVUl9QVFIsICc8JywgJz8nLCAneCcsICdtJywgJ2wnKSkgJiYgKElTX0JMQU5LX0NIKE5YVCg1KSkpKSB7CisKKwkvKgorCSAqIE5vdGUgdGhhdCB3ZSB3aWxsIHN3aXRjaCBlbmNvZGluZyBvbiB0aGUgZmx5LgorCSAqLworCXhtbFBhcnNlWE1MRGVjbChjdHh0KTsKKwlpZiAoY3R4dC0+ZXJyTm8gPT0gWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORykgeworCSAgICAvKgorCSAgICAgKiBUaGUgWE1MIFJFQyBpbnN0cnVjdHMgdXMgdG8gc3RvcCBwYXJzaW5nIHJpZ2h0IGhlcmUKKwkgICAgICovCisJICAgIHJldHVybigtMSk7CisJfQorCVNLSVBfQkxBTktTOworICAgIH0gZWxzZSB7CisJY3R4dC0+dmVyc2lvbiA9IHhtbENoYXJTdHJkdXAoWE1MX0RFRkFVTFRfVkVSU0lPTik7CisgICAgfQorICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5zdGFydERvY3VtZW50KSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpKQorICAgICAgICBjdHh0LT5zYXgtPnN0YXJ0RG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCisgICAgLyoKKyAgICAgKiBEb2luZyB2YWxpZGl0eSBjaGVja2luZyBvbiBjaHVuayBkb2Vzbid0IG1ha2Ugc2Vuc2UKKyAgICAgKi8KKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgIGN0eHQtPnZhbGlkYXRlID0gMDsKKyAgICBjdHh0LT5sb2Fkc3Vic2V0ID0gMDsKKyAgICBjdHh0LT5kZXB0aCA9IDA7CisKKyAgICB4bWxQYXJzZUNvbnRlbnQoY3R4dCk7CisgICAKKyAgICBpZiAoKFJBVyA9PSAnPCcpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTk9UX1dFTExfQkFMQU5DRUQsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoUkFXICE9IDApIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVFJBX0NPTlRFTlQsIE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogU0FYOiBlbmQgb2YgdGhlIGRvY3VtZW50IHByb2Nlc3NpbmcuCisgICAgICovCisgICAgaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPmVuZERvY3VtZW50ICE9IE5VTEwpKQorICAgICAgICBjdHh0LT5zYXgtPmVuZERvY3VtZW50KGN0eHQtPnVzZXJEYXRhKTsKKworICAgIGlmICghIGN0eHQtPndlbGxGb3JtZWQpIHJldHVybigtMSk7CisgICAgcmV0dXJuKDApOworfQorCisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAJCVByb2dyZXNzaXZlIHBhcnNpbmcgaW50ZXJmYWNlcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sUGFyc2VMb29rdXBTZXF1ZW5jZToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAZmlyc3Q6ICB0aGUgZmlyc3QgY2hhciB0byBsb29rdXAKKyAqIEBuZXh0OiAgdGhlIG5leHQgY2hhciB0byBsb29rdXAgb3IgemVybworICogQHRoaXJkOiAgdGhlIG5leHQgY2hhciB0byBsb29rdXAgb3IgemVybworICoKKyAqIFRyeSB0byBmaW5kIGlmIGEgc2VxdWVuY2UgKGZpcnN0LCBuZXh0LCB0aGlyZCkgb3IgIGp1c3QgKGZpcnN0IG5leHQpIG9yCisgKiAoZmlyc3QpIGlzIGF2YWlsYWJsZSBpbiB0aGUgaW5wdXQgc3RyZWFtLgorICogVGhpcyBmdW5jdGlvbiBoYXMgYSBzaWRlIGVmZmVjdCBvZiAocG9zc2libHkpIGluY3JlbWVudGluZyBjdHh0LT5jaGVja0luZGV4CisgKiB0byBhdm9pZCByZXNjYW5uaW5nIHNlcXVlbmNlcyBvZiBieXRlcywgaXQgRE9FUyBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZQorICogcGFyc2VyLCBkbyBub3QgdXNlIGxpYmVyYWxseS4KKyAqCisgKiBSZXR1cm5zIHRoZSBpbmRleCB0byB0aGUgY3VycmVudCBwYXJzaW5nIHBvaW50IGlmIHRoZSBmdWxsIHNlcXVlbmNlCisgKiAgICAgIGlzIGF2YWlsYWJsZSwgLTEgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxQYXJzZUxvb2t1cFNlcXVlbmNlKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sQ2hhciBmaXJzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciBuZXh0LCB4bWxDaGFyIHRoaXJkKSB7CisgICAgaW50IGJhc2UsIGxlbjsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbjsKKyAgICBjb25zdCB4bWxDaGFyICpidWY7CisKKyAgICBpbiA9IGN0eHQtPmlucHV0OworICAgIGlmIChpbiA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGJhc2UgPSBpbi0+Y3VyIC0gaW4tPmJhc2U7CisgICAgaWYgKGJhc2UgPCAwKSByZXR1cm4oLTEpOworICAgIGlmIChjdHh0LT5jaGVja0luZGV4ID4gYmFzZSkKKyAgICAgICAgYmFzZSA9IGN0eHQtPmNoZWNrSW5kZXg7CisgICAgaWYgKGluLT5idWYgPT0gTlVMTCkgeworCWJ1ZiA9IGluLT5iYXNlOworCWxlbiA9IGluLT5sZW5ndGg7CisgICAgfSBlbHNlIHsKKwlidWYgPSBpbi0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisJbGVuID0gaW4tPmJ1Zi0+YnVmZmVyLT51c2U7CisgICAgfQorICAgIC8qIHRha2UgaW50byBhY2NvdW50IHRoZSBzZXF1ZW5jZSBsZW5ndGggKi8KKyAgICBpZiAodGhpcmQpIGxlbiAtPSAyOworICAgIGVsc2UgaWYgKG5leHQpIGxlbiAtLTsKKyAgICBmb3IgKDtiYXNlIDwgbGVuO2Jhc2UrKykgeworICAgICAgICBpZiAoYnVmW2Jhc2VdID09IGZpcnN0KSB7CisJICAgIGlmICh0aGlyZCAhPSAwKSB7CisJCWlmICgoYnVmW2Jhc2UgKyAxXSAhPSBuZXh0KSB8fAorCQkgICAgKGJ1ZltiYXNlICsgMl0gIT0gdGhpcmQpKSBjb250aW51ZTsKKwkgICAgfSBlbHNlIGlmIChuZXh0ICE9IDApIHsKKwkJaWYgKGJ1ZltiYXNlICsgMV0gIT0gbmV4dCkgY29udGludWU7CisJICAgIH0KKwkgICAgY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisjaWZkZWYgREVCVUdfUFVTSAorCSAgICBpZiAobmV4dCA9PSAwKQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQUDogbG9va3VwICclYycgZm91bmQgYXQgJWRcbiIsCisJCQlmaXJzdCwgYmFzZSk7CisJICAgIGVsc2UgaWYgKHRoaXJkID09IDApCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlBQOiBsb29rdXAgJyVjJWMnIGZvdW5kIGF0ICVkXG4iLAorCQkJZmlyc3QsIG5leHQsIGJhc2UpOworCSAgICBlbHNlIAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQUDogbG9va3VwICclYyVjJWMnIGZvdW5kIGF0ICVkXG4iLAorCQkJZmlyc3QsIG5leHQsIHRoaXJkLCBiYXNlKTsKKyNlbmRpZgorCSAgICByZXR1cm4oYmFzZSAtIChpbi0+Y3VyIC0gaW4tPmJhc2UpKTsKKwl9CisgICAgfQorICAgIGN0eHQtPmNoZWNrSW5kZXggPSBiYXNlOworI2lmZGVmIERFQlVHX1BVU0gKKyAgICBpZiAobmV4dCA9PSAwKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiUFA6IGxvb2t1cCAnJWMnIGZhaWxlZFxuIiwgZmlyc3QpOworICAgIGVsc2UgaWYgKHRoaXJkID09IDApCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJQUDogbG9va3VwICclYyVjJyBmYWlsZWRcbiIsIGZpcnN0LCBuZXh0KTsKKyAgICBlbHNlCQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiUFA6IGxvb2t1cCAnJWMlYyVjJyBmYWlsZWRcbiIsIGZpcnN0LCBuZXh0LCB0aGlyZCk7CisjZW5kaWYKKyAgICByZXR1cm4oLTEpOworfQorCisvKioKKyAqIHhtbFBhcnNlR2V0TGFzdHM6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGxhc3RsdDogIHBvaW50ZXIgdG8gc3RvcmUgdGhlIGxhc3QgJzwnIGZyb20gdGhlIGlucHV0CisgKiBAbGFzdGd0OiAgcG9pbnRlciB0byBzdG9yZSB0aGUgbGFzdCAnPicgZnJvbSB0aGUgaW5wdXQKKyAqCisgKiBMb29rdXAgdGhlIGxhc3QgPCBhbmQgPiBpbiB0aGUgY3VycmVudCBjaHVuaworICovCitzdGF0aWMgdm9pZAoreG1sUGFyc2VHZXRMYXN0cyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKipsYXN0bHQsCisgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKipsYXN0Z3QpIHsKKyAgICBjb25zdCB4bWxDaGFyICp0bXA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGxhc3RsdCA9PSBOVUxMKSB8fCAobGFzdGd0ID09IE5VTEwpKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiSW50ZXJuYWwgZXJyb3I6IHhtbFBhcnNlR2V0TGFzdHNcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKChjdHh0LT5wcm9ncmVzc2l2ZSAhPSAwKSAmJiAoY3R4dC0+aW5wdXROciA9PSAxKSkgeworICAgICAgICB0bXAgPSBjdHh0LT5pbnB1dC0+ZW5kOworCXRtcC0tOworCXdoaWxlICgodG1wID49IGN0eHQtPmlucHV0LT5iYXNlKSAmJiAoKnRtcCAhPSAnPCcpKSB0bXAtLTsKKwlpZiAodG1wIDwgY3R4dC0+aW5wdXQtPmJhc2UpIHsKKwkgICAgKmxhc3RsdCA9IE5VTEw7CisJICAgICpsYXN0Z3QgPSBOVUxMOworCX0gZWxzZSB7CisJICAgICpsYXN0bHQgPSB0bXA7CisJICAgIHRtcCsrOworCSAgICB3aGlsZSAoKHRtcCA8IGN0eHQtPmlucHV0LT5lbmQpICYmICgqdG1wICE9ICc+JykpIHsKKwkgICAgICAgIGlmICgqdG1wID09ICdcJycpIHsKKwkJICAgIHRtcCsrOworCQkgICAgd2hpbGUgKCh0bXAgPCBjdHh0LT5pbnB1dC0+ZW5kKSAmJiAoKnRtcCAhPSAnXCcnKSkgdG1wKys7CisJCSAgICBpZiAodG1wIDwgY3R4dC0+aW5wdXQtPmVuZCkgdG1wKys7CisJCX0gZWxzZSBpZiAoKnRtcCA9PSAnIicpIHsKKwkJICAgIHRtcCsrOworCQkgICAgd2hpbGUgKCh0bXAgPCBjdHh0LT5pbnB1dC0+ZW5kKSAmJiAoKnRtcCAhPSAnIicpKSB0bXArKzsKKwkJICAgIGlmICh0bXAgPCBjdHh0LT5pbnB1dC0+ZW5kKSB0bXArKzsKKwkJfSBlbHNlCisJCSAgICB0bXArKzsKKwkgICAgfQorCSAgICBpZiAodG1wIDwgY3R4dC0+aW5wdXQtPmVuZCkKKwkgICAgICAgICpsYXN0Z3QgPSB0bXA7CisJICAgIGVsc2UgeworCSAgICAgICAgdG1wID0gKmxhc3RsdDsKKwkJdG1wLS07CisJCXdoaWxlICgodG1wID49IGN0eHQtPmlucHV0LT5iYXNlKSAmJiAoKnRtcCAhPSAnPicpKSB0bXAtLTsKKwkJaWYgKHRtcCA+PSBjdHh0LT5pbnB1dC0+YmFzZSkKKwkJICAgICpsYXN0Z3QgPSB0bXA7CisJCWVsc2UKKwkJICAgICpsYXN0Z3QgPSBOVUxMOworCSAgICB9CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgICpsYXN0bHQgPSBOVUxMOworCSpsYXN0Z3QgPSBOVUxMOworICAgIH0KK30KKy8qKgorICogeG1sQ2hlY2tDZGF0YVB1c2g6CisgKiBAY3VyOiBwb2ludGVyIHRvIHRoZSBib2NrIG9mIGNoYXJhY3RlcnMKKyAqIEBsZW46IGxlbmd0aCBvZiB0aGUgYmxvY2sgaW4gYnl0ZXMKKyAqCisgKiBDaGVjayB0aGF0IHRoZSBibG9jayBvZiBjaGFyYWN0ZXJzIGlzIG9rYXkgYXMgU0NkYXRhIGNvbnRlbnQgWzIwXQorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB0byBwYXNzIGlmIG9rYXksIGEgbmVnYXRpdmUgaW5kZXggd2hlcmUgYW4KKyAqICAgICAgICAgVVRGLTggZXJyb3Igb2NjdXJlZCBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sQ2hlY2tDZGF0YVB1c2goY29uc3QgeG1sQ2hhciAqdXRmLCBpbnQgbGVuKSB7CisgICAgaW50IGl4OworICAgIHVuc2lnbmVkIGNoYXIgYzsKKyAgICBpbnQgY29kZXBvaW50OworCisgICAgaWYgKCh1dGYgPT0gTlVMTCkgfHwgKGxlbiA8PSAwKSkKKyAgICAgICAgcmV0dXJuKDApOworICAgIAorICAgIGZvciAoaXggPSAwOyBpeCA8IGxlbjspIHsgICAgICAvKiBzdHJpbmcgaXMgMC10ZXJtaW5hdGVkICovCisgICAgICAgIGMgPSB1dGZbaXhdOworICAgICAgICBpZiAoKGMgJiAweDgwKSA9PSAweDAwKSB7CS8qIDEtYnl0ZSBjb2RlLCBzdGFydHMgd2l0aCAxMCAqLworCSAgICBpZiAoYyA+PSAweDIwKQorCQlpeCsrOworCSAgICBlbHNlIGlmICgoYyA9PSAweEEpIHx8IChjID09IDB4RCkgfHwgKGMgPT0gMHg5KSkKKwkgICAgICAgIGl4Kys7CisJICAgIGVsc2UKKwkgICAgICAgIHJldHVybigtaXgpOworCX0gZWxzZSBpZiAoKGMgJiAweGUwKSA9PSAweGMwKSB7LyogMi1ieXRlIGNvZGUsIHN0YXJ0cyB3aXRoIDExMCAqLworCSAgICBpZiAoaXggKyAyID4gbGVuKSByZXR1cm4oaXgpOworCSAgICBpZiAoKHV0ZltpeCsxXSAmIDB4YzAgKSAhPSAweDgwKQorCSAgICAgICAgcmV0dXJuKC1peCk7CisJICAgIGNvZGVwb2ludCA9ICh1dGZbaXhdICYgMHgxZikgPDwgNjsKKwkgICAgY29kZXBvaW50IHw9IHV0ZltpeCsxXSAmIDB4M2Y7CisJICAgIGlmICgheG1sSXNDaGFyUShjb2RlcG9pbnQpKQorCSAgICAgICAgcmV0dXJuKC1peCk7CisJICAgIGl4ICs9IDI7CisJfSBlbHNlIGlmICgoYyAmIDB4ZjApID09IDB4ZTApIHsvKiAzLWJ5dGUgY29kZSwgc3RhcnRzIHdpdGggMTExMCAqLworCSAgICBpZiAoaXggKyAzID4gbGVuKSByZXR1cm4oaXgpOworCSAgICBpZiAoKCh1dGZbaXgrMV0gJiAweGMwKSAhPSAweDgwKSB8fAorCSAgICAgICAgKCh1dGZbaXgrMl0gJiAweGMwKSAhPSAweDgwKSkKKwkJICAgIHJldHVybigtaXgpOworCSAgICBjb2RlcG9pbnQgPSAodXRmW2l4XSAmIDB4ZikgPDwgMTI7CisJICAgIGNvZGVwb2ludCB8PSAodXRmW2l4KzFdICYgMHgzZikgPDwgNjsKKwkgICAgY29kZXBvaW50IHw9IHV0ZltpeCsyXSAmIDB4M2Y7CisJICAgIGlmICgheG1sSXNDaGFyUShjb2RlcG9pbnQpKQorCSAgICAgICAgcmV0dXJuKC1peCk7CisJICAgIGl4ICs9IDM7CisJfSBlbHNlIGlmICgoYyAmIDB4ZjgpID09IDB4ZjApIHsvKiA0LWJ5dGUgY29kZSwgc3RhcnRzIHdpdGggMTExMTAgKi8KKwkgICAgaWYgKGl4ICsgNCA+IGxlbikgcmV0dXJuKGl4KTsKKwkgICAgaWYgKCgodXRmW2l4KzFdICYgMHhjMCkgIT0gMHg4MCkgfHwKKwkgICAgICAgICgodXRmW2l4KzJdICYgMHhjMCkgIT0gMHg4MCkgfHwKKwkJKCh1dGZbaXgrM10gJiAweGMwKSAhPSAweDgwKSkKKwkJICAgIHJldHVybigtaXgpOworCSAgICBjb2RlcG9pbnQgPSAodXRmW2l4XSAmIDB4NykgPDwgMTg7CisJICAgIGNvZGVwb2ludCB8PSAodXRmW2l4KzFdICYgMHgzZikgPDwgMTI7CisJICAgIGNvZGVwb2ludCB8PSAodXRmW2l4KzJdICYgMHgzZikgPDwgNjsKKwkgICAgY29kZXBvaW50IHw9IHV0ZltpeCszXSAmIDB4M2Y7CisJICAgIGlmICgheG1sSXNDaGFyUShjb2RlcG9pbnQpKQorCSAgICAgICAgcmV0dXJuKC1peCk7CisJICAgIGl4ICs9IDQ7CisJfSBlbHNlCQkJCS8qIHVua25vd24gZW5jb2RpbmcgKi8KKwkgICAgcmV0dXJuKC1peCk7CisgICAgICB9CisgICAgICByZXR1cm4oaXgpOworfQorCisvKioKKyAqIHhtbFBhcnNlVHJ5T3JGaW5pc2g6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHRlcm1pbmF0ZTogIGxhc3QgY2h1bmsgaW5kaWNhdG9yCisgKgorICogVHJ5IHRvIHByb2dyZXNzIG9uIHBhcnNpbmcKKyAqCisgKiBSZXR1cm5zIHplcm8gaWYgbm8gcGFyc2luZyB3YXMgcG9zc2libGUKKyAqLworc3RhdGljIGludAoreG1sUGFyc2VUcnlPckZpbmlzaCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGludCB0ZXJtaW5hdGUpIHsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgYXZhaWwsIHRsZW47CisgICAgeG1sQ2hhciBjdXIsIG5leHQ7CisgICAgY29uc3QgeG1sQ2hhciAqbGFzdGx0LCAqbGFzdGd0OworCisgICAgaWYgKGN0eHQtPmlucHV0ID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKworI2lmZGVmIERFQlVHX1BVU0gKKyAgICBzd2l0Y2ggKGN0eHQtPmluc3RhdGUpIHsKKwljYXNlIFhNTF9QQVJTRVJfRU9GOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IEVPRlxuIik7IGJyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9TVEFSVDoKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiUFA6IHRyeSBTVEFSVFxuIik7IGJyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9NSVNDOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IE1JU0NcbiIpO2JyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9DT01NRU5UOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IENPTU1FTlRcbiIpO2JyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9QUk9MT0c6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlBQOiB0cnkgUFJPTE9HXG4iKTticmVhazsKKwljYXNlIFhNTF9QQVJTRVJfU1RBUlRfVEFHOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IFNUQVJUX1RBR1xuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX0NPTlRFTlQ6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlBQOiB0cnkgQ09OVEVOVFxuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX0NEQVRBX1NFQ1RJT046CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlBQOiB0cnkgQ0RBVEFfU0VDVElPTlxuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX0VORF9UQUc6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlBQOiB0cnkgRU5EX1RBR1xuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX0VOVElUWV9ERUNMOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IEVOVElUWV9ERUNMXG4iKTticmVhazsKKwljYXNlIFhNTF9QQVJTRVJfRU5USVRZX1ZBTFVFOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IEVOVElUWV9WQUxVRVxuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRToKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiUFA6IHRyeSBBVFRSSUJVVEVfVkFMVUVcbiIpO2JyZWFrOworCWNhc2UgWE1MX1BBUlNFUl9EVEQ6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlBQOiB0cnkgRFREXG4iKTticmVhazsKKwljYXNlIFhNTF9QQVJTRVJfRVBJTE9HOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IEVQSUxPR1xuIik7YnJlYWs7CisJY2FzZSBYTUxfUEFSU0VSX1BJOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQUDogdHJ5IFBJXG4iKTticmVhazsKKyAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0lHTk9SRToKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlBQOiB0cnkgSUdOT1JFXG4iKTticmVhazsKKyAgICB9CisjZW5kaWYKKworICAgIGlmICgoY3R4dC0+aW5wdXQgIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSA+IDQwOTYpKSB7CisJeG1sU0hSSU5LKGN0eHQpOworCWN0eHQtPmNoZWNrSW5kZXggPSAwOworICAgIH0KKyAgICB4bWxQYXJzZUdldExhc3RzKGN0eHQsICZsYXN0bHQsICZsYXN0Z3QpOworCisgICAgd2hpbGUgKDEpIHsKKwlpZiAoKGN0eHQtPmVyck5vICE9IFhNTF9FUlJfT0spICYmIChjdHh0LT5kaXNhYmxlU0FYID09IDEpKQorCSAgICByZXR1cm4oMCk7CisKKyAgICAgICAgCisJLyoKKwkgKiBQb3AtdXAgb2YgZmluaXNoZWQgZW50aXRpZXMuCisJICovCisJd2hpbGUgKChSQVcgPT0gMCkgJiYgKGN0eHQtPmlucHV0TnIgPiAxKSkKKwkgICAgeG1sUG9wSW5wdXQoY3R4dCk7CisKKwlpZiAoY3R4dC0+aW5wdXQgPT0gTlVMTCkgYnJlYWs7CisJaWYgKGN0eHQtPmlucHV0LT5idWYgPT0gTlVMTCkKKwkgICAgYXZhaWwgPSBjdHh0LT5pbnB1dC0+bGVuZ3RoIC0KKwkgICAgICAgICAgICAoY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlKTsKKwllbHNlIHsKKwkgICAgLyoKKwkgICAgICogSWYgd2UgYXJlIG9wZXJhdGluZyBvbiBjb252ZXJ0ZWQgaW5wdXQsIHRyeSB0byBmbHVzaAorCSAgICAgKiByZW1haW5uZyBjaGFycyB0byBhdm9pZCB0aGVtIHN0YWxsaW5nIGluIHRoZSBub24tY29udmVydGVkCisJICAgICAqIGJ1ZmZlci4KKwkgICAgICovCisJICAgIGlmICgoY3R4dC0+aW5wdXQtPmJ1Zi0+cmF3ICE9IE5VTEwpICYmCisJCShjdHh0LT5pbnB1dC0+YnVmLT5yYXctPnVzZSA+IDApKSB7CisJCWludCBiYXNlID0gY3R4dC0+aW5wdXQtPmJhc2UgLQorCQkgICAgICAgICAgIGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKwkJaW50IGN1cnJlbnQgPSBjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2U7CisKKwkJeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoKGN0eHQtPmlucHV0LT5idWYsIDAsICIiKTsKKwkJY3R4dC0+aW5wdXQtPmJhc2UgPSBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnQgKyBiYXNlOworCQljdHh0LT5pbnB1dC0+Y3VyID0gY3R4dC0+aW5wdXQtPmJhc2UgKyBjdXJyZW50OworCQljdHh0LT5pbnB1dC0+ZW5kID0KKwkJICAgICZjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnRbCisJCSAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT51c2VdOworCSAgICB9CisJICAgIGF2YWlsID0gY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT51c2UgLQorCQkgICAgKGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSk7CisJfQorICAgICAgICBpZiAoYXZhaWwgPCAxKQorCSAgICBnb3RvIGRvbmU7CisgICAgICAgIHN3aXRjaCAoY3R4dC0+aW5zdGF0ZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0VPRjoKKwkgICAgICAgIC8qCisJCSAqIERvY3VtZW50IHBhcnNpbmcgaXMgZG9uZSAhCisJCSAqLworCSAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX1NUQVJUOgorCQlpZiAoY3R4dC0+Y2hhcnNldCA9PSBYTUxfQ0hBUl9FTkNPRElOR19OT05FKSB7CisJCSAgICB4bWxDaGFyIHN0YXJ0WzRdOworCQkgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsKKworCQkgICAgLyoKKwkJICAgICAqIFZlcnkgZmlyc3QgY2hhcnMgcmVhZCBmcm9tIHRoZSBkb2N1bWVudCBmbG93LgorCQkgICAgICovCisJCSAgICBpZiAoYXZhaWwgPCA0KQorCQkJZ290byBkb25lOworCisJCSAgICAvKiAKKwkJICAgICAqIEdldCB0aGUgNCBmaXJzdCBieXRlcyBhbmQgZGVjb2RlIHRoZSBjaGFyc2V0CisJCSAgICAgKiBpZiBlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORQorCQkgICAgICogcGx1ZyBzb21lIGVuY29kaW5nIGNvbnZlcnNpb24gcm91dGluZXMsCisJCSAgICAgKiBlbHNlIHhtbFN3aXRjaEVuY29kaW5nIHdpbGwgc2V0IHRvIChkZWZhdWx0KQorCQkgICAgICogVVRGOC4KKwkJICAgICAqLworCQkgICAgc3RhcnRbMF0gPSBSQVc7CisJCSAgICBzdGFydFsxXSA9IE5YVCgxKTsKKwkJICAgIHN0YXJ0WzJdID0gTlhUKDIpOworCQkgICAgc3RhcnRbM10gPSBOWFQoMyk7CisJCSAgICBlbmMgPSB4bWxEZXRlY3RDaGFyRW5jb2Rpbmcoc3RhcnQsIDQpOworCQkgICAgeG1sU3dpdGNoRW5jb2RpbmcoY3R4dCwgZW5jKTsKKwkJICAgIGJyZWFrOworCQl9CisKKwkJaWYgKGF2YWlsIDwgMikKKwkJICAgIGdvdG8gZG9uZTsKKwkJY3VyID0gY3R4dC0+aW5wdXQtPmN1clswXTsKKwkJbmV4dCA9IGN0eHQtPmlucHV0LT5jdXJbMV07CisJCWlmIChjdXIgPT0gMCkgeworCQkgICAgaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcikpCisJCQljdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcihjdHh0LT51c2VyRGF0YSwKKwkJCQkJCSAgICAgICZ4bWxEZWZhdWx0U0FYTG9jYXRvcik7CisJCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0RPQ1VNRU5UX0VNUFRZLCBOVUxMKTsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiUFA6IGVudGVyaW5nIEVPRlxuIik7CisjZW5kaWYKKwkJICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKwkJCWN0eHQtPnNheC0+ZW5kRG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCQkgICAgZ290byBkb25lOworCQl9CisJICAgICAgICBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICc/JykpIHsKKwkJICAgIC8qIFBJIG9yIFhNTCBkZWNsICovCisJCSAgICBpZiAoYXZhaWwgPCA1KSByZXR1cm4ocmV0KTsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoeG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnPycsICc+JywgMCkgPCAwKSkKKwkJCXJldHVybihyZXQpOworCQkgICAgaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcikpCisJCQljdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcihjdHh0LT51c2VyRGF0YSwKKwkJCQkJCSAgICAgICZ4bWxEZWZhdWx0U0FYTG9jYXRvcik7CisJCSAgICBpZiAoKGN0eHQtPmlucHV0LT5jdXJbMl0gPT0gJ3gnKSAmJgorCQkJKGN0eHQtPmlucHV0LT5jdXJbM10gPT0gJ20nKSAmJgorCQkJKGN0eHQtPmlucHV0LT5jdXJbNF0gPT0gJ2wnKSAmJgorCQkJKElTX0JMQU5LX0NIKGN0eHQtPmlucHV0LT5jdXJbNV0pKSkgeworCQkJcmV0ICs9IDU7CisjaWZkZWYgREVCVUdfUFVTSAorCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJIlBQOiBQYXJzaW5nIFhNTCBEZWNsXG4iKTsKKyNlbmRpZgorCQkJeG1sUGFyc2VYTUxEZWNsKGN0eHQpOworCQkJaWYgKGN0eHQtPmVyck5vID09IFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcpIHsKKwkJCSAgICAvKgorCQkJICAgICAqIFRoZSBYTUwgUkVDIGluc3RydWN0cyB1cyB0byBzdG9wIHBhcnNpbmcgcmlnaHQKKwkJCSAgICAgKiBoZXJlCisJCQkgICAgICovCisJCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRU9GOworCQkJICAgIHJldHVybigwKTsKKwkJCX0KKwkJCWN0eHQtPnN0YW5kYWxvbmUgPSBjdHh0LT5pbnB1dC0+c3RhbmRhbG9uZTsKKwkJCWlmICgoY3R4dC0+ZW5jb2RpbmcgPT0gTlVMTCkgJiYKKwkJCSAgICAoY3R4dC0+aW5wdXQtPmVuY29kaW5nICE9IE5VTEwpKQorCQkJICAgIGN0eHQtPmVuY29kaW5nID0geG1sU3RyZHVwKGN0eHQtPmlucHV0LT5lbmNvZGluZyk7CisJCQlpZiAoKGN0eHQtPnNheCkgJiYgKGN0eHQtPnNheC0+c3RhcnREb2N1bWVudCkgJiYKKwkJCSAgICAoIWN0eHQtPmRpc2FibGVTQVgpKQorCQkJICAgIGN0eHQtPnNheC0+c3RhcnREb2N1bWVudChjdHh0LT51c2VyRGF0YSk7CisJCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9NSVNDOworI2lmZGVmIERFQlVHX1BVU0gKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJQUDogZW50ZXJpbmcgTUlTQ1xuIik7CisjZW5kaWYKKwkJICAgIH0gZWxzZSB7CisJCQljdHh0LT52ZXJzaW9uID0geG1sQ2hhclN0cmR1cChYTUxfREVGQVVMVF9WRVJTSU9OKTsKKwkJCWlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5zdGFydERvY3VtZW50KSAmJgorCQkJICAgICghY3R4dC0+ZGlzYWJsZVNBWCkpCisJCQkgICAgY3R4dC0+c2F4LT5zdGFydERvY3VtZW50KGN0eHQtPnVzZXJEYXRhKTsKKwkJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX01JU0M7CisjaWZkZWYgREVCVUdfUFVTSAorCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJIlBQOiBlbnRlcmluZyBNSVNDXG4iKTsKKyNlbmRpZgorCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcikpCisJCQljdHh0LT5zYXgtPnNldERvY3VtZW50TG9jYXRvcihjdHh0LT51c2VyRGF0YSwKKwkJCQkJCSAgICAgICZ4bWxEZWZhdWx0U0FYTG9jYXRvcik7CisJCSAgICBjdHh0LT52ZXJzaW9uID0geG1sQ2hhclN0cmR1cChYTUxfREVGQVVMVF9WRVJTSU9OKTsKKwkJICAgIGlmIChjdHh0LT52ZXJzaW9uID09IE5VTEwpIHsKKwkJICAgICAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5zdGFydERvY3VtZW50KSAmJgorCQkgICAgICAgICghY3R4dC0+ZGlzYWJsZVNBWCkpCisJCQljdHh0LT5zYXgtPnN0YXJ0RG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfTUlTQzsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiUFA6IGVudGVyaW5nIE1JU0NcbiIpOworI2VuZGlmCisJCX0KKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfU1RBUlRfVEFHOiB7CisJICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lOworCQljb25zdCB4bWxDaGFyICpwcmVmaXggPSBOVUxMOworCQljb25zdCB4bWxDaGFyICpVUkkgPSBOVUxMOworCQlpbnQgbnNOciA9IGN0eHQtPm5zTnI7CisKKwkJaWYgKChhdmFpbCA8IDIpICYmIChjdHh0LT5pbnB1dE5yID09IDEpKQorCQkgICAgZ290byBkb25lOworCQljdXIgPSBjdHh0LT5pbnB1dC0+Y3VyWzBdOworCSAgICAgICAgaWYgKGN1ciAhPSAnPCcpIHsKKwkJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRE9DVU1FTlRfRU1QVFksIE5VTEwpOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRU9GOworCQkgICAgaWYgKChjdHh0LT5zYXgpICYmIChjdHh0LT5zYXgtPmVuZERvY3VtZW50ICE9IE5VTEwpKQorCQkJY3R4dC0+c2F4LT5lbmREb2N1bWVudChjdHh0LT51c2VyRGF0YSk7CisJCSAgICBnb3RvIGRvbmU7CisJCX0KKwkJaWYgKCF0ZXJtaW5hdGUpIHsKKwkJICAgIGlmIChjdHh0LT5wcm9ncmVzc2l2ZSkgeworCQkgICAgICAgIC8qID4gY2FuIGJlIGZvdW5kIHVuZXNjYXBlZCBpbiBhdHRyaWJ1dGUgdmFsdWVzICovCisJCSAgICAgICAgaWYgKChsYXN0Z3QgPT0gTlVMTCkgfHwgKGN0eHQtPmlucHV0LT5jdXIgPj0gbGFzdGd0KSkKKwkJCSAgICBnb3RvIGRvbmU7CisJCSAgICB9IGVsc2UgaWYgKHhtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJz4nLCAwLCAwKSA8IDApIHsKKwkJCWdvdG8gZG9uZTsKKwkJICAgIH0KKwkJfQorCQlpZiAoY3R4dC0+c3BhY2VOciA9PSAwKQorCQkgICAgc3BhY2VQdXNoKGN0eHQsIC0xKTsKKwkJZWxzZSBpZiAoKmN0eHQtPnNwYWNlID09IC0yKQorCQkgICAgc3BhY2VQdXNoKGN0eHQsIC0xKTsKKwkJZWxzZQorCQkgICAgc3BhY2VQdXNoKGN0eHQsICpjdHh0LT5zcGFjZSk7CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorCQlpZiAoY3R4dC0+c2F4MikKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisJCSAgICBuYW1lID0geG1sUGFyc2VTdGFydFRhZzIoY3R4dCwgJnByZWZpeCwgJlVSSSwgJnRsZW4pOworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKwkJZWxzZQorCQkgICAgbmFtZSA9IHhtbFBhcnNlU3RhcnRUYWcoY3R4dCk7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCQlpZiAobmFtZSA9PSBOVUxMKSB7CisJCSAgICBzcGFjZVBvcChjdHh0KTsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKwkJICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKwkJCWN0eHQtPnNheC0+ZW5kRG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCQkgICAgZ290byBkb25lOworCQl9CisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKwkJLyoKKwkJICogWyBWQzogUm9vdCBFbGVtZW50IFR5cGUgXQorCQkgKiBUaGUgTmFtZSBpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBtdXN0IG1hdGNoCisJCSAqIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIHJvb3QgZWxlbWVudC4gCisJCSAqLworCQlpZiAoY3R4dC0+dmFsaWRhdGUgJiYgY3R4dC0+d2VsbEZvcm1lZCAmJiBjdHh0LT5teURvYyAmJgorCQkgICAgY3R4dC0+bm9kZSAmJiAoY3R4dC0+bm9kZSA9PSBjdHh0LT5teURvYy0+Y2hpbGRyZW4pKQorCQkgICAgY3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVSb290KCZjdHh0LT52Y3R4dCwgY3R4dC0+bXlEb2MpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisKKwkJLyoKKwkJICogQ2hlY2sgZm9yIGFuIEVtcHR5IEVsZW1lbnQuCisJCSAqLworCQlpZiAoKFJBVyA9PSAnLycpICYmIChOWFQoMSkgPT0gJz4nKSkgeworCQkgICAgU0tJUCgyKTsKKworCQkgICAgaWYgKGN0eHQtPnNheDIpIHsKKwkJCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisJCQkgICAgKGN0eHQtPnNheC0+ZW5kRWxlbWVudE5zICE9IE5VTEwpICYmCisJCQkgICAgKCFjdHh0LT5kaXNhYmxlU0FYKSkKKwkJCSAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnROcyhjdHh0LT51c2VyRGF0YSwgbmFtZSwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgsIFVSSSk7CisJCQlpZiAoY3R4dC0+bnNOciAtIG5zTnIgPiAwKQorCQkJICAgIG5zUG9wKGN0eHQsIGN0eHQtPm5zTnIgLSBuc05yKTsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisJCSAgICB9IGVsc2UgeworCQkJaWYgKChjdHh0LT5zYXggIT0gTlVMTCkgJiYKKwkJCSAgICAoY3R4dC0+c2F4LT5lbmRFbGVtZW50ICE9IE5VTEwpICYmCisJCQkgICAgKCFjdHh0LT5kaXNhYmxlU0FYKSkKKwkJCSAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnQoY3R4dC0+dXNlckRhdGEsIG5hbWUpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKwkJICAgIH0KKwkJICAgIHNwYWNlUG9wKGN0eHQpOworCQkgICAgaWYgKGN0eHQtPm5hbWVOciA9PSAwKSB7CisJCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FUElMT0c7CisJCSAgICB9IGVsc2UgeworCQkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQl9CisJCWlmIChSQVcgPT0gJz4nKSB7CisJCSAgICBORVhUOworCQl9IGVsc2UgeworCQkgICAgeG1sRmF0YWxFcnJNc2dTdHIoY3R4dCwgWE1MX0VSUl9HVF9SRVFVSVJFRCwKKwkJCQkJICJDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgJXNcbiIsCisJCQkJCSBuYW1lKTsKKwkJICAgIG5vZGVQb3AoY3R4dCk7CisJCSAgICBzcGFjZVBvcChjdHh0KTsKKwkJfQorCQlpZiAoY3R4dC0+c2F4MikKKwkJICAgIG5hbWVOc1B1c2goY3R4dCwgbmFtZSwgcHJlZml4LCBVUkksIGN0eHQtPm5zTnIgLSBuc05yKTsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisJCWVsc2UKKwkJICAgIG5hbWVQdXNoKGN0eHQsIG5hbWUpOworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKworCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICB9CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfQ09OVEVOVDogeworCQljb25zdCB4bWxDaGFyICp0ZXN0OworCQl1bnNpZ25lZCBpbnQgY29uczsKKwkJaWYgKChhdmFpbCA8IDIpICYmIChjdHh0LT5pbnB1dE5yID09IDEpKQorCQkgICAgZ290byBkb25lOworCQljdXIgPSBjdHh0LT5pbnB1dC0+Y3VyWzBdOworCQluZXh0ID0gY3R4dC0+aW5wdXQtPmN1clsxXTsKKworCQl0ZXN0ID0gQ1VSX1BUUjsKKwkgICAgICAgIGNvbnMgPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQ7CisJCWlmICgoY3VyID09ICc8JykgJiYgKG5leHQgPT0gJy8nKSkgeworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRU5EX1RBRzsKKwkJICAgIGJyZWFrOworCSAgICAgICAgfSBlbHNlIGlmICgoY3VyID09ICc8JykgJiYgKG5leHQgPT0gJz8nKSkgeworCQkgICAgaWYgKCghdGVybWluYXRlKSAmJgorCQkgICAgICAgICh4bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICc/JywgJz4nLCAwKSA8IDApKQorCQkJZ290byBkb25lOworCQkgICAgeG1sUGFyc2VQSShjdHh0KTsKKwkJfSBlbHNlIGlmICgoY3VyID09ICc8JykgJiYgKG5leHQgIT0gJyEnKSkgeworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfU1RBUlRfVEFHOworCQkgICAgYnJlYWs7CisJCX0gZWxzZSBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYKKwkJICAgICAgICAgICAoY3R4dC0+aW5wdXQtPmN1clsyXSA9PSAnLScpICYmCisJCQkgICAoY3R4dC0+aW5wdXQtPmN1clszXSA9PSAnLScpKSB7CisJCSAgICBpbnQgdGVybTsKKworCSAgICAgICAgICAgIGlmIChhdmFpbCA8IDQpCisJCSAgICAgICAgZ290byBkb25lOworCQkgICAgY3R4dC0+aW5wdXQtPmN1ciArPSA0OworCQkgICAgdGVybSA9IHhtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJy0nLCAnLScsICc+Jyk7CisJCSAgICBjdHh0LT5pbnB1dC0+Y3VyIC09IDQ7CisJCSAgICBpZiAoKCF0ZXJtaW5hdGUpICYmICh0ZXJtIDwgMCkpCisJCQlnb3RvIGRvbmU7CisJCSAgICB4bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAoY3R4dC0+aW5wdXQtPmN1clsxXSA9PSAnIScpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1clsyXSA9PSAnWycpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1clszXSA9PSAnQycpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1cls0XSA9PSAnRCcpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1cls1XSA9PSAnQScpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1cls2XSA9PSAnVCcpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1cls3XSA9PSAnQScpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1cls4XSA9PSAnWycpKSB7CisJCSAgICBTS0lQKDkpOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ0RBVEFfU0VDVElPTjsKKwkJICAgIGJyZWFrOworCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAgICAgICAgKGF2YWlsIDwgOSkpIHsKKwkJICAgIGdvdG8gZG9uZTsKKwkJfSBlbHNlIGlmIChjdXIgPT0gJyYnKSB7CisJCSAgICBpZiAoKCF0ZXJtaW5hdGUpICYmCisJCSAgICAgICAgKHhtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJzsnLCAwLCAwKSA8IDApKQorCQkJZ290byBkb25lOworCQkgICAgeG1sUGFyc2VSZWZlcmVuY2UoY3R4dCk7CisJCX0gZWxzZSB7CisJCSAgICAvKiBUT0RPIEF2b2lkIHRoZSBleHRyYSBjb3B5LCBoYW5kbGUgZGlyZWN0bHkgISEhICovCisJCSAgICAvKgorCQkgICAgICogR29hbCBvZiB0aGUgZm9sbG93aW5nIHRlc3QgaXM6CisJCSAgICAgKiAgLSBtaW5pbWl6ZSBjYWxscyB0byB0aGUgU0FYICdjaGFyYWN0ZXInIGNhbGxiYWNrCisJCSAgICAgKiAgICB3aGVuIHRoZXkgYXJlIG1lcmdlYWJsZQorCQkgICAgICogIC0gaGFuZGxlIGFuIHByb2JsZW0gZm9yIGlzQmxhbmsgd2hlbiB3ZSBvbmx5IHBhcnNlCisJCSAgICAgKiAgICBhIHNlcXVlbmNlIG9mIGJsYW5rIGNoYXJzIGFuZCB0aGUgbmV4dCBvbmUgaXMKKwkJICAgICAqICAgIG5vdCBhdmFpbGFibGUgdG8gY2hlY2sgYWdhaW5zdCAnPCcgcHJlc2VuY2UuCisJCSAgICAgKiAgLSB0cmllcyB0byBob21vZ2VuaXplIHRoZSBkaWZmZXJlbmNlcyBpbiBTQVgKKwkJICAgICAqICAgIGNhbGxiYWNrcyBiZXR3ZWVuIHRoZSBwdXNoIGFuZCBwdWxsIHZlcnNpb25zCisJCSAgICAgKiAgICBvZiB0aGUgcGFyc2VyLgorCQkgICAgICovCisJCSAgICBpZiAoKGN0eHQtPmlucHV0TnIgPT0gMSkgJiYKKwkJICAgICAgICAoYXZhaWwgPCBYTUxfUEFSU0VSX0JJR19CVUZGRVJfU0laRSkpIHsKKwkJCWlmICghdGVybWluYXRlKSB7CisJCQkgICAgaWYgKGN0eHQtPnByb2dyZXNzaXZlKSB7CisJCQkJaWYgKChsYXN0bHQgPT0gTlVMTCkgfHwKKwkJCQkgICAgKGN0eHQtPmlucHV0LT5jdXIgPiBsYXN0bHQpKQorCQkJCSAgICBnb3RvIGRvbmU7CisJCQkgICAgfSBlbHNlIGlmICh4bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8JywgMCwgMCkgPCAwKSB7CisJCQkJZ290byBkb25lOworCQkJICAgIH0KKwkJCX0KKyAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisJCSAgICB4bWxQYXJzZUNoYXJEYXRhKGN0eHQsIDApOworCQl9CisJCS8qCisJCSAqIFBvcC11cCBvZiBmaW5pc2hlZCBlbnRpdGllcy4KKwkJICovCisJCXdoaWxlICgoUkFXID09IDApICYmIChjdHh0LT5pbnB1dE5yID4gMSkpCisJCSAgICB4bWxQb3BJbnB1dChjdHh0KTsKKwkJaWYgKChjb25zID09IGN0eHQtPmlucHV0LT5jb25zdW1lZCkgJiYgKHRlc3QgPT0gQ1VSX1BUUikpIHsKKwkJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAgICAgICAgICAgICAiZGV0ZWN0ZWQgYW4gZXJyb3IgaW4gZWxlbWVudCBjb250ZW50XG4iKTsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKwkJICAgIGJyZWFrOworCQl9CisJCWJyZWFrOworCSAgICB9CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfRU5EX1RBRzoKKwkJaWYgKGF2YWlsIDwgMikKKwkJICAgIGdvdG8gZG9uZTsKKwkJaWYgKCF0ZXJtaW5hdGUpIHsKKwkJICAgIGlmIChjdHh0LT5wcm9ncmVzc2l2ZSkgeworCQkgICAgICAgIC8qID4gY2FuIGJlIGZvdW5kIHVuZXNjYXBlZCBpbiBhdHRyaWJ1dGUgdmFsdWVzICovCisJCSAgICAgICAgaWYgKChsYXN0Z3QgPT0gTlVMTCkgfHwgKGN0eHQtPmlucHV0LT5jdXIgPj0gbGFzdGd0KSkKKwkJCSAgICBnb3RvIGRvbmU7CisJCSAgICB9IGVsc2UgaWYgKHhtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJz4nLCAwLCAwKSA8IDApIHsKKwkJCWdvdG8gZG9uZTsKKwkJICAgIH0KKwkJfQorCQlpZiAoY3R4dC0+c2F4MikgeworCQkgICAgeG1sUGFyc2VFbmRUYWcyKGN0eHQsCisJCSAgICAgICAgICAgKHZvaWQgKikgY3R4dC0+cHVzaFRhYltjdHh0LT5uYW1lTnIgKiAzIC0gM10sCisJCSAgICAgICAgICAgKHZvaWQgKikgY3R4dC0+cHVzaFRhYltjdHh0LT5uYW1lTnIgKiAzIC0gMl0sIDAsCisJCSAgICAgICAoaW50KSAobG9uZykgY3R4dC0+cHVzaFRhYltjdHh0LT5uYW1lTnIgKiAzIC0gMV0sIDApOworCQkgICAgbmFtZU5zUG9wKGN0eHQpOworCQl9CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorCQkgIGVsc2UKKwkJICAgIHhtbFBhcnNlRW5kVGFnMShjdHh0LCAwKTsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisJCWlmIChjdHh0LT5uYW1lTnIgPT0gMCkgeworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRVBJTE9HOworCQl9IGVsc2UgeworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKwkJfQorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9DREFUQV9TRUNUSU9OOiB7CisJICAgICAgICAvKgorCQkgKiBUaGUgUHVzaCBtb2RlIG5lZWQgdG8gaGF2ZSB0aGUgU0FYIGNhbGxiYWNrIGZvciAKKwkJICogY2RhdGFCbG9jayBtZXJnZSBiYWNrIGNvbnRpZ3VvdXMgY2FsbGJhY2tzLgorCQkgKi8KKwkJaW50IGJhc2U7CisKKwkJYmFzZSA9IHhtbFBhcnNlTG9va3VwU2VxdWVuY2UoY3R4dCwgJ10nLCAnXScsICc+Jyk7CisJCWlmIChiYXNlIDwgMCkgeworCQkgICAgaWYgKGF2YWlsID49IFhNTF9QQVJTRVJfQklHX0JVRkZFUl9TSVpFICsgMikgeworCQkgICAgICAgIGludCB0bXA7CisKKwkJCXRtcCA9IHhtbENoZWNrQ2RhdGFQdXNoKGN0eHQtPmlucHV0LT5jdXIsIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1BBUlNFUl9CSUdfQlVGRkVSX1NJWkUpOworCQkJaWYgKHRtcCA8IDApIHsKKwkJCSAgICB0bXAgPSAtdG1wOworCQkJICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gdG1wOworCQkJICAgIGdvdG8gZW5jb2RpbmdfZXJyb3I7CisJCQl9CisJCQlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpKSB7CisJCQkgICAgaWYgKGN0eHQtPnNheC0+Y2RhdGFCbG9jayAhPSBOVUxMKQorCQkJCWN0eHQtPnNheC0+Y2RhdGFCbG9jayhjdHh0LT51c2VyRGF0YSwKKwkJCQkgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmN1ciwgdG1wKTsKKwkJCSAgICBlbHNlIGlmIChjdHh0LT5zYXgtPmNoYXJhY3RlcnMgIT0gTlVMTCkKKwkJCQljdHh0LT5zYXgtPmNoYXJhY3RlcnMoY3R4dC0+dXNlckRhdGEsCisJCQkJICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIsIHRtcCk7CisJCQl9CisJCQlTS0lQTCh0bXApOworCQkJY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisJCSAgICB9CisJCSAgICBnb3RvIGRvbmU7CisJCX0gZWxzZSB7CisJCSAgICBpbnQgdG1wOworCisJCSAgICB0bXAgPSB4bWxDaGVja0NkYXRhUHVzaChjdHh0LT5pbnB1dC0+Y3VyLCBiYXNlKTsKKwkJICAgIGlmICgodG1wIDwgMCkgfHwgKHRtcCAhPSBiYXNlKSkgeworCQkJdG1wID0gLXRtcDsKKwkJCWN0eHQtPmlucHV0LT5jdXIgKz0gdG1wOworCQkJZ290byBlbmNvZGluZ19lcnJvcjsKKwkJICAgIH0KKwkJICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmIChiYXNlID09IDApICYmCisJCSAgICAgICAgKGN0eHQtPnNheC0+Y2RhdGFCbG9jayAhPSBOVUxMKSAmJgorCQkgICAgICAgICghY3R4dC0+ZGlzYWJsZVNBWCkpIHsKKwkJCS8qCisJCQkgKiBTcGVjaWFsIGNhc2UgdG8gcHJvdmlkZSBpZGVudGljYWwgYmVoYXZpb3VyCisJCQkgKiBiZXR3ZWVuIHB1bGwgYW5kIHB1c2ggcGFyc2VycyBvbiBlbnB0eSBDREFUQQorCQkJICogc2VjdGlvbnMKKwkJCSAqLworCQkJIGlmICgoY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlID49IDkpICYmCisJCQkgICAgICghc3RybmNtcCgoY29uc3QgY2hhciAqKSZjdHh0LT5pbnB1dC0+Y3VyWy05XSwKKwkJCSAgICAgICAgICAgICAgICI8IVtDREFUQVsiLCA5KSkpCisJCQkgICAgIGN0eHQtPnNheC0+Y2RhdGFCbG9jayhjdHh0LT51c2VyRGF0YSwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICIiLCAwKTsKKwkJICAgIH0gZWxzZSBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoYmFzZSA+IDApICYmCisJCQkoIWN0eHQtPmRpc2FibGVTQVgpKSB7CisJCQlpZiAoY3R4dC0+c2F4LT5jZGF0YUJsb2NrICE9IE5VTEwpCisJCQkgICAgY3R4dC0+c2F4LT5jZGF0YUJsb2NrKGN0eHQtPnVzZXJEYXRhLAorCQkJCQkJICBjdHh0LT5pbnB1dC0+Y3VyLCBiYXNlKTsKKwkJCWVsc2UgaWYgKGN0eHQtPnNheC0+Y2hhcmFjdGVycyAhPSBOVUxMKQorCQkJICAgIGN0eHQtPnNheC0+Y2hhcmFjdGVycyhjdHh0LT51c2VyRGF0YSwKKwkJCQkJCSAgY3R4dC0+aW5wdXQtPmN1ciwgYmFzZSk7CisJCSAgICB9CisJCSAgICBTS0lQTChiYXNlICsgMyk7CisJCSAgICBjdHh0LT5jaGVja0luZGV4ID0gMDsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisjaWZkZWYgREVCVUdfUFVTSAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIlBQOiBlbnRlcmluZyBDT05URU5UXG4iKTsKKyNlbmRpZgorCQl9CisJCWJyZWFrOworCSAgICB9CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfTUlTQzoKKwkJU0tJUF9CTEFOS1M7CisJCWlmIChjdHh0LT5pbnB1dC0+YnVmID09IE5VTEwpCisJCSAgICBhdmFpbCA9IGN0eHQtPmlucHV0LT5sZW5ndGggLQorCQkgICAgICAgICAgICAoY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlKTsKKwkJZWxzZQorCQkgICAgYXZhaWwgPSBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPnVzZSAtCisJCSAgICAgICAgICAgIChjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworCQlpZiAoYXZhaWwgPCAyKQorCQkgICAgZ290byBkb25lOworCQljdXIgPSBjdHh0LT5pbnB1dC0+Y3VyWzBdOworCQluZXh0ID0gY3R4dC0+aW5wdXQtPmN1clsxXTsKKwkgICAgICAgIGlmICgoY3VyID09ICc8JykgJiYgKG5leHQgPT0gJz8nKSkgeworCQkgICAgaWYgKCghdGVybWluYXRlKSAmJgorCQkgICAgICAgICh4bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICc/JywgJz4nLCAwKSA8IDApKQorCQkJZ290byBkb25lOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJQUDogUGFyc2luZyBQSVxuIik7CisjZW5kaWYKKwkJICAgIHhtbFBhcnNlUEkoY3R4dCk7CisJCSAgICBjdHh0LT5jaGVja0luZGV4ID0gMDsKKwkJfSBlbHNlIGlmICgoY3VyID09ICc8JykgJiYgKG5leHQgPT0gJyEnKSAmJgorCQkgICAgKGN0eHQtPmlucHV0LT5jdXJbMl0gPT0gJy0nKSAmJgorCQkgICAgKGN0eHQtPmlucHV0LT5jdXJbM10gPT0gJy0nKSkgeworCQkgICAgaWYgKCghdGVybWluYXRlKSAmJgorCQkgICAgICAgICh4bWxQYXJzZUxvb2t1cFNlcXVlbmNlKGN0eHQsICctJywgJy0nLCAnPicpIDwgMCkpCisJCQlnb3RvIGRvbmU7CisjaWZkZWYgREVCVUdfUFVTSAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIlBQOiBQYXJzaW5nIENvbW1lbnRcbiIpOworI2VuZGlmCisJCSAgICB4bWxQYXJzZUNvbW1lbnQoY3R4dCk7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9NSVNDOworCQkgICAgY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisJCX0gZWxzZSBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICchJykgJiYKKwkJICAgIChjdHh0LT5pbnB1dC0+Y3VyWzJdID09ICdEJykgJiYKKwkJICAgIChjdHh0LT5pbnB1dC0+Y3VyWzNdID09ICdPJykgJiYKKwkJICAgIChjdHh0LT5pbnB1dC0+Y3VyWzRdID09ICdDJykgJiYKKwkJICAgIChjdHh0LT5pbnB1dC0+Y3VyWzVdID09ICdUJykgJiYKKwkJICAgIChjdHh0LT5pbnB1dC0+Y3VyWzZdID09ICdZJykgJiYKKwkJICAgIChjdHh0LT5pbnB1dC0+Y3VyWzddID09ICdQJykgJiYKKwkJICAgIChjdHh0LT5pbnB1dC0+Y3VyWzhdID09ICdFJykpIHsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoeG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnPicsIDAsIDApIDwgMCkpCisJCQlnb3RvIGRvbmU7CisjaWZkZWYgREVCVUdfUFVTSAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIlBQOiBQYXJzaW5nIGludGVybmFsIHN1YnNldFxuIik7CisjZW5kaWYKKwkJICAgIGN0eHQtPmluU3Vic2V0ID0gMTsKKwkJICAgIHhtbFBhcnNlRG9jVHlwZURlY2woY3R4dCk7CisJCSAgICBpZiAoUkFXID09ICdbJykgeworCQkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRFREOworI2lmZGVmIERFQlVHX1BVU0gKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJQUDogZW50ZXJpbmcgRFREXG4iKTsKKyNlbmRpZgorCQkgICAgfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBDcmVhdGUgYW5kIHVwZGF0ZSB0aGUgZXh0ZXJuYWwgc3Vic2V0LgorCQkJICovCisJCQljdHh0LT5pblN1YnNldCA9IDI7CisJCQlpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoIWN0eHQtPmRpc2FibGVTQVgpICYmCisJCQkgICAgKGN0eHQtPnNheC0+ZXh0ZXJuYWxTdWJzZXQgIT0gTlVMTCkpCisJCQkgICAgY3R4dC0+c2F4LT5leHRlcm5hbFN1YnNldChjdHh0LT51c2VyRGF0YSwKKwkJCQkgICAgY3R4dC0+aW50U3ViTmFtZSwgY3R4dC0+ZXh0U3ViU3lzdGVtLAorCQkJCSAgICBjdHh0LT5leHRTdWJVUkkpOworCQkJY3R4dC0+aW5TdWJzZXQgPSAwOworCQkJeG1sQ2xlYW5TcGVjaWFsQXR0cihjdHh0KTsKKwkJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1BST0xPRzsKKyNpZmRlZiBERUJVR19QVVNICisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkiUFA6IGVudGVyaW5nIFBST0xPR1xuIik7CisjZW5kaWYKKwkJICAgIH0KKwkJfSBlbHNlIGlmICgoY3VyID09ICc8JykgJiYgKG5leHQgPT0gJyEnKSAmJgorCQkgICAgICAgICAgIChhdmFpbCA8IDkpKSB7CisJCSAgICBnb3RvIGRvbmU7CisJCX0gZWxzZSB7CisJCSAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9TVEFSVF9UQUc7CisJCSAgICBjdHh0LT5wcm9ncmVzc2l2ZSA9IDE7CisJCSAgICB4bWxQYXJzZUdldExhc3RzKGN0eHQsICZsYXN0bHQsICZsYXN0Z3QpOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJQUDogZW50ZXJpbmcgU1RBUlRfVEFHXG4iKTsKKyNlbmRpZgorCQl9CisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX1BST0xPRzoKKwkJU0tJUF9CTEFOS1M7CisJCWlmIChjdHh0LT5pbnB1dC0+YnVmID09IE5VTEwpCisJCSAgICBhdmFpbCA9IGN0eHQtPmlucHV0LT5sZW5ndGggLSAoY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlKTsKKwkJZWxzZQorCQkgICAgYXZhaWwgPSBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPnVzZSAtIChjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworCQlpZiAoYXZhaWwgPCAyKSAKKwkJICAgIGdvdG8gZG9uZTsKKwkJY3VyID0gY3R4dC0+aW5wdXQtPmN1clswXTsKKwkJbmV4dCA9IGN0eHQtPmlucHV0LT5jdXJbMV07CisJICAgICAgICBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICc/JykpIHsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoeG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnPycsICc+JywgMCkgPCAwKSkKKwkJCWdvdG8gZG9uZTsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiUFA6IFBhcnNpbmcgUElcbiIpOworI2VuZGlmCisJCSAgICB4bWxQYXJzZVBJKGN0eHQpOworCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1clsyXSA9PSAnLScpICYmIChjdHh0LT5pbnB1dC0+Y3VyWzNdID09ICctJykpIHsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoeG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnLScsICctJywgJz4nKSA8IDApKQorCQkJZ290byBkb25lOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJQUDogUGFyc2luZyBDb21tZW50XG4iKTsKKyNlbmRpZgorCQkgICAgeG1sUGFyc2VDb21tZW50KGN0eHQpOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfUFJPTE9HOworCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAgICAgICAgKGF2YWlsIDwgNCkpIHsKKwkJICAgIGdvdG8gZG9uZTsKKwkJfSBlbHNlIHsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1NUQVJUX1RBRzsKKwkJICAgIGlmIChjdHh0LT5wcm9ncmVzc2l2ZSA9PSAwKQorCQkJY3R4dC0+cHJvZ3Jlc3NpdmUgPSAxOworCQkgICAgeG1sUGFyc2VHZXRMYXN0cyhjdHh0LCAmbGFzdGx0LCAmbGFzdGd0KTsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiUFA6IGVudGVyaW5nIFNUQVJUX1RBR1xuIik7CisjZW5kaWYKKwkJfQorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9FUElMT0c6CisJCVNLSVBfQkxBTktTOworCQlpZiAoY3R4dC0+aW5wdXQtPmJ1ZiA9PSBOVUxMKQorCQkgICAgYXZhaWwgPSBjdHh0LT5pbnB1dC0+bGVuZ3RoIC0gKGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSk7CisJCWVsc2UKKwkJICAgIGF2YWlsID0gY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT51c2UgLSAoY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlKTsKKwkJaWYgKGF2YWlsIDwgMikKKwkJICAgIGdvdG8gZG9uZTsKKwkJY3VyID0gY3R4dC0+aW5wdXQtPmN1clswXTsKKwkJbmV4dCA9IGN0eHQtPmlucHV0LT5jdXJbMV07CisJICAgICAgICBpZiAoKGN1ciA9PSAnPCcpICYmIChuZXh0ID09ICc/JykpIHsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoeG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnPycsICc+JywgMCkgPCAwKSkKKwkJCWdvdG8gZG9uZTsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiUFA6IFBhcnNpbmcgUElcbiIpOworI2VuZGlmCisJCSAgICB4bWxQYXJzZVBJKGN0eHQpOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRVBJTE9HOworCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmN1clsyXSA9PSAnLScpICYmIChjdHh0LT5pbnB1dC0+Y3VyWzNdID09ICctJykpIHsKKwkJICAgIGlmICgoIXRlcm1pbmF0ZSkgJiYKKwkJICAgICAgICAoeG1sUGFyc2VMb29rdXBTZXF1ZW5jZShjdHh0LCAnLScsICctJywgJz4nKSA8IDApKQorCQkJZ290byBkb25lOworI2lmZGVmIERFQlVHX1BVU0gKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJQUDogUGFyc2luZyBDb21tZW50XG4iKTsKKyNlbmRpZgorCQkgICAgeG1sUGFyc2VDb21tZW50KGN0eHQpOworCQkgICAgY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfRVBJTE9HOworCQl9IGVsc2UgaWYgKChjdXIgPT0gJzwnKSAmJiAobmV4dCA9PSAnIScpICYmCisJCSAgICAgICAgICAgKGF2YWlsIDwgNCkpIHsKKwkJICAgIGdvdG8gZG9uZTsKKwkJfSBlbHNlIHsKKwkJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRE9DVU1FTlRfRU5ELCBOVUxMKTsKKwkJICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiUFA6IGVudGVyaW5nIEVPRlxuIik7CisjZW5kaWYKKwkJICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKwkJCWN0eHQtPnNheC0+ZW5kRG9jdW1lbnQoY3R4dC0+dXNlckRhdGEpOworCQkgICAgZ290byBkb25lOworCQl9CisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0RURDogeworCSAgICAgICAgLyoKKwkJICogU29ycnkgYnV0IHByb2dyZXNzaXZlIHBhcnNpbmcgb2YgdGhlIGludGVybmFsIHN1YnNldAorCQkgKiBpcyBub3QgZXhwZWN0ZWQgdG8gYmUgc3VwcG9ydGVkLiBXZSBmaXJzdCBjaGVjayB0aGF0CisJCSAqIHRoZSBmdWxsIGNvbnRlbnQgb2YgdGhlIGludGVybmFsIHN1YnNldCBpcyBhdmFpbGFibGUgYW5kCisJCSAqIHRoZSBwYXJzaW5nIGlzIGxhdW5jaGVkIG9ubHkgYXQgdGhhdCBwb2ludC4KKwkJICogSW50ZXJuYWwgc3Vic2V0IGVuZHMgdXAgd2l0aCAiJ10nIFM/ICc+JyIgaW4gYW4gdW5lc2NhcGVkCisJCSAqIHNlY3Rpb24gYW5kIG5vdCBpbiBhICddXT4nIHNlcXVlbmNlIHdoaWNoIGFyZSBjb25kaXRpb25hbAorCQkgKiBzZWN0aW9ucyAod2hvZXZlciBhcmd1ZWQgdG8ga2VlcCB0aGF0IGNyYXAgaW4gWE1MIGRlc2VydmUKKwkJICogYSBwbGFjZSBpbiBoZWxsICEpLgorCQkgKi8KKwkJaW50IGJhc2UsIGk7CisJCXhtbENoYXIgKmJ1ZjsKKwkgICAgICAgIHhtbENoYXIgcXVvdGUgPSAwOworCisJCWJhc2UgPSBjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2U7CisJCWlmIChiYXNlIDwgMCkgcmV0dXJuKDApOworCQlpZiAoY3R4dC0+Y2hlY2tJbmRleCA+IGJhc2UpCisJCSAgICBiYXNlID0gY3R4dC0+Y2hlY2tJbmRleDsKKwkJYnVmID0gY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworCQlmb3IgKDsodW5zaWduZWQgaW50KSBiYXNlIDwgY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT51c2U7CisJCSAgICAgYmFzZSsrKSB7CisJCSAgICBpZiAocXVvdGUgIT0gMCkgeworCQkgICAgICAgIGlmIChidWZbYmFzZV0gPT0gcXVvdGUpCisJCQkgICAgcXVvdGUgPSAwOworCQkJY29udGludWU7ICAgIAorCQkgICAgfQorCQkgICAgaWYgKChxdW90ZSA9PSAwKSAmJiAoYnVmW2Jhc2VdID09ICc8JykpIHsKKwkJICAgICAgICBpbnQgZm91bmQgID0gMDsKKwkJCS8qIHNwZWNpYWwgaGFuZGxpbmcgb2YgY29tbWVudHMgKi8KKwkJICAgICAgICBpZiAoKCh1bnNpZ25lZCBpbnQpIGJhc2UgKyA0IDwKKwkJCSAgICAgY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT51c2UpICYmCisJCQkgICAgKGJ1ZltiYXNlICsgMV0gPT0gJyEnKSAmJgorCQkJICAgIChidWZbYmFzZSArIDJdID09ICctJykgJiYKKwkJCSAgICAoYnVmW2Jhc2UgKyAzXSA9PSAnLScpKSB7CisJCQkgICAgZm9yICg7KHVuc2lnbmVkIGludCkgYmFzZSArIDMgPAorCQkJICAgICAgICAgIGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+dXNlOyBiYXNlKyspIHsKKwkJCQlpZiAoKGJ1ZltiYXNlXSA9PSAnLScpICYmCisJCQkJICAgIChidWZbYmFzZSArIDFdID09ICctJykgJiYKKwkJCQkgICAgKGJ1ZltiYXNlICsgMl0gPT0gJz4nKSkgeworCQkJCSAgICBmb3VuZCA9IDE7CisJCQkJICAgIGJhc2UgKz0gMjsKKwkJCQkgICAgYnJlYWs7CisJCQkJfQorCQkgICAgICAgICAgICB9CisJCQkgICAgaWYgKCFmb3VuZCkgeworI2lmIDAKKwkJCSAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1bmZpbmlzaGVkIGNvbW1lbnRcbiIpOworI2VuZGlmCisJCQkgICAgICAgIGJyZWFrOyAvKiBmb3IgKi8KKwkJICAgICAgICAgICAgfQorCQkgICAgICAgICAgICBjb250aW51ZTsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGlmIChidWZbYmFzZV0gPT0gJyInKSB7CisJCSAgICAgICAgcXVvdGUgPSAnIic7CisJCQljb250aW51ZTsKKwkJICAgIH0KKwkJICAgIGlmIChidWZbYmFzZV0gPT0gJ1wnJykgeworCQkgICAgICAgIHF1b3RlID0gJ1wnJzsKKwkJCWNvbnRpbnVlOworCQkgICAgfQorCQkgICAgaWYgKGJ1ZltiYXNlXSA9PSAnXScpIHsKKyNpZiAwCisJCSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlYyVjJWMlYzogIiwgYnVmW2Jhc2VdLAorCQkJICAgICAgICBidWZbYmFzZSArIDFdLCBidWZbYmFzZSArIDJdLCBidWZbYmFzZSArIDNdKTsKKyNlbmRpZgorCQkgICAgICAgIGlmICgodW5zaWduZWQgaW50KSBiYXNlICsxID49CisJCSAgICAgICAgICAgIGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+dXNlKQorCQkJICAgIGJyZWFrOworCQkJaWYgKGJ1ZltiYXNlICsgMV0gPT0gJ10nKSB7CisJCQkgICAgLyogY29uZGl0aW9uYWwgY3JhcCwgc2tpcCBib3RoICddJyAhICovCisJCQkgICAgYmFzZSsrOworCQkJICAgIGNvbnRpbnVlOworCQkJfQorCQkgICAgICAgIGZvciAoaSA9IDE7CisJCSAgICAgKHVuc2lnbmVkIGludCkgYmFzZSArIGkgPCBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPnVzZTsKKwkJICAgICAgICAgICAgIGkrKykgeworCQkJICAgIGlmIChidWZbYmFzZSArIGldID09ICc+JykgeworI2lmIDAKKwkJCSAgICAgICAgZnByaW50ZihzdGRlcnIsICJmb3VuZFxuIik7CisjZW5kaWYKKwkJCSAgICAgICAgZ290byBmb3VuZF9lbmRfaW50X3N1YnNldDsKKwkJCSAgICB9CisJCQkgICAgaWYgKCFJU19CTEFOS19DSChidWZbYmFzZSArIGldKSkgeworI2lmIDAKKwkJCSAgICAgICAgZnByaW50ZihzdGRlcnIsICJub3QgZm91bmRcbiIpOworI2VuZGlmCisJCQkgICAgICAgIGdvdG8gbm90X2VuZF9vZl9pbnRfc3Vic2V0OworCQkJICAgIH0KKwkJCX0KKyNpZiAwCisJCQlmcHJpbnRmKHN0ZGVyciwgImVuZCBvZiBzdHJlYW1cbiIpOworI2VuZGlmCisJCSAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKwkJICAgIH0KK25vdF9lbmRfb2ZfaW50X3N1YnNldDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8qIGZvciAqLworCQl9CisJCS8qCisJCSAqIFdlIGRpZG4ndCBmb3VuZCB0aGUgZW5kIG9mIHRoZSBJbnRlcm5hbCBzdWJzZXQKKwkJICovCisjaWZkZWYgREVCVUdfUFVTSAorCQlpZiAobmV4dCA9PSAwKQorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIlBQOiBsb29rdXAgb2YgaW50IHN1YnNldCBlbmQgZmlsZWRcbiIpOworI2VuZGlmCisJICAgICAgICBnb3RvIGRvbmU7CisKK2ZvdW5kX2VuZF9pbnRfc3Vic2V0OgorCQl4bWxQYXJzZUludGVybmFsU3Vic2V0KGN0eHQpOworCQljdHh0LT5pblN1YnNldCA9IDI7CisJCWlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmICghY3R4dC0+ZGlzYWJsZVNBWCkgJiYKKwkJICAgIChjdHh0LT5zYXgtPmV4dGVybmFsU3Vic2V0ICE9IE5VTEwpKQorCQkgICAgY3R4dC0+c2F4LT5leHRlcm5hbFN1YnNldChjdHh0LT51c2VyRGF0YSwgY3R4dC0+aW50U3ViTmFtZSwKKwkJCSAgICBjdHh0LT5leHRTdWJTeXN0ZW0sIGN0eHQtPmV4dFN1YlVSSSk7CisJCWN0eHQtPmluU3Vic2V0ID0gMDsKKwkJeG1sQ2xlYW5TcGVjaWFsQXR0cihjdHh0KTsKKwkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfUFJPTE9HOworCQljdHh0LT5jaGVja0luZGV4ID0gMDsKKyNpZmRlZiBERUJVR19QVVNICisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlBQOiBlbnRlcmluZyBQUk9MT0dcbiIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgIH0KKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9DT01NRU5UOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQUDogaW50ZXJuYWwgZXJyb3IsIHN0YXRlID09IENPTU1FTlRcbiIpOworCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworI2lmZGVmIERFQlVHX1BVU0gKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUFA6IGVudGVyaW5nIENPTlRFTlRcbiIpOworI2VuZGlmCisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0lHTk9SRToKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBJR05PUkUiKTsKKwkgICAgICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0RURDsKKyNpZmRlZiBERUJVR19QVVNICisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlBQOiBlbnRlcmluZyBEVERcbiIpOworI2VuZGlmCisJICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9QSToKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBQSVxuIik7CisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisjaWZkZWYgREVCVUdfUFVTSAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQUDogZW50ZXJpbmcgQ09OVEVOVFxuIik7CisjZW5kaWYKKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9QQVJTRVJfRU5USVRZX0RFQ0w6CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlBQOiBpbnRlcm5hbCBlcnJvciwgc3RhdGUgPT0gRU5USVRZX0RFQ0xcbiIpOworCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9EVEQ7CisjaWZkZWYgREVCVUdfUFVTSAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQUDogZW50ZXJpbmcgRFREXG4iKTsKKyNlbmRpZgorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9FTlRJVFlfVkFMVUU6CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlBQOiBpbnRlcm5hbCBlcnJvciwgc3RhdGUgPT0gRU5USVRZX1ZBTFVFXG4iKTsKKwkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKyNpZmRlZiBERUJVR19QVVNICisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlBQOiBlbnRlcmluZyBEVERcbiIpOworI2VuZGlmCisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRToKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBBVFRSSUJVVEVfVkFMVUVcbiIpOworCQljdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9TVEFSVF9UQUc7CisjaWZkZWYgREVCVUdfUFVTSAorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQUDogZW50ZXJpbmcgU1RBUlRfVEFHXG4iKTsKKyNlbmRpZgorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9TWVNURU1fTElURVJBTDoKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUFA6IGludGVybmFsIGVycm9yLCBzdGF0ZSA9PSBTWVNURU1fTElURVJBTFxuIik7CisJCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX1NUQVJUX1RBRzsKKyNpZmRlZiBERUJVR19QVVNICisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIlBQOiBlbnRlcmluZyBTVEFSVF9UQUdcbiIpOworI2VuZGlmCisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfUEFSU0VSX1BVQkxJQ19MSVRFUkFMOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJQUDogaW50ZXJuYWwgZXJyb3IsIHN0YXRlID09IFBVQkxJQ19MSVRFUkFMXG4iKTsKKwkJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfU1RBUlRfVEFHOworI2lmZGVmIERFQlVHX1BVU0gKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUFA6IGVudGVyaW5nIFNUQVJUX1RBR1xuIik7CisjZW5kaWYKKwkJYnJlYWs7CisJfQorICAgIH0KK2RvbmU6ICAgIAorI2lmZGVmIERFQlVHX1BVU0gKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlBQOiBkb25lICVkXG4iLCByZXQpOworI2VuZGlmCisgICAgcmV0dXJuKHJldCk7CitlbmNvZGluZ19lcnJvcjoKKyAgICB7CisgICAgICAgIGNoYXIgYnVmZmVyWzE1MF07CisKKwlzbnByaW50ZihidWZmZXIsIDE0OSwgIkJ5dGVzOiAweCUwMlggMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCQljdHh0LT5pbnB1dC0+Y3VyWzBdLCBjdHh0LT5pbnB1dC0+Y3VyWzFdLAorCQkJY3R4dC0+aW5wdXQtPmN1clsyXSwgY3R4dC0+aW5wdXQtPmN1clszXSk7CisJX194bWxFcnJFbmNvZGluZyhjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKwkJICAgICAiSW5wdXQgaXMgbm90IHByb3BlciBVVEYtOCwgaW5kaWNhdGUgZW5jb2RpbmcgIVxuJXMiLAorCQkgICAgIEJBRF9DQVNUIGJ1ZmZlciwgTlVMTCk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUNodW5rOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBjaHVuazogIGFuIGNoYXIgYXJyYXkKKyAqIEBzaXplOiAgdGhlIHNpemUgaW4gYnl0ZSBvZiB0aGUgY2h1bmsKKyAqIEB0ZXJtaW5hdGU6ICBsYXN0IGNodW5rIGluZGljYXRvcgorICoKKyAqIFBhcnNlIGEgQ2h1bmsgb2YgbWVtb3J5CisgKgorICogUmV0dXJucyB6ZXJvIGlmIG5vIGVycm9yLCB0aGUgeG1sUGFyc2VyRXJyb3JzIG90aGVyd2lzZS4KKyAqLworaW50Cit4bWxQYXJzZUNodW5rKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqY2h1bmssIGludCBzaXplLAorICAgICAgICAgICAgICBpbnQgdGVybWluYXRlKSB7CisgICAgaW50IGVuZF9pbl9sZiA9IDA7CisgICAgaW50IHJlbWFpbiA9IDA7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oWE1MX0VSUl9JTlRFUk5BTF9FUlJPUik7CisgICAgaWYgKChjdHh0LT5lcnJObyAhPSBYTUxfRVJSX09LKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCA9PSAxKSkKKyAgICAgICAgcmV0dXJuKGN0eHQtPmVyck5vKTsKKyAgICBpZiAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX1NUQVJUKQorICAgICAgICB4bWxEZXRlY3RTQVgyKGN0eHQpOworICAgIGlmICgoc2l6ZSA+IDApICYmIChjaHVuayAhPSBOVUxMKSAmJiAoIXRlcm1pbmF0ZSkgJiYKKyAgICAgICAgKGNodW5rW3NpemUgLSAxXSA9PSAnXHInKSkgeworCWVuZF9pbl9sZiA9IDE7CisJc2l6ZS0tOworICAgIH0KKworeG1sZGVjbF9kb25lOgorCisgICAgaWYgKChzaXplID4gMCkgJiYgKGNodW5rICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+aW5wdXQtPmJ1ZiAhPSBOVUxMKSAmJiAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0VPRikpICB7CisJaW50IGJhc2UgPSBjdHh0LT5pbnB1dC0+YmFzZSAtIGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKwlpbnQgY3VyID0gY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlOworCWludCByZXM7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogU3BlY2lmaWMgaGFuZGxpbmcgaWYgd2UgYXV0b2RldGVjdGVkIGFuIGVuY29kaW5nLCB3ZSBzaG91bGQgbm90CisgICAgICAgICAqIHB1c2ggbW9yZSB0aGFuIHRoZSBmaXJzdCBsaW5lIC4uLiB3aGljaCBkZXBlbmQgb24gdGhlIGVuY29kaW5nCisgICAgICAgICAqIEFuZCBvbmx5IHB1c2ggdGhlIHJlc3Qgb25jZSB0aGUgZmluYWwgZW5jb2Rpbmcgd2FzIGRldGVjdGVkCisgICAgICAgICAqLworICAgICAgICBpZiAoKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9TVEFSVCkgJiYgKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmCisgICAgICAgICAgICAoY3R4dC0+aW5wdXQtPmJ1ZiAhPSBOVUxMKSAmJiAoY3R4dC0+aW5wdXQtPmJ1Zi0+ZW5jb2RlciAhPSBOVUxMKSkgeworICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbiA9IDQ1OworCisgICAgICAgICAgICBpZiAoKHhtbFN0cmNhc2VzdHIoQkFEX0NBU1QgY3R4dC0+aW5wdXQtPmJ1Zi0+ZW5jb2Rlci0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiVVRGLTE2IikpIHx8CisgICAgICAgICAgICAgICAgKHhtbFN0cmNhc2VzdHIoQkFEX0NBU1QgY3R4dC0+aW5wdXQtPmJ1Zi0+ZW5jb2Rlci0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiVVRGMTYiKSkpCisgICAgICAgICAgICAgICAgbGVuID0gOTA7CisgICAgICAgICAgICBlbHNlIGlmICgoeG1sU3RyY2FzZXN0cihCQURfQ0FTVCBjdHh0LT5pbnB1dC0+YnVmLT5lbmNvZGVyLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIlVDUy00IikpIHx8CisgICAgICAgICAgICAgICAgICAgICAoeG1sU3RyY2FzZXN0cihCQURfQ0FTVCBjdHh0LT5pbnB1dC0+YnVmLT5lbmNvZGVyLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIlVDUzQiKSkpCisgICAgICAgICAgICAgICAgbGVuID0gMTgwOworCisgICAgICAgICAgICBpZiAoY3R4dC0+aW5wdXQtPmJ1Zi0+cmF3Y29uc3VtZWQgPCBsZW4pCisgICAgICAgICAgICAgICAgbGVuIC09IGN0eHQtPmlucHV0LT5idWYtPnJhd2NvbnN1bWVkOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogQ2hhbmdlIHNpemUgZm9yIHJlYWRpbmcgdGhlIGluaXRpYWwgZGVjbGFyYXRpb24gb25seQorICAgICAgICAgICAgICogaWYgc2l6ZSBpcyBncmVhdGVyIHRoYW4gbGVuLiBPdGhlcndpc2UsIG1lbW1vdmUgaW4geG1sQnVmZmVyQWRkCisgICAgICAgICAgICAgKiB3aWxsIGJsaW5kbHkgY29weSBleHRyYSBieXRlcyBmcm9tIG1lbW9yeS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHNpemUgPiBsZW4pIHsKKyAgICAgICAgICAgICAgICByZW1haW4gPSBzaXplIC0gbGVuOworICAgICAgICAgICAgICAgIHNpemUgPSBsZW47CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlbWFpbiA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwlyZXMgPXhtbFBhcnNlcklucHV0QnVmZmVyUHVzaChjdHh0LT5pbnB1dC0+YnVmLCBzaXplLCBjaHVuayk7CisJaWYgKHJlcyA8IDApIHsKKwkgICAgY3R4dC0+ZXJyTm8gPSBYTUxfUEFSU0VSX0VPRjsKKwkgICAgY3R4dC0+ZGlzYWJsZVNBWCA9IDE7CisJICAgIHJldHVybiAoWE1MX1BBUlNFUl9FT0YpOworCX0KKwljdHh0LT5pbnB1dC0+YmFzZSA9IGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudCArIGJhc2U7CisJY3R4dC0+aW5wdXQtPmN1ciA9IGN0eHQtPmlucHV0LT5iYXNlICsgY3VyOworCWN0eHQtPmlucHV0LT5lbmQgPQorCSAgICAmY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50W2N0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+dXNlXTsKKyNpZmRlZiBERUJVR19QVVNICisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJQUDogcHVzaGVkICVkXG4iLCBzaXplKTsKKyNlbmRpZgorCisgICAgfSBlbHNlIGlmIChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfRU9GKSB7CisJaWYgKChjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJiBjdHh0LT5pbnB1dC0+YnVmICE9IE5VTEwpIHsKKwkgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW4gPSBjdHh0LT5pbnB1dC0+YnVmOworCSAgICBpZiAoKGluLT5lbmNvZGVyICE9IE5VTEwpICYmIChpbi0+YnVmZmVyICE9IE5VTEwpICYmCisJCSAgICAoaW4tPnJhdyAhPSBOVUxMKSkgeworCQlpbnQgbmJjaGFyczsKKworCQluYmNoYXJzID0geG1sQ2hhckVuY0luRnVuYyhpbi0+ZW5jb2RlciwgaW4tPmJ1ZmZlciwgaW4tPnJhdyk7CisJCWlmIChuYmNoYXJzIDwgMCkgeworCQkgICAgLyogVE9ETyAyLjYuMCAqLworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJICAgICJ4bWxQYXJzZUNodW5rOiBlbmNvZGVyIGVycm9yXG4iKTsKKwkJICAgIHJldHVybihYTUxfRVJSX0lOVkFMSURfRU5DT0RJTkcpOworCQl9CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmIChyZW1haW4gIT0gMCkKKyAgICAgICAgeG1sUGFyc2VUcnlPckZpbmlzaChjdHh0LCAwKTsKKyAgICBlbHNlCisgICAgICAgIHhtbFBhcnNlVHJ5T3JGaW5pc2goY3R4dCwgdGVybWluYXRlKTsKKyAgICBpZiAoKGN0eHQtPmVyck5vICE9IFhNTF9FUlJfT0spICYmIChjdHh0LT5kaXNhYmxlU0FYID09IDEpKQorICAgICAgICByZXR1cm4oY3R4dC0+ZXJyTm8pOworCisgICAgaWYgKHJlbWFpbiAhPSAwKSB7CisgICAgICAgIGNodW5rICs9IHNpemU7CisgICAgICAgIHNpemUgPSByZW1haW47CisgICAgICAgIHJlbWFpbiA9IDA7CisgICAgICAgIGdvdG8geG1sZGVjbF9kb25lOworICAgIH0KKyAgICBpZiAoKGVuZF9pbl9sZiA9PSAxKSAmJiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPmlucHV0LT5idWYgIT0gTlVMTCkpIHsKKwl4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2goY3R4dC0+aW5wdXQtPmJ1ZiwgMSwgIlxyIik7CisgICAgfQorICAgIGlmICh0ZXJtaW5hdGUpIHsKKwkvKgorCSAqIENoZWNrIGZvciB0ZXJtaW5hdGlvbgorCSAqLworCWludCBhdmFpbCA9IDA7CisKKwlpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgeworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmJ1ZiA9PSBOVUxMKQorCQlhdmFpbCA9IGN0eHQtPmlucHV0LT5sZW5ndGggLQorCQkJKGN0eHQtPmlucHV0LT5jdXIgLSBjdHh0LT5pbnB1dC0+YmFzZSk7CisJICAgIGVsc2UKKwkJYXZhaWwgPSBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPnVzZSAtCisJCQkoY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlKTsKKwl9CisJCQkgICAgCisJaWYgKChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfRU9GKSAmJgorCSAgICAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0VQSUxPRykpIHsKKwkgICAgeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9ET0NVTUVOVF9FTkQsIE5VTEwpOworCX0gCisJaWYgKChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRVBJTE9HKSAmJiAoYXZhaWwgPiAwKSkgeworCSAgICB4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0RPQ1VNRU5UX0VORCwgTlVMTCk7CisJfQorCWlmIChjdHh0LT5pbnN0YXRlICE9IFhNTF9QQVJTRVJfRU9GKSB7CisJICAgIGlmICgoY3R4dC0+c2F4KSAmJiAoY3R4dC0+c2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKwkJY3R4dC0+c2F4LT5lbmREb2N1bWVudChjdHh0LT51c2VyRGF0YSk7CisJfQorCWN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKyAgICB9CisgICAgcmV0dXJuKCh4bWxQYXJzZXJFcnJvcnMpIGN0eHQtPmVyck5vKTsJICAgICAgCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQlJL08gZnJvbnQgZW5kIGZ1bmN0aW9ucyB0byB0aGUgcGFyc2VyCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0OgorICogQHNheDogIGEgU0FYIGhhbmRsZXIKKyAqIEB1c2VyX2RhdGE6ICBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MKKyAqIEBjaHVuazogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBjaGFycworICogQHNpemU6ICBudW1iZXIgb2YgY2hhcnMgaW4gdGhlIGFycmF5CisgKiBAZmlsZW5hbWU6ICBhbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJCisgKgorICogQ3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIHVzaW5nIHRoZSBYTUwgcGFyc2VyIGluIHB1c2ggbW9kZS4KKyAqIElmIEBidWZmZXIgYW5kIEBzaXplIGFyZSBub24tTlVMTCwgdGhlIGRhdGEgaXMgdXNlZCB0byBkZXRlY3QKKyAqIHRoZSBlbmNvZGluZy4gIFRoZSByZW1haW5pbmcgY2hhcmFjdGVycyB3aWxsIGJlIHBhcnNlZCBzbyB0aGV5CisgKiBkb24ndCBuZWVkIHRvIGJlIGZlZCBpbiBhZ2FpbiB0aHJvdWdoIHhtbFBhcnNlQ2h1bmsuCisgKiBUbyBhbGxvdyBjb250ZW50IGVuY29kaW5nIGRldGVjdGlvbiwgQHNpemUgc2hvdWxkIGJlID49IDQKKyAqIFRoZSB2YWx1ZSBvZiBAZmlsZW5hbWUgaXMgdXNlZCBmb3IgZmV0Y2hpbmcgZXh0ZXJuYWwgZW50aXRpZXMKKyAqIGFuZCBlcnJvci93YXJuaW5nIHJlcG9ydHMuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqLworCit4bWxQYXJzZXJDdHh0UHRyCit4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCh4bWxTQVhIYW5kbGVyUHRyIHNheCwgdm9pZCAqdXNlcl9kYXRhLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNodW5rLCBpbnQgc2l6ZSwgY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXRTdHJlYW07CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgYnVmOworICAgIHhtbENoYXJFbmNvZGluZyBlbmMgPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FOworCisgICAgLyoKKyAgICAgKiBwbHVnIHNvbWUgZW5jb2RpbmcgY29udmVyc2lvbiByb3V0aW5lcworICAgICAqLworICAgIGlmICgoY2h1bmsgIT0gTlVMTCkgJiYgKHNpemUgPj0gNCkpCisJZW5jID0geG1sRGV0ZWN0Q2hhckVuY29kaW5nKChjb25zdCB4bWxDaGFyICopIGNodW5rLCBzaXplKTsKKworICAgIGJ1ZiA9IHhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIoZW5jKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxFcnJNZW1vcnkoTlVMTCwgImNyZWF0aW5nIHBhcnNlcjogb3V0IG9mIG1lbW9yeVxuIik7CisJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBjdHh0LT5kaWN0TmFtZXMgPSAxOworICAgIGN0eHQtPnB1c2hUYWIgPSAodm9pZCAqKikgeG1sTWFsbG9jKGN0eHQtPm5hbWVNYXggKiAzICogc2l6ZW9mKHhtbENoYXIgKikpOworICAgIGlmIChjdHh0LT5wdXNoVGFiID09IE5VTEwpIHsKKyAgICAgICAgeG1sRXJyTWVtb3J5KGN0eHQsIE5VTEwpOworCXhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihidWYpOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHNheCAhPSBOVUxMKSB7CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorCWlmIChjdHh0LT5zYXggIT0gKHhtbFNBWEhhbmRsZXJQdHIpICZ4bWxEZWZhdWx0U0FYSGFuZGxlcikKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisJICAgIHhtbEZyZWUoY3R4dC0+c2F4KTsKKwljdHh0LT5zYXggPSAoeG1sU0FYSGFuZGxlclB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTQVhIYW5kbGVyKSk7CisJaWYgKGN0eHQtPnNheCA9PSBOVUxMKSB7CisJICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisJICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCW1lbXNldChjdHh0LT5zYXgsIDAsIHNpemVvZih4bWxTQVhIYW5kbGVyKSk7CisJaWYgKHNheC0+aW5pdGlhbGl6ZWQgPT0gWE1MX1NBWDJfTUFHSUMpCisJICAgIG1lbWNweShjdHh0LT5zYXgsIHNheCwgc2l6ZW9mKHhtbFNBWEhhbmRsZXIpKTsKKwllbHNlCisJICAgIG1lbWNweShjdHh0LT5zYXgsIHNheCwgc2l6ZW9mKHhtbFNBWEhhbmRsZXJWMSkpOworCWlmICh1c2VyX2RhdGEgIT0gTlVMTCkKKwkgICAgY3R4dC0+dXNlckRhdGEgPSB1c2VyX2RhdGE7CisgICAgfQkKKyAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkgeworCWN0eHQtPmRpcmVjdG9yeSA9IE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY3R4dC0+ZGlyZWN0b3J5ID0geG1sUGFyc2VyR2V0RGlyZWN0b3J5KGZpbGVuYW1lKTsKKyAgICB9CisKKyAgICBpbnB1dFN0cmVhbSA9IHhtbE5ld0lucHV0U3RyZWFtKGN0eHQpOworICAgIGlmIChpbnB1dFN0cmVhbSA9PSBOVUxMKSB7CisJeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKQorCWlucHV0U3RyZWFtLT5maWxlbmFtZSA9IE5VTEw7CisgICAgZWxzZSB7CisJaW5wdXRTdHJlYW0tPmZpbGVuYW1lID0gKGNoYXIgKikKKwkgICAgeG1sQ2Fub25pY1BhdGgoKGNvbnN0IHhtbENoYXIgKikgZmlsZW5hbWUpOworCWlmIChpbnB1dFN0cmVhbS0+ZmlsZW5hbWUgPT0gTlVMTCkgeworCSAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwkgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfQorICAgIGlucHV0U3RyZWFtLT5idWYgPSBidWY7CisgICAgaW5wdXRTdHJlYW0tPmJhc2UgPSBpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXRTdHJlYW0tPmN1ciA9IGlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICBpbnB1dFN0cmVhbS0+ZW5kID0gCisJJmlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPnVzZV07CisKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXRTdHJlYW0pOworCisgICAgLyoKKyAgICAgKiBJZiB0aGUgY2FsbGVyIGRpZG4ndCBwcm92aWRlIGFuIGluaXRpYWwgJ2NodW5rJyBmb3IgZGV0ZXJtaW5pbmcKKyAgICAgKiB0aGUgZW5jb2RpbmcsIHdlIHNldCB0aGUgY29udGV4dCB0byBYTUxfQ0hBUl9FTkNPRElOR19OT05FIHNvCisgICAgICogdGhhdCBpdCBjYW4gYmUgYXV0b21hdGljYWxseSBkZXRlcm1pbmVkIGxhdGVyCisgICAgICovCisgICAgaWYgKChzaXplID09IDApIHx8IChjaHVuayA9PSBOVUxMKSkgeworCWN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FOworICAgIH0gZWxzZSBpZiAoKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dC0+YnVmICE9IE5VTEwpKSB7CisJaW50IGJhc2UgPSBjdHh0LT5pbnB1dC0+YmFzZSAtIGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKwlpbnQgY3VyID0gY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlOworCisJeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoKGN0eHQtPmlucHV0LT5idWYsIHNpemUsIGNodW5rKTsJICAgICAgCisKKwljdHh0LT5pbnB1dC0+YmFzZSA9IGN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudCArIGJhc2U7CisJY3R4dC0+aW5wdXQtPmN1ciA9IGN0eHQtPmlucHV0LT5iYXNlICsgY3VyOworCWN0eHQtPmlucHV0LT5lbmQgPQorCSAgICAmY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50W2N0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+dXNlXTsKKyNpZmRlZiBERUJVR19QVVNICisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJQUDogcHVzaGVkICVkXG4iLCBzaXplKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlmIChlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkgeworICAgICAgICB4bWxTd2l0Y2hFbmNvZGluZyhjdHh0LCBlbmMpOworICAgIH0KKworICAgIHJldHVybihjdHh0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfUFVTSF9FTkFCTEVEICovCisKKy8qKgorICogeG1sU3RvcFBhcnNlcjoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogQmxvY2tzIGZ1cnRoZXIgcGFyc2VyIHByb2Nlc3NpbmcKKyAqLwordm9pZCAgICAgICAgICAgCit4bWxTdG9wUGFyc2VyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgY3R4dC0+ZGlzYWJsZVNBWCA9IDE7CisgICAgaWYgKGN0eHQtPmlucHV0ICE9IE5VTEwpIHsKKwljdHh0LT5pbnB1dC0+Y3VyID0gQkFEX0NBU1QiIjsKKwljdHh0LT5pbnB1dC0+YmFzZSA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgfQorfQorCisvKioKKyAqIHhtbENyZWF0ZUlPUGFyc2VyQ3R4dDoKKyAqIEBzYXg6ICBhIFNBWCBoYW5kbGVyCisgKiBAdXNlcl9kYXRhOiAgVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzCisgKiBAaW9yZWFkOiAgYW4gSS9PIHJlYWQgZnVuY3Rpb24KKyAqIEBpb2Nsb3NlOiAgYW4gSS9PIGNsb3NlIGZ1bmN0aW9uCisgKiBAaW9jdHg6ICBhbiBJL08gaGFuZGxlcgorICogQGVuYzogIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duCisgKgorICogQ3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIHVzaW5nIHRoZSBYTUwgcGFyc2VyIHdpdGggYW4gZXhpc3RpbmcKKyAqIEkvTyBzdHJlYW0KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTAorICovCit4bWxQYXJzZXJDdHh0UHRyCit4bWxDcmVhdGVJT1BhcnNlckN0eHQoeG1sU0FYSGFuZGxlclB0ciBzYXgsIHZvaWQgKnVzZXJfZGF0YSwKKwl4bWxJbnB1dFJlYWRDYWxsYmFjayAgIGlvcmVhZCwgeG1sSW5wdXRDbG9zZUNhbGxiYWNrICBpb2Nsb3NlLAorCXZvaWQgKmlvY3R4LCB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0U3RyZWFtOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICAKKyAgICBpZiAoaW9yZWFkID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIGJ1ZiA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8oaW9yZWFkLCBpb2Nsb3NlLCBpb2N0eCwgZW5jKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihidWYpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHNheCAhPSBOVUxMKSB7CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorCWlmIChjdHh0LT5zYXggIT0gKHhtbFNBWEhhbmRsZXJQdHIpICZ4bWxEZWZhdWx0U0FYSGFuZGxlcikKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisJICAgIHhtbEZyZWUoY3R4dC0+c2F4KTsKKwljdHh0LT5zYXggPSAoeG1sU0FYSGFuZGxlclB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTQVhIYW5kbGVyKSk7CisJaWYgKGN0eHQtPnNheCA9PSBOVUxMKSB7CisJICAgIHhtbEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbWVtc2V0KGN0eHQtPnNheCwgMCwgc2l6ZW9mKHhtbFNBWEhhbmRsZXIpKTsKKwlpZiAoc2F4LT5pbml0aWFsaXplZCA9PSBYTUxfU0FYMl9NQUdJQykKKwkgICAgbWVtY3B5KGN0eHQtPnNheCwgc2F4LCBzaXplb2YoeG1sU0FYSGFuZGxlcikpOworCWVsc2UKKwkgICAgbWVtY3B5KGN0eHQtPnNheCwgc2F4LCBzaXplb2YoeG1sU0FYSGFuZGxlclYxKSk7CisJaWYgKHVzZXJfZGF0YSAhPSBOVUxMKQorCSAgICBjdHh0LT51c2VyRGF0YSA9IHVzZXJfZGF0YTsKKyAgICB9CQorCisgICAgaW5wdXRTdHJlYW0gPSB4bWxOZXdJT0lucHV0U3RyZWFtKGN0eHQsIGJ1ZiwgZW5jKTsKKyAgICBpZiAoaW5wdXRTdHJlYW0gPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaW5wdXRQdXNoKGN0eHQsIGlucHV0U3RyZWFtKTsKKworICAgIHJldHVybihjdHh0KTsKK30KKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJRnJvbnQgZW5kcyB3aGVuIHBhcnNpbmcgYSBEVEQJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbElPUGFyc2VEVEQ6CisgKiBAc2F4OiAgdGhlIFNBWCBoYW5kbGVyIGJsb2NrIG9yIE5VTEwKKyAqIEBpbnB1dDogIGFuIElucHV0IEJ1ZmZlcgorICogQGVuYzogIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duCisgKgorICogTG9hZCBhbmQgcGFyc2UgYSBEVEQKKyAqIAorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIHhtbER0ZFB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKiBAaW5wdXQgd2lsbCBiZSBmcmVlZCBieSB0aGUgZnVuY3Rpb24gaW4gYW55IGNhc2UuCisgKi8KKworeG1sRHRkUHRyCit4bWxJT1BhcnNlRFREKHhtbFNBWEhhbmRsZXJQdHIgc2F4LCB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCwKKwkgICAgICB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgeG1sRHRkUHRyIHJldCA9IE5VTEw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIHhtbFBhcnNlcklucHV0UHRyIHBpbnB1dCA9IE5VTEw7CisgICAgeG1sQ2hhciBzdGFydFs0XTsKKworICAgIGlmIChpbnB1dCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFNldC11cCB0aGUgU0FYIGNvbnRleHQKKyAgICAgKi8KKyAgICBpZiAoc2F4ICE9IE5VTEwpIHsgCisJaWYgKGN0eHQtPnNheCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKGN0eHQtPnNheCk7CisgICAgICAgIGN0eHQtPnNheCA9IHNheDsKKyAgICAgICAgY3R4dC0+dXNlckRhdGEgPSBjdHh0OworICAgIH0KKyAgICB4bWxEZXRlY3RTQVgyKGN0eHQpOworCisgICAgLyoKKyAgICAgKiBnZW5lcmF0ZSBhIHBhcnNlciBpbnB1dCBmcm9tIHRoZSBJL08gaGFuZGxlcgorICAgICAqLworCisgICAgcGlucHV0ID0geG1sTmV3SU9JbnB1dFN0cmVhbShjdHh0LCBpbnB1dCwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKHBpbnB1dCA9PSBOVUxMKSB7CisgICAgICAgIGlmIChzYXggIT0gTlVMTCkgY3R4dC0+c2F4ID0gTlVMTDsKKyAgICAgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGlucHV0KTsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBwbHVnIHNvbWUgZW5jb2RpbmcgY29udmVyc2lvbiByb3V0aW5lcyBoZXJlLgorICAgICAqLworICAgIGlmICh4bWxQdXNoSW5wdXQoY3R4dCwgcGlucHV0KSA8IDApIHsKKyAgICAgICAgaWYgKHNheCAhPSBOVUxMKSBjdHh0LT5zYXggPSBOVUxMOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FKSB7CisgICAgICAgIHhtbFN3aXRjaEVuY29kaW5nKGN0eHQsIGVuYyk7CisgICAgfQorCisgICAgcGlucHV0LT5maWxlbmFtZSA9IE5VTEw7CisgICAgcGlucHV0LT5saW5lID0gMTsKKyAgICBwaW5wdXQtPmNvbCA9IDE7CisgICAgcGlucHV0LT5iYXNlID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICBwaW5wdXQtPmN1ciA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgcGlucHV0LT5mcmVlID0gTlVMTDsKKworICAgIC8qCisgICAgICogbGV0J3MgcGFyc2UgdGhhdCBlbnRpdHkga25vd2luZyBpdCdzIGFuIGV4dGVybmFsIHN1YnNldC4KKyAgICAgKi8KKyAgICBjdHh0LT5pblN1YnNldCA9IDI7CisgICAgY3R4dC0+bXlEb2MgPSB4bWxOZXdEb2MoQkFEX0NBU1QgIjEuMCIpOworICAgIGlmIChjdHh0LT5teURvYyA9PSBOVUxMKSB7CisJeG1sRXJyTWVtb3J5KGN0eHQsICJOZXcgRG9jIGZhaWxlZCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgY3R4dC0+bXlEb2MtPnByb3BlcnRpZXMgPSBYTUxfRE9DX0lOVEVSTkFMOworICAgIGN0eHQtPm15RG9jLT5leHRTdWJzZXQgPSB4bWxOZXdEdGQoY3R4dC0+bXlEb2MsIEJBRF9DQVNUICJub25lIiwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIm5vbmUiLCBCQURfQ0FTVCAibm9uZSIpOworCisgICAgaWYgKChlbmMgPT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkgJiYKKyAgICAgICAgKChjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1cikgPj0gNCkpIHsKKwkvKiAKKwkgKiBHZXQgdGhlIDQgZmlyc3QgYnl0ZXMgYW5kIGRlY29kZSB0aGUgY2hhcnNldAorCSAqIGlmIGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FCisJICogcGx1ZyBzb21lIGVuY29kaW5nIGNvbnZlcnNpb24gcm91dGluZXMuCisJICovCisJc3RhcnRbMF0gPSBSQVc7CisJc3RhcnRbMV0gPSBOWFQoMSk7CisJc3RhcnRbMl0gPSBOWFQoMik7CisJc3RhcnRbM10gPSBOWFQoMyk7CisJZW5jID0geG1sRGV0ZWN0Q2hhckVuY29kaW5nKHN0YXJ0LCA0KTsKKwlpZiAoZW5jICE9IFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpIHsKKwkgICAgeG1sU3dpdGNoRW5jb2RpbmcoY3R4dCwgZW5jKTsKKwl9CisgICAgfQorCisgICAgeG1sUGFyc2VFeHRlcm5hbFN1YnNldChjdHh0LCBCQURfQ0FTVCAibm9uZSIsIEJBRF9DQVNUICJub25lIik7CisKKyAgICBpZiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkgeworCWlmIChjdHh0LT53ZWxsRm9ybWVkKSB7CisJICAgIHJldCA9IGN0eHQtPm15RG9jLT5leHRTdWJzZXQ7CisJICAgIGN0eHQtPm15RG9jLT5leHRTdWJzZXQgPSBOVUxMOworCSAgICBpZiAocmV0ICE9IE5VTEwpIHsKKwkJeG1sTm9kZVB0ciB0bXA7CisKKwkJcmV0LT5kb2MgPSBOVUxMOworCQl0bXAgPSByZXQtPmNoaWxkcmVuOworCQl3aGlsZSAodG1wICE9IE5VTEwpIHsKKwkJICAgIHRtcC0+ZG9jID0gTlVMTDsKKwkJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwkJfQorCSAgICB9CisJfSBlbHNlIHsKKwkgICAgcmV0ID0gTlVMTDsKKwl9CisgICAgICAgIHhtbEZyZWVEb2MoY3R4dC0+bXlEb2MpOworICAgICAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkgY3R4dC0+c2F4ID0gTlVMTDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICAKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTQVhQYXJzZURURDoKKyAqIEBzYXg6ICB0aGUgU0FYIGhhbmRsZXIgYmxvY2sKKyAqIEBFeHRlcm5hbElEOiAgYSBOQU1FKiBjb250YWluaW5nIHRoZSBFeHRlcm5hbCBJRCBvZiB0aGUgRFRECisgKiBAU3lzdGVtSUQ6ICBhIE5BTUUqIGNvbnRhaW5pbmcgdGhlIFVSTCB0byB0aGUgRFRECisgKgorICogTG9hZCBhbmQgcGFyc2UgYW4gZXh0ZXJuYWwgc3Vic2V0LgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgeG1sRHRkUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworCit4bWxEdGRQdHIKK3htbFNBWFBhcnNlRFREKHhtbFNBWEhhbmRsZXJQdHIgc2F4LCBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkgeworICAgIHhtbER0ZFB0ciByZXQgPSBOVUxMOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCA9IE5VTEw7CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsKKyAgICB4bWxDaGFyKiBzeXN0ZW1JZENhbm9uaWM7CisKKyAgICBpZiAoKEV4dGVybmFsSUQgPT0gTlVMTCkgJiYgKFN5c3RlbUlEID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisKKyAgICBjdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTZXQtdXAgdGhlIFNBWCBjb250ZXh0CisgICAgICovCisgICAgaWYgKHNheCAhPSBOVUxMKSB7IAorCWlmIChjdHh0LT5zYXggIT0gTlVMTCkKKwkgICAgeG1sRnJlZShjdHh0LT5zYXgpOworICAgICAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgICAgIGN0eHQtPnVzZXJEYXRhID0gY3R4dDsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBDYW5vbmljYWxpc2UgdGhlIHN5c3RlbSBJRAorICAgICAqLworICAgIHN5c3RlbUlkQ2Fub25pYyA9IHhtbENhbm9uaWNQYXRoKFN5c3RlbUlEKTsKKyAgICBpZiAoKFN5c3RlbUlEICE9IE5VTEwpICYmIChzeXN0ZW1JZENhbm9uaWMgPT0gTlVMTCkpIHsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBc2sgdGhlIEVudGl0eSByZXNvbHZlciB0byBsb2FkIHRoZSBkYW1uIHRoaW5nCisgICAgICovCisKKyAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5yZXNvbHZlRW50aXR5ICE9IE5VTEwpKQorCWlucHV0ID0gY3R4dC0+c2F4LT5yZXNvbHZlRW50aXR5KGN0eHQtPnVzZXJEYXRhLCBFeHRlcm5hbElELAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbUlkQ2Fub25pYyk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKyAgICAgICAgaWYgKHNheCAhPSBOVUxMKSBjdHh0LT5zYXggPSBOVUxMOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCWlmIChzeXN0ZW1JZENhbm9uaWMgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShzeXN0ZW1JZENhbm9uaWMpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIHBsdWcgc29tZSBlbmNvZGluZyBjb252ZXJzaW9uIHJvdXRpbmVzIGhlcmUuCisgICAgICovCisgICAgaWYgKHhtbFB1c2hJbnB1dChjdHh0LCBpbnB1dCkgPCAwKSB7CisgICAgICAgIGlmIChzYXggIT0gTlVMTCkgY3R4dC0+c2F4ID0gTlVMTDsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlpZiAoc3lzdGVtSWRDYW5vbmljICE9IE5VTEwpCisJICAgIHhtbEZyZWUoc3lzdGVtSWRDYW5vbmljKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICgoY3R4dC0+aW5wdXQtPmVuZCAtIGN0eHQtPmlucHV0LT5jdXIpID49IDQpIHsKKwllbmMgPSB4bWxEZXRlY3RDaGFyRW5jb2RpbmcoY3R4dC0+aW5wdXQtPmN1ciwgNCk7CisJeG1sU3dpdGNoRW5jb2RpbmcoY3R4dCwgZW5jKTsKKyAgICB9CisKKyAgICBpZiAoaW5wdXQtPmZpbGVuYW1lID09IE5VTEwpCisJaW5wdXQtPmZpbGVuYW1lID0gKGNoYXIgKikgc3lzdGVtSWRDYW5vbmljOworICAgIGVsc2UKKwl4bWxGcmVlKHN5c3RlbUlkQ2Fub25pYyk7CisgICAgaW5wdXQtPmxpbmUgPSAxOworICAgIGlucHV0LT5jb2wgPSAxOworICAgIGlucHV0LT5iYXNlID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICBpbnB1dC0+Y3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICBpbnB1dC0+ZnJlZSA9IE5VTEw7CisKKyAgICAvKgorICAgICAqIGxldCdzIHBhcnNlIHRoYXQgZW50aXR5IGtub3dpbmcgaXQncyBhbiBleHRlcm5hbCBzdWJzZXQuCisgICAgICovCisgICAgY3R4dC0+aW5TdWJzZXQgPSAyOworICAgIGN0eHQtPm15RG9jID0geG1sTmV3RG9jKEJBRF9DQVNUICIxLjAiKTsKKyAgICBpZiAoY3R4dC0+bXlEb2MgPT0gTlVMTCkgeworCXhtbEVyck1lbW9yeShjdHh0LCAiTmV3IERvYyBmYWlsZWQiKTsKKyAgICAgICAgaWYgKHNheCAhPSBOVUxMKSBjdHh0LT5zYXggPSBOVUxMOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgY3R4dC0+bXlEb2MtPnByb3BlcnRpZXMgPSBYTUxfRE9DX0lOVEVSTkFMOworICAgIGN0eHQtPm15RG9jLT5leHRTdWJzZXQgPSB4bWxOZXdEdGQoY3R4dC0+bXlEb2MsIEJBRF9DQVNUICJub25lIiwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxJRCwgU3lzdGVtSUQpOworICAgIHhtbFBhcnNlRXh0ZXJuYWxTdWJzZXQoY3R4dCwgRXh0ZXJuYWxJRCwgU3lzdGVtSUQpOworCisgICAgaWYgKGN0eHQtPm15RG9jICE9IE5VTEwpIHsKKwlpZiAoY3R4dC0+d2VsbEZvcm1lZCkgeworCSAgICByZXQgPSBjdHh0LT5teURvYy0+ZXh0U3Vic2V0OworCSAgICBjdHh0LT5teURvYy0+ZXh0U3Vic2V0ID0gTlVMTDsKKwkgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJCXhtbE5vZGVQdHIgdG1wOworCisJCXJldC0+ZG9jID0gTlVMTDsKKwkJdG1wID0gcmV0LT5jaGlsZHJlbjsKKwkJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJCSAgICB0bXAtPmRvYyA9IE5VTEw7CisJCSAgICB0bXAgPSB0bXAtPm5leHQ7CisJCX0KKwkgICAgfQorCX0gZWxzZSB7CisJICAgIHJldCA9IE5VTEw7CisJfQorICAgICAgICB4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKyAgICAgICAgY3R4dC0+bXlEb2MgPSBOVUxMOworICAgIH0KKyAgICBpZiAoc2F4ICE9IE5VTEwpIGN0eHQtPnNheCA9IE5VTEw7CisgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworCisvKioKKyAqIHhtbFBhcnNlRFREOgorICogQEV4dGVybmFsSUQ6ICBhIE5BTUUqIGNvbnRhaW5pbmcgdGhlIEV4dGVybmFsIElEIG9mIHRoZSBEVEQKKyAqIEBTeXN0ZW1JRDogIGEgTkFNRSogY29udGFpbmluZyB0aGUgVVJMIHRvIHRoZSBEVEQKKyAqCisgKiBMb2FkIGFuZCBwYXJzZSBhbiBleHRlcm5hbCBzdWJzZXQuCisgKgorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIHhtbER0ZFB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KKworeG1sRHRkUHRyCit4bWxQYXJzZURURChjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkgeworICAgIHJldHVybih4bWxTQVhQYXJzZURURChOVUxMLCBFeHRlcm5hbElELCBTeXN0ZW1JRCkpOworfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQlGcm9udCBlbmRzIHdoZW4gcGFyc2luZyBhbiBFbnRpdHkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHk6CisgKiBAY3R4OiAgdGhlIGV4aXN0aW5nIHBhcnNpbmcgY29udGV4dAorICogQFVSTDogIHRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZAorICogQElEOiAgdGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkCisgKiBAbHN0OiAgdGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIHNldCBvZiBwYXJzZWQgbm9kZXMKKyAqCisgKiBQYXJzZSBhbiBleHRlcm5hbCBnZW5lcmFsIGVudGl0eSB3aXRoaW4gYW4gZXhpc3RpbmcgcGFyc2luZyBjb250ZXh0CisgKiBBbiBleHRlcm5hbCBnZW5lcmFsIHBhcnNlZCBlbnRpdHkgaXMgd2VsbC1mb3JtZWQgaWYgaXQgbWF0Y2hlcyB0aGUKKyAqIHByb2R1Y3Rpb24gbGFiZWxlZCBleHRQYXJzZWRFbnQuCisgKgorICogWzc4XSBleHRQYXJzZWRFbnQgOjo9IFRleHREZWNsPyBjb250ZW50CisgKgorICogUmV0dXJucyAwIGlmIHRoZSBlbnRpdHkgaXMgd2VsbCBmb3JtZWQsIC0xIGluIGNhc2Ugb2YgYXJncyBwcm9ibGVtIGFuZAorICogICAgdGhlIHBhcnNlciBlcnJvciBjb2RlIG90aGVyd2lzZQorICovCisKK2ludAoreG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkoeG1sUGFyc2VyQ3R4dFB0ciBjdHgsIGNvbnN0IHhtbENoYXIgKlVSTCwKKwkgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpJRCwgeG1sTm9kZVB0ciAqbHN0KSB7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIHhtbERvY1B0ciBuZXdEb2M7CisgICAgeG1sTm9kZVB0ciBuZXdSb290OworICAgIHhtbFNBWEhhbmRsZXJQdHIgb2xkc2F4ID0gTlVMTDsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICB4bWxDaGFyIHN0YXJ0WzRdOworICAgIHhtbENoYXJFbmNvZGluZyBlbmM7CisKKyAgICBpZiAoY3R4ID09IE5VTEwpIHJldHVybigtMSk7CisKKyAgICBpZiAoKChjdHgtPmRlcHRoID4gNDApICYmICgoY3R4LT5vcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpID09IDApKSB8fAorICAgICAgICAoY3R4LT5kZXB0aCA+IDEwMjQpKSB7CisJcmV0dXJuKFhNTF9FUlJfRU5USVRZX0xPT1ApOworICAgIH0KKworICAgIGlmIChsc3QgIT0gTlVMTCkKKyAgICAgICAgKmxzdCA9IE5VTEw7CisgICAgaWYgKChVUkwgPT0gTlVMTCkgJiYgKElEID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgaWYgKGN0eC0+bXlEb2MgPT0gTlVMTCkgLyogQEAgcmVsYXggYnV0IGNoZWNrIGZvciBkZXJlZmVyZW5jZXMgKi8KKwlyZXR1cm4oLTEpOworCisgICAgY3R4dCA9IHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHRJbnRlcm5hbChVUkwsIElELCBOVUxMLCBjdHgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIG9sZHNheCA9IGN0eHQtPnNheDsKKyAgICBjdHh0LT5zYXggPSBjdHgtPnNheDsKKyAgICB4bWxEZXRlY3RTQVgyKGN0eHQpOworICAgIG5ld0RvYyA9IHhtbE5ld0RvYyhCQURfQ0FTVCAiMS4wIik7CisgICAgaWYgKG5ld0RvYyA9PSBOVUxMKSB7CisJeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgbmV3RG9jLT5wcm9wZXJ0aWVzID0gWE1MX0RPQ19JTlRFUk5BTDsKKyAgICBpZiAoY3R4LT5teURvYy0+ZGljdCkgeworCW5ld0RvYy0+ZGljdCA9IGN0eC0+bXlEb2MtPmRpY3Q7CisJeG1sRGljdFJlZmVyZW5jZShuZXdEb2MtPmRpY3QpOworICAgIH0KKyAgICBpZiAoY3R4LT5teURvYyAhPSBOVUxMKSB7CisJbmV3RG9jLT5pbnRTdWJzZXQgPSBjdHgtPm15RG9jLT5pbnRTdWJzZXQ7CisJbmV3RG9jLT5leHRTdWJzZXQgPSBjdHgtPm15RG9jLT5leHRTdWJzZXQ7CisgICAgfQorICAgIGlmIChjdHgtPm15RG9jLT5VUkwgIT0gTlVMTCkgeworCW5ld0RvYy0+VVJMID0geG1sU3RyZHVwKGN0eC0+bXlEb2MtPlVSTCk7CisgICAgfQorICAgIG5ld1Jvb3QgPSB4bWxOZXdEb2NOb2RlKG5ld0RvYywgTlVMTCwgQkFEX0NBU1QgInBzZXVkb3Jvb3QiLCBOVUxMKTsKKyAgICBpZiAobmV3Um9vdCA9PSBOVUxMKSB7CisJY3R4dC0+c2F4ID0gb2xkc2F4OworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCW5ld0RvYy0+aW50U3Vic2V0ID0gTlVMTDsKKwluZXdEb2MtPmV4dFN1YnNldCA9IE5VTEw7CisgICAgICAgIHhtbEZyZWVEb2MobmV3RG9jKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB4bWxBZGRDaGlsZCgoeG1sTm9kZVB0cikgbmV3RG9jLCBuZXdSb290KTsKKyAgICBub2RlUHVzaChjdHh0LCBuZXdEb2MtPmNoaWxkcmVuKTsKKyAgICBpZiAoY3R4LT5teURvYyA9PSBOVUxMKSB7CisJY3R4dC0+bXlEb2MgPSBuZXdEb2M7CisgICAgfSBlbHNlIHsKKwljdHh0LT5teURvYyA9IGN0eC0+bXlEb2M7CisJbmV3RG9jLT5jaGlsZHJlbi0+ZG9jID0gY3R4LT5teURvYzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEdldCB0aGUgNCBmaXJzdCBieXRlcyBhbmQgZGVjb2RlIHRoZSBjaGFyc2V0CisgICAgICogaWYgZW5jICE9IFhNTF9DSEFSX0VOQ09ESU5HX05PTkUKKyAgICAgKiBwbHVnIHNvbWUgZW5jb2RpbmcgY29udmVyc2lvbiByb3V0aW5lcy4KKyAgICAgKi8KKyAgICBHUk9XCisgICAgaWYgKChjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1cikgPj0gNCkgeworCXN0YXJ0WzBdID0gUkFXOworCXN0YXJ0WzFdID0gTlhUKDEpOworCXN0YXJ0WzJdID0gTlhUKDIpOworCXN0YXJ0WzNdID0gTlhUKDMpOworCWVuYyA9IHhtbERldGVjdENoYXJFbmNvZGluZyhzdGFydCwgNCk7CisJaWYgKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FKSB7CisJICAgIHhtbFN3aXRjaEVuY29kaW5nKGN0eHQsIGVuYyk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogUGFyc2UgYSBwb3NzaWJsZSB0ZXh0IGRlY2xhcmF0aW9uIGZpcnN0CisgICAgICovCisgICAgaWYgKChDTVA1KENVUl9QVFIsICc8JywgJz8nLCAneCcsICdtJywgJ2wnKSkgJiYgKElTX0JMQU5LX0NIKE5YVCg1KSkpKSB7CisJeG1sUGFyc2VUZXh0RGVjbChjdHh0KTsKKwkvKgorCSAqIEFuIFhNTC0xLjAgZG9jdW1lbnQgY2FuJ3QgcmVmZXJlbmNlIGFuIGVudGl0eSBub3QgWE1MLTEuMAorCSAqLworCWlmICgoeG1sU3RyRXF1YWwoY3R4LT52ZXJzaW9uLCBCQURfQ0FTVCAiMS4wIikpICYmCisJICAgICgheG1sU3RyRXF1YWwoY3R4dC0+aW5wdXQtPnZlcnNpb24sIEJBRF9DQVNUICIxLjAiKSkpIHsKKwkgICAgeG1sRmF0YWxFcnJNc2coY3R4dCwgWE1MX0VSUl9WRVJTSU9OX01JU01BVENILCAKKwkgICAgICAgICAgICAgICAgICAgIlZlcnNpb24gbWlzbWF0Y2ggYmV0d2VlbiBkb2N1bWVudCBhbmQgZW50aXR5XG4iKTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBEb2luZyB2YWxpZGl0eSBjaGVja2luZyBvbiBjaHVuayBkb2Vzbid0IG1ha2Ugc2Vuc2UKKyAgICAgKi8KKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgIGN0eHQtPnZhbGlkYXRlID0gY3R4LT52YWxpZGF0ZTsKKyAgICBjdHh0LT52YWxpZCA9IGN0eC0+dmFsaWQ7CisgICAgY3R4dC0+bG9hZHN1YnNldCA9IGN0eC0+bG9hZHN1YnNldDsKKyAgICBjdHh0LT5kZXB0aCA9IGN0eC0+ZGVwdGggKyAxOworICAgIGN0eHQtPnJlcGxhY2VFbnRpdGllcyA9IGN0eC0+cmVwbGFjZUVudGl0aWVzOworICAgIGlmIChjdHh0LT52YWxpZGF0ZSkgeworCWN0eHQtPnZjdHh0LmVycm9yID0gY3R4LT52Y3R4dC5lcnJvcjsKKwljdHh0LT52Y3R4dC53YXJuaW5nID0gY3R4LT52Y3R4dC53YXJuaW5nOworICAgIH0gZWxzZSB7CisJY3R4dC0+dmN0eHQuZXJyb3IgPSBOVUxMOworCWN0eHQtPnZjdHh0Lndhcm5pbmcgPSBOVUxMOworICAgIH0KKyAgICBjdHh0LT52Y3R4dC5ub2RlVGFiID0gTlVMTDsKKyAgICBjdHh0LT52Y3R4dC5ub2RlTnIgPSAwOworICAgIGN0eHQtPnZjdHh0Lm5vZGVNYXggPSAwOworICAgIGN0eHQtPnZjdHh0Lm5vZGUgPSBOVUxMOworICAgIGlmIChjdHh0LT5kaWN0ICE9IE5VTEwpIHhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworICAgIGN0eHQtPmRpY3QgPSBjdHgtPmRpY3Q7CisgICAgY3R4dC0+c3RyX3htbCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgQkFEX0NBU1QgInhtbCIsIDMpOworICAgIGN0eHQtPnN0cl94bWxucyA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgQkFEX0NBU1QgInhtbG5zIiwgNSk7CisgICAgY3R4dC0+c3RyX3htbF9ucyA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgWE1MX1hNTF9OQU1FU1BBQ0UsIDM2KTsKKyAgICBjdHh0LT5kaWN0TmFtZXMgPSBjdHgtPmRpY3ROYW1lczsKKyAgICBjdHh0LT5hdHRzRGVmYXVsdCA9IGN0eC0+YXR0c0RlZmF1bHQ7CisgICAgY3R4dC0+YXR0c1NwZWNpYWwgPSBjdHgtPmF0dHNTcGVjaWFsOworICAgIGN0eHQtPmxpbmVudW1iZXJzID0gY3R4LT5saW5lbnVtYmVyczsKKworICAgIHhtbFBhcnNlQ29udGVudChjdHh0KTsKKworICAgIGN0eC0+dmFsaWRhdGUgPSBjdHh0LT52YWxpZGF0ZTsKKyAgICBjdHgtPnZhbGlkID0gY3R4dC0+dmFsaWQ7CisgICAgaWYgKChSQVcgPT0gJzwnKSAmJiAoTlhUKDEpID09ICcvJykpIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VELCBOVUxMKTsKKyAgICB9IGVsc2UgaWYgKFJBVyAhPSAwKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9FWFRSQV9DT05URU5ULCBOVUxMKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPm5vZGUgIT0gbmV3RG9jLT5jaGlsZHJlbikgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTk9UX1dFTExfQkFMQU5DRUQsIE5VTEwpOworICAgIH0KKworICAgIGlmICghY3R4dC0+d2VsbEZvcm1lZCkgeworICAgICAgICBpZiAoY3R4dC0+ZXJyTm8gPT0gMCkKKwkgICAgcmV0ID0gMTsKKwllbHNlCisJICAgIHJldCA9IGN0eHQtPmVyck5vOworICAgIH0gZWxzZSB7CisJaWYgKGxzdCAhPSBOVUxMKSB7CisJICAgIHhtbE5vZGVQdHIgY3VyOworCisJICAgIC8qCisJICAgICAqIFJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBub2Rlc2V0IGFmdGVyIHVubGlua2luZyBpdCBmcm9tCisJICAgICAqIHRoZXkgcHNldWRvIHBhcmVudC4KKwkgICAgICovCisJICAgIGN1ciA9IG5ld0RvYy0+Y2hpbGRyZW4tPmNoaWxkcmVuOworCSAgICAqbHN0ID0gY3VyOworCSAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkJY3VyLT5wYXJlbnQgPSBOVUxMOworCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKyAgICAgICAgICAgIG5ld0RvYy0+Y2hpbGRyZW4tPmNoaWxkcmVuID0gTlVMTDsKKwl9CisJcmV0ID0gMDsKKyAgICB9CisgICAgY3R4dC0+c2F4ID0gb2xkc2F4OworICAgIGN0eHQtPmRpY3QgPSBOVUxMOworICAgIGN0eHQtPmF0dHNEZWZhdWx0ID0gTlVMTDsKKyAgICBjdHh0LT5hdHRzU3BlY2lhbCA9IE5VTEw7CisgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgbmV3RG9jLT5pbnRTdWJzZXQgPSBOVUxMOworICAgIG5ld0RvYy0+ZXh0U3Vic2V0ID0gTlVMTDsKKyAgICB4bWxGcmVlRG9jKG5ld0RvYyk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXJzZUV4dGVybmFsRW50aXR5UHJpdmF0ZToKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgdGhlIGNodW5rIHBlcnRhaW5zIHRvCisgKiBAb2xkY3R4dDogIHRoZSBwcmV2aW91cyBwYXJzZXIgY29udGV4dCBpZiBhdmFpbGFibGUKKyAqIEBzYXg6ICB0aGUgU0FYIGhhbmRsZXIgYmxvYyAocG9zc2libHkgTlVMTCkKKyAqIEB1c2VyX2RhdGE6ICBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MgKHBvc3NpYmx5IE5VTEwpCisgKiBAZGVwdGg6ICBVc2VkIGZvciBsb29wIGRldGVjdGlvbiwgdXNlIDAKKyAqIEBVUkw6ICB0aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQKKyAqIEBJRDogIHRoZSBTeXN0ZW0gSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZAorICogQGxpc3Q6ICB0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlcworICoKKyAqIFByaXZhdGUgdmVyc2lvbiBvZiB4bWxQYXJzZUV4dGVybmFsRW50aXR5KCkKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGVudGl0eSBpcyB3ZWxsIGZvcm1lZCwgLTEgaW4gY2FzZSBvZiBhcmdzIHByb2JsZW0gYW5kCisgKiAgICB0aGUgcGFyc2VyIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KKworc3RhdGljIHhtbFBhcnNlckVycm9ycworeG1sUGFyc2VFeHRlcm5hbEVudGl0eVByaXZhdGUoeG1sRG9jUHRyIGRvYywgeG1sUGFyc2VyQ3R4dFB0ciBvbGRjdHh0LAorCSAgICAgICAgICAgICAgeG1sU0FYSGFuZGxlclB0ciBzYXgsCisJCSAgICAgIHZvaWQgKnVzZXJfZGF0YSwgaW50IGRlcHRoLCBjb25zdCB4bWxDaGFyICpVUkwsCisJCSAgICAgIGNvbnN0IHhtbENoYXIgKklELCB4bWxOb2RlUHRyICpsaXN0KSB7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIHhtbERvY1B0ciBuZXdEb2M7CisgICAgeG1sTm9kZVB0ciBuZXdSb290OworICAgIHhtbFNBWEhhbmRsZXJQdHIgb2xkc2F4ID0gTlVMTDsKKyAgICB4bWxQYXJzZXJFcnJvcnMgcmV0ID0gWE1MX0VSUl9PSzsKKyAgICB4bWxDaGFyIHN0YXJ0WzRdOworICAgIHhtbENoYXJFbmNvZGluZyBlbmM7CisKKyAgICBpZiAoKChkZXB0aCA+IDQwKSAmJgorCSgob2xkY3R4dCA9PSBOVUxMKSB8fCAob2xkY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9IVUdFKSA9PSAwKSkgfHwKKwkoZGVwdGggPiAxMDI0KSkgeworCXJldHVybihYTUxfRVJSX0VOVElUWV9MT09QKTsKKyAgICB9CisKKyAgICBpZiAobGlzdCAhPSBOVUxMKQorICAgICAgICAqbGlzdCA9IE5VTEw7CisgICAgaWYgKChVUkwgPT0gTlVMTCkgJiYgKElEID09IE5VTEwpKQorCXJldHVybihYTUxfRVJSX0lOVEVSTkFMX0VSUk9SKTsKKyAgICBpZiAoZG9jID09IE5VTEwpCisJcmV0dXJuKFhNTF9FUlJfSU5URVJOQUxfRVJST1IpOworCisKKyAgICBjdHh0ID0geG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dEludGVybmFsKFVSTCwgSUQsIE5VTEwsIG9sZGN0eHQpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybihYTUxfV0FSX1VOREVDTEFSRURfRU5USVRZKTsKKyAgICBjdHh0LT51c2VyRGF0YSA9IGN0eHQ7CisgICAgaWYgKG9sZGN0eHQgIT0gTlVMTCkgeworCWN0eHQtPl9wcml2YXRlID0gb2xkY3R4dC0+X3ByaXZhdGU7CisJY3R4dC0+bG9hZHN1YnNldCA9IG9sZGN0eHQtPmxvYWRzdWJzZXQ7CisJY3R4dC0+dmFsaWRhdGUgPSBvbGRjdHh0LT52YWxpZGF0ZTsKKwljdHh0LT5leHRlcm5hbCA9IG9sZGN0eHQtPmV4dGVybmFsOworCWN0eHQtPnJlY29yZF9pbmZvID0gb2xkY3R4dC0+cmVjb3JkX2luZm87CisJY3R4dC0+bm9kZV9zZXEubWF4aW11bSA9IG9sZGN0eHQtPm5vZGVfc2VxLm1heGltdW07CisJY3R4dC0+bm9kZV9zZXEubGVuZ3RoID0gb2xkY3R4dC0+bm9kZV9zZXEubGVuZ3RoOworCWN0eHQtPm5vZGVfc2VxLmJ1ZmZlciA9IG9sZGN0eHQtPm5vZGVfc2VxLmJ1ZmZlcjsKKyAgICB9IGVsc2UgeworCS8qCisJICogRG9pbmcgdmFsaWRpdHkgY2hlY2tpbmcgb24gY2h1bmsgd2l0aG91dCBjb250ZXh0CisJICogZG9lc24ndCBtYWtlIHNlbnNlCisJICovCisJY3R4dC0+X3ByaXZhdGUgPSBOVUxMOworCWN0eHQtPnZhbGlkYXRlID0gMDsKKwljdHh0LT5leHRlcm5hbCA9IDI7CisJY3R4dC0+bG9hZHN1YnNldCA9IDA7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkgeworCW9sZHNheCA9IGN0eHQtPnNheDsKKyAgICAgICAgY3R4dC0+c2F4ID0gc2F4OworCWlmICh1c2VyX2RhdGEgIT0gTlVMTCkKKwkgICAgY3R4dC0+dXNlckRhdGEgPSB1c2VyX2RhdGE7CisgICAgfQorICAgIHhtbERldGVjdFNBWDIoY3R4dCk7CisgICAgbmV3RG9jID0geG1sTmV3RG9jKEJBRF9DQVNUICIxLjAiKTsKKyAgICBpZiAobmV3RG9jID09IE5VTEwpIHsKKwljdHh0LT5ub2RlX3NlcS5tYXhpbXVtID0gMDsKKwljdHh0LT5ub2RlX3NlcS5sZW5ndGggPSAwOworCWN0eHQtPm5vZGVfc2VxLmJ1ZmZlciA9IE5VTEw7CisJeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJcmV0dXJuKFhNTF9FUlJfSU5URVJOQUxfRVJST1IpOworICAgIH0KKyAgICBuZXdEb2MtPnByb3BlcnRpZXMgPSBYTUxfRE9DX0lOVEVSTkFMOworICAgIG5ld0RvYy0+aW50U3Vic2V0ID0gZG9jLT5pbnRTdWJzZXQ7CisgICAgbmV3RG9jLT5leHRTdWJzZXQgPSBkb2MtPmV4dFN1YnNldDsKKyAgICBuZXdEb2MtPmRpY3QgPSBkb2MtPmRpY3Q7CisgICAgeG1sRGljdFJlZmVyZW5jZShuZXdEb2MtPmRpY3QpOworCisgICAgaWYgKGRvYy0+VVJMICE9IE5VTEwpIHsKKwluZXdEb2MtPlVSTCA9IHhtbFN0cmR1cChkb2MtPlVSTCk7CisgICAgfQorICAgIG5ld1Jvb3QgPSB4bWxOZXdEb2NOb2RlKG5ld0RvYywgTlVMTCwgQkFEX0NBU1QgInBzZXVkb3Jvb3QiLCBOVUxMKTsKKyAgICBpZiAobmV3Um9vdCA9PSBOVUxMKSB7CisJaWYgKHNheCAhPSBOVUxMKQorCSAgICBjdHh0LT5zYXggPSBvbGRzYXg7CisJY3R4dC0+bm9kZV9zZXEubWF4aW11bSA9IDA7CisJY3R4dC0+bm9kZV9zZXEubGVuZ3RoID0gMDsKKwljdHh0LT5ub2RlX3NlcS5idWZmZXIgPSBOVUxMOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCW5ld0RvYy0+aW50U3Vic2V0ID0gTlVMTDsKKwluZXdEb2MtPmV4dFN1YnNldCA9IE5VTEw7CisgICAgICAgIHhtbEZyZWVEb2MobmV3RG9jKTsKKwlyZXR1cm4oWE1MX0VSUl9JTlRFUk5BTF9FUlJPUik7CisgICAgfQorICAgIHhtbEFkZENoaWxkKCh4bWxOb2RlUHRyKSBuZXdEb2MsIG5ld1Jvb3QpOworICAgIG5vZGVQdXNoKGN0eHQsIG5ld0RvYy0+Y2hpbGRyZW4pOworICAgIGN0eHQtPm15RG9jID0gZG9jOworICAgIG5ld1Jvb3QtPmRvYyA9IGRvYzsKKworICAgIC8qCisgICAgICogR2V0IHRoZSA0IGZpcnN0IGJ5dGVzIGFuZCBkZWNvZGUgdGhlIGNoYXJzZXQKKyAgICAgKiBpZiBlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORQorICAgICAqIHBsdWcgc29tZSBlbmNvZGluZyBjb252ZXJzaW9uIHJvdXRpbmVzLgorICAgICAqLworICAgIEdST1c7CisgICAgaWYgKChjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1cikgPj0gNCkgeworCXN0YXJ0WzBdID0gUkFXOworCXN0YXJ0WzFdID0gTlhUKDEpOworCXN0YXJ0WzJdID0gTlhUKDIpOworCXN0YXJ0WzNdID0gTlhUKDMpOworCWVuYyA9IHhtbERldGVjdENoYXJFbmNvZGluZyhzdGFydCwgNCk7CisJaWYgKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19OT05FKSB7CisJICAgIHhtbFN3aXRjaEVuY29kaW5nKGN0eHQsIGVuYyk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogUGFyc2UgYSBwb3NzaWJsZSB0ZXh0IGRlY2xhcmF0aW9uIGZpcnN0CisgICAgICovCisgICAgaWYgKChDTVA1KENVUl9QVFIsICc8JywgJz8nLCAneCcsICdtJywgJ2wnKSkgJiYgKElTX0JMQU5LX0NIKE5YVCg1KSkpKSB7CisJeG1sUGFyc2VUZXh0RGVjbChjdHh0KTsKKyAgICB9CisKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgIGN0eHQtPmRlcHRoID0gZGVwdGg7CisKKyAgICB4bWxQYXJzZUNvbnRlbnQoY3R4dCk7CisKKyAgICBpZiAoKFJBVyA9PSAnPCcpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTk9UX1dFTExfQkFMQU5DRUQsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoUkFXICE9IDApIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVFJBX0NPTlRFTlQsIE5VTEwpOworICAgIH0KKyAgICBpZiAoY3R4dC0+bm9kZSAhPSBuZXdEb2MtPmNoaWxkcmVuKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRCwgTlVMTCk7CisgICAgfQorCisgICAgaWYgKCFjdHh0LT53ZWxsRm9ybWVkKSB7CisgICAgICAgIGlmIChjdHh0LT5lcnJObyA9PSAwKQorCSAgICByZXQgPSBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SOworCWVsc2UKKwkgICAgcmV0ID0gKHhtbFBhcnNlckVycm9ycyljdHh0LT5lcnJObzsKKyAgICB9IGVsc2UgeworCWlmIChsaXN0ICE9IE5VTEwpIHsKKwkgICAgeG1sTm9kZVB0ciBjdXI7CisKKwkgICAgLyoKKwkgICAgICogUmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG5vZGVzZXQgYWZ0ZXIgdW5saW5raW5nIGl0IGZyb20KKwkgICAgICogdGhleSBwc2V1ZG8gcGFyZW50LgorCSAgICAgKi8KKwkgICAgY3VyID0gbmV3RG9jLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisJICAgICpsaXN0ID0gY3VyOworCSAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkJY3VyLT5wYXJlbnQgPSBOVUxMOworCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKyAgICAgICAgICAgIG5ld0RvYy0+Y2hpbGRyZW4tPmNoaWxkcmVuID0gTlVMTDsKKwl9CisJcmV0ID0gWE1MX0VSUl9PSzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlY29yZCBpbiB0aGUgcGFyZW50IGNvbnRleHQgdGhlIG51bWJlciBvZiBlbnRpdGllcyByZXBsYWNlbWVudAorICAgICAqIGRvbmUgd2hlbiBwYXJzaW5nIHRoYXQgcmVmZXJlbmNlLgorICAgICAqLworICAgIGlmIChvbGRjdHh0ICE9IE5VTEwpCisgICAgICAgIG9sZGN0eHQtPm5iZW50aXRpZXMgKz0gY3R4dC0+bmJlbnRpdGllczsKKworICAgIC8qCisgICAgICogQWxzbyByZWNvcmQgdGhlIHNpemUgb2YgdGhlIGVudGl0eSBwYXJzZWQKKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgeworCW9sZGN0eHQtPnNpemVlbnRpdGllcyArPSBjdHh0LT5pbnB1dC0+Y29uc3VtZWQ7CisJb2xkY3R4dC0+c2l6ZWVudGl0aWVzICs9IChjdHh0LT5pbnB1dC0+Y3VyIC0gY3R4dC0+aW5wdXQtPmJhc2UpOworICAgIH0KKyAgICAvKgorICAgICAqIEFuZCByZWNvcmQgdGhlIGxhc3QgZXJyb3IgaWYgYW55CisgICAgICovCisgICAgaWYgKGN0eHQtPmxhc3RFcnJvci5jb2RlICE9IFhNTF9FUlJfT0spCisgICAgICAgIHhtbENvcHlFcnJvcigmY3R4dC0+bGFzdEVycm9yLCAmb2xkY3R4dC0+bGFzdEVycm9yKTsKKworICAgIGlmIChzYXggIT0gTlVMTCkgCisJY3R4dC0+c2F4ID0gb2xkc2F4OworICAgIG9sZGN0eHQtPm5vZGVfc2VxLm1heGltdW0gPSBjdHh0LT5ub2RlX3NlcS5tYXhpbXVtOworICAgIG9sZGN0eHQtPm5vZGVfc2VxLmxlbmd0aCA9IGN0eHQtPm5vZGVfc2VxLmxlbmd0aDsKKyAgICBvbGRjdHh0LT5ub2RlX3NlcS5idWZmZXIgPSBjdHh0LT5ub2RlX3NlcS5idWZmZXI7CisgICAgY3R4dC0+bm9kZV9zZXEubWF4aW11bSA9IDA7CisgICAgY3R4dC0+bm9kZV9zZXEubGVuZ3RoID0gMDsKKyAgICBjdHh0LT5ub2RlX3NlcS5idWZmZXIgPSBOVUxMOworICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIG5ld0RvYy0+aW50U3Vic2V0ID0gTlVMTDsKKyAgICBuZXdEb2MtPmV4dFN1YnNldCA9IE5VTEw7CisgICAgeG1sRnJlZURvYyhuZXdEb2MpOworCisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisvKioKKyAqIHhtbFBhcnNlRXh0ZXJuYWxFbnRpdHk6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50IHRoZSBjaHVuayBwZXJ0YWlucyB0bworICogQHNheDogIHRoZSBTQVggaGFuZGxlciBibG9jIChwb3NzaWJseSBOVUxMKQorICogQHVzZXJfZGF0YTogIFRoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcyAocG9zc2libHkgTlVMTCkKKyAqIEBkZXB0aDogIFVzZWQgZm9yIGxvb3AgZGV0ZWN0aW9uLCB1c2UgMAorICogQFVSTDogIHRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZAorICogQElEOiAgdGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkCisgKiBAbHN0OiAgdGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIHNldCBvZiBwYXJzZWQgbm9kZXMKKyAqCisgKiBQYXJzZSBhbiBleHRlcm5hbCBnZW5lcmFsIGVudGl0eQorICogQW4gZXh0ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlCisgKiBwcm9kdWN0aW9uIGxhYmVsZWQgZXh0UGFyc2VkRW50LgorICoKKyAqIFs3OF0gZXh0UGFyc2VkRW50IDo6PSBUZXh0RGVjbD8gY29udGVudAorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgZW50aXR5IGlzIHdlbGwgZm9ybWVkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQKKyAqICAgIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkoeG1sRG9jUHRyIGRvYywgeG1sU0FYSGFuZGxlclB0ciBzYXgsIHZvaWQgKnVzZXJfZGF0YSwKKwkgIGludCBkZXB0aCwgY29uc3QgeG1sQ2hhciAqVVJMLCBjb25zdCB4bWxDaGFyICpJRCwgeG1sTm9kZVB0ciAqbHN0KSB7CisgICAgcmV0dXJuKHhtbFBhcnNlRXh0ZXJuYWxFbnRpdHlQcml2YXRlKGRvYywgTlVMTCwgc2F4LCB1c2VyX2RhdGEsIGRlcHRoLCBVUkwsCisJCSAgICAgICAgICAgICAgICAgICAgICAgSUQsIGxzdCkpOworfQorCisvKioKKyAqIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeToKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgdGhlIGNodW5rIHBlcnRhaW5zIHRvCisgKiBAc2F4OiAgdGhlIFNBWCBoYW5kbGVyIGJsb2MgKHBvc3NpYmx5IE5VTEwpCisgKiBAdXNlcl9kYXRhOiAgVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzIChwb3NzaWJseSBOVUxMKQorICogQGRlcHRoOiAgVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwCisgKiBAc3RyaW5nOiAgdGhlIGlucHV0IHN0cmluZyBpbiBVVEY4IG9yIElTTy1MYXRpbiAoemVybyB0ZXJtaW5hdGVkKQorICogQGxzdDogIHRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzCisgKgorICogUGFyc2UgYSB3ZWxsLWJhbGFuY2VkIGNodW5rIG9mIGFuIFhNTCBkb2N1bWVudAorICogY2FsbGVkIGJ5IHRoZSBwYXJzZXIKKyAqIFRoZSBhbGxvd2VkIHNlcXVlbmNlIGZvciB0aGUgV2VsbCBCYWxhbmNlZCBDaHVuayBpcyB0aGUgb25lIGRlZmluZWQgYnkKKyAqIHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOgorICoKKyAqIFs0M10gY29udGVudCA6Oj0gKGVsZW1lbnQgfCBDaGFyRGF0YSB8IFJlZmVyZW5jZSB8IENEU2VjdCB8IFBJIHwgQ29tbWVudCkqCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjaHVuayBpcyB3ZWxsIGJhbGFuY2VkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQKKyAqICAgIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSh4bWxEb2NQdHIgZG9jLCB4bWxTQVhIYW5kbGVyUHRyIHNheCwKKyAgICAgdm9pZCAqdXNlcl9kYXRhLCBpbnQgZGVwdGgsIGNvbnN0IHhtbENoYXIgKnN0cmluZywgeG1sTm9kZVB0ciAqbHN0KSB7CisgICAgcmV0dXJuIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIoIGRvYywgc2F4LCB1c2VyX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aCwgc3RyaW5nLCBsc3QsIDAgKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisKKy8qKgorICogeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5SW50ZXJuYWw6CisgKiBAb2xkY3R4dDogIHRoZSBleGlzdGluZyBwYXJzaW5nIGNvbnRleHQKKyAqIEBzdHJpbmc6ICB0aGUgaW5wdXQgc3RyaW5nIGluIFVURjggb3IgSVNPLUxhdGluICh6ZXJvIHRlcm1pbmF0ZWQpCisgKiBAdXNlcl9kYXRhOiAgdGhlIHVzZXIgZGF0YSBmaWVsZCBmb3IgdGhlIHBhcnNlciBjb250ZXh0CisgKiBAbHN0OiAgdGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIHNldCBvZiBwYXJzZWQgbm9kZXMKKyAqCisgKgorICogUGFyc2UgYSB3ZWxsLWJhbGFuY2VkIGNodW5rIG9mIGFuIFhNTCBkb2N1bWVudAorICogY2FsbGVkIGJ5IHRoZSBwYXJzZXIKKyAqIFRoZSBhbGxvd2VkIHNlcXVlbmNlIGZvciB0aGUgV2VsbCBCYWxhbmNlZCBDaHVuayBpcyB0aGUgb25lIGRlZmluZWQgYnkKKyAqIHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOgorICoKKyAqIFs0M10gY29udGVudCA6Oj0gKGVsZW1lbnQgfCBDaGFyRGF0YSB8IFJlZmVyZW5jZSB8IENEU2VjdCB8IFBJIHwgQ29tbWVudCkqCisgKgorICogUmV0dXJucyBYTUxfRVJSX09LIGlmIHRoZSBjaHVuayBpcyB3ZWxsIGJhbGFuY2VkLCBhbmQgdGhlIHBhcnNlcgorICogZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqCisgKiBJbiBjYXNlIHJlY292ZXIgaXMgc2V0IHRvIDEsIHRoZSBub2RlbGlzdCB3aWxsIG5vdCBiZSBlbXB0eSBldmVuIGlmCisgKiB0aGUgcGFyc2VkIGNodW5rIGlzIG5vdCB3ZWxsIGJhbGFuY2VkLgorICovCitzdGF0aWMgeG1sUGFyc2VyRXJyb3JzCit4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlJbnRlcm5hbCh4bWxQYXJzZXJDdHh0UHRyIG9sZGN0eHQsCisJY29uc3QgeG1sQ2hhciAqc3RyaW5nLCB2b2lkICp1c2VyX2RhdGEsIHhtbE5vZGVQdHIgKmxzdCkgeworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxEb2NQdHIgbmV3RG9jID0gTlVMTDsKKyAgICB4bWxOb2RlUHRyIG5ld1Jvb3Q7CisgICAgeG1sU0FYSGFuZGxlclB0ciBvbGRzYXggPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY29udGVudCA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBsYXN0ID0gTlVMTDsKKyAgICBpbnQgc2l6ZTsKKyAgICB4bWxQYXJzZXJFcnJvcnMgcmV0ID0gWE1MX0VSUl9PSzsKKyNpZmRlZiBTQVgyCisgICAgaW50IGk7CisjZW5kaWYKKworICAgIGlmICgoKG9sZGN0eHQtPmRlcHRoID4gNDApICYmICgob2xkY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9IVUdFKSA9PSAwKSkgfHwKKyAgICAgICAgKG9sZGN0eHQtPmRlcHRoID4gIDEwMjQpKSB7CisJcmV0dXJuKFhNTF9FUlJfRU5USVRZX0xPT1ApOworICAgIH0KKworCisgICAgaWYgKGxzdCAhPSBOVUxMKQorICAgICAgICAqbHN0ID0gTlVMTDsKKyAgICBpZiAoc3RyaW5nID09IE5VTEwpCisgICAgICAgIHJldHVybihYTUxfRVJSX0lOVEVSTkFMX0VSUk9SKTsKKworICAgIHNpemUgPSB4bWxTdHJsZW4oc3RyaW5nKTsKKworICAgIGN0eHQgPSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KChjaGFyICopIHN0cmluZywgc2l6ZSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKFhNTF9XQVJfVU5ERUNMQVJFRF9FTlRJVFkpOworICAgIGlmICh1c2VyX2RhdGEgIT0gTlVMTCkKKwljdHh0LT51c2VyRGF0YSA9IHVzZXJfZGF0YTsKKyAgICBlbHNlCisJY3R4dC0+dXNlckRhdGEgPSBjdHh0OworICAgIGlmIChjdHh0LT5kaWN0ICE9IE5VTEwpIHhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworICAgIGN0eHQtPmRpY3QgPSBvbGRjdHh0LT5kaWN0OworICAgIGN0eHQtPnN0cl94bWwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJ4bWwiLCAzKTsKKyAgICBjdHh0LT5zdHJfeG1sbnMgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJ4bWxucyIsIDUpOworICAgIGN0eHQtPnN0cl94bWxfbnMgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIFhNTF9YTUxfTkFNRVNQQUNFLCAzNik7CisKKyNpZmRlZiBTQVgyCisgICAgLyogcHJvcGFnYXRlIG5hbWVzcGFjZXMgZG93biB0aGUgZW50aXR5ICovCisgICAgZm9yIChpID0gMDtpIDwgb2xkY3R4dC0+bnNOcjtpICs9IDIpIHsKKyAgICAgICAgbnNQdXNoKGN0eHQsIG9sZGN0eHQtPm5zVGFiW2ldLCBvbGRjdHh0LT5uc1RhYltpKzFdKTsKKyAgICB9CisjZW5kaWYKKworICAgIG9sZHNheCA9IGN0eHQtPnNheDsKKyAgICBjdHh0LT5zYXggPSBvbGRjdHh0LT5zYXg7CisgICAgeG1sRGV0ZWN0U0FYMihjdHh0KTsKKyAgICBjdHh0LT5yZXBsYWNlRW50aXRpZXMgPSBvbGRjdHh0LT5yZXBsYWNlRW50aXRpZXM7CisgICAgY3R4dC0+b3B0aW9ucyA9IG9sZGN0eHQtPm9wdGlvbnM7CisKKyAgICBjdHh0LT5fcHJpdmF0ZSA9IG9sZGN0eHQtPl9wcml2YXRlOworICAgIGlmIChvbGRjdHh0LT5teURvYyA9PSBOVUxMKSB7CisJbmV3RG9jID0geG1sTmV3RG9jKEJBRF9DQVNUICIxLjAiKTsKKwlpZiAobmV3RG9jID09IE5VTEwpIHsKKwkgICAgY3R4dC0+c2F4ID0gb2xkc2F4OworCSAgICBjdHh0LT5kaWN0ID0gTlVMTDsKKwkgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJICAgIHJldHVybihYTUxfRVJSX0lOVEVSTkFMX0VSUk9SKTsKKwl9CisJbmV3RG9jLT5wcm9wZXJ0aWVzID0gWE1MX0RPQ19JTlRFUk5BTDsKKwluZXdEb2MtPmRpY3QgPSBjdHh0LT5kaWN0OworCXhtbERpY3RSZWZlcmVuY2UobmV3RG9jLT5kaWN0KTsKKwljdHh0LT5teURvYyA9IG5ld0RvYzsKKyAgICB9IGVsc2UgeworCWN0eHQtPm15RG9jID0gb2xkY3R4dC0+bXlEb2M7CisgICAgICAgIGNvbnRlbnQgPSBjdHh0LT5teURvYy0+Y2hpbGRyZW47CisJbGFzdCA9IGN0eHQtPm15RG9jLT5sYXN0OworICAgIH0KKyAgICBuZXdSb290ID0geG1sTmV3RG9jTm9kZShjdHh0LT5teURvYywgTlVMTCwgQkFEX0NBU1QgInBzZXVkb3Jvb3QiLCBOVUxMKTsKKyAgICBpZiAobmV3Um9vdCA9PSBOVUxMKSB7CisJY3R4dC0+c2F4ID0gb2xkc2F4OworCWN0eHQtPmRpY3QgPSBOVUxMOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCWlmIChuZXdEb2MgIT0gTlVMTCkgeworCSAgICB4bWxGcmVlRG9jKG5ld0RvYyk7CisJfQorCXJldHVybihYTUxfRVJSX0lOVEVSTkFMX0VSUk9SKTsKKyAgICB9CisgICAgY3R4dC0+bXlEb2MtPmNoaWxkcmVuID0gTlVMTDsKKyAgICBjdHh0LT5teURvYy0+bGFzdCA9IE5VTEw7CisgICAgeG1sQWRkQ2hpbGQoKHhtbE5vZGVQdHIpIGN0eHQtPm15RG9jLCBuZXdSb290KTsKKyAgICBub2RlUHVzaChjdHh0LCBjdHh0LT5teURvYy0+Y2hpbGRyZW4pOworICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0NPTlRFTlQ7CisgICAgY3R4dC0+ZGVwdGggPSBvbGRjdHh0LT5kZXB0aCArIDE7CisKKyAgICBjdHh0LT52YWxpZGF0ZSA9IDA7CisgICAgY3R4dC0+bG9hZHN1YnNldCA9IG9sZGN0eHQtPmxvYWRzdWJzZXQ7CisgICAgaWYgKChvbGRjdHh0LT52YWxpZGF0ZSkgfHwgKG9sZGN0eHQtPnJlcGxhY2VFbnRpdGllcyAhPSAwKSkgeworCS8qCisJICogSUQvSURSRUYgcmVnaXN0cmF0aW9uIHdpbGwgYmUgZG9uZSBpbiB4bWxWYWxpZGF0ZUVsZW1lbnQgYmVsb3cKKwkgKi8KKwljdHh0LT5sb2Fkc3Vic2V0IHw9IFhNTF9TS0lQX0lEUzsKKyAgICB9CisgICAgY3R4dC0+ZGljdE5hbWVzID0gb2xkY3R4dC0+ZGljdE5hbWVzOworICAgIGN0eHQtPmF0dHNEZWZhdWx0ID0gb2xkY3R4dC0+YXR0c0RlZmF1bHQ7CisgICAgY3R4dC0+YXR0c1NwZWNpYWwgPSBvbGRjdHh0LT5hdHRzU3BlY2lhbDsKKworICAgIHhtbFBhcnNlQ29udGVudChjdHh0KTsKKyAgICBpZiAoKFJBVyA9PSAnPCcpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTk9UX1dFTExfQkFMQU5DRUQsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoUkFXICE9IDApIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVFJBX0NPTlRFTlQsIE5VTEwpOworICAgIH0KKyAgICBpZiAoY3R4dC0+bm9kZSAhPSBjdHh0LT5teURvYy0+Y2hpbGRyZW4pIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VELCBOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoIWN0eHQtPndlbGxGb3JtZWQpIHsKKyAgICAgICAgaWYgKGN0eHQtPmVyck5vID09IDApCisJICAgIHJldCA9IFhNTF9FUlJfSU5URVJOQUxfRVJST1I7CisJZWxzZQorCSAgICByZXQgPSAoeG1sUGFyc2VyRXJyb3JzKWN0eHQtPmVyck5vOworICAgIH0gZWxzZSB7CisgICAgICByZXQgPSBYTUxfRVJSX09LOworICAgIH0KKworICAgIGlmICgobHN0ICE9IE5VTEwpICYmIChyZXQgPT0gWE1MX0VSUl9PSykpIHsKKwl4bWxOb2RlUHRyIGN1cjsKKworCS8qCisJICogUmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG5vZGVzZXQgYWZ0ZXIgdW5saW5raW5nIGl0IGZyb20KKwkgKiB0aGV5IHBzZXVkbyBwYXJlbnQuCisJICovCisJY3VyID0gY3R4dC0+bXlEb2MtPmNoaWxkcmVuLT5jaGlsZHJlbjsKKwkqbHN0ID0gY3VyOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisJICAgIGlmICgob2xkY3R4dC0+dmFsaWRhdGUpICYmIChvbGRjdHh0LT53ZWxsRm9ybWVkKSAmJgorCQkob2xkY3R4dC0+bXlEb2MpICYmIChvbGRjdHh0LT5teURvYy0+aW50U3Vic2V0KSAmJgorCQkoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKSB7CisJCW9sZGN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlRWxlbWVudCgmb2xkY3R4dC0+dmN0eHQsCisJCQlvbGRjdHh0LT5teURvYywgY3VyKTsKKwkgICAgfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisJICAgIGN1ci0+cGFyZW50ID0gTlVMTDsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKwljdHh0LT5teURvYy0+Y2hpbGRyZW4tPmNoaWxkcmVuID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGN0eHQtPm15RG9jICE9IE5VTEwpIHsKKwl4bWxGcmVlTm9kZShjdHh0LT5teURvYy0+Y2hpbGRyZW4pOworICAgICAgICBjdHh0LT5teURvYy0+Y2hpbGRyZW4gPSBjb250ZW50OworICAgICAgICBjdHh0LT5teURvYy0+bGFzdCA9IGxhc3Q7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBSZWNvcmQgaW4gdGhlIHBhcmVudCBjb250ZXh0IHRoZSBudW1iZXIgb2YgZW50aXRpZXMgcmVwbGFjZW1lbnQKKyAgICAgKiBkb25lIHdoZW4gcGFyc2luZyB0aGF0IHJlZmVyZW5jZS4KKyAgICAgKi8KKyAgICBpZiAob2xkY3R4dCAhPSBOVUxMKQorICAgICAgICBvbGRjdHh0LT5uYmVudGl0aWVzICs9IGN0eHQtPm5iZW50aXRpZXM7CisKKyAgICAvKgorICAgICAqIEFsc28gcmVjb3JkIHRoZSBsYXN0IGVycm9yIGlmIGFueQorICAgICAqLworICAgIGlmIChjdHh0LT5sYXN0RXJyb3IuY29kZSAhPSBYTUxfRVJSX09LKQorICAgICAgICB4bWxDb3B5RXJyb3IoJmN0eHQtPmxhc3RFcnJvciwgJm9sZGN0eHQtPmxhc3RFcnJvcik7CisKKyAgICBjdHh0LT5zYXggPSBvbGRzYXg7CisgICAgY3R4dC0+ZGljdCA9IE5VTEw7CisgICAgY3R4dC0+YXR0c0RlZmF1bHQgPSBOVUxMOworICAgIGN0eHQtPmF0dHNTcGVjaWFsID0gTlVMTDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICBpZiAobmV3RG9jICE9IE5VTEwpIHsKKwl4bWxGcmVlRG9jKG5ld0RvYyk7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VJbk5vZGVDb250ZXh0OgorICogQG5vZGU6ICB0aGUgY29udGV4dCBub2RlCisgKiBAZGF0YTogIHRoZSBpbnB1dCBzdHJpbmcKKyAqIEBkYXRhbGVuOiAgdGhlIGlucHV0IHN0cmluZyBsZW5ndGggaW4gYnl0ZXMKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24KKyAqIEBsc3Q6ICB0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlcworICoKKyAqIFBhcnNlIGEgd2VsbC1iYWxhbmNlZCBjaHVuayBvZiBhbiBYTUwgZG9jdW1lbnQKKyAqIHdpdGhpbiB0aGUgY29udGV4dCAoRFRELCBuYW1lc3BhY2VzLCBldGMgLi4uKSBvZiB0aGUgZ2l2ZW4gbm9kZS4KKyAqCisgKiBUaGUgYWxsb3dlZCBzZXF1ZW5jZSBmb3IgdGhlIGRhdGEgaXMgYSBXZWxsIEJhbGFuY2VkIENodW5rIGRlZmluZWQgYnkKKyAqIHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOgorICoKKyAqIFs0M10gY29udGVudCA6Oj0gKGVsZW1lbnQgfCBDaGFyRGF0YSB8IFJlZmVyZW5jZSB8IENEU2VjdCB8IFBJIHwgQ29tbWVudCkqCisgKgorICogUmV0dXJucyBYTUxfRVJSX09LIGlmIHRoZSBjaHVuayBpcyB3ZWxsIGJhbGFuY2VkLCBhbmQgdGhlIHBhcnNlcgorICogZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworeG1sUGFyc2VyRXJyb3JzCit4bWxQYXJzZUluTm9kZUNvbnRleHQoeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgZGF0YWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucywgeG1sTm9kZVB0ciAqbHN0KSB7CisjaWZkZWYgU0FYMgorICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jID0gTlVMTDsKKyAgICB4bWxOb2RlUHRyIGZha2UsIGN1cjsKKyAgICBpbnQgbnNuciA9IDA7CisKKyAgICB4bWxQYXJzZXJFcnJvcnMgcmV0ID0gWE1MX0VSUl9PSzsKKworICAgIC8qCisgICAgICogY2hlY2sgYWxsIGlucHV0IHBhcmFtZXRlcnMsIGdyYWIgdGhlIGRvY3VtZW50CisgICAgICovCisgICAgaWYgKChsc3QgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkgfHwgKGRhdGEgPT0gTlVMTCkgfHwgKGRhdGFsZW4gPCAwKSkKKyAgICAgICAgcmV0dXJuKFhNTF9FUlJfSU5URVJOQUxfRVJST1IpOworICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuKFhNTF9FUlJfSU5URVJOQUxfRVJST1IpOworCisgICAgfQorICAgIHdoaWxlICgobm9kZSAhPSBOVUxMKSAmJiAobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorICAgICAgICAgICAobm9kZS0+dHlwZSAhPSBYTUxfRE9DVU1FTlRfTk9ERSkgJiYKKwkgICAobm9kZS0+dHlwZSAhPSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkKKwlub2RlID0gbm9kZS0+cGFyZW50OworICAgIGlmIChub2RlID09IE5VTEwpCisJcmV0dXJuKFhNTF9FUlJfSU5URVJOQUxfRVJST1IpOworICAgIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisJZG9jID0gbm9kZS0+ZG9jOworICAgIGVsc2UKKyAgICAgICAgZG9jID0gKHhtbERvY1B0cikgbm9kZTsKKyAgICBpZiAoZG9jID09IE5VTEwpCisJcmV0dXJuKFhNTF9FUlJfSU5URVJOQUxfRVJST1IpOworCisgICAgLyoKKyAgICAgKiBhbGxvY2F0ZSBhIGNvbnRleHQgYW5kIHNldC11cCBldmVyeXRoaW5nIG5vdCByZWxhdGVkIHRvIHRoZQorICAgICAqIG5vZGUgcG9zaXRpb24gaW4gdGhlIHRyZWUKKyAgICAgKi8KKyAgICBpZiAoZG9jLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKQorCWN0eHQgPSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KChjaGFyICopIGRhdGEsIGRhdGFsZW4pOworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICBlbHNlIGlmIChkb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworCWN0eHQgPSBodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCgoY2hhciAqKSBkYXRhLCBkYXRhbGVuKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2hlbiBwYXJzaW5nIGluIGNvbnRleHQsIGl0IG1ha2VzIG5vIHNlbnNlIHRvIGFkZCBpbXBsaWVkCisgICAgICAgICAqIGVsZW1lbnRzIGxpa2UgaHRtbC9ib2R5L2V0Yy4uLgorICAgICAgICAgKi8KKyAgICAgICAgb3B0aW9ucyB8PSBIVE1MX1BBUlNFX05PSU1QTElFRDsKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldHVybihYTUxfRVJSX0lOVEVSTkFMX0VSUk9SKTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybihYTUxfRVJSX05PX01FTU9SWSk7CisKKyAgICAvKgorICAgICAqIFVzZSBpbnB1dCBkb2MncyBkaWN0IGlmIHByZXNlbnQsIGVsc2UgYXNzdXJlIFhNTF9QQVJTRV9OT0RJQ1QgaXMgc2V0LgorICAgICAqIFdlIG5lZWQgYSBkaWN0aW9uYXJ5IGZvciB4bWxEZXRlY3RTQVgyLCBzbyBpZiB0aGVyZSdzIG5vIGRvYyBkaWN0CisgICAgICogd2UgbXVzdCB3YWl0IHVudGlsIHRoZSBsYXN0IG1vbWVudCB0byBmcmVlIHRoZSBvcmlnaW5hbCBvbmUuCisgICAgICovCisgICAgaWYgKGRvYy0+ZGljdCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChjdHh0LT5kaWN0ICE9IE5VTEwpCisJICAgIHhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworCWN0eHQtPmRpY3QgPSBkb2MtPmRpY3Q7CisgICAgfSBlbHNlCisgICAgICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX05PRElDVDsKKworICAgIGlmIChkb2MtPmVuY29kaW5nICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoZGxyOworCisgICAgICAgIGlmIChjdHh0LT5lbmNvZGluZyAhPSBOVUxMKQorCSAgICB4bWxGcmVlKCh4bWxDaGFyICopIGN0eHQtPmVuY29kaW5nKTsKKyAgICAgICAgY3R4dC0+ZW5jb2RpbmcgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgZG9jLT5lbmNvZGluZyk7CisKKyAgICAgICAgaGRsciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGRvYy0+ZW5jb2RpbmcpOworICAgICAgICBpZiAoaGRsciAhPSBOVUxMKSB7CisgICAgICAgICAgICB4bWxTd2l0Y2hUb0VuY29kaW5nKGN0eHQsIGhkbHIpOworCX0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4oWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB4bWxDdHh0VXNlT3B0aW9uc0ludGVybmFsKGN0eHQsIG9wdGlvbnMsIE5VTEwpOworICAgIHhtbERldGVjdFNBWDIoY3R4dCk7CisgICAgY3R4dC0+bXlEb2MgPSBkb2M7CisKKyAgICBmYWtlID0geG1sTmV3Q29tbWVudChOVUxMKTsKKyAgICBpZiAoZmFrZSA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihYTUxfRVJSX05PX01FTU9SWSk7CisgICAgfQorICAgIHhtbEFkZENoaWxkKG5vZGUsIGZha2UpOworCisgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCW5vZGVQdXNoKGN0eHQsIG5vZGUpOworCS8qCisJICogaW5pdGlhbGl6ZSB0aGUgU0FYMiBuYW1lc3BhY2VzIHN0YWNrCisJICovCisJY3VyID0gbm9kZTsKKwl3aGlsZSAoKGN1ciAhPSBOVUxMKSAmJiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKSB7CisJICAgIHhtbE5zUHRyIG5zID0gY3VyLT5uc0RlZjsKKwkgICAgY29uc3QgeG1sQ2hhciAqaXByZWZpeCwgKmlocmVmOworCisJICAgIHdoaWxlIChucyAhPSBOVUxMKSB7CisJCWlmIChjdHh0LT5kaWN0KSB7CisJCSAgICBpcHJlZml4ID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBucy0+cHJlZml4LCAtMSk7CisJCSAgICBpaHJlZiA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgbnMtPmhyZWYsIC0xKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlwcmVmaXggPSBucy0+cHJlZml4OworCQkgICAgaWhyZWYgPSBucy0+aHJlZjsKKwkJfQorCisJICAgICAgICBpZiAoeG1sR2V0TmFtZXNwYWNlKGN0eHQsIGlwcmVmaXgpID09IE5VTEwpIHsKKwkJICAgIG5zUHVzaChjdHh0LCBpcHJlZml4LCBpaHJlZik7CisJCSAgICBuc25yKys7CisJCX0KKwkJbnMgPSBucy0+bmV4dDsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItPnBhcmVudDsKKwl9CisJY3R4dC0+aW5zdGF0ZSA9IFhNTF9QQVJTRVJfQ09OVEVOVDsKKyAgICB9CisKKyAgICBpZiAoKGN0eHQtPnZhbGlkYXRlKSB8fCAoY3R4dC0+cmVwbGFjZUVudGl0aWVzICE9IDApKSB7CisJLyoKKwkgKiBJRC9JRFJFRiByZWdpc3RyYXRpb24gd2lsbCBiZSBkb25lIGluIHhtbFZhbGlkYXRlRWxlbWVudCBiZWxvdworCSAqLworCWN0eHQtPmxvYWRzdWJzZXQgfD0gWE1MX1NLSVBfSURTOworICAgIH0KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICBpZiAoZG9jLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpCisgICAgICAgIF9faHRtbFBhcnNlQ29udGVudChjdHh0KTsKKyAgICBlbHNlCisjZW5kaWYKKwl4bWxQYXJzZUNvbnRlbnQoY3R4dCk7CisKKyAgICBuc1BvcChjdHh0LCBuc25yKTsKKyAgICBpZiAoKFJBVyA9PSAnPCcpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfTk9UX1dFTExfQkFMQU5DRUQsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoUkFXICE9IDApIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX0VYVFJBX0NPTlRFTlQsIE5VTEwpOworICAgIH0KKyAgICBpZiAoKGN0eHQtPm5vZGUgIT0gTlVMTCkgJiYgKGN0eHQtPm5vZGUgIT0gbm9kZSkpIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VELCBOVUxMKTsKKwljdHh0LT53ZWxsRm9ybWVkID0gMDsKKyAgICB9CisKKyAgICBpZiAoIWN0eHQtPndlbGxGb3JtZWQpIHsKKyAgICAgICAgaWYgKGN0eHQtPmVyck5vID09IDApCisJICAgIHJldCA9IFhNTF9FUlJfSU5URVJOQUxfRVJST1I7CisJZWxzZQorCSAgICByZXQgPSAoeG1sUGFyc2VyRXJyb3JzKWN0eHQtPmVyck5vOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IFhNTF9FUlJfT0s7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBSZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgbm9kZXNldCBhZnRlciB1bmxpbmtpbmcgaXQgZnJvbQorICAgICAqIHRoZSBwc2V1ZG8gc2libGluZy4KKyAgICAgKi8KKworICAgIGN1ciA9IGZha2UtPm5leHQ7CisgICAgZmFrZS0+bmV4dCA9IE5VTEw7CisgICAgbm9kZS0+bGFzdCA9IGZha2U7CisKKyAgICBpZiAoY3VyICE9IE5VTEwpIHsKKwljdXItPnByZXYgPSBOVUxMOworICAgIH0KKworICAgICpsc3QgPSBjdXI7CisKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwljdXItPnBhcmVudCA9IE5VTEw7CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KKworICAgIHhtbFVubGlua05vZGUoZmFrZSk7CisgICAgeG1sRnJlZU5vZGUoZmFrZSk7CisKKworICAgIGlmIChyZXQgIT0gWE1MX0VSUl9PSykgeworICAgICAgICB4bWxGcmVlTm9kZUxpc3QoKmxzdCk7CisJKmxzdCA9IE5VTEw7CisgICAgfQorCisgICAgaWYgKGRvYy0+ZGljdCAhPSBOVUxMKQorICAgICAgICBjdHh0LT5kaWN0ID0gTlVMTDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKworICAgIHJldHVybihyZXQpOworI2Vsc2UgLyogIVNBWDIgKi8KKyAgICByZXR1cm4oWE1MX0VSUl9JTlRFUk5BTF9FUlJPUik7CisjZW5kaWYKK30KKworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKy8qKgorICogeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlcjoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgdGhlIGNodW5rIHBlcnRhaW5zIHRvCisgKiBAc2F4OiAgdGhlIFNBWCBoYW5kbGVyIGJsb2MgKHBvc3NpYmx5IE5VTEwpCisgKiBAdXNlcl9kYXRhOiAgVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzIChwb3NzaWJseSBOVUxMKQorICogQGRlcHRoOiAgVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwCisgKiBAc3RyaW5nOiAgdGhlIGlucHV0IHN0cmluZyBpbiBVVEY4IG9yIElTTy1MYXRpbiAoemVybyB0ZXJtaW5hdGVkKQorICogQGxzdDogIHRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzCisgKiBAcmVjb3ZlcjogcmV0dXJuIG5vZGVzIGV2ZW4gaWYgdGhlIGRhdGEgaXMgYnJva2VuICh1c2UgMCkKKyAqCisgKgorICogUGFyc2UgYSB3ZWxsLWJhbGFuY2VkIGNodW5rIG9mIGFuIFhNTCBkb2N1bWVudAorICogY2FsbGVkIGJ5IHRoZSBwYXJzZXIKKyAqIFRoZSBhbGxvd2VkIHNlcXVlbmNlIGZvciB0aGUgV2VsbCBCYWxhbmNlZCBDaHVuayBpcyB0aGUgb25lIGRlZmluZWQgYnkKKyAqIHRoZSBjb250ZW50IHByb2R1Y3Rpb24gaW4gdGhlIFhNTCBncmFtbWFyOgorICoKKyAqIFs0M10gY29udGVudCA6Oj0gKGVsZW1lbnQgfCBDaGFyRGF0YSB8IFJlZmVyZW5jZSB8IENEU2VjdCB8IFBJIHwgQ29tbWVudCkqCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjaHVuayBpcyB3ZWxsIGJhbGFuY2VkLCAtMSBpbiBjYXNlIG9mIGFyZ3MgcHJvYmxlbSBhbmQKKyAqICAgIHRoZSBwYXJzZXIgZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqCisgKiBJbiBjYXNlIHJlY292ZXIgaXMgc2V0IHRvIDEsIHRoZSBub2RlbGlzdCB3aWxsIG5vdCBiZSBlbXB0eSBldmVuIGlmCisgKiB0aGUgcGFyc2VkIGNodW5rIGlzIG5vdCB3ZWxsIGJhbGFuY2VkLCBhc3N1bWluZyB0aGUgcGFyc2luZyBzdWNjZWVkZWQgdG8KKyAqIHNvbWUgZXh0ZW50LgorICovCitpbnQKK3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIoeG1sRG9jUHRyIGRvYywgeG1sU0FYSGFuZGxlclB0ciBzYXgsCisgICAgIHZvaWQgKnVzZXJfZGF0YSwgaW50IGRlcHRoLCBjb25zdCB4bWxDaGFyICpzdHJpbmcsIHhtbE5vZGVQdHIgKmxzdCwKKyAgICAgaW50IHJlY292ZXIpIHsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sRG9jUHRyIG5ld0RvYzsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIG9sZHNheCA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBjb250ZW50LCBuZXdSb290OworICAgIGludCBzaXplOworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKGRlcHRoID4gNDApIHsKKwlyZXR1cm4oWE1MX0VSUl9FTlRJVFlfTE9PUCk7CisgICAgfQorCisKKyAgICBpZiAobHN0ICE9IE5VTEwpCisgICAgICAgICpsc3QgPSBOVUxMOworICAgIGlmIChzdHJpbmcgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIHNpemUgPSB4bWxTdHJsZW4oc3RyaW5nKTsKKworICAgIGN0eHQgPSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KChjaGFyICopIHN0cmluZywgc2l6ZSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBjdHh0LT51c2VyRGF0YSA9IGN0eHQ7CisgICAgaWYgKHNheCAhPSBOVUxMKSB7CisJb2xkc2F4ID0gY3R4dC0+c2F4OworICAgICAgICBjdHh0LT5zYXggPSBzYXg7CisJaWYgKHVzZXJfZGF0YSAhPSBOVUxMKQorCSAgICBjdHh0LT51c2VyRGF0YSA9IHVzZXJfZGF0YTsKKyAgICB9CisgICAgbmV3RG9jID0geG1sTmV3RG9jKEJBRF9DQVNUICIxLjAiKTsKKyAgICBpZiAobmV3RG9jID09IE5VTEwpIHsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBuZXdEb2MtPnByb3BlcnRpZXMgPSBYTUxfRE9DX0lOVEVSTkFMOworICAgIGlmICgoZG9jICE9IE5VTEwpICYmIChkb2MtPmRpY3QgIT0gTlVMTCkpIHsKKyAgICAgICAgeG1sRGljdEZyZWUoY3R4dC0+ZGljdCk7CisJY3R4dC0+ZGljdCA9IGRvYy0+ZGljdDsKKwl4bWxEaWN0UmVmZXJlbmNlKGN0eHQtPmRpY3QpOworCWN0eHQtPnN0cl94bWwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJ4bWwiLCAzKTsKKwljdHh0LT5zdHJfeG1sbnMgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJ4bWxucyIsIDUpOworCWN0eHQtPnN0cl94bWxfbnMgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIFhNTF9YTUxfTkFNRVNQQUNFLCAzNik7CisJY3R4dC0+ZGljdE5hbWVzID0gMTsKKyAgICB9IGVsc2UgeworCXhtbEN0eHRVc2VPcHRpb25zSW50ZXJuYWwoY3R4dCwgWE1MX1BBUlNFX05PRElDVCwgTlVMTCk7CisgICAgfQorICAgIGlmIChkb2MgIT0gTlVMTCkgeworCW5ld0RvYy0+aW50U3Vic2V0ID0gZG9jLT5pbnRTdWJzZXQ7CisJbmV3RG9jLT5leHRTdWJzZXQgPSBkb2MtPmV4dFN1YnNldDsKKyAgICB9CisgICAgbmV3Um9vdCA9IHhtbE5ld0RvY05vZGUobmV3RG9jLCBOVUxMLCBCQURfQ0FTVCAicHNldWRvcm9vdCIsIE5VTEwpOworICAgIGlmIChuZXdSb290ID09IE5VTEwpIHsKKwlpZiAoc2F4ICE9IE5VTEwpCisJICAgIGN0eHQtPnNheCA9IG9sZHNheDsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwluZXdEb2MtPmludFN1YnNldCA9IE5VTEw7CisJbmV3RG9jLT5leHRTdWJzZXQgPSBOVUxMOworICAgICAgICB4bWxGcmVlRG9jKG5ld0RvYyk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgeG1sQWRkQ2hpbGQoKHhtbE5vZGVQdHIpIG5ld0RvYywgbmV3Um9vdCk7CisgICAgbm9kZVB1c2goY3R4dCwgbmV3Um9vdCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisJY3R4dC0+bXlEb2MgPSBuZXdEb2M7CisgICAgfSBlbHNlIHsKKwljdHh0LT5teURvYyA9IG5ld0RvYzsKKwluZXdEb2MtPmNoaWxkcmVuLT5kb2MgPSBkb2M7CisJLyogRW5zdXJlIHRoYXQgZG9jIGhhcyBYTUwgc3BlYyBuYW1lc3BhY2UgKi8KKwl4bWxTZWFyY2hOc0J5SHJlZihkb2MsICh4bWxOb2RlUHRyKWRvYywgWE1MX1hNTF9OQU1FU1BBQ0UpOworCW5ld0RvYy0+b2xkTnMgPSBkb2MtPm9sZE5zOworICAgIH0KKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9DT05URU5UOworICAgIGN0eHQtPmRlcHRoID0gZGVwdGg7CisKKyAgICAvKgorICAgICAqIERvaW5nIHZhbGlkaXR5IGNoZWNraW5nIG9uIGNodW5rIGRvZXNuJ3QgbWFrZSBzZW5zZQorICAgICAqLworICAgIGN0eHQtPnZhbGlkYXRlID0gMDsKKyAgICBjdHh0LT5sb2Fkc3Vic2V0ID0gMDsKKyAgICB4bWxEZXRlY3RTQVgyKGN0eHQpOworCisgICAgaWYgKCBkb2MgIT0gTlVMTCApeworICAgICAgICBjb250ZW50ID0gZG9jLT5jaGlsZHJlbjsKKyAgICAgICAgZG9jLT5jaGlsZHJlbiA9IE5VTEw7CisgICAgICAgIHhtbFBhcnNlQ29udGVudChjdHh0KTsKKyAgICAgICAgZG9jLT5jaGlsZHJlbiA9IGNvbnRlbnQ7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB4bWxQYXJzZUNvbnRlbnQoY3R4dCk7CisgICAgfQorICAgIGlmICgoUkFXID09ICc8JykgJiYgKE5YVCgxKSA9PSAnLycpKSB7CisJeG1sRmF0YWxFcnIoY3R4dCwgWE1MX0VSUl9OT1RfV0VMTF9CQUxBTkNFRCwgTlVMTCk7CisgICAgfSBlbHNlIGlmIChSQVcgIT0gMCkgeworCXhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRVhUUkFfQ09OVEVOVCwgTlVMTCk7CisgICAgfQorICAgIGlmIChjdHh0LT5ub2RlICE9IG5ld0RvYy0+Y2hpbGRyZW4pIHsKKwl4bWxGYXRhbEVycihjdHh0LCBYTUxfRVJSX05PVF9XRUxMX0JBTEFOQ0VELCBOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoIWN0eHQtPndlbGxGb3JtZWQpIHsKKyAgICAgICAgaWYgKGN0eHQtPmVyck5vID09IDApCisJICAgIHJldCA9IDE7CisJZWxzZQorCSAgICByZXQgPSBjdHh0LT5lcnJObzsKKyAgICB9IGVsc2UgeworICAgICAgcmV0ID0gMDsKKyAgICB9CisKKyAgICBpZiAoKGxzdCAhPSBOVUxMKSAmJiAoKHJldCA9PSAwKSB8fCAocmVjb3ZlciA9PSAxKSkpIHsKKwl4bWxOb2RlUHRyIGN1cjsKKworCS8qCisJICogUmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG5vZGVzZXQgYWZ0ZXIgdW5saW5raW5nIGl0IGZyb20KKwkgKiB0aGV5IHBzZXVkbyBwYXJlbnQuCisJICovCisJY3VyID0gbmV3RG9jLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisJKmxzdCA9IGN1cjsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgeG1sU2V0VHJlZURvYyhjdXIsIGRvYyk7CisJICAgIGN1ci0+cGFyZW50ID0gTlVMTDsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKwluZXdEb2MtPmNoaWxkcmVuLT5jaGlsZHJlbiA9IE5VTEw7CisgICAgfQorCisgICAgaWYgKHNheCAhPSBOVUxMKQorCWN0eHQtPnNheCA9IG9sZHNheDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICBuZXdEb2MtPmludFN1YnNldCA9IE5VTEw7CisgICAgbmV3RG9jLT5leHRTdWJzZXQgPSBOVUxMOworICAgIG5ld0RvYy0+b2xkTnMgPSBOVUxMOworICAgIHhtbEZyZWVEb2MobmV3RG9jKTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFNBWFBhcnNlRW50aXR5OgorICogQHNheDogIHRoZSBTQVggaGFuZGxlciBibG9jaworICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lCisgKgorICogcGFyc2UgYW4gWE1MIGV4dGVybmFsIGVudGl0eSBvdXQgb2YgY29udGV4dCBhbmQgYnVpbGQgYSB0cmVlLgorICogSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLgorICogSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLgorICoKKyAqIFs3OF0gZXh0UGFyc2VkRW50IDo6PSBUZXh0RGVjbD8gY29udGVudAorICoKKyAqIFRoaXMgY29ycmVzcG9uZCB0byBhICJXZWxsIEJhbGFuY2VkIiBjaHVuaworICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlCisgKi8KKworeG1sRG9jUHRyCit4bWxTQVhQYXJzZUVudGl0eSh4bWxTQVhIYW5kbGVyUHRyIHNheCwgY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxEb2NQdHIgcmV0OworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIGN0eHQgPSB4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dChmaWxlbmFtZSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHNheCAhPSBOVUxMKSB7CisJaWYgKGN0eHQtPnNheCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKGN0eHQtPnNheCk7CisgICAgICAgIGN0eHQtPnNheCA9IHNheDsKKyAgICAgICAgY3R4dC0+dXNlckRhdGEgPSBOVUxMOworICAgIH0KKworICAgIHhtbFBhcnNlRXh0UGFyc2VkRW50KGN0eHQpOworCisgICAgaWYgKGN0eHQtPndlbGxGb3JtZWQpCisJcmV0ID0gY3R4dC0+bXlEb2M7CisgICAgZWxzZSB7CisgICAgICAgIHJldCA9IE5VTEw7CisgICAgICAgIHhtbEZyZWVEb2MoY3R4dC0+bXlEb2MpOworICAgICAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkKKyAgICAgICAgY3R4dC0+c2F4ID0gTlVMTDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFBhcnNlRW50aXR5OgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lCisgKgorICogcGFyc2UgYW4gWE1MIGV4dGVybmFsIGVudGl0eSBvdXQgb2YgY29udGV4dCBhbmQgYnVpbGQgYSB0cmVlLgorICoKKyAqIFs3OF0gZXh0UGFyc2VkRW50IDo6PSBUZXh0RGVjbD8gY29udGVudAorICoKKyAqIFRoaXMgY29ycmVzcG9uZCB0byBhICJXZWxsIEJhbGFuY2VkIiBjaHVuaworICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlCisgKi8KKworeG1sRG9jUHRyCit4bWxQYXJzZUVudGl0eShjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIHJldHVybih4bWxTQVhQYXJzZUVudGl0eShOVUxMLCBmaWxlbmFtZSkpOworfQorI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0SW50ZXJuYWw6CisgKiBAVVJMOiAgdGhlIGVudGl0eSBVUkwKKyAqIEBJRDogIHRoZSBlbnRpdHkgUFVCTElDIElECisgKiBAYmFzZTogIGEgcG9zc2libGUgYmFzZSBmb3IgdGhlIHRhcmdldCBVUkkKKyAqIEBwY3R4OiAgcGFyc2VyIGNvbnRleHQgdXNlZCB0byBzZXQgb3B0aW9ucyBvbiBuZXcgY29udGV4dAorICoKKyAqIENyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBleHRlcm5hbCBlbnRpdHkKKyAqIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQKKyAqIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMCisgKi8KK3N0YXRpYyB4bWxQYXJzZXJDdHh0UHRyCit4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0SW50ZXJuYWwoY29uc3QgeG1sQ2hhciAqVVJMLCBjb25zdCB4bWxDaGFyICpJRCwKKwkgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpiYXNlLCB4bWxQYXJzZXJDdHh0UHRyIHBjdHgpIHsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXRTdHJlYW07CisgICAgY2hhciAqZGlyZWN0b3J5ID0gTlVMTDsKKyAgICB4bWxDaGFyICp1cmk7CisKKyAgICBjdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaWYgKHBjdHggIT0gTlVMTCkgeworICAgICAgICBjdHh0LT5vcHRpb25zID0gcGN0eC0+b3B0aW9uczsKKyAgICAgICAgY3R4dC0+X3ByaXZhdGUgPSBwY3R4LT5fcHJpdmF0ZTsKKyAgICB9CisKKyAgICB1cmkgPSB4bWxCdWlsZFVSSShVUkwsIGJhc2UpOworCisgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisJaW5wdXRTdHJlYW0gPSB4bWxMb2FkRXh0ZXJuYWxFbnRpdHkoKGNoYXIgKilVUkwsIChjaGFyICopSUQsIGN0eHQpOworCWlmIChpbnB1dFN0cmVhbSA9PSBOVUxMKSB7CisJICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCisJaW5wdXRQdXNoKGN0eHQsIGlucHV0U3RyZWFtKTsKKworCWlmICgoY3R4dC0+ZGlyZWN0b3J5ID09IE5VTEwpICYmIChkaXJlY3RvcnkgPT0gTlVMTCkpCisJICAgIGRpcmVjdG9yeSA9IHhtbFBhcnNlckdldERpcmVjdG9yeSgoY2hhciAqKVVSTCk7CisJaWYgKChjdHh0LT5kaXJlY3RvcnkgPT0gTlVMTCkgJiYgKGRpcmVjdG9yeSAhPSBOVUxMKSkKKwkgICAgY3R4dC0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OworICAgIH0gZWxzZSB7CisJaW5wdXRTdHJlYW0gPSB4bWxMb2FkRXh0ZXJuYWxFbnRpdHkoKGNoYXIgKil1cmksIChjaGFyICopSUQsIGN0eHQpOworCWlmIChpbnB1dFN0cmVhbSA9PSBOVUxMKSB7CisJICAgIHhtbEZyZWUodXJpKTsKKwkgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisKKwlpbnB1dFB1c2goY3R4dCwgaW5wdXRTdHJlYW0pOworCisJaWYgKChjdHh0LT5kaXJlY3RvcnkgPT0gTlVMTCkgJiYgKGRpcmVjdG9yeSA9PSBOVUxMKSkKKwkgICAgZGlyZWN0b3J5ID0geG1sUGFyc2VyR2V0RGlyZWN0b3J5KChjaGFyICopdXJpKTsKKwlpZiAoKGN0eHQtPmRpcmVjdG9yeSA9PSBOVUxMKSAmJiAoZGlyZWN0b3J5ICE9IE5VTEwpKQorCSAgICBjdHh0LT5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7CisJeG1sRnJlZSh1cmkpOworICAgIH0KKyAgICByZXR1cm4oY3R4dCk7Cit9CisKKy8qKgorICogeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dDoKKyAqIEBVUkw6ICB0aGUgZW50aXR5IFVSTAorICogQElEOiAgdGhlIGVudGl0eSBQVUJMSUMgSUQKKyAqIEBiYXNlOiAgYSBwb3NzaWJsZSBiYXNlIGZvciB0aGUgdGFyZ2V0IFVSSQorICoKKyAqIENyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBleHRlcm5hbCBlbnRpdHkKKyAqIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQKKyAqIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMCisgKi8KK3htbFBhcnNlckN0eHRQdHIKK3htbENyZWF0ZUVudGl0eVBhcnNlckN0eHQoY29uc3QgeG1sQ2hhciAqVVJMLCBjb25zdCB4bWxDaGFyICpJRCwKKwkgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpiYXNlKSB7CisgICAgcmV0dXJuIHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHRJbnRlcm5hbChVUkwsIElELCBiYXNlLCBOVUxMKTsKKworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlGcm9udCBlbmRzIHdoZW4gcGFyc2luZyBmcm9tIGEgZmlsZQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxDcmVhdGVVUkxQYXJzZXJDdHh0OgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lIG9yIFVSTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICoKKyAqIENyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhIGZpbGUgb3IgVVJMIGNvbnRlbnQuIAorICogQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZAorICogYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUgYW5kIGZvciBmaWxlIGFjY2Vzc2VzCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqLworeG1sUGFyc2VyQ3R4dFB0cgoreG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IG9wdGlvbnMpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0U3RyZWFtOworICAgIGNoYXIgKmRpcmVjdG9yeSA9IE5VTEw7CisKKyAgICBjdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwl4bWxFcnJNZW1vcnkoTlVMTCwgImNhbm5vdCBhbGxvY2F0ZSBwYXJzZXIgY29udGV4dCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpZiAob3B0aW9ucykKKwl4bWxDdHh0VXNlT3B0aW9uc0ludGVybmFsKGN0eHQsIG9wdGlvbnMsIE5VTEwpOworICAgIGN0eHQtPmxpbmVudW1iZXJzID0gMTsKKworICAgIGlucHV0U3RyZWFtID0geG1sTG9hZEV4dGVybmFsRW50aXR5KGZpbGVuYW1lLCBOVUxMLCBjdHh0KTsKKyAgICBpZiAoaW5wdXRTdHJlYW0gPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXRTdHJlYW0pOworICAgIGlmICgoY3R4dC0+ZGlyZWN0b3J5ID09IE5VTEwpICYmIChkaXJlY3RvcnkgPT0gTlVMTCkpCisgICAgICAgIGRpcmVjdG9yeSA9IHhtbFBhcnNlckdldERpcmVjdG9yeShmaWxlbmFtZSk7CisgICAgaWYgKChjdHh0LT5kaXJlY3RvcnkgPT0gTlVMTCkgJiYgKGRpcmVjdG9yeSAhPSBOVUxMKSkKKyAgICAgICAgY3R4dC0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OworCisgICAgcmV0dXJuKGN0eHQpOworfQorCisvKioKKyAqIHhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0OgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lCisgKgorICogQ3JlYXRlIGEgcGFyc2VyIGNvbnRleHQgZm9yIGEgZmlsZSBjb250ZW50LiAKKyAqIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQKKyAqIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMCisgKi8KK3htbFBhcnNlckN0eHRQdHIKK3htbENyZWF0ZUZpbGVQYXJzZXJDdHh0KGNvbnN0IGNoYXIgKmZpbGVuYW1lKQoreworICAgIHJldHVybih4bWxDcmVhdGVVUkxQYXJzZXJDdHh0KGZpbGVuYW1lLCAwKSk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisvKioKKyAqIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhOgorICogQHNheDogIHRoZSBTQVggaGFuZGxlciBibG9jaworICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lCisgKiBAcmVjb3Zlcnk6ICB3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZAorICogICAgICAgICAgICAgZG9jdW1lbnRzCisgKiBAZGF0YTogIHRoZSB1c2VyZGF0YQorICoKKyAqIHBhcnNlIGFuIFhNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzCisgKiBjb21wcmVzc2VkIGRvY3VtZW50IGlzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLgorICogSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLgorICogSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLgorICoKKyAqIFVzZXIgZGF0YSAodm9pZCAqKSBpcyBzdG9yZWQgd2l0aGluIHRoZSBwYXJzZXIgY29udGV4dCBpbiB0aGUKKyAqIGNvbnRleHQncyBfcHJpdmF0ZSBtZW1iZXIsIHNvIGl0IGlzIGF2YWlsYWJsZSBuZWFybHkgZXZlcnl3aGVyZSBpbiBsaWJ4bWwKKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCisKK3htbERvY1B0cgoreG1sU0FYUGFyc2VGaWxlV2l0aERhdGEoeG1sU0FYSGFuZGxlclB0ciBzYXgsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlY292ZXJ5LCB2b2lkICpkYXRhKSB7CisgICAgeG1sRG9jUHRyIHJldDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBjdHh0ID0geG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQoZmlsZW5hbWUpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkgeworCWlmIChjdHh0LT5zYXggIT0gTlVMTCkKKwkgICAgeG1sRnJlZShjdHh0LT5zYXgpOworICAgICAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgfQorICAgIHhtbERldGVjdFNBWDIoY3R4dCk7CisgICAgaWYgKGRhdGEhPU5VTEwpIHsKKwljdHh0LT5fcHJpdmF0ZSA9IGRhdGE7CisgICAgfQorCisgICAgaWYgKGN0eHQtPmRpcmVjdG9yeSA9PSBOVUxMKQorICAgICAgICBjdHh0LT5kaXJlY3RvcnkgPSB4bWxQYXJzZXJHZXREaXJlY3RvcnkoZmlsZW5hbWUpOworCisgICAgY3R4dC0+cmVjb3ZlcnkgPSByZWNvdmVyeTsKKworICAgIHhtbFBhcnNlRG9jdW1lbnQoY3R4dCk7CisKKyAgICBpZiAoKGN0eHQtPndlbGxGb3JtZWQpIHx8IHJlY292ZXJ5KSB7CisgICAgICAgIHJldCA9IGN0eHQtPm15RG9jOworCWlmIChyZXQgIT0gTlVMTCkgeworCSAgICBpZiAoY3R4dC0+aW5wdXQtPmJ1Zi0+Y29tcHJlc3NlZCA+IDApCisJCXJldC0+Y29tcHJlc3Npb24gPSA5OworCSAgICBlbHNlCisJCXJldC0+Y29tcHJlc3Npb24gPSBjdHh0LT5pbnB1dC0+YnVmLT5jb21wcmVzc2VkOworCX0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgcmV0ID0gTlVMTDsKKyAgICAgICB4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKyAgICAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkKKyAgICAgICAgY3R4dC0+c2F4ID0gTlVMTDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICAKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTQVhQYXJzZUZpbGU6CisgKiBAc2F4OiAgdGhlIFNBWCBoYW5kbGVyIGJsb2NrCisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUKKyAqIEByZWNvdmVyeTogIHdvcmsgaW4gcmVjb3ZlcnkgbW9kZSwgaS5lLiB0cmllcyB0byByZWFkIG5vIFdlbGwgRm9ybWVkCisgKiAgICAgICAgICAgICBkb2N1bWVudHMKKyAqCisgKiBwYXJzZSBhbiBYTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcworICogY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS4KKyAqIEl0IHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4KKyAqIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBET00gdHJlZSBidWlsZGluZyByb3V0aW5lcy4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCisKK3htbERvY1B0cgoreG1sU0FYUGFyc2VGaWxlKHhtbFNBWEhhbmRsZXJQdHIgc2F4LCBjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlY292ZXJ5KSB7CisgICAgcmV0dXJuKHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhKHNheCxmaWxlbmFtZSxyZWNvdmVyeSxOVUxMKSk7Cit9CisKKy8qKgorICogeG1sUmVjb3ZlckRvYzoKKyAqIEBjdXI6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcgorICoKKyAqIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqIEluIHRoZSBjYXNlIHRoZSBkb2N1bWVudCBpcyBub3QgV2VsbCBGb3JtZWQsIGEgYXR0ZW1wdCB0byBidWlsZCBhCisgKiB0cmVlIGlzIHRyaWVkIGFueXdheQorICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlCisgKi8KKworeG1sRG9jUHRyCit4bWxSZWNvdmVyRG9jKGNvbnN0IHhtbENoYXIgKmN1cikgeworICAgIHJldHVybih4bWxTQVhQYXJzZURvYyhOVUxMLCBjdXIsIDEpKTsKK30KKworLyoqCisgKiB4bWxQYXJzZUZpbGU6CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUKKyAqCisgKiBwYXJzZSBhbiBYTUwgZmlsZSBhbmQgYnVpbGQgYSB0cmVlLiBBdXRvbWF0aWMgc3VwcG9ydCBmb3IgWkxJQi9Db21wcmVzcworICogY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kIGF0IGNvbXBpbGUtdGltZS4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZSBpZiB0aGUgZmlsZSB3YXMgd2VsbGZvcm1lZCwKKyAqIE5VTEwgb3RoZXJ3aXNlLgorICovCisKK3htbERvY1B0cgoreG1sUGFyc2VGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgcmV0dXJuKHhtbFNBWFBhcnNlRmlsZShOVUxMLCBmaWxlbmFtZSwgMCkpOworfQorCisvKioKKyAqIHhtbFJlY292ZXJGaWxlOgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lCisgKgorICogcGFyc2UgYW4gWE1MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MKKyAqIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuCisgKiBJbiB0aGUgY2FzZSB0aGUgZG9jdW1lbnQgaXMgbm90IFdlbGwgRm9ybWVkLCBpdCBhdHRlbXB0cyB0byBidWlsZAorICogYSB0cmVlIGFueXdheQorICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlCisgKi8KKworeG1sRG9jUHRyCit4bWxSZWNvdmVyRmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIHJldHVybih4bWxTQVhQYXJzZUZpbGUoTlVMTCwgZmlsZW5hbWUsIDEpKTsKK30KKworCisvKioKKyAqIHhtbFNldHVwUGFyc2VyRm9yQnVmZmVyOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBidWZmZXI6ICBhIHhtbENoYXIgKiBidWZmZXIKKyAqIEBmaWxlbmFtZTogIGEgZmlsZSBuYW1lCisgKgorICogU2V0dXAgdGhlIHBhcnNlciBjb250ZXh0IHRvIHBhcnNlIGEgbmV3IGJ1ZmZlcjsgQ2xlYXJzIGFueSBwcmlvcgorICogY29udGVudHMgZnJvbSB0aGUgcGFyc2VyIGNvbnRleHQuIFRoZSBidWZmZXIgcGFyYW1ldGVyIG11c3Qgbm90IGJlCisgKiBOVUxMLCBidXQgdGhlIGZpbGVuYW1lIHBhcmFtZXRlciBjYW4gYmUKKyAqLwordm9pZAoreG1sU2V0dXBQYXJzZXJGb3JCdWZmZXIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyKiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lKQoreworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChidWZmZXIgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlucHV0ID0geG1sTmV3SW5wdXRTdHJlYW0oY3R4dCk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sRXJyTWVtb3J5KE5VTEwsICJwYXJzaW5nIG5ldyBidWZmZXI6IG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICB4bWxDbGVhclBhcnNlckN0eHQoY3R4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgIAorICAgIHhtbENsZWFyUGFyc2VyQ3R4dChjdHh0KTsKKyAgICBpZiAoZmlsZW5hbWUgIT0gTlVMTCkKKyAgICAgICAgaW5wdXQtPmZpbGVuYW1lID0gKGNoYXIgKikgeG1sQ2Fub25pY1BhdGgoKGNvbnN0IHhtbENoYXIgKilmaWxlbmFtZSk7CisgICAgaW5wdXQtPmJhc2UgPSBidWZmZXI7CisgICAgaW5wdXQtPmN1ciA9IGJ1ZmZlcjsKKyAgICBpbnB1dC0+ZW5kID0gJmJ1ZmZlclt4bWxTdHJsZW4oYnVmZmVyKV07CisgICAgaW5wdXRQdXNoKGN0eHQsIGlucHV0KTsKK30KKworLyoqCisgKiB4bWxTQVhVc2VyUGFyc2VGaWxlOgorICogQHNheDogIGEgU0FYIGhhbmRsZXIKKyAqIEB1c2VyX2RhdGE6ICBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MKKyAqIEBmaWxlbmFtZTogIGEgZmlsZSBuYW1lCisgKgorICogcGFyc2UgYW4gWE1MIGZpbGUgYW5kIGNhbGwgdGhlIGdpdmVuIFNBWCBoYW5kbGVyIHJvdXRpbmVzLgorICogQXV0b21hdGljIHN1cHBvcnQgZm9yIFpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZAorICogCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIGEgZXJyb3IgbnVtYmVyIG90aGVyd2lzZQorICovCitpbnQKK3htbFNBWFVzZXJQYXJzZUZpbGUoeG1sU0FYSGFuZGxlclB0ciBzYXgsIHZvaWQgKnVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgCisgICAgY3R4dCA9IHhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0KGZpbGVuYW1lKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm4gLTE7CisgICAgaWYgKGN0eHQtPnNheCAhPSAoeG1sU0FYSGFuZGxlclB0cikgJnhtbERlZmF1bHRTQVhIYW5kbGVyKQorCXhtbEZyZWUoY3R4dC0+c2F4KTsKKyAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgeG1sRGV0ZWN0U0FYMihjdHh0KTsKKworICAgIGlmICh1c2VyX2RhdGEgIT0gTlVMTCkKKwljdHh0LT51c2VyRGF0YSA9IHVzZXJfZGF0YTsKKyAgICAKKyAgICB4bWxQYXJzZURvY3VtZW50KGN0eHQpOworICAgIAorICAgIGlmIChjdHh0LT53ZWxsRm9ybWVkKQorCXJldCA9IDA7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChjdHh0LT5lcnJObyAhPSAwKQorCSAgICByZXQgPSBjdHh0LT5lcnJObzsKKwllbHNlCisJICAgIHJldCA9IC0xOworICAgIH0KKyAgICBpZiAoc2F4ICE9IE5VTEwpCisJY3R4dC0+c2F4ID0gTlVMTDsKKyAgICBpZiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKwljdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIAorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJRnJvbnQgZW5kcyB3aGVuIHBhcnNpbmcgZnJvbSBtZW1vcnkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dDoKKyAqIEBidWZmZXI6ICBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5CisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICoKKyAqIENyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgY29udGV4dCBvciBOVUxMCisgKi8KK3htbFBhcnNlckN0eHRQdHIKK3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSkgeworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBidWY7CisKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChzaXplIDw9IDApCisJcmV0dXJuKE5VTEwpOworCisgICAgY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIC8qIFRPRE86IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljLCByZXF1aXJlcyBzb21lIHNlcmlvdXMgY2hhbmdlcyAqLworICAgIGJ1ZiA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtKGJ1ZmZlciwgc2l6ZSwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisJeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlucHV0ID0geG1sTmV3SW5wdXRTdHJlYW0oY3R4dCk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKwl4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoYnVmKTsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaW5wdXQtPmZpbGVuYW1lID0gTlVMTDsKKyAgICBpbnB1dC0+YnVmID0gYnVmOworICAgIGlucHV0LT5iYXNlID0gaW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworICAgIGlucHV0LT5jdXIgPSBpbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXQtPmVuZCA9ICZpbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnRbaW5wdXQtPmJ1Zi0+YnVmZmVyLT51c2VdOworCisgICAgaW5wdXRQdXNoKGN0eHQsIGlucHV0KTsKKyAgICByZXR1cm4oY3R4dCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisvKioKKyAqIHhtbFNBWFBhcnNlTWVtb3J5V2l0aERhdGE6CisgKiBAc2F4OiAgdGhlIFNBWCBoYW5kbGVyIGJsb2NrCisgKiBAYnVmZmVyOiAgYW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXkKKyAqIEBzaXplOiAgdGhlIHNpemUgb2YgdGhlIGFycmF5CisgKiBAcmVjb3Zlcnk6ICB3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZAorICogICAgICAgICAgICAgZG9jdW1lbnRzCisgKiBAZGF0YTogIHRoZSB1c2VyZGF0YQorICoKKyAqIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgYmxvY2sgYW5kIHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrCisgKiB0byBoYW5kbGUgdGhlIHBhcnNpbmcgY2FsbGJhY2suIElmIHNheCBpcyBOVUxMLCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdAorICogRE9NIHRyZWUgYnVpbGRpbmcgcm91dGluZXMuCisgKgorICogVXNlciBkYXRhICh2b2lkICopIGlzIHN0b3JlZCB3aXRoaW4gdGhlIHBhcnNlciBjb250ZXh0IGluIHRoZQorICogY29udGV4dCdzIF9wcml2YXRlIG1lbWJlciwgc28gaXQgaXMgYXZhaWxhYmxlIG5lYXJseSBldmVyeXdoZXJlIGluIGxpYnhtbAorICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlCisgKi8KKworeG1sRG9jUHRyCit4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhKHhtbFNBWEhhbmRsZXJQdHIgc2F4LCBjb25zdCBjaGFyICpidWZmZXIsCisJICAgICAgICAgIGludCBzaXplLCBpbnQgcmVjb3ZlcnksIHZvaWQgKmRhdGEpIHsKKyAgICB4bWxEb2NQdHIgcmV0OworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGN0eHQgPSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KGJ1ZmZlciwgc2l6ZSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChzYXggIT0gTlVMTCkgeworCWlmIChjdHh0LT5zYXggIT0gTlVMTCkKKwkgICAgeG1sRnJlZShjdHh0LT5zYXgpOworICAgICAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgfQorICAgIHhtbERldGVjdFNBWDIoY3R4dCk7CisgICAgaWYgKGRhdGEhPU5VTEwpIHsKKwljdHh0LT5fcHJpdmF0ZT1kYXRhOworICAgIH0KKworICAgIGN0eHQtPnJlY292ZXJ5ID0gcmVjb3Zlcnk7CisKKyAgICB4bWxQYXJzZURvY3VtZW50KGN0eHQpOworCisgICAgaWYgKChjdHh0LT53ZWxsRm9ybWVkKSB8fCByZWNvdmVyeSkgcmV0ID0gY3R4dC0+bXlEb2M7CisgICAgZWxzZSB7CisgICAgICAgcmV0ID0gTlVMTDsKKyAgICAgICB4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKyAgICAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkgCisJY3R4dC0+c2F4ID0gTlVMTDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFNBWFBhcnNlTWVtb3J5OgorICogQHNheDogIHRoZSBTQVggaGFuZGxlciBibG9jaworICogQGJ1ZmZlcjogIGFuIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5CisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICogQHJlY292ZXJ5OiAgd29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm90IFdlbGwgRm9ybWVkCisgKiAgICAgICAgICAgICBkb2N1bWVudHMKKyAqCisgKiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGJsb2NrIGFuZCB1c2UgdGhlIGdpdmVuIFNBWCBmdW5jdGlvbiBibG9jaworICogdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLiBJZiBzYXggaXMgTlVMTCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQKKyAqIERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCit4bWxEb2NQdHIKK3htbFNBWFBhcnNlTWVtb3J5KHhtbFNBWEhhbmRsZXJQdHIgc2F4LCBjb25zdCBjaGFyICpidWZmZXIsCisJICAgICAgICAgIGludCBzaXplLCBpbnQgcmVjb3ZlcnkpIHsKKyAgICByZXR1cm4geG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YShzYXgsIGJ1ZmZlciwgc2l6ZSwgcmVjb3ZlcnksIE5VTEwpOworfQorCisvKioKKyAqIHhtbFBhcnNlTWVtb3J5OgorICogQGJ1ZmZlcjogIGFuIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5CisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICoKKyAqIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgYmxvY2sgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqIAorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworCit4bWxEb2NQdHIgeG1sUGFyc2VNZW1vcnkoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSkgeworICAgcmV0dXJuKHhtbFNBWFBhcnNlTWVtb3J5KE5VTEwsIGJ1ZmZlciwgc2l6ZSwgMCkpOworfQorCisvKioKKyAqIHhtbFJlY292ZXJNZW1vcnk6CisgKiBAYnVmZmVyOiAgYW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXkKKyAqIEBzaXplOiAgdGhlIHNpemUgb2YgdGhlIGFycmF5CisgKgorICogcGFyc2UgYW4gWE1MIGluLW1lbW9yeSBibG9jayBhbmQgYnVpbGQgYSB0cmVlLgorICogSW4gdGhlIGNhc2UgdGhlIGRvY3VtZW50IGlzIG5vdCBXZWxsIEZvcm1lZCwgYW4gYXR0ZW1wdCB0bworICogYnVpbGQgYSB0cmVlIGlzIHRyaWVkIGFueXdheQorICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCisKK3htbERvY1B0ciB4bWxSZWNvdmVyTWVtb3J5KGNvbnN0IGNoYXIgKmJ1ZmZlciwgaW50IHNpemUpIHsKKyAgIHJldHVybih4bWxTQVhQYXJzZU1lbW9yeShOVUxMLCBidWZmZXIsIHNpemUsIDEpKTsKK30KKworLyoqCisgKiB4bWxTQVhVc2VyUGFyc2VNZW1vcnk6CisgKiBAc2F4OiAgYSBTQVggaGFuZGxlcgorICogQHVzZXJfZGF0YTogIFRoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcworICogQGJ1ZmZlcjogIGFuIGluLW1lbW9yeSBYTUwgZG9jdW1lbnQgaW5wdXQKKyAqIEBzaXplOiAgdGhlIGxlbmd0aCBvZiB0aGUgWE1MIGRvY3VtZW50IGluIGJ5dGVzCisgKgorICogQSBiZXR0ZXIgU0FYIHBhcnNpbmcgcm91dGluZS4KKyAqIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgYnVmZmVyIGFuZCBjYWxsIHRoZSBnaXZlbiBTQVggaGFuZGxlciByb3V0aW5lcy4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIGEgZXJyb3IgbnVtYmVyIG90aGVyd2lzZQorICovCitpbnQgeG1sU0FYVXNlclBhcnNlTWVtb3J5KHhtbFNBWEhhbmRsZXJQdHIgc2F4LCB2b2lkICp1c2VyX2RhdGEsCisJCQkgIGNvbnN0IGNoYXIgKmJ1ZmZlciwgaW50IHNpemUpIHsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBjdHh0ID0geG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dChidWZmZXIsIHNpemUpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybiAtMTsKKyAgICBpZiAoY3R4dC0+c2F4ICE9ICh4bWxTQVhIYW5kbGVyUHRyKSAmeG1sRGVmYXVsdFNBWEhhbmRsZXIpCisgICAgICAgIHhtbEZyZWUoY3R4dC0+c2F4KTsKKyAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgeG1sRGV0ZWN0U0FYMihjdHh0KTsKKworICAgIGlmICh1c2VyX2RhdGEgIT0gTlVMTCkKKwljdHh0LT51c2VyRGF0YSA9IHVzZXJfZGF0YTsKKworICAgIHhtbFBhcnNlRG9jdW1lbnQoY3R4dCk7CisgICAgCisgICAgaWYgKGN0eHQtPndlbGxGb3JtZWQpCisJcmV0ID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGN0eHQtPmVyck5vICE9IDApCisJICAgIHJldCA9IGN0eHQtPmVyck5vOworCWVsc2UKKwkgICAgcmV0ID0gLTE7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkKKyAgICAgICAgY3R4dC0+c2F4ID0gTlVMTDsKKyAgICBpZiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKwljdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIAorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbENyZWF0ZURvY1BhcnNlckN0eHQ6CisgKiBAY3VyOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIKKyAqCisgKiBDcmVhdGVzIGEgcGFyc2VyIGNvbnRleHQgZm9yIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBjb250ZXh0IG9yIE5VTEwKKyAqLworeG1sUGFyc2VyQ3R4dFB0cgoreG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dChjb25zdCB4bWxDaGFyICpjdXIpIHsKKyAgICBpbnQgbGVuOworCisgICAgaWYgKGN1ciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBsZW4gPSB4bWxTdHJsZW4oY3VyKTsKKyAgICByZXR1cm4oeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCgoY29uc3QgY2hhciAqKWN1ciwgbGVuKSk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisvKioKKyAqIHhtbFNBWFBhcnNlRG9jOgorICogQHNheDogIHRoZSBTQVggaGFuZGxlciBibG9jaworICogQGN1cjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyCisgKiBAcmVjb3Zlcnk6ICB3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZAorICogICAgICAgICAgICAgZG9jdW1lbnRzCisgKgorICogcGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLgorICogSXQgdXNlIHRoZSBnaXZlbiBTQVggZnVuY3Rpb24gYmxvY2sgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIGNhbGxiYWNrLgorICogSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCisKK3htbERvY1B0cgoreG1sU0FYUGFyc2VEb2MoeG1sU0FYSGFuZGxlclB0ciBzYXgsIGNvbnN0IHhtbENoYXIgKmN1ciwgaW50IHJlY292ZXJ5KSB7CisgICAgeG1sRG9jUHRyIHJldDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sU0FYSGFuZGxlclB0ciBvbGRzYXggPSBOVUxMOworCisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKworICAgIGN0eHQgPSB4bWxDcmVhdGVEb2NQYXJzZXJDdHh0KGN1cik7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChzYXggIT0gTlVMTCkgeyAKKyAgICAgICAgb2xkc2F4ID0gY3R4dC0+c2F4OworICAgICAgICBjdHh0LT5zYXggPSBzYXg7CisgICAgICAgIGN0eHQtPnVzZXJEYXRhID0gTlVMTDsKKyAgICB9CisgICAgeG1sRGV0ZWN0U0FYMihjdHh0KTsKKworICAgIHhtbFBhcnNlRG9jdW1lbnQoY3R4dCk7CisgICAgaWYgKChjdHh0LT53ZWxsRm9ybWVkKSB8fCByZWNvdmVyeSkgcmV0ID0gY3R4dC0+bXlEb2M7CisgICAgZWxzZSB7CisgICAgICAgcmV0ID0gTlVMTDsKKyAgICAgICB4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKyAgICAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIGlmIChzYXggIT0gTlVMTCkKKwljdHh0LT5zYXggPSBvbGRzYXg7CisgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VEb2M6CisgKiBAY3VyOiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIKKyAqCisgKiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuCisgKiAKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlCisgKi8KKworeG1sRG9jUHRyCit4bWxQYXJzZURvYyhjb25zdCB4bWxDaGFyICpjdXIpIHsKKyAgICByZXR1cm4oeG1sU0FYUGFyc2VEb2MoTlVMTCwgY3VyLCAwKSk7Cit9CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX0xFR0FDWV9FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAlTcGVjaWZpYyBmdW5jdGlvbiB0byBrZWVwIHRyYWNrIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMJCSoKKyAqIAlhbmQgdXNlZCBieSB0aGUgWFNMVCBkZWJ1Z2dlcgkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgeG1sRW50aXR5UmVmZXJlbmNlRnVuYyB4bWxFbnRpdHlSZWZGdW5jID0gTlVMTDsKKworLyoqCisgKiB4bWxBZGRFbnRpdHlSZWZlcmVuY2U6CisgKiBAZW50IDogQSB2YWxpZCBlbnRpdHkKKyAqIEBmaXJzdE5vZGUgOiBBIHZhbGlkIGZpcnN0IG5vZGUgZm9yIGNoaWxkcmVuIG9mIGVudGl0eQorICogQGxhc3ROb2RlIDogQSB2YWxpZCBsYXN0IG5vZGUgb2YgY2hpbGRyZW4gZW50aXR5IAorICoKKyAqIE5vdGlmeSBvZiBhIHJlZmVyZW5jZSB0byBhbiBlbnRpdHkgb2YgdHlwZSBYTUxfRVhURVJOQUxfR0VORVJBTF9QQVJTRURfRU5USVRZCisgKi8KK3N0YXRpYyB2b2lkCit4bWxBZGRFbnRpdHlSZWZlcmVuY2UoeG1sRW50aXR5UHRyIGVudCwgeG1sTm9kZVB0ciBmaXJzdE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBsYXN0Tm9kZSkKK3sKKyAgICBpZiAoeG1sRW50aXR5UmVmRnVuYyAhPSBOVUxMKSB7CisgICAgICAgICgqeG1sRW50aXR5UmVmRnVuYykgKGVudCwgZmlyc3ROb2RlLCBsYXN0Tm9kZSk7CisgICAgfQorfQorCisKKy8qKgorICogeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYzoKKyAqIEBmdW5jOiBBIHZhbGlkIGZ1bmN0aW9uCisgKgorICogU2V0IHRoZSBmdW5jdGlvbiB0byBjYWxsIGNhbGwgYmFjayB3aGVuIGEgeG1sIHJlZmVyZW5jZSBoYXMgYmVlbiBtYWRlCisgKi8KK3ZvaWQKK3htbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMoeG1sRW50aXR5UmVmZXJlbmNlRnVuYyBmdW5jKQoreworICAgIHhtbEVudGl0eVJlZkZ1bmMgPSBmdW5jOworfQorI2VuZGlmIC8qIExJQlhNTF9MRUdBQ1lfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJCQlNaXNjZWxsYW5lb3VzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CisjZW5kaWYKKworZXh0ZXJuIHZvaWQgWE1MQ0RFQ0wgeG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmModm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLik7CitzdGF0aWMgaW50IHhtbFBhcnNlckluaXRpYWxpemVkID0gMDsKKworLyoqCisgKiB4bWxJbml0UGFyc2VyOgorICoKKyAqIEluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgWE1MIHBhcnNlci4KKyAqIFRoaXMgaXMgbm90IHJlZW50cmFudC4gQ2FsbCBvbmNlIGJlZm9yZSBwcm9jZXNzaW5nIGluIGNhc2Ugb2YKKyAqIHVzZSBpbiBtdWx0aXRocmVhZGVkIHByb2dyYW1zLgorICovCisKK3ZvaWQKK3htbEluaXRQYXJzZXIodm9pZCkgeworICAgIGlmICh4bWxQYXJzZXJJbml0aWFsaXplZCAhPSAwKQorCXJldHVybjsKKworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorICAgIF9feG1sR2xvYmFsSW5pdE11dGV4TG9jaygpOworICAgIGlmICh4bWxQYXJzZXJJbml0aWFsaXplZCA9PSAwKSB7CisjZW5kaWYKKwl4bWxJbml0R2xvYmFscygpOworCXhtbEluaXRUaHJlYWRzKCk7CisJaWYgKCh4bWxHZW5lcmljRXJyb3IgPT0geG1sR2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMpIHx8CisJICAgICh4bWxHZW5lcmljRXJyb3IgPT0gTlVMTCkpCisJICAgIGluaXRHZW5lcmljRXJyb3JEZWZhdWx0RnVuYyhOVUxMKTsKKwl4bWxJbml0TWVtb3J5KCk7CisJeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzKCk7CisJeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KCk7CisJeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MoKTsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKwl4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MoKTsKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisJaHRtbEluaXRBdXRvQ2xvc2UoKTsKKwlodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KCk7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorCXhtbFhQYXRoSW5pdCgpOworI2VuZGlmCisJeG1sUGFyc2VySW5pdGlhbGl6ZWQgPSAxOworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorICAgIH0KKyAgICBfX3htbEdsb2JhbEluaXRNdXRleFVubG9jaygpOworI2VuZGlmCit9CisKKy8qKgorICogeG1sQ2xlYW51cFBhcnNlcjoKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG5hbWUgaXMgc29tZXdoYXQgbWlzbGVhZGluZy4gSXQgZG9lcyBub3QgY2xlYW4gdXAKKyAqIHBhcnNlciBzdGF0ZSwgaXQgY2xlYW5zIHVwIG1lbW9yeSBhbGxvY2F0ZWQgYnkgdGhlIGxpYnJhcnkgaXRzZWxmLgorICogSXQgaXMgYSBjbGVhbnVwIGZ1bmN0aW9uIGZvciB0aGUgWE1MIGxpYnJhcnkuIEl0IHRyaWVzIHRvIHJlY2xhaW0gYWxsCisgKiByZWxhdGVkIGdsb2JhbCBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgbGlicmFyeSBwcm9jZXNzaW5nLgorICogSXQgZG9lc24ndCBkZWFsbG9jYXRlIGFueSBkb2N1bWVudCByZWxhdGVkIG1lbW9yeS4gT25lIHNob3VsZAorICogY2FsbCB4bWxDbGVhbnVwUGFyc2VyKCkgb25seSB3aGVuIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hlZCB1c2luZworICogdGhlIGxpYnJhcnkgYW5kIGFsbCBYTUwvSFRNTCBkb2N1bWVudHMgYnVpbHQgd2l0aCBpdC4KKyAqIFNlZSBhbHNvIHhtbEluaXRQYXJzZXIoKSB3aGljaCBoYXMgdGhlIG9wcG9zaXRlIGZ1bmN0aW9uIG9mIHByZXBhcmluZworICogdGhlIGxpYnJhcnkgZm9yIG9wZXJhdGlvbnMuCisgKgorICogV0FSTklORzogaWYgeW91ciBhcHBsaWNhdGlvbiBpcyBtdWx0aXRocmVhZGVkIG9yIGhhcyBwbHVnaW4gc3VwcG9ydAorICogICAgICAgICAgY2FsbGluZyB0aGlzIG1heSBjcmFzaCB0aGUgYXBwbGljYXRpb24gaWYgYW5vdGhlciB0aHJlYWQgb3IKKyAqICAgICAgICAgIGEgcGx1Z2luIGlzIHN0aWxsIHVzaW5nIGxpYnhtbDIuIEl0J3Mgc29tZXRpbWVzIHZlcnkgaGFyZCB0bworICogICAgICAgICAgZ3Vlc3MgaWYgbGlieG1sMiBpcyBpbiB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLCBzb21lIGxpYnJhcmllcworICogICAgICAgICAgb3IgcGx1Z2lucyBtYXkgdXNlIGl0IHdpdGhvdXQgbm90aWNlLiBJbiBjYXNlIG9mIGRvdWJ0IGFic3RhaW4KKyAqICAgICAgICAgIGZyb20gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9yIGRvIGl0IGp1c3QgYmVmb3JlIGNhbGxpbmcgZXhpdCgpCisgKiAgICAgICAgICB0byBhdm9pZCBsZWFrIHJlcG9ydHMgZnJvbSB2YWxncmluZCAhCisgKi8KKwordm9pZAoreG1sQ2xlYW51cFBhcnNlcih2b2lkKSB7CisgICAgaWYgKCF4bWxQYXJzZXJJbml0aWFsaXplZCkKKwlyZXR1cm47CisKKyAgICB4bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnMoKTsKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECisgICAgeG1sQ2F0YWxvZ0NsZWFudXAoKTsKKyNlbmRpZgorICAgIHhtbERpY3RDbGVhbnVwKCk7CisgICAgeG1sQ2xlYW51cElucHV0Q2FsbGJhY2tzKCk7CisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisgICAgeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcygpOworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIHhtbFNjaGVtYUNsZWFudXBUeXBlcygpOworICAgIHhtbFJlbGF4TkdDbGVhbnVwVHlwZXMoKTsKKyNlbmRpZgorICAgIHhtbENsZWFudXBHbG9iYWxzKCk7CisgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICB4bWxDbGVhbnVwVGhyZWFkcygpOyAvKiBtdXN0IGJlIGxhc3QgaWYgY2FsbGVkIG5vdCBmcm9tIHRoZSBtYWluIHRocmVhZCAqLworICAgIHhtbENsZWFudXBNZW1vcnkoKTsKKyAgICB4bWxQYXJzZXJJbml0aWFsaXplZCA9IDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJTmV3IHNldCAoMi42LjApIG9mIHNpbXBsZXIgYW5kIG1vcmUgZmxleGlibGUgQVBJcwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIERJQ1RfRlJFRToKKyAqIEBzdHI6ICBhIHN0cmluZworICoKKyAqIEZyZWUgYSBzdHJpbmcgaWYgaXQgaXMgbm90IG93bmVkIGJ5IHRoZSAiZGljdCIgZGljdGlvbm5hcnkgaW4gdGhlCisgKiBjdXJyZW50IHNjb3BlCisgKi8KKyNkZWZpbmUgRElDVF9GUkVFKHN0cikJCQkJCQlcCisJaWYgKChzdHIpICYmICgoIWRpY3QpIHx8IAkJCQlcCisJICAgICh4bWxEaWN0T3ducyhkaWN0LCAoY29uc3QgeG1sQ2hhciAqKShzdHIpKSA9PSAwKSkpCVwKKwkgICAgeG1sRnJlZSgoY2hhciAqKShzdHIpKTsKKworLyoqCisgKiB4bWxDdHh0UmVzZXQ6CisgKiBAY3R4dDogYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogUmVzZXQgYSBwYXJzZXIgY29udGV4dAorICovCit2b2lkCit4bWxDdHh0UmVzZXQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworICAgIHhtbERpY3RQdHIgZGljdDsKKyAgICAKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBkaWN0ID0gY3R4dC0+ZGljdDsKKworICAgIHdoaWxlICgoaW5wdXQgPSBpbnB1dFBvcChjdHh0KSkgIT0gTlVMTCkgeyAvKiBOb24gY29uc3VtaW5nICovCisgICAgICAgIHhtbEZyZWVJbnB1dFN0cmVhbShpbnB1dCk7CisgICAgfQorICAgIGN0eHQtPmlucHV0TnIgPSAwOworICAgIGN0eHQtPmlucHV0ID0gTlVMTDsKKworICAgIGN0eHQtPnNwYWNlTnIgPSAwOworICAgIGlmIChjdHh0LT5zcGFjZVRhYiAhPSBOVUxMKSB7CisJY3R4dC0+c3BhY2VUYWJbMF0gPSAtMTsKKwljdHh0LT5zcGFjZSA9ICZjdHh0LT5zcGFjZVRhYlswXTsKKyAgICB9IGVsc2UgeworICAgICAgICBjdHh0LT5zcGFjZSA9IE5VTEw7CisgICAgfQorCisKKyAgICBjdHh0LT5ub2RlTnIgPSAwOworICAgIGN0eHQtPm5vZGUgPSBOVUxMOworCisgICAgY3R4dC0+bmFtZU5yID0gMDsKKyAgICBjdHh0LT5uYW1lID0gTlVMTDsKKworICAgIERJQ1RfRlJFRShjdHh0LT52ZXJzaW9uKTsKKyAgICBjdHh0LT52ZXJzaW9uID0gTlVMTDsKKyAgICBESUNUX0ZSRUUoY3R4dC0+ZW5jb2RpbmcpOworICAgIGN0eHQtPmVuY29kaW5nID0gTlVMTDsKKyAgICBESUNUX0ZSRUUoY3R4dC0+ZGlyZWN0b3J5KTsKKyAgICBjdHh0LT5kaXJlY3RvcnkgPSBOVUxMOworICAgIERJQ1RfRlJFRShjdHh0LT5leHRTdWJVUkkpOworICAgIGN0eHQtPmV4dFN1YlVSSSA9IE5VTEw7CisgICAgRElDVF9GUkVFKGN0eHQtPmV4dFN1YlN5c3RlbSk7CisgICAgY3R4dC0+ZXh0U3ViU3lzdGVtID0gTlVMTDsKKyAgICBpZiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZURvYyhjdHh0LT5teURvYyk7CisgICAgY3R4dC0+bXlEb2MgPSBOVUxMOworCisgICAgY3R4dC0+c3RhbmRhbG9uZSA9IC0xOworICAgIGN0eHQtPmhhc0V4dGVybmFsU3Vic2V0ID0gMDsKKyAgICBjdHh0LT5oYXNQRXJlZnMgPSAwOworICAgIGN0eHQtPmh0bWwgPSAwOworICAgIGN0eHQtPmV4dGVybmFsID0gMDsKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9TVEFSVDsKKyAgICBjdHh0LT50b2tlbiA9IDA7CisKKyAgICBjdHh0LT53ZWxsRm9ybWVkID0gMTsKKyAgICBjdHh0LT5uc1dlbGxGb3JtZWQgPSAxOworICAgIGN0eHQtPmRpc2FibGVTQVggPSAwOworICAgIGN0eHQtPnZhbGlkID0gMTsKKyNpZiAwCisgICAgY3R4dC0+dmN0eHQudXNlckRhdGEgPSBjdHh0OworICAgIGN0eHQtPnZjdHh0LmVycm9yID0geG1sUGFyc2VyVmFsaWRpdHlFcnJvcjsKKyAgICBjdHh0LT52Y3R4dC53YXJuaW5nID0geG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nOworI2VuZGlmCisgICAgY3R4dC0+cmVjb3JkX2luZm8gPSAwOworICAgIGN0eHQtPm5iQ2hhcnMgPSAwOworICAgIGN0eHQtPmNoZWNrSW5kZXggPSAwOworICAgIGN0eHQtPmluU3Vic2V0ID0gMDsKKyAgICBjdHh0LT5lcnJObyA9IFhNTF9FUlJfT0s7CisgICAgY3R4dC0+ZGVwdGggPSAwOworICAgIGN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4OworICAgIGN0eHQtPmNhdGFsb2dzID0gTlVMTDsKKyAgICBjdHh0LT5uYmVudGl0aWVzID0gMDsKKyAgICBjdHh0LT5zaXplZW50aXRpZXMgPSAwOworICAgIHhtbEluaXROb2RlSW5mb1NlcSgmY3R4dC0+bm9kZV9zZXEpOworCisgICAgaWYgKGN0eHQtPmF0dHNEZWZhdWx0ICE9IE5VTEwpIHsKKyAgICAgICAgeG1sSGFzaEZyZWUoY3R4dC0+YXR0c0RlZmF1bHQsICh4bWxIYXNoRGVhbGxvY2F0b3IpIHhtbEZyZWUpOworICAgICAgICBjdHh0LT5hdHRzRGVmYXVsdCA9IE5VTEw7CisgICAgfQorICAgIGlmIChjdHh0LT5hdHRzU3BlY2lhbCAhPSBOVUxMKSB7CisgICAgICAgIHhtbEhhc2hGcmVlKGN0eHQtPmF0dHNTcGVjaWFsLCBOVUxMKTsKKyAgICAgICAgY3R4dC0+YXR0c1NwZWNpYWwgPSBOVUxMOworICAgIH0KKworI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKyAgICBpZiAoY3R4dC0+Y2F0YWxvZ3MgIT0gTlVMTCkKKwl4bWxDYXRhbG9nRnJlZUxvY2FsKGN0eHQtPmNhdGFsb2dzKTsKKyNlbmRpZgorICAgIGlmIChjdHh0LT5sYXN0RXJyb3IuY29kZSAhPSBYTUxfRVJSX09LKQorICAgICAgICB4bWxSZXNldEVycm9yKCZjdHh0LT5sYXN0RXJyb3IpOworfQorCisvKioKKyAqIHhtbEN0eHRSZXNldFB1c2g6CisgKiBAY3R4dDogYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAY2h1bms6ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgY2hhcnMKKyAqIEBzaXplOiAgbnVtYmVyIG9mIGNoYXJzIGluIHRoZSBhcnJheQorICogQGZpbGVuYW1lOiAgYW4gb3B0aW9uYWwgZmlsZSBuYW1lIG9yIFVSSQorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKgorICogUmVzZXQgYSBwdXNoIHBhcnNlciBjb250ZXh0CisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sQ3R4dFJlc2V0UHVzaCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmNodW5rLAorICAgICAgICAgICAgICAgICBpbnQgc2l6ZSwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmVuY29kaW5nKQoreworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0U3RyZWFtOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jID0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybigxKTsKKworICAgIGlmICgoZW5jb2RpbmcgPT0gTlVMTCkgJiYgKGNodW5rICE9IE5VTEwpICYmIChzaXplID49IDQpKQorICAgICAgICBlbmMgPSB4bWxEZXRlY3RDaGFyRW5jb2RpbmcoKGNvbnN0IHhtbENoYXIgKikgY2h1bmssIHNpemUpOworCisgICAgYnVmID0geG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcihlbmMpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKDEpOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoYnVmKTsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKworICAgIHhtbEN0eHRSZXNldChjdHh0KTsKKworICAgIGlmIChjdHh0LT5wdXNoVGFiID09IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+cHVzaFRhYiA9ICh2b2lkICoqKSB4bWxNYWxsb2MoY3R4dC0+bmFtZU1heCAqIDMgKgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxDaGFyICopKTsKKyAgICAgICAgaWYgKGN0eHQtPnB1c2hUYWIgPT0gTlVMTCkgeworCSAgICB4bWxFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisgICAgICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoYnVmKTsKKyAgICAgICAgICAgIHJldHVybigxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPmRpcmVjdG9yeSA9IE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY3R4dC0+ZGlyZWN0b3J5ID0geG1sUGFyc2VyR2V0RGlyZWN0b3J5KGZpbGVuYW1lKTsKKyAgICB9CisKKyAgICBpbnB1dFN0cmVhbSA9IHhtbE5ld0lucHV0U3RyZWFtKGN0eHQpOworICAgIGlmIChpbnB1dFN0cmVhbSA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihidWYpOworICAgICAgICByZXR1cm4oMSk7CisgICAgfQorCisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgICAgIGlucHV0U3RyZWFtLT5maWxlbmFtZSA9IE5VTEw7CisgICAgZWxzZQorICAgICAgICBpbnB1dFN0cmVhbS0+ZmlsZW5hbWUgPSAoY2hhciAqKQorICAgICAgICAgICAgeG1sQ2Fub25pY1BhdGgoKGNvbnN0IHhtbENoYXIgKikgZmlsZW5hbWUpOworICAgIGlucHV0U3RyZWFtLT5idWYgPSBidWY7CisgICAgaW5wdXRTdHJlYW0tPmJhc2UgPSBpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXRTdHJlYW0tPmN1ciA9IGlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICBpbnB1dFN0cmVhbS0+ZW5kID0KKyAgICAgICAgJmlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPnVzZV07CisKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXRTdHJlYW0pOworCisgICAgaWYgKChzaXplID4gMCkgJiYgKGNodW5rICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+aW5wdXQtPmJ1ZiAhPSBOVUxMKSkgeworICAgICAgICBpbnQgYmFzZSA9IGN0eHQtPmlucHV0LT5iYXNlIC0gY3R4dC0+aW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworICAgICAgICBpbnQgY3VyID0gY3R4dC0+aW5wdXQtPmN1ciAtIGN0eHQtPmlucHV0LT5iYXNlOworCisgICAgICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaChjdHh0LT5pbnB1dC0+YnVmLCBzaXplLCBjaHVuayk7CisKKyAgICAgICAgY3R4dC0+aW5wdXQtPmJhc2UgPSBjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnQgKyBiYXNlOworICAgICAgICBjdHh0LT5pbnB1dC0+Y3VyID0gY3R4dC0+aW5wdXQtPmJhc2UgKyBjdXI7CisgICAgICAgIGN0eHQtPmlucHV0LT5lbmQgPQorICAgICAgICAgICAgJmN0eHQtPmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudFtjdHh0LT5pbnB1dC0+YnVmLT5idWZmZXItPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VdOworI2lmZGVmIERFQlVHX1BVU0gKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJQUDogcHVzaGVkICVkXG4iLCBzaXplKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlmIChlbmNvZGluZyAhPSBOVUxMKSB7CisgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGRscjsKKworICAgICAgICBpZiAoY3R4dC0+ZW5jb2RpbmcgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdHh0LT5lbmNvZGluZyk7CisgICAgICAgIGN0eHQtPmVuY29kaW5nID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIGVuY29kaW5nKTsKKworICAgICAgICBoZGxyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworICAgICAgICBpZiAoaGRsciAhPSBOVUxMKSB7CisgICAgICAgICAgICB4bWxTd2l0Y2hUb0VuY29kaW5nKGN0eHQsIGhkbHIpOworCX0gZWxzZSB7CisJICAgIHhtbEZhdGFsRXJyTXNnU3RyKGN0eHQsIFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcsCisJCQkgICAgICAiVW5zdXBwb3J0ZWQgZW5jb2RpbmcgJXNcbiIsIEJBRF9DQVNUIGVuY29kaW5nKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZW5jICE9IFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpIHsKKyAgICAgICAgeG1sU3dpdGNoRW5jb2RpbmcoY3R4dCwgZW5jKTsKKyAgICB9CisKKyAgICByZXR1cm4oMCk7Cit9CisKKworLyoqCisgKiB4bWxDdHh0VXNlT3B0aW9uc0ludGVybmFsOgorICogQGN0eHQ6IGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICogQGVuY29kaW5nOiAgdGhlIHVzZXIgcHJvdmlkZWQgZW5jb2RpbmcgdG8gdXNlCisgKgorICogQXBwbGllcyB0aGUgb3B0aW9ucyB0byB0aGUgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCB0aGUgc2V0IG9mIHVua25vd24gb3IgdW5pbXBsZW1lbnRlZCBvcHRpb25zCisgKiAgICAgICAgIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3htbEN0eHRVc2VPcHRpb25zSW50ZXJuYWwoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgb3B0aW9ucywgY29uc3QgY2hhciAqZW5jb2RpbmcpCit7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworICAgICAgICBpZiAoY3R4dC0+ZW5jb2RpbmcgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdHh0LT5lbmNvZGluZyk7CisgICAgICAgIGN0eHQtPmVuY29kaW5nID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIGVuY29kaW5nKTsKKyAgICB9CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfUkVDT1ZFUikgeworICAgICAgICBjdHh0LT5yZWNvdmVyeSA9IDE7CisgICAgICAgIG9wdGlvbnMgLT0gWE1MX1BBUlNFX1JFQ09WRVI7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfUkVDT1ZFUjsKKyAgICB9IGVsc2UKKyAgICAgICAgY3R4dC0+cmVjb3ZlcnkgPSAwOworICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0RURExPQUQpIHsKKyAgICAgICAgY3R4dC0+bG9hZHN1YnNldCA9IFhNTF9ERVRFQ1RfSURTOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9EVERMT0FEOworCWN0eHQtPm9wdGlvbnMgfD0gWE1MX1BBUlNFX0RURExPQUQ7CisgICAgfSBlbHNlCisgICAgICAgIGN0eHQtPmxvYWRzdWJzZXQgPSAwOworICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0RUREFUVFIpIHsKKyAgICAgICAgY3R4dC0+bG9hZHN1YnNldCB8PSBYTUxfQ09NUExFVEVfQVRUUlM7CisgICAgICAgIG9wdGlvbnMgLT0gWE1MX1BBUlNFX0RUREFUVFI7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfRFREQVRUUjsKKyAgICB9CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfTk9FTlQpIHsKKyAgICAgICAgY3R4dC0+cmVwbGFjZUVudGl0aWVzID0gMTsKKyAgICAgICAgLyogY3R4dC0+bG9hZHN1YnNldCB8PSBYTUxfREVURUNUX0lEUzsgKi8KKyAgICAgICAgb3B0aW9ucyAtPSBYTUxfUEFSU0VfTk9FTlQ7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9FTlQ7CisgICAgfSBlbHNlCisgICAgICAgIGN0eHQtPnJlcGxhY2VFbnRpdGllcyA9IDA7CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfUEVEQU5USUMpIHsKKyAgICAgICAgY3R4dC0+cGVkYW50aWMgPSAxOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9QRURBTlRJQzsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9QRURBTlRJQzsKKyAgICB9IGVsc2UKKyAgICAgICAgY3R4dC0+cGVkYW50aWMgPSAwOworICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX05PQkxBTktTKSB7CisgICAgICAgIGN0eHQtPmtlZXBCbGFua3MgPSAwOworICAgICAgICBjdHh0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UgPSB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZTsKKyAgICAgICAgb3B0aW9ucyAtPSBYTUxfUEFSU0VfTk9CTEFOS1M7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9CTEFOS1M7CisgICAgfSBlbHNlCisgICAgICAgIGN0eHQtPmtlZXBCbGFua3MgPSAxOworICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0RURFZBTElEKSB7CisgICAgICAgIGN0eHQtPnZhbGlkYXRlID0gMTsKKyAgICAgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfTk9XQVJOSU5HKQorICAgICAgICAgICAgY3R4dC0+dmN0eHQud2FybmluZyA9IE5VTEw7CisgICAgICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX05PRVJST1IpCisgICAgICAgICAgICBjdHh0LT52Y3R4dC5lcnJvciA9IE5VTEw7CisgICAgICAgIG9wdGlvbnMgLT0gWE1MX1BBUlNFX0RURFZBTElEOworCWN0eHQtPm9wdGlvbnMgfD0gWE1MX1BBUlNFX0RURFZBTElEOworICAgIH0gZWxzZQorICAgICAgICBjdHh0LT52YWxpZGF0ZSA9IDA7CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfTk9XQVJOSU5HKSB7CisgICAgICAgIGN0eHQtPnNheC0+d2FybmluZyA9IE5VTEw7CisgICAgICAgIG9wdGlvbnMgLT0gWE1MX1BBUlNFX05PV0FSTklORzsKKyAgICB9CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfTk9FUlJPUikgeworICAgICAgICBjdHh0LT5zYXgtPmVycm9yID0gTlVMTDsKKyAgICAgICAgY3R4dC0+c2F4LT5mYXRhbEVycm9yID0gTlVMTDsKKyAgICAgICAgb3B0aW9ucyAtPSBYTUxfUEFSU0VfTk9FUlJPUjsKKyAgICB9CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX1NBWDEpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5zdGFydEVsZW1lbnQgPSB4bWxTQVgyU3RhcnRFbGVtZW50OworICAgICAgICBjdHh0LT5zYXgtPmVuZEVsZW1lbnQgPSB4bWxTQVgyRW5kRWxlbWVudDsKKyAgICAgICAgY3R4dC0+c2F4LT5zdGFydEVsZW1lbnROcyA9IE5VTEw7CisgICAgICAgIGN0eHQtPnNheC0+ZW5kRWxlbWVudE5zID0gTlVMTDsKKyAgICAgICAgY3R4dC0+c2F4LT5pbml0aWFsaXplZCA9IDE7CisgICAgICAgIG9wdGlvbnMgLT0gWE1MX1BBUlNFX1NBWDE7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfU0FYMTsKKyAgICB9CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX05PRElDVCkgeworICAgICAgICBjdHh0LT5kaWN0TmFtZXMgPSAwOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9OT0RJQ1Q7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9ESUNUOworICAgIH0gZWxzZSB7CisgICAgICAgIGN0eHQtPmRpY3ROYW1lcyA9IDE7CisgICAgfQorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX05PQ0RBVEEpIHsKKyAgICAgICAgY3R4dC0+c2F4LT5jZGF0YUJsb2NrID0gTlVMTDsKKyAgICAgICAgb3B0aW9ucyAtPSBYTUxfUEFSU0VfTk9DREFUQTsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9OT0NEQVRBOworICAgIH0KKyAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9OU0NMRUFOKSB7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfTlNDTEVBTjsKKyAgICAgICAgb3B0aW9ucyAtPSBYTUxfUEFSU0VfTlNDTEVBTjsKKyAgICB9CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfTk9ORVQpIHsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9OT05FVDsKKyAgICAgICAgb3B0aW9ucyAtPSBYTUxfUEFSU0VfTk9ORVQ7CisgICAgfQorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0NPTVBBQ1QpIHsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9DT01QQUNUOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9DT01QQUNUOworICAgIH0KKyAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9PTEQxMCkgeworCWN0eHQtPm9wdGlvbnMgfD0gWE1MX1BBUlNFX09MRDEwOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9PTEQxMDsKKyAgICB9CisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfTk9CQVNFRklYKSB7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9CQVNFRklYOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9OT0JBU0VGSVg7CisgICAgfQorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0hVR0UpIHsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9IVUdFOworICAgICAgICBvcHRpb25zIC09IFhNTF9QQVJTRV9IVUdFOworICAgIH0KKyAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9PTERTQVgpIHsKKwljdHh0LT5vcHRpb25zIHw9IFhNTF9QQVJTRV9PTERTQVg7CisgICAgICAgIG9wdGlvbnMgLT0gWE1MX1BBUlNFX09MRFNBWDsKKyAgICB9CisgICAgY3R4dC0+bGluZW51bWJlcnMgPSAxOworICAgIHJldHVybiAob3B0aW9ucyk7Cit9CisKKy8qKgorICogeG1sQ3R4dFVzZU9wdGlvbnM6CisgKiBAY3R4dDogYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogQXBwbGllcyB0aGUgb3B0aW9ucyB0byB0aGUgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCB0aGUgc2V0IG9mIHVua25vd24gb3IgdW5pbXBsZW1lbnRlZCBvcHRpb25zCisgKiAgICAgICAgIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sQ3R4dFVzZU9wdGlvbnMoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBpbnQgb3B0aW9ucykKK3sKKyAgIHJldHVybih4bWxDdHh0VXNlT3B0aW9uc0ludGVybmFsKGN0eHQsIG9wdGlvbnMsIE5VTEwpKTsKK30KKworLyoqCisgKiB4bWxEb1JlYWQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKiBAcmV1c2U6ICBrZWVwIHRoZSBjb250ZXh0IGZvciByZXVzZQorICoKKyAqIENvbW1vbiBmcm9udC1lbmQgZm9yIHRoZSB4bWxSZWFkIGZ1bmN0aW9ucworICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlIG9yIE5VTEwKKyAqLworc3RhdGljIHhtbERvY1B0cgoreG1sRG9SZWFkKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICplbmNvZGluZywKKyAgICAgICAgICBpbnQgb3B0aW9ucywgaW50IHJldXNlKQoreworICAgIHhtbERvY1B0ciByZXQ7CisKKyAgICB4bWxDdHh0VXNlT3B0aW9uc0ludGVybmFsKGN0eHQsIG9wdGlvbnMsIGVuY29kaW5nKTsKKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworICAgICAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhkbHI7CisKKwloZGxyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworCWlmIChoZGxyICE9IE5VTEwpCisJICAgIHhtbFN3aXRjaFRvRW5jb2RpbmcoY3R4dCwgaGRscik7CisgICAgfQorICAgIGlmICgoVVJMICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+aW5wdXQtPmZpbGVuYW1lID09IE5VTEwpKQorICAgICAgICBjdHh0LT5pbnB1dC0+ZmlsZW5hbWUgPSAoY2hhciAqKSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgVVJMKTsKKyAgICB4bWxQYXJzZURvY3VtZW50KGN0eHQpOworICAgIGlmICgoY3R4dC0+d2VsbEZvcm1lZCkgfHwgY3R4dC0+cmVjb3ZlcnkpCisgICAgICAgIHJldCA9IGN0eHQtPm15RG9jOworICAgIGVsc2UgeworICAgICAgICByZXQgPSBOVUxMOworCWlmIChjdHh0LT5teURvYyAhPSBOVUxMKSB7CisJICAgIHhtbEZyZWVEb2MoY3R4dC0+bXlEb2MpOworCX0KKyAgICB9CisgICAgY3R4dC0+bXlEb2MgPSBOVUxMOworICAgIGlmICghcmV1c2UpIHsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVhZERvYzoKKyAqIEBjdXI6ICBhIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nCisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24KKyAqCisgKiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuCisgKiAKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB0cmVlCisgKi8KK3htbERvY1B0cgoreG1sUmVhZERvYyhjb25zdCB4bWxDaGFyICogY3VyLCBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBjdHh0ID0geG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dChjdXIpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgcmV0dXJuICh4bWxEb1JlYWQoY3R4dCwgVVJMLCBlbmNvZGluZywgb3B0aW9ucywgMCkpOworfQorCisvKioKKyAqIHhtbFJlYWRGaWxlOgorICogQGZpbGVuYW1lOiAgYSBmaWxlIG9yIFVSTAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogcGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4KKyAqIAorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworeG1sRG9jUHRyCit4bWxSZWFkRmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIGN0eHQgPSB4bWxDcmVhdGVVUkxQYXJzZXJDdHh0KGZpbGVuYW1lLCBvcHRpb25zKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHJldHVybiAoeG1sRG9SZWFkKGN0eHQsIE5VTEwsIGVuY29kaW5nLCBvcHRpb25zLCAwKSk7Cit9CisKKy8qKgorICogeG1sUmVhZE1lbW9yeToKKyAqIEBidWZmZXI6ICBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5CisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogcGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudCBhbmQgYnVpbGQgYSB0cmVlLgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCit4bWxEb2NQdHIKK3htbFJlYWRNZW1vcnkoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSwgY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworCisgICAgY3R4dCA9IHhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQoYnVmZmVyLCBzaXplKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHJldHVybiAoeG1sRG9SZWFkKGN0eHQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDApKTsKK30KKworLyoqCisgKiB4bWxSZWFkRmQ6CisgKiBAZmQ6ICBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvcgorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogcGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqIE5PVEUgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIHdpbGwgbm90IGJlIGNsb3NlZCB3aGVuIHRoZQorICogICAgICByZWFkZXIgaXMgY2xvc2VkIG9yIHJlc2V0LgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCit4bWxEb2NQdHIKK3htbFJlYWRGZChpbnQgZmQsIGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoZmQgPCAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgaW5wdXQgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkKGZkLCBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpbnB1dC0+Y2xvc2VjYWxsYmFjayA9IE5VTEw7CisgICAgY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihpbnB1dCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHN0cmVhbSA9IHhtbE5ld0lPSW5wdXRTdHJlYW0oY3R4dCwgaW5wdXQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChzdHJlYW0gPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpbnB1dFB1c2goY3R4dCwgc3RyZWFtKTsKKyAgICByZXR1cm4gKHhtbERvUmVhZChjdHh0LCBVUkwsIGVuY29kaW5nLCBvcHRpb25zLCAwKSk7Cit9CisKKy8qKgorICogeG1sUmVhZElPOgorICogQGlvcmVhZDogIGFuIEkvTyByZWFkIGZ1bmN0aW9uCisgKiBAaW9jbG9zZTogIGFuIEkvTyBjbG9zZSBmdW5jdGlvbgorICogQGlvY3R4OiAgYW4gSS9PIGhhbmRsZXIKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICoKKyAqIHBhcnNlIGFuIFhNTCBkb2N1bWVudCBmcm9tIEkvTyBmdW5jdGlvbnMgYW5kIHNvdXJjZSBhbmQgYnVpbGQgYSB0cmVlLgorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCit4bWxEb2NQdHIKK3htbFJlYWRJTyh4bWxJbnB1dFJlYWRDYWxsYmFjayBpb3JlYWQsIHhtbElucHV0Q2xvc2VDYWxsYmFjayBpb2Nsb3NlLAorICAgICAgICAgIHZvaWQgKmlvY3R4LCBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgc3RyZWFtOworCisgICAgaWYgKGlvcmVhZCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgaW5wdXQgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUlPKGlvcmVhZCwgaW9jbG9zZSwgaW9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBzdHJlYW0gPSB4bWxOZXdJT0lucHV0U3RyZWFtKGN0eHQsIGlucHV0LCBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKyAgICBpZiAoc3RyZWFtID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGlucHV0KTsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgaW5wdXRQdXNoKGN0eHQsIHN0cmVhbSk7CisgICAgcmV0dXJuICh4bWxEb1JlYWQoY3R4dCwgVVJMLCBlbmNvZGluZywgb3B0aW9ucywgMCkpOworfQorCisvKioKKyAqIHhtbEN0eHRSZWFkRG9jOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBjdXI6ICBhIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nCisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24KKyAqCisgKiBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuCisgKiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQKKyAqIAorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworeG1sRG9jUHRyCit4bWxDdHh0UmVhZERvYyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKiBjdXIsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHhtbEN0eHRSZXNldChjdHh0KTsKKworICAgIHN0cmVhbSA9IHhtbE5ld1N0cmluZ0lucHV0U3RyZWFtKGN0eHQsIGN1cik7CisgICAgaWYgKHN0cmVhbSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGlucHV0UHVzaChjdHh0LCBzdHJlYW0pOworICAgIHJldHVybiAoeG1sRG9SZWFkKGN0eHQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDEpKTsKK30KKworLyoqCisgKiB4bWxDdHh0UmVhZEZpbGU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGZpbGVuYW1lOiAgYSBmaWxlIG9yIFVSTAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogcGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4KKyAqIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dAorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCit4bWxEb2NQdHIKK3htbEN0eHRSZWFkRmlsZSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgeG1sQ3R4dFJlc2V0KGN0eHQpOworCisgICAgc3RyZWFtID0geG1sTG9hZEV4dGVybmFsRW50aXR5KGZpbGVuYW1lLCBOVUxMLCBjdHh0KTsKKyAgICBpZiAoc3RyZWFtID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgaW5wdXRQdXNoKGN0eHQsIHN0cmVhbSk7CisgICAgcmV0dXJuICh4bWxEb1JlYWQoY3R4dCwgTlVMTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDEpKTsKK30KKworLyoqCisgKiB4bWxDdHh0UmVhZE1lbW9yeToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAYnVmZmVyOiAgYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheQorICogQHNpemU6ICB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICoKKyAqIHBhcnNlIGFuIFhNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS4KKyAqIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAY3R4dCBwYXJzZXIgY29udGV4dAorICogCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQorICovCit4bWxEb2NQdHIKK3htbEN0eHRSZWFkTWVtb3J5KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0OworICAgIHhtbFBhcnNlcklucHV0UHRyIHN0cmVhbTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgeG1sQ3R4dFJlc2V0KGN0eHQpOworCisgICAgaW5wdXQgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbShidWZmZXIsIHNpemUsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIHN0cmVhbSA9IHhtbE5ld0lPSW5wdXRTdHJlYW0oY3R4dCwgaW5wdXQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChzdHJlYW0gPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihpbnB1dCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlucHV0UHVzaChjdHh0LCBzdHJlYW0pOworICAgIHJldHVybiAoeG1sRG9SZWFkKGN0eHQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDEpKTsKK30KKworLyoqCisgKiB4bWxDdHh0UmVhZEZkOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBmZDogIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yCisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24KKyAqCisgKiBwYXJzZSBhbiBYTUwgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciBhbmQgYnVpbGQgYSB0cmVlLgorICogVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEBjdHh0IHBhcnNlciBjb250ZXh0CisgKiBOT1RFIHRoYXQgdGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsIG5vdCBiZSBjbG9zZWQgd2hlbiB0aGUKKyAqICAgICAgcmVhZGVyIGlzIGNsb3NlZCBvciByZXNldC4KKyAqIAorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworeG1sRG9jUHRyCit4bWxDdHh0UmVhZEZkKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50IGZkLAorICAgICAgICAgICAgICBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBzdHJlYW07CisKKyAgICBpZiAoZmQgPCAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICB4bWxDdHh0UmVzZXQoY3R4dCk7CisKKworICAgIGlucHV0ID0geG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZChmZCwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaW5wdXQtPmNsb3NlY2FsbGJhY2sgPSBOVUxMOworICAgIHN0cmVhbSA9IHhtbE5ld0lPSW5wdXRTdHJlYW0oY3R4dCwgaW5wdXQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChzdHJlYW0gPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpbnB1dFB1c2goY3R4dCwgc3RyZWFtKTsKKyAgICByZXR1cm4gKHhtbERvUmVhZChjdHh0LCBVUkwsIGVuY29kaW5nLCBvcHRpb25zLCAxKSk7Cit9CisKKy8qKgorICogeG1sQ3R4dFJlYWRJTzoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAaW9yZWFkOiAgYW4gSS9PIHJlYWQgZnVuY3Rpb24KKyAqIEBpb2Nsb3NlOiAgYW4gSS9PIGNsb3NlIGZ1bmN0aW9uCisgKiBAaW9jdHg6ICBhbiBJL08gaGFuZGxlcgorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogcGFyc2UgYW4gWE1MIGRvY3VtZW50IGZyb20gSS9PIGZ1bmN0aW9ucyBhbmQgc291cmNlIGFuZCBidWlsZCBhIHRyZWUuCisgKiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQGN0eHQgcGFyc2VyIGNvbnRleHQKKyAqIAorICogUmV0dXJucyB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKKyAqLworeG1sRG9jUHRyCit4bWxDdHh0UmVhZElPKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sSW5wdXRSZWFkQ2FsbGJhY2sgaW9yZWFkLAorICAgICAgICAgICAgICB4bWxJbnB1dENsb3NlQ2FsbGJhY2sgaW9jbG9zZSwgdm9pZCAqaW9jdHgsCisJICAgICAgY29uc3QgY2hhciAqVVJMLAorICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgc3RyZWFtOworCisgICAgaWYgKGlvcmVhZCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICB4bWxDdHh0UmVzZXQoY3R4dCk7CisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8oaW9yZWFkLCBpb2Nsb3NlLCBpb2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgc3RyZWFtID0geG1sTmV3SU9JbnB1dFN0cmVhbShjdHh0LCBpbnB1dCwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKHN0cmVhbSA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihpbnB1dCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGlucHV0UHVzaChjdHh0LCBzdHJlYW0pOworICAgIHJldHVybiAoeG1sRG9SZWFkKGN0eHQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMsIDEpKTsKK30KKworI2RlZmluZSBib3R0b21fcGFyc2VyCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9wYXJzZXJJbnRlcm5hbHMuYyBiL2xpYnhtbDItMi43LjcvcGFyc2VySW50ZXJuYWxzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQwNGRkZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcGFyc2VySW50ZXJuYWxzLmMKQEAgLTAsMCArMSwyMTYyIEBACisvKgorICogcGFyc2VySW50ZXJuYWxzLmMgOiBJbnRlcm5hbCByb3V0aW5lcyAoYW5kIG9ic29sZXRlIG9uZXMpIG5lZWRlZCBmb3IgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgIFhNTCBhbmQgSFRNTCBwYXJzZXJzLgorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmIGRlZmluZWQoV0lOMzIpICYmICFkZWZpbmVkIChfX0NZR1dJTl9fKQorI2RlZmluZSBYTUxfRElSX1NFUCAnXFwnCisjZWxzZQorI2RlZmluZSBYTUxfRElSX1NFUCAnLycKKyNlbmRpZgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaWZkZWYgSEFWRV9DVFlQRV9ICisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0ZDTlRMX0gKKyNpbmNsdWRlIDxmY250bC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9aTElCX0gKKyNpbmNsdWRlIDx6bGliLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3ZhbGlkLmg+CisjaW5jbHVkZSA8bGlieG1sL2VudGl0aWVzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL2VuY29kaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3ZhbGlkLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbElPLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2luY2x1ZGUgPGxpYnhtbC9kaWN0Lmg+CisjaW5jbHVkZSA8bGlieG1sL1NBWC5oPgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwvY2F0YWxvZy5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvY2h2YWxpZC5oPgorCisvKgorICogVmFyaW91cyBnbG9iYWwgZGVmYXVsdHMgZm9yIHBhcnNpbmcKKyAqLworCisvKioKKyAqIHhtbENoZWNrVmVyc2lvbjoKKyAqIEB2ZXJzaW9uOiB0aGUgaW5jbHVkZSB2ZXJzaW9uIG51bWJlcgorICoKKyAqIGNoZWNrIHRoZSBjb21waWxlZCBsaWIgdmVyc2lvbiBhZ2FpbnN0IHRoZSBpbmNsdWRlIG9uZS4KKyAqIFRoaXMgY2FuIHdhcm4gb3IgaW1tZWRpYXRlbHkga2lsbCB0aGUgYXBwbGljYXRpb24KKyAqLwordm9pZAoreG1sQ2hlY2tWZXJzaW9uKGludCB2ZXJzaW9uKSB7CisgICAgaW50IG15dmVyc2lvbiA9IChpbnQpIExJQlhNTF9WRVJTSU9OOworCisgICAgeG1sSW5pdFBhcnNlcigpOworCisgICAgaWYgKChteXZlcnNpb24gLyAxMDAwMCkgIT0gKHZlcnNpb24gLyAxMDAwMCkpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgCisJCSJGYXRhbDogcHJvZ3JhbSBjb21waWxlZCBhZ2FpbnN0IGxpYnhtbCAlZCB1c2luZyBsaWJ4bWwgJWRcbiIsCisJCSh2ZXJzaW9uIC8gMTAwMDApLCAobXl2ZXJzaW9uIC8gMTAwMDApKTsKKwlmcHJpbnRmKHN0ZGVyciwgCisJCSJGYXRhbDogcHJvZ3JhbSBjb21waWxlZCBhZ2FpbnN0IGxpYnhtbCAlZCB1c2luZyBsaWJ4bWwgJWRcbiIsCisJCSh2ZXJzaW9uIC8gMTAwMDApLCAobXl2ZXJzaW9uIC8gMTAwMDApKTsKKyAgICB9CisgICAgaWYgKChteXZlcnNpb24gLyAxMDApIDwgKHZlcnNpb24gLyAxMDApKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsIAorCQkiV2FybmluZzogcHJvZ3JhbSBjb21waWxlZCBhZ2FpbnN0IGxpYnhtbCAlZCB1c2luZyBvbGRlciAlZFxuIiwKKwkJKHZlcnNpb24gLyAxMDApLCAobXl2ZXJzaW9uIC8gMTAwKSk7CisgICAgfQorfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQlTb21lIGZhY3Rvcml6ZWQgZXJyb3Igcm91dGluZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKgorICogeG1sRXJyTWVtb3J5OgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhIHJlZGVmaW5pdGlvbiBvZiBhdHRyaWJ1dGUgZXJyb3IKKyAqLwordm9pZAoreG1sRXJyTWVtb3J5KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBjdHh0LT5lcnJObyA9IFhNTF9FUlJfTk9fTUVNT1JZOworICAgICAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgIH0KKyAgICBpZiAoZXh0cmEpCisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX05PX01FTU9SWSwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgZXh0cmEsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7CisgICAgZWxzZQorICAgICAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLAorICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9OT19NRU1PUlksIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAwLCAwLCAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkXG4iKTsKK30KKworLyoqCisgKiBfX3htbEVyckVuY29kaW5nOgorICogQGN0eHQ6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEB4bWxlcnI6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBzdHIxOiAgYW4gc3RyaW5nIGluZm8KKyAqIEBzdHIyOiAgYW4gc3RyaW5nIGluZm8KKyAqCisgKiBIYW5kbGUgYW4gZW5jb2RpbmcgZXJyb3IKKyAqLwordm9pZAorX194bWxFcnJFbmNvZGluZyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyB4bWxlcnIsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgorICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCisJcmV0dXJuOworICAgIGlmIChjdHh0ICE9IE5VTEwpCisgICAgICAgIGN0eHQtPmVyck5vID0geG1sZXJyOworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICBjdHh0LCBOVUxMLCBYTUxfRlJPTV9QQVJTRVIsIHhtbGVyciwgWE1MX0VSUl9GQVRBTCwKKyAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMiwKKyAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgMCwgbXNnLCBzdHIxLCBzdHIyKTsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGN0eHQtPndlbGxGb3JtZWQgPSAwOworICAgICAgICBpZiAoY3R4dC0+cmVjb3ZlcnkgPT0gMCkKKyAgICAgICAgICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgIH0KK30KKworLyoqCisgKiB4bWxFcnJJbnRlcm5hbDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBzdHI6ICBlcnJvciBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYW4gaW50ZXJuYWwgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbEVyckludGVybmFsKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICogc3RyKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGlzYWJsZVNBWCAhPSAwKSAmJgorICAgICAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikpCisJcmV0dXJuOworICAgIGlmIChjdHh0ICE9IE5VTEwpCisgICAgICAgIGN0eHQtPmVyck5vID0gWE1MX0VSUl9JTlRFUk5BTF9FUlJPUjsKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCAoY29uc3QgY2hhciAqKSBzdHIsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIG1zZywgc3RyKTsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGN0eHQtPndlbGxGb3JtZWQgPSAwOworICAgICAgICBpZiAoY3R4dC0+cmVjb3ZlcnkgPT0gMCkKKyAgICAgICAgICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgIH0KK30KKworLyoqCisgKiB4bWxFcnJFbmNvZGluZ0ludDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEB2YWw6ICBhbiBpbnRlZ2VyIHZhbHVlCisgKgorICogbiBlbmNvZGluZyBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sRXJyRW5jb2RpbmdJbnQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGludCB2YWwpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5kaXNhYmxlU0FYICE9IDApICYmCisgICAgICAgIChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSkKKwlyZXR1cm47CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKyAgICAgICAgY3R4dC0+ZXJyTm8gPSBlcnJvcjsKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgY3R4dCwgTlVMTCwgWE1MX0ZST01fUEFSU0VSLCBlcnJvciwgWE1MX0VSUl9GQVRBTCwKKyAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgTlVMTCwgTlVMTCwgTlVMTCwgdmFsLCAwLCBtc2csIHZhbCk7CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBjdHh0LT53ZWxsRm9ybWVkID0gMDsKKyAgICAgICAgaWYgKGN0eHQtPnJlY292ZXJ5ID09IDApCisgICAgICAgICAgICBjdHh0LT5kaXNhYmxlU0FYID0gMTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sSXNMZXR0ZXI6CisgKiBAYzogIGFuIHVuaWNvZGUgY2hhcmFjdGVyIChpbnQpCisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGFsbG93ZWQgYnkgdGhlIHByb2R1Y3Rpb24KKyAqIFs4NF0gTGV0dGVyIDo6PSBCYXNlQ2hhciB8IElkZW9ncmFwaGljCisgKgorICogUmV0dXJucyAwIGlmIG5vdCwgbm9uLXplcm8gb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sSXNMZXR0ZXIoaW50IGMpIHsKKyAgICByZXR1cm4oSVNfQkFTRUNIQVIoYykgfHwgSVNfSURFT0dSQVBISUMoYykpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJSW5wdXQgaGFuZGxpbmcgZnVuY3Rpb25zIGZvciBwcm9ncmVzc2l2ZSBwYXJzaW5nCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogI2RlZmluZSBERUJVR19JTlBVVCAqLworLyogI2RlZmluZSBERUJVR19TVEFDSyAqLworLyogI2RlZmluZSBERUJVR19QVVNIICovCisKKworLyogd2UgbmVlZCB0byBrZWVwIGVub3VnaCBpbnB1dCB0byBzaG93IGVycm9ycyBpbiBjb250ZXh0ICovCisjZGVmaW5lIExJTkVfTEVOICAgICAgICA4MAorCisjaWZkZWYgREVCVUdfSU5QVVQKKyNkZWZpbmUgQ0hFQ0tfQlVGRkVSKGluKSBjaGVja19idWZmZXIoaW4pCisKK3N0YXRpYwordm9pZCBjaGVja19idWZmZXIoeG1sUGFyc2VySW5wdXRQdHIgaW4pIHsKKyAgICBpZiAoaW4tPmJhc2UgIT0gaW4tPmJ1Zi0+YnVmZmVyLT5jb250ZW50KSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sUGFyc2VySW5wdXQ6IGJhc2UgbWlzbWF0Y2ggcHJvYmxlbVxuIik7CisgICAgfQorICAgIGlmIChpbi0+Y3VyIDwgaW4tPmJhc2UpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxQYXJzZXJJbnB1dDogY3VyIDwgYmFzZSBwcm9ibGVtXG4iKTsKKyAgICB9CisgICAgaWYgKGluLT5jdXIgPiBpbi0+YmFzZSArIGluLT5idWYtPmJ1ZmZlci0+dXNlKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sUGFyc2VySW5wdXQ6IGN1ciA+IGJhc2UgKyB1c2UgcHJvYmxlbVxuIik7CisgICAgfQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCJidWZmZXIgJXggOiBjb250ZW50ICV4LCBjdXIgJWQsIHVzZSAlZCwgc2l6ZSAlZFxuIiwKKyAgICAgICAgICAgIChpbnQpIGluLCAoaW50KSBpbi0+YnVmLT5idWZmZXItPmNvbnRlbnQsIGluLT5jdXIgLSBpbi0+YmFzZSwKKwkgICAgaW4tPmJ1Zi0+YnVmZmVyLT51c2UsIGluLT5idWYtPmJ1ZmZlci0+c2l6ZSk7Cit9CisKKyNlbHNlCisjZGVmaW5lIENIRUNLX0JVRkZFUihpbikgCisjZW5kaWYKKworCisvKioKKyAqIHhtbFBhcnNlcklucHV0UmVhZDoKKyAqIEBpbjogIGFuIFhNTCBwYXJzZXIgaW5wdXQKKyAqIEBsZW46ICBhbiBpbmRpY2F0aXZlIHNpemUgZm9yIHRoZSBsb29rYWhlYWQKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlZnJlc2ggdGhlIGlucHV0IGZvciB0aGUgcGFyc2VyLiBJdCBkb2Vzbid0IHRyeSB0bworICogcHJlc2VydmUgcG9pbnRlcnMgdG8gdGhlIGlucHV0IGJ1ZmZlciwgYW5kIGRpc2NhcmQgYWxyZWFkeSByZWFkIGRhdGEKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgeG1sQ2hhcnMgcmVhZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpbmRpY2F0ZSB0aGUKKyAqIGVuZCBvZiB0aGlzIGVudGl0eQorICovCitpbnQKK3htbFBhcnNlcklucHV0UmVhZCh4bWxQYXJzZXJJbnB1dFB0ciBpbiwgaW50IGxlbikgeworICAgIGludCByZXQ7CisgICAgaW50IHVzZWQ7CisgICAgaW50IGluZHg7CisKKyAgICBpZiAoaW4gPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyNpZmRlZiBERUJVR19JTlBVVAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiUmVhZFxuIik7CisjZW5kaWYKKyAgICBpZiAoaW4tPmJ1ZiA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChpbi0+YmFzZSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChpbi0+Y3VyID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaWYgKGluLT5idWYtPmJ1ZmZlciA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChpbi0+YnVmLT5yZWFkY2FsbGJhY2sgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKworICAgIENIRUNLX0JVRkZFUihpbik7CisKKyAgICB1c2VkID0gaW4tPmN1ciAtIGluLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICByZXQgPSB4bWxCdWZmZXJTaHJpbmsoaW4tPmJ1Zi0+YnVmZmVyLCB1c2VkKTsKKyAgICBpZiAocmV0ID4gMCkgeworCWluLT5jdXIgLT0gcmV0OworCWluLT5jb25zdW1lZCArPSByZXQ7CisgICAgfQorICAgIHJldCA9IHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZChpbi0+YnVmLCBsZW4pOworICAgIGlmIChpbi0+YmFzZSAhPSBpbi0+YnVmLT5idWZmZXItPmNvbnRlbnQpIHsKKyAgICAgICAgLyoKKwkgKiB0aGUgYnVmZmVyIGhhcyBiZWVuIHJlYWxsb2NhdGVkCisJICovCisJaW5keCA9IGluLT5jdXIgLSBpbi0+YmFzZTsKKwlpbi0+YmFzZSA9IGluLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKwlpbi0+Y3VyID0gJmluLT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbmR4XTsKKyAgICB9CisgICAgaW4tPmVuZCA9ICZpbi0+YnVmLT5idWZmZXItPmNvbnRlbnRbaW4tPmJ1Zi0+YnVmZmVyLT51c2VdOworCisgICAgQ0hFQ0tfQlVGRkVSKGluKTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFBhcnNlcklucHV0R3JvdzoKKyAqIEBpbjogIGFuIFhNTCBwYXJzZXIgaW5wdXQKKyAqIEBsZW46ICBhbiBpbmRpY2F0aXZlIHNpemUgZm9yIHRoZSBsb29rYWhlYWQKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGluY3JlYXNlIHRoZSBpbnB1dCBmb3IgdGhlIHBhcnNlci4gSXQgdHJpZXMgdG8KKyAqIHByZXNlcnZlIHBvaW50ZXJzIHRvIHRoZSBpbnB1dCBidWZmZXIsIGFuZCBrZWVwIGFscmVhZHkgcmVhZCBkYXRhCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHhtbENoYXJzIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaW5kaWNhdGUgdGhlCisgKiBlbmQgb2YgdGhpcyBlbnRpdHkKKyAqLworaW50Cit4bWxQYXJzZXJJbnB1dEdyb3coeG1sUGFyc2VySW5wdXRQdHIgaW4sIGludCBsZW4pIHsKKyAgICBpbnQgcmV0OworICAgIGludCBpbmR4OworCisgICAgaWYgKGluID09IE5VTEwpIHJldHVybigtMSk7CisjaWZkZWYgREVCVUdfSU5QVVQKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkdyb3dcbiIpOworI2VuZGlmCisgICAgaWYgKGluLT5idWYgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoaW4tPmJhc2UgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoaW4tPmN1ciA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChpbi0+YnVmLT5idWZmZXIgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKworICAgIENIRUNLX0JVRkZFUihpbik7CisKKyAgICBpbmR4ID0gaW4tPmN1ciAtIGluLT5iYXNlOworICAgIGlmIChpbi0+YnVmLT5idWZmZXItPnVzZSA+ICh1bnNpZ25lZCBpbnQpIGluZHggKyBJTlBVVF9DSFVOSykgeworCisJQ0hFQ0tfQlVGRkVSKGluKTsKKworICAgICAgICByZXR1cm4oMCk7CisgICAgfQorICAgIGlmIChpbi0+YnVmLT5yZWFkY2FsbGJhY2sgIT0gTlVMTCkKKwlyZXQgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3coaW4tPmJ1ZiwgbGVuKTsKKyAgICBlbHNlCQorICAgICAgICByZXR1cm4oMCk7CisKKyAgICAvKgorICAgICAqIE5PVEUgOiBpbi0+YmFzZSBtYXkgYmUgYSAiZGFuZ2xpbmciIGkuZS4gZnJlZWQgcG9pbnRlciBpbiB0aGlzCisgICAgICogICAgICAgIGJsb2NrLCBidXQgd2UgdXNlIGl0IHJlYWxseSBhcyBhbiBpbnRlZ2VyIHRvIGRvIHNvbWUKKyAgICAgKiAgICAgICAgcG9pbnRlciBhcml0aG1ldGljLiBJbnN1cmUgd2lsbCByYWlzZSBpdCBhcyBhIGJ1ZyBidXQgaW4KKyAgICAgKiAgICAgICAgdGhhdCBzcGVjaWZpYyBjYXNlLCB0aGF0J3Mgbm90ICEKKyAgICAgKi8KKyAgICBpZiAoaW4tPmJhc2UgIT0gaW4tPmJ1Zi0+YnVmZmVyLT5jb250ZW50KSB7CisgICAgICAgIC8qCisJICogdGhlIGJ1ZmZlciBoYXMgYmVlbiByZWFsbG9jYXRlZAorCSAqLworCWluZHggPSBpbi0+Y3VyIC0gaW4tPmJhc2U7CisJaW4tPmJhc2UgPSBpbi0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisJaW4tPmN1ciA9ICZpbi0+YnVmLT5idWZmZXItPmNvbnRlbnRbaW5keF07CisgICAgfQorICAgIGluLT5lbmQgPSAmaW4tPmJ1Zi0+YnVmZmVyLT5jb250ZW50W2luLT5idWYtPmJ1ZmZlci0+dXNlXTsKKworICAgIENIRUNLX0JVRkZFUihpbik7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXJzZXJJbnB1dFNocmluazoKKyAqIEBpbjogIGFuIFhNTCBwYXJzZXIgaW5wdXQKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgdXNlZCBpbnB1dCBmb3IgdGhlIHBhcnNlci4KKyAqLwordm9pZAoreG1sUGFyc2VySW5wdXRTaHJpbmsoeG1sUGFyc2VySW5wdXRQdHIgaW4pIHsKKyAgICBpbnQgdXNlZDsKKyAgICBpbnQgcmV0OworICAgIGludCBpbmR4OworCisjaWZkZWYgREVCVUdfSU5QVVQKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlNocmlua1xuIik7CisjZW5kaWYKKyAgICBpZiAoaW4gPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChpbi0+YnVmID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAoaW4tPmJhc2UgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChpbi0+Y3VyID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAoaW4tPmJ1Zi0+YnVmZmVyID09IE5VTEwpIHJldHVybjsKKworICAgIENIRUNLX0JVRkZFUihpbik7CisKKyAgICB1c2VkID0gaW4tPmN1ciAtIGluLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICAvKgorICAgICAqIERvIG5vdCBzaHJpbmsgb24gbGFyZ2UgYnVmZmVycyB3aG9zZSBvbmx5IGEgdGlueSBmcmFjdGlvbgorICAgICAqIHdhcyBjb25zdW1lZAorICAgICAqLworICAgIGlmICh1c2VkID4gSU5QVVRfQ0hVTkspIHsKKwlyZXQgPSB4bWxCdWZmZXJTaHJpbmsoaW4tPmJ1Zi0+YnVmZmVyLCB1c2VkIC0gTElORV9MRU4pOworCWlmIChyZXQgPiAwKSB7CisJICAgIGluLT5jdXIgLT0gcmV0OworCSAgICBpbi0+Y29uc3VtZWQgKz0gcmV0OworCX0KKwlpbi0+ZW5kID0gJmluLT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbi0+YnVmLT5idWZmZXItPnVzZV07CisgICAgfQorCisgICAgQ0hFQ0tfQlVGRkVSKGluKTsKKworICAgIGlmIChpbi0+YnVmLT5idWZmZXItPnVzZSA+IElOUFVUX0NIVU5LKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkKGluLT5idWYsIDIgKiBJTlBVVF9DSFVOSyk7CisgICAgaWYgKGluLT5iYXNlICE9IGluLT5idWYtPmJ1ZmZlci0+Y29udGVudCkgeworICAgICAgICAvKgorCSAqIHRoZSBidWZmZXIgaGFzIGJlZW4gcmVhbGxvY2F0ZWQKKwkgKi8KKwlpbmR4ID0gaW4tPmN1ciAtIGluLT5iYXNlOworCWluLT5iYXNlID0gaW4tPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworCWluLT5jdXIgPSAmaW4tPmJ1Zi0+YnVmZmVyLT5jb250ZW50W2luZHhdOworICAgIH0KKyAgICBpbi0+ZW5kID0gJmluLT5idWYtPmJ1ZmZlci0+Y29udGVudFtpbi0+YnVmLT5idWZmZXItPnVzZV07CisKKyAgICBDSEVDS19CVUZGRVIoaW4pOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJVVRGOCBjaGFyYWN0ZXIgaW5wdXQgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sTmV4dENoYXI6CisgKiBAY3R4dDogIHRoZSBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBTa2lwIHRvIHRoZSBuZXh0IGNoYXIgaW5wdXQgY2hhci4KKyAqLworCit2b2lkCit4bWxOZXh0Q2hhcih4bWxQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5pbnN0YXRlID09IFhNTF9QQVJTRVJfRU9GKSB8fAorICAgICAgICAoY3R4dC0+aW5wdXQgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjdHh0LT5jaGFyc2V0ID09IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpIHsKKyAgICAgICAgaWYgKCgqY3R4dC0+aW5wdXQtPmN1ciA9PSAwKSAmJgorICAgICAgICAgICAgKHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspIDw9IDApICYmCisgICAgICAgICAgICAoY3R4dC0+aW5zdGF0ZSAhPSBYTUxfUEFSU0VSX0NPTU1FTlQpKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSWYgd2UgYXJlIGF0IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgZW50aXR5IGFuZAorICAgICAgICAgICAgICogdGhlIGNvbnRleHQgYWxsb3dzIGl0LCB3ZSBwb3AgY29uc3VtZWQgZW50aXRpZXMKKyAgICAgICAgICAgICAqIGF1dG9tYXRpY2FsbHkuCisgICAgICAgICAgICAgKiB0aGUgYXV0byBjbG9zaW5nIHNob3VsZCBiZSBibG9ja2VkIGluIG90aGVyIGNhc2VzCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHhtbFBvcElucHV0KGN0eHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqY3VyOworICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogICAyLjExIEVuZC1vZi1MaW5lIEhhbmRsaW5nCisgICAgICAgICAgICAgKiAgIHRoZSBsaXRlcmFsIHR3by1jaGFyYWN0ZXIgc2VxdWVuY2UgIiN4RCN4QSIgb3IgYSBzdGFuZGFsb25lCisgICAgICAgICAgICAgKiAgIGxpdGVyYWwgI3hELCBhbiBYTUwgcHJvY2Vzc29yIG11c3QgcGFzcyB0byB0aGUgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAqICAgdGhlIHNpbmdsZSBjaGFyYWN0ZXIgI3hBLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoKihjdHh0LT5pbnB1dC0+Y3VyKSA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBjdHh0LT5pbnB1dC0+Y29sKys7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBXZSBhcmUgc3VwcG9zZWQgdG8gaGFuZGxlIFVURjgsIGNoZWNrIGl0J3MgdmFsaWQKKyAgICAgICAgICAgICAqIEZyb20gcmZjMjA0NDogZW5jb2Rpbmcgb2YgdGhlIFVuaWNvZGUgdmFsdWVzIG9uIFVURi04OgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFVDUy00IHJhbmdlIChoZXguKSAgICAgICAgICAgVVRGLTggb2N0ZXQgc2VxdWVuY2UgKGJpbmFyeSkKKyAgICAgICAgICAgICAqIDAwMDAgMDAwMC0wMDAwIDAwN0YgICAweHh4eHh4eAorICAgICAgICAgICAgICogMDAwMCAwMDgwLTAwMDAgMDdGRiAgIDExMHh4eHh4IDEweHh4eHh4CisgICAgICAgICAgICAgKiAwMDAwIDA4MDAtMDAwMCBGRkZGICAgMTExMHh4eHggMTB4eHh4eHggMTB4eHh4eHggCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogQ2hlY2sgZm9yIHRoZSAweDExMDAwMCBsaW1pdCB0b28KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgY3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKKworICAgICAgICAgICAgYyA9ICpjdXI7CisgICAgICAgICAgICBpZiAoYyAmIDB4ODApIHsKKwkgICAgICAgIGlmIChjID09IDB4QzApCisJCSAgICBnb3RvIGVuY29kaW5nX2Vycm9yOworICAgICAgICAgICAgICAgIGlmIChjdXJbMV0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKKyAgICAgICAgICAgICAgICAgICAgY3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChjdXJbMV0gJiAweGMwKSAhPSAweDgwKQorICAgICAgICAgICAgICAgICAgICBnb3RvIGVuY29kaW5nX2Vycm9yOworICAgICAgICAgICAgICAgIGlmICgoYyAmIDB4ZTApID09IDB4ZTApIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZhbDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyWzJdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOworICAgICAgICAgICAgICAgICAgICAgICAgY3VyID0gY3R4dC0+aW5wdXQtPmN1cjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoKGN1clsyXSAmIDB4YzApICE9IDB4ODApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVuY29kaW5nX2Vycm9yOworICAgICAgICAgICAgICAgICAgICBpZiAoKGMgJiAweGYwKSA9PSAweGYwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyWzNdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoYyAmIDB4ZjgpICE9IDB4ZjApIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjdXJbM10gJiAweGMwKSAhPSAweDgwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVuY29kaW5nX2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgLyogNC1ieXRlIGNvZGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IChjdXJbMF0gJiAweDcpIDw8IDE4OworICAgICAgICAgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMV0gJiAweDNmKSA8PCAxMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzJdICYgMHgzZikgPDwgNjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCB8PSBjdXJbM10gJiAweDNmOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMy1ieXRlIGNvZGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IChjdXJbMF0gJiAweGYpIDw8IDEyOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMV0gJiAweDNmKSA8PCA2OworICAgICAgICAgICAgICAgICAgICAgICAgdmFsIHw9IGN1clsyXSAmIDB4M2Y7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCgodmFsID4gMHhkN2ZmKSAmJiAodmFsIDwgMHhlMDAwKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgodmFsID4gMHhmZmZkKSAmJiAodmFsIDwgMHgxMDAwMCkpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAodmFsID49IDB4MTEwMDAwKSkgeworCQkJeG1sRXJyRW5jb2RpbmdJbnQoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJCQkJCSAgIkNoYXIgMHglWCBvdXQgb2YgYWxsb3dlZCByYW5nZVxuIiwKKwkJCQkJICB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIC8qIDItYnl0ZSBjb2RlICovCisgICAgICAgICAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gMjsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIC8qIDEtYnl0ZSBjb2RlICovCisgICAgICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmN1cisrOworCisgICAgICAgICAgICBjdHh0LT5uYkNoYXJzKys7CisgICAgICAgICAgICBpZiAoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkKKyAgICAgICAgICAgICAgICB4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8qCisgICAgICAgICAqIEFzc3VtZSBpdCdzIGEgZml4ZWQgbGVuZ3RoIGVuY29kaW5nICgxKSB3aXRoCisgICAgICAgICAqIGEgY29tcGF0aWJsZSBlbmNvZGluZyBmb3IgdGhlIEFTQ0lJIHNldCwgc2luY2UKKyAgICAgICAgICogWE1MIGNvbnN0cnVjdHMgb25seSB1c2UgPCAxMjggY2hhcnMKKyAgICAgICAgICovCisKKyAgICAgICAgaWYgKCooY3R4dC0+aW5wdXQtPmN1cikgPT0gJ1xuJykgeworICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmxpbmUrKzsgY3R4dC0+aW5wdXQtPmNvbCA9IDE7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY3R4dC0+aW5wdXQtPmNvbCsrOworICAgICAgICBjdHh0LT5pbnB1dC0+Y3VyKys7CisgICAgICAgIGN0eHQtPm5iQ2hhcnMrKzsKKyAgICAgICAgaWYgKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApCisgICAgICAgICAgICB4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKKyAgICB9CisgICAgaWYgKCgqY3R4dC0+aW5wdXQtPmN1ciA9PSAnJScpICYmICghY3R4dC0+aHRtbCkpCisgICAgICAgIHhtbFBhcnNlckhhbmRsZVBFUmVmZXJlbmNlKGN0eHQpOworICAgIGlmICgoKmN0eHQtPmlucHV0LT5jdXIgPT0gMCkgJiYKKyAgICAgICAgKHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspIDw9IDApKQorICAgICAgICB4bWxQb3BJbnB1dChjdHh0KTsKKyAgICByZXR1cm47CitlbmNvZGluZ19lcnJvcjoKKyAgICAvKgorICAgICAqIElmIHdlIGRldGVjdCBhbiBVVEY4IGVycm9yIHRoYXQgcHJvYmFibHkgbWVhbiB0aGF0IHRoZQorICAgICAqIGlucHV0IGVuY29kaW5nIGRpZG4ndCBnZXQgcHJvcGVybHkgYWR2ZXJ0aXNlZCBpbiB0aGUKKyAgICAgKiBkZWNsYXJhdGlvbiBoZWFkZXIuIFJlcG9ydCB0aGUgZXJyb3IgYW5kIHN3aXRjaCB0aGUgZW5jb2RpbmcKKyAgICAgKiB0byBJU08tTGF0aW4tMSAoaWYgeW91IGRvbid0IGxpa2UgdGhpcyBwb2xpY3ksIGp1c3QgZGVjbGFyZSB0aGUKKyAgICAgKiBlbmNvZGluZyAhKQorICAgICAqLworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXQgPT0gTlVMTCkgfHwKKyAgICAgICAgKGN0eHQtPmlucHV0LT5lbmQgLSBjdHh0LT5pbnB1dC0+Y3VyIDwgNCkpIHsKKwlfX3htbEVyckVuY29kaW5nKGN0eHQsIFhNTF9FUlJfSU5WQUxJRF9DSEFSLAorCQkgICAgICJJbnB1dCBpcyBub3QgcHJvcGVyIFVURi04LCBpbmRpY2F0ZSBlbmNvZGluZyAhXG4iLAorCQkgICAgIE5VTEwsIE5VTEwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNoYXIgYnVmZmVyWzE1MF07CisKKwlzbnByaW50ZihidWZmZXIsIDE0OSwgIkJ5dGVzOiAweCUwMlggMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCQljdHh0LT5pbnB1dC0+Y3VyWzBdLCBjdHh0LT5pbnB1dC0+Y3VyWzFdLAorCQkJY3R4dC0+aW5wdXQtPmN1clsyXSwgY3R4dC0+aW5wdXQtPmN1clszXSk7CisJX194bWxFcnJFbmNvZGluZyhjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKwkJICAgICAiSW5wdXQgaXMgbm90IHByb3BlciBVVEYtOCwgaW5kaWNhdGUgZW5jb2RpbmcgIVxuJXMiLAorCQkgICAgIEJBRF9DQVNUIGJ1ZmZlciwgTlVMTCk7CisgICAgfQorICAgIGN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzE7CisgICAgY3R4dC0+aW5wdXQtPmN1cisrOworICAgIHJldHVybjsKK30KKworLyoqCisgKiB4bWxDdXJyZW50Q2hhcjoKKyAqIEBjdHh0OiAgdGhlIFhNTCBwYXJzZXIgY29udGV4dAorICogQGxlbjogIHBvaW50ZXIgdG8gdGhlIGxlbmd0aCBvZiB0aGUgY2hhciByZWFkCisgKgorICogVGhlIGN1cnJlbnQgY2hhciB2YWx1ZSwgaWYgdXNpbmcgVVRGLTggdGhpcyBtYXkgYWN0dWFsbHkgc3BhbiBtdWx0aXBsZQorICogYnl0ZXMgaW4gdGhlIGlucHV0IGJ1ZmZlci4gSW1wbGVtZW50IHRoZSBlbmQgb2YgbGluZSBub3JtYWxpemF0aW9uOgorICogMi4xMSBFbmQtb2YtTGluZSBIYW5kbGluZworICogV2hlcmV2ZXIgYW4gZXh0ZXJuYWwgcGFyc2VkIGVudGl0eSBvciB0aGUgbGl0ZXJhbCBlbnRpdHkgdmFsdWUKKyAqIG9mIGFuIGludGVybmFsIHBhcnNlZCBlbnRpdHkgY29udGFpbnMgZWl0aGVyIHRoZSBsaXRlcmFsIHR3by1jaGFyYWN0ZXIKKyAqIHNlcXVlbmNlICIjeEQjeEEiIG9yIGEgc3RhbmRhbG9uZSBsaXRlcmFsICN4RCwgYW4gWE1MIHByb2Nlc3NvcgorICogbXVzdCBwYXNzIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGUgc2luZ2xlIGNoYXJhY3RlciAjeEEuCisgKiBUaGlzIGJlaGF2aW9yIGNhbiBjb252ZW5pZW50bHkgYmUgcHJvZHVjZWQgYnkgbm9ybWFsaXppbmcgYWxsCisgKiBsaW5lIGJyZWFrcyB0byAjeEEgb24gaW5wdXQsIGJlZm9yZSBwYXJzaW5nLikKKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNoYXIgdmFsdWUgYW5kIGl0cyBsZW5ndGgKKyAqLworCitpbnQKK3htbEN1cnJlbnRDaGFyKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgaW50ICpsZW4pIHsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGxlbiA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXQgPT0gTlVMTCkpIHJldHVybigwKTsKKyAgICBpZiAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0VPRikKKwlyZXR1cm4oMCk7CisKKyAgICBpZiAoKCpjdHh0LT5pbnB1dC0+Y3VyID49IDB4MjApICYmICgqY3R4dC0+aW5wdXQtPmN1ciA8PSAweDdGKSkgeworCSAgICAqbGVuID0gMTsKKwkgICAgcmV0dXJuKChpbnQpICpjdHh0LT5pbnB1dC0+Y3VyKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmNoYXJzZXQgPT0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCkgeworCS8qCisJICogV2UgYXJlIHN1cHBvc2VkIHRvIGhhbmRsZSBVVEY4LCBjaGVjayBpdCdzIHZhbGlkCisJICogRnJvbSByZmMyMDQ0OiBlbmNvZGluZyBvZiB0aGUgVW5pY29kZSB2YWx1ZXMgb24gVVRGLTg6CisJICoKKwkgKiBVQ1MtNCByYW5nZSAoaGV4LikgICAgICAgICAgIFVURi04IG9jdGV0IHNlcXVlbmNlIChiaW5hcnkpCisJICogMDAwMCAwMDAwLTAwMDAgMDA3RiAgIDB4eHh4eHh4CisJICogMDAwMCAwMDgwLTAwMDAgMDdGRiAgIDExMHh4eHh4IDEweHh4eHh4CisJICogMDAwMCAwODAwLTAwMDAgRkZGRiAgIDExMTB4eHh4IDEweHh4eHh4IDEweHh4eHh4IAorCSAqCisJICogQ2hlY2sgZm9yIHRoZSAweDExMDAwMCBsaW1pdCB0b28KKwkgKi8KKwljb25zdCB1bnNpZ25lZCBjaGFyICpjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworCXVuc2lnbmVkIGNoYXIgYzsKKwl1bnNpZ25lZCBpbnQgdmFsOworCisJYyA9ICpjdXI7CisJaWYgKGMgJiAweDgwKSB7CisJICAgIGlmICgoKGMgJiAweDQwKSA9PSAwKSB8fCAoYyA9PSAweEMwKSkKKwkJZ290byBlbmNvZGluZ19lcnJvcjsKKwkgICAgaWYgKGN1clsxXSA9PSAwKSB7CisJCXhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOworICAgICAgICAgICAgICAgIGN1ciA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgICAgICAgICB9CisJICAgIGlmICgoY3VyWzFdICYgMHhjMCkgIT0gMHg4MCkKKwkJZ290byBlbmNvZGluZ19lcnJvcjsKKwkgICAgaWYgKChjICYgMHhlMCkgPT0gMHhlMCkgeworCQlpZiAoY3VyWzJdID09IDApIHsKKwkJICAgIHhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOworICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdHh0LT5pbnB1dC0+Y3VyOworICAgICAgICAgICAgICAgIH0KKwkJaWYgKChjdXJbMl0gJiAweGMwKSAhPSAweDgwKQorCQkgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKwkJaWYgKChjICYgMHhmMCkgPT0gMHhmMCkgeworCQkgICAgaWYgKGN1clszXSA9PSAwKSB7CisJCQl4bWxQYXJzZXJJbnB1dEdyb3coY3R4dC0+aW5wdXQsIElOUFVUX0NIVU5LKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1ciA9IGN0eHQtPmlucHV0LT5jdXI7CisgICAgICAgICAgICAgICAgICAgIH0KKwkJICAgIGlmICgoKGMgJiAweGY4KSAhPSAweGYwKSB8fAorCQkJKChjdXJbM10gJiAweGMwKSAhPSAweDgwKSkKKwkJCWdvdG8gZW5jb2RpbmdfZXJyb3I7CisJCSAgICAvKiA0LWJ5dGUgY29kZSAqLworCQkgICAgKmxlbiA9IDQ7CisJCSAgICB2YWwgPSAoY3VyWzBdICYgMHg3KSA8PCAxODsKKwkJICAgIHZhbCB8PSAoY3VyWzFdICYgMHgzZikgPDwgMTI7CisJCSAgICB2YWwgfD0gKGN1clsyXSAmIDB4M2YpIDw8IDY7CisJCSAgICB2YWwgfD0gY3VyWzNdICYgMHgzZjsKKwkJICAgIGlmICh2YWwgPCAweDEwMDAwKQorCQkJZ290byBlbmNvZGluZ19lcnJvcjsKKwkJfSBlbHNlIHsKKwkJICAvKiAzLWJ5dGUgY29kZSAqLworCQkgICAgKmxlbiA9IDM7CisJCSAgICB2YWwgPSAoY3VyWzBdICYgMHhmKSA8PCAxMjsKKwkJICAgIHZhbCB8PSAoY3VyWzFdICYgMHgzZikgPDwgNjsKKwkJICAgIHZhbCB8PSBjdXJbMl0gJiAweDNmOworCQkgICAgaWYgKHZhbCA8IDB4ODAwKQorCQkJZ290byBlbmNvZGluZ19lcnJvcjsKKwkJfQorCSAgICB9IGVsc2UgeworCSAgICAgIC8qIDItYnl0ZSBjb2RlICovCisJCSpsZW4gPSAyOworCQl2YWwgPSAoY3VyWzBdICYgMHgxZikgPDwgNjsKKwkJdmFsIHw9IGN1clsxXSAmIDB4M2Y7CisJCWlmICh2YWwgPCAweDgwKQorCQkgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKwkgICAgfQorCSAgICBpZiAoIUlTX0NIQVIodmFsKSkgeworCSAgICAgICAgeG1sRXJyRW5jb2RpbmdJbnQoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJCQkJICAiQ2hhciAweCVYIG91dCBvZiBhbGxvd2VkIHJhbmdlXG4iLCB2YWwpOworCSAgICB9ICAgIAorCSAgICByZXR1cm4odmFsKTsKKwl9IGVsc2UgeworCSAgICAvKiAxLWJ5dGUgY29kZSAqLworCSAgICAqbGVuID0gMTsKKwkgICAgaWYgKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApCisJCXhtbFBhcnNlcklucHV0R3JvdyhjdHh0LT5pbnB1dCwgSU5QVVRfQ0hVTkspOworCSAgICBpZiAoKCpjdHh0LT5pbnB1dC0+Y3VyID09IDApICYmCisJICAgICAgICAoY3R4dC0+aW5wdXQtPmVuZCA+IGN0eHQtPmlucHV0LT5jdXIpKSB7CisJICAgICAgICB4bWxFcnJFbmNvZGluZ0ludChjdHh0LCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKwkJCQkgICJDaGFyIDB4MCBvdXQgb2YgYWxsb3dlZCByYW5nZVxuIiwgMCk7CisJICAgIH0KKwkgICAgaWYgKCpjdHh0LT5pbnB1dC0+Y3VyID09IDB4RCkgeworCQlpZiAoY3R4dC0+aW5wdXQtPmN1clsxXSA9PSAweEEpIHsKKwkJICAgIGN0eHQtPm5iQ2hhcnMrKzsKKwkJICAgIGN0eHQtPmlucHV0LT5jdXIrKzsKKwkJfQorCQlyZXR1cm4oMHhBKTsKKwkgICAgfQorCSAgICByZXR1cm4oKGludCkgKmN0eHQtPmlucHV0LT5jdXIpOworCX0KKyAgICB9CisgICAgLyoKKyAgICAgKiBBc3N1bWUgaXQncyBhIGZpeGVkIGxlbmd0aCBlbmNvZGluZyAoMSkgd2l0aAorICAgICAqIGEgY29tcGF0aWJsZSBlbmNvZGluZyBmb3IgdGhlIEFTQ0lJIHNldCwgc2luY2UKKyAgICAgKiBYTUwgY29uc3RydWN0cyBvbmx5IHVzZSA8IDEyOCBjaGFycworICAgICAqLworICAgICpsZW4gPSAxOworICAgIGlmICgqY3R4dC0+aW5wdXQtPmN1ciA9PSAweEQpIHsKKwlpZiAoY3R4dC0+aW5wdXQtPmN1clsxXSA9PSAweEEpIHsKKwkgICAgY3R4dC0+bmJDaGFycysrOworCSAgICBjdHh0LT5pbnB1dC0+Y3VyKys7CisJfQorCXJldHVybigweEEpOworICAgIH0KKyAgICByZXR1cm4oKGludCkgKmN0eHQtPmlucHV0LT5jdXIpOworZW5jb2RpbmdfZXJyb3I6CisgICAgLyoKKyAgICAgKiBBbiBlbmNvZGluZyBwcm9ibGVtIG1heSBhcmlzZSBmcm9tIGEgdHJ1bmNhdGVkIGlucHV0IGJ1ZmZlcgorICAgICAqIHNwbGl0dGluZyBhIGNoYXJhY3RlciBpbiB0aGUgbWlkZGxlLiBJbiB0aGF0IGNhc2UgZG8gbm90IHJhaXNlCisgICAgICogYW4gZXJyb3IgYnV0IHJldHVybiAwIHRvIGVuZGljYXRlIGFuIGVuZCBvZiBzdHJlYW0gcHJvYmxlbQorICAgICAqLworICAgIGlmIChjdHh0LT5pbnB1dC0+ZW5kIC0gY3R4dC0+aW5wdXQtPmN1ciA8IDQpIHsKKwkqbGVuID0gMDsKKwlyZXR1cm4oMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBJZiB3ZSBkZXRlY3QgYW4gVVRGOCBlcnJvciB0aGF0IHByb2JhYmx5IG1lYW4gdGhhdCB0aGUKKyAgICAgKiBpbnB1dCBlbmNvZGluZyBkaWRuJ3QgZ2V0IHByb3Blcmx5IGFkdmVydGlzZWQgaW4gdGhlCisgICAgICogZGVjbGFyYXRpb24gaGVhZGVyLiBSZXBvcnQgdGhlIGVycm9yIGFuZCBzd2l0Y2ggdGhlIGVuY29kaW5nCisgICAgICogdG8gSVNPLUxhdGluLTEgKGlmIHlvdSBkb24ndCBsaWtlIHRoaXMgcG9saWN5LCBqdXN0IGRlY2xhcmUgdGhlCisgICAgICogZW5jb2RpbmcgISkKKyAgICAgKi8KKyAgICB7CisgICAgICAgIGNoYXIgYnVmZmVyWzE1MF07CisKKwlzbnByaW50ZigmYnVmZmVyWzBdLCAxNDksICJCeXRlczogMHglMDJYIDB4JTAyWCAweCUwMlggMHglMDJYXG4iLAorCQkJY3R4dC0+aW5wdXQtPmN1clswXSwgY3R4dC0+aW5wdXQtPmN1clsxXSwKKwkJCWN0eHQtPmlucHV0LT5jdXJbMl0sIGN0eHQtPmlucHV0LT5jdXJbM10pOworCV9feG1sRXJyRW5jb2RpbmcoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJCSAgICAgIklucHV0IGlzIG5vdCBwcm9wZXIgVVRGLTgsIGluZGljYXRlIGVuY29kaW5nICFcbiVzIiwKKwkJICAgICBCQURfQ0FTVCBidWZmZXIsIE5VTEwpOworICAgIH0KKyAgICBjdHh0LT5jaGFyc2V0ID0gWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8xOyAKKyAgICAqbGVuID0gMTsKKyAgICByZXR1cm4oKGludCkgKmN0eHQtPmlucHV0LT5jdXIpOworfQorCisvKioKKyAqIHhtbFN0cmluZ0N1cnJlbnRDaGFyOgorICogQGN0eHQ6ICB0aGUgWE1MIHBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgcG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjaGFyCisgKiBAbGVuOiAgcG9pbnRlciB0byB0aGUgbGVuZ3RoIG9mIHRoZSBjaGFyIHJlYWQKKyAqCisgKiBUaGUgY3VycmVudCBjaGFyIHZhbHVlLCBpZiB1c2luZyBVVEYtOCB0aGlzIG1heSBhY3R1YWxseSBzcGFuIG11bHRpcGxlCisgKiBieXRlcyBpbiB0aGUgaW5wdXQgYnVmZmVyLgorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2hhciB2YWx1ZSBhbmQgaXRzIGxlbmd0aAorICovCisKK2ludAoreG1sU3RyaW5nQ3VycmVudENoYXIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICogY3VyLCBpbnQgKmxlbikKK3sKKyAgICBpZiAoKGxlbiA9PSBOVUxMKSB8fCAoY3VyID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jaGFyc2V0ID09IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIGFyZSBzdXBwb3NlZCB0byBoYW5kbGUgVVRGOCwgY2hlY2sgaXQncyB2YWxpZAorICAgICAgICAgKiBGcm9tIHJmYzIwNDQ6IGVuY29kaW5nIG9mIHRoZSBVbmljb2RlIHZhbHVlcyBvbiBVVEYtODoKKyAgICAgICAgICoKKyAgICAgICAgICogVUNTLTQgcmFuZ2UgKGhleC4pICAgICAgICAgICBVVEYtOCBvY3RldCBzZXF1ZW5jZSAoYmluYXJ5KQorICAgICAgICAgKiAwMDAwIDAwMDAtMDAwMCAwMDdGICAgMHh4eHh4eHgKKyAgICAgICAgICogMDAwMCAwMDgwLTAwMDAgMDdGRiAgIDExMHh4eHh4IDEweHh4eHh4CisgICAgICAgICAqIDAwMDAgMDgwMC0wMDAwIEZGRkYgICAxMTEweHh4eCAxMHh4eHh4eCAxMHh4eHh4eCAKKyAgICAgICAgICoKKyAgICAgICAgICogQ2hlY2sgZm9yIHRoZSAweDExMDAwMCBsaW1pdCB0b28KKyAgICAgICAgICovCisgICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKKyAgICAgICAgdW5zaWduZWQgaW50IHZhbDsKKworICAgICAgICBjID0gKmN1cjsKKyAgICAgICAgaWYgKGMgJiAweDgwKSB7CisgICAgICAgICAgICBpZiAoKGN1clsxXSAmIDB4YzApICE9IDB4ODApCisgICAgICAgICAgICAgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKyAgICAgICAgICAgIGlmICgoYyAmIDB4ZTApID09IDB4ZTApIHsKKworICAgICAgICAgICAgICAgIGlmICgoY3VyWzJdICYgMHhjMCkgIT0gMHg4MCkKKyAgICAgICAgICAgICAgICAgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKyAgICAgICAgICAgICAgICBpZiAoKGMgJiAweGYwKSA9PSAweGYwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoKGMgJiAweGY4KSAhPSAweGYwKSB8fCAoKGN1clszXSAmIDB4YzApICE9IDB4ODApKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgLyogNC1ieXRlIGNvZGUgKi8KKyAgICAgICAgICAgICAgICAgICAgKmxlbiA9IDQ7CisgICAgICAgICAgICAgICAgICAgIHZhbCA9IChjdXJbMF0gJiAweDcpIDw8IDE4OworICAgICAgICAgICAgICAgICAgICB2YWwgfD0gKGN1clsxXSAmIDB4M2YpIDw8IDEyOworICAgICAgICAgICAgICAgICAgICB2YWwgfD0gKGN1clsyXSAmIDB4M2YpIDw8IDY7CisgICAgICAgICAgICAgICAgICAgIHZhbCB8PSBjdXJbM10gJiAweDNmOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIDMtYnl0ZSBjb2RlICovCisgICAgICAgICAgICAgICAgICAgICpsZW4gPSAzOworICAgICAgICAgICAgICAgICAgICB2YWwgPSAoY3VyWzBdICYgMHhmKSA8PCAxMjsKKyAgICAgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMV0gJiAweDNmKSA8PCA2OworICAgICAgICAgICAgICAgICAgICB2YWwgfD0gY3VyWzJdICYgMHgzZjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIDItYnl0ZSBjb2RlICovCisgICAgICAgICAgICAgICAgKmxlbiA9IDI7CisgICAgICAgICAgICAgICAgdmFsID0gKGN1clswXSAmIDB4MWYpIDw8IDY7CisgICAgICAgICAgICAgICAgdmFsIHw9IGN1clsxXSAmIDB4M2Y7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIUlTX0NIQVIodmFsKSkgeworCSAgICAgICAgeG1sRXJyRW5jb2RpbmdJbnQoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJCQkJICAiQ2hhciAweCVYIG91dCBvZiBhbGxvd2VkIHJhbmdlXG4iLCB2YWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICh2YWwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogMS1ieXRlIGNvZGUgKi8KKyAgICAgICAgICAgICpsZW4gPSAxOworICAgICAgICAgICAgcmV0dXJuICgoaW50KSAqY3VyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKgorICAgICAqIEFzc3VtZSBpdCdzIGEgZml4ZWQgbGVuZ3RoIGVuY29kaW5nICgxKSB3aXRoCisgICAgICogYSBjb21wYXRpYmxlIGVuY29kaW5nIGZvciB0aGUgQVNDSUkgc2V0LCBzaW5jZQorICAgICAqIFhNTCBjb25zdHJ1Y3RzIG9ubHkgdXNlIDwgMTI4IGNoYXJzCisgICAgICovCisgICAgKmxlbiA9IDE7CisgICAgcmV0dXJuICgoaW50KSAqY3VyKTsKK2VuY29kaW5nX2Vycm9yOgorCisgICAgLyoKKyAgICAgKiBBbiBlbmNvZGluZyBwcm9ibGVtIG1heSBhcmlzZSBmcm9tIGEgdHJ1bmNhdGVkIGlucHV0IGJ1ZmZlcgorICAgICAqIHNwbGl0dGluZyBhIGNoYXJhY3RlciBpbiB0aGUgbWlkZGxlLiBJbiB0aGF0IGNhc2UgZG8gbm90IHJhaXNlCisgICAgICogYW4gZXJyb3IgYnV0IHJldHVybiAwIHRvIGVuZGljYXRlIGFuIGVuZCBvZiBzdHJlYW0gcHJvYmxlbQorICAgICAqLworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+aW5wdXQgPT0gTlVMTCkgfHwKKyAgICAgICAgKGN0eHQtPmlucHV0LT5lbmQgLSBjdHh0LT5pbnB1dC0+Y3VyIDwgNCkpIHsKKwkqbGVuID0gMDsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIC8qCisgICAgICogSWYgd2UgZGV0ZWN0IGFuIFVURjggZXJyb3IgdGhhdCBwcm9iYWJseSBtZWFuIHRoYXQgdGhlCisgICAgICogaW5wdXQgZW5jb2RpbmcgZGlkbid0IGdldCBwcm9wZXJseSBhZHZlcnRpc2VkIGluIHRoZQorICAgICAqIGRlY2xhcmF0aW9uIGhlYWRlci4gUmVwb3J0IHRoZSBlcnJvciBhbmQgc3dpdGNoIHRoZSBlbmNvZGluZworICAgICAqIHRvIElTTy1MYXRpbi0xIChpZiB5b3UgZG9uJ3QgbGlrZSB0aGlzIHBvbGljeSwganVzdCBkZWNsYXJlIHRoZQorICAgICAqIGVuY29kaW5nICEpCisgICAgICovCisgICAgeworICAgICAgICBjaGFyIGJ1ZmZlclsxNTBdOworCisJc25wcmludGYoYnVmZmVyLCAxNDksICJCeXRlczogMHglMDJYIDB4JTAyWCAweCUwMlggMHglMDJYXG4iLAorCQkJY3R4dC0+aW5wdXQtPmN1clswXSwgY3R4dC0+aW5wdXQtPmN1clsxXSwKKwkJCWN0eHQtPmlucHV0LT5jdXJbMl0sIGN0eHQtPmlucHV0LT5jdXJbM10pOworCV9feG1sRXJyRW5jb2RpbmcoY3R4dCwgWE1MX0VSUl9JTlZBTElEX0NIQVIsCisJCSAgICAgIklucHV0IGlzIG5vdCBwcm9wZXIgVVRGLTgsIGluZGljYXRlIGVuY29kaW5nICFcbiVzIiwKKwkJICAgICBCQURfQ0FTVCBidWZmZXIsIE5VTEwpOworICAgIH0KKyAgICAqbGVuID0gMTsKKyAgICByZXR1cm4gKChpbnQpICpjdXIpOworfQorCisvKioKKyAqIHhtbENvcHlDaGFyTXVsdGlCeXRlOgorICogQG91dDogIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhcgorICogQHZhbDogIHRoZSBjaGFyIHZhbHVlCisgKgorICogYXBwZW5kIHRoZSBjaGFyIHZhbHVlIGluIHRoZSBhcnJheSAKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgeG1sQ2hhciB3cml0dGVuCisgKi8KK2ludAoreG1sQ29weUNoYXJNdWx0aUJ5dGUoeG1sQ2hhciAqb3V0LCBpbnQgdmFsKSB7CisgICAgaWYgKG91dCA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgLyoKKyAgICAgKiBXZSBhcmUgc3VwcG9zZWQgdG8gaGFuZGxlIFVURjgsIGNoZWNrIGl0J3MgdmFsaWQKKyAgICAgKiBGcm9tIHJmYzIwNDQ6IGVuY29kaW5nIG9mIHRoZSBVbmljb2RlIHZhbHVlcyBvbiBVVEYtODoKKyAgICAgKgorICAgICAqIFVDUy00IHJhbmdlIChoZXguKSAgICAgICAgICAgVVRGLTggb2N0ZXQgc2VxdWVuY2UgKGJpbmFyeSkKKyAgICAgKiAwMDAwIDAwMDAtMDAwMCAwMDdGICAgMHh4eHh4eHgKKyAgICAgKiAwMDAwIDAwODAtMDAwMCAwN0ZGICAgMTEweHh4eHggMTB4eHh4eHgKKyAgICAgKiAwMDAwIDA4MDAtMDAwMCBGRkZGICAgMTExMHh4eHggMTB4eHh4eHggMTB4eHh4eHggCisgICAgICovCisgICAgaWYgICh2YWwgPj0gMHg4MCkgeworCXhtbENoYXIgKnNhdmVkb3V0ID0gb3V0OworCWludCBiaXRzOworCWlmICh2YWwgPCAgIDB4ODAwKSB7ICpvdXQrKz0gKHZhbCA+PiAgNikgfCAweEMwOyAgYml0cz0gIDA7IH0KKwllbHNlIGlmICh2YWwgPCAweDEwMDAwKSB7ICpvdXQrKz0gKHZhbCA+PiAxMikgfCAweEUwOyAgYml0cz0gIDY7fQorCWVsc2UgaWYgKHZhbCA8IDB4MTEwMDAwKSAgeyAqb3V0Kys9ICh2YWwgPj4gMTgpIHwgMHhGMDsgIGJpdHM9ICAxMjsgfQorCWVsc2UgeworCSAgICB4bWxFcnJFbmNvZGluZ0ludChOVUxMLCBYTUxfRVJSX0lOVkFMSURfQ0hBUiwKKwkJICAgICJJbnRlcm5hbCBlcnJvciwgeG1sQ29weUNoYXJNdWx0aUJ5dGUgMHglWCBvdXQgb2YgYm91bmRcbiIsCisJCQkgICAgICB2YWwpOworCSAgICByZXR1cm4oMCk7CisJfQorCWZvciAoIDsgYml0cyA+PSAwOyBiaXRzLT0gNikKKwkgICAgKm91dCsrPSAoKHZhbCA+PiBiaXRzKSAmIDB4M0YpIHwgMHg4MCA7CisJcmV0dXJuIChvdXQgLSBzYXZlZG91dCk7CisgICAgfQorICAgICpvdXQgPSAoeG1sQ2hhcikgdmFsOworICAgIHJldHVybiAxOworfQorCisvKioKKyAqIHhtbENvcHlDaGFyOgorICogQGxlbjogIElnbm9yZWQsIGNvbXBhdGliaWxpdHkKKyAqIEBvdXQ6ICBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIKKyAqIEB2YWw6ICB0aGUgY2hhciB2YWx1ZQorICoKKyAqIGFwcGVuZCB0aGUgY2hhciB2YWx1ZSBpbiB0aGUgYXJyYXkgCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHhtbENoYXIgd3JpdHRlbgorICovCisKK2ludAoreG1sQ29weUNoYXIoaW50IGxlbiBBVFRSSUJVVEVfVU5VU0VELCB4bWxDaGFyICpvdXQsIGludCB2YWwpIHsKKyAgICBpZiAob3V0ID09IE5VTEwpIHJldHVybigwKTsKKyAgICAvKiB0aGUgbGVuIHBhcmFtZXRlciBpcyBpZ25vcmVkICovCisgICAgaWYgICh2YWwgPj0gMHg4MCkgeworCXJldHVybih4bWxDb3B5Q2hhck11bHRpQnl0ZSAob3V0LCB2YWwpKTsKKyAgICB9CisgICAgKm91dCA9ICh4bWxDaGFyKSB2YWw7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUNvbW1vZGl0eSBmdW5jdGlvbnMgdG8gc3dpdGNoIGVuY29kaW5ncwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogZGVmaW5lZCBpbiBlbmNvZGluZy5jLCBub3QgcHVibGljICovCitpbnQKK3htbENoYXJFbmNGaXJzdExpbmVJbnQoeG1sQ2hhckVuY29kaW5nSGFuZGxlciAqaGFuZGxlciwgeG1sQnVmZmVyUHRyIG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sQnVmZmVyUHRyIGluLCBpbnQgbGVuKTsKKworc3RhdGljIGludAoreG1sU3dpdGNoVG9FbmNvZGluZ0ludCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciwgaW50IGxlbik7CitzdGF0aWMgaW50Cit4bWxTd2l0Y2hJbnB1dEVuY29kaW5nSW50KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciwgaW50IGxlbik7CisvKioKKyAqIHhtbFN3aXRjaEVuY29kaW5nOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBlbmM6ICB0aGUgZW5jb2RpbmcgdmFsdWUgKG51bWJlcikKKyAqCisgKiBjaGFuZ2UgdGhlIGlucHV0IGZ1bmN0aW9ucyB3aGVuIGRpc2NvdmVyaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcKKyAqIG9mIGEgZ2l2ZW4gZW50aXR5LgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIG90aGVyd2lzZQorICovCitpbnQKK3htbFN3aXRjaEVuY29kaW5nKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sQ2hhckVuY29kaW5nIGVuYykKK3sKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXI7CisgICAgaW50IGxlbiA9IC0xOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBzd2l0Y2ggKGVuYykgeworCWNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfRVJST1I6CisJICAgIF9feG1sRXJyRW5jb2RpbmcoY3R4dCwgWE1MX0VSUl9VTktOT1dOX0VOQ09ESU5HLAorCSAgICAgICAgICAgICAgICAgICAiZW5jb2RpbmcgdW5rbm93blxuIiwgTlVMTCwgTlVMTCk7CisJICAgIHJldHVybigtMSk7CisJY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19OT05FOgorCSAgICAvKiBsZXQncyBhc3N1bWUgaXQncyBVVEYtOCB3aXRob3V0IHRoZSBYTUwgZGVjbCAqLworCSAgICBjdHh0LT5jaGFyc2V0ID0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGODsKKwkgICAgcmV0dXJuKDApOworCWNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVVRGODoKKwkgICAgLyogZGVmYXVsdCBlbmNvZGluZywgbm8gY29udmVyc2lvbiBzaG91bGQgYmUgbmVlZGVkICovCisJICAgIGN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4OworCisJICAgIC8qCisJICAgICAqIEVycmF0YSBvbiBYTUwtMS4wIEp1bmUgMjAgMjAwMQorCSAgICAgKiBTcGVjaWZpYyBoYW5kbGluZyBvZiB0aGUgQnl0ZSBPcmRlciBNYXJrIGZvcgorCSAgICAgKiBVVEYtOAorCSAgICAgKi8KKwkgICAgaWYgKChjdHh0LT5pbnB1dCAhPSBOVUxMKSAmJgorCQkoY3R4dC0+aW5wdXQtPmN1clswXSA9PSAweEVGKSAmJgorCQkoY3R4dC0+aW5wdXQtPmN1clsxXSA9PSAweEJCKSAmJgorCQkoY3R4dC0+aW5wdXQtPmN1clsyXSA9PSAweEJGKSkgeworCQljdHh0LT5pbnB1dC0+Y3VyICs9IDM7CisJICAgIH0KKwkgICAgcmV0dXJuKDApOworICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRToKKyAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VURjE2QkU6CisgICAgICAgIC8qVGhlIHJhdyBpbnB1dCBjaGFyYWN0ZXJzIGFyZSBlbmNvZGVkCisgICAgICAgICAqaW4gVVRGLTE2LiBBcyB3ZSBleHBlY3QgdGhpcyBmdW5jdGlvbgorICAgICAgICAgKnRvIGJlIGNhbGxlZCBhZnRlciB4bWxDaGFyRW5jSW5GdW5jLCB3ZSBleHBlY3QKKyAgICAgICAgICpjdHh0LT5pbnB1dC0+Y3VyIHRvIGNvbnRhaW4gVVRGLTggZW5jb2RlZCBjaGFyYWN0ZXJzLgorICAgICAgICAgKlNvIHRoZSByYXcgVVRGMTYgQnl0ZSBPcmRlciBNYXJrCisgICAgICAgICAqaGFzIGFsc28gYmVlbiBjb252ZXJ0ZWQgaW50bworICAgICAgICAgKmFuIFVURi04IEJPTS4gTGV0J3Mgc2tpcCB0aGF0IEJPTS4KKyAgICAgICAgICovCisgICAgICAgIGlmICgoY3R4dC0+aW5wdXQgIT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0LT5jdXIgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgIChjdHh0LT5pbnB1dC0+Y3VyWzBdID09IDB4RUYpICYmCisgICAgICAgICAgICAoY3R4dC0+aW5wdXQtPmN1clsxXSA9PSAweEJCKSAmJgorICAgICAgICAgICAgKGN0eHQtPmlucHV0LT5jdXJbMl0gPT0gMHhCRikpIHsKKyAgICAgICAgICAgIGN0eHQtPmlucHV0LT5jdXIgKz0gMzsKKyAgICAgICAgfQorICAgICAgICBsZW4gPSA5MDsKKwlicmVhazsKKyAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VDUzI6CisgICAgICAgIGxlbiA9IDkwOworCWJyZWFrOworICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNEJFOgorICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFOgorICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzOgorICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8zNDEyOgorICAgICAgICBsZW4gPSAxODA7CisJYnJlYWs7CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19FQkNESUM6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzE6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzI6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzM6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzQ6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzU6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzY6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5Xzc6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5Xzg6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5Xzk6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19BU0NJSToKKyAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzIwMjJfSlA6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19TSElGVF9KSVM6CisgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19FVUNfSlA6CisgICAgICAgIGxlbiA9IDQ1OworCWJyZWFrOworICAgIH0KKyAgICBoYW5kbGVyID0geG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcihlbmMpOworICAgIGlmIChoYW5kbGVyID09IE5VTEwpIHsKKwkvKgorCSAqIERlZmF1bHQgaGFuZGxlcnMuCisJICovCisJc3dpdGNoIChlbmMpIHsKKwkgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19BU0NJSToKKwkJLyogZGVmYXVsdCBlbmNvZGluZywgbm8gY29udmVyc2lvbiBzaG91bGQgYmUgbmVlZGVkICovCisJCWN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4OworCQlyZXR1cm4oMCk7CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZMRToKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVVRGMTZCRToKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNExFOgorCQlfX3htbEVyckVuY29kaW5nKGN0eHQsIFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcsCisJCQkgICAgICAgImVuY29kaW5nIG5vdCBzdXBwb3J0ZWQgJXNcbiIsCisJCQkgICAgICAgQkFEX0NBU1QgIlVTQzQgbGl0dGxlIGVuZGlhbiIsIE5VTEwpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0QkU6CisJCV9feG1sRXJyRW5jb2RpbmcoY3R4dCwgWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORywKKwkJCSAgICAgICAiZW5jb2Rpbmcgbm90IHN1cHBvcnRlZCAlc1xuIiwKKwkJCSAgICAgICBCQURfQ0FTVCAiVVNDNCBiaWcgZW5kaWFuIiwgTlVMTCk7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX0VCQ0RJQzoKKwkJX194bWxFcnJFbmNvZGluZyhjdHh0LCBYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HLAorCQkJICAgICAgICJlbmNvZGluZyBub3Qgc3VwcG9ydGVkICVzXG4iLAorCQkJICAgICAgIEJBRF9DQVNUICJFQkNESUMiLCBOVUxMKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfVUNTNF8yMTQzOgorCQlfX3htbEVyckVuY29kaW5nKGN0eHQsIFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcsCisJCQkgICAgICAgImVuY29kaW5nIG5vdCBzdXBwb3J0ZWQgJXNcbiIsCisJCQkgICAgICAgQkFEX0NBU1QgIlVDUzQgMjE0MyIsIE5VTEwpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR19VQ1M0XzM0MTI6CisJCV9feG1sRXJyRW5jb2RpbmcoY3R4dCwgWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORywKKwkJCSAgICAgICAiZW5jb2Rpbmcgbm90IHN1cHBvcnRlZCAlc1xuIiwKKwkJCSAgICAgICBCQURfQ0FTVCAiVUNTNCAzNDEyIiwgTlVMTCk7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1VDUzI6CisJCV9feG1sRXJyRW5jb2RpbmcoY3R4dCwgWE1MX0VSUl9VTlNVUFBPUlRFRF9FTkNPRElORywKKwkJCSAgICAgICAiZW5jb2Rpbmcgbm90IHN1cHBvcnRlZCAlc1xuIiwKKwkJCSAgICAgICBCQURfQ0FTVCAiVUNTMiIsIE5VTEwpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzE6CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV8yOgorCSAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfMzoKKwkgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5XzQ6CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV81OgorCSAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfNjoKKwkgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR184ODU5Xzc6CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfODg1OV84OgorCSAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HXzg4NTlfOToKKwkJLyoKKwkJICogV2UgdXNlZCB0byBrZWVwIHRoZSBpbnRlcm5hbCBjb250ZW50IGluIHRoZQorCQkgKiBkb2N1bWVudCBlbmNvZGluZyBob3dldmVyIHRoaXMgdHVybnMgYmVpbmcgdW5tYWludGFpbmFibGUKKwkJICogU28geG1sR2V0Q2hhckVuY29kaW5nSGFuZGxlcigpIHdpbGwgcmV0dXJuIG5vbi1udWxsCisJCSAqIHZhbHVlcyBmb3IgdGhpcyBub3cuCisJCSAqLworCQlpZiAoKGN0eHQtPmlucHV0TnIgPT0gMSkgJiYKKwkJICAgIChjdHh0LT5lbmNvZGluZyA9PSBOVUxMKSAmJgorCQkgICAgKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmCisJCSAgICAoY3R4dC0+aW5wdXQtPmVuY29kaW5nICE9IE5VTEwpKSB7CisJCSAgICBjdHh0LT5lbmNvZGluZyA9IHhtbFN0cmR1cChjdHh0LT5pbnB1dC0+ZW5jb2RpbmcpOworCQl9CisJCWN0eHQtPmNoYXJzZXQgPSBlbmM7CisJCXJldHVybigwKTsKKwkgICAgY2FzZSBYTUxfQ0hBUl9FTkNPRElOR18yMDIyX0pQOgorCQlfX3htbEVyckVuY29kaW5nKGN0eHQsIFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcsCisJCQkgICAgICAgImVuY29kaW5nIG5vdCBzdXBwb3J0ZWQgJXNcbiIsCisJCQkgICAgICAgQkFEX0NBU1QgIklTTy0yMDIyLUpQIiwgTlVMTCk7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9DSEFSX0VOQ09ESU5HX1NISUZUX0pJUzoKKwkJX194bWxFcnJFbmNvZGluZyhjdHh0LCBYTUxfRVJSX1VOU1VQUE9SVEVEX0VOQ09ESU5HLAorCQkJICAgICAgICJlbmNvZGluZyBub3Qgc3VwcG9ydGVkICVzXG4iLAorCQkJICAgICAgIEJBRF9DQVNUICJTaGlmdF9KSVMiLCBOVUxMKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0NIQVJfRU5DT0RJTkdfRVVDX0pQOgorCQlfX3htbEVyckVuY29kaW5nKGN0eHQsIFhNTF9FUlJfVU5TVVBQT1JURURfRU5DT0RJTkcsCisJCQkgICAgICAgImVuY29kaW5nIG5vdCBzdXBwb3J0ZWQgJXNcbiIsCisJCQkgICAgICAgQkFEX0NBU1QgIkVVQy1KUCIsIE5VTEwpOworCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkgICAgICAgIGJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4OworICAgIHJldHVybih4bWxTd2l0Y2hUb0VuY29kaW5nSW50KGN0eHQsIGhhbmRsZXIsIGxlbikpOworfQorCisvKioKKyAqIHhtbFN3aXRjaElucHV0RW5jb2Rpbmc6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQGlucHV0OiAgdGhlIGlucHV0IHN0cmVhbQorICogQGhhbmRsZXI6ICB0aGUgZW5jb2RpbmcgaGFuZGxlcgorICogQGxlbjogIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gY29udmVydCBmb3IgdGhlIGZpcnN0IGxpbmUgb3IgLTEKKyAqCisgKiBjaGFuZ2UgdGhlIGlucHV0IGZ1bmN0aW9ucyB3aGVuIGRpc2NvdmVyaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcKKyAqIG9mIGEgZ2l2ZW4gZW50aXR5LgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxTd2l0Y2hJbnB1dEVuY29kaW5nSW50KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciwgaW50IGxlbikKK3sKKyAgICBpbnQgbmJjaGFyczsKKworICAgIGlmIChoYW5kbGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBpZiAoaW5wdXQtPmJ1ZiAhPSBOVUxMKSB7CisgICAgICAgIGlmIChpbnB1dC0+YnVmLT5lbmNvZGVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBDaGVjayBpbiBjYXNlIHRoZSBhdXRvIGVuY29kaW5nIGRldGV0ZWN0aW9uIHRyaWdnZXJlZAorICAgICAgICAgICAgICogaW4gYWxyZWFkeS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKGlucHV0LT5idWYtPmVuY29kZXIgPT0gaGFuZGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gKDApOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogIlVURi0xNiIgY2FuIGJlIHVzZWQgZm9yIGJvdGggTEUgYW5kIEJFCisgICAgICAgICAgICAgaWYgKCgheG1sU3RybmNtcChCQURfQ0FTVCBpbnB1dC0+YnVmLT5lbmNvZGVyLT5uYW1lLAorICAgICAgICAgICAgIEJBRF9DQVNUICJVVEYtMTYiLCA2KSkgJiYKKyAgICAgICAgICAgICAoIXhtbFN0cm5jbXAoQkFEX0NBU1QgaGFuZGxlci0+bmFtZSwKKyAgICAgICAgICAgICBCQURfQ0FTVCAiVVRGLTE2IiwgNikpKSB7CisgICAgICAgICAgICAgcmV0dXJuKDApOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAqLworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogTm90ZTogdGhpcyBpcyBhIGJpdCBkYW5nZXJvdXMsIGJ1dCB0aGF0J3Mgd2hhdCBpdAorICAgICAgICAgICAgICogdGFrZXMgdG8gdXNlIG5lYXJseSBjb21wYXRpYmxlIHNpZ25hdHVyZSBmb3IgZGlmZmVyZW50CisgICAgICAgICAgICAgKiBlbmNvZGluZ3MuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHhtbENoYXJFbmNDbG9zZUZ1bmMoaW5wdXQtPmJ1Zi0+ZW5jb2Rlcik7CisgICAgICAgICAgICBpbnB1dC0+YnVmLT5lbmNvZGVyID0gaGFuZGxlcjsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICAgICAgaW5wdXQtPmJ1Zi0+ZW5jb2RlciA9IGhhbmRsZXI7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSXMgdGhlcmUgYWxyZWFkeSBzb21lIGNvbnRlbnQgZG93biB0aGUgcGlwZSB0byBjb252ZXJ0ID8KKyAgICAgICAgICovCisgICAgICAgIGlmICgoaW5wdXQtPmJ1Zi0+YnVmZmVyICE9IE5VTEwpICYmIChpbnB1dC0+YnVmLT5idWZmZXItPnVzZSA+IDApKSB7CisgICAgICAgICAgICBpbnQgcHJvY2Vzc2VkOworCSAgICB1bnNpZ25lZCBpbnQgdXNlOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogU3BlY2lmaWMgaGFuZGxpbmcgb2YgdGhlIEJ5dGUgT3JkZXIgTWFyayBmb3IgCisgICAgICAgICAgICAgKiBVVEYtMTYKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKChoYW5kbGVyLT5uYW1lICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgKCFzdHJjbXAoaGFuZGxlci0+bmFtZSwgIlVURi0xNkxFIikgfHwKKyAgICAgICAgICAgICAgICAgIXN0cmNtcChoYW5kbGVyLT5uYW1lLCAiVVRGLTE2IikpICYmCisgICAgICAgICAgICAgICAgKGlucHV0LT5jdXJbMF0gPT0gMHhGRikgJiYgKGlucHV0LT5jdXJbMV0gPT0gMHhGRSkpIHsKKyAgICAgICAgICAgICAgICBpbnB1dC0+Y3VyICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGhhbmRsZXItPm5hbWUgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAoIXN0cmNtcChoYW5kbGVyLT5uYW1lLCAiVVRGLTE2QkUiKSkgJiYKKyAgICAgICAgICAgICAgICAoaW5wdXQtPmN1clswXSA9PSAweEZFKSAmJiAoaW5wdXQtPmN1clsxXSA9PSAweEZGKSkgeworICAgICAgICAgICAgICAgIGlucHV0LT5jdXIgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBFcnJhdGEgb24gWE1MLTEuMCBKdW5lIDIwIDIwMDEKKyAgICAgICAgICAgICAqIFNwZWNpZmljIGhhbmRsaW5nIG9mIHRoZSBCeXRlIE9yZGVyIE1hcmsgZm9yCisgICAgICAgICAgICAgKiBVVEYtOAorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoKGhhbmRsZXItPm5hbWUgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAoIXN0cmNtcChoYW5kbGVyLT5uYW1lLCAiVVRGLTgiKSkgJiYKKyAgICAgICAgICAgICAgICAoaW5wdXQtPmN1clswXSA9PSAweEVGKSAmJgorICAgICAgICAgICAgICAgIChpbnB1dC0+Y3VyWzFdID09IDB4QkIpICYmIChpbnB1dC0+Y3VyWzJdID09IDB4QkYpKSB7CisgICAgICAgICAgICAgICAgaW5wdXQtPmN1ciArPSAzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogU2hyaW5rIHRoZSBjdXJyZW50IGlucHV0IGJ1ZmZlci4KKyAgICAgICAgICAgICAqIE1vdmUgaXQgYXMgdGhlIHJhdyBidWZmZXIgYW5kIGNyZWF0ZSBhIG5ldyBpbnB1dCBidWZmZXIKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHJvY2Vzc2VkID0gaW5wdXQtPmN1ciAtIGlucHV0LT5iYXNlOworICAgICAgICAgICAgeG1sQnVmZmVyU2hyaW5rKGlucHV0LT5idWYtPmJ1ZmZlciwgcHJvY2Vzc2VkKTsKKyAgICAgICAgICAgIGlucHV0LT5idWYtPnJhdyA9IGlucHV0LT5idWYtPmJ1ZmZlcjsKKyAgICAgICAgICAgIGlucHV0LT5idWYtPmJ1ZmZlciA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworCSAgICBpbnB1dC0+YnVmLT5yYXdjb25zdW1lZCA9IHByb2Nlc3NlZDsKKwkgICAgdXNlID0gaW5wdXQtPmJ1Zi0+cmF3LT51c2U7CisKKyAgICAgICAgICAgIGlmIChjdHh0LT5odG1sKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBjb252ZXJ0IGFzIG11Y2ggYXMgcG9zc2libGUgb2YgdGhlIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIG5iY2hhcnMgPSB4bWxDaGFyRW5jSW5GdW5jKGlucHV0LT5idWYtPmVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtPmJ1Zi0+YnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LT5idWYtPnJhdyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogY29udmVydCBqdXN0IGVub3VnaCB0byBnZXQKKyAgICAgICAgICAgICAgICAgKiAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0ieHh4Ij8+JworICAgICAgICAgICAgICAgICAqIHBhcnNlZCB3aXRoIHRoZSBhdXRvZGV0ZWN0ZWQgZW5jb2RpbmcKKyAgICAgICAgICAgICAgICAgKiBpbnRvIHRoZSBwYXJzZXIgcmVhZGluZyBidWZmZXIuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbmJjaGFycyA9IHhtbENoYXJFbmNGaXJzdExpbmVJbnQoaW5wdXQtPmJ1Zi0+ZW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC0+YnVmLT5idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtPmJ1Zi0+cmF3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobmJjaGFycyA8IDApIHsKKyAgICAgICAgICAgICAgICB4bWxFcnJJbnRlcm5hbChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzd2l0Y2hpbmcgZW5jb2Rpbmc6IGVuY29kZXIgZXJyb3JcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICB9CisJICAgIGlucHV0LT5idWYtPnJhd2NvbnN1bWVkICs9IHVzZSAtIGlucHV0LT5idWYtPnJhdy0+dXNlOworICAgICAgICAgICAgaW5wdXQtPmJhc2UgPSBpbnB1dC0+Y3VyID0gaW5wdXQtPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworICAgICAgICAgICAgaW5wdXQtPmVuZCA9ICZpbnB1dC0+YmFzZVtpbnB1dC0+YnVmLT5idWZmZXItPnVzZV07CisKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKDApOworICAgIH0gZWxzZSBpZiAoaW5wdXQtPmxlbmd0aCA9PSAwKSB7CisJLyoKKwkgKiBXaGVuIHBhcnNpbmcgYSBzdGF0aWMgbWVtb3J5IGFycmF5IG9uZSBtdXN0IGtub3cgdGhlCisJICogc2l6ZSB0byBiZSBhYmxlIHRvIGNvbnZlcnQgdGhlIGJ1ZmZlci4KKwkgKi8KKwl4bWxFcnJJbnRlcm5hbChjdHh0LCAic3dpdGNoaW5nIGVuY29kaW5nIDogbm8gaW5wdXRcbiIsIE5VTEwpOworCXJldHVybiAoLTEpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFN3aXRjaElucHV0RW5jb2Rpbmc6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQGlucHV0OiAgdGhlIGlucHV0IHN0cmVhbQorICogQGhhbmRsZXI6ICB0aGUgZW5jb2RpbmcgaGFuZGxlcgorICoKKyAqIGNoYW5nZSB0aGUgaW5wdXQgZnVuY3Rpb25zIHdoZW4gZGlzY292ZXJpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZworICogb2YgYSBnaXZlbiBlbnRpdHkuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sU3dpdGNoSW5wdXRFbmNvZGluZyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFBhcnNlcklucHV0UHRyIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXIpIHsKKyAgICByZXR1cm4oeG1sU3dpdGNoSW5wdXRFbmNvZGluZ0ludChjdHh0LCBpbnB1dCwgaGFuZGxlciwgLTEpKTsKK30KKworLyoqCisgKiB4bWxTd2l0Y2hUb0VuY29kaW5nSW50OgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBoYW5kbGVyOiAgdGhlIGVuY29kaW5nIGhhbmRsZXIKKyAqIEBsZW46IHRoZSBsZW5naHQgdG8gY29udmVydCBvciAtMQorICoKKyAqIGNoYW5nZSB0aGUgaW5wdXQgZnVuY3Rpb25zIHdoZW4gZGlzY292ZXJpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZworICogb2YgYSBnaXZlbiBlbnRpdHksIGFuZCBjb252ZXJ0IG9ubHkgQGxlbiBieXRlcyBvZiB0aGUgb3V0cHV0LCB0aGlzCisgKiBpcyBuZWVkZWQgb24gYXV0byBkZXRlY3QgdG8gYWxsb3dzIGFueSBkZWNsYXJlZCBlbmNvZGluZyBsYXRlciB0bworICogY29udmVydCB0aGUgYWN0dWFsIGNvbnRlbnQgYWZ0ZXIgdGhlIHhtbERlY2wKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sU3dpdGNoVG9FbmNvZGluZ0ludCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciwgaW50IGxlbikgeworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKGhhbmRsZXIgIT0gTlVMTCkgeworICAgICAgICBpZiAoY3R4dC0+aW5wdXQgIT0gTlVMTCkgeworCSAgICByZXQgPSB4bWxTd2l0Y2hJbnB1dEVuY29kaW5nSW50KGN0eHQsIGN0eHQtPmlucHV0LCBoYW5kbGVyLCBsZW4pOworCX0gZWxzZSB7CisJICAgIHhtbEVyckludGVybmFsKGN0eHQsICJ4bWxTd2l0Y2hUb0VuY29kaW5nIDogbm8gaW5wdXRcbiIsCisJICAgICAgICAgICAgICAgICAgIE5VTEwpOworCSAgICByZXR1cm4oLTEpOworCX0KKwkvKgorCSAqIFRoZSBwYXJzaW5nIGlzIG5vdyBkb25lIGluIFVURjggbmF0aXZlbHkKKwkgKi8KKwljdHh0LT5jaGFyc2V0ID0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGODsKKyAgICB9IGVsc2UKKwlyZXR1cm4oLTEpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFN3aXRjaFRvRW5jb2Rpbmc6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQGhhbmRsZXI6ICB0aGUgZW5jb2RpbmcgaGFuZGxlcgorICoKKyAqIGNoYW5nZSB0aGUgaW5wdXQgZnVuY3Rpb25zIHdoZW4gZGlzY292ZXJpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZworICogb2YgYSBnaXZlbiBlbnRpdHkuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sU3dpdGNoVG9FbmNvZGluZyh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcikgCit7CisgICAgcmV0dXJuICh4bWxTd2l0Y2hUb0VuY29kaW5nSW50KGN0eHQsIGhhbmRsZXIsIC0xKSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJQ29tbW9kaXR5IGZ1bmN0aW9ucyB0byBoYW5kbGUgZW50aXRpZXMgcHJvY2Vzc2luZwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbEZyZWVJbnB1dFN0cmVhbToKKyAqIEBpbnB1dDogIGFuIHhtbFBhcnNlcklucHV0UHRyCisgKgorICogRnJlZSB1cCBhbiBpbnB1dCBzdHJlYW0uCisgKi8KK3ZvaWQKK3htbEZyZWVJbnB1dFN0cmVhbSh4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCkgeworICAgIGlmIChpbnB1dCA9PSBOVUxMKSByZXR1cm47CisKKyAgICBpZiAoaW5wdXQtPmZpbGVuYW1lICE9IE5VTEwpIHhtbEZyZWUoKGNoYXIgKikgaW5wdXQtPmZpbGVuYW1lKTsKKyAgICBpZiAoaW5wdXQtPmRpcmVjdG9yeSAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGlucHV0LT5kaXJlY3RvcnkpOworICAgIGlmIChpbnB1dC0+ZW5jb2RpbmcgIT0gTlVMTCkgeG1sRnJlZSgoY2hhciAqKSBpbnB1dC0+ZW5jb2RpbmcpOworICAgIGlmIChpbnB1dC0+dmVyc2lvbiAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGlucHV0LT52ZXJzaW9uKTsKKyAgICBpZiAoKGlucHV0LT5mcmVlICE9IE5VTEwpICYmIChpbnB1dC0+YmFzZSAhPSBOVUxMKSkKKyAgICAgICAgaW5wdXQtPmZyZWUoKHhtbENoYXIgKikgaW5wdXQtPmJhc2UpOworICAgIGlmIChpbnB1dC0+YnVmICE9IE5VTEwpIAorICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQtPmJ1Zik7CisgICAgeG1sRnJlZShpbnB1dCk7Cit9CisKKy8qKgorICogeG1sTmV3SW5wdXRTdHJlYW06CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIENyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gc3RydWN0dXJlCisgKiBSZXR1cm5zIHRoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwKKyAqLworeG1sUGFyc2VySW5wdXRQdHIKK3htbE5ld0lucHV0U3RyZWFtKHhtbFBhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworICAgIHN0YXRpYyBpbnQgaWQgPSAwOworCisgICAgaW5wdXQgPSAoeG1sUGFyc2VySW5wdXRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUGFyc2VySW5wdXQpKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkgeworICAgICAgICB4bWxFcnJNZW1vcnkoY3R4dCwgICJjb3VsZG4ndCBhbGxvY2F0ZSBhIG5ldyBpbnB1dCBzdHJlYW1cbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGlucHV0LCAwLCBzaXplb2YoeG1sUGFyc2VySW5wdXQpKTsKKyAgICBpbnB1dC0+bGluZSA9IDE7CisgICAgaW5wdXQtPmNvbCA9IDE7CisgICAgaW5wdXQtPnN0YW5kYWxvbmUgPSAtMTsKKyAgICAvKgorICAgICAqIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhyZWFkIHJlZW50cmFuY3kgdW5pY2l0eSBmb3IgYSBzaW5nbGUKKyAgICAgKiBwYXJzZXIgY29udGV4dCAoYW5kIGhlbmNlIHRocmVhZCkgaXMgc3VmZmljaWVudC4KKyAgICAgKi8KKyAgICBpbnB1dC0+aWQgPSBpZCsrOworICAgIHJldHVybihpbnB1dCk7Cit9CisKKy8qKgorICogeG1sTmV3SU9JbnB1dFN0cmVhbToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAaW5wdXQ6ICBhbiBJL08gSW5wdXQKKyAqIEBlbmM6ICB0aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bgorICoKKyAqIENyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gc3RydWN0dXJlIGVuY2Fwc3VsYXRpbmcgdGhlIEBpbnB1dCBpbnRvCisgKiBhIHN0cmVhbSBzdWl0YWJsZSBmb3IgdGhlIHBhcnNlci4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwKKyAqLworeG1sUGFyc2VySW5wdXRQdHIKK3htbE5ld0lPSW5wdXRTdHJlYW0oeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCwKKwkgICAgICAgICAgICB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXRTdHJlYW07CisKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmICh4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAibmV3IGlucHV0IGZyb20gSS9PXG4iKTsKKyAgICBpbnB1dFN0cmVhbSA9IHhtbE5ld0lucHV0U3RyZWFtKGN0eHQpOworICAgIGlmIChpbnB1dFN0cmVhbSA9PSBOVUxMKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBpbnB1dFN0cmVhbS0+ZmlsZW5hbWUgPSBOVUxMOworICAgIGlucHV0U3RyZWFtLT5idWYgPSBpbnB1dDsKKyAgICBpbnB1dFN0cmVhbS0+YmFzZSA9IGlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICBpbnB1dFN0cmVhbS0+Y3VyID0gaW5wdXRTdHJlYW0tPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworICAgIGlucHV0U3RyZWFtLT5lbmQgPSAmaW5wdXRTdHJlYW0tPmJhc2VbaW5wdXRTdHJlYW0tPmJ1Zi0+YnVmZmVyLT51c2VdOworICAgIGlmIChlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkgeworICAgICAgICB4bWxTd2l0Y2hFbmNvZGluZyhjdHh0LCBlbmMpOworICAgIH0KKworICAgIHJldHVybihpbnB1dFN0cmVhbSk7Cit9CisKKy8qKgorICogeG1sTmV3RW50aXR5SW5wdXRTdHJlYW06CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGVudGl0eTogIGFuIEVudGl0eSBwb2ludGVyCisgKgorICogQ3JlYXRlIGEgbmV3IGlucHV0IHN0cmVhbSBiYXNlZCBvbiBhbiB4bWxFbnRpdHlQdHIKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgaW5wdXQgc3RyZWFtIG9yIE5VTEwKKyAqLworeG1sUGFyc2VySW5wdXRQdHIKK3htbE5ld0VudGl0eUlucHV0U3RyZWFtKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgeG1sRW50aXR5UHRyIGVudGl0eSkgeworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworCisgICAgaWYgKGVudGl0eSA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyckludGVybmFsKGN0eHQsICJ4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSBlbnRpdHkgPSBOVUxMXG4iLAorCSAgICAgICAgICAgICAgIE5VTEwpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHhtbFBhcnNlckRlYnVnRW50aXRpZXMpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJuZXcgaW5wdXQgZnJvbSBlbnRpdHk6ICVzXG4iLCBlbnRpdHktPm5hbWUpOworICAgIGlmIChlbnRpdHktPmNvbnRlbnQgPT0gTlVMTCkgeworCXN3aXRjaCAoZW50aXR5LT5ldHlwZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFk6CisJICAgICAgICB4bWxFcnJJbnRlcm5hbChjdHh0LCAiQ2Fubm90IHBhcnNlIGVudGl0eSAlc1xuIiwKKwkJICAgICAgICAgICAgICAgZW50aXR5LT5uYW1lKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWToKKyAgICAgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJCXJldHVybih4bWxMb2FkRXh0ZXJuYWxFbnRpdHkoKGNoYXIgKikgZW50aXR5LT5VUkksCisJCSAgICAgICAoY2hhciAqKSBlbnRpdHktPkV4dGVybmFsSUQsIGN0eHQpKTsKKyAgICAgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZOgorCSAgICAgICAgeG1sRXJySW50ZXJuYWwoY3R4dCwKKwkJICAgICAgIkludGVybmFsIGVudGl0eSAlcyB3aXRob3V0IGNvbnRlbnQgIVxuIiwKKwkJICAgICAgICAgICAgICAgZW50aXR5LT5uYW1lKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJICAgICAgICB4bWxFcnJJbnRlcm5hbChjdHh0LAorCQkgICAgICAiSW50ZXJuYWwgcGFyYW1ldGVyIGVudGl0eSAlcyB3aXRob3V0IGNvbnRlbnQgIVxuIiwKKwkJICAgICAgICAgICAgICAgZW50aXR5LT5uYW1lKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZOgorCSAgICAgICAgeG1sRXJySW50ZXJuYWwoY3R4dCwKKwkJICAgICAgIlByZWRlZmluZWQgZW50aXR5ICVzIHdpdGhvdXQgY29udGVudCAhXG4iLAorCQkgICAgICAgICAgICAgICBlbnRpdHktPm5hbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCX0KKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlucHV0ID0geG1sTmV3SW5wdXRTdHJlYW0oY3R4dCk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChlbnRpdHktPlVSSSAhPSBOVUxMKQorCWlucHV0LT5maWxlbmFtZSA9IChjaGFyICopIHhtbFN0cmR1cCgoeG1sQ2hhciAqKSBlbnRpdHktPlVSSSk7CisgICAgaW5wdXQtPmJhc2UgPSBlbnRpdHktPmNvbnRlbnQ7CisgICAgaW5wdXQtPmN1ciA9IGVudGl0eS0+Y29udGVudDsKKyAgICBpbnB1dC0+bGVuZ3RoID0gZW50aXR5LT5sZW5ndGg7CisgICAgaW5wdXQtPmVuZCA9ICZlbnRpdHktPmNvbnRlbnRbaW5wdXQtPmxlbmd0aF07CisgICAgcmV0dXJuKGlucHV0KTsKK30KKworLyoqCisgKiB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbToKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAYnVmZmVyOiAgYW4gbWVtb3J5IGJ1ZmZlcgorICoKKyAqIENyZWF0ZSBhIG5ldyBpbnB1dCBzdHJlYW0gYmFzZWQgb24gYSBtZW1vcnkgYnVmZmVyLgorICogUmV0dXJucyB0aGUgbmV3IGlucHV0IHN0cmVhbQorICovCit4bWxQYXJzZXJJbnB1dFB0cgoreG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0oeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpidWZmZXIpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKworICAgIGlmIChidWZmZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxFcnJJbnRlcm5hbChjdHh0LCAieG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0gc3RyaW5nID0gTlVMTFxuIiwKKwkgICAgICAgICAgICAgICBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICh4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkibmV3IGZpeGVkIGlucHV0OiAlLjMwc1xuIiwgYnVmZmVyKTsKKyAgICBpbnB1dCA9IHhtbE5ld0lucHV0U3RyZWFtKGN0eHQpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShjdHh0LCAgImNvdWxkbid0IGFsbG9jYXRlIGEgbmV3IGlucHV0IHN0cmVhbVxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBpbnB1dC0+YmFzZSA9IGJ1ZmZlcjsKKyAgICBpbnB1dC0+Y3VyID0gYnVmZmVyOworICAgIGlucHV0LT5sZW5ndGggPSB4bWxTdHJsZW4oYnVmZmVyKTsKKyAgICBpbnB1dC0+ZW5kID0gJmJ1ZmZlcltpbnB1dC0+bGVuZ3RoXTsKKyAgICByZXR1cm4oaW5wdXQpOworfQorCisvKioKKyAqIHhtbE5ld0lucHV0RnJvbUZpbGU6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lIHRvIHVzZSBhcyBlbnRpdHkKKyAqCisgKiBDcmVhdGUgYSBuZXcgaW5wdXQgc3RyZWFtIGJhc2VkIG9uIGEgZmlsZSBvciBhbiBVUkwuCisgKgorICogUmV0dXJucyB0aGUgbmV3IGlucHV0IHN0cmVhbSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sUGFyc2VySW5wdXRQdHIKK3htbE5ld0lucHV0RnJvbUZpbGUoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dFN0cmVhbTsKKyAgICBjaGFyICpkaXJlY3RvcnkgPSBOVUxMOworICAgIHhtbENoYXIgKlVSSSA9IE5VTEw7CisKKyAgICBpZiAoeG1sUGFyc2VyRGVidWdFbnRpdGllcykKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIm5ldyBpbnB1dCBmcm9tIGZpbGU6ICVzXG4iLCBmaWxlbmFtZSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGJ1ZiA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoZmlsZW5hbWUsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworCWlmIChmaWxlbmFtZSA9PSBOVUxMKQorCSAgICBfX3htbExvYWRlckVycihjdHh0LAorCSAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5OiBOVUxMIGZpbGVuYW1lIFxuIiwKKwkJCSAgIE5VTEwpOworCWVsc2UKKwkgICAgX194bWxMb2FkZXJFcnIoY3R4dCwgImZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSBcIiVzXCJcbiIsCisJCQkgICAoY29uc3QgY2hhciAqKSBmaWxlbmFtZSk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlucHV0U3RyZWFtID0geG1sTmV3SW5wdXRTdHJlYW0oY3R4dCk7CisgICAgaWYgKGlucHV0U3RyZWFtID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgaW5wdXRTdHJlYW0tPmJ1ZiA9IGJ1ZjsKKyAgICBpbnB1dFN0cmVhbSA9IHhtbENoZWNrSFRUUElucHV0KGN0eHQsIGlucHV0U3RyZWFtKTsKKyAgICBpZiAoaW5wdXRTdHJlYW0gPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIAorICAgIGlmIChpbnB1dFN0cmVhbS0+ZmlsZW5hbWUgPT0gTlVMTCkKKwlVUkkgPSB4bWxTdHJkdXAoKHhtbENoYXIgKikgZmlsZW5hbWUpOworICAgIGVsc2UKKwlVUkkgPSB4bWxTdHJkdXAoKHhtbENoYXIgKikgaW5wdXRTdHJlYW0tPmZpbGVuYW1lKTsKKyAgICBkaXJlY3RvcnkgPSB4bWxQYXJzZXJHZXREaXJlY3RvcnkoKGNvbnN0IGNoYXIgKikgVVJJKTsKKyAgICBpZiAoaW5wdXRTdHJlYW0tPmZpbGVuYW1lICE9IE5VTEwpIHhtbEZyZWUoKGNoYXIgKilpbnB1dFN0cmVhbS0+ZmlsZW5hbWUpOworICAgIGlucHV0U3RyZWFtLT5maWxlbmFtZSA9IChjaGFyICopIHhtbENhbm9uaWNQYXRoKChjb25zdCB4bWxDaGFyICopIFVSSSk7CisgICAgaWYgKFVSSSAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIFVSSSk7CisgICAgaW5wdXRTdHJlYW0tPmRpcmVjdG9yeSA9IGRpcmVjdG9yeTsKKworICAgIGlucHV0U3RyZWFtLT5iYXNlID0gaW5wdXRTdHJlYW0tPmJ1Zi0+YnVmZmVyLT5jb250ZW50OworICAgIGlucHV0U3RyZWFtLT5jdXIgPSBpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXRTdHJlYW0tPmVuZCA9ICZpbnB1dFN0cmVhbS0+YmFzZVtpbnB1dFN0cmVhbS0+YnVmLT5idWZmZXItPnVzZV07CisgICAgaWYgKChjdHh0LT5kaXJlY3RvcnkgPT0gTlVMTCkgJiYgKGRpcmVjdG9yeSAhPSBOVUxMKSkKKyAgICAgICAgY3R4dC0+ZGlyZWN0b3J5ID0gKGNoYXIgKikgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIGRpcmVjdG9yeSk7CisgICAgcmV0dXJuKGlucHV0U3RyZWFtKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJQ29tbW9kaXR5IGZ1bmN0aW9ucyB0byBoYW5kbGUgcGFyc2VyIGNvbnRleHRzCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sSW5pdFBhcnNlckN0eHQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIEluaXRpYWxpemUgYSBwYXJzZXIgY29udGV4dAorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworCitpbnQKK3htbEluaXRQYXJzZXJDdHh0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKworICAgIGlmKGN0eHQ9PU5VTEwpIHsKKyAgICAgICAgeG1sRXJySW50ZXJuYWwoTlVMTCwgIkdvdCBOVUxMIHBhcnNlciBjb250ZXh0XG4iLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICB4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQoKTsKKworICAgIGlmIChjdHh0LT5kaWN0ID09IE5VTEwpCisJY3R4dC0+ZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKyAgICBpZiAoY3R4dC0+ZGljdCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShOVUxMLCAiY2Fubm90IGluaXRpYWxpemUgcGFyc2VyIGNvbnRleHRcbiIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChjdHh0LT5zYXggPT0gTlVMTCkKKwljdHh0LT5zYXggPSAoeG1sU0FYSGFuZGxlciAqKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNBWEhhbmRsZXIpKTsKKyAgICBpZiAoY3R4dC0+c2F4ID09IE5VTEwpIHsKKyAgICAgICAgeG1sRXJyTWVtb3J5KE5VTEwsICJjYW5ub3QgaW5pdGlhbGl6ZSBwYXJzZXIgY29udGV4dFxuIik7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgZWxzZQorICAgICAgICB4bWxTQVhWZXJzaW9uKGN0eHQtPnNheCwgMik7CisKKyAgICBjdHh0LT5tYXhhdHRzID0gMDsKKyAgICBjdHh0LT5hdHRzID0gTlVMTDsKKyAgICAvKiBBbGxvY2F0ZSB0aGUgSW5wdXQgc3RhY2sgKi8KKyAgICBpZiAoY3R4dC0+aW5wdXRUYWIgPT0gTlVMTCkgeworCWN0eHQtPmlucHV0VGFiID0gKHhtbFBhcnNlcklucHV0UHRyICopCisJCSAgICB4bWxNYWxsb2MoNSAqIHNpemVvZih4bWxQYXJzZXJJbnB1dFB0cikpOworCWN0eHQtPmlucHV0TWF4ID0gNTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmlucHV0VGFiID09IE5VTEwpIHsKKyAgICAgICAgeG1sRXJyTWVtb3J5KE5VTEwsICJjYW5ub3QgaW5pdGlhbGl6ZSBwYXJzZXIgY29udGV4dFxuIik7CisJY3R4dC0+aW5wdXROciA9IDA7CisJY3R4dC0+aW5wdXRNYXggPSAwOworCWN0eHQtPmlucHV0ID0gTlVMTDsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB3aGlsZSAoKGlucHV0ID0gaW5wdXRQb3AoY3R4dCkpICE9IE5VTEwpIHsgLyogTm9uIGNvbnN1bWluZyAqLworICAgICAgICB4bWxGcmVlSW5wdXRTdHJlYW0oaW5wdXQpOworICAgIH0KKyAgICBjdHh0LT5pbnB1dE5yID0gMDsKKyAgICBjdHh0LT5pbnB1dCA9IE5VTEw7CisKKyAgICBjdHh0LT52ZXJzaW9uID0gTlVMTDsKKyAgICBjdHh0LT5lbmNvZGluZyA9IE5VTEw7CisgICAgY3R4dC0+c3RhbmRhbG9uZSA9IC0xOworICAgIGN0eHQtPmhhc0V4dGVybmFsU3Vic2V0ID0gMDsKKyAgICBjdHh0LT5oYXNQRXJlZnMgPSAwOworICAgIGN0eHQtPmh0bWwgPSAwOworICAgIGN0eHQtPmV4dGVybmFsID0gMDsKKyAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9TVEFSVDsKKyAgICBjdHh0LT50b2tlbiA9IDA7CisgICAgY3R4dC0+ZGlyZWN0b3J5ID0gTlVMTDsKKworICAgIC8qIEFsbG9jYXRlIHRoZSBOb2RlIHN0YWNrICovCisgICAgaWYgKGN0eHQtPm5vZGVUYWIgPT0gTlVMTCkgeworCWN0eHQtPm5vZGVUYWIgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MoMTAgKiBzaXplb2YoeG1sTm9kZVB0cikpOworCWN0eHQtPm5vZGVNYXggPSAxMDsKKyAgICB9CisgICAgaWYgKGN0eHQtPm5vZGVUYWIgPT0gTlVMTCkgeworICAgICAgICB4bWxFcnJNZW1vcnkoTlVMTCwgImNhbm5vdCBpbml0aWFsaXplIHBhcnNlciBjb250ZXh0XG4iKTsKKwljdHh0LT5ub2RlTnIgPSAwOworCWN0eHQtPm5vZGVNYXggPSAwOworCWN0eHQtPm5vZGUgPSBOVUxMOworCWN0eHQtPmlucHV0TnIgPSAwOworCWN0eHQtPmlucHV0TWF4ID0gMDsKKwljdHh0LT5pbnB1dCA9IE5VTEw7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgY3R4dC0+bm9kZU5yID0gMDsKKyAgICBjdHh0LT5ub2RlID0gTlVMTDsKKworICAgIC8qIEFsbG9jYXRlIHRoZSBOYW1lIHN0YWNrICovCisgICAgaWYgKGN0eHQtPm5hbWVUYWIgPT0gTlVMTCkgeworCWN0eHQtPm5hbWVUYWIgPSAoY29uc3QgeG1sQ2hhciAqKikgeG1sTWFsbG9jKDEwICogc2l6ZW9mKHhtbENoYXIgKikpOworCWN0eHQtPm5hbWVNYXggPSAxMDsKKyAgICB9CisgICAgaWYgKGN0eHQtPm5hbWVUYWIgPT0gTlVMTCkgeworICAgICAgICB4bWxFcnJNZW1vcnkoTlVMTCwgImNhbm5vdCBpbml0aWFsaXplIHBhcnNlciBjb250ZXh0XG4iKTsKKwljdHh0LT5ub2RlTnIgPSAwOworCWN0eHQtPm5vZGVNYXggPSAwOworCWN0eHQtPm5vZGUgPSBOVUxMOworCWN0eHQtPmlucHV0TnIgPSAwOworCWN0eHQtPmlucHV0TWF4ID0gMDsKKwljdHh0LT5pbnB1dCA9IE5VTEw7CisJY3R4dC0+bmFtZU5yID0gMDsKKwljdHh0LT5uYW1lTWF4ID0gMDsKKwljdHh0LT5uYW1lID0gTlVMTDsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBjdHh0LT5uYW1lTnIgPSAwOworICAgIGN0eHQtPm5hbWUgPSBOVUxMOworCisgICAgLyogQWxsb2NhdGUgdGhlIHNwYWNlIHN0YWNrICovCisgICAgaWYgKGN0eHQtPnNwYWNlVGFiID09IE5VTEwpIHsKKwljdHh0LT5zcGFjZVRhYiA9IChpbnQgKikgeG1sTWFsbG9jKDEwICogc2l6ZW9mKGludCkpOworCWN0eHQtPnNwYWNlTWF4ID0gMTA7CisgICAgfQorICAgIGlmIChjdHh0LT5zcGFjZVRhYiA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShOVUxMLCAiY2Fubm90IGluaXRpYWxpemUgcGFyc2VyIGNvbnRleHRcbiIpOworCWN0eHQtPm5vZGVOciA9IDA7CisJY3R4dC0+bm9kZU1heCA9IDA7CisJY3R4dC0+bm9kZSA9IE5VTEw7CisJY3R4dC0+aW5wdXROciA9IDA7CisJY3R4dC0+aW5wdXRNYXggPSAwOworCWN0eHQtPmlucHV0ID0gTlVMTDsKKwljdHh0LT5uYW1lTnIgPSAwOworCWN0eHQtPm5hbWVNYXggPSAwOworCWN0eHQtPm5hbWUgPSBOVUxMOworCWN0eHQtPnNwYWNlTnIgPSAwOworCWN0eHQtPnNwYWNlTWF4ID0gMDsKKwljdHh0LT5zcGFjZSA9IE5VTEw7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgY3R4dC0+c3BhY2VOciA9IDE7CisgICAgY3R4dC0+c3BhY2VNYXggPSAxMDsKKyAgICBjdHh0LT5zcGFjZVRhYlswXSA9IC0xOworICAgIGN0eHQtPnNwYWNlID0gJmN0eHQtPnNwYWNlVGFiWzBdOworICAgIGN0eHQtPnVzZXJEYXRhID0gY3R4dDsKKyAgICBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgY3R4dC0+d2VsbEZvcm1lZCA9IDE7CisgICAgY3R4dC0+bnNXZWxsRm9ybWVkID0gMTsKKyAgICBjdHh0LT52YWxpZCA9IDE7CisgICAgY3R4dC0+bG9hZHN1YnNldCA9IHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWU7CisgICAgY3R4dC0+dmFsaWRhdGUgPSB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU7CisgICAgY3R4dC0+cGVkYW50aWMgPSB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZTsKKyAgICBjdHh0LT5saW5lbnVtYmVycyA9IHhtbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlOworICAgIGN0eHQtPmtlZXBCbGFua3MgPSB4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlOworICAgIGlmIChjdHh0LT5rZWVwQmxhbmtzID09IDApCisJY3R4dC0+c2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlID0geG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2U7CisKKyAgICBjdHh0LT52Y3R4dC5maW5pc2hEdGQgPSBYTUxfQ1RYVF9GSU5JU0hfRFREXzA7CisgICAgY3R4dC0+dmN0eHQudXNlckRhdGEgPSBjdHh0OworICAgIGN0eHQtPnZjdHh0LmVycm9yID0geG1sUGFyc2VyVmFsaWRpdHlFcnJvcjsKKyAgICBjdHh0LT52Y3R4dC53YXJuaW5nID0geG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nOworICAgIGlmIChjdHh0LT52YWxpZGF0ZSkgeworCWlmICh4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSA9PSAwKQorCSAgICBjdHh0LT52Y3R4dC53YXJuaW5nID0gTlVMTDsKKwllbHNlCisJICAgIGN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc7CisJY3R4dC0+dmN0eHQubm9kZU1heCA9IDA7CisgICAgfQorICAgIGN0eHQtPnJlcGxhY2VFbnRpdGllcyA9IHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTsKKyAgICBjdHh0LT5yZWNvcmRfaW5mbyA9IDA7CisgICAgY3R4dC0+bmJDaGFycyA9IDA7CisgICAgY3R4dC0+Y2hlY2tJbmRleCA9IDA7CisgICAgY3R4dC0+aW5TdWJzZXQgPSAwOworICAgIGN0eHQtPmVyck5vID0gWE1MX0VSUl9PSzsKKyAgICBjdHh0LT5kZXB0aCA9IDA7CisgICAgY3R4dC0+Y2hhcnNldCA9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjg7CisgICAgY3R4dC0+Y2F0YWxvZ3MgPSBOVUxMOworICAgIGN0eHQtPm5iZW50aXRpZXMgPSAwOworICAgIHhtbEluaXROb2RlSW5mb1NlcSgmY3R4dC0+bm9kZV9zZXEpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxGcmVlUGFyc2VyQ3R4dDoKKyAqIEBjdHh0OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogRnJlZSBhbGwgdGhlIG1lbW9yeSB1c2VkIGJ5IGEgcGFyc2VyIGNvbnRleHQuIEhvd2V2ZXIgdGhlIHBhcnNlZAorICogZG9jdW1lbnQgaW4gY3R4dC0+bXlEb2MgaXMgbm90IGZyZWVkLgorICovCisKK3ZvaWQKK3htbEZyZWVQYXJzZXJDdHh0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybjsKKworICAgIHdoaWxlICgoaW5wdXQgPSBpbnB1dFBvcChjdHh0KSkgIT0gTlVMTCkgeyAvKiBOb24gY29uc3VtaW5nICovCisgICAgICAgIHhtbEZyZWVJbnB1dFN0cmVhbShpbnB1dCk7CisgICAgfQorICAgIGlmIChjdHh0LT5zcGFjZVRhYiAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPnNwYWNlVGFiKTsKKyAgICBpZiAoY3R4dC0+bmFtZVRhYiAhPSBOVUxMKSB4bWxGcmVlKCh4bWxDaGFyICogKiljdHh0LT5uYW1lVGFiKTsKKyAgICBpZiAoY3R4dC0+bm9kZVRhYiAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPm5vZGVUYWIpOworICAgIGlmIChjdHh0LT5ub2RlSW5mb1RhYiAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPm5vZGVJbmZvVGFiKTsKKyAgICBpZiAoY3R4dC0+aW5wdXRUYWIgIT0gTlVMTCkgeG1sRnJlZShjdHh0LT5pbnB1dFRhYik7CisgICAgaWYgKGN0eHQtPnZlcnNpb24gIT0gTlVMTCkgeG1sRnJlZSgoY2hhciAqKSBjdHh0LT52ZXJzaW9uKTsKKyAgICBpZiAoY3R4dC0+ZW5jb2RpbmcgIT0gTlVMTCkgeG1sRnJlZSgoY2hhciAqKSBjdHh0LT5lbmNvZGluZyk7CisgICAgaWYgKGN0eHQtPmV4dFN1YlVSSSAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGN0eHQtPmV4dFN1YlVSSSk7CisgICAgaWYgKGN0eHQtPmV4dFN1YlN5c3RlbSAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGN0eHQtPmV4dFN1YlN5c3RlbSk7CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGlmICgoY3R4dC0+c2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT5zYXggIT0gKHhtbFNBWEhhbmRsZXJQdHIpICZ4bWxEZWZhdWx0U0FYSGFuZGxlcikpCisjZWxzZQorICAgIGlmIChjdHh0LT5zYXggIT0gTlVMTCkKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisgICAgICAgIHhtbEZyZWUoY3R4dC0+c2F4KTsKKyAgICBpZiAoY3R4dC0+ZGlyZWN0b3J5ICE9IE5VTEwpIHhtbEZyZWUoKGNoYXIgKikgY3R4dC0+ZGlyZWN0b3J5KTsKKyAgICBpZiAoY3R4dC0+dmN0eHQubm9kZVRhYiAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPnZjdHh0Lm5vZGVUYWIpOworICAgIGlmIChjdHh0LT5hdHRzICE9IE5VTEwpIHhtbEZyZWUoKHhtbENoYXIgKiAqKWN0eHQtPmF0dHMpOworICAgIGlmIChjdHh0LT5kaWN0ICE9IE5VTEwpIHhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworICAgIGlmIChjdHh0LT5uc1RhYiAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGN0eHQtPm5zVGFiKTsKKyAgICBpZiAoY3R4dC0+cHVzaFRhYiAhPSBOVUxMKSB4bWxGcmVlKGN0eHQtPnB1c2hUYWIpOworICAgIGlmIChjdHh0LT5hdHRhbGxvY3MgIT0gTlVMTCkgeG1sRnJlZShjdHh0LT5hdHRhbGxvY3MpOworICAgIGlmIChjdHh0LT5hdHRzRGVmYXVsdCAhPSBOVUxMKSAKKyAgICAgICAgeG1sSGFzaEZyZWUoY3R4dC0+YXR0c0RlZmF1bHQsICh4bWxIYXNoRGVhbGxvY2F0b3IpIHhtbEZyZWUpOworICAgIGlmIChjdHh0LT5hdHRzU3BlY2lhbCAhPSBOVUxMKQorICAgICAgICB4bWxIYXNoRnJlZShjdHh0LT5hdHRzU3BlY2lhbCwgTlVMTCk7CisgICAgaWYgKGN0eHQtPmZyZWVFbGVtcyAhPSBOVUxMKSB7CisgICAgICAgIHhtbE5vZGVQdHIgY3VyLCBuZXh0OworCisJY3VyID0gY3R4dC0+ZnJlZUVsZW1zOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICBuZXh0ID0gY3VyLT5uZXh0OworCSAgICB4bWxGcmVlKGN1cik7CisJICAgIGN1ciA9IG5leHQ7CisJfQorICAgIH0KKyAgICBpZiAoY3R4dC0+ZnJlZUF0dHJzICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQXR0clB0ciBjdXIsIG5leHQ7CisKKwljdXIgPSBjdHh0LT5mcmVlQXR0cnM7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJICAgIG5leHQgPSBjdXItPm5leHQ7CisJICAgIHhtbEZyZWUoY3VyKTsKKwkgICAgY3VyID0gbmV4dDsKKwl9CisgICAgfQorICAgIC8qCisgICAgICogY2xlYW51cCB0aGUgZXJyb3Igc3RyaW5ncworICAgICAqLworICAgIGlmIChjdHh0LT5sYXN0RXJyb3IubWVzc2FnZSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGN0eHQtPmxhc3RFcnJvci5tZXNzYWdlKTsKKyAgICBpZiAoY3R4dC0+bGFzdEVycm9yLmZpbGUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShjdHh0LT5sYXN0RXJyb3IuZmlsZSk7CisgICAgaWYgKGN0eHQtPmxhc3RFcnJvci5zdHIxICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoY3R4dC0+bGFzdEVycm9yLnN0cjEpOworICAgIGlmIChjdHh0LT5sYXN0RXJyb3Iuc3RyMiAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGN0eHQtPmxhc3RFcnJvci5zdHIyKTsKKyAgICBpZiAoY3R4dC0+bGFzdEVycm9yLnN0cjMgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShjdHh0LT5sYXN0RXJyb3Iuc3RyMyk7CisKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECisgICAgaWYgKGN0eHQtPmNhdGFsb2dzICE9IE5VTEwpCisJeG1sQ2F0YWxvZ0ZyZWVMb2NhbChjdHh0LT5jYXRhbG9ncyk7CisjZW5kaWYKKyAgICB4bWxGcmVlKGN0eHQpOworfQorCisvKioKKyAqIHhtbE5ld1BhcnNlckN0eHQ6CisgKgorICogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYSBuZXcgcGFyc2VyIGNvbnRleHQuCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VyQ3R4dFB0ciBvciBOVUxMCisgKi8KKworeG1sUGFyc2VyQ3R4dFB0cgoreG1sTmV3UGFyc2VyQ3R4dCh2b2lkKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxQYXJzZXJDdHh0KSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworCXhtbEVyck1lbW9yeShOVUxMLCAiY2Fubm90IGFsbG9jYXRlIHBhcnNlciBjb250ZXh0XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChjdHh0LCAwLCBzaXplb2YoeG1sUGFyc2VyQ3R4dCkpOworICAgIGlmICh4bWxJbml0UGFyc2VyQ3R4dChjdHh0KSA8IDApIHsKKyAgICAgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4oY3R4dCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUhhbmRsaW5nIG9mIG5vZGUgaW5mb3JtYXRpb25zCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxDbGVhclBhcnNlckN0eHQ6CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIENsZWFyIChyZWxlYXNlIG93bmVkIHJlc291cmNlcykgYW5kIHJlaW5pdGlhbGl6ZSBhIHBhcnNlciBjb250ZXh0CisgKi8KKwordm9pZAoreG1sQ2xlYXJQYXJzZXJDdHh0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgaWYgKGN0eHQ9PU5VTEwpCisgICAgcmV0dXJuOworICB4bWxDbGVhck5vZGVJbmZvU2VxKCZjdHh0LT5ub2RlX3NlcSk7CisgIHhtbEN0eHRSZXNldChjdHh0KTsKK30KKworCisvKioKKyAqIHhtbFBhcnNlckZpbmROb2RlSW5mbzoKKyAqIEBjdHg6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlOiAgYW4gWE1MIG5vZGUgd2l0aGluIHRoZSB0cmVlCisgKgorICogRmluZCB0aGUgcGFyc2VyIG5vZGUgaW5mbyBzdHJ1Y3QgZm9yIGEgZ2l2ZW4gbm9kZQorICogCisgKiBSZXR1cm5zIGFuIHhtbFBhcnNlck5vZGVJbmZvIGJsb2NrIHBvaW50ZXIgb3IgTlVMTAorICovCitjb25zdCB4bWxQYXJzZXJOb2RlSW5mbyAqCit4bWxQYXJzZXJGaW5kTm9kZUluZm8oY29uc3QgeG1sUGFyc2VyQ3R4dFB0ciBjdHgsIGNvbnN0IHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB1bnNpZ25lZCBsb25nIHBvczsKKworICAgIGlmICgoY3R4ID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIC8qIEZpbmQgcG9zaXRpb24gd2hlcmUgbm9kZSBzaG91bGQgYmUgYXQgKi8KKyAgICBwb3MgPSB4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCgmY3R4LT5ub2RlX3NlcSwgbm9kZSk7CisgICAgaWYgKHBvcyA8IGN0eC0+bm9kZV9zZXEubGVuZ3RoCisgICAgICAgICYmIGN0eC0+bm9kZV9zZXEuYnVmZmVyW3Bvc10ubm9kZSA9PSBub2RlKQorICAgICAgICByZXR1cm4gJmN0eC0+bm9kZV9zZXEuYnVmZmVyW3Bvc107CisgICAgZWxzZQorICAgICAgICByZXR1cm4gTlVMTDsKK30KKworCisvKioKKyAqIHhtbEluaXROb2RlSW5mb1NlcToKKyAqIEBzZXE6ICBhIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyCisgKgorICogLS0gSW5pdGlhbGl6ZSAoc2V0IHRvIGluaXRpYWwgc3RhdGUpIG5vZGUgaW5mbyBzZXF1ZW5jZQorICovCit2b2lkCit4bWxJbml0Tm9kZUluZm9TZXEoeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgc2VxKQoreworICAgIGlmIChzZXEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIHNlcS0+bGVuZ3RoID0gMDsKKyAgICBzZXEtPm1heGltdW0gPSAwOworICAgIHNlcS0+YnVmZmVyID0gTlVMTDsKK30KKworLyoqCisgKiB4bWxDbGVhck5vZGVJbmZvU2VxOgorICogQHNlcTogIGEgbm9kZSBpbmZvIHNlcXVlbmNlIHBvaW50ZXIKKyAqCisgKiAtLSBDbGVhciAocmVsZWFzZSBtZW1vcnkgYW5kIHJlaW5pdGlhbGl6ZSkgbm9kZQorICogICBpbmZvIHNlcXVlbmNlCisgKi8KK3ZvaWQKK3htbENsZWFyTm9kZUluZm9TZXEoeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgc2VxKQoreworICAgIGlmIChzZXEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChzZXEtPmJ1ZmZlciAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHNlcS0+YnVmZmVyKTsKKyAgICB4bWxJbml0Tm9kZUluZm9TZXEoc2VxKTsKK30KKworLyoqCisgKiB4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleDoKKyAqIEBzZXE6ICBhIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyCisgKiBAbm9kZTogIGFuIFhNTCBub2RlIHBvaW50ZXIKKyAqCisgKiAKKyAqIHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4IDogRmluZCB0aGUgaW5kZXggdGhhdCB0aGUgaW5mbyByZWNvcmQgZm9yCisgKiAgIHRoZSBnaXZlbiBub2RlIGlzIG9yIHNob3VsZCBiZSBhdCBpbiBhIHNvcnRlZCBzZXF1ZW5jZQorICoKKyAqIFJldHVybnMgYSBsb25nIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSByZWNvcmQKKyAqLwordW5zaWduZWQgbG9uZworeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgoY29uc3QgeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgc2VxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHVuc2lnbmVkIGxvbmcgdXBwZXIsIGxvd2VyLCBtaWRkbGU7CisgICAgaW50IGZvdW5kID0gMDsKKworICAgIGlmICgoc2VxID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKCh1bnNpZ25lZCBsb25nKSAtMSk7CisKKyAgICAvKiBEbyBhIGJpbmFyeSBzZWFyY2ggZm9yIHRoZSBrZXkgKi8KKyAgICBsb3dlciA9IDE7CisgICAgdXBwZXIgPSBzZXEtPmxlbmd0aDsKKyAgICBtaWRkbGUgPSAwOworICAgIHdoaWxlIChsb3dlciA8PSB1cHBlciAmJiAhZm91bmQpIHsKKyAgICAgICAgbWlkZGxlID0gbG93ZXIgKyAodXBwZXIgLSBsb3dlcikgLyAyOworICAgICAgICBpZiAobm9kZSA9PSBzZXEtPmJ1ZmZlclttaWRkbGUgLSAxXS5ub2RlKQorICAgICAgICAgICAgZm91bmQgPSAxOworICAgICAgICBlbHNlIGlmIChub2RlIDwgc2VxLT5idWZmZXJbbWlkZGxlIC0gMV0ubm9kZSkKKyAgICAgICAgICAgIHVwcGVyID0gbWlkZGxlIC0gMTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG93ZXIgPSBtaWRkbGUgKyAxOworICAgIH0KKworICAgIC8qIFJldHVybiBwb3NpdGlvbiAqLworICAgIGlmIChtaWRkbGUgPT0gMCB8fCBzZXEtPmJ1ZmZlclttaWRkbGUgLSAxXS5ub2RlIDwgbm9kZSkKKyAgICAgICAgcmV0dXJuIG1pZGRsZTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBtaWRkbGUgLSAxOworfQorCisKKy8qKgorICogeG1sUGFyc2VyQWRkTm9kZUluZm86CisgKiBAY3R4dDogIGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGluZm86ICBhIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyCisgKgorICogSW5zZXJ0IG5vZGUgaW5mbyByZWNvcmQgaW50byB0aGUgc29ydGVkIHNlcXVlbmNlCisgKi8KK3ZvaWQKK3htbFBhcnNlckFkZE5vZGVJbmZvKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvUHRyIGluZm8pCit7CisgICAgdW5zaWduZWQgbG9uZyBwb3M7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGluZm8gPT0gTlVMTCkpIHJldHVybjsKKworICAgIC8qIEZpbmQgcG9zIGFuZCBjaGVjayB0byBzZWUgaWYgbm9kZSBpcyBhbHJlYWR5IGluIHRoZSBzZXF1ZW5jZSAqLworICAgIHBvcyA9IHhtbFBhcnNlckZpbmROb2RlSW5mb0luZGV4KCZjdHh0LT5ub2RlX3NlcSwgKHhtbE5vZGVQdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+bm9kZSk7CisKKyAgICBpZiAoKHBvcyA8IGN0eHQtPm5vZGVfc2VxLmxlbmd0aCkgJiYgCisgICAgICAgIChjdHh0LT5ub2RlX3NlcS5idWZmZXIgIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPm5vZGVfc2VxLmJ1ZmZlcltwb3NdLm5vZGUgPT0gaW5mby0+bm9kZSkpIHsKKyAgICAgICAgY3R4dC0+bm9kZV9zZXEuYnVmZmVyW3Bvc10gPSAqaW5mbzsKKyAgICB9CisKKyAgICAvKiBPdGhlcndpc2UsIHdlIG5lZWQgdG8gYWRkIG5ldyBub2RlIHRvIGJ1ZmZlciAqLworICAgIGVsc2UgeworICAgICAgICBpZiAoY3R4dC0+bm9kZV9zZXEubGVuZ3RoICsgMSA+IGN0eHQtPm5vZGVfc2VxLm1heGltdW0pIHsKKyAgICAgICAgICAgIHhtbFBhcnNlck5vZGVJbmZvICp0bXBfYnVmZmVyOworICAgICAgICAgICAgdW5zaWduZWQgaW50IGJ5dGVfc2l6ZTsKKworICAgICAgICAgICAgaWYgKGN0eHQtPm5vZGVfc2VxLm1heGltdW0gPT0gMCkKKyAgICAgICAgICAgICAgICBjdHh0LT5ub2RlX3NlcS5tYXhpbXVtID0gMjsKKyAgICAgICAgICAgIGJ5dGVfc2l6ZSA9IChzaXplb2YoKmN0eHQtPm5vZGVfc2VxLmJ1ZmZlcikgKgorCQkJKDIgKiBjdHh0LT5ub2RlX3NlcS5tYXhpbXVtKSk7CisKKyAgICAgICAgICAgIGlmIChjdHh0LT5ub2RlX3NlcS5idWZmZXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICB0bXBfYnVmZmVyID0gKHhtbFBhcnNlck5vZGVJbmZvICopIHhtbE1hbGxvYyhieXRlX3NpemUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRtcF9idWZmZXIgPQorICAgICAgICAgICAgICAgICAgICAoeG1sUGFyc2VyTm9kZUluZm8gKikgeG1sUmVhbGxvYyhjdHh0LT5ub2RlX3NlcS5idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVfc2l6ZSk7CisKKyAgICAgICAgICAgIGlmICh0bXBfYnVmZmVyID09IE5VTEwpIHsKKwkJeG1sRXJyTWVtb3J5KGN0eHQsICJmYWlsZWQgdG8gYWxsb2NhdGUgYnVmZmVyXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdHh0LT5ub2RlX3NlcS5idWZmZXIgPSB0bXBfYnVmZmVyOworICAgICAgICAgICAgY3R4dC0+bm9kZV9zZXEubWF4aW11bSAqPSAyOworICAgICAgICB9CisKKyAgICAgICAgLyogSWYgcG9zaXRpb24gaXMgbm90IGF0IGVuZCwgbW92ZSBlbGVtZW50cyBvdXQgb2YgdGhlIHdheSAqLworICAgICAgICBpZiAocG9zICE9IGN0eHQtPm5vZGVfc2VxLmxlbmd0aCkgeworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpOworCisgICAgICAgICAgICBmb3IgKGkgPSBjdHh0LT5ub2RlX3NlcS5sZW5ndGg7IGkgPiBwb3M7IGktLSkKKyAgICAgICAgICAgICAgICBjdHh0LT5ub2RlX3NlcS5idWZmZXJbaV0gPSBjdHh0LT5ub2RlX3NlcS5idWZmZXJbaSAtIDFdOworICAgICAgICB9CisKKyAgICAgICAgLyogQ29weSBlbGVtZW50IGFuZCBpbmNyZWFzZSBsZW5ndGggKi8KKyAgICAgICAgY3R4dC0+bm9kZV9zZXEuYnVmZmVyW3Bvc10gPSAqaW5mbzsKKyAgICAgICAgY3R4dC0+bm9kZV9zZXEubGVuZ3RoKys7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlEZWZhdWx0cyBzZXR0aW5ncwkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQ6CisgKiBAdmFsOiAgaW50IDAgb3IgMSAKKyAqCisgKiBTZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGVuYWJsaW5nIHBlZGFudGljIHdhcm5pbmdzLgorICoKKyAqIFJldHVybnMgdGhlIGxhc3QgdmFsdWUgZm9yIDAgZm9yIG5vIHN1YnN0aXR1dGlvbiwgMSBmb3Igc3Vic3RpdHV0aW9uLgorICovCisKK2ludAoreG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0KGludCB2YWwpIHsKKyAgICBpbnQgb2xkID0geG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWU7CisKKyAgICB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSA9IHZhbDsKKyAgICByZXR1cm4ob2xkKTsKK30KKworLyoqCisgKiB4bWxMaW5lTnVtYmVyc0RlZmF1bHQ6CisgKiBAdmFsOiAgaW50IDAgb3IgMSAKKyAqCisgKiBTZXQgYW5kIHJldHVybiB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGVuYWJsaW5nIGxpbmUgbnVtYmVycyBpbiBlbGVtZW50cworICogY29udGVudHMuIFRoaXMgbWF5IGJyZWFrIG9uIG9sZCBhcHBsaWNhdGlvbiBhbmQgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0LgorICoKKyAqIFJldHVybnMgdGhlIGxhc3QgdmFsdWUgZm9yIDAgZm9yIG5vIHN1YnN0aXR1dGlvbiwgMSBmb3Igc3Vic3RpdHV0aW9uLgorICovCisKK2ludAoreG1sTGluZU51bWJlcnNEZWZhdWx0KGludCB2YWwpIHsKKyAgICBpbnQgb2xkID0geG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWU7CisKKyAgICB4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSA9IHZhbDsKKyAgICByZXR1cm4ob2xkKTsKK30KKworLyoqCisgKiB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0OgorICogQHZhbDogIGludCAwIG9yIDEgCisgKgorICogU2V0IGFuZCByZXR1cm4gdGhlIHByZXZpb3VzIHZhbHVlIGZvciBkZWZhdWx0IGVudGl0eSBzdXBwb3J0LgorICogSW5pdGlhbGx5IHRoZSBwYXJzZXIgYWx3YXlzIGtlZXAgZW50aXR5IHJlZmVyZW5jZXMgaW5zdGVhZCBvZiBzdWJzdGl0dXRpbmcKKyAqIGVudGl0eSB2YWx1ZXMgaW4gdGhlIG91dHB1dC4gVGhpcyBmdW5jdGlvbiBoYXMgdG8gYmUgdXNlZCB0byBjaGFuZ2UgdGhlCisgKiBkZWZhdWx0IHBhcnNlciBiZWhhdmlvcgorICogU0FYOjpzdWJzdGl0dXRlRW50aXRpZXMoKSBoYXMgdG8gYmUgdXNlZCBmb3IgY2hhbmdpbmcgdGhhdCBvbiBhIGZpbGUgYnkKKyAqIGZpbGUgYmFzaXMuCisgKgorICogUmV0dXJucyB0aGUgbGFzdCB2YWx1ZSBmb3IgMCBmb3Igbm8gc3Vic3RpdHV0aW9uLCAxIGZvciBzdWJzdGl0dXRpb24uCisgKi8KKworaW50Cit4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0KGludCB2YWwpIHsKKyAgICBpbnQgb2xkID0geG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlOworCisgICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlID0gdmFsOworICAgIHJldHVybihvbGQpOworfQorCisvKioKKyAqIHhtbEtlZXBCbGFua3NEZWZhdWx0OgorICogQHZhbDogIGludCAwIG9yIDEgCisgKgorICogU2V0IGFuZCByZXR1cm4gdGhlIHByZXZpb3VzIHZhbHVlIGZvciBkZWZhdWx0IGJsYW5rcyB0ZXh0IG5vZGVzIHN1cHBvcnQuCisgKiBUaGUgMS54IHZlcnNpb24gb2YgdGhlIHBhcnNlciB1c2VkIGFuIGhldXJpc3RpYyB0byB0cnkgdG8gZGV0ZWN0CisgKiBpZ25vcmFibGUgd2hpdGUgc3BhY2VzLiBBcyBhIHJlc3VsdCB0aGUgU0FYIGNhbGxiYWNrIHdhcyBnZW5lcmF0aW5nCisgKiB4bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSgpIGNhbGxiYWNrcyBpbnN0ZWFkIG9mIGNoYXJhY3RlcnMoKSBvbmUsIGFuZCB3aGVuCisgKiB1c2luZyB0aGUgRE9NIG91dHB1dCB0ZXh0IG5vZGVzIGNvbnRhaW5pbmcgdGhvc2UgYmxhbmtzIHdlcmUgbm90IGdlbmVyYXRlZC4KKyAqIFRoZSAyLnggYW5kIGxhdGVyIHZlcnNpb24gd2lsbCBzd2l0Y2ggdG8gdGhlIFhNTCBzdGFuZGFyZCB3YXkgYW5kCisgKiBpZ25vcmFibGVXaGl0ZXNwYWNlKCkgYXJlIG9ubHkgZ2VuZXJhdGVkIHdoZW4gcnVubmluZyB0aGUgcGFyc2VyIGluCisgKiB2YWxpZGF0aW5nIG1vZGUgYW5kIHdoZW4gdGhlIGN1cnJlbnQgZWxlbWVudCBkb2Vzbid0IGFsbG93IENEQVRBIG9yCisgKiBtaXhlZCBjb250ZW50LgorICogVGhpcyBmdW5jdGlvbiBpcyBwcm92aWRlZCBhcyBhIHdheSB0byBmb3JjZSB0aGUgc3RhbmRhcmQgYmVoYXZpb3IgCisgKiBvbiAxLlggbGlicyBhbmQgdG8gc3dpdGNoIGJhY2sgdG8gdGhlIG9sZCBtb2RlIGZvciBjb21wYXRpYmlsaXR5IHdoZW4KKyAqIHJ1bm5pbmcgMS5YIGNsaWVudCBjb2RlIG9uIDIuWCAuIFVwZ3JhZGUgb2YgMS5YIGNvZGUgc2hvdWxkIGJlIGRvbmUKKyAqIGJ5IHVzaW5nIHhtbElzQmxhbmtOb2RlKCkgY29tbW9kaXR5IGZ1bmN0aW9uIHRvIGRldGVjdCB0aGUgImVtcHR5IgorICogbm9kZXMgZ2VuZXJhdGVkLgorICogVGhpcyB2YWx1ZSBhbHNvIGFmZmVjdCBhdXRvZ2VuZXJhdGlvbiBvZiBpbmRlbnRhdGlvbiB3aGVuIHNhdmluZyBjb2RlCisgKiBpZiBibGFua3Mgc2VjdGlvbnMgYXJlIGtlcHQsIGluZGVudGF0aW9uIGlzIG5vdCBnZW5lcmF0ZWQuCisgKgorICogUmV0dXJucyB0aGUgbGFzdCB2YWx1ZSBmb3IgMCBmb3Igbm8gc3Vic3RpdHV0aW9uLCAxIGZvciBzdWJzdGl0dXRpb24uCisgKi8KKworaW50Cit4bWxLZWVwQmxhbmtzRGVmYXVsdChpbnQgdmFsKSB7CisgICAgaW50IG9sZCA9IHhtbEtlZXBCbGFua3NEZWZhdWx0VmFsdWU7CisKKyAgICB4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlID0gdmFsOworICAgIGlmICghdmFsKSB4bWxJbmRlbnRUcmVlT3V0cHV0ID0gMTsKKyAgICByZXR1cm4ob2xkKTsKK30KKworI2RlZmluZSBib3R0b21fcGFyc2VySW50ZXJuYWxzCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9wYXR0ZXJuLmMgYi9saWJ4bWwyLTIuNy43L3BhdHRlcm4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTM4YzJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9wYXR0ZXJuLmMKQEAgLTAsMCArMSwyNjEzIEBACisvKgorICogcGF0dGVybi5jOiBJbXBsZW1ldGF0aW9uIG9mIHNlbGVjdG9ycyBmb3Igbm9kZXMKKyAqCisgKiBSZWZlcmVuY2U6CisgKiAgIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbHNjaGVtYS0xLTIwMDEwNTAyLworICogICB0byBzb21lIGV4dGVudCAKKyAqICAgaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteG1sLTE5OTkxMTE2CisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisvKgorICogVE9ETzoKKyAqIC0gY29tcGlsYXRpb24gZmxhZ3MgdG8gY2hlY2sgZm9yIHNwZWNpZmljIHN5bnRheGVzCisgKiAgIHVzaW5nIGZsYWdzIG9mIHhtbFBhdHRlcm5jb21waWxlKCkKKyAqIC0gbWFraW5nIGNsZWFyIGhvdyBwYXR0ZXJuIHN0YXJ0aW5nIHdpdGggLyBvciAuIG5lZWQgdG8gYmUgaGFuZGxlZCwKKyAqICAgY3VycmVudGx5IHB1c2goTlVMTCwgTlVMTCkgbWVhbnMgYSByZXNldCBvZiB0aGUgc3RyZWFtaW5nIGNvbnRleHQKKyAqICAgYW5kIGluZGljYXRpbmcgd2UgYXJlIG9uIC8gKHRoZSBkb2N1bWVudCBub2RlKSwgcHJvYmFibHkgbmVlZAorICogICBzb21ldGhpbmcgc2ltaWxhciBmb3IgLgorICogLSBnZXQgcmlkIG9mIHRoZSAiY29tcGlsZSIgc3RhcnRpbmcgd2l0aCBsb3dlcmNhc2UKKyAqIC0gRE9ORSAoMjAwNi0wNS0xNik6IGdldCByaWQgb2YgdGhlIFN0cmR1cC9TdHJuZHVwIGluIGNhc2Ugb2YgZGljdGlvbmFyeQorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvaGFzaC5oPgorI2luY2x1ZGUgPGxpYnhtbC9kaWN0Lmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXR0ZXJuLmg+CisKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisKKy8qICNkZWZpbmUgREVCVUdfU1RSRUFNSU5HICovCisKKyNkZWZpbmUgRVJST1IoYSwgYiwgYywgZCkKKyNkZWZpbmUgRVJST1I1KGEsIGIsIGMsIGQsIGUpCisKKyNkZWZpbmUgWE1MX1NUUkVBTV9TVEVQX0RFU0MJMQorI2RlZmluZSBYTUxfU1RSRUFNX1NURVBfRklOQUwJMgorI2RlZmluZSBYTUxfU1RSRUFNX1NURVBfUk9PVAk0CisjZGVmaW5lIFhNTF9TVFJFQU1fU1RFUF9BVFRSCTgKKyNkZWZpbmUgWE1MX1NUUkVBTV9TVEVQX05PREUJMTYKKyNkZWZpbmUgWE1MX1NUUkVBTV9TVEVQX0lOX1NFVAkzMgorCisvKgorKiBOT1RFOiBUaG9zZSBwcml2YXRlIGZsYWdzIChYTUxfU1RSRUFNX3h4eCkgYXJlIHVzZWQKKyogICBpbiBfeG1sU3RyZWFtQ3R4dC0+ZmxhZy4gVGhleSBleHRlbmQgdGhlIHB1YmxpYworKiAgIHhtbFBhdHRlcm5GbGFncywgc28gYmUgY2FyZWZ1bGwgbm90IHRvIGludGVyZmVyZSB3aXRoIHRoZQorKiAgIHJlc2VydmVkIHZhbHVlcyBmb3IgeG1sUGF0dGVybkZsYWdzLiAKKyovCisjZGVmaW5lIFhNTF9TVFJFQU1fRklOQUxfSVNfQU5ZX05PREUgMTw8MTQKKyNkZWZpbmUgWE1MX1NUUkVBTV9GUk9NX1JPT1QgMTw8MTUKKyNkZWZpbmUgWE1MX1NUUkVBTV9ERVNDIDE8PDE2CisKKy8qCisqIFhNTF9TVFJFQU1fQU5ZX05PREUgaXMgdXNlZCBmb3IgY29tcGFyaXNvbiBhZ2FpbnN0CisqIHhtbEVsZW1lbnRUeXBlIGVudW1zLCB0byBpbmRpY2F0ZSBhIG5vZGUgb2YgYW55IHR5cGUuCisqLworI2RlZmluZSBYTUxfU1RSRUFNX0FOWV9OT0RFIDEwMAorCisjZGVmaW5lIFhNTF9QQVRURVJOX05PVFBBVFRFUk4gIChYTUxfUEFUVEVSTl9YUEFUSCB8IFwKKwkJCQkgWE1MX1BBVFRFUk5fWFNTRUwgfCBcCisJCQkJIFhNTF9QQVRURVJOX1hTRklFTEQpCisKKyNkZWZpbmUgWE1MX1NUUkVBTV9YU19JREMoYykgKChjKS0+ZmxhZ3MgJiBcCisgICAgKFhNTF9QQVRURVJOX1hTU0VMIHwgWE1MX1BBVFRFUk5fWFNGSUVMRCkpCisKKyNkZWZpbmUgWE1MX1NUUkVBTV9YU19JRENfU0VMKGMpICgoYyktPmZsYWdzICYgWE1MX1BBVFRFUk5fWFNTRUwpCisKKyNkZWZpbmUgWE1MX1NUUkVBTV9YU19JRENfRklFTEQoYykgKChjKS0+ZmxhZ3MgJiBYTUxfUEFUVEVSTl9YU0ZJRUxEKQorCisjZGVmaW5lIFhNTF9QQVRfQ09QWV9OU05BTUUoYywgciwgbnNuYW1lKSBcCisgICAgaWYgKChjKS0+Y29tcC0+ZGljdCkgXAorCXIgPSAoeG1sQ2hhciAqKSB4bWxEaWN0TG9va3VwKChjKS0+Y29tcC0+ZGljdCwgQkFEX0NBU1QgbnNuYW1lLCAtMSk7IFwKKyAgICBlbHNlIHIgPSB4bWxTdHJkdXAoQkFEX0NBU1QgbnNuYW1lKTsKKworI2RlZmluZSBYTUxfUEFUX0ZSRUVfU1RSSU5HKGMsIHIpIGlmICgoYyktPmNvbXAtPmRpY3QgPT0gTlVMTCkgeG1sRnJlZShyKTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFN0cmVhbVN0ZXAgeG1sU3RyZWFtU3RlcDsKK3R5cGVkZWYgeG1sU3RyZWFtU3RlcCAqeG1sU3RyZWFtU3RlcFB0cjsKK3N0cnVjdCBfeG1sU3RyZWFtU3RlcCB7CisgICAgaW50IGZsYWdzOwkJCS8qIHByb3BlcnRpZXMgb2YgdGhhdCBzdGVwICovCisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsJLyogZmlyc3Qgc3RyaW5nIHZhbHVlIGlmIE5VTEwgYWNjZXB0IGFsbCAqLworICAgIGNvbnN0IHhtbENoYXIgKm5zOwkJLyogc2Vjb25kIHN0cmluZyB2YWx1ZSAqLworICAgIGludCBub2RlVHlwZTsJCS8qIHR5cGUgb2Ygbm9kZSAqLworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFN0cmVhbUNvbXAgeG1sU3RyZWFtQ29tcDsKK3R5cGVkZWYgeG1sU3RyZWFtQ29tcCAqeG1sU3RyZWFtQ29tcFB0cjsKK3N0cnVjdCBfeG1sU3RyZWFtQ29tcCB7CisgICAgeG1sRGljdCAqZGljdDsJCS8qIHRoZSBkaWN0aW9uYXJ5IGlmIGFueSAqLworICAgIGludCBuYlN0ZXA7CQkJLyogbnVtYmVyIG9mIHN0ZXBzIGluIHRoZSBhdXRvbWF0YSAqLworICAgIGludCBtYXhTdGVwOwkJLyogYWxsb2NhdGVkIG51bWJlciBvZiBzdGVwcyAqLworICAgIHhtbFN0cmVhbVN0ZXBQdHIgc3RlcHM7CS8qIHRoZSBhcnJheSBvZiBzdGVwcyAqLworICAgIGludCBmbGFnczsKK307CisKK3N0cnVjdCBfeG1sU3RyZWFtQ3R4dCB7CisgICAgc3RydWN0IF94bWxTdHJlYW1DdHh0ICpuZXh0Oy8qIGxpbmsgdG8gbmV4dCBzdWIgcGF0dGVybiBpZiB8ICovCisgICAgeG1sU3RyZWFtQ29tcFB0ciBjb21wOwkvKiB0aGUgY29tcGlsZWQgc3RyZWFtICovCisgICAgaW50IG5iU3RhdGU7CQkvKiBudW1iZXIgb2Ygc3RhdGVzIGluIHRoZSBhdXRvbWF0YSAqLworICAgIGludCBtYXhTdGF0ZTsJCS8qIGFsbG9jYXRlZCBudW1iZXIgb2Ygc3RhdGVzICovCisgICAgaW50IGxldmVsOwkJCS8qIGhvdyBkZWVwIGFyZSB3ZSA/ICovCisgICAgaW50ICpzdGF0ZXM7CQkvKiB0aGUgYXJyYXkgb2Ygc3RlcCBpbmRleGVzICovCisgICAgaW50IGZsYWdzOwkJCS8qIHZhbGlkYXRpb24gb3B0aW9ucyAqLworICAgIGludCBibG9ja0xldmVsOworfTsKKworc3RhdGljIHZvaWQgeG1sRnJlZVN0cmVhbUNvbXAoeG1sU3RyZWFtQ29tcFB0ciBjb21wKTsKKworLyoKKyAqIFR5cGVzIGFyZSBwcml2YXRlOgorICovCisKK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX09QX0VORD0wLAorICAgIFhNTF9PUF9ST09ULAorICAgIFhNTF9PUF9FTEVNLAorICAgIFhNTF9PUF9DSElMRCwKKyAgICBYTUxfT1BfQVRUUiwKKyAgICBYTUxfT1BfUEFSRU5ULAorICAgIFhNTF9PUF9BTkNFU1RPUiwKKyAgICBYTUxfT1BfTlMsCisgICAgWE1MX09QX0FMTAorfSB4bWxQYXRPcDsKKworCit0eXBlZGVmIHN0cnVjdCBfeG1sU3RlcFN0YXRlIHhtbFN0ZXBTdGF0ZTsKK3R5cGVkZWYgeG1sU3RlcFN0YXRlICp4bWxTdGVwU3RhdGVQdHI7CitzdHJ1Y3QgX3htbFN0ZXBTdGF0ZSB7CisgICAgaW50IHN0ZXA7CisgICAgeG1sTm9kZVB0ciBub2RlOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFN0ZXBTdGF0ZXMgeG1sU3RlcFN0YXRlczsKK3R5cGVkZWYgeG1sU3RlcFN0YXRlcyAqeG1sU3RlcFN0YXRlc1B0cjsKK3N0cnVjdCBfeG1sU3RlcFN0YXRlcyB7CisgICAgaW50IG5ic3RhdGVzOworICAgIGludCBtYXhzdGF0ZXM7CisgICAgeG1sU3RlcFN0YXRlUHRyIHN0YXRlczsKK307CisKK3R5cGVkZWYgc3RydWN0IF94bWxTdGVwT3AgeG1sU3RlcE9wOwordHlwZWRlZiB4bWxTdGVwT3AgKnhtbFN0ZXBPcFB0cjsKK3N0cnVjdCBfeG1sU3RlcE9wIHsKKyAgICB4bWxQYXRPcCBvcDsKKyAgICBjb25zdCB4bWxDaGFyICp2YWx1ZTsKKyAgICBjb25zdCB4bWxDaGFyICp2YWx1ZTI7IC8qIFRoZSBuYW1lc3BhY2UgbmFtZSAqLworfTsKKworI2RlZmluZSBQQVRfRlJPTV9ST09UCSgxPDw4KQorI2RlZmluZSBQQVRfRlJPTV9DVVIJKDE8PDkpCisKK3N0cnVjdCBfeG1sUGF0dGVybiB7CisgICAgdm9pZCAqZGF0YTsgICAgCQkvKiB0aGUgYXNzb2NpYXRlZCB0ZW1wbGF0ZSAqLworICAgIHhtbERpY3RQdHIgZGljdDsJCS8qIHRoZSBvcHRpb25hbCBkaWN0aW9uYXJ5ICovCisgICAgc3RydWN0IF94bWxQYXR0ZXJuICpuZXh0OwkvKiBuZXh0IHBhdHRlcm4gaWYgfCBpcyB1c2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqcGF0dGVybjsJLyogdGhlIHBhdHRlcm4gKi8KKyAgICBpbnQgZmxhZ3M7CQkJLyogZmxhZ3MgKi8KKyAgICBpbnQgbmJTdGVwOworICAgIGludCBtYXhTdGVwOworICAgIHhtbFN0ZXBPcFB0ciBzdGVwczsgICAgICAgIC8qIG9wcyBmb3IgY29tcHV0YXRpb24gKi8KKyAgICB4bWxTdHJlYW1Db21wUHRyIHN0cmVhbTsJLyogdGhlIHN0cmVhbWluZyBkYXRhIGlmIGFueSAqLworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFBhdFBhcnNlckNvbnRleHQgeG1sUGF0UGFyc2VyQ29udGV4dDsKK3R5cGVkZWYgeG1sUGF0UGFyc2VyQ29udGV4dCAqeG1sUGF0UGFyc2VyQ29udGV4dFB0cjsKK3N0cnVjdCBfeG1sUGF0UGFyc2VyQ29udGV4dCB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyOwkJCS8qIHRoZSBjdXJyZW50IGNoYXIgYmVpbmcgcGFyc2VkICovCisgICAgY29uc3QgeG1sQ2hhciAqYmFzZTsJCS8qIHRoZSBmdWxsIGV4cHJlc3Npb24gKi8KKyAgICBpbnQJICAgICAgICAgICBlcnJvcjsJCS8qIGVycm9yIGNvZGUgKi8KKyAgICB4bWxEaWN0UHRyICAgICBkaWN0OwkJLyogdGhlIGRpY3Rpb25hcnkgaWYgYW55ICovCisgICAgeG1sUGF0dGVyblB0ciAgY29tcDsJCS8qIHRoZSByZXN1bHQgKi8KKyAgICB4bWxOb2RlUHRyICAgICBlbGVtOwkJLyogdGhlIGN1cnJlbnQgbm9kZSBpZiBhbnkgKi8gICAgCisgICAgY29uc3QgeG1sQ2hhciAqKm5hbWVzcGFjZXM7CQkvKiB0aGUgbmFtZXNwYWNlcyBkZWZpbml0aW9ucyAqLworICAgIGludCAgIG5iX25hbWVzcGFjZXM7CQkvKiB0aGUgbnVtYmVyIG9mIG5hbWVzcGFjZXMgKi8KK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVR5cGUgZnVuY3Rpb25zIAkJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxOZXdQYXR0ZXJuOgorICoKKyAqIENyZWF0ZSBhIG5ldyBYU0xUIFBhdHRlcm4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBhbGxvY2F0ZWQgeG1sUGF0dGVyblB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFBhdHRlcm5QdHIKK3htbE5ld1BhdHRlcm4odm9pZCkgeworICAgIHhtbFBhdHRlcm5QdHIgY3VyOworCisgICAgY3VyID0gKHhtbFBhdHRlcm5QdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUGF0dGVybikpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCUVSUk9SKE5VTEwsIE5VTEwsIE5VTEwsCisJCSJ4bWxOZXdQYXR0ZXJuIDogbWFsbG9jIGZhaWxlZFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sUGF0dGVybikpOworICAgIGN1ci0+bWF4U3RlcCA9IDEwOworICAgIGN1ci0+c3RlcHMgPSAoeG1sU3RlcE9wUHRyKSB4bWxNYWxsb2MoY3VyLT5tYXhTdGVwICogc2l6ZW9mKHhtbFN0ZXBPcCkpOworICAgIGlmIChjdXItPnN0ZXBzID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShjdXIpOworCUVSUk9SKE5VTEwsIE5VTEwsIE5VTEwsCisJCSJ4bWxOZXdQYXR0ZXJuIDogbWFsbG9jIGZhaWxlZFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxGcmVlUGF0dGVybjoKKyAqIEBjb21wOiAgYW4gWFNMVCBjb21wCisgKgorICogRnJlZSB1cCB0aGUgbWVtb3J5IGFsbG9jYXRlZCBieSBAY29tcAorICovCit2b2lkCit4bWxGcmVlUGF0dGVybih4bWxQYXR0ZXJuUHRyIGNvbXApIHsKKyAgICB4bWxTdGVwT3BQdHIgb3A7CisgICAgaW50IGk7CisKKyAgICBpZiAoY29tcCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBpZiAoY29tcC0+bmV4dCAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlUGF0dGVybihjb21wLT5uZXh0KTsKKyAgICBpZiAoY29tcC0+c3RyZWFtICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVTdHJlYW1Db21wKGNvbXAtPnN0cmVhbSk7CisgICAgaWYgKGNvbXAtPnBhdHRlcm4gIT0gTlVMTCkKKwl4bWxGcmVlKCh4bWxDaGFyICopY29tcC0+cGF0dGVybik7CisgICAgaWYgKGNvbXAtPnN0ZXBzICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGNvbXAtPmRpY3QgPT0gTlVMTCkgeworCSAgICBmb3IgKGkgPSAwO2kgPCBjb21wLT5uYlN0ZXA7aSsrKSB7CisJCW9wID0gJmNvbXAtPnN0ZXBzW2ldOworCQlpZiAob3AtPnZhbHVlICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKCh4bWxDaGFyICopIG9wLT52YWx1ZSk7CisJCWlmIChvcC0+dmFsdWUyICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKCh4bWxDaGFyICopIG9wLT52YWx1ZTIpOworCSAgICB9CisJfQorCXhtbEZyZWUoY29tcC0+c3RlcHMpOworICAgIH0KKyAgICBpZiAoY29tcC0+ZGljdCAhPSBOVUxMKQorICAgICAgICB4bWxEaWN0RnJlZShjb21wLT5kaWN0KTsKKworICAgIG1lbXNldChjb21wLCAtMSwgc2l6ZW9mKHhtbFBhdHRlcm4pKTsKKyAgICB4bWxGcmVlKGNvbXApOworfQorCisvKioKKyAqIHhtbEZyZWVQYXR0ZXJuTGlzdDoKKyAqIEBjb21wOiAgYW4gWFNMVCBjb21wIGxpc3QKKyAqCisgKiBGcmVlIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IGFsbCB0aGUgZWxlbWVudHMgb2YgQGNvbXAKKyAqLwordm9pZAoreG1sRnJlZVBhdHRlcm5MaXN0KHhtbFBhdHRlcm5QdHIgY29tcCkgeworICAgIHhtbFBhdHRlcm5QdHIgY3VyOworCisgICAgd2hpbGUgKGNvbXAgIT0gTlVMTCkgeworCWN1ciA9IGNvbXA7CisJY29tcCA9IGNvbXAtPm5leHQ7CisJY3VyLT5uZXh0ID0gTlVMTDsKKwl4bWxGcmVlUGF0dGVybihjdXIpOworICAgIH0KK30KKworLyoqCisgKiB4bWxOZXdQYXRQYXJzZXJDb250ZXh0OgorICogQHBhdHRlcm46ICB0aGUgcGF0dGVybiBjb250ZXh0CisgKiBAZGljdDogIHRoZSBpbmhlcml0ZWQgZGljdGlvbmFyeSBvciBOVUxMCisgKiBAbmFtZXNwYWNlczogdGhlIHByZWZpeCBkZWZpbml0aW9ucywgYXJyYXkgb2YgW1VSSSwgcHJlZml4XSB0ZXJtaW5hdGVkCisgKiAgICAgICAgICAgICAgd2l0aCBbTlVMTCwgTlVMTF0gb3IgTlVMTCBpZiBubyBuYW1lc3BhY2UgaXMgdXNlZAorICoKKyAqIENyZWF0ZSBhIG5ldyBYTUwgcGF0dGVybiBwYXJzZXIgY29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGFsbG9jYXRlZCB4bWxQYXRQYXJzZXJDb250ZXh0UHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sUGF0UGFyc2VyQ29udGV4dFB0cgoreG1sTmV3UGF0UGFyc2VyQ29udGV4dChjb25zdCB4bWxDaGFyICpwYXR0ZXJuLCB4bWxEaWN0UHRyIGRpY3QsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKipuYW1lc3BhY2VzKSB7CisgICAgeG1sUGF0UGFyc2VyQ29udGV4dFB0ciBjdXI7CisKKyAgICBpZiAocGF0dGVybiA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICBjdXIgPSAoeG1sUGF0UGFyc2VyQ29udGV4dFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxQYXRQYXJzZXJDb250ZXh0KSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJRVJST1IoTlVMTCwgTlVMTCwgTlVMTCwKKwkJInhtbE5ld1BhdFBhcnNlckNvbnRleHQgOiBtYWxsb2MgZmFpbGVkXG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChjdXIsIDAsIHNpemVvZih4bWxQYXRQYXJzZXJDb250ZXh0KSk7CisgICAgY3VyLT5kaWN0ID0gZGljdDsKKyAgICBjdXItPmN1ciA9IHBhdHRlcm47CisgICAgY3VyLT5iYXNlID0gcGF0dGVybjsKKyAgICBpZiAobmFtZXNwYWNlcyAhPSBOVUxMKSB7CisgICAgICAgIGludCBpOworCWZvciAoaSA9IDA7bmFtZXNwYWNlc1syICogaV0gIT0gTlVMTDtpKyspOworICAgICAgICBjdXItPm5iX25hbWVzcGFjZXMgPSBpOworICAgIH0gZWxzZSB7CisgICAgICAgIGN1ci0+bmJfbmFtZXNwYWNlcyA9IDA7CisgICAgfQorICAgIGN1ci0+bmFtZXNwYWNlcyA9IG5hbWVzcGFjZXM7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sRnJlZVBhdFBhcnNlckNvbnRleHQ6CisgKiBAY3R4dDogIGFuIFhTTFQgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBGcmVlIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IEBjdHh0CisgKi8KK3N0YXRpYyB2b2lkCit4bWxGcmVlUGF0UGFyc2VyQ29udGV4dCh4bWxQYXRQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybjsgICAgCisgICAgbWVtc2V0KGN0eHQsIC0xLCBzaXplb2YoeG1sUGF0UGFyc2VyQ29udGV4dCkpOworICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKgorICogeG1sUGF0dGVybkFkZDoKKyAqIEBjb21wOiAgdGhlIGNvbXBpbGVkIG1hdGNoIGV4cHJlc3Npb24KKyAqIEBvcDogIGFuIG9wCisgKiBAdmFsdWU6ICB0aGUgZmlyc3QgdmFsdWUKKyAqIEB2YWx1ZTI6ICB0aGUgc2Vjb25kIHZhbHVlCisgKgorICogQWRkIGEgc3RlcCB0byBhbiBYU0xUIENvbXBpbGVkIE1hdGNoCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxQYXR0ZXJuQWRkKHhtbFBhdFBhcnNlckNvbnRleHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgIHhtbFBhdHRlcm5QdHIgY29tcCwKKyAgICAgICAgICAgICAgICB4bWxQYXRPcCBvcCwgeG1sQ2hhciAqIHZhbHVlLCB4bWxDaGFyICogdmFsdWUyKQoreworICAgIGlmIChjb21wLT5uYlN0ZXAgPj0gY29tcC0+bWF4U3RlcCkgeworICAgICAgICB4bWxTdGVwT3BQdHIgdGVtcDsKKwl0ZW1wID0gKHhtbFN0ZXBPcFB0cikgeG1sUmVhbGxvYyhjb21wLT5zdGVwcywgY29tcC0+bWF4U3RlcCAqIDIgKgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxTdGVwT3ApKTsKKyAgICAgICAgaWYgKHRlbXAgPT0gTlVMTCkgeworCSAgICBFUlJPUihjdHh0LCBOVUxMLCBOVUxMLAorCQkJICAgICAieG1sUGF0dGVybkFkZDogcmVhbGxvYyBmYWlsZWRcbiIpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisJY29tcC0+c3RlcHMgPSB0ZW1wOworCWNvbXAtPm1heFN0ZXAgKj0gMjsKKyAgICB9CisgICAgY29tcC0+c3RlcHNbY29tcC0+bmJTdGVwXS5vcCA9IG9wOworICAgIGNvbXAtPnN0ZXBzW2NvbXAtPm5iU3RlcF0udmFsdWUgPSB2YWx1ZTsKKyAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLnZhbHVlMiA9IHZhbHVlMjsKKyAgICBjb21wLT5uYlN0ZXArKzsKKyAgICByZXR1cm4gKDApOworfQorCisjaWYgMAorLyoqCisgKiB4c2x0U3dhcFRvcFBhdHRlcm46CisgKiBAY29tcDogIHRoZSBjb21waWxlZCBtYXRjaCBleHByZXNzaW9uCisgKgorICogcmV2ZXJzZSB0aGUgdHdvIHRvcCBzdGVwcy4KKyAqLworc3RhdGljIHZvaWQKK3hzbHRTd2FwVG9wUGF0dGVybih4bWxQYXR0ZXJuUHRyIGNvbXApIHsKKyAgICBpbnQgaTsKKyAgICBpbnQgaiA9IGNvbXAtPm5iU3RlcCAtIDE7CisKKyAgICBpZiAoaiA+IDApIHsKKwlyZWdpc3RlciBjb25zdCB4bWxDaGFyICp0bXA7CisJcmVnaXN0ZXIgeG1sUGF0T3Agb3A7CisJaSA9IGogLSAxOworCXRtcCA9IGNvbXAtPnN0ZXBzW2ldLnZhbHVlOworCWNvbXAtPnN0ZXBzW2ldLnZhbHVlID0gY29tcC0+c3RlcHNbal0udmFsdWU7CisJY29tcC0+c3RlcHNbal0udmFsdWUgPSB0bXA7CisJdG1wID0gY29tcC0+c3RlcHNbaV0udmFsdWUyOworCWNvbXAtPnN0ZXBzW2ldLnZhbHVlMiA9IGNvbXAtPnN0ZXBzW2pdLnZhbHVlMjsKKwljb21wLT5zdGVwc1tqXS52YWx1ZTIgPSB0bXA7CisJb3AgPSBjb21wLT5zdGVwc1tpXS5vcDsKKwljb21wLT5zdGVwc1tpXS5vcCA9IGNvbXAtPnN0ZXBzW2pdLm9wOworCWNvbXAtPnN0ZXBzW2pdLm9wID0gb3A7CisgICAgfQorfQorI2VuZGlmCisKKy8qKgorICogeG1sUmV2ZXJzZVBhdHRlcm46CisgKiBAY29tcDogIHRoZSBjb21waWxlZCBtYXRjaCBleHByZXNzaW9uCisgKgorICogcmV2ZXJzZSBhbGwgdGhlIHN0YWNrIG9mIGV4cHJlc3Npb25zCisgKgorICogcmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sUmV2ZXJzZVBhdHRlcm4oeG1sUGF0dGVyblB0ciBjb21wKSB7CisgICAgaW50IGksIGo7CisKKyAgICAvKgorICAgICAqIHJlbW92ZSB0aGUgbGVhZGluZyAvLyBmb3IgLy9hIG9yIC4vL2EKKyAgICAgKi8KKyAgICBpZiAoKGNvbXAtPm5iU3RlcCA+IDApICYmIChjb21wLT5zdGVwc1swXS5vcCA9PSBYTUxfT1BfQU5DRVNUT1IpKSB7CisgICAgICAgIGZvciAoaSA9IDAsIGogPSAxO2ogPCBjb21wLT5uYlN0ZXA7aSsrLGorKykgeworCSAgICBjb21wLT5zdGVwc1tpXS52YWx1ZSA9IGNvbXAtPnN0ZXBzW2pdLnZhbHVlOworCSAgICBjb21wLT5zdGVwc1tpXS52YWx1ZTIgPSBjb21wLT5zdGVwc1tqXS52YWx1ZTI7CisJICAgIGNvbXAtPnN0ZXBzW2ldLm9wID0gY29tcC0+c3RlcHNbal0ub3A7CisJfQorCWNvbXAtPm5iU3RlcC0tOworICAgIH0KKyAgICBpZiAoY29tcC0+bmJTdGVwID49IGNvbXAtPm1heFN0ZXApIHsKKyAgICAgICAgeG1sU3RlcE9wUHRyIHRlbXA7CisJdGVtcCA9ICh4bWxTdGVwT3BQdHIpIHhtbFJlYWxsb2MoY29tcC0+c3RlcHMsIGNvbXAtPm1heFN0ZXAgKiAyICoKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeG1sU3RlcE9wKSk7CisgICAgICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKwkgICAgRVJST1IoY3R4dCwgTlVMTCwgTlVMTCwKKwkJCSAgICAgInhtbFJldmVyc2VQYXR0ZXJuOiByZWFsbG9jIGZhaWxlZFxuIik7CisJICAgIHJldHVybiAoLTEpOworCX0KKwljb21wLT5zdGVwcyA9IHRlbXA7CisJY29tcC0+bWF4U3RlcCAqPSAyOworICAgIH0KKyAgICBpID0gMDsKKyAgICBqID0gY29tcC0+bmJTdGVwIC0gMTsKKyAgICB3aGlsZSAoaiA+IGkpIHsKKwlyZWdpc3RlciBjb25zdCB4bWxDaGFyICp0bXA7CisJcmVnaXN0ZXIgeG1sUGF0T3Agb3A7CisJdG1wID0gY29tcC0+c3RlcHNbaV0udmFsdWU7CisJY29tcC0+c3RlcHNbaV0udmFsdWUgPSBjb21wLT5zdGVwc1tqXS52YWx1ZTsKKwljb21wLT5zdGVwc1tqXS52YWx1ZSA9IHRtcDsKKwl0bXAgPSBjb21wLT5zdGVwc1tpXS52YWx1ZTI7CisJY29tcC0+c3RlcHNbaV0udmFsdWUyID0gY29tcC0+c3RlcHNbal0udmFsdWUyOworCWNvbXAtPnN0ZXBzW2pdLnZhbHVlMiA9IHRtcDsKKwlvcCA9IGNvbXAtPnN0ZXBzW2ldLm9wOworCWNvbXAtPnN0ZXBzW2ldLm9wID0gY29tcC0+c3RlcHNbal0ub3A7CisJY29tcC0+c3RlcHNbal0ub3AgPSBvcDsKKwlqLS07CisJaSsrOworICAgIH0KKyAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLnZhbHVlID0gTlVMTDsKKyAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLnZhbHVlMiA9IE5VTEw7CisgICAgY29tcC0+c3RlcHNbY29tcC0+bmJTdGVwKytdLm9wID0gWE1MX09QX0VORDsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJVGhlIGludGVycHJldGVyIGZvciB0aGUgcHJlY29tcGlsZWQgcGF0dGVybnMJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK3htbFBhdFB1c2hTdGF0ZSh4bWxTdGVwU3RhdGVzICpzdGF0ZXMsIGludCBzdGVwLCB4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICBpZiAoKHN0YXRlcy0+c3RhdGVzID09IE5VTEwpIHx8IChzdGF0ZXMtPm1heHN0YXRlcyA8PSAwKSkgeworICAgICAgICBzdGF0ZXMtPm1heHN0YXRlcyA9IDQ7CisJc3RhdGVzLT5uYnN0YXRlcyA9IDA7CisJc3RhdGVzLT5zdGF0ZXMgPSB4bWxNYWxsb2MoNCAqIHNpemVvZih4bWxTdGVwU3RhdGUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAoc3RhdGVzLT5tYXhzdGF0ZXMgPD0gc3RhdGVzLT5uYnN0YXRlcykgeworICAgICAgICB4bWxTdGVwU3RhdGUgKnRtcDsKKworCXRtcCA9ICh4bWxTdGVwU3RhdGVQdHIpIHhtbFJlYWxsb2Moc3RhdGVzLT5zdGF0ZXMsCisJCQkgICAgICAgMiAqIHN0YXRlcy0+bWF4c3RhdGVzICogc2l6ZW9mKHhtbFN0ZXBTdGF0ZSkpOworCWlmICh0bXAgPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKwlzdGF0ZXMtPnN0YXRlcyA9IHRtcDsKKwlzdGF0ZXMtPm1heHN0YXRlcyAqPSAyOworICAgIH0KKyAgICBzdGF0ZXMtPnN0YXRlc1tzdGF0ZXMtPm5ic3RhdGVzXS5zdGVwID0gc3RlcDsKKyAgICBzdGF0ZXMtPnN0YXRlc1tzdGF0ZXMtPm5ic3RhdGVzKytdLm5vZGUgPSBub2RlOworI2lmIDAKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlB1c2g6ICVkLCAlc1xuIiwgc3RlcCwgbm9kZS0+bmFtZSk7CisjZW5kaWYKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUGF0TWF0Y2g6CisgKiBAY29tcDogdGhlIHByZWNvbXBpbGVkIHBhdHRlcm4KKyAqIEBub2RlOiBhIG5vZGUKKyAqCisgKiBUZXN0IHdoZXRoZXIgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgcGF0dGVybgorICoKKyAqIFJldHVybnMgMSBpZiBpdCBtYXRjaGVzLCAwIGlmIGl0IGRvZXNuJ3QgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCitzdGF0aWMgaW50Cit4bWxQYXRNYXRjaCh4bWxQYXR0ZXJuUHRyIGNvbXAsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGludCBpOworICAgIHhtbFN0ZXBPcFB0ciBzdGVwOworICAgIHhtbFN0ZXBTdGF0ZXMgc3RhdGVzID0gezAsIDAsIE5VTEx9OyAvKiAvLyBtYXkgcmVxdWlyZSBiYWNrdHJhY2sgKi8KKworICAgIGlmICgoY29tcCA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkgcmV0dXJuKC0xKTsKKyAgICBpID0gMDsKK3Jlc3RhcnQ6CisgICAgZm9yICg7aSA8IGNvbXAtPm5iU3RlcDtpKyspIHsKKwlzdGVwID0gJmNvbXAtPnN0ZXBzW2ldOworCXN3aXRjaCAoc3RlcC0+b3ApIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX09QX0VORDoKKwkJZ290byBmb3VuZDsKKyAgICAgICAgICAgIGNhc2UgWE1MX09QX1JPT1Q6CisJCWlmIChub2RlLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCW5vZGUgPSBub2RlLT5wYXJlbnQ7CisJCWlmICgobm9kZS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJCSAgICAobm9kZS0+dHlwZSA9PSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFKSB8fAorI2VuZGlmCisJCSAgICAobm9kZS0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkKKwkJICAgIGNvbnRpbnVlOworCQlnb3RvIHJvbGxiYWNrOworICAgICAgICAgICAgY2FzZSBYTUxfT1BfRUxFTToKKwkJaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCWlmIChzdGVwLT52YWx1ZSA9PSBOVUxMKQorCQkgICAgY29udGludWU7CisJCWlmIChzdGVwLT52YWx1ZVswXSAhPSBub2RlLT5uYW1lWzBdKQorCQkgICAgZ290byByb2xsYmFjazsKKwkJaWYgKCF4bWxTdHJFcXVhbChzdGVwLT52YWx1ZSwgbm9kZS0+bmFtZSkpCisJCSAgICBnb3RvIHJvbGxiYWNrOworCisJCS8qIE5hbWVzcGFjZSB0ZXN0ICovCisJCWlmIChub2RlLT5ucyA9PSBOVUxMKSB7CisJCSAgICBpZiAoc3RlcC0+dmFsdWUyICE9IE5VTEwpCisJCQlnb3RvIHJvbGxiYWNrOworCQl9IGVsc2UgaWYgKG5vZGUtPm5zLT5ocmVmICE9IE5VTEwpIHsKKwkJICAgIGlmIChzdGVwLT52YWx1ZTIgPT0gTlVMTCkKKwkJCWdvdG8gcm9sbGJhY2s7CisJCSAgICBpZiAoIXhtbFN0ckVxdWFsKHN0ZXAtPnZhbHVlMiwgbm9kZS0+bnMtPmhyZWYpKQorCQkJZ290byByb2xsYmFjazsKKwkJfQorCQljb250aW51ZTsKKyAgICAgICAgICAgIGNhc2UgWE1MX09QX0NISUxEOiB7CisJCXhtbE5vZGVQdHIgbHN0OworCisJCWlmICgobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkgICAgKG5vZGUtPnR5cGUgIT0gWE1MX0RPQ1VNRU5UX05PREUpICYmCisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCQkgICAgKG5vZGUtPnR5cGUgIT0gWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERSkgJiYKKyNlbmRpZgorCQkgICAgKG5vZGUtPnR5cGUgIT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpCisJCSAgICBnb3RvIHJvbGxiYWNrOworCisJCWxzdCA9IG5vZGUtPmNoaWxkcmVuOworCisJCWlmIChzdGVwLT52YWx1ZSAhPSBOVUxMKSB7CisJCSAgICB3aGlsZSAobHN0ICE9IE5VTEwpIHsKKwkJCWlmICgobHN0LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJCQkgICAgKHN0ZXAtPnZhbHVlWzBdID09IGxzdC0+bmFtZVswXSkgJiYKKwkJCSAgICAoeG1sU3RyRXF1YWwoc3RlcC0+dmFsdWUsIGxzdC0+bmFtZSkpKQorCQkJICAgIGJyZWFrOworCQkJbHN0ID0gbHN0LT5uZXh0OworCQkgICAgfQorCQkgICAgaWYgKGxzdCAhPSBOVUxMKQorCQkJY29udGludWU7CisJCX0KKwkJZ290byByb2xsYmFjazsKKwkgICAgfQorICAgICAgICAgICAgY2FzZSBYTUxfT1BfQVRUUjoKKwkJaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0FUVFJJQlVURV9OT0RFKQorCQkgICAgZ290byByb2xsYmFjazsKKwkJaWYgKHN0ZXAtPnZhbHVlICE9IE5VTEwpIHsKKwkJICAgIGlmIChzdGVwLT52YWx1ZVswXSAhPSBub2RlLT5uYW1lWzBdKQorCQkJZ290byByb2xsYmFjazsKKwkJICAgIGlmICgheG1sU3RyRXF1YWwoc3RlcC0+dmFsdWUsIG5vZGUtPm5hbWUpKQorCQkJZ290byByb2xsYmFjazsKKwkJfQorCQkvKiBOYW1lc3BhY2UgdGVzdCAqLworCQlpZiAobm9kZS0+bnMgPT0gTlVMTCkgeworCQkgICAgaWYgKHN0ZXAtPnZhbHVlMiAhPSBOVUxMKQorCQkJZ290byByb2xsYmFjazsKKwkJfSBlbHNlIGlmIChzdGVwLT52YWx1ZTIgIT0gTlVMTCkgeworCQkgICAgaWYgKCF4bWxTdHJFcXVhbChzdGVwLT52YWx1ZTIsIG5vZGUtPm5zLT5ocmVmKSkKKwkJCWdvdG8gcm9sbGJhY2s7CisJCX0KKwkJY29udGludWU7CisgICAgICAgICAgICBjYXNlIFhNTF9PUF9QQVJFTlQ6CisJCWlmICgobm9kZS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKwkJICAgIChub2RlLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpIHx8CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCQkgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERSkgfHwKKyNlbmRpZgorCQkgICAgKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCW5vZGUgPSBub2RlLT5wYXJlbnQ7CisJCWlmIChub2RlID09IE5VTEwpCisJCSAgICBnb3RvIHJvbGxiYWNrOworCQlpZiAoc3RlcC0+dmFsdWUgPT0gTlVMTCkKKwkJICAgIGNvbnRpbnVlOworCQlpZiAoc3RlcC0+dmFsdWVbMF0gIT0gbm9kZS0+bmFtZVswXSkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCWlmICgheG1sU3RyRXF1YWwoc3RlcC0+dmFsdWUsIG5vZGUtPm5hbWUpKQorCQkgICAgZ290byByb2xsYmFjazsKKwkJLyogTmFtZXNwYWNlIHRlc3QgKi8KKwkJaWYgKG5vZGUtPm5zID09IE5VTEwpIHsKKwkJICAgIGlmIChzdGVwLT52YWx1ZTIgIT0gTlVMTCkKKwkJCWdvdG8gcm9sbGJhY2s7CisJCX0gZWxzZSBpZiAobm9kZS0+bnMtPmhyZWYgIT0gTlVMTCkgeworCQkgICAgaWYgKHN0ZXAtPnZhbHVlMiA9PSBOVUxMKQorCQkJZ290byByb2xsYmFjazsKKwkJICAgIGlmICgheG1sU3RyRXF1YWwoc3RlcC0+dmFsdWUyLCBub2RlLT5ucy0+aHJlZikpCisJCQlnb3RvIHJvbGxiYWNrOworCQl9CisJCWNvbnRpbnVlOworICAgICAgICAgICAgY2FzZSBYTUxfT1BfQU5DRVNUT1I6CisJCS8qIFRPRE86IGltcGxlbWVudCBjb2FsZXNjaW5nIG9mIEFOQ0VTVE9SL05PREUgb3BzICovCisJCWlmIChzdGVwLT52YWx1ZSA9PSBOVUxMKSB7CisJCSAgICBpKys7CisJCSAgICBzdGVwID0gJmNvbXAtPnN0ZXBzW2ldOworCQkgICAgaWYgKHN0ZXAtPm9wID09IFhNTF9PUF9ST09UKQorCQkJZ290byBmb3VuZDsKKwkJICAgIGlmIChzdGVwLT5vcCAhPSBYTUxfT1BfRUxFTSkKKwkJCWdvdG8gcm9sbGJhY2s7CisJCSAgICBpZiAoc3RlcC0+dmFsdWUgPT0gTlVMTCkKKwkJCXJldHVybigtMSk7CisJCX0KKwkJaWYgKG5vZGUgPT0gTlVMTCkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCWlmICgobm9kZS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKwkJICAgIChub2RlLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpIHx8CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCQkgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERSkgfHwKKyNlbmRpZgorCQkgICAgKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCW5vZGUgPSBub2RlLT5wYXJlbnQ7CisJCXdoaWxlIChub2RlICE9IE5VTEwpIHsKKwkJICAgIGlmICgobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkJKHN0ZXAtPnZhbHVlWzBdID09IG5vZGUtPm5hbWVbMF0pICYmCisJCQkoeG1sU3RyRXF1YWwoc3RlcC0+dmFsdWUsIG5vZGUtPm5hbWUpKSkgeworCQkJLyogTmFtZXNwYWNlIHRlc3QgKi8KKwkJCWlmIChub2RlLT5ucyA9PSBOVUxMKSB7CisJCQkgICAgaWYgKHN0ZXAtPnZhbHVlMiA9PSBOVUxMKQorCQkJCWJyZWFrOworCQkJfSBlbHNlIGlmIChub2RlLT5ucy0+aHJlZiAhPSBOVUxMKSB7CisJCQkgICAgaWYgKChzdGVwLT52YWx1ZTIgIT0gTlVMTCkgJiYKKwkJCSAgICAgICAgKHhtbFN0ckVxdWFsKHN0ZXAtPnZhbHVlMiwgbm9kZS0+bnMtPmhyZWYpKSkKKwkJCQlicmVhazsKKwkJCX0KKwkJICAgIH0KKwkJICAgIG5vZGUgPSBub2RlLT5wYXJlbnQ7CisJCX0KKwkJaWYgKG5vZGUgPT0gTlVMTCkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCS8qCisJCSAqIHByZXBhcmUgYSBwb3RlbnRpYWwgcm9sbGJhY2sgZnJvbSBoZXJlCisJCSAqIGZvciBhbmNlc3RvcnMgb2YgdGhhdCBub2RlLgorCQkgKi8KKwkJaWYgKHN0ZXAtPm9wID09IFhNTF9PUF9BTkNFU1RPUikKKwkJICAgIHhtbFBhdFB1c2hTdGF0ZSgmc3RhdGVzLCBpLCBub2RlKTsKKwkJZWxzZQorCQkgICAgeG1sUGF0UHVzaFN0YXRlKCZzdGF0ZXMsIGkgLSAxLCBub2RlKTsKKwkJY29udGludWU7CisgICAgICAgICAgICBjYXNlIFhNTF9PUF9OUzoKKwkJaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCWlmIChub2RlLT5ucyA9PSBOVUxMKSB7CisJCSAgICBpZiAoc3RlcC0+dmFsdWUgIT0gTlVMTCkKKwkJCWdvdG8gcm9sbGJhY2s7CisJCX0gZWxzZSBpZiAobm9kZS0+bnMtPmhyZWYgIT0gTlVMTCkgeworCQkgICAgaWYgKHN0ZXAtPnZhbHVlID09IE5VTEwpCisJCQlnb3RvIHJvbGxiYWNrOworCQkgICAgaWYgKCF4bWxTdHJFcXVhbChzdGVwLT52YWx1ZSwgbm9kZS0+bnMtPmhyZWYpKQorCQkJZ290byByb2xsYmFjazsKKwkJfQorCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX09QX0FMTDoKKwkJaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkJICAgIGdvdG8gcm9sbGJhY2s7CisJCWJyZWFrOworCX0KKyAgICB9Citmb3VuZDoKKyAgICBpZiAoc3RhdGVzLnN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgIC8qIEZyZWUgdGhlIHJvbGxiYWNrIHN0YXRlcyAqLworCXhtbEZyZWUoc3RhdGVzLnN0YXRlcyk7CisgICAgfQorICAgIHJldHVybigxKTsKK3JvbGxiYWNrOgorICAgIC8qIGdvdCBhbiBlcnJvciB0cnkgdG8gcm9sbGJhY2sgKi8KKyAgICBpZiAoc3RhdGVzLnN0YXRlcyA9PSBOVUxMKQorCXJldHVybigwKTsKKyAgICBpZiAoc3RhdGVzLm5ic3RhdGVzIDw9IDApIHsKKwl4bWxGcmVlKHN0YXRlcy5zdGF0ZXMpOworCXJldHVybigwKTsKKyAgICB9CisgICAgc3RhdGVzLm5ic3RhdGVzLS07CisgICAgaSA9IHN0YXRlcy5zdGF0ZXNbc3RhdGVzLm5ic3RhdGVzXS5zdGVwOworICAgIG5vZGUgPSBzdGF0ZXMuc3RhdGVzW3N0YXRlcy5uYnN0YXRlc10ubm9kZTsKKyNpZiAwCisgICAgZnByaW50ZihzdGRlcnIsICJQb3A6ICVkLCAlc1xuIiwgaSwgbm9kZS0+bmFtZSk7CisjZW5kaWYKKyAgICBnb3RvIHJlc3RhcnQ7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlEZWRpY2F0ZWQgcGFyc2VyIGZvciB0ZW1wbGF0ZXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVE9ETyAJCQkJCQkJCVwKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwJCQkJXAorCSAgICAiVW5pbXBsZW1lbnRlZCBibG9jayBhdCAlczolZFxuIiwJCQkJXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKyNkZWZpbmUgQ1VSICgqY3R4dC0+Y3VyKQorI2RlZmluZSBTS0lQKHZhbCkgY3R4dC0+Y3VyICs9ICh2YWwpCisjZGVmaW5lIE5YVCh2YWwpIGN0eHQtPmN1clsodmFsKV0KKyNkZWZpbmUgUEVFS1BSRVYodmFsKSBjdHh0LT5jdXJbLSh2YWwpXQorI2RlZmluZSBDVVJfUFRSIGN0eHQtPmN1cgorCisjZGVmaW5lIFNLSVBfQkxBTktTIAkJCQkJCQlcCisgICAgd2hpbGUgKElTX0JMQU5LX0NIKENVUikpIE5FWFQKKworI2RlZmluZSBDVVJSRU5UICgqY3R4dC0+Y3VyKQorI2RlZmluZSBORVhUICgoKmN0eHQtPmN1cikgPyAgY3R4dC0+Y3VyKys6IGN0eHQtPmN1cikKKworCisjZGVmaW5lIFBVU0gob3AsIHZhbCwgdmFsMikgCQkJCQkJXAorICAgIGlmICh4bWxQYXR0ZXJuQWRkKGN0eHQsIGN0eHQtPmNvbXAsIChvcCksICh2YWwpLCAodmFsMikpKSBnb3RvIGVycm9yOworCisjZGVmaW5lIFhTTFRfRVJST1IoWCkJCQkJCQkJXAorICAgIHsgeHNsdEVycm9yKGN0eHQsIF9fRklMRV9fLCBfX0xJTkVfXywgWCk7CQkJCVwKKyAgICAgIGN0eHQtPmVycm9yID0gKFgpOyByZXR1cm47IH0KKworI2RlZmluZSBYU0xUX0VSUk9SMChYKQkJCQkJCQlcCisgICAgeyB4c2x0RXJyb3IoY3R4dCwgX19GSUxFX18sIF9fTElORV9fLCBYKTsJCQkJXAorICAgICAgY3R4dC0+ZXJyb3IgPSAoWCk7IHJldHVybigwKTsgfQorCisjaWYgMAorLyoqCisgKiB4bWxQYXRTY2FuTGl0ZXJhbDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYW4gWFBhdGggTGl0dGVyYWw6CisgKgorICogWzI5XSBMaXRlcmFsIDo6PSAnIicgW14iXSogJyInCisgKiAgICAgICAgICAgICAgICB8ICInIiBbXiddKiAiJyIKKyAqCisgKiBSZXR1cm5zIHRoZSBMaXRlcmFsIHBhcnNlZCBvciBOVUxMCisgKi8KKworc3RhdGljIHhtbENoYXIgKgoreG1sUGF0U2NhbkxpdGVyYWwoeG1sUGF0UGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqcSwgKmN1cjsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIGludCB2YWwsIGxlbjsKKworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgPT0gJyInKSB7CisgICAgICAgIE5FWFQ7CisJY3VyID0gcSA9IENVUl9QVFI7CisJdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKwl3aGlsZSAoKElTX0NIQVIodmFsKSkgJiYgKHZhbCAhPSAnIicpKSB7CisJICAgIGN1ciArPSBsZW47CisJICAgIHZhbCA9IHhtbFN0cmluZ0N1cnJlbnRDaGFyKE5VTEwsIGN1ciwgJmxlbik7CisJfQorCWlmICghSVNfQ0hBUih2YWwpKSB7CisJICAgIGN0eHQtPmVycm9yID0gMTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0gZWxzZSB7CisJICAgIGlmIChjdHh0LT5kaWN0KQorCQlyZXQgPSAoeG1sQ2hhciAqKSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIHEsIGN1ciAtIHEpOworCSAgICBlbHNlCisJCXJldCA9IHhtbFN0cm5kdXAocSwgY3VyIC0gcSk7CSAgICAKKyAgICAgICAgfQorCWN1ciArPSBsZW47CisJQ1VSX1BUUiA9IGN1cjsKKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnXCcnKSB7CisgICAgICAgIE5FWFQ7CisJY3VyID0gcSA9IENVUl9QVFI7CisJdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKwl3aGlsZSAoKElTX0NIQVIodmFsKSkgJiYgKHZhbCAhPSAnXCcnKSkgeworCSAgICBjdXIgKz0gbGVuOworCSAgICB2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworCX0KKwlpZiAoIUlTX0NIQVIodmFsKSkgeworCSAgICBjdHh0LT5lcnJvciA9IDE7CisJICAgIHJldHVybihOVUxMKTsKKwl9IGVsc2UgeworCSAgICBpZiAoY3R4dC0+ZGljdCkKKwkJcmV0ID0gKHhtbENoYXIgKikgeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBxLCBjdXIgLSBxKTsKKwkgICAgZWxzZQorCQlyZXQgPSB4bWxTdHJuZHVwKHEsIGN1ciAtIHEpOwkgICAgCisgICAgICAgIH0KKwljdXIgKz0gbGVuOworCUNVUl9QVFIgPSBjdXI7CisgICAgfSBlbHNlIHsKKwkvKiBYUF9FUlJPUihYUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SKTsgKi8KKwljdHh0LT5lcnJvciA9IDE7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbFBhdFNjYW5OYW1lOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiBbNF0gTmFtZUNoYXIgOjo9IExldHRlciB8IERpZ2l0IHwgJy4nIHwgJy0nIHwgJ18nIHwgCisgKiAgICAgICAgICAgICAgICAgIENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlcgorICoKKyAqIFs1XSBOYW1lIDo6PSAoTGV0dGVyIHwgJ18nIHwgJzonKSAoTmFtZUNoYXIpKgorICoKKyAqIFs2XSBOYW1lcyA6Oj0gTmFtZSAoUyBOYW1lKSoKKyAqCisgKiBSZXR1cm5zIHRoZSBOYW1lIHBhcnNlZCBvciBOVUxMCisgKi8KKworc3RhdGljIHhtbENoYXIgKgoreG1sUGF0U2Nhbk5hbWUoeG1sUGF0UGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqcSwgKmN1cjsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIGludCB2YWwsIGxlbjsKKworICAgIFNLSVBfQkxBTktTOworCisgICAgY3VyID0gcSA9IENVUl9QVFI7CisgICAgdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKyAgICBpZiAoIUlTX0xFVFRFUih2YWwpICYmICh2YWwgIT0gJ18nKSAmJiAodmFsICE9ICc6JykpCisJcmV0dXJuKE5VTEwpOworCisgICAgd2hpbGUgKChJU19MRVRURVIodmFsKSkgfHwgKElTX0RJR0lUKHZhbCkpIHx8CisgICAgICAgICAgICh2YWwgPT0gJy4nKSB8fCAodmFsID09ICctJykgfHwKKwkgICAodmFsID09ICdfJykgfHwgCisJICAgKElTX0NPTUJJTklORyh2YWwpKSB8fAorCSAgIChJU19FWFRFTkRFUih2YWwpKSkgeworCWN1ciArPSBsZW47CisJdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmRpY3QpCisJcmV0ID0gKHhtbENoYXIgKikgeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBxLCBjdXIgLSBxKTsKKyAgICBlbHNlCisJcmV0ID0geG1sU3RybmR1cChxLCBjdXIgLSBxKTsgICAgCisgICAgQ1VSX1BUUiA9IGN1cjsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXRTY2FuTkNOYW1lOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiBQYXJzZXMgYSBub24gcXVhbGlmaWVkIG5hbWUKKyAqCisgKiBSZXR1cm5zIHRoZSBOYW1lIHBhcnNlZCBvciBOVUxMCisgKi8KKworc3RhdGljIHhtbENoYXIgKgoreG1sUGF0U2Nhbk5DTmFtZSh4bWxQYXRQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpxLCAqY3VyOworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisgICAgaW50IHZhbCwgbGVuOworCisgICAgU0tJUF9CTEFOS1M7CisKKyAgICBjdXIgPSBxID0gQ1VSX1BUUjsKKyAgICB2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworICAgIGlmICghSVNfTEVUVEVSKHZhbCkgJiYgKHZhbCAhPSAnXycpKQorCXJldHVybihOVUxMKTsKKworICAgIHdoaWxlICgoSVNfTEVUVEVSKHZhbCkpIHx8IChJU19ESUdJVCh2YWwpKSB8fAorICAgICAgICAgICAodmFsID09ICcuJykgfHwgKHZhbCA9PSAnLScpIHx8CisJICAgKHZhbCA9PSAnXycpIHx8CisJICAgKElTX0NPTUJJTklORyh2YWwpKSB8fAorCSAgIChJU19FWFRFTkRFUih2YWwpKSkgeworCWN1ciArPSBsZW47CisJdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmRpY3QpCisJcmV0ID0gKHhtbENoYXIgKikgeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBxLCBjdXIgLSBxKTsKKyAgICBlbHNlCisJcmV0ID0geG1sU3RybmR1cChxLCBjdXIgLSBxKTsKKyAgICBDVVJfUFRSID0gY3VyOworICAgIHJldHVybihyZXQpOworfQorCisjaWYgMAorLyoqCisgKiB4bWxQYXRTY2FuUU5hbWU6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQHByZWZpeDogIHRoZSBwbGFjZSB0byBzdG9yZSB0aGUgcHJlZml4CisgKgorICogUGFyc2UgYSBxdWFsaWZpZWQgbmFtZQorICoKKyAqIFJldHVybnMgdGhlIE5hbWUgcGFyc2VkIG9yIE5VTEwKKyAqLworCitzdGF0aWMgeG1sQ2hhciAqCit4bWxQYXRTY2FuUU5hbWUoeG1sUGF0UGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxDaGFyICoqcHJlZml4KSB7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKworICAgICpwcmVmaXggPSBOVUxMOworICAgIHJldCA9IHhtbFBhdFNjYW5OQ05hbWUoY3R4dCk7CisgICAgaWYgKENVUiA9PSAnOicpIHsKKyAgICAgICAgKnByZWZpeCA9IHJldDsKKwlORVhUOworCXJldCA9IHhtbFBhdFNjYW5OQ05hbWUoY3R4dCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorI2VuZGlmCisKKy8qKgorICogeG1sQ29tcGlsZUF0dHJpYnV0ZVRlc3Q6CisgKiBAY3R4dDogIHRoZSBjb21waWxhdGlvbiBjb250ZXh0CisgKgorICogQ29tcGlsZSBhbiBhdHRyaWJ1dGUgdGVzdC4KKyAqLworc3RhdGljIHZvaWQKK3htbENvbXBpbGVBdHRyaWJ1dGVUZXN0KHhtbFBhdFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIHhtbENoYXIgKnRva2VuID0gTlVMTDsKKyAgICB4bWxDaGFyICpuYW1lID0gTlVMTDsKKyAgICB4bWxDaGFyICpVUkwgPSBOVUxMOworICAgIAorICAgIFNLSVBfQkxBTktTOworICAgIG5hbWUgPSB4bWxQYXRTY2FuTkNOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwlpZiAoQ1VSID09ICcqJykgeworCSAgICBQVVNIKFhNTF9PUF9BVFRSLCBOVUxMLCBOVUxMKTsKKwkgICAgTkVYVDsKKwl9IGVsc2UgeworCSAgICBFUlJPUihOVUxMLCBOVUxMLCBOVUxMLAorCQkieG1sQ29tcGlsZUF0dHJpYnV0ZVRlc3QgOiBOYW1lIGV4cGVjdGVkXG4iKTsKKwkgICAgY3R4dC0+ZXJyb3IgPSAxOworCX0KKwlyZXR1cm47CisgICAgfQorICAgIGlmIChDVVIgPT0gJzonKSB7CisJaW50IGk7CisJeG1sQ2hhciAqcHJlZml4ID0gbmFtZTsKKwkKKwlORVhUOworCisJaWYgKElTX0JMQU5LX0NIKENVUikpIHsJICAgIAorCSAgICBFUlJPUjUoTlVMTCwgTlVMTCwgTlVMTCwgIkludmFsaWQgUU5hbWUuXG4iLCBOVUxMKTsKKwkgICAgWE1MX1BBVF9GUkVFX1NUUklORyhjdHh0LCBwcmVmaXgpOworCSAgICBjdHh0LT5lcnJvciA9IDE7CisJICAgIGdvdG8gZXJyb3I7CisJfQorCS8qCisJKiBUaGlzIGlzIGEgbmFtZXNwYWNlIG1hdGNoCisJKi8KKwl0b2tlbiA9IHhtbFBhdFNjYW5OYW1lKGN0eHQpOworCWlmICgocHJlZml4WzBdID09ICd4JykgJiYKKwkgICAgKHByZWZpeFsxXSA9PSAnbScpICYmCisJICAgIChwcmVmaXhbMl0gPT0gJ2wnKSAmJgorCSAgICAocHJlZml4WzNdID09IDApKQorCXsKKwkgICAgWE1MX1BBVF9DT1BZX05TTkFNRShjdHh0LCBVUkwsIFhNTF9YTUxfTkFNRVNQQUNFKTsJICAgIAorCX0gZWxzZSB7CisJICAgIGZvciAoaSA9IDA7aSA8IGN0eHQtPm5iX25hbWVzcGFjZXM7aSsrKSB7CisJCWlmICh4bWxTdHJFcXVhbChjdHh0LT5uYW1lc3BhY2VzWzIgKiBpICsgMV0sIHByZWZpeCkpIHsKKwkJICAgIFhNTF9QQVRfQ09QWV9OU05BTUUoY3R4dCwgVVJMLCBjdHh0LT5uYW1lc3BhY2VzWzIgKiBpXSkJCSAgICAKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0KKwkgICAgaWYgKGkgPj0gY3R4dC0+bmJfbmFtZXNwYWNlcykgeworCQlFUlJPUjUoTlVMTCwgTlVMTCwgTlVMTCwKKwkJICAgICJ4bWxDb21waWxlQXR0cmlidXRlVGVzdCA6IG5vIG5hbWVzcGFjZSBib3VuZCB0byBwcmVmaXggJXNcbiIsCisJCSAgICBwcmVmaXgpOworCQljdHh0LT5lcnJvciA9IDE7CSAgICAKKwkJZ290byBlcnJvcjsKKwkgICAgfQorCX0KKwlYTUxfUEFUX0ZSRUVfU1RSSU5HKGN0eHQsIHByZWZpeCk7CisJaWYgKHRva2VuID09IE5VTEwpIHsKKwkgICAgaWYgKENVUiA9PSAnKicpIHsKKwkJTkVYVDsKKwkJUFVTSChYTUxfT1BfQVRUUiwgTlVMTCwgVVJMKTsKKwkgICAgfSBlbHNlIHsKKwkJRVJST1IoTlVMTCwgTlVMTCwgTlVMTCwKKwkJICAgICJ4bWxDb21waWxlQXR0cmlidXRlVGVzdCA6IE5hbWUgZXhwZWN0ZWRcbiIpOworCQljdHh0LT5lcnJvciA9IDE7CisJCWdvdG8gZXJyb3I7CisJICAgIH0JICAgIAorCX0gZWxzZSB7CisJICAgIFBVU0goWE1MX09QX0FUVFIsIHRva2VuLCBVUkwpOworCX0KKyAgICB9IGVsc2UgeworCVBVU0goWE1MX09QX0FUVFIsIG5hbWUsIE5VTEwpOworICAgIH0KKyAgICByZXR1cm47CitlcnJvcjoKKyAgICBpZiAoVVJMICE9IE5VTEwpCisJWE1MX1BBVF9GUkVFX1NUUklORyhjdHh0LCBVUkwpCQorICAgIGlmICh0b2tlbiAhPSBOVUxMKQorCVhNTF9QQVRfRlJFRV9TVFJJTkcoY3R4dCwgdG9rZW4pOworfQorCisvKioKKyAqIHhtbENvbXBpbGVTdGVwUGF0dGVybjoKKyAqIEBjdHh0OiAgdGhlIGNvbXBpbGF0aW9uIGNvbnRleHQKKyAqCisgKiBDb21waWxlIHRoZSBTdGVwIFBhdHRlcm4gYW5kIGdlbmVyYXRlcyBhIHByZWNvbXBpbGVkCisgKiBmb3JtIHN1aXRhYmxlIGZvciBmYXN0IG1hdGNoaW5nLgorICoKKyAqIFszXSAgICBTdGVwICAgIDo6PSAgICAnLicgfCBOYW1lVGVzdAorICogWzRdICAgIE5hbWVUZXN0ICAgIDo6PSAgICBRTmFtZSB8ICcqJyB8IE5DTmFtZSAnOicgJyonIAorICovCisKK3N0YXRpYyB2b2lkCit4bWxDb21waWxlU3RlcFBhdHRlcm4oeG1sUGF0UGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciAqdG9rZW4gPSBOVUxMOworICAgIHhtbENoYXIgKm5hbWUgPSBOVUxMOworICAgIHhtbENoYXIgKlVSTCA9IE5VTEw7CisgICAgaW50IGhhc0JsYW5rcyA9IDA7CisKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoQ1VSID09ICcuJykgeworCS8qCisJKiBDb250ZXh0IG5vZGUuCisJKi8KKwlORVhUOworCVBVU0goWE1MX09QX0VMRU0sIE5VTEwsIE5VTEwpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKENVUiA9PSAnQCcpIHsKKwkvKgorCSogQXR0cmlidXRlIHRlc3QuCisJKi8KKwlpZiAoWE1MX1NUUkVBTV9YU19JRENfU0VMKGN0eHQtPmNvbXApKSB7CisJICAgIEVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCQkiVW5leHBlY3RlZCBhdHRyaWJ1dGUgYXhpcyBpbiAnJXMnLlxuIiwgY3R4dC0+YmFzZSk7CisJICAgIGN0eHQtPmVycm9yID0gMTsKKwkgICAgcmV0dXJuOworCX0KKwlORVhUOworCXhtbENvbXBpbGVBdHRyaWJ1dGVUZXN0KGN0eHQpOworCWlmIChjdHh0LT5lcnJvciAhPSAwKSAKKwkgICAgZ290byBlcnJvcjsKKwlyZXR1cm47CisgICAgfQorICAgIG5hbWUgPSB4bWxQYXRTY2FuTkNOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwlpZiAoQ1VSID09ICcqJykgeworCSAgICBORVhUOworCSAgICBQVVNIKFhNTF9PUF9BTEwsIE5VTEwsIE5VTEwpOworCSAgICByZXR1cm47CisJfSBlbHNlIHsKKwkgICAgRVJST1IoTlVMTCwgTlVMTCwgTlVMTCwKKwkJICAgICJ4bWxDb21waWxlU3RlcFBhdHRlcm4gOiBOYW1lIGV4cGVjdGVkXG4iKTsKKwkgICAgY3R4dC0+ZXJyb3IgPSAxOworCSAgICByZXR1cm47CisJfQorICAgIH0KKyAgICBpZiAoSVNfQkxBTktfQ0goQ1VSKSkgeworCWhhc0JsYW5rcyA9IDE7CisJU0tJUF9CTEFOS1M7CisgICAgfQorICAgIGlmIChDVVIgPT0gJzonKSB7CisJTkVYVDsKKwlpZiAoQ1VSICE9ICc6JykgeworCSAgICB4bWxDaGFyICpwcmVmaXggPSBuYW1lOworCSAgICBpbnQgaTsJICAgIAorCisJICAgIGlmIChoYXNCbGFua3MgfHwgSVNfQkxBTktfQ0goQ1VSKSkgeworCQlFUlJPUjUoTlVMTCwgTlVMTCwgTlVMTCwgIkludmFsaWQgUU5hbWUuXG4iLCBOVUxMKTsKKwkJY3R4dC0+ZXJyb3IgPSAxOworCQlnb3RvIGVycm9yOworCSAgICB9CisJICAgIC8qCisJICAgICAqIFRoaXMgaXMgYSBuYW1lc3BhY2UgbWF0Y2gKKwkgICAgICovCisJICAgIHRva2VuID0geG1sUGF0U2Nhbk5hbWUoY3R4dCk7CisJICAgIGlmICgocHJlZml4WzBdID09ICd4JykgJiYKKwkJKHByZWZpeFsxXSA9PSAnbScpICYmCisJCShwcmVmaXhbMl0gPT0gJ2wnKSAmJgorCQkocHJlZml4WzNdID09IDApKQorCSAgICB7CisJCVhNTF9QQVRfQ09QWV9OU05BTUUoY3R4dCwgVVJMLCBYTUxfWE1MX05BTUVTUEFDRSkKKwkgICAgfSBlbHNlIHsKKwkJZm9yIChpID0gMDtpIDwgY3R4dC0+bmJfbmFtZXNwYWNlcztpKyspIHsKKwkJICAgIGlmICh4bWxTdHJFcXVhbChjdHh0LT5uYW1lc3BhY2VzWzIgKiBpICsgMV0sIHByZWZpeCkpIHsKKwkJCVhNTF9QQVRfQ09QWV9OU05BTUUoY3R4dCwgVVJMLCBjdHh0LT5uYW1lc3BhY2VzWzIgKiBpXSkKKwkJCWJyZWFrOworCQkgICAgfQorCQl9CisJCWlmIChpID49IGN0eHQtPm5iX25hbWVzcGFjZXMpIHsKKwkJICAgIEVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCQkJInhtbENvbXBpbGVTdGVwUGF0dGVybiA6IG5vIG5hbWVzcGFjZSBib3VuZCB0byBwcmVmaXggJXNcbiIsCisJCQlwcmVmaXgpOworCQkgICAgY3R4dC0+ZXJyb3IgPSAxOworCQkgICAgZ290byBlcnJvcjsKKwkJfQorCSAgICB9CisJICAgIFhNTF9QQVRfRlJFRV9TVFJJTkcoY3R4dCwgcHJlZml4KTsKKwkgICAgbmFtZSA9IE5VTEw7CisJICAgIGlmICh0b2tlbiA9PSBOVUxMKSB7CisJCWlmIChDVVIgPT0gJyonKSB7CisJCSAgICBORVhUOworCQkgICAgUFVTSChYTUxfT1BfTlMsIFVSTCwgTlVMTCk7CisJCX0gZWxzZSB7CisJCSAgICBFUlJPUihOVUxMLCBOVUxMLCBOVUxMLAorCQkJICAgICJ4bWxDb21waWxlU3RlcFBhdHRlcm4gOiBOYW1lIGV4cGVjdGVkXG4iKTsKKwkJICAgIGN0eHQtPmVycm9yID0gMTsKKwkJICAgIGdvdG8gZXJyb3I7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkJUFVTSChYTUxfT1BfRUxFTSwgdG9rZW4sIFVSTCk7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICBORVhUOworCSAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgImNoaWxkIikpIHsJCQorCQlYTUxfUEFUX0ZSRUVfU1RSSU5HKGN0eHQsIG5hbWUpOworCQluYW1lID0geG1sUGF0U2Nhbk5hbWUoY3R4dCk7CisJCWlmIChuYW1lID09IE5VTEwpIHsKKwkJICAgIGlmIChDVVIgPT0gJyonKSB7CisJCQlORVhUOworCQkJUFVTSChYTUxfT1BfQUxMLCBOVUxMLCBOVUxMKTsKKwkJCXJldHVybjsKKwkJICAgIH0gZWxzZSB7CisJCQlFUlJPUihOVUxMLCBOVUxMLCBOVUxMLAorCQkJICAgICJ4bWxDb21waWxlU3RlcFBhdHRlcm4gOiBRTmFtZSBleHBlY3RlZFxuIik7CisJCQljdHh0LT5lcnJvciA9IDE7CisJCQlnb3RvIGVycm9yOworCQkgICAgfQorCQl9CisJCWlmIChDVVIgPT0gJzonKSB7CisJCSAgICB4bWxDaGFyICpwcmVmaXggPSBuYW1lOworCQkgICAgaW50IGk7CisJCSAgICAKKwkJICAgIE5FWFQ7CisJCSAgICBpZiAoSVNfQkxBTktfQ0goQ1VSKSkgeworCQkJRVJST1I1KE5VTEwsIE5VTEwsIE5VTEwsICJJbnZhbGlkIFFOYW1lLlxuIiwgTlVMTCk7CisJCQljdHh0LT5lcnJvciA9IDE7CisJCQlnb3RvIGVycm9yOworCQkgICAgfQorCQkgICAgLyoKKwkJICAgICogVGhpcyBpcyBhIG5hbWVzcGFjZSBtYXRjaAorCQkgICAgKi8KKwkJICAgIHRva2VuID0geG1sUGF0U2Nhbk5hbWUoY3R4dCk7CisJCSAgICBpZiAoKHByZWZpeFswXSA9PSAneCcpICYmCisJCQkocHJlZml4WzFdID09ICdtJykgJiYKKwkJCShwcmVmaXhbMl0gPT0gJ2wnKSAmJgorCQkJKHByZWZpeFszXSA9PSAwKSkKKwkJICAgIHsKKwkJCVhNTF9QQVRfQ09QWV9OU05BTUUoY3R4dCwgVVJMLCBYTUxfWE1MX05BTUVTUEFDRSkJCQkKKwkJICAgIH0gZWxzZSB7CisJCQlmb3IgKGkgPSAwO2kgPCBjdHh0LT5uYl9uYW1lc3BhY2VzO2krKykgeworCQkJICAgIGlmICh4bWxTdHJFcXVhbChjdHh0LT5uYW1lc3BhY2VzWzIgKiBpICsgMV0sIHByZWZpeCkpIHsKKwkJCQlYTUxfUEFUX0NPUFlfTlNOQU1FKGN0eHQsIFVSTCwgY3R4dC0+bmFtZXNwYWNlc1syICogaV0pCQkJCQorCQkJCWJyZWFrOworCQkJICAgIH0KKwkJCX0KKwkJCWlmIChpID49IGN0eHQtPm5iX25hbWVzcGFjZXMpIHsKKwkJCSAgICBFUlJPUjUoTlVMTCwgTlVMTCwgTlVMTCwKKwkJCQkieG1sQ29tcGlsZVN0ZXBQYXR0ZXJuIDogbm8gbmFtZXNwYWNlIGJvdW5kICIKKwkJCQkidG8gcHJlZml4ICVzXG4iLCBwcmVmaXgpOworCQkJICAgIGN0eHQtPmVycm9yID0gMTsKKwkJCSAgICBnb3RvIGVycm9yOworCQkJfQorCQkgICAgfQorCQkgICAgWE1MX1BBVF9GUkVFX1NUUklORyhjdHh0LCBwcmVmaXgpOworCQkgICAgbmFtZSA9IE5VTEw7CisJCSAgICBpZiAodG9rZW4gPT0gTlVMTCkgeworCQkJaWYgKENVUiA9PSAnKicpIHsKKwkJCSAgICBORVhUOworCQkJICAgIFBVU0goWE1MX09QX05TLCBVUkwsIE5VTEwpOworCQkJfSBlbHNlIHsKKwkJCSAgICBFUlJPUihOVUxMLCBOVUxMLCBOVUxMLAorCQkJCSJ4bWxDb21waWxlU3RlcFBhdHRlcm4gOiBOYW1lIGV4cGVjdGVkXG4iKTsKKwkJCSAgICBjdHh0LT5lcnJvciA9IDE7CisJCQkgICAgZ290byBlcnJvcjsKKwkJCX0KKwkJICAgIH0gZWxzZSB7CisJCQlQVVNIKFhNTF9PUF9DSElMRCwgdG9rZW4sIFVSTCk7CisJCSAgICB9CisJCX0gZWxzZQorCQkgICAgUFVTSChYTUxfT1BfQ0hJTEQsIG5hbWUsIE5VTEwpOworCQlyZXR1cm47CisJICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgKGNvbnN0IHhtbENoYXIgKikgImF0dHJpYnV0ZSIpKSB7CisJCVhNTF9QQVRfRlJFRV9TVFJJTkcoY3R4dCwgbmFtZSkKKwkJbmFtZSA9IE5VTEw7CisJCWlmIChYTUxfU1RSRUFNX1hTX0lEQ19TRUwoY3R4dC0+Y29tcCkpIHsKKwkJICAgIEVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCQkJIlVuZXhwZWN0ZWQgYXR0cmlidXRlIGF4aXMgaW4gJyVzJy5cbiIsIGN0eHQtPmJhc2UpOworCQkgICAgY3R4dC0+ZXJyb3IgPSAxOworCQkgICAgZ290byBlcnJvcjsKKwkJfQorCQl4bWxDb21waWxlQXR0cmlidXRlVGVzdChjdHh0KTsKKwkJaWYgKGN0eHQtPmVycm9yICE9IDApCisJCSAgICBnb3RvIGVycm9yOworCQlyZXR1cm47CisJICAgIH0gZWxzZSB7CisJCUVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCQkgICAgIlRoZSAnZWxlbWVudCcgb3IgJ2F0dHJpYnV0ZScgYXhpcyBpcyBleHBlY3RlZC5cbiIsIE5VTEwpOworCQljdHh0LT5lcnJvciA9IDE7CisJCWdvdG8gZXJyb3I7CisJICAgIH0JICAgIAorCX0KKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnKicpIHsKKyAgICAgICAgaWYgKG5hbWUgIT0gTlVMTCkgeworCSAgICBjdHh0LT5lcnJvciA9IDE7CisJICAgIGdvdG8gZXJyb3I7CisJfQorCU5FWFQ7CisJUFVTSChYTUxfT1BfQUxMLCB0b2tlbiwgTlVMTCk7CisgICAgfSBlbHNlIHsKKwlQVVNIKFhNTF9PUF9FTEVNLCBuYW1lLCBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuOworZXJyb3I6CisgICAgaWYgKFVSTCAhPSBOVUxMKQorCVhNTF9QQVRfRlJFRV9TVFJJTkcoY3R4dCwgVVJMKQkKKyAgICBpZiAodG9rZW4gIT0gTlVMTCkKKwlYTUxfUEFUX0ZSRUVfU1RSSU5HKGN0eHQsIHRva2VuKQorICAgIGlmIChuYW1lICE9IE5VTEwpCisJWE1MX1BBVF9GUkVFX1NUUklORyhjdHh0LCBuYW1lKQorfQorCisvKioKKyAqIHhtbENvbXBpbGVQYXRoUGF0dGVybjoKKyAqIEBjdHh0OiAgdGhlIGNvbXBpbGF0aW9uIGNvbnRleHQKKyAqCisgKiBDb21waWxlIHRoZSBQYXRoIFBhdHRlcm4gYW5kIGdlbmVyYXRlcyBhIHByZWNvbXBpbGVkCisgKiBmb3JtIHN1aXRhYmxlIGZvciBmYXN0IG1hdGNoaW5nLgorICoKKyAqIFs1XSAgICBQYXRoICAgIDo6PSAgICAoJy4vLycpPyAoIFN0ZXAgJy8nICkqICggU3RlcCB8ICdAJyBOYW1lVGVzdCApIAorICovCitzdGF0aWMgdm9pZAoreG1sQ29tcGlsZVBhdGhQYXR0ZXJuKHhtbFBhdFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgPT0gJy8nKSB7CisgICAgICAgIGN0eHQtPmNvbXAtPmZsYWdzIHw9IFBBVF9GUk9NX1JPT1Q7CisgICAgfSBlbHNlIGlmICgoQ1VSID09ICcuJykgfHwgKGN0eHQtPmNvbXAtPmZsYWdzICYgWE1MX1BBVFRFUk5fTk9UUEFUVEVSTikpIHsKKyAgICAgICAgY3R4dC0+Y29tcC0+ZmxhZ3MgfD0gUEFUX0ZST01fQ1VSOworICAgIH0KKwkKKyAgICBpZiAoKENVUiA9PSAnLycpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCVBVU0goWE1MX09QX0FOQ0VTVE9SLCBOVUxMLCBOVUxMKTsKKwlORVhUOworCU5FWFQ7CisgICAgfSBlbHNlIGlmICgoQ1VSID09ICcuJykgJiYgKE5YVCgxKSA9PSAnLycpICYmIChOWFQoMikgPT0gJy8nKSkgeworCVBVU0goWE1MX09QX0FOQ0VTVE9SLCBOVUxMLCBOVUxMKTsKKwlORVhUOworCU5FWFQ7CisJTkVYVDsKKwkvKiBDaGVjayBmb3IgaW5jb21wbGV0ZW5lc3MuICovCisJU0tJUF9CTEFOS1M7CisJaWYgKENVUiA9PSAwKSB7CisJICAgIEVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCSAgICAgICAiSW5jb21wbGV0ZSBleHByZXNzaW9uICclcycuXG4iLCBjdHh0LT5iYXNlKTsKKwkgICAgY3R4dC0+ZXJyb3IgPSAxOworCSAgICBnb3RvIGVycm9yOworCX0KKyAgICB9CisgICAgaWYgKENVUiA9PSAnQCcpIHsKKwlORVhUOworCXhtbENvbXBpbGVBdHRyaWJ1dGVUZXN0KGN0eHQpOworCVNLSVBfQkxBTktTOworCS8qIFRPRE86IGNoZWNrIGZvciBpbmNvbXBsZXRlbmVzcyAqLworCWlmIChDVVIgIT0gMCkgeworCSAgICB4bWxDb21waWxlU3RlcFBhdHRlcm4oY3R4dCk7CisJICAgIGlmIChjdHh0LT5lcnJvciAhPSAwKQorCQlnb3RvIGVycm9yOworCX0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoQ1VSID09ICcvJykgeworCSAgICBQVVNIKFhNTF9PUF9ST09ULCBOVUxMLCBOVUxMKTsKKwkgICAgTkVYVDsKKwkgICAgLyogQ2hlY2sgZm9yIGluY29tcGxldGVuZXNzLiAqLworCSAgICBTS0lQX0JMQU5LUzsKKwkgICAgaWYgKENVUiA9PSAwKSB7CisJCUVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCQkgICAgIkluY29tcGxldGUgZXhwcmVzc2lvbiAnJXMnLlxuIiwgY3R4dC0+YmFzZSk7CisJCWN0eHQtPmVycm9yID0gMTsKKwkJZ290byBlcnJvcjsKKwkgICAgfQorCX0KKwl4bWxDb21waWxlU3RlcFBhdHRlcm4oY3R4dCk7CisJaWYgKGN0eHQtPmVycm9yICE9IDApCisJICAgIGdvdG8gZXJyb3I7CisJU0tJUF9CTEFOS1M7CisJd2hpbGUgKENVUiA9PSAnLycpIHsKKwkgICAgaWYgKE5YVCgxKSA9PSAnLycpIHsKKwkgICAgICAgIFBVU0goWE1MX09QX0FOQ0VTVE9SLCBOVUxMLCBOVUxMKTsKKwkJTkVYVDsKKwkJTkVYVDsKKwkJU0tJUF9CTEFOS1M7CisJCXhtbENvbXBpbGVTdGVwUGF0dGVybihjdHh0KTsKKwkJaWYgKGN0eHQtPmVycm9yICE9IDApCisJCSAgICBnb3RvIGVycm9yOworCSAgICB9IGVsc2UgeworCSAgICAgICAgUFVTSChYTUxfT1BfUEFSRU5ULCBOVUxMLCBOVUxMKTsKKwkJTkVYVDsKKwkJU0tJUF9CTEFOS1M7CisJCWlmIChDVVIgPT0gMCkgeworCQkgICAgRVJST1I1KE5VTEwsIE5VTEwsIE5VTEwsCisJCSAgICAiSW5jb21wbGV0ZSBleHByZXNzaW9uICclcycuXG4iLCBjdHh0LT5iYXNlKTsKKwkJICAgIGN0eHQtPmVycm9yID0gMTsKKwkJICAgIGdvdG8gZXJyb3I7CQkgICAgCisJCX0KKwkJeG1sQ29tcGlsZVN0ZXBQYXR0ZXJuKGN0eHQpOworCQlpZiAoY3R4dC0+ZXJyb3IgIT0gMCkKKwkJICAgIGdvdG8gZXJyb3I7CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmIChDVVIgIT0gMCkgeworCUVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCSAgICAgICAiRmFpbGVkIHRvIGNvbXBpbGUgcGF0dGVybiAlc1xuIiwgY3R4dC0+YmFzZSk7CisJY3R4dC0+ZXJyb3IgPSAxOworICAgIH0KK2Vycm9yOgorICAgIHJldHVybjsKK30KKworLyoqCisgKiB4bWxDb21waWxlSURDWFBhdGhQYXRoOgorICogQGN0eHQ6ICB0aGUgY29tcGlsYXRpb24gY29udGV4dAorICoKKyAqIENvbXBpbGUgdGhlIFBhdGggUGF0dGVybiBhbmQgZ2VuZXJhdGVzIGEgcHJlY29tcGlsZWQKKyAqIGZvcm0gc3VpdGFibGUgZm9yIGZhc3QgbWF0Y2hpbmcuCisgKgorICogWzVdICAgIFBhdGggICAgOjo9ICAgICgnLi8vJyk/ICggU3RlcCAnLycgKSogKCBTdGVwIHwgJ0AnIE5hbWVUZXN0ICkgCisgKi8KK3N0YXRpYyB2b2lkCit4bWxDb21waWxlSURDWFBhdGhQYXRoKHhtbFBhdFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgPT0gJy8nKSB7CisJRVJST1I1KE5VTEwsIE5VTEwsIE5VTEwsCisJICAgICJVbmV4cGVjdGVkIHNlbGVjdGlvbiBvZiB0aGUgZG9jdW1lbnQgcm9vdCBpbiAnJXMnLlxuIiwKKwkgICAgY3R4dC0+YmFzZSk7CisJZ290byBlcnJvcjsKKyAgICB9CisgICAgY3R4dC0+Y29tcC0+ZmxhZ3MgfD0gUEFUX0ZST01fQ1VSOworCisgICAgaWYgKENVUiA9PSAnLicpIHsKKwkvKiAiLiIgLSAic2VsZjo6bm9kZSgpIiAqLworCU5FWFQ7CisJU0tJUF9CTEFOS1M7CisJaWYgKENVUiA9PSAwKSB7CisJICAgIC8qCisJICAgICogU2VsZWN0aW9uIG9mIHRoZSBjb250ZXh0IG5vZGUuCisJICAgICovCisJICAgIFBVU0goWE1MX09QX0VMRU0sIE5VTEwsIE5VTEwpOworCSAgICByZXR1cm47CisJfQorCWlmIChDVVIgIT0gJy8nKSB7CisJICAgIC8qIFRPRE86IEEgbW9yZSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2UuICovCisJICAgIEVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCSAgICAiVW5leHBlY3RlZCB0b2tlbiBhZnRlciAnLicgaW4gJyVzJy5cbiIsIGN0eHQtPmJhc2UpOworCSAgICBnb3RvIGVycm9yOworCX0KKwkvKiAiLi8iIC0gInNlbGY6Om5vZGUoKS8iICovCisJTkVYVDsKKwlTS0lQX0JMQU5LUzsKKwlpZiAoQ1VSID09ICcvJykgeworCSAgICBpZiAoSVNfQkxBTktfQ0goUEVFS1BSRVYoMSkpKSB7CisJCS8qCisJCSogRGlzYWxsb3cgIi4vIC8iCisJCSovCisJCUVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCQkgICAgIlVuZXhwZWN0ZWQgJy8nIHRva2VuIGluICclcycuXG4iLCBjdHh0LT5iYXNlKTsKKwkJZ290byBlcnJvcjsKKwkgICAgfQorCSAgICAvKiAiLi8vIiAtICJzZWxmOm5vZGUoKS9kZXNjZW5kYW50LW9yLXNlbGY6Om5vZGUoKS8iICovCisJICAgIFBVU0goWE1MX09QX0FOQ0VTVE9SLCBOVUxMLCBOVUxMKTsKKwkgICAgTkVYVDsKKwkgICAgU0tJUF9CTEFOS1M7CisJfQorCWlmIChDVVIgPT0gMCkKKwkgICAgZ290byBlcnJvcl91bmZpbmlzaGVkOworICAgIH0KKyAgICAvKgorICAgICogUHJvY2VzcyBzdGVwcy4KKyAgICAqLworICAgIGRvIHsKKwl4bWxDb21waWxlU3RlcFBhdHRlcm4oY3R4dCk7CisJaWYgKGN0eHQtPmVycm9yICE9IDApIAorCSAgICBnb3RvIGVycm9yOworCVNLSVBfQkxBTktTOworCWlmIChDVVIgIT0gJy8nKQorCSAgICBicmVhazsKKwlQVVNIKFhNTF9PUF9QQVJFTlQsIE5VTEwsIE5VTEwpOworCU5FWFQ7CisJU0tJUF9CTEFOS1M7CisJaWYgKENVUiA9PSAnLycpIHsKKwkgICAgLyoKKwkgICAgKiBEaXNhbGxvdyBzdWJzZXF1ZW50ICcvLycuCisJICAgICovCisJICAgIEVSUk9SNShOVUxMLCBOVUxMLCBOVUxMLAorCQkiVW5leHBlY3RlZCBzdWJzZXF1ZW50ICcvLycgaW4gJyVzJy5cbiIsCisJCWN0eHQtPmJhc2UpOworCSAgICBnb3RvIGVycm9yOworCX0KKwlpZiAoQ1VSID09IDApCisJICAgIGdvdG8gZXJyb3JfdW5maW5pc2hlZDsKKwkKKyAgICB9IHdoaWxlIChDVVIgIT0gMCk7CisKKyAgICBpZiAoQ1VSICE9IDApIHsKKwlFUlJPUjUoTlVMTCwgTlVMTCwgTlVMTCwKKwkgICAgIkZhaWxlZCB0byBjb21waWxlIGV4cHJlc3Npb24gJyVzJy5cbiIsIGN0eHQtPmJhc2UpOworCWN0eHQtPmVycm9yID0gMTsKKyAgICB9CisgICAgcmV0dXJuOworZXJyb3I6CisgICAgY3R4dC0+ZXJyb3IgPSAxOworICAgIHJldHVybjsKKworZXJyb3JfdW5maW5pc2hlZDoKKyAgICBjdHh0LT5lcnJvciA9IDE7CisgICAgRVJST1I1KE5VTEwsIE5VTEwsIE5VTEwsCisJIlVuZmluaXNoZWQgZXhwcmVzc2lvbiAnJXMnLlxuIiwgY3R4dC0+YmFzZSk7ICAgIAorICAgIHJldHVybjsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVRoZSBzdHJlYW1pbmcgY29kZQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBERUJVR19TVFJFQU1JTkcKK3N0YXRpYyB2b2lkCit4bWxEZWJ1Z1N0cmVhbUNvbXAoeG1sU3RyZWFtQ29tcFB0ciBzdHJlYW0pIHsKKyAgICBpbnQgaTsKKworICAgIGlmIChzdHJlYW0gPT0gTlVMTCkgeworICAgICAgICBwcmludGYoIlN0cmVhbTogTlVMTFxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICBwcmludGYoIlN0cmVhbTogJWQgc3RlcHNcbiIsIHN0cmVhbS0+bmJTdGVwKTsKKyAgICBmb3IgKGkgPSAwO2kgPCBzdHJlYW0tPm5iU3RlcDtpKyspIHsKKwlpZiAoc3RyZWFtLT5zdGVwc1tpXS5ucyAhPSBOVUxMKSB7CisJICAgIHByaW50ZigieyVzfSIsIHN0cmVhbS0+c3RlcHNbaV0ubnMpOworCX0KKyAgICAgICAgaWYgKHN0cmVhbS0+c3RlcHNbaV0ubmFtZSA9PSBOVUxMKSB7CisJICAgIHByaW50ZigiKiAiKTsKKwl9IGVsc2UgeworCSAgICBwcmludGYoIiVzICIsIHN0cmVhbS0+c3RlcHNbaV0ubmFtZSk7CisJfQorCWlmIChzdHJlYW0tPnN0ZXBzW2ldLmZsYWdzICYgWE1MX1NUUkVBTV9TVEVQX1JPT1QpCisJICAgIHByaW50Zigicm9vdCAiKTsKKwlpZiAoc3RyZWFtLT5zdGVwc1tpXS5mbGFncyAmIFhNTF9TVFJFQU1fU1RFUF9ERVNDKQorCSAgICBwcmludGYoIi8vICIpOworCWlmIChzdHJlYW0tPnN0ZXBzW2ldLmZsYWdzICYgWE1MX1NUUkVBTV9TVEVQX0ZJTkFMKQorCSAgICBwcmludGYoImZpbmFsICIpOworCXByaW50ZigiXG4iKTsKKyAgICB9Cit9CitzdGF0aWMgdm9pZAoreG1sRGVidWdTdHJlYW1DdHh0KHhtbFN0cmVhbUN0eHRQdHIgY3R4dCwgaW50IG1hdGNoKSB7CisgICAgaW50IGk7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHByaW50ZigiU3RyZWFtOiBOVUxMXG4iKTsKKwlyZXR1cm47CisgICAgfQorICAgIHByaW50ZigiU3RyZWFtOiBsZXZlbCAlZCwgJWQgc3RhdGVzOiAiLCBjdHh0LT5sZXZlbCwgY3R4dC0+bmJTdGF0ZSk7CisgICAgaWYgKG1hdGNoKQorICAgICAgICBwcmludGYoIm1hdGNoZXNcbiIpOworICAgIGVsc2UKKyAgICAgICAgcHJpbnRmKCJcbiIpOworICAgIGZvciAoaSA9IDA7aSA8IGN0eHQtPm5iU3RhdGU7aSsrKSB7CisgICAgICAgIGlmIChjdHh0LT5zdGF0ZXNbMiAqIGldIDwgMCkKKwkgICAgcHJpbnRmKCIgJWQ6IGZyZWVcbiIsIGkpOworCWVsc2UgeworCSAgICBwcmludGYoIiAlZDogc3RlcCAlZCwgbGV2ZWwgJWQiLCBpLCBjdHh0LT5zdGF0ZXNbMiAqIGldLAorCSAgICAgICAgICAgY3R4dC0+c3RhdGVzWygyICogaSkgKyAxXSk7CisgICAgICAgICAgICBpZiAoY3R4dC0+Y29tcC0+c3RlcHNbY3R4dC0+c3RhdGVzWzIgKiBpXV0uZmxhZ3MgJgorCSAgICAgICAgWE1MX1NUUkVBTV9TVEVQX0RFU0MpCisJICAgICAgICBwcmludGYoIiAvL1xuIik7CisJICAgIGVsc2UKKwkgICAgICAgIHByaW50ZigiXG4iKTsKKwl9CisgICAgfQorfQorI2VuZGlmCisvKioKKyAqIHhtbE5ld1N0cmVhbUNvbXA6CisgKiBAc2l6ZTogdGhlIG51bWJlciBvZiBleHBlY3RlZCBzdGVwcworICoKKyAqIGJ1aWxkIGEgbmV3IGNvbXBpbGVkIHBhdHRlcm4gZm9yIHN0cmVhbWluZworICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sU3RyZWFtQ29tcFB0cgoreG1sTmV3U3RyZWFtQ29tcChpbnQgc2l6ZSkgeworICAgIHhtbFN0cmVhbUNvbXBQdHIgY3VyOworCisgICAgaWYgKHNpemUgPCA0KQorICAgICAgICBzaXplICA9IDQ7CisKKyAgICBjdXIgPSAoeG1sU3RyZWFtQ29tcFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTdHJlYW1Db21wKSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJRVJST1IoTlVMTCwgTlVMTCwgTlVMTCwKKwkJInhtbE5ld1N0cmVhbUNvbXA6IG1hbGxvYyBmYWlsZWRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbFN0cmVhbUNvbXApKTsKKyAgICBjdXItPnN0ZXBzID0gKHhtbFN0cmVhbVN0ZXBQdHIpIHhtbE1hbGxvYyhzaXplICogc2l6ZW9mKHhtbFN0cmVhbVN0ZXApKTsKKyAgICBpZiAoY3VyLT5zdGVwcyA9PSBOVUxMKSB7CisJeG1sRnJlZShjdXIpOworCUVSUk9SKE5VTEwsIE5VTEwsIE5VTEwsCisJICAgICAgInhtbE5ld1N0cmVhbUNvbXA6IG1hbGxvYyBmYWlsZWRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgY3VyLT5uYlN0ZXAgPSAwOworICAgIGN1ci0+bWF4U3RlcCA9IHNpemU7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sRnJlZVN0cmVhbUNvbXA6CisgKiBAY29tcDogdGhlIGNvbXBpbGVkIHBhdHRlcm4gZm9yIHN0cmVhbWluZworICoKKyAqIEZyZWUgdGhlIGNvbXBpbGVkIHBhdHRlcm4gZm9yIHN0cmVhbWluZworICovCitzdGF0aWMgdm9pZAoreG1sRnJlZVN0cmVhbUNvbXAoeG1sU3RyZWFtQ29tcFB0ciBjb21wKSB7CisgICAgaWYgKGNvbXAgIT0gTlVMTCkgeworICAgICAgICBpZiAoY29tcC0+c3RlcHMgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShjb21wLT5zdGVwcyk7CisJaWYgKGNvbXAtPmRpY3QgIT0gTlVMTCkKKwkgICAgeG1sRGljdEZyZWUoY29tcC0+ZGljdCk7CisgICAgICAgIHhtbEZyZWUoY29tcCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFN0cmVhbUNvbXBBZGRTdGVwOgorICogQGNvbXA6IHRoZSBjb21waWxlZCBwYXR0ZXJuIGZvciBzdHJlYW1pbmcKKyAqIEBuYW1lOiB0aGUgZmlyc3Qgc3RyaW5nLCB0aGUgbmFtZSwgb3IgTlVMTCBmb3IgKgorICogQG5zOiB0aGUgc2Vjb25kIHN0ZXAsIHRoZSBuYW1lc3BhY2UgbmFtZQorICogQGZsYWdzOiB0aGUgZmxhZ3MgZm9yIHRoYXQgc3RlcAorICoKKyAqIEFkZCBhIG5ldyBzdGVwIHRvIHRoZSBjb21waWxlZCBwYXR0ZXJuCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yIG9yIHRoZSBzdGVwIGluZGV4IGlmIHN1Y2Nlc3NmdWwKKyAqLworc3RhdGljIGludAoreG1sU3RyZWFtQ29tcEFkZFN0ZXAoeG1sU3RyZWFtQ29tcFB0ciBjb21wLCBjb25zdCB4bWxDaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbnMsIGludCBub2RlVHlwZSwgaW50IGZsYWdzKSB7CisgICAgeG1sU3RyZWFtU3RlcFB0ciBjdXI7CisKKyAgICBpZiAoY29tcC0+bmJTdGVwID49IGNvbXAtPm1heFN0ZXApIHsKKwljdXIgPSAoeG1sU3RyZWFtU3RlcFB0cikgeG1sUmVhbGxvYyhjb21wLT5zdGVwcywKKwkJCQkgY29tcC0+bWF4U3RlcCAqIDIgKiBzaXplb2YoeG1sU3RyZWFtU3RlcCkpOworCWlmIChjdXIgPT0gTlVMTCkgeworCSAgICBFUlJPUihOVUxMLCBOVUxMLCBOVUxMLAorCQkgICJ4bWxOZXdTdHJlYW1Db21wOiBtYWxsb2MgZmFpbGVkXG4iKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY29tcC0+c3RlcHMgPSBjdXI7CisgICAgICAgIGNvbXAtPm1heFN0ZXAgKj0gMjsKKyAgICB9CisgICAgY3VyID0gJmNvbXAtPnN0ZXBzW2NvbXAtPm5iU3RlcCsrXTsKKyAgICBjdXItPmZsYWdzID0gZmxhZ3M7CisgICAgY3VyLT5uYW1lID0gbmFtZTsKKyAgICBjdXItPm5zID0gbnM7CisgICAgY3VyLT5ub2RlVHlwZSA9IG5vZGVUeXBlOworICAgIHJldHVybihjb21wLT5uYlN0ZXAgLSAxKTsKK30KKworLyoqCisgKiB4bWxTdHJlYW1Db21waWxlOgorICogQGNvbXA6IHRoZSBwcmVjb21waWxlZCBwYXR0ZXJuCisgKiAKKyAqIFRyaWVzIHRvIHN0cmVhbSBjb21waWxlIGEgcGF0dGVybgorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBmYWlsdXJlIGFuZCAwIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KKyAqLworc3RhdGljIGludAoreG1sU3RyZWFtQ29tcGlsZSh4bWxQYXR0ZXJuUHRyIGNvbXApIHsKKyAgICB4bWxTdHJlYW1Db21wUHRyIHN0cmVhbTsKKyAgICBpbnQgaSwgcyA9IDAsIHJvb3QgPSAwLCBmbGFncyA9IDAsIHByZXZzID0gLTE7CisgICAgeG1sU3RlcE9wIHN0ZXA7CisKKyAgICBpZiAoKGNvbXAgPT0gTlVMTCkgfHwgKGNvbXAtPnN0ZXBzID09IE5VTEwpKQorICAgICAgICByZXR1cm4oLTEpOworICAgIC8qCisgICAgICogc3BlY2lhbCBjYXNlIGZvciAuCisgICAgICovCisgICAgaWYgKChjb21wLT5uYlN0ZXAgPT0gMSkgJiYKKyAgICAgICAgKGNvbXAtPnN0ZXBzWzBdLm9wID09IFhNTF9PUF9FTEVNKSAmJgorCShjb21wLT5zdGVwc1swXS52YWx1ZSA9PSBOVUxMKSAmJgorCShjb21wLT5zdGVwc1swXS52YWx1ZTIgPT0gTlVMTCkpIHsKKwlzdHJlYW0gPSB4bWxOZXdTdHJlYW1Db21wKDApOworCWlmIChzdHJlYW0gPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKwkvKiBOb3RlIHRoYXQgdGhlIHN0cmVhbSB3aWxsIGhhdmUgbm8gc3RlcHMgaW4gdGhpcyBjYXNlLiAqLworCXN0cmVhbS0+ZmxhZ3MgfD0gWE1MX1NUUkVBTV9GSU5BTF9JU19BTllfTk9ERTsKKwljb21wLT5zdHJlYW0gPSBzdHJlYW07CisJcmV0dXJuKDApOworICAgIH0KKworICAgIHN0cmVhbSA9IHhtbE5ld1N0cmVhbUNvbXAoKGNvbXAtPm5iU3RlcCAvIDIpICsgMSk7CisgICAgaWYgKHN0cmVhbSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChjb21wLT5kaWN0ICE9IE5VTEwpIHsKKyAgICAgICAgc3RyZWFtLT5kaWN0ID0gY29tcC0+ZGljdDsKKwl4bWxEaWN0UmVmZXJlbmNlKHN0cmVhbS0+ZGljdCk7CisgICAgfQorCisgICAgaSA9IDA7ICAgICAgICAKKyAgICBpZiAoY29tcC0+ZmxhZ3MgJiBQQVRfRlJPTV9ST09UKQorCXN0cmVhbS0+ZmxhZ3MgfD0gWE1MX1NUUkVBTV9GUk9NX1JPT1Q7CisKKyAgICBmb3IgKDtpIDwgY29tcC0+bmJTdGVwO2krKykgeworCXN0ZXAgPSBjb21wLT5zdGVwc1tpXTsKKyAgICAgICAgc3dpdGNoIChzdGVwLm9wKSB7CisJICAgIGNhc2UgWE1MX09QX0VORDoKKwkgICAgICAgIGJyZWFrOworCSAgICBjYXNlIFhNTF9PUF9ST09UOgorCSAgICAgICAgaWYgKGkgIT0gMCkKKwkJICAgIGdvdG8gZXJyb3I7CisJCXJvb3QgPSAxOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfT1BfTlM6CisJCXMgPSB4bWxTdHJlYW1Db21wQWRkU3RlcChzdHJlYW0sIE5VTEwsIHN0ZXAudmFsdWUsCisJCSAgICBYTUxfRUxFTUVOVF9OT0RFLCBmbGFncyk7CQkKKwkJaWYgKHMgPCAwKQorCQkgICAgZ290byBlcnJvcjsKKwkJcHJldnMgPSBzOworCQlmbGFncyA9IDA7CQkKKwkJYnJlYWs7CSAgICAKKwkgICAgY2FzZSBYTUxfT1BfQVRUUjoKKwkJZmxhZ3MgfD0gWE1MX1NUUkVBTV9TVEVQX0FUVFI7CisJCXByZXZzID0gLTE7CisJCXMgPSB4bWxTdHJlYW1Db21wQWRkU3RlcChzdHJlYW0sCisJCSAgICBzdGVwLnZhbHVlLCBzdGVwLnZhbHVlMiwgWE1MX0FUVFJJQlVURV9OT0RFLCBmbGFncyk7CisJCWZsYWdzID0gMDsKKwkJaWYgKHMgPCAwKQorCQkgICAgZ290byBlcnJvcjsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX09QX0VMRU06CQkKKwkgICAgICAgIGlmICgoc3RlcC52YWx1ZSA9PSBOVUxMKSAmJiAoc3RlcC52YWx1ZTIgPT0gTlVMTCkpIHsKKwkJICAgIC8qCisJCSAgICAqIFdlIGhhdmUgYSAiLiIgb3IgInNlbGY6Om5vZGUoKSIgaGVyZS4KKwkJICAgICogRWxpbWluYXRlIHJlZHVuZGFudCBzZWxmOjpub2RlKCkgdGVzdHMgbGlrZSBpbiAiLy4vLiIKKwkJICAgICogb3IgIi8vLi8iCisJCSAgICAqIFRoZSBvbmx5IGNhc2Ugd2Ugd29uJ3QgZWxpbWluYXRlIGlzICIvLy4iLCBpLmUuIGlmCisJCSAgICAqIHNlbGY6Om5vZGUoKSBpcyB0aGUgbGFzdCBub2RlIHRlc3QgYW5kIHdlIGhhZAorCQkgICAgKiBjb250aW51YXRpb24gc29tZXdoZXJlIGJlZm9yZWhhbmQuCisJCSAgICAqLworCQkgICAgaWYgKChjb21wLT5uYlN0ZXAgPT0gaSArIDEpICYmCisJCQkoZmxhZ3MgJiBYTUxfU1RSRUFNX1NURVBfREVTQykpIHsKKwkJCS8qCisJCQkqIE1hcmsgdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB0aGUgZXhwcmVzc2lvbiByZXNvbHZlcworCQkJKiB0byBhbnkgdHlwZSBvZiBub2RlLgorCQkJKi8KKwkJCWlmIChjb21wLT5uYlN0ZXAgPT0gaSArIDEpIHsKKwkJCSAgICBzdHJlYW0tPmZsYWdzIHw9IFhNTF9TVFJFQU1fRklOQUxfSVNfQU5ZX05PREU7CisJCQl9CisJCQlmbGFncyB8PSBYTUxfU1RSRUFNX1NURVBfTk9ERTsJCQkKKwkJCXMgPSB4bWxTdHJlYW1Db21wQWRkU3RlcChzdHJlYW0sIE5VTEwsIE5VTEwsCisJCQkgICAgWE1MX1NUUkVBTV9BTllfTk9ERSwgZmxhZ3MpOworCQkJaWYgKHMgPCAwKQorCQkJICAgIGdvdG8gZXJyb3I7CisJCQlmbGFncyA9IDA7CisJCQkvKgorCQkJKiBJZiB0aGVyZSB3YXMgYSBwcmV2aW91cyBzdGVwLCBtYXJrIGl0IHRvIGJlIGFkZGVkIHRvCisJCQkqIHRoZSByZXN1bHQgbm9kZS1zZXQ7IHRoaXMgaXMgbmVlZGVkIHNpbmNlIG9ubHkKKwkJCSogdGhlIGxhc3Qgc3RlcCB3aWxsIGJlIG1hcmtlZCBhcyAiZmluYWwiIGFuZCBvbmx5CisJCQkqICJmaW5hbCIgbm9kZXMgYXJlIGFkZGVkIHRvIHRoZSByZXN1bHRpbmcgc2V0LgorCQkJKi8KKwkJCWlmIChwcmV2cyAhPSAtMSkgeworCQkJICAgIHN0cmVhbS0+c3RlcHNbcHJldnNdLmZsYWdzIHw9IFhNTF9TVFJFQU1fU1RFUF9JTl9TRVQ7CisJCQkgICAgcHJldnMgPSAtMTsKKwkJCX0KKwkJCWJyZWFrOwkKKworCQkgICAgfSBlbHNlIHsKKwkJCS8qIEp1c3Qgc2tpcCB0aGlzIG9uZS4gKi8KKwkJCWNvbnRpbnVlOworCQkgICAgfQorCQl9CisJCS8qIEFuIGVsZW1lbnQgbm9kZS4gKi8JCQorCSAgICAgICAgcyA9IHhtbFN0cmVhbUNvbXBBZGRTdGVwKHN0cmVhbSwgc3RlcC52YWx1ZSwgc3RlcC52YWx1ZTIsCisJCSAgICBYTUxfRUxFTUVOVF9OT0RFLCBmbGFncyk7CQkKKwkJaWYgKHMgPCAwKQorCQkgICAgZ290byBlcnJvcjsKKwkJcHJldnMgPSBzOworCQlmbGFncyA9IDA7CQkKKwkJYnJlYWs7CQkKKwkgICAgY2FzZSBYTUxfT1BfQ0hJTEQ6CisJCS8qIEFuIGVsZW1lbnQgbm9kZSBjaGlsZC4gKi8KKwkgICAgICAgIHMgPSB4bWxTdHJlYW1Db21wQWRkU3RlcChzdHJlYW0sIHN0ZXAudmFsdWUsIHN0ZXAudmFsdWUyLAorCQkgICAgWE1MX0VMRU1FTlRfTk9ERSwgZmxhZ3MpOwkJCisJCWlmIChzIDwgMCkKKwkJICAgIGdvdG8gZXJyb3I7CisJCXByZXZzID0gczsKKwkJZmxhZ3MgPSAwOworCQlicmVhazsJICAgIAorCSAgICBjYXNlIFhNTF9PUF9BTEw6CisJICAgICAgICBzID0geG1sU3RyZWFtQ29tcEFkZFN0ZXAoc3RyZWFtLCBOVUxMLCBOVUxMLAorCQkgICAgWE1MX0VMRU1FTlRfTk9ERSwgZmxhZ3MpOwkJCisJCWlmIChzIDwgMCkKKwkJICAgIGdvdG8gZXJyb3I7CisJCXByZXZzID0gczsKKwkJZmxhZ3MgPSAwOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfT1BfUEFSRU5UOgkKKwkgICAgICAgIGJyZWFrOworCSAgICBjYXNlIFhNTF9PUF9BTkNFU1RPUjoKKwkJLyogU2tpcCByZWR1bmRhbnQgY29udGludWF0aW9ucy4gKi8KKwkJaWYgKGZsYWdzICYgWE1MX1NUUkVBTV9TVEVQX0RFU0MpCisJCSAgICBicmVhazsKKwkgICAgICAgIGZsYWdzIHw9IFhNTF9TVFJFQU1fU1RFUF9ERVNDOworCQkvKgorCQkqIE1hcmsgdGhlIGV4cHJlc3Npb24gYXMgaGF2aW5nICIvLyIuCisJCSovCisJCWlmICgoc3RyZWFtLT5mbGFncyAmIFhNTF9TVFJFQU1fREVTQykgPT0gMCkKKwkJICAgIHN0cmVhbS0+ZmxhZ3MgfD0gWE1MX1NUUkVBTV9ERVNDOworCQlicmVhazsKKwl9CisgICAgfSAgICAKKyAgICBpZiAoKCEgcm9vdCkgJiYgKGNvbXAtPmZsYWdzICYgWE1MX1BBVFRFUk5fTk9UUEFUVEVSTikgPT0gMCkgeworCS8qCisJKiBJZiB0aGlzIHNob3VsZCBiZWhhdmUgbGlrZSBhIHJlYWwgcGF0dGVybiwgd2Ugd2lsbCBtYXJrCisJKiB0aGUgZmlyc3Qgc3RlcCBhcyBoYXZpbmcgIi8vIiwgdG8gYmUgcmVlbnRyYW50IG9uIGV2ZXJ5CisJKiB0cmVlIGxldmVsLgorCSovCisJaWYgKChzdHJlYW0tPmZsYWdzICYgWE1MX1NUUkVBTV9ERVNDKSA9PSAwKQorCSAgICBzdHJlYW0tPmZsYWdzIHw9IFhNTF9TVFJFQU1fREVTQzsKKworCWlmIChzdHJlYW0tPm5iU3RlcCA+IDApIHsKKwkgICAgaWYgKChzdHJlYW0tPnN0ZXBzWzBdLmZsYWdzICYgWE1MX1NUUkVBTV9TVEVQX0RFU0MpID09IDApCisJCXN0cmVhbS0+c3RlcHNbMF0uZmxhZ3MgfD0gWE1MX1NUUkVBTV9TVEVQX0RFU0M7CSAgICAKKwl9CisgICAgfQorICAgIGlmIChzdHJlYW0tPm5iU3RlcCA8PSBzKQorCWdvdG8gZXJyb3I7CisgICAgc3RyZWFtLT5zdGVwc1tzXS5mbGFncyB8PSBYTUxfU1RSRUFNX1NURVBfRklOQUw7CisgICAgaWYgKHJvb3QpCisJc3RyZWFtLT5zdGVwc1swXS5mbGFncyB8PSBYTUxfU1RSRUFNX1NURVBfUk9PVDsKKyNpZmRlZiBERUJVR19TVFJFQU1JTkcKKyAgICB4bWxEZWJ1Z1N0cmVhbUNvbXAoc3RyZWFtKTsKKyNlbmRpZgorICAgIGNvbXAtPnN0cmVhbSA9IHN0cmVhbTsKKyAgICByZXR1cm4oMCk7CitlcnJvcjoKKyAgICB4bWxGcmVlU3RyZWFtQ29tcChzdHJlYW0pOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxOZXdTdHJlYW1DdHh0OgorICogQHNpemU6IHRoZSBudW1iZXIgb2YgZXhwZWN0ZWQgc3RhdGVzCisgKgorICogYnVpbGQgYSBuZXcgc3RyZWFtIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc3RydWN0dXJlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbFN0cmVhbUN0eHRQdHIKK3htbE5ld1N0cmVhbUN0eHQoeG1sU3RyZWFtQ29tcFB0ciBzdHJlYW0pIHsKKyAgICB4bWxTdHJlYW1DdHh0UHRyIGN1cjsKKworICAgIGN1ciA9ICh4bWxTdHJlYW1DdHh0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFN0cmVhbUN0eHQpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwlFUlJPUihOVUxMLCBOVUxMLCBOVUxMLAorCQkieG1sTmV3U3RyZWFtQ3R4dDogbWFsbG9jIGZhaWxlZFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sU3RyZWFtQ3R4dCkpOworICAgIGN1ci0+c3RhdGVzID0gKGludCAqKSB4bWxNYWxsb2MoNCAqIDIgKiBzaXplb2YoaW50KSk7CisgICAgaWYgKGN1ci0+c3RhdGVzID09IE5VTEwpIHsKKwl4bWxGcmVlKGN1cik7CisJRVJST1IoTlVMTCwgTlVMTCwgTlVMTCwKKwkgICAgICAieG1sTmV3U3RyZWFtQ3R4dDogbWFsbG9jIGZhaWxlZFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBjdXItPm5iU3RhdGUgPSAwOworICAgIGN1ci0+bWF4U3RhdGUgPSA0OworICAgIGN1ci0+bGV2ZWwgPSAwOworICAgIGN1ci0+Y29tcCA9IHN0cmVhbTsKKyAgICBjdXItPmJsb2NrTGV2ZWwgPSAtMTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxGcmVlU3RyZWFtQ3R4dDoKKyAqIEBzdHJlYW06IHRoZSBzdHJlYW0gY29udGV4dAorICoKKyAqIEZyZWUgdGhlIHN0cmVhbSBjb250ZXh0CisgKi8KK3ZvaWQKK3htbEZyZWVTdHJlYW1DdHh0KHhtbFN0cmVhbUN0eHRQdHIgc3RyZWFtKSB7CisgICAgeG1sU3RyZWFtQ3R4dFB0ciBuZXh0OworCisgICAgd2hpbGUgKHN0cmVhbSAhPSBOVUxMKSB7CisgICAgICAgIG5leHQgPSBzdHJlYW0tPm5leHQ7CisgICAgICAgIGlmIChzdHJlYW0tPnN0YXRlcyAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHN0cmVhbS0+c3RhdGVzKTsKKyAgICAgICAgeG1sRnJlZShzdHJlYW0pOworCXN0cmVhbSA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFN0cmVhbUN0eHRBZGRTdGF0ZToKKyAqIEBjb21wOiB0aGUgc3RyZWFtIGNvbnRleHQKKyAqIEBpZHg6IHRoZSBzdGVwIGluZGV4IGZvciB0aGF0IHN0cmVhbWluZyBzdGF0ZQorICoKKyAqIEFkZCBhIG5ldyBzdGF0ZSB0byB0aGUgc3RyZWFtIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3IgdGhlIHN0YXRlIGluZGV4IGlmIHN1Y2Nlc3NmdWwKKyAqLworc3RhdGljIGludAoreG1sU3RyZWFtQ3R4dEFkZFN0YXRlKHhtbFN0cmVhbUN0eHRQdHIgY29tcCwgaW50IGlkeCwgaW50IGxldmVsKSB7CisgICAgaW50IGk7CisgICAgZm9yIChpID0gMDtpIDwgY29tcC0+bmJTdGF0ZTtpKyspIHsKKyAgICAgICAgaWYgKGNvbXAtPnN0YXRlc1syICogaV0gPCAwKSB7CisJICAgIGNvbXAtPnN0YXRlc1syICogaV0gPSBpZHg7CisJICAgIGNvbXAtPnN0YXRlc1syICogaSArIDFdID0gbGV2ZWw7CisJICAgIHJldHVybihpKTsKKwl9CisgICAgfQorICAgIGlmIChjb21wLT5uYlN0YXRlID49IGNvbXAtPm1heFN0YXRlKSB7CisgICAgICAgIGludCAqY3VyOworCisJY3VyID0gKGludCAqKSB4bWxSZWFsbG9jKGNvbXAtPnN0YXRlcywKKwkJCQkgY29tcC0+bWF4U3RhdGUgKiA0ICogc2l6ZW9mKGludCkpOworCWlmIChjdXIgPT0gTlVMTCkgeworCSAgICBFUlJPUihOVUxMLCBOVUxMLCBOVUxMLAorCQkgICJ4bWxOZXdTdHJlYW1DdHh0OiBtYWxsb2MgZmFpbGVkXG4iKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY29tcC0+c3RhdGVzID0gY3VyOworICAgICAgICBjb21wLT5tYXhTdGF0ZSAqPSAyOworICAgIH0KKyAgICBjb21wLT5zdGF0ZXNbMiAqIGNvbXAtPm5iU3RhdGVdID0gaWR4OworICAgIGNvbXAtPnN0YXRlc1syICogY29tcC0+bmJTdGF0ZSsrICsgMV0gPSBsZXZlbDsKKyAgICByZXR1cm4oY29tcC0+bmJTdGF0ZSAtIDEpOworfQorCisvKioKKyAqIHhtbFN0cmVhbVB1c2hJbnRlcm5hbDoKKyAqIEBzdHJlYW06IHRoZSBzdHJlYW0gY29udGV4dAorICogQG5hbWU6IHRoZSBjdXJyZW50IG5hbWUKKyAqIEBuczogdGhlIG5hbWVzcGFjZSBuYW1lCisgKiBAbm9kZVR5cGU6IHRoZSB0eXBlIG9mIHRoZSBub2RlCisgKgorICogUHVzaCBuZXcgZGF0YSBvbnRvIHRoZSBzdHJlYW0uIE5PVEU6IGlmIHRoZSBjYWxsIHhtbFBhdHRlcm5jb21waWxlKCkKKyAqIGluZGljYXRlZCBhIGRpY3Rpb25hcnksIHRoZW4gc3RyaW5ncyBmb3IgbmFtZSBhbmQgbnMgd2lsbCBiZSBleHBlY3RlZAorICogdG8gY29tZSBmcm9tIHRoZSBkaWN0aW9uYXJ5LgorICogQm90aCBAbmFtZSBhbmQgQG5zIGJlaW5nIE5VTEwgbWVhbnMgdGhlIC8gaS5lLiB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnQuCisgKiBUaGlzIGNhbiBhbHNvIGFjdCBhcyBhIHJlc2V0LgorICoKKyAqIFJldHVybnM6IC0xIGluIGNhc2Ugb2YgZXJyb3IsIDEgaWYgdGhlIGN1cnJlbnQgc3RhdGUgaW4gdGhlIHN0cmVhbSBpcyBhCisgKiAgICBtYXRjaCBhbmQgMCBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFN0cmVhbVB1c2hJbnRlcm5hbCh4bWxTdHJlYW1DdHh0UHRyIHN0cmVhbSwKKwkJICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqbnMsCisJCSAgICAgIGludCBub2RlVHlwZSkgeworICAgIGludCByZXQgPSAwLCBlcnIgPSAwLCBmaW5hbCA9IDAsIHRtcCwgaSwgbSwgbWF0Y2gsIHN0ZXBOciwgZGVzYzsKKyAgICB4bWxTdHJlYW1Db21wUHRyIGNvbXA7CisgICAgeG1sU3RyZWFtU3RlcCBzdGVwOworI2lmZGVmIERFQlVHX1NUUkVBTUlORworICAgIHhtbFN0cmVhbUN0eHRQdHIgb3JpZyA9IHN0cmVhbTsKKyNlbmRpZgorCisgICAgaWYgKChzdHJlYW0gPT0gTlVMTCkgfHwgKHN0cmVhbS0+bmJTdGF0ZSA8IDApKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgd2hpbGUgKHN0cmVhbSAhPSBOVUxMKSB7CisJY29tcCA9IHN0cmVhbS0+Y29tcDsKKworCWlmICgobm9kZVR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkgICAgKG5hbWUgPT0gTlVMTCkgJiYgKG5zID09IE5VTEwpKSB7CisJICAgIC8qIFdlIGhhdmUgYSBkb2N1bWVudCBub2RlIGhlcmUgKG9yIGEgcmVzZXQpLiAqLworCSAgICBzdHJlYW0tPm5iU3RhdGUgPSAwOworCSAgICBzdHJlYW0tPmxldmVsID0gMDsKKwkgICAgc3RyZWFtLT5ibG9ja0xldmVsID0gLTE7CisJICAgIGlmIChjb21wLT5mbGFncyAmIFhNTF9TVFJFQU1fRlJPTV9ST09UKSB7CisJCWlmIChjb21wLT5uYlN0ZXAgPT0gMCkgeworCQkgICAgLyogVE9ETzogV2UgaGF2ZSBhICIvLiIgaGVyZT8gKi8KKwkJICAgIHJldCA9IDE7CisJCX0gZWxzZSB7CisJCSAgICBpZiAoKGNvbXAtPm5iU3RlcCA9PSAxKSAmJgorCQkJKGNvbXAtPnN0ZXBzWzBdLm5vZGVUeXBlID09IFhNTF9TVFJFQU1fQU5ZX05PREUpICYmCisJCQkoY29tcC0+c3RlcHNbMF0uZmxhZ3MgJiBYTUxfU1RSRUFNX1NURVBfREVTQykpCisJCSAgICB7CisJCQkvKgorCQkJKiBJbiB0aGUgY2FzZSBvZiAiLy8uIiB0aGUgZG9jdW1lbnQgbm9kZSB3aWxsIG1hdGNoCisJCQkqIGFzIHdlbGwuCisJCQkqLworCQkJcmV0ID0gMTsKKwkJICAgIH0gZWxzZSBpZiAoY29tcC0+c3RlcHNbMF0uZmxhZ3MgJiBYTUxfU1RSRUFNX1NURVBfUk9PVCkgeworCQkJLyogVE9ETzogRG8gd2UgbmVlZCB0aGlzID8gKi8KKwkJCXRtcCA9IHhtbFN0cmVhbUN0eHRBZGRTdGF0ZShzdHJlYW0sIDAsIDApOworCQkJaWYgKHRtcCA8IDApCisJCQkgICAgZXJyKys7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBzdHJlYW0gPSBzdHJlYW0tPm5leHQ7CisJICAgIGNvbnRpbnVlOyAvKiB3aGlsZSAqLworCX0KKworCS8qCisJKiBGYXN0IGNoZWNrIGZvciAiLiIuCisJKi8KKwlpZiAoY29tcC0+bmJTdGVwID09IDApIHsKKwkgICAgLyoKKwkgICAgICogLyBhbmQgLiBhcmUgaGFuZGxlZCBhdCB0aGUgWFBhdGggbm9kZSBzZXQgY3JlYXRpb24KKwkgICAgICogbGV2ZWwgYnkgY2hlY2tpbmcgbWluIGRlcHRoCisJICAgICAqLworCSAgICBpZiAoc3RyZWFtLT5mbGFncyAmIFhNTF9QQVRURVJOX1hQQVRIKSB7CisJCXN0cmVhbSA9IHN0cmVhbS0+bmV4dDsKKwkJY29udGludWU7IC8qIHdoaWxlICovCisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBGb3Igbm9uLXBhdHRlcm4gbGlrZSBldmFsdWF0aW9uIGxpa2UgWE1MIFNjaGVtYSBJRENzCisJICAgICogb3IgdHJhZGl0aW9uYWwgWFBhdGggZXhwcmVzc2lvbnMsIHRoaXMgd2lsbCBtYXRjaCBpZgorCSAgICAqIHdlIGFyZSBhdCB0aGUgZmlyc3QgbGV2ZWwgb25seSwgb3RoZXJ3aXNlIG9uIGV2ZXJ5IGxldmVsLgorCSAgICAqLworCSAgICBpZiAoKG5vZGVUeXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkgJiYKKwkJKCgoc3RyZWFtLT5mbGFncyAmIFhNTF9QQVRURVJOX05PVFBBVFRFUk4pID09IDApIHx8CisJCShzdHJlYW0tPmxldmVsID09IDApKSkgeworCQkgICAgcmV0ID0gMTsJCQorCSAgICB9CisJICAgIHN0cmVhbS0+bGV2ZWwrKzsKKwkgICAgZ290byBzdHJlYW1fbmV4dDsKKwl9CisJaWYgKHN0cmVhbS0+YmxvY2tMZXZlbCAhPSAtMSkgeworCSAgICAvKgorCSAgICAqIFNraXAgYmxvY2tlZCBleHByZXNzaW9ucy4KKwkgICAgKi8KKyAgICAJICAgIHN0cmVhbS0+bGV2ZWwrKzsKKwkgICAgZ290byBzdHJlYW1fbmV4dDsKKwl9CisKKwlpZiAoKG5vZGVUeXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisJICAgIChub2RlVHlwZSAhPSBYTUxfQVRUUklCVVRFX05PREUpICYmCisJICAgICgoY29tcC0+ZmxhZ3MgJiBYTUxfU1RSRUFNX0ZJTkFMX0lTX0FOWV9OT0RFKSA9PSAwKSkgeworCSAgICAvKgorCSAgICAqIE5vIG5lZWQgdG8gcHJvY2VzcyBub2RlcyBvZiBvdGhlciB0eXBlcyBpZiB3ZSBkb24ndAorCSAgICAqIHJlc29sdmUgdG8gdGhvc2UgdHlwZXMuCisJICAgICogVE9ETzogRG8gd2UgbmVlZCB0byBibG9jayB0aGUgY29udGV4dCBoZXJlPworCSAgICAqLworCSAgICBzdHJlYW0tPmxldmVsKys7CisJICAgIGdvdG8gc3RyZWFtX25leHQ7CisJfQorCisJLyoKKwkgKiBDaGVjayBldm9sdXRpb24gb2YgZXhpc3Rpbmcgc3RhdGVzCisJICovCisJaSA9IDA7CisJbSA9IHN0cmVhbS0+bmJTdGF0ZTsKKwl3aGlsZSAoaSA8IG0pIHsKKwkgICAgaWYgKChjb21wLT5mbGFncyAmIFhNTF9TVFJFQU1fREVTQykgPT0gMCkgeworCQkvKgorCQkqIElmIHRoZXJlIGlzIG5vICIvLyIsIHRoZW4gb25seSB0aGUgbGFzdAorCQkqIGFkZGVkIHN0YXRlIGlzIG9mIGludGVyZXN0LgorCQkqLworCQlzdGVwTnIgPSBzdHJlYW0tPnN0YXRlc1syICogKHN0cmVhbS0+bmJTdGF0ZSAtMSldOworCQkvKgorCQkqIFRPRE86IFNlY3VyaXR5IGNoZWNrLCBzaG91bGQgbm90IGhhcHBlbiwgcmVtb3ZlIGl0LgorCQkqLworCQlpZiAoc3RyZWFtLT5zdGF0ZXNbKDIgKiAoc3RyZWFtLT5uYlN0YXRlIC0xKSkgKyAxXSA8CisJCSAgICBzdHJlYW0tPmxldmVsKSB7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCQlkZXNjID0gMDsKKwkJLyogbG9vcC1zdG9wcGVyICovCisJCWkgPSBtOworCSAgICB9IGVsc2UgeworCQkvKgorCQkqIElmIHRoZXJlIGFyZSAiLy8iLCB0aGVuIHdlIG5lZWQgdG8gcHJvY2VzcyBldmVyeSAiLy8iCisJCSogb2NjdXJpbmcgaW4gdGhlIHN0YXRlcywgcGx1cyBhbnkgb3RoZXIgc3RhdGUgZm9yIHRoaXMKKwkJKiBsZXZlbC4KKwkJKi8JCQorCQlzdGVwTnIgPSBzdHJlYW0tPnN0YXRlc1syICogaV07CisKKwkJLyogVE9ETzogc2hvdWxkIG5vdCBoYXBwZW4gYW55bW9yZTogZGVhZCBzdGF0ZXMgKi8KKwkJaWYgKHN0ZXBOciA8IDApCisJCSAgICBnb3RvIG5leHRfc3RhdGU7CisKKwkJdG1wID0gc3RyZWFtLT5zdGF0ZXNbKDIgKiBpKSArIDFdOworCisJCS8qIHNraXAgbmV3IHN0YXRlcyBqdXN0IGFkZGVkICovCisJCWlmICh0bXAgPiBzdHJlYW0tPmxldmVsKQorCQkgICAgZ290byBuZXh0X3N0YXRlOworCisJCS8qIHNraXAgc3RhdGVzIGF0IGFuY2VzdG9yIGxldmVscywgZXhjZXB0IGlmICIvLyIgKi8KKwkJZGVzYyA9IGNvbXAtPnN0ZXBzW3N0ZXBOcl0uZmxhZ3MgJiBYTUxfU1RSRUFNX1NURVBfREVTQzsKKwkJaWYgKCh0bXAgPCBzdHJlYW0tPmxldmVsKSAmJiAoIWRlc2MpKQorCQkgICAgZ290byBuZXh0X3N0YXRlOworCSAgICB9CisJICAgIC8qIAorCSAgICAqIENoZWNrIGZvciBjb3JyZWN0IG5vZGUtdHlwZS4KKwkgICAgKi8KKwkgICAgc3RlcCA9IGNvbXAtPnN0ZXBzW3N0ZXBOcl07CisJICAgIGlmIChzdGVwLm5vZGVUeXBlICE9IG5vZGVUeXBlKSB7CisJCWlmIChzdGVwLm5vZGVUeXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCQkgICAgLyoKKwkJICAgICogQmxvY2sgdGhpcyBleHByZXNzaW9uIGZvciBkZWVwZXIgZXZhbHVhdGlvbi4KKwkJICAgICovCisJCSAgICBpZiAoKGNvbXAtPmZsYWdzICYgWE1MX1NUUkVBTV9ERVNDKSA9PSAwKQorCQkJc3RyZWFtLT5ibG9ja0xldmVsID0gc3RyZWFtLT5sZXZlbCArMTsKKwkJICAgIGdvdG8gbmV4dF9zdGF0ZTsKKwkJfSBlbHNlIGlmIChzdGVwLm5vZGVUeXBlICE9IFhNTF9TVFJFQU1fQU5ZX05PREUpCisJCSAgICBnb3RvIG5leHRfc3RhdGU7CisJICAgIH0JICAgIAorCSAgICAvKgorCSAgICAqIENvbXBhcmUgbG9jYWwvbmFtZXNwYWNlLW5hbWUuCisJICAgICovCisJICAgIG1hdGNoID0gMDsKKwkgICAgaWYgKHN0ZXAubm9kZVR5cGUgPT0gWE1MX1NUUkVBTV9BTllfTk9ERSkgeworCQltYXRjaCA9IDE7CisJICAgIH0gZWxzZSBpZiAoc3RlcC5uYW1lID09IE5VTEwpIHsKKwkJaWYgKHN0ZXAubnMgPT0gTlVMTCkgeworCQkgICAgLyoKKwkJICAgICogVGhpcyBsZXRzIHRocm91Z2ggYWxsIGVsZW1lbnRzL2F0dHJpYnV0ZXMuCisJCSAgICAqLworCQkgICAgbWF0Y2ggPSAxOworCQl9IGVsc2UgaWYgKG5zICE9IE5VTEwpCisJCSAgICBtYXRjaCA9IHhtbFN0ckVxdWFsKHN0ZXAubnMsIG5zKTsKKwkgICAgfSBlbHNlIGlmICgoKHN0ZXAubnMgIT0gTlVMTCkgPT0gKG5zICE9IE5VTEwpKSAmJgorCQkobmFtZSAhPSBOVUxMKSAmJgorCQkoc3RlcC5uYW1lWzBdID09IG5hbWVbMF0pICYmCisJCXhtbFN0ckVxdWFsKHN0ZXAubmFtZSwgbmFtZSkgJiYKKwkJKChzdGVwLm5zID09IG5zKSB8fCB4bWxTdHJFcXVhbChzdGVwLm5zLCBucykpKQorCSAgICB7CisJCW1hdGNoID0gMTsJICAgIAorCSAgICB9CSAKKyNpZiAwIAorLyoKKyogVE9ETzogUG9pbnRlciBjb21wYXJpc29uIHdvbid0IHdvcmssIHNpbmNlIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhlIGdpdmVuCisqICB2YWx1ZXMgYXJlIGluIHRoZSBzYW1lIGRpY3Q7IGVzcGVjaWFsbHkgaWYgaXQncyB0aGUgbmFtZXNwYWNlIG5hbWUsCisqICBub3JtYWxseSBjb21pbmcgZnJvbSBucy0+aHJlZi4gV2UgbmVlZCBhIG5hbWVzcGFjZSBkaWN0IG1lY2hhbmlzbSAhCisqLworCSAgICB9IGVsc2UgaWYgKGNvbXAtPmRpY3QpIHsKKwkJaWYgKHN0ZXAubmFtZSA9PSBOVUxMKSB7CisJCSAgICBpZiAoc3RlcC5ucyA9PSBOVUxMKQorCQkJbWF0Y2ggPSAxOworCQkgICAgZWxzZQorCQkJbWF0Y2ggPSAoc3RlcC5ucyA9PSBucyk7CisJCX0gZWxzZSB7CisJCSAgICBtYXRjaCA9ICgoc3RlcC5uYW1lID09IG5hbWUpICYmIChzdGVwLm5zID09IG5zKSk7CisJCX0KKyNlbmRpZiAvKiBpZiAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8JICAgIAorCSAgICBpZiAobWF0Y2gpIHsJCQorCQlmaW5hbCA9IHN0ZXAuZmxhZ3MgJiBYTUxfU1RSRUFNX1NURVBfRklOQUw7CisJCWlmIChkZXNjKSB7CisJCSAgICBpZiAoZmluYWwpIHsKKwkJCXJldCA9IDE7CisJCSAgICB9IGVsc2UgeworCQkJLyogZGVzY2VuZGluZyBtYXRjaCBjcmVhdGUgYSBuZXcgc3RhdGUgKi8KKwkJCXhtbFN0cmVhbUN0eHRBZGRTdGF0ZShzdHJlYW0sIHN0ZXBOciArIDEsCisJCQkgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5sZXZlbCArIDEpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgaWYgKGZpbmFsKSB7CisJCQlyZXQgPSAxOworCQkgICAgfSBlbHNlIHsKKwkJCXhtbFN0cmVhbUN0eHRBZGRTdGF0ZShzdHJlYW0sIHN0ZXBOciArIDEsCisJCQkgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5sZXZlbCArIDEpOworCQkgICAgfQorCQl9CisJCWlmICgocmV0ICE9IDEpICYmIChzdGVwLmZsYWdzICYgWE1MX1NUUkVBTV9TVEVQX0lOX1NFVCkpIHsKKwkJICAgIC8qCisJCSAgICAqIENoZWNrIGlmIHdlIGhhdmUgYSBzcGVjaWFsIGNhc2UgbGlrZSAiZm9vL2Jhci8vLiIsIHdoZXJlCisJCSAgICAqICJmb28iIGlzIHNlbGVjdGVkIGFzIHdlbGwuCisJCSAgICAqLworCQkgICAgcmV0ID0gMTsKKwkJfQorCSAgICB9CSAgICAKKwkgICAgaWYgKCgoY29tcC0+ZmxhZ3MgJiBYTUxfU1RSRUFNX0RFU0MpID09IDApICYmCisJCSgoISBtYXRjaCkgfHwgZmluYWwpKSAgeworCQkvKgorCQkqIE1hcmsgdGhpcyBleHByZXNzaW9uIGFzIGJsb2NrZWQgZm9yIGFueSBldmFsdWF0aW9uIGF0CisJCSogZGVlcGVyIGxldmVscy4gTm90ZSB0aGF0IHRoaXMgaW5jbHVkZXMgIi9mb28iCisJCSogZXhwcmVzc2lvbnMgaWYgdGhlICpwYXR0ZXJuKiBiZWhhdmlvdXIgaXMgdXNlZC4KKwkJKi8KKwkJc3RyZWFtLT5ibG9ja0xldmVsID0gc3RyZWFtLT5sZXZlbCArMTsKKwkgICAgfQorbmV4dF9zdGF0ZToKKwkgICAgaSsrOworCX0KKworCXN0cmVhbS0+bGV2ZWwrKzsKKworCS8qCisJKiBSZS9lbnRlciB0aGUgZXhwcmVzc2lvbi4KKwkqIERvbid0IHJlZW50ZXIgaWYgaXQncyBhbiBhYnNvbHV0ZSBleHByZXNzaW9uIGxpa2UgIi9mb28iLAorCSogICBleGNlcHQgIi8vZm9vIi4KKwkqLworCXN0ZXAgPSBjb21wLT5zdGVwc1swXTsKKwlpZiAoc3RlcC5mbGFncyAmIFhNTF9TVFJFQU1fU1RFUF9ST09UKQorCSAgICBnb3RvIHN0cmVhbV9uZXh0OworCisJZGVzYyA9IHN0ZXAuZmxhZ3MgJiBYTUxfU1RSRUFNX1NURVBfREVTQzsKKwlpZiAoc3RyZWFtLT5mbGFncyAmIFhNTF9QQVRURVJOX05PVFBBVFRFUk4pIHsKKwkgICAgLyoKKwkgICAgKiBSZS9lbnRlciB0aGUgZXhwcmVzc2lvbiBpZiBpdCBpcyBhICJkZXNjZW5kYW50IiBvbmUsCisJICAgICogb3IgaWYgd2UgYXJlIGF0IHRoZSAxc3QgbGV2ZWwgb2YgZXZhbHVhdGlvbi4KKwkgICAgKi8KKwkgICAgCisJICAgIGlmIChzdHJlYW0tPmxldmVsID09IDEpIHsKKwkJaWYgKFhNTF9TVFJFQU1fWFNfSURDKHN0cmVhbSkpIHsKKwkJICAgIC8qCisJCSAgICAqIFhTLUlEQzogVGhlIG1pc3NpbmcgInNlbGY6Om5vZGUoKSIgd2lsbCBhbHdheXMKKwkJICAgICogbWF0Y2ggdGhlIGZpcnN0IGdpdmVuIG5vZGUuCisJCSAgICAqLworCQkgICAgZ290byBzdHJlYW1fbmV4dDsKKwkJfSBlbHNlCisJCSAgICBnb3RvIGNvbXBhcmU7CisJICAgIH0JICAgIAorCSAgICAvKgorCSAgICAqIEEgIi8vIiBpcyBhbHdheXMgcmVlbnRyYW50LgorCSAgICAqLworCSAgICBpZiAoZGVzYykKKwkJZ290byBjb21wYXJlOworCisJICAgIC8qCisJICAgICogWFMtSURDOiBQcm9jZXNzIHRoZSAybmQgbGV2ZWwsIHNpbmNlIHRoZSBtaXNzaW5nCisJICAgICogInNlbGY6Om5vZGUoKSIgaXMgcmVzcG9uc2libGUgZm9yIHRoZSAybmQgbGV2ZWwgYmVpbmcKKwkgICAgKiB0aGUgcmVhbCBzdGFydCBsZXZlbC4JICAgIAorCSAgICAqLwkgICAgCisJICAgIGlmICgoc3RyZWFtLT5sZXZlbCA9PSAyKSAmJiBYTUxfU1RSRUFNX1hTX0lEQyhzdHJlYW0pKQorCQlnb3RvIGNvbXBhcmU7CisKKwkgICAgZ290byBzdHJlYW1fbmV4dDsKKwl9CisJCitjb21wYXJlOgorCS8qCisJKiBDaGVjayBleHBlY3RlZCBub2RlLXR5cGUuCisJKi8KKwlpZiAoc3RlcC5ub2RlVHlwZSAhPSBub2RlVHlwZSkgeworCSAgICBpZiAobm9kZVR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKQorCQlnb3RvIHN0cmVhbV9uZXh0OworCSAgICBlbHNlIGlmIChzdGVwLm5vZGVUeXBlICE9IFhNTF9TVFJFQU1fQU5ZX05PREUpCisJCWdvdG8gc3RyZWFtX25leHQ7CSAgICAgCisJfQorCS8qCisJKiBDb21wYXJlIGxvY2FsL25hbWVzcGFjZS1uYW1lLgorCSovCisJbWF0Y2ggPSAwOworCWlmIChzdGVwLm5vZGVUeXBlID09IFhNTF9TVFJFQU1fQU5ZX05PREUpIHsKKwkgICAgbWF0Y2ggPSAxOworCX0gZWxzZSBpZiAoc3RlcC5uYW1lID09IE5VTEwpIHsKKwkgICAgaWYgKHN0ZXAubnMgPT0gTlVMTCkgeworCQkvKgorCQkqIFRoaXMgbGV0cyB0aHJvdWdoIGFsbCBlbGVtZW50cy9hdHRyaWJ1dGVzLgorCQkqLworCQltYXRjaCA9IDE7CisJICAgIH0gZWxzZSBpZiAobnMgIT0gTlVMTCkKKwkJbWF0Y2ggPSB4bWxTdHJFcXVhbChzdGVwLm5zLCBucyk7CisJfSBlbHNlIGlmICgoKHN0ZXAubnMgIT0gTlVMTCkgPT0gKG5zICE9IE5VTEwpKSAmJgorCSAgICAobmFtZSAhPSBOVUxMKSAmJgorCSAgICAoc3RlcC5uYW1lWzBdID09IG5hbWVbMF0pICYmCisJICAgIHhtbFN0ckVxdWFsKHN0ZXAubmFtZSwgbmFtZSkgJiYKKwkgICAgKChzdGVwLm5zID09IG5zKSB8fCB4bWxTdHJFcXVhbChzdGVwLm5zLCBucykpKQorCXsKKwkgICAgbWF0Y2ggPSAxOwkgICAgCisJfQkgICAgCisJZmluYWwgPSBzdGVwLmZsYWdzICYgWE1MX1NUUkVBTV9TVEVQX0ZJTkFMOworCWlmIChtYXRjaCkgewkgICAgCisJICAgIGlmIChmaW5hbCkKKwkJcmV0ID0gMTsKKwkgICAgZWxzZQorCQl4bWxTdHJlYW1DdHh0QWRkU3RhdGUoc3RyZWFtLCAxLCBzdHJlYW0tPmxldmVsKTsKKwkgICAgaWYgKChyZXQgIT0gMSkgJiYgKHN0ZXAuZmxhZ3MgJiBYTUxfU1RSRUFNX1NURVBfSU5fU0VUKSkgeworCQkvKgorCQkqIENoZWNrIGlmIHdlIGhhdmUgYSBzcGVjaWFsIGNhc2UgbGlrZSAiZm9vLy8uIiwgd2hlcmUKKwkJKiAiZm9vIiBpcyBzZWxlY3RlZCBhcyB3ZWxsLgorCQkqLworCQlyZXQgPSAxOworCSAgICB9CisJfQorCWlmICgoKGNvbXAtPmZsYWdzICYgWE1MX1NUUkVBTV9ERVNDKSA9PSAwKSAmJgorCSAgICAoKCEgbWF0Y2gpIHx8IGZpbmFsKSkgIHsKKwkgICAgLyoKKwkgICAgKiBNYXJrIHRoaXMgZXhwcmVzc2lvbiBhcyBibG9ja2VkIGZvciBhbnkgZXZhbHVhdGlvbiBhdAorCSAgICAqIGRlZXBlciBsZXZlbHMuCisJICAgICovCisJICAgIHN0cmVhbS0+YmxvY2tMZXZlbCA9IHN0cmVhbS0+bGV2ZWw7CisJfQorCitzdHJlYW1fbmV4dDoKKyAgICAgICAgc3RyZWFtID0gc3RyZWFtLT5uZXh0OworICAgIH0gLyogd2hpbGUgc3RyZWFtICE9IE5VTEwgKi8KKyAKKyAgICBpZiAoZXJyID4gMCkKKyAgICAgICAgcmV0ID0gLTE7CisjaWZkZWYgREVCVUdfU1RSRUFNSU5HCisgICAgeG1sRGVidWdTdHJlYW1DdHh0KG9yaWcsIHJldCk7CisjZW5kaWYKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTdHJlYW1QdXNoOgorICogQHN0cmVhbTogdGhlIHN0cmVhbSBjb250ZXh0CisgKiBAbmFtZTogdGhlIGN1cnJlbnQgbmFtZQorICogQG5zOiB0aGUgbmFtZXNwYWNlIG5hbWUKKyAqCisgKiBQdXNoIG5ldyBkYXRhIG9udG8gdGhlIHN0cmVhbS4gTk9URTogaWYgdGhlIGNhbGwgeG1sUGF0dGVybmNvbXBpbGUoKQorICogaW5kaWNhdGVkIGEgZGljdGlvbmFyeSwgdGhlbiBzdHJpbmdzIGZvciBuYW1lIGFuZCBucyB3aWxsIGJlIGV4cGVjdGVkCisgKiB0byBjb21lIGZyb20gdGhlIGRpY3Rpb25hcnkuCisgKiBCb3RoIEBuYW1lIGFuZCBAbnMgYmVpbmcgTlVMTCBtZWFucyB0aGUgLyBpLmUuIHRoZSByb290IG9mIHRoZSBkb2N1bWVudC4KKyAqIFRoaXMgY2FuIGFsc28gYWN0IGFzIGEgcmVzZXQuCisgKiBPdGhlcndpc2UgdGhlIGZ1bmN0aW9uIHdpbGwgYWN0IGFzIGlmIGl0IGhhcyBiZWVuIGdpdmVuIGFuIGVsZW1lbnQtbm9kZS4KKyAqCisgKiBSZXR1cm5zOiAtMSBpbiBjYXNlIG9mIGVycm9yLCAxIGlmIHRoZSBjdXJyZW50IHN0YXRlIGluIHRoZSBzdHJlYW0gaXMgYQorICogICAgbWF0Y2ggYW5kIDAgb3RoZXJ3aXNlLgorICovCitpbnQKK3htbFN0cmVhbVB1c2goeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW0sCisgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKm5zKSB7CisgICAgcmV0dXJuICh4bWxTdHJlYW1QdXNoSW50ZXJuYWwoc3RyZWFtLCBuYW1lLCBucywgKGludCkgWE1MX0VMRU1FTlRfTk9ERSkpOworfQorCisvKioKKyAqIHhtbFN0cmVhbVB1c2hOb2RlOgorICogQHN0cmVhbTogdGhlIHN0cmVhbSBjb250ZXh0CisgKiBAbmFtZTogdGhlIGN1cnJlbnQgbmFtZQorICogQG5zOiB0aGUgbmFtZXNwYWNlIG5hbWUKKyAqIEBub2RlVHlwZTogdGhlIHR5cGUgb2YgdGhlIG5vZGUgYmVpbmcgcHVzaGVkCisgKgorICogUHVzaCBuZXcgZGF0YSBvbnRvIHRoZSBzdHJlYW0uIE5PVEU6IGlmIHRoZSBjYWxsIHhtbFBhdHRlcm5jb21waWxlKCkKKyAqIGluZGljYXRlZCBhIGRpY3Rpb25hcnksIHRoZW4gc3RyaW5ncyBmb3IgbmFtZSBhbmQgbnMgd2lsbCBiZSBleHBlY3RlZAorICogdG8gY29tZSBmcm9tIHRoZSBkaWN0aW9uYXJ5LgorICogQm90aCBAbmFtZSBhbmQgQG5zIGJlaW5nIE5VTEwgbWVhbnMgdGhlIC8gaS5lLiB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnQuCisgKiBUaGlzIGNhbiBhbHNvIGFjdCBhcyBhIHJlc2V0LgorICogRGlmZmVyZW50IGZyb20geG1sU3RyZWFtUHVzaCgpIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGZlZCB3aXRoIG5vZGVzIG9mIHR5cGU6CisgKiBlbGVtZW50LSwgYXR0cmlidXRlLSwgdGV4dC0sIGNkYXRhLXNlY3Rpb24tLCBjb21tZW50LSBhbmQKKyAqIHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tbm9kZS4KKyAqCisgKiBSZXR1cm5zOiAtMSBpbiBjYXNlIG9mIGVycm9yLCAxIGlmIHRoZSBjdXJyZW50IHN0YXRlIGluIHRoZSBzdHJlYW0gaXMgYQorICogICAgbWF0Y2ggYW5kIDAgb3RoZXJ3aXNlLgorICovCitpbnQKK3htbFN0cmVhbVB1c2hOb2RlKHhtbFN0cmVhbUN0eHRQdHIgc3RyZWFtLAorCQkgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKm5zLAorCQkgIGludCBub2RlVHlwZSkKK3sKKyAgICByZXR1cm4gKHhtbFN0cmVhbVB1c2hJbnRlcm5hbChzdHJlYW0sIG5hbWUsIG5zLAorCW5vZGVUeXBlKSk7Cit9CisKKy8qKgorKiB4bWxTdHJlYW1QdXNoQXR0cjoKKyogQHN0cmVhbTogdGhlIHN0cmVhbSBjb250ZXh0CisqIEBuYW1lOiB0aGUgY3VycmVudCBuYW1lCisqIEBuczogdGhlIG5hbWVzcGFjZSBuYW1lCisqCisqIFB1c2ggbmV3IGF0dHJpYnV0ZSBkYXRhIG9udG8gdGhlIHN0cmVhbS4gTk9URTogaWYgdGhlIGNhbGwgeG1sUGF0dGVybmNvbXBpbGUoKQorKiBpbmRpY2F0ZWQgYSBkaWN0aW9uYXJ5LCB0aGVuIHN0cmluZ3MgZm9yIG5hbWUgYW5kIG5zIHdpbGwgYmUgZXhwZWN0ZWQKKyogdG8gY29tZSBmcm9tIHRoZSBkaWN0aW9uYXJ5LgorKiBCb3RoIEBuYW1lIGFuZCBAbnMgYmVpbmcgTlVMTCBtZWFucyB0aGUgLyBpLmUuIHRoZSByb290IG9mIHRoZSBkb2N1bWVudC4KKyogVGhpcyBjYW4gYWxzbyBhY3QgYXMgYSByZXNldC4KKyogT3RoZXJ3aXNlIHRoZSBmdW5jdGlvbiB3aWxsIGFjdCBhcyBpZiBpdCBoYXMgYmVlbiBnaXZlbiBhbiBhdHRyaWJ1dGUtbm9kZS4KKyoKKyogUmV0dXJuczogLTEgaW4gY2FzZSBvZiBlcnJvciwgMSBpZiB0aGUgY3VycmVudCBzdGF0ZSBpbiB0aGUgc3RyZWFtIGlzIGEKKyogICAgbWF0Y2ggYW5kIDAgb3RoZXJ3aXNlLgorKi8KK2ludAoreG1sU3RyZWFtUHVzaEF0dHIoeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW0sCisJCSAgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqbnMpIHsKKyAgICByZXR1cm4gKHhtbFN0cmVhbVB1c2hJbnRlcm5hbChzdHJlYW0sIG5hbWUsIG5zLCAoaW50KSBYTUxfQVRUUklCVVRFX05PREUpKTsKK30KKworLyoqCisgKiB4bWxTdHJlYW1Qb3A6CisgKiBAc3RyZWFtOiB0aGUgc3RyZWFtIGNvbnRleHQKKyAqCisgKiBwdXNoIG9uZSBsZXZlbCBmcm9tIHRoZSBzdHJlYW0uCisgKgorICogUmV0dXJuczogLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBvdGhlcndpc2UuCisgKi8KK2ludAoreG1sU3RyZWFtUG9wKHhtbFN0cmVhbUN0eHRQdHIgc3RyZWFtKSB7CisgICAgaW50IGksIGxldjsKKyAgICAKKyAgICBpZiAoc3RyZWFtID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgd2hpbGUgKHN0cmVhbSAhPSBOVUxMKSB7CisJLyoKKwkqIFJlc2V0IGJsb2NrLWxldmVsLgorCSovCisJaWYgKHN0cmVhbS0+YmxvY2tMZXZlbCA9PSBzdHJlYW0tPmxldmVsKQorCSAgICBzdHJlYW0tPmJsb2NrTGV2ZWwgPSAtMTsKKworCS8qCisJICogIHN0cmVhbS0+bGV2ZWwgY2FuIGJlIHplcm8gd2hlbiBYTUxfRklOQUxfSVNfQU5ZX05PREUgaXMgc2V0CisJICogIChzZWUgdGhlIHRocmVhZCBhdAorCSAqICBodHRwOi8vbWFpbC5nbm9tZS5vcmcvYXJjaGl2ZXMveHNsdC8yMDA4LUp1bHkvbXNnMDAwMjcuaHRtbCkKKwkgKi8KKwlpZiAoc3RyZWFtLT5sZXZlbCkKKwkgICAgc3RyZWFtLT5sZXZlbC0tOworCS8qCisJICogQ2hlY2sgZXZvbHV0aW9uIG9mIGV4aXN0aW5nIHN0YXRlcworCSAqLwkKKwlmb3IgKGkgPSBzdHJlYW0tPm5iU3RhdGUgLTE7IGkgPj0gMDsgaS0tKSB7CisJICAgIC8qIGRpc2NhcmQgb2Jzb2xldGVkIHN0YXRlcyAqLworCSAgICBsZXYgPSBzdHJlYW0tPnN0YXRlc1soMiAqIGkpICsgMV07CisJICAgIGlmIChsZXYgPiBzdHJlYW0tPmxldmVsKQorCQlzdHJlYW0tPm5iU3RhdGUtLTsKKwkgICAgaWYgKGxldiA8PSBzdHJlYW0tPmxldmVsKQorCQlicmVhazsKKwl9CisJc3RyZWFtID0gc3RyZWFtLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sU3RyZWFtV2FudHNBbnlOb2RlOgorICogQHN0cmVhbUN0eHQ6IHRoZSBzdHJlYW0gY29udGV4dAorICoKKyAqIFF1ZXJ5IGlmIHRoZSBzdHJlYW1pbmcgcGF0dGVybiBhZGRpdGlvbmFsbHkgbmVlZHMgdG8gYmUgZmVkIHdpdGgKKyAqIHRleHQtLCBjZGF0YS1zZWN0aW9uLSwgY29tbWVudC0gYW5kIHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tbm9kZXMuCisgKiBJZiB0aGUgcmVzdWx0IGlzIDAgdGhlbiBvbmx5IGVsZW1lbnQtbm9kZXMgYW5kIGF0dHJpYnV0ZS1ub2RlcworICogbmVlZCB0byBiZSBwdXNoZWQuCisgKgorICogUmV0dXJuczogMSBpbiBjYXNlIG9mIG5lZWQgb2Ygbm9kZXMgb2YgdGhlIGFib3ZlIGRlc2NyaWJlZCB0eXBlcywKKyAqICAgICAgICAgIDAgb3RoZXJ3aXNlLiAtMSBvbiBBUEkgZXJyb3JzLgorICovCitpbnQKK3htbFN0cmVhbVdhbnRzQW55Tm9kZSh4bWxTdHJlYW1DdHh0UHRyIHN0cmVhbUN0eHQpCit7ICAgIAorICAgIGlmIChzdHJlYW1DdHh0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICB3aGlsZSAoc3RyZWFtQ3R4dCAhPSBOVUxMKSB7CisJaWYgKHN0cmVhbUN0eHQtPmNvbXAtPmZsYWdzICYgWE1MX1NUUkVBTV9GSU5BTF9JU19BTllfTk9ERSkJCisJICAgIHJldHVybigxKTsKKwlzdHJlYW1DdHh0ID0gc3RyZWFtQ3R4dC0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJVGhlIHB1YmxpYyBpbnRlcmZhY2VzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxQYXR0ZXJuY29tcGlsZToKKyAqIEBwYXR0ZXJuOiB0aGUgcGF0dGVybiB0byBjb21waWxlCisgKiBAZGljdDogYW4gb3B0aW9uYWwgZGljdGlvbmFyeSBmb3IgaW50ZXJuZWQgc3RyaW5ncworICogQGZsYWdzOiBjb21waWxhdGlvbiBmbGFncywgc2VlIHhtbFBhdHRlcm5GbGFncworICogQG5hbWVzcGFjZXM6IHRoZSBwcmVmaXggZGVmaW5pdGlvbnMsIGFycmF5IG9mIFtVUkksIHByZWZpeF0gb3IgTlVMTAorICoKKyAqIENvbXBpbGUgYSBwYXR0ZXJuLgorICoKKyAqIFJldHVybnMgdGhlIGNvbXBpbGVkIGZvcm0gb2YgdGhlIHBhdHRlcm4gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFBhdHRlcm5QdHIKK3htbFBhdHRlcm5jb21waWxlKGNvbnN0IHhtbENoYXIgKnBhdHRlcm4sIHhtbERpY3QgKmRpY3QsIGludCBmbGFncywKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKipuYW1lc3BhY2VzKSB7CisgICAgeG1sUGF0dGVyblB0ciByZXQgPSBOVUxMLCBjdXI7CisgICAgeG1sUGF0UGFyc2VyQ29udGV4dFB0ciBjdHh0ID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICpvciwgKnN0YXJ0OworICAgIHhtbENoYXIgKnRtcCA9IE5VTEw7CisgICAgaW50IHR5cGUgPSAwOworICAgIGludCBzdHJlYW1hYmxlID0gMTsKKworICAgIGlmIChwYXR0ZXJuID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIHN0YXJ0ID0gcGF0dGVybjsKKyAgICBvciA9IHN0YXJ0OworICAgIHdoaWxlICgqb3IgIT0gMCkgeworCXRtcCA9IE5VTEw7CisJd2hpbGUgKCgqb3IgIT0gMCkgJiYgKCpvciAhPSAnfCcpKSBvcisrOworICAgICAgICBpZiAoKm9yID09IDApCisJICAgIGN0eHQgPSB4bWxOZXdQYXRQYXJzZXJDb250ZXh0KHN0YXJ0LCBkaWN0LCBuYW1lc3BhY2VzKTsKKwllbHNlIHsKKwkgICAgdG1wID0geG1sU3RybmR1cChzdGFydCwgb3IgLSBzdGFydCk7CisJICAgIGlmICh0bXAgIT0gTlVMTCkgeworCQljdHh0ID0geG1sTmV3UGF0UGFyc2VyQ29udGV4dCh0bXAsIGRpY3QsIG5hbWVzcGFjZXMpOworCSAgICB9CisJICAgIG9yKys7CisJfQorCWlmIChjdHh0ID09IE5VTEwpIGdvdG8gZXJyb3I7CQorCWN1ciA9IHhtbE5ld1BhdHRlcm4oKTsKKwlpZiAoY3VyID09IE5VTEwpIGdvdG8gZXJyb3I7CisJLyoKKwkqIEFzc2lnbiBzdHJpbmcgZGljdC4KKwkqLworCWlmIChkaWN0KSB7CSAgICAKKwkgICAgY3VyLT5kaWN0ID0gZGljdDsKKwkgICAgeG1sRGljdFJlZmVyZW5jZShkaWN0KTsKKwl9CisJaWYgKHJldCA9PSBOVUxMKQorCSAgICByZXQgPSBjdXI7CisJZWxzZSB7CisJICAgIGN1ci0+bmV4dCA9IHJldC0+bmV4dDsKKwkgICAgcmV0LT5uZXh0ID0gY3VyOworCX0KKwljdXItPmZsYWdzID0gZmxhZ3M7CisJY3R4dC0+Y29tcCA9IGN1cjsKKworCWlmIChYTUxfU1RSRUFNX1hTX0lEQyhjdXIpKQorCSAgICB4bWxDb21waWxlSURDWFBhdGhQYXRoKGN0eHQpOworCWVsc2UKKwkgICAgeG1sQ29tcGlsZVBhdGhQYXR0ZXJuKGN0eHQpOworCWlmIChjdHh0LT5lcnJvciAhPSAwKQorCSAgICBnb3RvIGVycm9yOworCXhtbEZyZWVQYXRQYXJzZXJDb250ZXh0KGN0eHQpOworCWN0eHQgPSBOVUxMOworCisKKyAgICAgICAgaWYgKHN0cmVhbWFibGUpIHsKKwkgICAgaWYgKHR5cGUgPT0gMCkgeworCSAgICAgICAgdHlwZSA9IGN1ci0+ZmxhZ3MgJiAoUEFUX0ZST01fUk9PVCB8IFBBVF9GUk9NX0NVUik7CisJICAgIH0gZWxzZSBpZiAodHlwZSA9PSBQQVRfRlJPTV9ST09UKSB7CisJICAgICAgICBpZiAoY3VyLT5mbGFncyAmIFBBVF9GUk9NX0NVUikKKwkJICAgIHN0cmVhbWFibGUgPSAwOworCSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUEFUX0ZST01fQ1VSKSB7CisJICAgICAgICBpZiAoY3VyLT5mbGFncyAmIFBBVF9GUk9NX1JPT1QpCisJCSAgICBzdHJlYW1hYmxlID0gMDsKKwkgICAgfQorCX0KKwlpZiAoc3RyZWFtYWJsZSkKKwkgICAgeG1sU3RyZWFtQ29tcGlsZShjdXIpOworCWlmICh4bWxSZXZlcnNlUGF0dGVybihjdXIpIDwgMCkKKwkgICAgZ290byBlcnJvcjsKKwlpZiAodG1wICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZSh0bXApOworCSAgICB0bXAgPSBOVUxMOworCX0KKwlzdGFydCA9IG9yOworICAgIH0KKyAgICBpZiAoc3RyZWFtYWJsZSA9PSAwKSB7CisgICAgICAgIGN1ciA9IHJldDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKGN1ci0+c3RyZWFtICE9IE5VTEwpIHsKKwkJeG1sRnJlZVN0cmVhbUNvbXAoY3VyLT5zdHJlYW0pOworCQljdXItPnN0cmVhbSA9IE5VTEw7CisJICAgIH0KKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK2Vycm9yOgorICAgIGlmIChjdHh0ICE9IE5VTEwpIHhtbEZyZWVQYXRQYXJzZXJDb250ZXh0KGN0eHQpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeG1sRnJlZVBhdHRlcm4ocmV0KTsKKyAgICBpZiAodG1wICE9IE5VTEwpIHhtbEZyZWUodG1wKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sUGF0dGVybk1hdGNoOgorICogQGNvbXA6IHRoZSBwcmVjb21waWxlZCBwYXR0ZXJuCisgKiBAbm9kZTogYSBub2RlCisgKgorICogVGVzdCB3aGV0aGVyIHRoZSBub2RlIG1hdGNoZXMgdGhlIHBhdHRlcm4KKyAqCisgKiBSZXR1cm5zIDEgaWYgaXQgbWF0Y2hlcywgMCBpZiBpdCBkb2Vzbid0IGFuZCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworaW50Cit4bWxQYXR0ZXJuTWF0Y2goeG1sUGF0dGVyblB0ciBjb21wLCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoKGNvbXAgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICB3aGlsZSAoY29tcCAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IHhtbFBhdE1hdGNoKGNvbXAsIG5vZGUpOworCWlmIChyZXQgIT0gMCkKKwkgICAgcmV0dXJuKHJldCk7CisJY29tcCA9IGNvbXAtPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFBhdHRlcm5HZXRTdHJlYW1DdHh0OgorICogQGNvbXA6IHRoZSBwcmVjb21waWxlZCBwYXR0ZXJuCisgKgorICogR2V0IGEgc3RyZWFtaW5nIGNvbnRleHQgZm9yIHRoYXQgcGF0dGVybgorICogVXNlIHhtbEZyZWVTdHJlYW1DdHh0IHRvIGZyZWUgdGhlIGNvbnRleHQuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworeG1sU3RyZWFtQ3R4dFB0cgoreG1sUGF0dGVybkdldFN0cmVhbUN0eHQoeG1sUGF0dGVyblB0ciBjb21wKQoreworICAgIHhtbFN0cmVhbUN0eHRQdHIgcmV0ID0gTlVMTCwgY3VyOworCisgICAgaWYgKChjb21wID09IE5VTEwpIHx8IChjb21wLT5zdHJlYW0gPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIHdoaWxlIChjb21wICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGNvbXAtPnN0cmVhbSA9PSBOVUxMKQorCSAgICBnb3RvIGZhaWxlZDsKKwljdXIgPSB4bWxOZXdTdHJlYW1DdHh0KGNvbXAtPnN0cmVhbSk7CisJaWYgKGN1ciA9PSBOVUxMKQorCSAgICBnb3RvIGZhaWxlZDsKKwlpZiAocmV0ID09IE5VTEwpCisJICAgIHJldCA9IGN1cjsKKwllbHNlIHsKKwkgICAgY3VyLT5uZXh0ID0gcmV0LT5uZXh0OworCSAgICByZXQtPm5leHQgPSBjdXI7CisJfQorCWN1ci0+ZmxhZ3MgPSBjb21wLT5mbGFnczsKKwljb21wID0gY29tcC0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7CitmYWlsZWQ6CisgICAgeG1sRnJlZVN0cmVhbUN0eHQocmV0KTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sUGF0dGVyblN0cmVhbWFibGU6CisgKiBAY29tcDogdGhlIHByZWNvbXBpbGVkIHBhdHRlcm4KKyAqCisgKiBDaGVjayBpZiB0aGUgcGF0dGVybiBpcyBzdHJlYW1hYmxlIGkuZS4geG1sUGF0dGVybkdldFN0cmVhbUN0eHQoKQorICogc2hvdWxkIHdvcmsuCisgKgorICogUmV0dXJucyAxIGlmIHN0cmVhbWFibGUsIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFBhdHRlcm5TdHJlYW1hYmxlKHhtbFBhdHRlcm5QdHIgY29tcCkgeworICAgIGlmIChjb21wID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgd2hpbGUgKGNvbXAgIT0gTlVMTCkgeworICAgICAgICBpZiAoY29tcC0+c3RyZWFtID09IE5VTEwpCisJICAgIHJldHVybigwKTsKKwljb21wID0gY29tcC0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFBhdHRlcm5NYXhEZXB0aDoKKyAqIEBjb21wOiB0aGUgcHJlY29tcGlsZWQgcGF0dGVybgorICoKKyAqIENoZWNrIHRoZSBtYXhpbXVtIGRlcHRoIHJlYWNoYWJsZSBieSBhIHBhdHRlcm4KKyAqCisgKiBSZXR1cm5zIC0yIGlmIG5vIGxpbWl0ICh1c2luZyAvLyksIG90aGVyd2lzZSB0aGUgZGVwdGgsCisgKiAgICAgICAgIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sUGF0dGVybk1heERlcHRoKHhtbFBhdHRlcm5QdHIgY29tcCkgeworICAgIGludCByZXQgPSAwLCBpOworICAgIGlmIChjb21wID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgd2hpbGUgKGNvbXAgIT0gTlVMTCkgeworICAgICAgICBpZiAoY29tcC0+c3RyZWFtID09IE5VTEwpCisJICAgIHJldHVybigtMSk7CisJZm9yIChpID0gMDtpIDwgY29tcC0+c3RyZWFtLT5uYlN0ZXA7aSsrKQorCSAgICBpZiAoY29tcC0+c3RyZWFtLT5zdGVwc1tpXS5mbGFncyAmIFhNTF9TVFJFQU1fU1RFUF9ERVNDKQorCSAgICAgICAgcmV0dXJuKC0yKTsKKwlpZiAoY29tcC0+c3RyZWFtLT5uYlN0ZXAgPiByZXQpCisJICAgIHJldCA9IGNvbXAtPnN0cmVhbS0+bmJTdGVwOworCWNvbXAgPSBjb21wLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXR0ZXJuTWluRGVwdGg6CisgKiBAY29tcDogdGhlIHByZWNvbXBpbGVkIHBhdHRlcm4KKyAqCisgKiBDaGVjayB0aGUgbWluaW11bSBkZXB0aCByZWFjaGFibGUgYnkgYSBwYXR0ZXJuLCAwIG1lYW4gdGhlIC8gb3IgLiBhcmUKKyAqIHBhcnQgb2YgdGhlIHNldC4KKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZXJyb3Igb3RoZXJ3aXNlIHRoZSBkZXB0aCwKKyAqICAgICAgICAgCisgKi8KK2ludAoreG1sUGF0dGVybk1pbkRlcHRoKHhtbFBhdHRlcm5QdHIgY29tcCkgeworICAgIGludCByZXQgPSAxMjM0NTY3ODsKKyAgICBpZiAoY29tcCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHdoaWxlIChjb21wICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGNvbXAtPnN0cmVhbSA9PSBOVUxMKQorCSAgICByZXR1cm4oLTEpOworCWlmIChjb21wLT5zdHJlYW0tPm5iU3RlcCA8IHJldCkKKwkgICAgcmV0ID0gY29tcC0+c3RyZWFtLT5uYlN0ZXA7CisJaWYgKHJldCA9PSAwKQorCSAgICByZXR1cm4oMCk7CisJY29tcCA9IGNvbXAtPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFBhdHRlcm5Gcm9tUm9vdDoKKyAqIEBjb21wOiB0aGUgcHJlY29tcGlsZWQgcGF0dGVybgorICoKKyAqIENoZWNrIGlmIHRoZSBwYXR0ZXJuIG11c3QgYmUgbG9va2VkIGF0IGZyb20gdGhlIHJvb3QuCisgKgorICogUmV0dXJucyAxIGlmIHRydWUsIDAgaWYgZmFsc2UgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxQYXR0ZXJuRnJvbVJvb3QoeG1sUGF0dGVyblB0ciBjb21wKSB7CisgICAgaWYgKGNvbXAgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB3aGlsZSAoY29tcCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChjb21wLT5zdHJlYW0gPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKwlpZiAoY29tcC0+ZmxhZ3MgJiBQQVRfRlJPTV9ST09UKQorCSAgICByZXR1cm4oMSk7CisJY29tcCA9IGNvbXAtPm5leHQ7CisgICAgfQorICAgIHJldHVybigwKTsKKworfQorCisjZGVmaW5lIGJvdHRvbV9wYXR0ZXJuCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgorI2VuZGlmIC8qIExJQlhNTF9QQVRURVJOX0VOQUJMRUQgKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL01ha2VmaWxlLmFtIGIvbGlieG1sMi0yLjcuNy9weXRob24vTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NmODdlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsNjcgQEAKKyMgTWFrZWZpbGUgZm9yIGxpYnhtbDIgcHl0aG9uIGxpYnJhcnkKK0FVVE9NQUtFX09QVElPTlMgPSAxLjQgZm9yZWlnbgorCitTVUJESVJTPSAuIHRlc3RzCisKK0lOQ0xVREVTID0gXAorCS1JJChQWVRIT05fSU5DTFVERVMpIFwKKwktSSQodG9wX3NyY2RpcikvaW5jbHVkZQlcCisJLUkkKHRvcF9idWlsZGRpcikvaW5jbHVkZSBcCisJLUkkKHRvcF9idWlsZGRpcikvJChzdWJkaXIpCisKK2RvY3NkaXIgPSAkKGRhdGFkaXIpL2RvYy9saWJ4bWwyLXB5dGhvbi0kKExJQlhNTF9WRVJTSU9OKQorIyBsaWJ4bWwyY2xhc3MudHh0IGlzIGdlbmVyYXRlZAorZGlzdF9kb2NzX0RBVEEgPSBUT0RPCisKK0VYVFJBX0RJU1QgPSAJCQlcCisJc2V0dXAucHkJCVwKKwlzZXR1cC5weS5pbgkJXAorCWdlbmVyYXRvci5weQkJXAorCWxpYnhtbF93cmFwLmgJCVwKKwlsaWJ4bWwucHkJCVwKKwlsaWJ4bWwyLXB5dGhvbi1hcGkueG1sCisKK2xpYnhtbDJtb2RfbGFfTERGTEFHUyA9IEBDWUdXSU5fRVhUUkFfTERGTEFHU0AgQFdJTjMyX0VYVFJBX0xERkxBR1NAIC1tb2R1bGUgLWF2b2lkLXZlcnNpb24gCisKK2lmIFdJVEhfUFlUSE9OCitteWxpYnMgPSBcCisJJCh0b3BfYnVpbGRkaXIpL2xpYnhtbDIubGEKKworcHl0aG9uX0xUTElCUkFSSUVTID0gbGlieG1sMm1vZC5sYQorCitsaWJ4bWwybW9kX2xhX1NPVVJDRVMgPSAkKHNyY2RpcikvbGlieG1sLmMgJChzcmNkaXIpL3R5cGVzLmMKK25vZGlzdF9saWJ4bWwybW9kX2xhX1NPVVJDRVMgPSBsaWJ4bWwyLXB5LmMKK2xpYnhtbDJtb2RfbGFfTElCQUREID0gJChteWxpYnMpIEBDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFEREAgQFBZVEhPTl9MSUJTQAorCiskKHNyY2RpcikvbGlieG1sLmM6IGxpYnhtbDItcHkuaCAjIHRvIGdlbmVyYXRlIGJlZm9yZSB0byBjb21waWxlCisKKworbGlieG1sMi5weTogJChzcmNkaXIpL2xpYnhtbC5weSBsaWJ4bWwyY2xhc3MucHkKKwljYXQgJChzcmNkaXIpL2xpYnhtbC5weSBsaWJ4bWwyY2xhc3MucHkgPiAkQAorCitweXRob25fREFUQSA9IFwKKwlsaWJ4bWwyLnB5CisKK2Rpc3RfcHl0aG9uX0RBVEEgPSBcCisJZHJ2X2xpYnhtbDIucHkKKwkKK0dFTkVSQVRFID0gZ2VuZXJhdG9yLnB5CitBUElfREVTQyA9ICQodG9wX3NyY2RpcikvZG9jL2xpYnhtbDItYXBpLnhtbCAkKHNyY2RpcikvbGlieG1sMi1weXRob24tYXBpLnhtbAorR0VORVJBVEVEPSBsaWJ4bWwyY2xhc3MucHkgXAorICAgICAgICAgICBsaWJ4bWwyLWV4cG9ydC5jIFwKKyAgICAgICAgICAgbGlieG1sMmNsYXNzLnR4dCBcCisJICAgbGlieG1sMi1weS5jIFwKKwkgICBsaWJ4bWwyLXB5LmgKKworQ0xFQU5GSUxFUz0gJChHRU5FUkFURUQpIGdlbl9wcm9nIGxpYnhtbDIucHkKKworJChHRU5FUkFURUQpOiBnZW5fcHJvZworCitnZW5fcHJvZzogJChzcmNkaXIpLyQoR0VORVJBVEUpICQoQVBJX0RFU0MpCisJJChQWVRIT04pICQoc3JjZGlyKS8kKEdFTkVSQVRFKSAkKHNyY2RpcikKKwl0b3VjaCBnZW5fcHJvZworZW5kaWYKKwordGVzdHMgdGVzdDogYWxsCisJY2QgdGVzdHMgJiYgJChNQUtFKSBNQUtFRkxBR1MrPS0tc2lsZW50IHRlc3RzCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL01ha2VmaWxlLmluIGIvbGlieG1sMi0yLjcuNy9weXRob24vTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdhODAxNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL01ha2VmaWxlLmluCkBAIC0wLDAgKzEsOTI4IEBACisjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKworIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgorIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworQFNFVF9NQUtFQAorCisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK3N1YmRpciA9IHB5dGhvbgorRElTVF9DT01NT04gPSBSRUFETUUgJChhbV9fZGlzdF9weXRob25fREFUQV9ESVNUKSAkKGRpc3RfZG9jc19EQVRBKSBcCisJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisJJChzcmNkaXIpL3NldHVwLnB5LmluIFRPRE8KK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL200L2xpYnRvb2wubTQgXAorCSQodG9wX3NyY2RpcikvbTQvbHRvcHRpb25zLm00ICQodG9wX3NyY2RpcikvbTQvbHRzdWdhci5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdHZlcnNpb24ubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdH5vYnNvbGV0ZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9hY2luY2x1ZGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuaW4KK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvbWtpbnN0YWxsZGlycworQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9jb25maWcuaAorQ09ORklHX0NMRUFOX0ZJTEVTID0gc2V0dXAucHkKK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CithbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKyAgICAqKSBmPSQkcDs7IFwKKyAgZXNhYzsKK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKK2FtX19pbnN0YWxsX21heCA9IDQwCithbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCithbV9fbm9iYXNlX3N0cmlwID0gXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCithbV9fYmFzZV9saXN0ID0gXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQocHl0aG9uZGlyKSIgIiQoREVTVERJUikkKGRvY3NkaXIpIiBcCisJIiQoREVTVERJUikkKHB5dGhvbmRpcikiICIkKERFU1RESVIpJChweXRob25kaXIpIgorTFRMSUJSQVJJRVMgPSAkKHB5dGhvbl9MVExJQlJBUklFUykKK0BXSVRIX1BZVEhPTl9UUlVFQGxpYnhtbDJtb2RfbGFfREVQRU5ERU5DSUVTID0gJChteWxpYnMpCithbV9fbGlieG1sMm1vZF9sYV9TT1VSQ0VTX0RJU1QgPSAkKHNyY2RpcikvbGlieG1sLmMgJChzcmNkaXIpL3R5cGVzLmMKK0BXSVRIX1BZVEhPTl9UUlVFQGFtX2xpYnhtbDJtb2RfbGFfT0JKRUNUUyA9IGxpYnhtbC5sbyB0eXBlcy5sbworQFdJVEhfUFlUSE9OX1RSVUVAbm9kaXN0X2xpYnhtbDJtb2RfbGFfT0JKRUNUUyA9IGxpYnhtbDItcHkubG8KK2xpYnhtbDJtb2RfbGFfT0JKRUNUUyA9ICQoYW1fbGlieG1sMm1vZF9sYV9PQkpFQ1RTKSBcCisJJChub2Rpc3RfbGlieG1sMm1vZF9sYV9PQkpFQ1RTKQorbGlieG1sMm1vZF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorCSQobGlieG1sMm1vZF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitAV0lUSF9QWVRIT05fVFJVRUBhbV9saWJ4bWwybW9kX2xhX3JwYXRoID0gLXJwYXRoICQocHl0aG9uZGlyKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikKK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2RlcGNvbXAKK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCithbV9fbXYgPSBtdiAtZgorQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKK0NDTEQgPSAkKENDKQorTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAorCSQoTERGTEFHUykgLW8gJEAKK1NPVVJDRVMgPSAkKGxpYnhtbDJtb2RfbGFfU09VUkNFUykgJChub2Rpc3RfbGlieG1sMm1vZF9sYV9TT1VSQ0VTKQorRElTVF9TT1VSQ0VTID0gJChhbV9fbGlieG1sMm1vZF9sYV9TT1VSQ0VTX0RJU1QpCitSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKK2FtX19kaXN0X3B5dGhvbl9EQVRBX0RJU1QgPSBkcnZfbGlieG1sMi5weQorREFUQSA9ICQoZGlzdF9kb2NzX0RBVEEpICQoZGlzdF9weXRob25fREFUQSkgJChweXRob25fREFUQSkKK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisJZGlzdGRpcgorRVRBR1MgPSBldGFncworQ1RBR1MgPSBjdGFncworRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKK2FtX19yZWxhdGl2aXplID0gXAorICBkaXIwPWBwd2RgOyBcCisgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKyAgICAgIGVsc2UgXAorICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKyAgICAgICAgZWxzZSBcCisgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorICAgICAgICBmaTsgXAorICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorICAgICAgZmk7IFwKKyAgICBmaTsgXAorICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorICBkb25lOyBcCisgIHJlbGRpcj0iJCRkaXIyIgorQUNMT0NBTCA9IEBBQ0xPQ0FMQAorQU1UQVIgPSBAQU1UQVJACitBUiA9IEBBUkAKK0FTID0gQEFTQAorQVVUT0NPTkYgPSBAQVVUT0NPTkZACitBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACitBVVRPTUFLRSA9IEBBVVRPTUFLRUAKK0FXSyA9IEBBV0tACitCQVNFX1RIUkVBRF9MSUJTID0gQEJBU0VfVEhSRUFEX0xJQlNACitDMTROX09CSiA9IEBDMTROX09CSkAKK0NBVEFMT0dfT0JKID0gQENBVEFMT0dfT0JKQAorQ0MgPSBAQ0NACitDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorQ0ZMQUdTID0gQENGTEFHU0AKK0NQUCA9IEBDUFBACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACitDWUdXSU5fRVhUUkFfTERGTEFHUyA9IEBDWUdXSU5fRVhUUkFfTERGTEFHU0AKK0NZR1dJTl9FWFRSQV9QWVRIT05fTElCQUREID0gQENZR1dJTl9FWFRSQV9QWVRIT05fTElCQUREQAorREVCVUdfT0JKID0gQERFQlVHX09CSkAKK0RFRlMgPSBAREVGU0AKK0RFUERJUiA9IEBERVBESVJACitETExUT09MID0gQERMTFRPT0xACitET0NCX09CSiA9IEBET0NCX09CSkAKK0RTWU1VVElMID0gQERTWU1VVElMQAorRFVNUEJJTiA9IEBEVU1QQklOQAorRUNIT19DID0gQEVDSE9fQ0AKK0VDSE9fTiA9IEBFQ0hPX05ACitFQ0hPX1QgPSBARUNIT19UQAorRUdSRVAgPSBARUdSRVBACitFWEVFWFQgPSBARVhFRVhUQAorRkdSRVAgPSBARkdSRVBACitGVFBfT0JKID0gQEZUUF9PQkpACitHUkVQID0gQEdSRVBACitIQVZFX0lTSU5GID0gQEhBVkVfSVNJTkZACitIQVZFX0lTTkFOID0gQEhBVkVfSVNOQU5ACitIVE1MX0RJUiA9IEBIVE1MX0RJUkAKK0hUTUxfT0JKID0gQEhUTUxfT0JKQAorSFRUUF9PQkogPSBASFRUUF9PQkpACitJQ09OVl9MSUJTID0gQElDT05WX0xJQlNACitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKK0xEID0gQExEQAorTERGTEFHUyA9IEBMREZMQUdTQAorTElCT0JKUyA9IEBMSUJPQkpTQAorTElCUyA9IEBMSUJTQAorTElCVE9PTCA9IEBMSUJUT09MQAorTElCWE1MX01BSk9SX1ZFUlNJT04gPSBATElCWE1MX01BSk9SX1ZFUlNJT05ACitMSUJYTUxfTUlDUk9fVkVSU0lPTiA9IEBMSUJYTUxfTUlDUk9fVkVSU0lPTkAKK0xJQlhNTF9NSU5PUl9WRVJTSU9OID0gQExJQlhNTF9NSU5PUl9WRVJTSU9OQAorTElCWE1MX1ZFUlNJT04gPSBATElCWE1MX1ZFUlNJT05ACitMSUJYTUxfVkVSU0lPTl9FWFRSQSA9IEBMSUJYTUxfVkVSU0lPTl9FWFRSQUAKK0xJQlhNTF9WRVJTSU9OX0lORk8gPSBATElCWE1MX1ZFUlNJT05fSU5GT0AKK0xJQlhNTF9WRVJTSU9OX05VTUJFUiA9IEBMSUJYTUxfVkVSU0lPTl9OVU1CRVJACitMSVBPID0gQExJUE9ACitMTl9TID0gQExOX1NACitMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorTUFLRUlORk8gPSBATUFLRUlORk9ACitNS0RJUl9QID0gQE1LRElSX1BACitNT0RVTEVfRVhURU5TSU9OID0gQE1PRFVMRV9FWFRFTlNJT05ACitNT0RVTEVfUExBVEZPUk1fTElCUyA9IEBNT0RVTEVfUExBVEZPUk1fTElCU0AKK01WID0gQE1WQAorTV9MSUJTID0gQE1fTElCU0AKK05NID0gQE5NQAorTk1FRElUID0gQE5NRURJVEAKK09CSkRVTVAgPSBAT0JKRFVNUEAKK09CSkVYVCA9IEBPQkpFWFRACitPVE9PTCA9IEBPVE9PTEAKK09UT09MNjQgPSBAT1RPT0w2NEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1BZVEhPTiA9IEBQWVRIT05ACitQWVRIT05fSU5DTFVERVMgPSBAUFlUSE9OX0lOQ0xVREVTQAorUFlUSE9OX0xJQlMgPSBAUFlUSE9OX0xJQlNACitQWVRIT05fU0lURV9QQUNLQUdFUyA9IEBQWVRIT05fU0lURV9QQUNLQUdFU0AKK1BZVEhPTl9TVUJESVIgPSBAUFlUSE9OX1NVQkRJUkAKK1BZVEhPTl9URVNUUyA9IEBQWVRIT05fVEVTVFNACitQWVRIT05fVkVSU0lPTiA9IEBQWVRIT05fVkVSU0lPTkAKK1JBTkxJQiA9IEBSQU5MSUJACitSRExfTElCUyA9IEBSRExfTElCU0AKK1JFQURFUl9URVNUID0gQFJFQURFUl9URVNUQAorUkVMREFURSA9IEBSRUxEQVRFQAorUk0gPSBAUk1ACitTRUQgPSBAU0VEQAorU0VUX01BS0UgPSBAU0VUX01BS0VACitTSEVMTCA9IEBTSEVMTEAKK1NUQVRJQ19CSU5BUklFUyA9IEBTVEFUSUNfQklOQVJJRVNACitTVFJJUCA9IEBTVFJJUEAKK1RBUiA9IEBUQVJACitURVNUX0MxNE4gPSBAVEVTVF9DMTROQAorVEVTVF9DQVRBTE9HID0gQFRFU1RfQ0FUQUxPR0AKK1RFU1RfREVCVUcgPSBAVEVTVF9ERUJVR0AKK1RFU1RfSFRNTCA9IEBURVNUX0hUTUxACitURVNUX01PRFVMRVMgPSBAVEVTVF9NT0RVTEVTQAorVEVTVF9QQVRURVJOID0gQFRFU1RfUEFUVEVSTkAKK1RFU1RfUEhUTUwgPSBAVEVTVF9QSFRNTEAKK1RFU1RfUFVTSCA9IEBURVNUX1BVU0hACitURVNUX1JFR0VYUFMgPSBAVEVTVF9SRUdFWFBTQAorVEVTVF9TQVggPSBAVEVTVF9TQVhACitURVNUX1NDSEVNQVMgPSBAVEVTVF9TQ0hFTUFTQAorVEVTVF9TQ0hFTUFUUk9OID0gQFRFU1RfU0NIRU1BVFJPTkAKK1RFU1RfVEhSRUFEUyA9IEBURVNUX1RIUkVBRFNACitURVNUX1ZBTElEID0gQFRFU1RfVkFMSURACitURVNUX1ZUSU1FID0gQFRFU1RfVlRJTUVACitURVNUX1hJTkNMVURFID0gQFRFU1RfWElOQ0xVREVACitURVNUX1hQQVRIID0gQFRFU1RfWFBBVEhACitURVNUX1hQVFIgPSBAVEVTVF9YUFRSQAorVEhSRUFEU19XMzIgPSBAVEhSRUFEU19XMzJACitUSFJFQURfQ0ZMQUdTID0gQFRIUkVBRF9DRkxBR1NACitUSFJFQURfTElCUyA9IEBUSFJFQURfTElCU0AKK1UgPSBAVUAKK1ZFUlNJT04gPSBAVkVSU0lPTkAKK1ZFUlNJT05fU0NSSVBUX0ZMQUdTID0gQFZFUlNJT05fU0NSSVBUX0ZMQUdTQAorV0dFVCA9IEBXR0VUQAorV0lOMzJfRVhUUkFfTERGTEFHUyA9IEBXSU4zMl9FWFRSQV9MREZMQUdTQAorV0lOMzJfRVhUUkFfTElCQUREID0gQFdJTjMyX0VYVFJBX0xJQkFEREAKK1dJVEhfQzE0TiA9IEBXSVRIX0MxNE5ACitXSVRIX0NBVEFMT0cgPSBAV0lUSF9DQVRBTE9HQAorV0lUSF9ERUJVRyA9IEBXSVRIX0RFQlVHQAorV0lUSF9ET0NCID0gQFdJVEhfRE9DQkAKK1dJVEhfRlRQID0gQFdJVEhfRlRQQAorV0lUSF9IVE1MID0gQFdJVEhfSFRNTEAKK1dJVEhfSFRUUCA9IEBXSVRIX0hUVFBACitXSVRIX0lDT05WID0gQFdJVEhfSUNPTlZACitXSVRIX0lTTzg4NTlYID0gQFdJVEhfSVNPODg1OVhACitXSVRIX0xFR0FDWSA9IEBXSVRIX0xFR0FDWUAKK1dJVEhfTUVNX0RFQlVHID0gQFdJVEhfTUVNX0RFQlVHQAorV0lUSF9NT0RVTEVTID0gQFdJVEhfTU9EVUxFU0AKK1dJVEhfT1VUUFVUID0gQFdJVEhfT1VUUFVUQAorV0lUSF9QQVRURVJOID0gQFdJVEhfUEFUVEVSTkAKK1dJVEhfUFVTSCA9IEBXSVRIX1BVU0hACitXSVRIX1JFQURFUiA9IEBXSVRIX1JFQURFUkAKK1dJVEhfUkVHRVhQUyA9IEBXSVRIX1JFR0VYUFNACitXSVRIX1JVTl9ERUJVRyA9IEBXSVRIX1JVTl9ERUJVR0AKK1dJVEhfU0FYMSA9IEBXSVRIX1NBWDFACitXSVRIX1NDSEVNQVMgPSBAV0lUSF9TQ0hFTUFTQAorV0lUSF9TQ0hFTUFUUk9OID0gQFdJVEhfU0NIRU1BVFJPTkAKK1dJVEhfVEhSRUFEUyA9IEBXSVRIX1RIUkVBRFNACitXSVRIX1RSRUUgPSBAV0lUSF9UUkVFQAorV0lUSF9UUklPID0gQFdJVEhfVFJJT0AKK1dJVEhfVkFMSUQgPSBAV0lUSF9WQUxJREAKK1dJVEhfV1JJVEVSID0gQFdJVEhfV1JJVEVSQAorV0lUSF9YSU5DTFVERSA9IEBXSVRIX1hJTkNMVURFQAorV0lUSF9YUEFUSCA9IEBXSVRIX1hQQVRIQAorV0lUSF9YUFRSID0gQFdJVEhfWFBUUkAKK1dJVEhfWkxJQiA9IEBXSVRIX1pMSUJACitYSU5DTFVERV9PQkogPSBAWElOQ0xVREVfT0JKQAorWE1MTElOVCA9IEBYTUxMSU5UQAorWE1MX0NGTEFHUyA9IEBYTUxfQ0ZMQUdTQAorWE1MX0lOQ0xVREVESVIgPSBAWE1MX0lOQ0xVREVESVJACitYTUxfTElCRElSID0gQFhNTF9MSUJESVJACitYTUxfTElCUyA9IEBYTUxfTElCU0AKK1hNTF9MSUJUT09MTElCUyA9IEBYTUxfTElCVE9PTExJQlNACitYUEFUSF9PQkogPSBAWFBBVEhfT0JKQAorWFBUUl9PQkogPSBAWFBUUl9PQkpACitYU0xUUFJPQyA9IEBYU0xUUFJPQ0AKK1pfQ0ZMQUdTID0gQFpfQ0ZMQUdTQAorWl9MSUJTID0gQFpfTElCU0AKK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACithYnNfc3JjZGlyID0gQGFic19zcmNkaXJACithYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACithYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACithbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKK2FtX190YXIgPSBAYW1fX3RhckAKK2FtX191bnRhciA9IEBhbV9fdW50YXJACitiaW5kaXIgPSBAYmluZGlyQAorYnVpbGQgPSBAYnVpbGRACitidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACitidWlsZF9vcyA9IEBidWlsZF9vc0AKK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACitidWlsZGRpciA9IEBidWlsZGRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorZG9jZGlyID0gQGRvY2RpckAKK2R2aWRpciA9IEBkdmlkaXJACitleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKK2hvc3QgPSBAaG9zdEAKK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAoraG9zdF9vcyA9IEBob3N0X29zQAoraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACitodG1sZGlyID0gQGh0bWxkaXJACitpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitpbmZvZGlyID0gQGluZm9kaXJACitpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACitsaWJkaXIgPSBAbGliZGlyQAorbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKK2x0X0VDSE8gPSBAbHRfRUNIT0AKK21hbmRpciA9IEBtYW5kaXJACitta2Rpcl9wID0gQG1rZGlyX3BACitvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACitwZGZkaXIgPSBAcGRmZGlyQAorcHJlZml4ID0gQHByZWZpeEAKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKK3BzZGlyID0gQHBzZGlyQAorcHl0aG9uZGlyID0gQHB5dGhvbmRpckAKK3NiaW5kaXIgPSBAc2JpbmRpckAKK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorc3JjZGlyID0gQHNyY2RpckAKK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACit0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACit0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAordG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorCisjIE1ha2VmaWxlIGZvciBsaWJ4bWwyIHB5dGhvbiBsaWJyYXJ5CitBVVRPTUFLRV9PUFRJT05TID0gMS40IGZvcmVpZ24KK1NVQkRJUlMgPSAuIHRlc3RzCitJTkNMVURFUyA9IFwKKwktSSQoUFlUSE9OX0lOQ0xVREVTKSBcCisJLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUJXAorCS1JJCh0b3BfYnVpbGRkaXIpL2luY2x1ZGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpLyQoc3ViZGlyKQorCitkb2NzZGlyID0gJChkYXRhZGlyKS9kb2MvbGlieG1sMi1weXRob24tJChMSUJYTUxfVkVSU0lPTikKKyMgbGlieG1sMmNsYXNzLnR4dCBpcyBnZW5lcmF0ZWQKK2Rpc3RfZG9jc19EQVRBID0gVE9ETworRVhUUkFfRElTVCA9IFwKKwlzZXR1cC5weQkJXAorCXNldHVwLnB5LmluCQlcCisJZ2VuZXJhdG9yLnB5CQlcCisJbGlieG1sX3dyYXAuaAkJXAorCWxpYnhtbC5weQkJXAorCWxpYnhtbDItcHl0aG9uLWFwaS54bWwKKworbGlieG1sMm1vZF9sYV9MREZMQUdTID0gQENZR1dJTl9FWFRSQV9MREZMQUdTQCBAV0lOMzJfRVhUUkFfTERGTEFHU0AgLW1vZHVsZSAtYXZvaWQtdmVyc2lvbiAKK0BXSVRIX1BZVEhPTl9UUlVFQG15bGlicyA9IFwKK0BXSVRIX1BZVEhPTl9UUlVFQAkkKHRvcF9idWlsZGRpcikvbGlieG1sMi5sYQorCitAV0lUSF9QWVRIT05fVFJVRUBweXRob25fTFRMSUJSQVJJRVMgPSBsaWJ4bWwybW9kLmxhCitAV0lUSF9QWVRIT05fVFJVRUBsaWJ4bWwybW9kX2xhX1NPVVJDRVMgPSAkKHNyY2RpcikvbGlieG1sLmMgJChzcmNkaXIpL3R5cGVzLmMKK0BXSVRIX1BZVEhPTl9UUlVFQG5vZGlzdF9saWJ4bWwybW9kX2xhX1NPVVJDRVMgPSBsaWJ4bWwyLXB5LmMKK0BXSVRIX1BZVEhPTl9UUlVFQGxpYnhtbDJtb2RfbGFfTElCQUREID0gJChteWxpYnMpIEBDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFEREAgQFBZVEhPTl9MSUJTQAorQFdJVEhfUFlUSE9OX1RSVUVAcHl0aG9uX0RBVEEgPSBcCitAV0lUSF9QWVRIT05fVFJVRUAJbGlieG1sMi5weQorCitAV0lUSF9QWVRIT05fVFJVRUBkaXN0X3B5dGhvbl9EQVRBID0gXAorQFdJVEhfUFlUSE9OX1RSVUVACWRydl9saWJ4bWwyLnB5CisKK0BXSVRIX1BZVEhPTl9UUlVFQEdFTkVSQVRFID0gZ2VuZXJhdG9yLnB5CitAV0lUSF9QWVRIT05fVFJVRUBBUElfREVTQyA9ICQodG9wX3NyY2RpcikvZG9jL2xpYnhtbDItYXBpLnhtbCAkKHNyY2RpcikvbGlieG1sMi1weXRob24tYXBpLnhtbAorQFdJVEhfUFlUSE9OX1RSVUVAR0VORVJBVEVEID0gbGlieG1sMmNsYXNzLnB5IFwKK0BXSVRIX1BZVEhPTl9UUlVFQCAgICAgICAgICAgbGlieG1sMi1leHBvcnQuYyBcCitAV0lUSF9QWVRIT05fVFJVRUAgICAgICAgICAgIGxpYnhtbDJjbGFzcy50eHQgXAorQFdJVEhfUFlUSE9OX1RSVUVACSAgIGxpYnhtbDItcHkuYyBcCitAV0lUSF9QWVRIT05fVFJVRUAJICAgbGlieG1sMi1weS5oCisKK0BXSVRIX1BZVEhPTl9UUlVFQENMRUFORklMRVMgPSAkKEdFTkVSQVRFRCkgZ2VuX3Byb2cgbGlieG1sMi5weQorYWxsOiBhbGwtcmVjdXJzaXZlCisKKy5TVUZGSVhFUzoKKy5TVUZGSVhFUzogLmMgLmxvIC5vIC5vYmoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1mb3JlaWduIHB5dGhvbi9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gcHl0aG9uL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKK3NldHVwLnB5OiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc2V0dXAucHkuaW4KKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQAoraW5zdGFsbC1weXRob25MVExJQlJBUklFUzogJChweXRob25fTFRMSUJSQVJJRVMpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChweXRob25kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChweXRob25kaXIpIgorCUBsaXN0PSckKHB5dGhvbl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKHB5dGhvbmRpcikiIHx8IGxpc3Q9OyBcCisJbGlzdDI9OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWRvbmU7IFwKKwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAnJChERVNURElSKSQocHl0aG9uZGlyKSciOyBcCisJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNURElSKSQocHl0aG9uZGlyKSI7IFwKKwl9CisKK3VuaW5zdGFsbC1weXRob25MVExJQlJBUklFUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHB5dGhvbl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKHB5dGhvbmRpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICAkKGFtX19zdHJpcF9kaXIpIFwKKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQocHl0aG9uZGlyKS8kJGYnIjsgXAorCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKHB5dGhvbmRpcikvJCRmIjsgXAorCWRvbmUKKworY2xlYW4tcHl0aG9uTFRMSUJSQVJJRVM6CisJLXRlc3QgLXogIiQocHl0aG9uX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChweXRob25fTFRMSUJSQVJJRVMpCisJQGxpc3Q9JyQocHl0aG9uX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisJZG9uZQorbGlieG1sMm1vZC5sYTogJChsaWJ4bWwybW9kX2xhX09CSkVDVFMpICQobGlieG1sMm1vZF9sYV9ERVBFTkRFTkNJRVMpIAorCSQobGlieG1sMm1vZF9sYV9MSU5LKSAkKGFtX2xpYnhtbDJtb2RfbGFfcnBhdGgpICQobGlieG1sMm1vZF9sYV9PQkpFQ1RTKSAkKGxpYnhtbDJtb2RfbGFfTElCQUREKSAkKExJQlMpCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJ4bWwuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJ4bWwyLXB5LlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdHlwZXMuUGxvQGFtX19xdW90ZUAKKworLmMubzoKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ0NERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKK0BhbV9fZmFzdGRlcENDX0ZBTFNFQAkkKENPTVBJTEUpIC1jIGAkKENZR1BBVEhfVykgJyQ8J2AKKworLmMubG86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKExUQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKK0BhbV9fZmFzdGRlcENDX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENDX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMVENPTVBJTEUpIC1jIC1vICRAICQ8CisKK2xpYnhtbC5sbzogJChzcmNkaXIpL2xpYnhtbC5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIC1NVCBsaWJ4bWwubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnhtbC5UcG8gLWMgLW8gbGlieG1sLmxvIGB0ZXN0IC1mICckKHNyY2RpcikvbGlieG1sLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQoc3JjZGlyKS9saWJ4bWwuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJ4bWwuVHBvICQoREVQRElSKS9saWJ4bWwuUGxvCitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckKHNyY2RpcikvbGlieG1sLmMnIG9iamVjdD0nbGlieG1sLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENDREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACitAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtYyAtbyBsaWJ4bWwubG8gYHRlc3QgLWYgJyQoc3JjZGlyKS9saWJ4bWwuYycgfHwgZWNobyAnJChzcmNkaXIpLydgJChzcmNkaXIpL2xpYnhtbC5jCisKK3R5cGVzLmxvOiAkKHNyY2RpcikvdHlwZXMuYworQGFtX19mYXN0ZGVwQ0NfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAtTVQgdHlwZXMubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL3R5cGVzLlRwbyAtYyAtbyB0eXBlcy5sbyBgdGVzdCAtZiAnJChzcmNkaXIpL3R5cGVzLmMnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQoc3JjZGlyKS90eXBlcy5jCitAYW1fX2Zhc3RkZXBDQ19UUlVFQAkkKGFtX19tdikgJChERVBESVIpL3R5cGVzLlRwbyAkKERFUERJUikvdHlwZXMuUGxvCitAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAJc291cmNlPSckKHNyY2RpcikvdHlwZXMuYycgb2JqZWN0PSd0eXBlcy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gdHlwZXMubG8gYHRlc3QgLWYgJyQoc3JjZGlyKS90eXBlcy5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHNyY2RpcikvdHlwZXMuYworCittb3N0bHljbGVhbi1saWJ0b29sOgorCS1ybSAtZiAqLmxvCisKK2NsZWFuLWxpYnRvb2w6CisJLXJtIC1yZiAubGlicyBfbGlicworaW5zdGFsbC1kaXN0X2RvY3NEQVRBOiAkKGRpc3RfZG9jc19EQVRBKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoZG9jc2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGRvY3NkaXIpIgorCUBsaXN0PSckKGRpc3RfZG9jc19EQVRBKSc7IHRlc3QgLW4gIiQoZG9jc2RpcikiIHx8IGxpc3Q9OyBcCisJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgZWNobyAiJCRkJCRwIjsgXAorCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQoZG9jc2RpciknIjsgXAorCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKGRvY3NkaXIpIiB8fCBleGl0ICQkPzsgXAorCWRvbmUKKwordW5pbnN0YWxsLWRpc3RfZG9jc0RBVEE6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChkaXN0X2RvY3NfREFUQSknOyB0ZXN0IC1uICIkKGRvY3NkaXIpIiB8fCBsaXN0PTsgXAorCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisJZWNobyAiICggY2QgJyQoREVTVERJUikkKGRvY3NkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQoZG9jc2RpcikiICYmIHJtIC1mICQkZmlsZXMKK2luc3RhbGwtZGlzdF9weXRob25EQVRBOiAkKGRpc3RfcHl0aG9uX0RBVEEpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChweXRob25kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChweXRob25kaXIpIgorCUBsaXN0PSckKGRpc3RfcHl0aG9uX0RBVEEpJzsgdGVzdCAtbiAiJChweXRob25kaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IFwKKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKHB5dGhvbmRpciknIjsgXAorCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKHB5dGhvbmRpcikiIHx8IGV4aXQgJCQ/OyBcCisJZG9uZQorCit1bmluc3RhbGwtZGlzdF9weXRob25EQVRBOgorCUAkKE5PUk1BTF9VTklOU1RBTEwpCisJQGxpc3Q9JyQoZGlzdF9weXRob25fREFUQSknOyB0ZXN0IC1uICIkKHB5dGhvbmRpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocHl0aG9uZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisJY2QgIiQoREVTVERJUikkKHB5dGhvbmRpcikiICYmIHJtIC1mICQkZmlsZXMKK2luc3RhbGwtcHl0aG9uREFUQTogJChweXRob25fREFUQSkKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKHB5dGhvbmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHB5dGhvbmRpcikiCisJQGxpc3Q9JyQocHl0aG9uX0RBVEEpJzsgdGVzdCAtbiAiJChweXRob25kaXIpIiB8fCBsaXN0PTsgXAorCWZvciBwIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKwkgIGVjaG8gIiQkZCQkcCI7IFwKKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKHB5dGhvbmRpciknIjsgXAorCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKHB5dGhvbmRpcikiIHx8IGV4aXQgJCQ/OyBcCisJZG9uZQorCit1bmluc3RhbGwtcHl0aG9uREFUQToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKHB5dGhvbl9EQVRBKSc7IHRlc3QgLW4gIiQocHl0aG9uZGlyKSIgfHwgbGlzdD07IFwKKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsgXAorCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAorCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChweXRob25kaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKwljZCAiJChERVNURElSKSQocHl0aG9uZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworCisjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorJChSRUNVUlNJVkVfVEFSR0VUUyk6CisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisJICBjYXNlICQkZiBpbiBcCisJICAgICo9KiB8IC0tWyFrXSopOzsgXAorCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZG90X3NlZW49bm87IFwKKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKwkgIGVsc2UgXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorCSAgZmk7IFwKKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisJZG9uZTsgXAorCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisKKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorCSAgY2FzZSAkJGYgaW4gXAorCSAgICAqPSogfCAtLVsha10qKTs7IFwKKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisJICBlc2FjOyBcCisJZG9uZTsgXAorCWRvdF9zZWVuPW5vOyBcCisJY2FzZSAiJEAiIGluIFwKKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKwllc2FjOyBcCisJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorCSAgZmk7IFwKKwlkb25lOyBcCisJcmV2PSIkJHJldiAuIjsgXAorCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorCSAgZWxzZSBcCisJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisJICBmaTsgXAorCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKK3RhZ3MtcmVjdXJzaXZlOgorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisJZG9uZQorY3RhZ3MtcmVjdXJzaXZlOgorCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorCWRvbmUKKworSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXNldCB4OyBcCisJaGVyZT1gcHdkYDsgXAorCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisJICBlbXB0eV9maXg9LjsgXAorCWVsc2UgXAorCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisJICBlbXB0eV9maXg9OyBcCisJZmk7IFwKKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisJICBmaTsgXAorCWRvbmU7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisJc2hpZnQ7IFwKKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKwkgIGVsc2UgXAorCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisJICAgICAgJCR1bmlxdWU7IFwKKwkgIGZpOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR1bmlxdWUKKworR1RBR1M6CisJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKworZGlzdGNsZWFuLXRhZ3M6CisJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCisJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCisJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAorCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisJICAgICAgICBkaXN0ZGlyKSBcCisJICAgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChEQVRBKQoraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQoraW5zdGFsbGRpcnMtYW06CisJZm9yIGRpciBpbiAiJChERVNURElSKSQocHl0aG9uZGlyKSIgIiQoREVTVERJUikkKGRvY3NkaXIpIiAiJChERVNURElSKSQocHl0aG9uZGlyKSIgIiQoREVTVERJUikkKHB5dGhvbmRpcikiOyBkbyBcCisJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisJZG9uZQoraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCit1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKworaW5zdGFsbC1hbTogYWxsLWFtCisJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKworaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChDTEVBTkZJTEVTKQorCitkaXN0Y2xlYW4tZ2VuZXJpYzoKKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKworbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCitjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tcHl0aG9uTFRMSUJSQVJJRVMgXAorCW1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorCS1ybSAtcmYgLi8kKERFUERJUikKKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorCWRpc3RjbGVhbi10YWdzCisKK2R2aTogZHZpLXJlY3Vyc2l2ZQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tcmVjdXJzaXZlCisKK2luZm8tYW06CisKK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1kaXN0X2RvY3NEQVRBIGluc3RhbGwtZGlzdF9weXRob25EQVRBIFwKKwlpbnN0YWxsLXB5dGhvbkRBVEEgaW5zdGFsbC1weXRob25MVExJQlJBUklFUworCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisKK2luc3RhbGwtZHZpLWFtOgorCitpbnN0YWxsLWV4ZWMtYW06CisKK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWh0bWwtYW06CisKK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisKK2luc3RhbGwtcGRmLWFtOgorCitpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorCitpbnN0YWxsLXBzLWFtOgorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworCittb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisKK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wKKworcGRmOiBwZGYtcmVjdXJzaXZlCisKK3BkZi1hbToKKworcHM6IHBzLXJlY3Vyc2l2ZQorCitwcy1hbToKKwordW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtZGlzdF9kb2NzREFUQSB1bmluc3RhbGwtZGlzdF9weXRob25EQVRBIFwKKwl1bmluc3RhbGwtcHl0aG9uREFUQSB1bmluc3RhbGwtcHl0aG9uTFRMSUJSQVJJRVMKKworLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisKKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKwljbGVhbi1weXRob25MVExJQlJBUklFUyBjdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIFwKKwlpbnN0YWxsLWRpc3RfZG9jc0RBVEEgaW5zdGFsbC1kaXN0X3B5dGhvbkRBVEEgaW5zdGFsbC1kdmkgXAorCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCisJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKwlpbnN0YWxsLXB5dGhvbkRBVEEgaW5zdGFsbC1weXRob25MVExJQlJBUklFUyBpbnN0YWxsLXN0cmlwIFwKKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIFwKKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKwl1bmluc3RhbGwtZGlzdF9kb2NzREFUQSB1bmluc3RhbGwtZGlzdF9weXRob25EQVRBIFwKKwl1bmluc3RhbGwtcHl0aG9uREFUQSB1bmluc3RhbGwtcHl0aG9uTFRMSUJSQVJJRVMKKworCitAV0lUSF9QWVRIT05fVFJVRUAkKHNyY2RpcikvbGlieG1sLmM6IGxpYnhtbDItcHkuaCAjIHRvIGdlbmVyYXRlIGJlZm9yZSB0byBjb21waWxlCisKK0BXSVRIX1BZVEhPTl9UUlVFQGxpYnhtbDIucHk6ICQoc3JjZGlyKS9saWJ4bWwucHkgbGlieG1sMmNsYXNzLnB5CitAV0lUSF9QWVRIT05fVFJVRUAJY2F0ICQoc3JjZGlyKS9saWJ4bWwucHkgbGlieG1sMmNsYXNzLnB5ID4gJEAKKworQFdJVEhfUFlUSE9OX1RSVUVAJChHRU5FUkFURUQpOiBnZW5fcHJvZworCitAV0lUSF9QWVRIT05fVFJVRUBnZW5fcHJvZzogJChzcmNkaXIpLyQoR0VORVJBVEUpICQoQVBJX0RFU0MpCitAV0lUSF9QWVRIT05fVFJVRUAJJChQWVRIT04pICQoc3JjZGlyKS8kKEdFTkVSQVRFKSAkKHNyY2RpcikKK0BXSVRIX1BZVEhPTl9UUlVFQAl0b3VjaCBnZW5fcHJvZworCit0ZXN0cyB0ZXN0OiBhbGwKKwljZCB0ZXN0cyAmJiAkKE1BS0UpIE1BS0VGTEFHUys9LS1zaWxlbnQgdGVzdHMKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vUkVBRE1FIGIvbGlieG1sMi0yLjcuNy9weXRob24vUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NmVlZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi9SRUFETUUKQEAgLTAsMCArMSwzNCBAQAorCQlNb2R1bGUgbGlieG1sMi1weXRob24KKwkJPT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgaXMgdGhlIGxpYnhtbDIgcHl0aG9uIG1vZHVsZSwgcHJvdmlkaW5nIGFjY2VzcyB0byB0aGUKK2xpYnhtbDIgYW5kIGxpYnhzbHQgKGlmIGF2YWlsYWJsZSkgbGlicmFyaWVzLiBGb3IgZ2VuZXJhbAoraW5mb3JtYXRpb25zcyBvbiB0aG9zZSBYTUwgYW5kIFhTTFQgbGlicmFyaWVzIGNoZWNrIHRoZWlyIAord2ViIHBhZ2VzIGF0IDoKKyAgICBodHRwOi8veG1sc29mdC5vcmcvCisgICAgYW5kCisgICAgaHR0cDovL3htbHNvZnQub3JnL1hTTFQvCisKK1RoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc291cmNlcyBmb3IgdGhpcyBtb2R1bGUgYW5kIHRoZQorYXNzb2NpYXRlZCBsaWJyYXJpZXMgY2FuIGJlIGZvdW5kIGF0OgorICAgIGZ0cDovL3htbHNvZnQub3JnLworCitCaW5hcmllcyBwYWNrYWdlcyBvZiB0aGUgbGlieG1sMiBhbmQgbGlieHNsdCBsaWJyYXJpZXMgY2FuCitiZSBmb3VuZCBlaXRoZXIgb24gdGhlIEZUUCBzaXRlIGZvciBMaW51eCwgZnJvbSBleHRlcm5hbAorc291cmNlcyBsaW5rZWQgZnJvbSB0aGUgd2ViIHBhZ2VzLCBvciBhcyBwYXJ0IG9mIHlvdXIgc2V0IG9mCitwYWNrYWdlcyBwcm92aWRlZCB3aXRoIHlvdXIgb3BlcmF0aW5nIHN5c3RlbS4KKworTk9URToKK3RoaXMgbW9kdWxlIGRpc3RyaWJ1dGlvbiBpcyBub3QgdGhlIHByaW1hcnkgZGlzdHJpYnV0aW9uCitvZiB0aGUgbGlieG1sMiBhbmQgbGlieHNsdCBQeXRob24gYmluZGluZyBjb2RlLCBidXQgYXMgCit0aGUgUHl0aG9uIHdheSBvZiBwYWNrYWdpbmcgdGhvc2UgZm9yIG5vbi1MaW51eCBzeXN0ZW1zLgorVGhlIG1haW4gc291cmNlcyBhcmUgdGhlIGxpYnhtbDIgYW5kIGxpYnhzbHQgdGFyLmd6IGZvdW5kIG9uCit0aGUgc2l0ZS4gT25lIHNpZGUgZWZmZWN0IGlzIHRoYXQgdGhlIG9mZmljaWFsIFJQTSBwYWNrYWdlcyBmb3IKK3Rob3NlIG1vZHVsZXMgYXJlIG5vdCBnZW5lcmF0ZWQgZnJvbSB0aGUgbGlieG1sMi1weXRob24KK2Rpc3RyaWJ1dGlvbnMgYnV0IGFzIHBhcnQgb2YgdGhlIG5vcm1hbCBSUE0gcGFja2FnaW5nIG9mCit0aG9zZSB0d28gbGlicmFyaWVzLgorVGhlIFJQTSBwYWNrYWdlcyBjYW4gYmUgZm91bmQgYXQ6CisgICAgaHR0cDovL3JwbWZpbmQubmV0L2xpbnV4L3JwbTJodG1sL3NlYXJjaC5waHA/cXVlcnk9bGlieG1sMi1weXRob24KKyAgICBodHRwOi8vcnBtZmluZC5uZXQvbGludXgvcnBtMmh0bWwvc2VhcmNoLnBocD9xdWVyeT1saWJ4c2x0LXB5dGhvbgorCitEYW5pZWwgVmVpbGxhcmQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL1RPRE8gYi9saWJ4bWwyLTIuNy43L3B5dGhvbi9UT0RPCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NDZmNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi9UT0RPCkBAIC0wLDAgKzEsNTcgQEAKKyAgICAgICAgICAgICBUT0RPIGZvciB0aGUgbGlieG1sMiBQeXRob24gd3JhcHBlcnMKKworICAgICAgICAgJElkJAorCitUaGluZ3MgdG8gZG86CistLS0tLS0tLS0tLS0tCisKKy0gU0FYIGludGVyZmFjZXMKKyAgLSBwdXNoIGlzIGRvbmUgYnV0IG5vIGdlbmVyaWMgaW50ZXJmYWNlCisgIC0gZWxlbWVudERlY2wgbmVlZCBzb21lIHdvcmsKKyAgLSBuZWVkIG1vcmUgdGVzdGluZyBhbmQgY2hlY2sgZnVsbCBjYWxsYmFja3MgZm9yIHhtbGxpYi9zZ21sb3AgcmVwbGFjZW1lbnQKKy0gZW51bXMgLT4gbGlieG1sLnB5CistIGFjY2VzcyB0byBYUGF0aCB2YXJpYWJsZXMKKy0geG1sQnVmZmVyIGV4cG9zdXJlCistIHhwYXRoQ29udGV4dCwgYmVpbmcgYWJsZSB0byBzZXQvZ2V0IGluZm8gYW5kIGNsZWFuIGl0IHVwCistIG1vcmUgd29yayBuZWVkZWQgb24gY29udGV4dCBoYW5kbGluZyBmb3IgZnVuY3Rpb24gbG9va3VwCisgIGFuZCB1c2Ugb2YgYW4gaGFzaCB0YWJsZS4KKy0gYWRkIHJlZ3Jlc3Npb24gdGVzdHMKKyAgIC0gU0FYIGZsb3cKKy0gRFREIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZXMgY29udGVudCBhY2Nlc3NlcworICAgLSBhdHRyaWJ1dGUgaGFuZGxlZCBpbiBTQVgKKyAgIC0gZWxlbWVudCBuZWVkZWQgaW4gYm90aAorCisKK0RvbmU6CistLS0tLQorLSBjbGFzcyBoaWVyYXJjaHk6CisgICsgbWFrZSBzcGVjaWZpYyBub2RlIHR5cGUgaW5oZXJpdCBmcm9tIHhtbE5vZGUKKyAgICBkb25lLCBoYWQgdG8gc29ydCB0aGUgY2xhc3NlcyBpbiB0aGUgb3V0cHV0CisgICsgZ2V0IHRoZSBnZW5lcmF0b3IgdG8gb3V0cHV0IGEgY2xhc3Nlcy50eHQgZGVzY3JpcHRpb24KKyAgICBkb25lIGxpYnhtbDJjbGFzcy50eHQKKy0gYWRkIHJlZ3Jlc3Npb24gdGVzdHMKKyAgIC0gdGVzdHMvTWFrZWZpbGUuYW06IGV4cG9ydCB0aGUgUHl0aG9uIGNsYXNzIHBhdGgKKyAgIC0geHBhdGggcXVlcmllcworICAgLSB4cGF0aCBleHRlbnNpb24KKyAgIC0gY2hlY2sgbWVtb3J5CisgICAtIGJ1aWxkIHRyZWUKKyAgIC0gc2F2aW5nCistIGV4dGVuc2lvbnMgYmFzZWQgb24gYSBweXRob24ueG1sIGRlc2NyaXB0aW9uIG9mIHRoZSBuZXcgc3BlY2lmaWMKKyAgaW50ZXJmYWNlcworICAgZmlsZSBsaWJ4bWwyLXB5dGhvbi1hcGkueG1sICwgZmlyc3QgZW50cnkgaXMgeG1sUmVnaXN0ZXJYUGF0aEZ1bmN0aW9uCistIHNwZWMgZmlsZTogYXV0b21hdGljYWxseSBnZW5lcmF0ZSBmb3IgcHl0aG9uWC5ZIGlmIGZvdW5kCisgIERvbmUsIGEgYml0IHVnbHkgYnkgcnVubmluZyBuZXcgbWFrZXMgaW4gJWluc3RhbGwgZm9yIGVhY2ggbGV2ZWwKKyAgZm91bmQuCistIGVycm9yIHJlZGlyZWN0aW9ucyBhbmQgcHJlZm9ybWF0CistIGhhbmRsaW5nIG9mIG5vZGUuY29udGVudAorLSBhY2Nlc3MgdG8geG1sUGFyc2VyQ3R4dCBhbmQgcHVzaCBtb2RlCisgICAtIG5lZWRlZCBmb3IgU0FYIHRvbworICAgLSBlbnRyeSBwb2ludHMKKyAgIC0gd3JhcHBlcnMKKyAgIC0gZGVjZW50IGludGVyZmFjZSBmb3Igc2V0dGluZy9nZXR0aW5nIGJlaGF2aW91cgorLSBtZW1vcnkgZGVidWcgaW50ZXJmYWNlcworLSBTQVggaW50ZXJmYWNlcworICAgLSBiYXNpYyBzdHVmZiB3aXRoIHB1c2ggaXMgYXZhaWxhYmxlCisgICAtIGJhc2ljIHhtbGxpYiByZXBsYWNlbWVudAorCitEYW5pZWwgVmVpbGxhcmQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL2Rydl9saWJ4bWwyLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vZHJ2X2xpYnhtbDIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQzZmIxZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL2Rydl9saWJ4bWwyLnB5CkBAIC0wLDAgKzEsMzcxIEBACisjIC0qLSBjb2Rpbmc6IGlzby04ODU5LTEgLSotCisiIiIgQSBTQVgyIGRyaXZlciBmb3IgbGlieG1sMiwgb24gdG9wIG9mIGl0J3MgWG1sUmVhZGVyIEFQSQorCitVU0FHRQorICAgICMgcHV0IHRoaXMgZmlsZSAoZHJ2X2xpYnhtbDIucHkpIGluIFBZVEhPTlBBVEgKKyAgICBpbXBvcnQgeG1sLnNheAorICAgIHJlYWRlciA9IHhtbC5zYXgubWFrZV9wYXJzZXIoWyJkcnZfbGlieG1sMiJdKQorICAgICMgLi4uYW5kIHRoZSByZXN0IGlzIHN0YW5kYXJkIHB5dGhvbiBzYXguCisKK0NBVkVBVFMKKyAgICAtIExleGljYWwgaGFuZGxlcnMgYXJlIHN1cHBvcnRlZCwgZXhjZXB0IGZvciBzdGFydC9lbmRFbnRpdHkKKyAgICAgICh3YWl0aW5nIGZvciBYbWxSZWFkZXIuUmVzb2x2ZUVudGl0eSkgYW5kIHN0YXJ0L2VuZERURAorICAgIC0gRXJyb3IgY2FsbGJhY2tzIGFyZSBub3QgZXhhY3RseSBzeW5jaHJvbm91cywgdGhleSB0ZW5kCisgICAgICB0byBiZSBpbnZva2VkIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBjb250ZW50IGNhbGxiYWNrLAorICAgICAgYmVjYXVzZSB0aGUgdW5kZXJseWluZyByZWFkZXIgaW50ZXJmYWNlIHBhcnNlcworICAgICAgZGF0YSBieSBjaHVua3Mgb2YgNTEyIGJ5dGVzCisgICAgCitUT0RPCisgICAgLSBzZWFyY2ggZm9yIFRPRE8KKyAgICAtIHNvbWUgRXJyb3JIYW5kbGVyIGV2ZW50cyAod2FybmluZykKKyAgICAtIHNvbWUgQ29udGVudEhhbmRsZXIgZXZlbnRzIChzZXREb2N1bWVudExvY2F0b3IsIHNraXBwZWRFbnRpdHkpCisgICAgLSBFbnRpdHlSZXNvbHZlciAodXNpbmcgbGlieG1sMi4/KQorICAgIC0gRFRESGFuZGxlciAoaWYvd2hlbiBsaWJ4bWwyIGV4cG9zZXMgc3VjaCBub2RlIHR5cGVzKQorICAgIC0gRGVjbEhhbmRsZXIgKGlmL3doZW4gbGlieG1sMiBleHBvc2VzIHN1Y2ggbm9kZSB0eXBlcykKKyAgICAtIHByb3BlcnR5X3htbF9zdHJpbmc/CisgICAgLSBmZWF0dXJlX3N0cmluZ19pbnRlcm5pbmc/CisgICAgLSBJbmNyZW1lbnRhbCBwYXJzZXIKKyAgICAtIGFkZGl0aW9uYWwgcGVyZm9ybWFuY2UgdHVuaW5nOgorICAgICAgLSBvbmUgbWlnaHQgY2FjaGUgY2FsbGJhY2tzIHRvIGF2b2lkIHNvbWUgbmFtZSBsb29rdXBzCisgICAgICAtIG9uZSBtaWdodCBpbXBsZW1lbnQgYSBzbWFydGVyIHdheSB0byBwYXNzIGF0dHJpYnV0ZXMgdG8gc3RhcnRFbGVtZW50CisgICAgICAgIChzb21lIGtpbmQgb2YgbGF6eSBldmFsdWF0aW9uPykKKyAgICAgIC0gdGhlcmUgbWlnaHQgYmUgcm9vbSBmb3IgaW1wcm92ZW1lbnQgaW4gc3RhcnQvZW5kUHJlZml4TWFwcGluZworICAgICAgLSBvdGhlcj8KKworIiIiCisKK19fYXV0aG9yX18gID0gdSJTdOlwaGFuZSBCaWRvdWwgPHNiaUBza3luZXQuYmU+IgorX192ZXJzaW9uX18gPSAiMC4zIgorCitpbXBvcnQgY29kZWNzCitmcm9tIHR5cGVzIGltcG9ydCBTdHJpbmdUeXBlLCBVbmljb2RlVHlwZQorU3RyaW5nVHlwZXMgPSAoU3RyaW5nVHlwZSxVbmljb2RlVHlwZSkKKworZnJvbSB4bWwuc2F4Ll9leGNlcHRpb25zIGltcG9ydCAqCitmcm9tIHhtbC5zYXggaW1wb3J0IHhtbHJlYWRlciwgc2F4dXRpbHMKK2Zyb20geG1sLnNheC5oYW5kbGVyIGltcG9ydCBcCisgICAgIGZlYXR1cmVfbmFtZXNwYWNlcywgXAorICAgICBmZWF0dXJlX25hbWVzcGFjZV9wcmVmaXhlcywgXAorICAgICBmZWF0dXJlX3N0cmluZ19pbnRlcm5pbmcsIFwKKyAgICAgZmVhdHVyZV92YWxpZGF0aW9uLCBcCisgICAgIGZlYXR1cmVfZXh0ZXJuYWxfZ2VzLCBcCisgICAgIGZlYXR1cmVfZXh0ZXJuYWxfcGVzLCBcCisgICAgIHByb3BlcnR5X2xleGljYWxfaGFuZGxlciwgXAorICAgICBwcm9wZXJ0eV9kZWNsYXJhdGlvbl9oYW5kbGVyLCBcCisgICAgIHByb3BlcnR5X2RvbV9ub2RlLCBcCisgICAgIHByb3BlcnR5X3htbF9zdHJpbmcKKworIyBsaWJ4bWwyIHJldHVybnMgc3RyaW5ncyBhcyBVVEY4CitfZGVjb2RlciA9IGNvZGVjcy5sb29rdXAoInV0ZjgiKVsxXQorZGVmIF9kKHMpOgorICAgIGlmIHMgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIHMKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gX2RlY29kZXIocylbMF0KKwordHJ5OgorICAgIGltcG9ydCBsaWJ4bWwyCitleGNlcHQgSW1wb3J0RXJyb3IsIGU6CisgICAgcmFpc2UgU0FYUmVhZGVyTm90QXZhaWxhYmxlKCJsaWJ4bWwyIG5vdCBhdmFpbGFibGU6ICIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IGVycm9yIHdhczogJXMiICUgZSkKKworY2xhc3MgTG9jYXRvcih4bWxyZWFkZXIuTG9jYXRvcik6CisgICAgIiIiU0FYIExvY2F0b3IgYWRhcHRlciBmb3IgbGlieG1sMi54bWxUZXh0UmVhZGVyTG9jYXRvciIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsbG9jYXRvcik6CisgICAgICAgIHNlbGYuX19sb2NhdG9yID0gbG9jYXRvcgorCisgICAgZGVmIGdldENvbHVtbk51bWJlcihzZWxmKToKKyAgICAgICAgIlJldHVybiB0aGUgY29sdW1uIG51bWJlciB3aGVyZSB0aGUgY3VycmVudCBldmVudCBlbmRzLiIKKyAgICAgICAgcmV0dXJuIC0xCisKKyAgICBkZWYgZ2V0TGluZU51bWJlcihzZWxmKToKKyAgICAgICAgIlJldHVybiB0aGUgbGluZSBudW1iZXIgd2hlcmUgdGhlIGN1cnJlbnQgZXZlbnQgZW5kcy4iCisgICAgICAgIHJldHVybiBzZWxmLl9fbG9jYXRvci5MaW5lTnVtYmVyKCkKKworICAgIGRlZiBnZXRQdWJsaWNJZChzZWxmKToKKyAgICAgICAgIlJldHVybiB0aGUgcHVibGljIGlkZW50aWZpZXIgZm9yIHRoZSBjdXJyZW50IGV2ZW50LiIKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBnZXRTeXN0ZW1JZChzZWxmKToKKyAgICAgICAgIlJldHVybiB0aGUgc3lzdGVtIGlkZW50aWZpZXIgZm9yIHRoZSBjdXJyZW50IGV2ZW50LiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX19sb2NhdG9yLkJhc2VVUkkoKQorCitjbGFzcyBMaWJYbWwyUmVhZGVyKHhtbHJlYWRlci5YTUxSZWFkZXIpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICB4bWxyZWFkZXIuWE1MUmVhZGVyLl9faW5pdF9fKHNlbGYpCisgICAgICAgICMgZmVhdHVyZXMKKyAgICAgICAgc2VsZi5fX25zID0gMAorICAgICAgICBzZWxmLl9fbnNwZnggPSAwCisgICAgICAgIHNlbGYuX192YWxpZGF0ZSA9IDAKKyAgICAgICAgc2VsZi5fX2V4dHBhcmFtcyA9IDEKKyAgICAgICAgIyBwYXJzaW5nIGZsYWcKKyAgICAgICAgc2VsZi5fX3BhcnNpbmcgPSAwCisgICAgICAgICMgYWRkaXRpb25hbCBoYW5kbGVycworICAgICAgICBzZWxmLl9fbGV4X2hhbmRsZXIgPSBOb25lCisgICAgICAgIHNlbGYuX19kZWNsX2hhbmRsZXIgPSBOb25lCisgICAgICAgICMgZXJyb3IgbWVzc2FnZXMgYWNjdW11bGF0b3IKKyAgICAgICAgc2VsZi5fX2Vycm9ycyA9IE5vbmUKKworICAgIGRlZiBfZXJyb3JIYW5kbGVyKHNlbGYsYXJnLG1zZyxzZXZlcml0eSxsb2NhdG9yKToKKyAgICAgICAgaWYgc2VsZi5fX2Vycm9ycyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fX2Vycm9ycyA9IFtdCisgICAgICAgIHNlbGYuX19lcnJvcnMuYXBwZW5kKChzZXZlcml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNBWFBhcnNlRXhjZXB0aW9uKG1zZyxOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRvcihsb2NhdG9yKSkpKQorCisgICAgZGVmIF9yZXBvcnRFcnJvcnMoc2VsZixmYXRhbCk6CisgICAgICAgIGZvciBzZXZlcml0eSxleGNlcHRpb24gaW4gc2VsZi5fX2Vycm9yczoKKyAgICAgICAgICAgIGlmIHNldmVyaXR5IGluIChsaWJ4bWwyLlBBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhtbDIuUEFSU0VSX1NFVkVSSVRZX1dBUk5JTkcpOgorICAgICAgICAgICAgICAgIHNlbGYuX2Vycl9oYW5kbGVyLndhcm5pbmcoZXhjZXB0aW9uKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIHdoZW4gZmF0YWwgaXMgc2V0LCB0aGUgcGFyc2Ugd2lsbCBzdG9wOworICAgICAgICAgICAgICAgICMgd2UgY29uc2lkZXIgdGhhdCB0aGUgbGFzdCBlcnJvciByZXBvcnRlZAorICAgICAgICAgICAgICAgICMgaXMgdGhlIGZhdGFsIG9uZS4KKyAgICAgICAgICAgICAgICBpZiBmYXRhbCBhbmQgZXhjZXB0aW9uIGlzIHNlbGYuX19lcnJvcnNbLTFdWzFdOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJfaGFuZGxlci5mYXRhbEVycm9yKGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJfaGFuZGxlci5lcnJvcihleGNlcHRpb24pCisgICAgICAgIHNlbGYuX19lcnJvcnMgPSBOb25lCisKKyAgICBkZWYgcGFyc2Uoc2VsZiwgc291cmNlKToKKyAgICAgICAgc2VsZi5fX3BhcnNpbmcgPSAxCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgcHJlcGFyZSBzb3VyY2UgYW5kIGNyZWF0ZSByZWFkZXIKKyAgICAgICAgICAgIGlmIHR5cGUoc291cmNlKSBpbiBTdHJpbmdUeXBlczoKKyAgICAgICAgICAgICAgICByZWFkZXIgPSBsaWJ4bWwyLm5ld1RleHRSZWFkZXJGaWxlbmFtZShzb3VyY2UpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNvdXJjZSA9IHNheHV0aWxzLnByZXBhcmVfaW5wdXRfc291cmNlKHNvdXJjZSkKKyAgICAgICAgICAgICAgICBpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoc291cmNlLmdldEJ5dGVTdHJlYW0oKSkKKyAgICAgICAgICAgICAgICByZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKHNvdXJjZS5nZXRTeXN0ZW1JZCgpKQorICAgICAgICAgICAgcmVhZGVyLlNldEVycm9ySGFuZGxlcihzZWxmLl9lcnJvckhhbmRsZXIsTm9uZSkKKyAgICAgICAgICAgICMgY29uZmlndXJlIHJlYWRlcgorICAgICAgICAgICAgaWYgc2VsZi5fX2V4dHBhcmFtczoKKyAgICAgICAgICAgICAgICByZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9MT0FERFRELDEpCisgICAgICAgICAgICAgICAgcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfREVGQVVMVEFUVFJTLDEpCisgICAgICAgICAgICAgICAgcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfU1VCU1RfRU5USVRJRVMsMSkKKyAgICAgICAgICAgICAgICByZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9WQUxJREFURSxzZWxmLl9fdmFsaWRhdGUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlYWRlci5TZXRQYXJzZXJQcm9wKGxpYnhtbDIuUEFSU0VSX0xPQUREVEQsIDApCisgICAgICAgICAgICAjIHdlIHJldXNlIGF0dHJpYnV0ZSBtYXBzIChmb3IgYSBzbGlnaHQgcGVyZm9ybWFuY2UgZ2FpbikKKyAgICAgICAgICAgIGlmIHNlbGYuX19uczoKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzTlNJbXBsID0geG1scmVhZGVyLkF0dHJpYnV0ZXNOU0ltcGwoe30se30pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNJbXBsID0geG1scmVhZGVyLkF0dHJpYnV0ZXNJbXBsKHt9KQorICAgICAgICAgICAgIyBwcmVmaXhlcyB0byBwb3AgKGZvciBlbmRQcmVmaXhNYXBwaW5nKQorICAgICAgICAgICAgcHJlZml4ZXMgPSBbXQorICAgICAgICAgICAgIyBzdGFydCBsb29wCisgICAgICAgICAgICBzZWxmLl9jb250X2hhbmRsZXIuc3RhcnREb2N1bWVudCgpCisgICAgICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgICAgIHIgPSByZWFkZXIuUmVhZCgpCisgICAgICAgICAgICAgICAgIyBjaGVjayBmb3IgZXJyb3JzCisgICAgICAgICAgICAgICAgaWYgciA9PSAxOgorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fX2Vycm9ycyBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0RXJyb3JzKDApCisgICAgICAgICAgICAgICAgZWxpZiByID09IDA6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9fZXJyb3JzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRFcnJvcnMoMCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgIyBlbmQgb2YgcGFyc2UKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fX2Vycm9ycyBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0RXJyb3JzKDEpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJfaGFuZGxlci5mYXRhbEVycm9yKFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQVhFeGNlcHRpb24oIlJlYWQgZmFpbGVkIChubyBkZXRhaWxzIGF2YWlsYWJsZSkiKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgIyBmYXRhbCBwYXJzZSBlcnJvcgorICAgICAgICAgICAgICAgICMgZ2V0IG5vZGUgdHlwZQorICAgICAgICAgICAgICAgIG5vZGVUeXBlID0gcmVhZGVyLk5vZGVUeXBlKCkKKyAgICAgICAgICAgICAgICAjIEVsZW1lbnQKKyAgICAgICAgICAgICAgICBpZiBub2RlVHlwZSA9PSAxOiAKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fX25zOgorICAgICAgICAgICAgICAgICAgICAgICAgZWx0TmFtZSA9IChfZChyZWFkZXIuTmFtZXNwYWNlVXJpKCkpLFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2QocmVhZGVyLkxvY2FsTmFtZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsdFFOYW1lID0gX2QocmVhZGVyLk5hbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNOU0ltcGwuX2F0dHJzID0gYXR0cnMgPSB7fQorICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlc05TSW1wbC5fcW5hbWVzID0gcW5hbWVzID0ge30KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ByZWZpeGVzID0gW10KKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHJlYWRlci5Nb3ZlVG9OZXh0QXR0cmlidXRlKCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcW5hbWUgPSBfZChyZWFkZXIuTmFtZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gX2QocmVhZGVyLlZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcW5hbWUuc3RhcnRzd2l0aCgieG1sbnMiKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHFuYW1lKSA+IDU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQcmVmaXggPSBxbmFtZVs2Ol0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ByZWZpeCA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UHJlZml4ZXMuYXBwZW5kKG5ld1ByZWZpeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udF9oYW5kbGVyLnN0YXJ0UHJlZml4TWFwcGluZyhcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQcmVmaXgsdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9fbnNwZng6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAjIGRvbid0IHJlcG9ydCB4bWxucyBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHROYW1lID0gKF9kKHJlYWRlci5OYW1lc3BhY2VVcmkoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZChyZWFkZXIuTG9jYWxOYW1lKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFuYW1lc1thdHROYW1lXSA9IHFuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnNbYXR0TmFtZV0gPSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLk1vdmVUb0VsZW1lbnQoKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udF9oYW5kbGVyLnN0YXJ0RWxlbWVudE5TKCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWx0TmFtZSxlbHRRTmFtZSxhdHRyaWJ1dGVzTlNJbXBsKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlYWRlci5Jc0VtcHR5RWxlbWVudCgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRfaGFuZGxlci5lbmRFbGVtZW50TlMoZWx0TmFtZSxlbHRRTmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbmV3UHJlZml4IGluIG5ld1ByZWZpeGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb250X2hhbmRsZXIuZW5kUHJlZml4TWFwcGluZyhuZXdQcmVmaXgpCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeGVzLmFwcGVuZChuZXdQcmVmaXhlcykKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsdE5hbWUgPSBfZChyZWFkZXIuTmFtZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlc0ltcGwuX2F0dHJzID0gYXR0cnMgPSB7fQorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgcmVhZGVyLk1vdmVUb05leHRBdHRyaWJ1dGUoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHROYW1lID0gX2QocmVhZGVyLk5hbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyc1thdHROYW1lXSA9IF9kKHJlYWRlci5WYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLk1vdmVUb0VsZW1lbnQoKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udF9oYW5kbGVyLnN0YXJ0RWxlbWVudCggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsdE5hbWUsYXR0cmlidXRlc0ltcGwpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb250X2hhbmRsZXIuZW5kRWxlbWVudChlbHROYW1lKQorICAgICAgICAgICAgICAgICMgRW5kRWxlbWVudAorICAgICAgICAgICAgICAgIGVsaWYgbm9kZVR5cGUgPT0gMTU6IAorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9fbnM6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb250X2hhbmRsZXIuZW5kRWxlbWVudE5TKCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfZChyZWFkZXIuTmFtZXNwYWNlVXJpKCkpLF9kKHJlYWRlci5Mb2NhbE5hbWUoKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZChyZWFkZXIuTmFtZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBwcmVmaXggaW4gcHJlZml4ZXMucG9wKCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udF9oYW5kbGVyLmVuZFByZWZpeE1hcHBpbmcocHJlZml4KQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udF9oYW5kbGVyLmVuZEVsZW1lbnQoX2QocmVhZGVyLk5hbWUoKSkpCisgICAgICAgICAgICAgICAgIyBUZXh0CisgICAgICAgICAgICAgICAgZWxpZiBub2RlVHlwZSA9PSAzOiAKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udF9oYW5kbGVyLmNoYXJhY3RlcnMoX2QocmVhZGVyLlZhbHVlKCkpKQorICAgICAgICAgICAgICAgICMgV2hpdGVzcGFjZQorICAgICAgICAgICAgICAgIGVsaWYgbm9kZVR5cGUgPT0gMTM6IAorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb250X2hhbmRsZXIuaWdub3JhYmxlV2hpdGVzcGFjZShfZChyZWFkZXIuVmFsdWUoKSkpCisgICAgICAgICAgICAgICAgIyBTaWduaWZpY2FudFdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICBlbGlmIG5vZGVUeXBlID09IDE0OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb250X2hhbmRsZXIuY2hhcmFjdGVycyhfZChyZWFkZXIuVmFsdWUoKSkpCisgICAgICAgICAgICAgICAgIyBDREFUQQorICAgICAgICAgICAgICAgIGVsaWYgbm9kZVR5cGUgPT0gNDoKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX19sZXhfaGFuZGxlciBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2xleF9oYW5kbGVyLnN0YXJ0Q0RBVEEoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb250X2hhbmRsZXIuY2hhcmFjdGVycyhfZChyZWFkZXIuVmFsdWUoKSkpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9fbGV4X2hhbmRsZXIgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19sZXhfaGFuZGxlci5lbmRDREFUQSgpCisgICAgICAgICAgICAgICAgIyBFbnRpdHlSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICBlbGlmIG5vZGVUeXBlID09IDU6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9fbGV4X2hhbmRsZXIgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhcnRFbnRpdHkoX2QocmVhZGVyLk5hbWUoKSkpCisgICAgICAgICAgICAgICAgICAgIHJlYWRlci5SZXNvbHZlRW50aXR5KCkKKyAgICAgICAgICAgICAgICAjIEVuZEVudGl0eQorICAgICAgICAgICAgICAgIGVsaWYgbm9kZVR5cGUgPT0gMTY6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9fbGV4X2hhbmRsZXIgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZW5kRW50aXR5KF9kKHJlYWRlci5OYW1lKCkpKQorICAgICAgICAgICAgICAgICMgUHJvY2Vzc2luZ0luc3RydWN0aW9uCisgICAgICAgICAgICAgICAgZWxpZiBub2RlVHlwZSA9PSA3OiAKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udF9oYW5kbGVyLnByb2Nlc3NpbmdJbnN0cnVjdGlvbiggXAorICAgICAgICAgICAgICAgICAgICAgICAgX2QocmVhZGVyLk5hbWUoKSksX2QocmVhZGVyLlZhbHVlKCkpKQorICAgICAgICAgICAgICAgICMgQ29tbWVudAorICAgICAgICAgICAgICAgIGVsaWYgbm9kZVR5cGUgPT0gODoKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX19sZXhfaGFuZGxlciBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2xleF9oYW5kbGVyLmNvbW1lbnQoX2QocmVhZGVyLlZhbHVlKCkpKQorICAgICAgICAgICAgICAgICMgRG9jdW1lbnRUeXBlCisgICAgICAgICAgICAgICAgZWxpZiBub2RlVHlwZSA9PSAxMDoKKyAgICAgICAgICAgICAgICAgICAgI2lmIG5vdCBzZWxmLl9fbGV4X2hhbmRsZXIgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgIyAgICBzZWxmLl9fbGV4X2hhbmRsZXIuc3RhcnREVEQoKQorICAgICAgICAgICAgICAgICAgICBwYXNzICMgVE9ETyAoaG93IHRvIGRldGVjdCBlbmREVEQ/IG9uIGZpcnN0IG5vbi1kdGQgZXZlbnQ/KQorICAgICAgICAgICAgICAgICMgWG1sRGVjbGFyYXRpb24KKyAgICAgICAgICAgICAgICBlbGlmIG5vZGVUeXBlID09IDE3OgorICAgICAgICAgICAgICAgICAgICBwYXNzICMgVE9ETworICAgICAgICAgICAgICAgICMgRW50aXR5CisgICAgICAgICAgICAgICAgZWxpZiBub2RlVHlwZSA9PSA2OgorICAgICAgICAgICAgICAgICAgICBwYXNzICMgVE9ETyAoZW50aXR5IGRlY2wpCisgICAgICAgICAgICAgICAgIyBOb3RhdGlvbiAoZGVjbCkKKyAgICAgICAgICAgICAgICBlbGlmIG5vZGVUeXBlID09IDEyOgorICAgICAgICAgICAgICAgICAgICBwYXNzICMgVE9ETworICAgICAgICAgICAgICAgICMgQXR0cmlidXRlIChuZXZlciBpbiB0aGlzIGxvb3ApCisgICAgICAgICAgICAgICAgI2VsaWYgbm9kZVR5cGUgPT0gMjogCisgICAgICAgICAgICAgICAgIyAgICBwYXNzCisgICAgICAgICAgICAgICAgIyBEb2N1bWVudCAobm90IGV4cG9zZWQpCisgICAgICAgICAgICAgICAgI2VsaWYgbm9kZVR5cGUgPT0gOTogCisgICAgICAgICAgICAgICAgIyAgICBwYXNzCisgICAgICAgICAgICAgICAgIyBEb2N1bWVudEZyYWdtZW50IChuZXZlciByZXR1cm5lZCBieSBYbWxSZWFkZXIpCisgICAgICAgICAgICAgICAgI2VsaWYgbm9kZVR5cGUgPT0gMTE6CisgICAgICAgICAgICAgICAgIyAgICBwYXNzCisgICAgICAgICAgICAgICAgIyBOb25lCisgICAgICAgICAgICAgICAgI2VsaWYgbm9kZVR5cGUgPT0gMDoKKyAgICAgICAgICAgICAgICAjICAgIHBhc3MKKyAgICAgICAgICAgICAgICAjIC0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBTQVhFeGNlcHRpb24oIlVuZXhwZWN0ZWQgbm9kZSB0eXBlICVkIiAlIG5vZGVUeXBlKQorICAgICAgICAgICAgaWYgciA9PSAwOgorICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRfaGFuZGxlci5lbmREb2N1bWVudCgpCisgICAgICAgICAgICByZWFkZXIuQ2xvc2UoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fX3BhcnNpbmcgPSAwCisKKyAgICBkZWYgc2V0RFRESGFuZGxlcihzZWxmLCBoYW5kbGVyKToKKyAgICAgICAgIyBUT0RPICh3aGVuIHN1cHBvcnRlZCwgdGhlIGluaGVyaXRlZCBtZXRob2Qgd29ya3MganVzdCBmaW5lKQorICAgICAgICByYWlzZSBTQVhOb3RTdXBwb3J0ZWRFeGNlcHRpb24oIkRUREhhbmRsZXIgbm90IHN1cHBvcnRlZCIpCisKKyAgICBkZWYgc2V0RW50aXR5UmVzb2x2ZXIoc2VsZiwgcmVzb2x2ZXIpOgorICAgICAgICAjIFRPRE8gKHdoZW4gc3VwcG9ydGVkLCB0aGUgaW5oZXJpdGVkIG1ldGhvZCB3b3JrcyBqdXN0IGZpbmUpCisgICAgICAgIHJhaXNlIFNBWE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigiRW50aXR5UmVzb2x2ZXIgbm90IHN1cHBvcnRlZCIpCisKKyAgICBkZWYgZ2V0RmVhdHVyZShzZWxmLCBuYW1lKToKKyAgICAgICAgaWYgbmFtZSA9PSBmZWF0dXJlX25hbWVzcGFjZXM6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fX25zCisgICAgICAgIGVsaWYgbmFtZSA9PSBmZWF0dXJlX25hbWVzcGFjZV9wcmVmaXhlczoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fbnNwZngKKyAgICAgICAgZWxpZiBuYW1lID09IGZlYXR1cmVfdmFsaWRhdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fdmFsaWRhdGUKKyAgICAgICAgZWxpZiBuYW1lID09IGZlYXR1cmVfZXh0ZXJuYWxfZ2VzOgorICAgICAgICAgICAgcmV0dXJuIDEgIyBUT0RPIChkb2VzIHRoYXQgcmVsYXRlIHRvIFBBUlNFUl9MT0FERFREKT8KKyAgICAgICAgZWxpZiBuYW1lID09IGZlYXR1cmVfZXh0ZXJuYWxfcGVzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19leHRwYXJhbXMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFNBWE5vdFJlY29nbml6ZWRFeGNlcHRpb24oIkZlYXR1cmUgJyVzJyBub3QgcmVjb2duaXplZCIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpCisKKyAgICBkZWYgc2V0RmVhdHVyZShzZWxmLCBuYW1lLCBzdGF0ZSk6CisgICAgICAgIGlmIHNlbGYuX19wYXJzaW5nOgorICAgICAgICAgICAgcmFpc2UgU0FYTm90U3VwcG9ydGVkRXhjZXB0aW9uKCJDYW5ub3Qgc2V0IGZlYXR1cmUgJXMgIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoaWxlIHBhcnNpbmciICUgbmFtZSkKKyAgICAgICAgaWYgbmFtZSA9PSBmZWF0dXJlX25hbWVzcGFjZXM6CisgICAgICAgICAgICBzZWxmLl9fbnMgPSBzdGF0ZQorICAgICAgICBlbGlmIG5hbWUgPT0gZmVhdHVyZV9uYW1lc3BhY2VfcHJlZml4ZXM6CisgICAgICAgICAgICBzZWxmLl9fbnNwZnggPSBzdGF0ZQorICAgICAgICBlbGlmIG5hbWUgPT0gZmVhdHVyZV92YWxpZGF0aW9uOgorICAgICAgICAgICAgc2VsZi5fX3ZhbGlkYXRlID0gc3RhdGUKKyAgICAgICAgZWxpZiBuYW1lID09IGZlYXR1cmVfZXh0ZXJuYWxfZ2VzOgorICAgICAgICAgICAgaWYgc3RhdGUgPT0gMDoKKyAgICAgICAgICAgICAgICAjIFRPRE8gKGRvZXMgdGhhdCByZWxhdGUgdG8gUEFSU0VSX0xPQUREVEQpPworICAgICAgICAgICAgICAgIHJhaXNlIFNBWE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigiRmVhdHVyZSAnJXMnIG5vdCBzdXBwb3J0ZWQiICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKQorICAgICAgICBlbGlmIG5hbWUgPT0gZmVhdHVyZV9leHRlcm5hbF9wZXM6CisgICAgICAgICAgICBzZWxmLl9fZXh0cGFyYW1zID0gc3RhdGUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFNBWE5vdFJlY29nbml6ZWRFeGNlcHRpb24oIkZlYXR1cmUgJyVzJyBub3QgcmVjb2duaXplZCIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpCisKKyAgICBkZWYgZ2V0UHJvcGVydHkoc2VsZiwgbmFtZSk6CisgICAgICAgIGlmIG5hbWUgPT0gcHJvcGVydHlfbGV4aWNhbF9oYW5kbGVyOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19sZXhfaGFuZGxlcgorICAgICAgICBlbGlmIG5hbWUgPT0gcHJvcGVydHlfZGVjbGFyYXRpb25faGFuZGxlcjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fZGVjbF9oYW5kbGVyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBTQVhOb3RSZWNvZ25pemVkRXhjZXB0aW9uKCJQcm9wZXJ0eSAnJXMnIG5vdCByZWNvZ25pemVkIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSkKKworICAgIGRlZiBzZXRQcm9wZXJ0eShzZWxmLCBuYW1lLCB2YWx1ZSk6ICAgICAKKyAgICAgICAgaWYgbmFtZSA9PSBwcm9wZXJ0eV9sZXhpY2FsX2hhbmRsZXI6CisgICAgICAgICAgICBzZWxmLl9fbGV4X2hhbmRsZXIgPSB2YWx1ZQorICAgICAgICBlbGlmIG5hbWUgPT0gcHJvcGVydHlfZGVjbGFyYXRpb25faGFuZGxlcjoKKyAgICAgICAgICAgICMgVE9ETzogcmVtb3ZlIGlmL3doZW4gbGlieG1sMiBzdXBwb3J0cyBkdGQgZXZlbnRzCisgICAgICAgICAgICByYWlzZSBTQVhOb3RTdXBwb3J0ZWRFeGNlcHRpb24oIlByb3BlcnR5ICclcycgbm90IHN1cHBvcnRlZCIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuX19kZWNsX2hhbmRsZXIgPSB2YWx1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgU0FYTm90UmVjb2duaXplZEV4Y2VwdGlvbigiUHJvcGVydHkgJyVzJyBub3QgcmVjb2duaXplZCIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpCisKK2RlZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgcmV0dXJuIExpYlhtbDJSZWFkZXIoKQorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi9nZW5lcmF0b3IucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi9nZW5lcmF0b3IucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWUxZmRhYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL2dlbmVyYXRvci5weQpAQCAtMCwwICsxLDExODcgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CisjCisjIGdlbmVyYXRlIHB5dGhvbiB3cmFwcGVycyBmcm9tIHRoZSBYTUwgQVBJIGRlc2NyaXB0aW9uCisjCisKK2Z1bmN0aW9ucyA9IHt9CitlbnVtcyA9IHt9ICMgeyBlbnVtVHlwZTogeyBlbnVtQ29uc3RhbnQ6IGVudW1WYWx1ZSB9IH0KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgc3RyaW5nCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgIyBsYXVuY2hlZCBhcyBhIHNjcmlwdAorICAgIHNyY1ByZWYgPSBvcy5wYXRoLmRpcm5hbWUoc3lzLmFyZ3ZbMF0pCitlbHNlOgorICAgICMgaW1wb3J0ZWQKKyAgICBzcmNQcmVmID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyAgVGhhdCBwYXJ0IGlmIHB1cmVseSB0aGUgQVBJIGFjcXVpc2l0aW9uIHBoYXNlIGZyb20gdGhlCisjICBYTUwgQVBJIGRlc2NyaXB0aW9uCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IG9zCitpbXBvcnQgeG1sLnNheAorCitkZWJ1ZyA9IDAKKworZGVmIGdldHBhcnNlcigpOgorICAgICMgQXR0YWNoIHBhcnNlciB0byBhbiB1bm1hcnNoYWxsaW5nIG9iamVjdC4gcmV0dXJuIGJvdGggb2JqZWN0cy4KKyAgICB0YXJnZXQgPSBkb2NQYXJzZXIoKQorICAgIHBhcnNlciA9IHhtbC5zYXgubWFrZV9wYXJzZXIoKQorICAgIHBhcnNlci5zZXRDb250ZW50SGFuZGxlcih0YXJnZXQpCisgICAgcmV0dXJuIHBhcnNlciwgdGFyZ2V0CisKK2NsYXNzIGRvY1BhcnNlcih4bWwuc2F4LmhhbmRsZXIuQ29udGVudEhhbmRsZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fbWV0aG9kbmFtZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fZGF0YSA9IFtdCisgICAgICAgIHNlbGYuaW5fZnVuY3Rpb24gPSAwCisKKyAgICAgICAgc2VsZi5zdGFydEVsZW1lbnQgPSBzZWxmLnN0YXJ0CisgICAgICAgIHNlbGYuZW5kRWxlbWVudCA9IHNlbGYuZW5kCisgICAgICAgIHNlbGYuY2hhcmFjdGVycyA9IHNlbGYuZGF0YQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBpZiBkZWJ1ZzoKKyAgICAgICAgICAgIHByaW50ICJjbG9zZSIKKworICAgIGRlZiBnZXRtZXRob2RuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fbWV0aG9kbmFtZQorCisgICAgZGVmIGRhdGEoc2VsZiwgdGV4dCk6CisgICAgICAgIGlmIGRlYnVnOgorICAgICAgICAgICAgcHJpbnQgImRhdGEgJXMiICUgdGV4dAorICAgICAgICBzZWxmLl9kYXRhLmFwcGVuZCh0ZXh0KQorCisgICAgZGVmIHN0YXJ0KHNlbGYsIHRhZywgYXR0cnMpOgorICAgICAgICBpZiBkZWJ1ZzoKKyAgICAgICAgICAgIHByaW50ICJzdGFydCAlcywgJXMiICUgKHRhZywgYXR0cnMpCisgICAgICAgIGlmIHRhZyA9PSAnZnVuY3Rpb24nOgorICAgICAgICAgICAgc2VsZi5fZGF0YSA9IFtdCisgICAgICAgICAgICBzZWxmLmluX2Z1bmN0aW9uID0gMQorICAgICAgICAgICAgc2VsZi5mdW5jdGlvbiA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fY29uZCA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fYXJncyA9IFtdCisgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX2Rlc2NyID0gTm9uZQorICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9yZXR1cm4gPSBOb25lCisgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX2ZpbGUgPSBOb25lCisgICAgICAgICAgICBpZiBhdHRycy5oYXNfa2V5KCduYW1lJyk6CisgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbiA9IGF0dHJzWyduYW1lJ10KKyAgICAgICAgICAgIGlmIGF0dHJzLmhhc19rZXkoJ2ZpbGUnKToKKyAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX2ZpbGUgPSBhdHRyc1snZmlsZSddCisgICAgICAgIGVsaWYgdGFnID09ICdjb25kJzoKKyAgICAgICAgICAgIHNlbGYuX2RhdGEgPSBbXQorICAgICAgICBlbGlmIHRhZyA9PSAnaW5mbyc6CisgICAgICAgICAgICBzZWxmLl9kYXRhID0gW10KKyAgICAgICAgZWxpZiB0YWcgPT0gJ2FyZyc6CisgICAgICAgICAgICBpZiBzZWxmLmluX2Z1bmN0aW9uID09IDE6CisgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9hcmdfbmFtZSA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX2FyZ190eXBlID0gTm9uZQorICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fYXJnX2luZm8gPSBOb25lCisgICAgICAgICAgICAgICAgaWYgYXR0cnMuaGFzX2tleSgnbmFtZScpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX2FyZ19uYW1lID0gYXR0cnNbJ25hbWUnXQorICAgICAgICAgICAgICAgIGlmIGF0dHJzLmhhc19rZXkoJ3R5cGUnKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9hcmdfdHlwZSA9IGF0dHJzWyd0eXBlJ10KKyAgICAgICAgICAgICAgICBpZiBhdHRycy5oYXNfa2V5KCdpbmZvJyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fYXJnX2luZm8gPSBhdHRyc1snaW5mbyddCisgICAgICAgIGVsaWYgdGFnID09ICdyZXR1cm4nOgorICAgICAgICAgICAgaWYgc2VsZi5pbl9mdW5jdGlvbiA9PSAxOgorICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fcmV0dXJuX3R5cGUgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9yZXR1cm5faW5mbyA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX3JldHVybl9maWVsZCA9IE5vbmUKKyAgICAgICAgICAgICAgICBpZiBhdHRycy5oYXNfa2V5KCd0eXBlJyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fcmV0dXJuX3R5cGUgPSBhdHRyc1sndHlwZSddCisgICAgICAgICAgICAgICAgaWYgYXR0cnMuaGFzX2tleSgnaW5mbycpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX3JldHVybl9pbmZvID0gYXR0cnNbJ2luZm8nXQorICAgICAgICAgICAgICAgIGlmIGF0dHJzLmhhc19rZXkoJ2ZpZWxkJyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fcmV0dXJuX2ZpZWxkID0gYXR0cnNbJ2ZpZWxkJ10KKyAgICAgICAgZWxpZiB0YWcgPT0gJ2VudW0nOgorICAgICAgICAgICAgZW51bShhdHRyc1sndHlwZSddLGF0dHJzWyduYW1lJ10sYXR0cnNbJ3ZhbHVlJ10pCisKKyAgICBkZWYgZW5kKHNlbGYsIHRhZyk6CisgICAgICAgIGlmIGRlYnVnOgorICAgICAgICAgICAgcHJpbnQgImVuZCAlcyIgJSB0YWcKKyAgICAgICAgaWYgdGFnID09ICdmdW5jdGlvbic6CisgICAgICAgICAgICBpZiBzZWxmLmZ1bmN0aW9uICE9IE5vbmU6CisgICAgICAgICAgICAgICAgZnVuY3Rpb24oc2VsZi5mdW5jdGlvbiwgc2VsZi5mdW5jdGlvbl9kZXNjciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX3JldHVybiwgc2VsZi5mdW5jdGlvbl9hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fZmlsZSwgc2VsZi5mdW5jdGlvbl9jb25kKQorICAgICAgICAgICAgICAgIHNlbGYuaW5fZnVuY3Rpb24gPSAwCisgICAgICAgIGVsaWYgdGFnID09ICdhcmcnOgorICAgICAgICAgICAgaWYgc2VsZi5pbl9mdW5jdGlvbiA9PSAxOgorICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fYXJncy5hcHBlbmQoW3NlbGYuZnVuY3Rpb25fYXJnX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9hcmdfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX2FyZ19pbmZvXSkKKyAgICAgICAgZWxpZiB0YWcgPT0gJ3JldHVybic6CisgICAgICAgICAgICBpZiBzZWxmLmluX2Z1bmN0aW9uID09IDE6CisgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9yZXR1cm4gPSBbc2VsZi5mdW5jdGlvbl9yZXR1cm5fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uX3JldHVybl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb25fcmV0dXJuX2ZpZWxkXQorICAgICAgICBlbGlmIHRhZyA9PSAnaW5mbyc6CisgICAgICAgICAgICBzdHIgPSAnJworICAgICAgICAgICAgZm9yIGMgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgICAgICBzdHIgPSBzdHIgKyBjCisgICAgICAgICAgICBpZiBzZWxmLmluX2Z1bmN0aW9uID09IDE6CisgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9kZXNjciA9IHN0cgorICAgICAgICBlbGlmIHRhZyA9PSAnY29uZCc6CisgICAgICAgICAgICBzdHIgPSAnJworICAgICAgICAgICAgZm9yIGMgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgICAgICBzdHIgPSBzdHIgKyBjCisgICAgICAgICAgICBpZiBzZWxmLmluX2Z1bmN0aW9uID09IDE6CisgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9jb25kID0gc3RyCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCitkZWYgZnVuY3Rpb24obmFtZSwgZGVzYywgcmV0LCBhcmdzLCBmaWxlLCBjb25kKToKKyAgICBmdW5jdGlvbnNbbmFtZV0gPSAoZGVzYywgcmV0LCBhcmdzLCBmaWxlLCBjb25kKQorCitkZWYgZW51bSh0eXBlLCBuYW1lLCB2YWx1ZSk6CisgICAgaWYgbm90IGVudW1zLmhhc19rZXkodHlwZSk6CisgICAgICAgIGVudW1zW3R5cGVdID0ge30KKyAgICBlbnVtc1t0eXBlXVtuYW1lXSA9IHZhbHVlCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjICBTb21lIGZpbHRlcmluZyBydWtlcyB0byBkcm9wIGZ1bmN0aW9ucy90eXBlcyB3aGljaCBzaG91bGQgbm90CisjICBiZSBleHBvc2VkIGFzLWlzIG9uIHRoZSBQeXRob24gaW50ZXJmYWNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitza2lwcGVkX21vZHVsZXMgPSB7CisgICAgJ3htbG1lbW9yeSc6IE5vbmUsCisgICAgJ0RPQ0JwYXJzZXInOiBOb25lLAorICAgICdTQVgnOiBOb25lLAorICAgICdoYXNoJzogTm9uZSwKKyAgICAnbGlzdCc6IE5vbmUsCisgICAgJ3RocmVhZHMnOiBOb25lLAorIyAgICAneHBvaW50ZXInOiBOb25lLAorfQorc2tpcHBlZF90eXBlcyA9IHsKKyAgICAnaW50IConOiAidXN1YWxseSBhIHJldHVybiB0eXBlIiwKKyAgICAneG1sU0FYSGFuZGxlclB0cic6ICJub3QgdGhlIHByb3BlciBpbnRlcmZhY2UgZm9yIFNBWCIsCisgICAgJ2h0bWxTQVhIYW5kbGVyUHRyJzogIm5vdCB0aGUgcHJvcGVyIGludGVyZmFjZSBmb3IgU0FYIiwKKyAgICAneG1sUk11dGV4UHRyJzogInRocmVhZCBzcGVjaWZpYywgc2tpcHBlZCIsCisgICAgJ3htbE11dGV4UHRyJzogInRocmVhZCBzcGVjaWZpYywgc2tpcHBlZCIsCisgICAgJ3htbEdsb2JhbFN0YXRlUHRyJzogInRocmVhZCBzcGVjaWZpYywgc2tpcHBlZCIsCisgICAgJ3htbExpc3RQdHInOiAiaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gbm90IHN1aXRhYmxlIGZvciBweXRob24iLAorICAgICd4bWxCdWZmZXJQdHInOiAiaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gbm90IHN1aXRhYmxlIGZvciBweXRob24iLAorICAgICdGSUxFIConOiBOb25lLAorfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyAgVGFibGUgb2YgcmVtYXBwaW5nIHRvL2Zyb20gdGhlIHB5dGhvbiB0eXBlIG9yIGNsYXNzIHRvIHRoZSBDCisjICBjb3VudGVycGFydC4KKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK3B5X3R5cGVzID0geworICAgICd2b2lkJzogKE5vbmUsIE5vbmUsIE5vbmUsIE5vbmUpLAorICAgICdpbnQnOiAgKCdpJywgTm9uZSwgImludCIsICJpbnQiKSwKKyAgICAnbG9uZyc6ICAoJ2wnLCBOb25lLCAibG9uZyIsICJsb25nIiksCisgICAgJ2RvdWJsZSc6ICAoJ2QnLCBOb25lLCAiZG91YmxlIiwgImRvdWJsZSIpLAorICAgICd1bnNpZ25lZCBpbnQnOiAgKCdpJywgTm9uZSwgImludCIsICJpbnQiKSwKKyAgICAneG1sQ2hhcic6ICAoJ2MnLCBOb25lLCAiaW50IiwgImludCIpLAorICAgICd1bnNpZ25lZCBjaGFyIConOiAgKCd6JywgTm9uZSwgImNoYXJQdHIiLCAiY2hhciAqIiksCisgICAgJ2NoYXIgKic6ICAoJ3onLCBOb25lLCAiY2hhclB0ciIsICJjaGFyICoiKSwKKyAgICAnY29uc3QgY2hhciAqJzogICgneicsIE5vbmUsICJjaGFyUHRyQ29uc3QiLCAiY29uc3QgY2hhciAqIiksCisgICAgJ3htbENoYXIgKic6ICAoJ3onLCBOb25lLCAieG1sQ2hhclB0ciIsICJ4bWxDaGFyICoiKSwKKyAgICAnY29uc3QgeG1sQ2hhciAqJzogICgneicsIE5vbmUsICJ4bWxDaGFyUHRyQ29uc3QiLCAiY29uc3QgeG1sQ2hhciAqIiksCisgICAgJ3htbE5vZGVQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ2NvbnN0IHhtbE5vZGVQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ3htbE5vZGUgKic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxOb2RlUHRyIiwgInhtbE5vZGVQdHIiKSwKKyAgICAnY29uc3QgeG1sTm9kZSAqJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5vZGVQdHIiLCAieG1sTm9kZVB0ciIpLAorICAgICd4bWxEdGRQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ2NvbnN0IHhtbER0ZFB0cic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxOb2RlUHRyIiwgInhtbE5vZGVQdHIiKSwKKyAgICAneG1sRHRkIConOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ2NvbnN0IHhtbER0ZCAqJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5vZGVQdHIiLCAieG1sTm9kZVB0ciIpLAorICAgICd4bWxBdHRyUHRyJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5vZGVQdHIiLCAieG1sTm9kZVB0ciIpLAorICAgICdjb25zdCB4bWxBdHRyUHRyJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5vZGVQdHIiLCAieG1sTm9kZVB0ciIpLAorICAgICd4bWxBdHRyIConOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ2NvbnN0IHhtbEF0dHIgKic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxOb2RlUHRyIiwgInhtbE5vZGVQdHIiKSwKKyAgICAneG1sRW50aXR5UHRyJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5vZGVQdHIiLCAieG1sTm9kZVB0ciIpLAorICAgICdjb25zdCB4bWxFbnRpdHlQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ3htbEVudGl0eSAqJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5vZGVQdHIiLCAieG1sTm9kZVB0ciIpLAorICAgICdjb25zdCB4bWxFbnRpdHkgKic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxOb2RlUHRyIiwgInhtbE5vZGVQdHIiKSwKKyAgICAneG1sRWxlbWVudFB0cic6ICAoJ08nLCAieG1sRWxlbWVudCIsICJ4bWxFbGVtZW50UHRyIiwgInhtbEVsZW1lbnRQdHIiKSwKKyAgICAnY29uc3QgeG1sRWxlbWVudFB0cic6ICAoJ08nLCAieG1sRWxlbWVudCIsICJ4bWxFbGVtZW50UHRyIiwgInhtbEVsZW1lbnRQdHIiKSwKKyAgICAneG1sRWxlbWVudCAqJzogICgnTycsICJ4bWxFbGVtZW50IiwgInhtbEVsZW1lbnRQdHIiLCAieG1sRWxlbWVudFB0ciIpLAorICAgICdjb25zdCB4bWxFbGVtZW50IConOiAgKCdPJywgInhtbEVsZW1lbnQiLCAieG1sRWxlbWVudFB0ciIsICJ4bWxFbGVtZW50UHRyIiksCisgICAgJ3htbEF0dHJpYnV0ZVB0cic6ICAoJ08nLCAieG1sQXR0cmlidXRlIiwgInhtbEF0dHJpYnV0ZVB0ciIsICJ4bWxBdHRyaWJ1dGVQdHIiKSwKKyAgICAnY29uc3QgeG1sQXR0cmlidXRlUHRyJzogICgnTycsICJ4bWxBdHRyaWJ1dGUiLCAieG1sQXR0cmlidXRlUHRyIiwgInhtbEF0dHJpYnV0ZVB0ciIpLAorICAgICd4bWxBdHRyaWJ1dGUgKic6ICAoJ08nLCAieG1sQXR0cmlidXRlIiwgInhtbEF0dHJpYnV0ZVB0ciIsICJ4bWxBdHRyaWJ1dGVQdHIiKSwKKyAgICAnY29uc3QgeG1sQXR0cmlidXRlIConOiAgKCdPJywgInhtbEF0dHJpYnV0ZSIsICJ4bWxBdHRyaWJ1dGVQdHIiLCAieG1sQXR0cmlidXRlUHRyIiksCisgICAgJ3htbE5zUHRyJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5zUHRyIiwgInhtbE5zUHRyIiksCisgICAgJ2NvbnN0IHhtbE5zUHRyJzogICgnTycsICJ4bWxOb2RlIiwgInhtbE5zUHRyIiwgInhtbE5zUHRyIiksCisgICAgJ3htbE5zIConOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTnNQdHIiLCAieG1sTnNQdHIiKSwKKyAgICAnY29uc3QgeG1sTnMgKic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxOc1B0ciIsICJ4bWxOc1B0ciIpLAorICAgICd4bWxEb2NQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sRG9jUHRyIiwgInhtbERvY1B0ciIpLAorICAgICdjb25zdCB4bWxEb2NQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sRG9jUHRyIiwgInhtbERvY1B0ciIpLAorICAgICd4bWxEb2MgKic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxEb2NQdHIiLCAieG1sRG9jUHRyIiksCisgICAgJ2NvbnN0IHhtbERvYyAqJzogICgnTycsICJ4bWxOb2RlIiwgInhtbERvY1B0ciIsICJ4bWxEb2NQdHIiKSwKKyAgICAnaHRtbERvY1B0cic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxEb2NQdHIiLCAieG1sRG9jUHRyIiksCisgICAgJ2NvbnN0IGh0bWxEb2NQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sRG9jUHRyIiwgInhtbERvY1B0ciIpLAorICAgICdodG1sRG9jIConOiAgKCdPJywgInhtbE5vZGUiLCAieG1sRG9jUHRyIiwgInhtbERvY1B0ciIpLAorICAgICdjb25zdCBodG1sRG9jIConOiAgKCdPJywgInhtbE5vZGUiLCAieG1sRG9jUHRyIiwgInhtbERvY1B0ciIpLAorICAgICdodG1sTm9kZVB0cic6ICAoJ08nLCAieG1sTm9kZSIsICJ4bWxOb2RlUHRyIiwgInhtbE5vZGVQdHIiKSwKKyAgICAnY29uc3QgaHRtbE5vZGVQdHInOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ2h0bWxOb2RlIConOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ2NvbnN0IGh0bWxOb2RlIConOiAgKCdPJywgInhtbE5vZGUiLCAieG1sTm9kZVB0ciIsICJ4bWxOb2RlUHRyIiksCisgICAgJ3htbFhQYXRoQ29udGV4dFB0cic6ICAoJ08nLCAieG1sWFBhdGhDb250ZXh0IiwgInhtbFhQYXRoQ29udGV4dFB0ciIsICJ4bWxYUGF0aENvbnRleHRQdHIiKSwKKyAgICAneG1sWFBhdGhDb250ZXh0IConOiAgKCdPJywgInhwYXRoQ29udGV4dCIsICJ4bWxYUGF0aENvbnRleHRQdHIiLCAieG1sWFBhdGhDb250ZXh0UHRyIiksCisgICAgJ3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cic6ICAoJ08nLCAieG1sWFBhdGhQYXJzZXJDb250ZXh0IiwgInhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciIsICJ4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiKSwKKyAgICAneG1sUGFyc2VyQ3R4dFB0cic6ICgnTycsICJwYXJzZXJDdHh0IiwgInhtbFBhcnNlckN0eHRQdHIiLCAieG1sUGFyc2VyQ3R4dFB0ciIpLAorICAgICd4bWxQYXJzZXJDdHh0IConOiAoJ08nLCAicGFyc2VyQ3R4dCIsICJ4bWxQYXJzZXJDdHh0UHRyIiwgInhtbFBhcnNlckN0eHRQdHIiKSwKKyAgICAnaHRtbFBhcnNlckN0eHRQdHInOiAoJ08nLCAicGFyc2VyQ3R4dCIsICJ4bWxQYXJzZXJDdHh0UHRyIiwgInhtbFBhcnNlckN0eHRQdHIiKSwKKyAgICAnaHRtbFBhcnNlckN0eHQgKic6ICgnTycsICJwYXJzZXJDdHh0IiwgInhtbFBhcnNlckN0eHRQdHIiLCAieG1sUGFyc2VyQ3R4dFB0ciIpLAorICAgICd4bWxWYWxpZEN0eHRQdHInOiAoJ08nLCAiVmFsaWRDdHh0IiwgInhtbFZhbGlkQ3R4dFB0ciIsICJ4bWxWYWxpZEN0eHRQdHIiKSwKKyAgICAneG1sQ2F0YWxvZ1B0cic6ICgnTycsICJjYXRhbG9nIiwgInhtbENhdGFsb2dQdHIiLCAieG1sQ2F0YWxvZ1B0ciIpLAorICAgICdGSUxFIConOiAoJ08nLCAiRmlsZSIsICJGSUxFUHRyIiwgIkZJTEUgKiIpLAorICAgICd4bWxVUklQdHInOiAoJ08nLCAiVVJJIiwgInhtbFVSSVB0ciIsICJ4bWxVUklQdHIiKSwKKyAgICAneG1sRXJyb3JQdHInOiAoJ08nLCAiRXJyb3IiLCAieG1sRXJyb3JQdHIiLCAieG1sRXJyb3JQdHIiKSwKKyAgICAneG1sT3V0cHV0QnVmZmVyUHRyJzogKCdPJywgIm91dHB1dEJ1ZmZlciIsICJ4bWxPdXRwdXRCdWZmZXJQdHIiLCAieG1sT3V0cHV0QnVmZmVyUHRyIiksCisgICAgJ3htbFBhcnNlcklucHV0QnVmZmVyUHRyJzogKCdPJywgImlucHV0QnVmZmVyIiwgInhtbFBhcnNlcklucHV0QnVmZmVyUHRyIiwgInhtbFBhcnNlcklucHV0QnVmZmVyUHRyIiksCisgICAgJ3htbFJlZ2V4cFB0cic6ICgnTycsICJ4bWxSZWciLCAieG1sUmVnZXhwUHRyIiwgInhtbFJlZ2V4cFB0ciIpLAorICAgICd4bWxUZXh0UmVhZGVyTG9jYXRvclB0cic6ICgnTycsICJ4bWxUZXh0UmVhZGVyTG9jYXRvciIsICJ4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciIsICJ4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciIpLAorICAgICd4bWxUZXh0UmVhZGVyUHRyJzogKCdPJywgInhtbFRleHRSZWFkZXIiLCAieG1sVGV4dFJlYWRlclB0ciIsICJ4bWxUZXh0UmVhZGVyUHRyIiksCisgICAgJ3htbFJlbGF4TkdQdHInOiAoJ08nLCAicmVsYXhOZ1NjaGVtYSIsICJ4bWxSZWxheE5HUHRyIiwgInhtbFJlbGF4TkdQdHIiKSwKKyAgICAneG1sUmVsYXhOR1BhcnNlckN0eHRQdHInOiAoJ08nLCAicmVsYXhOZ1BhcnNlckN0eHQiLCAieG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiLCAieG1sUmVsYXhOR1BhcnNlckN0eHRQdHIiKSwKKyAgICAneG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cic6ICgnTycsICJyZWxheE5nVmFsaWRDdHh0IiwgInhtbFJlbGF4TkdWYWxpZEN0eHRQdHIiLCAieG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciIpLAorICAgICd4bWxTY2hlbWFQdHInOiAoJ08nLCAiU2NoZW1hIiwgInhtbFNjaGVtYVB0ciIsICJ4bWxTY2hlbWFQdHIiKSwKKyAgICAneG1sU2NoZW1hUGFyc2VyQ3R4dFB0cic6ICgnTycsICJTY2hlbWFQYXJzZXJDdHh0IiwgInhtbFNjaGVtYVBhcnNlckN0eHRQdHIiLCAieG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciIpLAorICAgICd4bWxTY2hlbWFWYWxpZEN0eHRQdHInOiAoJ08nLCAiU2NoZW1hVmFsaWRDdHh0IiwgInhtbFNjaGVtYVZhbGlkQ3R4dFB0ciIsICJ4bWxTY2hlbWFWYWxpZEN0eHRQdHIiKSwKK30KKworcHlfcmV0dXJuX3R5cGVzID0geworICAgICd4bWxYUGF0aE9iamVjdFB0cic6ICAoJ08nLCAiZm9vIiwgInhtbFhQYXRoT2JqZWN0UHRyIiwgInhtbFhQYXRoT2JqZWN0UHRyIiksCit9CisKK3Vua25vd25fdHlwZXMgPSB7fQorCitmb3JlaWduX2VuY29kaW5nX2FyZ3MgPSAoCisgICAgJ2h0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0JywKKyAgICAnaHRtbEN0eHRSZWFkTWVtb3J5JywKKyAgICAnaHRtbFBhcnNlQ2h1bmsnLAorICAgICdodG1sUmVhZE1lbW9yeScsCisgICAgJ3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQnLAorICAgICd4bWxDdHh0UmVhZE1lbW9yeScsCisgICAgJ3htbEN0eHRSZXNldFB1c2gnLAorICAgICd4bWxQYXJzZUNodW5rJywKKyAgICAneG1sUGFyc2VNZW1vcnknLAorICAgICd4bWxSZWFkTWVtb3J5JywKKyAgICAneG1sUmVjb3Zlck1lbW9yeScsCispCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjICBUaGlzIHBhcnQgd3JpdGVzIHRoZSBDIDwtPiBQeXRob24gc3R1YnMgbGlieG1sMi1weS5bY2hdIGFuZAorIyAgdGhlIHRhYmxlIGxpYnhtbDItZXhwb3J0LmMgdG8gYWRkIHdoZW4gcmVnaXN0cmVyaW5nIHRoZSBQeXRob24gbW9kdWxlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIENsYXNzIG1ldGhvZHMgd2hpY2ggYXJlIHdyaXR0ZW4gYnkgaGFuZCBpbiBsaWJ4bWwuYyBidXQgdGhlIFB5dGhvbi1sZXZlbAorIyBjb2RlIGlzIHN0aWxsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIChzbyB0aGV5IGFyZSBub3QgaW4gc2tpcF9mdW5jdGlvbigpKS4KK3NraXBfaW1wbCA9ICgKKyAgICAneG1sU2F2ZUZpbGVUbycsCisgICAgJ3htbFNhdmVGb3JtYXRGaWxlVG8nLAorKQorCitkZWYgc2tpcF9mdW5jdGlvbihuYW1lKToKKyAgICBpZiBuYW1lWzA6MTJdID09ICJ4bWxYUGF0aFdyYXAiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIG5hbWUgPT0gInhtbEZyZWVQYXJzZXJDdHh0IjoKKyAgICAgICAgcmV0dXJuIDEKKyAgICBpZiBuYW1lID09ICJ4bWxDbGVhbnVwUGFyc2VyIjoKKyAgICAgICAgcmV0dXJuIDEKKyAgICBpZiBuYW1lID09ICJ4bWxGcmVlVGV4dFJlYWRlciI6CisgICAgICAgIHJldHVybiAxCisjICAgIGlmIG5hbWVbMDoxMV0gPT0gInhtbFhQYXRoTmV3IjoKKyMgICAgICAgIHJldHVybiAxCisgICAgIyB0aGUgbmV4dCBmdW5jdGlvbiBpcyBkZWZpbmVkIGluIGxpYnhtbC5jCisgICAgaWYgbmFtZSA9PSAieG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIG5hbWUgPT0gInhtbEZyZWVWYWxpZEN0eHQiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIG5hbWUgPT0gInhtbFNjaGVtYUZyZWVWYWxpZEN0eHQiOgorICAgICAgICByZXR1cm4gMQorCisjCisjIFRob3NlIGFyZSBza2lwcGVkIGJlY2F1c2UgdGhlIENvbnN0IHZlcnNpb24gaXMgdXNlZCBvZiB0aGUgYmluZGluZ3MKKyMgaW5zdGVhZC4KKyMKKyAgICBpZiBuYW1lID09ICJ4bWxUZXh0UmVhZGVyQmFzZVVyaSI6CisgICAgICAgIHJldHVybiAxCisgICAgaWYgbmFtZSA9PSAieG1sVGV4dFJlYWRlckxvY2FsTmFtZSI6CisgICAgICAgIHJldHVybiAxCisgICAgaWYgbmFtZSA9PSAieG1sVGV4dFJlYWRlck5hbWUiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIG5hbWUgPT0gInhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIG5hbWUgPT0gInhtbFRleHRSZWFkZXJQcmVmaXgiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIG5hbWUgPT0gInhtbFRleHRSZWFkZXJYbWxMYW5nIjoKKyAgICAgICAgcmV0dXJuIDEKKyAgICBpZiBuYW1lID09ICJ4bWxUZXh0UmVhZGVyVmFsdWUiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIG5hbWUgPT0gInhtbE91dHB1dEJ1ZmZlckNsb3NlIjogIyBoYW5kbGVkIGJ5IGJ5IHRoZSBzdXBlcmNsYXNzCisgICAgICAgIHJldHVybiAxCisgICAgaWYgbmFtZSA9PSAieG1sT3V0cHV0QnVmZmVyRmx1c2giOiAjIGhhbmRsZWQgYnkgYnkgdGhlIHN1cGVyY2xhc3MKKyAgICAgICAgcmV0dXJuIDEKKyAgICBpZiBuYW1lID09ICJ4bWxFcnJNZW1vcnkiOgorICAgICAgICByZXR1cm4gMQorCisgICAgaWYgbmFtZSA9PSAieG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbCI6CisgICAgICAgIHJldHVybiAxCisgICAgaWYgbmFtZSA9PSAieG1sVmFsaWRhdGVFbGVtZW50RGVjbCI6CisgICAgICAgIHJldHVybiAxCisgICAgaWYgbmFtZSA9PSAieG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIjoKKyAgICAgICAgcmV0dXJuIDEKKworICAgIHJldHVybiAwCisKK2RlZiBwcmludF9mdW5jdGlvbl93cmFwcGVyKG5hbWUsIG91dHB1dCwgZXhwb3J0LCBpbmNsdWRlKToKKyAgICBnbG9iYWwgcHlfdHlwZXMKKyAgICBnbG9iYWwgdW5rbm93bl90eXBlcworICAgIGdsb2JhbCBmdW5jdGlvbnMKKyAgICBnbG9iYWwgc2tpcHBlZF9tb2R1bGVzCisKKyAgICB0cnk6CisgICAgICAgIChkZXNjLCByZXQsIGFyZ3MsIGZpbGUsIGNvbmQpID0gZnVuY3Rpb25zW25hbWVdCisgICAgZXhjZXB0OgorICAgICAgICBwcmludCAiZmFpbGVkIHRvIGdldCBmdW5jdGlvbiAlcyBpbmZvcyIKKyAgICAgICAgcmV0dXJuCisKKyAgICBpZiBza2lwcGVkX21vZHVsZXMuaGFzX2tleShmaWxlKToKKyAgICAgICAgcmV0dXJuIDAKKyAgICBpZiBza2lwX2Z1bmN0aW9uKG5hbWUpID09IDE6CisgICAgICAgIHJldHVybiAwCisgICAgaWYgbmFtZSBpbiBza2lwX2ltcGw6CisgICAgICAgICMgRG9uJ3QgZGVsZXRlIHRoZSBmdW5jdGlvbiBlbnRyeSBpbiB0aGUgY2FsbGVyLgorICAgICAgICByZXR1cm4gMQorCisgICAgY19jYWxsID0gIiIKKyAgICBmb3JtYXQ9IiIKKyAgICBmb3JtYXRfYXJncz0iIgorICAgIGNfYXJncz0iIgorICAgIGNfcmV0dXJuPSIiCisgICAgY19jb252ZXJ0PSIiCisgICAgbnVtX2J1ZnM9MAorICAgIGZvciBhcmcgaW4gYXJnczoKKyAgICAgICAgIyBUaGlzIHNob3VsZCBiZSBjb3JyZWN0CisgICAgICAgIGlmIGFyZ1sxXVswOjZdID09ICJjb25zdCAiOgorICAgICAgICAgICAgYXJnWzFdID0gYXJnWzFdWzY6XQorICAgICAgICBjX2FyZ3MgPSBjX2FyZ3MgKyAiICAgICVzICVzO1xuIiAlIChhcmdbMV0sIGFyZ1swXSkKKyAgICAgICAgaWYgcHlfdHlwZXMuaGFzX2tleShhcmdbMV0pOgorICAgICAgICAgICAgKGYsIHQsIG4sIGMpID0gcHlfdHlwZXNbYXJnWzFdXQorICAgICAgICAgICAgaWYgKGYgPT0gJ3onKSBhbmQgKG5hbWUgaW4gZm9yZWlnbl9lbmNvZGluZ19hcmdzKSBhbmQgKG51bV9idWZzID09IDApOgorICAgICAgICAgICAgICAgIGYgPSAndCMnCisgICAgICAgICAgICBpZiBmICE9IE5vbmU6CisgICAgICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0ICsgZgorICAgICAgICAgICAgaWYgdCAhPSBOb25lOgorICAgICAgICAgICAgICAgIGZvcm1hdF9hcmdzID0gZm9ybWF0X2FyZ3MgKyAiLCAmcHlvYmpfJXMiICUgKGFyZ1swXSkKKyAgICAgICAgICAgICAgICBjX2FyZ3MgPSBjX2FyZ3MgKyAiICAgIFB5T2JqZWN0ICpweW9ial8lcztcbiIgJSAoYXJnWzBdKQorICAgICAgICAgICAgICAgIGNfY29udmVydCA9IGNfY29udmVydCArIFwKKyAgICAgICAgICAgICAgICAgICAiICAgICVzID0gKCVzKSBQeSVzX0dldChweW9ial8lcyk7XG4iICUgKGFyZ1swXSwKKyAgICAgICAgICAgICAgICAgICBhcmdbMV0sIHQsIGFyZ1swXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZm9ybWF0X2FyZ3MgPSBmb3JtYXRfYXJncyArICIsICYlcyIgJSAoYXJnWzBdKQorICAgICAgICAgICAgaWYgZiA9PSAndCMnOgorICAgICAgICAgICAgICAgIGZvcm1hdF9hcmdzID0gZm9ybWF0X2FyZ3MgKyAiLCAmcHlfYnVmZnNpemUlZCIgJSBudW1fYnVmcworICAgICAgICAgICAgICAgIGNfYXJncyA9IGNfYXJncyArICIgICAgaW50IHB5X2J1ZmZzaXplJWQ7XG4iICUgbnVtX2J1ZnMKKyAgICAgICAgICAgICAgICBudW1fYnVmcyA9IG51bV9idWZzICsgMQorICAgICAgICAgICAgaWYgY19jYWxsICE9ICIiOgorICAgICAgICAgICAgICAgIGNfY2FsbCA9IGNfY2FsbCArICIsICIKKyAgICAgICAgICAgIGNfY2FsbCA9IGNfY2FsbCArICIlcyIgJSAoYXJnWzBdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2tpcHBlZF90eXBlcy5oYXNfa2V5KGFyZ1sxXSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDAKKyAgICAgICAgICAgIGlmIHVua25vd25fdHlwZXMuaGFzX2tleShhcmdbMV0pOgorICAgICAgICAgICAgICAgIGxzdCA9IHVua25vd25fdHlwZXNbYXJnWzFdXQorICAgICAgICAgICAgICAgIGxzdC5hcHBlbmQobmFtZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdW5rbm93bl90eXBlc1thcmdbMV1dID0gW25hbWVdCisgICAgICAgICAgICByZXR1cm4gLTEKKyAgICBpZiBmb3JtYXQgIT0gIiI6CisgICAgICAgIGZvcm1hdCA9IGZvcm1hdCArICI6JXMiICUgKG5hbWUpCisKKyAgICBpZiByZXRbMF0gPT0gJ3ZvaWQnOgorICAgICAgICBpZiBmaWxlID09ICJweXRob25fYWNjZXNzb3IiOgorICAgICAgICAgICAgaWYgYXJnc1sxXVsxXSA9PSAiY2hhciAqIiBvciBhcmdzWzFdWzFdID09ICJ4bWxDaGFyICoiOgorICAgICAgICAgICAgICAgIGNfY2FsbCA9ICJcbiAgICBpZiAoJXMtPiVzICE9IE5VTEwpIHhtbEZyZWUoJXMtPiVzKTtcbiIgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzBdWzBdLCBhcmdzWzFdWzBdLCBhcmdzWzBdWzBdLCBhcmdzWzFdWzBdKQorICAgICAgICAgICAgICAgIGNfY2FsbCA9IGNfY2FsbCArICIgICAgJXMtPiVzID0gKCVzKXhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSVzKTtcbiIgJSAoYXJnc1swXVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMV1bMF0sIGFyZ3NbMV1bMV0sIGFyZ3NbMV1bMF0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNfY2FsbCA9ICJcbiAgICAlcy0+JXMgPSAlcztcbiIgJSAoYXJnc1swXVswXSwgYXJnc1sxXVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMV1bMF0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjX2NhbGwgPSAiXG4gICAgJXMoJXMpO1xuIiAlIChuYW1lLCBjX2NhbGwpCisgICAgICAgIHJldF9jb252ZXJ0ID0gIiAgICBQeV9JTkNSRUYoUHlfTm9uZSk7XG4gICAgcmV0dXJuKFB5X05vbmUpO1xuIgorICAgIGVsaWYgcHlfdHlwZXMuaGFzX2tleShyZXRbMF0pOgorICAgICAgICAoZiwgdCwgbiwgYykgPSBweV90eXBlc1tyZXRbMF1dCisgICAgICAgIGNfcmV0dXJuID0gIiAgICAlcyBjX3JldHZhbDtcbiIgJSAocmV0WzBdKQorICAgICAgICBpZiBmaWxlID09ICJweXRob25fYWNjZXNzb3IiIGFuZCByZXRbMl0gIT0gTm9uZToKKyAgICAgICAgICAgIGNfY2FsbCA9ICJcbiAgICBjX3JldHZhbCA9ICVzLT4lcztcbiIgJSAoYXJnc1swXVswXSwgcmV0WzJdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY19jYWxsID0gIlxuICAgIGNfcmV0dmFsID0gJXMoJXMpO1xuIiAlIChuYW1lLCBjX2NhbGwpCisgICAgICAgIHJldF9jb252ZXJ0ID0gIiAgICBweV9yZXR2YWwgPSBsaWJ4bWxfJXNXcmFwKCglcykgY19yZXR2YWwpO1xuIiAlIChuLGMpCisgICAgICAgIHJldF9jb252ZXJ0ID0gcmV0X2NvbnZlcnQgKyAiICAgIHJldHVybihweV9yZXR2YWwpO1xuIgorICAgIGVsaWYgcHlfcmV0dXJuX3R5cGVzLmhhc19rZXkocmV0WzBdKToKKyAgICAgICAgKGYsIHQsIG4sIGMpID0gcHlfcmV0dXJuX3R5cGVzW3JldFswXV0KKyAgICAgICAgY19yZXR1cm4gPSAiICAgICVzIGNfcmV0dmFsO1xuIiAlIChyZXRbMF0pCisgICAgICAgIGNfY2FsbCA9ICJcbiAgICBjX3JldHZhbCA9ICVzKCVzKTtcbiIgJSAobmFtZSwgY19jYWxsKQorICAgICAgICByZXRfY29udmVydCA9ICIgICAgcHlfcmV0dmFsID0gbGlieG1sXyVzV3JhcCgoJXMpIGNfcmV0dmFsKTtcbiIgJSAobixjKQorICAgICAgICByZXRfY29udmVydCA9IHJldF9jb252ZXJ0ICsgIiAgICByZXR1cm4ocHlfcmV0dmFsKTtcbiIKKyAgICBlbHNlOgorICAgICAgICBpZiBza2lwcGVkX3R5cGVzLmhhc19rZXkocmV0WzBdKToKKyAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgIGlmIHVua25vd25fdHlwZXMuaGFzX2tleShyZXRbMF0pOgorICAgICAgICAgICAgbHN0ID0gdW5rbm93bl90eXBlc1tyZXRbMF1dCisgICAgICAgICAgICBsc3QuYXBwZW5kKG5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB1bmtub3duX3R5cGVzW3JldFswXV0gPSBbbmFtZV0KKyAgICAgICAgcmV0dXJuIC0xCisKKyAgICBpZiBjb25kICE9IE5vbmUgYW5kIGNvbmQgIT0gIiI6CisgICAgICAgIGluY2x1ZGUud3JpdGUoIiNpZiAlc1xuIiAlIGNvbmQpCisgICAgICAgIGV4cG9ydC53cml0ZSgiI2lmICVzXG4iICUgY29uZCkKKyAgICAgICAgb3V0cHV0LndyaXRlKCIjaWYgJXNcbiIgJSBjb25kKQorCisgICAgaW5jbHVkZS53cml0ZSgiUHlPYmplY3QgKiAiKQorICAgIGluY2x1ZGUud3JpdGUoImxpYnhtbF8lcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpO1xuIiAlIChuYW1lKSkKKworICAgIGV4cG9ydC53cml0ZSgiICAgIHsgKGNoYXIgKilcIiVzXCIsIGxpYnhtbF8lcywgTUVUSF9WQVJBUkdTLCBOVUxMIH0sXG4iICUKKyAgICAgICAgICAgICAgICAgKG5hbWUsIG5hbWUpKQorCisgICAgaWYgZmlsZSA9PSAicHl0aG9uIjoKKyAgICAgICAgIyBUaG9zZSBoYXZlIGJlZW4gbWFudWFsbHkgZ2VuZXJhdGVkCisgICAgICAgIGlmIGNvbmQgIT0gTm9uZSBhbmQgY29uZCAhPSAiIjoKKyAgICAgICAgICAgIGluY2x1ZGUud3JpdGUoIiNlbmRpZlxuIikKKyAgICAgICAgICAgIGV4cG9ydC53cml0ZSgiI2VuZGlmXG4iKQorICAgICAgICAgICAgb3V0cHV0LndyaXRlKCIjZW5kaWZcbiIpCisgICAgICAgIHJldHVybiAxCisgICAgaWYgZmlsZSA9PSAicHl0aG9uX2FjY2Vzc29yIiBhbmQgcmV0WzBdICE9ICJ2b2lkIiBhbmQgcmV0WzJdIGlzIE5vbmU6CisgICAgICAgICMgVGhvc2UgaGF2ZSBiZWVuIG1hbnVhbGx5IGdlbmVyYXRlZAorICAgICAgICBpZiBjb25kICE9IE5vbmUgYW5kIGNvbmQgIT0gIiI6CisgICAgICAgICAgICBpbmNsdWRlLndyaXRlKCIjZW5kaWZcbiIpCisgICAgICAgICAgICBleHBvcnQud3JpdGUoIiNlbmRpZlxuIikKKyAgICAgICAgICAgIG91dHB1dC53cml0ZSgiI2VuZGlmXG4iKQorICAgICAgICByZXR1cm4gMQorCisgICAgb3V0cHV0LndyaXRlKCJQeU9iamVjdCAqXG4iKQorICAgIG91dHB1dC53cml0ZSgibGlieG1sXyVzKFB5T2JqZWN0ICpzZWxmIEFUVFJJQlVURV9VTlVTRUQsIiAlIChuYW1lKSkKKyAgICBvdXRwdXQud3JpdGUoIiBQeU9iamVjdCAqYXJncyIpCisgICAgaWYgZm9ybWF0ID09ICIiOgorICAgICAgICBvdXRwdXQud3JpdGUoIiBBVFRSSUJVVEVfVU5VU0VEIikKKyAgICBvdXRwdXQud3JpdGUoIikge1xuIikKKyAgICBpZiByZXRbMF0gIT0gJ3ZvaWQnOgorICAgICAgICBvdXRwdXQud3JpdGUoIiAgICBQeU9iamVjdCAqcHlfcmV0dmFsO1xuIikKKyAgICBpZiBjX3JldHVybiAhPSAiIjoKKyAgICAgICAgb3V0cHV0LndyaXRlKGNfcmV0dXJuKQorICAgIGlmIGNfYXJncyAhPSAiIjoKKyAgICAgICAgb3V0cHV0LndyaXRlKGNfYXJncykKKyAgICBpZiBmb3JtYXQgIT0gIiI6CisgICAgICAgIG91dHB1dC53cml0ZSgiXG4gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopXCIlc1wiJXMpKVxuIiAlCisgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0LCBmb3JtYXRfYXJncykpCisgICAgICAgIG91dHB1dC53cml0ZSgiICAgICAgICByZXR1cm4oTlVMTCk7XG4iKQorICAgIGlmIGNfY29udmVydCAhPSAiIjoKKyAgICAgICAgb3V0cHV0LndyaXRlKGNfY29udmVydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgb3V0cHV0LndyaXRlKGNfY2FsbCkKKyAgICBvdXRwdXQud3JpdGUocmV0X2NvbnZlcnQpCisgICAgb3V0cHV0LndyaXRlKCJ9XG5cbiIpCisgICAgaWYgY29uZCAhPSBOb25lIGFuZCBjb25kICE9ICIiOgorICAgICAgICBpbmNsdWRlLndyaXRlKCIjZW5kaWYgLyogJXMgKi9cbiIgJSBjb25kKQorICAgICAgICBleHBvcnQud3JpdGUoIiNlbmRpZiAvKiAlcyAqL1xuIiAlIGNvbmQpCisgICAgICAgIG91dHB1dC53cml0ZSgiI2VuZGlmIC8qICVzICovXG4iICUgY29uZCkKKyAgICByZXR1cm4gMQorCitkZWYgYnVpbGRTdHVicygpOgorICAgIGdsb2JhbCBweV90eXBlcworICAgIGdsb2JhbCBweV9yZXR1cm5fdHlwZXMKKyAgICBnbG9iYWwgdW5rbm93bl90eXBlcworCisgICAgdHJ5OgorICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4oc3JjUHJlZiwibGlieG1sMi1hcGkueG1sIikpCisgICAgICAgIGRhdGEgPSBmLnJlYWQoKQorICAgICAgICAocGFyc2VyLCB0YXJnZXQpICA9IGdldHBhcnNlcigpCisgICAgICAgIHBhcnNlci5mZWVkKGRhdGEpCisgICAgICAgIHBhcnNlci5jbG9zZSgpCisgICAgZXhjZXB0IElPRXJyb3IsIG1zZzoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZiA9IG9wZW4ob3MucGF0aC5qb2luKHNyY1ByZWYsIi4uIiwiZG9jIiwibGlieG1sMi1hcGkueG1sIikpCisgICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKKyAgICAgICAgICAgIChwYXJzZXIsIHRhcmdldCkgID0gZ2V0cGFyc2VyKCkKKyAgICAgICAgICAgIHBhcnNlci5mZWVkKGRhdGEpCisgICAgICAgICAgICBwYXJzZXIuY2xvc2UoKQorICAgICAgICBleGNlcHQgSU9FcnJvciwgbXNnOgorICAgICAgICAgICAgcHJpbnQgZmlsZSwgIjoiLCBtc2cKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICBuID0gbGVuKGZ1bmN0aW9ucy5rZXlzKCkpCisgICAgcHJpbnQgIkZvdW5kICVkIGZ1bmN0aW9ucyBpbiBsaWJ4bWwyLWFwaS54bWwiICUgKG4pCisKKyAgICBweV90eXBlc1sncHl0aG9uT2JqZWN0J10gPSAoJ08nLCAicHl0aG9uT2JqZWN0IiwgInB5dGhvbk9iamVjdCIsICJweXRob25PYmplY3QiKQorICAgIHRyeToKKyAgICAgICAgZiA9IG9wZW4ob3MucGF0aC5qb2luKHNyY1ByZWYsImxpYnhtbDItcHl0aG9uLWFwaS54bWwiKSkKKyAgICAgICAgZGF0YSA9IGYucmVhZCgpCisgICAgICAgIChwYXJzZXIsIHRhcmdldCkgID0gZ2V0cGFyc2VyKCkKKyAgICAgICAgcGFyc2VyLmZlZWQoZGF0YSkKKyAgICAgICAgcGFyc2VyLmNsb3NlKCkKKyAgICBleGNlcHQgSU9FcnJvciwgbXNnOgorICAgICAgICBwcmludCBmaWxlLCAiOiIsIG1zZworCisKKyAgICBwcmludCAiRm91bmQgJWQgZnVuY3Rpb25zIGluIGxpYnhtbDItcHl0aG9uLWFwaS54bWwiICUgKAorICAgICAgICAgIGxlbihmdW5jdGlvbnMua2V5cygpKSAtIG4pCisgICAgbmJfd3JhcCA9IDAKKyAgICBmYWlsZWQgPSAwCisgICAgc2tpcHBlZCA9IDAKKworICAgIGluY2x1ZGUgPSBvcGVuKCJsaWJ4bWwyLXB5LmgiLCAidyIpCisgICAgaW5jbHVkZS53cml0ZSgiLyogR2VuZXJhdGVkICovXG5cbiIpCisgICAgZXhwb3J0ID0gb3BlbigibGlieG1sMi1leHBvcnQuYyIsICJ3IikKKyAgICBleHBvcnQud3JpdGUoIi8qIEdlbmVyYXRlZCAqL1xuXG4iKQorICAgIHdyYXBwZXIgPSBvcGVuKCJsaWJ4bWwyLXB5LmMiLCAidyIpCisgICAgd3JhcHBlci53cml0ZSgiLyogR2VuZXJhdGVkICovXG5cbiIpCisgICAgd3JhcHBlci53cml0ZSgiI2luY2x1ZGUgPFB5dGhvbi5oPlxuIikKKyAgICB3cmFwcGVyLndyaXRlKCIjaW5jbHVkZSA8bGlieG1sL3htbHZlcnNpb24uaD5cbiIpCisgICAgd3JhcHBlci53cml0ZSgiI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+XG4iKQorICAgIHdyYXBwZXIud3JpdGUoIiNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg+XG4iKQorICAgIHdyYXBwZXIud3JpdGUoIiNpbmNsdWRlIFwibGlieG1sX3dyYXAuaFwiXG4iKQorICAgIHdyYXBwZXIud3JpdGUoIiNpbmNsdWRlIFwibGlieG1sMi1weS5oXCJcblxuIikKKyAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zLmtleXMoKToKKyAgICAgICAgcmV0ID0gcHJpbnRfZnVuY3Rpb25fd3JhcHBlcihmdW5jdGlvbiwgd3JhcHBlciwgZXhwb3J0LCBpbmNsdWRlKQorICAgICAgICBpZiByZXQgPCAwOgorICAgICAgICAgICAgZmFpbGVkID0gZmFpbGVkICsgMQorICAgICAgICAgICAgZGVsIGZ1bmN0aW9uc1tmdW5jdGlvbl0KKyAgICAgICAgaWYgcmV0ID09IDA6CisgICAgICAgICAgICBza2lwcGVkID0gc2tpcHBlZCArIDEKKyAgICAgICAgICAgIGRlbCBmdW5jdGlvbnNbZnVuY3Rpb25dCisgICAgICAgIGlmIHJldCA9PSAxOgorICAgICAgICAgICAgbmJfd3JhcCA9IG5iX3dyYXAgKyAxCisgICAgaW5jbHVkZS5jbG9zZSgpCisgICAgZXhwb3J0LmNsb3NlKCkKKyAgICB3cmFwcGVyLmNsb3NlKCkKKworICAgIHByaW50ICJHZW5lcmF0ZWQgJWQgd3JhcHBlciBmdW5jdGlvbnMsICVkIGZhaWxlZCwgJWQgc2tpcHBlZFxuIiAlIChuYl93cmFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWQsIHNraXBwZWQpCisgICAgcHJpbnQgIk1pc3NpbmcgdHlwZSBjb252ZXJ0ZXJzOiAiCisgICAgZm9yIHR5cGUgaW4gdW5rbm93bl90eXBlcy5rZXlzKCk6CisgICAgICAgIHByaW50ICIlczolZCAiICUgKHR5cGUsIGxlbih1bmtub3duX3R5cGVzW3R5cGVdKSksCisgICAgcHJpbnQKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgIFRoaXMgcGFydCB3cml0ZXMgcGFydCBvZiB0aGUgUHl0aG9uIGZyb250LWVuZCBjbGFzc2VzIGJhc2VkIG9uCisjICBtYXBwaW5nIHJ1bGVzIGJldHdlZW4gdHlwZXMgYW5kIGNsYXNzZXMgYW5kIGFsc28gYmFzZWQgb24gZnVuY3Rpb24KKyMgIHJlbmFtaW5nIHRvIGdldCBjb25zaXN0ZW50IGZ1bmN0aW9uIG5hbWVzIGF0IHRoZSBQeXRob24gbGV2ZWwKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMKKyMgVGhlIHR5cGUgYXV0b21hdGljYWxseSByZW1hcHBlZCB0byBnZW5lcmF0ZWQgY2xhc3NlcworIworY2xhc3Nlc190eXBlID0geworICAgICJ4bWxOb2RlUHRyIjogKCIuX28iLCAieG1sTm9kZShfb2JqPSVzKSIsICJ4bWxOb2RlIiksCisgICAgInhtbE5vZGUgKiI6ICgiLl9vIiwgInhtbE5vZGUoX29iaj0lcykiLCAieG1sTm9kZSIpLAorICAgICJ4bWxEb2NQdHIiOiAoIi5fbyIsICJ4bWxEb2MoX29iaj0lcykiLCAieG1sRG9jIiksCisgICAgInhtbERvY1B0ciAqIjogKCIuX28iLCAieG1sRG9jKF9vYmo9JXMpIiwgInhtbERvYyIpLAorICAgICJodG1sRG9jUHRyIjogKCIuX28iLCAieG1sRG9jKF9vYmo9JXMpIiwgInhtbERvYyIpLAorICAgICJodG1seG1sRG9jUHRyICoiOiAoIi5fbyIsICJ4bWxEb2MoX29iaj0lcykiLCAieG1sRG9jIiksCisgICAgInhtbEF0dHJQdHIiOiAoIi5fbyIsICJ4bWxBdHRyKF9vYmo9JXMpIiwgInhtbEF0dHIiKSwKKyAgICAieG1sQXR0ciAqIjogKCIuX28iLCAieG1sQXR0cihfb2JqPSVzKSIsICJ4bWxBdHRyIiksCisgICAgInhtbE5zUHRyIjogKCIuX28iLCAieG1sTnMoX29iaj0lcykiLCAieG1sTnMiKSwKKyAgICAieG1sTnMgKiI6ICgiLl9vIiwgInhtbE5zKF9vYmo9JXMpIiwgInhtbE5zIiksCisgICAgInhtbER0ZFB0ciI6ICgiLl9vIiwgInhtbER0ZChfb2JqPSVzKSIsICJ4bWxEdGQiKSwKKyAgICAieG1sRHRkICoiOiAoIi5fbyIsICJ4bWxEdGQoX29iaj0lcykiLCAieG1sRHRkIiksCisgICAgInhtbEVudGl0eVB0ciI6ICgiLl9vIiwgInhtbEVudGl0eShfb2JqPSVzKSIsICJ4bWxFbnRpdHkiKSwKKyAgICAieG1sRW50aXR5ICoiOiAoIi5fbyIsICJ4bWxFbnRpdHkoX29iaj0lcykiLCAieG1sRW50aXR5IiksCisgICAgInhtbEVsZW1lbnRQdHIiOiAoIi5fbyIsICJ4bWxFbGVtZW50KF9vYmo9JXMpIiwgInhtbEVsZW1lbnQiKSwKKyAgICAieG1sRWxlbWVudCAqIjogKCIuX28iLCAieG1sRWxlbWVudChfb2JqPSVzKSIsICJ4bWxFbGVtZW50IiksCisgICAgInhtbEF0dHJpYnV0ZVB0ciI6ICgiLl9vIiwgInhtbEF0dHJpYnV0ZShfb2JqPSVzKSIsICJ4bWxBdHRyaWJ1dGUiKSwKKyAgICAieG1sQXR0cmlidXRlICoiOiAoIi5fbyIsICJ4bWxBdHRyaWJ1dGUoX29iaj0lcykiLCAieG1sQXR0cmlidXRlIiksCisgICAgInhtbFhQYXRoQ29udGV4dFB0ciI6ICgiLl9vIiwgInhwYXRoQ29udGV4dChfb2JqPSVzKSIsICJ4cGF0aENvbnRleHQiKSwKKyAgICAieG1sWFBhdGhDb250ZXh0ICoiOiAoIi5fbyIsICJ4cGF0aENvbnRleHQoX29iaj0lcykiLCAieHBhdGhDb250ZXh0IiksCisgICAgInhtbFhQYXRoUGFyc2VyQ29udGV4dCAqIjogKCIuX28iLCAieHBhdGhQYXJzZXJDb250ZXh0KF9vYmo9JXMpIiwgInhwYXRoUGFyc2VyQ29udGV4dCIpLAorICAgICJ4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIiOiAoIi5fbyIsICJ4cGF0aFBhcnNlckNvbnRleHQoX29iaj0lcykiLCAieHBhdGhQYXJzZXJDb250ZXh0IiksCisgICAgInhtbFBhcnNlckN0eHRQdHIiOiAoIi5fbyIsICJwYXJzZXJDdHh0KF9vYmo9JXMpIiwgInBhcnNlckN0eHQiKSwKKyAgICAieG1sUGFyc2VyQ3R4dCAqIjogKCIuX28iLCAicGFyc2VyQ3R4dChfb2JqPSVzKSIsICJwYXJzZXJDdHh0IiksCisgICAgImh0bWxQYXJzZXJDdHh0UHRyIjogKCIuX28iLCAicGFyc2VyQ3R4dChfb2JqPSVzKSIsICJwYXJzZXJDdHh0IiksCisgICAgImh0bWxQYXJzZXJDdHh0ICoiOiAoIi5fbyIsICJwYXJzZXJDdHh0KF9vYmo9JXMpIiwgInBhcnNlckN0eHQiKSwKKyAgICAieG1sVmFsaWRDdHh0UHRyIjogKCIuX28iLCAiVmFsaWRDdHh0KF9vYmo9JXMpIiwgIlZhbGlkQ3R4dCIpLAorICAgICJ4bWxDYXRhbG9nUHRyIjogKCIuX28iLCAiY2F0YWxvZyhfb2JqPSVzKSIsICJjYXRhbG9nIiksCisgICAgInhtbFVSSVB0ciI6ICgiLl9vIiwgIlVSSShfb2JqPSVzKSIsICJVUkkiKSwKKyAgICAieG1sRXJyb3JQdHIiOiAoIi5fbyIsICJFcnJvcihfb2JqPSVzKSIsICJFcnJvciIpLAorICAgICJ4bWxPdXRwdXRCdWZmZXJQdHIiOiAoIi5fbyIsICJvdXRwdXRCdWZmZXIoX29iaj0lcykiLCAib3V0cHV0QnVmZmVyIiksCisgICAgInhtbFBhcnNlcklucHV0QnVmZmVyUHRyIjogKCIuX28iLCAiaW5wdXRCdWZmZXIoX29iaj0lcykiLCAiaW5wdXRCdWZmZXIiKSwKKyAgICAieG1sUmVnZXhwUHRyIjogKCIuX28iLCAieG1sUmVnKF9vYmo9JXMpIiwgInhtbFJlZyIpLAorICAgICJ4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciI6ICgiLl9vIiwgInhtbFRleHRSZWFkZXJMb2NhdG9yKF9vYmo9JXMpIiwgInhtbFRleHRSZWFkZXJMb2NhdG9yIiksCisgICAgInhtbFRleHRSZWFkZXJQdHIiOiAoIi5fbyIsICJ4bWxUZXh0UmVhZGVyKF9vYmo9JXMpIiwgInhtbFRleHRSZWFkZXIiKSwKKyAgICAneG1sUmVsYXhOR1B0cic6ICgnLl9vJywgInJlbGF4TmdTY2hlbWEoX29iaj0lcykiLCAicmVsYXhOZ1NjaGVtYSIpLAorICAgICd4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cic6ICgnLl9vJywgInJlbGF4TmdQYXJzZXJDdHh0KF9vYmo9JXMpIiwgInJlbGF4TmdQYXJzZXJDdHh0IiksCisgICAgJ3htbFJlbGF4TkdWYWxpZEN0eHRQdHInOiAoJy5fbycsICJyZWxheE5nVmFsaWRDdHh0KF9vYmo9JXMpIiwgInJlbGF4TmdWYWxpZEN0eHQiKSwKKyAgICAneG1sU2NoZW1hUHRyJzogKCIuX28iLCAiU2NoZW1hKF9vYmo9JXMpIiwgIlNjaGVtYSIpLAorICAgICd4bWxTY2hlbWFQYXJzZXJDdHh0UHRyJzogKCIuX28iLCAiU2NoZW1hUGFyc2VyQ3R4dChfb2JqPSVzKSIsICJTY2hlbWFQYXJzZXJDdHh0IiksCisgICAgJ3htbFNjaGVtYVZhbGlkQ3R4dFB0cic6ICgiLl9vIiwgIlNjaGVtYVZhbGlkQ3R4dChfb2JqPSVzKSIsICJTY2hlbWFWYWxpZEN0eHQiKSwKK30KKworY29udmVydGVyX3R5cGUgPSB7CisgICAgInhtbFhQYXRoT2JqZWN0UHRyIjogInhwYXRoT2JqZWN0UmV0KCVzKSIsCit9CisKK3ByaW1hcnlfY2xhc3NlcyA9IFsieG1sTm9kZSIsICJ4bWxEb2MiXQorCitjbGFzc2VzX2FuY2VzdG9yID0geworICAgICJ4bWxOb2RlIiA6ICJ4bWxDb3JlIiwKKyAgICAieG1sRHRkIiA6ICJ4bWxOb2RlIiwKKyAgICAieG1sRG9jIiA6ICJ4bWxOb2RlIiwKKyAgICAieG1sQXR0ciIgOiAieG1sTm9kZSIsCisgICAgInhtbE5zIiA6ICJ4bWxOb2RlIiwKKyAgICAieG1sRW50aXR5IiA6ICJ4bWxOb2RlIiwKKyAgICAieG1sRWxlbWVudCIgOiAieG1sTm9kZSIsCisgICAgInhtbEF0dHJpYnV0ZSIgOiAieG1sTm9kZSIsCisgICAgIm91dHB1dEJ1ZmZlciI6ICJpb1dyaXRlV3JhcHBlciIsCisgICAgImlucHV0QnVmZmVyIjogImlvUmVhZFdyYXBwZXIiLAorICAgICJwYXJzZXJDdHh0IjogInBhcnNlckN0eHRDb3JlIiwKKyAgICAieG1sVGV4dFJlYWRlciI6ICJ4bWxUZXh0UmVhZGVyQ29yZSIsCisgICAgIlZhbGlkQ3R4dCI6ICJWYWxpZEN0eHRDb3JlIiwKKyAgICAiU2NoZW1hVmFsaWRDdHh0IjogIlNjaGVtYVZhbGlkQ3R4dENvcmUiLAorICAgICJyZWxheE5nVmFsaWRDdHh0IjogInJlbGF4TmdWYWxpZEN0eHRDb3JlIiwKK30KK2NsYXNzZXNfZGVzdHJ1Y3RvcnMgPSB7CisgICAgInBhcnNlckN0eHQiOiAieG1sRnJlZVBhcnNlckN0eHQiLAorICAgICJjYXRhbG9nIjogInhtbEZyZWVDYXRhbG9nIiwKKyAgICAiVVJJIjogInhtbEZyZWVVUkkiLAorIyAgICAib3V0cHV0QnVmZmVyIjogInhtbE91dHB1dEJ1ZmZlckNsb3NlIiwKKyAgICAiaW5wdXRCdWZmZXIiOiAieG1sRnJlZVBhcnNlcklucHV0QnVmZmVyIiwKKyAgICAieG1sUmVnIjogInhtbFJlZ0ZyZWVSZWdleHAiLAorICAgICJ4bWxUZXh0UmVhZGVyIjogInhtbEZyZWVUZXh0UmVhZGVyIiwKKyAgICAicmVsYXhOZ1NjaGVtYSI6ICJ4bWxSZWxheE5HRnJlZSIsCisgICAgInJlbGF4TmdQYXJzZXJDdHh0IjogInhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dCIsCisgICAgInJlbGF4TmdWYWxpZEN0eHQiOiAieG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQiLAorICAgICAgICAiU2NoZW1hIjogInhtbFNjaGVtYUZyZWUiLAorICAgICAgICAiU2NoZW1hUGFyc2VyQ3R4dCI6ICJ4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dCIsCisgICAgICAgICJTY2hlbWFWYWxpZEN0eHQiOiAieG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCIsCisgICAgICAgICJWYWxpZEN0eHQiOiAieG1sRnJlZVZhbGlkQ3R4dCIsCit9CisKK2Z1bmN0aW9uc19ub2V4Y2VwdCA9IHsKKyAgICAieG1sSGFzUHJvcCI6IDEsCisgICAgInhtbEhhc05zUHJvcCI6IDEsCisgICAgInhtbERvY1NldFJvb3RFbGVtZW50IjogMSwKKyAgICAieG1sTm9kZUdldE5zIjogMSwKKyAgICAieG1sTm9kZUdldE5zRGVmcyI6IDEsCisgICAgInhtbE5leHRFbGVtZW50U2libGluZyI6IDEsCisgICAgInhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmciOiAxLAorICAgICJ4bWxGaXJzdEVsZW1lbnRDaGlsZCI6IDEsCisgICAgInhtbExhc3RFbGVtZW50Q2hpbGQiOiAxLAorfQorCityZWZlcmVuY2Vfa2VlcGVycyA9IHsKKyAgICAieG1sVGV4dFJlYWRlciI6IFsoJ2lucHV0QnVmZmVyJywgJ2lucHV0JyldLAorICAgICJyZWxheE5nVmFsaWRDdHh0IjogWygncmVsYXhOZ1NjaGVtYScsICdzY2hlbWEnKV0sCisgICAgICAgICJTY2hlbWFWYWxpZEN0eHQiOiBbKCdTY2hlbWEnLCAnc2NoZW1hJyldLAorfQorCitmdW5jdGlvbl9jbGFzc2VzID0ge30KKworZnVuY3Rpb25fY2xhc3Nlc1siTm9uZSJdID0gW10KKworZGVmIG5hbWVGaXh1cChuYW1lLCBjbGFzc2UsIHR5cGUsIGZpbGUpOgorICAgIGxpc3RuYW1lID0gY2xhc3NlICsgIkxpc3QiCisgICAgbGwgPSBsZW4obGlzdG5hbWUpCisgICAgbCA9IGxlbihjbGFzc2UpCisgICAgaWYgbmFtZVswOmxdID09IGxpc3RuYW1lOgorICAgICAgICBmdW5jID0gbmFtZVtsOl0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDoxMl0gPT0gInhtbFBhcnNlckdldCIgYW5kIGZpbGUgPT0gInB5dGhvbl9hY2Nlc3NvciI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzEyOl0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDoxMl0gPT0gInhtbFBhcnNlclNldCIgYW5kIGZpbGUgPT0gInB5dGhvbl9hY2Nlc3NvciI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzEyOl0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDoxMF0gPT0gInhtbE5vZGVHZXQiIGFuZCBmaWxlID09ICJweXRob25fYWNjZXNzb3IiOgorICAgICAgICBmdW5jID0gbmFtZVsxMDpdCisgICAgICAgIGZ1bmMgPSBzdHJpbmcubG93ZXIoZnVuY1swOjFdKSArIGZ1bmNbMTpdCisgICAgZWxpZiBuYW1lWzA6OV0gPT0gInhtbFVSSUdldCIgYW5kIGZpbGUgPT0gInB5dGhvbl9hY2Nlc3NvciI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzk6XQorICAgICAgICBmdW5jID0gc3RyaW5nLmxvd2VyKGZ1bmNbMDoxXSkgKyBmdW5jWzE6XQorICAgIGVsaWYgbmFtZVswOjldID09ICJ4bWxVUklTZXQiIGFuZCBmaWxlID09ICJweXRob25fYWNjZXNzb3IiOgorICAgICAgICBmdW5jID0gbmFtZVs2Ol0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDoxMV0gPT0gInhtbEVycm9yR2V0IiBhbmQgZmlsZSA9PSAicHl0aG9uX2FjY2Vzc29yIjoKKyAgICAgICAgZnVuYyA9IG5hbWVbMTE6XQorICAgICAgICBmdW5jID0gc3RyaW5nLmxvd2VyKGZ1bmNbMDoxXSkgKyBmdW5jWzE6XQorICAgIGVsaWYgbmFtZVswOjE3XSA9PSAieG1sWFBhdGhQYXJzZXJHZXQiIGFuZCBmaWxlID09ICJweXRob25fYWNjZXNzb3IiOgorICAgICAgICBmdW5jID0gbmFtZVsxNzpdCisgICAgICAgIGZ1bmMgPSBzdHJpbmcubG93ZXIoZnVuY1swOjFdKSArIGZ1bmNbMTpdCisgICAgZWxpZiBuYW1lWzA6MTFdID09ICJ4bWxYUGF0aEdldCIgYW5kIGZpbGUgPT0gInB5dGhvbl9hY2Nlc3NvciI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzExOl0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDoxMV0gPT0gInhtbFhQYXRoU2V0IiBhbmQgZmlsZSA9PSAicHl0aG9uX2FjY2Vzc29yIjoKKyAgICAgICAgZnVuYyA9IG5hbWVbODpdCisgICAgICAgIGZ1bmMgPSBzdHJpbmcubG93ZXIoZnVuY1swOjFdKSArIGZ1bmNbMTpdCisgICAgZWxpZiBuYW1lWzA6MTVdID09ICJ4bWxPdXRwdXRCdWZmZXIiIGFuZCBmaWxlICE9ICJweXRob24iOgorICAgICAgICBmdW5jID0gbmFtZVsxNTpdCisgICAgICAgIGZ1bmMgPSBzdHJpbmcubG93ZXIoZnVuY1swOjFdKSArIGZ1bmNbMTpdCisgICAgZWxpZiBuYW1lWzA6MjBdID09ICJ4bWxQYXJzZXJJbnB1dEJ1ZmZlciIgYW5kIGZpbGUgIT0gInB5dGhvbiI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzIwOl0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDo5XSA9PSAieG1sUmVnZXhwIiBhbmQgZmlsZSA9PSAieG1scmVnZXhwIjoKKyAgICAgICAgZnVuYyA9ICJyZWdleHAiICsgbmFtZVs5Ol0KKyAgICBlbGlmIG5hbWVbMDo2XSA9PSAieG1sUmVnIiBhbmQgZmlsZSA9PSAieG1scmVnZXhwIjoKKyAgICAgICAgZnVuYyA9ICJyZWdleHAiICsgbmFtZVs2Ol0KKyAgICBlbGlmIG5hbWVbMDoyMF0gPT0gInhtbFRleHRSZWFkZXJMb2NhdG9yIiBhbmQgZmlsZSA9PSAieG1scmVhZGVyIjoKKyAgICAgICAgZnVuYyA9IG5hbWVbMjA6XQorICAgIGVsaWYgbmFtZVswOjE4XSA9PSAieG1sVGV4dFJlYWRlckNvbnN0IiBhbmQgZmlsZSA9PSAieG1scmVhZGVyIjoKKyAgICAgICAgZnVuYyA9IG5hbWVbMTg6XQorICAgIGVsaWYgbmFtZVswOjEzXSA9PSAieG1sVGV4dFJlYWRlciIgYW5kIGZpbGUgPT0gInhtbHJlYWRlciI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzEzOl0KKyAgICBlbGlmIG5hbWVbMDoxMl0gPT0gInhtbFJlYWRlck5ldyIgYW5kIGZpbGUgPT0gInhtbHJlYWRlciI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzk6XQorICAgIGVsaWYgbmFtZVswOjExXSA9PSAieG1sQUNhdGFsb2ciOgorICAgICAgICBmdW5jID0gbmFtZVsxMTpdCisgICAgICAgIGZ1bmMgPSBzdHJpbmcubG93ZXIoZnVuY1swOjFdKSArIGZ1bmNbMTpdCisgICAgZWxpZiBuYW1lWzA6bF0gPT0gY2xhc3NlOgorICAgICAgICBmdW5jID0gbmFtZVtsOl0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDo3XSA9PSAibGlieG1sXyI6CisgICAgICAgIGZ1bmMgPSBuYW1lWzc6XQorICAgICAgICBmdW5jID0gc3RyaW5nLmxvd2VyKGZ1bmNbMDoxXSkgKyBmdW5jWzE6XQorICAgIGVsaWYgbmFtZVswOjZdID09ICJ4bWxHZXQiOgorICAgICAgICBmdW5jID0gbmFtZVs2Ol0KKyAgICAgICAgZnVuYyA9IHN0cmluZy5sb3dlcihmdW5jWzA6MV0pICsgZnVuY1sxOl0KKyAgICBlbGlmIG5hbWVbMDozXSA9PSAieG1sIjoKKyAgICAgICAgZnVuYyA9IG5hbWVbMzpdCisgICAgICAgIGZ1bmMgPSBzdHJpbmcubG93ZXIoZnVuY1swOjFdKSArIGZ1bmNbMTpdCisgICAgZWxzZToKKyAgICAgICAgZnVuYyA9IG5hbWUKKyAgICBpZiBmdW5jWzA6NV0gPT0gInhQYXRoIjoKKyAgICAgICAgZnVuYyA9ICJ4cGF0aCIgKyBmdW5jWzU6XQorICAgIGVsaWYgZnVuY1swOjRdID09ICJ4UHRyIjoKKyAgICAgICAgZnVuYyA9ICJ4cG9pbnRlciIgKyBmdW5jWzQ6XQorICAgIGVsaWYgZnVuY1swOjhdID09ICJ4SW5jbHVkZSI6CisgICAgICAgIGZ1bmMgPSAieGluY2x1ZGUiICsgZnVuY1s4Ol0KKyAgICBlbGlmIGZ1bmNbMDoyXSA9PSAiaUQiOgorICAgICAgICBmdW5jID0gIklEIiArIGZ1bmNbMjpdCisgICAgZWxpZiBmdW5jWzA6M10gPT0gInVSSSI6CisgICAgICAgIGZ1bmMgPSAiVVJJIiArIGZ1bmNbMzpdCisgICAgZWxpZiBmdW5jWzA6NF0gPT0gInVURjgiOgorICAgICAgICBmdW5jID0gIlVURjgiICsgZnVuY1s0Ol0KKyAgICBlbGlmIGZ1bmNbMDozXSA9PSAnc0FYJzoKKyAgICAgICAgZnVuYyA9ICJTQVgiICsgZnVuY1szOl0KKyAgICByZXR1cm4gZnVuYworCisKK2RlZiBmdW5jdGlvbkNvbXBhcmUoaW5mbzEsIGluZm8yKToKKyAgICAoaW5kZXgxLCBmdW5jMSwgbmFtZTEsIHJldDEsIGFyZ3MxLCBmaWxlMSkgPSBpbmZvMQorICAgIChpbmRleDIsIGZ1bmMyLCBuYW1lMiwgcmV0MiwgYXJnczIsIGZpbGUyKSA9IGluZm8yCisgICAgaWYgZmlsZTEgPT0gZmlsZTI6CisgICAgICAgIGlmIGZ1bmMxIDwgZnVuYzI6CisgICAgICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgaWYgZnVuYzEgPiBmdW5jMjoKKyAgICAgICAgICAgIHJldHVybiAxCisgICAgaWYgZmlsZTEgPT0gInB5dGhvbl9hY2Nlc3NvciI6CisgICAgICAgIHJldHVybiAtMQorICAgIGlmIGZpbGUyID09ICJweXRob25fYWNjZXNzb3IiOgorICAgICAgICByZXR1cm4gMQorICAgIGlmIGZpbGUxIDwgZmlsZTI6CisgICAgICAgIHJldHVybiAtMQorICAgIGlmIGZpbGUxID4gZmlsZTI6CisgICAgICAgIHJldHVybiAxCisgICAgcmV0dXJuIDAKKworZGVmIHdyaXRlRG9jKG5hbWUsIGFyZ3MsIGluZGVudCwgb3V0cHV0KToKKyAgICAgaWYgZnVuY3Rpb25zW25hbWVdWzBdIGlzIE5vbmUgb3IgZnVuY3Rpb25zW25hbWVdWzBdID09ICIiOgorICAgICAgICAgcmV0dXJuCisgICAgIHZhbCA9IGZ1bmN0aW9uc1tuYW1lXVswXQorICAgICB2YWwgPSBzdHJpbmcucmVwbGFjZSh2YWwsICJOVUxMIiwgIk5vbmUiKQorICAgICBvdXRwdXQud3JpdGUoaW5kZW50KQorICAgICBvdXRwdXQud3JpdGUoJyIiIicpCisgICAgIHdoaWxlIGxlbih2YWwpID4gNjA6CisgICAgICAgICBpZiB2YWxbMF0gPT0gIiAiOgorICAgICAgICAgICAgIHZhbCA9IHZhbFsxOl0KKyAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgc3RyID0gdmFsWzA6NjBdCisgICAgICAgICBpID0gc3RyaW5nLnJmaW5kKHN0ciwgIiAiKQorICAgICAgICAgaWYgaSA8IDA6CisgICAgICAgICAgICAgaSA9IDYwCisgICAgICAgICBzdHIgPSB2YWxbMDppXQorICAgICAgICAgdmFsID0gdmFsW2k6XQorICAgICAgICAgb3V0cHV0LndyaXRlKHN0cikKKyAgICAgICAgIG91dHB1dC53cml0ZSgnXG4gICcpCisgICAgICAgICBvdXRwdXQud3JpdGUoaW5kZW50KQorICAgICBvdXRwdXQud3JpdGUodmFsKQorICAgICBvdXRwdXQud3JpdGUoJyAiIiJcbicpCisKK2RlZiBidWlsZFdyYXBwZXJzKCk6CisgICAgZ2xvYmFsIGN0eXBlcworICAgIGdsb2JhbCBweV90eXBlcworICAgIGdsb2JhbCBweV9yZXR1cm5fdHlwZXMKKyAgICBnbG9iYWwgdW5rbm93bl90eXBlcworICAgIGdsb2JhbCBmdW5jdGlvbnMKKyAgICBnbG9iYWwgZnVuY3Rpb25fY2xhc3NlcworICAgIGdsb2JhbCBjbGFzc2VzX3R5cGUKKyAgICBnbG9iYWwgY2xhc3Nlc19saXN0CisgICAgZ2xvYmFsIGNvbnZlcnRlcl90eXBlCisgICAgZ2xvYmFsIHByaW1hcnlfY2xhc3NlcworICAgIGdsb2JhbCBjb252ZXJ0ZXJfdHlwZQorICAgIGdsb2JhbCBjbGFzc2VzX2FuY2VzdG9yCisgICAgZ2xvYmFsIGNvbnZlcnRlcl90eXBlCisgICAgZ2xvYmFsIHByaW1hcnlfY2xhc3NlcworICAgIGdsb2JhbCBjbGFzc2VzX2FuY2VzdG9yCisgICAgZ2xvYmFsIGNsYXNzZXNfZGVzdHJ1Y3RvcnMKKyAgICBnbG9iYWwgZnVuY3Rpb25zX25vZXhjZXB0CisKKyAgICBmb3IgdHlwZSBpbiBjbGFzc2VzX3R5cGUua2V5cygpOgorICAgICAgICBmdW5jdGlvbl9jbGFzc2VzW2NsYXNzZXNfdHlwZVt0eXBlXVsyXV0gPSBbXQorCisgICAgIworICAgICMgQnVpbGQgdGhlIGxpc3Qgb2YgQyB0eXBlcyB0byBsb29rIGZvciBvcmRlcmVkIHRvIHN0YXJ0CisgICAgIyB3aXRoIHByaW1hcnkgY2xhc3NlcworICAgICMKKyAgICBjdHlwZXMgPSBbXQorICAgIGNsYXNzZXNfbGlzdCA9IFtdCisgICAgY3R5cGVzX3Byb2Nlc3NlZCA9IHt9CisgICAgY2xhc3Nlc19wcm9jZXNzZWQgPSB7fQorICAgIGZvciBjbGFzc2UgaW4gcHJpbWFyeV9jbGFzc2VzOgorICAgICAgICBjbGFzc2VzX2xpc3QuYXBwZW5kKGNsYXNzZSkKKyAgICAgICAgY2xhc3Nlc19wcm9jZXNzZWRbY2xhc3NlXSA9ICgpCisgICAgICAgIGZvciB0eXBlIGluIGNsYXNzZXNfdHlwZS5rZXlzKCk6CisgICAgICAgICAgICB0aW5mbyA9IGNsYXNzZXNfdHlwZVt0eXBlXQorICAgICAgICAgICAgaWYgdGluZm9bMl0gPT0gY2xhc3NlOgorICAgICAgICAgICAgICAgIGN0eXBlcy5hcHBlbmQodHlwZSkKKyAgICAgICAgICAgICAgICBjdHlwZXNfcHJvY2Vzc2VkW3R5cGVdID0gKCkKKyAgICBmb3IgdHlwZSBpbiBjbGFzc2VzX3R5cGUua2V5cygpOgorICAgICAgICBpZiBjdHlwZXNfcHJvY2Vzc2VkLmhhc19rZXkodHlwZSk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0aW5mbyA9IGNsYXNzZXNfdHlwZVt0eXBlXQorICAgICAgICBpZiBub3QgY2xhc3Nlc19wcm9jZXNzZWQuaGFzX2tleSh0aW5mb1syXSk6CisgICAgICAgICAgICBjbGFzc2VzX2xpc3QuYXBwZW5kKHRpbmZvWzJdKQorICAgICAgICAgICAgY2xhc3Nlc19wcm9jZXNzZWRbdGluZm9bMl1dID0gKCkKKyAgICAgICAgICAgIAorICAgICAgICBjdHlwZXMuYXBwZW5kKHR5cGUpCisgICAgICAgIGN0eXBlc19wcm9jZXNzZWRbdHlwZV0gPSAoKQorCisgICAgZm9yIG5hbWUgaW4gZnVuY3Rpb25zLmtleXMoKToKKyAgICAgICAgZm91bmQgPSAwCisgICAgICAgIChkZXNjLCByZXQsIGFyZ3MsIGZpbGUsIGNvbmQpID0gZnVuY3Rpb25zW25hbWVdCisgICAgICAgIGZvciB0eXBlIGluIGN0eXBlczoKKyAgICAgICAgICAgIGNsYXNzZSA9IGNsYXNzZXNfdHlwZVt0eXBlXVsyXQorCisgICAgICAgICAgICBpZiBuYW1lWzA6M10gPT0gInhtbCIgYW5kIGxlbihhcmdzKSA+PSAxIGFuZCBhcmdzWzBdWzFdID09IHR5cGU6CisgICAgICAgICAgICAgICAgZm91bmQgPSAxCisgICAgICAgICAgICAgICAgZnVuYyA9IG5hbWVGaXh1cChuYW1lLCBjbGFzc2UsIHR5cGUsIGZpbGUpCisgICAgICAgICAgICAgICAgaW5mbyA9ICgwLCBmdW5jLCBuYW1lLCByZXQsIGFyZ3MsIGZpbGUpCisgICAgICAgICAgICAgICAgZnVuY3Rpb25fY2xhc3Nlc1tjbGFzc2VdLmFwcGVuZChpbmZvKQorICAgICAgICAgICAgZWxpZiBuYW1lWzA6M10gPT0gInhtbCIgYW5kIGxlbihhcmdzKSA+PSAyIGFuZCBhcmdzWzFdWzFdID09IHR5cGUgXAorICAgICAgICAgICAgICAgIGFuZCBmaWxlICE9ICJweXRob25fYWNjZXNzb3IiOgorICAgICAgICAgICAgICAgIGZvdW5kID0gMQorICAgICAgICAgICAgICAgIGZ1bmMgPSBuYW1lRml4dXAobmFtZSwgY2xhc3NlLCB0eXBlLCBmaWxlKQorICAgICAgICAgICAgICAgIGluZm8gPSAoMSwgZnVuYywgbmFtZSwgcmV0LCBhcmdzLCBmaWxlKQorICAgICAgICAgICAgICAgIGZ1bmN0aW9uX2NsYXNzZXNbY2xhc3NlXS5hcHBlbmQoaW5mbykKKyAgICAgICAgICAgIGVsaWYgbmFtZVswOjRdID09ICJodG1sIiBhbmQgbGVuKGFyZ3MpID49IDEgYW5kIGFyZ3NbMF1bMV0gPT0gdHlwZToKKyAgICAgICAgICAgICAgICBmb3VuZCA9IDEKKyAgICAgICAgICAgICAgICBmdW5jID0gbmFtZUZpeHVwKG5hbWUsIGNsYXNzZSwgdHlwZSwgZmlsZSkKKyAgICAgICAgICAgICAgICBpbmZvID0gKDAsIGZ1bmMsIG5hbWUsIHJldCwgYXJncywgZmlsZSkKKyAgICAgICAgICAgICAgICBmdW5jdGlvbl9jbGFzc2VzW2NsYXNzZV0uYXBwZW5kKGluZm8pCisgICAgICAgICAgICBlbGlmIG5hbWVbMDo0XSA9PSAiaHRtbCIgYW5kIGxlbihhcmdzKSA+PSAyIGFuZCBhcmdzWzFdWzFdID09IHR5cGUgXAorICAgICAgICAgICAgICAgIGFuZCBmaWxlICE9ICJweXRob25fYWNjZXNzb3IiOgorICAgICAgICAgICAgICAgIGZvdW5kID0gMQorICAgICAgICAgICAgICAgIGZ1bmMgPSBuYW1lRml4dXAobmFtZSwgY2xhc3NlLCB0eXBlLCBmaWxlKQorICAgICAgICAgICAgICAgIGluZm8gPSAoMSwgZnVuYywgbmFtZSwgcmV0LCBhcmdzLCBmaWxlKQorICAgICAgICAgICAgICAgIGZ1bmN0aW9uX2NsYXNzZXNbY2xhc3NlXS5hcHBlbmQoaW5mbykKKyAgICAgICAgaWYgZm91bmQgPT0gMToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIG5hbWVbMDo4XSA9PSAieG1sWFBhdGgiOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgbmFtZVswOjZdID09ICJ4bWxTdHIiOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgbmFtZVswOjEwXSA9PSAieG1sQ2hhclN0ciI6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBmdW5jID0gbmFtZUZpeHVwKG5hbWUsICJOb25lIiwgZmlsZSwgZmlsZSkKKyAgICAgICAgaW5mbyA9ICgwLCBmdW5jLCBuYW1lLCByZXQsIGFyZ3MsIGZpbGUpCisgICAgICAgIGZ1bmN0aW9uX2NsYXNzZXNbJ05vbmUnXS5hcHBlbmQoaW5mbykKKyAgIAorICAgIGNsYXNzZXMgPSBvcGVuKCJsaWJ4bWwyY2xhc3MucHkiLCAidyIpCisgICAgdHh0ID0gb3BlbigibGlieG1sMmNsYXNzLnR4dCIsICJ3IikKKyAgICB0eHQud3JpdGUoIiAgICAgICAgICBHZW5lcmF0ZWQgQ2xhc3NlcyBmb3IgbGlieG1sMi1weXRob25cblxuIikKKworICAgIHR4dC53cml0ZSgiI1xuIyBHbG9iYWwgZnVuY3Rpb25zIG9mIHRoZSBtb2R1bGVcbiNcblxuIikKKyAgICBpZiBmdW5jdGlvbl9jbGFzc2VzLmhhc19rZXkoIk5vbmUiKToKKyAgICAgICAgZmxpc3QgPSBmdW5jdGlvbl9jbGFzc2VzWyJOb25lIl0KKyAgICAgICAgZmxpc3Quc29ydChmdW5jdGlvbkNvbXBhcmUpCisgICAgICAgIG9sZGZpbGUgPSAiIgorICAgICAgICBmb3IgaW5mbyBpbiBmbGlzdDoKKyAgICAgICAgICAgIChpbmRleCwgZnVuYywgbmFtZSwgcmV0LCBhcmdzLCBmaWxlKSA9IGluZm8KKyAgICAgICAgICAgIGlmIGZpbGUgIT0gb2xkZmlsZToKKyAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIjXG4jIEZ1bmN0aW9ucyBmcm9tIG1vZHVsZSAlc1xuI1xuXG4iICUgZmlsZSkKKyAgICAgICAgICAgICAgICB0eHQud3JpdGUoIlxuIyBmdW5jdGlvbnMgZnJvbSBtb2R1bGUgJXNcbiIgJSBmaWxlKQorICAgICAgICAgICAgICAgIG9sZGZpbGUgPSBmaWxlCisgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCJkZWYgJXMoIiAlIGZ1bmMpCisgICAgICAgICAgICB0eHQud3JpdGUoIiVzKClcbiIgJSBmdW5jKQorICAgICAgICAgICAgbiA9IDAKKyAgICAgICAgICAgIGZvciBhcmcgaW4gYXJnczoKKyAgICAgICAgICAgICAgICBpZiBuICE9IDA6CisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiwgIikKKyAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIlcyIgJSBhcmdbMF0pCisgICAgICAgICAgICAgICAgbiA9IG4gKyAxCisgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIpOlxuIikKKyAgICAgICAgICAgIHdyaXRlRG9jKG5hbWUsIGFyZ3MsICcgICAgJywgY2xhc3NlcykKKworICAgICAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgorICAgICAgICAgICAgICAgIGlmIGNsYXNzZXNfdHlwZS5oYXNfa2V5KGFyZ1sxXSk6CisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICBpZiAlcyBpcyBOb25lOiAlc19fbyA9IE5vbmVcbiIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmdbMF0sIGFyZ1swXSkpCisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICBlbHNlOiAlc19fbyA9ICVzJXNcbiIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmdbMF0sIGFyZ1swXSwgY2xhc3Nlc190eXBlW2FyZ1sxXV1bMF0pKQorICAgICAgICAgICAgaWYgcmV0WzBdICE9ICJ2b2lkIjoKKyAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIgICAgcmV0ID0gIikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICIpCisgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCJsaWJ4bWwybW9kLiVzKCIgJSBuYW1lKQorICAgICAgICAgICAgbiA9IDAKKyAgICAgICAgICAgIGZvciBhcmcgaW4gYXJnczoKKyAgICAgICAgICAgICAgICBpZiBuICE9IDA6CisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiwgIikKKyAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIlcyIgJSBhcmdbMF0pCisgICAgICAgICAgICAgICAgaWYgY2xhc3Nlc190eXBlLmhhc19rZXkoYXJnWzFdKToKKyAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiX19vIikKKyAgICAgICAgICAgICAgICBuID0gbiArIDEKKyAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIilcbiIpCisgICAgICAgICAgICBpZiByZXRbMF0gIT0gInZvaWQiOgorICAgICAgICAgICAgICAgIGlmIGNsYXNzZXNfdHlwZS5oYXNfa2V5KHJldFswXSk6CisgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgIyBSYWlzZSBhbiBleGNlcHRpb24KKyAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICBpZiBmdW5jdGlvbnNfbm9leGNlcHQuaGFzX2tleShuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICBpZiByZXQgaXMgTm9uZTpyZXR1cm4gTm9uZVxuIikKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBzdHJpbmcuZmluZChuYW1lLCAiVVJJIikgPj0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGlmIHJldCBpcyBOb25lOnJhaXNlIHVyaUVycm9yKCclcygpIGZhaWxlZCcpXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUpKQorICAgICAgICAgICAgICAgICAgICBlbGlmIHN0cmluZy5maW5kKG5hbWUsICJYUGF0aCIpID49IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiByZXQgaXMgTm9uZTpyYWlzZSB4cGF0aEVycm9yKCclcygpIGZhaWxlZCcpXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUpKQorICAgICAgICAgICAgICAgICAgICBlbGlmIHN0cmluZy5maW5kKG5hbWUsICJQYXJzZSIpID49IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiByZXQgaXMgTm9uZTpyYWlzZSBwYXJzZXJFcnJvcignJXMoKSBmYWlsZWQnKVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGlmIHJldCBpcyBOb25lOnJhaXNlIHRyZWVFcnJvcignJXMoKSBmYWlsZWQnKVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgIHJldHVybiAiKQorICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKGNsYXNzZXNfdHlwZVtyZXRbMF1dWzFdICUgKCJyZXQiKSkKKyAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiXG4iKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICByZXR1cm4gcmV0XG4iKQorICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiXG4iKQorCisgICAgdHh0LndyaXRlKCJcblxuI1xuIyBTZXQgb2YgY2xhc3NlcyBvZiB0aGUgbW9kdWxlXG4jXG5cbiIpCisgICAgZm9yIGNsYXNzbmFtZSBpbiBjbGFzc2VzX2xpc3Q6CisgICAgICAgIGlmIGNsYXNzbmFtZSA9PSAiTm9uZSI6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBjbGFzc2VzX2FuY2VzdG9yLmhhc19rZXkoY2xhc3NuYW1lKToKKyAgICAgICAgICAgICAgICB0eHQud3JpdGUoIlxuXG5DbGFzcyAlcyglcylcbiIgJSAoY2xhc3NuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzX2FuY2VzdG9yW2NsYXNzbmFtZV0pKQorICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoImNsYXNzICVzKCVzKTpcbiIgJSAoY2xhc3NuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlc19hbmNlc3RvcltjbGFzc25hbWVdKSkKKyAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIgICAgZGVmIF9faW5pdF9fKHNlbGYsIF9vYmo9Tm9uZSk6XG4iKQorICAgICAgICAgICAgICAgIGlmIGNsYXNzZXNfYW5jZXN0b3JbY2xhc3NuYW1lXSA9PSAieG1sQ29yZSIgb3IgXAorICAgICAgICAgICAgICAgICAgIGNsYXNzZXNfYW5jZXN0b3JbY2xhc3NuYW1lXSA9PSAieG1sTm9kZSI6CisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgaWYgdHlwZShfb2JqKS5fX25hbWVfXyAhPSAiKQorICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCInUHlDT2JqZWN0JzpcbiIpCisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvciwgIikKKyAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiJyVzIG5lZWRzIGEgUHlDT2JqZWN0IGFyZ3VtZW50J1xuIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NuYW1lKQorICAgICAgICAgICAgICAgIGlmIHJlZmVyZW5jZV9rZWVwZXJzLmhhc19rZXkoY2xhc3NuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgcmxpc3QgPSByZWZlcmVuY2Vfa2VlcGVyc1tjbGFzc25hbWVdCisgICAgICAgICAgICAgICAgICAgIGZvciByZWYgaW4gcmxpc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIgICAgICAgIHNlbGYuJXMgPSBOb25lXG4iICUgcmVmWzFdKQorICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgc2VsZi5fbyA9IF9vYmpcbiIpCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICAlcy5fX2luaXRfXyhzZWxmLCBfb2JqPV9vYmopXG5cbiIgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzX2FuY2VzdG9yW2NsYXNzbmFtZV0pKQorICAgICAgICAgICAgICAgIGlmIGNsYXNzZXNfYW5jZXN0b3JbY2xhc3NuYW1lXSA9PSAieG1sQ29yZSIgb3IgXAorICAgICAgICAgICAgICAgICAgIGNsYXNzZXNfYW5jZXN0b3JbY2xhc3NuYW1lXSA9PSAieG1sTm9kZSI6CisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICBkZWYgX19yZXByX18oc2VsZik6XG4iKQorICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPSAiPCVzICglJXMpIG9iamVjdCBhdCAweCUleD4iICUgKGNsYXNzbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICByZXR1cm4gXCIlc1wiICUlIChzZWxmLm5hbWUsIGxvbmcocG9zX2lkIChzZWxmKSkpXG5cbiIgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdHh0LndyaXRlKCJDbGFzcyAlcygpXG4iICUgKGNsYXNzbmFtZSkpCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiY2xhc3MgJXM6XG4iICUgKGNsYXNzbmFtZSkpCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgIGRlZiBfX2luaXRfXyhzZWxmLCBfb2JqPU5vbmUpOlxuIikKKyAgICAgICAgICAgICAgICBpZiByZWZlcmVuY2Vfa2VlcGVycy5oYXNfa2V5KGNsYXNzbmFtZSk6CisgICAgICAgICAgICAgICAgICAgIGxpc3QgPSByZWZlcmVuY2Vfa2VlcGVyc1tjbGFzc25hbWVdCisgICAgICAgICAgICAgICAgICAgIGZvciByZWYgaW4gbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgc2VsZi4lcyA9IE5vbmVcbiIgJSByZWZbMV0pCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICBpZiBfb2JqICE9IE5vbmU6c2VsZi5fbyA9IF9vYmo7cmV0dXJuXG4iKQorICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgc2VsZi5fbyA9IE5vbmVcblxuIikKKyAgICAgICAgICAgIGRlc3RydWN0PU5vbmUKKyAgICAgICAgICAgIGlmIGNsYXNzZXNfZGVzdHJ1Y3RvcnMuaGFzX2tleShjbGFzc25hbWUpOgorICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICBkZWYgX19kZWxfXyhzZWxmKTpcbiIpCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICBpZiBzZWxmLl9vICE9IE5vbmU6XG4iKQorICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgICAgIGxpYnhtbDJtb2QuJXMoc2VsZi5fbylcbiIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlc19kZXN0cnVjdG9yc1tjbGFzc25hbWVdKQorICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgc2VsZi5fbyA9IE5vbmVcblxuIikKKyAgICAgICAgICAgICAgICBkZXN0cnVjdD1jbGFzc2VzX2Rlc3RydWN0b3JzW2NsYXNzbmFtZV0KKyAgICAgICAgICAgIGZsaXN0ID0gZnVuY3Rpb25fY2xhc3Nlc1tjbGFzc25hbWVdCisgICAgICAgICAgICBmbGlzdC5zb3J0KGZ1bmN0aW9uQ29tcGFyZSkKKyAgICAgICAgICAgIG9sZGZpbGUgPSAiIgorICAgICAgICAgICAgZm9yIGluZm8gaW4gZmxpc3Q6CisgICAgICAgICAgICAgICAgKGluZGV4LCBmdW5jLCBuYW1lLCByZXQsIGFyZ3MsIGZpbGUpID0gaW5mbworICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIERvIG5vdCBwcm92aWRlIGFzIG1ldGhvZCB0aGUgZGVzdHJ1Y3RvcnMgZm9yIHRoZSBjbGFzcworICAgICAgICAgICAgICAgICMgdG8gYXZvaWQgZG91YmxlIGZyZWUKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgaWYgbmFtZSA9PSBkZXN0cnVjdDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBmaWxlICE9IG9sZGZpbGU6CisgICAgICAgICAgICAgICAgICAgIGlmIGZpbGUgPT0gInB5dGhvbl9hY2Nlc3NvciI6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIgICAgIyBhY2Nlc3NvcnMgZm9yICVzXG4iICUgKGNsYXNzbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICB0eHQud3JpdGUoIiAgICAjIGFjY2Vzc29yc1xuIikKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAjXG4iKQorICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICMgJXMgZnVuY3Rpb25zIGZyb20gbW9kdWxlICVzXG4iICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc25hbWUsIGZpbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgdHh0LndyaXRlKCJcbiAgICAjIGZ1bmN0aW9ucyBmcm9tIG1vZHVsZSAlc1xuIiAlIGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIgICAgI1xuXG4iKQorICAgICAgICAgICAgICAgIG9sZGZpbGUgPSBmaWxlCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgIGRlZiAlcyhzZWxmIiAlIGZ1bmMpCisgICAgICAgICAgICAgICAgdHh0LndyaXRlKCIgICAgJXMoKVxuIiAlIGZ1bmMpCisgICAgICAgICAgICAgICAgbiA9IDAKKyAgICAgICAgICAgICAgICBmb3IgYXJnIGluIGFyZ3M6CisgICAgICAgICAgICAgICAgICAgIGlmIG4gIT0gaW5kZXg6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIsICVzIiAlIGFyZ1swXSkKKyAgICAgICAgICAgICAgICAgICAgbiA9IG4gKyAxCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiKTpcbiIpCisgICAgICAgICAgICAgICAgd3JpdGVEb2MobmFtZSwgYXJncywgJyAgICAgICAgJywgY2xhc3NlcykKKyAgICAgICAgICAgICAgICBuID0gMAorICAgICAgICAgICAgICAgIGZvciBhcmcgaW4gYXJnczoKKyAgICAgICAgICAgICAgICAgICAgaWYgY2xhc3Nlc190eXBlLmhhc19rZXkoYXJnWzFdKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG4gIT0gaW5kZXg6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICBpZiAlcyBpcyBOb25lOiAlc19fbyA9IE5vbmVcbiIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZ1swXSwgYXJnWzBdKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIgICAgICAgIGVsc2U6ICVzX19vID0gJXMlc1xuIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXJnWzBdLCBhcmdbMF0sIGNsYXNzZXNfdHlwZVthcmdbMV1dWzBdKSkKKyAgICAgICAgICAgICAgICAgICAgbiA9IG4gKyAxCisgICAgICAgICAgICAgICAgaWYgcmV0WzBdICE9ICJ2b2lkIjoKKyAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICByZXQgPSAiKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgIikKKyAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCJsaWJ4bWwybW9kLiVzKCIgJSBuYW1lKQorICAgICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgorICAgICAgICAgICAgICAgICAgICBpZiBuICE9IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIsICIpCisgICAgICAgICAgICAgICAgICAgIGlmIG4gIT0gaW5kZXg6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIlcyIgJSBhcmdbMF0pCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBjbGFzc2VzX3R5cGUuaGFzX2tleShhcmdbMV0pOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIl9fbyIpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCJzZWxmIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNsYXNzZXNfdHlwZS5oYXNfa2V5KGFyZ1sxXSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZShjbGFzc2VzX3R5cGVbYXJnWzFdXVswXSkKKyAgICAgICAgICAgICAgICAgICAgbiA9IG4gKyAxCisgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiKVxuIikKKyAgICAgICAgICAgICAgICBpZiByZXRbMF0gIT0gInZvaWQiOgorICAgICAgICAgICAgICAgICAgICBpZiBjbGFzc2VzX3R5cGUuaGFzX2tleShyZXRbMF0pOgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICAgICAgIyBSYWlzZSBhbiBleGNlcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uc19ub2V4Y2VwdC5oYXNfa2V5KG5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIGlmIHJldCBpcyBOb25lOnJldHVybiBOb25lXG4iKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBzdHJpbmcuZmluZChuYW1lLCAiVVJJIikgPj0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAiICAgICAgICBpZiByZXQgaXMgTm9uZTpyYWlzZSB1cmlFcnJvcignJXMoKSBmYWlsZWQnKVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAobmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHN0cmluZy5maW5kKG5hbWUsICJYUGF0aCIpID49IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgaWYgcmV0IGlzIE5vbmU6cmFpc2UgeHBhdGhFcnJvcignJXMoKSBmYWlsZWQnKVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAobmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHN0cmluZy5maW5kKG5hbWUsICJQYXJzZSIpID49IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgaWYgcmV0IGlzIE5vbmU6cmFpc2UgcGFyc2VyRXJyb3IoJyVzKCkgZmFpbGVkJylcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAiICAgICAgICBpZiByZXQgaXMgTm9uZTpyYWlzZSB0cmVlRXJyb3IoJyVzKCkgZmFpbGVkJylcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUpKQorCisgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgICAgICAgICAjIGdlbmVyYXRlIHRoZSByZXR1cm5lZCBjbGFzcyB3cmFwcGVyIGZvciB0aGUgb2JqZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKCIgICAgICAgIF9fdG1wID0gIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoY2xhc3Nlc190eXBlW3JldFswXV1bMV0gJSAoInJldCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiXG4iKQorCisgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgICAgICAgICAjIFNvbWV0aW1lIG9uZSBuZWVkIHRvIGtlZXAgcmVmZXJlbmNlcyBvZiB0aGUgc291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAjIGNsYXNzIGluIHRoZSByZXR1cm5lZCBjbGFzcyBvYmplY3QuCisgICAgICAgICAgICAgICAgICAgICAgICAjIFNlZSByZWZlcmVuY2Vfa2VlcGVycyBmb3IgdGhlIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRjbGFzcyA9IGNsYXNzZXNfdHlwZVtyZXRbMF1dWzJdCisgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWZlcmVuY2Vfa2VlcGVycy5oYXNfa2V5KHRjbGFzcyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9IHJlZmVyZW5jZV9rZWVwZXJzW3RjbGFzc10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcHJlZiBpbiBsaXN0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwcmVmWzBdID09IGNsYXNzbmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgX190bXAuJXMgPSBzZWxmXG4iICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZlsxXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgICMgcmV0dXJuIHRoZSBjbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICByZXR1cm4gX190bXBcbiIpCisgICAgICAgICAgICAgICAgICAgIGVsaWYgY29udmVydGVyX3R5cGUuaGFzX2tleShyZXRbMF0pOgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICAgICAgIyBSYWlzZSBhbiBleGNlcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uc19ub2V4Y2VwdC5oYXNfa2V5KG5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIGlmIHJldCBpcyBOb25lOnJldHVybiBOb25lIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgc3RyaW5nLmZpbmQobmFtZSwgIlVSSSIpID49IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgaWYgcmV0IGlzIE5vbmU6cmFpc2UgdXJpRXJyb3IoJyVzKCkgZmFpbGVkJylcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBzdHJpbmcuZmluZChuYW1lLCAiWFBhdGgiKSA+PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICIgICAgICAgIGlmIHJldCBpcyBOb25lOnJhaXNlIHhwYXRoRXJyb3IoJyVzKCkgZmFpbGVkJylcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBzdHJpbmcuZmluZChuYW1lLCAiUGFyc2UiKSA+PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICIgICAgICAgIGlmIHJldCBpcyBOb25lOnJhaXNlIHBhcnNlckVycm9yKCclcygpIGZhaWxlZCcpXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgaWYgcmV0IGlzIE5vbmU6cmFpc2UgdHJlZUVycm9yKCclcygpIGZhaWxlZCcpXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiAgICAgICAgcmV0dXJuICIpCisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLndyaXRlKGNvbnZlcnRlcl90eXBlW3JldFswXV0gJSAoInJldCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiXG4iKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy53cml0ZSgiICAgICAgICByZXR1cm4gcmV0XG4iKQorICAgICAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIlxuIikKKworICAgICMKKyAgICAjIEdlbmVyYXRlIGVudW0gY29uc3RhbnRzCisgICAgIworICAgIGZvciB0eXBlLGVudW0gaW4gZW51bXMuaXRlbXMoKToKKyAgICAgICAgY2xhc3Nlcy53cml0ZSgiIyAlc1xuIiAlIHR5cGUpCisgICAgICAgIGl0ZW1zID0gZW51bS5pdGVtcygpCisgICAgICAgIGl0ZW1zLnNvcnQobGFtYmRhIGkxLGkyOiBjbXAobG9uZyhpMVsxXSksbG9uZyhpMlsxXSkpKQorICAgICAgICBmb3IgbmFtZSx2YWx1ZSBpbiBpdGVtczoKKyAgICAgICAgICAgIGNsYXNzZXMud3JpdGUoIiVzID0gJXNcbiIgJSAobmFtZSx2YWx1ZSkpCisgICAgICAgIGNsYXNzZXMud3JpdGUoIlxuIikKKworICAgIHR4dC5jbG9zZSgpCisgICAgY2xhc3Nlcy5jbG9zZSgpCisKK2J1aWxkU3R1YnMoKQorYnVpbGRXcmFwcGVycygpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi9saWJ4bWwuYyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL2xpYnhtbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMDE3NjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi9saWJ4bWwuYwpAQCAtMCwwICsxLDM3MjQgQEAKKy8qCisgKiBsaWJ4bWwuYzogdGhpcyBtb2R1bGVzIGltcGxlbWVudHMgdGhlIG1haW4gcGFydCBvZiB0aGUgZ2x1ZSBvZiB0aGUKKyAqICAgICAgICAgICBsaWJ4bWwyIGxpYnJhcnkgYW5kIHRoZSBQeXRob24gaW50ZXJwcmV0ZXIuIEl0IHByb3ZpZGVzIHRoZQorICogICAgICAgICAgIGVudHJ5IHBvaW50cyB3aGVyZSBhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBzdHViIGlzIGVpdGhlcgorICogICAgICAgICAgIHVucHJhY3RpY2FsIG9yIHdvdWxkIG5vdCBtYXRjaCBjbGVhbmx5IHRoZSBQeXRob24gbW9kZWwuCisgKgorICogSWYgY29tcGlsZWQgd2l0aCBNRVJHRURfTU9EVUxFUywgdGhlIGVudHJ5IHBvaW50IHdpbGwgYmUgdXNlZCB0bworICogaW5pdGlhbGl6ZSBib3RoIHRoZSBsaWJ4bWwyIGFuZCB0aGUgbGlieHNsdCB3cmFwcGVycworICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKyNpbmNsdWRlIDxQeXRob24uaD4KKyNpbmNsdWRlIDxmaWxlb2JqZWN0Lmg+CisvKiAjaW5jbHVkZSAiY29uZmlnLmgiICovCisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aEludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sSU8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvYzE0bi5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWFkZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2F2ZS5oPgorI2luY2x1ZGUgImxpYnhtbF93cmFwLmgiCisjaW5jbHVkZSAibGlieG1sMi1weS5oIgorCisjaWYgKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19NSU5HVzMyX18pKSAmJiAhZGVmaW5lZCh2c25wcmludGYpCisjZGVmaW5lIHZzbnByaW50ZihiLGMsZixhKSBfdnNucHJpbnRmKGIsYyxmLGEpCisjZWxpZiBkZWZpbmVkKFdJVEhfVFJJTykKKyNpbmNsdWRlICJ0cmlvLmgiCisjZGVmaW5lIHZzbnByaW50ZiB0cmlvX3ZzbnByaW50ZgorI2VuZGlmCisKKy8qICNkZWZpbmUgREVCVUcgKi8KKy8qICNkZWZpbmUgREVCVUdfU0FYICovCisvKiAjZGVmaW5lIERFQlVHX1hQQVRIICovCisvKiAjZGVmaW5lIERFQlVHX0VSUk9SICovCisvKiAjZGVmaW5lIERFQlVHX01FTU9SWSAqLworLyogI2RlZmluZSBERUJVR19GSUxFUyAqLworLyogI2RlZmluZSBERUJVR19MT0FERVIgKi8KKwordm9pZCBpbml0bGlieG1sMm1vZCh2b2lkKTsKKworLyoqCisgKiBUT0RPOgorICoKKyAqIG1hY3JvIHRvIGZsYWcgdW5pbXBsZW1lbnRlZCBibG9ja3MKKyAqLworI2RlZmluZSBUT0RPIAkJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJVbmltcGxlbWVudGVkIGJsb2NrIGF0ICVzOiVkXG4iLAkJCQlcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworLyoKKyAqIHRoZSBmb2xsb3dpbmcgdmFycyBhcmUgdXNlZCBmb3IgWFBhdGggZXh0ZW5zaW9ucywgYnV0CisgKiBhcmUgYWxzbyByZWZlcmVuY2VkIHdpdGhpbiB0aGUgcGFyc2VyIGNsZWFudXAgcm91dGluZS4KKyAqLworc3RhdGljIGludCBsaWJ4bWxfeHBhdGhDYWxsYmFja3NJbml0aWFsaXplZCA9IDA7CisKK3R5cGVkZWYgc3RydWN0IGxpYnhtbF94cGF0aENhbGxiYWNrIHsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4OworICAgIHhtbENoYXIgKm5hbWU7CisgICAgeG1sQ2hhciAqbnNfdXJpOworICAgIFB5T2JqZWN0ICpmdW5jdGlvbjsKK30gbGlieG1sX3hwYXRoQ2FsbGJhY2ssICpsaWJ4bWxfeHBhdGhDYWxsYmFja1B0cjsKK3R5cGVkZWYgbGlieG1sX3hwYXRoQ2FsbGJhY2sgbGlieG1sX3hwYXRoQ2FsbGJhY2tBcnJheVtdOworc3RhdGljIGludCBsaWJ4bWxfeHBhdGhDYWxsYmFja3NBbGxvY2QgPSAxMDsKK3N0YXRpYyBsaWJ4bWxfeHBhdGhDYWxsYmFja0FycmF5ICpsaWJ4bWxfeHBhdGhDYWxsYmFja3MgPSBOVUxMOworc3RhdGljIGludCBsaWJ4bWxfeHBhdGhDYWxsYmFja3NOYiA9IDA7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCU1lbW9yeSBkZWJ1ZyBpbnRlcmZhY2UJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIDAKK2V4dGVybiB2b2lkIHhtbE1lbUZyZWUodm9pZCAqcHRyKTsKK2V4dGVybiB2b2lkICp4bWxNZW1NYWxsb2Moc2l6ZV90IHNpemUpOworZXh0ZXJuIHZvaWQgKnhtbE1lbVJlYWxsb2Modm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CitleHRlcm4gY2hhciAqeG1sTWVtb3J5U3RyZHVwKGNvbnN0IGNoYXIgKnN0cik7CisjZW5kaWYKKworc3RhdGljIGludCBsaWJ4bWxNZW1vcnlEZWJ1Z0FjdGl2YXRlZCA9IDA7CitzdGF0aWMgbG9uZyBsaWJ4bWxNZW1vcnlBbGxvY2F0ZWRCYXNlID0gMDsKKworc3RhdGljIGludCBsaWJ4bWxNZW1vcnlEZWJ1ZyA9IDA7CitzdGF0aWMgeG1sRnJlZUZ1bmMgZnJlZUZ1bmMgPSBOVUxMOworc3RhdGljIHhtbE1hbGxvY0Z1bmMgbWFsbG9jRnVuYyA9IE5VTEw7CitzdGF0aWMgeG1sUmVhbGxvY0Z1bmMgcmVhbGxvY0Z1bmMgPSBOVUxMOworc3RhdGljIHhtbFN0cmR1cEZ1bmMgc3RyZHVwRnVuYyA9IE5VTEw7CisKK3N0YXRpYyB2b2lkCitsaWJ4bWxfeG1sRXJyb3JJbml0aWFsaXplKHZvaWQpOyAvKiBmb3J3YXJkIGRlY2xhcmUgKi8KKworUHlPYmplY3QgKgorbGlieG1sX3htbE1lbW9yeVVzZWQoUHlPYmplY3QgKiBzZWxmIEFUVFJJQlVURV9VTlVTRUQsIAorICAgICAgICBQeU9iamVjdCAqIGFyZ3MgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBsb25nIHJldDsKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsOworCisgICAgcmV0ID0geG1sTWVtVXNlZCgpOworCisgICAgcHlfcmV0dmFsID0gbGlieG1sX2xvbmdXcmFwKHJldCk7CisgICAgcmV0dXJuIChweV9yZXR2YWwpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sRGVidWdNZW1vcnkoUHlPYmplY3QgKiBzZWxmIEFUVFJJQlVURV9VTlVTRUQsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBpbnQgYWN0aXZhdGU7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICBsb25nIHJldDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSAiaTp4bWxEZWJ1Z01lbW9yeSIsICZhY3RpdmF0ZSkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICBwcmludGYoImxpYnhtbF94bWxEZWJ1Z01lbW9yeSglZCkgY2FsbGVkXG4iLCBhY3RpdmF0ZSk7CisjZW5kaWYKKworICAgIGlmIChhY3RpdmF0ZSAhPSAwKSB7CisgICAgICAgIGlmIChsaWJ4bWxNZW1vcnlEZWJ1ZyA9PSAwKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogRmlyc3QgaW5pdGlhbGl6ZSB0aGUgbGlicmFyeSBhbmQgZ3JhYiB0aGUgb2xkIG1lbW9yeSBoYW5kbGVycworICAgICAgICAgICAgICogYW5kIHN3aXRjaCB0aGUgbGlicmFyeSB0byBtZW1vcnkgZGVidWdnaW5nCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHhtbE1lbUdldCgoeG1sRnJlZUZ1bmMgKikgJiBmcmVlRnVuYywKKyAgICAgICAgICAgICAgICAgICAgICAoeG1sTWFsbG9jRnVuYyAqKSAmIG1hbGxvY0Z1bmMsCisgICAgICAgICAgICAgICAgICAgICAgKHhtbFJlYWxsb2NGdW5jICopICYgcmVhbGxvY0Z1bmMsCisgICAgICAgICAgICAgICAgICAgICAgKHhtbFN0cmR1cEZ1bmMgKikgJiBzdHJkdXBGdW5jKTsKKyAgICAgICAgICAgIGlmICgoZnJlZUZ1bmMgPT0geG1sTWVtRnJlZSkgJiYgKG1hbGxvY0Z1bmMgPT0geG1sTWVtTWFsbG9jKSAmJgorICAgICAgICAgICAgICAgIChyZWFsbG9jRnVuYyA9PSB4bWxNZW1SZWFsbG9jKSAmJgorICAgICAgICAgICAgICAgIChzdHJkdXBGdW5jID09IHhtbE1lbW9yeVN0cmR1cCkpIHsKKyAgICAgICAgICAgICAgICBsaWJ4bWxNZW1vcnlBbGxvY2F0ZWRCYXNlID0geG1sTWVtVXNlZCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiAKKyAgICAgICAgICAgICAgICAgKiBjbGVhbnVwIGZpcnN0LCBiZWNhdXNlIHNvbWUgbWVtb3J5IGhhcyBiZWVuCisgICAgICAgICAgICAgICAgICogYWxsb2NhdGVkIHdpdGggdGhlIG5vbi1kZWJ1ZyBtYWxsb2MgaW4geG1sSW5pdFBhcnNlcgorICAgICAgICAgICAgICAgICAqIHdoZW4gdGhlIHB5dGhvbiBtb2R1bGUgd2FzIGltcG9ydGVkCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgICAgICAgICAgICAgIHJldCA9IChsb25nKSB4bWxNZW1TZXR1cCh4bWxNZW1GcmVlLCB4bWxNZW1NYWxsb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE1lbVJlYWxsb2MsIHhtbE1lbW9yeVN0cmR1cCk7CisgICAgICAgICAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgbGlieG1sTWVtb3J5QWxsb2NhdGVkQmFzZSA9IHhtbE1lbVVzZWQoKTsKKyAgICAgICAgICAgICAgICAvKiByZWluaXRpYWxpemUgKi8KKyAgICAgICAgICAgICAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgICAgICAgICAgICAgbGlieG1sX3htbEVycm9ySW5pdGlhbGl6ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgfSBlbHNlIGlmIChsaWJ4bWxNZW1vcnlEZWJ1Z0FjdGl2YXRlZCA9PSAwKSB7CisgICAgICAgICAgICBsaWJ4bWxNZW1vcnlBbGxvY2F0ZWRCYXNlID0geG1sTWVtVXNlZCgpOworICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldCA9IHhtbE1lbVVzZWQoKSAtIGxpYnhtbE1lbW9yeUFsbG9jYXRlZEJhc2U7CisgICAgICAgIH0KKyAgICAgICAgbGlieG1sTWVtb3J5RGVidWcgPSAxOworICAgICAgICBsaWJ4bWxNZW1vcnlEZWJ1Z0FjdGl2YXRlZCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGxpYnhtbE1lbW9yeURlYnVnQWN0aXZhdGVkID09IDEpCisgICAgICAgICAgICByZXQgPSB4bWxNZW1Vc2VkKCkgLSBsaWJ4bWxNZW1vcnlBbGxvY2F0ZWRCYXNlOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSAwOworICAgICAgICBsaWJ4bWxNZW1vcnlEZWJ1Z0FjdGl2YXRlZCA9IDA7CisgICAgfQorICBlcnJvcjoKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfbG9uZ1dyYXAocmV0KTsKKyAgICByZXR1cm4gKHB5X3JldHZhbCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxQeXRob25DbGVhbnVwUGFyc2VyKFB5T2JqZWN0ICpzZWxmIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXJncyBBVFRSSUJVVEVfVU5VU0VEKSB7CisKKyAgICBpbnQgaXg7CisgICAgbG9uZyBmcmVlZCA9IC0xOworCisgICAgaWYgKGxpYnhtbE1lbW9yeURlYnVnKSB7CisgICAgICAgIGZyZWVkID0geG1sTWVtVXNlZCgpOworICAgIH0KKworICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICAvKgorICAgICAqIE5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHdlIHJlYWxseSB3YW50IHRvIGRvIHRoaXMgKHJlcXVpcmVkIGZvcgorICAgICAqIG1lbWNoZWNrKSBpbiBhbGwgY2FzZXMuLi4KKyAgICAgKi8KKyAgIAorICAgIGlmIChsaWJ4bWxfeHBhdGhDYWxsYmFja3MgIT0gTlVMTCkgewkvKiBpZiBleHQgZnVuY3MgZGVjbGFyZWQgKi8KKwlmb3IgKGl4PTA7IGl4PGxpYnhtbF94cGF0aENhbGxiYWNrc05iOyBpeCsrKSB7CisJICAgIGlmICgoKmxpYnhtbF94cGF0aENhbGxiYWNrcylbaXhdLm5hbWUgIT0gTlVMTCkKKwkgICAgICAgIHhtbEZyZWUoKCpsaWJ4bWxfeHBhdGhDYWxsYmFja3MpW2l4XS5uYW1lKTsKKwkgICAgaWYgKCgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpeF0ubnNfdXJpICE9IE5VTEwpCisJICAgICAgICB4bWxGcmVlKCgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpeF0ubnNfdXJpKTsKKwl9CisJbGlieG1sX3hwYXRoQ2FsbGJhY2tzTmIgPSAwOworICAgICAgICB4bWxGcmVlKGxpYnhtbF94cGF0aENhbGxiYWNrcyk7CisJbGlieG1sX3hwYXRoQ2FsbGJhY2tzID0gTlVMTDsKKyAgICB9CisKKyAgICBpZiAobGlieG1sTWVtb3J5RGVidWcpIHsKKyAgICAgICAgZnJlZWQgLT0geG1sTWVtVXNlZCgpOworCWxpYnhtbE1lbW9yeUFsbG9jYXRlZEJhc2UgLT0gZnJlZWQ7CisJaWYgKGxpYnhtbE1lbW9yeUFsbG9jYXRlZEJhc2UgPCAwKQorCSAgICBsaWJ4bWxNZW1vcnlBbGxvY2F0ZWRCYXNlID0gMDsKKyAgICB9CisKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgcmV0dXJuKFB5X05vbmUpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sRHVtcE1lbW9yeShBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgIEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBhcmdzKQoreworCisgICAgaWYgKGxpYnhtbE1lbW9yeURlYnVnICE9IDApCisgICAgICAgIHhtbE1lbW9yeUR1bXAoKTsKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgcmV0dXJuIChQeV9Ob25lKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJSGFuZGxpbmcgUHl0aG9uIEZJTEUgSS9PIGF0IHRoZSBDIGxldmVsCQkJKgorICoJVGhlIHJhdyBJL08gYXR0YWNrIGRpZWN0bHkgdGhlIEZpbGUgb2JqZWN0cywgd2hpbGUgdGhlCQkqCisgKglvdGhlciByb3V0aW5lcyBhZGRyZXNzIHRoZSBpb1dyYXBwZXIgaW5zdGFuY2UgaW5zdGVhZAkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFB5dGhvbkZpbGVDbG9zZVVucmVmOgorICogQGNvbnRleHQ6ICB0aGUgSS9PIGNvbnRleHQKKyAqCisgKiBDbG9zZSBhbiBJL08gY2hhbm5lbAorICovCitzdGF0aWMgaW50Cit4bWxQeXRob25GaWxlQ2xvc2VSYXcgKHZvaWQgKiBjb250ZXh0KSB7CisgICAgUHlPYmplY3QgKmZpbGUsICpyZXQ7CisKKyNpZmRlZiBERUJVR19GSUxFUworICAgIHByaW50ZigieG1sUHl0aG9uRmlsZUNsb3NlVW5yZWZcbiIpOworI2VuZGlmCisgICAgZmlsZSA9IChQeU9iamVjdCAqKSBjb250ZXh0OworICAgIGlmIChmaWxlID09IE5VTEwpIHJldHVybigtMSk7CisgICAgcmV0ID0gUHlFdmFsX0NhbGxNZXRob2QoZmlsZSwgKGNoYXIgKikgImNsb3NlIiwgKGNoYXIgKikgIigpIik7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJUHlfREVDUkVGKHJldCk7CisgICAgfQorICAgIFB5X0RFQ1JFRihmaWxlKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUHl0aG9uRmlsZVJlYWRSYXc6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICogQGJ1ZmZlcjogIHdoZXJlIHRvIGRyb3AgZGF0YQorICogQGxlbjogIG51bWJlciBvZiBieXRlcyB0byB3cml0ZQorICoKKyAqIFJlYWQgQGxlbiBieXRlcyB0byBAYnVmZmVyIGZyb20gdGhlIFB5dGhvbiBmaWxlIGluIHRoZSBJL08gY2hhbm5lbAorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkCisgKi8KK3N0YXRpYyBpbnQKK3htbFB5dGhvbkZpbGVSZWFkUmF3ICh2b2lkICogY29udGV4dCwgY2hhciAqIGJ1ZmZlciwgaW50IGxlbikgeworICAgIFB5T2JqZWN0ICpmaWxlOworICAgIFB5T2JqZWN0ICpyZXQ7CisgICAgaW50IGxlbnJlYWQgPSAtMTsKKyAgICBjaGFyICpkYXRhOworCisjaWZkZWYgREVCVUdfRklMRVMKKyAgICBwcmludGYoInhtbFB5dGhvbkZpbGVSZWFkUmF3OiAlZFxuIiwgbGVuKTsKKyNlbmRpZgorICAgIGZpbGUgPSAoUHlPYmplY3QgKikgY29udGV4dDsKKyAgICBpZiAoZmlsZSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIHJldCA9IFB5RXZhbF9DYWxsTWV0aG9kKGZpbGUsIChjaGFyICopICJyZWFkIiwgKGNoYXIgKikgIihpKSIsIGxlbik7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJcHJpbnRmKCJ4bWxQeXRob25GaWxlUmVhZFJhdzogcmVzdWx0IGlzIE5VTExcbiIpOworCXJldHVybigtMSk7CisgICAgfSBlbHNlIGlmIChQeVN0cmluZ19DaGVjayhyZXQpKSB7CisJbGVucmVhZCA9IFB5U3RyaW5nX1NpemUocmV0KTsKKwlkYXRhID0gUHlTdHJpbmdfQXNTdHJpbmcocmV0KTsKKwlpZiAobGVucmVhZCA+IGxlbikKKwkgICAgbWVtY3B5KGJ1ZmZlciwgZGF0YSwgbGVuKTsKKwllbHNlCisJICAgIG1lbWNweShidWZmZXIsIGRhdGEsIGxlbnJlYWQpOworCVB5X0RFQ1JFRihyZXQpOworICAgIH0gZWxzZSB7CisJcHJpbnRmKCJ4bWxQeXRob25GaWxlUmVhZFJhdzogcmVzdWx0IGlzIG5vdCBhIFN0cmluZ1xuIik7CisJUHlfREVDUkVGKHJldCk7CisgICAgfQorICAgIHJldHVybihsZW5yZWFkKTsKK30KKworLyoqCisgKiB4bWxQeXRob25GaWxlUmVhZDoKKyAqIEBjb250ZXh0OiAgdGhlIEkvTyBjb250ZXh0CisgKiBAYnVmZmVyOiAgd2hlcmUgdG8gZHJvcCBkYXRhCisgKiBAbGVuOiAgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlCisgKgorICogUmVhZCBAbGVuIGJ5dGVzIHRvIEBidWZmZXIgZnJvbSB0aGUgSS9PIGNoYW5uZWwuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQKKyAqLworc3RhdGljIGludAoreG1sUHl0aG9uRmlsZVJlYWQgKHZvaWQgKiBjb250ZXh0LCBjaGFyICogYnVmZmVyLCBpbnQgbGVuKSB7CisgICAgUHlPYmplY3QgKmZpbGU7CisgICAgUHlPYmplY3QgKnJldDsKKyAgICBpbnQgbGVucmVhZCA9IC0xOworICAgIGNoYXIgKmRhdGE7CisKKyNpZmRlZiBERUJVR19GSUxFUworICAgIHByaW50ZigieG1sUHl0aG9uRmlsZVJlYWQ6ICVkXG4iLCBsZW4pOworI2VuZGlmCisgICAgZmlsZSA9IChQeU9iamVjdCAqKSBjb250ZXh0OworICAgIGlmIChmaWxlID09IE5VTEwpIHJldHVybigtMSk7CisgICAgcmV0ID0gUHlFdmFsX0NhbGxNZXRob2QoZmlsZSwgKGNoYXIgKikgImlvX3JlYWQiLCAoY2hhciAqKSAiKGkpIiwgbGVuKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwlwcmludGYoInhtbFB5dGhvbkZpbGVSZWFkOiByZXN1bHQgaXMgTlVMTFxuIik7CisJcmV0dXJuKC0xKTsKKyAgICB9IGVsc2UgaWYgKFB5U3RyaW5nX0NoZWNrKHJldCkpIHsKKwlsZW5yZWFkID0gUHlTdHJpbmdfU2l6ZShyZXQpOworCWRhdGEgPSBQeVN0cmluZ19Bc1N0cmluZyhyZXQpOworCWlmIChsZW5yZWFkID4gbGVuKQorCSAgICBtZW1jcHkoYnVmZmVyLCBkYXRhLCBsZW4pOworCWVsc2UKKwkgICAgbWVtY3B5KGJ1ZmZlciwgZGF0YSwgbGVucmVhZCk7CisJUHlfREVDUkVGKHJldCk7CisgICAgfSBlbHNlIHsKKwlwcmludGYoInhtbFB5dGhvbkZpbGVSZWFkOiByZXN1bHQgaXMgbm90IGEgU3RyaW5nXG4iKTsKKwlQeV9ERUNSRUYocmV0KTsKKyAgICB9CisgICAgcmV0dXJuKGxlbnJlYWQpOworfQorCisvKioKKyAqIHhtbEZpbGVXcml0ZToKKyAqIEBjb250ZXh0OiAgdGhlIEkvTyBjb250ZXh0CisgKiBAYnVmZmVyOiAgd2hlcmUgdG8gZHJvcCBkYXRhCisgKiBAbGVuOiAgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlCisgKgorICogV3JpdGUgQGxlbiBieXRlcyBmcm9tIEBidWZmZXIgdG8gdGhlIEkvTyBjaGFubmVsLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuCisgKi8KK3N0YXRpYyBpbnQKK3htbFB5dGhvbkZpbGVXcml0ZSAodm9pZCAqIGNvbnRleHQsIGNvbnN0IGNoYXIgKiBidWZmZXIsIGludCBsZW4pIHsKKyAgICBQeU9iamVjdCAqZmlsZTsKKyAgICBQeU9iamVjdCAqc3RyaW5nOworICAgIFB5T2JqZWN0ICpyZXQgPSBOVUxMOworICAgIGludCB3cml0dGVuID0gLTE7CisKKyNpZmRlZiBERUJVR19GSUxFUworICAgIHByaW50ZigieG1sUHl0aG9uRmlsZVdyaXRlOiAlZFxuIiwgbGVuKTsKKyNlbmRpZgorICAgIGZpbGUgPSAoUHlPYmplY3QgKikgY29udGV4dDsKKyAgICBpZiAoZmlsZSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIHN0cmluZyA9IFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKGJ1ZmZlciwgbGVuKTsKKyAgICBpZiAoc3RyaW5nID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoZmlsZSwgKGNoYXIgKikgImlvX3dyaXRlIikpIHsKKyAgICAgICAgcmV0ID0gUHlFdmFsX0NhbGxNZXRob2QoZmlsZSwgKGNoYXIgKikgImlvX3dyaXRlIiwgKGNoYXIgKikgIihPKSIsCisJICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nKTsKKyAgICB9IGVsc2UgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoZmlsZSwgKGNoYXIgKikgIndyaXRlIikpIHsKKyAgICAgICAgcmV0ID0gUHlFdmFsX0NhbGxNZXRob2QoZmlsZSwgKGNoYXIgKikgIndyaXRlIiwgKGNoYXIgKikgIihPKSIsCisJICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nKTsKKyAgICB9CisgICAgUHlfREVDUkVGKHN0cmluZyk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJcHJpbnRmKCJ4bWxQeXRob25GaWxlV3JpdGU6IHJlc3VsdCBpcyBOVUxMXG4iKTsKKwlyZXR1cm4oLTEpOworICAgIH0gZWxzZSBpZiAoUHlJbnRfQ2hlY2socmV0KSkgeworCXdyaXR0ZW4gPSAoaW50KSBQeUludF9Bc0xvbmcocmV0KTsKKwlQeV9ERUNSRUYocmV0KTsKKyAgICB9IGVsc2UgaWYgKHJldCA9PSBQeV9Ob25lKSB7CisJd3JpdHRlbiA9IGxlbjsKKwlQeV9ERUNSRUYocmV0KTsKKyAgICB9IGVsc2UgeworCXByaW50ZigieG1sUHl0aG9uRmlsZVdyaXRlOiByZXN1bHQgaXMgbm90IGFuIEludCBub3IgTm9uZVxuIik7CisJUHlfREVDUkVGKHJldCk7CisgICAgfQorICAgIHJldHVybih3cml0dGVuKTsKK30KKworLyoqCisgKiB4bWxQeXRob25GaWxlQ2xvc2U6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICoKKyAqIENsb3NlIGFuIEkvTyBjaGFubmVsCisgKi8KK3N0YXRpYyBpbnQKK3htbFB5dGhvbkZpbGVDbG9zZSAodm9pZCAqIGNvbnRleHQpIHsKKyAgICBQeU9iamVjdCAqZmlsZSwgKnJldCA9IE5VTEw7CisKKyNpZmRlZiBERUJVR19GSUxFUworICAgIHByaW50ZigieG1sUHl0aG9uRmlsZUNsb3NlXG4iKTsKKyNlbmRpZgorICAgIGZpbGUgPSAoUHlPYmplY3QgKikgY29udGV4dDsKKyAgICBpZiAoZmlsZSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGZpbGUsIChjaGFyICopICJpb19jbG9zZSIpKSB7CisgICAgICAgIHJldCA9IFB5RXZhbF9DYWxsTWV0aG9kKGZpbGUsIChjaGFyICopICJpb19jbG9zZSIsIChjaGFyICopICIoKSIpOworICAgIH0gZWxzZSBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhmaWxlLCAoY2hhciAqKSAiZmx1c2giKSkgeworICAgICAgICByZXQgPSBQeUV2YWxfQ2FsbE1ldGhvZChmaWxlLCAoY2hhciAqKSAiZmx1c2giLCAoY2hhciAqKSAiKCkiKTsKKyAgICB9CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJUHlfREVDUkVGKHJldCk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVQeXRob25GaWxlOgorICogQGZpbGU6ICBhIFB5RmlsZV9UeXBlCisgKiBAZW5jb2RlcjogIHRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTAorICoKKyAqIENyZWF0ZSBhIGJ1ZmZlcmVkIG91dHB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHNhdmluZyB0byBhIFB5RmlsZV9UeXBlCisgKiBidWZmZXJlZCBDIEkvTworICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEwKKyAqLworc3RhdGljIHhtbE91dHB1dEJ1ZmZlclB0cgoreG1sT3V0cHV0QnVmZmVyQ3JlYXRlUHl0aG9uRmlsZShQeU9iamVjdCAqZmlsZSwgCisJICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldDsKKworICAgIGlmIChmaWxlID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHJldCA9IHhtbEFsbG9jT3V0cHV0QnVmZmVyKGVuY29kZXIpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICByZXQtPmNvbnRleHQgPSBmaWxlOworCS8qIFB5X0lOQ1JFRihmaWxlKTsgKi8KKwlyZXQtPndyaXRlY2FsbGJhY2sgPSB4bWxQeXRob25GaWxlV3JpdGU7CisJcmV0LT5jbG9zZWNhbGxiYWNrID0geG1sUHl0aG9uRmlsZUNsb3NlOworICAgIH0KKworICAgIHJldHVybihyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sQ3JlYXRlT3V0cHV0QnVmZmVyKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKSB7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICBQeU9iamVjdCAqZmlsZTsKKyAgICB4bWxDaGFyICAqZW5jb2Rpbmc7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyID0gTlVMTDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmZmVyOworCisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiT3o6eG1sT3V0cHV0QnVmZmVyQ3JlYXRlIiwKKwkJJmZpbGUsICZlbmNvZGluZykpCisJcmV0dXJuKE5VTEwpOworICAgIGlmICgoZW5jb2RpbmcgIT0gTlVMTCkgJiYgKGVuY29kaW5nWzBdICE9IDApKSB7CisJaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKChjb25zdCBjaGFyICopIGVuY29kaW5nKTsKKyAgICB9CisgICAgYnVmZmVyID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlUHl0aG9uRmlsZShmaWxlLCBoYW5kbGVyKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisJcHJpbnRmKCJsaWJ4bWxfeG1sQ3JlYXRlT3V0cHV0QnVmZmVyOiBidWZmZXIgPT0gTlVMTFxuIik7CisgICAgcHlfcmV0dmFsID0gbGlieG1sX3htbE91dHB1dEJ1ZmZlclB0cldyYXAoYnVmZmVyKTsKKyAgICByZXR1cm4ocHlfcmV0dmFsKTsKK30KKworLyoqCisgKiBsaWJ4bWxfb3V0cHV0QnVmZmVyR2V0UHl0aG9uRmlsZToKKyAqIEBidWZmZXI6ICB0aGUgSS9PIGJ1ZmZlcgorICoKKyAqIHJlYWQgdGhlIFB5dGhvbiBJL08gZnJvbSB0aGUgQ09iamVjdAorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEwKKyAqLworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF9vdXRwdXRCdWZmZXJHZXRQeXRob25GaWxlKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKnNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXJncykgeworICAgIFB5T2JqZWN0ICpidWZmZXI7CisgICAgUHlPYmplY3QgKmZpbGU7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG9iajsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSJPOm91dHB1dEJ1ZmZlckdldFB5dGhvbkZpbGUiLAorCQkJICAmYnVmZmVyKSkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBvYmogPSBQeW91dHB1dEJ1ZmZlcl9HZXQoYnVmZmVyKTsKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKwlmcHJpbnRmKHN0ZGVyciwKKwkgICAgICAgICJvdXRwdXRCdWZmZXJHZXRQeXRob25GaWxlOiBvYmogPT0gTlVMTFxuIik7CisJUHlfSU5DUkVGKFB5X05vbmUpOworCXJldHVybihQeV9Ob25lKTsKKyAgICB9CisgICAgaWYgKG9iai0+Y2xvc2VjYWxsYmFjayAhPSB4bWxQeXRob25GaWxlQ2xvc2UpIHsKKwlmcHJpbnRmKHN0ZGVyciwKKwkgICAgICAgICJvdXRwdXRCdWZmZXJHZXRQeXRob25GaWxlOiBub3QgYSBweXRob24gZmlsZSB3cmFwcGVyXG4iKTsKKwlQeV9JTkNSRUYoUHlfTm9uZSk7CisJcmV0dXJuKFB5X05vbmUpOworICAgIH0KKyAgICBmaWxlID0gKFB5T2JqZWN0ICopIG9iai0+Y29udGV4dDsKKyAgICBpZiAoZmlsZSA9PSBOVUxMKSB7CisJUHlfSU5DUkVGKFB5X05vbmUpOworCXJldHVybihQeV9Ob25lKTsKKyAgICB9CisgICAgUHlfSU5DUkVGKGZpbGUpOworICAgIHJldHVybihmaWxlKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxPdXRwdXRCdWZmZXJDbG9zZShQeU9iamVjdCAqc2VsZiBBVFRSSUJVVEVfVU5VU0VELCBQeU9iamVjdCAqYXJncykgeworICAgIFB5T2JqZWN0ICpweV9yZXR2YWw7CisgICAgaW50IGNfcmV0dmFsOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBvdXQ7CisgICAgUHlPYmplY3QgKnB5b2JqX291dDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSJPOnhtbE91dHB1dEJ1ZmZlckNsb3NlIiwgJnB5b2JqX291dCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBvdXQgPSAoeG1sT3V0cHV0QnVmZmVyUHRyKSBQeW91dHB1dEJ1ZmZlcl9HZXQocHlvYmpfb3V0KTsKKyAgICAvKiBCdWZmZXIgbWF5IGFscmVhZHkgaGF2ZSBiZWVuIGRlc3Ryb3llZCBlbHNld2hlcmUuIFRoaXMgaXMgaGFybWxlc3MuICovCisgICAgaWYgKG91dCA9PSBOVUxMKSB7CisJUHlfSU5DUkVGKFB5X05vbmUpOworCXJldHVybihQeV9Ob25lKTsKKyAgICB9CisKKyAgICBjX3JldHZhbCA9IHhtbE91dHB1dEJ1ZmZlckNsb3NlKG91dCk7CisgICAgcHlfcmV0dmFsID0gbGlieG1sX2ludFdyYXAoKGludCkgY19yZXR2YWwpOworICAgIHJldHVybihweV9yZXR2YWwpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX3htbE91dHB1dEJ1ZmZlckZsdXNoKFB5T2JqZWN0ICpzZWxmIEFUVFJJQlVURV9VTlVTRUQsIFB5T2JqZWN0ICphcmdzKSB7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICBpbnQgY19yZXR2YWw7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dDsKKyAgICBQeU9iamVjdCAqcHlvYmpfb3V0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopIk86eG1sT3V0cHV0QnVmZmVyRmx1c2giLCAmcHlvYmpfb3V0KSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIG91dCA9ICh4bWxPdXRwdXRCdWZmZXJQdHIpIFB5b3V0cHV0QnVmZmVyX0dldChweW9ial9vdXQpOworCisgICAgY19yZXR2YWwgPSB4bWxPdXRwdXRCdWZmZXJGbHVzaChvdXQpOworICAgIHB5X3JldHZhbCA9IGxpYnhtbF9pbnRXcmFwKChpbnQpIGNfcmV0dmFsKTsKKyAgICByZXR1cm4ocHlfcmV0dmFsKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxTYXZlRmlsZVRvKFB5T2JqZWN0ICpzZWxmIEFUVFJJQlVURV9VTlVTRUQsIFB5T2JqZWN0ICphcmdzKSB7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICBpbnQgY19yZXR2YWw7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICBQeU9iamVjdCAqcHlvYmpfYnVmOworICAgIHhtbERvY1B0ciBjdXI7CisgICAgUHlPYmplY3QgKnB5b2JqX2N1cjsKKyAgICBjaGFyICogZW5jb2Rpbmc7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiT096OnhtbFNhdmVGaWxlVG8iLCAmcHlvYmpfYnVmLCAmcHlvYmpfY3VyLCAmZW5jb2RpbmcpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgYnVmID0gKHhtbE91dHB1dEJ1ZmZlclB0cikgUHlvdXRwdXRCdWZmZXJfR2V0KHB5b2JqX2J1Zik7CisgICAgY3VyID0gKHhtbERvY1B0cikgUHl4bWxOb2RlX0dldChweW9ial9jdXIpOworCisgICAgY19yZXR2YWwgPSB4bWxTYXZlRmlsZVRvKGJ1ZiwgY3VyLCBlbmNvZGluZyk7CisJLyogeG1sU2F2ZVRvKCkgZnJlZWQgdGhlIG1lbW9yeSBwb2ludGVkIHRvIGJ5IGJ1Ziwgc28gcmVjb3JkIHRoYXQgaW4gdGhlCisJICogUHl0aG9uIG9iamVjdC4gKi8KKyAgICAoKFB5b3V0cHV0QnVmZmVyX09iamVjdCAqKShweW9ial9idWYpKS0+b2JqID0gTlVMTDsKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgoaW50KSBjX3JldHZhbCk7CisgICAgcmV0dXJuKHB5X3JldHZhbCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfeG1sU2F2ZUZvcm1hdEZpbGVUbyhQeU9iamVjdCAqc2VsZiBBVFRSSUJVVEVfVU5VU0VELCBQeU9iamVjdCAqYXJncykgeworICAgIFB5T2JqZWN0ICpweV9yZXR2YWw7CisgICAgaW50IGNfcmV0dmFsOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7CisgICAgUHlPYmplY3QgKnB5b2JqX2J1ZjsKKyAgICB4bWxEb2NQdHIgY3VyOworICAgIFB5T2JqZWN0ICpweW9ial9jdXI7CisgICAgY2hhciAqIGVuY29kaW5nOworICAgIGludCBmb3JtYXQ7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiT096aTp4bWxTYXZlRm9ybWF0RmlsZVRvIiwgJnB5b2JqX2J1ZiwgJnB5b2JqX2N1ciwgJmVuY29kaW5nLCAmZm9ybWF0KSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGJ1ZiA9ICh4bWxPdXRwdXRCdWZmZXJQdHIpIFB5b3V0cHV0QnVmZmVyX0dldChweW9ial9idWYpOworICAgIGN1ciA9ICh4bWxEb2NQdHIpIFB5eG1sTm9kZV9HZXQocHlvYmpfY3VyKTsKKworICAgIGNfcmV0dmFsID0geG1sU2F2ZUZvcm1hdEZpbGVUbyhidWYsIGN1ciwgZW5jb2RpbmcsIGZvcm1hdCk7CisJLyogeG1sU2F2ZUZvcm1hdEZpbGVUbygpIGZyZWVkIHRoZSBtZW1vcnkgcG9pbnRlZCB0byBieSBidWYsIHNvIHJlY29yZCB0aGF0CisJICogaW4gdGhlIFB5dGhvbiBvYmplY3QgKi8KKwkoKFB5b3V0cHV0QnVmZmVyX09iamVjdCAqKShweW9ial9idWYpKS0+b2JqID0gTlVMTDsKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgoaW50KSBjX3JldHZhbCk7CisgICAgcmV0dXJuKHB5X3JldHZhbCk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKworLyoqCisgKiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVB5dGhvbkZpbGU6CisgKiBAZmlsZTogIGEgUHlGaWxlX1R5cGUKKyAqIEBlbmNvZGVyOiAgdGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMCisgKgorICogQ3JlYXRlIGEgYnVmZmVyZWQgb3V0cHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgc2F2aW5nIHRvIGEgUHlGaWxlX1R5cGUKKyAqIGJ1ZmZlcmVkIEMgSS9PCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTAorICovCitzdGF0aWMgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIKK3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlUHl0aG9uRmlsZShQeU9iamVjdCAqZmlsZSwgCisJICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhckVuY29kaW5nIGVuY29kaW5nKSB7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0OworCisgICAgaWYgKGZpbGUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0geG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcihlbmNvZGluZyk7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisgICAgICAgIHJldC0+Y29udGV4dCA9IGZpbGU7CisJLyogUHlfSU5DUkVGKGZpbGUpOyAqLworCXJldC0+cmVhZGNhbGxiYWNrID0geG1sUHl0aG9uRmlsZVJlYWQ7CisJcmV0LT5jbG9zZWNhbGxiYWNrID0geG1sUHl0aG9uRmlsZUNsb3NlOworICAgIH0KKworICAgIHJldHVybihyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sQ3JlYXRlSW5wdXRCdWZmZXIoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpIHsKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsOworICAgIFB5T2JqZWN0ICpmaWxlOworICAgIHhtbENoYXIgICplbmNvZGluZzsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jID0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORTsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBidWZmZXI7CisKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSJPejp4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZSIsCisJCSZmaWxlLCAmZW5jb2RpbmcpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKGVuY29kaW5nICE9IE5VTEwpICYmIChlbmNvZGluZ1swXSAhPSAwKSkgeworCWVuYyA9IHhtbFBhcnNlQ2hhckVuY29kaW5nKChjb25zdCBjaGFyICopIGVuY29kaW5nKTsKKyAgICB9CisgICAgYnVmZmVyID0geG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVQeXRob25GaWxlKGZpbGUsIGVuYyk7CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorCXByaW50ZigibGlieG1sX3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlOiBidWZmZXIgPT0gTlVMTFxuIik7CisgICAgcHlfcmV0dmFsID0gbGlieG1sX3htbFBhcnNlcklucHV0QnVmZmVyUHRyV3JhcChidWZmZXIpOworICAgIHJldHVybihweV9yZXR2YWwpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlQcm92aWRpbmcgdGhlIHJlc29sdmVyIGF0IHRoZSBQeXRob24gbGV2ZWwJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHhtbEV4dGVybmFsRW50aXR5TG9hZGVyIGRlZmF1bHRFeHRlcm5hbEVudGl0eUxvYWRlciA9IE5VTEw7CitzdGF0aWMgUHlPYmplY3QgKnB5dGhvbkV4dGVybmFsRW50aXR5TG9hZGVyT2JqZXh0OworCitzdGF0aWMgeG1sUGFyc2VySW5wdXRQdHIKK3B5dGhvbkV4dGVybmFsRW50aXR5TG9hZGVyKGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqSUQsCisJCQkgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXN1bHQgPSBOVUxMOworICAgIGlmIChweXRob25FeHRlcm5hbEVudGl0eUxvYWRlck9iamV4dCAhPSBOVUxMKSB7CisJUHlPYmplY3QgKnJldDsKKwlQeU9iamVjdCAqY3R4dG9iajsKKworCWN0eHRvYmogPSBsaWJ4bWxfeG1sUGFyc2VyQ3R4dFB0cldyYXAoY3R4dCk7CisjaWZkZWYgREVCVUdfTE9BREVSCisJcHJpbnRmKCJweXRob25FeHRlcm5hbEVudGl0eUxvYWRlcjogcmVhZHkgdG8gY2FsbFxuIik7CisjZW5kaWYKKworCXJldCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihweXRob25FeHRlcm5hbEVudGl0eUxvYWRlck9iamV4dCwKKwkJICAgICAgKGNoYXIgKikgIihzc08pIiwgVVJMLCBJRCwgY3R4dG9iaik7CisJUHlfWERFQ1JFRihjdHh0b2JqKTsKKyNpZmRlZiBERUJVR19MT0FERVIKKwlwcmludGYoInB5dGhvbkV4dGVybmFsRW50aXR5TG9hZGVyOiByZXN1bHQgIik7CisJUHlPYmplY3RfUHJpbnQocmV0LCBzdGRlcnIsIDApOworCXByaW50ZigiXG4iKTsKKyNlbmRpZgorCisJaWYgKHJldCAhPSBOVUxMKSB7CisJICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKHJldCwgKGNoYXIgKikgInJlYWQiKSkgeworCQl4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBidWY7CisKKwkJYnVmID0geG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcihYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKwkJaWYgKGJ1ZiAhPSBOVUxMKSB7CisJCSAgICBidWYtPmNvbnRleHQgPSByZXQ7CisJCSAgICBidWYtPnJlYWRjYWxsYmFjayA9IHhtbFB5dGhvbkZpbGVSZWFkUmF3OworCQkgICAgYnVmLT5jbG9zZWNhbGxiYWNrID0geG1sUHl0aG9uRmlsZUNsb3NlUmF3OworCQkgICAgcmVzdWx0ID0geG1sTmV3SU9JbnB1dFN0cmVhbShjdHh0LCBidWYsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisJCX0KKyNpZiAwCisJICAgIH0gZWxzZSB7CisJCWlmIChVUkwgIT0gTlVMTCkKKwkJICAgIHByaW50ZigicHl0aG9uRXh0ZXJuYWxFbnRpdHlMb2FkZXI6IGNhbid0IHJlYWQgJXNcbiIsCisJCSAgICAgICAgICAgVVJMKTsKKyNlbmRpZgorCSAgICB9CisJICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworCQlQeV9ERUNSRUYocmV0KTsKKwkgICAgfSBlbHNlIGlmIChVUkwgIT0gTlVMTCkgeworCQlyZXN1bHQtPmZpbGVuYW1lID0gKGNoYXIgKikgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopVVJMKTsKKwkJcmVzdWx0LT5kaXJlY3RvcnkgPSB4bWxQYXJzZXJHZXREaXJlY3RvcnkoKGNvbnN0IGNoYXIgKikgVVJMKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKChyZXN1bHQgPT0gTlVMTCkgJiYgKGRlZmF1bHRFeHRlcm5hbEVudGl0eUxvYWRlciAhPSBOVUxMKSkgeworCXJlc3VsdCA9IGRlZmF1bHRFeHRlcm5hbEVudGl0eUxvYWRlcihVUkwsIElELCBjdHh0KTsKKyAgICB9CisgICAgcmV0dXJuKHJlc3VsdCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxTZXRFbnRpdHlMb2FkZXIoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpIHsKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsOworICAgIFB5T2JqZWN0ICpsb2FkZXI7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiTzpsaWJ4bWxfeG1sU2V0RW50aXR5TG9hZGVyIiwKKwkJJmxvYWRlcikpCisJcmV0dXJuKE5VTEwpOworCisjaWZkZWYgREVCVUdfTE9BREVSCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sU2V0RW50aXR5TG9hZGVyXG4iKTsKKyNlbmRpZgorICAgIGlmIChkZWZhdWx0RXh0ZXJuYWxFbnRpdHlMb2FkZXIgPT0gTlVMTCkgCisJZGVmYXVsdEV4dGVybmFsRW50aXR5TG9hZGVyID0geG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKTsKKworICAgIHB5dGhvbkV4dGVybmFsRW50aXR5TG9hZGVyT2JqZXh0ID0gbG9hZGVyOworICAgIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKHB5dGhvbkV4dGVybmFsRW50aXR5TG9hZGVyKTsKKworICAgIHB5X3JldHZhbCA9IFB5SW50X0Zyb21Mb25nKDApOworICAgIHJldHVybihweV9yZXR2YWwpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUhhbmRsaW5nIFNBWC94bWxsaWIvc2dtbG9wIGNhbGxiYWNrIGludGVyZmFjZXMJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHZvaWQKK3B5dGhvblN0YXJ0RWxlbWVudCh2b2lkICp1c2VyX2RhdGEsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiogYXR0cnMpCit7CisgICAgaW50IGk7CisgICAgUHlPYmplY3QgKmhhbmRsZXI7CisgICAgUHlPYmplY3QgKmRpY3Q7CisgICAgUHlPYmplY3QgKmF0dHJuYW1lOworICAgIFB5T2JqZWN0ICphdHRydmFsdWU7CisgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IHR5cGUgPSAwOworCisjaWZkZWYgREVCVUdfU0FYCisgICAgcHJpbnRmKCJweXRob25TdGFydEVsZW1lbnQoJXMpIGNhbGxlZFxuIiwgbmFtZSk7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAic3RhcnRFbGVtZW50IikpCisgICAgICAgIHR5cGUgPSAxOworICAgIGVsc2UgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgInN0YXJ0IikpCisgICAgICAgIHR5cGUgPSAyOworICAgIGlmICh0eXBlICE9IDApIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogdGhlIHhtbGxpYiBpbnRlcmZhY2UgYWx3YXlzIGdlbmVyYXRlIGEgZGljdGlvbm5hcnksCisgICAgICAgICAqIHBvc3NpYmx5IGVtcHR5CisgICAgICAgICAqLworICAgICAgICBpZiAoKGF0dHJzID09IE5VTEwpICYmICh0eXBlID09IDEpKSB7CisgICAgICAgICAgICBQeV9YSU5DUkVGKFB5X05vbmUpOworICAgICAgICAgICAgZGljdCA9IFB5X05vbmU7CisgICAgICAgIH0gZWxzZSBpZiAoYXR0cnMgPT0gTlVMTCkgeworICAgICAgICAgICAgZGljdCA9IFB5RGljdF9OZXcoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRpY3QgPSBQeURpY3RfTmV3KCk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBhdHRyc1tpXSAhPSBOVUxMOyBpKyspIHsKKyAgICAgICAgICAgICAgICBhdHRybmFtZSA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoKGNoYXIgKikgYXR0cnNbaV0pOworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cnNbaV0gIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBhdHRydmFsdWUgPSBQeVN0cmluZ19Gcm9tU3RyaW5nKChjaGFyICopIGF0dHJzW2ldKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBQeV9YSU5DUkVGKFB5X05vbmUpOworICAgICAgICAgICAgICAgICAgICBhdHRydmFsdWUgPSBQeV9Ob25lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBQeURpY3RfU2V0SXRlbShkaWN0LCBhdHRybmFtZSwgYXR0cnZhbHVlKTsKKwkJUHlfREVDUkVGKGF0dHJuYW1lKTsKKwkJUHlfREVDUkVGKGF0dHJ2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodHlwZSA9PSAxKQorICAgICAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAic3RhcnRFbGVtZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInNPIiwgbmFtZSwgZGljdCk7CisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gMikKKyAgICAgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgInN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInNPIiwgbmFtZSwgZGljdCk7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihkaWN0KTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvblN0YXJ0RG9jdW1lbnQodm9pZCAqdXNlcl9kYXRhKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisKKyNpZmRlZiBERUJVR19TQVgKKyAgICBwcmludGYoInB5dGhvblN0YXJ0RG9jdW1lbnQoKSBjYWxsZWRcbiIpOworI2VuZGlmCisgICAgaGFuZGxlciA9IChQeU9iamVjdCAqKSB1c2VyX2RhdGE7CisgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgInN0YXJ0RG9jdW1lbnQiKSkgeworICAgICAgICByZXN1bHQgPQorICAgICAgICAgICAgUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAic3RhcnREb2N1bWVudCIsIE5VTEwpOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgICAgIFB5X1hERUNSRUYocmVzdWx0KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitweXRob25FbmREb2N1bWVudCh2b2lkICp1c2VyX2RhdGEpCit7CisgICAgUHlPYmplY3QgKmhhbmRsZXI7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKworI2lmZGVmIERFQlVHX1NBWAorICAgIHByaW50ZigicHl0aG9uRW5kRG9jdW1lbnQoKSBjYWxsZWRcbiIpOworI2VuZGlmCisgICAgaGFuZGxlciA9IChQeU9iamVjdCAqKSB1c2VyX2RhdGE7CisgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgImVuZERvY3VtZW50IikpIHsKKyAgICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgImVuZERvY3VtZW50IiwgTlVMTCk7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KKyAgICAvKgorICAgICAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIGhhbmRsZXIgaXMgcmVsZWFzZWQgdGhlcmUKKyAgICAgKi8KKyAgICBQeV9YREVDUkVGKGhhbmRsZXIpOworfQorCitzdGF0aWMgdm9pZAorcHl0aG9uRW5kRWxlbWVudCh2b2lkICp1c2VyX2RhdGEsIGNvbnN0IHhtbENoYXIgKiBuYW1lKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisKKyNpZmRlZiBERUJVR19TQVgKKyAgICBwcmludGYoInB5dGhvbkVuZEVsZW1lbnQoJXMpIGNhbGxlZFxuIiwgbmFtZSk7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAiZW5kRWxlbWVudCIpKSB7CisgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgImVuZEVsZW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopICJzIiwgbmFtZSk7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0gZWxzZSBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAiZW5kIikpIHsKKyAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAiZW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAicyIsIG5hbWUpOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgICAgIFB5X1hERUNSRUYocmVzdWx0KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitweXRob25SZWZlcmVuY2Uodm9pZCAqdXNlcl9kYXRhLCBjb25zdCB4bWxDaGFyICogbmFtZSkKK3sKKyAgICBQeU9iamVjdCAqaGFuZGxlcjsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisjaWZkZWYgREVCVUdfU0FYCisgICAgcHJpbnRmKCJweXRob25SZWZlcmVuY2UoJXMpIGNhbGxlZFxuIiwgbmFtZSk7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAicmVmZXJlbmNlIikpIHsKKyAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAicmVmZXJlbmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAicyIsIG5hbWUpOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgICAgIFB5X1hERUNSRUYocmVzdWx0KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitweXRob25DaGFyYWN0ZXJzKHZvaWQgKnVzZXJfZGF0YSwgY29uc3QgeG1sQ2hhciAqIGNoLCBpbnQgbGVuKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworICAgIGludCB0eXBlID0gMDsKKworI2lmZGVmIERFQlVHX1NBWAorICAgIHByaW50ZigicHl0aG9uQ2hhcmFjdGVycyglcywgJWQpIGNhbGxlZFxuIiwgY2gsIGxlbik7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAiY2hhcmFjdGVycyIpKQorICAgICAgICB0eXBlID0gMTsKKyAgICBlbHNlIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGhhbmRsZXIsIChjaGFyICopICJkYXRhIikpCisgICAgICAgIHR5cGUgPSAyOworICAgIGlmICh0eXBlICE9IDApIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gMSkKKyAgICAgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgImNoYXJhY3RlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAicyMiLCBjaCwgbGVuKTsKKyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSAyKQorICAgICAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopICJzIyIsIGNoLCBsZW4pOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgICAgIFB5X1hERUNSRUYocmVzdWx0KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitweXRob25JZ25vcmFibGVXaGl0ZXNwYWNlKHZvaWQgKnVzZXJfZGF0YSwgY29uc3QgeG1sQ2hhciAqIGNoLCBpbnQgbGVuKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworICAgIGludCB0eXBlID0gMDsKKworI2lmZGVmIERFQlVHX1NBWAorICAgIHByaW50ZigicHl0aG9uSWdub3JhYmxlV2hpdGVzcGFjZSglcywgJWQpIGNhbGxlZFxuIiwgY2gsIGxlbik7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAiaWdub3JhYmxlV2hpdGVzcGFjZSIpKQorICAgICAgICB0eXBlID0gMTsKKyAgICBlbHNlIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGhhbmRsZXIsIChjaGFyICopICJkYXRhIikpCisgICAgICAgIHR5cGUgPSAyOworICAgIGlmICh0eXBlICE9IDApIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gMSkKKyAgICAgICAgICAgIHJlc3VsdCA9CisgICAgICAgICAgICAgICAgUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgImlnbm9yYWJsZVdoaXRlc3BhY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInMjIiwgY2gsIGxlbik7CisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gMikKKyAgICAgICAgICAgIHJlc3VsdCA9CisgICAgICAgICAgICAgICAgUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAicyMiLCBjaCwgbGVuKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvblByb2Nlc3NpbmdJbnN0cnVjdGlvbih2b2lkICp1c2VyX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHRhcmdldCwgY29uc3QgeG1sQ2hhciAqIGRhdGEpCit7CisgICAgUHlPYmplY3QgKmhhbmRsZXI7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKworI2lmZGVmIERFQlVHX1NBWAorICAgIHByaW50ZigicHl0aG9uUHJvY2Vzc2luZ0luc3RydWN0aW9uKCVzLCAlcykgY2FsbGVkXG4iLCB0YXJnZXQsIGRhdGEpOworI2VuZGlmCisgICAgaGFuZGxlciA9IChQeU9iamVjdCAqKSB1c2VyX2RhdGE7CisgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgInByb2Nlc3NpbmdJbnN0cnVjdGlvbiIpKSB7CisgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvY2Vzc2luZ0luc3RydWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAic3MiLCB0YXJnZXQsIGRhdGEpOworICAgICAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorcHl0aG9uQ29tbWVudCh2b2lkICp1c2VyX2RhdGEsIGNvbnN0IHhtbENoYXIgKiB2YWx1ZSkKK3sKKyAgICBQeU9iamVjdCAqaGFuZGxlcjsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisjaWZkZWYgREVCVUdfU0FYCisgICAgcHJpbnRmKCJweXRob25Db21tZW50KCVzKSBjYWxsZWRcbiIsIHZhbHVlKTsKKyNlbmRpZgorICAgIGhhbmRsZXIgPSAoUHlPYmplY3QgKikgdXNlcl9kYXRhOworICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGhhbmRsZXIsIChjaGFyICopICJjb21tZW50IikpIHsKKyAgICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgImNvbW1lbnQiLCAoY2hhciAqKSAicyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlKTsKKyAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9QcmludCgpOworICAgICAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorcHl0aG9uV2FybmluZyh2b2lkICp1c2VyX2RhdGEsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgdmFfbGlzdCBhcmdzOworICAgIGNoYXIgYnVmWzEwMjRdOworCisjaWZkZWYgREVCVUdfU0FYCisgICAgcHJpbnRmKCJweXRob25XYXJuaW5nKCVzKSBjYWxsZWRcbiIsIG1zZyk7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAid2FybmluZyIpKSB7CisgICAgICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgICAgIHZzbnByaW50ZihidWYsIDEwMjMsIG1zZywgYXJncyk7CisgICAgICAgIHZhX2VuZChhcmdzKTsKKyAgICAgICAgYnVmWzEwMjNdID0gMDsKKyAgICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgIndhcm5pbmciLCAoY2hhciAqKSAicyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zik7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvbkVycm9yKHZvaWQgKnVzZXJfZGF0YSwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgUHlPYmplY3QgKmhhbmRsZXI7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgY2hhciBidWZbMTAyNF07CisKKyNpZmRlZiBERUJVR19TQVgKKyAgICBwcmludGYoInB5dGhvbkVycm9yKCVzKSBjYWxsZWRcbiIsIG1zZyk7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAiZXJyb3IiKSkgeworICAgICAgICB2YV9zdGFydChhcmdzLCBtc2cpOworICAgICAgICB2c25wcmludGYoYnVmLCAxMDIzLCBtc2csIGFyZ3MpOworICAgICAgICB2YV9lbmQoYXJncyk7CisgICAgICAgIGJ1ZlsxMDIzXSA9IDA7CisgICAgICAgIHJlc3VsdCA9CisgICAgICAgICAgICBQeU9iamVjdF9DYWxsTWV0aG9kKGhhbmRsZXIsIChjaGFyICopICJlcnJvciIsIChjaGFyICopICJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmKTsKKyAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9QcmludCgpOworICAgICAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorcHl0aG9uRmF0YWxFcnJvcih2b2lkICp1c2VyX2RhdGEsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgdmFfbGlzdCBhcmdzOworICAgIGNoYXIgYnVmWzEwMjRdOworCisjaWZkZWYgREVCVUdfU0FYCisgICAgcHJpbnRmKCJweXRob25GYXRhbEVycm9yKCVzKSBjYWxsZWRcbiIsIG1zZyk7CisjZW5kaWYKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAiZmF0YWxFcnJvciIpKSB7CisgICAgICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgICAgIHZzbnByaW50ZihidWYsIDEwMjMsIG1zZywgYXJncyk7CisgICAgICAgIHZhX2VuZChhcmdzKTsKKyAgICAgICAgYnVmWzEwMjNdID0gMDsKKyAgICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgImZhdGFsRXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAicyIsIGJ1Zik7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvbkNkYXRhQmxvY2sodm9pZCAqdXNlcl9kYXRhLCBjb25zdCB4bWxDaGFyICogY2gsIGludCBsZW4pCit7CisgICAgUHlPYmplY3QgKmhhbmRsZXI7CisgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IHR5cGUgPSAwOworCisjaWZkZWYgREVCVUdfU0FYCisgICAgcHJpbnRmKCJweXRob25DZGF0YUJsb2NrKCVzLCAlZCkgY2FsbGVkXG4iLCBjaCwgbGVuKTsKKyNlbmRpZgorICAgIGhhbmRsZXIgPSAoUHlPYmplY3QgKikgdXNlcl9kYXRhOworICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGhhbmRsZXIsIChjaGFyICopICJjZGF0YUJsb2NrIikpCisgICAgICAgIHR5cGUgPSAxOworICAgIGVsc2UgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgImNkYXRhIikpCisgICAgICAgIHR5cGUgPSAyOworICAgIGlmICh0eXBlICE9IDApIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gMSkKKyAgICAgICAgICAgIHJlc3VsdCA9CisgICAgICAgICAgICAgICAgUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAiY2RhdGFCbG9jayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAicyMiLCBjaCwgbGVuKTsKKyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSAyKQorICAgICAgICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgICAgICBQeU9iamVjdF9DYWxsTWV0aG9kKGhhbmRsZXIsIChjaGFyICopICJjZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAicyMiLCBjaCwgbGVuKTsKKyAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9QcmludCgpOworICAgICAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorcHl0aG9uRXh0ZXJuYWxTdWJzZXQodm9pZCAqdXNlcl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogZXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqIHN5c3RlbUlEKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisKKyNpZmRlZiBERUJVR19TQVgKKyAgICBwcmludGYoInB5dGhvbkV4dGVybmFsU3Vic2V0KCVzLCAlcywgJXMpIGNhbGxlZFxuIiwKKyAgICAgICAgICAgbmFtZSwgZXh0ZXJuYWxJRCwgc3lzdGVtSUQpOworI2VuZGlmCisgICAgaGFuZGxlciA9IChQeU9iamVjdCAqKSB1c2VyX2RhdGE7CisgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgImV4dGVybmFsU3Vic2V0IikpIHsKKyAgICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgImV4dGVybmFsU3Vic2V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInNzcyIsIG5hbWUsIGV4dGVybmFsSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbUlEKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvbkVudGl0eURlY2wodm9pZCAqdXNlcl9kYXRhLAorICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgaW50IHR5cGUsCisgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwdWJsaWNJZCwKKyAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHN5c3RlbUlkLCB4bWxDaGFyICogY29udGVudCkKK3sKKyAgICBQeU9iamVjdCAqaGFuZGxlcjsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisgICAgaGFuZGxlciA9IChQeU9iamVjdCAqKSB1c2VyX2RhdGE7CisgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgImVudGl0eURlY2wiKSkgeworICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGhhbmRsZXIsIChjaGFyICopICJlbnRpdHlEZWNsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAic2lzc3MiLCBuYW1lLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY0lkLCBzeXN0ZW1JZCwgY29udGVudCk7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworCisKK3N0YXRpYyB2b2lkCisKK3B5dGhvbk5vdGF0aW9uRGVjbCh2b2lkICp1c2VyX2RhdGEsCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICogc3lzdGVtSWQpCit7CisgICAgUHlPYmplY3QgKmhhbmRsZXI7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKworICAgIGhhbmRsZXIgPSAoUHlPYmplY3QgKikgdXNlcl9kYXRhOworICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGhhbmRsZXIsIChjaGFyICopICJub3RhdGlvbkRlY2wiKSkgeworICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGhhbmRsZXIsIChjaGFyICopICJub3RhdGlvbkRlY2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopICJzc3MiLCBuYW1lLCBwdWJsaWNJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1JZCk7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvbkF0dHJpYnV0ZURlY2wodm9pZCAqdXNlcl9kYXRhLAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogZWxlbSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgIGludCB0eXBlLAorICAgICAgICAgICAgICAgICAgICBpbnQgZGVmLAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogZGVmYXVsdFZhbHVlLCB4bWxFbnVtZXJhdGlvblB0ciB0cmVlKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpuYW1lTGlzdDsKKyAgICBQeU9iamVjdCAqbmV3TmFtZTsKKyAgICB4bWxFbnVtZXJhdGlvblB0ciBub2RlOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgaW50IGNvdW50OworCisgICAgaGFuZGxlciA9IChQeU9iamVjdCAqKSB1c2VyX2RhdGE7CisgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoaGFuZGxlciwgKGNoYXIgKikgImF0dHJpYnV0ZURlY2wiKSkgeworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGZvciAobm9kZSA9IHRyZWU7IG5vZGUgIT0gTlVMTDsgbm9kZSA9IG5vZGUtPm5leHQpIHsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgbmFtZUxpc3QgPSBQeUxpc3RfTmV3KGNvdW50KTsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBmb3IgKG5vZGUgPSB0cmVlOyBub2RlICE9IE5VTEw7IG5vZGUgPSBub2RlLT5uZXh0KSB7CisgICAgICAgICAgICBuZXdOYW1lID0gUHlTdHJpbmdfRnJvbVN0cmluZygoY2hhciAqKSBub2RlLT5uYW1lKTsKKyAgICAgICAgICAgIFB5TGlzdF9TZXRJdGVtKG5hbWVMaXN0LCBjb3VudCwgbmV3TmFtZSk7CisJICAgIFB5X0RFQ1JFRihuZXdOYW1lKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChoYW5kbGVyLCAoY2hhciAqKSAiYXR0cmlidXRlRGVjbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInNzaWlzTyIsIGVsZW0sIG5hbWUsIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmLCBkZWZhdWx0VmFsdWUsIG5hbWVMaXN0KTsKKyAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9QcmludCgpOworICAgICAgICBQeV9YREVDUkVGKG5hbWVMaXN0KTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvbkVsZW1lbnREZWNsKHZvaWQgKnVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgaW50IHR5cGUsIEFUVFJJQlVURV9VTlVTRUQgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCkKK3sKKyAgICBQeU9iamVjdCAqaGFuZGxlcjsKKyAgICBQeU9iamVjdCAqb2JqOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAiZWxlbWVudERlY2wiKSkgeworICAgICAgICAvKiBUT0RPOiB3cmFwIGluIGFuIGVsZW1lbnRDb250ZW50IG9iamVjdCAqLworICAgICAgICBwcmludGYKKyAgICAgICAgICAgICgicHl0aG9uRWxlbWVudERlY2w6IHhtbEVsZW1lbnRDb250ZW50UHRyIHdyYXBwZXIgbWlzc2luZyAhXG4iKTsKKyAgICAgICAgb2JqID0gUHlfTm9uZTsKKyAgICAgICAgLyogUHlfWElOQ1JFRihQeV9Ob25lKTsgaXNuJ3QgdGhlIHJlZmVyZW5jZSBqdXN0IGJvcnJvd2VkID8/PyAqLworICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGhhbmRsZXIsIChjaGFyICopICJlbGVtZW50RGVjbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInNpTyIsIG5hbWUsIHR5cGUsIG9iaik7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3B5dGhvblVucGFyc2VkRW50aXR5RGVjbCh2b2lkICp1c2VyX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmxpY0lkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXN0ZW1JZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbm90YXRpb25OYW1lKQoreworICAgIFB5T2JqZWN0ICpoYW5kbGVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisKKyAgICBoYW5kbGVyID0gKFB5T2JqZWN0ICopIHVzZXJfZGF0YTsKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhoYW5kbGVyLCAoY2hhciAqKSAidW5wYXJzZWRFbnRpdHlEZWNsIikpIHsKKyAgICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgInVucGFyc2VkRW50aXR5RGVjbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopICJzc3NzIiwgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RhdGlvbk5hbWUpOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgICAgIFB5X1hERUNSRUYocmVzdWx0KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitweXRob25JbnRlcm5hbFN1YnNldCh2b2lkICp1c2VyX2RhdGEsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIEV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIgKiBTeXN0ZW1JRCkKK3sKKyAgICBQeU9iamVjdCAqaGFuZGxlcjsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisjaWZkZWYgREVCVUdfU0FYCisgICAgcHJpbnRmKCJweXRob25JbnRlcm5hbFN1YnNldCglcywgJXMsICVzKSBjYWxsZWRcbiIsCisgICAgICAgICAgIG5hbWUsIEV4dGVybmFsSUQsIFN5c3RlbUlEKTsKKyNlbmRpZgorICAgIGhhbmRsZXIgPSAoUHlPYmplY3QgKikgdXNlcl9kYXRhOworICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGhhbmRsZXIsIChjaGFyICopICJpbnRlcm5hbFN1YnNldCIpKSB7CisgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaGFuZGxlciwgKGNoYXIgKikgImludGVybmFsU3Vic2V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAic3NzIiwgbmFtZSwgRXh0ZXJuYWxJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW1JRCk7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHhtbFNBWEhhbmRsZXIgcHl0aG9uU2F4SGFuZGxlciA9IHsKKyAgICBweXRob25JbnRlcm5hbFN1YnNldCwKKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogVE9ETyBweXRob25Jc1N0YW5kYWxvbmUsICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIFRPRE8gcHl0aG9uSGFzSW50ZXJuYWxTdWJzZXQsICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIFRPRE8gcHl0aG9uSGFzRXh0ZXJuYWxTdWJzZXQsICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIFRPRE8gcHl0aG9uUmVzb2x2ZUVudGl0eSwgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogVE9ETyBweXRob25HZXRFbnRpdHksICovCisgICAgcHl0aG9uRW50aXR5RGVjbCwKKyAgICBweXRob25Ob3RhdGlvbkRlY2wsCisgICAgcHl0aG9uQXR0cmlidXRlRGVjbCwKKyAgICBweXRob25FbGVtZW50RGVjbCwKKyAgICBweXRob25VbnBhcnNlZEVudGl0eURlY2wsCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIE9CU09MRVRFRCBweXRob25TZXREb2N1bWVudExvY2F0b3IsICovCisgICAgcHl0aG9uU3RhcnREb2N1bWVudCwKKyAgICBweXRob25FbmREb2N1bWVudCwKKyAgICBweXRob25TdGFydEVsZW1lbnQsCisgICAgcHl0aG9uRW5kRWxlbWVudCwKKyAgICBweXRob25SZWZlcmVuY2UsCisgICAgcHl0aG9uQ2hhcmFjdGVycywKKyAgICBweXRob25JZ25vcmFibGVXaGl0ZXNwYWNlLAorICAgIHB5dGhvblByb2Nlc3NpbmdJbnN0cnVjdGlvbiwKKyAgICBweXRob25Db21tZW50LAorICAgIHB5dGhvbldhcm5pbmcsCisgICAgcHl0aG9uRXJyb3IsCisgICAgcHl0aG9uRmF0YWxFcnJvciwKKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogVE9ETyBweXRob25HZXRQYXJhbWV0ZXJFbnRpdHksICovCisgICAgcHl0aG9uQ2RhdGFCbG9jaywKKyAgICBweXRob25FeHRlcm5hbFN1YnNldCwKKyAgICAxLAorICAgIE5VTEwsCQkJLyogVE9ETyBtb2dyYXRlIHRvIFNBWDIgKi8KKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJSGFuZGxpbmcgb2Ygc3BlY2lmaWMgcGFyc2VyIGNvbnRleHQJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxDcmVhdGVQdXNoUGFyc2VyKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKiBhcmdzKQoreworICAgIGNvbnN0IGNoYXIgKmNodW5rOworICAgIGludCBzaXplOworICAgIGNvbnN0IGNoYXIgKlVSSTsKKyAgICBQeU9iamVjdCAqcHlvYmpfU0FYID0gTlVMTDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIFNBWCA9IE5VTEw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciByZXQ7CisgICAgUHlPYmplY3QgKnB5cmV0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlCisgICAgICAgIChhcmdzLCAoY2hhciAqKSAiT3ppejp4bWxDcmVhdGVQdXNoUGFyc2VyIiwgJnB5b2JqX1NBWCwgJmNodW5rLAorICAgICAgICAgJnNpemUsICZVUkkpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxDcmVhdGVQdXNoUGFyc2VyKCVwLCAlcywgJWQsICVzKSBjYWxsZWRcbiIsCisgICAgICAgICAgIHB5b2JqX1NBWCwgY2h1bmssIHNpemUsIFVSSSk7CisjZW5kaWYKKyAgICBpZiAocHlvYmpfU0FYICE9IFB5X05vbmUpIHsKKyAgICAgICAgU0FYID0gJnB5dGhvblNheEhhbmRsZXI7CisgICAgICAgIFB5X0lOQ1JFRihweW9ial9TQVgpOworICAgICAgICAvKiBUaGUgcmVmZXJlbmNlIGlzIHJlbGVhc2VkIGluIHB5dGhvbkVuZERvY3VtZW50KCkgKi8KKyAgICB9CisgICAgcmV0ID0geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoU0FYLCBweW9ial9TQVgsIGNodW5rLCBzaXplLCBVUkkpOworICAgIHB5cmV0ID0gbGlieG1sX3htbFBhcnNlckN0eHRQdHJXcmFwKHJldCk7CisgICAgcmV0dXJuIChweXJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF9odG1sQ3JlYXRlUHVzaFBhcnNlcihBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqIGFyZ3MpCit7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgIGNvbnN0IGNoYXIgKmNodW5rOworICAgIGludCBzaXplOworICAgIGNvbnN0IGNoYXIgKlVSSTsKKyAgICBQeU9iamVjdCAqcHlvYmpfU0FYID0gTlVMTDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIFNBWCA9IE5VTEw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciByZXQ7CisgICAgUHlPYmplY3QgKnB5cmV0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlCisgICAgICAgIChhcmdzLCAoY2hhciAqKSAiT3ppejpodG1sQ3JlYXRlUHVzaFBhcnNlciIsICZweW9ial9TQVgsICZjaHVuaywKKyAgICAgICAgICZzaXplLCAmVVJJKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfaHRtbENyZWF0ZVB1c2hQYXJzZXIoJXAsICVzLCAlZCwgJXMpIGNhbGxlZFxuIiwKKyAgICAgICAgICAgcHlvYmpfU0FYLCBjaHVuaywgc2l6ZSwgVVJJKTsKKyNlbmRpZgorICAgIGlmIChweW9ial9TQVggIT0gUHlfTm9uZSkgeworICAgICAgICBTQVggPSAmcHl0aG9uU2F4SGFuZGxlcjsKKyAgICAgICAgUHlfSU5DUkVGKHB5b2JqX1NBWCk7CisgICAgICAgIC8qIFRoZSByZWZlcmVuY2UgaXMgcmVsZWFzZWQgaW4gcHl0aG9uRW5kRG9jdW1lbnQoKSAqLworICAgIH0KKyAgICByZXQgPSBodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoU0FYLCBweW9ial9TQVgsIGNodW5rLCBzaXplLCBVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIHB5cmV0ID0gbGlieG1sX3htbFBhcnNlckN0eHRQdHJXcmFwKHJldCk7CisgICAgcmV0dXJuIChweXJldCk7CisjZWxzZQorICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm4gKFB5X05vbmUpOworI2VuZGlmIC8qIExJQlhNTF9IVE1MX0VOQUJMRUQgKi8KK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbFNBWFBhcnNlRmlsZShBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwgUHlPYmplY3QgKiBhcmdzKQoreworICAgIGludCByZWNvdmVyOworICAgIGNvbnN0IGNoYXIgKlVSSTsKKyAgICBQeU9iamVjdCAqcHlvYmpfU0FYID0gTlVMTDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIFNBWCA9IE5VTEw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikgIk9zaTp4bWxTQVhQYXJzZUZpbGUiLCAmcHlvYmpfU0FYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmVVJJLCAmcmVjb3ZlcikpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFNBWFBhcnNlRmlsZSglcCwgJXMsICVkKSBjYWxsZWRcbiIsCisgICAgICAgICAgIHB5b2JqX1NBWCwgVVJJLCByZWNvdmVyKTsKKyNlbmRpZgorICAgIGlmIChweW9ial9TQVggPT0gUHlfTm9uZSkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIFNBWCA9ICZweXRob25TYXhIYW5kbGVyOworICAgIFB5X0lOQ1JFRihweW9ial9TQVgpOworICAgIC8qIFRoZSByZWZlcmVuY2UgaXMgcmVsZWFzZWQgaW4gcHl0aG9uRW5kRG9jdW1lbnQoKSAqLworICAgIHhtbFNBWFVzZXJQYXJzZUZpbGUoU0FYLCBweW9ial9TQVgsIFVSSSk7CisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgIHJldHVybiAoUHlfTm9uZSk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF9odG1sU0FYUGFyc2VGaWxlKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgIGNvbnN0IGNoYXIgKlVSSTsKKyAgICBjb25zdCBjaGFyICplbmNvZGluZzsKKyAgICBQeU9iamVjdCAqcHlvYmpfU0FYID0gTlVMTDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIFNBWCA9IE5VTEw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUKKyAgICAgICAgKGFyZ3MsIChjaGFyICopICJPc3o6aHRtbFNBWFBhcnNlRmlsZSIsICZweW9ial9TQVgsICZVUkksCisgICAgICAgICAmZW5jb2RpbmcpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF9odG1sU0FYUGFyc2VGaWxlKCVwLCAlcywgJXMpIGNhbGxlZFxuIiwKKyAgICAgICAgICAgcHlvYmpfU0FYLCBVUkksIGVuY29kaW5nKTsKKyNlbmRpZgorICAgIGlmIChweW9ial9TQVggPT0gUHlfTm9uZSkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIFNBWCA9ICZweXRob25TYXhIYW5kbGVyOworICAgIFB5X0lOQ1JFRihweW9ial9TQVgpOworICAgIC8qIFRoZSByZWZlcmVuY2UgaXMgcmVsZWFzZWQgaW4gcHl0aG9uRW5kRG9jdW1lbnQoKSAqLworICAgIGh0bWxTQVhQYXJzZUZpbGUoVVJJLCBlbmNvZGluZywgU0FYLCBweW9ial9TQVgpOworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm4gKFB5X05vbmUpOworI2Vsc2UKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgcmV0dXJuIChQeV9Ob25lKTsKKyNlbmRpZiAvKiBMSUJYTUxfSFRNTF9FTkFCTEVEICovCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlFcnJvciBtZXNzYWdlIGNhbGxiYWNrCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIFB5T2JqZWN0ICpsaWJ4bWxfeG1sUHl0aG9uRXJyb3JGdW5jSGFuZGxlciA9IE5VTEw7CitzdGF0aWMgUHlPYmplY3QgKmxpYnhtbF94bWxQeXRob25FcnJvckZ1bmNDdHh0ID0gTlVMTDsKKworLyogaGVscGVyIHRvIGJ1aWxkIGEgeG1sTWFsbG9jJ2VkIHN0cmluZyBmcm9tIGEgZm9ybWF0IGFuZCB2YV9saXN0ICovCisvKiAKKyAqIGRpc2FibGVkIHRoZSBsb29wLCB0aGUgcmVwZWF0ZWQgY2FsbCB0byB2c25wcmludGYgd2l0aG91dCByZXNldCBvZiBhcAorICogaW4gY2FzZSB0aGUgaW5pdGlhbCBidWZmZXIgd2FzIHRvbyBzbWFsbCBzZWdmYXVsdGVkIG9uIHg4Nl82NAorICogd2Ugbm93IGRpcmVjdGx5IHZzbnByaW50ZiBvbiBhIGxhcmdlIGJ1ZmZlci4KKyAqLworc3RhdGljIGNoYXIgKgorbGlieG1sX2J1aWxkTWVzc2FnZShjb25zdCBjaGFyICptc2csIHZhX2xpc3QgYXApCit7CisgICAgaW50IGNoYXJzOworICAgIGNoYXIgKnN0cjsKKworICAgIHN0ciA9IChjaGFyICopIHhtbE1hbGxvYygxMDAwKTsKKyAgICBpZiAoc3RyID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgY2hhcnMgPSB2c25wcmludGYoc3RyLCA5OTksIG1zZywgYXApOworICAgIGlmIChjaGFycyA+PSA5OTgpCisgICAgICAgIHN0cls5OTldID0gMDsKKworICAgIHJldHVybiBzdHI7Cit9CisKK3N0YXRpYyB2b2lkCitsaWJ4bWxfeG1sRXJyb3JGdW5jSGFuZGxlcihBVFRSSUJVVEVfVU5VU0VEIHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKQoreworICAgIHZhX2xpc3QgYXA7CisgICAgUHlPYmplY3QgKmxpc3Q7CisgICAgUHlPYmplY3QgKm1lc3NhZ2U7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBjaGFyIHN0clsxMDAwXTsKKworI2lmZGVmIERFQlVHX0VSUk9SCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sRXJyb3JGdW5jSGFuZGxlciglcCwgJXMsIC4uLikgY2FsbGVkXG4iLCBjdHgsIG1zZyk7CisjZW5kaWYKKworCisgICAgaWYgKGxpYnhtbF94bWxQeXRob25FcnJvckZ1bmNIYW5kbGVyID09IE5VTEwpIHsKKyAgICAgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgICAgIHZmcHJpbnRmKHN0ZGVyciwgbXNnLCBhcCk7CisgICAgICAgIHZhX2VuZChhcCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgICAgIGlmICh2c25wcmludGYoc3RyLCA5OTksIG1zZywgYXApID49IDk5OCkKKwkgICAgc3RyWzk5OV0gPSAwOworICAgICAgICB2YV9lbmQoYXApOworCisgICAgICAgIGxpc3QgPSBQeVR1cGxlX05ldygyKTsKKyAgICAgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDAsIGxpYnhtbF94bWxQeXRob25FcnJvckZ1bmNDdHh0KTsKKyAgICAgICAgUHlfWElOQ1JFRihsaWJ4bWxfeG1sUHl0aG9uRXJyb3JGdW5jQ3R4dCk7CisgICAgICAgIG1lc3NhZ2UgPSBsaWJ4bWxfY2hhclB0ckNvbnN0V3JhcChzdHIpOworICAgICAgICBQeVR1cGxlX1NldEl0ZW0obGlzdCwgMSwgbWVzc2FnZSk7CisgICAgICAgIHJlc3VsdCA9IFB5RXZhbF9DYWxsT2JqZWN0KGxpYnhtbF94bWxQeXRob25FcnJvckZ1bmNIYW5kbGVyLCBsaXN0KTsKKyAgICAgICAgUHlfWERFQ1JFRihsaXN0KTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK2xpYnhtbF94bWxFcnJvckluaXRpYWxpemUodm9pZCkKK3sKKyNpZmRlZiBERUJVR19FUlJPUgorICAgIHByaW50ZigibGlieG1sX3htbEVycm9ySW5pdGlhbGl6ZSgpIGNhbGxlZFxuIik7CisjZW5kaWYKKyAgICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jKE5VTEwsIGxpYnhtbF94bWxFcnJvckZ1bmNIYW5kbGVyKTsKKyAgICB4bWxUaHJEZWZTZXRHZW5lcmljRXJyb3JGdW5jKE5VTEwsIGxpYnhtbF94bWxFcnJvckZ1bmNIYW5kbGVyKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxSZWdpc3RlckVycm9ySGFuZGxlcihBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICBQeU9iamVjdCAqcHlvYmpfZjsKKyAgICBQeU9iamVjdCAqcHlvYmpfY3R4OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlCisgICAgICAgIChhcmdzLCAoY2hhciAqKSAiT086eG1sUmVnaXN0ZXJFcnJvckhhbmRsZXIiLCAmcHlvYmpfZiwKKyAgICAgICAgICZweW9ial9jdHgpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisjaWZkZWYgREVCVUdfRVJST1IKKyAgICBwcmludGYoImxpYnhtbF94bWxSZWdpc3RlckVycm9ySGFuZGxlciglcCwgJXApIGNhbGxlZFxuIiwgcHlvYmpfY3R4LAorICAgICAgICAgICBweW9ial9mKTsKKyNlbmRpZgorCisgICAgaWYgKGxpYnhtbF94bWxQeXRob25FcnJvckZ1bmNIYW5kbGVyICE9IE5VTEwpIHsKKyAgICAgICAgUHlfWERFQ1JFRihsaWJ4bWxfeG1sUHl0aG9uRXJyb3JGdW5jSGFuZGxlcik7CisgICAgfQorICAgIGlmIChsaWJ4bWxfeG1sUHl0aG9uRXJyb3JGdW5jQ3R4dCAhPSBOVUxMKSB7CisgICAgICAgIFB5X1hERUNSRUYobGlieG1sX3htbFB5dGhvbkVycm9yRnVuY0N0eHQpOworICAgIH0KKworICAgIFB5X1hJTkNSRUYocHlvYmpfY3R4KTsKKyAgICBQeV9YSU5DUkVGKHB5b2JqX2YpOworCisgICAgLyogVE9ETzogY2hlY2sgZiBpcyBhIGZ1bmN0aW9uICEgKi8KKyAgICBsaWJ4bWxfeG1sUHl0aG9uRXJyb3JGdW5jSGFuZGxlciA9IHB5b2JqX2Y7CisgICAgbGlieG1sX3htbFB5dGhvbkVycm9yRnVuY0N0eHQgPSBweW9ial9jdHg7CisKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgxKTsKKyAgICByZXR1cm4gKHB5X3JldHZhbCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAgICAgICAgICAgICAgICAgICAgICBQZXIgcGFyc2VyQ3R4dCBlcnJvciBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3R5cGVkZWYgc3RydWN0IAoreworICAgIFB5T2JqZWN0ICpmOworICAgIFB5T2JqZWN0ICphcmc7Cit9IHhtbFBhcnNlckN0eHRQeUN0eHQ7Cit0eXBlZGVmIHhtbFBhcnNlckN0eHRQeUN0eHQgKnhtbFBhcnNlckN0eHRQeUN0eHRQdHI7CisKK3N0YXRpYyB2b2lkCitsaWJ4bWxfeG1sUGFyc2VyQ3R4dEdlbmVyaWNFcnJvckZ1bmNIYW5kbGVyKHZvaWQgKmN0eCwgaW50IHNldmVyaXR5LCBjaGFyICpzdHIpIAoreworICAgIFB5T2JqZWN0ICpsaXN0OworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIHhtbFBhcnNlckN0eHRQeUN0eHRQdHIgcHlDdHh0OworICAgIAorI2lmZGVmIERFQlVHX0VSUk9SCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sUGFyc2VyQ3R4dEdlbmVyaWNFcnJvckZ1bmNIYW5kbGVyKCVwLCAlcywgLi4uKSBjYWxsZWRcbiIsIGN0eCwgc3RyKTsKKyNlbmRpZgorCisgICAgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKWN0eDsKKyAgICBweUN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB5Q3R4dFB0ciljdHh0LT5fcHJpdmF0ZTsKKworICAgIGxpc3QgPSBQeVR1cGxlX05ldyg0KTsKKyAgICBQeVR1cGxlX1NldEl0ZW0obGlzdCwgMCwgcHlDdHh0LT5hcmcpOworICAgIFB5X1hJTkNSRUYocHlDdHh0LT5hcmcpOworICAgIFB5VHVwbGVfU2V0SXRlbShsaXN0LCAxLCBsaWJ4bWxfY2hhclB0cldyYXAoc3RyKSk7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDIsIGxpYnhtbF9pbnRXcmFwKHNldmVyaXR5KSk7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDMsIFB5X05vbmUpOworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXN1bHQgPSBQeUV2YWxfQ2FsbE9iamVjdChweUN0eHQtPmYsIGxpc3QpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgCisgICAgeworCS8qIFRPRE86IG1hbmFnZSBmb3IgdGhlIGV4Y2VwdGlvbiB0byBiZSBwcm9wYWdhdGVkLi4uICovCisJUHlFcnJfUHJpbnQoKTsKKyAgICB9CisgICAgUHlfWERFQ1JFRihsaXN0KTsKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7Cit9CisKK3N0YXRpYyB2b2lkIAorbGlieG1sX3htbFBhcnNlckN0eHRFcnJvckZ1bmNIYW5kbGVyKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pIAoreworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgbXNnKTsKKyAgICBsaWJ4bWxfeG1sUGFyc2VyQ3R4dEdlbmVyaWNFcnJvckZ1bmNIYW5kbGVyKGN0eCxYTUxfUEFSU0VSX1NFVkVSSVRZX0VSUk9SLGxpYnhtbF9idWlsZE1lc3NhZ2UobXNnLGFwKSk7CisgICAgdmFfZW5kKGFwKTsKK30KKworc3RhdGljIHZvaWQgCitsaWJ4bWxfeG1sUGFyc2VyQ3R4dFdhcm5pbmdGdW5jSGFuZGxlcih2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKSAKK3sKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgbGlieG1sX3htbFBhcnNlckN0eHRHZW5lcmljRXJyb3JGdW5jSGFuZGxlcihjdHgsWE1MX1BBUlNFUl9TRVZFUklUWV9XQVJOSU5HLGxpYnhtbF9idWlsZE1lc3NhZ2UobXNnLGFwKSk7CisgICAgdmFfZW5kKGFwKTsKK30KKworc3RhdGljIHZvaWQgCitsaWJ4bWxfeG1sUGFyc2VyQ3R4dFZhbGlkaXR5RXJyb3JGdW5jSGFuZGxlcih2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKSAKK3sKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgbGlieG1sX3htbFBhcnNlckN0eHRHZW5lcmljRXJyb3JGdW5jSGFuZGxlcihjdHgsWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9FUlJPUixsaWJ4bWxfYnVpbGRNZXNzYWdlKG1zZyxhcCkpOworICAgIHZhX2VuZChhcCk7Cit9CisKK3N0YXRpYyB2b2lkIAorbGlieG1sX3htbFBhcnNlckN0eHRWYWxpZGl0eVdhcm5pbmdGdW5jSGFuZGxlcih2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKSAKK3sKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgbGlieG1sX3htbFBhcnNlckN0eHRHZW5lcmljRXJyb3JGdW5jSGFuZGxlcihjdHgsWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HLGxpYnhtbF9idWlsZE1lc3NhZ2UobXNnLGFwKSk7CisgICAgdmFfZW5kKGFwKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxQYXJzZXJDdHh0U2V0RXJyb3JIYW5kbGVyKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKSAKK3sKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICB4bWxQYXJzZXJDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKyAgICBQeU9iamVjdCAqcHlvYmpfY3R4dDsKKyAgICBQeU9iamVjdCAqcHlvYmpfZjsKKyAgICBQeU9iamVjdCAqcHlvYmpfYXJnOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopIk9PTzp4bWxQYXJzZXJDdHh0U2V0RXJyb3JIYW5kbGVyIiwKKwkJICAgICAgICAgICZweW9ial9jdHh0LCAmcHlvYmpfZiwgJnB5b2JqX2FyZykpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIFB5cGFyc2VyQ3R4dF9HZXQocHlvYmpfY3R4dCk7CisgICAgaWYgKGN0eHQtPl9wcml2YXRlID09IE5VTEwpIHsKKwlweUN0eHQgPSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFBhcnNlckN0eHRQeUN0eHQpKTsKKwlpZiAocHlDdHh0ID09IE5VTEwpIHsKKwkgICAgcHlfcmV0dmFsID0gbGlieG1sX2ludFdyYXAoLTEpOworCSAgICByZXR1cm4ocHlfcmV0dmFsKTsKKwl9CisJbWVtc2V0KHB5Q3R4dCwwLHNpemVvZih4bWxQYXJzZXJDdHh0UHlDdHh0KSk7CisJY3R4dC0+X3ByaXZhdGUgPSBweUN0eHQ7CisgICAgfQorICAgIGVsc2UgeworCXB5Q3R4dCA9ICh4bWxQYXJzZXJDdHh0UHlDdHh0UHRyKWN0eHQtPl9wcml2YXRlOworICAgIH0KKyAgICAvKiBUT0RPOiBjaGVjayBmIGlzIGEgZnVuY3Rpb24gISAqLworICAgIFB5X1hERUNSRUYocHlDdHh0LT5mKTsKKyAgICBQeV9YSU5DUkVGKHB5b2JqX2YpOworICAgIHB5Q3R4dC0+ZiA9IHB5b2JqX2Y7CisgICAgUHlfWERFQ1JFRihweUN0eHQtPmFyZyk7CisgICAgUHlfWElOQ1JFRihweW9ial9hcmcpOworICAgIHB5Q3R4dC0+YXJnID0gcHlvYmpfYXJnOworCisgICAgaWYgKHB5b2JqX2YgIT0gUHlfTm9uZSkgeworCWN0eHQtPnNheC0+ZXJyb3IgPSBsaWJ4bWxfeG1sUGFyc2VyQ3R4dEVycm9yRnVuY0hhbmRsZXI7CisJY3R4dC0+c2F4LT53YXJuaW5nID0gbGlieG1sX3htbFBhcnNlckN0eHRXYXJuaW5nRnVuY0hhbmRsZXI7CisJY3R4dC0+dmN0eHQuZXJyb3IgPSBsaWJ4bWxfeG1sUGFyc2VyQ3R4dFZhbGlkaXR5RXJyb3JGdW5jSGFuZGxlcjsKKwljdHh0LT52Y3R4dC53YXJuaW5nID0gbGlieG1sX3htbFBhcnNlckN0eHRWYWxpZGl0eVdhcm5pbmdGdW5jSGFuZGxlcjsKKyAgICB9CisgICAgZWxzZSB7CisJY3R4dC0+c2F4LT5lcnJvciA9IHhtbFBhcnNlckVycm9yOworCWN0eHQtPnZjdHh0LmVycm9yID0geG1sUGFyc2VyVmFsaWRpdHlFcnJvcjsKKwljdHh0LT5zYXgtPndhcm5pbmcgPSB4bWxQYXJzZXJXYXJuaW5nOworCWN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc7CisgICAgfQorCisgICAgcHlfcmV0dmFsID0gbGlieG1sX2ludFdyYXAoMSk7CisgICAgcmV0dXJuKHB5X3JldHZhbCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfeG1sUGFyc2VyQ3R4dEdldEVycm9ySGFuZGxlcihBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykgCit7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUGFyc2VyQ3R4dFB5Q3R4dFB0ciBweUN0eHQ7CisgICAgUHlPYmplY3QgKnB5b2JqX2N0eHQ7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiTzp4bWxQYXJzZXJDdHh0R2V0RXJyb3JIYW5kbGVyIiwKKwkJICAgICAgICAgICZweW9ial9jdHh0KSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgUHlwYXJzZXJDdHh0X0dldChweW9ial9jdHh0KTsKKyAgICBweV9yZXR2YWwgPSBQeVR1cGxlX05ldygyKTsKKyAgICBpZiAoY3R4dC0+X3ByaXZhdGUgIT0gTlVMTCkgeworCXB5Q3R4dCA9ICh4bWxQYXJzZXJDdHh0UHlDdHh0UHRyKWN0eHQtPl9wcml2YXRlOworCisJUHlUdXBsZV9TZXRJdGVtKHB5X3JldHZhbCwgMCwgcHlDdHh0LT5mKTsKKwlQeV9YSU5DUkVGKHB5Q3R4dC0+Zik7CisJUHlUdXBsZV9TZXRJdGVtKHB5X3JldHZhbCwgMSwgcHlDdHh0LT5hcmcpOworCVB5X1hJTkNSRUYocHlDdHh0LT5hcmcpOworICAgIH0KKyAgICBlbHNlIHsKKwkvKiBubyBweXRob24gZXJyb3IgaGFuZGxlciByZWdpc3RlcmVkICovCisJUHlUdXBsZV9TZXRJdGVtKHB5X3JldHZhbCwgMCwgUHlfTm9uZSk7CisJUHlfWElOQ1JFRihQeV9Ob25lKTsKKwlQeVR1cGxlX1NldEl0ZW0ocHlfcmV0dmFsLCAxLCBQeV9Ob25lKTsKKwlQeV9YSU5DUkVGKFB5X05vbmUpOworICAgIH0KKyAgICByZXR1cm4ocHlfcmV0dmFsKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxGcmVlUGFyc2VyQ3R4dChBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykgeworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICBQeU9iamVjdCAqcHlvYmpfY3R4dDsKKyAgICB4bWxQYXJzZXJDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSJPOnhtbEZyZWVQYXJzZXJDdHh0IiwgJnB5b2JqX2N0eHQpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBQeXBhcnNlckN0eHRfR2V0KHB5b2JqX2N0eHQpOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCXB5Q3R4dCA9ICh4bWxQYXJzZXJDdHh0UHlDdHh0UHRyKSgoeG1sUGFyc2VyQ3R4dFB0ciljdHh0KS0+X3ByaXZhdGU7CisJaWYgKHB5Q3R4dCkgeworCSAgICBQeV9YREVDUkVGKHB5Q3R4dC0+Zik7CisJICAgIFB5X1hERUNSRUYocHlDdHh0LT5hcmcpOworCSAgICB4bWxGcmVlKHB5Q3R4dCk7CisJfQorCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIH0KKworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm4oUHlfTm9uZSk7Cit9CisKKy8qKioKKyAqIHhtbFZhbGlkQ3R4dCBzdHVmZgorICovCisKK3R5cGVkZWYgc3RydWN0IAoreworICAgIFB5T2JqZWN0ICp3YXJuOworICAgIFB5T2JqZWN0ICplcnJvcjsKKyAgICBQeU9iamVjdCAqYXJnOworfSB4bWxWYWxpZEN0eHRQeUN0eHQ7Cit0eXBlZGVmIHhtbFZhbGlkQ3R4dFB5Q3R4dCAqeG1sVmFsaWRDdHh0UHlDdHh0UHRyOworCitzdGF0aWMgdm9pZAorbGlieG1sX3htbFZhbGlkQ3R4dEdlbmVyaWNFcnJvckZ1bmNIYW5kbGVyKHZvaWQgKmN0eCwgaW50IHNldmVyaXR5LCBjaGFyICpzdHIpIAoreworICAgIFB5T2JqZWN0ICpsaXN0OworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgeG1sVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKyAgICAKKyNpZmRlZiBERUJVR19FUlJPUgorICAgIHByaW50ZigibGlieG1sX3htbFZhbGlkQ3R4dEdlbmVyaWNFcnJvckZ1bmNIYW5kbGVyKCVwLCAlZCwgJXMsIC4uLikgY2FsbGVkXG4iLCBjdHgsIHNldmVyaXR5LCBzdHIpOworI2VuZGlmCisKKyAgICBweUN0eHQgPSAoeG1sVmFsaWRDdHh0UHlDdHh0UHRyKWN0eDsKKyAgICAKKyAgICBsaXN0ID0gUHlUdXBsZV9OZXcoMik7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDAsIGxpYnhtbF9jaGFyUHRyV3JhcChzdHIpKTsKKyAgICBQeVR1cGxlX1NldEl0ZW0obGlzdCwgMSwgcHlDdHh0LT5hcmcpOworICAgIFB5X1hJTkNSRUYocHlDdHh0LT5hcmcpOworICAgIHJlc3VsdCA9IFB5RXZhbF9DYWxsT2JqZWN0KHB5Q3R4dC0+ZXJyb3IsIGxpc3QpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgCisgICAgeworCS8qIFRPRE86IG1hbmFnZSBmb3IgdGhlIGV4Y2VwdGlvbiB0byBiZSBwcm9wYWdhdGVkLi4uICovCisJUHlFcnJfUHJpbnQoKTsKKyAgICB9CisgICAgUHlfWERFQ1JFRihsaXN0KTsKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7Cit9CisKK3N0YXRpYyB2b2lkCitsaWJ4bWxfeG1sVmFsaWRDdHh0R2VuZXJpY1dhcm5pbmdGdW5jSGFuZGxlcih2b2lkICpjdHgsIGludCBzZXZlcml0eSwgY2hhciAqc3RyKSAKK3sKKyAgICBQeU9iamVjdCAqbGlzdDsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIHhtbFZhbGlkQ3R4dFB5Q3R4dFB0ciBweUN0eHQ7CisgICAgCisjaWZkZWYgREVCVUdfRVJST1IKKyAgICBwcmludGYoImxpYnhtbF94bWxWYWxpZEN0eHRHZW5lcmljV2FybmluZ0Z1bmNIYW5kbGVyKCVwLCAlZCwgJXMsIC4uLikgY2FsbGVkXG4iLCBjdHgsIHNldmVyaXR5LCBzdHIpOworI2VuZGlmCisKKyAgICBweUN0eHQgPSAoeG1sVmFsaWRDdHh0UHlDdHh0UHRyKWN0eDsKKworICAgIGxpc3QgPSBQeVR1cGxlX05ldygyKTsKKyAgICBQeVR1cGxlX1NldEl0ZW0obGlzdCwgMCwgbGlieG1sX2NoYXJQdHJXcmFwKHN0cikpOworICAgIFB5VHVwbGVfU2V0SXRlbShsaXN0LCAxLCBweUN0eHQtPmFyZyk7CisgICAgUHlfWElOQ1JFRihweUN0eHQtPmFyZyk7CisgICAgcmVzdWx0ID0gUHlFdmFsX0NhbGxPYmplY3QocHlDdHh0LT53YXJuLCBsaXN0KTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIAorICAgIHsKKwkvKiBUT0RPOiBtYW5hZ2UgZm9yIHRoZSBleGNlcHRpb24gdG8gYmUgcHJvcGFnYXRlZC4uLiAqLworCVB5RXJyX1ByaW50KCk7CisgICAgfQorICAgIFB5X1hERUNSRUYobGlzdCk7CisgICAgUHlfWERFQ1JFRihyZXN1bHQpOworfQorCitzdGF0aWMgdm9pZCAKK2xpYnhtbF94bWxWYWxpZEN0eHRFcnJvckZ1bmNIYW5kbGVyKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pIAoreworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgbXNnKTsKKyAgICBsaWJ4bWxfeG1sVmFsaWRDdHh0R2VuZXJpY0Vycm9yRnVuY0hhbmRsZXIoY3R4LFhNTF9QQVJTRVJfU0VWRVJJVFlfVkFMSURJVFlfRVJST1IsbGlieG1sX2J1aWxkTWVzc2FnZShtc2csYXApKTsKKyAgICB2YV9lbmQoYXApOworfQorCitzdGF0aWMgdm9pZCAKK2xpYnhtbF94bWxWYWxpZEN0eHRXYXJuaW5nRnVuY0hhbmRsZXIodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikgCit7CisgICAgdmFfbGlzdCBhcDsKKworICAgIHZhX3N0YXJ0KGFwLCBtc2cpOworICAgIGxpYnhtbF94bWxWYWxpZEN0eHRHZW5lcmljV2FybmluZ0Z1bmNIYW5kbGVyKGN0eCxYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX1dBUk5JTkcsbGlieG1sX2J1aWxkTWVzc2FnZShtc2csYXApKTsKKyAgICB2YV9lbmQoYXApOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX3htbFNldFZhbGlkRXJyb3JzKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICBQeU9iamVjdCAqcHlvYmpfZXJyb3I7CisgICAgUHlPYmplY3QgKnB5b2JqX3dhcm47CisgICAgUHlPYmplY3QgKnB5b2JqX2N0eDsKKyAgICBQeU9iamVjdCAqcHlvYmpfYXJnID0gUHlfTm9uZTsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsKKyAgICB4bWxWYWxpZEN0eHRQeUN0eHRQdHIgcHlDdHh0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlCisgICAgICAgIChhcmdzLCAoY2hhciAqKSAiT09PfE86eG1sU2V0VmFsaWRFcnJvcnMiLCAmcHlvYmpfY3R4LCAmcHlvYmpfZXJyb3IsICZweW9ial93YXJuLCAmcHlvYmpfYXJnKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworI2lmZGVmIERFQlVHX0VSUk9SCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sU2V0VmFsaWRFcnJvcnMoJXAsICVwLCAlcCkgY2FsbGVkXG4iLCBweW9ial9jdHgsIHB5b2JqX2Vycm9yLCBweW9ial93YXJuKTsKKyNlbmRpZgorCisgICAgY3R4dCA9IFB5VmFsaWRDdHh0X0dldChweW9ial9jdHgpOworICAgIHB5Q3R4dCA9IHhtbE1hbGxvYyhzaXplb2YoeG1sVmFsaWRDdHh0UHlDdHh0KSk7CisgICAgaWYgKHB5Q3R4dCA9PSBOVUxMKSB7CisgICAgICAgICAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgtMSk7CisgICAgICAgICAgICByZXR1cm4ocHlfcmV0dmFsKTsKKyAgICB9CisgICAgbWVtc2V0KHB5Q3R4dCwgMCwgc2l6ZW9mKHhtbFZhbGlkQ3R4dFB5Q3R4dCkpOworCisgICAgCisgICAgLyogVE9ETzogY2hlY2sgd2FybiBhbmQgZXJyb3IgaXMgYSBmdW5jdGlvbiAhICovCisgICAgUHlfWERFQ1JFRihweUN0eHQtPmVycm9yKTsKKyAgICBQeV9YSU5DUkVGKHB5b2JqX2Vycm9yKTsKKyAgICBweUN0eHQtPmVycm9yID0gcHlvYmpfZXJyb3I7CisgICAgCisgICAgUHlfWERFQ1JFRihweUN0eHQtPndhcm4pOworICAgIFB5X1hJTkNSRUYocHlvYmpfd2Fybik7CisgICAgcHlDdHh0LT53YXJuID0gcHlvYmpfd2FybjsKKyAgICAKKyAgICBQeV9YREVDUkVGKHB5Q3R4dC0+YXJnKTsKKyAgICBQeV9YSU5DUkVGKHB5b2JqX2FyZyk7CisgICAgcHlDdHh0LT5hcmcgPSBweW9ial9hcmc7CisKKyAgICBjdHh0LT5lcnJvciA9IGxpYnhtbF94bWxWYWxpZEN0eHRFcnJvckZ1bmNIYW5kbGVyOworICAgIGN0eHQtPndhcm5pbmcgPSBsaWJ4bWxfeG1sVmFsaWRDdHh0V2FybmluZ0Z1bmNIYW5kbGVyOworICAgIGN0eHQtPnVzZXJEYXRhID0gcHlDdHh0OworCisgICAgcHlfcmV0dmFsID0gbGlieG1sX2ludFdyYXAoMSk7CisgICAgcmV0dXJuIChweV9yZXR2YWwpOworfQorCisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfeG1sRnJlZVZhbGlkQ3R4dChQeU9iamVjdCAqc2VsZiBBVFRSSUJVVEVfVU5VU0VELCBQeU9iamVjdCAqYXJncykgeworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdXI7CisgICAgeG1sVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKyAgICBQeU9iamVjdCAqcHlvYmpfY3VyOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopIk86eG1sRnJlZVZhbGlkQ3R4dCIsICZweW9ial9jdXIpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3VyID0gKHhtbFZhbGlkQ3R4dFB0cikgUHlWYWxpZEN0eHRfR2V0KHB5b2JqX2N1cik7CisKKyAgICBweUN0eHQgPSAoeG1sVmFsaWRDdHh0UHlDdHh0UHRyKShjdXItPnVzZXJEYXRhKTsKKyAgICBpZiAocHlDdHh0ICE9IE5VTEwpCisgICAgeworICAgICAgICAgICAgUHlfWERFQ1JFRihweUN0eHQtPmVycm9yKTsKKyAgICAgICAgICAgIFB5X1hERUNSRUYocHlDdHh0LT53YXJuKTsKKyAgICAgICAgICAgIFB5X1hERUNSRUYocHlDdHh0LT5hcmcpOworICAgICAgICAgICAgeG1sRnJlZShweUN0eHQpOworICAgIH0KKworICAgIHhtbEZyZWVWYWxpZEN0eHQoY3VyKTsKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgcmV0dXJuKFB5X05vbmUpOworfQorCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqICAgICAgICAgICAgICAgICAgICAgIFBlciB4bWxUZXh0UmVhZGVyIGVycm9yIGhhbmRsZXIgICAgICAgICAgICAgICAgICoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordHlwZWRlZiBzdHJ1Y3QgCit7CisgICAgUHlPYmplY3QgKmY7CisgICAgUHlPYmplY3QgKmFyZzsKK30geG1sVGV4dFJlYWRlclB5Q3R4dDsKK3R5cGVkZWYgeG1sVGV4dFJlYWRlclB5Q3R4dCAqeG1sVGV4dFJlYWRlclB5Q3R4dFB0cjsKKworc3RhdGljIHZvaWQgCitsaWJ4bWxfeG1sVGV4dFJlYWRlckVycm9yQ2FsbGJhY2sodm9pZCAqYXJnLCAKKwkJCQkgIGNvbnN0IGNoYXIgKm1zZywKKwkJCQkgIGludCBzZXZlcml0eSwKKwkJCQkgIHhtbFRleHRSZWFkZXJMb2NhdG9yUHRyIGxvY2F0b3IpCit7CisgICAgeG1sVGV4dFJlYWRlclB5Q3R4dCAqcHlDdHh0ID0gKHhtbFRleHRSZWFkZXJQeUN0eHQgKilhcmc7CisgICAgUHlPYmplY3QgKmxpc3Q7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICAKKyAgICBsaXN0ID0gUHlUdXBsZV9OZXcoNCk7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDAsIHB5Q3R4dC0+YXJnKTsKKyAgICBQeV9YSU5DUkVGKHB5Q3R4dC0+YXJnKTsKKyAgICBQeVR1cGxlX1NldEl0ZW0obGlzdCwgMSwgbGlieG1sX2NoYXJQdHJDb25zdFdyYXAobXNnKSk7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDIsIGxpYnhtbF9pbnRXcmFwKHNldmVyaXR5KSk7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDMsIGxpYnhtbF94bWxUZXh0UmVhZGVyTG9jYXRvclB0cldyYXAobG9jYXRvcikpOworICAgIHJlc3VsdCA9IFB5RXZhbF9DYWxsT2JqZWN0KHB5Q3R4dC0+ZiwgbGlzdCk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgIHsKKwkvKiBUT0RPOiBtYW5hZ2UgZm9yIHRoZSBleGNlcHRpb24gdG8gYmUgcHJvcGFnYXRlZC4uLiAqLworCVB5RXJyX1ByaW50KCk7CisgICAgfQorICAgIFB5X1hERUNSRUYobGlzdCk7CisgICAgUHlfWERFQ1JFRihyZXN1bHQpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX3htbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgeG1sVGV4dFJlYWRlclB5Q3R4dFB0ciBweUN0eHQ7CisgICAgeG1sVGV4dFJlYWRlckVycm9yRnVuYyBmOworICAgIHZvaWQgKmFyZzsKKyAgICBQeU9iamVjdCAqcHlvYmpfcmVhZGVyOworICAgIFB5T2JqZWN0ICpweW9ial9mOworICAgIFB5T2JqZWN0ICpweW9ial9hcmc7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSJPT086eG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciIsICZweW9ial9yZWFkZXIsICZweW9ial9mLCAmcHlvYmpfYXJnKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIHJlYWRlciA9ICh4bWxUZXh0UmVhZGVyUHRyKSBQeXhtbFRleHRSZWFkZXJfR2V0KHB5b2JqX3JlYWRlcik7CisgICAgLyogY2xlYXIgcHJldmlvdXMgZXJyb3IgaGFuZGxlciAqLworICAgIHhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIocmVhZGVyLCZmLCZhcmcpOworICAgIGlmIChhcmcgIT0gTlVMTCkgeworCWlmIChmID09ICh4bWxUZXh0UmVhZGVyRXJyb3JGdW5jKSBsaWJ4bWxfeG1sVGV4dFJlYWRlckVycm9yQ2FsbGJhY2spIHsKKwkgICAgLyogb2ssIGl0J3Mgb3VyIGVycm9yIGhhbmRsZXIhICovCisJICAgIHB5Q3R4dCA9ICh4bWxUZXh0UmVhZGVyUHlDdHh0UHRyKWFyZzsKKwkgICAgUHlfWERFQ1JFRihweUN0eHQtPmYpOworCSAgICBQeV9YREVDUkVGKHB5Q3R4dC0+YXJnKTsKKwkgICAgeG1sRnJlZShweUN0eHQpOworCX0KKwllbHNlIHsKKwkgICAgLyogCisJICAgICAqIHRoZXJlIGFscmVhZHkgYW4gYXJnLCBhbmQgaXQncyBub3Qgb3VycywKKwkgICAgICogdGhlcmUgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgd3JvbmcgZ29pbmcgb24gaGVyZS4uLgorCSAgICAgKiB3ZSBkb24ndCBrbm93IGhvdyB0byBmcmVlIGl0LCBzbyB3ZSBiYWlsIG91dC4uLiAKKwkgICAgICovCisJICAgIHB5X3JldHZhbCA9IGxpYnhtbF9pbnRXcmFwKC0xKTsKKwkgICAgcmV0dXJuKHB5X3JldHZhbCk7CisJfQorICAgIH0KKyAgICB4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyKHJlYWRlcixOVUxMLE5VTEwpOworICAgIC8qIHNldCBuZXcgZXJyb3IgaGFuZGxlciAqLworICAgIGlmIChweW9ial9mICE9IFB5X05vbmUpCisgICAgeworCXB5Q3R4dCA9ICh4bWxUZXh0UmVhZGVyUHlDdHh0UHRyKXhtbE1hbGxvYyhzaXplb2YoeG1sVGV4dFJlYWRlclB5Q3R4dCkpOworCWlmIChweUN0eHQgPT0gTlVMTCkgeworCSAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgtMSk7CisJICAgIHJldHVybihweV9yZXR2YWwpOworCX0KKwlQeV9YSU5DUkVGKHB5b2JqX2YpOworCXB5Q3R4dC0+ZiA9IHB5b2JqX2Y7CisJUHlfWElOQ1JFRihweW9ial9hcmcpOworCXB5Q3R4dC0+YXJnID0gcHlvYmpfYXJnOworCXhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIocmVhZGVyLAorCSAgICAoeG1sVGV4dFJlYWRlckVycm9yRnVuYykgbGlieG1sX3htbFRleHRSZWFkZXJFcnJvckNhbGxiYWNrLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHlDdHh0KTsKKyAgICB9CisKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgxKTsKKyAgICByZXR1cm4ocHlfcmV0dmFsKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOworICAgIHhtbFRleHRSZWFkZXJQeUN0eHRQdHIgcHlDdHh0OworICAgIHhtbFRleHRSZWFkZXJFcnJvckZ1bmMgZjsKKyAgICB2b2lkICphcmc7CisgICAgUHlPYmplY3QgKnB5b2JqX3JlYWRlcjsKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopIk86eG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciIsICZweW9ial9yZWFkZXIpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgcmVhZGVyID0gKHhtbFRleHRSZWFkZXJQdHIpIFB5eG1sVGV4dFJlYWRlcl9HZXQocHlvYmpfcmVhZGVyKTsKKyAgICB4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyKHJlYWRlciwmZiwmYXJnKTsKKyAgICBweV9yZXR2YWwgPSBQeVR1cGxlX05ldygyKTsKKyAgICBpZiAoZiA9PSAoeG1sVGV4dFJlYWRlckVycm9yRnVuYylsaWJ4bWxfeG1sVGV4dFJlYWRlckVycm9yQ2FsbGJhY2spIHsKKwkvKiBvaywgaXQncyBvdXIgZXJyb3IgaGFuZGxlciEgKi8KKwlweUN0eHQgPSAoeG1sVGV4dFJlYWRlclB5Q3R4dFB0cilhcmc7CisJUHlUdXBsZV9TZXRJdGVtKHB5X3JldHZhbCwgMCwgcHlDdHh0LT5mKTsKKwlQeV9YSU5DUkVGKHB5Q3R4dC0+Zik7CisJUHlUdXBsZV9TZXRJdGVtKHB5X3JldHZhbCwgMSwgcHlDdHh0LT5hcmcpOworCVB5X1hJTkNSRUYocHlDdHh0LT5hcmcpOworICAgIH0KKyAgICBlbHNlCisgICAgeworCS8qIGYgaXMgbnVsbCBvciBpdCdzIG5vdCBvdXIgZXJyb3IgaGFuZGxlciAqLworCVB5VHVwbGVfU2V0SXRlbShweV9yZXR2YWwsIDAsIFB5X05vbmUpOworCVB5X1hJTkNSRUYoUHlfTm9uZSk7CisJUHlUdXBsZV9TZXRJdGVtKHB5X3JldHZhbCwgMSwgUHlfTm9uZSk7CisJUHlfWElOQ1JFRihQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0dXJuKHB5X3JldHZhbCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfeG1sRnJlZVRleHRSZWFkZXIoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpIHsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsKKyAgICBQeU9iamVjdCAqcHlvYmpfcmVhZGVyOworICAgIHhtbFRleHRSZWFkZXJQeUN0eHRQdHIgcHlDdHh0OworICAgIHhtbFRleHRSZWFkZXJFcnJvckZ1bmMgZjsKKyAgICB2b2lkICphcmc7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiTzp4bWxGcmVlVGV4dFJlYWRlciIsICZweW9ial9yZWFkZXIpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKCFQeUNPYmplY3RfQ2hlY2socHlvYmpfcmVhZGVyKSkgeworCVB5X0lOQ1JFRihQeV9Ob25lKTsKKwlyZXR1cm4oUHlfTm9uZSk7CisgICAgfQorICAgIHJlYWRlciA9ICh4bWxUZXh0UmVhZGVyUHRyKSBQeXhtbFRleHRSZWFkZXJfR2V0KHB5b2JqX3JlYWRlcik7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKSB7CisJUHlfSU5DUkVGKFB5X05vbmUpOworCXJldHVybihQeV9Ob25lKTsKKyAgICB9CisKKyAgICB4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyKHJlYWRlciwmZiwmYXJnKTsKKyAgICBpZiAoYXJnICE9IE5VTEwpIHsKKwlpZiAoZiA9PSAoeG1sVGV4dFJlYWRlckVycm9yRnVuYykgbGlieG1sX3htbFRleHRSZWFkZXJFcnJvckNhbGxiYWNrKSB7CisJICAgIC8qIG9rLCBpdCdzIG91ciBlcnJvciBoYW5kbGVyISAqLworCSAgICBweUN0eHQgPSAoeG1sVGV4dFJlYWRlclB5Q3R4dFB0cilhcmc7CisJICAgIFB5X1hERUNSRUYocHlDdHh0LT5mKTsKKwkgICAgUHlfWERFQ1JFRihweUN0eHQtPmFyZyk7CisJICAgIHhtbEZyZWUocHlDdHh0KTsKKwl9CisJLyogCisJICogZWxzZSwgc29tZXRoaW5nIHdyb25nIGhhcHBlbmVkLCBiZWNhdXNlIHRoZSBlcnJvciBoYW5kbGVyIGlzCisJICogbm90IG93bmVkIGJ5IHRoZSBweXRob24gYmluZGluZ3MuLi4KKwkgKi8KKyAgICB9CisKKyAgICB4bWxGcmVlVGV4dFJlYWRlcihyZWFkZXIpOworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm4oUHlfTm9uZSk7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVhQYXRoIGV4dGVuc2lvbnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgdm9pZAorbGlieG1sX3htbFhQYXRoRnVuY0NhbGxiYWNrKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpCit7CisgICAgUHlPYmplY3QgKmxpc3QsICpjdXIsICpyZXN1bHQ7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgb2JqOworICAgIHhtbFhQYXRoQ29udGV4dFB0ciByY3R4dDsKKyAgICBQeU9iamVjdCAqY3VycmVudF9mdW5jdGlvbiA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICpuc191cmk7CisgICAgaW50IGk7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgcmN0eHQgPSBjdHh0LT5jb250ZXh0OworICAgIGlmIChyY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgbmFtZSA9IHJjdHh0LT5mdW5jdGlvbjsKKyAgICBuc191cmkgPSByY3R4dC0+ZnVuY3Rpb25VUkk7CisjaWZkZWYgREVCVUdfWFBBVEgKKyAgICBwcmludGYoImxpYnhtbF94bWxYUGF0aEZ1bmNDYWxsYmFjayBjYWxsZWQgbmFtZSAlcyBVUkkgJXNcbiIsIG5hbWUsCisgICAgICAgICAgIG5zX3VyaSk7CisjZW5kaWYKKworICAgIC8qCisgICAgICogRmluZCB0aGUgZnVuY3Rpb24sIGl0IHNob3VsZCBiZSB0aGVyZSBpdCB3YXMgdGhlcmUgYXQgbG9va3VwCisgICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IGxpYnhtbF94cGF0aENhbGxiYWNrc05iOyBpKyspIHsKKyAgICAgICAgaWYgKCAgICAgICAgICAgICAgICAgICAgLyogVE9ETyAoY3R4dCA9PSBsaWJ4bWxfeHBhdGhDYWxsYmFja3NbaV0uY3R4KSAmJiAqLworCQkJCQkJKHhtbFN0ckVxdWFsKG5hbWUsICgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5uYW1lKSkgJiYKKyAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChuc191cmksICgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5uc191cmkpKSkgeworCQkJCQljdXJyZW50X2Z1bmN0aW9uID0gKCpsaWJ4bWxfeHBhdGhDYWxsYmFja3MpW2ldLmZ1bmN0aW9uOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjdXJyZW50X2Z1bmN0aW9uID09IE5VTEwpIHsKKyAgICAgICAgcHJpbnRmCisgICAgICAgICAgICAoImxpYnhtbF94bWxYUGF0aEZ1bmNDYWxsYmFjazogaW50ZXJuYWwgZXJyb3IgJXMgbm90IGZvdW5kICFcbiIsCisgICAgICAgICAgICAgbmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBsaXN0ID0gUHlUdXBsZV9OZXcobmFyZ3MgKyAxKTsKKyAgICBQeVR1cGxlX1NldEl0ZW0obGlzdCwgMCwgbGlieG1sX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cldyYXAoY3R4dCkpOworICAgIGZvciAoaSA9IG5hcmdzIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgb2JqID0gdmFsdWVQb3AoY3R4dCk7CisgICAgICAgIGN1ciA9IGxpYnhtbF94bWxYUGF0aE9iamVjdFB0cldyYXAob2JqKTsKKyAgICAgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIGkgKyAxLCBjdXIpOworICAgIH0KKyAgICByZXN1bHQgPSBQeUV2YWxfQ2FsbE9iamVjdChjdXJyZW50X2Z1bmN0aW9uLCBsaXN0KTsKKyAgICBQeV9ERUNSRUYobGlzdCk7CisKKyAgICBvYmogPSBsaWJ4bWxfeG1sWFBhdGhPYmplY3RQdHJDb252ZXJ0KHJlc3VsdCk7CisgICAgdmFsdWVQdXNoKGN0eHQsIG9iaik7Cit9CisKK3N0YXRpYyB4bWxYUGF0aEZ1bmN0aW9uCitsaWJ4bWxfeG1sWFBhdGhGdW5jTG9va3VwRnVuYyh2b2lkICpjdHh0LCBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuc191cmkpCit7CisgICAgaW50IGk7CisKKyNpZmRlZiBERUJVR19YUEFUSAorICAgIHByaW50ZigibGlieG1sX3htbFhQYXRoRnVuY0xvb2t1cEZ1bmMoJXAsICVzLCAlcykgY2FsbGVkXG4iLAorICAgICAgICAgICBjdHh0LCBuYW1lLCBuc191cmkpOworI2VuZGlmCisgICAgLyoKKyAgICAgKiBUaGlzIGlzIGNhbGxlZCBvbmNlIG9ubHkuIFRoZSBhZGRyZXNzIGlzIHRoZW4gc3RvcmVkIGluIHRoZQorICAgICAqIFhQYXRoIGV4cHJlc3Npb24gZXZhbHVhdGlvbiwgdGhlIHByb3BlciBvYmplY3QgdG8gY2FsbCBjYW4KKyAgICAgKiB0aGVuIHN0aWxsIGJlIGZvdW5kIHVzaW5nIHRoZSBleGVjdXRpb24gY29udGV4dCBmdW5jdGlvbgorICAgICAqIGFuZCBmdW5jdGlvblVSSSBmaWVsZHMuCisgICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IGxpYnhtbF94cGF0aENhbGxiYWNrc05iOyBpKyspIHsKKwkJCWlmICgoY3R4dCA9PSAoKmxpYnhtbF94cGF0aENhbGxiYWNrcylbaV0uY3R4KSAmJgorCQkJCQkoeG1sU3RyRXF1YWwobmFtZSwgKCpsaWJ4bWxfeHBhdGhDYWxsYmFja3MpW2ldLm5hbWUpKSAmJgorCQkJCQkoeG1sU3RyRXF1YWwobnNfdXJpLCAoKmxpYnhtbF94cGF0aENhbGxiYWNrcylbaV0ubnNfdXJpKSkpIHsKKyAgICAgICAgICAgIHJldHVybiAobGlieG1sX3htbFhQYXRoRnVuY0NhbGxiYWNrKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKE5VTEwpOworfQorCitzdGF0aWMgdm9pZAorbGlieG1sX3hwYXRoQ2FsbGJhY2tzSW5pdGlhbGl6ZSh2b2lkKQoreworICAgIGludCBpOworCisgICAgaWYgKGxpYnhtbF94cGF0aENhbGxiYWNrc0luaXRpYWxpemVkICE9IDApCisgICAgICAgIHJldHVybjsKKworI2lmZGVmIERFQlVHX1hQQVRICisgICAgcHJpbnRmKCJsaWJ4bWxfeHBhdGhDYWxsYmFja3NJbml0aWFsaXplZCBjYWxsZWRcbiIpOworI2VuZGlmCisgICAgbGlieG1sX3hwYXRoQ2FsbGJhY2tzID0gKGxpYnhtbF94cGF0aENhbGxiYWNrQXJyYXkqKXhtbE1hbGxvYygKKyAgICAJCWxpYnhtbF94cGF0aENhbGxiYWNrc0FsbG9jZCpzaXplb2YobGlieG1sX3hwYXRoQ2FsbGJhY2spKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBsaWJ4bWxfeHBhdGhDYWxsYmFja3NBbGxvY2Q7IGkrKykgeworCQkJKCpsaWJ4bWxfeHBhdGhDYWxsYmFja3MpW2ldLmN0eCA9IE5VTEw7CisJCQkoKmxpYnhtbF94cGF0aENhbGxiYWNrcylbaV0ubmFtZSA9IE5VTEw7CisJCQkoKmxpYnhtbF94cGF0aENhbGxiYWNrcylbaV0ubnNfdXJpID0gTlVMTDsKKwkJCSgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5mdW5jdGlvbiA9IE5VTEw7CisgICAgfQorICAgIGxpYnhtbF94cGF0aENhbGxiYWNrc0luaXRpYWxpemVkID0gMTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbFJlZ2lzdGVyWFBhdGhGdW5jdGlvbihBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKiBhcmdzKQoreworICAgIFB5T2JqZWN0ICpweV9yZXR2YWw7CisgICAgaW50IGNfcmV0dmFsID0gMDsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKm5zX3VyaTsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4OworICAgIFB5T2JqZWN0ICpweW9ial9jdHg7CisgICAgUHlPYmplY3QgKnB5b2JqX2Y7CisgICAgaW50IGk7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUKKyAgICAgICAgKGFyZ3MsIChjaGFyICopICJPc3pPOnJlZ2lzdGVyWFBhdGhGdW5jdGlvbiIsICZweW9ial9jdHgsICZuYW1lLAorICAgICAgICAgJm5zX3VyaSwgJnB5b2JqX2YpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgY3R4ID0gKHhtbFhQYXRoQ29udGV4dFB0cikgUHl4bWxYUGF0aENvbnRleHRfR2V0KHB5b2JqX2N0eCk7CisgICAgaWYgKGxpYnhtbF94cGF0aENhbGxiYWNrc0luaXRpYWxpemVkID09IDApCisgICAgICAgIGxpYnhtbF94cGF0aENhbGxiYWNrc0luaXRpYWxpemUoKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cChjdHgsIGxpYnhtbF94bWxYUGF0aEZ1bmNMb29rdXBGdW5jLCBjdHgpOworCisgICAgaWYgKChweW9ial9jdHggPT0gTlVMTCkgfHwgKG5hbWUgPT0gTlVMTCkgfHwgKHB5b2JqX2YgPT0gTlVMTCkpIHsKKyAgICAgICAgcHlfcmV0dmFsID0gbGlieG1sX2ludFdyYXAoLTEpOworICAgICAgICByZXR1cm4gKHB5X3JldHZhbCk7CisgICAgfQorI2lmZGVmIERFQlVHX1hQQVRICisgICAgcHJpbnRmKCJsaWJ4bWxfcmVnaXN0ZXJYUGF0aEZ1bmN0aW9uKCVwLCAlcywgJXMpIGNhbGxlZFxuIiwKKyAgICAgICAgICAgY3R4LCBuYW1lLCBuc191cmkpOworI2VuZGlmCisgICAgZm9yIChpID0gMDsgaSA8IGxpYnhtbF94cGF0aENhbGxiYWNrc05iOyBpKyspIHsKKwlpZiAoKGN0eCA9PSAoKmxpYnhtbF94cGF0aENhbGxiYWNrcylbaV0uY3R4KSAmJgorICAgICAgICAgICAgKHhtbFN0ckVxdWFsKG5hbWUsICgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5uYW1lKSkgJiYKKyAgICAgICAgICAgICh4bWxTdHJFcXVhbChuc191cmksICgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5uc191cmkpKSkgeworICAgICAgICAgICAgUHlfWElOQ1JFRihweW9ial9mKTsKKyAgICAgICAgICAgIFB5X1hERUNSRUYoKCpsaWJ4bWxfeHBhdGhDYWxsYmFja3MpW2ldLmZ1bmN0aW9uKTsKKyAgICAgICAgICAgICgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5mdW5jdGlvbiA9IHB5b2JqX2Y7CisgICAgICAgICAgICBjX3JldHZhbCA9IDE7CisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGxpYnhtbF94cGF0aENhbGxiYWNrc05iID49IGxpYnhtbF94cGF0aENhbGxiYWNrc0FsbG9jZCkgeworCQkJbGlieG1sX3hwYXRoQ2FsbGJhY2tzQWxsb2NkKz0xMDsKKwlsaWJ4bWxfeHBhdGhDYWxsYmFja3MgPSAobGlieG1sX3hwYXRoQ2FsbGJhY2tBcnJheSopeG1sUmVhbGxvYygKKwkJbGlieG1sX3hwYXRoQ2FsbGJhY2tzLAorCQlsaWJ4bWxfeHBhdGhDYWxsYmFja3NBbGxvY2Qqc2l6ZW9mKGxpYnhtbF94cGF0aENhbGxiYWNrKSk7CisgICAgfSAKKyAgICBpID0gbGlieG1sX3hwYXRoQ2FsbGJhY2tzTmIrKzsKKyAgICBQeV9YSU5DUkVGKHB5b2JqX2YpOworICAgICgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5jdHggPSBjdHg7CisgICAgKCpsaWJ4bWxfeHBhdGhDYWxsYmFja3MpW2ldLm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisgICAgKCpsaWJ4bWxfeHBhdGhDYWxsYmFja3MpW2ldLm5zX3VyaSA9IHhtbFN0cmR1cChuc191cmkpOworICAgICgqbGlieG1sX3hwYXRoQ2FsbGJhY2tzKVtpXS5mdW5jdGlvbiA9IHB5b2JqX2Y7CisgICAgICAgIGNfcmV0dmFsID0gMTsKKyAgICAKKyAgZG9uZToKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgoaW50KSBjX3JldHZhbCk7CisgICAgcmV0dXJuIChweV9yZXR2YWwpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJR2xvYmFsIHByb3BlcnRpZXMgYWNjZXNzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF9uYW1lKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdG9iaiwgKm9iajsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICBjb25zdCB4bWxDaGFyICpyZXM7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikgIk86bmFtZSIsICZvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBjdXIgPSBQeXhtbE5vZGVfR2V0KG9iaik7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX25hbWU6IGN1ciA9ICVwIHR5cGUgJWRcbiIsIGN1ciwgY3VyLT50eXBlKTsKKyNlbmRpZgorCisgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisgICAgICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6eworICAgICAgICAgICAgICAgIHhtbERvY1B0ciBkb2MgPSAoeG1sRG9jUHRyKSBjdXI7CisKKyAgICAgICAgICAgICAgICByZXMgPSBkb2MtPlVSTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6eworICAgICAgICAgICAgICAgIHhtbEF0dHJQdHIgYXR0ciA9ICh4bWxBdHRyUHRyKSBjdXI7CisKKyAgICAgICAgICAgICAgICByZXMgPSBhdHRyLT5uYW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDp7CisgICAgICAgICAgICAgICAgeG1sTnNQdHIgbnMgPSAoeG1sTnNQdHIpIGN1cjsKKworICAgICAgICAgICAgICAgIHJlcyA9IG5zLT5wcmVmaXg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXMgPSBjdXItPm5hbWU7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmVzdWx0b2JqID0gbGlieG1sX2NvbnN0eG1sQ2hhclB0cldyYXAocmVzKTsKKworICAgIHJldHVybiByZXN1bHRvYmo7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfZG9jKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdG9iaiwgKm9iajsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxEb2NQdHIgcmVzOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopICJPOmRvYyIsICZvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBjdXIgPSBQeXhtbE5vZGVfR2V0KG9iaik7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX2RvYzogY3VyID0gJXBcbiIsIGN1cik7CisjZW5kaWYKKworICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgcmVzID0gTlVMTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERTp7CisgICAgICAgICAgICAgICAgeG1sQXR0clB0ciBhdHRyID0gKHhtbEF0dHJQdHIpIGN1cjsKKworICAgICAgICAgICAgICAgIHJlcyA9IGF0dHItPmRvYzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisgICAgICAgICAgICByZXMgPSBOVUxMOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXMgPSBjdXItPmRvYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXN1bHRvYmogPSBsaWJ4bWxfeG1sRG9jUHRyV3JhcChyZXMpOworICAgIHJldHVybiByZXN1bHRvYmo7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfcHJvcGVydGllcyhBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwgUHlPYmplY3QgKiBhcmdzKQoreworICAgIFB5T2JqZWN0ICpyZXN1bHRvYmosICpvYmo7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgeG1sQXR0clB0ciByZXM7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikgIk86cHJvcGVydGllcyIsICZvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBjdXIgPSBQeXhtbE5vZGVfR2V0KG9iaik7CisgICAgaWYgKChjdXIgIT0gTlVMTCkgJiYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSkKKyAgICAgICAgcmVzID0gY3VyLT5wcm9wZXJ0aWVzOworICAgIGVsc2UKKyAgICAgICAgcmVzID0gTlVMTDsKKyAgICByZXN1bHRvYmogPSBsaWJ4bWxfeG1sQXR0clB0cldyYXAocmVzKTsKKyAgICByZXR1cm4gcmVzdWx0b2JqOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX25leHQoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0b2JqLCAqb2JqOworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIHhtbE5vZGVQdHIgcmVzOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopICJPOm5leHQiLCAmb2JqKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgY3VyID0gUHl4bWxOb2RlX0dldChvYmopOworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF9uZXh0OiBjdXIgPSAlcFxuIiwgY3VyKTsKKyNlbmRpZgorCisgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisgICAgICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgICAgICByZXMgPSBOVUxMOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOnsKKyAgICAgICAgICAgICAgICB4bWxBdHRyUHRyIGF0dHIgPSAoeG1sQXR0clB0cikgY3VyOworCisgICAgICAgICAgICAgICAgcmVzID0gKHhtbE5vZGVQdHIpIGF0dHItPm5leHQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOnsKKyAgICAgICAgICAgICAgICB4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgY3VyOworCisgICAgICAgICAgICAgICAgcmVzID0gKHhtbE5vZGVQdHIpIG5zLT5uZXh0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzID0gY3VyLT5uZXh0OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICB9CisgICAgcmVzdWx0b2JqID0gbGlieG1sX3htbE5vZGVQdHJXcmFwKHJlcyk7CisgICAgcmV0dXJuIHJlc3VsdG9iajsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF9wcmV2KEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdG9iaiwgKm9iajsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxOb2RlUHRyIHJlczsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSAiTzpwcmV2IiwgJm9iaikpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGN1ciA9IFB5eG1sTm9kZV9HZXQob2JqKTsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfcHJldjogY3VyID0gJXBcbiIsIGN1cik7CisjZW5kaWYKKworICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgcmVzID0gTlVMTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERTp7CisgICAgICAgICAgICAgICAgeG1sQXR0clB0ciBhdHRyID0gKHhtbEF0dHJQdHIpIGN1cjsKKworICAgICAgICAgICAgICAgIHJlcyA9ICh4bWxOb2RlUHRyKSBhdHRyLT5wcmV2OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorICAgICAgICAgICAgcmVzID0gTlVMTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzID0gY3VyLT5wcmV2OworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJlc3VsdG9iaiA9IGxpYnhtbF94bWxOb2RlUHRyV3JhcChyZXMpOworICAgIHJldHVybiByZXN1bHRvYmo7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfY2hpbGRyZW4oQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0b2JqLCAqb2JqOworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIHhtbE5vZGVQdHIgcmVzOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopICJPOmNoaWxkcmVuIiwgJm9iaikpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGN1ciA9IFB5eG1sTm9kZV9HZXQob2JqKTsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfY2hpbGRyZW46IGN1ciA9ICVwXG4iLCBjdXIpOworI2VuZGlmCisKKyAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisgICAgICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICAgICAgcmVzID0gY3VyLT5jaGlsZHJlbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERTp7CisgICAgICAgICAgICAgICAgeG1sQXR0clB0ciBhdHRyID0gKHhtbEF0dHJQdHIpIGN1cjsKKworICAgICAgICAgICAgICAgIHJlcyA9IGF0dHItPmNoaWxkcmVuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzID0gTlVMTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXN1bHRvYmogPSBsaWJ4bWxfeG1sTm9kZVB0cldyYXAocmVzKTsKKyAgICByZXR1cm4gcmVzdWx0b2JqOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX2xhc3QoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0b2JqLCAqb2JqOworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIHhtbE5vZGVQdHIgcmVzOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopICJPOmxhc3QiLCAmb2JqKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgY3VyID0gUHl4bWxOb2RlX0dldChvYmopOworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF9sYXN0OiBjdXIgPSAlcFxuIiwgY3VyKTsKKyNlbmRpZgorCisgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgICAgIHJlcyA9IGN1ci0+bGFzdDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERTp7CisgICAgICAgICAgICAgICAgeG1sQXR0clB0ciBhdHRyID0gKHhtbEF0dHJQdHIpIGN1cjsKKworICAgICAgICAgICAgICAgIHJlcyA9IGF0dHItPmxhc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXMgPSBOVUxMOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJlc3VsdG9iaiA9IGxpYnhtbF94bWxOb2RlUHRyV3JhcChyZXMpOworICAgIHJldHVybiByZXN1bHRvYmo7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfcGFyZW50KEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdG9iaiwgKm9iajsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxOb2RlUHRyIHJlczsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSAiTzpwYXJlbnQiLCAmb2JqKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgY3VyID0gUHl4bWxOb2RlX0dldChvYmopOworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF9wYXJlbnQ6IGN1ciA9ICVwXG4iLCBjdXIpOworI2VuZGlmCisKKyAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKyAgICAgICAgICAgIHJlcyA9IE5VTEw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6eworICAgICAgICAgICAgICAgIHhtbEF0dHJQdHIgYXR0ciA9ICh4bWxBdHRyUHRyKSBjdXI7CisKKyAgICAgICAgICAgICAgICByZXMgPSBhdHRyLT5wYXJlbnQ7CisgICAgICAgICAgICB9CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisgICAgICAgICAgICByZXMgPSBOVUxMOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXMgPSBjdXItPnBhcmVudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXN1bHRvYmogPSBsaWJ4bWxfeG1sTm9kZVB0cldyYXAocmVzKTsKKyAgICByZXR1cm4gcmVzdWx0b2JqOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX3R5cGUoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0b2JqLCAqb2JqOworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGNvbnN0IHhtbENoYXIgKnJlcyA9IE5VTEw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikgIk86bGFzdCIsICZvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBjdXIgPSBQeXhtbE5vZGVfR2V0KG9iaik7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3R5cGU6IGN1ciA9ICVwXG4iLCBjdXIpOworI2VuZGlmCisKKyAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAiZWxlbWVudCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAiYXR0cmlidXRlIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAidGV4dCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgcmVzID0gKGNvbnN0IHhtbENoYXIgKikgImNkYXRhIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAiZW50aXR5X3JlZiI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAiZW50aXR5IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICAgICAgcmVzID0gKGNvbnN0IHhtbENoYXIgKikgInBpIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAiY29tbWVudCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJkb2N1bWVudF94bWwiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJkb2N0eXBlIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAiZnJhZ21lbnQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAibm90YXRpb24iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJkb2N1bWVudF9odG1sIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJkdGQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJlbGVtX2RlY2wiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorICAgICAgICAgICAgcmVzID0gKGNvbnN0IHhtbENoYXIgKikgImF0dHJpYnV0ZV9kZWNsIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJlbnRpdHlfZGVjbCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisgICAgICAgICAgICByZXMgPSAoY29uc3QgeG1sQ2hhciAqKSAibmFtZXNwYWNlIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJ4aW5jbHVkZV9zdGFydCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorICAgICAgICAgICAgcmVzID0gKGNvbnN0IHhtbENoYXIgKikgInhpbmNsdWRlX2VuZCI7CisgICAgICAgICAgICBicmVhazsKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisgICAgICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJlcyA9IChjb25zdCB4bWxDaGFyICopICJkb2N1bWVudF9kb2Nib29rIjsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQorI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfdHlwZTogY3VyID0gJXA6ICVzXG4iLCBjdXIsIHJlcyk7CisjZW5kaWYKKworICAgIHJlc3VsdG9iaiA9IGxpYnhtbF9jb25zdHhtbENoYXJQdHJXcmFwKHJlcyk7CisgICAgcmV0dXJuIHJlc3VsdG9iajsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVNwZWNpZmljIGFjY2Vzc29yIGZ1bmN0aW9ucwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxOb2RlR2V0TnNEZWZzKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbDsKKyAgICB4bWxOc1B0ciBjX3JldHZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgUHlPYmplY3QgKnB5b2JqX25vZGU7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUKKyAgICAgICAgKGFyZ3MsIChjaGFyICopICJPOnhtbE5vZGVHZXROc0RlZnMiLCAmcHlvYmpfbm9kZSkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgbm9kZSA9ICh4bWxOb2RlUHRyKSBQeXhtbE5vZGVfR2V0KHB5b2JqX25vZGUpOworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgY19yZXR2YWwgPSBub2RlLT5uc0RlZjsKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfeG1sTnNQdHJXcmFwKCh4bWxOc1B0cikgY19yZXR2YWwpOworICAgIHJldHVybiAocHlfcmV0dmFsKTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbE5vZGVSZW1vdmVOc0RlZihBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwgUHlPYmplY3QgKiBhcmdzKQoreworICAgIFB5T2JqZWN0ICpweV9yZXR2YWw7CisgICAgeG1sTnNQdHIgbnMsIHByZXY7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIFB5T2JqZWN0ICpweW9ial9ub2RlOworICAgIHhtbENoYXIgKmhyZWY7CisgICAgeG1sTnNQdHIgY19yZXR2YWw7CisgICAgCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlCisgICAgICAgIChhcmdzLCAoY2hhciAqKSAiT3o6eG1sTm9kZVJlbW92ZU5zRGVmIiwgJnB5b2JqX25vZGUsICZocmVmKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBub2RlID0gKHhtbE5vZGVQdHIpIFB5eG1sTm9kZV9HZXQocHlvYmpfbm9kZSk7CisgICAgbnMgPSBOVUxMOworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisKKyAgICBpZiAoaHJlZiA9PSBOVUxMKSB7CisJbnMgPSBub2RlLT5uc0RlZjsKKwlub2RlLT5uc0RlZiA9IE5VTEw7CisJY19yZXR2YWwgPSAwOworICAgIH0KKyAgICBlbHNlIHsKKwlwcmV2ID0gTlVMTDsKKwlucyA9IG5vZGUtPm5zRGVmOworCXdoaWxlIChucyAhPSBOVUxMKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChucy0+aHJlZiwgaHJlZikpIHsKKwkJaWYgKHByZXYgIT0gTlVMTCkKKwkJICAgIHByZXYtPm5leHQgPSBucy0+bmV4dDsKKwkJZWxzZQorCQkgICAgbm9kZS0+bnNEZWYgPSBucy0+bmV4dDsKKwkJbnMtPm5leHQgPSBOVUxMOworCQljX3JldHZhbCA9IDA7CisJCWJyZWFrOworCSAgICB9CisJICAgIHByZXYgPSBuczsKKwkgICAgbnMgPSBucy0+bmV4dDsKKwl9CisgICAgfQorCisgICAgY19yZXR2YWwgPSBuczsKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfeG1sTnNQdHJXcmFwKCh4bWxOc1B0cikgY19yZXR2YWwpOworICAgIHJldHVybiAocHlfcmV0dmFsKTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbE5vZGVHZXROcyhBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwgUHlPYmplY3QgKiBhcmdzKQoreworICAgIFB5T2JqZWN0ICpweV9yZXR2YWw7CisgICAgeG1sTnNQdHIgY19yZXR2YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIFB5T2JqZWN0ICpweW9ial9ub2RlOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopICJPOnhtbE5vZGVHZXROcyIsICZweW9ial9ub2RlKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBub2RlID0gKHhtbE5vZGVQdHIpIFB5eG1sTm9kZV9HZXQocHlvYmpfbm9kZSk7CisKKyAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwKKyAgICAgICAgKChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisJIChub2RlLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkpKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgY19yZXR2YWwgPSBub2RlLT5uczsKKyAgICBweV9yZXR2YWwgPSBsaWJ4bWxfeG1sTnNQdHJXcmFwKCh4bWxOc1B0cikgY19yZXR2YWwpOworICAgIHJldHVybiAocHlfcmV0dmFsKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVNlcmlhbGl6YXRpb24gZnJvbnQtZW5kCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF9zZXJpYWxpemVOb2RlKEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLCBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnB5X3JldHZhbCA9IE5VTEw7CisgICAgeG1sQ2hhciAqY19yZXR2YWw7CisgICAgUHlPYmplY3QgKnB5b2JqX25vZGU7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIHhtbERvY1B0ciBkb2M7CisgICAgY29uc3QgY2hhciAqZW5jb2Rpbmc7CisgICAgaW50IGZvcm1hdDsKKyAgICBpbnQgbGVuOworICAgIHhtbFNhdmVDdHh0UHRyIGN0eHQ7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsKKyAgICBpbnQgb3B0aW9ucyA9IDA7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikgIk96aTpzZXJpYWxpemVOb2RlIiwgJnB5b2JqX25vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZlbmNvZGluZywgJmZvcm1hdCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgbm9kZSA9ICh4bWxOb2RlUHRyKSBQeXhtbE5vZGVfR2V0KHB5b2JqX25vZGUpOworCisgICAgaWYgKG5vZGUgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIGlmIChub2RlLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB7CisgICAgICAgIGRvYyA9ICh4bWxEb2NQdHIpIG5vZGU7CisJbm9kZSA9IE5VTEw7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgIH0gZWxzZSBpZiAobm9kZS0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSB7CisgICAgICAgIGRvYyA9ICh4bWxEb2NQdHIpIG5vZGU7CisJbm9kZSA9IE5VTEw7CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpCisJICAgIGRvYyA9IE5VTEw7CisJZWxzZQorICAgICAgICAgICAgZG9jID0gbm9kZS0+ZG9jOworICAgICAgICBpZiAoKGRvYyA9PSBOVUxMKSB8fCAoZG9jLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSkgeworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICAgICAgfSBlbHNlIGlmIChkb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworI2VuZGlmIC8qIExJQlhNTF9IVE1MX0VOQUJMRUQgKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGJ1ZiA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworCVB5X0lOQ1JFRihQeV9Ob25lKTsKKwlyZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICBpZiAoZm9ybWF0KSBvcHRpb25zIHw9IFhNTF9TQVZFX0ZPUk1BVDsKKyAgICBjdHh0ID0geG1sU2F2ZVRvQnVmZmVyKGJ1ZiwgZW5jb2RpbmcsIG9wdGlvbnMpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwl4bWxCdWZmZXJGcmVlKGJ1Zik7CisJUHlfSU5DUkVGKFB5X05vbmUpOworCXJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIGlmIChub2RlID09IE5VTEwpCisJeG1sU2F2ZURvYyhjdHh0LCBkb2MpOworICAgIGVsc2UKKwl4bWxTYXZlVHJlZShjdHh0LCBub2RlKTsKKyAgICB4bWxTYXZlQ2xvc2UoY3R4dCk7CisKKyAgICBjX3JldHZhbCA9IGJ1Zi0+Y29udGVudDsKKyAgICBidWYtPmNvbnRlbnQgPSBOVUxMOworCisgICAgeG1sQnVmZmVyRnJlZShidWYpOworICAgIHB5X3JldHZhbCA9IGxpYnhtbF9jaGFyUHRyV3JhcCgoY2hhciAqKSBjX3JldHZhbCk7CisKKyAgICByZXR1cm4gKHB5X3JldHZhbCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfc2F2ZU5vZGVUbyhBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwgUHlPYmplY3QgKiBhcmdzKQoreworICAgIFB5T2JqZWN0ICpweV9maWxlID0gTlVMTDsKKyAgICBGSUxFICpvdXRwdXQ7CisgICAgUHlPYmplY3QgKnB5b2JqX25vZGU7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIHhtbERvY1B0ciBkb2M7CisgICAgY29uc3QgY2hhciAqZW5jb2Rpbmc7CisgICAgaW50IGZvcm1hdDsKKyAgICBpbnQgbGVuOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyID0gTlVMTDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSAiT096aTpzZXJpYWxpemVOb2RlIiwgJnB5b2JqX25vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZweV9maWxlLCAmZW5jb2RpbmcsICZmb3JtYXQpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIG5vZGUgPSAoeG1sTm9kZVB0cikgUHl4bWxOb2RlX0dldChweW9ial9ub2RlKTsKKworICAgIGlmIChub2RlID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIChQeUludF9Gcm9tTG9uZygobG9uZykgLTEpKTsKKyAgICB9CisgICAgaWYgKChweV9maWxlID09IE5VTEwpIHx8ICghKFB5RmlsZV9DaGVjayhweV9maWxlKSkpKSB7CisgICAgICAgIHJldHVybiAoUHlJbnRfRnJvbUxvbmcoKGxvbmcpIC0xKSk7CisgICAgfQorICAgIG91dHB1dCA9IFB5RmlsZV9Bc0ZpbGUocHlfZmlsZSk7CisgICAgaWYgKG91dHB1dCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoUHlJbnRfRnJvbUxvbmcoKGxvbmcpIC0xKSk7CisgICAgfQorCisgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHsKKyAgICAgICAgZG9jID0gKHhtbERvY1B0cikgbm9kZTsKKyAgICB9IGVsc2UgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworICAgICAgICBkb2MgPSAoeG1sRG9jUHRyKSBub2RlOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvYyA9IG5vZGUtPmRvYzsKKyAgICB9CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgIGlmIChkb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworICAgICAgICBpZiAoZW5jb2RpbmcgPT0gTlVMTCkKKyAgICAgICAgICAgIGVuY29kaW5nID0gKGNvbnN0IGNoYXIgKikgaHRtbEdldE1ldGFFbmNvZGluZyhkb2MpOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfSFRNTF9FTkFCTEVEICovCisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKyAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuY29kaW5nKTsKKyAgICAgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIChQeUludF9Gcm9tTG9uZygobG9uZykgLTEpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZG9jLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpIHsKKyAgICAgICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkKKyAgICAgICAgICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcigiSFRNTCIpOworICAgICAgICBpZiAoaGFuZGxlciA9PSBOVUxMKQorICAgICAgICAgICAgaGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCJhc2NpaSIpOworICAgIH0KKworICAgIGJ1ZiA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUob3V0cHV0LCBoYW5kbGVyKTsKKyAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgeworICAgICAgICBsZW4gPSB4bWxTYXZlRm9ybWF0RmlsZVRvKGJ1ZiwgZG9jLCBlbmNvZGluZywgZm9ybWF0KTsKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgfSBlbHNlIGlmIChub2RlLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpIHsKKyAgICAgICAgaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0KGJ1ZiwgZG9jLCBlbmNvZGluZywgZm9ybWF0KTsKKyAgICAgICAgbGVuID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICB9IGVsc2UgaWYgKGRvYy0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSB7CisgICAgICAgIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dChidWYsIGRvYywgbm9kZSwgZW5jb2RpbmcsIGZvcm1hdCk7CisgICAgICAgIGxlbiA9IHhtbE91dHB1dEJ1ZmZlckNsb3NlKGJ1Zik7CisjZW5kaWYgLyogTElCWE1MX0hUTUxfRU5BQkxFRCAqLworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbE5vZGVEdW1wT3V0cHV0KGJ1ZiwgZG9jLCBub2RlLCAwLCBmb3JtYXQsIGVuY29kaW5nKTsKKyAgICAgICAgbGVuID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICB9CisgICAgcmV0dXJuIChQeUludF9Gcm9tTG9uZygobG9uZykgbGVuKSk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlFeHRyYSBzdHVmZgkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworUHlPYmplY3QgKgorbGlieG1sX3htbE5ld05vZGUoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsOworICAgIHhtbENoYXIgKm5hbWU7CisgICAgeG1sTm9kZVB0ciBub2RlOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopICJzOnhtbE5ld05vZGUiLCAmbmFtZSkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgbm9kZSA9ICh4bWxOb2RlUHRyKSB4bWxOZXdOb2RlKE5VTEwsIG5hbWUpOworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJOZXdOb2RlOiAlcyA6ICVwXG4iLCBuYW1lLCAodm9pZCAqKSBub2RlKTsKKyNlbmRpZgorCisgICAgaWYgKG5vZGUgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIHB5X3JldHZhbCA9IGxpYnhtbF94bWxOb2RlUHRyV3JhcChub2RlKTsKKyAgICByZXR1cm4gKHB5X3JldHZhbCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUxvY2FsIENhdGFsb2cgc3R1ZmYJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF9hZGRMb2NhbENhdGFsb2coQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICB4bWxDaGFyICpVUkw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIFB5T2JqZWN0ICpweW9ial9jdHh0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopIk9zOmFkZExvY2FsQ2F0YWxvZyIsICZweW9ial9jdHh0LCAmVVJMKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBQeXBhcnNlckN0eHRfR2V0KHB5b2JqX2N0eHQpOworCisgICAgaWYgKFVSTCAhPSBOVUxMKSB7CisJY3R4dC0+Y2F0YWxvZ3MgPSB4bWxDYXRhbG9nQWRkTG9jYWwoY3R4dC0+Y2F0YWxvZ3MsIFVSTCk7CisgICAgfQorCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoIkxvY2FsQ2F0YWxvZzogJXNcbiIsIFVSTCk7CisjZW5kaWYKKworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm4gKFB5X05vbmUpOworfQorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiBSZWxheE5HIGVycm9yIGhhbmRsZXIgcmVnaXN0cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0eXBlZGVmIHN0cnVjdCAKK3sKKyAgICBQeU9iamVjdCAqd2FybjsKKyAgICBQeU9iamVjdCAqZXJyb3I7CisgICAgUHlPYmplY3QgKmFyZzsKK30geG1sUmVsYXhOR1ZhbGlkQ3R4dFB5Q3R4dDsKK3R5cGVkZWYgeG1sUmVsYXhOR1ZhbGlkQ3R4dFB5Q3R4dCAqeG1sUmVsYXhOR1ZhbGlkQ3R4dFB5Q3R4dFB0cjsKKworc3RhdGljIHZvaWQKK2xpYnhtbF94bWxSZWxheE5HVmFsaWRpdHlHZW5lcmljRXJyb3JGdW5jSGFuZGxlcih2b2lkICpjdHgsIGNoYXIgKnN0cikgCit7CisgICAgUHlPYmplY3QgKmxpc3Q7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKyAgICAKKyNpZmRlZiBERUJVR19FUlJPUgorICAgIHByaW50ZigibGlieG1sX3htbFJlbGF4TkdWYWxpZGl0eUdlbmVyaWNFcnJvckZ1bmNIYW5kbGVyKCVwLCAlcywgLi4uKSBjYWxsZWRcbiIsIGN0eCwgc3RyKTsKKyNlbmRpZgorCisgICAgcHlDdHh0ID0gKHhtbFJlbGF4TkdWYWxpZEN0eHRQeUN0eHRQdHIpY3R4OworCisgICAgbGlzdCA9IFB5VHVwbGVfTmV3KDIpOworICAgIFB5VHVwbGVfU2V0SXRlbShsaXN0LCAwLCBsaWJ4bWxfY2hhclB0cldyYXAoc3RyKSk7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDEsIHB5Q3R4dC0+YXJnKTsKKyAgICBQeV9YSU5DUkVGKHB5Q3R4dC0+YXJnKTsKKyAgICByZXN1bHQgPSBQeUV2YWxfQ2FsbE9iamVjdChweUN0eHQtPmVycm9yLCBsaXN0KTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIAorICAgIHsKKyAgICAgICAgLyogVE9ETzogbWFuYWdlIGZvciB0aGUgZXhjZXB0aW9uIHRvIGJlIHByb3BhZ2F0ZWQuLi4gKi8KKyAgICAgICAgUHlFcnJfUHJpbnQoKTsKKyAgICB9CisgICAgUHlfWERFQ1JFRihsaXN0KTsKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7Cit9CisKK3N0YXRpYyB2b2lkCitsaWJ4bWxfeG1sUmVsYXhOR1ZhbGlkaXR5R2VuZXJpY1dhcm5pbmdGdW5jSGFuZGxlcih2b2lkICpjdHgsIGNoYXIgKnN0cikgCit7CisgICAgUHlPYmplY3QgKmxpc3Q7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKyAgICAKKyNpZmRlZiBERUJVR19FUlJPUgorICAgIHByaW50ZigibGlieG1sX3htbFJlbGF4TkdWYWxpZGl0eUdlbmVyaWNXYXJuaW5nRnVuY0hhbmRsZXIoJXAsICVzLCAuLi4pIGNhbGxlZFxuIiwgY3R4LCBzdHIpOworI2VuZGlmCisKKyAgICBweUN0eHQgPSAoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB5Q3R4dFB0ciljdHg7CisKKyAgICBsaXN0ID0gUHlUdXBsZV9OZXcoMik7CisgICAgUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDAsIGxpYnhtbF9jaGFyUHRyV3JhcChzdHIpKTsKKyAgICBQeVR1cGxlX1NldEl0ZW0obGlzdCwgMSwgcHlDdHh0LT5hcmcpOworICAgIFB5X1hJTkNSRUYocHlDdHh0LT5hcmcpOworICAgIHJlc3VsdCA9IFB5RXZhbF9DYWxsT2JqZWN0KHB5Q3R4dC0+d2FybiwgbGlzdCk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSAKKyAgICB7CisgICAgICAgIC8qIFRPRE86IG1hbmFnZSBmb3IgdGhlIGV4Y2VwdGlvbiB0byBiZSBwcm9wYWdhdGVkLi4uICovCisgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgfQorICAgIFB5X1hERUNSRUYobGlzdCk7CisgICAgUHlfWERFQ1JFRihyZXN1bHQpOworfQorCitzdGF0aWMgdm9pZAorbGlieG1sX3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyh2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgbXNnKTsKKyAgICBsaWJ4bWxfeG1sUmVsYXhOR1ZhbGlkaXR5R2VuZXJpY0Vycm9yRnVuY0hhbmRsZXIoY3R4LCBsaWJ4bWxfYnVpbGRNZXNzYWdlKG1zZywgYXApKTsKKyAgICB2YV9lbmQoYXApOworfQorCitzdGF0aWMgdm9pZAorbGlieG1sX3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcDsKKworICAgIHZhX3N0YXJ0KGFwLCBtc2cpOworICAgIGxpYnhtbF94bWxSZWxheE5HVmFsaWRpdHlHZW5lcmljV2FybmluZ0Z1bmNIYW5kbGVyKGN0eCwgbGlieG1sX2J1aWxkTWVzc2FnZShtc2csIGFwKSk7CisgICAgdmFfZW5kKGFwKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsOworICAgIFB5T2JqZWN0ICpweW9ial9lcnJvcjsKKyAgICBQeU9iamVjdCAqcHlvYmpfd2FybjsKKyAgICBQeU9iamVjdCAqcHlvYmpfY3R4OworICAgIFB5T2JqZWN0ICpweW9ial9hcmcgPSBQeV9Ob25lOworICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dDsKKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZQorICAgICAgICAoYXJncywgKGNoYXIgKikgIk9PT3xPOnhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyIsICZweW9ial9jdHgsICZweW9ial9lcnJvciwgJnB5b2JqX3dhcm4sICZweW9ial9hcmcpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisjaWZkZWYgREVCVUdfRVJST1IKKyAgICBwcmludGYoImxpYnhtbF94bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoJXAsICVwLCAlcCkgY2FsbGVkXG4iLCBweW9ial9jdHgsIHB5b2JqX2Vycm9yLCBweW9ial93YXJuKTsKKyNlbmRpZgorCisgICAgY3R4dCA9IFB5cmVsYXhOZ1ZhbGlkQ3R4dF9HZXQocHlvYmpfY3R4KTsKKyAgICBpZiAoeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzKGN0eHQsIE5VTEwsIE5VTEwsICh2b2lkICoqKSAmcHlDdHh0KSA9PSAtMSkKKyAgICB7CisgICAgICAgIHB5X3JldHZhbCA9IGxpYnhtbF9pbnRXcmFwKC0xKTsKKyAgICAgICAgcmV0dXJuKHB5X3JldHZhbCk7CisgICAgfQorICAgIAorICAgIGlmIChweUN0eHQgPT0gTlVMTCkKKyAgICB7CisgICAgICAgIC8qIGZpcnN0IHRpbWUgdG8gc2V0IHRoZSBlcnJvciBoYW5kbGVycyAqLworICAgICAgICBweUN0eHQgPSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlbGF4TkdWYWxpZEN0eHRQeUN0eHQpKTsKKyAgICAgICAgaWYgKHB5Q3R4dCA9PSBOVUxMKSB7CisgICAgICAgICAgICBweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgtMSk7CisgICAgICAgICAgICByZXR1cm4ocHlfcmV0dmFsKTsKKyAgICAgICAgfQorICAgICAgICBtZW1zZXQocHlDdHh0LCAwLCBzaXplb2YoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB5Q3R4dCkpOworICAgIH0KKyAgICAKKyAgICAvKiBUT0RPOiBjaGVjayB3YXJuIGFuZCBlcnJvciBpcyBhIGZ1bmN0aW9uICEgKi8KKyAgICBQeV9YREVDUkVGKHB5Q3R4dC0+ZXJyb3IpOworICAgIFB5X1hJTkNSRUYocHlvYmpfZXJyb3IpOworICAgIHB5Q3R4dC0+ZXJyb3IgPSBweW9ial9lcnJvcjsKKyAgICAKKyAgICBQeV9YREVDUkVGKHB5Q3R4dC0+d2Fybik7CisgICAgUHlfWElOQ1JFRihweW9ial93YXJuKTsKKyAgICBweUN0eHQtPndhcm4gPSBweW9ial93YXJuOworICAgIAorICAgIFB5X1hERUNSRUYocHlDdHh0LT5hcmcpOworICAgIFB5X1hJTkNSRUYocHlvYmpfYXJnKTsKKyAgICBweUN0eHQtPmFyZyA9IHB5b2JqX2FyZzsKKworICAgIHhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyhjdHh0LCAmbGlieG1sX3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYywgJmxpYnhtbF94bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYywgcHlDdHh0KTsKKworICAgIHB5X3JldHZhbCA9IGxpYnhtbF9pbnRXcmFwKDEpOworICAgIHJldHVybiAocHlfcmV0dmFsKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpYnhtbF94bWxSZWxheE5HRnJlZVZhbGlkQ3R4dChBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykgeworICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dDsKKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKyAgICBQeU9iamVjdCAqcHlvYmpfY3R4dDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSJPOnhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0IiwgJnB5b2JqX2N0eHQpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3R4dCA9ICh4bWxSZWxheE5HVmFsaWRDdHh0UHRyKSBQeXJlbGF4TmdWYWxpZEN0eHRfR2V0KHB5b2JqX2N0eHQpOworCisgICAgaWYgKHhtbFJlbGF4TkdHZXRWYWxpZEVycm9ycyhjdHh0LCBOVUxMLCBOVUxMLCAodm9pZCAqKikgJnB5Q3R4dCkgPT0gMCkKKyAgICB7CisgICAgICAgIGlmIChweUN0eHQgIT0gTlVMTCkKKyAgICAgICAgeworICAgICAgICAgICAgUHlfWERFQ1JFRihweUN0eHQtPmVycm9yKTsKKyAgICAgICAgICAgIFB5X1hERUNSRUYocHlDdHh0LT53YXJuKTsKKyAgICAgICAgICAgIFB5X1hERUNSRUYocHlDdHh0LT5hcmcpOworICAgICAgICAgICAgeG1sRnJlZShweUN0eHQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KGN0eHQpOworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm4oUHlfTm9uZSk7Cit9CisKK3R5cGVkZWYgc3RydWN0Cit7CisJUHlPYmplY3QgKndhcm47CisJUHlPYmplY3QgKmVycm9yOworCVB5T2JqZWN0ICphcmc7Cit9IHhtbFNjaGVtYVZhbGlkQ3R4dFB5Q3R4dDsKK3R5cGVkZWYgeG1sU2NoZW1hVmFsaWRDdHh0UHlDdHh0ICp4bWxTY2hlbWFWYWxpZEN0eHRQeUN0eHRQdHI7CisKK3N0YXRpYyB2b2lkCitsaWJ4bWxfeG1sU2NoZW1hVmFsaWRpdHlHZW5lcmljRXJyb3JGdW5jSGFuZGxlcih2b2lkICpjdHgsIGNoYXIgKnN0cikKK3sKKwlQeU9iamVjdCAqbGlzdDsKKwlQeU9iamVjdCAqcmVzdWx0OworCXhtbFNjaGVtYVZhbGlkQ3R4dFB5Q3R4dFB0ciBweUN0eHQ7CisKKyNpZmRlZiBERUJVR19FUlJPUgorCXByaW50ZigibGlieG1sX3htbFNjaGVtYVZhbGlkaXRpeUdlbmVyaWNFcnJvckZ1bmNIYW5kbGVyKCVwLCAlcywgLi4uKSBjYWxsZWRcbiIsIGN0eCwgc3RyKTsKKyNlbmRpZgorCisJcHlDdHh0ID0gKHhtbFNjaGVtYVZhbGlkQ3R4dFB5Q3R4dFB0cikgY3R4OworCisJbGlzdCA9IFB5VHVwbGVfTmV3KDIpOworCVB5VHVwbGVfU2V0SXRlbShsaXN0LCAwLCBsaWJ4bWxfY2hhclB0cldyYXAoc3RyKSk7CisJUHlUdXBsZV9TZXRJdGVtKGxpc3QsIDEsIHB5Q3R4dC0+YXJnKTsKKwlQeV9YSU5DUkVGKHB5Q3R4dC0+YXJnKTsKKwlyZXN1bHQgPSBQeUV2YWxfQ2FsbE9iamVjdChweUN0eHQtPmVycm9yLCBsaXN0KTsKKwlpZiAocmVzdWx0ID09IE5VTEwpIAorCXsKKwkJLyogVE9ETzogbWFuYWdlIGZvciB0aGUgZXhjZXB0aW9uIHRvIGJlIHByb3BhZ2F0ZWQuLi4gKi8KKwkJUHlFcnJfUHJpbnQoKTsKKwl9CisJUHlfWERFQ1JFRihsaXN0KTsKKwlQeV9YREVDUkVGKHJlc3VsdCk7Cit9CisKK3N0YXRpYyB2b2lkCitsaWJ4bWxfeG1sU2NoZW1hVmFsaWRpdHlHZW5lcmljV2FybmluZ0Z1bmNIYW5kbGVyKHZvaWQgKmN0eCwgY2hhciAqc3RyKQoreworCVB5T2JqZWN0ICpsaXN0OworCVB5T2JqZWN0ICpyZXN1bHQ7CisJeG1sU2NoZW1hVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKworI2lmZGVmIERFQlVHX0VSUk9SCisJcHJpbnRmKCJsaWJ4bWxfeG1sU2NoZW1hVmFsaWRpdHlHZW5lcmljV2FybmluZ0Z1bmNIYW5kbGVyKCVwLCAlcywgLi4uKSBjYWxsZWRcbiIsIGN0eCwgc3RyKTsKKyNlbmRpZgorCQorCXB5Q3R4dCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQeUN0eHRQdHIpIGN0eDsKKworCWxpc3QgPSBQeVR1cGxlX05ldygyKTsKKwlQeVR1cGxlX1NldEl0ZW0obGlzdCwgMCwgbGlieG1sX2NoYXJQdHJXcmFwKHN0cikpOworCVB5VHVwbGVfU2V0SXRlbShsaXN0LCAxLCBweUN0eHQtPmFyZyk7CisJUHlfWElOQ1JFRihweUN0eHQtPmFyZyk7CisJcmVzdWx0ID0gUHlFdmFsX0NhbGxPYmplY3QocHlDdHh0LT53YXJuLCBsaXN0KTsKKwlpZiAocmVzdWx0ID09IE5VTEwpCisJeworCQkvKiBUT0RPOiBtYW5hZ2UgZm9yIHRoZSBleGNlcHRpb24gdG8gYmUgcHJvcGFnYXRlZC4uLiAqLworCQlQeUVycl9QcmludCgpOworCX0KKwlQeV9YREVDUkVGKGxpc3QpOworCVB5X1hERUNSRUYocmVzdWx0KTsKK30KKworc3RhdGljIHZvaWQKK2xpYnhtbF94bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyh2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworCXZhX2xpc3QgYXA7CisJCisJdmFfc3RhcnQoYXAsIG1zZyk7CisJbGlieG1sX3htbFNjaGVtYVZhbGlkaXR5R2VuZXJpY0Vycm9yRnVuY0hhbmRsZXIoY3R4LCBsaWJ4bWxfYnVpbGRNZXNzYWdlKG1zZywgYXApKTsKKwl2YV9lbmQoYXApOworfQorCitzdGF0aWMgdm9pZAorbGlieG1sX3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmModm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKwl2YV9saXN0IGFwOworCisJdmFfc3RhcnQoYXAsIG1zZyk7CisJbGlieG1sX3htbFNjaGVtYVZhbGlkaXR5R2VuZXJpY1dhcm5pbmdGdW5jSGFuZGxlcihjdHgsIGxpYnhtbF9idWlsZE1lc3NhZ2UobXNnLCBhcCkpOworCXZhX2VuZChhcCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxTY2hlbWFTZXRWYWxpZEVycm9ycyhBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwgUHlPYmplY3QgKiBhcmdzKQoreworCVB5T2JqZWN0ICpweV9yZXR2YWw7CisJUHlPYmplY3QgKnB5b2JqX2Vycm9yOworCVB5T2JqZWN0ICpweW9ial93YXJuOworCVB5T2JqZWN0ICpweW9ial9jdHg7CisJUHlPYmplY3QgKnB5b2JqX2FyZyA9IFB5X05vbmU7CisJeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQ7CisJeG1sU2NoZW1hVmFsaWRDdHh0UHlDdHh0UHRyIHB5Q3R4dDsKKworCWlmICghUHlBcmdfUGFyc2VUdXBsZQorCQkoYXJncywgKGNoYXIgKikgIk9PT3xPOnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzIiwgJnB5b2JqX2N0eCwgJnB5b2JqX2Vycm9yLCAmcHlvYmpfd2FybiwgJnB5b2JqX2FyZykpCisJCXJldHVybiAoTlVMTCk7CisKKyNpZmRlZiBERUJVR19FUlJPUgorCXByaW50ZigibGlieG1sX3htbFNjaGVtYVNldFZhbGlkRXJyb3JzKCVwLCAlcCwgJXApIGNhbGxlZFxuIiwgcHlvYmpfY3R4LCBweW9ial9lcnJvciwgcHlvYmpfd2Fybik7CisjZW5kaWYKKworCWN0eHQgPSBQeVNjaGVtYVZhbGlkQ3R4dF9HZXQocHlvYmpfY3R4KTsKKwlpZiAoeG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMoY3R4dCwgTlVMTCwgTlVMTCwgKHZvaWQgKiopICZweUN0eHQpID09IC0xKQorCXsKKwkJcHlfcmV0dmFsID0gbGlieG1sX2ludFdyYXAoLTEpOworCQlyZXR1cm4ocHlfcmV0dmFsKTsKKwl9CisKKwlpZiAocHlDdHh0ID09IE5VTEwpCisJeworCQkvKiBmaXJzdCB0aW1lIHRvIHNldCB0aGUgZXJyb3IgaGFuZGxlcnMgKi8KKwkJcHlDdHh0ID0geG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFWYWxpZEN0eHRQeUN0eHQpKTsKKwkJaWYgKHB5Q3R4dCA9PSBOVUxMKSB7CisJCQlweV9yZXR2YWwgPSBsaWJ4bWxfaW50V3JhcCgtMSk7CisJCQlyZXR1cm4ocHlfcmV0dmFsKTsKKwkJfQorCQltZW1zZXQocHlDdHh0LCAwLCBzaXplb2YoeG1sU2NoZW1hVmFsaWRDdHh0UHlDdHh0KSk7CisJfQorCisJLyogVE9ETzogY2hlY2sgd2FybiBhbmQgZXJyb3IgaXMgYSBmdW5jdGlvbiAhICovCisJUHlfWERFQ1JFRihweUN0eHQtPmVycm9yKTsKKwlQeV9YSU5DUkVGKHB5b2JqX2Vycm9yKTsKKwlweUN0eHQtPmVycm9yID0gcHlvYmpfZXJyb3I7CisKKwlQeV9YREVDUkVGKHB5Q3R4dC0+d2Fybik7CisJUHlfWElOQ1JFRihweW9ial93YXJuKTsKKwlweUN0eHQtPndhcm4gPSBweW9ial93YXJuOworCisJUHlfWERFQ1JFRihweUN0eHQtPmFyZyk7CisJUHlfWElOQ1JFRihweW9ial9hcmcpOworCXB5Q3R4dC0+YXJnID0gcHlvYmpfYXJnOworCisJeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMoY3R4dCwgJmxpYnhtbF94bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYywgJmxpYnhtbF94bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jLCBweUN0eHQpOworCisJcHlfcmV0dmFsID0gbGlieG1sX2ludFdyYXAoMSk7CisJcmV0dXJuKHB5X3JldHZhbCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dChBVFRSSUJVVEVfVU5VU0VEIFB5T2JqZWN0ICogc2VsZiwgUHlPYmplY3QgKiBhcmdzKQoreworCXhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OworCXhtbFNjaGVtYVZhbGlkQ3R4dFB5Q3R4dFB0ciBweUN0eHQ7CisJUHlPYmplY3QgKnB5b2JqX2N0eHQ7CisKKwlpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiTzp4bWxTY2hlbWFGcmVlVmFsaWRDdHh0IiwgJnB5b2JqX2N0eHQpKQorCQlyZXR1cm4oTlVMTCk7CisJY3R4dCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpIFB5U2NoZW1hVmFsaWRDdHh0X0dldChweW9ial9jdHh0KTsKKworCWlmICh4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyhjdHh0LCBOVUxMLCBOVUxMLCAodm9pZCAqKikgJnB5Q3R4dCkgPT0gMCkKKwl7CisJCWlmIChweUN0eHQgIT0gTlVMTCkKKwkJeworCQkJUHlfWERFQ1JFRihweUN0eHQtPmVycm9yKTsKKwkJCVB5X1hERUNSRUYocHlDdHh0LT53YXJuKTsKKwkJCVB5X1hERUNSRUYocHlDdHh0LT5hcmcpOworCQkJeG1sRnJlZShweUN0eHQpOworCQl9CisJfQorCisJeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dChjdHh0KTsKKwlQeV9JTkNSRUYoUHlfTm9uZSk7CisJcmV0dXJuKFB5X05vbmUpOworfQorCisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9DMTROX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogWE1MIENhbm9uaWNhbGl6YXRpb24gYzE0biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludAorUHl4bWxOb2RlU2V0X0NvbnZlcnQoUHlPYmplY3QgKnB5X25vZGVzZXQsIHhtbE5vZGVTZXRQdHIgKnJlc3VsdCkKK3sKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVTZXQ7CisgICAgaW50IGlzX3R1cGxlID0gMDsKKworICAgIGlmIChQeVR1cGxlX0NoZWNrKHB5X25vZGVzZXQpKQorICAgICAgICBpc190dXBsZSA9IDE7CisgICAgZWxzZSBpZiAoUHlMaXN0X0NoZWNrKHB5X25vZGVzZXQpKQorICAgICAgICBpc190dXBsZSA9IDA7CisgICAgZWxzZSBpZiAocHlfbm9kZXNldCA9PSBQeV9Ob25lKSB7CisgICAgICAgICpyZXN1bHQgPSBOVUxMOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBiZSBhIHR1cGxlIG9yIGxpc3Qgb2Ygbm9kZXMuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBub2RlU2V0ID0gKHhtbE5vZGVTZXRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTm9kZVNldCkpOworICAgIGlmIChub2RlU2V0ID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX01lbW9yeUVycm9yLCAiIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBub2RlU2V0LT5ub2RlTnIgPSAwOworICAgIG5vZGVTZXQtPm5vZGVNYXggPSAoaXNfdHVwbGUKKyAgICAgICAgICAgICAgICAgICAgICAgID8gUHlUdXBsZV9HRVRfU0laRShweV9ub2Rlc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgOiBQeUxpc3RfR0VUX1NJWkUocHlfbm9kZXNldCkpOworICAgIG5vZGVTZXQtPm5vZGVUYWIKKyAgICAgICAgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MgKG5vZGVTZXQtPm5vZGVNYXgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKyAgICBpZiAobm9kZVNldC0+bm9kZVRhYiA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWUobm9kZVNldCk7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19NZW1vcnlFcnJvciwgIiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIG1lbXNldChub2RlU2V0LT5ub2RlVGFiLCAwICwKKyAgICAgICAgICAgbm9kZVNldC0+bm9kZU1heCAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisKKyAgICB7CisgICAgICAgIGludCBpZHg7CisgICAgICAgIGZvciAoaWR4PTA7IGlkeCA8IG5vZGVTZXQtPm5vZGVNYXg7ICsraWR4KSB7CisgICAgICAgICAgICB4bWxOb2RlUHRyIHB5bm9kZSA9CisgICAgICAgICAgICAgICAgUHl4bWxOb2RlX0dldCAoaXNfdHVwbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFB5VHVwbGVfR0VUX0lURU0ocHlfbm9kZXNldCwgaWR4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogUHlMaXN0X0dFVF9JVEVNKHB5X25vZGVzZXQsIGlkeCkpOworICAgICAgICAgICAgaWYgKHB5bm9kZSkKKyAgICAgICAgICAgICAgICBub2RlU2V0LT5ub2RlVGFiW25vZGVTZXQtPm5vZGVOcisrXSA9IHB5bm9kZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqcmVzdWx0ID0gbm9kZVNldDsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorUHlzdHJpbmdTZXRfQ29udmVydChQeU9iamVjdCAqcHlfc3RyaW5ncywgeG1sQ2hhciAqKiogcmVzdWx0KQoreworICAgIC8qIE5PVEU6IHRoZSBhcnJheSBzaG91bGQgYmUgZnJlZWQsIGJ1dCB0aGUgc3RyaW5ncyBhcmUgc2hhcmVkCisgICAgICAgd2l0aCB0aGUgcHl0aG9uIHN0cmluZ3MgYW5kIHNvIG11c3Qgbm90IGJlIGZyZWVkLiAqLworCisgICAgeG1sQ2hhciAqKiBzdHJpbmdzOworICAgIGludCBpc190dXBsZSA9IDA7CisgICAgaW50IGNvdW50OworICAgIGludCBpbml0X2luZGV4ID0gMDsKKworICAgIGlmIChQeVR1cGxlX0NoZWNrKHB5X3N0cmluZ3MpKQorICAgICAgICBpc190dXBsZSA9IDE7CisgICAgZWxzZSBpZiAoUHlMaXN0X0NoZWNrKHB5X3N0cmluZ3MpKQorICAgICAgICBpc190dXBsZSA9IDA7CisgICAgZWxzZSBpZiAocHlfc3RyaW5ncyA9PSBQeV9Ob25lKSB7CisgICAgICAgICpyZXN1bHQgPSBOVUxMOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBiZSBhIHR1cGxlIG9yIGxpc3Qgb2Ygc3RyaW5ncy4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGNvdW50ID0gKGlzX3R1cGxlCisgICAgICAgICAgICAgPyBQeVR1cGxlX0dFVF9TSVpFKHB5X3N0cmluZ3MpCisgICAgICAgICAgICAgOiBQeUxpc3RfR0VUX1NJWkUocHlfc3RyaW5ncykpOworCisgICAgc3RyaW5ncyA9ICh4bWxDaGFyICoqKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbENoYXIgKikgKiBjb3VudCk7CisKKyAgICBpZiAoc3RyaW5ncyA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19NZW1vcnlFcnJvciwgIiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgbWVtc2V0KHN0cmluZ3MsIDAgLCBzaXplb2YoeG1sQ2hhciAqKSAqIGNvdW50KTsKKworICAgIHsKKyAgICAgICAgaW50IGlkeDsKKyAgICAgICAgZm9yIChpZHg9MDsgaWR4IDwgY291bnQ7ICsraWR4KSB7CisgICAgICAgICAgICBjaGFyKiBzID0gUHlTdHJpbmdfQXNTdHJpbmcKKyAgICAgICAgICAgICAgICAoaXNfdHVwbGUKKyAgICAgICAgICAgICAgICAgPyBQeVR1cGxlX0dFVF9JVEVNKHB5X3N0cmluZ3MsIGlkeCkKKyAgICAgICAgICAgICAgICAgOiBQeUxpc3RfR0VUX0lURU0ocHlfc3RyaW5ncywgaWR4KSk7CisgICAgICAgICAgICBpZiAocykKKyAgICAgICAgICAgICAgICBzdHJpbmdzW2luaXRfaW5kZXgrK10gPSAoeG1sQ2hhciAqKXM7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxGcmVlKHN0cmluZ3MpOworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIGEgdHVwbGUgb3IgbGlzdCBvZiBzdHJpbmdzLiIpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgICpyZXN1bHQgPSBzdHJpbmdzOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX0MxNE5Eb2NEdW1wTWVtb3J5KEFUVFJJQlVURV9VTlVTRUQgUHlPYmplY3QgKiBzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICogYXJncykKK3sKKyAgICBQeU9iamVjdCAqcHlfcmV0dmFsID0gTlVMTDsKKworICAgIFB5T2JqZWN0ICpweW9ial9kb2M7CisgICAgUHlPYmplY3QgKnB5b2JqX25vZGVzOworICAgIGludCBleGNsdXNpdmU7CisgICAgUHlPYmplY3QgKnB5b2JqX3ByZWZpeGVzOworICAgIGludCB3aXRoX2NvbW1lbnRzOworCisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzOworICAgIHhtbENoYXIgKipwcmVmaXhlcyA9IE5VTEw7CisgICAgeG1sQ2hhciAqZG9jX3R4dDsKKworICAgIGludCByZXN1bHQ7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikgIk9PaU9pOkMxNE5Eb2NEdW1wTWVtb3J5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnB5b2JqX2RvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnB5b2JqX25vZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmZXhjbHVzaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcHlvYmpfcHJlZml4ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZ3aXRoX2NvbW1lbnRzKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIGRvYyA9ICh4bWxEb2NQdHIpIFB5eG1sTm9kZV9HZXQocHlvYmpfZG9jKTsKKyAgICBpZiAoIWRvYykgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiYmFkIGRvY3VtZW50LiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXN1bHQgPSBQeXhtbE5vZGVTZXRfQ29udmVydChweW9ial9ub2RlcywgJm5vZGVzKTsKKyAgICBpZiAocmVzdWx0IDwgMCkgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoZXhjbHVzaXZlKSB7CisgICAgICAgIHJlc3VsdCA9IFB5c3RyaW5nU2V0X0NvbnZlcnQocHlvYmpfcHJlZml4ZXMsICZwcmVmaXhlcyk7CisgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgICAgICBpZiAobm9kZXMpIHsKKyAgICAgICAgICAgICAgICB4bWxGcmVlKG5vZGVzLT5ub2RlVGFiKTsKKyAgICAgICAgICAgICAgICB4bWxGcmVlKG5vZGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorCisgICAgcmVzdWx0ID0geG1sQzE0TkRvY0R1bXBNZW1vcnkoZG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoX2NvbW1lbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkb2NfdHh0KTsKKworICAgIGlmIChub2RlcykgeworICAgICAgICB4bWxGcmVlKG5vZGVzLT5ub2RlVGFiKTsKKyAgICAgICAgeG1sRnJlZShub2Rlcyk7CisgICAgfQorICAgIGlmIChwcmVmaXhlcykgeworICAgICAgICB4bWxDaGFyICoqIGlkeCA9IHByZWZpeGVzOworICAgICAgICB3aGlsZSAoKmlkeCkgeG1sRnJlZSgqKGlkeCsrKSk7CisgICAgICAgIHhtbEZyZWUocHJlZml4ZXMpOworICAgIH0KKworICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAibGlieG1sMiB4bWxDMTRORG9jRHVtcE1lbW9yeSBmYWlsdXJlLiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHB5X3JldHZhbCA9IFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKChjb25zdCBjaGFyICopIGRvY190eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCk7CisgICAgICAgIHhtbEZyZWUoZG9jX3R4dCk7CisgICAgICAgIHJldHVybiBweV9yZXR2YWw7CisgICAgfQorfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlieG1sX0MxNE5Eb2NTYXZlVG8oQVRUUklCVVRFX1VOVVNFRCBQeU9iamVjdCAqIHNlbGYsCisgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqIGFyZ3MpCit7CisgICAgUHlPYmplY3QgKnB5b2JqX2RvYzsKKyAgICBQeU9iamVjdCAqcHlfZmlsZTsKKyAgICBQeU9iamVjdCAqcHlvYmpfbm9kZXM7CisgICAgaW50IGV4Y2x1c2l2ZTsKKyAgICBQeU9iamVjdCAqcHlvYmpfcHJlZml4ZXM7CisgICAgaW50IHdpdGhfY29tbWVudHM7CisKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXM7CisgICAgeG1sQ2hhciAqKnByZWZpeGVzID0gTlVMTDsKKyAgICBGSUxFICogb3V0cHV0OworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7CisKKyAgICBpbnQgcmVzdWx0OworICAgIGludCBsZW47CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikgIk9PaU9pTzpDMTRORG9jU2F2ZVRvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnB5b2JqX2RvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnB5b2JqX25vZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmZXhjbHVzaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcHlvYmpfcHJlZml4ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZ3aXRoX2NvbW1lbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcHlfZmlsZSkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBkb2MgPSAoeG1sRG9jUHRyKSBQeXhtbE5vZGVfR2V0KHB5b2JqX2RvYyk7CisgICAgaWYgKCFkb2MpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImJhZCBkb2N1bWVudC4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKChweV9maWxlID09IE5VTEwpIHx8ICghKFB5RmlsZV9DaGVjayhweV9maWxlKSkpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJiYWQgZmlsZS4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIG91dHB1dCA9IFB5RmlsZV9Bc0ZpbGUocHlfZmlsZSk7CisgICAgaWYgKG91dHB1dCA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJiYWQgZmlsZS4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGJ1ZiA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUob3V0cHV0LCBOVUxMKTsKKworICAgIHJlc3VsdCA9IFB5eG1sTm9kZVNldF9Db252ZXJ0KHB5b2JqX25vZGVzLCAmbm9kZXMpOworICAgIGlmIChyZXN1bHQgPCAwKSByZXR1cm4gTlVMTDsKKworICAgIGlmIChleGNsdXNpdmUpIHsKKyAgICAgICAgcmVzdWx0ID0gUHlzdHJpbmdTZXRfQ29udmVydChweW9ial9wcmVmaXhlcywgJnByZWZpeGVzKTsKKyAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgICAgIGlmIChub2RlcykgeworICAgICAgICAgICAgICAgIHhtbEZyZWUobm9kZXMtPm5vZGVUYWIpOworICAgICAgICAgICAgICAgIHhtbEZyZWUobm9kZXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXN1bHQgPSB4bWxDMTRORG9jU2F2ZVRvKGRvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoX2NvbW1lbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmKTsKKworICAgIGlmIChub2RlcykgeworICAgICAgICB4bWxGcmVlKG5vZGVzLT5ub2RlVGFiKTsKKyAgICAgICAgeG1sRnJlZShub2Rlcyk7CisgICAgfQorICAgIGlmIChwcmVmaXhlcykgeworICAgICAgICB4bWxDaGFyICoqIGlkeCA9IHByZWZpeGVzOworICAgICAgICB3aGlsZSAoKmlkeCkgeG1sRnJlZSgqKGlkeCsrKSk7CisgICAgICAgIHhtbEZyZWUocHJlZml4ZXMpOworICAgIH0KKworICAgIGxlbiA9IHhtbE91dHB1dEJ1ZmZlckNsb3NlKGJ1Zik7CisKKyAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgImxpYnhtbDIgeG1sQzE0TkRvY1NhdmVUbyBmYWlsdXJlLiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlJbnRfRnJvbUxvbmcoKGxvbmcpIGxlbik7Cit9CisKKyNlbmRpZgorI2VuZGlmCisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfZ2V0T2JqRGVzYyhQeU9iamVjdCAqc2VsZiBBVFRSSUJVVEVfVU5VU0VELCBQeU9iamVjdCAqYXJncykgeworCisgICAgUHlPYmplY3QgKm9iajsKKyAgICBjaGFyICpzdHI7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgKGNoYXIgKikiTzpnZXRPYmpEZXNjIiwgJm9iaikpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHN0ciA9IFB5Q09iamVjdF9HZXREZXNjKG9iaik7CisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoKGNoYXIgKikicyIsIHN0cik7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfY29tcGFyZU5vZGVzRXF1YWwoUHlPYmplY3QgKnNlbGYgQVRUUklCVVRFX1VOVVNFRCwgUHlPYmplY3QgKmFyZ3MpIHsKKyAgICAKKyAgICBQeU9iamVjdCAqcHlfbm9kZTEsICpweV9ub2RlMjsKKyAgICB4bWxOb2RlUHRyIG5vZGUxLCBub2RlMjsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAoY2hhciAqKSJPTzpjb21wYXJlTm9kZXNFcXVhbCIsCisJCSZweV9ub2RlMSwgJnB5X25vZGUyKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgLyogVG8gY29tcGFyZSB0d28gbm9kZSBvYmplY3RzLCB3ZSBjb21wYXJlIHRoZWlyIHBvaW50ZXIgYWRkcmVzc2VzICovCisgICAgbm9kZTEgPSBQeXhtbE5vZGVfR2V0KHB5X25vZGUxKTsKKyAgICBub2RlMiA9IFB5eG1sTm9kZV9HZXQocHlfbm9kZTIpOworICAgIGlmICggbm9kZTEgPT0gbm9kZTIgKQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgoY2hhciAqKSJpIiwgMSk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgoY2hhciAqKSJpIiwgMCk7CisgICAgCit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaWJ4bWxfbm9kZUhhc2goUHlPYmplY3QgKnNlbGYgQVRUUklCVVRFX1VOVVNFRCwgUHlPYmplY3QgKmFyZ3MpIHsKKworICAgIFB5T2JqZWN0ICpweV9ub2RlMTsKKyAgICB4bWxOb2RlUHRyIG5vZGUxOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIChjaGFyICopIk86bm9kZUhhc2giLCAmcHlfbm9kZTEpKQorCSAgICByZXR1cm4gTlVMTDsKKyAgICAvKiBGb3Igc2ltcGxpY2l0eSwgd2UgdXNlIHRoZSBub2RlIHBvaW50ZXIgYWRkcmVzcyBhcyBhIGhhc2ggdmFsdWUgKi8KKyAgICBub2RlMSA9IFB5eG1sTm9kZV9HZXQocHlfbm9kZTEpOworCisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tVm9pZFB0cihub2RlMSk7CisKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVRoZSByZWdpc3RyYXRpb24gc3R1ZmYJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIFB5TWV0aG9kRGVmIGxpYnhtbE1ldGhvZHNbXSA9IHsKKyNpbmNsdWRlICJsaWJ4bWwyLWV4cG9ydC5jIgorICAgIHsoY2hhciAqKSAibmFtZSIsIGxpYnhtbF9uYW1lLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSAiY2hpbGRyZW4iLCBsaWJ4bWxfY2hpbGRyZW4sIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopICJwcm9wZXJ0aWVzIiwgbGlieG1sX3Byb3BlcnRpZXMsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopICJsYXN0IiwgbGlieG1sX2xhc3QsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopICJwcmV2IiwgbGlieG1sX3ByZXYsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopICJuZXh0IiwgbGlieG1sX25leHQsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopICJwYXJlbnQiLCBsaWJ4bWxfcGFyZW50LCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSAidHlwZSIsIGxpYnhtbF90eXBlLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSAiZG9jIiwgbGlieG1sX2RvYywgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7KGNoYXIgKikgInhtbE5ld05vZGUiLCBsaWJ4bWxfeG1sTmV3Tm9kZSwgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7KGNoYXIgKikgInhtbE5vZGVSZW1vdmVOc0RlZiIsIGxpYnhtbF94bWxOb2RlUmVtb3ZlTnNEZWYsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopInhtbFNldFZhbGlkRXJyb3JzIiwgbGlieG1sX3htbFNldFZhbGlkRXJyb3JzLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSJ4bWxGcmVlVmFsaWRDdHh0IiwgbGlieG1sX3htbEZyZWVWYWxpZEN0eHQsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisgICAgeyhjaGFyICopICJzZXJpYWxpemVOb2RlIiwgbGlieG1sX3NlcmlhbGl6ZU5vZGUsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopICJzYXZlTm9kZVRvIiwgbGlieG1sX3NhdmVOb2RlVG8sIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopICJvdXRwdXRCdWZmZXJDcmVhdGUiLCBsaWJ4bWxfeG1sQ3JlYXRlT3V0cHV0QnVmZmVyLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSAib3V0cHV0QnVmZmVyR2V0UHl0aG9uRmlsZSIsIGxpYnhtbF9vdXRwdXRCdWZmZXJHZXRQeXRob25GaWxlLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSAieG1sT3V0cHV0QnVmZmVyQ2xvc2UiLCBsaWJ4bWxfeG1sT3V0cHV0QnVmZmVyQ2xvc2UsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyAoY2hhciAqKSJ4bWxPdXRwdXRCdWZmZXJGbHVzaCIsIGxpYnhtbF94bWxPdXRwdXRCdWZmZXJGbHVzaCwgTUVUSF9WQVJBUkdTLCBOVUxMIH0sCisgICAgeyAoY2hhciAqKSJ4bWxTYXZlRmlsZVRvIiwgbGlieG1sX3htbFNhdmVGaWxlVG8sIE1FVEhfVkFSQVJHUywgTlVMTCB9LAorICAgIHsgKGNoYXIgKikieG1sU2F2ZUZvcm1hdEZpbGVUbyIsIGxpYnhtbF94bWxTYXZlRm9ybWF0RmlsZVRvLCBNRVRIX1ZBUkFSR1MsIE5VTEwgfSwKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKyAgICB7KGNoYXIgKikgImlucHV0QnVmZmVyQ3JlYXRlIiwgbGlieG1sX3htbENyZWF0ZUlucHV0QnVmZmVyLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSAic2V0RW50aXR5TG9hZGVyIiwgbGlieG1sX3htbFNldEVudGl0eUxvYWRlciwgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7KGNoYXIgKikieG1sUmVnaXN0ZXJFcnJvckhhbmRsZXIiLCBsaWJ4bWxfeG1sUmVnaXN0ZXJFcnJvckhhbmRsZXIsIE1FVEhfVkFSQVJHUywgTlVMTCB9LAorICAgIHsoY2hhciAqKSJ4bWxQYXJzZXJDdHh0U2V0RXJyb3JIYW5kbGVyIiwgbGlieG1sX3htbFBhcnNlckN0eHRTZXRFcnJvckhhbmRsZXIsIE1FVEhfVkFSQVJHUywgTlVMTCB9LAorICAgIHsoY2hhciAqKSJ4bWxQYXJzZXJDdHh0R2V0RXJyb3JIYW5kbGVyIiwgbGlieG1sX3htbFBhcnNlckN0eHRHZXRFcnJvckhhbmRsZXIsIE1FVEhfVkFSQVJHUywgTlVMTCB9LAorICAgIHsoY2hhciAqKSJ4bWxGcmVlUGFyc2VyQ3R4dCIsIGxpYnhtbF94bWxGcmVlUGFyc2VyQ3R4dCwgTUVUSF9WQVJBUkdTLCBOVUxMIH0sCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisgICAgeyhjaGFyICopInhtbFRleHRSZWFkZXJTZXRFcnJvckhhbmRsZXIiLCBsaWJ4bWxfeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlciwgTUVUSF9WQVJBUkdTLCBOVUxMIH0sCisgICAgeyhjaGFyICopInhtbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIiLCBsaWJ4bWxfeG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlciwgTUVUSF9WQVJBUkdTLCBOVUxMIH0sCisgICAgeyhjaGFyICopInhtbEZyZWVUZXh0UmVhZGVyIiwgbGlieG1sX3htbEZyZWVUZXh0UmVhZGVyLCBNRVRIX1ZBUkFSR1MsIE5VTEwgfSwKKyNlbmRpZgorICAgIHsoY2hhciAqKSJhZGRMb2NhbENhdGFsb2ciLCBsaWJ4bWxfYWRkTG9jYWxDYXRhbG9nLCBNRVRIX1ZBUkFSR1MsIE5VTEwgfSwKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisgICAgeyhjaGFyICopInhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyIsIGxpYnhtbF94bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyhjaGFyICopInhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0IiwgbGlieG1sX3htbFJlbGF4TkdGcmVlVmFsaWRDdHh0LCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSJ4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyIsIGxpYnhtbF94bWxTY2hlbWFTZXRWYWxpZEVycm9ycywgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7KGNoYXIgKikieG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCIsIGxpYnhtbF94bWxTY2hlbWFGcmVlVmFsaWRDdHh0LCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0MxNE5fRU5BQkxFRAorI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgIHsoY2hhciAqKSJ4bWxDMTRORG9jRHVtcE1lbW9yeSIsIGxpYnhtbF9DMTRORG9jRHVtcE1lbW9yeSwgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7KGNoYXIgKikieG1sQzE0TkRvY1NhdmVUbyIsIGxpYnhtbF9DMTRORG9jU2F2ZVRvLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorI2VuZGlmCisjZW5kaWYKKyAgICB7KGNoYXIgKikgImdldE9iakRlc2MiLCBsaWJ4bWxfZ2V0T2JqRGVzYywgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7KGNoYXIgKikgImNvbXBhcmVOb2Rlc0VxdWFsIiwgbGlieG1sX2NvbXBhcmVOb2Rlc0VxdWFsLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsoY2hhciAqKSAibm9kZUhhc2giLCBsaWJ4bWxfbm9kZUhhc2gsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAge05VTEwsIE5VTEwsIDAsIE5VTEx9Cit9OworCisjaWZkZWYgTUVSR0VEX01PRFVMRVMKK2V4dGVybiB2b2lkIGluaXRsaWJ4c2x0bW9kKHZvaWQpOworI2VuZGlmCisKK3ZvaWQKK2luaXRsaWJ4bWwybW9kKHZvaWQpCit7CisgICAgc3RhdGljIGludCBpbml0aWFsaXplZCA9IDA7CisKKyAgICBpZiAoaW5pdGlhbGl6ZWQgIT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyogaW50aWFsaXplIHRoZSBweXRob24gZXh0ZW5zaW9uIG1vZHVsZSAqLworICAgIFB5X0luaXRNb2R1bGUoKGNoYXIgKikgImxpYnhtbDJtb2QiLCBsaWJ4bWxNZXRob2RzKTsKKworICAgIC8qIGluaXRpYWxpemUgbGlieG1sMiAqLworICAgIHhtbEluaXRQYXJzZXIoKTsKKyAgICBsaWJ4bWxfeG1sRXJyb3JJbml0aWFsaXplKCk7CisKKyAgICBpbml0aWFsaXplZCA9IDE7CisKKyNpZmRlZiBNRVJHRURfTU9EVUxFUworICAgIGluaXRsaWJ4c2x0bW9kKCk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL2xpYnhtbC5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL2xpYnhtbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODYxYTcwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vbGlieG1sLnB5CkBAIC0wLDAgKzEsNzMzIEBACitpbXBvcnQgbGlieG1sMm1vZAoraW1wb3J0IHR5cGVzCitpbXBvcnQgc3lzCisKKyMgVGhlIHJvb3Qgb2YgYWxsIGxpYnhtbDIgZXJyb3JzLgorY2xhc3MgbGlieG1sRXJyb3IoRXhjZXB0aW9uKTogcGFzcworCisjCisjIGlkKCkgaXMgc29tZXRpbWVzIG5lZ2F0aXZlIC4uLgorIworZGVmIHBvc19pZChvKToKKyAgICBpID0gaWQobykKKyAgICBpZiAoaSA8IDApOgorICAgICAgICByZXR1cm4gKHN5cy5tYXhpbnQgLSBpKQorICAgIHJldHVybiBpCisKKyMKKyMgRXJyb3JzIHJhaXNlZCBieSB0aGUgd3JhcHBlcnMgd2hlbiBzb21lIHRyZWUgaGFuZGxpbmcgZmFpbGVkLgorIworY2xhc3MgdHJlZUVycm9yKGxpYnhtbEVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnKToKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubXNnCisKK2NsYXNzIHBhcnNlckVycm9yKGxpYnhtbEVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnKToKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubXNnCisKK2NsYXNzIHVyaUVycm9yKGxpYnhtbEVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnKToKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubXNnCisKK2NsYXNzIHhwYXRoRXJyb3IobGlieG1sRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2cpOgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tc2cKKworY2xhc3MgaW9XcmFwcGVyOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBfb2JqKToKKyAgICAgICAgc2VsZi5fX2lvID0gX29iagorICAgICAgICBzZWxmLl9vID0gTm9uZQorCisgICAgZGVmIGlvX2Nsb3NlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9faW8gPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybigtMSkKKyAgICAgICAgc2VsZi5fX2lvLmNsb3NlKCkKKyAgICAgICAgc2VsZi5fX2lvID0gTm9uZQorICAgICAgICByZXR1cm4oMCkKKworICAgIGRlZiBpb19mbHVzaChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fX2lvID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4oLTEpCisgICAgICAgIHNlbGYuX19pby5mbHVzaCgpCisgICAgICAgIHJldHVybigwKQorCisgICAgZGVmIGlvX3JlYWQoc2VsZiwgbGVuID0gLTEpOgorICAgICAgICBpZiBzZWxmLl9faW8gPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybigtMSkKKyAgICAgICAgaWYgbGVuIDwgMDoKKyAgICAgICAgICAgIHJldHVybihzZWxmLl9faW8ucmVhZCgpKQorICAgICAgICByZXR1cm4oc2VsZi5fX2lvLnJlYWQobGVuKSkKKworICAgIGRlZiBpb193cml0ZShzZWxmLCBzdHIsIGxlbiA9IC0xKToKKyAgICAgICAgaWYgc2VsZi5fX2lvID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4oLTEpCisgICAgICAgIGlmIGxlbiA8IDA6CisgICAgICAgICAgICByZXR1cm4oc2VsZi5fX2lvLndyaXRlKHN0cikpCisgICAgICAgIHJldHVybihzZWxmLl9faW8ud3JpdGUoc3RyLCBsZW4pKQorCitjbGFzcyBpb1JlYWRXcmFwcGVyKGlvV3JhcHBlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIF9vYmosIGVuYyA9ICIiKToKKyAgICAgICAgaW9XcmFwcGVyLl9faW5pdF9fKHNlbGYsIF9vYmopCisgICAgICAgIHNlbGYuX28gPSBsaWJ4bWwybW9kLnhtbENyZWF0ZUlucHV0QnVmZmVyKHNlbGYsIGVuYykKKworICAgIGRlZiBfX2RlbF9fKHNlbGYpOgorICAgICAgICBwcmludCAiX19kZWxfXyIKKyAgICAgICAgc2VsZi5pb19jbG9zZSgpCisgICAgICAgIGlmIHNlbGYuX28gIT0gTm9uZToKKyAgICAgICAgICAgIGxpYnhtbDJtb2QueG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKHNlbGYuX28pCisgICAgICAgIHNlbGYuX28gPSBOb25lCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIHNlbGYuaW9fY2xvc2UoKQorICAgICAgICBpZiBzZWxmLl9vICE9IE5vbmU6CisgICAgICAgICAgICBsaWJ4bWwybW9kLnhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihzZWxmLl9vKQorICAgICAgICBzZWxmLl9vID0gTm9uZQorCitjbGFzcyBpb1dyaXRlV3JhcHBlcihpb1dyYXBwZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBfb2JqLCBlbmMgPSAiIik6CisjICAgICAgICBwcmludCAiaW9Xcml0ZVdyYXBwZXIuX19pbml0X18iLCBfb2JqCisgICAgICAgIGlmIHR5cGUoX29iaikgPT0gdHlwZSgnJyk6CisgICAgICAgICAgICBwcmludCAid3JpdGUgaW8gZnJvbSBhIHN0cmluZyIKKyAgICAgICAgICAgIHNlbGYubyA9IE5vbmUKKyAgICAgICAgZWxpZiB0eXBlKF9vYmopID09IHR5cGVzLkluc3RhbmNlVHlwZToKKyAgICAgICAgICAgIHByaW50ICJ3cml0ZSBpbyBmcm9tIGluc3RhbmNlIG9mICVzIiAlIChfb2JqLl9fY2xhc3NfXykKKyAgICAgICAgICAgIGlvV3JhcHBlci5fX2luaXRfXyhzZWxmLCBfb2JqKQorICAgICAgICAgICAgc2VsZi5fbyA9IGxpYnhtbDJtb2QueG1sQ3JlYXRlT3V0cHV0QnVmZmVyKHNlbGYsIGVuYykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZpbGUgPSBsaWJ4bWwybW9kLm91dHB1dEJ1ZmZlckdldFB5dGhvbkZpbGUoX29iaikKKyAgICAgICAgICAgIGlmIGZpbGUgIT0gTm9uZToKKyAgICAgICAgICAgICAgICBpb1dyYXBwZXIuX19pbml0X18oc2VsZiwgZmlsZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaW9XcmFwcGVyLl9faW5pdF9fKHNlbGYsIF9vYmopCisgICAgICAgICAgICBzZWxmLl9vID0gX29iagorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisjICAgICAgICBwcmludCAiX19kZWxfXyIKKyAgICAgICAgc2VsZi5pb19jbG9zZSgpCisgICAgICAgIGlmIHNlbGYuX28gIT0gTm9uZToKKyAgICAgICAgICAgIGxpYnhtbDJtb2QueG1sT3V0cHV0QnVmZmVyQ2xvc2Uoc2VsZi5fbykKKyAgICAgICAgc2VsZi5fbyA9IE5vbmUKKworICAgIGRlZiBmbHVzaChzZWxmKToKKyAgICAgICAgc2VsZi5pb19mbHVzaCgpCisgICAgICAgIGlmIHNlbGYuX28gIT0gTm9uZToKKyAgICAgICAgICAgIGxpYnhtbDJtb2QueG1sT3V0cHV0QnVmZmVyQ2xvc2Uoc2VsZi5fbykKKyAgICAgICAgc2VsZi5fbyA9IE5vbmUKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgc2VsZi5pb19mbHVzaCgpCisgICAgICAgIGlmIHNlbGYuX28gIT0gTm9uZToKKyAgICAgICAgICAgIGxpYnhtbDJtb2QueG1sT3V0cHV0QnVmZmVyQ2xvc2Uoc2VsZi5fbykKKyAgICAgICAgc2VsZi5fbyA9IE5vbmUKKworIworIyBFeGFtcGxlIG9mIGEgY2xhc3MgdG8gaGFuZGxlIFNBWCBldmVudHMKKyMKK2NsYXNzIFNBWENhbGxiYWNrOgorICAgICIiIkJhc2UgY2xhc3MgZm9yIFNBWCBoYW5kbGVycyIiIgorICAgIGRlZiBzdGFydERvY3VtZW50KHNlbGYpOgorICAgICAgICAiIiJjYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudCIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZW5kRG9jdW1lbnQoc2VsZik6CisgICAgICAgICIiImNhbGxlZCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIHRhZywgYXR0cnMpOgorICAgICAgICAiIiJjYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIGV2ZXJ5IGVsZW1lbnQsIHRhZyBpcyB0aGUgbmFtZSBvZgorICAgICAgICAgICB0aGUgZWxlbWVudCwgYXR0cnMgaXMgYSBkaWN0aW9uYXJ5IG9mIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlcyIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZW5kRWxlbWVudChzZWxmLCB0YWcpOgorICAgICAgICAiIiJjYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIGV2ZXJ5IGVsZW1lbnQsIHRhZyBpcyB0aGUgbmFtZSBvZgorICAgICAgICAgICB0aGUgZWxlbWVudCIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgY2hhcmFjdGVycyhzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiY2FsbGVkIHdoZW4gY2hhcmFjdGVyIGRhdGEgaGF2ZSBiZWVuIHJlYWQsIGRhdGEgaXMgdGhlIHN0cmluZworICAgICAgICAgICBjb250YWluaW5nIHRoZSBkYXRhLCBtdWx0aXBsZSBjb25zZWN1dGl2ZSBjaGFyYWN0ZXJzKCkgY2FsbGJhY2sKKyAgICAgICAgICAgYXJlIHBvc3NpYmxlLiIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgY2RhdGFCbG9jayhzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiY2FsbGVkIHdoZW4gQ0RBVEEgc2VjdGlvbiBoYXZlIGJlZW4gcmVhZCwgZGF0YSBpcyB0aGUgc3RyaW5nCisgICAgICAgICAgIGNvbnRhaW5pbmcgdGhlIGRhdGEsIG11bHRpcGxlIGNvbnNlY3V0aXZlIGNkYXRhQmxvY2soKSBjYWxsYmFjaworICAgICAgICAgICBhcmUgcG9zc2libGUuIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiByZWZlcmVuY2Uoc2VsZiwgbmFtZSk6CisgICAgICAgICIiImNhbGxlZCB3aGVuIGFuIGVudGl0eSByZWZlcmVuY2UgaGFzIGJlZW4gZm91bmQiIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIGlnbm9yYWJsZVdoaXRlc3BhY2Uoc2VsZiwgZGF0YSk6CisgICAgICAgICIiImNhbGxlZCB3aGVuIHBvdGVudGlhbGx5IGlnbm9yYWJsZSB3aGl0ZSBzcGFjZXMgaGF2ZSBiZWVuIGZvdW5kIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oc2VsZiwgdGFyZ2V0LCBkYXRhKToKKyAgICAgICAgIiIiY2FsbGVkIHdoZW4gYSBQSSBoYXMgYmVlbiBmb3VuZCwgdGFyZ2V0IGNvbnRhaW5zIHRoZSBQSSBuYW1lIGFuZAorICAgICAgICAgICBkYXRhIGlzIHRoZSBhc3NvY2lhdGVkIGRhdGEgaW4gdGhlIFBJIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiBjb21tZW50KHNlbGYsIGNvbnRlbnQpOgorICAgICAgICAiIiJjYWxsZWQgd2hlbiBhIGNvbW1lbnQgaGFzIGJlZW4gZm91bmQsIGNvbnRlbnQgY29udGFpbnMgdGhlIGNvbW1lbnQiIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIGV4dGVybmFsU3Vic2V0KHNlbGYsIG5hbWUsIGV4dGVybmFsSUQsIHN5c3RlbUlEKToKKyAgICAgICAgIiIiY2FsbGVkIHdoZW4gYSBET0NUWVBFIGRlY2xhcmF0aW9uIGhhcyBiZWVuIGZvdW5kLCBuYW1lIGlzIHRoZQorICAgICAgICAgICBEVEQgbmFtZSBhbmQgZXh0ZXJuYWxJRCwgc3lzdGVtSUQgYXJlIHRoZSBEVEQgcHVibGljIGFuZCBzeXN0ZW0KKyAgICAgICAgICAgaWRlbnRpZmllciBmb3IgdGhhdCBEVGQgaWYgYXZhaWxhYmxlIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiBpbnRlcm5hbFN1YnNldChzZWxmLCBuYW1lLCBleHRlcm5hbElELCBzeXN0ZW1JRCk6CisgICAgICAgICIiImNhbGxlZCB3aGVuIGEgRE9DVFlQRSBkZWNsYXJhdGlvbiBoYXMgYmVlbiBmb3VuZCwgbmFtZSBpcyB0aGUKKyAgICAgICAgICAgRFREIG5hbWUgYW5kIGV4dGVybmFsSUQsIHN5c3RlbUlEIGFyZSB0aGUgRFREIHB1YmxpYyBhbmQgc3lzdGVtCisgICAgICAgICAgIGlkZW50aWZpZXIgZm9yIHRoYXQgRFREIGlmIGF2YWlsYWJsZSIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZW50aXR5RGVjbChzZWxmLCBuYW1lLCB0eXBlLCBleHRlcm5hbElELCBzeXN0ZW1JRCwgY29udGVudCk6CisgICAgICAgICIiImNhbGxlZCB3aGVuIGFuIEVOVElUWSBkZWNsYXJhdGlvbiBoYXMgYmVlbiBmb3VuZCwgbmFtZSBpcyB0aGUKKyAgICAgICAgICAgZW50aXR5IG5hbWUgYW5kIGV4dGVybmFsSUQsIHN5c3RlbUlEIGFyZSB0aGUgZW50aXR5IHB1YmxpYyBhbmQKKyAgICAgICAgICAgc3lzdGVtIGlkZW50aWZpZXIgZm9yIHRoYXQgZW50aXR5IGlmIGF2YWlsYWJsZSwgdHlwZSBpbmRpY2F0ZXMKKyAgICAgICAgICAgdGhlIGVudGl0eSB0eXBlLCBhbmQgY29udGVudCByZXBvcnRzIGl0J3Mgc3RyaW5nIGNvbnRlbnQiIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIG5vdGF0aW9uRGVjbChzZWxmLCBuYW1lLCBleHRlcm5hbElELCBzeXN0ZW1JRCk6CisgICAgICAgICIiImNhbGxlZCB3aGVuIGFuIE5PVEFUSU9OIGRlY2xhcmF0aW9uIGhhcyBiZWVuIGZvdW5kLCBuYW1lIGlzIHRoZQorICAgICAgICAgICBub3RhdGlvbiBuYW1lIGFuZCBleHRlcm5hbElELCBzeXN0ZW1JRCBhcmUgdGhlIG5vdGF0aW9uIHB1YmxpYyBhbmQKKyAgICAgICAgICAgc3lzdGVtIGlkZW50aWZpZXIgZm9yIHRoYXQgbm90YXRpb24gaWYgYXZhaWxhYmxlIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiBhdHRyaWJ1dGVEZWNsKHNlbGYsIGVsZW0sIG5hbWUsIHR5cGUsIGRlZmksIGRlZmF1bHRWYWx1ZSwgbmFtZUxpc3QpOgorICAgICAgICAiIiJjYWxsZWQgd2hlbiBhbiBBVFRSSUJVVEUgZGVmaW5pdGlvbiBoYXMgYmVlbiBmb3VuZCIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZWxlbWVudERlY2woc2VsZiwgbmFtZSwgdHlwZSwgY29udGVudCk6CisgICAgICAgICIiImNhbGxlZCB3aGVuIGFuIEVMRU1FTlQgZGVmaW5pdGlvbiBoYXMgYmVlbiBmb3VuZCIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZW50aXR5RGVjbChzZWxmLCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSUQsIG5vdGF0aW9uTmFtZSk6CisgICAgICAgICIiImNhbGxlZCB3aGVuIGFuIHVucGFyc2VkIEVOVElUWSBkZWNsYXJhdGlvbiBoYXMgYmVlbiBmb3VuZCwKKyAgICAgICAgICAgbmFtZSBpcyB0aGUgZW50aXR5IG5hbWUgYW5kIHB1YmxpY0lkLCwgc3lzdGVtSUQgYXJlIHRoZSBlbnRpdHkKKyAgICAgICAgICAgcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllciBmb3IgdGhhdCBlbnRpdHkgaWYgYXZhaWxhYmxlLAorICAgICAgICAgICBhbmQgbm90YXRpb25OYW1lIGluZGljYXRlIHRoZSBhc3NvY2lhdGVkIE5PVEFUSU9OIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiB3YXJuaW5nKHNlbGYsIG1zZyk6CisgICAgICAgICNwcmludCBtc2cKKyAgICAgICAgcGFzcworCisgICAgZGVmIGVycm9yKHNlbGYsIG1zZyk6CisgICAgICAgIHJhaXNlIHBhcnNlckVycm9yKG1zZykKKworICAgIGRlZiBmYXRhbEVycm9yKHNlbGYsIG1zZyk6CisgICAgICAgIHJhaXNlIHBhcnNlckVycm9yKG1zZykKKworIworIyBUaGlzIGNsYXNzIGlzIHRoZSBhbmNlc3RvciBvZiBhbGwgdGhlIE5vZGUgY2xhc3Nlcy4gSXQgcHJvdmlkZXMKKyMgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdGllcyBzaGFyZWQgYnkgYWxsIG5vZGVzIChhbmQgaGFuZGxlCisjIGdyYWNlZnlsbHkgdGhlIGV4Y2VwdGlvbiksIGxpa2UgbmFtZSwgbmF2aWdhdGlvbiBpbiB0aGUgdHJlZSwKKyMgZG9jIHJlZmVyZW5jZSwgY29udGVudCBhY2Nlc3MgYW5kIHNlcmlhbGl6aW5nIHRvIGEgc3RyaW5nIG9yIFVSSQorIworY2xhc3MgeG1sQ29yZToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgX29iaj1Ob25lKToKKyAgICAgICAgaWYgX29iaiAhPSBOb25lOiAKKyAgICAgICAgICAgIHNlbGYuX28gPSBfb2JqOworICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYuX28gPSBOb25lCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgb3RoZXIgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXQgPSBsaWJ4bWwybW9kLmNvbXBhcmVOb2Rlc0VxdWFsKHNlbGYuX28sIG90aGVyLl9vKQorICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gcmV0ID09IFRydWUKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgb3RoZXIgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldCA9IGxpYnhtbDJtb2QuY29tcGFyZU5vZGVzRXF1YWwoc2VsZi5fbywgb3RoZXIuX28pCisgICAgICAgIHJldHVybiBub3QgcmV0CisgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICByZXQgPSBsaWJ4bWwybW9kLm5vZGVIYXNoKHNlbGYuX28pCisgICAgICAgIHJldHVybiByZXQKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJpYWxpemUoKQorICAgIGRlZiBnZXRfcGFyZW50KHNlbGYpOgorICAgICAgICByZXQgPSBsaWJ4bWwybW9kLnBhcmVudChzZWxmLl9vKQorICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiB4bWxOb2RlKF9vYmo9cmV0KQorICAgIGRlZiBnZXRfY2hpbGRyZW4oc2VsZik6CisgICAgICAgIHJldCA9IGxpYnhtbDJtb2QuY2hpbGRyZW4oc2VsZi5fbykKKyAgICAgICAgaWYgcmV0ID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4geG1sTm9kZShfb2JqPXJldCkKKyAgICBkZWYgZ2V0X2xhc3Qoc2VsZik6CisgICAgICAgIHJldCA9IGxpYnhtbDJtb2QubGFzdChzZWxmLl9vKQorICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiB4bWxOb2RlKF9vYmo9cmV0KQorICAgIGRlZiBnZXRfbmV4dChzZWxmKToKKyAgICAgICAgcmV0ID0gbGlieG1sMm1vZC5uZXh0KHNlbGYuX28pCisgICAgICAgIGlmIHJldCA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHhtbE5vZGUoX29iaj1yZXQpCisgICAgZGVmIGdldF9wcm9wZXJ0aWVzKHNlbGYpOgorICAgICAgICByZXQgPSBsaWJ4bWwybW9kLnByb3BlcnRpZXMoc2VsZi5fbykKKyAgICAgICAgaWYgcmV0ID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4geG1sQXR0cihfb2JqPXJldCkKKyAgICBkZWYgZ2V0X3ByZXYoc2VsZik6CisgICAgICAgIHJldCA9IGxpYnhtbDJtb2QucHJldihzZWxmLl9vKQorICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiB4bWxOb2RlKF9vYmo9cmV0KQorICAgIGRlZiBnZXRfY29udGVudChzZWxmKToKKyAgICAgICAgcmV0dXJuIGxpYnhtbDJtb2QueG1sTm9kZUdldENvbnRlbnQoc2VsZi5fbykKKyAgICBnZXRDb250ZW50ID0gZ2V0X2NvbnRlbnQgICMgd2h5IGlzIHRoaXMgZHVwbGljYXRlIG5hbWluZyBuZWVkZWQgPworICAgIGRlZiBnZXRfbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIGxpYnhtbDJtb2QubmFtZShzZWxmLl9vKQorICAgIGRlZiBnZXRfdHlwZShzZWxmKToKKyAgICAgICAgcmV0dXJuIGxpYnhtbDJtb2QudHlwZShzZWxmLl9vKQorICAgIGRlZiBnZXRfZG9jKHNlbGYpOgorICAgICAgICByZXQgPSBsaWJ4bWwybW9kLmRvYyhzZWxmLl9vKQorICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgIGlmIHNlbGYudHlwZSBpbiBbImRvY3VtZW50X3htbCIsICJkb2N1bWVudF9odG1sIl06CisgICAgICAgICAgICAgICAgcmV0dXJuIHhtbERvYyhfb2JqPXNlbGYuX28pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiB4bWxEb2MoX29iaj1yZXQpCisgICAgIworICAgICMgVGhvc2UgYXJlIGNvbW1vbiBhdHRyaWJ1dGVzIHRvIG5lYXJseSBhbGwgdHlwZSBvZiBub2RlcworICAgICMgZGVmaW5lZCBhcyBweXRob24yIHByb3BlcnRpZXMKKyAgICAjIAorICAgIGltcG9ydCBzeXMKKyAgICBpZiBmbG9hdChzeXMudmVyc2lvblswOjNdKSA8IDIuMjoKKyAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIpOgorICAgICAgICAgICAgaWYgYXR0ciA9PSAicGFyZW50IjoKKyAgICAgICAgICAgICAgICByZXQgPSBsaWJ4bWwybW9kLnBhcmVudChzZWxmLl9vKQorICAgICAgICAgICAgICAgIGlmIHJldCA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgICAgIHJldHVybiB4bWxOb2RlKF9vYmo9cmV0KQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICJwcm9wZXJ0aWVzIjoKKyAgICAgICAgICAgICAgICByZXQgPSBsaWJ4bWwybW9kLnByb3BlcnRpZXMoc2VsZi5fbykKKyAgICAgICAgICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgICAgICByZXR1cm4geG1sQXR0cihfb2JqPXJldCkKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAiY2hpbGRyZW4iOgorICAgICAgICAgICAgICAgIHJldCA9IGxpYnhtbDJtb2QuY2hpbGRyZW4oc2VsZi5fbykKKyAgICAgICAgICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgICAgICByZXR1cm4geG1sTm9kZShfb2JqPXJldCkKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAibGFzdCI6CisgICAgICAgICAgICAgICAgcmV0ID0gbGlieG1sMm1vZC5sYXN0KHNlbGYuX28pCisgICAgICAgICAgICAgICAgaWYgcmV0ID09IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICAgICAgcmV0dXJuIHhtbE5vZGUoX29iaj1yZXQpCisgICAgICAgICAgICBlbGlmIGF0dHIgPT0gIm5leHQiOgorICAgICAgICAgICAgICAgIHJldCA9IGxpYnhtbDJtb2QubmV4dChzZWxmLl9vKQorICAgICAgICAgICAgICAgIGlmIHJldCA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgICAgIHJldHVybiB4bWxOb2RlKF9vYmo9cmV0KQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICJwcmV2IjoKKyAgICAgICAgICAgICAgICByZXQgPSBsaWJ4bWwybW9kLnByZXYoc2VsZi5fbykKKyAgICAgICAgICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgICAgICByZXR1cm4geG1sTm9kZShfb2JqPXJldCkKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAiY29udGVudCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpYnhtbDJtb2QueG1sTm9kZUdldENvbnRlbnQoc2VsZi5fbykKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAibmFtZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpYnhtbDJtb2QubmFtZShzZWxmLl9vKQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICJ0eXBlIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gbGlieG1sMm1vZC50eXBlKHNlbGYuX28pCisgICAgICAgICAgICBlbGlmIGF0dHIgPT0gImRvYyI6CisgICAgICAgICAgICAgICAgcmV0ID0gbGlieG1sMm1vZC5kb2Moc2VsZi5fbykKKyAgICAgICAgICAgICAgICBpZiByZXQgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi50eXBlID09ICJkb2N1bWVudF94bWwiIG9yIHNlbGYudHlwZSA9PSAiZG9jdW1lbnRfaHRtbCI6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geG1sRG9jKF9vYmo9c2VsZi5fbykKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICAgICAgcmV0dXJuIHhtbERvYyhfb2JqPXJldCkKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yLGF0dHIKKyAgICBlbHNlOgorICAgICAgICBwYXJlbnQgPSBwcm9wZXJ0eShnZXRfcGFyZW50LCBOb25lLCBOb25lLCAiUGFyZW50IG5vZGUiKQorICAgICAgICBjaGlsZHJlbiA9IHByb3BlcnR5KGdldF9jaGlsZHJlbiwgTm9uZSwgTm9uZSwgIkZpcnN0IGNoaWxkIG5vZGUiKQorICAgICAgICBsYXN0ID0gcHJvcGVydHkoZ2V0X2xhc3QsIE5vbmUsIE5vbmUsICJMYXN0IHNpYmxpbmcgbm9kZSIpCisgICAgICAgIG5leHQgPSBwcm9wZXJ0eShnZXRfbmV4dCwgTm9uZSwgTm9uZSwgIk5leHQgc2libGluZyBub2RlIikKKyAgICAgICAgcHJldiA9IHByb3BlcnR5KGdldF9wcmV2LCBOb25lLCBOb25lLCAiUHJldmlvdXMgc2libGluZyBub2RlIikKKyAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnR5KGdldF9wcm9wZXJ0aWVzLCBOb25lLCBOb25lLCAiTGlzdCBvZiBwcm9wZXJpZXMiKQorICAgICAgICBjb250ZW50ID0gcHJvcGVydHkoZ2V0X2NvbnRlbnQsIE5vbmUsIE5vbmUsICJDb250ZW50IG9mIHRoaXMgbm9kZSIpCisgICAgICAgIG5hbWUgPSBwcm9wZXJ0eShnZXRfbmFtZSwgTm9uZSwgTm9uZSwgIk5vZGUgbmFtZSIpCisgICAgICAgIHR5cGUgPSBwcm9wZXJ0eShnZXRfdHlwZSwgTm9uZSwgTm9uZSwgIk5vZGUgdHlwZSIpCisgICAgICAgIGRvYyA9IHByb3BlcnR5KGdldF9kb2MsIE5vbmUsIE5vbmUsICJUaGUgZG9jdW1lbnQgdGhpcyBub2RlIGJlbG9uZ3MgdG8iKQorCisgICAgIworICAgICMgU2VyaWFsaXphdGlvbiByb3V0aW5lcywgdGhlIG9wdGlvbmFsIGFyZ3VtZW50cyBoYXZlIHRoZSBmb2xsb3dpbmcKKyAgICAjIG1lYW5pbmc6CisgICAgIyAgICAgZW5jb2Rpbmc6IHN0cmluZyB0byBhc2sgc2F2aW5nIGluIGEgc3BlY2lmaWMgZW5jb2RpbmcKKyAgICAjICAgICBpbmRlbnQ6IGlmIDEgdGhlIHNlcmlhbGl6ZXIgaXMgYXNrZWQgdG8gaW5kZW50IHRoZSBvdXRwdXQKKyAgICAjCisgICAgZGVmIHNlcmlhbGl6ZShzZWxmLCBlbmNvZGluZyA9IE5vbmUsIGZvcm1hdCA9IDApOgorICAgICAgICByZXR1cm4gbGlieG1sMm1vZC5zZXJpYWxpemVOb2RlKHNlbGYuX28sIGVuY29kaW5nLCBmb3JtYXQpCisgICAgZGVmIHNhdmVUbyhzZWxmLCBmaWxlLCBlbmNvZGluZyA9IE5vbmUsIGZvcm1hdCA9IDApOgorICAgICAgICByZXR1cm4gbGlieG1sMm1vZC5zYXZlTm9kZVRvKHNlbGYuX28sIGZpbGUsIGVuY29kaW5nLCBmb3JtYXQpCisgICAgICAgICAgICAKKyAgICAjCisgICAgIyBDYW5vbmljYWxpemF0aW9uIHJvdXRpbmVzOgorICAgICMKKyAgICAjICAgbm9kZXM6IHRoZSBub2RlIHNldCAodHVwbGUgb3IgbGlzdCkgdG8gYmUgaW5jbHVkZWQgaW4gdGhlCisgICAgIyAgICAgY2Fub25pemVkIGltYWdlIG9yIE5vbmUgaWYgYWxsIGRvY3VtZW50IG5vZGVzIHNob3VsZCBiZQorICAgICMgICAgIGluY2x1ZGVkLgorICAgICMgICBleGNsdXNpdmU6IHRoZSBleGNsdXNpdmUgZmxhZyAoMCAtIG5vbi1leGNsdXNpdmUKKyAgICAjICAgICBjYW5vbmljYWxpemF0aW9uOyBvdGhlcndpc2UgLSBleGNsdXNpdmUgY2Fub25pY2FsaXphdGlvbikKKyAgICAjICAgcHJlZml4ZXM6IHRoZSBsaXN0IG9mIGluY2x1c2l2ZSBuYW1lc3BhY2UgcHJlZml4ZXMgKHN0cmluZ3MpLAorICAgICMgICAgIG9yIE5vbmUgaWYgdGhlcmUgaXMgbm8gaW5jbHVzaXZlIG5hbWVzcGFjZXMgKG9ubHkgZm9yCisgICAgIyAgICAgZXhjbHVzaXZlIGNhbm9uaWNhbGl6YXRpb24sIGlnbm9yZWQgb3RoZXJ3aXNlKQorICAgICMgICB3aXRoX2NvbW1lbnRzOiBpbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90CisgICAgIyAgICAgKD09MCkKKyAgICBkZWYgYzE0bk1lbW9yeShzZWxmLAorICAgICAgICAgICAgICAgICAgIG5vZGVzPU5vbmUsCisgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlPTAsCisgICAgICAgICAgICAgICAgICAgcHJlZml4ZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICB3aXRoX2NvbW1lbnRzPTApOgorICAgICAgICBpZiBub2RlczoKKyAgICAgICAgICAgIG5vZGVzID0gbWFwKGxhbWJkYSBuOiBuLl9vLCBub2RlcykKKyAgICAgICAgcmV0dXJuIGxpYnhtbDJtb2QueG1sQzE0TkRvY0R1bXBNZW1vcnkoCisgICAgICAgICAgICBzZWxmLmdldF9kb2MoKS5fbywKKyAgICAgICAgICAgIG5vZGVzLAorICAgICAgICAgICAgZXhjbHVzaXZlICE9IDAsCisgICAgICAgICAgICBwcmVmaXhlcywKKyAgICAgICAgICAgIHdpdGhfY29tbWVudHMgIT0gMCkKKyAgICBkZWYgYzE0blNhdmVUbyhzZWxmLAorICAgICAgICAgICAgICAgICAgIGZpbGUsCisgICAgICAgICAgICAgICAgICAgbm9kZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICBleGNsdXNpdmU9MCwKKyAgICAgICAgICAgICAgICAgICBwcmVmaXhlcz1Ob25lLAorICAgICAgICAgICAgICAgICAgIHdpdGhfY29tbWVudHM9MCk6CisgICAgICAgIGlmIG5vZGVzOgorICAgICAgICAgICAgbm9kZXMgPSBtYXAobGFtYmRhIG46IG4uX28sIG5vZGVzKQorICAgICAgICByZXR1cm4gbGlieG1sMm1vZC54bWxDMTRORG9jU2F2ZVRvKAorICAgICAgICAgICAgc2VsZi5nZXRfZG9jKCkuX28sCisgICAgICAgICAgICBub2RlcywKKyAgICAgICAgICAgIGV4Y2x1c2l2ZSAhPSAwLAorICAgICAgICAgICAgcHJlZml4ZXMsCisgICAgICAgICAgICB3aXRoX2NvbW1lbnRzICE9IDAsCisgICAgICAgICAgICBmaWxlKQorCisgICAgIworICAgICMgU2VsZWN0aW5nIG5vZGVzIHVzaW5nIFhQYXRoLCBhIGJpdCBzbG93IGJlY2F1c2UgdGhlIGNvbnRleHQKKyAgICAjIGlzIGFsbG9jYXRlZC9mcmVlZCBldmVyeSB0aW1lIGJ1dCBjb252ZW5pZW50LgorICAgICMKKyAgICBkZWYgeHBhdGhFdmFsKHNlbGYsIGV4cHIpOgorICAgICAgICBkb2MgPSBzZWxmLmRvYworICAgICAgICBpZiBkb2MgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGN0eHQgPSBkb2MueHBhdGhOZXdDb250ZXh0KCkKKyAgICAgICAgY3R4dC5zZXRDb250ZXh0Tm9kZShzZWxmKQorICAgICAgICByZXMgPSBjdHh0LnhwYXRoRXZhbChleHByKQorICAgICAgICBjdHh0LnhwYXRoRnJlZUNvbnRleHQoKQorICAgICAgICByZXR1cm4gcmVzCisKKyMgICAgIworIyAgICAjIFNlbGVjdGluZyBub2RlcyB1c2luZyBYUGF0aCwgZmFzdGVyIGJlY2F1c2UgdGhlIGNvbnRleHQKKyMgICAgIyBpcyBhbGxvY2F0ZWQganVzdCBvbmNlIHBlciB4bWxEb2MuCisjICAgICMKKyMgICAgIyBSZW1vdmVkOiBEViBtZW1sZWFrcyBjLmYuICMxMjY3MzUKKyMgICAgIworIyAgICBkZWYgeHBhdGhFdmFsMihzZWxmLCBleHByKToKKyMgICAgICAgIGRvYyA9IHNlbGYuZG9jCisjICAgICAgICBpZiBkb2MgPT0gTm9uZToKKyMgICAgICAgICAgICByZXR1cm4gTm9uZQorIyAgICAgICAgdHJ5OgorIyAgICAgICAgICAgIGRvYy5fY3R4dC5zZXRDb250ZXh0Tm9kZShzZWxmKQorIyAgICAgICAgZXhjZXB0OgorIyAgICAgICAgICAgIGRvYy5fY3R4dCA9IGRvYy54cGF0aE5ld0NvbnRleHQoKQorIyAgICAgICAgICAgIGRvYy5fY3R4dC5zZXRDb250ZXh0Tm9kZShzZWxmKQorIyAgICAgICAgcmVzID0gZG9jLl9jdHh0LnhwYXRoRXZhbChleHByKQorIyAgICAgICAgcmV0dXJuIHJlcworICAgIGRlZiB4cGF0aEV2YWwyKHNlbGYsIGV4cHIpOgorICAgICAgICByZXR1cm4gc2VsZi54cGF0aEV2YWwoZXhwcikKKworICAgICMgUmVtb3ZlIG5hbWVzcGFjZXMKKyAgICBkZWYgcmVtb3ZlTnNEZWYoc2VsZiwgaHJlZik6CisgICAgICAgICIiIgorICAgICAgICBSZW1vdmUgYSBuYW1lc3BhY2UgZGVmaW5pdGlvbiBmcm9tIGEgbm9kZS4gIElmIGhyZWYgaXMgTm9uZSwKKyAgICAgICAgcmVtb3ZlIGFsbCBvZiB0aGUgbnMgZGVmaW5pdGlvbnMgb24gdGhhdCBub2RlLiAgVGhlIHJlbW92ZWQKKyAgICAgICAgbmFtZXNwYWNlcyBhcmUgcmV0dXJuZWQgYXMgYSBsaW5rZWQgbGlzdC4KKworICAgICAgICBOb3RlOiBJZiBhbnkgY2hpbGQgbm9kZXMgcmVmZXJyZWQgdG8gdGhlIHJlbW92ZWQgbmFtZXNwYWNlcywKKyAgICAgICAgdGhleSB3aWxsIGJlIGxlZnQgd2l0aCBkYW5nbGluZyBsaW5rcy4gIFlvdSBzaG91bGQgY2FsbAorICAgICAgICByZW5jb25jaWxpYXRlTnMoKSB0byBmaXggdGhvc2UgcG9pbnRlcnMuCisKKyAgICAgICAgTm90ZTogVGhpcyBtZXRob2QgZG9lcyBub3QgZnJlZSBtZW1vcnkgdGFrZW4gYnkgdGhlIG5zCisgICAgICAgIGRlZmluaXRpb25zLiAgWW91IHdpbGwgbmVlZCB0byBmcmVlIGl0IG1hbnVhbGx5IHdpdGggdGhlCisgICAgICAgIGZyZWVOc0xpc3QoKSBtZXRob2Qgb24gdGhlIHJldHVybnMgeG1sTnMgb2JqZWN0LgorICAgICAgICAiIiIKKworICAgICAgICByZXQgPSBsaWJ4bWwybW9kLnhtbE5vZGVSZW1vdmVOc0RlZihzZWxmLl9vLCBocmVmKQorICAgICAgICBpZiByZXQgaXMgTm9uZTpyZXR1cm4gTm9uZQorICAgICAgICBfX3RtcCA9IHhtbE5zKF9vYmo9cmV0KQorICAgICAgICByZXR1cm4gX190bXAKKworICAgICMgc3VwcG9ydCBmb3IgcHl0aG9uMiBpdGVyYXRvcnMKKyAgICBkZWYgd2Fsa19kZXB0aF9maXJzdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHhtbENvcmVEZXB0aEZpcnN0SXRlcnRvcihzZWxmKQorICAgIGRlZiB3YWxrX2JyZWFkdGhfZmlyc3Qoc2VsZik6CisgICAgICAgIHJldHVybiB4bWxDb3JlQnJlYWR0aEZpcnN0SXRlcnRvcihzZWxmKQorICAgIF9faXRlcl9fID0gd2Fsa19kZXB0aF9maXJzdAorCisgICAgZGVmIGZyZWUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZG9jLl9jdHh0LnhwYXRoRnJlZUNvbnRleHQoKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGxpYnhtbDJtb2QueG1sRnJlZURvYyhzZWxmLl9vKQorCisKKyMKKyMgaW1wbGVtZW50cyB0aGUgZGVwdGgtZmlyc3QgaXRlcmF0b3IgZm9yIGxpYnhtbDIgRE9NIHRyZWUKKyMKK2NsYXNzIHhtbENvcmVEZXB0aEZpcnN0SXRlcnRvcjoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgc2VsZi5wYXJlbnRzID0gW10KKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBpZiBzZWxmLm5vZGU6CisgICAgICAgICAgICAgICAgcmV0ID0gc2VsZi5ub2RlCisgICAgICAgICAgICAgICAgc2VsZi5wYXJlbnRzLmFwcGVuZChzZWxmLm5vZGUpCisgICAgICAgICAgICAgICAgc2VsZi5ub2RlID0gc2VsZi5ub2RlLmNoaWxkcmVuCisgICAgICAgICAgICAgICAgcmV0dXJuIHJldAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHBhcmVudCA9IHNlbGYucGFyZW50cy5wb3AoKQorICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorICAgICAgICAgICAgc2VsZi5ub2RlID0gcGFyZW50Lm5leHQKKworIworIyBpbXBsZW1lbnRzIHRoZSBicmVhZHRoLWZpcnN0IGl0ZXJhdG9yIGZvciBsaWJ4bWwyIERPTSB0cmVlCisjCitjbGFzcyB4bWxDb3JlQnJlYWR0aEZpcnN0SXRlcnRvcjoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgc2VsZi5wYXJlbnRzID0gW10KKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBpZiBzZWxmLm5vZGU6CisgICAgICAgICAgICAgICAgcmV0ID0gc2VsZi5ub2RlCisgICAgICAgICAgICAgICAgc2VsZi5wYXJlbnRzLmFwcGVuZChzZWxmLm5vZGUpCisgICAgICAgICAgICAgICAgc2VsZi5ub2RlID0gc2VsZi5ub2RlLm5leHQKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcGFyZW50ID0gc2VsZi5wYXJlbnRzLnBvcCgpCisgICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisgICAgICAgICAgICBzZWxmLm5vZGUgPSBwYXJlbnQuY2hpbGRyZW4KKworIworIyBjb252ZXJ0ZXJzIHRvIHByZXNlbnQgYSBuaWNlciB2aWV3IG9mIHRoZSBYUGF0aCByZXR1cm5zCisjCitkZWYgbm9kZVdyYXAobyk6CisgICAgIyBUT0RPIHRyeSB0byBjYXN0IHRvIHRoZSBtb3N0IGFwcHJvcHJpYXRlIG5vZGUgY2xhc3MKKyAgICBuYW1lID0gbGlieG1sMm1vZC50eXBlKG8pCisgICAgaWYgbmFtZSA9PSAiZWxlbWVudCIgb3IgbmFtZSA9PSAidGV4dCI6CisgICAgICAgIHJldHVybiB4bWxOb2RlKF9vYmo9bykKKyAgICBpZiBuYW1lID09ICJhdHRyaWJ1dGUiOgorICAgICAgICByZXR1cm4geG1sQXR0cihfb2JqPW8pCisgICAgaWYgbmFtZVswOjhdID09ICJkb2N1bWVudCI6CisgICAgICAgIHJldHVybiB4bWxEb2MoX29iaj1vKQorICAgIGlmIG5hbWUgPT0gIm5hbWVzcGFjZSI6CisgICAgICAgIHJldHVybiB4bWxOcyhfb2JqPW8pCisgICAgaWYgbmFtZSA9PSAiZWxlbV9kZWNsIjoKKyAgICAgICAgcmV0dXJuIHhtbEVsZW1lbnQoX29iaj1vKQorICAgIGlmIG5hbWUgPT0gImF0dHJpYnV0ZV9kZWNsIjoKKyAgICAgICAgcmV0dXJuIHhtbEF0dHJpYnV0ZShfb2JqPW8pCisgICAgaWYgbmFtZSA9PSAiZW50aXR5X2RlY2wiOgorICAgICAgICByZXR1cm4geG1sRW50aXR5KF9vYmo9bykKKyAgICBpZiBuYW1lID09ICJkdGQiOgorICAgICAgICByZXR1cm4geG1sRHRkKF9vYmo9bykKKyAgICByZXR1cm4geG1sTm9kZShfb2JqPW8pCisKK2RlZiB4cGF0aE9iamVjdFJldChvKToKKyAgICBvdHlwZSA9IHR5cGUobykKKyAgICBpZiBvdHlwZSA9PSB0eXBlKFtdKToKKyAgICAgICAgcmV0ID0gbWFwKHhwYXRoT2JqZWN0UmV0LCBvKQorICAgICAgICByZXR1cm4gcmV0CisgICAgZWxpZiBvdHlwZSA9PSB0eXBlKCgpKToKKyAgICAgICAgcmV0ID0gbWFwKHhwYXRoT2JqZWN0UmV0LCBvKQorICAgICAgICByZXR1cm4gdHVwbGUocmV0KQorICAgIGVsaWYgb3R5cGUgPT0gdHlwZSgnJykgb3Igb3R5cGUgPT0gdHlwZSgwKSBvciBvdHlwZSA9PSB0eXBlKDAuMCk6CisgICAgICAgIHJldHVybiBvCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIG5vZGVXcmFwKG8pCisKKyMKKyMgcmVnaXN0ZXIgYW4gWFBhdGggZnVuY3Rpb24KKyMKK2RlZiByZWdpc3RlclhQYXRoRnVuY3Rpb24oY3R4dCwgbmFtZSwgbnNfdXJpLCBmKToKKyAgICByZXQgPSBsaWJ4bWwybW9kLnhtbFJlZ2lzdGVyWFBhdGhGdW5jdGlvbihjdHh0LCBuYW1lLCBuc191cmksIGYpCisKKyMKKyMgRm9yIHRoZSB4bWxUZXh0UmVhZGVyIHBhcnNlciBjb25maWd1cmF0aW9uCisjCitQQVJTRVJfTE9BRERURD0xCitQQVJTRVJfREVGQVVMVEFUVFJTPTIKK1BBUlNFUl9WQUxJREFURT0zCitQQVJTRVJfU1VCU1RfRU5USVRJRVM9NAorCisjCisjIEZvciB0aGUgZXJyb3IgY2FsbGJhY2sgc2V2ZXJpdGllcworIworUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX1dBUk5JTkc9MQorUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX0VSUk9SPTIKK1BBUlNFUl9TRVZFUklUWV9XQVJOSU5HPTMKK1BBUlNFUl9TRVZFUklUWV9FUlJPUj00CisKKyMKKyMgcmVnaXN0ZXIgdGhlIGxpYnhtbDIgZXJyb3IgaGFuZGxlcgorIworZGVmIHJlZ2lzdGVyRXJyb3JIYW5kbGVyKGYsIGN0eCk6CisgICAgIiIiUmVnaXN0ZXIgYSBQeXRob24gd3JpdHRlbiBmdW5jdGlvbiB0byBmb3IgZXJyb3IgcmVwb3J0aW5nLgorICAgICAgIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgYmFjayBhcyBmKGN0eCwgZXJyb3IpLiAiIiIKKyAgICBpbXBvcnQgc3lzCisgICAgaWYgbm90IHN5cy5tb2R1bGVzLmhhc19rZXkoJ2xpYnhzbHQnKToKKyAgICAgICAgIyBub3JtYWwgYmVoYXZpb3VyIHdoZW4gbGlieHNsdCBpcyBub3QgaW1wb3J0ZWQKKyAgICAgICAgcmV0ID0gbGlieG1sMm1vZC54bWxSZWdpc3RlckVycm9ySGFuZGxlcihmLGN0eCkKKyAgICBlbHNlOgorICAgICAgICAjIHdoZW4gbGlieHNsdCBpcyBhbHJlYWR5IGltcG9ydGVkLCBvbmUgbXVzdAorICAgICAgICAjIHVzZSBsaWJ4c3QncyBlcnJvciBoYW5kbGVyIGluc3RlYWQKKyAgICAgICAgaW1wb3J0IGxpYnhzbHQKKyAgICAgICAgcmV0ID0gbGlieHNsdC5yZWdpc3RlckVycm9ySGFuZGxlcihmLGN0eCkKKyAgICByZXR1cm4gcmV0CisKK2NsYXNzIHBhcnNlckN0eHRDb3JlOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIF9vYmo9Tm9uZSk6CisgICAgICAgIGlmIF9vYmogIT0gTm9uZTogCisgICAgICAgICAgICBzZWxmLl9vID0gX29iajsKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLl9vID0gTm9uZQorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYuX28gIT0gTm9uZToKKyAgICAgICAgICAgIGxpYnhtbDJtb2QueG1sRnJlZVBhcnNlckN0eHQoc2VsZi5fbykKKyAgICAgICAgc2VsZi5fbyA9IE5vbmUKKworICAgIGRlZiBzZXRFcnJvckhhbmRsZXIoc2VsZixmLGFyZyk6CisgICAgICAgICIiIlJlZ2lzdGVyIGFuIGVycm9yIGhhbmRsZXIgdGhhdCB3aWxsIGJlIGNhbGxlZCBiYWNrIGFzCisgICAgICAgICAgIGYoYXJnLG1zZyxzZXZlcml0eSxyZXNlcnZlZCkuCisgICAgICAgICAgIAorICAgICAgICAgICBAcmVzZXJ2ZWQgaXMgY3VycmVudGx5IGFsd2F5cyBOb25lLiIiIgorICAgICAgICBsaWJ4bWwybW9kLnhtbFBhcnNlckN0eHRTZXRFcnJvckhhbmRsZXIoc2VsZi5fbyxmLGFyZykKKworICAgIGRlZiBnZXRFcnJvckhhbmRsZXIoc2VsZik6CisgICAgICAgICIiIlJldHVybiAoZixhcmcpIGFzIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIHNldEVycm9ySGFuZGxlcgorICAgICAgICAgICBvciAoTm9uZSxOb25lKS4iIiIKKyAgICAgICAgcmV0dXJuIGxpYnhtbDJtb2QueG1sUGFyc2VyQ3R4dEdldEVycm9ySGFuZGxlcihzZWxmLl9vKQorCisgICAgZGVmIGFkZExvY2FsQ2F0YWxvZyhzZWxmLCB1cmkpOgorICAgICAgICAiIiJSZWdpc3RlciBhIGxvY2FsIGNhdGFsb2cgd2l0aCB0aGUgcGFyc2VyIiIiCisgICAgICAgIHJldHVybiBsaWJ4bWwybW9kLmFkZExvY2FsQ2F0YWxvZyhzZWxmLl9vLCB1cmkpCisgICAgCisKK2NsYXNzIFZhbGlkQ3R4dENvcmU6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgc2V0VmFsaWRpdHlFcnJvckhhbmRsZXIoc2VsZiwgZXJyX2Z1bmMsIHdhcm5fZnVuYywgYXJnPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVnaXN0ZXIgZXJyb3IgYW5kIHdhcm5pbmcgaGFuZGxlcnMgZm9yIERURCB2YWxpZGF0aW9uLgorICAgICAgICBUaGVzZSB3aWxsIGJlIGNhbGxlZCBiYWNrIGFzIGYobXNnLGFyZykKKyAgICAgICAgIiIiCisgICAgICAgIGxpYnhtbDJtb2QueG1sU2V0VmFsaWRFcnJvcnMoc2VsZi5fbywgZXJyX2Z1bmMsIHdhcm5fZnVuYywgYXJnKQorICAgIAorCitjbGFzcyBTY2hlbWFWYWxpZEN0eHRDb3JlOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHNldFZhbGlkaXR5RXJyb3JIYW5kbGVyKHNlbGYsIGVycl9mdW5jLCB3YXJuX2Z1bmMsIGFyZz1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlZ2lzdGVyIGVycm9yIGFuZCB3YXJuaW5nIGhhbmRsZXJzIGZvciBTY2hlbWEgdmFsaWRhdGlvbi4KKyAgICAgICAgVGhlc2Ugd2lsbCBiZSBjYWxsZWQgYmFjayBhcyBmKG1zZyxhcmcpCisgICAgICAgICIiIgorICAgICAgICBsaWJ4bWwybW9kLnhtbFNjaGVtYVNldFZhbGlkRXJyb3JzKHNlbGYuX28sIGVycl9mdW5jLCB3YXJuX2Z1bmMsIGFyZykKKworCitjbGFzcyByZWxheE5nVmFsaWRDdHh0Q29yZToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBzZXRWYWxpZGl0eUVycm9ySGFuZGxlcihzZWxmLCBlcnJfZnVuYywgd2Fybl9mdW5jLCBhcmc9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBSZWdpc3RlciBlcnJvciBhbmQgd2FybmluZyBoYW5kbGVycyBmb3IgUmVsYXhORyB2YWxpZGF0aW9uLgorICAgICAgICBUaGVzZSB3aWxsIGJlIGNhbGxlZCBiYWNrIGFzIGYobXNnLGFyZykKKyAgICAgICAgIiIiCisgICAgICAgIGxpYnhtbDJtb2QueG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzKHNlbGYuX28sIGVycl9mdW5jLCB3YXJuX2Z1bmMsIGFyZykKKworICAgIAorZGVmIF94bWxUZXh0UmVhZGVyRXJyb3JGdW5jKChmLGFyZyksbXNnLHNldmVyaXR5LGxvY2F0b3IpOgorICAgICIiIkludGVybWVkaWF0ZSBjYWxsYmFjayB0byB3cmFwIHRoZSBsb2NhdG9yIiIiCisgICAgcmV0dXJuIGYoYXJnLG1zZyxzZXZlcml0eSx4bWxUZXh0UmVhZGVyTG9jYXRvcihsb2NhdG9yKSkKKworY2xhc3MgeG1sVGV4dFJlYWRlckNvcmU6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgX29iaj1Ob25lKToKKyAgICAgICAgc2VsZi5pbnB1dCA9IE5vbmUKKyAgICAgICAgaWYgX29iaiAhPSBOb25lOnNlbGYuX28gPSBfb2JqO3JldHVybgorICAgICAgICBzZWxmLl9vID0gTm9uZQorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYuX28gIT0gTm9uZToKKyAgICAgICAgICAgIGxpYnhtbDJtb2QueG1sRnJlZVRleHRSZWFkZXIoc2VsZi5fbykKKyAgICAgICAgc2VsZi5fbyA9IE5vbmUKKworICAgIGRlZiBTZXRFcnJvckhhbmRsZXIoc2VsZixmLGFyZyk6CisgICAgICAgICIiIlJlZ2lzdGVyIGFuIGVycm9yIGhhbmRsZXIgdGhhdCB3aWxsIGJlIGNhbGxlZCBiYWNrIGFzCisgICAgICAgICAgIGYoYXJnLG1zZyxzZXZlcml0eSxsb2NhdG9yKS4iIiIKKyAgICAgICAgaWYgZiBpcyBOb25lOgorICAgICAgICAgICAgbGlieG1sMm1vZC54bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyKFwKKyAgICAgICAgICAgICAgICBzZWxmLl9vLE5vbmUsTm9uZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxpYnhtbDJtb2QueG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcihcCisgICAgICAgICAgICAgICAgc2VsZi5fbyxfeG1sVGV4dFJlYWRlckVycm9yRnVuYywoZixhcmcpKQorCisgICAgZGVmIEdldEVycm9ySGFuZGxlcihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIChmLGFyZykgYXMgcHJldmlvdXNseSByZWdpc3RlcmVkIHdpdGggc2V0RXJyb3JIYW5kbGVyCisgICAgICAgICAgIG9yIChOb25lLE5vbmUpLiIiIgorICAgICAgICBmLGFyZyA9IGxpYnhtbDJtb2QueG1sVGV4dFJlYWRlckdldEVycm9ySGFuZGxlcihzZWxmLl9vKQorICAgICAgICBpZiBmIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZSxOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGFzc2VydCBmIGlzIF94bWxUZXh0UmVhZGVyRXJyb3JGdW5jCisgICAgICAgICAgICByZXR1cm4gYXJnCisKKyMKKyMgVGhlIGNsZWFudXAgbm93IGdvZXMgdGhvdWdoIGEgd3JhcHBlIGluIGxpYnhtbC5jCisjCitkZWYgY2xlYW51cFBhcnNlcigpOgorICAgIGxpYnhtbDJtb2QueG1sUHl0aG9uQ2xlYW51cFBhcnNlcigpCisKKyMgV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HIFdBUk5JTkcKKyMKKyMgRXZlcnl0aGluZyBiZWZvcmUgdGhpcyBsaW5lIGNvbWVzIGZyb20gbGlieG1sLnB5IAorIyBFdmVyeXRoaW5nIGFmdGVyIHRoaXMgbGluZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZAorIworIyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORyBXQVJOSU5HIFdBUk5JTkcgV0FSTklORworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi9saWJ4bWwyLXB5dGhvbi1hcGkueG1sIGIvbGlieG1sMi0yLjcuNy9weXRob24vbGlieG1sMi1weXRob24tYXBpLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmY2NjFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vbGlieG1sMi1weXRob24tYXBpLnhtbApAQCAtMCwwICsxLDM0MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGFwaSBuYW1lPSdsaWJ4bWwyLXB5dGhvbic+CisgIDxzeW1ib2xzPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxSZWdpc3RlclhQYXRoRnVuY3Rpb24nIGZpbGU9J3B5dGhvbic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlJlZ2lzdGVyIGEgUHl0aG9uIHdyaXR0ZW4gZnVuY3Rpb24gdG8gdGhlIFhQYXRoIGludGVycHJldGVyPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89IjEgaW4gY2FzZSBvZiBzdWNjZXNzLCAwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IiLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSB4cGF0aENvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbmFtZScgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgZnVuY3Rpb24gbmFtZScvPgorICAgICAgPGFyZyBuYW1lPSduc191cmknIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5hbWVzcGFjZSBvciBOVUxMJy8+CisgICAgICA8YXJnIG5hbWU9J2YnIHR5cGU9J3B5dGhvbk9iamVjdCcgaW5mbz0ndGhlIHB5dGhvbiBmdW5jdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbE5ld05vZGUnIGZpbGU9J3B5dGhvbic+CisgICAgICA8aW5mbz5DcmVhdGUgYSBuZXcgTm9kZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0iQSBuZXcgZWxlbWVudCBub2RlIi8+CisgICAgICA8YXJnIG5hbWU9J25hbWUnIHR5cGU9J3htbENoYXIgKicgaW5mbz0ndGhlIG5vZGUgbmFtZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENyZWF0ZVB1c2hQYXJzZXInIGZpbGU9J3B5dGhvbic+CisgICAgICA8aW5mbz5DcmVhdGUgYSBwcm9ncmVzc2l2ZSBYTUwgcGFyc2VyIGNvbnRleHQgdG8gYnVpbGQgZWl0aGVyIGFuIGV2ZW50IGZsb3cgaWYgdGhlIFNBWCBvYmplY3QgaXMgbm90IE5vbmUsIG9yIGEgRE9NIHRyZWUgb3RoZXJ3aXNlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0idGhlIHBhcnNlciBjb250ZXh0IG9yIE5vbmUgaW4gY2FzZSBvZiBlcnJvciIvPgorICAgICAgPGFyZyBuYW1lPSdTQVgnIHR5cGU9J3B5dGhvbk9iamVjdCcgaW5mbz0ndGhlIFNBWCBjYWxsYmFjayBvYmplY3Qgb3IgTm9uZScvPgorICAgICAgPGFyZyBuYW1lPSdjaHVuaycgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgaW5pdGlhbCBkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgb2YgdGhlIGluaXRpYWwgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbENoYXIgKicgaW5mbz0nVGhlIFVSSSB1c2VkIGZvciBiYXNlIGNvbXB1dGF0aW9ucycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J2h0bWxDcmVhdGVQdXNoUGFyc2VyJyBmaWxlPSdweXRob24nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIHByb2dyZXNzaXZlIEhUTUwgcGFyc2VyIGNvbnRleHQgdG8gYnVpbGQgZWl0aGVyIGFuIGV2ZW50IGZsb3cgaWYgdGhlIFNBWCBvYmplY3QgaXMgbm90IE5vbmUsIG9yIGEgRE9NIHRyZWUgb3RoZXJ3aXNlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0idGhlIHBhcnNlciBjb250ZXh0IG9yIE5vbmUgaW4gY2FzZSBvZiBlcnJvciIvPgorICAgICAgPGFyZyBuYW1lPSdTQVgnIHR5cGU9J3B5dGhvbk9iamVjdCcgaW5mbz0ndGhlIFNBWCBjYWxsYmFjayBvYmplY3Qgb3IgTm9uZScvPgorICAgICAgPGFyZyBuYW1lPSdjaHVuaycgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSd0aGUgaW5pdGlhbCBkYXRhJy8+CisgICAgICA8YXJnIG5hbWU9J3NpemUnIHR5cGU9J2ludCcgaW5mbz0ndGhlIHNpemUgb2YgdGhlIGluaXRpYWwgZGF0YScvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbENoYXIgKicgaW5mbz0nVGhlIFVSSSB1c2VkIGZvciBiYXNlIGNvbXB1dGF0aW9ucycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNBWFBhcnNlRmlsZScgZmlsZT0ncHl0aG9uJz4KKyAgICAgIDxpbmZvPkludGVyZmFjZSB0byBwYXJzZSBhbiBYTUwgZmlsZSBvciByZXNvdXJjZSBwb2ludGVkIGJ5IGFuIFVSSSB0byBidWlsZCBhbiBldmVudCBmbG93IHRvIHRoZSBTQVggb2JqZWN0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J1NBWCcgdHlwZT0ncHl0aG9uT2JqZWN0JyBpbmZvPSd0aGUgU0FYIGNhbGxiYWNrIG9iamVjdCBvciBOb25lJy8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sQ2hhciAqJyBpbmZvPSdUaGUgVVJJIG9mIHRoZSByZXNvdXJjZScvPgorICAgICAgPGFyZyBuYW1lPSdyZWNvdmVyJyB0eXBlPSdpbnQnIGluZm89J2FsbG93IHJlY292ZXJ5IGluIGNhc2Ugb2YgZXJyb3InLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSdodG1sU0FYUGFyc2VGaWxlJyBmaWxlPSdweXRob24nPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkludGVyZmFjZSB0byBwYXJzZSBhbiBIVE1MIGZpbGUgb3IgcmVzb3VyY2UgcG9pbnRlZCBieSBhbiBVUkkgdG8gYnVpbGQgYW4gZXZlbnQgZmxvdyB0byB0aGUgU0FYIG9iamVjdDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdTQVgnIHR5cGU9J3B5dGhvbk9iamVjdCcgaW5mbz0ndGhlIFNBWCBjYWxsYmFjayBvYmplY3Qgb3IgTm9uZScvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbENoYXIgKicgaW5mbz0nVGhlIFVSSSBvZiB0aGUgcmVzb3VyY2UnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0nZW5jb2Rpbmcgb3IgTm9uZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbENyZWF0ZU91dHB1dEJ1ZmZlcicgZmlsZT0ncHl0aG9uJz4KKyAgICAgIDxpbmZvPkNyZWF0ZSBhIGxpYnhtbDIgb3V0cHV0IGJ1ZmZlciBmcm9tIGEgUHl0aG9uIGZpbGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbE91dHB1dEJ1ZmZlclB0cicgaW5mbz0idGhlIG91dHB1dCBidWZmZXIiLz4KKyAgICAgIDxhcmcgbmFtZT0nZmlsZScgdHlwZT0ncHl0aG9uT2JqZWN0JyBpbmZvPSd0aGUgUHl0aG9uIGZpbGUnLz4KKyAgICAgIDxhcmcgbmFtZT0nZW5jb2RpbmcnIHR5cGU9J3htbENoYXIgKicgaW5mbz0nYW4gb3B0aW9ubmFsIGVuY29kaW5nJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sQ3JlYXRlSW5wdXRCdWZmZXInIGZpbGU9J3B5dGhvbic+CisgICAgICA8aW5mbz5DcmVhdGUgYSBsaWJ4bWwyIGlucHV0IGJ1ZmZlciBmcm9tIGEgUHl0aG9uIGZpbGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbFBhcnNlcklucHV0QnVmZmVyUHRyJyBpbmZvPSJ0aGUgaW5wdXQgYnVmZmVyIi8+CisgICAgICA8YXJnIG5hbWU9J2ZpbGUnIHR5cGU9J3B5dGhvbk9iamVjdCcgaW5mbz0ndGhlIFB5dGhvbiBmaWxlJy8+CisgICAgICA8YXJnIG5hbWU9J2VuY29kaW5nJyB0eXBlPSd4bWxDaGFyIConIGluZm89J2FuIG9wdGlvbm5hbCBlbmNvZGluZycvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFNldEVudGl0eUxvYWRlcicgZmlsZT0ncHl0aG9uJz4KKyAgICAgIDxpbmZvPlNldCB0aGUgZW50aXR5IHJlc29sdmVyIGFzIGEgcHl0aG9uIGZ1bmN0aW9uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89IjAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBmb3IgZXJyb3IiLz4KKyAgICAgIDxhcmcgbmFtZT0ncmVzb2x2ZXInIHR5cGU9J3B5dGhvbk9iamVjdCcgaW5mbz0ndGhlIFB5dGhvbiBmdW5jdGlvbicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPCEtLSB4bWxQYXJzZXJDdHh0UHRyIGFjY2Vzc29ycyAtLT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VyR2V0RG9jJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBkb2N1bWVudCB0cmVlIGZyb20gYSBwYXJzZXIgY29udGV4dC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0idGhlIGRvY3VtZW50IHRyZWUiIGZpZWxkPSJteURvYyIvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJHZXRXZWxsRm9ybWVkJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSB3ZWxsIGZvcm1lZCBpbmZvcm1hdGlvbiBmcm9tIGEgcGFyc2VyIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89InRoZSB3ZWxsRm9ybWVkIGZpZWxkIiBmaWVsZD0id2VsbEZvcm1lZCIvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJHZXRJc1ZhbGlkJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSB2YWxpZGl0eSBpbmZvcm1hdGlvbiBmcm9tIGEgcGFyc2VyIGNvbnRleHQuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89InRoZSB2YWxpZCBmaWVsZCIgZmllbGQ9InZhbGlkIi8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFBhcnNlckN0eHRQdHInIGluZm89J3RoZSBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlclNldFZhbGlkYXRlJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+U3dpdGNoIHRoZSBwYXJzZXIgdG8gdmFsaWRhdGlvbiBtb2RlLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ndmFsaWRhdGUnIHR5cGU9J2ludCcgaW5mbz0nMSB0byBhY3RpdmF0ZSB2YWxpZGF0aW9uJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUGFyc2VyU2V0UmVwbGFjZUVudGl0aWVzJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+U3dpdGNoIHRoZSBwYXJzZXIgdG8gcmVwbGFjZSBlbnRpdGllcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J3JlcGxhY2VFbnRpdGllcycgdHlwZT0naW50JyBpbmZvPScxIHRvIHJlcGxhY2UgZW50aXRpZXMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxQYXJzZXJTZXRQZWRhbnRpYycgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPlN3aXRjaCB0aGUgcGFyc2VyIHRvIGJlIHBlZGFudGljLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0ncGVkYW50aWMnIHR5cGU9J2ludCcgaW5mbz0nMSB0byBydW4gaW4gcGVkYW50aWMgbW9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlclNldExvYWRTdWJzZXQnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5Td2l0Y2ggdGhlIHBhcnNlciB0byBsb2FkIHRoZSBEVEQgd2l0aG91dCB2YWxpZGF0aW5nLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxQYXJzZXJDdHh0UHRyJyBpbmZvPSd0aGUgcGFyc2VyIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0nbG9hZHN1YnNldCcgdHlwZT0naW50JyBpbmZvPScxIHRvIGxvYWQgdGhlIERURCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFBhcnNlclNldExpbmVOdW1iZXJzJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+U3dpdGNoIG9uIHRoZSBnZW5lcmF0aW9uIG9mIGxpbmUgbnVtYmVyIGZvciBlbGVtZW50cyBub2Rlcy48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sUGFyc2VyQ3R4dFB0cicgaW5mbz0ndGhlIHBhcnNlciBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9J2xpbmVudW1iZXJzJyB0eXBlPSdpbnQnIGluZm89JzEgdG8gc2F2ZSBsaW5lIG51bWJlcnMnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxEZWJ1Z01lbW9yeScgZmlsZT0ncHl0aG9uJz4KKyAgICAgIDxpbmZvPlN3aXRjaCBvbiB0aGUgZ2VuZXJhdGlvbiBvZiBsaW5lIG51bWJlciBmb3IgZWxlbWVudHMgbm9kZXMuIEFsc28gcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGFsbG9jYXRlZCBhbmQgbm90IGZyZWVkIGJ5IGxpYnhtbDIgc2luY2UgbWVtb3J5IGRlYnVnZ2luZyB3YXMgc3dpdGNoZWQgb24uPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89InJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyBhbGxvY2F0ZWQgYW5kIG5vdCBmcmVlZCIvPgorICAgICAgPGFyZyBuYW1lPSdhY3RpdmF0ZScgdHlwZT0naW50JyBpbmZvPScxIHN3aXRjaCBvbiBtZW1vcnkgZGVidWdnaW5nIDAgc3dpdGNoIGl0IG9mZicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbER1bXBNZW1vcnknIGZpbGU9J3B5dGhvbic+CisgICAgICA8aW5mbz5kdW1wIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGluIHRoZSBmaWxlIC5tZW1kdW1wPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8IS0tIHhtbE5zUHRyIGFjY2Vzc29ycyAtLT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZUdldE5zJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBuYW1lc3BhY2Ugb2YgYSBub2RlPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxOc1B0cicgaW5mbz0iVGhlIG5hbWVzcGFjZSBvciBOb25lIi8+CisgICAgICA8YXJnIG5hbWU9J25vZGUnIHR5cGU9J3htbE5vZGVQdHInIGluZm89J3RoZSBub2RlJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sTm9kZUdldE5zRGVmcycgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPkdldCB0aGUgbmFtZXNwYWNlIG9mIGEgbm9kZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTnNQdHInIGluZm89IlRoZSBuYW1lc3BhY2Ugb3IgTm9uZSIvPgorICAgICAgPGFyZyBuYW1lPSdub2RlJyB0eXBlPSd4bWxOb2RlUHRyJyBpbmZvPSd0aGUgbm9kZScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPCEtLSB4bWxYUGF0aENvbnRleHRQdHIgYWNjZXNzb3JzIC0tPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aFBhcnNlckdldENvbnRleHQnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkdldCB0aGUgeHBhdGhDb250ZXh0IGZyb20gYW4geHBhdGhQYXJzZXJDb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89IlRoZSBYUGF0aCBjb250ZXh0IiBmaWVsZD0iY29udGV4dCIvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aFBhcnNlckNvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBwYXJzZXIgY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoR2V0Q29udGV4dERvYycgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IHRoZSBkb2MgZnJvbSBhbiB4cGF0aENvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3htbERvY1B0cicgaW5mbz0iVGhlIGRvYyBjb250ZXh0IiBmaWVsZD0iZG9jIi8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEdldENvbnRleHROb2RlJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGN1cnJlbnQgbm9kZSBmcm9tIGFuIHhwYXRoQ29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0neG1sTm9kZVB0cicgaW5mbz0iVGhlIG5vZGUgY29udGV4dCIgZmllbGQ9Im5vZGUiLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoU2V0Q29udGV4dERvYycgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+U2V0IHRoZSBkb2Mgb2YgYW4geHBhdGhDb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICAgIDxhcmcgbmFtZT0iZG9jIiB0eXBlPSd4bWxEb2NQdHInIGluZm89IlRoZSBkb2MgY29udGV4dCIvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoU2V0Q29udGV4dE5vZGUnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPlNldCB0aGUgY3VycmVudCBub2RlIG9mIGFuIHhwYXRoQ29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdjdHh0JyB0eXBlPSd4bWxYUGF0aENvbnRleHRQdHInIGluZm89J3RoZSBYUGF0aCBjb250ZXh0Jy8+CisgICAgICA8YXJnIG5hbWU9Im5vZGUiIHR5cGU9J3htbE5vZGVQdHInIGluZm89IlRoZSBub2RlIGNvbnRleHQiLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEdldENvbnRleHRQb3NpdGlvbicgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxjb25kPmRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpPC9jb25kPgorICAgICAgPGluZm8+R2V0IHRoZSBjdXJyZW50IG5vZGUgZnJvbSBhbiB4cGF0aENvbnRleHQ8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0iVGhlIG5vZGUgY29udGV4dCIgZmllbGQ9InByb3hpbWl0eVBvc2l0aW9uIi8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEdldENvbnRleHRTaXplJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGN1cnJlbnQgbm9kZSBmcm9tIGFuIHhwYXRoQ29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSJUaGUgbm9kZSBjb250ZXh0IiBmaWVsZD0iY29udGV4dFNpemUiLz4KKyAgICAgIDxhcmcgbmFtZT0nY3R4dCcgdHlwZT0neG1sWFBhdGhDb250ZXh0UHRyJyBpbmZvPSd0aGUgWFBhdGggY29udGV4dCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFhQYXRoR2V0RnVuY3Rpb24nIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8Y29uZD5kZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKTwvY29uZD4KKyAgICAgIDxpbmZvPkdldCB0aGUgY3VycmVudCBmdW5jdGlvbiBuYW1lIHhwYXRoQ29udGV4dDwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgeG1sQ2hhciAqJyBpbmZvPSJUaGUgZnVuY3Rpb24gbmFtZSIgZmllbGQ9ImZ1bmN0aW9uIi8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxYUGF0aEdldEZ1bmN0aW9uVVJJJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGNvbmQ+ZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCk8L2NvbmQ+CisgICAgICA8aW5mbz5HZXQgdGhlIGN1cnJlbnQgZnVuY3Rpb24gbmFtZSBVUkkgeHBhdGhDb250ZXh0PC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCB4bWxDaGFyIConIGluZm89IlRoZSBmdW5jdGlvbiBuYW1lIFVSSSIgZmllbGQ9ImZ1bmN0aW9uVVJJIi8+CisgICAgICA8YXJnIG5hbWU9J2N0eHQnIHR5cGU9J3htbFhQYXRoQ29udGV4dFB0cicgaW5mbz0ndGhlIFhQYXRoIGNvbnRleHQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDwhLS0geG1sVVJJUHRyIGFjY2Vzc29ycyAtLT4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJR2V0U2NoZW1lJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBzY2hlbWUgcGFydCBmcm9tIGFuIFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSJUaGUgVVJJIHNjaGVtZSIgZmllbGQ9InNjaGVtZSIvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ndGhlIFVSSScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSVNldFNjaGVtZScgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPlNldCB0aGUgc2NoZW1lIHBhcnQgb2YgYW4gVVJJLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ndGhlIFVSSScvPgorICAgICAgPGFyZyBuYW1lPSdzY2hlbWUnIHR5cGU9J2NoYXIgKicgaW5mbz0nVGhlIFVSSSBzY2hlbWUgcGFydCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSUdldE9wYXF1ZScgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPkdldCB0aGUgb3BhcXVlIHBhcnQgZnJvbSBhbiBVUkk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0iVGhlIFVSSSBvcGFxdWUiIGZpZWxkPSJvcGFxdWUiLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSd4bWxVUklQdHInIGluZm89J3RoZSBVUkknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVUklTZXRPcGFxdWUnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5TZXQgdGhlIG9wYXF1ZSBwYXJ0IG9mIGFuIFVSSS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSd4bWxVUklQdHInIGluZm89J3RoZSBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0nb3BhcXVlJyB0eXBlPSdjaGFyIConIGluZm89J1RoZSBVUkkgb3BhcXVlIHBhcnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVUklHZXRBdXRob3JpdHknIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5HZXQgdGhlIGF1dGhvcml0eSBwYXJ0IGZyb20gYW4gVVJJPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCBjaGFyIConIGluZm89IlRoZSBVUkkgYXV0aG9yaXR5IiBmaWVsZD0iYXV0aG9yaXR5Ii8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJU2V0QXV0aG9yaXR5JyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+U2V0IHRoZSBhdXRob3JpdHkgcGFydCBvZiBhbiBVUkkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgICA8YXJnIG5hbWU9J2F1dGhvcml0eScgdHlwZT0nY2hhciAqJyBpbmZvPSdUaGUgVVJJIGF1dGhvcml0eSBwYXJ0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJR2V0U2VydmVyJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBzZXJ2ZXIgcGFydCBmcm9tIGFuIFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSJUaGUgVVJJIHNlcnZlciIgZmllbGQ9InNlcnZlciIvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ndGhlIFVSSScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSVNldFNlcnZlcicgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPlNldCB0aGUgc2VydmVyIHBhcnQgb2YgYW4gVVJJLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ndGhlIFVSSScvPgorICAgICAgPGFyZyBuYW1lPSdzZXJ2ZXInIHR5cGU9J2NoYXIgKicgaW5mbz0nVGhlIFVSSSBzZXJ2ZXIgcGFydCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSUdldFVzZXInIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5HZXQgdGhlIHVzZXIgcGFydCBmcm9tIGFuIFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSJUaGUgVVJJIHVzZXIiIGZpZWxkPSJ1c2VyIi8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJU2V0VXNlcicgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPlNldCB0aGUgdXNlciBwYXJ0IG9mIGFuIFVSSS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSd4bWxVUklQdHInIGluZm89J3RoZSBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0ndXNlcicgdHlwZT0nY2hhciAqJyBpbmZvPSdUaGUgVVJJIHVzZXIgcGFydCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSUdldFBhdGgnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5HZXQgdGhlIHBhdGggcGFydCBmcm9tIGFuIFVSSTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSJUaGUgVVJJIHBhdGgiIGZpZWxkPSJwYXRoIi8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJU2V0UGF0aCcgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPlNldCB0aGUgcGF0aCBwYXJ0IG9mIGFuIFVSSS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSd4bWxVUklQdHInIGluZm89J3RoZSBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0ncGF0aCcgdHlwZT0nY2hhciAqJyBpbmZvPSdUaGUgVVJJIHBhdGggcGFydCcvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSUdldFF1ZXJ5JyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBxdWVyeSBwYXJ0IGZyb20gYW4gVVJJPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCBjaGFyIConIGluZm89IlRoZSBVUkkgcXVlcnkiIGZpZWxkPSJxdWVyeSIvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ndGhlIFVSSScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSVNldFF1ZXJ5JyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+U2V0IHRoZSBxdWVyeSBwYXJ0IG9mIGFuIFVSSS48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSd4bWxVUklQdHInIGluZm89J3RoZSBVUkknLz4KKyAgICAgIDxhcmcgbmFtZT0ncXVlcnknIHR5cGU9J2NoYXIgKicgaW5mbz0nVGhlIFVSSSBxdWVyeSBwYXJ0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJR2V0UXVlcnlSYXcnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5HZXQgdGhlIHJhdyBxdWVyeSBwYXJ0IGZyb20gYW4gVVJJIChpLmUuIHRoZSB1bmVzY2FwZWQgZm9ybSkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCBjaGFyIConIGluZm89IlRoZSBVUkkgcXVlcnkiIGZpZWxkPSJxdWVyeV9yYXciLz4KKyAgICAgIDxhcmcgbmFtZT0nVVJJJyB0eXBlPSd4bWxVUklQdHInIGluZm89J3RoZSBVUkknLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVUklTZXRRdWVyeVJhdycgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPlNldCB0aGUgcmF3IHF1ZXJ5IHBhcnQgb2YgYW4gVVJJIChpLmUuIHRoZSB1bmVzY2FwZWQgZm9ybSkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgICA8YXJnIG5hbWU9J3F1ZXJ5X3JhdycgdHlwZT0nY2hhciAqJyBpbmZvPSdUaGUgcmF3IFVSSSBxdWVyeSBwYXJ0Jy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJR2V0RnJhZ21lbnQnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5HZXQgdGhlIGZyYWdtZW50IHBhcnQgZnJvbSBhbiBVUkk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2NvbnN0IGNoYXIgKicgaW5mbz0iVGhlIFVSSSBmcmFnbWVudCIgZmllbGQ9ImZyYWdtZW50Ii8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sVVJJU2V0RnJhZ21lbnQnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5TZXQgdGhlIGZyYWdtZW50IHBhcnQgb2YgYW4gVVJJLjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0ndm9pZCcvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ndGhlIFVSSScvPgorICAgICAgPGFyZyBuYW1lPSdmcmFnbWVudCcgdHlwZT0nY2hhciAqJyBpbmZvPSdUaGUgVVJJIGZyYWdtZW50IHBhcnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxVUklHZXRQb3J0JyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+R2V0IHRoZSBwb3J0IHBhcnQgZnJvbSBhbiBVUkk8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0iVGhlIFVSSSBwb3J0IiBmaWVsZD0icG9ydCIvPgorICAgICAgPGFyZyBuYW1lPSdVUkknIHR5cGU9J3htbFVSSVB0cicgaW5mbz0ndGhlIFVSSScvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbFVSSVNldFBvcnQnIGZpbGU9J3B5dGhvbl9hY2Nlc3Nvcic+CisgICAgICA8aW5mbz5TZXQgdGhlIHBvcnQgcGFydCBvZiBhbiBVUkkuPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSd2b2lkJy8+CisgICAgICA8YXJnIG5hbWU9J1VSSScgdHlwZT0neG1sVVJJUHRyJyBpbmZvPSd0aGUgVVJJJy8+CisgICAgICA8YXJnIG5hbWU9J3BvcnQnIHR5cGU9J2ludCcgaW5mbz0nVGhlIFVSSSBwb3J0IHBhcnQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDwhLS0geG1sRXJyb3JQdHIgYWNjZXNzb3JzIC0tPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFcnJvckdldERvbWFpbicgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPldoYXQgcGFydCBvZiB0aGUgbGlicmFyeSByYWlzZWQgdGhpcyBlcnJvcjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSJUaGUgZXJyb3IgZG9tYWluIiBmaWVsZD0iZG9tYWluIi8+CisgICAgICA8YXJnIG5hbWU9J0Vycm9yJyB0eXBlPSd4bWxFcnJvclB0cicgaW5mbz0ndGhlIEVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXJyb3JHZXRDb2RlJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+VGhlIGVycm9yIGNvZGUsIGUuZy4gYW4geG1sUGFyc2VyRXJyb3I8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0iVGhlIGVycm9yIGNvZGUiIGZpZWxkPSJjb2RlIi8+CisgICAgICA8YXJnIG5hbWU9J0Vycm9yJyB0eXBlPSd4bWxFcnJvclB0cicgaW5mbz0ndGhlIEVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXJyb3JHZXRNZXNzYWdlJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+aHVtYW4tcmVhZGFibGUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZTwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0nY29uc3QgY2hhciAqJyBpbmZvPSJUaGUgZXJyb3IgbWVzc2FnZSIgZmllbGQ9Im1lc3NhZ2UiLz4KKyAgICAgIDxhcmcgbmFtZT0nRXJyb3InIHR5cGU9J3htbEVycm9yUHRyJyBpbmZvPSd0aGUgRXJyb3InLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxFcnJvckdldExldmVsJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+aG93IGNvbnNlcXVlbnQgaXMgdGhlIGVycm9yPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdpbnQnIGluZm89IlRoZSBlcnJvciBsZXZlbCIgZmllbGQ9ImxldmVsIi8+CisgICAgICA8YXJnIG5hbWU9J0Vycm9yJyB0eXBlPSd4bWxFcnJvclB0cicgaW5mbz0ndGhlIEVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sRXJyb3JHZXRGaWxlJyBmaWxlPSdweXRob25fYWNjZXNzb3InPgorICAgICAgPGluZm8+dGhlIGZpbGVuYW1lPC9pbmZvPgorICAgICAgPHJldHVybiB0eXBlPSdjb25zdCBjaGFyIConIGluZm89IlRoZSBlcnJvciBmaWxlIiBmaWVsZD0iZmlsZSIvPgorICAgICAgPGFyZyBuYW1lPSdFcnJvcicgdHlwZT0neG1sRXJyb3JQdHInIGluZm89J3RoZSBFcnJvcicvPgorICAgIDwvZnVuY3Rpb24+CisgICAgPGZ1bmN0aW9uIG5hbWU9J3htbEVycm9yR2V0TGluZScgZmlsZT0ncHl0aG9uX2FjY2Vzc29yJz4KKyAgICAgIDxpbmZvPnRoZSBsaW5lIG51bWJlciBpZiBhdmFpbGFibGU8L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J2ludCcgaW5mbz0iVGhlIGVycm9yIGxpbmUiIGZpZWxkPSJsaW5lIi8+CisgICAgICA8YXJnIG5hbWU9J0Vycm9yJyB0eXBlPSd4bWxFcnJvclB0cicgaW5mbz0ndGhlIEVycm9yJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgICA8ZnVuY3Rpb24gbmFtZT0neG1sUHl0aG9uQ2xlYW51cFBhcnNlcicgZmlsZT0ncHl0aG9uJz4KKyAgICAgIDxpbmZvPkNsZWFudXAgZnVuY3Rpb24gZm9yIHRoZSBYTUwgbGlicmFyeS4gSXQgdHJpZXMgdG8gcmVjbGFpbSBhbGwgcGFyc2luZyByZWxhdGVkIGdsb2JhbCBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgbGlicmFyeSBwcm9jZXNzaW5nLiBJdCBkb2Vzbid0IGRlYWxsb2NhdGUgYW55IGRvY3VtZW50IHJlbGF0ZWQgbWVtb3J5LiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBwcmV2ZW50IHJldXNpbmcgdGhlIGxpYnJhcnkgYnV0IG9uZSBzaG91bGQgY2FsbCB4bWxDbGVhbnVwUGFyc2VyKCkgb25seSB3aGVuIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hlZCB1c2luZyB0aGUgbGlicmFyeSBvciBYTUwgZG9jdW1lbnQgYnVpbHQgd2l0aCBpdC48L2luZm8+CisgICAgICA8cmV0dXJuIHR5cGU9J3ZvaWQnLz4KKyAgICA8L2Z1bmN0aW9uPgorICAgIDxmdW5jdGlvbiBuYW1lPSd4bWxNZW1vcnlVc2VkJyBmaWxlPSdweXRob24nPgorICAgICAgPGluZm8+UmV0dXJucyB0aGUgdG90YWwgYW1vdW50IG9mIG1lbW9yeSBhbGxvY2F0ZWQgYnkgbGlieG1sMjwvaW5mbz4KKyAgICAgIDxyZXR1cm4gdHlwZT0naW50JyBpbmZvPSdudW1iZXIgb2YgYnl0ZXMgYWxsb2NhdGVkJy8+CisgICAgPC9mdW5jdGlvbj4KKyAgPC9zeW1ib2xzPgorPC9hcGk+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi9saWJ4bWxfd3JhcC5oIGIvbGlieG1sMi0yLjcuNy9weXRob24vbGlieG1sX3dyYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWE1ZTk2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vbGlieG1sX3dyYXAuaApAQCAtMCwwICsxLDI0OSBAQAorI2luY2x1ZGUgPFB5dGhvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvY2F0YWxvZy5oPgorI2luY2x1ZGUgPGxpYnhtbC90aHJlYWRzLmg+CisjaW5jbHVkZSA8bGlieG1sL25hbm9mdHAuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvbmFub2h0dHAuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL2RlYnVnWE1MLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUxwYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHRyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveGluY2x1ZGUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBvaW50ZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdW5pY29kZS5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWdleHAuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sYXV0b21hdGEuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVhZGVyLmg+CisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9yZWxheG5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHNjaGVtYXMuaD4KKyNlbmRpZgorCisvKioKKyAqIEFUVFJJQlVURV9VTlVTRUQ6CisgKgorICogTWFjcm8gdXNlZCB0byBzaWduYWwgdG8gR0NDIHVudXNlZCBmdW5jdGlvbiBwYXJhbWV0ZXJzCisgKiBSZXBlYXRlZCBoZXJlIHNpbmNlIHRoZSBkZWZpbml0aW9uIGlzIG5vdCBhdmFpbGFibGUgd2hlbgorICogY29tcGlsZWQgb3V0c2lkZSB0aGUgbGlieG1sMiBidWlsZCB0cmVlLgorICovCisjaWZkZWYgX19HTlVDX18KKyNpZmRlZiBBVFRSSUJVVEVfVU5VU0VECisjdW5kZWYgQVRUUklCVVRFX1VOVVNFRAorI2VuZGlmCisjaWZuZGVmIEFUVFJJQlVURV9VTlVTRUQKKyNkZWZpbmUgQVRUUklCVVRFX1VOVVNFRCBfX2F0dHJpYnV0ZV9fICgoX191bnVzZWRfXykpCisjZW5kaWYgLyogQVRUUklCVVRFX1VOVVNFRCAqLworI2Vsc2UKKyNkZWZpbmUgQVRUUklCVVRFX1VOVVNFRAorI2VuZGlmCisKKyNkZWZpbmUgUHl4bWxOb2RlX0dldCh2KSAoKCh2KSA9PSBQeV9Ob25lKSA/IE5VTEwgOiBcCisJKCgoUHl4bWxOb2RlX09iamVjdCAqKSh2KSktPm9iaikpCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgeG1sTm9kZVB0ciBvYmo7Cit9IFB5eG1sTm9kZV9PYmplY3Q7CisKKyNkZWZpbmUgUHl4bWxYUGF0aENvbnRleHRfR2V0KHYpICgoKHYpID09IFB5X05vbmUpID8gTlVMTCA6IFwKKwkoKChQeXhtbFhQYXRoQ29udGV4dF9PYmplY3QgKikodikpLT5vYmopKQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIHhtbFhQYXRoQ29udGV4dFB0ciBvYmo7Cit9IFB5eG1sWFBhdGhDb250ZXh0X09iamVjdDsKKworI2RlZmluZSBQeXhtbFhQYXRoUGFyc2VyQ29udGV4dF9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorCSgoKFB5eG1sWFBhdGhQYXJzZXJDb250ZXh0X09iamVjdCAqKSh2KSktPm9iaikpCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIG9iajsKK30gUHl4bWxYUGF0aFBhcnNlckNvbnRleHRfT2JqZWN0OworCisjZGVmaW5lIFB5cGFyc2VyQ3R4dF9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorICAgICAgICAoKChQeXBhcnNlckN0eHRfT2JqZWN0ICopKHYpKS0+b2JqKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICB4bWxQYXJzZXJDdHh0UHRyIG9iajsKK30gUHlwYXJzZXJDdHh0X09iamVjdDsKKworI2RlZmluZSBQeVZhbGlkQ3R4dF9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorCSgoKFB5VmFsaWRDdHh0X09iamVjdCAqKSh2KSktPm9iaikpCisKK3R5cGVkZWYgc3RydWN0IHsKKwlQeU9iamVjdF9IRUFECisJeG1sVmFsaWRDdHh0UHRyIG9iajsKK30gUHlWYWxpZEN0eHRfT2JqZWN0OworCisjZGVmaW5lIFB5Y2F0YWxvZ19HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorICAgICAgICAoKChQeWNhdGFsb2dfT2JqZWN0ICopKHYpKS0+b2JqKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICB4bWxDYXRhbG9nUHRyIG9iajsKK30gUHljYXRhbG9nX09iamVjdDsKKworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorI2RlZmluZSBQeXhtbFJlZ19HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorICAgICAgICAoKChQeXhtbFJlZ19PYmplY3QgKikodikpLT5vYmopKQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIHhtbFJlZ2V4cFB0ciBvYmo7Cit9IFB5eG1sUmVnX09iamVjdDsKKyNlbmRpZiAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorI2RlZmluZSBQeXhtbFRleHRSZWFkZXJfR2V0KHYpICgoKHYpID09IFB5X05vbmUpID8gTlVMTCA6IFwKKyAgICAgICAgKCgoUHl4bWxUZXh0UmVhZGVyX09iamVjdCAqKSh2KSktPm9iaikpCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgeG1sVGV4dFJlYWRlclB0ciBvYmo7Cit9IFB5eG1sVGV4dFJlYWRlcl9PYmplY3Q7CisKKyNkZWZpbmUgUHl4bWxUZXh0UmVhZGVyTG9jYXRvcl9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorICAgICAgICAoKChQeXhtbFRleHRSZWFkZXJMb2NhdG9yX09iamVjdCAqKSh2KSktPm9iaikpCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgb2JqOworfSBQeXhtbFRleHRSZWFkZXJMb2NhdG9yX09iamVjdDsKKyNlbmRpZgorCisjZGVmaW5lIFB5VVJJX0dldCh2KSAoKCh2KSA9PSBQeV9Ob25lKSA/IE5VTEwgOiBcCisJKCgoUHlVUklfT2JqZWN0ICopKHYpKS0+b2JqKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICB4bWxFcnJvclB0ciBvYmo7Cit9IFB5RXJyb3JfT2JqZWN0OworCisjZGVmaW5lIFB5RXJyb3JfR2V0KHYpICgoKHYpID09IFB5X05vbmUpID8gTlVMTCA6IFwKKwkoKChQeUVycm9yX09iamVjdCAqKSh2KSktPm9iaikpCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG9iajsKK30gUHlvdXRwdXRCdWZmZXJfT2JqZWN0OworCisjZGVmaW5lIFB5b3V0cHV0QnVmZmVyX0dldCh2KSAoKCh2KSA9PSBQeV9Ob25lKSA/IE5VTEwgOiBcCisJKCgoUHlvdXRwdXRCdWZmZXJfT2JqZWN0ICopKHYpKS0+b2JqKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBvYmo7Cit9IFB5aW5wdXRCdWZmZXJfT2JqZWN0OworCisjZGVmaW5lIFB5aW5wdXRCdWZmZXJfR2V0KHYpICgoKHYpID09IFB5X05vbmUpID8gTlVMTCA6IFwKKwkoKChQeWlucHV0QnVmZmVyX09iamVjdCAqKSh2KSktPm9iaikpCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgeG1sVVJJUHRyIG9iajsKK30gUHlVUklfT2JqZWN0OworCisvKiBGSUxFICogaGF2ZSB0aGVpciBvd24gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gKi8KKyNkZWZpbmUgUHlGaWxlX0dldCh2KSAoKCh2KSA9PSBQeV9Ob25lKSA/IE5VTEwgOiBcCisJKFB5RmlsZV9DaGVjayh2KSA/IChQeUZpbGVfQXNGaWxlKHYpKSA6IHN0ZG91dCkpCisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIHhtbFJlbGF4TkdQdHIgb2JqOworfSBQeXJlbGF4TmdTY2hlbWFfT2JqZWN0OworCisjZGVmaW5lIFB5cmVsYXhOZ1NjaGVtYV9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorCSgoKFB5cmVsYXhOZ1NjaGVtYV9PYmplY3QgKikodikpLT5vYmopKQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIG9iajsKK30gUHlyZWxheE5nUGFyc2VyQ3R4dF9PYmplY3Q7CisKKyNkZWZpbmUgUHlyZWxheE5nUGFyc2VyQ3R4dF9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorCSgoKFB5cmVsYXhOZ1BhcnNlckN0eHRfT2JqZWN0ICopKHYpKS0+b2JqKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0UHRyIG9iajsKK30gUHlyZWxheE5nVmFsaWRDdHh0X09iamVjdDsKKworI2RlZmluZSBQeXJlbGF4TmdWYWxpZEN0eHRfR2V0KHYpICgoKHYpID09IFB5X05vbmUpID8gTlVMTCA6IFwKKwkoKChQeXJlbGF4TmdWYWxpZEN0eHRfT2JqZWN0ICopKHYpKS0+b2JqKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworCVB5T2JqZWN0X0hFQUQKKwl4bWxTY2hlbWFQdHIgb2JqOworfSBQeVNjaGVtYV9PYmplY3Q7CisKKyNkZWZpbmUgUHlTY2hlbWFfR2V0KHYpICgoKHYpID09IFB5X05vbmUpID8gTlVMTCA6IFwKKwkoKChQeVNjaGVtYV9PYmplY3QgKikodikpLT5vYmopKQorCit0eXBlZGVmIHN0cnVjdCB7CisJUHlPYmplY3RfSEVBRAorCXhtbFNjaGVtYVBhcnNlckN0eHRQdHIgb2JqOworfSBQeVNjaGVtYVBhcnNlckN0eHRfT2JqZWN0OworCisjZGVmaW5lIFB5U2NoZW1hUGFyc2VyQ3R4dF9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorCSgoKFB5U2NoZW1hUGFyc2VyQ3R4dF9PYmplY3QgKikodikpLT5vYmopKQorCit0eXBlZGVmIHN0cnVjdCB7CisJUHlPYmplY3RfSEVBRAorCXhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBvYmo7Cit9IFB5U2NoZW1hVmFsaWRDdHh0X09iamVjdDsKKworI2RlZmluZSBQeVNjaGVtYVZhbGlkQ3R4dF9HZXQodikgKCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogXAorCSgoKFB5U2NoZW1hVmFsaWRDdHh0X09iamVjdCAqKSh2KSktPm9iaikpCisKKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCisKK1B5T2JqZWN0ICogbGlieG1sX2ludFdyYXAoaW50IHZhbCk7CitQeU9iamVjdCAqIGxpYnhtbF9sb25nV3JhcChsb25nIHZhbCk7CitQeU9iamVjdCAqIGxpYnhtbF94bWxDaGFyUHRyV3JhcCh4bWxDaGFyICpzdHIpOworUHlPYmplY3QgKiBsaWJ4bWxfY29uc3R4bWxDaGFyUHRyV3JhcChjb25zdCB4bWxDaGFyICpzdHIpOworUHlPYmplY3QgKiBsaWJ4bWxfY2hhclB0cldyYXAoY2hhciAqc3RyKTsKK1B5T2JqZWN0ICogbGlieG1sX2NvbnN0Y2hhclB0cldyYXAoY29uc3QgY2hhciAqc3RyKTsKK1B5T2JqZWN0ICogbGlieG1sX2NoYXJQdHJDb25zdFdyYXAoY29uc3QgY2hhciAqc3RyKTsKK1B5T2JqZWN0ICogbGlieG1sX3htbENoYXJQdHJDb25zdFdyYXAoY29uc3QgeG1sQ2hhciAqc3RyKTsKK1B5T2JqZWN0ICogbGlieG1sX3htbERvY1B0cldyYXAoeG1sRG9jUHRyIGRvYyk7CitQeU9iamVjdCAqIGxpYnhtbF94bWxOb2RlUHRyV3JhcCh4bWxOb2RlUHRyIG5vZGUpOworUHlPYmplY3QgKiBsaWJ4bWxfeG1sQXR0clB0cldyYXAoeG1sQXR0clB0ciBhdHRyKTsKK1B5T2JqZWN0ICogbGlieG1sX3htbE5zUHRyV3JhcCh4bWxOc1B0ciBucyk7CitQeU9iamVjdCAqIGxpYnhtbF94bWxBdHRyaWJ1dGVQdHJXcmFwKHhtbEF0dHJpYnV0ZVB0ciBucyk7CitQeU9iamVjdCAqIGxpYnhtbF94bWxFbGVtZW50UHRyV3JhcCh4bWxFbGVtZW50UHRyIG5zKTsKK1B5T2JqZWN0ICogbGlieG1sX2RvdWJsZVdyYXAoZG91YmxlIHZhbCk7CitQeU9iamVjdCAqIGxpYnhtbF94bWxYUGF0aENvbnRleHRQdHJXcmFwKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KTsKK1B5T2JqZWN0ICogbGlieG1sX3htbFBhcnNlckN0eHRQdHJXcmFwKHhtbFBhcnNlckN0eHRQdHIgY3R4dCk7CitQeU9iamVjdCAqIGxpYnhtbF94bWxYUGF0aFBhcnNlckNvbnRleHRQdHJXcmFwKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KTsKK1B5T2JqZWN0ICogbGlieG1sX3htbFhQYXRoT2JqZWN0UHRyV3JhcCh4bWxYUGF0aE9iamVjdFB0ciBvYmopOworUHlPYmplY3QgKiBsaWJ4bWxfeG1sVmFsaWRDdHh0UHRyV3JhcCh4bWxWYWxpZEN0eHRQdHIgdmFsaWQpOworUHlPYmplY3QgKiBsaWJ4bWxfeG1sQ2F0YWxvZ1B0cldyYXAoeG1sQ2F0YWxvZ1B0ciBvYmopOworUHlPYmplY3QgKiBsaWJ4bWxfeG1sVVJJUHRyV3JhcCh4bWxVUklQdHIgdXJpKTsKK1B5T2JqZWN0ICogbGlieG1sX3htbE91dHB1dEJ1ZmZlclB0cldyYXAoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZmZlcik7CitQeU9iamVjdCAqIGxpYnhtbF94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cldyYXAoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgYnVmZmVyKTsKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK1B5T2JqZWN0ICogbGlieG1sX3htbFJlZ2V4cFB0cldyYXAoeG1sUmVnZXhwUHRyIHJlZ2V4cCk7CisjZW5kaWYgLyogTElCWE1MX1JFR0VYUF9FTkFCTEVEICovCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECitQeU9iamVjdCAqIGxpYnhtbF94bWxUZXh0UmVhZGVyUHRyV3JhcCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitQeU9iamVjdCAqIGxpYnhtbF94bWxUZXh0UmVhZGVyTG9jYXRvclB0cldyYXAoeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgbG9jYXRvcik7CisjZW5kaWYKKworeG1sWFBhdGhPYmplY3RQdHIgbGlieG1sX3htbFhQYXRoT2JqZWN0UHRyQ29udmVydChQeU9iamVjdCAqIG9iaik7CisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorUHlPYmplY3QgKiBsaWJ4bWxfeG1sUmVsYXhOR1B0cldyYXAoeG1sUmVsYXhOR1B0ciBjdHh0KTsKK1B5T2JqZWN0ICogbGlieG1sX3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyV3JhcCh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0KTsKK1B5T2JqZWN0ICogbGlieG1sX3htbFJlbGF4TkdWYWxpZEN0eHRQdHJXcmFwKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgdmFsaWQpOworUHlPYmplY3QgKiBsaWJ4bWxfeG1sU2NoZW1hUHRyV3JhcCh4bWxTY2hlbWFQdHIgY3R4dCk7CitQeU9iamVjdCAqIGxpYnhtbF94bWxTY2hlbWFQYXJzZXJDdHh0UHRyV3JhcCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQpOworUHlPYmplY3QgKiBsaWJ4bWxfeG1sU2NoZW1hVmFsaWRDdHh0UHRyV3JhcCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmFsaWQpOworI2VuZGlmIC8qIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQgKi8KK1B5T2JqZWN0ICogbGlieG1sX3htbEVycm9yUHRyV3JhcCh4bWxFcnJvclB0ciBlcnJvcik7CitQeU9iamVjdCAqIGxpYnhtbF94bWxTY2hlbWFTZXRWYWxpZEVycm9ycyhQeU9iamVjdCAqIHNlbGYsIFB5T2JqZWN0ICogYXJncyk7CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi9zZXR1cC5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY1MjJhNTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi9zZXR1cC5weQpAQCAtMCwwICsxLDI0MiBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKKyMgU2V0dXAgc2NyaXB0IGZvciBsaWJ4bWwyIGFuZCBsaWJ4c2x0IGlmIGZvdW5kCisjCitpbXBvcnQgc3lzLCBvcworZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBvcnQgc2V0dXAsIEV4dGVuc2lvbgorCisjIEJlbG93IFJPT1QsIHdlIGV4cGVjdCB0byBmaW5kIGluY2x1ZGUsIGluY2x1ZGUvbGlieG1sMiwgbGliIGFuZCBiaW4uCisjIE9uICpuaXgsIGl0IGlzIG5vdCBuZWVkZWQgKGJ1dCBzaG91bGQgbm90IGhhcm0pLCAKKyMgb24gV2luZG93cywgaXQgaXMgc2V0IGJ5IGNvbmZpZ3VyZS5qcy4KK1JPT1QgPSByJy91c3InIAorCisjIFRocmVhZC1lbmFibGVkIGxpYnhtbDIKK3dpdGhfdGhyZWFkcyA9IDEKKworIyBJZiB0aGlzIGZsYWcgaXMgc2V0ICh3aW5kb3dzIG9ubHkpLCAKKyMgYSBwcml2YXRlIGNvcHkgb2YgdGhlIGRsbHMgYXJlIGluY2x1ZGVkIGluIHRoZSBwYWNrYWdlLgorIyBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGxpYnhtbDIgYW5kIGxpYnhzbHQKKyMgZGxscyBtdXN0IGJlIGZvdW5kIHNvbWV3aGVyZSBpbiB0aGUgUEFUSCBhdCBydW50aW1lLgorV0lUSERMTFMgPSAxIGFuZCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykKKworZGVmIG1pc3NpbmcoZmlsZSk6CisgICAgaWYgb3MuYWNjZXNzKGZpbGUsIG9zLlJfT0spID09IDA6CisgICAgICAgIHJldHVybiAxCisgICAgcmV0dXJuIDAKKwordHJ5OgorICAgIEhPTUUgPSBvcy5lbnZpcm9uWydIT01FJ10KK2V4Y2VwdDoKKyAgICBIT01FPSJDOiIKKworaWYgV0lUSERMTFM6CisgICAgIyBsaWJ4bWwgZGxscyAoZXhwZWN0ZWQgaW4gUk9PVC9iaW4pCisgICAgZGxscyA9IFsgJ2ljb252LmRsbCcsJ2xpYnhtbDIuZGxsJywnbGlieHNsdC5kbGwnLCdsaWJleHNsdC5kbGwnIF0KKyAgICBkbGxzID0gbWFwKGxhbWJkYSBkbGw6IG9zLnBhdGguam9pbihST09ULCdiaW4nLGRsbCksZGxscykKKworICAgICMgY3JlYXRlIF9faW5pdF9fLnB5IGZvciB0aGUgbGlieG1sbW9kcyBwYWNrYWdlCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKCJsaWJ4bWxtb2RzIik6CisgICAgICAgIG9zLm1rZGlyKCJsaWJ4bWxtb2RzIikKKyAgICAgICAgb3BlbigibGlieG1sbW9kcy9fX2luaXRfXy5weSIsInciKS5jbG9zZSgpCisKKyAgICBkZWYgYWx0SW1wb3J0KHMpOgorICAgICAgICBzID0gcy5yZXBsYWNlKCJpbXBvcnQgbGlieG1sMm1vZCIsImZyb20gbGlieG1sbW9kcyBpbXBvcnQgbGlieG1sMm1vZCIpCisgICAgICAgIHMgPSBzLnJlcGxhY2UoImltcG9ydCBsaWJ4c2x0bW9kIiwiZnJvbSBsaWJ4bWxtb2RzIGltcG9ydCBsaWJ4c2x0bW9kIikKKyAgICAgICAgcmV0dXJuIHMKKworaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgorICAgIGxpYnJhcnlQcmVmaXggPSAnbGliJworICAgIHBsYXRmb3JtTGlicyA9IFtdCitlbHNlOgorICAgIGxpYnJhcnlQcmVmaXggPSAnJworICAgIHBsYXRmb3JtTGlicyA9IFsibSIsInoiXQorCisjIHRob3NlIGFyZSBleGFtaW5lZCB0byBmaW5kIAorIyAtIGxpYnhtbDIvbGlieG1sL3RyZWUuaAorIyAtIGljb252LmggCisjIC0gbGlieHNsdC94c2x0Y29uZmlnLmgKK2luY2x1ZGVzX2RpciA9IFsKKyIvdXNyL2luY2x1ZGUiLAorIi91c3IvbG9jYWwvaW5jbHVkZSIsCisiL29wdC9pbmNsdWRlIiwKK29zLnBhdGguam9pbihST09ULCdpbmNsdWRlJyksCitIT01FCitdOworCit4bWxfaW5jbHVkZXM9IiIKK2ZvciBkaXIgaW4gaW5jbHVkZXNfZGlyOgorICAgIGlmIG5vdCBtaXNzaW5nKGRpciArICIvbGlieG1sMi9saWJ4bWwvdHJlZS5oIik6CisgICAgICAgIHhtbF9pbmNsdWRlcz1kaXIgKyAiL2xpYnhtbDIiCisJYnJlYWs7CisKK2lmIHhtbF9pbmNsdWRlcyA9PSAiIjoKKyAgICBwcmludCAiZmFpbGVkIHRvIGZpbmQgaGVhZGVycyBmb3IgbGlieG1sMjogdXBkYXRlIGluY2x1ZGVzX2RpciIKKyAgICBzeXMuZXhpdCgxKQorCitpY29udl9pbmNsdWRlcz0iIgorZm9yIGRpciBpbiBpbmNsdWRlc19kaXI6CisgICAgaWYgbm90IG1pc3NpbmcoZGlyICsgIi9pY29udi5oIik6CisgICAgICAgIGljb252X2luY2x1ZGVzPWRpcgorCWJyZWFrOworCitpZiBpY29udl9pbmNsdWRlcyA9PSAiIjoKKyAgICBwcmludCAiZmFpbGVkIHRvIGZpbmQgaGVhZGVycyBmb3IgbGliaWNvbnY6IHVwZGF0ZSBpbmNsdWRlc19kaXIiCisgICAgc3lzLmV4aXQoMSkKKworIyB0aG9zZSBhcmUgYWRkZWQgaW4gdGhlIGxpbmtlciBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzCitsaWJkaXJzID0gWworb3MucGF0aC5qb2luKFJPT1QsJ2xpYicpLAorXQorCit4bWxfZmlsZXMgPSBbImxpYnhtbDItYXBpLnhtbCIsICJsaWJ4bWwyLXB5dGhvbi1hcGkueG1sIiwKKyAgICAgICAgICAgICAibGlieG1sLmMiLCAibGlieG1sLnB5IiwgImxpYnhtbF93cmFwLmgiLCAidHlwZXMuYyIsCisJICAgICAieG1sZ2VuZXJhdG9yLnB5IiwgIlJFQURNRSIsICJUT0RPIiwgImRydl9saWJ4bWwyLnB5Il0KKworeHNsdF9maWxlcyA9IFsibGlieHNsdC1hcGkueG1sIiwgImxpYnhzbHQtcHl0aG9uLWFwaS54bWwiLAorICAgICAgICAgICAgICJsaWJ4c2x0LmMiLCAibGlieHNsLnB5IiwgImxpYnhzbHRfd3JhcC5oIiwKKwkgICAgICJ4c2x0Z2VuZXJhdG9yLnB5Il0KKworaWYgbWlzc2luZygibGlieG1sMi1weS5jIikgb3IgbWlzc2luZygibGlieG1sMi5weSIpOgorICAgIHRyeToKKwl0cnk6CisJICAgIGltcG9ydCB4bWxnZW5lcmF0b3IKKwlleGNlcHQ6CisJICAgIGltcG9ydCBnZW5lcmF0b3IKKyAgICBleGNlcHQ6CisJcHJpbnQgImZhaWxlZCB0byBmaW5kIGFuZCBnZW5lcmF0ZSBzdHVicyBmb3IgbGlieG1sMiwgYWJvcnRpbmcgLi4uIgorCXByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCXN5cy5leGl0KDEpCisKKyAgICBoZWFkID0gb3BlbigibGlieG1sLnB5IiwgInIiKQorICAgIGdlbmVyYXRlZCA9IG9wZW4oImxpYnhtbDJjbGFzcy5weSIsICJyIikKKyAgICByZXN1bHQgPSBvcGVuKCJsaWJ4bWwyLnB5IiwgInciKQorICAgIGZvciBsaW5lIGluIGhlYWQucmVhZGxpbmVzKCk6CisgICAgICAgIGlmIFdJVEhETExTOgorICAgICAgICAgICAgcmVzdWx0LndyaXRlKGFsdEltcG9ydChsaW5lKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdC53cml0ZShsaW5lKQorICAgIGZvciBsaW5lIGluIGdlbmVyYXRlZC5yZWFkbGluZXMoKToKKwlyZXN1bHQud3JpdGUobGluZSkKKyAgICBoZWFkLmNsb3NlKCkKKyAgICBnZW5lcmF0ZWQuY2xvc2UoKQorICAgIHJlc3VsdC5jbG9zZSgpCisKK3dpdGhfeHNsdD0wCitpZiBtaXNzaW5nKCJsaWJ4c2x0LXB5LmMiKSBvciBtaXNzaW5nKCJsaWJ4c2x0LnB5Iik6CisgICAgaWYgbWlzc2luZygieHNsdGdlbmVyYXRvci5weSIpIG9yIG1pc3NpbmcoImxpYnhzbHQtYXBpLnhtbCIpOgorICAgICAgICBwcmludCAibGlieHNsdCBzdHViIGdlbmVyYXRvciBub3QgZm91bmQsIGxpYnhzbHQgbm90IGJ1aWx0IgorICAgIGVsc2U6CisJdHJ5OgorCSAgICBpbXBvcnQgeHNsdGdlbmVyYXRvcgorCWV4Y2VwdDoKKwkgICAgcHJpbnQgImZhaWxlZCB0byBnZW5lcmF0ZSBzdHVicyBmb3IgbGlieHNsdCwgYWJvcnRpbmcgLi4uIgorCSAgICBwcmludCBzeXMuZXhjX3R5cGUsIHN5cy5leGNfdmFsdWUKKwllbHNlOgorCSAgICBoZWFkID0gb3BlbigibGlieHNsLnB5IiwgInIiKQorCSAgICBnZW5lcmF0ZWQgPSBvcGVuKCJsaWJ4c2x0Y2xhc3MucHkiLCAiciIpCisJICAgIHJlc3VsdCA9IG9wZW4oImxpYnhzbHQucHkiLCAidyIpCisJICAgIGZvciBsaW5lIGluIGhlYWQucmVhZGxpbmVzKCk6CisgICAgICAgICAgICAgICAgaWYgV0lUSERMTFM6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC53cml0ZShhbHRJbXBvcnQobGluZSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LndyaXRlKGxpbmUpCisJICAgIGZvciBsaW5lIGluIGdlbmVyYXRlZC5yZWFkbGluZXMoKToKKwkJcmVzdWx0LndyaXRlKGxpbmUpCisJICAgIGhlYWQuY2xvc2UoKQorCSAgICBnZW5lcmF0ZWQuY2xvc2UoKQorCSAgICByZXN1bHQuY2xvc2UoKQorCSAgICB3aXRoX3hzbHQ9MQorZWxzZToKKyAgICB3aXRoX3hzbHQ9MQorCitpZiB3aXRoX3hzbHQgPT0gMToKKyAgICB4c2x0X2luY2x1ZGVzPSIiCisgICAgZm9yIGRpciBpbiBpbmNsdWRlc19kaXI6CisJaWYgbm90IG1pc3NpbmcoZGlyICsgIi9saWJ4c2x0L3hzbHRjb25maWcuaCIpOgorCSAgICB4c2x0X2luY2x1ZGVzPWRpciArICIvbGlieHNsdCIKKwkgICAgYnJlYWs7CisKKyAgICBpZiB4c2x0X2luY2x1ZGVzID09ICIiOgorCXByaW50ICJmYWlsZWQgdG8gZmluZCBoZWFkZXJzIGZvciBsaWJ4c2x0OiB1cGRhdGUgaW5jbHVkZXNfZGlyIgorCXdpdGhfeHNsdCA9IDAKKworCitkZXNjciA9ICJsaWJ4bWwyIHBhY2thZ2UiCittb2R1bGVzID0gWyAnbGlieG1sMicsICdkcnZfbGlieG1sMicgXQoraWYgV0lUSERMTFM6CisgICAgbW9kdWxlcy5hcHBlbmQoJ2xpYnhtbG1vZHMuX19pbml0X18nKQorY19maWxlcyA9IFsnbGlieG1sMi1weS5jJywgJ2xpYnhtbC5jJywgJ3R5cGVzLmMnIF0KK2luY2x1ZGVzPSBbeG1sX2luY2x1ZGVzLCBpY29udl9pbmNsdWRlc10KK2xpYnMgICAgPSBbbGlicmFyeVByZWZpeCArICJ4bWwyIl0gKyBwbGF0Zm9ybUxpYnMKK21hY3JvcyAgPSBbXQoraWYgd2l0aF90aHJlYWRzOgorICAgIG1hY3Jvcy5hcHBlbmQoKCdfUkVFTlRSQU5UJywnMScpKQoraWYgd2l0aF94c2x0ID09IDE6CisgICAgZGVzY3IgPSAibGlieG1sMiBhbmQgbGlieHNsdCBwYWNrYWdlIgorICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyk6CisgICAgICAgICMKKyAgICAgICAgIyBXZSBhcmUgZ29ubmEgYnVpbGQgMiBpZGVudGljYWwgc2hhcmVkIGxpYnMgd2l0aCBtZXJnZSBpbml0aWFsaXppbmcKKyAgICAgICAgIyBib3RoIGxpYnhtbDJtb2QgYW5kIGxpYnhzbHRtb2QKKyAgICAgICAgIworICAgICAgICBjX2ZpbGVzID0gY19maWxlcyArIFsnbGlieHNsdC1weS5jJywgJ2xpYnhzbHQuYyddCisgICAgICAgIHhzbHRfY19maWxlcyA9IGNfZmlsZXMKKyAgICAgICAgbWFjcm9zLmFwcGVuZCgoJ01FUkdFRF9NT0RVTEVTJywgJzEnKSkKKyAgICBlbHNlOgorICAgICAgICAjCisgICAgICAgICMgT24gd2luZG93cyB0aGUgTUVSR0VEX01PRFVMRSBvcHRpb24gaXMgbm90IG5lZWRlZAorICAgICAgICAjIChhbmQgZG9lcyBub3Qgd29yaykKKyAgICAgICAgIworICAgICAgICB4c2x0X2NfZmlsZXMgPSBbJ2xpYnhzbHQtcHkuYycsICdsaWJ4c2x0LmMnLCAndHlwZXMuYyddCisgICAgbGlicy5pbnNlcnQoMCwgbGlicmFyeVByZWZpeCArICdleHNsdCcpCisgICAgbGlicy5pbnNlcnQoMCwgbGlicmFyeVByZWZpeCArICd4c2x0JykKKyAgICBpbmNsdWRlcy5hcHBlbmQoeHNsdF9pbmNsdWRlcykKKyAgICBtb2R1bGVzLmFwcGVuZCgnbGlieHNsdCcpCisKKworZXh0ZW5zPVtFeHRlbnNpb24oJ2xpYnhtbDJtb2QnLCBjX2ZpbGVzLCBpbmNsdWRlX2RpcnM9aW5jbHVkZXMsCisgICAgICAgICAgICAgICAgICBsaWJyYXJ5X2RpcnM9bGliZGlycywgCisgICAgICAgICAgICAgICAgICBsaWJyYXJpZXM9bGlicywgZGVmaW5lX21hY3Jvcz1tYWNyb3MpXSAKK2lmIHdpdGhfeHNsdCA9PSAxOgorICAgIGV4dGVucy5hcHBlbmQoRXh0ZW5zaW9uKCdsaWJ4c2x0bW9kJywgeHNsdF9jX2ZpbGVzLCBpbmNsdWRlX2RpcnM9aW5jbHVkZXMsCisJCQkgICAgbGlicmFyeV9kaXJzPWxpYmRpcnMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcz1saWJzLCBkZWZpbmVfbWFjcm9zPW1hY3JvcykpCisKK2lmIG1pc3NpbmcoIk1BTklGRVNUIik6CisKKyAgICBtYW5pZmVzdCA9IG9wZW4oIk1BTklGRVNUIiwgInciKQorICAgIG1hbmlmZXN0LndyaXRlKCJzZXR1cC5weVxuIikKKyAgICBmb3IgZmlsZSBpbiB4bWxfZmlsZXM6CisgICAgICAgIG1hbmlmZXN0LndyaXRlKGZpbGUgKyAiXG4iKQorICAgIGlmIHdpdGhfeHNsdCA9PSAxOgorCWZvciBmaWxlIGluIHhzbHRfZmlsZXM6CisJICAgIG1hbmlmZXN0LndyaXRlKGZpbGUgKyAiXG4iKQorICAgIG1hbmlmZXN0LmNsb3NlKCkKKworaWYgV0lUSERMTFM6CisgICAgZXh0X3BhY2thZ2UgPSAibGlieG1sbW9kcyIKKyAgICBpZiBzeXMudmVyc2lvbiA+PSAiMi4yIjoKKyAgICAgICAgYmFzZSA9ICJsaWIvc2l0ZS1wYWNrYWdlcy8iCisgICAgZWxzZToKKyAgICAgICAgYmFzZSA9ICIiCisgICAgZGF0YV9maWxlcyA9IFsoYmFzZSsibGlieG1sbW9kcyIsZGxscyldCitlbHNlOgorICAgIGV4dF9wYWNrYWdlID0gTm9uZQorICAgIGRhdGFfZmlsZXMgPSBbXQorCitzZXR1cCAobmFtZSA9ICJsaWJ4bWwyLXB5dGhvbiIsCisgICAgICAgIyBPbiAqbml4LCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgY3JlYXRlZCBmcm9tIHNldHVwLnB5LmluCisgICAgICAgIyBPbiB3aW5kb3dzLCBpdCBpcyBzZXQgYnkgY29uZmlndXJlLmpzCisgICAgICAgdmVyc2lvbiA9ICIyLjcuNyIsCisgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjciwKKyAgICAgICBhdXRob3IgPSAiRGFuaWVsIFZlaWxsYXJkIiwKKyAgICAgICBhdXRob3JfZW1haWwgPSAidmVpbGxhcmRAcmVkaGF0LmNvbSIsCisgICAgICAgdXJsID0gImh0dHA6Ly94bWxzb2Z0Lm9yZy9weXRob24uaHRtbCIsCisgICAgICAgbGljZW5jZT0iTUlUIExpY2VuY2UiLAorICAgICAgIHB5X21vZHVsZXM9bW9kdWxlcywKKyAgICAgICBleHRfbW9kdWxlcz1leHRlbnMsCisgICAgICAgZXh0X3BhY2thZ2U9ZXh0X3BhY2thZ2UsCisgICAgICAgZGF0YV9maWxlcz1kYXRhX2ZpbGVzLAorICAgICAgICkKKworc3lzLmV4aXQoMCkKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vc2V0dXAucHkuaW4gYi9saWJ4bWwyLTIuNy43L3B5dGhvbi9zZXR1cC5weS5pbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZWFmNTMwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vc2V0dXAucHkuaW4KQEAgLTAsMCArMSwyNDIgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CisjCisjIFNldHVwIHNjcmlwdCBmb3IgbGlieG1sMiBhbmQgbGlieHNsdCBpZiBmb3VuZAorIworaW1wb3J0IHN5cywgb3MKK2Zyb20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwLCBFeHRlbnNpb24KKworIyBCZWxvdyBST09ULCB3ZSBleHBlY3QgdG8gZmluZCBpbmNsdWRlLCBpbmNsdWRlL2xpYnhtbDIsIGxpYiBhbmQgYmluLgorIyBPbiAqbml4LCBpdCBpcyBub3QgbmVlZGVkIChidXQgc2hvdWxkIG5vdCBoYXJtKSwgCisjIG9uIFdpbmRvd3MsIGl0IGlzIHNldCBieSBjb25maWd1cmUuanMuCitST09UID0gcidAcHJlZml4QCcgCisKKyMgVGhyZWFkLWVuYWJsZWQgbGlieG1sMgord2l0aF90aHJlYWRzID0gQFdJVEhfVEhSRUFEU0AKKworIyBJZiB0aGlzIGZsYWcgaXMgc2V0ICh3aW5kb3dzIG9ubHkpLCAKKyMgYSBwcml2YXRlIGNvcHkgb2YgdGhlIGRsbHMgYXJlIGluY2x1ZGVkIGluIHRoZSBwYWNrYWdlLgorIyBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlIGxpYnhtbDIgYW5kIGxpYnhzbHQKKyMgZGxscyBtdXN0IGJlIGZvdW5kIHNvbWV3aGVyZSBpbiB0aGUgUEFUSCBhdCBydW50aW1lLgorV0lUSERMTFMgPSAxIGFuZCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykKKworZGVmIG1pc3NpbmcoZmlsZSk6CisgICAgaWYgb3MuYWNjZXNzKGZpbGUsIG9zLlJfT0spID09IDA6CisgICAgICAgIHJldHVybiAxCisgICAgcmV0dXJuIDAKKwordHJ5OgorICAgIEhPTUUgPSBvcy5lbnZpcm9uWydIT01FJ10KK2V4Y2VwdDoKKyAgICBIT01FPSJDOiIKKworaWYgV0lUSERMTFM6CisgICAgIyBsaWJ4bWwgZGxscyAoZXhwZWN0ZWQgaW4gUk9PVC9iaW4pCisgICAgZGxscyA9IFsgJ2ljb252LmRsbCcsJ2xpYnhtbDIuZGxsJywnbGlieHNsdC5kbGwnLCdsaWJleHNsdC5kbGwnIF0KKyAgICBkbGxzID0gbWFwKGxhbWJkYSBkbGw6IG9zLnBhdGguam9pbihST09ULCdiaW4nLGRsbCksZGxscykKKworICAgICMgY3JlYXRlIF9faW5pdF9fLnB5IGZvciB0aGUgbGlieG1sbW9kcyBwYWNrYWdlCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKCJsaWJ4bWxtb2RzIik6CisgICAgICAgIG9zLm1rZGlyKCJsaWJ4bWxtb2RzIikKKyAgICAgICAgb3BlbigibGlieG1sbW9kcy9fX2luaXRfXy5weSIsInciKS5jbG9zZSgpCisKKyAgICBkZWYgYWx0SW1wb3J0KHMpOgorICAgICAgICBzID0gcy5yZXBsYWNlKCJpbXBvcnQgbGlieG1sMm1vZCIsImZyb20gbGlieG1sbW9kcyBpbXBvcnQgbGlieG1sMm1vZCIpCisgICAgICAgIHMgPSBzLnJlcGxhY2UoImltcG9ydCBsaWJ4c2x0bW9kIiwiZnJvbSBsaWJ4bWxtb2RzIGltcG9ydCBsaWJ4c2x0bW9kIikKKyAgICAgICAgcmV0dXJuIHMKKworaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgorICAgIGxpYnJhcnlQcmVmaXggPSAnbGliJworICAgIHBsYXRmb3JtTGlicyA9IFtdCitlbHNlOgorICAgIGxpYnJhcnlQcmVmaXggPSAnJworICAgIHBsYXRmb3JtTGlicyA9IFsibSIsInoiXQorCisjIHRob3NlIGFyZSBleGFtaW5lZCB0byBmaW5kIAorIyAtIGxpYnhtbDIvbGlieG1sL3RyZWUuaAorIyAtIGljb252LmggCisjIC0gbGlieHNsdC94c2x0Y29uZmlnLmgKK2luY2x1ZGVzX2RpciA9IFsKKyIvdXNyL2luY2x1ZGUiLAorIi91c3IvbG9jYWwvaW5jbHVkZSIsCisiL29wdC9pbmNsdWRlIiwKK29zLnBhdGguam9pbihST09ULCdpbmNsdWRlJyksCitIT01FCitdOworCit4bWxfaW5jbHVkZXM9IiIKK2ZvciBkaXIgaW4gaW5jbHVkZXNfZGlyOgorICAgIGlmIG5vdCBtaXNzaW5nKGRpciArICIvbGlieG1sMi9saWJ4bWwvdHJlZS5oIik6CisgICAgICAgIHhtbF9pbmNsdWRlcz1kaXIgKyAiL2xpYnhtbDIiCisJYnJlYWs7CisKK2lmIHhtbF9pbmNsdWRlcyA9PSAiIjoKKyAgICBwcmludCAiZmFpbGVkIHRvIGZpbmQgaGVhZGVycyBmb3IgbGlieG1sMjogdXBkYXRlIGluY2x1ZGVzX2RpciIKKyAgICBzeXMuZXhpdCgxKQorCitpY29udl9pbmNsdWRlcz0iIgorZm9yIGRpciBpbiBpbmNsdWRlc19kaXI6CisgICAgaWYgbm90IG1pc3NpbmcoZGlyICsgIi9pY29udi5oIik6CisgICAgICAgIGljb252X2luY2x1ZGVzPWRpcgorCWJyZWFrOworCitpZiBpY29udl9pbmNsdWRlcyA9PSAiIjoKKyAgICBwcmludCAiZmFpbGVkIHRvIGZpbmQgaGVhZGVycyBmb3IgbGliaWNvbnY6IHVwZGF0ZSBpbmNsdWRlc19kaXIiCisgICAgc3lzLmV4aXQoMSkKKworIyB0aG9zZSBhcmUgYWRkZWQgaW4gdGhlIGxpbmtlciBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzCitsaWJkaXJzID0gWworb3MucGF0aC5qb2luKFJPT1QsJ2xpYicpLAorXQorCit4bWxfZmlsZXMgPSBbImxpYnhtbDItYXBpLnhtbCIsICJsaWJ4bWwyLXB5dGhvbi1hcGkueG1sIiwKKyAgICAgICAgICAgICAibGlieG1sLmMiLCAibGlieG1sLnB5IiwgImxpYnhtbF93cmFwLmgiLCAidHlwZXMuYyIsCisJICAgICAieG1sZ2VuZXJhdG9yLnB5IiwgIlJFQURNRSIsICJUT0RPIiwgImRydl9saWJ4bWwyLnB5Il0KKworeHNsdF9maWxlcyA9IFsibGlieHNsdC1hcGkueG1sIiwgImxpYnhzbHQtcHl0aG9uLWFwaS54bWwiLAorICAgICAgICAgICAgICJsaWJ4c2x0LmMiLCAibGlieHNsLnB5IiwgImxpYnhzbHRfd3JhcC5oIiwKKwkgICAgICJ4c2x0Z2VuZXJhdG9yLnB5Il0KKworaWYgbWlzc2luZygibGlieG1sMi1weS5jIikgb3IgbWlzc2luZygibGlieG1sMi5weSIpOgorICAgIHRyeToKKwl0cnk6CisJICAgIGltcG9ydCB4bWxnZW5lcmF0b3IKKwlleGNlcHQ6CisJICAgIGltcG9ydCBnZW5lcmF0b3IKKyAgICBleGNlcHQ6CisJcHJpbnQgImZhaWxlZCB0byBmaW5kIGFuZCBnZW5lcmF0ZSBzdHVicyBmb3IgbGlieG1sMiwgYWJvcnRpbmcgLi4uIgorCXByaW50IHN5cy5leGNfdHlwZSwgc3lzLmV4Y192YWx1ZQorCXN5cy5leGl0KDEpCisKKyAgICBoZWFkID0gb3BlbigibGlieG1sLnB5IiwgInIiKQorICAgIGdlbmVyYXRlZCA9IG9wZW4oImxpYnhtbDJjbGFzcy5weSIsICJyIikKKyAgICByZXN1bHQgPSBvcGVuKCJsaWJ4bWwyLnB5IiwgInciKQorICAgIGZvciBsaW5lIGluIGhlYWQucmVhZGxpbmVzKCk6CisgICAgICAgIGlmIFdJVEhETExTOgorICAgICAgICAgICAgcmVzdWx0LndyaXRlKGFsdEltcG9ydChsaW5lKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdC53cml0ZShsaW5lKQorICAgIGZvciBsaW5lIGluIGdlbmVyYXRlZC5yZWFkbGluZXMoKToKKwlyZXN1bHQud3JpdGUobGluZSkKKyAgICBoZWFkLmNsb3NlKCkKKyAgICBnZW5lcmF0ZWQuY2xvc2UoKQorICAgIHJlc3VsdC5jbG9zZSgpCisKK3dpdGhfeHNsdD0wCitpZiBtaXNzaW5nKCJsaWJ4c2x0LXB5LmMiKSBvciBtaXNzaW5nKCJsaWJ4c2x0LnB5Iik6CisgICAgaWYgbWlzc2luZygieHNsdGdlbmVyYXRvci5weSIpIG9yIG1pc3NpbmcoImxpYnhzbHQtYXBpLnhtbCIpOgorICAgICAgICBwcmludCAibGlieHNsdCBzdHViIGdlbmVyYXRvciBub3QgZm91bmQsIGxpYnhzbHQgbm90IGJ1aWx0IgorICAgIGVsc2U6CisJdHJ5OgorCSAgICBpbXBvcnQgeHNsdGdlbmVyYXRvcgorCWV4Y2VwdDoKKwkgICAgcHJpbnQgImZhaWxlZCB0byBnZW5lcmF0ZSBzdHVicyBmb3IgbGlieHNsdCwgYWJvcnRpbmcgLi4uIgorCSAgICBwcmludCBzeXMuZXhjX3R5cGUsIHN5cy5leGNfdmFsdWUKKwllbHNlOgorCSAgICBoZWFkID0gb3BlbigibGlieHNsLnB5IiwgInIiKQorCSAgICBnZW5lcmF0ZWQgPSBvcGVuKCJsaWJ4c2x0Y2xhc3MucHkiLCAiciIpCisJICAgIHJlc3VsdCA9IG9wZW4oImxpYnhzbHQucHkiLCAidyIpCisJICAgIGZvciBsaW5lIGluIGhlYWQucmVhZGxpbmVzKCk6CisgICAgICAgICAgICAgICAgaWYgV0lUSERMTFM6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC53cml0ZShhbHRJbXBvcnQobGluZSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LndyaXRlKGxpbmUpCisJICAgIGZvciBsaW5lIGluIGdlbmVyYXRlZC5yZWFkbGluZXMoKToKKwkJcmVzdWx0LndyaXRlKGxpbmUpCisJICAgIGhlYWQuY2xvc2UoKQorCSAgICBnZW5lcmF0ZWQuY2xvc2UoKQorCSAgICByZXN1bHQuY2xvc2UoKQorCSAgICB3aXRoX3hzbHQ9MQorZWxzZToKKyAgICB3aXRoX3hzbHQ9MQorCitpZiB3aXRoX3hzbHQgPT0gMToKKyAgICB4c2x0X2luY2x1ZGVzPSIiCisgICAgZm9yIGRpciBpbiBpbmNsdWRlc19kaXI6CisJaWYgbm90IG1pc3NpbmcoZGlyICsgIi9saWJ4c2x0L3hzbHRjb25maWcuaCIpOgorCSAgICB4c2x0X2luY2x1ZGVzPWRpciArICIvbGlieHNsdCIKKwkgICAgYnJlYWs7CisKKyAgICBpZiB4c2x0X2luY2x1ZGVzID09ICIiOgorCXByaW50ICJmYWlsZWQgdG8gZmluZCBoZWFkZXJzIGZvciBsaWJ4c2x0OiB1cGRhdGUgaW5jbHVkZXNfZGlyIgorCXdpdGhfeHNsdCA9IDAKKworCitkZXNjciA9ICJsaWJ4bWwyIHBhY2thZ2UiCittb2R1bGVzID0gWyAnbGlieG1sMicsICdkcnZfbGlieG1sMicgXQoraWYgV0lUSERMTFM6CisgICAgbW9kdWxlcy5hcHBlbmQoJ2xpYnhtbG1vZHMuX19pbml0X18nKQorY19maWxlcyA9IFsnbGlieG1sMi1weS5jJywgJ2xpYnhtbC5jJywgJ3R5cGVzLmMnIF0KK2luY2x1ZGVzPSBbeG1sX2luY2x1ZGVzLCBpY29udl9pbmNsdWRlc10KK2xpYnMgICAgPSBbbGlicmFyeVByZWZpeCArICJ4bWwyIl0gKyBwbGF0Zm9ybUxpYnMKK21hY3JvcyAgPSBbXQoraWYgd2l0aF90aHJlYWRzOgorICAgIG1hY3Jvcy5hcHBlbmQoKCdfUkVFTlRSQU5UJywnMScpKQoraWYgd2l0aF94c2x0ID09IDE6CisgICAgZGVzY3IgPSAibGlieG1sMiBhbmQgbGlieHNsdCBwYWNrYWdlIgorICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyk6CisgICAgICAgICMKKyAgICAgICAgIyBXZSBhcmUgZ29ubmEgYnVpbGQgMiBpZGVudGljYWwgc2hhcmVkIGxpYnMgd2l0aCBtZXJnZSBpbml0aWFsaXppbmcKKyAgICAgICAgIyBib3RoIGxpYnhtbDJtb2QgYW5kIGxpYnhzbHRtb2QKKyAgICAgICAgIworICAgICAgICBjX2ZpbGVzID0gY19maWxlcyArIFsnbGlieHNsdC1weS5jJywgJ2xpYnhzbHQuYyddCisgICAgICAgIHhzbHRfY19maWxlcyA9IGNfZmlsZXMKKyAgICAgICAgbWFjcm9zLmFwcGVuZCgoJ01FUkdFRF9NT0RVTEVTJywgJzEnKSkKKyAgICBlbHNlOgorICAgICAgICAjCisgICAgICAgICMgT24gd2luZG93cyB0aGUgTUVSR0VEX01PRFVMRSBvcHRpb24gaXMgbm90IG5lZWRlZAorICAgICAgICAjIChhbmQgZG9lcyBub3Qgd29yaykKKyAgICAgICAgIworICAgICAgICB4c2x0X2NfZmlsZXMgPSBbJ2xpYnhzbHQtcHkuYycsICdsaWJ4c2x0LmMnLCAndHlwZXMuYyddCisgICAgbGlicy5pbnNlcnQoMCwgbGlicmFyeVByZWZpeCArICdleHNsdCcpCisgICAgbGlicy5pbnNlcnQoMCwgbGlicmFyeVByZWZpeCArICd4c2x0JykKKyAgICBpbmNsdWRlcy5hcHBlbmQoeHNsdF9pbmNsdWRlcykKKyAgICBtb2R1bGVzLmFwcGVuZCgnbGlieHNsdCcpCisKKworZXh0ZW5zPVtFeHRlbnNpb24oJ2xpYnhtbDJtb2QnLCBjX2ZpbGVzLCBpbmNsdWRlX2RpcnM9aW5jbHVkZXMsCisgICAgICAgICAgICAgICAgICBsaWJyYXJ5X2RpcnM9bGliZGlycywgCisgICAgICAgICAgICAgICAgICBsaWJyYXJpZXM9bGlicywgZGVmaW5lX21hY3Jvcz1tYWNyb3MpXSAKK2lmIHdpdGhfeHNsdCA9PSAxOgorICAgIGV4dGVucy5hcHBlbmQoRXh0ZW5zaW9uKCdsaWJ4c2x0bW9kJywgeHNsdF9jX2ZpbGVzLCBpbmNsdWRlX2RpcnM9aW5jbHVkZXMsCisJCQkgICAgbGlicmFyeV9kaXJzPWxpYmRpcnMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcz1saWJzLCBkZWZpbmVfbWFjcm9zPW1hY3JvcykpCisKK2lmIG1pc3NpbmcoIk1BTklGRVNUIik6CisKKyAgICBtYW5pZmVzdCA9IG9wZW4oIk1BTklGRVNUIiwgInciKQorICAgIG1hbmlmZXN0LndyaXRlKCJzZXR1cC5weVxuIikKKyAgICBmb3IgZmlsZSBpbiB4bWxfZmlsZXM6CisgICAgICAgIG1hbmlmZXN0LndyaXRlKGZpbGUgKyAiXG4iKQorICAgIGlmIHdpdGhfeHNsdCA9PSAxOgorCWZvciBmaWxlIGluIHhzbHRfZmlsZXM6CisJICAgIG1hbmlmZXN0LndyaXRlKGZpbGUgKyAiXG4iKQorICAgIG1hbmlmZXN0LmNsb3NlKCkKKworaWYgV0lUSERMTFM6CisgICAgZXh0X3BhY2thZ2UgPSAibGlieG1sbW9kcyIKKyAgICBpZiBzeXMudmVyc2lvbiA+PSAiMi4yIjoKKyAgICAgICAgYmFzZSA9ICJsaWIvc2l0ZS1wYWNrYWdlcy8iCisgICAgZWxzZToKKyAgICAgICAgYmFzZSA9ICIiCisgICAgZGF0YV9maWxlcyA9IFsoYmFzZSsibGlieG1sbW9kcyIsZGxscyldCitlbHNlOgorICAgIGV4dF9wYWNrYWdlID0gTm9uZQorICAgIGRhdGFfZmlsZXMgPSBbXQorCitzZXR1cCAobmFtZSA9ICJsaWJ4bWwyLXB5dGhvbiIsCisgICAgICAgIyBPbiAqbml4LCB0aGUgdmVyc2lvbiBudW1iZXIgaXMgY3JlYXRlZCBmcm9tIHNldHVwLnB5LmluCisgICAgICAgIyBPbiB3aW5kb3dzLCBpdCBpcyBzZXQgYnkgY29uZmlndXJlLmpzCisgICAgICAgdmVyc2lvbiA9ICJATElCWE1MX1ZFUlNJT05AIiwKKyAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyLAorICAgICAgIGF1dGhvciA9ICJEYW5pZWwgVmVpbGxhcmQiLAorICAgICAgIGF1dGhvcl9lbWFpbCA9ICJ2ZWlsbGFyZEByZWRoYXQuY29tIiwKKyAgICAgICB1cmwgPSAiaHR0cDovL3htbHNvZnQub3JnL3B5dGhvbi5odG1sIiwKKyAgICAgICBsaWNlbmNlPSJNSVQgTGljZW5jZSIsCisgICAgICAgcHlfbW9kdWxlcz1tb2R1bGVzLAorICAgICAgIGV4dF9tb2R1bGVzPWV4dGVucywKKyAgICAgICBleHRfcGFja2FnZT1leHRfcGFja2FnZSwKKyAgICAgICBkYXRhX2ZpbGVzPWRhdGFfZmlsZXMsCisgICAgICAgKQorCitzeXMuZXhpdCgwKQorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyYzg5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDc0IEBACitleGFtcGxlZGlyID0gJChkYXRhZGlyKS9kb2MvbGlieG1sMi1weXRob24tJChMSUJYTUxfVkVSU0lPTikvZXhhbXBsZXMKK2Rpc3RfZXhhbXBsZV9EQVRBID0gJChQWVRFU1RTKSAkKFhNTFMpCisKK1BZVEVTVFM9CVwKKyAgICBidWlsZC5weQlcCisgICAgYXR0cmlicy5weQlcCisgICAgdHN0LnB5CVwKKyAgICB0c3R4cGF0aC5weQlcCisgICAgeHBhdGhleHQucHkJXAorICAgIHB1c2gucHkJXAorICAgIHB1c2hTQVgucHkJXAorICAgIHB1c2hTQVhodG1sLnB5IFwKKyAgICBlcnJvci5weQlcCisgICAgc2VyaWFsaXplLnB5XAorICAgIHZhbGlkYXRlLnB5CVwKKyAgICB0c3RVUkkucHkJXAorICAgIGN1dG5wYXN0ZS5weVwKKyAgICB4cGF0aHJldC5weQlcCisgICAgeHBhdGgucHkJXAorICAgIG91dGJ1Zi5weQlcCisgICAgaW5idWYucHkJXAorICAgIHJlc29sdmVyLnB5IFwKKyAgICByZWdleHAucHkJXAorICAgIHJlYWRlci5weQlcCisgICAgcmVhZGVyMi5weQlcCisgICAgcmVhZGVyMy5weQlcCisgICAgcmVhZGVyNC5weQlcCisgICAgcmVhZGVyNS5weQlcCisgICAgcmVhZGVyNi5weQlcCisgICAgcmVhZGVyNy5weQlcCisgICAgcmVhZGVyOC5weQlcCisgICAgcmVhZGVybmV4dC5weQlcCisgICAgd2Fsa2VyLnB5CVwKKyAgICBuc2RlbC5weQlcCisgICAgY3R4dGVycm9yLnB5XAorICAgIHJlYWRlcmVyci5weVwKKyAgICByZWxheG5nLnB5CVwKKyAgICBzY2hlbWEucHkJXAorICAgIHRocmVhZDIucHkgXAorICAgIHN5bmMucHkgXAorICAgIHRzdExhc3RFcnJvci5weSBcCisgICAgaW5kZXhlcy5weSBcCisgICAgZHRkdmFsaWQucHkgXAorICAgIHRzdG1lbS5weQlcCisgICAgdmFsaWREVEQucHkJXAorICAgIHZhbGlkU2NoZW1hcy5weSBcCisgICAgdmFsaWRSTkcucHkgXAorICAgIGNvbXBhcmVOb2Rlcy5weSBcCisgICAgeHBhdGhucy5weSBcCisgICAgeHBhdGhsZWFrLnB5CisKK1hNTFM9CQlcCisgICAgdHN0LnhtbAlcCisgICAgdmFsaWQueG1sCVwKKyAgICBpbnZhbGlkLnhtbAlcCisgICAgdGVzdC5kdGQKKworaWYgV0lUSF9QWVRIT04KK3Rlc3RzOiAkKFBZVEVTVFMpCisJQGVjaG8gIiMjIHJ1bm5pbmcgUHl0aG9uIHJlZ3Jlc3Npb24gdGVzdHMiCisJLUAoUFlUSE9OUEFUSD0iLi46Li4vLmxpYnM6JChzcmNkaXIpLy4uOiQkUFlUSE9OUEFUSCIgOyBcCisJICAgZXhwb3J0IFBZVEhPTlBBVEg7IFwKKwkgICBMRF9MSUJSQVJZX1BBVEg9IiQodG9wX2J1aWxkZGlyKS8ubGliczokJExEX0xJQlJBUllfUEFUSCIgOyBcCisJICAgZXhwb3J0IExEX0xJQlJBUllfUEFUSDsgXAorCSAgIGZvciB0ZXN0IGluICQoUFlURVNUUykgOyBcCisJICAgZG8gbG9nPWAkKFBZVEhPTikgJChzcmNkaXIpLyQkdGVzdGAgOyBcCisJICAgaWYgWyAiYGVjaG8gJCRsb2cgfCBncmVwIE9LYCIgPSAiIiBdIDsgdGhlbiBcCisJICAgZWNobyAiLS0gJCR0ZXN0IiA7IGVjaG8gIiQkbG9nIiA7IGZpIDsgZG9uZSkKK2Vsc2UKK3Rlc3RzOgorZW5kaWYKKworY2xlYW46CisJcm0gLWYgKi5weWMgY29yZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvTWFrZWZpbGUuaW4gYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWI1M2UzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw1NzcgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBAY29uZmlndXJlX2lucHV0QAorCisjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCisjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCitAU0VUX01BS0VACisKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK3N1YmRpciA9IHB5dGhvbi90ZXN0cworRElTVF9DT01NT04gPSAkKGRpc3RfZXhhbXBsZV9EQVRBKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorCSQoc3JjZGlyKS9NYWtlZmlsZS5pbgorQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL2FjaW5jbHVkZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5pbgorYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oCitDT05GSUdfQ0xFQU5fRklMRVMgPQorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK1NPVVJDRVMgPQorRElTVF9TT1VSQ0VTID0KK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorICAgICopIGY9JCRwOzsgXAorICBlc2FjOworYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworYW1fX2luc3RhbGxfbWF4ID0gNDAKK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgorYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAorICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKK2FtX19iYXNlX2xpc3QgPSBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChleGFtcGxlZGlyKSIKK0RBVEEgPSAkKGRpc3RfZXhhbXBsZV9EQVRBKQorRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNVEFSID0gQEFNVEFSQAorQVIgPSBAQVJACitBUyA9IEBBU0AKK0FVVE9DT05GID0gQEFVVE9DT05GQAorQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorQVVUT01BS0UgPSBAQVVUT01BS0VACitBV0sgPSBAQVdLQAorQkFTRV9USFJFQURfTElCUyA9IEBCQVNFX1RIUkVBRF9MSUJTQAorQzE0Tl9PQkogPSBAQzE0Tl9PQkpACitDQVRBTE9HX09CSiA9IEBDQVRBTE9HX09CSkAKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorQ1lHV0lOX0VYVFJBX0xERkxBR1MgPSBAQ1lHV0lOX0VYVFJBX0xERkxBR1NACitDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFERCA9IEBDWUdXSU5fRVhUUkFfUFlUSE9OX0xJQkFEREAKK0RFQlVHX09CSiA9IEBERUJVR19PQkpACitERUZTID0gQERFRlNACitERVBESVIgPSBAREVQRElSQAorRExMVE9PTCA9IEBETExUT09MQAorRE9DQl9PQkogPSBARE9DQl9PQkpACitEU1lNVVRJTCA9IEBEU1lNVVRJTEAKK0RVTVBCSU4gPSBARFVNUEJJTkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZHUkVQID0gQEZHUkVQQAorRlRQX09CSiA9IEBGVFBfT0JKQAorR1JFUCA9IEBHUkVQQAorSEFWRV9JU0lORiA9IEBIQVZFX0lTSU5GQAorSEFWRV9JU05BTiA9IEBIQVZFX0lTTkFOQAorSFRNTF9ESVIgPSBASFRNTF9ESVJACitIVE1MX09CSiA9IEBIVE1MX09CSkAKK0hUVFBfT0JKID0gQEhUVFBfT0JKQAorSUNPTlZfTElCUyA9IEBJQ09OVl9MSUJTQAorSU5TVEFMTCA9IEBJTlNUQUxMQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitMRCA9IEBMREAKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQk9CSlMgPSBATElCT0JKU0AKK0xJQlMgPSBATElCU0AKK0xJQlRPT0wgPSBATElCVE9PTEAKK0xJQlhNTF9NQUpPUl9WRVJTSU9OID0gQExJQlhNTF9NQUpPUl9WRVJTSU9OQAorTElCWE1MX01JQ1JPX1ZFUlNJT04gPSBATElCWE1MX01JQ1JPX1ZFUlNJT05ACitMSUJYTUxfTUlOT1JfVkVSU0lPTiA9IEBMSUJYTUxfTUlOT1JfVkVSU0lPTkAKK0xJQlhNTF9WRVJTSU9OID0gQExJQlhNTF9WRVJTSU9OQAorTElCWE1MX1ZFUlNJT05fRVhUUkEgPSBATElCWE1MX1ZFUlNJT05fRVhUUkFACitMSUJYTUxfVkVSU0lPTl9JTkZPID0gQExJQlhNTF9WRVJTSU9OX0lORk9ACitMSUJYTUxfVkVSU0lPTl9OVU1CRVIgPSBATElCWE1MX1ZFUlNJT05fTlVNQkVSQAorTElQTyA9IEBMSVBPQAorTE5fUyA9IEBMTl9TQAorTFRMSUJPQkpTID0gQExUTElCT0JKU0AKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorTUtESVJfUCA9IEBNS0RJUl9QQAorTU9EVUxFX0VYVEVOU0lPTiA9IEBNT0RVTEVfRVhURU5TSU9OQAorTU9EVUxFX1BMQVRGT1JNX0xJQlMgPSBATU9EVUxFX1BMQVRGT1JNX0xJQlNACitNViA9IEBNVkAKK01fTElCUyA9IEBNX0xJQlNACitOTSA9IEBOTUAKK05NRURJVCA9IEBOTUVESVRACitPQkpEVU1QID0gQE9CSkRVTVBACitPQkpFWFQgPSBAT0JKRVhUQAorT1RPT0wgPSBAT1RPT0xACitPVE9PTDY0ID0gQE9UT09MNjRACitQQUNLQUdFID0gQFBBQ0tBR0VACitQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACitQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACitQRVJMID0gQFBFUkxACitQWVRIT04gPSBAUFlUSE9OQAorUFlUSE9OX0lOQ0xVREVTID0gQFBZVEhPTl9JTkNMVURFU0AKK1BZVEhPTl9MSUJTID0gQFBZVEhPTl9MSUJTQAorUFlUSE9OX1NJVEVfUEFDS0FHRVMgPSBAUFlUSE9OX1NJVEVfUEFDS0FHRVNACitQWVRIT05fU1VCRElSID0gQFBZVEhPTl9TVUJESVJACitQWVRIT05fVEVTVFMgPSBAUFlUSE9OX1RFU1RTQAorUFlUSE9OX1ZFUlNJT04gPSBAUFlUSE9OX1ZFUlNJT05ACitSQU5MSUIgPSBAUkFOTElCQAorUkRMX0xJQlMgPSBAUkRMX0xJQlNACitSRUFERVJfVEVTVCA9IEBSRUFERVJfVEVTVEAKK1JFTERBVEUgPSBAUkVMREFURUAKK1JNID0gQFJNQAorU0VEID0gQFNFREAKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVEFUSUNfQklOQVJJRVMgPSBAU1RBVElDX0JJTkFSSUVTQAorU1RSSVAgPSBAU1RSSVBACitUQVIgPSBAVEFSQAorVEVTVF9DMTROID0gQFRFU1RfQzE0TkAKK1RFU1RfQ0FUQUxPRyA9IEBURVNUX0NBVEFMT0dACitURVNUX0RFQlVHID0gQFRFU1RfREVCVUdACitURVNUX0hUTUwgPSBAVEVTVF9IVE1MQAorVEVTVF9NT0RVTEVTID0gQFRFU1RfTU9EVUxFU0AKK1RFU1RfUEFUVEVSTiA9IEBURVNUX1BBVFRFUk5ACitURVNUX1BIVE1MID0gQFRFU1RfUEhUTUxACitURVNUX1BVU0ggPSBAVEVTVF9QVVNIQAorVEVTVF9SRUdFWFBTID0gQFRFU1RfUkVHRVhQU0AKK1RFU1RfU0FYID0gQFRFU1RfU0FYQAorVEVTVF9TQ0hFTUFTID0gQFRFU1RfU0NIRU1BU0AKK1RFU1RfU0NIRU1BVFJPTiA9IEBURVNUX1NDSEVNQVRST05ACitURVNUX1RIUkVBRFMgPSBAVEVTVF9USFJFQURTQAorVEVTVF9WQUxJRCA9IEBURVNUX1ZBTElEQAorVEVTVF9WVElNRSA9IEBURVNUX1ZUSU1FQAorVEVTVF9YSU5DTFVERSA9IEBURVNUX1hJTkNMVURFQAorVEVTVF9YUEFUSCA9IEBURVNUX1hQQVRIQAorVEVTVF9YUFRSID0gQFRFU1RfWFBUUkAKK1RIUkVBRFNfVzMyID0gQFRIUkVBRFNfVzMyQAorVEhSRUFEX0NGTEFHUyA9IEBUSFJFQURfQ0ZMQUdTQAorVEhSRUFEX0xJQlMgPSBAVEhSRUFEX0xJQlNACitVID0gQFVACitWRVJTSU9OID0gQFZFUlNJT05ACitWRVJTSU9OX1NDUklQVF9GTEFHUyA9IEBWRVJTSU9OX1NDUklQVF9GTEFHU0AKK1dHRVQgPSBAV0dFVEAKK1dJTjMyX0VYVFJBX0xERkxBR1MgPSBAV0lOMzJfRVhUUkFfTERGTEFHU0AKK1dJTjMyX0VYVFJBX0xJQkFERCA9IEBXSU4zMl9FWFRSQV9MSUJBRERACitXSVRIX0MxNE4gPSBAV0lUSF9DMTROQAorV0lUSF9DQVRBTE9HID0gQFdJVEhfQ0FUQUxPR0AKK1dJVEhfREVCVUcgPSBAV0lUSF9ERUJVR0AKK1dJVEhfRE9DQiA9IEBXSVRIX0RPQ0JACitXSVRIX0ZUUCA9IEBXSVRIX0ZUUEAKK1dJVEhfSFRNTCA9IEBXSVRIX0hUTUxACitXSVRIX0hUVFAgPSBAV0lUSF9IVFRQQAorV0lUSF9JQ09OViA9IEBXSVRIX0lDT05WQAorV0lUSF9JU084ODU5WCA9IEBXSVRIX0lTTzg4NTlYQAorV0lUSF9MRUdBQ1kgPSBAV0lUSF9MRUdBQ1lACitXSVRIX01FTV9ERUJVRyA9IEBXSVRIX01FTV9ERUJVR0AKK1dJVEhfTU9EVUxFUyA9IEBXSVRIX01PRFVMRVNACitXSVRIX09VVFBVVCA9IEBXSVRIX09VVFBVVEAKK1dJVEhfUEFUVEVSTiA9IEBXSVRIX1BBVFRFUk5ACitXSVRIX1BVU0ggPSBAV0lUSF9QVVNIQAorV0lUSF9SRUFERVIgPSBAV0lUSF9SRUFERVJACitXSVRIX1JFR0VYUFMgPSBAV0lUSF9SRUdFWFBTQAorV0lUSF9SVU5fREVCVUcgPSBAV0lUSF9SVU5fREVCVUdACitXSVRIX1NBWDEgPSBAV0lUSF9TQVgxQAorV0lUSF9TQ0hFTUFTID0gQFdJVEhfU0NIRU1BU0AKK1dJVEhfU0NIRU1BVFJPTiA9IEBXSVRIX1NDSEVNQVRST05ACitXSVRIX1RIUkVBRFMgPSBAV0lUSF9USFJFQURTQAorV0lUSF9UUkVFID0gQFdJVEhfVFJFRUAKK1dJVEhfVFJJTyA9IEBXSVRIX1RSSU9ACitXSVRIX1ZBTElEID0gQFdJVEhfVkFMSURACitXSVRIX1dSSVRFUiA9IEBXSVRIX1dSSVRFUkAKK1dJVEhfWElOQ0xVREUgPSBAV0lUSF9YSU5DTFVERUAKK1dJVEhfWFBBVEggPSBAV0lUSF9YUEFUSEAKK1dJVEhfWFBUUiA9IEBXSVRIX1hQVFJACitXSVRIX1pMSUIgPSBAV0lUSF9aTElCQAorWElOQ0xVREVfT0JKID0gQFhJTkNMVURFX09CSkAKK1hNTExJTlQgPSBAWE1MTElOVEAKK1hNTF9DRkxBR1MgPSBAWE1MX0NGTEFHU0AKK1hNTF9JTkNMVURFRElSID0gQFhNTF9JTkNMVURFRElSQAorWE1MX0xJQkRJUiA9IEBYTUxfTElCRElSQAorWE1MX0xJQlMgPSBAWE1MX0xJQlNACitYTUxfTElCVE9PTExJQlMgPSBAWE1MX0xJQlRPT0xMSUJTQAorWFBBVEhfT0JKID0gQFhQQVRIX09CSkAKK1hQVFJfT0JKID0gQFhQVFJfT0JKQAorWFNMVFBST0MgPSBAWFNMVFBST0NACitaX0NGTEFHUyA9IEBaX0NGTEFHU0AKK1pfTElCUyA9IEBaX0xJQlNACithYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9DQyA9IEBhY19jdF9DQ0AKK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACithbV9fdGFyID0gQGFtX190YXJACithbV9fdW50YXIgPSBAYW1fX3VudGFyQAorYmluZGlyID0gQGJpbmRpckAKK2J1aWxkID0gQGJ1aWxkQAorYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACitidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorYnVpbGRfb3MgPSBAYnVpbGRfb3NACitidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorYnVpbGRkaXIgPSBAYnVpbGRkaXJACitkYXRhZGlyID0gQGRhdGFkaXJACitkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKK2RvY2RpciA9IEBkb2NkaXJACitkdmlkaXIgPSBAZHZpZGlyQAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACitob3N0ID0gQGhvc3RACitob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACitob3N0X2NwdSA9IEBob3N0X2NwdUAKK2hvc3Rfb3MgPSBAaG9zdF9vc0AKK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAoraHRtbGRpciA9IEBodG1sZGlyQAoraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAoraW5mb2RpciA9IEBpbmZvZGlyQAoraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorbGliZGlyID0gQGxpYmRpckAKK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACitsdF9FQ0hPID0gQGx0X0VDSE9ACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorcGRmZGlyID0gQHBkZmRpckAKK3ByZWZpeCA9IEBwcmVmaXhACitwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACitwc2RpciA9IEBwc2RpckAKK3B5dGhvbmRpciA9IEBweXRob25kaXJACitzYmluZGlyID0gQHNiaW5kaXJACitzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKK3NyY2RpciA9IEBzcmNkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAordG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAordG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKK2V4YW1wbGVkaXIgPSAkKGRhdGFkaXIpL2RvYy9saWJ4bWwyLXB5dGhvbi0kKExJQlhNTF9WRVJTSU9OKS9leGFtcGxlcworZGlzdF9leGFtcGxlX0RBVEEgPSAkKFBZVEVTVFMpICQoWE1MUykKK1BZVEVTVFMgPSBcCisgICAgYnVpbGQucHkJXAorICAgIGF0dHJpYnMucHkJXAorICAgIHRzdC5weQlcCisgICAgdHN0eHBhdGgucHkJXAorICAgIHhwYXRoZXh0LnB5CVwKKyAgICBwdXNoLnB5CVwKKyAgICBwdXNoU0FYLnB5CVwKKyAgICBwdXNoU0FYaHRtbC5weSBcCisgICAgZXJyb3IucHkJXAorICAgIHNlcmlhbGl6ZS5weVwKKyAgICB2YWxpZGF0ZS5weQlcCisgICAgdHN0VVJJLnB5CVwKKyAgICBjdXRucGFzdGUucHlcCisgICAgeHBhdGhyZXQucHkJXAorICAgIHhwYXRoLnB5CVwKKyAgICBvdXRidWYucHkJXAorICAgIGluYnVmLnB5CVwKKyAgICByZXNvbHZlci5weSBcCisgICAgcmVnZXhwLnB5CVwKKyAgICByZWFkZXIucHkJXAorICAgIHJlYWRlcjIucHkJXAorICAgIHJlYWRlcjMucHkJXAorICAgIHJlYWRlcjQucHkJXAorICAgIHJlYWRlcjUucHkJXAorICAgIHJlYWRlcjYucHkJXAorICAgIHJlYWRlcjcucHkJXAorICAgIHJlYWRlcjgucHkJXAorICAgIHJlYWRlcm5leHQucHkJXAorICAgIHdhbGtlci5weQlcCisgICAgbnNkZWwucHkJXAorICAgIGN0eHRlcnJvci5weVwKKyAgICByZWFkZXJlcnIucHlcCisgICAgcmVsYXhuZy5weQlcCisgICAgc2NoZW1hLnB5CVwKKyAgICB0aHJlYWQyLnB5IFwKKyAgICBzeW5jLnB5IFwKKyAgICB0c3RMYXN0RXJyb3IucHkgXAorICAgIGluZGV4ZXMucHkgXAorICAgIGR0ZHZhbGlkLnB5IFwKKyAgICB0c3RtZW0ucHkJXAorICAgIHZhbGlkRFRELnB5CVwKKyAgICB2YWxpZFNjaGVtYXMucHkgXAorICAgIHZhbGlkUk5HLnB5IFwKKyAgICBjb21wYXJlTm9kZXMucHkgXAorICAgIHhwYXRobnMucHkgXAorICAgIHhwYXRobGVhay5weQorCitYTUxTID0gXAorICAgIHRzdC54bWwJXAorICAgIHZhbGlkLnhtbAlcCisgICAgaW52YWxpZC54bWwJXAorICAgIHRlc3QuZHRkCisKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgcHl0aG9uL3Rlc3RzL01ha2VmaWxlJzsgXAorCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKwkgICQoQVVUT01BS0UpIC0tZ251IHB5dGhvbi90ZXN0cy9NYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorCWVzYWM7CisKKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorCiskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisKK21vc3RseWNsZWFuLWxpYnRvb2w6CisJLXJtIC1mICoubG8KKworY2xlYW4tbGlidG9vbDoKKwktcm0gLXJmIC5saWJzIF9saWJzCitpbnN0YWxsLWRpc3RfZXhhbXBsZURBVEE6ICQoZGlzdF9leGFtcGxlX0RBVEEpCisJQCQoTk9STUFMX0lOU1RBTEwpCisJdGVzdCAteiAiJChleGFtcGxlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoZXhhbXBsZWRpcikiCisJQGxpc3Q9JyQoZGlzdF9leGFtcGxlX0RBVEEpJzsgdGVzdCAtbiAiJChleGFtcGxlZGlyKSIgfHwgbGlzdD07IFwKKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisJICBlY2hvICIkJGQkJHAiOyBcCisJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChleGFtcGxlZGlyKSciOyBcCisJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQoZXhhbXBsZWRpcikiIHx8IGV4aXQgJCQ/OyBcCisJZG9uZQorCit1bmluc3RhbGwtZGlzdF9leGFtcGxlREFUQToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKGRpc3RfZXhhbXBsZV9EQVRBKSc7IHRlc3QgLW4gIiQoZXhhbXBsZWRpcikiIHx8IGxpc3Q9OyBcCisJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoZXhhbXBsZWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorCWNkICIkKERFU1RESVIpJChleGFtcGxlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcwordGFnczogVEFHUworVEFHUzoKKworY3RhZ3M6IENUQUdTCitDVEFHUzoKKworCitkaXN0ZGlyOiAkKERJU1RGSUxFUykKKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisJCQkgICBzb3J0IC11YCA7OyBcCisJZXNhYzsgXAorCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKwkgICAgfHwgZXhpdCAxOyBcCisJICBmaTsgXAorCWRvbmUKK2NoZWNrLWFtOiBhbGwtYW0KK2NoZWNrOiBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKERBVEEpCitpbnN0YWxsZGlyczoKKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChleGFtcGxlZGlyKSI7IGRvIFwKKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKwlkb25lCitpbnN0YWxsOiBpbnN0YWxsLWFtCitpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQoraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisKK2luc3RhbGwtYW06IGFsbC1hbQorCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisKK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCitpbnN0YWxsLXN0cmlwOgorCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKworY2xlYW4tZ2VuZXJpYzoKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorCitkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaHRtbC1hbToKKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtZGlzdF9leGFtcGxlREFUQQorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1kaXN0X2V4YW1wbGVEQVRBCisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kaXN0X2V4YW1wbGVEQVRBIFwKKwlpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIFwKKwlpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gXAorCWluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgXAorCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKwlpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBcCisJbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gXAorCXBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLWRpc3RfZXhhbXBsZURBVEEKKworCitAV0lUSF9QWVRIT05fVFJVRUB0ZXN0czogJChQWVRFU1RTKQorQFdJVEhfUFlUSE9OX1RSVUVACUBlY2hvICIjIyBydW5uaW5nIFB5dGhvbiByZWdyZXNzaW9uIHRlc3RzIgorQFdJVEhfUFlUSE9OX1RSVUVACS1AKFBZVEhPTlBBVEg9Ii4uOi4uLy5saWJzOiQoc3JjZGlyKS8uLjokJFBZVEhPTlBBVEgiIDsgXAorQFdJVEhfUFlUSE9OX1RSVUVACSAgIGV4cG9ydCBQWVRIT05QQVRIOyBcCitAV0lUSF9QWVRIT05fVFJVRUAJICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvLmxpYnM6JCRMRF9MSUJSQVJZX1BBVEgiIDsgXAorQFdJVEhfUFlUSE9OX1RSVUVACSAgIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEg7IFwKK0BXSVRIX1BZVEhPTl9UUlVFQAkgICBmb3IgdGVzdCBpbiAkKFBZVEVTVFMpIDsgXAorQFdJVEhfUFlUSE9OX1RSVUVACSAgIGRvIGxvZz1gJChQWVRIT04pICQoc3JjZGlyKS8kJHRlc3RgIDsgXAorQFdJVEhfUFlUSE9OX1RSVUVACSAgIGlmIFsgImBlY2hvICQkbG9nIHwgZ3JlcCBPS2AiID0gIiIgXSA7IHRoZW4gXAorQFdJVEhfUFlUSE9OX1RSVUVACSAgIGVjaG8gIi0tICQkdGVzdCIgOyBlY2hvICIkJGxvZyIgOyBmaSA7IGRvbmUpCitAV0lUSF9QWVRIT05fRkFMU0VAdGVzdHM6CisKK2NsZWFuOgorCXJtIC1mICoucHljIGNvcmUKKworIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLk5PRVhQT1JUOgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvYXR0cmlicy5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2F0dHJpYnMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTMzMWEyNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2F0dHJpYnMucHkKQEAgLTAsMCArMSwzNCBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKKyMKKyMgVGVzdGluZyBYTUwgZG9jdW1lbnQgc2VyaWFsaXphdGlvbgorIworZG9jID0gbGlieG1sMi5wYXJzZURvYygKKyIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4KKzwhRE9DVFlQRSB0ZXN0IFsKKzwhRUxFTUVOVCB0ZXN0ICgjUENEQVRBKSA+Cis8IUFUVExJU1QgdGVzdCB4bWxuczphYmMgQ0RBVEEgI0ZJWEVEICJodHRwOi8vYWJjLm9yZyIgPgorPCFBVFRMSVNUIHRlc3QgYWJjOmF0dHIgQ0RBVEEgI0ZJWEVEICJkZWYiID4KK10+Cis8dGVzdCAvPgorIiIiKQorZWxlbSA9IGRvYy5nZXRSb290RWxlbWVudCgpCithdHRyID0gZWxlbS5oYXNOc1Byb3AoJ2F0dHInLCAnaHR0cDovL2FiYy5vcmcnKQoraWYgYXR0ciA9PSBOb25lIG9yIGF0dHIuc2VyaWFsaXplKClbOi0xXSAhPSAiIiI8IUFUVExJU1QgdGVzdCBhYmM6YXR0ciBDREFUQSAjRklYRUQgImRlZiI+IiIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gZmluZCBkZWZhdWx0ZWQgYXR0cmlidXRlIGFiYzphdHRyIgorICAgIHN5cy5leGl0KDEpCisKK2RvYy5mcmVlRG9jKCkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2J1aWxkLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvYnVpbGQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmZjNzc2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2J1aWxkLnB5CkBAIC0wLDAgKzEsNTkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgbGlieG1sMgoraW1wb3J0IHN5cworCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitkb2MgPSBsaWJ4bWwyLm5ld0RvYygiMS4wIikKK2NvbW1lbnQgPSBkb2MubmV3RG9jQ29tbWVudCgiVGhpcyBpcyBhIGdlbmVyYXRlZCBkb2N1bWVudCIpCitkb2MuYWRkQ2hpbGQoY29tbWVudCkKK3BpID0gbGlieG1sMi5uZXdQSSgidGVzdCIsICJQSSBjb250ZW50IikKK2RvYy5hZGRDaGlsZChwaSkKK3Jvb3QgPSBkb2MubmV3Q2hpbGQoTm9uZSwgImRvYyIsIE5vbmUpCitucyA9IHJvb3QubmV3TnMoImh0dHA6Ly9leGFtcGxlLmNvbS9kb2MiLCAibXkiKQorcm9vdC5zZXROcyhucykKK2VsZW0gPSByb290Lm5ld0NoaWxkKE5vbmUsICJmb28iLCAiYmFyIikKK2VsZW0uc2V0QmFzZSgiaHR0cDovL2V4YW1wbGUuY29tL2ltZ3MiKQorZWxlbS5zZXRQcm9wKCJpbWciLCAiaW1hZ2UuZ2lmIikKK2RvYy5zYXZlRmlsZSgidG1wLnhtbCIpCitkb2MuZnJlZURvYygpCisKK2RvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJ0bXAueG1sIikKK2NvbW1lbnQgPSBkb2MuY2hpbGRyZW4KK2lmIGNvbW1lbnQudHlwZSAhPSAiY29tbWVudCIgb3IgXAorICAgY29tbWVudC5jb250ZW50ICE9ICJUaGlzIGlzIGEgZ2VuZXJhdGVkIGRvY3VtZW50IjoKKyAgIHByaW50ICJlcnJvciByZXJlYWRpbmcgY29tbWVudCIKKyAgIHN5cy5leGl0KDEpCitwaSA9IGNvbW1lbnQubmV4dAoraWYgcGkudHlwZSAhPSAicGkiIG9yIHBpLm5hbWUgIT0gInRlc3QiIG9yIHBpLmNvbnRlbnQgIT0gIlBJIGNvbnRlbnQiOgorICAgcHJpbnQgImVycm9yIHJlcmVhZGluZyBQSSIKKyAgIHN5cy5leGl0KDEpCityb290ID0gcGkubmV4dAoraWYgcm9vdC5uYW1lICE9ICJkb2MiOgorICAgcHJpbnQgImVycm9yIHJlcmVhZGluZyByb290IgorICAgc3lzLmV4aXQoMSkKK25zID0gcm9vdC5ucygpCitpZiBucy5uYW1lICE9ICJteSIgb3IgbnMuY29udGVudCAhPSAiaHR0cDovL2V4YW1wbGUuY29tL2RvYyI6CisgICBwcmludCAiZXJyb3IgcmVyZWFkaW5nIG5hbWVzcGFjZSIKKyAgIHN5cy5leGl0KDEpCitlbGVtID0gcm9vdC5jaGlsZHJlbgoraWYgZWxlbS5uYW1lICE9ICJmb28iOgorICAgcHJpbnQgImVycm9yIHJlcmVhZGluZyBlbGVtIgorICAgc3lzLmV4aXQoMSkKK2lmIGVsZW0uZ2V0QmFzZShOb25lKSAhPSAiaHR0cDovL2V4YW1wbGUuY29tL2ltZ3MiOgorICAgcHJpbnQgImVycm9yIHJlcmVhZGluZyBiYXNlIgorICAgc3lzLmV4aXQoMSkKK2lmIGVsZW0ucHJvcCgiaW1nIikgIT0gImltYWdlLmdpZiI6CisgICBwcmludCAiZXJyb3IgcmVyZWFkaW5nIHByb3BlcnR5IgorICAgc3lzLmV4aXQoMSkKKworZG9jLmZyZWVEb2MoKQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvY29tcGFyZU5vZGVzLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvY29tcGFyZU5vZGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVjMDQzMjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9jb21wYXJlTm9kZXMucHkKQEAgLTAsMCArMSw1MCBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKKyMKKyMgVGVzdGluZyBYTUwgTm9kZSBjb21wYXJpc29uIGFuZCBOb2RlIGhhc2gtdmFsdWUKKyMKK2RvYyA9IGxpYnhtbDIucGFyc2VEb2MoIiIiPHJvb3Q+PGZvby8+PC9yb290PiIiIikKK3Jvb3QgPSBkb2MuZ2V0Um9vdEVsZW1lbnQoKQorCisjIENyZWF0ZSB0d28gZGlmZmVyZW50IG9iamVjdHMgd2hpY2ggcG9pbnQgdG8gZm9vCitmb29ub2RlMSA9IHJvb3QuY2hpbGRyZW4KK2Zvb25vZGUyID0gcm9vdC5jaGlsZHJlbgorCisjIE5vdyBjaGVjayB0aGF0IFtpbl1lcXVhbGl0eSB0ZXN0cyB3b3JrIG9rCitpZiBub3QgKCBmb29ub2RlMSA9PSBmb29ub2RlMiApOgorICAgIHByaW50ICJFcnJvciBjb21wYXJpbmcgbm9kZXMgd2l0aCA9PSwgbm9kZXMgc2hvdWxkIGJlIGVxdWFsIGJ1dCBhcmUgdW5lcXVhbCIKKyAgICBzeXMuZXhpdCgxKQoraWYgbm90ICggZm9vbm9kZTEgIT0gcm9vdCApOgorICAgIHByaW50ICJFcnJvciBjb21wYXJpbmcgbm9kZXMgd2l0aCA9PSwgbm9kZXMgc2hvdWxkIG5vdCBiZSBlcXVhbCBidXQgYXJlIGVxdWFsIgorICAgIHN5cy5leGl0KDEpCitpZiBub3QgKCBmb29ub2RlMSAhPSByb290ICk6CisgICAgcHJpbnQgIkVycm9yIGNvbXBhcmluZyBub2RlcyB3aXRoICE9LCBub2RlcyBzaG91bGQgbm90IGJlIGVxdWFsIGJ1dCBhcmUgZXF1YWwiCitpZiAoIGZvb25vZGUxICE9IGZvb25vZGUyICk6CisgICAgcHJpbnQgIkVycm9yIGNvbXBhcmluZyBub2RlcyB3aXRoICE9LCBub2RlcyBzaG91bGQgYmUgZXF1YWwgYnV0IGFyZSB1bmVxdWFsIgorCisjIE5leHQgY2hlY2sgdGhhdCB0aGUgaGFzaCBmdW5jdGlvbiBmb3IgdGhlIG9iamVjdHMgYWxzbyB3b3JrcyBvaworaWYgbm90IChoYXNoKGZvb25vZGUxKSA9PSBoYXNoKGZvb25vZGUyKSk6CisgICAgcHJpbnQgIkVycm9yIGhhc2ggdmFsdWVzIGZvciB0d28gZXF1YWwgbm9kZXMgYXJlIGRpZmZlcmVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgbm90IChoYXNoKGZvb25vZGUxKSAhPSBoYXNoKHJvb3QpKToKKyAgICBwcmludCAiRXJyb3IgaGFzaCB2YWx1ZXMgZm9yIHR3byB1bmVxdWFsIG5vZGVzIGFyZSBub3QgZGlmZmVyZW50IgorICAgIHN5cy5leGl0KDEpCitpZiBoYXNoKGZvb25vZGUxKSA9PSBoYXNoKHJvb3QpOgorICAgIHByaW50ICJFcnJvciBoYXNoIHZhbHVlcyBmb3IgdHdvIHVuZXF1YWwgbm9kZXMgYXJlIGVxdWFsIgorICAgIHN5cy5leGl0KDEpCisKKyMgQmFzaWMgdGVzdHMgc3VjY2Vzc2Z1bAorZG9jLmZyZWVEb2MoKQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvY3R4dGVycm9yLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvY3R4dGVycm9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyYTg5N2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9jdHh0ZXJyb3IucHkKQEAgLTAsMCArMSw1NiBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKKyMgVGhpcyB0ZXN0IGV4ZXJjaXNlIHRoZSByZWRpcmVjdGlvbiBvZiBlcnJvciBtZXNzYWdlcyB3aXRoIGEKKyMgZnVuY3Rpb25zIGRlZmluZWQgaW4gUHl0aG9uLgorIworaW1wb3J0IHN5cworaW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworZXhwZWN0PSIiIi0tPiAoMykgeG1sbnM6IFVSSSBmb28gaXMgbm90IGFic29sdXRlCistLT4gKDQpIE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHggbGluZSAwIGFuZCB5CisiIiIKKworZXJyPSIiCitkZWYgY2FsbGJhY2soYXJnLG1zZyxzZXZlcml0eSxyZXNlcnZlZCk6CisgICAgZ2xvYmFsIGVycgorICAgIGVyciA9IGVyciArICIlcyAoJWQpICVzIiAlIChhcmcsc2V2ZXJpdHksbXNnKQorCitzID0gIiIiPHggeG1sbnM9ImZvbyI+PC95PiIiIgorCitwYXJzZXJDdHh0ID0gbGlieG1sMi5jcmVhdGVQdXNoUGFyc2VyKE5vbmUsIiIsMCwidGVzdC54bWwiKQorcGFyc2VyQ3R4dC5zZXRFcnJvckhhbmRsZXIoY2FsbGJhY2ssICItLT4iKQoraWYgcGFyc2VyQ3R4dC5nZXRFcnJvckhhbmRsZXIoKSAhPSAoY2FsbGJhY2ssIi0tPiIpOgorICAgIHByaW50ICJnZXRFcnJvckhhbmRsZXIgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCitwYXJzZXJDdHh0LnBhcnNlQ2h1bmsocyxsZW4ocyksMSkKK2RvYyA9IHBhcnNlckN0eHQuZG9jKCkKK2RvYy5mcmVlRG9jKCkKK3BhcnNlckN0eHQgPSBOb25lCisKK2lmIGVyciAhPSBleHBlY3Q6CisgICAgcHJpbnQgImVycm9yIgorICAgIHByaW50ICJyZWNlaXZlZCAlcyIgJShlcnIpCisgICAgcHJpbnQgImV4cGVjdGVkICVzIiAlKGV4cGVjdCkKKyAgICBzeXMuZXhpdCgxKQorCitpID0gMTAwMDAKK3doaWxlIGkgPiAwOgorICAgIHBhcnNlckN0eHQgPSBsaWJ4bWwyLmNyZWF0ZVB1c2hQYXJzZXIoTm9uZSwiIiwwLCJ0ZXN0LnhtbCIpCisgICAgcGFyc2VyQ3R4dC5zZXRFcnJvckhhbmRsZXIoY2FsbGJhY2ssICItLT4iKQorICAgIHBhcnNlckN0eHQucGFyc2VDaHVuayhzLGxlbihzKSwxKQorICAgIGRvYyA9IHBhcnNlckN0eHQuZG9jKCkKKyAgICBkb2MuZnJlZURvYygpCisgICAgcGFyc2VyQ3R4dCA9IE5vbmUKKyAgICBlcnIgPSAiIgorICAgIGkgPSBpIC0gMQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvY3V0bnBhc3RlLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvY3V0bnBhc3RlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmOTY2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9jdXRucGFzdGUucHkKQEAgLTAsMCArMSw0OCBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKKyMKKyMgVGVzdGluZyBYTUwgZG9jdW1lbnQgc2VyaWFsaXphdGlvbgorIworc291cmNlID0gbGlieG1sMi5wYXJzZURvYygiIiI8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxyb290IHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIKKyAgICAgIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciI+Cis8aW5jbHVkZSB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnL2luY2x1ZGUiPgorPGZyYWdtZW50Pjxmb286ZWxlbSBiYXI9InRyaWNreSIvPjwvZnJhZ21lbnQ+Cis8L2luY2x1ZGU+Cis8L3Jvb3Q+CisiIiIpCisKK3RhcmdldCA9IGxpYnhtbDIucGFyc2VEb2MoIiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cm9vdCB4bWxuczpmb29iYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiLz4iIiIpCisKK2ZyYWdtZW50ID0gc291cmNlLnhwYXRoRXZhbCgiLy8qW25hbWUoKT0nZnJhZ21lbnQnXSIpWzBdCitkZXN0ID0gdGFyZ2V0LmdldFJvb3RFbGVtZW50KCkKKworIyBkbyBhIGN1dCBhbmQgcGFzdGUgb3BlcmF0aW9uCitmcmFnbWVudC51bmxpbmtOb2RlKCkKK2Rlc3QuYWRkQ2hpbGQoZnJhZ21lbnQpCisjIGRvIHRoZSBuYW1lc3BhY2UgZml4dXAKK2Rlc3QucmVjb25jaWxpYXRlTnModGFyZ2V0KQorCisjIFRoZSBzb3VyY2UgdHJlZSBjYW4gYmUgZnJlZWQgYXQgdGhhdCBwb2ludAorc291cmNlLmZyZWVEb2MoKQorCisjIGNoZWNrIHRoZSByZXN1bHRpbmcgdHJlZQorc3RyID0gZGVzdC5zZXJpYWxpemUoKQoraWYgc3RyICE9ICIiIjxyb290IHhtbG5zOmZvb2Jhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6ZGVmYXVsdD0iaHR0cDovL2V4YW1wbGUub3JnL2luY2x1ZGUiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyI+PGRlZmF1bHQ6ZnJhZ21lbnQ+PGZvbzplbGVtIGJhcj0idHJpY2t5Ii8+PC9kZWZhdWx0OmZyYWdtZW50Pjwvcm9vdD4iIiI6CisgICAgcHJpbnQgInJlY29uY2lsaWF0ZU5zKCkgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCit0YXJnZXQuZnJlZURvYygpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9kdGR2YWxpZC5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2R0ZHZhbGlkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwMTFmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9kdGR2YWxpZC5weQpAQCAtMCwwICsxLDMyIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQoraW1wb3J0IGxpYnhtbDIKK2ltcG9ydCBzeXMKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworZHRkPSIiIjwhRUxFTUVOVCBmb28gRU1QVFk+IiIiCitpbnN0YW5jZT0iIiI8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28+PC9mb28+IiIiCisKK2R0ZCA9IGxpYnhtbDIucGFyc2VEVEQoTm9uZSwgJ3Rlc3QuZHRkJykKK2N0eHQgPSBsaWJ4bWwyLm5ld1ZhbGlkQ3R4dCgpCitkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorcmV0ID0gZG9jLnZhbGlkYXRlRHRkKGN0eHQsIGR0ZCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJlcnJvciBkb2luZyBEVEQgdmFsaWRhdGlvbiIKKyAgICBzeXMuZXhpdCgxKQorCitkb2MuZnJlZURvYygpCitkdGQuZnJlZUR0ZCgpCitkZWwgZHRkCitkZWwgY3R4dAorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9lcnJvci5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2Vycm9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhNmQwYzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9lcnJvci5weQpAQCAtMCwwICsxLDUxIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyBUaGlzIHRlc3QgZXhlcmNpc2UgdGhlIHJlZGlyZWN0aW9uIG9mIGVycm9yIG1lc3NhZ2VzIHdpdGggYQorIyBmdW5jdGlvbnMgZGVmaW5lZCBpbiBQeXRob24uCisjCitpbXBvcnQgc3lzCitpbXBvcnQgbGlieG1sMgorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitleHBlY3Q9Jy0tPiBJL08gLS0+IHdhcm5pbmcgOiAtLT4gZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJtaXNzaW5nLnhtbCJcbicKK2Vycj0iIgorZGVmIGNhbGxiYWNrKGN0eCwgc3RyKToKKyAgICAgZ2xvYmFsIGVycgorCisgICAgIGVyciA9IGVyciArICIlcyAlcyIgJSAoY3R4LCBzdHIpCisKK2dvdF9leGMgPSAwCitsaWJ4bWwyLnJlZ2lzdGVyRXJyb3JIYW5kbGVyKGNhbGxiYWNrLCAiLS0+IikKK3RyeToKKyAgICBkb2MgPSBsaWJ4bWwyLnBhcnNlRmlsZSgibWlzc2luZy54bWwiKQorZXhjZXB0IGxpYnhtbDIucGFyc2VyRXJyb3I6CisgICAgZ290X2V4YyA9IDEKKworaWYgZ290X2V4YyA9PSAwOgorICAgIHByaW50ICJGYWlsZWQgdG8gZ2V0IGEgcGFyc2VyIGV4Y2VwdGlvbiIKKyAgICBzeXMuZXhpdCgxKQorCitpZiBlcnIgIT0gZXhwZWN0OgorICAgIHByaW50ICJlcnJvciIKKyAgICBwcmludCAicmVjZWl2ZWQgJXMiICUoZXJyKQorICAgIHByaW50ICJleHBlY3RlZCAlcyIgJShleHBlY3QpCisgICAgc3lzLmV4aXQoMSkKKworaSA9IDEwMDAwCit3aGlsZSBpID4gMDoKKyAgICB0cnk6CisgICAgICAgIGRvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJtaXNzaW5nLnhtbCIpCisgICAgZXhjZXB0IGxpYnhtbDIucGFyc2VyRXJyb3I6CisgICAgICAgIGdvdF9leGMgPSAxCisgICAgZXJyID0gIiIKKyAgICBpID0gaSAtIDEKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2luYnVmLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvaW5idWYucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTdjYzdhNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL2luYnVmLnB5CkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgc3lzCitpbXBvcnQgbGlieG1sMgoraW1wb3J0IFN0cmluZ0lPCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2kgPSAwCit3aGlsZSBpIDwgNTAwMDoKKyAgICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oImZvb2JhciIpCisgICAgYnVmID0gbGlieG1sMi5pbnB1dEJ1ZmZlcihmKQorICAgIGkgPSBpICsgMQorCitkZWwgZgorZGVsIGJ1ZgorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9pbmRleGVzLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvaW5kZXhlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZDdhN2ZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvaW5kZXhlcy5weQpAQCAtMCwwICsxLDExMyBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMgLSotIGNvZGluZzogSVNPLTg4NTktMSAtKi0KK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2N0eHQgPSBOb25lCisKK2NsYXNzIGNhbGxiYWNrOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGFydGQsIHN0YXJ0ZSwgZW5kZSwgZGVsdGEsIGVuZGQpOgorICAgICAgICBzZWxmLnN0YXJ0ZCA9IHN0YXJ0ZAorICAgICAgICBzZWxmLnN0YXJ0ZSA9IHN0YXJ0ZQorICAgICAgICBzZWxmLmVuZGUgPSBlbmRlCisgICAgICAgIHNlbGYuZW5kZCA9IGVuZGQKKyAgICAgICAgc2VsZi5kZWx0YSA9IGRlbHRhCisgICAgICAgIHNlbGYuY291bnQgPSAwCisKKyAgICBkZWYgc3RhcnREb2N1bWVudChzZWxmKToKKyAgICAgICAgZ2xvYmFsIGN0eHQKKyAgICAgICAgaWYgY3R4dC5ieXRlQ29uc3VtZWQoKSAhPSBzZWxmLnN0YXJ0ZDoKKyAgICAgICAgICAgIHByaW50ICJkb2N1bWVudCBzdGFydCBhdCB3cm9uZyBpbmRleDogJWQgZXhwZWN0aW5nICVkXG4iICUgKAorICAgICAgICAgICAgICAgICAgY3R4dC5ieXRlQ29uc3VtZWQoKSwgc2VsZi5zdGFydGQpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgZGVmIGVuZERvY3VtZW50KHNlbGYpOgorICAgICAgICBnbG9iYWwgY3R4dAorICAgICAgICBleHBlY3QgPSBzZWxmLmVuZGUgKyBzZWxmLmRlbHRhICogKHNlbGYuY291bnQgLSAxKSArIHNlbGYuZW5kZAorICAgICAgICBpZiBjdHh0LmJ5dGVDb25zdW1lZCgpICE9IGV4cGVjdDoKKyAgICAgICAgICAgIHByaW50ICJkb2N1bWVudCBlbmQgYXQgd3JvbmcgaW5kZXg6ICVkIGV4cGVjdGluZyAlZFxuIiAlICgKKyAgICAgICAgICAgICAgICAgIGN0eHQuYnl0ZUNvbnN1bWVkKCksIGV4cGVjdCkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIHRhZywgYXR0cnMpOgorICAgICAgICBnbG9iYWwgY3R4dAorICAgICAgICBpZiB0YWcgPT0gImJhcjEiOgorICAgICAgICAgICAgZXhwZWN0ID0gc2VsZi5zdGFydGUgKyBzZWxmLmRlbHRhICogc2VsZi5jb3VudAorICAgICAgICAgICAgaWYgY3R4dC5ieXRlQ29uc3VtZWQoKSAhPSBleHBlY3Q6CisgICAgICAgICAgICAgICAgcHJpbnQgImVsZW1lbnQgc3RhcnQgYXQgd3JvbmcgaW5kZXg6ICVkIGV4cGVjdGluZyAlZFxuIiAlICgKKyAgICAgICAgICAgICAgICAgICBjdHh0LmJ5dGVDb25zdW1lZCgpLCBleHBlY3QpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgICAgIAorCisgICAgZGVmIGVuZEVsZW1lbnQoc2VsZiwgdGFnKToKKyAgICAgICAgZ2xvYmFsIGN0eHQKKyAgICAgICAgaWYgdGFnID09ICJiYXIxIjoKKyAgICAgICAgICAgIGV4cGVjdCA9IHNlbGYuZW5kZSArIHNlbGYuZGVsdGEgKiBzZWxmLmNvdW50CisgICAgICAgICAgICBpZiBjdHh0LmJ5dGVDb25zdW1lZCgpICE9IGV4cGVjdDoKKyAgICAgICAgICAgICAgICBwcmludCAiZWxlbWVudCBlbmQgYXQgd3JvbmcgaW5kZXg6ICVkIGV4cGVjdGluZyAlZFxuIiAlICgKKyAgICAgICAgICAgICAgICAgICAgICBjdHh0LmJ5dGVDb25zdW1lZCgpLCBleHBlY3QpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgICAgIHNlbGYuY291bnQgPSBzZWxmLmNvdW50ICsgMQorCisgICAgZGVmIGNoYXJhY3RlcnMoc2VsZiwgZGF0YSk6CisgICAgICAgIHBhc3MKKworIworIyBGaXJzdCBydW4gYSBwdXJlIFVURi04IHRlc3QKKyMKK2hhbmRsZXIgPSBjYWxsYmFjaygwLCAxMywgMjcsIDE5OCwgMTgzKQorY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihoYW5kbGVyLCAiPGZvbz5cbiIsIDYsICJ0ZXN0LnhtbCIpCitjaHVuayA9ICIiIiAgPGJhcjE+Y2hhcnMxPC9iYXIxPgorICA8YmFyMj5jaGFyczI8L2JhcjI+CisgIDxiYXIzPmNoYXJzMzwvYmFyMz4KKyAgPGJhcjQ+Y2hhcnM0PC9iYXI0PgorICA8YmFyNT5jaGFyczU8L2JhcjU+CisgIDxiYXI2PiZsdDtzNjwvYmFyNj4KKyAgPGJhcjc+Y2hhcnM3PC9iYXI3PgorICA8YmFyOD4mIzM4Ozg8L2Jhcjg+CisgIDxiYXI5PmNoYXJzOTwvYmFyOT4KKyIiIgoraSA9IDAKK3doaWxlIGkgPCAxMDAwMDoKKyAgICBjdHh0LnBhcnNlQ2h1bmsoY2h1bmssIGxlbihjaHVuayksIDApCisgICAgaSA9IGkgKyAxCitjaHVuayA9ICI8L2Zvbz4iCitjdHh0LnBhcnNlQ2h1bmsoY2h1bmssIGxlbihjaHVuayksIDEpCitjdHh0PU5vbmUKKworIworIyBUaGVuIHJ1biBhIHRlc3QgcmVseWluZyBvbiBJU08tTGF0aW4tMQorIworaGFuZGxlciA9IGNhbGxiYWNrKDQzLCA1NywgNzEsIDE5OCwgMTgzKQorY2h1bms9IiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGZvbz4KKyIiIgorY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihoYW5kbGVyLCBjaHVuaywgbGVuKGNodW5rKSwgInRlc3QueG1sIikKK2NodW5rID0gIiIiICA8YmFyMT5jaGFyczE8L2JhcjE+CisgIDxiYXIyPmNoYXJzMjwvYmFyMj4KKyAgPGJhcjM+Y2hhcnMzPC9iYXIzPgorICA8YmFyND5jaOByczQ8L2JhcjQ+CisgIDxiYXI1PmNoYXJzNTwvYmFyNT4KKyAgPGJhcjY+Jmx0O3M2PC9iYXI2PgorICA8YmFyNz5jaGFyczc8L2Jhcjc+CisgIDxiYXI4PiYjMzg7ODwvYmFyOD4KKyAgPGJhcjk+dHLocyA5PC9iYXI5PgorIiIiCitpID0gMAord2hpbGUgaSA8IDEwMDAwOgorICAgIGN0eHQucGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMCkKKyAgICBpID0gaSArIDEKK2NodW5rID0gIjwvZm9vPiIKK2N0eHQucGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMSkKK2N0eHQ9Tm9uZQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvaW52YWxpZC54bWwgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9pbnZhbGlkLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzliMjdlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvaW52YWxpZC54bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEsIGIsIGEpPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiBFTVBUWT4KK10+Cis8ZG9jPjxiLz48YS8+PGIvPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvbnNkZWwucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9uc2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDZkZWQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvbnNkZWwucHkKQEAgLTAsMCArMSw2MiBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKKyMgdGhpcyB0ZXN0IGV4ZXJjaXNlIHRoZSBYUGF0aCBiYXNpYyBlbmdpbmUsIHBhcnNlciwgZXRjLCBhbmQKKyMgYWxsb3dzIHRvIGRldGVjdCBtZW1vcnkgbGVha3MKKyMKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKK2luc3RhbmNlPSIiIjw/eG1sIHZlcnNpb249IjEuMCI/PgorPHRhZyB4bWxuczpmb289J3Vybjpmb28nIHhtbG5zOmJhcj0ndXJuOmJhcicgeG1sbnM6YmF6PSd1cm46YmF6JyAvPiIiIgorCitkZWYgbmFtZXNwYWNlRGVmcyhub2RlKToKKyAgICBuID0gbm9kZS5uc0RlZnMoKQorICAgIHdoaWxlIG46CisgICAgICAgIHlpZWxkIG4KKyAgICAgICAgbiA9IG4ubmV4dAorCitkZWYgY2hlY2tOYW1lc3BhY2VEZWZzKG5vZGUsIGNvdW50KToKKyAgICBuc0xpc3QgPSBsaXN0KG5hbWVzcGFjZURlZnMobm9kZSkpCisgICAgI3ByaW50IG5zTGlzdAorICAgIGlmIGxlbihuc0xpc3QpICE9IGNvdW50IDoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uLCAiRXJyb3I6IHNhdyAlZCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zLiAgRXhwZWN0ZWQgJWQiICUgKGxlbihuc0xpc3QpLCBjb3VudCkKKyAgICAKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKKyMgUmVtb3ZlIHNpbmdsZSBuYW1lc3BhY2UKK2RvYyA9IGxpYnhtbDIucGFyc2VEb2MoaW5zdGFuY2UpCitub2RlID0gZG9jLmdldFJvb3RFbGVtZW50KCkKK2NoZWNrTmFtZXNwYWNlRGVmcyhub2RlLCAzKQorbnMgPSBub2RlLnJlbW92ZU5zRGVmKCd1cm46YmFyJykKK2NoZWNrTmFtZXNwYWNlRGVmcyhub2RlLCAyKQorbnMuZnJlZU5zTGlzdCgpCitkb2MuZnJlZURvYygpCisKKyMgUmVtb3ZlIGFsbCBuYW1lc3BhY2VzCitkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorbm9kZSA9IGRvYy5nZXRSb290RWxlbWVudCgpCitjaGVja05hbWVzcGFjZURlZnMobm9kZSwgMykKK25zID0gbm9kZS5yZW1vdmVOc0RlZihOb25lKQorY2hlY2tOYW1lc3BhY2VEZWZzKG5vZGUsIDApCitucy5mcmVlTnNMaXN0KCkKK2RvYy5mcmVlRG9jKCkKKworIyBSZW1vdmUgYSBuYW1lc3BhY2UgcmVmZXJlZCB0byBieSBhIGNoaWxkCitkb2MgPSBsaWJ4bWwyLm5ld0RvYygiMS4wIikKK3Jvb3QgPSBkb2MubmV3Q2hpbGQoTm9uZSwgInJvb3QiLCBOb25lKQorbmFtZXNwYWNlID0gcm9vdC5uZXdOcygiaHR0cDovL2V4YW1wbGUuY29tL3NhbXBsZSIsICJzIikKK2NoaWxkID0gcm9vdC5uZXdDaGlsZChuYW1lc3BhY2UsICJjaGlsZCIsIE5vbmUpCityb290LnJlbW92ZU5zRGVmKCJodHRwOi8vZXhhbXBsZS5jb20vc2FtcGxlIikKK2RvYy5yZWNvbmNpbGlhdGVOcyhyb290KQorbmFtZXNwYWNlLmZyZWVOc0xpc3QoKQorZG9jLnNlcmlhbGl6ZSgpICMgVGhpcyBzaG91bGQgbm90IHNlZ2ZhdWx0Citkb2MuZnJlZURvYygpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9vdXRidWYucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9vdXRidWYucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDljZDliNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL291dGJ1Zi5weQpAQCAtMCwwICsxLDEwNSBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCitpbXBvcnQgU3RyaW5nSU8KKworZGVmIHRlc3RTaW1wbGVCdWZmZXJXcml0ZXMoKToKKyAgICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgIGJ1ZiA9IGxpYnhtbDIuY3JlYXRlT3V0cHV0QnVmZmVyKGYsICJJU08tODg1OS0xIikKKyAgICBidWYud3JpdGUoMywgImZvbyIpCisgICAgYnVmLndyaXRlU3RyaW5nKCJiYXIiKQorICAgIGJ1Zi5jbG9zZSgpCisgICAgCisgICAgaWYgZi5nZXR2YWx1ZSgpICE9ICJmb29iYXIiOgorICAgICAgICBwcmludCAiRmFpbGVkIHRvIHNhdmUgdG8gU3RyaW5nSU8iCisgICAgICAgIHN5cy5leGl0KDEpCisKK2RlZiB0ZXN0U2F2ZURvY1RvQnVmZmVyKCk6CisgICAgIiIiCisgICAgUmVncmVzc2lvbiB0ZXN0IGZvciBidWcgIzE1NDI5NC4KKyAgICAiIiIKKyAgICBpbnB1dCA9ICc8Zm9vPkhlbGxvPC9mb28+JworICAgIGV4cGVjdGVkID0gJycnXAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxmb28+SGVsbG88L2Zvbz4KKycnJworICAgIGYgPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgYnVmID0gbGlieG1sMi5jcmVhdGVPdXRwdXRCdWZmZXIoZiwgJ1VURi04JykKKyAgICBkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGlucHV0KQorICAgIGRvYy5zYXZlRmlsZVRvKGJ1ZiwgJ1VURi04JykKKyAgICBkb2MuZnJlZURvYygpCisgICAgaWYgZi5nZXR2YWx1ZSgpICE9IGV4cGVjdGVkOgorICAgICAgICBwcmludCAneG1sRG9jLnNhdmVGaWxlVG8oKSBjYWxsIGZhaWxlZC4nCisgICAgICAgIHByaW50ICcgICAgIGdvdDogJXMnICUgcmVwcihmLmdldHZhbHVlKCkpCisgICAgICAgIHByaW50ICdleHBlY3RlZDogJXMnICUgcmVwcihleHBlY3RlZCkKKyAgICAgICAgc3lzLmV4aXQoMSkKKworZGVmIHRlc3RTYXZlRm9ybWF0dGVkRG9jVG9CdWZmZXIoKToKKyAgICBpbnB1dCA9ICc8b3V0ZXI+PGlubmVyPlNvbWUgdGV4dDwvaW5uZXI+PGlubmVyLz48L291dGVyPicKKyAgICAjIFRoZSBmb3JtYXR0ZWQgYW5kIG5vbi1mb3JtYXR0ZWQgdmVyc2lvbnMgb2YgdGhlIG91dHB1dC4KKyAgICBleHBlY3RlZCA9ICgnJydcCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPG91dGVyPjxpbm5lcj5Tb21lIHRleHQ8L2lubmVyPjxpbm5lci8+PC9vdXRlcj4KKycnJywgJycnXAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxvdXRlcj4KKyAgPGlubmVyPlNvbWUgdGV4dDwvaW5uZXI+CisgIDxpbm5lci8+Cis8L291dGVyPgorJycnKQorICAgIGRvYyA9IGxpYnhtbDIucGFyc2VEb2MoaW5wdXQpCisgICAgZm9yIGkgaW4gKDAsIDEpOgorICAgICAgICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICBidWYgPSBsaWJ4bWwyLmNyZWF0ZU91dHB1dEJ1ZmZlcihmLCAnVVRGLTgnKQorICAgICAgICBkb2Muc2F2ZUZvcm1hdEZpbGVUbyhidWYsICdVVEYtOCcsIGkpCisgICAgICAgIGlmIGYuZ2V0dmFsdWUoKSAhPSBleHBlY3RlZFtpXToKKyAgICAgICAgICAgIHByaW50ICd4bWxEb2Muc2F2ZUZvcm1hdEZpbGVUbygpIGNhbGwgZmFpbGVkLicKKyAgICAgICAgICAgIHByaW50ICcgICAgIGdvdDogJXMnICUgcmVwcihmLmdldHZhbHVlKCkpCisgICAgICAgICAgICBwcmludCAnZXhwZWN0ZWQ6ICVzJyAlIHJlcHIoZXhwZWN0ZWRbaV0pCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorICAgIGRvYy5mcmVlRG9jKCkKKworZGVmIHRlc3RTYXZlSW50b091dHB1dEJ1ZmZlcigpOgorICAgICIiIgorICAgIFNpbWlsYXIgdG8gdGhlIHByZXZpb3VzIHR3byB0ZXN0cywgZXhjZXB0IHRoaXMgdGltZSB3ZSBpbnZva2UgdGhlIHNhdmUKKyAgICBtZXRob2RzIG9uIHRoZSBvdXRwdXQgYnVmZmVyIG9iamVjdCBhbmQgcGFzcyBpbiBhbiBYTUwgbm9kZSBvYmplY3QuCisgICAgIiIiCisgICAgaW5wdXQgPSAnPGZvbz5IZWxsbzwvZm9vPicKKyAgICBleHBlY3RlZCA9ICcnJ1wKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Zm9vPkhlbGxvPC9mb28+CisnJycKKyAgICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgIGRvYyA9IGxpYnhtbDIucGFyc2VEb2MoaW5wdXQpCisgICAgYnVmID0gbGlieG1sMi5jcmVhdGVPdXRwdXRCdWZmZXIoZiwgJ1VURi04JykKKyAgICBidWYuc2F2ZUZpbGVUbyhkb2MsICdVVEYtOCcpCisgICAgaWYgZi5nZXR2YWx1ZSgpICE9IGV4cGVjdGVkOgorICAgICAgICBwcmludCAnb3V0cHV0QnVmZmVyLnNhdmVGaWxlVG8oKSBjYWxsIGZhaWxlZC4nCisgICAgICAgIHByaW50ICcgICAgIGdvdDogJXMnICUgcmVwcihmLmdldHZhbHVlKCkpCisgICAgICAgIHByaW50ICdleHBlY3RlZDogJXMnICUgcmVwcihleHBlY3RlZCkKKyAgICAgICAgc3lzLmV4aXQoMSkKKyAgICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgIGJ1ZiA9IGxpYnhtbDIuY3JlYXRlT3V0cHV0QnVmZmVyKGYsICdVVEYtOCcpCisgICAgYnVmLnNhdmVGb3JtYXRGaWxlVG8oZG9jLCAnVVRGLTgnLCAxKQorICAgIGlmIGYuZ2V0dmFsdWUoKSAhPSBleHBlY3RlZDoKKyAgICAgICAgcHJpbnQgJ291dHB1dEJ1ZmZlci5zYXZlRm9ybWF0RmlsZVRvKCkgY2FsbCBmYWlsZWQuJworICAgICAgICBwcmludCAnICAgICBnb3Q6ICVzJyAlIHJlcHIoZi5nZXR2YWx1ZSgpKQorICAgICAgICBwcmludCAnZXhwZWN0ZWQ6ICVzJyAlIHJlcHIoZXhwZWN0ZWQpCisgICAgICAgIHN5cy5leGl0KDEpCisgICAgZG9jLmZyZWVEb2MoKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCisgICAgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCisgICAgdGVzdFNpbXBsZUJ1ZmZlcldyaXRlcygpCisgICAgdGVzdFNhdmVEb2NUb0J1ZmZlcigpCisgICAgdGVzdFNhdmVGb3JtYXR0ZWREb2NUb0J1ZmZlcigpCisgICAgdGVzdFNhdmVJbnRvT3V0cHV0QnVmZmVyKCkKKworICAgIGxpYnhtbDIuY2xlYW51cFBhcnNlcigpCisgICAgaWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgICAgICBwcmludCAiT0siCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgICAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcHVzaC5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3B1c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWI2MGExNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3B1c2gucHkKQEAgLTAsMCArMSwzNSBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZVB1c2hQYXJzZXIoTm9uZSwgIjxmb28iLCA0LCAidGVzdC54bWwiKQorY3R4dC5wYXJzZUNodW5rKCIvPiIsIDIsIDEpCitkb2MgPSBjdHh0LmRvYygpCitjdHh0PU5vbmUKK2lmIGRvYy5uYW1lICE9ICJ0ZXN0LnhtbCI6CisgICAgcHJpbnQgImRvY3VtZW50IG5hbWUgZXJyb3IiCisgICAgc3lzLmV4aXQoMSkKK3Jvb3QgPSBkb2MuY2hpbGRyZW4KK2lmIHJvb3QubmFtZSAhPSAiZm9vIjoKKyAgICBwcmludCAicm9vdCBlbGVtZW50IG5hbWUgZXJyb3IiCisgICAgc3lzLmV4aXQoMSkKK2RvYy5mcmVlRG9jKCkKK2kgPSAxMDAwMAord2hpbGUgaSA+IDA6CisgICAgY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihOb25lLCAiPGZvbyIsIDQsICJ0ZXN0LnhtbCIpCisgICAgY3R4dC5wYXJzZUNodW5rKCIvPiIsIDIsIDEpCisgICAgZG9jID0gY3R4dC5kb2MoKQorICAgIGRvYy5mcmVlRG9jKCkKKyAgICBpID0gaSAtMQorY3R4dD1Ob25lCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9wdXNoU0FYLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcHVzaFNBWC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYzFlNzg2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcHVzaFNBWC5weQpAQCAtMCwwICsxLDY0IEBACisjIS91c3IvYmluL3B5dGhvbiAtdQoraW1wb3J0IHN5cworaW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworbG9nID0gIiIKKworY2xhc3MgY2FsbGJhY2s6CisgICAgZGVmIHN0YXJ0RG9jdW1lbnQoc2VsZik6CisgICAgICAgIGdsb2JhbCBsb2cKKyAgICAgICAgbG9nID0gbG9nICsgInN0YXJ0RG9jdW1lbnQ6IgorCisgICAgZGVmIGVuZERvY3VtZW50KHNlbGYpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJlbmREb2N1bWVudDoiCisKKyAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIHRhZywgYXR0cnMpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJzdGFydEVsZW1lbnQgJXMgJXM6IiAlICh0YWcsIGF0dHJzKQorCisgICAgZGVmIGVuZEVsZW1lbnQoc2VsZiwgdGFnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZW5kRWxlbWVudCAlczoiICUgKHRhZykKKworICAgIGRlZiBjaGFyYWN0ZXJzKHNlbGYsIGRhdGEpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJjaGFyYWN0ZXJzOiAlczoiICUgKGRhdGEpCisKKyAgICBkZWYgd2FybmluZyhzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJ3YXJuaW5nOiAlczoiICUgKG1zZykKKworICAgIGRlZiBlcnJvcihzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJlcnJvcjogJXM6IiAlIChtc2cpCisKKyAgICBkZWYgZmF0YWxFcnJvcihzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJmYXRhbEVycm9yOiAlczoiICUgKG1zZykKKworaGFuZGxlciA9IGNhbGxiYWNrKCkKKworY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihoYW5kbGVyLCAiPGZvbyIsIDQsICJ0ZXN0LnhtbCIpCitjaHVuayA9ICIgdXJsPSd0c3QnPmIiCitjdHh0LnBhcnNlQ2h1bmsoY2h1bmssIGxlbihjaHVuayksIDApCitjaHVuayA9ICJhcjwvZm9vPiIKK2N0eHQucGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMSkKK2N0eHQ9Tm9uZQorCityZWZlcmVuY2UgPSAic3RhcnREb2N1bWVudDpzdGFydEVsZW1lbnQgZm9vIHsndXJsJzogJ3RzdCd9OmNoYXJhY3RlcnM6IGJhcjplbmRFbGVtZW50IGZvbzplbmREb2N1bWVudDoiCitpZiBsb2cgIT0gcmVmZXJlbmNlOgorICAgIHByaW50ICJFcnJvciBnb3Q6ICVzIiAlIGxvZworICAgIHByaW50ICJFeHByZWN0ZWQ6ICVzIiAlIHJlZmVyZW5jZQorICAgIHN5cy5leGl0KDEpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9wdXNoU0FYaHRtbC5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3B1c2hTQVhodG1sLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU2ZTg5ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9wdXNoU0FYaHRtbC5weQpAQCAtMCwwICsxLDY1IEBACisjIS91c3IvYmluL3B5dGhvbiAtdQoraW1wb3J0IHN5cworaW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworbG9nID0gIiIKKworY2xhc3MgY2FsbGJhY2s6CisgICAgZGVmIHN0YXJ0RG9jdW1lbnQoc2VsZik6CisgICAgICAgIGdsb2JhbCBsb2cKKyAgICAgICAgbG9nID0gbG9nICsgInN0YXJ0RG9jdW1lbnQ6IgorCisgICAgZGVmIGVuZERvY3VtZW50KHNlbGYpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJlbmREb2N1bWVudDoiCisKKyAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIHRhZywgYXR0cnMpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJzdGFydEVsZW1lbnQgJXMgJXM6IiAlICh0YWcsIGF0dHJzKQorCisgICAgZGVmIGVuZEVsZW1lbnQoc2VsZiwgdGFnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZW5kRWxlbWVudCAlczoiICUgKHRhZykKKworICAgIGRlZiBjaGFyYWN0ZXJzKHNlbGYsIGRhdGEpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJjaGFyYWN0ZXJzOiAlczoiICUgKGRhdGEpCisKKyAgICBkZWYgd2FybmluZyhzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJ3YXJuaW5nOiAlczoiICUgKG1zZykKKworICAgIGRlZiBlcnJvcihzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJlcnJvcjogJXM6IiAlIChtc2cpCisKKyAgICBkZWYgZmF0YWxFcnJvcihzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJmYXRhbEVycm9yOiAlczoiICUgKG1zZykKKworaGFuZGxlciA9IGNhbGxiYWNrKCkKKworY3R4dCA9IGxpYnhtbDIuaHRtbENyZWF0ZVB1c2hQYXJzZXIoaGFuZGxlciwgIjxmb28iLCA0LCAidGVzdC54bWwiKQorY2h1bmsgPSAiIHVybD0ndHN0Jz5iIgorY3R4dC5odG1sUGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMCkKK2NodW5rID0gImFyPC9mb28+IgorY3R4dC5odG1sUGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMSkKK2N0eHQ9Tm9uZQorCityZWZlcmVuY2UgPSAiIiJzdGFydERvY3VtZW50OnN0YXJ0RWxlbWVudCBodG1sIE5vbmU6c3RhcnRFbGVtZW50IGJvZHkgTm9uZTpzdGFydEVsZW1lbnQgZm9vIHsndXJsJzogJ3RzdCd9OmVycm9yOiBUYWcgZm9vIGludmFsaWQKKzpjaGFyYWN0ZXJzOiBiYXI6ZW5kRWxlbWVudCBmb286ZW5kRWxlbWVudCBib2R5OmVuZEVsZW1lbnQgaHRtbDplbmREb2N1bWVudDoiIiIKK2lmIGxvZyAhPSByZWZlcmVuY2U6CisgICAgcHJpbnQgIkVycm9yIGdvdDogJXMiICUgbG9nCisgICAgcHJpbnQgIkV4cHJlY3RlZDogJXMiICUgcmVmZXJlbmNlCisgICAgc3lzLmV4aXQoMSkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlci5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YzM3NzYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyLnB5CkBAIC0wLDAgKzEsNDQxIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIyAtKi0gY29kaW5nOiBJU08tODg1OS0xIC0qLQorIworIyB0aGlzIHRlc3RzIHRoZSBiYXNpYyBBUElzIG9mIHRoZSBYbWxUZXh0UmVhZGVyIGludGVyZmFjZQorIworaW1wb3J0IGxpYnhtbDIKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHN5cworCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitmID0gU3RyaW5nSU8uU3RyaW5nSU8oIiIiPGE+PGIgYjE9ImIxIi8+PGM+Y29udGVudCBvZiBjPC9jPjwvYT4iIiIpCitpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoZikKK3JlYWRlciA9IGlucHV0Lm5ld1RleHRSZWFkZXIoInRlc3QxIikKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0MTogRXJyb3IgcmVhZGluZyB0byBmaXJzdCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJhIiBvciByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKSAhPSAwIG9yIFwKKyAgIHJlYWRlci5Ob2RlVHlwZSgpICE9IDEgb3IgcmVhZGVyLkhhc0F0dHJpYnV0ZXMoKSAhPSAwOgorICAgIHByaW50ICJ0ZXN0MTogRXJyb3IgcmVhZGluZyB0aGUgZmlyc3QgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3QxOiBFcnJvciByZWFkaW5nIHRvIHNlY29uZCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJiIiBvciByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKSAhPSAxIG9yIFwKKyAgIHJlYWRlci5Ob2RlVHlwZSgpICE9IDEgb3IgcmVhZGVyLkhhc0F0dHJpYnV0ZXMoKSAhPSAxOgorICAgIHByaW50ICJ0ZXN0MTogRXJyb3IgcmVhZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0MTogRXJyb3IgcmVhZGluZyB0byB0aGlyZCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJjIiBvciByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKSAhPSAwIG9yIFwKKyAgIHJlYWRlci5Ob2RlVHlwZSgpICE9IDEgb3IgcmVhZGVyLkhhc0F0dHJpYnV0ZXMoKSAhPSAwOgorICAgIHByaW50ICJ0ZXN0MTogRXJyb3IgcmVhZGluZyB0aGUgdGhpcmQgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3QxOiBFcnJvciByZWFkaW5nIHRvIHRleHQgbm9kZSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiI3RleHQiIG9yIHJlYWRlci5Jc0VtcHR5RWxlbWVudCgpICE9IDAgb3IgXAorICAgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMyBvciByZWFkZXIuSGFzQXR0cmlidXRlcygpICE9IDAgb3IgXAorICAgcmVhZGVyLlZhbHVlKCkgIT0gImNvbnRlbnQgb2YgYyI6CisgICAgcHJpbnQgInRlc3QxOiBFcnJvciByZWFkaW5nIHRoZSB0ZXh0IG5vZGUiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0MTogRXJyb3IgcmVhZGluZyB0byBlbmQgb2YgdGhpcmQgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiYyIgb3IgcmVhZGVyLklzRW1wdHlFbGVtZW50KCkgIT0gMCBvciBcCisgICByZWFkZXIuTm9kZVR5cGUoKSAhPSAxNSBvciByZWFkZXIuSGFzQXR0cmlidXRlcygpICE9IDA6CisgICAgcHJpbnQgInRlc3QxOiBFcnJvciByZWFkaW5nIHRoZSBlbmQgb2YgdGhpcmQgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3QxOiBFcnJvciByZWFkaW5nIHRvIGVuZCBvZiBmaXJzdCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJhIiBvciByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKSAhPSAwIG9yIFwKKyAgIHJlYWRlci5Ob2RlVHlwZSgpICE9IDE1IG9yIHJlYWRlci5IYXNBdHRyaWJ1dGVzKCkgIT0gMDoKKyAgICBwcmludCAidGVzdDE6IEVycm9yIHJlYWRpbmcgdGhlIGVuZCBvZiBmaXJzdCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMDoKKyAgICBwcmludCAidGVzdDE6IEVycm9yIHJlYWRpbmcgdG8gZW5kIG9mIGRvY3VtZW50IgorICAgIHN5cy5leGl0KDEpCisKKyMKKyMgZXhhbXBsZSBmcm9tIHRoZSBYbWxUZXh0UmVhZGVyIGRvY3MKKyMKK2YgPSBTdHJpbmdJTy5TdHJpbmdJTygiIiI8dGVzdCB4bWxuczpkdD0idXJuOmRhdGF0eXBlcyIgZHQ6dHlwZT0iaW50Ii8+IiIiKQoraW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKGYpCityZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJ0ZXN0MiIpCisKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJFcnJvciByZWFkaW5nIHRlc3QgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLkdldEF0dHJpYnV0ZU5vKDApICE9ICJ1cm46ZGF0YXR5cGVzIiBvciBcCisgICByZWFkZXIuR2V0QXR0cmlidXRlTm8oMSkgIT0gImludCIgb3IgXAorICAgcmVhZGVyLkdldEF0dHJpYnV0ZU5zKCJ0eXBlIiwgInVybjpkYXRhdHlwZXMiKSAhPSAiaW50IiBvciBcCisgICByZWFkZXIuR2V0QXR0cmlidXRlKCJkdDp0eXBlIikgIT0gImludCI6CisgICAgcHJpbnQgImVycm9yIHJlYWRpbmcgdGVzdCBhdHRyaWJ1dGVzIgorICAgIHN5cy5leGl0KDEpCisKKyMKKyMgZXhhbXBsZSBmcm9tIHRoZSBYbWxUZXh0UmVhZGVyIGRvY3MKKyMKK2YgPSBTdHJpbmdJTy5TdHJpbmdJTygiIiI8cm9vdCB4bWxuczphPSJ1cm46NDU2Ij4KKzxpdGVtPgorPHJlZiBocmVmPSJhOmIiLz4KKzwvaXRlbT4KKzwvcm9vdD4iIiIpCitpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoZikKK3JlYWRlciA9IGlucHV0Lm5ld1RleHRSZWFkZXIoInRlc3QzIikKKworcmV0ID0gcmVhZGVyLlJlYWQoKQord2hpbGUgcmV0ID09IDE6CisgICAgaWYgcmVhZGVyLk5hbWUoKSA9PSAicmVmIjoKKyAgICAgICAgaWYgcmVhZGVyLkxvb2t1cE5hbWVzcGFjZSgiYSIpICE9ICJ1cm46NDU2IjoKKyAgICAgICAgICAgIHByaW50ICJlcnJvciByZXNvbHZpbmcgbmFtZXNwYWNlIHByZWZpeCIKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgIGJyZWFrCisgICAgcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgIkVycm9yIGZpbmRpbmcgdGhlIHJlZiBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCisKKyMKKyMgSG9tZSBtYWRlIGV4YW1wbGUgZm9yIHRoZSB2YXJpb3VzIGF0dHJpYnV0ZSBhY2Nlc3MgZnVuY3Rpb25zCisjCitmID0gU3RyaW5nSU8uU3RyaW5nSU8oIiIiPHRlc3RhdHRyIHhtbG5zPSJ1cm46MSIgeG1sbnM6YT0idXJuOjIiIGI9ImIiIGE6Yj0iYTpiIi8+IiIiKQoraW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKGYpCityZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJ0ZXN0NCIpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMToKKyAgICBwcmludCAiRXJyb3IgcmVhZGluZyB0aGUgdGVzdGF0dHIgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQorIworIyBBdHRyaWJ1dGUgZXhwbG9yYXRpb24gYnkgaW5kZXgKKyMKK2lmIHJlYWRlci5Nb3ZlVG9BdHRyaWJ1dGVObygwKSAhPSAxOgorICAgIHByaW50ICJGYWlsZWQgbW92ZVRvQXR0cmlidXRlKDApIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAidXJuOjEiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoMCkiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5OYW1lKCkgIT0gInhtbG5zIjoKKyAgICBwcmludCAiRmFpbGVkIHRvIHJlYWQgYXR0cmlidXRlKDApIG5hbWUiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5Nb3ZlVG9BdHRyaWJ1dGVObygxKSAhPSAxOgorICAgIHByaW50ICJGYWlsZWQgbW92ZVRvQXR0cmlidXRlKDEpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAidXJuOjIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoMSkiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5OYW1lKCkgIT0gInhtbG5zOmEiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoMSkgbmFtZSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk1vdmVUb0F0dHJpYnV0ZU5vKDIpICE9IDE6CisgICAgcHJpbnQgIkZhaWxlZCBtb3ZlVG9BdHRyaWJ1dGUoMikiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5WYWx1ZSgpICE9ICJiIjoKKyAgICBwcmludCAiRmFpbGVkIHRvIHJlYWQgYXR0cmlidXRlKDIpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJiIjoKKyAgICBwcmludCAiRmFpbGVkIHRvIHJlYWQgYXR0cmlidXRlKDIpIG5hbWUiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5Nb3ZlVG9BdHRyaWJ1dGVObygzKSAhPSAxOgorICAgIHByaW50ICJGYWlsZWQgbW92ZVRvQXR0cmlidXRlKDMpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAiYTpiIjoKKyAgICBwcmludCAiRmFpbGVkIHRvIHJlYWQgYXR0cmlidXRlKDMpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJhOmIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoMykgbmFtZSIKKyAgICBzeXMuZXhpdCgxKQorIworIyBBdHRyaWJ1dGUgZXhwbG9yYXRpb24gYnkgbmFtZQorIworaWYgcmVhZGVyLk1vdmVUb0F0dHJpYnV0ZSgieG1sbnMiKSAhPSAxOgorICAgIHByaW50ICJGYWlsZWQgbW92ZVRvQXR0cmlidXRlKCd4bWxucycpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAidXJuOjEiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoJ3htbG5zJykiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5Nb3ZlVG9BdHRyaWJ1dGUoInhtbG5zOmEiKSAhPSAxOgorICAgIHByaW50ICJGYWlsZWQgbW92ZVRvQXR0cmlidXRlKCd4bWxucycpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAidXJuOjIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoJ3htbG5zOmEnKSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk1vdmVUb0F0dHJpYnV0ZSgiYiIpICE9IDE6CisgICAgcHJpbnQgIkZhaWxlZCBtb3ZlVG9BdHRyaWJ1dGUoJ2InKSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLlZhbHVlKCkgIT0gImIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoJ2InKSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk1vdmVUb0F0dHJpYnV0ZSgiYTpiIikgIT0gMToKKyAgICBwcmludCAiRmFpbGVkIG1vdmVUb0F0dHJpYnV0ZSgnYTpiJykiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5WYWx1ZSgpICE9ICJhOmIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoJ2E6YicpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTW92ZVRvQXR0cmlidXRlTnMoImIiLCAidXJuOjIiKSAhPSAxOgorICAgIHByaW50ICJGYWlsZWQgbW92ZVRvQXR0cmlidXRlKCdiJywgJ3VybjoyJykiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5WYWx1ZSgpICE9ICJhOmIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoJ2InLCAndXJuOjInKSIKKyAgICBzeXMuZXhpdCgxKQorIworIyBHbyBiYWNrIGFuZCByZWFkIGluIHNlcXVlbmNlCisjCitpZiByZWFkZXIuTW92ZVRvRWxlbWVudCgpICE9IDE6CisgICAgcHJpbnQgIkZhaWxlZCB0byBtb3ZlIGJhY2sgdG8gZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk1vdmVUb0ZpcnN0QXR0cmlidXRlKCkgIT0gMToKKyAgICBwcmludCAiRmFpbGVkIHRvIG1vdmUgdG8gZmlyc3QgYXR0cmlidXRlIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAidXJuOjEiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoMCkiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5OYW1lKCkgIT0gInhtbG5zIjoKKyAgICBwcmludCAiRmFpbGVkIHRvIHJlYWQgYXR0cmlidXRlKDApIG5hbWUiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5Nb3ZlVG9OZXh0QXR0cmlidXRlKCkgIT0gMToKKyAgICBwcmludCAiRmFpbGVkIHRvIG1vdmUgdG8gbmV4dCBhdHRyaWJ1dGUiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5WYWx1ZSgpICE9ICJ1cm46MiI6CisgICAgcHJpbnQgIkZhaWxlZCB0byByZWFkIGF0dHJpYnV0ZSgxKSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAieG1sbnM6YSI6CisgICAgcHJpbnQgIkZhaWxlZCB0byByZWFkIGF0dHJpYnV0ZSgxKSBuYW1lIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTW92ZVRvTmV4dEF0dHJpYnV0ZSgpICE9IDE6CisgICAgcHJpbnQgIkZhaWxlZCB0byBtb3ZlIHRvIG5leHQgYXR0cmlidXRlIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAiYiI6CisgICAgcHJpbnQgIkZhaWxlZCB0byByZWFkIGF0dHJpYnV0ZSgyKSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiYiI6CisgICAgcHJpbnQgIkZhaWxlZCB0byByZWFkIGF0dHJpYnV0ZSgyKSBuYW1lIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTW92ZVRvTmV4dEF0dHJpYnV0ZSgpICE9IDE6CisgICAgcHJpbnQgIkZhaWxlZCB0byBtb3ZlIHRvIG5leHQgYXR0cmlidXRlIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuVmFsdWUoKSAhPSAiYTpiIjoKKyAgICBwcmludCAiRmFpbGVkIHRvIHJlYWQgYXR0cmlidXRlKDMpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJhOmIiOgorICAgIHByaW50ICJGYWlsZWQgdG8gcmVhZCBhdHRyaWJ1dGUoMykgbmFtZSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk1vdmVUb05leHRBdHRyaWJ1dGUoKSAhPSAwOgorICAgIHByaW50ICJGYWlsZWQgdG8gZGV0ZWN0IGxhc3QgYXR0cmlidXRlIgorICAgIHN5cy5leGl0KDEpCisKKyAgICAKKyMKKyMgYSBjb3VwbGUgb2YgdGVzdHMgZm9yIG5hbWVzcGFjZSBub2RlcworIworZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCIiIjxhIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIi8+IiIiKQoraW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKGYpCityZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJ0ZXN0NiIpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMToKKyAgICBwcmludCAidGVzdDY6IGZhaWxlZCB0byBSZWFkKCkiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5Nb3ZlVG9GaXJzdEF0dHJpYnV0ZSgpCitpZiByZXQgIT0gMToKKyAgICBwcmludCAidGVzdDY6IGZhaWxlZCB0byBNb3ZlVG9GaXJzdEF0dHJpYnV0ZSgpIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZXNwYWNlVXJpKCkgIT0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIiBvciBcCisgICByZWFkZXIuTG9jYWxOYW1lKCkgIT0gInhtbG5zIiBvciByZWFkZXIuTmFtZSgpICE9ICJ4bWxucyIgb3IgXAorICAgcmVhZGVyLlZhbHVlKCkgIT0gImh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIG9yIHJlYWRlci5Ob2RlVHlwZSgpICE9IDI6CisgICAgcHJpbnQgInRlc3Q2OiBmYWlsZWQgdG8gcmVhZCB0aGUgbmFtZXNwYWNlIG5vZGUiCisgICAgc3lzLmV4aXQoMSkKKworZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCIiIjxhIHhtbG5zOnByZWZpeD0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIvPiIiIikKK2lucHV0ID0gbGlieG1sMi5pbnB1dEJ1ZmZlcihmKQorcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigidGVzdDciKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3Q3OiBmYWlsZWQgdG8gUmVhZCgpIgorICAgIHN5cy5leGl0KDEpCityZXQgPSByZWFkZXIuTW92ZVRvRmlyc3RBdHRyaWJ1dGUoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3Q3OiBmYWlsZWQgdG8gTW92ZVRvRmlyc3RBdHRyaWJ1dGUoKSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWVzcGFjZVVyaSgpICE9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIgb3IgXAorICAgcmVhZGVyLkxvY2FsTmFtZSgpICE9ICJwcmVmaXgiIG9yIHJlYWRlci5OYW1lKCkgIT0gInhtbG5zOnByZWZpeCIgb3IgXAorICAgcmVhZGVyLlZhbHVlKCkgIT0gImh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIG9yIHJlYWRlci5Ob2RlVHlwZSgpICE9IDI6CisgICAgcHJpbnQgInRlc3Q3OiBmYWlsZWQgdG8gcmVhZCB0aGUgbmFtZXNwYWNlIG5vZGUiCisgICAgc3lzLmV4aXQoMSkKKworIworIyBUZXN0IGZvciBhIGxpbWl0IGNhc2U6CisjCitmID0gU3RyaW5nSU8uU3RyaW5nSU8oIiIiPGEvPiIiIikKK2lucHV0ID0gbGlieG1sMi5pbnB1dEJ1ZmZlcihmKQorcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigidGVzdDgiKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3Q4OiBmYWlsZWQgdG8gcmVhZCB0aGUgbm9kZSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiYSIgb3IgcmVhZGVyLklzRW1wdHlFbGVtZW50KCkgIT0gMToKKyAgICBwcmludCAidGVzdDg6IGZhaWxlZCB0byBhbmFseXplIHRoZSBub2RlIgorICAgIHN5cy5leGl0KDEpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMDoKKyAgICBwcmludCAidGVzdDg6IGZhaWxlZCB0byBkZXRlY3QgdGhlIEVPRiIKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIEFub3RoZXIgdGVzdCBwcm92aWRlZCBieSBTdOlwaGFuZSBCaWRvdWwgYW5kIGNoZWNrZWQgd2l0aCBDIworIworZGVmIHRzdF9yZWFkZXIocyk6CisgICAgZiA9IFN0cmluZ0lPLlN0cmluZ0lPKHMpCisgICAgaW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKGYpCisgICAgcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigidHN0IikKKyAgICByZXMgPSAiIgorICAgIHdoaWxlIHJlYWRlci5SZWFkKCk6CisgICAgICAgIHJlcz1yZXMgKyAiJXMgKCVzKSBbJXNdICVkICVkXG4iICUgKHJlYWRlci5Ob2RlVHlwZSgpLHJlYWRlci5OYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5WYWx1ZSgpLCByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLkRlcHRoKCkpCisgICAgICAgIGlmIHJlYWRlci5Ob2RlVHlwZSgpID09IDE6ICMgRWxlbWVudAorICAgICAgICAgICAgd2hpbGUgcmVhZGVyLk1vdmVUb05leHRBdHRyaWJ1dGUoKToKKyAgICAgICAgICAgICAgICByZXMgPSByZXMgKyAiLS0gJXMgKCVzKSBbJXNdICVkICVkXG4iICUgKHJlYWRlci5Ob2RlVHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLk5hbWUoKSxyZWFkZXIuVmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5Jc0VtcHR5RWxlbWVudCgpLCByZWFkZXIuRGVwdGgoKSkKKyAgICByZXR1cm4gcmVzCisgICAgCitkb2M9IiIiPGE+PGIgYjE9ImIxIi8+PGM+Y29udGVudCBvZiBjPC9jPjwvYT4iIiIKK2V4cGVjdD0iIiIxIChhKSBbTm9uZV0gMCAwCisxIChiKSBbTm9uZV0gMSAxCistLSAyIChiMSkgW2IxXSAwIDIKKzEgKGMpIFtOb25lXSAwIDEKKzMgKCN0ZXh0KSBbY29udGVudCBvZiBjXSAwIDIKKzE1IChjKSBbTm9uZV0gMCAxCisxNSAoYSkgW05vbmVdIDAgMAorIiIiCityZXMgPSB0c3RfcmVhZGVyKGRvYykKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgInRlc3Q1IGZhaWxlZCIKKyAgICBwcmludCByZXMKKyAgICBzeXMuZXhpdCgxKQorCitkb2M9IiIiPHRlc3Q+PGIvPjxjLz48L3Rlc3Q+IiIiCitleHBlY3Q9IiIiMSAodGVzdCkgW05vbmVdIDAgMAorMSAoYikgW05vbmVdIDEgMQorMSAoYykgW05vbmVdIDEgMQorMTUgKHRlc3QpIFtOb25lXSAwIDAKKyIiIgorcmVzID0gdHN0X3JlYWRlcihkb2MpCitpZiByZXMgIT0gZXhwZWN0OgorICAgIHByaW50ICJ0ZXN0OSBmYWlsZWQiCisgICAgcHJpbnQgcmVzCisgICAgc3lzLmV4aXQoMSkKKworZG9jPSIiIjxhPjxiPmJiYjwvYj48Yz5jY2M8L2M+PC9hPiIiIgorZXhwZWN0PSIiIjEgKGEpIFtOb25lXSAwIDAKKzEgKGIpIFtOb25lXSAwIDEKKzMgKCN0ZXh0KSBbYmJiXSAwIDIKKzE1IChiKSBbTm9uZV0gMCAxCisxIChjKSBbTm9uZV0gMCAxCiszICgjdGV4dCkgW2NjY10gMCAyCisxNSAoYykgW05vbmVdIDAgMQorMTUgKGEpIFtOb25lXSAwIDAKKyIiIgorcmVzID0gdHN0X3JlYWRlcihkb2MpCitpZiByZXMgIT0gZXhwZWN0OgorICAgIHByaW50ICJ0ZXN0MTAgZmFpbGVkIgorICAgIHByaW50IHJlcworICAgIHN5cy5leGl0KDEpCisKK2RvYz0iIiI8dGVzdCBhPSJhIi8+IiIiCitleHBlY3Q9IiIiMSAodGVzdCkgW05vbmVdIDEgMAorLS0gMiAoYSkgW2FdIDAgMQorIiIiCityZXMgPSB0c3RfcmVhZGVyKGRvYykKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgInRlc3QxMSBmYWlsZWQiCisgICAgcHJpbnQgcmVzCisgICAgc3lzLmV4aXQoMSkKKworZG9jPSIiIjx0ZXN0PjxhPmFhYTwvYT48Yi8+PC90ZXN0PiIiIgorZXhwZWN0PSIiIjEgKHRlc3QpIFtOb25lXSAwIDAKKzEgKGEpIFtOb25lXSAwIDEKKzMgKCN0ZXh0KSBbYWFhXSAwIDIKKzE1IChhKSBbTm9uZV0gMCAxCisxIChiKSBbTm9uZV0gMSAxCisxNSAodGVzdCkgW05vbmVdIDAgMAorIiIiCityZXMgPSB0c3RfcmVhZGVyKGRvYykKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgInRlc3QxMiBmYWlsZWQiCisgICAgcHJpbnQgcmVzCisgICAgc3lzLmV4aXQoMSkKKworZG9jPSIiIjx0ZXN0PjxwPjwvcD48L3Rlc3Q+IiIiCitleHBlY3Q9IiIiMSAodGVzdCkgW05vbmVdIDAgMAorMSAocCkgW05vbmVdIDAgMQorMTUgKHApIFtOb25lXSAwIDEKKzE1ICh0ZXN0KSBbTm9uZV0gMCAwCisiIiIKK3JlcyA9IHRzdF9yZWFkZXIoZG9jKQoraWYgcmVzICE9IGV4cGVjdDoKKyAgICBwcmludCAidGVzdDEzIGZhaWxlZCIKKyAgICBwcmludCByZXMKKyAgICBzeXMuZXhpdCgxKQorCitkb2M9IiIiPHA+PC9wPiIiIgorZXhwZWN0PSIiIjEgKHApIFtOb25lXSAwIDAKKzE1IChwKSBbTm9uZV0gMCAwCisiIiIKK3JlcyA9IHRzdF9yZWFkZXIoZG9jKQoraWYgcmVzICE9IGV4cGVjdDoKKyAgICBwcmludCAidGVzdDE0IGZhaWxlZCIKKyAgICBwcmludCByZXMKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIHRlc3QgZnJvbSBidWcgIzEwODgwMSAKKyMKK2RvYz0iIiI8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgYXJ0aWNsZSBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIKKyAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIgWworXT4KKworPGFydGljbGU+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAorPC9hcnRpY2xlPgorIiIiCitleHBlY3Q9IiIiMTAgKGFydGljbGUpIFtOb25lXSAwIDAKKzEgKGFydGljbGUpIFtOb25lXSAwIDAKKzMgKCN0ZXh0KSBbCit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAorXSAwIDEKKzE1IChhcnRpY2xlKSBbTm9uZV0gMCAwCisiIiIKK3JlcyA9IHRzdF9yZWFkZXIoZG9jKQoraWYgcmVzICE9IGV4cGVjdDoKKyAgICBwcmludCAidGVzdDE1IGZhaWxlZCIKKyAgICBwcmludCByZXMKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIGNsZWFudXAgZm9yIG1lbW9yeSBhbGxvY2F0aW9uIGNvdW50aW5nCisjCitkZWwgZgorZGVsIGlucHV0CitkZWwgcmVhZGVyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXIyLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyMi5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYTg5MGVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyMi5weQpAQCAtMCwwICsxLDI1NiBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKKyMgdGhpcyB0ZXN0cyB0aGUgRFREIHZhbGlkYXRpb24gd2l0aCB0aGUgWG1sVGV4dFJlYWRlciBpbnRlcmZhY2UKKyMKK2ltcG9ydCBzeXMKK2ltcG9ydCBnbG9iCitpbXBvcnQgc3RyaW5nCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2Vycj0iIgorZXhwZWN0PSIiIi4uLy4uL3Rlc3QvdmFsaWQvcnNzLnhtbDoxNzc6IGVsZW1lbnQgcnNzOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgcnNzIGRvZXMgbm90IGNhcnJ5IGF0dHJpYnV0ZSB2ZXJzaW9uCis8L3Jzcz4KKyAgICAgIF4KKy4uLy4uL3Rlc3QvdmFsaWQveGxpbmsueG1sOjQ1MDogZWxlbWVudCB0ZXJtZGVmOiB2YWxpZGl0eSBlcnJvciA6IElEIGR0LWFyYyBhbHJlYWR5IGRlZmluZWQKKwk8cD48dGVybWRlZiBpZD0iZHQtYXJjIiB0ZXJtPSJBcmMiPkFuIDx0ZXIKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi4vLi4vdGVzdC92YWxpZC94bGluay54bWw6NTMwOiB2YWxpZGl0eSBlcnJvciA6IGF0dHJpYnV0ZSBkZWYgbGluZSAxOTkgcmVmZXJlbmNlcyBhbiB1bmtub3duIElEICJkdC14bGciCisKK14KKyIiIgorZGVmIGNhbGxiYWNrKGN0eCwgc3RyKToKKyAgICBnbG9iYWwgZXJyCisgICAgZXJyID0gZXJyICsgIiVzIiAlIChzdHIpCitsaWJ4bWwyLnJlZ2lzdGVyRXJyb3JIYW5kbGVyKGNhbGxiYWNrLCAiIikKKwordmFsaWRfZmlsZXMgPSBnbG9iLmdsb2IoIi4uLy4uL3Rlc3QvdmFsaWQvKi54KiIpCit2YWxpZF9maWxlcy5zb3J0KCkKK2ZvciBmaWxlIGluIHZhbGlkX2ZpbGVzOgorICAgIGlmIHN0cmluZy5maW5kKGZpbGUsICJ0OCIpICE9IC0xOgorICAgICAgICBjb250aW51ZQorICAgIHJlYWRlciA9IGxpYnhtbDIubmV3VGV4dFJlYWRlckZpbGVuYW1lKGZpbGUpCisgICAgI3ByaW50ICIlczoiICUgKGZpbGUpCisgICAgcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfVkFMSURBVEUsIDEpCisgICAgcmV0ID0gcmVhZGVyLlJlYWQoKQorICAgIHdoaWxlIHJldCA9PSAxOgorICAgICAgICByZXQgPSByZWFkZXIuUmVhZCgpCisgICAgaWYgcmV0ICE9IDA6CisgICAgICAgIHByaW50ICJFcnJvciBwYXJzaW5nIGFuZCB2YWxpZGF0aW5nICVzIiAlIChmaWxlKQorCSNzeXMuZXhpdCgxKQorCitpZiBlcnIgIT0gZXhwZWN0OgorICAgIHByaW50IGVycgorCisjCisjIGFub3RoZXIgc2VwYXJhdGUgdGVzdCBiYXNlZCBvbiBTdGVwaGFuZSBCaWRvdWwgb25lCisjCitzID0gIiIiCis8IURPQ1RZUEUgdGVzdCBbCis8IUVMRU1FTlQgdGVzdCAoeCxiKT4KKzwhRUxFTUVOVCB4IChjKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KKzwhRUxFTUVOVCBjICgjUENEQVRBKT4KKzwhRU5USVRZIHggIjx4PjxjPnh4eDwvYz48L3g+Ij4KK10+Cis8dGVzdD4KKyAgICAmeDsKKyAgICA8Yj5iYmI8L2I+Cis8L3Rlc3Q+CisiIiIKK2V4cGVjdD0iIiIxMCx0ZXN0CisxLHRlc3QKKzE0LCN0ZXh0CisxLHgKKzEsYworMywjdGV4dAorMTUsYworMTUseAorMTQsI3RleHQKKzEsYgorMywjdGV4dAorMTUsYgorMTQsI3RleHQKKzE1LHRlc3QKKyIiIgorcmVzPSIiCitlcnI9IiIKKworaW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKFN0cmluZ0lPLlN0cmluZ0lPKHMpKQorcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigidGVzdDIiKQorcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfTE9BRERURCwxKQorcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfREVGQVVMVEFUVFJTLDEpCityZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9TVUJTVF9FTlRJVElFUywxKQorcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfVkFMSURBVEUsMSkKK3doaWxlIHJlYWRlci5SZWFkKCkgPT0gMToKKyAgICByZXMgPSByZXMgKyAiJXMsJXNcbiIgJSAocmVhZGVyLk5vZGVUeXBlKCkscmVhZGVyLk5hbWUoKSkKKworaWYgcmVzICE9IGV4cGVjdDoKKyAgICBwcmludCAidGVzdDIgZmFpbGVkOiB1bmV4cGVjdGVkIG91dHB1dCIKKyAgICBwcmludCByZXMKKyAgICBzeXMuZXhpdCgxKQoraWYgZXJyICE9ICIiOgorICAgIHByaW50ICJ0ZXN0MiBmYWlsZWQ6IHZhbGlkYXRpb24gZXJyb3IgZm91bmQiCisgICAgcHJpbnQgZXJyCisgICAgc3lzLmV4aXQoMSkKKworIworIyBBbm90aGVyIHRlc3QgZm9yIGV4dGVybmFsIGVudGl0eSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uCisjCisKK3MgPSAiIiI8IURPQ1RZUEUgdGVzdCBbCis8IUVMRU1FTlQgdGVzdCAoeCk+Cis8IUVMRU1FTlQgeCAoI1BDREFUQSk+Cis8IUVOVElUWSBlIFNZU1RFTSAidHN0LmVudCI+CitdPgorPHRlc3Q+CisgICZlOworPC90ZXN0PgorIiIiCit0c3RfZW50ID0gIiIiPHg+aGVsbG88L3g+IiIiCitleHBlY3Q9IiIiMTAgdGVzdAorMSB0ZXN0CisxNCAjdGV4dAorMSB4CiszICN0ZXh0CisxNSB4CisxNCAjdGV4dAorMTUgdGVzdAorIiIiCityZXM9IiIKKworZGVmIG15UmVzb2x2ZXIoVVJMLCBJRCwgY3R4dCk6CisgICAgaWYgVVJMID09ICJ0c3QuZW50IjoKKyAgICAgICAgcmV0dXJuKFN0cmluZ0lPLlN0cmluZ0lPKHRzdF9lbnQpKQorICAgIHJldHVybiBOb25lCisKK2xpYnhtbDIuc2V0RW50aXR5TG9hZGVyKG15UmVzb2x2ZXIpCisKK2lucHV0ID0gbGlieG1sMi5pbnB1dEJ1ZmZlcihTdHJpbmdJTy5TdHJpbmdJTyhzKSkKK3JlYWRlciA9IGlucHV0Lm5ld1RleHRSZWFkZXIoInRlc3QzIikKK3JlYWRlci5TZXRQYXJzZXJQcm9wKGxpYnhtbDIuUEFSU0VSX0xPQUREVEQsMSkKK3JlYWRlci5TZXRQYXJzZXJQcm9wKGxpYnhtbDIuUEFSU0VSX0RFRkFVTFRBVFRSUywxKQorcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfU1VCU1RfRU5USVRJRVMsMSkKK3JlYWRlci5TZXRQYXJzZXJQcm9wKGxpYnhtbDIuUEFSU0VSX1ZBTElEQVRFLDEpCit3aGlsZSByZWFkZXIuUmVhZCgpID09IDE6CisgICAgcmVzID0gcmVzICsgIiVzICVzXG4iICUgKHJlYWRlci5Ob2RlVHlwZSgpLHJlYWRlci5OYW1lKCkpCisKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgInRlc3QzIGZhaWxlZDogdW5leHBlY3RlZCBvdXRwdXQiCisgICAgcHJpbnQgcmVzCisgICAgc3lzLmV4aXQoMSkKK2lmIGVyciAhPSAiIjoKKyAgICBwcmludCAidGVzdDMgZmFpbGVkOiB2YWxpZGF0aW9uIGVycm9yIGZvdW5kIgorICAgIHByaW50IGVycgorICAgIHN5cy5leGl0KDEpCisKKyMKKyMgQW5vdGhlciB0ZXN0IGZvciByZWN1cnNpdmUgZW50aXR5IHBhcnNpbmcsIHZhbGlkYXRpb24sIGFuZCByZXBsYWNlbWVudCBvZgorIyBlbnRpdGllcywgbWFraW5nIHN1cmUgdGhlIGVudGl0eSByZWYgbm9kZSBkb2Vzbid0IHNob3cgdXAgaW4gdGhhdCBjYXNlCisjCisKK3MgPSAiIiI8IURPQ1RZUEUgdGVzdCBbCis8IUVMRU1FTlQgdGVzdCAoeCwgeCk+Cis8IUVMRU1FTlQgeCAoeSk+Cis8IUVMRU1FTlQgeSAoI1BDREFUQSk+Cis8IUVOVElUWSB4ICI8eD4meTs8L3g+Ij4KKzwhRU5USVRZIHkgIjx5Pnl5eTwveT4iPgorXT4KKzx0ZXN0PgorICAmeDsKKyAgJng7Cis8L3Rlc3Q+IiIiCitleHBlY3Q9IiIiMTAgdGVzdCAwCisxIHRlc3QgMAorMTQgI3RleHQgMQorMSB4IDEKKzEgeSAyCiszICN0ZXh0IDMKKzE1IHkgMgorMTUgeCAxCisxNCAjdGV4dCAxCisxIHggMQorMSB5IDIKKzMgI3RleHQgMworMTUgeSAyCisxNSB4IDEKKzE0ICN0ZXh0IDEKKzE1IHRlc3QgMAorIiIiCityZXM9IiIKK2Vycj0iIgorCitpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoU3RyaW5nSU8uU3RyaW5nSU8ocykpCityZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJ0ZXN0NCIpCityZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9MT0FERFRELDEpCityZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9ERUZBVUxUQVRUUlMsMSkKK3JlYWRlci5TZXRQYXJzZXJQcm9wKGxpYnhtbDIuUEFSU0VSX1NVQlNUX0VOVElUSUVTLDEpCityZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9WQUxJREFURSwxKQord2hpbGUgcmVhZGVyLlJlYWQoKSA9PSAxOgorICAgIHJlcyA9IHJlcyArICIlcyAlcyAlZFxuIiAlIChyZWFkZXIuTm9kZVR5cGUoKSxyZWFkZXIuTmFtZSgpLHJlYWRlci5EZXB0aCgpKQorCitpZiByZXMgIT0gZXhwZWN0OgorICAgIHByaW50ICJ0ZXN0NCBmYWlsZWQ6IHVuZXhwZWN0ZWQgb3V0cHV0IgorICAgIHByaW50IHJlcworICAgIHN5cy5leGl0KDEpCitpZiBlcnIgIT0gIiI6CisgICAgcHJpbnQgInRlc3Q0IGZhaWxlZDogdmFsaWRhdGlvbiBlcnJvciBmb3VuZCIKKyAgICBwcmludCBlcnIKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIFRoZSBzYW1lIHRlc3QgYnV0IHdpdGhvdXQgZW50aXR5IHN1YnN0aXR1dGlvbiB0aGlzIHRpbWUKKyMKKworcyA9ICIiIjwhRE9DVFlQRSB0ZXN0IFsKKzwhRUxFTUVOVCB0ZXN0ICh4LCB4KT4KKzwhRUxFTUVOVCB4ICh5KT4KKzwhRUxFTUVOVCB5ICgjUENEQVRBKT4KKzwhRU5USVRZIHggIjx4PiZ5OzwveD4iPgorPCFFTlRJVFkgeSAiPHk+eXl5PC95PiI+CitdPgorPHRlc3Q+CisgICZ4OworICAmeDsKKzwvdGVzdD4iIiIKK2V4cGVjdD0iIiIxMCB0ZXN0IDAKKzEgdGVzdCAwCisxNCAjdGV4dCAxCis1IHggMQorMTQgI3RleHQgMQorNSB4IDEKKzE0ICN0ZXh0IDEKKzE1IHRlc3QgMAorIiIiCityZXM9IiIKK2Vycj0iIgorCitpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoU3RyaW5nSU8uU3RyaW5nSU8ocykpCityZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJ0ZXN0NSIpCityZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9WQUxJREFURSwxKQord2hpbGUgcmVhZGVyLlJlYWQoKSA9PSAxOgorICAgIHJlcyA9IHJlcyArICIlcyAlcyAlZFxuIiAlIChyZWFkZXIuTm9kZVR5cGUoKSxyZWFkZXIuTmFtZSgpLHJlYWRlci5EZXB0aCgpKQorCitpZiByZXMgIT0gZXhwZWN0OgorICAgIHByaW50ICJ0ZXN0NSBmYWlsZWQ6IHVuZXhwZWN0ZWQgb3V0cHV0IgorICAgIHByaW50IHJlcworaWYgZXJyICE9ICIiOgorICAgIHByaW50ICJ0ZXN0NSBmYWlsZWQ6IHZhbGlkYXRpb24gZXJyb3IgZm91bmQiCisgICAgcHJpbnQgZXJyCisKKyMKKyMgY2xlYW51cAorIworZGVsIGlucHV0CitkZWwgcmVhZGVyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXIzLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyMy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNDU4Yzg5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyMy5weQpAQCAtMCwwICsxLDE1NSBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKKyMgdGhpcyB0ZXN0cyB0aGUgZW50aXRpZXMgc3Vic3RpdHV0aW9ucyB3aXRoIHRoZSBYbWxUZXh0UmVhZGVyIGludGVyZmFjZQorIworaW1wb3J0IHN5cworaW1wb3J0IFN0cmluZ0lPCitpbXBvcnQgbGlieG1sMgorCitkb2NzdHI9IiIiPD94bWwgdmVyc2lvbj0nMS4wJz8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIHRzdCAiPHA+dGVzdDwvcD4iPgorXT4KKzxkb2M+JnRzdDs8L2RvYz4iIiIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworIworIyBGaXJzdCB0ZXN0LCBub3JtYWwgZG9uJ3Qgc3Vic3RpdHV0ZSBlbnRpdGllcy4KKyMKK2YgPSBTdHJpbmdJTy5TdHJpbmdJTyhkb2NzdHIpCitpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoZikKK3JlYWRlciA9IGlucHV0Lm5ld1RleHRSZWFkZXIoInRlc3Rfbm9lbnQiKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgIkVycm9yIHJlYWRpbmcgdG8gcm9vdCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSA9PSAiZG9jIiBvciByZWFkZXIuTm9kZVR5cGUoKSA9PSAxMDoKKyAgICByZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMToKKyAgICBwcmludCAiRXJyb3IgcmVhZGluZyB0byByb290IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJkb2MiIG9yIHJlYWRlci5Ob2RlVHlwZSgpICE9IDE6CisgICAgcHJpbnQgInRlc3Rfbm9ybWFsOiBFcnJvciByZWFkaW5nIHRoZSByb290IGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0X25vcm1hbDogRXJyb3IgcmVhZGluZyB0byB0aGUgZW50aXR5IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJ0c3QiIG9yIHJlYWRlci5Ob2RlVHlwZSgpICE9IDU6CisgICAgcHJpbnQgInRlc3Rfbm9ybWFsOiBFcnJvciByZWFkaW5nIHRoZSBlbnRpdHkiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0X25vcm1hbDogRXJyb3IgcmVhZGluZyB0byB0aGUgZW5kIG9mIHJvb3QiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5OYW1lKCkgIT0gImRvYyIgb3IgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMTU6CisgICAgcHJpbnQgInRlc3Rfbm9ybWFsOiBFcnJvciByZWFkaW5nIHRoZSBlbmQgb2YgdGhlIHJvb3QgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDA6CisgICAgcHJpbnQgInRlc3Rfbm9ybWFsOiBFcnJvciBkZXRlY3RpbmcgdGhlIGVuZCIKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIFNlY29uZCB0ZXN0LCBjb21wbGV0ZWx5IHN1YnN0aXR1dGUgdGhlIGVudGl0aWVzLgorIworZiA9IFN0cmluZ0lPLlN0cmluZ0lPKGRvY3N0cikKK2lucHV0ID0gbGlieG1sMi5pbnB1dEJ1ZmZlcihmKQorcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigidGVzdF9ub2VudCIpCityZWFkZXIuU2V0UGFyc2VyUHJvcChsaWJ4bWwyLlBBUlNFUl9TVUJTVF9FTlRJVElFUywgMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJFcnJvciByZWFkaW5nIHRvIHJvb3QiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5OYW1lKCkgPT0gImRvYyIgb3IgcmVhZGVyLk5vZGVUeXBlKCkgPT0gMTA6CisgICAgcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgIkVycm9yIHJlYWRpbmcgdG8gcm9vdCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiZG9jIiBvciByZWFkZXIuTm9kZVR5cGUoKSAhPSAxOgorICAgIHByaW50ICJ0ZXN0X25vZW50OiBFcnJvciByZWFkaW5nIHRoZSByb290IGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0X25vZW50OiBFcnJvciByZWFkaW5nIHRvIHRoZSBlbnRpdHkgY29udGVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAicCIgb3IgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMToKKyAgICBwcmludCAidGVzdF9ub2VudDogRXJyb3IgcmVhZGluZyB0aGUgcCBlbGVtZW50IGZyb20gZW50aXR5IgorICAgIHN5cy5leGl0KDEpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMToKKyAgICBwcmludCAidGVzdF9ub2VudDogRXJyb3IgcmVhZGluZyB0byB0aGUgdGV4dCBub2RlIgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTm9kZVR5cGUoKSAhPSAzIG9yIHJlYWRlci5WYWx1ZSgpICE9ICJ0ZXN0IjoKKyAgICBwcmludCAidGVzdF9ub2VudDogRXJyb3IgcmVhZGluZyB0aGUgdGV4dCBub2RlIgorICAgIHN5cy5leGl0KDEpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMToKKyAgICBwcmludCAidGVzdF9ub2VudDogRXJyb3IgcmVhZGluZyB0byB0aGUgZW5kIG9mIHAgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAicCIgb3IgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMTU6CisgICAgcHJpbnQgInRlc3Rfbm9lbnQ6IEVycm9yIHJlYWRpbmcgdGhlIGVuZCBvZiB0aGUgcCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMToKKyAgICBwcmludCAidGVzdF9ub2VudDogRXJyb3IgcmVhZGluZyB0byB0aGUgZW5kIG9mIHJvb3QiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5OYW1lKCkgIT0gImRvYyIgb3IgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMTU6CisgICAgcHJpbnQgInRlc3Rfbm9lbnQ6IEVycm9yIHJlYWRpbmcgdGhlIGVuZCBvZiB0aGUgcm9vdCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCityZXQgPSByZWFkZXIuUmVhZCgpCitpZiByZXQgIT0gMDoKKyAgICBwcmludCAidGVzdF9ub2VudDogRXJyb3IgZGV0ZWN0aW5nIHRoZSBlbmQiCisgICAgc3lzLmV4aXQoMSkKKworIworIyB0aGlyZCB0ZXN0LCBjcmF6eSBzdHVmZiBhYm91dCBlbXB0eSBlbGVtZW50IGluIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcworIworcyA9ICIiIjwhRE9DVFlQRSBzdHJ1Y3QgWworPCFFTlRJVFkgc2ltcGxlc3RydWN0Mi5lbnQgU1lTVEVNICJzaW1wbGVzdHJ1Y3QyLmVudCI+CitdPgorPHN0cnVjdD4mc2ltcGxlc3RydWN0Mi5lbnQ7PC9zdHJ1Y3Q+CisiIiIKK2V4cGVjdD0iIiIxMCBzdHJ1Y3QgMCAwCisxIHN0cnVjdCAwIDAKKzEgZGVzY3IgMSAxCisxNSBzdHJ1Y3QgMCAwCisiIiIKK3Jlcz0iIgorc2ltcGxlc3RydWN0Ml9lbnQ9IiIiPGRlc2NyLz4iIiIKKworZGVmIG15UmVzb2x2ZXIoVVJMLCBJRCwgY3R4dCk6CisgICAgaWYgVVJMID09ICJzaW1wbGVzdHJ1Y3QyLmVudCI6CisgICAgICAgIHJldHVybihTdHJpbmdJTy5TdHJpbmdJTyhzaW1wbGVzdHJ1Y3QyX2VudCkpCisgICAgcmV0dXJuIE5vbmUKKworbGlieG1sMi5zZXRFbnRpdHlMb2FkZXIobXlSZXNvbHZlcikKKworaW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKFN0cmluZ0lPLlN0cmluZ0lPKHMpKQorcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigidGVzdDMiKQorcmVhZGVyLlNldFBhcnNlclByb3AobGlieG1sMi5QQVJTRVJfU1VCU1RfRU5USVRJRVMsMSkKK3doaWxlIHJlYWRlci5SZWFkKCkgPT0gMToKKyAgICByZXMgPSByZXMgKyAiJXMgJXMgJWQgJWRcbiIgJSAocmVhZGVyLk5vZGVUeXBlKCkscmVhZGVyLk5hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLkRlcHRoKCkscmVhZGVyLklzRW1wdHlFbGVtZW50KCkpCisKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgInRlc3QzIGZhaWxlZDogdW5leHBlY3RlZCBvdXRwdXQiCisgICAgcHJpbnQgcmVzCisgICAgc3lzLmV4aXQoMSkKKworIworIyBjbGVhbnVwCisjCitkZWwgZgorZGVsIGlucHV0CitkZWwgcmVhZGVyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXI0LnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyNC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wODI0OTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyNC5weQpAQCAtMCwwICsxLDQ1IEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyB0aGlzIHRlc3RzIHRoZSBiYXNpYyBBUElzIG9mIHRoZSBYbWxUZXh0UmVhZGVyIGludGVyZmFjZQorIworaW1wb3J0IGxpYnhtbDIKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHN5cworCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitkZWYgdHN0X3JlYWRlcihzKToKKyAgICBmID0gU3RyaW5nSU8uU3RyaW5nSU8ocykKKyAgICBpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoZikKKyAgICByZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJ0c3QiKQorICAgIHJlcyA9ICIiCisgICAgd2hpbGUgcmVhZGVyLlJlYWQoKToKKyAgICAgICAgcmVzPXJlcyArICIlcyAoJXMpIFslc10gJWRcbiIgJSAocmVhZGVyLk5vZGVUeXBlKCkscmVhZGVyLk5hbWUoKSwKKwkJCQkgICAgICByZWFkZXIuVmFsdWUoKSwgcmVhZGVyLklzRW1wdHlFbGVtZW50KCkpCisgICAgICAgIGlmIHJlYWRlci5Ob2RlVHlwZSgpID09IDE6ICMgRWxlbWVudAorICAgICAgICAgICAgd2hpbGUgcmVhZGVyLk1vdmVUb05leHRBdHRyaWJ1dGUoKToKKyAgICAgICAgICAgICAgICByZXMgPSByZXMgKyAiLS0gJXMgKCVzKSBbJXNdXG4iICUgKHJlYWRlci5Ob2RlVHlwZSgpLAorCQkJCQkJICAgcmVhZGVyLk5hbWUoKSxyZWFkZXIuVmFsdWUoKSkKKyAgICByZXR1cm4gcmVzCisgICAgCitleHBlY3Q9IiIiMSAodGVzdCkgW05vbmVdIDAKKzEgKGIpIFtOb25lXSAxCisxIChjKSBbTm9uZV0gMQorMTUgKHRlc3QpIFtOb25lXSAwCisiIiIKKworcmVzID0gdHN0X3JlYWRlcigiIiI8dGVzdD48Yi8+PGMvPjwvdGVzdD4iIiIpCisKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBlcnJvciBtZXNzYWdlOiIKKyAgICBwcmludCByZXMKKyAgICBzeXMuZXhpdCgxKQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVyNS5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlcjUucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmNiYWQ2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlcjUucHkKQEAgLTAsMCArMSw0OCBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKKyMgdGhpcyB0ZXN0cyB0aGUgRXhwYW5kKCkgQVBJIG9mIHRoZSB4bWxUZXh0UmVhZGVyIGludGVyZmFjZQorIyB0aGlzIGV4dHJhY3QgdGhlIERyYWdvbiBiaWJsaW9ncmFwaHkgZW50cmllcyBmcm9tIHRoZSBYTUwgc3BlY2lmaWNhdGlvbgorIworaW1wb3J0IGxpYnhtbDIKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHN5cworCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitleHBlY3Q9IiIiPGJpYmwgaWQ9IkFobyIga2V5PSJBaG8vVWxsbWFuIj5BaG8sIEFsZnJlZCBWLiwgCitSYXZpIFNldGhpLCBhbmQgSmVmZnJleSBELiBVbGxtYW4uCis8ZW1waD5Db21waWxlcnM6ICBQcmluY2lwbGVzLCBUZWNobmlxdWVzLCBhbmQgVG9vbHM8L2VtcGg+LgorUmVhZGluZzogIEFkZGlzb24tV2VzbGV5LCAxOTg2LCBycHQuIGNvcnIuIDE5ODguPC9iaWJsPiIiIgorCitmID0gb3BlbignLi4vLi4vdGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbCcpCitpbnB1dCA9IGxpYnhtbDIuaW5wdXRCdWZmZXIoZikKK3JlYWRlciA9IGlucHV0Lm5ld1RleHRSZWFkZXIoIlJFQyIpCityZXM9IiIKK3doaWxlIHJlYWRlci5SZWFkKCk6CisgICAgd2hpbGUgcmVhZGVyLk5hbWUoKSA9PSAnYmlibCc6CisgICAgICAgIG5vZGUgPSByZWFkZXIuRXhwYW5kKCkgICAgICAgICAgICAjIGV4cGFuZCB0aGUgc3VidHJlZQorICAgICAgICBpZiBub2RlLnhwYXRoRXZhbCgiQGlkID0gJ0FobyciKTogIyB1c2UgWFBhdGggb24gaXQKKyAgICAgICAgICAgIHJlcyA9IHJlcyArIG5vZGUuc2VyaWFsaXplKCkKKyAgICAgICAgaWYgcmVhZGVyLk5leHQoKSAhPSAxOiAgICAgICAgICAgICMgc2tpcCB0aGUgc3VidHJlZQorICAgICAgICAgICAgYnJlYWs7CisKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgIkVycm9yOiBkaWRuJ3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQiCisgICAgcHJpbnQgImdvdCAnJXMnIiAlIChyZXMpCisgICAgcHJpbnQgImV4cGVjdGVkICclcyciICUgKGV4cGVjdCkKKyAgICAKKworIworIyBjbGVhbnVwCisjCitkZWwgaW5wdXQKK2RlbCByZWFkZXIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlcjYucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXI2LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhMzQ2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXI2LnB5CkBAIC0wLDAgKzEsMTIzIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyB0aGlzIHRlc3RzIHRoZSBlbnRpdGllcyBzdWJzdGl0dXRpb25zIHdpdGggdGhlIFhtbFRleHRSZWFkZXIgaW50ZXJmYWNlCisjCitpbXBvcnQgc3lzCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBsaWJ4bWwyCisKK3NjaGVtYT0iIiI8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIKKyAgICAgICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgPG9uZU9yTW9yZT4KKyAgICA8ZWxlbWVudCBuYW1lPSJsYWJlbCI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICAgIDxvcHRpb25hbD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im9wdCI+CisgICAgICAgIDxlbXB0eS8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKyAgICA8ZWxlbWVudCBuYW1lPSJpdGVtIj4KKyAgICAgIDxkYXRhIHR5cGU9ImJ5dGUiLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvb25lT3JNb3JlPgorPC9lbGVtZW50PgorIiIiCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCisjCisjIFBhcnNlIHRoZSBSZWxheCBORyBTY2hlbWFzCisjIAorcm5ncCA9IGxpYnhtbDIucmVsYXhOR05ld01lbVBhcnNlckN0eHQoc2NoZW1hLCBsZW4oc2NoZW1hKSkKK3JuZ3MgPSBybmdwLnJlbGF4TkdQYXJzZSgpCitkZWwgcm5ncAorCisjCisjIFBhcnNlIGFuZCB2YWxpZGF0ZSB0aGUgY29ycmVjdCBkb2N1bWVudAorIworZG9jc3RyPSIiIjxmb28+Cis8bGFiZWw+c29tZSB0ZXh0PC9sYWJlbD4KKzxpdGVtPjEwMDwvaXRlbT4KKzwvZm9vPiIiIgorCitmID0gU3RyaW5nSU8uU3RyaW5nSU8oZG9jc3RyKQoraW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKGYpCityZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJjb3JyZWN0IikKK3JlYWRlci5SZWxheE5HU2V0U2NoZW1hKHJuZ3MpCityZXQgPSByZWFkZXIuUmVhZCgpCit3aGlsZSByZXQgPT0gMToKKyAgICByZXQgPSByZWFkZXIuUmVhZCgpCisKK2lmIHJldCAhPSAwOgorICAgIHByaW50ICJFcnJvciBwYXJzaW5nIHRoZSBkb2N1bWVudCIKKyAgICBzeXMuZXhpdCgxKQorCitpZiByZWFkZXIuSXNWYWxpZCgpICE9IDE6CisgICAgcHJpbnQgIkRvY3VtZW50IGZhaWxlZCB0byB2YWxpZGF0ZSIKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIFBhcnNlIGFuZCB2YWxpZGF0ZSB0aGUgaW5jb3JyZWN0IGRvY3VtZW50CisjCitkb2NzdHI9IiIiPGZvbz4KKzxsYWJlbD5zb21lIHRleHQ8L2xhYmVsPgorPGl0ZW0+MTAwMDwvaXRlbT4KKzwvZm9vPiIiIgorCitlcnI9IiIKKyMgUk5HIGVycm9ycyBhcmUgbm90IGFzIGdvb2QgYXMgYmVmb3JlICwgVE9ETworI2V4cGVjdD0iIiJSTkcgdmFsaWRpdHkgZXJyb3I6IGZpbGUgZXJyb3IgbGluZSAzIGVsZW1lbnQgdGV4dAorI1R5cGUgYnl0ZSBkb2Vzbid0IGFsbG93IHZhbHVlICcxMDAwJworI1JORyB2YWxpZGl0eSBlcnJvcjogZmlsZSBlcnJvciBsaW5lIDMgZWxlbWVudCB0ZXh0CisjRXJyb3IgdmFsaWRhdGluZyBkYXRhdHlwZSBieXRlCisjUk5HIHZhbGlkaXR5IGVycm9yOiBmaWxlIGVycm9yIGxpbmUgMyBlbGVtZW50IHRleHQKKyNFbGVtZW50IGl0ZW0gZmFpbGVkIHRvIHZhbGlkYXRlIGNvbnRlbnQKKyMiIiIKK2V4cGVjdD0iIiJUeXBlIGJ5dGUgZG9lc24ndCBhbGxvdyB2YWx1ZSAnMTAwMCcKK0Vycm9yIHZhbGlkYXRpbmcgZGF0YXR5cGUgYnl0ZQorRWxlbWVudCBpdGVtIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisiIiIKKworZGVmIGNhbGxiYWNrKGN0eCwgc3RyKToKKyAgICBnbG9iYWwgZXJyCisgICAgZXJyID0gZXJyICsgIiVzIiAlIChzdHIpCitsaWJ4bWwyLnJlZ2lzdGVyRXJyb3JIYW5kbGVyKGNhbGxiYWNrLCAiIikKKworZiA9IFN0cmluZ0lPLlN0cmluZ0lPKGRvY3N0cikKK2lucHV0ID0gbGlieG1sMi5pbnB1dEJ1ZmZlcihmKQorcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigiZXJyb3IiKQorcmVhZGVyLlJlbGF4TkdTZXRTY2hlbWEocm5ncykKK3JldCA9IHJlYWRlci5SZWFkKCkKK3doaWxlIHJldCA9PSAxOgorICAgIHJldCA9IHJlYWRlci5SZWFkKCkKKworaWYgcmV0ICE9IDA6CisgICAgcHJpbnQgIkVycm9yIHBhcnNpbmcgdGhlIGRvY3VtZW50IgorICAgIHN5cy5leGl0KDEpCisKK2lmIHJlYWRlci5Jc1ZhbGlkKCkgIT0gMDoKKyAgICBwcmludCAiRG9jdW1lbnQgZmFpbGVkIHRvIGRldGVjdCB0aGUgdmFsaWRhdGlvbiBlcnJvciIKKyAgICBzeXMuZXhpdCgxKQorCitpZiBlcnIgIT0gZXhwZWN0OgorICAgIHByaW50ICJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXJyb3IgbWVzc2FnZToiCisgICAgcHJpbnQgZXJyCisgICAgc3lzLmV4aXQoMSkKKworIworIyBjbGVhbnVwCisjCitkZWwgZgorZGVsIGlucHV0CitkZWwgcmVhZGVyCitkZWwgcm5ncworbGlieG1sMi5yZWxheE5HQ2xlYW51cFR5cGVzKCkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlcjcucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXI3LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1YTQyNmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXI3LnB5CkBAIC0wLDAgKzEsMTAyIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyB0aGlzIHRlc3RzIHRoZSBlbnRpdGllcyBzdWJzdGl0dXRpb25zIHdpdGggdGhlIFhtbFRleHRSZWFkZXIgaW50ZXJmYWNlCisjCitpbXBvcnQgc3lzCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK3Jlc3VsdCA9ICIiCitkZWYgcHJvY2Vzc05vZGUocmVhZGVyKToKKyAgICBnbG9iYWwgcmVzdWx0CisKKyAgICByZXN1bHQgPSByZXN1bHQgKyAiJWQgJWQgJXMgJWRcbiIgJSAocmVhZGVyLkRlcHRoKCksIHJlYWRlci5Ob2RlVHlwZSgpLAorCQkJICAgcmVhZGVyLk5hbWUoKSwgcmVhZGVyLklzRW1wdHlFbGVtZW50KCkpCisKKyMKKyMgUGFyc2UgYSBkb2N1bWVudCB0ZXN0aW5nIHRoZSByZWFkZXJGb3J4eHggQVBJCisjCitkb2NzdHI9IiIiPGZvbz4KKzxsYWJlbD5zb21lIHRleHQ8L2xhYmVsPgorPGl0ZW0+MTAwPC9pdGVtPgorPC9mb28+IiIiCitleHBlY3Q9IiIiMCAxIGZvbyAwCisxIDE0ICN0ZXh0IDAKKzEgMSBsYWJlbCAwCisyIDMgI3RleHQgMAorMSAxNSBsYWJlbCAwCisxIDE0ICN0ZXh0IDAKKzEgMSBpdGVtIDAKKzIgMyAjdGV4dCAwCisxIDE1IGl0ZW0gMAorMSAxNCAjdGV4dCAwCiswIDE1IGZvbyAwCisiIiIKK3Jlc3VsdCA9ICIiCisKK3JlYWRlciA9IGxpYnhtbDIucmVhZGVyRm9yRG9jKGRvY3N0ciwgInRlc3QxIiwgTm9uZSwgMCkKK3JldCA9IHJlYWRlci5SZWFkKCkKK3doaWxlIHJldCA9PSAxOgorICAgIHByb2Nlc3NOb2RlKHJlYWRlcikKKyAgICByZXQgPSByZWFkZXIuUmVhZCgpCisKK2lmIHJldCAhPSAwOgorICAgIHByaW50ICJFcnJvciBwYXJzaW5nIHRoZSBkb2N1bWVudCB0ZXN0MSIKKyAgICBzeXMuZXhpdCgxKQorCitpZiByZXN1bHQgIT0gZXhwZWN0OgorICAgIHByaW50ICJVbmV4cGVjdGVkIHJlc3VsdCBmb3IgdGVzdDEiCisgICAgcHJpbnQgcmVzdWx0CisgICAgc3lzLmV4aXQoMSkKKworIworIyBSZXVzZSB0aGUgcmVhZGVyIGZvciBhbm90aGVyIGRvY3VtZW50IHRlc3RpbmcgdGhlIFJlYWRlck5ld3h4eCBBUEkKKyMKK2RvY3N0cj0iIiI8Zm9vPgorPGxhYmVsPnNvbWUgdGV4dDwvbGFiZWw+Cis8aXRlbT4xMDAwPC9pdGVtPgorPC9mb28+IiIiCitleHBlY3Q9IiIiMCAxIGZvbyAwCisxIDE0ICN0ZXh0IDAKKzEgMSBsYWJlbCAwCisyIDMgI3RleHQgMAorMSAxNSBsYWJlbCAwCisxIDE0ICN0ZXh0IDAKKzEgMSBpdGVtIDAKKzIgMyAjdGV4dCAwCisxIDE1IGl0ZW0gMAorMSAxNCAjdGV4dCAwCiswIDE1IGZvbyAwCisiIiIKK3Jlc3VsdCA9ICIiCisKK3JlYWRlci5OZXdEb2MoZG9jc3RyLCAidGVzdDIiLCBOb25lLCAwKQorcmV0ID0gcmVhZGVyLlJlYWQoKQord2hpbGUgcmV0ID09IDE6CisgICAgcHJvY2Vzc05vZGUocmVhZGVyKQorICAgIHJldCA9IHJlYWRlci5SZWFkKCkKKworaWYgcmV0ICE9IDA6CisgICAgcHJpbnQgIkVycm9yIHBhcnNpbmcgdGhlIGRvY3VtZW50IHRlc3QyIgorICAgIHN5cy5leGl0KDEpCisKK2lmIHJlc3VsdCAhPSBleHBlY3Q6CisgICAgcHJpbnQgIlVuZXhwZWN0ZWQgcmVzdWx0IGZvciB0ZXN0MiIKKyAgICBwcmludCByZXN1bHQKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIGNsZWFudXAKKyMKK2RlbCByZWFkZXIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlcjgucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXI4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUzYjdmMjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXI4LnB5CkBAIC0wLDAgKzEsMzcgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CisjCisjIHRoaXMgdGVzdHMgdGhlIGVudGl0aWVzIHN1YnN0aXR1dGlvbnMgd2l0aCB0aGUgWG1sVGV4dFJlYWRlciBpbnRlcmZhY2UKKyMKK2ltcG9ydCBzeXMKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworIworIyBQYXJzZSBhIGRvY3VtZW50IHRlc3RpbmcgdGhlIENsb3NlKCkgQVBJCisjCitkb2NzdHI9IiIiPGZvbz4KKzxsYWJlbD5zb21lIHRleHQ8L2xhYmVsPgorPGl0ZW0+MTAwPC9pdGVtPgorPC9mb28+IiIiCisKK3JlYWRlciA9IGxpYnhtbDIucmVhZGVyRm9yRG9jKGRvY3N0ciwgInRlc3QxIiwgTm9uZSwgMCkKK3JldCA9IHJlYWRlci5SZWFkKCkKK3JldCA9IHJlYWRlci5SZWFkKCkKK3JldCA9IHJlYWRlci5DbG9zZSgpCisKK2lmIHJldCAhPSAwOgorICAgIHByaW50ICJFcnJvciBjbG9zaW5nIHRoZSBkb2N1bWVudCB0ZXN0MSIKKyAgICBzeXMuZXhpdCgxKQorCitkZWwgcmVhZGVyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXJlcnIucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXJlcnIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRhZDM2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlYWRlcmVyci5weQpAQCAtMCwwICsxLDUxIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyB0aGlzIHRlc3RzIHRoZSBiYXNpYyBBUElzIG9mIHRoZSBYbWxUZXh0UmVhZGVyIGludGVyZmFjZQorIworaW1wb3J0IGxpYnhtbDIKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHN5cworCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitleHBlY3Q9IiIiLS0+ICgzKSB0ZXN0MToxOnhtbG5zOiBVUkkgZm9vIGlzIG5vdCBhYnNvbHV0ZQorLS0+ICg0KSB0ZXN0MToxOk9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IGMgbGluZSAxIGFuZCBhCisiIiIKK2Vycj0iIgorZGVmIG15RXJyb3JIYW5kbGVyKGFyZyxtc2csc2V2ZXJpdHksbG9jYXRvcik6CisgICAgZ2xvYmFsIGVycgorICAgIGVyciA9IGVyciArICIlcyAoJWQpICVzOiVkOiVzIiAlIChhcmcsc2V2ZXJpdHksbG9jYXRvci5CYXNlVVJJKCksbG9jYXRvci5MaW5lTnVtYmVyKCksbXNnKQorCitmID0gU3RyaW5nSU8uU3RyaW5nSU8oIiIiPGEgeG1sbnM9ImZvbyI+PGIgYjE9ImIxIi8+PGM+Y29udGVudCBvZiBjPC9hPiIiIikKK2lucHV0ID0gbGlieG1sMi5pbnB1dEJ1ZmZlcihmKQorcmVhZGVyID0gaW5wdXQubmV3VGV4dFJlYWRlcigidGVzdDEiKQorcmVhZGVyLlNldEVycm9ySGFuZGxlcihteUVycm9ySGFuZGxlciwiLS0+IikKK3doaWxlIHJlYWRlci5SZWFkKCkgPT0gMToKKyAgICBwYXNzCisKK2lmIGVyciAhPSBleHBlY3Q6CisgICAgcHJpbnQgImVycm9yIgorICAgIHByaW50ICJyZWNlaXZlZCAlcyIgJShlcnIpCisgICAgcHJpbnQgImV4cGVjdGVkICVzIiAlKGV4cGVjdCkKKyAgICBzeXMuZXhpdCgxKQorCityZWFkZXIuU2V0RXJyb3JIYW5kbGVyKE5vbmUsTm9uZSkKK2lmIHJlYWRlci5HZXRFcnJvckhhbmRsZXIoKSAhPSAoTm9uZSxOb25lKToKKyAgICBwcmludCAiR2V0RXJyb3JIYW5kbGVyIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIGNsZWFudXAgZm9yIG1lbW9yeSBhbGxvY2F0aW9uIGNvdW50aW5nCisjCitkZWwgZgorZGVsIGlucHV0CitkZWwgcmVhZGVyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWFkZXJuZXh0LnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVybmV4dC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMDFhNDlkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVhZGVybmV4dC5weQpAQCAtMCwwICsxLDgxIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIyAtKi0gY29kaW5nOiBJU08tODg1OS0xIC0qLQorIworIyB0aGlzIHRlc3RzIHRoZSBuZXh0IEFQSSBvZiB0aGUgWG1sVGV4dFJlYWRlciBpbnRlcmZhY2UKKyMKK2ltcG9ydCBsaWJ4bWwyCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBzeXMKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCIiIjxhPjxiPjxjIC8+PC9iPjxkPmNvbnRlbnQgb2YgZDwvZD48L2E+IiIiKQoraW5wdXQgPSBsaWJ4bWwyLmlucHV0QnVmZmVyKGYpCityZWFkZXIgPSBpbnB1dC5uZXdUZXh0UmVhZGVyKCJ0ZXN0X25leHQiKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3RfbmV4dDogRXJyb3IgcmVhZGluZyB0byBmaXJzdCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJhIiBvciByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKSAhPSAwIG9yIFwKKyAgIHJlYWRlci5Ob2RlVHlwZSgpICE9IDEgb3IgcmVhZGVyLkhhc0F0dHJpYnV0ZXMoKSAhPSAwOgorICAgIHByaW50ICJ0ZXN0X25leHQ6IEVycm9yIHJlYWRpbmcgdGhlIGZpcnN0IGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0X25leHQ6IEVycm9yIHJlYWRpbmcgdG8gc2Vjb25kIGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlYWRlci5OYW1lKCkgIT0gImIiIG9yIHJlYWRlci5Jc0VtcHR5RWxlbWVudCgpICE9IDAgb3IgXAorICAgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMSBvciByZWFkZXIuSGFzQXR0cmlidXRlcygpICE9IDA6CisgICAgcHJpbnQgInRlc3RfbmV4dDogRXJyb3IgcmVhZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0X25leHQ6IEVycm9yIHJlYWRpbmcgdG8gdGhpcmQgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiYyIgb3IgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMSBvciBcCisgICByZWFkZXIuSGFzQXR0cmlidXRlcygpICE9IDA6CisgICAgcHJpbnQgInRlc3RfbmV4dDogRXJyb3IgcmVhZGluZyB0aGUgdGhpcmQgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQorcmV0ID0gcmVhZGVyLlJlYWQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3RfbmV4dDogRXJyb3IgcmVhZGluZyB0byBlbmQgb2YgdGhpcmQgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiYiIgb3IgcmVhZGVyLk5vZGVUeXBlKCkgIT0gMTU6CisgICAgcHJpbnQgInRlc3RfbmV4dDogRXJyb3IgcmVhZGluZyB0byBlbmQgb2Ygc2Vjb25kIGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5OZXh0KCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJ0ZXN0X25leHQ6IEVycm9yIG1vdmluZyB0byB0aGlyZCBlbGVtZW50IgorICAgIHN5cy5leGl0KDEpCitpZiByZWFkZXIuTmFtZSgpICE9ICJkIiBvciByZWFkZXIuSXNFbXB0eUVsZW1lbnQoKSAhPSAwIG9yIFwKKyAgIHJlYWRlci5Ob2RlVHlwZSgpICE9IDEgb3IgcmVhZGVyLkhhc0F0dHJpYnV0ZXMoKSAhPSAwOgorICAgIHByaW50ICJ0ZXN0X25leHQ6IEVycm9yIHJlYWRpbmcgdGhpcmQgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQorcmV0ID0gcmVhZGVyLk5leHQoKQoraWYgcmV0ICE9IDE6CisgICAgcHJpbnQgInRlc3RfbmV4dDogRXJyb3IgcmVhZGluZyB0byBlbmQgb2YgZmlyc3QgZWxlbWVudCIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVhZGVyLk5hbWUoKSAhPSAiYSIgb3IgcmVhZGVyLklzRW1wdHlFbGVtZW50KCkgIT0gMCBvciBcCisgICByZWFkZXIuTm9kZVR5cGUoKSAhPSAxNSBvciByZWFkZXIuSGFzQXR0cmlidXRlcygpICE9IDA6CisgICAgcHJpbnQgInRlc3RfbmV4dDogRXJyb3IgcmVhZGluZyB0aGUgZW5kIG9mIGZpcnN0IGVsZW1lbnQiCisgICAgc3lzLmV4aXQoMSkKK3JldCA9IHJlYWRlci5SZWFkKCkKK2lmIHJldCAhPSAwOgorICAgIHByaW50ICJ0ZXN0X25leHQ6IEVycm9yIHJlYWRpbmcgdG8gZW5kIG9mIGRvY3VtZW50IgorICAgIHN5cy5leGl0KDEpCisKKyMKKyMgY2xlYW51cCBmb3IgbWVtb3J5IGFsbG9jYXRpb24gY291bnRpbmcKKyMKK2RlbCBmCitkZWwgaW5wdXQKK2RlbCByZWFkZXIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlZ2V4cC5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlZ2V4cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzA1NTAyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVnZXhwLnB5CkBAIC0wLDAgKzEsMzIgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgbGlieG1sMgorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCityZSA9IGxpYnhtbDIucmVnZXhwQ29tcGlsZSgiYXxiIikKK2lmIHJlLnJlZ2V4cEV4ZWMoImEiKSAhPSAxOgorICAgIHByaW50ICJlcnJvciBjaGVja2luZyAnYSciCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlLnJlZ2V4cEV4ZWMoImIiKSAhPSAxOgorICAgIHByaW50ICJlcnJvciBjaGVja2luZyAnYiciCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlLnJlZ2V4cEV4ZWMoImFiIikgIT0gMDoKKyAgICBwcmludCAiZXJyb3IgY2hlY2tpbmcgJ2FiJyIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmUucmVnZXhwRXhlYygiIikgIT0gMDoKKyAgICBwcmludCAiZXJyb3IgY2hlY2tpbmcgJ2FiJyIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmUucmVnZXhwSXNEZXRlcm1pbmlzdCgpICE9IDE6CisgICAgcHJpbnQgImVycm9yIGNoZWNraW5nIGRldGVybWluaXNtIgorICAgIHN5cy5leGl0KDEpCitkZWwgcmUKKyAgICAKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3JlbGF4bmcucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWxheG5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjODM2MzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9yZWxheG5nLnB5CkBAIC0wLDAgKzEsNDggQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgbGlieG1sMgoraW1wb3J0IHN5cworCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitzY2hlbWE9IiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZWxlbWVudCBuYW1lPSJmb28iCisgICAgICAgICB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgICAgICAgICB4bWxuczphPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvYW5ub3RhdGlvbi8xLjAiCisgICAgICAgICB4bWxuczpleDE9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjEiCisgICAgICAgICB4bWxuczpleDI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjIiPgorICA8YTpkb2N1bWVudGF0aW9uPkEgZm9vIGVsZW1lbnQuPC9hOmRvY3VtZW50YXRpb24+CisgIDxlbGVtZW50IG5hbWU9ImV4MTpiYXIxIj4KKyAgICA8ZW1wdHkvPgorICA8L2VsZW1lbnQ+CisgIDxlbGVtZW50IG5hbWU9ImV4MjpiYXIyIj4KKyAgICA8ZW1wdHkvPgorICA8L2VsZW1lbnQ+Cis8L2VsZW1lbnQ+CisiIiIKK2luc3RhbmNlPSIiIjw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbz48cHJlMTpiYXIxIHhtbG5zOnByZTE9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjEiLz48cHJlMjpiYXIyIHhtbG5zOnByZTI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjIiLz48L2Zvbz4iIiIKKworcm5ncCA9IGxpYnhtbDIucmVsYXhOR05ld01lbVBhcnNlckN0eHQoc2NoZW1hLCBsZW4oc2NoZW1hKSkKK3JuZ3MgPSBybmdwLnJlbGF4TkdQYXJzZSgpCitjdHh0ID0gcm5ncy5yZWxheE5HTmV3VmFsaWRDdHh0KCkKK2RvYyA9IGxpYnhtbDIucGFyc2VEb2MoaW5zdGFuY2UpCityZXQgPSBkb2MucmVsYXhOR1ZhbGlkYXRlRG9jKGN0eHQpCitpZiByZXQgIT0gMDoKKyAgICBwcmludCAiZXJyb3IgZG9pbmcgUmVsYXhORyB2YWxpZGF0aW9uIgorICAgIHN5cy5leGl0KDEpCisKK2RvYy5mcmVlRG9jKCkKK2RlbCBybmdwCitkZWwgcm5ncworZGVsIGN0eHQKK2xpYnhtbDIucmVsYXhOR0NsZWFudXBUeXBlcygpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3Jlc29sdmVyLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvcmVzb2x2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWY0YTQ3OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3Jlc29sdmVyLnB5CkBAIC0wLDAgKzEsMzkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgc3lzCitpbXBvcnQgbGlieG1sMgoraW1wb3J0IFN0cmluZ0lPCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2RlZiBteVJlc29sdmVyKFVSTCwgSUQsIGN0eHQpOgorICAgIHJldHVybihTdHJpbmdJTy5TdHJpbmdJTygiPGZvby8+IikpCisKK2xpYnhtbDIuc2V0RW50aXR5TG9hZGVyKG15UmVzb2x2ZXIpCisKK2RvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJkb2Vzbm90ZXhpc3QueG1sIikKK3Jvb3QgPSBkb2MuY2hpbGRyZW4KK2lmIHJvb3QubmFtZSAhPSAiZm9vIjoKKyAgICBwcmludCAicm9vdCBlbGVtZW50IG5hbWUgZXJyb3IiCisgICAgc3lzLmV4aXQoMSkKK2RvYy5mcmVlRG9jKCkKKworaSA9IDAKK3doaWxlIGkgPCA1MDAwOgorICAgIGRvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJkb2Vzbm90ZXhpc3QueG1sIikKKyAgICByb290ID0gZG9jLmNoaWxkcmVuCisgICAgaWYgcm9vdC5uYW1lICE9ICJmb28iOgorICAgICAgICBwcmludCAicm9vdCBlbGVtZW50IG5hbWUgZXJyb3IiCisgICAgICAgIHN5cy5leGl0KDEpCisgICAgZG9jLmZyZWVEb2MoKQorICAgIGkgPSBpICsgMQorCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3NjaGVtYS5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3NjaGVtYS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZmE4NDIzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvc2NoZW1hLnB5CkBAIC0wLDAgKzEsNTIgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgbGlieG1sMgoraW1wb3J0IHN5cworCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitzY2hlbWE9IiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PgorPHNjaGVtYSB4bWxucyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisJPGVsZW1lbnQgbmFtZSA9ICJDdXN0b21lciI+CisJCTxjb21wbGV4VHlwZT4KKwkJCTxzZXF1ZW5jZT4KKwkJCQk8ZWxlbWVudCBuYW1lID0gIkZpcnN0TmFtZSIgdHlwZSA9ICJzdHJpbmciIC8+CisJCQkJPGVsZW1lbnQgbmFtZSA9ICJNaWRkbGVJbml0aWFsIiB0eXBlID0gInN0cmluZyIgLz4KKwkJCQk8ZWxlbWVudCBuYW1lID0gIkxhc3ROYW1lIiB0eXBlID0gInN0cmluZyIgLz4KKwkJCTwvc2VxdWVuY2U+CisJCQk8YXR0cmlidXRlIG5hbWUgPSAiY3VzdG9tZXJJRCIgdHlwZSA9ICJpbnRlZ2VyIiAvPgorCQk8L2NvbXBsZXhUeXBlPgorCTwvZWxlbWVudD4KKzwvc2NoZW1hPiIiIgorCitpbnN0YW5jZT0iIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJpc28tODg1OS0xIj8+Cis8Q3VzdG9tZXIgY3VzdG9tZXJJRCA9ICIyNDMzMiI+CisJPEZpcnN0TmFtZT5SYXltb25kPC9GaXJzdE5hbWU+CisJPE1pZGRsZUluaXRpYWw+RzwvTWlkZGxlSW5pdGlhbD4KKwk8TGFzdE5hbWU+QmF5bGlzczwvTGFzdE5hbWU+Cis8L0N1c3RvbWVyPgkKKyIiIgorCitjdHh0X3BhcnNlciA9IGxpYnhtbDIuc2NoZW1hTmV3TWVtUGFyc2VyQ3R4dChzY2hlbWEsIGxlbihzY2hlbWEpKQorY3R4dF9zY2hlbWEgPSBjdHh0X3BhcnNlci5zY2hlbWFQYXJzZSgpCitjdHh0X3ZhbGlkICA9IGN0eHRfc2NoZW1hLnNjaGVtYU5ld1ZhbGlkQ3R4dCgpCitkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorcmV0ID0gZG9jLnNjaGVtYVZhbGlkYXRlRG9jKGN0eHRfdmFsaWQpCitpZiByZXQgIT0gMDoKKyAgICBwcmludCAiZXJyb3IgZG9pbmcgc2NoZW1hIHZhbGlkYXRpb24iCisgICAgc3lzLmV4aXQoMSkKKworZG9jLmZyZWVEb2MoKQorZGVsIGN0eHRfcGFyc2VyCitkZWwgY3R4dF9zY2hlbWEKK2RlbCBjdHh0X3ZhbGlkCitsaWJ4bWwyLnNjaGVtYUNsZWFudXBUeXBlcygpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3NlcmlhbGl6ZS5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3NlcmlhbGl6ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Yjk2OWE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvc2VyaWFsaXplLnB5CkBAIC0wLDAgKzEsMTUwIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQoraW1wb3J0IHN5cworaW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworIworIyBUZXN0aW5nIFhNTCBkb2N1bWVudCBzZXJpYWxpemF0aW9uCisjCitkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKCIiIjxyb290Pjxmb28+aGVsbG88L2Zvbz48L3Jvb3Q+IiIiKQorc3RyID0gZG9jLnNlcmlhbGl6ZSgpCitpZiBzdHIgIT0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cm9vdD48Zm9vPmhlbGxvPC9mb28+PC9yb290PgorIiIiOgorICAgcHJpbnQgImVycm9yIHNlcmlhbGl6aW5nIFhNTCBkb2N1bWVudCAxIgorICAgc3lzLmV4aXQoMSkKK3N0ciA9IGRvYy5zZXJpYWxpemUoImlzby04ODU5LTEiKQoraWYgc3RyICE9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4KKzxyb290Pjxmb28+aGVsbG88L2Zvbz48L3Jvb3Q+CisiIiI6CisgICBwcmludCAiZXJyb3Igc2VyaWFsaXppbmcgWE1MIGRvY3VtZW50IDIiCisgICBzeXMuZXhpdCgxKQorc3RyID0gZG9jLnNlcmlhbGl6ZShmb3JtYXQ9MSkKK2lmIHN0ciAhPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxyb290PgorICA8Zm9vPmhlbGxvPC9mb28+Cis8L3Jvb3Q+CisiIiI6CisgICBwcmludCAiZXJyb3Igc2VyaWFsaXppbmcgWE1MIGRvY3VtZW50IDMiCisgICBzeXMuZXhpdCgxKQorc3RyID0gZG9jLnNlcmlhbGl6ZSgiaXNvLTg4NTktMSIsIDEpCitpZiBzdHIgIT0gIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PgorPHJvb3Q+CisgIDxmb28+aGVsbG88L2Zvbz4KKzwvcm9vdD4KKyIiIjoKKyAgIHByaW50ICJlcnJvciBzZXJpYWxpemluZyBYTUwgZG9jdW1lbnQgNCIKKyAgIHN5cy5leGl0KDEpCisKKyMKKyMgVGVzdCBzZXJpYWxpemluZyBhIHN1Ym5vZGUKKyMKK3Jvb3QgPSBkb2MuZ2V0Um9vdEVsZW1lbnQoKQorc3RyID0gcm9vdC5zZXJpYWxpemUoKQoraWYgc3RyICE9ICIiIjxyb290Pjxmb28+aGVsbG88L2Zvbz48L3Jvb3Q+IiIiOgorICAgcHJpbnQgImVycm9yIHNlcmlhbGl6aW5nIFhNTCByb290IDEiCisgICBzeXMuZXhpdCgxKQorc3RyID0gcm9vdC5zZXJpYWxpemUoImlzby04ODU5LTEiKQoraWYgc3RyICE9ICIiIjxyb290Pjxmb28+aGVsbG88L2Zvbz48L3Jvb3Q+IiIiOgorICAgcHJpbnQgImVycm9yIHNlcmlhbGl6aW5nIFhNTCByb290IDIiCisgICBzeXMuZXhpdCgxKQorc3RyID0gcm9vdC5zZXJpYWxpemUoZm9ybWF0PTEpCitpZiBzdHIgIT0gIiIiPHJvb3Q+CisgIDxmb28+aGVsbG88L2Zvbz4KKzwvcm9vdD4iIiI6CisgICBwcmludCAiZXJyb3Igc2VyaWFsaXppbmcgWE1MIHJvb3QgMyIKKyAgIHN5cy5leGl0KDEpCitzdHIgPSByb290LnNlcmlhbGl6ZSgiaXNvLTg4NTktMSIsIDEpCitpZiBzdHIgIT0gIiIiPHJvb3Q+CisgIDxmb28+aGVsbG88L2Zvbz4KKzwvcm9vdD4iIiI6CisgICBwcmludCAiZXJyb3Igc2VyaWFsaXppbmcgWE1MIHJvb3QgNCIKKyAgIHN5cy5leGl0KDEpCitkb2MuZnJlZURvYygpCisKKyMKKyMgVGVzdGluZyBIVE1MIGRvY3VtZW50IHNlcmlhbGl6YXRpb24KKyMKK2RvYyA9IGxpYnhtbDIuaHRtbFBhcnNlRG9jKCIiIjxodG1sPjxoZWFkPjx0aXRsZT5IZWxsbzwvdGl0bGU+PGJvZHk+PHA+aGVsbG88L2JvZHk+PC9odG1sPiIiIiwgTm9uZSkKK3N0ciA9IGRvYy5zZXJpYWxpemUoKQoraWYgc3RyICE9ICIiIjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzxodG1sPjxoZWFkPjx0aXRsZT5IZWxsbzwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPmhlbGxvPC9wPjwvYm9keT48L2h0bWw+CisiIiI6CisgICBwcmludCAiZXJyb3Igc2VyaWFsaXppbmcgSFRNTCBkb2N1bWVudCAxIgorICAgc3lzLmV4aXQoMSkKK3N0ciA9IGRvYy5zZXJpYWxpemUoIklTTy04ODU5LTEiKQoraWYgc3RyICE9ICIiIjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5IZWxsbzwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPmhlbGxvPC9wPjwvYm9keT48L2h0bWw+CisiIiI6CisgICBwcmludCAiZXJyb3Igc2VyaWFsaXppbmcgSFRNTCBkb2N1bWVudCAyIgorICAgc3lzLmV4aXQoMSkKK3N0ciA9IGRvYy5zZXJpYWxpemUoZm9ybWF0PTEpCitpZiBzdHIgIT0gIiIiPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPkhlbGxvPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PjxwPmhlbGxvPC9wPjwvYm9keT4KKzwvaHRtbD4KKyIiIjoKKyAgIHByaW50ICJlcnJvciBzZXJpYWxpemluZyBIVE1MIGRvY3VtZW50IDMiCisgICBzeXMuZXhpdCgxKQorc3RyID0gZG9jLnNlcmlhbGl6ZSgiaXNvLTg4NTktMSIsIDEpCitpZiBzdHIgIT0gIiIiPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgorPHRpdGxlPkhlbGxvPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PjxwPmhlbGxvPC9wPjwvYm9keT4KKzwvaHRtbD4KKyIiIjoKKyAgIHByaW50ICJlcnJvciBzZXJpYWxpemluZyBIVE1MIGRvY3VtZW50IDQiCisgICBzeXMuZXhpdCgxKQorCisjCisjIFRlc3Qgc2VyaWFsaXppbmcgYSBzdWJub2RlCisjCitkb2MuaHRtbFNldE1ldGFFbmNvZGluZyhOb25lKQorcm9vdCA9IGRvYy5nZXRSb290RWxlbWVudCgpCitzdHIgPSByb290LnNlcmlhbGl6ZSgpCitpZiBzdHIgIT0gIiIiPGh0bWw+PGhlYWQ+PHRpdGxlPkhlbGxvPC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+aGVsbG88L3A+PC9ib2R5PjwvaHRtbD4iIiI6CisgICBwcmludCAiZXJyb3Igc2VyaWFsaXppbmcgSFRNTCByb290IDEiCisgICBzeXMuZXhpdCgxKQorc3RyID0gcm9vdC5zZXJpYWxpemUoIklTTy04ODU5LTEiKQoraWYgc3RyICE9ICIiIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPjx0aXRsZT5IZWxsbzwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPmhlbGxvPC9wPjwvYm9keT48L2h0bWw+IiIiOgorICAgcHJpbnQgImVycm9yIHNlcmlhbGl6aW5nIEhUTUwgcm9vdCAyIgorICAgc3lzLmV4aXQoMSkKK3N0ciA9IHJvb3Quc2VyaWFsaXplKGZvcm1hdD0xKQoraWYgc3RyICE9ICIiIjxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT5IZWxsbzwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT48cD5oZWxsbzwvcD48L2JvZHk+Cis8L2h0bWw+IiIiOgorICAgcHJpbnQgImVycm9yIHNlcmlhbGl6aW5nIEhUTUwgcm9vdCAzIgorICAgc3lzLmV4aXQoMSkKK3N0ciA9IHJvb3Quc2VyaWFsaXplKCJpc28tODg1OS0xIiwgMSkKK2lmIHN0ciAhPSAiIiI8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Cis8dGl0bGU+SGVsbG88L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+PHA+aGVsbG88L3A+PC9ib2R5PgorPC9odG1sPiIiIjoKKyAgIHByaW50ICJlcnJvciBzZXJpYWxpemluZyBIVE1MIHJvb3QgNCIKKyAgIHN5cy5leGl0KDEpCisKK2RvYy5mcmVlRG9jKCkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3N5bmMucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9zeW5jLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxNDE4NzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy9zeW5jLnB5CkBAIC0wLDAgKzEsMTM1IEBACisjIS91c3IvYmluL3B5dGhvbiAtdQoraW1wb3J0IHN5cworaW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworbG9nID0gIiIKKworY2xhc3MgY2FsbGJhY2s6CisgICAgZGVmIHN0YXJ0RG9jdW1lbnQoc2VsZik6CisgICAgICAgIGdsb2JhbCBsb2cKKyAgICAgICAgbG9nID0gbG9nICsgInN0YXJ0RG9jdW1lbnQ6IgorCisgICAgZGVmIGVuZERvY3VtZW50KHNlbGYpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJlbmREb2N1bWVudDoiCisKKyAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIHRhZywgYXR0cnMpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJzdGFydEVsZW1lbnQgJXMgJXM6IiAlICh0YWcsIGF0dHJzKQorCisgICAgZGVmIGVuZEVsZW1lbnQoc2VsZiwgdGFnKToKKyAgICAgICAgZ2xvYmFsIGxvZworICAgICAgICBsb2cgPSBsb2cgKyAiZW5kRWxlbWVudCAlczoiICUgKHRhZykKKworICAgIGRlZiBjaGFyYWN0ZXJzKHNlbGYsIGRhdGEpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJjaGFyYWN0ZXJzOiAlczoiICUgKGRhdGEpCisKKyAgICBkZWYgd2FybmluZyhzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJ3YXJuaW5nOiAlczoiICUgKG1zZykKKworICAgIGRlZiBlcnJvcihzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJlcnJvcjogJXM6IiAlIChtc2cpCisKKyAgICBkZWYgZmF0YWxFcnJvcihzZWxmLCBtc2cpOgorICAgICAgICBnbG9iYWwgbG9nCisgICAgICAgIGxvZyA9IGxvZyArICJmYXRhbEVycm9yOiAlczoiICUgKG1zZykKKworaGFuZGxlciA9IGNhbGxiYWNrKCkKKworbG9nPSIiCitjaHVuaz0iIiI8Zm9vPjxiYXIyLz4iIiIKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZVB1c2hQYXJzZXIoaGFuZGxlciwgTm9uZSwgMCwgInRlc3QueG1sIikKK2N0eHQucGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMCkKK2N0eHQ9Tm9uZQorCityZWZlcmVuY2UgPSAic3RhcnREb2N1bWVudDpzdGFydEVsZW1lbnQgZm9vIE5vbmU6c3RhcnRFbGVtZW50IGJhcjIgTm9uZTplbmRFbGVtZW50IGJhcjI6IgoraWYgbG9nICE9IHJlZmVyZW5jZToKKyAgICBwcmludCAiRXJyb3IgZ290OiAlcyIgJSBsb2cKKyAgICBwcmludCAiRXhwcmVjdGVkOiAlcyIgJSByZWZlcmVuY2UKKyAgICBzeXMuZXhpdCgxKQorCitsb2c9IiIKK2NodW5rPSIiIjxmb28+PGJhcjI+PC9iYXIyPiIiIgorY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihoYW5kbGVyLCBOb25lLCAwLCAidGVzdC54bWwiKQorY3R4dC5wYXJzZUNodW5rKGNodW5rLCBsZW4oY2h1bmspLCAwKQorY3R4dD1Ob25lCisKK3JlZmVyZW5jZSA9ICJzdGFydERvY3VtZW50OnN0YXJ0RWxlbWVudCBmb28gTm9uZTpzdGFydEVsZW1lbnQgYmFyMiBOb25lOmVuZEVsZW1lbnQgYmFyMjoiCitpZiBsb2cgIT0gcmVmZXJlbmNlOgorICAgIHByaW50ICJFcnJvciBnb3Q6ICVzIiAlIGxvZworICAgIHByaW50ICJFeHByZWN0ZWQ6ICVzIiAlIHJlZmVyZW5jZQorICAgIHN5cy5leGl0KDEpCisKK2xvZz0iIgorY2h1bms9IiIiPGZvbz48YmFyMj4iIiIKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZVB1c2hQYXJzZXIoaGFuZGxlciwgTm9uZSwgMCwgInRlc3QueG1sIikKK2N0eHQucGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMCkKK2N0eHQ9Tm9uZQorCityZWZlcmVuY2UgPSAic3RhcnREb2N1bWVudDpzdGFydEVsZW1lbnQgZm9vIE5vbmU6c3RhcnRFbGVtZW50IGJhcjIgTm9uZToiCitpZiBsb2cgIT0gcmVmZXJlbmNlOgorICAgIHByaW50ICJFcnJvciBnb3Q6ICVzIiAlIGxvZworICAgIHByaW50ICJFeHByZWN0ZWQ6ICVzIiAlIHJlZmVyZW5jZQorICAgIHN5cy5leGl0KDEpCisKK2xvZz0iIgorY2h1bms9IiIiPGZvbz48YmFyMiBhPSIxIiBiPScyJyAvPiIiIgorY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihoYW5kbGVyLCBOb25lLCAwLCAidGVzdC54bWwiKQorY3R4dC5wYXJzZUNodW5rKGNodW5rLCBsZW4oY2h1bmspLCAwKQorY3R4dD1Ob25lCisKK3JlZmVyZW5jZSA9ICJzdGFydERvY3VtZW50OnN0YXJ0RWxlbWVudCBmb28gTm9uZTpzdGFydEVsZW1lbnQgYmFyMiB7J2EnOiAnMScsICdiJzogJzInfTplbmRFbGVtZW50IGJhcjI6IgoraWYgbG9nICE9IHJlZmVyZW5jZToKKyAgICBwcmludCAiRXJyb3IgZ290OiAlcyIgJSBsb2cKKyAgICBwcmludCAiRXhwcmVjdGVkOiAlcyIgJSByZWZlcmVuY2UKKyAgICBzeXMuZXhpdCgxKQorCitsb2c9IiIKK2NodW5rPSIiIjxmb28+PGJhcjIgYT0iMSIgYj0nMicgPiIiIgorY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihoYW5kbGVyLCBOb25lLCAwLCAidGVzdC54bWwiKQorY3R4dC5wYXJzZUNodW5rKGNodW5rLCBsZW4oY2h1bmspLCAwKQorY3R4dD1Ob25lCisKK3JlZmVyZW5jZSA9ICJzdGFydERvY3VtZW50OnN0YXJ0RWxlbWVudCBmb28gTm9uZTpzdGFydEVsZW1lbnQgYmFyMiB7J2EnOiAnMScsICdiJzogJzInfToiCitpZiBsb2cgIT0gcmVmZXJlbmNlOgorICAgIHByaW50ICJFcnJvciBnb3Q6ICVzIiAlIGxvZworICAgIHByaW50ICJFeHByZWN0ZWQ6ICVzIiAlIHJlZmVyZW5jZQorICAgIHN5cy5leGl0KDEpCisKK2xvZz0iIgorY2h1bms9IiIiPGZvbz48YmFyMiBhPSIxIiBiPScyJyA+PC9iYXIyPiIiIgorY3R4dCA9IGxpYnhtbDIuY3JlYXRlUHVzaFBhcnNlcihoYW5kbGVyLCBOb25lLCAwLCAidGVzdC54bWwiKQorY3R4dC5wYXJzZUNodW5rKGNodW5rLCBsZW4oY2h1bmspLCAwKQorY3R4dD1Ob25lCisKK3JlZmVyZW5jZSA9ICJzdGFydERvY3VtZW50OnN0YXJ0RWxlbWVudCBmb28gTm9uZTpzdGFydEVsZW1lbnQgYmFyMiB7J2EnOiAnMScsICdiJzogJzInfTplbmRFbGVtZW50IGJhcjI6IgoraWYgbG9nICE9IHJlZmVyZW5jZToKKyAgICBwcmludCAiRXJyb3IgZ290OiAlcyIgJSBsb2cKKyAgICBwcmludCAiRXhwcmVjdGVkOiAlcyIgJSByZWZlcmVuY2UKKyAgICBzeXMuZXhpdCgxKQorCitsb2c9IiIKK2NodW5rPSIiIjxmb28+PGJhcjIgYT0iYj0nMScgLz4iIiIKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZVB1c2hQYXJzZXIoaGFuZGxlciwgTm9uZSwgMCwgInRlc3QueG1sIikKK2N0eHQucGFyc2VDaHVuayhjaHVuaywgbGVuKGNodW5rKSwgMCkKK2N0eHQ9Tm9uZQorCityZWZlcmVuY2UgPSAic3RhcnREb2N1bWVudDpzdGFydEVsZW1lbnQgZm9vIE5vbmU6IgoraWYgbG9nICE9IHJlZmVyZW5jZToKKyAgICBwcmludCAiRXJyb3IgZ290OiAlcyIgJSBsb2cKKyAgICBwcmludCAiRXhwcmVjdGVkOiAlcyIgJSByZWZlcmVuY2UKKyAgICBzeXMuZXhpdCgxKQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdGVzdC5kdGQgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90ZXN0LmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjFiNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdGVzdC5kdGQKQEAgLTAsMCArMSBAQAorPCFFTEVNRU5UIGZvbyBFTVBUWT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3RocmVhZDIucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90aHJlYWQyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM4YWM1ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90aHJlYWQyLnB5CkBAIC0wLDAgKzEsOTYgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgc3RyaW5nLCBzeXMsIHRpbWUKK2ltcG9ydCB0aHJlYWQKK2Zyb20gdGhyZWFkaW5nIGltcG9ydCBUaHJlYWQsIExvY2sKKworaW1wb3J0IGxpYnhtbDIKKworVEhSRUFEU19DT1VOVCA9IDE1CisKK2ZhaWxlZCA9IDAKKworY2xhc3MgRXJyb3JIYW5kbGVyOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmVycm9ycyA9IFtdCisgICAgICAgIHNlbGYubG9jayA9IExvY2soKQorCisgICAgZGVmIGhhbmRsZXIoc2VsZixjdHgsc3RyKToKKyAgICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKQorICAgICAgICBzZWxmLmVycm9ycy5hcHBlbmQoc3RyKQorICAgICAgICBzZWxmLmxvY2sucmVsZWFzZSgpCisKK2RlZiBnZXRMaW5lTnVtYmVyc0RlZmF1bHQoKToKKyAgICBvbGQgPSBsaWJ4bWwyLmxpbmVOdW1iZXJzRGVmYXVsdCgwKQorICAgIGxpYnhtbDIubGluZU51bWJlcnNEZWZhdWx0KG9sZCkKKyAgICByZXR1cm4gb2xkCisKK2RlZiB0ZXN0KGV4cGVjdGVkTGluZU51bWJlcnNEZWZhdWx0KToKKyAgICB0aW1lLnNsZWVwKDEpCisgICAgZ2xvYmFsIGZhaWxlZAorICAgICMgY2hlY2sgYSBwZXIgdGhyZWFkLWdsb2JhbAorICAgIGlmIGV4cGVjdGVkTGluZU51bWJlcnNEZWZhdWx0ICE9IGdldExpbmVOdW1iZXJzRGVmYXVsdCgpOgorICAgICAgICBmYWlsZWQgPSAxCisgICAgICAgIHByaW50ICJGQUlMRUQgdG8gb2J0YWluIGNvcnJlY3QgdmFsdWUgZm9yICIgXAorICAgICAgICAgICAgICAibGluZU51bWJlcnNEZWZhdWx0IGluIHRocmVhZCAlZCIgJSB0aHJlYWQuZ2V0X2lkZW50KCkKKyAgICAjIGNoZWNrIHRoZXIgZ2xvYmFsIGVycm9yIGhhbmRsZXIgCisgICAgIyAod2hpY2ggaXMgTk9UIHBlci10aHJlYWQgaW4gdGhlIHB5dGhvbiBiaW5kaW5ncykKKyAgICB0cnk6CisgICAgICAgIGRvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJiYWQueG1sIikKKyAgICBleGNlcHQ6CisgICAgICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgImZhaWxlZCIKKworIyBnbG9iYWwgZXJyb3IgaGFuZGxlcgorZWggPSBFcnJvckhhbmRsZXIoKQorbGlieG1sMi5yZWdpc3RlckVycm9ySGFuZGxlcihlaC5oYW5kbGVyLCIiKQorCisjIHNldCBvbiB0aGUgbWFpbiB0aHJlYWQgb25seQorbGlieG1sMi5saW5lTnVtYmVyc0RlZmF1bHQoMSkgCit0ZXN0KDEpCitlYyA9IGxlbihlaC5lcnJvcnMpCitpZiBlYyA9PSAwOgorICAgIHByaW50ICJGQUlMRUQ6IHNob3VsZCBoYXZlIG9idGFpbmVkIGVycm9ycyIKKyAgICBzeXMuZXhpdCgxKQorCit0cyA9IFtdCitmb3IgaSBpbiByYW5nZShUSFJFQURTX0NPVU5UKToKKyAgICAjIGV4cGVjdCAwIGZvciBsaW5lTnVtYmVyc0RlZmF1bHQgYmVjYXVzZQorICAgICMgdGhlIG5ldyB2YWx1ZSBoYXMgYmVlbiBzZXQgb24gdGhlIG1haW4gdGhyZWFkIG9ubHkKKyAgICB0cy5hcHBlbmQoVGhyZWFkKHRhcmdldD10ZXN0LGFyZ3M9KDAsKSkpCitmb3IgdCBpbiB0czoKKyAgICB0LnN0YXJ0KCkKK2ZvciB0IGluIHRzOgorICAgIHQuam9pbigpCisKK2lmIGxlbihlaC5lcnJvcnMpICE9IGVjK1RIUkVBRFNfQ09VTlQqZWM6CisgICAgcHJpbnQgIkZBSUxFRDogZGlkIG5vdCBvYnRhaW4gdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGVycm9ycyIKKyAgICBzeXMuZXhpdCgxKQorCisjIHNldCBsaW5lTnVtYmVyc0RlZmF1bHQgZm9yIGZ1dHVyZSBuZXcgdGhyZWFkcworbGlieG1sMi50aHJEZWZMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSgxKQordHMgPSBbXQorZm9yIGkgaW4gcmFuZ2UoVEhSRUFEU19DT1VOVCk6CisgICAgIyBleHBlY3QgMSBmb3IgbGluZU51bWJlcnNEZWZhdWx0CisgICAgdHMuYXBwZW5kKFRocmVhZCh0YXJnZXQ9dGVzdCxhcmdzPSgxLCkpKQorZm9yIHQgaW4gdHM6CisgICAgdC5zdGFydCgpCitmb3IgdCBpbiB0czoKKyAgICB0LmpvaW4oKQorCitpZiBsZW4oZWguZXJyb3JzKSAhPSBlYytUSFJFQURTX0NPVU5UKmVjKjI6CisgICAgcHJpbnQgIkZBSUxFRDogZGlkIG5vdCBvYnRhaW4gdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGVycm9ycyIKKyAgICBzeXMuZXhpdCgxKQorCitpZiBmYWlsZWQ6CisgICAgcHJpbnQgIkZBSUxFRCIKKyAgICBzeXMuZXhpdCgxKQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdHN0LnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdHN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1NDBjZGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90c3QucHkKQEAgLTAsMCArMSwyOCBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2RvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJ0c3QueG1sIikKK2lmIGRvYy5uYW1lICE9ICJ0c3QueG1sIjoKKyAgICBwcmludCAiZG9jLm5hbWUgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCityb290ID0gZG9jLmNoaWxkcmVuCitpZiByb290Lm5hbWUgIT0gImRvYyI6CisgICAgcHJpbnQgInJvb3QubmFtZSBmYWlsZWQiCisgICAgc3lzLmV4aXQoMSkKK2NoaWxkID0gcm9vdC5jaGlsZHJlbgoraWYgY2hpbGQubmFtZSAhPSAiZm9vIjoKKyAgICBwcmludCAiY2hpbGQubmFtZSBmYWlsZWQiCisgICAgc3lzLmV4aXQoMSkKK2RvYy5mcmVlRG9jKCkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3RzdC54bWwgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90c3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MWQ0NmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90c3QueG1sCkBAIC0wLDAgKzEgQEAKKzxkb2M+PGZvbz5iYXI8L2Zvbz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3RzdExhc3RFcnJvci5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3RzdExhc3RFcnJvci5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjZlODJjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdHN0TGFzdEVycm9yLnB5CkBAIC0wLDAgKzEsODIgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgc3lzLCB1bml0dGVzdAorCitpbXBvcnQgbGlieG1sMgorCitjbGFzcyBUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgc2VsZi50ZXN0MSgpCisgICAgICAgIHNlbGYudGVzdDIoKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGxpYnhtbDIuY2xlYW51cFBhcnNlcigpCisgICAgICAgIGlmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgIT0gMDoKKyAgICAgICAgICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpIAorICAgICAgICAgICAgc2VsZi5mYWlsKCJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSwpKQorCWVsc2U6CisJICAgIHByaW50ICJPSyIKKworICAgIGRlZiBmYWlsVW5sZXNzWG1sRXJyb3Ioc2VsZixmLGFyZ3MsZXhjLGRvbWFpbixjb2RlLG1lc3NhZ2UsbGV2ZWwsZmlsZSxsaW5lKToKKyAgICAgICAgIiIiUnVuIGZ1bmN0aW9uIGYsIHdpdGggYXJndW1lbnRzIGFyZ3MgYW5kIGV4cGVjdCBhbiBleGNlcHRpb24gZXhjOworICAgICAgICB3aGVuIHRoZSBleGNlcHRpb24gaXMgcmFpc2VkLCBjaGVjayB0aGUgbGlieG1sMi5sYXN0RXJyb3IgZm9yCisgICAgICAgIGV4cGVjdGVkIHZhbHVlcy4iIiIKKyAgICAgICAgIyBkaXNhYmxlIHRoZSBkZWZhdWx0IGVycm9yIGhhbmRsZXIKKyAgICAgICAgbGlieG1sMi5yZWdpc3RlckVycm9ySGFuZGxlcihOb25lLE5vbmUpCisgICAgICAgIHRyeToKKwkgICAgYXBwbHkoZixhcmdzKQorICAgICAgICBleGNlcHQgZXhjOgorICAgICAgICAgICAgZSA9IGxpYnhtbDIubGFzdEVycm9yKCkKKyAgICAgICAgICAgIGlmIGUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoImxhc3RFcnJvciBub3Qgc2V0IikKKyAgICAgICAgICAgIGlmIDA6CisgICAgICAgICAgICAgICAgcHJpbnQgImRvbWFpbiA9ICIsZS5kb21haW4oKQorICAgICAgICAgICAgICAgIHByaW50ICJjb2RlID0gIixlLmNvZGUoKQorICAgICAgICAgICAgICAgIHByaW50ICJtZXNzYWdlID0iLHJlcHIoZS5tZXNzYWdlKCkpCisgICAgICAgICAgICAgICAgcHJpbnQgImxldmVsID0iLGUubGV2ZWwoKQorICAgICAgICAgICAgICAgIHByaW50ICJmaWxlID0iLGUuZmlsZSgpCisgICAgICAgICAgICAgICAgcHJpbnQgImxpbmUgPSIsZS5saW5lKCkKKyAgICAgICAgICAgICAgICBwcmludAorICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzRXF1YWwoZG9tYWluLGUuZG9tYWluKCkpCisgICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3NFcXVhbChjb2RlLGUuY29kZSgpKQorICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzRXF1YWwobWVzc2FnZSxlLm1lc3NhZ2UoKSkKKyAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzc0VxdWFsKGxldmVsLGUubGV2ZWwoKSkKKyAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzc0VxdWFsKGZpbGUsZS5maWxlKCkpCisgICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3NFcXVhbChsaW5lLGUubGluZSgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJleGNlcHRpb24gJXMgc2hvdWxkIGhhdmUgYmVlbiByYWlzZWQiICUgZXhjKQorCisgICAgZGVmIHRlc3QxKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHJlYWRGaWxlIHdpdGggYSBmaWxlIHRoYXQgZG9lcyBub3QgZXhpc3QiIiIKKyAgICAgICAgc2VsZi5mYWlsVW5sZXNzWG1sRXJyb3IobGlieG1sMi5yZWFkRmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgiZHVtbXkueG1sIixOb25lLDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbGlieG1sMi50cmVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICBkb21haW49bGlieG1sMi5YTUxfRlJPTV9JTywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9bGlieG1sMi5YTUxfSU9fTE9BRF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J2ZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSAiZHVtbXkueG1sIlxuJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsPWxpYnhtbDIuWE1MX0VSUl9XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgbGluZT0wKQorCisgICAgZGVmIHRlc3QyKHNlbGYpOgorICAgICAgICAiIiJUZXN0IGEgd2VsbC1mb3JtZWRuZXNzIGVycm9yOiB3ZSBnZXQgdGhlIGxhc3QgZXJyb3Igb25seSIiIgorICAgICAgICBzID0gIjx4PlxuPGE+XG48L3g+IgorICAgICAgICBzZWxmLmZhaWxVbmxlc3NYbWxFcnJvcihsaWJ4bWwyLnJlYWRNZW1vcnksCisgICAgICAgICAgICAgICAgICAgICAgICAocyxsZW4ocyksImR1bW15LnhtbCIsTm9uZSwwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhtbDIudHJlZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluPWxpYnhtbDIuWE1MX0ZST01fUEFSU0VSLAorICAgICAgICAgICAgICAgICAgICAgICAgY29kZT1saWJ4bWwyLlhNTF9FUlJfVEFHX05PVF9GSU5JU0hFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1ByZW1hdHVyZSBlbmQgb2YgZGF0YSBpbiB0YWcgeCBsaW5lIDFcbicsCisgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbD1saWJ4bWwyLlhNTF9FUlJfRkFUQUwsCisgICAgICAgICAgICAgICAgICAgICAgICBmaWxlPSdkdW1teS54bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgbGluZT0zKQorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHRlc3QgPSBUZXN0Q2FzZSgpCisgICAgdGVzdC5zZXRVcCgpCisgICAgdGVzdC50ZXN0MSgpCisgICAgdGVzdC50ZXN0MigpCisgICAgdGVzdC50ZWFyRG93bigpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90c3RVUkkucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90c3RVUkkucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNThiN2FkOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3RzdFVSSS5weQpAQCAtMCwwICsxLDQxIEBACisjIS91c3IvYmluL3B5dGhvbiAtdQoraW1wb3J0IHN5cworaW1wb3J0IGxpYnhtbDIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKwordXJpID0gbGlieG1sMi5wYXJzZVVSSSgiaHR0cDovL2V4YW1wbGUub3JnOjgwODgvZm9vL2Jhcj9xdWVyeT1zaW1wbGUjZnJhZ2lkIikKK2lmIHVyaS5zY2hlbWUoKSAhPSAnaHR0cCc6CisgICAgcHJpbnQgIkVycm9yIHBhcnNpbmcgVVJJOiB3cm9uZyBzY2hlbWUiCisgICAgc3lzLmV4aXQoMSkKK2lmIHVyaS5zZXJ2ZXIoKSAhPSAnZXhhbXBsZS5vcmcnOgorICAgIHByaW50ICJFcnJvciBwYXJzaW5nIFVSSTogd3Jvbmcgc2VydmVyIgorICAgIHN5cy5leGl0KDEpCitpZiB1cmkucG9ydCgpICE9IDgwODg6CisgICAgcHJpbnQgIkVycm9yIHBhcnNpbmcgVVJJOiB3cm9uZyBwb3J0IgorICAgIHN5cy5leGl0KDEpCitpZiB1cmkucGF0aCgpICE9ICcvZm9vL2Jhcic6CisgICAgcHJpbnQgIkVycm9yIHBhcnNpbmcgVVJJOiB3cm9uZyBwYXRoIgorICAgIHN5cy5leGl0KDEpCitpZiB1cmkucXVlcnkoKSAhPSAncXVlcnk9c2ltcGxlJzoKKyAgICBwcmludCAiRXJyb3IgcGFyc2luZyBVUkk6IHdyb25nIHF1ZXJ5IgorICAgIHN5cy5leGl0KDEpCitpZiB1cmkuZnJhZ21lbnQoKSAhPSAnZnJhZ2lkJzoKKyAgICBwcmludCAiRXJyb3IgcGFyc2luZyBVUkk6IHdyb25nIHF1ZXJ5IgorICAgIHN5cy5leGl0KDEpCit1cmkuc2V0U2NoZW1lKCJodHRwcyIpCit1cmkuc2V0UG9ydCgyMjMpCit1cmkuc2V0RnJhZ21lbnQoTm9uZSkKK3Jlc3VsdD11cmkuc2F2ZVVyaSgpCitpZiByZXN1bHQgIT0gImh0dHBzOi8vZXhhbXBsZS5vcmc6MjIzL2Zvby9iYXI/cXVlcnk9c2ltcGxlIjoKKyAgICBwcmludCAiRXJyb3IgbW9kaWZ5aW5nIG9yIHNhdmluZyB0aGUgVVJJIgordXJpID0gTm9uZQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdHN0bWVtLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdHN0bWVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU1MzA5NmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90c3RtZW0ucHkKQEAgLTAsMCArMSwzNiBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBsaWJ4bWwyCitpbXBvcnQgbGlieG1sMm1vZAoraW1wb3J0IHN5cworCitkZWYgZXJyb3IobXNnLCBkYXRhKToKKyAgICBwYXNzCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2R0ZD0iIiI8IUVMRU1FTlQgZm9vIEVNUFRZPiIiIgoraW5zdGFuY2U9IiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vPjwvZm9vPiIiIgorCitkdGQgPSBsaWJ4bWwyLnBhcnNlRFREKE5vbmUsICd0ZXN0LmR0ZCcpCitjdHh0ID0gbGlieG1sMi5uZXdWYWxpZEN0eHQoKQorbGlieG1sMm1vZC54bWxTZXRWYWxpZEVycm9ycyhjdHh0Ll9vLCBlcnJvciwgZXJyb3IpCitkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGluc3RhbmNlKQorcmV0ID0gZG9jLnZhbGlkYXRlRHRkKGN0eHQsIGR0ZCkKK2lmIHJldCAhPSAxOgorICAgIHByaW50ICJlcnJvciBkb2luZyBEVEQgdmFsaWRhdGlvbiIKKyAgICBzeXMuZXhpdCgxKQorCitkb2MuZnJlZURvYygpCitkdGQuZnJlZUR0ZCgpCitkZWwgZHRkCitkZWwgY3R4dAorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKK2lmIGxpYnhtbDIuZGVidWdNZW1vcnkoMSkgPT0gMDoKKyAgICBwcmludCAiT0siCitlbHNlOgorICAgIHByaW50ICJNZW1vcnkgbGVhayAlZCBieXRlcyIgJSAobGlieG1sMi5kZWJ1Z01lbW9yeSgxKSkKKyAgICBsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdHN0eHBhdGgucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy90c3R4cGF0aC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNDdjMzRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdHN0eHBhdGgucHkKQEAgLTAsMCArMSw2MyBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyNtZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuZGVidWdNZW1vcnkoMSkKKworY2FsbGVkID0gIiIKKworZGVmIGZvbyhjdHgsIHgpOgorICAgIGdsb2JhbCBjYWxsZWQKKworICAgICMKKyAgICAjIHRlc3QgdGhhdCBhY2Nlc3MgdG8gdGhlIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dHMKKyAgICAjCisgICAgcGN0eHQgPSBsaWJ4bWwyLnhwYXRoUGFyc2VyQ29udGV4dChfb2JqPWN0eCkKKyAgICBjdHh0ID0gcGN0eHQuY29udGV4dCgpCisgICAgY2FsbGVkID0gY3R4dC5mdW5jdGlvbigpCisgICAgcmV0dXJuIHggKyAxCisKK2RlZiBiYXIoY3R4dCwgeCk6CisgICAgcmV0dXJuICIlZCIgJSAoeCArIDIpCisKK2RvYyA9IGxpYnhtbDIucGFyc2VGaWxlKCJ0c3QueG1sIikKK2N0eHQgPSBkb2MueHBhdGhOZXdDb250ZXh0KCkKK3JlcyA9IGN0eHQueHBhdGhFdmFsKCIvLyoiKQoraWYgbGVuKHJlcykgIT0gMjoKKyAgICBwcmludCAieHBhdGggcXVlcnk6IHdyb25nIG5vZGUgc2V0IHNpemUiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlc1swXS5uYW1lICE9ICJkb2MiIG9yIHJlc1sxXS5uYW1lICE9ICJmb28iOgorICAgIHByaW50ICJ4cGF0aCBxdWVyeTogd3Jvbmcgbm9kZSBzZXQgdmFsdWUiCisgICAgc3lzLmV4aXQoMSkKK2xpYnhtbDIucmVnaXN0ZXJYUGF0aEZ1bmN0aW9uKGN0eHQuX28sICJmb28iLCBOb25lLCBmb28pCitsaWJ4bWwyLnJlZ2lzdGVyWFBhdGhGdW5jdGlvbihjdHh0Ll9vLCAiYmFyIiwgTm9uZSwgYmFyKQoraSA9IDEwMDAwCit3aGlsZSBpID4gMDoKKyAgICByZXMgPSBjdHh0LnhwYXRoRXZhbCgiZm9vKDEpIikKKyAgICBpZiByZXMgIT0gMjoKKyAgICAgICAgcHJpbnQgInhwYXRoIGV4dGVuc2lvbiBmYWlsdXJlIgorICAgICAgICBzeXMuZXhpdCgxKQorICAgIGkgPSBpIC0gMQoraSA9IDEwMDAwCit3aGlsZSBpID4gMDoKKyAgICByZXMgPSBjdHh0LnhwYXRoRXZhbCgiYmFyKDEpIikKKyAgICBpZiByZXMgIT0gIjMiOgorICAgICAgICBwcmludCAieHBhdGggZXh0ZW5zaW9uIGZhaWx1cmUgZ290ICVzIGV4cGVjdGluZyAnMyciCisgICAgICAgIHN5cy5leGl0KDEpCisgICAgaSA9IGkgLSAxCitkb2MuZnJlZURvYygpCitjdHh0LnhwYXRoRnJlZUNvbnRleHQoKQorCitpZiBjYWxsZWQgIT0gImZvbyI6CisgICAgcHJpbnQgInhwYXRoIGZ1bmN0aW9uOiBmYWlsZWQgdG8gYWNjZXNzIHRoZSBjb250ZXh0IgorICAgIHByaW50ICJ4cGF0aCBmdW5jdGlvbjogJXMiICUgKGNhbGxlZCkKKyAgICBzeXMuZXhpdCgxKQorCisjbWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy92YWxpZC54bWwgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy92YWxpZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE3ZjY3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3ZhbGlkLnhtbApAQCAtMCwwICsxLDQgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyBFTVBUWT4KK10+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3ZhbGlkRFRELnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdmFsaWREVEQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTIyMmY5ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3ZhbGlkRFRELnB5CkBAIC0wLDAgKzEsNTkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgbGlieG1sMgoraW1wb3J0IHN5cworCitBUkcgPSAndGVzdCBzdHJpbmcnCisKK2NsYXNzIEVycm9ySGFuZGxlcjoKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5lcnJvcnMgPSBbXQorCisgICAgZGVmIGhhbmRsZXIoc2VsZiwgbXNnLCBkYXRhKToKKyAgICAgICAgaWYgZGF0YSAhPSBBUkc6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24sICJFcnJvciBoYW5kbGVyIGRpZCBub3QgcmVjZWl2ZSBjb3JyZWN0IGFyZ3VtZW50IgorICAgICAgICBzZWxmLmVycm9ycy5hcHBlbmQobXNnKQorCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2R0ZD0iIiI8IUVMRU1FTlQgZm9vIEVNUFRZPiIiIgordmFsaWQ9IiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vPjwvZm9vPiIiIgorCitpbnZhbGlkPSIiIjw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbz48YmFyLz48L2Zvbz4iIiIKKworZHRkID0gbGlieG1sMi5wYXJzZURURChOb25lLCAndGVzdC5kdGQnKQorY3R4dCA9IGxpYnhtbDIubmV3VmFsaWRDdHh0KCkKK2UgPSBFcnJvckhhbmRsZXIoKQorY3R4dC5zZXRWYWxpZGl0eUVycm9ySGFuZGxlcihlLmhhbmRsZXIsIGUuaGFuZGxlciwgQVJHKQorCisjIFRlc3QgdmFsaWQgZG9jdW1lbnQKK2RvYyA9IGxpYnhtbDIucGFyc2VEb2ModmFsaWQpCityZXQgPSBkb2MudmFsaWRhdGVEdGQoY3R4dCwgZHRkKQoraWYgcmV0ICE9IDEgb3IgZS5lcnJvcnM6CisgICAgcHJpbnQgImVycm9yIGRvaW5nIERURCB2YWxpZGF0aW9uIgorICAgIHN5cy5leGl0KDEpCitkb2MuZnJlZURvYygpCisKKyMgVGVzdCBpbnZhbGlkIGRvY3VtZW50Citkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGludmFsaWQpCityZXQgPSBkb2MudmFsaWRhdGVEdGQoY3R4dCwgZHRkKQoraWYgcmV0ICE9IDAgb3Igbm90IGUuZXJyb3JzOgorICAgIHByaW50ICJFcnJvcjogZG9jdW1lbnQgc3VwcG9zZWQgdG8gYmUgaW52YWxpZCIKK2RvYy5mcmVlRG9jKCkKKworZHRkLmZyZWVEdGQoKQorZGVsIGR0ZAorZGVsIGN0eHQKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdmFsaWRSTkcucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy92YWxpZFJORy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDIyZWZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdmFsaWRSTkcucHkKQEAgLTAsMCArMSw3NiBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBsaWJ4bWwyCitpbXBvcnQgc3lzCisKK0FSRyA9ICd0ZXN0IHN0cmluZycKKworY2xhc3MgRXJyb3JIYW5kbGVyOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmVycm9ycyA9IFtdCisKKyAgICBkZWYgaGFuZGxlcihzZWxmLCBtc2csIGRhdGEpOgorICAgICAgICBpZiBkYXRhICE9IEFSRzoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbiwgIkVycm9yIGhhbmRsZXIgZGlkIG5vdCByZWNlaXZlIGNvcnJlY3QgYXJndW1lbnQiCisgICAgICAgIHNlbGYuZXJyb3JzLmFwcGVuZChtc2cpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK3NjaGVtYT0iIiI8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxlbGVtZW50IG5hbWU9ImZvbyIKKyAgICAgICAgIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIKKyAgICAgICAgIHhtbG5zOmE9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9hbm5vdGF0aW9uLzEuMCIKKyAgICAgICAgIHhtbG5zOmV4MT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMSIKKyAgICAgICAgIHhtbG5zOmV4Mj0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMiI+CisgIDxhOmRvY3VtZW50YXRpb24+QSBmb28gZWxlbWVudC48L2E6ZG9jdW1lbnRhdGlvbj4KKyAgPGVsZW1lbnQgbmFtZT0iZXgxOmJhcjEiPgorICAgIDxlbXB0eS8+CisgIDwvZWxlbWVudD4KKyAgPGVsZW1lbnQgbmFtZT0iZXgyOmJhcjIiPgorICAgIDxlbXB0eS8+CisgIDwvZWxlbWVudD4KKzwvZWxlbWVudD4KKyIiIgorCit2YWxpZD0iIiI8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28+PHByZTE6YmFyMSB4bWxuczpwcmUxPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL24xIi8+PHByZTI6YmFyMiB4bWxuczpwcmUyPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL24yIi8+PC9mb28+IiIiCisKK2ludmFsaWQ9IiIiPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vPjxwcmUxOmJhcjEgeG1sbnM6cHJlMT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMSI+YmFkPC9wcmUxOmJhcjE+PHByZTI6YmFyMiB4bWxuczpwcmUyPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL24yIi8+PC9mb28+IiIiCisKK3JuZ3AgPSBsaWJ4bWwyLnJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KHNjaGVtYSwgbGVuKHNjaGVtYSkpCitybmdzID0gcm5ncC5yZWxheE5HUGFyc2UoKQorY3R4dCA9IHJuZ3MucmVsYXhOR05ld1ZhbGlkQ3R4dCgpCitlID0gRXJyb3JIYW5kbGVyKCkKK2N0eHQuc2V0VmFsaWRpdHlFcnJvckhhbmRsZXIoZS5oYW5kbGVyLCBlLmhhbmRsZXIsIEFSRykKKworIyBUZXN0IHZhbGlkIGRvY3VtZW50Citkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKHZhbGlkKQorcmV0ID0gZG9jLnJlbGF4TkdWYWxpZGF0ZURvYyhjdHh0KQoraWYgcmV0ICE9IDAgb3IgZS5lcnJvcnM6CisgICAgcHJpbnQgImVycm9yIGRvaW5nIFJlbGF4TkcgdmFsaWRhdGlvbiIKKyAgICBzeXMuZXhpdCgxKQorZG9jLmZyZWVEb2MoKQorCisjIFRlc3QgaW52YWxpZCBkb2N1bWVudAorZG9jID0gbGlieG1sMi5wYXJzZURvYyhpbnZhbGlkKQorcmV0ID0gZG9jLnJlbGF4TkdWYWxpZGF0ZURvYyhjdHh0KQoraWYgcmV0ID09IDAgb3Igbm90IGUuZXJyb3JzOgorICAgIHByaW50ICJFcnJvcjogZG9jdW1lbnQgc3VwcG9zZWQgdG8gYmUgUmVsYXhORyBpbnZhbGlkIgorICAgIHN5cy5leGl0KDEpCitkb2MuZnJlZURvYygpCisKK2RlbCBybmdwCitkZWwgcm5ncworZGVsIGN0eHQKK2xpYnhtbDIucmVsYXhOR0NsZWFudXBUeXBlcygpCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3ZhbGlkU2NoZW1hcy5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3ZhbGlkU2NoZW1hcy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNGQ2MmIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdmFsaWRTY2hlbWFzLnB5CkBAIC0wLDAgKzEsODMgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgbGlieG1sMgoraW1wb3J0IHN5cworCitBUkcgPSAndGVzdCBzdHJpbmcnCisKK2NsYXNzIEVycm9ySGFuZGxlcjoKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5lcnJvcnMgPSBbXQorCisgICAgZGVmIGhhbmRsZXIoc2VsZiwgbXNnLCBkYXRhKToKKyAgICAgICAgaWYgZGF0YSAhPSBBUkc6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24sICJFcnJvciBoYW5kbGVyIGRpZCBub3QgcmVjZWl2ZSBjb3JyZWN0IGFyZ3VtZW50IgorICAgICAgICBzZWxmLmVycm9ycy5hcHBlbmQobXNnKQorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitzY2hlbWE9IiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PgorPHNjaGVtYSB4bWxucyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisJPGVsZW1lbnQgbmFtZSA9ICJDdXN0b21lciI+CisJCTxjb21wbGV4VHlwZT4KKwkJCTxzZXF1ZW5jZT4KKwkJCQk8ZWxlbWVudCBuYW1lID0gIkZpcnN0TmFtZSIgdHlwZSA9ICJzdHJpbmciIC8+CisJCQkJPGVsZW1lbnQgbmFtZSA9ICJNaWRkbGVJbml0aWFsIiB0eXBlID0gInN0cmluZyIgLz4KKwkJCQk8ZWxlbWVudCBuYW1lID0gIkxhc3ROYW1lIiB0eXBlID0gInN0cmluZyIgLz4KKwkJCTwvc2VxdWVuY2U+CisJCQk8YXR0cmlidXRlIG5hbWUgPSAiY3VzdG9tZXJJRCIgdHlwZSA9ICJpbnRlZ2VyIiAvPgorCQk8L2NvbXBsZXhUeXBlPgorCTwvZWxlbWVudD4KKzwvc2NoZW1hPiIiIgorCit2YWxpZD0iIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJpc28tODg1OS0xIj8+Cis8Q3VzdG9tZXIgY3VzdG9tZXJJRCA9ICIyNDMzMiI+CisJPEZpcnN0TmFtZT5SYXltb25kPC9GaXJzdE5hbWU+CisJPE1pZGRsZUluaXRpYWw+RzwvTWlkZGxlSW5pdGlhbD4KKwk8TGFzdE5hbWU+QmF5bGlzczwvTGFzdE5hbWU+Cis8L0N1c3RvbWVyPgkKKyIiIgorCitpbnZhbGlkPSIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4KKzxDdXN0b21lciBjdXN0b21lcklEID0gIjI0MzMyIj4KKwk8TWlkZGxlSW5pdGlhbD5HPC9NaWRkbGVJbml0aWFsPgorCTxMYXN0TmFtZT5CYXlsaXNzPC9MYXN0TmFtZT4KKzwvQ3VzdG9tZXI+CQorIiIiCisKK2UgPSBFcnJvckhhbmRsZXIoKQorY3R4dF9wYXJzZXIgPSBsaWJ4bWwyLnNjaGVtYU5ld01lbVBhcnNlckN0eHQoc2NoZW1hLCBsZW4oc2NoZW1hKSkKK2N0eHRfc2NoZW1hID0gY3R4dF9wYXJzZXIuc2NoZW1hUGFyc2UoKQorY3R4dF92YWxpZCAgPSBjdHh0X3NjaGVtYS5zY2hlbWFOZXdWYWxpZEN0eHQoKQorY3R4dF92YWxpZC5zZXRWYWxpZGl0eUVycm9ySGFuZGxlcihlLmhhbmRsZXIsIGUuaGFuZGxlciwgQVJHKQorCisjIFRlc3QgdmFsaWQgZG9jdW1lbnQKK2RvYyA9IGxpYnhtbDIucGFyc2VEb2ModmFsaWQpCityZXQgPSBkb2Muc2NoZW1hVmFsaWRhdGVEb2MoY3R4dF92YWxpZCkKK2lmIHJldCAhPSAwIG9yIGUuZXJyb3JzOgorICAgIHByaW50ICJlcnJvciBkb2luZyBzY2hlbWEgdmFsaWRhdGlvbiIKKyAgICBzeXMuZXhpdCgxKQorZG9jLmZyZWVEb2MoKQorCisjIFRlc3QgaW52YWxpZCBkb2N1bWVudAorZG9jID0gbGlieG1sMi5wYXJzZURvYyhpbnZhbGlkKQorcmV0ID0gZG9jLnNjaGVtYVZhbGlkYXRlRG9jKGN0eHRfdmFsaWQpCitpZiByZXQgPT0gMCBvciBub3QgZS5lcnJvcnM6CisgICAgcHJpbnQgIkVycm9yOiBkb2N1bWVudCBzdXBwb3NlciB0byBiZSBzY2hlbWEgaW52YWxpZCIKKyAgICBzeXMuZXhpdCgxKQorZG9jLmZyZWVEb2MoKQorCitkZWwgY3R4dF9wYXJzZXIKK2RlbCBjdHh0X3NjaGVtYQorZGVsIGN0eHRfdmFsaWQKK2xpYnhtbDIuc2NoZW1hQ2xlYW51cFR5cGVzKCkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdmFsaWRhdGUucHkgYi9saWJ4bWwyLTIuNy43L3B5dGhvbi90ZXN0cy92YWxpZGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZGM4NmY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvdmFsaWRhdGUucHkKQEAgLTAsMCArMSw4MiBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKK2ltcG9ydCBzeXMKK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2N0eHQgPSBsaWJ4bWwyLmNyZWF0ZUZpbGVQYXJzZXJDdHh0KCJ2YWxpZC54bWwiKQorY3R4dC52YWxpZGF0ZSgxKQorY3R4dC5wYXJzZURvY3VtZW50KCkKK2RvYyA9IGN0eHQuZG9jKCkKK3ZhbGlkID0gY3R4dC5pc1ZhbGlkKCkKKworaWYgZG9jLm5hbWUgIT0gInZhbGlkLnhtbCI6CisgICAgcHJpbnQgImRvYy5uYW1lIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorcm9vdCA9IGRvYy5jaGlsZHJlbgoraWYgcm9vdC5uYW1lICE9ICJkb2MiOgorICAgIHByaW50ICJyb290Lm5hbWUgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCitpZiB2YWxpZCAhPSAxOgorICAgIHByaW50ICJ2YWxpZGl0eSBjaGVjIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorZG9jLmZyZWVEb2MoKQorCitpID0gMTAwMAord2hpbGUgaSA+IDA6CisgICAgY3R4dCA9IGxpYnhtbDIuY3JlYXRlRmlsZVBhcnNlckN0eHQoInZhbGlkLnhtbCIpCisgICAgY3R4dC52YWxpZGF0ZSgxKQorICAgIGN0eHQucGFyc2VEb2N1bWVudCgpCisgICAgZG9jID0gY3R4dC5kb2MoKQorICAgIHZhbGlkID0gY3R4dC5pc1ZhbGlkKCkKKyAgICBkb2MuZnJlZURvYygpCisgICAgaWYgdmFsaWQgIT0gMToKKyAgICAgICAgcHJpbnQgInZhbGlkaXR5IGNoZWNrIGZhaWxlZCIKKyAgICAgICAgc3lzLmV4aXQoMSkKKyAgICBpID0gaSAtIDEKKworI2Rlc2FjdGl2YXRlIGVycm9yIG1lc3NhZ2VzIGZyb20gdGhlIHZhbGlkYXRpb24KK2RlZiBub2VycihjdHgsIHN0cik6CisgICAgcGFzcworCitsaWJ4bWwyLnJlZ2lzdGVyRXJyb3JIYW5kbGVyKG5vZXJyLCBOb25lKQorCitjdHh0ID0gbGlieG1sMi5jcmVhdGVGaWxlUGFyc2VyQ3R4dCgiaW52YWxpZC54bWwiKQorY3R4dC52YWxpZGF0ZSgxKQorY3R4dC5wYXJzZURvY3VtZW50KCkKK2RvYyA9IGN0eHQuZG9jKCkKK3ZhbGlkID0gY3R4dC5pc1ZhbGlkKCkKK2lmIGRvYy5uYW1lICE9ICJpbnZhbGlkLnhtbCI6CisgICAgcHJpbnQgImRvYy5uYW1lIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorcm9vdCA9IGRvYy5jaGlsZHJlbgoraWYgcm9vdC5uYW1lICE9ICJkb2MiOgorICAgIHByaW50ICJyb290Lm5hbWUgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCitpZiB2YWxpZCAhPSAwOgorICAgIHByaW50ICJ2YWxpZGl0eSBjaGVjIGZhaWxlZCIKKyAgICBzeXMuZXhpdCgxKQorZG9jLmZyZWVEb2MoKQorCitpID0gMTAwMAord2hpbGUgaSA+IDA6CisgICAgY3R4dCA9IGxpYnhtbDIuY3JlYXRlRmlsZVBhcnNlckN0eHQoImludmFsaWQueG1sIikKKyAgICBjdHh0LnZhbGlkYXRlKDEpCisgICAgY3R4dC5wYXJzZURvY3VtZW50KCkKKyAgICBkb2MgPSBjdHh0LmRvYygpCisgICAgdmFsaWQgPSBjdHh0LmlzVmFsaWQoKQorICAgIGRvYy5mcmVlRG9jKCkKKyAgICBpZiB2YWxpZCAhPSAwOgorICAgICAgICBwcmludCAidmFsaWRpdHkgY2hlY2sgZmFpbGVkIgorICAgICAgICBzeXMuZXhpdCgxKQorICAgIGkgPSBpIC0gMQorZGVsIGN0eHQKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3dhbGtlci5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3dhbGtlci5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYjVhNjJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMvd2Fsa2VyLnB5CkBAIC0wLDAgKzEsMTQ1IEBACisjIS91c3IvYmluL3B5dGhvbiAtdQorIworIyB0aGlzIHRlc3RzIHRoZSBlbnRpdGllcyBzdWJzdGl0dXRpb25zIHdpdGggdGhlIFhtbFRleHRSZWFkZXIgaW50ZXJmYWNlCisjCitpbXBvcnQgc3lzCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBsaWJ4bWwyCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK3Jlc3VsdCA9ICIiCitkZWYgcHJvY2Vzc05vZGUocmVhZGVyKToKKyAgICBnbG9iYWwgcmVzdWx0CisKKyAgICByZXN1bHQgPSByZXN1bHQgKyAiJWQgJWQgJXMgJWRcbiIgJSAocmVhZGVyLkRlcHRoKCksIHJlYWRlci5Ob2RlVHlwZSgpLAorCQkJICAgcmVhZGVyLk5hbWUoKSwgcmVhZGVyLklzRW1wdHlFbGVtZW50KCkpCisKKyMKKyMgUGFyc2UgYSBkb2N1bWVudCB0ZXN0aW5nIHRoZSByZWFkZXJGb3J4eHggQVBJCisjCitkb2NzdHI9IiIiPGZvbz4KKzxsYWJlbD5zb21lIHRleHQ8L2xhYmVsPgorPGl0ZW0+MTAwPC9pdGVtPgorPC9mb28+IiIiCitleHBlY3Q9IiIiMCAxIGZvbyAwCisxIDE0ICN0ZXh0IDAKKzEgMSBsYWJlbCAwCisyIDMgI3RleHQgMAorMSAxNSBsYWJlbCAwCisxIDE0ICN0ZXh0IDAKKzEgMSBpdGVtIDAKKzIgMyAjdGV4dCAwCisxIDE1IGl0ZW0gMAorMSAxNCAjdGV4dCAwCiswIDE1IGZvbyAwCisiIiIKK3Jlc3VsdCA9ICIiCisKK2RvYyA9IGxpYnhtbDIucGFyc2VEb2MoZG9jc3RyKQorcmVhZGVyID0gZG9jLnJlYWRlcldhbGtlcigpOworcmV0ID0gcmVhZGVyLlJlYWQoKQord2hpbGUgcmV0ID09IDE6CisgICAgcHJvY2Vzc05vZGUocmVhZGVyKQorICAgIHJldCA9IHJlYWRlci5SZWFkKCkKKworaWYgcmV0ICE9IDA6CisgICAgcHJpbnQgIkVycm9yIHBhcnNpbmcgdGhlIGRvY3VtZW50IHRlc3QxIgorICAgIHN5cy5leGl0KDEpCisKK2lmIHJlc3VsdCAhPSBleHBlY3Q6CisgICAgcHJpbnQgIlVuZXhwZWN0ZWQgcmVzdWx0IGZvciB0ZXN0MSIKKyAgICBwcmludCByZXN1bHQKKyAgICBzeXMuZXhpdCgxKQorCitkb2MuZnJlZURvYygpCisKKyMKKyMgUmV1c2UgdGhlIHJlYWRlciBmb3IgYW5vdGhlciBkb2N1bWVudCB0ZXN0aW5nIHRoZSBSZWFkZXJOZXdXYWxrZXIgQVBJCisjCitkb2NzdHI9IiIiPGZvbz4KKzxsYWJlbD5zb21lIHRleHQ8L2xhYmVsPgorPGl0ZW0+MTAwMDwvaXRlbT4KKzwvZm9vPiIiIgorZXhwZWN0PSIiIjAgMSBmb28gMAorMSAxNCAjdGV4dCAwCisxIDEgbGFiZWwgMAorMiAzICN0ZXh0IDAKKzEgMTUgbGFiZWwgMAorMSAxNCAjdGV4dCAwCisxIDEgaXRlbSAwCisyIDMgI3RleHQgMAorMSAxNSBpdGVtIDAKKzEgMTQgI3RleHQgMAorMCAxNSBmb28gMAorIiIiCityZXN1bHQgPSAiIgorCitkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKGRvY3N0cikKK3JlYWRlci5OZXdXYWxrZXIoZG9jKQorCityZXQgPSByZWFkZXIuUmVhZCgpCit3aGlsZSByZXQgPT0gMToKKyAgICBwcm9jZXNzTm9kZShyZWFkZXIpCisgICAgcmV0ID0gcmVhZGVyLlJlYWQoKQorCitpZiByZXQgIT0gMDoKKyAgICBwcmludCAiRXJyb3IgcGFyc2luZyB0aGUgZG9jdW1lbnQgdGVzdDIiCisgICAgc3lzLmV4aXQoMSkKKworaWYgcmVzdWx0ICE9IGV4cGVjdDoKKyAgICBwcmludCAiVW5leHBlY3RlZCByZXN1bHQgZm9yIHRlc3QyIgorICAgIHByaW50IHJlc3VsdAorICAgIHN5cy5leGl0KDEpCisKK2RvYy5mcmVlRG9jKCkKKworIworIyBSZXVzZSB0aGUgcmVhZGVyIGZvciBhbm90aGVyIGRvY3VtZW50IHRlc3RpbmcgdGhlIFJlYWRlck5ld3h4eCBBUEkKKyMKK2RvY3N0cj0iIiI8Zm9vPgorPGxhYmVsPnNvbWUgdGV4dDwvbGFiZWw+Cis8aXRlbT4xMDAwPC9pdGVtPgorPC9mb28+IiIiCitleHBlY3Q9IiIiMCAxIGZvbyAwCisxIDE0ICN0ZXh0IDAKKzEgMSBsYWJlbCAwCisyIDMgI3RleHQgMAorMSAxNSBsYWJlbCAwCisxIDE0ICN0ZXh0IDAKKzEgMSBpdGVtIDAKKzIgMyAjdGV4dCAwCisxIDE1IGl0ZW0gMAorMSAxNCAjdGV4dCAwCiswIDE1IGZvbyAwCisiIiIKK3Jlc3VsdCA9ICIiCisKK3JlYWRlci5OZXdEb2MoZG9jc3RyLCAidGVzdDMiLCBOb25lLCAwKQorcmV0ID0gcmVhZGVyLlJlYWQoKQord2hpbGUgcmV0ID09IDE6CisgICAgcHJvY2Vzc05vZGUocmVhZGVyKQorICAgIHJldCA9IHJlYWRlci5SZWFkKCkKKworaWYgcmV0ICE9IDA6CisgICAgcHJpbnQgIkVycm9yIHBhcnNpbmcgdGhlIGRvY3VtZW50IHRlc3QzIgorICAgIHN5cy5leGl0KDEpCisKK2lmIHJlc3VsdCAhPSBleHBlY3Q6CisgICAgcHJpbnQgIlVuZXhwZWN0ZWQgcmVzdWx0IGZvciB0ZXN0MyIKKyAgICBwcmludCByZXN1bHQKKyAgICBzeXMuZXhpdCgxKQorCisjCisjIGNsZWFudXAKKyMKK2RlbCByZWFkZXIKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRoLnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMveHBhdGgucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmUwMzZlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRoLnB5CkBAIC0wLDAgKzEsNTEgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CisjCisjIHRoaXMgdGVzdCBleGVyY2lzZSB0aGUgWFBhdGggYmFzaWMgZW5naW5lLCBwYXJzZXIsIGV0YywgYW5kCisjIGFsbG93cyB0byBkZXRlY3QgbWVtb3J5IGxlYWtzCisjCitpbXBvcnQgc3lzCitpbXBvcnQgbGlieG1sMgorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitkb2MgPSBsaWJ4bWwyLnBhcnNlRmlsZSgidHN0LnhtbCIpCitpZiBkb2MubmFtZSAhPSAidHN0LnhtbCI6CisgICAgcHJpbnQgImRvYy5uYW1lIGVycm9yIgorICAgIHN5cy5leGl0KDEpOworCitjdHh0ID0gZG9jLnhwYXRoTmV3Q29udGV4dCgpCityZXMgPSBjdHh0LnhwYXRoRXZhbCgiLy8qIikKK2lmIGxlbihyZXMpICE9IDI6CisgICAgcHJpbnQgInhwYXRoIHF1ZXJ5OiB3cm9uZyBub2RlIHNldCBzaXplIgorICAgIHN5cy5leGl0KDEpCitpZiByZXNbMF0ubmFtZSAhPSAiZG9jIiBvciByZXNbMV0ubmFtZSAhPSAiZm9vIjoKKyAgICBwcmludCAieHBhdGggcXVlcnk6IHdyb25nIG5vZGUgc2V0IHZhbHVlIgorICAgIHN5cy5leGl0KDEpCitjdHh0LnNldENvbnRleHROb2RlKHJlc1swXSkKK3JlcyA9IGN0eHQueHBhdGhFdmFsKCJmb28iKQoraWYgbGVuKHJlcykgIT0gMToKKyAgICBwcmludCAieHBhdGggcXVlcnk6IHdyb25nIG5vZGUgc2V0IHNpemUiCisgICAgc3lzLmV4aXQoMSkKK2lmIHJlc1swXS5uYW1lICE9ICJmb28iOgorICAgIHByaW50ICJ4cGF0aCBxdWVyeTogd3Jvbmcgbm9kZSBzZXQgdmFsdWUiCisgICAgc3lzLmV4aXQoMSkKK2RvYy5mcmVlRG9jKCkKK2N0eHQueHBhdGhGcmVlQ29udGV4dCgpCitpID0gMTAwMAord2hpbGUgaSA+IDA6CisgICAgZG9jID0gbGlieG1sMi5wYXJzZUZpbGUoInRzdC54bWwiKQorICAgIGN0eHQgPSBkb2MueHBhdGhOZXdDb250ZXh0KCkKKyAgICByZXMgPSBjdHh0LnhwYXRoRXZhbCgiLy8qIikKKyAgICBkb2MuZnJlZURvYygpCisgICAgY3R4dC54cGF0aEZyZWVDb250ZXh0KCkKKyAgICBpID0gaSAtMQorZGVsIGN0eHQKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRoZXh0LnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMveHBhdGhleHQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDc2OTYyNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRoZXh0LnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgc3lzCitpbXBvcnQgbGlieG1sMgorCisjIE1lbW9yeSBkZWJ1ZyBzcGVjaWZpYworbGlieG1sMi5kZWJ1Z01lbW9yeSgxKQorCitkZWYgZm9vKGN0eCwgeCk6CisgICAgcmV0dXJuIHggKyAxCisKK2RlZiBiYXIoY3R4LCB4KToKKyAgICByZXR1cm4gIiVkIiAlICh4ICsgMikKKworZG9jID0gbGlieG1sMi5wYXJzZUZpbGUoInRzdC54bWwiKQorY3R4dCA9IGRvYy54cGF0aE5ld0NvbnRleHQoKQorcmVzID0gY3R4dC54cGF0aEV2YWwoIi8vKiIpCitpZiBsZW4ocmVzKSAhPSAyOgorICAgIHByaW50ICJ4cGF0aCBxdWVyeTogd3Jvbmcgbm9kZSBzZXQgc2l6ZSIKKyAgICBzeXMuZXhpdCgxKQoraWYgcmVzWzBdLm5hbWUgIT0gImRvYyIgb3IgcmVzWzFdLm5hbWUgIT0gImZvbyI6CisgICAgcHJpbnQgInhwYXRoIHF1ZXJ5OiB3cm9uZyBub2RlIHNldCB2YWx1ZSIKKyAgICBzeXMuZXhpdCgxKQorCitsaWJ4bWwyLnJlZ2lzdGVyWFBhdGhGdW5jdGlvbihjdHh0Ll9vLCAiZm9vIiwgTm9uZSwgZm9vKQorbGlieG1sMi5yZWdpc3RlclhQYXRoRnVuY3Rpb24oY3R4dC5fbywgImJhciIsIE5vbmUsIGJhcikKK2kgPSAxMDAwMAord2hpbGUgaSA+IDA6CisgICAgcmVzID0gY3R4dC54cGF0aEV2YWwoImZvbygxKSIpCisgICAgaWYgcmVzICE9IDI6CisgICAgICAgIHByaW50ICJ4cGF0aCBleHRlbnNpb24gZmFpbHVyZSIKKyAgICAgICAgc3lzLmV4aXQoMSkKKyAgICBpID0gaSAtIDEKK2kgPSAxMDAwMAord2hpbGUgaSA+IDA6CisgICAgcmVzID0gY3R4dC54cGF0aEV2YWwoImJhcigxKSIpCisgICAgaWYgcmVzICE9ICIzIjoKKyAgICAgICAgcHJpbnQgInhwYXRoIGV4dGVuc2lvbiBmYWlsdXJlIGdvdCAlcyBleHBlY3RpbmcgJzMnIgorICAgICAgICBzeXMuZXhpdCgxKQorICAgIGkgPSBpIC0gMQorZG9jLmZyZWVEb2MoKQorY3R4dC54cGF0aEZyZWVDb250ZXh0KCkKKworIyBNZW1vcnkgZGVidWcgc3BlY2lmaWMKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRobGVhay5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRobGVhay5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWY0OWUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMveHBhdGhsZWFrLnB5CkBAIC0wLDAgKzEsNjUgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCitpbXBvcnQgc3lzLCBsaWJ4bWwyCisKK2xpYnhtbDIuZGVidWdNZW1vcnkoVHJ1ZSkKKworZXhwZWN0PSIiIi0tPiBJbnZhbGlkIGV4cHJlc3Npb24KKy0tPiB4bWxYUGF0aEV2YWw6IGV2YWx1YXRpb24gZmFpbGVkCistLT4gSW52YWxpZCBleHByZXNzaW9uCistLT4geG1sWFBhdGhFdmFsOiBldmFsdWF0aW9uIGZhaWxlZAorLS0+IEludmFsaWQgZXhwcmVzc2lvbgorLS0+IHhtbFhQYXRoRXZhbDogZXZhbHVhdGlvbiBmYWlsZWQKKy0tPiBJbnZhbGlkIGV4cHJlc3Npb24KKy0tPiB4bWxYUGF0aEV2YWw6IGV2YWx1YXRpb24gZmFpbGVkCistLT4gSW52YWxpZCBleHByZXNzaW9uCistLT4geG1sWFBhdGhFdmFsOiBldmFsdWF0aW9uIGZhaWxlZAorLS0+IEludmFsaWQgZXhwcmVzc2lvbgorLS0+IHhtbFhQYXRoRXZhbDogZXZhbHVhdGlvbiBmYWlsZWQKKy0tPiBJbnZhbGlkIGV4cHJlc3Npb24KKy0tPiB4bWxYUGF0aEV2YWw6IGV2YWx1YXRpb24gZmFpbGVkCistLT4gSW52YWxpZCBleHByZXNzaW9uCistLT4geG1sWFBhdGhFdmFsOiBldmFsdWF0aW9uIGZhaWxlZAorLS0+IEludmFsaWQgZXhwcmVzc2lvbgorLS0+IHhtbFhQYXRoRXZhbDogZXZhbHVhdGlvbiBmYWlsZWQKKy0tPiBJbnZhbGlkIGV4cHJlc3Npb24KKy0tPiB4bWxYUGF0aEV2YWw6IGV2YWx1YXRpb24gZmFpbGVkCisiIiIKK2Vycj0iIgorZGVmIGNhbGxiYWNrKGN0eCwgc3RyKToKKyAgICAgZ2xvYmFsIGVycgorCisgICAgIGVyciA9IGVyciArICIlcyAlcyIgJSAoY3R4LCBzdHIpCisKK2xpYnhtbDIucmVnaXN0ZXJFcnJvckhhbmRsZXIoY2FsbGJhY2ssICItLT4iKQorCitkb2MgPSBsaWJ4bWwyLnBhcnNlRG9jKCI8ZmlzaC8+IikKK2N0eHQgPSBkb2MueHBhdGhOZXdDb250ZXh0KCkKK2N0eHQuc2V0Q29udGV4dE5vZGUoZG9jKQorYmFkZXhwcnMgPSAoCisJIjpmYWxzZSgpIiwgImJhZDooKSIsICJiYWQoOikiLCAiOmJhZCg6KSIsICJiYWQ6KDopIiwgImJhZDpiYWQoOikiLAorCSJhOi9iIiwgIi9jOi9kIiwgIi8vZTovZiIsICJnOi8vaCIKKwkpCitmb3IgZXhwciBpbiBiYWRleHByczoKKwl0cnk6CisJCWN0eHQueHBhdGhFdmFsKGV4cHIpCisJZXhjZXB0IGxpYnhtbDIueHBhdGhFcnJvciwgZToKKwkgICAgICAgIHBhc3MKKwllbHNlOgorCQlwcmludCAiVW5leHBlY3RlZGx5IGxlZ2FsIGV4cHJlc3Npb246IiwgZXhwcgorY3R4dC54cGF0aEZyZWVDb250ZXh0KCkKK2RvYy5mcmVlRG9jKCkKKworaWYgZXJyICE9IGV4cGVjdDoKKyAgICBwcmludCAiZXJyb3IiCisgICAgcHJpbnQgInJlY2VpdmVkICVzIiAlKGVycikKKyAgICBwcmludCAiZXhwZWN0ZWQgJXMiICUoZXhwZWN0KQorICAgIHN5cy5leGl0KDEpCisKK2xpYnhtbDIuY2xlYW51cFBhcnNlcigpCitsZWFrZWRieXRlcyA9IGxpYnhtbDIuZGVidWdNZW1vcnkoVHJ1ZSkKK2lmIGxlYWtlZGJ5dGVzID09IDA6CisJcHJpbnQgIk9LIgorZWxzZToKKwlwcmludCAiTWVtb3J5IGxlYWsiLCBsZWFrZWRieXRlcywgImJ5dGVzIgorCSMgZHJvcCBmaWxlIHRvIC5tZW1kdW1wIGZpbGUgaW4gY3dkLCBidXQgd29uJ3Qgd29yayBpZiBub3QgY29tcGlsZWQgaW4KKwlsaWJ4bWwyLmR1bXBNZW1vcnkoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMveHBhdGhucy5weSBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRobnMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTY3ZTU1MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRobnMucHkKQEAgLTAsMCArMSwyOSBAQAorIyEvdXNyL2Jpbi9weXRob24gLXUKKyMKK2ltcG9ydCBsaWJ4bWwyCisKK2V4cGVjdD0nIHhtbG5zOmE9InVybjp3aGF0ZXZhciInCisKKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKK2QgPSBsaWJ4bWwyLnBhcnNlRG9jKCI8YTphIHhtbG5zOmE9J3Vybjp3aGF0ZXZhcicvPiIpCityZXM9IiIKK2ZvciBuIGluIGQueHBhdGhFdmFsKCIvL25hbWVzcGFjZTo6KiIpOgorICAgIHJlcyA9IHJlcyArIG4uc2VyaWFsaXplKCkKK2QuZnJlZURvYygpCisKK2lmIHJlcyAhPSBleHBlY3Q6CisgICAgcHJpbnQgInRlc3Q1IGZhaWxlZDogdW5leHBlY3RlZCBvdXRwdXQiCisgICAgcHJpbnQgcmVzCitkZWwgcmVzCitkZWwgZAorZGVsIG4KKyMgTWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQorCitpZiBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpID09IDA6CisgICAgcHJpbnQgIk9LIgorZWxzZToKKyAgICBwcmludCAiTWVtb3J5IGxlYWsgJWQgYnl0ZXMiICUgKGxpYnhtbDIuZGVidWdNZW1vcnkoMSkpCisgICAgbGlieG1sMi5kdW1wTWVtb3J5KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRocmV0LnB5IGIvbGlieG1sMi0yLjcuNy9weXRob24vdGVzdHMveHBhdGhyZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmI1NTc2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcHl0aG9uL3Rlc3RzL3hwYXRocmV0LnB5CkBAIC0wLDAgKzEsNTcgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgc3lzCitpbXBvcnQgbGlieG1sMgorCisjbWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisKKyMKKyMgQSBkb2N1bWVudCBob3N0aW5nIHRoZSBub2RlcyByZXR1cm5lZCBmcm9tIHRoZSBleHRlbnNpb24gZnVuY3Rpb24KKyMKK215ZG9jID0gbGlieG1sMi5uZXdEb2MoIjEuMCIpCisKK2RlZiBmb28oY3R4LCBzdHIpOgorICAgIGdsb2JhbCBteWRvYworCisgICAgIworICAgICMgdGVzdCByZXR1cm5pbmcgYSBub2RlIHNldCB3b3JrcyBhcyBleHBlY3RlZAorICAgICMKKyAgICBwYXJlbnQgPSBteWRvYy5uZXdEb2NOb2RlKE5vbmUsICdwJywgTm9uZSkKKyAgICBteWRvYy5hZGRDaGlsZChwYXJlbnQpCisgICAgbm9kZSA9IG15ZG9jLm5ld0RvY1RleHQoc3RyKQorICAgIHBhcmVudC5hZGRDaGlsZChub2RlKQorICAgIHJldHVybiBbcGFyZW50XQorCitkb2MgPSBsaWJ4bWwyLnBhcnNlRmlsZSgidHN0LnhtbCIpCitjdHh0ID0gZG9jLnhwYXRoTmV3Q29udGV4dCgpCitsaWJ4bWwyLnJlZ2lzdGVyWFBhdGhGdW5jdGlvbihjdHh0Ll9vLCAiZm9vIiwgTm9uZSwgZm9vKQorcmVzID0gY3R4dC54cGF0aEV2YWwoImZvbygnaGVsbG8nKSIpCitpZiB0eXBlKHJlcykgIT0gdHlwZShbXSk6CisgICAgcHJpbnQgIkZhaWxlZCB0byByZXR1cm4gYSBub2Rlc2V0IgorICAgIHN5cy5leGl0KDEpCitpZiBsZW4ocmVzKSAhPSAxOgorICAgIHByaW50ICJVbmV4cGVjdGVkIG5vZGVzZXQgc2l6ZSIKKyAgICBzeXMuZXhpdCgxKQorbm9kZSA9IHJlc1swXQoraWYgbm9kZS5uYW1lICE9ICdwJzoKKyAgICBwcmludCAiVW5leHBlY3RlZCBub2Rlc2V0IGVsZW1lbnQgcmVzdWx0IgorICAgIHN5cy5leGl0KDEpCitub2RlID0gbm9kZS5jaGlsZHJlbgoraWYgbm9kZS50eXBlICE9ICd0ZXh0JzoKKyAgICBwcmludCAiVW5leHBlY3RlZCBub2Rlc2V0IGVsZW1lbnQgY2hpbGRyZW4gdHlwZSIKKyAgICBzeXMuZXhpdCgxKQoraWYgbm9kZS5jb250ZW50ICE9ICdoZWxsbyc6CisgICAgcHJpbnQgIlVuZXhwZWN0ZWQgbm9kZXNldCBlbGVtZW50IGNoaWxkcmVuIGNvbnRlbnQiCisgICAgc3lzLmV4aXQoMSkKKworZG9jLmZyZWVEb2MoKQorbXlkb2MuZnJlZURvYygpCitjdHh0LnhwYXRoRnJlZUNvbnRleHQoKQorCisjbWVtb3J5IGRlYnVnIHNwZWNpZmljCitsaWJ4bWwyLmNsZWFudXBQYXJzZXIoKQoraWYgbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSA9PSAwOgorICAgIHByaW50ICJPSyIKK2Vsc2U6CisgICAgcHJpbnQgIk1lbW9yeSBsZWFrICVkIGJ5dGVzIiAlIChsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpKQorICAgIGxpYnhtbDIuZHVtcE1lbW9yeSgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3B5dGhvbi90eXBlcy5jIGIvbGlieG1sMi0yLjcuNy9weXRob24vdHlwZXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGI1MGRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9weXRob24vdHlwZXMuYwpAQCAtMCwwICsxLDg4OSBAQAorLyoKKyAqIHR5cGVzLmM6IGNvbnZlcnRlciBmdW5jdGlvbnMgYmV0d2VlbiB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KKyAqICAgICAgICAgIGFuZCB0aGUgUHl0aG9uIG9iamVjdHMKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisjaW5jbHVkZSAibGlieG1sX3dyYXAuaCIKKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaD4KKworUHlPYmplY3QgKgorbGlieG1sX2ludFdyYXAoaW50IHZhbCkKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF9pbnRXcmFwOiB2YWwgPSAlZFxuIiwgdmFsKTsKKyNlbmRpZgorICAgIHJldCA9IFB5SW50X0Zyb21Mb25nKChsb25nKSB2YWwpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX2xvbmdXcmFwKGxvbmcgdmFsKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX2xvbmdXcmFwOiB2YWwgPSAlbGRcbiIsIHZhbCk7CisjZW5kaWYKKyAgICByZXQgPSBQeUludF9Gcm9tTG9uZyh2YWwpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX2RvdWJsZVdyYXAoZG91YmxlIHZhbCkKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF9kb3VibGVXcmFwOiB2YWwgPSAlZlxuIiwgdmFsKTsKKyNlbmRpZgorICAgIHJldCA9IFB5RmxvYXRfRnJvbURvdWJsZSgoZG91YmxlKSB2YWwpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX2NoYXJQdHJXcmFwKGNoYXIgKnN0cikKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxjaGFyUHRyV3JhcDogc3RyID0gJXNcbiIsIHN0cik7CisjZW5kaWYKKyAgICBpZiAoc3RyID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICAvKiBUT0RPOiBsb29rIGF0IGRlYWxsb2NhdGlvbiAqLworICAgIHJldCA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoc3RyKTsKKyAgICB4bWxGcmVlKHN0cik7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfY2hhclB0ckNvbnN0V3JhcChjb25zdCBjaGFyICpzdHIpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sY2hhclB0cldyYXA6IHN0ciA9ICVzXG4iLCBzdHIpOworI2VuZGlmCisgICAgaWYgKHN0ciA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgLyogVE9ETzogbG9vayBhdCBkZWFsbG9jYXRpb24gKi8KKyAgICByZXQgPSBQeVN0cmluZ19Gcm9tU3RyaW5nKHN0cik7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sQ2hhclB0cldyYXAoeG1sQ2hhciAqIHN0cikKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxDaGFyUHRyV3JhcDogc3RyID0gJXNcbiIsIHN0cik7CisjZW5kaWYKKyAgICBpZiAoc3RyID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICAvKiBUT0RPOiBsb29rIGF0IGRlYWxsb2NhdGlvbiAqLworICAgIHJldCA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoKGNoYXIgKikgc3RyKTsKKyAgICB4bWxGcmVlKHN0cik7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sQ2hhclB0ckNvbnN0V3JhcChjb25zdCB4bWxDaGFyICogc3RyKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbENoYXJQdHJXcmFwOiBzdHIgPSAlc1xuIiwgc3RyKTsKKyNlbmRpZgorICAgIGlmIChzdHIgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIC8qIFRPRE86IGxvb2sgYXQgZGVhbGxvY2F0aW9uICovCisgICAgcmV0ID0gUHlTdHJpbmdfRnJvbVN0cmluZygoY2hhciAqKSBzdHIpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX2NvbnN0Y2hhclB0cldyYXAoY29uc3QgY2hhciAqc3RyKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbGNoYXJQdHJXcmFwOiBzdHIgPSAlc1xuIiwgc3RyKTsKKyNlbmRpZgorICAgIGlmIChzdHIgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIC8qIFRPRE86IGxvb2sgYXQgZGVhbGxvY2F0aW9uICovCisgICAgcmV0ID0gUHlTdHJpbmdfRnJvbVN0cmluZyhzdHIpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX2NvbnN0eG1sQ2hhclB0cldyYXAoY29uc3QgeG1sQ2hhciAqIHN0cikKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxDaGFyUHRyV3JhcDogc3RyID0gJXNcbiIsIHN0cik7CisjZW5kaWYKKyAgICBpZiAoc3RyID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICAvKiBUT0RPOiBsb29rIGF0IGRlYWxsb2NhdGlvbiAqLworICAgIHJldCA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoKGNoYXIgKikgc3RyKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxEb2NQdHJXcmFwKHhtbERvY1B0ciBkb2MpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sRG9jUHRyV3JhcDogZG9jID0gJXBcbiIsIGRvYyk7CisjZW5kaWYKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICAvKiBUT0RPOiBsb29rIGF0IGRlYWxsb2NhdGlvbiAqLworICAgIHJldCA9CisgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MoKHZvaWQgKikgZG9jLCAoY2hhciAqKSAieG1sRG9jUHRyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxOb2RlUHRyV3JhcCh4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sTm9kZVB0cldyYXA6IG5vZGUgPSAlcFxuIiwgbm9kZSk7CisjZW5kaWYKKyAgICBpZiAobm9kZSA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0KKyAgICAgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSBub2RlLCAoY2hhciAqKSAieG1sTm9kZVB0ciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sVVJJUHRyV3JhcCh4bWxVUklQdHIgdXJpKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFVSSVB0cldyYXA6IHVyaSA9ICVwXG4iLCB1cmkpOworI2VuZGlmCisgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0KKyAgICAgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSB1cmksIChjaGFyICopICJ4bWxVUklQdHIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbE5zUHRyV3JhcCh4bWxOc1B0ciBucykKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxOc1B0cldyYXA6IG5vZGUgPSAlcFxuIiwgbnMpOworI2VuZGlmCisgICAgaWYgKG5zID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICByZXQgPQorICAgICAgICBQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjKCh2b2lkICopIG5zLCAoY2hhciAqKSAieG1sTnNQdHIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbEF0dHJQdHJXcmFwKHhtbEF0dHJQdHIgYXR0cikKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxBdHRyTm9kZVB0cldyYXA6IGF0dHIgPSAlcFxuIiwgYXR0cik7CisjZW5kaWYKKyAgICBpZiAoYXR0ciA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0KKyAgICAgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSBhdHRyLCAoY2hhciAqKSAieG1sQXR0clB0ciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sQXR0cmlidXRlUHRyV3JhcCh4bWxBdHRyaWJ1dGVQdHIgYXR0cikKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxBdHRyaWJ1dGVQdHJXcmFwOiBhdHRyID0gJXBcbiIsIGF0dHIpOworI2VuZGlmCisgICAgaWYgKGF0dHIgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIHJldCA9CisgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MoKHZvaWQgKikgYXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAieG1sQXR0cmlidXRlUHRyIiwgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sRWxlbWVudFB0cldyYXAoeG1sRWxlbWVudFB0ciBlbGVtKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbEVsZW1lbnROb2RlUHRyV3JhcDogZWxlbSA9ICVwXG4iLCBlbGVtKTsKKyNlbmRpZgorICAgIGlmIChlbGVtID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICByZXQgPQorICAgICAgICBQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjKCh2b2lkICopIGVsZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbEVsZW1lbnRQdHIiLCBOVUxMKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxYUGF0aENvbnRleHRQdHJXcmFwKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFhQYXRoQ29udGV4dFB0cldyYXA6IGN0eHQgPSAlcFxuIiwgY3R4dCk7CisjZW5kaWYKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0KKyAgICAgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopICJ4bWxYUGF0aENvbnRleHRQdHIiLCBOVUxMKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxYUGF0aFBhcnNlckNvbnRleHRQdHJXcmFwKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cldyYXA6IGN0eHQgPSAlcFxuIiwgY3R4dCk7CisjZW5kaWYKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0gUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxQYXJzZXJDdHh0UHRyV3JhcCh4bWxQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sUGFyc2VyQ3R4dFB0cldyYXA6IGN0eHQgPSAlcFxuIiwgY3R4dCk7CisjZW5kaWYKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisKKyAgICByZXQgPQorICAgICAgICBQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjKCh2b2lkICopIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbFBhcnNlckN0eHRQdHIiLCBOVUxMKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogbGlieG1sX3htbFhQYXRoRGVzdHJ1Y3ROc05vZGU6CisgKiBjb2JqOiB4bWxOc1B0ciBuYW1lc3BhY2Ugbm9kZQorICogZGVzYzogaWdub3JlZCBzdHJpbmcKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpZiBhbmQgd2hlbiBhIG5hbWVzcGFjZSBub2RlIHJldHVybmVkIGluCisgKiBhbiBYUGF0aCBub2RlIHNldCBpcyB0byBiZSBkZXN0cm95ZWQuIFRoYXQncyB0aGUgb25seSBraW5kIG9mCisgKiBvYmplY3QgcmV0dXJuZWQgaW4gbm9kZSBzZXQgbm90IGRpcmVjdGx5IGxpbmtlZCB0byB0aGUgb3JpZ2luYWwKKyAqIHhtbERvYyBkb2N1bWVudCwgc2VlIHhtbFhQYXRoTm9kZVNldER1cE5zLgorICovCitzdGF0aWMgdm9pZAorbGlieG1sX3htbFhQYXRoRGVzdHJ1Y3ROc05vZGUodm9pZCAqY29iaiwgdm9pZCAqZGVzYyBBVFRSSUJVVEVfVU5VU0VEKSB7CisjaWZkZWYgREVCVUcKKyAgICBmcHJpbnRmKHN0ZGVyciwgImxpYnhtbF94bWxYUGF0aERlc3RydWN0TnNOb2RlIGNhbGxlZCAlcFxuIiwgY29iaik7CisjZW5kaWYKKyAgICB4bWxYUGF0aE5vZGVTZXRGcmVlTnMoKHhtbE5zUHRyKSBjb2JqKTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbFhQYXRoT2JqZWN0UHRyV3JhcCh4bWxYUGF0aE9iamVjdFB0ciBvYmopCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sWFBhdGhPYmplY3RQdHJXcmFwOiBjdHh0ID0gJXBcbiIsIG9iaik7CisjZW5kaWYKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICBzd2l0Y2ggKG9iai0+dHlwZSkgeworICAgICAgICBjYXNlIFhQQVRIX1hTTFRfVFJFRTogeworICAgICAgICAgICAgaWYgKChvYmotPm5vZGVzZXR2YWwgPT0gTlVMTCkgfHwKKwkJKG9iai0+bm9kZXNldHZhbC0+bm9kZU5yID09IDApIHx8CisJCShvYmotPm5vZGVzZXR2YWwtPm5vZGVUYWIgPT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBQeUxpc3RfTmV3KDApOworCSAgICB9IGVsc2UgeworCQlpbnQgaSwgbGVuID0gMDsKKwkJeG1sTm9kZVB0ciBub2RlOworCisJCW5vZGUgPSBvYmotPm5vZGVzZXR2YWwtPm5vZGVUYWJbMF0tPmNoaWxkcmVuOworCQl3aGlsZSAobm9kZSAhPSBOVUxMKSB7CisJCSAgICBsZW4rKzsKKwkJICAgIG5vZGUgPSBub2RlLT5uZXh0OworCQl9CisJCXJldCA9IFB5TGlzdF9OZXcobGVuKTsKKwkJbm9kZSA9IG9iai0+bm9kZXNldHZhbC0+bm9kZVRhYlswXS0+Y2hpbGRyZW47CisJCWZvciAoaSA9IDA7aSA8IGxlbjtpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgUHlMaXN0X1NldEl0ZW0ocmV0LCBpLCBsaWJ4bWxfeG1sTm9kZVB0cldyYXAobm9kZSkpOworCQkgICAgbm9kZSA9IG5vZGUtPm5leHQ7CisJCX0KKwkgICAgfQorCSAgICAvKgorCSAgICAgKiBSZXR1cm4gbm93LCBkbyBub3QgZnJlZSB0aGUgb2JqZWN0IHBhc3NlZCBkb3duCisJICAgICAqLworCSAgICByZXR1cm4gKHJldCk7CisJfQorICAgICAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisgICAgICAgICAgICBpZiAoKG9iai0+bm9kZXNldHZhbCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIHx8IChvYmotPm5vZGVzZXR2YWwtPm5vZGVOciA9PSAwKSkgeworICAgICAgICAgICAgICAgIHJldCA9IFB5TGlzdF9OZXcoMCk7CisJICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlOworCisgICAgICAgICAgICAgICAgcmV0ID0gUHlMaXN0X05ldyhvYmotPm5vZGVzZXR2YWwtPm5vZGVOcik7CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG9iai0+bm9kZXNldHZhbC0+bm9kZU5yOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG9iai0+bm9kZXNldHZhbC0+bm9kZVRhYltpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJCSAgICAgICAgUHlPYmplY3QgKm5zID0gCisJCQkgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopICJ4bWxOc1B0ciIsCisJCQkJICAgICBsaWJ4bWxfeG1sWFBhdGhEZXN0cnVjdE5zTm9kZSk7CisJCQlQeUxpc3RfU2V0SXRlbShyZXQsIGksIG5zKTsKKwkJCS8qIG1ha2Ugc3VyZSB0aGUgeG1sTnNQdHIgaXMgbm90IGRlc3Ryb3llZCBub3cgKi8KKwkJCW9iai0+bm9kZXNldHZhbC0+bm9kZVRhYltpXSA9IE5VTEw7CisJCSAgICB9IGVsc2UgeworCQkJUHlMaXN0X1NldEl0ZW0ocmV0LCBpLCBsaWJ4bWxfeG1sTm9kZVB0cldyYXAobm9kZSkpOworCQkgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisgICAgICAgICAgICByZXQgPSBQeUludF9Gcm9tTG9uZygobG9uZykgb2JqLT5ib29sdmFsKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX05VTUJFUjoKKyAgICAgICAgICAgIHJldCA9IFB5RmxvYXRfRnJvbURvdWJsZShvYmotPmZsb2F0dmFsKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX1NUUklORzoKKyAgICAgICAgICAgIHJldCA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoKGNoYXIgKikgb2JqLT5zdHJpbmd2YWwpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfUE9JTlQ6CisgICAgICAgIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpub2RlOworICAgICAgICAgICAgUHlPYmplY3QgKmluZGV4SW50b05vZGU7CisgICAgICAgICAgICBQeU9iamVjdCAqdHVwbGU7CisKKyAgICAgICAgICAgIG5vZGUgPSBsaWJ4bWxfeG1sTm9kZVB0cldyYXAob2JqLT51c2VyKTsKKyAgICAgICAgICAgIGluZGV4SW50b05vZGUgPSBQeUludF9Gcm9tTG9uZygobG9uZykgb2JqLT5pbmRleCk7CisKKyAgICAgICAgICAgIHR1cGxlID0gUHlUdXBsZV9OZXcoMik7CisgICAgICAgICAgICBQeVR1cGxlX1NldEl0ZW0odHVwbGUsIDAsIG5vZGUpOworICAgICAgICAgICAgUHlUdXBsZV9TZXRJdGVtKHR1cGxlLCAxLCBpbmRleEludG9Ob2RlKTsKKworICAgICAgICAgICAgcmV0ID0gdHVwbGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFhQQVRIX1JBTkdFOgorICAgICAgICB7CisgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBiQ29sbGFwc2VkUmFuZ2U7CisKKyAgICAgICAgICAgIGJDb2xsYXBzZWRSYW5nZSA9ICggKG9iai0+dXNlcjIgPT0gTlVMTCkgfHwKKwkJICAgICAgICAgICAgICAgICgob2JqLT51c2VyMiA9PSBvYmotPnVzZXIpICYmIChvYmotPmluZGV4ID09IG9iai0+aW5kZXgyKSkgKTsKKyAgICAgICAgICAgIGlmICggYkNvbGxhcHNlZFJhbmdlICkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpub2RlOworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICppbmRleEludG9Ob2RlOworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp0dXBsZTsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqbGlzdDsKKworICAgICAgICAgICAgICAgIGxpc3QgPSBQeUxpc3RfTmV3KDEpOworCisgICAgICAgICAgICAgICAgbm9kZSA9IGxpYnhtbF94bWxOb2RlUHRyV3JhcChvYmotPnVzZXIpOworICAgICAgICAgICAgICAgIGluZGV4SW50b05vZGUgPSBQeUludF9Gcm9tTG9uZygobG9uZykgb2JqLT5pbmRleCk7CisKKyAgICAgICAgICAgICAgICB0dXBsZSA9IFB5VHVwbGVfTmV3KDIpOworICAgICAgICAgICAgICAgIFB5VHVwbGVfU2V0SXRlbSh0dXBsZSwgMCwgbm9kZSk7CisgICAgICAgICAgICAgICAgUHlUdXBsZV9TZXRJdGVtKHR1cGxlLCAxLCBpbmRleEludG9Ob2RlKTsKKworICAgICAgICAgICAgICAgIFB5TGlzdF9TZXRJdGVtKGxpc3QsIDAsIHR1cGxlKTsKKworICAgICAgICAgICAgICAgIHJldCA9IGxpc3Q7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpub2RlOworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICppbmRleEludG9Ob2RlOworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp0dXBsZTsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqbGlzdDsKKworICAgICAgICAgICAgICAgIGxpc3QgPSBQeUxpc3RfTmV3KDIpOworCisgICAgICAgICAgICAgICAgbm9kZSA9IGxpYnhtbF94bWxOb2RlUHRyV3JhcChvYmotPnVzZXIpOworICAgICAgICAgICAgICAgIGluZGV4SW50b05vZGUgPSBQeUludF9Gcm9tTG9uZygobG9uZykgb2JqLT5pbmRleCk7CisKKyAgICAgICAgICAgICAgICB0dXBsZSA9IFB5VHVwbGVfTmV3KDIpOworICAgICAgICAgICAgICAgIFB5VHVwbGVfU2V0SXRlbSh0dXBsZSwgMCwgbm9kZSk7CisgICAgICAgICAgICAgICAgUHlUdXBsZV9TZXRJdGVtKHR1cGxlLCAxLCBpbmRleEludG9Ob2RlKTsKKworICAgICAgICAgICAgICAgIFB5TGlzdF9TZXRJdGVtKGxpc3QsIDAsIHR1cGxlKTsKKworICAgICAgICAgICAgICAgIG5vZGUgPSBsaWJ4bWxfeG1sTm9kZVB0cldyYXAob2JqLT51c2VyMik7CisgICAgICAgICAgICAgICAgaW5kZXhJbnRvTm9kZSA9IFB5SW50X0Zyb21Mb25nKChsb25nKSBvYmotPmluZGV4Mik7CisKKyAgICAgICAgICAgICAgICB0dXBsZSA9IFB5VHVwbGVfTmV3KDIpOworICAgICAgICAgICAgICAgIFB5VHVwbGVfU2V0SXRlbSh0dXBsZSwgMCwgbm9kZSk7CisgICAgICAgICAgICAgICAgUHlUdXBsZV9TZXRJdGVtKHR1cGxlLCAxLCBpbmRleEludG9Ob2RlKTsKKworICAgICAgICAgICAgICAgIFB5TGlzdF9TZXRJdGVtKGxpc3QsIDEsIHR1cGxlKTsKKworICAgICAgICAgICAgICAgIHJldCA9IGxpc3Q7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOgorICAgICAgICB7CisgICAgICAgICAgICB4bWxMb2NhdGlvblNldFB0ciBzZXQ7CisKKyAgICAgICAgICAgIHNldCA9IG9iai0+dXNlcjsKKyAgICAgICAgICAgIGlmICggc2V0ICYmIHNldC0+bG9jTnIgPiAwICkgeworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpsaXN0OworCisgICAgICAgICAgICAgICAgbGlzdCA9IFB5TGlzdF9OZXcoc2V0LT5sb2NOcik7CisKKyAgICAgICAgICAgICAgICBmb3IgKGk9MDsgaTxzZXQtPmxvY05yOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgc2V0b2JqOworICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqcHlvYmo7CisKKyAgICAgICAgICAgICAgICAgICAgc2V0b2JqID0gc2V0LT5sb2NUYWJbaV07IC8qeG1sWFBhdGhPYmplY3RQdHIgc2V0b2JqKi8KKworICAgICAgICAgICAgICAgICAgICBweW9iaiA9IGxpYnhtbF94bWxYUGF0aE9iamVjdFB0cldyYXAoc2V0b2JqKTsKKyAgICAgICAgICAgICAgICAgICAgLyogeG1sWFBhdGhGcmVlT2JqZWN0KHNldG9iaikgaXMgY2FsbGVkICovCisgICAgICAgICAgICAgICAgICAgIHNldC0+bG9jVGFiW2ldID0gTlVMTDsKKworICAgICAgICAgICAgICAgICAgICBQeUxpc3RfU2V0SXRlbShsaXN0LCBpLCBweW9iaik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldC0+bG9jTnIgPSAwOworICAgICAgICAgICAgICAgIHJldCA9IGxpc3Q7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgICAgICAgICByZXQgPSBQeV9Ob25lOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyNpZmRlZiBERUJVRworICAgICAgICAgICAgcHJpbnRmKCJVbmFibGUgdG8gY29udmVydCBYUGF0aCBvYmplY3QgdHlwZSAlZFxuIiwgb2JqLT50eXBlKTsKKyNlbmRpZgorICAgICAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICAgICAgcmV0ID0gUHlfTm9uZTsKKyAgICB9CisgICAgeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisgICAgcmV0dXJuIChyZXQpOworfQorCit4bWxYUGF0aE9iamVjdFB0cgorbGlieG1sX3htbFhQYXRoT2JqZWN0UHRyQ29udmVydChQeU9iamVjdCAqIG9iaikKK3sKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQgPSBOVUxMOworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxYUGF0aE9iamVjdFB0ckNvbnZlcnQ6IG9iaiA9ICVwXG4iLCBvYmopOworI2VuZGlmCisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGlmIFB5RmxvYXRfQ2hlY2sKKyAgICAgICAgKG9iaikgeworICAgICAgICByZXQgPSB4bWxYUGF0aE5ld0Zsb2F0KChkb3VibGUpIFB5RmxvYXRfQVNfRE9VQkxFKG9iaikpOworCisgICAgfSBlbHNlIGlmIFB5SW50X0NoZWNrKG9iaikgeworCisgICAgICAgIHJldCA9IHhtbFhQYXRoTmV3RmxvYXQoKGRvdWJsZSkgUHlJbnRfQVNfTE9ORyhvYmopKTsKKworI2lmZGVmIFB5Qm9vbF9DaGVjaworICAgIH0gZWxzZSBpZiBQeUJvb2xfQ2hlY2sgKG9iaikgeworCisgICAgICAgIGlmIChvYmogPT0gUHlfVHJ1ZSkgeworICAgICAgICAgIHJldCA9IHhtbFhQYXRoTmV3Qm9vbGVhbigxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICByZXQgPSB4bWxYUGF0aE5ld0Jvb2xlYW4oMCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0gZWxzZSBpZiBQeVN0cmluZ19DaGVjaworICAgICAgICAob2JqKSB7CisgICAgICAgIHhtbENoYXIgKnN0cjsKKworICAgICAgICBzdHIgPSB4bWxTdHJuZHVwKChjb25zdCB4bWxDaGFyICopIFB5U3RyaW5nX0FTX1NUUklORyhvYmopLAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5U3RyaW5nX0dFVF9TSVpFKG9iaikpOworICAgICAgICByZXQgPSB4bWxYUGF0aFdyYXBTdHJpbmcoc3RyKTsKKyAgICB9IGVsc2UgaWYgUHlMaXN0X0NoZWNrCisgICAgICAgIChvYmopIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIFB5T2JqZWN0ICpub2RlOworICAgICAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICAgICAgeG1sTm9kZVNldFB0ciBzZXQ7CisKKyAgICAgICAgc2V0ID0geG1sWFBhdGhOb2RlU2V0Q3JlYXRlKE5VTEwpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBQeUxpc3RfU2l6ZShvYmopOyBpKyspIHsKKyAgICAgICAgICAgIG5vZGUgPSBQeUxpc3RfR2V0SXRlbShvYmosIGkpOworICAgICAgICAgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChub2RlLT5vYl90eXBlID09IE5VTEwpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBjdXIgPSBOVUxMOworICAgICAgICAgICAgaWYgKFB5Q09iamVjdF9DaGVjayhub2RlKSkgeworI2lmZGVmIERFQlVHCisgICAgICAgICAgICAgICAgcHJpbnRmKCJHb3QgYSBDT2JqZWN0XG4iKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGN1ciA9IFB5eG1sTm9kZV9HZXQobm9kZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKFB5SW5zdGFuY2VfQ2hlY2sobm9kZSkpIHsKKyAgICAgICAgICAgICAgICBQeUluc3RhbmNlT2JqZWN0ICppbnN0ID0gKFB5SW5zdGFuY2VPYmplY3QgKikgbm9kZTsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqbmFtZSA9IGluc3QtPmluX2NsYXNzLT5jbF9uYW1lOworCisgICAgICAgICAgICAgICAgaWYgUHlTdHJpbmdfQ2hlY2sKKyAgICAgICAgICAgICAgICAgICAgKG5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciAqdHlwZSA9IFB5U3RyaW5nX0FTX1NUUklORyhuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKndyYXBwZXI7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJjbXAodHlwZSwgInhtbE5vZGUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlciA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3RfR2V0QXR0clN0cmluZyhub2RlLCAoY2hhciAqKSAiX28iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3cmFwcGVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXIgPSBQeXhtbE5vZGVfR2V0KHdyYXBwZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisjaWZkZWYgREVCVUcKKyAgICAgICAgICAgICAgICBwcmludGYoIlVua25vd24gb2JqZWN0IGluIFB5dGhvbiByZXR1cm4gbGlzdFxuIik7CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjdXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbFhQYXRoTm9kZVNldEFkZChzZXQsIGN1cik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0ID0geG1sWFBhdGhXcmFwTm9kZVNldChzZXQpOworICAgIH0gZWxzZSB7CisjaWZkZWYgREVCVUcKKyAgICAgICAgcHJpbnRmKCJVbmFibGUgdG8gY29udmVydCBQeXRob24gT2JqZWN0IHRvIFhQYXRoIik7CisjZW5kaWYKKyAgICB9CisgICAgUHlfREVDUkVGKG9iaik7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sVmFsaWRDdHh0UHRyV3JhcCh4bWxWYWxpZEN0eHRQdHIgdmFsaWQpCit7CisJUHlPYmplY3QgKnJldDsKKwkKKyNpZmRlZiBERUJVRworCXByaW50ZigibGlieG1sX3htbFZhbGlkQ3R4dFB0cldyYXA6IHZhbGlkID0gJXBcbiIsIHZhbGlkKTsKKyNlbmRpZgorCWlmICh2YWxpZCA9PSBOVUxMKSB7CisJCVB5X0lOQ1JFRihQeV9Ob25lKTsKKwkJcmV0dXJuIChQeV9Ob25lKTsKKwl9CisKKwlyZXQgPSAKKwkJUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSB2YWxpZCwKKwkJCQkJCQkJCSAoY2hhciAqKSAieG1sVmFsaWRDdHh0UHRyIiwgTlVMTCk7CisKKwlyZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxDYXRhbG9nUHRyV3JhcCh4bWxDYXRhbG9nUHRyIGNhdGFsKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbE5vZGVQdHJXcmFwOiBjYXRhbCA9ICVwXG4iLCBjYXRhbCk7CisjZW5kaWYKKyAgICBpZiAoY2F0YWwgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIHJldCA9CisgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MoKHZvaWQgKikgY2F0YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbENhdGFsb2dQdHIiLCBOVUxMKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxPdXRwdXRCdWZmZXJQdHJXcmFwKHhtbE91dHB1dEJ1ZmZlclB0ciBidWZmZXIpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sT3V0cHV0QnVmZmVyUHRyV3JhcDogYnVmZmVyID0gJXBcbiIsIGJ1ZmZlcik7CisjZW5kaWYKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICByZXQgPQorICAgICAgICBQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjKCh2b2lkICopIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAieG1sT3V0cHV0QnVmZmVyUHRyIiwgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHJXcmFwKHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGJ1ZmZlcikKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKyAgICBwcmludGYoImxpYnhtbF94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cldyYXA6IGJ1ZmZlciA9ICVwXG4iLCBidWZmZXIpOworI2VuZGlmCisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0KKyAgICAgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbFBhcnNlcklucHV0QnVmZmVyUHRyIiwgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECitQeU9iamVjdCAqCitsaWJ4bWxfeG1sUmVnZXhwUHRyV3JhcCh4bWxSZWdleHBQdHIgcmVnZXhwKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFJlZ2V4cFB0cldyYXA6IHJlZ2V4cCA9ICVwXG4iLCByZWdleHApOworI2VuZGlmCisgICAgaWYgKHJlZ2V4cCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0KKyAgICAgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSByZWdleHAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbFJlZ2V4cFB0ciIsIE5VTEwpOworICAgIHJldHVybiAocmV0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorUHlPYmplY3QgKgorbGlieG1sX3htbFRleHRSZWFkZXJQdHJXcmFwKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFRleHRSZWFkZXJQdHJXcmFwOiByZWFkZXIgPSAlcFxuIiwgcmVhZGVyKTsKKyNlbmRpZgorICAgIGlmIChyZWFkZXIgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIHJldCA9CisgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MoKHZvaWQgKikgcmVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopICJ4bWxUZXh0UmVhZGVyUHRyIiwgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCitQeU9iamVjdCAqCitsaWJ4bWxfeG1sVGV4dFJlYWRlckxvY2F0b3JQdHJXcmFwKHhtbFRleHRSZWFkZXJMb2NhdG9yUHRyIGxvY2F0b3IpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sVGV4dFJlYWRlckxvY2F0b3JQdHJXcmFwOiBsb2NhdG9yID0gJXBcbiIsIGxvY2F0b3IpOworI2VuZGlmCisgICAgaWYgKGxvY2F0b3IgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIHJldCA9CisgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MoKHZvaWQgKikgbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAieG1sVGV4dFJlYWRlckxvY2F0b3JQdHIiLCBOVUxMKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1JFQURFUl9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECitQeU9iamVjdCAqCitsaWJ4bWxfeG1sUmVsYXhOR1B0cldyYXAoeG1sUmVsYXhOR1B0ciBjdHh0KQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFJlbGF4TkdQdHJXcmFwOiBjdHh0ID0gJXBcbiIsIGN0eHQpOworI2VuZGlmCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIHJldCA9CisgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MoKHZvaWQgKikgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAieG1sUmVsYXhOR1B0ciIsIE5VTEwpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyV3JhcCh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyNpZmRlZiBERUJVRworICAgIHByaW50ZigibGlieG1sX3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyV3JhcDogY3R4dCA9ICVwXG4iLCBjdHh0KTsKKyNlbmRpZgorICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0KKyAgICByZXQgPQorICAgICAgICBQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjKCh2b2lkICopIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIiwgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorUHlPYmplY3QgKgorbGlieG1sX3htbFJlbGF4TkdWYWxpZEN0eHRQdHJXcmFwKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgdmFsaWQpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cldyYXA6IHZhbGlkID0gJXBcbiIsIHZhbGlkKTsKKyNlbmRpZgorICAgIGlmICh2YWxpZCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIChQeV9Ob25lKTsKKyAgICB9CisgICAgcmV0ID0KKyAgICAgICAgUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSB2YWxpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSAieG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciIsIE5VTEwpOworICAgIHJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbFNjaGVtYVB0cldyYXAoeG1sU2NoZW1hUHRyIGN0eHQpCit7CisJUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisJcHJpbnRmKCJsaWJ4bWxfeG1sU2NoZW1hUHRyV3JhcDogY3R4dCA9ICVwXG4iLCBjdHh0KTsKKyNlbmRpZgorCWlmIChjdHh0ID09IE5VTEwpIHsKKwkJUHlfSU5DUkVGKFB5X05vbmUpOworCQlyZXR1cm4gKFB5X05vbmUpOworCX0KKwlyZXQgPQorCQlQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjKCh2b2lkICopIGN0eHQsCisJCQkJCQkJCQkgKGNoYXIgKikgInhtbFNjaGVtYVB0ciIsIE5VTEwpOworCXJldHVybiAocmV0KTsKK30KKworUHlPYmplY3QgKgorbGlieG1sX3htbFNjaGVtYVBhcnNlckN0eHRQdHJXcmFwKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKwlQeU9iamVjdCAqcmV0OworCisjaWZkZWYgREVCVUcKKwlwcmludGYoImxpYnhtbF94bWxTY2hlbWFQYXJzZXJDdHh0UHRyV3JhcDogY3R4dCA9ICVwXG4iLCBjdHh0KTsKKyNlbmRpZgorCWlmIChjdHh0ID09IE5VTEwpIHsKKwkJUHlfSU5DUkVGKFB5X05vbmUpOworCQlyZXR1cm4gKFB5X05vbmUpOworCX0KKwlyZXQgPSAKKwkJUHlDT2JqZWN0X0Zyb21Wb2lkUHRyQW5kRGVzYygodm9pZCAqKSBjdHh0LAorCQkJCQkJCQkJIChjaGFyICopICJ4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIiwgTlVMTCk7CisKKwlyZXR1cm4gKHJldCk7Cit9CisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxTY2hlbWFWYWxpZEN0eHRQdHJXcmFwKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2YWxpZCkKK3sKKwlQeU9iamVjdCAqcmV0OworCQorI2lmZGVmIERFQlVHCisJcHJpbnRmKCJsaWJ4bWxfeG1sU2NoZW1hVmFsaWRDdHh0UHRyV3JhcDogdmFsaWQgPSAlcFxuIiwgdmFsaWQpOworI2VuZGlmCisJaWYgKHZhbGlkID09IE5VTEwpIHsKKwkJUHlfSU5DUkVGKFB5X05vbmUpOworCQlyZXR1cm4gKFB5X05vbmUpOworCX0KKworCXJldCA9IAorCQlQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjKCh2b2lkICopIHZhbGlkLAorCQkJCQkJCQkJIChjaGFyICopICJ4bWxTY2hlbWFWYWxpZEN0eHRQdHIiLCBOVUxMKTsKKworCXJldHVybiAocmV0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCisKK1B5T2JqZWN0ICoKK2xpYnhtbF94bWxFcnJvclB0cldyYXAoeG1sRXJyb3JQdHIgZXJyb3IpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworI2lmZGVmIERFQlVHCisgICAgcHJpbnRmKCJsaWJ4bWxfeG1sRXJyb3JQdHJXcmFwOiBlcnJvciA9ICVwXG4iLCBlcnJvcik7CisjZW5kaWYKKyAgICBpZiAoZXJyb3IgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHJldHVybiAoUHlfTm9uZSk7CisgICAgfQorICAgIHJldCA9CisgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MoKHZvaWQgKikgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgInhtbEVycm9yUHRyIiwgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZWdyZXNzaW9ucy5weSBiL2xpYnhtbDItMi43LjcvcmVncmVzc2lvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGU4MTNjMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVncmVzc2lvbnMucHkKQEAgLTAsMCArMSwzNTAgQEAKKyMhL3Vzci9iaW4vcHl0aG9uIC11CitpbXBvcnQgZ2xvYiwgb3MsIHN0cmluZywgc3lzLCB0aHJlYWQsIHRpbWUKKyMgaW1wb3J0IGRpZmZsaWIKK2ltcG9ydCBsaWJ4bWwyCisKKyMjIworIworIyBUaGlzIGlzIGEgIldvcmsgaW4gUHJvZ3Jlc3MiIGF0dGVtcHQgYXQgYSBweXRob24gc2NyaXB0IHRvIHJ1biB0aGUKKyMgdmFyaW91cyByZWdyZXNzaW9uIHRlc3RzLiAgVGhlIHJhdGlvbmFsZSBmb3IgdGhpcyBpcyB0aGF0IGl0IHNob3VsZCBiZQorIyBwb3NzaWJsZSB0byBydW4gdGhpcyBvbiBtb3N0IG1ham9yIHBsYXRmb3JtcywgaW5jbHVkaW5nIHRob3NlIChzdWNoIGFzCisjIFdpbmRvd3MpIHdoaWNoIGRvbid0IHN1cHBvcnQgZ251IE1ha2UuCisjCisjIFRoZSBzY3JpcHQgaXMgZHJpdmVuIGJ5IGEgcGFyYW1ldGVyIGZpbGUgd2hpY2ggZGVmaW5lcyB0aGUgdmFyaW91cyB0ZXN0cworIyB0byBiZSBydW4sIHRvZ2V0aGVyIHdpdGggdGhlIHVuaXF1ZSBzZXR0aW5ncyBmb3IgZWFjaCBvZiB0aGVzZSB0ZXN0cy4gIEEKKyMgc2NyaXB0IGZvciBMaW51eCBpcyBpbmNsdWRlZCAocmVncmVzc2lvbnMueG1sKSwgd2l0aCBjb21tZW50cyBpbmRpY2F0aW5nCisjIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlIHZhcmlvdXMgcGFyYW1ldGVycy4gIFRvIHJ1biB0aGUgdGVzdHMgdW5kZXIgV2luZG93cywKKyMgZWRpdCByZWdyZXNzaW9ucy54bWwgYW5kIHJlbW92ZSB0aGUgY29tbWVudCBhcm91bmQgdGhlIGRlZmF1bHQgcGFyYW1ldGVyCisjICI8ZXhlY3BhdGg+IiAoaS5lLiBtYWtlIGl0IHBvaW50IHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgYmluYXJ5IGV4ZWN1dGFibGVzKS4KKyMKKyMgTm90ZSB0aGF0IHRoaXMgY3VycmVudCB2ZXJzaW9uIHJlcXVpcmVzIHRoZSBQeXRob24gYmluZGluZ3MgZm9yIGxpYnhtbDIgdG8KKyMgaGF2ZSBiZWVuIHByZXZpb3VzbHkgaW5zdGFsbGVkIGFuZCBhY2Nlc3NpYmxlCisjCisjIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyMgV2lsbGlhbSBCcmFjayAod2JyYWNrQG1tbS5jb20uaGspCisjCisjIyMKK2RlZmF1bHRQYXJhbXMgPSB7fQkjIHdpbGwgYmUgdXNlZCBhcyBhIGRpY3Rpb25hcnkgdG8gaG9sZCB0aGUgcGFyc2VkIHBhcmFtcworCisjIFRoaXMgcm91dGluZSBpcyB1c2VkIGZvciBjb21wYXJpbmcgdGhlIGV4cGVjdGVkIHN0ZG91dCAvIHN0ZGluIHdpdGggdGhlIHJlc3VsdHMuCisjIFRoZSBleHBlY3RlZCBkYXRhIGhhcyBhbHJlYWR5IGJlZW4gcmVhZCBpbjsgdGhlIHJlc3VsdCBpcyBhIGZpbGUgZGVzY3JpcHRvci4KKyMgV2l0aGluIHRoZSB0d28gc2V0cyBvZiBkYXRhLCBsaW5lcyBtYXkgYmVnaW4gd2l0aCBhIHBhdGggc3RyaW5nLiAgSWYgc28sIHRoZQorIyBjb2RlICJyZWxhdGl2aXNlcyIgaXQgYnkgcmVtb3ZpbmcgdGhlIHBhdGggY29tcG9uZW50LiAgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEKKyMgbGlzdCBhbHJlYWR5IHJlYWQgaW4gYnkgYSBzZXBhcmF0ZSB0aHJlYWQ7IHRoZSBzZWNvbmQgaXMgYSBmaWxlIGRlc2NyaXB0b3IuCisjIFRoZSB0d28gJ2Jhc2UnIGFyZ3VtZW50cyBhcmUgdG8gbGV0IG1lICJyZWxhdGl2aXNlIiB0aGUgcmVzdWx0cyBmaWxlcywgYWxsb3dpbmcKKyMgdGhlIHNjcmlwdCB0byBiZSBydW4gZnJvbSBhbnkgZGlyZWN0b3J5LgorZGVmIGNvbXBGaWxlcyhyZXMsIGV4cGVjdGVkLCBiYXNlMSwgYmFzZTIpOgorICAgIGwxID0gbGVuKGJhc2UxKQorICAgIGV4cCA9IGV4cGVjdGVkLnJlYWRsaW5lcygpCisgICAgZXhwZWN0ZWQuY2xvc2UoKQorICAgICMgdGhlICJyZWxhdGl2aXNhdGlvbiIgaXMgZG9uZSBoZXJlCisgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHJlcykpOgorICAgICAgICBqID0gc3RyaW5nLmZpbmQocmVzW2ldLGJhc2UxKQorICAgICAgICBpZiAoaiA9PSAwKSBvciAoKGogPT0gMikgYW5kIChyZXNbaV1bMDoyXSA9PSAnLi8nKSk6CisgICAgICAgICAgICBjb2wgPSBzdHJpbmcuZmluZChyZXNbaV0sJzonKQorICAgICAgICAgICAgaWYgY29sID4gMDoKKyAgICAgICAgICAgICAgICBzdGFydCA9IHN0cmluZy5yZmluZChyZXNbaV1bOmNvbF0sICcvJykKKyAgICAgICAgICAgICAgICBpZiBzdGFydCA+IDA6CisgICAgICAgICAgICAgICAgICAgIHJlc1tpXSA9IHJlc1tpXVtzdGFydCsxOl0KKworICAgIGZvciBpIGluIHJhbmdlKGxlbihleHApKToKKyAgICAgICAgaiA9IHN0cmluZy5maW5kKGV4cFtpXSxiYXNlMikKKyAgICAgICAgaWYgKGogPT0gMCkgb3IgKChqID09IDIpIGFuZCAoZXhwW2ldWzA6Ml0gPT0gJy4vJykpOgorICAgICAgICAgICAgY29sID0gc3RyaW5nLmZpbmQoZXhwW2ldLCc6JykKKyAgICAgICAgICAgIGlmIGNvbCA+IDA6CisgICAgICAgICAgICAgICAgc3RhcnQgPSBzdHJpbmcucmZpbmQoZXhwW2ldWzpjb2xdLCAnLycpCisgICAgICAgICAgICAgICAgaWYgc3RhcnQgPiAwOgorICAgICAgICAgICAgICAgICAgICBleHBbaV0gPSBleHBbaV1bc3RhcnQrMTpdCisKKyAgICByZXQgPSAwCisgICAgIyBpZGVhbGx5IHdlIHdvdWxkIGxpa2UgdG8gdXNlIGRpZmZsaWIgZnVuY3Rpb25zIGhlcmUgdG8gZG8gYQorICAgICMgbmljZSBjb21wYXJpc29uIG9mIHRoZSB0d28gc2V0cy4gIFVuZm9ydHVuYXRlbHksIGR1cmluZyB0ZXN0aW5nCisgICAgIyAodXNpbmcgcHl0aG9uIDIuMy4zIGFuZCAyLjMuNCkgdGhlIGZvbGxvd2luZyBjb2RlIHdlbnQgaW50bworICAgICMgYSBkZWFkIGxvb3AgdW5kZXIgd2luZG93cy4gIEknbGwgcHVyc3VlIHRoaXMgbGF0ZXIuCisjICAgIGRpZmYgPSBkaWZmbGliLm5kaWZmKHJlcywgZXhwKQorIyAgICBkaWZmID0gbGlzdChkaWZmKQorIyAgICBmb3IgbGluZSBpbiBkaWZmOgorIyAgICAgICAgaWYgbGluZVs6Ml0gIT0gJyAgJzoKKyMgICAgICAgICAgICBwcmludCBzdHJpbmcuc3RyaXAobGluZSkKKyMgICAgICAgICAgICByZXQgPSAtMQorCisgICAgIyB0aGUgZm9sbG93aW5nIHNpbXBsZSBjb21wYXJlIGlzIGZpbmUgZm9yIHdoZW4gdGhlIHR3byBkYXRhIHNldHMKKyAgICAjIChhY3R1YWwgcmVzdWx0IHZzLiBleHBlY3RlZCByZXN1bHQpIGFyZSBlcXVhbCwgd2hpY2ggc2hvdWxkIGJlIHRydWUgZm9yCisgICAgIyB1cy4gIFVuZm9ydHVuYXRlbHksIGlmIHRoZSB0ZXN0IGZhaWxzIGl0J3Mgbm90IG5pY2UgYXQgYWxsLgorICAgIHJsID0gbGVuKHJlcykKKyAgICBlbCA9IGxlbihleHApCisgICAgaWYgZWwgIT0gcmw6CisgICAgICAgIHByaW50ICdMZW5ndGggb2YgZXhwZWN0ZWQgaXMgJWQsIHJlc3VsdCBpcyAlZCcgJSAoZWwsIHJsKQorCXJldCA9IC0xCisgICAgZm9yIGkgaW4gcmFuZ2UobWluKGVsLCBybCkpOgorICAgICAgICBpZiBzdHJpbmcuc3RyaXAocmVzW2ldKSAhPSBzdHJpbmcuc3RyaXAoZXhwW2ldKToKKyAgICAgICAgICAgIHByaW50ICcrOiVzLTolcycgJSAocmVzW2ldLCBleHBbaV0pCisgICAgICAgICAgICByZXQgPSAtMQorICAgIGlmIGVsID4gcmw6CisgICAgICAgIGZvciBpIGluIHJhbmdlKHJsLCBlbCk6CisgICAgICAgICAgICBwcmludCAnLTolcycgJSBleHBbaV0KKyAgICAgICAgICAgIHJldCA9IC0xCisgICAgZWxpZiBybCA+IGVsOgorICAgICAgICBmb3IgaSBpbiByYW5nZSAoZWwsIHJsKToKKyAgICAgICAgICAgIHByaW50ICcrOiVzJyAlIHJlc1tpXQorICAgICAgICAgICAgcmV0ID0gLTEKKyAgICByZXR1cm4gcmV0CisKKyMgU2VwYXJhdGUgdGhyZWFkcyB0byBoYW5kbGUgc3Rkb3V0IGFuZCBzdGRlcnIgYXJlIGNyZWF0ZWQgdG8gcnVuIHRoaXMgZnVuY3Rpb24KK2RlZiByZWFkUGZpbGUoZmlsZSwgbGlzdCwgZmxhZyk6CisgICAgZGF0YSA9IGZpbGUucmVhZGxpbmVzKCkJIyBubyBjYWxsIGJ5IHJlZmVyZW5jZSwgc28gSSBjaGVhdAorICAgIGZvciBsIGluIGRhdGE6CisgICAgICAgIGxpc3QuYXBwZW5kKGwpCisgICAgZmlsZS5jbG9zZSgpCisgICAgZmxhZy5hcHBlbmQoJ29rJykKKworIyBUaGlzIHJvdXRpbmUgcnVucyB0aGUgdGVzdCBwcm9ncmFtIChlLmcuIHhtbGxpbnQpCitkZWYgcnVuT25lVGVzdCh0ZXN0RGVzY3JpcHRpb24sIGZpbGVuYW1lLCBpbmJhc2UsIGVycmJhc2UpOgorICAgIGlmICdleGVjcGF0aCcgaW4gdGVzdERlc2NyaXB0aW9uOgorICAgICAgICBkaXIgPSB0ZXN0RGVzY3JpcHRpb25bJ2V4ZWNwYXRoJ10gKyAnLycKKyAgICBlbHNlOgorICAgICAgICBkaXIgPSAnJworICAgIGNtZCA9IG9zLnBhdGguYWJzcGF0aChkaXIgKyB0ZXN0RGVzY3JpcHRpb25bJ3Rlc3Rwcm9nJ10pCisgICAgaWYgJ2ZsYWcnIGluIHRlc3REZXNjcmlwdGlvbjoKKyAgICAgICAgZm9yIGYgaW4gc3RyaW5nLnNwbGl0KHRlc3REZXNjcmlwdGlvblsnZmxhZyddKToKKyAgICAgICAgICAgIGNtZCArPSAnICcgKyBmCisgICAgaWYgJ3N0ZGluJyBub3QgaW4gdGVzdERlc2NyaXB0aW9uOgorICAgICAgICBjbWQgKz0gJyAnICsgaW5iYXNlICsgZmlsZW5hbWUKKyAgICBpZiAnZXh0YXJnJyBpbiB0ZXN0RGVzY3JpcHRpb246CisgICAgICAgIGNtZCArPSAnICcgKyB0ZXN0RGVzY3JpcHRpb25bJ2V4dGFyZyddCisKKyAgICBub1Jlc3VsdCA9IDAKKyAgICBleHBvdXQgPSBOb25lCisgICAgaWYgJ3Jlc2V4dCcgaW4gdGVzdERlc2NyaXB0aW9uOgorICAgICAgICBpZiB0ZXN0RGVzY3JpcHRpb25bJ3Jlc2V4dCddID09ICdOb25lJzoKKyAgICAgICAgICAgIG5vUmVzdWx0ID0gMQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXh0ID0gJy4nICsgdGVzdERlc2NyaXB0aW9uWydyZXNleHQnXQorICAgIGVsc2U6CisgICAgICAgIGV4dCA9ICcnCisgICAgaWYgbm90IG5vUmVzdWx0OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmbmFtZSA9IGVycmJhc2UgKyBmaWxlbmFtZSArIGV4dAorICAgICAgICAgICAgZXhwb3V0ID0gb3BlbihmbmFtZSwgJ3J0JykKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcHJpbnQgIkNhbid0IG9wZW4gcmVzdWx0IGZpbGUgJXMgLSBieXBhc3NpbmcgdGVzdCIgJSBmbmFtZQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICBub0Vycm9ycyA9IDAKKyAgICBpZiAncmVzZXJyZXh0JyBpbiB0ZXN0RGVzY3JpcHRpb246CisgICAgICAgIGlmIHRlc3REZXNjcmlwdGlvblsncmVzZXJyZXh0J10gPT0gJ05vbmUnOgorICAgICAgICAgICAgbm9FcnJvcnMgPSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBsZW4odGVzdERlc2NyaXB0aW9uWydyZXNlcnJleHQnXSk+MDoKKyAgICAgICAgICAgICAgICBleHQgPSAnLicgKyB0ZXN0RGVzY3JpcHRpb25bJ3Jlc2VycmV4dCddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4dCA9ICcnCisgICAgZWxzZToKKyAgICAgICAgZXh0ID0gJycKKyAgICBpZiBub3Qgbm9FcnJvcnM6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZuYW1lID0gZXJyYmFzZSArIGZpbGVuYW1lICsgZXh0CisgICAgICAgICAgICBleHBlcnIgPSBvcGVuKGZuYW1lLCAncnQnKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleHBlcnIgPSBOb25lCisgICAgZWxzZToKKyAgICAgICAgZXhwZXJyID0gTm9uZQorCisgICAgcGluLCBwb3V0LCBwZXJyID0gb3MucG9wZW4zKGNtZCkKKyAgICBpZiAnc3RkaW4nIGluIHRlc3REZXNjcmlwdGlvbjoKKyAgICAgICAgaW5maWxlID0gb3BlbihpbmJhc2UgKyBmaWxlbmFtZSwgJ3J0JykKKyAgICAgICAgcGluLndyaXRlbGluZXMoaW5maWxlLnJlYWRsaW5lcygpKQorICAgICAgICBpbmZpbGUuY2xvc2UoKQorICAgICAgICBwaW4uY2xvc2UoKQorCisgICAgIyBwb3BlbiBpcyBncmVhdCBmdW4sIGJ1dCBjYW4gbGVhZCB0byB0aGUgb2xkICJkZWFkbHkgZW1icmFjZSIsIGJlY2F1c2UKKyAgICAjIHN5bmNocm9uaXppbmcgdGhlIHdyaXRpbmcgKGJ5IHRoZSB0YXNrIGJlaW5nIHJ1bikgb2Ygc3Rkb3V0IGFuZCBzdGRlcnIKKyAgICAjIHdpdGggcmVzcGVjdCB0byB0aGUgcmVhZGluZyAoYnkgdGhpcyB0YXNrKSBpcyBiYXNpY2FsbHkgaW1wb3NzaWJsZS4gIEkKKyAgICAjIHRyaWVkIHNldmVyYWwgd2F5cyB0byBjaGVhdCwgYnV0IHRoZSBvbmx5IHdheSBJIGhhdmUgZm91bmQgd2hpY2ggd29ya3MKKyAgICAjIGlzIHRvIGRvIGEgKnZlcnkqIGVsZW1lbnRhcnkgbXVsdGktdGhyZWFkaW5nIGFwcHJvYWNoLiAgV2UgY2FuIG9ubHkgaG9wZQorICAgICMgdGhhdCBQeXRob24gdGhyZWFkcyBhcmUgaW1wbGVtZW50ZWQgb24gdGhlIHRhcmdldCBzeXN0ZW0gKGl0J3Mgb2theSBmb3IKKyAgICAjIExpbnV4IGFuZCBXaW5kb3dzKQorCisgICAgdGgxRmxhZyA9IFtdCSMgZmxhZ3MgdG8gc2hvdyB3aGVuIHRocmVhZHMgZmluaXNoCisgICAgdGgyRmxhZyA9IFtdCisgICAgb3V0ZmlsZSA9IFtdCSMgbGlzdHMgdG8gY29udGFpbiB0aGUgcGlwZSBkYXRhCisgICAgZXJyZmlsZSA9IFtdCisgICAgdGgxID0gdGhyZWFkLnN0YXJ0X25ld190aHJlYWQocmVhZFBmaWxlLCAocG91dCwgb3V0ZmlsZSwgdGgxRmxhZykpCisgICAgdGgyID0gdGhyZWFkLnN0YXJ0X25ld190aHJlYWQocmVhZFBmaWxlLCAocGVyciwgZXJyZmlsZSwgdGgyRmxhZykpCisgICAgd2hpbGUgKGxlbih0aDFGbGFnKT09MCkgb3IgKGxlbih0aDJGbGFnKT09MCk6CisgICAgICAgIHRpbWUuc2xlZXAoMC4wMDEpCisgICAgaWYgbm90IG5vUmVzdWx0OgorICAgICAgICByZXQgPSBjb21wRmlsZXMob3V0ZmlsZSwgZXhwb3V0LCBpbmJhc2UsICd0ZXN0LycpCisgICAgICAgIGlmIHJldCAhPSAwOgorICAgICAgICAgICAgcHJpbnQgJ3Ryb3VibGUgd2l0aCAlcycgJSBjbWQKKyAgICBlbHNlOgorICAgICAgICBpZiBsZW4ob3V0ZmlsZSkgIT0gMDoKKyAgICAgICAgICAgIGZvciBsIGluIG91dGZpbGU6CisgICAgICAgICAgICAgICAgcHJpbnQgbAorICAgICAgICAgICAgcHJpbnQgJ3Ryb3VibGUgd2l0aCAlcycgJSBjbWQKKyAgICBpZiBleHBlcnIgIT0gTm9uZToKKyAgICAgICAgcmV0ID0gY29tcEZpbGVzKGVycmZpbGUsIGV4cGVyciwgaW5iYXNlLCAndGVzdC8nKQorICAgICAgICBpZiByZXQgIT0gMDoKKyAgICAgICAgICAgIHByaW50ICd0cm91YmxlIHdpdGggJXMnICUgY21kCisgICAgZWxzZToKKyAgICAgICAgaWYgbm90IG5vRXJyb3JzOgorICAgICAgICAgICAgaWYgbGVuKGVycmZpbGUpICE9IDA6CisgICAgICAgICAgICAgICAgZm9yIGwgaW4gZXJyZmlsZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgbAorICAgICAgICAgICAgICAgIHByaW50ICd0cm91YmxlIHdpdGggJXMnICUgY21kCisKKyAgICBpZiAnc3RkaW4nIG5vdCBpbiB0ZXN0RGVzY3JpcHRpb246CisgICAgICAgIHBpbi5jbG9zZSgpCisKKyMgVGhpcyByb3V0aW5lIGlzIGNhbGxlZCBieSB0aGUgcGFyYW1ldGVyIGRlY29kaW5nIHJvdXRpbmUgd2hlbmV2ZXIgdGhlIGVuZCBvZiBhCisjICd0ZXN0JyBzZWN0aW9uIGlzIGVuY291bnRlcmVkLiAgRGVwZW5kaW5nIHVwb24gZmlsZSBnbG9iYmluZywgYSBsYXJnZSBudW1iZXIgb2YKKyMgaW5kaXZpZHVhbCB0ZXN0cyBtYXkgYmUgcnVuLgorZGVmIHJ1blRlc3QoZGVzY3JpcHRpb24pOgorICAgIHRlc3REZXNjcmlwdGlvbiA9IGRlZmF1bHRQYXJhbXMuY29weSgpCQkjIHNldCBkZWZhdWx0cworICAgIHRlc3REZXNjcmlwdGlvbi51cGRhdGUoZGVzY3JpcHRpb24pCQkJIyBvdmVycmlkZSB3aXRoIGN1cnJlbnQgZW50CisgICAgaWYgJ3Rlc3RuYW1lJyBpbiB0ZXN0RGVzY3JpcHRpb246CisgICAgICAgIHByaW50ICIjIyAlcyIgJSB0ZXN0RGVzY3JpcHRpb25bJ3Rlc3RuYW1lJ10KKyAgICBpZiBub3QgJ2ZpbGUnIGluIHRlc3REZXNjcmlwdGlvbjoKKyAgICAgICAgcHJpbnQgIk5vIGZpbGUgc3BlY2lmaWVkIC0gY2FuJ3QgcnVuIHRoaXMgdGVzdCEiCisgICAgICAgIHJldHVybgorICAgICMgU2V0IHVwIHRoZSBzb3VyY2UgYW5kIHJlc3VsdHMgZGlyZWN0b3J5IHBhdGhzIGZyb20gdGhlIGRlY29kZWQgcGFyYW1zCisgICAgZGlyID0gJycKKyAgICBpZiAnc3JjZGlyJyBpbiB0ZXN0RGVzY3JpcHRpb246CisgICAgICAgIGRpciArPSB0ZXN0RGVzY3JpcHRpb25bJ3NyY2RpciddICsgJy8nCisgICAgaWYgJ3NyY3N1YicgaW4gdGVzdERlc2NyaXB0aW9uOgorICAgICAgICBkaXIgKz0gdGVzdERlc2NyaXB0aW9uWydzcmNzdWInXSArICcvJworCisgICAgcmRpciA9ICcnCisgICAgaWYgJ3Jlc2RpcicgaW4gdGVzdERlc2NyaXB0aW9uOgorICAgICAgICByZGlyICs9IHRlc3REZXNjcmlwdGlvblsncmVzZGlyJ10gKyAnLycKKyAgICBpZiAncmVzc3ViJyBpbiB0ZXN0RGVzY3JpcHRpb246CisgICAgICAgIHJkaXIgKz0gdGVzdERlc2NyaXB0aW9uWydyZXNzdWInXSArICcvJworCisgICAgdGVzdEZpbGVzID0gZ2xvYi5nbG9iKG9zLnBhdGguYWJzcGF0aChkaXIgKyB0ZXN0RGVzY3JpcHRpb25bJ2ZpbGUnXSkpCisgICAgaWYgdGVzdEZpbGVzID09IFtdOgorICAgICAgICBwcmludCAiTm8gZmlsZXMgcmVzdWx0IGZyb20gJyVzJyIgJSB0ZXN0RGVzY3JpcHRpb25bJ2ZpbGUnXQorICAgICAgICByZXR1cm4KKworICAgICMgU29tZSB0ZXN0IHByb2dyYW1zIGp1c3QgZG9uJ3Qgd29yayAoeWV0KS4gIEZvciBub3cgd2UgZXhjbHVkZSB0aGVtLgorICAgIGNvdW50ID0gMAorICAgIGV4Y2wgPSBbXQorICAgIGlmICdleGNsZmlsZScgaW4gdGVzdERlc2NyaXB0aW9uOgorICAgICAgICBmb3IgZiBpbiBzdHJpbmcuc3BsaXQodGVzdERlc2NyaXB0aW9uWydleGNsZmlsZSddKToKKyAgICAgICAgICAgIGdsYiA9IGdsb2IuZ2xvYihkaXIgKyBmKQorICAgICAgICAgICAgZm9yIGcgaW4gZ2xiOgorICAgICAgICAgICAgICAgIGV4Y2wuYXBwZW5kKG9zLnBhdGguYWJzcGF0aChnKSkKKworICAgICMgUnVuIHRoZSBzcGVjaWZpZWQgdGVzdCBwcm9ncmFtCisgICAgZm9yIGYgaW4gdGVzdEZpbGVzOgorICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihmKToKKyAgICAgICAgICAgIGlmIGYgbm90IGluIGV4Y2w6CisgICAgICAgICAgICAgICAgY291bnQgPSBjb3VudCArIDEKKyAgICAgICAgICAgICAgICBydW5PbmVUZXN0KHRlc3REZXNjcmlwdGlvbiwgb3MucGF0aC5iYXNlbmFtZShmKSwgZGlyLCByZGlyKQorCisjCisjIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdXNlZCB3aXRoIHRoZSB4bWxyZWFkZXIgaW50ZXJmYWNlIHRvIGludGVycHJldCB0aGUKKyMgcGFyYW1ldGVyIGZpbGUuICBPbmNlIGEgdGVzdCBzZWN0aW9uIGhhcyBiZWVuIGlkZW50aWZpZWQsIHJ1blRlc3QgaXMgY2FsbGVkCisjIHdpdGggYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIHBhcnNlZCByZXN1bHRzIG9mIHRoZSBpbnRlcnByZXRhdGlvbi4KKyMKKworY2xhc3MgdGVzdERlZmF1bHRzOgorICAgIGN1clRleHQgPSAnJwkjIGFjY3VtdWxhdGVzIHRleHQgY29udGVudCBvZiBwYXJhbWV0ZXIKKworICAgIGRlZiBhZGRUb0RpY3Qoc2VsZiwga2V5KToKKyAgICAgICAgdHh0ID0gc3RyaW5nLnN0cmlwKHNlbGYuY3VyVGV4dCkKKyMgICAgICAgIGlmIHR4dCA9PSAnJzoKKyMgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYga2V5IG5vdCBpbiBkZWZhdWx0UGFyYW1zOgorICAgICAgICAgICAgZGVmYXVsdFBhcmFtc1trZXldID0gdHh0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkZWZhdWx0UGFyYW1zW2tleV0gKz0gJyAnICsgdHh0CisgICAgICAgIAorICAgIGRlZiBwcm9jZXNzTm9kZShzZWxmLCByZWFkZXIsIGN1ckNsYXNzKToKKyAgICAgICAgaWYgcmVhZGVyLkRlcHRoKCkgPT0gMjoKKyAgICAgICAgICAgIGlmIHJlYWRlci5Ob2RlVHlwZSgpID09IDE6CisgICAgICAgICAgICAgICAgc2VsZi5jdXJUZXh0ID0gJycJIyBjbGVhciB0aGUgd29ya2luZyB2YXJpYWJsZQorICAgICAgICAgICAgZWxpZiByZWFkZXIuTm9kZVR5cGUoKSA9PSAxNToKKyAgICAgICAgICAgICAgICBpZiAocmVhZGVyLk5hbWUoKSAhPSAnI3RleHQnKSBhbmQgKHJlYWRlci5OYW1lKCkgIT0gJyNjb21tZW50Jyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYWRkVG9EaWN0KHJlYWRlci5OYW1lKCkpCisgICAgICAgIGVsaWYgcmVhZGVyLkRlcHRoKCkgPT0gMzoKKyAgICAgICAgICAgIGlmIHJlYWRlci5OYW1lKCkgPT0gJyN0ZXh0JzoKKyAgICAgICAgICAgICAgICBzZWxmLmN1clRleHQgKz0gcmVhZGVyLlZhbHVlKCkKKworICAgICAgICBlbGlmIHJlYWRlci5Ob2RlVHlwZSgpID09IDE1OgkjIGVuZCBvZiBlbGVtZW50CisgICAgICAgICAgICBwcmludCAiRGVmYXVsdHMgaGF2ZSBiZWVuIHNldCB0bzoiCisgICAgICAgICAgICBmb3IgayBpbiBkZWZhdWx0UGFyYW1zLmtleXMoKToKKyAgICAgICAgICAgICAgICBwcmludCAiICAgJXMgOiAnJXMnIiAlIChrLCBkZWZhdWx0UGFyYW1zW2tdKQorICAgICAgICAgICAgY3VyQ2xhc3MgPSByb290Q2xhc3MoKQorICAgICAgICByZXR1cm4gY3VyQ2xhc3MKKworCitjbGFzcyB0ZXN0Q2xhc3M6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnRlc3RQYXJhbXMgPSB7fQkjIHN0YXJ0IHdpdGggYW4gZW1wdHkgc2V0IG9mIHBhcmFtcworICAgICAgICBzZWxmLmN1clRleHQgPSAnJwkjIGFuZCBlbXB0eSB0ZXh0CisKKyAgICBkZWYgYWRkVG9EaWN0KHNlbGYsIGtleSk6CisgICAgICAgIGRhdGEgPSBzdHJpbmcuc3RyaXAoc2VsZi5jdXJUZXh0KQorICAgICAgICBpZiBrZXkgbm90IGluIHNlbGYudGVzdFBhcmFtczoKKyAgICAgICAgICAgIHNlbGYudGVzdFBhcmFtc1trZXldID0gZGF0YQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2VsZi50ZXN0UGFyYW1zW2tleV0gIT0gJyc6CisgICAgICAgICAgICAgICAgZGF0YSA9ICcgJyArIGRhdGEKKyAgICAgICAgICAgIHNlbGYudGVzdFBhcmFtc1trZXldICs9IGRhdGEKKworICAgIGRlZiBwcm9jZXNzTm9kZShzZWxmLCByZWFkZXIsIGN1ckNsYXNzKToKKyAgICAgICAgaWYgcmVhZGVyLkRlcHRoKCkgPT0gMjoKKyAgICAgICAgICAgIGlmIHJlYWRlci5Ob2RlVHlwZSgpID09IDE6CisgICAgICAgICAgICAgICAgc2VsZi5jdXJUZXh0ID0gJycJIyBjbGVhciB0aGUgd29ya2luZyB2YXJpYWJsZQorICAgICAgICAgICAgICAgIGlmIHJlYWRlci5OYW1lKCkgbm90IGluIHNlbGYudGVzdFBhcmFtczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0UGFyYW1zW3JlYWRlci5OYW1lKCldID0gJycKKyAgICAgICAgICAgIGVsaWYgcmVhZGVyLk5vZGVUeXBlKCkgPT0gMTU6CisgICAgICAgICAgICAgICAgaWYgKHJlYWRlci5OYW1lKCkgIT0gJyN0ZXh0JykgYW5kIChyZWFkZXIuTmFtZSgpICE9ICcjY29tbWVudCcpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZFRvRGljdChyZWFkZXIuTmFtZSgpKQorICAgICAgICBlbGlmIHJlYWRlci5EZXB0aCgpID09IDM6CisgICAgICAgICAgICBpZiByZWFkZXIuTmFtZSgpID09ICcjdGV4dCc6CisgICAgICAgICAgICAgICAgc2VsZi5jdXJUZXh0ICs9IHJlYWRlci5WYWx1ZSgpCisKKyAgICAgICAgZWxpZiByZWFkZXIuTm9kZVR5cGUoKSA9PSAxNToJIyBlbmQgb2YgZWxlbWVudAorICAgICAgICAgICAgcnVuVGVzdChzZWxmLnRlc3RQYXJhbXMpCisgICAgICAgICAgICBjdXJDbGFzcyA9IHJvb3RDbGFzcygpCisgICAgICAgIHJldHVybiBjdXJDbGFzcworCisKK2NsYXNzIHJvb3RDbGFzczoKKyAgICBkZWYgcHJvY2Vzc05vZGUoc2VsZiwgcmVhZGVyLCBjdXJDbGFzcyk6CisgICAgICAgIGlmIHJlYWRlci5EZXB0aCgpID09IDA6CisgICAgICAgICAgICByZXR1cm4gY3VyQ2xhc3MKKyAgICAgICAgaWYgcmVhZGVyLkRlcHRoKCkgIT0gMToKKyAgICAgICAgICAgIHByaW50ICJVbmV4cGVjdGVkIGp1bms6IExldmVsICVkLCB0eXBlICVkLCBuYW1lICVzIiAlICgKKyAgICAgICAgICAgICAgICAgIHJlYWRlci5EZXB0aCgpLCByZWFkZXIuTm9kZVR5cGUoKSwgcmVhZGVyLk5hbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBjdXJDbGFzcworICAgICAgICBpZiByZWFkZXIuTmFtZSgpID09ICd0ZXN0JzoKKyAgICAgICAgICAgIGN1ckNsYXNzID0gdGVzdENsYXNzKCkKKyAgICAgICAgICAgIGN1ckNsYXNzLnRlc3RQYXJhbXMgPSB7fQorICAgICAgICBlbGlmIHJlYWRlci5OYW1lKCkgPT0gJ2RlZmF1bHRzJzoKKyAgICAgICAgICAgIGN1ckNsYXNzID0gdGVzdERlZmF1bHRzKCkKKyAgICAgICAgcmV0dXJuIGN1ckNsYXNzCisKK2RlZiBzdHJlYW1GaWxlKGZpbGVuYW1lKToKKyAgICB0cnk6CisgICAgICAgIHJlYWRlciA9IGxpYnhtbDIubmV3VGV4dFJlYWRlckZpbGVuYW1lKGZpbGVuYW1lKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcHJpbnQgInVuYWJsZSB0byBvcGVuICVzIiAlIChmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuCisKKyAgICBjdXJDbGFzcyA9IHJvb3RDbGFzcygpCisgICAgcmV0ID0gcmVhZGVyLlJlYWQoKQorICAgIHdoaWxlIHJldCA9PSAxOgorICAgICAgICBjdXJDbGFzcyA9IGN1ckNsYXNzLnByb2Nlc3NOb2RlKHJlYWRlciwgY3VyQ2xhc3MpCisgICAgICAgIHJldCA9IHJlYWRlci5SZWFkKCkKKworICAgIGlmIHJldCAhPSAwOgorICAgICAgICBwcmludCAiJXMgOiBmYWlsZWQgdG8gcGFyc2UiICUgKGZpbGVuYW1lKQorCisjIE9LLCB3ZSdyZSBmaW5pc2hlZCB3aXRoIGFsbCB0aGUgcm91dGluZXMuICBOb3cgZm9yIHRoZSBtYWluIHByb2dyYW06LQoraWYgbGVuKHN5cy5hcmd2KSAhPSAyOgorICAgIHByaW50ICJVc2FnZTogbWFrZXRlc3Qge2ZpbGVuYW1lfSIKKyAgICBzeXMuZXhpdCgtMSkKKworc3RyZWFtRmlsZShzeXMuYXJndlsxXSkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVncmVzc2lvbnMueG1sIGIvbGlieG1sMi0yLjcuNy9yZWdyZXNzaW9ucy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc4ODM4YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVncmVzc2lvbnMueG1sCkBAIC0wLDAgKzEsMjI2IEBACis8UmVncmVzc2lvblRlc3RzPgorPCEtLQorICBXaXRoaW4gdGhlIGZvbGxvd2luZyB0ZXN0IGRlc2NyaXB0aW9ucyB0aGUgcG9zc2libGUgZWxlbWVudHMgYXJlOgorICAgIEVsZW1lbnQgTmFtZSAgICBEZXNjcmlwdGlvbgorICAgICB0ZXN0bmFtZSAgICAgICBQbGFpbiB0ZXh0IG5hbWUgb2YgdGVzdAorICAgICBleGVjcGF0aCAgICAgICBwYXRobmFtZSBmb3IgdGVzdCBwcm9ncmFtKHMpCisgICAgIHRlc3Rwcm9nICAgICAgIHByb2dyYW0gdG8gcnVuIGZvciB0aGUgdGVzdCAKKyAgICAgZmxhZyAgICAgICAgICAgZmxhZ3MgZm9yIHByb2dyYW0gKG1heSBoYXZlIHNldmVyYWwpCisgICAgIGZpbGUgICAgICAgICAgIGZpbGVuYW1lIG9mIGlucHV0IGZpbGUgKHNldmVyYWwsIG9yIGdsb2Igb2spCisgICAgIGV4Y2xmaWxlICAgICAgIGZpbGVuYW1lIHRvIGJlIGV4Y3VkZWQgKHNldmVyYWwsIG9yIGdsb2Igb2spCisgICAgIHNyY2RpciAgICAgICAgIGdsb2JhbCBzb3VyY2UgZGlyZWN0b3J5IGZvciBpbnB1dCBmaWxlKHMpCisgICAgIHNyY3N1YiAgICAgICAgIHN1YmRpcmVjdG9yeSBmb3IgaW5wdXQKKyAgICAgcmVzZGlyICAgICAgICAgZGlyZWN0b3J5IGZvciByZXN1bHRzIGZpbGUocykKKyAgICAgcmVzc3ViICAgICAgICAgc3ViZGlyZWN0b3J5IGZvciByZXN1bHRzICAgIAorICAgICByZXNleHQgICAgICAgICBleHRlbnNpb24gZm9yIGV4cGVjdGVkIHJlc3VsdAorICAgICByZXNlcnJleHQgICAgICBleHRlbnNpb24gZm9yIGVycm9yIHJlc3VsdCAoJ05vbmUnID0+IG5vIGNoaykKKyAgICAgZXh0YXJnICAgICAgICAgYWRkaXRpb25hbCBhcmd1bWVudCBmb3IgY29tbWFuZAorICAgICBlcnJleGNsICAgICAgICBzdHJpbmcgdG8gaWdub3JlIHdoZW4gY2hlY2tpbmcgZGlmZnMKKyAgICAgc3RkaW4gICAgICAgICAgcGlwZSBpbnB1dCBmaWxlIHRvIHN0ZGluCistLT4KKworPCEtLQorICBOb3RlOiAgVGhlc2UgZGVmYXVsdHMgYXJlIHNldCB0byBydW4gZnJvbSB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5CistLT4KKyAgPGRlZmF1bHRzPgorICAgIDx0ZXN0bmFtZT5ub25hbWU8L3Rlc3RuYW1lPgorPCEtLSAgICA8ZXhlY3BhdGg+d2luMzIvYmluLm1zdmM8L2V4ZWNwYXRoPiAtLT4KKyAgICA8ZXhlY3BhdGg+LjwvZXhlY3BhdGg+CisgICAgPHRlc3Rwcm9nPnhtbGxpbnQ8L3Rlc3Rwcm9nPgorICAgIDxzcmNkaXI+dGVzdDwvc3JjZGlyPgorICAgIDxyZXNkaXI+cmVzdWx0PC9yZXNkaXI+CisgICAgPGZpbGU+Ki54bWw8L2ZpbGU+CisgICAgPHJlc2VycmV4dD5lcnI8L3Jlc2VycmV4dD4KKyAgICA8ZXJyZXhjbC8+CisgIDwvZGVmYXVsdHM+CisKKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlhNTCBSZWdyZXNzaW9uIFRlc3RzPC90ZXN0bmFtZT4KKyAgICA8ZXJyZXhjbD5mYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHk8L2VycmV4Y2w+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlhNTCBFbnRpdHkgU3Vic3QgUmVncmVzc2lvbiBUZXN0czwvdGVzdG5hbWU+CisgICAgPHJlc3N1Yj5ub2VudDwvcmVzc3ViPgorICAgIDxmbGFnPi0tbm9lbnQ8L2ZsYWc+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlhNTCBOYW1lc3BhY2VzIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDxzcmNzdWI+bmFtZXNwYWNlczwvc3Jjc3ViPgorICAgIDxyZXNzdWI+bmFtZXNwYWNlczwvcmVzc3ViPgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT54bWw6aWQgUmVncmVzc2lvbiBUZXN0czwvdGVzdG5hbWU+CisgICAgPHRlc3Rwcm9nPnRlc3RYUGF0aDwvdGVzdHByb2c+CisgICAgPHNyY3N1Yj54bWxpZDwvc3Jjc3ViPgorICAgIDxyZXNzdWI+eG1saWQ8L3Jlc3N1Yj4KKyAgICA8ZmxhZz4taTwvZmxhZz4KKyAgICA8ZmlsZT5pZF8qLnhtbDwvZmlsZT4KKyAgICA8ZXh0YXJnPiJpZCgnYmFyJykiPC9leHRhcmc+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPkVycm9yIENhc2VzIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDxzcmNzdWI+ZXJyb3JzPC9zcmNzdWI+CisgICAgPHJlc3N1Yj5lcnJvcnM8L3Jlc3N1Yj4KKyAgPC90ZXN0PgorICA8dGVzdD4KKyAgICA8dGVzdG5hbWU+RXJyb3IgQ2FzZXMgU3RyZWFtIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDxzcmNzdWI+ZXJyb3JzPC9zcmNzdWI+CisgICAgPHJlc3N1Yj5lcnJvcnM8L3Jlc3N1Yj4KKyAgICA8cmVzZXJyZXh0PnN0cjwvcmVzZXJyZXh0PgorICAgIDxmbGFnPi0tc3RyZWFtPC9mbGFnPgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5SZWFkZXIgUmVncmVzc2lvbiBUZXN0czwvdGVzdG5hbWU+CisgICAgPHJlc2V4dD5yZHI8L3Jlc2V4dD4KKyAgICA8ZmxhZz4tLW5vbmV0PC9mbGFnPgorICAgIDxmbGFnPi0tZGVidWc8L2ZsYWc+CisgICAgPGZsYWc+LS1zdHJlYW08L2ZsYWc+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgICA8cmVzZXJyZXh0Pk5vbmU8L3Jlc2VycmV4dD4KKyAgPC90ZXN0PgorICA8dGVzdD4KKyAgICA8dGVzdG5hbWU+V2Fsa2VyIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDxyZXNleHQ+cmRyPC9yZXNleHQ+CisgICAgPGZsYWc+LS1ub25ldDwvZmxhZz4KKyAgICA8ZmxhZz4tLWRlYnVnPC9mbGFnPgorICAgIDxmbGFnPi0td2Fsa2VyPC9mbGFnPgorICAgIDxmaWxlPio8L2ZpbGU+CisgICAgPHJlc2VycmV4dD5Ob25lPC9yZXNlcnJleHQ+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlJlYWRlciBFbnRpdGllcyBTdWJzdGl0dXRpb24gUmVncmVzc2lvbiBUZXN0czwvdGVzdG5hbWU+CisgICAgPHJlc2V4dD5yZGU8L3Jlc2V4dD4KKyAgICA8ZmxhZz4tLW5vbmV0PC9mbGFnPgorICAgIDxmbGFnPi0tZGVidWc8L2ZsYWc+CisgICAgPGZsYWc+LS1zdHJlYW08L2ZsYWc+CisgICAgPGZsYWc+LS1ub2VudDwvZmxhZz4KKyAgICA8ZmlsZT4qPC9maWxlPgorICAgIDxyZXNlcnJleHQ+Tm9uZTwvcmVzZXJyZXh0PgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5TQVggQ2FsbGJhY2tzIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDx0ZXN0cHJvZz50ZXN0U0FYPC90ZXN0cHJvZz4KKyAgICA8cmVzZXh0PnNheDwvcmVzZXh0PgorICAgIDxmaWxlPio8L2ZpbGU+CisgICAgPGV4Y2xmaWxlPnV0ZjE2Ki54bWw8L2V4Y2xmaWxlPgorICAgIDxyZXNlcnJleHQ+Tm9uZTwvcmVzZXJyZXh0PgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5YTUwgUHVzaCBSZWdyZXNzaW9uIFRlc3RzPC90ZXN0bmFtZT4KKyAgICA8ZmxhZz4tLXB1c2g8L2ZsYWc+CisgICAgPGVycmV4Y2w+ZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5PC9lcnJleGNsPgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5IVE1MIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDx0ZXN0cHJvZz50ZXN0SFRNTDwvdGVzdHByb2c+CisgICAgPHNyY3N1Yj5IVE1MPC9zcmNzdWI+CisgICAgPHJlc3N1Yj5IVE1MPC9yZXNzdWI+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgICA8ZXhjbGZpbGU+d2lyZWQuaHRtbDwvZXhjbGZpbGU+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlB1c2ggSFRNTCBSZWdyZXNzaW9uIFRlc3RzPC90ZXN0bmFtZT4KKyAgICA8dGVzdHByb2c+dGVzdEhUTUw8L3Rlc3Rwcm9nPgorICAgIDxmbGFnPi0tcHVzaDwvZmxhZz4KKyAgICA8c3Jjc3ViPkhUTUw8L3NyY3N1Yj4KKyAgICA8cmVzc3ViPkhUTUw8L3Jlc3N1Yj4KKyAgICA8ZmlsZT4qPC9maWxlPgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5IVE1MIFNBWCBSZWdyZXNzaW9uIFRlc3RzPC90ZXN0bmFtZT4KKyAgICA8dGVzdHByb2c+dGVzdEhUTUw8L3Rlc3Rwcm9nPgorICAgIDxmbGFnPi0tc2F4PC9mbGFnPgorICAgIDxzcmNzdWI+SFRNTDwvc3Jjc3ViPgorICAgIDxyZXNzdWI+SFRNTDwvcmVzc3ViPgorICAgIDxyZXNleHQ+c2F4PC9yZXNleHQ+CisgICAgPHJlc2VycmV4dD5Ob25lPC9yZXNlcnJleHQ+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgPC90ZXN0PgorICA8dGVzdD4KKyAgICA8dGVzdG5hbWU+UHVzaCBIVE1MIFNBWCBSZWdyZXNzaW9uIFRlc3RzPC90ZXN0bmFtZT4KKyAgICA8dGVzdHByb2c+dGVzdEhUTUw8L3Rlc3Rwcm9nPgorICAgIDxmbGFnPi0tc2F4PC9mbGFnPgorICAgIDxmbGFnPi0tcHVzaDwvZmxhZz4KKyAgICA8c3Jjc3ViPkhUTUw8L3NyY3N1Yj4KKyAgICA8cmVzc3ViPkhUTUw8L3Jlc3N1Yj4KKyAgICA8cmVzZXh0PnNheDwvcmVzZXh0PgorICAgIDxyZXNlcnJleHQ+Tm9uZTwvcmVzZXJyZXh0PgorICAgIDxmaWxlPio8L2ZpbGU+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlZhbGlkIERvY3VtZW50cyBSZWdyZXNzaW9uIFRlc3RzPC90ZXN0bmFtZT4KKyAgICA8c3Jjc3ViPlZDTTwvc3Jjc3ViPgorICAgIDxyZXNzdWI+VkNNPC9yZXNzdWI+CisgICAgPHJlc2V4dD5Ob25lPC9yZXNleHQ+CisgICAgPHJlc2VycmV4dD5Ob25lPC9yZXNlcnJleHQ+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgICA8ZmxhZz4tLXZhbGlkPC9mbGFnPgorICAgIDxmbGFnPi0tbm9vdXQ8L2ZsYWc+CisgICAgPGZsYWc+LS1ub3dhcm5pbmc8L2ZsYWc+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlZhbGlkaXR5IENoZWNraW5nIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDxzcmNzdWI+VkM8L3NyY3N1Yj4KKyAgICA8cmVzc3ViPlZDPC9yZXNzdWI+CisgICAgPHJlc2V4dD5Ob25lPC9yZXNleHQ+CisgICAgPHJlc2VycmV4dC8+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgICA8ZmxhZz4tLXZhbGlkPC9mbGFnPgorICAgIDxmbGFnPi0tbm9vdXQ8L2ZsYWc+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPkdlbmVyYWwgRG9jdW1lbnRzIFZhbGlkIFJlZ3Jlc3Npb24gVGVzdHM8L3Rlc3RuYW1lPgorICAgIDxzcmNzdWI+dmFsaWQ8L3NyY3N1Yj4KKyAgICA8cmVzc3ViPnZhbGlkPC9yZXNzdWI+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgICA8ZmxhZz4tLXZhbGlkPC9mbGFnPgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5VUkkgTW9kdWxlIFJlZ3Jlc3Npb24gVGVzdHMgKDEpPC90ZXN0bmFtZT4KKyAgICA8dGVzdHByb2c+dGVzdFVSSTwvdGVzdHByb2c+CisgICAgPHNyY3N1Yj5VUkk8L3NyY3N1Yj4KKyAgICA8c3RkaW4vPgorICAgIDxyZXNzdWI+VVJJPC9yZXNzdWI+CisgICAgPHJlc2VycmV4dD5Ob25lPC9yZXNlcnJleHQ+CisgICAgPGZpbGU+Ki5kYXRhPC9maWxlPgorICAgIDwhLS0gTm90ZSAtIHRoZSBmb2xsb3dpbmcgYXJnIG5lZWRzIHRvIHVzZSAiLCBub3QgJyAtLT4KKyAgICA8ZmxhZz4tYmFzZSAiaHR0cDovL2Zvby5jb20vcGF0aC90by9pbmRleC5odG1sP29yaWcjaGVscCI8L2ZsYWc+CisgIDwvdGVzdD4KKyAgPHRlc3Q+CisgICAgPHRlc3RuYW1lPlVSSSBNb2R1bGUgUmVncmVzc2lvbiBUZXN0cyAoMik8L3Rlc3RuYW1lPgorICAgIDx0ZXN0cHJvZz50ZXN0VVJJPC90ZXN0cHJvZz4KKyAgICA8c3Jjc3ViPlVSSTwvc3Jjc3ViPgorICAgIDxzdGRpbi8+CisgICAgPHJlc3N1Yj5VUkk8L3Jlc3N1Yj4KKyAgICA8cmVzZXJyZXh0Pk5vbmU8L3Jlc2VycmV4dD4KKyAgICA8ZmlsZT4qLnVyaTwvZmlsZT4KKyAgPC90ZXN0PgorICA8dGVzdD4KKyAgICA8dGVzdG5hbWU+WFBhdGggUmVncmVzc2lvbiBUZXN0cyAoMSk8L3Rlc3RuYW1lPgorICAgIDx0ZXN0cHJvZz50ZXN0WFBhdGg8L3Rlc3Rwcm9nPgorICAgIDxzcmNzdWI+WFBhdGgvZXhwcjwvc3Jjc3ViPgorICAgIDxyZXNzdWI+WFBhdGgvZXhwcjwvcmVzc3ViPgorICAgIDxmaWxlPio8L2ZpbGU+CisgICAgPGZsYWc+LWY8L2ZsYWc+CisgICAgPGZsYWc+LS1leHByPC9mbGFnPgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5YSW5jbHVkZSBSZWdyZXNzaW9uIFRlc3RzPC90ZXN0bmFtZT4KKyAgICA8c3Jjc3ViPlhJbmNsdWRlL2RvY3M8L3NyY3N1Yj4KKyAgICA8cmVzc3ViPlhJbmNsdWRlPC9yZXNzdWI+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgICA8ZmxhZz4tLW5vd2FybmluZzwvZmxhZz4KKyAgICA8ZmxhZz4tLXhpbmNsdWRlPC9mbGFnPgorICA8L3Rlc3Q+CisgIDx0ZXN0PgorICAgIDx0ZXN0bmFtZT5YSW5jbHVkZSB4bWxSZWFkZXIgUmVncmVzc2lvbiBUZXN0czwvdGVzdG5hbWU+CisgICAgPHNyY3N1Yj5YSW5jbHVkZS9kb2NzPC9zcmNzdWI+CisgICAgPHJlc3N1Yj5YSW5jbHVkZTwvcmVzc3ViPgorICAgIDxyZXNleHQ+cmRyPC9yZXNleHQ+CisgICAgPGZpbGU+KjwvZmlsZT4KKyAgICA8ZmxhZz4tLW5vd2FybmluZzwvZmxhZz4KKyAgICA8ZmxhZz4tLXhpbmNsdWRlPC9mbGFnPgorICAgIDxmbGFnPi0tc3RyZWFtPC9mbGFnPgorICAgIDxmbGFnPi0tZGVidWc8L2ZsYWc+CisgIDwvdGVzdD4KKzwvUmVncmVzc2lvblRlc3RzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZWxheG5nLmMgYi9saWJ4bWwyLTIuNy43L3JlbGF4bmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGJjNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZWxheG5nLmMKQEAgLTAsMCArMSwxMTAwMyBAQAorLyoKKyAqIHJlbGF4bmcuYyA6IGltcGxlbWVudGF0aW9uIG9mIHRoZSBSZWxheC1ORyBoYW5kbGluZyBhbmQgdmFsaWRpdHkgY2hlY2tpbmcKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgorICovCisKKy8qKgorICogVE9ETzoKKyAqIC0gYWRkIHN1cHBvcnQgZm9yIERURCBjb21wYXRpYmlsaXR5IHNwZWMKKyAqICAgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL3JlbGF4LW5nL2NvbXBhdGliaWxpdHktMjAwMTEyMDMuaHRtbAorICogLSByZXBvcnQgYmV0dGVyIG1lbSBhbGxvY2F0aW9ucyBwYm1zIGF0IHJ1bnRpbWUgYW5kIGFib3J0IGltbWVkaWF0ZWx5LgorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC9oYXNoLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorCisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKworI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzdHlwZXMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sYXV0b21hdGEuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVnZXhwLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHNjaGVtYXN0eXBlcy5oPgorCisvKgorICogVGhlIFJlbGF4LU5HIG5hbWVzcGFjZQorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqeG1sUmVsYXhOR05zID0gKGNvbnN0IHhtbENoYXIgKikKKyAgICAiaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiOworCisjZGVmaW5lIElTX1JFTEFYTkcobm9kZSwgdHlwZSkJCQkJCQlcCisgICAoKG5vZGUgIT0gTlVMTCkgJiYgKG5vZGUtPm5zICE9IE5VTEwpICYmCQkJCVwKKyAgICAoeG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgKGNvbnN0IHhtbENoYXIgKikgdHlwZSkpICYmCQlcCisgICAgKHhtbFN0ckVxdWFsKG5vZGUtPm5zLT5ocmVmLCB4bWxSZWxheE5HTnMpKSkKKworCisjaWYgMAorI2RlZmluZSBERUJVRyAxCisKKyNkZWZpbmUgREVCVUdfR1JBTU1BUiAxCisKKyNkZWZpbmUgREVCVUdfQ09OVEVOVCAxCisKKyNkZWZpbmUgREVCVUdfVFlQRSAxCisKKyNkZWZpbmUgREVCVUdfVkFMSUQgMQorCisjZGVmaW5lIERFQlVHX0lOVEVSTEVBVkUgMQorCisjZGVmaW5lIERFQlVHX0xJU1QgMQorCisjZGVmaW5lIERFQlVHX0lOQ0xVREUgMSAKKworI2RlZmluZSBERUJVR19FUlJPUiAxCisKKyNkZWZpbmUgREVCVUdfQ09NUElMRSAxCisKKyNkZWZpbmUgREVCVUdfUFJPR1JFU1NJVkUgMQorI2VuZGlmCisKKyNkZWZpbmUgTUFYX0VSUk9SIDUKKworI2RlZmluZSBUT0RPIAkJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJVbmltcGxlbWVudGVkIGJsb2NrIGF0ICVzOiVkXG4iLAkJCQlcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworCit0eXBlZGVmIHN0cnVjdCBfeG1sUmVsYXhOR1NjaGVtYSB4bWxSZWxheE5HU2NoZW1hOwordHlwZWRlZiB4bWxSZWxheE5HU2NoZW1hICp4bWxSZWxheE5HU2NoZW1hUHRyOworCit0eXBlZGVmIHN0cnVjdCBfeG1sUmVsYXhOR0RlZmluZSB4bWxSZWxheE5HRGVmaW5lOwordHlwZWRlZiB4bWxSZWxheE5HRGVmaW5lICp4bWxSZWxheE5HRGVmaW5lUHRyOworCit0eXBlZGVmIHN0cnVjdCBfeG1sUmVsYXhOR0RvY3VtZW50IHhtbFJlbGF4TkdEb2N1bWVudDsKK3R5cGVkZWYgeG1sUmVsYXhOR0RvY3VtZW50ICp4bWxSZWxheE5HRG9jdW1lbnRQdHI7CisKK3R5cGVkZWYgc3RydWN0IF94bWxSZWxheE5HSW5jbHVkZSB4bWxSZWxheE5HSW5jbHVkZTsKK3R5cGVkZWYgeG1sUmVsYXhOR0luY2x1ZGUgKnhtbFJlbGF4TkdJbmNsdWRlUHRyOworCit0eXBlZGVmIGVudW0geworICAgIFhNTF9SRUxBWE5HX0NPTUJJTkVfVU5ERUZJTkVEID0gMCwgIC8qIHVuZGVmaW5lZCAqLworICAgIFhNTF9SRUxBWE5HX0NPTUJJTkVfQ0hPSUNFLCAvKiBjaG9pY2UgKi8KKyAgICBYTUxfUkVMQVhOR19DT01CSU5FX0lOVEVSTEVBVkUgICAgICAvKiBpbnRlcmxlYXZlICovCit9IHhtbFJlbGF4TkdDb21iaW5lOworCit0eXBlZGVmIGVudW0geworICAgIFhNTF9SRUxBWE5HX0NPTlRFTlRfRVJST1IgPSAtMSwKKyAgICBYTUxfUkVMQVhOR19DT05URU5UX0VNUFRZID0gMCwKKyAgICBYTUxfUkVMQVhOR19DT05URU5UX1NJTVBMRSwKKyAgICBYTUxfUkVMQVhOR19DT05URU5UX0NPTVBMRVgKK30geG1sUmVsYXhOR0NvbnRlbnRUeXBlOworCit0eXBlZGVmIHN0cnVjdCBfeG1sUmVsYXhOR0dyYW1tYXIgeG1sUmVsYXhOR0dyYW1tYXI7Cit0eXBlZGVmIHhtbFJlbGF4TkdHcmFtbWFyICp4bWxSZWxheE5HR3JhbW1hclB0cjsKKworc3RydWN0IF94bWxSZWxheE5HR3JhbW1hciB7CisgICAgeG1sUmVsYXhOR0dyYW1tYXJQdHIgcGFyZW50OyAgICAgICAgLyogdGhlIHBhcmVudCBncmFtbWFyIGlmIGFueSAqLworICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIGNoaWxkcmVuOyAgICAgIC8qIHRoZSBjaGlsZHJlbiBncmFtbWFyIGlmIGFueSAqLworICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIG5leHQ7ICAvKiB0aGUgbmV4dCBncmFtbWFyIGlmIGFueSAqLworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgc3RhcnQ7ICAvKiA8c3RhcnQ+IGNvbnRlbnQgKi8KKyAgICB4bWxSZWxheE5HQ29tYmluZSBjb21iaW5lOyAgLyogdGhlIGRlZmF1bHQgY29tYmluZSB2YWx1ZSAqLworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgc3RhcnRMaXN0OyAgICAgIC8qIGxpc3Qgb2YgPHN0YXJ0PiBkZWZpbml0aW9ucyAqLworICAgIHhtbEhhc2hUYWJsZVB0ciBkZWZzOyAgICAgICAvKiBkZWZpbmUqICovCisgICAgeG1sSGFzaFRhYmxlUHRyIHJlZnM7ICAgICAgIC8qIHJlZmVyZW5jZXMgKi8KK307CisKKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfUkVMQVhOR19OT09QID0gLTEsICAgICAgLyogYSBubyBvcGVyYXRpb24gZnJvbSBzaW1wbGlmaWNhdGlvbiAgKi8KKyAgICBYTUxfUkVMQVhOR19FTVBUWSA9IDAsICAgICAgLyogYW4gZW1wdHkgcGF0dGVybiAqLworICAgIFhNTF9SRUxBWE5HX05PVF9BTExPV0VELCAgICAvKiBub3QgYWxsb3dlZCB0b3AgKi8KKyAgICBYTUxfUkVMQVhOR19FWENFUFQsICAgICAgICAgLyogZXhjZXB0IHByZXNlbnQgaW4gbmFtZWNsYXNzIGRlZnMgKi8KKyAgICBYTUxfUkVMQVhOR19URVhULCAgICAgICAgICAgLyogdGV4dHVhbCBjb250ZW50ICovCisgICAgWE1MX1JFTEFYTkdfRUxFTUVOVCwgICAgICAgIC8qIGFuIGVsZW1lbnQgKi8KKyAgICBYTUxfUkVMQVhOR19EQVRBVFlQRSwgICAgICAgLyogZXh0ZW5hbCBkYXRhIHR5cGUgZGVmaW5pdGlvbiAqLworICAgIFhNTF9SRUxBWE5HX1BBUkFNLCAgICAgICAgICAvKiBleHRlbmFsIGRhdGEgdHlwZSBwYXJhbWV0ZXIgKi8KKyAgICBYTUxfUkVMQVhOR19WQUxVRSwgICAgICAgICAgLyogdmFsdWUgZnJvbSBhbiBleHRlbmFsIGRhdGEgdHlwZSBkZWZpbml0aW9uICovCisgICAgWE1MX1JFTEFYTkdfTElTVCwgICAgICAgICAgIC8qIGEgbGlzdCBvZiBwYXR0ZXJucyAqLworICAgIFhNTF9SRUxBWE5HX0FUVFJJQlVURSwgICAgICAvKiBhbiBhdHRyYnV0ZSBmb2xsb3dpbmcgYSBwYXR0ZXJuICovCisgICAgWE1MX1JFTEFYTkdfREVGLCAgICAgICAgICAgIC8qIGEgZGVmaW5pdGlvbiAqLworICAgIFhNTF9SRUxBWE5HX1JFRiwgICAgICAgICAgICAvKiByZWZlcmVuY2UgdG8gYSBkZWZpbml0aW9uICovCisgICAgWE1MX1JFTEFYTkdfRVhURVJOQUxSRUYsICAgIC8qIHJlZmVyZW5jZSB0byBhbiBleHRlcm5hbCBkZWYgKi8KKyAgICBYTUxfUkVMQVhOR19QQVJFTlRSRUYsICAgICAgLyogcmVmZXJlbmNlIHRvIGEgZGVmIGluIHRoZSBwYXJlbnQgZ3JhbW1hciAqLworICAgIFhNTF9SRUxBWE5HX09QVElPTkFMLCAgICAgICAvKiBvcHRpb25hbCBwYXR0ZXJucyAqLworICAgIFhNTF9SRUxBWE5HX1pFUk9PUk1PUkUsICAgICAvKiB6ZXJvIG9yIG1vcmUgbm9uIGVtcHR5IHBhdHRlcm5zICovCisgICAgWE1MX1JFTEFYTkdfT05FT1JNT1JFLCAgICAgIC8qIG9uZSBvciBtb3JlIG5vbiBlbXB0eSBwYXR0ZXJucyAqLworICAgIFhNTF9SRUxBWE5HX0NIT0lDRSwgICAgICAgICAvKiBhIGNob2ljZSBiZXR3ZWVuIG5vbiBlbXB0eSBwYXR0ZXJucyAqLworICAgIFhNTF9SRUxBWE5HX0dST1VQLCAgICAgICAgICAvKiBhIHBhaXIvZ3JvdXAgb2Ygbm9uIGVtcHR5IHBhdHRlcm5zICovCisgICAgWE1MX1JFTEFYTkdfSU5URVJMRUFWRSwgICAgIC8qIGludGVybGVhdmluZyBjaG9pY2Ugb2Ygbm9uLWVtcHR5IHBhdHRlcm5zICovCisgICAgWE1MX1JFTEFYTkdfU1RBUlQgICAgICAgICAgIC8qIFVzZWQgdG8ga2VlcCB0cmFjayBvZiBzdGFydHMgb24gZ3JhbW1hcnMgKi8KK30geG1sUmVsYXhOR1R5cGU7CisKKyNkZWZpbmUgSVNfTlVMTEFCTEUJCSgxIDw8IDApCisjZGVmaW5lIElTX05PVF9OVUxMQUJMRQkJKDEgPDwgMSkKKyNkZWZpbmUgSVNfSU5ERVRFUk1JTklTVAkoMSA8PCAyKQorI2RlZmluZSBJU19NSVhFRAkJKDEgPDwgMykKKyNkZWZpbmUgSVNfVFJJQUJMRQkJKDEgPDwgNCkKKyNkZWZpbmUgSVNfUFJPQ0VTU0VECQkoMSA8PCA1KQorI2RlZmluZSBJU19DT01QSUxBQkxFCQkoMSA8PCA2KQorI2RlZmluZSBJU19OT1RfQ09NUElMQUJMRQkoMSA8PCA3KQorI2RlZmluZSBJU19FWFRFUk5BTF9SRUYJICAgICAgICAoMSA8PCA4KQorCitzdHJ1Y3QgX3htbFJlbGF4TkdEZWZpbmUgeworICAgIHhtbFJlbGF4TkdUeXBlIHR5cGU7ICAgICAgICAvKiB0aGUgdHlwZSBvZiBkZWZpbml0aW9uICovCisgICAgeG1sTm9kZVB0ciBub2RlOyAgICAgICAgICAgIC8qIHRoZSBub2RlIGluIHRoZSBzb3VyY2UgKi8KKyAgICB4bWxDaGFyICpuYW1lOyAgICAgICAgICAgICAgLyogdGhlIGVsZW1lbnQgbG9jYWwgbmFtZSBpZiBwcmVzZW50ICovCisgICAgeG1sQ2hhciAqbnM7ICAgICAgICAgICAgICAgIC8qIHRoZSBuYW1lc3BhY2UgbG9jYWwgbmFtZSBpZiBwcmVzZW50ICovCisgICAgeG1sQ2hhciAqdmFsdWU7ICAgICAgICAgICAgIC8qIHZhbHVlIHdoZW4gYXZhaWxhYmxlICovCisgICAgdm9pZCAqZGF0YTsgICAgICAgICAgICAgICAgIC8qIGRhdGEgbGliIG9yIHNwZWNpZmljIHBvaW50ZXIgKi8KKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGNvbnRlbnQ7ICAgICAgICAvKiB0aGUgZXhwZWN0ZWQgY29udGVudCAqLworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgcGFyZW50OyAvKiB0aGUgcGFyZW50IGRlZmluaXRpb24sIGlmIGFueSAqLworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbmV4dDsgICAvKiBsaXN0IHdpdGhpbiBncm91cGluZyBzZXF1ZW5jZXMgKi8KKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGF0dHJzOyAgLyogbGlzdCBvZiBhdHRyaWJ1dGVzIGZvciBlbGVtZW50cyAqLworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbmFtZUNsYXNzOyAgICAgIC8qIHRoZSBuYW1lQ2xhc3MgZGVmaW5pdGlvbiBpZiBhbnkgKi8KKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIG5leHRIYXNoOyAgICAgICAvKiBuZXh0IGRlZmluZSBpbiBkZWZzL3JlZnMgaGFzaCB0YWJsZXMgKi8KKyAgICBzaG9ydCBkZXB0aDsgICAgICAgICAgICAgICAgLyogdXNlZCBmb3IgdGhlIGN5Y2xlIGRldGVjdGlvbiAqLworICAgIHNob3J0IGRmbGFnczsgICAgICAgICAgICAgICAvKiBkZWZpbmUgcmVsYXRlZCBmbGFncyAqLworICAgIHhtbFJlZ2V4cFB0ciBjb250TW9kZWw7ICAgICAvKiBhIGNvbXBpbGVkIGNvbnRlbnQgbW9kZWwgaWYgYXZhaWxhYmxlICovCit9OworCisvKioKKyAqIF94bWxSZWxheE5HOgorICoKKyAqIEEgUmVsYXhOR3MgZGVmaW5pdGlvbgorICovCitzdHJ1Y3QgX3htbFJlbGF4TkcgeworICAgIHZvaWQgKl9wcml2YXRlOyAgICAgICAgICAgICAvKiB1bnVzZWQgYnkgdGhlIGxpYnJhcnkgZm9yIHVzZXJzIG9yIGJpbmRpbmdzICovCisgICAgeG1sUmVsYXhOR0dyYW1tYXJQdHIgdG9wZ3JhbW1hcjsKKyAgICB4bWxEb2NQdHIgZG9jOworCisgICAgaW50IGlkcmVmOyAgICAgICAgICAgICAgICAgIC8qIHJlcXVpcmVzIGlkcmVmIGNoZWNraW5nICovCisKKyAgICB4bWxIYXNoVGFibGVQdHIgZGVmczsgICAgICAgLyogZGVmaW5lICovCisgICAgeG1sSGFzaFRhYmxlUHRyIHJlZnM7ICAgICAgIC8qIHJlZmVyZW5jZXMgKi8KKyAgICB4bWxSZWxheE5HRG9jdW1lbnRQdHIgZG9jdW1lbnRzOyAgICAvKiBhbGwgdGhlIGRvY3VtZW50cyBsb2FkZWQgKi8KKyAgICB4bWxSZWxheE5HSW5jbHVkZVB0ciBpbmNsdWRlczsgICAgICAvKiBhbGwgdGhlIGluY2x1ZGVzIGxvYWRlZCAqLworICAgIGludCBkZWZOcjsgICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgZGVmaW5lcyB1c2VkICovCisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciAqZGVmVGFiOyAgICAgICAgLyogcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGRlZmluaXRpb25zICovCisKK307CisKKyNkZWZpbmUgWE1MX1JFTEFYTkdfSU5fQVRUUklCVVRFCSgxIDw8IDApCisjZGVmaW5lIFhNTF9SRUxBWE5HX0lOX09ORU9STU9SRQkoMSA8PCAxKQorI2RlZmluZSBYTUxfUkVMQVhOR19JTl9MSVNUCQkoMSA8PCAyKQorI2RlZmluZSBYTUxfUkVMQVhOR19JTl9EQVRBRVhDRVBUCSgxIDw8IDMpCisjZGVmaW5lIFhNTF9SRUxBWE5HX0lOX1NUQVJUCQkoMSA8PCA0KQorI2RlZmluZSBYTUxfUkVMQVhOR19JTl9PT01HUk9VUAkJKDEgPDwgNSkKKyNkZWZpbmUgWE1MX1JFTEFYTkdfSU5fT09NSU5URVJMRUFWRQkoMSA8PCA2KQorI2RlZmluZSBYTUxfUkVMQVhOR19JTl9FWFRFUk5BTFJFRgkoMSA8PCA3KQorI2RlZmluZSBYTUxfUkVMQVhOR19JTl9BTllFWENFUFQJKDEgPDwgOCkKKyNkZWZpbmUgWE1MX1JFTEFYTkdfSU5fTlNFWENFUFQJCSgxIDw8IDkpCisKK3N0cnVjdCBfeG1sUmVsYXhOR1BhcnNlckN0eHQgeworICAgIHZvaWQgKnVzZXJEYXRhOyAgICAgICAgICAgICAvKiB1c2VyIHNwZWNpZmljIGRhdGEgYmxvY2sgKi8KKyAgICB4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMgZXJyb3I7ICAvKiB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiBlcnJvcnMgKi8KKyAgICB4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyB3YXJuaW5nOyAgICAgIC8qIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIHdhcm5pbmcgKi8KKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNlcnJvcjsKKyAgICB4bWxSZWxheE5HVmFsaWRFcnIgZXJyOworCisgICAgeG1sUmVsYXhOR1B0ciBzY2hlbWE7ICAgICAgIC8qIFRoZSBzY2hlbWEgaW4gdXNlICovCisgICAgeG1sUmVsYXhOR0dyYW1tYXJQdHIgZ3JhbW1hcjsgICAgICAgLyogdGhlIGN1cnJlbnQgZ3JhbW1hciAqLworICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIHBhcmVudGdyYW1tYXI7IC8qIHRoZSBwYXJlbnQgZ3JhbW1hciAqLworICAgIGludCBmbGFnczsgICAgICAgICAgICAgICAgICAvKiBwYXJzZXIgZmxhZ3MgKi8KKyAgICBpbnQgbmJFcnJvcnM7ICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGVycm9ycyBhdCBwYXJzZSB0aW1lICovCisgICAgaW50IG5iV2FybmluZ3M7ICAgICAgICAgICAgIC8qIG51bWJlciBvZiB3YXJuaW5ncyBhdCBwYXJzZSB0aW1lICovCisgICAgY29uc3QgeG1sQ2hhciAqZGVmaW5lOyAgICAgIC8qIHRoZSBjdXJyZW50IGRlZmluZSBzY29wZSAqLworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmOyAgICAvKiB0aGUgY3VycmVudCBkZWZpbmUgKi8KKworICAgIGludCBuYkludGVybGVhdmVzOworICAgIHhtbEhhc2hUYWJsZVB0ciBpbnRlcmxlYXZlczsgICAgICAgIC8qIGtlZXAgdHJhY2sgb2YgYWxsIHRoZSBpbnRlcmxlYXZlcyAqLworCisgICAgeG1sUmVsYXhOR0RvY3VtZW50UHRyIGRvY3VtZW50czsgICAgLyogYWxsIHRoZSBkb2N1bWVudHMgbG9hZGVkICovCisgICAgeG1sUmVsYXhOR0luY2x1ZGVQdHIgaW5jbHVkZXM7ICAgICAgLyogYWxsIHRoZSBpbmNsdWRlcyBsb2FkZWQgKi8KKyAgICB4bWxDaGFyICpVUkw7CisgICAgeG1sRG9jUHRyIGRvY3VtZW50OworCisgICAgaW50IGRlZk5yOyAgICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBkZWZpbmVzIHVzZWQgKi8KKyAgICBpbnQgZGVmTWF4OyAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGRlZmluZXMgYWxvb2NhdGVkICovCisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciAqZGVmVGFiOyAgICAgICAgLyogcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGRlZmluaXRpb25zICovCisKKyAgICBjb25zdCBjaGFyICpidWZmZXI7CisgICAgaW50IHNpemU7CisKKyAgICAvKiB0aGUgZG9jdW1lbnQgc3RhY2sgKi8KKyAgICB4bWxSZWxheE5HRG9jdW1lbnRQdHIgZG9jOyAgLyogQ3VycmVudCBwYXJzZWQgZXh0ZXJuYWwgcmVmICovCisgICAgaW50IGRvY05yOyAgICAgICAgICAgICAgICAgIC8qIERlcHRoIG9mIHRoZSBwYXJzaW5nIHN0YWNrICovCisgICAgaW50IGRvY01heDsgICAgICAgICAgICAgICAgIC8qIE1heCBkZXB0aCBvZiB0aGUgcGFyc2luZyBzdGFjayAqLworICAgIHhtbFJlbGF4TkdEb2N1bWVudFB0ciAqZG9jVGFiOyAgICAgIC8qIGFycmF5IG9mIGRvY3MgKi8KKworICAgIC8qIHRoZSBpbmNsdWRlIHN0YWNrICovCisgICAgeG1sUmVsYXhOR0luY2x1ZGVQdHIgaW5jOyAgIC8qIEN1cnJlbnQgcGFyc2VkIGluY2x1ZGUgKi8KKyAgICBpbnQgaW5jTnI7ICAgICAgICAgICAgICAgICAgLyogRGVwdGggb2YgdGhlIGluY2x1ZGUgcGFyc2luZyBzdGFjayAqLworICAgIGludCBpbmNNYXg7ICAgICAgICAgICAgICAgICAvKiBNYXggZGVwdGggb2YgdGhlIHBhcnNpbmcgc3RhY2sgKi8KKyAgICB4bWxSZWxheE5HSW5jbHVkZVB0ciAqaW5jVGFiOyAgICAgICAvKiBhcnJheSBvZiBpbmNzICovCisKKyAgICBpbnQgaWRyZWY7ICAgICAgICAgICAgICAgICAgLyogcmVxdWlyZXMgaWRyZWYgY2hlY2tpbmcgKi8KKworICAgIC8qIHVzZWQgdG8gY29tcGlsZSBjb250ZW50IG1vZGVscyAqLworICAgIHhtbEF1dG9tYXRhUHRyIGFtOyAgICAgICAgICAvKiB0aGUgYXV0b21hdGEgKi8KKyAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIHN0YXRlOyAgLyogdXNlZCB0byBidWlsZCB0aGUgYXV0b21hdGEgKi8KKworICAgIGludCBjcm5nOwkJCS8qIGNvbXBhY3Qgc3ludGF4IGFuZCBvdGhlciBmbGFncyAqLworICAgIGludCBmcmVlZG9jOwkJLyogbmVlZCB0byBmcmVlIHRoZSBkb2N1bWVudCAqLworfTsKKworI2RlZmluZSBGTEFHU19JR05PUkFCTEUJCTEKKyNkZWZpbmUgRkxBR1NfTkVHQVRJVkUJCTIKKyNkZWZpbmUgRkxBR1NfTUlYRURfQ09OVEVOVAk0CisjZGVmaW5lIEZMQUdTX05PRVJST1IJCTgKKworLyoqCisgKiB4bWxSZWxheE5HSW50ZXJsZWF2ZUdyb3VwOgorICoKKyAqIEEgUmVsYXhOR3MgcGFydGl0aW9uIHNldCBhc3NvY2lhdGVkIHRvIGxpc3RzIG9mIGRlZmluaXRpb25zCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxSZWxheE5HSW50ZXJsZWF2ZUdyb3VwIHhtbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXA7Cit0eXBlZGVmIHhtbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXAgKnhtbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXBQdHI7CitzdHJ1Y3QgX3htbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXAgeworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgcnVsZTsgICAvKiB0aGUgcnVsZSB0byBzYXRpc2Z5ICovCisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciAqZGVmczsgIC8qIHRoZSBhcnJheSBvZiBlbGVtZW50IGRlZmluaXRpb25zICovCisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciAqYXR0cnM7IC8qIHRoZSBhcnJheSBvZiBhdHRyaWJ1dGVzIGRlZmluaXRpb25zICovCit9OworCisjZGVmaW5lIElTX0RFVEVSTUlOSVNUCQkxCisjZGVmaW5lIElTX05FRURDSEVDSwkJMgorCisvKioKKyAqIHhtbFJlbGF4TkdQYXJ0aXRpb25zOgorICoKKyAqIEEgUmVsYXhOR3MgcGFydGl0aW9uIGFzc29jaWF0ZWQgdG8gYW4gaW50ZXJsZWF2ZSBncm91cAorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sUmVsYXhOR1BhcnRpdGlvbiB4bWxSZWxheE5HUGFydGl0aW9uOwordHlwZWRlZiB4bWxSZWxheE5HUGFydGl0aW9uICp4bWxSZWxheE5HUGFydGl0aW9uUHRyOworc3RydWN0IF94bWxSZWxheE5HUGFydGl0aW9uIHsKKyAgICBpbnQgbmJncm91cHM7ICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGdyb3VwcyBpbiB0aGUgcGFydGl0aW9ucyAqLworICAgIHhtbEhhc2hUYWJsZVB0ciB0cmlhZ2U7ICAgICAvKiBoYXNoIHRhYmxlIHVzZWQgdG8gZGlyZWN0IG5vZGVzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByaWdodCBncm91cCB3aGVuIHBvc3NpYmxlICovCisgICAgaW50IGZsYWdzOyAgICAgICAgICAgICAgICAgIC8qIGRldGVybWluaXN0ID8gKi8KKyAgICB4bWxSZWxheE5HSW50ZXJsZWF2ZUdyb3VwUHRyICpncm91cHM7Cit9OworCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZFN0YXRlOgorICoKKyAqIEEgUmVsYXhOR3MgdmFsaWRhdGlvbiBzdGF0ZQorICovCisjZGVmaW5lIE1BWF9BVFRSIDIwCit0eXBlZGVmIHN0cnVjdCBfeG1sUmVsYXhOR1ZhbGlkU3RhdGUgeG1sUmVsYXhOR1ZhbGlkU3RhdGU7Cit0eXBlZGVmIHhtbFJlbGF4TkdWYWxpZFN0YXRlICp4bWxSZWxheE5HVmFsaWRTdGF0ZVB0cjsKK3N0cnVjdCBfeG1sUmVsYXhOR1ZhbGlkU3RhdGUgeworICAgIHhtbE5vZGVQdHIgbm9kZTsgICAgICAgICAgICAvKiB0aGUgY3VycmVudCBub2RlICovCisgICAgeG1sTm9kZVB0ciBzZXE7ICAgICAgICAgICAgIC8qIHRoZSBzZXF1ZW5jZSBvZiBjaGlsZHJlbiBsZWZ0IHRvIHZhbGlkYXRlICovCisgICAgaW50IG5iQXR0cnM7ICAgICAgICAgICAgICAgIC8qIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyAqLworICAgIGludCBtYXhBdHRyczsgICAgICAgICAgICAgICAvKiB0aGUgc2l6ZSBvZiBhdHRycyAqLworICAgIGludCBuYkF0dHJMZWZ0OyAgICAgICAgICAgICAvKiB0aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgbGVmdCB0byB2YWxpZGF0ZSAqLworICAgIHhtbENoYXIgKnZhbHVlOyAgICAgICAgICAgICAvKiB0aGUgdmFsdWUgd2hlbiBvcGVyYXRpbmcgb24gc3RyaW5nICovCisgICAgeG1sQ2hhciAqZW5kdmFsdWU7ICAgICAgICAgIC8qIHRoZSBlbmQgdmFsdWUgd2hlbiBvcGVyYXRpbmcgb24gc3RyaW5nICovCisgICAgeG1sQXR0clB0ciAqYXR0cnM7ICAgICAgICAgIC8qIHRoZSBhcnJheSBvZiBhdHRyaWJ1dGVzICovCit9OworCisvKioKKyAqIHhtbFJlbGF4TkdTdGF0ZXM6CisgKgorICogQSBSZWxheE5HcyBjb250YWluZXIgZm9yIHZhbGlkYXRpb24gc3RhdGUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlbGF4TkdTdGF0ZXMgeG1sUmVsYXhOR1N0YXRlczsKK3R5cGVkZWYgeG1sUmVsYXhOR1N0YXRlcyAqeG1sUmVsYXhOR1N0YXRlc1B0cjsKK3N0cnVjdCBfeG1sUmVsYXhOR1N0YXRlcyB7CisgICAgaW50IG5iU3RhdGU7ICAgICAgICAgICAgICAgIC8qIHRoZSBudW1iZXIgb2Ygc3RhdGVzICovCisgICAgaW50IG1heFN0YXRlOyAgICAgICAgICAgICAgIC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyICp0YWJTdGF0ZTsKK307CisKKyNkZWZpbmUgRVJST1JfSVNfRFVQCTEKKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRFcnJvcjoKKyAqCisgKiBBIFJlbGF4TkdzIHZhbGlkYXRpb24gZXJyb3IKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlbGF4TkdWYWxpZEVycm9yIHhtbFJlbGF4TkdWYWxpZEVycm9yOwordHlwZWRlZiB4bWxSZWxheE5HVmFsaWRFcnJvciAqeG1sUmVsYXhOR1ZhbGlkRXJyb3JQdHI7CitzdHJ1Y3QgX3htbFJlbGF4TkdWYWxpZEVycm9yIHsKKyAgICB4bWxSZWxheE5HVmFsaWRFcnIgZXJyOyAgICAgLyogdGhlIGVycm9yIG51bWJlciAqLworICAgIGludCBmbGFnczsgICAgICAgICAgICAgICAgICAvKiBmbGFncyAqLworICAgIHhtbE5vZGVQdHIgbm9kZTsgICAgICAgICAgICAvKiB0aGUgY3VycmVudCBub2RlICovCisgICAgeG1sTm9kZVB0ciBzZXE7ICAgICAgICAgICAgIC8qIHRoZSBjdXJyZW50IGNoaWxkICovCisgICAgY29uc3QgeG1sQ2hhciAqYXJnMTsgICAgICAgIC8qIGZpcnN0IGFyZyAqLworICAgIGNvbnN0IHhtbENoYXIgKmFyZzI7ICAgICAgICAvKiBzZWNvbmQgYXJnICovCit9OworCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZEN0eHQ6CisgKgorICogQSBSZWxheE5HcyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqLworCitzdHJ1Y3QgX3htbFJlbGF4TkdWYWxpZEN0eHQgeworICAgIHZvaWQgKnVzZXJEYXRhOyAgICAgICAgICAgICAvKiB1c2VyIHNwZWNpZmljIGRhdGEgYmxvY2sgKi8KKyAgICB4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMgZXJyb3I7ICAvKiB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiBlcnJvcnMgKi8KKyAgICB4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyB3YXJuaW5nOyAgICAgIC8qIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIHdhcm5pbmcgKi8KKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNlcnJvcjsKKyAgICBpbnQgbmJFcnJvcnM7ICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGVycm9ycyBpbiB2YWxpZGF0aW9uICovCisKKyAgICB4bWxSZWxheE5HUHRyIHNjaGVtYTsgICAgICAgLyogVGhlIHNjaGVtYSBpbiB1c2UgKi8KKyAgICB4bWxEb2NQdHIgZG9jOyAgICAgICAgICAgICAgLyogdGhlIGRvY3VtZW50IGJlaW5nIHZhbGlkYXRlZCAqLworICAgIGludCBmbGFnczsgICAgICAgICAgICAgICAgICAvKiB2YWxpZGF0aW9uIGZsYWdzICovCisgICAgaW50IGRlcHRoOyAgICAgICAgICAgICAgICAgIC8qIHZhbGlkYXRpb24gZGVwdGggKi8KKyAgICBpbnQgaWRyZWY7ICAgICAgICAgICAgICAgICAgLyogcmVxdWlyZXMgaWRyZWYgY2hlY2tpbmcgKi8KKyAgICBpbnQgZXJyTm87ICAgICAgICAgICAgICAgICAgLyogdGhlIGZpcnN0IGVycm9yIGZvdW5kICovCisKKyAgICAvKgorICAgICAqIEVycm9ycyBhY2N1bXVsYXRlZCBpbiBicmFuY2hlcyBtYXkgaGF2ZSB0byBiZSBzdGFja2VkIHRvIGJlCisgICAgICogcHJvdmlkZWQgYmFjayB3aGVuIGl0J3Mgc3VyZSB0aGV5IGFmZmVjdCB2YWxpZGF0aW9uLgorICAgICAqLworICAgIHhtbFJlbGF4TkdWYWxpZEVycm9yUHRyIGVycjsgICAgICAgIC8qIExhc3QgZXJyb3IgKi8KKyAgICBpbnQgZXJyTnI7ICAgICAgICAgICAgICAgICAgLyogRGVwdGggb2YgdGhlIGVycm9yIHN0YWNrICovCisgICAgaW50IGVyck1heDsgICAgICAgICAgICAgICAgIC8qIE1heCBkZXB0aCBvZiB0aGUgZXJyb3Igc3RhY2sgKi8KKyAgICB4bWxSZWxheE5HVmFsaWRFcnJvclB0ciBlcnJUYWI7ICAgICAvKiBzdGFjayBvZiBlcnJvcnMgKi8KKworICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyIHN0YXRlOyAgICAgIC8qIHRoZSBjdXJyZW50IHZhbGlkYXRpb24gc3RhdGUgKi8KKyAgICB4bWxSZWxheE5HU3RhdGVzUHRyIHN0YXRlczsgLyogdGhlIGFjY3VtdWxhdGVkIHN0YXRlIGxpc3QgKi8KKworICAgIHhtbFJlbGF4TkdTdGF0ZXNQdHIgZnJlZVN0YXRlOyAgICAgIC8qIHRoZSBwb29sIG9mIGZyZWUgdmFsaWQgc3RhdGVzICovCisgICAgaW50IGZyZWVTdGF0ZXNOcjsKKyAgICBpbnQgZnJlZVN0YXRlc01heDsKKyAgICB4bWxSZWxheE5HU3RhdGVzUHRyICpmcmVlU3RhdGVzOyAgICAvKiB0aGUgcG9vbCBvZiBmcmVlIHN0YXRlIGdyb3VwcyAqLworCisgICAgLyoKKyAgICAgKiBUaGlzIGlzIHVzZWQgZm9yICJwcm9ncmVzc2l2ZSIgdmFsaWRhdGlvbgorICAgICAqLworICAgIHhtbFJlZ0V4ZWNDdHh0UHRyIGVsZW07ICAgICAvKiB0aGUgY3VycmVudCBlbGVtZW50IHJlZ2V4cCAqLworICAgIGludCBlbGVtTnI7ICAgICAgICAgICAgICAgICAvKiB0aGUgbnVtYmVyIG9mIGVsZW1lbnQgdmFsaWRhdGVkICovCisgICAgaW50IGVsZW1NYXg7ICAgICAgICAgICAgICAgIC8qIHRoZSBtYXggZGVwdGggb2YgZWxlbWVudHMgKi8KKyAgICB4bWxSZWdFeGVjQ3R4dFB0ciAqZWxlbVRhYjsgLyogdGhlIHN0YWNrIG9mIHJlZ2V4cCBydW50aW1lICovCisgICAgaW50IHBzdGF0ZTsgICAgICAgICAgICAgICAgIC8qIHByb2dyZXNzaXZlIHN0YXRlICovCisgICAgeG1sTm9kZVB0ciBwbm9kZTsgICAgICAgICAgIC8qIHRoZSBjdXJyZW50IG5vZGUgKi8KKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIHBkZWY7ICAgLyogdGhlIG5vbi1zdHJlYW1hYmxlIGRlZmluaXRpb24gKi8KKyAgICBpbnQgcGVycjsgICAgICAgICAgICAgICAgICAgLyogc2lnbmFsIGVycm9yIGluIGNvbnRlbnQgbW9kZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogb3V0c2lkZSB0aGUgcmVnZXhwICovCit9OworCisvKioKKyAqIHhtbFJlbGF4TkdJbmNsdWRlOgorICoKKyAqIFN0cnVjdHVyZSBhc3NvY2lhdGVkIHRvIGEgUmVsYXhOR3MgZG9jdW1lbnQgZWxlbWVudAorICovCitzdHJ1Y3QgX3htbFJlbGF4TkdJbmNsdWRlIHsKKyAgICB4bWxSZWxheE5HSW5jbHVkZVB0ciBuZXh0OyAgLyoga2VlcCBhIGNoYWluIG9mIGluY2x1ZGVzICovCisgICAgeG1sQ2hhciAqaHJlZjsgICAgICAgICAgICAgIC8qIHRoZSBub3JtYWxpemVkIGhyZWYgdmFsdWUgKi8KKyAgICB4bWxEb2NQdHIgZG9jOyAgICAgICAgICAgICAgLyogdGhlIGFzc29jaWF0ZWQgWE1MIGRvY3VtZW50ICovCisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBjb250ZW50OyAgICAgICAgLyogdGhlIGRlZmluaXRpb25zICovCisgICAgeG1sUmVsYXhOR1B0ciBzY2hlbWE7ICAgICAgIC8qIHRoZSBzY2hlbWEgKi8KK307CisKKy8qKgorICogeG1sUmVsYXhOR0RvY3VtZW50OgorICoKKyAqIFN0cnVjdHVyZSBhc3NvY2lhdGVkIHRvIGEgUmVsYXhOR3MgZG9jdW1lbnQgZWxlbWVudAorICovCitzdHJ1Y3QgX3htbFJlbGF4TkdEb2N1bWVudCB7CisgICAgeG1sUmVsYXhOR0RvY3VtZW50UHRyIG5leHQ7IC8qIGtlZXAgYSBjaGFpbiBvZiBkb2N1bWVudHMgKi8KKyAgICB4bWxDaGFyICpocmVmOyAgICAgICAgICAgICAgLyogdGhlIG5vcm1hbGl6ZWQgaHJlZiB2YWx1ZSAqLworICAgIHhtbERvY1B0ciBkb2M7ICAgICAgICAgICAgICAvKiB0aGUgYXNzb2NpYXRlZCBYTUwgZG9jdW1lbnQgKi8KKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGNvbnRlbnQ7ICAgICAgICAvKiB0aGUgZGVmaW5pdGlvbnMgKi8KKyAgICB4bWxSZWxheE5HUHRyIHNjaGVtYTsgICAgICAgLyogdGhlIHNjaGVtYSAqLworICAgIGludCBleHRlcm5hbFJlZjsgICAgICAgICAgICAvKiAxIGlmIGFuIGV4dGVybmFsIHJlZiAqLworfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJU29tZSBmYWN0b3JpemVkIGVycm9yIHJvdXRpbmVzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxSbmdQRXJyTWVtb3J5OgorICogQGN0eHQ6ICBhbiBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGEgcmVkZWZpbml0aW9uIG9mIGF0dHJpYnV0ZSBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sUm5nUEVyck1lbW9yeSh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNjaGFubmVsID0gTlVMTDsKKyAgICB4bWxHZW5lcmljRXJyb3JGdW5jIGNoYW5uZWwgPSBOVUxMOworICAgIHZvaWQgKmRhdGEgPSBOVUxMOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBpZiAoY3R4dC0+c2Vycm9yICE9IE5VTEwpCisJICAgIHNjaGFubmVsID0gY3R4dC0+c2Vycm9yOworCWVsc2UKKwkgICAgY2hhbm5lbCA9IGN0eHQtPmVycm9yOworICAgICAgICBkYXRhID0gY3R4dC0+dXNlckRhdGE7CisgICAgICAgIGN0eHQtPm5iRXJyb3JzKys7CisgICAgfQorICAgIGlmIChleHRyYSkKKyAgICAgICAgX194bWxSYWlzZUVycm9yKHNjaGFubmVsLCBjaGFubmVsLCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgWE1MX0ZST01fUkVMQVhOR1AsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX05PX01FTU9SWSwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgZXh0cmEsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7CisgICAgZWxzZQorICAgICAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsIGNoYW5uZWwsIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBYTUxfRlJPTV9SRUxBWE5HUCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfTk9fTUVNT1JZLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgMCwgMCwgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7Cit9CisKKy8qKgorICogeG1sUm5nVkVyck1lbW9yeToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhIHJlZGVmaW5pdGlvbiBvZiBhdHRyaWJ1dGUgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFJuZ1ZFcnJNZW1vcnkoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNjaGFubmVsID0gTlVMTDsKKyAgICB4bWxHZW5lcmljRXJyb3JGdW5jIGNoYW5uZWwgPSBOVUxMOworICAgIHZvaWQgKmRhdGEgPSBOVUxMOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBpZiAoY3R4dC0+c2Vycm9yICE9IE5VTEwpCisJICAgIHNjaGFubmVsID0gY3R4dC0+c2Vycm9yOworCWVsc2UKKwkgICAgY2hhbm5lbCA9IGN0eHQtPmVycm9yOworICAgICAgICBkYXRhID0gY3R4dC0+dXNlckRhdGE7CisgICAgICAgIGN0eHQtPm5iRXJyb3JzKys7CisgICAgfQorICAgIGlmIChleHRyYSkKKyAgICAgICAgX194bWxSYWlzZUVycm9yKHNjaGFubmVsLCBjaGFubmVsLCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgWE1MX0ZST01fUkVMQVhOR1YsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX05PX01FTU9SWSwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgZXh0cmEsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7CisgICAgZWxzZQorICAgICAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsIGNoYW5uZWwsIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBYTUxfRlJPTV9SRUxBWE5HViwKKyAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfTk9fTUVNT1JZLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgMCwgMCwgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7Cit9CisKKy8qKgorICogeG1sUm5nUEVycjoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgbm9kZSByYWlzaW5nIHRoZSBlcnJvcgorICogQGVycm9yOiAgdGhlIGVycm9yIGNvZGUKKyAqIEBtc2c6ICBtZXNzYWdlCisgKiBAc3RyMTogIGV4dHJhIGluZm8KKyAqIEBzdHIyOiAgZXh0cmEgaW5mbworICoKKyAqIEhhbmRsZSBhIFJlbGF4IE5HIFBhcnNpbmcgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFJuZ1BFcnIoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCisgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQoreworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChjdHh0LT5zZXJyb3IgIT0gTlVMTCkKKwkgICAgc2NoYW5uZWwgPSBjdHh0LT5zZXJyb3I7CisJZWxzZQorCSAgICBjaGFubmVsID0gY3R4dC0+ZXJyb3I7CisgICAgICAgIGRhdGEgPSBjdHh0LT51c2VyRGF0YTsKKyAgICAgICAgY3R4dC0+bmJFcnJvcnMrKzsKKyAgICB9CisgICAgX194bWxSYWlzZUVycm9yKHNjaGFubmVsLCBjaGFubmVsLCBkYXRhLAorICAgICAgICAgICAgICAgICAgICBOVUxMLCBub2RlLCBYTUxfRlJPTV9SRUxBWE5HUCwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IsIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIHN0cjEsIChjb25zdCBjaGFyICopIHN0cjIsIE5VTEwsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIG1zZywgc3RyMSwgc3RyMik7Cit9CisKKy8qKgorICogeG1sUm5nVkVycjoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIG5vZGUgcmFpc2luZyB0aGUgZXJyb3IKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBjb2RlCisgKiBAbXNnOiAgbWVzc2FnZQorICogQHN0cjE6ICBleHRyYSBpbmZvCisgKiBAc3RyMjogIGV4dHJhIGluZm8KKyAqCisgKiBIYW5kbGUgYSBSZWxheCBORyBWYWxpZGF0aW9uIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSbmdWRXJyKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCisgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQoreworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChjdHh0LT5zZXJyb3IgIT0gTlVMTCkKKwkgICAgc2NoYW5uZWwgPSBjdHh0LT5zZXJyb3I7CisJZWxzZQorCSAgICBjaGFubmVsID0gY3R4dC0+ZXJyb3I7CisgICAgICAgIGRhdGEgPSBjdHh0LT51c2VyRGF0YTsKKyAgICAgICAgY3R4dC0+bmJFcnJvcnMrKzsKKyAgICB9CisgICAgX194bWxSYWlzZUVycm9yKHNjaGFubmVsLCBjaGFubmVsLCBkYXRhLAorICAgICAgICAgICAgICAgICAgICBOVUxMLCBub2RlLCBYTUxfRlJPTV9SRUxBWE5HViwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IsIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIHN0cjEsIChjb25zdCBjaGFyICopIHN0cjIsIE5VTEwsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIG1zZywgc3RyMSwgc3RyMik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJUHJlbGltaW5hcnkgdHlwZSBjaGVja2luZyBpbnRlcmZhY2VzCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxSZWxheE5HVHlwZUhhdmU6CisgKiBAZGF0YTogIGRhdGEgbmVlZGVkIGZvciB0aGUgbGlicmFyeQorICogQHR5cGU6ICB0aGUgdHlwZSBuYW1lCisgKiBAdmFsdWU6ICB0aGUgdmFsdWUgdG8gY2hlY2sKKyAqCisgKiBGdW5jdGlvbiBwcm92aWRlZCBieSBhIHR5cGUgbGlicmFyeSB0byBjaGVjayBpZiBhIHR5cGUgaXMgZXhwb3J0ZWQKKyAqCisgKiBSZXR1cm5zIDEgaWYgeWVzLCAwIGlmIG5vIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCit0eXBlZGVmIGludCAoKnhtbFJlbGF4TkdUeXBlSGF2ZSkgKHZvaWQgKmRhdGEsIGNvbnN0IHhtbENoYXIgKiB0eXBlKTsKKworLyoqCisgKiB4bWxSZWxheE5HVHlwZUNoZWNrOgorICogQGRhdGE6ICBkYXRhIG5lZWRlZCBmb3IgdGhlIGxpYnJhcnkKKyAqIEB0eXBlOiAgdGhlIHR5cGUgbmFtZQorICogQHZhbHVlOiAgdGhlIHZhbHVlIHRvIGNoZWNrCisgKiBAcmVzdWx0OiAgcGxhY2UgdG8gc3RvcmUgdGhlIHJlc3VsdCBpZiBuZWVkZWQKKyAqCisgKiBGdW5jdGlvbiBwcm92aWRlZCBieSBhIHR5cGUgbGlicmFyeSB0byBjaGVjayBpZiBhIHZhbHVlIG1hdGNoIGEgdHlwZQorICoKKyAqIFJldHVybnMgMSBpZiB5ZXMsIDAgaWYgbm8gYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3R5cGVkZWYgaW50ICgqeG1sUmVsYXhOR1R5cGVDaGVjaykgKHZvaWQgKmRhdGEsIGNvbnN0IHhtbENoYXIgKiB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHZhbHVlLCB2b2lkICoqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKTsKKworLyoqCisgKiB4bWxSZWxheE5HRmFjZXRDaGVjazoKKyAqIEBkYXRhOiAgZGF0YSBuZWVkZWQgZm9yIHRoZSBsaWJyYXJ5CisgKiBAdHlwZTogIHRoZSB0eXBlIG5hbWUKKyAqIEBmYWNldDogIHRoZSBmYWNldCBuYW1lCisgKiBAdmFsOiAgdGhlIGZhY2V0IHZhbHVlCisgKiBAc3RydmFsOiAgdGhlIHN0cmluZyB2YWx1ZQorICogQHZhbHVlOiAgdGhlIHZhbHVlIHRvIGNoZWNrCisgKgorICogRnVuY3Rpb24gcHJvdmlkZWQgYnkgYSB0eXBlIGxpYnJhcnkgdG8gY2hlY2sgYSB2YWx1ZSBmYWNldAorICoKKyAqIFJldHVybnMgMSBpZiB5ZXMsIDAgaWYgbm8gYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3R5cGVkZWYgaW50ICgqeG1sUmVsYXhOR0ZhY2V0Q2hlY2spICh2b2lkICpkYXRhLCBjb25zdCB4bWxDaGFyICogdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogZmFjZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3RydmFsLCB2b2lkICp2YWx1ZSk7CisKKy8qKgorICogeG1sUmVsYXhOR1R5cGVGcmVlOgorICogQGRhdGE6ICBkYXRhIG5lZWRlZCBmb3IgdGhlIGxpYnJhcnkKKyAqIEByZXN1bHQ6ICB0aGUgdmFsdWUgdG8gZnJlZQorICoKKyAqIEZ1bmN0aW9uIHByb3ZpZGVkIGJ5IGEgdHlwZSBsaWJyYXJ5IHRvIGZyZWUgYSByZXR1cm5lZCByZXN1bHQKKyAqLwordHlwZWRlZiB2b2lkICgqeG1sUmVsYXhOR1R5cGVGcmVlKSAodm9pZCAqZGF0YSwgdm9pZCAqcmVzdWx0KTsKKworLyoqCisgKiB4bWxSZWxheE5HVHlwZUNvbXBhcmU6CisgKiBAZGF0YTogIGRhdGEgbmVlZGVkIGZvciB0aGUgbGlicmFyeQorICogQHR5cGU6ICB0aGUgdHlwZSBuYW1lCisgKiBAdmFsdWUxOiAgdGhlIGZpcnN0IHZhbHVlCisgKiBAdmFsdWUyOiAgdGhlIHNlY29uZCB2YWx1ZQorICoKKyAqIEZ1bmN0aW9uIHByb3ZpZGVkIGJ5IGEgdHlwZSBsaWJyYXJ5IHRvIGNvbXBhcmUgdHdvIHZhbHVlcyBhY2NvcmRpbmdseQorICogdG8gYSB0eXBlLgorICoKKyAqIFJldHVybnMgMSBpZiB5ZXMsIDAgaWYgbm8gYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3R5cGVkZWYgaW50ICgqeG1sUmVsYXhOR1R5cGVDb21wYXJlKSAodm9pZCAqZGF0YSwgY29uc3QgeG1sQ2hhciAqIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB2YWx1ZTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgY3R4dDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNvbXAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogdmFsdWUyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGN0eHQyKTsKK3R5cGVkZWYgc3RydWN0IF94bWxSZWxheE5HVHlwZUxpYnJhcnkgeG1sUmVsYXhOR1R5cGVMaWJyYXJ5OwordHlwZWRlZiB4bWxSZWxheE5HVHlwZUxpYnJhcnkgKnhtbFJlbGF4TkdUeXBlTGlicmFyeVB0cjsKK3N0cnVjdCBfeG1sUmVsYXhOR1R5cGVMaWJyYXJ5IHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lc3BhY2U7ICAgLyogdGhlIGRhdGF0eXBlTGlicmFyeSB2YWx1ZSAqLworICAgIHZvaWQgKmRhdGE7ICAgICAgICAgICAgICAgICAvKiBkYXRhIG5lZWRlZCBmb3IgdGhlIGxpYnJhcnkgKi8KKyAgICB4bWxSZWxheE5HVHlwZUhhdmUgaGF2ZTsgICAgLyogdGhlIGV4cG9ydCBmdW5jdGlvbiAqLworICAgIHhtbFJlbGF4TkdUeXBlQ2hlY2sgY2hlY2s7ICAvKiB0aGUgY2hlY2tpbmcgZnVuY3Rpb24gKi8KKyAgICB4bWxSZWxheE5HVHlwZUNvbXBhcmUgY29tcDsgLyogdGhlIGNvbXBhcmUgZnVuY3Rpb24gKi8KKyAgICB4bWxSZWxheE5HRmFjZXRDaGVjayBmYWNldDsgLyogdGhlIGZhY2V0IGNoZWNrIGZ1bmN0aW9uICovCisgICAgeG1sUmVsYXhOR1R5cGVGcmVlIGZyZWVmOyAgIC8qIHRoZSBmcmVlaW5nIGZ1bmN0aW9uICovCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlBbGxvY2F0aW9uIGZ1bmN0aW9ucwkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgeG1sUmVsYXhOR0ZyZWVHcmFtbWFyKHhtbFJlbGF4TkdHcmFtbWFyUHRyIGdyYW1tYXIpOworc3RhdGljIHZvaWQgeG1sUmVsYXhOR0ZyZWVEZWZpbmUoeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmUpOworc3RhdGljIHZvaWQgeG1sUmVsYXhOR05vcm1FeHRTcGFjZSh4bWxDaGFyICogdmFsdWUpOworc3RhdGljIHZvaWQgeG1sUmVsYXhOR0ZyZWVJbm5lclNjaGVtYSh4bWxSZWxheE5HUHRyIHNjaGVtYSk7CitzdGF0aWMgaW50IHhtbFJlbGF4TkdFcXVhbFZhbGlkU3RhdGUoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciBzdGF0ZTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgc3RhdGUyKTsKK3N0YXRpYyB2b2lkIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZSh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgc3RhdGUpOworCisvKioKKyAqIHhtbFJlbGF4TkdGcmVlRG9jdW1lbnQ6CisgKiBAZG9jdTogIGEgZG9jdW1lbnQgc3RydWN0dXJlCisgKgorICogRGVhbGxvY2F0ZSBhIFJlbGF4TkcgZG9jdW1lbnQgc3RydWN0dXJlLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR0ZyZWVEb2N1bWVudCh4bWxSZWxheE5HRG9jdW1lbnRQdHIgZG9jdSkKK3sKKyAgICBpZiAoZG9jdSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZG9jdS0+aHJlZiAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGRvY3UtPmhyZWYpOworICAgIGlmIChkb2N1LT5kb2MgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZURvYyhkb2N1LT5kb2MpOworICAgIGlmIChkb2N1LT5zY2hlbWEgIT0gTlVMTCkKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWVJbm5lclNjaGVtYShkb2N1LT5zY2hlbWEpOworICAgIHhtbEZyZWUoZG9jdSk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0ZyZWVEb2N1bWVudExpc3Q6CisgKiBAZG9jdTogIGEgbGlzdCBvZiAgZG9jdW1lbnQgc3RydWN0dXJlCisgKgorICogRGVhbGxvY2F0ZSBhIFJlbGF4TkcgZG9jdW1lbnQgc3RydWN0dXJlcy4KKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdGcmVlRG9jdW1lbnRMaXN0KHhtbFJlbGF4TkdEb2N1bWVudFB0ciBkb2N1KQoreworICAgIHhtbFJlbGF4TkdEb2N1bWVudFB0ciBuZXh0OworCisgICAgd2hpbGUgKGRvY3UgIT0gTlVMTCkgeworICAgICAgICBuZXh0ID0gZG9jdS0+bmV4dDsKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWVEb2N1bWVudChkb2N1KTsKKyAgICAgICAgZG9jdSA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFJlbGF4TkdGcmVlSW5jbHVkZToKKyAqIEBpbmNsOiAgYSBpbmNsdWRlIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBSZWxheE5HIGluY2x1ZGUgc3RydWN0dXJlLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR0ZyZWVJbmNsdWRlKHhtbFJlbGF4TkdJbmNsdWRlUHRyIGluY2wpCit7CisgICAgaWYgKGluY2wgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGluY2wtPmhyZWYgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShpbmNsLT5ocmVmKTsKKyAgICBpZiAoaW5jbC0+ZG9jICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVEb2MoaW5jbC0+ZG9jKTsKKyAgICBpZiAoaW5jbC0+c2NoZW1hICE9IE5VTEwpCisgICAgICAgIHhtbFJlbGF4TkdGcmVlKGluY2wtPnNjaGVtYSk7CisgICAgeG1sRnJlZShpbmNsKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HRnJlZUluY2x1ZGVMaXN0OgorICogQGluY2w6ICBhIGluY2x1ZGUgc3RydWN0dXJlIGxpc3QKKyAqCisgKiBEZWFsbG9jYXRlIGEgUmVsYXhORyBpbmNsdWRlIHN0cnVjdHVyZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdGcmVlSW5jbHVkZUxpc3QoeG1sUmVsYXhOR0luY2x1ZGVQdHIgaW5jbCkKK3sKKyAgICB4bWxSZWxheE5HSW5jbHVkZVB0ciBuZXh0OworCisgICAgd2hpbGUgKGluY2wgIT0gTlVMTCkgeworICAgICAgICBuZXh0ID0gaW5jbC0+bmV4dDsKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWVJbmNsdWRlKGluY2wpOworICAgICAgICBpbmNsID0gbmV4dDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sUmVsYXhOR05ld1JlbGF4Tkc6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0IChvcHRpb25hbCkKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBSZWxheE5HIHN0cnVjdHVyZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBhbGxvY2F0ZWQgc3RydWN0dXJlIG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcgorICovCitzdGF0aWMgeG1sUmVsYXhOR1B0cgoreG1sUmVsYXhOR05ld1JlbGF4TkcoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxSZWxheE5HUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxSZWxheE5HUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlbGF4TkcpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlbGF4TkcpKTsKKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HRnJlZUlubmVyU2NoZW1hOgorICogQHNjaGVtYTogIGEgc2NoZW1hIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBSZWxheE5HIHNjaGVtYSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HRnJlZUlubmVyU2NoZW1hKHhtbFJlbGF4TkdQdHIgc2NoZW1hKQoreworICAgIGlmIChzY2hlbWEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjaGVtYS0+ZG9jICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVEb2Moc2NoZW1hLT5kb2MpOworICAgIGlmIChzY2hlbWEtPmRlZlRhYiAhPSBOVUxMKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzY2hlbWEtPmRlZk5yOyBpKyspCisgICAgICAgICAgICB4bWxSZWxheE5HRnJlZURlZmluZShzY2hlbWEtPmRlZlRhYltpXSk7CisgICAgICAgIHhtbEZyZWUoc2NoZW1hLT5kZWZUYWIpOworICAgIH0KKworICAgIHhtbEZyZWUoc2NoZW1hKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HRnJlZToKKyAqIEBzY2hlbWE6ICBhIHNjaGVtYSBzdHJ1Y3R1cmUKKyAqCisgKiBEZWFsbG9jYXRlIGEgUmVsYXhORyBzdHJ1Y3R1cmUuCisgKi8KK3ZvaWQKK3htbFJlbGF4TkdGcmVlKHhtbFJlbGF4TkdQdHIgc2NoZW1hKQoreworICAgIGlmIChzY2hlbWEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjaGVtYS0+dG9wZ3JhbW1hciAhPSBOVUxMKQorICAgICAgICB4bWxSZWxheE5HRnJlZUdyYW1tYXIoc2NoZW1hLT50b3BncmFtbWFyKTsKKyAgICBpZiAoc2NoZW1hLT5kb2MgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZURvYyhzY2hlbWEtPmRvYyk7CisgICAgaWYgKHNjaGVtYS0+ZG9jdW1lbnRzICE9IE5VTEwpCisgICAgICAgIHhtbFJlbGF4TkdGcmVlRG9jdW1lbnRMaXN0KHNjaGVtYS0+ZG9jdW1lbnRzKTsKKyAgICBpZiAoc2NoZW1hLT5pbmNsdWRlcyAhPSBOVUxMKQorICAgICAgICB4bWxSZWxheE5HRnJlZUluY2x1ZGVMaXN0KHNjaGVtYS0+aW5jbHVkZXMpOworICAgIGlmIChzY2hlbWEtPmRlZlRhYiAhPSBOVUxMKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzY2hlbWEtPmRlZk5yOyBpKyspCisgICAgICAgICAgICB4bWxSZWxheE5HRnJlZURlZmluZShzY2hlbWEtPmRlZlRhYltpXSk7CisgICAgICAgIHhtbEZyZWUoc2NoZW1hLT5kZWZUYWIpOworICAgIH0KKworICAgIHhtbEZyZWUoc2NoZW1hKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HTmV3R3JhbW1hcjoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQgKG9wdGlvbmFsKQorICoKKyAqIEFsbG9jYXRlIGEgbmV3IFJlbGF4TkcgZ3JhbW1hci4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBhbGxvY2F0ZWQgc3RydWN0dXJlIG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcgorICovCitzdGF0aWMgeG1sUmVsYXhOR0dyYW1tYXJQdHIKK3htbFJlbGF4TkdOZXdHcmFtbWFyKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sUmVsYXhOR0dyYW1tYXJQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFJlbGF4TkdHcmFtbWFyUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlbGF4TkdHcmFtbWFyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnJNZW1vcnkoY3R4dCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxSZWxheE5HR3JhbW1hcikpOworCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdGcmVlR3JhbW1hcjoKKyAqIEBncmFtbWFyOiAgYSBncmFtbWFyIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBSZWxheE5HIGdyYW1tYXIgc3RydWN0dXJlLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR0ZyZWVHcmFtbWFyKHhtbFJlbGF4TkdHcmFtbWFyUHRyIGdyYW1tYXIpCit7CisgICAgaWYgKGdyYW1tYXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdyYW1tYXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWVHcmFtbWFyKGdyYW1tYXItPmNoaWxkcmVuKTsKKyAgICB9CisgICAgaWYgKGdyYW1tYXItPm5leHQgIT0gTlVMTCkgeworICAgICAgICB4bWxSZWxheE5HRnJlZUdyYW1tYXIoZ3JhbW1hci0+bmV4dCk7CisgICAgfQorICAgIGlmIChncmFtbWFyLT5yZWZzICE9IE5VTEwpIHsKKyAgICAgICAgeG1sSGFzaEZyZWUoZ3JhbW1hci0+cmVmcywgTlVMTCk7CisgICAgfQorICAgIGlmIChncmFtbWFyLT5kZWZzICE9IE5VTEwpIHsKKyAgICAgICAgeG1sSGFzaEZyZWUoZ3JhbW1hci0+ZGVmcywgTlVMTCk7CisgICAgfQorCisgICAgeG1sRnJlZShncmFtbWFyKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HTmV3RGVmaW5lOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQG5vZGU6ICB0aGUgbm9kZSBpbiB0aGUgaW5wdXQgZG9jdW1lbnQuCisgKgorICogQWxsb2NhdGUgYSBuZXcgUmVsYXhORyBkZWZpbmUuCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworc3RhdGljIHhtbFJlbGF4TkdEZWZpbmVQdHIKK3htbFJlbGF4TkdOZXdEZWZpbmUoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgcmV0OworCisgICAgaWYgKGN0eHQtPmRlZk1heCA9PSAwKSB7CisgICAgICAgIGN0eHQtPmRlZk1heCA9IDE2OworICAgICAgICBjdHh0LT5kZWZOciA9IDA7CisgICAgICAgIGN0eHQtPmRlZlRhYiA9ICh4bWxSZWxheE5HRGVmaW5lUHRyICopCisgICAgICAgICAgICB4bWxNYWxsb2MoY3R4dC0+ZGVmTWF4ICogc2l6ZW9mKHhtbFJlbGF4TkdEZWZpbmVQdHIpKTsKKyAgICAgICAgaWYgKGN0eHQtPmRlZlRhYiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIGRlZmluZVxuIik7CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChjdHh0LT5kZWZNYXggPD0gY3R4dC0+ZGVmTnIpIHsKKyAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciAqdG1wOworCisgICAgICAgIGN0eHQtPmRlZk1heCAqPSAyOworICAgICAgICB0bXAgPSAoeG1sUmVsYXhOR0RlZmluZVB0ciAqKSB4bWxSZWFsbG9jKGN0eHQtPmRlZlRhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5kZWZNYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxSZWxheE5HRGVmaW5lUHRyKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBkZWZpbmVcbiIpOworICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgfQorICAgICAgICBjdHh0LT5kZWZUYWIgPSB0bXA7CisgICAgfQorICAgIHJldCA9ICh4bWxSZWxheE5HRGVmaW5lUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlbGF4TkdEZWZpbmUpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBkZWZpbmVcbiIpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sUmVsYXhOR0RlZmluZSkpOworICAgIGN0eHQtPmRlZlRhYltjdHh0LT5kZWZOcisrXSA9IHJldDsKKyAgICByZXQtPm5vZGUgPSBub2RlOworICAgIHJldC0+ZGVwdGggPSAtMTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0ZyZWVQYXJ0aXRpb246CisgKiBAcGFydGl0aW9uczogIGEgcGFydGl0aW9uIHNldCBzdHJ1Y3R1cmUKKyAqCisgKiBEZWFsbG9jYXRlIFJlbGF4TkcgcGFydGl0aW9uIHNldCBzdHJ1Y3R1cmVzLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR0ZyZWVQYXJ0aXRpb24oeG1sUmVsYXhOR1BhcnRpdGlvblB0ciBwYXJ0aXRpb25zKQoreworICAgIHhtbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXBQdHIgZ3JvdXA7CisgICAgaW50IGo7CisKKyAgICBpZiAocGFydGl0aW9ucyAhPSBOVUxMKSB7CisgICAgICAgIGlmIChwYXJ0aXRpb25zLT5ncm91cHMgIT0gTlVMTCkgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IHBhcnRpdGlvbnMtPm5iZ3JvdXBzOyBqKyspIHsKKyAgICAgICAgICAgICAgICBncm91cCA9IHBhcnRpdGlvbnMtPmdyb3Vwc1tqXTsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXAgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAtPmRlZnMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoZ3JvdXAtPmRlZnMpOworICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAtPmF0dHJzICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGdyb3VwLT5hdHRycyk7CisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoZ3JvdXApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhtbEZyZWUocGFydGl0aW9ucy0+Z3JvdXBzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocGFydGl0aW9ucy0+dHJpYWdlICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbEhhc2hGcmVlKHBhcnRpdGlvbnMtPnRyaWFnZSwgTlVMTCk7CisgICAgICAgIH0KKyAgICAgICAgeG1sRnJlZShwYXJ0aXRpb25zKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0ZyZWVEZWZpbmU6CisgKiBAZGVmaW5lOiAgYSBkZWZpbmUgc3RydWN0dXJlCisgKgorICogRGVhbGxvY2F0ZSBhIFJlbGF4TkcgZGVmaW5lIHN0cnVjdHVyZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdGcmVlRGVmaW5lKHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lKQoreworICAgIGlmIChkZWZpbmUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKChkZWZpbmUtPnR5cGUgPT0gWE1MX1JFTEFYTkdfVkFMVUUpICYmIChkZWZpbmUtPmF0dHJzICE9IE5VTEwpKSB7CisgICAgICAgIHhtbFJlbGF4TkdUeXBlTGlicmFyeVB0ciBsaWI7CisKKyAgICAgICAgbGliID0gKHhtbFJlbGF4TkdUeXBlTGlicmFyeVB0cikgZGVmaW5lLT5kYXRhOworICAgICAgICBpZiAoKGxpYiAhPSBOVUxMKSAmJiAobGliLT5mcmVlZiAhPSBOVUxMKSkKKyAgICAgICAgICAgIGxpYi0+ZnJlZWYobGliLT5kYXRhLCAodm9pZCAqKSBkZWZpbmUtPmF0dHJzKTsKKyAgICB9CisgICAgaWYgKChkZWZpbmUtPmRhdGEgIT0gTlVMTCkgJiYgKGRlZmluZS0+dHlwZSA9PSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFKSkKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWVQYXJ0aXRpb24oKHhtbFJlbGF4TkdQYXJ0aXRpb25QdHIpIGRlZmluZS0+ZGF0YSk7CisgICAgaWYgKChkZWZpbmUtPmRhdGEgIT0gTlVMTCkgJiYgKGRlZmluZS0+dHlwZSA9PSBYTUxfUkVMQVhOR19DSE9JQ0UpKQorICAgICAgICB4bWxIYXNoRnJlZSgoeG1sSGFzaFRhYmxlUHRyKSBkZWZpbmUtPmRhdGEsIE5VTEwpOworICAgIGlmIChkZWZpbmUtPm5hbWUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShkZWZpbmUtPm5hbWUpOworICAgIGlmIChkZWZpbmUtPm5zICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoZGVmaW5lLT5ucyk7CisgICAgaWYgKGRlZmluZS0+dmFsdWUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShkZWZpbmUtPnZhbHVlKTsKKyAgICBpZiAoZGVmaW5lLT5jb250TW9kZWwgIT0gTlVMTCkKKyAgICAgICAgeG1sUmVnRnJlZVJlZ2V4cChkZWZpbmUtPmNvbnRNb2RlbCk7CisgICAgeG1sRnJlZShkZWZpbmUpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdOZXdTdGF0ZXM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2l6ZTogIHRoZSBkZWZhdWx0IHNpemUgZm9yIHRoZSBjb250YWluZXIKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBSZWxheE5HIHZhbGlkYXRpb24gc3RhdGUgY29udGFpbmVyCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworc3RhdGljIHhtbFJlbGF4TkdTdGF0ZXNQdHIKK3htbFJlbGF4TkdOZXdTdGF0ZXMoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LCBpbnQgc2l6ZSkKK3sKKyAgICB4bWxSZWxheE5HU3RhdGVzUHRyIHJldDsKKworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+ZnJlZVN0YXRlcyAhPSBOVUxMKSAmJiAoY3R4dC0+ZnJlZVN0YXRlc05yID4gMCkpIHsKKyAgICAgICAgY3R4dC0+ZnJlZVN0YXRlc05yLS07CisgICAgICAgIHJldCA9IGN0eHQtPmZyZWVTdGF0ZXNbY3R4dC0+ZnJlZVN0YXRlc05yXTsKKyAgICAgICAgcmV0LT5uYlN0YXRlID0gMDsKKyAgICAgICAgcmV0dXJuIChyZXQpOworICAgIH0KKyAgICBpZiAoc2l6ZSA8IDE2KQorICAgICAgICBzaXplID0gMTY7CisKKyAgICByZXQgPSAoeG1sUmVsYXhOR1N0YXRlc1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxSZWxheE5HU3RhdGVzKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1ZFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgc3RhdGVzXG4iKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgcmV0LT5uYlN0YXRlID0gMDsKKyAgICByZXQtPm1heFN0YXRlID0gc2l6ZTsKKyAgICByZXQtPnRhYlN0YXRlID0gKHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyICopIHhtbE1hbGxvYygoc2l6ZSkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxSZWxheE5HVmFsaWRTdGF0ZVB0cikpOworICAgIGlmIChyZXQtPnRhYlN0YXRlID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBzdGF0ZXNcbiIpOworICAgICAgICB4bWxGcmVlKHJldCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HQWRkU3RhdGVVbmlxOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQHN0YXRlczogIHRoZSBzdGF0ZXMgY29udGFpbmVyCisgKiBAc3RhdGU6ICB0aGUgdmFsaWRhdGlvbiBzdGF0ZQorICoKKyAqIEFkZCBhIFJlbGF4TkcgdmFsaWRhdGlvbiBzdGF0ZSB0byB0aGUgY29udGFpbmVyIHdpdGhvdXQgY2hlY2tpbmcKKyAqIGZvciB1bmljaXR5LgorICoKKyAqIFJldHVybiAxIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgMCBpZiB0aGlzIGlzIGEgZHVwbGljYXRlIGFuZCAtMSBvbiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HQWRkU3RhdGVzVW5pcSh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HU3RhdGVzUHRyIHN0YXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyIHN0YXRlKQoreworICAgIGlmIChzdGF0ZSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBpZiAoc3RhdGVzLT5uYlN0YXRlID49IHN0YXRlcy0+bWF4U3RhdGUpIHsKKyAgICAgICAgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgKnRtcDsKKyAgICAgICAgaW50IHNpemU7CisKKyAgICAgICAgc2l6ZSA9IHN0YXRlcy0+bWF4U3RhdGUgKiAyOworICAgICAgICB0bXAgPSAoeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgKikgeG1sUmVhbGxvYyhzdGF0ZXMtPnRhYlN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZSkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAiYWRkaW5nIHN0YXRlc1xuIik7CisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgfQorICAgICAgICBzdGF0ZXMtPnRhYlN0YXRlID0gdG1wOworICAgICAgICBzdGF0ZXMtPm1heFN0YXRlID0gc2l6ZTsKKyAgICB9CisgICAgc3RhdGVzLT50YWJTdGF0ZVtzdGF0ZXMtPm5iU3RhdGUrK10gPSBzdGF0ZTsKKyAgICByZXR1cm4gKDEpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdBZGRTdGF0ZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzdGF0ZXM6ICB0aGUgc3RhdGVzIGNvbnRhaW5lcgorICogQHN0YXRlOiAgdGhlIHZhbGlkYXRpb24gc3RhdGUKKyAqCisgKiBBZGQgYSBSZWxheE5HIHZhbGlkYXRpb24gc3RhdGUgdG8gdGhlIGNvbnRhaW5lcgorICoKKyAqIFJldHVybiAxIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgMCBpZiB0aGlzIGlzIGEgZHVwbGljYXRlIGFuZCAtMSBvbiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HQWRkU3RhdGVzKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1N0YXRlc1B0ciBzdGF0ZXMsCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyIHN0YXRlKQoreworICAgIGludCBpOworCisgICAgaWYgKHN0YXRlID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIGlmIChzdGF0ZXMtPm5iU3RhdGUgPj0gc3RhdGVzLT5tYXhTdGF0ZSkgeworICAgICAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciAqdG1wOworICAgICAgICBpbnQgc2l6ZTsKKworICAgICAgICBzaXplID0gc3RhdGVzLT5tYXhTdGF0ZSAqIDI7CisgICAgICAgIHRtcCA9ICh4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciAqKSB4bWxSZWFsbG9jKHN0YXRlcy0+dGFiU3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaXplKSAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIpKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KGN0eHQsICJhZGRpbmcgc3RhdGVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgICAgIHN0YXRlcy0+dGFiU3RhdGUgPSB0bXA7CisgICAgICAgIHN0YXRlcy0+bWF4U3RhdGUgPSBzaXplOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgc3RhdGVzLT5uYlN0YXRlOyBpKyspIHsKKyAgICAgICAgaWYgKHhtbFJlbGF4TkdFcXVhbFZhbGlkU3RhdGUoY3R4dCwgc3RhdGUsIHN0YXRlcy0+dGFiU3RhdGVbaV0pKSB7CisgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwgc3RhdGUpOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0ZXMtPnRhYlN0YXRlW3N0YXRlcy0+bmJTdGF0ZSsrXSA9IHN0YXRlOworICAgIHJldHVybiAoMSk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0ZyZWVTdGF0ZXM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc3RhdGVzOiAgdGVoIGNvbnRhaW5lcgorICoKKyAqIEZyZWUgYSBSZWxheE5HIHZhbGlkYXRpb24gc3RhdGUgY29udGFpbmVyCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HRnJlZVN0YXRlcyh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HU3RhdGVzUHRyIHN0YXRlcykKK3sKKyAgICBpZiAoc3RhdGVzID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmZyZWVTdGF0ZXMgPT0gTlVMTCkpIHsKKyAgICAgICAgY3R4dC0+ZnJlZVN0YXRlc01heCA9IDQwOworICAgICAgICBjdHh0LT5mcmVlU3RhdGVzTnIgPSAwOworICAgICAgICBjdHh0LT5mcmVlU3RhdGVzID0gKHhtbFJlbGF4TkdTdGF0ZXNQdHIgKikKKyAgICAgICAgICAgIHhtbE1hbGxvYyhjdHh0LT5mcmVlU3RhdGVzTWF4ICogc2l6ZW9mKHhtbFJlbGF4TkdTdGF0ZXNQdHIpKTsKKyAgICAgICAgaWYgKGN0eHQtPmZyZWVTdGF0ZXMgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAic3RvcmluZyBzdGF0ZXNcbiIpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmICgoY3R4dCAhPSBOVUxMKQorICAgICAgICAgICAgICAgJiYgKGN0eHQtPmZyZWVTdGF0ZXNOciA+PSBjdHh0LT5mcmVlU3RhdGVzTWF4KSkgeworICAgICAgICB4bWxSZWxheE5HU3RhdGVzUHRyICp0bXA7CisKKyAgICAgICAgdG1wID0gKHhtbFJlbGF4TkdTdGF0ZXNQdHIgKikgeG1sUmVhbGxvYyhjdHh0LT5mcmVlU3RhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiBjdHh0LT5mcmVlU3RhdGVzTWF4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sUmVsYXhOR1N0YXRlc1B0cikpOworICAgICAgICBpZiAodG1wID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1ZFcnJNZW1vcnkoY3R4dCwgInN0b3Jpbmcgc3RhdGVzXG4iKTsKKyAgICAgICAgICAgIHhtbEZyZWUoc3RhdGVzLT50YWJTdGF0ZSk7CisgICAgICAgICAgICB4bWxGcmVlKHN0YXRlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY3R4dC0+ZnJlZVN0YXRlcyA9IHRtcDsKKyAgICAgICAgY3R4dC0+ZnJlZVN0YXRlc01heCAqPSAyOworICAgIH0KKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmZyZWVTdGF0ZXMgPT0gTlVMTCkpIHsKKyAgICAgICAgeG1sRnJlZShzdGF0ZXMtPnRhYlN0YXRlKTsKKyAgICAgICAgeG1sRnJlZShzdGF0ZXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIGN0eHQtPmZyZWVTdGF0ZXNbY3R4dC0+ZnJlZVN0YXRlc05yKytdID0gc3RhdGVzOworICAgIH0KK30KKworLyoqCisgKiB4bWxSZWxheE5HTmV3VmFsaWRTdGF0ZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIGN1cnJlbnQgbm9kZSBvciBOVUxMIGZvciB0aGUgZG9jdW1lbnQKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBSZWxheE5HIHZhbGlkYXRpb24gc3RhdGUKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBhbGxvY2F0ZWQgc3RydWN0dXJlIG9yIE5VTEwgaW4gY2FzZSBvciBlcnJvcgorICovCitzdGF0aWMgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIKK3htbFJlbGF4TkdOZXdWYWxpZFN0YXRlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyIHJldDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgeG1sQXR0clB0ciBhdHRyc1tNQVhfQVRUUl07CisgICAgaW50IG5iQXR0cnMgPSAwOworICAgIHhtbE5vZGVQdHIgcm9vdCA9IE5VTEw7CisKKyAgICBpZiAobm9kZSA9PSBOVUxMKSB7CisgICAgICAgIHJvb3QgPSB4bWxEb2NHZXRSb290RWxlbWVudChjdHh0LT5kb2MpOworICAgICAgICBpZiAocm9vdCA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdHRyID0gbm9kZS0+cHJvcGVydGllczsKKyAgICAgICAgd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKG5iQXR0cnMgPCBNQVhfQVRUUikKKyAgICAgICAgICAgICAgICBhdHRyc1tuYkF0dHJzKytdID0gYXR0cjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuYkF0dHJzKys7CisgICAgICAgICAgICBhdHRyID0gYXR0ci0+bmV4dDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoKGN0eHQtPmZyZWVTdGF0ZSAhPSBOVUxMKSAmJiAoY3R4dC0+ZnJlZVN0YXRlLT5uYlN0YXRlID4gMCkpIHsKKyAgICAgICAgY3R4dC0+ZnJlZVN0YXRlLT5uYlN0YXRlLS07CisgICAgICAgIHJldCA9IGN0eHQtPmZyZWVTdGF0ZS0+dGFiU3RhdGVbY3R4dC0+ZnJlZVN0YXRlLT5uYlN0YXRlXTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXQgPQorICAgICAgICAgICAgKHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyKQorICAgICAgICAgICAgeG1sTWFsbG9jKHNpemVvZih4bWxSZWxheE5HVmFsaWRTdGF0ZSkpOworICAgICAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1ZFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgc3RhdGVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIH0KKyAgICAgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlbGF4TkdWYWxpZFN0YXRlKSk7CisgICAgfQorICAgIHJldC0+dmFsdWUgPSBOVUxMOworICAgIHJldC0+ZW5kdmFsdWUgPSBOVUxMOworICAgIGlmIChub2RlID09IE5VTEwpIHsKKyAgICAgICAgcmV0LT5ub2RlID0gKHhtbE5vZGVQdHIpIGN0eHQtPmRvYzsKKyAgICAgICAgcmV0LT5zZXEgPSByb290OworICAgIH0gZWxzZSB7CisgICAgICAgIHJldC0+bm9kZSA9IG5vZGU7CisgICAgICAgIHJldC0+c2VxID0gbm9kZS0+Y2hpbGRyZW47CisgICAgfQorICAgIHJldC0+bmJBdHRycyA9IDA7CisgICAgaWYgKG5iQXR0cnMgPiAwKSB7CisgICAgICAgIGlmIChyZXQtPmF0dHJzID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChuYkF0dHJzIDwgNCkKKyAgICAgICAgICAgICAgICByZXQtPm1heEF0dHJzID0gNDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQtPm1heEF0dHJzID0gbmJBdHRyczsKKyAgICAgICAgICAgIHJldC0+YXR0cnMgPSAoeG1sQXR0clB0ciAqKSB4bWxNYWxsb2MocmV0LT5tYXhBdHRycyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxBdHRyUHRyKSk7CisgICAgICAgICAgICBpZiAocmV0LT5hdHRycyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBzdGF0ZXNcbiIpOworICAgICAgICAgICAgICAgIHJldHVybiAocmV0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChyZXQtPm1heEF0dHJzIDwgbmJBdHRycykgeworICAgICAgICAgICAgeG1sQXR0clB0ciAqdG1wOworCisgICAgICAgICAgICB0bXAgPSAoeG1sQXR0clB0ciAqKSB4bWxSZWFsbG9jKHJldC0+YXR0cnMsIG5iQXR0cnMgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeG1sQXR0clB0cikpOworICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBzdGF0ZXNcbiIpOworICAgICAgICAgICAgICAgIHJldHVybiAocmV0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldC0+YXR0cnMgPSB0bXA7CisgICAgICAgICAgICByZXQtPm1heEF0dHJzID0gbmJBdHRyczsKKyAgICAgICAgfQorICAgICAgICByZXQtPm5iQXR0cnMgPSBuYkF0dHJzOworICAgICAgICBpZiAobmJBdHRycyA8IE1BWF9BVFRSKSB7CisgICAgICAgICAgICBtZW1jcHkocmV0LT5hdHRycywgYXR0cnMsIHNpemVvZih4bWxBdHRyUHRyKSAqIG5iQXR0cnMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisgICAgICAgICAgICBuYkF0dHJzID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICByZXQtPmF0dHJzW25iQXR0cnMrK10gPSBhdHRyOworICAgICAgICAgICAgICAgIGF0dHIgPSBhdHRyLT5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldC0+bmJBdHRyTGVmdCA9IHJldC0+bmJBdHRyczsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0NvcHlWYWxpZFN0YXRlOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQHN0YXRlOiAgYSB2YWxpZGF0aW9uIHN0YXRlCisgKgorICogQ29weSB0aGUgdmFsaWRhdGlvbiBzdGF0ZQorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGFsbG9jYXRlZCBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yCisgKi8KK3N0YXRpYyB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0cgoreG1sUmVsYXhOR0NvcHlWYWxpZFN0YXRlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciBzdGF0ZSkKK3sKKyAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciByZXQ7CisgICAgdW5zaWduZWQgaW50IG1heEF0dHJzOworICAgIHhtbEF0dHJQdHIgKmF0dHJzOworCisgICAgaWYgKHN0YXRlID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaWYgKChjdHh0LT5mcmVlU3RhdGUgIT0gTlVMTCkgJiYgKGN0eHQtPmZyZWVTdGF0ZS0+bmJTdGF0ZSA+IDApKSB7CisgICAgICAgIGN0eHQtPmZyZWVTdGF0ZS0+bmJTdGF0ZS0tOworICAgICAgICByZXQgPSBjdHh0LT5mcmVlU3RhdGUtPnRhYlN0YXRlW2N0eHQtPmZyZWVTdGF0ZS0+bmJTdGF0ZV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0ID0KKyAgICAgICAgICAgICh4bWxSZWxheE5HVmFsaWRTdGF0ZVB0cikKKyAgICAgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVsYXhOR1ZhbGlkU3RhdGUpKTsKKyAgICAgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIHN0YXRlc1xuIik7CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICB9CisgICAgICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxSZWxheE5HVmFsaWRTdGF0ZSkpOworICAgIH0KKyAgICBhdHRycyA9IHJldC0+YXR0cnM7CisgICAgbWF4QXR0cnMgPSByZXQtPm1heEF0dHJzOworICAgIG1lbWNweShyZXQsIHN0YXRlLCBzaXplb2YoeG1sUmVsYXhOR1ZhbGlkU3RhdGUpKTsKKyAgICByZXQtPmF0dHJzID0gYXR0cnM7CisgICAgcmV0LT5tYXhBdHRycyA9IG1heEF0dHJzOworICAgIGlmIChzdGF0ZS0+bmJBdHRycyA+IDApIHsKKyAgICAgICAgaWYgKHJldC0+YXR0cnMgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0LT5tYXhBdHRycyA9IHN0YXRlLT5tYXhBdHRyczsKKyAgICAgICAgICAgIHJldC0+YXR0cnMgPSAoeG1sQXR0clB0ciAqKSB4bWxNYWxsb2MocmV0LT5tYXhBdHRycyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxBdHRyUHRyKSk7CisgICAgICAgICAgICBpZiAocmV0LT5hdHRycyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBzdGF0ZXNcbiIpOworICAgICAgICAgICAgICAgIHJldC0+bmJBdHRycyA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIChyZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHJldC0+bWF4QXR0cnMgPCBzdGF0ZS0+bmJBdHRycykgeworICAgICAgICAgICAgeG1sQXR0clB0ciAqdG1wOworCisgICAgICAgICAgICB0bXAgPSAoeG1sQXR0clB0ciAqKSB4bWxSZWFsbG9jKHJldC0+YXR0cnMsIHN0YXRlLT5tYXhBdHRycyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxBdHRyUHRyKSk7CisgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIHN0YXRlc1xuIik7CisgICAgICAgICAgICAgICAgcmV0LT5uYkF0dHJzID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHJldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXQtPm1heEF0dHJzID0gc3RhdGUtPm1heEF0dHJzOworICAgICAgICAgICAgcmV0LT5hdHRycyA9IHRtcDsKKyAgICAgICAgfQorICAgICAgICBtZW1jcHkocmV0LT5hdHRycywgc3RhdGUtPmF0dHJzLAorICAgICAgICAgICAgICAgc3RhdGUtPm5iQXR0cnMgKiBzaXplb2YoeG1sQXR0clB0cikpOworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0VxdWFsVmFsaWRTdGF0ZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzdGF0ZTE6ICBhIHZhbGlkYXRpb24gc3RhdGUKKyAqIEBzdGF0ZTI6ICBhIHZhbGlkYXRpb24gc3RhdGUKKyAqCisgKiBDb21wYXJlIHRoZSB2YWxpZGF0aW9uIHN0YXRlcyBmb3IgZXF1YWxpdHkKKyAqCisgKiBSZXR1cm5zIDEgaWYgZXF1YWxkLCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HRXF1YWxWYWxpZFN0YXRlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciBzdGF0ZTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyIHN0YXRlMikKK3sKKyAgICBpbnQgaTsKKworICAgIGlmICgoc3RhdGUxID09IE5VTEwpIHx8IChzdGF0ZTIgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoMCk7CisgICAgaWYgKHN0YXRlMSA9PSBzdGF0ZTIpCisgICAgICAgIHJldHVybiAoMSk7CisgICAgaWYgKHN0YXRlMS0+bm9kZSAhPSBzdGF0ZTItPm5vZGUpCisgICAgICAgIHJldHVybiAoMCk7CisgICAgaWYgKHN0YXRlMS0+c2VxICE9IHN0YXRlMi0+c2VxKQorICAgICAgICByZXR1cm4gKDApOworICAgIGlmIChzdGF0ZTEtPm5iQXR0ckxlZnQgIT0gc3RhdGUyLT5uYkF0dHJMZWZ0KQorICAgICAgICByZXR1cm4gKDApOworICAgIGlmIChzdGF0ZTEtPm5iQXR0cnMgIT0gc3RhdGUyLT5uYkF0dHJzKQorICAgICAgICByZXR1cm4gKDApOworICAgIGlmIChzdGF0ZTEtPmVuZHZhbHVlICE9IHN0YXRlMi0+ZW5kdmFsdWUpCisgICAgICAgIHJldHVybiAoMCk7CisgICAgaWYgKChzdGF0ZTEtPnZhbHVlICE9IHN0YXRlMi0+dmFsdWUpICYmCisgICAgICAgICgheG1sU3RyRXF1YWwoc3RhdGUxLT52YWx1ZSwgc3RhdGUyLT52YWx1ZSkpKQorICAgICAgICByZXR1cm4gKDApOworICAgIGZvciAoaSA9IDA7IGkgPCBzdGF0ZTEtPm5iQXR0cnM7IGkrKykgeworICAgICAgICBpZiAoc3RhdGUxLT5hdHRyc1tpXSAhPSBzdGF0ZTItPmF0dHJzW2ldKQorICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICB9CisgICAgcmV0dXJuICgxKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGU6CisgKiBAc3RhdGU6ICBhIHZhbGlkYXRpb24gc3RhdGUgc3RydWN0dXJlCisgKgorICogRGVhbGxvY2F0ZSBhIFJlbGF4TkcgdmFsaWRhdGlvbiBzdGF0ZSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyIHN0YXRlKQoreworICAgIGlmIChzdGF0ZSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmZyZWVTdGF0ZSA9PSBOVUxMKSkgeworICAgICAgICBjdHh0LT5mcmVlU3RhdGUgPSB4bWxSZWxheE5HTmV3U3RhdGVzKGN0eHQsIDQwKTsKKyAgICB9CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5mcmVlU3RhdGUgPT0gTlVMTCkpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5hdHRycyAhPSBOVUxMKQorICAgICAgICAgICAgeG1sRnJlZShzdGF0ZS0+YXR0cnMpOworICAgICAgICB4bWxGcmVlKHN0YXRlKTsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxSZWxheE5HQWRkU3RhdGVzVW5pcShjdHh0LCBjdHh0LT5mcmVlU3RhdGUsIHN0YXRlKTsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVNlbWkgaW50ZXJuYWwgZnVuY3Rpb25zCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sUmVsYXhQYXJzZXJTZXRGbGFnOgorICogQGN0eHQ6IGEgUmVsYXhORyBwYXJzZXIgY29udGV4dAorICogQGZsYWdzOiBhIHNldCBvZiBmbGFncyB2YWx1ZXMKKyAqCisgKiBTZW1pIHByaXZhdGUgZnVuY3Rpb24gdXNlZCB0byBwYXNzIGluZm9ybWF0aW9ucyB0byBhIHBhcnNlciBjb250ZXh0CisgKiB3aGljaCBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxSZWxheE5HUGFyc2VyRmxhZyAuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxSZWxheFBhcnNlclNldEZsYWcoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgaW50IGZsYWdzKQoreworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybigtMSk7CisgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdQX0ZSRUVfRE9DKSB7CisgICAgICAgIGN0eHQtPmNybmcgfD0gWE1MX1JFTEFYTkdQX0ZSRUVfRE9DOworCWZsYWdzIC09IFhNTF9SRUxBWE5HUF9GUkVFX0RPQzsKKyAgICB9CisgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdQX0NSTkcpIHsKKyAgICAgICAgY3R4dC0+Y3JuZyB8PSBYTUxfUkVMQVhOR1BfQ1JORzsKKwlmbGFncyAtPSBYTUxfUkVMQVhOR1BfQ1JORzsKKyAgICB9CisgICAgaWYgKGZsYWdzICE9IDApIHJldHVybigtMSk7CisgICAgcmV0dXJuKDApOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlEb2N1bWVudCBmdW5jdGlvbnMJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB4bWxEb2NQdHIgeG1sUmVsYXhOR0NsZWFudXBEb2MoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRG9jUHRyIGRvYyk7CisKKy8qKgorICogeG1sUmVsYXhOR0luY2x1ZGVQdXNoOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEB2YWx1ZTogIHRoZSBlbGVtZW50IGRvYworICoKKyAqIFB1c2hlcyBhIG5ldyBpbmNsdWRlIG9uIHRvcCBvZiB0aGUgaW5jbHVkZSBzdGFjaworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIGVycm9yLCB0aGUgaW5kZXggaW4gdGhlIHN0YWNrIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HSW5jbHVkZVB1c2goeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HSW5jbHVkZVB0ciB2YWx1ZSkKK3sKKyAgICBpZiAoY3R4dC0+aW5jVGFiID09IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+aW5jTWF4ID0gNDsKKyAgICAgICAgY3R4dC0+aW5jTnIgPSAwOworICAgICAgICBjdHh0LT5pbmNUYWIgPQorICAgICAgICAgICAgKHhtbFJlbGF4TkdJbmNsdWRlUHRyICopIHhtbE1hbGxvYyhjdHh0LT5pbmNNYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY3R4dC0+aW5jVGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT5pbmNUYWIgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBpbmNsdWRlXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGN0eHQtPmluY05yID49IGN0eHQtPmluY01heCkgeworICAgICAgICBjdHh0LT5pbmNNYXggKj0gMjsKKyAgICAgICAgY3R4dC0+aW5jVGFiID0KKyAgICAgICAgICAgICh4bWxSZWxheE5HSW5jbHVkZVB0ciAqKSB4bWxSZWFsbG9jKGN0eHQtPmluY1RhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmluY01heCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY3R4dC0+aW5jVGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT5pbmNUYWIgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBpbmNsdWRlXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgY3R4dC0+aW5jVGFiW2N0eHQtPmluY05yXSA9IHZhbHVlOworICAgIGN0eHQtPmluYyA9IHZhbHVlOworICAgIHJldHVybiAoY3R4dC0+aW5jTnIrKyk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0luY2x1ZGVQb3A6CisgKiBAY3R4dDogdGhlIHBhcnNlciBjb250ZXh0CisgKgorICogUG9wcyB0aGUgdG9wIGluY2x1ZGUgZnJvbSB0aGUgaW5jbHVkZSBzdGFjaworICoKKyAqIFJldHVybnMgdGhlIGluY2x1ZGUganVzdCByZW1vdmVkCisgKi8KK3N0YXRpYyB4bWxSZWxheE5HSW5jbHVkZVB0cgoreG1sUmVsYXhOR0luY2x1ZGVQb3AoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxSZWxheE5HSW5jbHVkZVB0ciByZXQ7CisKKyAgICBpZiAoY3R4dC0+aW5jTnIgPD0gMCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjdHh0LT5pbmNOci0tOworICAgIGlmIChjdHh0LT5pbmNOciA+IDApCisgICAgICAgIGN0eHQtPmluYyA9IGN0eHQtPmluY1RhYltjdHh0LT5pbmNOciAtIDFdOworICAgIGVsc2UKKyAgICAgICAgY3R4dC0+aW5jID0gTlVMTDsKKyAgICByZXQgPSBjdHh0LT5pbmNUYWJbY3R4dC0+aW5jTnJdOworICAgIGN0eHQtPmluY1RhYltjdHh0LT5pbmNOcl0gPSBOVUxMOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HUmVtb3ZlUmVkZWZpbmU6CisgKiBAY3R4dDogdGhlIHBhcnNlciBjb250ZXh0CisgKiBAVVJMOiAgdGhlIG5vcm1hbGl6ZWQgVVJMCisgKiBAdGFyZ2V0OiAgdGhlIGluY2x1ZGVkIHRhcmdldAorICogQG5hbWU6ICB0aGUgZGVmaW5lIG5hbWUgdG8gZWxpbWluYXRlCisgKgorICogQXBwbGllcyB0aGUgZWxpbWluYXRpb24gYWxnb3JpdGhtIG9mIDQuNworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIGVycm9yLCAxIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1JlbW92ZVJlZGVmaW5lKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIFVSTCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgdGFyZ2V0LCBjb25zdCB4bWxDaGFyICogbmFtZSkKK3sKKyAgICBpbnQgZm91bmQgPSAwOworICAgIHhtbE5vZGVQdHIgdG1wLCB0bXAyOworICAgIHhtbENoYXIgKm5hbWUyOworCisjaWZkZWYgREVCVUdfSU5DTFVERQorICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIkVsaW1pbmF0aW9uIG9mIDxpbmNsdWRlPiBzdGFydCBmcm9tICVzXG4iLCBVUkwpOworICAgIGVsc2UKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiRWxpbWluYXRpb24gb2YgPGluY2x1ZGU+IGRlZmluZSAlcyBmcm9tICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgVVJMKTsKKyNlbmRpZgorICAgIHRtcCA9IHRhcmdldDsKKyAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKyAgICAgICAgdG1wMiA9IHRtcC0+bmV4dDsKKyAgICAgICAgaWYgKChuYW1lID09IE5VTEwpICYmIChJU19SRUxBWE5HKHRtcCwgInN0YXJ0IikpKSB7CisgICAgICAgICAgICBmb3VuZCA9IDE7CisgICAgICAgICAgICB4bWxVbmxpbmtOb2RlKHRtcCk7CisgICAgICAgICAgICB4bWxGcmVlTm9kZSh0bXApOworICAgICAgICB9IGVsc2UgaWYgKChuYW1lICE9IE5VTEwpICYmIChJU19SRUxBWE5HKHRtcCwgImRlZmluZSIpKSkgeworICAgICAgICAgICAgbmFtZTIgPSB4bWxHZXRQcm9wKHRtcCwgQkFEX0NBU1QgIm5hbWUiKTsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdOb3JtRXh0U3BhY2UobmFtZTIpOworICAgICAgICAgICAgaWYgKG5hbWUyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgbmFtZTIpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gMTsKKyAgICAgICAgICAgICAgICAgICAgeG1sVW5saW5rTm9kZSh0bXApOworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlTm9kZSh0bXApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB4bWxGcmVlKG5hbWUyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKHRtcCwgImluY2x1ZGUiKSkgeworICAgICAgICAgICAgeG1sQ2hhciAqaHJlZiA9IE5VTEw7CisgICAgICAgICAgICB4bWxSZWxheE5HRG9jdW1lbnRQdHIgaW5jID0gdG1wLT5wc3ZpOworCisgICAgICAgICAgICBpZiAoKGluYyAhPSBOVUxMKSAmJiAoaW5jLT5kb2MgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAoaW5jLT5kb2MtPmNoaWxkcmVuICE9IE5VTEwpKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoeG1sU3RyRXF1YWwKKyAgICAgICAgICAgICAgICAgICAgKGluYy0+ZG9jLT5jaGlsZHJlbi0+bmFtZSwgQkFEX0NBU1QgImdyYW1tYXIiKSkgeworI2lmZGVmIERFQlVHX0lOQ0xVREUKKyAgICAgICAgICAgICAgICAgICAgaHJlZiA9IHhtbEdldFByb3AodG1wLCBCQURfQ0FTVCAiaHJlZiIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGlmICh4bWxSZWxheE5HUmVtb3ZlUmVkZWZpbmUoY3R4dCwgaHJlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmMtPmRvYy0+Y2hpbGRyZW4tPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLCBuYW1lKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyNpZmRlZiBERUJVR19JTkNMVURFCisgICAgICAgICAgICAgICAgICAgIGlmIChocmVmICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGhyZWYpOworI2VuZGlmCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRtcCA9IHRtcDI7CisgICAgfQorICAgIHJldHVybiAoZm91bmQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdMb2FkSW5jbHVkZToKKyAqIEBjdHh0OiB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBVUkw6ICB0aGUgbm9ybWFsaXplZCBVUkwKKyAqIEBub2RlOiB0aGUgaW5jbHVkZSBub2RlLgorICogQG5zOiAgdGhlIG5hbWVzcGFjZSBwYXNzZWQgZnJvbSB0aGUgY29udGV4dC4KKyAqCisgKiBGaXJzdCBsb29rdXAgaWYgdGhlIGRvY3VtZW50IGlzIGFscmVhZHkgbG9hZGVkIGludG8gdGhlIHBhcnNlciBjb250ZXh0LAorICogY2hlY2sgYWdhaW5zdCByZWN1cnNpb24uIElmIG5vdCBmb3VuZCB0aGUgcmVzb3VyY2UgaXMgbG9hZGVkIGFuZAorICogdGhlIGNvbnRlbnQgaXMgcHJlcHJvY2Vzc2VkIGJlZm9yZSBiZWluZyByZXR1cm5lZCBiYWNrIHRvIHRoZSBjYWxsZXIuCisgKgorICogUmV0dXJucyB0aGUgeG1sUmVsYXhOR0luY2x1ZGVQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxSZWxheE5HSW5jbHVkZVB0cgoreG1sUmVsYXhOR0xvYWRJbmNsdWRlKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKiBVUkwsCisgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyICogbnMpCit7CisgICAgeG1sUmVsYXhOR0luY2x1ZGVQdHIgcmV0ID0gTlVMTDsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIGludCBpOworICAgIHhtbE5vZGVQdHIgcm9vdCwgY3VyOworCisjaWZkZWYgREVCVUdfSU5DTFVERQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR0xvYWRJbmNsdWRlKCVzKVxuIiwgVVJMKTsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBjaGVjayBhZ2FpbnN0IHJlY3Vyc2lvbiBpbiB0aGUgc3RhY2sKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+aW5jTnI7IGkrKykgeworICAgICAgICBpZiAoeG1sU3RyRXF1YWwoY3R4dC0+aW5jVGFiW2ldLT5ocmVmLCBVUkwpKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIE5VTEwsIFhNTF9STkdQX0lOQ0xVREVfUkVDVVJTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIkRldGVjdGVkIGFuIEluY2x1ZGUgcmVjdXJzaW9uIGZvciAlc1xuIiwgVVJMLAorICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIGxvYWQgdGhlIGRvY3VtZW50CisgICAgICovCisgICAgZG9jID0geG1sUmVhZEZpbGUoKGNvbnN0IGNoYXIgKikgVVJMLE5VTEwsMCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfUEFSU0VfRVJST1IsCisgICAgICAgICAgICAgICAgICAgInhtbFJlbGF4Tkc6IGNvdWxkIG5vdCBsb2FkICVzXG4iLCBVUkwsIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyNpZmRlZiBERUJVR19JTkNMVURFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJQYXJzZWQgJXMgT2theVxuIiwgVVJMKTsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSB0aGUgZG9jdW1lbnQgc3RydWN0dXJlcyBhbmQgcmVnaXN0ZXIgaXQgZmlyc3QuCisgICAgICovCisgICAgcmV0ID0gKHhtbFJlbGF4TkdJbmNsdWRlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlbGF4TkdJbmNsdWRlKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgaW5jbHVkZVxuIik7CisgICAgICAgIHhtbEZyZWVEb2MoZG9jKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlbGF4TkdJbmNsdWRlKSk7CisgICAgcmV0LT5kb2MgPSBkb2M7CisgICAgcmV0LT5ocmVmID0geG1sU3RyZHVwKFVSTCk7CisgICAgcmV0LT5uZXh0ID0gY3R4dC0+aW5jbHVkZXM7CisgICAgY3R4dC0+aW5jbHVkZXMgPSByZXQ7CisKKyAgICAvKgorICAgICAqIHRyYW5zbWl0IHRoZSBucyBpZiBuZWVkZWQKKyAgICAgKi8KKyAgICBpZiAobnMgIT0gTlVMTCkgeworICAgICAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICAgICAgaWYgKHJvb3QgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKHhtbEhhc1Byb3Aocm9vdCwgQkFEX0NBU1QgIm5zIikgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbFNldFByb3Aocm9vdCwgQkFEX0NBU1QgIm5zIiwgbnMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBwdXNoIGl0IG9uIHRoZSBzdGFjaworICAgICAqLworICAgIHhtbFJlbGF4TkdJbmNsdWRlUHVzaChjdHh0LCByZXQpOworCisgICAgLyoKKyAgICAgKiBTb21lIHByZXByb2Nlc3Npbmcgb2YgdGhlIGRvY3VtZW50IGNvbnRlbnQsIHRoaXMgaW5jbHVkZSByZWN1cnNpbmcKKyAgICAgKiBpbiB0aGUgaW5jbHVkZSBzdGFjay4KKyAgICAgKi8KKyNpZmRlZiBERUJVR19JTkNMVURFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJjbGVhbnVwIG9mICVzXG4iLCBVUkwpOworI2VuZGlmCisKKyAgICBkb2MgPSB4bWxSZWxheE5HQ2xlYW51cERvYyhjdHh0LCBkb2MpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICBjdHh0LT5pbmMgPSBOVUxMOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogUG9wIHVwIHRoZSBpbmNsdWRlIGZyb20gdGhlIHN0YWNrCisgICAgICovCisgICAgeG1sUmVsYXhOR0luY2x1ZGVQb3AoY3R4dCk7CisKKyNpZmRlZiBERUJVR19JTkNMVURFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJDaGVja2luZyBvZiAlc1xuIiwgVVJMKTsKKyNlbmRpZgorICAgIC8qCisgICAgICogQ2hlY2sgdGhhdCB0aGUgdG9wIGVsZW1lbnQgaXMgYSBncmFtbWFyCisgICAgICovCisgICAgcm9vdCA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgaWYgKHJvb3QgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VNUFRZLAorICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HOiBpbmNsdWRlZCBkb2N1bWVudCBpcyBlbXB0eSAlc1xuIiwgVVJMLAorICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpZiAoIUlTX1JFTEFYTkcocm9vdCwgImdyYW1tYXIiKSkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0dSQU1NQVJfTUlTU0lORywKKyAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhORzogaW5jbHVkZWQgZG9jdW1lbnQgJXMgcm9vdCBpcyBub3QgYSBncmFtbWFyXG4iLAorICAgICAgICAgICAgICAgICAgIFVSTCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBFbGltaW5hdGlvbiBvZiByZWRlZmluZWQgcnVsZXMgaW4gdGhlIGluY2x1ZGUuCisgICAgICovCisgICAgY3VyID0gbm9kZS0+Y2hpbGRyZW47CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmIChJU19SRUxBWE5HKGN1ciwgInN0YXJ0IikpIHsKKyAgICAgICAgICAgIGludCBmb3VuZCA9IDA7CisKKyAgICAgICAgICAgIGZvdW5kID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HUmVtb3ZlUmVkZWZpbmUoY3R4dCwgVVJMLCByb290LT5jaGlsZHJlbiwgTlVMTCk7CisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9TVEFSVF9NSVNTSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFJlbGF4Tkc6IGluY2x1ZGUgJXMgaGFzIGEgc3RhcnQgYnV0IG5vdCB0aGUgaW5jbHVkZWQgZ3JhbW1hclxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoSVNfUkVMQVhORyhjdXIsICJkZWZpbmUiKSkgeworICAgICAgICAgICAgeG1sQ2hhciAqbmFtZTsKKworICAgICAgICAgICAgbmFtZSA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAibmFtZSIpOworICAgICAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfTkFNRV9NSVNTSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFJlbGF4Tkc6IGluY2x1ZGUgJXMgaGFzIGRlZmluZSB3aXRob3V0IG5hbWVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkwsIE5VTEwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZm91bmQ7CisKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HTm9ybUV4dFNwYWNlKG5hbWUpOworICAgICAgICAgICAgICAgIGZvdW5kID0geG1sUmVsYXhOR1JlbW92ZVJlZGVmaW5lKGN0eHQsIFVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290LT5jaGlsZHJlbiwgbmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0RFRklORV9NSVNTSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HOiBpbmNsdWRlICVzIGhhcyBhIGRlZmluZSAlcyBidXQgbm90IHRoZSBpbmNsdWRlZCBncmFtbWFyXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTCwgbmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHhtbEZyZWUobmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKworCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZEVycm9yUHVzaDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycjogIHRoZSBlcnJvciBjb2RlCisgKiBAYXJnMTogIHRoZSBmaXJzdCBzdHJpbmcgYXJndW1lbnQKKyAqIEBhcmcyOiAgdGhlIHNlY29uZCBzdHJpbmcgYXJndW1lbnQKKyAqIEBkdXA6ICBhcmcgbmVlZCB0byBiZSBkdXBsaWNhdGVkCisgKgorICogUHVzaGVzIGEgbmV3IGVycm9yIG9uIHRvcCBvZiB0aGUgZXJyb3Igc3RhY2sKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBlcnJvciwgdGhlIGluZGV4IGluIHRoZSBzdGFjayBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1ZhbGlkRXJyb3JQdXNoKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVmFsaWRFcnIgZXJyLCBjb25zdCB4bWxDaGFyICogYXJnMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogYXJnMiwgaW50IGR1cCkKK3sKKyAgICB4bWxSZWxheE5HVmFsaWRFcnJvclB0ciBjdXI7CisKKyNpZmRlZiBERUJVR19FUlJPUgorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAiUHVzaGluZyBlcnJvciAlZCBhdCAlZCBvbiBzdGFja1xuIiwgZXJyLCBjdHh0LT5lcnJOcik7CisjZW5kaWYKKyAgICBpZiAoY3R4dC0+ZXJyVGFiID09IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+ZXJyTWF4ID0gODsKKyAgICAgICAgY3R4dC0+ZXJyTnIgPSAwOworICAgICAgICBjdHh0LT5lcnJUYWIgPQorICAgICAgICAgICAgKHhtbFJlbGF4TkdWYWxpZEVycm9yUHRyKSB4bWxNYWxsb2MoY3R4dC0+ZXJyTWF4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFJlbGF4TkdWYWxpZEVycm9yKSk7CisgICAgICAgIGlmIChjdHh0LT5lcnJUYWIgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAicHVzaGluZyBlcnJvclxuIik7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9CisgICAgICAgIGN0eHQtPmVyciA9IE5VTEw7CisgICAgfQorICAgIGlmIChjdHh0LT5lcnJOciA+PSBjdHh0LT5lcnJNYXgpIHsKKyAgICAgICAgY3R4dC0+ZXJyTWF4ICo9IDI7CisgICAgICAgIGN0eHQtPmVyclRhYiA9CisgICAgICAgICAgICAoeG1sUmVsYXhOR1ZhbGlkRXJyb3JQdHIpIHhtbFJlYWxsb2MoY3R4dC0+ZXJyVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmVyck1heCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFJlbGF4TkdWYWxpZEVycm9yKSk7CisgICAgICAgIGlmIChjdHh0LT5lcnJUYWIgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAicHVzaGluZyBlcnJvclxuIik7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9CisgICAgICAgIGN0eHQtPmVyciA9ICZjdHh0LT5lcnJUYWJbY3R4dC0+ZXJyTnIgLSAxXTsKKyAgICB9CisgICAgaWYgKChjdHh0LT5lcnIgIT0gTlVMTCkgJiYgKGN0eHQtPnN0YXRlICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT5lcnItPm5vZGUgPT0gY3R4dC0+c3RhdGUtPm5vZGUpICYmIChjdHh0LT5lcnItPmVyciA9PSBlcnIpKQorICAgICAgICByZXR1cm4gKGN0eHQtPmVyck5yKTsKKyAgICBjdXIgPSAmY3R4dC0+ZXJyVGFiW2N0eHQtPmVyck5yXTsKKyAgICBjdXItPmVyciA9IGVycjsKKyAgICBpZiAoZHVwKSB7CisgICAgICAgIGN1ci0+YXJnMSA9IHhtbFN0cmR1cChhcmcxKTsKKyAgICAgICAgY3VyLT5hcmcyID0geG1sU3RyZHVwKGFyZzIpOworICAgICAgICBjdXItPmZsYWdzID0gRVJST1JfSVNfRFVQOworICAgIH0gZWxzZSB7CisgICAgICAgIGN1ci0+YXJnMSA9IGFyZzE7CisgICAgICAgIGN1ci0+YXJnMiA9IGFyZzI7CisgICAgICAgIGN1ci0+ZmxhZ3MgPSAwOworICAgIH0KKyAgICBpZiAoY3R4dC0+c3RhdGUgIT0gTlVMTCkgeworICAgICAgICBjdXItPm5vZGUgPSBjdHh0LT5zdGF0ZS0+bm9kZTsKKyAgICAgICAgY3VyLT5zZXEgPSBjdHh0LT5zdGF0ZS0+c2VxOworICAgIH0gZWxzZSB7CisgICAgICAgIGN1ci0+bm9kZSA9IE5VTEw7CisgICAgICAgIGN1ci0+c2VxID0gTlVMTDsKKyAgICB9CisgICAgY3R4dC0+ZXJyID0gY3VyOworICAgIHJldHVybiAoY3R4dC0+ZXJyTnIrKyk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkRXJyb3JQb3A6CisgKiBAY3R4dDogdGhlIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIFBvcHMgdGhlIHRvcCBlcnJvciBmcm9tIHRoZSBlcnJvciBzdGFjaworICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR1ZhbGlkRXJyb3JQb3AoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbFJlbGF4TkdWYWxpZEVycm9yUHRyIGN1cjsKKworICAgIGlmIChjdHh0LT5lcnJOciA8PSAwKSB7CisgICAgICAgIGN0eHQtPmVyciA9IE5VTEw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY3R4dC0+ZXJyTnItLTsKKyAgICBpZiAoY3R4dC0+ZXJyTnIgPiAwKQorICAgICAgICBjdHh0LT5lcnIgPSAmY3R4dC0+ZXJyVGFiW2N0eHQtPmVyck5yIC0gMV07CisgICAgZWxzZQorICAgICAgICBjdHh0LT5lcnIgPSBOVUxMOworICAgIGN1ciA9ICZjdHh0LT5lcnJUYWJbY3R4dC0+ZXJyTnJdOworICAgIGlmIChjdXItPmZsYWdzICYgRVJST1JfSVNfRFVQKSB7CisgICAgICAgIGlmIChjdXItPmFyZzEgIT0gTlVMTCkKKyAgICAgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgY3VyLT5hcmcxKTsKKyAgICAgICAgY3VyLT5hcmcxID0gTlVMTDsKKyAgICAgICAgaWYgKGN1ci0+YXJnMiAhPSBOVUxMKQorICAgICAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdXItPmFyZzIpOworICAgICAgICBjdXItPmFyZzIgPSBOVUxMOworICAgICAgICBjdXItPmZsYWdzID0gMDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0RvY3VtZW50UHVzaDoKKyAqIEBjdHh0OiAgdGhlIHBhcnNlciBjb250ZXh0CisgKiBAdmFsdWU6ICB0aGUgZWxlbWVudCBkb2MKKyAqCisgKiBQdXNoZXMgYSBuZXcgZG9jIG9uIHRvcCBvZiB0aGUgZG9jIHN0YWNrCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdEb2N1bWVudFB1c2goeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RvY3VtZW50UHRyIHZhbHVlKQoreworICAgIGlmIChjdHh0LT5kb2NUYWIgPT0gTlVMTCkgeworICAgICAgICBjdHh0LT5kb2NNYXggPSA0OworICAgICAgICBjdHh0LT5kb2NOciA9IDA7CisgICAgICAgIGN0eHQtPmRvY1RhYiA9CisgICAgICAgICAgICAoeG1sUmVsYXhOR0RvY3VtZW50UHRyICopIHhtbE1hbGxvYyhjdHh0LT5kb2NNYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPmRvY1RhYlswXSkpOworICAgICAgICBpZiAoY3R4dC0+ZG9jVGFiID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnJNZW1vcnkoY3R4dCwgImFkZGluZyBkb2N1bWVudFxuIik7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjdHh0LT5kb2NOciA+PSBjdHh0LT5kb2NNYXgpIHsKKyAgICAgICAgY3R4dC0+ZG9jTWF4ICo9IDI7CisgICAgICAgIGN0eHQtPmRvY1RhYiA9CisgICAgICAgICAgICAoeG1sUmVsYXhOR0RvY3VtZW50UHRyICopIHhtbFJlYWxsb2MoY3R4dC0+ZG9jVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmRvY01heCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPmRvY1RhYlswXSkpOworICAgICAgICBpZiAoY3R4dC0+ZG9jVGFiID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnJNZW1vcnkoY3R4dCwgImFkZGluZyBkb2N1bWVudFxuIik7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9CisgICAgfQorICAgIGN0eHQtPmRvY1RhYltjdHh0LT5kb2NOcl0gPSB2YWx1ZTsKKyAgICBjdHh0LT5kb2MgPSB2YWx1ZTsKKyAgICByZXR1cm4gKGN0eHQtPmRvY05yKyspOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdEb2N1bWVudFBvcDoKKyAqIEBjdHh0OiB0aGUgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQb3BzIHRoZSB0b3AgZG9jIGZyb20gdGhlIGRvYyBzdGFjaworICoKKyAqIFJldHVybnMgdGhlIGRvYyBqdXN0IHJlbW92ZWQKKyAqLworc3RhdGljIHhtbFJlbGF4TkdEb2N1bWVudFB0cgoreG1sUmVsYXhOR0RvY3VtZW50UG9wKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sUmVsYXhOR0RvY3VtZW50UHRyIHJldDsKKworICAgIGlmIChjdHh0LT5kb2NOciA8PSAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGN0eHQtPmRvY05yLS07CisgICAgaWYgKGN0eHQtPmRvY05yID4gMCkKKyAgICAgICAgY3R4dC0+ZG9jID0gY3R4dC0+ZG9jVGFiW2N0eHQtPmRvY05yIC0gMV07CisgICAgZWxzZQorICAgICAgICBjdHh0LT5kb2MgPSBOVUxMOworICAgIHJldCA9IGN0eHQtPmRvY1RhYltjdHh0LT5kb2NOcl07CisgICAgY3R4dC0+ZG9jVGFiW2N0eHQtPmRvY05yXSA9IE5VTEw7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdMb2FkRXh0ZXJuYWxSZWY6CisgKiBAY3R4dDogdGhlIHBhcnNlciBjb250ZXh0CisgKiBAVVJMOiAgdGhlIG5vcm1hbGl6ZWQgVVJMCisgKiBAbnM6ICB0aGUgaW5oZXJpdGVkIG5zIGlmIGFueQorICoKKyAqIEZpcnN0IGxvb2t1cCBpZiB0aGUgZG9jdW1lbnQgaXMgYWxyZWFkeSBsb2FkZWQgaW50byB0aGUgcGFyc2VyIGNvbnRleHQsCisgKiBjaGVjayBhZ2FpbnN0IHJlY3Vyc2lvbi4gSWYgbm90IGZvdW5kIHRoZSByZXNvdXJjZSBpcyBsb2FkZWQgYW5kCisgKiB0aGUgY29udGVudCBpcyBwcmVwcm9jZXNzZWQgYmVmb3JlIGJlaW5nIHJldHVybmVkIGJhY2sgdG8gdGhlIGNhbGxlci4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxSZWxheE5HRG9jdW1lbnRQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxSZWxheE5HRG9jdW1lbnRQdHIKK3htbFJlbGF4TkdMb2FkRXh0ZXJuYWxSZWYoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIFVSTCwgY29uc3QgeG1sQ2hhciAqIG5zKQoreworICAgIHhtbFJlbGF4TkdEb2N1bWVudFB0ciByZXQgPSBOVUxMOworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sTm9kZVB0ciByb290OworICAgIGludCBpOworCisgICAgLyoKKyAgICAgKiBjaGVjayBhZ2FpbnN0IHJlY3Vyc2lvbiBpbiB0aGUgc3RhY2sKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+ZG9jTnI7IGkrKykgeworICAgICAgICBpZiAoeG1sU3RyRXF1YWwoY3R4dC0+ZG9jVGFiW2ldLT5ocmVmLCBVUkwpKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIE5VTEwsIFhNTF9STkdQX0VYVEVSTkFMUkVGX1JFQ1VSU0UsCisgICAgICAgICAgICAgICAgICAgICAgICJEZXRlY3RlZCBhbiBleHRlcm5hbFJlZiByZWN1cnNpb24gZm9yICVzXG4iLCBVUkwsCisgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogbG9hZCB0aGUgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBkb2MgPSB4bWxSZWFkRmlsZSgoY29uc3QgY2hhciAqKSBVUkwsTlVMTCwwKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBOVUxMLCBYTUxfUk5HUF9QQVJTRV9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhORzogY291bGQgbm90IGxvYWQgJXNcbiIsIFVSTCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSB0aGUgZG9jdW1lbnQgc3RydWN0dXJlcyBhbmQgcmVnaXN0ZXIgaXQgZmlyc3QuCisgICAgICovCisgICAgcmV0ID0gKHhtbFJlbGF4TkdEb2N1bWVudFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxSZWxheE5HRG9jdW1lbnQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCAoeG1sTm9kZVB0cikgZG9jLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhORzogYWxsb2NhdGUgbWVtb3J5IGZvciBkb2MgJXNcbiIsIFVSTCwgTlVMTCk7CisgICAgICAgIHhtbEZyZWVEb2MoZG9jKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlbGF4TkdEb2N1bWVudCkpOworICAgIHJldC0+ZG9jID0gZG9jOworICAgIHJldC0+aHJlZiA9IHhtbFN0cmR1cChVUkwpOworICAgIHJldC0+bmV4dCA9IGN0eHQtPmRvY3VtZW50czsKKyAgICByZXQtPmV4dGVybmFsUmVmID0gMTsKKyAgICBjdHh0LT5kb2N1bWVudHMgPSByZXQ7CisKKyAgICAvKgorICAgICAqIHRyYW5zbWl0IHRoZSBucyBpZiBuZWVkZWQKKyAgICAgKi8KKyAgICBpZiAobnMgIT0gTlVMTCkgeworICAgICAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICAgICAgaWYgKHJvb3QgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKHhtbEhhc1Byb3Aocm9vdCwgQkFEX0NBU1QgIm5zIikgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHhtbFNldFByb3Aocm9vdCwgQkFEX0NBU1QgIm5zIiwgbnMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBwdXNoIGl0IG9uIHRoZSBzdGFjayBhbmQgcmVnaXN0ZXIgaXQgaW4gdGhlIGhhc2ggdGFibGUKKyAgICAgKi8KKyAgICB4bWxSZWxheE5HRG9jdW1lbnRQdXNoKGN0eHQsIHJldCk7CisKKyAgICAvKgorICAgICAqIFNvbWUgcHJlcHJvY2Vzc2luZyBvZiB0aGUgZG9jdW1lbnQgY29udGVudAorICAgICAqLworICAgIGRvYyA9IHhtbFJlbGF4TkdDbGVhbnVwRG9jKGN0eHQsIGRvYyk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPmRvYyA9IE5VTEw7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgeG1sUmVsYXhOR0RvY3VtZW50UG9wKGN0eHQpOworCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlFcnJvciBmdW5jdGlvbnMJCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkFMSURfRVJSKGEpIHhtbFJlbGF4TkdBZGRWYWxpZEVycm9yKGN0eHQsIGEsIE5VTEwsIE5VTEwsIDApOworI2RlZmluZSBWQUxJRF9FUlIyKGEsIGIpIHhtbFJlbGF4TkdBZGRWYWxpZEVycm9yKGN0eHQsIGEsIGIsIE5VTEwsIDApOworI2RlZmluZSBWQUxJRF9FUlIzKGEsIGIsIGMpIHhtbFJlbGF4TkdBZGRWYWxpZEVycm9yKGN0eHQsIGEsIGIsIGMsIDApOworI2RlZmluZSBWQUxJRF9FUlIyUChhLCBiKSB4bWxSZWxheE5HQWRkVmFsaWRFcnJvcihjdHh0LCBhLCBiLCBOVUxMLCAxKTsKKyNkZWZpbmUgVkFMSURfRVJSM1AoYSwgYiwgYykgeG1sUmVsYXhOR0FkZFZhbGlkRXJyb3IoY3R4dCwgYSwgYiwgYywgMSk7CisKK3N0YXRpYyBjb25zdCBjaGFyICoKK3htbFJlbGF4TkdEZWZOYW1lKHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmKQoreworICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgibm9uZSIpOworICAgIHN3aXRjaCAoZGVmLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRU1QVFk6CisgICAgICAgICAgICByZXR1cm4gKCJlbXB0eSIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX05PVF9BTExPV0VEOgorICAgICAgICAgICAgcmV0dXJuICgibm90QWxsb3dlZCIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VYQ0VQVDoKKyAgICAgICAgICAgIHJldHVybiAoImV4Y2VwdCIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1RFWFQ6CisgICAgICAgICAgICByZXR1cm4gKCJ0ZXh0Iik7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRUxFTUVOVDoKKyAgICAgICAgICAgIHJldHVybiAoImVsZW1lbnQiKTsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19EQVRBVFlQRToKKyAgICAgICAgICAgIHJldHVybiAoImRhdGF0eXBlIik7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gKCJ2YWx1ZSIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0xJU1Q6CisgICAgICAgICAgICByZXR1cm4gKCJsaXN0Iik7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfQVRUUklCVVRFOgorICAgICAgICAgICAgcmV0dXJuICgiYXR0cmlidXRlIik7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfREVGOgorICAgICAgICAgICAgcmV0dXJuICgiZGVmIik7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUkVGOgorICAgICAgICAgICAgcmV0dXJuICgicmVmIik7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhURVJOQUxSRUY6CisgICAgICAgICAgICByZXR1cm4gKCJleHRlcm5hbFJlZiIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1BBUkVOVFJFRjoKKyAgICAgICAgICAgIHJldHVybiAoInBhcmVudFJlZiIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09QVElPTkFMOgorICAgICAgICAgICAgcmV0dXJuICgib3B0aW9uYWwiKTsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19aRVJPT1JNT1JFOgorICAgICAgICAgICAgcmV0dXJuICgiemVyb09yTW9yZSIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09ORU9STU9SRToKKyAgICAgICAgICAgIHJldHVybiAoIm9uZU9yTW9yZSIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0NIT0lDRToKKyAgICAgICAgICAgIHJldHVybiAoImNob2ljZSIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0dST1VQOgorICAgICAgICAgICAgcmV0dXJuICgiZ3JvdXAiKTsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFOgorICAgICAgICAgICAgcmV0dXJuICgiaW50ZXJsZWF2ZSIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1NUQVJUOgorICAgICAgICAgICAgcmV0dXJuICgic3RhcnQiKTsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19OT09QOgorICAgICAgICAgICAgcmV0dXJuICgibm9vcCIpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1BBUkFNOgorICAgICAgICAgICAgcmV0dXJuICgicGFyYW0iKTsKKyAgICB9CisgICAgcmV0dXJuICgidW5rbm93biIpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdHZXRFcnJvclN0cmluZzoKKyAqIEBlcnI6ICB0aGUgZXJyb3IgY29kZQorICogQGFyZzE6ICB0aGUgZmlyc3Qgc3RyaW5nIGFyZ3VtZW50CisgKiBAYXJnMjogIHRoZSBzZWNvbmQgc3RyaW5nIGFyZ3VtZW50CisgKgorICogY29tcHV0ZXMgYSBmb3JtYXR0ZWQgZXJyb3Igc3RyaW5nIGZvciB0aGUgZ2l2ZW4gZXJyb3IgY29kZSBhbmQgYXJncworICoKKyAqIFJldHVybnMgdGhlIGVycm9yIHN0cmluZywgaXQgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbFJlbGF4TkdHZXRFcnJvclN0cmluZyh4bWxSZWxheE5HVmFsaWRFcnIgZXJyLCBjb25zdCB4bWxDaGFyICogYXJnMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogYXJnMikKK3sKKyAgICBjaGFyIG1zZ1sxMDAwXTsKKworICAgIGlmIChhcmcxID09IE5VTEwpCisgICAgICAgIGFyZzEgPSBCQURfQ0FTVCAiIjsKKyAgICBpZiAoYXJnMiA9PSBOVUxMKQorICAgICAgICBhcmcyID0gQkFEX0NBU1QgIiI7CisKKyAgICBtc2dbMF0gPSAwOworICAgIHN3aXRjaCAoZXJyKSB7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfT0s6CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9NRU1PUlk6CisgICAgICAgICAgICByZXR1cm4gKHhtbENoYXJTdHJkdXAoIm91dCBvZiBtZW1vcnlcbiIpKTsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfVFlQRToKKyAgICAgICAgICAgIHNucHJpbnRmKG1zZywgMTAwMCwgImZhaWxlZCB0byB2YWxpZGF0ZSB0eXBlICVzXG4iLCBhcmcxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9UWVBFVkFMOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiVHlwZSAlcyBkb2Vzbid0IGFsbG93IHZhbHVlICclcydcbiIsIGFyZzEsCisgICAgICAgICAgICAgICAgICAgICBhcmcyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9EVVBJRDoKKyAgICAgICAgICAgIHNucHJpbnRmKG1zZywgMTAwMCwgIklEICVzIHJlZGVmaW5lZFxuIiwgYXJnMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfVFlQRUNNUDoKKyAgICAgICAgICAgIHNucHJpbnRmKG1zZywgMTAwMCwgImZhaWxlZCB0byBjb21wYXJlIHR5cGUgJXNcbiIsIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX05PU1RBVEU6CisgICAgICAgICAgICByZXR1cm4gKHhtbENoYXJTdHJkdXAoIkludGVybmFsIGVycm9yOiBubyBzdGF0ZVxuIikpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9OT0RFRklORToKKyAgICAgICAgICAgIHJldHVybiAoeG1sQ2hhclN0cmR1cCgiSW50ZXJuYWwgZXJyb3I6IG5vIGRlZmluZVxuIikpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTDoKKyAgICAgICAgICAgIHNucHJpbnRmKG1zZywgMTAwMCwgIkludGVybmFsIGVycm9yOiAlc1xuIiwgYXJnMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfTElTVEVYVFJBOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiRXh0cmEgZGF0YSBpbiBsaXN0OiAlc1xuIiwgYXJnMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfSU5URVJOT0RBVEE6CisgICAgICAgICAgICByZXR1cm4gKHhtbENoYXJTdHJkdXAKKyAgICAgICAgICAgICAgICAgICAgKCJJbnRlcm5hbDogaW50ZXJsZWF2ZSBibG9jayBoYXMgbm8gZGF0YVxuIikpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9JTlRFUlNFUToKKyAgICAgICAgICAgIHJldHVybiAoeG1sQ2hhclN0cmR1cCgiSW52YWxpZCBzZXF1ZW5jZSBpbiBpbnRlcmxlYXZlXG4iKSk7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0lOVEVSRVhUUkE6CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJFeHRyYSBlbGVtZW50ICVzIGluIGludGVybGVhdmVcbiIsIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0VMRU1OQU1FOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiRXhwZWN0aW5nIGVsZW1lbnQgJXMsIGdvdCAlc1xuIiwgYXJnMSwKKyAgICAgICAgICAgICAgICAgICAgIGFyZzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0VMRU1OT05TOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiRXhwZWN0aW5nIGEgbmFtZXNwYWNlIGZvciBlbGVtZW50ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgYXJnMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HTlM6CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAiRWxlbWVudCAlcyBoYXMgd3JvbmcgbmFtZXNwYWNlOiBleHBlY3RpbmcgJXNcbiIsIGFyZzEsCisgICAgICAgICAgICAgICAgICAgICBhcmcyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9FTEVNV1JPTkc6CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJEaWQgbm90IGV4cGVjdCBlbGVtZW50ICVzIHRoZXJlXG4iLCBhcmcxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9URVhUV1JPTkc6CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAiRGlkIG5vdCBleHBlY3QgdGV4dCBpbiBlbGVtZW50ICVzIGNvbnRlbnRcbiIsIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiRXhwZWN0aW5nIG5vIG5hbWVzcGFjZSBmb3IgZWxlbWVudCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0VMRU1OT1RFTVBUWToKKyAgICAgICAgICAgIHNucHJpbnRmKG1zZywgMTAwMCwgIkV4cGVjdGluZyBlbGVtZW50ICVzIHRvIGJlIGVtcHR5XG4iLCBhcmcxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9OT0VMRU06CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJFeHBlY3RpbmcgYW4gZWxlbWVudCAlcywgZ290IG5vdGhpbmdcbiIsCisgICAgICAgICAgICAgICAgICAgICBhcmcxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9OT1RFTEVNOgorICAgICAgICAgICAgcmV0dXJuICh4bWxDaGFyU3RyZHVwKCJFeHBlY3RpbmcgYW4gZWxlbWVudCBnb3QgdGV4dFxuIikpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQ6CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJFbGVtZW50ICVzIGZhaWxlZCB0byB2YWxpZGF0ZSBhdHRyaWJ1dGVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgYXJnMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfQ09OVEVOVFZBTElEOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiRWxlbWVudCAlcyBmYWlsZWQgdG8gdmFsaWRhdGUgY29udGVudFxuIiwKKyAgICAgICAgICAgICAgICAgICAgIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0VYVFJBQ09OVEVOVDoKKyAgICAgICAgICAgIHNucHJpbnRmKG1zZywgMTAwMCwgIkVsZW1lbnQgJXMgaGFzIGV4dHJhIGNvbnRlbnQ6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgYXJnMSwgYXJnMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfSU5WQUxJREFUVFI6CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJJbnZhbGlkIGF0dHJpYnV0ZSAlcyBmb3IgZWxlbWVudCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIGFyZzEsIGFyZzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0xBQ0tEQVRBOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiRGF0YXR5cGUgZWxlbWVudCAlcyBjb250YWlucyBubyBkYXRhXG4iLAorICAgICAgICAgICAgICAgICAgICAgYXJnMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfREFUQUVMRU06CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJEYXRhdHlwZSBlbGVtZW50ICVzIGhhcyBjaGlsZCBlbGVtZW50c1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX1ZBTEVMRU06CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJWYWx1ZSBlbGVtZW50ICVzIGhhcyBjaGlsZCBlbGVtZW50c1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0xJU1RFTEVNOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiTGlzdCBlbGVtZW50ICVzIGhhcyBjaGlsZCBlbGVtZW50c1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIGFyZzEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0RBVEFUWVBFOgorICAgICAgICAgICAgc25wcmludGYobXNnLCAxMDAwLCAiRXJyb3IgdmFsaWRhdGluZyBkYXRhdHlwZSAlc1xuIiwgYXJnMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfVkFMVUU6CisgICAgICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJFcnJvciB2YWxpZGF0aW5nIHZhbHVlICVzXG4iLCBhcmcxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VSUl9MSVNUOgorICAgICAgICAgICAgcmV0dXJuICh4bWxDaGFyU3RyZHVwKCJFcnJvciB2YWxpZGF0aW5nIGxpc3RcbiIpKTsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSOgorICAgICAgICAgICAgcmV0dXJuICh4bWxDaGFyU3RyZHVwKCJObyB0b3AgZ3JhbW1hciBkZWZpbmVkXG4iKSk7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVJSX0VYVFJBREFUQToKKyAgICAgICAgICAgIHJldHVybiAoeG1sQ2hhclN0cmR1cCgiRXh0cmEgZGF0YSBpbiB0aGUgZG9jdW1lbnRcbiIpKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAoeG1sQ2hhclN0cmR1cCgiVW5rbm93biBlcnJvciAhXG4iKSk7CisgICAgfQorICAgIGlmIChtc2dbMF0gPT0gMCkgeworICAgICAgICBzbnByaW50Zihtc2csIDEwMDAsICJVbmtub3duIGVycm9yIGNvZGUgJWRcbiIsIGVycik7CisgICAgfQorICAgIG1zZ1sxMDAwIC0gMV0gPSAwOworICAgIHJldHVybiAoeG1sU3RyZHVwKCh4bWxDaGFyICopIG1zZykpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdTaG93VmFsaWRFcnJvcjoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBjaGlsZDogIHRoZSBub2RlIGNoaWxkIGdlbmVyYXRpbmcgdGhlIHByb2JsZW0uCisgKiBAYXJnMTogIHRoZSBmaXJzdCBhcmd1bWVudAorICogQGFyZzI6ICB0aGUgc2Vjb25kIGFyZ3VtZW50CisgKgorICogU2hvdyBhIHZhbGlkYXRpb24gZXJyb3IuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HU2hvd1ZhbGlkRXJyb3IoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZEVyciBlcnIsIHhtbE5vZGVQdHIgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGNoaWxkLCBjb25zdCB4bWxDaGFyICogYXJnMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogYXJnMikKK3sKKyAgICB4bWxDaGFyICptc2c7CisKKyAgICBpZiAoY3R4dC0+ZmxhZ3MgJiBGTEFHU19OT0VSUk9SKQorICAgICAgICByZXR1cm47CisKKyNpZmRlZiBERUJVR19FUlJPUgorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiU2hvdyBlcnJvciAlZFxuIiwgZXJyKTsKKyNlbmRpZgorICAgIG1zZyA9IHhtbFJlbGF4TkdHZXRFcnJvclN0cmluZyhlcnIsIGFyZzEsIGFyZzIpOworICAgIGlmIChtc2cgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGN0eHQtPmVyck5vID09IFhNTF9SRUxBWE5HX09LKQorICAgICAgICBjdHh0LT5lcnJObyA9IGVycjsKKyAgICB4bWxSbmdWRXJyKGN0eHQsIChjaGlsZCA9PSBOVUxMID8gbm9kZSA6IGNoaWxkKSwgZXJyLAorICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgbXNnLCBhcmcxLCBhcmcyKTsKKyAgICB4bWxGcmVlKG1zZyk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BvcEVycm9yczoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGxldmVsOiAgdGhlIGVycm9yIGxldmVsIGluIHRoZSBzdGFjaworICoKKyAqIHBvcCBhbmQgZGlzY2FyZCBhbGwgZXJyb3JzIHVudGlsIHRoZSBnaXZlbiBsZXZlbCBpcyByZWFjaGVkCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HUG9wRXJyb3JzKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwgaW50IGxldmVsKQoreworICAgIGludCBpOworICAgIHhtbFJlbGF4TkdWYWxpZEVycm9yUHRyIGVycjsKKworI2lmZGVmIERFQlVHX0VSUk9SCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICJQb3AgZXJyb3JzIHRpbGwgbGV2ZWwgJWRcbiIsIGxldmVsKTsKKyNlbmRpZgorICAgIGZvciAoaSA9IGxldmVsOyBpIDwgY3R4dC0+ZXJyTnI7IGkrKykgeworICAgICAgICBlcnIgPSAmY3R4dC0+ZXJyVGFiW2ldOworICAgICAgICBpZiAoZXJyLT5mbGFncyAmIEVSUk9SX0lTX0RVUCkgeworICAgICAgICAgICAgaWYgKGVyci0+YXJnMSAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgZXJyLT5hcmcxKTsKKyAgICAgICAgICAgIGVyci0+YXJnMSA9IE5VTEw7CisgICAgICAgICAgICBpZiAoZXJyLT5hcmcyICE9IE5VTEwpCisgICAgICAgICAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBlcnItPmFyZzIpOworICAgICAgICAgICAgZXJyLT5hcmcyID0gTlVMTDsKKyAgICAgICAgICAgIGVyci0+ZmxhZ3MgPSAwOworICAgICAgICB9CisgICAgfQorICAgIGN0eHQtPmVyck5yID0gbGV2ZWw7CisgICAgaWYgKGN0eHQtPmVyck5yIDw9IDApCisgICAgICAgIGN0eHQtPmVyciA9IE5VTEw7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0R1bXBWYWxpZEVycm9yOgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogU2hvdyBhbGwgdmFsaWRhdGlvbiBlcnJvciBvdmVyIGEgZ2l2ZW4gaW5kZXguCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HRHVtcFZhbGlkRXJyb3IoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0KQoreworICAgIGludCBpLCBqLCBrOworICAgIHhtbFJlbGF4TkdWYWxpZEVycm9yUHRyIGVyciwgZHVwOworCisjaWZkZWYgREVCVUdfRVJST1IKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIkR1bXBpbmcgZXJyb3Igc3RhY2sgJWQgZXJyb3JzXG4iLCBjdHh0LT5lcnJOcik7CisjZW5kaWYKKyAgICBmb3IgKGkgPSAwLCBrID0gMDsgaSA8IGN0eHQtPmVyck5yOyBpKyspIHsKKyAgICAgICAgZXJyID0gJmN0eHQtPmVyclRhYltpXTsKKyAgICAgICAgaWYgKGsgPCBNQVhfRVJST1IpIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBpOyBqKyspIHsKKyAgICAgICAgICAgICAgICBkdXAgPSAmY3R4dC0+ZXJyVGFiW2pdOworICAgICAgICAgICAgICAgIGlmICgoZXJyLT5lcnIgPT0gZHVwLT5lcnIpICYmIChlcnItPm5vZGUgPT0gZHVwLT5ub2RlKSAmJgorICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwoZXJyLT5hcmcxLCBkdXAtPmFyZzEpKSAmJgorICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwoZXJyLT5hcmcyLCBkdXAtPmFyZzIpKSkgeworICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgeG1sUmVsYXhOR1Nob3dWYWxpZEVycm9yKGN0eHQsIGVyci0+ZXJyLCBlcnItPm5vZGUsIGVyci0+c2VxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci0+YXJnMSwgZXJyLT5hcmcyKTsKKyAgICAgICAgICAgIGsrKzsKKyAgICAgICAgfQorICAgICAgc2tpcDoKKyAgICAgICAgaWYgKGVyci0+ZmxhZ3MgJiBFUlJPUl9JU19EVVApIHsKKyAgICAgICAgICAgIGlmIChlcnItPmFyZzEgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICB4bWxGcmVlKCh4bWxDaGFyICopIGVyci0+YXJnMSk7CisgICAgICAgICAgICBlcnItPmFyZzEgPSBOVUxMOworICAgICAgICAgICAgaWYgKGVyci0+YXJnMiAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgZXJyLT5hcmcyKTsKKyAgICAgICAgICAgIGVyci0+YXJnMiA9IE5VTEw7CisgICAgICAgICAgICBlcnItPmZsYWdzID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBjdHh0LT5lcnJOciA9IDA7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0FkZFZhbGlkRXJyb3I6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBlcnI6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAYXJnMTogIHRoZSBmaXJzdCBhcmd1bWVudAorICogQGFyZzI6ICB0aGUgc2Vjb25kIGFyZ3VtZW50CisgKiBAZHVwOiAgbmVlZCB0byBkdXAgdGhlIGFyZ3MKKyAqCisgKiBSZWdpc3RlciBhIHZhbGlkYXRpb24gZXJyb3IsIGVpdGhlciBnZW5lcmF0aW5nIGl0IGlmIGl0J3Mgc3VyZQorICogb3Igc3RhY2tpbmcgaXQgZm9yIGxhdGVyIGhhbmRsaW5nIGlmIHVuc3VyZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdBZGRWYWxpZEVycm9yKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZEVyciBlcnIsIGNvbnN0IHhtbENoYXIgKiBhcmcxLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGFyZzIsIGludCBkdXApCit7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChjdHh0LT5mbGFncyAmIEZMQUdTX05PRVJST1IpCisgICAgICAgIHJldHVybjsKKworI2lmZGVmIERFQlVHX0VSUk9SCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJBZGRpbmcgZXJyb3IgJWRcbiIsIGVycik7CisjZW5kaWYKKyAgICAvKgorICAgICAqIGdlbmVyYXRlIHRoZSBlcnJvciBkaXJlY3RseQorICAgICAqLworICAgIGlmICgoKGN0eHQtPmZsYWdzICYgRkxBR1NfSUdOT1JBQkxFKSA9PSAwKSB8fAorICAgIAkgKGN0eHQtPmZsYWdzICYgRkxBR1NfTkVHQVRJVkUpKSB7CisgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwgc2VxOworCisgICAgICAgIC8qCisgICAgICAgICAqIEZsdXNoIGZpcnN0IGFueSBzdGFja2VkIGVycm9yIHdoaWNoIG1pZ2h0IGJlIHRoZQorICAgICAgICAgKiByZWFsIGNhdXNlIG9mIHRoZSBwcm9ibGVtLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGN0eHQtPmVyck5yICE9IDApCisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcFZhbGlkRXJyb3IoY3R4dCk7CisgICAgICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICBub2RlID0gY3R4dC0+c3RhdGUtPm5vZGU7CisgICAgICAgICAgICBzZXEgPSBjdHh0LT5zdGF0ZS0+c2VxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbm9kZSA9IHNlcSA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChub2RlID09IE5VTEwpICYmIChzZXEgPT0gTlVMTCkpIHsKKyAgICAgICAgICAgIG5vZGUgPSBjdHh0LT5wbm9kZTsKKyAgICAgICAgfQorICAgICAgICB4bWxSZWxheE5HU2hvd1ZhbGlkRXJyb3IoY3R4dCwgZXJyLCBub2RlLCBzZXEsIGFyZzEsIGFyZzIpOworICAgIH0KKyAgICAvKgorICAgICAqIFN0YWNrIHRoZSBlcnJvciBmb3IgbGF0ZXIgcHJvY2Vzc2luZyBpZiBuZWVkZWQKKyAgICAgKi8KKyAgICBlbHNlIHsKKyAgICAgICAgeG1sUmVsYXhOR1ZhbGlkRXJyb3JQdXNoKGN0eHQsIGVyciwgYXJnMSwgYXJnMiwgZHVwKTsKKyAgICB9Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQkJVHlwZSBsaWJyYXJ5IGhvb2tzCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgeG1sQ2hhciAqeG1sUmVsYXhOR05vcm1hbGl6ZSh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3RyKTsKKworLyoqCisgKiB4bWxSZWxheE5HU2NoZW1hVHlwZUhhdmU6CisgKiBAZGF0YTogIGRhdGEgbmVlZGVkIGZvciB0aGUgbGlicmFyeQorICogQHR5cGU6ICB0aGUgdHlwZSBuYW1lCisgKgorICogQ2hlY2sgaWYgdGhlIGdpdmVuIHR5cGUgaXMgcHJvdmlkZWQgYnkKKyAqIHRoZSBXM0MgWE1MU2NoZW1hIERhdGF0eXBlIGxpYnJhcnkuCisgKgorICogUmV0dXJucyAxIGlmIHllcywgMCBpZiBubyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1NjaGVtYVR5cGVIYXZlKHZvaWQgKmRhdGEgQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqIHR5cGUpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXA7CisKKyAgICBpZiAodHlwZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB0eXAgPSB4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZSh0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIik7CisgICAgaWYgKHR5cCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKDApOworICAgIHJldHVybiAoMSk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1NjaGVtYVR5cGVDaGVjazoKKyAqIEBkYXRhOiAgZGF0YSBuZWVkZWQgZm9yIHRoZSBsaWJyYXJ5CisgKiBAdHlwZTogIHRoZSB0eXBlIG5hbWUKKyAqIEB2YWx1ZTogIHRoZSB2YWx1ZSB0byBjaGVjaworICogQG5vZGU6ICB0aGUgbm9kZQorICoKKyAqIENoZWNrIGlmIHRoZSBnaXZlbiB0eXBlIGFuZCB2YWx1ZSBhcmUgdmFsaWRhdGVkIGJ5CisgKiB0aGUgVzNDIFhNTFNjaGVtYSBEYXRhdHlwZSBsaWJyYXJ5LgorICoKKyAqIFJldHVybnMgMSBpZiB5ZXMsIDAgaWYgbm8gYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdTY2hlbWFUeXBlQ2hlY2sodm9pZCAqZGF0YSBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqcmVzdWx0LCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXA7CisgICAgaW50IHJldDsKKworICAgIGlmICgodHlwZSA9PSBOVUxMKSB8fCAodmFsdWUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIHR5cCA9IHhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlKHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiKTsKKyAgICBpZiAodHlwID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIHJldCA9IHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlKHR5cCwgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFNjaGVtYVZhbFB0ciAqKSByZXN1bHQsIG5vZGUpOworICAgIGlmIChyZXQgPT0gMikgICAgICAgICAgICAgICAvKiBzcGVjaWFsIElEIGVycm9yIGNvZGUgKi8KKyAgICAgICAgcmV0dXJuICgyKTsKKyAgICBpZiAocmV0ID09IDApCisgICAgICAgIHJldHVybiAoMSk7CisgICAgaWYgKHJldCA+IDApCisgICAgICAgIHJldHVybiAoMCk7CisgICAgcmV0dXJuICgtMSk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1NjaGVtYUZhY2V0Q2hlY2s6CisgKiBAZGF0YTogIGRhdGEgbmVlZGVkIGZvciB0aGUgbGlicmFyeQorICogQHR5cGU6ICB0aGUgdHlwZSBuYW1lCisgKiBAZmFjZXQ6ICB0aGUgZmFjZXQgbmFtZQorICogQHZhbDogIHRoZSBmYWNldCB2YWx1ZQorICogQHN0cnZhbDogIHRoZSBzdHJpbmcgdmFsdWUKKyAqIEB2YWx1ZTogIHRoZSB2YWx1ZSB0byBjaGVjaworICoKKyAqIEZ1bmN0aW9uIHByb3ZpZGVkIGJ5IGEgdHlwZSBsaWJyYXJ5IHRvIGNoZWNrIGEgdmFsdWUgZmFjZXQKKyAqCisgKiBSZXR1cm5zIDEgaWYgeWVzLCAwIGlmIG5vIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HU2NoZW1hRmFjZXRDaGVjayh2b2lkICpkYXRhIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogdHlwZSwgY29uc3QgeG1sQ2hhciAqIGZhY2V0bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB2YWwsIGNvbnN0IHhtbENoYXIgKiBzdHJ2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp2YWx1ZSkKK3sKKyAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cDsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKCh0eXBlID09IE5VTEwpIHx8IChzdHJ2YWwgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIHR5cCA9IHhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlKHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiKTsKKyAgICBpZiAodHlwID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgZmFjZXQgPSB4bWxTY2hlbWFOZXdGYWNldCgpOworICAgIGlmIChmYWNldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIGlmICh4bWxTdHJFcXVhbChmYWNldG5hbWUsIEJBRF9DQVNUICJtaW5JbmNsdXNpdmUiKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoZmFjZXRuYW1lLCBCQURfQ0FTVCAibWluRXhjbHVzaXZlIikpIHsKKyAgICAgICAgZmFjZXQtPnR5cGUgPSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRTsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGZhY2V0bmFtZSwgQkFEX0NBU1QgIm1heEluY2x1c2l2ZSIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChmYWNldG5hbWUsIEJBRF9DQVNUICJtYXhFeGNsdXNpdmUiKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoZmFjZXRuYW1lLCBCQURfQ0FTVCAidG90YWxEaWdpdHMiKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFM7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChmYWNldG5hbWUsIEJBRF9DQVNUICJmcmFjdGlvbkRpZ2l0cyIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUzsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGZhY2V0bmFtZSwgQkFEX0NBU1QgInBhdHRlcm4iKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTjsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGZhY2V0bmFtZSwgQkFEX0NBU1QgImVudW1lcmF0aW9uIikpIHsKKyAgICAgICAgZmFjZXQtPnR5cGUgPSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoZmFjZXRuYW1lLCBCQURfQ0FTVCAid2hpdGVTcGFjZSIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoZmFjZXRuYW1lLCBCQURfQ0FTVCAibGVuZ3RoIikpIHsKKyAgICAgICAgZmFjZXQtPnR5cGUgPSBYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSDsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGZhY2V0bmFtZSwgQkFEX0NBU1QgIm1heExlbmd0aCIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEg7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChmYWNldG5hbWUsIEJBRF9DQVNUICJtaW5MZW5ndGgiKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbFNjaGVtYUZyZWVGYWNldChmYWNldCk7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBmYWNldC0+dmFsdWUgPSB2YWw7CisgICAgcmV0ID0geG1sU2NoZW1hQ2hlY2tGYWNldChmYWNldCwgdHlwLCBOVUxMLCB0eXBlKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgeG1sU2NoZW1hRnJlZUZhY2V0KGZhY2V0KTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRmFjZXQodHlwLCBmYWNldCwgc3RydmFsLCB2YWx1ZSk7CisgICAgeG1sU2NoZW1hRnJlZUZhY2V0KGZhY2V0KTsKKyAgICBpZiAocmV0ICE9IDApCisgICAgICAgIHJldHVybiAoLTEpOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1NjaGVtYUZyZWVWYWx1ZToKKyAqIEBkYXRhOiAgZGF0YSBuZWVkZWQgZm9yIHRoZSBsaWJyYXJ5CisgKiBAdmFsdWU6ICB0aGUgdmFsdWUgdG8gZnJlZQorICoKKyAqIEZ1bmN0aW9uIHByb3ZpZGVkIGJ5IGEgdHlwZSBsaWJyYXJ5IHRvIGZyZWUgYSBTY2hlbWFzIHZhbHVlCisgKgorICogUmV0dXJucyAxIGlmIHllcywgMCBpZiBubyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdTY2hlbWFGcmVlVmFsdWUodm9pZCAqZGF0YSBBVFRSSUJVVEVfVU5VU0VELCB2b2lkICp2YWx1ZSkKK3sKKyAgICB4bWxTY2hlbWFGcmVlVmFsdWUodmFsdWUpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdTY2hlbWFUeXBlQ29tcGFyZToKKyAqIEBkYXRhOiAgZGF0YSBuZWVkZWQgZm9yIHRoZSBsaWJyYXJ5CisgKiBAdHlwZTogIHRoZSB0eXBlIG5hbWUKKyAqIEB2YWx1ZTE6ICB0aGUgZmlyc3QgdmFsdWUKKyAqIEB2YWx1ZTI6ICB0aGUgc2Vjb25kIHZhbHVlCisgKgorICogQ29tcGFyZSB0d28gdmFsdWVzIGZvciBlcXVhbGl0eSBhY2NvcmRpbmdseSBhIHR5cGUgZnJvbSB0aGUgVzNDIFhNTFNjaGVtYQorICogRGF0YXR5cGUgbGlicmFyeS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgZXF1YWwsIDAgaWYgbm8gYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdTY2hlbWFUeXBlQ29tcGFyZSh2b2lkICpkYXRhIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHZhbHVlMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGN0eHQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNvbXAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB2YWx1ZTIsIHhtbE5vZGVQdHIgY3R4dDIpCit7CisgICAgaW50IHJldDsKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cDsKKyAgICB4bWxTY2hlbWFWYWxQdHIgcmVzMSA9IE5VTEwsIHJlczIgPSBOVUxMOworCisgICAgaWYgKCh0eXBlID09IE5VTEwpIHx8ICh2YWx1ZTEgPT0gTlVMTCkgfHwgKHZhbHVlMiA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgdHlwID0geG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUodHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIpOworICAgIGlmICh0eXAgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgaWYgKGNvbXAxID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0geG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUodHlwLCB2YWx1ZTEsICZyZXMxLCBjdHh0MSk7CisgICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICBpZiAocmVzMSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzMSA9ICh4bWxTY2hlbWFWYWxQdHIpIGNvbXAxOworICAgIH0KKyAgICByZXQgPSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSh0eXAsIHZhbHVlMiwgJnJlczIsIGN0eHQyKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKwlpZiAoKGNvbXAxID09IE5VTEwpICYmIChyZXMxICE9IE5VTEwpKQorCSAgICB4bWxTY2hlbWFGcmVlVmFsdWUocmVzMSk7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBpZiAocmVzMSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICByZXQgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKHJlczEsIHJlczIpOworICAgIGlmIChyZXMxICE9ICh4bWxTY2hlbWFWYWxQdHIpIGNvbXAxKQorICAgICAgICB4bWxTY2hlbWFGcmVlVmFsdWUocmVzMSk7CisgICAgeG1sU2NoZW1hRnJlZVZhbHVlKHJlczIpOworICAgIGlmIChyZXQgPT0gLTIpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChyZXQgPT0gMCkKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdEZWZhdWx0VHlwZUhhdmU6CisgKiBAZGF0YTogIGRhdGEgbmVlZGVkIGZvciB0aGUgbGlicmFyeQorICogQHR5cGU6ICB0aGUgdHlwZSBuYW1lCisgKgorICogQ2hlY2sgaWYgdGhlIGdpdmVuIHR5cGUgaXMgcHJvdmlkZWQgYnkKKyAqIHRoZSBkZWZhdWx0IGRhdGF0eXBlIGxpYnJhcnkuCisgKgorICogUmV0dXJucyAxIGlmIHllcywgMCBpZiBubyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR0RlZmF1bHRUeXBlSGF2ZSh2b2lkICpkYXRhIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB0eXBlKQoreworICAgIGlmICh0eXBlID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmICh4bWxTdHJFcXVhbCh0eXBlLCBCQURfQ0FTVCAic3RyaW5nIikpCisgICAgICAgIHJldHVybiAoMSk7CisgICAgaWYgKHhtbFN0ckVxdWFsKHR5cGUsIEJBRF9DQVNUICJ0b2tlbiIpKQorICAgICAgICByZXR1cm4gKDEpOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0RlZmF1bHRUeXBlQ2hlY2s6CisgKiBAZGF0YTogIGRhdGEgbmVlZGVkIGZvciB0aGUgbGlicmFyeQorICogQHR5cGU6ICB0aGUgdHlwZSBuYW1lCisgKiBAdmFsdWU6ICB0aGUgdmFsdWUgdG8gY2hlY2sKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqCisgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gdHlwZSBhbmQgdmFsdWUgYXJlIHZhbGlkYXRlZCBieQorICogdGhlIGRlZmF1bHQgZGF0YXR5cGUgbGlicmFyeS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgeWVzLCAwIGlmIG5vIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HRGVmYXVsdFR5cGVDaGVjayh2b2lkICpkYXRhIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogdHlwZSBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHZhbHVlIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqcmVzdWx0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgaWYgKHhtbFN0ckVxdWFsKHR5cGUsIEJBRF9DQVNUICJzdHJpbmciKSkKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICBpZiAoeG1sU3RyRXF1YWwodHlwZSwgQkFEX0NBU1QgInRva2VuIikpIHsKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICB9CisKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdEZWZhdWx0VHlwZUNvbXBhcmU6CisgKiBAZGF0YTogIGRhdGEgbmVlZGVkIGZvciB0aGUgbGlicmFyeQorICogQHR5cGU6ICB0aGUgdHlwZSBuYW1lCisgKiBAdmFsdWUxOiAgdGhlIGZpcnN0IHZhbHVlCisgKiBAdmFsdWUyOiAgdGhlIHNlY29uZCB2YWx1ZQorICoKKyAqIENvbXBhcmUgdHdvIHZhbHVlcyBhY2NvcmRpbmdseSBhIHR5cGUgZnJvbSB0aGUgZGVmYXVsdAorICogZGF0YXR5cGUgbGlicmFyeS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgeWVzLCAwIGlmIG5vIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HRGVmYXVsdFR5cGVDb21wYXJlKHZvaWQgKmRhdGEgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB2YWx1ZTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgY3R4dDEgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29tcDEgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHZhbHVlMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBjdHh0MiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGludCByZXQgPSAtMTsKKworICAgIGlmICh4bWxTdHJFcXVhbCh0eXBlLCBCQURfQ0FTVCAic3RyaW5nIikpIHsKKyAgICAgICAgcmV0ID0geG1sU3RyRXF1YWwodmFsdWUxLCB2YWx1ZTIpOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwodHlwZSwgQkFEX0NBU1QgInRva2VuIikpIHsKKyAgICAgICAgaWYgKCF4bWxTdHJFcXVhbCh2YWx1ZTEsIHZhbHVlMikpIHsKKyAgICAgICAgICAgIHhtbENoYXIgKm52YWwsICpudmFsdWU7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUT0RPOiB0cml2aWFsIG9wdGltaXphdGlvbnMgYXJlIHBvc3NpYmxlIGJ5CisgICAgICAgICAgICAgKiBjb21wdXRpbmcgYXQgY29tcGlsZS10aW1lCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG52YWwgPSB4bWxSZWxheE5HTm9ybWFsaXplKE5VTEwsIHZhbHVlMSk7CisgICAgICAgICAgICBudmFsdWUgPSB4bWxSZWxheE5HTm9ybWFsaXplKE5VTEwsIHZhbHVlMik7CisKKyAgICAgICAgICAgIGlmICgobnZhbCA9PSBOVUxMKSB8fCAobnZhbHVlID09IE5VTEwpKQorICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobnZhbCwgbnZhbHVlKSkKKyAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICBpZiAobnZhbCAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbEZyZWUobnZhbCk7CisgICAgICAgICAgICBpZiAobnZhbHVlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgeG1sRnJlZShudmFsdWUpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIGludCB4bWxSZWxheE5HVHlwZUluaXRpYWxpemVkID0gMDsKK3N0YXRpYyB4bWxIYXNoVGFibGVQdHIgeG1sUmVsYXhOR1JlZ2lzdGVyZWRUeXBlcyA9IE5VTEw7CisKKy8qKgorICogeG1sUmVsYXhOR0ZyZWVUeXBlTGlicmFyeToKKyAqIEBsaWI6ICB0aGUgdHlwZSBsaWJyYXJ5IHN0cnVjdHVyZQorICogQG5hbWVzcGFjZTogIHRoZSBVUkkgYm91bmQgdG8gdGhlIGxpYnJhcnkKKyAqCisgKiBGcmVlIHRoZSBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB0byB0aGUgdHlwZSBsaWJyYXJ5CisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HRnJlZVR5cGVMaWJyYXJ5KHhtbFJlbGF4TkdUeXBlTGlicmFyeVB0ciBsaWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lc3BhY2UgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBpZiAobGliID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobGliLT5uYW1lc3BhY2UgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBsaWItPm5hbWVzcGFjZSk7CisgICAgeG1sRnJlZShsaWIpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdSZWdpc3RlclR5cGVMaWJyYXJ5OgorICogQG5hbWVzcGFjZTogIHRoZSBVUkkgYm91bmQgdG8gdGhlIGxpYnJhcnkKKyAqIEBkYXRhOiAgZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSBsaWJyYXJ5CisgKiBAaGF2ZTogIHRoZSBwcm92aWRlIGZ1bmN0aW9uCisgKiBAY2hlY2s6ICB0aGUgY2hlY2tpbmcgZnVuY3Rpb24KKyAqIEBjb21wOiAgdGhlIGNvbXBhcmlzb24gZnVuY3Rpb24KKyAqCisgKiBSZWdpc3RlciBhIG5ldyB0eXBlIGxpYnJhcnkKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HUmVnaXN0ZXJUeXBlTGlicmFyeShjb25zdCB4bWxDaGFyICogbmFtZXNwYWNlLCB2b2lkICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1R5cGVIYXZlIGhhdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVHlwZUNoZWNrIGNoZWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1R5cGVDb21wYXJlIGNvbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRmFjZXRDaGVjayBmYWNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdUeXBlRnJlZSBmcmVlZikKK3sKKyAgICB4bWxSZWxheE5HVHlwZUxpYnJhcnlQdHIgbGliOworICAgIGludCByZXQ7CisKKyAgICBpZiAoKHhtbFJlbGF4TkdSZWdpc3RlcmVkVHlwZXMgPT0gTlVMTCkgfHwgKG5hbWVzcGFjZSA9PSBOVUxMKSB8fAorICAgICAgICAoY2hlY2sgPT0gTlVMTCkgfHwgKGNvbXAgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmICh4bWxIYXNoTG9va3VwKHhtbFJlbGF4TkdSZWdpc3RlcmVkVHlwZXMsIG5hbWVzcGFjZSkgIT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJSZWxheC1ORyB0eXBlcyBsaWJyYXJ5ICclcycgYWxyZWFkeSByZWdpc3RlcmVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIGxpYiA9CisgICAgICAgICh4bWxSZWxheE5HVHlwZUxpYnJhcnlQdHIpCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVsYXhOR1R5cGVMaWJyYXJ5KSk7CisgICAgaWYgKGxpYiA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1ZFcnJNZW1vcnkoTlVMTCwgImFkZGluZyB0eXBlcyBsaWJyYXJ5XG4iKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIG1lbXNldChsaWIsIDAsIHNpemVvZih4bWxSZWxheE5HVHlwZUxpYnJhcnkpKTsKKyAgICBsaWItPm5hbWVzcGFjZSA9IHhtbFN0cmR1cChuYW1lc3BhY2UpOworICAgIGxpYi0+ZGF0YSA9IGRhdGE7CisgICAgbGliLT5oYXZlID0gaGF2ZTsKKyAgICBsaWItPmNvbXAgPSBjb21wOworICAgIGxpYi0+Y2hlY2sgPSBjaGVjazsKKyAgICBsaWItPmZhY2V0ID0gZmFjZXQ7CisgICAgbGliLT5mcmVlZiA9IGZyZWVmOworICAgIHJldCA9IHhtbEhhc2hBZGRFbnRyeSh4bWxSZWxheE5HUmVnaXN0ZXJlZFR5cGVzLCBuYW1lc3BhY2UsIGxpYik7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiUmVsYXgtTkcgdHlwZXMgbGlicmFyeSBmYWlsZWQgdG8gcmVnaXN0ZXIgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSk7CisgICAgICAgIHhtbFJlbGF4TkdGcmVlVHlwZUxpYnJhcnkobGliLCBuYW1lc3BhY2UpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HSW5pdFR5cGVzOgorICoKKyAqIEluaXRpbGl6ZSB0aGUgZGVmYXVsdCB0eXBlIGxpYnJhcmllcy4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFJlbGF4TkdJbml0VHlwZXModm9pZCkKK3sKKyAgICBpZiAoeG1sUmVsYXhOR1R5cGVJbml0aWFsaXplZCAhPSAwKQorICAgICAgICByZXR1cm4gKDApOworICAgIHhtbFJlbGF4TkdSZWdpc3RlcmVkVHlwZXMgPSB4bWxIYXNoQ3JlYXRlKDEwKTsKKyAgICBpZiAoeG1sUmVsYXhOR1JlZ2lzdGVyZWRUeXBlcyA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBzaCB0YWJsZSBmb3IgUmVsYXgtTkcgdHlwZXNcbiIpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisgICAgeG1sUmVsYXhOR1JlZ2lzdGVyVHlwZUxpYnJhcnkoQkFEX0NBU1QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCB4bWxSZWxheE5HU2NoZW1hVHlwZUhhdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1NjaGVtYVR5cGVDaGVjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HU2NoZW1hVHlwZUNvbXBhcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1NjaGVtYUZhY2V0Q2hlY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1NjaGVtYUZyZWVWYWx1ZSk7CisgICAgeG1sUmVsYXhOR1JlZ2lzdGVyVHlwZUxpYnJhcnkoeG1sUmVsYXhOR05zLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZhdWx0VHlwZUhhdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmF1bHRUeXBlQ2hlY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmF1bHRUeXBlQ29tcGFyZSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICB4bWxSZWxheE5HVHlwZUluaXRpYWxpemVkID0gMTsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdDbGVhbnVwVHlwZXM6CisgKgorICogQ2xlYW51cCB0aGUgZGVmYXVsdCBTY2hlbWFzIHR5cGUgbGlicmFyeSBhc3NvY2lhdGVkIHRvIFJlbGF4TkcKKyAqLwordm9pZAoreG1sUmVsYXhOR0NsZWFudXBUeXBlcyh2b2lkKQoreworICAgIHhtbFNjaGVtYUNsZWFudXBUeXBlcygpOworICAgIGlmICh4bWxSZWxheE5HVHlwZUluaXRpYWxpemVkID09IDApCisgICAgICAgIHJldHVybjsKKyAgICB4bWxIYXNoRnJlZSh4bWxSZWxheE5HUmVnaXN0ZXJlZFR5cGVzLCAoeG1sSGFzaERlYWxsb2NhdG9yKQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlVHlwZUxpYnJhcnkpOworICAgIHhtbFJlbGF4TkdUeXBlSW5pdGlhbGl6ZWQgPSAwOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCUNvbXBpbGluZyBlbGVtZW50IGNvbnRlbnQgaW50byByZWdleHAJCQkqCisgKiAJCQkJCQkJCQkqCisgKiBTb21ldGltZSB0aGUgZWxlbWVudCBjb250ZW50IGNhbiBiZSBjb21waWxlZCBpbnRvIGEgcHVyZSByZWdleHAsCSoKKyAqIFRoaXMgYWxsb3dzIGEgZmFzdGVyIGV4ZWN1dGlvbiBhbmQgc3RyZWFtYWJpbGl0eSBhdCB0aGF0IGxldmVsCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIGZyb20gYXV0b21hdGEuYyBidXQgbm90IGV4cG9ydGVkICovCit2b2lkIHhtbEF1dG9tYXRhU2V0RmxhZ3MoeG1sQXV0b21hdGFQdHIgYW0sIGludCBmbGFncyk7CisKKworc3RhdGljIGludCB4bWxSZWxheE5HVHJ5Q29tcGlsZSh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZik7CisKKy8qKgorICogeG1sUmVsYXhOR0lzQ29tcGlsZWFibGU6CisgKiBAZGVmaW5lOiAgdGhlIGRlZmluaXRpb24gdG8gY2hlY2sKKyAqCisgKiBDaGVjayBpZiBhIGRlZmluaXRpb24gaXMgbnVsbGFibGUuCisgKgorICogUmV0dXJucyAxIGlmIHllcywgMCBpZiBubyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HSXNDb21waWxlYWJsZSh4bWxSZWxheE5HRGVmaW5lUHRyIGRlZikKK3sKKyAgICBpbnQgcmV0ID0gLTE7CisKKyAgICBpZiAoZGVmID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIGlmICgoZGVmLT50eXBlICE9IFhNTF9SRUxBWE5HX0VMRU1FTlQpICYmCisgICAgICAgIChkZWYtPmRmbGFncyAmIElTX0NPTVBJTEFCTEUpKQorICAgICAgICByZXR1cm4gKDEpOworICAgIGlmICgoZGVmLT50eXBlICE9IFhNTF9SRUxBWE5HX0VMRU1FTlQpICYmCisgICAgICAgIChkZWYtPmRmbGFncyAmIElTX05PVF9DT01QSUxBQkxFKSkKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICBzd2l0Y2ggKGRlZi0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX05PT1A6CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HSXNDb21waWxlYWJsZShkZWYtPmNvbnRlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfVEVYVDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FTVBUWToKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FTEVNRU5UOgorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIENoZWNrIGlmIHRoZSBlbGVtZW50IGNvbnRlbnQgaXMgY29tcGlsZWFibGUKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKCgoZGVmLT5kZmxhZ3MgJiBJU19OT1RfQ09NUElMQUJMRSkgPT0gMCkgJiYKKyAgICAgICAgICAgICAgICAoKGRlZi0+ZGZsYWdzICYgSVNfQ09NUElMQUJMRSkgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGxpc3Q7CisKKyAgICAgICAgICAgICAgICBsaXN0ID0gZGVmLT5jb250ZW50OworICAgICAgICAgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR0lzQ29tcGlsZWFibGUobGlzdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisJCS8qCisJCSAqIEJlY2F1c2UgdGhlIHJvdXRpbmUgaXMgcmVjdXJzaXZlLCB3ZSBtdXN0IGd1YXJkIGFnYWluc3QKKwkJICogZGlzY292ZXJpbmcgYm90aCBDT01QSUxBQkxFIGFuZCBOT1RfQ09NUElMQUJMRQorCQkgKi8KKyAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApIHsKKwkJICAgIGRlZi0+ZGZsYWdzICY9IH5JU19DT01QSUxBQkxFOworICAgICAgICAgICAgICAgICAgICBkZWYtPmRmbGFncyB8PSBJU19OT1RfQ09NUElMQUJMRTsKKwkJfQorICAgICAgICAgICAgICAgIGlmICgocmV0ID09IDEpICYmICEoZGVmLT5kZmxhZ3MgJj0gSVNfTk9UX0NPTVBJTEFCTEUpKQorICAgICAgICAgICAgICAgICAgICBkZWYtPmRmbGFncyB8PSBJU19DT01QSUxBQkxFOworI2lmZGVmIERFQlVHX0NPTVBJTEUKKyAgICAgICAgICAgICAgICBpZiAocmV0ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZWxlbWVudCBjb250ZW50IGZvciAlcyBpcyBjb21waWxhYmxlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmLT5uYW1lKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVsZW1lbnQgY29udGVudCBmb3IgJXMgaXMgbm90IGNvbXBpbGFibGVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYtPm5hbWUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb2JsZW0gaW4gUmVsYXhOR0lzQ29tcGlsZWFibGUgZm9yIGVsZW1lbnQgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYtPm5hbWUpOworICAgICAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEFsbCBlbGVtZW50cyByZXR1cm4gYSBjb21waWxlYWJsZSBzdGF0dXMgdW5sZXNzIHRoZXkKKyAgICAgICAgICAgICAqIGFyZSBnZW5lcmljIGxpa2UgYW55TmFtZQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoKGRlZi0+bmFtZUNsYXNzICE9IE5VTEwpIHx8IChkZWYtPm5hbWUgPT0gTlVMTCkpCisgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgcmV0dXJuIChyZXQpOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1JFRjoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FWFRFUk5BTFJFRjoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19QQVJFTlRSRUY6CisgICAgICAgICAgICBpZiAoZGVmLT5kZXB0aCA9PSAtMjApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKDEpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGxpc3Q7CisKKyAgICAgICAgICAgICAgICBkZWYtPmRlcHRoID0gLTIwOworICAgICAgICAgICAgICAgIGxpc3QgPSBkZWYtPmNvbnRlbnQ7CisgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HSXNDb21waWxlYWJsZShsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09QVElPTkFMOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1pFUk9PUk1PUkU6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfT05FT1JNT1JFOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0NIT0lDRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19HUk9VUDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19ERUY6eworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdDsKKworICAgICAgICAgICAgICAgIGxpc3QgPSBkZWYtPmNvbnRlbnQ7CisgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HSXNDb21waWxlYWJsZShsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FWENFUFQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfQVRUUklCVVRFOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0lOVEVSTEVBVkU6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfREFUQVRZUEU6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTElTVDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19QQVJBTToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19WQUxVRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19OT1RfQUxMT1dFRDoKKyAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKHJldCA9PSAwKQorICAgICAgICBkZWYtPmRmbGFncyB8PSBJU19OT1RfQ09NUElMQUJMRTsKKyAgICBpZiAocmV0ID09IDEpCisgICAgICAgIGRlZi0+ZGZsYWdzIHw9IElTX0NPTVBJTEFCTEU7CisjaWZkZWYgREVCVUdfQ09NUElMRQorICAgIGlmIChyZXQgPT0gMSkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJSZWxheE5HSXNDb21waWxlYWJsZSAlcyA6IHRydWVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmTmFtZShkZWYpKTsKKyAgICB9IGVsc2UgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIlJlbGF4TkdJc0NvbXBpbGVhYmxlICVzIDogZmFsc2VcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmTmFtZShkZWYpKTsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJQcm9ibGVtIGluIFJlbGF4TkdJc0NvbXBpbGVhYmxlICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZk5hbWUoZGVmKSk7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdDb21waWxlOgorICogY3R4dDogIHRoZSBSZWxheE5HIHBhcnNlciBjb250ZXh0CisgKiBAZGVmaW5lOiAgdGhlIGRlZmluaXRpb24gdHJlZSB0byBjb21waWxlCisgKgorICogQ29tcGlsZSB0aGUgc2V0IG9mIGRlZmluaXRpb25zLCBpdCB3b3JrcyByZWN1cnNpdmVseSwgdGlsbCB0aGUKKyAqIGVsZW1lbnQgYm91bmRhcmllcywgd2hlcmUgaXQgdHJpZXMgdG8gY29tcGlsZSB0aGUgY29udGVudCBpZiBwb3NzaWJsZQorICoKKyAqIFJldHVybnMgMCBpZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdDb21waWxlKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmKQoreworICAgIGludCByZXQgPSAwOworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZGVmID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIHN3aXRjaCAoZGVmLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfU1RBUlQ6CisgICAgICAgICAgICBpZiAoKHhtbFJlbGF4TkdJc0NvbXBpbGVhYmxlKGRlZikgPT0gMSkgJiYgKGRlZi0+ZGVwdGggIT0gLTI1KSkgeworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhUHRyIG9sZGFtID0gY3R4dC0+YW07CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFTdGF0ZVB0ciBvbGRzdGF0ZSA9IGN0eHQtPnN0YXRlOworCisgICAgICAgICAgICAgICAgZGVmLT5kZXB0aCA9IC0yNTsKKworICAgICAgICAgICAgICAgIGxpc3QgPSBkZWYtPmNvbnRlbnQ7CisgICAgICAgICAgICAgICAgY3R4dC0+YW0gPSB4bWxOZXdBdXRvbWF0YSgpOworICAgICAgICAgICAgICAgIGlmIChjdHh0LT5hbSA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogYXNzdW1lIGlkZW50aWNhbCBzdHJpbmdzIGJ1dCBub3Qgc2FtZSBwb2ludGVyIGFyZSBkaWZmZXJlbnQKKyAgICAgICAgICAgICAgICAgKiBhdG9tcywgbmVlZGVkIGZvciBub24tZGV0ZXJtaW5pc20gZGV0ZWN0aW9uCisgICAgICAgICAgICAgICAgICogVGhhdCB3YXkgaWYgMiBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUgYXJlIGluIGEgY2hvaWNlCisgICAgICAgICAgICAgICAgICogYnJhbmNoIHRoZSBhdXRvbWF0YSBpcyBmb3VuZCBub24tZGV0ZXJtaW5pc3RpYyBhbmQKKyAgICAgICAgICAgICAgICAgKiB3ZSBmYWxsYmFjayB0byB0aGUgbm9ybWFsIHZhbGlkYXRpb24gd2hpY2ggZG9lcyB0aGUgcmlnaHQKKyAgICAgICAgICAgICAgICAgKiB0aGluZyBvZiBleHBsb3JpbmcgYm90aCBjaG9pY2VzLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhU2V0RmxhZ3MoY3R4dC0+YW0sIDEpOworCisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSB4bWxBdXRvbWF0YUdldEluaXRTdGF0ZShjdHh0LT5hbSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ29tcGlsZShjdHh0LCBsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhU2V0RmluYWxTdGF0ZShjdHh0LT5hbSwgY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgIGRlZi0+Y29udE1vZGVsID0geG1sQXV0b21hdGFDb21waWxlKGN0eHQtPmFtKTsKKyAgICAgICAgICAgICAgICB4bWxSZWdleHBJc0RldGVybWluaXN0KGRlZi0+Y29udE1vZGVsKTsKKworICAgICAgICAgICAgICAgIHhtbEZyZWVBdXRvbWF0YShjdHh0LT5hbSk7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBvbGRzdGF0ZTsKKyAgICAgICAgICAgICAgICBjdHh0LT5hbSA9IG9sZGFtOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRUxFTUVOVDoKKyAgICAgICAgICAgIGlmICgoY3R4dC0+YW0gIT0gTlVMTCkgJiYgKGRlZi0+bmFtZSAhPSBOVUxMKSkgeworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0geG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMihjdHh0LT5hbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZi0+bmFtZSwgZGVmLT5ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZGVmLT5kZmxhZ3MgJiBJU19DT01QSUxBQkxFKSAmJiAoZGVmLT5kZXB0aCAhPSAtMjUpKSB7CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFQdHIgb2xkYW0gPSBjdHh0LT5hbTsKKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIG9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisKKyAgICAgICAgICAgICAgICBkZWYtPmRlcHRoID0gLTI1OworCisgICAgICAgICAgICAgICAgbGlzdCA9IGRlZi0+Y29udGVudDsKKyAgICAgICAgICAgICAgICBjdHh0LT5hbSA9IHhtbE5ld0F1dG9tYXRhKCk7CisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmFtID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhU2V0RmxhZ3MoY3R4dC0+YW0sIDEpOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0geG1sQXV0b21hdGFHZXRJbml0U3RhdGUoY3R4dC0+YW0pOworICAgICAgICAgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0NvbXBpbGUoY3R4dCwgbGlzdCk7CisgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUoY3R4dC0+YW0sIGN0eHQtPnN0YXRlKTsKKyAgICAgICAgICAgICAgICBkZWYtPmNvbnRNb2RlbCA9IHhtbEF1dG9tYXRhQ29tcGlsZShjdHh0LT5hbSk7CisgICAgICAgICAgICAgICAgaWYgKCF4bWxSZWdleHBJc0RldGVybWluaXN0KGRlZi0+Y29udE1vZGVsKSkgeworI2lmZGVmIERFQlVHX0NPTVBJTEUKKyAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiQ29udGVudCBtb2RlbCBub3QgZGV0ZXJtaW5pc3QgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYtPm5hbWUpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIHdlIGNhbiBvbmx5IHVzZSB0aGUgYXV0b21hdGEgaWYgaXQgaXMgZGV0ZXJtaW5pc3QKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHhtbFJlZ0ZyZWVSZWdleHAoZGVmLT5jb250TW9kZWwpOworICAgICAgICAgICAgICAgICAgICBkZWYtPmNvbnRNb2RlbCA9IE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHhtbEZyZWVBdXRvbWF0YShjdHh0LT5hbSk7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBvbGRzdGF0ZTsKKyAgICAgICAgICAgICAgICBjdHh0LT5hbSA9IG9sZGFtOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVB0ciBvbGRhbSA9IGN0eHQtPmFtOworCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiB3ZSBjYW4ndCBidWlsZCB0aGUgY29udGVudCBtb2RlbCBmb3IgdGhpcyBlbGVtZW50IGNvbnRlbnQKKyAgICAgICAgICAgICAgICAgKiBidXQgaXQgc3RpbGwgbWlnaHQgYmUgcG9zc2libGUgdG8gYnVpbGQgaXQgZm9yIHNvbWUgb2YgaXRzCisgICAgICAgICAgICAgICAgICogY2hpbGRyZW4sIHJlY3Vyc2UuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR1RyeUNvbXBpbGUoY3R4dCwgZGVmKTsKKyAgICAgICAgICAgICAgICBjdHh0LT5hbSA9IG9sZGFtOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTk9PUDoKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdDb21waWxlKGN0eHQsIGRlZi0+Y29udGVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19PUFRJT05BTDp7CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFTdGF0ZVB0ciBvbGRzdGF0ZSA9IGN0eHQtPnN0YXRlOworCisgICAgICAgICAgICAgICAgbGlzdCA9IGRlZi0+Y29udGVudDsKKyAgICAgICAgICAgICAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDb21waWxlKGN0eHQsIGxpc3QpOworICAgICAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRzdGF0ZSwgY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1pFUk9PUk1PUkU6eworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgb2xkc3RhdGU7CisKKyAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9CisgICAgICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihjdHh0LT5hbSwgY3R4dC0+c3RhdGUsIE5VTEwpOworICAgICAgICAgICAgICAgIG9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisgICAgICAgICAgICAgICAgbGlzdCA9IGRlZi0+Y29udGVudDsKKyAgICAgICAgICAgICAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDb21waWxlKGN0eHQsIGxpc3QpOworICAgICAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBjdHh0LT5zdGF0ZSwgb2xkc3RhdGUpOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0KKyAgICAgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRzdGF0ZSwgTlVMTCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfT05FT1JNT1JFOnsKKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIG9sZHN0YXRlOworCisgICAgICAgICAgICAgICAgbGlzdCA9IGRlZi0+Y29udGVudDsKKyAgICAgICAgICAgICAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDb21waWxlKGN0eHQsIGxpc3QpOworICAgICAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkc3RhdGUgPSBjdHh0LT5zdGF0ZTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gZGVmLT5jb250ZW50OworICAgICAgICAgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0NvbXBpbGUoY3R4dCwgbGlzdCk7CisgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIGN0eHQtPnN0YXRlLCBvbGRzdGF0ZSk7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPQorICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIG9sZHN0YXRlLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19DSE9JQ0U6eworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgdGFyZ2V0ID0gTlVMTDsKKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIG9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisKKyAgICAgICAgICAgICAgICBsaXN0ID0gZGVmLT5jb250ZW50OworICAgICAgICAgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBvbGRzdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR0NvbXBpbGUoY3R4dCwgbGlzdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBjdHh0LT5zdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIGN0eHQtPnN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gdGFyZ2V0OworCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUkVGOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VYVEVSTkFMUkVGOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1BBUkVOVFJFRjoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19HUk9VUDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19ERUY6CisgICAgICAgICAgICBsaXN0ID0gZGVmLT5jb250ZW50OworICAgICAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdDb21waWxlKGN0eHQsIGxpc3QpOworICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19URVhUOnsKKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIG9sZHN0YXRlOworCisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPQorICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIGN0eHQtPnN0YXRlLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBvbGRzdGF0ZSA9IGN0eHQtPnN0YXRlOworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDb21waWxlKGN0eHQsIGRlZi0+Y29udGVudCk7CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uKGN0eHQtPmFtLCBjdHh0LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUsIEJBRF9DQVNUICIjdGV4dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0KKyAgICAgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRzdGF0ZSwgTlVMTCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRU1QVFk6CisgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBjdHh0LT5zdGF0ZSwgTlVMTCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FWENFUFQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfQVRUUklCVVRFOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0lOVEVSTEVBVkU6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTk9UX0FMTE9XRUQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfREFUQVRZUEU6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTElTVDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19QQVJBTToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19WQUxVRToKKyAgICAgICAgICAgIC8qIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYW5kIGdlbmVyYXRlIGFuIGludGVybmFsIGVycm9yICovCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJORyBpbnRlcm5hbCBlcnJvciB0cnlpbmcgdG8gY29tcGlsZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZk5hbWUoZGVmKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdUcnlDb21waWxlOgorICogY3R4dDogIHRoZSBSZWxheE5HIHBhcnNlciBjb250ZXh0CisgKiBAZGVmaW5lOiAgdGhlIGRlZmluaXRpb24gdHJlZSB0byBjb21waWxlCisgKgorICogVHJ5IHRvIGNvbXBpbGUgdGhlIHNldCBvZiBkZWZpbml0aW9ucywgaXQgd29ya3MgcmVjdXJzaXZlbHksCisgKiBwb3NzaWJseSBpZ25vcmluZyBwYXJ0cyB3aGljaCBjYW5ub3QgYmUgY29tcGlsZWQuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1RyeUNvbXBpbGUoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYpCit7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBsaXN0OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChkZWYgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgaWYgKChkZWYtPnR5cGUgPT0gWE1MX1JFTEFYTkdfU1RBUlQpIHx8CisgICAgICAgIChkZWYtPnR5cGUgPT0gWE1MX1JFTEFYTkdfRUxFTUVOVCkpIHsKKyAgICAgICAgcmV0ID0geG1sUmVsYXhOR0lzQ29tcGlsZWFibGUoZGVmKTsKKyAgICAgICAgaWYgKChkZWYtPmRmbGFncyAmIElTX0NPTVBJTEFCTEUpICYmIChkZWYtPmRlcHRoICE9IC0yNSkpIHsKKyAgICAgICAgICAgIGN0eHQtPmFtID0gTlVMTDsKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdDb21waWxlKGN0eHQsIGRlZik7CisjaWZkZWYgREVCVUdfUFJPR1JFU1NJVkUKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChkZWYtPnR5cGUgPT0gWE1MX1JFTEFYTkdfU1RBUlQpCisgICAgICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbXBpbGVkIHRoZSBzdGFydFxuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21waWxlZCBlbGVtZW50ICVzXG4iLCBkZWYtPm5hbWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVmLT50eXBlID09IFhNTF9SRUxBWE5HX1NUQVJUKQorICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gY29tcGlsZSB0aGUgc3RhcnRcbiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGNvbXBpbGUgZWxlbWVudCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZi0+bmFtZSk7CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiAocmV0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzd2l0Y2ggKGRlZi0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX05PT1A6CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVHJ5Q29tcGlsZShjdHh0LCBkZWYtPmNvbnRlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfVEVYVDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19EQVRBVFlQRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19MSVNUOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1BBUkFNOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1ZBTFVFOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VNUFRZOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VMRU1FTlQ6CisgICAgICAgICAgICByZXQgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfT1BUSU9OQUw6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfWkVST09STU9SRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19PTkVPUk1PUkU6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfQ0hPSUNFOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0dST1VQOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0RFRjoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19TVEFSVDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19SRUY6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhURVJOQUxSRUY6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUEFSRU5UUkVGOgorICAgICAgICAgICAgbGlzdCA9IGRlZi0+Y29udGVudDsKKyAgICAgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVHJ5Q29tcGlsZShjdHh0LCBsaXN0KTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhDRVBUOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0FUVFJJQlVURToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX05PVF9BTExPV0VEOgorICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVBhcnNpbmcgZnVuY3Rpb25zCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB4bWxSZWxheE5HRGVmaW5lUHRyIHhtbFJlbGF4TkdQYXJzZUF0dHJpYnV0ZSh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSk7CitzdGF0aWMgeG1sUmVsYXhOR0RlZmluZVB0ciB4bWxSZWxheE5HUGFyc2VFbGVtZW50KHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSk7CitzdGF0aWMgeG1sUmVsYXhOR0RlZmluZVB0ciB4bWxSZWxheE5HUGFyc2VQYXR0ZXJucyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dCwgeG1sTm9kZVB0ciBub2RlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBncm91cCk7CitzdGF0aWMgeG1sUmVsYXhOR0RlZmluZVB0ciB4bWxSZWxheE5HUGFyc2VQYXR0ZXJuKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSk7CitzdGF0aWMgeG1sUmVsYXhOR1B0ciB4bWxSZWxheE5HUGFyc2VEb2N1bWVudCh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKTsKK3N0YXRpYyBpbnQgeG1sUmVsYXhOR1BhcnNlR3JhbW1hckNvbnRlbnQoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2Rlcyk7CitzdGF0aWMgeG1sUmVsYXhOR0RlZmluZVB0ciB4bWxSZWxheE5HUGFyc2VOYW1lQ2xhc3MoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LCB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZik7CitzdGF0aWMgeG1sUmVsYXhOR0dyYW1tYXJQdHIgeG1sUmVsYXhOR1BhcnNlR3JhbW1hcih4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dCwgeG1sTm9kZVB0ciBub2Rlcyk7CitzdGF0aWMgaW50IHhtbFJlbGF4TkdFbGVtZW50TWF0Y2goeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZWxlbSk7CisKKworI2RlZmluZSBJU19CTEFOS19OT0RFKG4pICh4bWxSZWxheE5HSXNCbGFuaygobiktPmNvbnRlbnQpKQorCisvKioKKyAqIHhtbFJlbGF4TkdJc051bGxhYmxlOgorICogQGRlZmluZTogIHRoZSBkZWZpbml0aW9uIHRvIHZlcmlmeQorICoKKyAqIENoZWNrIGlmIGEgZGVmaW5pdGlvbiBpcyBudWxsYWJsZS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgeWVzLCAwIGlmIG5vIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdJc051bGxhYmxlKHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lKQoreworICAgIGludCByZXQ7CisKKyAgICBpZiAoZGVmaW5lID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgaWYgKGRlZmluZS0+ZGZsYWdzICYgSVNfTlVMTEFCTEUpCisgICAgICAgIHJldHVybiAoMSk7CisgICAgaWYgKGRlZmluZS0+ZGZsYWdzICYgSVNfTk9UX05VTExBQkxFKQorICAgICAgICByZXR1cm4gKDApOworICAgIHN3aXRjaCAoZGVmaW5lLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRU1QVFk6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfVEVYVDoKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19OT09QOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0RFRjoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19SRUY6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhURVJOQUxSRUY6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUEFSRU5UUkVGOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09ORU9STU9SRToKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdJc051bGxhYmxlKGRlZmluZS0+Y29udGVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FWENFUFQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTk9UX0FMTE9XRUQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRUxFTUVOVDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19EQVRBVFlQRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19QQVJBTToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19WQUxVRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19MSVNUOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0FUVFJJQlVURToKKyAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19DSE9JQ0U6eworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdCA9IGRlZmluZS0+Y29udGVudDsKKworICAgICAgICAgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR0lzTnVsbGFibGUobGlzdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfU1RBUlQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfSU5URVJMRUFWRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19HUk9VUDp7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBsaXN0ID0gZGVmaW5lLT5jb250ZW50OworCisgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HSXNOdWxsYWJsZShsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgZG9uZToKKyAgICBpZiAocmV0ID09IDApCisgICAgICAgIGRlZmluZS0+ZGZsYWdzIHw9IElTX05PVF9OVUxMQUJMRTsKKyAgICBpZiAocmV0ID09IDEpCisgICAgICAgIGRlZmluZS0+ZGZsYWdzIHw9IElTX05VTExBQkxFOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HSXNCbGFuazoKKyAqIEBzdHI6ICBhIHN0cmluZworICoKKyAqIENoZWNrIGlmIGEgc3RyaW5nIGlzIGlnbm9yYWJsZSBjLmYuIDQuMi4gV2hpdGVzcGFjZQorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgc3RyaW5nIGlzIE5VTEwgb3IgbWFkZSBvZiBibGFua3MgY2hhcnMsIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdJc0JsYW5rKHhtbENoYXIgKiBzdHIpCit7CisgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKDEpOworICAgIHdoaWxlICgqc3RyICE9IDApIHsKKyAgICAgICAgaWYgKCEoSVNfQkxBTktfQ0goKnN0cikpKQorICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgc3RyKys7CisgICAgfQorICAgIHJldHVybiAoMSk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0dldERhdGFUeXBlTGlicmFyeToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgY3VycmVudCBkYXRhIG9yIHZhbHVlIGVsZW1lbnQKKyAqCisgKiBBcHBsaWVzIGFsZ29yaXRobSBmcm9tIDQuMy4gZGF0YXR5cGVMaWJyYXJ5IGF0dHJpYnV0ZQorICoKKyAqIFJldHVybnMgdGhlIGRhdGF0eXBlTGliYXJ5IHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbFJlbGF4TkdHZXREYXRhVHlwZUxpYnJhcnkoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sQ2hhciAqcmV0LCAqZXNjYXBlOworCisgICAgaWYgKG5vZGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgaWYgKChJU19SRUxBWE5HKG5vZGUsICJkYXRhIikpIHx8IChJU19SRUxBWE5HKG5vZGUsICJ2YWx1ZSIpKSkgeworICAgICAgICByZXQgPSB4bWxHZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJkYXRhdHlwZUxpYnJhcnkiKTsKKyAgICAgICAgaWYgKHJldCAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAocmV0WzBdID09IDApIHsKKyAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVzY2FwZSA9IHhtbFVSSUVzY2FwZVN0cihyZXQsIEJBRF9DQVNUICI6LyM/Iik7CisgICAgICAgICAgICBpZiAoZXNjYXBlID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHJldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisgICAgICAgICAgICByZXR1cm4gKGVzY2FwZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgbm9kZSA9IG5vZGUtPnBhcmVudDsKKyAgICB3aGlsZSAoKG5vZGUgIT0gTlVMTCkgJiYgKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkpIHsKKyAgICAgICAgcmV0ID0geG1sR2V0UHJvcChub2RlLCBCQURfQ0FTVCAiZGF0YXR5cGVMaWJyYXJ5Iik7CisgICAgICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKHJldFswXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgeG1sRnJlZShyZXQpOworICAgICAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlc2NhcGUgPSB4bWxVUklFc2NhcGVTdHIocmV0LCBCQURfQ0FTVCAiOi8jPyIpOworICAgICAgICAgICAgaWYgKGVzY2FwZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChyZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeG1sRnJlZShyZXQpOworICAgICAgICAgICAgcmV0dXJuIChlc2NhcGUpOworICAgICAgICB9CisgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQ7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlVmFsdWU6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIGRhdGEgbm9kZS4KKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4TkcgdmFsdWUgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBkZWZpbml0aW9uIHBvaW50ZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxSZWxheE5HRGVmaW5lUHRyCit4bWxSZWxheE5HUGFyc2VWYWx1ZSh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYgPSBOVUxMOworICAgIHhtbFJlbGF4TkdUeXBlTGlicmFyeVB0ciBsaWIgPSBOVUxMOworICAgIHhtbENoYXIgKnR5cGU7CisgICAgeG1sQ2hhciAqbGlicmFyeTsKKyAgICBpbnQgc3VjY2VzcyA9IDA7CisKKyAgICBkZWYgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIG5vZGUpOworICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBkZWYtPnR5cGUgPSBYTUxfUkVMQVhOR19WQUxVRTsKKworICAgIHR5cGUgPSB4bWxHZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJ0eXBlIik7CisgICAgaWYgKHR5cGUgIT0gTlVMTCkgeworICAgICAgICB4bWxSZWxheE5HTm9ybUV4dFNwYWNlKHR5cGUpOworICAgICAgICBpZiAoeG1sVmFsaWRhdGVOQ05hbWUodHlwZSwgMCkpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfVFlQRV9WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIHR5cGUgJyVzJyBpcyBub3QgYW4gTkNOYW1lXG4iLCB0eXBlLCBOVUxMKTsKKyAgICAgICAgfQorICAgICAgICBsaWJyYXJ5ID0geG1sUmVsYXhOR0dldERhdGFUeXBlTGlicmFyeShjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKGxpYnJhcnkgPT0gTlVMTCkKKyAgICAgICAgICAgIGxpYnJhcnkgPQorICAgICAgICAgICAgICAgIHhtbFN0cmR1cChCQURfQ0FTVCAiaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiKTsKKworICAgICAgICBkZWYtPm5hbWUgPSB0eXBlOworICAgICAgICBkZWYtPm5zID0gbGlicmFyeTsKKworICAgICAgICBsaWIgPSAoeG1sUmVsYXhOR1R5cGVMaWJyYXJ5UHRyKQorICAgICAgICAgICAgeG1sSGFzaExvb2t1cCh4bWxSZWxheE5HUmVnaXN0ZXJlZFR5cGVzLCBsaWJyYXJ5KTsKKyAgICAgICAgaWYgKGxpYiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1VOS05PV05fVFlQRV9MSUIsCisgICAgICAgICAgICAgICAgICAgICAgICJVc2Ugb2YgdW5yZWdpc3RlcmVkIHR5cGUgbGlicmFyeSAnJXMnXG4iLCBsaWJyYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIGRlZi0+ZGF0YSA9IE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWYtPmRhdGEgPSBsaWI7CisgICAgICAgICAgICBpZiAobGliLT5oYXZlID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VSUk9SX1RZUEVfTElCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludGVybmFsIGVycm9yIHdpdGggdHlwZSBsaWJyYXJ5ICclcyc6IG5vICdoYXZlJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnksIE5VTEwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gbGliLT5oYXZlKGxpYi0+ZGF0YSwgZGVmLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoc3VjY2VzcyAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfVFlQRV9OT1RfRk9VTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIHR5cGUgJyVzJyBpcyBub3QgZXhwb3J0ZWQgYnkgdHlwZSBsaWJyYXJ5ICclcydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmLT5uYW1lLCBsaWJyYXJ5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG5vZGUtPmNoaWxkcmVuID09IE5VTEwpIHsKKyAgICAgICAgZGVmLT52YWx1ZSA9IHhtbFN0cmR1cChCQURfQ0FTVCAiIik7CisgICAgfSBlbHNlIGlmICgoKG5vZGUtPmNoaWxkcmVuLT50eXBlICE9IFhNTF9URVhUX05PREUpICYmCisgICAgICAgICAgICAgICAgKG5vZGUtPmNoaWxkcmVuLT50eXBlICE9IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB8fAorICAgICAgICAgICAgICAgKG5vZGUtPmNoaWxkcmVuLT5uZXh0ICE9IE5VTEwpKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfVEVYVF9FWFBFQ1RFRCwKKyAgICAgICAgICAgICAgICAgICAiRXhwZWN0aW5nIGEgc2luZ2xlIHRleHQgdmFsdWUgZm9yIDx2YWx1ZT5jb250ZW50XG4iLAorICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoZGVmICE9IE5VTEwpIHsKKyAgICAgICAgZGVmLT52YWx1ZSA9IHhtbE5vZGVHZXRDb250ZW50KG5vZGUpOworICAgICAgICBpZiAoZGVmLT52YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1ZBTFVFX05PX0NPTlRFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJFbGVtZW50IDx2YWx1ZT4gaGFzIG5vIGNvbnRlbnRcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICB9IGVsc2UgaWYgKChsaWIgIT0gTlVMTCkgJiYgKGxpYi0+Y2hlY2sgIT0gTlVMTCkgJiYgKHN1Y2Nlc3MgPT0gMSkpIHsKKyAgICAgICAgICAgIHZvaWQgKnZhbCA9IE5VTEw7CisKKyAgICAgICAgICAgIHN1Y2Nlc3MgPQorICAgICAgICAgICAgICAgIGxpYi0+Y2hlY2sobGliLT5kYXRhLCBkZWYtPm5hbWUsIGRlZi0+dmFsdWUsICZ2YWwsIG5vZGUpOworICAgICAgICAgICAgaWYgKHN1Y2Nlc3MgIT0gMSkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfSU5WQUxJRF9WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSAnJXMnIGlzIG5vdCBhY2NlcHRhYmxlIGZvciB0eXBlICclcydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYtPnZhbHVlLCBkZWYtPm5hbWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGRlZi0+YXR0cnMgPSB2YWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIChkZWYpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdQYXJzZURhdGE6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIGRhdGEgbm9kZS4KKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4TkcgZGF0YSBub2RlLgorICoKKyAqIFJldHVybnMgdGhlIGRlZmluaXRpb24gcG9pbnRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFJlbGF4TkdEZWZpbmVQdHIKK3htbFJlbGF4TkdQYXJzZURhdGEoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmID0gTlVMTCwgZXhjZXB0OworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgcGFyYW0sIGxhc3RwYXJhbSA9IE5VTEw7CisgICAgeG1sUmVsYXhOR1R5cGVMaWJyYXJ5UHRyIGxpYjsKKyAgICB4bWxDaGFyICp0eXBlOworICAgIHhtbENoYXIgKmxpYnJhcnk7CisgICAgeG1sTm9kZVB0ciBjb250ZW50OworICAgIGludCB0bXA7CisKKyAgICB0eXBlID0geG1sR2V0UHJvcChub2RlLCBCQURfQ0FTVCAidHlwZSIpOworICAgIGlmICh0eXBlID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9UWVBFX01JU1NJTkcsICJkYXRhIGhhcyBubyB0eXBlXG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICB4bWxSZWxheE5HTm9ybUV4dFNwYWNlKHR5cGUpOworICAgIGlmICh4bWxWYWxpZGF0ZU5DTmFtZSh0eXBlLCAwKSkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1RZUEVfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgImRhdGEgdHlwZSAnJXMnIGlzIG5vdCBhbiBOQ05hbWVcbiIsIHR5cGUsIE5VTEwpOworICAgIH0KKyAgICBsaWJyYXJ5ID0geG1sUmVsYXhOR0dldERhdGFUeXBlTGlicmFyeShjdHh0LCBub2RlKTsKKyAgICBpZiAobGlicmFyeSA9PSBOVUxMKQorICAgICAgICBsaWJyYXJ5ID0KKyAgICAgICAgICAgIHhtbFN0cmR1cChCQURfQ0FTVCAiaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiKTsKKworICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgaWYgKGRlZiA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWUodHlwZSk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGRlZi0+dHlwZSA9IFhNTF9SRUxBWE5HX0RBVEFUWVBFOworICAgIGRlZi0+bmFtZSA9IHR5cGU7CisgICAgZGVmLT5ucyA9IGxpYnJhcnk7CisKKyAgICBsaWIgPSAoeG1sUmVsYXhOR1R5cGVMaWJyYXJ5UHRyKQorICAgICAgICB4bWxIYXNoTG9va3VwKHhtbFJlbGF4TkdSZWdpc3RlcmVkVHlwZXMsIGxpYnJhcnkpOworICAgIGlmIChsaWIgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1VOS05PV05fVFlQRV9MSUIsCisgICAgICAgICAgICAgICAgICAgIlVzZSBvZiB1bnJlZ2lzdGVyZWQgdHlwZSBsaWJyYXJ5ICclcydcbiIsIGxpYnJhcnksCisgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgIGRlZi0+ZGF0YSA9IE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVmLT5kYXRhID0gbGliOworICAgICAgICBpZiAobGliLT5oYXZlID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfRVJST1JfVFlQRV9MSUIsCisgICAgICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvciB3aXRoIHR5cGUgbGlicmFyeSAnJXMnOiBubyAnaGF2ZSdcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnksIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdG1wID0gbGliLT5oYXZlKGxpYi0+ZGF0YSwgZGVmLT5uYW1lKTsKKyAgICAgICAgICAgIGlmICh0bXAgIT0gMSkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfVFlQRV9OT1RfRk9VTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgdHlwZSAnJXMnIGlzIG5vdCBleHBvcnRlZCBieSB0eXBlIGxpYnJhcnkgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZi0+bmFtZSwgbGlicmFyeSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBpZiAoKHhtbFN0ckVxdWFsCisgICAgICAgICAgICAgICAgICAgICAobGlicmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVAorICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiKSkKKyAgICAgICAgICAgICAgICAgICAgJiYgKCh4bWxTdHJFcXVhbChkZWYtPm5hbWUsIEJBRF9DQVNUICJJRFJFRiIpKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHhtbFN0ckVxdWFsKGRlZi0+bmFtZSwgQkFEX0NBU1QgIklEUkVGUyIpKSkpIHsKKyAgICAgICAgICAgICAgICBjdHh0LT5pZHJlZiA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgY29udGVudCA9IG5vZGUtPmNoaWxkcmVuOworCisgICAgLyoKKyAgICAgKiBIYW5kbGUgb3B0aW9uYWwgcGFyYW1zCisgICAgICovCisgICAgd2hpbGUgKGNvbnRlbnQgIT0gTlVMTCkgeworICAgICAgICBpZiAoIXhtbFN0ckVxdWFsKGNvbnRlbnQtPm5hbWUsIEJBRF9DQVNUICJwYXJhbSIpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmICh4bWxTdHJFcXVhbChsaWJyYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgImh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIikpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfUEFSQU1fRk9SQklEREVOLAorICAgICAgICAgICAgICAgICAgICAgICAiVHlwZSBsaWJyYXJ5ICclcycgZG9lcyBub3QgYWxsb3cgdHlwZSBwYXJhbWV0ZXJzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5LCBOVUxMKTsKKyAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LT5uZXh0OworICAgICAgICAgICAgd2hpbGUgKChjb250ZW50ICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsKGNvbnRlbnQtPm5hbWUsIEJBRF9DQVNUICJwYXJhbSIpKSkKKyAgICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC0+bmV4dDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBhcmFtID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICAgICAgICAgIGlmIChwYXJhbSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgcGFyYW0tPnR5cGUgPSBYTUxfUkVMQVhOR19QQVJBTTsKKyAgICAgICAgICAgICAgICBwYXJhbS0+bmFtZSA9IHhtbEdldFByb3AoY29udGVudCwgQkFEX0NBU1QgIm5hbWUiKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyYW0tPm5hbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1BBUkFNX05BTUVfTUlTU0lORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyYW0gaGFzIG5vIG5hbWVcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwYXJhbS0+dmFsdWUgPSB4bWxOb2RlR2V0Q29udGVudChjb250ZW50KTsKKyAgICAgICAgICAgICAgICBpZiAobGFzdHBhcmFtID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmLT5hdHRycyA9IGxhc3RwYXJhbSA9IHBhcmFtOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RwYXJhbS0+bmV4dCA9IHBhcmFtOworICAgICAgICAgICAgICAgICAgICBsYXN0cGFyYW0gPSBwYXJhbTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxpYiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQtPm5leHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICAgKiBIYW5kbGUgb3B0aW9uYWwgZXhjZXB0CisgICAgICovCisgICAgaWYgKChjb250ZW50ICE9IE5VTEwpCisgICAgICAgICYmICh4bWxTdHJFcXVhbChjb250ZW50LT5uYW1lLCBCQURfQ0FTVCAiZXhjZXB0IikpKSB7CisgICAgICAgIHhtbE5vZGVQdHIgY2hpbGQ7CisgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgdG1wMiwgbGFzdCA9IE5VTEw7CisKKyAgICAgICAgZXhjZXB0ID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKGV4Y2VwdCA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gKGRlZik7CisgICAgICAgIH0KKyAgICAgICAgZXhjZXB0LT50eXBlID0gWE1MX1JFTEFYTkdfRVhDRVBUOworICAgICAgICBjaGlsZCA9IGNvbnRlbnQtPmNoaWxkcmVuOworCWRlZi0+Y29udGVudCA9IGV4Y2VwdDsKKyAgICAgICAgaWYgKGNoaWxkID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY29udGVudCwgWE1MX1JOR1BfRVhDRVBUX05PX0NPTlRFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHQgaGFzIG5vIGNvbnRlbnRcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisgICAgICAgICAgICB0bXAyID0geG1sUmVsYXhOR1BhcnNlUGF0dGVybihjdHh0LCBjaGlsZCk7CisgICAgICAgICAgICBpZiAodG1wMiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3QgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBleGNlcHQtPmNvbnRlbnQgPSBsYXN0ID0gdG1wMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsYXN0LT5uZXh0ID0gdG1wMjsKKyAgICAgICAgICAgICAgICAgICAgbGFzdCA9IHRtcDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICAgICAgfQorICAgICAgICBjb250ZW50ID0gY29udGVudC0+bmV4dDsKKyAgICB9CisgICAgLyoKKyAgICAgKiBDaGVjayB0aGVyZSBpcyBubyB1bmhhbmRsZWQgZGF0YQorICAgICAqLworICAgIGlmIChjb250ZW50ICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjb250ZW50LCBYTUxfUk5HUF9EQVRBX0NPTlRFTlQsCisgICAgICAgICAgICAgICAgICAgIkVsZW1lbnQgZGF0YSBoYXMgdW5leHBlY3RlZCBjb250ZW50ICVzXG4iLAorICAgICAgICAgICAgICAgICAgIGNvbnRlbnQtPm5hbWUsIE5VTEwpOworICAgIH0KKworICAgIHJldHVybiAoZGVmKTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKmludmFsaWROYW1lID0gQkFEX0NBU1QgIlwxIjsKKworLyoqCisgKiB4bWxSZWxheE5HQ29tcGFyZU5hbWVDbGFzc2VzOgorICogQGRlZnMxOiAgdGhlIGZpcnN0IGVsZW1lbnQvYXR0cmlidXRlIGRlZnMKKyAqIEBkZWZzMjogIHRoZSBzZWNvbmQgZWxlbWVudC9hdHRyaWJ1dGUgZGVmcworICogQG5hbWU6ICB0aGUgcmVzdHJpY3Rpb24gb24gdGhlIG5hbWUKKyAqIEBuczogIHRoZSByZXN0cmljdGlvbiBvbiB0aGUgbmFtZXNwYWNlCisgKgorICogQ29tcGFyZSB0aGUgMiBsaXN0cyBvZiBlbGVtZW50IGRlZmluaXRpb25zLiBUaGUgY29tcGFyaXNvbiBpcworICogdGhhdCBpZiBib3RoIGxpc3RzIGRvIG5vdCBhY2NlcHQgdGhlIHNhbWUgUU5hbWVzLCBpdCByZXR1cm5zIDEKKyAqIElmIHRoZSAyIGxpc3RzIGNhbiBhY2NlcHQgdGhlIHNhbWUgUU5hbWUgdGhlIGNvbXBhcmlzb24gcmV0dXJucyAwCisgKgorICogUmV0dXJucyAxIGRpc3R0aW5jdCwgMCBpZiBlcXVhbAorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HQ29tcGFyZU5hbWVDbGFzc2VzKHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYyKQoreworICAgIGludCByZXQgPSAxOworICAgIHhtbE5vZGUgbm9kZTsKKyAgICB4bWxOcyBuczsKKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0IGN0eHQ7CisKKyAgICBtZW1zZXQoJmN0eHQsIDAsIHNpemVvZih4bWxSZWxheE5HVmFsaWRDdHh0KSk7CisKKyAgICBjdHh0LmZsYWdzID0gRkxBR1NfSUdOT1JBQkxFIHwgRkxBR1NfTk9FUlJPUjsKKworICAgIGlmICgoZGVmMS0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTEVNRU5UKSB8fAorICAgICAgICAoZGVmMS0+dHlwZSA9PSBYTUxfUkVMQVhOR19BVFRSSUJVVEUpKSB7CisgICAgICAgIGlmIChkZWYyLT50eXBlID09IFhNTF9SRUxBWE5HX1RFWFQpCisgICAgICAgICAgICByZXR1cm4gKDEpOworICAgICAgICBpZiAoZGVmMS0+bmFtZSAhPSBOVUxMKSB7CisgICAgICAgICAgICBub2RlLm5hbWUgPSBkZWYxLT5uYW1lOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbm9kZS5uYW1lID0gaW52YWxpZE5hbWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZjEtPm5zICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChkZWYxLT5uc1swXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbm9kZS5ucyA9IE5VTEw7CisgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgbm9kZS5ucyA9ICZuczsKKyAgICAgICAgICAgICAgICBucy5ocmVmID0gZGVmMS0+bnM7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBub2RlLm5zID0gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBpZiAoeG1sUmVsYXhOR0VsZW1lbnRNYXRjaCgmY3R4dCwgZGVmMiwgJm5vZGUpKSB7CisgICAgICAgICAgICBpZiAoZGVmMS0+bmFtZUNsYXNzICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HQ29tcGFyZU5hbWVDbGFzc2VzKGRlZjEtPm5hbWVDbGFzcywgZGVmMik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXQgPSAxOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChkZWYxLT50eXBlID09IFhNTF9SRUxBWE5HX1RFWFQpIHsKKyAgICAgICAgaWYgKGRlZjItPnR5cGUgPT0gWE1MX1JFTEFYTkdfVEVYVCkKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIHJldHVybiAoMSk7CisgICAgfSBlbHNlIGlmIChkZWYxLT50eXBlID09IFhNTF9SRUxBWE5HX0VYQ0VQVCkgeworICAgICAgICBUT0RPIHJldCA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgVE9ETyByZXQgPSAwOworICAgIH0KKyAgICBpZiAocmV0ID09IDApCisgICAgICAgIHJldHVybiAocmV0KTsKKyAgICBpZiAoKGRlZjItPnR5cGUgPT0gWE1MX1JFTEFYTkdfRUxFTUVOVCkgfHwKKyAgICAgICAgKGRlZjItPnR5cGUgPT0gWE1MX1JFTEFYTkdfQVRUUklCVVRFKSkgeworICAgICAgICBpZiAoZGVmMi0+bmFtZSAhPSBOVUxMKSB7CisgICAgICAgICAgICBub2RlLm5hbWUgPSBkZWYyLT5uYW1lOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbm9kZS5uYW1lID0gaW52YWxpZE5hbWU7CisgICAgICAgIH0KKyAgICAgICAgbm9kZS5ucyA9ICZuczsKKyAgICAgICAgaWYgKGRlZjItPm5zICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChkZWYyLT5uc1swXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbm9kZS5ucyA9IE5VTEw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5zLmhyZWYgPSBkZWYyLT5uczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5zLmhyZWYgPSBpbnZhbGlkTmFtZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoeG1sUmVsYXhOR0VsZW1lbnRNYXRjaCgmY3R4dCwgZGVmMSwgJm5vZGUpKSB7CisgICAgICAgICAgICBpZiAoZGVmMi0+bmFtZUNsYXNzICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HQ29tcGFyZU5hbWVDbGFzc2VzKGRlZjItPm5hbWVDbGFzcywgZGVmMSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXQgPSAxOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgVE9ETyByZXQgPSAwOworICAgIH0KKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HQ29tcGFyZUVsZW1EZWZMaXN0czoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQGRlZnMxOiAgdGhlIGZpcnN0IGxpc3Qgb2YgZWxlbWVudC9hdHRyaWJ1dGUgZGVmcworICogQGRlZnMyOiAgdGhlIHNlY29uZCBsaXN0IG9mIGVsZW1lbnQvYXR0cmlidXRlIGRlZnMKKyAqCisgKiBDb21wYXJlIHRoZSAyIGxpc3RzIG9mIGVsZW1lbnQgb3IgYXR0cmlidXRlIGRlZmluaXRpb25zLiBUaGUgY29tcGFyaXNvbgorICogaXMgdGhhdCBpZiBib3RoIGxpc3RzIGRvIG5vdCBhY2NlcHQgdGhlIHNhbWUgUU5hbWVzLCBpdCByZXR1cm5zIDEKKyAqIElmIHRoZSAyIGxpc3RzIGNhbiBhY2NlcHQgdGhlIHNhbWUgUU5hbWUgdGhlIGNvbXBhcmlzb24gcmV0dXJucyAwCisgKgorICogUmV0dXJucyAxIGRpc3R0aW5jdCwgMCBpZiBlcXVhbAorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HQ29tcGFyZUVsZW1EZWZMaXN0cyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVFRSSUJVVEVfVU5VU0VELCB4bWxSZWxheE5HRGVmaW5lUHRyICogZGVmMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgKiBkZWYyKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgKmJhc2VkZWYyID0gZGVmMjsKKworICAgIGlmICgoZGVmMSA9PSBOVUxMKSB8fCAoZGVmMiA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICBpZiAoKCpkZWYxID09IE5VTEwpIHx8ICgqZGVmMiA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICB3aGlsZSAoKmRlZjEgIT0gTlVMTCkgeworICAgICAgICB3aGlsZSAoKCpkZWYyKSAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoeG1sUmVsYXhOR0NvbXBhcmVOYW1lQ2xhc3NlcygqZGVmMSwgKmRlZjIpID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgICAgIGRlZjIrKzsKKyAgICAgICAgfQorICAgICAgICBkZWYyID0gYmFzZWRlZjI7CisgICAgICAgIGRlZjErKzsKKyAgICB9CisgICAgcmV0dXJuICgxKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HR2VuZXJhdGVBdHRyaWJ1dGVzOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAZGVmOiAgdGhlIGRlZmluaXRpb24gZGVmaW5pdGlvbgorICoKKyAqIENoZWNrIGlmIHRoZSBkZWZpbml0aW9uIGNhbiBvbmx5IGdlbmVyYXRlIGF0dHJpYnV0ZXMKKyAqCisgKiBSZXR1cm5zIDEgaWYgeWVzLCAwIGlmIG5vIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HR2VuZXJhdGVBdHRyaWJ1dGVzKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgcGFyZW50LCBjdXIsIHRtcDsKKworICAgIC8qCisgICAgICogRG9uJ3QgcnVuIHRoYXQgY2hlY2sgaW4gY2FzZSBvZiBlcnJvci4gSW5maW5pdGUgcmVjdXJzaW9uCisgICAgICogYmVjb21lcyBwb3NzaWJsZS4KKyAgICAgKi8KKyAgICBpZiAoY3R4dC0+bmJFcnJvcnMgIT0gMCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBwYXJlbnQgPSBOVUxMOworICAgIGN1ciA9IGRlZjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfRUxFTUVOVCkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfVEVYVCkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfREFUQVRZUEUpIHx8CisgICAgICAgICAgICAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX1BBUkFNKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19MSVNUKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19WQUxVRSkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfRU1QVFkpKQorICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgaWYgKChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfQ0hPSUNFKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19HUk9VUCkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfT05FT1JNT1JFKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19aRVJPT1JNT1JFKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19PUFRJT05BTCkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfUEFSRU5UUkVGKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FWFRFUk5BTFJFRikgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfUkVGKSB8fAorICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19ERUYpKSB7CisgICAgICAgICAgICBpZiAoY3VyLT5jb250ZW50ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBwYXJlbnQgPSBjdXI7CisgICAgICAgICAgICAgICAgY3VyID0gY3VyLT5jb250ZW50OworICAgICAgICAgICAgICAgIHRtcCA9IGN1cjsKKyAgICAgICAgICAgICAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdG1wLT5wYXJlbnQgPSBwYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN1ciA9PSBkZWYpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBkbyB7CisgICAgICAgICAgICBjdXIgPSBjdXItPnBhcmVudDsKKyAgICAgICAgICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChjdXIgPT0gZGVmKQorICAgICAgICAgICAgICAgIHJldHVybiAoMSk7CisgICAgICAgICAgICBpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKGN1ciAhPSBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuICgxKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HR2V0RWxlbWVudHM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQKKyAqIEBkZWY6ICB0aGUgZGVmaW5pdGlvbiBkZWZpbml0aW9uCisgKiBAZW9yYTogIGdhdGhlciBlbGVtZW50cyAoMCkgb3IgYXR0cmlidXRlcyAoMSkKKyAqCisgKiBDb21wdXRlIHRoZSBsaXN0IG9mIHRvcCBlbGVtZW50cyBhIGRlZmluaXRpb24gY2FuIGdlbmVyYXRlCisgKgorICogUmV0dXJucyBhIGxpc3Qgb2YgZWxlbWVudHMgb3IgTlVMTCBpZiBub25lIHdhcyBmb3VuZC4KKyAqLworc3RhdGljIHhtbFJlbGF4TkdEZWZpbmVQdHIgKgoreG1sUmVsYXhOR0dldEVsZW1lbnRzKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYsIGludCBlb3JhKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgKnJldCA9IE5VTEwsIHBhcmVudCwgY3VyLCB0bXA7CisgICAgaW50IGxlbiA9IDA7CisgICAgaW50IG1heCA9IDA7CisKKyAgICAvKgorICAgICAqIERvbid0IHJ1biB0aGF0IGNoZWNrIGluIGNhc2Ugb2YgZXJyb3IuIEluZmluaXRlIHJlY3Vyc2lvbgorICAgICAqIGJlY29tZXMgcG9zc2libGUuCisgICAgICovCisgICAgaWYgKGN0eHQtPm5iRXJyb3JzICE9IDApCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBwYXJlbnQgPSBOVUxMOworICAgIGN1ciA9IGRlZjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKCgoZW9yYSA9PSAwKSAmJiAoKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTEVNRU5UKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX1RFWFQpKSkgfHwKKyAgICAgICAgICAgICgoZW9yYSA9PSAxKSAmJiAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX0FUVFJJQlVURSkpKSB7CisgICAgICAgICAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBtYXggPSAxMDsKKyAgICAgICAgICAgICAgICByZXQgPSAoeG1sUmVsYXhOR0RlZmluZVB0ciAqKQorICAgICAgICAgICAgICAgICAgICB4bWxNYWxsb2MoKG1heCArIDEpICogc2l6ZW9mKHhtbFJlbGF4TkdEZWZpbmVQdHIpKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCAiZ2V0dGluZyBlbGVtZW50IGxpc3RcbiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAobWF4IDw9IGxlbikgeworCSAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciAqdGVtcDsKKworICAgICAgICAgICAgICAgIG1heCAqPSAyOworICAgICAgICAgICAgICAgIHRlbXAgPSB4bWxSZWFsbG9jKHJldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF4ICsgMSkgKiBzaXplb2YoeG1sUmVsYXhOR0RlZmluZVB0cikpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCAiZ2V0dGluZyBlbGVtZW50IGxpc3RcbiIpOworCQkgICAgeG1sRnJlZShyZXQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICAgICAgICAgIH0KKwkJcmV0ID0gdGVtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFtsZW4rK10gPSBjdXI7CisgICAgICAgICAgICByZXRbbGVuXSA9IE5VTEw7CisgICAgICAgIH0gZWxzZSBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19DSE9JQ0UpIHx8CisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFKSB8fAorICAgICAgICAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfR1JPVVApIHx8CisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19PTkVPUk1PUkUpIHx8CisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19aRVJPT1JNT1JFKSB8fAorICAgICAgICAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfT1BUSU9OQUwpIHx8CisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19QQVJFTlRSRUYpIHx8CisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19SRUYpIHx8CisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19ERUYpIHx8CisJCSAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfRVhURVJOQUxSRUYpKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogRG9uJ3QgZ28gd2l0aGluIGVsZW1lbnRzIG9yIGF0dHJpYnV0ZXMgb3Igc3RyaW5nIHZhbHVlcy4KKyAgICAgICAgICAgICAqIEp1c3QgZ2F0aGVyIHRoZSBlbGVtZW50IHRvcCBsaXN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChjdXItPmNvbnRlbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHBhcmVudCA9IGN1cjsKKyAgICAgICAgICAgICAgICBjdXIgPSBjdXItPmNvbnRlbnQ7CisgICAgICAgICAgICAgICAgdG1wID0gY3VyOworICAgICAgICAgICAgICAgIHdoaWxlICh0bXAgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB0bXAtPnBhcmVudCA9IHBhcmVudDsKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY3VyID09IGRlZikKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGN1ciA9IGN1ci0+bmV4dDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGN1ciA9IGN1ci0+cGFyZW50OworICAgICAgICAgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKGN1ciA9PSBkZWYpCisgICAgICAgICAgICAgICAgcmV0dXJuIChyZXQpOworICAgICAgICAgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChjdXIgIT0gTlVMTCk7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HQ2hlY2tDaG9pY2VEZXRlcm1pbmlzbToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQGRlZjogIHRoZSBjaG9pY2UgZGVmaW5pdGlvbgorICoKKyAqIEFsc28gdXNlZCB0byBmaW5kIGluZGV0ZXJtaW5pc3RpYyBwYXR0ZXJuIGluIGNob2ljZQorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR0NoZWNrQ2hvaWNlRGV0ZXJtaW5pc20oeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgKipsaXN0OworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgY3VyOworICAgIGludCBuYmNoaWxkID0gMCwgaSwgaiwgcmV0OworICAgIGludCBpc19udWxsYWJsZSA9IDA7CisgICAgaW50IGlzX2luZGV0ZXJtaW5pc3QgPSAwOworICAgIHhtbEhhc2hUYWJsZVB0ciB0cmlhZ2UgPSBOVUxMOworICAgIGludCBpc190cmlhYmxlID0gMTsKKworICAgIGlmICgoZGVmID09IE5VTEwpIHx8IChkZWYtPnR5cGUgIT0gWE1MX1JFTEFYTkdfQ0hPSUNFKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGRlZi0+ZGZsYWdzICYgSVNfUFJPQ0VTU0VEKQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAgICAqIERvbid0IHJ1biB0aGF0IGNoZWNrIGluIGNhc2Ugb2YgZXJyb3IuIEluZmluaXRlIHJlY3Vyc2lvbgorICAgICAqIGJlY29tZXMgcG9zc2libGUuCisgICAgICovCisgICAgaWYgKGN0eHQtPm5iRXJyb3JzICE9IDApCisgICAgICAgIHJldHVybjsKKworICAgIGlzX251bGxhYmxlID0geG1sUmVsYXhOR0lzTnVsbGFibGUoZGVmKTsKKworICAgIGN1ciA9IGRlZi0+Y29udGVudDsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgbmJjaGlsZCsrOworICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorCisgICAgbGlzdCA9ICh4bWxSZWxheE5HRGVmaW5lUHRyICoqKSB4bWxNYWxsb2MobmJjaGlsZCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbFJlbGF4TkdEZWZpbmVQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikpOworICAgIGlmIChsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVyck1lbW9yeShjdHh0LCAiYnVpbGRpbmcgY2hvaWNlXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpID0gMDsKKyAgICAvKgorICAgICAqIGEgYml0IHN0cm9uZyBidXQgc2FmZQorICAgICAqLworICAgIGlmIChpc19udWxsYWJsZSA9PSAwKSB7CisgICAgICAgIHRyaWFnZSA9IHhtbEhhc2hDcmVhdGUoMTApOworICAgIH0gZWxzZSB7CisgICAgICAgIGlzX3RyaWFibGUgPSAwOworICAgIH0KKyAgICBjdXIgPSBkZWYtPmNvbnRlbnQ7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGxpc3RbaV0gPSB4bWxSZWxheE5HR2V0RWxlbWVudHMoY3R4dCwgY3VyLCAwKTsKKyAgICAgICAgaWYgKChsaXN0W2ldID09IE5VTEwpIHx8IChsaXN0W2ldWzBdID09IE5VTEwpKSB7CisgICAgICAgICAgICBpc190cmlhYmxlID0gMDsKKyAgICAgICAgfSBlbHNlIGlmIChpc190cmlhYmxlID09IDEpIHsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgKnRtcDsKKyAgICAgICAgICAgIGludCByZXM7CisKKyAgICAgICAgICAgIHRtcCA9IGxpc3RbaV07CisgICAgICAgICAgICB3aGlsZSAoKCp0bXAgIT0gTlVMTCkgJiYgKGlzX3RyaWFibGUgPT0gMSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKCp0bXApLT50eXBlID09IFhNTF9SRUxBWE5HX1RFWFQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzID0geG1sSGFzaEFkZEVudHJ5Mih0cmlhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIiN0ZXh0IiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBjdXIpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBpc190cmlhYmxlID0gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoKCp0bXApLT50eXBlID09IFhNTF9SRUxBWE5HX0VMRU1FTlQpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCp0bXApLT5uYW1lICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoKCp0bXApLT5ucyA9PSBOVUxMKSB8fCAoKCp0bXApLT5uc1swXSA9PSAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHhtbEhhc2hBZGRFbnRyeTIodHJpYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKnRtcCktPm5hbWUsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIGN1cik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHhtbEhhc2hBZGRFbnRyeTIodHJpYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKnRtcCktPm5hbWUsICgqdG1wKS0+bnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIGN1cik7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3RyaWFibGUgPSAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCgqdG1wKS0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTEVNRU5UKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoKCp0bXApLT5ucyA9PSBOVUxMKSB8fCAoKCp0bXApLT5uc1swXSA9PSAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHhtbEhhc2hBZGRFbnRyeTIodHJpYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiI2FueSIsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIGN1cik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHhtbEhhc2hBZGRFbnRyeTIodHJpYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiI2FueSIsICgqdG1wKS0+bnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIGN1cik7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3RyaWFibGUgPSAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpc190cmlhYmxlID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRtcCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGkrKzsKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBuYmNoaWxkOyBpKyspIHsKKyAgICAgICAgaWYgKGxpc3RbaV0gPT0gTlVMTCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKSB7CisgICAgICAgICAgICBpZiAobGlzdFtqXSA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR0NvbXBhcmVFbGVtRGVmTGlzdHMoY3R4dCwgbGlzdFtpXSwgbGlzdFtqXSk7CisgICAgICAgICAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgICAgICAgICBpc19pbmRldGVybWluaXN0ID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJjaGlsZDsgaSsrKSB7CisgICAgICAgIGlmIChsaXN0W2ldICE9IE5VTEwpCisgICAgICAgICAgICB4bWxGcmVlKGxpc3RbaV0pOworICAgIH0KKworICAgIHhtbEZyZWUobGlzdCk7CisgICAgaWYgKGlzX2luZGV0ZXJtaW5pc3QpIHsKKyAgICAgICAgZGVmLT5kZmxhZ3MgfD0gSVNfSU5ERVRFUk1JTklTVDsKKyAgICB9CisgICAgaWYgKGlzX3RyaWFibGUgPT0gMSkgeworICAgICAgICBkZWYtPmRmbGFncyB8PSBJU19UUklBQkxFOworICAgICAgICBkZWYtPmRhdGEgPSB0cmlhZ2U7CisgICAgfSBlbHNlIGlmICh0cmlhZ2UgIT0gTlVMTCkgeworICAgICAgICB4bWxIYXNoRnJlZSh0cmlhZ2UsIE5VTEwpOworICAgIH0KKyAgICBkZWYtPmRmbGFncyB8PSBJU19QUk9DRVNTRUQ7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0NoZWNrR3JvdXBBdHRyczoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQGRlZjogIHRoZSBncm91cCBkZWZpbml0aW9uCisgKgorICogRGV0ZWN0cyB2aW9sYXRpb25zIG9mIHJ1bGUgNy4zCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HQ2hlY2tHcm91cEF0dHJzKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgKipsaXN0OworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgY3VyOworICAgIGludCBuYmNoaWxkID0gMCwgaSwgaiwgcmV0OworCisgICAgaWYgKChkZWYgPT0gTlVMTCkgfHwKKyAgICAgICAgKChkZWYtPnR5cGUgIT0gWE1MX1JFTEFYTkdfR1JPVVApICYmCisgICAgICAgICAoZGVmLT50eXBlICE9IFhNTF9SRUxBWE5HX0VMRU1FTlQpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGRlZi0+ZGZsYWdzICYgSVNfUFJPQ0VTU0VEKQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAgICAqIERvbid0IHJ1biB0aGF0IGNoZWNrIGluIGNhc2Ugb2YgZXJyb3IuIEluZmluaXRlIHJlY3Vyc2lvbgorICAgICAqIGJlY29tZXMgcG9zc2libGUuCisgICAgICovCisgICAgaWYgKGN0eHQtPm5iRXJyb3JzICE9IDApCisgICAgICAgIHJldHVybjsKKworICAgIGN1ciA9IGRlZi0+YXR0cnM7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIG5iY2hpbGQrKzsKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBjdXIgPSBkZWYtPmNvbnRlbnQ7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIG5iY2hpbGQrKzsKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKworICAgIGxpc3QgPSAoeG1sUmVsYXhOR0RlZmluZVB0ciAqKikgeG1sTWFsbG9jKG5iY2hpbGQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWxheE5HRGVmaW5lUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopKTsKKyAgICBpZiAobGlzdCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnJNZW1vcnkoY3R4dCwgImJ1aWxkaW5nIGdyb3VwXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpID0gMDsKKyAgICBjdXIgPSBkZWYtPmF0dHJzOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICBsaXN0W2ldID0geG1sUmVsYXhOR0dldEVsZW1lbnRzKGN0eHQsIGN1ciwgMSk7CisgICAgICAgIGkrKzsKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBjdXIgPSBkZWYtPmNvbnRlbnQ7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGxpc3RbaV0gPSB4bWxSZWxheE5HR2V0RWxlbWVudHMoY3R4dCwgY3VyLCAxKTsKKyAgICAgICAgaSsrOworICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG5iY2hpbGQ7IGkrKykgeworICAgICAgICBpZiAobGlzdFtpXSA9PSBOVUxMKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBpOyBqKyspIHsKKyAgICAgICAgICAgIGlmIChsaXN0W2pdID09IE5VTEwpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HQ29tcGFyZUVsZW1EZWZMaXN0cyhjdHh0LCBsaXN0W2ldLCBsaXN0W2pdKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgZGVmLT5ub2RlLCBYTUxfUk5HUF9HUk9VUF9BVFRSX0NPTkZMSUNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZXMgY29uZmxpY3RzIGluIGdyb3VwXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJjaGlsZDsgaSsrKSB7CisgICAgICAgIGlmIChsaXN0W2ldICE9IE5VTEwpCisgICAgICAgICAgICB4bWxGcmVlKGxpc3RbaV0pOworICAgIH0KKworICAgIHhtbEZyZWUobGlzdCk7CisgICAgZGVmLT5kZmxhZ3MgfD0gSVNfUFJPQ0VTU0VEOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdDb21wdXRlSW50ZXJsZWF2ZXM6CisgKiBAZGVmOiAgdGhlIGludGVybGVhdmUgZGVmaW5pdGlvbgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBkZWZpbml0aW9uIG5hbWUKKyAqCisgKiBBIGxvdCBvZiB3b3JrIGZvciBwcmVwcm9jZXNzaW5nIGludGVybGVhdmUgZGVmaW5pdGlvbnMKKyAqIGlzIHBvdGVudGlhbGx5IG5lZWRlZCB0byBnZXQgYSBkZWNlbnQgZXhlY3V0aW9uIHNwZWVkIGF0IHJ1bnRpbWUKKyAqICAgLSB0cnlpbmcgdG8gZ2V0IGEgdG90YWwgb3JkZXIgb24gdGhlIGVsZW1lbnQgbm9kZXMgZ2VuZXJhdGVkCisgKiAgICAgYnkgdGhlIGludGVybGVhdmVzLCBvcmRlciB0aGUgbGlzdCBvZiBpbnRlcmxlYXZlIGRlZmluaXRpb25zCisgKiAgICAgZm9sbG93aW5nIHRoYXQgb3JkZXIuCisgKiAgIC0gaWYgPHRleHQvPiBpcyB1c2VkIHRvIGhhbmRsZSBtaXhlZCBjb250ZW50LCBpdCBpcyBiZXR0ZXIgdG8KKyAqICAgICBmbGFnIHRoaXMgaW4gdGhlIGRlZmluZSBhbmQgc2ltcGxpZnkgdGhlIHJ1bnRpbWUgY2hlY2tpbmcKKyAqICAgICBhbGdvcml0aG0KKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdDb21wdXRlSW50ZXJsZWF2ZXMoeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKiBuYW1lIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBjdXIsICp0bXA7CisKKyAgICB4bWxSZWxheE5HUGFydGl0aW9uUHRyIHBhcnRpdGlvbnMgPSBOVUxMOworICAgIHhtbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXBQdHIgKmdyb3VwcyA9IE5VTEw7CisgICAgeG1sUmVsYXhOR0ludGVybGVhdmVHcm91cFB0ciBncm91cDsKKyAgICBpbnQgaSwgaiwgcmV0LCByZXM7CisgICAgaW50IG5iZ3JvdXBzID0gMDsKKyAgICBpbnQgbmJjaGlsZCA9IDA7CisgICAgaW50IGlzX21peGVkID0gMDsKKyAgICBpbnQgaXNfZGV0ZXJtaW5pc3QgPSAxOworCisgICAgLyoKKyAgICAgKiBEb24ndCBydW4gdGhhdCBjaGVjayBpbiBjYXNlIG9mIGVycm9yLiBJbmZpbml0ZSByZWN1cnNpb24KKyAgICAgKiBiZWNvbWVzIHBvc3NpYmxlLgorICAgICAqLworICAgIGlmIChjdHh0LT5uYkVycm9ycyAhPSAwKQorICAgICAgICByZXR1cm47CisKKyNpZmRlZiBERUJVR19JTlRFUkxFQVZFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HQ29tcHV0ZUludGVybGVhdmVzKCVzKVxuIiwgbmFtZSk7CisjZW5kaWYKKyAgICBjdXIgPSBkZWYtPmNvbnRlbnQ7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIG5iY2hpbGQrKzsKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKworI2lmZGVmIERFQlVHX0lOVEVSTEVBVkUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiAgJWQgY2hpbGRcbiIsIG5iY2hpbGQpOworI2VuZGlmCisgICAgZ3JvdXBzID0gKHhtbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXBQdHIgKikKKyAgICAgICAgeG1sTWFsbG9jKG5iY2hpbGQgKiBzaXplb2YoeG1sUmVsYXhOR0ludGVybGVhdmVHcm91cFB0cikpOworICAgIGlmIChncm91cHMgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBjdXIgPSBkZWYtPmNvbnRlbnQ7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGdyb3Vwc1tuYmdyb3Vwc10gPSAoeG1sUmVsYXhOR0ludGVybGVhdmVHcm91cFB0cikKKyAgICAgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVsYXhOR0ludGVybGVhdmVHcm91cCkpOworICAgICAgICBpZiAoZ3JvdXBzW25iZ3JvdXBzXSA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19URVhUKQorICAgICAgICAgICAgaXNfbWl4ZWQrKzsKKyAgICAgICAgZ3JvdXBzW25iZ3JvdXBzXS0+cnVsZSA9IGN1cjsKKyAgICAgICAgZ3JvdXBzW25iZ3JvdXBzXS0+ZGVmcyA9IHhtbFJlbGF4TkdHZXRFbGVtZW50cyhjdHh0LCBjdXIsIDApOworICAgICAgICBncm91cHNbbmJncm91cHNdLT5hdHRycyA9IHhtbFJlbGF4TkdHZXRFbGVtZW50cyhjdHh0LCBjdXIsIDEpOworICAgICAgICBuYmdyb3VwcysrOworICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorI2lmZGVmIERFQlVHX0lOVEVSTEVBVkUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiAgJWQgZ3JvdXBzXG4iLCBuYmdyb3Vwcyk7CisjZW5kaWYKKworICAgIC8qCisgICAgICogTGV0J3MgY2hlY2sgdGhhdCBhbGwgcnVsZXMgbWFrZXMgYSBwYXJ0aXRpb25zIGFjY29yZGluZyB0byA3LjQKKyAgICAgKi8KKyAgICBwYXJ0aXRpb25zID0gKHhtbFJlbGF4TkdQYXJ0aXRpb25QdHIpCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVsYXhOR1BhcnRpdGlvbikpOworICAgIGlmIChwYXJ0aXRpb25zID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgbWVtc2V0KHBhcnRpdGlvbnMsIDAsIHNpemVvZih4bWxSZWxheE5HUGFydGl0aW9uKSk7CisgICAgcGFydGl0aW9ucy0+bmJncm91cHMgPSBuYmdyb3VwczsKKyAgICBwYXJ0aXRpb25zLT50cmlhZ2UgPSB4bWxIYXNoQ3JlYXRlKG5iZ3JvdXBzKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJncm91cHM7IGkrKykgeworICAgICAgICBncm91cCA9IGdyb3Vwc1tpXTsKKyAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCBuYmdyb3VwczsgaisrKSB7CisgICAgICAgICAgICBpZiAoZ3JvdXBzW2pdID09IE5VTEwpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdDb21wYXJlRWxlbURlZkxpc3RzKGN0eHQsIGdyb3VwLT5kZWZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzW2pdLT5kZWZzKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgZGVmLT5ub2RlLCBYTUxfUk5HUF9FTEVNX1RFWFRfQ09ORkxJQ1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRWxlbWVudCBvciB0ZXh0IGNvbmZsaWN0cyBpbiBpbnRlcmxlYXZlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HQ29tcGFyZUVsZW1EZWZMaXN0cyhjdHh0LCBncm91cC0+YXR0cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHNbal0tPmF0dHJzKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgZGVmLT5ub2RlLCBYTUxfUk5HUF9BVFRSX0NPTkZMSUNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZXMgY29uZmxpY3RzIGluIGludGVybGVhdmVcbiIsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0bXAgPSBncm91cC0+ZGVmczsKKyAgICAgICAgaWYgKCh0bXAgIT0gTlVMTCkgJiYgKCp0bXAgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgIHdoaWxlICgqdG1wICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoKCp0bXApLT50eXBlID09IFhNTF9SRUxBWE5HX1RFWFQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzID0geG1sSGFzaEFkZEVudHJ5MihwYXJ0aXRpb25zLT50cmlhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIiN0ZXh0IiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSAobG9uZykgKGkgKyAxKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX2RldGVybWluaXN0ID0gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoKCp0bXApLT50eXBlID09IFhNTF9SRUxBWE5HX0VMRU1FTlQpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCp0bXApLT5uYW1lICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoKCp0bXApLT5ucyA9PSBOVUxMKSB8fCAoKCp0bXApLT5uc1swXSA9PSAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHhtbEhhc2hBZGRFbnRyeTIocGFydGl0aW9ucy0+dHJpYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKnRtcCktPm5hbWUsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIChsb25nKSAoaSArIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0geG1sSGFzaEFkZEVudHJ5MihwYXJ0aXRpb25zLT50cmlhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqdG1wKS0+bmFtZSwgKCp0bXApLT5ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgKGxvbmcpIChpICsgMSkpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBpc19kZXRlcm1pbmlzdCA9IC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKCp0bXApLT50eXBlID09IFhNTF9SRUxBWE5HX0VMRU1FTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoKnRtcCktPm5zID09IE5VTEwpIHx8ICgoKnRtcCktPm5zWzBdID09IDApKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0geG1sSGFzaEFkZEVudHJ5MihwYXJ0aXRpb25zLT50cmlhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICIjYW55IiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgKGxvbmcpIChpICsgMSkpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSB4bWxIYXNoQWRkRW50cnkyKHBhcnRpdGlvbnMtPnRyaWFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIiNhbnkiLCAoKnRtcCktPm5zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSAobG9uZykgKGkgKyAxKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgoKnRtcCktPm5hbWVDbGFzcyAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgaXNfZGV0ZXJtaW5pc3QgPSAyOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBpc19kZXRlcm1pbmlzdCA9IC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlzX2RldGVybWluaXN0ID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRtcCsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaXNfZGV0ZXJtaW5pc3QgPSAwOworICAgICAgICB9CisgICAgfQorICAgIHBhcnRpdGlvbnMtPmdyb3VwcyA9IGdyb3VwczsKKworICAgIC8qCisgICAgICogYW5kIHNhdmUgdGhlIHBhcnRpdGlvbiBsaXN0IGJhY2sgaW4gdGhlIGRlZgorICAgICAqLworICAgIGRlZi0+ZGF0YSA9IHBhcnRpdGlvbnM7CisgICAgaWYgKGlzX21peGVkICE9IDApCisgICAgICAgIGRlZi0+ZGZsYWdzIHw9IElTX01JWEVEOworICAgIGlmIChpc19kZXRlcm1pbmlzdCA9PSAxKQorICAgICAgICBwYXJ0aXRpb25zLT5mbGFncyA9IElTX0RFVEVSTUlOSVNUOworICAgIGlmIChpc19kZXRlcm1pbmlzdCA9PSAyKQorICAgICAgICBwYXJ0aXRpb25zLT5mbGFncyA9IElTX0RFVEVSTUlOSVNUIHwgSVNfTkVFRENIRUNLOworICAgIHJldHVybjsKKworICBlcnJvcjoKKyAgICB4bWxSbmdQRXJyTWVtb3J5KGN0eHQsICJpbiBpbnRlcmxlYXZlIGNvbXB1dGF0aW9uXG4iKTsKKyAgICBpZiAoZ3JvdXBzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iZ3JvdXBzOyBpKyspCisgICAgICAgICAgICBpZiAoZ3JvdXBzW2ldICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXBzW2ldLT5kZWZzICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoZ3JvdXBzW2ldLT5kZWZzKTsKKyAgICAgICAgICAgICAgICB4bWxGcmVlKGdyb3Vwc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIHhtbEZyZWUoZ3JvdXBzKTsKKyAgICB9CisgICAgeG1sUmVsYXhOR0ZyZWVQYXJ0aXRpb24ocGFydGl0aW9ucyk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlSW50ZXJsZWF2ZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgZGF0YSBub2RlLgorICoKKyAqIHBhcnNlIHRoZSBjb250ZW50IG9mIGEgUmVsYXhORyBpbnRlcmxlYXZlIG5vZGUuCisgKgorICogUmV0dXJucyB0aGUgZGVmaW5pdGlvbiBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sUmVsYXhOR0RlZmluZVB0cgoreG1sUmVsYXhOR1BhcnNlSW50ZXJsZWF2ZSh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYgPSBOVUxMOworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGFzdCA9IE5VTEwsIGN1cjsKKyAgICB4bWxOb2RlUHRyIGNoaWxkOworCisgICAgZGVmID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICBpZiAoZGVmID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgZGVmLT50eXBlID0gWE1MX1JFTEFYTkdfSU5URVJMRUFWRTsKKworICAgIGlmIChjdHh0LT5pbnRlcmxlYXZlcyA9PSBOVUxMKQorICAgICAgICBjdHh0LT5pbnRlcmxlYXZlcyA9IHhtbEhhc2hDcmVhdGUoMTApOworICAgIGlmIChjdHh0LT5pbnRlcmxlYXZlcyA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnJNZW1vcnkoY3R4dCwgImNyZWF0ZSBpbnRlcmxlYXZlc1xuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2hhciBuYW1lWzMyXTsKKworICAgICAgICBzbnByaW50ZihuYW1lLCAzMiwgImludGVybGVhdmUlZCIsIGN0eHQtPm5iSW50ZXJsZWF2ZXMrKyk7CisgICAgICAgIGlmICh4bWxIYXNoQWRkRW50cnkoY3R4dC0+aW50ZXJsZWF2ZXMsIEJBRF9DQVNUIG5hbWUsIGRlZikgPCAwKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0lOVEVSTEVBVkVfQURELAorICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGFkZCAlcyB0byBoYXNoIHRhYmxlXG4iLAorCQkgICAgICAgKGNvbnN0IHhtbENoYXIgKikgbmFtZSwgTlVMTCk7CisgICAgICAgIH0KKyAgICB9CisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoY2hpbGQgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0lOVEVSTEVBVkVfTk9fQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAiRWxlbWVudCBpbnRlcmxlYXZlIGlzIGVtcHR5XG4iLCBOVUxMLCBOVUxMKTsKKyAgICB9CisgICAgd2hpbGUgKGNoaWxkICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKElTX1JFTEFYTkcoY2hpbGQsICJlbGVtZW50IikpIHsKKyAgICAgICAgICAgIGN1ciA9IHhtbFJlbGF4TkdQYXJzZUVsZW1lbnQoY3R4dCwgY2hpbGQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY3VyID0geG1sUmVsYXhOR1BhcnNlUGF0dGVybihjdHh0LCBjaGlsZCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgICAgICBjdXItPnBhcmVudCA9IGRlZjsKKyAgICAgICAgICAgIGlmIChsYXN0ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBkZWYtPmNvbnRlbnQgPSBsYXN0ID0gY3VyOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsYXN0LT5uZXh0ID0gY3VyOworICAgICAgICAgICAgICAgIGxhc3QgPSBjdXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisKKyAgICByZXR1cm4gKGRlZik7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlSW5jbHVkZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgaW5jbHVkZSBub2RlCisgKgorICogSW50ZWdyYXRlIHRoZSBjb250ZW50IG9mIGFuIGluY2x1ZGUgbm9kZSBpbiB0aGUgY3VycmVudCBncmFtbWFyCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdQYXJzZUluY2x1ZGUoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFJlbGF4TkdJbmNsdWRlUHRyIGluY2w7CisgICAgeG1sTm9kZVB0ciByb290OworICAgIGludCByZXQgPSAwLCB0bXA7CisKKyAgICBpbmNsID0gbm9kZS0+cHN2aTsKKyAgICBpZiAoaW5jbCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfSU5DTFVERV9FTVBUWSwKKyAgICAgICAgICAgICAgICAgICAiSW5jbHVkZSBub2RlIGhhcyBubyBkYXRhXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIHJvb3QgPSB4bWxEb2NHZXRSb290RWxlbWVudChpbmNsLT5kb2MpOworICAgIGlmIChyb290ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9FTVBUWSwgIkluY2x1ZGUgZG9jdW1lbnQgaXMgZW1wdHlcbiIsCisgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBpZiAoIXhtbFN0ckVxdWFsKHJvb3QtPm5hbWUsIEJBRF9DQVNUICJncmFtbWFyIikpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9HUkFNTUFSX01JU1NJTkcsCisgICAgICAgICAgICAgICAgICAgIkluY2x1ZGUgZG9jdW1lbnQgcm9vdCBpcyBub3QgYSBncmFtbWFyXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBNZXJnZSB0aGUgZGVmaW5pdGlvbiBmcm9tIGJvdGggdGhlIGluY2x1ZGUgYW5kIHRoZSBpbnRlcm5hbCBsaXN0CisgICAgICovCisgICAgaWYgKHJvb3QtPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgdG1wID0geG1sUmVsYXhOR1BhcnNlR3JhbW1hckNvbnRlbnQoY3R4dCwgcm9vdC0+Y2hpbGRyZW4pOworICAgICAgICBpZiAodG1wICE9IDApCisgICAgICAgICAgICByZXQgPSAtMTsKKyAgICB9CisgICAgaWYgKG5vZGUtPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgdG1wID0geG1sUmVsYXhOR1BhcnNlR3JhbW1hckNvbnRlbnQoY3R4dCwgbm9kZS0+Y2hpbGRyZW4pOworICAgICAgICBpZiAodG1wICE9IDApCisgICAgICAgICAgICByZXQgPSAtMTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdQYXJzZURlZmluZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgZGVmaW5lIG5vZGUKKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4TkcgZGVmaW5lIGVsZW1lbnQgbm9kZS4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1BhcnNlRGVmaW5lKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxDaGFyICpuYW1lOworICAgIGludCByZXQgPSAwLCB0bXA7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWY7CisgICAgY29uc3QgeG1sQ2hhciAqb2xkZGVmaW5lOworCisgICAgbmFtZSA9IHhtbEdldFByb3Aobm9kZSwgQkFEX0NBU1QgIm5hbWUiKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfREVGSU5FX05BTUVfTUlTU0lORywKKyAgICAgICAgICAgICAgICAgICAiZGVmaW5lIGhhcyBubyBuYW1lXG4iLCBOVUxMLCBOVUxMKTsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxSZWxheE5HTm9ybUV4dFNwYWNlKG5hbWUpOworICAgICAgICBpZiAoeG1sVmFsaWRhdGVOQ05hbWUobmFtZSwgMCkpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfSU5WQUxJRF9ERUZJTkVfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgImRlZmluZSBuYW1lICclcycgaXMgbm90IGFuIE5DTmFtZVxuIiwgbmFtZSwgTlVMTCk7CisgICAgICAgIH0KKyAgICAgICAgZGVmID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKGRlZiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxGcmVlKG5hbWUpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICAgICAgZGVmLT50eXBlID0gWE1MX1JFTEFYTkdfREVGOworICAgICAgICBkZWYtPm5hbWUgPSBuYW1lOworICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9ERUZJTkVfRU1QVFksCisgICAgICAgICAgICAgICAgICAgICAgICJkZWZpbmUgaGFzIG5vIGNoaWxkcmVuXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG9sZGRlZmluZSA9IGN0eHQtPmRlZmluZTsKKyAgICAgICAgICAgIGN0eHQtPmRlZmluZSA9IG5hbWU7CisgICAgICAgICAgICBkZWYtPmNvbnRlbnQgPQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQYXJzZVBhdHRlcm5zKGN0eHQsIG5vZGUtPmNoaWxkcmVuLCAwKTsKKyAgICAgICAgICAgIGN0eHQtPmRlZmluZSA9IG9sZGRlZmluZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY3R4dC0+Z3JhbW1hci0+ZGVmcyA9PSBOVUxMKQorICAgICAgICAgICAgY3R4dC0+Z3JhbW1hci0+ZGVmcyA9IHhtbEhhc2hDcmVhdGUoMTApOworICAgICAgICBpZiAoY3R4dC0+Z3JhbW1hci0+ZGVmcyA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0RFRklORV9DUkVBVEVfRkFJTEVELAorICAgICAgICAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNyZWF0ZSBkZWZpbml0aW9uIGhhc2hcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0bXAgPSB4bWxIYXNoQWRkRW50cnkoY3R4dC0+Z3JhbW1hci0+ZGVmcywgbmFtZSwgZGVmKTsKKyAgICAgICAgICAgIGlmICh0bXAgPCAwKSB7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBwcmV2OworCisgICAgICAgICAgICAgICAgcHJldiA9IHhtbEhhc2hMb29rdXAoY3R4dC0+Z3JhbW1hci0+ZGVmcywgbmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHByZXYgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0RFRklORV9DUkVBVEVfRkFJTEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvciBvbiBkZWZpbmUgYWdncmVnYXRpb24gb2YgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwcmV2LT5uZXh0SGFzaCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJldiA9IHByZXYtPm5leHRIYXNoOworICAgICAgICAgICAgICAgICAgICBwcmV2LT5uZXh0SGFzaCA9IGRlZjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdQYXJzZUltcG9ydFJlZjoKKyAqIEBwYXlsb2FkOiB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBkYXRhOiB0aGUgY3VycmVudCBncmFtbWFyCisgKiBAbmFtZTogdGhlIHJlZmVyZW5jZSBuYW1lCisgKgorICogSW1wb3J0IGltcG9ydCBvbmUgcmVmZXJlbmNlcyBpbnRvIHRoZSBjdXJyZW50IGdyYW1tYXIKKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdQYXJzZUltcG9ydFJlZih2b2lkICpwYXlsb2FkLCB2b2lkICpkYXRhLCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cikgZGF0YTsKKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZiA9ICh4bWxSZWxheE5HRGVmaW5lUHRyKSBwYXlsb2FkOworICAgIGludCB0bXA7CisKKyAgICBkZWYtPmRmbGFncyB8PSBJU19FWFRFUk5BTF9SRUY7CisKKyAgICB0bXAgPSB4bWxIYXNoQWRkRW50cnkoY3R4dC0+Z3JhbW1hci0+cmVmcywgbmFtZSwgZGVmKTsKKyAgICBpZiAodG1wIDwgMCkgeworICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIHByZXY7CisKKyAgICAgICAgcHJldiA9ICh4bWxSZWxheE5HRGVmaW5lUHRyKQorICAgICAgICAgICAgeG1sSGFzaExvb2t1cChjdHh0LT5ncmFtbWFyLT5yZWZzLCBkZWYtPm5hbWUpOworICAgICAgICBpZiAocHJldiA9PSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoZGVmLT5uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIE5VTEwsIFhNTF9STkdQX1JFRl9DUkVBVEVfRkFJTEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIHJlZnMgZGVmaW5pdGlvbnMgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZi0+bmFtZSwgTlVMTCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgTlVMTCwgWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgcmVmcyBkZWZpbml0aW9uc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVmLT5uZXh0SGFzaCA9IHByZXYtPm5leHRIYXNoOworICAgICAgICAgICAgcHJldi0+bmV4dEhhc2ggPSBkZWY7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlSW1wb3J0UmVmczoKKyAqIEBjdHh0OiB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBncmFtbWFyOiB0aGUgc3ViIGdyYW1tYXIKKyAqCisgKiBJbXBvcnQgcmVmZXJlbmNlcyBmcm9tIHRoZSBzdWJncmFtbWFyIGludG8gdGhlIGN1cnJlbnQgZ3JhbW1hcgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HUGFyc2VJbXBvcnRSZWZzKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIGdyYW1tYXIpIHsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGdyYW1tYXIgPT0gTlVMTCkgfHwgKGN0eHQtPmdyYW1tYXIgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaWYgKGdyYW1tYXItPnJlZnMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKDApOworICAgIGlmIChjdHh0LT5ncmFtbWFyLT5yZWZzID09IE5VTEwpCisgICAgICAgIGN0eHQtPmdyYW1tYXItPnJlZnMgPSB4bWxIYXNoQ3JlYXRlKDEwKTsKKyAgICBpZiAoY3R4dC0+Z3JhbW1hci0+cmVmcyA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgTlVMTCwgWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQsCisgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjcmVhdGUgcmVmZXJlbmNlcyBoYXNoXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgeG1sSGFzaFNjYW4oZ3JhbW1hci0+cmVmcywgeG1sUmVsYXhOR1BhcnNlSW1wb3J0UmVmLCBjdHh0KTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1Byb2Nlc3NFeHRlcm5hbFJlZjoKKyAqIEBjdHh0OiB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIGV4dGVybmxSZWYgbm9kZQorICoKKyAqIFByb2Nlc3MgYW5kIGNvbXBpbGUgYW4gZXh0ZXJubFJlZiBub2RlCisgKgorICogUmV0dXJucyB0aGUgeG1sUmVsYXhOR0RlZmluZVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFJlbGF4TkdEZWZpbmVQdHIKK3htbFJlbGF4TkdQcm9jZXNzRXh0ZXJuYWxSZWYoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFJlbGF4TkdEb2N1bWVudFB0ciBkb2N1OworICAgIHhtbE5vZGVQdHIgcm9vdCwgdG1wOworICAgIHhtbENoYXIgKm5zOworICAgIGludCBuZXdOcyA9IDAsIG9sZGZsYWdzOworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmOworCisgICAgZG9jdSA9IG5vZGUtPnBzdmk7CisgICAgaWYgKGRvY3UgIT0gTlVMTCkgeworICAgICAgICBkZWYgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIG5vZGUpOworICAgICAgICBpZiAoZGVmID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBkZWYtPnR5cGUgPSBYTUxfUkVMQVhOR19FWFRFUk5BTFJFRjsKKworICAgICAgICBpZiAoZG9jdS0+Y29udGVudCA9PSBOVUxMKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogVGhlbiBkbyB0aGUgcGFyc2luZyBmb3IgZ29vZAorICAgICAgICAgICAgICovCisgICAgICAgICAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jdS0+ZG9jKTsKKyAgICAgICAgICAgIGlmIChyb290ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VYVEVSTkFMUkVGX0VNVFBZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFJlbGF4TkdQYXJzZTogJXMgaXMgZW1wdHlcbiIsIGN0eHQtPlVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbnMgdHJhbnNtaXNzaW9uIHJ1bGVzCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG5zID0geG1sR2V0UHJvcChyb290LCBCQURfQ0FTVCAibnMiKTsKKyAgICAgICAgICAgIGlmIChucyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgdG1wID0gbm9kZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKHRtcCAhPSBOVUxMKSAmJiAodG1wLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgICAgICAgICAgICAgIG5zID0geG1sR2V0UHJvcCh0bXAsIEJBRF9DQVNUICJucyIpOworICAgICAgICAgICAgICAgICAgICBpZiAobnMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5wYXJlbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChucyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFNldFByb3Aocm9vdCwgQkFEX0NBU1QgIm5zIiwgbnMpOworICAgICAgICAgICAgICAgICAgICBuZXdOcyA9IDE7CisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobnMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgeG1sRnJlZShucyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBQYXJzaW5nIHRvIGdldCBhIHByZWNvbXBpbGVkIHNjaGVtYXMuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG9sZGZsYWdzID0gY3R4dC0+ZmxhZ3M7CisgICAgICAgICAgICBjdHh0LT5mbGFncyB8PSBYTUxfUkVMQVhOR19JTl9FWFRFUk5BTFJFRjsKKyAgICAgICAgICAgIGRvY3UtPnNjaGVtYSA9IHhtbFJlbGF4TkdQYXJzZURvY3VtZW50KGN0eHQsIHJvb3QpOworICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyAgICAgICAgICAgIGlmICgoZG9jdS0+c2NoZW1hICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgKGRvY3UtPnNjaGVtYS0+dG9wZ3JhbW1hciAhPSBOVUxMKSkgeworICAgICAgICAgICAgICAgIGRvY3UtPmNvbnRlbnQgPSBkb2N1LT5zY2hlbWEtPnRvcGdyYW1tYXItPnN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChkb2N1LT5zY2hlbWEtPnRvcGdyYW1tYXItPnJlZnMpCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQYXJzZUltcG9ydFJlZnMoY3R4dCwgZG9jdS0+c2NoZW1hLT50b3BncmFtbWFyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIHRoZSBleHRlcm5hbFJlZiBtYXkgYmUgcmV1c2VkIGluIGEgZGlmZmVyZW50IG5zIGNvbnRleHQKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKG5ld05zID09IDEpIHsKKyAgICAgICAgICAgICAgICB4bWxVbnNldFByb3Aocm9vdCwgQkFEX0NBU1QgIm5zIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZGVmLT5jb250ZW50ID0gZG9jdS0+Y29udGVudDsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWYgPSBOVUxMOworICAgIH0KKyAgICByZXR1cm4gKGRlZik7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlUGF0dGVybjoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgcGF0dGVybiBub2RlLgorICoKKyAqIHBhcnNlIHRoZSBjb250ZW50IG9mIGEgUmVsYXhORyBwYXR0ZXJuIG5vZGUuCisgKgorICogUmV0dXJucyB0aGUgZGVmaW5pdGlvbiBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvciBvciBpZiBubworICogICAgIHBhdHRlcm4gaXMgZ2VuZXJhdGVkLgorICovCitzdGF0aWMgeG1sUmVsYXhOR0RlZmluZVB0cgoreG1sUmVsYXhOR1BhcnNlUGF0dGVybih4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYgPSBOVUxMOworCisgICAgaWYgKG5vZGUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpZiAoSVNfUkVMQVhORyhub2RlLCAiZWxlbWVudCIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdQYXJzZUVsZW1lbnQoY3R4dCwgbm9kZSk7CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJhdHRyaWJ1dGUiKSkgeworICAgICAgICBkZWYgPSB4bWxSZWxheE5HUGFyc2VBdHRyaWJ1dGUoY3R4dCwgbm9kZSk7CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJlbXB0eSIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIGRlZi0+dHlwZSA9IFhNTF9SRUxBWE5HX0VNUFRZOworICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9FTVBUWV9OT1RfRU1QVFksCisgICAgICAgICAgICAgICAgICAgICAgICJlbXB0eTogaGFkIGEgY2hpbGQgbm9kZVxuIiwgTlVMTCwgTlVMTCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKElTX1JFTEFYTkcobm9kZSwgInRleHQiKSkgeworICAgICAgICBkZWYgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIG5vZGUpOworICAgICAgICBpZiAoZGVmID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBkZWYtPnR5cGUgPSBYTUxfUkVMQVhOR19URVhUOworICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9URVhUX0hBU19DSElMRCwKKyAgICAgICAgICAgICAgICAgICAgICAgInRleHQ6IGhhZCBhIGNoaWxkIG5vZGVcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJ6ZXJvT3JNb3JlIikpIHsKKyAgICAgICAgZGVmID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKGRlZiA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgZGVmLT50eXBlID0gWE1MX1JFTEFYTkdfWkVST09STU9SRTsKKyAgICAgICAgaWYgKG5vZGUtPmNoaWxkcmVuID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfRU1QVFlfQ09OU1RSVUNULAorICAgICAgICAgICAgICAgICAgICAgICAiRWxlbWVudCAlcyBpcyBlbXB0eVxuIiwgbm9kZS0+bmFtZSwgTlVMTCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWYtPmNvbnRlbnQgPQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQYXJzZVBhdHRlcm5zKGN0eHQsIG5vZGUtPmNoaWxkcmVuLCAxKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoSVNfUkVMQVhORyhub2RlLCAib25lT3JNb3JlIikpIHsKKyAgICAgICAgZGVmID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKGRlZiA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgZGVmLT50eXBlID0gWE1MX1JFTEFYTkdfT05FT1JNT1JFOworICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9FTVBUWV9DT05TVFJVQ1QsCisgICAgICAgICAgICAgICAgICAgICAgICJFbGVtZW50ICVzIGlzIGVtcHR5XG4iLCBub2RlLT5uYW1lLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlZi0+Y29udGVudCA9CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1BhcnNlUGF0dGVybnMoY3R4dCwgbm9kZS0+Y2hpbGRyZW4sIDEpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJvcHRpb25hbCIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIGRlZi0+dHlwZSA9IFhNTF9SRUxBWE5HX09QVElPTkFMOworICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9FTVBUWV9DT05TVFJVQ1QsCisgICAgICAgICAgICAgICAgICAgICAgICJFbGVtZW50ICVzIGlzIGVtcHR5XG4iLCBub2RlLT5uYW1lLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlZi0+Y29udGVudCA9CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1BhcnNlUGF0dGVybnMoY3R4dCwgbm9kZS0+Y2hpbGRyZW4sIDEpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJjaG9pY2UiKSkgeworICAgICAgICBkZWYgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIG5vZGUpOworICAgICAgICBpZiAoZGVmID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBkZWYtPnR5cGUgPSBYTUxfUkVMQVhOR19DSE9JQ0U7CisgICAgICAgIGlmIChub2RlLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIkVsZW1lbnQgJXMgaXMgZW1wdHlcbiIsIG5vZGUtPm5hbWUsIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVmLT5jb250ZW50ID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HUGFyc2VQYXR0ZXJucyhjdHh0LCBub2RlLT5jaGlsZHJlbiwgMCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKElTX1JFTEFYTkcobm9kZSwgImdyb3VwIikpIHsKKyAgICAgICAgZGVmID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKGRlZiA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgZGVmLT50eXBlID0gWE1MX1JFTEFYTkdfR1JPVVA7CisgICAgICAgIGlmIChub2RlLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIkVsZW1lbnQgJXMgaXMgZW1wdHlcbiIsIG5vZGUtPm5hbWUsIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVmLT5jb250ZW50ID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HUGFyc2VQYXR0ZXJucyhjdHh0LCBub2RlLT5jaGlsZHJlbiwgMCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKElTX1JFTEFYTkcobm9kZSwgInJlZiIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIGRlZi0+dHlwZSA9IFhNTF9SRUxBWE5HX1JFRjsKKyAgICAgICAgZGVmLT5uYW1lID0geG1sR2V0UHJvcChub2RlLCBCQURfQ0FTVCAibmFtZSIpOworICAgICAgICBpZiAoZGVmLT5uYW1lID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfUkVGX05PX05BTUUsICJyZWYgaGFzIG5vIG5hbWVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgeG1sUmVsYXhOR05vcm1FeHRTcGFjZShkZWYtPm5hbWUpOworICAgICAgICAgICAgaWYgKHhtbFZhbGlkYXRlTkNOYW1lKGRlZi0+bmFtZSwgMCkpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1JFRl9OQU1FX0lOVkFMSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmIG5hbWUgJyVzJyBpcyBub3QgYW4gTkNOYW1lXG4iLCBkZWYtPm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9SRUZfTk9UX0VNUFRZLCAicmVmIGlzIG5vdCBlbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN0eHQtPmdyYW1tYXItPnJlZnMgPT0gTlVMTCkKKyAgICAgICAgICAgIGN0eHQtPmdyYW1tYXItPnJlZnMgPSB4bWxIYXNoQ3JlYXRlKDEwKTsKKyAgICAgICAgaWYgKGN0eHQtPmdyYW1tYXItPnJlZnMgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9SRUZfQ1JFQVRFX0ZBSUxFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjcmVhdGUgcmVmZXJlbmNlcyBoYXNoXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIGRlZiA9IE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgdG1wOworCisgICAgICAgICAgICB0bXAgPSB4bWxIYXNoQWRkRW50cnkoY3R4dC0+Z3JhbW1hci0+cmVmcywgZGVmLT5uYW1lLCBkZWYpOworICAgICAgICAgICAgaWYgKHRtcCA8IDApIHsKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIHByZXY7CisKKyAgICAgICAgICAgICAgICBwcmV2ID0gKHhtbFJlbGF4TkdEZWZpbmVQdHIpCisgICAgICAgICAgICAgICAgICAgIHhtbEhhc2hMb29rdXAoY3R4dC0+Z3JhbW1hci0+cmVmcywgZGVmLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAocHJldiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWYtPm5hbWUgIT0gTlVMTCkgeworCQkgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQsCisJCQkJICAgIkVycm9yIHJlZnMgZGVmaW5pdGlvbnMgJyVzJ1xuIiwKKwkJCQkgICBkZWYtPm5hbWUsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworCQkgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfUkVGX0NSRUFURV9GQUlMRUQsCisJCQkJICAgIkVycm9yIHJlZnMgZGVmaW5pdGlvbnNcbiIsCisJCQkJICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVmID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZWYtPm5leHRIYXNoID0gcHJldi0+bmV4dEhhc2g7CisgICAgICAgICAgICAgICAgICAgIHByZXYtPm5leHRIYXNoID0gZGVmOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoSVNfUkVMQVhORyhub2RlLCAiZGF0YSIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdQYXJzZURhdGEoY3R4dCwgbm9kZSk7CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJ2YWx1ZSIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdQYXJzZVZhbHVlKGN0eHQsIG5vZGUpOworICAgIH0gZWxzZSBpZiAoSVNfUkVMQVhORyhub2RlLCAibGlzdCIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIGRlZi0+dHlwZSA9IFhNTF9SRUxBWE5HX0xJU1Q7CisgICAgICAgIGlmIChub2RlLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIkVsZW1lbnQgJXMgaXMgZW1wdHlcbiIsIG5vZGUtPm5hbWUsIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVmLT5jb250ZW50ID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HUGFyc2VQYXR0ZXJucyhjdHh0LCBub2RlLT5jaGlsZHJlbiwgMCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKElTX1JFTEFYTkcobm9kZSwgImludGVybGVhdmUiKSkgeworICAgICAgICBkZWYgPSB4bWxSZWxheE5HUGFyc2VJbnRlcmxlYXZlKGN0eHQsIG5vZGUpOworICAgIH0gZWxzZSBpZiAoSVNfUkVMQVhORyhub2RlLCAiZXh0ZXJuYWxSZWYiKSkgeworICAgICAgICBkZWYgPSB4bWxSZWxheE5HUHJvY2Vzc0V4dGVybmFsUmVmKGN0eHQsIG5vZGUpOworICAgIH0gZWxzZSBpZiAoSVNfUkVMQVhORyhub2RlLCAibm90QWxsb3dlZCIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIGRlZi0+dHlwZSA9IFhNTF9SRUxBWE5HX05PVF9BTExPV0VEOworICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9OT1RBTExPV0VEX05PVF9FTVBUWSwKKyAgICAgICAgICAgICAgICAgICAgICAgInhtbFJlbGF4TkdQYXJzZTogbm90QWxsb3dlZCBlbGVtZW50IGlzIG5vdCBlbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKElTX1JFTEFYTkcobm9kZSwgImdyYW1tYXIiKSkgeworICAgICAgICB4bWxSZWxheE5HR3JhbW1hclB0ciBncmFtbWFyLCBvbGQ7CisgICAgICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIG9sZHBhcmVudDsKKworI2lmZGVmIERFQlVHX0dSQU1NQVIKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgPGdyYW1tYXI+IHBhdHRlcm5cbiIpOworI2VuZGlmCisKKyAgICAgICAgb2xkcGFyZW50ID0gY3R4dC0+cGFyZW50Z3JhbW1hcjsKKyAgICAgICAgb2xkID0gY3R4dC0+Z3JhbW1hcjsKKyAgICAgICAgY3R4dC0+cGFyZW50Z3JhbW1hciA9IG9sZDsKKyAgICAgICAgZ3JhbW1hciA9IHhtbFJlbGF4TkdQYXJzZUdyYW1tYXIoY3R4dCwgbm9kZS0+Y2hpbGRyZW4pOworICAgICAgICBpZiAob2xkICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGN0eHQtPmdyYW1tYXIgPSBvbGQ7CisgICAgICAgICAgICBjdHh0LT5wYXJlbnRncmFtbWFyID0gb2xkcGFyZW50OworI2lmIDAKKyAgICAgICAgICAgIGlmIChncmFtbWFyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBncmFtbWFyLT5uZXh0ID0gb2xkLT5uZXh0OworICAgICAgICAgICAgICAgIG9sZC0+bmV4dCA9IGdyYW1tYXI7CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgfQorICAgICAgICBpZiAoZ3JhbW1hciAhPSBOVUxMKQorICAgICAgICAgICAgZGVmID0gZ3JhbW1hci0+c3RhcnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlZiA9IE5VTEw7CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJwYXJlbnRSZWYiKSkgeworICAgICAgICBpZiAoY3R4dC0+cGFyZW50Z3JhbW1hciA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1BBUkVOVFJFRl9OT19QQVJFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJVc2Ugb2YgcGFyZW50UmVmIHdpdGhvdXQgYSBwYXJlbnQgZ3JhbW1hclxuIiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICB9CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIGRlZi0+dHlwZSA9IFhNTF9SRUxBWE5HX1BBUkVOVFJFRjsKKyAgICAgICAgZGVmLT5uYW1lID0geG1sR2V0UHJvcChub2RlLCBCQURfQ0FTVCAibmFtZSIpOworICAgICAgICBpZiAoZGVmLT5uYW1lID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfUEFSRU5UUkVGX05PX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICJwYXJlbnRSZWYgaGFzIG5vIG5hbWVcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgeG1sUmVsYXhOR05vcm1FeHRTcGFjZShkZWYtPm5hbWUpOworICAgICAgICAgICAgaWYgKHhtbFZhbGlkYXRlTkNOYW1lKGRlZi0+bmFtZSwgMCkpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1BBUkVOVFJFRl9OQU1FX0lOVkFMSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyZW50UmVmIG5hbWUgJyVzJyBpcyBub3QgYW4gTkNOYW1lXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmLT5uYW1lLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9QQVJFTlRSRUZfTk9UX0VNUFRZLAorICAgICAgICAgICAgICAgICAgICAgICAicGFyZW50UmVmIGlzIG5vdCBlbXB0eVxuIiwgTlVMTCwgTlVMTCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN0eHQtPnBhcmVudGdyYW1tYXItPnJlZnMgPT0gTlVMTCkKKyAgICAgICAgICAgIGN0eHQtPnBhcmVudGdyYW1tYXItPnJlZnMgPSB4bWxIYXNoQ3JlYXRlKDEwKTsKKyAgICAgICAgaWYgKGN0eHQtPnBhcmVudGdyYW1tYXItPnJlZnMgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9QQVJFTlRSRUZfQ1JFQVRFX0ZBSUxFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjcmVhdGUgcmVmZXJlbmNlcyBoYXNoXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIGRlZiA9IE5VTEw7CisgICAgICAgIH0gZWxzZSBpZiAoZGVmLT5uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGludCB0bXA7CisKKyAgICAgICAgICAgIHRtcCA9CisgICAgICAgICAgICAgICAgeG1sSGFzaEFkZEVudHJ5KGN0eHQtPnBhcmVudGdyYW1tYXItPnJlZnMsIGRlZi0+bmFtZSwgZGVmKTsKKyAgICAgICAgICAgIGlmICh0bXAgPCAwKSB7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBwcmV2OworCisgICAgICAgICAgICAgICAgcHJldiA9ICh4bWxSZWxheE5HRGVmaW5lUHRyKQorICAgICAgICAgICAgICAgICAgICB4bWxIYXNoTG9va3VwKGN0eHQtPnBhcmVudGdyYW1tYXItPnJlZnMsIGRlZi0+bmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHByZXYgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1BBUkVOVFJFRl9DUkVBVEVfRkFJTEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvciBwYXJlbnRSZWYgZGVmaW5pdGlvbnMgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYtPm5hbWUsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICBkZWYgPSBOVUxMOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRlZi0+bmV4dEhhc2ggPSBwcmV2LT5uZXh0SGFzaDsKKyAgICAgICAgICAgICAgICAgICAgcHJldi0+bmV4dEhhc2ggPSBkZWY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJtaXhlZCIpKSB7CisgICAgICAgIGlmIChub2RlLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VNUFRZX0NPTlNUUlVDVCwgIk1peGVkIGlzIGVtcHR5XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIGRlZiA9IE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWYgPSB4bWxSZWxheE5HUGFyc2VJbnRlcmxlYXZlKGN0eHQsIG5vZGUpOworICAgICAgICAgICAgaWYgKGRlZiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciB0bXA7CisKKyAgICAgICAgICAgICAgICBpZiAoKGRlZi0+Y29udGVudCAhPSBOVUxMKSAmJiAoZGVmLT5jb250ZW50LT5uZXh0ICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdG1wLT50eXBlID0gWE1MX1JFTEFYTkdfR1JPVVA7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAtPmNvbnRlbnQgPSBkZWYtPmNvbnRlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWYtPmNvbnRlbnQgPSB0bXA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIG5vZGUpOworICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChkZWYpOworICAgICAgICAgICAgICAgIHRtcC0+dHlwZSA9IFhNTF9SRUxBWE5HX1RFWFQ7CisgICAgICAgICAgICAgICAgdG1wLT5uZXh0ID0gZGVmLT5jb250ZW50OworICAgICAgICAgICAgICAgIGRlZi0+Y29udGVudCA9IHRtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfVU5LTk9XTl9DT05TVFJVQ1QsCisgICAgICAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgbm9kZSAlcyBpcyBub3QgYSBwYXR0ZXJuXG4iLCBub2RlLT5uYW1lLAorICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICBkZWYgPSBOVUxMOworICAgIH0KKyAgICByZXR1cm4gKGRlZik7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlQXR0cmlidXRlOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAbm9kZTogIHRoZSBlbGVtZW50IG5vZGUKKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4TkcgYXR0cmlidXRlIG5vZGUuCisgKgorICogUmV0dXJucyB0aGUgZGVmaW5pdGlvbiBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbFJlbGF4TkdEZWZpbmVQdHIKK3htbFJlbGF4TkdQYXJzZUF0dHJpYnV0ZSh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciByZXQsIGN1cjsKKyAgICB4bWxOb2RlUHRyIGNoaWxkOworICAgIGludCBvbGRfZmxhZ3M7CisKKyAgICByZXQgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIG5vZGUpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfUkVMQVhOR19BVFRSSUJVVEU7CisgICAgcmV0LT5wYXJlbnQgPSBjdHh0LT5kZWY7CisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoY2hpbGQgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0FUVFJJQlVURV9FTVBUWSwKKyAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR1BhcnNlYXR0cmlidXRlOiBhdHRyaWJ1dGUgaGFzIG5vIGNoaWxkcmVuXG4iLAorICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICByZXR1cm4gKHJldCk7CisgICAgfQorICAgIG9sZF9mbGFncyA9IGN0eHQtPmZsYWdzOworICAgIGN0eHQtPmZsYWdzIHw9IFhNTF9SRUxBWE5HX0lOX0FUVFJJQlVURTsKKyAgICBjdXIgPSB4bWxSZWxheE5HUGFyc2VOYW1lQ2xhc3MoY3R4dCwgY2hpbGQsIHJldCk7CisgICAgaWYgKGN1ciAhPSBOVUxMKQorICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKyAgICAgICAgY3VyID0geG1sUmVsYXhOR1BhcnNlUGF0dGVybihjdHh0LCBjaGlsZCk7CisgICAgICAgIGlmIChjdXIgIT0gTlVMTCkgeworICAgICAgICAgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VNUFRZOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTk9UX0FMTE9XRUQ6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19URVhUOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRUxFTUVOVDoKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0RBVEFUWVBFOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfVkFMVUU6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19MSVNUOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUkVGOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUEFSRU5UUkVGOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhURVJOQUxSRUY6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19ERUY6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19PTkVPUk1PUkU6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19aRVJPT1JNT1JFOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfT1BUSU9OQUw6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19DSE9JQ0U6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19HUk9VUDoKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0lOVEVSTEVBVkU6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19BVFRSSUJVVEU6CisgICAgICAgICAgICAgICAgICAgIHJldC0+Y29udGVudCA9IGN1cjsKKyAgICAgICAgICAgICAgICAgICAgY3VyLT5wYXJlbnQgPSByZXQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfU1RBUlQ6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19QQVJBTToKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VYQ0VQVDoKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9BVFRSSUJVVEVfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXR0cmlidXRlIGhhcyBpbnZhbGlkIGNvbnRlbnRcbiIsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTk9PUDoKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9BVFRSSUJVVEVfTk9PUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUk5HIEludGVybmFsIGVycm9yLCBub29wIGZvdW5kIGluIGF0dHJpYnV0ZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9BVFRSSUJVVEVfQ0hJTERSRU4sCisgICAgICAgICAgICAgICAgICAgImF0dHJpYnV0ZSBoYXMgbXVsdGlwbGUgY2hpbGRyZW5cbiIsIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICBjdHh0LT5mbGFncyA9IG9sZF9mbGFnczsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlRXhjZXB0TmFtZUNsYXNzOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAbm9kZTogIHRoZSBleGNlcHQgbm9kZQorICogQGF0dHI6ICAxIGlmIHdpdGhpbiBhbiBhdHRyaWJ1dGUsIDAgaWYgd2l0aGluIGFuIGVsZW1lbnQKKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4TkcgbmFtZUNsYXNzIG5vZGUuCisgKgorICogUmV0dXJucyB0aGUgZGVmaW5pdGlvbiBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbFJlbGF4TkdEZWZpbmVQdHIKK3htbFJlbGF4TkdQYXJzZUV4Y2VwdE5hbWVDbGFzcyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwgaW50IGF0dHIpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciByZXQsIGN1ciwgbGFzdCA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBjaGlsZDsKKworICAgIGlmICghSVNfUkVMQVhORyhub2RlLCAiZXhjZXB0IikpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9FWENFUFRfTUlTU0lORywKKyAgICAgICAgICAgICAgICAgICAiRXhwZWN0aW5nIGFuIGV4Y2VwdCBub2RlXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgaWYgKG5vZGUtPm5leHQgIT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VYQ0VQVF9NVUxUSVBMRSwKKyAgICAgICAgICAgICAgICAgICAiZXhjZXB0TmFtZUNsYXNzIGFsbG93cyBvbmx5IGEgc2luZ2xlIGV4Y2VwdCBub2RlXG4iLAorICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICBpZiAobm9kZS0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VYQ0VQVF9FTVBUWSwgImV4Y2VwdCBoYXMgbm8gY29udGVudFxuIiwKKyAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICByZXQgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIG5vZGUpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfUkVMQVhOR19FWENFUFQ7CisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICB3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworICAgICAgICBjdXIgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIGNoaWxkKTsKKyAgICAgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChhdHRyKQorICAgICAgICAgICAgY3VyLT50eXBlID0gWE1MX1JFTEFYTkdfQVRUUklCVVRFOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjdXItPnR5cGUgPSBYTUxfUkVMQVhOR19FTEVNRU5UOworCisgICAgICAgIGlmICh4bWxSZWxheE5HUGFyc2VOYW1lQ2xhc3MoY3R4dCwgY2hpbGQsIGN1cikgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKGxhc3QgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHJldC0+Y29udGVudCA9IGN1cjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGFzdC0+bmV4dCA9IGN1cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3QgPSBjdXI7CisgICAgICAgIH0KKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlTmFtZUNsYXNzOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAbm9kZTogIHRoZSBuYW1lQ2xhc3Mgbm9kZQorICogQGRlZjogIHRoZSBjdXJyZW50IGRlZmluaXRpb24KKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4TkcgbmFtZUNsYXNzIG5vZGUuCisgKgorICogUmV0dXJucyB0aGUgZGVmaW5pdGlvbiBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbFJlbGF4TkdEZWZpbmVQdHIKK3htbFJlbGF4TkdQYXJzZU5hbWVDbGFzcyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciByZXQsIHRtcDsKKyAgICB4bWxDaGFyICp2YWw7CisKKyAgICByZXQgPSBkZWY7CisgICAgaWYgKChJU19SRUxBWE5HKG5vZGUsICJuYW1lIikpIHx8IChJU19SRUxBWE5HKG5vZGUsICJhbnlOYW1lIikpIHx8CisgICAgICAgIChJU19SRUxBWE5HKG5vZGUsICJuc05hbWUiKSkpIHsKKyAgICAgICAgaWYgKChkZWYtPnR5cGUgIT0gWE1MX1JFTEFYTkdfRUxFTUVOVCkgJiYKKyAgICAgICAgICAgIChkZWYtPnR5cGUgIT0gWE1MX1JFTEFYTkdfQVRUUklCVVRFKSkgeworICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2RlKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICAgICAgcmV0LT5wYXJlbnQgPSBkZWY7CisgICAgICAgICAgICBpZiAoY3R4dC0+ZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9BVFRSSUJVVEUpCisgICAgICAgICAgICAgICAgcmV0LT50eXBlID0gWE1MX1JFTEFYTkdfQVRUUklCVVRFOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldC0+dHlwZSA9IFhNTF9SRUxBWE5HX0VMRU1FTlQ7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKElTX1JFTEFYTkcobm9kZSwgIm5hbWUiKSkgeworICAgICAgICB2YWwgPSB4bWxOb2RlR2V0Q29udGVudChub2RlKTsKKyAgICAgICAgeG1sUmVsYXhOR05vcm1FeHRTcGFjZSh2YWwpOworICAgICAgICBpZiAoeG1sVmFsaWRhdGVOQ05hbWUodmFsLCAwKSkgeworCSAgICBpZiAobm9kZS0+cGFyZW50ICE9IE5VTEwpCisJCXhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfRUxFTUVOVF9OQU1FLAorCQkJICAgIkVsZW1lbnQgJXMgbmFtZSAnJXMnIGlzIG5vdCBhbiBOQ05hbWVcbiIsCisJCQkgICBub2RlLT5wYXJlbnQtPm5hbWUsIHZhbCk7CisJICAgIGVsc2UKKwkJeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9FTEVNRU5UX05BTUUsCisJCQkgICAibmFtZSAnJXMnIGlzIG5vdCBhbiBOQ05hbWVcbiIsCisJCQkgICB2YWwsIE5VTEwpOworICAgICAgICB9CisgICAgICAgIHJldC0+bmFtZSA9IHZhbDsKKyAgICAgICAgdmFsID0geG1sR2V0UHJvcChub2RlLCBCQURfQ0FTVCAibnMiKTsKKyAgICAgICAgcmV0LT5ucyA9IHZhbDsKKyAgICAgICAgaWYgKChjdHh0LT5mbGFncyAmIFhNTF9SRUxBWE5HX0lOX0FUVFJJQlVURSkgJiYKKyAgICAgICAgICAgICh2YWwgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICh4bWxTdHJFcXVhbCh2YWwsIEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zIikpKSB7CisJICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfWE1MX05TLAorICAgICAgICAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZSB3aXRoIG5hbWVzcGFjZSAnJXMnIGlzIG5vdCBhbGxvd2VkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsLCBOVUxMKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGN0eHQtPmZsYWdzICYgWE1MX1JFTEFYTkdfSU5fQVRUUklCVVRFKSAmJgorICAgICAgICAgICAgKHZhbCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHZhbFswXSA9PSAwKSAmJiAoeG1sU3RyRXF1YWwocmV0LT5uYW1lLCBCQURfQ0FTVCAieG1sbnMiKSkpIHsKKwkgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9YTUxOU19OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAiQXR0cmlidXRlIHdpdGggUU5hbWUgJ3htbG5zJyBpcyBub3QgYWxsb3dlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgdmFsLCBOVUxMKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoSVNfUkVMQVhORyhub2RlLCAiYW55TmFtZSIpKSB7CisgICAgICAgIHJldC0+bmFtZSA9IE5VTEw7CisgICAgICAgIHJldC0+bnMgPSBOVUxMOworICAgICAgICBpZiAobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgcmV0LT5uYW1lQ2xhc3MgPQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQYXJzZUV4Y2VwdE5hbWVDbGFzcyhjdHh0LCBub2RlLT5jaGlsZHJlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZi0+dHlwZSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1JFTEFYTkdfQVRUUklCVVRFKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKElTX1JFTEFYTkcobm9kZSwgIm5zTmFtZSIpKSB7CisgICAgICAgIHJldC0+bmFtZSA9IE5VTEw7CisgICAgICAgIHJldC0+bnMgPSB4bWxHZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJucyIpOworICAgICAgICBpZiAocmV0LT5ucyA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX05TTkFNRV9OT19OUywKKyAgICAgICAgICAgICAgICAgICAgICAgIm5zTmFtZSBoYXMgbm8gbnMgYXR0cmlidXRlXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGN0eHQtPmZsYWdzICYgWE1MX1JFTEFYTkdfSU5fQVRUUklCVVRFKSAmJgorICAgICAgICAgICAgKHJldC0+bnMgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICh4bWxTdHJFcXVhbAorICAgICAgICAgICAgIChyZXQtPm5zLCBCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucyIpKSkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9YTUxfTlMsCisgICAgICAgICAgICAgICAgICAgICAgICJBdHRyaWJ1dGUgd2l0aCBuYW1lc3BhY2UgJyVzJyBpcyBub3QgYWxsb3dlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0LT5ucywgTlVMTCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5vZGUtPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHJldC0+bmFtZUNsYXNzID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HUGFyc2VFeGNlcHROYW1lQ2xhc3MoY3R4dCwgbm9kZS0+Y2hpbGRyZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWYtPnR5cGUgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9SRUxBWE5HX0FUVFJJQlVURSkpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGUsICJjaG9pY2UiKSkgeworICAgICAgICB4bWxOb2RlUHRyIGNoaWxkOworICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGxhc3QgPSBOVUxMOworCisgICAgICAgIHJldCA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIHJldC0+cGFyZW50ID0gZGVmOworICAgICAgICByZXQtPnR5cGUgPSBYTUxfUkVMQVhOR19DSE9JQ0U7CisKKyAgICAgICAgaWYgKG5vZGUtPmNoaWxkcmVuID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfQ0hPSUNFX0VNUFRZLAorICAgICAgICAgICAgICAgICAgICAgICAiRWxlbWVudCBjaG9pY2UgaXMgZW1wdHlcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICB9IGVsc2UgeworCisgICAgICAgICAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgICAgICAgICAgd2hpbGUgKGNoaWxkICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HUGFyc2VOYW1lQ2xhc3MoY3R4dCwgY2hpbGQsIHJldCk7CisgICAgICAgICAgICAgICAgaWYgKHRtcCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSByZXQtPm5hbWVDbGFzcyA9IHRtcDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QtPm5leHQgPSB0bXA7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0ID0gdG1wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0NIT0lDRV9DT05URU5ULAorICAgICAgICAgICAgICAgICAgICJleHBlY3RpbmcgbmFtZSwgYW55TmFtZSwgbnNOYW1lIG9yIGNob2ljZSA6IGdvdCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAobm9kZSA9PSBOVUxMID8gKGNvbnN0IHhtbENoYXIgKikgIm5vdGhpbmciIDogbm9kZS0+bmFtZSksCisJCSAgIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpZiAocmV0ICE9IGRlZikgeworICAgICAgICBpZiAoZGVmLT5uYW1lQ2xhc3MgPT0gTlVMTCkgeworICAgICAgICAgICAgZGVmLT5uYW1lQ2xhc3MgPSByZXQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0bXAgPSBkZWYtPm5hbWVDbGFzczsKKyAgICAgICAgICAgIHdoaWxlICh0bXAtPm5leHQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+bmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRtcC0+bmV4dCA9IHJldDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlRWxlbWVudDoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgZWxlbWVudCBub2RlCisgKgorICogcGFyc2UgdGhlIGNvbnRlbnQgb2YgYSBSZWxheE5HIGVsZW1lbnQgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBkZWZpbml0aW9uIHBvaW50ZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sUmVsYXhOR0RlZmluZVB0cgoreG1sUmVsYXhOR1BhcnNlRWxlbWVudCh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciByZXQsIGN1ciwgbGFzdDsKKyAgICB4bWxOb2RlUHRyIGNoaWxkOworICAgIGNvbnN0IHhtbENoYXIgKm9sZGRlZmluZTsKKworICAgIHJldCA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHJldC0+dHlwZSA9IFhNTF9SRUxBWE5HX0VMRU1FTlQ7CisgICAgcmV0LT5wYXJlbnQgPSBjdHh0LT5kZWY7CisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoY2hpbGQgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VMRU1FTlRfRU1QVFksCisgICAgICAgICAgICAgICAgICAgInhtbFJlbGF4TkdQYXJzZUVsZW1lbnQ6IGVsZW1lbnQgaGFzIG5vIGNoaWxkcmVuXG4iLAorICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICByZXR1cm4gKHJldCk7CisgICAgfQorICAgIGN1ciA9IHhtbFJlbGF4TkdQYXJzZU5hbWVDbGFzcyhjdHh0LCBjaGlsZCwgcmV0KTsKKyAgICBpZiAoY3VyICE9IE5VTEwpCisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisKKyAgICBpZiAoY2hpbGQgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VMRU1FTlRfTk9fQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR1BhcnNlRWxlbWVudDogZWxlbWVudCBoYXMgbm8gY29udGVudFxuIiwKKyAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChyZXQpOworICAgIH0KKyAgICBvbGRkZWZpbmUgPSBjdHh0LT5kZWZpbmU7CisgICAgY3R4dC0+ZGVmaW5lID0gTlVMTDsKKyAgICBsYXN0ID0gTlVMTDsKKyAgICB3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworICAgICAgICBjdXIgPSB4bWxSZWxheE5HUGFyc2VQYXR0ZXJuKGN0eHQsIGNoaWxkKTsKKyAgICAgICAgaWYgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgICAgICBjdXItPnBhcmVudCA9IHJldDsKKyAgICAgICAgICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19FTVBUWToKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX05PVF9BTExPV0VEOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfVEVYVDoKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VMRU1FTlQ6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19EQVRBVFlQRToKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1ZBTFVFOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTElTVDoKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1JFRjoKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1BBUkVOVFJFRjoKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VYVEVSTkFMUkVGOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfREVGOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfWkVST09STU9SRToKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09ORU9STU9SRToKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09QVElPTkFMOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfQ0hPSUNFOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfR1JPVVA6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFOgorICAgICAgICAgICAgICAgICAgICBpZiAobGFzdCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXQtPmNvbnRlbnQgPSBsYXN0ID0gY3VyOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChsYXN0LT50eXBlID09IFhNTF9SRUxBWE5HX0VMRU1FTlQpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJldC0+Y29udGVudCA9PSBsYXN0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC0+Y29udGVudCA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldC0+Y29udGVudCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC0+Y29udGVudC0+dHlwZSA9IFhNTF9SRUxBWE5HX0dST1VQOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQtPmNvbnRlbnQtPmNvbnRlbnQgPSBsYXN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC0+Y29udGVudCA9IGxhc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbGFzdC0+bmV4dCA9IGN1cjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19BVFRSSUJVVEU6CisgICAgICAgICAgICAgICAgICAgIGN1ci0+bmV4dCA9IHJldC0+YXR0cnM7CisgICAgICAgICAgICAgICAgICAgIHJldC0+YXR0cnMgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfU1RBUlQ6CisgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfRUxFTUVOVF9DT05URU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSTkcgSW50ZXJuYWwgZXJyb3IsIHN0YXJ0IGZvdW5kIGluIGVsZW1lbnRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUEFSQU06CisgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfRUxFTUVOVF9DT05URU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSTkcgSW50ZXJuYWwgZXJyb3IsIHBhcmFtIGZvdW5kIGluIGVsZW1lbnRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhDRVBUOgorICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VMRU1FTlRfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUk5HIEludGVybmFsIGVycm9yLCBleGNlcHQgZm91bmQgaW4gZWxlbWVudFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19OT09QOgorICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0VMRU1FTlRfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUk5HIEludGVybmFsIGVycm9yLCBub29wIGZvdW5kIGluIGVsZW1lbnRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorICAgIGN0eHQtPmRlZmluZSA9IG9sZGRlZmluZTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlUGF0dGVybnM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlczogIGxpc3Qgb2Ygbm9kZXMKKyAqIEBncm91cDogIHVzZSBhbiBpbXBsaWNpdCA8Z3JvdXA+IGZvciBlbGVtZW50cworICoKKyAqIHBhcnNlIHRoZSBjb250ZW50IG9mIGEgUmVsYXhORyBzdGFydCBub2RlLgorICoKKyAqIFJldHVybnMgdGhlIGRlZmluaXRpb24gcG9pbnRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyB4bWxSZWxheE5HRGVmaW5lUHRyCit4bWxSZWxheE5HUGFyc2VQYXR0ZXJucyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGdyb3VwKQoreworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmID0gTlVMTCwgbGFzdCA9IE5VTEwsIGN1ciwgcGFyZW50OworCisgICAgcGFyZW50ID0gY3R4dC0+ZGVmOworICAgIHdoaWxlIChub2RlcyAhPSBOVUxMKSB7CisgICAgICAgIGlmIChJU19SRUxBWE5HKG5vZGVzLCAiZWxlbWVudCIpKSB7CisgICAgICAgICAgICBjdXIgPSB4bWxSZWxheE5HUGFyc2VFbGVtZW50KGN0eHQsIG5vZGVzKTsKKyAgICAgICAgICAgIGlmIChkZWYgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGRlZiA9IGxhc3QgPSBjdXI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgPT0gMSkgJiYgKGRlZi0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTEVNRU5UKSAmJgorICAgICAgICAgICAgICAgICAgICAoZGVmID09IGxhc3QpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZXMpOworICAgICAgICAgICAgICAgICAgICBkZWYtPnR5cGUgPSBYTUxfUkVMQVhOR19HUk9VUDsKKyAgICAgICAgICAgICAgICAgICAgZGVmLT5jb250ZW50ID0gbGFzdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGFzdC0+bmV4dCA9IGN1cjsKKyAgICAgICAgICAgICAgICBsYXN0ID0gY3VyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VyLT5wYXJlbnQgPSBwYXJlbnQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjdXIgPSB4bWxSZWxheE5HUGFyc2VQYXR0ZXJuKGN0eHQsIG5vZGVzKTsKKyAgICAgICAgICAgIGlmIChjdXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGlmIChkZWYgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBkZWYgPSBsYXN0ID0gY3VyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3QtPm5leHQgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgIGxhc3QgPSBjdXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG5vZGVzID0gbm9kZXMtPm5leHQ7CisgICAgfQorICAgIHJldHVybiAoZGVmKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HUGFyc2VTdGFydDoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGVzOiAgc3RhcnQgY2hpbGRyZW4gbm9kZXMKKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4Tkcgc3RhcnQgbm9kZS4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdQYXJzZVN0YXJ0KHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZXMpCit7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYgPSBOVUxMLCBsYXN0OworCisgICAgaWYgKG5vZGVzID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlcywgWE1MX1JOR1BfU1RBUlRfRU1QVFksICJzdGFydCBoYXMgbm8gY2hpbGRyZW5cbiIsCisgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBpZiAoSVNfUkVMQVhORyhub2RlcywgImVtcHR5IikpIHsKKyAgICAgICAgZGVmID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCBub2Rlcyk7CisgICAgICAgIGlmIChkZWYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICBkZWYtPnR5cGUgPSBYTUxfUkVMQVhOR19FTVBUWTsKKyAgICAgICAgaWYgKG5vZGVzLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGVzLCBYTUxfUk5HUF9FTVBUWV9DT05URU5ULAorICAgICAgICAgICAgICAgICAgICAgICAiZWxlbWVudCBlbXB0eSBpcyBub3QgZW1wdHlcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGVzLCAibm90QWxsb3dlZCIpKSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdOZXdEZWZpbmUoY3R4dCwgbm9kZXMpOworICAgICAgICBpZiAoZGVmID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgZGVmLT50eXBlID0gWE1MX1JFTEFYTkdfTk9UX0FMTE9XRUQ7CisgICAgICAgIGlmIChub2Rlcy0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlcywgWE1MX1JOR1BfTk9UQUxMT1dFRF9OT1RfRU1QVFksCisgICAgICAgICAgICAgICAgICAgICAgICJlbGVtZW50IG5vdEFsbG93ZWQgaXMgbm90IGVtcHR5XG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRlZiA9IHhtbFJlbGF4TkdQYXJzZVBhdHRlcm5zKGN0eHQsIG5vZGVzLCAxKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmdyYW1tYXItPnN0YXJ0ICE9IE5VTEwpIHsKKyAgICAgICAgbGFzdCA9IGN0eHQtPmdyYW1tYXItPnN0YXJ0OworICAgICAgICB3aGlsZSAobGFzdC0+bmV4dCAhPSBOVUxMKQorICAgICAgICAgICAgbGFzdCA9IGxhc3QtPm5leHQ7CisgICAgICAgIGxhc3QtPm5leHQgPSBkZWY7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY3R4dC0+Z3JhbW1hci0+c3RhcnQgPSBkZWY7CisgICAgfQorICAgIG5vZGVzID0gbm9kZXMtPm5leHQ7CisgICAgaWYgKG5vZGVzICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlcywgWE1MX1JOR1BfU1RBUlRfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAic3RhcnQgbW9yZSB0aGFuIG9uZSBjaGlsZHJlblxuIiwgTlVMTCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1BhcnNlR3JhbW1hckNvbnRlbnQ6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlczogIGdyYW1tYXIgY2hpbGRyZW4gbm9kZXMKKyAqCisgKiBwYXJzZSB0aGUgY29udGVudCBvZiBhIFJlbGF4TkcgZ3JhbW1hciBub2RlLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1BhcnNlR3JhbW1hckNvbnRlbnQoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZXMpCit7CisgICAgaW50IHJldCA9IDAsIHRtcDsKKworICAgIGlmIChub2RlcyA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZXMsIFhNTF9STkdQX0dSQU1NQVJfRU1QVFksCisgICAgICAgICAgICAgICAgICAgImdyYW1tYXIgaGFzIG5vIGNoaWxkcmVuXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIHdoaWxlIChub2RlcyAhPSBOVUxMKSB7CisgICAgICAgIGlmIChJU19SRUxBWE5HKG5vZGVzLCAic3RhcnQiKSkgeworICAgICAgICAgICAgaWYgKG5vZGVzLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlcywgWE1MX1JOR1BfU1RBUlRfRU1QVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhcnQgaGFzIG5vIGNoaWxkcmVuXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdG1wID0geG1sUmVsYXhOR1BhcnNlU3RhcnQoY3R4dCwgbm9kZXMtPmNoaWxkcmVuKTsKKyAgICAgICAgICAgICAgICBpZiAodG1wICE9IDApCisgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKElTX1JFTEFYTkcobm9kZXMsICJkZWZpbmUiKSkgeworICAgICAgICAgICAgdG1wID0geG1sUmVsYXhOR1BhcnNlRGVmaW5lKGN0eHQsIG5vZGVzKTsKKyAgICAgICAgICAgIGlmICh0bXAgIT0gMCkKKyAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgfSBlbHNlIGlmIChJU19SRUxBWE5HKG5vZGVzLCAiaW5jbHVkZSIpKSB7CisgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HUGFyc2VJbmNsdWRlKGN0eHQsIG5vZGVzKTsKKyAgICAgICAgICAgIGlmICh0bXAgIT0gMCkKKyAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZXMsIFhNTF9STkdQX0dSQU1NQVJfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgImdyYW1tYXIgaGFzIHVuZXhwZWN0ZWQgY2hpbGQgJXNcbiIsIG5vZGVzLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICB9CisgICAgICAgIG5vZGVzID0gbm9kZXMtPm5leHQ7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HQ2hlY2tSZWZlcmVuY2U6CisgKiBAcmVmOiAgdGhlIHJlZgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBuYW1lIGFzc29jaWF0ZWQgdG8gdGhlIGRlZmluZXMKKyAqCisgKiBBcHBsaWVzIHRoZSA0LjE3LiBjb21iaW5lIGF0dHJpYnV0ZSBydWxlIGZvciBhbGwgdGhlIGRlZmluZQorICogZWxlbWVudCBvZiBhIGdpdmVuIGdyYW1tYXIgdXNpbmcgdGhlIHNhbWUgbmFtZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdDaGVja1JlZmVyZW5jZSh4bWxSZWxheE5HRGVmaW5lUHRyIHJlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lKQoreworICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIGdyYW1tYXI7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWYsIGN1cjsKKworICAgIC8qCisgICAgICogVGhvc2UgcnVsZXMgZG9uJ3QgYXBwbHkgdG8gaW1wb3J0ZWQgcmVmIGZyb20geG1sUmVsYXhOR1BhcnNlSW1wb3J0UmVmCisgICAgICovCisgICAgaWYgKHJlZi0+ZGZsYWdzICYgSVNfRVhURVJOQUxfUkVGKQorICAgICAgICByZXR1cm47CisKKyAgICBncmFtbWFyID0gY3R4dC0+Z3JhbW1hcjsKKyAgICBpZiAoZ3JhbW1hciA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgcmVmLT5ub2RlLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvcjogbm8gZ3JhbW1hciBpbiBDaGVja1JlZmVyZW5jZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICBuYW1lLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocmVmLT5jb250ZW50ICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCByZWYtPm5vZGUsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgIkludGVybmFsIGVycm9yOiByZWZlcmVuY2UgaGFzIGNvbnRlbnQgaW4gQ2hlY2tSZWZlcmVuY2UgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgbmFtZSwgTlVMTCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGdyYW1tYXItPmRlZnMgIT0gTlVMTCkgeworICAgICAgICBkZWYgPSB4bWxIYXNoTG9va3VwKGdyYW1tYXItPmRlZnMsIG5hbWUpOworICAgICAgICBpZiAoZGVmICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGN1ciA9IHJlZjsKKyAgICAgICAgICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGN1ci0+Y29udGVudCA9IGRlZjsKKyAgICAgICAgICAgICAgICBjdXIgPSBjdXItPm5leHRIYXNoOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCByZWYtPm5vZGUsIFhNTF9STkdQX1JFRl9OT19ERUYsCisgICAgICAgICAgICAgICAgICAgICAgICJSZWZlcmVuY2UgJXMgaGFzIG5vIG1hdGNoaW5nIGRlZmluaXRpb25cbiIsIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCByZWYtPm5vZGUsIFhNTF9STkdQX1JFRl9OT19ERUYsCisgICAgICAgICAgICAgICAgICAgIlJlZmVyZW5jZSAlcyBoYXMgbm8gbWF0Y2hpbmcgZGVmaW5pdGlvblxuIiwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0NoZWNrQ29tYmluZToKKyAqIEBkZWZpbmU6ICB0aGUgZGVmaW5lKHMpIGxpc3QKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgbmFtZSBhc3NvY2lhdGVkIHRvIHRoZSBkZWZpbmVzCisgKgorICogQXBwbGllcyB0aGUgNC4xNy4gY29tYmluZSBhdHRyaWJ1dGUgcnVsZSBmb3IgYWxsIHRoZSBkZWZpbmUKKyAqIGVsZW1lbnQgb2YgYSBnaXZlbiBncmFtbWFyIHVzaW5nIHRoZSBzYW1lIG5hbWUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HQ2hlY2tDb21iaW5lKHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lLAorICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICogbmFtZSkKK3sKKyAgICB4bWxDaGFyICpjb21iaW5lOworICAgIGludCBjaG9pY2VPckludGVybGVhdmUgPSAtMTsKKyAgICBpbnQgbWlzc2luZyA9IDA7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBjdXIsIGxhc3QsIHRtcCwgdG1wMjsKKworICAgIGlmIChkZWZpbmUtPm5leHRIYXNoID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdXIgPSBkZWZpbmU7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGNvbWJpbmUgPSB4bWxHZXRQcm9wKGN1ci0+bm9kZSwgQkFEX0NBU1QgImNvbWJpbmUiKTsKKyAgICAgICAgaWYgKGNvbWJpbmUgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKHhtbFN0ckVxdWFsKGNvbWJpbmUsIEJBRF9DQVNUICJjaG9pY2UiKSkgeworICAgICAgICAgICAgICAgIGlmIChjaG9pY2VPckludGVybGVhdmUgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIGNob2ljZU9ySW50ZXJsZWF2ZSA9IDE7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hvaWNlT3JJbnRlcmxlYXZlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBkZWZpbmUtPm5vZGUsIFhNTF9STkdQX0RFRl9DSE9JQ0VfQU5EX0lOVEVSTEVBVkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlZmluZXMgZm9yICVzIHVzZSBib3RoICdjaG9pY2UnIGFuZCAnaW50ZXJsZWF2ZSdcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgTlVMTCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjb21iaW5lLCBCQURfQ0FTVCAiaW50ZXJsZWF2ZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlT3JJbnRlcmxlYXZlID0gMDsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjaG9pY2VPckludGVybGVhdmUgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGRlZmluZS0+bm9kZSwgWE1MX1JOR1BfREVGX0NIT0lDRV9BTkRfSU5URVJMRUFWRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVmaW5lcyBmb3IgJXMgdXNlIGJvdGggJ2Nob2ljZScgYW5kICdpbnRlcmxlYXZlJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLCBOVUxMKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgZGVmaW5lLT5ub2RlLCBYTUxfUk5HUF9VTktOT1dOX0NPTUJJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVmaW5lcyBmb3IgJXMgdXNlIHVua25vd24gY29tYmluZSB2YWx1ZSAnJXMnJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIGNvbWJpbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeG1sRnJlZShjb21iaW5lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtaXNzaW5nID09IDApCisgICAgICAgICAgICAgICAgbWlzc2luZyA9IDE7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGRlZmluZS0+bm9kZSwgWE1MX1JOR1BfTkVFRF9DT01CSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNvbWUgZGVmaW5lcyBmb3IgJXMgbmVlZHMgdGhlIGNvbWJpbmUgYXR0cmlidXRlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjdXIgPSBjdXItPm5leHRIYXNoOworICAgIH0KKyNpZmRlZiBERUJVRworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR0NoZWNrQ29tYmluZSgpOiBtZXJnaW5nICVzIGRlZmluZXM6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICBuYW1lLCBjaG9pY2VPckludGVybGVhdmUpOworI2VuZGlmCisgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAtMSkKKyAgICAgICAgY2hvaWNlT3JJbnRlcmxlYXZlID0gMDsKKyAgICBjdXIgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIGRlZmluZS0+bm9kZSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAwKQorICAgICAgICBjdXItPnR5cGUgPSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFOworICAgIGVsc2UKKyAgICAgICAgY3VyLT50eXBlID0gWE1MX1JFTEFYTkdfQ0hPSUNFOworICAgIHRtcCA9IGRlZmluZTsKKyAgICBsYXN0ID0gTlVMTDsKKyAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHRtcC0+Y29udGVudCAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAodG1wLT5jb250ZW50LT5uZXh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIHdlIG5lZWQgZmlyc3QgdG8gY3JlYXRlIGEgd3JhcHBlci4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB0bXAyID0geG1sUmVsYXhOR05ld0RlZmluZShjdHh0LCB0bXAtPmNvbnRlbnQtPm5vZGUpOworICAgICAgICAgICAgICAgIGlmICh0bXAyID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHRtcDItPnR5cGUgPSBYTUxfUkVMQVhOR19HUk9VUDsKKyAgICAgICAgICAgICAgICB0bXAyLT5jb250ZW50ID0gdG1wLT5jb250ZW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0bXAyID0gdG1wLT5jb250ZW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxhc3QgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGN1ci0+Y29udGVudCA9IHRtcDI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxhc3QtPm5leHQgPSB0bXAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdCA9IHRtcDI7CisgICAgICAgIH0KKyAgICAgICAgdG1wLT5jb250ZW50ID0gY3VyOworICAgICAgICB0bXAgPSB0bXAtPm5leHRIYXNoOworICAgIH0KKyAgICBkZWZpbmUtPmNvbnRlbnQgPSBjdXI7CisgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAwKSB7CisgICAgICAgIGlmIChjdHh0LT5pbnRlcmxlYXZlcyA9PSBOVUxMKQorICAgICAgICAgICAgY3R4dC0+aW50ZXJsZWF2ZXMgPSB4bWxIYXNoQ3JlYXRlKDEwKTsKKyAgICAgICAgaWYgKGN0eHQtPmludGVybGVhdmVzID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgZGVmaW5lLT5ub2RlLCBYTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQsCisgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRlIGludGVybGVhdmVzIGhhc2ggdGFibGVcbiIsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2hhciB0bXBuYW1lWzMyXTsKKworICAgICAgICAgICAgc25wcmludGYodG1wbmFtZSwgMzIsICJpbnRlcmxlYXZlJWQiLCBjdHh0LT5uYkludGVybGVhdmVzKyspOworICAgICAgICAgICAgaWYgKHhtbEhhc2hBZGRFbnRyeShjdHh0LT5pbnRlcmxlYXZlcywgQkFEX0NBU1QgdG1wbmFtZSwgY3VyKSA8CisgICAgICAgICAgICAgICAgMCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgZGVmaW5lLT5ub2RlLCBYTUxfUk5HUF9JTlRFUkxFQVZFX0NSRUFURV9GQUlMRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGFkZCAlcyB0byBoYXNoIHRhYmxlXG4iLAorCQkJICAgKGNvbnN0IHhtbENoYXIgKikgdG1wbmFtZSwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0NvbWJpbmVTdGFydDoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQGdyYW1tYXI6ICB0aGUgZ3JhbW1hcgorICoKKyAqIEFwcGxpZXMgdGhlIDQuMTcuIGNvbWJpbmUgcnVsZSBmb3IgYWxsIHRoZSBzdGFydAorICogZWxlbWVudCBvZiBhIGdpdmVuIGdyYW1tYXIuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HQ29tYmluZVN0YXJ0KHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIGdyYW1tYXIpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBzdGFydHM7CisgICAgeG1sQ2hhciAqY29tYmluZTsKKyAgICBpbnQgY2hvaWNlT3JJbnRlcmxlYXZlID0gLTE7CisgICAgaW50IG1pc3NpbmcgPSAwOworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgY3VyOworCisgICAgc3RhcnRzID0gZ3JhbW1hci0+c3RhcnQ7CisgICAgaWYgKChzdGFydHMgPT0gTlVMTCkgfHwgKHN0YXJ0cy0+bmV4dCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuOworICAgIGN1ciA9IHN0YXJ0czsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChjdXItPm5vZGUgPT0gTlVMTCkgfHwgKGN1ci0+bm9kZS0+cGFyZW50ID09IE5VTEwpIHx8CisgICAgICAgICAgICAoIXhtbFN0ckVxdWFsKGN1ci0+bm9kZS0+cGFyZW50LT5uYW1lLCBCQURfQ0FTVCAic3RhcnQiKSkpIHsKKyAgICAgICAgICAgIGNvbWJpbmUgPSBOVUxMOworICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1NUQVJUX01JU1NJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvcjogc3RhcnQgZWxlbWVudCBub3QgZm91bmRcbiIsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY29tYmluZSA9IHhtbEdldFByb3AoY3VyLT5ub2RlLT5wYXJlbnQsIEJBRF9DQVNUICJjb21iaW5lIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29tYmluZSAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoeG1sU3RyRXF1YWwoY29tYmluZSwgQkFEX0NBU1QgImNob2ljZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlT3JJbnRlcmxlYXZlID0gMTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjaG9pY2VPckludGVybGVhdmUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfU1RBUlRfQ0hPSUNFX0FORF9JTlRFUkxFQVZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8c3RhcnQ+IHVzZSBib3RoICdjaG9pY2UnIGFuZCAnaW50ZXJsZWF2ZSdcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjb21iaW5lLCBCQURfQ0FTVCAiaW50ZXJsZWF2ZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlT3JJbnRlcmxlYXZlID0gMDsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjaG9pY2VPckludGVybGVhdmUgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfU1RBUlRfQ0hPSUNFX0FORF9JTlRFUkxFQVZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8c3RhcnQ+IHVzZSBib3RoICdjaG9pY2UnIGFuZCAnaW50ZXJsZWF2ZSdcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfVU5LTk9XTl9DT01CSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxzdGFydD4gdXNlcyB1bmtub3duIGNvbWJpbmUgdmFsdWUgJyVzJydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhtbEZyZWUoY29tYmluZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobWlzc2luZyA9PSAwKQorICAgICAgICAgICAgICAgIG1pc3NpbmcgPSAxOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX05FRURfQ09NQklORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb21lIDxzdGFydD4gZWxlbWVudCBtaXNzIHRoZSBjb21iaW5lIGF0dHJpYnV0ZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyNpZmRlZiBERUJVRworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR0NvbWJpbmVTdGFydCgpOiBtZXJnaW5nIDxzdGFydD46ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICBjaG9pY2VPckludGVybGVhdmUpOworI2VuZGlmCisgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAtMSkKKyAgICAgICAgY2hvaWNlT3JJbnRlcmxlYXZlID0gMDsKKyAgICBjdXIgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIHN0YXJ0cy0+bm9kZSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGNob2ljZU9ySW50ZXJsZWF2ZSA9PSAwKQorICAgICAgICBjdXItPnR5cGUgPSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFOworICAgIGVsc2UKKyAgICAgICAgY3VyLT50eXBlID0gWE1MX1JFTEFYTkdfQ0hPSUNFOworICAgIGN1ci0+Y29udGVudCA9IGdyYW1tYXItPnN0YXJ0OworICAgIGdyYW1tYXItPnN0YXJ0ID0gY3VyOworICAgIGlmIChjaG9pY2VPckludGVybGVhdmUgPT0gMCkgeworICAgICAgICBpZiAoY3R4dC0+aW50ZXJsZWF2ZXMgPT0gTlVMTCkKKyAgICAgICAgICAgIGN0eHQtPmludGVybGVhdmVzID0geG1sSGFzaENyZWF0ZSgxMCk7CisgICAgICAgIGlmIChjdHh0LT5pbnRlcmxlYXZlcyA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfSU5URVJMRUFWRV9DUkVBVEVfRkFJTEVELAorICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBpbnRlcmxlYXZlcyBoYXNoIHRhYmxlXG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNoYXIgdG1wbmFtZVszMl07CisKKyAgICAgICAgICAgIHNucHJpbnRmKHRtcG5hbWUsIDMyLCAiaW50ZXJsZWF2ZSVkIiwgY3R4dC0+bmJJbnRlcmxlYXZlcysrKTsKKyAgICAgICAgICAgIGlmICh4bWxIYXNoQWRkRW50cnkoY3R4dC0+aW50ZXJsZWF2ZXMsIEJBRF9DQVNUIHRtcG5hbWUsIGN1cikgPAorICAgICAgICAgICAgICAgIDApIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfSU5URVJMRUFWRV9DUkVBVEVfRkFJTEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBhZGQgJXMgdG8gaGFzaCB0YWJsZVxuIiwKKwkJCSAgIChjb25zdCB4bWxDaGFyICopIHRtcG5hbWUsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIHhtbFJlbGF4TkdDaGVja0N5Y2xlczoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGVzOiAgZ3JhbW1hciBjaGlsZHJlbiBub2RlcworICogQGRlcHRoOiAgdGhlIGNvdW50ZXIKKyAqCisgKiBDaGVjayBmb3IgY3ljbGVzLgorICoKKyAqIFJldHVybnMgMCBpZiBjaGVjayBwYXNzZWQsIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdDaGVja0N5Y2xlcyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgY3VyLCBpbnQgZGVwdGgpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICB3aGlsZSAoKHJldCA9PSAwKSAmJiAoY3VyICE9IE5VTEwpKSB7CisgICAgICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX1JFRikgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfUEFSRU5UUkVGKSkgeworICAgICAgICAgICAgaWYgKGN1ci0+ZGVwdGggPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBjdXItPmRlcHRoID0gZGVwdGg7CisgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR0NoZWNrQ3ljbGVzKGN0eHQsIGN1ci0+Y29udGVudCwgZGVwdGgpOworICAgICAgICAgICAgICAgIGN1ci0+ZGVwdGggPSAtMjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVwdGggPT0gY3VyLT5kZXB0aCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9SRUZfQ1lDTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGV0ZWN0ZWQgYSBjeWNsZSBpbiAlcyByZWZlcmVuY2VzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5uYW1lLCBOVUxMKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfRUxFTUVOVCkgeworICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR0NoZWNrQ3ljbGVzKGN0eHQsIGN1ci0+Y29udGVudCwgZGVwdGggKyAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdDaGVja0N5Y2xlcyhjdHh0LCBjdXItPmNvbnRlbnQsIGRlcHRoKTsKKyAgICAgICAgfQorICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVHJ5VW5saW5rOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgdGhlIGRlZmluaXRpb24gdG8gdW5saW5rCisgKiBAcGFyZW50OiAgdGhlIHBhcmVudCBkZWZpbml0aW9uCisgKiBAcHJldjogIHRoZSBwcmV2aW91cyBzaWJsaW5nIGRlZmluaXRpb24KKyAqCisgKiBUcnkgdG8gdW5saW5rIGEgZGVmaW5pdGlvbi4gSWYgbm90IHBvc3NibGUgbWFrZSBpdCBhIE5PT1AKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcHJldiBkZWZpbml0aW9uCisgKi8KK3N0YXRpYyB4bWxSZWxheE5HRGVmaW5lUHRyCit4bWxSZWxheE5HVHJ5VW5saW5rKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBjdXIsCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgcGFyZW50LCB4bWxSZWxheE5HRGVmaW5lUHRyIHByZXYpCit7CisgICAgaWYgKHByZXYgIT0gTlVMTCkgeworICAgICAgICBwcmV2LT5uZXh0ID0gY3VyLT5uZXh0OworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChwYXJlbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKHBhcmVudC0+Y29udGVudCA9PSBjdXIpCisgICAgICAgICAgICAgICAgcGFyZW50LT5jb250ZW50ID0gY3VyLT5uZXh0OworICAgICAgICAgICAgZWxzZSBpZiAocGFyZW50LT5hdHRycyA9PSBjdXIpCisgICAgICAgICAgICAgICAgcGFyZW50LT5hdHRycyA9IGN1ci0+bmV4dDsKKyAgICAgICAgICAgIGVsc2UgaWYgKHBhcmVudC0+bmFtZUNsYXNzID09IGN1cikKKyAgICAgICAgICAgICAgICBwYXJlbnQtPm5hbWVDbGFzcyA9IGN1ci0+bmV4dDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGN1ci0+dHlwZSA9IFhNTF9SRUxBWE5HX05PT1A7CisgICAgICAgICAgICBwcmV2ID0gY3VyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAocHJldik7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1NpbXBsaWZ5OgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAbm9kZXM6ICBncmFtbWFyIGNoaWxkcmVuIG5vZGVzCisgKgorICogQ2hlY2sgZm9yIHNpbXBsaWZpY2F0aW9uIG9mIGVtcHR5IGFuZCBub3RBbGxvd2VkCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HU2ltcGxpZnkoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGN1ciwgeG1sUmVsYXhOR0RlZmluZVB0ciBwYXJlbnQpCit7CisgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBwcmV2ID0gTlVMTDsKKworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19SRUYpIHx8CisgICAgICAgICAgICAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX1BBUkVOVFJFRikpIHsKKyAgICAgICAgICAgIGlmIChjdXItPmRlcHRoICE9IC0zKSB7CisgICAgICAgICAgICAgICAgY3VyLT5kZXB0aCA9IC0zOworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdTaW1wbGlmeShjdHh0LCBjdXItPmNvbnRlbnQsIGN1cik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX05PVF9BTExPV0VEKSB7CisgICAgICAgICAgICBjdXItPnBhcmVudCA9IHBhcmVudDsKKyAgICAgICAgICAgIGlmICgocGFyZW50ICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgKChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfQVRUUklCVVRFKSB8fAorICAgICAgICAgICAgICAgICAocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX0xJU1QpIHx8CisgICAgICAgICAgICAgICAgIChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfR1JPVVApIHx8CisgICAgICAgICAgICAgICAgIChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfSU5URVJMRUFWRSkgfHwKKyAgICAgICAgICAgICAgICAgKHBhcmVudC0+dHlwZSA9PSBYTUxfUkVMQVhOR19PTkVPUk1PUkUpIHx8CisgICAgICAgICAgICAgICAgIChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfWkVST09STU9SRSkpKSB7CisgICAgICAgICAgICAgICAgcGFyZW50LT50eXBlID0gWE1MX1JFTEFYTkdfTk9UX0FMTE9XRUQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKHBhcmVudCAhPSBOVUxMKSAmJiAocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX0NIT0lDRSkpIHsKKyAgICAgICAgICAgICAgICBwcmV2ID0geG1sUmVsYXhOR1RyeVVubGluayhjdHh0LCBjdXIsIHBhcmVudCwgcHJldik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBwcmV2ID0gY3VyOworICAgICAgICB9IGVsc2UgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTVBUWSkgeworICAgICAgICAgICAgY3VyLT5wYXJlbnQgPSBwYXJlbnQ7CisgICAgICAgICAgICBpZiAoKHBhcmVudCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICgocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX09ORU9STU9SRSkgfHwKKyAgICAgICAgICAgICAgICAgKHBhcmVudC0+dHlwZSA9PSBYTUxfUkVMQVhOR19aRVJPT1JNT1JFKSkpIHsKKyAgICAgICAgICAgICAgICBwYXJlbnQtPnR5cGUgPSBYTUxfUkVMQVhOR19FTVBUWTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgocGFyZW50ICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgKChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfR1JPVVApIHx8CisgICAgICAgICAgICAgICAgIChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfSU5URVJMRUFWRSkpKSB7CisgICAgICAgICAgICAgICAgcHJldiA9IHhtbFJlbGF4TkdUcnlVbmxpbmsoY3R4dCwgY3VyLCBwYXJlbnQsIHByZXYpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcHJldiA9IGN1cjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGN1ci0+cGFyZW50ID0gcGFyZW50OworICAgICAgICAgICAgaWYgKGN1ci0+Y29udGVudCAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdTaW1wbGlmeShjdHh0LCBjdXItPmNvbnRlbnQsIGN1cik7CisgICAgICAgICAgICBpZiAoKGN1ci0+dHlwZSAhPSBYTUxfUkVMQVhOR19WQUxVRSkgJiYgKGN1ci0+YXR0cnMgIT0gTlVMTCkpCisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1NpbXBsaWZ5KGN0eHQsIGN1ci0+YXR0cnMsIGN1cik7CisgICAgICAgICAgICBpZiAoY3VyLT5uYW1lQ2xhc3MgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HU2ltcGxpZnkoY3R4dCwgY3VyLT5uYW1lQ2xhc3MsIGN1cik7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogT24gRWxlbWVudHMsIHRyeSB0byBtb3ZlIGF0dHJpYnV0ZSBvbmx5IGdlbmVyYXRpbmcgcnVsZXMgb24KKyAgICAgICAgICAgICAqIHRoZSBhdHRycyBydWxlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTEVNRU5UKSB7CisgICAgICAgICAgICAgICAgaW50IGF0dHJvbmx5OworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgdG1wLCBwcmU7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoY3VyLT5jb250ZW50ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgYXR0cm9ubHkgPQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0dlbmVyYXRlQXR0cmlidXRlcyhjdHh0LCBjdXItPmNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cm9ubHkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIG1pZ3JhdGUgY3VyLT5jb250ZW50IHRvIGF0dHJzCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IGN1ci0+Y29udGVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1ci0+Y29udGVudCA9IHRtcC0+bmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcC0+bmV4dCA9IGN1ci0+YXR0cnM7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXItPmF0dHJzID0gdG1wOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGN1ci0+Y29udGVudCBjYW4gZ2VuZXJhdGUgZWxlbWVudHMgb3IgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmUgPSBjdXItPmNvbnRlbnQ7CisgICAgICAgICAgICAgICAgd2hpbGUgKChwcmUgIT0gTlVMTCkgJiYgKHByZS0+bmV4dCAhPSBOVUxMKSkgeworICAgICAgICAgICAgICAgICAgICB0bXAgPSBwcmUtPm5leHQ7CisgICAgICAgICAgICAgICAgICAgIGF0dHJvbmx5ID0geG1sUmVsYXhOR0dlbmVyYXRlQXR0cmlidXRlcyhjdHh0LCB0bXApOworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cm9ubHkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIG1pZ3JhdGUgdG1wIHRvIGF0dHJzCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHByZS0+bmV4dCA9IHRtcC0+bmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcC0+bmV4dCA9IGN1ci0+YXR0cnM7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXItPmF0dHJzID0gdG1wOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJlID0gdG1wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFRoaXMgbWF5IHJlc3VsdCBpbiBhIHNpbXBsaWZpY2F0aW9uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX0dST1VQKSB8fAorICAgICAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfSU5URVJMRUFWRSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VyLT5jb250ZW50ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGN1ci0+dHlwZSA9IFhNTF9SRUxBWE5HX0VNUFRZOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1ci0+Y29udGVudC0+bmV4dCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgocGFyZW50ID09IE5VTEwpICYmIChwcmV2ID09IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXItPnR5cGUgPSBYTUxfUkVMQVhOR19OT09QOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXYgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LT5jb250ZW50ID0gY3VyLT5jb250ZW50OworICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5jb250ZW50LT5uZXh0ID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgY3VyID0gY3VyLT5jb250ZW50OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5jb250ZW50LT5uZXh0ID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgcHJldi0+bmV4dCA9IGN1ci0+Y29udGVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1ciA9IGN1ci0+Y29udGVudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiB0aGUgY3VycmVudCBub2RlIG1heSBoYXZlIGJlZW4gdHJhbnNmb3JtZWQgYmFjaworICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FWENFUFQpICYmCisgICAgICAgICAgICAgICAgKGN1ci0+Y29udGVudCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgIChjdXItPmNvbnRlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfTk9UX0FMTE9XRUQpKSB7CisgICAgICAgICAgICAgICAgcHJldiA9IHhtbFJlbGF4TkdUcnlVbmxpbmsoY3R4dCwgY3VyLCBwYXJlbnQsIHByZXYpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfTk9UX0FMTE9XRUQpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHBhcmVudCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAoKHBhcmVudC0+dHlwZSA9PSBYTUxfUkVMQVhOR19BVFRSSUJVVEUpIHx8CisgICAgICAgICAgICAgICAgICAgICAocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX0xJU1QpIHx8CisgICAgICAgICAgICAgICAgICAgICAocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX0dST1VQKSB8fAorICAgICAgICAgICAgICAgICAgICAgKHBhcmVudC0+dHlwZSA9PSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFKSB8fAorICAgICAgICAgICAgICAgICAgICAgKHBhcmVudC0+dHlwZSA9PSBYTUxfUkVMQVhOR19PTkVPUk1PUkUpIHx8CisgICAgICAgICAgICAgICAgICAgICAocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX1pFUk9PUk1PUkUpKSkgeworICAgICAgICAgICAgICAgICAgICBwYXJlbnQtPnR5cGUgPSBYTUxfUkVMQVhOR19OT1RfQUxMT1dFRDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgocGFyZW50ICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgIChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfQ0hPSUNFKSkgeworICAgICAgICAgICAgICAgICAgICBwcmV2ID0geG1sUmVsYXhOR1RyeVVubGluayhjdHh0LCBjdXIsIHBhcmVudCwgcHJldik7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHByZXYgPSBjdXI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTVBUWSkgeworICAgICAgICAgICAgICAgIGlmICgocGFyZW50ICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICgocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX09ORU9STU9SRSkgfHwKKyAgICAgICAgICAgICAgICAgICAgIChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfWkVST09STU9SRSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudC0+dHlwZSA9IFhNTF9SRUxBWE5HX0VNUFRZOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChwYXJlbnQgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKChwYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfR1JPVVApIHx8CisgICAgICAgICAgICAgICAgICAgICAocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX0lOVEVSTEVBVkUpIHx8CisgICAgICAgICAgICAgICAgICAgICAocGFyZW50LT50eXBlID09IFhNTF9SRUxBWE5HX0NIT0lDRSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXYgPSB4bWxSZWxheE5HVHJ5VW5saW5rKGN0eHQsIGN1ciwgcGFyZW50LCBwcmV2KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcHJldiA9IGN1cjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJldiA9IGN1cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFJlbGF4TkdHcm91cENvbnRlbnRUeXBlOgorICogQGN0MTogIHRoZSBmaXJzdCBjb250ZW50IHR5cGUKKyAqIEBjdDI6ICB0aGUgc2Vjb25kIGNvbnRlbnQgdHlwZQorICoKKyAqIFRyeSB0byBncm91cCAyIGNvbnRlbnQgdHlwZXMKKyAqCisgKiBSZXR1cm5zIHRoZSBjb250ZW50IHR5cGUKKyAqLworc3RhdGljIHhtbFJlbGF4TkdDb250ZW50VHlwZQoreG1sUmVsYXhOR0dyb3VwQ29udGVudFR5cGUoeG1sUmVsYXhOR0NvbnRlbnRUeXBlIGN0MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDb250ZW50VHlwZSBjdDIpCit7CisgICAgaWYgKChjdDEgPT0gWE1MX1JFTEFYTkdfQ09OVEVOVF9FUlJPUikgfHwKKyAgICAgICAgKGN0MiA9PSBYTUxfUkVMQVhOR19DT05URU5UX0VSUk9SKSkKKyAgICAgICAgcmV0dXJuIChYTUxfUkVMQVhOR19DT05URU5UX0VSUk9SKTsKKyAgICBpZiAoY3QxID09IFhNTF9SRUxBWE5HX0NPTlRFTlRfRU1QVFkpCisgICAgICAgIHJldHVybiAoY3QyKTsKKyAgICBpZiAoY3QyID09IFhNTF9SRUxBWE5HX0NPTlRFTlRfRU1QVFkpCisgICAgICAgIHJldHVybiAoY3QxKTsKKyAgICBpZiAoKGN0MSA9PSBYTUxfUkVMQVhOR19DT05URU5UX0NPTVBMRVgpICYmCisgICAgICAgIChjdDIgPT0gWE1MX1JFTEFYTkdfQ09OVEVOVF9DT01QTEVYKSkKKyAgICAgICAgcmV0dXJuIChYTUxfUkVMQVhOR19DT05URU5UX0NPTVBMRVgpOworICAgIHJldHVybiAoWE1MX1JFTEFYTkdfQ09OVEVOVF9FUlJPUik7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR01heENvbnRlbnRUeXBlOgorICogQGN0MTogIHRoZSBmaXJzdCBjb250ZW50IHR5cGUKKyAqIEBjdDI6ICB0aGUgc2Vjb25kIGNvbnRlbnQgdHlwZQorICoKKyAqIENvbXB1dGUgdGhlIG1heCBjb250ZW50LXR5cGUKKyAqCisgKiBSZXR1cm5zIHRoZSBjb250ZW50IHR5cGUKKyAqLworc3RhdGljIHhtbFJlbGF4TkdDb250ZW50VHlwZQoreG1sUmVsYXhOR01heENvbnRlbnRUeXBlKHhtbFJlbGF4TkdDb250ZW50VHlwZSBjdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0NvbnRlbnRUeXBlIGN0MikKK3sKKyAgICBpZiAoKGN0MSA9PSBYTUxfUkVMQVhOR19DT05URU5UX0VSUk9SKSB8fAorICAgICAgICAoY3QyID09IFhNTF9SRUxBWE5HX0NPTlRFTlRfRVJST1IpKQorICAgICAgICByZXR1cm4gKFhNTF9SRUxBWE5HX0NPTlRFTlRfRVJST1IpOworICAgIGlmICgoY3QxID09IFhNTF9SRUxBWE5HX0NPTlRFTlRfU0lNUExFKSB8fAorICAgICAgICAoY3QyID09IFhNTF9SRUxBWE5HX0NPTlRFTlRfU0lNUExFKSkKKyAgICAgICAgcmV0dXJuIChYTUxfUkVMQVhOR19DT05URU5UX1NJTVBMRSk7CisgICAgaWYgKChjdDEgPT0gWE1MX1JFTEFYTkdfQ09OVEVOVF9DT01QTEVYKSB8fAorICAgICAgICAoY3QyID09IFhNTF9SRUxBWE5HX0NPTlRFTlRfQ09NUExFWCkpCisgICAgICAgIHJldHVybiAoWE1MX1JFTEFYTkdfQ09OVEVOVF9DT01QTEVYKTsKKyAgICByZXR1cm4gKFhNTF9SRUxBWE5HX0NPTlRFTlRfRU1QVFkpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdDaGVja1J1bGVzOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgZGVmaW5pdGlvbgorICogQGZsYWdzOiAgc29tZSBhY2N1bXVsYXRlZCBmbGFncworICogQHB0eXBlOiAgdGhlIHBhcmVudCB0eXBlCisgKgorICogQ2hlY2sgZm9yIHJ1bGVzIGluIHNlY3Rpb24gNy4xIGFuZCA3LjIKKyAqCisgKiBSZXR1cm5zIHRoZSBjb250ZW50IHR5cGUgb2YgQGN1cgorICovCitzdGF0aWMgeG1sUmVsYXhOR0NvbnRlbnRUeXBlCit4bWxSZWxheE5HQ2hlY2tSdWxlcyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBjdXIsIGludCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdUeXBlIHB0eXBlKQoreworICAgIGludCBuZmxhZ3M7CisgICAgeG1sUmVsYXhOR0NvbnRlbnRUeXBlIHJldCwgdG1wLCB2YWwgPSBYTUxfUkVMQVhOR19DT05URU5UX0VNUFRZOworCisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IFhNTF9SRUxBWE5HX0NPTlRFTlRfRU1QVFk7CisgICAgICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX1JFRikgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfUEFSRU5UUkVGKSkgeworICAgICAgICAgICAvKgorICAgICAgICAgICAgKiBUaGlzIHNob3VsZCBhY3R1YWxseSBiZSBjYXVnaHQgYnkgbGlzdC8vZWxlbWVudChyZWYpIGF0IHRoZQorICAgICAgICAgICAgKiBlbGVtZW50IGJvdW5kYXJpZXMsIGMuZi4gQnVnICMxNTk5NjggbG9jYWwgcmVmcyBhcmUgZHJvcHBlZAorICAgICAgICAgICAgKiBpbiBzdGVwIDQuMTkuCisgICAgICAgICAgICAqLworI2lmIDAKKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX0xJU1QpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX0xJU1RfUkVGLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIGxpc3QvL3JlZlxuIiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9EQVRBRVhDRVBUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9SRUYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gZGF0YS9leGNlcHQvL3JlZlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1ci0+Y29udGVudCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19QQVJFTlRSRUYpCisgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9SRUZfTk9fREVGLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBmb3VuZCBubyBkZWZpbmUgZm9yIHBhcmVudCByZWZzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1JFRl9OT19ERUYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludGVybmFsIGZvdW5kIG5vIGRlZmluZSBmb3IgcmVmICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXItPm5hbWUgPyBjdXItPm5hbWU6IEJBRF9DQVNUICJudWxsIiksIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1ci0+ZGVwdGggPiAtNCkgeworICAgICAgICAgICAgICAgIGN1ci0+ZGVwdGggPSAtNDsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HQ2hlY2tSdWxlcyhjdHh0LCBjdXItPmNvbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIGN1ci0+dHlwZSk7CisgICAgICAgICAgICAgICAgY3VyLT5kZXB0aCA9IHJldCAtIDE1OworICAgICAgICAgICAgfSBlbHNlIGlmIChjdXItPmRlcHRoID09IC00KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gWE1MX1JFTEFYTkdfQ09OVEVOVF9DT01QTEVYOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXQgPSAoeG1sUmVsYXhOR0NvbnRlbnRUeXBlKSAoY3VyLT5kZXB0aCArIDE1KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfRUxFTUVOVCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFRoZSA3LjMgQXR0cmlidXRlIGRlcml2YXRpb24gcnVsZSBmb3IgZ3JvdXBzIGlzIHBsdWdnZWQgdGhlcmUKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgeG1sUmVsYXhOR0NoZWNrR3JvdXBBdHRycyhjdHh0LCBjdXIpOworICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fREFUQUVYQ0VQVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRUxFTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBkYXRhL2V4Y2VwdC8vZWxlbWVudChyZWYpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9MSVNUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9MSVNUX0VMRU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gbGlzdC8vZWxlbWVudChyZWYpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9BVFRSSUJVVEUpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX0FUVFJfRUxFTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBhdHRyaWJ1dGUvL2VsZW1lbnQocmVmKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fQVRUUklCVVRFKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9BVFRSX0VMRU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gYXR0cmlidXRlLy9lbGVtZW50KHJlZilcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiByZXNldCBzaW5jZSBpbiB0aGUgc2ltcGxlIGZvcm0gZWxlbWVudHMgYXJlIG9ubHkgY2hpbGQKKyAgICAgICAgICAgICAqIG9mIGdyYW1tYXIvZGVmaW5lCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG5mbGFncyA9IDA7CisgICAgICAgICAgICByZXQgPQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDaGVja1J1bGVzKGN0eHQsIGN1ci0+YXR0cnMsIG5mbGFncywgY3VyLT50eXBlKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gWE1MX1JFTEFYTkdfQ09OVEVOVF9FTVBUWSkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9FTEVNX0NPTlRFTlRfRU1QVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRWxlbWVudCAlcyBhdHRyaWJ1dGVzIGhhdmUgYSBjb250ZW50IHR5cGUgZXJyb3JcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPm5hbWUsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ2hlY2tSdWxlcyhjdHh0LCBjdXItPmNvbnRlbnQsIG5mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPnR5cGUpOworICAgICAgICAgICAgaWYgKHJldCA9PSBYTUxfUkVMQVhOR19DT05URU5UX0VSUk9SKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX0VMRU1fQ09OVEVOVF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbGVtZW50ICVzIGhhcyBhIGNvbnRlbnQgdHlwZSBlcnJvclxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ci0+bmFtZSwgTlVMTCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldCA9IFhNTF9SRUxBWE5HX0NPTlRFTlRfQ09NUExFWDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfQVRUUklCVVRFKSB7CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9BVFRSSUJVVEUpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX0FUVFJfQVRUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBhdHRyaWJ1dGUvL2F0dHJpYnV0ZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fTElTVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfTElTVF9BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIGxpc3QvL2F0dHJpYnV0ZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fT09NR1JPVVApIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX09ORU1PUkVfR1JPVVBfQVRUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBvbmVPck1vcmUvL2dyb3VwLy9hdHRyaWJ1dGVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX09PTUlOVEVSTEVBVkUpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX09ORU1PUkVfSU5URVJMRUFWRV9BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIG9uZU9yTW9yZS8vaW50ZXJsZWF2ZS8vYXR0cmlidXRlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9EQVRBRVhDRVBUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIGRhdGEvZXhjZXB0Ly9hdHRyaWJ1dGVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9TVEFSVF9BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIHN0YXJ0Ly9hdHRyaWJ1dGVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoIShmbGFncyAmIFhNTF9SRUxBWE5HX0lOX09ORU9STU9SRSkpCisgICAgICAgICAgICAgICAgJiYgKGN1ci0+bmFtZSA9PSBOVUxMKSkgeworICAgICAgICAgICAgICAgIGlmIChjdXItPm5zID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX0FOWU5BTUVfQVRUUl9BTkNFU1RPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgYW55TmFtZSBhdHRyaWJ1dGUgd2l0aG91dCBvbmVPck1vcmUgYW5jZXN0b3JcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX05TTkFNRV9BVFRSX0FOQ0VTVE9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBuc05hbWUgYXR0cmlidXRlIHdpdGhvdXQgb25lT3JNb3JlIGFuY2VzdG9yXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5mbGFncyA9IGZsYWdzIHwgWE1MX1JFTEFYTkdfSU5fQVRUUklCVVRFOworICAgICAgICAgICAgeG1sUmVsYXhOR0NoZWNrUnVsZXMoY3R4dCwgY3VyLT5jb250ZW50LCBuZmxhZ3MsIGN1ci0+dHlwZSk7CisgICAgICAgICAgICByZXQgPSBYTUxfUkVMQVhOR19DT05URU5UX0VNUFRZOworICAgICAgICB9IGVsc2UgaWYgKChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfT05FT1JNT1JFKSB8fAorICAgICAgICAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfWkVST09STU9SRSkpIHsKKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX0RBVEFFWENFUFQpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX09ORU1PUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gZGF0YS9leGNlcHQvL29uZU9yTW9yZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fU1RBUlQpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX1NUQVJUX09ORU1PUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gc3RhcnQvL29uZU9yTW9yZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmZsYWdzID0gZmxhZ3MgfCBYTUxfUkVMQVhOR19JTl9PTkVPUk1PUkU7CisgICAgICAgICAgICByZXQgPQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDaGVja1J1bGVzKGN0eHQsIGN1ci0+Y29udGVudCwgbmZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ci0+dHlwZSk7CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HR3JvdXBDb250ZW50VHlwZShyZXQsIHJldCk7CisgICAgICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX0xJU1QpIHsKKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX0xJU1QpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX0xJU1RfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBsaXN0Ly9saXN0XG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9EQVRBRVhDRVBUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9MSVNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIGRhdGEvZXhjZXB0Ly9saXN0XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9TVEFSVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfU1RBUlRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBzdGFydC8vbGlzdFxuIiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmZsYWdzID0gZmxhZ3MgfCBYTUxfUkVMQVhOR19JTl9MSVNUOworICAgICAgICAgICAgcmV0ID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ2hlY2tSdWxlcyhjdHh0LCBjdXItPmNvbnRlbnQsIG5mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPnR5cGUpOworICAgICAgICB9IGVsc2UgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19HUk9VUCkgeworICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fREFUQUVYQ0VQVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gZGF0YS9leGNlcHQvL2dyb3VwXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9TVEFSVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfU1RBUlRfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gc3RhcnQvL2dyb3VwXG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9PTkVPUk1PUkUpCisgICAgICAgICAgICAgICAgbmZsYWdzID0gZmxhZ3MgfCBYTUxfUkVMQVhOR19JTl9PT01HUk9VUDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZmxhZ3MgPSBmbGFnczsKKyAgICAgICAgICAgIHJldCA9CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0NoZWNrUnVsZXMoY3R4dCwgY3VyLT5jb250ZW50LCBuZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT50eXBlKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaGUgNy4zIEF0dHJpYnV0ZSBkZXJpdmF0aW9uIHJ1bGUgZm9yIGdyb3VwcyBpcyBwbHVnZ2VkIHRoZXJlCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHhtbFJlbGF4TkdDaGVja0dyb3VwQXR0cnMoY3R4dCwgY3VyKTsKKyAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfSU5URVJMRUFWRSkgeworICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fTElTVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfTElTVF9JTlRFUkxFQVZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIGxpc3QvL2ludGVybGVhdmVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX0RBVEFFWENFUFQpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX0RBVEFfRVhDRVBUX0lOVEVSTEVBVkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gZGF0YS9leGNlcHQvL2ludGVybGVhdmVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9JTlRFUkxFQVZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIHN0YXJ0Ly9pbnRlcmxlYXZlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9PTkVPUk1PUkUpCisgICAgICAgICAgICAgICAgbmZsYWdzID0gZmxhZ3MgfCBYTUxfUkVMQVhOR19JTl9PT01JTlRFUkxFQVZFOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5mbGFncyA9IGZsYWdzOworICAgICAgICAgICAgcmV0ID0KKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ2hlY2tSdWxlcyhjdHh0LCBjdXItPmNvbnRlbnQsIG5mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPnR5cGUpOworICAgICAgICB9IGVsc2UgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FWENFUFQpIHsKKyAgICAgICAgICAgIGlmICgoY3VyLT5wYXJlbnQgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAoY3VyLT5wYXJlbnQtPnR5cGUgPT0gWE1MX1JFTEFYTkdfREFUQVRZUEUpKQorICAgICAgICAgICAgICAgIG5mbGFncyA9IGZsYWdzIHwgWE1MX1JFTEFYTkdfSU5fREFUQUVYQ0VQVDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZmxhZ3MgPSBmbGFnczsKKyAgICAgICAgICAgIHJldCA9CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0NoZWNrUnVsZXMoY3R4dCwgY3VyLT5jb250ZW50LCBuZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT50eXBlKTsKKyAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfREFUQVRZUEUpIHsKKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9TVEFSVF9EQVRBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIHN0YXJ0Ly9kYXRhXG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4bWxSZWxheE5HQ2hlY2tSdWxlcyhjdHh0LCBjdXItPmNvbnRlbnQsIGZsYWdzLCBjdXItPnR5cGUpOworICAgICAgICAgICAgcmV0ID0gWE1MX1JFTEFYTkdfQ09OVEVOVF9TSU1QTEU7CisgICAgICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX1ZBTFVFKSB7CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9TVEFSVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfU1RBUlRfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gc3RhcnQvL3ZhbHVlXG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4bWxSZWxheE5HQ2hlY2tSdWxlcyhjdHh0LCBjdXItPmNvbnRlbnQsIGZsYWdzLCBjdXItPnR5cGUpOworICAgICAgICAgICAgcmV0ID0gWE1MX1JFTEFYTkdfQ09OVEVOVF9TSU1QTEU7CisgICAgICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX1RFWFQpIHsKKyAgICAgICAgICAgIGlmIChmbGFncyAmIFhNTF9SRUxBWE5HX0lOX0xJU1QpIHsKKyAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ci0+bm9kZSwgWE1MX1JOR1BfUEFUX0xJU1RfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBsaXN0Ly90ZXh0XG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9EQVRBRVhDRVBUKSB7CisgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXItPm5vZGUsIFhNTF9STkdQX1BBVF9EQVRBX0VYQ0VQVF9URVhULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGZvcmJpZGRlbiBwYXR0ZXJuIGRhdGEvZXhjZXB0Ly90ZXh0XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9TVEFSVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfU1RBUlRfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBmb3JiaWRkZW4gcGF0dGVybiBzdGFydC8vdGV4dFxuIiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0gWE1MX1JFTEFYTkdfQ09OVEVOVF9DT01QTEVYOworICAgICAgICB9IGVsc2UgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19FTVBUWSkgeworICAgICAgICAgICAgaWYgKGZsYWdzICYgWE1MX1JFTEFYTkdfSU5fREFUQUVYQ0VQVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfREFUQV9FWENFUFRfRU1QVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gZGF0YS9leGNlcHQvL2VtcHR5XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9TVEFSVCkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLT5ub2RlLCBYTUxfUk5HUF9QQVRfU1RBUlRfRU1QVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgZm9yYmlkZGVuIHBhdHRlcm4gc3RhcnQvL2VtcHR5XG4iLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXQgPSBYTUxfUkVMQVhOR19DT05URU5UX0VNUFRZOworICAgICAgICB9IGVsc2UgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19DSE9JQ0UpIHsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdDaGVja0Nob2ljZURldGVybWluaXNtKGN0eHQsIGN1cik7CisgICAgICAgICAgICByZXQgPQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDaGVja1J1bGVzKGN0eHQsIGN1ci0+Y29udGVudCwgZmxhZ3MsIGN1ci0+dHlwZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXQgPQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDaGVja1J1bGVzKGN0eHQsIGN1ci0+Y29udGVudCwgZmxhZ3MsIGN1ci0+dHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgICAgICBpZiAocHR5cGUgPT0gWE1MX1JFTEFYTkdfR1JPVVApIHsKKyAgICAgICAgICAgIHZhbCA9IHhtbFJlbGF4TkdHcm91cENvbnRlbnRUeXBlKHZhbCwgcmV0KTsKKyAgICAgICAgfSBlbHNlIGlmIChwdHlwZSA9PSBYTUxfUkVMQVhOR19JTlRFUkxFQVZFKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogVE9ETzogc2NhbiBjb21wbGFpbiB0aGF0IHRtcCBpcyBuZXZlciB1c2VkLCBzZWVtcyBvbiBwdXJwb3NlCisgICAgICAgICAgICAgKiAgICAgICBuZWVkIGRvdWJsZS1jaGVja2luZworICAgICAgICAgICAgICovCisgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HR3JvdXBDb250ZW50VHlwZSh2YWwsIHJldCk7CisgICAgICAgICAgICBpZiAodG1wICE9IFhNTF9SRUxBWE5HX0NPTlRFTlRfRVJST1IpCisgICAgICAgICAgICAgICAgdG1wID0geG1sUmVsYXhOR01heENvbnRlbnRUeXBlKHZhbCwgcmV0KTsKKyAgICAgICAgfSBlbHNlIGlmIChwdHlwZSA9PSBYTUxfUkVMQVhOR19DSE9JQ0UpIHsKKyAgICAgICAgICAgIHZhbCA9IHhtbFJlbGF4TkdNYXhDb250ZW50VHlwZSh2YWwsIHJldCk7CisgICAgICAgIH0gZWxzZSBpZiAocHR5cGUgPT0gWE1MX1JFTEFYTkdfTElTVCkgeworICAgICAgICAgICAgdmFsID0gWE1MX1JFTEFYTkdfQ09OVEVOVF9TSU1QTEU7CisgICAgICAgIH0gZWxzZSBpZiAocHR5cGUgPT0gWE1MX1JFTEFYTkdfRVhDRVBUKSB7CisgICAgICAgICAgICBpZiAocmV0ID09IFhNTF9SRUxBWE5HX0NPTlRFTlRfRVJST1IpCisgICAgICAgICAgICAgICAgdmFsID0gWE1MX1JFTEFYTkdfQ09OVEVOVF9FUlJPUjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2YWwgPSBYTUxfUkVMQVhOR19DT05URU5UX1NJTVBMRTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhbCA9IHhtbFJlbGF4TkdHcm91cENvbnRlbnRUeXBlKHZhbCwgcmV0KTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHJldHVybiAodmFsKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HUGFyc2VHcmFtbWFyOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAbm9kZXM6ICBncmFtbWFyIGNoaWxkcmVuIG5vZGVzCisgKgorICogcGFyc2UgYSBSZWxheC1ORyA8Z3JhbW1hcj4gbm9kZQorICoKKyAqIFJldHVybnMgdGhlIGludGVybmFsIHhtbFJlbGF4TkdHcmFtbWFyUHRyIGJ1aWx0IG9yCisgKiAgICAgICAgIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sUmVsYXhOR0dyYW1tYXJQdHIKK3htbFJlbGF4TkdQYXJzZUdyYW1tYXIoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlcykKK3sKKyAgICB4bWxSZWxheE5HR3JhbW1hclB0ciByZXQsIHRtcCwgb2xkOworCisjaWZkZWYgREVCVUdfR1JBTU1BUgorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiUGFyc2luZyBhIG5ldyBncmFtbWFyXG4iKTsKKyNlbmRpZgorCisgICAgcmV0ID0geG1sUmVsYXhOR05ld0dyYW1tYXIoY3R4dCk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgLyoKKyAgICAgKiBMaW5rIHRoZSBuZXcgZ3JhbW1hciBpbiB0aGUgdHJlZQorICAgICAqLworICAgIHJldC0+cGFyZW50ID0gY3R4dC0+Z3JhbW1hcjsKKyAgICBpZiAoY3R4dC0+Z3JhbW1hciAhPSBOVUxMKSB7CisgICAgICAgIHRtcCA9IGN0eHQtPmdyYW1tYXItPmNoaWxkcmVuOworICAgICAgICBpZiAodG1wID09IE5VTEwpIHsKKyAgICAgICAgICAgIGN0eHQtPmdyYW1tYXItPmNoaWxkcmVuID0gcmV0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKHRtcC0+bmV4dCAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+bmV4dDsKKyAgICAgICAgICAgIHRtcC0+bmV4dCA9IHJldDsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9sZCA9IGN0eHQtPmdyYW1tYXI7CisgICAgY3R4dC0+Z3JhbW1hciA9IHJldDsKKyAgICB4bWxSZWxheE5HUGFyc2VHcmFtbWFyQ29udGVudChjdHh0LCBub2Rlcyk7CisgICAgY3R4dC0+Z3JhbW1hciA9IHJldDsKKyAgICBpZiAoY3R4dC0+Z3JhbW1hciA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZXMsIFhNTF9STkdQX0dSQU1NQVJfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHBhcnNlIDxncmFtbWFyPiBjb250ZW50XG4iLCBOVUxMLCBOVUxMKTsKKyAgICB9IGVsc2UgaWYgKGN0eHQtPmdyYW1tYXItPnN0YXJ0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlcywgWE1MX1JOR1BfR1JBTU1BUl9OT19TVEFSVCwKKyAgICAgICAgICAgICAgICAgICAiRWxlbWVudCA8Z3JhbW1hcj4gaGFzIG5vIDxzdGFydD5cbiIsIE5VTEwsIE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQXBwbHkgNC4xNyBtZXJnaW5nZCBydWxlcyB0byBkZWZpbmVzIGFuZCBzdGFydHMKKyAgICAgKi8KKyAgICB4bWxSZWxheE5HQ29tYmluZVN0YXJ0KGN0eHQsIHJldCk7CisgICAgaWYgKHJldC0+ZGVmcyAhPSBOVUxMKSB7CisgICAgICAgIHhtbEhhc2hTY2FuKHJldC0+ZGVmcywgKHhtbEhhc2hTY2FubmVyKSB4bWxSZWxheE5HQ2hlY2tDb21iaW5lLAorICAgICAgICAgICAgICAgICAgICBjdHh0KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGxpbmsgdG9nZXRoZXIgZGVmaW5lcyBhbmQgcmVmcyBpbiB0aGlzIGdyYW1tYXIKKyAgICAgKi8KKyAgICBpZiAocmV0LT5yZWZzICE9IE5VTEwpIHsKKyAgICAgICAgeG1sSGFzaFNjYW4ocmV0LT5yZWZzLCAoeG1sSGFzaFNjYW5uZXIpIHhtbFJlbGF4TkdDaGVja1JlZmVyZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgY3R4dCk7CisgICAgfQorCisKKyAgICAvKiBAQEBAICovCisKKyAgICBjdHh0LT5ncmFtbWFyID0gb2xkOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HUGFyc2VEb2N1bWVudDoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgcm9vdCBub2RlIG9mIHRoZSBSZWxheE5HIHNjaGVtYQorICoKKyAqIHBhcnNlIGEgUmVsYXgtTkcgZGVmaW5pdGlvbiByZXNvdXJjZSBhbmQgYnVpbGQgYW4gaW50ZXJuYWwKKyAqIHhtbFJlbGF4Tkcgc3RydXR1cmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5zdGFuY2VzLgorICoKKyAqIFJldHVybnMgdGhlIGludGVybmFsIFhNTCBSZWxheE5HIHN0cnVjdHVyZSBidWlsdCBvcgorICogICAgICAgICBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFJlbGF4TkdQdHIKK3htbFJlbGF4TkdQYXJzZURvY3VtZW50KHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxSZWxheE5HUHRyIHNjaGVtYSA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqb2xkZGVmaW5lOworICAgIHhtbFJlbGF4TkdHcmFtbWFyUHRyIG9sZDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHNjaGVtYSA9IHhtbFJlbGF4TkdOZXdSZWxheE5HKGN0eHQpOworICAgIGlmIChzY2hlbWEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIG9sZGRlZmluZSA9IGN0eHQtPmRlZmluZTsKKyAgICBjdHh0LT5kZWZpbmUgPSBOVUxMOworICAgIGlmIChJU19SRUxBWE5HKG5vZGUsICJncmFtbWFyIikpIHsKKyAgICAgICAgc2NoZW1hLT50b3BncmFtbWFyID0geG1sUmVsYXhOR1BhcnNlR3JhbW1hcihjdHh0LCBub2RlLT5jaGlsZHJlbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sUmVsYXhOR0dyYW1tYXJQdHIgdG1wLCByZXQ7CisKKyAgICAgICAgc2NoZW1hLT50b3BncmFtbWFyID0gcmV0ID0geG1sUmVsYXhOR05ld0dyYW1tYXIoY3R4dCk7CisgICAgICAgIGlmIChzY2hlbWEtPnRvcGdyYW1tYXIgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIChzY2hlbWEpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgICAqIExpbmsgdGhlIG5ldyBncmFtbWFyIGluIHRoZSB0cmVlCisgICAgICAgICAqLworICAgICAgICByZXQtPnBhcmVudCA9IGN0eHQtPmdyYW1tYXI7CisgICAgICAgIGlmIChjdHh0LT5ncmFtbWFyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHRtcCA9IGN0eHQtPmdyYW1tYXItPmNoaWxkcmVuOworICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgY3R4dC0+Z3JhbW1hci0+Y2hpbGRyZW4gPSByZXQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHdoaWxlICh0bXAtPm5leHQgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5uZXh0OworICAgICAgICAgICAgICAgIHRtcC0+bmV4dCA9IHJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvbGQgPSBjdHh0LT5ncmFtbWFyOworICAgICAgICBjdHh0LT5ncmFtbWFyID0gcmV0OworICAgICAgICB4bWxSZWxheE5HUGFyc2VTdGFydChjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKG9sZCAhPSBOVUxMKQorICAgICAgICAgICAgY3R4dC0+Z3JhbW1hciA9IG9sZDsKKyAgICB9CisgICAgY3R4dC0+ZGVmaW5lID0gb2xkZGVmaW5lOworICAgIGlmIChzY2hlbWEtPnRvcGdyYW1tYXItPnN0YXJ0ICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUmVsYXhOR0NoZWNrQ3ljbGVzKGN0eHQsIHNjaGVtYS0+dG9wZ3JhbW1hci0+c3RhcnQsIDApOworICAgICAgICBpZiAoKGN0eHQtPmZsYWdzICYgWE1MX1JFTEFYTkdfSU5fRVhURVJOQUxSRUYpID09IDApIHsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdTaW1wbGlmeShjdHh0LCBzY2hlbWEtPnRvcGdyYW1tYXItPnN0YXJ0LCBOVUxMKTsKKyAgICAgICAgICAgIHdoaWxlICgoc2NoZW1hLT50b3BncmFtbWFyLT5zdGFydCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgIChzY2hlbWEtPnRvcGdyYW1tYXItPnN0YXJ0LT50eXBlID09IFhNTF9SRUxBWE5HX05PT1ApICYmCisgICAgICAgICAgICAgICAgICAgKHNjaGVtYS0+dG9wZ3JhbW1hci0+c3RhcnQtPm5leHQgIT0gTlVMTCkpCisgICAgICAgICAgICAgICAgc2NoZW1hLT50b3BncmFtbWFyLT5zdGFydCA9CisgICAgICAgICAgICAgICAgICAgIHNjaGVtYS0+dG9wZ3JhbW1hci0+c3RhcnQtPmNvbnRlbnQ7CisgICAgICAgICAgICB4bWxSZWxheE5HQ2hlY2tSdWxlcyhjdHh0LCBzY2hlbWEtPnRvcGdyYW1tYXItPnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1JFTEFYTkdfSU5fU1RBUlQsIFhNTF9SRUxBWE5HX05PT1ApOworICAgICAgICB9CisgICAgfQorI2lmZGVmIERFQlVHCisgICAgaWYgKHNjaGVtYSA9PSBOVUxMKQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HUGFyc2VEb2N1bWVudCgpIGZhaWxlZFxuIik7CisjZW5kaWYKKworICAgIHJldHVybiAoc2NoZW1hKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQkJUmVhZGluZyBSZWxheE5HcwkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0OgorICogQFVSTDogIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hCisgKgorICogQ3JlYXRlIGFuIFhNTCBSZWxheE5HcyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IGZpbGUvcmVzb3VyY2UgZXhwZWN0ZWQKKyAqIHRvIGNvbnRhaW4gYW4gWE1MIFJlbGF4TkdzIGZpbGUuCisgKgorICogUmV0dXJucyB0aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyCit4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dChjb25zdCBjaGFyICpVUkwpCit7CisgICAgeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgcmV0OworCisgICAgaWYgKFVSTCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0KKyAgICAgICAgKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlbGF4TkdQYXJzZXJDdHh0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnJNZW1vcnkoTlVMTCwgImJ1aWxkaW5nIHBhcnNlclxuIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxSZWxheE5HUGFyc2VyQ3R4dCkpOworICAgIHJldC0+VVJMID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIFVSTCk7CisgICAgcmV0LT5lcnJvciA9IHhtbEdlbmVyaWNFcnJvcjsKKyAgICByZXQtPnVzZXJEYXRhID0geG1sR2VuZXJpY0Vycm9yQ29udGV4dDsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQ6CisgKiBAYnVmZmVyOiAgYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheSBjb250YWluaW5nIHRoZSBzY2hlbWFzCisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICoKKyAqIENyZWF0ZSBhbiBYTUwgUmVsYXhOR3MgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBtZW1vcnkgYnVmZmVyIGV4cGVjdGVkCisgKiB0byBjb250YWluIGFuIFhNTCBSZWxheE5HcyBmaWxlLgorICoKKyAqIFJldHVybnMgdGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cgoreG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSkKK3sKKyAgICB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciByZXQ7CisKKyAgICBpZiAoKGJ1ZmZlciA9PSBOVUxMKSB8fCAoc2l6ZSA8PSAwKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHJldCA9CisgICAgICAgICh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxSZWxheE5HUGFyc2VyQ3R4dCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyTWVtb3J5KE5VTEwsICJidWlsZGluZyBwYXJzZXJcbiIpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sUmVsYXhOR1BhcnNlckN0eHQpKTsKKyAgICByZXQtPmJ1ZmZlciA9IGJ1ZmZlcjsKKyAgICByZXQtPnNpemUgPSBzaXplOworICAgIHJldC0+ZXJyb3IgPSB4bWxHZW5lcmljRXJyb3I7CisgICAgcmV0LT51c2VyRGF0YSA9IHhtbEdlbmVyaWNFcnJvckNvbnRleHQ7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0OgorICogQGRvYzogIGEgcHJlcGFyc2VkIGRvY3VtZW50IHRyZWUKKyAqCisgKiBDcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHBhcnNlciBjb250ZXh0IGZvciB0aGF0IGRvY3VtZW50LgorICogTm90ZTogc2luY2UgdGhlIHByb2Nlc3Mgb2YgY29tcGlsaW5nIGEgUmVsYXhORyBzY2hlbWFzIG1vZGlmaWVzIHRoZQorICogICAgICAgZG9jdW1lbnQsIHRoZSBAZG9jIHBhcmFtZXRlciBpcyBkdXBsaWNhdGVkIGludGVybmFsbHkuCisgKgorICogUmV0dXJucyB0aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyCit4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCh4bWxEb2NQdHIgZG9jKQoreworICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIHJldDsKKyAgICB4bWxEb2NQdHIgY29weTsKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjb3B5ID0geG1sQ29weURvYyhkb2MsIDEpOworICAgIGlmIChjb3B5ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICByZXQgPQorICAgICAgICAoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVsYXhOR1BhcnNlckN0eHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nUEVyck1lbW9yeShOVUxMLCAiYnVpbGRpbmcgcGFyc2VyXG4iKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlbGF4TkdQYXJzZXJDdHh0KSk7CisgICAgcmV0LT5kb2N1bWVudCA9IGNvcHk7CisgICAgcmV0LT5mcmVlZG9jID0gMTsKKyAgICByZXQtPnVzZXJEYXRhID0geG1sR2VuZXJpY0Vycm9yQ29udGV4dDsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0OgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKgorICogRnJlZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICovCit2b2lkCit4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGN0eHQtPlVSTCAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGN0eHQtPlVSTCk7CisgICAgaWYgKGN0eHQtPmRvYyAhPSBOVUxMKQorICAgICAgICB4bWxSZWxheE5HRnJlZURvY3VtZW50KGN0eHQtPmRvYyk7CisgICAgaWYgKGN0eHQtPmludGVybGVhdmVzICE9IE5VTEwpCisgICAgICAgIHhtbEhhc2hGcmVlKGN0eHQtPmludGVybGVhdmVzLCBOVUxMKTsKKyAgICBpZiAoY3R4dC0+ZG9jdW1lbnRzICE9IE5VTEwpCisgICAgICAgIHhtbFJlbGF4TkdGcmVlRG9jdW1lbnRMaXN0KGN0eHQtPmRvY3VtZW50cyk7CisgICAgaWYgKGN0eHQtPmluY2x1ZGVzICE9IE5VTEwpCisgICAgICAgIHhtbFJlbGF4TkdGcmVlSW5jbHVkZUxpc3QoY3R4dC0+aW5jbHVkZXMpOworICAgIGlmIChjdHh0LT5kb2NUYWIgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShjdHh0LT5kb2NUYWIpOworICAgIGlmIChjdHh0LT5pbmNUYWIgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShjdHh0LT5pbmNUYWIpOworICAgIGlmIChjdHh0LT5kZWZUYWIgIT0gTlVMTCkgeworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+ZGVmTnI7IGkrKykKKyAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlRGVmaW5lKGN0eHQtPmRlZlRhYltpXSk7CisgICAgICAgIHhtbEZyZWUoY3R4dC0+ZGVmVGFiKTsKKyAgICB9CisgICAgaWYgKChjdHh0LT5kb2N1bWVudCAhPSBOVUxMKSAmJiAoY3R4dC0+ZnJlZWRvYykpCisgICAgICAgIHhtbEZyZWVEb2MoY3R4dC0+ZG9jdW1lbnQpOworICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR05vcm1FeHRTcGFjZToKKyAqIEB2YWx1ZTogIGEgdmFsdWUKKyAqCisgKiBSZW1vdmVzIHRoZSBsZWFkaW5nIGFuZCBlbmRpbmcgc3BhY2VzIG9mIHRoZSB2YWx1ZQorICogVGhlIHN0cmluZyBpcyBtb2RpZmllZCAiaW4gc2l0dSIKKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdOb3JtRXh0U3BhY2UoeG1sQ2hhciAqIHZhbHVlKQoreworICAgIHhtbENoYXIgKnN0YXJ0ID0gdmFsdWU7CisgICAgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKQorICAgICAgICBjdXIrKzsKKyAgICBpZiAoY3VyID09IHN0YXJ0KSB7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAoIUlTX0JMQU5LX0NIKCpjdXIpKSkKKyAgICAgICAgICAgICAgICBjdXIrKzsKKyAgICAgICAgICAgIGlmICgqY3VyID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc3RhcnQgPSBjdXI7CisgICAgICAgICAgICB3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpCisgICAgICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICBpZiAoKmN1ciA9PSAwKSB7CisgICAgICAgICAgICAgICAgKnN0YXJ0ID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAoIUlTX0JMQU5LX0NIKCpjdXIpKSkKKyAgICAgICAgICAgICAgICAqc3RhcnQrKyA9ICpjdXIrKzsKKyAgICAgICAgICAgIGlmICgqY3VyID09IDApIHsKKyAgICAgICAgICAgICAgICAqc3RhcnQgPSAwOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIGRvbid0IHRyeSB0byBub3JtYWxpemUgdGhlIGlubmVyIHNwYWNlcyAqLworICAgICAgICAgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKQorICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgaWYgKCpjdXIgPT0gMCkgeworICAgICAgICAgICAgICAgICpzdGFydCA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKnN0YXJ0KysgPSAqY3VyKys7CisgICAgICAgIH0gd2hpbGUgKDEpOworICAgIH0KK30KKworLyoqCisgKiB4bWxSZWxheE5HQ2xlYW51cEF0dHJpYnV0ZXM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlOiAgYSBSZWxheC1ORyBub2RlCisgKgorICogQ2hlY2sgYWxsIHRoZSBhdHRyaWJ1dGVzIG9uIHRoZSBnaXZlbiBub2RlCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HQ2xlYW51cEF0dHJpYnV0ZXMoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbEF0dHJQdHIgY3VyLCBuZXh0OworCisgICAgY3VyID0gbm9kZS0+cHJvcGVydGllczsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgbmV4dCA9IGN1ci0+bmV4dDsKKyAgICAgICAgaWYgKChjdXItPm5zID09IE5VTEwpIHx8CisgICAgICAgICAgICAoeG1sU3RyRXF1YWwoY3VyLT5ucy0+aHJlZiwgeG1sUmVsYXhOR05zKSkpIHsKKyAgICAgICAgICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJuYW1lIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKCF4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAiZWxlbWVudCIpKSAmJgorICAgICAgICAgICAgICAgICAgICAoIXhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJhdHRyaWJ1dGUiKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKCF4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAicmVmIikpICYmCisgICAgICAgICAgICAgICAgICAgICgheG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgQkFEX0NBU1QgInBhcmVudFJlZiIpKSAmJgorICAgICAgICAgICAgICAgICAgICAoIXhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJwYXJhbSIpKSAmJgorICAgICAgICAgICAgICAgICAgICAoIXhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJkZWZpbmUiKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBub2RlLCBYTUxfUk5HUF9GT1JCSURERU5fQVRUUklCVVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBdHRyaWJ1dGUgJXMgaXMgbm90IGFsbG93ZWQgb24gJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5uYW1lLCBub2RlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgInR5cGUiKSkgeworICAgICAgICAgICAgICAgIGlmICgoIXhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJ2YWx1ZSIpKSAmJgorICAgICAgICAgICAgICAgICAgICAoIXhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJkYXRhIikpKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfRk9SQklEREVOX0FUVFJJQlVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXR0cmlidXRlICVzIGlzIG5vdCBhbGxvd2VkIG9uICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ci0+bmFtZSwgbm9kZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJocmVmIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKCF4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAiZXh0ZXJuYWxSZWYiKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKCF4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAiaW5jbHVkZSIpKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0ZPUkJJRERFTl9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZSAlcyBpcyBub3QgYWxsb3dlZCBvbiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPm5hbWUsIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAiY29tYmluZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCgheG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgQkFEX0NBU1QgInN0YXJ0IikpICYmCisgICAgICAgICAgICAgICAgICAgICgheG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgQkFEX0NBU1QgImRlZmluZSIpKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX0ZPUkJJRERFTl9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZSAlcyBpcyBub3QgYWxsb3dlZCBvbiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPm5hbWUsIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAiZGF0YXR5cGVMaWJyYXJ5IikpIHsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICp2YWw7CisgICAgICAgICAgICAgICAgeG1sVVJJUHRyIHVyaTsKKworICAgICAgICAgICAgICAgIHZhbCA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKG5vZGUtPmRvYywgY3VyLT5jaGlsZHJlbiwgMSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWxbMF0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdXJpID0geG1sUGFyc2VVUkkoKGNvbnN0IGNoYXIgKikgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmkgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfSU5WQUxJRF9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXR0cmlidXRlICVzIGNvbnRhaW5zIGludmFsaWQgVVJJICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5uYW1lLCB2YWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJpLT5zY2hlbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1VSSV9OT1RfQUJTT0xVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZSAlcyBVUkkgJXMgaXMgbm90IGFic29sdXRlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ci0+bmFtZSwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVyaS0+ZnJhZ21lbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIG5vZGUsIFhNTF9STkdQX1VSSV9GUkFHTUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXR0cmlidXRlICVzIFVSSSAlcyBoYXMgYSBmcmFnbWVudCBJRFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPm5hbWUsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWVVUkkodXJpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHZhbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgheG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAibnMiKSkgeworICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgbm9kZSwgWE1MX1JOR1BfVU5LTk9XTl9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biBhdHRyaWJ1dGUgJXMgb24gJXNcbiIsIGN1ci0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGN1ciA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFJlbGF4TkdDbGVhbnVwVHJlZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICogQHJvb3Q6ICBhbiB4bWxOb2RlUHRyIHN1YnRyZWUKKyAqCisgKiBDbGVhbnVwIHRoZSBzdWJ0cmVlIGZyb20gdW53YW50ZWQgbm9kZXMgZm9yIHBhcnNpbmcsIHJlc29sdmUKKyAqIEluY2x1ZGUgYW5kIGV4dGVybmFsUmVmIGxvb2t1cHMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HQ2xlYW51cFRyZWUoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciByb290KQoreworICAgIHhtbE5vZGVQdHIgY3VyLCBkZWxldGU7CisKKyAgICBkZWxldGUgPSBOVUxMOworICAgIGN1ciA9IHJvb3Q7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmIChkZWxldGUgIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sVW5saW5rTm9kZShkZWxldGUpOworICAgICAgICAgICAgeG1sRnJlZU5vZGUoZGVsZXRlKTsKKyAgICAgICAgICAgIGRlbGV0ZSA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogU2ltcGxpZmljYXRpb24gNC4xLiBBbm5vdGF0aW9ucworICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoKGN1ci0+bnMgPT0gTlVMTCkgfHwKKyAgICAgICAgICAgICAgICAoIXhtbFN0ckVxdWFsKGN1ci0+bnMtPmhyZWYsIHhtbFJlbGF4TkdOcykpKSB7CisgICAgICAgICAgICAgICAgaWYgKChjdXItPnBhcmVudCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAoY3VyLT5wYXJlbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKCh4bWxTdHJFcXVhbChjdXItPnBhcmVudC0+bmFtZSwgQkFEX0NBU1QgIm5hbWUiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChjdXItPnBhcmVudC0+bmFtZSwgQkFEX0NBU1QgInZhbHVlIikpIHx8CisgICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwoY3VyLT5wYXJlbnQtPm5hbWUsIEJBRF9DQVNUICJwYXJhbSIpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXIsIFhNTF9STkdQX0ZPUkVJR05fRUxFTUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZWxlbWVudCAlcyBkb2Vzbid0IGFsbG93IGZvcmVpZ24gZWxlbWVudHNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5wYXJlbnQtPm5hbWUsIE5VTEwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICAgICAgZ290byBza2lwX2NoaWxkcmVuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ2xlYW51cEF0dHJpYnV0ZXMoY3R4dCwgY3VyKTsKKyAgICAgICAgICAgICAgICBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAiZXh0ZXJuYWxSZWYiKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICpocmVmLCAqbnMsICpiYXNlLCAqVVJMOworICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRG9jdW1lbnRQdHIgZG9jdTsKKyAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciB0bXA7CisJCSAgICB4bWxVUklQdHIgdXJpOworCisgICAgICAgICAgICAgICAgICAgIG5zID0geG1sR2V0UHJvcChjdXIsIEJBRF9DQVNUICJucyIpOworICAgICAgICAgICAgICAgICAgICBpZiAobnMgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gY3VyLT5wYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHRtcCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0bXAtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBucyA9IHhtbEdldFByb3AodG1wLCBCQURfQ0FTVCAibnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5wYXJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaHJlZiA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAiaHJlZiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaHJlZiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ciwgWE1MX1JOR1BfTUlTU0lOR19IUkVGLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR1BhcnNlOiBleHRlcm5hbFJlZiBoYXMgbm8gaHJlZiBhdHRyaWJ1dGVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5zICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShucyk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIH0KKwkJICAgIHVyaSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopIGhyZWYpOworCQkgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ciwgWE1MX1JOR1BfSFJFRl9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY29ycmVjdCBVUkkgZm9yIGV4dGVybmFsUmVmICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChucyAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobnMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhyZWYgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGhyZWYpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlID0gY3VyOworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBza2lwX2NoaWxkcmVuOworCQkgICAgfQorCQkgICAgaWYgKHVyaS0+ZnJhZ21lbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXIsIFhNTF9STkdQX0hSRUZfRVJST1IsCisJCQkgICAgICAgIkZyYWdtZW50IGZvcmJpZGRlbiBpbiBVUkkgZm9yIGV4dGVybmFsUmVmICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChucyAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobnMpOworCQkgICAgICAgIHhtbEZyZWVVUkkodXJpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChocmVmICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShocmVmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSA9IGN1cjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gc2tpcF9jaGlsZHJlbjsKKwkJICAgIH0KKwkJICAgIHhtbEZyZWVVUkkodXJpKTsKKyAgICAgICAgICAgICAgICAgICAgYmFzZSA9IHhtbE5vZGVHZXRCYXNlKGN1ci0+ZG9jLCBjdXIpOworICAgICAgICAgICAgICAgICAgICBVUkwgPSB4bWxCdWlsZFVSSShocmVmLCBiYXNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVSTCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ciwgWE1MX1JOR1BfSFJFRl9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjb21wdXRlIFVSTCBmb3IgZXh0ZXJuYWxSZWYgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWYsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5zICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShucyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHJlZiAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoaHJlZik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoYmFzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGhyZWYgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoaHJlZik7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGJhc2UpOworICAgICAgICAgICAgICAgICAgICBkb2N1ID0geG1sUmVsYXhOR0xvYWRFeHRlcm5hbFJlZihjdHh0LCBVUkwsIG5zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3UgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXIsIFhNTF9STkdQX0VYVEVSTkFMX1JFRl9GQUlMVVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWxSZWYgJXNcbiIsIFVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKG5zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoVVJMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSA9IGN1cjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gc2tpcF9jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobnMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobnMpOworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKFVSTCk7CisgICAgICAgICAgICAgICAgICAgIGN1ci0+cHN2aSA9IGRvY3U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJpbmNsdWRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqaHJlZiwgKm5zLCAqYmFzZSwgKlVSTDsKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0luY2x1ZGVQdHIgaW5jbDsKKyAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciB0bXA7CisKKyAgICAgICAgICAgICAgICAgICAgaHJlZiA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAiaHJlZiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaHJlZiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ciwgWE1MX1JOR1BfTUlTU0lOR19IUkVGLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR1BhcnNlOiBpbmNsdWRlIGhhcyBubyBocmVmIGF0dHJpYnV0ZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYmFzZSA9IHhtbE5vZGVHZXRCYXNlKGN1ci0+ZG9jLCBjdXIpOworICAgICAgICAgICAgICAgICAgICBVUkwgPSB4bWxCdWlsZFVSSShocmVmLCBiYXNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVSTCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ciwgWE1MX1JOR1BfSFJFRl9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjb21wdXRlIFVSTCBmb3IgaW5jbHVkZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZiwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHJlZiAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoaHJlZik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoYmFzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGhyZWYgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoaHJlZik7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGJhc2UpOworICAgICAgICAgICAgICAgICAgICBucyA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAibnMiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5zID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IGN1ci0+cGFyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCh0bXAgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG1wLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnMgPSB4bWxHZXRQcm9wKHRtcCwgQkFEX0NBU1QgIm5zIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5zICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+cGFyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGluY2wgPSB4bWxSZWxheE5HTG9hZEluY2x1ZGUoY3R4dCwgVVJMLCBjdXIsIG5zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5zICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKG5zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluY2wgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXIsIFhNTF9STkdQX0lOQ0xVREVfRkFJTFVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBsb2FkIGluY2x1ZGUgJXNcbiIsIFVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKFVSTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShVUkwpOworICAgICAgICAgICAgICAgICAgICBjdXItPnBzdmkgPSBpbmNsOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgImVsZW1lbnQiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJhdHRyaWJ1dGUiKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICpuYW1lLCAqbnM7CisgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgdGV4dCA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogU2ltcGxpZmljYXRpb24gNC44LiBuYW1lIGF0dHJpYnV0ZSBvZiBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgICAqIGFuZCBhdHRyaWJ1dGUgZWxlbWVudHMKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgIm5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ci0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOZXdDaGlsZChjdXIsIGN1ci0+bnMsIEJBRF9DQVNUICJuYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUgPSB4bWxOZXdEb2NOb2RlKGN1ci0+ZG9jLCBjdXItPm5zLAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUICJuYW1lIiwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxBZGRQcmV2U2libGluZyhjdXItPmNoaWxkcmVuLCBub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHhtbE5ld1RleHQobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEFkZENoaWxkKG5vZGUsIHRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gbm9kZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4dCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXIsIFhNTF9STkdQX0NSRUFURV9GQUlMVVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjcmVhdGUgYSBuYW1lICVzIGVsZW1lbnRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFVuc2V0UHJvcChjdXIsIEJBRF9DQVNUICJuYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgbnMgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgIm5zIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2V0UHJvcCh0ZXh0LCBCQURfQ0FTVCAibnMiLCBucyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHhtbFVuc2V0UHJvcChjdXIsIEJBRF9DQVNUICJucyIpOyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKG5zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiYXR0cmlidXRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTZXRQcm9wKHRleHQsIEJBRF9DQVNUICJucyIsIEJBRF9DQVNUICIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgIm5hbWUiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJuc05hbWUiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJ2YWx1ZSIpKSkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBTaW1wbGlmaWNhdGlvbiA0LjguIG5hbWUgYXR0cmlidXRlIG9mIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICogYW5kIGF0dHJpYnV0ZSBlbGVtZW50cworICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYgKHhtbEhhc1Byb3AoY3VyLCBCQURfQ0FTVCAibnMiKSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICpucyA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBjdXItPnBhcmVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgobm9kZSAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnMgPSB4bWxHZXRQcm9wKG5vZGUsIEJBRF9DQVNUICJucyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChucyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5zID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTZXRQcm9wKGN1ciwgQkFEX0NBU1QgIm5zIiwgQkFEX0NBU1QgIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTZXRQcm9wKGN1ciwgQkFEX0NBU1QgIm5zIiwgbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobnMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJuYW1lIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKm5hbWUsICpsb2NhbCwgKnByZWZpeDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFNpbXBsaWZpY2F0aW9uOiA0LjEwLiBRTmFtZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHhtbE5vZGVHZXRDb250ZW50KGN1cik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwgPSB4bWxTcGxpdFFOYW1lMihuYW1lLCAmcHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWwgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOc1B0ciBuczsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucyA9IHhtbFNlYXJjaE5zKGN1ci0+ZG9jLCBjdXIsIHByZWZpeCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChucyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIGN1ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1JOR1BfUFJFRklYX1VOREVGSU5FRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFJlbGF4TkdQYXJzZTogbm8gbmFtZXNwYWNlIGZvciBwcmVmaXggJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTZXRQcm9wKGN1ciwgQkFEX0NBU1QgIm5zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnMtPmhyZWYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVNldENvbnRlbnQoY3VyLCBsb2NhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShsb2NhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUocHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiA0LjE2CisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAibnNOYW1lIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHh0LT5mbGFncyAmIFhNTF9SRUxBWE5HX0lOX05TRVhDRVBUKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUm5nUEVycihjdHh0LCBjdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9OU05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgbnNOYW1lL2V4Y2VwdC8vbnNOYW1lIGZvcmJpZGRlbiBjb25zdHJ1Y3RcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgImV4Y2VwdCIpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1ciAhPSByb290KSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgb2xkZmxhZ3MgPSBjdHh0LT5mbGFnczsKKworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiA0LjE2CisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZiAoKGN1ci0+cGFyZW50ICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY3VyLT5wYXJlbnQtPm5hbWUsIEJBRF9DQVNUICJhbnlOYW1lIikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyB8PSBYTUxfUkVMQVhOR19JTl9BTllFWENFUFQ7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ2xlYW51cFRyZWUoY3R4dCwgY3VyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGN1ci0+cGFyZW50ICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXItPnBhcmVudC0+bmFtZSwgQkFEX0NBU1QgIm5zTmFtZSIpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgfD0gWE1MX1JFTEFYTkdfSU5fTlNFWENFUFQ7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ2xlYW51cFRyZWUoY3R4dCwgY3VyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgImFueU5hbWUiKSkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiA0LjE2CisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZiAoY3R4dC0+ZmxhZ3MgJiBYTUxfUkVMQVhOR19JTl9BTllFWENFUFQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUk5HUF9QQVRfQU5ZTkFNRV9FWENFUFRfQU5ZTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIGFueU5hbWUvZXhjZXB0Ly9hbnlOYW1lIGZvcmJpZGRlbiBjb25zdHJ1Y3RcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN0eHQtPmZsYWdzICYgWE1MX1JFTEFYTkdfSU5fTlNFWENFUFQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgY3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUk5HUF9QQVRfTlNOQU1FX0VYQ0VQVF9BTllOQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgbnNOYW1lL2V4Y2VwdC8vYW55TmFtZSBmb3JiaWRkZW4gY29uc3RydWN0XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoaXNkIGlzIG5vdCBhbiBlbHNlIHNpbmNlICJpbmNsdWRlIiBpcyB0cmFuc2Zvcm1lZAorICAgICAgICAgICAgICAgICAqIGludG8gYSBkaXYKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAiZGl2IikpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqbnM7CisgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgY2hpbGQsIGlucywgdG1wOworCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIGltcGxlbWVudHMgcnVsZSA0LjExCisgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICAgICAgICAgIG5zID0geG1sR2V0UHJvcChjdXIsIEJBRF9DQVNUICJucyIpOworCisgICAgICAgICAgICAgICAgICAgIGNoaWxkID0gY3VyLT5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICAgICAgaW5zID0gY3VyOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5zICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXhtbEhhc1Byb3AoY2hpbGQsIEJBRF9DQVNUICJucyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNldFByb3AoY2hpbGQsIEJBRF9DQVNUICJucyIsIG5zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBjaGlsZC0+bmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFVubGlua05vZGUoY2hpbGQpOworICAgICAgICAgICAgICAgICAgICAgICAgaW5zID0geG1sQWRkTmV4dFNpYmxpbmcoaW5zLCBjaGlsZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IHRtcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobnMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobnMpOworCQkgICAgLyoKKwkJICAgICAqIFNpbmNlIHdlIGFyZSBhYm91dCB0byBkZWxldGUgY3VyLCBpZiBpdCdzIG5zRGVmIGlzIG5vbi1OVUxMIHdlCisJCSAgICAgKiBuZWVkIHRvIHByZXNlcnZlIGl0IChpdCBjb250YWlucyB0aGUgbnMgZGVmaW5pdGlvbnMgZm9yIHRoZQorCQkgICAgICogY2hpbGRyZW4gd2UganVzdCBtb3ZlZCkuICBXZSdsbCBqdXN0IHN0aWNrIGl0IG9uIHRvIHRoZSBlbmQKKwkJICAgICAqIG9mIGN1ci0+cGFyZW50J3MgbGlzdCwgc2luY2UgaXQncyBuZXZlciBnb2luZyB0byBiZSByZS1zZXJpYWxpemVkCisJCSAgICAgKiAoYnVnIDE0MzczOCkuCisJCSAgICAgKi8KKwkJICAgIGlmIChjdXItPm5zRGVmICE9IE5VTEwpIHsKKwkJCXhtbE5zUHRyIHBhckRlZiA9ICh4bWxOc1B0cikmY3VyLT5wYXJlbnQtPm5zRGVmOworCQkJd2hpbGUgKHBhckRlZi0+bmV4dCAhPSBOVUxMKQorCQkJICAgIHBhckRlZiA9IHBhckRlZi0+bmV4dDsKKwkJCXBhckRlZi0+bmV4dCA9IGN1ci0+bnNEZWY7CisJCQljdXItPm5zRGVmID0gTlVMTDsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVsZXRlID0gY3VyOworICAgICAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgICAqIFNpbXBsaWZpY2F0aW9uIDQuMiB3aGl0ZXNwYWNlcworICAgICAgICAgKi8KKyAgICAgICAgZWxzZSBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorICAgICAgICAgICAgICAgICAoY3VyLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisgICAgICAgICAgICBpZiAoSVNfQkxBTktfTk9ERShjdXIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1ci0+cGFyZW50LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgheG1sU3RyRXF1YWwoY3VyLT5wYXJlbnQtPm5hbWUsIEJBRF9DQVNUICJ2YWx1ZSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICgheG1sU3RyRXF1YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY3VyLT5wYXJlbnQtPm5hbWUsIEJBRF9DQVNUICJwYXJhbSIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSA9IGN1cjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gc2tpcF9jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWxldGUgPSBjdXI7CisgICAgICAgICAgICBnb3RvIHNraXBfY2hpbGRyZW47CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBTa2lwIHRvIG5leHQgbm9kZQorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKChjdXItPmNoaWxkcmVuLT50eXBlICE9IFhNTF9FTlRJVFlfREVDTCkgJiYKKyAgICAgICAgICAgICAgICAoY3VyLT5jaGlsZHJlbi0+dHlwZSAhPSBYTUxfRU5USVRZX1JFRl9OT0RFKSAmJgorICAgICAgICAgICAgICAgIChjdXItPmNoaWxkcmVuLT50eXBlICE9IFhNTF9FTlRJVFlfTk9ERSkpIHsKKyAgICAgICAgICAgICAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICBza2lwX2NoaWxkcmVuOgorICAgICAgICBpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGN1ciA9IGN1ci0+bmV4dDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgY3VyID0gY3VyLT5wYXJlbnQ7CisgICAgICAgICAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAoY3VyID09IHJvb3QpIHsKKyAgICAgICAgICAgICAgICBjdXIgPSBOVUxMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChjdXIgIT0gTlVMTCk7CisgICAgfQorICAgIGlmIChkZWxldGUgIT0gTlVMTCkgeworICAgICAgICB4bWxVbmxpbmtOb2RlKGRlbGV0ZSk7CisgICAgICAgIHhtbEZyZWVOb2RlKGRlbGV0ZSk7CisgICAgICAgIGRlbGV0ZSA9IE5VTEw7CisgICAgfQorfQorCisvKioKKyAqIHhtbFJlbGF4TkdDbGVhbnVwRG9jOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAZG9jOiAgYW4geG1sZG9jUHRyIGRvY3VtZW50IHBvaW50ZXIKKyAqCisgKiBDbGVhbnVwIHRoZSBkb2N1bWVudCBmcm9tIHVud2FudGVkIG5vZGVzIGZvciBwYXJzaW5nLCByZXNvbHZlCisgKiBJbmNsdWRlIGFuZCBleHRlcm5hbFJlZiBsb29rdXBzLgorICoKKyAqIFJldHVybnMgdGhlIGNsZWFuZWQgdXAgZG9jdW1lbnQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxEb2NQdHIKK3htbFJlbGF4TkdDbGVhbnVwRG9jKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MpCit7CisgICAgeG1sTm9kZVB0ciByb290OworCisgICAgLyoKKyAgICAgKiBFeHRyYWN0IHRoZSByb290CisgICAgICovCisgICAgcm9vdCA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgaWYgKHJvb3QgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsICh4bWxOb2RlUHRyKSBkb2MsIFhNTF9STkdQX0VNUFRZLCAieG1sUmVsYXhOR1BhcnNlOiAlcyBpcyBlbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICBjdHh0LT5VUkwsIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICB4bWxSZWxheE5HQ2xlYW51cFRyZWUoY3R4dCwgcm9vdCk7CisgICAgcmV0dXJuIChkb2MpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdQYXJzZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyBwYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGEgc2NoZW1hIGRlZmluaXRpb24gcmVzb3VyY2UgYW5kIGJ1aWxkIGFuIGludGVybmFsCisgKiBYTUwgU2hlbWEgc3RydXR1cmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5zdGFuY2VzLgorICoKKyAqIFJldHVybnMgdGhlIGludGVybmFsIFhNTCBSZWxheE5HIHN0cnVjdHVyZSBidWlsdCBmcm9tIHRoZSByZXNvdXJjZSBvcgorICogICAgICAgICBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sUmVsYXhOR1B0cgoreG1sUmVsYXhOR1BhcnNlKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sUmVsYXhOR1B0ciByZXQgPSBOVUxMOworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sTm9kZVB0ciByb290OworCisgICAgeG1sUmVsYXhOR0luaXRUeXBlcygpOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIC8qCisgICAgICogRmlyc3Qgc3RlcCBpcyB0byBwYXJzZSB0aGUgaW5wdXQgZG9jdW1lbnQgaW50byBhbiBET00vSW5mb3NldAorICAgICAqLworICAgIGlmIChjdHh0LT5VUkwgIT0gTlVMTCkgeworICAgICAgICBkb2MgPSB4bWxSZWFkRmlsZSgoY29uc3QgY2hhciAqKSBjdHh0LT5VUkwsTlVMTCwwKTsKKyAgICAgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIE5VTEwsIFhNTF9STkdQX1BBUlNFX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR1BhcnNlOiBjb3VsZCBub3QgbG9hZCAlc1xuIiwgY3R4dC0+VVJMLAorICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGN0eHQtPmJ1ZmZlciAhPSBOVUxMKSB7CisgICAgICAgIGRvYyA9IHhtbFJlYWRNZW1vcnkoY3R4dC0+YnVmZmVyLCBjdHh0LT5zaXplLE5VTEwsTlVMTCwwKTsKKyAgICAgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIE5VTEwsIFhNTF9STkdQX1BBUlNFX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR1BhcnNlOiBjb3VsZCBub3QgcGFyc2Ugc2NoZW1hc1xuIiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICB9CisgICAgICAgIGRvYy0+VVJMID0geG1sU3RyZHVwKEJBRF9DQVNUICJpbl9tZW1vcnlfYnVmZmVyIik7CisgICAgICAgIGN0eHQtPlVSTCA9IHhtbFN0cmR1cChCQURfQ0FTVCAiaW5fbWVtb3J5X2J1ZmZlciIpOworICAgIH0gZWxzZSBpZiAoY3R4dC0+ZG9jdW1lbnQgIT0gTlVMTCkgeworICAgICAgICBkb2MgPSBjdHh0LT5kb2N1bWVudDsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxSbmdQRXJyKGN0eHQsIE5VTEwsIFhNTF9STkdQX0VNUFRZLAorICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HUGFyc2U6IG5vdGhpbmcgdG8gcGFyc2VcbiIsIE5VTEwsIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBjdHh0LT5kb2N1bWVudCA9IGRvYzsKKworICAgIC8qCisgICAgICogU29tZSBwcmVwcm9jZXNzaW5nIG9mIHRoZSBkb2N1bWVudCBjb250ZW50CisgICAgICovCisgICAgZG9jID0geG1sUmVsYXhOR0NsZWFudXBEb2MoY3R4dCwgZG9jKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZURvYyhjdHh0LT5kb2N1bWVudCk7CisgICAgICAgIGN0eHQtPmRvY3VtZW50ID0gTlVMTDsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZW4gZG8gdGhlIHBhcnNpbmcgZm9yIGdvb2QKKyAgICAgKi8KKyAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAocm9vdCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFJuZ1BFcnIoY3R4dCwgKHhtbE5vZGVQdHIpIGRvYywKKwkgICAgICAgICAgIFhNTF9STkdQX0VNUFRZLCAieG1sUmVsYXhOR1BhcnNlOiAlcyBpcyBlbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAoY3R4dC0+VVJMID8gY3R4dC0+VVJMIDogQkFEX0NBU1QgInNjaGVtYXMiKSwgTlVMTCk7CisJCisgICAgICAgIHhtbEZyZWVEb2MoY3R4dC0+ZG9jdW1lbnQpOworICAgICAgICBjdHh0LT5kb2N1bWVudCA9IE5VTEw7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHJldCA9IHhtbFJlbGF4TkdQYXJzZURvY3VtZW50KGN0eHQsIHJvb3QpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlRG9jKGN0eHQtPmRvY3VtZW50KTsKKyAgICAgICAgY3R4dC0+ZG9jdW1lbnQgPSBOVUxMOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQ2hlY2sgdGhlIHJlZi9kZWZpbmVzIGxpbmtzCisgICAgICovCisgICAgLyoKKyAgICAgKiB0cnkgdG8gcHJlcHJvY2VzcyBpbnRlcmxlYXZlcworICAgICAqLworICAgIGlmIChjdHh0LT5pbnRlcmxlYXZlcyAhPSBOVUxMKSB7CisgICAgICAgIHhtbEhhc2hTY2FuKGN0eHQtPmludGVybGVhdmVzLAorICAgICAgICAgICAgICAgICAgICAoeG1sSGFzaFNjYW5uZXIpIHhtbFJlbGF4TkdDb21wdXRlSW50ZXJsZWF2ZXMsIGN0eHQpOworICAgIH0KKworICAgIC8qCisgICAgICogaWYgdGhlcmUgd2FzIGEgcGFyc2luZyBlcnJvciByZXR1cm4gTlVMTAorICAgICAqLworICAgIGlmIChjdHh0LT5uYkVycm9ycyA+IDApIHsKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWUocmV0KTsKKyAgICAgICAgY3R4dC0+ZG9jdW1lbnQgPSBOVUxMOworICAgICAgICB4bWxGcmVlRG9jKGRvYyk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiB0cnkgdG8gY29tcGlsZSAocGFydHMgb2YpIHRoZSBzY2hlbWFzCisgICAgICovCisgICAgaWYgKChyZXQtPnRvcGdyYW1tYXIgIT0gTlVMTCkgJiYgKHJldC0+dG9wZ3JhbW1hci0+c3RhcnQgIT0gTlVMTCkpIHsKKyAgICAgICAgaWYgKHJldC0+dG9wZ3JhbW1hci0+c3RhcnQtPnR5cGUgIT0gWE1MX1JFTEFYTkdfU1RBUlQpIHsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmOworCisgICAgICAgICAgICBkZWYgPSB4bWxSZWxheE5HTmV3RGVmaW5lKGN0eHQsIE5VTEwpOworICAgICAgICAgICAgaWYgKGRlZiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZGVmLT50eXBlID0gWE1MX1JFTEFYTkdfU1RBUlQ7CisgICAgICAgICAgICAgICAgZGVmLT5jb250ZW50ID0gcmV0LT50b3BncmFtbWFyLT5zdGFydDsKKyAgICAgICAgICAgICAgICByZXQtPnRvcGdyYW1tYXItPnN0YXJ0ID0gZGVmOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHhtbFJlbGF4TkdUcnlDb21waWxlKGN0eHQsIHJldC0+dG9wZ3JhbW1hci0+c3RhcnQpOworICAgIH0KKworICAgIC8qCisgICAgICogVHJhbnNmZXIgdGhlIHBvaW50ZXIgZm9yIGNsZWFudXAgYXQgdGhlIHNjaGVtYSBsZXZlbC4KKyAgICAgKi8KKyAgICByZXQtPmRvYyA9IGRvYzsKKyAgICBjdHh0LT5kb2N1bWVudCA9IE5VTEw7CisgICAgcmV0LT5kb2N1bWVudHMgPSBjdHh0LT5kb2N1bWVudHM7CisgICAgY3R4dC0+ZG9jdW1lbnRzID0gTlVMTDsKKworICAgIHJldC0+aW5jbHVkZXMgPSBjdHh0LT5pbmNsdWRlczsKKyAgICBjdHh0LT5pbmNsdWRlcyA9IE5VTEw7CisgICAgcmV0LT5kZWZOciA9IGN0eHQtPmRlZk5yOworICAgIHJldC0+ZGVmVGFiID0gY3R4dC0+ZGVmVGFiOworICAgIGN0eHQtPmRlZlRhYiA9IE5VTEw7CisgICAgaWYgKGN0eHQtPmlkcmVmID09IDEpCisgICAgICAgIHJldC0+aWRyZWYgPSAxOworCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZXJyOiAgdGhlIGVycm9yIGNhbGxiYWNrCisgKiBAd2FybjogIHRoZSB3YXJuaW5nIGNhbGxiYWNrCisgKiBAY3R4OiAgY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzCisgKgorICogU2V0IHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHZhbGlkYXRpb24gY29udGV4dAorICovCit2b2lkCit4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyBlcnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm4sIHZvaWQgKmN0eCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgY3R4dC0+ZXJyb3IgPSBlcnI7CisgICAgY3R4dC0+d2FybmluZyA9IHdhcm47CisgICAgY3R4dC0+c2Vycm9yID0gTlVMTDsKKyAgICBjdHh0LT51c2VyRGF0YSA9IGN0eDsKK30KKworLyoqCisgKiB4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycjogIHRoZSBlcnJvciBjYWxsYmFjayByZXN1bHQKKyAqIEB3YXJuOiAgdGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0CisgKiBAY3R4OiAgY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzIHJlc3VsdAorICoKKyAqIEdldCB0aGUgY2FsbGJhY2sgaW5mb3JtYXRpb24gdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCAwIG90aGVyd2lzZS4KKyAqLworaW50Cit4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzKHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyAqIGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMgKiB3YXJuLCB2b2lkICoqY3R4KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChlcnIgIT0gTlVMTCkKKyAgICAgICAgKmVyciA9IGN0eHQtPmVycm9yOworICAgIGlmICh3YXJuICE9IE5VTEwpCisgICAgICAgICp3YXJuID0gY3R4dC0+d2FybmluZzsKKyAgICBpZiAoY3R4ICE9IE5VTEwpCisgICAgICAgICpjdHggPSBjdHh0LT51c2VyRGF0YTsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHBhcnNlciBjb250ZXh0CisgKiBAc2Vycm9yOiAgdGhlIGVycm9yIGNhbGxiYWNrCisgKiBAY3R4OiAgY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzCisgKgorICogU2V0IHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgdXNlZCB0byBoYW5kbGUgZXJyb3JzIGZvciBhIHBhcnNpbmcgY29udGV4dAorICovCit2b2lkCit4bWxSZWxheE5HU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyh4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCSAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNlcnJvciwKKwkJCQkgICAgdm9pZCAqY3R4KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdHh0LT5zZXJyb3IgPSBzZXJyb3I7CisgICAgY3R4dC0+ZXJyb3IgPSBOVUxMOworICAgIGN0eHQtPndhcm5pbmcgPSBOVUxMOworICAgIGN0eHQtPnVzZXJEYXRhID0gY3R4OworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCUR1bXAgYmFjayBhIGNvbXBpbGVkIGZvcm0JCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgeG1sUmVsYXhOR0R1bXBEZWZpbmUoRklMRSAqIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lKTsKKworLyoqCisgKiB4bWxSZWxheE5HRHVtcERlZmluZXM6CisgKiBAb3V0cHV0OiAgdGhlIGZpbGUgb3V0cHV0CisgKiBAZGVmaW5lczogIGEgbGlzdCBvZiBkZWZpbmUgc3RydWN0dXJlcworICoKKyAqIER1bXAgYSBSZWxheE5HIHN0cnVjdHVyZSBiYWNrCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HRHVtcERlZmluZXMoRklMRSAqIG91dHB1dCwgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmVzKQoreworICAgIHdoaWxlIChkZWZpbmVzICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmUob3V0cHV0LCBkZWZpbmVzKTsKKyAgICAgICAgZGVmaW5lcyA9IGRlZmluZXMtPm5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFJlbGF4TkdEdW1wRGVmaW5lOgorICogQG91dHB1dDogIHRoZSBmaWxlIG91dHB1dAorICogQGRlZmluZTogIGEgZGVmaW5lIHN0cnVjdHVyZQorICoKKyAqIER1bXAgYSBSZWxheE5HIHN0cnVjdHVyZSBiYWNrCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWxheE5HRHVtcERlZmluZShGSUxFICogb3V0cHV0LCB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZSkKK3sKKyAgICBpZiAoZGVmaW5lID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKGRlZmluZS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VNUFRZOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8ZW1wdHkvPlxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19OT1RfQUxMT1dFRDoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPG5vdEFsbG93ZWQvPlxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19URVhUOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8dGV4dC8+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VMRU1FTlQ6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjxlbGVtZW50PlxuIik7CisgICAgICAgICAgICBpZiAoZGVmaW5lLT5uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjxuYW1lIik7CisgICAgICAgICAgICAgICAgaWYgKGRlZmluZS0+bnMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICIgbnM9XCIlc1wiIiwgZGVmaW5lLT5ucyk7CisgICAgICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI+JXM8L25hbWU+XG4iLCBkZWZpbmUtPm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmVzKG91dHB1dCwgZGVmaW5lLT5hdHRycyk7CisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcERlZmluZXMob3V0cHV0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8L2VsZW1lbnQ+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0xJU1Q6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjxsaXN0PlxuIik7CisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcERlZmluZXMob3V0cHV0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8L2xpc3Q+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09ORU9STU9SRToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPG9uZU9yTW9yZT5cbiIpOworICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmVzKG91dHB1dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPC9vbmVPck1vcmU+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1pFUk9PUk1PUkU6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjx6ZXJvT3JNb3JlPlxuIik7CisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcERlZmluZXMob3V0cHV0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8L3plcm9Pck1vcmU+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0NIT0lDRToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPGNob2ljZT5cbiIpOworICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmVzKG91dHB1dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPC9jaG9pY2U+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0dST1VQOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8Z3JvdXA+XG4iKTsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdEdW1wRGVmaW5lcyhvdXRwdXQsIGRlZmluZS0+Y29udGVudCk7CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjwvZ3JvdXA+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0lOVEVSTEVBVkU6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjxpbnRlcmxlYXZlPlxuIik7CisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcERlZmluZXMob3V0cHV0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8L2ludGVybGVhdmU+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09QVElPTkFMOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8b3B0aW9uYWw+XG4iKTsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdEdW1wRGVmaW5lcyhvdXRwdXQsIGRlZmluZS0+Y29udGVudCk7CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjwvb3B0aW9uYWw+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0FUVFJJQlVURToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPGF0dHJpYnV0ZT5cbiIpOworICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmVzKG91dHB1dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPC9hdHRyaWJ1dGU+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0RFRjoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPGRlZmluZSIpOworICAgICAgICAgICAgaWYgKGRlZmluZS0+bmFtZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiIG5hbWU9XCIlc1wiIiwgZGVmaW5lLT5uYW1lKTsKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPlxuIik7CisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcERlZmluZXMob3V0cHV0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8L2RlZmluZT5cbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUkVGOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8cmVmIik7CisgICAgICAgICAgICBpZiAoZGVmaW5lLT5uYW1lICE9IE5VTEwpCisgICAgICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICIgbmFtZT1cIiVzXCIiLCBkZWZpbmUtPm5hbWUpOworICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI+XG4iKTsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdEdW1wRGVmaW5lcyhvdXRwdXQsIGRlZmluZS0+Y29udGVudCk7CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjwvcmVmPlxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19QQVJFTlRSRUY6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIjxwYXJlbnRSZWYiKTsKKyAgICAgICAgICAgIGlmIChkZWZpbmUtPm5hbWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIiBuYW1lPVwiJXNcIiIsIGRlZmluZS0+bmFtZSk7CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIj5cbiIpOworICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmVzKG91dHB1dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiPC9wYXJlbnRSZWY+XG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VYVEVSTkFMUkVGOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8ZXh0ZXJuYWxSZWY+Iik7CisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcERlZmluZXMob3V0cHV0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICI8L2V4dGVybmFsUmVmPlxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19EQVRBVFlQRToKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19WQUxVRToKKyAgICAgICAgICAgIFRPRE8gYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfU1RBUlQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhDRVBUOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1BBUkFNOgorICAgICAgICAgICAgVE9ETyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19OT09QOgorICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmVzKG91dHB1dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLyoqCisgKiB4bWxSZWxheE5HRHVtcEdyYW1tYXI6CisgKiBAb3V0cHV0OiAgdGhlIGZpbGUgb3V0cHV0CisgKiBAZ3JhbW1hcjogIGEgZ3JhbW1hciBzdHJ1Y3R1cmUKKyAqIEB0b3A6ICBpcyB0aGlzIGEgdG9wIGdyYW1tYXIgCisgKgorICogRHVtcCBhIFJlbGF4Tkcgc3RydWN0dXJlIGJhY2sKKyAqLworc3RhdGljIHZvaWQKK3htbFJlbGF4TkdEdW1wR3JhbW1hcihGSUxFICogb3V0cHV0LCB4bWxSZWxheE5HR3JhbW1hclB0ciBncmFtbWFyLCBpbnQgdG9wKQoreworICAgIGlmIChncmFtbWFyID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIGZwcmludGYob3V0cHV0LCAiPGdyYW1tYXIiKTsKKyAgICBpZiAodG9wKQorICAgICAgICBmcHJpbnRmKG91dHB1dCwgIiB4bWxucz1cImh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wXCIiKTsKKyAgICBzd2l0Y2ggKGdyYW1tYXItPmNvbWJpbmUpIHsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19DT01CSU5FX1VOREVGSU5FRDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0NPTUJJTkVfQ0hPSUNFOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICIgY29tYmluZT1cImNob2ljZVwiIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19DT01CSU5FX0lOVEVSTEVBVkU6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIiBjb21iaW5lPVwiaW50ZXJsZWF2ZVwiIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiIDwhLS0gaW52YWxpZCBjb21iaW5lIHZhbHVlIC0tPiIpOworICAgIH0KKyAgICBmcHJpbnRmKG91dHB1dCwgIj5cbiIpOworICAgIGlmIChncmFtbWFyLT5zdGFydCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiIDwhLS0gZ3JhbW1hciBoYWQgbm8gc3RhcnQgLS0+Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICI8c3RhcnQ+XG4iKTsKKyAgICAgICAgeG1sUmVsYXhOR0R1bXBEZWZpbmUob3V0cHV0LCBncmFtbWFyLT5zdGFydCk7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiPC9zdGFydD5cbiIpOworICAgIH0KKyAgICAvKiBUT0RPID8gRHVtcCB0aGUgZGVmaW5lcyA/ICovCisgICAgZnByaW50ZihvdXRwdXQsICI8L2dyYW1tYXI+XG4iKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HRHVtcDoKKyAqIEBvdXRwdXQ6ICB0aGUgZmlsZSBvdXRwdXQKKyAqIEBzY2hlbWE6ICBhIHNjaGVtYSBzdHJ1Y3R1cmUKKyAqCisgKiBEdW1wIGEgUmVsYXhORyBzdHJ1Y3R1cmUgYmFjaworICovCit2b2lkCit4bWxSZWxheE5HRHVtcChGSUxFICogb3V0cHV0LCB4bWxSZWxheE5HUHRyIHNjaGVtYSkKK3sKKyAgICBpZiAob3V0cHV0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoc2NoZW1hID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICJSZWxheE5HIGVtcHR5IG9yIGZhaWxlZCB0byBjb21waWxlXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBmcHJpbnRmKG91dHB1dCwgIlJlbGF4Tkc6ICIpOworICAgIGlmIChzY2hlbWEtPmRvYyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAibm8gZG9jdW1lbnRcbiIpOworICAgIH0gZWxzZSBpZiAoc2NoZW1hLT5kb2MtPlVSTCAhPSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiJXNcbiIsIHNjaGVtYS0+ZG9jLT5VUkwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKKyAgICB9CisgICAgaWYgKHNjaGVtYS0+dG9wZ3JhbW1hciA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiUmVsYXhORyBoYXMgbm8gdG9wIGdyYW1tYXJcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHhtbFJlbGF4TkdEdW1wR3JhbW1hcihvdXRwdXQsIHNjaGVtYS0+dG9wZ3JhbW1hciwgMSk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0R1bXBUcmVlOgorICogQG91dHB1dDogIHRoZSBmaWxlIG91dHB1dAorICogQHNjaGVtYTogIGEgc2NoZW1hIHN0cnVjdHVyZQorICoKKyAqIER1bXAgdGhlIHRyYW5zZm9ybWVkIFJlbGF4TkcgdHJlZS4KKyAqLwordm9pZAoreG1sUmVsYXhOR0R1bXBUcmVlKEZJTEUgKiBvdXRwdXQsIHhtbFJlbGF4TkdQdHIgc2NoZW1hKQoreworICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChzY2hlbWEgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlJlbGF4TkcgZW1wdHkgb3IgZmFpbGVkIHRvIGNvbXBpbGVcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzY2hlbWEtPmRvYyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAibm8gZG9jdW1lbnRcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbERvY0R1bXAob3V0cHV0LCBzY2hlbWEtPmRvYyk7CisgICAgfQorfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCVZhbGlkYXRpb24gb2YgY29tcGlsZWQgY29udGVudAkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZSk7CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkYXRlQ29tcGlsZWRDYWxsYmFjazoKKyAqIEBleGVjOiAgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbnN0YW5jZQorICogQHRva2VuOiAgdGhlIHRva2VuIHdoaWNoIG1hdGNoZWQKKyAqIEB0cmFuc2RhdGE6ICBjYWxsYmFjayBkYXRhLCB0aGUgZGVmaW5lIGZvciB0aGUgc3ViZWxlbWVudCBpZiBhdmFpbGFibGUKKyBAIEBpbnB1dGRhdGE6ICBjYWxsYmFjayBkYXRhLCB0aGUgUmVsYXggTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogSGFuZGxlIHRoZSBjYWxsYmFjayBhbmQgaWYgbmVlZGVkIHZhbGlkYXRlIHRoZSBlbGVtZW50IGNoaWxkcmVuLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR1ZhbGlkYXRlQ29tcGlsZWRDYWxsYmFjayh4bWxSZWdFeGVjQ3R4dFB0ciBleGVjIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdHJhbnNkYXRhLCB2b2lkICppbnB1dGRhdGEpCit7CisgICAgeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0ID0gKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIpIGlucHV0ZGF0YTsKKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZSA9ICh4bWxSZWxheE5HRGVmaW5lUHRyKSB0cmFuc2RhdGE7CisgICAgaW50IHJldDsKKworI2lmZGVmIERFQlVHX0NPTVBJTEUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIkNvbXBpbGVkIGNhbGxiYWNrIGZvcjogJyVzJ1xuIiwgdG9rZW4pOworI2VuZGlmCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNhbGxiYWNrIG9uICVzIG1pc3NpbmcgY29udGV4dFxuIiwgdG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWZpbmUgPT0gTlVMTCkgeworICAgICAgICBpZiAodG9rZW5bMF0gPT0gJyMnKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNhbGxiYWNrIG9uICVzIG1pc3NpbmcgZGVmaW5lXG4iLCB0b2tlbik7CisgICAgICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZXJyTm8gPT0gWE1MX1JFTEFYTkdfT0spKQorICAgICAgICAgICAgY3R4dC0+ZXJyTm8gPSBYTUxfUkVMQVhOR19FUlJfSU5URVJOQUw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChkZWZpbmUgPT0gTlVMTCkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjYWxsYmFjayBvbiAlcyBtaXNzaW5nIGluZm9cbiIsIHRva2VuKTsKKyAgICAgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5lcnJObyA9PSBYTUxfUkVMQVhOR19PSykpCisgICAgICAgICAgICBjdHh0LT5lcnJObyA9IFhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTDsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAoZGVmaW5lLT50eXBlICE9IFhNTF9SRUxBWE5HX0VMRU1FTlQpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjYWxsYmFjayBvbiAlcyBkZWZpbmUgaXMgbm90IGVsZW1lbnRcbiIsIHRva2VuKTsKKyAgICAgICAgaWYgKGN0eHQtPmVyck5vID09IFhNTF9SRUxBWE5HX09LKQorICAgICAgICAgICAgY3R4dC0+ZXJyTm8gPSBYTUxfUkVMQVhOR19FUlJfSU5URVJOQUw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRGVmaW5pdGlvbihjdHh0LCBkZWZpbmUpOworICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgY3R4dC0+cGVyciA9IHJldDsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVDb21waWxlZENvbnRlbnQ6CisgKiBAY3R4dDogIHRoZSBSZWxheE5HIHZhbGlkYXRpb24gY29udGV4dAorICogQHJlZ2V4cDogIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gYXMgY29tcGlsZWQKKyAqIEBjb250ZW50OiAgbGlzdCBvZiBjaGlsZHJlbiB0byB0ZXN0IGFnYWluc3QgdGhlIHJlZ2V4cAorICoKKyAqIFZhbGlkYXRlIHRoZSBjb250ZW50IG1vZGVsIG9mIGFuIGVsZW1lbnQgb3Igc3RhcnQgdXNpbmcgdGhlIHJlZ2V4cAorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZUNvbXBpbGVkQ29udGVudCh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVnZXhwUHRyIHJlZ2V4cCwgeG1sTm9kZVB0ciBjb250ZW50KQoreworICAgIHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWM7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgaW50IHJldCA9IDA7CisgICAgaW50IG9sZHBlcnI7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHJlZ2V4cCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgb2xkcGVyciA9IGN0eHQtPnBlcnI7CisgICAgZXhlYyA9IHhtbFJlZ05ld0V4ZWNDdHh0KHJlZ2V4cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkYXRlQ29tcGlsZWRDYWxsYmFjaywgY3R4dCk7CisgICAgY3R4dC0+cGVyciA9IDA7CisgICAgY3VyID0gY29udGVudDsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+c3RhdGUtPnNlcSA9IGN1cjsKKyAgICAgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgICAgICBpZiAoeG1sSXNCbGFua05vZGUoY3VyKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgQkFEX0NBU1QgIiN0ZXh0IiwgY3R4dCk7CisgICAgICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURfRVJSMihYTUxfUkVMQVhOR19FUlJfVEVYVFdST05HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ci0+cGFyZW50LT5uYW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgICAgICAgICAgaWYgKGN1ci0+bnMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWdFeGVjUHVzaFN0cmluZzIoZXhlYywgY3VyLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5ucy0+aHJlZiwgY3R4dCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgY3VyLT5uYW1lLCBjdHh0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURfRVJSMihYTUxfUkVMQVhOR19FUlJfRUxFTVdST05HLCBjdXItPm5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLyoKKyAgICAgICAgICogU3dpdGNoIHRvIG5leHQgZWxlbWVudAorICAgICAgICAgKi8KKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICByZXQgPSB4bWxSZWdFeGVjUHVzaFN0cmluZyhleGVjLCBOVUxMLCBOVUxMKTsKKyAgICBpZiAocmV0ID09IDEpIHsKKyAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgY3R4dC0+c3RhdGUtPnNlcSA9IE5VTEw7CisgICAgfSBlbHNlIGlmIChyZXQgPT0gMCkgeworICAgICAgICAvKgorICAgICAgICAgKiBUT0RPOiBnZXQgc29tZSBvZiB0aGUgbmFtZXMgbmVlZGVkIHRvIGV4aXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgZXhlYworICAgICAgICAgKi8KKyAgICAgICAgVkFMSURfRVJSMihYTUxfUkVMQVhOR19FUlJfTk9FTEVNLCBCQURfQ0FTVCAiIik7CisgICAgICAgIHJldCA9IC0xOworICAgICAgICBpZiAoKGN0eHQtPmZsYWdzICYgRkxBR1NfSUdOT1JBQkxFKSA9PSAwKQorICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBWYWxpZEVycm9yKGN0eHQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IC0xOworICAgIH0KKyAgICB4bWxSZWdGcmVlRXhlY0N0eHQoZXhlYyk7CisgICAgLyoKKyAgICAgKiBUaGVyZSBtaWdodCBiZSBjb250ZW50IG1vZGVsIGVycm9ycyBvdXRzaWRlIG9mIHRoZSBwdXJlCisgICAgICogcmVnZXhwIHZhbGlkYXRpb24sIGUuZy4gZm9yIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICovCisgICAgaWYgKChyZXQgPT0gMCkgJiYgKGN0eHQtPnBlcnIgIT0gMCkpIHsKKyAgICAgICAgcmV0ID0gY3R4dC0+cGVycjsKKyAgICB9CisgICAgY3R4dC0+cGVyciA9IG9sZHBlcnI7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCVByb2dyZXNzaXZlIHZhbGlkYXRpb24gb2Ygd2hlbiBwb3NzaWJsZQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IHhtbFJlbGF4TkdWYWxpZGF0ZUF0dHJpYnV0ZUxpc3QoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lcyk7CitzdGF0aWMgaW50IHhtbFJlbGF4TkdWYWxpZGF0ZUVsZW1lbnRFbmQoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkb2xvZyk7CitzdGF0aWMgdm9pZCB4bWxSZWxheE5HTG9nQmVzdEVycm9yKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCk7CisKKy8qKgorICogeG1sUmVsYXhOR0VsZW1QdXNoOgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZXhlYzogIHRoZSByZWdleHAgcnVudGltZSBmb3IgdGhlIG5ldyBjb250ZW50IG1vZGVsCisgKgorICogUHVzaCBhIG5ldyByZWdleHAgZm9yIHRoZSBjdXJyZW50IG5vZGUgY29udGVudCBtb2RlbCBvbiB0aGUgc3RhY2sKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HRWxlbVB1c2goeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxSZWdFeGVjQ3R4dFB0ciBleGVjKQoreworICAgIGlmIChjdHh0LT5lbGVtVGFiID09IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+ZWxlbU1heCA9IDEwOworICAgICAgICBjdHh0LT5lbGVtVGFiID0gKHhtbFJlZ0V4ZWNDdHh0UHRyICopIHhtbE1hbGxvYyhjdHh0LT5lbGVtTWF4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxSZWdFeGVjQ3R4dFB0cikpOworICAgICAgICBpZiAoY3R4dC0+ZWxlbVRhYiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KGN0eHQsICJ2YWxpZGF0aW5nXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjdHh0LT5lbGVtTnIgPj0gY3R4dC0+ZWxlbU1heCkgeworICAgICAgICBjdHh0LT5lbGVtTWF4ICo9IDI7CisgICAgICAgIGN0eHQtPmVsZW1UYWIgPSAoeG1sUmVnRXhlY0N0eHRQdHIgKikgeG1sUmVhbGxvYyhjdHh0LT5lbGVtVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+ZWxlbU1heCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxSZWdFeGVjQ3R4dFB0cikpOworICAgICAgICBpZiAoY3R4dC0+ZWxlbVRhYiA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KGN0eHQsICJ2YWxpZGF0aW5nXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgfQorICAgIGN0eHQtPmVsZW1UYWJbY3R4dC0+ZWxlbU5yKytdID0gZXhlYzsKKyAgICBjdHh0LT5lbGVtID0gZXhlYzsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdFbGVtUG9wOgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogUG9wIHRoZSByZWdleHAgb2YgdGhlIGN1cnJlbnQgbm9kZSBjb250ZW50IG1vZGVsIGZyb20gdGhlIHN0YWNrCisgKgorICogUmV0dXJucyB0aGUgZXhlYyBvciBOVUxMIGlmIGVtcHR5CisgKi8KK3N0YXRpYyB4bWxSZWdFeGVjQ3R4dFB0cgoreG1sUmVsYXhOR0VsZW1Qb3AoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbFJlZ0V4ZWNDdHh0UHRyIHJldDsKKworICAgIGlmIChjdHh0LT5lbGVtTnIgPD0gMCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjdHh0LT5lbGVtTnItLTsKKyAgICByZXQgPSBjdHh0LT5lbGVtVGFiW2N0eHQtPmVsZW1Ocl07CisgICAgY3R4dC0+ZWxlbVRhYltjdHh0LT5lbGVtTnJdID0gTlVMTDsKKyAgICBpZiAoY3R4dC0+ZWxlbU5yID4gMCkKKyAgICAgICAgY3R4dC0+ZWxlbSA9IGN0eHQtPmVsZW1UYWJbY3R4dC0+ZWxlbU5yIC0gMV07CisgICAgZWxzZQorICAgICAgICBjdHh0LT5lbGVtID0gTlVMTDsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkYXRlUHJvZ3Jlc3NpdmVDYWxsYmFjazoKKyAqIEBleGVjOiAgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbnN0YW5jZQorICogQHRva2VuOiAgdGhlIHRva2VuIHdoaWNoIG1hdGNoZWQKKyAqIEB0cmFuc2RhdGE6ICBjYWxsYmFjayBkYXRhLCB0aGUgZGVmaW5lIGZvciB0aGUgc3ViZWxlbWVudCBpZiBhdmFpbGFibGUKKyBAIEBpbnB1dGRhdGE6ICBjYWxsYmFjayBkYXRhLCB0aGUgUmVsYXggTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogSGFuZGxlIHRoZSBjYWxsYmFjayBhbmQgaWYgbmVlZGVkIHZhbGlkYXRlIHRoZSBlbGVtZW50IGNoaWxkcmVuLgorICogc29tZSBvZiB0aGUgaW4vb3V0IGluZm9ybWF0aW9ucyBhcmUgcGFzc2VkIHZpYSB0aGUgY29udGV4dCBpbiBAaW5wdXRkYXRhLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR1ZhbGlkYXRlUHJvZ3Jlc3NpdmVDYWxsYmFjayh4bWxSZWdFeGVjQ3R4dFB0ciBleGVjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdHJhbnNkYXRhLCB2b2lkICppbnB1dGRhdGEpCit7CisgICAgeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0ID0gKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIpIGlucHV0ZGF0YTsKKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZSA9ICh4bWxSZWxheE5HRGVmaW5lUHRyKSB0cmFuc2RhdGE7CisgICAgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgc3RhdGUsIG9sZHN0YXRlOworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpbnQgcmV0ID0gMCwgb2xkZmxhZ3M7CisKKyNpZmRlZiBERUJVR19QUk9HUkVTU0lWRQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAiUHJvZ3Jlc3NpdmUgY2FsbGJhY2sgZm9yOiAnJXMnXG4iLCB0b2tlbik7CisjZW5kaWYKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiY2FsbGJhY2sgb24gJXMgbWlzc2luZyBjb250ZXh0XG4iLCB0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbm9kZSA9IGN0eHQtPnBub2RlOworICAgIGN0eHQtPnBzdGF0ZSA9IDE7CisgICAgaWYgKGRlZmluZSA9PSBOVUxMKSB7CisgICAgICAgIGlmICh0b2tlblswXSA9PSAnIycpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiY2FsbGJhY2sgb24gJXMgbWlzc2luZyBkZWZpbmVcbiIsIHRva2VuKTsKKyAgICAgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5lcnJObyA9PSBYTUxfUkVMQVhOR19PSykpCisgICAgICAgICAgICBjdHh0LT5lcnJObyA9IFhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTDsKKyAgICAgICAgY3R4dC0+cHN0YXRlID0gLTE7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChkZWZpbmUgPT0gTlVMTCkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjYWxsYmFjayBvbiAlcyBtaXNzaW5nIGluZm9cbiIsIHRva2VuKTsKKyAgICAgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5lcnJObyA9PSBYTUxfUkVMQVhOR19PSykpCisgICAgICAgICAgICBjdHh0LT5lcnJObyA9IFhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTDsKKyAgICAgICAgY3R4dC0+cHN0YXRlID0gLTE7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGRlZmluZS0+dHlwZSAhPSBYTUxfUkVMQVhOR19FTEVNRU5UKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiY2FsbGJhY2sgb24gJXMgZGVmaW5lIGlzIG5vdCBlbGVtZW50XG4iLCB0b2tlbik7CisgICAgICAgIGlmIChjdHh0LT5lcnJObyA9PSBYTUxfUkVMQVhOR19PSykKKyAgICAgICAgICAgIGN0eHQtPmVyck5vID0gWE1MX1JFTEFYTkdfRVJSX0lOVEVSTkFMOworICAgICAgICBjdHh0LT5wc3RhdGUgPSAtMTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSB7CisgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9URUxFTSk7CisgICAgICAgIGlmICgoY3R4dC0+ZmxhZ3MgJiBGTEFHU19JR05PUkFCTEUpID09IDApCisgICAgICAgICAgICB4bWxSZWxheE5HRHVtcFZhbGlkRXJyb3IoY3R4dCk7CisgICAgICAgIGN0eHQtPnBzdGF0ZSA9IC0xOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWZpbmUtPmNvbnRNb2RlbCA9PSBOVUxMKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIHRoaXMgbm9kZSBjYW5ub3QgYmUgdmFsaWRhdGVkIGluIGEgc3RyZWFtYWJsZSBmYXNoaW9uCisgICAgICAgICAqLworI2lmZGVmIERFQlVHX1BST0dSRVNTSVZFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIkVsZW1lbnQgJyVzJyB2YWxpZGF0aW9uIGlzIG5vdCBzdHJlYW1hYmxlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4pOworI2VuZGlmCisgICAgICAgIGN0eHQtPnBzdGF0ZSA9IDA7CisgICAgICAgIGN0eHQtPnBkZWYgPSBkZWZpbmU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZXhlYyA9IHhtbFJlZ05ld0V4ZWNDdHh0KGRlZmluZS0+Y29udE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVmFsaWRhdGVQcm9ncmVzc2l2ZUNhbGxiYWNrLCBjdHh0KTsKKyAgICBpZiAoZXhlYyA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPnBzdGF0ZSA9IC0xOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHhtbFJlbGF4TkdFbGVtUHVzaChjdHh0LCBleGVjKTsKKworICAgIC8qCisgICAgICogVmFsaWRhdGUgdGhlIGF0dHJpYnV0ZXMgcGFydCBvZiB0aGUgY29udGVudC4KKyAgICAgKi8KKyAgICBzdGF0ZSA9IHhtbFJlbGF4TkdOZXdWYWxpZFN0YXRlKGN0eHQsIG5vZGUpOworICAgIGlmIChzdGF0ZSA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPnBzdGF0ZSA9IC0xOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisgICAgY3R4dC0+c3RhdGUgPSBzdGF0ZTsKKyAgICBpZiAoZGVmaW5lLT5hdHRycyAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZUF0dHJpYnV0ZUxpc3QoY3R4dCwgZGVmaW5lLT5hdHRycyk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgY3R4dC0+cHN0YXRlID0gLTE7CisgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQsIG5vZGUtPm5hbWUpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgIGN0eHQtPnN0YXRlLT5zZXEgPSBOVUxMOworICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVFbGVtZW50RW5kKGN0eHQsIDEpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGN0eHQtPnBzdGF0ZSA9IC0xOworICAgICAgICB9CisgICAgICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgfSBlbHNlIGlmIChjdHh0LT5zdGF0ZXMgIT0gTlVMTCkgeworICAgICAgICBpbnQgdG1wID0gLTEsIGk7CisKKyAgICAgICAgb2xkZmxhZ3MgPSBjdHh0LT5mbGFnczsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+c3RhdGVzLT5uYlN0YXRlOyBpKyspIHsKKyAgICAgICAgICAgIHN0YXRlID0gY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtpXTsKKyAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gc3RhdGU7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxID0gTlVMTDsKKworICAgICAgICAgICAgaWYgKHhtbFJlbGF4TkdWYWxpZGF0ZUVsZW1lbnRFbmQoY3R4dCwgMCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHRtcCA9IDA7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRtcCAhPSAwKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogdmFsaWRhdGlvbiBlcnJvciwgbG9nIHRoZSBtZXNzYWdlIGZvciB0aGUgImJlc3QiIG9uZQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjdHh0LT5mbGFncyB8PSBGTEFHU19JR05PUkFCTEU7CisgICAgICAgICAgICB4bWxSZWxheE5HTG9nQmVzdEVycm9yKGN0eHQpOworICAgICAgICB9CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGU7IGkrKykgeworICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsIGN0eHQtPnN0YXRlcy0+dGFiU3RhdGVbaV0pOworICAgICAgICB9CisgICAgICAgIHhtbFJlbGF4TkdGcmVlU3RhdGVzKGN0eHQsIGN0eHQtPnN0YXRlcyk7CisgICAgICAgIGN0eHQtPnN0YXRlcyA9IE5VTEw7CisgICAgICAgIGlmICgocmV0ID09IDApICYmICh0bXAgPT0gLTEpKQorICAgICAgICAgICAgY3R4dC0+cHN0YXRlID0gLTE7CisgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisgICAgfQorICAgIGlmIChjdHh0LT5wc3RhdGUgPT0gLTEpIHsKKyAgICAgICAgaWYgKChjdHh0LT5mbGFncyAmIEZMQUdTX0lHTk9SQUJMRSkgPT0gMCkgeworICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBWYWxpZEVycm9yKGN0eHQpOworICAgICAgICB9CisgICAgfQorICAgIGN0eHQtPnN0YXRlID0gb2xkc3RhdGU7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQ6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkb2M6ICBhIGRvY3VtZW50IGluc3RhbmNlCisgKiBAZWxlbTogIGFuIGVsZW1lbnQgaW5zdGFuY2UKKyAqCisgKiBQdXNoIGEgbmV3IGVsZW1lbnQgc3RhcnQgb24gdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBzdGFjay4KKyAqCisgKiByZXR1cm5zIDEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAwIGlmIHZhbGlkYXRpbmcgdGhlCisgKiAgICAgICAgIGVsZW1lbnQgcmVxdWlyZXMgYSBmdWxsIG5vZGUsIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hFbGVtZW50KHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbERvY1B0ciBkb2MgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZWxlbSkKK3sKKyAgICBpbnQgcmV0ID0gMTsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZWxlbSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyNpZmRlZiBERUJVR19QUk9HUkVTU0lWRQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiUHVzaEVsZW0gJXNcbiIsIGVsZW0tPm5hbWUpOworI2VuZGlmCisgICAgaWYgKGN0eHQtPmVsZW0gPT0gMCkgeworICAgICAgICB4bWxSZWxheE5HUHRyIHNjaGVtYTsKKyAgICAgICAgeG1sUmVsYXhOR0dyYW1tYXJQdHIgZ3JhbW1hcjsKKyAgICAgICAgeG1sUmVnRXhlY0N0eHRQdHIgZXhlYzsKKyAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmU7CisKKyAgICAgICAgc2NoZW1hID0gY3R4dC0+c2NoZW1hOworICAgICAgICBpZiAoc2NoZW1hID09IE5VTEwpIHsKKyAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgICAgIGdyYW1tYXIgPSBzY2hlbWEtPnRvcGdyYW1tYXI7CisgICAgICAgIGlmICgoZ3JhbW1hciA9PSBOVUxMKSB8fCAoZ3JhbW1hci0+c3RhcnQgPT0gTlVMTCkpIHsKKyAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9HUkFNTUFSKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgICAgIGRlZmluZSA9IGdyYW1tYXItPnN0YXJ0OworICAgICAgICBpZiAoZGVmaW5lLT5jb250TW9kZWwgPT0gTlVMTCkgeworICAgICAgICAgICAgY3R4dC0+cGRlZiA9IGRlZmluZTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICAgICAgZXhlYyA9IHhtbFJlZ05ld0V4ZWNDdHh0KGRlZmluZS0+Y29udE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkYXRlUHJvZ3Jlc3NpdmVDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQpOworICAgICAgICBpZiAoZXhlYyA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgfQorICAgICAgICB4bWxSZWxheE5HRWxlbVB1c2goY3R4dCwgZXhlYyk7CisgICAgfQorICAgIGN0eHQtPnBub2RlID0gZWxlbTsKKyAgICBjdHh0LT5wc3RhdGUgPSAwOworICAgIGlmIChlbGVtLT5ucyAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9CisgICAgICAgICAgICB4bWxSZWdFeGVjUHVzaFN0cmluZzIoY3R4dC0+ZWxlbSwgZWxlbS0+bmFtZSwgZWxlbS0+bnMtPmhyZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoY3R4dC0+ZWxlbSwgZWxlbS0+bmFtZSwgY3R4dCk7CisgICAgfQorICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIFZBTElEX0VSUjIoWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9ORywgZWxlbS0+bmFtZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGN0eHQtPnBzdGF0ZSA9PSAwKQorICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgZWxzZSBpZiAoY3R4dC0+cHN0YXRlIDwgMCkKKyAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSAxOworICAgIH0KKyNpZmRlZiBERUJVR19QUk9HUkVTU0lWRQorICAgIGlmIChyZXQgPCAwKQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlB1c2hFbGVtICVzIGZhaWxlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0tPm5hbWUpOworI2VuZGlmCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YToKKyAqIEBjdHh0OiAgdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZGF0YTogIHNvbWUgY2hhcmFjdGVyIGRhdGEgcmVhZAorICogQGxlbjogIHRoZSBsZW5naHQgb2YgdGhlIGRhdGEKKyAqCisgKiBjaGVjayB0aGUgQ0RhdGEgcGFyc2VkIGZvciB2YWxpZGF0aW9uIGluIHRoZSBjdXJyZW50IHN0YWNrCisgKgorICogcmV0dXJucyAxIGlmIG5vIHZhbGlkYXRpb24gcHJvYmxlbSB3YXMgZm91bmQgb3IgLTEgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogZGF0YSwgaW50IGxlbiBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGludCByZXQgPSAxOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5lbGVtID09IE5VTEwpIHx8IChkYXRhID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKworI2lmZGVmIERFQlVHX1BST0dSRVNTSVZFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJDREFUQSAlcyAlZFxuIiwgZGF0YSwgbGVuKTsKKyNlbmRpZgorCisgICAgd2hpbGUgKCpkYXRhICE9IDApIHsKKyAgICAgICAgaWYgKCFJU19CTEFOS19DSCgqZGF0YSkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGF0YSsrOworICAgIH0KKyAgICBpZiAoKmRhdGEgPT0gMCkKKyAgICAgICAgcmV0dXJuICgxKTsKKworICAgIHJldCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGN0eHQtPmVsZW0sIEJBRF9DQVNUICIjdGV4dCIsIGN0eHQpOworICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIFZBTElEX0VSUjIoWE1MX1JFTEFYTkdfRVJSX1RFWFRXUk9ORywgQkFEX0NBU1QgIiBUT0RPICIpOworI2lmZGVmIERFQlVHX1BST0dSRVNTSVZFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiQ0RBVEEgZmFpbGVkXG4iKTsKKyNlbmRpZgorCisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICByZXR1cm4gKDEpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQ6CisgKiBAY3R4dDogIHRoZSBSZWxheE5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBpbnN0YW5jZQorICoKKyAqIFBvcCB0aGUgZWxlbWVudCBlbmQgZnJvbSB0aGUgUmVsYXhORyB2YWxpZGF0aW9uIHN0YWNrLgorICoKKyAqIHJldHVybnMgMSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudCh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbERvY1B0ciBkb2MgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBlbGVtKQoreworICAgIGludCByZXQ7CisgICAgeG1sUmVnRXhlY0N0eHRQdHIgZXhlYzsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+ZWxlbSA9PSBOVUxMKSB8fCAoZWxlbSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisjaWZkZWYgREVCVUdfUFJPR1JFU1NJVkUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlBvcEVsZW0gJXNcbiIsIGVsZW0tPm5hbWUpOworI2VuZGlmCisgICAgLyoKKyAgICAgKiB2ZXJpZnkgdGhhdCB3ZSByZWFjaGVkIGEgdGVybWluYWwgc3RhdGUgb2YgdGhlIGNvbnRlbnQgbW9kZWwuCisgICAgICovCisgICAgZXhlYyA9IHhtbFJlbGF4TkdFbGVtUG9wKGN0eHQpOworICAgIHJldCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIE5VTEwsIE5VTEwpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAvKgorICAgICAgICAgKiBUT0RPOiBnZXQgc29tZSBvZiB0aGUgbmFtZXMgbmVlZGVkIHRvIGV4aXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgZXhlYworICAgICAgICAgKi8KKyAgICAgICAgVkFMSURfRVJSMihYTUxfUkVMQVhOR19FUlJfTk9FTEVNLCBCQURfQ0FTVCAiIik7CisgICAgICAgIHJldCA9IC0xOworICAgIH0gZWxzZSBpZiAocmV0IDwgMCkgeworICAgICAgICByZXQgPSAtMTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXQgPSAxOworICAgIH0KKyAgICB4bWxSZWdGcmVlRXhlY0N0eHQoZXhlYyk7CisjaWZkZWYgREVCVUdfUFJPR1JFU1NJVkUKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJQb3BFbGVtICVzIGZhaWxlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0tPm5hbWUpOworI2VuZGlmCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50OgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBkb2N1bWVudCBpbnN0YW5jZQorICogQGVsZW06ICBhbiBlbGVtZW50IGluc3RhbmNlCisgKgorICogVmFsaWRhdGUgYSBmdWxsIHN1YnRyZWUgd2hlbiB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCgpIHJldHVybmVkCisgKiAwIGFuZCB0aGUgY29udGVudCBvZiB0aGUgbm9kZSBoYXMgYmVlbiBleHBhbmRlZC4KKyAqCisgKiByZXR1cm5zIDEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50KHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbERvY1B0ciBkb2MgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZWxlbSkKK3sKKyAgICBpbnQgcmV0OworICAgIHhtbFJlbGF4TkdWYWxpZFN0YXRlUHRyIHN0YXRlOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5wZGVmID09IE5VTEwpIHx8IChlbGVtID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKyNpZmRlZiBERUJVR19QUk9HUkVTU0lWRQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiRnVsbEVsZW0gJXNcbiIsIGVsZW0tPm5hbWUpOworI2VuZGlmCisgICAgc3RhdGUgPSB4bWxSZWxheE5HTmV3VmFsaWRTdGF0ZShjdHh0LCBlbGVtLT5wYXJlbnQpOworICAgIGlmIChzdGF0ZSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBzdGF0ZS0+c2VxID0gZWxlbTsKKyAgICBjdHh0LT5zdGF0ZSA9IHN0YXRlOworICAgIGN0eHQtPmVyck5vID0gWE1MX1JFTEFYTkdfT0s7CisgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRGVmaW5pdGlvbihjdHh0LCBjdHh0LT5wZGVmKTsKKyAgICBpZiAoKHJldCAhPSAwKSB8fCAoY3R4dC0+ZXJyTm8gIT0gWE1MX1JFTEFYTkdfT0spKQorICAgICAgICByZXQgPSAtMTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IDE7CisgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsIGN0eHQtPnN0YXRlKTsKKyAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisjaWZkZWYgREVCVUdfUFJPR1JFU1NJVkUKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJGdWxsRWxlbSAlcyBmYWlsZWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLT5uYW1lKTsKKyNlbmRpZgorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQlHZW5lcmljIGludGVycHJldGVkIHZhbGlkYXRpb24gaW1wbGVtZW50YXRpb24JCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IHhtbFJlbGF4TkdWYWxpZGF0ZVZhbHVlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmUpOworCisvKioKKyAqIHhtbFJlbGF4TkdTa2lwSWdub3JlZDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbm9kZTogIHRoZSB0b3Agbm9kZS4KKyAqCisgKiBTa2lwIGlnbm9yYWJsZSBub2RlcyBpbiB0aGF0IGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc2libGluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxSZWxheE5HU2tpcElnbm9yZWQoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIC8qCisgICAgICogVE9ETyBjb21wbGV0ZSBhbmQgaGFuZGxlIGVudGl0aWVzCisgICAgICovCisgICAgd2hpbGUgKChub2RlICE9IE5VTEwpICYmCisgICAgICAgICAgICgobm9kZS0+dHlwZSA9PSBYTUxfQ09NTUVOVF9OT0RFKSB8fAorICAgICAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX1BJX05PREUpIHx8CisJICAgIChub2RlLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkgfHwKKwkgICAgKG5vZGUtPnR5cGUgPT0gWE1MX1hJTkNMVURFX0VORCkgfHwKKyAgICAgICAgICAgICgoKG5vZGUtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKyAgICAgICAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpICYmCisgICAgICAgICAgICAgKChjdHh0LT5mbGFncyAmIEZMQUdTX01JWEVEX0NPTlRFTlQpIHx8CisgICAgICAgICAgICAgIChJU19CTEFOS19OT0RFKG5vZGUpKSkpKSkgeworICAgICAgICBub2RlID0gbm9kZS0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuIChub2RlKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HTm9ybWFsaXplOgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIHRvIG5vcm1hbGl6ZQorICoKKyAqIEltcGxlbWVudHMgdGhlICBub3JtYWxpemVXaGl0ZVNwYWNlKCBzICkgZnVuY3Rpb24gZnJvbQorICogc2VjdGlvbiA2LjIuOSBvZiB0aGUgc3BlYworICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sQ2hhciAqCit4bWxSZWxheE5HTm9ybWFsaXplKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqIHN0cikKK3sKKyAgICB4bWxDaGFyICpyZXQsICpwOworICAgIGNvbnN0IHhtbENoYXIgKnRtcDsKKyAgICBpbnQgbGVuOworCisgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHRtcCA9IHN0cjsKKyAgICB3aGlsZSAoKnRtcCAhPSAwKQorICAgICAgICB0bXArKzsKKyAgICBsZW4gPSB0bXAgLSBzdHI7CisKKyAgICByZXQgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoKGxlbiArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAidmFsaWRhdGluZ1xuIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHAgPSByZXQ7CisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpzdHIpKQorICAgICAgICBzdHIrKzsKKyAgICB3aGlsZSAoKnN0ciAhPSAwKSB7CisgICAgICAgIGlmIChJU19CTEFOS19DSCgqc3RyKSkgeworICAgICAgICAgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpzdHIpKQorICAgICAgICAgICAgICAgIHN0cisrOworICAgICAgICAgICAgaWYgKCpzdHIgPT0gMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICpwKysgPSAnICc7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgKnArKyA9ICpzdHIrKzsKKyAgICB9CisgICAgKnAgPSAwOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVEYXRhdHlwZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEB2YWx1ZTogIHRoZSBzdHJpbmcgdmFsdWUKKyAqIEB0eXBlOiAgdGhlIGRhdGF0eXBlIGRlZmluaXRpb24KKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqCisgKiBWYWxpZGF0ZSB0aGUgZ2l2ZW4gdmFsdWUgYWdhaW5zdCB0aGUgZGF0YXlwZQorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsaWRhdGlvbiBzdWNjZWVkZWQgb3IgYW4gZXJyb3IgY29kZS4KKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1ZhbGlkYXRlRGF0YXR5cGUoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmUsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICBpbnQgcmV0LCB0bXA7CisgICAgeG1sUmVsYXhOR1R5cGVMaWJyYXJ5UHRyIGxpYjsKKyAgICB2b2lkICpyZXN1bHQgPSBOVUxMOworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgY3VyOworCisgICAgaWYgKChkZWZpbmUgPT0gTlVMTCkgfHwgKGRlZmluZS0+ZGF0YSA9PSBOVUxMKSkgeworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisgICAgbGliID0gKHhtbFJlbGF4TkdUeXBlTGlicmFyeVB0cikgZGVmaW5lLT5kYXRhOworICAgIGlmIChsaWItPmNoZWNrICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChkZWZpbmUtPmF0dHJzICE9IE5VTEwpICYmCisgICAgICAgICAgICAoZGVmaW5lLT5hdHRycy0+dHlwZSA9PSBYTUxfUkVMQVhOR19QQVJBTSkpIHsKKyAgICAgICAgICAgIHJldCA9CisgICAgICAgICAgICAgICAgbGliLT5jaGVjayhsaWItPmRhdGEsIGRlZmluZS0+bmFtZSwgdmFsdWUsICZyZXN1bHQsIG5vZGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0ID0gbGliLT5jaGVjayhsaWItPmRhdGEsIGRlZmluZS0+bmFtZSwgdmFsdWUsIE5VTEwsIG5vZGUpOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIHJldCA9IC0xOworICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIFZBTElEX0VSUjIoWE1MX1JFTEFYTkdfRVJSX1RZUEUsIGRlZmluZS0+bmFtZSk7CisgICAgICAgIGlmICgocmVzdWx0ICE9IE5VTEwpICYmIChsaWIgIT0gTlVMTCkgJiYgKGxpYi0+ZnJlZWYgIT0gTlVMTCkpCisgICAgICAgICAgICBsaWItPmZyZWVmKGxpYi0+ZGF0YSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfSBlbHNlIGlmIChyZXQgPT0gMSkgeworICAgICAgICByZXQgPSAwOworICAgIH0gZWxzZSBpZiAocmV0ID09IDIpIHsKKyAgICAgICAgVkFMSURfRVJSMlAoWE1MX1JFTEFYTkdfRVJSX0RVUElELCB2YWx1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgVkFMSURfRVJSM1AoWE1MX1JFTEFYTkdfRVJSX1RZUEVWQUwsIGRlZmluZS0+bmFtZSwgdmFsdWUpOworICAgICAgICByZXQgPSAtMTsKKyAgICB9CisgICAgY3VyID0gZGVmaW5lLT5hdHRyczsKKyAgICB3aGlsZSAoKHJldCA9PSAwKSAmJiAoY3VyICE9IE5VTEwpICYmIChjdXItPnR5cGUgPT0gWE1MX1JFTEFYTkdfUEFSQU0pKSB7CisgICAgICAgIGlmIChsaWItPmZhY2V0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHRtcCA9IGxpYi0+ZmFjZXQobGliLT5kYXRhLCBkZWZpbmUtPm5hbWUsIGN1ci0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT52YWx1ZSwgdmFsdWUsIHJlc3VsdCk7CisgICAgICAgICAgICBpZiAodG1wICE9IDApCisgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBpZiAoKHJldCA9PSAwKSAmJiAoZGVmaW5lLT5jb250ZW50ICE9IE5VTEwpKSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIgKm9sZHZhbHVlLCAqb2xkZW5kdmFsdWU7CisKKyAgICAgICAgb2xkdmFsdWUgPSBjdHh0LT5zdGF0ZS0+dmFsdWU7CisgICAgICAgIG9sZGVuZHZhbHVlID0gY3R4dC0+c3RhdGUtPmVuZHZhbHVlOworICAgICAgICBjdHh0LT5zdGF0ZS0+dmFsdWUgPSAoeG1sQ2hhciAqKSB2YWx1ZTsKKyAgICAgICAgY3R4dC0+c3RhdGUtPmVuZHZhbHVlID0gTlVMTDsKKyAgICAgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlVmFsdWUoY3R4dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gKHhtbENoYXIgKikgb2xkdmFsdWU7CisgICAgICAgIGN0eHQtPnN0YXRlLT5lbmR2YWx1ZSA9ICh4bWxDaGFyICopIG9sZGVuZHZhbHVlOworICAgIH0KKyAgICBpZiAoKHJlc3VsdCAhPSBOVUxMKSAmJiAobGliICE9IE5VTEwpICYmIChsaWItPmZyZWVmICE9IE5VTEwpKQorICAgICAgICBsaWItPmZyZWVmKGxpYi0+ZGF0YSwgcmVzdWx0KTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR05leHRWYWx1ZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqCisgKiBTa2lwIHRvIHRoZSBuZXh0IHZhbHVlIHdoZW4gdmFsaWRhdGluZyB3aXRoaW4gYSBsaXN0CisgKgorICogUmV0dXJucyAwIGlmIHRoZSBvcGVyYXRpb24gc3VjY2VlZGVkIG9yIGFuIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdOZXh0VmFsdWUoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbENoYXIgKmN1cjsKKworICAgIGN1ciA9IGN0eHQtPnN0YXRlLT52YWx1ZTsKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoY3R4dC0+c3RhdGUtPmVuZHZhbHVlID09IE5VTEwpKSB7CisgICAgICAgIGN0eHQtPnN0YXRlLT52YWx1ZSA9IE5VTEw7CisgICAgICAgIGN0eHQtPnN0YXRlLT5lbmR2YWx1ZSA9IE5VTEw7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIHdoaWxlICgqY3VyICE9IDApCisgICAgICAgIGN1cisrOworICAgIHdoaWxlICgoY3VyICE9IGN0eHQtPnN0YXRlLT5lbmR2YWx1ZSkgJiYgKCpjdXIgPT0gMCkpCisgICAgICAgIGN1cisrOworICAgIGlmIChjdXIgPT0gY3R4dC0+c3RhdGUtPmVuZHZhbHVlKQorICAgICAgICBjdHh0LT5zdGF0ZS0+dmFsdWUgPSBOVUxMOworICAgIGVsc2UKKyAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gY3VyOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkYXRlVmFsdWVMaXN0OgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGRlZmluZXM6ICB0aGUgbGlzdCBvZiBkZWZpbml0aW9ucyB0byB2ZXJpZnkKKyAqCisgKiBWYWxpZGF0ZSB0aGUgZ2l2ZW4gc2V0IG9mIGRlZmluaXRpb25zIGZvciB0aGUgY3VycmVudCB2YWx1ZQorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsaWRhdGlvbiBzdWNjZWVkZWQgb3IgYW4gZXJyb3IgY29kZS4KKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1ZhbGlkYXRlVmFsdWVMaXN0KHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZXMpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICB3aGlsZSAoZGVmaW5lcyAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVZhbHVlKGN0eHQsIGRlZmluZXMpOworICAgICAgICBpZiAocmV0ICE9IDApCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmaW5lcyA9IGRlZmluZXMtPm5leHQ7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkZWZpbmU6ICB0aGUgZGVmaW5pdGlvbiB0byB2ZXJpZnkKKyAqCisgKiBWYWxpZGF0ZSB0aGUgZ2l2ZW4gZGVmaW5pdGlvbiBmb3IgdGhlIGN1cnJlbnQgdmFsdWUKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbGlkYXRpb24gc3VjY2VlZGVkIG9yIGFuIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZVZhbHVlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lKQoreworICAgIGludCByZXQgPSAwLCBvbGRmbGFnczsKKyAgICB4bWxDaGFyICp2YWx1ZTsKKworICAgIHZhbHVlID0gY3R4dC0+c3RhdGUtPnZhbHVlOworICAgIHN3aXRjaCAoZGVmaW5lLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRU1QVFk6eworICAgICAgICAgICAgICAgIGlmICgodmFsdWUgIT0gTlVMTCkgJiYgKHZhbHVlWzBdICE9IDApKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBpZHggPSAwOworCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChJU19CTEFOS19DSCh2YWx1ZVtpZHhdKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkeCsrOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbaWR4XSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1RFWFQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19WQUxVRTp7CisgICAgICAgICAgICAgICAgaWYgKCF4bWxTdHJFcXVhbCh2YWx1ZSwgZGVmaW5lLT52YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlZmluZS0+bmFtZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVHlwZUxpYnJhcnlQdHIgbGliOworCisgICAgICAgICAgICAgICAgICAgICAgICBsaWIgPSAoeG1sUmVsYXhOR1R5cGVMaWJyYXJ5UHRyKSBkZWZpbmUtPmRhdGE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGxpYiAhPSBOVUxMKSAmJiAobGliLT5jb21wICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gbGliLT5jb21wKGxpYi0+ZGF0YSwgZGVmaW5lLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUtPnZhbHVlLCBkZWZpbmUtPm5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIGRlZmluZS0+YXR0cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBjdHh0LT5zdGF0ZS0+bm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURfRVJSMihYTUxfUkVMQVhOR19FUlJfVFlQRUNNUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICpudmFsLCAqbnZhbHVlOworCisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogVE9ETzogdHJpdmlhbCBvcHRpbWl6YXRpb25zIGFyZSBwb3NzaWJsZSBieQorICAgICAgICAgICAgICAgICAgICAgICAgICogY29tcHV0aW5nIGF0IGNvbXBpbGUtdGltZQorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBudmFsID0geG1sUmVsYXhOR05vcm1hbGl6ZShjdHh0LCBkZWZpbmUtPnZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG52YWx1ZSA9IHhtbFJlbGF4TkdOb3JtYWxpemUoY3R4dCwgdmFsdWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKG52YWwgPT0gTlVMTCkgfHwgKG52YWx1ZSA9PSBOVUxMKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgheG1sU3RyRXF1YWwobnZhbCwgbnZhbHVlKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnZhbCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobnZhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnZhbHVlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShudmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR05leHRWYWx1ZShjdHh0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19EQVRBVFlQRTp7CisgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRGF0YXR5cGUoY3R4dCwgdmFsdWUsIGRlZmluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdOZXh0VmFsdWUoY3R4dCk7CisKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19DSE9JQ0U6eworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdCA9IGRlZmluZS0+Y29udGVudDsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICpvbGR2YWx1ZTsKKworICAgICAgICAgICAgICAgIG9sZGZsYWdzID0gY3R4dC0+ZmxhZ3M7CisgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgfD0gRkxBR1NfSUdOT1JBQkxFOworCisgICAgICAgICAgICAgICAgb2xkdmFsdWUgPSBjdHh0LT5zdGF0ZS0+dmFsdWU7CisgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZShjdHh0LCBsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+dmFsdWUgPSBvbGR2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoY3R4dC0+ZmxhZ3MgJiBGTEFHU19JR05PUkFCTEUpID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRHVtcFZhbGlkRXJyb3IoY3R4dCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmVyck5yID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQb3BFcnJvcnMoY3R4dCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0xJU1Q6eworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdCA9IGRlZmluZS0+Y29udGVudDsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICpvbGR2YWx1ZSwgKm9sZGVuZCwgKnZhbCwgKmN1cjsKKworI2lmZGVmIERFQlVHX0xJU1QKKyAgICAgICAgICAgICAgICBpbnQgbmJfdmFsdWVzID0gMDsKKyNlbmRpZgorCisgICAgICAgICAgICAgICAgb2xkdmFsdWUgPSBjdHh0LT5zdGF0ZS0+dmFsdWU7CisgICAgICAgICAgICAgICAgb2xkZW5kID0gY3R4dC0+c3RhdGUtPmVuZHZhbHVlOworCisgICAgICAgICAgICAgICAgdmFsID0geG1sU3RyZHVwKG9sZHZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsID0geG1sU3RyZHVwKEJBRF9DQVNUICIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHZhbCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9TVEFURSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXIgPSB2YWw7CisgICAgICAgICAgICAgICAgd2hpbGUgKCpjdXIgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoSVNfQkxBTktfQ0goKmN1cikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICpjdXIgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgY3VyKys7CisjaWZkZWYgREVCVUdfTElTVAorICAgICAgICAgICAgICAgICAgICAgICAgbmJfdmFsdWVzKys7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY3VyKysgPSAwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIH0KKyNpZmRlZiBERUJVR19MSVNUCisgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaXN0IHZhbHVlOiAnJXMnIGZvdW5kICVkIGl0ZW1zXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGR2YWx1ZSwgbmJfdmFsdWVzKTsKKyAgICAgICAgICAgICAgICBuYl92YWx1ZXMgPSAwOworI2VuZGlmCisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPmVuZHZhbHVlID0gY3VyOworICAgICAgICAgICAgICAgIGN1ciA9IHZhbDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKCpjdXIgPT0gMCkgJiYgKGN1ciAhPSBjdHh0LT5zdGF0ZS0+ZW5kdmFsdWUpKQorICAgICAgICAgICAgICAgICAgICBjdXIrKzsKKworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT52YWx1ZSA9IGN1cjsKKworICAgICAgICAgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlLT52YWx1ZSA9PSBjdHh0LT5zdGF0ZS0+ZW5kdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+dmFsdWUgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZShjdHh0LCBsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisjaWZkZWYgREVCVUdfTElTVAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byB2YWxpZGF0ZSB2YWx1ZTogJyVzJyB3aXRoICVkIHJ1bGVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlLCBuYl92YWx1ZXMpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorI2lmZGVmIERFQlVHX0xJU1QKKyAgICAgICAgICAgICAgICAgICAgbmJfdmFsdWVzKys7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKChyZXQgPT0gMCkgJiYgKGN0eHQtPnN0YXRlLT52YWx1ZSAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAoY3R4dC0+c3RhdGUtPnZhbHVlICE9IGN0eHQtPnN0YXRlLT5lbmR2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURfRVJSMihYTUxfUkVMQVhOR19FUlJfTElTVEVYVFJBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB4bWxGcmVlKHZhbCk7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gb2xkdmFsdWU7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPmVuZHZhbHVlID0gb2xkZW5kOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX09ORU9STU9SRToKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVZhbHVlTGlzdChjdHh0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBubyBicmVhayBvbiBwdXJwb3NlICovCisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfWkVST09STU9SRTp7CisgICAgICAgICAgICAgICAgeG1sQ2hhciAqY3VyLCAqdGVtcDsKKworICAgICAgICAgICAgICAgIG9sZGZsYWdzID0gY3R4dC0+ZmxhZ3M7CisgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgfD0gRkxBR1NfSUdOT1JBQkxFOworICAgICAgICAgICAgICAgIGN1ciA9IGN0eHQtPnN0YXRlLT52YWx1ZTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gTlVMTDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGN1ciAhPSBOVUxMKSAmJiAoY3VyICE9IGN0eHQtPnN0YXRlLT5lbmR2YWx1ZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgKHRlbXAgIT0gY3VyKSkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gY3VyOworICAgICAgICAgICAgICAgICAgICByZXQgPQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkYXRlVmFsdWVMaXN0KGN0eHQsIGRlZmluZS0+Y29udGVudCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdHh0LT5zdGF0ZS0+dmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisJCWlmIChjdHh0LT5lcnJOciA+IDApCisJCSAgICB4bWxSZWxheE5HUG9wRXJyb3JzKGN0eHQsIDApOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VYQ0VQVDp7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBsaXN0OworCisgICAgICAgICAgICAgICAgbGlzdCA9IGRlZmluZS0+Y29udGVudDsKKyAgICAgICAgICAgICAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVZhbHVlKGN0eHQsIGxpc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0RFRjoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19HUk9VUDp7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBsaXN0OworCisgICAgICAgICAgICAgICAgbGlzdCA9IGRlZmluZS0+Y29udGVudDsKKyAgICAgICAgICAgICAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVZhbHVlKGN0eHQsIGxpc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1JFRjoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19QQVJFTlRSRUY6CisJICAgIGlmIChkZWZpbmUtPmNvbnRlbnQgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9ERUZJTkUpOworICAgICAgICAgICAgICAgIHJldCA9IC0xOworCSAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVZhbHVlKGN0eHQsIGRlZmluZS0+Y29udGVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFRPRE8gcmV0ID0gLTE7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZUNvbnRlbnQ6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZGVmaW5lczogIHRoZSBsaXN0IG9mIGRlZmluaXRpb25zIHRvIHZlcmlmeQorICoKKyAqIFZhbGlkYXRlIHRoZSBnaXZlbiBkZWZpbml0aW9ucyBmb3IgdGhlIGN1cnJlbnQgdmFsdWUKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbGlkYXRpb24gc3VjY2VlZGVkIG9yIGFuIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZVZhbHVlQ29udGVudCh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmVzKQoreworICAgIGludCByZXQgPSAwOworCisgICAgd2hpbGUgKGRlZmluZXMgIT0gTlVMTCkgeworICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZShjdHh0LCBkZWZpbmVzKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmluZXMgPSBkZWZpbmVzLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0F0dHJpYnV0ZU1hdGNoOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGRlZmluZTogIHRoZSBkZWZpbml0aW9uIHRvIGNoZWNrCisgKiBAcHJvcDogIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBDaGVjayBpZiB0aGUgYXR0cmlidXRlIG1hdGNoZXMgdGhlIGRlZmluaXRpb24gbmFtZUNsYXNzCisgKgorICogUmV0dXJucyAxIGlmIHRoZSBhdHRyaWJ1dGUgbWF0Y2hlcywgMCBpZiBubywgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HQXR0cmlidXRlTWF0Y2goeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgZGVmaW5lLCB4bWxBdHRyUHRyIHByb3ApCit7CisgICAgaW50IHJldDsKKworICAgIGlmIChkZWZpbmUtPm5hbWUgIT0gTlVMTCkgeworICAgICAgICBpZiAoIXhtbFN0ckVxdWFsKGRlZmluZS0+bmFtZSwgcHJvcC0+bmFtZSkpCisgICAgICAgICAgICByZXR1cm4gKDApOworICAgIH0KKyAgICBpZiAoZGVmaW5lLT5ucyAhPSBOVUxMKSB7CisgICAgICAgIGlmIChkZWZpbmUtPm5zWzBdID09IDApIHsKKyAgICAgICAgICAgIGlmIChwcm9wLT5ucyAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoKHByb3AtPm5zID09IE5VTEwpIHx8CisgICAgICAgICAgICAgICAgKCF4bWxTdHJFcXVhbChkZWZpbmUtPm5zLCBwcm9wLT5ucy0+aHJlZikpKQorICAgICAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGRlZmluZS0+bmFtZUNsYXNzID09IE5VTEwpCisgICAgICAgIHJldHVybiAoMSk7CisgICAgZGVmaW5lID0gZGVmaW5lLT5uYW1lQ2xhc3M7CisgICAgaWYgKGRlZmluZS0+dHlwZSA9PSBYTUxfUkVMQVhOR19FWENFUFQpIHsKKyAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBsaXN0OworCisgICAgICAgIGxpc3QgPSBkZWZpbmUtPmNvbnRlbnQ7CisgICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdBdHRyaWJ1dGVNYXRjaChjdHh0LCBsaXN0LCBwcm9wKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIChyZXQpOworICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgIFRPRE99CisgICAgcmV0dXJuICgxKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVBdHRyaWJ1dGU6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZGVmaW5lOiAgdGhlIGRlZmluaXRpb24gdG8gdmVyaWZ5CisgKgorICogVmFsaWRhdGUgdGhlIGdpdmVuIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGZvciB0aGF0IG5vZGUKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbGlkYXRpb24gc3VjY2VlZGVkIG9yIGFuIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZUF0dHJpYnV0ZSh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmUpCit7CisgICAgaW50IHJldCA9IDAsIGk7CisgICAgeG1sQ2hhciAqdmFsdWUsICpvbGR2YWx1ZTsKKyAgICB4bWxBdHRyUHRyIHByb3AgPSBOVUxMLCB0bXA7CisgICAgeG1sTm9kZVB0ciBvbGRzZXE7CisKKyAgICBpZiAoY3R4dC0+c3RhdGUtPm5iQXR0ckxlZnQgPD0gMCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgaWYgKGRlZmluZS0+bmFtZSAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHh0LT5zdGF0ZS0+bmJBdHRyczsgaSsrKSB7CisgICAgICAgICAgICB0bXAgPSBjdHh0LT5zdGF0ZS0+YXR0cnNbaV07CisgICAgICAgICAgICBpZiAoKHRtcCAhPSBOVUxMKSAmJiAoeG1sU3RyRXF1YWwoZGVmaW5lLT5uYW1lLCB0bXAtPm5hbWUpKSkgeworICAgICAgICAgICAgICAgIGlmICgoKChkZWZpbmUtPm5zID09IE5VTEwpIHx8IChkZWZpbmUtPm5zWzBdID09IDApKSAmJgorICAgICAgICAgICAgICAgICAgICAgKHRtcC0+bnMgPT0gTlVMTCkpIHx8CisgICAgICAgICAgICAgICAgICAgICgodG1wLT5ucyAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsKGRlZmluZS0+bnMsIHRtcC0+bnMtPmhyZWYpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvcCA9IHRtcDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChwcm9wICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHZhbHVlID0geG1sTm9kZUxpc3RHZXRTdHJpbmcocHJvcC0+ZG9jLCBwcm9wLT5jaGlsZHJlbiwgMSk7CisgICAgICAgICAgICBvbGR2YWx1ZSA9IGN0eHQtPnN0YXRlLT52YWx1ZTsKKyAgICAgICAgICAgIG9sZHNlcSA9IGN0eHQtPnN0YXRlLT5zZXE7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxID0gKHhtbE5vZGVQdHIpIHByb3A7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+dmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIGN0eHQtPnN0YXRlLT5lbmR2YWx1ZSA9IE5VTEw7CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZUNvbnRlbnQoY3R4dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZS0+dmFsdWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGN0eHQtPnN0YXRlLT52YWx1ZTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbEZyZWUodmFsdWUpOworICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gb2xkdmFsdWU7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxID0gb2xkc2VxOworICAgICAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBmbGFnIHRoZSBhdHRyaWJ1dGUgYXMgcHJvY2Vzc2VkCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPmF0dHJzW2ldID0gTlVMTDsKKyAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+bmJBdHRyTGVmdC0tOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgIH0KKyNpZmRlZiBERUJVRworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HVmFsaWRhdGVBdHRyaWJ1dGUoJXMpOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZS0+bmFtZSwgcmV0KTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHh0LT5zdGF0ZS0+bmJBdHRyczsgaSsrKSB7CisgICAgICAgICAgICB0bXAgPSBjdHh0LT5zdGF0ZS0+YXR0cnNbaV07CisgICAgICAgICAgICBpZiAoKHRtcCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICh4bWxSZWxheE5HQXR0cmlidXRlTWF0Y2goY3R4dCwgZGVmaW5lLCB0bXApID09IDEpKSB7CisgICAgICAgICAgICAgICAgcHJvcCA9IHRtcDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocHJvcCAhPSBOVUxMKSB7CisgICAgICAgICAgICB2YWx1ZSA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKHByb3AtPmRvYywgcHJvcC0+Y2hpbGRyZW4sIDEpOworICAgICAgICAgICAgb2xkdmFsdWUgPSBjdHh0LT5zdGF0ZS0+dmFsdWU7CisgICAgICAgICAgICBvbGRzZXEgPSBjdHh0LT5zdGF0ZS0+c2VxOworICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnNlcSA9ICh4bWxOb2RlUHRyKSBwcm9wOworICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZUNvbnRlbnQoY3R4dCwgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZS0+dmFsdWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGN0eHQtPnN0YXRlLT52YWx1ZTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHhtbEZyZWUodmFsdWUpOworICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gb2xkdmFsdWU7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxID0gb2xkc2VxOworICAgICAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBmbGFnIHRoZSBhdHRyaWJ1dGUgYXMgcHJvY2Vzc2VkCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPmF0dHJzW2ldID0gTlVMTDsKKyAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+bmJBdHRyTGVmdC0tOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgIH0KKyNpZmRlZiBERUJVRworICAgICAgICBpZiAoZGVmaW5lLT5ucyAhPSBOVUxMKSB7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sUmVsYXhOR1ZhbGlkYXRlQXR0cmlidXRlKG5zTmFtZSBucyA9ICVzKTogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lLT5ucywgcmV0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HVmFsaWRhdGVBdHRyaWJ1dGUoYW55TmFtZSk6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0KKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVBdHRyaWJ1dGVMaXN0OgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGRlZmluZTogIHRoZSBsaXN0IG9mIGRlZmluaXRpb24gdG8gdmVyaWZ5CisgKgorICogVmFsaWRhdGUgdGhlIGdpdmVuIG5vZGUgYWdhaW5zdCB0aGUgbGlzdCBvZiBhdHRyaWJ1dGUgZGVmaW5pdGlvbnMKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbGlkYXRpb24gc3VjY2VlZGVkIG9yIGFuIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZUF0dHJpYnV0ZUxpc3QoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZXMpCit7CisgICAgaW50IHJldCA9IDAsIHJlczsKKyAgICBpbnQgbmVlZG1vcmUgPSAwOworICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgY3VyOworCisgICAgY3VyID0gZGVmaW5lczsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19BVFRSSUJVVEUpIHsKKyAgICAgICAgICAgIGlmICh4bWxSZWxheE5HVmFsaWRhdGVBdHRyaWJ1dGUoY3R4dCwgY3VyKSAhPSAwKQorICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG5lZWRtb3JlID0gMTsKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBpZiAoIW5lZWRtb3JlKQorICAgICAgICByZXR1cm4gKHJldCk7CisgICAgY3VyID0gZGVmaW5lczsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGN1ci0+dHlwZSAhPSBYTUxfUkVMQVhOR19BVFRSSUJVVEUpIHsKKyAgICAgICAgICAgIGlmICgoY3R4dC0+c3RhdGUgIT0gTlVMTCkgfHwgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSkgeworICAgICAgICAgICAgICAgIHJlcyA9IHhtbFJlbGF4TkdWYWxpZGF0ZURlZmluaXRpb24oY3R4dCwgY3VyKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9TVEFURSk7CisgICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVzID09IC0xKSAgICAgIC8qIGNvbnRpbnVlcyBvbiAtMiAqLworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR05vZGVNYXRjaGVzTGlzdDoKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBsaXN0OiAgYSBOVUxMIHRlcm1pbmF0ZWQgYXJyYXkgb2YgZGVmaW5pdGlvbnMKKyAqCisgKiBDaGVjayBpZiBhIG5vZGUgY2FuIGJlIG1hdGNoZWQgYnkgb25lIG9mIHRoZSBkZWZpbml0aW9ucworICoKKyAqIFJldHVybnMgMSBpZiBtYXRjaGVzIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdOb2RlTWF0Y2hlc0xpc3QoeG1sTm9kZVB0ciBub2RlLCB4bWxSZWxheE5HRGVmaW5lUHRyICogbGlzdCkKK3sKKyAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGN1cjsKKyAgICBpbnQgaSA9IDAsIHRtcDsKKworICAgIGlmICgobm9kZSA9PSBOVUxMKSB8fCAobGlzdCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgwKTsKKworICAgIGN1ciA9IGxpc3RbaSsrXTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisgICAgICAgICAgICAoY3VyLT50eXBlID09IFhNTF9SRUxBWE5HX0VMRU1FTlQpKSB7CisgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HRWxlbWVudE1hdGNoKE5VTEwsIGN1ciwgbm9kZSk7CisgICAgICAgICAgICBpZiAodG1wID09IDEpCisgICAgICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgfSBlbHNlIGlmICgoKG5vZGUtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpICYmCisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfUkVMQVhOR19URVhUKSkgeworICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgfQorICAgICAgICBjdXIgPSBsaXN0W2krK107CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkYXRlSW50ZXJsZWF2ZToKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkZWZpbmU6ICB0aGUgZGVmaW5pdGlvbiB0byB2ZXJpZnkKKyAqCisgKiBWYWxpZGF0ZSBhbiBpbnRlcmxlYXZlIGRlZmluaXRpb24gZm9yIGEgbm9kZS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbGlkYXRpb24gc3VjY2VlZGVkIG9yIGFuIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZUludGVybGVhdmUoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZSkKK3sKKyAgICBpbnQgcmV0ID0gMCwgaSwgbmJncm91cHM7CisgICAgaW50IGVyck5yID0gY3R4dC0+ZXJyTnI7CisgICAgaW50IG9sZGZsYWdzOworCisgICAgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgb2xkc3RhdGU7CisgICAgeG1sUmVsYXhOR1BhcnRpdGlvblB0ciBwYXJ0aXRpb25zOworICAgIHhtbFJlbGF4TkdJbnRlcmxlYXZlR3JvdXBQdHIgZ3JvdXAgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY3VyLCBzdGFydCwgbGFzdCA9IE5VTEwsIGxhc3RjaGcgPSBOVUxMLCBsYXN0ZWxlbTsKKyAgICB4bWxOb2RlUHRyICpsaXN0ID0gTlVMTCwgKmxhc3RzID0gTlVMTDsKKworICAgIGlmIChkZWZpbmUtPmRhdGEgIT0gTlVMTCkgeworICAgICAgICBwYXJ0aXRpb25zID0gKHhtbFJlbGF4TkdQYXJ0aXRpb25QdHIpIGRlZmluZS0+ZGF0YTsKKyAgICAgICAgbmJncm91cHMgPSBwYXJ0aXRpb25zLT5uYmdyb3VwczsKKyAgICB9IGVsc2UgeworICAgICAgICBWQUxJRF9FUlIoWE1MX1JFTEFYTkdfRVJSX0lOVEVSTk9EQVRBKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIC8qCisgICAgICogT3B0aW1pemF0aW9ucyBmb3IgTUlYRUQKKyAgICAgKi8KKyAgICBvbGRmbGFncyA9IGN0eHQtPmZsYWdzOworICAgIGlmIChkZWZpbmUtPmRmbGFncyAmIElTX01JWEVEKSB7CisgICAgICAgIGN0eHQtPmZsYWdzIHw9IEZMQUdTX01JWEVEX0NPTlRFTlQ7CisgICAgICAgIGlmIChuYmdyb3VwcyA9PSAyKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogdGhpcyBpcyBhIHB1cmUgPG1peGVkPiBjYXNlCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT5zZXEgPSB4bWxSZWxheE5HU2tpcElnbm9yZWQoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT5zZXEpOworICAgICAgICAgICAgaWYgKHBhcnRpdGlvbnMtPmdyb3Vwc1swXS0+cnVsZS0+dHlwZSA9PSBYTUxfUkVMQVhOR19URVhUKQorICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZURlZmluaXRpb24oY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpdGlvbnMtPmdyb3Vwc1sxXS0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aXRpb25zLT5ncm91cHNbMF0tPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSk7CisgICAgICAgICAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoY3R4dC0+c3RhdGUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnNlcSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyAgICAgICAgICAgIHJldHVybiAocmV0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogQnVpbGQgYXJyYXlzIHRvIHN0b3JlIHRoZSBmaXJzdCBhbmQgbGFzdCBub2RlIG9mIHRoZSBjaGFpbgorICAgICAqIHBlcnRhaW5pbmcgdG8gZWFjaCBncm91cAorICAgICAqLworICAgIGxpc3QgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MobmJncm91cHMgKiBzaXplb2YoeG1sTm9kZVB0cikpOworICAgIGlmIChsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sUm5nVkVyck1lbW9yeShjdHh0LCAidmFsaWRhdGluZ1xuIik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBtZW1zZXQobGlzdCwgMCwgbmJncm91cHMgKiBzaXplb2YoeG1sTm9kZVB0cikpOworICAgIGxhc3RzID0gKHhtbE5vZGVQdHIgKikgeG1sTWFsbG9jKG5iZ3JvdXBzICogc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKyAgICBpZiAobGFzdHMgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KGN0eHQsICJ2YWxpZGF0aW5nXG4iKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIG1lbXNldChsYXN0cywgMCwgbmJncm91cHMgKiBzaXplb2YoeG1sTm9kZVB0cikpOworCisgICAgLyoKKyAgICAgKiBXYWxrIHRoZSBzZXF1ZW5jZSBvZiBjaGlsZHJlbiBmaW5kaW5nIHRoZSByaWdodCBncm91cCBhbmQKKyAgICAgKiBzb3J0aW5nIHRoZW0gaW4gc2VxdWVuY2VzLgorICAgICAqLworICAgIGN1ciA9IGN0eHQtPnN0YXRlLT5zZXE7CisgICAgY3VyID0geG1sUmVsYXhOR1NraXBJZ25vcmVkKGN0eHQsIGN1cik7CisgICAgc3RhcnQgPSBjdXI7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGN0eHQtPnN0YXRlLT5zZXEgPSBjdXI7CisgICAgICAgIGlmICgocGFydGl0aW9ucy0+dHJpYWdlICE9IE5VTEwpICYmCisgICAgICAgICAgICAocGFydGl0aW9ucy0+ZmxhZ3MgJiBJU19ERVRFUk1JTklTVCkpIHsKKyAgICAgICAgICAgIHZvaWQgKnRtcCA9IE5VTEw7CisKKyAgICAgICAgICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSkgeworICAgICAgICAgICAgICAgIHRtcCA9IHhtbEhhc2hMb29rdXAyKHBhcnRpdGlvbnMtPnRyaWFnZSwgQkFEX0NBU1QgIiN0ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VyLT5ucyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IHhtbEhhc2hMb29rdXAyKHBhcnRpdGlvbnMtPnRyaWFnZSwgY3VyLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPm5zLT5ocmVmKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0geG1sSGFzaExvb2t1cDIocGFydGl0aW9ucy0+dHJpYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFEX0NBU1QgIiNhbnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyLT5ucy0+aHJlZik7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxIYXNoTG9va3VwMihwYXJ0aXRpb25zLT50cmlhZ2UsIGN1ci0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgdG1wID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEhhc2hMb29rdXAyKHBhcnRpdGlvbnMtPnRyaWFnZSwgQkFEX0NBU1QgIiNhbnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGkgPSBuYmdyb3VwczsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaSA9ICgobG9uZykgdG1wKSAtIDE7CisgICAgICAgICAgICAgICAgaWYgKHBhcnRpdGlvbnMtPmZsYWdzICYgSVNfTkVFRENIRUNLKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gcGFydGl0aW9ucy0+Z3JvdXBzW2ldOworICAgICAgICAgICAgICAgICAgICBpZiAoIXhtbFJlbGF4TkdOb2RlTWF0Y2hlc0xpc3QoY3VyLCBncm91cC0+ZGVmcykpCisgICAgICAgICAgICAgICAgICAgICAgICBpID0gbmJncm91cHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iZ3JvdXBzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBncm91cCA9IHBhcnRpdGlvbnMtPmdyb3Vwc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXAgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKHhtbFJlbGF4TkdOb2RlTWF0Y2hlc0xpc3QoY3VyLCBncm91cC0+ZGVmcykpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIGJyZWFrIGFzIHNvb24gYXMgYW4gZWxlbWVudCBub3QgbWF0Y2hlZCBpcyBmb3VuZAorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGkgPj0gbmJncm91cHMpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChsYXN0c1tpXSAhPSBOVUxMKSB7CisgICAgICAgICAgICBsYXN0c1tpXS0+bmV4dCA9IGN1cjsKKyAgICAgICAgICAgIGxhc3RzW2ldID0gY3VyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGlzdFtpXSA9IGN1cjsKKyAgICAgICAgICAgIGxhc3RzW2ldID0gY3VyOworICAgICAgICB9CisgICAgICAgIGlmIChjdXItPm5leHQgIT0gTlVMTCkKKyAgICAgICAgICAgIGxhc3RjaGcgPSBjdXItPm5leHQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxhc3RjaGcgPSBjdXI7CisgICAgICAgIGN1ciA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBjdXItPm5leHQpOworICAgIH0KKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgVkFMSURfRVJSKFhNTF9SRUxBWE5HX0VSUl9JTlRFUlNFUSk7CisgICAgICAgIHJldCA9IC0xOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorICAgIGxhc3RlbGVtID0gY3VyOworICAgIG9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisgICAgZm9yIChpID0gMDsgaSA8IG5iZ3JvdXBzOyBpKyspIHsKKyAgICAgICAgY3R4dC0+c3RhdGUgPSB4bWxSZWxheE5HQ29weVZhbGlkU3RhdGUoY3R4dCwgb2xkc3RhdGUpOworICAgICAgICBncm91cCA9IHBhcnRpdGlvbnMtPmdyb3Vwc1tpXTsKKyAgICAgICAgaWYgKGxhc3RzW2ldICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGxhc3QgPSBsYXN0c1tpXS0+bmV4dDsKKyAgICAgICAgICAgIGxhc3RzW2ldLT5uZXh0ID0gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxID0gbGlzdFtpXTsKKyAgICAgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRGVmaW5pdGlvbihjdHh0LCBncm91cC0+cnVsZSk7CisgICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAoY3R4dC0+c3RhdGUgIT0gTlVMTCkgeworICAgICAgICAgICAgY3VyID0gY3R4dC0+c3RhdGUtPnNlcTsKKyAgICAgICAgICAgIGN1ciA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBjdXIpOworICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsIG9sZHN0YXRlKTsKKyAgICAgICAgICAgIG9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgICAgICBpZiAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9JTlRFUkVYVFJBLCBjdXItPm5hbWUpOworICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gb2xkc3RhdGU7CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgICAgIGludCBmb3VuZCA9IDA7CisJICAgIGludCBiZXN0ID0gLTE7CisJICAgIGludCBsb3dhdHRyID0gLTE7CisKKwkgICAgLyoKKwkgICAgICogUEJNOiB3aGF0IGhhcHBlbiBpZiB0aGVyZSBpcyBhdHRyaWJ1dGVzIGNoZWNrcyBpbiB0aGUgaW50ZXJsZWF2ZXMKKwkgICAgICovCisKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGU7IGorKykgeworICAgICAgICAgICAgICAgIGN1ciA9IGN0eHQtPnN0YXRlcy0+dGFiU3RhdGVbal0tPnNlcTsKKyAgICAgICAgICAgICAgICBjdXIgPSB4bWxSZWxheE5HU2tpcElnbm9yZWQoY3R4dCwgY3VyKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VyID09IE5VTEwpIHsKKwkJICAgIGlmIChmb3VuZCA9PSAwKSB7CisJCSAgICAgICAgbG93YXR0ciA9IGN0eHQtPnN0YXRlcy0+dGFiU3RhdGVbal0tPm5iQXR0ckxlZnQ7CisJCQliZXN0ID0gajsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSAxOworCQkgICAgaWYgKGN0eHQtPnN0YXRlcy0+dGFiU3RhdGVbal0tPm5iQXR0ckxlZnQgPD0gbG93YXR0cikgeworCQkgICAgICAgIC8qIHRyeSAgdG8ga2VlcCB0aGUgbGF0ZXN0IG9uZSB0byBtYWNoIG9sZCBoZXVyaXN0aWMgKi8KKwkJICAgICAgICBsb3dhdHRyID0gY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtqXS0+bmJBdHRyTGVmdDsKKwkJCWJlc3QgPSBqOworCQkgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobG93YXR0ciA9PSAwKQorCQkgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG93YXR0ciA9PSAtMSkgeworCQkgICAgICAgIGxvd2F0dHIgPSBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2pdLT5uYkF0dHJMZWZ0OworCQkJYmVzdCA9IGo7CisJCSAgICB9IGVsc2UKKwkJICAgIGlmIChjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2pdLT5uYkF0dHJMZWZ0IDw9IGxvd2F0dHIpICB7CisJCSAgICAgICAgLyogdHJ5ICB0byBrZWVwIHRoZSBsYXRlc3Qgb25lIHRvIG1hY2ggb2xkIGhldXJpc3RpYyAqLworCQkgICAgICAgIGxvd2F0dHIgPSBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2pdLT5uYkF0dHJMZWZ0OworCQkJYmVzdCA9IGo7CisJCSAgICB9CisJCX0KKyAgICAgICAgICAgIH0KKwkgICAgLyoKKwkgICAgICogQklHIFBCTTogaGVyZSB3ZSBwaWNrIG9ubHkgb25lIHJlc3RhcnRpbmcgcG9pbnQgOi0oCisJICAgICAqLworICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlcy0+bmJTdGF0ZSA+IDApIHsKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwgb2xkc3RhdGUpOworCQlpZiAoYmVzdCAhPSAtMSkgeworCQkgICAgb2xkc3RhdGUgPSBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2Jlc3RdOworCQkgICAgY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtiZXN0XSA9IE5VTEw7CisJCX0gZWxzZSB7CisJCSAgICBvbGRzdGF0ZSA9CisJCQljdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2N0eHQtPnN0YXRlcy0+bmJTdGF0ZSAtIDFdOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2N0eHQtPnN0YXRlcy0+bmJTdGF0ZSAtIDFdID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzLT5uYlN0YXRlLS07CisJCX0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGUgOyBqKyspIHsKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwgY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtqXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhjdHh0LCBjdHh0LT5zdGF0ZXMpOworICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICAgICAgICAgIGlmIChmb3VuZCA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJCSAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9JTlRFUkVYVFJBLAorCQkJICAgICAgIChjb25zdCB4bWxDaGFyICopICJub25hbWUiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9JTlRFUkVYVFJBLCBjdXItPm5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IG9sZHN0YXRlOworICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxhc3RzW2ldICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGxhc3RzW2ldLT5uZXh0ID0gbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY3R4dC0+c3RhdGUgIT0gTlVMTCkKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsIGN0eHQtPnN0YXRlKTsKKyAgICBjdHh0LT5zdGF0ZSA9IG9sZHN0YXRlOworICAgIGN0eHQtPnN0YXRlLT5zZXEgPSBsYXN0ZWxlbTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgVkFMSURfRVJSKFhNTF9SRUxBWE5HX0VSUl9JTlRFUlNFUSk7CisgICAgICAgIHJldCA9IC0xOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorCisgIGRvbmU6CisgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyAgICAvKgorICAgICAqIGJ1aWxkcyB0aGUgbmV4dCBsaW5rcyBjaGFpbiBmcm9tIHRoZSBwcmV2IG9uZQorICAgICAqLworICAgIGN1ciA9IGxhc3RjaGc7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmICgoY3VyID09IHN0YXJ0KSB8fCAoY3VyLT5wcmV2ID09IE5VTEwpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGN1ci0+cHJldi0+bmV4dCA9IGN1cjsKKyAgICAgICAgY3VyID0gY3VyLT5wcmV2OworICAgIH0KKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgaWYgKGN0eHQtPmVyck5yID4gZXJyTnIpCisgICAgICAgICAgICB4bWxSZWxheE5HUG9wRXJyb3JzKGN0eHQsIGVyck5yKTsKKyAgICB9CisKKyAgICB4bWxGcmVlKGxpc3QpOworICAgIHhtbEZyZWUobGFzdHMpOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uTGlzdDoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkZWZpbmU6ICB0aGUgbGlzdCBvZiBkZWZpbml0aW9uIHRvIHZlcmlmeQorICoKKyAqIFZhbGlkYXRlIHRoZSBnaXZlbiBub2RlIGNvbnRlbnQgYWdhaW5zdCB0aGUgKGxpc3QpIG9mIGRlZmluaXRpb25zCisgKgorICogUmV0dXJucyAwIGlmIHRoZSB2YWxpZGF0aW9uIHN1Y2NlZWRlZCBvciBhbiBlcnJvciBjb2RlLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uTGlzdCh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZXMpCit7CisgICAgaW50IHJldCA9IDAsIHJlczsKKworCisgICAgaWYgKGRlZmluZXMgPT0gTlVMTCkgeworICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9JTlRFUk5BTCwKKyAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiTlVMTCBkZWZpbml0aW9uIGxpc3QiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIHdoaWxlIChkZWZpbmVzICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB8fCAoY3R4dC0+c3RhdGVzICE9IE5VTEwpKSB7CisgICAgICAgICAgICByZXMgPSB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uKGN0eHQsIGRlZmluZXMpOworICAgICAgICAgICAgaWYgKHJlcyA8IDApCisgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBWQUxJRF9FUlIoWE1MX1JFTEFYTkdfRVJSX05PU1RBVEUpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlcyA9PSAtMSkgICAgICAgICAgLyogY29udGludWVzIG9uIC0yICovCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmaW5lcyA9IGRlZmluZXMtPm5leHQ7CisgICAgfQorCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdFbGVtZW50TWF0Y2g6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZGVmaW5lOiAgdGhlIGRlZmluaXRpb24gdG8gY2hlY2sKKyAqIEBlbGVtOiAgdGhlIGVsZW1lbnQKKyAqCisgKiBDaGVjayBpZiB0aGUgZWxlbWVudCBtYXRjaGVzIHRoZSBkZWZpbml0aW9uIG5hbWVDbGFzcworICoKKyAqIFJldHVybnMgMSBpZiB0aGUgZWxlbWVudCBtYXRjaGVzLCAwIGlmIG5vLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdFbGVtZW50TWF0Y2goeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRGVmaW5lUHRyIGRlZmluZSwgeG1sTm9kZVB0ciBlbGVtKQoreworICAgIGludCByZXQgPSAwLCBvbGRmbGFncyA9IDA7CisKKyAgICBpZiAoZGVmaW5lLT5uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKCF4bWxTdHJFcXVhbChlbGVtLT5uYW1lLCBkZWZpbmUtPm5hbWUpKSB7CisgICAgICAgICAgICBWQUxJRF9FUlIzKFhNTF9SRUxBWE5HX0VSUl9FTEVNTkFNRSwgZGVmaW5lLT5uYW1lLCBlbGVtLT5uYW1lKTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKChkZWZpbmUtPm5zICE9IE5VTEwpICYmIChkZWZpbmUtPm5zWzBdICE9IDApKSB7CisgICAgICAgIGlmIChlbGVtLT5ucyA9PSBOVUxMKSB7CisgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9FTEVNTk9OUywgZWxlbS0+bmFtZSk7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9IGVsc2UgaWYgKCF4bWxTdHJFcXVhbChlbGVtLT5ucy0+aHJlZiwgZGVmaW5lLT5ucykpIHsKKyAgICAgICAgICAgIFZBTElEX0VSUjMoWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9OR05TLAorICAgICAgICAgICAgICAgICAgICAgICBlbGVtLT5uYW1lLCBkZWZpbmUtPm5zKTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKChlbGVtLT5ucyAhPSBOVUxMKSAmJiAoZGVmaW5lLT5ucyAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgKGRlZmluZS0+bmFtZSA9PSBOVUxMKSkgeworICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9FTEVNRVhUUkFOUywgZWxlbS0+bmFtZSk7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfSBlbHNlIGlmICgoZWxlbS0+bnMgIT0gTlVMTCkgJiYgKGRlZmluZS0+bmFtZSAhPSBOVUxMKSkgeworICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9FTEVNRVhUUkFOUywgZGVmaW5lLT5uYW1lKTsKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICB9CisKKyAgICBpZiAoZGVmaW5lLT5uYW1lQ2xhc3MgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgxKTsKKworICAgIGRlZmluZSA9IGRlZmluZS0+bmFtZUNsYXNzOworICAgIGlmIChkZWZpbmUtPnR5cGUgPT0gWE1MX1JFTEFYTkdfRVhDRVBUKSB7CisgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdDsKKworICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBvbGRmbGFncyA9IGN0eHQtPmZsYWdzOworICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgfD0gRkxBR1NfSUdOT1JBQkxFOworICAgICAgICB9CisKKyAgICAgICAgbGlzdCA9IGRlZmluZS0+Y29udGVudDsKKyAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR0VsZW1lbnRNYXRjaChjdHh0LCBsaXN0LCBlbGVtKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMSkgeworICAgICAgICAgICAgICAgIGlmIChjdHh0ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisgICAgICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGN0eHQgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHJldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKKyAgICAgICAgfQorICAgICAgICByZXQgPSAxOworICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBjdHh0LT5mbGFncyA9IG9sZGZsYWdzOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChkZWZpbmUtPnR5cGUgPT0gWE1MX1JFTEFYTkdfQ0hPSUNFKSB7CisgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdDsKKworICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBvbGRmbGFncyA9IGN0eHQtPmZsYWdzOworICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgfD0gRkxBR1NfSUdOT1JBQkxFOworICAgICAgICB9CisKKyAgICAgICAgbGlzdCA9IGRlZmluZS0+bmFtZUNsYXNzOworICAgICAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HRWxlbWVudE1hdGNoKGN0eHQsIGxpc3QsIGVsZW0pOworICAgICAgICAgICAgaWYgKHJldCA9PSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKGN0eHQgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyAgICAgICAgICAgICAgICByZXR1cm4gKDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyA9IG9sZGZsYWdzOworICAgICAgICAgICAgICAgIHJldHVybiAocmV0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0OworICAgICAgICB9CisgICAgICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmICgoY3R4dC0+ZmxhZ3MgJiBGTEFHU19JR05PUkFCTEUpID09IDApCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEdW1wVmFsaWRFcnJvcihjdHh0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmVyck5yID4gMCkKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1BvcEVycm9ycyhjdHh0LCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXQgPSAwOworICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBjdHh0LT5mbGFncyA9IG9sZGZsYWdzOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgVE9ETyByZXQgPSAtMTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdCZXN0U3RhdGU6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogRmluZCB0aGUgImJlc3QiIHN0YXRlIGluIHRoZSBjdHh0LT5zdGF0ZXMgbGlzdCBvZiBzdGF0ZXMgdG8gcmVwb3J0CisgKiBlcnJvcnMgYWJvdXQuIEkuZS4gYSBzdGF0ZSB3aXRoIG5vIGVsZW1lbnQgbGVmdCBpbiB0aGUgY2hpbGQgbGlzdAorICogb3IgdGhlIG9uZSB3aXRoIHRoZSBsZXNzIGF0dHJpYnV0ZXMgbGVmdC4KKyAqIFRoaXMgaXMgY2FsbGVkIG9ubHkgaWYgYSBmYWxpZGF0aW9uIGVycm9yIHdhcyBkZXRlY3RlZAorICoKKyAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSAiYmVzdCIgc3RhdGUgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HQmVzdFN0YXRlKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciBzdGF0ZTsKKyAgICBpbnQgaSwgdG1wOworICAgIGludCBiZXN0ID0gLTE7CisgICAgaW50IHZhbHVlID0gMTAwMDAwMDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+c3RhdGVzID09IE5VTEwpIHx8CisgICAgICAgIChjdHh0LT5zdGF0ZXMtPm5iU3RhdGUgPD0gMCkpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgZm9yIChpID0gMDsgaSA8IGN0eHQtPnN0YXRlcy0+bmJTdGF0ZTsgaSsrKSB7CisgICAgICAgIHN0YXRlID0gY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtpXTsKKyAgICAgICAgaWYgKHN0YXRlID09IE5VTEwpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKHN0YXRlLT5zZXEgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKChiZXN0ID09IC0xKSB8fCAodmFsdWUgPiAxMDAwMDApKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSAxMDAwMDA7CisgICAgICAgICAgICAgICAgYmVzdCA9IGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0bXAgPSBzdGF0ZS0+bmJBdHRyTGVmdDsKKyAgICAgICAgICAgIGlmICgoYmVzdCA9PSAtMSkgfHwgKHZhbHVlID4gdG1wKSkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gdG1wOworICAgICAgICAgICAgICAgIGJlc3QgPSBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAoYmVzdCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR0xvZ0Jlc3RFcnJvcjoKKyAqIEBjdHh0OiAgYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqCisgKiBGaW5kIHRoZSAiYmVzdCIgc3RhdGUgaW4gdGhlIGN0eHQtPnN0YXRlcyBsaXN0IG9mIHN0YXRlcyB0byByZXBvcnQKKyAqIGVycm9ycyBhYm91dCBhbmQgbG9nIGl0LgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR0xvZ0Jlc3RFcnJvcih4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQpCit7CisgICAgaW50IGJlc3Q7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPnN0YXRlcyA9PSBOVUxMKSB8fAorICAgICAgICAoY3R4dC0+c3RhdGVzLT5uYlN0YXRlIDw9IDApKQorICAgICAgICByZXR1cm47CisKKyAgICBiZXN0ID0geG1sUmVsYXhOR0Jlc3RTdGF0ZShjdHh0KTsKKyAgICBpZiAoKGJlc3QgPj0gMCkgJiYgKGJlc3QgPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGUpKSB7CisgICAgICAgIGN0eHQtPnN0YXRlID0gY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtiZXN0XTsKKworICAgICAgICB4bWxSZWxheE5HVmFsaWRhdGVFbGVtZW50RW5kKGN0eHQsIDEpOworICAgIH0KK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVFbGVtZW50RW5kOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvbG9nOiAgaW5kaWNhdGUgdGhhdCBlcnJvciBsb2dnaW5nIHNob3VsZCBiZSBkb25lCisgKgorICogVmFsaWRhdGUgdGhlIGVuZCBvZiB0aGUgZWxlbWVudCwgaW1wbGVtZW50cyBjaGVjayB0aGF0CisgKiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgbm90IGNvbnN1bWVkIGluIHRoZSBlbGVtZW50IGNvbnRlbnQKKyAqIG9yIGluIHRoZSBhdHRyaWJ1dGUgbGlzdC4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbGlkYXRpb24gc3VjY2VlZGVkIG9yIGFuIGVycm9yIGNvZGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFJlbGF4TkdWYWxpZGF0ZUVsZW1lbnRFbmQoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LCBpbnQgZG9sb2cpCit7CisgICAgaW50IGk7CisgICAgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgc3RhdGU7CisKKyAgICBzdGF0ZSA9IGN0eHQtPnN0YXRlOworICAgIGlmIChzdGF0ZS0+c2VxICE9IE5VTEwpIHsKKyAgICAgICAgc3RhdGUtPnNlcSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBzdGF0ZS0+c2VxKTsKKyAgICAgICAgaWYgKHN0YXRlLT5zZXEgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKGRvbG9nKSB7CisgICAgICAgICAgICAgICAgVkFMSURfRVJSMyhYTUxfUkVMQVhOR19FUlJfRVhUUkFDT05URU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPm5vZGUtPm5hbWUsIHN0YXRlLT5zZXEtPm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IHN0YXRlLT5uYkF0dHJzOyBpKyspIHsKKyAgICAgICAgaWYgKHN0YXRlLT5hdHRyc1tpXSAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoZG9sb2cpIHsKKyAgICAgICAgICAgICAgICBWQUxJRF9FUlIzKFhNTF9SRUxBWE5HX0VSUl9JTlZBTElEQVRUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5hdHRyc1tpXS0+bmFtZSwgc3RhdGUtPm5vZGUtPm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICgtMSAtIGkpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1ZhbGlkYXRlU3RhdGU6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZGVmaW5lOiAgdGhlIGRlZmluaXRpb24gdG8gdmVyaWZ5CisgKgorICogVmFsaWRhdGUgdGhlIGN1cnJlbnQgc3RhdGUgYWdhaW5zdCB0aGUgZGVmaW5pdGlvbgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsaWRhdGlvbiBzdWNjZWVkZWQgb3IgYW4gZXJyb3IgY29kZS4KKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1ZhbGlkYXRlU3RhdGUoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmUpCit7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIGludCByZXQgPSAwLCBpLCB0bXAsIG9sZGZsYWdzLCBlcnJOcjsKKyAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciBvbGRzdGF0ZSA9IE5VTEwsIHN0YXRlOworCisgICAgaWYgKGRlZmluZSA9PSBOVUxMKSB7CisgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9ERUZJTkUpOworICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICBpZiAoY3R4dC0+c3RhdGUgIT0gTlVMTCkgeworICAgICAgICBub2RlID0gY3R4dC0+c3RhdGUtPnNlcTsKKyAgICB9IGVsc2UgeworICAgICAgICBub2RlID0gTlVMTDsKKyAgICB9CisjaWZkZWYgREVCVUcKKyAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+ZGVwdGg7IGkrKykKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIgIik7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICJTdGFydCB2YWxpZGF0aW5nICVzICIsIHhtbFJlbGF4TkdEZWZOYW1lKGRlZmluZSkpOworICAgIGlmIChkZWZpbmUtPm5hbWUgIT0gTlVMTCkKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIlcyAiLCBkZWZpbmUtPm5hbWUpOworICAgIGlmICgobm9kZSAhPSBOVUxMKSAmJiAobm9kZS0+bmFtZSAhPSBOVUxMKSkKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJvbiAlc1xuIiwgbm9kZS0+bmFtZSk7CisgICAgZWxzZQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlxuIik7CisjZW5kaWYKKyAgICBjdHh0LT5kZXB0aCsrOworICAgIHN3aXRjaCAoZGVmaW5lLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRU1QVFk6CisgICAgICAgICAgICBub2RlID0geG1sUmVsYXhOR1NraXBJZ25vcmVkKGN0eHQsIG5vZGUpOworICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX05PVF9BTExPV0VEOgorICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19URVhUOgorICAgICAgICAgICAgd2hpbGUgKChub2RlICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgKChub2RlLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisgICAgICAgICAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9DT01NRU5UX05PREUpIHx8CisgICAgICAgICAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9QSV9OT0RFKSB8fAorICAgICAgICAgICAgICAgICAgICAobm9kZS0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSkpCisgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxID0gbm9kZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0VMRU1FTlQ6CisgICAgICAgICAgICBlcnJOciA9IGN0eHQtPmVyck5yOworICAgICAgICAgICAgbm9kZSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBub2RlKTsKKyAgICAgICAgICAgIGlmIChub2RlID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9OT0VMRU0sIGRlZmluZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgaWYgKChjdHh0LT5mbGFncyAmIEZMQUdTX0lHTk9SQUJMRSkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBWYWxpZEVycm9yKGN0eHQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgeworICAgICAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfTk9URUxFTSk7CisgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgaWYgKChjdHh0LT5mbGFncyAmIEZMQUdTX0lHTk9SQUJMRSkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBWYWxpZEVycm9yKGN0eHQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFRoaXMgbm9kZSB3YXMgYWxyZWFkeSB2YWxpZGF0ZWQgc3VjY2Vzc2Z1bGx5IGFnYWluc3QKKyAgICAgICAgICAgICAqIHRoaXMgZGVmaW5pdGlvbi4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKG5vZGUtPnBzdmkgPT0gZGVmaW5lKSB7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnNlcSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBub2RlLT5uZXh0KTsKKyAgICAgICAgICAgICAgICBpZiAoY3R4dC0+ZXJyTnIgPiBlcnJOcikKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1BvcEVycm9ycyhjdHh0LCBlcnJOcik7CisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmVyck5yICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChjdHh0LT5lcnIgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGN0eHQtPmVyci0+ZXJyID09IFhNTF9SRUxBWE5HX0VSUl9FTEVNTkFNRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHhtbFN0ckVxdWFsKGN0eHQtPmVyci0+YXJnMiwgbm9kZS0+bmFtZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjdHh0LT5lcnItPmVyciA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1JFTEFYTkdfRVJSX0VMRU1FWFRSQU5TKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoeG1sU3RyRXF1YWwoY3R4dC0+ZXJyLT5hcmcxLCBub2RlLT5uYW1lKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGN0eHQtPmVyci0+ZXJyID09IFhNTF9SRUxBWE5HX0VSUl9OT0VMRU0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGN0eHQtPmVyci0+ZXJyID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9SRUxBWE5HX0VSUl9OT1RFTEVNKSkpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HVmFsaWRFcnJvclBvcChjdHh0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdFbGVtZW50TWF0Y2goY3R4dCwgZGVmaW5lLCBub2RlKTsKKyAgICAgICAgICAgIGlmIChyZXQgPD0gMCkgeworICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgIGlmICgoY3R4dC0+ZmxhZ3MgJiBGTEFHU19JR05PUkFCTEUpID09IDApCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEdW1wVmFsaWRFcnJvcihjdHh0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICBpZiAoY3R4dC0+ZXJyTnIgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChjdHh0LT5lcnJOciA+IGVyck5yKQorICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HUG9wRXJyb3JzKGN0eHQsIGVyck5yKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGN0eHQtPmVyciAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAoKChjdHh0LT5lcnItPmVyciA9PSBYTUxfUkVMQVhOR19FUlJfRUxFTU5BTUUpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsKGN0eHQtPmVyci0+YXJnMiwgbm9kZS0+bmFtZSkpKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgKChjdHh0LT5lcnItPmVyciA9PSBYTUxfUkVMQVhOR19FUlJfRUxFTUVYVFJBTlMpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsKGN0eHQtPmVyci0+YXJnMSwgbm9kZS0+bmFtZSkpKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPmVyci0+ZXJyID09IFhNTF9SRUxBWE5HX0VSUl9OT0VMRU0pIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoY3R4dC0+ZXJyLT5lcnIgPT0gWE1MX1JFTEFYTkdfRVJSX05PVEVMRU0pKSkKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkRXJyb3JQb3AoY3R4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJOciA9IGN0eHQtPmVyck5yOworCisgICAgICAgICAgICBvbGRmbGFncyA9IGN0eHQtPmZsYWdzOworICAgICAgICAgICAgaWYgKGN0eHQtPmZsYWdzICYgRkxBR1NfTUlYRURfQ09OVEVOVCkgeworICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzIC09IEZMQUdTX01JWEVEX0NPTlRFTlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGF0ZSA9IHhtbFJlbGF4TkdOZXdWYWxpZFN0YXRlKGN0eHQsIG5vZGUpOworICAgICAgICAgICAgaWYgKHN0YXRlID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgICAgICBpZiAoKGN0eHQtPmZsYWdzICYgRkxBR1NfSUdOT1JBQkxFKSA9PSAwKQorICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRHVtcFZhbGlkRXJyb3IoY3R4dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAgaWYgKGRlZmluZS0+YXR0cnMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHRtcCA9IHhtbFJlbGF4TkdWYWxpZGF0ZUF0dHJpYnV0ZUxpc3QoY3R4dCwgZGVmaW5lLT5hdHRycyk7CisgICAgICAgICAgICAgICAgaWYgKHRtcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9BVFRSVkFMSUQsIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkZWZpbmUtPmNvbnRNb2RlbCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkU3RhdGVQdHIgbnN0YXRlLCB0bXBzdGF0ZSA9IGN0eHQtPnN0YXRlOworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdTdGF0ZXNQdHIgdG1wc3RhdGVzID0gY3R4dC0+c3RhdGVzOworICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbnNlcTsKKworICAgICAgICAgICAgICAgIG5zdGF0ZSA9IHhtbFJlbGF4TkdOZXdWYWxpZFN0YXRlKGN0eHQsIG5vZGUpOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gbnN0YXRlOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlcyA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HVmFsaWRhdGVDb21waWxlZENvbnRlbnQoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lLT5jb250TW9kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT5zZXEpOworICAgICAgICAgICAgICAgIG5zZXEgPSBjdHh0LT5zdGF0ZS0+c2VxOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gdG1wc3RhdGU7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0gdG1wc3RhdGVzOworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBuc3RhdGUpOworCisjaWZkZWYgREVCVUdfQ09NUElMRQorICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsaWRhdGluZyBjb250ZW50IG9mICclcycgOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lLT5uYW1lLCB0bXApOworI2VuZGlmCisgICAgICAgICAgICAgICAgaWYgKHRtcCAhPSAwKQorICAgICAgICAgICAgICAgICAgICByZXQgPSAtMTsKKworICAgICAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZXMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB0bXAgPSAtMTsKKworICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+c3RhdGVzLT5uYlN0YXRlOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+c2VxID0gbnNlcTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHhtbFJlbGF4TkdWYWxpZGF0ZUVsZW1lbnRFbmQoY3R4dCwgMCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogdmFsaWRhdGlvbiBlcnJvciwgbG9nIHRoZSBtZXNzYWdlIGZvciB0aGUgImJlc3QiIG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyB8PSBGTEFHU19JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HTG9nQmVzdEVycm9yKGN0eHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJTdGF0ZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVTdGF0ZXMoY3R4dCwgY3R4dC0+c3RhdGVzKTsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChyZXQgPT0gMCkgJiYgKHRtcCA9PSAtMSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGN0eHQtPnN0YXRlOworCQkgICAgaWYgKGN0eHQtPnN0YXRlICE9IE5VTEwpCisJCQljdHh0LT5zdGF0ZS0+c2VxID0gbnNlcTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRWxlbWVudEVuZChjdHh0LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsIHN0YXRlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChkZWZpbmUtPmNvbnRlbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uTGlzdChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBvbGRzdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9DT05URU5UVkFMSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBTElEX0VSUjIoWE1MX1JFTEFYTkdfRVJSX0NPTlRFTlRWQUxJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IC0xOworCisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBzdGF0ZTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHhtbFJlbGF4TkdWYWxpZGF0ZUVsZW1lbnRFbmQoY3R4dCwgMCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogdmFsaWRhdGlvbiBlcnJvciwgbG9nIHRoZSBtZXNzYWdlIGZvciB0aGUgImJlc3QiIG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyB8PSBGTEFHU19JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HTG9nQmVzdEVycm9yKGN0eHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2ldID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhjdHh0LCBjdHh0LT5zdGF0ZXMpOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyA9IG9sZGZsYWdzOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBpZiAoKHJldCA9PSAwKSAmJiAodG1wID09IC0xKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gY3R4dC0+c3RhdGU7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZUVsZW1lbnRFbmQoY3R4dCwgMSk7CisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgbm9kZS0+cHN2aSA9IGRlZmluZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IG9sZHN0YXRlOworICAgICAgICAgICAgaWYgKG9sZHN0YXRlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgb2xkc3RhdGUtPnNlcSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBub2RlLT5uZXh0KTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmICgoY3R4dC0+ZmxhZ3MgJiBGTEFHU19JR05PUkFCTEUpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0R1bXBWYWxpZEVycm9yKGN0eHQpOworICAgICAgICAgICAgICAgICAgICByZXQgPSAwOworI2lmIDAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXQgPSAtMjsKKyNlbmRpZgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmVyck5yID4gZXJyTnIpCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQb3BFcnJvcnMoY3R4dCwgZXJyTnIpOworICAgICAgICAgICAgfQorCisjaWZkZWYgREVCVUcKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uKCk6IHZhbGlkYXRlZCAlcyA6ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5uYW1lLCByZXQpOworICAgICAgICAgICAgaWYgKG9sZHN0YXRlID09IE5VTEwpCisgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI6IG5vIHN0YXRlXG4iKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9sZHN0YXRlLT5zZXEgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIjogZG9uZVxuIik7CisgICAgICAgICAgICBlbHNlIGlmIChvbGRzdGF0ZS0+c2VxLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI6IG5leHQgZWxlbSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkc3RhdGUtPnNlcS0+bmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI6IG5leHQgJXMgJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZHN0YXRlLT5zZXEtPm5hbWUsIG9sZHN0YXRlLT5zZXEtPnR5cGUpOworI2VuZGlmCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19PUFRJT05BTDp7CisgICAgICAgICAgICAgICAgZXJyTnIgPSBjdHh0LT5lcnJOcjsKKyAgICAgICAgICAgICAgICBvbGRmbGFncyA9IGN0eHQtPmZsYWdzOworICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzIHw9IEZMQUdTX0lHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICBvbGRzdGF0ZSA9IHhtbFJlbGF4TkdDb3B5VmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICAgICAgcmV0ID0KKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkYXRlRGVmaW5pdGlvbkxpc3QoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lLT5jb250ZW50KTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwgY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IG9sZHN0YXRlOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyA9IG9sZGZsYWdzOworICAgICAgICAgICAgICAgICAgICByZXQgPSAwOworICAgICAgICAgICAgICAgICAgICBpZiAoY3R4dC0+ZXJyTnIgPiBlcnJOcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQb3BFcnJvcnMoY3R4dCwgZXJyTnIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdBZGRTdGF0ZXMoY3R4dCwgY3R4dC0+c3RhdGVzLCBvbGRzdGF0ZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0geG1sUmVsYXhOR05ld1N0YXRlcyhjdHh0LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlcyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwgb2xkc3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmVyck5yID4gZXJyTnIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1BvcEVycm9ycyhjdHh0LCBlcnJOcik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQWRkU3RhdGVzKGN0eHQsIGN0eHQtPnN0YXRlcywgb2xkc3RhdGUpOworICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQWRkU3RhdGVzKGN0eHQsIGN0eHQtPnN0YXRlcywgY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN0eHQtPmZsYWdzID0gb2xkZmxhZ3M7CisgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoY3R4dC0+ZXJyTnIgPiBlcnJOcikKKyAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1BvcEVycm9ycyhjdHh0LCBlcnJOcik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfT05FT1JNT1JFOgorICAgICAgICAgICAgZXJyTnIgPSBjdHh0LT5lcnJOcjsKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZURlZmluaXRpb25MaXN0KGN0eHQsIGRlZmluZS0+Y29udGVudCk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjdHh0LT5lcnJOciA+IGVyck5yKQorICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQb3BFcnJvcnMoY3R4dCwgZXJyTnIpOworICAgICAgICAgICAgLyogbm8gYnJlYWsgb24gcHVycG9zZSAqLworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1pFUk9PUk1PUkU6eworICAgICAgICAgICAgICAgIGludCBwcm9ncmVzczsKKyAgICAgICAgICAgICAgICB4bWxSZWxheE5HU3RhdGVzUHRyIHN0YXRlcyA9IE5VTEwsIHJlcyA9IE5VTEw7CisgICAgICAgICAgICAgICAgaW50IGJhc2UsIGo7CisKKyAgICAgICAgICAgICAgICBlcnJOciA9IGN0eHQtPmVyck5yOworICAgICAgICAgICAgICAgIHJlcyA9IHhtbFJlbGF4TkdOZXdTdGF0ZXMoY3R4dCwgMSk7CisgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBBbGwgdGhlIGlucHV0IHN0YXRlcyBhcmUgYWxzbyBleGl0IHN0YXRlcworICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdBZGRTdGF0ZXMoY3R4dCwgcmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDb3B5VmFsaWRTdGF0ZShjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgY3R4dC0+c3RhdGVzLT5uYlN0YXRlOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdBZGRTdGF0ZXMoY3R4dCwgcmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdDb3B5VmFsaWRTdGF0ZShjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2pdKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkZmxhZ3MgPSBjdHh0LT5mbGFnczsKKyAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyB8PSBGTEFHU19JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IDA7CisgICAgICAgICAgICAgICAgICAgIGJhc2UgPSByZXMtPm5iU3RhdGU7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZXMgPSBjdHh0LT5zdGF0ZXM7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3RhdGVzLT5uYlN0YXRlOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IHN0YXRlcy0+dGFiU3RhdGVbaV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uTGlzdChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZS0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB4bWxSZWxheE5HQWRkU3RhdGVzKGN0eHQsIHJlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdHh0LT5zdGF0ZXMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGN0eHQtPnN0YXRlcy0+bmJTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0FkZFN0YXRlcyhjdHh0LCByZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlU3RhdGVzKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uTGlzdChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsIGN0eHQtPnN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UgPSByZXMtPm5iU3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnN0YXRlICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0geG1sUmVsYXhOR0FkZFN0YXRlcyhjdHh0LCByZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjdHh0LT5zdGF0ZXMtPm5iU3RhdGU7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0geG1sUmVsYXhOR0FkZFN0YXRlcyhjdHh0LCByZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlcy0+dGFiU3RhdGVbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGVzID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlcyA9IGN0eHQtPnN0YXRlczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlU3RhdGVzKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlcyA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9ncmVzcykgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIENvbGxlY3QgYWxsIHRoZSBuZXcgbm9kZXMgYWRkZWQgYXQgdGhhdCBzdGVwCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhbmQgbWFrZSB0aGVtIHRoZSBuZXcgbm9kZSBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy0+bmJTdGF0ZSAtIGJhc2UgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0geG1sUmVsYXhOR0NvcHlWYWxpZFN0YXRlKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJTdGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtiYXNlXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZXMgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HTmV3U3RhdGVzKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLT5uYlN0YXRlIC0gYmFzZSk7CisJCQkgICAgICAgIHN0YXRlcyA9IGN0eHQtPnN0YXRlczsKKwkJCQlpZiAoc3RhdGVzID09IE5VTEwpIHsKKwkJCQkgICAgcHJvZ3Jlc3MgPSAwOworCQkJCSAgICBicmVhazsKKwkJCQl9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlcy0+bmJTdGF0ZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gYmFzZTsgaSA8IHJlcy0+bmJTdGF0ZTsgaSsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQWRkU3RhdGVzKGN0eHQsIHN0YXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQ29weVZhbGlkU3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3R4dCwgcmVzLT50YWJTdGF0ZVtpXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlcyA9IHN0YXRlczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gd2hpbGUgKHByb2dyZXNzID09IDEpOworICAgICAgICAgICAgICAgIGlmIChzdGF0ZXMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhjdHh0LCBzdGF0ZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMgPSByZXM7CisgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgPSBvbGRmbGFnczsKKyNpZiAwCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBlcnJvcnMgbWF5IGhhdmUgdG8gYmUgcHJvcGFnYXRlZCBiYWNrLi4uCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYgKGN0eHQtPmVyck5yID4gZXJyTnIpCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQb3BFcnJvcnMoY3R4dCwgZXJyTnIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19DSE9JQ0U6eworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdEZWZpbmVQdHIgbGlzdCA9IE5VTEw7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1N0YXRlc1B0ciBzdGF0ZXMgPSBOVUxMOworCisgICAgICAgICAgICAgICAgbm9kZSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBub2RlKTsKKworICAgICAgICAgICAgICAgIGVyck5yID0gY3R4dC0+ZXJyTnI7CisgICAgICAgICAgICAgICAgaWYgKChkZWZpbmUtPmRmbGFncyAmIElTX1RSSUFCTEUpICYmIChkZWZpbmUtPmRhdGEgIT0gTlVMTCkgJiYKKwkJICAgIChub2RlICE9IE5VTEwpKSB7CisJCSAgICAvKgorCQkgICAgICogbm9kZSA9PSBOVUxMIGNhbid0IGJlIG9wdGltaXplZCBzaW5jZSBJU19UUklBQkxFCisJCSAgICAgKiBkb2Vzbid0IGFjY291bnQgZm9yIGNob2ljZSB3aGljaCBtYXkgbGVhZCB0bworCQkgICAgICogb25seSBhdHRyaWJ1dGVzLgorCQkgICAgICovCisgICAgICAgICAgICAgICAgICAgIHhtbEhhc2hUYWJsZVB0ciB0cmlhZ2UgPQorICAgICAgICAgICAgICAgICAgICAgICAgKHhtbEhhc2hUYWJsZVB0cikgZGVmaW5lLT5kYXRhOworCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIFNvbWV0aGluZyB3ZSBjYW4gb3B0aW1pemUgY2xlYW5seSB0aGVyZSBpcyBvbmx5IG9uZQorICAgICAgICAgICAgICAgICAgICAgKiBwb3NzYmxlIGJyYW5jaCBvdXQgIQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYgKChub2RlLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAobm9kZS0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sSGFzaExvb2t1cDIodHJpYWdlLCBCQURfQ0FTVCAiI3RleHQiLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5ucyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9IHhtbEhhc2hMb29rdXAyKHRyaWFnZSwgbm9kZS0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bnMtPmhyZWYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sSGFzaExvb2t1cDIodHJpYWdlLCBCQURfQ0FTVCAiI2FueSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5ucy0+aHJlZik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sSGFzaExvb2t1cDIodHJpYWdlLCBub2RlLT5uYW1lLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEhhc2hMb29rdXAyKHRyaWFnZSwgQkFEX0NBU1QgIiNhbnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtMTsKKwkJCVZBTElEX0VSUjIoWE1MX1JFTEFYTkdfRVJSX0VMRU1XUk9ORywgbm9kZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uKGN0eHQsIGxpc3QpOworICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsaXN0ID0gZGVmaW5lLT5jb250ZW50OworICAgICAgICAgICAgICAgIG9sZGZsYWdzID0gY3R4dC0+ZmxhZ3M7CisgICAgICAgICAgICAgICAgY3R4dC0+ZmxhZ3MgfD0gRkxBR1NfSUdOT1JBQkxFOworCisgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBvbGRzdGF0ZSA9IHhtbFJlbGF4TkdDb3B5VmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZURlZmluaXRpb24oY3R4dCwgbGlzdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlcyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVzID0geG1sUmVsYXhOR05ld1N0YXRlcyhjdHh0LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0FkZFN0YXRlcyhjdHh0LCBzdGF0ZXMsIGN0eHQtPnN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3R4dC0+c3RhdGVzICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+c3RhdGVzLT5uYlN0YXRlOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0FkZFN0YXRlcyhjdHh0LCBzdGF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJTdGF0ZVtpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlU3RhdGVzKGN0eHQsIGN0eHQtPnN0YXRlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBvbGRzdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzdGF0ZXMgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwgb2xkc3RhdGUpOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMgPSBzdGF0ZXM7CisgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdHh0LT5mbGFncyA9IG9sZGZsYWdzOworICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGN0eHQtPmZsYWdzICYgRkxBR1NfSUdOT1JBQkxFKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRHVtcFZhbGlkRXJyb3IoY3R4dCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3R4dC0+ZXJyTnIgPiBlcnJOcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdQb3BFcnJvcnMoY3R4dCwgZXJyTnIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19ERUY6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfR1JPVVA6CisgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uTGlzdChjdHh0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfSU5URVJMRUFWRToKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZUludGVybGVhdmUoY3R4dCwgZGVmaW5lKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0FUVFJJQlVURToKKyAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZUF0dHJpYnV0ZShjdHh0LCBkZWZpbmUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfU1RBUlQ6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfTk9PUDoKKyAgICAgICAgY2FzZSBYTUxfUkVMQVhOR19SRUY6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhURVJOQUxSRUY6CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfUEFSRU5UUkVGOgorICAgICAgICAgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRGVmaW5pdGlvbihjdHh0LCBkZWZpbmUtPmNvbnRlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfREFUQVRZUEU6eworICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgY2hpbGQ7CisgICAgICAgICAgICAgICAgeG1sQ2hhciAqY29udGVudCA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICBjaGlsZCA9IG5vZGU7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNoaWxkICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFZBTElEX0VSUjIoWE1MX1JFTEFYTkdfRVJSX0RBVEFFTEVNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5wYXJlbnQtPm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoY2hpbGQtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGQtPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSB4bWxTdHJjYXQoY29udGVudCwgY2hpbGQtPmNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qIFRPRE86IGhhbmRsZSBlbnRpdGllcyAuLi4gKi8KKyAgICAgICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShjb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjb250ZW50ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IHhtbFN0cmR1cChCQURfQ0FTVCAiIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250ZW50ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1ZFcnJNZW1vcnkoY3R4dCwgInZhbGlkYXRpbmdcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVEYXRhdHlwZShjdHh0LCBjb250ZW50LCBkZWZpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnNlcSk7CisgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9EQVRBVFlQRSwgZGVmaW5lLT5uYW1lKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT5zZXEgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY29udGVudCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGNvbnRlbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1ZBTFVFOnsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICpjb250ZW50ID0gTlVMTDsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICpvbGR2YWx1ZTsKKyAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGNoaWxkOworCisgICAgICAgICAgICAgICAgY2hpbGQgPSBub2RlOworICAgICAgICAgICAgICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9WQUxFTEVNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5wYXJlbnQtPm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoY2hpbGQtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGQtPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSB4bWxTdHJjYXQoY29udGVudCwgY2hpbGQtPmNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qIFRPRE86IGhhbmRsZSBlbnRpdGllcyAuLi4gKi8KKyAgICAgICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShjb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjb250ZW50ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IHhtbFN0cmR1cChCQURfQ0FTVCAiIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250ZW50ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJuZ1ZFcnJNZW1vcnkoY3R4dCwgInZhbGlkYXRpbmdcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGR2YWx1ZSA9IGN0eHQtPnN0YXRlLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZS0+dmFsdWUgPSBjb250ZW50OworICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVZhbHVlKGN0eHQsIGRlZmluZSk7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnZhbHVlID0gb2xkdmFsdWU7CisgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9WQUxVRSwgZGVmaW5lLT5uYW1lKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT5zZXEgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY29udGVudCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGNvbnRlbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX0xJU1Q6eworICAgICAgICAgICAgICAgIHhtbENoYXIgKmNvbnRlbnQ7CisgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBjaGlsZDsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICpvbGR2YWx1ZSwgKm9sZGVuZHZhbHVlOworICAgICAgICAgICAgICAgIGludCBsZW47CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIE1ha2Ugc3VyZSBpdCdzIG9ubHkgdGV4dCBub2RlcworICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICAgICAgY29udGVudCA9IE5VTEw7CisgICAgICAgICAgICAgICAgY2hpbGQgPSBub2RlOworICAgICAgICAgICAgICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBWQUxJRF9FUlIyKFhNTF9SRUxBWE5HX0VSUl9MSVNURUxFTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+cGFyZW50LT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGNoaWxkLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0geG1sU3RyY2F0KGNvbnRlbnQsIGNoaWxkLT5jb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvKiBUT0RPOiBoYW5kbGUgZW50aXRpZXMgLi4uICovCisgICAgICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoY29udGVudCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY29udGVudCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KGN0eHQsICJ2YWxpZGF0aW5nXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGVuID0geG1sU3RybGVuKGNvbnRlbnQpOworICAgICAgICAgICAgICAgIG9sZHZhbHVlID0gY3R4dC0+c3RhdGUtPnZhbHVlOworICAgICAgICAgICAgICAgIG9sZGVuZHZhbHVlID0gY3R4dC0+c3RhdGUtPmVuZHZhbHVlOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT52YWx1ZSA9IGNvbnRlbnQ7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPmVuZHZhbHVlID0gY29udGVudCArIGxlbjsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVWYWx1ZShjdHh0LCBkZWZpbmUpOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT52YWx1ZSA9IG9sZHZhbHVlOworICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlLT5lbmR2YWx1ZSA9IG9sZGVuZHZhbHVlOworICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURfRVJSKFhNTF9SRUxBWE5HX0VSUl9MSVNUKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChyZXQgPT0gMCkgJiYgKG5vZGUgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUtPnNlcSA9IG5vZGUtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjb250ZW50ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoY29udGVudCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1JFTEFYTkdfRVhDRVBUOgorICAgICAgICBjYXNlIFhNTF9SRUxBWE5HX1BBUkFNOgorICAgICAgICAgICAgVE9ETyByZXQgPSAtMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjdHh0LT5kZXB0aC0tOworI2lmZGVmIERFQlVHCisgICAgZm9yIChpID0gMDsgaSA8IGN0eHQtPmRlcHRoOyBpKyspCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiICIpOworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAiVmFsaWRhdGluZyAlcyAiLCB4bWxSZWxheE5HRGVmTmFtZShkZWZpbmUpKTsKKyAgICBpZiAoZGVmaW5lLT5uYW1lICE9IE5VTEwpCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiJXMgIiwgZGVmaW5lLT5uYW1lKTsKKyAgICBpZiAocmV0ID09IDApCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAic3VjZWVkZWRcbiIpOworICAgIGVsc2UKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJmYWlsZWRcbiIpOworI2VuZGlmCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZGF0ZURlZmluaXRpb246CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZGVmaW5lOiAgdGhlIGRlZmluaXRpb24gdG8gdmVyaWZ5CisgKgorICogVmFsaWRhdGUgdGhlIGN1cnJlbnQgbm9kZSBsaXN0cyBhZ2FpbnN0IHRoZSBkZWZpbml0aW9uCisgKgorICogUmV0dXJucyAwIGlmIHRoZSB2YWxpZGF0aW9uIHN1Y2NlZWRlZCBvciBhbiBlcnJvciBjb2RlLgorICovCitzdGF0aWMgaW50Cit4bWxSZWxheE5HVmFsaWRhdGVEZWZpbml0aW9uKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0RlZmluZVB0ciBkZWZpbmUpCit7CisgICAgeG1sUmVsYXhOR1N0YXRlc1B0ciBzdGF0ZXMsIHJlczsKKyAgICBpbnQgaSwgaiwgaywgcmV0LCBvbGRmbGFnczsKKworICAgIC8qCisgICAgICogV2Ugc2hvdWxkIE5PVCBoYXZlIGJvdGggY3R4dC0+c3RhdGUgYW5kIGN0eHQtPnN0YXRlcworICAgICAqLworICAgIGlmICgoY3R4dC0+c3RhdGUgIT0gTlVMTCkgJiYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSkgeworICAgICAgICBUT0RPIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgICAgIGN0eHQtPnN0YXRlID0gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoKGN0eHQtPnN0YXRlcyA9PSBOVUxMKSB8fCAoY3R4dC0+c3RhdGVzLT5uYlN0YXRlID09IDEpKSB7CisgICAgICAgIGlmIChjdHh0LT5zdGF0ZXMgIT0gTlVMTCkgeworICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlWzBdOworICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVTdGF0ZXMoY3R4dCwgY3R4dC0+c3RhdGVzKTsKKyAgICAgICAgICAgIGN0eHQtPnN0YXRlcyA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlU3RhdGUoY3R4dCwgZGVmaW5lKTsKKyAgICAgICAgaWYgKChjdHh0LT5zdGF0ZSAhPSBOVUxMKSAmJiAoY3R4dC0+c3RhdGVzICE9IE5VTEwpKSB7CisgICAgICAgICAgICBUT0RPIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChjdHh0LT5zdGF0ZXMgIT0gTlVMTCkgJiYgKGN0eHQtPnN0YXRlcy0+bmJTdGF0ZSA9PSAxKSkgeworICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBjdHh0LT5zdGF0ZXMtPnRhYlN0YXRlWzBdOworICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVTdGF0ZXMoY3R4dCwgY3R4dC0+c3RhdGVzKTsKKyAgICAgICAgICAgIGN0eHQtPnN0YXRlcyA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChyZXQpOworICAgIH0KKworICAgIHN0YXRlcyA9IGN0eHQtPnN0YXRlczsKKyAgICBjdHh0LT5zdGF0ZXMgPSBOVUxMOworICAgIHJlcyA9IE5VTEw7CisgICAgaiA9IDA7CisgICAgb2xkZmxhZ3MgPSBjdHh0LT5mbGFnczsKKyAgICBjdHh0LT5mbGFncyB8PSBGTEFHU19JR05PUkFCTEU7CisgICAgZm9yIChpID0gMDsgaSA8IHN0YXRlcy0+bmJTdGF0ZTsgaSsrKSB7CisgICAgICAgIGN0eHQtPnN0YXRlID0gc3RhdGVzLT50YWJTdGF0ZVtpXTsKKyAgICAgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICAgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlU3RhdGUoY3R4dCwgZGVmaW5lKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2Ugc2hvdWxkIE5PVCBoYXZlIGJvdGggY3R4dC0+c3RhdGUgYW5kIGN0eHQtPnN0YXRlcworICAgICAgICAgKi8KKyAgICAgICAgaWYgKChjdHh0LT5zdGF0ZSAhPSBOVUxMKSAmJiAoY3R4dC0+c3RhdGVzICE9IE5VTEwpKSB7CisgICAgICAgICAgICBUT0RPIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICBpZiAoY3R4dC0+c3RhdGVzID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogYWRkIHRoZSBzdGF0ZSB0byB0aGUgY29udGFpbmVyICovCisgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdBZGRTdGF0ZXMoY3R4dCwgcmVzLCBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBhZGQgdGhlIHN0YXRlIGRpcmVjdGx5IGluIHN0YXRlcyAqLworICAgICAgICAgICAgICAgICAgICBzdGF0ZXMtPnRhYlN0YXRlW2orK10gPSBjdHh0LT5zdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG1ha2UgaXQgdGhlIG5ldyBjb250YWluZXIgYW5kIGNvcHkgb3RoZXIgcmVzdWx0cyAqLworICAgICAgICAgICAgICAgICAgICByZXMgPSBjdHh0LT5zdGF0ZXM7CisgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlcyA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBqOyBrKyspCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HQWRkU3RhdGVzKGN0eHQsIHJlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVzLT50YWJTdGF0ZVtrXSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogYWRkIGFsbCB0aGUgbmV3IHJlc3VsdHMgdG8gcmVzIGFuZCByZWZmIHRoZSBjb250YWluZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IGN0eHQtPnN0YXRlcy0+bmJTdGF0ZTsgaysrKQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0FkZFN0YXRlcyhjdHh0LCByZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlcy0+dGFiU3RhdGVba10pOworICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhjdHh0LCBjdHh0LT5zdGF0ZXMpOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZXMgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChjdHh0LT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZFN0YXRlKGN0eHQsIGN0eHQtPnN0YXRlKTsKKyAgICAgICAgICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IGN0eHQtPnN0YXRlcy0+bmJTdGF0ZTsgaysrKQorICAgICAgICAgICAgICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnN0YXRlcy0+dGFiU3RhdGVba10pOworICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlU3RhdGVzKGN0eHQsIGN0eHQtPnN0YXRlcyk7CisgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBjdHh0LT5mbGFncyA9IG9sZGZsYWdzOworICAgIGlmIChyZXMgIT0gTlVMTCkgeworICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhjdHh0LCBzdGF0ZXMpOworICAgICAgICBjdHh0LT5zdGF0ZXMgPSByZXM7CisgICAgICAgIHJldCA9IDA7CisgICAgfSBlbHNlIGlmIChqID4gMSkgeworICAgICAgICBzdGF0ZXMtPm5iU3RhdGUgPSBqOworICAgICAgICBjdHh0LT5zdGF0ZXMgPSBzdGF0ZXM7CisgICAgICAgIHJldCA9IDA7CisgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAgY3R4dC0+c3RhdGUgPSBzdGF0ZXMtPnRhYlN0YXRlWzBdOworICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhjdHh0LCBzdGF0ZXMpOworICAgICAgICByZXQgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IC0xOworICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhjdHh0LCBzdGF0ZXMpOworICAgICAgICBpZiAoY3R4dC0+c3RhdGVzICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlU3RhdGVzKGN0eHQsIGN0eHQtPnN0YXRlcyk7CisgICAgICAgICAgICBjdHh0LT5zdGF0ZXMgPSBOVUxMOworICAgICAgICB9CisgICAgfQorICAgIGlmICgoY3R4dC0+c3RhdGUgIT0gTlVMTCkgJiYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKSkgeworICAgICAgICBUT0RPIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBjdHh0LT5zdGF0ZSk7CisgICAgICAgIGN0eHQtPnN0YXRlID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdWYWxpZGF0ZURvY3VtZW50OgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICoKKyAqIFZhbGlkYXRlIHRoZSBnaXZlbiBkb2N1bWVudAorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsaWRhdGlvbiBzdWNjZWVkZWQgb3IgYW4gZXJyb3IgY29kZS4KKyAqLworc3RhdGljIGludAoreG1sUmVsYXhOR1ZhbGlkYXRlRG9jdW1lbnQoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jKQoreworICAgIGludCByZXQ7CisgICAgeG1sUmVsYXhOR1B0ciBzY2hlbWE7CisgICAgeG1sUmVsYXhOR0dyYW1tYXJQdHIgZ3JhbW1hcjsKKyAgICB4bWxSZWxheE5HVmFsaWRTdGF0ZVB0ciBzdGF0ZTsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPnNjaGVtYSA9PSBOVUxMKSB8fCAoZG9jID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIGN0eHQtPmVyck5vID0gWE1MX1JFTEFYTkdfT0s7CisgICAgc2NoZW1hID0gY3R4dC0+c2NoZW1hOworICAgIGdyYW1tYXIgPSBzY2hlbWEtPnRvcGdyYW1tYXI7CisgICAgaWYgKGdyYW1tYXIgPT0gTlVMTCkgeworICAgICAgICBWQUxJRF9FUlIoWE1MX1JFTEFYTkdfRVJSX05PR1JBTU1BUik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBzdGF0ZSA9IHhtbFJlbGF4TkdOZXdWYWxpZFN0YXRlKGN0eHQsIE5VTEwpOworICAgIGN0eHQtPnN0YXRlID0gc3RhdGU7CisgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRGVmaW5pdGlvbihjdHh0LCBncmFtbWFyLT5zdGFydCk7CisgICAgaWYgKChjdHh0LT5zdGF0ZSAhPSBOVUxMKSAmJiAoc3RhdGUtPnNlcSAhPSBOVUxMKSkgeworICAgICAgICBzdGF0ZSA9IGN0eHQtPnN0YXRlOworICAgICAgICBub2RlID0gc3RhdGUtPnNlcTsKKyAgICAgICAgbm9kZSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBub2RlKTsKKyAgICAgICAgaWYgKG5vZGUgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKHJldCAhPSAtMSkgeworICAgICAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfRVhUUkFEQVRBKTsKKyAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoY3R4dC0+c3RhdGVzICE9IE5VTEwpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGludCB0bXAgPSAtMTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+c3RhdGVzLT5uYlN0YXRlOyBpKyspIHsKKyAgICAgICAgICAgIHN0YXRlID0gY3R4dC0+c3RhdGVzLT50YWJTdGF0ZVtpXTsKKyAgICAgICAgICAgIG5vZGUgPSBzdGF0ZS0+c2VxOworICAgICAgICAgICAgbm9kZSA9IHhtbFJlbGF4TkdTa2lwSWdub3JlZChjdHh0LCBub2RlKTsKKyAgICAgICAgICAgIGlmIChub2RlID09IE5VTEwpCisgICAgICAgICAgICAgICAgdG1wID0gMDsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShjdHh0LCBzdGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRtcCA9PSAtMSkgeworICAgICAgICAgICAgaWYgKHJldCAhPSAtMSkgeworICAgICAgICAgICAgICAgIFZBTElEX0VSUihYTUxfUkVMQVhOR19FUlJfRVhUUkFEQVRBKTsKKyAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY3R4dC0+c3RhdGUgIT0gTlVMTCkgeworICAgICAgICB4bWxSZWxheE5HRnJlZVZhbGlkU3RhdGUoY3R4dCwgY3R4dC0+c3RhdGUpOworICAgICAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgfQorICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgeG1sUmVsYXhOR0R1bXBWYWxpZEVycm9yKGN0eHQpOworI2lmZGVmIERFQlVHCisgICAgZWxzZSBpZiAoY3R4dC0+ZXJyTnIgIT0gMCkgeworICAgICAgICBjdHh0LT5lcnJvcihjdHh0LT51c2VyRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgIiVkIEV4dHJhIGVycm9yIG1lc3NhZ2VzIGxlZnQgb24gc3RhY2sgIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+ZXJyTnIpOworICAgICAgICB4bWxSZWxheE5HRHVtcFZhbGlkRXJyb3IoY3R4dCk7CisgICAgfQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICBpZiAoY3R4dC0+aWRyZWYgPT0gMSkgeworICAgICAgICB4bWxWYWxpZEN0eHQgdmN0eHQ7CisKKyAgICAgICAgbWVtc2V0KCZ2Y3R4dCwgMCwgc2l6ZW9mKHhtbFZhbGlkQ3R4dCkpOworICAgICAgICB2Y3R4dC52YWxpZCA9IDE7CisgICAgICAgIHZjdHh0LmVycm9yID0gY3R4dC0+ZXJyb3I7CisgICAgICAgIHZjdHh0Lndhcm5pbmcgPSBjdHh0LT53YXJuaW5nOworICAgICAgICB2Y3R4dC51c2VyRGF0YSA9IGN0eHQtPnVzZXJEYXRhOworCisgICAgICAgIGlmICh4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwoJnZjdHh0LCBkb2MpICE9IDEpCisgICAgICAgICAgICByZXQgPSAtMTsKKyAgICB9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKyAgICBpZiAoKHJldCA9PSAwKSAmJiAoY3R4dC0+ZXJyTm8gIT0gWE1MX1JFTEFYTkdfT0spKQorICAgICAgICByZXQgPSAtMTsKKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HQ2xlYW5QU1ZJOgorICogQG5vZGU6ICBhbiBpbnB1dCBlbGVtZW50IG9yIGRvY3VtZW50CisgKgorICogQ2FsbCB0aGlzIHJvdXRpbmUgdG8gc3BlZWQgdXAgWFBhdGggY29tcHV0YXRpb24gb24gc3RhdGljIGRvY3VtZW50cy4KKyAqIFRoaXMgc3RhbXBzIGFsbCB0aGUgZWxlbWVudCBub2RlcyB3aXRoIHRoZSBkb2N1bWVudCBvcmRlcgorICogTGlrZSBmb3IgbGluZSBpbmZvcm1hdGlvbiwgdGhlIG9yZGVyIGlzIGtlcHQgaW4gdGhlIGVsZW1lbnQtPmNvbnRlbnQKKyAqIGZpZWxkLCB0aGUgdmFsdWUgc3RvcmVkIGlzIGFjdHVhbGx5IC0gdGhlIG5vZGUgbnVtYmVyIChzdGFydGluZyBhdCAtMSkKKyAqIHRvIGJlIGFibGUgdG8gZGlmZmVyZW50aWF0ZSBmcm9tIGxpbmUgbnVtYmVycy4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgZm91bmQgaW4gdGhlIGRvY3VtZW50IG9yIC0xIGluIGNhc2UKKyAqICAgIG9mIGVycm9yLgorICovCitzdGF0aWMgdm9pZAoreG1sUmVsYXhOR0NsZWFuUFNWSSh4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGlmICgobm9kZSA9PSBOVUxMKSB8fAorICAgICAgICAoKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKyAgICAgICAgIChub2RlLT50eXBlICE9IFhNTF9ET0NVTUVOVF9OT0RFKSAmJgorICAgICAgICAgKG5vZGUtPnR5cGUgIT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpKQorCXJldHVybjsKKyAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKQorICAgICAgICBub2RlLT5wc3ZpID0gTlVMTDsKKworICAgIGN1ciA9IG5vZGUtPmNoaWxkcmVuOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCWlmIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCSAgICBjdXItPnBzdmkgPSBOVUxMOworCSAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJCWN1ciA9IGN1ci0+Y2hpbGRyZW47CisJCWNvbnRpbnVlOworCSAgICB9CisJfQorCWlmIChjdXItPm5leHQgIT0gTlVMTCkgeworCSAgICBjdXIgPSBjdXItPm5leHQ7CisJICAgIGNvbnRpbnVlOworCX0KKwlkbyB7CisJICAgIGN1ciA9IGN1ci0+cGFyZW50OworCSAgICBpZiAoY3VyID09IE5VTEwpCisJCWJyZWFrOworCSAgICBpZiAoY3VyID09IG5vZGUpIHsKKwkJY3VyID0gTlVMTDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisJCWN1ciA9IGN1ci0+bmV4dDsKKwkJYnJlYWs7CisJICAgIH0KKwl9IHdoaWxlIChjdXIgIT0gTlVMTCk7CisgICAgfQorICAgIHJldHVybjsKK30KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVZhbGlkYXRpb24gaW50ZXJmYWNlcwkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFJlbGF4TkdOZXdWYWxpZEN0eHQ6CisgKiBAc2NoZW1hOiAgYSBwcmVjb21waWxlZCBYTUwgUmVsYXhOR3MKKyAqCisgKiBDcmVhdGUgYW4gWE1MIFJlbGF4TkdzIHZhbGlkYXRpb24gY29udGV4dCBiYXNlZCBvbiB0aGUgZ2l2ZW4gc2NoZW1hCisgKgorICogUmV0dXJucyB0aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxSZWxheE5HVmFsaWRDdHh0UHRyCit4bWxSZWxheE5HTmV3VmFsaWRDdHh0KHhtbFJlbGF4TkdQdHIgc2NoZW1hKQoreworICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVsYXhOR1ZhbGlkQ3R4dCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxSbmdWRXJyTWVtb3J5KE5VTEwsICJidWlsZGluZyBjb250ZXh0XG4iKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlbGF4TkdWYWxpZEN0eHQpKTsKKyAgICByZXQtPnNjaGVtYSA9IHNjaGVtYTsKKyAgICByZXQtPmVycm9yID0geG1sR2VuZXJpY0Vycm9yOworICAgIHJldC0+dXNlckRhdGEgPSB4bWxHZW5lcmljRXJyb3JDb250ZXh0OworICAgIHJldC0+ZXJyTnIgPSAwOworICAgIHJldC0+ZXJyTWF4ID0gMDsKKyAgICByZXQtPmVyciA9IE5VTEw7CisgICAgcmV0LT5lcnJUYWIgPSBOVUxMOworICAgIGlmIChzY2hlbWEgIT0gTlVMTCkKKwlyZXQtPmlkcmVmID0gc2NoZW1hLT5pZHJlZjsKKyAgICByZXQtPnN0YXRlcyA9IE5VTEw7CisgICAgcmV0LT5mcmVlU3RhdGUgPSBOVUxMOworICAgIHJldC0+ZnJlZVN0YXRlcyA9IE5VTEw7CisgICAgcmV0LT5lcnJObyA9IFhNTF9SRUxBWE5HX09LOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dDoKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqCisgKiBGcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICovCit2b2lkCit4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dCh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQpCit7CisgICAgaW50IGs7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGN0eHQtPnN0YXRlcyAhPSBOVUxMKQorICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhOVUxMLCBjdHh0LT5zdGF0ZXMpOworICAgIGlmIChjdHh0LT5mcmVlU3RhdGUgIT0gTlVMTCkgeworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgY3R4dC0+ZnJlZVN0YXRlLT5uYlN0YXRlOyBrKyspIHsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRTdGF0ZShOVUxMLCBjdHh0LT5mcmVlU3RhdGUtPnRhYlN0YXRlW2tdKTsKKyAgICAgICAgfQorICAgICAgICB4bWxSZWxheE5HRnJlZVN0YXRlcyhOVUxMLCBjdHh0LT5mcmVlU3RhdGUpOworICAgIH0KKyAgICBpZiAoY3R4dC0+ZnJlZVN0YXRlcyAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoayA9IDA7IGsgPCBjdHh0LT5mcmVlU3RhdGVzTnI7IGsrKykgeworICAgICAgICAgICAgeG1sUmVsYXhOR0ZyZWVTdGF0ZXMoTlVMTCwgY3R4dC0+ZnJlZVN0YXRlc1trXSk7CisgICAgICAgIH0KKyAgICAgICAgeG1sRnJlZShjdHh0LT5mcmVlU3RhdGVzKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmVyclRhYiAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGN0eHQtPmVyclRhYik7CisgICAgaWYgKGN0eHQtPmVsZW1UYWIgIT0gTlVMTCkgeworICAgICAgICB4bWxSZWdFeGVjQ3R4dFB0ciBleGVjOworCisgICAgICAgIGV4ZWMgPSB4bWxSZWxheE5HRWxlbVBvcChjdHh0KTsKKyAgICAgICAgd2hpbGUgKGV4ZWMgIT0gTlVMTCkgeworICAgICAgICAgICAgeG1sUmVnRnJlZUV4ZWNDdHh0KGV4ZWMpOworICAgICAgICAgICAgZXhlYyA9IHhtbFJlbGF4TkdFbGVtUG9wKGN0eHQpOworICAgICAgICB9CisgICAgICAgIHhtbEZyZWUoY3R4dC0+ZWxlbVRhYik7CisgICAgfQorICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKgorICogeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzOgorICogQGN0eHQ6ICBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycjogIHRoZSBlcnJvciBmdW5jdGlvbgorICogQHdhcm46IHRoZSB3YXJuaW5nIGZ1bmN0aW9uCisgKiBAY3R4OiB0aGUgZnVuY3Rpb25zIGNvbnRleHQKKyAqCisgKiBTZXQgdGhlIGVycm9yIGFuZCB3YXJuaW5nIGNhbGxiYWNrIGluZm9ybWF0aW9ucworICovCit2b2lkCit4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyBlcnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMgd2Fybiwgdm9pZCAqY3R4KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdHh0LT5lcnJvciA9IGVycjsKKyAgICBjdHh0LT53YXJuaW5nID0gd2FybjsKKyAgICBjdHh0LT51c2VyRGF0YSA9IGN0eDsKKyAgICBjdHh0LT5zZXJyb3IgPSBOVUxMOworfQorCisvKioKKyAqIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2Vycm9yOiAgdGhlIHN0cnVjdHVyZWQgZXJyb3IgZnVuY3Rpb24KKyAqIEBjdHg6IHRoZSBmdW5jdGlvbnMgY29udGV4dAorICoKKyAqIFNldCB0aGUgc3RydWN0dXJlZCBlcnJvciBjYWxsYmFjaworICovCit2b2lkCit4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3IsIHZvaWQgKmN0eCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgY3R4dC0+c2Vycm9yID0gc2Vycm9yOworICAgIGN0eHQtPmVycm9yID0gTlVMTDsKKyAgICBjdHh0LT53YXJuaW5nID0gTlVMTDsKKyAgICBjdHh0LT51c2VyRGF0YSA9IGN0eDsKK30KKworLyoqCisgKiB4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnM6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZXJyOiAgdGhlIGVycm9yIGZ1bmN0aW9uIHJlc3VsdAorICogQHdhcm46IHRoZSB3YXJuaW5nIGZ1bmN0aW9uIHJlc3VsdAorICogQGN0eDogdGhlIGZ1bmN0aW9ucyBjb250ZXh0IHJlc3VsdAorICoKKyAqIEdldCB0aGUgZXJyb3IgYW5kIHdhcm5pbmcgY2FsbGJhY2sgaW5mb3JtYXRpb25zCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yIGFuZCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFJlbGF4TkdHZXRWYWxpZEVycm9ycyh4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jICogZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jICogd2Fybiwgdm9pZCAqKmN0eCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBpZiAoZXJyICE9IE5VTEwpCisgICAgICAgICplcnIgPSBjdHh0LT5lcnJvcjsKKyAgICBpZiAod2FybiAhPSBOVUxMKQorICAgICAgICAqd2FybiA9IGN0eHQtPndhcm5pbmc7CisgICAgaWYgKGN0eCAhPSBOVUxMKQorICAgICAgICAqY3R4ID0gY3R4dC0+dXNlckRhdGE7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxSZWxheE5HVmFsaWRhdGVEb2M6CisgKiBAY3R4dDogIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBwYXJzZWQgZG9jdW1lbnQgdHJlZQorICoKKyAqIFZhbGlkYXRlIGEgZG9jdW1lbnQgdHJlZSBpbiBtZW1vcnkuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBkb2N1bWVudCBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlCisgKiAgICAgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sUmVsYXhOR1ZhbGlkYXRlRG9jKHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYykKK3sKKyAgICBpbnQgcmV0OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChkb2MgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgY3R4dC0+ZG9jID0gZG9jOworCisgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRG9jdW1lbnQoY3R4dCwgZG9jKTsKKyAgICAvKgorICAgICAqIFJlbW92ZSBhbGwgbGVmdCBQU1ZJCisgICAgICovCisgICAgeG1sUmVsYXhOR0NsZWFuUFNWSSgoeG1sTm9kZVB0cikgZG9jKTsKKworICAgIC8qCisgICAgICogVE9ETzogYnVpbGQgZXJyb3IgY29kZXMKKyAgICAgKi8KKyAgICBpZiAocmV0ID09IC0xKQorICAgICAgICByZXR1cm4gKDEpOworICAgIHJldHVybiAocmV0KTsKK30KKworI2RlZmluZSBib3R0b21fcmVsYXhuZworI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1MLzUzODY3Lmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1MLzUzODY3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNkYWQ3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvNTM4NjcuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD48aGVhZD48c3R5bGU+CisuLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorPC9zdHlsZT48L2hlYWQ+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC81Mzg2Ny5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvNTM4NjcuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvNTM4NjcuaHRtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvNTM4NjcuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1MLzUzODY3Lmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxYTlmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1MLzUzODY3Lmh0bWwuc2F4CkBAIC0wLDAgKzEsMjYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoc3R5bGUpCitTQVguY2RhdGEoCisuLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4sIDEwMDApCitTQVguY2RhdGEoLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLCAxMDAwKQorU0FYLmNkYXRhKC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiwgMTAwMCkKK1NBWC5jZGF0YSguLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLCA5NzcpCitTQVguZW5kRWxlbWVudChzdHlsZSkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoaHRtbCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvRG93bi5odG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9Eb3duLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI5ZWQ4YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvRG93bi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzxodG1sPgorPGhlYWQ+PHRpdGxlPlRoaXMgc2VydmljZSBpcyB0ZW1wb3JhcnkgZG93bjwvdGl0bGU+PC9oZWFkPgorPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiI+Cis8aDEgYWxpZ249ImNlbnRlciI+U29ycnksIHRoaXMgc2VydmljZSBpcyB0ZW1wb3JhcnkgZG93bjwvaDE+CitXZSBhcmUgZG9pbmcgb3VyIGJlc3QgdG8gZ2V0IGl0IGJhY2sgb24tbGluZSwKKworPHA+VGhlIFczQyBzeXN0ZW0gYWRtaW5pc3RyYXRvcnM8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML0Rvd24uaHRtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML0Rvd24uaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvRG93bi5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9Eb3duLmh0bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9Eb3duLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyM2MzMzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML0Rvd24uaHRtbC5zYXgKQEAgLTAsMCArMSwzNyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoVGhpcyBzZXJ2aWNlIGlzIHRlbXBvcmFyeSBkb3duLCAzMCkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoYm9keSwgYmdjb2xvcj0nI0ZGRkZGRicpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoaDEsIGFsaWduPSdjZW50ZXInKQorU0FYLmNoYXJhY3RlcnMoU29ycnksIHRoaXMgc2VydmljZSBpcyB0ZW1wb3JhLCAzNykKK1NBWC5lbmRFbGVtZW50KGgxKQorU0FYLmNoYXJhY3RlcnMoCitXZSBhcmUgZG9pbmcgb3VyIGJlc3QgdG8gZ2V0ICwgNDgpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhUaGUgVzNDIHN5c3RlbSBhZG1pbmlzdHJhdG9ycywgMjkpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdHRyZW50cy5odG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdHRyZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MzNmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F0dHJlbnRzLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD48Ym9keSBiZ2NvbG9yPSIjRkZGRkZGIj4NCisgICAgICAgICAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmthdGhlcmluZUBjYmZhbmMub3JnLHdlYnNpdGVAYmlzLmRvYy5nb3Y/c3ViamVjdD1Tb3V0aCUyMFNhbiUyMEZyYW5jaXNjbyUyMEJJUyUyMFNlbWluYXIlMjAtJTIwT2N0b2JlciUyMDE2dGgiPjwvYT48YnI+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdHRyZW50cy5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXR0cmVudHMuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXR0cmVudHMuaHRtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXR0cmVudHMuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F0dHJlbnRzLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxY2ZiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F0dHJlbnRzLmh0bWwuc2F4CkBAIC0wLDAgKzEsMjEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChib2R5LCBiZ2NvbG9yPScjRkZGRkZGJykKK1NBWC5jaGFyYWN0ZXJzKA0KKyAgICAgICAgICAgICAgICAsIDE4KQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdtYWlsdG86a2F0aGVyaW5lQGNiZmFuYy5vcmcsd2Vic2l0ZUBiaXMuZG9jLmdvdj9zdWJqZWN0PVNvdXRoIFNhbiBGcmFuY2lzY28gQklTIFNlbWluYXIgLSBPY3RvYmVyIDE2dGgnKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgNCissIDIpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoDQorLCAyKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNTQ1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZS5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+PGJvZHk+PGhyPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZS5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlLmh0bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZS5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZS5odG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTQ1NjI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UuaHRtbC5zYXgKQEAgLTAsMCArMSwxMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguc3RhcnRFbGVtZW50KGJvZHkpCitTQVguc3RhcnRFbGVtZW50KGhyKQorU0FYLmVuZEVsZW1lbnQoaHIpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlMi5odG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFjOGY5OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlMi5odG1sCkBAIC0wLDAgKzEsMyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+PGJvZHk+PHA+dG90bworPC9wPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZTIuaHRtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZTIuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlMi5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UyLmh0bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UyLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZTZhYmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZTIuaHRtbC5zYXgKQEAgLTAsMCArMSwxMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguc3RhcnRFbGVtZW50KGJvZHkpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyh0b3RvCissIDUpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmVuZEVsZW1lbnQoYm9keSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UzLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzQ2MWFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UzLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD48Ym9keT48dWw+Cis8bGk+aXRlbSAxCis8L2xpPgorPGxpPml0ZW0gMgorPC9saT4KKzwvdWw+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlMy5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlMy5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9hdXRvY2xvc2UzLmh0bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZTMuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2F1dG9jbG9zZTMuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVlMDZlYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvYXV0b2Nsb3NlMy5odG1sLnNheApAQCAtMCwwICsxLDE5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoaHRtbCkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5zdGFydEVsZW1lbnQodWwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQobGkpCitTQVguY2hhcmFjdGVycyhpdGVtIDEKKywgNykKK1NBWC5lbmRFbGVtZW50KGxpKQorU0FYLnN0YXJ0RWxlbWVudChsaSkKK1NBWC5jaGFyYWN0ZXJzKGl0ZW0gMgorLCA3KQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguZW5kRWxlbWVudCh1bCkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvY2ZfMTI4Lmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2NmXzEyOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZTZiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2NmXzEyOC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvc3RyaWN0LmR0ZCI+Cis8aHRtbD4KKzxoZWFkPjx0aXRsZT5nbm9tZS14bWwgcHVzaCBtb2RlIGJ1ZzwvdGl0bGU+PC9oZWFkPgorPGJvZHk+CisKKzx0YWJsZSBib3JkZXI9IjQiPjx0cj4KKzx0ZCBiZ2NvbG9yPSJ3aGl0ZSI+CisJRm9vMQorCTx0YWJsZSBib3JkZXI9IjQiPjx0cj48dGQ+Rm9vMjxwPjwvcD4KKzxwPjwvcD4KKzwvdGQ+PC90cj48L3RhYmxlPgorPC90ZD4KKyAgICA8dGQgYmdjb2xvcj0iYmx1ZSI+Rm9vMzwvdGQ+CisgICA8L3RyPjwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2NmXzEyOC5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvY2ZfMTI4Lmh0bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2NmXzEyOC5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9jZl8xMjguaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2NmXzEyOC5odG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjY2YTQyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9jZl8xMjguaHRtbC5zYXgKQEAgLTAsMCArMSw2OSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoSFRNTCwgLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9zdHJpY3QuZHRkKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhnbm9tZS14bWwgcHVzaCBtb2RlIGJ1ZywgMjMpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIGJvcmRlcj0nNCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9J3doaXRlJykKK1NBWC5jaGFyYWN0ZXJzKAorCUZvbzEKKwksIDgpCitTQVguc3RhcnRFbGVtZW50KHRhYmxlLCBib3JkZXI9JzQnKQorU0FYLmNoYXJhY3RlcnMoCisJICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisJICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycyhGb28yLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmVuZEVsZW1lbnQodGFibGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9J2JsdWUnKQorU0FYLmNoYXJhY3RlcnMoRm9vMywgNCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoICAKKywgMykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzIuaHRtIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9kb2MyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzdlMjMwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9kb2MyLmh0bQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDAxNilodHRwOi8vaW50cmFuZXQvIC0tPjwhLS0gQkVHSU4gTmF2aXNjb3BlIEphdmFzY3JpcHQgLS0+PGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5XZWxjb21lIHRvIENvcGVybmljLmNvbTwvdGl0bGU+Cis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KKyAgICAgICAgICBOU19BY3R1YWxPcGVuPXdpbmRvdy5vcGVuOworICAgICAgICAgIGZ1bmN0aW9uIE5TX051bGxXaW5kb3coKXt0aGlzLndpbmRvdzt9CisgICAgICAgICAgZnVuY3Rpb24gTlNfTmV3T3Blbih1cmwsbmFtLGF0cil7cmV0dXJuKG5ldyBOU19OdWxsV2luZG93KCkpO30KKyAgICAgICAgICB3aW5kb3cub3Blbj1OU19OZXdPcGVuOworPC9zY3JpcHQ+PCEtLSBFTkQgTmF2aXNjb3BlIEphdmFzY3JpcHQgLS0+PCEtLSBzYXZlZCBmcm9tIHVybD0oMDAyNylodHRwOi8vd3d3LmFnZW50cy10ZWNoLmNvbS8gLS0+PG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+Cis8bWV0YSBjb250ZW50PSJDb3Blcm5pYy5jb20gSW5jLiBkZXZlbG9wcyBpbm5vdmF0aXZlIGFnZW50IHRlY2hub2xvZ3kgc29sdXRpb25zIHRvIGVmZmljaWVudGx5IGFjY2VzcyBhbmQgbWFuYWdlIHRoZSBvdmVyd2hlbG1pbmcgcXVhbnRpdHkgb2YgaW5mb3JtYXRpb24gYXZhaWxhYmxlIG9uIHRoZSBJbnRlcm5ldCBhbmQgaW50cmFuZXRzLiIgbmFtZT0iREVTQ1JJUFRJT04iPgorPG1ldGEgY29udGVudD0iYWdlbnQsdGVjaG5vbG9neSxpbnRyYW5ldCxleHRyYW5ldCxtYW5hZ2VtZW50LGZpbHRlcmluZyxyYW5raW5nLHNvbHV0aW9uLHNlcnZpY2UsaW50ZWxsaWdlbnQsaW50ZWxsaWdlbmNlLGNsaWVudCxzZXJ2ZXIsYXJjaGl0ZWN0dXJlLGRldmVsb3BlcixkZXZlbG9wbWVudCxpbmZvcm1hdGlvbix0ZWxlY29tbXVuaWNhdGlvbixhbm5vdW5jZW1lbnQscHJlc3MscHJvZHVjdCxwcm9maWxlLGNvbnRhY3QsbXVsdGktYWdlbnQsbWV0YS1zZWFyY2gsbWV0YXNlYXJjaCxtdWx0aS10aHJlYWQsbW9iaWxlLHdpcmVsZXNzLHNob3BwaW5nLHJvYm90LFBDUyxDb3Blcm5pYyxlbmdpbmUsdG9vbGtpdCxDREssRURLIiBuYW1lPSJLRVlXT1JEUyI+Cis8bWV0YSBjb250ZW50PSJNU0hUTUwgNS4wMC4zMTAzLjEwMDAiIG5hbWU9IkdFTkVSQVRPUiI+Cis8L2hlYWQ+Cis8ZnJhbWVzZXQgYm9yZGVyPSJmYWxzZSIgY29scz0iMTcyLCoiIGZyYW1lYm9yZGVyPSIwIiBmcmFtZXNwYWNpbmc9IjAiPgorPGZyYW1lIG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiIG5hbWU9ImxlZnQiIG5vcmVzaXplIHNjcm9sbGluZz0ibm8iIHNyYz0iZG9jMl9maWxlcy9zaWRlLmh0bSIgdGFyZ2V0PSJydG9wIj4KKzxmcmFtZXNldCByb3dzPSI0MywqIj4KKzxmcmFtZSBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndpZHRoPSIwIiBuYW1lPSJydG9wIiBub3Jlc2l6ZSBzY3JvbGxpbmc9Im5vIiBzcmM9ImRvYzJfZmlsZXMvdG9wLmh0bSIgdGFyZ2V0PSJyYm90dG9tIj4KKzxmcmFtZSBuYW1lPSJyYm90dG9tIiBub3Jlc2l6ZSBzcmM9ImRvYzJfZmlsZXMvY29udGVudHMuaHRtIiB0YXJnZXQ9Il90b3AiPgorPC9mcmFtZXNldD4KKzxub2ZyYW1lcz4KKworICA8Ym9keSBiZ2NvbG9yPSIjRkZGRkZGIiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMDAwMDgwIiB2bGluaz0iIzAwMDA4MCIgYWxpbms9IiMwMDAwODAiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCI+CisgIDxwPlRoaXMgcGFnZSB1c2VzIGZyYW1lcywgYnV0IHlvdXIgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgdGhlbS48L3A+CisgIDwvYm9keT4KKyAgPC9ub2ZyYW1lcz4KKzwvZnJhbWVzZXQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzIuaHRtLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZG9jMi5odG0uZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYzA5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzIuaHRtLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9IVE1ML2RvYzIuaHRtOjEwOiBIVE1MIHBhcnNlciBlcnJvciA6IE1pc3BsYWNlZCBET0NUWVBFIGRlY2xhcmF0aW9uCis8IS0tIEVORCBOYXZpc2NvcGUgSmF2YXNjcmlwdCAtLT48IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9kb2MyLmh0bS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzIuaHRtLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2JiYzUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9kb2MyLmh0bS5zYXgKQEAgLTAsMCArMSw2OSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoSFRNTCwgLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiwgKQorU0FYLmNvbW1lbnQoIHNhdmVkIGZyb20gdXJsPSgwMDE2KWh0dHA6Ly9pbnRyYW5ldC8gKQorU0FYLmNvbW1lbnQoIEJFR0lOIE5hdmlzY29wZSBKYXZhc2NyaXB0ICkKK1NBWC5zdGFydEVsZW1lbnQoaHRtbCkKK1NBWC5zdGFydEVsZW1lbnQoaGVhZCkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhXZWxjb21lIHRvIENvcGVybmljLmNvbSwgMjMpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChzY3JpcHQsIGxhbmd1YWdlPSdqYXZhc2NyaXB0JykKK1NBWC5jZGF0YSgKKyAgICAgICAgICBOU19BY3R1YWxPcGVuPXdpbmRvLCAxOTQpCitTQVguZW5kRWxlbWVudChzY3JpcHQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5jb21tZW50KCBFTkQgTmF2aXNjb3BlIEphdmFzY3JpcHQgKQorU0FYLmVycm9yOiBNaXNwbGFjZWQgRE9DVFlQRSBkZWNsYXJhdGlvbgorU0FYLmludGVybmFsU3Vic2V0KEhUTUwsIC0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4sICkKK1NBWC5jb21tZW50KCBzYXZlZCBmcm9tIHVybD0oMDAyNylodHRwOi8vd3d3LmFnZW50cy10ZWNoLmNvbS8gKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KG1ldGEsIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xJywgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJykKK1NBWC5lbmRFbGVtZW50KG1ldGEpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQobWV0YSwgY29udGVudD0nQ29wZXJuaWMuY29tIEluYy4gZGV2ZWxvcHMgaW5ub3ZhdGl2ZSBhZ2VudCB0ZWNobm9sb2d5IHNvbHV0aW9ucyB0byBlZmZpY2llbnRseSBhY2Nlc3MgYW5kIG1hbmFnZSB0aGUgb3ZlcndoZWxtaW5nIHF1YW50aXR5IG9mIGluZm9ybWF0aW9uIGF2YWlsYWJsZSBvbiB0aGUgSW50ZXJuZXQgYW5kIGludHJhbmV0cy4nLCBuYW1lPSdERVNDUklQVElPTicpCitTQVguZW5kRWxlbWVudChtZXRhKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KG1ldGEsIGNvbnRlbnQ9J2FnZW50LHRlY2hub2xvZ3ksaW50cmFuZXQsZXh0cmFuZXQsbWFuYWdlbWVudCxmaWx0ZXJpbmcscmFua2luZyxzb2x1dGlvbixzZXJ2aWNlLGludGVsbGlnZW50LGludGVsbGlnZW5jZSxjbGllbnQsc2VydmVyLGFyY2hpdGVjdHVyZSxkZXZlbG9wZXIsZGV2ZWxvcG1lbnQsaW5mb3JtYXRpb24sdGVsZWNvbW11bmljYXRpb24sYW5ub3VuY2VtZW50LHByZXNzLHByb2R1Y3QscHJvZmlsZSxjb250YWN0LG11bHRpLWFnZW50LG1ldGEtc2VhcmNoLG1ldGFzZWFyY2gsbXVsdGktdGhyZWFkLG1vYmlsZSx3aXJlbGVzcyxzaG9wcGluZyxyb2JvdCxQQ1MsQ29wZXJuaWMsZW5naW5lLHRvb2xraXQsQ0RLLEVESycsIG5hbWU9J0tFWVdPUkRTJykKK1NBWC5lbmRFbGVtZW50KG1ldGEpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQobWV0YSwgY29udGVudD0nTVNIVE1MIDUuMDAuMzEwMy4xMDAwJywgbmFtZT0nR0VORVJBVE9SJykKK1NBWC5lbmRFbGVtZW50KG1ldGEpCitTQVguZW5kRWxlbWVudChoZWFkKQorU0FYLnN0YXJ0RWxlbWVudChmcmFtZXNldCwgYm9yZGVyPSdmYWxzZScsIGNvbHM9JzE3MiwqJywgZnJhbWVib3JkZXI9JzAnLCBmcmFtZXNwYWNpbmc9JzAnKQorU0FYLnN0YXJ0RWxlbWVudChmcmFtZSwgbWFyZ2luaGVpZ2h0PScwJywgbWFyZ2lud2lkdGg9JzAnLCBuYW1lPSdsZWZ0Jywgbm9yZXNpemUsIHNjcm9sbGluZz0nbm8nLCBzcmM9J2RvYzJfZmlsZXMvc2lkZS5odG0nLCB0YXJnZXQ9J3J0b3AnKQorU0FYLmVuZEVsZW1lbnQoZnJhbWUpCitTQVguc3RhcnRFbGVtZW50KGZyYW1lc2V0LCByb3dzPSc0MywqJykKK1NBWC5zdGFydEVsZW1lbnQoZnJhbWUsIG1hcmdpbmhlaWdodD0nMCcsIG1hcmdpbndpZHRoPScwJywgbmFtZT0ncnRvcCcsIG5vcmVzaXplLCBzY3JvbGxpbmc9J25vJywgc3JjPSdkb2MyX2ZpbGVzL3RvcC5odG0nLCB0YXJnZXQ9J3Jib3R0b20nKQorU0FYLmVuZEVsZW1lbnQoZnJhbWUpCitTQVguc3RhcnRFbGVtZW50KGZyYW1lLCBuYW1lPSdyYm90dG9tJywgbm9yZXNpemUsIHNyYz0nZG9jMl9maWxlcy9jb250ZW50cy5odG0nLCB0YXJnZXQ9J190b3AnKQorU0FYLmVuZEVsZW1lbnQoZnJhbWUpCitTQVguZW5kRWxlbWVudChmcmFtZXNldCkKK1NBWC5zdGFydEVsZW1lbnQobm9mcmFtZXMpCitTQVguY2hhcmFjdGVycygKKworICAsIDQpCitTQVguc3RhcnRFbGVtZW50KGJvZHksIGJnY29sb3I9JyNGRkZGRkYnLCB0ZXh0PScjMDAwMDAwJywgbGluaz0nIzAwMDA4MCcsIHZsaW5rPScjMDAwMDgwJywgYWxpbms9JyMwMDAwODAnLCB0b3BtYXJnaW49JzAnLCBsZWZ0bWFyZ2luPScwJywgbWFyZ2luaGVpZ2h0PScwJywgbWFyZ2lud2lkdGg9JzAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKFRoaXMgcGFnZSB1c2VzIGZyYW1lcywgYnV0IHlvdSwgNjEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQobm9mcmFtZXMpCitTQVguZW5kRWxlbWVudChmcmFtZXNldCkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzMuaHRtIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9kb2MzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjZlMjU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9kb2MzLmh0bQpAQCAtMCwwICsxLDQ0NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KKzwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMjUpaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyAtLT48IS0tIEJFR0lOIE5hdmlzY29wZSBKYXZhc2NyaXB0IC0tPjxodG1sPgorPGhlYWQ+Cis8dGl0bGU+QlA2LmNvbSAjMSBvbmxpbmUgcmVzb3VyY2UgZm9yIHRoZSBCUDYgTW9iby4uLi48L3RpdGxlPgorPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQorICAgICAgICAgIE5TX0FjdHVhbE9wZW49d2luZG93Lm9wZW47DQorICAgICAgICAgIGZ1bmN0aW9uIE5TX051bGxXaW5kb3coKXt0aGlzLndpbmRvdzt9DQorICAgICAgICAgIGZ1bmN0aW9uIE5TX05ld09wZW4odXJsLG5hbSxhdHIpe3JldHVybihuZXcgTlNfTnVsbFdpbmRvdygpKTt9DQorICAgICAgICAgIHdpbmRvdy5vcGVuPU5TX05ld09wZW47DQorPC9zY3JpcHQ+PCEtLSBFTkQgTmF2aXNjb3BlIEphdmFzY3JpcHQgLS0+PCEtLWxhc3QgbW9kaWZpZWQgb24gVHVlc2RheSwgRmVicnVhcnkgMjIsIDIwMDAgMTE6NDcgUE0gLS0+PG1ldGEgY29udGVudD0idGV4dC9odG1sO0NIQVJTRVQ9aXNvLTg4NTktMSIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KKzxtZXRhIGNvbnRlbnQ9IlRpbSIgbmFtZT0iQXV0aG9yIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+QS5uYXYgew0KKwlDT0xPUjogIzAwMzM5OTsgVEVYVC1ERUNPUkFUSU9OOiBub25lDQorfQ0KK0EubmF2OmhvdmVyIHsNCisJQ09MT1I6ICMzMzY2Y2M7IFRFWFQtREVDT1JBVElPTjogdW5kZXJsaW5lDQorfQ0KKzwvc3R5bGU+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KKzwhLS0gSWRlYSBieTogIE5pYyBXb2xmZSAoTmljQFRpbWVsYXBzZVByb2R1Y3Rpb25zLmNvbSkgLS0+Cis8IS0tIFdlYiBVUkw6ICBodHRwOi8vZmluZWxpbmUueHMubXcgLS0+CisKKzwhLS0gVGhpcyBzY3JpcHQgYW5kIG1hbnkgbW9yZSBhcmUgYXZhaWxhYmxlIGZyZWUgb25saW5lIGF0IC0tPgorPCEtLSBUaGUgSmF2YVNjcmlwdCBTb3VyY2UhISBodHRwOi8vamF2YXNjcmlwdC5pbnRlcm5ldC5jb20gLS0+CisKKzwhLS0gQmVnaW4KK2Z1bmN0aW9uIHBvcFVwKFVSTCkgeworZGF5ID0gbmV3IERhdGUoKTsKK2lkID0gZGF5LmdldFRpbWUoKTsKK2V2YWwoInBhZ2UiICsgaWQgKyAiID0gd2luZG93Lm9wZW4oVVJMLCAnIiArIGlkICsgIicsICd0b29sYmFycz0wLCBzY3JvbGxiYXJzPTAsIGxvY2F0aW9uPTAsIHN0YXR1c2JhcnM9MCwgbWVudWJhcnM9MCwgcmVzaXphYmxlPTAsIHdpZHRoPTE0NSwgaGVpZ2h0PTI1MCcpOyIpOworfQorLy8gRW5kIC0tPgorPC9zY3JpcHQ+PG1ldGEgY29udGVudD0iTVNIVE1MIDUuMDAuMzEwMy4xMDAwIiBuYW1lPSJHRU5FUkFUT1IiPgorPC9oZWFkPgorPGJvZHkgYWxpbms9InJlZCIgYmdjb2xvcj0iYmxhY2siIGxpbms9InJlZCIgdGV4dD0id2hpdGUiIHZsaW5rPSJyZWQiPg0KKzxwPg0KKzwvcD4KKzxkaXYgYWxpZ249ImNlbnRlciI+DQorPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iODAlIj48dGJvZHk+Cis8dHI+Cis8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIzMSI+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyI+PGltZyBhbGlnbj0iYm90dG9tIiBib3JkZXI9IjAiIGhlaWdodD0iNzQiIHNyYz0iZG9jM19maWxlcy9sb2dvLmdpZiIgd2lkdGg9IjI1MiI+PC9hPjwvdGQ+DQorICAgIDx0ZCBhbGlnbj0ibGVmdCIgYmdjb2xvcj0iIzAwMDAwMCI+Cis8aW1nIGhlaWdodD0iMTUiIHNyYz0iZG9jM19maWxlcy9zcGFjZXIuZ2lmIiB3aWR0aD0iMTUiPjwhLS0gU1RBUlQgR0FNRVNRVUFELk5FVCBJRlJBTUUgUklDSCBNRURJQSBDT0RFIC0tPjwhLS0gqSAyMDAwIEdhbWVTcXVhZC5uZXQgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gLS0+PGlmcmFtZSBib3JkZXI9IjAiIGZyYW1lYm9yZGVyPSJubyIgaGVpZ2h0PSI2MCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53aWR0aD0iMCIgc2Nyb2xsaW5nPSJubyIgc3JjPSJkb2MzX2ZpbGVzL2FkY3ljbGUuaHRtIiB3aWR0aD0iNDY4Ij4KKzxhIGhyZWY9Imh0dHA6Ly9hZHMuZ2FtZXNxdWFkLm5ldC9hZGRjbGljay5leGUvYWRjbGljay5jZ2k/UkVHSU9OPWdhbWUlN0N0ZWNoJTdDZW50JmFtcDtpZD0xIiB0YXJnZXQ9Il90b3AiPjxpbWcgc3JjPSJodHRwOi8vYWRzLmdhbWVzcXVhZC5uZXQvYWRkY2xpY2suZXhlL2FkY3ljbGUuY2dpP2dyb3VwPTUyJmFtcDttZWRpYT0xJmFtcDtpZD0xIiB3aWR0aD0iNDY4IiBoZWlnaHQ9IjYwIiBib3JkZXI9IjAiIGFsdD0iR1NOIFJPUyBBZCI+PC9hPgorPC9pZnJhbWU+PCEtLSBFTkQgR0FNRVNRVUFELk5FVCBJRlJBTUUgUklDSCBNRURJQSBDT0RFIC0tPjxicj48aW1nIGhlaWdodD0iMTUiIHNyYz0iZG9jM19maWxlcy9zcGFjZXIuZ2lmIiB3aWR0aD0iNDAwIj4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjMDAzMzk5IiBjb2xzcGFuPSIyIj4NCisgICAgICA8cCBhbGlnbj0icmlnaHQiPjxpbWcgYWxpZ249InJpZ2h0IiBib3JkZXI9IjAiIGhlaWdodD0iMTgiIGhzcGFjZT0iMCIgc3JjPSJkb2MzX2ZpbGVzL3RyY29ybmVyLmdpZiIgd2lkdGg9IjIwIj48aW1nIGFsaWduPSJsZWZ0IiBib3JkZXI9IjAiIGhlaWdodD0iMTgiIGhzcGFjZT0iMCIgc3JjPSJkb2MzX2ZpbGVzL3RsY29ybmVyLmdpZiIgd2lkdGg9IjIwIj48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj5Nb25kYXksIEp1bHkgMzFzdCwgMjAwMDwvZm9udD4gPC9wPgorPC90ZD48L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj4NCisgICAgICA8dGFibGUgYmdjb2xvcj0iIzAwMzM5OSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjQiIHdpZHRoPSIxMDAlIj48dGJvZHk+PHRyPjx0ZCBiZ2NvbG9yPSIjNjY2NjY2IiB3aWR0aD0iMTAwJSI+DQorICAgICAgICAgICAgPGNlbnRlcj4NCisgICAgICAgICAgICA8cD4NCisgICAgICAgICAgICA8L3A+Cis8dGFibGUgYmdjb2xvcj0iYmxhY2siIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQgYmFja2dyb3VuZD0iZG9jM19maWxlcy9oc2Nhbi5naWYiIGJnY29sb3I9IiM2NjY2NjYiIHdpZHRoPSIxMDAlIj4KKzxpbWcgaGVpZ2h0PSIxIiBzcmM9ImRvYzNfZmlsZXMvc3BhY2VyLmdpZiIgd2lkdGg9IjczOCI+PGJyPjxjZW50ZXI+DQorICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iOTElIj48dGJvZHk+PHRyPgorPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMTUlIj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvc3BlY3MucGh0bWwiPjxpbWcgYWxpZ249ImJvdHRvbSIgYWx0PSJBYml0IEJQNiBNb3RoZXJib2FyZCBzcGVjaWZpY2F0aW9uIGFuZCBpbmZvcm1hdGlvbi4iIGJvcmRlcj0iMCIgaGVpZ2h0PSI0NSIgc3JjPSJkb2MzX2ZpbGVzL2JwNmljb24uZ2lmIiB3aWR0aD0iNzAiPjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9zcGVjcy5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5CUDYgU3BlY3M8L2ZvbnQ+PC9hPiANCisgICAgICAgICAgICAgICAgICAgICAgPC9wPgorPC90ZD4NCisgICAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMTUlIj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvYnhjb29sLnBodG1sIj48aW1nIGFsaWduPSJib3R0b20iIGFsdD0iSG93IHRvIGNvb2wgdGhlIEJYIENoaXBzZXQgb24geW91ciBCUDYuIiBib3JkZXI9IjAiIGhlaWdodD0iNDUiIHNyYz0iZG9jM19maWxlcy9ieGNvb2wuZ2lmIiB3aWR0aD0iNzAiPjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5CWCBDb29saW5nPC9mb250PjwvYT4gDQorICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgorPC90ZD4NCisgICAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMTUlIj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY29udGVzdC5waHRtbCI+PGltZyBhbGlnbj0iYm90dG9tIiBhbHQ9IlRoZSBVO3RpbWF0ZSBHYW1pbmcgQ29udGVzdCAtIENvbWluZyBTb29uISIgYm9yZGVyPSIwIiBoZWlnaHQ9IjQ1IiBzcmM9ImRvYzNfZmlsZXMvdWdtY29udGVzdC5naWYiIHdpZHRoPSI3MCI+PC9hPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPjxicj48L2ZvbnQ+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NvbnRlc3QucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+VUdNIENvbnRlc3Q8L2ZvbnQ+PC9hPiANCisgICAgICAgICAgICAgICAgICAgICAgICA8L3A+Cis8L3RkPg0KKyAgICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PGltZyBhbGlnbj0iYm90dG9tIiBhbHQ9IkNvb2xpbmcgJmFtcDsgSGVhdHNpbmsgcmV2aWV3IGZvciB0aGUgQlA2LiIgYm9yZGVyPSIwIiBoZWlnaHQ9IjQ1IiBzcmM9ImRvYzNfZmlsZXMvYWxwaGEuZ2lmIiB3aWR0aD0iNzAiPjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5IZWF0c2lua3M8L2ZvbnQ+PC9hPiANCisgICAgICAgICAgICAgICAgICAgICAgPC9wPgorPC90ZD4NCisgICAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMTUlIj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvMTAxLnBodG1sIj48aW1nIGFsaWduPSJib3R0b20iIGFsdD0iQlA2IDEwMSAtIENsYXNzIGlzIG5vdyBpbiBzZXNzaW9uLiBXZWxjb21lIG5ld2JpZXMhIiBib3JkZXI9IjAiIGhlaWdodD0iNDUiIHNyYz0iZG9jM19maWxlcy9icDYxMDEuZ2lmIiB3aWR0aD0iNzAiPjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8xMDEucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+QlA2IDEwMTwvZm9udD48L2E+IA0KKyAgICAgICAgICAgICAgICAgICAgICA8L3A+Cis8L3RkPg0KKyAgICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC93aW4ya19pbnN0YWxsLnBodG1sIj48aW1nIGFsaWduPSJib3R0b20iIGFsdD0iSW5zdGFsbCBndWlkZSBmb3IgaW5zdGFsbGluZyBXaW5kb3dzIDIwMDAgb24gdGhlIEJQNiAiIGJvcmRlcj0iMCIgaGVpZ2h0PSI0NSIgc3JjPSJkb2MzX2ZpbGVzL3dpbjJraHQuZ2lmIiB3aWR0aD0iNzAiPjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC93aW4ya19pbnN0YWxsLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPldpbjJrIEluc3RhbGw8L2ZvbnQ+PC9hPiANCisgICAgICAgICAgICAgICAgICAgICAgICA8L3A+Cis8L3RkPg0KKyAgICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ2VudHVzLmNvbS8iPjxpbWcgYWxpZ249ImJvdHRvbSIgYWx0PSJUYWtpbmcgYSBmaXJzdCBsb29rIGF0IHRoZSBBYml0IExpbnV4IHJlbGVhc2UgY2FsbGVkICIgYm9yZGVyPSIwIiBoZWlnaHQ9IjQ1IiBzcmM9ImRvYzNfZmlsZXMvZ2VudHVzYm94LmdpZiIgd2lkdGg9IjcwIiBnZW50dXM+PC9hPjxicj48YSBocmVmPSJodHRwOi8vd3d3LmdlbnR1cy5jb20vIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPkdlbnR1czwvZm9udD48L2E+IA0KKyAgICAgICAgICAgICAgICAgIDwvcD4KKzwvdGQ+Cis8L3RyPjwvdGJvZHk+PC90YWJsZT4KKzwvY2VudGVyPgorPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzwvY2VudGVyPgorPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzwvdGQ+PC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzx0YWJsZSBiZ2NvbG9yPSIjMDAzMzk5IiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSI2IiB3aWR0aD0iODAlIj48dGJvZHk+PHRyPgorPHRkIGJnY29sb3I9ImJsYWNrIiB2YWxpZ249InRvcCIgd2lkdGg9IjEwJSI+DQorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQgd2lkdGg9IjEwMCUiPgorPGltZyBoZWlnaHQ9IjEiIHNyYz0iZG9jM19maWxlcy9zcGFjZXIuZ2lmIiB3aWR0aD0iMTExIj48YnI+PGI+PGZvbnQgY29sb3I9InllbGxvdyIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+UkVWSUVXUzwvZm9udD48L2I+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+PGJyPjxociBhbGlnbj0iY2VudGVyIj48L2ZvbnQ+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2JwNnJldmlld3MucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+QlA2IFJldmlld3M8L2ZvbnQ+PC9hPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPjxicj48L2ZvbnQ+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2gyby5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5CUDYgV2F0ZXJjb29saW5nPC9mb250PjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9ieGNvb2wucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+QlggQ2hpcHNldCBDb29saW5nPC9mb250PjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9iZW5jaG1hcmsucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+QmVuY2htYXJrczwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvYnA2ZnNiLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPkJQNkZTQiBVdGlsaXR5PC9mb250PjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9wb3dlcmxlYXAucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+UG93ZXJMZWFwIE5FTyBTMzcwPC9mb250PjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9zZXRpLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPlNFVEkgb24gdGhlIEJQNjwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvb3Jicy5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5Hb2xkZW4gT3JicyBJPC9mb250PjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9vcmJzL29yYnMyLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPkdvbGRlbiBPcmJzIElJPC9mb250PjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9RNmZpeC5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5WVFQgU29sdXRpb248L2ZvbnQ+PC9hPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPjxicj48YnI+PC9mb250PjxiPjxmb250IGNvbG9yPSJ5ZWxsb3ciIGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiPk5BVklHQVRFPC9mb250PjwvYj48Zm9udCBjb2xvcj0ieWVsbG93IiBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4gDQorICAgICAgICAgICAgPGhyIGFsaWduPSJjZW50ZXIiPjwvZm9udD48YSBocmVmPSJodHRwOi8vd3d3LmJwNi5jb20vIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPk5ld3M8L2ZvbnQ+PC9hPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPjxicj48L2ZvbnQ+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NoYXQucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+T25saW5lIFRleHQgQ2hhdDwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJqYXZhc2NyaXB0OnBvcFVwKCdjaGF0X3BvcHVwLmh0bScpIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPlZvaWNlIENoYXQ8L2ZvbnQ+PC9hPjxicj48YSBocmVmPSJodHRwOi8vMjE2LjI0Ny4yMjAuMTkyL0ZvcnVtIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPk1lc3NhZ2Vib2FyZDwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY29vbGluZyI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5UZW1wLiBDb252ZXJ0ZXI8L2ZvbnQ+PC9hPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPjxicj48L2ZvbnQ+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L3VjLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPlBpY3R1cmUgR2FsbGVyeTwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvYmlvcy5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5MYXRlc3QgQklPUzwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvZmlsZXMvIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPkRyaXZlcnMgJmFtcDsgRmlsZXM8L2ZvbnQ+PC9hPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPjxicj48L2ZvbnQ+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L3VjLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPlVHTSBvZiB0aGUgd2VlazwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY29udGVzdC5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5CUDYgQ29udGVzdDwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjxicj48L2ZvbnQ+PGI+PGZvbnQgY29sb3I9InllbGxvdyIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+T1RIRVIgU1RVRkY8L2ZvbnQ+PC9iPjxmb250IGNvbG9yPSJ5ZWxsb3ciIGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiPiANCisNCisgICAgICAgICAgICA8aHIgYWxpZ249ImNlbnRlciI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC93aG9pcy5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5XaG8gaXMgVGltPzwvZm9udD48L2E+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+PGJyPjwvZm9udD48YSBocmVmPSJtYWlsdG86dGltQGJwNi5jb20iPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+Q29udGFjdCBCUDYuY29tPC9mb250PjwvYT48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj48YnI+PC9mb250PjxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PGZvbnQgY29sb3I9IndoaXRlIiBmYWNlPSJWZXJkYW5hIiBzaXplPSIxIj5BZmZpbGlhdGVzIFNlY3Rpb248L2ZvbnQ+PC9hPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPjxicj48L2ZvbnQ+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L3VjLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPlNwb25zb3JzIFNlY3Rpb24gPGJyPjwvZm9udD48L2E+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2xpbmtzLnBodG1sIj48Zm9udCBjb2xvcj0id2hpdGUiIGZhY2U9IlZlcmRhbmEiIHNpemU9IjEiPkxpbmtzPGJyPjxicj48L2ZvbnQ+PC9hPjxiPjxmb250IGNvbG9yPSJ5ZWxsb3ciIGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiPlBDIFNQRUNJQUxTPC9mb250PjwvYj48Zm9udCBjb2xvcj0ieWVsbG93IiBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4gDQorICAgICAgICAgICAgPGhyIGFsaWduPSJjZW50ZXIiPjwvZm9udD48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvc3BlY2lhbHMucGh0bWwiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+VmVuZG9yIA0KKyAgICAgICAgICAgIFNwZWNpYWxzPGJyPjxicj48L2ZvbnQ+PC9hPjxicj48Yj48Zm9udCBjb2xvcj0ieWVsbG93IiBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj5QaWMgb2YgdGhlIGRheTwvZm9udD48L2I+DQorICAgICAgICAgICAgPGhyPgorPGNlbnRlcj4NCisgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhIiBzaXplPSIxIj48YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY2dpLWJpbi9zY2hsYWJvL3BvdGQucGwiPjxpbWcgYWx0PSJObyBwaWN0dXJlIGlzIGF2YWlsYWJsZSBmb3IgdG9kYXkuIiBib3JkZXI9IjAiIHNyYz0iZG9jM19maWxlcy9wb3RkX25hXzExMHg4My5naWYiPjwvYT4gPC9mb250PjwvcD4KKzwvY2VudGVyPgorPGJyPjxjZW50ZXI+PC9jZW50ZXI+Cis8YnI+PCEtLTxBIEhSRUY9ImNvZGU6amF2YXNjcmlwdDpJRF9GVFBXZWJWaWV3Lkludm9rZUhlbHAoKSI+PEZPTlQgU0laRT0iMSIgQ09MT1I9IndoaXRlIiBGQUNFPSJWZXJkYW5hIj5GVFAgSGVscDwvRk9OVD48L0E+LS0+Cis8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPgorPC90ZD4NCisgICAgPHRkIGJnY29sb3I9IndoaXRlIiB2YWxpZ249InRvcCIgd2lkdGg9IjgwJSI+Cis8aW1nIGhlaWdodD0iMSIgc3JjPSJkb2MzX2ZpbGVzL3NwYWNlci5naWYiIHdpZHRoPSI0OTAiPjxicj48Y2VudGVyPg0KKyAgICAgIDxwPg0KKyAgICAgIDwvcD4KKzx0YWJsZSBiZ2NvbG9yPSJ3aGl0ZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMTAiIGNlbGxzcGFjaW5nPSIwIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIj48dGJvZHk+PHRyPjx0ZCBiZ2NvbG9yPSJ3aGl0ZSIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxMDAlIj4NCisgICAgICAgICAgICA8Y2VudGVyPgorPGEgaHJlZj0iaHR0cDovL3d3dy5lbmNvdW50ZXIyMDAxLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48aW1nIGJvcmRlcj0iMCIgaGVpZ2h0PSI2MCIgc3JjPSJkb2MzX2ZpbGVzL2Jhbm5lcjIuZ2lmIiB3aWR0aD0iNDY4Ij48L2E+IA0KKyAgICAgICAgICAgIDwvY2VudGVyPgorPGJyPjxhIG5hbWU9Im5ld3NfdG9wIj48L2E+PGZvbnQgY29sb3I9IiMwMDMzNjYiIGZhY2U9InZlcmRhbmEsYXJpYWwiIHNpemU9IjIiPjxiPkhlYWRsaW5lczwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImFyaWFsIiBzaXplPSIxIj48YSBjbGFzcz0ibmF2IiBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjUwMTI5NTYsNzg5MjQsIj5DaGF0IA0KKyAgICAgICAgICAgIHdpdGggQUJJVCAtIDg6MDlQTSBQRFQ8L2E+PC9mb250Pjxicj48Zm9udCBmYWNlPSJhcmlhbCIgc2l6ZT0iMSI+PGEgY2xhc3M9Im5hdiIgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NzY2ODM3LDI2MzQ0LCI+Rml4ZWQgDQorICAgICAgICAgICAgd2FsbHBhcGVyIC0gMTE6NDdQTSBQRFQ8L2E+PC9mb250Pjxicj48Zm9udCBmYWNlPSJhcmlhbCIgc2l6ZT0iMSI+PGEgY2xhc3M9Im5hdiIgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NzYyODQxLDI1ODY1LCI+U2V0aSANCisgICAgICAgICAgICB1cGRhdGUgLSAxMDo0MFBNIFBEVDwvYT48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImFyaWFsIiBzaXplPSIxIj48YSBjbGFzcz0ibmF2IiBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjQ3MzIyMzUsNDU1MDIsIj5KdWRnZSANCisgICAgICAgICAgICBnaXZlcyBOYXBzdGVyIHRoZSBCb290ISEgLSAyOjEwUE0gUERUPC9hPjwvZm9udD48YnI+PGZvbnQgZmFjZT0iYXJpYWwiIHNpemU9IjEiPjxhIGNsYXNzPSJuYXYiIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9pbmRleC5waHRtbCNuZXdzaXRlbTk2NDcxMzI4OSw4MzY3NSwiPlJhbSANCisgICAgICAgICAgICBTaW5rcy4uIG1vcmUgY29vbGluZyBmb3Igc21hbGwgcGxhY2VzLiAtIDg6NTRBTSANCisgICAgICAgICAgICBQRFQ8L2E+PC9mb250Pjxicj48Zm9udCBmYWNlPSJhcmlhbCIgc2l6ZT0iMSI+PGEgY2xhc3M9Im5hdiIgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NjcxNTg5LDc4MzEsIj5pcyANCisgICAgICAgICAgICBpdCBbSF1hcmQ/IC0gOToxOVBNIFBEVDwvYT48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImFyaWFsIiBzaXplPSIxIj48YSBjbGFzcz0ibmF2IiBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjQ2NDQwNDcsNjAyMTgsIj5XaUxkIA0KKyAgICAgICAgICAgIENhU2UhISAtIDE6NDBQTSBQRFQ8L2E+PC9mb250Pjxicj48Zm9udCBmYWNlPSJhcmlhbCIgc2l6ZT0iMSI+PGEgY2xhc3M9Im5hdiIgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NjMxMTEwLDg0MTIyLCI+V2hhdCANCisgICAgICAgICAgICB0aGUgaGVjayBpcyBhIFBlbHRpZXI/IT8hIC0gMTA6MDVBTSBQRFQ8L2E+PC9mb250Pjxicj48Zm9udCBmYWNlPSJhcmlhbCIgc2l6ZT0iMSI+PGEgY2xhc3M9Im5hdiIgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NTg3ODMzLDc0NTczLCI+SEVMTE8gDQorICAgICAgICAgICAgRVZFUllPTkUhISEgLSAxMDowM1BNIFBEVDwvYT48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImFyaWFsIiBzaXplPSIxIj48YSBjbGFzcz0ibmF2IiBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjQ0Mjk1NzcsMTMzNzUsIj5CUDYgDQorICAgICAgICAgICAgUTMgc2VydmVyIHVwIGFuZCBydW5uaW5nLi4gLSAyOjA2QU0gUERUPC9hPjwvZm9udD48YnI+PGJyPjwhLS0gTlAgdjMuNy41IC0tPjxhIG5hbWU9Im5ld3NpdGVtOTY1MDEyOTU2LDc4OTI0LCI+PC9hPg0KKyAgICAgICAgICAgIDx0YWJsZSBiZ2NvbG9yPSIjMDAzMzk5IiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQ+PGZvbnQgY29sb3I9IiNmZmZmZmYiIGZhY2U9IlZlcmRhbmEsYXJpYWwiIHNpemU9IjIiPjxiPlN1bmRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAzMCwgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkNoYXQgd2l0aCANCisgICAgICAgICAgICBBQklUPC9mb250PjwvdT48L2I+PGJyPjxmb250IGNvbG9yPSIjMDA2NmNjIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMSI+PHNtYWxsPlBvc3RlZCBieSA8YSBjbGFzcz0ibmF2IiBocmVmPSJtYWlsdG86SG9sb2RlY2tAYnA2LmNvbSI+SG9sb2RlY2syPC9hPiBAIDg6MDlQTSANCisgICAgICAgICAgICBQRFQ8L3NtYWxsPqAgPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTY1MDEyOTU2LDc4OTI0LC5odG1sIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MCBjb21tZW50czwvYT4gDQorICAgICAgICAgICAgoHygPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9hPjwvZm9udD4gPGJyPjxmb250IGNvbG9yPSJibGFjayIgZmFjZT0iQXJpYWwiIHNpemU9IjIiPkkmIzgyMTc7bSBzbGFja2luZyBhIGxpdHRsZS4gQWxsIGdhbWUgbm8gDQorICAgICAgICAgICAgd29yayBtYWtlcyBIb2xvZGVjazIgYSBoYXBweSBib3kgOi0pPGJyPjxicj5XYWxscGFwZXIgdXBkYXRlOiBJIGdvdCANCisgICAgICAgICAgICBvZmYgbXkgbGF6eSBhc3MgYW5kIHJlZGlkIHRoZSAxMjgweDEwMjQgd2FsbCBwYXBlciwgbm93IGl0IGhhcyB0aGUgMiANCisgICAgICAgICAgICBjZWxlcm9ucy48YnI+PGJyPjxiPjxhIGhyZWY9Imh0dHA6Ly9mdWxsb24zZC5jb20vY2hhdC9hYml0LyIgdGFyZ2V0PSIzZCI+RnVsbG9uM2QgaGFkIGEgbGl2ZSBjaGF0IHdpdGggdGhhdCBFcmljIGd1eSBmcm9tIEFiaXQuIA0KKyAgICAgICAgICAgIDwvYT48L2I+U3VibWl0dGVkIGJ5OiBNSlM8YnI+PGJyPkhlcmUmIzgyMTc7cyBhIGxpdHRsZSBjbGlwOjxicj5bRmFsY29uXSANCisgICAgICAgICAgICBCUDYtMj8/PGJyPltFcmljQm9laW5nXSBXZSBhbHJlYWR5IGhhdmUgYSBtaWNybyBBVFggZHVhbCBmbGlwLWNoaXAgDQorICAgICAgICAgICAgYm9hcmQ8YnI+W0VyaWNCb2VpbmddIGJ1dCBpdCdzIE9FTSBvbmx5PGJyPltFcmljQm9laW5nXSB0aGUgZnVsbCBBVFggDQorICAgICAgICAgICAgdmVyc2lvbiBzaG91bGQgYmUgb3V0IFNlcHRlbWJlcmlzaDxicj48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2NDc2NjgzNywyNjM0NCwiPjwvYT4NCisgICAgICAgICAgICA8dGFibGUgYmdjb2xvcj0iIzAwMzM5OSIgd2lkdGg9IjEwMCUiPjx0Ym9keT48dHI+PHRkPjxmb250IGNvbG9yPSIjZmZmZmZmIiBmYWNlPSJWZXJkYW5hLGFyaWFsIiBzaXplPSIyIj48Yj5UaHVyc2RheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAyNywgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkZpeGVkIA0KKyAgICAgICAgICAgIHdhbGxwYXBlcjwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvYT4gQCAxMTo0N1BNIA0KKyAgICAgICAgICAgIFBEVDwvc21hbGw+oCA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ3NjY4MzcsMjYzNDQsLmh0bWwiPjxpbWcgYm9yZGVyPSIwIiBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj41IGNvbW1lbnRzPC9hPiANCisgICAgICAgICAgICCgfKA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L2E+PC9mb250PiA8YnI+PGZvbnQgY29sb3I9ImJsYWNrIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMiI+PGI+R2V0IHRoZW0gbm93ISE8L2I+PGJyPlRoaXMgaXMgYSANCisgICAgICAgICAgICBmaXhlZCBicDYgd2FsbHBhcGVyLiBJbiBhbGwgdGhlIHBvcHVsYXIgZmxhdm9ycywgZXJyLi4uIA0KKyAgICAgICAgICAgIHJlc29sdXRpb25zLjxicj48aW1nIGhlaWdodD0iMTgwIiBzcmM9ImRvYzNfZmlsZXMvMy04MDAuanBnIiB3aWR0aD0iMjQwIj48YnI+SXQncyBzdGlsbCB0aGUgSW50ZWxzIEluc2lkZSBvbmUgd2l0aCBhIHNwZWxsaW5nIA0KKyAgICAgICAgICAgIGNoYW5nZTsgZnJvbSAiTW90aGJvYXJkIiB0byAiTW90aGVyYm9hcmQiPGJyPjxicj5UaGFua3MgdG8gTWF0dCBmb3IgDQorICAgICAgICAgICAgcG9pbnRpbmcgdGhhdCBvdXQgdG8gbWUuPGJyPkkgd291bGQgYWxzbyBsaWtlIHRvIHRoYW5rIEtldmluIGZvciANCisgICAgICAgICAgICBob3N0aW5nIG15IGxhc3QgYmF0Y2ggYW5kIFJhZHUgZm9yIHRoZSBwcmV2aW91cyAiRFVFTCIvIkRVQUwiIA0KKyAgICAgICAgICAgIGVycm9yLjxicj5BbmQgMSBtb3JlIHBlcnNvbiwgVEhBTksgWU9VIFRJTSBmb3IgbGV0dGluZyBtZSBib3Jyb3cgDQorICAgICAgICAgICAgeW91ciBzZXJ2ZXIgc3BhY2UgOy0pPGJyPjxicj5JZiB5b3UgbmVlZCBhIHdlaXJkIHJlc29sdXRpb24sIGZlZWwgDQorICAgICAgICAgICAgZnJlZSB0byA8YSBocmVmPSJtYWlsdG86SG9sb2RlY2syQGhvbWUuY29tIj5lLW1haWw8L2E+IG1lIHJlcXVlc3RpbmcgDQorICAgICAgICAgICAgZm9yIG9uZS48YnI+SWYgeW91IGhhdmUgaWRlYXMgb3IgbW9yZSBlcnJvcnMgdG8gcG9pbnQgb3V0LCA8YSBocmVmPSJtYWlsdG86SG9sb2RlY2syQGhvbWUuY29tIj5tYWlsdG86SG9sb2RlY2syQGhvbWUuY29tPC9hPjxicj48YnI+PGEgaHJlZj0iZG9jM19maWxlcy8zLTgwMC5qcGciIHRhcmdldD0iODAwIj44MDB4NjAwIDwvYT48YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5icDYuY29tL3BpY3MvaG9sb2RlY2syL3dhbGxwYXBlci8zLTEwMjQuanBnIiB0YXJnZXQ9IjgwMCI+MTAyNHg3NjggPC9hPjxicj48YSBocmVmPSJodHRwOi8vd3d3LmJwNi5jb20vcGljcy9ob2xvZGVjazIvd2FsbHBhcGVyLzMtMTE1Mi5qcGciIHRhcmdldD0iODAwIj4xMTUyeDg2NCA8L2E+PGJyPjxhIGhyZWY9Imh0dHA6Ly93d3cuYnA2LmNvbS9waWNzL2hvbG9kZWNrMi93YWxscGFwZXIvMy0xMjgweDEwMjQuanBnIiB0YXJnZXQ9IjgwMCI+MTI4MHgxMDI0IDwvYT48YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5icDYuY29tL3BpY3MvaG9sb2RlY2syL3dhbGxwYXBlci8zLTE2MDAuanBnIiB0YXJnZXQ9IjgwMCI+MTYwMHgxMjAwIDwvYT48YnI+PHA+RW5qb3kgOi0pPGJyPjwvcD4KKzxwPjxhIGhyZWY9Im1haWx0bzpIb2xvZGVjazJAaG9tZS5jb20iPkhvbG9kZWNrMiw8L2E+PGJyPltIXWFyZCBhdCANCisgICAgICAgICAgICB3b3JrIG9uIHRoZSBCcmFuZCBTcGFua2luZyBOZXcgV2FsbHBhcGVyLjxicj48L3A+PC9mb250Pjxicj48YnI+PGEgbmFtZT0ibmV3c2l0ZW05NjQ3NjI4NDEsMjU4NjUsIj48L2E+PGI+PHU+PGZvbnQgY29sb3I9IiMwMDMzNjYiIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPSIyIj5TZXRpIHVwZGF0ZTwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvYT4gQCAxMDo0MFBNIA0KKyAgICAgICAgICAgIFBEVDwvc21hbGw+oCA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ3NjI4NDEsMjU4NjUsLmh0bWwiPjxpbWcgYm9yZGVyPSIwIiBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj41IGNvbW1lbnRzPC9hPiANCisgICAgICAgICAgICCgfKA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L2E+PC9mb250PiA8YnI+PGZvbnQgY29sb3I9ImJsYWNrIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMiI+PGltZyBoZWlnaHQ9IjU0IiBzcmM9ImRvYzNfZmlsZXMvc2V0aXVwZGF0ZS5qcGciIHdpZHRoPSI0MDAiPjxicj5Zb3UgbGlrZSB0aGUgDQorICAgICAgICAgICAgcGljPzxicj48YnI+QnA2IFVzZXIgR3JvdXAgVXBkYXRlOjxicj5Db21wbGV0ZWQgNjE1MzEgDQorICAgICAgICAgICAgdW5pdHMhITxicj48Yj4jMTY4IG9uIFRvcCAyMDAgQWxsIEdyb3VwczwvYj4gKEdvaW5nIHRvIHBhc3MgQ0xSQyBpbiANCisgICAgICAgICAgICBhIGZldyBkYXlzKTxicj48Yj4jNzQgb24gVG9wIDIwMCBUZWFtczwvYj4gKEdhaW5pbmcgZmFzdCBvbiANCisgICAgICAgICAgICBTdGFyZmxlZXQpPGJyPjxicj5XZSBhcmUgZmx5aW5nIHRob3VnaCBhdCB0aGUgc3BlZWQgb2YgbGlnaHQgKG1heSBiZSANCisgICAgICAgICAgICBhIGxpdHRsZSBzbG93ZXIpLjxicj5Hb29kIGpvYiBldmVyeW9uZSEhPGJyPjxicj5DaGVjayB0aGlzIHBhZ2UgYXQgDQorICAgICAgICAgICAgbGVhc3Qgb25jZSBhIGRheSBmb3IgbmV3IHN0dWZmIDotKTxicj48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2NDczMjIzNSw0NTUwMiwiPjwvYT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkp1ZGdlIGdpdmVzIE5hcHN0ZXIgdGhlIA0KKyAgICAgICAgICAgIEJvb3QhITwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvYT4gQCAyOjEwUE0gDQorICAgICAgICAgICAgUERUPC9zbWFsbD6gIDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2NDczMjIzNSw0NTUwMiwuaHRtbCI+PGltZyBib3JkZXI9IjAiIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjAgY29tbWVudHM8L2E+IA0KKyAgICAgICAgICAgIKB8oDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvYT48L2ZvbnQ+IDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5Hb29kIGFmdGVybm9vbiBmb3IgZXZlcnlvbmUgbGl2aW5nIGluIA0KKyAgICAgICAgICAgIEVTVC4gSSB3YXMgZ29pbmcgdG8gcG9zdCB0b2RheSBtb3JuaW5nIGJ1dCBJIGRpZG4ndC4gSGVyZSdzIG15IA0KKyAgICAgICAgICAgIHN0b3J5Ojxicj5JIHdva2UgdXAgYW5kIHRob3VnaHQgYWJvdXQgcG9zdGluZyBzb21ldGhpbmcgYnV0IEkgDQorICAgICAgICAgICAgZGVjaWRlZCB0byB3YXggbXkgY2FyIGJlZm9yZSB0aGUgc3VuIGNhbWUgdXAgKGRyYXcgeW91ciBvd24gDQorICAgICAgICAgICAgY29uY2x1c2lvbnMpLCB3YXggb24sIHdheCBvZmYsIHdheCBvbiwuLi4sIGRpZCB0aGF0IGZvciBhYm91dCBhbiANCisgICAgICAgICAgICBob3VyLiBUaGVuIEkgc2F3IHRoZSBzdW4gcmlzZSAoQWFhaGggSSdtIG1lbHRpbmcuLi4gbm90KS4gSSBzYXQgaW4gDQorICAgICAgICAgICAgZnJvbnQgb2YgbXkgY29tcCBhbmQgc3RhcnRlZCB0byBzZWFyY2ggZm9yIGdvb2QgbmV3cyB0byBwb3N0LiBTYXcgDQorICAgICAgICAgICAgdGhhdCBhIHN0b29waWQganVkZ2UgdGVtcG9yYWxseSBzaHV0cyBkb3duIG5hcHN0ZXIuIEdvZXMgdG8gcm9vbSBhbmQgDQorICAgICAgICAgICAgY3J5LiBhbmQgbm93IEknbSBoZXJlIDotKTxicj48YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5tc25iYy5jb20vbmV3cy80Mzc1MzIuYXNwIiB0YXJnZXQ9Ikp1ZGdlIHZzIE5hcHN0ZXIiPkp1ZGdlIHNodXRzIE5hcHN0ZXIgZG93bg0KKyAgICAgICAgICAgIDxwPjxpbWcgaGVpZ2h0PSIxNDMiIHNyYz0iZG9jM19maWxlcy82Njk5MTUuanBnIiB3aWR0aD0iMjAwIj48L3A+PC9hPjxicj5DaGVjayBvdXQgdGhlIEdvb2Z5IGd1eSBpbiB0aGUgc3VpdDxicj5IZSdzIFNlYW4gDQorICAgICAgICAgICAgRmFubmluZywgZm91bmRlciBvZiBOYXBzdGVyLjxicj48YnI+R290IG5ld3M/PyA8YSBocmVmPSJtYWlsdG86SG9sb2RlY2syQGhvbWUuY29tIj5tYWlsdG86SG9sb2RlY2syQGhvbWUuY29tPC9hPjxicj48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2NDcxMzI4OSw4MzY3NSwiPjwvYT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPlJhbSBTaW5rcy4uIG1vcmUgY29vbGluZyBmb3Igc21hbGwgDQorICAgICAgICAgICAgcGxhY2VzLjwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOnRpbUBicDYuY29tIj50aW08L2E+IEAgODo1NEFNIFBEVDwvc21hbGw+oCA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ3MTMyODksODM2NzUsLmh0bWwiPjxpbWcgYm9yZGVyPSIwIiBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4wIGNvbW1lbnRzPC9hPiANCisgICAgICAgICAgICCgfKA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L2E+PC9mb250PiA8YnI+PGZvbnQgY29sb3I9ImJsYWNrIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMiI+TmVlZCBzb21lIGNvb2xpbmcgZm9yIHlvdXIgVmlkZW9jYXJkIA0KKyAgICAgICAgICAgIG1lbW9yeSB0byBnZXQgYSBsaXR0bGUgZXh0cmEgb3ZlcmNsb2NrYWJpbGl0eSBhbmQgRlBTPyA8YSBocmVmPSJodHRwOi8vd3d3Lm92ZXJjbG9ja2Vyc2hpZGVvdXQuY29tL1JhbVNpbmtzLmh0bWwiIHRhcmdldD0iX0JMQU5LIj5PdmVyY2xvY2tlcnMgSGllZG91dCBSYW0gU2lua3M8L2E+IFRoZXkganVzdCBub3RpZmllZCANCisgICAgICAgICAgICBtZSBvZiB0aGVpciBuZXcgZGVzaWduLjxicj48aW1nIGJvcmRlcj0iMSIgc3JjPSJkb2MzX2ZpbGVzL3JhbXNpbmsuanBnIj48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2NDY3MTU4OSw3ODMxLCI+PC9hPg0KKyAgICAgICAgICAgIDx0YWJsZSBiZ2NvbG9yPSIjMDAzMzk5IiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQ+PGZvbnQgY29sb3I9IiNmZmZmZmYiIGZhY2U9IlZlcmRhbmEsYXJpYWwiIHNpemU9IjIiPjxiPldlZG5lc2RheSwgSnVseSAyNiwgDQorICAgICAgICAgICAgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPmlzIGl0IA0KKyAgICAgICAgICAgIFtIXWFyZD88L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzpIb2xvZGVja0BicDYuY29tIj5Ib2xvZGVjazI8L2E+IEAgOToxOVBNIA0KKyAgICAgICAgICAgIFBEVDwvc21hbGw+oCA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ2NzE1ODksNzgzMSwuaHRtbCI+PGltZyBib3JkZXI9IjAiIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjAgY29tbWVudHM8L2E+IA0KKyAgICAgICAgICAgIKB8oDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvYT48L2ZvbnQ+IDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5CaWcgaGVhdHNpbmtzIGFyZSBnb29kLCB2ZXJ5IGdvb2QuIFRoZSANCisgICAgICAgICAgICBiaWdnZXIgdGhlIGJldHRlci48YnI+WW91IGNhbiBuZXZlciBjYW4gaGF2ZSBhIHRvbyBiaWcgb2YgaGVhdHNpbmsgDQorICAgICAgICAgICAgb24gYSBzbWFsbCBjaGlwIChDUFUsIEdQVSwgQ0hJUFNFVCwgZXRjKTxicj48YnI+PGltZyBoZWlnaHQ9IjE3MyIgc3JjPSJkb2MzX2ZpbGVzL3Zvb2Rvb3NpZGUyLmpwZyIgd2lkdGg9IjIzMCI+PGJyPk15IG92ZXJjbG9ja2VkIA0KKyAgICAgICAgICAgIFZvb2RvbzMgMjAwMCB3aXRoIGEgQklHIG1vZm8gaGVhdHNpbmsgb24gdG9wLjxicj5QZWx0aWVyIGFuZCANCisgICAgICAgICAgICB3YXRlcmNvb2xpbmcgbmV4dCB1cCA6LSk8YnI+KGlmIHlvdSBwcnkgb2ZmIHRoZSBoZWF0c2luayB5b3Ugdm9pZCANCisgICAgICAgICAgICB0aGUgd2FycmFudHkgKTxicj48YnI+aXQgd2FzIG9yaWdpbmFsbHkgcG9zdGVkIG9uIDxhIGhyZWY9Imh0dHA6Ly93d3cuaGFyZG9jcC5jb20vIj5bSF1hcmRPQ1AgPC9hPjxicj5JJiM4MjE3O20gbm90IG9ubHkgYSANCisgICAgICAgICAgICBCUDZlciBidXQgYWxzbyBhIFtIXWFyZE9DUGVyPGJyPjwvZm9udD48YnI+PGJyPjxhIG5hbWU9Im5ld3NpdGVtOTY0NjQ0MDQ3LDYwMjE4LCI+PC9hPjxiPjx1Pjxmb250IGNvbG9yPSIjMDAzMzY2IiBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0iMiI+V2lMZCBDYVNlISE8L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzpIb2xvZGVja0BicDYuY29tIj5Ib2xvZGVjazI8L2E+IEAgMTo0MFBNIA0KKyAgICAgICAgICAgIFBEVDwvc21hbGw+oCA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ2NDQwNDcsNjAyMTgsLmh0bWwiPjxpbWcgYm9yZGVyPSIwIiBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj44IGNvbW1lbnRzPC9hPiANCisgICAgICAgICAgICCgfKA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L2E+PC9mb250PiA8YnI+PGZvbnQgY29sb3I9ImJsYWNrIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMiI+Tm93IHRoaXMgcGVyc29uIHJlYWxseSBrbm93cyBob3cgdG8gDQorICAgICAgICAgICAga2VlcCBoaXMgY2FzZSBjb29sISE8YnI+QWRkaW4gYW4gMTgiIEZhbiEhIFdPVyEhPGJyPjxicj48YSBocmVmPSJodHRwOi8vd3d3LmVudmFkb3IuY29tL1Bob3Rvcy9QVkNJSS8iIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iZG9jM19maWxlcy9UTl9PcGVuZWRVcDEuanBnIj48L2E+PGJyPkNsaWNrIHRvIGdvIHRvIGhpcyANCisgICAgICAgICAgICBzaXRlLjxicj48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2NDYzMTExMCw4NDEyMiwiPjwvYT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPldoYXQgdGhlIGhlY2sgaXMgYSANCisgICAgICAgICAgICBQZWx0aWVyPyE/ITwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvYT4gQCAxMDowNUFNIA0KKyAgICAgICAgICAgIFBEVDwvc21hbGw+oCA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ2MzExMTAsODQxMjIsLmh0bWwiPjxpbWcgYm9yZGVyPSIwIiBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj42IGNvbW1lbnRzPC9hPiANCisgICAgICAgICAgICCgfKA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L2E+PC9mb250PiA8YnI+PGZvbnQgY29sb3I9ImJsYWNrIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMiI+VGhpcyBpcyBmb3IgYWxsIHlvdSBwZW9wbGUgd2hvIHdhbnRlZCANCisgICAgICAgICAgICB0byBrbm93IHdoYXQgYSBwZWx0aWVyIGlzLjxicj48YnI+VGhlIHF1ZXN0IGZvIHRoZSBQZXJmZWN0IA0KKyAgICAgICAgICAgIFBlbHRpZXI8YnI+PGEgaHJlZj0iaHR0cDovL3d3dy50d2Vha21heC5jb20vaHRtbC9wZWx0aWVyL3BlbHRpZXItMS5jZm0iIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iZG9jM19maWxlcy9wZWx0aWVyLmpwZyI+PC9hPiA8YnI+VGhhbmtzIHRvIA0KKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cudHdlYWttYXguY29tLyIgdGFyZ2V0PSJfYmxhbmsiPlR3ZWFrTWF4LmNvbTwvYT4gDQorICAgICAgICAgICAgPGJyPjxicj5Ob3RlOiBUb2RheSBtb3JuaW5nIHdoZW4gSSB3b2tlIHVwIEkgc2F3IG15IHdob2xlIHNjcmVlbiANCisgICAgICAgICAgICBjbHV0dGVyZWQgd2l0aCBhIGJ1bmNoIG9mIElNcyEhIEkgbGl2ZSBpbiB0aGUgVVNBIG9uIEVTVC4gSWYgeW91IA0KKyAgICAgICAgICAgIGxpdmUgc29tZXdoZXJlIGVsc2UgcGxlYXNlIGNoZWNrIHRoZSB0aW1lIGluIG15IGFyZWEuIGZvciBleGFtcGxlOiANCisgICAgICAgICAgICBJZiB5b3UgbGl2ZSBpbiBFdXJvcGUgYW5kIElNIG1lIGluIHRoZSBtb3JuaW5nIHlvdXIgdGltZSBJIHdvdWxkIGJlIA0KKyAgICAgICAgICAgIHNsZWVwaW5nIGl0IHdvdWxkIGJlIGxpa2UgNCBpbiB0aGUgbW9ybmluZyBoZXJlLiBKdXN0IHRvIGxldCB5b3UgDQorICAgICAgICAgICAga25vdyA8aW1nIHNyYz0iZG9jM19maWxlcy9zbWlsZS5naWYiPjxicj5JJ20gbm90IGFuZ3J5IGF0IGFueW9uZS4uLiANCisgICAgICAgICAgICBnb29kIHRoaW5nIEkgaGF2ZSBhIGxvbmcgZnVzZSA8aW1nIHNyYz0iZG9jM19maWxlcy90b25ndWUuZ2lmIj48YnI+PC9mb250Pjxicj48YnI+PGEgbmFtZT0ibmV3c2l0ZW05NjQ1ODc4MzMsNzQ1NzMsIj48L2E+DQorICAgICAgICAgICAgPHRhYmxlIGJnY29sb3I9IiMwMDMzOTkiIHdpZHRoPSIxMDAlIj48dGJvZHk+PHRyPjx0ZD48Zm9udCBjb2xvcj0iI2ZmZmZmZiIgZmFjZT0iVmVyZGFuYSxhcmlhbCIgc2l6ZT0iMiI+PGI+VHVlc2RheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAyNSwgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkhFTExPIA0KKyAgICAgICAgICAgIEVWRVJZT05FISEhPC9mb250PjwvdT48L2I+PGJyPjxmb250IGNvbG9yPSIjMDA2NmNjIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMSI+PHNtYWxsPlBvc3RlZCBieSA8YSBjbGFzcz0ibmF2IiBocmVmPSJtYWlsdG86SG9sb2RlY2tAYnA2LmNvbSI+SG9sb2RlY2syPC9hPiBAIDEwOjAzUE0gDQorICAgICAgICAgICAgUERUPC9zbWFsbD6gIDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5IZWxsbyANCisgICAgICAgICAgICBldmVyeW9uZSwgV29vaG9vISEgSSdtIG9uISE8YnI+V2hvIGlzIHRoaXMgSG9sb2RlY2syIHBlcnNvbiANCisgICAgICAgICAgICBhbnl3YXlzPyE/ISBSZWFkIG9uIDotKTxicj5JJiM4MjE3O20gYSByZWd1bGFyIG9uIHRoZSBicDYgbWVzc2FnZWJvYXJkLCANCisgICAgICAgICAgICB0cnlpbmcgdG8gaGVscCBwZW9wbGUgb3V0IHdpdGggdGhlaXIgcHJvYmxlbXMuPGJyPkkmIzgyMTc7bSB0aGUgDQorICAgICAgICAgICAgc2VsZi1wcm9jbGFpbWVkIGJwNiBjb29saW5nIGV4cGVydCwgSWYgeW91IGhhdmUgYSBjb29saW5nIGlkZWEsIEkmIzgyMTc7dmUgDQorICAgICAgICAgICAgcHJvYmFibHkgYWxyZWFkeSBkb25lIGl0IGFuZCBjYW4gb2ZmZXIgc29tZSBpbmNpdGUuPGJyPk15IGNvbXB1dGVyIA0KKyAgICAgICAgICAgIGlzIGFsd2F5cyBvbiBzbyB5b3UgY2FuIGNvbnRhY3QgbWUgd2hlbmV2ZXIuLi4gcHJvYmxlbSBpcywgSSdtIG5vdCANCisgICAgICAgICAgICBhbHdheXMgaW4gZnJvbnQgb2YgaXQuIEknbGwgdHJ5IHRvIHVwZGF0ZSB0aGlzIHBhZ2UgYW5kIGtlZXAgDQorICAgICAgICAgICAgZXZlcnlvbmUgaGFwcHkgOi0pPGJyPkFueSBRdWVzdGlvbnMgb3IgY29tbWVudHMsIHlvdSBjYW4gZWl0aGVyIA0KKyAgICAgICAgICAgIGNvbnRhY3QgbWUgb3IgcG9zdCBpdCBvbiB0aGUgbWVzc2FnZWJvYXJkLjxicj48YnI+V2F5cyB0byBjb250YWN0IA0KKyAgICAgICAgICAgIG1lLjxicj5FLW1haWw6IDxhIGhyZWY9Im1haWx0bzpIb2xvZGVjazJAaG9tZS5jb20iPkhvbG9kZWNrMkBob21lLmNvbTwvYT4gKEFsbCBFLW1haWxzIA0KKyAgICAgICAgICAgIHdpbGwgYmUgYW5zd2VyZWQgaW4gMjQgaG91cnMgb3IgbGVzcywgSSBndWFyYW50ZWUgaXQuKTxicj5XaGVuIHlvdSANCisgICAgICAgICAgICB3cml0ZSBtZSBhbiBlLW1haWwgcGxlYXNlIHB1dCBpbiB0aGUgc3ViamVjdCBsaW5lICJCUDYiIHRoZW4gdGhlIA0KKyAgICAgICAgICAgIHJlc3Qgb2YgeW91ciBzdWJqZWN0IHNvIG15IGUtbWFpbCBwcm9ncmFtIGNhbiBzb3J0IGl0LCB0aGFua3M8YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5hb2wuY29tL2FpbSI+QUlNOiA8L2E+SG9sb2RlY2syIChpbnN0YW50IHJlc3BvbnNlIA0KKyAgICAgICAgICAgIGlmIEkmIzgyMTc7bSBpbiBmcm9udCBvZiBteSBjb21wIGFuZCBub3QgdHJ5aW5nIHRvIGZyYWcgc29tZW9uZSk8YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5pY3EuY29tL2Rvd25sb2FkIj5JQ1E6IDwvYT44MjY0MDIxOCAocmFyZWx5IA0KKyAgICAgICAgICAgIG9uKTxicj48YnI+UC5TLiBJZiBzb21lb25lIG5hbWVkICYjODIyMDtEaWdpdGFsIFZvcnRleCYjODIyMTsgb24gZWl0aGVyIFF1YWtlIDMgDQorICAgICAgICAgICAgb3IgMiBmcmFncyB5b3UsIGl0JiM4MjE3O3MgcHJvYmFibHkgbWUuIDstKTxicj48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2NDQyOTU3NywxMzM3NSwiPjwvYT4NCisgICAgICAgICAgICA8dGFibGUgYmdjb2xvcj0iIzAwMzM5OSIgd2lkdGg9IjEwMCUiPjx0Ym9keT48dHI+PHRkPjxmb250IGNvbG9yPSIjZmZmZmZmIiBmYWNlPSJWZXJkYW5hLGFyaWFsIiBzaXplPSIyIj48Yj5Nb25kYXksIA0KKyAgICAgICAgICAgICAgICAgIEp1bHkgMjQsIDIwMDA8L2I+PC9mb250PjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+Cis8YnI+PCEtLTxociBub3NoYWRlIHdpZHRoPTEwMCU+LS0+PGI+PHU+PGZvbnQgY29sb3I9IiMwMDMzNjYiIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPSIyIj5CUDYgUTMgc2VydmVyIHVwIGFuZCANCisgICAgICAgICAgICBydW5uaW5nLi48L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzp0aW1AYnA2LmNvbSI+dGltPC9hPiBAIDI6MDZBTSBQRFQ8L3NtYWxsPqAgPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTY0NDI5NTc3LDEzMzc1LC5odG1sIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MyBjb21tZW50czwvYT4gDQorICAgICAgICAgICAgoHygPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9hPjwvZm9udD4gPGJyPjxmb250IGNvbG9yPSJibGFjayIgZmFjZT0iQXJpYWwiIHNpemU9IjIiPlNldHVwIGEgUTMgc2VydmVyIGZvciBhbnlvbmUgd2FudGluZyANCisgICAgICAgICAgICB0byBwcmFjdGljZSBpbiBwcmVwYXJhdGlvbiBmb3IgUXVha2Vjb24uLiBDb25uZWN0IHRvIGJwNi5keW5kbnMub3JnIA0KKyAgICAgICAgICAgIGRlZmF1bHQgcG9ydC4gKFNFUlZFUjogQlA2IHN5c3RlbSwgMjU2IE1CIHJhbSwgY2VsZXJvbiA2MDAgb24gYSBUMyANCisgICAgICAgICAgICBjb25uZWN0aW9uKS4uLiBXaWxsIGJlIG1vdmVkIHRvIGFub3RoZXIgQlA2IHNlcnZlciBldmVudHVhbGx5LiBUaGlzIA0KKyAgICAgICAgICAgIGlzIG9ubHkgYSB0ZW1wb3JhcnkgdGVzdCBvZiB0aGUgc3lzdGVtIGFuZCBuZXQgY29ubmVjdGlvbi4gPGJyPihCVFctIA0KKyAgICAgICAgICAgIHRoZXJlIGFyZSBhIGZldyBib3QncyBydW5uaW5nIGFyb3VuZCBpbiB0aGVyZS4uKTwvZm9udD48YnI+PGJyPjxhIG5hbWU9Im5ld3NpdGVtOTY0NDI1MTg0LDk1ODEyLCI+PC9hPjxiPjx1Pjxmb250IGNvbG9yPSIjMDAzMzY2IiBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0iMiI+QklPUyBTYXZpb3IgdG8gdGhlIA0KKyAgICAgICAgICAgIHJlc2N1ZS4uLi48L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzp0aW1AYnA2LmNvbSI+dGltPC9hPiBAIDEyOjUzQU0gUERUPC9zbWFsbD6gIDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2NDQyNTE4NCw5NTgxMiwuaHRtbCI+PGltZyBib3JkZXI9IjAiIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjIgY29tbWVudHM8L2E+IA0KKyAgICAgICAgICAgIKB8oDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvYT48L2ZvbnQ+IDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5EbyB5b3Ugc3dlYXQgZHVyaW5nIHRoZSBCSU9TIGZsYXNoaW5nIA0KKyAgICAgICAgICAgIHByb2NlZHVyZSBvbiB5b3VyIEJQNiBtb2JvPyBJZiBzbyB0aGVuIHRoaXMgbGl0dGxlIGdhZGdldCBtYXliZSANCisgICAgICAgICAgICB3b3J0aCBhIGZpcnN0IGxvb2suIEl0J3MgY2FsbGVkIHRoZSAiPGI+UkQxIEJJT1MgU2F2aW9yPC9iPiIgYW5kIGl0IA0KKyAgICAgICAgICAgIHBsdWdzIGluIGJldHdlZW4geW91ciBCSU9TIFJPTSBhbmQgdGhlIEJJT1MgUk9NIHNvY2tldCBvbiB5b3VyIG1vYm8uIA0KKyAgICAgICAgICAgIFRoaXMgZGV2aWNlIHdpbGwgYmFja3VwIHlvdXIgQklPUyBhbmQgYW5kIGFsbG93IHlvdSB0byByZWNvdmVyIHlvdXIgDQorICAgICAgICAgICAgQklPUyBpbiB0aGUgZXZlbnQgdGhhdCB5b3VyIGZsYXNoaW5nIHNlc3Npb24gZ29lcyB3cm9uZy4gSW4gdGhlIA0KKyAgICAgICAgICAgIGV2ZW50IG9mIGEgYmFkIGZsYXNoLCBqdXN0IGZsaXAgYSBzd2l0Y2ggb24gdGhlIFJESSBhbmQgYm9vdCB1cCB5b3VyIA0KKyAgICAgICAgICAgIHN5c3RlbSwgYW5kIGZsYXNoIGFnYWluLiBUaGlzIGlzIGFsc28gZ29vZCBhcyBhIGZhaWxzYWZlIGluIGNhc2UgeW91IA0KKyAgICAgICAgICAgIGRvbid0IGJlbGlldmUgaW4gVmlydXMgUHJvdGVjdGluZyB5b3VyIGNvbXB1dGVyLiAoVGhhbmtzIHRvIEZyZWQgZm9yIA0KKyAgICAgICAgICAgIGxpbmspPGJyPjxhIGhyZWY9Imh0dHA6Ly93d3cuaW9zcy5jb20udHcvZWcvcmQxL1JEMWluZm8wMDA0LlBERiIgdGFyZ2V0PSJfTkVXIj5NYW51ZmFjdHVyZXJzIEJyb2NodXJlPC9hPiAoUERGIEZvcm1hdCk8YnI+PGEgaHJlZj0iaHR0cDovLzE5Mi4yMTYuMTg1LjEwL213YXZlL2RvYy9BMDY5NTAuaHRtbCIgdGFyZ2V0PSdfQkxBTksiJz5Bbm90aGVyIGluZm8gcGFnZTwvYT48YnI+PGEgaHJlZj0iaHR0cDovLzE5Mi4yMTYuMTg1LjEwL213YXZlL1Byb2RNQi1BQy1NVy5obXg/VUlEPSZhbXA7Q0lEPSZhbXA7dXBkZXB0cz1NQiZhbXA7RE5BTUU9JTNDYiUzRU1vdGhlcmJvYXJkcyUzQyUyRmIlM0UmYW1wO0JhY2s9UHJvZE1CLUFDLU1XLmhteD8iIHRhcmdldD0iX0JMQU5LIj5BdmFpbGFibGUgZm9yIGFib3V0ICQyMDwvYT48YnI+PGJyPjxpbWcgc3JjPSJkb2MzX2ZpbGVzL3JkMS5qcGciPjwvZm9udD48YnI+PGJyPjxhIG5hbWU9Im5ld3NpdGVtOTYzODc1ODUzLDEyNzMxLCI+PC9hPg0KKyAgICAgICAgICAgIDx0YWJsZSBiZ2NvbG9yPSIjMDAzMzk5IiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQ+PGZvbnQgY29sb3I9IiNmZmZmZmYiIGZhY2U9IlZlcmRhbmEsYXJpYWwiIHNpemU9IjIiPjxiPk1vbmRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAxNywgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkhvdyBUbyANCisgICAgICAgICAgICBPdmVyY2xvY2s8L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPkRhcmVEZXZpbDwvYT4gQCA0OjE3UE0gDQorICAgICAgICAgICAgUERUPC9zbWFsbD6gIDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2Mzg3NTg1MywxMjczMSwuaHRtbCI+PGltZyBib3JkZXI9IjAiIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjMgY29tbWVudHM8L2E+IA0KKyAgICAgICAgICAgIKB8oDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvYT48L2ZvbnQ+IDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgbmV3IHRvIA0KKyAgICAgICAgICAgIG92ZXJjbG9ja2luZywgdGhpcyBndWlkZSB3aWxsIGV4cGxhaW4gdG8geW91IGhvdyB0byBvdmVyY2xvY2ssIGFuZCANCisgICAgICAgICAgICB3aGF0IHNvbWUgb2YgdGhlIHRlcm1zIGFyZS4gTGlrZSAnRlNCJyAod2hhdCB0aGUgaGVjayBpcyB0aGF0IT8gDQorICAgICAgICAgICAgOjApKTxicj48YnI+PGEgaHJlZj0iaHR0cDovL25ldGtpbGxzLnFnbC5vcmcvYV9vY19jb21wLnNodG1sIiB0YXJnZXQ9Il9ibGFuayI+SG93IFRvIE92ZXJjbG9jazwvYT4gPC9mb250Pjxicj48YnI+PGEgbmFtZT0ibmV3c2l0ZW05NjM4NzU0ODUsMjMzNTMsIj48L2E+PGI+PHU+PGZvbnQgY29sb3I9IiMwMDMzNjYiIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPSIyIj5UaGUgQ2FyZGNvb2xlciANCisgICAgICAgICAgICBYVDwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOmtpbGx6QGk4MmhxLmNvbSI+RGFyZURldmlsPC9hPiBAIDQ6MTFQTSANCisgICAgICAgICAgICBQRFQ8L3NtYWxsPqAgPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTYzODc1NDg1LDIzMzUzLC5odG1sIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MSBjb21tZW50czwvYT4gDQorICAgICAgICAgICAgoHygPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9hPjwvZm9udD4gPGJyPjxmb250IGNvbG9yPSJibGFjayIgZmFjZT0iQXJpYWwiIHNpemU9IjIiPldvdyEgSSBhbSBpbXByZXNzZWQhIE5ldmVybWluZCBrZWVwaW5nIA0KKyAgICAgICAgICAgIHRoZSBDUFUncyBjb29sLi4uIEtlZXAgeW91ciB3aG9sZSBib2FyZCBjb29sITxicj48YnI+PGk+RXZlbiBpZiB5b3VyIA0KKyAgICAgICAgICAgIG5vdCBvdmVyY2xvY2tpbmcgeW91ciBzeXN0ZW0gKG9yIHBsYW5uaW5nIG9uIGl0KSwgdGhpcyB1bml0IHdpbGwgDQorICAgICAgICAgICAgcHJvdmlkZSBzeXN0ZW0gc3RhYmlsaXR5IGFuZCBsb25nZXZpdHkuIFdoYXQgd291bGQgaGFwcGVuIG9uZSBkYXkgb2YgDQorICAgICAgICAgICAgeW91ciBHZUZvcmNlIG9yIENQVSBmYW4gd2VudCBkZWFkPyBZb3UgY2FuIGFsc28gdGhpbmsgb2YgdGhpcyANCisgICAgICAgICAgICBjb29saW5nIHVuaXQgYXMgYSBiYWNrdXAgdG8gZXNzZW50aWFsIGNvb2xpbmcgZmFucyBpbiB5b3VyIA0KKyAgICAgICAgICAgIHN5c3RlbS48L2k+PGJyPjxicj5DaGVjayB0aGlzIG91dCE8YnI+PGJyPjxhIGhyZWY9Imh0dHA6Ly93d3cuYnJva2VucGl4ZWwuY29tL2FydGljbGVzL2Nvb2xlclhUL2NhcmRjb29sZXJYVF8xLnNodG1sIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy5icm9rZW5waXhlbC5jb20vYXJ0aWNsZXMvY29vbGVyWFQvY2FyZGNvb2xlclhUXzEuc2h0bWw8L2E+IA0KKyAgICAgICAgICAgIDwvZm9udD48YnI+PGJyPjxhIG5hbWU9Im5ld3NpdGVtOTYzODU5OTgyLDg4OTgyLCI+PC9hPjxiPjx1Pjxmb250IGNvbG9yPSIjMDAzMzY2IiBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0iMiI+J05lcmQgDQorICAgICAgICAgICAgSW5zaWRlJzwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOmtpbGx6QGk4MmhxLmNvbSI+RGFyZURldmlsPC9hPiBAIDExOjUzQU0gDQorICAgICAgICAgICAgUERUPC9zbWFsbD6gIDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2Mzg1OTk4Miw4ODk4MiwuaHRtbCI+PGltZyBib3JkZXI9IjAiIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjEgY29tbWVudHM8L2E+IA0KKyAgICAgICAgICAgIKB8oDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvYT48L2ZvbnQ+IDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5XZSBhbGwgbmVlZCB0byBoYXZlIHNvbWUgZnVuIA0KKyAgICAgICAgICAgIHNvbWV0aW1lcyEgQ2hlY2sgb3V0IHRoaXMgbGl0dGxlIHdlYiBzaXRlIHRoYXQgc2VsbHMgJ25lcmQnIGNsb3RoaW5nIA0KKyAgICAgICAgICAgIDspIChJIGxpa2UgdGhlIGJpYnMgaW4gdGhlIEp1bmlvciBIYWNrZXJ6IHNlY3Rpb24pIDot3jxicj48YnI+PGRpdiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3Lm5lcmRnZWFyLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL25lcmRpbnNpZGUuZ2lmIj48L2E+PC9kaXY+PC9mb250Pjxicj48YnI+PGEgbmFtZT0ibmV3c2l0ZW05NjM4MTk3OTYsOTY4OCwiPjwvYT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkR1YWwgUFNVIFdpcmluZyBkaWFncmFtLi4uIChwcmV2aWV3IHRvIA0KKyAgICAgICAgICAgIFBhcnQgMSBXYXRlcmNvb2xpbmcgUHJvamVjdCk8L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzp0aW1AYnA2LmNvbSI+dGltPC9hPiBAIDEyOjQzQU0gUERUPC9zbWFsbD6gIDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2MzgxOTc5Niw5Njg4LC5odG1sIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MTEgY29tbWVudHM8L2E+IA0KKyAgICAgICAgICAgIKB8oDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvYT48L2ZvbnQ+IDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5XaGVuIGlzIGNvbWVzIHRvIG92ZXJjbG9ja2luZyB5b3VyIA0KKyAgICAgICAgICAgIHN5c3RlbSwgY29vbGluZyBwbGF5cyBhIGJpZyByb2xlLiBQb3dlcmluZyBhbGwgb2YgdGhvc2UgZmFucyBpbiB5b3VyIA0KKyAgICAgICAgICAgIHN5c3RlbSBjYW4gY2F1c2UgcXVpdGUgYSBzdHJhaW4gb24geW91ciBQU1UgKFBvd2VyIFN1cHBseSBVbml0KS4gDQorICAgICAgICAgICAgRGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2YgcGVyaXBoZXJhbHMgaW4geW91ciBzeXN0ZW0sIGFkZGluZyBhIG1vcmUgDQorICAgICAgICAgICAgcG93ZXJmdWxsIFBTVSBvciBhZGRpbmcgYSBzZWNvbmQgUFNVIG1heSBiZSBuZWNjZXNhcnkuIEZvciANCisgICAgICAgICAgICB3YXRlcmNvb2xpbmcgYW5kIHVzaW5nIHBlbHRpZXJzLCBkZWRpY2F0aW5nIGEgc2Vjb25kIFBTVSB0byBwb3dlciANCisgICAgICAgICAgICB0aGUgUGVsdGllcnMgKFRFQydzKSBpcyBhIGdvb2QgaWRlYS4gSGVyZSBJIGhhdmUgY29tZSB1cCB3aXRoIDIgDQorICAgICAgICAgICAgZGlhZ3JhbXMgb24gaG93IEkgd2lyZWQgZHVhbCAzMDAgd2F0dCBBVFggcG93ZXIgc3VwcGx5IHVuaXRzIGZvciB0aGUgDQorICAgICAgICAgICAgQmxpenphcmQgQlA2IHdhdGVyY29vbGluZyBwcm9qZWN0LiBDb25zaWRlciB0aGlzIHBhcnQgb2YgU3RlcCAxLiANCisgICAgICAgICAgICBNb3JlIHdpbGwgZm9sbG93IHRoaXMgd2Vlay4gQlRXLi4gaGFja2luZyB1cCB5b3VyIFBTVSdzIGlzIHZlcnkgDQorICAgICAgICAgICAgZGFuZ2Vyb3VzIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy4gDQorICAgICAgICAgICAgPGJyPjxicj5WaWV3IERpYWdyYW0gMSA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW1hZ2VzL3dpcmluZy5qcGciIHRhcmdldD0iX0JMQU5LIj5oZXJlPC9hPi48YnI+VmlldyBEaWFncmFtIDIgPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2ltYWdlcy9wc3UyLmdpZiIgdGFyZ2V0PSJfQkxBTksiPmhlcmU8L2E+Ljxicj48YnI+SSB1c2VkIFRhcC1JbiBTcXVlZXplIENvbm5lY3RvcnMgYW5kIA0KKyAgICAgICAgICAgIDIyIGd1YWdlIHdpcmUgdG8gY29ubmVjdCB0aGUgd2lyZXMuIFlvdSBjYW4gZ2V0IHRoZW0gYXQgUmFkaW8gU2hhY2sgDQorICAgICAgICAgICAgUGFydCMgNjQtMzA1MyBvciA8YSBocmVmPSJodHRwOi8vd3d3LnJhZGlvc2hhY2suY29tL1Byb2R1Y3RDYXRhbG9nL1Byb2R1Y3REZXRhaWwvSW5kZXgvMSwyMDk4LCwwMC5odG1sP1NLVVN0cmluZzE9NjQmYW1wO1NLVVN0cmluZzI9MzA1MyIgdGFyZ2V0PSJfYmxhbmsiPmNsaWNrIGhlcmU8L2E+LjwvZm9udD48YnI+PGJyPjxhIG5hbWU9Im5ld3NpdGVtOTYzNzY2NjU1LDc4NTExLCI+PC9hPg0KKyAgICAgICAgICAgIDx0YWJsZSBiZ2NvbG9yPSIjMDAzMzk5IiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQ+PGZvbnQgY29sb3I9IiNmZmZmZmYiIGZhY2U9IlZlcmRhbmEsYXJpYWwiIHNpemU9IjIiPjxiPlN1bmRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAxNiwgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPlJBTSBPdmVyY2xvY2tpbmc/IA0KKyAgICAgICAgICAgIEhtbW1tbS48L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPkRhcmVEZXZpbDwvYT4gQCA5OjU3QU0gDQorICAgICAgICAgICAgUERUPC9zbWFsbD6gIDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2Mzc2NjY1NSw3ODUxMSwuaHRtbCI+PGltZyBib3JkZXI9IjAiIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjMgY29tbWVudHM8L2E+IA0KKyAgICAgICAgICAgIKB8oDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvYT48L2ZvbnQ+IDxicj48Zm9udCBjb2xvcj0iYmxhY2siIGZhY2U9IkFyaWFsIiBzaXplPSIyIj5JIGtub3cgd2UncmUgcHJldHR5IGJpZyBvdmVyY2xvY2tlcnMgDQorICAgICAgICAgICAgaGVyZSBhdCBCUDYuQ29tIHNvLCB0aGlzIGlzIGEgcG9zdCBvZiBjaG9pY2UgOy0pIEkndmUgc2VlbiB0aGUgDQorICAgICAgICAgICAgcXVlc3Rpb24gaW4gdGhlIG1lc3NhZ2UgYm9hcmRzLCAnd2h5IGNhbid0IEkgb3ZlcmNsb2NrIGFueSBoaWdoZXI/JyANCisgICAgICAgICAgICBXZWxsLCBpdCdzIG5vdCBhbHdheXMgdGhlIENQVSB0aGF0J3MgaG9sZGluZyB5b3UgYmFjay4uLiBNYW55IG90aGVyIA0KKyAgICAgICAgICAgIHRoaW5ncyBuZWVkIHRvIGJlIHRha2VuIGNhcmUgb2YgdG8gb3ZlcmNsb2NrIHN1Y2ggYXMgeW91ciBQQ0kgDQorICAgICAgICAgICAgZGV2aWNlcyAoY2FuIHRoZXkgaGFuZGxlIHRoZSBoaWdoZXIgYnVzIHNwZWVkKSwgdGhlIGFjdHVhbCBDUFUsIGFuZCANCisgICAgICAgICAgICB5b3VyIFJBTS4gSSdtIG5vdCBzYXlpbmcgdGhhdCB0aGF0IGEgaGlnaCBxdWFsaXR5IHN0aWNrIG9mIHNpbGljb24gDQorICAgICAgICAgICAgd2lsbCBlbmFibGUgeW91IHRvIG92ZXJjbG9jayB5b3VyIDM2Nk1IeiB0byAxIEdIWiAoSSB3aXNoISksIGJ1dCwgaXQgDQorICAgICAgICAgICAgd2lsbCBjZXJ0YWlubHkgaGVscCA9KTxicj48YnI+RXh0cmVtZSBPdmVyY2xvY2tpbmcgaGFzIHRlc3RlZCANCisgICAgICAgICAgICAob3ZlcmNsb2NrZWQpIFBDMTMzIFJBTSB0byB0aGVyZSBmdWxsIHBvdGVudGlhbC4gSGVyZSdzIGEgcXVvdGUgSSANCisgICAgICAgICAgICBmb3VuZCBhbmQgdGhlIGxpbms6PGJyPjxicj48aT5XZWxsLCB0aGUgZ3V5cyBhdCBFeHRyZW1lIE92ZXJjbG9ja2luZyANCisgICAgICAgICAgICBoYXZlIGJlZW4gaGFyZCBhdCB3b3JrIGFnYWluIHdpdGggdGhlaXIgbGF0ZXN0IHJldmlldy4gVGhpcyB0aW1lIA0KKyAgICAgICAgICAgIHRoZXkgaGF2ZSBwdXQgc2V2ZW4gMTI4TUIgUEMxMzMgbWVtb3J5IG1vZHVsZXMgdGhyb3VnaCB0aGUgdG9ydHVyZSANCisgICAgICAgICAgICB0ZXN0cyB0byBkZXRlcm1pbmUgdGhlaXIgbWF4aW11bSBvdmVyY2xvY2tpbmcgcG90ZW50aWFsLiBXaGljaCBvbmUncyANCisgICAgICAgICAgICBjYW1lIG91dCBvbiB0b3A/IFJlYWQgdGhlIHJldmlldyB0byBmaW5kIG91dC4uLi48L2k+PGJyPjxicj48YSBocmVmPSJodHRwOi8vd3d3LmV4dHJlbWVvdmVyY2xvY2tpbmcuY29tL3Jldmlld3MvbWVtb3J5L3JhbV9yb3VuZHVwXzEuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkNvb2tlZCBSQU0uLi4gWXVtbWllPC9hPjxicj48YnI+VGhlIA0KKyAgICAgICAgICAgINDQLjwvZm9udD48YnI+PGJyPjxhIG5hbWU9Im5ld3NpdGVtOTYzNzY0MjM2LDc2NzIwLCI+PC9hPjxiPjx1Pjxmb250IGNvbG9yPSIjMDAzMzY2IiBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0iMiI+Q1BVIA0KKyAgICAgICAgICAgIEd1aWRlPC9mb250PjwvdT48L2I+PGJyPjxmb250IGNvbG9yPSIjMDA2NmNjIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMSI+PHNtYWxsPlBvc3RlZCBieSA8YSBjbGFzcz0ibmF2IiBocmVmPSJtYWlsdG86a2lsbHpAaTgyaHEuY29tIj5EYXJlRGV2aWw8L2E+IEAgOToxN0FNIA0KKyAgICAgICAgICAgIFBEVDwvc21hbGw+oCA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjM3NjQyMzYsNzY3MjAsLmh0bWwiPjxpbWcgYm9yZGVyPSIwIiBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4wIGNvbW1lbnRzPC9hPiANCisgICAgICAgICAgICCgfKA8YSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L2E+PC9mb250PiA8YnI+PGZvbnQgY29sb3I9ImJsYWNrIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMiI+QSBmb2xsb3cgdXAgb24gdGhlICdXZWVrbHkgQ1BVIA0KKyAgICAgICAgICAgIFByaWNlcycsIHRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBkZXRlcm1pbmUgd2hpY2ggY3B1IGlzIGJlc3QgZm9yIA0KKyAgICAgICAgICAgIHlvdSAoYW5kIHlvdXIgYm9hcmQgOy0pKS4gU2VudCB0byBtZSBieSBTcGFua3ksIGhlcmUncyB0aGUgDQorICAgICAgICAgICAgbGluazo8YnI+PGJyPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Ni50b21zaGFyZHdhcmUuY29tL2hvd3RvLzAwcTIvMDAwNDEyL2luZGV4Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3Ni50b21zaGFyZHdhcmUuY29tL2hvd3RvLzAwcTIvMDAwNDEyL2luZGV4Lmh0bWw8L2E+PC9saT48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2MzY4NTc0OSwyODI5MCwiPjwvYT4NCisgICAgICAgICAgICA8dGFibGUgYmdjb2xvcj0iIzAwMzM5OSIgd2lkdGg9IjEwMCUiPjx0Ym9keT48dHI+PHRkPjxmb250IGNvbG9yPSIjZmZmZmZmIiBmYWNlPSJWZXJkYW5hLGFyaWFsIiBzaXplPSIyIj48Yj5TYXR1cmRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAxNSwgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPldlZWtseSBDUFUgDQorICAgICAgICAgICAgUHJpY2VzPC9mb250PjwvdT48L2I+PGJyPjxmb250IGNvbG9yPSIjMDA2NmNjIiBmYWNlPSJBcmlhbCIgc2l6ZT0iMSI+PHNtYWxsPlBvc3RlZCBieSA8YSBjbGFzcz0ibmF2IiBocmVmPSJtYWlsdG86a2lsbHpAaTgyaHEuY29tIj5EYXJlRGV2aWw8L2E+IEAgMTE6MjlBTSANCisgICAgICAgICAgICBQRFQ8L3NtYWxsPqAgPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTYzNjg1NzQ5LDI4MjkwLC5odG1sIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MiBjb21tZW50czwvYT4gDQorICAgICAgICAgICAgoHygPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9hPjwvZm9udD4gPGJyPjxmb250IGNvbG9yPSJibGFjayIgZmFjZT0iQXJpYWwiIHNpemU9IjIiPldvdywgZm91bmQgdGhpcyB2ZXJ5IHVzZWZ1bCEgV2FudGluZyANCisgICAgICAgICAgICB0byBidXkgYSBuZXcgQ1BVPyBDaGVjayBvdXQgdGhpcyBkZXRhaWxlZCBwcmljZSBsaXN0ITxicj48YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5zaGFya3lleHRyZW1lLmNvbS9oYXJkd2FyZS93ZWVrbHlfY3B1LyIgdGFyZ2V0PSJfYmxhbmsiPkNsaWNrIEhlcmUuPC9hPiA8YnI+PGJyPlRoYW5rcyBTaGFya3kgDQorICAgICAgICAgICAgRXh0cmVtZSE8L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2MzY3OTg4MSwzNTI3NywiPjwvYT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkZhc3QgV2FsbHBhcGVyczwvZm9udD48L3U+PC9iPjxicj48Zm9udCBjb2xvcj0iIzAwNjZjYyIgZmFjZT0iQXJpYWwiIHNpemU9IjEiPjxzbWFsbD5Qb3N0ZWQgYnkgPGEgY2xhc3M9Im5hdiIgaHJlZj0ibWFpbHRvOmtpbGx6QGk4MmhxLmNvbSI+RGFyZURldmlsPC9hPiBAIDk6NTFBTSANCisgICAgICAgICAgICBQRFQ8L3NtYWxsPqAgPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTYzNjc5ODgxLDM1Mjc3LC5odG1sIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MCBjb21tZW50czwvYT4gDQorICAgICAgICAgICAgoHygPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9hPjwvZm9udD4gPGJyPjxmb250IGNvbG9yPSJibGFjayIgZmFjZT0iQXJpYWwiIHNpemU9IjIiPkZBU1QtTUh6IGhhcyByZWxlYXNlZCBzb21lIHdhbGxwYXBlcnMhIA0KKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly82NC4yOS4xOC4xMTEvd2FsbHBhcGVyL2luZGV4Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5DbGljayBoZXJlPC9hPiB0byB2aWV3IHRoZW0uIFRoZXkgY29tZSBpbiBzaXplcyANCisgICAgICAgICAgICA4MDB4NjAwIDEwMjR4NzY4IGFuZCAxMTUyeDg2NC4gSWYgeW91IGhhdmUgeW91ciBkZXNrdG9wIHNldCBhdCBhIA0KKyAgICAgICAgICAgIGxhcmdlciBzaXplLCBqdXN0IHVzZSB0aGUgJ3N0cmV0Y2gnIGZ1bmN0aW9uIGluIGRlc2t0b3AgcHJvcGVydGllcyANCisgICAgICAgICAgICBpbnN0ZWFkIG9mICdjZW50ZXInLiBXb3JrcyBncmVhdC48YnI+PGJyPkluIG90aGVyIG5ld3MsIHdlIHdhbnQgdG8gDQorICAgICAgICAgICAgZmlubmlzaCBvZmYgYWxsIHRoZSBzZWN0aW9ucyBhdCBCUDYuQ29tIHNvLCB0byBzdGFydCwgd2UncmUgZ29pbmcgdG8gDQorICAgICAgICAgICAgd29yayBvbiB0aGUgPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L3VjLnBodG1sIiB0YXJnZXQ9Il9ibGFuayI+UGljdHVyZSBHYWxsZXJ5PC9hPi4gVG8gaGVscCB1cyBvdXQsIHlvdSBjYW4gc2VuZCBpbiANCisgICAgICAgICAgICBhbGwgeW91ciBjb29sLCB3aWVyZCwgY3JhenkgcGljcyB0aGF0IHlvdSBtYXkgaGF2ZSB0bzogPGEgaHJlZj0ibWFpbHRvOnRoZWRhcmVkZXZpbEBicDYuY29tIj50aGVkYXJlZGV2aWxAYnA2LmNvbTwvYT4uIChUaGUgDQorICAgICAgICAgICAgdG9waWMgYmVpbmcgY29tcHV0ZXJzLCBkdWghIDowKSBBbmQgbm8uLi4gSSBkb24ndCB3YW50IHRvIHJlY2lldmUgDQorICAgICAgICAgICAgYW55IHBvcm5vIHBpY2NpZXMgaW4gbXkgbWFpbGJveCEgSSBoYXZlIGVub3VnaCBvZiB0aG9zZSEpIEtpZGRpbmcgDQorICAgICAgICAgICAgZ3V5cy48YnI+PGJyPk9rYXksIHRoYXQncyBhbGwgZm9yIG5vdy48YnI+PGJyPlRoZSANCisgICAgICAgICAgICDQ0C48L2ZvbnQ+PGJyPjxicj48YSBuYW1lPSJuZXdzaXRlbTk2MzYxOTUwNSwzNzY0LCI+PC9hPg0KKyAgICAgICAgICAgIDx0YWJsZSBiZ2NvbG9yPSIjMDAzMzk5IiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQ+PGZvbnQgY29sb3I9IiNmZmZmZmYiIGZhY2U9IlZlcmRhbmEsYXJpYWwiIHNpemU9IjIiPjxiPkZyaWRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAxNCwgMjAwMDwvYj48L2ZvbnQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzxicj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Yj48dT48Zm9udCBjb2xvcj0iIzAwMzM2NiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9IjIiPkhleSANCisgICAgICAgICAgICBUaGVyZSE8L2ZvbnQ+PC91PjwvYj48YnI+PGZvbnQgY29sb3I9IiMwMDY2Y2MiIGZhY2U9IkFyaWFsIiBzaXplPSIxIj48c21hbGw+UG9zdGVkIGJ5IDxhIGNsYXNzPSJuYXYiIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPkRhcmVEZXZpbDwvYT4gQCA1OjA1UE0gDQorICAgICAgICAgICAgUERUPC9zbWFsbD6gIDxhIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2MzYxOTUwNSwzNzY0LC5odG1sIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+NyBjb21tZW50czwvYT4gDQorICAgICAgICAgICAgoHygPGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9hPjwvZm9udD4gPGJyPjxmb250IGNvbG9yPSJibGFjayIgZmFjZT0iQXJpYWwiIHNpemU9IjIiPkhleSBndXlzLCBqdXN0IHdhbnRlZCB0byBpbnRyb2R1Y2UgDQorICAgICAgICAgICAgbXlzZWxmLCBzb21lIG9mIHlvdSBtYXkgaGF2ZSBhbHJlYWR5IG1ldCBtZSBvbiB0aGUgQlA2LmNvbSBib2FyZC4gDQorICAgICAgICAgICAgSSdsbCBiZSBwb3N0aW5nIHVwIG5ld3MgZnJvbSB0aW1lIHRvIHRpbWUgbm93IHNvLCBpZiB5b3UnZCBsaWtlLCB5b3UgDQorICAgICAgICAgICAgbWF5IHNlbmQgbWUgc29tZSBuZXdzIHRvIGJlIHBvc3RlZCBpZiB5b3UgZmluZCBhbnkgKCB3ZSBkb24ndCB3YW50IA0KKyAgICAgICAgICAgIHRvIGZsb29kIFRpbSA7LSkgKS48YnI+PGJyPk15IGUtbWFpbCBhZGRyZXNzIGlzIDxhIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPmtpbGx6QGk4MmhxLmNvbTwvYT48YnI+PGJyPkNpYW8gZm9yIA0KKyAgICAgICAgICAgIG5vdy48YnI+PGJyPlRoZSDQ0C48L2ZvbnQ+PGJyPjxicj48L2ZvbnQ+PGNlbnRlcj48aWZyYW1lIGZyYW1lYm9yZGVyPSIwIiBoZWlnaHQ9IjYwIiBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndpZHRoPSIwIiBub3Jlc2l6ZSBzY3JvbGxpbmc9Im5vIiBzcmM9ImRvYzNfZmlsZXMvYWRfaWZyYW1lLmh0bSIgd2lkdGg9IjQ2OCI+PGEgaHJlZj0iaHR0cDovL2Fkcy5hZGZsaWdodC5jb20vZ29fc3RhdGljLmFzcD9hc2lkPTc3MDgiIHRhcmdldD0iX3RvcCI+PGltZyB3aWR0aD0iNDY4IiBoZWlnaHQ9IjYwIiBib3JkZXI9IjAiIGFsdD0iQWR2ZXJ0aXNlbWVudCIgc3JjPSJodHRwOi8vYWRzLmFkZmxpZ2h0LmNvbS9hZF9zdGF0aWMuYXNwP3BpZD0yMDk3JmFtcDtzaWQ9MTg4MSZhbXA7YXNpZD03NzA4Ij48L2E+PC9pZnJhbWU+PC9jZW50ZXI+Cis8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPgorPC9jZW50ZXI+Cis8L3RkPg0KKyAgICA8dGQgYmdjb2xvcj0ic2lsdmVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjEwJSI+DQorICAgICAgPGNlbnRlcj4NCisgICAgICA8cD4NCisgICAgICA8L3A+Cis8dGFibGUgYmdjb2xvcj0ic2lsdmVyIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiPjx0Ym9keT48dHI+PHRkIGNvbHN0YXJ0PSIxIj4NCisgICAgICAgICAgICA8Y2VudGVyPgorPCEtLQk8Rk9STSBBQ1RJT049Ii9jZ2ktYmluL3N1YnNjcmliZS5wbCIgTUVUSE9EPSJQT1NUIiBFTkNUWVBFPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiPg0KKwkJCQkJCTxJTUcgU1JDPSIvaW1hZ2VzL3NwYWNlci5naWYiIFdJRFRIPSIxMTEiIEhFSUdIVD0iMSI+PEJSPg0KKwkJCQkJCTxQPjxCPjxGT05UIFNJWkU9IjIiIENPTE9SPSIjMDAwMDY2IiBGQUNFPSJWZXJkYW5hIj5OZXdzbGV0dGVyPC9GT05UPjwvQj48Rk9OVCBTSVpFPSIxIiBGQUNFPSJWZXJkYW5hIj48QlI+DQorCQkJCQkJPElOUFVUIFRZUEU9IlRFWFQiIE5BTUU9ImVtYWlsIiBTSVpFPSIxMCIgVkFMVUU9InVyQGVtYWlsLmNvbSI+PEJSPg0KKwkJCQkJCTxJTlBVVCBUWVBFPSJISURERU4iIE5BTUU9InN1YnNjcmliZSIgU0laRT0iLTEiIFZBTFVFPSJzdWJzY3JpYmUiPjxJTlBVVCBUWVBFPSJJTUFHRSIgU1JDPSIvaW1hZ2VzL3N1YnNjcmliZS5naWYiIFdJRFRIPSI4MCINCisJCQkJCQlIRUlHSFQ9IjI3IiBBTElHTj0iQk9UVE9NIiBCT1JERVI9IjAiPjwvRk9OVD4NCisJCQkJCQk8L0ZPUk0+IC0tPg0KKyAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NnaS1iaW4vbmV3cy92aWV3bmV3cy5jZ2k/ZW1haWxsaXN0IiBtZXRob2Q9InBvc3QiPgorPGltZyBoZWlnaHQ9IjEiIHNyYz0iZG9jM19maWxlcy9zcGFjZXIuZ2lmIiB3aWR0aD0iMTExIj48YnI+PGZvbnQgc2l6ZT0iMSI+TmV3c2xldHRlcjxicj48aW5wdXQgbmFtZT0ibnBlbWFpbCIgc2l6ZT0iMTMiIHZhbHVlPSJlLW1haWwgYWRkci4iPjxicj48aW5wdXQgbmFtZT0ibnBzdWJzY3JpYmUiIHN0eWxlPSJCQUNLR1JPVU5ELUNPTE9SOiAjMDAwMDAwOyBDT0xPUjogI2ZmZmZmZjsgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IEZPTlQtU0laRTogeHgtc21hbGw7IEZPTlQtV0VJR0hUOiBib2xkIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJzY3JpYmUiPjxicj48IS0tIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im5wdW5zdWJzY3JpYmUiIHZhbHVlPSJVbnN1YnNjcmliZSIgc3R5bGU9ImZvbnQtc2l6ZTogeHgtc21hbGw7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7Ij4gLS0+PC9mb250PgorPC9mb3JtPgorPGZvbnQgc2l6ZT0iMSI+DQorICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY2dpLWJpbi9uZXdzL3ZpZXduZXdzLmNnaT9zZWFyY2giIG1ldGhvZD0icG9zdCI+U2VhcmNoIG5ld3M8YnI+PGlucHV0IG5hbWU9InNlYXJjaHN0cmluZyIgc2l6ZT0iMTMiPjxicj48aW5wdXQgbmFtZT0ic3VibWl0IiBzdHlsZT0iQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsgQ09MT1I6ICNmZmZmZmY7IEZPTlQtRkFNSUxZOiBWZXJkYW5hOyBGT05ULVNJWkU6IHh4LXNtYWxsOyBGT05ULVdFSUdIVDogYm9sZCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij48YnI+PGEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NnaS1iaW4vbmV3cy92aWV3bmV3cy5jZ2k/bmV3c2FsbCI+TmV3cyANCisgICAgICAgICAgICBhcmNoaXZlPC9hPgorPC9mb3JtPjwvZm9udD4gPC9jZW50ZXI+Cis8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPgorPCEtLQkJCQk8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIiBCR0NPTE9SPSJzaWx2ZXIiPg0KKwkJCQkJPFRSPg0KKwkJCQkJCTxURCBXSURUSD0iMTAwJSI+DQorCQkJCQkJCTxQIEFMSUdOPSJDRU5URVIiPjxBIEhSRUY9Imh0dHA6Ly93d3cuZnJlZTU2ay5jb20iIHRhcmdldD0iX2JsYW5rIj48SU1HIFNSQz0iL2ltYWdlcy9mcmVlNTZrLmdpZiIgV0lEVEg9IjEwMCIgSEVJR0hUPSI0OSINCisJCQkJCQkJQUxJR049IkJPVFRPTSIgQk9SREVSPSIwIj48L0E+DQorCQkJCQkJPC9URD4NCisJCQkJCTwvVFI+DQorCQkJCTwvVEFCTEU+IA0KKy0tPjx0YWJsZSBiZ2NvbG9yPSJzaWx2ZXIiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSI+PHRib2R5Pjx0cj48dGQgYWxpZ249Im1pZGRsZSIgd2lkdGg9IjEwMCUiPgorPCEtLSBCRUdJTiBHb1RvLmNvbSBTZWFyY2ggQm94IC0tPg0KKyAgICAgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQorCQkJCQkJCTwhLS0NCisJCQkJCQkJaWYgKChwYXJzZUludChuYXZpZ2F0b3IuYXBwVmVyc2lvbikgPj0gMykNCisJCQkJCQkJJiYgKG5hdmlnYXRvci5hcHBOYW1lICE9ICJOZXRzY2FwZSIpKSB7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCI8SUZSQU1FIG1hcmdpbmhlaWdodD0wIGZyYW1lYm9yZGVyPTAgIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJtYXJnaW53aWR0aD0wIHNjcm9sbGluZz1ubyB3aWR0aD0xMDAgaGVpZ2h0Iik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCI9OTAgIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJTUkM9aHR0cDovL3d3dy5nb3RvLmNvbS9kL3Nzbi9keW5jb25zb2xlLz90Iik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJ5cGU9aHRtbCZzaXplPTEwMHg5MCZ1cmw9aHR0cDovL3d3dy5nb3RvLmNvIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJtL2Qvc2VhcmNoL3Nzbi8mdGFyZ2V0PV9ibGFuayZQYXJ0bmVyPVNTTjgwIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCI0MkRGODQ3ODk1NzM3Nz4iKTsNCisJCQkJCQkJfSBlbHNlIGlmICgocGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNpb24pID4gMykNCisJCQkJCQkJJiYgKG5hdmlnYXRvci5hcHBOYW1lID09ICJOZXRzY2FwZSIpKSB7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCI8U0NSSVBUIGxhbmd1YWdlPWphdmFzY3JpcHQgdHlwZT10ZXh0L2phdmFzIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJjcmlwdCAiKTsNCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoIlNSQz1odHRwOi8vd3d3LmdvdG8uY29tL2Qvc3NuL2R5bmNvbnNvbGUvP3QiKTsNCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoInlwZT1qcyZzaXplPTEwMHg5MCZ1cmw9aHR0cDovL3d3dy5nb3RvLmNvbS8iKTsNCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoImQvc2VhcmNoL3Nzbi8mdGFyZ2V0PV9ibGFuayZQYXJ0bmVyPVNTTjgwNDIiKTsNCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoIkRGODQ3ODk1NzM3Nz4iKTsNCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoIlJJUFQ+Iik7DQorCQkJCQkJCX0gZWxzZSB7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCI8QSBUQVJHRVQ9X2JsYW5rICIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiSFJFRj1odHRwOi8vd3d3LmdvdG8uY29tL2Qvc2VhcmNoL3Nzbi8/ZnJvbSIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiR0lGPXRydWU+Iik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCI8SU1HIGlzbWFwICIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiU1JDPWh0dHA6Ly93d3cuZ290by5jb20vZC9zc24vZHluY29uc29sZS8/dCIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgieXBlPWdpZiZzaXplPTEwMHg5MD4iKTsNCisJCQkJCQkJfQ0KKwkJCQkJCQkvLyAtLT4NCisJCQkJCQkJPC9zY3JpcHQ+PGI+PG5vc2NyaXB0Pjwvbm9zY3JpcHQ+PC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ290by5jb20vZC9zZWFyY2gvc3NuLz9mcm9tR0lGPXRydWUiIHRhcmdldD0iX2JsYW5rIj48aW1nIGFsaWduPSJib3R0b20iIGJvcmRlcj0iMCIgaGVpZ2h0PSI5MCIgaXNtYXAgc3JjPSJkb2MzX2ZpbGVzLzEwMHg5MC5naWYiIHdpZHRoPSIxMDAiPjwvYT48Yj48YSBocmVmPSJodHRwOi8vd3d3LmdvdG8uY29tL2Qvc2VhcmNoL3Nzbi8/ZnJvbUdJRj10cnVlIiB0YXJnZXQ9Il9ibGFuayI+IA0KKyAgICAgICAgICAgIDwvYT48L2I+PGI+PC9iPjxiPjwhLS0gRU5EIEdvVG8uY29tIFNlYXJjaCBCb3ggLS0+PC9iPjwhLS0gUHJpY2V3YXRjaCBTZWFyY2ggQm94IC0tPg0KKyAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iaHR0cDovL3d3dy5wcmljZXdhdGNoLmNvbS9zZWFyY2gvc2VhcmNoLmFzcCIgbWV0aG9kPSJnZXQiIHRhcmdldD0iX0JsYW5rIj4NCisgICAgICAgICAgICA8Y2VudGVyPg0KKyAgICAgICAgICAgIDxwPjxiPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iQVJJQUwsIEhFTFZFVElDQSIgc2l6ZT0iMSI+UEMgUHJpY2UgDQorICAgICAgICAgICAgU2VhcmNoPGJyPjwvZm9udD48L2I+PGlucHV0IG1heGxlbmd0aD0iMzAiIG5hbWU9ImNyaXRlcmlhIiBzaXplPSIxMCI+PGJyPjxpbnB1dCBuYW1lPSJzdWJtaXQiIHN0eWxlPSJCQUNLR1JPVU5ELUNPTE9SOiAjMDAwMDAwOyBDT0xPUjogI2ZmZmZmZjsgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IEZPTlQtU0laRTogeHgtc21hbGw7IEZPTlQtV0VJR0hUOiBib2xkIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZWFyY2giPjwvcD4KKzwvY2VudGVyPgorPC9mb3JtPgorPCEtLSBQcmljZXdhdGNoIFNlYXJjaCBCb3ggLS0+PGEgaHJlZj0iaHR0cDovL3d3dy5wdWljb3JwLmNvbS9icDZzcGVjaWFscy5odG0iIHRhcmdldD0iX0JMQU5LIj48aW1nIHNyYz0iZG9jM19maWxlcy9wdWlicDYuZ2lmIj48L2E+PGJyPjxicj48YnI+PGJyPjxhIGhyZWY9Imh0dHA6Ly9zdG9yZS55YWhvby5jb20vZHVuYW1pcy1zaXRlL21heHRvci5odG1sIiB0YXJnZXQ9Il9CTEFOSyI+PGltZyBhbHQ9IkJQNi5jb20gU3BlY2lhbCAtIEVudGVyIENPREU6IEJQNi1oZCBpbiB0aGUgb3JkZXIgKG5vdGVzKSB0byByZWNlaXZlIGEgZGlzY291bnQiIHNyYz0iZG9jM19maWxlcy9oZDUuZ2lmIj48Zm9udCBzaXplPSIxIj48YnI+QlA2LkNPTSANCisgICAgICAgICAgICBTcGVjaWFsPGJyPkNvZGU6QlA2LWhkPC9mb250PjwvYT4gPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKzx0YWJsZSBiZ2NvbG9yPSJzaWx2ZXIiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIj48dGJvZHk+PHRyPjx0ZCB3aWR0aD0iMTAwJSI+oDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+Cis8L2NlbnRlcj4KKzwvdGQ+Cis8L3RyPjwvdGJvZHk+PC90YWJsZT4KKzwhLS0JPC9UQUJMRT4tLT48Y2VudGVyPjwvY2VudGVyPgorPHRyPgorPHRkIGNvbHNwYW49IjMiIHZhbGlnbj0iVE9QIiBoZWlnaHQ9IjcwIj6gPC90ZD4gPC90cj4KKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI3ODAiPjx0Ym9keT4KKzx0cj48dGQgd2lkdGg9Ijc4MCI+DQorICAgICAgPHAgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9IiM5OTk5OTkiIGZhY2U9InZlcmRhbmEsYXJpYWwiIHNpemU9IjEiPkNvcHlyaWdodCANCisgICAgICCpMTk5OS0yMDAwIEJQNi5jb20sIEFsbCByaWdodHMgcmVzZXJ2ZWQuPGJyPkdvdCBuZXdzPyBTZW5kIGl0IHRvIDwvZm9udD48YSBocmVmPSJtYWlsdG86dGltQGJwNi5jb20iPjxmb250IGNvbG9yPSJ3aGl0ZSIgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMSI+VGltPC9mb250PjwvYT4gPC9wPgorPC90ZD48L3RyPgorPCEtLQk8VFI+CQk8VEQgV0lEVEg9Ijc4MCI+CQkJPFAgQUxJR049IkNFTlRFUiI+PEZPTlQgU0laRT0iMSIgQ09MT1I9IiM5OTk5OTkiIEZBQ0U9IlZlcmRhbmEsYXJpYWwiPlNpdGUgZGVzaWduIGJ5IFRpbSBCcmlua2xleTwvRk9OVD4JCTwvVEQ+CTwvVFI+IC0tPgorPC90Ym9keT48L3RhYmxlPgorPC9kaXY+DQorPHNjcmlwdD4gd2luZG93Lm9wZW49TlNfQWN0dWFsT3BlbjsgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzMuaHRtLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZG9jMy5odG0uZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZjcxNWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzMuaHRtLmVycgpAQCAtMCwwICsxLDgxIEBACisuL3Rlc3QvSFRNTC9kb2MzLmh0bToxMDogSFRNTCBwYXJzZXIgZXJyb3IgOiBNaXNwbGFjZWQgRE9DVFlQRSBkZWNsYXJhdGlvbgorPCEtLSBFTkQgTmF2aXNjb3BlIEphdmFzY3JpcHQgLS0+PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMi8vRU4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjUyOiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworIGhyZWY9Imh0dHA6Ly9hZHMuZ2FtZXNxdWFkLm5ldC9hZGRjbGljay5leGUvYWRjbGljay5jZ2k/UkVHSU9OPWdhbWV8dGVjaHxlbnQmaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo1MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK190b3AiPjxpbWcgc3JjPSJodHRwOi8vYWRzLmdhbWVzcXVhZC5uZXQvYWRkY2xpY2suZXhlL2FkY3ljbGUuY2dpP2dyb3VwPTUyJm1lZGlhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvZG9jMy5odG06NTI6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCis+PGltZyBzcmM9Imh0dHA6Ly9hZHMuZ2FtZXNxdWFkLm5ldC9hZGRjbGljay5leGUvYWRjeWNsZS5jZ2k/Z3JvdXA9NTImbWVkaWE9MSZpZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjE0NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBlcnJvciBwYXJzaW5nIGF0dHJpYnV0ZSBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD03MCBHZW50dXM/Lj8+PC9BPjxCUj48QSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjE0ODogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBwCisgIDwvUD48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvQ0VOVEVSPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PC9DRU5URVI+PC9QPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjIzNjogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBmb250CisgICAgICAgICAgICBTcGVjaWFsczxCUj48QlI+PC9GT05UPjwvQT48QlI+PC9GT05UPjwvQT48Qj48Rk9OVCBjb2xvcj15ZWxsb3cgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjIzNjogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBhCisgICAgICAgICAgICBTcGVjaWFsczxCUj48QlI+PC9GT05UPjwvQT48QlI+PC9GT05UPjwvQT48Qj48Rk9OVCBjb2xvcj15ZWxsb3cgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo3NDc6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitlcj0wIGFsdD0iQWR2ZXJ0aXNlbWVudCIgc3JjPSJodHRwOi8vYWRzLmFkZmxpZ2h0LmNvbS9hZF9zdGF0aWMuYXNwP3BpZD0yMDk3JnNpZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjc0NzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK0FkdmVydGlzZW1lbnQiIHNyYz0iaHR0cDovL2Fkcy5hZGZsaWdodC5jb20vYWRfc3RhdGljLmFzcD9waWQ9MjA5NyZzaWQ9MTg4MSZhc2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvZG9jMy5odG06NzQ3OiBIVE1MIHBhcnNlciBlcnJvciA6IFVuZXhwZWN0ZWQgZW5kIHRhZyA6IGxpCitsaWdodC5jb20vYWRfc3RhdGljLmFzcD9waWQ9MjA5NyZzaWQ9MTg4MSZhc2lkPTc3MDgiPjwvYT48L0lGUkFNRT48L0NFTlRFUj48L0xJPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjc0NzogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBmb250CitvbS9hZF9zdGF0aWMuYXNwP3BpZD0yMDk3JnNpZD0xODgxJmFzaWQ9NzcwOCI+PC9hPjwvSUZSQU1FPjwvQ0VOVEVSPjwvTEk+PC9GT05UPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjc0NzogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBwCis9NzcwOCI+PC9hPjwvSUZSQU1FPjwvQ0VOVEVSPjwvTEk+PC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PC9DRU5URVI+PC9QPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjc3MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBmb3JtCisgICAgICAgICAgICBhcmNoaXZlPC9BPjwvRk9OVD4gPC9GT1JNPjwvQ0VOVEVSPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PCEtLQkJCQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo3OTU6IEhUTUwgcGFyc2VyIGVycm9yIDogVW5leHBlY3RlZCBlbmQgdGFnIDogaWZyYW1lCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoIjQyREY4NDc4OTU3Mzc3PjwvSUZSQU1FPiIpOworCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo4MDM6IEhUTUwgcGFyc2VyIGVycm9yIDogRW5kIHRhZyA6IGV4cGVjdGVkICc+JworCQkJCQkJCWRvY3VtZW50LndyaXRlKCJERjg0Nzg5NTczNzc+PC9TQyIpOworCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjgwMzogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBzYworCQkJCQkJCWRvY3VtZW50LndyaXRlKCJERjg0Nzg5NTczNzc+PC9TQyIpOworCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjgxMTogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBhCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoInlwZT1naWYmc2l6ZT0xMDB4OTA+PC9BPiIpOworCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo4MjA6IEhUTUwgcGFyc2VyIGVycm9yIDogVW5leHBlY3RlZCBlbmQgdGFnIDogYQorICAgICAgICAgICAgPC9BPjwvQT48L0I+PEI+PC9OT1NDUklQVD48L0I+PEI+PCEtLSBFTkQgR29Uby5jb20gU2VhcmNoIEJveCAtLT48L0IKKyAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvZG9jMy5odG06ODIwOiBIVE1MIHBhcnNlciBlcnJvciA6IFVuZXhwZWN0ZWQgZW5kIHRhZyA6IG5vc2NyaXB0CisgICAgICAgICAgICA8L0E+PC9BPjwvQj48Qj48L05PU0NSSVBUPjwvQj48Qj48IS0tIEVORCBHb1RvLmNvbSBTZWFyY2ggQm94IC0tPjwvQgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo4MjY6IEhUTUwgcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogZm9ybSBhbmQgY2VudGVyCisgICAgICAgICAgICA8L0ZPUk0+PCEtLSBQcmljZXdhdGNoIFNlYXJjaCBCb3ggLS0+PEEgCisgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvZG9jMy5odG06ODMzOiBIVE1MIHBhcnNlciBlcnJvciA6IFVuZXhwZWN0ZWQgZW5kIHRhZyA6IHAKKyAgICAgICAgICAgIFNwZWNpYWw8QlI+Q29kZTpCUDYtaGQ8L0ZPTlQ+PC9BPiA8L1A+PC9DRU5URVI+PC9URD48L1RSPjwvVEJPRFk+PC9UCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjgzMzogSFRNTCBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBjZW50ZXIgYW5kIHRkCisgICAgICAgICAgICBTcGVjaWFsPEJSPkNvZGU6QlA2LWhkPC9GT05UPjwvQT4gPC9QPjwvQ0VOVEVSPjwvVEQ+PC9UUj48L1RCT0RZPjwvVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo4Mzk6IEhUTUwgcGFyc2VyIGVycm9yIDogVW5leHBlY3RlZCBlbmQgdGFnIDogcAord2lkdGg9IjEwMCUiPiZuYnNwOzwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PC9QPjwvQ0VOVEVSPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo4NDA6IEhUTUwgcGFyc2VyIGVycm9yIDogVW5leHBlY3RlZCBlbmQgdGFnIDogdGQKKzxDRU5URVI+PC9DRU5URVI+PC9URD48L1RSPjxUUj48VEQgQ09MU1BBTj0iMyIgVkFMSUdOPSJUT1AiIAorICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2RvYzMuaHRtOjg0MDogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiB0cgorPENFTlRFUj48L0NFTlRFUj48L1REPjwvVFI+PFRSPjxURCBDT0xTUEFOPSIzIiBWQUxJR049IlRPUCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9kb2MzLmh0bTo4NDE6IEhUTUwgcGFyc2VyIGVycm9yIDogVW5leHBlY3RlZCBlbmQgdGFnIDogdGFibGUKK0hFSUdIVD0iNzAiPiZuYnNwOzwvVEQ+IDwvVFI+PC9UQUJMRT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzMuaHRtLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZG9jMy5odG0uc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNDc3ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2RvYzMuaHRtLnNheApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU1MzY4MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZW50aXRpZXMuaHRtbApAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzxodG1sPjxib2R5PjxwIHRzdD0iYSZhbXA7YiIgdHN0Mj0iYSZhbXA7YiIgdHN0Mz0iYSAmYW1wOyBiIj4KK2EmYW1wO2IKK2EmYW1wO2IKK2EgJmFtcDsgYgorPC9wPjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzLmh0bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9lbnRpdGllcy5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODBmYTlmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9lbnRpdGllcy5odG1sLmVycgpAQCAtMCwwICsxLDEyIEBACisuL3Rlc3QvSFRNTC9lbnRpdGllcy5odG1sOjE6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCis8cCB0c3Q9ImEmYW1wO2IiIHRzdDI9ImEmYiIgdHN0Mz0iYSAmIGIiPgorICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC9lbnRpdGllcy5odG1sOjE6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBubyBuYW1lCis8cCB0c3Q9ImEmYW1wO2IiIHRzdDI9ImEmYiIgdHN0Mz0iYSAmIGIiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML2VudGl0aWVzLmh0bWw6MzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2EmYgorICAgXgorLi90ZXN0L0hUTUwvZW50aXRpZXMuaHRtbDo0OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogbm8gbmFtZQorYSAmIGIKKyAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZW50aXRpZXMuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwOWI2MGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzLmh0bWwuc2F4CkBAIC0wLDAgKzEsMjcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBubyBuYW1lCitTQVguc3RhcnRFbGVtZW50KHAsIHRzdD0nYSZhbXA7YicsIHRzdDI9J2EmYW1wO2InLCB0c3QzPSdhICZhbXA7IGInKQorU0FYLmNoYXJhY3RlcnMoCithLCAyKQorU0FYLmNoYXJhY3RlcnMoJmFtcDssIDEpCitTQVguY2hhcmFjdGVycyhiCithLCAzKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5jaGFyYWN0ZXJzKCZhbXA7LCAxKQorU0FYLmNoYXJhY3RlcnMoYiwgMSkKK1NBWC5jaGFyYWN0ZXJzKAorYSAsIDMpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogbm8gbmFtZQorU0FYLmNoYXJhY3RlcnMoJmFtcDssIDEpCitTQVguY2hhcmFjdGVycyggYgorLCAzKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoYm9keSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9lbnRpdGllczIuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZW50aXRpZXMyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI4NWNhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZW50aXRpZXMyLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD48Ym9keT4KKzxmb3JtPgorICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idGVzdCIgdmFsdWU9IiZzY2Fyb247Ij4KKzwvZm9ybT4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzMi5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZW50aXRpZXMyLmh0bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzMi5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9lbnRpdGllczIuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2VudGl0aWVzMi5odG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVmYmU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9lbnRpdGllczIuaHRtbC5zYXgKQEAgLTAsMCArMSwyMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChmb3JtKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoaW5wdXQsIHR5cGU9J3RleHQnLCBuYW1lPSd0ZXN0JywgdmFsdWU9JyZzY2Fyb247JykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChmb3JtKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZnA0MC5odG0gYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2ZwNDAuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMjQ0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2ZwNDAuaHRtCkBAIC0wLDAgKzEsMTU1IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNaWNyb3NvZnQgRnJvbnRQYWdlIDQuMCI+Cis8dGl0bGU+UkVBRE1FIC0gTWljcm9zb2Z0IEZyb250UGFnZSAyMDAwIFNlcnZlciBFeHRlbnNpb25zPC90aXRsZT4KKzxtZXRhIG5hbWU9Ik1pY3Jvc29mdCBUaGVtZSIgY29udGVudD0ibm9uZSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxmb250IGZhY2U9IlZlcmRhbmEiPgorPGgxPjxhIG5hbWU9InRvcCI+TWljcm9zb2Z0IEZyb250UGFnZSAyMDAwIFNlcnZlciBFeHRlbnNpb25zLCBVTklYPC9hPjwvaDE+CisKKzxmb250IHNpemU9IjIiPjxpPiZjb3B5OyBDb3B5cmlnaHQgTWljcm9zb2Z0IENvcnBvcmF0aW9uLCAxOTk5Jm5ic3A7PC9pPjwvZm9udD4KKworCis8cD5UaGUgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb25zIGFyZSBhIHNldCBvZiBwcm9ncmFtcyBvbiB0aGUgV2ViIHNlcnZlciB0aGF0IHN1cHBvcnQ6IAorCis8L3A+Cis8dWw+Cis8bGk+QXV0aG9yaW5nIEZyb250UGFnZSB3ZWJzPC9saT4KKyAgPGxpPkFkbWluaXN0ZXJpbmcgRnJvbnRQYWdlIHdlYnM8L2xpPgorICA8bGk+QnJvd3NlLXRpbWUgRnJvbnRQYWdlIHdlYiBmdW5jdGlvbmFsaXR5PC9saT4KKzwvdWw+Cis8aDI+Q29udGVudHMmbmJzcDs8L2gyPgorCis8YSBocmVmPSIjcmVsbm90ZXMiPlJlbGVhc2UgTm90ZXM8L2E+PGJyPjxhIGhyZWY9IiNtb3JlaW5mbyI+UmVzb3VyY2VzIGZvciBNb3JlIEluZm9ybWF0aW9uPC9hPgorPHA+Jm5ic3A7PC9wPgorPGhyPgorPGgyPjxhIG5hbWU9InJlbG5vdGVzIj5SZWxlYXNlIE5vdGVzPC9hPjwvaDI+CisKKzxwPlRoaXMgc2VjdGlvbiBwcm92aWRlcyBjb21wbGVtZW50YXJ5IG9yIGxhdGUtYnJlYWtpbmcgCitpbmZvcm1hdGlvbiB0byBzdXBwbGVtZW50IHRoZSBNaWNyb3NvZnQgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb25zIGRvY3VtZW50YXRpb24uPC9wPgorCis8cD48YSBocmVmPSIjYXBhY2hlIj5BcGFjaGUgMS4zLjQgU3VwcG9ydDwvYT48YnI+PGEgaHJlZj0iI3VwZ3JhZGluZyI+VXBncmFkaW5nIGZyb20gcHJldmlvdXMgdmVyc2lvbiBvZiBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnM8L2E+PGJyPjxhIGhyZWY9IiNleGVjdXRhYmxlcyI+VXBsb2FkaW5nIGZpbGVzIGludG8gZXhlY3V0YWJsZSBmb2xkZXJzPC9hPjwvcD4KKworCis8cCBhbGlnbj0icmlnaHQiPjxmb250IHNpemU9IjEiPjxhIGhyZWY9IiN0b3AiPlRvcCBvZiBQYWdlPC9hPjwvZm9udD48L3A+CisKKworPGgzPjxhIG5hbWU9ImFwYWNoZSI+QXBhY2hlIDEuMy40IFN1cHBvcnQ8L2E+PC9oMz4KKworPHA+WW91IG5lZWQgdG8gdGFrZSBzb21lIHNwZWNpYWwgc3RlcHMgdG8gcnVuIHRoZSBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMgd2l0aCBBcGFjaGUgMS4zLjQuCitGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMgZXhwZWN0IHRvIGZpbmQgYWxsIHJlc291cmNlIGRpcmVjdGl2ZXMgaW4gdGhlIG1haW4gc2VydmVyIAorY29uZmlndXJhdGlvbiBmaWxlLCB1c3VhbGx5IGh0dHAuY29uZi4gVG8gcHJldmVudCB0aGUgc2VydmVyIGV4dGVuc2lvbnMgZnJvbSB1c2luZyBhbnkgc2Vjb25kYXJ5Citjb25maWd1cmF0aW9uIGZpbGVzIChhY2Nlc3MuY29uZiwgc3JtLmNvbmYpLCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lcyB0byBodHRwLmNvbmY6PC9wPgorCisKKzwvZm9udD4KKzxibG9ja3F1b3RlPgorICA8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CitSZXNvdXJjZUNvbmZpZyAvZGV2L251bGwmbmJzcDs8YnI+CitBY2Nlc3NDb25maWcgL2Rldi9udWxsPC9mb250PgorPC9ibG9ja3F1b3RlPgorPGZvbnQgZmFjZT0iVmVyZGFuYSI+CisKKworPHA+SWYgeW91IGhhdmUgc29tZSBzZXR0aW5ncyBzdG9yZWQgaW4gc2Vjb25kYXJ5IGNvbmZpZ3VyYXRpb24gZmlsZXMsIG1vdmUgdGhlbSB0byBodHRwLmNvbmYuPC9wPgorCis8cD5Zb3UgbXVzdCBzdG9wIGFuZCByZXN0YXJ0IHRoZSB3ZWIgc2VydmVyIGZvciB5b3VyIGNoYW5nZXMgdG8gaHR0cC5jb25mIHRvIHRha2UgZWZmZWN0LjwvcD4KKworCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI3JlbG5vdGVzIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKworPGgzPjxhIG5hbWU9InVwZ3JhZGluZyI+VXBncmFkaW5nIGZyb20gcHJldmlvdXMgdmVyc2lvbiBvZiBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnM8L2E+PC9oMz4KKworPHA+Q3VzdG9tIGVudHJpZXMgaW4gZnJvbnRwYWdlLmNuZiBhcmUgbm90IG1pZ3JhdGVkIHRvIEZyb250UGFnZSAyMDAwLjwvcD4KKworPHA+V2hlbiB5b3UgaW5zdGFsbCBGcm9udFBhZ2UgMjAwMCBTZXJ2ZXIgRXh0ZW5zaW9ucywgYSBuZXcgZnJvbnRwYWdlLmNuZiBmaWxlIGlzIGNyZWF0ZWQgaW4gdGhlIC91c3IvbG9jYWwvZnJvbnRwYWdlL3ZlcnNpb240LjAgZGlyZWN0b3J5LiAKK0FueSBjdXN0b20gc2V0dGluZ3Mgc3RvcmVkIGluIGEgcHJldmlvdXMtdmVyc2lvbiBmcm9udHBhZ2UuY25mIGFyZSBub3QgdXNlZC4gSG93ZXZlciwgeW91IGNhbiBjb3B5IAoreW91ciBjdXN0b20gc2V0dGluZ3MgZnJvbSB0aGUgcHJldmlvdXMtdmVyc2lvbiBmcm9udHBhZ2UuY25mIGZpbGUgYWZ0ZXIgeW91IGluc3RhbGwgdGhlIEZyb250UGFnZSAyMDAwIFNlcnZlciBFeHRlbnNpb25zLjwvcD4KKworPHA+RG8gbm90IG92ZXJ3cml0ZSB0aGUgRnJvbnRQYWdlIDIwMDAgZnJvbnRwYWdlLmNuZiBmaWxlIHdpdGggYSBmcm9udHBhZ2UuY25mIGZpbGUgZnJvbSBhbiAKK2VhcmxpZXIgdmVyc2lvbiBvZiB0aGUgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb25zLjwvcD4KKworCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI3JlbG5vdGVzIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKworPGgzPjxhIG5hbWU9ImV4ZWN1dGFibGVzIj5VcGxvYWRpbmcgZmlsZXMgaW50byBleGVjdXRhYmxlIGZvbGRlcnM8L2E+PC9oMz4KKworCis8cD5BZnRlciB1cGdyYWRpbmcgdG8gRnJvbnRQYWdlIDIwMDAsIEZyb250UGFnZSBhdXRob3JzIHdpbGwgbm90IGJlIGFibGUgdG8gdXBsb2FkIGZpbGVzIGludG8KK2V4ZWN1dGFibGUgZm9sZGVycy4gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIHRoZSBkZWZhdWx0IHNldHRpbmcgb24gRnJvbnRQYWdlIDIwMDAgd2VicyBkb2VzIG5vdCAKK2FsbG93IGF1dGhvcnMgdG8gdXBsb2FkIGV4ZWN1dGFibGUgZmlsZXMgaW50byBleGVjdXRhYmxlIGZvbGRlcnMgaW4gYSBGcm9udFBhZ2Ugd2ViLiBUaGlzIAorc2V0dGluZyBwcm90ZWN0cyBzZXJ2ZXJzIHNvIHRoYXQgYXV0aG9ycyBkbyBub3QgaW5hZHZlcnRlbnRseSB1cGxvYWQgYSBwcm9ncmFtIGNvbnRhaW5pbmcgYSBidWcgCitvciBhIHZpcnVzLjwvcD4gCisKKzxwPlRvIGFsbG93IEZyb250UGFnZSBhdXRob3JzIHRvIHVwbG9hZCBleGVjdXRhYmxlcywgc2V0IHRoZSBOb0V4ZWN1dGFibGVDZ2lVcGxvYWQgY29uZmlndXJhdGlvbiAKK3ZhcmlhYmxlIHRvIHplcm8gKDApLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb24gY29uZmlndXJhdGlvbiB2YXJpYWJsZXMsIAorc2VlIHRoZSBGcm9udFBhZ2UgMjAwMCBTZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQgYXQgPGEgaHJlZj0iaHR0cDovL29mZmljZXVwZGF0ZS5taWNyb3NvZnQuY29tL2Zyb250cGFnZS93cHAvc2Vyay8iPmh0dHA6Ly9vZmZpY2V1cGRhdGUubWljcm9zb2Z0LmNvbS9mcm9udHBhZ2Uvd3BwL3NlcmsvPC9hPi48L3A+CisKKworCis8cCBhbGlnbj0icmlnaHQiPjxmb250IHNpemU9IjEiPjxhIGhyZWY9IiNyZWxub3RlcyI+VG9wIG9mIFNlY3Rpb248L2E+PC9mb250PjwvcD4KKworCisKKzxocj4KKzxoMj48YSBuYW1lPSJtb3JlaW5mbyI+UmVzb3VyY2VzIGZvciBNb3JlIEluZm9ybWF0aW9uPC9hPjwvaDI+CisKKzxwPlRoaXMgc2VjdGlvbiBsaXN0cyBzb3VyY2VzIG9mIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlCitGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMuPC9wPgorCis8cD48YSBocmVmPSIjc2VyayI+U2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0PC9hPjxicj48YSBocmVmPSIjc2Vya3VwZGF0ZSI+U2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0IFVwZGF0ZTwvYT48YnI+PGEgaHJlZj0iI2tiIj5Lbm93bGVkZ2UgQmFzZTwvYT48L3A+CisKKworPHAgYWxpZ249InJpZ2h0Ij48Zm9udCBzaXplPSIxIj48YSBocmVmPSIjdG9wIj5Ub3Agb2YgUGFnZTwvYT48L2ZvbnQ+PC9wPgorCisKKzxoMz48YSBuYW1lPSJzZXJrIj5TZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQ8L2E+PC9oMz4KKworPHA+VGhlIEZyb250UGFnZSAyMDAwIFNlcnZlciBFeHRlbnNpb25zIGluY2x1ZGUgYSBmdWxsIHNldCBvZiBkb2N1bWVudGF0aW9uOiB0aGUgU2VydmVyCitFeHRlbnNpb25zIFJlc291cmNlIEtpdC4gVGhpcyBpcyBhbiBIVE1MIGRvY3VtZW50IGluc3RhbGxlZCBvbiB0aGUgc2VydmVyIG1hY2hpbmUgKGJ5CitkZWZhdWx0KSBpbiAvdXNyL2xvY2FsL2Zyb250cGFnZS92ZXJzaW9uNC4wL3NlcmsuIFRvIHZpZXcgdGhlIFNlcnZlciBFeHRlbnNpb25zIFJlc291cmNlCitLaXQsIG9wZW4gL3Vzci9sb2NhbC9mcm9udHBhZ2UvdmVyc2lvbjQuMC9zZXJrL2RlZmF1bHQuaHRtIGluIHlvdXIgV2ViIGJyb3dzZXIuPC9wPgorCis8cD5UaGUgU2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0IGNvbnRhaW5zIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGluc3RhbGxpbmcgYW5kCithZG1pbmlzdGVyaW5nIHRoZSBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMgYWxvbmcgd2l0aCBhbiBvdmVydmlldyBvZiB0aGUgU2VydmVyCitFeHRlbnNpb25zLCBhIGRldGFpbGVkIGRpc2N1c3Npb24gb2YgU2VydmVyIEV4dGVuc2lvbnMgc2VjdXJpdHkgb24gVU5JWCBhbmQgV2luZG93cywKK3Ryb3VibGVzaG9vdGluZyBpbmZvcm1hdGlvbiwgYW5kIGEgZnVsbCBzZXQgb2YgYXBwZW5kaXhlcy48L3A+CisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI21vcmVpbmZvIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKzxoMz48YSBuYW1lPSJzZXJrdXBkYXRlIj5TZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQgVXBkYXRlPC9hPjwvaDM+CisKKzxwPkZvciB1cGRhdGVkIGluZm9ybWF0aW9uIGFib3V0IGluc3RhbGxpbmcsIHNldHRpbmcgdXAsIGFuZCBhZG1pbmlzdHJhdGluZyB0aGUgRnJvbnRQYWdlIFNlcnZlciAKK0V4dGVuc2lvbnMsIHNlZSB0aGUgU2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0IFVwZGF0ZSBhdDogPGEgaHJlZj0iaHR0cDovL29mZmljZXVwZGF0ZS5taWNyb3NvZnQuY29tL2Zyb250cGFnZS93cHAvc2Vyay8iPmh0dHA6Ly9vZmZpY2V1cGRhdGUubWljcm9zb2Z0LmNvbS9mcm9udHBhZ2Uvd3BwL3NlcmsvPC9hPi48L3A+CisKKworPHAgYWxpZ249InJpZ2h0Ij48Zm9udCBzaXplPSIxIj48YSBocmVmPSIjbW9yZWluZm8iPlRvcCBvZiBTZWN0aW9uPC9hPjwvZm9udD48L3A+CisKKworPGgzPjxhIG5hbWU9ImtiIj5NaWNyb3NvZnQgS25vd2xlZGdlIEJhc2U8L2E+PC9oMz4KKworPHA+Rm9yIGZ1cnRoZXIgdGVjaG5pY2FsIGluZm9ybWF0aW9uIG9uIEZyb250UGFnZSwgcGxlYXNlIGNvbnN1bHQgU3VwcG9ydCBPbmxpbmUuIFVzZSBTdXBwb3J0CitPbmxpbmUgdG8gZWFzaWx5IHNlYXJjaCBNaWNyb3NvZnQgUHJvZHVjdCBTdXBwb3J0IFNlcnZpY2VzJyBjb2xsZWN0aW9uIG9mIHJlc291cmNlcyBpbmNsdWRpbmcgCit0ZWNobmljYWwgYXJ0aWNsZXMgZnJvbSBNaWNyb3NvZnQncyBleHRlbnNpdmUgS25vd2xlZGdlIEJhc2UsIEZBUXMsICZhbXA7IHRyb3VibGVzaG9vdGVycyB0byBmaW5kIAorZmFzdCwgYWNjdXJhdGUgYW5zd2Vycy4gWW91IGNhbiBhbHNvIGN1c3RvbWl6ZSB0aGUgc2l0ZSB0byBjb250cm9sIHlvdXIgc2VhcmNoIHVzaW5nIGVpdGhlciAKK2tleXdvcmRzIG9yIHRoZSBzaXRlJ3MgbmF0dXJhbCBsYW5ndWFnZSBzZWFyY2ggZW5naW5lLCB3aGljaCB1c2VzIG5vcm1hbCBldmVyeWRheSBsYW5ndWFnZSBmb3IgCithbnN3ZXJpbmcgaW5xdWlyaWVzLCBzbyB5b3UgY2FuIHdyaXRlIHlvdXIgcXVlc3Rpb24gaW4geW91ciBvd24gd29yZHMuIFRvIGJlZ2luLCBnbyB0bworPGEgaHJlZj0iaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9zdXBwb3J0LyI+aHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9zdXBwb3J0LzwvYT4uPC9wPiAgCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI21vcmVpbmZvIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKzxwPiZuYnNwOzwvcD4gIAorCis8L2ZvbnQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2ZwNDAuaHRtLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZnA0MC5odG0uZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYjM4OGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2ZwNDAuaHRtLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9IVE1ML2ZwNDAuaHRtOjE1MzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IG5vIG5hbWUKK3RlY2huaWNhbCBhcnRpY2xlcyBmcm9tIE1pY3Jvc29mdCdzIGV4dGVuc2l2ZSBLbm93bGVkZ2UgQmFzZSwgRkFRcywgJiB0cm91Ymxlc2hvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2ZwNDAuaHRtLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvZnA0MC5odG0uc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNzc3OTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2ZwNDAuaHRtLnNheApAQCAtMCwwICsxLDQ2MyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoaHRtbCwgLS8vSUVURi8vRFREIEhUTUwvL0VOLCApCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KG1ldGEsIG5hbWU9J0dFTkVSQVRPUicsIGNvbnRlbnQ9J01pY3Jvc29mdCBGcm9udFBhZ2UgNC4wJykKK1NBWC5lbmRFbGVtZW50KG1ldGEpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhSRUFETUUgLSBNaWNyb3NvZnQgRnJvbnRQYWdlIDIsIDUxKQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQobWV0YSwgbmFtZT0nTWljcm9zb2Z0IFRoZW1lJywgY29udGVudD0nbm9uZScpCitTQVguZW5kRWxlbWVudChtZXRhKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChoMSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgbmFtZT0ndG9wJykKK1NBWC5jaGFyYWN0ZXJzKE1pY3Jvc29mdCBGcm9udFBhZ2UgMjAwMCBTZXJ2ZSwgNDgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaDEpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJykKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5jaGFyYWN0ZXJzKCZjb3B5OyBDb3B5cmlnaHQgTWljcm9zb2Z0IENvciwgNDApCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguZW5kRWxlbWVudChpKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKFRoZSBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbiwgODgpCitTQVguZW5kRWxlbWVudChwKQorU0FYLnN0YXJ0RWxlbWVudCh1bCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGxpKQorU0FYLmNoYXJhY3RlcnMoQXV0aG9yaW5nIEZyb250UGFnZSB3ZWJzLCAyNCkKK1NBWC5lbmRFbGVtZW50KGxpKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobGkpCitTQVguY2hhcmFjdGVycyhBZG1pbmlzdGVyaW5nIEZyb250UGFnZSB3ZWJzLCAyOCkKK1NBWC5lbmRFbGVtZW50KGxpKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobGkpCitTQVguY2hhcmFjdGVycyhCcm93c2UtdGltZSBGcm9udFBhZ2Ugd2ViIGZ1bmMsIDM5KQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHVsKQorU0FYLmNoYXJhY3RlcnMoCisKKworLCAzKQorU0FYLnN0YXJ0RWxlbWVudChoMikKK1NBWC5jaGFyYWN0ZXJzKENvbnRlbnRzLCA4KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmVuZEVsZW1lbnQoaDIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjcmVsbm90ZXMnKQorU0FYLmNoYXJhY3RlcnMoUmVsZWFzZSBOb3RlcywgMTMpCitTQVguZW5kRWxlbWVudChhKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9JyNtb3JlaW5mbycpCitTQVguY2hhcmFjdGVycyhSZXNvdXJjZXMgZm9yIE1vcmUgSW5mb3JtYXRpb24sIDMwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChocikKK1NBWC5lbmRFbGVtZW50KGhyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGgyKQorU0FYLnN0YXJ0RWxlbWVudChhLCBuYW1lPSdyZWxub3RlcycpCitTQVguY2hhcmFjdGVycyhSZWxlYXNlIE5vdGVzLCAxMykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChoMikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhUaGlzIHNlY3Rpb24gcHJvdmlkZXMgY29tcGxlbWUsIDEzNikKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjYXBhY2hlJykKK1NBWC5jaGFyYWN0ZXJzKEFwYWNoZSAxLjMuNCBTdXBwb3J0LCAyMCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nI3VwZ3JhZGluZycpCitTQVguY2hhcmFjdGVycyhVcGdyYWRpbmcgZnJvbSBwcmV2aW91cyB2ZXJzaW8sIDYyKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjZXhlY3V0YWJsZXMnKQorU0FYLmNoYXJhY3RlcnMoVXBsb2FkaW5nIGZpbGVzIGludG8gZXhlY3V0YWJsLCAzOSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisKKworLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwLCBhbGlnbj0ncmlnaHQnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nI3RvcCcpCitTQVguY2hhcmFjdGVycyhUb3Agb2YgUGFnZSwgMTEpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCissIDMpCitTQVguc3RhcnRFbGVtZW50KGgzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBuYW1lPSdhcGFjaGUnKQorU0FYLmNoYXJhY3RlcnMoQXBhY2hlIDEuMy40IFN1cHBvcnQsIDIwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGgzKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKFlvdSBuZWVkIHRvIHRha2Ugc29tZSBzcGVjaWFsICwgMzYwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYmxvY2txdW90ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J0NvdXJpZXIgTmV3JykKK1NBWC5jaGFyYWN0ZXJzKAorUmVzb3VyY2VDb25maWcgL2Rldi9udWxsLCAyNSkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorQWNjZXNzQ29uZmlnIC9kZXYvbnVsbCwgMjMpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChibG9ja3F1b3RlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEnKQorU0FYLmNoYXJhY3RlcnMoCisKKworLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoSWYgeW91IGhhdmUgc29tZSBzZXR0aW5ncyBzdG9yLCA5MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoWW91IG11c3Qgc3RvcCBhbmQgcmVzdGFydCB0aGUgLCA4NikKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCisKKywgNCkKK1NBWC5zdGFydEVsZW1lbnQocCwgYWxpZ249J3JpZ2h0JykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9JyNyZWxub3RlcycpCitTQVguY2hhcmFjdGVycyhUb3Agb2YgU2VjdGlvbiwgMTQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCisKKywgNCkKK1NBWC5zdGFydEVsZW1lbnQoaDMpCitTQVguc3RhcnRFbGVtZW50KGEsIG5hbWU9J3VwZ3JhZGluZycpCitTQVguY2hhcmFjdGVycyhVcGdyYWRpbmcgZnJvbSBwcmV2aW91cyB2ZXJzaW8sIDYyKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGgzKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKEN1c3RvbSBlbnRyaWVzIGluIGZyb250cGFnZS5jbiwgNjcpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKFdoZW4geW91IGluc3RhbGwgRnJvbnRQYWdlIDIwMCwgMzU5KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhEbyBub3Qgb3ZlcndyaXRlIHRoZSBGcm9udFBhZ2UsIDE0MSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCisKKywgNCkKK1NBWC5zdGFydEVsZW1lbnQocCwgYWxpZ249J3JpZ2h0JykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9JyNyZWxub3RlcycpCitTQVguY2hhcmFjdGVycyhUb3Agb2YgU2VjdGlvbiwgMTQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCisKKywgNCkKK1NBWC5zdGFydEVsZW1lbnQoaDMpCitTQVguc3RhcnRFbGVtZW50KGEsIG5hbWU9J2V4ZWN1dGFibGVzJykKK1NBWC5jaGFyYWN0ZXJzKFVwbG9hZGluZyBmaWxlcyBpbnRvIGV4ZWN1dGFibCwgMzkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaDMpCitTQVguY2hhcmFjdGVycygKKworCissIDMpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhBZnRlciB1cGdyYWRpbmcgdG8gRnJvbnRQYWdlIDIsIDM4NSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKFRvIGFsbG93IEZyb250UGFnZSBhdXRob3JzIHRvICwgMjQ5KQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vb2ZmaWNldXBkYXRlLm1pY3Jvc29mdC5jb20vZnJvbnRwYWdlL3dwcC9zZXJrLycpCitTQVguY2hhcmFjdGVycyhodHRwOi8vb2ZmaWNldXBkYXRlLm1pY3Jvc29mdC4sIDUzKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKC4sIDEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisKKworCissIDQpCitTQVguc3RhcnRFbGVtZW50KHAsIGFsaWduPSdyaWdodCcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjcmVsbm90ZXMnKQorU0FYLmNoYXJhY3RlcnMoVG9wIG9mIFNlY3Rpb24sIDE0KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisKKworCissIDQpCitTQVguc3RhcnRFbGVtZW50KGhyKQorU0FYLmVuZEVsZW1lbnQoaHIpCitTQVguY2hhcmFjdGVycygKKworCisKKywgNCkKK1NBWC5zdGFydEVsZW1lbnQoaDIpCitTQVguc3RhcnRFbGVtZW50KGEsIG5hbWU9J21vcmVpbmZvJykKK1NBWC5jaGFyYWN0ZXJzKFJlc291cmNlcyBmb3IgTW9yZSBJbmZvcm1hdGlvbiwgMzApCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaDIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoVGhpcyBzZWN0aW9uIGxpc3RzIHNvdXJjZXMgb2YgLCA4NSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjc2VyaycpCitTQVguY2hhcmFjdGVycyhTZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQsIDMwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjc2Vya3VwZGF0ZScpCitTQVguY2hhcmFjdGVycyhTZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQsIDM3KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScja2InKQorU0FYLmNoYXJhY3RlcnMoS25vd2xlZGdlIEJhc2UsIDE0KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCissIDMpCitTQVguc3RhcnRFbGVtZW50KHAsIGFsaWduPSdyaWdodCcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjdG9wJykKK1NBWC5jaGFyYWN0ZXJzKFRvcCBvZiBQYWdlLCAxMSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoaDMpCitTQVguc3RhcnRFbGVtZW50KGEsIG5hbWU9J3NlcmsnKQorU0FYLmNoYXJhY3RlcnMoU2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0LCAzMCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChoMykKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhUaGUgRnJvbnRQYWdlIDIwMDAgU2VydmVyIEV4dGUsIDMzOSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoVGhlIFNlcnZlciBFeHRlbnNpb25zIFJlc291cmNlLCAzMTIpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQocCwgYWxpZ249J3JpZ2h0JykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9JyNtb3JlaW5mbycpCitTQVguY2hhcmFjdGVycyhUb3Agb2YgU2VjdGlvbiwgMTQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCissIDMpCitTQVguc3RhcnRFbGVtZW50KGgzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBuYW1lPSdzZXJrdXBkYXRlJykKK1NBWC5jaGFyYWN0ZXJzKFNlcnZlciBFeHRlbnNpb25zIFJlc291cmNlIEtpdCwgMzcpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaDMpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoRm9yIHVwZGF0ZWQgaW5mb3JtYXRpb24gYWJvdXQgLCAxNTcpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9vZmZpY2V1cGRhdGUubWljcm9zb2Z0LmNvbS9mcm9udHBhZ2Uvd3BwL3NlcmsvJykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9vZmZpY2V1cGRhdGUubWljcm9zb2Z0LiwgNTMpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoLiwgMSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKworCissIDMpCitTQVguc3RhcnRFbGVtZW50KHAsIGFsaWduPSdyaWdodCcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScjbW9yZWluZm8nKQorU0FYLmNoYXJhY3RlcnMoVG9wIG9mIFNlY3Rpb24sIDE0KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisKKworLCAzKQorU0FYLnN0YXJ0RWxlbWVudChoMykKK1NBWC5zdGFydEVsZW1lbnQoYSwgbmFtZT0na2InKQorU0FYLmNoYXJhY3RlcnMoTWljcm9zb2Z0IEtub3dsZWRnZSBCYXNlLCAyNCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChoMykKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhGb3IgZnVydGhlciB0ZWNobmljYWwgaW5mb3JtYXQsIDI1NCkKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBubyBuYW1lCitTQVguY2hhcmFjdGVycygmYW1wOywgMSkKK1NBWC5jaGFyYWN0ZXJzKCB0cm91Ymxlc2hvb3RlcnMgdG8gZmluZCAKK2Zhc3QsIDMwMikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9zdXBwb3J0LycpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc3VwcG9ydC5taWNyb3NvZnQuY29tL3MsIDM3KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKC4sIDEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoICAKKworLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwLCBhbGlnbj0ncmlnaHQnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nI21vcmVpbmZvJykKK1NBWC5jaGFyYWN0ZXJzKFRvcCBvZiBTZWN0aW9uLCAxNCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggIAorCissIDQpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9saWNsb3NlLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2xpY2xvc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGU0ZWRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9saWNsb3NlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD48dGl0bGU+PC90aXRsZT48L2hlYWQ+Cis8Ym9keT4KKzx1bD4KKzxsaT5GaXJzdCBpdGVtCis8L2xpPgorPGxpPlNlY29uZCBpdGVtLCBjbG9zZXMgdGhlIGZpcnN0IG9uZQorPC9saT4KKzwvdWw+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2xpY2xvc2UuaHRtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2xpY2xvc2UuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvbGljbG9zZS5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9saWNsb3NlLmh0bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9saWNsb3NlLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhYmNkZjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2xpY2xvc2UuaHRtbC5zYXgKQEAgLTAsMCArMSwzOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoSFRNTCwgLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudCh1bCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChsaSkKK1NBWC5jaGFyYWN0ZXJzKEZpcnN0IGl0ZW0KKywgMTEpCitTQVguZW5kRWxlbWVudChsaSkKK1NBWC5zdGFydEVsZW1lbnQobGkpCitTQVguY2hhcmFjdGVycyhTZWNvbmQgaXRlbSwgY2xvc2VzIHRoZSBmaXJzdCAsIDM0KQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguZW5kRWxlbWVudCh1bCkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmVuZEVsZW1lbnQoaHRtbCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvbHQuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvbHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTI4MDM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9sdC5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+PGhlYWQ+PG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJSb290ICZsdDtyb290QGFvbC5jb20mZ3Q7Ij48L2hlYWQ+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9sdC5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvbHQuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvbHQuaHRtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvbHQuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2x0Lmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YWI1ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML2x0Lmh0bWwuc2F4CkBAIC0wLDAgKzEsMTkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQobWV0YSwgbmFtZT0nQXV0aG9yJywgY29udGVudD0nUm9vdCAmbHQ7cm9vdEBhb2wuY29tJmd0OycpCitTQVguZW5kRWxlbWVudChtZXRhKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9wcmUuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTMwOGI2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHJlLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD48Ym9keT4KKzxwcmU+PGEgaHJlZj0idG90byI+PC9hPjxpbWcgc3JjPSJ0aXRpIj48L3ByZT4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3ByZS5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHJlLmh0bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3ByZS5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9wcmUuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3ByZS5odG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODc4MmI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9wcmUuaHRtbC5zYXgKQEAgLTAsMCArMSwyMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChwcmUpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J3RvdG8nKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J3RpdGknKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmVuZEVsZW1lbnQocHJlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9weXRob24uaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHl0aG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZkYzZhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHl0aG9uLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iLi9jc3MvaHQyaHRtbC5jc3MiIHR5cGU9InRleHQvY3NzIj8+PGh0bWw+Cis8IS0tIFRISVMgUEFHRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gIERPIE5PVCBFRElULiAtLT48aGVhZD48dGl0bGU+UHl0aG9uIFByb2dyYW1taW5nIExhbmd1YWdlPC90aXRsZT48L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHl0aG9uLmh0bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9weXRob24uaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHl0aG9uLmh0bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3B5dGhvbi5odG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcHl0aG9uLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NTUzOWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3B5dGhvbi5odG1sLnNheApAQCAtMCwwICsxLDI5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChodG1sLCAtLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkKQorU0FYLnByb2Nlc3NpbmdJbnN0cnVjdGlvbih4bWwtc3R5bGVzaGVldCwgaHJlZj0iLi9jc3MvaHQyaHRtbC5jc3MiIHR5cGU9InRleHQvY3NzIj8pCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5jb21tZW50KCBUSElTIFBBR0UgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQuICBETyBOT1QgRURJVC4gKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhQeXRob24gUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UsIDI3KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoYm9keSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzEuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmOWYyZTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzEuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPjx0aXRsZT5SZWdyZXNzaW9uIHRlc3QgMTwvdGl0bGU+PC9oZWFkPgorPGJvZHk+Cis8aDE+UmVncmVzc2lvbiB0ZXN0IDE8L2gxPgorPHA+CitPayBmaWxlIG5vIHByb2JsZW0KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMS5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMS5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWcxLmh0bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzEuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzEuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhlZTNhYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMS5odG1sLnNheApAQCAtMCwwICsxLDM2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoaHRtbCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoUmVncmVzc2lvbiB0ZXN0IDEsIDE3KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChoMSkKK1NBWC5jaGFyYWN0ZXJzKFJlZ3Jlc3Npb24gdGVzdCAxLCAxNykKK1NBWC5lbmRFbGVtZW50KGgxKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKK09rIGZpbGUgbm8gcHJvYmxlbQorLCAyMCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWcyLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzEyMDI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWcyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD48dGl0bGU+UmVncmVzc2lvbiB0ZXN0IDI8L3RpdGxlPjwvaGVhZD4KKzxib2R5PgorPGgxPlJlZ3Jlc3Npb24gdGVzdCAyPC9oMT4KKzxwPgorQXV0b2Nsb3NlIG9mIHRhZyBQCis8L3A+Cis8cD4KK09rIGZpbGUgbm8gcHJvYmxlbQorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWcyLmh0bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWcyLmh0bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzIuaHRtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMi5odG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMi5odG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODU2OTFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWcyLmh0bWwuc2F4CkBAIC0wLDAgKzEsNDEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhSZWdyZXNzaW9uIHRlc3QgMiwgMTcpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGgxKQorU0FYLmNoYXJhY3RlcnMoUmVncmVzc2lvbiB0ZXN0IDIsIDE3KQorU0FYLmVuZEVsZW1lbnQoaDEpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorQXV0b2Nsb3NlIG9mIHRhZyBQCissIDIwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorT2sgZmlsZSBubyBwcm9ibGVtCissIDIwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzMuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMWJjMWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPjx0aXRsZT5SZWdyZXNzaW9uIHRlc3QgMzwvdGl0bGU+PC9oZWFkPgorPGJvZHk+Cis8aDE+UmVncmVzc2lvbiB0ZXN0IDM8L2gxPgorPHA+CitBdXRvY2xvc2Ugb2YgdGFnIFAKKzwvcD4KKzxocj4KKzxwPgorT2sgZmlsZSBubyBwcm9ibGVtCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzMuaHRtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzMuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnMy5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWczLmh0bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWczLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMGYwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzMuaHRtbC5zYXgKQEAgLTAsMCArMSw0NSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKFJlZ3Jlc3Npb24gdGVzdCAzLCAxNykKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGJvZHkpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoaDEpCitTQVguY2hhcmFjdGVycyhSZWdyZXNzaW9uIHRlc3QgMywgMTcpCitTQVguZW5kRWxlbWVudChoMSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCitBdXRvY2xvc2Ugb2YgdGFnIFAKKywgMjApCitTQVguZW5kRWxlbWVudChwKQorU0FYLnN0YXJ0RWxlbWVudChocikKK1NBWC5lbmRFbGVtZW50KGhyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKK09rIGZpbGUgbm8gcHJvYmxlbQorLCAyMCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWc0Lmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmE2YWI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWc0Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD48dGl0bGU+UmVncmVzc2lvbiB0ZXN0IDQ8L3RpdGxlPjwvaGVhZD4KKzxib2R5PgorPGgxPlJlZ3Jlc3Npb24gdGVzdCA0PC9oMT4KKzxwPgorV3JvbmcgY2xvc2Ugb2YgdGFnIFAKKzwvcD4KKzxocj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnNC5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnNC5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTE1ZjcwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZWc0Lmh0bWwuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L0hUTUwvcmVnNC5odG1sOjEwOiBIVE1MIHBhcnNlciBlcnJvciA6IFVuZXhwZWN0ZWQgZW5kIHRhZyA6IHAKKzwvcD4KKyAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzQuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlZzQuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM1MTQ3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVnNC5odG1sLnNheApAQCAtMCwwICsxLDQzIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoaHRtbCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoUmVncmVzc2lvbiB0ZXN0IDQsIDE3KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChoMSkKK1NBWC5jaGFyYWN0ZXJzKFJlZ3Jlc3Npb24gdGVzdCA0LCAxNykKK1NBWC5lbmRFbGVtZW50KGgxKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKK1dyb25nIGNsb3NlIG9mIHRhZyBQCissIDIyKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5zdGFydEVsZW1lbnQoaHIpCitTQVguZW5kRWxlbWVudChocikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVycm9yOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBwCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlcGVhdC5odG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZXBlYXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTBjNjZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZXBlYXQuaHRtbApAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzxodG1sPjxib2R5PgorPHRkPjwvdGQ+Cis8dGQ+PCEtLSA8YT48Yj4gLS0+PC90ZD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlcGVhdC5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvcmVwZWF0Lmh0bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlcGVhdC5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZXBlYXQuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3JlcGVhdC5odG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGJmMzVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9yZXBlYXQuaHRtbC5zYXgKQEAgLTAsMCArMSwxNCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguc3RhcnRFbGVtZW50KGJvZHkpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmNvbW1lbnQoIDxhPjxiPiApCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQoYm9keSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9zY3JpcHQuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA4NzIzZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Lmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPjx0aXRsZT5TY3JpcHQgdGVzdHM8L3RpdGxlPjwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+CisgICAgaWYgKHdpbmRvdy5vcGVuPG1heCkgOworPC9zY3JpcHQ+PGlucHV0IG9uY2xpY2s9ImlmKHdpbmRvdy5vcGVuJmx0O21heCk7Ij4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Lmh0bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9zY3JpcHQuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Lmh0bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3NjcmlwdC5odG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Lmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNTlmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3NjcmlwdC5odG1sLnNheApAQCAtMCwwICsxLDMyIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoaHRtbCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKFNjcmlwdCB0ZXN0cywgMTIpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChzY3JpcHQsIGxhbmd1YWdlPSdqYXZhc2NyaXB0JykKK1NBWC5jZGF0YSgKKyAgICBpZiAod2luZG93Lm9wZW4mbHQ7bWF4KSA7LCAyOCkKK1NBWC5lbmRFbGVtZW50KHNjcmlwdCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChpbnB1dCwgb25jbGljaz0naWYod2luZG93Lm9wZW4mbHQ7bWF4KTsnKQorU0FYLmVuZEVsZW1lbnQoaW5wdXQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3NjcmlwdDIuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiZTRmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3NjcmlwdDIuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKzx0aXRsZT5UZXN0IFBhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJwb3J0YWwiPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCWRvY3VtZW4ud3JpdGUoIlDFmcOtbGnFoSDFvmx1xaVvdcSNa8O9IGvFr8WIIMO6cMSbbCDEj8OhYmVsa3PDqSDDs2R5Iik7Cis8L3NjcmlwdD48cD4KKwlQxZnDrWxpxaEgxb5sdcWlb3XEjWvDvSBrxa/FiCDDunDEm2wgxI/DoWJlbGtzw6kgw7NkeTsKKwk8L3A+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Mi5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Mi5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC9zY3JpcHQyLmh0bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3NjcmlwdDIuaHRtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3NjcmlwdDIuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk3MTk5MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvc2NyaXB0Mi5odG1sLnNheApAQCAtMCwwICsxLDUwIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChodG1sLCAtLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCkKK1NBWC5zdGFydEVsZW1lbnQoaHRtbCwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCisJLCAyKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCisJCSwgMykKK1NBWC5zdGFydEVsZW1lbnQobWV0YSwgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJywgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PVVURi04JykKK1NBWC5lbmRFbGVtZW50KG1ldGEpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhUZXN0IFBhZ2UsIDkpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGRpdiwgaWQ9J3BvcnRhbCcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoc2NyaXB0LCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnKQorU0FYLmNkYXRhKAorCWRvY3VtZW4ud3JpdGUoIlAmIzM0NTssIDc0KQorU0FYLmVuZEVsZW1lbnQoc2NyaXB0KQorU0FYLmNoYXJhY3RlcnMoCisJLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisJUCYjMzQ1OyZpYWN1dGU7bGkmc2Nhcm9uOyAsIDU4KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZGl2KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCisKKywgMikKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3Rlc3QyLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3Rlc3QyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThhMjcxNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdGVzdDIuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPjx0aXRsZT5MaW51eCBUb2RheTwvdGl0bGU+PC9oZWFkPgorPGJvZHkgYmdjb2xvcj0iV2hpdGUiIGxpbms9IkJsdWUiIHRleHQ9IkJsYWNrIiB2bGluaz0iQmxhY2siIGFsaW5rPSJSZWQiPgorCis8Y2VudGVyPgorPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+PHRyIGJnY29sb3I9IiNGRkZGRkYiPgorPHRkIGhlaWdodD0iOTAiPgorPGEgaHJlZj0iaHR0cDovL2xpbnV4dG9kYXkuY29tL2NnaS1iaW4vY2xpY2sucGw/YWRudW09NDkiPjxpbWcgc3JjPSIvcGljcy9kb29yX2xpbnV4LmdpZiIgYm9yZGVyPSIwIiB3aWR0aD0iNDY4IiBoZWlnaHQ9IjYwIiBhbHQ9IkF0aXBhIExpbnV4IHNvbHV0aW9ucy4gWW91ciByZWxpYWJsZSBjbHVzdGVyLCBzZXJ2ZXIsIGFuZCB3b3Jrc3RhdGlvbiBzb2x1dGlvbi4gV2luIGEgRnJlZSBDZWxlcm9uIExpbnV4IFdvcmtzdGF0aW9uISI+PC9hPgorCisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICA8dGQ+Cis8aW1nIHNyYz0iL3BpY3MvbHQuZ2lmIiB2c3BhY2U9IjUiIGFsdD0iTGludXggVG9kYXkgTG9nbyI+PGJyPjxmb250IHNpemU9Ii0xIj48YSBocmVmPSJodHRwOi8vbGludXguY29tIj5saW51eC5jb208L2E+IHBhcnRuZXI8L2ZvbnQ+PHA+PC9wPgorPC90ZD4KKworICAgICAgICA8L3RyPjwvdGFibGU+Cis8Zm9udCBzaXplPSIyIiBmYWNlPSJIZWx2ZXRpY2EiPgorWyA8YSBocmVmPSJodHRwOi8vbGludXh0b2RheS5jb20vIj5oZWFkbGluZXM8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9mZWF0dXJlcy5saW51eHRvZGF5LmNvbS8iPmZlYXR1cmVzPC9hPiB8Cis8YSBocmVmPSJodHRwOi8vY29tbWVyY2lhbC5saW51eHRvZGF5LmNvbS8iPmNvbW1lcmNpYWw8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9zZWN1cml0eS5saW51eHRvZGF5LmNvbS8iPnNlY3VyaXR5PC9hPiB8Cis8YSBocmVmPSJodHRwOi8vam9icy5saW51eHRvZGF5LmNvbS8iPmpvYnM8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS92b2x0LyI+dm9sdDwvYT4gfCAKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS9jb250cmliLnBsIj5jb250cmlidXRlL3N1Ym1pdDwvYT4gfAorPGEgaHJlZj0iaHR0cDovL2xpbnV4dG9kYXkuY29tL2FkdmVydGlzZS8iPmFkdmVydGlzZTwvYT4gfAorPGEgaHJlZj0iaHR0cDovL2xpbnV4dG9kYXkuY29tL3NlYXJjaC5odG1sIj5zZWFyY2g8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS9kaWdlc3RzLyI+c2l0ZSBkaWdlc3RzPC9hPiB8Cis8YSBocmVmPSJodHRwOi8vbGludXh0b2RheS5jb20vbWFpbC1saXN0cyI+bWFpbGluZyBsaXN0czwvYT4gfAorPGEgaHJlZj0iaHR0cDovL2xpbnV4dG9kYXkuY29tL2Fib3V0LyI+YWJvdXQgdXM8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS9saW5rdXMuaHRtbCI+bGluayB1czwvYT4gXTwvZm9udD4KKzwvY2VudGVyPgorPHA+Cis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3Rlc3QyLmh0bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0Mi5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0Mi5odG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0Mi5odG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdGVzdDIuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhiYjA5MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdGVzdDIuaHRtbC5zYXgKQEAgLTAsMCArMSwxNDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KEhUTUwsIC0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4sIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhMaW51eCBUb2RheSwgMTEpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSwgYmdjb2xvcj0nV2hpdGUnLCBsaW5rPSdCbHVlJywgdGV4dD0nQmxhY2snLCB2bGluaz0nQmxhY2snLCBhbGluaz0nUmVkJykKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KGNlbnRlcikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgYm9yZGVyPScwJywgd2lkdGg9JzEwMCUnLCBjZWxsc3BhY2luZz0nMCcsIGNlbGxwYWRkaW5nPScwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KHRyLCBiZ2NvbG9yPScjRkZGRkZGJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgICAgICwgMTcpCitTQVguc3RhcnRFbGVtZW50KHRkLCBoZWlnaHQ9JzkwJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vbGludXh0b2RheS5jb20vY2dpLWJpbi9jbGljay5wbD9hZG51bT00OScpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPScvcGljcy9kb29yX2xpbnV4LmdpZicsIGJvcmRlcj0nMCcsIHdpZHRoPSc0NjgnLCBoZWlnaHQ9JzYwJywgYWx0PSdBdGlwYSBMaW51eCBzb2x1dGlvbnMuIFlvdXIgcmVsaWFibGUgY2x1c3Rlciwgc2VydmVyLCBhbmQgd29ya3N0YXRpb24gc29sdXRpb24uIFdpbiBhIEZyZWUgQ2VsZXJvbiBMaW51eCBXb3Jrc3RhdGlvbiEnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKAorCisgICAgICAgICAgICAgICAgLCAxOCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCkKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9Jy9waWNzL2x0LmdpZicsIHZzcGFjZT0nNScsIGFsdD0nTGludXggVG9kYXkgTG9nbycpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9Jy0xJykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL2xpbnV4LmNvbScpCitTQVguY2hhcmFjdGVycyhsaW51eC5jb20sIDkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoIHBhcnRuZXIsIDgpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisKKyAgICAgICAgLCAxMCkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJywgZmFjZT0nSGVsdmV0aWNhJykKK1NBWC5jaGFyYWN0ZXJzKAorWyAsIDMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9saW51eHRvZGF5LmNvbS8nKQorU0FYLmNoYXJhY3RlcnMoaGVhZGxpbmVzLCA5KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKCB8CissIDMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9mZWF0dXJlcy5saW51eHRvZGF5LmNvbS8nKQorU0FYLmNoYXJhY3RlcnMoZmVhdHVyZXMsIDgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoIHwKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL2NvbW1lcmNpYWwubGludXh0b2RheS5jb20vJykKK1NBWC5jaGFyYWN0ZXJzKGNvbW1lcmNpYWwsIDEwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKCB8CissIDMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9zZWN1cml0eS5saW51eHRvZGF5LmNvbS8nKQorU0FYLmNoYXJhY3RlcnMoc2VjdXJpdHksIDgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoIHwKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL2pvYnMubGludXh0b2RheS5jb20vJykKK1NBWC5jaGFyYWN0ZXJzKGpvYnMsIDQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoIHwKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL2xpbnV4dG9kYXkuY29tL3ZvbHQvJykKK1NBWC5jaGFyYWN0ZXJzKHZvbHQsIDQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoIHwgCissIDQpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9saW51eHRvZGF5LmNvbS9jb250cmliLnBsJykKK1NBWC5jaGFyYWN0ZXJzKGNvbnRyaWJ1dGUvc3VibWl0LCAxNykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyggfAorLCAzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vbGludXh0b2RheS5jb20vYWR2ZXJ0aXNlLycpCitTQVguY2hhcmFjdGVycyhhZHZlcnRpc2UsIDkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoIHwKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL2xpbnV4dG9kYXkuY29tL3NlYXJjaC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKHNlYXJjaCwgNikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyggfAorLCAzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vbGludXh0b2RheS5jb20vZGlnZXN0cy8nKQorU0FYLmNoYXJhY3RlcnMoc2l0ZSBkaWdlc3RzLCAxMikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyggfAorLCAzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vbGludXh0b2RheS5jb20vbWFpbC1saXN0cycpCitTQVguY2hhcmFjdGVycyhtYWlsaW5nIGxpc3RzLCAxMykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyggfAorLCAzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vbGludXh0b2RheS5jb20vYWJvdXQvJykKK1NBWC5jaGFyYWN0ZXJzKGFib3V0IHVzLCA4KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKCB8CissIDMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9saW51eHRvZGF5LmNvbS9saW5rdXMuaHRtbCcpCitTQVguY2hhcmFjdGVycyhsaW5rIHVzLCA3KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKCBdLCAyKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoY2VudGVyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0My5odG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwMzcyM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3Rlc3QzLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD48YmFzZSB0YXJnZXQ9ImNvbnRlbnRzIj48L2hlYWQ+Cis8Ym9keT4KKzxhIG5hbWU9IlByb2JsZW1Eb21haW4uUGFja2FnZSI+PGgyPkNvbXBvbmVudCBQYWNrYWdlIGRpYWdyYW0gUHJvYmxlbURvbWFpbjwvaDI+DQorPC9hPjxwPjwvcD4KKzxocj4KKzxkbD4KKzxkdD4KKzxiPlN0ZXJlb3R5cGUgPC9iPnByb2JsZW0gZG9tYWluPC9kdD4NCis8ZHQ+Cis8Yj5BbGlhcyA8L2I+UHJvYmxlbSBEb21haW48L2R0Pg0KKzxkdD48Yj5Ob3RlIDwvYj48L2R0PgorPGRkPlRoZSBQcm9ibGVtIERvbWFpbiBwYWNrYWdlIGlzIHRoZSBtb2RlbCBiZWhpbmQgdGhlIEh1bWFuIA0KKzxkZD5JbnRlcmZhY2UsIHRoYXRzIHN0b3JlcyBhbmQgbWFuaXB1bGF0ZXMgdGhlIEZhbWlseSBUcmVlLg0KKzwvZGQ+Cis8L2RkPgorPC9kbD4KKzxwPjwvcD4KKzxocj4KKzxkbD4KKzxkdD48aDQ+Q2xhc3MgPGEgaHJlZj0iSHVtYW5JbnRlcmZhY2UuRmFtaWx5RnJhbWUuaHRtbCNIdW1hbkludGVyZmFjZS5GYW1pbHlGcmFtZSI+SHVtYW5JbnRlcmZhY2UuRmFtaWx5RnJhbWU8L2E+Cis8L2g0PjwvZHQ+DQorPGR0PjxoND5DbGFzcyA8YSBocmVmPSJQcm9ibGVtRG9tYWluLkJpcnRoLmh0bWwjUHJvYmxlbURvbWFpbi5CaXJ0aCI+UHJvYmxlbURvbWFpbi5CaXJ0aDwvYT4KKzwvaDQ+PC9kdD4NCis8ZHQ+PGg0PkNsYXNzIDxhIGhyZWY9IlByb2JsZW1Eb21haW4uRGVhdGguaHRtbCNQcm9ibGVtRG9tYWluLkRlYXRoIj5Qcm9ibGVtRG9tYWluLkRlYXRoPC9hPgorPC9oND48L2R0Pg0KKzxkdD48aDQ+Q2xhc3MgPGEgaHJlZj0iUHJvYmxlbURvbWFpbi5EaXZvcmNlLmh0bWwjUHJvYmxlbURvbWFpbi5EaXZvcmNlIj5Qcm9ibGVtRG9tYWluLkRpdm9yY2U8L2E+Cis8L2g0PjwvZHQ+DQorPGR0PjxoND5DbGFzcyA8YSBocmVmPSJQcm9ibGVtRG9tYWluLkZhbWlseS5odG1sI1Byb2JsZW1Eb21haW4uRmFtaWx5Ij5Qcm9ibGVtRG9tYWluLkZhbWlseTwvYT4KKzwvaDQ+PC9kdD4NCis8ZHQ+PGg0PkNsYXNzIDxhIGhyZWY9IlByb2JsZW1Eb21haW4uSW5kaXZpZHVhbC5odG1sI1Byb2JsZW1Eb21haW4uSW5kaXZpZHVhbCI+UHJvYmxlbURvbWFpbi5JbmRpdmlkdWFsPC9hPgorPC9oND48L2R0Pg0KKzxkdD48aDQ+Q2xhc3MgPGEgaHJlZj0iUHJvYmxlbURvbWFpbi5MaWZlRXZlbnQuaHRtbCNQcm9ibGVtRG9tYWluLkxpZmVFdmVudCI+UHJvYmxlbURvbWFpbi5MaWZlRXZlbnQ8L2E+Cis8L2g0PjwvZHQ+DQorPGR0PjxoND5DbGFzcyA8YSBocmVmPSJQcm9ibGVtRG9tYWluLk1hcnJpYWdlLmh0bWwjUHJvYmxlbURvbWFpbi5NYXJyaWFnZSI+UHJvYmxlbURvbWFpbi5NYXJyaWFnZTwvYT4KKzwvaDQ+PC9kdD4NCis8ZHQ+PGg0PkNsYXNzIDxhIGhyZWY9IlByb2JsZW1Eb21haW4uTm90ZS5odG1sI1Byb2JsZW1Eb21haW4uTm90ZSI+UHJvYmxlbURvbWFpbi5Ob3RlPC9hPgorPC9oND48L2R0Pg0KKzwvZGw+Cis8aDQ+PGI+TGlua3M8L2I+PC9oND4NCis8dWw+PGxpPgorPGI+TGluayB0byA8L2I+PGEgaHJlZj0iSHVtYW5JbnRlcmZhY2UuUGFja2FnZS5odG1sI0h1bWFuSW50ZXJmYWNlLlBhY2thZ2UiPkh1bWFuSW50ZXJmYWNlPC9hPgorPC9saT48L3VsPgorPGRpcj48L2Rpcj4KKzx1bD48bGk+Cis8Yj5MaW5rIHRvIDwvYj48YSBocmVmPSJEYXRhTWFuYWdlbWVudC5GbGF0RmlsZS5QYWNrYWdlLmh0bWwjRGF0YU1hbmFnZW1lbnQuRmxhdEZpbGUuUGFja2FnZSI+RGF0YU1hbmFnZW1lbnQuRmxhdEZpbGU8L2E+Cis8L2xpPjwvdWw+Cis8ZGlyPjwvZGlyPgorPHVsPjxsaT4KKzxiPkxpbmsgdG8gPC9iPjxhIGhyZWY9IkRhdGFNYW5hZ2VtZW50LlBhY2thZ2UuaHRtbCNEYXRhTWFuYWdlbWVudC5QYWNrYWdlIj5EYXRhTWFuYWdlbWVudDwvYT4KKzwvbGk+PC91bD4KKzxkaXI+PC9kaXI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3Rlc3QzLmh0bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0My5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzQzNTAzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0My5odG1sLmVycgpAQCAtMCwwICsxLDEyIEBACisuL3Rlc3QvSFRNTC90ZXN0My5odG1sOjY6IEhUTUwgcGFyc2VyIGVycm9yIDogVW5leHBlY3RlZCBlbmQgdGFnIDogcAorPC9hPjxwPjxocj48L3A+CisgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC90ZXN0My5odG1sOjEzOiBIVE1MIHBhcnNlciBlcnJvciA6IFVuZXhwZWN0ZWQgZW5kIHRhZyA6IHAKKzxwPjxocj48L3A+CisgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3Rlc3QzLmh0bWw6Mjc6IEhUTUwgcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogaDQgYW5kIGIKKzxoND48Yj5MaW5rczwvaDQ+PC9iPgorICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC90ZXN0My5odG1sOjI3OiBIVE1MIHBhcnNlciBlcnJvciA6IFVuZXhwZWN0ZWQgZW5kIHRhZyA6IGIKKzxoND48Yj5MaW5rczwvaDQ+PC9iPgorICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC90ZXN0My5odG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdGVzdDMuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlmNjYzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdGVzdDMuaHRtbC5zYXgKQEAgLTAsMCArMSwyMzAgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChiYXNlLCB0YXJnZXQ9J2NvbnRlbnRzJykKK1NBWC5lbmRFbGVtZW50KGJhc2UpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgNCissIDIpCitTQVguZW5kRWxlbWVudChoZWFkKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLnN0YXJ0RWxlbWVudChhLCBuYW1lPSdQcm9ibGVtRG9tYWluLlBhY2thZ2UnKQorU0FYLnN0YXJ0RWxlbWVudChoMikKK1NBWC5jaGFyYWN0ZXJzKENvbXBvbmVudCBQYWNrYWdlIGRpYWdyYW0gUHJvYiwgMzkpCitTQVguZW5kRWxlbWVudChoMikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguZW5kRWxlbWVudChwKQorU0FYLnN0YXJ0RWxlbWVudChocikKK1NBWC5lbmRFbGVtZW50KGhyKQorU0FYLmVycm9yOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBwCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KGRsKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChkdCkKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKFN0ZXJlb3R5cGUgLCAxMSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhwcm9ibGVtIGRvbWFpbiwgMTQpCitTQVguZW5kRWxlbWVudChkdCkKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZHQpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhBbGlhcyAsIDYpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmNoYXJhY3RlcnMoUHJvYmxlbSBEb21haW4sIDE0KQorU0FYLmVuZEVsZW1lbnQoZHQpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KGR0KQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmNoYXJhY3RlcnMoTm90ZSAsIDUpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZHQpCitTQVguc3RhcnRFbGVtZW50KGRkKQorU0FYLmNoYXJhY3RlcnMoVGhlIFByb2JsZW0gRG9tYWluIHBhY2thZ2UgaXMgLCA1OSkKK1NBWC5zdGFydEVsZW1lbnQoZGQpCitTQVguY2hhcmFjdGVycyhJbnRlcmZhY2UsIHRoYXRzIHN0b3JlcyBhbmQgbWEsIDU4KQorU0FYLmVuZEVsZW1lbnQoZGQpCitTQVguZW5kRWxlbWVudChkZCkKK1NBWC5lbmRFbGVtZW50KGRsKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5zdGFydEVsZW1lbnQoaHIpCitTQVguZW5kRWxlbWVudChocikKK1NBWC5lcnJvcjogVW5leHBlY3RlZCBlbmQgdGFnIDogcAorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChkbCkKK1NBWC5jaGFyYWN0ZXJzKA0KKw0KKywgNCkKK1NBWC5zdGFydEVsZW1lbnQoZHQpCitTQVguc3RhcnRFbGVtZW50KGg0KQorU0FYLmNoYXJhY3RlcnMoQ2xhc3MgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdIdW1hbkludGVyZmFjZS5GYW1pbHlGcmFtZS5odG1sI0h1bWFuSW50ZXJmYWNlLkZhbWlseUZyYW1lJykKK1NBWC5jaGFyYWN0ZXJzKEh1bWFuSW50ZXJmYWNlLkZhbWlseUZyYW1lLCAyNikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChoNCkKK1NBWC5lbmRFbGVtZW50KGR0KQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChkdCkKK1NBWC5zdGFydEVsZW1lbnQoaDQpCitTQVguY2hhcmFjdGVycyhDbGFzcyAsIDYpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J1Byb2JsZW1Eb21haW4uQmlydGguaHRtbCNQcm9ibGVtRG9tYWluLkJpcnRoJykKK1NBWC5jaGFyYWN0ZXJzKFByb2JsZW1Eb21haW4uQmlydGgsIDE5KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGg0KQorU0FYLmVuZEVsZW1lbnQoZHQpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KGR0KQorU0FYLnN0YXJ0RWxlbWVudChoNCkKK1NBWC5jaGFyYWN0ZXJzKENsYXNzICwgNikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nUHJvYmxlbURvbWFpbi5EZWF0aC5odG1sI1Byb2JsZW1Eb21haW4uRGVhdGgnKQorU0FYLmNoYXJhY3RlcnMoUHJvYmxlbURvbWFpbi5EZWF0aCwgMTkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaDQpCitTQVguZW5kRWxlbWVudChkdCkKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZHQpCitTQVguc3RhcnRFbGVtZW50KGg0KQorU0FYLmNoYXJhY3RlcnMoQ2xhc3MgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdQcm9ibGVtRG9tYWluLkRpdm9yY2UuaHRtbCNQcm9ibGVtRG9tYWluLkRpdm9yY2UnKQorU0FYLmNoYXJhY3RlcnMoUHJvYmxlbURvbWFpbi5EaXZvcmNlLCAyMSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChoNCkKK1NBWC5lbmRFbGVtZW50KGR0KQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChkdCkKK1NBWC5zdGFydEVsZW1lbnQoaDQpCitTQVguY2hhcmFjdGVycyhDbGFzcyAsIDYpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J1Byb2JsZW1Eb21haW4uRmFtaWx5Lmh0bWwjUHJvYmxlbURvbWFpbi5GYW1pbHknKQorU0FYLmNoYXJhY3RlcnMoUHJvYmxlbURvbWFpbi5GYW1pbHksIDIwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGg0KQorU0FYLmVuZEVsZW1lbnQoZHQpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KGR0KQorU0FYLnN0YXJ0RWxlbWVudChoNCkKK1NBWC5jaGFyYWN0ZXJzKENsYXNzICwgNikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nUHJvYmxlbURvbWFpbi5JbmRpdmlkdWFsLmh0bWwjUHJvYmxlbURvbWFpbi5JbmRpdmlkdWFsJykKK1NBWC5jaGFyYWN0ZXJzKFByb2JsZW1Eb21haW4uSW5kaXZpZHVhbCwgMjQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaDQpCitTQVguZW5kRWxlbWVudChkdCkKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZHQpCitTQVguc3RhcnRFbGVtZW50KGg0KQorU0FYLmNoYXJhY3RlcnMoQ2xhc3MgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdQcm9ibGVtRG9tYWluLkxpZmVFdmVudC5odG1sI1Byb2JsZW1Eb21haW4uTGlmZUV2ZW50JykKK1NBWC5jaGFyYWN0ZXJzKFByb2JsZW1Eb21haW4uTGlmZUV2ZW50LCAyMykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChoNCkKK1NBWC5lbmRFbGVtZW50KGR0KQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChkdCkKK1NBWC5zdGFydEVsZW1lbnQoaDQpCitTQVguY2hhcmFjdGVycyhDbGFzcyAsIDYpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J1Byb2JsZW1Eb21haW4uTWFycmlhZ2UuaHRtbCNQcm9ibGVtRG9tYWluLk1hcnJpYWdlJykKK1NBWC5jaGFyYWN0ZXJzKFByb2JsZW1Eb21haW4uTWFycmlhZ2UsIDIyKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGg0KQorU0FYLmVuZEVsZW1lbnQoZHQpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KGR0KQorU0FYLnN0YXJ0RWxlbWVudChoNCkKK1NBWC5jaGFyYWN0ZXJzKENsYXNzICwgNikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nUHJvYmxlbURvbWFpbi5Ob3RlLmh0bWwjUHJvYmxlbURvbWFpbi5Ob3RlJykKK1NBWC5jaGFyYWN0ZXJzKFByb2JsZW1Eb21haW4uTm90ZSwgMTgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaDQpCitTQVguZW5kRWxlbWVudChkdCkKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5lbmRFbGVtZW50KGRsKQorU0FYLmNoYXJhY3RlcnMoDQorDQorLCA0KQorU0FYLnN0YXJ0RWxlbWVudChoNCkKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKExpbmtzLCA1KQorU0FYLmVycm9yOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBoNCBhbmQgYgorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGg0KQorU0FYLmVycm9yOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBiCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KHVsKQorU0FYLnN0YXJ0RWxlbWVudChsaSkKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKExpbmsgdG8gLCA4KQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nSHVtYW5JbnRlcmZhY2UuUGFja2FnZS5odG1sI0h1bWFuSW50ZXJmYWNlLlBhY2thZ2UnKQorU0FYLmNoYXJhY3RlcnMoSHVtYW5JbnRlcmZhY2UsIDE0KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGxpKQorU0FYLmVuZEVsZW1lbnQodWwpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KGRpcikKK1NBWC5lbmRFbGVtZW50KGRpcikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQodWwpCitTQVguc3RhcnRFbGVtZW50KGxpKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmNoYXJhY3RlcnMoTGluayB0byAsIDgpCitTQVguZW5kRWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdEYXRhTWFuYWdlbWVudC5GbGF0RmlsZS5QYWNrYWdlLmh0bWwjRGF0YU1hbmFnZW1lbnQuRmxhdEZpbGUuUGFja2FnZScpCitTQVguY2hhcmFjdGVycyhEYXRhTWFuYWdlbWVudC5GbGF0RmlsZSwgMjMpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguZW5kRWxlbWVudCh1bCkKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZGlyKQorU0FYLmVuZEVsZW1lbnQoZGlyKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh1bCkKK1NBWC5zdGFydEVsZW1lbnQobGkpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhMaW5rIHRvICwgOCkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J0RhdGFNYW5hZ2VtZW50LlBhY2thZ2UuaHRtbCNEYXRhTWFuYWdlbWVudC5QYWNrYWdlJykKK1NBWC5jaGFyYWN0ZXJzKERhdGFNYW5hZ2VtZW50LCAxNCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChsaSkKK1NBWC5lbmRFbGVtZW50KHVsKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChkaXIpCitTQVguZW5kRWxlbWVudChkaXIpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmVuZEVsZW1lbnQoaHRtbCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKA0KKywgMikKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3V0ZjhidWcuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdXRmOGJ1Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyZmJiNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3V0ZjhidWcuaHRtbApAQCAtMCwwICsxLDE4MyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9ImVuLXVzIj4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzxsaW5rIGhyZWY9IkNTUy5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiPgorPGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSJmYXZpY29uLmljbyI+Cis8dGl0bGU+2LTZh9mK2LEg2KjZhNin2q88L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisKKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBpZD0iTWFpblRCTCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKzx0cj4KKzx0ZCBjbGFzcz0iSGVhZGVyMSI+CisJCTx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGhlaWdodD0iMTAwJSI+PHRyPgorPHRkPgorCQkJCTxpbWcgYm9yZGVyPSIwIiBzcmM9IlNoZWxsL1NoYWhpci5TaGFoaWRTYWxlczEucG5nIiB3aWR0aD0iNDQyIiBoZWlnaHQ9IjExMCI+Cis8L3RkPgorCQkJCTx0ZD7CoDwvdGQ+CisJCQk8L3RyPjwvdGFibGU+Cis8L3RkPgorCTwvdHI+Cis8dHI+Cis8dGQgaGVpZ2h0PSIyOCI+CisJCQk8ZGl2IGlkPSJTaWRlQmFyMSI+CisJCQkJPHRhYmxlIHdpZHRoPSIxMDAlIj48dHI+Cis8dGQ+CisJCQkJIDxzcGFuIGNsYXNzPSJJdGVtIj4KKzxhIGhyZWY9IkluZGV4LmFzcCI+CivYrtin2YbZhyA8L2E+PC9zcGFuPiA8c3BhbiBjbGFzcz0iSXRlbSI+Cis8YSBocmVmPSJDb250YWN0LmFzcCI+CivYqtmF2KfYsyDYqNinINmF2YYgPC9hPjwvc3Bhbj4gPHNwYW4gY2xhc3M9Ikl0ZW0iPgorPGEgaHJlZj0iQXJjaGl2ZS5hc3AiPgor2KLYsdi02YrZiCA8L2E+PC9zcGFuPiA8c3BhbiBjbGFzcz0iSXRlbSI+Cis8YSBocmVmPSJTZWFyY2guYXNwIj4KK9is2LPYqtis2Ygg2K/YsSDYs9in24zYqiA8L2E+PC9zcGFuPiA8c3BhbiBjbGFzcz0iSXRlbSI+Cis8YSBocmVmPSJodHRwOi8vc2hhaGlyYmxvZy5jb20vZGV0YWlsLmFzcD9pZD0zMCI+CivYr9ix2KjYp9ix2Ycg2YXZhiA8L2E+PC9zcGFuPiA8c3BhbiBjbGFzcz0iSXRlbSI+Cis8YSBocmVmPSJSU1MyLmFzcCI+CisKKzxpbWcgc3JjPSJzaG93aW1hZ2UuYXNweD9wYXRoPUZpbGVzX1VwbG9hZCU1QzE5Mi5wbmcmYW1wO3dpZHRoPSUmZ3Q7IiBib3JkZXI9IjAiPgorUlNTIDwvYT48L3NwYW4+IDxzcGFuIGNsYXNzPSJJdGVtIj4KKzxhIGhyZWY9IiI+CisgPC9hPjwvc3Bhbj4KKwkJCQk8L3RkPgorCQkJCTx0ZCBhbGlnbj0ibGVmdCI+CisJCQkJPGRpdiBpZD0iRGF0ZVRpbWUiPgorCQkJCTxwIGFsaWduPSJsZWZ0Ij4KKwkJCQnZitqp2LTZhtio2YfYjMKgMTXCoNin2LHYr9mK2KjZh9i02KrCoDEzODfCoCAKKwkJCQktwqDCoCAKKwkJCQk8c3BhbiBkaXI9Imx0ciI+U3VuZGF5LCBNYXkgMDQsIDIwMDg8L3NwYW4+CisJCQkJPC9wPgorPC9kaXY+CisJCQkJPC90ZD4KKwkJCQk8L3RyPjwvdGFibGU+Cis8L2Rpdj4KKwkJPC90ZD4KKwk8L3RyPgorPHRyPjx0ZCB2YWxpZ249InRvcCI+CisJCTx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGlkPSJDb250ZW50Ij48dHI+PHRkIGNsYXNzPSJSaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiA2MHB4Ij4KKwkJCQkJPHRhYmxlIHdpZHRoPSIxMDAlIj48dHI+PHRkIHZhbGlnbj0idG9wIj4KKwkJCQkJCQkJCis8c2NyaXB0PgordmFyIHRncyA9IG5ldyBBcnJheSggJ2RpdicsJ3RkJywndHInLCdhJyk7Cit2YXIgc3pzID0gbmV3IEFycmF5KCAnN3B0JywnOHB0JywnOXB0JywnMTBwdCcsJzExcHQnLCcxMnB0JywnMTNwdCcgKTsKK3ZhciBzdGFydFN6ID0gMTsKKworZnVuY3Rpb24gQ2hhbmdlU2l6ZSggdHJndCxzeiApIHsKKwlpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKSByZXR1cm4KKwl2YXIgZCA9IGRvY3VtZW50LGNFbCA9IG51bGwsaSxqLGNUYWdzOworCQorCWlmICggISggY0VsID0gZC5nZXRFbGVtZW50QnlJZCggdHJndCApICkgKSBjRWwgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0cmd0IClbIDAgXTsKKworCWNFbC5zdHlsZS5mb250U2l6ZSA9IHN6OworCisJZm9yICggaSA9IDAgOyBpIDwgdGdzLmxlbmd0aCA7IGkrKyApIHsKKwkJY1RhZ3MgPSBjRWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRnc1sgaSBdICk7CisJCWZvciAoIGogPSAwIDsgaiA8IGNUYWdzLmxlbmd0aCA7IGorKyApIGNUYWdzWyBqIF0uc3R5bGUuZm9udFNpemUgPSBzejsgLy9zenNbIHN6IF07CisJfQorfQorPC9zY3JpcHQ+PHRhYmxlIHdpZHRoPSIxMDAlIiBpZD0iTmV3c0RldGFpbCI+Cis8dHI+Cis8dGQgdmFsaWduPSJ0b3AiPgorCQk8ZGl2IGNsYXNzPSJOZXdzX0luZm8iPgorCQkJ2KrYp9ix2YrYriDYr9ix2Kw6IDxmb250IGNvbG9yPSIjMDAwMDAwIj7ahtmH2KfYsdi02YbYqNmH2IzCoDI5wqDYp9iz2YHZhtivwqAxMzg2IAorCQkJLSBXZWRuZXNkYXksIE1hcmNoIDE5LCAyMDA4PC9mb250PsKgwqDCoMKgwqAgCisJCQnZhtmI2YrYs9mG2K/ZhzogPGZvbnQgY29sb3I9IiMwMDAwMDAiPjwvZm9udD7CoMKgwqDCoMKgIAorCQkJ2K/Zgdi52KfYqiDZhdi02KfZh9iv2Yc6IDxmb250IGNvbG9yPSIjMDAwMDAwIj4yNjg4PC9mb250PiAKKwkJCdio2KfYscKgwqDCoMKgwqAg2YPYrzogPGZvbnQgY29sb3I9IiMwMDAwMDAiPjM0MTwvZm9udD4KKwkJPC9kaXY+CisJCTxicj48IS0tCisJCTxkaXY+JiMxNTc1OyYjMTYwNjsmIzE1ODM7JiMxNTc1OyYjMTU4NjsmIzE2MDc7ICYjMTYwMTsmIzE2MDg7JiMxNjA2OyYjMTU3ODs6Jm5ic3A7CisJCTxhIGhyZWY9ImphdmFzY3JpcHQ6Q2hhbmdlU2l6ZSgnTmV3c0JvZHknLCc3cHQnKSI+PGZvbnQgc2l6ZT0iMSI+JiMxNzA1OyYjMTYwODsmIzE2NzA7JiMxNzA1OzwvZm9udD48L2E+Jm5ic3A7CisJCTxhIGhyZWY9ImphdmFzY3JpcHQ6Q2hhbmdlU2l6ZSgnTmV3c0JvZHknLCcxMHB0JykiPjxmb250IHNpemU9IjIiPiYjMTYwNTsmIzE1OTM7JiMxNjA1OyYjMTYwODsmIzE2MDQ7JiMxNzQwOzwvZm9udD48L2E+Jm5ic3A7CisJCTxhIGhyZWY9ImphdmFzY3JpcHQ6Q2hhbmdlU2l6ZSgnTmV3c0JvZHknLCcxM3B0JykiPjxmb250IHNpemU9IjMiPiYjMTU3NjsmIzE1ODY7JiMxNTg1OyYjMTcxMTs8L2ZvbnQ+PC9hPiZuYnNwOworCQk8L2Rpdj4tLT48ZGl2IGNsYXNzPSJUaXRyMSI+CisJCQkgPC9kaXY+CisJCTxicj48ZGl2IGlkPSJOZXdzQm9keSI+CisJCQkKKwkJCTxkaXYgY2xhc3M9IkltYWdlIj4KKwkJCQkKKwkJCQk8YSBocmVmPSJzaG93aW1hZ2UuYXNweD9wYXRoPUZpbGVzX1VwbG9hZCU1QzMwMi5KUEcmYW1wO1dpZHRoPSIgcmVsPSJsaWdodGJveCIgdGl0bGU9Iti02YfZitixINio2YTYp9qvIj4KKwkJCQk8aW1nIHNyYz0ic2hvd2ltYWdlLmFzcHg/cGF0aD1GaWxlc19VcGxvYWQlNUMzMDIuSlBHJmFtcDtXaWR0aD0yMjAiIGFsaWduPSJsZWZ0IiBib3JkZXI9IjEiPjwvYT4KKzwvZGl2PgorCQkJPHN0cm9uZz48Zm9udCBzaXplPSI0Ij48Zm9udCBjb2xvcj0iIzAwMDBmZiI+2LnaqdizPC9mb250PiA8Zm9udCBjb2xvcj0iIzAwMDBmZiI+2YXYrdi12YjZhCDZh9mG2LEg24zaqduMINin2LIg2YfZhdqp2KfYsdin2YYg2KfYs9iqLiDYsdmI24wg2KLZhiDaqdmE24zaqSDaqdmG2K8uPC9mb250PjwvZm9udD48L3N0cm9uZz48czE+PC9zMT4KKzwvZGl2PgorCQk8YnI+PGRpdiBhbGlnbj0ibGVmdCI+CisJCQk8YSBocmVmPSJwcmludGZyaWVuZGx5LmFzcD9pZD0zNDEiPgorCQkJPGltZyBzcmM9InNoZWxsL1ByaW50RnJpZW5kbHkucG5nIiBib3JkZXI9IjAiPjwvYT4KKwkJCTxhIGhyZWY9IiMiIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdTZW5kTmV3cy5hc3A/UGFnZUlEPTM0MScsJ215V2luJywndG9vbGJhcj1ubyxkaXJlY3Rvcmllcz1ubyxsb2NhdGlvbj1ubyxzdGF0dXM9bm8sbWVudWJhcj1ubyxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9bm8sd2lkdGg9NTAwLCBoZWlnaHQ9MjAwJyk7IHJldHVybiBmYWxzZSI+CisJCQk8aW1nIGJvcmRlcj0iMCIgc3JjPSJTaGVsbC9TZW5kVG9GcmllbmRzLmpwZyIgd2lkdGg9IjE0MCIgaGVpZ2h0PSIzMCI+PC9hPgorCQk8L2Rpdj4KKwkJPGJyPgorPC90ZD4KKwk8L3RyPgorPHRyPjx0ZD4gPGJyPjxocj4KKzxkaXYgaWQ9IkNvbW1lbnRzIj48dWw+Cis8Yj7Zhti42LHYp9iqCisJCdqp2KfYsdio2LHYp9mGOjwvYj48YnI+PGxpPgorPGZvbnQgY29sb3I9ImJsdWUiPtit2KfYrNuMINis2YHYsdiz2YjZhjo8L2ZvbnQ+PGJyPjxmb250IHNpemU9IjEiPjQvNS8yMDA4IC0KKwkJNzowODowMCBQTTwvZm9udD48YnI+2KjYpyDYr9ix2YjYryDYqNmHINi02YXYpy4uLsKg2KjYr9mI2YYg2YfbjNqGINqv2YjZhtmHINi32YbYsgorCQnZiCDYr9iz2Kraqdin2LHbjCDYqtmI2LPYtyDYrdin2KzbjCDYr9in24zbjCDZhtmC2YQg2LTYr9mHINin2LPYqiDYp9uM2YYg2YfYpyDaqdmHINiv2LEg2KjbjNin2YYg2KzYr9uMCisJCdin24zZhtmC2K/YsSDYt9mG2KfYsiDZh9iz2KrZhtivINmI2KfbjCDYqNmHINix2YjYstuMINqp2Ycg2KjYrtmI2KfZh9mG2K8g2LfZhtiyINio2YbZiNuM2LPZhtivLiDYqNio24zZhgorCQnYtNmH24zYsSDYrNin2YYg2obZhyDaqdiz2KfZhtuMINiz2LEg2KzZiNin2YbYp9mGINmF2Kcg2LHYpyDYqNinINin2LXZhNin2K3Yp9iqIDgg2LPYp9mEINqv2YjZhAorCQnZhdin2YTbjNiv2YbYry4uINin24zZhiDZh9inINix2Kcg2KjYrtmI2KfZhtuM2K8gOjo6OjooKNiv2KjZitix2YPZhCDZhdis2YXYuSDYp9iz2YTYp9mF2Yog2KjYp9mG2YjYp9mGCisJCdqv2YHYqjog2KjZhyDZhti42LEg2YXZiuKAjNix2LPYryDYotmC2KfZiiDYrtin2KrZhdmKINmC2LXYryDZgdin2LXZhNmHINqv2LHZgdiq2YYg2KfYsiDYqtmG2K/YsdmI2YfYpworCQnYsdinINmG2K/Yp9ix2K8g2Ygg2KrYpyDYp9mK2YYg2LHZiNmG2K8g2KfYr9in2YXZhyDYr9in2LHYryDZhdinINio2Kcg2KrZhtiv2LHZiNmH2Kcg2K/YsSDZitmDINin2KbYqtmE2KfZgQorCQnYtNix2YPYqiDZhtmF2YrigIzZg9mG2YrZhS4g2KjZhyDar9iy2KfYsdi0INiu2KjYsdmG2q/Yp9ixINiz2YrYp9iz2Yog2K7YqNix2q/Ystin2LHZiiDZgdin2LHYs9iMCisJCdmB2KfYt9mF2Ycg2YPYsdmI2KjZiiDYr9io2YrYsdmD2YQg2YXYrNmF2Lkg2KfYs9mE2KfZhdmKINio2KfZhtmI2KfZhiDYudi12LEg2KfZhdix2YjYsiDYtNmG2KjZhyDYr9ixINis2YXYuQorCQnYrtio2LHZhtqv2KfYsdin2YYg2LHYs9in2YbZh+KAjNmH2KfZiiDar9ix2YjZh9mKINix2YjZhtivINio2LHar9iy2KfYsdmKINin2YbYqtiu2KfYqNin2Kog2YfYtNiq2YXZitmGCisJCdiv2YjYsdmHINmF2KzZhNizINi02YjYsdin2Yog2KfYs9mE2KfZhdmKINix2Kcg2KrYrdmE2YrZhCDZg9ix2K8uINmI2Yog2LbZhdmGINio2LHYtNmF2LHYr9mGINmF2LHYstio2YbYr9mKINiu2YjYrworCQnYqNinINis2LHYqNin2YYg2KrZhtiv2LHZiNmKINin2LXZhNin2K0g2LfZhNioINin2YHYstmI2K86INin2YrZhiDZhdinINmG2YrYs9iq2YrZhSDZg9mHINio2Kcg2LPYqtin2K8g2KfYptiq2YTYp9mBCisJCdin2LXZhNin2K0g2LfZhNio2KfZhiDYp9iu2KrZhNin2YEg2K/Yp9ix2YrZhSDYp9mF2Kcg2KfZhtit2LXYp9ix2q/YsdmKINio2LHYrtmKINin2LIg2q/YsdmI2YfigIzZh9inCisJCdis2LHZitin2YYg2KfYtdmE2KfYrdin2Kog2LHYpyDYr9qG2KfYsSDYp9iyINmH2YXigIzar9iz2LPYqtqv2Yog2YPYsdivLiDYr9in2YjYt9mE2Kgg2YfYtNiq2YXZitmGINiv2YjYsdmHCisJCdin2YbYqtiu2KfYqNin2Kog2YXYrNmE2LMg2LTZiNix2KfZiiDYp9iz2YTYp9mF2Yog2K/Ysdio2KfYsdmHINiq2LTZg9mK2YQg2LPYqtin2K8g2YXYsdiv2YXZiiDYp9i12YTYp9it2KfYqiDYrtin2LfYsQorCQnZhti02KfZhiDZg9ix2K86INii2YLYp9mKINiu2KfYqtmF2Yog2KjZhyDYqtmI2LXZitmH4oCM2YfYpyDZiCDZhti42LHYp9iqINiv2YjYs9iq2KfZhti02KfZhiDYqtmI2KzZh9mKCisJCdmG2K/Yp9ix2YbYryDZiCDYp9qv2LEg2KfZitmGINin2YXZg9in2YYg2YjYrNmI2K8g2K/Yp9i02Kog2YPZhyDZh9mF2Ycg2KzYsdmK2KfZhtin2Kog2KfYtdmE2KfYrSDYt9mE2Kgg2LLZitixCisJCdmK2YMg2LnZhtmI2KfZhiDZgdi52KfZhNmK2Kog2YPZhtmG2K8g2K3YqtmF2Kcg2KfYsiDYotmGINin2LPYqtmC2KjYp9mEINmF2YrigIzZg9ix2K/ZitmFINin2YXYpyDYqNmHCisJCdmG2LjYsSDZhtmF2YrigIzYsdiz2K8g2YPZhyDYotmC2KfZiiDYrtin2KrZhdmKINio2K7ZiNin2YfYryDYp9iyINiq2YbYr9ix2YjZh9inINmB2KfYtdmE2Ycg2Kjar9mK2LHYryDZiAorCQnYqtinINin2YrZhiDYsdmI2YbYryDYp9iv2KfZhdmHINiv2KfYtNiq2Ycg2KjYp9i02K8g2YXYpyDYqNinINiq2YbYr9ix2YjZh9inINiv2LEg2YrZgyDYp9im2KrZhNin2YEg2LTYsdmD2KoKKwkJ2YbZhdmK4oCM2YPZhtmK2YUuINmI2Yog2K/YsSDZhdmI2LHYryDYtNix2YPYqiDYqti02YPZhCDZhdiq2KjZiNi5INiu2YjYryDYr9ixINmF2LHYrdmE2Ycg2KjYudiv2YoKKwkJ2KfZhtiq2K7Yp9io2KfYqiDZhdis2YTYsyDar9mB2Ko6INio2LHYrtmKINin2LIg2YPYp9mG2K/Zitiv2KfZh9in2Yog2YbYstiv2YrZgyDYqNmHINmF2Kcg2KjZhyDZhdix2K3ZhNmHINiv2YjZhQorCQnYp9mG2KrYrtin2KjYp9iqINix2KfZhyDZitin2YHYqtmH4oCM2KfZhtivINmIINmF2Kcg2KjYpyDYqtmF2KfZhSDYqtmI2KfZhiDYr9ixINin2YrZhiDZhdix2K3ZhNmHINin2LIKKwkJ2KLZhtmH2Kcg2K/Zgdin2Lkg2K7ZiNin2YfZitmFINmD2LHYry4g2YPYsdmI2KjZiiDYqtin2YPZitivINmD2LHYrzog2q/YsdmI2YfZiiDYp9mG2K3Ytdin2LHar9ixINio2KcKKwkJ2KfZgtiv2KfZhdin2Kog2LrZitix2LnZgtmE2KfZhtmKINmIINiq2YbYr9ix2YjZiuKAjNmH2KfZiiDYrtmI2K8g2KfYqtmI2KjZiNizINin2LXZhNin2K3Yp9iqINix2Kcg2K/YsSDYr9ix2YcKKwkJ2LPYsdmG2q/ZiNmGINmD2LHYr9mG2K8pKSkpINmE2LfZgdinINm+24zYr9inINqp2YbbjNivINm+2LHYqtmC2KfZhCDZgdix2YjYtCDYsdinLi4uLi4u2YjYp9mC2LnYpyDYp9uM2YYKKwkJ2YfYpyDZhduMINiu2YjYp9mH2YbYryDYr9mI2KjYp9ix2Ycg2YjYp9ix2K8g2YXYrNmE2LMg2Ygg2K/ZiNmE2Kog2LTZiNmG2K8uLi4uLtin2YjZiNmI2YjZiNmI2YjZiNmI2YjZiNmI2YjZiNmICisJCdmE2KfZhNin2YTYp9mE2KfZhNin2YTYpy4uLi4uLi4u2YbZhyEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhINin2YTYqNiq2Ycg2KfbjNmGCisJCdmF2KzZhdi5INio2KfZhtmI2KfZhiDYqNuM2LTYqtixINio2Ycg2LPZgdix2Ycg2YfYp9uMINmG2LDYsSDZiCDYs9io2LLbjCDZvtin2qkg2qnYsdiv2YYg2YfYp9uMINiu2YjZhtmHCisJCdmF2KfZhdin2YYg2KjYstix2q8g2Ygg2K7Yp9mE2Ycg2LLZhtqpINio2KfYstuMINmH2KfbjCDYudi12LEg2YLYp9is2KfYsduM2Ycg2Ygg2YXYrNmE2LMg2b7YpyDYqtiu2KrbjCDZiAorCQnYrdmG2Kcg2KjZhtiv2YjZhiDYudix2YjYsyDYtNio2KfZh9iqINiv2KfYsdivLiDZhdmH2YbYr9izINis2KfZhiDar9mI24zYpyDZhdinINin2LIg2K/Ys9iqINin24zZhiAuLi4u2YgKKwkJ2LnbjNin2YTYtCDYqNin24zYryDYqNix2YjbjNmFINqv2YjYtNmHINmH2YXYp9mGINin2KjYr9in2LHYrtin2YbZhyDZiCDYtNin2LrZhNin2YUg2Ygg2obYp9uM24wKKwkJ2K/bjNi02YTZhdmHLi4uLti02YXYpyDYqti02LHbjNmBINmG2YXbjCDYotmI2LHbjNiv2J88L2xpPgorPGJyPjxicj48bGk+Cis8Zm9udCBjb2xvcj0iYmx1ZSI+2LPbjNin2YjYtDo8L2ZvbnQ+PGJyPjxmb250IHNpemU9IjEiPjQvMy8yMDA4IC0gOToyODowMCBQTTwvZm9udD48YnI+2YXYsdivINmH2LLYp9ixINqG2YfYsdmHINmF2LHYryDZh9iy2KfYsSDahtmH2LHZhyDaqduM2LPYqtif2LTYrti124zYqtuMINiz2KfYrtiq2Ycg2Ygg2b7Ysdiv2KfYrtiq2Ycg2YXZh9ix2KfZhiDZhdiv24zYsduM2Iwg2b7bjNmF2KfZhiDZgtin2LPZhSDYrtin2YbbjCDZiCDYr9uM2q/YsSDZhtmI24zYs9mG2K/ar9in2YbYnyDYqtmG2YfYpyDZh9iv2YHYtCDYotmG2LPYqiDaqdmHINqG2YbYryDYsdmI2LIg2KrYudi324zZhNin2KrYjCDZhdin2LHYpyDYs9ix2q/ZhSDaqdmG2K8g2Ygg2K/bjNqv2LEg2YfbjNqG2J8g2YXYsdivINmH2LLYp9ixINqG2YfYsdmHINuM2qkg2LfZhtiyINin2LPYqiDbjNqpINi32YbYsiDYqtmE2K7YjCDYqNix2K/Yp9i02KrbjCDZiNin2YLYuduMINin2LIg2KzYp9mF2LnZhyDYp9uM2LHYp9mG24wuINmF2YYg2KzZiNin2YbZhSDZvtizINiv2LHYr9ii2LTZhtin24wg2KzZiNin2YbYp9mG2YUg2Ygg2K7ZiNivINix2Kcg2KjYpyDYrtmI2K8g2Ygg2K/bjNqv2LEg2KzZiNin2YbYp9mGINi32LHZgSDZhduMINqp2YbZhSDYqNiz24zYp9ixINin2YbYryDYrNmI2KfZhtin2YbbjCDaqdmHINmF2LXYr9in2YIg2YXYsdivINmH2LLYp9ixINqG2YfYsdmHINmH2LPYqtmG2K8g2KzZiNin2YbYp9mG24wg2LPZiNiv2Kcg2LLYr9mHINuM2Kcg2KjZhyDZgtmI2YQg2K7ZiNivINmF2LPYudmI2K8gItis2Ygg2q/bjNixIiDaqdmHINmH2LEg2KjYpyDZhdit2LXZiNmE24wg2qnZh9mG2Ycg2LHYpyDYqNinINiq2LnYsduM2YHbjCDYrNiv24zYryDYqNmHINii2YbZh9inINin2LHYp9im2Ycg2qnZhtmG2K8g2obZhtin2YYg2KjYpyDYqtmF2KfZhSDZiCDYrNmI2K8g2YXbjCDZvtiw24zYsdmG2K8g2qnZhyDar9mI24zbjCDYsdin2Ycg2YHYp9im2YIg2KLZhdiv2YYg2KjYsSDYqtmF2KfZhSDZhdi02qnZhNin2KrYtNin2YYg2LHYpyDbjNin2YHYqtmHINin2YbYryDZiCDZhduMINiu2LHZhtiv2Iwg2K7ZiNin2Ycg2KfbjNmGINiq2K3ZgdmHINiq2KbZiNix24wg2KjYsSDar9ix2YHYqtmHINin2LIg2KrZgdqp2LHYp9iqINiu2LTaqSDZiCDZgdiz24zZhNuMINqv2LHZiNmH24wg2KjYp9i02K8g24zYpyDZhdiv2YQg2YXZhNuM2KzaqSDZiNin2LEg2YTYqNin2LPbjCDYr9ixINm+2LTYqiDZiNuM2KrYsduM2YYg2YHYsdmI2LTar9in2YcuINmF2YfZhSDZhtuM2LPYqiDahtmHINio2KfYtNivISDZhdmH2YUg2YbbjNiz2Kog2K/ZhNuM2YQg2KfZhtiq2K7Yp9io2LQg2obZhyDYqNin2LTYryEg2YXZh9mFINmG24zYs9iqINmG2KrbjNis2Ycg2KfbjNmGINin2YbYqtiu2KfYqCDahtuM2LPYqiEg2KrZhtmH2Kcg2YXZh9mFINin2LPYqiDaqdmHINmF24wg2q/ZiNuM2YbYryDYp9iyINin24zZhiDYt9ix2YEg2KjZgdix2YXYp9im24zYryHYrdin2YQg2KfbjNmGINio2YHYsdmF2KfYptuM2K8g2obZhyDZhdi52YbYp9uM24wg2K/Yp9ix2K8g2KjYp9iyINmH2YUg2YXZh9mFINmG24zYs9iqISEhINmI2KfbjCDYqNixINmF2Kcg2qnZhyDZhtmHINiu2YjYryDYsdinINmF24wg2LTZhtin2LPbjNmFINmIINmG2Ycg2K/YsSDYrNmH2Kog2LTZhtin2K7YqiDYrtmI24zYtCDZgtiv2YUg2YXbjCDar9iw2KfYsduM2YUuINmI2KfbjCDYqNixINmF2Kcg2qnZhyDYr9uM2q/YsSDYrdiq24wg2YbYr9in24wg2K/YsdmI2YYg2K7ZiNuM2LQg2LHYpyDZhtmF24wg2KrZiNin2YbbjNmFINio2LTZhtmI24zZhS4g2YjYp9uMINio2LEg2YXYpyDaqdmHINmG2YXbjCDYr9in2YbbjNmFINqG2Ycg2YXbjCDYrtmI2KfZh9uM2YUg2Ygg2YfYsSDYqNin2LEg2qnZhyDahtuM2LLbjCDZhduMINiu2YjYp9mH24zZhSDZiCDYr9ixINmF2LPbjNixINmI2LXYp9mEINm+2Kcg2YXbjCDar9iw2KfYsduM2YUg2KjZhyDZhduM2KfZhtmHINix2KfZhyDZhtix2LPbjNiv2Ycg2obZhtin2YYg2YXYrNiw2YjYqCDYstix2YIg2Ygg2KjYsdmCINix2KfZh9mH2KfbjCDYr9uM2q/YsSDZhduMINi02YjbjNmFINqp2Ycg2YXYqNiv2Kcg2Ygg2YXZgti12K8g2LHYpyDbjNqp2KzYpyDZgdix2KfZhdmI2LQg2YXbjCDaqdmG24zZhS4g2YjYp9uMINio2LEg2YXYpyDaqdmHINmG2YXbjCDYqtmI2KfZhtuM2YUg2K/YsSDYqNix2KfYqNixINmH2LEg2KLZhtqG2Ycg2K/YsSDZhdmC2KfYqNmEINin2YbYs9in2YbbjNiqINmF2Kcg2KfbjNiz2KrYp9iv2YcgItmG2Yci2Kjar9mI24zbjNmFLiDYr9ix2LPYqiDYp9iz2Kog2qnZhyDZhdinINis2YjYp9mG2KfZhiDYqNmHINiq2YbZh9in24zbjCDZhdmC2LXYsSDZhtuM2LPYqtuM2YUg2KfZhdinINqG2YjZhiDYtNix2YjYuSDYqtmC2LXbjNix24zZhSDZvtizINmF24wg2KrZiNin2YbbjNmFINin2LIg2KfYqNiq2K/YpyDZhdin2YbYuSDZhdi02qnZhCDZh9mFINio2KfYtNuM2YUuINio2Kcg2KfYrdiq2LHYp9mFINiz24zYp9mI2LQ8YnI+CivCoDxicj48Zm9udCBjb2xvcj0iIzgwMDAwMCI+2KjYs9uM2KfYsSDYstuM2KjYpyDYs9uM2KfZiNi0INis2KfZhi4g2K/YsdmI2K8g2KjYsSDYqtmILiDYtNmH24zYsTwvZm9udD4KKzwvbGk+Cis8YnI+PGJyPjxsaT4KKzxmb250IGNvbG9yPSJibHVlIj7Yp9it2LPYp9mGIF9fINiu2Lcg2LPZiNmFOjwvZm9udD48YnI+PGZvbnQgc2l6ZT0iMSI+NC8zLzIwMDggLSA4OjIxOjAwIFBNPC9mb250Pjxicj7YqNinINiz2YTYp9mFINmIINin2K/Yp9uMINin2K3Yqtix2KfZhSDZiNqp2LPYqCDYp9is2KfYstmHINin2LIg2LTZh9uM2LEg2LnYstuM2LIgLiDYp9iyINi52YXYp9ivINis2KfZhiDYudiy24zYstmFINio2K7Yp9i32LEg2LLYrdmF2KrbjCDaqdmHINqp2LTbjNiv2YbYryDZiCDYp9i32YTYp9i52KfYqiDYrtmI2KjbjCDaqdmHINiv2KfYr9mG2K8g2Iwg2KjZhyDYs9mH2YUg2K7ZiNiv2YUg2KrYtNqp2LEg2YXbjCDaqdmG2YUgLiDYqNinINqp2YXYp9mEINi02LHZhdmG2K/ar9uMINin2LIg2KfbjNmG2qnZhyAi2KjYr9mI2YYg2YfZhdin2YfZhtqv24wiINmIICIg2KfYrNin2LLZhyDYp9uMINmC2KjZhNuMINi02YXYpyIg2YggItio2LPYsdi52KoiINiMINmF2LnYr9mI2K8g2KfYtNiq2KjYp9mH2KfYqiDYqtin24zZvtuMINix2Kcg2qnZhyDYqNinINiq2YjYrNmHINio2Ycg2K3YrNmFINmF2LfZhNioINiMINin2YXYsduMINqp2KfZhdmE2Kcg2KfYrNiq2YbYp9ioINmG2KfZvtiw24zYsSDYp9iz2Kog2Iwg2LPYuduMINqp2LHYr9mFINqp2Ycg2KfYtdmE2KfYrSDaqdmG2YUg2Iwg2KfYsiDYtNmF2Kcg2b7ZiNiy2LQg2YXbjCDYrtmI2KfZh9mFIC4g2KfZhNio2KrZhyDYudmF2KfYryDYrNin2YYg2LnYstuM2LLZhSDYjCDYqNivINmG24zYs9iqINio2K/Yp9mG24zYryDaqdmHINiv2LEg2YXbjNiy2KfZhiDYp9i02KrYqNin2Ycg2K/YsSDYqtin24zZviDZh9ix2q/YsiDYqNmHINm+2KfbjCDYqNmG2K/ZhyDZhtiu2YjYp9mH24zYryDYsdiz24zYryAhINi02KfZh9ivINin2K/Yudin24wg2K3ZgtuM2LHYjCDYtNmH24zYsSDZiCDYrdiz24zZhiDYrNin2YYg2LnYstuM2LLZhSDZh9iz2KrZhtivINqp2Ycg2K7YqNix2K/Yp9ix2YbYryDaqdmHINqG2q/ZiNmG2Ycg2KjZhtiv2Ycg2K/YsSDbjNqpINmB2YLYsdmHINi52YXZhNuM2KfYqiDYqtin24zZviDYjCDYr9mIINi12YHYrdmHINin24wg2qnYp9mF2YQg2LHYpyDYrNinINin2YbYr9in2K7YqtmFICEhISDaqdin2YHbjCDYp9iz2Kog2KjZvtix2LPbjNivINiMINiv2LEg2YbZh9in24zYqiDYtdiv2KfZgtiqINiMINio2LEg2KfbjNmGINix2qnZiNix2K8g2KjbjCDZhti424zYsSDZiCDYqtin2LHbjNiu24wg2LTZh9in2K/YqiDYrtmI2KfZh9mG2K8g2K/Yp9ivICEg2KjYp9iyINmH2YUg2KfYsiDYstit2YXYp9iqINi52YXYp9ivINis2KfZhiDZiCDZhtuM2LIg2LPZiNin2YTYp9iqINiu2YjYqCDYrdiz24zZhiDYrNin2YYg2KrYtNqp2LEg2YXbjCDaqdmG2YUg2qnZhyDYp9mGINmI2LnYr9mHINin24wg2YXZgtin2YTZhyDYp9uMINi524zYr9in2YbZhyDYp9uMINmF2YHYtdmEINi02YfbjNixINix2Kcg2K/YsSDYqNin2LHZhyDYp9uMINiy2YbYr9mHINuM2KfYryDZhdix2K3ZiNmFINmF2LXYr9mCINiMINiv2LEg2YjYs9i5INiu2YjYryDYqNis2KfbjCDYp9mI2LHYr9mG2K8gLiDYttmF2YYg2KfZhtqp2Ycg2YfbjNqG2qnYr9in2YUg2KfYsiDYr9mI2LPYqtin2YbYjCDYp9uM2YYg2LLYrdmF2Kog2KfYsdiy2LTZhdmG2K8g2LnZhdin2K8g2KzYp9mGINix2Kcg2K/ZhNuM2YQg2KfZhiDZhtiu2YjYp9mH2YbYryDYr9in2YbYs9iqINqp2Ycg2LTZh9uM2LHYudiy24zYsiDYqNi52K8g2KfYsiDYqNin2LLar9i02Kog2KfYsiDZhdiz2KfZgdix2Kog2Iwg2LPYsSDZgdix2LXYqiDZiNi52K/ZhyDYp9uMINiu2YjYryDYsdinINi52YXZhCDZhtqp2YbZhtivIC4g2YXYtNiq2KfZgtin2YbZhyDYp9mF2Kcg2YbZhyDYudis2YjZhNin2YbZhyDYjCDZhdmG2KrYuNixINmF2YLYp9mE2Ycg2KfbjCDYtNmH24zYsSDZh9mFINiu2YjYp9mH24zZhSDZhdin2YbYry4g2KjYpyDYp9it2KrYsdin2YUgOiDYp9it2LPYp9mGPGJyPgorwqA8YnI+PGZvbnQgY29sb3I9IiM4MDAwMDAiPtin2K3Ys9in2YYg2KzYp9mG2Iwg2YXZhiDZgdqp2LEg2qnYsdiv2YUg2YLYttuM2Ycg2LTYp9mF2YQg2YXYsdmI2LEg2LLZhdin2YYg2LTYr9mHINin2LPYqi4g2KrYpyDYp9mF2LHZiNiyINqp2Ycg2YbYsdiz24zYr9mHINin2YUg2K/Ys9iqINio2Ycg2KfbjNmGINm+2LHZiNqY2Ycg2KjYstmG2YUuINin2q/YsSDYudi02YIg2KjZhyDYrdmB2Lgg2KfYsdiq2KjYp9i3INio2Kcg2LTZhdinINmH2Kcg2YbYqNmI2K8g2KrYpyDYsdmI2LIgMjUg2KfZvtix24zZhCDYqNmHINiu2YjYr9mFINmF2LHYrti124wg2YXbjCDYr9in2K/ZhS4g2K/YsSDYp9uM2YYg2LPZgdixINiu2K/YpyDZhduMINiv2KfZhtivINqG2YbYryDZh9iy2KfYsSDZhdin24zZhCDYr9ixIDMg2YLYp9ix2Ycg2LHYpyDZvtuM2YXZiNiv2Ycg2KfZhS4g2KfYsiDZvtmI2LPYqiDaqdmE2YHYqiDYrtmI2K/ZhSDYr9ixINi52KzYqNmFINqp2Ycg2obYt9mI2LHbjCDYqtmI2YbYs9iq2YUg2KfYrtio2KfYsSDYsdinINiv2YbYqNin2YQg2qnZhtmFINmIINqG2YbYryDZhdmC2KfZhNmHINqp2YjYqtin2Ycg2KjZhtmI24zYs9mFLiDar9ix2YHYqtin2LHbjCDYstuM2KfYryDYqNmI2K8uINi02YfbjNixPC9mb250PgorPC9saT4KKzxicj48YnI+PGxpPgorPGZvbnQgY29sb3I9ImJsdWUiPti52YXYp9ivINuy27Qg2LPYp9mE2Ycg2KfYsiDYp9i12YHZh9in2YY6PC9mb250Pjxicj48Zm9udCBzaXplPSIxIj40LzMvMjAwOCAtIDc6MTQ6MDAgUE08L2ZvbnQ+PGJyPti02YfZitixINis2KfZhiDYp9qv2LEg2LfZiNmE2KfZhtuMINi02K8g2KjYqNiu2LTZitivINqG2KfYsdmHINin24wg2YbYqNmI2K8g2KfYrdiz2KfZhiDYrNin2YYg2KfYsiDaqdmF2qkg2LTZhdinINmG2YrYsiDYr9ixINmI2YrYsdin2YrYtCDYp9mK2YYg2YXYt9mE2Kgg2YXYqti02qnYsdmFINin2YXZitiv2YjYp9ix2YUg2K3Ys9mK2YYg2LnYstuM2LIg2YbZitiyINix2KfYttuMINio2KfYtNivPGJyPgorwqA8YnI+PGZvbnQgY29sb3I9IiM4MDAwMDAiPtmF2YXZhtmI2YYg2KfYsiDYstit2YXYqtuMINqp2Ycg2qnYtNuM2K/bjCDYudmF2KfYryDYrNin2YYuINi02YfbjNixPC9mb250PgorPC9saT4KKzxicj48YnI+PGxpPgorPGZvbnQgY29sb3I9ImJsdWUiPtit2LPbjNmGOjwvZm9udD48YnI+PGZvbnQgc2l6ZT0iMSI+NC8zLzIwMDggLSA3OjA0OjAwIFBNPC9mb250Pjxicj7Ys9mE2KfZhSDYotmC2Kcg2LTZh9uM2LEg2KjYpyDYp9is2KfYstmHINi02YXYpyDYrtmI2KfYs9iq2YUg2KfYsiDYudmF2KfYryDYudiy24zYsiDZiNmH2YXahtmG24zZhiDYs9ix2YjYsSDYqNiy2LHar9mI2KfYsSDYotmC2KfYp9it2LPYp9mGINiq2LTaqdixINqp2YbZhSDZiNio2Ycg2KLZgtinINi52YXYp9iv2Kjar9mI24zZhSDYr9iz2KrYqiDYr9ix2K8g2YbaqdmG2Ycg2KjYp9io2Kog2LLYrdmF2KrYqiDZiNmB2YjZgiDYp9mE2LnYp9iv2Ycg2LnYp9mE24wg2KjZiNivLtmC2LPZhdiq24wg2qnZhyDZhtmI2LTYqtuM2K8iINiu2YjYryDYr9qp2KrYsSDZhdi12K/ZgiDYr9ixINiq2YLYsduM2LHYp9iq2LTYp9mGINio2Ycg2KfYtNiq2KjYp9mHINio2YjYr9mGINiq2LXZhduM2YXYtNin2YYg2YXYqNmG24wg2KjYsSDYp9iz2KrYudmB2KfYoSDYp9mC2LHYp9ixINmF24wg2qnZhtmG2K8i2YjYp9mC2LnYpyDYrNin2YTYqCDZiNit2KfaqduMINin2LIg2LHZiNitINio2YTZhtivINiv2qnYqtixINmF2LXYr9mCINmH2LPYqiAu2KjYp9in24zZhtqp2Ycg2LPZiNin2YTYp9iqINiu2LHYryDZiNix24zYsiDYstuM2KfYryDZh9iz2Kog2KfZhdinINin2LIg2KfbjNmG2qnZhyDYqNmHINiz2YjYp9mE2KfYqiDYudmF2K/ZhyDZhdmGINio2Kcg2KrZiNis2Ycg2KjZhyDaqdiq2KfYqCDYr9qp2KrYsSDZhdi12K/ZgiDZvtin2LPYriDYr9in2K/bjNivINio2KfYstmH2YUg2KrYtNqp2LEg2YXbjNqp2YbZhSAu2YXbjNiu2YjYp9iz2KrZhSDYp9uM2YYg2b7Yp9iz2K4g2LHYpyDYqNix2KfbjCDZhtmI24zYs9mG2K/ZhyDZhdmC2KfZhNmHINix2KzYp9mG24zZiNiyIGNvcHkmYW1wO3Bhc3RlIDxicj4KK9qp2YbZhSDar9mB2KrZhSDYtNin24zYryDZh9ix2obZhtivINio2Ycg2KfYrdiq2YXYp9mEINi22LnbjNmBINio2LHYp9uMINiz2KfbjNiqINiv2YjYs9iqINiv2KfYtNiq2YbbjCDYotmC2Kcg2LTZh9uM2LEg2YXYtNqp2YTbjCDZvtuM2LQKK9ii24zYry7YrtmI2KfYs9iq2YUg2KjYpyDYrdiw2YEg2YbYp9mFINii2YLYpyDYtNmH24zYsSDZiNi02YXYpyDYp9iyINqp2KfZhdmG2Kog2KfbjNmG2qnYp9ixINix2Kcg2KjaqdmG2YUg2KfYrdiq2YXYp9mEINiv2KfYr9mFINix2KfYttuMCivZhtio2KfYtNuM2K8gLtio2YbYp9io2LHYp9uM2YYg2YHYudmE2Kcg2LnZhNuM2LHYutmFINmF24zZhCDZgdix2KfZiNin2YYg2KfYsiDYp9uM2Ybaqdin2LEg2LXYsdmBINmG2LjYsSDaqdix2K/ZhSAu2KjZh9ix2K3Yp9mEINio2KfYstmH2YUKK9mF2YXZhtmI2YYg2YjZhdiq2LTaqdixICA8L2xpPgorPGJyPjxicj48bGk+Cis8Zm9udCBjb2xvcj0iYmx1ZSI+2K3Yp9is24wg2KzZgdix2LPZiNmGOjwvZm9udD48YnI+PGZvbnQgc2l6ZT0iMSI+NC8zLzIwMDggLSA2OjA2OjAwIFBNIEZPTyE8L2ZvbnQ+PGJyPtio2Kcg2K/YsdmI2K8g2KfYsiDZgtiv24zZhSDar9mB2KrZhyDYp9mG2K8g2qnZhyDbjNqpINqp2YTZhdmHINmH2YUg2KfYsiDZhdin2K/YsSDYudix2YjYsyDYqNi02YbZiNuM2K8uINio2YbYp9io2LHYp9uM2YYg2KjZhyDYp9mB2KfYttin2Kog2KfYrtuM2LEg2qnYtNmI2LEg2K/ZiNiz2Kog2Ygg2KjYsdin2K/YsSDZiCDYs9mI2LPbjNin2YTbjNiz2Kog2obbjNmGINi52LLbjNiyINmIINis2KfZhiDYrNin2YbYp9mGINqp2YXZiNmG24zYs9iqINi52YbYp9uM2Kog2KjZgdix2YXYp9uM24zYrzog2LHYp9iv24zZiCDZgdix2K/Ypzog2K/Zitm+2YTZhdin2Kog2YfYpyDYr9ixINmI2YrZhiDar9mB2KrZhyDYp9mG2K86INqp2Ycg2obZitmG2Iwg2KfYsiDZhdiu2KfZhNmB2KfZhiDYqti02K/ZitivINiq2K3YsdmK2YUg2YfYp9uMINin2YrYsdin2YYg2K/YsSDYtNmI2LHYp9uMINin2YXZitmG2KrYjCDYp9i32YTYp9i52KfYqiDYrtmI2K8g2K/Ysdio2KfYsdmHINin2LHYqtio2KfYtyDYqNix2YbYp9mF2Ycg2YfYs9iq2Ycg2KfbjCDYqtmH2LHYp9mGINio2Kcg2KrZhNin2LQg2KjYsdin24wg2K/Ys9iq2YrYp9io24wg2LPZhNin2K0g2KfYqtmF24wg2LHYpyDYr9ixINin2K7YqtmK2KfYsSDYotqY2KfZhtizINio2YrZhiDYp9mE2YXZhNmE24wg2KfZhtix2pjbjCDYp9iq2YXbjCDZgtix2KfYsSDYr9in2K/ZhyDYp9iz2KouINin2YTYudis2KghISEhISEg2KfZhtiq2K7Yp9ioIDrYqNinINmI2KzZiNivINin24zZhtqp2Ycg2obbjNmGINio2Ycg2LTYr9iqINio2Kcg2KrYrdix24zZhdmH2KfbjCDYtNmI2LHYp9uMINin2YXZhtuM2Kog2LPYp9iy2YXYp9mGINmF2YTZhCDYudmE24zZhyDYp9uM2LHYp9mGINmF2K7Yp9mE2YHYqiDZhduMINqp2LHYr9iMINin2LfZhNin2LnYp9iq24wg2K/YsSDYsdin2KjYt9mHINio2Kcg2YHYudin2YTbjNiq2YfYp9uMINmH2LPYqtmHINin24wg2KfbjNix2KfZhiDYr9ixINin2K7YqtuM2KfYsSDZhdmC2KfZhdin2Kog2KLamNin2YbYsyDYqNuM2YYg2KfZhNmF2YTZhNuMINin2YbYsdqY24wg2KfYqtmF24wg2YLYsdin2LEg2K/Yp9iv2Ycg2qnZhyDYqNixINin2LPYp9izINii2YYg2KfbjNix2KfZhiDYr9ixINiq2YTYp9i0INio2LHYp9uMINiv2LPYqiDbjNin2KjbjCDYqNmHINiz2YTYp9itINmH2KfbjCDYp9iq2YXbjCDYp9iz2KouINio2Ycg2q/Ystin2LHYtCDYrtio2LHZhtqv2KfYsSDYs9ix2YjbjNizINio24zZhiDYp9mE2YXZhNmEINiu2KjYsdqv2LLYp9ix24wg2KfZhtiq2K7Yp9ioINio2Ycg2YbZgtmEINin2LIg2YHYp9qp2LMg2YbbjNmI2LLYm9is2KfZhiDYqNmI2YTYqtmI2YYg2IzZhtmF2KfbjNmG2K/bgCDZvtuM2LTbjNmGINin24zYp9mE2KfYqiDZhdiq2K3Yr9uAINin2YXYsduM2qnYpyDYr9ixINiz2KfYstmF2KfZhiDZhdmE2YTYjNiv2LEg2KfbjNmGINio2KfYsdmHINqv2YHYqjog2KfZgtiv2KfZhSDYp9uM2YbahtmG24zZhtuMINin2LIg2LPZiNuMINqG24zZhiDYqNmHINiv2YTbjNmEINix2YjYp9io2Lcg2YbYuNin2YXbjCDaqdmHINmF24zYp9mGINiv2Ygg2qnYtNmI2LEgW9in24zYsdin2YYg2Ygg2obbjNmGXSDYqNix2YLYsdin2LEg2KfYs9iq2Iwg2KjYs9uM2KfYsSDZgtin2KjZhCDYqtmI2KzZhyDYp9iz2KouINiu2KjYsdmG2q/Yp9ixINin2YbYqtiu2KfYqCDZhduMINin2YHYstin24zYr9ibINiv2LEg2K3Yp9mE24wg2obbjNmGINio2Ycg2KfbjNmGINin2YLYr9in2YUg2K/Ys9iqINiy2K/ZhyDYp9iz2Kog2qnZhyDZh9mF2qnYp9ix24wg2YfYp9uMINiq2KzYp9ix24wg2Ygg2YbYuNin2YXbjCDYp9uM2LHYp9mGINio2Kcg2KfbjNmGINqp2LTZiNixINio2LfZiNixINio24wg2LPYp9io2YLZhyDYp9uMINin2YHYstin24zYtCDbjNin2YHYqtmHINin2LPYqi4g24zYpyDYqNin2Kgg2KfZhNit2YjYp9im2KwhISEhISDYsdin2K/bjNmIINiy2YXYp9mG2Yc6INqG24zZhiDYqNinINmI2KzZiNivINmF2K7Yp9mE2YHYqiDYqNinINiq2K3YsduM2YXigIzZh9in24wg2LTYr9uM2K8g2LTZiNix2KfbjCDYp9mF2YbbjNiqINi52YTbjNmHINiq2YfYsdin2YbYjCDYp9i32YTYp9i52KfYqtuMINiv2LHYqNin2LHZhyDYqtmE2KfYtOKAjNmH2KfbjCDYqtmH2LHYp9mGINio2LHYp9uMINiz2KfYrtiqINiq2LPZhNuM2K3Yp9iqINmH2LPYqtmH4oCM2KfbjCDYqNmHINii2pjYp9mG2LMg2KjbjNmG4oCM2KfZhNmF2YTZhNuMINin2YbYsdqY24wg2KfYqtmF24wg2KfYsdin2KbZhyDaqdix2K/ZhyDYp9iz2KouINii2LPZiNi024zYqtiv2b7YsdizINio2Kcg2KfYudmE2KfZhSDYp9uM2YYg2K7YqNixINio2Ycg2YbZgtmEINin2LIg2obZhtivINiv24zZvtmE2YXYp9iqINii2LTZhtinINio2Kcg2b7YsdmI2YbYr9mHINmH2LPYqtmH4oCM2KfbjCDYp9uM2LHYp9mGINmG2YjYtNiq2Iwg2b7aqdmGINio2Ycg2YfZhdix2KfZhyDZhdiz2qnZiCDZh9mF2YjYp9ix2Ycg2KjYsSDYs9ixINix2KfZhyDYtNmI2LHYp9uMINin2YXZhtuM2Kog2Ygg2KfZhdix24zaqdinINio2LHYp9uMINin2LnZhdin2YQg2YXYrNin2LLYp9iqINmH2KfbjCDYs9iu2Kog2KrYsSDYudmE24zZhyDYqtmH2LHYp9mGINio2Ycg2K/ZhNuM2YQg2YXZgtin2YjZhdiqINmH2LPYqtmHINin24wg2KfbjNmGINqp2LTZiNixINio2Ycg2LXZiNix2Kog24zaqSDZhdin2YbYuSDYudmF2YQg2qnYsdiv2YfigIzYp9mG2K8uINin24zZhiDar9iy2KfYsdi0INmF24wg2KfZgdiy2KfbjNiv2Iwg2KrYtdmF24zZhSDahtuM2YYg2KjYsdin24wg2KfYsdin2KbZhyDYp9i32YTYp9i52KfYqtuMINis2YfYqiDYp9iz2KrZgdin2K/ZhyDYr9ixINiq2K3ZgtuM2YLYp9iqINii2pjYp9mG2LMg2KfZhtix2pjbjCDYp9iq2YXbjCDYr9ix2KjYp9ix2Ycg2KjYsdmG2KfZhdmHINiq2LPZhNuM2K3Yp9iqINmH2LPYqtmH4oCM2KfbjCDYp9uM2LHYp9mG2Iwg2q/ZiNuM2KfbjCDYp9mB2LLYp9uM2LQg2YbYp9ix2LbYp9uM2KrbjCDYqNuM2YbigIzYp9mE2YXZhNmE24wg2K/Ysdio2KfYsdmHINio2LHZhtin2YXZhyDZh9iz2KrZh+KAjNin24wg2KzZhdmH2YjYsduMINin2LPZhNin2YXbjCDYp9iz2Kog2qnZhyDYrdiq24wg2KrZhNin2LQg2KjYsdin24wg2LPYp9iu2Kog2obZhtuM2YYg2KrYs9mE24zYrdin2KrbjCDYsdinINmG24zYsiDYqtqp2LDbjNioINmF24zigIzaqdmG2K8uINio2LEg2KfYs9in2LMg2KfbjNmGINqv2LLYp9ix2LTYjCDYr9mIINiv24zZvtmE2YXYp9iqINio2YTZhtiv2b7Yp9uM2Ycg2qnZhyDYp9ix2KrYqNin2Lcg2YbYstiv24zaqduMINio2Kcg2KLamNin2YbYsyDYqNuM2YbigIzYp9mE2YXZhNmE24wg2KfZhtix2pjbjCDYp9iq2YXbjCDYr9in2LHZhtivINin24zZhiDYp9mC2K/Yp9mFINqG24zZhiDYsdinINio2LHZhdmE2Kcg2qnYsdiv2YfigIzYp9mG2K8uINii2pjYp9mG2LMg2KjbjNmG4oCM2KfZhNmF2YTZhNuMINin2YbYsdqY24wg2KfYqtmF24wg2KfYsiDYp9i42YfYp9ixINmG2LjYsSDYr9ixINin24zZhiDYqNin2LHZhyDYrtmI2K/Yr9in2LHbjCDaqdix2K/ZhyDYp9iz2KouINin2YTYudis2KguINmF2YYg2YXYp9mF2YjYsSDZiCDZhdi52LDZiNixLi7Yrdin2YTYpyDYp9iyINm+2K/YsSDYudix2YjYsyDahtmG2K8g2qnZhNmF2Ycg2KjYtNmG2YjbjNivOiDYs9iu2Ybar9mI24wg2KLamNin2YbYsyDYqNuM2YYg2KfZhNmF2YTZhNuMINin2YbYsdqY24wg2KfYqtmF24wg2KfYr9i52KfbjCDYqNix2K7bjCDYp9iyINix2LPYp9mG2Ycg2YfYp9uMINi62LHYqNuMINix2Kcg2K/Ysdio2KfYsdmHINin24zZhiDaqdmHINqG24zZhiDYp9i32YTYp9i52KfYqtuMINix2Kcg2K/Ysdio2KfYsdmHINio2LHZhtin2YXZhyDZh9iz2KrZhyDYp9uMINin24zYsdin2YYg2K/YsSDYp9iu2KrbjNin2LEg2KLamNin2YbYsyDZgtix2KfYsSDYr9in2K/ZhyDYp9iz2Kog2Iwg2Kraqdiw24zYqCDaqdix2K8gLiDZhdmE24zYs9inINmB2YTZhduM2YbaryDYr9ixINqv2YHYqiDZiCDar9mIINio2Kcg2K7YqNix2Ybar9in2LEg2YjYp9it2K8g2YXYsdqp2LLbjCDYrtio2LEg2KrYp9qp24zYryDaqdix2K8gOiDYotqY2KfZhtizINio24zZhiDYp9mE2YXZhNmE24wg2KfZhtix2pjbjCDYp9iq2YXbjCDZh9ix2q/YsiDYr9ix2KjYp9ix2Ycg2KfYt9mE2KfYudin2Kog2YXYrdix2YXYp9mG2Ycg2K/YsduM2KfZgdiq24wg2KfYsiDaqdi02YjYsdmH2Kcg2KfYuNmH2KfYsSDZhti42LEg2YbZhduMINqp2YbYryAuINmI24wg2q/ZgdiqOiDZh9mFCis8L2xpPgorPC91bD48L2Rpdj4KKzwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L3RkPjwvdHI+PC90YWJsZT4KKzwvdGQ+PC90cj48L3RhYmxlPgorPC90ZD48L3RyPgorPC90YWJsZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdXRmOGJ1Zy5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvdXRmOGJ1Zy5odG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmVmMDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC91dGY4YnVnLmh0bWwuZXJyCkBAIC0wLDAgKzEsMTUgQEAKKy4vdGVzdC9IVE1ML3V0ZjhidWcuaHRtbDo0NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKKzxpbWcgc3JjPSJzaG93aW1hZ2UuYXNweD9wYXRoPUZpbGVzX1VwbG9hZFwxOTIucG5nJndpZHRoPSU+IiBib3JkZXI9IjAiIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3V0ZjhidWcuaHRtbDoxMTg6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCisJCQkJPGEgaHJlZj0ic2hvd2ltYWdlLmFzcHg/cGF0aD1GaWxlc19VcGxvYWRcMzAyLkpQRyZXaWR0aD0iIHJlbD0ibGlnaHRib3giIHRpdAorCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC91dGY4YnVnLmh0bWw6MTE5OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworCQkJCTxpbWcgc3JjPSJzaG93aW1hZ2UuYXNweD9wYXRoPUZpbGVzX1VwbG9hZFwzMDIuSlBHJldpZHRoPTIyMCIgYWxpZ249ImxlZnQiIGIKKwkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3V0ZjhidWcuaHRtbDoxMjE6IEhUTUwgcGFyc2VyIGVycm9yIDogVGFnIHMxIGludmFsaWQKK9iyINmH2YXaqdin2LHYp9mGINin2LPYqi4g2LHZiNuMINii2YYg2qnZhNuM2qkg2qnZhtivLjwvRk9OVD48L0ZPTlQ+PC9TVFJPTkc+PFMxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvdXRmOGJ1Zy5odG1sOjE3NzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK6fbjNmGINm+2KfYs9iuINix2Kcg2KjYsdin24wg2YbZiNuM2LPZhtiv2Ycg2YXZgtin2YTZhyDYsdis2KfZhtuM2YjYsiBjb3B5JnBhc3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC91dGY4YnVnLmh0bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC91dGY4YnVnLmh0bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2Y2RiMTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9IVE1ML3V0ZjhidWcuaHRtbC5zYXgKQEAgLTAsMCArMSw3MzcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChodG1sKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoaGVhZCkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChtZXRhLCBodHRwLWVxdWl2PSdDb250ZW50LUxhbmd1YWdlJywgY29udGVudD0nZW4tdXMnKQorU0FYLmVuZEVsZW1lbnQobWV0YSkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChtZXRhLCBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnLCBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnKQorU0FYLmVuZEVsZW1lbnQobWV0YSkKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChsaW5rLCBocmVmPSdDU1MuY3NzJywgdHlwZT0ndGV4dC9jc3MnLCByZWw9J3N0eWxlc2hlZXQnKQorU0FYLmVuZEVsZW1lbnQobGluaykKK1NBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChsaW5rLCByZWw9J1NIT1JUQ1VUIElDT04nLCBocmVmPSdmYXZpY29uLmljbycpCitTQVguZW5kRWxlbWVudChsaW5rKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoJiMxNTg4OyYjMTYwNzsmIzE2MTA7JiMxNTg1OyAsIDE3KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIGJvcmRlcj0nMCcsIHdpZHRoPScxMDAlJywgaWQ9J01haW5UQkwnLCBjZWxsc3BhY2luZz0nMCcsIGNlbGxwYWRkaW5nPScwJykKK1NBWC5jaGFyYWN0ZXJzKAorCSwgMikKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgY2xhc3M9J0hlYWRlcjEnKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIGJvcmRlcj0nMCcsIHdpZHRoPScxMDAlJywgY2VsbHNwYWNpbmc9JzAnLCBjZWxscGFkZGluZz0nMCcsIGhlaWdodD0nMTAwJScpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIGJvcmRlcj0nMCcsIHNyYz0nU2hlbGwvU2hhaGlyLlNoYWhpZFNhbGVzMS5wbmcnLCB3aWR0aD0nNDQyJywgaGVpZ2h0PScxMTAnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5lbmRFbGVtZW50KHRhYmxlKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisJLCAyKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKwksIDIpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5zdGFydEVsZW1lbnQodGQsIGhlaWdodD0nMjgnKQorU0FYLmNoYXJhY3RlcnMoCisJCQksIDQpCitTQVguc3RhcnRFbGVtZW50KGRpdiwgaWQ9J1NpZGVCYXIxJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIHdpZHRoPScxMDAlJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJICwgNikKK1NBWC5zdGFydEVsZW1lbnQoc3BhbiwgY2xhc3M9J0l0ZW0nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J0luZGV4LmFzcCcpCitTQVguY2hhcmFjdGVycygKKyYjMTU4MjsmIzE1NzU7JiMxNjA2OyYjMTYwNzsgLCAxMCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChzcGFuKQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQoc3BhbiwgY2xhc3M9J0l0ZW0nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J0NvbnRhY3QuYXNwJykKK1NBWC5jaGFyYWN0ZXJzKAorJiMxNTc4OyYjMTYwNTsmIzE1NzU7JiMxNTg3OyAsIDIwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KHNwYW4pCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLnN0YXJ0RWxlbWVudChzcGFuLCBjbGFzcz0nSXRlbScpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nQXJjaGl2ZS5hc3AnKQorU0FYLmNoYXJhY3RlcnMoCismIzE1NzA7JiMxNTg1OyYjMTU4ODsmIzE2MTA7LCAxMikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChzcGFuKQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQoc3BhbiwgY2xhc3M9J0l0ZW0nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J1NlYXJjaC5hc3AnKQorU0FYLmNoYXJhY3RlcnMoCismIzE1ODA7JiMxNTg3OyYjMTU3ODsmIzE1ODA7LCAyNikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChzcGFuKQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQoc3BhbiwgY2xhc3M9J0l0ZW0nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9zaGFoaXJibG9nLmNvbS9kZXRhaWwuYXNwP2lkPTMwJykKK1NBWC5jaGFyYWN0ZXJzKAorJiMxNTgzOyYjMTU4NTsmIzE1NzY7JiMxNTc1OywgMTkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoc3BhbikKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguc3RhcnRFbGVtZW50KHNwYW4sIGNsYXNzPSdJdGVtJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdSU1MyLmFzcCcpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J3Nob3dpbWFnZS5hc3B4P3BhdGg9RmlsZXNfVXBsb2FkXDE5Mi5wbmcmYW1wO3dpZHRoPSUmZ3Q7JywgYm9yZGVyPScwJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5jaGFyYWN0ZXJzKAorUlNTICwgNSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChzcGFuKQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQoc3BhbiwgY2xhc3M9J0l0ZW0nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9JycpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoc3BhbikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYWxpZ249J2xlZnQnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkaXYsIGlkPSdEYXRlVGltZScpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHAsIGFsaWduPSdsZWZ0JykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5jaGFyYWN0ZXJzKCYjMTYxMDssIDIpCitTQVguY2hhcmFjdGVycygmIzE3MDU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTg4OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTYwNjssIDIpCitTQVguY2hhcmFjdGVycygmIzE1NzY7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA3OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU0ODssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygxNSwgMikKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTssIDIpCitTQVguY2hhcmFjdGVycygmIzE1ODU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTgzOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTYxMDssIDIpCitTQVguY2hhcmFjdGVycygmIzE1NzY7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA3OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4ODssIDIpCitTQVguY2hhcmFjdGVycygmIzE1Nzg7LCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoMTM4NywgNCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKCAKKwkJCQktLCA3KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoIAorCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQoc3BhbiwgZGlyPSdsdHInKQorU0FYLmNoYXJhY3RlcnMoU3VuZGF5LCBNYXkgMDQsIDIwMDgsIDIwKQorU0FYLmVuZEVsZW1lbnQoc3BhbikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguZW5kRWxlbWVudChkaXYpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQodGFibGUpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5lbmRFbGVtZW50KGRpdikKK1NBWC5jaGFyYWN0ZXJzKAorCQksIDMpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorCSwgMikKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisJLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorCQksIDMpCitTQVguc3RhcnRFbGVtZW50KHRkLCB2YWxpZ249J3RvcCcpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgYm9yZGVyPScwJywgd2lkdGg9JzEwMCUnLCBjZWxsc3BhY2luZz0nMCcsIGNlbGxwYWRkaW5nPScwJywgaWQ9J0NvbnRlbnQnKQorU0FYLmNoYXJhY3RlcnMoCisJCQksIDQpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgY2xhc3M9J1JpZ2h0JywgdmFsaWduPSd0b3AnLCBzdHlsZT0ncGFkZGluZy1yaWdodDogNjBweCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgd2lkdGg9JzEwMCUnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCQksIDcpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCQkJLCA4KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgdmFsaWduPSd0b3AnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCQkJCQorLCAxMCkKK1NBWC5zdGFydEVsZW1lbnQoc2NyaXB0KQorU0FYLmNkYXRhKAordmFyIHRncyA9IG5ldyBBcnJheSggJ2RpdicsJ3QsIDUzOSkKK1NBWC5lbmRFbGVtZW50KHNjcmlwdCkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRhYmxlLCB3aWR0aD0nMTAwJScsIGlkPSdOZXdzRGV0YWlsJykKK1NBWC5jaGFyYWN0ZXJzKAorCSwgMikKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgdmFsaWduPSd0b3AnKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5zdGFydEVsZW1lbnQoZGl2LCBjbGFzcz0nTmV3c19JbmZvJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJLCA0KQorU0FYLmNoYXJhY3RlcnMoJiMxNTc4OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTssIDIpCitTQVguY2hhcmFjdGVycygmIzE1ODU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjEwOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4MjssIDIpCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLmNoYXJhY3RlcnMoJiMxNTgzOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4NTssIDIpCitTQVguY2hhcmFjdGVycygmIzE1ODA7LCAyKQorU0FYLmNoYXJhY3RlcnMoOiAsIDIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCYjMTY3MDssIDIpCitTQVguY2hhcmFjdGVycygmIzE2MDc7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4NTssIDIpCitTQVguY2hhcmFjdGVycygmIzE1ODg7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA2OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NjssIDIpCitTQVguY2hhcmFjdGVycygmIzE2MDc7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTQ4OywgMikKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKDI5LCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4NzssIDIpCitTQVguY2hhcmFjdGVycygmIzE2MDE7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA2OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4MzssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygxMzg2IAorCQkJLSBXZWRuZXNkYXksIE1hcmNoIDE5LCAzNikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycyggCisJCQksIDUpCitTQVguY2hhcmFjdGVycygmIzE2MDY7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA4OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTYxMDssIDIpCitTQVguY2hhcmFjdGVycygmIzE1ODc7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA2OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4MzssIDIpCitTQVguY2hhcmFjdGVycygmIzE2MDc7LCAyKQorU0FYLmNoYXJhY3RlcnMoOiAsIDIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycyggCisJCQksIDUpCitTQVguY2hhcmFjdGVycygmIzE1ODM7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjAxOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU5MzssIDIpCitTQVguY2hhcmFjdGVycygmIzE1NzU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc4OywgMikKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguY2hhcmFjdGVycygmIzE2MDU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTg4OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTssIDIpCitTQVguY2hhcmFjdGVycygmIzE2MDc7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTgzOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTYwNzssIDIpCitTQVguY2hhcmFjdGVycyg6ICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoMjY4OCwgNCkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguY2hhcmFjdGVycyggCisJCQksIDUpCitTQVguY2hhcmFjdGVycygmIzE1NzY7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4NTssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLmNoYXJhY3RlcnMoJiMxNjAzOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4MzssIDIpCitTQVguY2hhcmFjdGVycyg6ICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoMzQxLCAzKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKAorCQksIDMpCitTQVguZW5kRWxlbWVudChkaXYpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5jb21tZW50KAorCQk8ZGl2PiYjMTU3NTsmIzE2MDY7JiMxNTgzOyYjMTU3NTsmIzE1ODY7JiMxNjA3OyAmIzE2MDE7JiMxNjA4OyYjMTYwNjsmIzE1Nzg7OiZuYnNwOworCQk8YSBocmVmPSJqYXZhc2NyaXB0OkNoYW5nZVNpemUoJ05ld3NCb2R5JywnN3B0JykiPjxmb250IHNpemU9IjEiPiYjMTcwNTsmIzE2MDg7JiMxNjcwOyYjMTcwNTs8L2ZvbnQ+PC9hPiZuYnNwOworCQk8YSBocmVmPSJqYXZhc2NyaXB0OkNoYW5nZVNpemUoJ05ld3NCb2R5JywnMTBwdCcpIj48Zm9udCBzaXplPSIyIj4mIzE2MDU7JiMxNTkzOyYjMTYwNTsmIzE2MDg7JiMxNjA0OyYjMTc0MDs8L2ZvbnQ+PC9hPiZuYnNwOworCQk8YSBocmVmPSJqYXZhc2NyaXB0OkNoYW5nZVNpemUoJ05ld3NCb2R5JywnMTNwdCcpIj48Zm9udCBzaXplPSIzIj4mIzE1NzY7JiMxNTg2OyYjMTU4NTsmIzE3MTE7PC9mb250PjwvYT4mbmJzcDsKKwkJPC9kaXY+KQorU0FYLmNoYXJhY3RlcnMoCisJCQorCisJCSwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGl2LCBjbGFzcz0nVGl0cjEnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkgLCA1KQorU0FYLmVuZEVsZW1lbnQoZGl2KQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCQksIDMpCitTQVguc3RhcnRFbGVtZW50KGRpdiwgaWQ9J05ld3NCb2R5JykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCisJCQksIDgpCitTQVguc3RhcnRFbGVtZW50KGRpdiwgY2xhc3M9J0ltYWdlJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQorCQkJCSwgMTApCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdzaG93aW1hZ2UuYXNweD9wYXRoPUZpbGVzX1VwbG9hZFwzMDIuSlBHJmFtcDtXaWR0aD0nLCByZWw9J2xpZ2h0Ym94JywgdGl0bGU9JyYjMTU4ODsmIzE2MDc7JiMxNjEwOyYjMTU4NTsgJiMxNTc2OyYjMTYwNDsmIzE1NzU7JiMxNzExOycpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0nc2hvd2ltYWdlLmFzcHg/cGF0aD1GaWxlc19VcGxvYWRcMzAyLkpQRyZhbXA7V2lkdGg9MjIwJywgYWxpZ249J2xlZnQnLCBib3JkZXI9JzEnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGRpdikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJLCA0KQorU0FYLnN0YXJ0RWxlbWVudChzdHJvbmcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzQnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nIzAwMDBmZicpCitTQVguY2hhcmFjdGVycygmIzE1OTM7JiMxNzA1OyYjMTU4NzssIDYpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyMwMDAwZmYnKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA1OyYjMTU4MTsmIzE1ODk7JiMxNjA4OywgODEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHN0cm9uZykKK1NBWC5zdGFydEVsZW1lbnQoczEpCitTQVguZXJyb3I6IFRhZyBzMSBpbnZhbGlkCitTQVguY2hhcmFjdGVycyggICwgMikKK1NBWC5lbmRFbGVtZW50KHMxKQorU0FYLmVuZEVsZW1lbnQoZGl2KQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCQksIDMpCitTQVguc3RhcnRFbGVtZW50KGRpdiwgYWxpZ249J2xlZnQnKQorU0FYLmNoYXJhY3RlcnMoCisJCQksIDQpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J3ByaW50ZnJpZW5kbHkuYXNwP2lkPTM0MScpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J3NoZWxsL1ByaW50RnJpZW5kbHkucG5nJywgYm9yZGVyPScwJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nIycsIG9uY2xpY2s9J3dpbmRvdy5vcGVuKCZhcG9zO1NlbmROZXdzLmFzcD9QYWdlSUQ9MzQxJmFwb3M7LCZhcG9zO215V2luJmFwb3M7LCZhcG9zO3Rvb2xiYXI9bm8sZGlyZWN0b3JpZXM9bm8sbG9jYXRpb249bm8sc3RhdHVzPW5vLG1lbnViYXI9bm8scmVzaXphYmxlPXllcyxzY3JvbGxiYXJzPW5vLHdpZHRoPTUwMCwgaGVpZ2h0PTIwMCZhcG9zOyk7IHJldHVybiBmYWxzZScpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBib3JkZXI9JzAnLCBzcmM9J1NoZWxsL1NlbmRUb0ZyaWVuZHMuanBnJywgd2lkdGg9JzE0MCcsIGhlaWdodD0nMzAnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmNoYXJhY3RlcnMoCisJCQksIDQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5lbmRFbGVtZW50KGRpdikKK1NBWC5jaGFyYWN0ZXJzKAorCQksIDMpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKwksIDIpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorCSwgMikKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudChocikKK1NBWC5lbmRFbGVtZW50KGhyKQorU0FYLnN0YXJ0RWxlbWVudChkaXYsIGlkPSdDb21tZW50cycpCitTQVguc3RhcnRFbGVtZW50KHVsKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA2OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU5MjssIDIpCitTQVguY2hhcmFjdGVycygmIzE1ODU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3ODssIDIpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNzA1OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTssIDIpCitTQVguY2hhcmFjdGVycygmIzE1ODU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc2OywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4NTssIDIpCitTQVguY2hhcmFjdGVycygmIzE1NzU7LCAyKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA2OywgMikKK1NBWC5jaGFyYWN0ZXJzKDosIDEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChsaSkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9J2JsdWUnKQorU0FYLmNoYXJhY3RlcnMoJiMxNTgxOyYjMTU3NTsmIzE1ODA7JiMxNzQwOyAsIDIyKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycyg0LzUvMjAwOCAtCisJCTc6MDg6MDAgUE0sIDIzKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NjsmIzE1NzU7ICYjMTU4MzsmIzE1ODU7LCAyOCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NjsmIzE1ODM7JiMxNjA4OyYjMTYwNjsgLCA0NzYpCitTQVguY2hhcmFjdGVycygmenduajssIDMpCitTQVguY2hhcmFjdGVycygmIzE1ODU7JiMxNTg3OyYjMTU4MzsgJiMxNTcwOywgMjAzKQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNjAzOyYjMTYwNjsmIzE2MTA7JiMxNjA1Oy4gLCAyMjIpCitTQVguY2hhcmFjdGVycygmenduajssIDMpCitTQVguY2hhcmFjdGVycygmIzE2MDc7JiMxNTc1OyYjMTYxMDsgJiMxNzExOywgNDAzKQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA3OyYjMTU3NTsKKwkJJiMxNTgwOywgNTYpCitTQVguY2hhcmFjdGVycygmenduajssIDMpCitTQVguY2hhcmFjdGVycygmIzE3MTE7JiMxNTg3OyYjMTU4NzsmIzE1Nzg7LCAyMzApCitTQVguY2hhcmFjdGVycygmenduajssIDMpCitTQVguY2hhcmFjdGVycygmIzE2MDc7JiMxNTc1OyAmIzE2MDg7ICYjMTYwNjssIDI0MCkKK1NBWC5jaGFyYWN0ZXJzKCZ6d25qOywgMykKK1NBWC5jaGFyYWN0ZXJzKCYjMTYwMzsmIzE1ODU7JiMxNTgzOyYjMTYxMDssIDM4KQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNTg1OyYjMTU4NzsmIzE1ODM7ICYjMTYwMzssIDIwOSkKK1NBWC5jaGFyYWN0ZXJzKCZ6d25qOywgMykKK1NBWC5jaGFyYWN0ZXJzKCYjMTYwMzsmIzE2MDY7JiMxNjEwOyYjMTYwNTsuICwgMjQxKQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OyYjMTYwNjsmIzE1ODM7ICYjMTYwODsgLCAyMjEpCitTQVguY2hhcmFjdGVycygmenduajssIDMpCitTQVguY2hhcmFjdGVycygmIzE2MDc7JiMxNTc1OyYjMTYxMDsgJiMxNTgyOywgODQ4KQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGxpKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nYmx1ZScpCitTQVguY2hhcmFjdGVycygmIzE1ODc7JiMxNzQwOyYjMTU3NTsmIzE2MDg7LCAxMSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoNC8zLzIwMDggLSA5OjI4OjAwIFBNLCAyMSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygmIzE2MDU7JiMxNTg1OyYjMTU4MzsgJiMxNjA3OywgNjkzKQorU0FYLmNoYXJhY3RlcnMoIiwgMSkKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4MDsmIzE2MDg7ICYjMTcxMTsmIzE3NDA7LCAxMSkKK1NBWC5jaGFyYWN0ZXJzKCIsIDEpCitTQVguY2hhcmFjdGVycyggJiMxNzA1OyYjMTYwNzsgJiMxNjA3OyYjMTU4NTssIDEwMDApCitTQVguY2hhcmFjdGVycyggJiMxNjA4OyYjMTU3NTsmIzE3NDA7ICYjMTU3NjssIDQ2MCkKK1NBWC5jaGFyYWN0ZXJzKCIsIDEpCitTQVguY2hhcmFjdGVycygmIzE2MDY7JiMxNjA3OywgNCkKK1NBWC5jaGFyYWN0ZXJzKCIsIDEpCitTQVguY2hhcmFjdGVycygmIzE1NzY7JiMxNzExOyYjMTYwODsmIzE3NDA7LCAyMzMpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nIzgwMDAwMCcpCitTQVguY2hhcmFjdGVycygmIzE1NzY7JiMxNTg3OyYjMTc0MDsmIzE1NzU7LCA2NykKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudChsaSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQobGkpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPSdibHVlJykKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTsmIzE1ODE7JiMxNTg3OyYjMTU3NTssIDI2KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycyg0LzMvMjAwOCAtIDg6MjE6MDAgUE0sIDIxKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NjsmIzE1NzU7ICYjMTU4NzsmIzE2MDQ7LCAyOTEpCitTQVguY2hhcmFjdGVycygiLCAxKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc2OyYjMTU4MzsmIzE2MDg7JiMxNjA2OyAsIDIzKQorU0FYLmNoYXJhY3RlcnMoIiwgMSkKK1NBWC5jaGFyYWN0ZXJzKCAmIzE2MDg7ICwgNCkKK1NBWC5jaGFyYWN0ZXJzKCIsIDEpCitTQVguY2hhcmFjdGVycyggJiMxNTc1OyYjMTU4MDsmIzE1NzU7JiMxNTg2OywgMzIpCitTQVguY2hhcmFjdGVycygiLCAxKQorU0FYLmNoYXJhY3RlcnMoICYjMTYwODsgLCA0KQorU0FYLmNoYXJhY3RlcnMoIiwgMSkKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NjsmIzE1ODc7JiMxNTg1OyYjMTU5MzssIDEwKQorU0FYLmNoYXJhY3RlcnMoIiwgMSkKK1NBWC5jaGFyYWN0ZXJzKCAmIzE1NDg7ICYjMTYwNTsmIzE1OTM7JiMxNTgzOywgMTAwMSkKK1NBWC5jaGFyYWN0ZXJzKCYjMTU4MzsgJiMxNjA1OyYjMTU4NTsmIzE1ODE7LCA0ODEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nIzgwMDAwMCcpCitTQVguY2hhcmFjdGVycygmIzE1NzU7JiMxNTgxOyYjMTU4NzsmIzE1NzU7LCA2MDIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGxpKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nYmx1ZScpCitTQVguY2hhcmFjdGVycygmIzE1OTM7JiMxNjA1OyYjMTU3NTsmIzE1ODM7ICwgNDEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJykKK1NBWC5jaGFyYWN0ZXJzKDQvMy8yMDA4IC0gNzoxNDowMCBQTSwgMjEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTg4OyYjMTYwNzsmIzE2MTA7JiMxNTg1OyAsIDIyNykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjODAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCYjMTYwNTsmIzE2MDU7JiMxNjA2OyYjMTYwODssIDY4KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KGxpKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChsaSkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9J2JsdWUnKQorU0FYLmNoYXJhY3RlcnMoJiMxNTgxOyYjMTU4NzsmIzE3NDA7JiMxNjA2OzosIDkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJykKK1NBWC5jaGFyYWN0ZXJzKDQvMy8yMDA4IC0gNzowNDowMCBQTSwgMjEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTg3OyYjMTYwNDsmIzE1NzU7JiMxNjA1OyAsIDgzNCkKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguY2hhcmFjdGVycygmYW1wOywgMSkKK1NBWC5jaGFyYWN0ZXJzKHBhc3RlLCA1KQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorJiMxNzA1OyYjMTYwNjsmIzE2MDU7ICYjMTcxMTssIDQ0MCkKK1NBWC5lbmRFbGVtZW50KGxpKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChsaSkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9J2JsdWUnKQorU0FYLmNoYXJhY3RlcnMoJiMxNTgxOyYjMTU3NTsmIzE1ODA7JiMxNzQwOyAsIDIyKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycyg0LzMvMjAwOCAtIDY6MDY6MDAgUE0gRk9PISwgMjYpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc2OyYjMTU3NTsgJiMxNTgzOyYjMTU4NTssIDEwMDApCitTQVguY2hhcmFjdGVycygmIzE2ODg7JiMxNTc1OyYjMTYwNjsmIzE1ODc7ICwgOTk5KQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA3OyYjMTU3NTsmIzE3NDA7ICYjMTU4ODssIDk4KQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNjA3OyYjMTU3NTsmIzE3NDA7ICYjMTU3ODssIDU5KQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OyYjMTc0MDsgJiMxNTc2OyYjMTYwNzsgLCAyNykKK1NBWC5jaGFyYWN0ZXJzKCZ6d25qOywgMykKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTsmIzE2MDQ7JiMxNjA1OyYjMTYwNDssIDE4NikKK1NBWC5jaGFyYWN0ZXJzKCZ6d25qOywgMykKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTsmIzE3NDA7ICYjMTU3NTsmIzE3NDA7LCAyOTkpCitTQVguY2hhcmFjdGVycygmenduajssIDMpCitTQVguY2hhcmFjdGVycygmIzE1NzU7JiMxNjA2OyYjMTU4MzsuICYjMTU3NTssIDIyMykKK1NBWC5jaGFyYWN0ZXJzKCZ6d25qOywgMykKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTsmIzE3NDA7ICYjMTU3NTsmIzE3NDA7LCA2NSkKK1NBWC5jaGFyYWN0ZXJzKCZ6d25qOywgMykKK1NBWC5jaGFyYWN0ZXJzKCYjMTU3NTsmIzE2MDQ7JiMxNjA1OyYjMTYwNDssIDQ3KQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OyYjMTc0MDsgJiMxNTgwOyYjMTYwNTssIDEzMCkKK1NBWC5jaGFyYWN0ZXJzKCZ6d25qOywgMykKK1NBWC5jaGFyYWN0ZXJzKCYjMTcwNTsmIzE2MDY7JiMxNTgzOy4gJiMxNTc2OywgMTMyKQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OyYjMTYwNDsmIzE2MDU7JiMxNjA0OywgOTMpCitTQVguY2hhcmFjdGVycygmenduajssIDMpCitTQVguY2hhcmFjdGVycygmIzE1NzU7JiMxNjA2OyYjMTU4MzsuICYjMTU3MDssIDI1KQorU0FYLmNoYXJhY3RlcnMoJnp3bmo7LCAzKQorU0FYLmNoYXJhY3RlcnMoJiMxNTc1OyYjMTYwNDsmIzE2MDU7JiMxNjA0OywgODE0KQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguZW5kRWxlbWVudCh1bCkKK1NBWC5lbmRFbGVtZW50KGRpdikKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvd2lyZWQuaHRtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvd2lyZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzEyM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC93aXJlZC5odG1sCkBAIC0wLDAgKzEsNDAwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tIFZpZ25ldHRlIFN0b3J5U2VydmVyIDQgRnJpIE9jdCAxNSAxMTozNzoxMiAxOTk5IC0tPjxodG1sPgorPGhlYWQ+PHRpdGxlPlRvcCBTdG9yaWVzIE5ld3MgZnJvbSBXaXJlZCBOZXdzPC90aXRsZT48L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSIjRkZGRkZGIiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMzMzMzk5IiB2bGluaz0iIzY2MDA2NiIgYWxpbms9IiM2NjY2OTkiPgorCis8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iNjAwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPjx0cj4KKzx0ZCB2YWxpZ249InRvcCIgYWxpZ249IkxFRlQiPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjQ2OCIgaGVpZ2h0PSI2MCIgYmdjb2xvcj0iI0ZGRkZGRiI+Cis8Zm9ybSBtZXRob2Q9IkdFVCIgYWN0aW9uPSJodHRwOi8vbnNhZHMuaG90d2lyZWQuY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smYW1wO1Byb2ZpbGVJRD05Njg4JmFtcDtSdW5JRD0xNDA3NCZhbXA7QWRJRD0yMjU4NCZhbXA7R3JvdXBJRD0xJmFtcDtGYW1pbHlJRD0yNjg0JmFtcDtUYWdWYWx1ZXM9OC4yNS4xNTYuMTU5LjE2Ni4xNzEuMTcyLjE3NC4xNzkuMTgwLjE4MS4xODIuMTgzLjE5Ni4xOTcuMTk5LjIwOC4zODkuNDEyLjQzNi4yMDQxLjY3NTAuNzg0NTYuNzk2MzAuODE4ODAmYW1wO1JlZGlyZWN0PWh0dHA6Ly93d3cuc3ByaW5nc3RyZWV0LmNvbS9hYS9jaXR5c2VhcmNoLmh0bSIgaWQ9ImZvcm0xIiBuYW1lPSJmb3JtMSI+DQorPHRyPgorPHRkIGJnY29sb3I9IiMzMzAwOTkiPjxpbnB1dCBuYW1lPSJjaXR5IiB0eXBlPSJ0ZXh0IiBzaXplPSI3IiBtYXhsZW5ndGg9IjIwIiB2YWx1ZT0iU2VhdHRsZSI+PC90ZD4NCis8dGQgcm93c3Bhbj0iMiIgYWxpZ249IkxFRlQiIGJnY29sb3I9IkZGRkZGRiI+PGlucHV0IHR5cGU9IklNQUdFIiBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL2FkdmVydGlzaW5nL2JsaXB2ZXJ0cy9hbGxhcGFydG1lbnRzLzk5MDYyNWpwYV9zc3Rob21lLmdpZiIgd2lkdGg9IjM3NSIgaGVpZ2h0PSI2MCIgYm9yZGVyPSIwIiB2YWx1ZT0ic2VhcmNoIiBoc3BhY2U9IjAiIGFsdD0iU2VhcmNoIG92ZXIgNiwwMDAsMDAwIEFwdHMgd2l0aCBTcHJpbmdTdHJlZXQiPjwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjMzMwMDk5Ij4NCis8c2VsZWN0IG5hbWU9InN0YXRlIj48b3B0aW9uIHZhbHVlPSJXQSIgc2VsZWN0ZWQ+V0ENCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IkFMIj5BTDwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iQUsiPkFLPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJBWiI+QVo8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IkFSIj5BUjwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iQ0EiPkNBPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJDTyI+Q088L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IkNUIj5DVDwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iREUiPkRFPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJEQyI+REM8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IkZMIj5GTDwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iR0EiPkdBPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJISSI+SEk8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IklEIj5JRDwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iSUwiPklMPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJJTiI+SU48L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IklBIj5JQTwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iS1MiPktTPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJLWSI+S1k8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IkxBIj5MQTwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iTUUiPk1FPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJNRCI+TUQ8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Ik1BIj5NQTwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iTUkiPk1JPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJNTiI+TU48L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Ik1TIj5NUzwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iTU8iPk1PPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJNVCI+TVQ8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Ik5FIj5ORTwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iTlYiPk5WPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJOSCI+Tkg8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Ik5KIj5OSjwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iTk0iPk5NPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJOWSI+Tlk8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Ik5DIj5OQzwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iTkQiPk5EPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJPSCI+T0g8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Ik9LIj5PSzwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iT1IiPk9SPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJQQSI+UEE8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IlBSIj5QUjwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iUkkiPlJJPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJTQyI+U0M8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IlNEIj5TRDwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iVE4iPlROPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJUWCI+VFg8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IlVUIj5VVDwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iVlQiPlZUPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJWQSI+VkE8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IldBIj5XQTwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iV1YiPldWPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJXSSI+V0k8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IldZIj5XWTwvb3B0aW9uPjwvc2VsZWN0PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNvdXJjZSIgdmFsdWU9IjJoYjhiaGMwNTkiPgorPC90ZD48L3RyPgorPC9mb3JtPg0KKzwvdGFibGU+PC90ZD4KKyAgICA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJSSUdIVCI+PGEgaHJlZj0iaHR0cDovL25zYWRzLmhvdHdpcmVkLmNvbS9ldmVudC5uZy9UeXBlPWNsaWNrJmFtcDtQcm9maWxlSUQ9NTU5NyZhbXA7UnVuSUQ9MTcxNjcmYW1wO0FkSUQ9MjI1ODgmYW1wO0dyb3VwSUQ9MSZhbXA7RmFtaWx5SUQ9MzIyOCZhbXA7VGFnVmFsdWVzPTguMjUuMTU5LjE3MS4xNzIuMTc0LjE3OS4xODAuMTgxLjE4Mi4xODMuMTk2LjE5Ny4xOTkuMjA4LjI0MS4zODkuNDEyLjQzNi4yMDM1LjY3NDkuNjc1MC43MDM2Ny43ODQ1Ni43OTYzMC44MTg4MCZhbXA7UmVkaXJlY3Q9aHR0cDolMkYlMkZ3d3cuaHAuY29tJTJGZ28lMkZvcmlnaW5hbCUyMCIgdGFyZ2V0PSJfdG9wIj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vYWR2ZXJ0aXNpbmcvYmxpcHZlcnRzL2hwX2NvbG9yaW5ramV0L2hwXzk3MGNfMTIweDYwXzYuZ2lmIiBib3JkZXI9IjEiIGhlaWdodD0iNjAiIHdpZHRoPSIxMjAiIGFsdD0iVHJ1ZSB0byB0aGUgT3JpZ2luYWwiPjwvYT48L3RkPgorICA8L3RyPjwvdGFibGU+Cis8IS0tIFdJUkVEIE5FV1MgaGVhZGVyIC0tPjwhLS0gQ01EX0hPU1QgPSBzY29vcC5ob3R3aXJlZC5jb20gLS0+PGEgbmFtZT0iIyI+PC9hPgorPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjYwMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKzx0cj4KKzx0ZD48L3RkPgorPHRkIGNvbHNwYW49IjIiPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjUiIHdpZHRoPSI0NDciIGFsdD0iIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCB2YWxpZ249IkJPVFRPTSIgYWxpZ249IlJJR0hUIiBjbGFzcz0id2lyZWQiIGJnY29sb3I9IiNGRkZGRkYiPjxhIGhyZWY9Ii9uZXdzLzAsMTI4NywsMDAuaHRtbCI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3dpcmVkXzAwMDAwMC5naWYiIHdpZHRoPSIxNTMiIGhlaWdodD0iMzAiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CisgICAgICA8dGQgYmdjb2xvcj0iI0ZGMDAwMCIgdmFsaWduPSJCT1RUT00iIGFsaWduPSJMRUZUIiB3aWR0aD0iOTciPjxhIGhyZWY9Ii9uZXdzLzAsMTI4NywsMDAuaHRtbCI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL25ld3NfZmZmZmZmLmdpZiIgd2lkdGg9IjEwMyIgaGVpZ2h0PSIzMCIgYm9yZGVyPSIwIj48L2E+PC90ZD4KKworCis8dGQgYmdjb2xvcj0iI0ZGMDAwMCIgYWxpZ249ImxlZnQiIHZhbGlnbj0iY2VudGVyIj48bm9icj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgd2lkdGg9IjM0NCIgaGVpZ2h0PSIxIj48YnI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPiZuYnNwOyZuYnNwOyZuYnNwOzxiPnVwZGF0ZWQgMTA6MTUgYS5tLiZuYnNwOyZuYnNwOzE1Lk9jdC45OS5QRFQ8L2I+PC9mb250Pjwvbm9icj48L3RkPgorCisKKyAgICAgICAgPC90cj4KKzx0cj4KKzx0ZCB2YWxpZ249Ik1JRERMRSIgYWxpZ249IlJJR0hUIiBiZ2NvbG9yPSIjRkZGRkZGIj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMzAiPjwvdGQ+CisgICAgICAKKyAgICAgIDx0ZCBjb2xzcGFuPSIyIiBiZ2NvbG9yPSIjOTk5OTk5Ij4KKworICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iNSI+Cis8Zm9ybSBuYW1lPSJSZWRpcmVjdFNlYXJjaCIgYWN0aW9uPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3NlYXJjaCI+CisgICAgICAgICAgICAgICAgPHRyPgorPHRkPiAKKzxmb250IGZhY2U9ImNvdXJpZXIiIHNpemU9IjEiPjxpbnB1dCB0eXBlPSJURVhUIiBuYW1lPSJxdWVyeSIgc2l6ZT0iMjAiIHZhbHVlPSIiPjwvZm9udD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZD4KKzxzZWxlY3QgbmFtZT0idXJsIj48b3B0aW9uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP0FjdGlvbj1GaWx0ZXJTZWFyY2gmYW1wO0ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmYW1wO1Jlc3VsdFRlbXBsYXRlPXZpZ25ldHRlLmh0cyZhbXA7Q29sbGVjdGlvbj12aWduZXR0ZSZhbXA7UXVlcnlNb2RlPUludGVybmV0JmFtcDtRdWVyeT0iIHNlbGVjdGVkPldpcmVkIE5ld3M8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Imh0dHA6Ly9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZhbXA7RmlsdGVyPWRvY3NfZmlsdGVyLmh0cyZhbXA7UmVzdWx0VGVtcGxhdGU9d2VibW9ua2V5Lmh0cyZhbXA7Q29sbGVjdGlvbj13ZWJtb25rZXkmYW1wO1F1ZXJ5TW9kZT1JbnRlcm5ldCZhbXA7UXVlcnk9Ij5XZWJtb25rZXk8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Imh0dHA6Ly9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/Y29sbGVjdGlvbj13ZWJtb25rZXlfZ3VpZGVzJmFtcDtBY3Rpb249RmlsdGVyU2VhcmNoJmFtcDtmaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJmFtcDtSZXN1bHRUZW1wbGF0ZT13ZWJtb25rZXlfZ3VpZGVzLmh0cyZhbXA7UXVlcnlNb2RlPUludGVybmV0JmFtcDtRdWVyeT0iPldlYm1vbmtleSBHdWlkZXM8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9Imh0dHA6Ly9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/Y29sbGVjdGlvbj1ob3R3aXJlZCZhbXA7QWN0aW9uPUZpbHRlclNlYXJjaCZhbXA7ZmlsdGVyPWRvY3NfZmlsdGVyLmh0cyZhbXA7UmVzdWx0VGVtcGxhdGU9aG90d2lyZWRfYXJjaGl2ZS5odHMmYW1wO1F1ZXJ5TW9kZT1JbnRlcm5ldCZhbXA7UXVlcnk9Ij5Ib3RXaXJlZCBBcmNoaXZlczwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9BY3Rpb249RmlsdGVyU2VhcmNoJmFtcDtGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJmFtcDtSZXN1bHRUZW1wbGF0ZT1tYWdhemluZS5odHMmYW1wO0NvbGxlY3Rpb249bWFnYXppbmUmYW1wO1F1ZXJ5TW9kZT1JbnRlcm5ldCZhbXA7UXVlcnk9Ij5XaXJlZCBNYWdhemluZTwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9BY3Rpb249RmlsdGVyU2VhcmNoJmFtcDtGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJmFtcDtSZXN1bHRUZW1wbGF0ZT1hbmltYXRpb24uaHRzJmFtcDtDb2xsZWN0aW9uPWFuaW1hdGlvbiZhbXA7UXVlcnlNb2RlPUludGVybmV0JmFtcDtRdWVyeT0iPkFuaW1hdGlvbiBFeHByZXNzPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP2NvbGxlY3Rpb249c3VjayZhbXA7QWN0aW9uPUZpbHRlclNlYXJjaCZhbXA7ZmlsdGVyPWRvY3NfZmlsdGVyLmh0cyZhbXA7UmVzdWx0VGVtcGxhdGU9c3Vjay5odHMmYW1wO1F1ZXJ5TW9kZT1JbnRlcm5ldCZhbXA7UXVlcnk9Ij5TdWNrLmNvbTwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9jb2xsZWN0aW9uPXViZXJfaG90d2lyZWQmYW1wO0FjdGlvbj1GaWx0ZXJTZWFyY2gmYW1wO2ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmYW1wO1Jlc3VsdFRlbXBsYXRlPXViZXJfaG90d2lyZWQuaHRzJmFtcDtRdWVyeU1vZGU9SW50ZXJuZXQmYW1wO1F1ZXJ5PSI+QWxsIG9mIEhvdFdpcmVkPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3LmhvdGJvdC5jb20vP1NNPU1DJmFtcDtEVj0wJmFtcDtMRz1hbnkmYW1wO1JEPVJHJmFtcDtEQz0xMCZhbXA7REU9MiZhbXA7X3Y9MiZhbXA7T1BzPU1EUlRQJmFtcDtNVD0iPlRoZSBXZWIgLSZndDsgSG90Qm90PC9vcHRpb24+PC9zZWxlY3Q+Cis8L3RkPgorICAgICAgICAgICAgPHRkPiAKKyAgICAgICAgICAgICAgPGlucHV0IHR5cGU9IlNVQk1JVCIgbmFtZT0iU1VCTUlUIiB2YWx1ZT0iU0VBUkNIIj4KKzwvdGQ+CisgICAgICAgICAgPC90cj4KKzwvZm9ybT4gICAgICAgIAorICAgICAgIDwvdGFibGU+Cis8L3RkPgorICAgICAgICA8L3RyPgorPCEtLSAKKzxUUj4KKzx0ZD48L3RkPgorPFREIHZhbGlnbj0iVE9QIiBhbGlnbj0iTEVGVCIgY29sc3Bhbj0iMyIgYmdjb2xvcj0iI0YwRjBGMCI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYiIGhlaWdodD0xIHdpZHRoPTE1IGFsdD0iIj48YnI+Cis8aT48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIyIj5TcG9uc29yZWQgYnk8YSBocmVmPSIjIj5TdW4gTWljcm9zeXN0ZW1zLjwvYT4gV2UncmUgdGhlIGRvdCBpbiAuY29tPC9mb250PjwvaT48aT48L2k+PC9URD4KKzwvVFI+CistLT4KKzwvdGFibGU+Cis8IS0tIGVuZCBXSVJFRCBORVdTIGhlYWRlciAtLT48IS0tIGJlZ2luIHVwcGVyIGxlZnQgc2lkZSBOYXZpZ2F0aW9uIC0tPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249IkxFRlQiIGJnY29sb3I9IiNGRkZGRkYiPgorPHRyPgorPHRkIGJnY29sb3I9IiNGRjAwMDAiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj4gCisgICAgICA8aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgd2lkdGg9IjE0NyIgaGVpZ2h0PSIxIiBib3JkZXI9IjAiPjxicj48Yj5TRUNUSU9OUzwvYj48L2ZvbnQ+PC90ZD4KKyAgPC90cj4KKzx0cj48dGQgYmdjb2xvcj0iI0NDRkZDQyI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9Ii9uZXdzL2J1c2luZXNzLzAsMTM2NywsMDAuaHRtbCI+QnVzaW5lc3M8L2E+PC9mb250PjwvdGQ+PC90cj4KKzx0cj48dGQgYmdjb2xvcj0iIzk5RkY5OSI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9Ii9uZXdzL2N1bHR1cmUvMCwxMjg0LCwwMC5odG1sIj5DdWx0dXJlPC9hPjwvZm9udD48L3RkPjwvdHI+Cis8dHI+PHRkIGJnY29sb3I9IiNDQ0ZGQ0MiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSIvbmV3cy90ZWNobm9sb2d5LzAsMTI4MiwsMDAuaHRtbCI+VGVjaG5vbG9neTwvYT48L2ZvbnQ+PC90ZD48L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjOTlGRjk5Ij48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iL25ld3MvcG9saXRpY3MvMCwxMjgzLCwwMC5odG1sIj5Qb2xpdGljczwvYT48L2ZvbnQ+PC90ZD48L3RyPgorPHRyPgorPHRkIGJnY29sb3I9IiNGRjAwMDAiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj4KKzxiPldJUkUgU0VSVklDRSBORVdTPC9iPjwvZm9udD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjOTlGRjk5Ij48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iL25ld3MvbmV3cy9yZXV0ZXJzLyI+VG9wIEhlYWRsaW5lczwvYT48L2ZvbnQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYmdjb2xvcj0iI0NDRkZDQyI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9Ii9uZXdzL25ld3MvcmV1dGVycy9zcG9ydHMvIj5TcG9ydHM8L2E+PC9mb250PjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGJnY29sb3I9IiM5OUZGOTkiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSIvbmV3cy9uZXdzL3JldXRlcnMvYnVzaW5lc3MvIj5GaW5hbmNlPC9hPjwvZm9udD48L3RkPgorPC90cj4KKzwhLS0gRW5kIHVwcGVyIGxlZnQgbmF2IC0tPjwhLS0gQmVnaW4gbG93ZXIgTGVmdCBOYXYgLS0+PHRyPgorPHRkIGJnY29sb3I9IiNGRjAwMDAiPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj4gCisgICAgICA8Yj48Zm9udCBzaXplPSIxIj5GUkVFIERFTElWRVJZPC9mb250PjwvYj48L2ZvbnQ+PC90ZD4KKyAgICA8L3RyPgorPHRyPgorPHRkIGJnY29sb3I9IiM5OUZGOTkiPgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj48dHI+Cis8dGQgYmdjb2xvcj0iIzk5RkY5OSI+CisJCSA8Zm9ybSBhY3Rpb249Imh0dHA6Ly9yLmhvdHdpcmVkLmNvbS9yL2h3X3dtX3JfbmF2X253c2x0ci9odHRwOi8vcGVybC5ob3R3aXJlZC5jb20vbWFzc21haWwvY2dpUGFyc2VyLmNnaSIgbWV0aG9kPSJnZXQiIHRhcmdldD0iX3RvcCI+CisKKyA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzdWNjZXNzX3BhZ2UiIHZhbHVlPSJodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS9lbWFpbC9zaWdudXAvd2lyZWRuZXdzLWFzY2lpLmh0bWwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhaWx1cmVfcGFnZSIgdmFsdWU9Imh0dHA6Ly93d3cuaG90d2lyZWQuY29tL2VtYWlsL3NpZ251cC93aXJlZG5ld3MtYXNjaWkuaHRtbCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTElTVCIgdmFsdWU9InduX2FzY2lpIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTT1VSQ0UiIHZhbHVlPSJvdGhlciI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQUNUSU9OIiB2YWx1ZT0ic3Vic2NyaWJlIj48aW5wdXQgdHlwZT0iVEVYVCIgbmFtZT0iZnJvbSIgc2l6ZT0iMTAiIHZhbHVlPSJlbnRlciBlbWFpbCI+Jm5ic3A7Cis8L2Zvcm0+Cis8L3RkPiAKKwkJPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOTlGRjk5Ij4KKwkJPGlucHV0IHR5cGU9IlNVQk1JVCIgbmFtZT0iU1VCTUlUIiB2YWx1ZT0iR08iPgorPC90ZD4KKwk8L3RyPjwvdGFibGU+Cis8L3RkPgorICA8L3RyPgorPHRyPgorPHRkIGJnY29sb3I9IiNGRjAwMDAiPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj4gCisgICAgICA8Yj48Zm9udCBzaXplPSIxIj5TVE9DS1M8L2ZvbnQ+PC9iPjwvZm9udD48L3RkPgorICA8L3RyPgorPHRyPgorPHRkIGJnY29sb3I9IiM5OUZGOTkiPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPkdldCBRdW90ZTo8L2ZvbnQ+PC90ZD4KKyAgPC90cj4KKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjOTlGRjk5IiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj48Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJodHRwOi8vci53aXJlZC5jb20vci8xMDAyMC9odHRwOi8vc3RvY2tzLndpcmVkLmNvbS9zdG9ja3NfcXVvdGVzLmFzcCI+Cis8aW5wdXQgdHlwZT0iVEVYVCIgbmFtZT0iU3ltYm9sIiBzaXplPSIxMiI+Jm5ic3A7PGlucHV0IHR5cGU9IlNVQk1JVCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0iR08iPgorPC9mb3JtPjwvdGQ+CisgIDwvdHI+Cis8IS0tIEJFR0lOIEJVVFRPTiBBRFMgLS0+PHRyPgorPHRkIGJnY29sb3I9IiNDQ0ZGQ0MiPgorPGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkZpbmFuY2lhbCBTZXJ2aWNlczwvZm9udD48YnI+PGNlbnRlcj4KKzxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjMiIHdpZHRoPSI1IiBhbHQ9IiI+PGJyPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9idXR0b25fYWRzX25ld3MxMC5naWYiIHdpZHRoPSIxNDMiIGhlaWdodD0iNTYiIGJvcmRlcj0iMCIgYWx0PSIiIHVzZW1hcD0iI2J1dHRvbnMiIGhzcGFjZT0iMCIgdnNwYWNlPSIwIj4KKzwvY2VudGVyPgorCis8bWFwIG5hbWU9ImJ1dHRvbnMiPjxhcmVhIHNoYXBlPSJSRUNUIiBhbHQ9IkRhdGVrIiBjb29yZHM9IjAsMCw2OSwyNCIgaHJlZj0iaHR0cDovL3Iud2lyZWQuY29tL3IvMTY0OS9odHRwOi8vYWRzMTYuZm9jYWxpbmsuY29tL1NtYXJ0QmFubmVyL3BhZ2UvMTI2Ni42MzEiPgorPGFyZWEgc2hhcGU9IlJFQ1QiIGFsdD0iV2lyZWQgSW5kZXggRnVuZCIgY29vcmRzPSI3MywwLDE0MiwyNCIgaHJlZj0iaHR0cDovL3Iud2lyZWQuY29tL3IvMjI3L2h0dHA6Ly93d3cuZ2ZmdW5kcy5jb20vd2lyZWQiPgorPGFyZWEgc2hhcGU9IlJFQ1QiIGFsdD0iaW50ZXJuZXQuY29tIEluZGV4IEZ1bmQiIGNvb3Jkcz0iNzMsMzEsMTQyLDU1IiBocmVmPSJodHRwOi8vci53aXJlZC5jb20vci8yOTgvaHR0cDovL3d3dy5nZmZ1bmRzLmNvbS9pc2RleC8iPgorPGFyZWEgc2hhcGU9IlJFQ1QiIGFsdD0iR2V0U21hcnQncyBNb3J0Z2FnZUZpbmRlciIgY29vcmRzPSIwLDMxLDY5LDU1IiBocmVmPSJodHRwOi8vci53aXJlZC5jb20vci8yOTQvaHR0cDovL3d3dy5nZXRzbWFydGluYy5jb20vbW9ydGdhZ2UvSG9tZUJhbm5lcj9CQU5ORVJOQU1FPXd3dy5nZXRzbWFydGluYy5jb20vbXdpcmVkMDAxbTYwNzV4MjUiPjwvbWFwPgorPC90ZD4KKyAgPC90cj4KKzwhLS0gRU5EIEJVVFRPTiBBRFMgLS0+PHRyPgorPHRkIGJnY29sb3I9IiM5OUZGOTkiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzUxL2h0dHA6Ly9zdG9ja3Mud2lyZWQuY29tLyI+VG9kYXkncyBTdW1tYXJ5PC9hPjwvZm9udD48L3RkPgorICA8L3RyPgorPHRyPgorPHRkIGJnY29sb3I9IiNDQ0ZGQ0MiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSJodHRwOi8vci53aXJlZC5jb20vci9oYl9maW5fcl93bl90b3AvaHR0cDovL3N0b2Nrcy53aXJlZC5jb20vc3RvY2tzX2luZGV4ZXNfZGV0YWlsLmFzcD9TeW1ib2w9JTI0V0lSRUQiPldpcmVkIEluZGV4PC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly9yZWRpcmVjdC53aXJlZC5jb20vcmVkaXIvNTIvaHR0cDovL3N0b2Nrcy53aXJlZC5jb20vc3RvY2tzX2luZGV4ZXMuYXNwJTIwIj5BbGwgSW5kZXhlczwvYT48L2ZvbnQ+PC90ZD4KKyAgPC90cj4KKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjOTlGRjk5Ij48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iaHR0cDovL3JlZGlyZWN0LndpcmVkLmNvbS9yZWRpci81My9odHRwOi8vc3RvY2tzLndpcmVkLmNvbS9zdG9ja3NfcG9ydGZvbGlvcy5hc3AiPlBvcnRmb2xpb3M8L2E+PC9mb250PjwvdGQ+CisgIDwvdHI+Cis8IS0tIEJFR0lOIEImTiBzcG90IC0tPjx0cj4KKzx0ZCBiZ2NvbG9yPSIjRkYwMDAwIj48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iI0ZGRkZGRiI+PGI+RklORCBBIEJPT0s8L2I+PC9mb250PjwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBiZ2NvbG9yPSIjQ0NGRkNDIj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgd2lkdGg9IjE0NSI+Cis8dHI+PHRkIGJnY29sb3I9IiNDQ0ZGQ0MiPgorICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iaHR0cDovL3Iud2lyZWQuY29tL3Ivd25fbmF2X2NfYm4vaHR0cDovL2Jhcm5lc2FuZG5vYmxlLmJmYXN0LmNvbS9ib29rbGluay9jbGljayI+Cis8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzb3VyY2VpZCIgdmFsdWU9IjM4MzQ3MSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY2F0ZWdvcnlpZCIgdmFsdWU9ImNhdGVnb3J5ZHJvcGRvd24iPjxmb250IHNpemU9IjIiPgorICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0iU3ViamVjdHMiIHNpemU9IjQiPjxvcHRpb24gdmFsdWU9IjMwMSI+QnVzaW5lc3MgVG9wIDIwCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjUwMCI+Q29tcHV0ZXJzCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjUwMyI+Q29tcHV0ZXIgR2FtZXMKKzwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iMTYwNCI+Q3VycmVudCBBZmZhaXJzCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjUxMSI+Q3liZXJjdWx0dXJlCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjUxMCI+SW50ZXJuZXQvV2ViCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjMwMyI+SW52ZXN0aW5nCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjE2MDYiPkxhdworPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSI1MTMiPk11bHRpbWVkaWEKKworPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSIxNjA1Ij5OZXdzbWFrZXJzCis8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjE2MDciPlBvbGl0aWNzL0dvdnQuCisKKyA8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjMxNSI+IFdlYiBCdXNpbmVzcworICA8L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9IjI4MDAiPiBCYXJnYWluIEJvb2tzCisgICAgICAgICAgICAgICAgICAgICAgICAKKzwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0iNCI+T3RoZXIgCisKKworCisgCisKKyA8L29wdGlvbj48L3NlbGVjdD48L2ZvbnQ+Cis8L2Zvcm0+Cis8L3RkPjwvdHI+Cis8dHIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iI0NDRkZDQyI+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHTyI+PGltZyBzcmM9Imh0dHA6Ly9iYXJuZXNhbmRub2JsZS5iZmFzdC5jb20vYm9va2xpbmsvc2VydmU/c291cmNlaWQ9MzgzNDcxJmFtcDtpc19zZWFyY2g9WSIgYm9yZGVyPSIwIiBhbGlnbj0idG9wIj48IS0tCis8SU1HIFNSQz0iaHR0cDovL3d3dy53aXJlZC5jb20vcGFydG5lci9ibi90cmFja2luZ2ltZy9vdF93bl9uYXZfY19ibi5naWYiIGJvcmRlcj0wIHdpZHRoPTEgaGVpZ2h0PTEgYWxpZ249dG9wPgorLS0+Cis8L3RkPgorICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8L3RyPgorPHRyIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIiByb3dzcGFuPSIxIiBiZ2NvbG9yPSIjQ0NGRkNDIj4KKzxwPgorICAgICAgICA8Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCAiIGNvbG9yPSIjMDAwMDAwIj5Qb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9yLndpcmVkLmNvbS9yL3duX25hdl9jX2JuL2h0dHA6Ly9iYXJuZXNhbmRub2JsZS5iZmFzdC5jb20vYm9va2xpbmsvY2xpY2s/c291cmNlaWQ9MzgzNDcxIj5iYXJuZXNhbmRub2JsZS5jb208L2E+CisgPC9mb250PgorPGJyIGNsZWFyPSJhbGwiPjwvcD4KKzwvdGQ+CisgICAgICAgIDwvdHI+Cis8L3RhYmxlPgorPC90ZD48L3RyPgorPCEtLSBFTkQgQiZOIHNwb3QgLS0+PCEtLSBCRUdJTiBNQUdBWklORSBTUE9UIC0tPjx0cj4KKzx0ZCBiZ2NvbG9yPSIjMDAwMDAwIj48Zm9udCBjb2xvcj0iI0ZGRkZGRiIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+PGI+V0lSRUQgCisgICAgICBNQUdBWklORSA8L2I+PC9mb250PjwvdGQ+CisgIDwvdHI+Cis8dHI+Cis8dGQgYmdjb2xvcj0iI0ZGRkY5OSIgYWxpZ249IkNFTlRFUiI+Cis8Zm9udCBmYWNlPSJ2ZXJkYW5hLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIxIj4KKzxiPgorPGJyPjxhIGhyZWY9Imh0dHA6Ly93d3cud2lyZWQuY29tL3dpcmVkLyI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3dpcmVkY292ZXIuZ2lmIiB3aWR0aD0iOTEiIGhlaWdodD0iMTA5IiBib3JkZXI9IjAiIGFsdD0iV2lyZWQgTWFnYXppbmUiPjwvYT48YnI+PC9iPgorCitJc3N1ZSA3LjExCis8L2ZvbnQ+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjRkZGRjk5IiBhbGlnbj0iY2VudGVyIj4KKzxmb250IGZhY2U9InZlcmRhbmEsIGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPiAKKworPGEgaHJlZj0iaHR0cDovL3d3dy53aXJlZC5jb20vd2lyZWQvc3Vic2NyaWJlL3NwZWNpYWwvNzlXTiI+U3Vic2NyaWJlIHRvIFdpcmVkLjxicj5TcGVjaWFsIG9mZmVyITwvYT4KKworCis8L2ZvbnQ+Cis8L3RkPgorPC90cj4KKzwhLS0gRU5EIE1BR0FaSU5FIFNQT1QgLS0+PHRyPgorPHRkIGJnY29sb3I9IiMwMDAwMDAiPiAKKyAgICA8Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iI0ZGRkZGRiI+PGI+SE9UV0lSRUQ8L2I+PC9mb250PgorPC90ZD4KKyAgPC90cj4KKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjRkZGRjk5Ij4gPGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPgorPGEgaHJlZj0iaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vIj5Gcm9udGRvb3I8L2E+PGJyPjxhIGhyZWY9Imh0dHA6Ly93d3cuaG90d2lyZWQuY29tL3dlYm1vbmtleS8iPldlYm1vbmtleTwvYT48YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vd2VibW9ua2V5L2d1aWRlcy9pbmRleC5odG1sIj5XZWJtb25rZXkgR3VpZGVzPC9hPjxicj48YSBocmVmPSJodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS9yZ2IvIj5SR0IgR2FsbGVyeTwvYT48YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vYW5pbWF0aW9uLyI+QW5pbWF0aW9uIEV4cHJlc3M8L2E+PGJyPjxhIGhyZWY9Imh0dHA6Ly9nby5zdWNrLmNvbS9zdV93bmZkIj5TdWNrLmNvbTwvYT48YnI+PC9mb250PgorPC90ZD4KKyAgPC90cj4KKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjMDAwMDAwIj4gCisgICAgPGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPjxiPkhPVEJPVDwvYj48L2ZvbnQ+Cis8L3RkPgorICA8L3RyPgorPHRyPgorPHRkIGJnY29sb3I9IiNGRkZGOTkiPiA8Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+Cis8YSBocmVmPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzU0L2h0dHA6Ly93d3cuaG90Ym90LmNvbS8iPlNlYXJjaDwvYT48YnI+PGEgaHJlZj0iaHR0cDovL3Nob3AuaG90Ym90LmNvbS8iPlNob3BwaW5nPC9hPjxicj48L2ZvbnQ+Cis8L3RkPgorICA8L3RyPgorPHRyPgorPHRkPgorICA8YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+CisgIDxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPgorICBXaXJlZCBOZXdzIDxhIGhyZWY9Ii9uZXdzL3doby8wLDEzNjIsLDAwLmh0bWwiPnN0YWZmPC9hPjxicj48YnI+PCEtLSBXaXJlZCBOZXdzIGlzIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lyZWQuY29tL25ld3Mvam9icy5odG1sIj5oaXJpbmc8L2E+PGJyPjxicj4gLS0+PGI+PGEgaHJlZj0iL25ld3MvZmVlZGJhY2svMCwxMzY0LCwwMC5odG1sIj5Db250YWN0IHVzPC9hPjwvYj48L2ZvbnQ+CisKKyAgCisgIDxicj48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+V2lyZWQgTmV3cyAgZGVsaXZlcmVkPGJyPmJ5IDxhIGhyZWY9Ii9uZXdzL3BhbG1waWxvdC8wLDEzNjUsLDAwLmh0bWwiPlBhbG1QaWxvdDwvYT4sPGJyPjxhIGhyZWY9Imh0dHA6Ly93d3cuaG90d2lyZWQuY29tL2VtYWlsL3NpZ251cC93bl9vdXRsb29rLmh0bWwiPk91dGxvb2sgIEV4cHJlc3M8L2E+LDxicj48YSBocmVmPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzU1L2h0dHA6Ly9mb3JtLm5ldHNjYXBlLmNvbS9pYmQvaHRtbC9pYmRfZnJhbWVzZXQuaHRtbCI+SW4tQm94IERpcmVjdDwvYT4sPGJyPgorb3IgPGEgaHJlZj0iL25ld3MvcG9pbnRjYXN0LzAsMTM2NiwsMDAuaHRtbCI+UG9pbnRDYXN0PC9hPjwvZm9udD48YnI+PCEtLSBUUkFDS0lORyAtLT48aW1nIHNyYz0iaHR0cDovL3d3dy53aXJlZC5jb20vc3BlY2lhbC9tb2R4L25ld3MuZ2lmIiBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBhbHQ9IiI+PC9mb250PgorPC90ZD4KKyAgPC90cj4KKzwvdGFibGU+Cis8IS0tIGVuZCBsb3dlciBsZWZ0IHNpZGUgTmF2aWdhdGlvbiAtLT48IS0tIENPTlRFTlQgVEFCTEUgLS0+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjQ0NyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXJjb2xvcj0iIzY2RkYwMCI+Cis8dHI+Cis8dGQgdmFsaWduPSJUT1AiIGFsaWduPSJMRUZUIiByb3dzcGFuPSIyIj4KKyAgIDxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjEiIHdpZHRoPSIxNSIgYWx0PSIiPjxicj4KKzwvdGQ+CisgIDx0ZCBjb2xzcGFuPSIzIiB2YWxpZ249IlRPUCIgYWxpZ249IkxFRlQiPgorPGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYiIGhlaWdodD0iNyIgd2lkdGg9IjQzMiIgYWx0PSIiPjxicj48IS0tIFNRTCBxdWVyeSBmb3IgUGFja2FnZSBoZXJlIC0tPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjIiPjxiPjxpPk5vbWFkJ3MgTGFuZDwvaT48L2I+PC9mb250Pjxicj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvcGl4MTU1LmdpZiIgaGVpZ2h0PSIxMCIgd2lkdGg9IjE1NSIgYWx0PSIiPjxicj48IS0tIElCRF9TVUJKRUNUOiBIb21lbGVzcywgYnV0IElEJ2QsIGluIFNlYXR0bGUgLS0+PGZvbnQgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iNSI+PGI+PGEgaHJlZj0iL25ld3MvcG9saXRpY3MvMCwxMjgzLDMxOTExLDAwLmh0bWwiPkhvbWVsZXNzLCBidXQgSUQnZCwgaW4gU2VhdHRsZTwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iI0ZGMDAwMCI+ODoxNSBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjIiPlRoZSBjaXR5IGNvdW5jaWwgYXBwcm92ZXMgYSBwbGFuIHRvIHRyYWNrIHRoZSBob21lbGVzcyBieSBhIG51bWJlcmluZyBzeXN0ZW0sIHNheWluZyBpdCdsbCBpbXByb3ZlIHNlcnZpY2VzLiBUaGUgaW1wbGljYXRpb25zIHdvcnJ5IHByaXZhY3kgYWR2b2NhdGVzLCBuYXR1cmFsbHkuIEJ5IENyYWlnIEJpY2tuZWxsLjwvZm9udD48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+PGk+PGEgaHJlZj0iL25ld3MvcG9saXRpY3MvMCwxMjgzLCwwMC5odG1sIj5pbiZuYnNwO1BvbGl0aWNzPC9hPjwvaT48L2ZvbnQ+PGJyPjx0YWJsZSBiZ2NvbG9yPSIjRjBGMEYwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgd2lkdGg9IjE0NyIgYWxpZ249IlJJR0hUIj4KKzwhLS0gQ29tbWVudGFyeSBGcmFnIEJlZ2luIC0tPjx0cj4KKzx0ZCBiZ2NvbG9yPSIjMDAwMDAwIj4mbmJzcDs8L3RkPgorICAgICAgICAgIDx0ZCBiZ2NvbG9yPSIjMDAwMDAwIj48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iI0ZGRkZGRiI+PGI+SElUUyAmYW1wOyBNSVNDLjwvYj48L2ZvbnQ+PC90ZD4KKyAgICAgICAgPC90cj4KKzx0cj4KKzx0ZD4mbmJzcDs8L3RkPgorICAgICAgICAgIDx0ZD4KKzxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjUiIHdpZHRoPSI1IiBhbHQ9IiI+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MvY29tbWVudGFyeVNlY3Rpb24vMCwxMjkyLDMxNjY0LDAwLmh0bWwiPkNhbGVuZGFyIG9mIEUtVmVudHM8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPk9uZ29pbmcgZ29pbmdzLW9uLiA8L2ZvbnQ+PGJyPjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2NvbW1lbnRhcnlTZWN0aW9uLzAsMTI5MiwzMTkyNiwwMC5odG1sIj5SYW50cyAmYW1wOyBSYXZlczwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPSIxIiBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+UmVhZGVycyBvbiBBcHBsZSdzIEc0IC4uLiBBT0wncyBwYXNzd29yZHMgLi4uIE1TIHZzLiBMaW51eC48L2ZvbnQ+PGJyPjxicj48L2ZvbnQ+PC9mb250PgorPC90ZD4KKyAgICAgICAgPC90cj4KKzwhLS0gQ29tbWVudGFyeSBGcmFnIEVuZCAtLT48dHI+Cis8dGQgYWxpZ249ImxlZnQiIGJnY29sb3I9IiMwMDAwMDAiPiZuYnNwOzwvdGQ+IAorPHRkIGJnY29sb3I9IiMwMDAwMDAiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj48Yj5DVVJSRU5UIEhPTy1IQTwvYj48L2ZvbnQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Jm5ic3A7PC90ZD4KKzx0ZD4KKzxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjUiIHdpZHRoPSI1IiBhbHQ9IiI+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MvbXAzLzAsMTI4NSwsMDAuaHRtbCI+TVAzIFJvY2tzIHRoZSBXZWI8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkRvd25sb2FkIHRoZSBzb3VuZC4gIDxicj48aT5TcG9uc29yZWQgYnkgPGEgaHJlZj0iaHR0cDovL3IuaG90d2lyZWQuY29tL3Ivd25fZmRfbXAzX3JfbXNjbV90eHQvaHR0cDovL3dlYmZhcm0ubWVkaWFwbGV4LmNvbS9jbGlja190aHJ1X3JlcXVlc3QvMTY0LTEzNjFiLTEwNTIiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGZvbnQgY29sb3I9IiMwMDAwMDAiPk11c2ljbWFrZXI8L2ZvbnQ+PC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL3dpcmVsZXNzLzAsMTM4MiwsMDAuaHRtbCI+VGhlIFdpcmVsZXNzIFdvcmxkPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxmb250IHNpemU9IjEiIGZhY2U9IkFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5OZXR3b3JraW5nIGdldHMgdW5wbHVnZ2VkLiAgPGJyPjxpPlNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LmVyaWNzc29uLnNlL2dldC9pbnRlcm5ldC9kZWZhdWx0LnNodG1sIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxmb250IGNvbG9yPSIjMDAwMDAwIj5Fcmljc3NvbjwvZm9udD48L2E+PC9pPjwvZm9udD48YnI+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MvZGlnaXdvb2QvMCwxNDEyLCwwMC5odG1sIj5EaWdpdGFsIEhvbGx5d29vZDwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPSIxIiBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+VGhlIGJ1enogb2YgdGVjaC48L2ZvbnQ+PGJyPjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2lwby8wLDEzNTAsLDAwLmh0bWwiPklQTyBPdXRsb29rPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxmb250IHNpemU9IjEiIGZhY2U9IkFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5EZWFscyBpbiB0aGUgcGlwZWxpbmUuICA8YnI+PGk+U3BvbnNvcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9yLmhvdHdpcmVkLmNvbS9yL3duX2lwb19yX3N1bl90eHQvaHR0cDovL3N1bi5jb20vYWRzL3NtaS9icmFuZC9ob3R3aXJlZC5odG1sIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxmb250IGNvbG9yPSIjMDAwMDAwIj5TdW48L2ZvbnQ+PC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2ViaXovMCwxMjcyLCwwMC5odG1sIj5FLUJpejwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPSIxIiBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+QnVzaW5lc3MgdW51c3VhbC4gIDxicj48aT5TcG9uc29yZWQgYnkgPGEgaHJlZj0iaHR0cDovL3Iud2lyZWQuY29tL3Ivd25fZmRfcl9lYml6X2libV90eHQvaHR0cDovL3d3dy5pYm0uY29tIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxmb250IGNvbG9yPSIjMDAwMDAwIj5JQk08L2ZvbnQ+PC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL21lZHRlY2gvMCwxMjg2LCwwMC5odG1sIj5NZWQtVGVjaCBDZW50ZXI8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkZyb20gdGhlIGJsZWVkaW5nIGVkZ2UuPGJyPjxpPlNwb25zb3JlZCBieSBXZWJNRDwvaT48L2ZvbnQ+PGJyPjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2xpbnV4LzAsMTQxMSwsMDAuaHRtbCI+VGhlIExpbnV4IEVmZmVjdDwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPSIxIiBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+Tm90IGp1c3QgZm9yIGdlZWtzLjwvZm9udD48YnI+PGJyPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjciIHdpZHRoPSI1IiBhbHQ9IiI+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MvZXhlYy8wLDEzNzAsLDAwLmh0bWwiPkV4ZWN1dGl2ZSBTdW1tYXJ5PC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9IjEiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5DRU9zLCBDT09zLCBDSU9zIHVuaXRlLiAgPGJyPjxpPlNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vci53aXJlZC5jb20vci93bl9leGVjX3Jfdmlnbi9odHRwOi8vd3d3LnZpZ25ldHRlLmNvbS8iIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGZvbnQgY29sb3I9IiMwMDAwMDAiPlZpZ25ldHRlPC9mb250PjwvYT48L2k+PC9mb250Pjxicj48YnI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Yj48YSBocmVmPSIvbmV3cy9zY2hvb2wvMCwxMzgzLCwwMC5odG1sIj5NYWtpbmcgdGhlIEdyYWRlPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxmb250IHNpemU9IjEiIGZhY2U9IkFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5SZWFkaW5nLCB3cml0aW5nLCBhbmQgUk9NLiAgPGJyPjxpPlNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vci5ob3R3aXJlZC5jb20vci93bl9zY2hfcl9uYXZfdW9wL2h0dHA6Ly9hZHMyNS5mb2NhbGluay5jb20vU21hcnRCYW5uZXIvcGFnZT8xMjYzMC41MyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+VSBvZiBQaG9lbml4PC9mb250PjwvYT48L2k+PC9mb250Pjxicj48YnI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Yj48YSBocmVmPSIvbmV3cy9pbmZvc3RydWN0dXJlLzAsMTM3NywsMDAuaHRtbCI+SW5mb3N0cnVjdHVyZTwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPSIxIiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+QW4gSVMvSVQgcmVzb3VyY2UgPGJyPjxpPlNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vci53aXJlZC5jb20vci93bl9pc19yX3NzZWMvaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGs7NjUzMTYzOzM1OTk1NzE7cz9odHRwOi8vd3d3LnNwcmludGJpei5jb20vcyUwQWVydmxldC9hcHBzZXJ2bGV0P2Zyb209L3dpcmVkL3NwcmludC8mYW1wO3RlbXBsYXRlPS9zZWN1cml0eS9zZWN1cml0eS5odG1sJmFtcDtTSVRFPSUwQXdpcmVkLmNvbSZhbXA7QkFOTkVSPVNwcmludCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+U3ByaW50PC9mb250PjwvYT48L2k+PC9mb250PjwvZm9udD48YnI+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MveTJrLzAsMTM2MCwsMDAuaHRtbCI+WTJLIFdhdGNoPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxmb250IHNpemU9IjEiIGZhY2U9IkFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5UaWNrLi4uIFRpY2suLi4gVGljay4uLjwvZm9udD48YnI+PGJyPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjIiPjxiPjxpPjxhIGhyZWY9Ii9uZXdzL3NwZWNpYWxfcmVwb3J0cy8xLDEyOTMsLDAwLmh0bWwiPk1vcmUgSG9vLUhhPC9hPjwvaT48L2I+PC9mb250Pjxicj4mbmJzcDs8YnI+PC9mb250PjwvZm9udD48L2ZvbnQ+PC9mb250PjwvZm9udD48L2ZvbnQ+PC9mb250PjwvZm9udD4KKzwvdGQ+Cis8L3RyPgorPCEtLSBzdGFydCBvZiBHZW4gTmV3cyAtLT48dHI+Cis8dGQgYmdjb2xvcj0iIzAwMDAwMCI+Jm5ic3A7PC90ZD4KKyAgICAgICAgICA8dGQgYmdjb2xvcj0iIzAwMDAwMCI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPjxiPk1FQU5XSElMRS4uLjwvYj48L2ZvbnQ+PC90ZD4KKyAgICAgICAgPC90cj4KKzx0cj4KKzx0ZD4mbmJzcDs8L3RkPgorICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjUiIHdpZHRoPSI1IiBhbHQ9IiI+PGJyPjwhLS0gMzE5NDIgLS0+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxiPkYmdXVtbDtocmVyIEZ1cm9yPC9iPjwvZm9udD48YnI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxwPg0KK0NvbnRydWN0aW9uIHdvcmtlcnMgaW4gQmVybGluIG9wZW5lZCBhbiBvbGQgd291bmQgaW4gdGhlIEdlcm1hbiBwc3ljaGUgdGhpcyB3ZWVrIHdoZW4gdGhleSBhY2NpZGVudGFsbHkgc3R1bWJsZWQgYWNyb3NzIEFkb2xmIEhpdGxlcidzIGJ1bmtlciB3aGlsZSBleGNhdmF0aW5nIG5lYXIgdGhlIEJyYW5kZW5idXJnIEdhdGUuIFRoZSBidW5rZXIsIGp1c3Qgc291dGggb2YgdGhlIEdhdGUsIHdhcyB3aGVyZSBIaXRsZXIgYW5kIGhpcyBjbG9zZXN0IGFzc29jaWF0ZXMgYmFycmljYWRlZCB0aGVtc2VsdmVzIGFzIHRoZSBSZWQgQXJteSBhcHByb2FjaGVkIEJlcmxpbiBpbiB0aGUgd2FuaW5nIGRheXMgb2YgV29ybGQgV2FyIElJLiBJdCBpcyBhbHNvIHdoZXJlIHRoZSBGJnV1bWw7aHJlciBhbmQgaGlzIGJyaWRlLCBFdmEgQnJhdW4sIGNvbW1pdHRlZCBzdWljaWRlIHJhdGhlciB0aGFuIGZhbGwgaW50byB0aGUgaGFuZHMgb2YgdGhlIFJ1c3NpYW5zLiBBbHRob3VnaCB0aGUgYnVua2VyJ3MgbG9jYXRpb24gaGFzIG5ldmVyIGJlZW4gYSBteXN0ZXJ5LCBpdCBoYXMgYmVlbiBzZWFsZWQgb2ZmIHNpbmNlIHRoZSBlbmQgb2YgdGhlIHdhciB0byBrZWVwIG5lby1OYXppcyBmcm9tIHR1cm5pbmcgaXQgaW50byBhIHNocmluZS4NCis8YnI+PC9wPgorPGxpPk1vcmUgZnJvbSA8YSBocmVmPSJodHRwOi8vd3d3Lmx5Y29zLmNvbS9uZXdzL2ZsYXNoL2hpdGxlcmJ1bmtlci5odG1sP3Y9d24xMDE1JmFtcDtscHY9MSI+THljb3M8L2E+Cis8L2xpPjwvZm9udD48YnI+PGJyPgorPC90ZD4KKyAgICAgICAgPC90cj4KKzwhLS0gZW5kIG9mIEdlbiBOZXdzIC0tPgorPC90YWJsZT4KKzxmb250IHNpemU9IjEiPiZuYnNwOzxicj48L2ZvbnQ+CisKKzxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIyIj48Yj48aT5PdGhlciBUb3AgU3RvcmllczwvaT48L2I+PC9mb250Pjxicj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvcGl4MTU1LmdpZiIgaGVpZ2h0PSIxMCIgd2lkdGg9IjE1NSIgYWx0PSIiPjxicj48IS0tIFNRTCBxdWVyeSBoZXJlIC0tPjwhLS0gSUJEX1NVQkpFQ1Q6V2FsbCBTdHJlZXQgS2VlcHMgUmVlbGluZyAtLT48Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIzIj48Yj48YSBocmVmPSIvbmV3cy9yZXV0ZXJzLzAsMTM0OSwzMTkzNCwwMC5odG1sIj5XYWxsIFN0cmVldCBLZWVwcyBSZWVsaW5nPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPSIjZmYwMDAwIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIxIj4xMDoxNSBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjIiPlRoZSBEb3cgYW5kIE5hc2RhcSBzdWZmZXIgc2l6ZWFibGUgbG9zc2VzIGR1cmluZyB0aGUgZmlyc3QgaGFsZiBvZiBGcmlkYXkgdHJhZGluZy4gV2h5PyBXaG9sZXNhbGUgcHJpY2VzIGFyZSB0aGUgaGlnaGVzdCB0aGlzIGRlY2FkZSwgYW5kIEdyZWVuc3BhbiBpcyBjb25jZXJuZWQgYWJvdXQgc3RvY2sgcHJpY2VzLjwvZm9udD48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+PGk+PGEgaHJlZj0iL25ld3MvcmV1dGVycy8wLDEzNDksLDAwLmh0bWwiPmluJm5ic3A7UmV1dGVyczwvYT48L2k+PC9mb250Pjxicj48YnI+PCEtLSBJQkRfU1VCSkVDVDpUaGUgTWFya2V0J3MgTWFkbmVzcyAtLT48Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIzIj48Yj48YSBocmVmPSIvbmV3cy9yZXV0ZXJzLzAsMTM0OSwzMTkzNSwwMC5odG1sIj5UaGUgTWFya2V0J3MgTWFkbmVzczwvYT48L2I+PC9mb250Pjxicj48Zm9udCBjb2xvcj0iI2ZmMDAwMCIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+OToxMCBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjIiPlRoZSBidWxscyBhbmQgdGhlIGJlYXJzIGFyZSBpbiB0aGUgbWlkc3Qgb2YgYSBCYXR0bGUgUm95YWxlLCBhbmQgYWxsIHRoaXMgdHVyYnVsZW5jZSBpcyBub3QgYSBoZWFsdGh5IHRoaW5nLiBTbyBzYXkgdGhlIGV4cGVydHMuPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIxIj48aT48YSBocmVmPSIvbmV3cy9yZXV0ZXJzLzAsMTM0OSwsMDAuaHRtbCI+aW4mbmJzcDtSZXV0ZXJzPC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48IS0tIElCRF9TVUJKRUNUOidXYW50IGEgTG9hbj8gV2hhdCdzIFlvdXIgUmFjZT8nIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjMiPjxiPjxhIGhyZWY9Ii9uZXdzL3BvbGl0aWNzLzAsMTI4MywzMTUzMywwMC5odG1sIj4nV2FudCBhIExvYW4/IFdoYXQncyBZb3VyIFJhY2U/JzwvYT48L2I+PC9mb250Pjxicj48Zm9udCBjb2xvcj0iI2ZmMDAwMCIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+MzowMCBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjIiPlRoZSBGZWRlcmFsIFJlc2VydmUgaXMgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyBiYW5raW5nIHJlZ3VsYXRpb25zIHRvIGxldCBiYW5rcyBjb2xsZWN0IGRhdGEgb24gdGhlIHJhY2UsIHNleCwgcmVsaWdpb24sIGFuZCBuYXRpb25hbCBvcmlnaW4gb2YgdGhlaXIgY3VzdG9tZXJzLiBCeSBEZWNsYW4gTWNDdWxsYWdoLiA8L2ZvbnQ+PGJyPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjxpPjxhIGhyZWY9Ii9uZXdzL3BvbGl0aWNzLzAsMTI4MywsMDAuaHRtbCI+aW4mbmJzcDtQb2xpdGljczwvYT48L2k+PC9mb250Pjxicj48YnI+PCEtLSBJQkRfU1VCSkVDVDpNdXNpYyBSZWdzOiBBIEJhZ2Z1bCBvZiBOb2lzZSAtLT48Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIzIj48Yj48YSBocmVmPSIvbmV3cy9idXNpbmVzcy8wLDEzNjcsMzE4MzIsMDAuaHRtbCI+TXVzaWMgUmVnczogQSBCYWdmdWwgb2YgTm9pc2U8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9IiNmZjAwMDAiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIyIj5UaGUgc3RydWdnbGUgdG8gY29tZSB1cCB3aXRoIGEgZGlnaXRhbCBtdXNpYyBzdGFuZGFyZCB0aGF0IHdvdWxkIG1pbmltaXplIGRvd25sb2FkIHBpcmFjeSBpcyBwdXNoaW5nIHJpZ2h0IHVwIGFnYWluc3QgdGhlIGhvbGlkYXkgZ2lmdC1naXZpbmcgc2Vhc29uLiBCeSBKZW5uaWZlciBTdWxsaXZhbi48L2ZvbnQ+PGJyPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjxpPjxhIGhyZWY9Ii9uZXdzL2J1c2luZXNzLzAsMTM2NywsMDAuaHRtbCI+aW4mbmJzcDtCdXNpbmVzczwvYT48L2k+PC9mb250Pjxicj48YnI+PCEtLSBJQkRfU1VCSkVDVDpDYW4ndCBCZWF0ICdFbT8gR3JlZW4gJ0VtIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjMiPjxiPjxhIGhyZWY9Ii9uZXdzL3RlY2hub2xvZ3kvMCwxMjgyLDMxOTI3LDAwLmh0bWwiPkNhbid0IEJlYXQgJ0VtPyBHcmVlbiAnRW08L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9IiNmZjAwMDAiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIyIj5IaWdoLXRlY2ggY29tcGFuaWVzIGFyZSBub3RvcmlvdXNseSBlbnZpcm9ubWVudGFsbHkgdW5mcmllbmRseSwgYW5kIGEgZ3Jvd2luZyBudW1iZXIgb2YgIkdyZWVuaWVzIiBhcmUgdHJ5aW5nIHRvIGNoYW5nZSB0aGluZ3MgZnJvbSB0aGUgaW5zaWRlIC4uLiB3aXRoIHZhcnlpbmcgcmVzdWx0cy4gQnkgQ2hyaXMgR2FpdGhlci48L2ZvbnQ+PGJyPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjxpPjxhIGhyZWY9Ii9uZXdzL3RlY2hub2xvZ3kvMCwxMjgyLCwwMC5odG1sIj5pbiZuYnNwO1RlY2hub2xvZ3k8L2E+PC9pPjwvZm9udD48YnI+PGJyPjwhLS0gSUJEX1NVQkpFQ1Q6WTJLIENsb3VkIE92ZXIgTVMgT2ZmaWNlIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjMiPjxiPjxhIGhyZWY9Ii9uZXdzL2J1c2luZXNzLzAsMTM2NywzMTkzMiwwMC5odG1sIj5ZMksgQ2xvdWQgT3ZlciBNUyBPZmZpY2U8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9IiNmZjAwMDAiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIyIj5XaW5kb3dzIE5UIHNhbGVzIHJlbWFpbiBzdHJvbmcsIGJ1dCBjb3Jwb3JhdGUgY2xpZW50cyBhcmUgd2FyeSBvZiB1cGdyYWRpbmcgdG8gTVMgT2ZmaWNlIDIwMDAuIEFuYWx5c3RzIHNheSB0aGF0IG1lYW5zIHN0cm9uZywgYnV0IG5vdCBzdHVubmluZywgTWljcm9zb2Z0IGVhcm5pbmdzLiA8L2ZvbnQ+PGJyPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjxpPjxhIGhyZWY9Ii9uZXdzL2J1c2luZXNzLzAsMTM2NywsMDAuaHRtbCI+aW4mbmJzcDtCdXNpbmVzczwvYT48L2k+PC9mb250Pjxicj48YnI+PGZvbnQgY29sb3I9IiNGRjAwMDAiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjEiPk1lZC1UZWNoPC9mb250Pjxicj48IS0tIElCRF9TVUJKRUNUOkJpb2NoaXBzIGZvciBDdXN0b20gQ2hlbW8gLS0+PGZvbnQgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMyI+PGI+PGEgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8wLDEyODIsMzE5MTQsMDAuaHRtbCI+QmlvY2hpcHMgZm9yIEN1c3RvbSBDaGVtbzwvYT48L2I+PC9mb250Pjxicj48Zm9udCBjb2xvcj0iI2ZmMDAwMCIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+MzowMCBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjIiPkRpZmZlcmVudCBjYW5jZXIgcGF0aWVudHMgbmVlZCBkaWZmZXJlbnQgbWVkaWNpbmUsIGJ1dCBkb2N0b3JzIGNhbiByYXJlbHkgZGV0ZXJtaW5lIHRoZSBiZXN0IG1hdGNoLiBOZXcgYmlvY2hpcCB0ZWNobm9sb2d5IHByb21pc2VzIGNoZW1vdGhlcmFweSB0YWlsb3JlZCB0byBhIHR1bW9yJ3MgZ2VuZXRpYyBtYWtlLXVwLiBCeSBLcmlzdGVuIFBoaWxpcGtvc2tpLjwvZm9udD48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+PGk+PGEgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8wLDEyODIsLDAwLmh0bWwiPmluJm5ic3A7VGVjaG5vbG9neTwvYT48L2k+PC9mb250Pjxicj48YnI+PCEtLSBJQkRfU1VCSkVDVDpIaWdoIFN0YWtlcyBpbiBQcmljZWxpbmUgU3VpdCAtLT48Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIzIj48Yj48YSBocmVmPSIvbmV3cy9idXNpbmVzcy8wLDEzNjcsMzE5MTYsMDAuaHRtbCI+SGlnaCBTdGFrZXMgaW4gUHJpY2VsaW5lIFN1aXQ8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9IiNmZjAwMDAiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIyIj5JdCdzIG5vdCBqdXN0IGFub3RoZXIgcm91bmQgb2YgUmVkbW9uZC1iYXNoaW5nLiBBIFByaWNlbGluZS5jb20gbGF3c3VpdCBhZ2FpbnN0IE1pY3Jvc29mdCdzIEV4cGVkaWEuY29tIG1heSBoYXZlIGEgYmlnIGltcGFjdCBvbiBob3cgTmV0IGNvbXBhbmllcyBwcm90ZWN0IHRoZWlyIGJ1c2luZXNzIG1vZGVscy4gQnkgSm9hbm5hIEdsYXNuZXIuPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIxIj48aT48YSBocmVmPSIvbmV3cy9idXNpbmVzcy8wLDEzNjcsLDAwLmh0bWwiPmluJm5ic3A7QnVzaW5lc3M8L2E+PC9pPjwvZm9udD48YnI+PGJyPjwhLS0gSUJEX1NVQkpFQ1Q6QmlvZGl2ZXJzaXR5IE1lcmdlcyBPbmxpbmUgLS0+PGZvbnQgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMyI+PGI+PGEgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8wLDEyODIsMzE5MTgsMDAuaHRtbCI+QmlvZGl2ZXJzaXR5IE1lcmdlcyBPbmxpbmU8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9IiNmZjAwMDAiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPSIyIj5UaGUgZmFyLWZsdW5nIGRhdGFiYXNlcyBvbiBnbG9iYWwgYmlvZGl2ZXJzaXR5IGdldCB0b2dldGhlciB0byBmb3JtIG9uZSBtb25zdGVyIGRhdGFiYXNlLiBTb29uIHRoZSByZWQtZXllZCB0cmVlIGZyb2cgd2lsbCBiZSBleWVpbmcgdGhvc2UgU3dlZGlzaCBsaW5nb25iZXJyaWVzLiBGcm9tIHRoZSBFbnZpcm9ubWVudCBOZXdzIFNlcnZpY2UuPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIxIj48aT48YSBocmVmPSIvbmV3cy90ZWNobm9sb2d5LzAsMTI4MiwsMDAuaHRtbCI+aW4mbmJzcDtUZWNobm9sb2d5PC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48IS0tIFNRTCBhYm92ZSAtLT48IS0tLS0tLVRSQURFUy0tLS0tLS0tLT48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0iMiI+PGI+PGk+RWxzZXdoZXJlIFRvZGF5PC9pPjwvYj48L2ZvbnQ+PGJyPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9waXgxNTUuZ2lmIiBoZWlnaHQ9IjEwIiB3aWR0aD0iMTU1IiBhbHQ9IiI+PGJyPjwhLS0gU1FMIHF1ZXJ5IGhlcmUgLS0+PGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0iMyI+PGI+PGEgaHJlZj0iaHR0cDovL3d3dy50aGVzdGFuZGFyZC5jb20vYXJ0aWNsZXMvZGlzcGxheS8wLDE0NDksNjk3NSwwMC5odG1sP2hvbWUudGYiPkZDQzogSGFuZHMtT2ZmIG9uIEJyb2FkYmFuZDwvYT48L2I+PC9mb250Pjxicj48Zm9udCBmYWNlPSJnZW5ldmEsIGFyaWFsIiBzaXplPSIyIj48Y2l0ZT5UaGUgSW5kdXN0cnkgU3RhbmRhcmQ8L2NpdGU+PC9mb250Pjxicj48YnI+PGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0iMyI+PGI+PGEgaHJlZj0iaHR0cDovL25ld3MubHljb3MuY29tL3N0b3JpZXMvVG9wTmV3cy8xOTk5MTAxNFJUTkVXUy1BUk1TLVRSRUFUWS5hc3AiPldoaXRlIEhvdXNlIExhc2hlcyBPdXQgb24gVHJlYXR5PC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9IjIiPkx5Y29zPC9mb250Pjxicj48YnI+PGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0iMyI+PGI+PGEgaHJlZj0iaHR0cDovL3d3dy5wYXRoZmluZGVyLmNvbS90aW1lL21hZ2F6aW5lL2FydGljbGVzLzAsMzI2NiwzMjIwNywwMC5odG1sIj5TdGV2ZSBKb2JzIGF0IDQ0PC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9IjIiPjxjaXRlPlRpbWU8L2NpdGU+PC9mb250Pjxicj48YnI+PGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0iMyI+PGI+PGEgaHJlZj0iaHR0cDovL3d3dy56ZG5ldC5jb20vemRubi9zdG9yaWVzL25ld3MvMCw0NTg2LDIzNTM2MDgsMDAuaHRtbCI+Q29tcHV0ZXJzIE1heSBSdW4gb24gR2FzPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9IjIiPlpETk48L2ZvbnQ+PGJyPjxicj48Zm9udCBmYWNlPSJoZWx2ZXRpY2EsIGFyaWFsIiBzaXplPSIzIj48Yj48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2xpYnJhcnkvdGVjaC85OS8xMC9iaXp0ZWNoL2FydGljbGVzLzE0ZnJlZS5odG1sIj5NdWNoIElzIEZyZWUgaW4gdGhlIFdpcmVkIFdvcmxkPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9IjIiPjxjaXRlPlRoZSBOZXcgWW9yayBUaW1lczwvY2l0ZT4gKFJlZ2lzdHJhdGlvbiBSZXF1aXJlZCk8L2ZvbnQ+PGJyPjxicj48Zm9udCBmYWNlPSJoZWx2ZXRpY2EsIGFyaWFsIiBzaXplPSIzIj48Yj48YSBocmVmPSJodHRwOi8vd3d3LnVzYXRvZGF5LmNvbS9saWZlL2N5YmVyL25iL25iNC5odG0iPk1lbGlzc2E6IEknbSBCYWFhYWNrPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9IjIiPjxjaXRlPlVTQSBUb2RheTwvY2l0ZT48L2ZvbnQ+PGJyPjxicj48Zm9udCBmYWNlPSJoZWx2ZXRpY2EsIGFyaWFsIiBzaXplPSIzIj48Yj48YSBocmVmPSJodHRwOi8vd3d3Lm1zbmJjLmNvbS9uZXdzLzMyMjkyNi5hc3AiPkRvbWFpbiBPd25lcnMgU3VycmVuZGVyIFByaXZhY3k8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgZmFjZT0iZ2VuZXZhLCBhcmlhbCIgc2l6ZT0iMiI+TVNOQkM8L2ZvbnQ+PGJyPjxicj48Zm9udCBmYWNlPSJoZWx2ZXRpY2EsIGFyaWFsIiBzaXplPSIzIj48Yj48YSBocmVmPSJodHRwOi8vd3d3Lndhc2hpbmd0b25wb3N0LmNvbS93cC1zcnYvYnVzaW5lc3MvbG9uZ3Rlcm0vdGVjaC90ZWNodGh1cnNkYXkvZG93bmxvYWQvZG93bmxvYWQuaHRtIj5EaXZpZGluZyB0byBDb25xdWVyIGluIFZDIEdhbWU8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgZmFjZT0iZ2VuZXZhLCBhcmlhbCIgc2l6ZT0iMiI+PGNpdGU+VGhlIFdhc2hpbmd0b24gUG9zdDwvY2l0ZT48L2ZvbnQ+PGJyPjxicj48Zm9udCBmYWNlPSJoZWx2ZXRpY2EsIGFyaWFsIiBzaXplPSIzIj48Yj48YSBocmVmPSJodHRwOi8vd3d3LnNhbG9uLmNvbS90ZWNoL2Jvb2tzLzE5OTkvMTAvMTQvcmVkaGF0X2Jvb2svaW5kZXguaHRtbCI+VGhlIFJlZCBIYXQgRGlhcmllczwvYT48L2I+PC9mb250Pjxicj48Zm9udCBmYWNlPSJnZW5ldmEsIGFyaWFsIiBzaXplPSIyIj5TYWxvbjwvZm9udD48YnI+PGJyPjxmb250IGZhY2U9ImhlbHZldGljYSwgYXJpYWwiIHNpemU9IjMiPjxiPjxhIGhyZWY9Imh0dHA6Ly9uZXdzLmJiYy5jby51ay9oaS9lbmdsaXNoL3NjaS90ZWNoL25ld3NpZF80NzMwMDAvNDczODU2LnN0bSI+U2NyZWVuc2F2ZXIgdG8gUHJlZGljdCBDbGltYXRlPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9IjIiPkJCQyBOZXdzPC9mb250Pjxicj48YnI+PCEtLSBTUUwgYWJvdmUgLS0+PCEtLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtLT4KKzwvdGQ+CisgIDwvdHI+Cis8dHI+Cis8dGQgdmFsaWduPSJUT1AiIGFsaWduPSJMRUZUIj4KKworICAgIDxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9IjEiIHdpZHRoPSIyODAiIGFsdD0iIj48YnI+PCEtLSBGT09URVIgLS0+PGJyPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9waXgxNTUuZ2lmIiBoZWlnaHQ9IjEwIiB3aWR0aD0iMTU1IiBib3JkZXI9IjAiIHVzZW1hcD0iI25hdnN0cmlwLm1hcCIgYWx0PSIiPjxicj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvbmF2c3RyaXBfb2ZmLmdpZiIgaGVpZ2h0PSIxNyIgd2lkdGg9IjEyNiIgdXNlbWFwPSIjbmF2c3RyaXAubWFwIiBib3JkZXI9IjAiIGFsdD0iIj48YnI+PGJyPjxwPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjEiPgorPGEgaHJlZj0iaHR0cDovL3d3dy53aXJlZC5jb20vbmV3cy9mZWVkYmFjay5odG1sIj5TZW5kIHVzIGZlZWRiYWNrPC9hPgorJm5ic3A7fCZuYnNwOworPGEgaHJlZj0iaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vam9icy8iPldvcmsgYXQgV2lyZWQgRGlnaXRhbDwvYT4KKyZuYnNwO3wmbmJzcDsKKzxhIGhyZWY9Imh0dHA6Ly9ob21lLndpcmVkLmNvbS9hZHZlcnRpc2luZy8iPkFkdmVydGlzZSB3aXRoIHVzPC9hPgorPGJyPjxhIGhyZWY9Imh0dHA6Ly9ob21lLndpcmVkLmNvbS8iPkFib3V0IFdpcmVkIERpZ2l0YWw8L2E+CismbmJzcDt8Jm5ic3A7Cis8YSBocmVmPSJodHRwOi8vd3d3LndpcmVkLmNvbS9ob21lL2RpZ2l0YWwvcHJpdmFjeS8iPk91ciBQcml2YWN5IFBvbGljeTwvYT48L2ZvbnQ+CisKKworPC9wPgorPHA+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSIgc2l6ZT0iMSI+PGEgaHJlZj0iaHR0cDovL3d3dy53aXJlZC5jb20vaG9tZS9jb3B5cmlnaHQuaHRtbCI+Q29weXJpZ2h0PC9hPiAmY29weTsgMTk5NC05OSBXaXJlZCBEaWdpdGFsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2ZvbnQ+CisKKzxicj48IS0tIFRSQUNLSU5HIC0tPjxpbWcgc3JjPSJodHRwOi8vd3d3LndpcmVkLmNvbS9zcGVjaWFsL21vZHgvbmV3cy5naWYiIGhlaWdodD0iMSIgd2lkdGg9IjEiIGFsdD0iIj48bWFwIG5hbWU9Im5hdnN0cmlwLm1hcCI+PGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMCwwLDE0LDE2IiBocmVmPSIvbmV3cyI+Cis8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIxNSwwIDMxLDE2IiBocmVmPSIvbmV3cy9idXNpbmVzcy8iPgorPGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMzIsMCw0OCwxNiIgaHJlZj0iL25ld3MvY3VsdHVyZS8iPgorPGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iNDksMCw2NSwxNiIgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8iPgorPGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iNjYsMCw4MywxNiIgaHJlZj0iL25ld3MvcG9saXRpY3MvIj48L21hcD48L3A+Cis8L3RkPgorICAgPHRkIHZhbGlnbj0iVE9QIiBhbGlnbj0iTEVGVCI+CisgICAgPGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYiIGhlaWdodD0iMSIgd2lkdGg9IjUiIGFsdD0iIj4KKzwvdGQ+CisgICA8dGQgdmFsaWduPSJUT1AiIGFsaWduPSJMRUZUIj4KKyAgIDwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorPGJyPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC93aXJlZC5odG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvd2lyZWQuaHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBkYjExYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvd2lyZWQuaHRtbC5lcnIKQEAgLTAsMCArMSwyNDkgQEAKKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKKzxGT1JNIE1FVEhPRD1HRVQgQUNUSU9OPSJodHRwOi8vbnNhZHMuaG90d2lyZWQuY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smUHJvZmlsZUlECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo2OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworRD1HRVQgQUNUSU9OPSJodHRwOi8vbnNhZHMuaG90d2lyZWQuY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smUHJvZmlsZUlEPTk2ODgmUnVuSUQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjY6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitOPSJodHRwOi8vbnNhZHMuaG90d2lyZWQuY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smUHJvZmlsZUlEPTk2ODgmUnVuSUQ9MTQwNzQmQWRJRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3MuaG90d2lyZWQuY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smUHJvZmlsZUlEPTk2ODgmUnVuSUQ9MTQwNzQmQWRJRD0yMjU4NCZHcm91cElECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo2OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smUHJvZmlsZUlEPTk2ODgmUnVuSUQ9MTQwNzQmQWRJRD0yMjU4NCZHcm91cElEPTEmRmFtaWx5SUQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjY6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitwZT1jbGljayZQcm9maWxlSUQ9OTY4OCZSdW5JRD0xNDA3NCZBZElEPTIyNTg0Jkdyb3VwSUQ9MSZGYW1pbHlJRD0yNjg0JlRhZ1ZhbHVlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NTI6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCisiIGFsaWduPSJSSUdIVCI+PGEgaHJlZj0iaHR0cDovL25zYWRzLmhvdHdpcmVkLmNvbS9ldmVudC5uZy9UeXBlPWNsaWNrJlByb2ZpbGVJRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NTI6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitHSFQiPjxhIGhyZWY9Imh0dHA6Ly9uc2Fkcy5ob3R3aXJlZC5jb20vZXZlbnQubmcvVHlwZT1jbGljayZQcm9maWxlSUQ9NTU5NyZSdW5JRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NTI6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitmPSJodHRwOi8vbnNhZHMuaG90d2lyZWQuY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smUHJvZmlsZUlEPTU1OTcmUnVuSUQ9MTcxNjcmQWRJRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NTI6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitzLmhvdHdpcmVkLmNvbS9ldmVudC5uZy9UeXBlPWNsaWNrJlByb2ZpbGVJRD01NTk3JlJ1bklEPTE3MTY3JkFkSUQ9MjI1ODgmR3JvdXBJRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NTI6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitjb20vZXZlbnQubmcvVHlwZT1jbGljayZQcm9maWxlSUQ9NTU5NyZSdW5JRD0xNzE2NyZBZElEPTIyNTg4Jkdyb3VwSUQ9MSZGYW1pbHlJRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NTI6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitwZT1jbGljayZQcm9maWxlSUQ9NTU5NyZSdW5JRD0xNzE2NyZBZElEPTIyNTg4Jkdyb3VwSUQ9MSZGYW1pbHlJRD0zMjI4JlRhZ1ZhbHVlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NzA6IEhUTUwgcGFyc2VyIGVycm9yIDogVGFnIG5vYnIgaW52YWxpZAorPHRkIGJnY29sb3I9IiNGRjAwMDAiIGFsaWduPSJsZWZ0IiB2YWxpZ249ImNlbnRlciI+PG5vYnI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo4OTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK29uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP0FjdGlvbj1GaWx0ZXJTZWFyY2gmRmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo4OTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2QuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo4OTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2N0aW9uPUZpbHRlclNlYXJjaCZGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlPXZpZ25ldHRlLmh0cyZDb2xsZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo4OTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK0ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9dmlnbmV0dGUuaHRzJkNvbGxlY3Rpb249dmlnbmV0dGUmUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo4OTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3Rlci5odHMmUmVzdWx0VGVtcGxhdGU9dmlnbmV0dGUuaHRzJkNvbGxlY3Rpb249dmlnbmV0dGUmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK29uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP0FjdGlvbj1GaWx0ZXJTZWFyY2gmRmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2QuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3Rpb249RmlsdGVyU2VhcmNoJkZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9d2VibW9ua2V5Lmh0cyZDb2xsZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2x0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlPXdlYm1vbmtleS5odHMmQ29sbGVjdGlvbj13ZWJtb25rZXkmUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3IuaHRzJlJlc3VsdFRlbXBsYXRlPXdlYm1vbmtleS5odHMmQ29sbGVjdGlvbj13ZWJtb25rZXkmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKKz0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9jb2xsZWN0aW9uPXdlYm1vbmtleV9ndWlkZXMmQWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/Y29sbGVjdGlvbj13ZWJtb25rZXlfZ3VpZGVzJkFjdGlvbj1GaWx0ZXJTZWFyY2gmZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2N0aW9uPXdlYm1vbmtleV9ndWlkZXMmQWN0aW9uPUZpbHRlclNlYXJjaCZmaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2lsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9d2VibW9ua2V5X2d1aWRlcy5odHMmUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3Rlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9d2VibW9ua2V5X2d1aWRlcy5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK29uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP2NvbGxlY3Rpb249aG90d2lyZWQmQWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3JjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9jb2xsZWN0aW9uPWhvdHdpcmVkJkFjdGlvbj1GaWx0ZXJTZWFyY2gmZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3RzP2NvbGxlY3Rpb249aG90d2lyZWQmQWN0aW9uPUZpbHRlclNlYXJjaCZmaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2lsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9aG90d2lyZWRfYXJjaGl2ZS5odHMmUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3Rlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9aG90d2lyZWRfYXJjaGl2ZS5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK29uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP0FjdGlvbj1GaWx0ZXJTZWFyY2gmRmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2QuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2N0aW9uPUZpbHRlclNlYXJjaCZGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlPW1hZ2F6aW5lLmh0cyZDb2xsZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK0ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9bWFnYXppbmUuaHRzJkNvbGxlY3Rpb249bWFnYXppbmUmUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5MzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3Rlci5odHMmUmVzdWx0VGVtcGxhdGU9bWFnYXppbmUuaHRzJkNvbGxlY3Rpb249bWFnYXppbmUmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK29uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP0FjdGlvbj1GaWx0ZXJTZWFyY2gmRmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2QuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3Rpb249RmlsdGVyU2VhcmNoJkZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9YW5pbWF0aW9uLmh0cyZDb2xsZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2x0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlPWFuaW1hdGlvbi5odHMmQ29sbGVjdGlvbj1hbmltYXRpb24mUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NDogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3IuaHRzJlJlc3VsdFRlbXBsYXRlPWFuaW1hdGlvbi5odHMmQ29sbGVjdGlvbj1hbmltYXRpb24mUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK29wdGlvbiB2YWx1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9jb2xsZWN0aW9uPXN1Y2smQWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKKy9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/Y29sbGVjdGlvbj1zdWNrJkFjdGlvbj1GaWx0ZXJTZWFyY2gmZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKKzk3LnZ0cz9jb2xsZWN0aW9uPXN1Y2smQWN0aW9uPUZpbHRlclNlYXJjaCZmaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK3VjayZBY3Rpb249RmlsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9c3Vjay5odHMmUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2VyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9c3Vjay5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2x1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9jb2xsZWN0aW9uPXViZXJfaG90d2lyZWQmQWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK290d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/Y29sbGVjdGlvbj11YmVyX2hvdHdpcmVkJkFjdGlvbj1GaWx0ZXJTZWFyY2gmZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2xsZWN0aW9uPXViZXJfaG90d2lyZWQmQWN0aW9uPUZpbHRlclNlYXJjaCZmaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK249RmlsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9dWJlcl9ob3R3aXJlZC5odHMmUXVlcnlNb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NjogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK2ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9dWJlcl9ob3R3aXJlZC5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKKyA8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3LmhvdGJvdC5jb20vP1NNPU1DJkRWPTAmTEc9YW55JlJEPVJHJkRDPTEwJkRFPTImX3Y9MiZPCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6OTc6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCisgPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ob3Rib3QuY29tLz9TTT1NQyZEVj0wJkxHPWFueSZSRD1SRyZEQz0xMCZERT0yJl92PTImTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6OTc6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCisgPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ob3Rib3QuY29tLz9TTT1NQyZEVj0wJkxHPWFueSZSRD1SRyZEQz0xMCZERT0yJl92PTImTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjk3OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworIDxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuaG90Ym90LmNvbS8/U009TUMmRFY9MCZMRz1hbnkmUkQ9UkcmREM9MTAmREU9MiZfdj0yJk8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo5NzogSFRNTCBwYXJzZXIgZXJyb3IgOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKKyA8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3LmhvdGJvdC5jb20vP1NNPU1DJkRWPTAmTEc9YW55JlJEPVJHJkRDPTEwJkRFPTImX3Y9MiZPCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6OTc6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCisgPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ob3Rib3QuY29tLz9TTT1NQyZEVj0wJkxHPWFueSZSRD1SRyZEQz0xMCZERT0yJl92PTImTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6OTc6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuaG90Ym90LmNvbS8/U009TUMmRFY9MCZMRz1hbnkmUkQ9UkcmREM9MTAmREU9MiZfdj0yJk9QcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6OTc6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitsdWU9Imh0dHA6Ly93d3cuaG90Ym90LmNvbS8/U009TUMmRFY9MCZMRz1hbnkmUkQ9UkcmREM9MTAmREU9MiZfdj0yJk9Qcz1NRFJUUCZNVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6MTcwOiBIVE1MIHBhcnNlciBlcnJvciA6IFVuZXhwZWN0ZWQgZW5kIHRhZyA6IGZvcm0KKwk8L3RyPiAgICA8L2Zvcm0+CisJICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6MjQ4OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworTUcgU1JDPSJodHRwOi8vYmFybmVzYW5kbm9ibGUuYmZhc3QuY29tL2Jvb2tsaW5rL3NlcnZlP3NvdXJjZWlkPTM4MzQ3MSZpc19zZWFyY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjI2NTogSFRNTCBwYXJzZXIgZXJyb3IgOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBmb3JtCisgICAgICAgIDwvdHI+ICA8L2Zvcm0+CisgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDozNDY6IEhUTUwgcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdGQgYW5kIGZvbnQKKzwvdGQ+CisgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6Mzc0OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogbm8gbmFtZQorYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MvY29tbWVudGFyeVNlY3Rpb24vMCwxMjkyLDMxOTI2LDAwLmh0bWwiPlJhbnRzICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjM3NDogSFRNTCBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorUmVhZGVycyBvbiBBcHBsZSdzIEc0IC4uLiBBT0wncyBwYXNzd29yZHMgLi4uIE1TIHZzLiBMaW51eC48L2ZvbnQ+PGJyPjxicj4gIDwvdGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjM3NDogSFRNTCBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorUmVhZGVycyBvbiBBcHBsZSdzIEc0IC4uLiBBT0wncyBwYXNzd29yZHMgLi4uIE1TIHZzLiBMaW51eC48L2ZvbnQ+PGJyPjxicj4gIDwvdGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjQwMjogSFRNTCBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBhIGFuZCBmb250Cit3LnZpZ25ldHRlLmNvbS8iIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGZvbnQgY29sb3I9IiMwMDAwMDAiPlZpZ25ldHRlPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NDA3OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworZXJ2bGV0L2FwcHNlcnZsZXQ/ZnJvbT0vd2lyZWQvc3ByaW50LyZ0ZW1wbGF0ZT0vc2VjdXJpdHkvc2VjdXJpdHkuaHRtbCZTSVRFPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NDA3OiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworZXJ2bGV0L2FwcHNlcnZsZXQ/ZnJvbT0vd2lyZWQvc3ByaW50LyZ0ZW1wbGF0ZT0vc2VjdXJpdHkvc2VjdXJpdHkuaHRtbCZTSVRFPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo0MDg6IEhUTUwgcGFyc2VyIGVycm9yIDogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCit3aXJlZC5jb20mQkFOTkVSPVNwcmludCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+U3ByaQorICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NDA4OiBIVE1MIHBhcnNlciBlcnJvciA6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IGEgYW5kIGZvbnQKK2NvbSZCQU5ORVI9U3ByaW50IiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxmb250IGNvbG9yPSIjMDAwMDAwIj5TcHJpbnQ8L2E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo0MDg6IEhUTUwgcGFyc2VyIGVycm9yIDogRW5kIHRhZyA6IGV4cGVjdGVkICc+JworPVNwcmludCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+U3ByaW50PC9hPjwvaT48L2ZvbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjQxNDogSFRNTCBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorPC90ZD4KKyAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo0MTQ6IEhUTUwgcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdGQgYW5kIGZvbnQKKzwvdGQ+CisgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NDE0OiBIVE1MIHBhcnNlciBlcnJvciA6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHRkIGFuZCBmb250Cis8L3RkPgorICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjQxNDogSFRNTCBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorPC90ZD4KKyAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo0MTQ6IEhUTUwgcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdGQgYW5kIGZvbnQKKzwvdGQ+CisgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NDE0OiBIVE1MIHBhcnNlciBlcnJvciA6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHRkIGFuZCBmb250Cis8L3RkPgorICAgICBeCisuL3Rlc3QvSFRNTC93aXJlZC5odG1sOjQxNDogSFRNTCBwYXJzZXIgZXJyb3IgOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorPC90ZD4KKyAgICAgXgorLi90ZXN0L0hUTUwvd2lyZWQuaHRtbDo0MTQ6IEhUTUwgcGFyc2VyIGVycm9yIDogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdGQgYW5kIGZvbnQKKzwvdGQ+CisgICAgIF4KKy4vdGVzdC9IVE1ML3dpcmVkLmh0bWw6NDMyOiBIVE1MIHBhcnNlciBlcnJvciA6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworaHJlZj0iaHR0cDovL3d3dy5seWNvcy5jb20vbmV3cy9mbGFzaC9oaXRsZXJidW5rZXIuaHRtbD92PXduMTAxNSZscHY9MSI+THljb3M8L2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvSFRNTC93aXJlZC5odG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvd2lyZWQuaHRtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg2MGM3NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L0hUTUwvd2lyZWQuaHRtbC5zYXgKQEAgLTAsMCArMSwyODQ4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5jb21tZW50KCBWaWduZXR0ZSBTdG9yeVNlcnZlciA0IEZyaSBPY3QgMTUgMTE6Mzc6MTIgMTk5OSApCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguc3RhcnRFbGVtZW50KGhlYWQpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoVG9wIFN0b3JpZXMgTmV3cyBmcm9tIFdpcmVkIE5lLCAzMikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmVuZEVsZW1lbnQoaGVhZCkKK1NBWC5zdGFydEVsZW1lbnQoYm9keSwgYmdjb2xvcj0nI0ZGRkZGRicsIHRleHQ9JyMwMDAwMDAnLCBsaW5rPScjMzMzMzk5Jywgdmxpbms9JyM2NjAwNjYnLCBhbGluaz0nIzY2NjY5OScpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgYm9yZGVyPScwJywgd2lkdGg9JzYwMCcsIGNlbGxzcGFjaW5nPScwJywgY2VsbHBhZGRpbmc9JzAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRkLCB2YWxpZ249J3RvcCcsIGFsaWduPSdMRUZUJykKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIGJvcmRlcj0nMCcsIGNlbGxwYWRkaW5nPScwJywgY2VsbHNwYWNpbmc9JzAnLCB3aWR0aD0nNDY4JywgaGVpZ2h0PSc2MCcsIGJnY29sb3I9JyNGRkZGRkYnKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChmb3JtLCBtZXRob2Q9J0dFVCcsIGFjdGlvbj0naHR0cDovL25zYWRzLmhvdHdpcmVkLmNvbS9ldmVudC5uZy9UeXBlPWNsaWNrJmFtcDtQcm9maWxlSUQ9OTY4OCZhbXA7UnVuSUQ9MTQwNzQmYW1wO0FkSUQ9MjI1ODQmYW1wO0dyb3VwSUQ9MSZhbXA7RmFtaWx5SUQ9MjY4NCZhbXA7VGFnVmFsdWVzPTguMjUuMTU2LjE1OS4xNjYuMTcxLjE3Mi4xNzQuMTc5LjE4MC4xODEuMTgyLjE4My4xOTYuMTk3LjE5OS4yMDguMzg5LjQxMi40MzYuMjA0MS42NzUwLjc4NDU2Ljc5NjMwLjgxODgwJmFtcDtSZWRpcmVjdD1odHRwOi8vd3d3LnNwcmluZ3N0cmVldC5jb20vYWEvY2l0eXNlYXJjaC5odG0nLCBpZD0nZm9ybTEnLCBuYW1lPSdmb3JtMScpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nIzMzMDA5OScpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCBuYW1lPSdjaXR5JywgdHlwZT0ndGV4dCcsIHNpemU9JzcnLCBtYXhsZW5ndGg9JzIwJywgdmFsdWU9J1NlYXR0bGUnKQorU0FYLmVuZEVsZW1lbnQoaW5wdXQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQodGQsIHJvd3NwYW49JzInLCBhbGlnbj0nTEVGVCcsIGJnY29sb3I9J0ZGRkZGRicpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdJTUFHRScsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vYWR2ZXJ0aXNpbmcvYmxpcHZlcnRzL2FsbGFwYXJ0bWVudHMvOTkwNjI1anBhX3NzdGhvbWUuZ2lmJywgd2lkdGg9JzM3NScsIGhlaWdodD0nNjAnLCBib3JkZXI9JzAnLCB2YWx1ZT0nc2VhcmNoJywgaHNwYWNlPScwJywgYWx0PSdTZWFyY2ggb3ZlciA2LDAwMCwwMDAgQXB0cyB3aXRoIFNwcmluZ1N0cmVldCcpCitTQVguZW5kRWxlbWVudChpbnB1dCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nIzMzMDA5OScpCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KHNlbGVjdCwgbmFtZT0nc3RhdGUnKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdXQScsIHNlbGVjdGVkKQorU0FYLmNoYXJhY3RlcnMoV0ENCissIDQpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J0FMJykKK1NBWC5jaGFyYWN0ZXJzKEFMLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdBSycpCitTQVguY2hhcmFjdGVycyhBSywgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nQVonKQorU0FYLmNoYXJhY3RlcnMoQVosIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J0FSJykKK1NBWC5jaGFyYWN0ZXJzKEFSLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdDQScpCitTQVguY2hhcmFjdGVycyhDQSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nQ08nKQorU0FYLmNoYXJhY3RlcnMoQ08sIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J0NUJykKK1NBWC5jaGFyYWN0ZXJzKENULCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdERScpCitTQVguY2hhcmFjdGVycyhERSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nREMnKQorU0FYLmNoYXJhY3RlcnMoREMsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J0ZMJykKK1NBWC5jaGFyYWN0ZXJzKEZMLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdHQScpCitTQVguY2hhcmFjdGVycyhHQSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nSEknKQorU0FYLmNoYXJhY3RlcnMoSEksIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J0lEJykKK1NBWC5jaGFyYWN0ZXJzKElELCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdJTCcpCitTQVguY2hhcmFjdGVycyhJTCwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nSU4nKQorU0FYLmNoYXJhY3RlcnMoSU4sIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J0lBJykKK1NBWC5jaGFyYWN0ZXJzKElBLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdLUycpCitTQVguY2hhcmFjdGVycyhLUywgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nS1knKQorU0FYLmNoYXJhY3RlcnMoS1ksIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J0xBJykKK1NBWC5jaGFyYWN0ZXJzKExBLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdNRScpCitTQVguY2hhcmFjdGVycyhNRSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nTUQnKQorU0FYLmNoYXJhY3RlcnMoTUQsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J01BJykKK1NBWC5jaGFyYWN0ZXJzKE1BLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdNSScpCitTQVguY2hhcmFjdGVycyhNSSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nTU4nKQorU0FYLmNoYXJhY3RlcnMoTU4sIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J01TJykKK1NBWC5jaGFyYWN0ZXJzKE1TLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdNTycpCitTQVguY2hhcmFjdGVycyhNTywgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nTVQnKQorU0FYLmNoYXJhY3RlcnMoTVQsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J05FJykKK1NBWC5jaGFyYWN0ZXJzKE5FLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdOVicpCitTQVguY2hhcmFjdGVycyhOViwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nTkgnKQorU0FYLmNoYXJhY3RlcnMoTkgsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J05KJykKK1NBWC5jaGFyYWN0ZXJzKE5KLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdOTScpCitTQVguY2hhcmFjdGVycyhOTSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nTlknKQorU0FYLmNoYXJhY3RlcnMoTlksIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J05DJykKK1NBWC5jaGFyYWN0ZXJzKE5DLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdORCcpCitTQVguY2hhcmFjdGVycyhORCwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nT0gnKQorU0FYLmNoYXJhY3RlcnMoT0gsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J09LJykKK1NBWC5jaGFyYWN0ZXJzKE9LLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdPUicpCitTQVguY2hhcmFjdGVycyhPUiwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nUEEnKQorU0FYLmNoYXJhY3RlcnMoUEEsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J1BSJykKK1NBWC5jaGFyYWN0ZXJzKFBSLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdSSScpCitTQVguY2hhcmFjdGVycyhSSSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nU0MnKQorU0FYLmNoYXJhY3RlcnMoU0MsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycyggDQorLCAzKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdTRCcpCitTQVguY2hhcmFjdGVycyhTRCwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nVE4nKQorU0FYLmNoYXJhY3RlcnMoVE4sIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J1RYJykKK1NBWC5jaGFyYWN0ZXJzKFRYLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdVVCcpCitTQVguY2hhcmFjdGVycyhVVCwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nVlQnKQorU0FYLmNoYXJhY3RlcnMoVlQsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J1ZBJykKK1NBWC5jaGFyYWN0ZXJzKFZBLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdXQScpCitTQVguY2hhcmFjdGVycyhXQSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nV1YnKQorU0FYLmNoYXJhY3RlcnMoV1YsIDIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J1dJJykKK1NBWC5jaGFyYWN0ZXJzKFdJLCAyKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdXWScpCitTQVguY2hhcmFjdGVycyhXWSwgMikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKA0KKywgMikKK1NBWC5lbmRFbGVtZW50KHNlbGVjdCkKK1NBWC5zdGFydEVsZW1lbnQoaW5wdXQsIHR5cGU9J2hpZGRlbicsIG5hbWU9J3NvdXJjZScsIHZhbHVlPScyaGI4YmhjMDU5JykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoDQorLCAyKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5lbmRFbGVtZW50KGZvcm0pCitTQVguY2hhcmFjdGVycygNCissIDIpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgdmFsaWduPSd0b3AnLCBhbGlnbj0nUklHSFQnKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vbnNhZHMuaG90d2lyZWQuY29tL2V2ZW50Lm5nL1R5cGU9Y2xpY2smYW1wO1Byb2ZpbGVJRD01NTk3JmFtcDtSdW5JRD0xNzE2NyZhbXA7QWRJRD0yMjU4OCZhbXA7R3JvdXBJRD0xJmFtcDtGYW1pbHlJRD0zMjI4JmFtcDtUYWdWYWx1ZXM9OC4yNS4xNTkuMTcxLjE3Mi4xNzQuMTc5LjE4MC4xODEuMTgyLjE4My4xOTYuMTk3LjE5OS4yMDguMjQxLjM4OS40MTIuNDM2LjIwMzUuNjc0OS42NzUwLjcwMzY3Ljc4NDU2Ljc5NjMwLjgxODgwJmFtcDtSZWRpcmVjdD1odHRwOiUyRiUyRnd3dy5ocC5jb20lMkZnbyUyRm9yaWdpbmFsJTIwJywgdGFyZ2V0PSdfdG9wJykKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J2h0dHA6Ly9zdGF0aWMud2lyZWQuY29tL2FkdmVydGlzaW5nL2JsaXB2ZXJ0cy9ocF9jb2xvcmlua2pldC9ocF85NzBjXzEyMHg2MF82LmdpZicsIGJvcmRlcj0nMScsIGhlaWdodD0nNjAnLCB3aWR0aD0nMTIwJywgYWx0PSdUcnVlIHRvIHRoZSBPcmlnaW5hbCcpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRhYmxlKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5jb21tZW50KCBXSVJFRCBORVdTIGhlYWRlciApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jb21tZW50KCBDTURfSE9TVCA9IHNjb29wLmhvdHdpcmVkLmNvbSApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChhLCBuYW1lPScjJykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIGJvcmRlcj0nMCcsIHdpZHRoPSc2MDAnLCBjZWxsc3BhY2luZz0nMCcsIGNlbGxwYWRkaW5nPScwJykKK1NBWC5jaGFyYWN0ZXJzKAorCisgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguc3RhcnRFbGVtZW50KHRkLCBjb2xzcGFuPScyJykKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J2h0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYnLCBoZWlnaHQ9JzUnLCB3aWR0aD0nNDQ3JywgYWx0PScnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoIAorCisgLCA0KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAgICwgOCkKK1NBWC5zdGFydEVsZW1lbnQodGQsIHZhbGlnbj0nQk9UVE9NJywgYWxpZ249J1JJR0hUJywgY2xhc3M9J3dpcmVkJywgYmdjb2xvcj0nI0ZGRkZGRicpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzLzAsMTI4NywsMDAuaHRtbCcpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy93aXJlZF8wMDAwMDAuZ2lmJywgd2lkdGg9JzE1MycsIGhlaWdodD0nMzAnLCBib3JkZXI9JzAnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjRkYwMDAwJywgdmFsaWduPSdCT1RUT00nLCBhbGlnbj0nTEVGVCcsIHdpZHRoPSc5NycpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzLzAsMTI4NywsMDAuaHRtbCcpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9uZXdzX2ZmZmZmZi5naWYnLCB3aWR0aD0nMTAzJywgaGVpZ2h0PSczMCcsIGJvcmRlcj0nMCcpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKworCissIDMpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjRkYwMDAwJywgYWxpZ249J2xlZnQnLCB2YWxpZ249J2NlbnRlcicpCitTQVguc3RhcnRFbGVtZW50KG5vYnIpCitTQVguZXJyb3I6IFRhZyBub2JyIGludmFsaWQKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J2h0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYnLCB3aWR0aD0nMzQ0JywgaGVpZ2h0PScxJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBjb2xvcj0nI0ZGRkZGRicpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyh1cGRhdGVkIDEwOjE1IGEubS4sIDE4KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoMTUuT2N0Ljk5LlBEVCwgMTMpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KG5vYnIpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorCisKKyAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAgICwgOCkKK1NBWC5zdGFydEVsZW1lbnQodGQsIHZhbGlnbj0nTUlERExFJywgYWxpZ249J1JJR0hUJywgYmdjb2xvcj0nI0ZGRkZGRicpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmJywgd2lkdGg9JzEnLCBoZWlnaHQ9JzMwJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAKKyAgICAgICwgMTQpCitTQVguc3RhcnRFbGVtZW50KHRkLCBjb2xzcGFuPScyJywgYmdjb2xvcj0nIzk5OTk5OScpCitTQVguY2hhcmFjdGVycygKKworICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIGJvcmRlcj0nMCcsIGNlbGxzcGFjaW5nPScwJywgY2VsbHBhZGRpbmc9JzUnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGZvcm0sIG5hbWU9J1JlZGlyZWN0U2VhcmNoJywgYWN0aW9uPSdodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3NlYXJjaCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICAgICAsIDE3KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAgCisgICAgICAgICAgICAsIDE1KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nY291cmllcicsIHNpemU9JzEnKQorU0FYLnN0YXJ0RWxlbWVudChpbnB1dCwgdHlwZT0nVEVYVCcsIG5hbWU9J3F1ZXJ5Jywgc2l6ZT0nMjAnLCB2YWx1ZT0nJykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisKKyAgICAgICAgICAgICwgMTQpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHNlbGVjdCwgbmFtZT0ndXJsJykKK1NBWC5jaGFyYWN0ZXJzKAorCisgICwgNCkKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP0FjdGlvbj1GaWx0ZXJTZWFyY2gmYW1wO0ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmYW1wO1Jlc3VsdFRlbXBsYXRlPXZpZ25ldHRlLmh0cyZhbXA7Q29sbGVjdGlvbj12aWduZXR0ZSZhbXA7UXVlcnlNb2RlPUludGVybmV0JmFtcDtRdWVyeT0nLCBzZWxlY3RlZCkKK1NBWC5jaGFyYWN0ZXJzKFdpcmVkIE5ld3MsIDEwKQorU0FYLmVuZEVsZW1lbnQob3B0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP0FjdGlvbj1GaWx0ZXJTZWFyY2gmYW1wO0ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmYW1wO1Jlc3VsdFRlbXBsYXRlPXdlYm1vbmtleS5odHMmYW1wO0NvbGxlY3Rpb249d2VibW9ua2V5JmFtcDtRdWVyeU1vZGU9SW50ZXJuZXQmYW1wO1F1ZXJ5PScpCitTQVguY2hhcmFjdGVycyhXZWJtb25rZXksIDkpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0naHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9jb2xsZWN0aW9uPXdlYm1vbmtleV9ndWlkZXMmYW1wO0FjdGlvbj1GaWx0ZXJTZWFyY2gmYW1wO2ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmYW1wO1Jlc3VsdFRlbXBsYXRlPXdlYm1vbmtleV9ndWlkZXMuaHRzJmFtcDtRdWVyeU1vZGU9SW50ZXJuZXQmYW1wO1F1ZXJ5PScpCitTQVguY2hhcmFjdGVycyhXZWJtb25rZXkgR3VpZGVzLCAxNikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP2NvbGxlY3Rpb249aG90d2lyZWQmYW1wO0FjdGlvbj1GaWx0ZXJTZWFyY2gmYW1wO2ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmYW1wO1Jlc3VsdFRlbXBsYXRlPWhvdHdpcmVkX2FyY2hpdmUuaHRzJmFtcDtRdWVyeU1vZGU9SW50ZXJuZXQmYW1wO1F1ZXJ5PScpCitTQVguY2hhcmFjdGVycyhIb3RXaXJlZCBBcmNoaXZlcywgMTcpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J2h0dHA6Ly9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZhbXA7RmlsdGVyPWRvY3NfZmlsdGVyLmh0cyZhbXA7UmVzdWx0VGVtcGxhdGU9bWFnYXppbmUuaHRzJmFtcDtDb2xsZWN0aW9uPW1hZ2F6aW5lJmFtcDtRdWVyeU1vZGU9SW50ZXJuZXQmYW1wO1F1ZXJ5PScpCitTQVguY2hhcmFjdGVycyhXaXJlZCBNYWdhemluZSwgMTQpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9J2h0dHA6Ly9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZhbXA7RmlsdGVyPWRvY3NfZmlsdGVyLmh0cyZhbXA7UmVzdWx0VGVtcGxhdGU9YW5pbWF0aW9uLmh0cyZhbXA7Q29sbGVjdGlvbj1hbmltYXRpb24mYW1wO1F1ZXJ5TW9kZT1JbnRlcm5ldCZhbXA7UXVlcnk9JykKK1NBWC5jaGFyYWN0ZXJzKEFuaW1hdGlvbiBFeHByZXNzLCAxNykKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAsIDMpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0naHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9jb2xsZWN0aW9uPXN1Y2smYW1wO0FjdGlvbj1GaWx0ZXJTZWFyY2gmYW1wO2ZpbHRlcj1kb2NzX2ZpbHRlci5odHMmYW1wO1Jlc3VsdFRlbXBsYXRlPXN1Y2suaHRzJmFtcDtRdWVyeU1vZGU9SW50ZXJuZXQmYW1wO1F1ZXJ5PScpCitTQVguY2hhcmFjdGVycyhTdWNrLmNvbSwgOCkKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChvcHRpb24sIHZhbHVlPSdodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP2NvbGxlY3Rpb249dWJlcl9ob3R3aXJlZCZhbXA7QWN0aW9uPUZpbHRlclNlYXJjaCZhbXA7ZmlsdGVyPWRvY3NfZmlsdGVyLmh0cyZhbXA7UmVzdWx0VGVtcGxhdGU9dWJlcl9ob3R3aXJlZC5odHMmYW1wO1F1ZXJ5TW9kZT1JbnRlcm5ldCZhbXA7UXVlcnk9JykKK1NBWC5jaGFyYWN0ZXJzKEFsbCBvZiBIb3RXaXJlZCwgMTUpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0naHR0cDovL3d3dy5ob3Rib3QuY29tLz9TTT1NQyZhbXA7RFY9MCZhbXA7TEc9YW55JmFtcDtSRD1SRyZhbXA7REM9MTAmYW1wO0RFPTImYW1wO192PTImYW1wO09Qcz1NRFJUUCZhbXA7TVQ9JykKK1NBWC5jaGFyYWN0ZXJzKFRoZSBXZWIgLSZndDsgSG90Qm90LCAxNykKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoc2VsZWN0KQorU0FYLmNoYXJhY3RlcnMoCisKKworCisgICAgICAgICAgICAsIDE2KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoIAorICAgICAgICAgICAgICAsIDE2KQorU0FYLnN0YXJ0RWxlbWVudChpbnB1dCwgdHlwZT0nU1VCTUlUJywgbmFtZT0nU1VCTUlUJywgdmFsdWU9J1NFQVJDSCcpCitTQVguZW5kRWxlbWVudChpbnB1dCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGZvcm0pCitTQVguY2hhcmFjdGVycyggICAgICAgIAorICAgICAgICwgMTYpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIAorPFRSPgorPHRkPjwvdGQ+Cis8VEQgdmFsaWduPSJUT1AiIGFsaWduPSJMRUZUIiBjb2xzcGFuPSIzIiBiZ2NvbG9yPSIjRjBGMEYwIj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgaGVpZ2h0PTEgd2lkdGg9MTUgYWx0PSIiPjxicj4KKzxpPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9IjIiPlNwb25zb3JlZCBieTxhIGhyZWY9IiMiPlN1biBNaWNyb3N5c3RlbXMuPC9hPiBXZSdyZSB0aGUgZG90IGluIC5jb208L2ZvbnQ+PC9pPjxpPjwvaT48L1REPgorPC9UUj4KKykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodGFibGUpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jb21tZW50KCBlbmQgV0lSRUQgTkVXUyBoZWFkZXIgKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5jb21tZW50KCBiZWdpbiB1cHBlciBsZWZ0IHNpZGUgTmF2aWdhdGlvbiApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgYm9yZGVyPScwJywgY2VsbHBhZGRpbmc9JzMnLCBjZWxsc3BhY2luZz0nMCcsIGFsaWduPSdMRUZUJywgYmdjb2xvcj0nI0ZGRkZGRicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjRkYwMDAwJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nI0ZGRkZGRicpCitTQVguY2hhcmFjdGVycyggCisgICAgICAsIDgpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmJywgd2lkdGg9JzE0NycsIGhlaWdodD0nMScsIGJvcmRlcj0nMCcpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhTRUNUSU9OUywgOCkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyNDQ0ZGQ0MnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvYnVzaW5lc3MvMCwxMzY3LCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKEJ1c2luZXNzLCA4KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyM5OUZGOTknKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvY3VsdHVyZS8wLDEyODQsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoQ3VsdHVyZSwgNykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjQ0NGRkNDJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL3RlY2hub2xvZ3kvMCwxMjgyLCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKFRlY2hub2xvZ3ksIDEwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyM5OUZGOTknKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvcG9saXRpY3MvMCwxMjgzLCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKFBvbGl0aWNzLCA4KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nI0ZGMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgY29sb3I9JyNGRkZGRkYnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhXSVJFIFNFUlZJQ0UgTkVXUywgMTcpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjOTlGRjk5JykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL25ld3MvcmV1dGVycy8nKQorU0FYLmNoYXJhY3RlcnMoVG9wIEhlYWRsaW5lcywgMTMpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjQ0NGRkNDJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL25ld3MvcmV1dGVycy9zcG9ydHMvJykKK1NBWC5jaGFyYWN0ZXJzKFNwb3J0cywgNikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyM5OUZGOTknKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvbmV3cy9yZXV0ZXJzL2J1c2luZXNzLycpCitTQVguY2hhcmFjdGVycyhGaW5hbmNlLCA3KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jb21tZW50KCBFbmQgdXBwZXIgbGVmdCBuYXYgKQorU0FYLmNvbW1lbnQoIEJlZ2luIGxvd2VyIExlZnQgTmF2ICkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggCisgICAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nI0ZGMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nI0ZGRkZGRicpCitTQVguY2hhcmFjdGVycyggCisgICAgICAsIDgpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoRlJFRSBERUxJVkVSWSwgMTMpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjOTlGRjk5JykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgY2VsbHNwYWNpbmc9JzAnLCBjZWxscGFkZGluZz0nMCcsIGJvcmRlcj0nMCcpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyM5OUZGOTknKQorU0FYLmNoYXJhY3RlcnMoCisJCSAsIDQpCitTQVguc3RhcnRFbGVtZW50KGZvcm0sIGFjdGlvbj0naHR0cDovL3IuaG90d2lyZWQuY29tL3IvaHdfd21fcl9uYXZfbndzbHRyL2h0dHA6Ly9wZXJsLmhvdHdpcmVkLmNvbS9tYXNzbWFpbC9jZ2lQYXJzZXIuY2dpJywgbWV0aG9kPSdnZXQnLCB0YXJnZXQ9J190b3AnKQorU0FYLmNoYXJhY3RlcnMoCisKKyAsIDMpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdoaWRkZW4nLCBuYW1lPSdzdWNjZXNzX3BhZ2UnLCB2YWx1ZT0naHR0cDovL3d3dy5ob3R3aXJlZC5jb20vZW1haWwvc2lnbnVwL3dpcmVkbmV3cy1hc2NpaS5odG1sJykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoCisgCissIDMpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdoaWRkZW4nLCBuYW1lPSdmYWlsdXJlX3BhZ2UnLCB2YWx1ZT0naHR0cDovL3d3dy5ob3R3aXJlZC5jb20vZW1haWwvc2lnbnVwL3dpcmVkbmV3cy1hc2NpaS5odG1sJykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoCisgCissIDMpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdoaWRkZW4nLCBuYW1lPSdMSVNUJywgdmFsdWU9J3duX2FzY2lpJykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdoaWRkZW4nLCBuYW1lPSdTT1VSQ0UnLCB2YWx1ZT0nb3RoZXInKQorU0FYLmVuZEVsZW1lbnQoaW5wdXQpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdoaWRkZW4nLCBuYW1lPSdBQ1RJT04nLCB2YWx1ZT0nc3Vic2NyaWJlJykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoCisgCissIDMpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdURVhUJywgbmFtZT0nZnJvbScsIHNpemU9JzEwJywgdmFsdWU9J2VudGVyIGVtYWlsJykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChmb3JtKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycyggCisJCSwgNCkKK1NBWC5zdGFydEVsZW1lbnQodGQsIHZhbGlnbj0ndG9wJywgYmdjb2xvcj0nIzk5RkY5OScpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudChpbnB1dCwgdHlwZT0nU1VCTUlUJywgbmFtZT0nU1VCTUlUJywgdmFsdWU9J0dPJykKK1NBWC5lbmRFbGVtZW50KGlucHV0KQorU0FYLmNoYXJhY3RlcnMoIAorCisgICwgNSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisJLCAyKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggICAgLCA0KQorU0FYLmVycm9yOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBmb3JtCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRhYmxlKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjRkYwMDAwJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjRkZGRkZGJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAgICwgOCkKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycyhTVE9DS1MsIDYpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoIAorICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyM5OUZGOTknKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycyhHZXQgUXVvdGU6LCAxMCkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nIzk5RkY5OScsIG1hcmdpbndpZHRoPScwJywgbWFyZ2luaGVpZ2h0PScwJykKK1NBWC5zdGFydEVsZW1lbnQoZm9ybSwgbWV0aG9kPSdnZXQnLCBhY3Rpb249J2h0dHA6Ly9yLndpcmVkLmNvbS9yLzEwMDIwL2h0dHA6Ly9zdG9ja3Mud2lyZWQuY29tL3N0b2Nrc19xdW90ZXMuYXNwJykKK1NBWC5zdGFydEVsZW1lbnQoaW5wdXQsIHR5cGU9J1RFWFQnLCBuYW1lPSdTeW1ib2wnLCBzaXplPScxMicpCitTQVguZW5kRWxlbWVudChpbnB1dCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoaW5wdXQsIHR5cGU9J1NVQk1JVCcsIG5hbWU9J3N1Ym1pdCcsIHZhbHVlPSdHTycpCitTQVguZW5kRWxlbWVudChpbnB1dCkKK1NBWC5lbmRFbGVtZW50KGZvcm0pCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIEJFR0lOIEJVVFRPTiBBRFMgKQorU0FYLmNoYXJhY3RlcnMoCisgIAorICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjQ0NGRkNDJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKEZpbmFuY2lhbCBTZXJ2aWNlcywgMTgpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGNlbnRlcikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZicsIGhlaWdodD0nMycsIHdpZHRoPSc1JywgYWx0PScnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvYnV0dG9uX2Fkc19uZXdzMTAuZ2lmJywgd2lkdGg9JzE0MycsIGhlaWdodD0nNTYnLCBib3JkZXI9JzAnLCBhbHQ9JycsIHVzZW1hcD0nI2J1dHRvbnMnLCBoc3BhY2U9JzAnLCB2c3BhY2U9JzAnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChjZW50ZXIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChtYXAsIG5hbWU9J2J1dHRvbnMnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoYXJlYSwgc2hhcGU9J1JFQ1QnLCBhbHQ9J0RhdGVrJywgY29vcmRzPScwLDAsNjksMjQnLCBocmVmPSdodHRwOi8vci53aXJlZC5jb20vci8xNjQ5L2h0dHA6Ly9hZHMxNi5mb2NhbGluay5jb20vU21hcnRCYW5uZXIvcGFnZS8xMjY2LjYzMScpCitTQVguZW5kRWxlbWVudChhcmVhKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoYXJlYSwgc2hhcGU9J1JFQ1QnLCBhbHQ9J1dpcmVkIEluZGV4IEZ1bmQnLCBjb29yZHM9JzczLDAsMTQyLDI0JywgaHJlZj0naHR0cDovL3Iud2lyZWQuY29tL3IvMjI3L2h0dHA6Ly93d3cuZ2ZmdW5kcy5jb20vd2lyZWQnKQorU0FYLmVuZEVsZW1lbnQoYXJlYSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGFyZWEsIHNoYXBlPSdSRUNUJywgYWx0PSdpbnRlcm5ldC5jb20gSW5kZXggRnVuZCcsIGNvb3Jkcz0nNzMsMzEsMTQyLDU1JywgaHJlZj0naHR0cDovL3Iud2lyZWQuY29tL3IvMjk4L2h0dHA6Ly93d3cuZ2ZmdW5kcy5jb20vaXNkZXgvJykKK1NBWC5lbmRFbGVtZW50KGFyZWEpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChhcmVhLCBzaGFwZT0nUkVDVCcsIGFsdD0nR2V0U21hcnQmYXBvcztzIE1vcnRnYWdlRmluZGVyJywgY29vcmRzPScwLDMxLDY5LDU1JywgaHJlZj0naHR0cDovL3Iud2lyZWQuY29tL3IvMjk0L2h0dHA6Ly93d3cuZ2V0c21hcnRpbmMuY29tL21vcnRnYWdlL0hvbWVCYW5uZXI/QkFOTkVSTkFNRT13d3cuZ2V0c21hcnRpbmMuY29tL213aXJlZDAwMW02MDc1eDI1JykKK1NBWC5lbmRFbGVtZW50KGFyZWEpCitTQVguZW5kRWxlbWVudChtYXApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLmNvbW1lbnQoIEVORCBCVVRUT04gQURTICkKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjOTlGRjk5JykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9yZWRpcmVjdC53aXJlZC5jb20vcmVkaXIvNTEvaHR0cDovL3N0b2Nrcy53aXJlZC5jb20vJykKK1NBWC5jaGFyYWN0ZXJzKFRvZGF5J3MgU3VtbWFyeSwgMTUpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggCisgICAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nI0NDRkZDQycpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgY29sb3I9JyMwMDAwMDAnKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vci53aXJlZC5jb20vci9oYl9maW5fcl93bl90b3AvaHR0cDovL3N0b2Nrcy53aXJlZC5jb20vc3RvY2tzX2luZGV4ZXNfZGV0YWlsLmFzcD9TeW1ib2w9JFdJUkVEJykKK1NBWC5jaGFyYWN0ZXJzKFdpcmVkIEluZGV4LCAxMSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyggfCAsIDMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9yZWRpcmVjdC53aXJlZC5jb20vcmVkaXIvNTIvaHR0cDovL3N0b2Nrcy53aXJlZC5jb20vc3RvY2tzX2luZGV4ZXMuYXNwICcpCitTQVguY2hhcmFjdGVycyhBbGwgSW5kZXhlcywgMTEpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggCisgICAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nIzk5RkY5OScpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgY29sb3I9JyMwMDAwMDAnKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzUzL2h0dHA6Ly9zdG9ja3Mud2lyZWQuY29tL3N0b2Nrc19wb3J0Zm9saW9zLmFzcCcpCitTQVguY2hhcmFjdGVycyhQb3J0Zm9saW9zLCAxMCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLmNvbW1lbnQoIEJFR0lOIEImTiBzcG90ICkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoIAorICwgMykKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyNGRjAwMDAnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjRkZGRkZGJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKEZJTkQgQSBCT09LLCAxMSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nI0NDRkZDQycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodGFibGUsIGNlbGxzcGFjaW5nPScwJywgY2VsbHBhZGRpbmc9JzAnLCBib3JkZXI9JzAnLCB3aWR0aD0nMTQ1JykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgICAgICwgMTcpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nI0NDRkZDQycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICAgICAsIDE3KQorU0FYLnN0YXJ0RWxlbWVudChmb3JtLCBhY3Rpb249J2h0dHA6Ly9yLndpcmVkLmNvbS9yL3duX25hdl9jX2JuL2h0dHA6Ly9iYXJuZXNhbmRub2JsZS5iZmFzdC5jb20vYm9va2xpbmsvY2xpY2snKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGlucHV0LCB0eXBlPSdoaWRkZW4nLCBuYW1lPSdzb3VyY2VpZCcsIHZhbHVlPSczODM0NzEnKQorU0FYLmVuZEVsZW1lbnQoaW5wdXQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoaW5wdXQsIHR5cGU9J2hpZGRlbicsIG5hbWU9J2NhdGVnb3J5aWQnLCB2YWx1ZT0nY2F0ZWdvcnlkcm9wZG93bicpCitTQVguZW5kRWxlbWVudChpbnB1dCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgICAgICwgMTcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAgICAgLCAxNykKK1NBWC5zdGFydEVsZW1lbnQoc2VsZWN0LCBuYW1lPSdTdWJqZWN0cycsIHNpemU9JzQnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzMwMScpCitTQVguY2hhcmFjdGVycyhCdXNpbmVzcyBUb3AgMjAKKywgMTYpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzUwMCcpCitTQVguY2hhcmFjdGVycyhDb21wdXRlcnMKKywgMTApCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzUwMycpCitTQVguY2hhcmFjdGVycyhDb21wdXRlciBHYW1lcworLCAxNSkKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nMTYwNCcpCitTQVguY2hhcmFjdGVycyhDdXJyZW50IEFmZmFpcnMKKywgMTYpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzUxMScpCitTQVguY2hhcmFjdGVycyhDeWJlcmN1bHR1cmUKKywgMTMpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzUxMCcpCitTQVguY2hhcmFjdGVycyhJbnRlcm5ldC9XZWIKKywgMTMpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzMwMycpCitTQVguY2hhcmFjdGVycyhJbnZlc3RpbmcKKywgMTApCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzE2MDYnKQorU0FYLmNoYXJhY3RlcnMoTGF3CissIDQpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzUxMycpCitTQVguY2hhcmFjdGVycyhNdWx0aW1lZGlhCisKKywgMTIpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguc3RhcnRFbGVtZW50KG9wdGlvbiwgdmFsdWU9JzE2MDUnKQorU0FYLmNoYXJhY3RlcnMoTmV3c21ha2VycworLCAxMSkKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nMTYwNycpCitTQVguY2hhcmFjdGVycyhQb2xpdGljcy9Hb3Z0LgorCisgLCAxNykKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nMzE1JykKK1NBWC5jaGFyYWN0ZXJzKCBXZWIgQnVzaW5lc3MKKyAgLCAxNikKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nMjgwMCcpCitTQVguY2hhcmFjdGVycyggQmFyZ2FpbiBCb29rcworICAgICAgICAgICAgICAgLCA0MCkKK1NBWC5lbmRFbGVtZW50KG9wdGlvbikKK1NBWC5zdGFydEVsZW1lbnQob3B0aW9uLCB2YWx1ZT0nNCcpCitTQVguY2hhcmFjdGVycyhPdGhlciAKKworCisKKyAKKworICwgMTQpCitTQVguZW5kRWxlbWVudChvcHRpb24pCitTQVguZW5kRWxlbWVudChzZWxlY3QpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQoZm9ybSkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHRyLCBhbGlnbj0nbGVmdCcsIHZhbGlnbj0ndG9wJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgICAgICwgMTcpCitTQVguc3RhcnRFbGVtZW50KHRkLCB2YWxpZ249J3RvcCcsIGJnY29sb3I9JyNDQ0ZGQ0MnKQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5zdGFydEVsZW1lbnQoaW5wdXQsIHR5cGU9J3N1Ym1pdCcsIHZhbHVlPSdHTycpCitTQVguZW5kRWxlbWVudChpbnB1dCkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL2Jhcm5lc2FuZG5vYmxlLmJmYXN0LmNvbS9ib29rbGluay9zZXJ2ZT9zb3VyY2VpZD0zODM0NzEmYW1wO2lzX3NlYXJjaD1ZJywgYm9yZGVyPScwJywgYWxpZ249J3RvcCcpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jb21tZW50KAorPElNRyBTUkM9Imh0dHA6Ly93d3cud2lyZWQuY29tL3BhcnRuZXIvYm4vdHJhY2tpbmdpbWcvb3Rfd25fbmF2X2NfYm4uZ2lmIiBib3JkZXI9MCB3aWR0aD0xIGhlaWdodD0xIGFsaWduPXRvcD4KKykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICwgMzUpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgICAgICwgMTcpCitTQVguc3RhcnRFbGVtZW50KHRyLCBhbGlnbj0nbGVmdCcsIHZhbGlnbj0ndG9wJykKK1NBWC5jaGFyYWN0ZXJzKAorIAorICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYWxpZ249J2xlZnQnLCB2YWxpZ249J3RvcCcsIGNvbHNwYW49JzInLCByb3dzcGFuPScxJywgYmdjb2xvcj0nI0NDRkZDQycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCAnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhQb3dlcmVkIGJ5ICwgMTEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9yLndpcmVkLmNvbS9yL3duX25hdl9jX2JuL2h0dHA6Ly9iYXJuZXNhbmRub2JsZS5iZmFzdC5jb20vYm9va2xpbmsvY2xpY2s/c291cmNlaWQ9MzgzNDcxJykKK1NBWC5jaGFyYWN0ZXJzKGJhcm5lc2FuZG5vYmxlLmNvbSwgMTgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChiciwgY2xlYXI9J2FsbCcpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5lbmRFbGVtZW50KHApCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAgLCAyKQorU0FYLmVycm9yOiBVbmV4cGVjdGVkIGVuZCB0YWcgOiBmb3JtCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnQodGFibGUpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5jb21tZW50KCBFTkQgQiZOIHNwb3QgKQorU0FYLmNoYXJhY3RlcnMoICAgCisgIAorLCA3KQorU0FYLmNvbW1lbnQoIEJFR0lOIE1BR0FaSU5FIFNQT1QgKQorU0FYLmNoYXJhY3RlcnMoCisKKyAsIDMpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoIAorICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyMwMDAwMDAnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nI0ZGRkZGRicsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKFdJUkVEIAorICAgICAgTUFHQVpJTkUgLCAyMikKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjRkZGRjk5JywgYWxpZ249J0NFTlRFUicpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0ndmVyZGFuYSwgYXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cud2lyZWQuY29tL3dpcmVkLycpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy93aXJlZGNvdmVyLmdpZicsIHdpZHRoPSc5MScsIGhlaWdodD0nMTA5JywgYm9yZGVyPScwJywgYWx0PSdXaXJlZCBNYWdhemluZScpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguZW5kRWxlbWVudChhKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKAorCitJc3N1ZSA3LjExCissIDEzKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjRkZGRjk5JywgYWxpZ249J2NlbnRlcicpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0ndmVyZGFuYSwgYXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoIAorCissIDMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cud2lyZWQuY29tL3dpcmVkL3N1YnNjcmliZS9zcGVjaWFsLzc5V04nKQorU0FYLmNoYXJhY3RlcnMoU3Vic2NyaWJlIHRvIFdpcmVkLiwgMTkpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycyhTcGVjaWFsIG9mZmVyISwgMTQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoCisKKworLCAzKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguY29tbWVudCggRU5EIE1BR0FaSU5FIFNQT1QgKQorU0FYLmNoYXJhY3RlcnMoCisKKyAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoIAorICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nI0ZGRkZGRicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhIT1RXSVJFRCwgOCkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjRkZGRjk5JykKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cuaG90d2lyZWQuY29tLycpCitTQVguY2hhcmFjdGVycyhGcm9udGRvb3IsIDkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cuaG90d2lyZWQuY29tL3dlYm1vbmtleS8nKQorU0FYLmNoYXJhY3RlcnMoV2VibW9ua2V5LCA5KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS93ZWJtb25rZXkvZ3VpZGVzL2luZGV4Lmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoV2VibW9ua2V5IEd1aWRlcywgMTYpCitTQVguZW5kRWxlbWVudChhKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cuaG90d2lyZWQuY29tL3JnYi8nKQorU0FYLmNoYXJhY3RlcnMoUkdCIEdhbGxlcnksIDExKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS9hbmltYXRpb24vJykKK1NBWC5jaGFyYWN0ZXJzKEFuaW1hdGlvbiBFeHByZXNzLCAxNykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL2dvLnN1Y2suY29tL3N1X3duZmQnKQorU0FYLmNoYXJhY3RlcnMoU3Vjay5jb20sIDgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKyAgCisgICAgLCA4KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoIAorICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nI0ZGRkZGRicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhIT1RCT1QsIDYpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycyggCisgICAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nI0ZGRkY5OScpCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzU0L2h0dHA6Ly93d3cuaG90Ym90LmNvbS8nKQorU0FYLmNoYXJhY3RlcnMoU2VhcmNoLCA2KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vc2hvcC5ob3Rib3QuY29tLycpCitTQVguY2hhcmFjdGVycyhTaG9wcGluZywgOCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5zdGFydEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoCisgIFdpcmVkIE5ld3MgLCAxNCkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3Mvd2hvLzAsMTM2MiwsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhzdGFmZiwgNSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKworICAsIDQpCitTQVguY29tbWVudCggV2lyZWQgTmV3cyBpcyA8YSBocmVmPSJodHRwOi8vd3d3LndpcmVkLmNvbS9uZXdzL2pvYnMuaHRtbCI+aGlyaW5nPC9hPjxicj48YnI+ICkKK1NBWC5jaGFyYWN0ZXJzKAorCisgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvZmVlZGJhY2svMCwxMzY0LCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKENvbnRhY3QgdXMsIDEwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoCisKKyAgCisgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycyhXaXJlZCBOZXdzICBkZWxpdmVyZWQsIDIxKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoYnkgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy9wYWxtcGlsb3QvMCwxMzY1LCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKFBhbG1QaWxvdCwgOSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycygsLCAxKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS9lbWFpbC9zaWdudXAvd25fb3V0bG9vay5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKE91dGxvb2sgIEV4cHJlc3MsIDE2KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKCwsIDEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9yZWRpcmVjdC53aXJlZC5jb20vcmVkaXIvNTUvaHR0cDovL2Zvcm0ubmV0c2NhcGUuY29tL2liZC9odG1sL2liZF9mcmFtZXNldC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKEluLUJveCBEaXJlY3QsIDEzKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKCwsIDEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKK29yICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvcG9pbnRjYXN0LzAsMTM2NiwsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhQb2ludENhc3QsIDkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguY29tbWVudCggVFJBQ0tJTkcgKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vd3d3LndpcmVkLmNvbS9zcGVjaWFsL21vZHgvbmV3cy5naWYnLCBoZWlnaHQ9JzEnLCB3aWR0aD0nMScsIGFsdD0nJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVycm9yOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5lbmRFbGVtZW50KHRhYmxlKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5jb21tZW50KCBlbmQgbG93ZXIgbGVmdCBzaWRlIE5hdmlnYXRpb24gKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguY29tbWVudCggQ09OVEVOVCBUQUJMRSApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgYm9yZGVyPScwJywgd2lkdGg9JzQ0NycsIGNlbGxzcGFjaW5nPScwJywgY2VsbHBhZGRpbmc9JzAnLCBib3JkZXJjb2xvcj0nIzY2RkYwMCcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQodGQsIHZhbGlnbj0nVE9QJywgYWxpZ249J0xFRlQnLCByb3dzcGFuPScyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZicsIGhlaWdodD0nMScsIHdpZHRoPScxNScsIGFsdD0nJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHRkLCBjb2xzcGFuPSczJywgdmFsaWduPSdUT1AnLCBhbGlnbj0nTEVGVCcpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmJywgaGVpZ2h0PSc3Jywgd2lkdGg9JzQzMicsIGFsdD0nJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5jb21tZW50KCBTUUwgcXVlcnkgZm9yIFBhY2thZ2UgaGVyZSApCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguY2hhcmFjdGVycyhOb21hZCdzIExhbmQsIDEyKQorU0FYLmVuZEVsZW1lbnQoaSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvcGl4MTU1LmdpZicsIGhlaWdodD0nMTAnLCB3aWR0aD0nMTU1JywgYWx0PScnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNvbW1lbnQoIElCRF9TVUJKRUNUOiBIb21lbGVzcywgYnV0IElEJ2QsIGluIFNlYXR0bGUgKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nNScpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL3BvbGl0aWNzLzAsMTI4MywzMTkxMSwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKEhvbWVsZXNzLCBidXQgSUQnZCwgaW4gU2VhdHRsZSwgMzApCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgY29sb3I9JyNGRjAwMDAnKQorU0FYLmNoYXJhY3RlcnMoODoxNSBhLm0uLCA5KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoVGhlIGNpdHkgY291bmNpbCBhcHByb3ZlcyBhIHBsLCAxODApCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL3BvbGl0aWNzLzAsMTI4MywsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhpbiwgMikKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKFBvbGl0aWNzLCA4KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudCh0YWJsZSwgYmdjb2xvcj0nI0YwRjBGMCcsIGNlbGxwYWRkaW5nPScwJywgY2VsbHNwYWNpbmc9JzAnLCBib3JkZXI9JzAnLCB3aWR0aD0nMTQ3JywgYWxpZ249J1JJR0hUJykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5jb21tZW50KCBDb21tZW50YXJ5IEZyYWcgQmVnaW4gKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KHRkLCBiZ2NvbG9yPScjMDAwMDAwJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nI0ZGRkZGRicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhISVRTICwgNSkKK1NBWC5jaGFyYWN0ZXJzKCZhbXA7LCAxKQorU0FYLmNoYXJhY3RlcnMoIE1JU0MuLCA2KQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KHRkKQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZicsIGhlaWdodD0nNScsIHdpZHRoPSc1JywgYWx0PScnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCisKKwkJLCA0KQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJywgZmFjZT0nQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvY29tbWVudGFyeVNlY3Rpb24vMCwxMjkyLDMxNjY0LDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoQ2FsZW5kYXIgb2YgRS1WZW50cywgMTkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J0FyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhPbmdvaW5nIGdvaW5ncy1vbi4gLCAxOSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy9jb21tZW50YXJ5U2VjdGlvbi8wLDEyOTIsMzE5MjYsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhSYW50cyAsIDYpCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogbm8gbmFtZQorU0FYLmNoYXJhY3RlcnMoJmFtcDssIDEpCitTQVguY2hhcmFjdGVycyggUmF2ZXMsIDYpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J0FyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhSZWFkZXJzIG9uIEFwcGxlJ3MgRzQgLi4uIEFPTCcsIDU5KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKCAgLCAyKQorU0FYLmVycm9yOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lcnJvcjogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdGQgYW5kIGZvbnQKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIENvbW1lbnRhcnkgRnJhZyBFbmQgKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYWxpZ249J2xlZnQnLCBiZ2NvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgY29sb3I9JyNGRkZGRkYnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmNoYXJhY3RlcnMoQ1VSUkVOVCBIT08tSEEsIDE0KQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZicsIGhlaWdodD0nNScsIHdpZHRoPSc1JywgYWx0PScnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJywgZmFjZT0nQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvbXAzLzAsMTI4NSwsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhNUDMgUm9ja3MgdGhlIFdlYiwgMTcpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J0FyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhEb3dubG9hZCB0aGUgc291bmQuICAsIDIxKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChpKQorU0FYLmNoYXJhY3RlcnMoU3BvbnNvcmVkIGJ5ICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9yLmhvdHdpcmVkLmNvbS9yL3duX2ZkX21wM19yX21zY21fdHh0L2h0dHA6Ly93ZWJmYXJtLm1lZGlhcGxleC5jb20vY2xpY2tfdGhydV9yZXF1ZXN0LzE2NC0xMzYxYi0xMDUyJywgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjpub25lJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoTXVzaWNtYWtlciwgMTApCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoIAorCissIDMpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy93aXJlbGVzcy8wLDEzODIsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoVGhlIFdpcmVsZXNzIFdvcmxkLCAxOCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKE5ldHdvcmtpbmcgZ2V0cyB1bnBsdWdnZWQuICAsIDI4KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChpKQorU0FYLmNoYXJhY3RlcnMoU3BvbnNvcmVkIGJ5ICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cuZXJpY3Nzb24uc2UvZ2V0L2ludGVybmV0L2RlZmF1bHQuc2h0bWwnLCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOm5vbmUnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhFcmljc3NvbiwgOCkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycyggCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL2RpZ2l3b29kLzAsMTQxMiwsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhEaWdpdGFsIEhvbGx5d29vZCwgMTcpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J0FyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhUaGUgYnV6eiBvZiB0ZWNoLiwgMTcpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoIAorCissIDMpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy9pcG8vMCwxMzUwLCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKElQTyBPdXRsb29rLCAxMSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKERlYWxzIGluIHRoZSBwaXBlbGluZS4gICwgMjQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguY2hhcmFjdGVycyhTcG9uc29yZWQgYnkgLCAxMykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL3IuaG90d2lyZWQuY29tL3Ivd25faXBvX3Jfc3VuX3R4dC9odHRwOi8vc3VuLmNvbS9hZHMvc21pL2JyYW5kL2hvdHdpcmVkLmh0bWwnLCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOm5vbmUnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhTdW4sIDMpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoIAorCissIDMpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy9lYml6LzAsMTI3MiwsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhFLUJpeiwgNSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKEJ1c2luZXNzIHVudXN1YWwuICAsIDE5KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChpKQorU0FYLmNoYXJhY3RlcnMoU3BvbnNvcmVkIGJ5ICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9yLndpcmVkLmNvbS9yL3duX2ZkX3JfZWJpel9pYm1fdHh0L2h0dHA6Ly93d3cuaWJtLmNvbScsIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246bm9uZScpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKElCTSwgMykKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycyggCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL21lZHRlY2gvMCwxMjg2LCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKE1lZC1UZWNoIENlbnRlciwgMTUpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J0FyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhGcm9tIHRoZSBibGVlZGluZyBlZGdlLiwgMjMpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguY2hhcmFjdGVycyhTcG9uc29yZWQgYnkgV2ViTUQsIDE4KQorU0FYLmVuZEVsZW1lbnQoaSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycyggCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL2xpbnV4LzAsMTQxMSwsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhUaGUgTGludXggRWZmZWN0LCAxNikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKE5vdCBqdXN0IGZvciBnZWVrcy4sIDE5KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmJywgaGVpZ2h0PSc3Jywgd2lkdGg9JzUnLCBhbHQ9JycpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJywgZmFjZT0nQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvZXhlYy8wLDEzNzAsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoRXhlY3V0aXZlIFN1bW1hcnksIDE3KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScxJywgZmFjZT0nQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKENFT3MsIENPT3MsIENJT3MgdW5pdGUuICAsIDI1KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChpKQorU0FYLmNoYXJhY3RlcnMoU3BvbnNvcmVkIGJ5ICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9yLndpcmVkLmNvbS9yL3duX2V4ZWNfcl92aWduL2h0dHA6Ly93d3cudmlnbmV0dGUuY29tLycsIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246bm9uZScpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKFZpZ25ldHRlLCA4KQorU0FYLmVycm9yOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBhIGFuZCBmb250CitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoIAorCissIDMpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzInLCBmYWNlPSdBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy9zY2hvb2wvMCwxMzgzLCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKE1ha2luZyB0aGUgR3JhZGUsIDE2KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJywgZmFjZT0nQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoUmVhZGluZywgd3JpdGluZywgYW5kIFJPTS4gICwgMjgpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguY2hhcmFjdGVycyhTcG9uc29yZWQgYnkgLCAxMykKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL3IuaG90d2lyZWQuY29tL3Ivd25fc2NoX3JfbmF2X3VvcC9odHRwOi8vYWRzMjUuZm9jYWxpbmsuY29tL1NtYXJ0QmFubmVyL3BhZ2U/MTI2MzAuNTMnLCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOm5vbmUnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhVIG9mIFBob2VuaXgsIDEyKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChpKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKCAKKworLCAzKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJywgZmFjZT0nQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvaW5mb3N0cnVjdHVyZS8wLDEzNzcsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoSW5mb3N0cnVjdHVyZSwgMTMpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoQW4gSVMvSVQgcmVzb3VyY2UgLCAxOCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5jaGFyYWN0ZXJzKFNwb25zb3JlZCBieSAsIDEzKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5lcnJvcjogaHRtbFBhcnNlRW50aXR5UmVmOiBleHBlY3RpbmcgJzsnCitTQVguZXJyb3I6IGh0bWxQYXJzZUVudGl0eVJlZjogZXhwZWN0aW5nICc7JworU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vci53aXJlZC5jb20vci93bl9pc19yX3NzZWMvaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGs7NjUzMTYzOzM1OTk1NzE7cz9odHRwOi8vd3d3LnNwcmludGJpei5jb20vcworZXJ2bGV0L2FwcHNlcnZsZXQ/ZnJvbT0vd2lyZWQvc3ByaW50LyZhbXA7dGVtcGxhdGU9L3NlY3VyaXR5L3NlY3VyaXR5Lmh0bWwmYW1wO1NJVEU9Cit3aXJlZC5jb20mYW1wO0JBTk5FUj1TcHJpbnQnLCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOm5vbmUnKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyhTcHJpbnQsIDYpCitTQVguZXJyb3I6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IGEgYW5kIGZvbnQKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaSkKK1NBWC5lcnJvcjogRW5kIHRhZyA6IGV4cGVjdGVkICc+JworU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycyggCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL3kyay8wLDEzNjAsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoWTJLIFdhdGNoLCA5KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBzaXplPScyJywgZmFjZT0nQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoVGljay4uLiBUaWNrLi4uIFRpY2suLi4sIDIzKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKCAKKworLCAzKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMicpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL3NwZWNpYWxfcmVwb3J0cy8xLDEyOTMsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoTW9yZSBIb28tSGEsIDExKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguZXJyb3I6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHRkIGFuZCBmb250CitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVycm9yOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lcnJvcjogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdGQgYW5kIGZvbnQKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZXJyb3I6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHRkIGFuZCBmb250CitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVycm9yOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lcnJvcjogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdGQgYW5kIGZvbnQKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguZXJyb3I6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHRkIGFuZCBmb250CitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVycm9yOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0ZCBhbmQgZm9udAorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIHN0YXJ0IG9mIEdlbiBOZXdzICkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgICAgICwgMTcpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoIAorICAgICAgICAgICAgICAgICAgLCAyMCkKK1NBWC5zdGFydEVsZW1lbnQodGQsIGJnY29sb3I9JyMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCwgYmdjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIHNpemU9JzEnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgY29sb3I9JyNGRkZGRkYnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmNoYXJhY3RlcnMoTUVBTldISUxFLi4uLCAxMikKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKworICAgICAgICAsIDEwKQorU0FYLnN0YXJ0RWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICAgICAgICAsIDEyKQorU0FYLnN0YXJ0RWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQodGQsIGFsaWduPSdsZWZ0JywgdmFsaWduPSd0b3AnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J2h0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYnLCBoZWlnaHQ9JzUnLCB3aWR0aD0nNScsIGFsdD0nJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5jb21tZW50KCAzMTk0MiApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMicsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyhGJnV1bWw7aHJlciBGdXJvciwgMTMpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScsIGZhY2U9J0FyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBjb2xvcj0nIzAwMDAwMCcpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygNCitDb250cnVjdGlvbiB3b3JrZXJzIGluIEJlcmxpLCA2MzcpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChwKQorU0FYLnN0YXJ0RWxlbWVudChsaSkKK1NBWC5jaGFyYWN0ZXJzKE1vcmUgZnJvbSAsIDEwKQorU0FYLmVycm9yOiBodG1sUGFyc2VFbnRpdHlSZWY6IGV4cGVjdGluZyAnOycKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL3d3dy5seWNvcy5jb20vbmV3cy9mbGFzaC9oaXRsZXJidW5rZXIuaHRtbD92PXduMTAxNSZhbXA7bHB2PTEnKQorU0FYLmNoYXJhY3RlcnMoTHljb3MsIDUpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQobGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jb21tZW50KCBlbmQgb2YgR2VuIE5ld3MgKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudCh0YWJsZSkKK1NBWC5jaGFyYWN0ZXJzKAorCisKKywgMykKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBzaXplPScyJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5jaGFyYWN0ZXJzKE90aGVyIFRvcCBTdG9yaWVzLCAxNykKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvcGl4MTU1LmdpZicsIGhlaWdodD0nMTAnLCB3aWR0aD0nMTU1JywgYWx0PScnKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5jb21tZW50KCBTUUwgcXVlcnkgaGVyZSApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5jb21tZW50KCBJQkRfU1VCSkVDVDpXYWxsIFN0cmVldCBLZWVwcyBSZWVsaW5nICkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy9yZXV0ZXJzLzAsMTM0OSwzMTkzNCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKFdhbGwgU3RyZWV0IEtlZXBzIFJlZWxpbmcsIDI1KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nI2ZmMDAwMCcsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5jaGFyYWN0ZXJzKDEwOjE1IGEubS4sIDEwKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoVGhlIERvdyBhbmQgTmFzZGFxIHN1ZmZlciBzaXplLCAxODApCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL3JldXRlcnMvMCwxMzQ5LCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKGluLCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoUmV1dGVycywgNykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChpKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jb21tZW50KCBJQkRfU1VCSkVDVDpUaGUgTWFya2V0J3MgTWFkbmVzcyApCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPSczJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvcmV1dGVycy8wLDEzNDksMzE5MzUsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhUaGUgTWFya2V0J3MgTWFkbmVzcywgMjApCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjZmYwMDAwJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoOToxMCBhLm0uLCA5KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoVGhlIGJ1bGxzIGFuZCB0aGUgYmVhcnMgYXJlIGluLCAxMjgpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL3JldXRlcnMvMCwxMzQ5LCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKGluLCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoUmV1dGVycywgNykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChpKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jb21tZW50KCBJQkRfU1VCSkVDVDonV2FudCBhIExvYW4/IFdoYXQncyBZb3VyIFJhY2U/JyApCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPSczJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvcG9saXRpY3MvMCwxMjgzLDMxNTMzLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoJ1dhbnQgYSBMb2FuPyBXaGF0J3MgWW91ciBSYWNlLCAzMikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyNmZjAwMDAnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycygzOjAwIGEubS4sIDkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMicpCitTQVguY2hhcmFjdGVycyhUaGUgRmVkZXJhbCBSZXNlcnZlIGlzIGluIHRoZSAsIDE4NCkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvcG9saXRpY3MvMCwxMjgzLCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKGluLCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoUG9saXRpY3MsIDgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY29tbWVudCggSUJEX1NVQkpFQ1Q6TXVzaWMgUmVnczogQSBCYWdmdWwgb2YgTm9pc2UgKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMycpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL2J1c2luZXNzLzAsMTM2NywzMTgzMiwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKE11c2ljIFJlZ3M6IEEgQmFnZnVsIG9mIE5vaXNlLCAyOSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyNmZjAwMDAnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycygzOjAwIGEubS4sIDkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMicpCitTQVguY2hhcmFjdGVycyhUaGUgc3RydWdnbGUgdG8gY29tZSB1cCB3aXRoIGEsIDE3MSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvYnVzaW5lc3MvMCwxMzY3LCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKGluLCAyKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMoQnVzaW5lc3MsIDgpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoaSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY29tbWVudCggSUJEX1NVQkpFQ1Q6Q2FuJ3QgQmVhdCAnRW0/IEdyZWVuICdFbSApCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J0FyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPSczJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvdGVjaG5vbG9neS8wLDEyODIsMzE5MjcsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhDYW4ndCBCZWF0ICdFbT8gR3JlZW4gJ0VtLCAyNSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyNmZjAwMDAnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycygzOjAwIGEubS4sIDkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMicpCitTQVguY2hhcmFjdGVycyhIaWdoLXRlY2ggY29tcGFuaWVzIGFyZSBub3RvcmksIDE4NikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvdGVjaG5vbG9neS8wLDEyODIsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoaW4sIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycyhUZWNobm9sb2d5LCAxMCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChpKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jb21tZW50KCBJQkRfU1VCSkVDVDpZMksgQ2xvdWQgT3ZlciBNUyBPZmZpY2UgKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMycpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL2J1c2luZXNzLzAsMTM2NywzMTkzMiwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKFkySyBDbG91ZCBPdmVyIE1TIE9mZmljZSwgMjQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjZmYwMDAwJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoMzowMCBhLm0uLCA5KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoV2luZG93cyBOVCBzYWxlcyByZW1haW4gc3Ryb25nLCAxNjUpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL2J1c2luZXNzLzAsMTM2NywsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhpbiwgMikKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKEJ1c2luZXNzLCA4KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nI0ZGMDAwMCcsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5jaGFyYWN0ZXJzKE1lZC1UZWNoLCA4KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jb21tZW50KCBJQkRfU1VCSkVDVDpCaW9jaGlwcyBmb3IgQ3VzdG9tIENoZW1vICkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy90ZWNobm9sb2d5LzAsMTI4MiwzMTkxNCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKEJpb2NoaXBzIGZvciBDdXN0b20gQ2hlbW8sIDI1KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBjb2xvcj0nI2ZmMDAwMCcsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5jaGFyYWN0ZXJzKDM6MDAgYS5tLiwgOSkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBzaXplPScyJykKK1NBWC5jaGFyYWN0ZXJzKERpZmZlcmVudCBjYW5jZXIgcGF0aWVudHMgbmVlZCwgMjA3KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLnN0YXJ0RWxlbWVudChpKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy90ZWNobm9sb2d5LzAsMTI4MiwsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhpbiwgMikKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKFRlY2hub2xvZ3ksIDEwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNvbW1lbnQoIElCRF9TVUJKRUNUOkhpZ2ggU3Rha2VzIGluIFByaWNlbGluZSBTdWl0ICkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy9idXNpbmVzcy8wLDEzNjcsMzE5MTYsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhIaWdoIFN0YWtlcyBpbiBQcmljZWxpbmUgU3VpdCwgMjkpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGNvbG9yPScjZmYwMDAwJywgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzEnKQorU0FYLmNoYXJhY3RlcnMoMzowMCBhLm0uLCA5KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZicsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoSXQncyBub3QganVzdCBhbm90aGVyIHJvdW5kIG9mLCAxOTYpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguc3RhcnRFbGVtZW50KGkpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9Jy9uZXdzL2J1c2luZXNzLzAsMTM2NywsMDAuaHRtbCcpCitTQVguY2hhcmFjdGVycyhpbiwgMikKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKEJ1c2luZXNzLCA4KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNvbW1lbnQoIElCRF9TVUJKRUNUOkJpb2RpdmVyc2l0eSBNZXJnZXMgT25saW5lICkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZicsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPScvbmV3cy90ZWNobm9sb2d5LzAsMTI4MiwzMTkxOCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKEJpb2RpdmVyc2l0eSBNZXJnZXMgT25saW5lLCAyNikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgY29sb3I9JyNmZjAwMDAnLCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycygzOjAwIGEubS4sIDkpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMicpCitTQVguY2hhcmFjdGVycyhUaGUgZmFyLWZsdW5nIGRhdGFiYXNlcyBvbiBnbG8sIDE5NikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYnLCBzaXplPScxJykKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0nL25ld3MvdGVjaG5vbG9neS8wLDEyODIsLDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoaW4sIDIpCitTQVguY2hhcmFjdGVycygmbmJzcDssIDIpCitTQVguY2hhcmFjdGVycyhUZWNobm9sb2d5LCAxMCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChpKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jb21tZW50KCBTUUwgYWJvdmUgKQorU0FYLmNoYXJhY3RlcnMoCisKKworICAgICAgICAKKywgMTIpCitTQVguY29tbWVudCgtLS0tVFJBREVTLS0tLS0tLSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J1ZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYnLCBzaXplPScyJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoaSkKK1NBWC5jaGFyYWN0ZXJzKEVsc2V3aGVyZSBUb2RheSwgMTUpCitTQVguZW5kRWxlbWVudChpKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J2h0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3BpeDE1NS5naWYnLCBoZWlnaHQ9JzEwJywgd2lkdGg9JzE1NScsIGFsdD0nJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguY29tbWVudCggU1FMIHF1ZXJ5IGhlcmUgKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J2hlbHZldGljYSwgYXJpYWwnLCBzaXplPSczJykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL3d3dy50aGVzdGFuZGFyZC5jb20vYXJ0aWNsZXMvZGlzcGxheS8wLDE0NDksNjk3NSwwMC5odG1sP2hvbWUudGYnKQorU0FYLmNoYXJhY3RlcnMoRkNDOiBIYW5kcy1PZmYgb24gQnJvYWRiYW5kLCAyNykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nZ2VuZXZhLCBhcmlhbCcsIHNpemU9JzInKQorU0FYLnN0YXJ0RWxlbWVudChjaXRlKQorU0FYLmNoYXJhY3RlcnMoVGhlIEluZHVzdHJ5IFN0YW5kYXJkLCAyMSkKK1NBWC5lbmRFbGVtZW50KGNpdGUpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdoZWx2ZXRpY2EsIGFyaWFsJywgc2l6ZT0nMycpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9uZXdzLmx5Y29zLmNvbS9zdG9yaWVzL1RvcE5ld3MvMTk5OTEwMTRSVE5FV1MtQVJNUy1UUkVBVFkuYXNwJykKK1NBWC5jaGFyYWN0ZXJzKFdoaXRlIEhvdXNlIExhc2hlcyBPdXQgb24gVHJlYSwgMzIpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J2dlbmV2YSwgYXJpYWwnLCBzaXplPScyJykKK1NBWC5jaGFyYWN0ZXJzKEx5Y29zLCA1KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0naGVsdmV0aWNhLCBhcmlhbCcsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LnBhdGhmaW5kZXIuY29tL3RpbWUvbWFnYXppbmUvYXJ0aWNsZXMvMCwzMjY2LDMyMjA3LDAwLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoU3RldmUgSm9icyBhdCA0NCwgMTYpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J2dlbmV2YSwgYXJpYWwnLCBzaXplPScyJykKK1NBWC5zdGFydEVsZW1lbnQoY2l0ZSkKK1NBWC5jaGFyYWN0ZXJzKFRpbWUsIDQpCitTQVguZW5kRWxlbWVudChjaXRlKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0naGVsdmV0aWNhLCBhcmlhbCcsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LnpkbmV0LmNvbS96ZG5uL3N0b3JpZXMvbmV3cy8wLDQ1ODYsMjM1MzYwOCwwMC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKENvbXB1dGVycyBNYXkgUnVuIG9uIEdhcywgMjQpCitTQVguZW5kRWxlbWVudChhKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGZvbnQsIGZhY2U9J2dlbmV2YSwgYXJpYWwnLCBzaXplPScyJykKK1NBWC5jaGFyYWN0ZXJzKFpETk4sIDQpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdoZWx2ZXRpY2EsIGFyaWFsJywgc2l6ZT0nMycpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cubnl0aW1lcy5jb20vbGlicmFyeS90ZWNoLzk5LzEwL2JpenRlY2gvYXJ0aWNsZXMvMTRmcmVlLmh0bWwnKQorU0FYLmNoYXJhY3RlcnMoTXVjaCBJcyBGcmVlIGluIHRoZSBXaXJlZCBXb3JsLCAzMSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nZ2VuZXZhLCBhcmlhbCcsIHNpemU9JzInKQorU0FYLnN0YXJ0RWxlbWVudChjaXRlKQorU0FYLmNoYXJhY3RlcnMoVGhlIE5ldyBZb3JrIFRpbWVzLCAxOCkKK1NBWC5lbmRFbGVtZW50KGNpdGUpCitTQVguY2hhcmFjdGVycyggKFJlZ2lzdHJhdGlvbiBSZXF1aXJlZCksIDI0KQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0naGVsdmV0aWNhLCBhcmlhbCcsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LnVzYXRvZGF5LmNvbS9saWZlL2N5YmVyL25iL25iNC5odG0nKQorU0FYLmNoYXJhY3RlcnMoTWVsaXNzYTogSSdtIEJhYWFhY2ssIDIwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdnZW5ldmEsIGFyaWFsJywgc2l6ZT0nMicpCitTQVguc3RhcnRFbGVtZW50KGNpdGUpCitTQVguY2hhcmFjdGVycyhVU0EgVG9kYXksIDkpCitTQVguZW5kRWxlbWVudChjaXRlKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0naGVsdmV0aWNhLCBhcmlhbCcsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3Lm1zbmJjLmNvbS9uZXdzLzMyMjkyNi5hc3AnKQorU0FYLmNoYXJhY3RlcnMoRG9tYWluIE93bmVycyBTdXJyZW5kZXIgUHJpdmFjLCAzMSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nZ2VuZXZhLCBhcmlhbCcsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoTVNOQkMsIDUpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdoZWx2ZXRpY2EsIGFyaWFsJywgc2l6ZT0nMycpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly93d3cud2FzaGluZ3RvbnBvc3QuY29tL3dwLXNydi9idXNpbmVzcy9sb25ndGVybS90ZWNoL3RlY2h0aHVyc2RheS9kb3dubG9hZC9kb3dubG9hZC5odG0nKQorU0FYLmNoYXJhY3RlcnMoRGl2aWRpbmcgdG8gQ29ucXVlciBpbiBWQyBHYW1lLCAzMCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nZ2VuZXZhLCBhcmlhbCcsIHNpemU9JzInKQorU0FYLnN0YXJ0RWxlbWVudChjaXRlKQorU0FYLmNoYXJhY3RlcnMoVGhlIFdhc2hpbmd0b24gUG9zdCwgMTkpCitTQVguZW5kRWxlbWVudChjaXRlKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0naGVsdmV0aWNhLCBhcmlhbCcsIHNpemU9JzMnKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LnNhbG9uLmNvbS90ZWNoL2Jvb2tzLzE5OTkvMTAvMTQvcmVkaGF0X2Jvb2svaW5kZXguaHRtbCcpCitTQVguY2hhcmFjdGVycyhUaGUgUmVkIEhhdCBEaWFyaWVzLCAxOSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoZm9udCkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nZ2VuZXZhLCBhcmlhbCcsIHNpemU9JzInKQorU0FYLmNoYXJhY3RlcnMoU2Fsb24sIDUpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdoZWx2ZXRpY2EsIGFyaWFsJywgc2l6ZT0nMycpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9uZXdzLmJiYy5jby51ay9oaS9lbmdsaXNoL3NjaS90ZWNoL25ld3NpZF80NzMwMDAvNDczODU2LnN0bScpCitTQVguY2hhcmFjdGVycyhTY3JlZW5zYXZlciB0byBQcmVkaWN0IENsaW1hdGUsIDMwKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdnZW5ldmEsIGFyaWFsJywgc2l6ZT0nMicpCitTQVguY2hhcmFjdGVycyhCQkMgTmV3cywgOCkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY29tbWVudCggU1FMIGFib3ZlICkKK1NBWC5jaGFyYWN0ZXJzKAorCisKKworLCA0KQorU0FYLmNvbW1lbnQoIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtICkKK1NBWC5jaGFyYWN0ZXJzKAorIAorICAgLCA2KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQodHIpCitTQVguY2hhcmFjdGVycygKKworICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHRyKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHRkLCB2YWxpZ249J1RPUCcsIGFsaWduPSdMRUZUJykKK1NBWC5jaGFyYWN0ZXJzKAorCisgICAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChpbWcsIHNyYz0naHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZicsIGhlaWdodD0nMScsIHdpZHRoPScyODAnLCBhbHQ9JycpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKwkKKyAgICAsIDcpCitTQVguY29tbWVudCggRk9PVEVSICkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9waXgxNTUuZ2lmJywgaGVpZ2h0PScxMCcsIHdpZHRoPScxNTUnLCBib3JkZXI9JzAnLCB1c2VtYXA9JyNuYXZzdHJpcC5tYXAnLCBhbHQ9JycpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9uYXZzdHJpcF9vZmYuZ2lmJywgaGVpZ2h0PScxNycsIHdpZHRoPScxMjYnLCB1c2VtYXA9JyNuYXZzdHJpcC5tYXAnLCBib3JkZXI9JzAnLCBhbHQ9JycpCitTQVguZW5kRWxlbWVudChpbWcpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLnN0YXJ0RWxlbWVudChmb250LCBmYWNlPSdWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmJywgc2l6ZT0nMScpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYSwgaHJlZj0naHR0cDovL3d3dy53aXJlZC5jb20vbmV3cy9mZWVkYmFjay5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKFNlbmQgdXMgZmVlZGJhY2ssIDE2KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMofCwgMSkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS9qb2JzLycpCitTQVguY2hhcmFjdGVycyhXb3JrIGF0IFdpcmVkIERpZ2l0YWwsIDIxKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMofCwgMSkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vaG9tZS53aXJlZC5jb20vYWR2ZXJ0aXNpbmcvJykKK1NBWC5jaGFyYWN0ZXJzKEFkdmVydGlzZSB3aXRoIHVzLCAxNykKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYnIpCitTQVguZW5kRWxlbWVudChicikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vaG9tZS53aXJlZC5jb20vJykKK1NBWC5jaGFyYWN0ZXJzKEFib3V0IFdpcmVkIERpZ2l0YWwsIDE5KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNoYXJhY3RlcnMoJm5ic3A7LCAyKQorU0FYLmNoYXJhY3RlcnMofCwgMSkKK1NBWC5jaGFyYWN0ZXJzKCZuYnNwOywgMikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LndpcmVkLmNvbS9ob21lL2RpZ2l0YWwvcHJpdmFjeS8nKQorU0FYLmNoYXJhY3RlcnMoT3VyIFByaXZhY3kgUG9saWN5LCAxOCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRWxlbWVudChmb250KQorU0FYLmNoYXJhY3RlcnMoCisKKworLCAzKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5zdGFydEVsZW1lbnQoZm9udCwgZmFjZT0nVmVyZGFuYSwgQXJpYWwsIEdlbmV2YScsIHNpemU9JzEnKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdodHRwOi8vd3d3LndpcmVkLmNvbS9ob21lL2NvcHlyaWdodC5odG1sJykKK1NBWC5jaGFyYWN0ZXJzKENvcHlyaWdodCwgOSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyggLCAxKQorU0FYLmNoYXJhY3RlcnMoJmNvcHk7LCAyKQorU0FYLmNoYXJhY3RlcnMoIDE5OTQtOTkgV2lyZWQgRGlnaXRhbCBJbmMuIEFsLCA0OCkKK1NBWC5lbmRFbGVtZW50KGZvbnQpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLnN0YXJ0RWxlbWVudChicikKK1NBWC5lbmRFbGVtZW50KGJyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguY29tbWVudCggVFJBQ0tJTkcgKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdodHRwOi8vd3d3LndpcmVkLmNvbS9zcGVjaWFsL21vZHgvbmV3cy5naWYnLCBoZWlnaHQ9JzEnLCB3aWR0aD0nMScsIGFsdD0nJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguc3RhcnRFbGVtZW50KG1hcCwgbmFtZT0nbmF2c3RyaXAubWFwJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhcmVhLCBzaGFwZT0ncmVjdCcsIGNvb3Jkcz0nMCwwLDE0LDE2JywgaHJlZj0nL25ld3MnKQorU0FYLmVuZEVsZW1lbnQoYXJlYSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhcmVhLCBzaGFwZT0ncmVjdCcsIGNvb3Jkcz0nMTUsMCAzMSwxNicsIGhyZWY9Jy9uZXdzL2J1c2luZXNzLycpCitTQVguZW5kRWxlbWVudChhcmVhKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGFyZWEsIHNoYXBlPSdyZWN0JywgY29vcmRzPSczMiwwLDQ4LDE2JywgaHJlZj0nL25ld3MvY3VsdHVyZS8nKQorU0FYLmVuZEVsZW1lbnQoYXJlYSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChhcmVhLCBzaGFwZT0ncmVjdCcsIGNvb3Jkcz0nNDksMCw2NSwxNicsIGhyZWY9Jy9uZXdzL3RlY2hub2xvZ3kvJykKK1NBWC5lbmRFbGVtZW50KGFyZWEpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoYXJlYSwgc2hhcGU9J3JlY3QnLCBjb29yZHM9JzY2LDAsODMsMTYnLCBocmVmPScvbmV3cy9wb2xpdGljcy8nKQorU0FYLmVuZEVsZW1lbnQoYXJlYSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQobWFwKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5lbmRFbGVtZW50KHRkKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHRkLCB2YWxpZ249J1RPUCcsIGFsaWduPSdMRUZUJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1nLCBzcmM9J2h0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYnLCBoZWlnaHQ9JzEnLCB3aWR0aD0nNScsIGFsdD0nJykKK1NBWC5lbmRFbGVtZW50KGltZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLmVuZEVsZW1lbnQodGQpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQodGQsIHZhbGlnbj0nVE9QJywgYWxpZ249J0xFRlQnKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguZW5kRWxlbWVudCh0ZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudCh0cikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodGFibGUpCitTQVguY2hhcmFjdGVycygKKworCissIDMpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKywgMSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKworLCAyKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy80cmVjdHMueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHLzRyZWN0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZhYTAyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy80cmVjdHMueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+Rm91ciBzZXBhcmF0ZSByZWN0YW5nbGVzDQorICA8L2Rlc2M+CisgIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSI2MCIvPgorICA8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iNzAiLz4KKyAgPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjgwIi8+CisgIDxyZWN0IHdpZHRoPSI1MCIgaGVpZ2h0PSI5MCIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvYS12YWxpZC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvYS12YWxpZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY0YTIwNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9hLXZhbGlkLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+VGhpcyB2YWxpZCBzdmcgZG9jdW1lbnQgZHJhd3MgYSB0cmlhbmdsZSB3aGljaCBpcyBhIGh5cGVybGluaw0KKyAgPC9kZXNjPgorICA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgPHAgZD0iTSAwIDAgTCAyMDAgMCBMIDEwMCAyMDAgWiIvPgorICA8L2E+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9hLXdmLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9hLXdmLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmFjZmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Etd2YueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIiB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZXNjPlRoaXMgd2VsbCBmb3JtZWQgc3ZnIGRvY3VtZW50IGRyYXdzIGEgdHJpYW5nbGUgd2hpY2ggaXMgYSBoeXBlcmxpbmsNCisgIDwvZGVzYz4KKyAgPGEgeG1sOmxpbms9InNpbXBsZSIgc2hvdz0icmVwbGFjZSIgYWN0dWF0ZT0idXNlciIgaHJlZj0iaHR0cDovL3d3dy53My5vcmciPgorICAgIDxwIGQ9Ik0gMCAwIEwgMjAwIDAgTCAxMDAgMjAwIFoiLz4KKyAgPC9hPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvYmlrZS1lcnJvcnMueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Jpa2UtZXJyb3JzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Jpa2UtZXJyb3JzLnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Jpa2UueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Jpa2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMDg2OWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvYmlrZS54bWwKQEAgLTAsMCArMSw0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDx0aXRsZT5Lb25hIExhdmFkb21lIG1vdW50YWluIGJpa2UNCisgIDwvdGl0bGU+CisgIDxkZXNjPlRoaXMgcGljdHVyZSBzaG93cyBhIG1vdW50YWluIGJpa2UsIGEgaHVtYW4tcHJvcGVsbGVkLCANCisgIG11bHRpLXRlcnJhaW4gdmVoaWNsZS4gV2hpbGUgaXQgY2FuIGJlIHN1Y2Nlc2Z1bGx5IHVzZWQgb24gbW9vcmxhbmQsIA0KKyAgZm9yZXN0LCByb2FkcywgYW5kIGxhcmdlIGhpbGxzIGl0IGlzIG5vdCBhY3R1YWxseSBzdWl0YWJsZSBmb3IgZ29pbmcgDQorICB1cCBtb3VudGFpbnMuDQorICA8L2Rlc2M+CisgIDxnIGlkPSJiaWtlIj4KKyAgICA8ZGVmcz4KKyAgICAgIDxzeW1ib2wgaWQ9InNwb2tlIj4KKyAgICAgICAgPGRlc2M+MTQvMTIgZ2F1Z2UgZG91YmxlIGJ1dHRlZCBzcG9rZTwvZGVzYz4KKzwhLS0gdGhlIHBhdGggZGF0YSBnb2VzIGhlcmUgLS0+CisgICAgICA8L3N5bWJvbD4KKyAgICAgIDxzeW1ib2wgaWQ9Imh1YiI+CisgICAgICAgIDxkZXNjPmJsYWNrIGFub2Rpc2VkIGxvdyB0b3JzaW9uIGh1YjwvZGVzYz4KKzwhLS10aGUgcGF0aCBkYXRhIGdvZXMgaGVyZSAtLT4KKyAgICAgIDwvc3ltYm9sPgorICAgICAgPHN5bWJvbCBpZD0icmltIj4KKyAgICAgICAgPGRlc2M+dHdpbiB3YWxsLCBleWVsZXR0ZWQgcmltPC9kZXNjPgorPCEtLSB0aGUgcGF0aCBkYXRhIGdvZXMgaGVyZS0tPgorICAgICAgPC9zeW1ib2w+CisgICAgICA8c3ltYm9sIGlkPSJjb2dzIj4KKyAgICAgICAgPGRlc2M+OCBzcGVlZCwgd2lkZSByYXRpbyBnZWFyaW5nPC9kZXNjPgorPCEtLXRoZSBwYXRoIGRhdGEgZ29lcyBoZXJlIC0tPgorICAgICAgPC9zeW1ib2w+CisgICAgICA8c3ltYm9sIGlkPSJsYWNpbmciPgorICAgICAgICA8ZGVzYz5kb3VibGUgY3Jvc3MgbGFjaW5nIG9mIDMyIHNwb2tlczwvZGVzYz4KKyAgICAgIDwvc3ltYm9sPgorICAgIDwvZGVmcz4KKzwhLS0gdGhlIG92ZXJhbGwgYmlrZSBkcmF3aW5nIGdvZXMgaGVyZSAtLT4KKyAgICA8ZyBpZD0iZnJvbnR3aGVlbCI+CisgICAgICA8dGl0bGU+RnJvbnQgd2hlZWw8L3RpdGxlPgorICAgICAgPGRlc2M+VGhlIGZyb250IHdoZWVsIHByb3ZpZGVzIGdyaXAsIHN0ZWVyaW5nIGFuZCBzb21lIHNob2NrIGFic29ycHRpb248L2Rlc2M+CisgICAgICA8dXNlIGhyZWY9ImlkKGxhY2luZykiIHN0eWxlPSJyb3RhdGlvbjogMjBkZWc7IGZpbGxjb2xvcjogYmxhY2siLz4KKyAgICA8L2c+CisgICAgPGcgaWQ9ImJhY2t3aGVlbCIvPgorICAgIDxnIGlkPSJmcmFtZSI+Cis8IS0tIGFuZCBzbyBvbiAtLT4KKyAgICA8L2c+CisgIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2NpcmNsZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvY2lyY2xlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTdkNTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2NpcmNsZS54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+VGhpcyBpcyBhIGJsdWUgY2lyY2xlIHdpdGggYSByZWQgb3V0bGluZQ0KKyAgPC9kZXNjPgorICA8Zz4KKyAgICA8Y2lyY2xlIHN0eWxlPSJmaWxsOiBibHVlOyBzdHJva2U6IHJlZCIgY3g9IjIwMCIgY3k9IjIwMCIgcj0iMTAwIi8+CisgIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2RlZnMueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2RlZnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4YzZiZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvZGVmcy54bWwKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVmcz4KKyAgICA8cmVjdCBpZD0iVGVtcGxhdGVPYmplY3QwMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIzNy4zNCIvPgorICAgIDxsaW5lYXJncmFkaWVudCBpZD0iR3JhZGllbnQwMSI+CisgICAgICA8Z3JhZGllbnRzdG9wIG9mZnNldD0iMzAlIiBjb2xvcj0iIzM5RiIvPgorICAgIDwvbGluZWFyZ3JhZGllbnQ+CisgIDwvZGVmcz4KKyAgPGRlc2M+RGVmaW5pbmcgdGhpbmdzIGZvciBsYXRlciB1c2UNCisgIDwvZGVzYz4KKzwhLS0gU1ZHIGVsZW1lbnRzIGluIGhlcmUgd291bGQgcmVmZXJlbmNlL3VzZSANCisgICAgICAgdGhlIGVsZW1lbnRzIGRlZmluZWQgaW4gdGhlIDxkZWZzPiAtLT4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Rlc2MueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Rlc2MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZGU5NjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvZGVzYy54bWwKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBTWVNURU0gImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8Zz4KKyAgICA8dGl0bGU+DQorICAgIENvbXBhbnkgc2FsZXMgYnkgcmVnaW9uDQorICA8L3RpdGxlPgorICAgIDxkZXNjPg0KKyAgICBUaGlzIGlzIGEgYmFyIGNoYXJ0IHdoaWNoIHNob3dzIA0KKyAgICBjb21wYW55IHNhbGVzIGJ5IHJlZ2lvbi4NCisgIDwvZGVzYz4KKzwhLS0gQmFyIGNoYXJ0IGRlZmluZWQgYXMgdmVjdG9yIGRhdGEgLS0+CisgIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2VsbGlwc2UueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2VsbGlwc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNzIzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvZWxsaXBzZS54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZXNjPlRoaXMgaXMgYW4gZWxsaXBzZSwgYXhpcyBhbGlnbmVkIGFuZCBjZW50ZXJlZCBvbiB0aGUgb3JpZ2luDQorICA8L2Rlc2M+CisgIDxnPgorICAgIDxlbGxpcHNlIG1ham9yPSI4NSIgbWlub3I9IjQ1Ii8+CisgIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Zsb3dlcjIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2Zsb3dlcjIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2Y2QyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvZmxvd2VyMi54bWwKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4Ij4KKyAgPGRlc2M+VGhpcyBzYW1wbGUgU1ZHIGZpbGUgZHJhd3MgYSBmbG93ZXI8L2Rlc2M+CisgIDxnIHN0eWxlPSJ0cmFuc2Zvcm06IG1hdHJpeCgxIDAgMCAtMSAtMjUuODggNzk4LjYwKTsgICAgICAgc3Ryb2tlOiAjMDAwOyBzdHJva2Utd2lkdGg6IDEiPgorICAgIDxwYXRoIHN0eWxlPSJmaWxsOiAjMUE1NDY2IiBkPSJtIDI0Mi4zMyA2ODQuMTkgICAgICAgICAgICBDIDM0Ni40NCA3NTcuNDggMjcxLjQ1IDY0Ny4zOCAyMTMuMTcgNjQxLjM3ICAgICAgICAgICAgQyAyNzEuNDUgNjQ3LjM4IDM4My40MyA1NzUuMjEgMjU2LjcxIDYxMy4zMCAgICAgICAgICAgIEMgMzgzLjQzIDU3NS4yMSAyNTEuMDQgNTY1LjkwIDIwNS4yMyA2MDkuNjggICAgICAgICAgICBDIDI1MS4wNCA1NjUuOTAgMjY1LjEzIDQzMi44OCAyMTAuNzEgNTU3Ljk1ICAgICAgICAgICAgQyAyNjUuMTMgNDMyLjg4IDE3NS4wNCA1MzEuMzcgMTc1LjY3IDU5Ni4yNiAgICAgICAgICAgIEMgMTc1LjA0IDUzMS4zNyA4MC42MyAgNDM3LjY3IDEzOC45NiA1NTkuODIgICAgICAgICAgICBDICA4MC42MyA0MzcuNjcgMTAwLjY3IDU2OS44MCAxNDYuNzUgNjExLjIwICAgICAgICAgICAgQyAxMDAuNjcgNTY5LjgwIC0zMS4xNCA1ODUuOTggOTUuNDkgIDYxNy40OSAgICAgICAgICAgIEMgLTMxLjE0IDU4NS45OCA4My45NCAgNjUyLjI1IDE0MC4yNCA2NDMuMjYgICAgICAgICAgICBDIDgzLjk0ICA2NTIuMjUgMTMuOTggIDc2Ni4xMiAxMTMuMDQgNjg3LjU1ICAgICAgICAgICAgQyAxMy45OCAgNzY2LjEyIDEzNy40NSA3MTYuNjMgMTYxLjA1IDY2OC4zMCAgICAgICAgICAgIEMgMTM3LjQ1IDcxNi42MyAxODIuMDIgODQyLjQ1IDE3OC4zOSA3MTcuMjMgICAgICAgICAgICBDIDE4Mi4wMiA4NDIuNDUgMjIwLjkwIDcxNC40NiAxOTMuNTEgNjY3LjQ2ICAgICAgICAgICAgQyAyMjAuOTAgNzE0LjQ2IDM0Ni40NCA3NTcuNDggMjQyLjMzIDY4NC4xOSB6Ii8+CisgICAgPHBhdGggc3R5bGU9ImZpbGw6ICMzNEFBQ0QiIGQ9Ik0gMjM1LjMzIDY5MS4xOSAgICAgICAgICAgIEMgMzM5LjQ0IDc2NC40OCAyNjQuNDUgNjU0LjM4IDIwNi4xNyA2NDguMzcgICAgICAgICAgICBDIDI2NC40NSA2NTQuMzggMzc2LjQzIDU4Mi4yMSAyNDkuNzEgNjIwLjMwICAgICAgICAgICAgQyAzNzYuNDMgNTgyLjIxIDI0NC4wNCA1NzIuOTAgMTk4LjIzIDYxNi42OCAgICAgICAgICAgIEMgMjQ0LjA0IDU3Mi45MCAyNTguMTMgNDM5Ljg4IDIwMy43MSA1NjQuOTUgICAgICAgICAgICBDIDI1OC4xMyA0MzkuODggMTY4LjA0IDUzOC4zNyAxNjguNjcgNjAzLjI2ICAgICAgICAgICAgQyAxNjguMDQgNTM4LjM3IDczLjYzICA0NDQuNjcgMTMxLjk2IDU2Ni44MiAgICAgICAgICAgIEMgNzMuNjMgIDQ0NC42NyA5My42NyAgNTc2LjgwIDEzOS43NSA2MTguMjAgICAgICAgICAgICBDIDkzLjY3ICA1NzYuODAgLTM4LjE0IDU5Mi45OCAgODguNDkgNjI0LjQ5ICAgICAgICAgICAgQyAtMzguMTQgNTkyLjk4IDc2Ljk0ICA2NTkuMjUgMTMzLjI0IDY1MC4yNiAgICAgICAgICAgIEMgNzYuOTQgIDY1OS4yNSA2Ljk4ICAgNzczLjEyIDEwNi4wNCA2OTQuNTUgICAgICAgICAgICBDIDYuOTggICA3NzMuMTIgMTMwLjQ1IDcyMy42MyAxNTQuMDUgNjc1LjMwICAgICAgICAgICAgQyAxMzAuNDUgNzIzLjYzIDE3NS4wMiA4NDkuNDUgMTcxLjM5IDcyNC4yMyAgICAgICAgICAgIEMgMTc1LjAyIDg0OS40NSAyMTMuOTAgNzIxLjQ2IDE4Ni41MSA2NzQuNDYgICAgICAgICAgICBDIDIxMy45MCA3MjEuNDYgMzM5LjQ0IDc2NC40OCAyMzUuMzMgNjkxLjE5IHoiLz4KKyAgICA8cGF0aCBzdHlsZT0iZmlsbDogI0Y4ODFCRiIgZD0iTSAxOTkuNDQgNjM0LjQzICAgICAgICAgICAgQyAxOTkuNDQgNjIyLjE2IDE4OS4xOSA2MTIuMjEgMTc2LjU0IDYxMi4yMSAgICAgICAgICAgIEMgMTYzLjg5IDYxMi4yMSAxNTMuNjMgNjIyLjE2IDE1My42MyA2MzQuNDMgICAgICAgICAgICBDIDE1My42MyA2NDYuNzEgMTYzLjg5IDY1Ni42NiAxNzYuNTQgNjU2LjY2ICAgICAgICAgICAgQyAxODkuMTkgNjU2LjY2IDE5OS40NCA2NDYuNzEgMTk5LjQ0IDYzNC40MyB6Ii8+CisgIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2dyYWRpZW50LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9ncmFkaWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU3MGI3NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9ncmFkaWVudC54bWwKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVzYz5HcmFkaWVudCBleGFtcGxlDQorICA8L2Rlc2M+CisgIDxnPgorICAgIDxkZWZzPgorICAgICAgPGxpbmVhcmdyYWRpZW50IGlkPSJNeUdyYWRpZW50Ij4KKzwhLS0gRGVmaW5lIGxpbmVhciBncmFkaWVudCBoZXJlIC0tPgorICAgICAgICA8Z3JhZGllbnRzdG9wIG9mZnNldD0iMCUiIGNvbG9yPSIjRjYwIi8+CisgICAgICAgIDxncmFkaWVudHN0b3Agb2Zmc2V0PSI3MCUiIGNvbG9yPSIjRkY2Ii8+CisgICAgICA8L2xpbmVhcmdyYWRpZW50PgorICAgIDwvZGVmcz4KKyAgICA8cmVjdCBzdHlsZT0iZmlsbDogdXJsKCNNeUdyYWRpZW50KSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE1LjgiLz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvZ3JvdXAwMS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvZ3JvdXAwMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM5YWQ4OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9ncm91cDAxLnhtbApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZXNjPlR3byBncm91cHMsIGVhY2ggb2YgdHdvIHJlY3RhbmdsZXMNCisgIDwvZGVzYz4KKyAgPGcgc3R5bGU9ImZpbGxjb2xvcjpyZWQiPgorICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPgorICAgIDxyZWN0IHg9IjMwMCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPgorICA8L2c+CisgIDxnIHN0eWxlPSJmaWxsY29sb3I6Ymx1ZSI+CisgICAgPHJlY3QgeD0iMTAwIiB5PSIzMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+CisgICAgPHJlY3QgeD0iMzAwIiB5PSIzMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+CisgIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2dyb3VwMDIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2dyb3VwMDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZTFmNTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvZ3JvdXAwMi54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVzYz5Ud28gbmFtZWQgZ3JvdXBzDQorICA8L2Rlc2M+CisgIDxnIGlkPSJPQkpFQ1QxIj4KKyAgICA8cmVjdCB4PSIxMDAiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4KKyAgPC9nPgorICA8ZyBpZD0iT0JKRUNUMiI+CisgICAgPGNpcmNsZSBjeD0iMTUwIiBjeT0iMzAwIiByPSIyNSIvPgorICA8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9ncm91cDAzLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9ncm91cDAzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGQ3NWFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2dyb3VwMDMueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+R3JvdXBzIGNhbiBuZXN0DQorICA8L2Rlc2M+CisgIDxnPgorICAgIDxnPgorICAgICAgPGcvPgorICAgIDwvZz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvaW1hZ2UtdmFsaWQueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2ltYWdlLXZhbGlkLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDVkMjI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2ltYWdlLXZhbGlkLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+VGhpcyBncmFwaGljIGxpbmtzIHRvIGFuIGV4dGVybmFsIGltYWdlDQorICA8L2Rlc2M+CisgIDxpbWFnZSB4PSIyMDAiIHk9IjIwMCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweCIgaHJlZj0ibXlpbWFnZS5wbmciPgorICAgIDx0aXRsZT5NeSBpbWFnZTwvdGl0bGU+CisgIDwvaW1hZ2U+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9pbWFnZS13Zi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvaW1hZ2Utd2YueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMWExMmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvaW1hZ2Utd2YueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIiB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZXNjPlRoaXMgbGlua3MgdG8gYW4gZXh0ZXJuYWwgaW1hZ2UNCisgIDwvZGVzYz4KKyAgPGltYWdlIHhtbDpsaW5rPSJzaW1wbGUiIHg9IjIwMCIgeT0iMjAwIiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4IiBzaG93PSJlbWJlZCIgYWN0dWF0ZT0iYXV0byIgaHJlZj0ibXlpbWFnZS5wbmciPgorICAgIDx0aXRsZT5NeSBpbWFnZTwvdGl0bGU+CisgIDwvaW1hZ2U+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9saW4tZ3JhZGllbnQueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL2xpbi1ncmFkaWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ1YmRjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9saW4tZ3JhZGllbnQueG1sCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+TGluZWFyIGdyYWRpZW50IGV4YW1wbGUNCisgIDwvZGVzYz4KKyAgPGc+CisgICAgPGRlZnM+CisgICAgICA8bGluZWFyZ3JhZGllbnQgaWQ9Ik15R3JhZGllbnQiPgorICAgICAgICA8Z3JhZGllbnRzdG9wIG9mZnNldD0iMCUiIGNvbG9yPSIjRjYwIi8+CisgICAgICAgIDxncmFkaWVudHN0b3Agb2Zmc2V0PSI3MCUiIGNvbG9yPSIjRkY2Ii8+CisgICAgICA8L2xpbmVhcmdyYWRpZW50PgorICAgIDwvZGVmcz4KKyAgICA8cmVjdCBzdHlsZT0iZmlsbDogdXJsKCNNeUdyYWRpZW50KSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE1LjgiLz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvbWFya2VyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9tYXJrZXIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNDE3MTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvbWFya2VyLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZWZzPgorICAgIDxzeW1ib2wgaWQ9IlRyaWFuZ2xlIiBtaW4teD0iMCIgbWluLXk9IjAiIG1heC14PSIxMDAiIG1heC15PSIxMDAiIHJlZi14PSIwIiByZWYteT0iNTAiPgorICAgICAgPHBhdGggZD0iTSAwIDAgTCAwIDEwMCBMIDEwMCA1MCB6Ii8+CisgICAgPC9zeW1ib2w+CisgIDwvZGVmcz4KKyAgPGRlc2M+QW4gZG91YmxlLWhlYWRlZCBhcnJvdyBleGFtcGxlIHVzaW5nIG1hcmtlcnMNCisgIDwvZGVzYz4KKyAgPHBhdGggZD0iTTAgMCI+Cis8IS0tIFBsYWNlIGFuIGFycm93aGVhZCByb3RhdGVkIDE4MCBkZWdyZWVzIGF0IHRoZSANCisgICAgICAgICBiZWdpbm5pbmcgb2YgdGhlIHBhdGggLS0+CisgICAgPG1hcmtlciBocmVmPSIjVHJpYW5nbGUiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IHJvdGF0ZSgxODApIi8+CisgICAgPGRhdGEgZD0iTSAyMDAwIDIwMDAiLz4KKzwhLS0gVHVybiBvZmYgbWFya2VycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBwYXRoIC0tPgorICAgIDxtYXJrZXIgaHJlZj0iIi8+CisgICAgPGRhdGEgZD0iTCA0MDAwIDIwMDAgTCA0MDAwIDQwMDAiLz4KKzwhLS0gUGxhY2UgYW4gYXJyb3doZWFkIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGgtLT4KKyAgICA8bWFya2VyIGhyZWY9IiNUcmlhbmdsZSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiLz4KKyAgICA8ZGF0YSBkPSJMIDYwMDAgNDAwMCIvPgorICA8L3BhdGg+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9tYXNrLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9tYXNrLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjA0ZTA2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL21hc2sueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+RXhhbXBsZSBvZiB1c2luZyBhIG1hc2sNCisgIDwvZGVzYz4KKyAgPGc+CisgICAgPGRlZnM+CisgICAgICA8aW1hZ2UgaWQ9Ik15TWFzayIgaHJlZj0idHJhbnNwLnBuZyIvPgorICAgIDwvZGVmcz4KKyAgICA8cmVjdCBzdHlsZT0ibWFzazogdXJsKCNNeU1hc2spIiB3aWR0aD0iMTIuNSIgaGVpZ2h0PSIzMCIvPgorICA8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9tYXRoc3dpdGNoLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9tYXRoc3dpdGNoLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjkxMzg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL21hdGhzd2l0Y2gueG1sCkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCIgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVzYz5UaGlzIGV4YW1wbGUgdXNlcyB0aGUgc3dpdGNoIGVsZW1lbnQgdG8gcHJvdmlkZSBhIA0KKyAgZmFsbGJhY2sgZ3JhcGhpY2FsIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVxdWF0aW9uLCBpZiANCisgIE1hdGhNTCBpcyBub3Qgc3VwcG9ydGVkLg0KKyAgPC9kZXNjPgorPCEtLSBUaGUgPHN3aXRjaD4gZWxlbWVudCB3aWxsIHByb2Nlc3MgdGhlIGZpcnN0IGNoaWxkIGVsZW1lbnQNCisgICAgICAgd2hvc2UgdGVzdGluZyBhdHRyaWJ1dGVzIGV2YWx1YXRlIHRvIHRydWUuLS0+CisgIDxzd2l0Y2g+Cis8IS0tIFByb2Nlc3MgdGhlIE1hdGhNTCBpZiB0aGUgc3lzdGVtLXJlcXVpcmVkIGF0dHJpYnV0ZQ0KKyAgICAgICAgIGV2YWx1YXRlcyB0byB0cnVlIChpLmUuLCB0aGUgdXNlciBhZ2VudCBzdXBwb3J0cyBNYXRoTUwNCisgICAgICAgICBlbWJlZGRlZCB3aXRoaW4gU1ZHKS4gLS0+CisgICAgPGZvcmVpZ25vYmplY3Qgc3lzdGVtLXJlcXVpcmVkPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtTWF0aE1MLTE5OTgwNDA3IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjUwIj4KKzwhLS0gTWF0aE1MIGNvbnRlbnQgZ29lcyBoZXJlIC0tPgorICAgIDwvZm9yZWlnbm9iamVjdD4KKzwhLS0gRWxzZSwgcHJvY2VzcyB0aGUgZm9sbG93aW5nIGFsdGVybmF0ZSBTVkcuDQorICAgICAgICAgTm90ZSB0aGF0IHRoZXJlIGFyZSBubyB0ZXN0aW5nIGF0dHJpYnV0ZXMgb24gdGhlIDxnPiBlbGVtZW50Lg0KKyAgICAgICAgIElmIG5vIHRlc3RpbmcgYXR0cmlidXRlcyBhcmUgcHJvdmlkZWQsIGl0IGlzIGFzIGlmIHRoZXJlDQorICAgICAgICAgd2VyZSB0ZXN0aW5nIGF0dHJpYnV0ZXMgYW5kIHRoZXkgZXZhbHVhdGVkIHRvIHRydWUuLS0+CisgICAgPGc+Cis8IS0tIERyYXcgYSByZWQgcmVjdGFuZ2xlIHdpdGggYSB0ZXh0IHN0cmluZyBvbiB0b3AuIC0tPgorICAgICAgPHJlY3Qgc3R5bGU9ImZpbGw6IHJlZCIvPgorICAgICAgPHRleHQ+Rm9ybXVsYSBnb2VzIGhlcmU8L3RleHQ+CisgICAgPC9nPgorICA8L3N3aXRjaD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3BhcmVudG5zLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9wYXJlbnRucy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIyZWQ0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9wYXJlbnRucy54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQkMgeG1sbnM9Imh0dHA6Ly9wYXJlbnQubmFtZS5zcGFjZSIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4wIj4KKzwhLS0gZG9jdW1lbnQgaW4gdGhlIHBhcmVudCBuYW1lc3BhY2UgLS0+CisgIDxzdmc6c3ZnIHdpZHRoPSI0MCUiIGhlaWdodD0iNDAlIj4KKyAgICA8c3ZnOnJlY3RhbmdsZSB3aWR0aD0iNDMuNiIgaGVpZ2h0PSIzMS41Ii8+Cis8IS0tIHN2ZyBncmFwaGljIGNvbnRpbnVlcyAtLT4KKyAgPC9zdmc6c3ZnPgorPCEtLSBkb2N1bWVudCBpbiBwYXJlbnQgbmFtZXNwYWNlIGNvbnRpbnVlcyAtLT4KKzwvQUJDPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3BhdGgwMS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcGF0aDAxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDY5NDBiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3BhdGgwMS54bWwKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPHBhdGggZD0iTSAxMDAgMTAwIEwgMTQwIDEwMCBMIDEyMCAxNDAgeiIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcGF0aDAyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9wYXRoMDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3NGY5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcGF0aDAyLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPHBhdGggZD0iTSAxMDAgMTAwIj4KKyAgICA8ZGF0YSBkPSJMIDE0MCAxMDAiLz4KKyAgICA8ZGF0YSBkPSJMIDEyMCAxNDAiLz4KKyAgICA8ZGF0YSBkPSJ6Ii8+CisgIDwvcGF0aD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3BhdHRlcm5maWxsLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9wYXR0ZXJuZmlsbC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUyMGFlOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9wYXR0ZXJuZmlsbC54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVmcz4KKyAgICA8c3ltYm9sIGlkPSJmb3Vyc3RhciI+Cis8IS0tIERlZmluZSB0aGUgcGF0dGVybiB1c2luZyBzdGFuZGFyZCBncmFwaGljcyBlbGVtZW50cw0KKyAgICAgICAgICAgc3VjaCBhcyBwYXRocywgaW1hZ2VzLCB0ZXh0IGFuZCBzaGFwZXMgLS0+CisgICAgPC9zeW1ib2w+CisgIDwvZGVmcz4KKyAgPGVsbGlwc2Ugc3R5bGU9ImZpbGw6IHVybCgjZm91cnN0YXIpIiBtYWpvcj0iNDAiIG1pbm9yPSIyNyIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcG9seWxpbmUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3BvbHlsaW5lLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmE0MDcxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3BvbHlsaW5lLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+QSBzYW1wbGUgcG9seWxpbmUsIGFuZCBlcXVpdmFsZW50IHBhdGgNCisgIDwvZGVzYz4KKyAgPHBvbHlsaW5lIHZlcnRzPSIyMCwyMCA1MCwxMDAgMjAwLDgwIDcwLDMwMCIvPgorICA8cGF0aCBkPSJNMjAsMjAgTDUwLDEwMCBMMjAwLDgwIEw3MCwzMDAiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3ByaXZhdGUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3ByaXZhdGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkZmUzNjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcHJpdmF0ZS54bWwKQEAgLTAsMCArMSwxOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIiB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZWZzPgorICAgIDxwcml2YXRlIHhtbG5zOm15YXBwPSJodHRwOi8vbXljb21wYW55L21hcGFwcCI+CisgICAgICA8bXlhcHA6cGllY2hhcnQgdGl0bGU9IlNhbGVzIGJ5IFJlZ2lvbiI+CisgICAgICAgIDxteWFwcDpwaWVjZSBsYWJlbD0iTm9ydGhlcm4gUmVnaW9uIiB2YWx1ZT0iMS4yMyIvPgorICAgICAgICA8bXlhcHA6cGllY2UgbGFiZWw9IkVhc3Rlcm4gUmVnaW9uIiB2YWx1ZT0iMi41MyIvPgorICAgICAgICA8bXlhcHA6cGllY2UgbGFiZWw9IlNvdXRoZXJuIFJlZ2lvbiIgdmFsdWU9IjMuODkiLz4KKyAgICAgICAgPG15YXBwOnBpZWNlIGxhYmVsPSJXZXN0ZXJuIFJlZ2lvbiIgdmFsdWU9IjIuMDQiLz4KKzwhLS0gT3RoZXIgcHJpdmF0ZSBkYXRhIGdvZXMgaGVyZSAtLT4KKyAgICAgIDwvbXlhcHA6cGllY2hhcnQ+CisgICAgPC9wcml2YXRlPgorICA8L2RlZnM+CisgIDxkZXNjPlRoaXMgY2hhcnQgaW5jbHVkZXMgcHJpdmF0ZSBkYXRhIGluIGFub3RoZXIgbmFtZXNwYWNlDQorICA8L2Rlc2M+Cis8IS0tIEluIGhlcmUgd291bGQgYmUgdGhlIGFjdHVhbCBncmFwaGljcyBlbGVtZW50cyB3aGljaA0KKyAgICAgICBkcmF3IHRoZSBwaWUgY2hhcnQgLS0+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9yYWQtZ3JhZGllbnQueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3JhZC1ncmFkaWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVhYWRmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9yYWQtZ3JhZGllbnQueG1sCkBAIC0wLDAgKzEsMTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+UmFkaWFsIGdyYWRpZW50IGV4YW1wbGUgd2l0aCB0aHJlZSBncmFkaWVudCBzdG9wcw0KKyAgPC9kZXNjPgorICA8Zz4KKyAgICA8ZGVmcz4KKyAgICAgIDxyYWRpYWxncmFkaWVudCBpZD0iTXlHcmFkaWVudCI+CisgICAgICAgIDxncmFkaWVudHN0b3Agb2Zmc2V0PSIwJSIgY29sb3I9IndoaXRlIi8+CisgICAgICAgIDxncmFkaWVudHN0b3Agb2Zmc2V0PSI1MCUiIGNvbG9yPSJyZWQiLz4KKyAgICAgICAgPGdyYWRpZW50c3RvcCBvZmZzZXQ9IjEwMCUiIGNvbG9yPSJibGFjayIvPgorICAgICAgPC9yYWRpYWxncmFkaWVudD4KKyAgICA8L2RlZnM+CisgICAgPGNpcmNsZSBzdHlsZT0iZmlsbDogdXJsKCNNeUdyYWRpZW50KSIgcj0iNDIiLz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcmVjdGFuZ2xlLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9yZWN0YW5nbGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxOWNkMjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcmVjdGFuZ2xlLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+VGhpcyBpcyBhIHJlY3RhbmdsZQ0KKyAgPC9kZXNjPgorICA8Zz4KKyAgICA8cmVjdCB4PSIyMCIgeT0iMzAiIHdpZHRoPSIxMDAiIGhlaWdodD0iODAiLz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvcmljaGRlc2MueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3JpY2hkZXNjLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmExZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3JpY2hkZXNjLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2MgeG1sbnM6bXlkb2M9Imh0dHA6Ly9mb28ub3JnL215ZG9jIj4KKyAgICA8bXlkb2M6dGl0bGU+VGhpcyBpcyBhbiBleGFtcGxlIFNWRyBmaWxlPC9teWRvYzp0aXRsZT4KKyAgICA8bXlkb2M6cGFyYT5UaGUgZ2xvYmFsIGRlc2NyaXB0aW9uIHVzZXMgbWFya3VwIGZyb20gdGhlIA0KKyAgICAgICAgPG15ZG9jOmVtcGg+bXlkb2M8L215ZG9jOmVtcGg+IG5hbWVzcGFjZS48L215ZG9jOnBhcmE+CisgIDwvZGVzYz4KKyAgPGc+Cis8IS0tIHRoZSBwaWN0dXJlIGdvZXMgaGVyZSAtLT4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvc2NyaXB0LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9zY3JpcHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5OGFmMGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvc2NyaXB0LnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZWZzPgorICAgIDxzY3JpcHQ+Cis8IVtDREFUQVsNCisgICAgICAvKiBCZWVwIG9uIG1vdXNlY2xpY2sgKi8NCisgICAgICBNb3VzZUNsaWNrSGFuZGxlcigpIHsgYmVlcCgpOyB9DQorICAgICBdXT4KKyAgICA8L3NjcmlwdD4KKyAgPC9kZWZzPgorICA8Y2lyY2xlIG9uY2xpY2s9Ik1vdXNlQ2xpY2tIYW5kbGVyKCkiIHI9Ijg1Ii8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9zdHJ1Y3R1cmUwMS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvc3RydWN0dXJlMDEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2YWY1ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvc3RydWN0dXJlMDEueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzxwYXJlbnQgeG1sbnM9Imh0dHA6Ly9zb21lcGxhY2Uub3JnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzwhLS0gcGFyZW50IHN0dWZmIGhlcmUgLS0+CisgIDxzdmc6c3ZnIHdpZHRoPSI1Y20iIGhlaWdodD0iOGNtIj4KKyAgICA8c3ZnOmVsbGlwc2UgbWFqb3I9IjIwMCIgbWlub3I9IjEzMCIvPgorICA8L3N2Zzpzdmc+Cis8IS0tIC4uLiAtLT4KKzwvcGFyZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3N0eWxlLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9zdHlsZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE3NjkxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9zdHlsZS54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVmcz4KKyAgICA8c3R5bGU+Cis8IVtDREFUQVsNCisgICAgICAuVGl0bGVUZXh0IHsgZm9udC1zaXplOiAxNjsgZm9udC1mYW1pbHk6IEhlbHZldGljYSB9IF1dPgorICAgIDwvc3R5bGU+CisgIDwvZGVmcz4KKyAgPHRleHQgY2xhc3M9IlRpdGxlVGV4dCI+SGVyZSBpcyBteSB0aXRsZTwvdGV4dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3N3aXRjaC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvc3dpdGNoLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2ViMzY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3N3aXRjaC54bWwKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzxzbWlsPgorICA8Ym9keT4KKzwhLS0gVGhlIFNNSUwgPHN3aXRjaD4gZWxlbWVudCB3aWxsIHByb2Nlc3MgdGhlDQorICAgICAgICAgZmlyc3QgY2hpbGQgZWxlbWVudCB3aGljaCB0ZXN0cyB0cnVlIGFuZCBza2lwDQorICAgICAgICAgcGFzdCBhbGwgb3RoZXJzLiAtLT4KKyAgICA8c3dpdGNoPgorPCEtLSBUaGUgc3lzdGVtLXJlcXVpcmVkIGF0dHJpYnV0ZSB0ZXN0cyB0byBzZWUgaWYNCisgICAgICAgICAgIHRoZSB1c2VyIGFnZW50IHN1cHBvcnRzIFNWRy4gSWYgdHJ1ZSwgdGhlbg0KKyAgICAgICAgICAgcmVuZGVyIHRoZSBmaWxlIGRyYXdpbmcuc3ZnLiAtLT4KKyAgICAgIDxyZWYgc3lzdGVtLXJlcXVpcmVkPSJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCIgdHlwZT0iaW1hZ2Uvc3ZnIiBzcmM9ImRyYXdpbmcuc3ZnIi8+Cis8IS0tIEVsc2UsIHJlbmRlciB0aGUgYWx0ZXJuYXRlIGltYWdlLiAtLT4KKyAgICAgIDxpbWcgc3JjPSJhbHRlcm5hdGVfaW1hZ2UuanBnIi8+CisgICAgPC9zd2l0Y2g+CisgIDwvYm9keT4KKzwvc21pbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9zeW1ib2wtdXNlLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy9zeW1ib2wtdXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWIzOTVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3N5bWJvbC11c2UueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlZnM+CisgICAgPHN5bWJvbCBpZD0iVGVtcGxhdGVPYmplY3QwMSI+Cis8IS0tIHN5bWJvbCBkZWZpbml0aW9uIGhlcmUgLS0+CisgICAgPC9zeW1ib2w+CisgIDwvZGVmcz4KKyAgPGRlc2M+RXhhbXBsZXMgb2YgaW5saW5lIGFuZCByZWZlcmVuY2VkIGNvbnRlbnQNCisgIDwvZGVzYz4KKzwhLS0gPGc+IHdpdGggaW5saW5lIGNvbnRlbnQgLS0+CisgIDxnPgorPCEtLSBJbmxpbmUgY29udGVudCBnb2VzIGhlcmUgLS0+CisgIDwvZz4KKzwhLS0gcmVmZXJlbmNlZCBjb250ZW50IC0tPgorICA8dXNlIGhyZWY9IiNUZW1wbGF0ZU9iamVjdDAxIi8+Cis8IS0tIDxnPiB3aXRoIGJvdGggcmVmZXJlbmNlZCBhbmQgaW5saW5lIGNvbnRlbnQgLS0+CisgIDxnPgorICAgIDx1c2UgaHJlZj0iI1RlbXBsYXRlT2JqZWN0MDEiLz4KKzwhLS0gSW5saW5lIGNvbnRlbnQgZ29lcyBoZXJlIC0tPgorICA8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90ZW1wbGF0ZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdGVtcGxhdGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwN2NkOTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdGVtcGxhdGUueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCIgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVzYz5UaGlzIHdlbGwgZm9ybWVkIHN2ZyBkb2N1bWVudCBjb250YWlucyBhIGh5cGVybGluaw0KKyAgPC9kZXNjPgorICA8YSB4bWw6bGluaz0ic2ltcGxlIiBzaG93PSJyZXBsYWNlIiBhY3R1YXRlPSJ1c2VyIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgPHAgZD0iTSAwIDAgTCAyMDAgMCBMIDEwMCAyMDAgWiIvPgorICA8L2E+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90ZXh0MDEueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3RleHQwMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUyYjQ0YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90ZXh0MDEueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlZnM+CisgICAgPHRleHQgaWQ9IlRleHRUb1VzZSI+WFlaPC90ZXh0PgorICA8L2RlZnM+CisgIDx0ZXh0PkFCQzwvdGV4dD4KKyAgPHRleHQ+CisgICAgPHNyYyBocmVmPSIjVGV4dFRvVXNlIi8+CisgIDwvdGV4dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3RleHQwMi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdGV4dDAyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjU2ZWE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3RleHQwMi54bWwKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIiB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZWZzPgorICAgIDx0ZXh0ZmxvdyBpZD0iVEYxIj4KKyAgICAgIDx0IGhyZWY9IiNUMSIvPgorICAgICAgPHQgaHJlZj0iI1QzIi8+CisgICAgPC90ZXh0Zmxvdz4KKyAgICA8dGV4dGZsb3cgaWQ9IlRGMiI+CisgICAgICA8dCBocmVmPSIjVDIiLz4KKyAgICAgIDx0IGhyZWY9IiNUNCIvPgorICAgIDwvdGV4dGZsb3c+CisgIDwvZGVmcz4KKyAgPHRleHQgeD0iMTAwIiB5PSIxMDAiIGlkPSJUMSI+CisgICAgPHRmIGhyZWY9IiNURjEiPjEyMzwvdGY+CisgIDwvdGV4dD4KKyAgPHRleHQgeD0iMTAwIiB5PSIyMDAiIGlkPSJUMiI+CisgICAgPHRmIGhyZWY9IiNURjIiPkFCQzwvdGY+CisgIDwvdGV4dD4KKyAgPHRleHQgeD0iMTUwIiB5PSIxMDAiIGlkPSJUMyI+CisgICAgPHRmIGhyZWY9IiNURjEiPjQ1NjwvdGY+CisgIDwvdGV4dD4KKyAgPHRleHQgeD0iMTUwIiB5PSIyMDAiIGlkPSJUNCI+CisgICAgPHRmIGhyZWY9IiNURjIiPkRFRjwvdGY+CisgIDwvdGV4dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3RleHQwMy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdGV4dDAzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTkyMDMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3RleHQwMy54bWwKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPHRleHRmbG93IGlkPSJURjEiPgorICAgIDx0ZXh0IHg9IjEwMCIgeT0iMTAwIj4xMjM8L3RleHQ+CisgICAgPHRleHQ+NDU2PC90ZXh0PgorICA8L3RleHRmbG93PgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdG9hcDAxLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90b2FwMDEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhYzAyNGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdG9hcDAxLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+U2ltcGxlIHRleHQgb24gYSBwYXRoDQorICA8L2Rlc2M+CisgIDxwYXRoIGlkPSJNeVBhdGgiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW4iIGQ9Ik0gMTAwIDEwMCBDIDEyNSAxMjUgMTc1IDEyNSAyMDAgMTAwIi8+CisgIDx0ZXh0Pjx0ZXh0cGF0aCBocmVmPSIjTXlQYXRoIi8+VGV4dCBvbiBwYXRoPC90ZXh0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdG9hcDAyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90b2FwMDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MmFhMDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdG9hcDAyLnhtbApAQCAtMCwwICsxLDI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZWZzPgorICAgIDxzeW1ib2wgaWQ9IlRyaWFuZ2xlMSIgbWluLXg9IjAiIG1pbi15PSIwIiBtYXgteD0iMzAwIiBtYXgteT0iMjAwIj4KKyAgICAgIDxwYXRoIGQ9Ik0gNTAgMCBMICA1MCAyMDAgTCAyNTAgMCB6Ii8+CisgICAgPC9zeW1ib2w+CisgICAgPHN5bWJvbCBpZD0iVHJpYW5nbGUyIiBtaW4teD0iMCIgbWluLXk9IjAiIG1heC14PSIzMDAiIG1heC15PSIyMDAiPgorICAgICAgPHBhdGggZD0iTSA1MCAwIEwgMjUwIDIwMCBMIDI1MCAwIHoiLz4KKyAgICA8L3N5bWJvbD4KKyAgPC9kZWZzPgorICA8ZGVzYz5HZW5lcmFsIGdyYXBoaWNzIG9uIGEgcGF0aA0KKyAgPC9kZXNjPgorICA8dGV4dD4KKyAgICA8dGV4dHBhdGggaHJlZj0iI015UGF0aCIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMSIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMiIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMSIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMiIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMSIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMiIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMSIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMiIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMSIvPgorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMiIvPgorICA8L3RleHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90cmFuc2Zvcm0ueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3RyYW5zZm9ybS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIwMGRiZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90cmFuc2Zvcm0ueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+RGVtb25zdHJhdGlvbiBvZiBjb29yZGluYXRlIHRyYW5zZm9ybXMNCisgIDwvZGVzYz4KKzwhLS0gVGhlIGZvbGxvd2luZyB0d28gdGV4dCBlbGVtZW50cyB3aWxsIGJvdGggZHJhdyB3aXRoIGEgDQorICAgICAgICBmb250IGhlaWdodCBvZiAxMiBwaXhlbHMgLS0+CisgIDx0ZXh0IHN0eWxlPSJmb250LXNpemU6IDEyIj5UaGlzIHByaW50cyAxMiBwaXhlbHMgaGlnaC48L3RleHQ+CisgIDx0ZXh0IHN0eWxlPSJmb250LXNpemU6IDEycHgiPlRoaXMgcHJpbnRzIDEyIHBpeGVscyBoaWdoLjwvdGV4dD4KKzwhLS0gTm93IHNjYWxlIHRoZSBjb29yZGluYXRlIHN5c3RlbSBieSAyLiAtLT4KKyAgPGcgc3R5bGU9InRyYW5zZm9ybTogc2NhbGUoMikiPgorPCEtLSBUaGUgZm9sbG93aW5nIHRleHQgd2lsbCBhY3R1YWxseSBkcmF3IDI0IHBpeGVscyBoaWdoDQorICAgICAgICAgICBiZWNhdXNlIGVhY2ggdW5pdCBpbiB0aGUgbmV3IGNvb3JkaW5hdGUgc3lzdGVtIGVxdWFscw0KKyAgICAgICAgICAgMiB1bml0cyBpbiB0aGUgcHJldmlvdXMgY29vcmRpbmF0ZSBzeXN0ZW0uIC0tPgorICAgIDx0ZXh0IHN0eWxlPSJmb250LXNpemU6IDEyIj5UaGlzIHByaW50cyAyNCBwaXhlbHMgaGlnaC48L3RleHQ+Cis8IS0tIFRoZSBmb2xsb3dpbmcgdGV4dCB3aWxsIGFjdHVhbGx5IHN0aWxsIGRyYXcgMTIgcGl4ZWxzIGhpZ2gNCisgICAgICAgICAgIGJlY2F1c2UgdGhlIENTUyB1bml0IHNwZWNpZmllciBoYXMgYmVlbiBwcm92aWRlZC4gLS0+CisgICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTJweCI+VGhpcyBwcmludHMgMTIgcGl4ZWxzIGhpZ2guPC90ZXh0PgorICA8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90cml2aWFsLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90cml2aWFsLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjEyNTgzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3RyaXZpYWwueG1sCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIiB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+Cis8IS0tIEluc2VydCBkcmF3aW5nIGVsZW1lbnRzIGhlcmUgLS0+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy90d2luLWdyYWRpZW50cy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdHdpbi1ncmFkaWVudHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjZTI1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdHdpbi1ncmFkaWVudHMueG1sCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4KKyAgPGRlc2M+R3JhZGllbnRzIGFwcGx5IHRvIGxlYWYgbm9kZXMNCisgIDwvZGVzYz4KKyAgPGc+CisgICAgPGRlZnM+CisgICAgICA8bGluZWFyZ3JhZGllbnQgaWQ9Ik15R3JhZGllbnQiPgorICAgICAgICA8Z3JhZGllbnRzdG9wIG9mZnNldD0iMCUiIGNvbG9yPSIjRjYwIi8+CisgICAgICAgIDxncmFkaWVudHN0b3Agb2Zmc2V0PSI3MCUiIGNvbG9yPSIjRkY2Ii8+CisgICAgICA8L2xpbmVhcmdyYWRpZW50PgorICAgIDwvZGVmcz4KKyAgICA8ZyBzdHlsZT0iZmlsbDogdXJsKCNNeUdyYWRpZW50KSI+CisgICAgICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTUuOCIvPgorICAgICAgPHJlY3Qgd2lkdGg9IjM1IiBoZWlnaHQ9IjgiLz4KKyAgICA8L2c+CisgIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3YtdGVtcGxhdGUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3YtdGVtcGxhdGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwZDE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdi10ZW1wbGF0ZS54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZXNjLz4KKyAgPGcvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdmlld3BvcnQtbmVzdC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdmlld3BvcnQtbmVzdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZhMTlhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy92aWV3cG9ydC1uZXN0LnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+CisgIDxkZXNjPlRoaXMgU1ZHIGRyYXdpbmcgZW1iZWRzIGFub3RoZXIgb25lLA0KKyAgICB0aHVzIGVzdGFibGlzaGluZyBhIG5ldyB2aWV3cG9ydA0KKyAgPC9kZXNjPgorPCEtLSBUaGUgZm9sbG93aW5nIHN0YXRlbWVudCBlc3RhYmxpc2hpbmcgYSBuZXcgdmlld3BvcnQNCisgICAgICAgYW5kIHJlbmRlcnMgU1ZHIGRyYXdpbmcgQiBpbnRvIHRoYXQgdmlld3BvcnQgLS0+CisgIDxzdmcgc3R5bGU9ImxlZnQ6IDI1JTsgdG9wOiAyNSUiIHdpZHRoPSI1MCUiIGhlaWdodD0iNTAlIj4KKzwhLS0gZHJhd2luZyBCIGdvZXMgaGVyZSAtLT4KKyAgPC9zdmc+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy92aWV3cG9ydC10cmFuc2Zvcm0ueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3ZpZXdwb3J0LXRyYW5zZm9ybS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E5NWZiZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1NWRy92aWV3cG9ydC10cmFuc2Zvcm0ueG1sCkBAIC0wLDAgKzEsMzYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSIzb29weCI+CisgIDxkZXNjPlRyYW5zZm9ybWF0aW9uIHdpdGggZXN0YWJsaXNobWVudCBvZiBhIG5ldyB2aWV3cG9ydA0KKyAgPC9kZXNjPgorPCEtLSBUaGUgZm9sbG93aW5nIHR3byB0ZXh0IGVsZW1lbnRzIHdpbGwgYm90aCBkcmF3IHdpdGggYSANCisgICAgICAgIGZvbnQgaGVpZ2h0IG9mIDEyIHBpeGVscyAtLT4KKyAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTIiPlRoaXMgcHJpbnRzIDEyIHBpeGVscyBoaWdoLjwvdGV4dD4KKyAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTJweCI+VGhpcyBwcmludHMgMTIgcGl4ZWxzIGhpZ2guPC90ZXh0PgorPCEtLSBOb3cgc2NhbGUgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGJ5IDIuIC0tPgorICA8ZyBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZSgyKSI+Cis8IS0tIFRoZSBmb2xsb3dpbmcgdGV4dCB3aWxsIGFjdHVhbGx5IGRyYXcgMjQgcGl4ZWxzIGhpZ2gNCisgICAgICAgICAgIGJlY2F1c2UgZWFjaCB1bml0IGluIHRoZSBuZXcgY29vcmRpbmF0ZSBzeXN0ZW0gZXF1YWxzDQorICAgICAgICAgICAyIHVuaXRzIGluIHRoZSBwcmV2aW91cyBjb29yZGluYXRlIHN5c3RlbS4gLS0+CisgICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTIiPlRoaXMgcHJpbnRzIDI0IHBpeGVscyBoaWdoLjwvdGV4dD4KKzwhLS0gVGhlIGZvbGxvd2luZyB0ZXh0IHdpbGwgYWN0dWFsbHkgc3RpbGwgZHJhdyAxMiBwaXhlbHMgaGlnaA0KKyAgICAgICAgICAgYmVjYXVzZSB0aGUgQ1NTIHVuaXQgc3BlY2lmaWVyIGhhcyBiZWVuIHByb3ZpZGVkLiAtLT4KKyAgICA8dGV4dCBzdHlsZT0iZm9udC1zaXplOiAxMnB4Ij5UaGlzIHByaW50cyAxMiBwaXhlbHMgaGlnaC48L3RleHQ+CisgIDwvZz4KKzwhLS0gVGhpcyB0aW1lLCBzY2FsZSB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gYnkgMy4gLS0+CisgIDxnIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlKDMpIj4KKzwhLS0gRXN0YWJsaXNoIGEgbmV3IHZpZXdwb3J0IGFuZCB0aHVzIGNoYW5nZSB0aGUgbWVhbmluZyBvZg0KKyAgICAgICAgICAgc29tZSBDU1MgdW5pdCBzcGVjaWZpZXJzLiAtLT4KKyAgICA8c3ZnIHN0eWxlPSJsZWZ0OjA7IHRvcDowOyByaWdodDoxMDA7IGJvdHRvbToxMDAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgorPCEtLSBUaGUgZm9sbG93aW5nIHR3byB0ZXh0IGVsZW1lbnRzIHdpbGwgYm90aCBkcmF3IHdpdGggYSANCisgICAgICAgICAgICAgIGZvbnQgaGVpZ2h0IG9mIDM2IHNjcmVlbiBwaXhlbHMuIFRoZSBmaXJzdCB0ZXh0IGVsZW1lbnQNCisgICAgICAgICAgICAgIGRlZmluZXMgaXRzIGhlaWdodCBpbiB1c2VyIGNvb3JkaW5hdGVzLCB3aGljaCBoYXZlIGJlZW4NCisgICAgICAgICAgICAgIHNjYWxlZCBieSAzLiBUaGUgc2Vjb25kIHRleHQgZWxlbWVudCBkZWZpbmVzIGl0cyBoZWlnaHQNCisgICAgICAgICAgICAgIGluIENTUyBweCB1bml0cywgd2hpY2ggaGF2ZSBiZWVuIHJlZGVmaW5lZCB0byBiZSB0aHJlZSB0aW1lcw0KKyAgICAgICAgICAgICAgYXMgYmlnIGFzIHNjcmVlbiBwaXhlbHMgZHVlIHRoZSA8c3ZnPiBlbGVtZW50IGVzdGFibGlzaGluZw0KKyAgICAgICAgICAgICAgYSBuZXcgdmlld3BvcnQuIC0tPgorICAgICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTIiPlRoaXMgcHJpbnRzIDM2IHBpeGVscyBoaWdoLjwvdGV4dD4KKyAgICAgIDx0ZXh0IHN0eWxlPSJmb250LXNpemU6IDEycHgiPlRoaXMgcHJpbnRzIDM2IHBpeGVscyBoaWdoLjwvdGV4dD4KKyAgICA8L3N2Zz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvdmlld3BvcnQueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3ZpZXdwb3J0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmQxYWQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3ZpZXdwb3J0LnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8cGFyZW50IHhtbG5zPSJodHRwOi8vc29tZS51cmwiPgorPCEtLSBTVkcgZ3JhcGhpYyAtLT4KKyAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiIHdpZHRoPSIxMDBweCIgaGVpZ2h0PSIyMDBweCI+CisgICAgPHBhdGggZD0iTTEwMCwxMDAgUTIwMCw0MDAsMzAwLDEwMCIvPgorPCEtLSByZXN0IG9mIFNWRyBncmFwaGljIHdvdWxkIGdvIGhlcmUgLS0+CisgIDwvc3ZnPgorPC9wYXJlbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9TVkcvd2YtdGVtcGxhdGUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3dmLXRlbXBsYXRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzBkOGRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvU1ZHL3dmLXRlbXBsYXRlLnhtbApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCIgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPgorICA8ZGVzYy8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1VSSS9zbWl0aC51cmkgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9VUkkvc21pdGgudXJpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMzZkNTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9VUkkvc21pdGgudXJpCkBAIC0wLDAgKzEsMTUgQEAKKy9iYXIKK2JhcgorYmFyCitiYXIKK2JhegorCitmb28vCitmb28KK2ZvbworLi4vZm9vLi8KKy4uL2Zvby8KKy9mb28KKy4uL2ZvbworLi4vLi4vZm9vCisuLi8uLi8uLi9mb28KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1VSSS91cmkuZGF0YSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1VSSS91cmkuZGF0YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjJiNGRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVVJJL3VyaS5kYXRhCkBAIC0wLDAgKzEsMTggQEAKK2h0dHA6Ly9mb28uY29tL3BhdGgvdG8vaW5kZXguaHRtbD9vcmlnCitodHRwOi8vZm9vLmNvbS9wYXRoL3RvLworaHR0cDovL2Zvby5jb20vcGF0aC90by9iYXIKK2h0dHA6Ly9mb28uY29tL3BhdGgvdG8vYmFyI2JhegoraHR0cDovL2Zvby5jb20vcGF0aC90by9iYXI/YmF6CitodHRwOi8vZm9vLmNvbS9wYXRoL3RvL2Jhcj9iYXojYmF6MgoraHR0cDovL2Zvby5jb20vcGF0aC90by9pbmRleC5odG1sP29yaWcjYmF6CitodHRwOi8vZm9vLmNvbS9wYXRoL3RvL2luZGV4Lmh0bWw/YmF6CitodHRwOi8vZm9vLmNvbS9wYXRoL3RvL2luZGV4Lmh0bWw/YmF6I2JhejIKK2h0dHA6Ly9mb28uY29tL3BhdGgvdXAuYS5ub3RjaC5odG1sI3dvdworaHR0cDovL2Zvby5jb20vcGF0aC91cC5hLm5vdGNoLmh0bWw/d293CitodHRwOi8vZm9vLmNvbS9wYXRoL3VwLmEubm90Y2guaHRtbD93b3cjd293MgoraHR0cDovL2Zvby5jb20vcm9vdC5jZ2kjT0sKK2h0dHA6Ly9mb28uY29tL3Jvb3QuY2dpP09LCitodHRwOi8vZm9vLmNvbS9yb290LmNnaT9PSyNPSzIKK2h0dHA6Ly9lbHNld2hlcmUuY29tLyNkZWVwCitodHRwOi8vZWxzZXdoZXJlLmNvbS8/ZGVlcAoraHR0cDovL2Vsc2V3aGVyZS5jb20vP2RlZXAjZGVlcDIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0F0dHJpYnV0ZURlZmF1bHRMZWdhbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0F0dHJpYnV0ZURlZmF1bHRMZWdhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjYxNjg2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvQXR0cmlidXRlRGVmYXVsdExlZ2FsCkBAIC0wLDAgKzEsMTIgQEAKKy4vdGVzdC9WQy9BdHRyaWJ1dGVEZWZhdWx0TGVnYWw6NDogdmFsaWRpdHkgZXJyb3IgOiBBdHRyaWJ1dGUgZG9jIG9mIEF0OiBpbnZhbGlkIGRlZmF1bHQgdmFsdWUKKzwhQVRUTElTVCBkb2MgQXQgTk1UT0tFTiAiJCQkIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9WQy9BdHRyaWJ1dGVEZWZhdWx0TGVnYWw6NjogdmFsaWRpdHkgZXJyb3IgOiBBdHRyaWJ1dGUgZG9jIG9mIGJhZDogaW52YWxpZCBkZWZhdWx0IHZhbHVlCis8IUFUVExJU1QgZG9jIGJhZCBJRFJFRiAiMWFiY18yIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L1ZDL0F0dHJpYnV0ZURlZmF1bHRMZWdhbDo4OiB2YWxpZGl0eSBlcnJvciA6IEF0dHJpYnV0ZSBkb2Mgb2YgYmFkMjogaW52YWxpZCBkZWZhdWx0IHZhbHVlCis8IUFUVExJU1QgZG9jIGJhZDIgSURSRUZTICJhYmM6MSAxYWJjXzIiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9WQy9BdHRyaWJ1dGVEZWZhdWx0TGVnYWw6MTE6IGVsZW1lbnQgZG9jOiB2YWxpZGl0eSBlcnJvciA6IE5vIGRlY2xhcmF0aW9uIGZvciBhdHRyaWJ1dGUgdmFsIG9mIGVsZW1lbnQgZG9jCis8ZG9jIHZhbD0idjEiLz4KKyAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9BdHRyaWJ1dGVObXRva2VucyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0F0dHJpYnV0ZU5tdG9rZW5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMTkyODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9BdHRyaWJ1dGVObXRva2VucwpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9WQy9BdHRyaWJ1dGVObXRva2Vuczo2OiBlbGVtZW50IHRlc3Q6IHZhbGlkaXR5IGVycm9yIDogU3ludGF4IG9mIHZhbHVlIGZvciBhdHRyaWJ1dGUgYXR0cjEgb2YgdGVzdCBpcyBub3QgdmFsaWQKKzx0ZXN0IGF0dHIxPSIgYSYjeDk7YiAiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRHVwbGljYXRlVHlwZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0R1cGxpY2F0ZVR5cGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRlMmMyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0R1cGxpY2F0ZVR5cGUKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvVkMvRHVwbGljYXRlVHlwZTozOiB2YWxpZGl0eSBlcnJvciA6IERlZmluaXRpb24gb2YgYSBoYXMgZHVwbGljYXRlIHJlZmVyZW5jZXMgb2YgYworPCFFTEVNRU5UIGEgKCNQQ0RBVEEgfCBiIHwgYyB8IGQgfCBjKSo+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9FbGVtZW50VmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9FbGVtZW50VmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZiNTBhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZApAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9WQy9FbGVtZW50VmFsaWQ6MzogdmFsaWRpdHkgZXJyb3IgOiBWYWxpZGF0aW9uIGZhaWxlZDogbm8gRFREIGZvdW5kICEKKzxkb2MvPgorICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9FbGVtZW50VmFsaWQyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNDdjODkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9FbGVtZW50VmFsaWQyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L1ZDL0VsZW1lbnRWYWxpZDI6NDogZWxlbWVudCBwOiB2YWxpZGl0eSBlcnJvciA6IE5vIGRlY2xhcmF0aW9uIGZvciBlbGVtZW50IHAKKzxkb2M+PHAvPjwvZG9jPgorICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZjMjM2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZDMKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvVkMvRWxlbWVudFZhbGlkMzo0OiBlbGVtZW50IGRvYzogdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGRvYyB3YXMgZGVjbGFyZWQgRU1QVFkgdGhpcyBvbmUgaGFzIGNvbnRlbnQKKzxkb2M+T29wcywgdGhpcyBlbGVtZW50IHdhcyBkZWNsYXJlZCBFTVBUWTwvZG9jPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc5MWRiNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZDQKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvVkMvRWxlbWVudFZhbGlkNDo3OiBlbGVtZW50IGRvYzogdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGMgaXMgbm90IGRlY2xhcmVkIGluIGRvYyBsaXN0IG9mIHBvc3NpYmxlIGNoaWxkcmVuCis8ZG9jPiBUaGlzIDxiPnNlZW1zPC9iPiBPayA8YS8+IGJ1dCB0aGlzIDxjPndhcyBub3QgZGVjbGFyZWQ8L2M+PC9kb2M+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQwNjRmNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VsZW1lbnRWYWxpZDUKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvVkMvRWxlbWVudFZhbGlkNTo3OiBlbGVtZW50IGRvYzogdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGRvYyBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFRELCBleHBlY3RpbmcgKGEgLCBiKiAsIGMrKSwgZ290IChhIGIgYyBiKQorPGRvYz48YS8+PGI+IGJ1dCB0aGlzPC9iPjxjPndhcyBub3QgZGVjbGFyZWQ8L2M+PGI+c2VlbXM8L2I+PC9kb2M+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9FbGVtZW50VmFsaWQ2IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2JmOGZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkNgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9WQy9FbGVtZW50VmFsaWQ2Ojc6IGVsZW1lbnQgZG9jOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZG9jIGNvbnRlbnQgZG9lcyBub3QgZm9sbG93IHRoZSBEVEQsIGV4cGVjdGluZyAoYSAsIGI/ICwgYyspPywgZ290IChhIGIpCis8ZG9jPjxhLz48Yj5sYWNrcyBjPC9iPjwvZG9jPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9FbGVtZW50VmFsaWQ3IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2U5ZGJmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkNwpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9WQy9FbGVtZW50VmFsaWQ3Ojc6IGVsZW1lbnQgZG9jOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZG9jIGNvbnRlbnQgZG9lcyBub3QgZm9sbG93IHRoZSBEVEQsIGV4cGVjdGluZyAoKGEgfCBiKSogLCBjKyAsIGEgLCBiPyAsIGMgLCBhPyksIGdvdCAoYSBiIGEgYyBjIGEpCis8ZG9jPjxhLz48Yi8+PGEvPjxjLz48Yy8+PGEvPjwvZG9jPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9FbGVtZW50VmFsaWQ4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWIwZGFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRWxlbWVudFZhbGlkOApAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9WQy9FbGVtZW50VmFsaWQ4Ojc6IHZhbGlkaXR5IGVycm9yIDogQ29udGVudCBtb2RlbCBvZiBkb2MgaXMgbm90IGRldGVybWluaXN0OiAoKGEgLCBiKSB8IChhICwgYykpCis8ZG9jPjxhLz48Yz4gZG9jIGlzIG5vbi1kZXRlcm1pbmlzdGljIDwvYz48L2RvYz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VudW1lcmF0aW9uIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvRW51bWVyYXRpb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA4OTZmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL0VudW1lcmF0aW9uCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L1ZDL0VudW1lcmF0aW9uOjU6IGVsZW1lbnQgZG9jOiB2YWxpZGl0eSBlcnJvciA6IFZhbHVlICJ2NCIgZm9yIGF0dHJpYnV0ZSB2YWwgb2YgZG9jIGlzIG5vdCBhbW9uZyB0aGUgZW51bWVyYXRlZCBzZXQKKzxkb2MgdmFsPSJ2NCI+PC9kb2M+CisgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvTlMxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvTlMxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9OUzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL05TMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL05TMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmQxZjg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvTlMyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L1ZDL05TMjo5OiBlbGVtZW50IGRvYzogdmFsaWRpdHkgZXJyb3IgOiBObyBkZWNsYXJhdGlvbiBmb3IgYXR0cmlidXRlIGF0dHIgb2YgZWxlbWVudCBkb2MKKzxuczpkb2MgbnM6YXR0cj0idmFsIiB4bWxuczpucz0iaHR0cDovL3d3dy5leGFtcGxlLm9yZy90ZXN0LyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvTlMzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvTlMzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyYzAxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9OUzMKQEAgLTAsMCArMSw5IEBACisuL3Rlc3QvVkMvTlMzOjk6IGVsZW1lbnQgZm9vOiB2YWxpZGl0eSBlcnJvciA6IFZhbHVlIGZvciBhdHRyaWJ1dGUgeG1sbnMgb2YgZm9vIGlzIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQgImh0dHA6Ly9leGFtcGxlLmNvbS9mb29vIgoreG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUuY29tL2ZvIiBmb286aW5mbz0idG90byIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvVkMvTlMzOjk6IGVsZW1lbnQgZm9vOiB2YWxpZGl0eSBlcnJvciA6IFZhbHVlIGZvciBhdHRyaWJ1dGUgeG1sbnMgb2YgZm9vIG11c3QgYmUgImh0dHA6Ly9leGFtcGxlLmNvbS9mb29vIgoreG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUuY29tL2ZvIiBmb286aW5mbz0idG90byIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvVkMvTlMzOjk6IGVsZW1lbnQgZm9vOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZm9vIG5hbWVzcGFjZSBuYW1lIGZvciBkZWZhdWx0IG5hbWVzcGFjZSBkb2VzIG5vdCBtYXRjaCB0aGUgRFRECittbG5zPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLmNvbS9mbyIgZm9vOmluZm89InRvdG8iLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL09uZUlEIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvT25lSUQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJjODk0ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL09uZUlECkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L1ZDL09uZUlEOjQ6IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBkb2MgaGFzIHRvbyBtYXkgSUQgYXR0cmlidXRlcyBkZWZpbmVkIDogaWQKKzwhQVRUTElTVCBkb2MgaWQgSUQgI0lNUExJRUQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L1ZDL09uZUlEOjQ6IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBkb2MgaGFzIDIgSUQgYXR0cmlidXRlIGRlZmluZWQgaW4gdGhlIGludGVybmFsIHN1YnNldCA6IGlkCis8IUFUVExJU1QgZG9jIGlkIElEICNJTVBMSUVEPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL09uZUlEMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL09uZUlEMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWYwNGYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvT25lSUQyCkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L1ZDL09uZUlEMjozOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZG9jIGhhcyB0b28gbWF5IElEIGF0dHJpYnV0ZXMgZGVmaW5lZCA6IGlkCis8IUFUVExJU1QgZG9jIGlkIElEICNJTVBMSUVEPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9WQy9PbmVJRDI6MzogdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGRvYyBoYXMgMiBJRCBhdHRyaWJ1dGUgZGVmaW5lZCBpbiB0aGUgaW50ZXJuYWwgc3Vic2V0IDogaWQKKzwhQVRUTElTVCBkb2MgaWQgSUQgI0lNUExJRUQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvT25lSUQzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvT25lSUQzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhY2NlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9PbmVJRDMKQEAgLTAsMCArMSw2IEBACit0ZXN0L1ZDL2R0ZHMvZG9jLmR0ZDoyOiB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZG9jIGhhcyB0b28gbWF5IElEIGF0dHJpYnV0ZXMgZGVmaW5lZCA6IHZhbAorPCFBVFRMSVNUIGRvYyB2YWwgSUQgI0lNUExJRUQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK3Rlc3QvVkMvZHRkcy9kb2MuZHRkOjI6IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBkb2MgaGFzIDIgSUQgYXR0cmlidXRlIGRlZmluZWQgaW4gdGhlIGV4dGVybmFsIHN1YnNldCA6IHZhbAorPCFBVFRMSVNUIGRvYyB2YWwgSUQgI0lNUExJRUQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL1BFTmVzdGluZyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL1BFTmVzdGluZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjY2ODlhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvUEVOZXN0aW5nCkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L1ZDL1BFTmVzdGluZzoxOiBwYXJzZXIgZXJyb3IgOiBTdGFydFRhZzogaW52YWxpZCBlbGVtZW50IG5hbWUKKzwhRU5USVRZICUgcGUxICJFTVBUWT4gPCFFTEVNRU5UIGUyIEVNUFRZPiI+IAorIF4KKy4vdGVzdC9WQy9QRU5lc3Rpbmc6MTogcGFyc2VyIGVycm9yIDogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudAorPCFFTlRJVFkgJSBwZTEgIkVNUFRZPiA8IUVMRU1FTlQgZTIgRU1QVFk+Ij4gCisgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvUEVOZXN0aW5nMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL1BFTmVzdGluZzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUzZWFkNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL1BFTmVzdGluZzIKQEAgLTAsMCArMSw2IEBACisuL3Rlc3QvVkMvUEVOZXN0aW5nMjoxOiBwYXJzZXIgZXJyb3IgOiBTdGFydFRhZzogaW52YWxpZCBlbGVtZW50IG5hbWUKKzwhRU5USVRZICUgcDEgIihBfEIiPgorIF4KKy4vdGVzdC9WQy9QRU5lc3RpbmcyOjE6IHBhcnNlciBlcnJvciA6IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQKKzwhRU5USVRZICUgcDEgIihBfEIiPgorIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24gYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9VbmlxdWVFbGVtZW50VHlwZURlY2xhcmF0aW9uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MzcwNDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9WQy9VbmlxdWVFbGVtZW50VHlwZURlY2xhcmF0aW9uCkBAIC0wLDAgKzEsMyBAQAordGVzdC9WQy9kdGRzL2EuZHRkOjE6IHZhbGlkaXR5IGVycm9yIDogUmVkZWZpbml0aW9uIG9mIGVsZW1lbnQgYQorPCFFTEVNRU5UIGEgKCNQQ0RBVEEgfCBiIHwgYykqPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvVkMvVW5pcXVlRWxlbWVudFR5cGVEZWNsYXJhdGlvbjIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMyOGQ5MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24yCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24yOjY6IHZhbGlkaXR5IGVycm9yIDogUmVkZWZpbml0aW9uIG9mIGVsZW1lbnQgYQorPCFFTEVNRU5UIGEgKCNQQ0RBVEEgfCBiIHwgYykqPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2RvY2lkcy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9kb2NpZHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkOGU2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9kb2NpZHMueG1sCkBAIC0wLDAgKzEsMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGJvb2sgWworPCFFTEVNRU5UIGJvb2sgKGRvYykqPgorPCFFTEVNRU5UIGRvYyAoaXNpZCkqPgorPCFFTEVNRU5UIGlzaWQgRU1QVFk+Cis8IUFUVExJU1QgaXNpZCBteWlkIElEICNJTVBMSUVEPgorXT4KKzxib29rPgorPGRvYz4KKzxpc2lkIG15aWQ9Im1pbmUiLz4KKzxpc2lkIG15aWQ9ImR1cCIvPgorPC9kb2M+Cis8IS0tIGluY2x1ZGluZyBhbm90aGVyIFhNTCBkb2N1bWVudCB3aXRoIElEcyAtLT4KKzxkb2MgeG1sOmJhc2U9Ii4uL2VudHMvaWRzLnhtbCI+Cis8aXNpZCBteWlkPSJkdXAiLz4KKzxpc2lkIG15aWQ9ImZvbyIvPgorPGlzaWQgbXlpZD0iYmFyIi8+Cis8L2RvYz4KKzwvYm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2RvY2lkcy54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZG9jaWRzLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2RvY2lkcy54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9kb2NpZHMueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2RvY2lkcy54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlZGViNjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9kb2NpZHMueG1sLnJkcgpAQCAtMCwwICsxLDM1IEBACiswIDEwIGJvb2sgMCAwCiswIDEgYm9vayAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgZG9jIDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzIgMSBpc2lkIDEgMAorMiAxNCAjdGV4dCAwIDEgCisKKzIgMSBpc2lkIDEgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgOCAjY29tbWVudCAwIDEgIGluY2x1ZGluZyBhbm90aGVyIFhNTCBkb2N1bWVudCB3aXRoIElEcyAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgZG9jIDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzIgMSBpc2lkIDEgMAorMiAxNCAjdGV4dCAwIDEgCisKKzIgMSBpc2lkIDEgMAorMiAxNCAjdGV4dCAwIDEgCisKKzIgMSBpc2lkIDEgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgYm9vayAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2VlZDUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZmFsbGJhY2sueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eCB4bWxuczp4aW5jbHVkZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSI+CisgICA8IS0tIFNpbXBsZSB0ZXN0IG9mIGEgZmFsbGJhY2sgb24gdW5hdmFpbGJsZSBVUkkgLS0+CisgICA8d2FybmluZz5JbmNsdXNpb24gZmFpbGVkPC93YXJuaW5nPgorPC94PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZmFsbGJhY2sueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrLnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9mYWxsYmFjay54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMDcyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9mYWxsYmFjay54bWwucmRyCkBAIC0wLDAgKzEsMTIgQEAKKzAgMSB4IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgOCAjY29tbWVudCAwIDEgIFNpbXBsZSB0ZXN0IG9mIGEgZmFsbGJhY2sgb24gdW5hdmFpbGJsZSBVUkkgCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAxIHdhcm5pbmcgMCAwCisyIDMgI3RleHQgMCAxIEluY2x1c2lvbiBmYWlsZWQKKzEgMTUgd2FybmluZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHggMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9mYWxsYmFjazIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZmFsbGJhY2syLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTFiMGExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZmFsbGJhY2syLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGE+CisgICAgICAgIFRoZXJlIGlzIG5vIGIueG1sIC4uLiAKKyAgICAgICAgVGhlcmUgaXMgbm8gYy54bWwgLi4uIAorIAorPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZmFsbGJhY2syLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9mYWxsYmFjazIueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZmFsbGJhY2syLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrMi54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvZmFsbGJhY2syLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZjYTRmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2ZhbGxiYWNrMi54bWwucmRyCkBAIC0wLDAgKzEsMTEgQEAKKzAgMSBhIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorMSAzICN0ZXh0IDAgMSBUaGVyZSBpcyBubyBiLnhtbCAuLi4gCisxIDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCisxIDMgI3RleHQgMCAxIFRoZXJlIGlzIG5vIGMueG1sIC4uLiAKKzEgMTQgI3RleHQgMCAxIAorIAorCiswIDE1IGEgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9pbmNsdWRlLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2luY2x1ZGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhOTM2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9pbmNsdWRlLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHggeG1sbnM6eGluY2x1ZGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWEluY2x1ZGUiPgorICAgPCEtLSBTaW1wbGUgdGVzdCBvZiBpbmNsdWRpbmcgYW5vdGhlciBYTUwgZG9jdW1lbnQgLS0+CisgICA8ZG9jIHhtbDpiYXNlPSIuLi9lbnRzL3NvbWV0aGluZy54bWwiPgorPHA+c29tZXRoaW5nPC9wPgorPHA+cmVhbGx5PC9wPgorPHA+c2ltcGxlPC9wPgorPC9kb2M+Cis8L3g+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9pbmNsdWRlLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9pbmNsdWRlLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL2luY2x1ZGUueG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvaW5jbHVkZS54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvaW5jbHVkZS54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MTM1YTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9pbmNsdWRlLnhtbC5yZHIKQEAgLTAsMCArMSwyOCBAQAorMCAxIHggMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSA4ICNjb21tZW50IDAgMSAgU2ltcGxlIHRlc3Qgb2YgaW5jbHVkaW5nIGFub3RoZXIgWE1MIGRvY3VtZW50IAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBkb2MgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworMiAxIHAgMCAwCiszIDMgI3RleHQgMCAxIHNvbWV0aGluZworMiAxNSBwIDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzIgMSBwIDAgMAorMyAzICN0ZXh0IDAgMSByZWFsbHkKKzIgMTUgcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCisyIDEgcCAwIDAKKzMgMyAjdGV4dCAwIDEgc2ltcGxlCisyIDE1IHAgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSB4IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MDMwZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2Rlcy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4IHhtbG5zOnhpbmNsdWRlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIj4KKyAgIDwhLS0gU2ltcGxlIHRlc3Qgb2YgaW5jbHVkaW5nIGEgc2V0IG9mIG5vZGVzIGZyb20gYW4gWE1MIGRvY3VtZW50IC0tPgorICAgPHAgeG1sOmJhc2U9Ii4uL2VudHMvc29tZXRoaW5nLnhtbCI+c29tZXRoaW5nPC9wPjxwIHhtbDpiYXNlPSIuLi9lbnRzL3NvbWV0aGluZy54bWwiPnJlYWxseTwvcD48cCB4bWw6YmFzZT0iLi4vZW50cy9zb21ldGhpbmcueG1sIj5zaW1wbGU8L3A+Cis8L3g+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2Rlcy54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMueG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU1Mzg3OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzLnhtbC5yZHIKQEAgLTAsMCArMSwxOCBAQAorMCAxIHggMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSA4ICNjb21tZW50IDAgMSAgU2ltcGxlIHRlc3Qgb2YgaW5jbHVkaW5nIGEgc2V0IG9mIG5vZGVzIGZyb20gYW4gWE1MIGRvY3VtZW50IAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSBzb21ldGhpbmcKKzEgMTUgcCAwIDAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSByZWFsbHkKKzEgMTUgcCAwIDAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSBzaW1wbGUKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHggMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2RlczIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWMyZDgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMyLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHggeG1sbnM6eGluY2x1ZGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGUiPgorICAgPCEtLSBTaW1wbGUgdGVzdCBvZiBpbmNsdWRpbmcgYSBzZXQgb2Ygbm9kZXMgZnJvbSBhbiBYTUwgZG9jdW1lbnQgLS0+CisgICA8cCB4bWw6YmFzZT0iLi4vZW50cy9zb21ldGhpbmcueG1sIj5zb21ldGhpbmc8L3A+PHAgeG1sOmJhc2U9Ii4uL2VudHMvc29tZXRoaW5nLnhtbCI+cmVhbGx5PC9wPjxwIHhtbDpiYXNlPSIuLi9lbnRzL3NvbWV0aGluZy54bWwiPnNpbXBsZTwvcD4KKzwveD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzMi54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMyLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzMi54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2RlczIueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzMi54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNTM4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2RlczIueG1sLnJkcgpAQCAtMCwwICsxLDE4IEBACiswIDEgeCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDggI2NvbW1lbnQgMCAxICBTaW1wbGUgdGVzdCBvZiBpbmNsdWRpbmcgYSBzZXQgb2Ygbm9kZXMgZnJvbSBhbiBYTUwgZG9jdW1lbnQgCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAxIHAgMCAwCisyIDMgI3RleHQgMCAxIHNvbWV0aGluZworMSAxNSBwIDAgMAorMSAxIHAgMCAwCisyIDMgI3RleHQgMCAxIHJlYWxseQorMSAxNSBwIDAgMAorMSAxIHAgMCAwCisyIDMgI3RleHQgMCAxIHNpbXBsZQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgeCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzMy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2RlczMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYjIwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2RlczMueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eCB4bWxuczp4aW5jbHVkZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMy9YSW5jbHVkZSI+CisgICA8IS0tIFNpbXBsZSB0ZXN0IG9mIGluY2x1ZGluZyBhIHNldCBvZiBub2RlcyBmcm9tIGFuIFhNTCBkb2N1bWVudCAtLT4KKyAgIDx4aW5jbHVkZTppbmNsdWRlIGhyZWY9Ii4uL2VudHMvc29tZXRoaW5nLnhtbCN4cG9pbnRlcigvL3ApIi8+Cis8L3g+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2RlczMueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzMy54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMTE1MjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9ub2RlczMueG1sLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvWEluY2x1ZGUvZG9jcy9ub2RlczMueG1sOjM6IGVsZW1lbnQgaW5jbHVkZTogWEluY2x1ZGUgZXJyb3IgOiBJbnZhbGlkIGZyYWdtZW50IGlkZW50aWZpZXIgaW4gVVJJIHRlc3QvWEluY2x1ZGUvZW50cy9zb21ldGhpbmcueG1sI3hwb2ludGVyKC8vcCkgdXNlIHRoZSB4cG9pbnRlciBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzMy54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvbm9kZXMzLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJhZTg3YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL25vZGVzMy54bWwucmRyCkBAIC0wLDAgKzEsMTAgQEAKKzAgMSB4IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgOCAjY29tbWVudCAwIDEgIFNpbXBsZSB0ZXN0IG9mIGluY2x1ZGluZyBhIHNldCBvZiBub2RlcyBmcm9tIGFuIFhNTCBkb2N1bWVudCAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgeGluY2x1ZGU6aW5jbHVkZSAxIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHggMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9yZWN1cnNpdmUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvcmVjdXJzaXZlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWYxNzM4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvcmVjdXJzaXZlLnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHRoaXM+PHN1Yi1pbmMgeG1sOmJhc2U9Ii4uL2VudHMvc3ViLWluYy5lbnQiPmlzIGEgdGVzdAorPC9zdWItaW5jPjwvdGhpcz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3JlY3Vyc2l2ZS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvcmVjdXJzaXZlLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3JlY3Vyc2l2ZS54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9yZWN1cnNpdmUueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3JlY3Vyc2l2ZS54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhZmNlMTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS9yZWN1cnNpdmUueG1sLnJkcgpAQCAtMCwwICsxLDYgQEAKKzAgMSB0aGlzIDAgMAorMSAxIHN1Yi1pbmMgMCAwCisyIDMgI3RleHQgMCAxIGlzIGEgdGVzdAorCisxIDE1IHN1Yi1pbmMgMCAwCiswIDE1IHRoaXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS90c3RlbmNvZGluZy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS90c3RlbmNvZGluZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFjNTE3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3RzdGVuY29kaW5nLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx4IHhtbG5zOnhpbmNsdWRlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIj4KKyAgIDwhLS0gU2ltcGxlIHRlc3Qgb2YgaW5jbHVkaW5nIGFub3RoZXIgdGV4dCBkb2N1bWVudCAtLT4KKyAgIHRlc3Qgd2l0aCBhY2NlbnRzIGluIElTTy04ODU5LTE6IMAgwSDpIOgKKworPC94PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvdHN0ZW5jb2RpbmcueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3RzdGVuY29kaW5nLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3RzdGVuY29kaW5nLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3RzdGVuY29kaW5nLnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS90c3RlbmNvZGluZy54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwY2M2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS90c3RlbmNvZGluZy54bWwucmRyCkBAIC0wLDAgKzEsMTEgQEAKKzAgMSB4IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgOCAjY29tbWVudCAwIDEgIFNpbXBsZSB0ZXN0IG9mIGluY2x1ZGluZyBhbm90aGVyIHRleHQgZG9jdW1lbnQgCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAzICN0ZXh0IDAgMSB0ZXN0IHdpdGggYWNjZW50cyBpbiBJU08tODg1OS0xOiDDgCDDgSDDqSDDqAorCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSB4IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvdHh0aW5jbHVkZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS90eHRpbmNsdWRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTE0ZTRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvdHh0aW5jbHVkZS54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4IHhtbG5zOnhpbmNsdWRlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIj4KKyAgIDwhLS0gU2ltcGxlIHRlc3Qgb2YgaW5jbHVkaW5nIGFub3RoZXIgdGV4dCBkb2N1bWVudCAtLT4KKyAgIHRoaXMgaXMgc29tZSB0ZXh0IGluIEFTQ0lJCisKKzwveD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3R4dGluY2x1ZGUueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3R4dGluY2x1ZGUueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWEluY2x1ZGUvdHh0aW5jbHVkZS54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS90eHRpbmNsdWRlLnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YSW5jbHVkZS90eHRpbmNsdWRlLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRjYzNiNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hJbmNsdWRlL3R4dGluY2x1ZGUueG1sLnJkcgpAQCAtMCwwICsxLDExIEBACiswIDEgeCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDggI2NvbW1lbnQgMCAxICBTaW1wbGUgdGVzdCBvZiBpbmNsdWRpbmcgYW5vdGhlciB0ZXh0IGRvY3VtZW50IAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMyAjdGV4dCAwIDEgdGhpcyBpcyBzb21lIHRleHQgaW4gQVNDSUkKKworMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgeCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL2V4cHIvYmFzZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL2V4cHIvYmFzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTUyODY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvZXhwci9iYXNlCkBAIC0wLDAgKzEsMjAgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxCitPYmplY3QgaXMgYSBudW1iZXIgOiAxCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSsyCitPYmplY3QgaXMgYSBudW1iZXIgOiAzCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMiozCitPYmplY3QgaXMgYSBudW1iZXIgOiA2CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSsyKjMrNAorT2JqZWN0IGlzIGEgbnVtYmVyIDogMTEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAoMSsyKSooMys0KQorT2JqZWN0IGlzIGEgbnVtYmVyIDogMjEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL2V4cHIvY29tcGFyZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL2V4cHIvY29tcGFyZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMWE4OGQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvZXhwci9jb21wYXJlCkBAIC0wLDAgKzEsMTg0IEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMDwwCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwPD0wCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDA+MAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMD49MAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwPDEKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMDw9MQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwPjEKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDA+PTEKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDE8MAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMTw9MAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMT4wCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDE+PTAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMTwxCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxPD0xCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDE+MQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMT49MQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAnMCc8MQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAnMCc8PTEKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogJzAnPjEKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICcwJz49MQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMDwnMS4yJworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwPD0nMS4yJworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwPicxLjInCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwPj0nMS4yJworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMDwnLTAuMicKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDA8PSctMC4yJworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMD4nLTAuMicKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMD49Jy0wLjInCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGZhbHNlKCk8MQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBmYWxzZSgpPD0xCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDA+dHJ1ZSgpCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwPj10cnVlKCkKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdhJyA+ICdhJworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogJ2EnID4gJ2InCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAnYicgPiAnYScKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdhJyA8ICdhJworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogJ2EnIDwgJ2InCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAnYicgPCAnYScKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdhJyA+PSAnYScKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdhJyA+PSAnYicKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdiJyA+PSAnYScKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdhJyA8PSAnYScKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdhJyA8PSAnYicKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdiJyA8PSAnYScKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICdhJyA+ICcwLjAnCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAnYScgPCAnMC4wJworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC9leHByL2VxdWFsaXR5IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvZXhwci9lcXVhbGl0eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGI0YzIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvZXhwci9lcXVhbGl0eQpAQCAtMCwwICsxLDEwNCBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDE9MQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIT0xCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxPTAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEhPTAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogdHJ1ZSgpPXRydWUoKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB0cnVlKCkhPXRydWUoKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogdHJ1ZSgpPWZhbHNlKCkKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGZhbHNlKCkhPXRydWUoKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAndGVzdCc9J3Rlc3QnCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICd0ZXN0JyE9J3Rlc3QnCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAndGVzdDInPSd0ZXN0JworT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogJ3Rlc3QyJyE9J3Rlc3QnCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGZhbHNlKCk9MAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBmYWxzZSgpIT0wCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBmYWxzZSgpPTEKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGZhbHNlKCkhPTEKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMD10cnVlKCkKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDAhPXRydWUoKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxPXRydWUoKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIT10cnVlKCkKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHRydWUoKT0ndGVzdCcKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogZmFsc2UoKT0ndGVzdCcKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICd0ZXN0JyE9dHJ1ZSgpCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAndGVzdCchPWZhbHNlKCkKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogJ2EnPTAuMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogJ2EnIT0wLjAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC9leHByL2Zsb2F0cyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL2V4cHIvZmxvYXRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MjU1Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC9leHByL2Zsb2F0cwpAQCAtMCwwICsxLDI0NCBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEKK09iamVjdCBpcyBhIG51bWJlciA6IDEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxMjMKK09iamVjdCBpcyBhIG51bWJlciA6IDEyMworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEuMjMKK09iamVjdCBpcyBhIG51bWJlciA6IDEuMjMKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwLjEyMworT2JqZWN0IGlzIGEgbnVtYmVyIDogMC4xMjMKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiA0LgorT2JqZWN0IGlzIGEgbnVtYmVyIDogNAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC40CitPYmplY3QgaXMgYSBudW1iZXIgOiAwLjQKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxLjIzZTMKK09iamVjdCBpcyBhIG51bWJlciA6IDEyMzAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxLjIzZS0zCitPYmplY3QgaXMgYSBudW1iZXIgOiAwLjAwMTIzCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgMAorT2JqZWN0IGlzIGEgbnVtYmVyIDogSW5maW5pdHkKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAtMSBkaXYgMAorT2JqZWN0IGlzIGEgbnVtYmVyIDogLUluZmluaXR5CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMCBkaXYgMAorT2JqZWN0IGlzIGEgbnVtYmVyIDogTmFOCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgLTAKK09iamVjdCBpcyBhIG51bWJlciA6IC1JbmZpbml0eQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICgxIGRpdiAwKSA+IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogKDEgZGl2IDApIDwgMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogKC0xIGRpdiAwKSA+IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICgtMSBkaXYgMCkgPCAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICgwIGRpdiAwKSA+IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICgwIGRpdiAwKSA8IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICgxIGRpdiAtMCkgPiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAoMSBkaXYgLTApIDwgMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwIGRpdiAwID0gMCBkaXYgMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMCBkaXYgMCAhPSAwIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDAgZGl2IDAgPiAwIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwIGRpdiAwIDwgMCBkaXYgMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMCBkaXYgMCA+PSAwIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAwIGRpdiAwIDw9IDAgZGl2IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IDAgPSAtMSBkaXYgMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgMCAhPSAtMSBkaXYgMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIGRpdiAwID4gLTEgZGl2IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgMCA8IC0xIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIGRpdiAwID49IC0xIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IDAgPD0gLTEgZGl2IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IDAgPSAxIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IDAgIT0gMSBkaXYgMAorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgMCA+IDEgZGl2IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IDAgPCAxIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogZmFsc2UKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIGRpdiAwID49IC0xIGRpdiAwCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IDAgPD0gLTEgZGl2IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC0yIGRpdiAwID0gLTEgZGl2IDAKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgZmxvb3IoMC4xKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogSW5maW5pdHkKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIGRpdiBmbG9vcigtMC4xKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLTEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIGRpdiBmbG9vcigtMCkKK09iamVjdCBpcyBhIG51bWJlciA6IC1JbmZpbml0eQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IGZsb29yKDApCitPYmplY3QgaXMgYSBudW1iZXIgOiBJbmZpbml0eQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IGNlaWxpbmcoMC4xKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogMQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IGNlaWxpbmcoLTAuMSkKK09iamVjdCBpcyBhIG51bWJlciA6IC1JbmZpbml0eQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IGNlaWxpbmcoLTApCitPYmplY3QgaXMgYSBudW1iZXIgOiAtSW5maW5pdHkKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIGRpdiBjZWlsaW5nKDApCitPYmplY3QgaXMgYSBudW1iZXIgOiBJbmZpbml0eQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IHJvdW5kKDAuMSkKK09iamVjdCBpcyBhIG51bWJlciA6IEluZmluaXR5CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgcm91bmQoLTAuMSkKK09iamVjdCBpcyBhIG51bWJlciA6IC1JbmZpbml0eQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDEgZGl2IHJvdW5kKC0wKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLUluZmluaXR5CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgcm91bmQoMCkKK09iamVjdCBpcyBhIG51bWJlciA6IEluZmluaXR5CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogMSBkaXYgbnVtYmVyKCdmJykKK09iamVjdCBpcyBhIG51bWJlciA6IE5hTgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IG51bWJlcignZicpIGRpdiAxCitPYmplY3QgaXMgYSBudW1iZXIgOiBOYU4KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAxIGRpdiAoMSBkaXYgMCkKK09iamVjdCBpcyBhIG51bWJlciA6IDAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAoMSBkaXYgMCkgZGl2IDEKK09iamVjdCBpcyBhIG51bWJlciA6IEluZmluaXR5CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLSgxIGRpdiAwKSBkaXYgMQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLUluZmluaXR5CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogNSBtb2QgMgorT2JqZWN0IGlzIGEgbnVtYmVyIDogMQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDUgbW9kIC0yCitPYmplY3QgaXMgYSBudW1iZXIgOiAxCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLTUgbW9kIDIKK09iamVjdCBpcyBhIG51bWJlciA6IC0xCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLTUgbW9kIC0yCitPYmplY3QgaXMgYSBudW1iZXIgOiAtMQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IDggbW9kIDMgPSAyCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvZXhwci9mdW5jdGlvbnMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC9leHByL2Z1bmN0aW9ucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGNjMjdlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvZXhwci9mdW5jdGlvbnMKQEAgLTAsMCArMSwxMDAgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB0cnVlKCkKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogZmFsc2UoKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogbnVtYmVyKCIxLjUiKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogMS41CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogbnVtYmVyKCdhYmMnKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogTmFOCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLW51bWJlcignYWJjJykKK09iamVjdCBpcyBhIG51bWJlciA6IE5hTgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGZsb29yKDAuMSkKK09iamVjdCBpcyBhIG51bWJlciA6IDAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBmbG9vcigtMC4xKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLTEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBmbG9vcigtMCkKK09iamVjdCBpcyBhIG51bWJlciA6IDAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBmbG9vcigwKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogMAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGZsb29yKDUuMikKK09iamVjdCBpcyBhIG51bWJlciA6IDUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBmbG9vcigtNS4yKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLTYKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBjZWlsaW5nKDAuMSkKK09iamVjdCBpcyBhIG51bWJlciA6IDEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBjZWlsaW5nKC0wLjEpCitPYmplY3QgaXMgYSBudW1iZXIgOiAwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogY2VpbGluZygtMCkKK09iamVjdCBpcyBhIG51bWJlciA6IDAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBjZWlsaW5nKDApCitPYmplY3QgaXMgYSBudW1iZXIgOiAwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogY2VpbGluZyg1LjIpCitPYmplY3QgaXMgYSBudW1iZXIgOiA2CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogY2VpbGluZygtNS4yKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLTUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiByb3VuZCgwLjEpCitPYmplY3QgaXMgYSBudW1iZXIgOiAwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogcm91bmQoNS4yKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogNQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHJvdW5kKDUuNSkKK09iamVjdCBpcyBhIG51bWJlciA6IDYKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiByb3VuZCg1LjYpCitPYmplY3QgaXMgYSBudW1iZXIgOiA2CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogcm91bmQoLTAuMSkKK09iamVjdCBpcyBhIG51bWJlciA6IDAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiByb3VuZCgtNS4yKQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLTUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiByb3VuZCgtNS41KQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLTUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiByb3VuZCgtNS42KQorT2JqZWN0IGlzIGEgbnVtYmVyIDogLTYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL2V4cHIvc3RyaW5ncyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL2V4cHIvc3RyaW5ncwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWQ3MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvZXhwci9zdHJpbmdzCkBAIC0wLDAgKzEsMTM2IEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3RyaW5nKDUpCitPYmplY3QgaXMgYSBzdHJpbmcgOiA1CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3RyaW5nKDAuNSkKK09iamVjdCBpcyBhIHN0cmluZyA6IDAuNQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHN0cmluZygtMC41KQorT2JqZWN0IGlzIGEgc3RyaW5nIDogLTAuNQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHN0cmluZyh0cnVlKCkpCitPYmplY3QgaXMgYSBzdHJpbmcgOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3RyaW5nKGZhbHNlKCkpCitPYmplY3QgaXMgYSBzdHJpbmcgOiBmYWxzZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGNvbmNhdCgidGl0aSIsInRvdG8iKQorT2JqZWN0IGlzIGEgc3RyaW5nIDogdGl0aXRvdG8KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBjb25jYXQoInRpdGkiLCJ0b3RvIiwidGF0YSIpCitPYmplY3QgaXMgYSBzdHJpbmcgOiB0aXRpdG90b3RhdGEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBjb25jYXQoInRpdGkiLCd0b3RvJykKK09iamVjdCBpcyBhIHN0cmluZyA6IHRpdGl0b3RvCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogY29uY2F0KCJ0aXRpIiwndG90bycsInRhdGEiLCJsYXN0IikKK09iamVjdCBpcyBhIHN0cmluZyA6IHRpdGl0b3RvdGF0YWxhc3QKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzdGFydHMtd2l0aCgidGl0aXRvdG8iLCJ0aXRpIikKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3RhcnRzLXdpdGgoInRpdGl0b3RvIiwidG8iKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogY29udGFpbnMoInRpdGl0b3RvdGF0YSIsInRpdGkiKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IHRydWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBjb250YWlucygidGl0aXRvdG90YXRhIiwidG90byIpCitPYmplY3QgaXMgYSBCb29sZWFuIDogdHJ1ZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGNvbnRhaW5zKCJ0aXRpdG90b3RhdGEiLCJ0YXRhIikKK09iamVjdCBpcyBhIEJvb2xlYW4gOiB0cnVlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogY29udGFpbnMoInRpdGl0b3RvdGF0YSIsInRpdGEiKQorT2JqZWN0IGlzIGEgQm9vbGVhbiA6IGZhbHNlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsMiwzKQorT2JqZWN0IGlzIGEgc3RyaW5nIDogMjM0CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsMikKK09iamVjdCBpcyBhIHN0cmluZyA6IDIzNDUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzdWJzdHJpbmcoIjEyMzQ1IiwtNCkKK09iamVjdCBpcyBhIHN0cmluZyA6IDEyMzQ1CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsMy40KQorT2JqZWN0IGlzIGEgc3RyaW5nIDogMzQ1CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsMy42KQorT2JqZWN0IGlzIGEgc3RyaW5nIDogNDUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzdWJzdHJpbmcoIjEyMzQ1IiwxLjUsMi42KQorT2JqZWN0IGlzIGEgc3RyaW5nIDogMjM0CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsMi4yLDIuMikKK09iamVjdCBpcyBhIHN0cmluZyA6IDIzCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsMCwzKQorT2JqZWN0IGlzIGEgc3RyaW5nIDogMTIKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzdWJzdHJpbmcoIjEyMzQ1IiwtOCwxMCkKK09iamVjdCBpcyBhIHN0cmluZyA6IDEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzdWJzdHJpbmcoIjEyMzQ1Iiw0LC0xMCkKK09iamVjdCBpcyBhIHN0cmluZyA6IAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHN1YnN0cmluZygiMTIzNDUiLDAgZGl2IDAsIDMpCitPYmplY3QgaXMgYSBzdHJpbmcgOiAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzdWJzdHJpbmcoIjEyMzQ1IiwxLCAwIGRpdiAwKQorT2JqZWN0IGlzIGEgc3RyaW5nIDogCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsMSBkaXYgMCwgMykKK09iamVjdCBpcyBhIHN0cmluZyA6IAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHN1YnN0cmluZygiMTIzNDUiLDMsLTEgZGl2IDApCitPYmplY3QgaXMgYSBzdHJpbmcgOiAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzdWJzdHJpbmcoIjEyMzQ1IiwtNDIsIDEgZGl2IDApCitPYmplY3QgaXMgYSBzdHJpbmcgOiAxMjM0NQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHN1YnN0cmluZygiMTIzNDUiLC0xIGRpdiAwLCAxIGRpdiAwKQorT2JqZWN0IGlzIGEgc3RyaW5nIDogCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3Vic3RyaW5nKCIxMjM0NSIsLTEgZGl2IDAsNSkKK09iamVjdCBpcyBhIHN0cmluZyA6IAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHN0cmluZy1sZW5ndGgoIiIpCitPYmplY3QgaXMgYSBudW1iZXIgOiAwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3RyaW5nLWxlbmd0aCgidGl0aSIpCitPYmplY3QgaXMgYSBudW1iZXIgOiA0CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC90ZXN0cy9jaGFwdGVyc2Jhc2UgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC90ZXN0cy9jaGFwdGVyc2Jhc2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNjNjU2NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL2NoYXB0ZXJzYmFzZQpAQCAtMCwwICsxLDExNSBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9jaGlsZDo6RVhBTVBMRQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIEVYQU1QTEUKKyAgICBBVFRSSUJVVEUgcHJvcDEKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1nbm9tZSBpcyBncmVhdAorICAgIEFUVFJJQlVURSBwcm9wMgorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PSYgbGludXggdG9vCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2NoaWxkOjoqCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgRVhBTVBMRQorICAgIEFUVFJJQlVURSBwcm9wMQorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWdub21lIGlzIGdyZWF0CisgICAgQVRUUklCVVRFIHByb3AyCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9JiBsaW51eCB0b28KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBoZWFkCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2NoaWxkOjpFWEFNUExFL2NoaWxkOjoqCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgNiBub2RlczoKKzEgIEVMRU1FTlQgaGVhZAorMiAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjEKKzMgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXIyCis0ICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyMworNSAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjQKKzYgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXI1CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpoZWFkL2NoaWxkOjp0aXRsZQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIHRpdGxlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpoZWFkL2NoaWxkOjp0aXRsZS9jaGlsZDo6dGV4dCgpCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIFRFWFQKKyAgICBjb250ZW50PVdlbGNvbWUgdG8gR25vbWUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQvbm9kZSgpCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMyBub2RlczoKKzEgIFRFWFQKKyAgICBjb250ZW50PSAgICAKKzIgIEVMRU1FTlQgdGl0bGUKKzMgIFRFWFQKKyAgICBjb250ZW50PSAgIAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9kZXNjZW5kYW50Ojp0aXRsZQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDYgbm9kZXM6CisxICBFTEVNRU5UIHRpdGxlCisyICBFTEVNRU5UIHRpdGxlCiszICBFTEVNRU5UIHRpdGxlCis0ICBFTEVNRU5UIHRpdGxlCis1ICBFTEVNRU5UIHRpdGxlCis2ICBFTEVNRU5UIHRpdGxlCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2Rlc2NlbmRhbnQ6OnAvYW5jZXN0b3I6OmNoYXB0ZXIKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyA1IG5vZGVzOgorMSAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjEKKzIgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXIyCiszICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyMworNCAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjQKKzUgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXI1CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC90ZXN0cy9jaGFwdGVyc3ByZWZvbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL2NoYXB0ZXJzcHJlZm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMmM5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC90ZXN0cy9jaGFwdGVyc3ByZWZvbApAQCAtMCwwICsxLDEwMCBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9mb2xsb3dpbmc6OioKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAwIG5vZGVzOgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9wcmVjZWRpbmc6OioKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAwIG5vZGVzOgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9jaGlsZDo6RVhBTVBMRS9wcmVjZWRpbmc6OioKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAwIG5vZGVzOgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9jaGlsZDo6RVhBTVBMRS9mb2xsb3dpbmc6OioKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAwIG5vZGVzOgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6Y2hhcHRlclszXS9wcmVjZWRpbmc6OioKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxMCBub2RlczoKKzEgIEVMRU1FTlQgaGVhZAorMiAgRUxFTUVOVCB0aXRsZQorMyAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjEKKzQgIEVMRU1FTlQgdGl0bGUKKzUgIEVMRU1FTlQgcAorNiAgRUxFTUVOVCBpbWFnZQorICAgIEFUVFJJQlVURSBocmVmCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9bGludXMuZ2lmCis3ICBFTEVNRU5UIHAKKzggIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXIyCis5ICBFTEVNRU5UIHRpdGxlCisxMCAgRUxFTUVOVCBwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpjaGFwdGVyWzNdL2ZvbGxvd2luZzo6KgorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDYgbm9kZXM6CisxICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyNAorMiAgRUxFTUVOVCB0aXRsZQorMyAgRUxFTUVOVCBwCis0ICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyNQorNSAgRUxFTUVOVCB0aXRsZQorNiAgRUxFTUVOVCBwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpjaGFwdGVyWzFdL2ltYWdlL3ByZWNlZGluZzo6KgorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDQgbm9kZXM6CisxICBFTEVNRU5UIGhlYWQKKzIgIEVMRU1FTlQgdGl0bGUKKzMgIEVMRU1FTlQgdGl0bGUKKzQgIEVMRU1FTlQgcAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6Y2hhcHRlclsxXS9pbWFnZS9mb2xsb3dpbmc6OioKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxMyBub2RlczoKKzEgIEVMRU1FTlQgcAorMiAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjIKKzMgIEVMRU1FTlQgdGl0bGUKKzQgIEVMRU1FTlQgcAorNSAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjMKKzYgIEVMRU1FTlQgdGl0bGUKKzcgIEVMRU1FTlQgcAorOCAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjQKKzkgIEVMRU1FTlQgdGl0bGUKKzEwICBFTEVNRU5UIHAKKzExICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyNQorMTIgIEVMRU1FTlQgdGl0bGUKKzEzICBFTEVNRU5UIHAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL2lkc2ltcGxlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvaWRzaW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkxYjUyZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL2lkc2ltcGxlCkBAIC0wLDAgKzEsMzMgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvLypbQGlkPSJyb290Il0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBFWEFNUExFCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9cm9vdAorICAgIEFUVFJJQlVURSBwcm9wMQorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWdub21lIGlzIGdyZWF0CisgICAgQVRUUklCVVRFIHByb3AyCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9JiBsaW51eCB0b28KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvLypbQGlkPSJjaGFwdGVyMiJdCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXIyCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLy8qW0BpZD0iY2hhcHRlcjUiXQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyNQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvbGFuZ3NpbXBsZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL2xhbmdzaW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhkN2FmZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL2xhbmdzaW1wbGUKQEAgLTAsMCArMSw2MCBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC8vKltsYW5nKCdlbicpXQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDkgbm9kZXM6CisxICBFTEVNRU5UIGIKKyAgICBBVFRSSUJVVEUgbGFuZworICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWVuCisyICBFTEVNRU5UIHgKKzMgIEVMRU1FTlQgeAorNCAgRUxFTUVOVCBwYXJhCisgICAgQVRUUklCVVRFIGxhbmcKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1lbgorNSAgRUxFTUVOVCBkaXYKKyAgICBBVFRSSUJVVEUgbGFuZworICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWVuCis2ICBFTEVNRU5UIHBhcmEKKzcgIEVMRU1FTlQgcGFyYQorICAgIEFUVFJJQlVURSBsYW5nCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9RU4KKzggIEVMRU1FTlQgcGFyYQorICAgIEFUVFJJQlVURSBsYW5nCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9ZW4tdXMKKzkgIEVMRU1FTlQgcGFyYQorICAgIEFUVFJJQlVURSBsYW5nCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9RU4tVVMKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvLypbbGFuZygnZW4tdXMnKV0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAyIG5vZGVzOgorMSAgRUxFTUVOVCBwYXJhCisgICAgQVRUUklCVVRFIGxhbmcKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1lbi11cworMiAgRUxFTUVOVCBwYXJhCisgICAgQVRUUklCVVRFIGxhbmcKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1FTi1VUworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC8vKltsYW5nKCdlbi1nYicpXQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDAgbm9kZXM6CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLy8qW2xhbmcoJ2ZyJyldCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMCBub2RlczoKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvLypbbGFuZygnJyldCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMCBub2RlczoKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL21peGVkcGF0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvbWl4ZWRwYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JlMGM0OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL21peGVkcGF0CkBAIC0wLDAgKzEsMTAxIEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogcworT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIHMKKyAgICBBVFRSSUJVVEUgcAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PXJvb3QKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBzfHAxL3MKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAyIG5vZGVzOgorMSAgRUxFTUVOVCBzCisgICAgQVRUUklCVVRFIHAKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1yb290CisyICBFTEVNRU5UIHMKKyAgICBBVFRSSUJVVEUgcAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PXAxCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogc3wvcm9vdC9wMS9zCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMiBub2RlczoKKzEgIEVMRU1FTlQgcworICAgIEFUVFJJQlVURSBwCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9cm9vdAorMiAgRUxFTUVOVCBzCisgICAgQVRUUklCVVRFIHAKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1wMQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9yb290L3AxL3N8cworT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDIgbm9kZXM6CisxICBFTEVNRU5UIHMKKyAgICBBVFRSSUJVVEUgcAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PXJvb3QKKzIgIEVMRU1FTlQgcworICAgIEFUVFJJQlVURSBwCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9cDEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvL3MKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAzIG5vZGVzOgorMSAgRUxFTUVOVCBzCisgICAgQVRUUklCVVRFIHAKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1yb290CisyICBFTEVNRU5UIHMKKyAgICBBVFRSSUJVVEUgcAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PXAxCiszICBFTEVNRU5UIHMKKyAgICBBVFRSSUJVVEUgcAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PXAyCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLy9zfHAxCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgNCBub2RlczoKKzEgIEVMRU1FTlQgcworICAgIEFUVFJJQlVURSBwCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9cm9vdAorMiAgRUxFTUVOVCBwMQorMyAgRUxFTUVOVCBzCisgICAgQVRUUklCVVRFIHAKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1wMQorNCAgRUxFTUVOVCBzCisgICAgQVRUUklCVVRFIHAKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1wMgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHAxfC8vcworT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDQgbm9kZXM6CisxICBFTEVNRU5UIHMKKyAgICBBVFRSSUJVVEUgcAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PXJvb3QKKzIgIEVMRU1FTlQgcDEKKzMgIEVMRU1FTlQgcworICAgIEFUVFJJQlVURSBwCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9cDEKKzQgIEVMRU1FTlQgcworICAgIEFUVFJJQlVURSBwCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9cDIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL25vZGVzcGF0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvbm9kZXNwYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVmZDg3ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL25vZGVzcGF0CkBAIC0wLDAgKzEsOTQgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvLgorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICAgLworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC8vLgorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEyIG5vZGVzOgorMSAgIC8KKzIgIEVMRU1FTlQgcm9vdAorMyAgRUxFTUVOVCBmb28KKzQgIFRFWFQKKyAgICBjb250ZW50PXR4dAorNSAgQ09NTUVOVAorICAgIGNvbnRlbnQ9aGVsbG8KKzYgIENEQVRBX1NFQ1RJT04KKyAgICBjb250ZW50PWRhdGEKKzcgIFBJIHRhcmdldAorICAgIGNvbnRlbnQ9ZGF0YQorOCAgRUxFTUVOVCBiYXIKKzkgIFRFWFQKKyAgICBjb250ZW50PXR4dAorMTAgIENPTU1FTlQKKyAgICBjb250ZW50PWhlbGxvCisxMSAgQ0RBVEFfU0VDVElPTgorICAgIGNvbnRlbnQ9ZGF0YQorMTIgIFBJIHRhcmdldAorICAgIGNvbnRlbnQ9ZGF0YQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9yb290Ly8uCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMTEgbm9kZXM6CisxICBFTEVNRU5UIHJvb3QKKzIgIEVMRU1FTlQgZm9vCiszICBURVhUCisgICAgY29udGVudD10eHQKKzQgIENPTU1FTlQKKyAgICBjb250ZW50PWhlbGxvCis1ICBDREFUQV9TRUNUSU9OCisgICAgY29udGVudD1kYXRhCis2ICBQSSB0YXJnZXQKKyAgICBjb250ZW50PWRhdGEKKzcgIEVMRU1FTlQgYmFyCis4ICBURVhUCisgICAgY29udGVudD10eHQKKzkgIENPTU1FTlQKKyAgICBjb250ZW50PWhlbGxvCisxMCAgQ0RBVEFfU0VDVElPTgorICAgIGNvbnRlbnQ9ZGF0YQorMTEgIFBJIHRhcmdldAorICAgIGNvbnRlbnQ9ZGF0YQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC8vLi8vLi8uLy4vLy4KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxMiBub2RlczoKKzEgICAvCisyICBFTEVNRU5UIHJvb3QKKzMgIEVMRU1FTlQgZm9vCis0ICBURVhUCisgICAgY29udGVudD10eHQKKzUgIENPTU1FTlQKKyAgICBjb250ZW50PWhlbGxvCis2ICBDREFUQV9TRUNUSU9OCisgICAgY29udGVudD1kYXRhCis3ICBQSSB0YXJnZXQKKyAgICBjb250ZW50PWRhdGEKKzggIEVMRU1FTlQgYmFyCis5ICBURVhUCisgICAgY29udGVudD10eHQKKzEwICBDT01NRU5UCisgICAgY29udGVudD1oZWxsbworMTEgIENEQVRBX1NFQ1RJT04KKyAgICBjb250ZW50PWRhdGEKKzEyICBQSSB0YXJnZXQKKyAgICBjb250ZW50PWRhdGEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvcm9vdC8vLi8uLy9iYXIvLy4KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyA1IG5vZGVzOgorMSAgRUxFTUVOVCBiYXIKKzIgIFRFWFQKKyAgICBjb250ZW50PXR4dAorMyAgQ09NTUVOVAorICAgIGNvbnRlbnQ9aGVsbG8KKzQgIENEQVRBX1NFQ1RJT04KKyAgICBjb250ZW50PWRhdGEKKzUgIFBJIHRhcmdldAorICAgIGNvbnRlbnQ9ZGF0YQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvc2ltcGxlYWJiciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL3NpbXBsZWFiYnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVkYTQxYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL3NpbXBsZWFiYnIKQEAgLTAsMCArMSw4MSBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9FWEFNUExFCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgRVhBTVBMRQorICAgIEFUVFJJQlVURSBwcm9wMQorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWdub21lIGlzIGdyZWF0CisgICAgQVRUUklCVVRFIHByb3AyCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9JiBsaW51eCB0b28KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvRVhBTVBMRS9oZWFkCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgaGVhZAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9FWEFNUExFL2NoYXB0ZXJbMV0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBjaGFwdGVyCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLy9wCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMiBub2RlczoKKzEgIEVMRU1FTlQgcAorMiAgRUxFTUVOVCBwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogLy9jaGFwdGVyL2ltYWdlCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgaW1hZ2UKKyAgICBBVFRSSUJVVEUgaHJlZgorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWxpbnVzLmdpZgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC8vcC90ZXh0KCkKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAyIG5vZGVzOgorMSAgVEVYVAorICAgIGNvbnRlbnQ9YmxhIGJsYSBibGEgLi4uCisyICBURVhUCisgICAgY29udGVudD0uLi4KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvL3AvdGV4dCgpW3Bvc2l0aW9uKCk9MV0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAyIG5vZGVzOgorMSAgVEVYVAorICAgIGNvbnRlbnQ9YmxhIGJsYSBibGEgLi4uCisyICBURVhUCisgICAgY29udGVudD0uLi4KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvL3AvdGV4dCgpW3Bvc2l0aW9uKCk9bGFzdCgpXQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDIgbm9kZXM6CisxICBURVhUCisgICAgY29udGVudD1ibGEgYmxhIGJsYSAuLi4KKzIgIFRFWFQKKyAgICBjb250ZW50PS4uLgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICgvL3AvdGV4dCgpKVtwb3NpdGlvbigpPTFdCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIFRFWFQKKyAgICBjb250ZW50PWJsYSBibGEgYmxhIC4uLgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246ICgvL3AvdGV4dCgpKVtwb3NpdGlvbigpPWxhc3QoKV0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgVEVYVAorICAgIGNvbnRlbnQ9Li4uCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC90ZXN0cy9zaW1wbGViYXNlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvc2ltcGxlYmFzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGZhMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvc2ltcGxlYmFzZQpAQCAtMCwwICsxLDczIEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2NoaWxkOjoqCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgRVhBTVBMRQorICAgIEFUVFJJQlVURSBwcm9wMQorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWdub21lIGlzIGdyZWF0CisgICAgQVRUUklCVVRFIHByb3AyCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9JiBsaW51eCB0b28KKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvY2hpbGQ6OkVYQU1QTEUKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBFWEFNUExFCisgICAgQVRUUklCVVRFIHByb3AxCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Z25vbWUgaXMgZ3JlYXQKKyAgICBBVFRSSUJVVEUgcHJvcDIKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD0mIGxpbnV4IHRvbworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6aGVhZAorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGhlYWQKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OioKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAyIG5vZGVzOgorMSAgRUxFTUVOVCBoZWFkCisyICBFTEVNRU5UIGNoYXB0ZXIKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQvY2hpbGQ6OnRpdGxlCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgdGl0bGUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQvY2hpbGQ6OnRpdGxlL2NoaWxkOjp0ZXh0KCkKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgVEVYVAorICAgIGNvbnRlbnQ9V2VsY29tZSB0byBHbm9tZQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IC9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6aGVhZC9ub2RlKCkKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAzIG5vZGVzOgorMSAgVEVYVAorICAgIGNvbnRlbnQ9ICAgIAorMiAgRUxFTUVOVCB0aXRsZQorMyAgVEVYVAorICAgIGNvbnRlbnQ9ICAgCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogL2Rlc2NlbmRhbnQ6OnRpdGxlCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMiBub2RlczoKKzEgIEVMRU1FTlQgdGl0bGUKKzIgIEVMRU1FTlQgdGl0bGUKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvZGVzY2VuZGFudDo6cC9hbmNlc3Rvcjo6Y2hhcHRlcgorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGNoYXB0ZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL3VzcjFjaGVjayBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3Rlc3RzL3VzcjFjaGVjawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzA4OTkxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvdXNyMWNoZWNrCkBAIC0wLDAgKzEsMTIgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvL0lURU1bMV0KK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBJVEVNCisgICAgQVRUUklCVVRFIG1vbnRvCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9NTAuMTIKKyAgICBBVFRSSUJVVEUgZGl2aXNhCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9RE9MCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC90ZXN0cy92aWRiYXNlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvdmlkYmFzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzdiNjJmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgvdGVzdHMvdmlkYmFzZQpAQCAtMCwwICsxLDQyIEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogaWQoJ2NoYXB0ZXIxJykKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBpZCgnY2hhcHRlcjMnKQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyMworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGlkKCdjaGFwdGVyMScpL3AKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyA0IG5vZGVzOgorMSAgRUxFTUVOVCBwCisyICBFTEVNRU5UIHAKKzMgIEVMRU1FTlQgcAorNCAgRUxFTUVOVCBwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogaWQoJ2NoYXB0ZXIxJykvL3AKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyA0IG5vZGVzOgorMSAgRUxFTUVOVCBwCisyICBFTEVNRU5UIHAKKzMgIEVMRU1FTlQgcAorNCAgRUxFTUVOVCBwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogaWQoJ2NoYXB0ZXIxJykvcFsxXQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIHAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvY2hhcHRlcnNjaGlsZHNlcSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvY2hhcHRlcnNjaGlsZHNlcQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTZiY2FjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgveHB0ci9jaGFwdGVyc2NoaWxkc2VxCkBAIC0wLDAgKzEsNTMgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvMS8yLzMKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBpbWFnZQorICAgIEFUVFJJQlVURSBocmVmCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9bGludXMuZ2lmCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogZWxlbWVudCgvMS8yLzMpCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgaW1hZ2UKKyAgICBBVFRSSUJVVEUgaHJlZgorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWxpbnVzLmdpZgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGVsZW1lbnQoZm9vKWVsZW1lbnQoLzEvMi8zKQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGltYWdlCisgICAgQVRUUklCVVRFIGhyZWYKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1saW51cy5naWYKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBlbGVtZW50KC8xLzIvMyllbGVtZW50KGZvbykKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBpbWFnZQorICAgIEFUVFJJQlVURSBocmVmCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9bGludXMuZ2lmCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogY2hhcHRlcjEvMworT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDAgbm9kZXM6CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogZWxlbWVudChjaGFwdGVyMS8zKQorT2JqZWN0IGlzIGVtcHR5IChOVUxMKQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGVsZW1lbnQoZm9vKWVsZW1lbnQoY2hhcHRlcjEvMykKK09iamVjdCBpcyBlbXB0eSAoTlVMTCkKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiBlbGVtZW50KGNoYXB0ZXIxLzMpZWxlbWVudChmb28pCitPYmplY3QgaXMgZW1wdHkgKE5VTEwpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL2NoYXB0ZXJzcGFydHMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL2NoYXB0ZXJzcGFydHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBiNTYxYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvY2hhcHRlcnNwYXJ0cwpAQCAtMCwwICsxLDQ0IEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoLy9jaGFwaXRyZVsyXSkKK09iamVjdCBpcyBlbXB0eSAoTlVMTCkKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcigvL2NoYXB0ZXJbMl0pCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXIyCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoLy9jaGFwaXRyZVsyXSl4cG9pbnRlcigvL2NoYXB0ZXJbMl0pCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXIyCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoaWQoImNoYXB0ZXIxIikpCitPYmplY3QgaXMgZW1wdHkgKE5VTEwpCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoLy8qW0BpZD0iY2hhcHRlcjEiXSkKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihpZCgiY2hhcHRlcjEiKSl4cG9pbnRlcigvLypbQGlkPSJjaGFwdGVyMSJdKQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgveHB0ci9jaGFwdGVyc3JhbmdlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgveHB0ci9jaGFwdGVyc3JhbmdlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYjljZGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL2NoYXB0ZXJzcmFuZ2UKQEAgLTAsMCArMSw2NCBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKC8vY2hhcHRlcltwb3NpdGlvbigpID0gMl0vcmFuZ2UtdG8oZm9sbG93aW5nOjpjaGFwdGVyWzFdKSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIHJhbmdlIDoKKyAgRnJvbSBub2RlCisgICAgRUxFTUVOVCBjaGFwdGVyCisgICAgICBBVFRSSUJVVEUgaWQKKyAgICAgICAgVEVYVAorICAgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjIKKyAgVG8gbm9kZQorICAgIEVMRU1FTlQgY2hhcHRlcgorICAgICAgQVRUUklCVVRFIGlkCisgICAgICAgIFRFWFQKKyAgICAgICAgICBjb250ZW50PWNoYXB0ZXIzCisKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcigvL2NoYXB0ZXJbcG9zaXRpb24oKSA8PSAyXS9yYW5nZS10byhmb2xsb3dpbmc6OmNoYXB0ZXJbMV0pKQorT2JqZWN0IGlzIGEgTG9jYXRpb24gU2V0OgorMSA6ICAgT2JqZWN0IGlzIGEgcmFuZ2UgOgorICBGcm9tIG5vZGUKKyAgICBFTEVNRU5UIGNoYXB0ZXIKKyAgICAgIEFUVFJJQlVURSBpZAorICAgICAgICBURVhUCisgICAgICAgICAgY29udGVudD1jaGFwdGVyMQorICBUbyBub2RlCisgICAgRUxFTUVOVCBjaGFwdGVyCisgICAgICBBVFRSSUJVVEUgaWQKKyAgICAgICAgVEVYVAorICAgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjIKKworMiA6ICAgT2JqZWN0IGlzIGEgcmFuZ2UgOgorICBGcm9tIG5vZGUKKyAgICBFTEVNRU5UIGNoYXB0ZXIKKyAgICAgIEFUVFJJQlVURSBpZAorICAgICAgICBURVhUCisgICAgICAgICAgY29udGVudD1jaGFwdGVyMgorICBUbyBub2RlCisgICAgRUxFTUVOVCBjaGFwdGVyCisgICAgICBBVFRSSUJVVEUgaWQKKyAgICAgICAgVEVYVAorICAgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjMKKworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKC8vY2hhcHRlcltwb3NpdGlvbigpID0gbGFzdCgpXS9yYW5nZS10byhmb2xsb3dpbmc6OmNoYXB0ZXJbMV0pKQorT2JqZWN0IGlzIGVtcHR5IChOVUxMKQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKC8vY2hhcHRlcltwb3NpdGlvbigpID0gM10vcmFuZ2UtdG8oLy4vL2NoYXB0ZXJbcG9zaXRpb24oKSA9IDFdKSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIHJhbmdlIDoKKyAgRnJvbSBub2RlCisgICAgRUxFTUVOVCBjaGFwdGVyCisgICAgICBBVFRSSUJVVEUgaWQKKyAgICAgICAgVEVYVAorICAgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjEKKyAgVG8gbm9kZQorICAgIEVMRU1FTlQgY2hhcHRlcgorICAgICAgQVRUUklCVVRFIGlkCisgICAgICAgIFRFWFQKKyAgICAgICAgICBjb250ZW50PWNoYXB0ZXIzCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvc3RycG9pbnQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3N0cnBvaW50Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2ZWNhYjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3N0cnBvaW50CkBAIC0wLDAgKzEsNzUgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihzdGFydC1wb2ludChzdHJpbmctcmFuZ2UoLy9wLCdtdWx0aXBsZScpKSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggMSBpbiBub2RlICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9bXVsdGlwbGUgdGVzdHMKKworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKGVuZC1wb2ludChzdHJpbmctcmFuZ2UoLy9wLCdtdWx0aXBsZScpKSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggOCBpbiBub2RlICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9bXVsdGlwbGUgdGVzdHMKKworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKHN0YXJ0LXBvaW50KHN0cmluZy1yYW5nZSgvL3AsJ3Rlc3QnKSkpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSBwb2ludCA6IGluZGV4IDEwIGluIG5vZGUgICAgVEVYVAorICAgICAgY29udGVudD1hIHNpbXBsZSB0ZXN0CisKKzIgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggMTAgaW4gbm9kZSAgICBURVhUCisgICAgICBjb250ZW50PW11bHRpcGxlIHRlc3RzCisKKzMgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggNyBpbiBub2RlICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YW5jZWQgdGVzdAorCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoZW5kLXBvaW50KHN0cmluZy1yYW5nZSgvL3AsJ3Rlc3QnKSkpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSBwb2ludCA6IGluZGV4IDEzIGluIG5vZGUgICAgVEVYVAorICAgICAgY29udGVudD1hIHNpbXBsZSB0ZXN0CisKKzIgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggMTMgaW4gbm9kZSAgICBURVhUCisgICAgICBjb250ZW50PW11bHRpcGxlIHRlc3RzCisKKzMgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggMTAgaW4gbm9kZSAgICBURVhUCisgICAgICBjb250ZW50PWFuY2VkIHRlc3QKKworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKHN0YXJ0LXBvaW50KHN0cmluZy1yYW5nZSgvLyosJ211bHRpcGxlJywxLDApKSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggMSBpbiBub2RlICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9bXVsdGlwbGUgdGVzdHMKKworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKGVuZC1wb2ludChzdHJpbmctcmFuZ2UoLy8qLCdtdWx0aXBsZScsMSwwKSkpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSBwb2ludCA6IGluZGV4IDEgaW4gbm9kZSAgICBURVhUCisgICAgICBjb250ZW50PW11bHRpcGxlIHRlc3RzCisKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihzdGFydC1wb2ludChzdHJpbmctcmFuZ2UoLy8qLCdtdWx0aXBsZScsMSwxKSkpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSBwb2ludCA6IGluZGV4IDEgaW4gbm9kZSAgICBURVhUCisgICAgICBjb250ZW50PW11bHRpcGxlIHRlc3RzCisKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihlbmQtcG9pbnQoc3RyaW5nLXJhbmdlKC8vKiwnbXVsdGlwbGUnLDEsMSkpKQorT2JqZWN0IGlzIGEgTG9jYXRpb24gU2V0OgorMSA6ICAgT2JqZWN0IGlzIGEgcG9pbnQgOiBpbmRleCAyIGluIG5vZGUgICAgVEVYVAorICAgICAgY29udGVudD1tdWx0aXBsZSB0ZXN0cworCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoc3RhcnQtcG9pbnQoc3RyaW5nLXJhbmdlKC8vcCwndGVzdCcpKVsxXSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIHBvaW50IDogaW5kZXggMTAgaW4gbm9kZSAgICBURVhUCisgICAgICBjb250ZW50PWEgc2ltcGxlIHRlc3QKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgveHB0ci9zdHJyYW5nZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvc3RycmFuZ2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE0ZWQ5MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvc3RycmFuZ2UKQEAgLTAsMCArMSw5NiBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKHN0cmluZy1yYW5nZSgvL3AsICdzaW1wbGUnKSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIHJhbmdlIDoKKyAgRnJvbSBpbmRleCAzIGluIG5vZGUKKyAgICBURVhUCisgICAgICBjb250ZW50PWEgc2ltcGxlIHRlc3QKKyAgVG8gaW5kZXggOCBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hIHNpbXBsZSB0ZXN0CisKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAndGVzdCcpKQorT2JqZWN0IGlzIGEgTG9jYXRpb24gU2V0OgorMSA6ICAgT2JqZWN0IGlzIGEgcmFuZ2UgOgorICBGcm9tIGluZGV4IDEwIGluIG5vZGUKKyAgICBURVhUCisgICAgICBjb250ZW50PWEgc2ltcGxlIHRlc3QKKyAgVG8gaW5kZXggMTMgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YSBzaW1wbGUgdGVzdAorCisyIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gaW5kZXggMTAgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9bXVsdGlwbGUgdGVzdHMKKyAgVG8gaW5kZXggMTMgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9bXVsdGlwbGUgdGVzdHMKKworMyA6ICAgT2JqZWN0IGlzIGEgcmFuZ2UgOgorICBGcm9tIGluZGV4IDcgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YW5jZWQgdGVzdAorICBUbyBpbmRleCAxMCBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hbmNlZCB0ZXN0CisKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAnZGlmZmljdWx0JykpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gaW5kZXggMyBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hIGRpZmYKKyAgVG8gaW5kZXggNCBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1jdWx0IG9uZQorCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vcCwgJ3NwYW5uaW5nJykpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gaW5kZXggMyBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hIHNwYW4KKyAgVG8gaW5kZXggMyBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1pbmcgb25lCisKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAndW5iYWxhbmNlZCcpKQorT2JqZWN0IGlzIGEgTG9jYXRpb24gU2V0OgorMSA6ICAgT2JqZWN0IGlzIGEgcmFuZ2UgOgorICBGcm9tIGluZGV4IDggaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YW5kIGFuIHVuYmFsCisgIFRvIGluZGV4IDUgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YW5jZWQgdGVzdAorCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vc2VxLCAnJykpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSBjb2xsYXBzZWQgcmFuZ2UgOgorICBpbmRleCAxIGluIG5vZGUKKyAgICBURVhUCisgICAgICBjb250ZW50PTEyMworMiA6ICAgT2JqZWN0IGlzIGEgY29sbGFwc2VkIHJhbmdlIDoKKyAgaW5kZXggMiBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD0xMjMKKzMgOiAgIE9iamVjdCBpcyBhIGNvbGxhcHNlZCByYW5nZSA6CisgIGluZGV4IDMgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9MTIzCis0IDogICBPYmplY3QgaXMgYSBjb2xsYXBzZWQgcmFuZ2UgOgorICBpbmRleCA0IGluIG5vZGUKKyAgICBURVhUCisgICAgICBjb250ZW50PTEyMwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgveHB0ci9zdHJyYW5nZTIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3N0cnJhbmdlMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTZlZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgveHB0ci9zdHJyYW5nZTIKQEAgLTAsMCArMSw2NCBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKHN0cmluZy1yYW5nZSgvL3AsICd0ZXN0JywgMikpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gaW5kZXggMTEgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YSBzaW1wbGUgdGVzdAorICBUbyBpbmRleCAxMyBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hIHNpbXBsZSB0ZXN0CisKKzIgOiAgIE9iamVjdCBpcyBhIHJhbmdlIDoKKyAgRnJvbSBpbmRleCAxMSBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1tdWx0aXBsZSB0ZXN0cworICBUbyBpbmRleCAxMyBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1tdWx0aXBsZSB0ZXN0cworCiszIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gaW5kZXggOCBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hbmNlZCB0ZXN0CisgIFRvIGluZGV4IDEwIGluIG5vZGUKKyAgICBURVhUCisgICAgICBjb250ZW50PWFuY2VkIHRlc3QKKworCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKHN0cmluZy1yYW5nZSgvL3AsICd0ZXN0JywgMiwgMikpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gaW5kZXggMTEgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YSBzaW1wbGUgdGVzdAorICBUbyBpbmRleCAxMiBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hIHNpbXBsZSB0ZXN0CisKKzIgOiAgIE9iamVjdCBpcyBhIHJhbmdlIDoKKyAgRnJvbSBpbmRleCAxMSBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1tdWx0aXBsZSB0ZXN0cworICBUbyBpbmRleCAxMiBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1tdWx0aXBsZSB0ZXN0cworCiszIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gaW5kZXggOCBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hbmNlZCB0ZXN0CisgIFRvIGluZGV4IDkgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YW5jZWQgdGVzdAorCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vcCwgJ2RpZmZpY3VsdCcsIDEsIDApKQorT2JqZWN0IGlzIGEgTG9jYXRpb24gU2V0OgorMSA6ICAgT2JqZWN0IGlzIGEgY29sbGFwc2VkIHJhbmdlIDoKKyAgaW5kZXggMyBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hIGRpZmYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvc3RycmFuZ2UzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvWFBhdGgveHB0ci9zdHJyYW5nZTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQzMTE0YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvc3RycmFuZ2UzCkBAIC0wLDAgKzEsNDggQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAndGVzdCcsIDEsIDApKQorT2JqZWN0IGlzIGEgTG9jYXRpb24gU2V0OgorMSA6ICAgT2JqZWN0IGlzIGEgY29sbGFwc2VkIHJhbmdlIDoKKyAgaW5kZXggMTAgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YSBzaW1wbGUgdGVzdAorMiA6ICAgT2JqZWN0IGlzIGEgY29sbGFwc2VkIHJhbmdlIDoKKyAgaW5kZXggMTAgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9bXVsdGlwbGUgdGVzdHMKKzMgOiAgIE9iamVjdCBpcyBhIGNvbGxhcHNlZCByYW5nZSA6CisgIGluZGV4IDcgaW4gbm9kZQorICAgIFRFWFQKKyAgICAgIGNvbnRlbnQ9YW5jZWQgdGVzdAorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKHN0cmluZy1yYW5nZSgvLyosICd0ZXN0JywgMSwgMCkpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSBjb2xsYXBzZWQgcmFuZ2UgOgorICBpbmRleCAxMCBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hIHNpbXBsZSB0ZXN0CisyIDogICBPYmplY3QgaXMgYSBjb2xsYXBzZWQgcmFuZ2UgOgorICBpbmRleCAxMCBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1tdWx0aXBsZSB0ZXN0cworMyA6ICAgT2JqZWN0IGlzIGEgY29sbGFwc2VkIHJhbmdlIDoKKyAgaW5kZXggNyBpbiBub2RlCisgICAgVEVYVAorICAgICAgY29udGVudD1hbmNlZCB0ZXN0CisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vcCwgJ3Rlc3QnLCAxLCAwKVsyXSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIGNvbGxhcHNlZCByYW5nZSA6CisgIGluZGV4IDEwIGluIG5vZGUKKyAgICBURVhUCisgICAgICBjb250ZW50PW11bHRpcGxlIHRlc3RzCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vKiwgJ3Rlc3QnLCAxLCAwKVsyXSkKK09iamVjdCBpcyBhIExvY2F0aW9uIFNldDoKKzEgOiAgIE9iamVjdCBpcyBhIGNvbGxhcHNlZCByYW5nZSA6CisgIGluZGV4IDEwIGluIG5vZGUKKyAgICBURVhUCisgICAgICBjb250ZW50PW11bHRpcGxlIHRlc3RzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGJhc2UgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGJhc2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI5ZTkyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvdmlkYmFzZQpAQCAtMCwwICsxLDE5IEBACisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoaWQoJ2NoYXB0ZXIxJykvcCkKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyA0IG5vZGVzOgorMSAgRUxFTUVOVCBwCisyICBFTEVNRU5UIHAKKzMgIEVMRU1FTlQgcAorNCAgRUxFTUVOVCBwCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogeHBvaW50ZXIoaWQoJ2NoYXB0ZXIxJykvcFsxXS9yYW5nZS10byhmb2xsb3dpbmctc2libGluZzo6cFsyXSkpCitPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6CisxIDogICBPYmplY3QgaXMgYSByYW5nZSA6CisgIEZyb20gbm9kZQorICAgIEVMRU1FTlQgcAorICBUbyBub2RlCisgICAgRUxFTUVOVCBwCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvdmlkY2hpbGRzZXEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGNoaWxkc2VxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViOGM1ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3ZpZGNoaWxkc2VxCkBAIC0wLDAgKzEsMzYgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiAvMS8yLzMKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBpbWFnZQorICAgIEFUVFJJQlVURSBocmVmCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9bGludXMuZ2lmCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogZWxlbWVudCgvMS8yLzMpCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgaW1hZ2UKKyAgICBBVFRSSUJVVEUgaHJlZgorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWxpbnVzLmdpZgorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IGNoYXB0ZXIxLzMKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBpbWFnZQorICAgIEFUVFJJQlVURSBocmVmCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9bGludXMuZ2lmCisKKz09PT09PT09PT09PT09PT09PT09PT09PQorRXhwcmVzc2lvbjogZWxlbWVudChjaGFwdGVyMS8zKQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGltYWdlCisgICAgQVRUUklCVVRFIGhyZWYKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1saW51cy5naWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L1hQYXRoL3hwdHIvdmlkcGFydHMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3ZpZHBhcnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkNWJkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9YUGF0aC94cHRyL3ZpZHBhcnRzCkBAIC0wLDAgKzEsMjcgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcihpZCgiY2hhcHRlcjEiKSkKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBjaGFwdGVyCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9Y2hhcHRlcjEKKworPT09PT09PT09PT09PT09PT09PT09PT09CitFeHByZXNzaW9uOiB4cG9pbnRlcigvLypbQGlkPSJjaGFwdGVyMSJdKQorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDEgbm9kZXM6CisxICBFTEVNRU5UIGNoYXB0ZXIKKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1jaGFwdGVyMQorCis9PT09PT09PT09PT09PT09PT09PT09PT0KK0V4cHJlc3Npb246IHhwb2ludGVyKGlkKCJjaGFwdGVyMSIpKXhwb2ludGVyKC8vKltAaWQ9ImNoYXB0ZXIxIl0pCitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgY2hhcHRlcgorICAgIEFUVFJJQlVURSBpZAorICAgICAgVEVYVAorICAgICAgICBjb250ZW50PWNoYXB0ZXIxCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGFhNmJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MQpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYyBhdHRyPSJ0byBub3JtYWxpemUgd2l0aCBhICAgIHNwYWNlIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmOTIyNjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxLnJkZQpAQCAtMCwwICsxIEBACiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjkyMjYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MS5yZHIKQEAgLTAsMCArMSBAQAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE5YThhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEuc2F4CkBAIC0wLDAgKzEsNSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGRvYywgYXR0cj0ndG8gbm9ybWFsaXplIHdpdGggYSAgICBzcGFjZScpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2YmExMzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxLnNheDIKQEAgLTAsMCArMSw1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J3RvIG4uLi4nLCAyOCkKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIyOWJmOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICh0c3QpKj4KKzwhRUxFTUVOVCB0c3QgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRzdCBhIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIHRzdCBiIENEQVRBICNJTVBMSUVEPgorPCFFTlRJVFkgZCAiJiN4RDsiPgorPCFFTlRJVFkgYSAiJiN4QTsiPgorPCFFTlRJVFkgZGEgIiYjeEQ7JiN4QTsiPgorXT4KKzxkb2M+Cis8dHN0IGE9Inh5eiIgYj0iICB4eXoiLz4KKzx0c3QgYT0iJmQ7JmQ7QSZhOyAmYTtCJmRhOyIgYj0iJmQ7JmQ7QSZhOyAmYTtCJmRhOyIvPgorPHRzdCBhPSImIzEzOyYjMTM7QSYjMTA7JiMxMDtCJiMxMzsmIzEwOyIgYj0iJiMxMzsmIzEzO0EmIzEwOyYjMTA7QiYjMTM7JiMxMDsiLz4KKzx0c3QgYT0ieCB5IiBiPSIgeCAgeSAiLz4KKzx0c3QgYT0iYSBiIiBiPSIgYSBiICIvPgorPHRzdCBhPSJhIGIiIGI9IiAgYSAgYiAgIi8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2E3OTA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTAucmRlCkBAIC0wLDAgKzEsMjMgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgdHN0IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSB0c3QgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHRzdCAxIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgdHN0IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSB0c3QgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHRzdCAxIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2E3OTA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTAucmRyCkBAIC0wLDAgKzEsMjMgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgdHN0IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSB0c3QgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHRzdCAxIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgdHN0IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSB0c3QgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHRzdCAxIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGY0OWE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTAuc2F4CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDEwLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxMC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNmY2MWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxMC5zYXgyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDExIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIxYjA2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDExCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzwhRE9DVFlQRSBhdHRyaWJ1dGVzIFsKKzwhRUxFTUVOVCBhdHRyaWJ1dGVzIEVNUFRZPgorPCFBVFRMSVNUIGF0dHJpYnV0ZXMgbm10b2tlbiBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGF0dHJpYnV0ZXMgbm10b2tlbnMgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUVOVElUWSBlbnQgIiBlbnRpdHkmcmVjdXJzaXZlOyAiPgorPCFFTlRJVFkgcmVjdXJzaXZlICJyZWZlcmVuY2UiPgorXT4KKzxhdHRyaWJ1dGVzIG5tdG9rZW49IiZlbnQ7ICZlbnQ7ICZlbnQ7IiBubXRva2Vucz0iVGVzdCYjMTM7JiMxMDsgdGhpcyBub3JtYWxpemF0aW9uIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxMS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxMS5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M4M2JlYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDExLnJkZQpAQCAtMCwwICsxLDIgQEAKKzAgMTAgYXR0cmlidXRlcyAwIDAKKzAgMSBhdHRyaWJ1dGVzIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTEucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjODNiZWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxMS5yZHIKQEAgLTAsMCArMSwyIEBACiswIDEwIGF0dHJpYnV0ZXMgMCAwCiswIDEgYXR0cmlidXRlcyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDExLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDExLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2RjZjIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MTEuc2F4CkBAIC0wLDAgKzEsMjEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGF0dHJpYnV0ZXMsICwgKQorU0FYLmVsZW1lbnREZWNsKGF0dHJpYnV0ZXMsIDEsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGF0dHJpYnV0ZXMsIG5tdG9rZW4sIDcsIDMsIE5VTEwsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGF0dHJpYnV0ZXMsIG5tdG9rZW5zLCA4LCAzLCBOVUxMLCAuLi4pCitTQVguZW50aXR5RGVjbChlbnQsIDEsIChudWxsKSwgKG51bGwpLCAgZW50aXR5JnJlY3Vyc2l2ZTsgKQorU0FYLmdldEVudGl0eShlbnQpCitTQVguZW50aXR5RGVjbChyZWN1cnNpdmUsIDEsIChudWxsKSwgKG51bGwpLCByZWZlcmVuY2UpCitTQVguZ2V0RW50aXR5KHJlY3Vyc2l2ZSkKK1NBWC5leHRlcm5hbFN1YnNldChhdHRyaWJ1dGVzLCAsICkKK1NBWC5nZXRFbnRpdHkoZW50KQorU0FYLmdldEVudGl0eShyZWN1cnNpdmUpCitTQVguZ2V0RW50aXR5KGVudCkKK1NBWC5nZXRFbnRpdHkocmVjdXJzaXZlKQorU0FYLmdldEVudGl0eShlbnQpCitTQVguZ2V0RW50aXR5KHJlY3Vyc2l2ZSkKK1NBWC5zdGFydEVsZW1lbnQoYXR0cmlidXRlcywgbm10b2tlbj0nICZlbnQ7ICAgJmVudDsgJmVudDsgJywgbm10b2tlbnM9JyBUZXN0DQorICAgICB0aGlzICBub3JtYWxpemF0aW9uICcpCitTQVguZW5kRWxlbWVudChhdHRyaWJ1dGVzKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDExLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxMS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1OWE5NzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQxMS5zYXgyCkBAIC0wLDAgKzEsMjAgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGF0dHJpYnV0ZXMsICwgKQorU0FYLmVsZW1lbnREZWNsKGF0dHJpYnV0ZXMsIDEsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGF0dHJpYnV0ZXMsIG5tdG9rZW4sIDcsIDMsIE5VTEwsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGF0dHJpYnV0ZXMsIG5tdG9rZW5zLCA4LCAzLCBOVUxMLCAuLi4pCitTQVguZW50aXR5RGVjbChlbnQsIDEsIChudWxsKSwgKG51bGwpLCAgZW50aXR5JnJlY3Vyc2l2ZTsgKQorU0FYLmdldEVudGl0eShlbnQpCitTQVguZW50aXR5RGVjbChyZWN1cnNpdmUsIDEsIChudWxsKSwgKG51bGwpLCByZWZlcmVuY2UpCitTQVguZ2V0RW50aXR5KHJlY3Vyc2l2ZSkKK1NBWC5leHRlcm5hbFN1YnNldChhdHRyaWJ1dGVzLCAsICkKK1NBWC5nZXRFbnRpdHkoZW50KQorU0FYLmdldEVudGl0eShyZWN1cnNpdmUpCitTQVguZ2V0RW50aXR5KGVudCkKK1NBWC5nZXRFbnRpdHkocmVjdXJzaXZlKQorU0FYLmdldEVudGl0eShlbnQpCitTQVguZ2V0RW50aXR5KHJlY3Vyc2l2ZSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGVzLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBubXRva2VuPScmZW50Li4uJywgMTcsIG5tdG9rZW5zPSdUZXN0Li4uJywgMjUpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZXMsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg5ODlhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDIKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2MgYXR0cj0idG8gbm9ybWFsaXplICAgd2l0aCBhIHNwYWNlIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQyLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDIucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmOTIyNjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQyLnJkZQpAQCAtMCwwICsxIEBACiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Mi5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQyLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjkyMjYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Mi5yZHIKQEAgLTAsMCArMSBAQAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDIuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Mi5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJjYTMyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDIuc2F4CkBAIC0wLDAgKzEsNSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGRvYywgYXR0cj0ndG8gbm9ybWFsaXplICAgd2l0aCBhIHNwYWNlJykKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQyLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQyLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRhZWJjYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDIuc2F4MgpAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0ndG8gbi4uLicsIDI3KQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0MyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YzYWM1YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDMKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxzZWxlY3Qgb25jbGljaz0iYWFhYSYjMTA7ICAgICAgYmJiYiYjeEEwOyI+ZiYjeEEwO29vPC9zZWxlY3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQzLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDMucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZTcyY2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQzLnJkZQpAQCAtMCwwICsxLDMgQEAKKzAgMSBzZWxlY3QgMCAwCisxIDMgI3RleHQgMCAxIGbCoG9vCiswIDE1IHNlbGVjdCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDMucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0My5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFlNzJjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDMucmRyCkBAIC0wLDAgKzEsMyBAQAorMCAxIHNlbGVjdCAwIDAKKzEgMyAjdGV4dCAwIDEgZsKgb28KKzAgMTUgc2VsZWN0IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0My5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQzLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWMwOTU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0My5zYXgKQEAgLTAsMCArMSw5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoc2VsZWN0LCBvbmNsaWNrPSdhYWFhCisgICAgICBiYmJiwqAnKQorU0FYLmNoYXJhY3RlcnMoZiwgMSkKK1NBWC5jaGFyYWN0ZXJzKMKgLCAyKQorU0FYLmNoYXJhY3RlcnMob28sIDIpCitTQVguZW5kRWxlbWVudChzZWxlY3QpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0My5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0My5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlN2NhODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQzLnNheDIKQEAgLTAsMCArMSw4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWxlY3QsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIG9uY2xpY2s9J2FhYWEuLi4nLCAxNykKK1NBWC5jaGFyYWN0ZXJzKGYsIDEpCitTQVguY2hhcmFjdGVycyjCoCwgMikKK1NBWC5jaGFyYWN0ZXJzKG9vLCAyKQorU0FYLmVuZEVsZW1lbnROcyhzZWxlY3QsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgyY2VhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDQKQEAgLTAsMCArMSw5MjY0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSBlZGl0ZWQgd2l0aCBYTUwgU3B5IHY0LjQgVSAoaHR0cDovL3d3dy54bWxzcHkuY29tKSBieSBTbGF2YSAoR0lWQykgLS0+Cis8ZWxlY3Ryb3htbCBtb2RpZmllZD0iMjAwMjEyMTZUMDcyNzI2Ij4KKwk8ZGF0YSBmcm9tPSIyMDAyMTAzMVQyMiIgdG89IjIwMDIxMTMwVDIyIj4KKwkJPHNlbGVjdD4KKwkJCTxkZXZpY2Ugc2VyaWFsbnVtYj0iRTAwMDAzNTYyIj4KKwkJCQk8cGFyIG1lbWluZD0iMTEzNDAwIiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExOTM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImViOGFlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSI1NSIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIxNjkzNjYwMCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9IjE5Ni40Ii8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSIxOTkuNSIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9IjIwMC44Ii8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMjAxLjgiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSIxOTkuOSIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjE5Ny45Ii8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMTkzLjIiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSIxOTcuNiIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9IjE5NS42Ii8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iMTkyLjciLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSIxOTUuMyIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjE5NS40Ii8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iMTk1LjYiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSIxOTcuMyIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjIyMi42Ii8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMjIwLjkiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSIyMjIuOCIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSIyMjEuNCIvPgorCQkJCQk8dmFsIG89IjExOTM3IiB2PSIyMjIuMiIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIyMjIuNSIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSIyMjAuNSIvPgorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSIyMjAuOCIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIyMjAiLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iMjIxLjIiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iMjIwLjMiLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iMjIxLjEiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iMjIwLjYiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iMjIwLjkiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMjE5LjIiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iMjE5LjMiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iMjIwLjUiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMjIwLjciLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iMjIwLjEiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iMjIwLjQiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMjIwLjEiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iMjIwLjEiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iMjIwLjciLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMjIwLjciLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iMjIwLjUiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjIyMiIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSIyMjEuOCIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSIyMjAuNiIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iMjIwLjgiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMjE4LjkiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMjIwIi8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iMjE4LjgiLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iMjE5LjkiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iMjIwLjUiLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iMjE5LjciLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iMjIwLjgiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iMjIwLjYiLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iMjE5Ii8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjIyMC4zIi8+CisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjIxOS4zIi8+CisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSIyMjAuOSIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSIyMjAuMSIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iMjIxLjQiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iMjIwLjIiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMjE3LjYiLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iMjE4LjQiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iMjE4LjEiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iMjE4LjciLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iMjE5LjkiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iMjE4LjciLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjIyMC43Ii8+CisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9IjIyMi43Ii8+CisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSIyMjAuNSIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSIyMTguOSIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIyMTkuMyIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSIyMTkuNiIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSIyMTkuMyIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIyMTkuNyIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSIyMjAuNCIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSIyMjAuNSIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIyMjEuOCIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIyMjIuNSIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSIyMjQuNSIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIyMjMuNiIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjIyMi4zIi8+CisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjIyMi42Ii8+CisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjIyMC44Ii8+CisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjIyMC44Ii8+CisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjIyMC4yIi8+CisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjIyMC4yIi8+CisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjIxOS4zIi8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjIxOS44Ii8+CisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjIxOSIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIyMTguNyIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSIyMjAuNyIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iMjIxLjgiLz4KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iMjIyLjgiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMjIzLjgiLz4KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iMjIzLjQiLz4KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iMjIyLjEiLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iMjIxIi8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjIxOS41Ii8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjIxOS45Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjIyMC44Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjIyMC44Ii8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjIxNy45Ii8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjIxOSIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIyMTguNiIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIyMTkuNCIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIyMTkuNyIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iMjIzLjEiLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iMjIyIi8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjIyNC4yIi8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIyMjAuNCIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iMjE5LjYiLz4KKwkJCQkJPHZhbCBvPSI5M2E4NCIgdj0iMjE5LjIiLz4KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iMjE5Ii8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjIxOC41Ii8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjIxOS4zIi8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjIxOS40Ii8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjIyMSIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIyMjAuNyIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjIyNS4yIi8+CisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjIyNSIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIyMjIuNiIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIyMjMuNiIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIyMjQuMSIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIyMjMuMiIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iMTk1LjkiLz4KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iMTkwIi8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjEyMi4zIi8+CisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjM1NC42Ii8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjMzMy4yIi8+CisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjMyMy4zIi8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjI3OC4xIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjI4Ni4yIi8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjI5Mi4zIi8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjIxLjQiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMjczLjciLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iMjcyLjkiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iMjg1LjQiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iMjguNSIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSI2OC40Ii8+CisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjE0Ny4xIi8+CisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9Ijk1LjciLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iODkuNiIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSI4OC4zIi8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjkyLjQiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMTQ5LjciLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMTQ4LjciLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iMTI3LjciLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iMTk4LjIiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iMTg3LjIiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iMTgyLjEiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iMTk1LjgiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iMjAzLjgiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iMTI0LjUiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMTU5LjIiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iMjMwLjYiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iNzkuOCIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI1MS4zIi8+CisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjIyLjUiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iMzIzLjciLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iMzQxLjYiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNDYuNCIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSI3MS45Ii8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjcxLjkiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iNjMuNCIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI3Ni40Ii8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjU4LjQiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iOTIiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iNzkuNiIvPgorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSI2My4xIi8+CisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjUxLjMiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iODEuNyIvPgorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSIyMDUuMyIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSI5Ni4xIi8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9Ijk1LjciLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iOTYuNyIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSI5Mi44Ii8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjkxLjQiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iODYuMSIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIyNzAiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMjcwLjQiLz4KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iMjk2LjciLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iMzA2LjgiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iMzMxLjciLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMTMuNyIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSI0Ni40Ii8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjI2Mi4xIi8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjE2Ni4yIi8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjE0My42Ii8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjEyNy4yIi8+CisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjEzMi43Ii8+CisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjEyOC4zIi8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjE1NS42Ii8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjE3MC44Ii8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjE3Ni4xIi8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjE3Ni44Ii8+CisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjE2OC44Ii8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjE3Mi4yIi8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjE4NS4yIi8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjE5Ni4zIi8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjE3OC41Ii8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjE5My43Ii8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjE3Ni4yIi8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjE5Ni43Ii8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjIwMi4yIi8+CisJCQkJCTx2YWwgbz0iZThlN2YiIHY9Ijk5LjkiLz4KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iMTMwLjIiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iMTMyLjkiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iMTIxLjciLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iMTAwLjkiLz4KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iMTkyLjkiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iMTUzLjciLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iMTcwLjQiLz4KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iMTU1LjIiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMTY3LjMiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iMTY1LjUiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iMTg0LjMiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMTU5LjIiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMTYzLjQiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMTYzLjUiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMTYwLjgiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMTY1Ii8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjE1Ni40Ii8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjE2My44Ii8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjE2Mi45Ii8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjE1NC45Ii8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjE1Ny4xIi8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjE5Ny4yIi8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjIwMy44Ii8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9IjIxMi41Ii8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjE4NS40Ii8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjE4Ny4yIi8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSIxNjIiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjE0OS4zIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIxMzYuOCIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMTQ1LjkiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjE2NC4xIi8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIxNTguMiIvPgorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iMTYzIi8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxNjEuNiIvPgorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iMTY4LjkiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjE2OC41Ii8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIxNjUuMSIvPgorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iMTY4LjIiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjE2My45Ii8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIxNDcuNSIvPgorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iMTYzIi8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSIxNjYuMyIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMTc3LjQiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjE3OS43Ii8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIxNjEiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjE3NC40Ii8+CisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSIyMDMuNiIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iMTU4LjMiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjE3Mi45Ii8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIxNzIuNyIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iMTY4LjQiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjEzOCIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMTM1LjgiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjE1Ny44Ii8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIxNjAuNiIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMTc1LjciLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjE4NC4xIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSIxODguNiIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iMTcwIi8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIxNzMuNiIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMTY3Ii8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIxNzIuNiIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMTY0LjYiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjE2Ni44Ii8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIxNTEuOSIvPgorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iMTU4LjYiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjE3MC44Ii8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIxODUuNCIvPgorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iMTYwLjEiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjE4OC42Ii8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSIyMDcuNyIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iMjE0LjYiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjIxMy43Ii8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSIyMTguNCIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMjEwLjUiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjE3OC44Ii8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIxNjIuNiIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMTU2LjQiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjE1My41Ii8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIxNDMuOSIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMTYwLjgiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjE1My40Ii8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIxNjMuNiIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMTY4LjIiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjE2OS4zIi8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIxMzkuMSIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMTQyLjQiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjEyMi4xIi8+CisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIxMjUuNSIvPgorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMTEwLjciLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjExMC42Ii8+CisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIxOTAuMiIvPgorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iOTkuNiIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMjA5LjQiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9Ijc2LjIiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjYxLjUiLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjQ0LjUiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjQ0LjIiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjYwLjQiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjY0LjYiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjY3LjMiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjM0MS4yIi8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIxMTUuOCIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMTE3LjMiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMjUyLjQiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjI2MS44Ii8+CisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIzMTMuMyIvPgorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMzExLjMiLz4KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjI5MiIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iNTcuNiIvPgorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMTUxLjYiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjkyLjciLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjkzLjQiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjEwMC4zIi8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSI5Ny40Ii8+CisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIxODQiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjI4OS4xIi8+CisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIyNzQuMiIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMzkuOCIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iNi41Ii8+CisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIzNTUuOSIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMTkuNCIvPgorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iNDQuMiIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iNjEuNCIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iNTUuNSIvPgorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iNjAuMiIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iNzEuNyIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iNjYuMyIvPgorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iNjEuNSIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMzguNSIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMTcuMyIvPgorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMzUuNiIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iNDQuOSIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iNzEuNCIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMTY2LjEiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjEyNSIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMTc2Ii8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIxOTUuMyIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iOTkuMSIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iOTAiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjI3My45Ii8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIzNDQuNyIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMzA3LjIiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjI3MS44Ii8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIyNzguOCIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMjkxLjUiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjUyLjkiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9Ijc2LjYiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9Ijg3LjYiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjE3MC4xIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIxNzQuMiIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMTc1LjYiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjE4Ni43Ii8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIxODMuMiIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMTgxLjciLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjE3My42Ii8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIxNzAuNyIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMTY1LjQiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjE2My44Ii8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIxNjEuNyIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMTY1LjQiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjE3MC45Ii8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSIxNzMuNSIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMTg3LjkiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjIwMS44Ii8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIyMDUuOSIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMjA0LjYiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjIwNC4xIi8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSIyMDguMiIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMjA0LjQiLz4KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjE5My41Ii8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSIxODYuNCIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iMTkyLjQiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjE5NC4zIi8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSIxODQuNCIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iMTg0LjEiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjE4NS42Ii8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSIxOTQuOSIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iMTkyLjEiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjE5Mi4xIi8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSIxOTAuNiIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iMTg1LjQiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjE3MC45Ii8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSIxODcuNCIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iMTkxLjEiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjE5MS4xIi8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSIxOTcuMSIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMTk1LjkiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjE4OS44Ii8+CisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSIyMDEuOSIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMjAyLjIiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjIwNC40Ii8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIxOTYuMyIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iMTgyLjYiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjE2Mi42Ii8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSIxODcuMiIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iMTg3LjMiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjE3OS43Ii8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSIxODEuNyIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iMTg4LjMiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjE4Ni4yIi8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSIxODMuNSIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMTgyLjIiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjE3Ni41Ii8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSIxNzUuNiIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMTc4LjUiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjIyMy44Ii8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSIyMjguMSIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iMjI5LjciLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjIxNi4xIi8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIyMjYuNCIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iMjQ5LjYiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjI0NS44Ii8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIyNTAuMSIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iMjUxLjEiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjI1Mi41Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIyNTkuNCIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iMjU0LjgiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjIxOC43Ii8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSIyMjguMyIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMjI3LjMiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjIxNC4yIi8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSIyMTguNyIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iMjE3Ii8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSIyMzEuNyIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iMjMwLjYiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjUyIi8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSIzNDAuMyIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMTguNSIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMzU3LjUiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjM0NC43Ii8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIzMzguNCIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMjguNCIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMjEuOCIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iMTAuNCIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iMzQzLjkiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjM0Mi44Ii8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSIzNTguMiIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iMzUzLjUiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjM1My40Ii8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSIxLjQiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjYuNCIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMTAuNSIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMzUwLjciLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjM1MC44Ii8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSIzNTcuNiIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iMTgxLjEiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjE4NC44Ii8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIxOTIuNiIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iMTkzLjEiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjE5NC43Ii8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIxOTAuOCIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iMTk1Ii8+CisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSIxOTUuOCIvPgorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMTk1LjMiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjE5OC4xIi8+CisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSIxOTguNCIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMTk5LjUiLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9IjIwMC4yIi8+CisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSIyMDIuMyIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMjAwLjciLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9IjIwMy41Ii8+CisJCQkJCTx2YWwgbz0iMWU2ZTk2IiB2PSIyMDQuNiIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iMTg4LjQiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjE5My45Ii8+CisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSIxODQuNCIvPgorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iMTkwLjUiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjE4OC45Ii8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSIxOTIuMiIvPgorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iMTg1LjYiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjE4Ni42Ii8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIxODIuOCIvPgorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMTg3LjYiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjE4Ni45Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxNjguMiIvPgorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMTY0LjIiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjE1NC4zIi8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIxMzQuMyIvPgorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTU0LjIiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjE4Mi4yIi8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxODguMyIvPgorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMTc2Ii8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSIyMDYuNCIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iMjE2LjUiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjIxMS41Ii8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSIyMTAuOCIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iMjExLjIiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjE5Mi40Ii8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSIxODUuMSIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iMTc2LjYiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjE3MS41Ii8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIxMjkuNSIvPgorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iMTczLjQiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjE1Ny4yIi8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSIxNjEuMiIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMTYzLjUiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjE3Ni44Ii8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIxNjYuOCIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMTYxLjUiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjE1OS4zIi8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIxNzcuNiIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMTgzLjIiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjE4NS40Ii8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSIxODIuNiIvPgorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iMTg5LjMiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjE3My4yIi8+CisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSIxNzkuNCIvPgorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iMTkzLjUiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjIwMi42Ii8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSIxOTcuOCIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iMTg2LjkiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjE4OC4zIi8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSIxNzguNyIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iMTYwLjIiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjE2OC4zIi8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSIxODQiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjE5MS4xIi8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIxNzcuMyIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iMTgyLjkiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjE4NS40Ii8+CisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSIxNzYuMyIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iMTcwLjEiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjE2OS4zIi8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIxNTkuOCIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMTkwLjkiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjE3My45Ii8+CisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSIxNzUuNSIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iMTg3LjUiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjE4OC41Ii8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIxNjAiLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjE3NS41Ii8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSIxOTIuNCIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iMjAwLjgiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjExNi45Ii8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSIxNjYuMyIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iMTYyLjgiLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjEzMC40Ii8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIxMjIiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjE5My41Ii8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIxODMuOSIvPgorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSIxNTcuMyIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iMTQyLjciLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjE0NS45Ii8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSIxODIuMiIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iMTgyLjciLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjE3My4zIi8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSIxODguNiIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMTc5LjQiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjE2OS44Ii8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIxNjQuMyIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMTcwLjIiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjE3OC44Ii8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIxNTgiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjE2MS42Ii8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxNzUuOCIvPgorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMTY5LjkiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjE4NS4zIi8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxOTEuNiIvPgorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMTc2LjgiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjE2Ny43Ii8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxNTQuMSIvPgorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMTY3Ii8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjE2Ni45Ii8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIxNDYuOSIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMTU1LjQiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjE1Ny42Ii8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIxODkuOSIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iMTg3LjQiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjE4Ni45Ii8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIxNzkuNSIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMTM5LjYiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjE2MS44Ii8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIxNzIiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjE4OS41Ii8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIxODcuMyIvPgorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iMTg4LjIiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjE4Ni4xIi8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIxOTguMSIvPgorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMTkzLjMiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjE5NS42Ii8+CisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSIxOTguMyIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMTgwLjUiLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTYxLjYiLz4KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjE2NS44Ii8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIxNjUuNiIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMTYwLjQiLz4KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjE0Ny4yIi8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSIxOTYuOSIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iMTk1LjciLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjE4Ni45Ii8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIxNzguMyIvPgorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iMTc3LjYiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjE3MiIvPgorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iMTU2LjUiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjE1NC4zIi8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIxNTciLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjE3OS41Ii8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIxNjYiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjE3Mi4zIi8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIxOTYuNCIvPgorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iMTc5LjUiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjE5NS43Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSIyMDIuNyIvPgorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iMjA5LjkiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjIwNC4xIi8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSIxOTkuOSIvPgorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iMTg2LjMiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjE3NS42Ii8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSIxNzAuMSIvPgorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iMTU5LjIiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjE1Ni40Ii8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIxMzcuNyIvPgorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iMTQ2Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIxMzkuNiIvPgorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iMTQzLjIiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjEzNy43Ii8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxNzcuOSIvPgorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iMTg2LjkiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjE4NC41Ii8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSIxODguMiIvPgorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iMTkxLjEiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjE0Ni43Ii8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIxNjEuNCIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMTg4LjciLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMTA2OTUwMDAiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImQzMGIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNWE4NjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iY2NjODciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZThlN2YiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjE5MDI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iNTAiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iODYxMiIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9IjI1LjA3Ii8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSIyNC4wNjciLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIyMy40MzgiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSIyMy4yNDUiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSIyMi43ODQiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIyMi43NDYiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSIyNi4yOTciLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSIyOC44NzgiLz4KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIzNC40NTEiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSI0MC4wMTciLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSI0MC41NzIiLz4KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIzOC42ODIiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIzNS44NjkiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSIzNC4xMiIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iMC4wMzgiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iMC4wMzgiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iMC4wMzMiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iMC4wMzMiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iMC4wMzMiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMC4wMzMiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMC4wMzgiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iMC4wMzkiLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMC4wMzgiLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMC4wMzgiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iMC4wNCIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSIwLjAzOSIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIwLjAzOSIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSIwLjAzMyIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIwLjAzMyIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIwLjA0Ii8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iYTFiNzciIHY9IjM2LjExNyIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSIxNy42MTMiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iOC4zNTciLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iNS45NTciLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iNy4xMzQiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iOC42NDYiLz4KKwkJCQkJPHZhbCBvPSJhNmZkNiIgdj0iNi40MjkiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iMTAuMjM1Ii8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjE0LjAyNyIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIzLjU0OSIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSIzLjgiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iNi4wOTMiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iNS4yMDQiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iNy41MjYiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTEuMzkiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMC45NTQiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iNS43NzMiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMjEuMDE5Ii8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjIyLjYzNiIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIxOS4zMTYiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMS4yNjUiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMy4xMyIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSI2LjA5MSIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSI3LjI3MyIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSI5LjM3MyIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSI3LjcxMSIvPgorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSI4LjE4MyIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSI5Ljg0MyIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSI1LjI1MSIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIyLjY0NiIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSI3LjE3NSIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIxOS42OTciLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNC43MDMiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iNS4wMTciLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iNS4wMjgiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iNC40MDYiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNS4xNjQiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMTAuOTUxIi8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjUuMDk2Ii8+CisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjEwLjAzMiIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI0LjA4NCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI1LjIyMyIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSI2LjYyMiIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIyLjU3MSIvPgorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSIzLjc2NiIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIyLjkyNSIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI0LjIzOSIvPgorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSIyLjQ0MiIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIxMC42NTMiLz4KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMTUuMDQ1Ii8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjEwLjQ5NyIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIxNC4yNDMiLz4KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iMTEuMzE4Ii8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjcuMjYiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMy4yNzgiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMTIuNzY4Ii8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjguODYzIi8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjguNDIzIi8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjcuNTAzIi8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjcuODAzIi8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjEwLjkxIi8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjUuNzQzIi8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjIuMDgyIi8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjcuNzUxIi8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjE2Ljc4NSIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSIxOC40NjciLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMTguODAxIi8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjE2LjAwOCIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSIxMy42MjkiLz4KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMTQuNDc5Ii8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjE0LjkyNyIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIxNC4zNDkiLz4KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iMTUuNTAyIi8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjIwLjA3Ii8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjIwLjAxMSIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIxNi4zNTciLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iMTcuMDMiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMTEuOTAxIi8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjEwLjEzOCIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSI4LjczMSIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIxNC4zNTciLz4KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iNC44NiIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI0LjE0OSIvPgorCQkJCQk8dmFsIG89ImViOGFlIiB2PSI2LjAxOSIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIxNC42MzUiLz4KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iOS45ODkiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iMTEuOTYiLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iMTUuNDIyIi8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjIyLjc0MiIvPgorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSIyMi40MjgiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iMjQuMTEiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iMjMuMDc2Ii8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjIzLjI0MSIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIyNC4wMTgiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMjUuOTg5Ii8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjI0Ljc0OCIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIyNS4zMjMiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMjMuMTIyIi8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjE5LjQwMyIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIxOS4yOCIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxNi4xMiIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIxNi4yMjgiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iMTYuNjU0Ii8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjE0LjIiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMTQuMDU0Ii8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjkuNTU3Ii8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjkuMDcyIi8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSI4LjMzMyIvPgorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iOS43NzEiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjE0LjMzNyIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMTYuMDQ5Ii8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIxOS45MTEiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjIzLjIzOCIvPgorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iMjMuMjEzIi8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIyNS4xNzkiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjIxLjU5MSIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iMTkuNjY1Ii8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIyMS4wNzkiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjIxLjEwOSIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMjIuMzYzIi8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIyNS4xNzIiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjIzLjIyMyIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMjAuOTEyIi8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIyMi4wMTciLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjE4LjcyOSIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iMTYuNzYxIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIxMy4xNDUiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjEzLjkxMiIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iOC43MTIiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjguMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSI4LjE5NSIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iOC4zMDEiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjEwLjExMSIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMTQuMjEzIi8+CisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIxNS42MTciLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjE5LjA5NSIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMjMuOTg2Ii8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIyMC45MTkiLz4KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9IjI2LjA2Ii8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSIyMS40OTMiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjIxLjAwNiIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMjIuMTQ0Ii8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIxOS4xMjQiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjAuMDE5Ii8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIwLjAyMSIvPgorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMC4wMjEiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjAuMDE4Ii8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIwLjAxNSIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMC4wMTYiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjAuMDExIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIwLjAxIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSIwLjAxMSIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iMC4wMSIvPgorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iMC4wMSIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMC4wMSIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMC4wMDkiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAuMDA2Ii8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIwLjAwOSIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMC4wMTEiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjAuMDE3Ii8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIwLjAxMiIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMC4wMTkiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjAuMDE0Ii8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIwLjAxNSIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMC4wMTUiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAuMjc5Ii8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwLjA5NiIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMC4xNDEiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAuMjA3Ii8+CisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwLjIxOCIvPgorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMC4yMTMiLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAuMjE0Ii8+CisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwLjA3NSIvPgorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMC4wNSIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAuNDQ5Ii8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwLjIxNyIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMC4xNjciLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAuMTU4Ii8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwLjIzMiIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMC4zMzkiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAuMjEyIi8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwLjA0NCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMC4wMzMiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAuMDI1Ii8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwLjAyMyIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMC4wNTgiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAuMTQ1Ii8+CisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMC4wOCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMC4wNjciLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAuMTExIi8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwLjA1Ii8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwLjIzOSIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMC4yMDYiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAuMTYzIi8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMC4wMjciLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAuMDc3Ii8+CisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwLjE1MyIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMC4xODEiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAuMTQ5Ii8+CisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwLjE1NyIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMC4xNjYiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAuMjE2Ii8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwLjMwNiIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMC4xNjgiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAuMTQ1Ii8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwLjI1MiIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMC4yMTMiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAuMTkiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAuMTExIi8+CisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwLjExNCIvPgorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAuMTE1Ii8+CisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwLjMwMiIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMC4wMyIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMC4wNDgiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAuMDY5Ii8+CisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMC4wMjkiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAuMTA1Ii8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwLjA5NiIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMC4xNDIiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAuMTAxIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwLjA5MiIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMC4wNzEiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwLjE3Ii8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwLjIxMiIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMC4wODkiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAuNjA3Ii8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwLjY3NSIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMC43MjMiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAuNDc3Ii8+CisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwLjQ3NyIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMC40OTEiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAuNDk2Ii8+CisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwLjU3OSIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMC42MiIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMzUuNzE2Ii8+CisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSIzMy45NzMiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjM1LjI5NSIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMzIuNDI5Ii8+CisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSIyOC40MzMiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjI5LjI0Ii8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIzMC45NDMiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjI4LjA1Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSIyNy43OTIiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjI4LjEwMiIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMjUuNTM0Ii8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSIyNS4wMjEiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjMwLjA0NiIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iMzIuNzcyIi8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSIzOC4xODYiLz4KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjY0LjM0Ii8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSI2My41ODIiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjYwLjg5NSIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iNTcuMTY3Ii8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSI1OS40MzYiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjU2LjY1NSIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iNjAuNTk3Ii8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSI1Ni44MzYiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjM3LjU4MSIvPgorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iNDAuMSIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iMzguMjE0Ii8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSIzMi4xNzUiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjMwLjY2MiIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMjYuOTMzIi8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSIyMS4yNjkiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjIxLjY0NiIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMjEuMjQ0Ii8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSIyMC44NTUiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjE5LjU4OCIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iMjAuODA5Ii8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSIyNS42NCIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMjkuMTY2Ii8+CisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSIzMS4yMzYiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjI4LjQyNCIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMzIuNzE3Ii8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSIzMi4yMzEiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjI5LjgxNiIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMjkuMjE5Ii8+CisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSIyOS44NjEiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjI5LjA5MyIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMjkuMDA0Ii8+CisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIxMC40NDUiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjE4LjE1OCIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMjMuNzEzIi8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSIyNS44NCIvPgorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iMTMuNjkyIi8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIxNS42MTkiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjIyLjIzNSIvPgorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iMjAuNTMzIi8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIxNC44MDYiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjE3Ljc4NiIvPgorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iMTguMjA1Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIxNC44NiIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iMTEuMzE3Ii8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSI2LjQwMyIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMTMuMzg5Ii8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIxOC4wOTQiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjE2LjY4OCIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMTYuMjUxIi8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSIxNy45MDIiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjE2Ljg2NCIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iMTYuMDc2Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI0LjMzIi8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSI0LjMzIi8+CisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIyMS4yMjEiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjIwLjg2Ii8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSIyMi45MDMiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjIyLjY3MiIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMzQuNzExIi8+CisJCQkJCTx2YWwgbz0iMWNkNmQwIiB2PSIzMy43OTIiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjMyLjcxNyIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iMzMuMDQiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjM0LjA0NyIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iMzYuNTM2Ii8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSIzNi42NzMiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjM2Ljc1MiIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMzcuOTMyIi8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSIzNy44NTciLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjM3LjAyOSIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMzIuODQ0Ii8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSIzMS45MTciLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjMxLjM2MyIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iMTUuMzQ5Ii8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSIxNy42MjMiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjE3LjY1OCIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iMTYuNTk3Ii8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSIxNy42MjEiLz4KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9IjE4LjAxNyIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iMzIuMzM3Ii8+CisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSIzNy4xMTMiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjM2Ljg5NiIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iMzcuNjQ2Ii8+CisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSIzNy40NjUiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjM1Ljk2Ii8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIzNC4yMTciLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjMxLjQ3MiIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMjcuOTEzIi8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIyNy43NyIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMjcuMDkyIi8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSI5LjY1Ii8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSI4Ljk4OSIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iOC44NzEiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjExLjUyNSIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iMTEuMzEyIi8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSIxMy4xNDUiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjEyLjg2NiIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iMTMuNTAzIi8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIxMi45NzciLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjEyLjg1MyIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iMTIuMzIyIi8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxMS4yNDQiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjExLjM1NyIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iMTMuOTA5Ii8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIyMC43NzgiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjE3LjM4NCIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iMTcuODgyIi8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxNy43NzkiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjE1LjYyOCIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iMTguNzE4Ii8+CisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIxOS42ODciLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjE1Ljg1NiIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iMTQuMjM1Ii8+CisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIxNC4xMjEiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjEwLjQxNyIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iMTAuMTkyIi8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIxMC4yNDciLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjEyLjQwOSIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMTguNzgyIi8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIxNy43MDkiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjI0LjQ2OCIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMjcuODk1Ii8+CisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSIzMS4xMzUiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjI4LjA3MyIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMjYuNzgxIi8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIyNy45NTUiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjMxLjgzNCIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMzAuNjg0Ii8+CisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSIzMy4yMzkiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjMxLjU5MiIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iMjcuMDUxIi8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIyNi44OTEiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjIyLjgzNCIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMjEuMSIvPgorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iMjAuNzIzIi8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSIyMC40MTIiLz4KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjE3LjE3OCIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iMTQuODQ1Ii8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSIxNC40MDQiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjEzLjg5NSIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iMTQuMjkxIi8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSIxOC4zNzYiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjIyLjY4MiIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMjkuMDU2Ii8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIzMC45ODUiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjMxLjI0NCIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMzAuNTAxIi8+CisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSIzMC43NTciLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjI5Ljc2NiIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMjkuNjg2Ii8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIzMC40NyIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMzEuMDYiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjI4Ljk1OCIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMjguNDc0Ii8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSIyNy43NTMiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjI2LjY3NiIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMjQuMDciLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjE4Ljg4OSIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iMTcuNTU2Ii8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSIxNi40MzQiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjE4LjQ3Ii8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSI5LjgzNyIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iOS43MyIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMTIuNjcyIi8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIxNy4yOSIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iMTcuMTYxIi8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIxOS4zODgiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjIyLjc5MiIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMjUuOTczIi8+CisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIyOC4zMDUiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjI4LjQ3NSIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMjMuNTMxIi8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSIyMi42MiIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMjIuMTMiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjI3LjE1OSIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMjcuNzA1Ii8+CisJCQkJCTx2YWwgbz0iMjMzNjFiIiB2PSIyOS43OTYiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjI3LjM0MSIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMjUuODg3Ii8+CisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSIyNS44NDIiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjIzLjI2NiIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMjEuNjY0Ii8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxOS40MzciLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjE1LjkxMiIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iMTYuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxNS42NzQiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjEzLjcwNSIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iMTQuMzMxIi8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxNS43ODEiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjE4LjE5NiIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMjIuMTE1Ii8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIyNi4wNjYiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjM0LjgxMyIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMzUuOTE0Ii8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIzNi43NzUiLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjM0LjI3NyIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iMzIuMDU2Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIzMy4wMDEiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjMxLjY4NyIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMzYuODU0Ii8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIzMC40MjgiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjI4LjI0NiIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iMjguOTg0Ii8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIyNy4xNzYiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjI2LjQ1NSIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iMjEuODkxIi8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIyMC4wNzMiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjE3LjA4MyIvPgorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iMTcuOTIxIi8+CisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSIxNy45NzIiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjE2LjEiLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjE3LjMyNCIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMjAuOTciLz4KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjIxLjI2OSIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMjUuMDQxIi8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIzMS4yNyIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMzMuNzEyIi8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSI4Mi43NDQiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjQ2Ljc0NiIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMjIuOTAzIi8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIzMS4zNDMiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjMwLjQzOCIvPgorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iMjguODgzIi8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIzMC43OTQiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjMxLjAxMSIvPgorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iMjguMDk4Ii8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIyNy4xNzciLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjI0Ljk0MSIvPgorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iMjIuODM0Ii8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIyMy4yMDkiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjE3LjU2Ii8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSIxNy41NTUiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjE4Ljc2MSIvPgorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iMjAuNjk4Ii8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSIxOS4zNzIiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjE4LjY0NCIvPgorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iMTguNzkyIi8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSIxOC45NTEiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjE4LjkwNyIvPgorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iMjMuNDA5Ii8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIyMy41MTEiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjI2Ljk0MSIvPgorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iMjQuMDA4Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIyMy4xNDciLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjIzLjkzNSIvPgorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iMjQiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjIyLjg4OCIvPgorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iMjYuMjQ2Ii8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIyNS45MDkiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjI1LjEwOSIvPgorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iMjQuNzI1Ii8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIyMy43NTUiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjE4LjgzOSIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMTUuMzYyIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9Ijg2MDgiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdlODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQzMGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExOTM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjc4YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWE4NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTFiNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjdiMDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmE1MzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmNmNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2NjODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImViOGFlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI4NjA0IiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMjEuMDQzIi8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSIyMC4wNTEiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIxOS44MTgiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSIxOS41NTQiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSIxOC45NTEiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIxOC44NTMiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSIyMi4zOTgiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSIyNC40OTIiLz4KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIyOS4yMDYiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSIzNS4wNjMiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSIzNS4wNyIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjMzLjU4NSIvPgorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjMwLjc3Ii8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMjkuMTQxIi8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iMC4wNyIvPgorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSIwLjA2NyIvPgorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSIwLjA2NyIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjAuMDY2Ii8+CisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjAuMDY2Ii8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSIwLjA2OCIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIwLjA1NiIvPgorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIwLjA1NiIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSIwLjA1NSIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iNWE4NjciIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSIwLjA1NiIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjAuMDU3Ii8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjAuMDU3Ii8+CisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjAuMDY2Ii8+CisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iNmViZDYiIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjAuMDU2Ii8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iMC4wNjUiLz4KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iMC4wNjUiLz4KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iMC4wNjciLz4KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iMC4wNjciLz4KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iMC4wNjciLz4KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iMC4wNTkiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMC4wNTkiLz4KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMC4wNTgiLz4KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iMC4wNTgiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMC4wNTkiLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iYTFiNzciIHY9IjMwLjIyIi8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjE2LjA1NCIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSIxMC4yMiIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIzLjgzOSIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSIzLjMwMSIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSI0LjE5Ii8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjIuMDAyIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjQuOTExIi8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjcuODk3Ii8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjIuOTM0Ii8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjEuNDg3Ii8+CisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjIuMTk2Ii8+CisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjEuNjc5Ii8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjUuOTg0Ii8+CisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjEwLjY2MSIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIzLjY1MyIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSI3LjI1MiIvPgorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIxOS43MDgiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMjEuMTI4Ii8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjE4LjM1OCIvPgorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIzLjQ1NiIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSI0LjkxNiIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSI3LjMzNyIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSI3LjIwNSIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSI5LjE5MSIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSI4LjAyNyIvPgorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSI3LjY4OCIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSI4LjY2NyIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSI3LjczNCIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSI1LjE0OCIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSI1LjA4MSIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIxOC40MzMiLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNC42NzYiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMy45NyIvPgorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSIyLjI0NyIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIyLjUxOSIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI0Ljc4NCIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIxMC40MDYiLz4KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iNS44NjMiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iOS42NjgiLz4KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iNS4xOTQiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNS4zNSIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSI3Ljc0NSIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIzLjY1MSIvPgorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSI0LjIzNiIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIzLjI4MSIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI1LjY1NyIvPgorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSIyLjI0OSIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIxMi4wMDQiLz4KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMTUuODMzIi8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjExLjk4MSIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIxNS4xNDUiLz4KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iMTIuMzg2Ii8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjguNTMiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMS40NzQiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iNy40NDEiLz4KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNC4yNjIiLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iMy44MDUiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iMy43NTIiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iNS41MzgiLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iOS41MjQiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iMS45ODgiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iNC4xNTkiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iOS42MjEiLz4KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iMTcuNzA0Ii8+CisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjE5LjE3MSIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIxOS4yNTIiLz4KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iMTQuOTYxIi8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjEyLjgxNiIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxMy4xMTMiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iMTMuNDM1Ii8+CisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjEzLjI4MyIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIxMy45ODkiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iMTguMDk4Ii8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjE3Ljc0MiIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIxNS4yMjkiLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iMTUuMjYzIi8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjExLjk2OCIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSI5Ljg5MyIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSI3Ljk5NyIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIxMy44ODgiLz4KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iNi4zMzYiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iNS42MzQiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iNy4zNjkiLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iMTQuMjc2Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjkuNjc0Ii8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjEyLjgxIi8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjE0Ljk4NSIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSIyMS41MzEiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMjEuMDM4Ii8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjIyLjkwOCIvPgorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSIyMC44OTEiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMjIuMjM0Ii8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjIyLjUxNyIvPgorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIyNC4xNzIiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMjMuMDA4Ii8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjIzLjQ3NSIvPgorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIyMi4wNTkiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMTguNjcxIi8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjE4LjQ0NyIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxNS44NjIiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTYuMzgiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iMTUuMTY1Ii8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjEyLjMzNSIvPgorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSIxMi4yODMiLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iOC45NDEiLz4KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iOC44MzciLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjguNzkzIi8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSIxMC4wNDMiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjEzLjkzMiIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMTUuOTc0Ii8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIxOS4xNjciLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjIyLjIzNyIvPgorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iMjEuNTMzIi8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIyMy4zMDkiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjIwLjMzMyIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iMTguNTU2Ii8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIyMC4xNjMiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjE5Ljk3OCIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMjEuMTU1Ii8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIyMy45NjQiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjIxLjg3NCIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMTkuNTkxIi8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIyMC4yMzQiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjE3LjMyIi8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIxNi41NTYiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjEzLjIxNyIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iMTIuMjcxIi8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSI4Ljk2NyIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iOC4zMTkiLz4KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjguMzU3Ii8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSI4LjQ5Ii8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSIxMC40NTgiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjEzLjk5OCIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTUuNDYxIi8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIxOC4zMzEiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjIyLjI4NCIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMTkuMTUxIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSIyMy40NjQiLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjIwLjIxMSIvPgorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iMTkuODMiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjIwLjgiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjE4LjA0MiIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMC4wMTgiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjAuMDIiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjAuMDIiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjAuMDE3Ii8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIwLjAxNSIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMC4wMTQiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjAuMDExIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIwLjAxIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSIwLjAwOSIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iMC4wMDgiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjAuMDA4Ii8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSIwLjAwOCIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMC4wMDciLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAuMDA3Ii8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIwLjAxIi8+CisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIwLjAxMSIvPgorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMC4wMTYiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjAuMDEzIi8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIwLjAxOSIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMC4wMTQiLz4KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjAuMDE1Ii8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIwLjAxNSIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMC4yNjkiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAuMTI0Ii8+CisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwLjE2Ii8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIwLjIyNyIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMC4yNDMiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAuMjM2Ii8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIwLjIzOSIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMC4wNzQiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAuMDg2Ii8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSIwLjAzMSIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMC40MTIiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAuMTk5Ii8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSIwLjE1Ii8+CisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwLjE0Ii8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwLjIxOCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMC4zMDkiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAuMjA2Ii8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwLjAzMiIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMC4wNjUiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAuMDU0Ii8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMC4wMjUiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAuMDkiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAuMDMiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAuMDM4Ii8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwLjAyNiIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAuMDg2Ii8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwLjI1MSIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMC4yMjUiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAuMTkzIi8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwLjEwMyIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMC4wNDQiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAuMDIzIi8+CisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwLjA2OCIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMC4xNTciLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAuMTA1Ii8+CisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwLjA5NyIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMC4xMjciLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAuMTg5Ii8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwLjI4MSIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMC4xNjIiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAuMTUiLz4KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAuMjQ2Ii8+CisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwLjIxMSIvPgorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMC4xODgiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAuMTA1Ii8+CisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwLjA5MiIvPgorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMC4wOTkiLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwLjI5Ii8+CisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMC4wNzIiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwLjEwMSIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMC4wNDUiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMC4wNyIvPgorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAuMDI5Ii8+CisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwLjAyNiIvPgorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMC4wNzUiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAuMTc4Ii8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwLjIyMSIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAuNTc4Ii8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwLjYzMyIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMC42NzgiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAuNDU2Ii8+CisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwLjQ2MSIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMC40NzUiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAuNDg3Ii8+CisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwLjU2NSIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMC41OTciLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjM0LjM3MiIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMzMuMDU2Ii8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSIzNC4xOTgiLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjMxLjE0OCIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMjYuNzM0Ii8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSIyNi44ODMiLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9IjI4LjA0NiIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMjUuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSIyNC44MjYiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjI1LjEyOSIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMjIuOTc5Ii8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSIyMi45NjgiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjI4LjA0Ii8+CisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIzMC42MDgiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjM1LjE1NiIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iNjEuMDc5Ii8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSI2MS4xMTgiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjU4LjIxNCIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iNTQuMTQ5Ii8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSI1Ni4xNDEiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjUzLjc1NyIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iNTcuMTg4Ii8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSI1My41OTYiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjM2LjI2OSIvPgorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iMzYuNjI2Ii8+CisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSIzNS4xMDIiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjI5Ljg1NSIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iMjguMzA3Ii8+CisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSIyNS4zNjQiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjE5Ljk5NiIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iMTkuNzQ4Ii8+CisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSIxOS4zNDUiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjE4Ljg3MyIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iMTguMTEiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjIwLjAzMiIvPgorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iMjUuMTM3Ii8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSIyNy41MDgiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjI5LjQ0OSIvPgorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iMjcuMzcyIi8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSIzMC41NjIiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjI5Ljk2MyIvPgorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iMjguMzM2Ii8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSIyOC4xMDIiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjI4Ljg2NCIvPgorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iMjguMjc4Ii8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSIyOC4zOTkiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjExLjAxNiIvPgorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iMTQuMTU1Ii8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSIxOS4xMzIiLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjIwLjI4Ii8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSIxMS4yOCIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iMTIuMjUiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjE2LjU2MSIvPgorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iMTUuMTUiLz4KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9IjkuOTUzIi8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIxMi43MzIiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjEyLjk1OCIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iOS42ODUiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjYuODA1Ii8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSI0LjU1OSIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMTAuNjMyIi8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIxNC42NCIvPgorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iMTQuMTgyIi8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSIxMy43MTciLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjE1LjA3MSIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iMTMuMjM2Ii8+CisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSIxMi43NDYiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjMuOTk5Ii8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSIyLjE4NiIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMTYuNTg1Ii8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIxNC4zNzgiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjE2LjA0MSIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iMTUuNzk5Ii8+CisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSIyOS4yNSIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMjcuNjIxIi8+CisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSIyNS40NTMiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjI0LjM2OSIvPgorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iMjUuMzQ4Ii8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSIyOC42ODciLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjI4LjM3MyIvPgorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iMjguODAxIi8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSIzMC4wNDUiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjMwLjY0NCIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMzAuMzU0Ii8+CisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSIyNC45MzMiLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjIzLjgxMyIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iMjMuODE4Ii8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSIxNS4xNTMiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjE2LjY5Ii8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIxNi4zODUiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjE1LjY0MyIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMTYuMjY5Ii8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIxNi42ODkiLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjI3Ljg5NyIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMzEuNDQ5Ii8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSIzMS4yMzIiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjMyLjAwMSIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMzEuOTk5Ii8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSIzMC42NjkiLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9IjI5LjE4NSIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMjcuMTk5Ii8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSIyMy43OTgiLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9IjIzLjU2NiIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMjMuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSI4LjU3MyIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iNy45MTMiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjcuODUxIi8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSI5Ljg0NSIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iMTAuMTc3Ii8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSIxMS43MzIiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjExLjU1NCIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iMTIuMDY3Ii8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIxMS43MjUiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjExLjQ2NSIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iMTAuODUxIi8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxMC45MjgiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjEwLjk4NCIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iMTMuNjI2Ii8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIxOS4zOTkiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjE2LjMyNiIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iMTUuODQ4Ii8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxNS43ODUiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjE0LjMxOSIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iMTUuNzciLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjE2LjI5NSIvPgorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iMTMuMzgyIi8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSIxMS43NTIiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjExLjY5NCIvPgorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iOS4yNCIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iOC45NjkiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjkuNDIiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjExLjI5OSIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMTguMDYiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjE1Ljk4OSIvPgorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMjMuMzYzIi8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSIyNi4wNzEiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjI5LjI4MyIvPgorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iMjUuODU2Ii8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIyNS4yMzUiLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjI2LjQwNSIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMzAuMDc2Ii8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIyOC40MzMiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjMwLjI3MSIvPgorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iMjguNTU3Ii8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSIyNC41NDIiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjIzLjk2MiIvPgorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iMjEuMjQyIi8+CisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSIxOS42MzMiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjE4LjAwOSIvPgorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iMTcuNzk4Ii8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSIxNS4zMDQiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjEzLjQ1MyIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iMTMuMDU1Ii8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSIxMi44NzIiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjEzLjU0NCIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iMTcuMjUiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjIxLjA0NiIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMjUuODMyIi8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIyNy43OTEiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjI4LjA1NCIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMjcuNjMiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjI4LjQ1NyIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iMjcuNzI1Ii8+CisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSIyNy45MjIiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjI4LjI1Ii8+CisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSIyNy41MzkiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjI2LjI1MSIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMjUuOTQ3Ii8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSIyNC42NzEiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjI0LjM4MyIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMjIuNzQyIi8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIxNy43NDIiLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjE2LjExNyIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iMTQuNTQ4Ii8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIxOC40MTgiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjEwLjE0NyIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iMTAuNjQ4Ii8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxMy4wNjIiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjE3LjA4MiIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iMTUuNzIzIi8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIxNy42MjciLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjIxLjA4MyIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMjQuMjkzIi8+CisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIyNi44MjMiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjI3LjA0Ii8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSIyMi4wOTEiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjIxLjUxNCIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMjAuOTIyIi8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSIyNS4wNjEiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjI1Ljk1OSIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMjcuNjQ0Ii8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIyNS41NzgiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjI0LjE5OSIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMjMuODMiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjIyLjcxOSIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMjAuOTUyIi8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxOC4zODIiLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjE0LjkyOCIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iMTQuODU5Ii8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxNC4wODEiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjEzLjMwOSIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iMTMuNzI2Ii8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxNS4wNzEiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjE3LjA2NCIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMjAuNjEyIi8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIyNC44OTEiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjMyLjk0MiIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMzQuMjQ3Ii8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIzNC43ODciLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjMxLjE3NiIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iMjkuODA2Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIzMC41NjkiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjI5LjE3NSIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMzQuOTIxIi8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIyOC43NjciLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjI1Ljc5NyIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iMjYuMTYxIi8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIyNC43NjkiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjI0LjA1MyIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iMjAuMjgiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjE4LjIyIi8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSIxNS4zNDUiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjE1Ljk1MyIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMTUuODg0Ii8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSIxNS4wNTQiLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjE2LjAxNCIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTkuNTc0Ii8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSIyMC4wNjUiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjIzLjkzNiIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMjkuMjc0Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIzMS42OTEiLz4KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9Ijc1LjE1NCIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iNDEuNDU4Ii8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSIyMS4yMjEiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjI5LjQxNyIvPgorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iMjguNTk3Ii8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSIyNy4yNTYiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjI4LjkyNSIvPgorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iMjkuMzgiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjI2LjU1OSIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iMjUuMjM0Ii8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIyMy4zMTIiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjIxLjMxNyIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iMjAuNzYxIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxNi4zNiIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iMTUuNjU3Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSIxNi42MTgiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjE3Ljg4OCIvPgorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iMTYuODYxIi8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSIxNi42MTciLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjE3LjQyOCIvPgorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iMTguMjI1Ii8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSIxOC40MTUiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjIyLjEyNiIvPgorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iMjIuMTI2Ii8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIyNS43ODIiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjIyLjc3NCIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iMjIuNzc0Ii8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIyMi45MDkiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjIzLjEzOSIvPgorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iMjEuNTUzIi8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSIyMy41MzkiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjIzLjEzOSIvPgorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iMjIuNzM1Ii8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSIyMi4zMzUiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjIzLjIwNSIvPgorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMTguMjM4Ii8+CisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSIxNC4xMzYiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iOTgxMiIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9IjExNC4wODEiLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjExNy4xOSIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9IjExOC45NjQiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSIxMjAuNTY0Ii8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMTE4Ljc0NyIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjExNi41MjkiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSIxMDkuMzg0Ii8+CisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMTIxLjM1NiIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9IjExOS4wMTQiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSIxMTYuMjI2Ii8+CisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMTIwLjE3NSIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjEyMC45NDkiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIxMjQuMiIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjEyNC4wNDMiLz4KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSIxMTcuNzYxIi8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMTE4LjA5MiIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjExOC4zNTQiLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIxMTguNjMzIi8+CisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iMTE4LjQ5NCIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSIxMjEuMjQzIi8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjEyMi4yNzgiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iMTE5LjY4OSIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSIxMjEuMTY1Ii8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjEyNS42ODgiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iMTI3LjUxNyIvPgorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSIxMTkuNTA4Ii8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjEyMS4yNyIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIxMjEuMjYyIi8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjEyMC41OTUiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iMTE4LjcyNSIvPgorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSIxMjYuOTEzIi8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjEyNS45ODQiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iMTI0Ljk3MSIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSIxMjEuNzIyIi8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjEyMi4yMzMiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iMTIyLjgzNiIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSIxMjQuMTI1Ii8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjEyNS4xMDUiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iMTI1LjI2NiIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSIxMjUuMzgxIi8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjEyMy42ODgiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMTE5LjQzNyIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSIxMTkuMTY3Ii8+CisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjEyMC4zMzQiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iMTE5LjgzNyIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIxMjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjEyMi4wNzQiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMTI1LjU0MiIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSIxMjUuNjM4Ii8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjExNy4zOTgiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMTE4LjgwNyIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIxMTkuNjQ0Ii8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjExOS42NzQiLz4KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iMTE3LjU0OSIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIxMTMuMjI5Ii8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjEyNS4xNTMiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iMTI0LjY5MSIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIxMjMuNTU2Ii8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjEyMy4yMzEiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iMTIzLjQwNCIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIxMjMuOTMyIi8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjEyMy4zMjgiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iMTIyLjY0MSIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIxMjEuNTQ0Ii8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjExOC4yMDkiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMTE4LjY3NSIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIxMTguMzI1Ii8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjEyMS44OTMiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iMTIwLjcxMSIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIxMTkuODU0Ii8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjEyMC4xNjUiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iMTIyLjk5NiIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSIxMjYuNTU3Ii8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjEyNC4wNjEiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iMTI0Ljg3NCIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIxMjUuMjQ0Ii8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjEyNS4wODMiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iMTIzLjE4MiIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIxMTkuMzExIi8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjEyMi41MjQiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iMTIxLjE3MyIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIxMTguNjk2Ii8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjExNy41NTkiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMTE4Ljk0NyIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIxMTguNzk3Ii8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjExNy4wNDgiLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMTE2LjE4MiIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIxMTkuMTAxIi8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjExOS4xNTIiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMTE2LjgxNCIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIxMTguOTQzIi8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjEyMC44NDQiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMTE5LjEwOSIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIxMjAuODAyIi8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjEyMy4wOTUiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iMTI1LjkyMiIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIxMjIuMDgyIi8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjEyMy4wMDEiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iMTIzLjAzMyIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIxMjIuOTcyIi8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjEyMC43MTciLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iMTIxLjU5OSIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIxMjAuOTc3Ii8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjExOS4wMzgiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMTE1Ljc5OCIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIxMTkuOTEzIi8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjEyMC4yODQiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iMTE5LjQ1MSIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIxMTguMzI1Ii8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjExNy4xMTEiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMTE3LjI2MyIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIxMjAuMTQ3Ii8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjExNy41MzQiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMTE4LjkwMiIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIxMjAuMDk5Ii8+CisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjEyMS40MzQiLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iMTIxLjk4NiIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIxMjAuNjgzIi8+CisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjEyMi44NjEiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMTE5LjM1Ii8+CisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjEyMC44NDUiLz4KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iMTIyLjExOSIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSIxMjIuNTA2Ii8+CisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjEyMS40NjIiLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMTE4LjkwOSIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIxMTYuMzcyIi8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjEyMS4zMTEiLz4KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iMTE5LjQxMiIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIxMTguMjgxIi8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjExOC4xNDgiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMTE3LjgxMSIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSIxMjEuNjk0Ii8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjEyMC43NTUiLz4KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMTE4LjY1MSIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSIxMTguMDgiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMTE4LjI4MiIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIxMTMuOTExIi8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjExNi45NDEiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMTE5LjUwOCIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSIxMTkuMDcxIi8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9IjEyMS4xNDYiLz4KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iMTIxLjMzNiIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIxMjIuMDk1Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjEyMS43ODUiLz4KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iMTI0LjA2NSIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIxMjUuNDU1Ii8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjEyNi4wMTEiLz4KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iMTI1LjAxOCIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIxMjIuNzQxIi8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjEyMC4yNiIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIxMTguODU2Ii8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjExOC44MTciLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMTE3LjgwNyIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIxMTcuNDQ0Ii8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjExOS45NjciLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iMTIxLjE0MSIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIxMjAuMjU5Ii8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjExOC41NTgiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMTE4LjgxMiIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIxMTguNjMzIi8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjExOC45NDgiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMTE3LjMxNSIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIxMTguMTQ2Ii8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjEyMC4xMjEiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iMTIwLjU2MSIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIxMTguNjM4Ii8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjEyMi44NDQiLz4KKwkJCQkJPHZhbCBvPSI5M2E4NCIgdj0iMTI1LjE1MyIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSIxMjMuNDYzIi8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjEyMi43OTMiLz4KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iMTIzLjA5MyIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIxMjIuNTM1Ii8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjEyMC4xODkiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iMTIzLjA5NyIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIxMTkuMzM2Ii8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjExOC41Ii8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjExNS43NDMiLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iMTE5LjcyMiIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIxMjAuMjIyIi8+CisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjExOC45MTgiLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iMTE3LjU1MSIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIxMTYuNjQ5Ii8+CisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjExNi41MiIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIxMTYuNzAzIi8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjExOC44MDYiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMTE4LjQ2MSIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIxMTkuNTkzIi8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjExOS43OCIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSIxMTkuOTczIi8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjEyMC43NjEiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iMTIyLjc4MiIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIxMjUuNDQ0Ii8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjExOC4yNTUiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMTE5LjMwMiIvPgorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSIxMjAuMTQ5Ii8+CisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjExOS42NzgiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iMTE3LjEzOCIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSIxMTQuNjgxIi8+CisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjEyMC44NTEiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iMTE5LjA5OSIvPgorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIxMTYuNjA5Ii8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjExNi43MjkiLz4KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMTE4LjA0NSIvPgorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIxMTUuNDc3Ii8+CisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9IjExNS44OTEiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iMTE0LjI0Ii8+CisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9IjEyMi43OTQiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iMTE5LjAwMiIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSIxMTguNzAxIi8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9IjExOS42MDIiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iMTIwLjk2MyIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSIxMTkuOTI0Ii8+CisJCQkJCTx2YWwgbz0iYmMxNTciIHY9IjEyMC42MjgiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iMTIzLjEyMiIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIxMTguNjgzIi8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjExOC4zMDEiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMTE4Ljg4MiIvPgorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSIxMjAuMTg3Ii8+CisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjExOS41NzYiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iMTE4LjI0MyIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIxMTUuNjkyIi8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjExNy41NiIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIxMTYuMDU3Ii8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjExNy40MTEiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iMTE3LjQ4NiIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSIxMTYuNzQ1Ii8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjExOC4yNjUiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMTE4LjIwMiIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIxMTguMDA0Ii8+CisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjExNy4yNTUiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMTIyLjcxIi8+CisJCQkJCTx2YWwgbz0iY2NjODciIHY9IjExOC43MzYiLz4KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMTE2LjczNCIvPgorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSIxMTguMzM5Ii8+CisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9IjExOC42NiIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIxMTkuNzAzIi8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjEyMS41MzYiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMTIzLjQxOSIvPgorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSIxMjYuMTg2Ii8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjExOS4zMSIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSIxMjAuNTgiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iMTIwLjg1NyIvPgorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSIxMTkuNTgyIi8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjExNy40MjYiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iMTI0LjM0OSIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIxMjIuNDM1Ii8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjEyMC42OTIiLz4KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iMTE3LjIzMyIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSIxMTYuODYyIi8+CisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjExNi43MjgiLz4KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iMTE4LjIxMiIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSIxMTcuODU3Ii8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjExNy4xNzYiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iMTE3LjI3MSIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIxMTYuNzk2Ii8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjExNy4zNjEiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iMTE5Ljc2OSIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIxMjEuMDUiLz4KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iMTIwLjkyMSIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIxMjIuNDk3Ii8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjEyMC42NzciLz4KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iMTIyLjY3Ii8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjEyMy43NzgiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMTE2LjY1NSIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSIxMTguMTA5Ii8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjExOC4zNzIiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iMTE3LjUyNyIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIxMTMuNTE4Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjEyMy40OTYiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iMTIwLjYxMSIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIxMTguNzA0Ii8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjExNS42NTEiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMTE3LjQ4NyIvPgorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIxMTcuMTg2Ii8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjEyMS4xMTQiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMTE3LjYxMSIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIxMTcuODkyIi8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjExNy43MTgiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMTE3LjU4NCIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIxMTcuMzgiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMTE5LjIyMiIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIxMjEuMDM3Ii8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjEyMC4yMjEiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMTE4LjM3OSIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIxMTguMjM4Ii8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjEyMy4wMzciLz4KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iMTIzLjAwNyIvPgorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSIxMjYuMjk0Ii8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjEyMy42ODIiLz4KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iMTIzLjU5MSIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iMTIyLjkxOCIvPgorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iMTIxLjM4NyIvPgorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMTE3LjU4NiIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMTE3LjcxNiIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iMTE5LjE5MSIvPgorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMTE3LjM1NSIvPgorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iMTE3Ljg2MiIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMTE3LjUzMSIvPgorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iMTE5Ljg4NiIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iMTE5LjQyNiIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMTE4LjcyIi8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSIxMTkuMDA0Ii8+CisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSIxMTguNzI1Ii8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIxMTYuMTk2Ii8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIxMTguMTExIi8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSIxMTkuMDAxIi8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIxMjAuOTYzIi8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxMjEuMzQiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjExOS4xNTEiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjEyMC43OTciLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjEyMy41MTkiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjEyMi4zNjYiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjEyMy4zODEiLz4KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjEyMy4yOTYiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjEyMy4wNDciLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjEyMC44NzQiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjExOC4wMTciLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjExOC4zODgiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjExNy43NTMiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjExOS43NjEiLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjEyMS41NDciLz4KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9IjEyMi4wMjgiLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjEyMi4xOTUiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjEyMS43ODMiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjEyMC41ODEiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjEyMS42ODUiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjEyMC45NzIiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjExNi44MzYiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjExNy42MzMiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjExOC44MyIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMTIwLjc0NiIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMTIyLjU0MSIvPgorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iMTIwLjI0OSIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iMTIyLjcwOCIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMTI0LjUzOCIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iMTI1LjI4OSIvPgorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iMTI1LjMyNSIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMTI1LjQ5Ii8+CisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSIxMjQuNjcyIi8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSIxMjIuODEzIi8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIxMjEuNTczIi8+CisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIxMjAuNzE5Ii8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSIxMTkuNzA2Ii8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIxMTYuOTM1Ii8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIxMTcuMjU1Ii8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSIxMTguMzY1Ii8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIxMTkuODI5Ii8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIxMTkuNjA3Ii8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMC4xMDEiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSIwLjEwMiIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMC4xMDQiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMC4xMTUiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwLjEwNCIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMC4xMDQiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAuMTEzIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwLjExMyIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAuMTExIi8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAuMTExIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIxMTguMzUxIi8+CisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSIxMTkuNzYzIi8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSIxMjAuODcyIi8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSIxMjEuNDQzIi8+CisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSIxMjQuNTg3Ii8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSIxMjcuMTE5Ii8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIxMjguODg3Ii8+CisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSIxMjcuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSIxMjcuMSIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iMTI3LjM1Ii8+CisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSIxMjYuNTUyIi8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSIxMjQuNzEiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjEyNC4wNzciLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjEyNS4wOTkiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjEyNS4wMjUiLz4KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjEyMy45NTQiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9IjEyMy42NDEiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjEyNC4zMDgiLz4KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjEyNi4yMDEiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjEyNS40MjYiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjEyNS4wNDUiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjEyNC44NjgiLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjEyMy44NTQiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjExNy4xNzciLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjEyMC45ODUiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjEyMS42ODkiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjEyMS41MTQiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjEyMy43NiIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMTI1Ljg0OCIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iMTIzLjE2MiIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iMTI0Ljg3Ii8+CisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSIxMjYuNDU3Ii8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSIxMjYuNTY1Ii8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIxMjUuODIxIi8+CisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSIxMjMuNjU0Ii8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSIxMjAuOTg1Ii8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSIxMjEuMDE5Ii8+CisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSIxMjAuNzcxIi8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSIxMjAuMTM5Ii8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSIxMjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSIxMjIuNDU5Ii8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSIxMjEuNjAzIi8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSIxMjAuODU2Ii8+CisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSIxMjAuODgyIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSIxMjAuMDQ5Ii8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSIxMTkuOTAzIi8+CisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIxMTYuMDEyIi8+CisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSIxMTkuMjgzIi8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSIxMjAuMzAzIi8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSIxMjEuNzI4Ii8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSIxMjEuNTE2Ii8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIxMjIuODQ5Ii8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIxMjYuMDkzIi8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSIxMjYuNzI1Ii8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIxMjQuODgzIi8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIxMjUuOTMxIi8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIxMjYuMDk2Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIxMjQuOTA2Ii8+CisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSIxMjMuNjU0Ii8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSIxMjEuNDkzIi8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSIxMjMuODk3Ii8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIxMjMuNzU2Ii8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSIxMjIuMzY5Ii8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSIxMjEuOTM0Ii8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSIxMjIuMzA2Ii8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSIxMjQuMDQxIi8+CisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSIxMjMuNjk4Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIxMjAuMDI5Ii8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSIxMjAuMDMzIi8+CisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIxMTkuMzE0Ii8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIxMjAuNDc5Ii8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSIxMjEuOTEiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjEyMi40ODUiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjExOC41NjQiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjExOS4zNjciLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjEyMC44MDgiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjEyMy4xMDUiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjEyNS4wMjEiLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjEyMy4yNzQiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjEyMy45MiIvPgorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iMTIzLjg3NiIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMTIyLjg4MyIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iMTIyLjA3MiIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMTIxLjU0NCIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMTIzLjI3Ii8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSIxMjMuNTEzIi8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSIxMjIuNjA0Ii8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSIxMjEuMjgxIi8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSIxMjEuNzE2Ii8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIxMjIuNzE0Ii8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSIxMjMuMTI5Ii8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSIxMjMuNDMxIi8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIxMjIuOTg3Ii8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSIxMTkuMjYyIi8+CisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSIxMTguMDg3Ii8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSIxMTYuNTMyIi8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIxMTguNjE4Ii8+CisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSIxMTkuNzA2Ii8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSIxMjAuODk5Ii8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIxMjAuNzE4Ii8+CisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSIxMjEuNjI0Ii8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSIxMTcuOTI1Ii8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIxMjAuOTI4Ii8+CisJCQkJCTx2YWwgbz0iMWU2ZTk2IiB2PSIxMjIuMzQiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjEyMi45NzIiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjEyMy4wNSIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iMTIyLjQ0Ii8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSIxMjAuNzM1Ii8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIxMjAuNzExIi8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSIxMjMuNjg4Ii8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSIxMjIuODUzIi8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIxMjIuNzU0Ii8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIxMjIuOTc1Ii8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSIxMjMuNDkiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjEyMy4yNzgiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9IjEyMS43NzYiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjEyMS40NTgiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjEyMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9IjExNi44MzIiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjExOS45NDgiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjEyMC4wMjIiLz4KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9IjEyMC44ODQiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjExOS42MTgiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjEyMi44MTEiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjEyMy45OTciLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjEyNi42NTQiLz4KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjEyNS41NzQiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjEyNi40OTUiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjEyNi4wMjEiLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjEyNS41MjEiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjEyMy4xMDQiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjEyMS4wNzMiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjExNy45OTciLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjExOS4zNzYiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjExOS4zMDIiLz4KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjEyMC4yNCIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMTIwLjQ5NyIvPgorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iMTIzLjI3NiIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMTIxLjI4NyIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMTIwLjQ5MiIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMTE5LjY0MyIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMTE3LjYyNiIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMTIxLjkiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjEyMC44NjEiLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjEyMC40OTMiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjEyMS41MjYiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjExOS40NiIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMTIwLjI4NCIvPgorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iMTIxLjcxMyIvPgorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iMTI0LjIwMyIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iMTI2LjU4NyIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iMTI0LjYyNyIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iMTI0LjUyNiIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iMTIzLjgyMSIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iMTIyLjM1NyIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iMTE4LjY0MiIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iMTE2LjY1MSIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMTIyLjQzOSIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMTIwLjIzMiIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iMTE5LjMyMiIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMTIwLjIzNiIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iMTIwLjM0NiIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iMTE5LjE0OCIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMTE4LjkwNyIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMTE3Ljg3NCIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMTIyLjU4NCIvPgorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iMTIwLjI1MiIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMTIwLjQ2OSIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iMTIxLjMwMyIvPgorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iMTIyLjE4MyIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMTE4Ljc0NyIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iMTIwLjgxIi8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSIxMjMuOTM3Ii8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSIxMjYuNjg3Ii8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIxMTkuNTUzIi8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSIxMTkuNzU3Ii8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSIxMTkuNzUzIi8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxMTcuNTU3Ii8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIxMTYuMjYyIi8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSIxMjIuNDY5Ii8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIxMTkuNzY1Ii8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIxMTkuNzgiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjExOS4wMDYiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjExOC42OTYiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjExOS4wMTgiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjEyMC43NjUiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjEyMC40MSIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMTE5LjYwOCIvPgorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMTE5LjI2OCIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMTE4LjIyMSIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMTE5LjIzNCIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMTE4LjE5OSIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMTE5LjUyNCIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMTIwLjc2Ii8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIxMTguNDQ2Ii8+CisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIxMTkuODYiLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjEyMS40NTgiLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjEyMC45MzciLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjEyMi4zNTMiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjEyMy4wODUiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjEyMy4xNDUiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjEyMi4yNzciLz4KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjEyMS4xNTMiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjExOS4zMSIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMTIwLjYxNiIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMTE4LjQ4MiIvPgorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMTE3Ljc4OSIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMTE4LjE3OCIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMTE4LjY1Ii8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIxMTkuODkzIi8+CisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSIxMTkuMTcyIi8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIxMTguODgiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjExOC4wMyIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMTE1LjIiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjExOC4wOTEiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjExOS42MDEiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjEyMC44NDQiLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjEyMC4wOTQiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjEyMy44NTEiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjEyMy40OTkiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjEyNC44MDYiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjEyNC4yNyIvPgorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iMTI0Ljk4NSIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMTI1LjAyIi8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSIxMjMuNDgzIi8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIxMjIuNDM2Ii8+CisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSIxMjAuMDQxIi8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSIxMTkuNDk2Ii8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIxMTkuMzYyIi8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIxMTcuNzY3Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIxMTguNjE2Ii8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSIxMTcuMjc0Ii8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSIxMTguOTc1Ii8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSIxMTkuNzkiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjExOS4zMzEiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjExOS4xOTQiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjExOC42MzciLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjEyMC41MzUiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjExOS44Ii8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIxMjAuNDAzIi8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIxMjEuMDU0Ii8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIxMTkuNDEzIi8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIxMjAuMzgiLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjEyMy4yMDMiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjEyMS4xNDMiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjEyMi45NzYiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjEyMy42OTciLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjEyNC40NzYiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjEyMy41OTIiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjEyMy4xNzciLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjEyMS44NTMiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjEyMS4yOTgiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjEyMC41OTMiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjExOC43NjMiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjExOC4yNzgiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjExOC41OTYiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjExOS45ODQiLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjExOS41MjMiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjExOS41NzQiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjExOS4wMTMiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjExOS43MjIiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjEyMC44NzUiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjEyMC42NjgiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjEyMS40NTEiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjEyMS44MzgiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjExOS4wNTMiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjEyMS4wMyIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMTIzLjU0NCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI5ODA4IiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5M2E4NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjAiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iOTgwNCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9IjExMy43NjgiLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjExNy4xMzEiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIxMTguNzk0Ii8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMTIwLjM2MiIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjExOC41MDQiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIxMTYuMjc1Ii8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMTA5LjI1OCIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjEyMS4xMjciLz4KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIxMTguODQ5Ii8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iMTE2LjA5MyIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjEyMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIxMjAuODQiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIxMjQuMDQ1Ii8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMTI0LjA0MiIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjExNy43MTMiLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSIxMTguMDQ4Ii8+CisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMTE4LjA1MSIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjExOC4yNTkiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIxMTguMDU0Ii8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9IjEyMC44NDQiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMTIxLjkyNSIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIxMTkuMzUzIi8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9IjEyMC44NjciLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMTI1LjQ4Ii8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjEyNy40MzQiLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iMTE5LjA2OSIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIxMjAuOTA0Ii8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjEyMC45NzQiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iMTIwLjI1Ii8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjExOC4yOTEiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMTI2LjU3MyIvPgorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSIxMjUuNjM3Ii8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjEyNC42NjgiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMTIxLjM5MyIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSIxMjEuOTk4Ii8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjEyMi41NTUiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMTIzLjk0MSIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSIxMjQuNzQ2Ii8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjEyNS4wODUiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMTI1LjE0MyIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSIxMjMuMzE1Ii8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjExOS4wMjYiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iMTE4LjY4MyIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSIxMTkuODE1Ii8+CisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjExOS4yNSIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIxMTkuNjc4Ii8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjEyMS43MDgiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMTI1LjE4MiIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSIxMjUuMjE3Ii8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjExNy4xMiIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSIxMTguNDg5Ii8+CisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjExOS4zMzgiLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMTE5LjM5MiIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIxMTcuMjc3Ii8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjExMi45NjciLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iMTI0Ljc3NSIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSIxMjQuNDA5Ii8+CisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjEyMy4yNjgiLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iMTIyLjk1NiIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSIxMjMuMDMyIi8+CisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjEyMy41NTUiLz4KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iMTIzLjAwNCIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSIxMjIuMTI1Ii8+CisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjEyMS4wNzgiLz4KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMTE3LjcwMSIvPgorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSIxMTguMTAxIi8+CisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjExNy43NzEiLz4KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iMTIxLjM5MyIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSIxMjAuMTYiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMTE5LjM4NyIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSIxMTkuODg3Ii8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjEyMi42NCIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSIxMjUuOTU0Ii8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjEyMy41MSIvPgorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSIxMjQuMzI4Ii8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjEyNC42MzkiLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iMTI0LjQ0OCIvPgorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSIxMjIuNDM0Ii8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjExOC42MjMiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iMTIyLjE2OSIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSIxMjAuOTc5Ii8+CisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjExOC4zNTgiLz4KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMTE3LjI3MSIvPgorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSIxMTguNjgiLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMTE4LjU2MiIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIxMTYuODQyIi8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjExNS45MTMiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMTE4Ljg5NCIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIxMTguNTkiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMTE2LjI5MyIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIxMTguMjk5Ii8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjEyMC4yMzMiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMTE4LjQ5NSIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIxMjAuNDA2Ii8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjEyMi42NDQiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iMTI1LjUyOCIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIxMjEuNzQ2Ii8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjEyMi42NDIiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iMTIyLjU4MSIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIxMjIuNjIzIi8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjEyMC40MzEiLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iMTIxLjMyOSIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIxMjAuNjUxIi8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjExOC44NzYiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMTE1LjY2MSIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIxMTkuODM1Ii8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjEyMC4zNCIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSIxMTkuNDM5Ii8+CisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjExOC4yNDUiLz4KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iMTE3LjAwNCIvPgorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSIxMTcuMTY1Ii8+CisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjExOS45NSIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIxMTcuMTQ5Ii8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjExOC41NDEiLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iMTE5LjgyMiIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIxMjEuMDEzIi8+CisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjEyMS41NzciLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iMTIwLjI4OSIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIxMjIuNjIiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMTE5LjA5MyIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIxMjAuNDkzIi8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjEyMS45MTkiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMTIyLjIxOCIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIxMjEuMDIyIi8+CisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9IjExOC40MzMiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMTE1Ljk3OCIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIxMjAuOTcxIi8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjExOS4yMzQiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMTE4LjAxNSIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIxMTcuOTIyIi8+CisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjExNy41NjYiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMTIxLjQ2OSIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIxMjAuNTE0Ii8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjExOC40ODUiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMTE3Ljg4OSIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIxMTcuOTQ2Ii8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjExMy42MTEiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMTE2LjU4MyIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIxMTkuMzA2Ii8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjExOC44MDIiLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iMTIwLjc5OSIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSIxMjAuODU3Ii8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjEyMS41OTQiLz4KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iMTIxLjQyMSIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSIxMjMuNzQiLz4KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iMTI1LjE4OSIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIxMjUuNjczIi8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjEyNC43NzciLz4KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iMTIyLjQzMiIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIxMjAuMDExIi8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjExOC42MjIiLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iMTE4LjU1OSIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIxMTcuNTI0Ii8+CisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjExNy4yNTciLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iMTE5LjkwOSIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIxMjAuOTIxIi8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjExOS45NiIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIxMTguNDgxIi8+CisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjExOC42MDUiLz4KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMTE4LjI4MiIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIxMTguNjYzIi8+CisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjExNy4wMDkiLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMTE3Ljc2NiIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIxMTkuNzIyIi8+CisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjEyMC4yOTkiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMTE4LjM2NiIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSIxMjIuNTI5Ii8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjEyNC44MzMiLz4KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iMTIzLjA2Ii8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjEyMi4zOTYiLz4KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iMTIyLjc5MiIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIxMjIuMjMyIi8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjExOS43OSIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIxMjIuODYiLz4KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iMTE5LjAxMiIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSIxMTguMzIxIi8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjExNS40NTYiLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iMTE5LjM3NCIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIxMjAuMzQ0Ii8+CisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjExOS4yNTQiLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iMTE3LjgzIi8+CisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjExNy4wMDEiLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMTE2Ljc4MiIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIxMTYuODAzIi8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjExOC43NSIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSIxMTguMzU4Ii8+CisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjExOS40OTMiLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iMTE5LjY5OCIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSIxMTkuOTA4Ii8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjEyMC42NzUiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iMTIyLjc1NCIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIxMjUuMzg1Ii8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjExOC4yMTQiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMTE5LjMyOSIvPgorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSIxMjAuMTEiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iMTE5LjY4OSIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSIxMTcuMTIiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTE0LjcyOSIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIxMjAuODcxIi8+CisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjExOS4xNzciLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMTE2LjY5OSIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSIxMTYuNzY4Ii8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjExOC4wNzUiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMTE1LjU3MSIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSIxMTUuODY3Ii8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjExNC4zMDkiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iMTIyLjc4NyIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSIxMTguOTA0Ii8+CisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjExOC41MzEiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iMTE5LjQzOCIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSIxMjAuOTA4Ii8+CisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjExOS44NDQiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMTIwLjU3NSIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSIxMjMuMjEyIi8+CisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjExOC43MTIiLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iMTE4LjMxNiIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIxMTguODU5Ii8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjEyMC4wOTIiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iMTE5LjUzMiIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSIxMTguMTc5Ii8+CisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjExNS43MzEiLz4KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iMTE3LjY3MSIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIxMTYuMDQ2Ii8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjExNy40MTYiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iMTE3LjU3OCIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSIxMTYuNzU4Ii8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjExOC4zMTkiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMTE4LjM1NSIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIxMTguMTM2Ii8+CisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjExNy4yMjUiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMTIyLjY1OSIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIxMTguNTQ3Ii8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjExNi42MzUiLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMTE4LjEwNSIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIxMTguNTAzIi8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjExOS41NDciLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMTIxLjQiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMTIzLjM5NiIvPgorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSIxMjYuMDY4Ii8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjExOS4zMyIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSIxMjAuNTI0Ii8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjEyMC43NDIiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMTE5LjU0OCIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIxMTcuMzU4Ii8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjEyNC4yNjciLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMTIyLjM4OCIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSIxMjAuNzc0Ii8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjExNy4zNDUiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMTE2LjY5OCIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIxMTYuNzk4Ii8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjExOC4yMTkiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMTE3Ljg3OSIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxMTcuMjg3Ii8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjExNy40MiIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIxMTYuNzk4Ii8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjExNy4xODQiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iMTE5LjY2NSIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIxMjEuMDMzIi8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjEyMC44MzkiLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iMTIyLjQ1NiIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIxMjAuNTM0Ii8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjEyMi43NjYiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iMTIzLjczNSIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIxMTYuNjU0Ii8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjExOC4xMTEiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iMTE4LjQ0MSIvPgorCQkJCQk8dmFsIG89ImViOGFlIiB2PSIxMTcuNDYzIi8+CisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjExMy41NDkiLz4KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iMTIzLjU5NiIvPgorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSIxMjAuNzA5Ii8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjExOC45NCIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSIxMTYuMDAyIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjExNy43NDEiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iMTE3LjQ5Ii8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjEyMS40MzMiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMTE3LjczNSIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIxMTguMTY1Ii8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjExNy44MzkiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMTE3LjY4NSIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIxMTcuNTE4Ii8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjExOS4zODUiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMTIxLjIwMiIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIxMjAuMjU0Ii8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjExOC4zMzYiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTE4LjI2NyIvPgorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSIxMjMuMDg4Ii8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjEyMy4xODMiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMTI2LjM3NyIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSIxMjMuNzcyIi8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjEyMy42MzQiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjEyMy4wMDgiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjEyMS4zODIiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjExNy42OTYiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjExNy45MDEiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjExOS40MDQiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjExNy42NDYiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjExOC4xNDciLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjExNy44MDIiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjEyMC4xNTEiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjExOS43MzMiLz4KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjExOS4wOTYiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjExOS4yOTEiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjExOC45NzMiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjExNi4zMzYiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjExOC4xNzEiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjExOS4wODIiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjEyMC45NTMiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjEyMS40MSIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iMTE5LjA4OCIvPgorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iMTIwLjk0MSIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iMTIzLjY5OSIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iMTIyLjQ4Ii8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSIxMjMuMzc4Ii8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIxMjMuMzEyIi8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIxMjMuMjE3Ii8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSIxMjAuOTYxIi8+CisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSIxMTguMDc2Ii8+CisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIxMTguNTczIi8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIxMTcuOTc4Ii8+CisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSIxMjAuMDE5Ii8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIxMjEuNjYyIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSIxMjIuMjY4Ii8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSIxMjIuMzE3Ii8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIxMjEuOTM0Ii8+CisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSIxMjAuNzc2Ii8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIxMjEuODg5Ii8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIxMjEuMDY0Ii8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIxMTYuODI0Ii8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIxMTcuNTU2Ii8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIxMTguNzg0Ii8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIxMjAuNzciLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjEyMi41NjUiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjEyMC4yNjMiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjEyMi43MjkiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9IjEyNC41NjEiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjEyNS4yMzciLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjEyNS4zNDQiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjEyNS40OTIiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjEyNC42NyIvPgorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iMTIyLjgxOSIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMTIxLjcxMyIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMTIwLjg4MyIvPgorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMTE5Ljg1Ii8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIxMTcuMTc2Ii8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIxMTcuNDQ3Ii8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSIxMTguNjc5Ii8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIxMjAuMDE2Ii8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIxMTkuOTU5Ii8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMC4xMDEiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSIwLjEwMiIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMC4xMDQiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMC4xMTUiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwLjEwNCIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMC4xMDQiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwLjExMyIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAuMTExIi8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAuMTExIi8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjExNy44NCIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMTE5LjE5OSIvPgorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMTIwLjIyNiIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMTIwLjkyNCIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMTI0LjAzOCIvPgorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iMTI2Ljc0NyIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iMTI4LjM2NCIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMTI2LjU1Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSIxMjYuNTIyIi8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSIxMjYuODkzIi8+CisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSIxMjYuMTE0Ii8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSIxMjQuMjE5Ii8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSIxMjMuNjkxIi8+CisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIxMjQuNzIzIi8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSIxMjQuNjY3Ii8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSIxMjMuNjY2Ii8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSIxMjMuMzM3Ii8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSIxMjQuMDQyIi8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSIxMjUuOTIiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjEyNS4xNDQiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjEyNC43NjkiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjEyNC41NDkiLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjEyMy40ODMiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjExNi42MyIvPgorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iMTIwLjQ2MSIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iMTIxLjIyOCIvPgorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iMTIxLjE1NCIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iMTIzLjQwOSIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMTI1LjQwMyIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iMTIyLjcxNiIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iMTI0LjM4NSIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMTI2LjA0NiIvPgorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iMTI2LjE2NiIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iMTI1LjI2Ii8+CisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSIxMjMuMjkiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjEyMC40OTkiLz4KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9IjEyMC43MDUiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjEyMC40OTIiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjExOS45OTYiLz4KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9IjEyMC4yNjUiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjEyMi4yMzIiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjEyMS40OSIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMTIwLjcwNCIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMTIwLjYxNCIvPgorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iMTE5LjgzOSIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMTE5LjY4NSIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMTE1LjU5MyIvPgorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iMTE4Ljg2Ii8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSIxMTkuOTciLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjEyMS4zNjkiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjEyMS4wOTYiLz4KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9IjEyMi40NTEiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjEyNS43NjUiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjEyNi4zMDIiLz4KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9IjEyNC40OTUiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjEyNS42NTkiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjEyNS43NzMiLz4KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9IjEyNC40NjQiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjEyMy4xNjciLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjEyMS4xMzciLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9IjEyMy42NzciLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjEyMy41NjkiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjEyMi4yNTQiLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9IjEyMS43OTQiLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjEyMi4wODgiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjEyMy44NyIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iMTIzLjU1NiIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTE5LjY4MiIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMTE5LjY3NiIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMTE4LjgyMSIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMTE5LjgzNiIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMTIxLjE5MiIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iMTIxLjY4NSIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMTE3Ljg3NCIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMTE4Ljc2MiIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iMTIwLjI2MyIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iMTIyLjQ2OCIvPgorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iMTI0LjUzNiIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iMTIyLjU5OCIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iMTIzLjIiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjEyMy4yMTgiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjEyMi4yMDIiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjEyMS40MjQiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjEyMC44ODgiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjEyMi43NDMiLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjEyMy4wNzgiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjEyMi4yMzciLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjEyMC44NTgiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjEyMS4yMzEiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjEyMi4xODUiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjEyMi42NDgiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjEyMi45OTIiLz4KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9IjEyMi40ODIiLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjExOC43MDciLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjExNy4zNjciLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjExNS43MTQiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjExNy43NCIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMTE5LjA0OCIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMTIwLjE3OSIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iMTE5Ljk0OSIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMTIwLjkwNiIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMTE3LjI1MSIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iMTIwLjExOCIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMTIxLjUyMSIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iMTIyLjE4OCIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iMTIyLjIxMiIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iMTIxLjUzMSIvPgorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iMTE5Ljk4MSIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iMTE5Ljk3NyIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTIyLjkzOSIvPgorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iMTIyLjI4OSIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iMTIyLjA1Ii8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIxMjIuMjcxIi8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSIxMjIuODU2Ii8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSIxMjIuNjExIi8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxMjEuMTQ4Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSIxMjAuODY0Ii8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxMTkuNjA5Ii8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIxMTYuMTAxIi8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSIxMTkuMTY1Ii8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSIxMTkuMjg3Ii8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxMjAuMjA4Ii8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSIxMTguNzc1Ii8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSIxMjIuMjIyIi8+CisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIxMjMuMjg4Ii8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSIxMjYuMDI2Ii8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSIxMjQuODI4Ii8+CisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIxMjUuNzY5Ii8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSIxMjUuMjE4Ii8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSIxMjQuNzk1Ii8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIxMjIuMzkzIi8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIxMjAuNTIzIi8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIxMTcuMzE5Ii8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIxMTguNzcyIi8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSIxMTguODA4Ii8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSIxMTkuNjg2Ii8+CisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSIxMTkuOTkiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjEyMi43MDgiLz4KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjEyMC43NjIiLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjExOS45MiIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMTE5LjEyOSIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMTE3LjA5MSIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMTIxLjIxOSIvPgorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iMTIwLjI4Ii8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSIxMTkuNjkiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjEyMC42NzciLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjExOC43NTYiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjExOS42MDgiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjEyMS4wNTkiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjEyMy41NzMiLz4KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjEyNS45NzYiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjEyMy45MjYiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjEyMy44ODgiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjEyMy4wOCIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iMTIxLjY5Ii8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSIxMTcuOTE2Ii8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSIxMTYuMDE0Ii8+CisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSIxMjEuOTM1Ii8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIxMTkuNjc1Ii8+CisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSIxMTguOCIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMTE5LjY0OSIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iMTE5LjcxNSIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iMTE4LjYyMiIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMTE4LjQ1OSIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMTE3LjMzOSIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMTIyLjA5NSIvPgorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iMTE5LjU1NiIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMTE5Ljc2MSIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iMTIwLjUzIi8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIxMjEuNDI4Ii8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIxMTguMDAzIi8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIxMjAuMjI4Ii8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSIxMjMuMzMiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjEyNS44NjEiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjExOC43ODgiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjExOS4xMDYiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjExOS4xMTYiLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjExNi45MDgiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjExNS42NDIiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjEyMi4wMTMiLz4KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9IjExOS4yMzQiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjExOS4zMSIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMTE4LjU2NiIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iMTE4LjI0MyIvPgorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMTE4LjU3OSIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMTIwLjI4OCIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iMTE5Ljk5NiIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMTE5LjI0OSIvPgorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMTE4Ljg2NiIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMTE3Ljc0MSIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMTE4LjU0MyIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMTE3LjUzOCIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMTE4LjcwOSIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMTE5Ljk0Ii8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIxMTcuNjY4Ii8+CisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIxMTkuMTU5Ii8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxMjAuNzcxIi8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSIxMjAuMjM0Ii8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSIxMjEuNjI0Ii8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxMjIuMjcyIi8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxMjIuNDIyIi8+CisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSIxMjEuNjg3Ii8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxMjAuMzYxIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSIxMTguNzUxIi8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSIxMjAuMDI4Ii8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIxMTcuOTc0Ii8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIxMTcuMzA1Ii8+CisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSIxMTcuNzEiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjExOC4xOTMiLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjExOS41NDIiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjExOC43NDEiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjExOC4yOTUiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjExNy41MzQiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjExNC40NzIiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjExNy4zNTciLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjExOC44NTEiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjEyMC4xMzciLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjExOS4zNDkiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjEyMy4yMjYiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjEyMi45MjEiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjEyNC4yNzMiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjEyMy41MTUiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjEyNC4xODIiLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjEyNC4yNyIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMTIyLjgyNyIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iMTIxLjgwMSIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTE5LjUxNCIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMTE4LjkyMiIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMTE4Ljg2Ii8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIxMTcuMjY0Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIxMTguMDIyIi8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSIxMTYuODE5Ii8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSIxMTguMzg0Ii8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSIxMTkuMjc2Ii8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIxMTguODEiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjExOC42NzYiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjExOC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjExOS42MjUiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjExOS4wNDIiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjExOS42MzgiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjEyMC4zNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjExOC43MjgiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjExOS43NzciLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjEyMi42MjEiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjEyMC40OTQiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjEyMi4zMzUiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjEyMy4wMDEiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjEyMy44MjciLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjEyMi45MzkiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjEyMi4zOTgiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjEyMS4yMTIiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjEyMC44NDQiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjEyMC4wNTQiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjExOC4yOTciLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjExNy43OTUiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjExNy45OTYiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjExOS4yODciLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjExOC44MTUiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjExOC45NTUiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjExOC40NDkiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjExOS4xNTciLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjEyMC4xMjQiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjExOS44NTgiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjEyMC42NjgiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjEyMS4wNjciLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjExOC4yNjUiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjEyMC4zMDgiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjEyMi44NTEiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNDQwNjAwIiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iLTEyNzUiLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9Ii0xNDgyIi8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iLTE1NjIiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSItMTY0MyIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9Ii0xNDQ2Ii8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iLTEyNzYiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSItMTA0OSIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9Ii0xNjk0Ii8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iLTE3NjAiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSItMTY2MiIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9Ii0yMDY3Ii8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iLTE5OTIiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSItMTkyOCIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9Ii0yMDE4Ii8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSItNiIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWE4NjciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOThlZDQiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTFiNzciIHY9Ii0xODQ1Ii8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9Ii02MzEiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMTU2NCIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSItNjYiLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iLTM5MyIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSItNjkxIi8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9Ii04ODMiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iLTE1NzUiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iLTIyMDkiLz4KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iMTA5Ii8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9Ii00MjAiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iLTg1OSIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSItNjI4Ii8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjUxNiIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSIxODM5Ii8+CisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjI5MyIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSIxMTg1Ii8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjM5NDYiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iNDIzMCIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIzNjg5Ii8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjI0OCIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSI0MzAiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iMTAyNiIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSItNTI2Ii8+CisJCQkJCTx2YWwgbz0iYjdiMDciIHY9Ii0yNTgiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iLTY1Ii8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9Ii00ODkiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iLTg0MiIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSIxMDgyIi8+CisJCQkJCTx2YWwgbz0iYmMxNTciIHY9IjMxMCIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSItMTExMiIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIzNjMyIi8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjUxMyIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIyMTQiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iLTI5MiIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSItMTI3Ii8+CisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjQ5NSIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIxODE1Ii8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjgxOCIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIxNTM5Ii8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjY4MCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI3MTIiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iMTI4MCIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIzOTciLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iNDkzIi8+CisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjI1MCIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI3ODUiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iLTIwMSIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIyMTU2Ii8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjI5MzciLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMjEwNyIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIyODI0Ii8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjIyNjkiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMTQ0MSIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSItMjk3Ii8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9Ii0yMjgwIi8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9Ii0xMTg5Ii8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9Ii05NjQiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iLTQ0MiIvPgorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSIyNjEiLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTMwOSIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSItODQ5Ii8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjE3OCIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSIxMTExIi8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjI3NTAiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMjc2OSIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIyOTczIi8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjEzMjciLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iNDU0Ii8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjE5OSIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxNjciLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iNTU2Ii8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjQxNiIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSItMzcwIi8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9Ii0xMTU0Ii8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjkzIi8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9Ii04NDMiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMTcxIi8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9Ii02NDYiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iLTcyMyIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIyNjY1Ii8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjgzNyIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI2OTgiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iMTA5NyIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIyNjQ5Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9Ii00OTUiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iMTE2NSIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSI1NDIiLz4KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iMTg3MSIvPgorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSI5NzkiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iMTIxMCIvPgorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSItMzU2Ii8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjE2NTQiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMTM2OCIvPgorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIxNDYyIi8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjE2MTIiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMTMwOSIvPgorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIxODg2Ii8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjExMzYiLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iMTE2OSIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxNDAzIi8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjEzMTYiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iLTEwNDEiLz4KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iLTExOTAiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iLTE2MDkiLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iLTE5OSIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSItMjUyIi8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSI1ODUiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjEwNjkiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjE5NzMiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjE4MzEiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjExMjciLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjE3NjciLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjEzNDMiLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjE1NjQiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9Ijg0OSIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iODA1Ii8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIxMDkzIi8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSI4ODAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjEyNTQiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjI2NjQiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjEzNjgiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjEwMDkiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjIwOCIvPgorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iMjIiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjExNDIiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjI4NiIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iLTExNjgiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjcxMiIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iMjI3Ii8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIyMzYiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjM3MiIvPgorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTQ0MSIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMjAxNSIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTIxMSIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTI4NCIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMzY5Ii8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSItMzEwIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSItODAyIi8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSI3ODEiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjQ5MSIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMTAyMyIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iNTE2Ii8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIyIi8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9Ii0xIi8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjIiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjIyNzQiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjE3NzUiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjExNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9Ijc2OSIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iLTg0NiIvPgorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iLTIzNjIiLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9Ii0yOTYxIi8+CisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSItMjUxOSIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iLTI0NDciLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9Ii0yODY1Ii8+CisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSItMjI3NiIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iLTEyNTAiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9Ii03MTYiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9Ii0xNDg5Ii8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSItMjAwNCIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iLTEwNTUiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9Ii05NzgiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9Ii0xMjY5Ii8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSItMzE3MCIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iLTI2NjgiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9Ii0yNTQwIi8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSItMjM3NyIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iLTExMjYiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjEyMTkiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9Ii0xMDYxIi8+CisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSItMTUxOSIvPgorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iLTEyODQiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9Ii0xOTAyIi8+CisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSItMTYyMyIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iLTc3OCIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iLTE3MzAiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9Ii0xNzQ1Ii8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSItMTg3MiIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iLTEyMDciLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9Ii0yMTEiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjE2MTkiLz4KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9Ii03NjQiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9Ii04MjciLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjQwIi8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSItMTk5Ii8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSItOTY3Ii8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSItNjgwIi8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSItMzg1Ii8+CisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSItMjQxIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSIzNzEiLz4KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjQ3MSIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iNjEiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9Ii0yNDQwIi8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSItMzQ0NyIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iLTM4NjIiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9Ii0xNjU3Ii8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSItMjI3MyIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iLTQxMzIiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9Ii0zNzM1Ii8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSItMjY1NSIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iLTMyODYiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9Ii0zMzc3Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSItMjcwNyIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iLTE5ODAiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9Ii03OTciLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9Ii0yMDQ2Ii8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSItMjc5MyIvPgorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iLTE5MzkiLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9Ii0yMDkyIi8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSItMjIxMSIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iLTI2NzkiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9Ii0yNTMwIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI0NTMiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9Ii0xNTciLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjExNDMiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9Ii0xNDYiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9Ii0xMDAyIi8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSItMTQwMiIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMjk0OSIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMjIyOSIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iMTAyMiIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iLTE2MjgiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9Ii0xODM1Ii8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSItMjExIi8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSItNzY3Ii8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSItNzkyIi8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSIxNzMiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9Ijc3NiIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMTI0OSIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iLTk1NyIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iLTkxMSIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iLTI0MyIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iLTY1Ii8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSItMzA4Ii8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSItODExIi8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSItODA2Ii8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSItOTUyIi8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSItNzE2Ii8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSItMTYxOCIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iLTE5MTAiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9Ii0xODA5Ii8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSItMjIyNCIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iLTIyNzIiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9Ii0yMzE3Ii8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSItMjI4MyIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iLTIzMzQiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9Ii0xODYwIi8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSItMjEzOSIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iLTIyMDYiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9Ii0yOTYiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9Ii00NDkiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9Ii0xNDIiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9Ii00MjIiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9Ii0zNjUiLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9Ii01ODEiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9Ii0yNjMiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9Ii0zMjUiLz4KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9Ii0xNDIiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9Ii0zNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9Ii0zMTAiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9IjQ5NiIvPgorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iNjYwIi8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxMjQ2Ii8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIyODg5Ii8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSIxNTMyIi8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSItMTQzIi8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSItNTE4Ii8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSIyMjUiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9Ii0xNjY3Ii8+CisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSItMjMzMCIvPgorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iLTE3MjciLz4KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9Ii0xNDg5Ii8+CisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSItMTUxNSIvPgorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iLTQ3NiIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iLTE5MyIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iMTI4Ii8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIzNzYiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjI4NzIiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjQwOCIvPgorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMTkyMyIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMTgzMCIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMTc5OCIvPgorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iMzM0Ii8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIxMjYwIi8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIxODE1Ii8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSIyMjcyIi8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIyNjIiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9Ii0zODciLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9Ii02MTMiLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9Ii0yNTEiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9Ii04ODUiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjU1MSIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iNDgiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9Ii05ODIiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9Ii0xNjEyIi8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSItMTEyNSIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iLTM4MSIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iLTQ0MSIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iNzEiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjEwMjAiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9Ijc2MCIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iLTMxOSIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iLTExNDQiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjMwMiIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iLTMxOSIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iLTU4MiIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iNDA4Ii8+CisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSIxMDMxIi8+CisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSIxMTM5Ii8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIyMDgyIi8+CisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSItMTIwMiIvPgorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iNjIyIi8+CisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSI0NTYiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9Ii03MzYiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9Ii04MTgiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjE2ODQiLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjMwNyIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iLTgwMSIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iLTEyNTYiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjMzMDgiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjUwNiIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iNjM5Ii8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxOTYzIi8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIyODY3Ii8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSItODMxIi8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSItMjcwIi8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSIyMDEwIi8+CisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIzNDA4Ii8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIzMTkwIi8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSItMTg3Ii8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSItMjI1Ii8+CisJCQkJCTx2YWwgbz0iMjMwYmQ3IiB2PSI1MzEiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9Ii04MjMiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjYyIi8+CisJCQkJCTx2YWwgbz0iMjMzNjFiIiB2PSIxMDc5Ii8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIxNTQ3Ii8+CisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSI5MDAiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjExMiIvPgorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMTc4MCIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMTQwNyIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMjk4Ii8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSI1NjUiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9Ii0zMTEiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9Ii02NTciLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjE2OCIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iNjQ3Ii8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxNDI3Ii8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSI4MjkiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9Ii01Ii8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIxMTk3Ii8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIzNzUxIi8+CisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSIyOTkxIi8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIyODAxIi8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSItMTE4OCIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iLTgyOCIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iLTc5OSIvPgorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iNTciLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjQ2MDEiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjE5MTEiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9Ijc5OSIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iLTk3MiIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iLTcwOCIvPgorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iLTc5MCIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iLTQ5MCIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iLTEzMTYiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9Ii04MjUiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9Ii0xMDEyIi8+CisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSItMTE3OCIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iLTM1Ii8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSIxMzUyIi8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSIxMDU5Ii8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIxMjkwIi8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIyMDc5Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIzNjE4Ii8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSItNDY4NCIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iLTI0NzAiLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9Ii01NTYiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjE4OSIvPgorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iMjYwIi8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSI4MTYiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjI0ODkiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjI3MzIiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjIyMzQiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjU3Ii8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIxMjE5Ii8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSI2MzIiLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9Ii0xMzYwIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIzOCIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iLTk4MCIvPgorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iLTE1MDEiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9Ii0yMTE5Ii8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSItMTYxOCIvPgorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iLTEzMTQiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9Ii00MzIiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjMwOSIvPgorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iNjg1Ii8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIxNjkyIi8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIxODk5Ii8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIzNjIyIi8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIyNzA5Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIzMDM3Ii8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIyODk4Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIzMjUxIi8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxODYiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9Ii02MzYiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9Ii00MjEiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9Ii03MjkiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9Ii05NzgiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjI2NzAiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjEyNTUiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9Ii00OTYiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNDI0NjAwIiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iLTQzMTMiLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9Ii00MTYzIi8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iLTQxMDIiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSItNDA5MSIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9Ii0zOTgyIi8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iLTM5MzQiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSItNDQzOSIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9Ii01MzIzIi8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iLTYyOTgiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSItNzMzMiIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9Ii03NTQxIi8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iLTcyNDgiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSItNjg2OSIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9Ii02NDU0Ii8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjExOTM3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSItOSIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSItOSIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSItNjQ2MCIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSItMzU0NiIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSItOTg2Ii8+CisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjY5NyIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSI3NzYiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iOTI1Ii8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjEyNSIvPgorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSI0NTYiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iOTAzIi8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjI3OCIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSIyNyIvPgorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSI0MyIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIxNzMiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iOTQ3Ii8+CisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjcyOCIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSItNDUyIi8+CisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9Ii0xMTciLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMjMiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMTgyIi8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9Ii0xNTIiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iLTQyMyIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSItNzA1Ii8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9Ii03OTAiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iLTE1NzUiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iLTIwMjciLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iLTE3NTciLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iLTE3MjIiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iLTE5MDEiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iLTc0MSIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSItODEyIi8+CisJCQkJCTx2YWwgbz0iYmNmNjciIHY9Ii04OTEiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iNjUyIi8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjQxMSIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSI1MTYiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iMzk4Ii8+CisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjM4MiIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI0NzAiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iNTkxIi8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjI2NyIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSI3NzAiLz4KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iMTY0Ii8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjQzOCIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSItNDMiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iNzIiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMjQ5Ii8+CisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjIwMSIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSIxMTUiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iLTQyNSIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSItMjI5Ii8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9Ii0yODQiLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iLTI0NyIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSItMTM1Ii8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9Ii01NCIvPgorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSI5NiIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjE2Ii8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjU5OCIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSI3MjEiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iODE4Ii8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjEwNjciLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTI0NSIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSItMTE3Ii8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9Ii03MjEiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iLTE1MDQiLz4KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iLTIwODQiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iLTI1NTQiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iLTIzNDUiLz4KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iLTI5MjAiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iLTI3MTIiLz4KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iLTI4NTgiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iLTI5MjgiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iLTI4MDMiLz4KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iLTMwMzIiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iLTQwMTciLz4KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iLTM5MTgiLz4KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iLTM0MTIiLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iLTM0NDEiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iLTI1NjEiLz4KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iLTIxMzkiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iLTE3NjUiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iLTQ2NSIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSItNzAyIi8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9Ii02NDciLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iLTY3NiIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSItNTA5Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9Ii0yMTUwIi8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9Ii0yMzU1Ii8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9Ii0zMTcxIi8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9Ii00MDMxIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9Ii00MzM4Ii8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9Ii00NjUxIi8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9Ii00NjY4Ii8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9Ii00MzQ2Ii8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9Ii00NTcxIi8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9Ii00OTI5Ii8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9Ii00NjA3Ii8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9Ii00ODY2Ii8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9Ii00MzA4Ii8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9Ii0zODk3Ii8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9Ii0zNzg0Ii8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9Ii0yOTg4Ii8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9Ii0zMDk5Ii8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9Ii0zMzM1Ii8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9Ii0yNjg2Ii8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9Ii0yNTIyIi8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9Ii0yMDc0Ii8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9Ii0xOTg5Ii8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSItMTc4OCIvPgorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iLTE3OTUiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9Ii0yMDc1Ii8+CisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSItMjY5OCIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iLTM5MzIiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9Ii00NDA2Ii8+CisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSItNDM2NiIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iLTQ2OTIiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9Ii00MzAyIi8+CisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSItMzkyNyIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iLTQxMDEiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9Ii00MTg3Ii8+CisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSItNDM0MiIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iLTQxNjIiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9Ii00NDU2Ii8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSItNDEzMiIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iLTQ0OTkiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9Ii0zODgyIi8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSItMzI5NSIvPgorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iLTI4NjMiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9Ii0yNjY4Ii8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSItMTc3OCIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iLTE4MTAiLz4KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9Ii0xODI5Ii8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSItMTgwMCIvPgorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iLTE1OTUiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9Ii0yMDUwIi8+CisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSItMjk2MSIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iLTM2MjciLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9Ii00ODMwIi8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSItNDI5NiIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iLTUyNTciLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9Ii00NDA4Ii8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSItNDMyNiIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iLTQ0MjAiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9Ii0zOTUwIi8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSItNCIvPgorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iLTQiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9Ii00Ii8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSItNCIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iLTY4NjgiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9Ii02NzkwIi8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSItNzI1MiIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iLTY3MzQiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9Ii02MDMwIi8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSItNTg5MiIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iLTYwNjYiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9Ii01NDg2Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSItNTQ0NCIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iLTUzMzkiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9Ii00OTgzIi8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSItNTE5MCIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iLTYzMTMiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9Ii02ODM5Ii8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSItNzg1MyIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iLTEzNTA3Ii8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSItMTMzODEiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9Ii0xMjc3OCIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iLTExODkwIi8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSItMTIzMzgiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9Ii0xMTc3NCIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iLTEyNjQ5Ii8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSItMTE4NDkiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9Ii03NDcxIi8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSItODEyNiIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iLTc2OTYiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9Ii02NTM4Ii8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSItNjE3NSIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iLTU2NjQiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9Ii00NDgwIi8+CisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSItNDMwMCIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iLTQyNjMiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9Ii00MTE5Ii8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSItNDEwMyIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iLTQ1MTEiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9Ii01MTM1Ii8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSItNjAzOCIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iLTYzOTIiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9Ii01ODk5Ii8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSItNjY5MCIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iLTY2MDMiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9Ii02MTU5Ii8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSItNjEyOCIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iLTYyMjAiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9Ii02MDQ3Ii8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSItNjAwOSIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iLTIyOTUiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9Ii0yNTQzIi8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSItMzA4NSIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iLTMyNjkiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9Ii0yMjY3Ii8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSItMjE1OSIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iLTE1MzIiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9Ii0xNjc1Ii8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSItOTYwIi8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSItMTEyMiIvPgorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iLTEwNjEiLz4KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9Ii01MDUiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9Ii01MzYiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9Ii05OTEiLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9Ii0xODE4Ii8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSItMjU3NCIvPgorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iLTI4NDQiLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9Ii0yNjA4Ii8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSItMjkyOCIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iLTIxMTIiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9Ii0yMDc0Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIzNTQiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjQzOCIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMzQwOCIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMzI2OSIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMzY1NSIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iMzUyMSIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iNTQzMSIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iNTU2MCIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iNTY2MCIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iNTYyMyIvPgorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iNTg5NiIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iNjY1NiIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iNjY0NyIvPgorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iNjczMyIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iNjkxNCIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iNjg3MyIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iNjY5MSIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iNTgxNCIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iNTYxNyIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iNTYwOCIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iLTMyMzAiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9Ii0zNjU2Ii8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSItMzYyMCIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iLTM0NDkiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9Ii0zNjAxIi8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSItMzczNSIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iLTU5OTYiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9Ii02NzE4Ii8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSItNjU4MyIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iLTY3NjciLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9Ii02ODAwIi8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSItNjUyNSIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iLTYxNzAiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9Ii01Njc2Ii8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSItNDkxMSIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iLTQ5MTEiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9Ii00ODAxIi8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSItMTk4MiIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iLTE4MTAiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9Ii0xODM0Ii8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSItMjI1NiIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iLTIzMjUiLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9Ii0yNjg0Ii8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSItMjY3NSIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iLTI3NzgiLz4KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9Ii0yNjg4Ii8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSItMjY1MCIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iLTI1NTciLz4KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9Ii0yMzU1Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSItMjMxOCIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iLTI1ODIiLz4KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9Ii0yODExIi8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSItMzE4MiIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iLTM1NzgiLz4KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9Ii0zNTQ0Ii8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSItMzE0OCIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iLTMzNDUiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9Ii0zMTM3Ii8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSItMjgwOSIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iLTI1MDEiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9Ii0yNDkzIi8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSItMjE1NyIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iLTIxMzciLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9Ii0yMTU1Ii8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSItMjQ5OCIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iLTIzNjgiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9Ii0zNTEzIi8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSItNDU2NiIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iLTUzNDUiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9Ii02MDU3Ii8+CisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSItNTc5OSIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iLTUzNDEiLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9Ii01Mzk1Ii8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSItNTk3OSIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iLTYwOTAiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9Ii02Nzc4Ii8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSItNjM3OCIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iLTU0NzMiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9Ii01MzgyIi8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSItNDYwOCIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iLTQzMTYiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9Ii00MDU1Ii8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSItMzg2NyIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iLTM0ODIiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9Ii0zMTE2Ii8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSItMzAxMCIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iLTI5NDQiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9Ii0yODE5Ii8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSItMzY0NCIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iLTQ0OTkiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9Ii01Nzk1Ii8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSItNjE5OCIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iLTYxNzQiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9Ii02MTAyIi8+CisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSItNjIxOCIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iLTU4OTgiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9Ii01OTg2Ii8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSItNTYzMyIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iLTYyMTAiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9Ii01NzgzIi8+CisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSItNTcyNiIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iLTU1MzkiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9Ii01NDA4Ii8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSItNDYwOCIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iLTM4NzYiLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9Ii0zNjE4Ii8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSItMzI5MiIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iLTE2ODUiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9Ii0yMDcyIi8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSItMjA1MCIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iLTE2NzAiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9Ii0xNzkyIi8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSItMzQ4NSIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iLTM5MTEiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9Ii00NTc4Ii8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSItNDc4OCIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iLTQ0NTkiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9Ii00NjkzIi8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSItNDgzMCIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iLTQ2NTIiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9Ii00NDUyIi8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSItNTM5NCIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iLTU1MzgiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9Ii01ODY2Ii8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSItNTIyNSIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iLTUxNjIiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9Ii01MjUwIi8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSItNDM4NCIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iLTQyMTgiLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9Ii00MDE2Ii8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSItMzIyMiIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iLTMzMTEiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9Ii0zMTgzIi8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSItMjk3NCIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iLTI5NDUiLz4KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9Ii0yOTMzIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSItMzU3MCIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iLTQ1NDUiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9Ii01MTE5Ii8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSItNTczNyIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iLTY1MTUiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9Ii02Nzc2Ii8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSItNjc1NSIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iLTYzNjEiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9Ii02NTQ2Ii8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSItNjI3MyIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iLTU0MDIiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9Ii01Nzk3Ii8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSItNTY0NyIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iLTU3NDciLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9Ii01NDQzIi8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSItNTQ0NSIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iLTQ1NTciLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9Ii00MDE5Ii8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSItMzQ4NCIvPgorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iLTM2MTYiLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9Ii0zNTU5Ii8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSItMzQwOCIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iLTM2MDkiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9Ii00MDIwIi8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSItNDE4MiIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iLTQ5OTciLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9Ii01ODEwIi8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSItNTU5NSIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iLTE1MjI0Ii8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSItODY5NSIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iLTQ1NzUiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9Ii02MzEzIi8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSItNjEwNCIvPgorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iLTU3NTAiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9Ii01NzY0Ii8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSItNTY0OSIvPgorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iLTUyNDkiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9Ii01NTYyIi8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSItNDg3NSIvPgorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iLTQ2MTkiLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9Ii00NjExIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSItMzYxOSIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iLTM0NjciLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9Ii0zNTY0Ii8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSItMzY3MiIvPgorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iLTM2MTQiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9Ii0zNjIxIi8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSItMzg2OCIvPgorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iLTM5NjkiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9Ii0zODg2Ii8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSItNDM4MSIvPgorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iLTQyNzEiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9Ii0zOTY3Ii8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSItNDAwMiIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iLTM1NjIiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9Ii0zODc0Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSItMzU2MSIvPgorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iLTQ2OTAiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9Ii01MTk2Ii8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSItNTIxMSIvPgorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iLTUwMzciLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9Ii00OTYzIi8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSItNDA0OCIvPgorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iLTM3MDgiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9Ii0zMjE1Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjQzODIwMCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9Ii0xMTAzIi8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSItMTI4NiIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9Ii0xMzUxIi8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iLTE0MjciLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSItMTI0NiIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9Ii0xMTAxIi8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iLTkwOSIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9Ii0xNDcyIi8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iLTE1MjMiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSItMTQzNSIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9Ii0xNzg0Ii8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iLTE3NTciLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSItMTY4MiIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9Ii0xNzQ1Ii8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSItNiIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNWE4NjciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOThlZDQiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTFiNzciIHY9Ii0xNTkwIi8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9Ii01MDAiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMTM3OSIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSItNDUiLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iLTM0NiIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSItNTgwIi8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9Ii03NTIiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iLTEzNjciLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iLTE5MDYiLz4KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iMTAxIi8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9Ii0zNjYiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iLTc0MCIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSItNTUwIi8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjQzMiIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSIxNTk1Ii8+CisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjI3NSIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSIxMDE5Ii8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjM0NDQiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMzYyOSIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIzMjAzIi8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjIxNSIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSIzODAiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iODkwIi8+CisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9Ii00NDYiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iLTIwMCIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSItNDQiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iLTQyNCIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSItNzE4Ii8+CisJCQkJCTx2YWwgbz0iYmIzNDciIHY9Ijk0NiIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIyNzYiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iLTk0NCIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIzMTI5Ii8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjQ1MyIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIxOTQiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iLTI0NiIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSItMTIyIi8+CisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjQzMCIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIxNTgyIi8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjcyMCIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIxMzMzIi8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjU4OCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI2NDIiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iMTA5NiIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIzMTMiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMzc0Ii8+CisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjIwNCIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI2OTIiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iLTE5NiIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIxODg4Ii8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjI1MDIiLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMTg0MCIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIyNDM3Ii8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjE5MzAiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMTIxOSIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSItMjUwIi8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9Ii0xOTcxIi8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9Ii0xMDI5Ii8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9Ii0xMDcyIi8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9Ii0zODgiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMjI5Ii8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjExMzEiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iLTcyNiIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIxNjYiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iOTY1Ii8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjIzNDEiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMjM1NCIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIyNTY1Ii8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjExMzYiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMzY3Ii8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjE3MyIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxNTYiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iNDYwIi8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjM1OCIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSItMzA4Ii8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9Ii0xMDA2Ii8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjkzIi8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9Ii03MjMiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMTQ3Ii8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9Ii01NTEiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iLTYyNiIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIyMzE2Ii8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjcxNCIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI2MDAiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iOTUzIi8+CisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjIyNjciLz4KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iLTQwMyIvPgorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSI5OTkiLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iNDc1Ii8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjE2NjMiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iODI5Ii8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjEwNTUiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iLTMxNCIvPgorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIxNDMxIi8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjEyMDEiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMTI4MCIvPgorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIxNDMxIi8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjExNDUiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMTYzNSIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSI5NTciLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iMTAxOSIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxMjE5Ii8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjExNDMiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iLTg5MyIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSItMTAxOSIvPgorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSItMTM4OSIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSItMTgyIi8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9Ii0yMjAiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjUwMiIvPgorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iOTQwIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIxNzE5Ii8+CisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIxNTkyIi8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSI5NjAiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjE1MzciLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjExNzciLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjEzMzciLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjczNyIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iNzIzIi8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSI5MTciLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9Ijc5NCIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMTA3NSIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMjMyOCIvPgorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iMTE5MiIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iODY3Ii8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIxODQiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjEyIi8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSI5NzgiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjI1NiIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iLTEwMDciLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjYxNCIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iMjA1Ii8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIxOTUiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjMxNiIvPgorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTI0MSIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMTc0OCIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTA0NiIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTA5OSIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMzA5Ii8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSItMjAyIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSItNzIyIi8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSI2ODAiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjQ0MCIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iODcwIi8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSI0NzUiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjIiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9Ii0xIi8+CisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9Ii0xIi8+CisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMTk1OSIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMTUwNiIvPgorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMTAyNyIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iNjc3Ii8+CisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSItNzU5Ii8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSItMjA0MiIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iLTI1NTQiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9Ii0yMTc4Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSItMjEyNiIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iLTI0ODQiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9Ii0xOTgwIi8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSItMTA3MiIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iLTUyNCIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iLTEzNjYiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9Ii0xNzUzIi8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSItODkzIi8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSItODQ1Ii8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSItMTE0OCIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iLTI3MTAiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9Ii0yMjk3Ii8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSItMjIwOCIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iLTIwMzciLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9Ii05OTciLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjEwNDgiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9Ii05NTUiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9Ii0xMzM0Ii8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSItMTEyMSIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iLTE2MjUiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9Ii0xNDE5Ii8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSItNjcxIi8+CisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSItMTUwMSIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iLTE1MTEiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9Ii0xNjE4Ii8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSItMTAzNyIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iLTE5MiIvPgorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iMTM5NyIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iLTYyNyIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iLTcxMSIvPgorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iMjAiLz4KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9Ii0xMzAiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9Ii04NDMiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9Ii02NDIiLz4KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9Ii0zMjAiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9Ii0yMTAiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjI5NSIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iNDE3Ii8+CisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIzNyIvPgorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iLTIxMDUiLz4KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9Ii0yOTgwIi8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSItMzMyOSIvPgorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iLTE0MzAiLz4KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9Ii0xOTg2Ii8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSItMzU3MCIvPgorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iLTMyMzAiLz4KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9Ii0yMjg4Ii8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSItMjg0NiIvPgorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iLTI5NDYiLz4KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9Ii0yMzQyIi8+CisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSItMTcxOSIvPgorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iLTY2OCIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iLTE3NjEiLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9Ii0yNDEzIi8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSItMTcyNyIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iLTE4MzIiLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9Ii0xODg5Ii8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSItMjM0NiIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iLTIxNzYiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjM3NCIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iLTEzMiIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iOTkzIi8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSItMTUwIi8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSItODQzIi8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSItMTE5NiIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMjU3NyIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMTU4MiIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iOTA5Ii8+CisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSItMTQwNSIvPgorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iLTE1OTciLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9Ii0xODYiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9Ii02NTgiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9Ii02NzkiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9Ijg5Ii8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI2ODAiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjEwOTUiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9Ii04MzIiLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9Ii03ODUiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9Ii0yMjgiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9Ii00MCIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iLTI4MCIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iLTY5NyIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iLTY5NyIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iLTgxMSIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iLTYyOSIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iLTE0MDgiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9Ii0xNjY2Ii8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSItMTU3NCIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iLTE5MjgiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9Ii0xOTcwIi8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSItMjAxNyIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iLTE5ODQiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9Ii0yMDA3Ii8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSItMTYxMSIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iLTE4NTEiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9Ii0xOTA4Ii8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSItMjUxIi8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSItMzg2Ii8+CisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSItMTIxIi8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSItMzY1Ii8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSItMzEzIi8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSItNTA2Ii8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSItMjMyIi8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSItMjg4Ii8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSItMTIxIi8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSItMzEwIi8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSItMjQ1Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSI0MzkiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjYwOSIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iMTA3OCIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMjQ5MSIvPgorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTMyNyIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iLTExNSIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iLTQ0MiIvPgorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMjAzIi8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSItMTQzOSIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iLTIwMTkiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9Ii0xNDkxIi8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSItMTI4NSIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iLTEzMDkiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9Ii00MDkiLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9Ii0xNjIiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjkwIi8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIzMTkiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjI0ODMiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjM1NyIvPgorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMTY4MSIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMTU3MiIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMTU3NSIvPgorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iMzAyIi8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIxMDc2Ii8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIxNTU1Ii8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSIxOTcxIi8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIyMzkiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9Ii0zNTEiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9Ii01MjciLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9Ii0yMTUiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9Ii03ODIiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjQ1MiIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iNjAiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9Ii04NDgiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9Ii0xMzgzIi8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSItOTg5Ii8+CisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSItMzI1Ii8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSItMzgyIi8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSI2MCIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iODg0Ii8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSI2NTkiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9Ii0yNjQiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9Ii05OTAiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjI4OSIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iLTI5MiIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iLTU0MiIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iMzY2Ii8+CisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSI5MDkiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9Ijk5MiIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMTgwOCIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iLTEwNDkiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjU0MyIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMzc3Ii8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSItNjE5Ii8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSItNzEyIi8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIxNDU5Ii8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIyNTciLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9Ii02OTYiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9Ii0xMDg1Ii8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIyODczIi8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSI0MjEiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjU1NyIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMTY5NiIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMjQ4MCIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iLTcwNyIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iLTIzNyIvPgorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMTczMCIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iMjk5MCIvPgorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMjc0NiIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iLTE3NCIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iLTE5NCIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iNDg1Ii8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSItNzI5Ii8+CisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSI3MCIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iOTA3Ii8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIxMjk3Ii8+CisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSI3NzYiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjEyMyIvPgorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMTU1NyIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMTIwOCIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMjUzIi8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSI1MDgiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9Ii0yNzQiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9Ii01NzEiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjE0NiIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iNTY3Ii8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxMjIyIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSI3MzMiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjgiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjEwNDEiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjMyMjIiLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjI1NzYiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjI0MjIiLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9Ii0xMDM2Ii8+CisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSItNzQ2Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSItNjYxIi8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSI0NSIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMzk4MyIvPgorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMTY5NCIvPgorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iNzA5Ii8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSItODQ0Ii8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSItNjA1Ii8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSItNjYxIi8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSItNDM2Ii8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSItMTE1NSIvPgorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iLTcxNiIvPgorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iLTg3NyIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iLTEwMjQiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSIxMTg1Ii8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSI4ODQiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjExMDMiLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjE3ODkiLz4KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjMxMzIiLz4KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9Ii00MDMyIi8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSItMjExNCIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iLTQ5OCIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iMTc0Ii8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIyMTAiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjcxMCIvPgorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iMjEyNyIvPgorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iMjM4NiIvPgorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iMTkxNiIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjEwNzAiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjU2NCIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iLTExODEiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjM0Ii8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSItODQ3Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSItMTMxOCIvPgorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iLTE4NDIiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9Ii0xNDA0Ii8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSItMTEyOSIvPgorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iLTM3MiIvPgorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iMjY5Ii8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSI1NzIiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjE0MTMiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjE1ODYiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjMxNjEiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjIzNDciLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjI2MjciLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjI1MDIiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjI4MTgiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjE1OCIvPgorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iLTU0NSIvPgorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iLTM3MCIvPgorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iLTYyNCIvPgorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iLTg0NyIvPgorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iMjMxNSIvPgorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMTA5OSIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iLTQxNyIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI0MjIyMDAiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSItNDMwNyIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iLTQxNjkiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSItNDA5NiIvPgorCQkJCQk8dmFsIG89IjJhM2MiIHY9Ii00MDg3Ii8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iLTM5NjMiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSItMzk2OSIvPgorCQkJCQk8dmFsIG89IjU0NTUiIHY9Ii00NDExIi8+CisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iLTUzNTgiLz4KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSItNjMxNyIvPgorCQkJCQk8dmFsIG89IjdlODUiIHY9Ii03Mjk4Ii8+CisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iLTc1MTkiLz4KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSItNzM1MSIvPgorCQkJCQk8dmFsIG89ImE4YjYiIHY9Ii02ODkwIi8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iLTY0NjUiLz4KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImQzMGIiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjVjYTciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjZhYjciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjc4YzYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iM2NhNDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNWE4NjciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjUxMjciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNjVmMzciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNjdiNTciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNjg5NjciIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNmViZDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNzMyMjciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODY3OGIiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODc1OWIiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9Ii05Ii8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iOThlZDQiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iOTljZTUiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iYTFiNzciIHY9Ii02MzI0Ii8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9Ii0zNTE2Ii8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9Ii05NjMiLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iNjQ0Ii8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjcwMCIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSI5NDIiLz4KKwkJCQkJPHZhbCBvPSJhNmZkNiIgdj0iOTkiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iNDY0Ii8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjkxMiIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIyODkiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMzIiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iNDYiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iMjAwIi8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjkyMSIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSI3NDQiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iLTU2MSIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSItNjgiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMzEiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMTQyIi8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9Ii0xMjMiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iLTQ1MSIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSItNzI5Ii8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9Ii03MTIiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iLTE1ODQiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iLTE5ODMiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iLTE3NTMiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iLTE3NTgiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iLTE4OTEiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iLTgyNyIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSItODgyIi8+CisJCQkJCTx2YWwgbz0iYmNmNjciIHY9Ii04OTkiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iNjQ0Ii8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjQxNyIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSI1MjQiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iNDAwIi8+CisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjM3MiIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI0ODQiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iNTkxIi8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjMzNiIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSI3NDEiLz4KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iMTE0Ii8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjUwNyIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSItNTEiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMTM2Ii8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjMzNCIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIyMzUiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iMTE2Ii8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9Ii00MTciLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iLTIzMiIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSItMTg0Ii8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9Ii0yMTkiLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iLTEzNCIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSItNTEiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMTQzIi8+CisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMTEiLz4KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNjAwIi8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjY0NCIvPgorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSI4MzYiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMTA2OCIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIxMjEzIi8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9Ii0xMzUiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iLTc1NSIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSItMTQ5OCIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSItMjAxMSIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSItMjU2MSIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSItMjMzOCIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSItMjg5NSIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSItMjc4MCIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSItMjkxMiIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSItMjkxMyIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSItMjgzMiIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSItMzAxOCIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSItNDA5OSIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSItMzk3OSIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSItMzM3MCIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSItMzQyOCIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSItMjU1MSIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSItMjE4OSIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSItMTc1NyIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSItNDc3Ii8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9Ii03MDkiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iLTY1MyIvPgorCQkJCQk8dmFsIG89ImViOGFlIiB2PSItNjUzIi8+CisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9Ii00NjgiLz4KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iLTIxMTIiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iLTIyMzkiLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iLTMxOTgiLz4KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iLTQwODciLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iLTQzMDgiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iLTQ1NTAiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iLTQ2MjgiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iLTQzMDEiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iLTQ2MDgiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iLTQ4NTciLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iLTQ2MTMiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iLTQ4MTgiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iLTQyNDQiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iLTM5MTUiLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iLTM4MDUiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iLTMwMjUiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iLTMwMzQiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iLTMyOTUiLz4KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iLTI2ODAiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iLTI1MzAiLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iLTIwODMiLz4KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iLTE5ODIiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9Ii0xNzkwIi8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSItMTc5MSIvPgorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iLTIwNzciLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9Ii0yNzI0Ii8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSItNDAxNiIvPgorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iLTQzMjAiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9Ii00MzM5Ii8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSItNDcyNSIvPgorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iLTQzMzgiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9Ii0zOTA2Ii8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSItNDExOSIvPgorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iLTQzMjIiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9Ii00MzQ1Ii8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSItNDE2OSIvPgorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iLTQzNTQiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9Ii00MTYwIi8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSItNDQ1MyIvPgorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iLTM4OTUiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9Ii0zMjgxIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSItMjg2NiIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iLTI2NjMiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9Ii0xNzk0Ii8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSItMTc5NyIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iLTE4MjMiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9Ii0xNzgyIi8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSItMTU4NSIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iLTIwODIiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9Ii0yODg1Ii8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSItMzU1OCIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iLTQ4MzgiLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9Ii00MzIyIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSItNTM5MyIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iLTQ0NTYiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9Ii00Mjc5Ii8+CisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSItNDM1NCIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iLTM5MDAiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9Ii00Ii8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSItNCIvPgorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iLTQiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9Ii00Ii8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY3Nzg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZkOWY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSItNjg0NCIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iLTY4NDgiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9Ii03Mjc2Ii8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSItNjcxOCIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iLTYwNDQiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9Ii01ODc5Ii8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSItNjA2NyIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iLTU0ODQiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9Ii01NDM3Ii8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSItNTM0MiIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iLTQ5ODEiLz4KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9Ii01MTkzIi8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSItNjMyMSIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iLTY5MjMiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9Ii03ODg5Ii8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSItMTM0NjQiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9Ii0xMzM1NCIvPgorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iLTEyODEzIi8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSItMTE5OTYiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9Ii0xMjQzNiIvPgorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iLTExNjU4Ii8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSItMTI1MDgiLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9Ii0xMTk2NSIvPgorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iLTc1NjciLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9Ii04MTAwIi8+CisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSItNzY3NiIvPgorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iLTY1NjUiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9Ii02MTY3Ii8+CisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSItNTY2MCIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iLTQ0NzUiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9Ii00MzA2Ii8+CisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSItNDI1MiIvPgorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iLTQxMjUiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9Ii00MTI1Ii8+CisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSItNDQ5OCIvPgorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iLTUxMzciLz4KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9Ii01OTY3Ii8+CisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSItNjM1NCIvPgorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iLTU5NjUiLz4KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9Ii02NjE1Ii8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSItNjYxOSIvPgorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iLTYxOTkiLz4KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9Ii02MjM1Ii8+CisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSItNjMxMyIvPgorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iLTYwNzkiLz4KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9Ii02MDc1Ii8+CisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSItMjM5MCIvPgorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iLTI2MDAiLz4KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9Ii0zMDUxIi8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSItMzMzOCIvPgorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iLTIyMzgiLz4KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9Ii0yMTM3Ii8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSItMTU0NiIvPgorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iLTE2NzAiLz4KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9Ii05NjkiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9Ii0xMTIzIi8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSItMTA3MiIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iLTQ4MSIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iLTUzNyIvPgorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iLTk5NSIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iLTE4MTkiLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9Ii0yNjM2Ii8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSItMjkyMCIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iLTI1OTQiLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9Ii0yODk4Ii8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSItMjE3MyIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iLTIwOTIiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjMxMSIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMzk5Ii8+CisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIzNDg2Ii8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIzMzU3Ii8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSIzNjcwIi8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIzNTgwIi8+CisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSI1Mzk4Ii8+CisJCQkJCTx2YWwgbz0iMWNkNmQwIiB2PSI1NDc4Ii8+CisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSI1NjE4Ii8+CisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSI1NjU5Ii8+CisJCQkJCTx2YWwgbz0iMWQwMTA5IiB2PSI1OTIzIi8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSI2NjUxIi8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSI2NjU0Ii8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSI2NzEzIi8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSI2ODg1Ii8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI2ODkzIi8+CisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSI2NzA1Ii8+CisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSI1ODUzIi8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSI1NTQ1Ii8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSI1NTg5Ii8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSItMzIxOSIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iLTM2MjAiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9Ii0zNjIzIi8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSItMzQ3MiIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iLTM2MzAiLz4KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9Ii0zNzIzIi8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSItNjAzMyIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iLTY3NTIiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9Ii02NjQ3Ii8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSItNjc3OCIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iLTY3OTQiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9Ii02NTkzIi8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSItNjEzNiIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iLTU2NTMiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9Ii00OTEwIi8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSItNDkwOCIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iLTQ4MDMiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9Ii0xOTcwIi8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSItMTgyMCIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iLTE4MjEiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9Ii0yMjcxIi8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSItMjMzMiIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iLTI2NDYiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9Ii0yNjQ0Ii8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSItMjc0OSIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iLTI3MjgiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9Ii0yNTg3Ii8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSItMjU0OCIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iLTIzNzciLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9Ii0yMzM5Ii8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSItMjU2NiIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iLTI3ODQiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9Ii0zMTkxIi8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSItMzU4MSIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iLTM1OTEiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9Ii0zMTI0Ii8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSItMzMzNyIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iLTMxNDIiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9Ii0yODA2Ii8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSItMjQ4MCIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iLTI0OTciLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9Ii0yMTcxIi8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSItMjEzMyIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iLTIxNTkiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9Ii0yNTAwIi8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSItMjM5NSIvPgorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iLTM0NjkiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9Ii00NTEyIi8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSItNTM1NSIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iLTU5MTUiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9Ii01NzcxIi8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSItNTI4NyIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iLTUzODYiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9Ii01OTc2Ii8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSItNjEwMCIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iLTY3NDIiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9Ii02MzEyIi8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSItNTUzMyIvPgorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iLTU0NTUiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9Ii00NjMwIi8+CisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSItNDM0OCIvPgorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iLTQwNDYiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9Ii0zODU1Ii8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSItMzUxOSIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iLTMxMzEiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9Ii0zMDE0Ii8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSItMjkwNCIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iLTI4MjYiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9Ii0zNjgwIi8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSItNDUwNyIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iLTU4NDQiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9Ii02MTk1Ii8+CisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSItNjE2NSIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iLTYxNDIiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9Ii02MjIzIi8+CisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSItNTkzOCIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iLTU5MjYiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9Ii01NTU3Ii8+CisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSItNjI0MCIvPgorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iLTU3NTAiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9Ii01NzcyIi8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSItNTQ2OCIvPgorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iLTUzOTMiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9Ii00NTQzIi8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSItMzg3NiIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iLTM2MjIiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9Ii0zMjkyIi8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSItMTY4MSIvPgorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iLTIwODIiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9Ii0yMDQzIi8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSItMTY3NSIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iLTE3ODUiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9Ii0zNDk0Ii8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSItNDA4MCIvPgorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iLTQ0NTQiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9Ii00ODE2Ii8+CisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSItNDQwNSIvPgorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iLTQ2MjAiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9Ii00ODIwIi8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSItNDY0MyIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iLTQ0MzUiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9Ii01Mzk3Ii8+CisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSItNTU1OCIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iLTU4ODMiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9Ii01MjA3Ii8+CisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSItNTIwMyIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iLTUyNTMiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9Ii00MzQyIi8+CisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSItNDE5NCIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iLTM5OTEiLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9Ii0zMTk1Ii8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSItMzMyOCIvPgorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iLTMxOTEiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9Ii0yOTY2Ii8+CisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSItMjk1OSIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iLTI5MTYiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9Ii0zNjIwIi8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSItNDU2MiIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iLTUwMTMiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9Ii01NzkzIi8+CisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSItNjYwNSIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iLTY3ODciLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9Ii02NzMyIi8+CisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSItNjQzNSIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iLTY0MTUiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9Ii02MjYxIi8+CisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSItNTM3MSIvPgorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iLTU3MDMiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9Ii01NjY4Ii8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSItNTgxMCIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iLTU0OTUiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9Ii01MzY4Ii8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSItNDUzOSIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iLTQwMDMiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9Ii0zNDg3Ii8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSItMzU5NyIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iLTM1NzUiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9Ii0zNDIyIi8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSItMzYxMCIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iLTQwNjkiLz4KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9Ii00MjA5Ii8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSItNDk3NyIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iLTU4NDUiLz4KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9Ii01NjYyIi8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSItMTUxNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9Ii04NjIxIi8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSItNDYwOSIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iLTYzMjkiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9Ii02MTIwIi8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSItNTgxOSIvPgorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iLTU4MDAiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9Ii01NjI3Ii8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSItNTMxOCIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iLTU1NDMiLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9Ii00OTE2Ii8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSItNDU4OSIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iLTQ2NzAiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9Ii0zNjk0Ii8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSItMzQ5MSIvPgorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iLTM1ODIiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9Ii0zNjgzIi8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSItMzYwOCIvPgorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iLTM2ODEiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9Ii0zODUwIi8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSItMzkyMyIvPgorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iLTM5NTUiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9Ii00NDY3Ii8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSItNDI1NyIvPgorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iLTM5MTUiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9Ii0zODk3Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSItMzUzMSIvPgorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iLTM3OTgiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9Ii0zNjI4Ii8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSItNDU0MCIvPgorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iLTUxNzEiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9Ii01MDM4Ii8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSItNTAyOCIvPgorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iLTUwMjkiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9Ii0zOTkzIi8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSItMzU1MSIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iLTMyMDYiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNjc0NjAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMjIxMjM6MTM3Ojg4Ojc2OjEwMzo2OTo4OTo2MDQ3OjY1NzE6MjEzNDo2NDE0OjIyMjM6MjcyNy4yMzE6MTQzNS42NzU6NS45Nzk6MC4wNjc6MDo0MTcxOjQxMDM5OjI5MDUyOjQyMTA0OjEyMjE4OjI0NzIxOjEzNTA0Ojg5NzU6MTExNTM6Mjk5MDo4NjY1Ojk3NTk6MTE3NDIiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNjczODAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMDowOjA6MDowOjA6MDoyNDcyOjIyNTA1OjI1MTYwOjE2NDI1OjMwMDEyOjIzNTE0LjIyOToxMTY3NS4zNjI6OS4yNzI6MC40MTY6MDo2NDkxOjMyMjE6Mjg2Nzo0MjA0OjIyODIyOjMwNDc6NjI2MzoxNTM0Mjo5Nzg1OjMyNDI0OjIzMzQ2OjIxNTc4OjIzNTA4Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjY3MzQwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjcyODk4OjE5MToxODg6MTc2OjE3ODoxNzQ6MTgxOjEwNDQxOjE0MDc5OjEzNjA6NDY2Njc6NzQxMzE6ODA5OTYuMTM6NTAzMjQuMzI2OjMyLjE4ODowLjAzODowOjQ0MDI3OjIwMDI4OToxMDkyMTY6NTI0NjE6MTI5NTE6NzU4OTY6NjkxOTY6MTA0ODUyOjExNzAzNjo5NjkwMzoxMjA3MTQ6MTI0MzA4Ojk2MjA3Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjY3MzAwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjA6MDowOjA6MDowOjA6MzQ3NjozMjI2OjU1OTc6NDg1MzowOjA6MDowLjAwMTowLjEzNzowOjA6MDowOjA6NTA3MzU6NTkyMDU6MDowOjA6MDowOjA6MCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIyNjI3NDYwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjEzMDU6OjI4Njk6OjQ0ODI6OjYwNjY6OjczOTY6Ojg1NzM6OjEwMjYyOjoxMTkyMjo6MTM3NzM6OjE1NDkyOjoxNzUyMjo6MTk1NDQ6OjIxNDUyOjoyMjA3MDo6MjIwNzU6OjIyMDgwOjoyMjA4NDo6MjIwODU6OjIyMDkwOjoyMjA5Nzo6MjIxMDM6OjIyMTA5OjoyMjExNjo6MDo6Njo6MTM6OjIwOjoyNzo6MzI6OjM0Ojo0MTo6NDg6OjU0Ojo2MTo6Njg6Ojc1Ojo4Mjo6ODk6Ojk2OjoxMDM6OjExMDo6MTEwOjoxMTE6OjExNjo6MTE5OjoxMjM6OjEyOSIvPgorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSIwOjo1Ojo1Ojo3OjoxMTo6MTI6OjEyOjoxNzo6MjQ6OjMwOjozNzo6NDQ6OjUxOjo1ODo6NjU6OjY5Ojo3MTo6NzE6OjcxOjo3Mzo6NzU6Ojc2Ojo3Njo6ODE6OjA6OjY6OjEzOjoyMDo6Mjc6OjM0Ojo0MDo6NDQ6OjUwOjo6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1NDo6NjA6OjYzOjo2OTo6MCIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSI2OjoxMzo6MjA6OjI3OjozNDo6Mzg6OjQ0Ojo0Njo6NDY6OjQ3Ojo1Mjo6NTg6OjY1Ojo2Njo6NjY6OjY3Ojo2OTo6Njk6OjcwOjo3Njo6ODM6Ojg5Ojo5Njo6MDo6NTo6MTI6OjE5OjoyNTo6MzA6OjMxOjozNTo6Mzc6OjM3OjozNzo6Mzc6OjM4Ojo0NDo6NDU6OjQ1Ojo0NTo6NDU6OjQ1Ojo0NTo6NDg6OjUxOjo1Njo6NjI6OjAiLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iNjo6MTQ6OjIxOjoyODo6MzU6OjQyOjo0Nzo6NTA6OjUwOjo1MDo6NTI6OjU5Ojo2NTo6Njk6OjcyOjo3NDo6NzU6Ojc1Ojo3NTo6NzU6Ojc4Ojo3OTo6ODI6OjA6Ojc6OjE0OjoyMTo6Mjg6OjM0OjozODo6NDQ6OjQ1Ojo0NTo6NDk6OjU2Ojo2Mzo6NzA6Ojc2Ojo4MDo6ODM1OjoxNjc1OjoyMDM4OjoyMDM5OjoyODU2OjozMTU4OjozNjA3Ojo0NDMxOjowIi8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9IjYyOTo6Nzk3OjoxNDU2OjoyMzgyOjoyNDc2OjoyNDc3OjoyODIxOjoyODIxOjoyODIxOjo6OjI4MjE6OjI4MjE6OjI4NTY6OjI4NjU6OjI4NjU6OjMwNDk6OjMyMjM6OjMyNjc6OjM1MzI6OjQzMDQ6OjUxNDc6OjUxNDc6OjU0NDk6OjA6OjEwMTo6MTAyOjoyNTI6OjU5Mjo6NjA1Ojo2MDU6OjYwNTo6NjA1Ojo2MTI6OjYxMjo6NjEyOjo2MTI6OjYxMjo6NjEyOjo2MTI6OjY3OTo6NzY3Ojo3Njc6Ojc2Nzo6NzY3Ojo3Njc6Ojc2Nzo6OTEwOjowOjoxMTU4Ii8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjIyODk6OjI3MDE6OjMwNzY6OjMwNzY6OjMzODU6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MTE6OjQwMjM6OjQ1OTk6OjUyMzc6OjU0OTQ6OjU3ODA6OjYwNzI6OjA6OjYyMjo6NjIyOjo2MjI6OjYyMjo6NjIyOjo3MTY6OjgxOTo6ODE5Ojo4MTk6OjgxOTo6ODE5Ojo4MTk6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6MTAyNDo6MDo6MTEyNyIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIxOTU0OjoyMTczOjoyMzc3OjoyMzc3OjoyMzc3OjoyMzc3OjoyMzc3OjoyMzc3OjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzg0OjoyNDAwOjoyNDAwOjowOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjE2Mzo6MjA0OjozMzA6Ojc1MTo6MTQwMDo6MTQzMzo6MTQzMzo6MTQzMzo6MTQzNS4xOjoxNDM1LjE6OjE0MzUuMTo6MTQzNS4xOjoxNDM1LjE6OjE0MzUuMTQ0OjoxNDM1LjM3NTo6MTQzNS4zODE6OjA6OjEuMTc5Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIyLjQ4Njo6My44Njk6OjUuMjc4Ojo1LjgwOTo6NS44MTE6OjUuODExOjo1LjgxMTo6NS44NDM6OjUuOTY3Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY5Ojo1Ljk2OTo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MC4wMDE6OjAuMDE0OjowLjAzMjo6MC4wNDo6MC4wNDY6OjAuMDQ5OjowLjA1OjowLjA1OjowLjA1OjowLjA1OjowLjA1OjowLjA1OjowLjA1Mzo6MDo6MC4wMDUiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA5OjowLjAwOTo6MC4wMDk6OjAuMDA5OjowLjAwOTo6MC4wMDk6OjAuMDE0OjowOjowLjAwNDo6MC4wMjo6MC4wMzE6OjAuMDQyOjowLjA0NDo6MC4wNDQ6OjAuMDQ0OjowLjA0NDo6MC4wNDQ6OjAuMDQ0OjowLjA0NDo6MC4wNDc6OjAuMDU6OjAuMDUxOjowLjA1NDo6MC4wNTQ6OjAuMDU0OjowOjowOjowOjowOjoxNzU6OjE4Nzg6OjA6OjIzMDMiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjUwMTY6Ojc4ODk6OjEwODI1OjoxMjc4NTo6MTM0Mjg6OjE0NTY4OjoxNjI4MTo6MTc4NzA6OjE4NzU3OjoxOTY3Mzo6MjIzMTQ6OjI1MzE3OjoyODAxNzo6MzA2MTE6OjMyNTcxOjo6OjMzMDc4OjozMzU3MDo6MzQ4NjU6OjM2MTI0OjozNzY3MDo6Mzk5MDg6OjA6Ojk3ODo6MjU0MDo6NDIzNjo6NTk5Mjo6Njc3Mzo6NjgxODo6NjkxNTo6NzY0Mzo6ODUxMDo6ODYxODo6Ojo5MzU0OjoxMDMzNDo6MTA4NTc6OjExMTkwOjoxMTM4Nzo6MTEzODc6OjEyODE4OjoxNTU0Nzo6MTkwMTE6OjIxMDc3OjoyMjYxMDo6MjU2ODI6OjA6OjI2ODI6OjU3NTc6OjkwOTQiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjEyNDM5OjoxNDgxMDo6MTY0MjY6OjE4MTcyOjoyMDQ2Mjo6MjI4NTE6OjI0OTU3OjoyNjkxMjo6MjkyMDA6OjMxNzg5Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI4MTk3Ojo4MjY0Ojo4MzY1Ojo4MzY1Ojo4OTk2Ojo5OTk2OjoxMDU3MDo6MTA1NzA6OjEwNTcwOjoxMDgwNzo6MDo6Mzg4Ojo3NzY6OjE2NTU6OjIzNzQ6OjIzOTE6OjIzOTE6OjI0Mjk6OjMzMzI6OjM2Nzc6OjM3Njg6OjM4NTE6OjQyOTQ6OjQ5MzA6OjU4NDc6OjY2MjU6Ojc4NTI6Ojk0OTI6OjExMzI4OjoxMzM3Njo6MTU2MjA6OjE3OTQ2OjoyMDE3MDo6MjI0Njk6OjA6OjE5Nzk6OjQxNzk6OjQ4MTc6OjUzMDI6OjU2MTI6OjU4MDI6OjYwNzU6OjY3ODc6OjcxNzI6Ojc0ODk6Ojc2Njg6Ojc4Njc6OjgxODQiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjgyNzA6OjgyNzA6OjgyNzA6OjgyNzA6OjgyNzA6OjgyNzk6Ojg0MjU6Ojg3NjY6OjkyNjE6OjExMzc5OjowOjo5Njc6OjIyMzI6OjMyMjQ6OjM1ODQ6OjM3MDg6OjM3NDI6OjQxOTI6OjQzNzM6OjQzNzk6OjQzNzk6OjQzNzk6OjQzNzk6OjQzNzk6OjQzNzk6OjQ0Njg6OjQ4MTY6OjUxMTE6OjU1MzM6OjYzOTM6OjY3NDA6OjczOTQ6OjczOTQ6Ojc5ODg6OjA6OjE0Nzk6OjI0MDc6OjI5MDc6OjMzNDE6OjMzNDc6OjMzNDc6OjM1MjI6OjQ1MjE6OjQ3MDI6OjUxMDQ6OjUzOTk6OjY1MTE6OjY1MTEiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjY1MTE6OjY1MTE6Ojc1NTQ6OjgwNDY6OjgwNDY6OjgwODQ6Ojg3ODE6Ojk0Mzc6Ojk0Mzc6OjEwMDM0OjowOjoyNTg6OjI1ODo6MjU4OjoyNTg6OjI1ODo6MzAzOjo1NDE6OjEwOTc6OjExMjI6OjExMjI6OjExMjI6OjExMjI6OjEzOTc6OjE0Mjk6OjIwNTI6OjI2Mzg6OjI2Mzg6OjI2Mzg6OjI2Mzg6OjI2Mzg6OjI3Nzk6OjI3Nzk6OjI3Nzk6OjA6OjIxMTo6NzE2Ojo5OTM6Ojk5Mzo6OTkzOjo5OTM6OjEwNTg6OjEwNjA6OjEwNjA6OjEwNjA6OjEwNjA6OjExMjM6OjE2NDAiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjMyODA6OjM5NTI6OjM5NjI6OjM5NjI6OjM5NjI6OjQyOTc6OjU1ODY6OjY5OTg6Ojc5NTY6OjA6OjQ5Mjo6MTU3MDo6MjY4Mzo6MzU4NTo6MzYxNTo6MzYxODo6MzY1OTo6MzY1OTo6MzY1OTo6MzY1OTo6Mzk3Mzo6Njc2Nzo6ODY0NDo6ODcxNzo6ODcxODo6ODcxODo6ODcxODo6ODcxODo6ODcxODo6ODcxODo6ODg5ODo6ODg5ODo6OTIwNTo6MDo6NTAyOjoxODI1OjozNzIyOjo1NzU4Ojo3MjM3Ojo4MTU5Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSI4MjI2Ojo4MjQwOjo4NTA0Ojo4OTgwOjo5NDY2OjoxMDMwODo6MTA2NjY6OjEwNjY2OjoxMDczOSIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIyNjI3MzgwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6NjgwOjoxNzUzOjoyNDM2OjoyNDM5OjoyNDcxOjoyNDcyOjoyNDcyOjowIi8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9IjI3Mzo6MzA0OjozMDQ6OjMwNDo6MzkyOjoxNDY3OjoxOTYxOjoyNzM1Ojo0NTExOjo6OjEyMTE0OjoxNjMzNzo6MTgyNTI6OjE4NDUyOjoxOTA1MTo6MjA3MjQ6OjIxMTE1OjoyMTYxMTo6MjE2MTY6OjIxNjE2OjoyMTY0Nzo6MjI0NjA6OjIyNTA1OjowOjoxNDI4OjoxNzg2OjoxODIxOjoxODIxOjoyMTAwOjozMTE2Ojo0NjA2Ojo1NzAwOjo2MjYzOjo3MjMyOjo4MzIxOjo5MjAyOjo5NzA2OjoxMDEwOTo6MTA1Njc6OjExODI3OjoxMjM1Njo6MTQ4MTg6OjE3NDE2OjoyMDE4Njo6MjI2Mjg6OjI0NDY3OjoyNTE2MDo6MDo6MTYiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iMTY6OjE2OjoxODo6NzYxOjoyMzE3OjoyMzQ1OjozMDMxOjo1MDEwOjo3NjgxOjoxMDcxOTo6MTM0OTE6OjE0MDc5OjoxNDU0MTo6MTQ3ODg6OjE1MDI4OjoxNTU1MTo6MTYxODI6OjE2MTgyOjoxNjMyNzo6MTYzNTE6OjE2Mzk0OjoxNjQyNDo6MDo6MTI1NDo6MjUyMTo6MzMwNDo6NDIxNDo6NjE4OTo6ODU0Mjo6ODg4NDo6OTcxNDo6MTA5MDc6OjEyNDQ3OjoxMzYwNDo6MTQ0MDc6OjE0OTI4OjoxNjg1NTo6MTgzMjM6OjIwMDE2OjoyMjMwNjo6MjM5NTI6OjI1NTExOjoyNjcwMDo6Mjc4NTg6OjI5NTEyOjozMDAxMjo6MDo6MCIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIxNDo6MTQ6OjE2Ojo4NDg6OjI1MTI6OjQxMTQ6OjU1NTY6OjcwNzA6Ojc5Njc6Ojk0MjQ6OjEwODEyOjoxMTcyMjo6MTI4Mjk6OjEzOTUwOjoxNTAzMzo6MTcwOTU6OjE5NDIzOjoyMDY3MDo6MjExMjk6OjIxODI4OjoyMjYwODo6MjM0NDQ6OjA6OjEwMjQ6OjE1MDg6OjE3ODY6OjE5ODU6OjI5NTE6OjQ5MDA6OjY1ODk6OjgwNTM6Ojg4NDk6Ojg5Mjk6Ojg5Mjk6Ojg5Mjk6Ojk1MDI6OjEwMzgwOjoxMTIwMDo6MTE2NjkuNDM6OjExNjcwLjcxNDo6MTE2NzEuNTAxOjoxMTY3My4yMzY6OjExNjc0LjMyNDo6MTE2NzQuNjE2OjoxMTY3NC44ODc6OjExNjc1LjM0NTo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMDo6MDo6MDo6MDo6MC42MzI6OjEuNTc6OjIuNzg3Ojo0LjM4OTo6NS4zNTM6OjYuNjc2Ojo3LjgyNTo6OC40NzM6OjkuMDU5Ojo5LjA3Ojo5LjA4Mzo6OS4xMTM6OjkuMTQ5Ojo5LjE4Njo6OS4yMjI6OjkuMjU0Ojo5LjI2Mzo6OS4yNjc6OjA6OjAuMDU0OjowLjA3ODo6MC4wOTQ6OjAuMTEzOjowLjE0OTo6MC4yOjowLjIyOTo6MC4yMzQ6OjAuMjQxOjowLjI0NDo6MC4yNDU6OjAuMjQ1OjowLjI0NTo6MC4yNDU6OjAuMjQ1OjowLjI0Njo6MC4yNzY6OjAuMzA5OjowLjM0ODo6MC4zODM6OjAuNDA4OjowLjQxNTo6MC40MTY6OjA6OjAuMDIyIi8+CisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIwLjAzMTo6MC4wMzI6OjAuMDMzOjowLjA0NTo6MC4wNzY6OjAuMTo6MC4xMjE6OjAuMTYxOjowLjE5Nzo6MC4yMjc6OjAuMjUyOjowLjI1Nzo6MC4yNjQ6OjAuMjc1OjowLjI5NTo6MC4zMTU6OjAuMzIyOjowLjMyOTo6MC4zMzI6OjAuMzQ4OjowLjM1Nzo6MC4zNTc6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDE1OjowLjA1MTo6MC4wNjI6OjAuMDY4OjowLjA3OTo6MC4wOTE6OjAuMDk0OjowLjA5NDo6MC4wOTc6OjAuMTA4OjowLjEyNTo6MC4xNjE6OjE0MjU6OjM1NjM6OjUwODc6OjYwODE6OjY0OTE6OjY0OTE6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjA6OjA6OjA6OjA6OjM6OjQ6OjE3OjoxNzo6MTc6OjE3Ojo4Mzo6ODM6OjgzOjo4Mzo6ODM6Ojo6MjgxNTo6MzIyMTo6MzIyMTo6MzIyMTo6MzIyMTo6MzIyMTo6MDo6MDo6MDo6MDo6MDo6MDo6NTAzOjoyMTI0OjoyMTI0OjoyMTM1OjoyMTg3Ojo6OjIyMjA6OjIyMjA6OjIyMjA6OjIyMjA6OjIyMzE6OjI4NTc6OjI4Njc6OjI4Njc6OjI4Njc6OjI4Njc6OjI4Njc6OjI4Njc6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjA6OjA6OjA6OjA6OjU6OjU6OjU6OjU6OjU6OjUiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjE0MTM5OjoxNDIxODo6MTQ1Mzg6OjE2NDY3OjoxNjQ5Mzo6MTY0OTM6OjE3OTEzOjoyMDM4ODo6MjI1MDM6OjIyODIyOjowOjoyNDI6OjI0Mjo6MjQyOjoyNDI6OjQ3Mzo6MTYxNDo6Mjc4Mzo6Mjc4Mzo6Mjc4NTo6MzA0Mzo6MzA0Njo6MzA0Njo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MDo6MDo6MDo6MTAxOjoxMDE6OjEwMTo6MTU1OjoxNTU6OjE1NTo6MTU1OjoxNTU6OjE1ODo6MTU4OjoxNTgiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjMwMzo6Njg5OjoxMjY3OjozMjkxOjo1MzYyOjo1OTY0Ojo1OTY0Ojo2MjA1Ojo2MjYzOjo2MjYzOjowOjo2Nzo6Nzg6Ojc4Ojo3ODo6OTY6OjI3OTo6MTI1Nzo6MjE2OTo6MzM4Mjo6NTYyODo6NzY5Mjo6OTE0NDo6OTgwMDo6MTE0MTA6OjEzMTkzOjoxMzc3MDo6MTQ1MDA6OjE0NTAyOjoxNDUyNjo6MTQ1Mjg6OjE0NjkzOjoxNTMzNzo6MTUzNDI6OjA6OjA6OjEyODo6MTI4OjoxMjg6OjYzMTo6MTk2MDo6MjgzNDo6Mjg0Nzo6Mjk5NDo6MzQ0NTo6MzQ0NTo6MzQ0NTo6NDAxMCIvPgorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iNTMwNDo6NjgwMjo6NzE4ODo6NzMwNDo6Nzc3Nzo6ODExOTo6ODExOTo6ODIzODo6OTczMTo6OTc4NTo6MDo6MzIwMjo6NTEzNzo6NTU5Mzo6NjMwNDo6ODU3Nzo6MTIzMjI6OjEyNTYxOjoxMjU2MTo6MTM5NjA6OjE2NTMzOjoyMDEyNzo6MjI4NDE6OjIyODYzOjoyMzEwNjo6MjMyNDc6OjIzMjQ3OjoyNDk4Nzo6MjY0MDI6OjI3NTkwOjoyODA3NTo6MjkyNjM6OjMxNDM4OjozMjMyNTo6MDo6MTcxOjoxNzE6OjIwMDo6MzQ0OjoxNDc2OjoyNDI1OjozMzg3Ojo0MTQ1Ojo1ODc1Ojo5MjEwOjoxMjI5MTo6MTUxNDQ6OjE1MTQ0Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIxNTE0NDo6MTUxNDQ6OjE3MjY3OjoyMTg2NDo6MjMyMzI6OjIzMzQ2OjoyMzM0Njo6MjMzNDY6OjIzMzQ2OjowOjo4Njo6ODY6Ojg2Ojo4Njo6MTg4Ojo3MDk6OjEzMzM6OjI1MTE6OjQzMTM6Ojc1OTM6OjEwNDM0OjoxMDQzNDo6MTA0NDM6OjEwNjIyOjoxMDgxMDo6MTEyOTM6OjEyMzAyOjoxNDg1OTo6MTc0NzY6OjE5NTY1OjoxOTc0Mjo6MjEwMzU6OjIxMjM0OjowOjoxMzo6MTM6OjEzOjoxMzo6MTM6OjEzOjoyMTY6OjkyOTo6MjA1ODo6MzcwMDo6NTY5ODo6ODc4Mjo6MTE2OTg6OjE0NjYzIi8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSIxNzc2Nzo6MTg1NDY6OjE5MTU1OjoxOTE1NTo6MTkxNTU6OjE5MTU1OjoyMDczMDo6MjMwMTY6OjIzNTA4Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjI2MjczNDAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMDo6NDE3Nzo6ODM0ODo6MTI0MjE6OjE2NDY2OjoyMDM4OTo6MjQ1NTA6OjI5NjM4OjozNTM5MDo6NDIzMjk6OjQ5NjA4Ojo1Njk4Mjo6NjQxMTk6OjcwODE5Ojo3MjgyNDo6NzI4MzE6OjcyODM4Ojo3Mjg0NTo6NzI4NTE6OjcyODU5Ojo3Mjg2Njo6NzI4NzM6OjcyODgxOjo3Mjg4OTo6MDo6ODo6MTY6OjI0OjozMjo6NDA6OjQ4Ojo1Njo6NjU6OjczOjo4MTo6ODk6Ojk3OjoxMDU6OjExNDo6MTIyOjoxMzE6OjEzODo6MTQ1OjoxNTI6OjE2MDo6MTY3OjoxNzU6OjE4MyIvPgorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSIwOjo4OjoxNjo6MjM6OjMxOjozOTo6NDc6OjU1Ojo2Mzo6NzE6Ojc5Ojo4Nzo6OTY6OjEwNDo6MTEyOjoxMjA6OjEyODo6MTM1OjoxNDI6OjE1MDo6MTU3OjoxNjU6OjE3Mjo6MTgwOjowOjo4OjoxNzo6MjU6OjM0Ojo0Mzo6NTE6OjU4Ojo2Njo6Ojo3OTo6ODU6OjkyOjo5ODo6MTA1OjoxMTE6OjExNzo6MTI0OjoxMzE6OjEzODo6MTQ1OjoxNTM6OjE2MDo6MTY4OjowIi8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9Ijg6OjE2OjoyNTo6MzM6OjQxOjo0OTo6NTY6OjY0Ojo3MDo6Nzc6Ojg0Ojo5MTo6OTg6OjEwNTo6MTExOjoxMTg6OjEyNTo6MTMyOjoxMzk6OjE0Nzo6MTU0OjoxNjI6OjE3MDo6MDo6Nzo6MTY6OjI0OjozMjo6NDA6OjQ4Ojo1NTo6NjM6OjY5Ojo3Njo6ODI6Ojg5Ojo5Njo6MTAzOjoxMDk6OjExNjo6MTIyOjoxMjg6OjEzNTo6MTQzOjoxNTA6OjE1ODo6MTY2OjowIi8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9Ijg6OjE3OjoyNTo6MzQ6OjQzOjo1MTo6NTg6OjY2Ojo3Mzo6ODA6Ojg3Ojo5NDo6MTAxOjoxMDg6OjExNTo6MTIyOjoxMjk6OjEzNTo6MTQyOjoxNTA6OjE1Nzo6MTY1OjoxNzI6OjA6Ojg6OjE3OjoyNTo6MzQ6OjQyOjo1MDo6NTg6OjY1Ojo3Mjo6Nzg6Ojg1Ojo5Mjo6MTAwOjoxMDc6OjExNDo6MjU5NTo6NzkxMzo6MTAyOTQ6OjEwNDM5OjoxMDQzOTo6MTA0Mzk6OjEwNDQxOjoxMDQ0MTo6MCIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSIyOjo0Ojo5Ojo5Ojo5Ojo5Ojo2OTo6MTgxOjoyMzY6Ojo6MzI3Ojo0NjE6OjcyMDo6MTM5Mzo6MjIxNTo6MzA1OTo6NDU5Mzo6NjM0Mjo6ODA0MTo6OTk0NDo6MTE1NjE6OjEyMzE0OjoxMzE2Njo6MDo6NDc6OjQ3Ojo0Nzo6NDc6OjQ3Ojo0Nzo6NDc6OjQ3Ojo0ODo6NTk6Ojg3OjoxMjc6OjEzNDo6MTM1OjoxNDI6OjE4Mjo6NTM3Ojo3Njk6OjEwMDA6OjExNTY6OjEyMDg6OjEyMzA6OjEyNjQ6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iMDo6MDo6MDo6MDo6NTg6OjQ2NDo6MTIxNDo6Mjg2Njo6NTE5NTo6NzY0NDo6MTAxODk6OjEzMTA4OjoxNTkwMjo6MTg3NzM6OjIxNTU3OjoyNDM0NTo6MjgyNzE6OjMyMjY3OjozNjAxMjo6MzkzNjA6OjQyMzUyOjo0NDc4Mjo6MDo6MTIxNTo6MTg3OTo6MjU4MTo6MzIzMjo6MzczMDo6NDYyNzo6Njg0NTo6OTQyNjo6MTMyMTM6OjE3NDYwOjoyMTgxMjo6MjY0MDg6OjMwODc4OjozNTM0Njo6NDAwNjE6OjQ0Nzc2Ojo0OTE0NTo6NTM1MDE6OjU3NTc1Ojo2MTQyOTo6NjQ5Njg6OjY4MDI5Ojo3MTE1NDo6MDo6MjU0MSIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI0NzU3Ojo2NzQ5Ojo4NzA3OjoxMDQ0Njo6MTIyOTY6OjE0ODE3OjoxODAyMTo6MjIxOTI6OjI0NzEwOjoyOTIwOTo6MzM3OTk6OjM4MDAwOjo0MjE5OTo6NDYzNzU6OjUwNjgxOjo1NTA2Mjo6NTkzODc6OjYzNjg2Ojo2Nzk3MTo6NzE4ODM6Ojc1Mzc4Ojo3ODI3NDo6MDo6MTk2NTo6Mzc4NTo6NTU4OTo6NzQwODo6OTA0Mjo6MTA3MzU6OjEzMTQzOjoxNjI1NDo6MjA0NzM6OjI1MjEwOjoyOTg5ODo6MzQ5ODk6OjM5MjY1Ojo0MzU0Nzo6NDc2NTk6OjUwMjk4LjgxNjo6NTAzMDIuNzMzOjo1MDMwNi43Mjk6OjUwMzEwLjMyNjo6NTAzMTMuNzgzOjo1MDMxNy4wNjI6OjUwMzIwLjAxNjo6NTAzMjIuMjc3OjowOjoxLjk4NiIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMy43NDY6OjUuNDI3Ojo3LjExNjo6OC42NDk6OjEwLjIyNTo6MTIuMzc3OjoxNC45NzI6OjE4LjE1NTo6MjEuNTE5OjoyNC4wNzk6OjI2Ljc4OTo6MjkuODcyOjozMi4wMzg6OjMyLjA3NTo6MzIuMDkzOjozMi4xMTo6MzIuMTMyOjozMi4xNDk6OjMyLjE2Mzo6MzIuMTczOjozMi4xODE6OjMyLjE4Mzo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MC4wMDE6OjAuMDA1OjowLjAwODo6MC4wMTI6OjAuMDE0OjowLjAxNDo6MC4wMTQ6OjAuMDE0OjowLjAxNzo6MC4wMjM6OjAuMDI2OjowLjAyOTo6MC4wMzI6OjAuMDM1OjowLjAzODo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MC4wMDQ6OjAuMDEzOjowLjAyMzo6MC4wMzU6OjAuMDM5OjowLjA0OjowLjA0OjowOjowOjowOjowOjowOjowOjowOjowOjowLjAxMTo6MC4wNjQ6OjAuMTg0OjowLjI5OTo6MC40MDM6OjAuNDkxOjowLjU4Nzo6MC42ODQ6OjAuNzc3OjowLjg4Mjo6NDY0OTo6MTEzNjk6OjE4Mzg0OjoyNTUzOTo6MzIwOTg6OjM4MTg5OjowOjo1NjMxIi8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSIxMTEzNDo6MTY1ODA6OjIxODE5OjoyNjkzNDo6MzI0NDk6OjM5MDExOjo0NjE2NDo6NTczMjk6OjcwNTM1Ojo4MzU5Mjo6OTYxMTI6OjEwNzkzNDo6MTE5ODM2OjoxMzE4MzY6OjE0MzkzMjo6OjoxNTk5NzI6OjE2NzgzODo6MTc1NzU5OjoxODI5NDA6OjE4OTI2MTo6MTk1MjYwOjowOjo0MzYxOjo4NjM3OjoxMjg0NDo6MTcwMjY6OjIxMjkyOjoyNjE4NTo6MzE1MTQ6OjM3NjI5Ojo0NDE0Nzo6NTAyOTU6Ojo6NjI5NzI6OjY5MTQyOjo3NTQ5MDo6ODE4NzE6Ojg4NDExOjo5MjYzNDo6OTUyNjM6Ojk4MTM2OjoxMDE0OTM6OjEwNDMzODo6MTA2MjY0OjoxMDgwODY6OjA6OjExMTg6OjIxMjU6OjMxNjMiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjM5NzI6OjQ0MjQ6OjUxMTc6OjY2NzA6Ojg2ODI6OjExMjczOjoxNDAzNjo6MTY4MDA6OjE5NTg1OjoyMTY4NyIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjIwOTc6OjU2NTg6OjkzMDc6OjEyODM3OjoxNjQzNzo6MjAwNzI6OjI0ODU1OjozMTEyMDo6Mzc4MTM6OjQ0NjM1Ojo1MTUwOTo6NTgyMjQ6OjY0NTE5Ojo3MDQ2MDo6MDo6NDkxMjo6OTc3OTo6MTI0Njg6OjE0Mzc3OjoxNjE5Njo6MTgwOTg6OjIwMzU3OjoyMjkxNjo6MjU1NzI6OjI4MzMzOjozMTA0ODo6MzM2NzM6OjM2MjY4Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSIzODc2OTo6NDExOTc6OjQzNjE3Ojo0NjIyMjo6NDkzMDc6OjUyNjk0Ojo1NjIyOTo6NTk1ODY6OjYyNzkwOjo2NjE0Nzo6MDo6MjU2Mzo6NTAxMDo6NzM3Nzo6OTU0Nzo6MTE2NjI6OjEzOTcwOjoxNjcyMjo6MTk4MjA6OjIzNjY4OjoyODQ1NTo6MzQwNzk6OjM5Nzk5Ojo0NTE0ODo6NTA1ODk6OjU2NDQ4Ojo2MjY3NDo6NjkwODQ6Ojc1NTg0Ojo4MTYyOTo6ODcwMDc6OjkyMTkwOjo5NjY2NDo6MTAwOTUzOjowOjozNjg2Ojo2OTgxOjoxMDEwOTo6MTMxNDk6OjE2MDM5OjoxOTE2ODo6MjMxNjQ6OjI4MjYzOjozNDIzODo6NDA0NzM6OjQ2NTkwOjo1MjgyMTo6NTg4NjgiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjY0ODEwOjo3MDYyODo6NzcwMjY6OjgzMTYwOjo4OTAyNzo6OTQ2NzM6OjEwMDE1NTo6MTA1MzgzOjoxMDk2OTE6OjExMzU1OTo6MDo6MTk5Njo6Mzg3Njo6NTk0OTo6Nzk0NTo6OTY3Mzo6MTE1ODM6OjE1MTk3OjoxOTM1NTo6MjM5NTk6OjI4Njg5OjozMzIyOTo6Mzc5ODE6OjQyNzQ1Ojo0NzQ3MDo6NTI2NTY6OjU4MjI4Ojo2Mzc2ODo6NjkzNTM6Ojc0NjM0Ojo3OTg3Mjo6ODQ2OTk6Ojg4OTY2Ojo5MzA5MDo6MDo6MzI3Mjo6NjUxOTo6OTY0Njo6MTI2NjU6OjE1NTI5OjoxODc4NTo6MjI3Njc6OjI3MzYxOjozMzAyNjo6MzkxOTc6OjQ1NjM0Ojo1MjIzMTo6NTg2ODgiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjcxNjIzOjo3Nzg5Nzo6ODM2NjE6Ojg4OTE5Ojo5NDUwOTo6MTAwMjI2OjoxMDYwMDQ6OjExMTUxNzo6MTE2NDk3OjowOjozNTA0Ojo3MTQ3OjoxMDc2MDo6MTQzNDE6OjE3ODIzOjoyMTU2MTo6MjU4NDU6OjMwMzgxOjozNTgyMTo6NDE1Mjk6OjQ4MDI2Ojo1NzMxMDo6NjQ4OTg6OjcwOTI0Ojo3NzE5NTo6ODMxMzU6Ojg5MTA1Ojo5NDkwMDo6MTAwMzIxOjoxMDU2OTg6OjExMTA1Mzo6MTE1NzI3OjoxMjAzMDk6OjA6OjM2MTA6OjcxMjc6OjEwNzc4OjoxNDQyMTo6MTgwMTU6OjIxNzEyOjoyNTU2NDo6Mjk0NTQ6OjMzNTk4OjozNzk0Njo6NDIxMDA6OjQ2MDU0Ojo0OTgyNDo6NTM1MDAiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjU3MDk5Ojo2MTM4NTo6NjYyMjE6OjcxMzUyOjo3NjM4Mjo6ODEzNjg6Ojg1ODI4Ojo4OTY3Nzo6OTMwMzYiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMjYyNzMwMDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjEwOjo1MjE6OjEwMDk6OjE5MTQ6OjIzMjk6OjI4MDQ6OjAiLz4KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iMTA3MDo6MTIwNTo6MTI0Mjo6MTM2MTo6MTg3Mzo6MjY4ODo6Mjg4ODo6Mjk2ODo6MzAxMzo6OjozMDkzOjozMTY1OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjozMjI2OjowOjo1MDQ6Ojk3NTo6MTQyMDo6MTc3Njo6MjMwNTo6Mjc5Njo6MzIxMjo6NDAwMjo6NDI1NDo6NDM3Mzo6NDQ5NDo6NDU0OTo6NDc1Mzo6NDk1MDo6NTA4Nzo6NTQ1Mzo6NTQ1Mzo6NTQ1Mzo6NTQ1Mzo6NTQ1NDo6NTQ3Mzo6NTUwOTo6NTU4MTo6MDo6NTgxIi8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjEyMzE6OjE5Mjc6OjI3NjA6OjM5MDI6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MC4wMTc6OjAuMDMxOjowLjA0ODo6MC4wNjU6OjAuMDg1OjowLjEwNTo6MC4xMTQ6OjAuMTE2OjowLjExNjo6MC4xMTY6OjAuMTE2OjowLjExNjo6MC4xMTc6OjAuMTI6OjAuMTIzOjowLjEyODo6MC4xMzU6OjAuMTM1OjowLjEzNTo6MC4xMzU6OjAuMTM1OjowLjEzNTo6MC4xMzY6OjA6OjAuMDE2Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIwLjAzNjo6MC4wNTQ6OjAuMDc0OjowLjA5Njo6MC4xMTk6OjAuMTM3OjowLjE1Mjo6MC4xNjU6OjAuMTc4OjowLjE5OjowLjIwNDo6MC4yMTY6OjAuMjI4OjowLjIzNzo6MC4yNDk6OjAuMjU2OjowLjI1Njo6MC4yNTY6OjAuMjU2OjowLjI1Njo6MC4yNTY6OjAuMjU3OjowOjowLjAxMjo6MC4wMTg6OjAuMDI6OjAuMDIxOjowLjAyNTo6MC4wMzI6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjo6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjkyMDg6Ojk0OTA6OjEyNTc5OjoxNjYzMzo6MjAxNjQ6OjIzODgyOjoyODMzNDo6MzM3MTM6OjM5MjIwOjo0NDkwOTo6MDo6NjU0Mjo6MTMxODA6OjE5ODU1OjoyNjU5NDo6MzM0MzI6OjQwMjgwOjo0Njc3Nzo6NTI1MjQ6OjU3ODc1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMTMxNDYwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjI3MDM3MCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIxMzEzODAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMzA2NjkzIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjEzMTM0MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIxNTc2MTExIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjEzMTMwMDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIxMjcwOTgiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNTI1MTQ2MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjoxMzA1OjoyODY5Ojo0NDgyOjo2MDY2Ojo3Mzk2Ojo4NTczOjoxMDI2Mjo6MTE5MjI6OjEzNzczOjoxNTQ5Mjo6MTc1MjI6OjE5NTQ0OjoyMTQ1Mjo6MjIwNzA6OjIyMDc1OjoyMjA4MDo6MjIwODQ6OjIyMDg1OjoyMjA5MDo6MjIwOTc6OjIyMTAzOjoyMjEwOTo6MjIxMTY6OjIyMTIzOjoyMjEyOTo6MjIxMzY6OjIyMTQzOjoyMjE1MDo6MjIxNTY6OjIyMTU4OjoyMjE2Njo6MjIxNzM6OjIyMTgwOjoyMjE4Njo6MjIxOTM6OjIyMjAwOjoyMjIwNzo6MjIyMTQ6OjIyMjIxOjoyMjIyODo6MjIyMzU6OjIyMjM1OjoyMjIzNjo6MjIyNDE6OjIyMjQ0OjoyMjI0Nzo6MjIyNTQiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMjIyNjE6OjIyMjY3OjoyMjI2Nzo6MjIyNjk6OjIyMjczOjoyMjI3NDo6MjIyNzQ6OjIyMjgwOjoyMjI4Nzo6MjIyOTQ6OjIyMzAxOjoyMjMwODo6MjIzMTU6OjIyMzIyOjoyMjMyOTo6MjIzMzM6OjIyMzM1OjoyMjMzNTo6MjIzMzU6OjIyMzM2OjoyMjMzODo6MjIzMzk6OjIyMzM5OjoyMjM0NDo6MjIzNTE6OjIyMzU4OjoyMjM2NTo6MjIzNzI6OjIyMzc5OjoyMjM4Njo6MjIzOTE6OjIyMzk1OjoyMjQwMjo6OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDc6OjIyNDEzOjoyMjQxNjo6MjI0MjI6OjIyNDI5Ii8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjIyNDM2OjoyMjQ0Mzo6MjI0NTA6OjIyNDU3OjoyMjQ2NDo6MjI0Njg6OjIyNDc1OjoyMjQ3Nzo6MjI0Nzc6OjIyNDc4OjoyMjQ4Mzo6MjI0ODk6OjIyNDk1OjoyMjQ5Nzo6MjI0OTc6OjIyNDk4OjoyMjQ5OTo6MjI0OTk6OjIyNTAwOjoyMjUwNzo6MjI1MTM6OjIyNTIwOjoyMjUyNjo6MjI1MzM6OjIyNTM4OjoyMjU0NTo6MjI1NTI6OjIyNTU5OjoyMjU2NDo6MjI1NjQ6OjIyNTY5OjoyMjU3MTo6MjI1NzI6OjIyNTcyOjoyMjU3Mjo6MjI1NzM6OjIyNTc5OjoyMjU4MDo6MjI1ODA6OjIyNTgwOjoyMjU4MDo6MjI1ODA6OjIyNTgwOjoyMjU4Mzo6MjI1ODU6OjIyNTkwOjoyMjU5Njo6MjI2MDMiLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMjI2MTA6OjIyNjE3OjoyMjYyNDo6MjI2MzI6OjIyNjM5OjoyMjY0NTo6MjI2NTA6OjIyNjUzOjoyMjY1Mzo6MjI2NTM6OjIyNjU1OjoyMjY2Mjo6MjI2Njk6OjIyNjcyOjoyMjY3NTo6MjI2Nzc6OjIyNjc4OjoyMjY3ODo6MjI2Nzg6OjIyNjc4OjoyMjY4Mjo6MjI2ODM6OjIyNjg2OjoyMjY5Mzo6MjI3MDE6OjIyNzA4OjoyMjcxNTo6MjI3MjI6OjIyNzI4OjoyMjczMjo6MjI3Mzg6OjIyNzQwOjoyMjc0MDo6MjI3NDQ6OjIyNzUxOjoyMjc1ODo6MjI3NjU6OjIyNzcwOjoyMjc3NTo6MjM1Mjk6OjI0MzcwOjoyNDczMzo6MjQ3MzQ6OjI1NTUxOjoyNTg1Mzo6MjYzMDE6OjI3MTI2OjoyODc0MiIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSIyOTM3Mjo6Mjk1NDA6OjMwMTk5OjozMTEyNTo6MzEyMTg6OjMxMjE5OjozMTU2NDo6MzE1NjQ6OjMxNTY0Ojo6OjMxNTY0OjozMTU2NDo6MzE1OTk6OjMxNjA3OjozMTYwNzo6MzE3OTI6OjMxOTY1OjozMjAxMDo6MzIyNzQ6OjMzMDQ3OjozMzg5MDo6MzM4OTA6OjM0MTkzOjozNTMxNjo6MzU0MTc6OjM1NDE4OjozNTU2OTo6MzU5MDk6OjM1OTIxOjozNTkyMTo6MzU5MjE6OjM1OTIxOjozNTkyODo6MzU5Mjg6OjM1OTI4OjozNTkyODo6MzU5Mjg6OjM1OTI4OjozNTkyODo6MzU5OTU6OjM2MDgzOjozNjA4Mzo6MzYwODM6OjM2MDgzOjozNjA4Mzo6MzYwODM6OjM2MjI2OjozNzQ1MDo6Mzg2MDkiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iMzk3NDA6OjQwMTUxOjo0MDUyNzo6NDA1Mjc6OjQwODM2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNjM6OjQxNDc2Ojo0MjA1MTo6NDI2OTA6OjQyOTQ2Ojo0MzIzMTo6NDM1MjQ6OjQzODY1Ojo0NDQ4ODo6NDQ0ODg6OjQ0NDg4Ojo0NDQ4ODo6NDQ0ODg6OjQ0NTgyOjo0NDY4NTo6NDQ2ODU6OjQ0Njg1Ojo0NDY4NTo6NDQ2ODU6OjQ0Njg1Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ4OTA6OjQ2MDg5Ojo0NzIxNiIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI0ODA0Mzo6NDgyNjI6OjQ4NDY2Ojo0ODQ2Njo6NDg0NjY6OjQ4NDY2Ojo0ODQ2Njo6NDg0NjY6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzQ6OjQ4NDkxOjo0ODQ5MTo6NDg4MTY6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDkwMjI6OjQ5MTQ3Ojo0OTU2OTo6NTAyMTg6OjUwMjUxOjo1MDI1MTo6NTAyNTE6OjUwMjUyLjkxOjo1MDI1Mi45MTo6NTAyNTIuOTE6OjUwMjUyLjkxOjo1MDI1Mi45MTo6NTAyNTIuOTU0Ojo1MDI1My4xODU6OjUwMjUzLjE5Mjo6NTAyNTMuNDg3Ojo1MDI1NC42NjciLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjUwMjU1Ljk3Mzo6NTAyNTcuMzU2Ojo1MDI1OC43NjU6OjUwMjU5LjI5Njo6NTAyNTkuMjk5Ojo1MDI1OS4yOTk6OjUwMjU5LjI5OTo6NTAyNTkuMzMyOjo1MDI1OS40NTU6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU3Ojo1MDI1OS40NTg6OjUwMjU5LjQ1ODo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2OTo6NTAyNTkuNDgyOjo1MDI1OS41Ojo1MDI1OS41MDc6OjUwMjU5LjUxMzo6NTAyNTkuNTE2Ojo1MDI1OS41MTc6OjUwMjU5LjUxNzo6NTAyNTkuNTE3Ojo1MDI1OS41MTc6OjUwMjU5LjUxNzo6NTAyNTkuNTE3Ojo1MDI1OS41MjE6OjUwMjU5LjUzNTo6NTAyNTkuNTQiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjUwMjU5LjU0Ojo1MDI1OS41NDo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDY6OjUwMjU5LjU0Njo6NTAyNTkuNTQ2Ojo1MDI1OS41NDY6OjUwMjU5LjU0Nzo6NTAyNTkuNTQ3Ojo1MDI1OS41NTI6OjUwMjU5LjU1Nzo6NTAyNTkuNTYxOjo1MDI1OS41Nzc6OjUwMjU5LjU4ODo6NTAyNTkuNjo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDQ6OjUwMjU5LjYwODo6NTAyNTkuNjA5Ojo1MDI1OS42MTI6OjUwMjU5LjYxMjo6NTAyNTkuNjEyOjo1MDI1ODo6NTAyNTg6OjUwMjU4Ojo1MDI1ODo6NTA0MzQ6OjUyMTM3Ojo1NDQzMTo6NTY3MzQiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjU5NDQ3Ojo2MjMyMTo6NjUyNTc6OjY3MjE3Ojo2Nzg2MDo6NjkwMDA6OjcwNzEzOjo3MjMwMjo6NzMxODk6Ojc0MTA2Ojo3Njc0Njo6Nzk3NTA6OjgyNDQ5Ojo4NTA0Mzo6ODcwMDM6Ojo6ODc1MTA6Ojg4MDAyOjo4OTI5Nzo6OTA1NTY6OjkyMTAyOjo5NDM0MDo6OTU0NzA6Ojk2NDQ5Ojo5ODAxMTo6OTk3MDc6OjEwMTQ2Mzo6MTAyMjQ0OjoxMDIyODk6OjEwMjM4Njo6MTAzMTE1OjoxMDM5ODM6OjEwNDA5MTo6OjoxMDQ4MjY6OjEwNTgwNjo6MTA2MzMwOjoxMDY2NjI6OjEwNjg1OTo6MTA2ODU5OjoxMDgyOTA6OjExMTAxOTo6MTE0NDgzOjoxMTY1NDk6OjExODA4Mzo6MTIxMTU0OjoxMjQ1MjQ6OjEyNzIwNzo6MTMwMjgyOjoxMzM2MTkiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjEzNjk2Mzo6MTM5MzM1OjoxNDA5NTE6OjE0MjY5ODo6MTQ0OTg4OjoxNDczNzc6OjE0OTQ4Mzo6MTUxNDM4OjoxNTM3MjY6OjE1NjMxNSIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTc0ODI5OjoxNzQ4OTY6OjE3NDk5Njo6MTc0OTk2OjoxNzU2Mjc6OjE3NjYyODo6MTc3MjAxOjoxNzcyMDE6OjE3NzIwMTo6MTc3NDM5OjoxNzg4NDk6OjE3OTIzODo6MTc5NjI2OjoxODA1MDU6OjE4MTIyNDo6MTgxMjQxOjoxODEyNDE6OjE4MTI3OTo6MTgyMTgzOjoxODI1Mjg6OjE4MjYxOTo6MTgyNzAxOjoxODMxNDQ6OjE4Mzc4MDo6MTg0Njk3OjoxODU0NzU6OjE4NjcwMjo6MTg4MzQyOjoxOTAxNzk6OjE5MjIyNjo6MTk0NDcwOjoxOTY3OTY6OjE5OTAyMDo6MjAxMzE5OjoyMDM1NzE6OjIwNTU1MDo6MjA3NzUxOjoyMDgzODk6OjIwODg3Mzo6MjA5MTg0OjoyMDkzNzM6OjIwOTY0Njo6MjEwMzU4OjoyMTA3NDQ6OjIxMTA2MTo6MjExMjQwOjoyMTE0Mzk6OjIxMTc1NiIvPgorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iMjExODQzOjoyMTE4NDM6OjIxMTg0Mzo6MjExODQzOjoyMTE4NDM6OjIxMTg1Mjo6MjExOTk4OjoyMTIzMzk6OjIxMjgzMzo6MjE0OTUxOjoyMTcwNzc6OjIxODA0NTo6MjE5MzA5OjoyMjAzMDI6OjIyMDY2Mjo6MjIwNzg2OjoyMjA4MTk6OjIyMTI2OTo6MjIxNDUxOjoyMjE0NTg6OjIyMTQ1ODo6MjIxNDU4OjoyMjE0NTg6OjIyMTQ1ODo6MjIxNDU4OjoyMjE1NDc6OjIyMTg5NTo6MjIyMTg5OjoyMjI2MTE6OjIyMzQ3MTo6MjIzODE4OjoyMjQ0NzI6OjIyNDQ3Mzo6MjI1MDY2OjoyMjYwNTQ6OjIyNzUzMzo6MjI4NDYxOjoyMjg5NjI6OjIyOTM5Njo6MjI5NDAxOjoyMjk0MDE6OjIyOTU3Nzo6MjMwNTc2OjoyMzA3NTg6OjIzMTE1OTo6MjMxNDU0OjoyMzI1NjY6OjIzMjU2NiIvPgorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iMjMyNTY2OjoyMzI1NjY6OjIzMzYwOTo6MjM0MTAxOjoyMzQxMDE6OjIzNDEzOTo6MjM0ODM2OjoyMzU0OTI6OjIzNTQ5Mjo6MjM2MDg5OjoyMzcyMDg6OjIzNzQ2Nzo6MjM3NDY3OjoyMzc0Njc6OjIzNzQ2Nzo6MjM3NDY3OjoyMzc1MTE6OjIzNzc0OTo6MjM4MzA2OjoyMzgzMzE6OjIzODMzMTo6MjM4MzMxOjoyMzgzMzE6OjIzODYwNjo6MjM4NjM3OjoyMzkyNjA6OjIzOTg0Njo6MjM5ODQ2OjoyMzk4NDY6OjIzOTg0Njo6MjM5ODQ3OjoyMzk5ODg6OjIzOTk4ODo6MjM5OTg4OjoyNDAyMDA6OjI0MDQxMTo6MjQwOTE2OjoyNDExOTM6OjI0MTE5NDo6MjQxMTk0OjoyNDExOTQ6OjI0MTI2MDo6MjQxMjYyOjoyNDEyNjI6OjI0MTI2Mjo6MjQxMjYyOjoyNDEzMjU6OjI0MTg0MiIvPgorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMjQzNDgyOjoyNDQxNTQ6OjI0NDE2NDo6MjQ0MTY0OjoyNDQxNjQ6OjI0NDQ5OTo6MjQ1Nzg4OjoyNDcyMDA6OjI0ODE1Nzo6MjQ4ODY2OjoyNDkzNTg6OjI1MDQzNjo6MjUxNTQ5OjoyNTI0NTI6OjI1MjQ4Mjo6MjUyNDg0OjoyNTI1MjY6OjI1MjUyNjo6MjUyNTI2OjoyNTI1MjY6OjI1Mjg0MDo6MjU1NjM0OjoyNTc1MTE6OjI1NzU4NDo6MjU3NTg1OjoyNTc1ODU6OjI1NzU4NTo6MjU3NTg1OjoyNTc1ODU6OjI1NzU4NTo6MjU3NzY2OjoyNTc3NjY6OjI1ODA3Mzo6MjU4NjI4OjoyNTkxMzA6OjI2MDQ1NDo6MjYyMzUwOjoyNjQzODc6OjI2NTg2NTo6MjY2Nzg3OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NCIvPgorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMjY2ODU0OjoyNjY4Njg6OjI2NzEzMjo6MjY3NjA5OjoyNjgwOTU6OjI2ODkzNjo6MjY5Mjk0OjoyNjkyOTQ6OjI2OTM2NyIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI1MjUxMzgwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6NjgwOjoxNzUzOjoyNDM2OjoyNDM5OjoyNDcxOjoyNDcyOjoyNDcyOjoyNDcyIi8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9IjI3NDU6OjI3NzY6OjI3NzY6OjI3NzY6OjI4NjQ6OjM5Mzk6OjQ0MzQ6OjUyMDc6OjY5ODM6Ojo6MTQ1ODc6OjE4ODA5OjoyMDcyNDo6MjA5MjQ6OjIxNTIzOjoyMzE5Njo6MjM1ODc6OjI0MDg0OjoyNDA4ODo6MjQwODg6OjI0MTE5OjoyNDkzMzo6MjQ5Nzg6OjI0OTc4OjoyNjQwNjo6MjY3NjQ6OjI2Nzk5OjoyNjc5OTo6MjcwNzk6OjI4MDk0OjoyOTU4NDo6MzA2Nzg6OjMxMjQyOjozMjIxMTo6MzMzMDE6OjM0MTgxOjozNDY4NTo6MzUwODg6OjM1NTQ2OjozNjgwNjo6MzczMzY6OjM5Nzk4Ojo0MjM5Njo6NDUxNjY6OjQ3NjA4Ojo0OTQ0Nzo6NTAxMzk6OjUwMTM5Ojo1MDE1NSIvPgorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSI1MDE1NTo6NTAxNTY6OjUwMTU4Ojo1MDkwMTo6NTI0NTc6OjUyNDg2Ojo1MzE3MTo6NTUxNTE6OjU3ODIxOjo2MDg2MDo6NjM2MzI6OjY0MjIwOjo2NDY4Mjo6NjQ5Mjk6OjY1MTY5Ojo2NTY5Mjo6NjYzMjQ6OjY2MzI0Ojo2NjQ2OTo6NjY0OTI6OjY2NTM1Ojo2NjU2NTo6NjY1NjU6OjY3ODIwOjo2OTA4Nzo6Njk4Njk6OjcwNzgwOjo3Mjc1NTo6NzUxMDc6Ojc1NDQ5Ojo3NjI3OTo6Nzc0NzM6Ojc5MDEzOjo4MDE3MTo6ODA5NzM6OjgxNDk0Ojo4MzQyMTo6ODQ4ODk6Ojg2NTgyOjo4ODg3Mjo6OTA1MTg6OjkyMDc3Ojo5MzI2Njo6OTQ0MjQ6Ojk2MDc5Ojo5NjU3OTo6OTY1Nzk6Ojk2NTc5Ii8+CisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9Ijk2NTk0Ojo5NjU5NDo6OTY1OTY6Ojk3NDI4Ojo5OTA5Mjo6MTAwNjk0OjoxMDIxMzY6OjEwMzY1MTo6MTA0NTQ3OjoxMDYwMDQ6OjEwNzM5Mjo6MTA4MzAyOjoxMDk0MTA6OjExMDUzMDo6MTExNjEzOjoxMTM2NzY6OjExNjAwNTo6MTE3MjUxOjoxMTc3MTE6OjExODQwOTo6MTE5MTg4OjoxMjAwMjQ6OjEyMDA5Mzo6MTIxMTE4OjoxMjE2MDI6OjEyMTg4MDo6MTIyMDc5OjoxMjMwNDQ6OjEyNDk5NDo6MTI2NjgzOjoxMjgxNDg6OjEyODk0NTo6MTI5MDI1OjoxMjkwMjU6OjEyOTAyNTo6MTI5NTk3OjoxMzA0NzU6OjEzMTI5NTo6MTMxNzY0LjMwMzo6MTMxNzY1LjU4ODo6MTMxNzY2LjM3NTo6MTMxNzY4LjExOjoxMzE3NjkuMTk4OjoxMzE3NjkuNDk6OjEzMTc2OS43NjE6OjEzMTc3MC4yMTk6OjEzMTc3MC4yMzY6OjEzMTc3MC4yMzYiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjEzMTc3MC4yMzY6OjEzMTc3MC4yMzY6OjEzMTc3MC4yMzY6OjEzMTc3MC4yMzY6OjEzMTc3MC44Njg6OjEzMTc3MS44MDY6OjEzMTc3My4wMjM6OjEzMTc3NC42MjU6OjEzMTc3NS41ODk6OjEzMTc3Ni45MTI6OjEzMTc3OC4wNjI6OjEzMTc3OC43MDk6OjEzMTc3OS4yOTU6OjEzMTc3OS4zMDY6OjEzMTc3OS4zMTk6OjEzMTc3OS4zNDk6OjEzMTc3OS4zODY6OjEzMTc3OS40MjM6OjEzMTc3OS40NTg6OjEzMTc3OS40OTo6MTMxNzc5LjQ5OTo6MTMxNzc5LjUwMzo6MTMxNzc5LjUwOTo6MTMxNzc5LjU2NDo6MTMxNzc5LjU4Nzo6MTMxNzc5LjYwNDo6MTMxNzc5LjYyMzo6MTMxNzc5LjY1OTo6MTMxNzc5LjcwOTo6MTMxNzc5LjczODo6MTMxNzc5Ljc0NDo6MTMxNzc5Ljc1Mjo6MTMxNzc5Ljc1NTo6MTMxNzc5Ljc1NTo6MTMxNzc5Ljc1NTo6MTMxNzc5Ljc1NTo6MTMxNzc5Ljc1NTo6MTMxNzc5Ljc1NTo6MTMxNzc5Ljc1Njo6MTMxNzc5Ljc4Njo6MTMxNzc5LjgxOTo6MTMxNzc5Ljg1ODo6MTMxNzc5Ljg5Mzo6MTMxNzc5LjkxODo6MTMxNzc5LjkyNjo6MTMxNzc5LjkyNjo6MTMxNzc5LjkyNjo6MTMxNzc5Ljk0OSIvPgorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMTMxNzc5Ljk1ODo6MTMxNzc5Ljk1OTo6MTMxNzc5Ljk2OjoxMzE3NzkuOTcyOjoxMzE3ODAuMDAzOjoxMzE3ODAuMDI3OjoxMzE3ODAuMDQ5OjoxMzE3ODAuMDg5OjoxMzE3ODAuMTI1OjoxMzE3ODAuMTU1OjoxMzE3ODAuMTc5OjoxMzE3ODAuMTg0OjoxMzE3ODAuMTkxOjoxMzE3ODAuMjAyOjoxMzE3ODAuMjIyOjoxMzE3ODAuMjQzOjoxMzE3ODAuMjUxOjoxMzE3ODAuMjU4OjoxMzE3ODAuMjYxOjoxMzE3ODAuMjc3OjoxMzE3ODAuMjg1OjoxMzE3ODAuMjg1OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg5OjoxMzE3ODAuMzAzOjoxMzE3ODAuMzQ6OjEzMTc4MC4zNTo6MTMxNzgwLjM1Njo6MTMxNzgwLjM2ODo6MTMxNzgwLjM4MTo6MTMxNzgwLjM4NDo6MTMxNzgwLjM4NDo6MTMxNzgwLjM4Njo6MTMxNzgwLjM5ODo6MTMxNzgwLjQxNTo6MTMxNzgwLjQ1MTo6MTMzMjA1OjoxMzUzNDM6OjEzNjg2Njo6MTM3ODYxOjoxMzgyNzI6OjEzODI3Mjo6MTM4MjcyOjoxMzgyNzIiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjEzODI3Mjo6MTM4MjcyOjoxMzgyNzI6OjEzODI3Mjo6MTM4Mjc1OjoxMzgyNzc6OjEzODI5MDo6MTM4MjkwOjoxMzgyOTA6OjEzODI5MDo6MTM4MzU1OjoxMzgzNTU6OjEzODM1NTo6MTM4MzU1OjoxMzgzNTU6Ojo6MTQxMDg4OjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxOTk3OjoxNDM2MTg6OjE0MzYxODo6MTQzNjI5OjoxNDM2ODE6Ojo6MTQzNzE0OjoxNDM3MTQ6OjE0MzcxNDo6MTQzNzE0OjoxNDM3MjU6OjE0NDM1MTo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyIi8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2ODo6MTQ0MzY4OjoxNDQzNjg6OjE0NDM2ODo6MTQ0MzY4OjoxNDQzNjgiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjE2MjcwNzo6MTYyNzg2OjoxNjMxMDc6OjE2NTAzNTo6MTY1MDYyOjoxNjUwNjI6OjE2NjQ4MTo6MTY4OTU2OjoxNzEwNzI6OjE3MTM5MTo6MTcxMzkxOjoxNzE2MzQ6OjE3MTYzNDo6MTcxNjM0OjoxNzE2MzQ6OjE3MTg2NTo6MTczMDA2OjoxNzQxNzU6OjE3NDE3NTo6MTc0MTc3OjoxNzQ0MzU6OjE3NDQzODo6MTc0NDM4OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NTQwOjoxNzQ1NDA6OjE3NDU0MDo6MTc0NTk0OjoxNzQ1OTQ6OjE3NDU5NDo6MTc0NTk0OjoxNzQ1OTQ6OjE3NDU5ODo6MTc0NTk4OjoxNzQ1OTgiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjE3NDc0Mjo6MTc1MTI5OjoxNzU3MDY6OjE3NzczMTo6MTc5ODAzOjoxODA0MDU6OjE4MDQwNTo6MTgwNjQ2OjoxODA3MDQ6OjE4MDcwNDo6MTgwNzA0OjoxODA3NzE6OjE4MDc4Mjo6MTgwNzgyOjoxODA3ODI6OjE4MDgwMTo6MTgwOTgzOjoxODE5NjE6OjE4Mjg3Mzo6MTg0MDg2OjoxODYzMzI6OjE4ODM5Njo6MTg5ODQ4OjoxOTA1MDQ6OjE5MjExNDo6MTkzODk3OjoxOTQ0NzQ6OjE5NTIwNDo6MTk1MjA2OjoxOTUyMzA6OjE5NTIzMjo6MTk1Mzk3OjoxOTYwNDE6OjE5NjA0Njo6MTk2MDQ2OjoxOTYwNDY6OjE5NjE3NTo6MTk2MTc1OjoxOTYxNzU6OjE5NjY3ODo6MTk4MDA3OjoxOTg4ODE6OjE5ODg5NTo6MTk5MDQzOjoxOTk0OTQ6OjE5OTQ5NDo6MTk5NDk0OjoyMDAwNTgiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjIwMTM1Mzo6MjAyODUxOjoyMDMyMzc6OjIwMzM1Mzo6MjAzODI1OjoyMDQxNjc6OjIwNDE2Nzo6MjA0Mjg2OjoyMDU3Nzg6OjIwNTgzMzo6MjA1ODMzOjoyMDkwMzY6OjIxMDk3MDo6MjExNDI2OjoyMTIxMzg6OjIxNDQxMDo6MjE4MTU2OjoyMTgzOTU6OjIxODM5NTo6MjE5Nzk1OjoyMjIzNjg6OjIyNTk2Mzo6MjI4Njc2OjoyMjg2OTg6OjIyODk0MTo6MjI5MDgyOjoyMjkwODI6OjIzMDgyMjo6MjMyMjM3OjoyMzM0MjU6OjIzMzkxMDo6MjM1MDk4OjoyMzcyNzM6OjIzODE2MDo6MjM4MjU5OjoyMzg0MzE6OjIzODQzMTo6MjM4NDYwOjoyMzg2MDQ6OjIzOTczNTo6MjQwNjg1OjoyNDE2NDg6OjI0MjQwNjo6MjQ0MTM3OjoyNDc0NzE6OjI1MDU1MTo6MjUzNDA0OjoyNTM0MDQiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjI1MzQwNDo6MjUzNDA0OjoyNTU1Mjc6OjI2MDEyNDo6MjYxNDkyOjoyNjE2MDY6OjI2MTYwNjo6MjYxNjA2OjoyNjE2MDY6OjI2MTYwNjo6MjYxNjkyOjoyNjE2OTI6OjI2MTY5Mjo6MjYxNjkyOjoyNjE3OTQ6OjI2MjMxNTo6MjYyOTM5OjoyNjQxMTg6OjI2NTkyMTo6MjY5MjAwOjoyNzIwNDE6OjI3MjA0MTo6MjcyMDQ5OjoyNzIyMjk6OjI3MjQxNzo6MjcyOTAwOjoyNzM5MDk6OjI3NjQ2Njo6Mjc5MDg0OjoyODExNzM6OjI4MTM0OTo6MjgyNjQyOjoyODI4NDE6OjI4MzE4NTo6MjgzMTk4OjoyODMxOTg6OjI4MzE5ODo6MjgzMTk4OjoyODMxOTg6OjI4MzE5ODo6MjgzNDAyOjoyODQxMTQ6OjI4NTI0NDo6Mjg2ODg2OjoyODg4ODQ6OjI5MTk2ODo6Mjk0ODg0OjoyOTc4NDkiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjMwMDk1NDo6MzAxNzMzOjozMDIzNDE6OjMwMjM0MTo6MzAyMzQxOjozMDIzNDE6OjMwMzkxNTo6MzA2MjAxOjozMDY2OTMiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNTI1MTM0MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjo0MTc3Ojo4MzQ4OjoxMjQyMTo6MTY0NjY6OjIwMzg5OjoyNDU1MDo6Mjk2Mzg6OjM1MzkwOjo0MjMyOTo6NDk2MDg6OjU2OTgyOjo2NDExOTo6NzA4MTk6OjcyODI0Ojo3MjgzMTo6NzI4Mzg6OjcyODQ1Ojo3Mjg1MTo6NzI4NTk6OjcyODY2Ojo3Mjg3Mzo6NzI4ODE6OjcyODg5Ojo3Mjg5ODo6NzI5MDY6OjcyOTE0Ojo3MjkyMjo6NzI5MzE6OjcyOTM4Ojo3Mjk0Njo6NzI5NTU6OjcyOTYzOjo3Mjk3Mjo6NzI5Nzk6OjcyOTg3Ojo3Mjk5NTo6NzMwMDQ6OjczMDEyOjo3MzAyMTo6NzMwMjk6OjczMDM3Ojo3MzA0NTo6NzMwNTI6OjczMDYwOjo3MzA2Nzo6NzMwNzQ6OjczMDgzIi8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjczMDkyOjo3MzEwMDo6NzMxMDg6OjczMTE2Ojo3MzEyNDo6NzMxMzE6OjczMTM5Ojo3MzE0Nzo6NzMxNTU6OjczMTY0Ojo3MzE3Mjo6NzMxODA6OjczMTg5Ojo3MzE5Nzo6NzMyMDU6OjczMjEzOjo3MzIyMTo6NzMyMjg6OjczMjM1Ojo3MzI0Mjo6NzMyNTA6OjczMjU4Ojo3MzI2NTo6NzMyNzM6OjczMjgxOjo3MzI5MDo6NzMyOTg6OjczMzA3Ojo3MzMxNjo6NzMzMjQ6OjczMzMzOjo3MzM0MTo6NzMzNDk6Ojo6NzMzNjI6OjczMzY4Ojo3MzM3NDo6NzMzODE6OjczMzg3Ojo3MzM5NDo6NzM0MDA6OjczNDA3Ojo3MzQxNDo6NzM0MjE6OjczNDI4Ojo3MzQzNjo6NzM0NDM6OjczNDUxOjo3MzQ1OSIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSI3MzQ2Nzo6NzM0NzY6OjczNDg0Ojo3MzQ5Mjo6NzM1MDE6OjczNTA4Ojo3MzUxNjo6NzM1MjM6OjczNTI5Ojo3MzUzNjo6NzM1NDM6OjczNTUwOjo3MzU1Nzo6NzM1NjQ6OjczNTcxOjo3MzU3ODo6NzM1ODU6OjczNTkyOjo3MzU5OTo6NzM2MDc6OjczNjE0Ojo3MzYyMjo6NzM2MzA6OjczNjM5Ojo3MzY0Nzo6NzM2NTU6OjczNjYzOjo3MzY3Mjo6NzM2ODA6OjczNjg3Ojo3MzY5NDo6NzM3MDI6OjczNzA5Ojo3MzcxNTo6NzM3MjE6OjczNzI4Ojo3MzczNTo6NzM3NDI6OjczNzQ4Ojo3Mzc1NTo6NzM3NjI6OjczNzY5Ojo3Mzc3Njo6NzM3ODM6OjczNzkxOjo3Mzc5ODo6NzM4MDY6OjczODE0Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjczODIzOjo3MzgzMTo6NzM4NDA6OjczODQ5Ojo3Mzg1ODo6NzM4NjY6OjczODc0Ojo3Mzg4MTo6NzM4ODg6OjczODk1Ojo3MzkwMjo6NzM5MDk6OjczOTE3Ojo3MzkyNDo6NzM5MzE6OjczOTM4Ojo3Mzk0NTo6NzM5NTI6OjczOTU5Ojo3Mzk2Njo6NzM5NzM6OjczOTgwOjo3Mzk4ODo6NzM5OTY6Ojc0MDA1Ojo3NDAxNDo6NzQwMjI6Ojc0MDMxOjo3NDAzOTo6NzQwNDc6Ojc0MDU1Ojo3NDA2Mjo6NzQwNjk6Ojc0MDc2Ojo3NDA4NDo6NzQwOTE6Ojc0MDk4Ojo3NDEwNTo6NzQxMTI6Ojc2NTkzOjo4MTkxMjo6ODQyOTM6Ojg0NDM4Ojo4NDQzODo6ODQ0Mzg6Ojg0NDM5Ojo4NDQ0MDo6ODQ0NDAiLz4KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iODQ0NDI6Ojg0NDQ1Ojo4NDQ1MDo6ODQ0NTA6Ojg0NDUwOjo4NDQ1MDo6ODQ1MTA6Ojg0NjIyOjo4NDY3Nzo6Ojo4NDc2ODo6ODQ5MDI6Ojg1MTYxOjo4NTgzNDo6ODY2NTY6Ojg3NTAwOjo4OTAzNDo6OTA3ODM6OjkyNDgyOjo5NDM4Njo6OTYwMDM6Ojk2NzU2Ojo5NzYwODo6OTg1MjA6Ojk4NTY4Ojo5ODU2ODo6OTg1Njg6Ojk4NTY4Ojo5ODU2ODo6OTg1Njg6Ojk4NTY5Ojo5ODU2OTo6OTg1NzA6Ojk4NTgxOjo5ODYwOTo6OTg2NDk6Ojk4NjU2Ojo5ODY1Nzo6OTg2NjQ6Ojk4NzA0Ojo5OTA1OTo6OTkyOTE6Ojk5NTIyOjo5OTY3OTo6OTk3MzA6Ojk5NzUyOjo5OTc4Njo6OTk4ODI6Ojk5ODgyIi8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9Ijk5ODgyOjo5OTg4Mjo6OTk4ODI6Ojk5ODgyOjo5OTk0MDo6MTAwMzQ2OjoxMDEwOTY6OjEwMjc0OTo6MTA1MDc4OjoxMDc1Mjc6OjExMDA3Mjo6MTEyOTkxOjoxMTU3ODY6OjExODY1Njo6MTIxNDQxOjoxMjQyMjg6OjEyODE1NDo6MTMyMTQ5OjoxMzU4OTU6OjEzOTI0Mzo6MTQyMjM1OjoxNDQ2NjU6OjE0NjU1MDo6MTQ3NzY2OjoxNDg0MzA6OjE0OTEzMjo6MTQ5NzgzOjoxNTAyODE6OjE1MTE3ODo6MTUzMzk2OjoxNTU5Nzc6OjE1OTc2NDo6MTY0MDExOjoxNjgzNjM6OjE3Mjk1OTo6MTc3NDI5OjoxODE4OTc6OjE4NjYxMjo6MTkxMzI4OjoxOTU2OTc6OjIwMDA1NDo6MjA0MTI3OjoyMDc5ODE6OjIxMTUyMDo6MjE0NTgxOjoyMTc3MDU6OjIyMDY4Mjo6MjIzMjI0Ii8+CisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9IjIyNTQ0MDo6MjI3NDMxOjoyMjkzODk6OjIzMTEyODo6MjMyOTc5OjoyMzU1MDE6OjIzODcwNTo6MjQyODc3OjoyNDUzOTU6OjI0OTg5NDo6MjU0NDg0OjoyNTg2ODU6OjI2Mjg4NDo6MjY3MDU5OjoyNzEzNjU6OjI3NTc0Nzo6MjgwMDcyOjoyODQzNzE6OjI4ODY1Njo6MjkyNTY3OjoyOTYwNjI6OjI5ODk1ODo6MzAxNjc4OjozMDM2NDM6OjMwNTQ2NDo6MzA3MjY4OjozMDkwODc6OjMxMDcyMTo6MzEyNDE0OjozMTQ4MjM6OjMxNzkzMzo6MzIyMTUzOjozMjY4ODk6OjMzMTU3Nzo6MzM2NjY4OjozNDA5NDQ6OjM0NTIyNzo6MzQ5MzM4OjoxNTE5NzguNjk3OjoxNTE5ODIuNjE0OjoxNTE5ODYuNjE6OjE1MTk5MC4yMDc6OjE1MTk5My42NjU6OjE1MTk5Ni45NDM6OjE1MTk5OS44OTc6OjE1MjAwMi4xNTg6OjE1MjAwNC4yMDc6OjE1MjAwNi4xOTQiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjE1MjAwNy45NTQ6OjE1MjAwOS42MzU6OjE1MjAxMS4zMjQ6OjE1MjAxMi44NTc6OjE1MjAxNC40MzM6OjE1MjAxNi41ODY6OjE1MjAxOS4xODE6OjE1MjAyMi4zNjU6OjE1MjAyNS43Mjg6OjE1MjAyOC4yODg6OjE1MjAzMC45OTg6OjE1MjAzNC4wODE6OjE1MjAzNi4yNDc6OjE1MjAzNi4yODQ6OjE1MjAzNi4zMDI6OjE1MjAzNi4zMTk6OjE1MjAzNi4zNDE6OjE1MjAzNi4zNTk6OjE1MjAzNi4zNzI6OjE1MjAzNi4zODM6OjE1MjAzNi4zOTo6MTUyMDM2LjM5Mzo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5ODo6MTUyMDM2LjM5OTo6MTUyMDM2LjQwNDo6MTUyMDM2LjQwNzo6MTUyMDM2LjQxMjo6MTUyMDM2LjQxNDo6MTUyMDM2LjQxNDo6MTUyMDM2LjQxNDo6MTUyMDM2LjQxNDo6MTUyMDM2LjQxNzo6MTUyMDM2LjQyMjo6MTUyMDM2LjQyNTo6MTUyMDM2LjQyODo6MTUyMDM2LjQzMjo6MTUyMDM2LjQzNTo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNyIvPgorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQ0MTo6MTUyMDM2LjQ1OjoxNTIwMzYuNDY6OjE1MjAzNi40NzI6OjE1MjAzNi40NzY6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40ODk6OjE1MjAzNi41NDM6OjE1MjAzNi42NjM6OjE1MjAzNi43Nzg6OjE1MjAzNi44ODM6OjE1MjAzNi45NzE6OjE1MjAzNy4wNjY6OjE1MjAzNy4xNjQ6OjE1MjAzNy4yNTc6OjE1MjAzNy4zNjE6OjM1NjY4NTo6MzYzNDA1OjozNzA0MjA6OjM3NzU3NTo6Mzg0MTM0OjozOTAyMjU6OjM5NjA2NDo6NDAxNjk2Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSI0MDcxOTg6OjQxMjY0NDo6NDE3ODgzOjo0MjI5OTg6OjQyODUxMzo6NDM1MDc1Ojo0NDIyMjk6OjQ1MzM5NTo6NDY2NjAxOjo0Nzk2NTg6OjQ5MjE3Nzo6NTA0MDAwOjo1MTU5MDE6OjUyNzkwMTo6NTM5OTk3Ojo6OjU1NjAzNjo6NTYzOTAzOjo1NzE4MjM6OjU3OTAwNTo6NTg1MzI2Ojo1OTEzMjU6OjU5NjM1NDo6NjAwNzE1Ojo2MDQ5OTI6OjYwOTE5OTo6NjEzMzgxOjo2MTc2NDY6OjYyMjUzOTo6NjI3ODY4Ojo2MzM5ODM6OjY0MDUwMjo6NjQ2NjUwOjo6OjY1OTMyODo6NjY1NDk4Ojo2NzE4NDU6OjY3ODIyNzo6Njg0NzY2Ojo2ODg5OTA6OjY5MTYxOTo6Njk0NDkyOjo2OTc4NDk6OjcwMDY5NDo6NzAyNjIwOjo3MDQ0NDI6OjcwNTU3Mjo6NzA2NjkxOjo3MDc2OTc6OjcwODczNiIvPgorCQkJCQk8dmFsIG89IjFhOTY0MCIgdj0iNzA5NTQ1Ojo3MDk5OTc6OjcxMDY5MDo6NzEyMjQzOjo3MTQyNTU6OjcxNjg0Nzo6NzE5NjA5Ojo3MjIzNzM6OjcyNTE1ODo6NzI3MjYxIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzczMDg2Ojo3NzY2NDc6Ojc4MDI5Njo6NzgzODI2Ojo3ODc0MjY6Ojc5MTA2MTo6Nzk1ODQ0Ojo4MDIxMDk6OjgwODgwMTo6ODE1NjI0Ojo4MjI0OTg6OjgyOTIxMzo6ODM1NTA4Ojo4NDE0NDk6Ojg0Njg4Njo6ODUxNzk4Ojo4NTY2NjU6Ojg1OTM1NDo6ODYxMjYzOjo4NjMwODM6Ojg2NDk4NTo6ODY3MjQ1Ojo4Njk4MDM6Ojg3MjQ2MDo6ODc1MjIxOjo4Nzc5Mzc6Ojg4MDU2MTo6ODgzMTU2Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSI4ODU2NTc6Ojg4ODA4NTo6ODkwNTA1Ojo4OTMxMTA6Ojg5NjE5NDo6ODk5NTgxOjo5MDMxMTY6OjkwNjQ3Mzo6OTA5Njc3Ojo5MTMwMzQ6OjkxNjA4Mjo6OTE4NjQ2Ojo5MjEwOTM6OjkyMzQ2MDo6OTI1NjMwOjo5Mjc3NDQ6OjkzMDA1Mzo6OTMyODA2Ojo5MzU5MDQ6OjkzOTc1Mzo6OTQ0NTQwOjo5NTAxNjM6Ojk1NTg4NDo6OTYxMjMzOjo5NjY2NzM6Ojk3MjUzMzo6OTc4NzU4Ojo5ODUxNjg6Ojk5MTY2ODo6OTk3NzEzOjoxMDAzMDkxOjoxMDA4Mjc0OjoxMDEyNzQ5OjoxMDE3MDM4OjoxMDIwOTM3OjoxMDI0NjI0OjoxMDI3OTE5OjoxMDMxMDQ3OjoxMDM0MDg3OjoxMDM2OTc2OjoxMDQwMTA2OjoxMDQ0MTAyOjoxMDQ5MjAxOjoxMDU1MTc3OjoxMDYxNDExOjoxMDY3NTI4OjoxMDczNzU5OjoxMDc5ODA2Ii8+CisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSIxMDg1NzQ4OjoxMDkxNTY2OjoxMDk3OTY0OjoxMTA0MDk4OjoxMTA5OTY1OjoxMTE1NjExOjoxMTIxMDkzOjoxMTI2MzIxOjoxMTMwNjMwOjoxMTM0NDk3OjoxMTM3OTczOjoxMTM5OTcwOjoxMTQxODQ5OjoxMTQzOTIzOjoxMTQ1OTE4OjoxMTQ3NjQ3OjoxMTQ5NTU3OjoxMTUzMTcxOjoxMTU3MzI5OjoxMTYxOTM0OjoxMTY2NjY0OjoxMTcxMjA0OjoxMTc1OTU3OjoxMTgwNzIxOjoxMTg1NDQ2OjoxMTkwNjMyOjoxMTk2MjA0OjoxMjAxNzQzOjoxMjA3MzI4OjoxMjEyNjA4OjoxMjE3ODQ3OjoxMjIyNjc0OjoxMjI2OTQyOjoxMjMxMDY2OjoxMjM0ODc4OjoxMjM4MTUxOjoxMjQxMzk4OjoxMjQ0NTI1OjoxMjQ3NTQ0OjoxMjUwNDA4OjoxMjUzNjYzOjoxMjU3NjQ1OjoxMjYyMjM5OjoxMjY3OTA1OjoxMjc0MDc1OjoxMjgwNTEyOjoxMjg3MTA5OjoxMjkzNTY2Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIxMzA2NTAxOjoxMzEyNzc1OjoxMzE4NTM5OjoxMzIzNzk4OjoxMzI5Mzg3OjoxMzM1MTA1OjoxMzQwODgzOjoxMzQ2Mzk2OjoxMzUxMzc2OjoxMzU1NTk0OjoxMzU5MDk5OjoxMzYyNzQyOjoxMzY2MzU1OjoxMzY5OTM2OjoxMzczNDE4OjoxMzc3MTU2OjoxMzgxNDQwOjoxMzg1OTc2OjoxMzkxNDE2OjoxMzk3MTI0OjoxNDAzNjIyOjoxNDEyOTA1OjoxNDIwNDk0OjoxNDI2NTE5OjoxNDMyNzkxOjoxNDM4NzMxOjoxNDQ0NzAwOjoxNDUwNDk1OjoxNDU1OTE2OjoxNDYxMjkzOjoxNDY2NjQ4OjoxNDcxMzIzOjoxNDc1OTA0OjoxNDc5OTAzOjoxNDgzNTE0OjoxNDg3MDMwOjoxNDkwNjgyOjoxNDk0MzI0OjoxNDk3OTE4OjoxNTAxNjE1OjoxNTA1NDY4OjoxNTA5MzU4OjoxNTEzNTAzOjoxNTE3ODUwOjoxNTIyMDA0OjoxNTI1OTU3OjoxNTI5NzI4OjoxNTMzNDAzIi8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSIxNTM3MDAzOjoxNTQxMjg5OjoxNTQ2MTI0OjoxNTUxMjU2OjoxNTU2Mjg2OjoxNTYxMjcyOjoxNTY1NzMxOjoxNTY5NTgxOjoxNTcyOTQwIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjUyNTEzMDAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjo6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjoxMDo6NTIxOjoxMDA5OjoxOTE0OjoyMzI5OjoyODA0OjozNDc2Ii8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9IjQ1NDY6OjQ2ODI6OjQ3MTk6OjQ4Mzg6OjUzNTA6OjYxNjU6OjYzNjU6OjY0NDU6OjY0OTA6Ojo6NjU3MTo6NjY0Mzo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NjcwNDo6NzIwODo6NzY3OTo6ODEyNDo6ODQ4MDo6OTAxMDo6OTUwMTo6OTkxODo6MTA3MDg6OjEwOTYwOjoxMTA3OTo6MTEyMDA6OjExMjU1OjoxMTQ1OTo6MTE2NTY6OjExNzkzOjoxMjE1OTo6MTIxNTk6OjEyMTU5OjoxMjE1OTo6MTIxNjA6OjEyMTc5OjoxMjIxNTo6MTIyODc6OjEyMzAyOjoxMjg4NCIvPgorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSIxMzUzMzo6MTQyMzA6OjE1MDYyOjoxNjIwNDo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ii8+CisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9IjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyIi8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mzo6MTcxNTcuNTExOjoxNzE1Ny41MjU6OjE3MTU3LjU0Mjo6MTcxNTcuNTU4OjoxNzE1Ny41Nzk6OjE3MTU3LjU5OTo6MTcxNTcuNjA4OjoxNzE1Ny42MTE6OjE3MTU3LjYxMjo6MTcxNTcuNjEyOjoxNzE1Ny42MTI6OjE3MTU3LjYxMjo6MTcxNTcuNjEzOjoxNzE1Ny42MTY6OjE3MTU3LjYxODo6MTcxNTcuNjIzOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMjo6MTcxNTcuNjQ5Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIxNzE1Ny42Njk6OjE3MTU3LjY4Njo6MTcxNTcuNzA2OjoxNzE1Ny43Mjg6OjE3MTU3Ljc1Mjo6MTcxNTcuNzcxOjoxNzE1Ny43ODY6OjE3MTU3Ljc5OTo6MTcxNTcuODEyOjoxNzE1Ny44MjQ6OjE3MTU3LjgzODo6MTcxNTcuODU6OjE3MTU3Ljg2MTo6MTcxNTcuODcxOjoxNzE1Ny44ODM6OjE3MTU3Ljg5OjoxNzE1Ny44OTo6MTcxNTcuODk6OjE3MTU3Ljg5OjoxNzE1Ny44OTo6MTcxNTcuODk6OjE3MTU3Ljg5MTo6MTcxNTcuODk5OjoxNzE1Ny45MTE6OjE3MTU3LjkxODo6MTcxNTcuOTI6OjE3MTU3LjkyMTo6MTcxNTcuOTI1OjoxNzE1Ny45MzI6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTYiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6Ojo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ojo6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1NiIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMjYzNjY6OjI2NjQ4OjoyOTczNzo6MzM3OTA6OjM3MzIwOjo0MTAzODo6NDU0OTE6OjUwODcwOjo1NjM3ODo6NjIwNjY6OjY3ODkyOjo3NDQzNTo6ODEwNzM6Ojg3NzQ4Ojo5NDQ4Nzo6MTAxMzI1OjoxMDgxNzM6OjExNDY3MTo6MTIwNDE3OjoxMjU3Njg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCIvPgorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iMTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCIvPgorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iMTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCIvPgorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCIvPgorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIzNDYwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjYwOTQ1NjQ6OjYwOTU4Njk6OjYwOTc0MzM6OjYwOTkwNDY6OjYxMDA2MzA6OjYxMDE5NjA6OjYxMDMxMzc6OjYxMDQ4MjY6OjYxMDY0ODc6OjYxMDgzMzg6OjYxMTAwNTc6OjYxMTIwODc6OjYxMTQxMDg6OjYxMTYwMTc6OjYxMTY2MzU6OjYxMTY2NDA6OjYxMTY2NDU6OjYxMTY2NDg6OjYxMTY2NDk6OjYxMTY2NTQ6OjYxMTY2NjE6OjYxMTY2Njc6OjYxMTY2NzQ6OjYxMTY2ODE6OjYxMTY2ODg6OjYxMTY2OTQ6OjYxMTY3MDE6OjYxMTY3MDg6OjYxMTY3MTU6OjYxMTY3MjE6OjYxMTY3MjM6OjYxMTY3MzA6OjYxMTY3Mzg6OjYxMTY3NDU6OjYxMTY3NTE6OjYxMTY3NTc6OjYxMTY3NjQ6OjYxMTY3NzE6OjYxMTY3Nzk6OjYxMTY3ODY6OjYxMTY3OTM6OjYxMTY3OTk6OjYxMTY4MDA6OjYxMTY4MDA6OjYxMTY4MDU6OjYxMTY4MDg6OjYxMTY4MTI6OjYxMTY4MTkiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iNjExNjgyNjo6NjExNjgzMjo6NjExNjgzMjo6NjExNjgzNDo6NjExNjgzODo6NjExNjgzOTo6NjExNjgzOTo6NjExNjg0NTo6NjExNjg1Mjo6NjExNjg1OTo6NjExNjg2Njo6NjExNjg3Mzo6NjExNjg4MDo6NjExNjg4Nzo6NjExNjg5Mzo6NjExNjg5ODo6NjExNjg5OTo6NjExNjg5OTo6NjExNjg5OTo6NjExNjkwMTo6NjExNjkwMjo6NjExNjkwNDo6NjExNjkwNTo6NjExNjkxMDo6NjExNjkxNzo6NjExNjkyNDo6NjExNjkzMTo6NjExNjkzODo6NjExNjk0NTo6NjExNjk1Mjo6NjExNjk1Nzo6NjExNjk2MTo6NjExNjk2ODo6Ojo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcwOjo2MTE2OTcyOjo2MTE2OTc4Ojo2MTE2OTgwOjo2MTE2OTg3Ojo2MTE2OTk0Ii8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjYxMTcwMDE6OjYxMTcwMDg6OjYxMTcwMTU6OjYxMTcwMjI6OjYxMTcwMjk6OjYxMTcwMzM6OjYxMTcwMzk6OjYxMTcwNDI6OjYxMTcwNDI6OjYxMTcwNDQ6OjYxMTcwNDk6OjYxMTcwNTQ6OjYxMTcwNjE6OjYxMTcwNjI6OjYxMTcwNjI6OjYxMTcwNjM6OjYxMTcwNjU6OjYxMTcwNjU6OjYxMTcwNjY6OjYxMTcwNzI6OjYxMTcwNzg6OjYxMTcwODQ6OjYxMTcwOTE6OjYxMTcwOTg6OjYxMTcxMDM6OjYxMTcxMTA6OjYxMTcxMTc6OjYxMTcxMjQ6OjYxMTcxMjk6OjYxMTcxMjk6OjYxMTcxMzQ6OjYxMTcxMzY6OjYxMTcxMzc6OjYxMTcxMzc6OjYxMTcxMzc6OjYxMTcxMzg6OjYxMTcxNDQ6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDg6OjYxMTcxNTA6OjYxMTcxNTQ6OjYxMTcxNjA6OjYxMTcxNjciLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iNjExNzE3NDo6NjExNzE4MTo6NjExNzE4OTo6NjExNzE5Njo6NjExNzIwMzo6NjExNzIxMDo6NjExNzIxNjo6NjExNzIxOTo6NjExNzIyMDo6NjExNzIyMDo6NjExNzIyMjo6NjExNzIyODo6NjExNzIzNTo6NjExNzIzOTo6NjExNzI0MTo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0Nzo6NjExNzI0ODo6NjExNzI1Mjo6NjExNzI1OTo6NjExNzI2Njo6NjExNzI3Mzo6NjExNzI4MDo6NjExNzI4Nzo6NjExNzI5Mzo6NjExNzI5Nzo6NjExNzMwMzo6NjExNzMwNDo6NjExNzMwNTo6NjExNzMwOTo6NjExNzMxNjo6NjExNzMyMzo6NjExNzMzMDo6NjExNzMzNjo6NjExNzM0MDo6NjExODA5NTo6NjExODkzNjo6NjExOTI5OTo6NjExOTMwMDo6NjEyMDExNzo6NjEyMDQxOTo6NjEyMDg2Nzo6NjEyMTY5Mjo6NjEyMzMwOCIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSI2MTIzOTM4Ojo2MTI0MTA2Ojo2MTI0NzY1Ojo2MTI1NjkxOjo2MTI1Nzg0Ojo2MTI1Nzg1Ojo2MTI2MTI5Ojo2MTI2MTI5Ojo2MTI2MTI5Ojo6OjYxMjYxMjk6OjYxMjYxMjk6OjYxMjYxNjQ6OjYxMjYxNzM6OjYxMjYxNzM6OjYxMjYzNTg6OjYxMjY1MzE6OjYxMjY1NzY6OjYxMjY4NDA6OjYxMjc2MTI6OjYxMjg0NTU6OjYxMjg0NTU6OjYxMjg3NTc6OjYxMjk4ODA6OjYxMjk5ODE6OjYxMjk5ODM6OjYxMzAxMzM6OjYxMzA0NzM6OjYxMzA0ODU6OjYxMzA0ODU6OjYxMzA0ODU6OjYxMzA0ODU6OjYxMzA0OTM6OjYxMzA0OTM6OjYxMzA0OTM6OjYxMzA0OTM6OjYxMzA0OTM6OjYxMzA0OTM6OjYxMzA0OTM6OjYxMzA1NjE6OjYxMzA2NDk6OjYxMzA2NDk6OjYxMzA2NDk6OjYxMzA2NDk6OjYxMzA2NDk6OjYxMzA2NDk6OjYxMzA3OTI6OjYxMzIwMTY6OjYxMzMxNzUiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iNjEzNDMwNjo6NjEzNDcxNzo6NjEzNTA5Mzo6NjEzNTA5Mzo6NjEzNTQwMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyOTo6NjEzNjA0MTo6NjEzNjYxNzo6NjEzNzI1Njo6NjEzNzUxMjo6NjEzNzc5Nzo6NjEzODA4OTo6NjEzODQzMTo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTE0Nzo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTQ1Njo6NjE0MDY1NTo6NjE0MTc4MiIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI2MTQyNjA5Ojo2MTQyODI4Ojo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM5Ojo2MTQzMDU2Ojo2MTQzMDU2Ojo2MTQzMzgyOjo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTg3Ojo2MTQzNzEzOjo2MTQ0MTM1Ojo2MTQ0NzgzOjo2MTQ0ODE2Ojo2MTQ0ODE2Ojo2MTQ0ODE2OjoxNDQ4MTguMjo6MTQ0ODE4LjI6OjE0NDgxOC4yOjoxNDQ4MTguMjo6MTQ0ODE4LjI6OjE0NDgxOC4yNDM6OjE0NDgxOC40NzQ6OjE0NDgxOC40ODo6MTQ0ODE4Ljc3NTo6MTQ0ODE5Ljk1NSIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMTQ0ODIxLjI2MTo6MTQ0ODIyLjY0NDo6MTQ0ODI0LjA1Mzo6MTQ0ODI0LjU4NDo6MTQ0ODI0LjU4Nzo6MTQ0ODI0LjU4Nzo6MTQ0ODI0LjU4Nzo6MTQ0ODI0LjYyOjoxNDQ4MjQuNzQ0OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzQ2OjoxNDQ4MjQuNzU1OjoxNDQ4MjQuNzU1OjoxNDQ4MjQuNzU1OjoxNDQ4MjQuNzU1OjoxNDQ4MjQuNzU1OjoxNDQ4MjQuNzU1OjoxNDQ4MjQuNzU1OjoxNDQ4MjQuNzU2OjoxNDQ4MjQuNzU2OjoxNDQ4MjQuNzU2OjoxNDQ4MjQuNzU2OjoxNDQ4MjQuNzU3OjoxNDQ4MjQuNzc6OjE0NDgyNC43ODg6OjE0NDgyNC43OTY6OjE0NDgyNC44MDI6OjE0NDgyNC44MDU6OjE0NDgyNC44MDY6OjE0NDgyNC44MDY6OjE0NDgyNC44MDY6OjE0NDgyNC44MDY6OjE0NDgyNC44MDY6OjE0NDgyNC44MDY6OjE0NDgyNC44MDk6OjE0NDgyNC44MjM6OjE0NDgyNC44MjgiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjE0NDgyNC44Mjg6OjE0NDgyNC44Mjg6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzU6OjE0NDgyNC44MzU6OjE0NDgyNC44NDo6MTQ0ODI0Ljg0NTo6MTQ0ODI0Ljg0OTo6MTQ0ODI0Ljg2NTo6MTQ0ODI0Ljg3Njo6MTQ0ODI0Ljg4ODo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg5Mjo6MTQ0ODI0Ljg5Njo6MTQ0ODI0Ljg5Nzo6MTQ0ODI0Ljk6OjE0NDgyNC45OjoxNDQ4MjQuOTo6NjE0NDgyNDo6NjE0NDgyNDo6NjE0NDgyNDo6NjE0NDgyNDo6NjE0NTAwMDo6NjE0NjcwMjo6NjE0ODk5NTo6NjE1MTI5OCIvPgorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iNjE1NDAxMTo6NjE1Njg4NTo6NjE1OTgyMTo6NjE2MTc4MTo6NjE2MjQyNDo6NjE2MzU2NTo6NjE2NTI3ODo6NjE2Njg2ODo6NjE2Nzc1NTo6NjE2ODY3MTo6NjE3MTMxMjo6NjE3NDMxNTo6NjE3NzAxNDo6NjE3OTYwOTo6NjE4MTU2ODo6Ojo2MTgyMDc2Ojo2MTgyNTY3Ojo2MTgzODYzOjo2MTg1MTIyOjo2MTg2NjY4Ojo2MTg4OTA2Ojo2MTkwMDM3Ojo2MTkxMDE2Ojo2MTkyNTc3Ojo2MTk0Mjc0Ojo2MTk2MDI5Ojo2MTk2ODEwOjo2MTk2ODU1Ojo2MTk2OTUyOjo2MTk3NjgxOjo2MTk4NTQ4Ojo2MTk4NjU3Ojo6OjYxOTkzOTI6OjYyMDAzNzI6OjYyMDA4OTU6OjYyMDEyMjg6OjYyMDE0MjU6OjYyMDE0MjU6OjYyMDI4NTY6OjYyMDU1ODU6OjYyMDkwNDg6OjYyMTExMTU6OjYyMTI2NDg6OjYyMTU3MjA6OjYyMTkwOTA6OjYyMjE3NzM6OjYyMjQ4NDg6OjYyMjgxODUiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjYyMzE1MzA6OjYyMzM5MDE6OjYyMzU1MTc6OjYyMzcyNjQ6OjYyMzk1NTQ6OjYyNDE5NDM6OjYyNDQwNDk6OjYyNDYwMDM6OjYyNDgyOTE6OjYyNTA4ODAiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjYyNjkzOTM6OjYyNjk0NjA6OjYyNjk1NjE6OjYyNjk1NjE6OjYyNzAxOTM6OjYyNzExOTM6OjYyNzE3NjY6OjYyNzE3NjY6OjYyNzE3NjY6OjYyNzIwMDM6OjYyNzM0MTQ6OjYyNzM4MDI6OjYyNzQxOTA6OjYyNzUwNzA6OjYyNzU3ODg6OjYyNzU4MDU6OjYyNzU4MDU6OjYyNzU4NDQ6OjYyNzY3NDc6OjYyNzcwOTM6OjYyNzcxODQ6OjYyNzcyNjc6OjYyNzc3MTA6OjYyNzgzNDY6OjYyNzkyNjI6OjYyODAwNDE6OjYyODEyNjg6OjYyODI5MDg6OjYyODQ3NDQ6OjYyODY3OTI6OjYyODkwMzY6OjYyOTEzNjI6OjYyOTM1ODY6OjYyOTU4ODQ6OjYyOTgxMzY6OjYzMDAxMTU6OjYzMDIzMTY6OjYzMDI5NTQ6OjYzMDM0Mzk6OjYzMDM3NDk6OjYzMDM5Mzg6OjYzMDQyMTI6OjYzMDQ5MjQ6OjYzMDUzMDk6OjYzMDU2MjY6OjYzMDU4MDQ6OjYzMDYwMDQ6OjYzMDYzMjEiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MTc6OjYzMDY1NjI6OjYzMDY5MDQ6OjYzMDczOTk6OjYzMDk1MTc6OjYzMTE2NDM6OjYzMTI2MTE6OjYzMTM4NzU6OjYzMTQ4Njg6OjYzMTUyMjg6OjYzMTUzNTI6OjYzMTUzODU6OjYzMTU4MzU6OjYzMTYwMTY6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYxMTM6OjYzMTY0NjA6OjYzMTY3NTU6OjYzMTcxNzc6OjYzMTgwMzY6OjYzMTgzODM6OjYzMTkwMzg6OjYzMTkwMzg6OjYzMTk2MzI6OjYzMjA2MjA6OjYzMjIwOTk6OjYzMjMwMjc6OjYzMjM1Mjg6OjYzMjM5NjI6OjYzMjM5Njc6OjYzMjM5Njc6OjYzMjQxNDM6OjYzMjUxNDE6OjYzMjUzMjI6OjYzMjU3MjQ6OjYzMjYwMjA6OjYzMjcxMzI6OjYzMjcxMzIiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjYzMjcxMzI6OjYzMjcxMzI6OjYzMjgxNzQ6OjYzMjg2Njc6OjYzMjg2Njc6OjYzMjg3MDU6OjYzMjk0MDI6OjYzMzAwNTg6OjYzMzAwNTg6OjYzMzA2NTU6OjYzMzE3NzQ6OjYzMzIwMzM6OjYzMzIwMzM6OjYzMzIwMzM6OjYzMzIwMzM6OjYzMzIwMzM6OjYzMzIwNzg6OjYzMzIzMTY6OjYzMzI4NzI6OjYzMzI4OTc6OjYzMzI4OTc6OjYzMzI4OTc6OjYzMzI4OTc6OjYzMzMxNzM6OjYzMzMyMDQ6OjYzMzM4Mjc6OjYzMzQ0MTM6OjYzMzQ0MTM6OjYzMzQ0MTM6OjYzMzQ0MTM6OjYzMzQ0MTM6OjYzMzQ1NTQ6OjYzMzQ1NTQ6OjYzMzQ1NTQ6OjYzMzQ3NjU6OjYzMzQ5Nzc6OjYzMzU0ODE6OjYzMzU3NTk6OjYzMzU3NTk6OjYzMzU3NTk6OjYzMzU3NTk6OjYzMzU4MjQ6OjYzMzU4MjY6OjYzMzU4MjY6OjYzMzU4MjY6OjYzMzU4MjY6OjYzMzU4ODk6OjYzMzY0MDciLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjYzMzgwNDc6OjYzMzg3MTk6OjYzMzg3Mjk6OjYzMzg3Mjk6OjYzMzg3Mjk6OjYzMzkwNjU6OjYzNDAzNTQ6OjYzNDE3NjY6OjYzNDI3MjM6OjYzNDM0MzI6OjYzNDM5MjQ6OjYzNDUwMDI6OjYzNDYxMTU6OjYzNDcwMTg6OjYzNDcwNDg6OjYzNDcwNTA6OjYzNDcwOTE6OjYzNDcwOTE6OjYzNDcwOTE6OjYzNDcwOTE6OjYzNDc0MDY6OjYzNTAyMDA6OjYzNTIwNzc6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIzMzE6OjYzNTIzMzE6OjYzNTI2Mzg6OjYzNTMxOTM6OjYzNTM2OTU6OjYzNTUwMTk6OjYzNTY5MTU6OjYzNTg5NTI6OjYzNjA0MzA6OjYzNjEzNTI6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjAiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjYzNjE0MjA6OjYzNjE0MzQ6OjYzNjE2OTg6OjYzNjIxNzQ6OjYzNjI2NjA6OjYzNjM1MDI6OjYzNjM4NjA6OjYzNjM4NjA6OjYzNjM5MzMiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMzM4MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSI4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyIi8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9Ijg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMiIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSI4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyIi8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9Ijg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE4MDEwMjo6ODgxODExNzY6Ojg4MTgxODU5Ojo4ODE4MTg2MTo6ODgxODE4OTQ6Ojg4MTgxODk2Ojo4ODE4MTg5Njo6ODgxODE4OTYiLz4KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iODgxODIxNjk6Ojg4MTgyMjAwOjo4ODE4MjIwMDo6ODgxODIyMDA6Ojg4MTgyMjg4Ojo4ODE4MzM2Mzo6ODgxODM4NTc6Ojg4MTg0NjMxOjo4ODE4NjQwNzo6Ojo4ODE5NDAxMDo6ODgxOTgyMzM6Ojg4MjAwMTQ4Ojo4ODIwMDM0ODo6ODgyMDA5NDc6Ojg4MjAyNjIwOjo4ODIwMzAxMTo6ODgyMDM1MDc6Ojg4MjAzNTEyOjo4ODIwMzUxMjo6ODgyMDM1NDM6Ojg4MjA0MzU2Ojo4ODIwNDQwMTo6ODgyMDQ0MDE6Ojg4MjA1ODMwOjo4ODIwNjE4ODo6ODgyMDYyMjI6Ojg4MjA2MjIyOjo4ODIwNjUwMjo6ODgyMDc1MTc6Ojg4MjA5MDA4Ojo4ODIxMDEwMjo6ODgyMTA2NjY6Ojg4MjExNjM1Ojo4ODIxMjcyNDo6ODgyMTM2MDQ6Ojg4MjE0MTA4Ojo4ODIxNDUxMjo6ODgyMTQ5Njk6Ojg4MjE2MjI5Ojo4ODIxNjc1OTo6ODgyMTkyMjE6Ojg4MjIxODE4Ojo4ODIyNDU4OTo6ODgyMjcwMzE6Ojg4MjI4ODcwOjo4ODIyOTU2Mzo6ODgyMjk1NjM6Ojg4MjI5NTgwIi8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9Ijg4MjI5NTgwOjo4ODIyOTU4MDo6ODgyMjk1ODI6Ojg4MjMwMzI1Ojo4ODIzMTg4MTo6ODgyMzE5MTA6Ojg4MjMyNTk1Ojo4ODIzNDU3NDo6ODgyMzcyNDU6Ojg4MjQwMjgzOjo4ODI0MzA1Njo6ODgyNDM2NDM6Ojg4MjQ0MTA1Ojo4ODI0NDM1Mjo6ODgyNDQ1OTM6Ojg4MjQ1MTE1Ojo4ODI0NTc0Njo6ODgyNDU3NDY6Ojg4MjQ1ODkxOjo4ODI0NTkxNTo6ODgyNDU5NTk6Ojg4MjQ1OTg4Ojo4ODI0NTk4OTo6ODgyNDcyNDQ6Ojg4MjQ4NTEwOjo4ODI0OTI5Mzo6ODgyNTAyMDM6Ojg4MjUyMTc4Ojo4ODI1NDUzMTo6ODgyNTQ4NzQ6Ojg4MjU1NzA0Ojo4ODI1Njg5ODo6ODgyNTg0Mzg6Ojg4MjU5NTk1Ojo4ODI2MDM5ODo6ODgyNjA5MTk6Ojg4MjYyODQ1Ojo4ODI2NDMxNDo6ODgyNjYwMDY6Ojg4MjY4Mjk3Ojo4ODI2OTk0Mjo6ODgyNzE1MDI6Ojg4MjcyNjkwOjo4ODI3Mzg0OTo6ODgyNzU1MDM6Ojg4Mjc2MDAzOjo4ODI3NjAwMzo6ODgyNzYwMDMiLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iODgyNzYwMTc6Ojg4Mjc2MDE3Ojo4ODI3NjAxOTo6ODgyNzY4NTE6Ojg4Mjc4NTE1Ojo4ODI4MDExODo6ODgyODE1NjA6Ojg4MjgzMDc0Ojo4ODI4Mzk3MTo6ODgyODU0Mjg6Ojg4Mjg2ODE1Ojo4ODI4NzcyNjo6ODgyODg4MzM6Ojg4Mjg5OTUzOjo4ODI5MTAzNzo6ODgyOTMwOTk6Ojg4Mjk1NDI3Ojo4ODI5NjY3NDo6ODgyOTcxMzM6Ojg4Mjk3ODMyOjo4ODI5ODYxMjo6ODgyOTk0NDc6Ojg4Mjk5NTE3Ojo4ODMwMDU0MTo6ODgzMDEwMjU6Ojg4MzAxMzA0Ojo4ODMwMTUwMzo6ODgzMDI0Njg6Ojg4MzA0NDE3Ojo4ODMwNjEwNjo6ODgzMDc1NzE6Ojg4MzA4MzY4Ojo4ODMwODQ0ODo6ODgzMDg0NDg6Ojg4MzA4NDQ4Ojo4ODMwOTAyMTo6ODgzMDk4OTk6Ojg4MzEwNzE5OjoxMTExODguMDE2OjoxMTExODkuMzo6MTExMTkwLjA4ODo6MTExMTkxLjgyMzo6MTExMTkyLjkxOjoxMTExOTMuMjAyOjoxMTExOTMuNDczOjoxMTExOTMuOTMxOjoxMTExOTMuOTQ4OjoxMTExOTMuOTQ4Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIxMTExOTMuOTQ4OjoxMTExOTMuOTQ4OjoxMTExOTMuOTQ4OjoxMTExOTMuOTQ4OjoxMTExOTQuNTg6OjExMTE5NS41MTk6OjExMTE5Ni43MzU6OjExMTE5OC4zMzg6OjExMTE5OS4zMDI6OjExMTIwMC42MjU6OjExMTIwMS43NzU6OjExMTIwMi40MjI6OjExMTIwMy4wMDg6OjExMTIwMy4wMjo6MTExMjAzLjAzMjo6MTExMjAzLjA2Mjo6MTExMjAzLjA5ODo6MTExMjAzLjEzNTo6MTExMjAzLjE3MTo6MTExMjAzLjIwMzo6MTExMjAzLjIxMjo6MTExMjAzLjIxNjo6MTExMjAzLjIyMTo6MTExMjAzLjI3Njo6MTExMjAzLjI5OTo6MTExMjAzLjMxNjo6MTExMjAzLjMzNTo6MTExMjAzLjM3MTo6MTExMjAzLjQyMjo6MTExMjAzLjQ1Mjo6MTExMjAzLjQ1Nzo6MTExMjAzLjQ2NDo6MTExMjAzLjQ2ODo6MTExMjAzLjQ2ODo6MTExMjAzLjQ2ODo6MTExMjAzLjQ2ODo6MTExMjAzLjQ2ODo6MTExMjAzLjQ2ODo6MTExMjAzLjQ2OTo6MTExMjAzLjU6OjExMTIwMy41MzI6OjExMTIwMy41NzE6OjExMTIwMy42MDY6OjExMTIwMy42MzI6OjExMTIwMy42Mzk6OjExMTIwMy42Mzk6OjExMTIwMy42Mzk6OjExMTIwMy42NjEiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjExMTIwMy42NzE6OjExMTIwMy42NzE6OjExMTIwMy42NzI6OjExMTIwMy42ODQ6OjExMTIwMy43MTU6OjExMTIwMy43Mzk6OjExMTIwMy43NjE6OjExMTIwMy44MDE6OjExMTIwMy44Mzc6OjExMTIwMy44Njc6OjExMTIwMy44OTE6OjExMTIwMy44OTc6OjExMTIwMy45MDQ6OjExMTIwMy45MTU6OjExMTIwMy45MzU6OjExMTIwMy45NTU6OjExMTIwMy45NjI6OjExMTIwMy45Njk6OjExMTIwMy45NzI6OjExMTIwMy45ODg6OjExMTIwMy45OTc6OjExMTIwMy45OTc6OjExMTIwNDo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAxNjo6MTExMjA0LjA1Mjo6MTExMjA0LjA2Mzo6MTExMjA0LjA3OjoxMTEyMDQuMDgxOjoxMTEyMDQuMDkzOjoxMTEyMDQuMDk3OjoxMTEyMDQuMDk3OjoxMTEyMDQuMDk5OjoxMTEyMDQuMTE6OjExMTIwNC4xMjg6OjExMTIwNC4xNjQ6Ojg4MzEyNjI4Ojo4ODMxNDc2Nzo6ODgzMTYyOTA6Ojg4MzE3Mjg0Ojo4ODMxNzY5NDo6ODgzMTc2OTQ6Ojg4MzE3Njk0Ojo4ODMxNzY5NCIvPgorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iODgzMTc2OTQ6Ojg4MzE3Njk0Ojo4ODMxNzY5NDo6ODgzMTc2OTQ6Ojg4MzE3Njk4Ojo4ODMxNzcwMDo6ODgzMTc3MTM6Ojg4MzE3NzEzOjo4ODMxNzcxMzo6ODgzMTc3MTM6Ojg4MzE3Nzc4Ojo4ODMxNzc3ODo6ODgzMTc3Nzg6Ojg4MzE3Nzc4Ojo4ODMxNzc3ODo6Ojo4ODMyMDUxMTo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMTQyMDo6ODgzMjMwNDI6Ojg4MzIzMDQyOjo4ODMyMzA1Mzo6ODgzMjMxMDU6Ojo6ODgzMjMxMzc6Ojg4MzIzMTM3Ojo4ODMyMzEzNzo6ODgzMjMxMzc6Ojg4MzIzMTQ4Ojo4ODMyMzc3NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODUiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9Ijg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc5MDo6ODgzMjM3OTA6Ojg4MzIzNzkwOjo4ODMyMzc5MDo6ODgzMjM3OTA6Ojg4MzIzNzkwIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI4ODM0MjEzMDo6ODgzNDIyMDk6Ojg4MzQyNTI5Ojo4ODM0NDQ1ODo6ODgzNDQ0ODU6Ojg4MzQ0NDg1Ojo4ODM0NTkwNTo6ODgzNDgzNzk6Ojg4MzUwNDk0Ojo4ODM1MDgxMzo6ODgzNTA4MTM6Ojg4MzUxMDU2Ojo4ODM1MTA1Njo6ODgzNTEwNTY6Ojg4MzUxMDU2Ojo4ODM1MTI4Nzo6ODgzNTI0Mjg6Ojg4MzUzNTk4Ojo4ODM1MzU5ODo6ODgzNTM2MDE6Ojg4MzUzODU5Ojo4ODM1Mzg2Mjo6ODgzNTM4NjI6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM5NjU6Ojg4MzUzOTY1Ojo4ODM1Mzk2NTo6ODgzNTQwMTg6Ojg4MzU0MDE4Ojo4ODM1NDAxODo6ODgzNTQwMTg6Ojg4MzU0MDE4Ojo4ODM1NDAyMTo6ODgzNTQwMjE6Ojg4MzU0MDIxIi8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSI4ODM1NDE2Njo6ODgzNTQ1NTI6Ojg4MzU1MTMwOjo4ODM1NzE1NDo6ODgzNTkyMjY6Ojg4MzU5ODI4Ojo4ODM1OTgyODo6ODgzNjAwNjg6Ojg4MzYwMTI2Ojo4ODM2MDEyNjo6ODgzNjAxMjY6Ojg4MzYwMTk0Ojo4ODM2MDIwNTo6ODgzNjAyMDU6Ojg4MzYwMjA1Ojo4ODM2MDIyMzo6ODgzNjA0MDY6Ojg4MzYxMzg1Ojo4ODM2MjI5Nzo6ODgzNjM1MTE6Ojg4MzY1NzU3Ojo4ODM2NzgyMTo6ODgzNjkyNzM6Ojg4MzY5OTI5Ojo4ODM3MTUzODo6ODgzNzMzMjI6Ojg4MzczODk5Ojo4ODM3NDYyOTo6ODgzNzQ2MzE6Ojg4Mzc0NjU1Ojo4ODM3NDY1Nzo6ODgzNzQ4MjI6Ojg4Mzc1NDY2Ojo4ODM3NTQ3MTo6ODgzNzU0NzE6Ojg4Mzc1NDcxOjo4ODM3NTU5OTo6ODgzNzU1OTk6Ojg4Mzc1NTk5Ojo4ODM3NjEwMjo6ODgzNzc0MzI6Ojg4Mzc4MzA2Ojo4ODM3ODMxOTo6ODgzNzg0Njc6Ojg4Mzc4OTE3Ojo4ODM3ODkxNzo6ODgzNzg5MTg6Ojg4Mzc5NDgyIi8+CisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSI4ODM4MDc3Nzo6ODgzODIyNzU6Ojg4MzgyNjYxOjo4ODM4Mjc3Nzo6ODgzODMyNTA6Ojg4MzgzNTkyOjo4ODM4MzU5Mjo6ODgzODM3MTE6Ojg4Mzg1MjAzOjo4ODM4NTI1Nzo6ODgzODUyNTc6Ojg4Mzg4NDU5Ojo4ODM5MDM5NDo6ODgzOTA4NTA6Ojg4MzkxNTYxOjo4ODM5MzgzNDo6ODgzOTc1Nzk6Ojg4Mzk3ODE5Ojo4ODM5NzgxOTo6ODgzOTkyMTg6Ojg4NDAxNzkyOjo4ODQwNTM4Njo6ODg0MDgxMDA6Ojg4NDA4MTIyOjo4ODQwODM2NTo6ODg0MDg1MDU6Ojg4NDA4NTA1Ojo4ODQxMDI0Njo6ODg0MTE2NjA6Ojg4NDEyODQ5Ojo4ODQxMzMzMzo6ODg0MTQ1MjE6Ojg4NDE2Njk2Ojo4ODQxNzU4Mzo6ODg0MTc2ODM6Ojg4NDE3ODU0Ojo4ODQxNzg1NDo6ODg0MTc4ODM6Ojg4NDE4MDI3Ojo4ODQxOTE1OTo6ODg0MjAxMDg6Ojg4NDIxMDcxOjo4ODQyMTgyODo6ODg0MjM1NTk6Ojg4NDI2ODk0Ojo4ODQyOTk3NTo6ODg0MzI4Mjg6Ojg4NDMyODI4Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSI4ODQzMjgyODo6ODg0MzI4Mjg6Ojg4NDM0OTUxOjo4ODQzOTU0ODo6ODg0NDA5MTY6Ojg4NDQxMDMwOjo4ODQ0MTAzMDo6ODg0NDEwMzA6Ojg4NDQxMDMwOjo4ODQ0MTAzMDo6ODg0NDExMTY6Ojg4NDQxMTE2Ojo4ODQ0MTExNjo6ODg0NDExMTY6Ojg4NDQxMjE4Ojo4ODQ0MTczOTo6ODg0NDIzNjM6Ojg4NDQzNTQyOjo4ODQ0NTM0NDo6ODg0NDg2MjQ6Ojg4NDUxNDY0Ojo4ODQ1MTQ2NDo6ODg0NTE0NzM6Ojg4NDUxNjUyOjo4ODQ1MTg0MDo6ODg0NTIzMjM6Ojg4NDUzMzMyOjo4ODQ1NTg4OTo6ODg0NTg1MDc6Ojg4NDYwNTk1Ojo4ODQ2MDc3Mjo6ODg0NjIwNjU6Ojg4NDYyMjY0Ojo4ODQ2MjYwODo6ODg0NjI2MjI6Ojg4NDYyNjIyOjo4ODQ2MjYyMjo6ODg0NjI2MjI6Ojg4NDYyNjIyOjo4ODQ2MjYyMjo6ODg0NjI4MjY6Ojg4NDYzNTM4Ojo4ODQ2NDY2Nzo6ODg0NjYzMTA6Ojg4NDY4MzA5Ojo4ODQ3MTM5Mzo6ODg0NzQzMDg6Ojg4NDc3Mjc0Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSI4ODQ4MDM3ODo6ODg0ODExNTc6Ojg4NDgxNzY2Ojo4ODQ4MTc2Njo6ODg0ODE3NjY6Ojg4NDgxNzY2Ojo4ODQ4MzM0MDo6ODg0ODU2MjY6Ojg4NDg2MTE4Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjMzNDAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iOTQzNzc5NTo6OTQ0MTk3Mjo6OTQ0NjE0NDo6OTQ1MDIxNzo6OTQ1NDI2MTo6OTQ1ODE4NDo6OTQ2MjM0Njo6OTQ2NzQzNDo6OTQ3MzE4Njo6OTQ4MDEyNjo6OTQ4NzQwNDo6OTQ5NDc3OTo6OTUwMTkxNjo6OTUwODYxNTo6OTUxMDYyMTo6OTUxMDYyODo6OTUxMDYzNTo6OTUxMDY0Mjo6OTUxMDY0OTo6OTUxMDY1Njo6OTUxMDY2Mzo6OTUxMDY3MTo6OTUxMDY3ODo6OTUxMDY4Nzo6OTUxMDY5NTo6OTUxMDcwMzo6OTUxMDcxMjo6OTUxMDcyMDo6OTUxMDcyODo6OTUxMDczNjo6OTUxMDc0Mzo6OTUxMDc1MTo6OTUxMDc2MDo6OTUxMDc2ODo6OTUxMDc3Njo6OTUxMDc4NDo6OTUxMDc5Mjo6OTUxMDgwMDo6OTUxMDgwOTo6OTUxMDgxNzo6OTUxMDgyNjo6OTUxMDgzMzo6OTUxMDg0MDo6OTUxMDg0Nzo6OTUxMDg1NTo6OTUxMDg2Mzo6OTUxMDg3MTo6OTUxMDg3OSIvPgorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSI5NTEwODg4Ojo5NTEwODk2Ojo5NTEwOTA0Ojo5NTEwOTEyOjo5NTEwOTIwOjo5NTEwOTI4Ojo5NTEwOTM1Ojo5NTEwOTQ0Ojo5NTEwOTUyOjo5NTEwOTYwOjo5NTEwOTY4Ojo5NTEwOTc2Ojo5NTEwOTg0Ojo5NTEwOTkzOjo5NTExMDAxOjo5NTExMDA5Ojo5NTExMDE2Ojo5NTExMDIzOjo5NTExMDMwOjo5NTExMDM4Ojo5NTExMDQ1Ojo5NTExMDUzOjo5NTExMDYxOjo5NTExMDY5Ojo5NTExMDc4Ojo5NTExMDg2Ojo5NTExMDk1Ojo5NTExMTAzOjo5NTExMTEyOjo5NTExMTIxOjo5NTExMTI5Ojo5NTExMTM3Ojo5NTExMTQ0Ojo6Ojk1MTExNTg6Ojk1MTExNjU6Ojk1MTExNzE6Ojk1MTExNzg6Ojk1MTExODQ6Ojk1MTExOTA6Ojk1MTExOTc6Ojk1MTEyMDM6Ojk1MTEyMDk6Ojk1MTEyMTY6Ojk1MTEyMjM6Ojk1MTEyMzE6Ojk1MTEyMzk6Ojk1MTEyNDc6Ojk1MTEyNTUiLz4KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iOTUxMTI2NDo6OTUxMTI3Mjo6OTUxMTI4MDo6OTUxMTI4OTo6OTUxMTI5Nzo6OTUxMTMwNTo6OTUxMTMxMzo6OTUxMTMyMDo6OTUxMTMyNzo6OTUxMTMzMzo6OTUxMTM0MDo6OTUxMTM0Nzo6OTUxMTM1NDo6OTUxMTM2MTo6OTUxMTM2ODo6OTUxMTM3NTo6OTUxMTM4Mjo6OTUxMTM4OTo6OTUxMTM5Nzo6OTUxMTQwNDo6OTUxMTQxMjo6OTUxMTQxOTo6OTUxMTQyNzo6OTUxMTQzNTo6OTUxMTQ0Mzo6OTUxMTQ1MTo6OTUxMTQ2MDo6OTUxMTQ2ODo6OTUxMTQ3Njo6OTUxMTQ4NDo6OTUxMTQ5Mjo6OTUxMTUwMDo6OTUxMTUwNjo6OTUxMTUxMzo6OTUxMTUxOTo6OTUxMTUyNjo6OTUxMTUzMzo6OTUxMTUzOTo6OTUxMTU0Njo6OTUxMTU1Mzo6OTUxMTU1OTo6OTUxMTU2NTo6OTUxMTU3Mjo6OTUxMTU4MDo6OTUxMTU4Nzo6OTUxMTU5NTo6OTUxMTYwMzo6OTUxMTYxMSIvPgorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSI5NTExNjE5Ojo5NTExNjI4Ojo5NTExNjM3Ojo5NTExNjQ2Ojo5NTExNjU0Ojo5NTExNjYyOjo5NTExNjcwOjo5NTExNjc3Ojo5NTExNjg0Ojo5NTExNjkxOjo5NTExNjk4Ojo5NTExNzA1Ojo5NTExNzEzOjo5NTExNzIwOjo5NTExNzI3Ojo5NTExNzM0Ojo5NTExNzQwOjo5NTExNzQ3Ojo5NTExNzU0Ojo5NTExNzYxOjo5NTExNzY5Ojo5NTExNzc3Ojo5NTExNzg1Ojo5NTExNzk0Ojo5NTExODAzOjo5NTExODExOjo5NTExODIwOjo5NTExODI4Ojo5NTExODM2Ojo5NTExODQ0Ojo5NTExODUyOjo5NTExODU5Ojo5NTExODY2Ojo5NTExODczOjo5NTExODgwOjo5NTExODg4Ojo5NTExODk1Ojo5NTExOTAyOjo5NTExOTA5Ojo5NTE0MzkwOjo5NTE5NzA5Ojo5NTIyMDg5Ojo5NTIyMjM0Ojo5NTIyMjM0Ojo5NTIyMjM0Ojo5NTIyMjM1Ojo5NTIyMjM1Ojo5NTIyMjM1Ii8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9Ijk1MjIyMzc6Ojk1MjIyNDA6Ojk1MjIyNDU6Ojk1MjIyNDU6Ojk1MjIyNDU6Ojk1MjIyNDU6Ojk1MjIzMDU6Ojk1MjI0MTc6Ojk1MjI0NzI6Ojo6OTUyMjU2NDo6OTUyMjY5ODo6OTUyMjk1Nzo6OTUyMzYzMDo6OTUyNDQ1MTo6OTUyNTI5Njo6OTUyNjgzMDo6OTUyODU3OTo6OTUzMDI3OTo6OTUzMjE4Mjo6OTUzMzc5OTo6OTUzNDU1Mjo6OTUzNTQwNDo6OTUzNjMxNzo6OTUzNjM2NDo6OTUzNjM2NDo6OTUzNjM2NDo6OTUzNjM2NDo6OTUzNjM2NDo6OTUzNjM2NDo6OTUzNjM2NTo6OTUzNjM2NTo6OTUzNjM2Njo6OTUzNjM3ODo6OTUzNjQwNTo6OTUzNjQ0NTo6OTUzNjQ1Mjo6OTUzNjQ1NDo6OTUzNjQ2MDo6OTUzNjUwMTo6OTUzNjg1NTo6OTUzNzA4Nzo6OTUzNzMxODo6OTUzNzQ3NDo6OTUzNzUyNTo6OTUzNzU0ODo6OTUzNzU4MTo6OTUzNzY3Nzo6OTUzNzY3OCIvPgorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSI5NTM3Njc4Ojo5NTM3Njc4Ojo5NTM3Njc4Ojo5NTM3Njc4Ojo5NTM3NzM2Ojo5NTM4MTQzOjo5NTM4ODkzOjo5NTQwNTQ2Ojo5NTQyODc1Ojo5NTQ1MzI0Ojo5NTQ3ODY5Ojo5NTUwNzg4Ojo5NTUzNTgyOjo5NTU2NDUzOjo5NTU5MjM3Ojo5NTYyMDI1Ojo5NTY1OTUxOjo5NTY5OTQ3Ojo5NTczNjkyOjo5NTc3MDQwOjo5NTgwMDMyOjo5NTgyNDYyOjo5NTg0MzQ3Ojo5NTg1NTYyOjo5NTg2MjI2Ojo5NTg2OTI4Ojo5NTg3NTc5Ojo5NTg4MDc3Ojo5NTg4OTc0Ojo5NTkxMTkyOjo5NTkzNzczOjo5NTk3NTYwOjo5NjAxODA4Ojo5NjA2MTYwOjo5NjEwNzU2Ojo5NjE1MjI2Ojo5NjE5Njk0Ojo5NjI0NDA5Ojo5NjI5MTI0Ojo5NjMzNDkzOjo5NjM3ODQ5Ojo5NjQxOTIyOjo5NjQ1Nzc2Ojo5NjQ5MzE2Ojo5NjUyMzc4Ojo5NjU1NTAyOjo5NjU4NDc5Ojo5NjYxMDIxIi8+CisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9Ijk2NjMyMzc6Ojk2NjUyMjg6Ojk2NjcxODc6Ojk2Njg5MjU6Ojk2NzA3NzY6Ojk2NzMyOTc6Ojk2NzY1MDI6Ojk2ODA2NzM6Ojk2ODMxOTE6Ojk2ODc2OTA6Ojk2OTIyNzk6Ojk2OTY0ODE6Ojk3MDA2Nzk6Ojk3MDQ4NTU6Ojk3MDkxNjE6Ojk3MTM1NDI6Ojk3MTc4Njc6Ojk3MjIxNjc6Ojk3MjY0NTE6Ojk3MzAzNjM6Ojk3MzM4NTk6Ojk3MzY3NTQ6Ojk3Mzk0NzU6Ojk3NDE0NDA6Ojk3NDMyNjA6Ojk3NDUwNjQ6Ojk3NDY4ODM6Ojk3NDg1MTc6Ojk3NTAyMTA6Ojk3NTI2MTk6Ojk3NTU3MzA6Ojk3NTk5NDk6Ojk3NjQ2ODY6Ojk3NjkzNzQ6Ojk3NzQ0NjU6Ojk3Nzg3NDE6Ojk3ODMwMjM6Ojk3ODcxMzU6Ojg5Nzc1LjEyMzo6ODk3NzkuMDQ6Ojg5NzgzLjAzNjo6ODk3ODYuNjMzOjo4OTc5MC4wOTE6Ojg5NzkzLjM2OTo6ODk3OTYuMzI0Ojo4OTc5OC41ODU6Ojg5ODAwLjYzNTo6ODk4MDIuNjIxIi8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSI4OTgwNC4zODE6Ojg5ODA2LjA2Mzo6ODk4MDcuNzUyOjo4OTgwOS4yODQ6Ojg5ODEwLjg2Ojo4OTgxMy4wMTI6Ojg5ODE1LjYwNzo6ODk4MTguNzk6Ojg5ODIyLjE1NDo6ODk4MjQuNzE0Ojo4OTgyNy40MjU6Ojg5ODMwLjUwODo6ODk4MzIuNjczOjo4OTgzMi43MTo6ODk4MzIuNzI4Ojo4OTgzMi43NDU6Ojg5ODMyLjc2Nzo6ODk4MzIuNzg1Ojo4OTgzMi43OTg6Ojg5ODMyLjgwOTo6ODk4MzIuODE3Ojo4OTgzMi44Mjo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI2Ojo4OTgzMi44MzE6Ojg5ODMyLjgzNDo6ODk4MzIuODM4Ojo4OTgzMi44NDo6ODk4MzIuODQ6Ojg5ODMyLjg0Ojo4OTgzMi44NDo6ODk4MzIuODQzOjo4OTgzMi44NDg6Ojg5ODMyLjg1MTo6ODk4MzIuODU0Ojo4OTgzMi44NTg6Ojg5ODMyLjg2MTo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NCIvPgorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY4Ojo4OTgzMi44Nzc6Ojg5ODMyLjg4Nzo6ODk4MzIuODk5Ojo4OTgzMi45MDM6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTE2Ojo4OTgzMi45Nzo6ODk4MzMuMDk6Ojg5ODMzLjIwNDo6ODk4MzMuMzA5Ojo4OTgzMy4zOTc6Ojg5ODMzLjQ5Mjo6ODk4MzMuNTk6Ojg5ODMzLjY4Mzo6ODk4MzMuNzg4Ojo5Nzk0NDgyOjo5ODAxMjAxOjo5ODA4MjE3Ojo5ODE1MzcyOjo5ODIxOTMwOjo5ODI4MDIyOjo5ODMzODYxOjo5ODM5NDkzIi8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSI5ODQ0OTk2Ojo5ODUwNDQxOjo5ODU1NjgxOjo5ODYwNzk1Ojo5ODY2MzExOjo5ODcyODczOjo5ODgwMDI3Ojo5ODkxMTkzOjo5OTA0Mzk4Ojo5OTE3NDU0Ojo5OTI5OTc0Ojo5OTQxNzk2Ojo5OTUzNjk4Ojo5OTY1Njk4Ojo5OTc3Nzk0Ojo6Ojk5OTM4MzQ6OjEwMDAxNzAxOjoxMDAwOTYyMTo6MTAwMTY4MDM6OjEwMDIzMTI0OjoxMDAyOTEyMzo6MTAwMzQxNTE6OjEwMDM4NTEzOjoxMDA0Mjc4OTo6MTAwNDY5OTY6OjEwMDUxMTc4OjoxMDA1NTQ0Mzo6MTAwNjAzMzY6OjEwMDY1NjY1OjoxMDA3MTc4MDo6MTAwNzgyOTk6OjEwMDg0NDQ2Ojo6OjEwMDk3MTIzOjoxMDEwMzI5Mzo6MTAxMDk2NDE6OjEwMTE2MDIzOjoxMDEyMjU2Mjo6MTAxMjY3ODU6OjEwMTI5NDE0OjoxMDEzMjI4ODo6MTAxMzU2NDU6OjEwMTM4NDg5OjoxMDE0MDQxNjo6MTAxNDIyMzg6OjEwMTQzMzY4OjoxMDE0NDQ4Nzo6MTAxNDU0OTQ6OjEwMTQ2NTMyIi8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIxMDE0NzM0MTo6MTAxNDc3OTM6OjEwMTQ4NDg2OjoxMDE1MDAzOTo6MTAxNTIwNTE6OjEwMTU0NjQzOjoxMDE1NzQwNjo6MTAxNjAxNzA6OjEwMTYyOTU1OjoxMDE2NTA1OCIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIxMDg4Mjo6MTAyMTQ0NDQ6OjEwMjE4MDkzOjoxMDIyMTYyMzo6MTAyMjUyMjM6OjEwMjI4ODU4OjoxMDIzMzY0MTo6MTAyMzk5MDY6OjEwMjQ2NTk4OjoxMDI1MzQyMDo6MTAyNjAyOTU6OjEwMjY3MDEwOjoxMDI3MzMwNTo6MTAyNzkyNDU6OjEwMjg0NjgyOjoxMDI4OTU5NDo6MTAyOTQ0NjE6OjEwMjk3MTUwOjoxMDI5OTA2MDo6MTAzMDA4Nzk6OjEwMzAyNzgxOjoxMDMwNTA0MTo6MTAzMDc2MDA6OjEwMzEwMjU2OjoxMDMxMzAxNzo6MTAzMTU3MzI6OjEwMzE4MzU3OjoxMDMyMDk1MiIvPgorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iMTAzMjM0NTM6OjEwMzI1ODgxOjoxMDMyODMwMTo6MTAzMzA5MDY6OjEwMzMzOTkxOjoxMDMzNzM3ODo6MTAzNDA5MTM6OjEwMzQ0MjcwOjoxMDM0NzQ3NDo6MTAzNTA4MzE6OjEwMzUzODgwOjoxMDM1NjQ0Mzo6MTAzNTg4OTA6OjEwMzYxMjU3OjoxMDM2MzQyNzo6MTAzNjU1NDI6OjEwMzY3ODUwOjoxMDM3MDYwMjo6MTAzNzM3MDA6OjEwMzc3NTQ4OjoxMDM4MjMzNTo6MTAzODc5NTk6OjEwMzkzNjc5OjoxMDM5OTAyODo6MTA0MDQ0Njk6OjEwNDEwMzI4OjoxMDQxNjU1NDo6MTA0MjI5NjQ6OjEwNDI5NDY0OjoxMDQzNTUxMDo6MTA0NDA4ODc6OjEwNDQ2MDcwOjoxMDQ1MDU0NDo6MTA0NTQ4MzM6OjEwNDU4NzMyOjoxMDQ2MjQxOTo6MTA0NjU3MTQ6OjEwNDY4ODQyOjoxMDQ3MTg4Mjo6MTA0NzQ3NzI6OjEwNDc3OTAxOjoxMDQ4MTg5Nzo6MTA0ODY5OTc6OjEwNDkyOTczOjoxMDQ5OTIwNzo6MTA1MDUzMjQ6OjEwNTExNTU1OjoxMDUxNzYwMiIvPgorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iMTA1MjM1NDQ6OjEwNTI5MzYyOjoxMDUzNTc2MDo6MTA1NDE4OTQ6OjEwNTQ3NzYyOjoxMDU1MzQwNzo6MTA1NTg4OTA6OjEwNTY0MTE4OjoxMDU2ODQyNjo6MTA1NzIyOTQ6OjEwNTc1NzcxOjoxMDU3Nzc2Nzo6MTA1Nzk2NDc6OjEwNTgxNzIwOjoxMDU4MzcxNjo6MTA1ODU0NDQ6OjEwNTg3MzU0OjoxMDU5MDk2ODo6MTA1OTUxMjY6OjEwNTk5NzMxOjoxMDYwNDQ2MDo6MTA2MDkwMDA6OjEwNjEzNzUzOjoxMDYxODUxNjo6MTA2MjMyNDE6OjEwNjI4NDI4OjoxMDYzMzk5OTo6MTA2Mzk1Mzk6OjEwNjQ1MTI1OjoxMDY1MDQwNTo6MTA2NTU2NDM6OjEwNjYwNDcxOjoxMDY2NDczODo6MTA2Njg4NjI6OjEwNjcyNjc1OjoxMDY3NTk0Nzo6MTA2NzkxOTU6OjEwNjgyMzIyOjoxMDY4NTM0MDo6MTA2ODgyMDQ6OjEwNjkxNDYwOjoxMDY5NTQ0Mzo6MTA3MDAwMzc6OjEwNzA1NzAyOjoxMDcxMTg3Mzo6MTA3MTgzMDk6OjEwNzI0OTA3OjoxMDczMTM2NCIvPgorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMTA3NDQyOTg6OjEwNzUwNTczOjoxMDc1NjMzNjo6MTA3NjE1OTQ6OjEwNzY3MTg0OjoxMDc3MjkwMTo6MTA3Nzg2Nzk6OjEwNzg0MTkzOjoxMDc4OTE3Mzo6MTA3OTMzOTE6OjEwNzk2ODk1OjoxMDgwMDUzODo6MTA4MDQxNTE6OjEwODA3NzMyOjoxMDgxMTIxNDo6MTA4MTQ5NTI6OjEwODE5MjM2OjoxMDgyMzc3Mjo6MTA4MjkyMTI6OjEwODM0OTIwOjoxMDg0MTQxODo6MTA4NTA3MDE6OjEwODU4Mjg5OjoxMDg2NDMxNTo6MTA4NzA1ODY6OjEwODc2NTI2OjoxMDg4MjQ5Njo6MTA4ODgyOTE6OjEwODkzNzEzOjoxMDg5OTA5MDo6MTA5MDQ0NDQ6OjEwOTA5MTE5OjoxMDkxMzcwMDo6MTA5MTc2OTk6OjEwOTIxMzEwOjoxMDkyNDgyNjo6MTA5Mjg0Nzg6OjEwOTMyMTIxOjoxMDkzNTcxNTo6MTA5Mzk0MTI6OjEwOTQzMjY1OjoxMDk0NzE1NDo6MTA5NTEyOTk6OjEwOTU1NjQ3OjoxMDk1OTgwMjo6MTA5NjM3NTU6OjEwOTY3NTI2OjoxMDk3MTIwMSIvPgorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMTA5NzQ4MDE6OjEwOTc5MDg2OjoxMDk4MzkyMjo6MTA5ODkwNTM6OjEwOTk0MDgzOjoxMDk5OTA2OTo6MTEwMDM1Mjk6OjExMDA3Mzc5OjoxMTAxMDczOCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIzMzAwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzYiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2Ii8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzYiLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU4Nzo6Mzg2MTMwOTc6OjM4NjEzNTg1OjozODYxNDQ5MDo6Mzg2MTQ5MDY6OjM4NjE1MzgwOjozODYxNjA1MyIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSIzODYxNzEyMzo6Mzg2MTcyNTg6OjM4NjE3Mjk2OjozODYxNzQxNDo6Mzg2MTc5MjY6OjM4NjE4NzQxOjozODYxODk0Mjo6Mzg2MTkwMjE6OjM4NjE5MDY2Ojo6OjM4NjE5MTQ3OjozODYxOTIxOTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTk3ODY6OjM4NjIwMjU3OjozODYyMDcwMjo6Mzg2MjEwNTg6OjM4NjIxNTg3OjozODYyMjA3ODo6Mzg2MjI0OTQ6OjM4NjIzMjg0OjozODYyMzUzNjo6Mzg2MjM2NTU6OjM4NjIzNzc2OjozODYyMzgzMTo6Mzg2MjQwMzU6OjM4NjI0MjMyOjozODYyNDM2OTo6Mzg2MjQ3MzU6OjM4NjI0NzM1OjozODYyNDczNTo6Mzg2MjQ3MzU6OjM4NjI0NzM3OjozODYyNDc1NTo6Mzg2MjQ3OTE6OjM4NjI0ODYzOjozODYyNDg3OTo6Mzg2MjU0NjAiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iMzg2MjYxMTA6OjM4NjI2ODA3OjozODYyNzYzOTo6Mzg2Mjg3ODE6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMiIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIzODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTgiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTk6OjIyOTczNC40MTc6OjIyOTczNC40MzE6OjIyOTczNC40NDg6OjIyOTczNC40NjU6OjIyOTczNC40ODU6OjIyOTczNC41MDU6OjIyOTczNC41MTQ6OjIyOTczNC41MTc6OjIyOTczNC41MTc6OjIyOTczNC41MTc6OjIyOTczNC41MTc6OjIyOTczNC41MTc6OjIyOTczNC41MTg6OjIyOTczNC41MjE6OjIyOTczNC41MjM6OjIyOTczNC41Mjg6OjIyOTczNC41MzY6OjIyOTczNC41MzY6OjIyOTczNC41MzY6OjIyOTczNC41MzY6OjIyOTczNC41MzY6OjIyOTczNC41MzY6OjIyOTczNC41MzY6OjIyOTczNC41Mzc6OjIyOTczNC41NTQiLz4KKwkJCQk8L3Bhcj4KKwkJCTwvZGV2aWNlPgorCQk8L3NlbGVjdD4KKwk8L2RhdGE+Cis8L2VsZWN0cm94bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ0LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDQucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NjY0M2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ0LnJkZQpAQCAtMCwwICsxLDI3Nzg1IEBACiswIDggI2NvbW1lbnQgMCAxICBlZGl0ZWQgd2l0aCBYTUwgU3B5IHY0LjQgVSAoaHR0cDovL3d3dy54bWxzcHkuY29tKSBieSBTbGF2YSAoR0lWQykgCiswIDEgZWxlY3Ryb3htbCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCQorMSAxIGRhdGEgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKwkJCisyIDEgc2VsZWN0IDAgMAorMyAxNCAjdGV4dCAwIDEgCisJCQkKKzMgMSBkZXZpY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCiszIDE1IGRldmljZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorCQkKKzIgMTUgc2VsZWN0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisJCisxIDE1IGRhdGEgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBlbGVjdHJveG1sIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ0LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDY2NDNlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NC5yZHIKQEAgLTAsMCArMSwyNzc4NSBAQAorMCA4ICNjb21tZW50IDAgMSAgZWRpdGVkIHdpdGggWE1MIFNweSB2NC40IFUgKGh0dHA6Ly93d3cueG1sc3B5LmNvbSkgYnkgU2xhdmEgKEdJVkMpIAorMCAxIGVsZWN0cm94bWwgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKwkKKzEgMSBkYXRhIDAgMAorMiAxNCAjdGV4dCAwIDEgCisJCQorMiAxIHNlbGVjdCAwIDAKKzMgMTQgI3RleHQgMCAxIAorCQkJCiszIDEgZGV2aWNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDE1IHBhciAwIDAKKzQgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxIHBhciAwIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMTUgcGFyIDAgMAorNCAxNCAjdGV4dCAwIDEgCisJCQkJCis0IDEgcGFyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQkKKzQgMSBwYXIgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQkKKzUgMSB2YWwgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKwkJCQkJCis1IDEgdmFsIDEgMAorNSAxNCAjdGV4dCAwIDEgCisJCQkJCQorNSAxIHZhbCAxIDAKKzUgMTQgI3RleHQgMCAxIAorCQkJCQorNCAxNSBwYXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKwkJCQorMyAxNSBkZXZpY2UgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKwkJCisyIDE1IHNlbGVjdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCQorMSAxNSBkYXRhIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZWxlY3Ryb3htbCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDQuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU4OGYwNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDQuc2F4CkBAIC0wLDAgKzEsMzY5NzYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmNvbW1lbnQoIGVkaXRlZCB3aXRoIFhNTCBTcHkgdjQuNCBVIChodHRwOi8vd3d3LnhtbHNweS5jb20pIGJ5IFNsYXZhIChHSVZDKSApCitTQVguc3RhcnRFbGVtZW50KGVsZWN0cm94bWwsIG1vZGlmaWVkPScyMDAyMTIxNlQwNzI3MjYnKQorU0FYLmNoYXJhY3RlcnMoCisJLCAyKQorU0FYLnN0YXJ0RWxlbWVudChkYXRhLCBmcm9tPScyMDAyMTAzMVQyMicsIHRvPScyMDAyMTEzMFQyMicpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudChzZWxlY3QpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5zdGFydEVsZW1lbnQoZGV2aWNlLCBzZXJpYWxudW1iPSdFMDAwMDM1NjInKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nMTEzNDAwJywgaD0nM2RjMWE4ZGUnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDgnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjMzInLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhM2MnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4MzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcwNzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlODUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlhYTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YjYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2YzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M0ZDcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzMGInLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwZjYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjI3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTkzNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTU2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxODEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Zjg1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYTQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OWI1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTdjNCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiM2U2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzFmNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwMDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZTE1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWMyNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhMzYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwODQ1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMjc2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDA4NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOTknLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2E3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmFiNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc4YzYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI4NmQ2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyOTRlNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJiMTA1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYmYxNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmNkMjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJkYjM1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyZTk0NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmY3NTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMwNTY2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMTM3NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzIxOWUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyZjk2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczM2RhNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzRiYjYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM1OWRlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNjdkNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzc1ZTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4NDBlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczOTIxZScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2EwMTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhZTI3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYmMzNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2NhNDcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNkODU2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZTY2NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Y0ODEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQwMjg1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MTA5NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDFlYTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQyY2I1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0M2FjNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDQ4ZDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ1NmU2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjRmNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDgwZmYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ4ZjBlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0OWQxZCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGFiNDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRiOTU1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0Yzc2OScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGQ1NzcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRlMzg3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZjE5NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGZmYTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUwZGQwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MWJjNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTI5ZDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUzN2U3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NDYwMCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTU0MDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU2MjE1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NzAyNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTdlMzYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU4YzQ2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OWE3MCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWE4NjcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzViNjc2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YzQ4NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWQyOTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlMGE5Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZWViOCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWZjYzYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYwYWQ3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MThlNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2ZjcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYzNTA3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NDMxNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1ZjM3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NmQ0NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjdiNTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY4OTY3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2OTc4MicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmE1ODYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZiMzk1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YzFhNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmNmYjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZkZGM2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZWJkNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmY5ZTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcwN2Y2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MTYwNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzI0MTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzczMjI3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NDAzNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzRlNDcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc1YzU3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NmE2MycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzc4NzMnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc4NjgwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3OTQ4ZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2EyOWYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiMGFmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YmViZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2NjY2YnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdkYWRmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZThmYScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MGEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgwNTFhJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MTMyYScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODIxM2EnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyZjRhJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4M2Q1YScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODRiNmEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg1OTdhJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4Njc4YicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODc1OWInLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg4M2FjJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4OTFiYicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODlmY2EnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhhZGRhJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YmJlYicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5ZmMnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhkODBiJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZTYxYScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGY0MmEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkwMjNhJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MTA0YScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTFlNWEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkyYzZhJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5M2E4NCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTQ4ODUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk1Njk0Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NjRhNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTcyYjQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4MGM1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5OGVkNCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTljZTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlhYWY1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YjkwNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWM3MTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlkNTI2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZTMzNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWYxNDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmZjU2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMGQ2NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTFiNzcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EyOTg2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMzc5NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTQ1YTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E1M2I2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNjFjNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTZmZDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E3ZTAwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGMwMCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FhODE1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYjYyNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWM0MzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FkMjQ1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZTA1NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWVlNjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FmYzc1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMGE4NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjI2YTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IzNGI2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNDJjNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjUwZDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1ZWU3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmNmNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjdiMDcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I4OTE3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiOTcyOCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmE1MzcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JiMzQ3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYzE1NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmNmNjcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JkZDgxJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZWI4NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmY5OTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MwN2E2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMTViNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzIzYzYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzMWQ1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjM2ZlNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkZjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M1YzA2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNmExNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzc4MjYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M4NjM2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjOTQ0NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2EyNTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiMDY2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYmU3NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2NjODcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NkYTk2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZThhOCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2Y2YjcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QwNGM4Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMTJkNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDIwZTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyZjAyJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkM2QwNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q1OTI2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDc1NDYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q4MzU1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOTE2NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RhZDg3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYmI5NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGM5YTgnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RkN2I3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZTVjNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGYzZDcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwMWQ3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGZlNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTFkZjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UyYzA0Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlM2ExNCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTQ4MjQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U1NjM0Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNjQ0NCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTcyNTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4MDZmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOGU3ZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTljOGUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VhYTlmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYjhhZScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWM2YmYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VkNGNlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZTJkZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwZWYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmZjAxJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMGQxMCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjFiMjAnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YyOTMwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMzc0MCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjQ1NTEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y1MzYxJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNjE3MicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjZmODAnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y3ZDkxJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOGJhMScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjk5YjEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZhN2MwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmMzZTAnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMWZiJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZTAwYicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMWMnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZmYzJjJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDBhM2InLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMTg0YycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAyNjViJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDM0NmMnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNDI3YicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA1MDhkJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDVlOWQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNmNhZCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA3YWJkJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDg4Y2QnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwOTZkZScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBhNGVkJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyZmUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYzEwZCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBjZjFlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGRkMmUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZWI2NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBmOTRlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTA3NWUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMTU2ZCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEyMzg4Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTMxODcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExM2ZiMCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE0ZGE2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTViYjYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNjljNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE3N2Q2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTg1ZTgnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTNmNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFhMjA4Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWIwMTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFjYzM3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWRhNDcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZTg1NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFmNjY3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjA1NzgnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMTM4NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyMTk2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjJmYTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyM2RiNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI0YmM1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjU5ZDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNjdlNCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NjAwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjgzMDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTExNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5ZjI1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmFkMzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYmI0NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJjOTU0Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmQ3NjYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZTU3NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJmMzg2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzAxOTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMGZhNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMxZGI3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzJiYzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMzlkNCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM0N2U1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1ZjQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNjQwNCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM3MjE0Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzgwMjQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2FhNTQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2Q0OGUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZTI5ZScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmMGFlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2ZlYmYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MGNjZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQxYWRmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDI4ZWYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzZmZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ0NTBmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDUzMWYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NjEzMCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2ZjQwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDdkNDQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0OGI1NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ5OTY1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGE3NzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YjU4NCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRjMzk3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGQxYTQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZGZiNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRlZGM1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGZiZDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MDllNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxN2ZmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTI2MDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU0MjI1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTUwMzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU2YzU1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTdhNjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU5Njg2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWE0OTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YjJhNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjMGI2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWNlYzYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZGNkNScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVlYWU2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWY4ZjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MDcwNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYxNTE3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjIzMjYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MzEzNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzZjQ2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjRkNTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NWI2NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY2OTgyJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjc3ODYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ODU5NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY5M2E2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmExYjUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YWZjNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZiZGQ1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmNiZTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDlmNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZlODA3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmY2MTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MDQyOScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcxMjM2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzIwNDcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MmU1NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTczYzY3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzRhNzcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NTg4NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc2Njk0Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzc0YTMnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ODJiMycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5MGM1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzllZDQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YWNlNCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYWZkJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2M5MGYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcxZScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdlNTJmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2YzM2YnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MDE0ZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgwZjVmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODFkNmUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MmI3ZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgzOThmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODQ3YTEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NTVhZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg2M2MwJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODcxY2YnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4N2ZlMCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg4ZGVmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODljMDAnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YjgwZCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThjNjFjJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGQ0MmMnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZTIzYicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmMDRiJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGZlNWUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MGM3NicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkxYTg2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTI4OTYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MzZhNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk0NGI3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTUyYzYnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NjBkNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk2ZWU2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTdjZjgnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OGIwZicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk5OTFmJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWI1NDEnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YzM0ZCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkMTVlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWRmODAnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZWQ5MCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZWJlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWZiOGUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMDlhMCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWExN2FlJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTI1YmUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMzNjZCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0MWRkJywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTRmZWQnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWUwOCcsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE2YzA1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTdhMTUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhODgyNicsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjM3Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWE0NDUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYjI1NScsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjMDY1Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWNlNzUnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZGM4NycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFlYTk2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWY4YTcnLCB2PSc1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMDZiNycsIHY9JzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIxNGM2Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzc0NjAnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjODI3MCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzllOGYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYWNhMicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNiYWIxJywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2M4YzEnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZDZkMCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNlNGRlJywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2YyZjAnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDEwOScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwZjA2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDFkMTUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMmIyNScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQzOTM1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDQ3NDUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNTU1NScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ2MzY2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDcxNzUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkN2Y4NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ4ZDk1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDliYTYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYTliNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRiN2M3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGM1ZDUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZDNlNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMWY1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGYwMDYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUwYzI2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTFhMzYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTQ0NjcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTZlOTYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTk4YzYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWViNGU2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWMyZjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZDEwNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkZjE2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWVkMjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYwOTQ2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NTYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMjU2NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYzMzc2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjQxODcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNGY5NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY1ZGE3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjZiYjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNzljNycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY4N2Q2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjk1ZTcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTQwMScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZiMjA0Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmMwMTYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmY2UyNScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZkYzM1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmVhNDUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZjg1NScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAwNjY1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDE0NzUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMjI4NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzMDk1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDNlYTUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNGNiNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA1YWM2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDY4ZDYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNzZlNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NGY2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDkzMDYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYTExNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBhZjI2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGJkMzcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwY2I0NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBkOTU3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGU3NjcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZjU4MScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEwMzg2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTExOTQnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMWZhNScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEyZGI1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTNiYzUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNDlkNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE1N2U1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1ZjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNzQwNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE4MjE3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTkwMjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOWUzOScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFhYzQ2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNTcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYzg2NycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFkNjc3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWU0ODcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZjI5NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwMGE2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjBlYjcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMWNjNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIyYWQ3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjM4ZTcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDcwMScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI1NTA1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjYzMTUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNzEyNScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjhkNDUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOWI1NCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmI3NzYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYzU4NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmUxYTYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZWZiNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJmZGM3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzBiZDcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMTllNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyN2Y2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzM2MWInLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNDQxNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM1MjI2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzYwMzcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNmU0NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM3YzU3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzhhNjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNhNjg1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2I0OTUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkMGI1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2RlYzQnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNmYWU0Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDA4ZjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MTcwNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQyNTE4Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDMzMjUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NDEzNycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0ZjQ2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Nzk3NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ4Nzg2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDk1N2UnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YTM4ZicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiMTljJywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGJmYWMnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Y2RiYycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRkYmNkJywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5ZTUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUwNjE2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTE0MjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MjIzNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTNlNTYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NGM2NycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU1YTc2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTY4ODcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NzY5NycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU4NGE4Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTkyYjYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YTBjNycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVhZWQ3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWJjZTcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2FmOCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVkOTA3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWU3MTgnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZjUyNycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjExNDknLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MWY1OScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYyZDY4Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjNiODMnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NDk4NicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY1Nzk1Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjY1YTYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NzNiNScsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4MWM2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjhmZDUnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2OWRlNicsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYmY2Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmJhMDYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YzgxNycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZkNjJiJywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmU0MzYnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZjI0NycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwMDU3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNjcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MWM3NycsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcyYTg3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzM4OTcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NDZhOCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc1NGI5Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzYyYzcnLCB2PSc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NzBkOCcsIHY9JzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc3ZWU3Jywgdj0nNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nMTY5MzY2MDAnLCBoPSczZGMxYThkZScpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PScxOTYuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwOCcsIHY9JzE5OS41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMzMicsIHY9JzIwMC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzYycsIHY9JzIwMS44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzgzNScsIHY9JzE5OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0NScsIHY9JzE5Ny45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ1NScsIHY9JzE5My4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2NScsIHY9JzE5Ny42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3NScsIHY9JzE5NS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4NScsIHY9JzE5Mi43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5NicsIHY9JzE5NS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhNScsIHY9JzE5NS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYThiNicsIHY9JzE5NS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjZjNScsIHY9JzE5Ny4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkNycsIHY9JzIyMi42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDMwYicsIHY9JzIyMC45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmNicsIHY9JzIyMi44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwNicsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMTcnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyNycsIHY9JzIyMS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5MzcnLCB2PScyMjIuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzQ2Jywgdj0nMjIyLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1NicsIHY9JzIyMC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNjYnLCB2PScyMjAuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nMjIwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmODUnLCB2PScyMjEuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDk1Jywgdj0nMjIwLjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2JhNCcsIHY9JzIyMS4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YjUnLCB2PScyMjAuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2M0Jywgdj0nMjIwLjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVkNScsIHY9JzIxOS4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIzZTYnLCB2PScyMTkuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjMWY2Jywgdj0nMjIwLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAwNScsIHY9JzIyMC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMTUnLCB2PScyMjAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzI1Jywgdj0nMjIwLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmEzNicsIHY9JzIyMC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NDUnLCB2PScyMjAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjU2Jywgdj0nMjIwLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ2NScsIHY9JzIyMC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyNzYnLCB2PScyMjAuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDg2Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOTknLCB2PScyMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWNhNycsIHY9JzIyMS44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYjcnLCB2PScyMjAuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3OGM2Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjg2ZDYnLCB2PScyMjAuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI5NGU2Jywgdj0nMjE4LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMScsIHY9JzIyMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJiMTA1Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyY2QyNScsIHY9JzIxOC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmRiMzUnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyZTk0NicsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzA1NjYnLCB2PScyMTkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMxMzc1Jywgdj0nMjIwLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMjE5ZScsIHY9JzIxOS43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzJmOTYnLCB2PScyMjAuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMzZGE2Jywgdj0nMjIwLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNGJiNicsIHY9JzIxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM1OWRlJywgdj0nMjIwLjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNjdkNicsIHY9JzIxOS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzc1ZTYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODQwZScsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM5MjFlJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2EwMTYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYWUyNycsIHY9JzIyMC45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2JjMzYnLCB2PScyMjAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNjYTQ3Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Q4NTYnLCB2PScyMjEuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNlNjY3Jywgdj0nMjIwLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZjQ4MScsIHY9JzIxNy42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDAyODUnLCB2PScyMTguNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxMDk1Jywgdj0nMjE4LjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MWVhNScsIHY9JzIxOC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDJjYjUnLCB2PScyMTkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQzYWM1Jywgdj0nMjE4LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NDhkNScsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ1NmU2Jywgdj0nMjIwLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjRmNScsIHY9JzIyMi43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDgwZmYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0OGYwZScsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ5ZDFkJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGFiNDYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0Yjk1NScsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRjNzY5Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGQ1NzcnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZTM4NycsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmMTk2Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGZmYTYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MGRkMCcsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUxYmM2Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTI5ZDYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MzdlNycsIHY9JzIyMC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PScyMTguOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDA2Jywgdj0nMjE5LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NjIxNScsIHY9JzIxOS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PScyMTkuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3ZTM2Jywgdj0nMjE5LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OGM0NicsIHY9JzIyMC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PScyMjAuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVhODY3Jywgdj0nMjIxLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YjY3NicsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVjNDg3Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWQyOTYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZTBhOScsIHY9JzIyMi41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWVlYjgnLCB2PScyMjQuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVmY2M2Jywgdj0nMjIzLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MGFkNycsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYxOGU3Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2ZjcnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MzUwNycsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY0MzE3Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PScyMjIuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1ZjM3Jywgdj0nMjIyLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NmQ0NicsIHY9JzIyMC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjdiNTcnLCB2PScyMjAuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY4OTY3Jywgdj0nMjIwLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2OTc4MicsIHY9JzIyMC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmE1ODYnLCB2PScyMTkuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZiMzk1Jywgdj0nMjE5LjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YzFhNicsIHY9JzIxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZjZmI1Jywgdj0nMjE4LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZGRjNicsIHY9JzIyMC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmViZDYnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZjllNicsIHY9JzIyMS44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3ZjYnLCB2PScyMjIuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcxNjA3Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzI0MTcnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MzIyNycsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0MDM3Jywgdj0nMjIzLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NGU0NycsIHY9JzIyMy40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzVjNTcnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NmE2MycsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc3ODczJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzg2ODAnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3OTQ4ZicsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdhMjlmJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2IwYWYnLCB2PScyMjIuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiZWJmJywgdj0nMjIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2NjY2YnLCB2PScyMTkuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdkYWRmJywgdj0nMjE5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZThmYScsIHY9JzIyMC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MGEnLCB2PScyMjAuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgwNTFhJywgdj0nMjE3LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MTMyYScsIHY9JzIxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyMTNhJywgdj0nMjE4LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MmY0YScsIHY9JzIxOS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODNkNWEnLCB2PScyMTkuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg0YjZhJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODU5N2EnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4Njc4YicsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg3NTliJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODgzYWMnLCB2PScyMjMuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5MWJiJywgdj0nMjIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODlmY2EnLCB2PScyMjQuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhhZGRhJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGJiZWInLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YzlmYycsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhkODBiJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGU2MWEnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZjQyYScsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkwMjNhJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTEwNGEnLCB2PScyMjAuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxZTVhJywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTJjNmEnLCB2PScyMTkuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkzYTg0Jywgdj0nMjE5LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NDg4NScsIHY9JzIxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk1Njk0Jywgdj0nMjE4LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NjRhNScsIHY9JzIxOS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTcyYjQnLCB2PScyMTkuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4MGM1Jywgdj0nMjIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOThlZDQnLCB2PScyMjAuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk5Y2U1Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhZjUnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YjkwNicsIHY9JzIyNS4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWM3MTYnLCB2PScyMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZDUyNicsIHY9JzIyMi42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWUzMzYnLCB2PScyMjMuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmMTQ1Jywgdj0nMjI0LjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZmY1NicsIHY9JzIyMy4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTBkNjUnLCB2PScxODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMWI3NycsIHY9JzE5NS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTI5ODYnLCB2PScxOTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMzc5NScsIHY9JzEyMi4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTQ1YTcnLCB2PSczNTQuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E1M2I2Jywgdj0nMzMzLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNjFjNycsIHY9JzMyMy4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTZmZDYnLCB2PScyNzguMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E3ZTAwJywgdj0nMjg2LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGMwMCcsIHY9JzI5Mi4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMDUnLCB2PScyMS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWE4MTUnLCB2PScyNzMuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FiNjI1Jywgdj0nMjcyLjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYzQzNScsIHY9JzI4NS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWQyNDUnLCB2PScyOC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWUwNTUnLCB2PSc2OC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWVlNjUnLCB2PScxNDcuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FmYzc1Jywgdj0nOTUuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IwYTg1Jywgdj0nODkuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IyNmE2Jywgdj0nODguMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IzNGI2Jywgdj0nOTIuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I0MmM2Jywgdj0nMTQ5LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNTBkNicsIHY9JzE0OC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjVlZTcnLCB2PScxMjcuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2Y2Y2Jywgdj0nMTk4LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiN2IwNycsIHY9JzE4Ny4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjg5MTcnLCB2PScxODIuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I5NzI4Jywgdj0nMTk1LjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYTUzNycsIHY9JzIwMy44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmIzNDcnLCB2PScxMjQuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjMTU3Jywgdj0nMTU5LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiY2Y2NycsIHY9JzIzMC42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmRkODEnLCB2PSc3OS44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmViODYnLCB2PSc1MS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmY5OTUnLCB2PScyMi41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzA3YTYnLCB2PSczMjMuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MxNWI1Jywgdj0nMzQxLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMjNjNicsIHY9JzQ2LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMzFkNScsIHY9JzcxLjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjM2ZlNicsIHY9JzcxLjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGRmNScsIHY9JzYzLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNWMwNicsIHY9Jzc2LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNmExNicsIHY9JzU4LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNzgyNicsIHY9JzkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzg2MzYnLCB2PSc3OS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzk0NDYnLCB2PSc2My4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2EyNTYnLCB2PSc1MS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2IwNjYnLCB2PSc4MS43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2JlNzYnLCB2PScyMDUuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NjYzg3Jywgdj0nOTYuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NkYTk2Jywgdj0nOTUuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NlOGE4Jywgdj0nOTYuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NmNmI3Jywgdj0nOTIuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QwNGM4Jywgdj0nOTEuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QxMmQ3Jywgdj0nODYuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyMGU3Jywgdj0nMjcwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDJmMDInLCB2PScyNzAuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzZDA1Jywgdj0nMjk2LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIxNScsIHY9JzMwNi44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDU5MjYnLCB2PSczMzEuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q2NzM1Jywgdj0nMTMuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q3NTQ2Jywgdj0nNDYuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q4MzU1Jywgdj0nMjYyLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOTE2NicsIHY9JzE2Ni4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PScxNDMuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RhZDg3Jywgdj0nMTI3LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYmI5NycsIHY9JzEzMi43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGM5YTgnLCB2PScxMjguMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RkN2I3Jywgdj0nMTU1LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZTVjNicsIHY9JzE3MC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGYzZDcnLCB2PScxNzYuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwMWQ3Jywgdj0nMTc2LjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGZlNScsIHY9JzE2OC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTFkZjUnLCB2PScxNzIuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UyYzA0Jywgdj0nMTg1LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlM2ExNCcsIHY9JzE5Ni4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTQ4MjQnLCB2PScxNzguNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U1NjM0Jywgdj0nMTkzLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNjQ0NCcsIHY9JzE3Ni4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTcyNTUnLCB2PScxOTYuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4MDZmJywgdj0nMjAyLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOGU3ZicsIHY9Jzk5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOWM4ZScsIHY9JzEzMC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWFhOWYnLCB2PScxMzIuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ViOGFlJywgdj0nMTIxLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYzZiZicsIHY9JzEwMC45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWQ0Y2UnLCB2PScxOTIuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VlMmRmJywgdj0nMTUzLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZjBlZicsIHY9JzE3MC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWZmMDEnLCB2PScxNTUuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YwZDEwJywgdj0nMTY3LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMWIyMCcsIHY9JzE2NS41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjI5MzAnLCB2PScxODQuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YzNzQwJywgdj0nMTU5LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNDU1MScsIHY9JzE2My40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjUzNjEnLCB2PScxNjMuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2MTcyJywgdj0nMTYwLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNmY4MCcsIHY9JzE2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y3ZDkxJywgdj0nMTU2LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOGJhMScsIHY9JzE2My44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjk5YjEnLCB2PScxNjIuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZhN2MwJywgdj0nMTU0LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9JzE1Ny4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmMzZTAnLCB2PScxOTcuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMWZiJywgdj0nMjAzLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZTAwYicsIHY9JzIxMi41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMWMnLCB2PScxODUuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZmYzJjJywgdj0nMTg3LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDBhM2InLCB2PScxNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDE4NGMnLCB2PScxNDkuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMjY1YicsIHY9JzEzNi44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAzNDZjJywgdj0nMTQ1LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDQyN2InLCB2PScxNjQuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNTA4ZCcsIHY9JzE1OC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA1ZTlkJywgdj0nMTYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA2Y2FkJywgdj0nMTYxLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDdhYmQnLCB2PScxNjguOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwODhjZCcsIHY9JzE2OC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA5NmRlJywgdj0nMTY1LjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGE0ZWQnLCB2PScxNjguMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjJmZScsIHY9JzE2My45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBjMTBkJywgdj0nMTQ3LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGNmMWUnLCB2PScxNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGRkMmUnLCB2PScxNjYuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZWI2NicsIHY9JzE3Ny40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBmOTRlJywgdj0nMTc5LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTA3NWUnLCB2PScxNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTE1NmQnLCB2PScxNzQuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMjM4OCcsIHY9JzIwMy42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzMTg3Jywgdj0nMTU4LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTNmYjAnLCB2PScxNzIuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNGRhNicsIHY9JzE3Mi43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE1YmI2Jywgdj0nMTY4LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTY5YzYnLCB2PScxMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTc3ZDYnLCB2PScxMzUuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExODVlOCcsIHY9JzE1Ny44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5M2Y3Jywgdj0nMTYwLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWEyMDgnLCB2PScxNzUuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYjAxNycsIHY9JzE4NC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFiZTJmJywgdj0nMTg4LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWNjMzcnLCB2PScxNzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWRhNDcnLCB2PScxNzMuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZTg1NycsIHY9JzE2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZjY2NycsIHY9JzE3Mi42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIwNTc4Jywgdj0nMTY0LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjEzODYnLCB2PScxNjYuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMjE5NicsIHY9JzE1MS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyZmE2Jywgdj0nMTU4LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjNkYjUnLCB2PScxNzAuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNGJjNScsIHY9JzE4NS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI1OWQ1Jywgdj0nMTYwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjY3ZTQnLCB2PScxODguNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzYwMCcsIHY9JzIwNy43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI4MzA1Jywgdj0nMjE0LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMTUnLCB2PScyMTMuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOWYyNScsIHY9JzIxOC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJhZDM1Jywgdj0nMjEwLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmJiNDUnLCB2PScxNzguOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYzk1NCcsIHY9JzE2Mi42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJkNzY2Jywgdj0nMTU2LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmU1NzUnLCB2PScxNTMuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZjM4NicsIHY9JzE0My45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMwMTk2Jywgdj0nMTYwLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzBmYTYnLCB2PScxNTMuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMWRiNycsIHY9JzE2My42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMyYmM1Jywgdj0nMTY4LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzM5ZDQnLCB2PScxNjkuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNDdlNScsIHY9JzEzOS4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NWY0Jywgdj0nMTQyLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzY0MDQnLCB2PScxMjIuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNzIxNCcsIHY9JzEyNS41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM4MDI0Jywgdj0nMTEwLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzhlMzMnLCB2PScxMTAuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOWM0NCcsIHY9JzE5MC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNhYTU0Jywgdj0nOTkuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzIwOS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nNzYuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZDQ4ZScsIHY9JzYxLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2UyOWUnLCB2PSc0NC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmMGFlJywgdj0nNDQuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZmViZicsIHY9JzYwLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDBjY2YnLCB2PSc2NC42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQxYWRmJywgdj0nNjcuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MjhlZicsIHY9JzM0MS4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNmZmJywgdj0nMTE1LjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDQ1MGYnLCB2PScxMTcuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NTMxZicsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NjEzMCcsIHY9JzI1Mi40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2ZjQwJywgdj0nMjYxLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDdkNDQnLCB2PSczMTMuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0OGI1NycsIHY9JzMxMS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ5OTY1Jywgdj0nMjkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRhNzc1Jywgdj0nNTcuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YjU4NCcsIHY9JzE1MS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRjMzk3Jywgdj0nOTIuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZDFhNCcsIHY9JzkzLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGRmYjYnLCB2PScxMDAuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZWRjNScsIHY9Jzk3LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGZiZDUnLCB2PScxODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTA5ZTUnLCB2PScyODkuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTdmZicsIHY9JzI3NC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUyNjA1Jywgdj0nMzkuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzYuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NDIyNScsIHY9JzM1NS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU1MDM1Jywgdj0nMTkuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzQ0LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTZjNTUnLCB2PSc2MS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU3YTY1Jywgdj0nNTUuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzYwLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTk2ODYnLCB2PSc3MS43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVhNDk1Jywgdj0nNjYuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YjJhNicsIHY9JzYxLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWMwYjYnLCB2PSczOC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjZWM2Jywgdj0nMTcuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZGNkNScsIHY9JzM1LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWVhZTYnLCB2PSc0NC45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmOGY1Jywgdj0nNzEuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MDcwNicsIHY9JzE2Ni4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYxNTE3Jywgdj0nMTI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYyMzI2Jywgdj0nMTc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzMTM3Jywgdj0nMTk1LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjNmNDYnLCB2PSc5OS4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY0ZDU3Jywgdj0nOTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjViNjcnLCB2PScyNzMuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Njk4MicsIHY9JzM0NC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY3Nzg2Jywgdj0nMzA3LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjg1OTYnLCB2PScyNzEuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2OTNhNicsIHY9JzI3OC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZhMWI1Jywgdj0nMjkxLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmFmYzYnLCB2PSc1Mi45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZiZGQ1Jywgdj0nNzYuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Y2JlNicsIHY9Jzg3LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5ZjYnLCB2PScxNzAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZTgwNycsIHY9JzE3NC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZmNjE2Jywgdj0nMTc1LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzA0MjknLCB2PScxODYuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MTIzNicsIHY9JzE4My4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyMDQ3Jywgdj0nMTgxLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzJlNTcnLCB2PScxNzMuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3M2M2NycsIHY9JzE3MC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc0YTc3Jywgdj0nMTY1LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzU4ODcnLCB2PScxNjMuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NjY5NCcsIHY9JzE2MS43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc3NGEzJywgdj0nMTY1LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzgyYjMnLCB2PScxNzAuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OTBjNScsIHY9JzE3My41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5ZWQ0Jywgdj0nMTg3LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2FjZTQnLCB2PScyMDEuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmFmZCcsIHY9JzIwNS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdjOTBmJywgdj0nMjA0LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MWUnLCB2PScyMDQuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZTUyZicsIHY9JzIwOC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdmMzNmJywgdj0nMjA0LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODAxNGYnLCB2PScxOTMuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MGY1ZicsIHY9JzE4Ni40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgxZDZlJywgdj0nMTkyLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODJiN2YnLCB2PScxOTQuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4Mzk4ZicsIHY9JzE4NC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nMTg0LjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODU1YWYnLCB2PScxODUuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NjNjMCcsIHY9JzE5NC45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3MWNmJywgdj0nMTkyLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODdmZTAnLCB2PScxOTIuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OGRlZicsIHY9JzE5MC42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YzAwJywgdj0nMTg1LjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGI4MGQnLCB2PScxNzAuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YzYxYycsIHY9JzE4Ny40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThkNDJjJywgdj0nMTkxLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGUyM2InLCB2PScxOTEuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZjA0YicsIHY9JzE5Ny4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmZTVlJywgdj0nMTk1LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTBjNzYnLCB2PScxODkuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MWE4NicsIHY9JzIwMS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkyODk2Jywgdj0nMjAyLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTM2YTYnLCB2PScyMDQuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NDRiNycsIHY9JzE5Ni4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk1MmM2Jywgdj0nMTgyLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTYwZDcnLCB2PScxNjIuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NmVlNicsIHY9JzE4Ny4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3Y2Y4Jywgdj0nMTg3LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOThiMGYnLCB2PScxNzkuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OTkxZicsIHY9JzE4MS43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTliNTQxJywgdj0nMTg4LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWMzNGQnLCB2PScxODYuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZDE1ZScsIHY9JzE4My41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkZjgwJywgdj0nMTgyLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVkOTAnLCB2PScxNzYuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZWViZScsIHY9JzE3NS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlmYjhlJywgdj0nMTc4LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PScyMjMuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMTdhZScsIHY9JzIyOC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEyNWJlJywgdj0nMjI5LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTMzY2QnLCB2PScyMTYuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNDFkZCcsIHY9JzIyNi40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0ZmVkJywgdj0nMjQ5LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVlMDgnLCB2PScyNDUuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNmMwNScsIHY9JzI1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE3YTE1Jywgdj0nMjUxLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTg4MjYnLCB2PScyNTIuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhOTYzNycsIHY9JzI1OS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFhNDQ1Jywgdj0nMjU0LjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWIyNTUnLCB2PScyMTguNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYzA2NScsIHY9JzIyOC4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjZTc1Jywgdj0nMjI3LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWRjODcnLCB2PScyMTQuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZWE5NicsIHY9JzIxOC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFmOGE3Jywgdj0nMjE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIwNmI3Jywgdj0nMjMxLjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjE0YzYnLCB2PScyMzAuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM4MjcwJywgdj0nMzQwLjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzkwN2UnLCB2PScxOC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nMzU3LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2FjYTInLCB2PSczNDQuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYmFiMScsIHY9JzMzOC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNjOGMxJywgdj0nMjguNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZDZkMCcsIHY9JzIxLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2U0ZGUnLCB2PScxMC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNmMmYwJywgdj0nMzQzLjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAxMDknLCB2PSczNDIuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMGYwNicsIHY9JzM1OC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQxZDE1Jywgdj0nMzUzLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDJiMjUnLCB2PSczNTMuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMzkzNScsIHY9JzEuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNDc0NScsIHY9JzYuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNTU1NScsIHY9JzEwLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDYzNjYnLCB2PSczNTAuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNzE3NScsIHY9JzM1MC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ3Zjg2Jywgdj0nMzU3LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDhkOTUnLCB2PScxODEuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOWJhNicsIHY9JzE4NC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRhOWI2Jywgdj0nMTkyLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGI3YzcnLCB2PScxOTMuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9JzE5NC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRkM2U2Jywgdj0nMTkwLjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGUxZjUnLCB2PScxOTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGYwMDYnLCB2PScxOTUuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9JzE5NS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUwYzI2Jywgdj0nMTk4LjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTFhMzYnLCB2PScxOTguNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9JzE5OS41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nMjAwLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTQ0NjcnLCB2PScyMDIuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9JzIwMC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nMjAzLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTZlOTYnLCB2PScyMDQuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9JzE4OC40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nMTkzLjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTk4YzYnLCB2PScxODQuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9JzE5MC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWViNGU2Jywgdj0nMTg4LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWMyZjYnLCB2PScxOTIuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZDEwNicsIHY9JzE4NS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkZjE2Jywgdj0nMTg2LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWVkMjYnLCB2PScxODIuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9JzE4Ny42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYwOTQ2Jywgdj0nMTg2LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NTYnLCB2PScxNjguMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMjU2NicsIHY9JzE2NC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYzMzc2Jywgdj0nMTU0LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjQxODcnLCB2PScxMzQuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNGY5NicsIHY9JzE1NC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY1ZGE3Jywgdj0nMTgyLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjZiYjYnLCB2PScxODguMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNzljNycsIHY9JzE3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmODdkNicsIHY9JzIwNi40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY5NWU3Jywgdj0nMjE2LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmE0MDEnLCB2PScyMTEuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYjIwNCcsIHY9JzIxMC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjMDE2Jywgdj0nMjExLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmNlMjUnLCB2PScxOTIuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZGMzNScsIHY9JzE4NS4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZlYTQ1Jywgdj0nMTc2LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmY4NTUnLCB2PScxNzEuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMDY2NScsIHY9JzEyOS41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAxNDc1Jywgdj0nMTczLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDIyODYnLCB2PScxNTcuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMzA5NScsIHY9JzE2MS4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzZWE1Jywgdj0nMTYzLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDRjYjYnLCB2PScxNzYuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNWFjNicsIHY9JzE2Ni44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA2OGQ2Jywgdj0nMTYxLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDc2ZTYnLCB2PScxNTkuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwODRmNicsIHY9JzE3Ny42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA5MzA2Jywgdj0nMTgzLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGExMTYnLCB2PScxODUuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYWYyNicsIHY9JzE4Mi42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBiZDM3Jywgdj0nMTg5LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGNiNDYnLCB2PScxNzMuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZDk1NycsIHY9JzE3OS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBlNzY3Jywgdj0nMTkzLjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGY1ODEnLCB2PScyMDIuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMDM4NicsIHY9JzE5Ny44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExMTk0Jywgdj0nMTg2LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTFmYTUnLCB2PScxODguMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMmRiNScsIHY9JzE3OC43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEzYmM1Jywgdj0nMTYwLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTQ5ZDYnLCB2PScxNjguMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNTdlNScsIHY9JzE4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjVmNicsIHY9JzE5MS4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE3NDA2Jywgdj0nMTc3LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTgyMTcnLCB2PScxODIuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOTAyNicsIHY9JzE4NS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE5ZTM5Jywgdj0nMTc2LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWFjNDYnLCB2PScxNzAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYmE1NycsIHY9JzE2OS4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFjODY3Jywgdj0nMTU5LjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWQ2NzcnLCB2PScxOTAuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZTQ4NycsIHY9JzE3My45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFmMjk2Jywgdj0nMTc1LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjAwYTYnLCB2PScxODcuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMGViNycsIHY9JzE4OC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIxY2M2Jywgdj0nMTYwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIyYWQ3Jywgdj0nMTc1LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjM4ZTcnLCB2PScxOTIuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDcwMScsIHY9JzIwMC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI1NTA1Jywgdj0nMTE2LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjYzMTUnLCB2PScxNjYuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNzEyNScsIHY9JzE2Mi44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nMTMwLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjhkNDUnLCB2PScxMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjliNTQnLCB2PScxOTMuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYTk2NScsIHY9JzE4My45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJiNzc2Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJjNTg2Jywgdj0nMTU3LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmQzOTcnLCB2PScxNDIuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZTFhNicsIHY9JzE0NS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJlZmI2Jywgdj0nMTgyLjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmZkYzcnLCB2PScxODIuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9JzE3My4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMxOWU2Jywgdj0nMTg4LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3ZjYnLCB2PScxNzkuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzE2OS44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM0NDE2Jywgdj0nMTY0LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzUyMjYnLCB2PScxNzAuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNjAzNycsIHY9JzE3OC44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM2ZTQ2Jywgdj0nMTU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM3YzU3Jywgdj0nMTYxLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzhhNjYnLCB2PScxNzUuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzE2OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNhNjg1Jywgdj0nMTg1LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2I0OTUnLCB2PScxOTEuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzE3Ni44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkMGI1Jywgdj0nMTY3LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2RlYzQnLCB2PScxNTQuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzE2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZmFlNCcsIHY9JzE4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDhmNicsIHY9JzE2Ni45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQxNzA2Jywgdj0nMTQ2LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDI1MTgnLCB2PScxNTUuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MzMyNScsIHY9JzE1Ny42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0MTM3Jywgdj0nMTg5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDRmNDYnLCB2PScxODcuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI2NicsIHY9JzE4Ni45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ3OTc2Jywgdj0nMTc5LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDg3ODYnLCB2PScxMzkuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0OTU3ZScsIHY9JzE2MS44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRhMzhmJywgdj0nMTcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiMTljJywgdj0nMTg5LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGJmYWMnLCB2PScxODcuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Y2RiYycsIHY9JzE4OC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRkYmNkJywgdj0nMTg2LjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5ZTUnLCB2PScxOTguMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9JzE5My4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUwNjE2Jywgdj0nMTk1LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTE0MjYnLCB2PScxOTguMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MjIzNicsIHY9JzE4MC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nMTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzZTU2Jywgdj0nMTYxLjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTRjNjcnLCB2PScxNjUuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NWE3NicsIHY9JzE2NS42JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU2ODg3Jywgdj0nMTYwLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTc2OTcnLCB2PScxNDcuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ODRhOCcsIHY9JzE5Ni45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU5MmI2Jywgdj0nMTk1LjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWEwYzcnLCB2PScxODYuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YWVkNycsIHY9JzE3OC4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjViY2U3Jywgdj0nMTc3LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWNhZjgnLCB2PScxNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWQ5MDcnLCB2PScxNTYuNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZTcxOCcsIHY9JzE1NC4zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVmNTI3Jywgdj0nMTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nMTc5LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjExNDknLCB2PScxNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjFmNTknLCB2PScxNzIuMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MmQ2OCcsIHY9JzE5Ni40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYzYjgzJywgdj0nMTc5LjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjQ5ODYnLCB2PScxOTUuNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NTc5NScsIHY9JzIwMi43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY2NWE2Jywgdj0nMjA5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjczYjUnLCB2PScyMDQuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ODFjNicsIHY9JzE5OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4ZmQ1Jywgdj0nMTg2LjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjlkZTYnLCB2PScxNzUuNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWJmNicsIHY9JzE3MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZiYTA2Jywgdj0nMTU5LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmM4MTcnLCB2PScxNTYuNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZDYyYicsIHY9JzEzNy43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZlNDM2Jywgdj0nMTQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZmMjQ3Jywgdj0nMTM5LjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzAwNTcnLCB2PScxNDMuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MGU2NycsIHY9JzEzNy43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcxYzc3Jywgdj0nMTc3LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzJhODcnLCB2PScxODYuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3Mzg5NycsIHY9JzE4NC41JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc0NmE4Jywgdj0nMTg4LjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzU0YjknLCB2PScxOTEuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NjJjNycsIHY9JzE0Ni43JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc3MGQ4Jywgdj0nMTYxLjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzdlZTcnLCB2PScxODguNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPScxMDY5NTAwMCcsIGg9JzNkYzFhOGRlJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTA4Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzMyJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTNjJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODM1Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NDUnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ1NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhNScsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGI2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmM1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGQ3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMzBiJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGY2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZjA2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDE3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5MzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzQ2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWY4NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZkOTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmE0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODliNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3YzQnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiM2U2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzFmNicsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAwNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmEzNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjU2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ2NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyNzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDg2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5OScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWI3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzhjNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjg2ZDYnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjk0ZTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAxJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYjEwNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJjZDI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyZGIzNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmU5NDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMDU2NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzEzNzUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyMTllJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMmY5NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzNkYTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM0YmI2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNTlkZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzY3ZDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM3NWU2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODQwZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzkyMWUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhMDE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYWUyNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2JjMzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNjYTQ3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZDg1NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2U2NjcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNmNDgxJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MDI4NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDEwOTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxZWE1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MmNiNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDNhYzUnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDQ4ZDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ1NmU2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NGY1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ODBmZicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0OGYwZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDlkMWQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRhYjQ2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0Yjk1NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGM3NjknLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRkNTc3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZTM4NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGYxOTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmZmE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MGRkMCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTFiYzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUyOWQ2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MzdlNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDA2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NjIxNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3ZTM2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OGM0NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVhODY3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YjY3NicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YzQ4NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWQyOTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlMGE5Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZWViOCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWZjYzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYwYWQ3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MThlNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2ZjcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYzNTA3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NDMxNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjVmMzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY2ZDQ2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2N2I1NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjg5NjcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY5NzgyJywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZhNTg2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YjM5NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmMxYTYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmNmYjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZkZGM2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZWJkNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmY5ZTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcwN2Y2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MTYwNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzI0MTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzczMjI3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NDAzNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzRlNDcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc1YzU3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NmE2MycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzc4NzMnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc4NjgwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3OTQ4ZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2EyOWYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiMGFmJywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiZWJmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Y2NjZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2RhZGYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4ZmEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdmNzBhJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MDUxYScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODEzMmEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyMTNhJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MmY0YScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODNkNWEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg0YjZhJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NTk3YScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODY3OGInLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg3NTliJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ODNhYycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODkxYmInLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5ZmNhJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YWRkYScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGJiZWInLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOWZjJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZDgwYicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGU2MWEnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGY0MmEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkwMjNhJywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxMDRhJywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxZTVhJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MmM2YScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTNhODQnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTQ4ODUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk1Njk0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NjRhNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTcyYjQnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTgwYzUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4ZWQ0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5OWNlNScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWFmNScsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YjkwNicsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YzcxNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWQ1MjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzllMzM2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZjE0NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWZmNTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EwZDY1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMWI3NycsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMjk4NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTM3OTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E0NWE3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNTNiNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTYxYzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2ZmQ2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhN2UwMCcsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGMwMCcsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOWEwNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWE4MTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FiNjI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYzQzNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWQyNDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlMDU1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZWU2NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWZjNzUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IwYTg1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMjZhNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjM0YjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I0MmM2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNTBkNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjVlZTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2Y2Y2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiN2IwNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjg5MTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I5NzI4Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYTUzNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmIzNDcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjMTU3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiY2Y2NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmRkODEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JlYjg2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZjk5NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzA3YTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MxNWI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMjNjNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzMxZDUnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzNmZTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M0ZGY1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNWMwNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzZhMTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M3ODI2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjODYzNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzk0NDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NhMjU2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYjA2NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2JlNzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NjYzg3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZGE5NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2U4YTgnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NmNmI3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMDRjOCcsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMTJkNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDIwZTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyZjAyJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkM2QwNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q1OTI2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDc1NDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q4MzU1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOTE2NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGFkODcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RiYjk3Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RjOWE4Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZDdiNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGU1YzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RmM2Q3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDFkNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmZTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UxZGY1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMmMwNCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTNhMTQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U0ODI0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNTYzNCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTY0NDQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U3MjU1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlODA2ZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZThlN2YnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U5YzhlJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYWE5ZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWI4YWUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VjNmJmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZDRjZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWUyZGYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMGVmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZmYwMScsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMGQxMCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjFiMjAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YyOTMwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMzc0MCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjQ1NTEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y1MzYxJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNjE3MicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjZmODAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y3ZDkxJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOGJhMScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjk5YjEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZhN2MwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmMzZTAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMWZiJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZTAwYicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMWMnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmZjMmMnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMGEzYicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAxODRjJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDI2NWInLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAzNDZjJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDQyN2InLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNTA4ZCcsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDVlOWQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNmNhZCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA3YWJkJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDg4Y2QnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA5NmRlJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGE0ZWQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjJmZScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGMxMGQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwY2YxZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBkZDJlJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGViNjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZjk0ZScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTA3NWUnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTExNTZkJywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMjM4OCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzMTg3Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExM2ZiMCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE0ZGE2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNWJiNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE2OWM2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTc3ZDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExODVlOCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5M2Y3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWEyMDgnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYjAxNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFiZTJmJywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExY2MzNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFkYTQ3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWU4NTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZjY2NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIwNTc4Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjEzODYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMjE5NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyZmE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjNkYjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNGJjNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI1OWQ1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjY3ZTQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzYwMCcsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjgzMDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTExNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5ZjI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmFkMzUnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJiYjQ1Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYzk1NCcsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmQ3NjYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJlNTc1Jywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZjM4NicsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzAxOTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMGZhNicsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzFkYjcnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMyYmM1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzM5ZDQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNDdlNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NWY0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzY0MDQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNzIxNCcsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzgwMjQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2FhNTQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2Q0OGUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZTI5ZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmMGFlJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2ZlYmYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MGNjZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQxYWRmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDI4ZWYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzZmZicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDQ1MGYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NTMxZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2MTMwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDZmNDAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0N2Q0NCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ4YjU3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDk5NjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YTc3NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRiNTg0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGMzOTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZDFhNCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRkZmI2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZWRjNScsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGZiZDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MDllNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxN2ZmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTI2MDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU0MjI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTUwMzUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU2YzU1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTdhNjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTk2ODYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YTQ5NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTViMmE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWMwYjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Y2VjNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVkY2Q1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWVhZTYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmOGY1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjA3MDYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYxNTE3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjIzMjYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzMTM3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjNmNDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NGQ1NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY1YjY3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjY5ODInLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Nzc4NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY4NTk2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjkzYTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YTFiNScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmFmYzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YmRkNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZjYmU2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5ZjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZTgwNycsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmY2MTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MDQyOScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcxMjM2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzIwNDcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MmU1NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTczYzY3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzRhNzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NTg4NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc2Njk0Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc4MmIzJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzkwYzUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OWVkNCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdhY2U0Jywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmFmZCcsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2M5MGYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcxZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdlNTJmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2YzM2YnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MDE0ZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgwZjVmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODFkNmUnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgyYjdmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODM5OGYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NDdhMScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg1NWFmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODYzYzAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NzFjZicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODdmZTAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OGRlZicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YzAwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGI4MGQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YzYxYycsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGQ0MmMnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZTIzYicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmMDRiJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGZlNWUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MGM3NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkxYTg2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTI4OTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MzZhNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk0NGI3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTUyYzYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk2MGQ3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTZlZTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2NmOCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk4YjBmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTk5MWYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YjU0MScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTljMzRkJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWQxNWUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZGY4MCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZDkwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVlYmUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZmI4ZScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMTdhZScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTI1YmUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMzNjZCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0MWRkJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTRmZWQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWUwOCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE2YzA1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTdhMTUnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE4ODI2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTk2MzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYTQ0NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFiMjU1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWMwNjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhY2U3NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFkYzg3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWVhOTYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFmOGE3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjA2YjcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMTRjNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM3NDYwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzgyNzAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjOTA3ZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2FjYTInLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYmFiMScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNjOGMxJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2Q2ZDAnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZTRkZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNmMmYwJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAxMDknLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMGYwNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQxZDE1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDJiMjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMzkzNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ0NzQ1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDU1NTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNjM2NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ3MTc1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDdmODYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOGQ5NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ5YmE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGE5YjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYjdjNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRjNWQ1Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZDNlNicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGUxZjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZjAwNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRmZTE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTBjMjYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUxYTM2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTQ0NjcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTZlOTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTk4YzYnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVhNmQ1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWI0ZTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzJmNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkMTA2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWRmMTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZWQyNicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWZiMzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMDk0NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzU2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjI1NjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMzM3NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY0MTg3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjRmOTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNWRhNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY2YmI2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjc5YzcnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY4N2Q2Jywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmOTVlNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhNDAxJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYzAxNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjZTI1Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZGMzNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZlYTQ1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmY4NTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMDY2NScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDE0NzUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMjI4NicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDMwOTUnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzZWE1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDRjYjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNWFjNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA2OGQ2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDc2ZTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwODRmNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA5MzA2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGExMTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYWYyNicsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGJkMzcnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBjYjQ2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZDk1NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBlNzY3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGY1ODEnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMDM4NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExMTk0Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTFmYTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMmRiNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEzYmM1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTQ5ZDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNTdlNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NWY2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTc0MDYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxODIxNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE5MDI2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTllMzknLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYWM0NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTU3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWM4NjcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZDY3NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFlNDg3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWYyOTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMDBhNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwZWI3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjFjYzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMmFkNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIzOGU3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ3MDEnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI1NTA1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjYzMTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNzEyNScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjhkNDUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOWI1NCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmI3NzYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYzU4NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmUxYTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZWZiNicsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmZkYzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMxOWU2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3ZjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM0NDE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzUyMjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNjAzNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM2ZTQ2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzN2M1NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM4YTY2Jywgdj0nNTAuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNhNjg1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2I0OTUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkMGI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2RlYzQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzQ5LjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2ZhZTQnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDhmNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQxNzA2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDI1MTgnLCB2PSc0OS45JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQzMzI1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDQxMzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NGY0NicsIHY9JzUwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Nzk3NicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ4Nzg2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0OTU3ZScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRhMzhmJywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YjE5YycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiZmFjJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGNkYmMnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZGJjZCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOWU1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGY4MDgnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MDYxNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUxNDI2Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MjIzNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTNlNTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NGM2NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU1YTc2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTY4ODcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NzY5NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU4NGE4Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTkyYjYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YTBjNycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVhZWQ3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWJjZTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2FmOCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVkOTA3Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZTcxOCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVmNTI3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjAzMzgnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MTE0OScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxZjU5Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjJkNjgnLCB2PSc1MC4xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYzYjgzJywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjQ5ODYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NTc5NScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY2NWE2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjczYjUnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ODFjNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4ZmQ1Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjlkZTYnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWJmNicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZiYTA2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmM4MTcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZDYyYicsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZlNDM2Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmYyNDcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MDA1NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTY3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzFjNzcnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MmE4NycsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjczODk3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzQ2YTgnLCB2PSc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NTRiOScsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc2MmM3Jywgdj0nNDkuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NzBkOCcsIHY9JzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc3ZWU3Jywgdj0nNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nODYxMicsIGg9JzNkYzFhOGRlJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzI1LjA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTA4Jywgdj0nMjQuMDY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMzMicsIHY9JzIzLjQzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhM2MnLCB2PScyMy4yNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODM1Jywgdj0nMjIuNzg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0NScsIHY9JzIyLjc0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NTUnLCB2PScyNi4yOTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MjY1Jywgdj0nMjguODc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3NScsIHY9JzM0LjQ1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlODUnLCB2PSc0MC4wMTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4Yzk2Jywgdj0nNDAuNTcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhNScsIHY9JzM4LjY4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YjYnLCB2PSczNS44NjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmM1Jywgdj0nMzQuMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGQ3Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMzBiJywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGY2Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZjA2Jywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDE3Jywgdj0nMC4wMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyNycsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5MzcnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzQ2Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1NicsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNjYnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWY4NScsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZkOTUnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmE0Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODliNScsIHY9JzAuMDM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3YzQnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWQ1Jywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjNlNicsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMxZjYnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDA1Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGUxNScsIHY9JzAuMDMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMjUnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTM2Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDg0NScsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NTYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDY1Jywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3NicsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwODYnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZTk5Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWNhNycsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYjcnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3OGM2Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyODZkNicsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjk0ZTYnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAxJywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYjEwNScsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJjZDI1Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyZGIzNScsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmU5NDYnLCB2PScwLjAzMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nMC4wMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMDU2NicsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzEzNzUnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyMTllJywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMmY5NicsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzNkYTYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM0YmI2Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNTlkZScsIHY9JzAuMDMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzY3ZDYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM3NWU2Jywgdj0nMC4wMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODQwZScsIHY9JzAuMDMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzkyMWUnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhMDE2Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYWUyNycsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2JjMzYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNjYTQ3Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZDg1NicsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2U2NjcnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNmNDgxJywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MDI4NScsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDEwOTUnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxZWE1Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MmNiNScsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDNhYzUnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ0OGQ1Jywgdj0nMC4wMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NTZlNicsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0ZjUnLCB2PScwLjAzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ4MGZmJywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0OGYwZScsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDlkMWQnLCB2PScwLjAzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRhYjQ2Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0Yjk1NScsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGM3NjknLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRkNTc3Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZTM4NycsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGYxOTYnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmZmE2Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MGRkMCcsIHY9JzAuMDM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTFiYzYnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUyOWQ2Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MzdlNycsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDA2Jywgdj0nMC4wMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NjIxNScsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3ZTM2Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OGM0NicsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PScwLjA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWE4NjcnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzViNjc2Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YzQ4NycsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWQyOTYnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlMGE5Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZWViOCcsIHY9JzAuMDM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWZjYzYnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYwYWQ3Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MThlNycsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2ZjcnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYzNTA3Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NDMxNycsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PScwLjAzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1ZjM3Jywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NmQ0NicsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjdiNTcnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY4OTY3Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2OTc4MicsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmE1ODYnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZiMzk1Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YzFhNicsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmNmYjUnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZkZGM2Jywgdj0nMC4wMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZWJkNicsIHY9JzAuMDMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmY5ZTYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcwN2Y2Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MTYwNycsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzI0MTcnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzczMjI3Jywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NDAzNycsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzRlNDcnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc1YzU3Jywgdj0nMC4wNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc2YTYzJywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Nzg3MycsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzg2ODAnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc5NDhmJywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YTI5ZicsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2IwYWYnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiZWJmJywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Y2NjZicsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2RhZGYnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlOGZhJywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcwYScsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODA1MWEnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgxMzJhJywgdj0nMC4wMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MjEzYScsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODJmNGEnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgzZDVhJywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NGI2YScsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODU5N2EnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg2NzhiJywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NzU5YicsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODgzYWMnLCB2PScwLjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5MWJiJywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4OWZjYScsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGFkZGEnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhiYmViJywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YzlmYycsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGQ4MGInLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhlNjFhJywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZjQyYScsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTAyM2EnLCB2PScwLjAzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxMDRhJywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MWU1YScsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTJjNmEnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkzYTg0Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NDg4NScsIHY9JzAuMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTU2OTQnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk2NGE1Jywgdj0nMC4wMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NzJiNCcsIHY9JzAuMDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTgwYzUnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4ZWQ0Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5OWNlNScsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhZjUnLCB2PScwLjAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzliOTA2Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YzcxNicsIHY9JzAuMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWQ1MjYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzllMzM2Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZjE0NScsIHY9JzAuMDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWZmNTYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EwZDY1Jywgdj0nMC4wMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMWI3NycsIHY9JzM2LjExNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EyOTg2Jywgdj0nMTcuNjEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTM3OTUnLCB2PSc4LjM1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E0NWE3Jywgdj0nNS45NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNTNiNicsIHY9JzcuMTM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTYxYzcnLCB2PSc4LjY0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2ZmQ2Jywgdj0nNi40MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhN2UwMCcsIHY9JzEwLjIzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YzAwJywgdj0nMTQuMDI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMDUnLCB2PSczLjU0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FhODE1Jywgdj0nMy44JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWI2MjUnLCB2PSc2LjA5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FjNDM1Jywgdj0nNS4yMDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZDI0NScsIHY9JzcuNTI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWUwNTUnLCB2PScxMS4zOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlZTY1Jywgdj0nMC45NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZmM3NScsIHY9JzUuNzczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjBhODUnLCB2PScyMS4wMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMjZhNicsIHY9JzIyLjYzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IzNGI2Jywgdj0nMTkuMzE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjQyYzYnLCB2PScxLjI2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1MGQ2Jywgdj0nMy4xMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1ZWU3Jywgdj0nNi4wOTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmNmNicsIHY9JzcuMjczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjdiMDcnLCB2PSc5LjM3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I4OTE3Jywgdj0nNy43MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiOTcyOCcsIHY9JzguMTgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmE1MzcnLCB2PSc5Ljg0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JiMzQ3Jywgdj0nNS4yNTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYzE1NycsIHY9JzIuNjQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmNmNjcnLCB2PSc3LjE3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JkZDgxJywgdj0nMTkuNjk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmViODYnLCB2PSc0LjcwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JmOTk1Jywgdj0nNS4wMTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMDdhNicsIHY9JzUuMDI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzE1YjUnLCB2PSc0LjQwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MyM2M2Jywgdj0nNS4xNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMzFkNScsIHY9JzEwLjk1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzZmU2Jywgdj0nNS4wOTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGRmNScsIHY9JzEwLjAzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M1YzA2Jywgdj0nNC4wODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNmExNicsIHY9JzUuMjIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzc4MjYnLCB2PSc2LjYyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M4NjM2Jywgdj0nMi41NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjOTQ0NicsIHY9JzMuNzY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2EyNTYnLCB2PScyLjkyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiMDY2Jywgdj0nNC4yMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYmU3NicsIHY9JzIuNDQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2NjODcnLCB2PScxMC42NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZGE5NicsIHY9JzE1LjA0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NlOGE4Jywgdj0nMTAuNDk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2Y2YjcnLCB2PScxNC4yNDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMDRjOCcsIHY9JzExLjMxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QxMmQ3Jywgdj0nNy4yNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyMGU3Jywgdj0nMy4yNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMmYwMicsIHY9JzEyLjc2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzZDA1Jywgdj0nOC44NjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIxNScsIHY9JzguNDIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDU5MjYnLCB2PSc3LjUwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q2NzM1Jywgdj0nNy44MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNzU0NicsIHY9JzEwLjkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDgzNTUnLCB2PSc1Ljc0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q5MTY2Jywgdj0nMi4wODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOWY3NScsIHY9JzcuNzUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGFkODcnLCB2PScxNi43ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYmI5NycsIHY9JzE4LjQ2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RjOWE4Jywgdj0nMTguODAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGQ3YjcnLCB2PScxNi4wMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZTVjNicsIHY9JzEzLjYyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RmM2Q3Jywgdj0nMTQuNDc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTAxZDcnLCB2PScxNC45MjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGZlNScsIHY9JzE0LjM0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UxZGY1Jywgdj0nMTUuNTAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTJjMDQnLCB2PScyMC4wNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UzYTE0Jywgdj0nMjAuMDExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTQ4MjQnLCB2PScxNi4zNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNTYzNCcsIHY9JzE3LjAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTY0NDQnLCB2PScxMS45MDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNzI1NScsIHY9JzEwLjEzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4MDZmJywgdj0nOC43MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOGU3ZicsIHY9JzE0LjM1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U5YzhlJywgdj0nNC44NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VhYTlmJywgdj0nNC4xNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYjhhZScsIHY9JzYuMDE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWM2YmYnLCB2PScxNC42MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZDRjZScsIHY9JzkuOTg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWUyZGYnLCB2PScxMS45NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMGVmJywgdj0nMTUuNDIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWZmMDEnLCB2PScyMi43NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMGQxMCcsIHY9JzIyLjQyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YxYjIwJywgdj0nMjQuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMjkzMCcsIHY9JzIzLjA3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YzNzQwJywgdj0nMjMuMjQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjQ1NTEnLCB2PScyNC4wMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNTM2MScsIHY9JzI1Ljk4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2MTcyJywgdj0nMjQuNzQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjZmODAnLCB2PScyNS4zMjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmN2Q5MScsIHY9JzIzLjEyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y4YmExJywgdj0nMTkuNDAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjk5YjEnLCB2PScxOS4yOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZhN2MwJywgdj0nMTYuMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9JzE2LjIyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZjM2UwJywgdj0nMTYuNjU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmQxZmInLCB2PScxNC4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmUwMGInLCB2PScxNC4wNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZWUxYycsIHY9JzkuNTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmZjMmMnLCB2PSc5LjA3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMGEzYicsIHY9JzguMzMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAxODRjJywgdj0nOS43NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDI2NWInLCB2PScxNC4zMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDM0NmMnLCB2PScxNi4wNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDQyN2InLCB2PScxOS45MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDUwOGQnLCB2PScyMy4yMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDVlOWQnLCB2PScyMy4yMTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDZjYWQnLCB2PScyNS4xNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDdhYmQnLCB2PScyMS41OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDg4Y2QnLCB2PScxOS42NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDk2ZGUnLCB2PScyMS4wNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGE0ZWQnLCB2PScyMS4xMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyZmUnLCB2PScyMi4zNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGMxMGQnLCB2PScyNS4xNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGNmMWUnLCB2PScyMy4yMjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGRkMmUnLCB2PScyMC45MTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGViNjYnLCB2PScyMi4wMTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGY5NGUnLCB2PScxOC43MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTA3NWUnLCB2PScxNi43NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTE1NmQnLCB2PScxMy4xNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTIzODgnLCB2PScxMy45MTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTMxODcnLCB2PSc4LjcxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExM2ZiMCcsIHY9JzguMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE0ZGE2Jywgdj0nOC4xOTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTViYjYnLCB2PSc4LjMwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNjljNicsIHY9JzEwLjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNzdkNicsIHY9JzE0LjIxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExODVlOCcsIHY9JzE1LjYxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTNmNycsIHY9JzE5LjA5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYTIwOCcsIHY9JzIzLjk4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYjAxNycsIHY9JzIwLjkxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9JzI2LjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFjYzM3Jywgdj0nMjEuNDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFkYTQ3Jywgdj0nMjEuMDA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFlODU3Jywgdj0nMjIuMTQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFmNjY3Jywgdj0nMTkuMTI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIwNTc4Jywgdj0nMC4wMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjEzODYnLCB2PScwLjAyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMjE5NicsIHY9JzAuMDIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyZmE2Jywgdj0nMC4wMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjNkYjUnLCB2PScwLjAxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNGJjNScsIHY9JzAuMDE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI1OWQ1Jywgdj0nMC4wMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjY3ZTQnLCB2PScwLjAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NjAwJywgdj0nMC4wMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjgzMDUnLCB2PScwLjAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTE1Jywgdj0nMC4wMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOWYyNScsIHY9JzAuMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmFkMzUnLCB2PScwLjAwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYmI0NScsIHY9JzAuMDA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJjOTU0Jywgdj0nMC4wMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmQ3NjYnLCB2PScwLjAxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZTU3NScsIHY9JzAuMDE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJmMzg2Jywgdj0nMC4wMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzAxOTYnLCB2PScwLjAxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMGZhNicsIHY9JzAuMDE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMxZGI3Jywgdj0nMC4wMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzJiYzUnLCB2PScwLjAxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMzlkNCcsIHY9JzAuMjc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM0N2U1Jywgdj0nMC4wOTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1ZjQnLCB2PScwLjE0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNjQwNCcsIHY9JzAuMjA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM3MjE0Jywgdj0nMC4yMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzgwMjQnLCB2PScwLjIxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzAuMjE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nMC4wNzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2FhNTQnLCB2PScwLjA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNiODY1Jywgdj0nMC4wMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2M2N2UnLCB2PScwLjQ0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZDQ4ZScsIHY9JzAuMjE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNlMjllJywgdj0nMC4xNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2YwYWUnLCB2PScwLjE1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZmViZicsIHY9JzAuMjMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQwY2NmJywgdj0nMC4zMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDFhZGYnLCB2PScwLjIxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MjhlZicsIHY9JzAuMDQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNmZmJywgdj0nMC4wMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDQ1MGYnLCB2PScwLjAyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NTMxZicsIHY9JzAuMDIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2MTMwJywgdj0nMC4wNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDZmNDAnLCB2PScwLjE0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0N2Q0NCcsIHY9JzAuMDY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ4YjU3Jywgdj0nMC4wOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0OTk2NScsIHY9JzAuMDY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRhNzc1Jywgdj0nMC4xMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGI1ODQnLCB2PScwLjA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRjMzk3Jywgdj0nMC4yMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGQxYTQnLCB2PScwLjIwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZGZiNicsIHY9JzAuMTYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRlZGM1Jywgdj0nMC4wNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGZiZDUnLCB2PScwLjAyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MDllNScsIHY9JzAuMDc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxN2ZmJywgdj0nMC4xNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTI2MDUnLCB2PScwLjE4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzAuMTQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU0MjI1Jywgdj0nMC4xNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTUwMzUnLCB2PScwLjE2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzAuMjE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU2YzU1Jywgdj0nMC4zMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTdhNjUnLCB2PScwLjE2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzAuMTQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU5Njg2Jywgdj0nMC4yNTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWE0OTUnLCB2PScwLjIxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YjJhNicsIHY9JzAuMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWMwYjYnLCB2PScwLjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Y2VjNicsIHY9JzAuMTE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVkY2Q1Jywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWVhZTYnLCB2PScwLjExNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZjhmNScsIHY9JzAuMzAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYwNzA2Jywgdj0nMC4wMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MTUxNycsIHY9JzAuMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjIzMjYnLCB2PScwLjA0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MzEzNycsIHY9JzAuMDY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzZjQ2Jywgdj0nMC4wNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjRkNTcnLCB2PScwLjAyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NWI2NycsIHY9JzAuMTA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY2OTgyJywgdj0nMC4wOTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjc3ODYnLCB2PScwLjE0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ODU5NicsIHY9JzAuMTAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY5M2E2Jywgdj0nMC4wOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmExYjUnLCB2PScwLjA3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YWZjNicsIHY9JzAuMDY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZiZGQ1Jywgdj0nMC4xNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Y2JlNicsIHY9JzAuMjEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZkOWY2Jywgdj0nMC4wODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmU4MDcnLCB2PScwLjYwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZjYxNicsIHY9JzAuNjc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcwNDI5Jywgdj0nMC43MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzEyMzYnLCB2PScwLjQ3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MjA0NycsIHY9JzAuNDc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyZTU3Jywgdj0nMC40OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzNjNjcnLCB2PScwLjQ5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NGE3NycsIHY9JzAuNTc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc1ODg3Jywgdj0nMC42MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NjY5NCcsIHY9JzM1LjcxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9JzMzLjk3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ODJiMycsIHY9JzM1LjI5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OTBjNScsIHY9JzMyLjQyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OWVkNCcsIHY9JzI4LjQzMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YWNlNCcsIHY9JzI5LjI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYWZkJywgdj0nMzAuOTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdjOTBmJywgdj0nMjguMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MWUnLCB2PScyNy43OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2U1MmYnLCB2PScyOC4xMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2YzM2YnLCB2PScyNS41MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODAxNGYnLCB2PScyNS4wMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODBmNWYnLCB2PSczMC4wNDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODFkNmUnLCB2PSczMi43NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODJiN2YnLCB2PSczOC4xODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODM5OGYnLCB2PSc2NC4zNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NDdhMScsIHY9JzYzLjU4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NTVhZicsIHY9JzYwLjg5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NjNjMCcsIHY9JzU3LjE2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NzFjZicsIHY9JzU5LjQzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4N2ZlMCcsIHY9JzU2LjY1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OGRlZicsIHY9JzYwLjU5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OWMwMCcsIHY9JzU2LjgzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YjgwZCcsIHY9JzM3LjU4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YzYxYycsIHY9JzQwLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGQ0MmMnLCB2PSczOC4yMTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGUyM2InLCB2PSczMi4xNzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGYwNGInLCB2PSczMC42NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGZlNWUnLCB2PScyNi45MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTBjNzYnLCB2PScyMS4yNjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTFhODYnLCB2PScyMS42NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTI4OTYnLCB2PScyMS4yNDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTM2YTYnLCB2PScyMC44NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTQ0YjcnLCB2PScxOS41ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTUyYzYnLCB2PScyMC44MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTYwZDcnLCB2PScyNS42NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NmVlNicsIHY9JzI5LjE2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2NmOCcsIHY9JzMxLjIzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OGIwZicsIHY9JzI4LjQyNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OTkxZicsIHY9JzMyLjcxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YjU0MScsIHY9JzMyLjIzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YzM0ZCcsIHY9JzI5LjgxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZDE1ZScsIHY9JzI5LjIxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZGY4MCcsIHY9JzI5Ljg2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZWQ5MCcsIHY9JzI5LjA5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZWViZScsIHY9JzI5LjAwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZmI4ZScsIHY9JzEwLjQ0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMDlhMCcsIHY9JzE4LjE1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMTdhZScsIHY9JzIzLjcxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMjViZScsIHY9JzI1Ljg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEzM2NkJywgdj0nMTMuNjkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0MWRkJywgdj0nMTUuNjE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0ZmVkJywgdj0nMjIuMjM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZTA4Jywgdj0nMjAuNTMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE2YzA1Jywgdj0nMTQuODA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE3YTE1Jywgdj0nMTcuNzg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE4ODI2Jywgdj0nMTguMjA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjM3Jywgdj0nMTQuODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWE0NDUnLCB2PScxMS4zMTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWIyNTUnLCB2PSc2LjQwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYzA2NScsIHY9JzEzLjM4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhY2U3NScsIHY9JzE4LjA5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZGM4NycsIHY9JzE2LjY4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZWE5NicsIHY9JzE2LjI1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZjhhNycsIHY9JzE3LjkwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMDZiNycsIHY9JzE2Ljg2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMTRjNicsIHY9JzE2LjA3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzQuMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzgyNzAnLCB2PSc0LjMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nMjEuMjIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nMjAuODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2FjYTInLCB2PScyMi45MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2JhYjEnLCB2PScyMi42NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2M4YzEnLCB2PSczNC43MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2Q2ZDAnLCB2PSczMy43OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2U0ZGUnLCB2PSczMi43MTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2YyZjAnLCB2PSczMy4wNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDEwOScsIHY9JzM0LjA0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMGYwNicsIHY9JzM2LjUzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMWQxNScsIHY9JzM2LjY3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMmIyNScsIHY9JzM2Ljc1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMzkzNScsIHY9JzM3LjkzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNDc0NScsIHY9JzM3Ljg1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNTU1NScsIHY9JzM3LjAyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNjM2NicsIHY9JzMyLjg0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNzE3NScsIHY9JzMxLjkxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkN2Y4NicsIHY9JzMxLjM2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOGQ5NScsIHY9JzE1LjM0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOWJhNicsIHY9JzE3LjYyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYTliNicsIHY9JzE3LjY1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYjdjNycsIHY9JzE2LjU5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9JzE3LjYyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZDNlNicsIHY9JzE4LjAxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZTFmNScsIHY9JzMyLjMzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZjAwNicsIHY9JzM3LjExMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9JzM2Ljg5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMGMyNicsIHY9JzM3LjY0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMWEzNicsIHY9JzM3LjQ2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9JzM1Ljk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nMzQuMjE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU0NDY3Jywgdj0nMzEuNDcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU1MjgxJywgdj0nMjcuOTEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nMjcuNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTZlOTYnLCB2PScyNy4wOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTdjYTYnLCB2PSc5LjY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nOC45ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTk4YzYnLCB2PSc4Ljg3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9JzExLjUyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYjRlNicsIHY9JzExLjMxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzJmNicsIHY9JzEzLjE0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZDEwNicsIHY9JzEyLjg2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZGYxNicsIHY9JzEzLjUwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZWQyNicsIHY9JzEyLjk3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9JzEyLjg1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMDk0NicsIHY9JzEyLjMyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMTc1NicsIHY9JzExLjI0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMjU2NicsIHY9JzExLjM1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMzM3NicsIHY9JzEzLjkwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNDE4NycsIHY9JzIwLjc3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNGY5NicsIHY9JzE3LjM4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNWRhNycsIHY9JzE3Ljg4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNmJiNicsIHY9JzE3Ljc3OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNzljNycsIHY9JzE1LjYyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmODdkNicsIHY9JzE4LjcxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmOTVlNycsIHY9JzE5LjY4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTQwMScsIHY9JzE1Ljg1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYjIwNCcsIHY9JzE0LjIzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYzAxNicsIHY9JzE0LjEyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmY2UyNScsIHY9JzEwLjQxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZGMzNScsIHY9JzEwLjE5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZWE0NScsIHY9JzEwLjI0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZjg1NScsIHY9JzEyLjQwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMDY2NScsIHY9JzE4Ljc4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMTQ3NScsIHY9JzE3LjcwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMjI4NicsIHY9JzI0LjQ2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMzA5NScsIHY9JzI3Ljg5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwM2VhNScsIHY9JzMxLjEzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNGNiNicsIHY9JzI4LjA3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNWFjNicsIHY9JzI2Ljc4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNjhkNicsIHY9JzI3Ljk1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNzZlNicsIHY9JzMxLjgzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwODRmNicsIHY9JzMwLjY4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwOTMwNicsIHY9JzMzLjIzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYTExNicsIHY9JzMxLjU5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYWYyNicsIHY9JzI3LjA1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYmQzNycsIHY9JzI2Ljg5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwY2I0NicsIHY9JzIyLjgzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZDk1NycsIHY9JzIxLjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGU3NjcnLCB2PScyMC43MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGY1ODEnLCB2PScyMC40MTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTAzODYnLCB2PScxNy4xNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTExOTQnLCB2PScxNC44NDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTFmYTUnLCB2PScxNC40MDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTJkYjUnLCB2PScxMy44OTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTNiYzUnLCB2PScxNC4yOTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTQ5ZDYnLCB2PScxOC4zNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTU3ZTUnLCB2PScyMi42ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1ZjYnLCB2PScyOS4wNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTc0MDYnLCB2PSczMC45ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTgyMTcnLCB2PSczMS4yNDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTkwMjYnLCB2PSczMC41MDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTllMzknLCB2PSczMC43NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWFjNDYnLCB2PScyOS43NjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNTcnLCB2PScyOS42ODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWM4NjcnLCB2PSczMC40NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZDY3NycsIHY9JzMxLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFlNDg3Jywgdj0nMjguOTU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFmMjk2Jywgdj0nMjguNDc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwMGE2Jywgdj0nMjcuNzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwZWI3Jywgdj0nMjYuNjc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIxY2M2Jywgdj0nMjQuMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjJhZDcnLCB2PScxOC44ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjM4ZTcnLCB2PScxNy41NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ3MDEnLCB2PScxNi40MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjU1MDUnLCB2PScxOC40NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNjMxNScsIHY9JzkuODM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3MTI1Jywgdj0nOS43MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyN2YzNScsIHY9JzEyLjY3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOGQ0NScsIHY9JzE3LjI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI5YjU0Jywgdj0nMTcuMTYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nMTkuMzg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJiNzc2Jywgdj0nMjIuNzkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJjNTg2Jywgdj0nMjUuOTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nMjguMzA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJlMWE2Jywgdj0nMjguNDc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJlZmI2Jywgdj0nMjMuNTMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJmZGM3Jywgdj0nMjIuNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzBiZDcnLCB2PScyMi4xMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMTllNicsIHY9JzI3LjE1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMjdmNicsIHY9JzI3LjcwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzI5Ljc5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNDQxNicsIHY9JzI3LjM0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNTIyNicsIHY9JzI1Ljg4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNjAzNycsIHY9JzI1Ljg0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNmU0NicsIHY9JzIzLjI2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzN2M1NycsIHY9JzIxLjY2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOGE2NicsIHY9JzE5LjQzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzE1LjkxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYTY4NScsIHY9JzE2LjAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYjQ5NScsIHY9JzE1LjY3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzEzLjcwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZDBiNScsIHY9JzE0LjMzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZGVjNCcsIHY9JzE1Ljc4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzE4LjE5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZmFlNCcsIHY9JzIyLjExNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDhmNicsIHY9JzI2LjA2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MTcwNicsIHY9JzM0LjgxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MjUxOCcsIHY9JzM1LjkxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MzMyNScsIHY9JzM2Ljc3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NDEzNycsIHY9JzM0LjI3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NGY0NicsIHY9JzMyLjA1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI2NicsIHY9JzMzLjAwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Nzk3NicsIHY9JzMxLjY4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ODc4NicsIHY9JzM2Ljg1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0OTU3ZScsIHY9JzMwLjQyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YTM4ZicsIHY9JzI4LjI0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YjE5YycsIHY9JzI4Ljk4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YmZhYycsIHY9JzI3LjE3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Y2RiYycsIHY9JzI2LjQ1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZGJjZCcsIHY9JzIxLjg5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZTllNScsIHY9JzIwLjA3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9JzE3LjA4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MDYxNicsIHY9JzE3LjkyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MTQyNicsIHY9JzE3Ljk3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MjIzNicsIHY9JzE2LjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTMwNDcnLCB2PScxNy4zMjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTNlNTYnLCB2PScyMC45NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NGM2NycsIHY9JzIxLjI2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NWE3NicsIHY9JzI1LjA0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Njg4NycsIHY9JzMxLjI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU3Njk3Jywgdj0nMzMuNzEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU4NGE4Jywgdj0nODIuNzQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU5MmI2Jywgdj0nNDYuNzQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVhMGM3Jywgdj0nMjIuOTAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVhZWQ3Jywgdj0nMzEuMzQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjViY2U3Jywgdj0nMzAuNDM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYWY4Jywgdj0nMjguODgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVkOTA3Jywgdj0nMzAuNzk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVlNzE4Jywgdj0nMzEuMDExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVmNTI3Jywgdj0nMjguMDk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nMjcuMTc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxMTQ5Jywgdj0nMjQuOTQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxZjU5Jywgdj0nMjIuODM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYyZDY4Jywgdj0nMjMuMjA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYzYjgzJywgdj0nMTcuNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjQ5ODYnLCB2PScxNy41NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjU3OTUnLCB2PScxOC43NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjY1YTYnLCB2PScyMC42OTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjczYjUnLCB2PScxOS4zNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjgxYzYnLCB2PScxOC42NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjhmZDUnLCB2PScxOC43OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjlkZTYnLCB2PScxOC45NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmFiZjYnLCB2PScxOC45MDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmJhMDYnLCB2PScyMy40MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmM4MTcnLCB2PScyMy41MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmQ2MmInLCB2PScyNi45NDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmU0MzYnLCB2PScyNC4wMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmYyNDcnLCB2PScyMy4xNDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzAwNTcnLCB2PScyMy45MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNjcnLCB2PScyNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MWM3NycsIHY9JzIyLjg4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MmE4NycsIHY9JzI2LjI0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3Mzg5NycsIHY9JzI1LjkwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NDZhOCcsIHY9JzI1LjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NTRiOScsIHY9JzI0LjcyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NjJjNycsIHY9JzIzLjc1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NzBkOCcsIHY9JzE4LjgzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3N2VlNycsIHY9JzE1LjM2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPSc4NjA4JywgaD0nM2RjMWE4ZGUnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzMyJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhM2MnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzgzNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlODUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjZjNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzMGInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZjA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBiMjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5MzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxODEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmODUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZkOTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3YzQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIzZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMxZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwMDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyNzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOTknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc4YzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjg2ZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjk0ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmIxMDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmNkMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmRiMzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmU5NDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmY3NTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzA1NjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzEzNzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzIxOWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzJmOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzNkYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzRiYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzU5ZGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzY3ZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzc1ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzg0MGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzkyMWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2EwMTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2FlMjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2JjMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2NhNDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Q4NTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2U2NjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Y0ODEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDAyODUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDEwOTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDFlYTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDJjYjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDNhYzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDQ4ZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDU2ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0ZjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDgwZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDhmMGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDlkMWQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGFiNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGI5NTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGM3NjknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGQ1NzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGUzODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGYxOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGZmYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTBkZDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTFiYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTI5ZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTM3ZTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTU0MDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTYyMTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTdlMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNThjNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWE4NjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWI2NzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWM0ODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWQyOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWUwYTknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWVlYjgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWZjYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjBhZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjE4ZTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2ZjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjM1MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjQzMTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjVmMzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjZkNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjdiNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjg5NjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjk3ODInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmE1ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmIzOTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmMxYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmNmYjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmRkYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmViZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmY5ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3ZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzE2MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzI0MTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzMyMjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzQwMzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzRlNDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzVjNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzZhNjMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzc4NzMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzg2ODAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzk0OGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2EyOWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2IwYWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2JlYmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2NjY2YnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2RhZGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4ZmEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MGEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODA1MWEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODEzMmEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODIxM2EnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODJmNGEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODNkNWEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODRiNmEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODU5N2EnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODY3OGInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODc1OWInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODgzYWMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODkxYmInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODlmY2EnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGFkZGEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGJiZWInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5ZmMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGQ4MGInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGU2MWEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGY0MmEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTAyM2EnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTEwNGEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTFlNWEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTJjNmEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTNhODQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTQ4ODUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTU2OTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTY0YTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTcyYjQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTgwYzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOThlZDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTljZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhZjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWI5MDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWM3MTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWQ1MjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWUzMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWYxNDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWZmNTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTBkNjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTFiNzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTI5ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTM3OTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTQ1YTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTUzYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTYxYzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTZmZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTdlMDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYThjMDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWE4MTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWI2MjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWM0MzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWQyNDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWUwNTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWVlNjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWZjNzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjBhODUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjI2YTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjM0YjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjQyYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjUwZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjVlZTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjZjZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjdiMDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjg5MTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjk3MjgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmE1MzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmIzNDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmMxNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmNmNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmRkODEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmViODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmY5OTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzA3YTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzE1YjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzIzYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzMxZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzNmZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkZjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzVjMDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzZhMTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzc4MjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzg2MzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzk0NDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2EyNTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2IwNjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2JlNzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2NjODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2RhOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2U4YTgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2Y2YjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDA0YzgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDEyZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDIwZTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDJmMDInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDNkMDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDU5MjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDY3MzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDc1NDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDgzNTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDkxNjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGFkODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGJiOTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGM5YTgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGQ3YjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGU1YzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGYzZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTAxZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTFkZjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTJjMDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTNhMTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTQ4MjQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTU2MzQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTY0NDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTcyNTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTgwNmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZThlN2YnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTljOGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWFhOWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWI4YWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWM2YmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWQ0Y2UnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWUyZGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwZWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWZmMDEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjBkMTAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjFiMjAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjI5MzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjM3NDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjQ1NTEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjUzNjEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjYxNzInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjZmODAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjdkOTEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjhiYTEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjk5YjEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmE3YzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmI1ZDEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmMzZTAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmQxZmInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmUwMGInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMWMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmZjMmMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAwYTNiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMTg0YycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDI2NWInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAzNDZjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNDI3YicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDUwOGQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA1ZTlkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNmNhZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDdhYmQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA4OGNkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwOTZkZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGE0ZWQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBiMmZlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYzEwZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGNmMWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBkZDJlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZWI2NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGY5NGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEwNzVlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMTU2ZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTIzODgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzMTg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExM2ZiMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTRkYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE1YmI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNjljNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTc3ZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE4NWU4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTNmNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWEyMDgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFiMDE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWNjMzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFkYTQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZTg1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWY2NjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIwNTc4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMTM4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjIxOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyZmE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyM2RiNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjRiYzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI1OWQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNjdlNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjc2MDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI4MzA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTExNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjlmMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJhZDM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYmI0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmM5NTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJkNzY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZTU3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmYzODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMwMTk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMGZhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzFkYjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMyYmM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMzlkNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzQ3ZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NWY0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNjQwNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzcyMTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM4MDI0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzljNDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNhYTU0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2M2N2UnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNkNDhlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZTI5ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2YwYWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmZWJmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MGNjZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDFhZGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQyOGVmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzZmZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDQ1MGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ1MzFmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NjEzMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDZmNDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ3ZDQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0OGI1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDk5NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRhNzc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YjU4NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGMzOTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRkMWE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZGZiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGVkYzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRmYmQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MDllNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTE3ZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUyNjA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTQyMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU1MDM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTZjNTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU3YTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTk2ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVhNDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YjJhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWMwYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjZWM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZGNkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWVhZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmOGY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MDcwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjE1MTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYyMzI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MzEzNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjNmNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY0ZDU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NWI2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjY5ODInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY3Nzg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ODU5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjkzYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZhMWI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YWZjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmJkZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZjYmU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDlmNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmU4MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZmNjE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MDQyOScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzEyMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyMDQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MmU1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzNjNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc0YTc3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NTg4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzY2OTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc3NGEzJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ODJiMycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzkwYzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5ZWQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YWNlNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2JhZmQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdjOTBmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcxZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2U1MmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdmMzNmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MDE0ZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODBmNWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgxZDZlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MmI3ZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODM5OGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NTVhZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODYzYzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3MWNmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4N2ZlMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODhkZWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YzAwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YjgwZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGM2MWMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThkNDJjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZTIzYicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGYwNGInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmZTVlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MGM3NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTFhODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkyODk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MzZhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTQ0YjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk1MmM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NjBkNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTZlZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3Y2Y4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OGIwZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTk5MWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTliNTQxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YzM0ZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWQxNWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkZjgwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZWQ5MCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVlYmUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlmYjhlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMDlhMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTE3YWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEyNWJlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMzNjZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTQxZGQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0ZmVkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWUwOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTZjMDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE3YTE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhODgyNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTk2MzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFhNDQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYjI1NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWMwNjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjZTc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZGM4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWVhOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFmOGE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMDZiNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjE0YzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM3NDYwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjODI3MCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzkwN2UnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYWNhMicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2JhYjEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNjOGMxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZDZkMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2U0ZGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNmMmYwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDEwOScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDBmMDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQxZDE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMmIyNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDM5MzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ0NzQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNTU1NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDYzNjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ3MTc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkN2Y4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDhkOTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ5YmE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYTliNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGI3YzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRjNWQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZDNlNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGUxZjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRmMDA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTBjMjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUxYTM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTM2NTknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU0NDY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTYwODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2ZTk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZThhYjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU5OGM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWI0ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMmY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZDEwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWRmMTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVlZDI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjA5NDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMjU2NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjMzNzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY0MTg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNGY5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjVkYTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY2YmI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNzljNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjg3ZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY5NWU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTQwMScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjMDE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmY2UyNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmRjMzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZlYTQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZjg1NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDA2NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAxNDc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMjI4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDMwOTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzZWE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNGNiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDVhYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA2OGQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNzZlNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDg0ZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA5MzA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYTExNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGFmMjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBiZDM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwY2I0NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGQ5NTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBlNzY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZjU4MScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTAzODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExMTk0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMWZhNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTJkYjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEzYmM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNDlkNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTU3ZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NWY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNzQwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTgyMTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE5MDI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOWUzOScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWFjNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYzg2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWQ2NzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFlNDg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZjI5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjAwYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwZWI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMWNjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjJhZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIzOGU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDcwMScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjU1MDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI2MzE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNzEyNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjdmMzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI4ZDQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOWI1NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmE5NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJiNzc2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYzU4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmQzOTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJlMWE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZWZiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmZkYzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMwYmQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMTllNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3ZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMzNjFiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNDQxNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzUyMjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM2MDM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNmU0NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzdjNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM4YTY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2E2ODUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNiNDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2QwYjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkZWM0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2ZhZTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwOGY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MTcwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDI1MTgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQzMzI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NDEzNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDRmNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ2YjY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Nzk3NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDg3ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ5NTdlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YTM4ZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGIxOWMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiZmFjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Y2RiYycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGRiY2QnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOWU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTA2MTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUxNDI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MjIzNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTMwNDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzZTU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NGM2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTVhNzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU2ODg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NzY5NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTg0YTgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU5MmI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YTBjNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWFlZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjViY2U3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2FmOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWQ5MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVlNzE4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZjUyNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjAzMzgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxMTQ5Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MWY1OScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjJkNjgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYzYjgzJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NDk4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjU3OTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY2NWE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NzNiNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjgxYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4ZmQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2OWRlNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmFiZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZiYTA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YzgxNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmQ2MmInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZlNDM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZjI0NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzAwNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MWM3NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzJhODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjczODk3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NDZhOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzU0YjknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc2MmM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NzBkOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzdlZTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9Jzg2MDQnLCBoPSczZGMxYThkZScpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PScyMS4wNDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDgnLCB2PScyMC4wNTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzMyJywgdj0nMTkuODE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzYycsIHY9JzE5LjU1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4MzUnLCB2PScxOC45NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjQ1Jywgdj0nMTguODUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ1NScsIHY9JzIyLjM5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNjUnLCB2PScyNC40OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDc1Jywgdj0nMjkuMjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4NScsIHY9JzM1LjA2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOTYnLCB2PSczNS4wNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlhYTUnLCB2PSczMy41ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGI2Jywgdj0nMzAuNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmM1Jywgdj0nMjkuMTQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkNycsIHY9JzAuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDMwYicsIHY9JzAuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmNicsIHY9JzAuMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZjA2Jywgdj0nMC4wNTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDE3Jywgdj0nMC4wNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjI3Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTkzNycsIHY9JzAuMDYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NDYnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTU2Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2NicsIHY9JzAuMDY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxODEnLCB2PScwLjA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmODUnLCB2PScwLjA2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDk1Jywgdj0nMC4wNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2JhNCcsIHY9JzAuMDY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YjUnLCB2PScwLjA2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2M0Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVkNScsIHY9JzAuMDY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIzZTYnLCB2PScwLjA2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjMWY2Jywgdj0nMC4wNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAwNScsIHY9JzAuMDYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMTUnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzI1Jywgdj0nMC4wNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmEzNicsIHY9JzAuMDY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NDUnLCB2PScwLjA2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjU2Jywgdj0nMC4wNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ2NScsIHY9JzAuMDY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyNzYnLCB2PScwLjA2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDg2Jywgdj0nMC4wNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5OScsIHY9JzAuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYTcnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWI3Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzhjNicsIHY9JzAuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjg2ZDYnLCB2PScwLjA2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI5NGU2Jywgdj0nMC4wNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMScsIHY9JzAuMDY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmIxMDUnLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJjZDI1Jywgdj0nMC4wNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyZGIzNScsIHY9JzAuMDYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmU5NDYnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nMC4wNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMDU2NicsIHY9JzAuMDY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzEzNzUnLCB2PScwLjA2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyMTllJywgdj0nMC4wNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMmY5NicsIHY9JzAuMDYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzNkYTYnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM0YmI2Jywgdj0nMC4wNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNTlkZScsIHY9JzAuMDY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzY3ZDYnLCB2PScwLjA2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM3NWU2Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODQwZScsIHY9JzAuMDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzkyMWUnLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2EwMTYnLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2FlMjcnLCB2PScwLjA2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNiYzM2Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczY2E0NycsIHY9JzAuMDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Q4NTYnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNlNjY3Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZjQ4MScsIHY9JzAuMDY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDAyODUnLCB2PScwLjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxMDk1Jywgdj0nMC4wNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MWVhNScsIHY9JzAuMDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDJjYjUnLCB2PScwLjA2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQzYWM1Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NDhkNScsIHY9JzAuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDU2ZTYnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NGY1Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ODBmZicsIHY9JzAuMDU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDhmMGUnLCB2PScwLjA1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ5ZDFkJywgdj0nMC4wNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0YWI0NicsIHY9JzAuMDU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGI5NTUnLCB2PScwLjA1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRjNzY5Jywgdj0nMC4wNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZDU3NycsIHY9JzAuMDU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGUzODcnLCB2PScwLjA1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmMTk2Jywgdj0nMC4wNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZmZhNicsIHY9JzAuMDU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTBkZDAnLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTFiYzYnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUyOWQ2Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MzdlNycsIHY9JzAuMDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PScwLjA2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDA2Jywgdj0nMC4wNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NjIxNScsIHY9JzAuMDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PScwLjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3ZTM2Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OGM0NicsIHY9JzAuMDYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PScwLjA2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVhODY3Jywgdj0nMC4wNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzViNjc2Jywgdj0nMC4wNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVjNDg3Jywgdj0nMC4wNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZDI5NicsIHY9JzAuMDU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWUwYTknLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWVlYjgnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVmY2M2Jywgdj0nMC4wNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MGFkNycsIHY9JzAuMDU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjE4ZTcnLCB2PScwLjA1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNmY3Jywgdj0nMC4wNTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MzUwNycsIHY9JzAuMDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjQzMTcnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1MTI3Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NWYzNycsIHY9JzAuMDYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjZkNDYnLCB2PScwLjA2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY3YjU3Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ODk2NycsIHY9JzAuMDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjk3ODInLCB2PScwLjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZhNTg2Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YjM5NScsIHY9JzAuMDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmMxYTYnLCB2PScwLjA2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZjZmI1Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZGRjNicsIHY9JzAuMDYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmViZDYnLCB2PScwLjA1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZmOWU2Jywgdj0nMC4wNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDdmNicsIHY9JzAuMDYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzE2MDcnLCB2PScwLjA1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcyNDE3Jywgdj0nMC4wNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MzIyNycsIHY9JzAuMDU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzQwMzcnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0ZTQ3Jywgdj0nMC4wNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NWM1NycsIHY9JzAuMDU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzZhNjMnLCB2PScwLjA1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc3ODczJywgdj0nMC4wNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ODY4MCcsIHY9JzAuMDU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzk0OGYnLCB2PScwLjA1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdhMjlmJywgdj0nMC4wNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiMGFmJywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YmViZicsIHY9JzAuMDYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2NjY2YnLCB2PScwLjA2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdkYWRmJywgdj0nMC4wNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZThmYScsIHY9JzAuMDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MGEnLCB2PScwLjA2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgwNTFhJywgdj0nMC4wNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MTMyYScsIHY9JzAuMDY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODIxM2EnLCB2PScwLjA2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyZjRhJywgdj0nMC4wNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4M2Q1YScsIHY9JzAuMDYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODRiNmEnLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODU5N2EnLCB2PScwLjA1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg2NzhiJywgdj0nMC4wNTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NzU5YicsIHY9JzAuMDU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODgzYWMnLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODkxYmInLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5ZmNhJywgdj0nMC4wNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhhZGRhJywgdj0nMC4wNTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YmJlYicsIHY9JzAuMDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5ZmMnLCB2PScwLjA1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhkODBiJywgdj0nMC4wNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZTYxYScsIHY9JzAuMDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGY0MmEnLCB2PScwLjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTAyM2EnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxMDRhJywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MWU1YScsIHY9JzAuMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MmM2YScsIHY9JzAuMDYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTNhODQnLCB2PScwLjA2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk0ODg1Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NTY5NCcsIHY9JzAuMDY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTY0YTUnLCB2PScwLjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk3MmI0Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ODBjNScsIHY9JzAuMDYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOThlZDQnLCB2PScwLjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk5Y2U1Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWFmNScsIHY9JzAuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWI5MDYnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzljNzE2Jywgdj0nMC4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZDUyNicsIHY9JzAuMDYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWUzMzYnLCB2PScwLjA2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmMTQ1Jywgdj0nMC4wNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZmY1NicsIHY9JzAuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTBkNjUnLCB2PScwLjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ExYjc3Jywgdj0nMzAuMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMjk4NicsIHY9JzE2LjA1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EzNzk1Jywgdj0nMTAuMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNDVhNycsIHY9JzMuODM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTUzYjYnLCB2PSczLjMwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2MWM3Jywgdj0nNC4xOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2ZmQ2Jywgdj0nMi4wMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhN2UwMCcsIHY9JzQuOTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYThjMDAnLCB2PSc3Ljg5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTA1Jywgdj0nMi45MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYTgxNScsIHY9JzEuNDg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWI2MjUnLCB2PScyLjE5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FjNDM1Jywgdj0nMS42NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZDI0NScsIHY9JzUuOTg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWUwNTUnLCB2PScxMC42NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZWU2NScsIHY9JzMuNjUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWZjNzUnLCB2PSc3LjI1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IwYTg1Jywgdj0nMTkuNzA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjI2YTYnLCB2PScyMS4xMjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMzRiNicsIHY9JzE4LjM1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I0MmM2Jywgdj0nMy40NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNTBkNicsIHY9JzQuOTE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjVlZTcnLCB2PSc3LjMzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2Y2Y2Jywgdj0nNy4yMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiN2IwNycsIHY9JzkuMTkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjg5MTcnLCB2PSc4LjAyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I5NzI4Jywgdj0nNy42ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYTUzNycsIHY9JzguNjY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmIzNDcnLCB2PSc3LjczNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjMTU3Jywgdj0nNS4xNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiY2Y2NycsIHY9JzUuMDgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmRkODEnLCB2PScxOC40MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZWI4NicsIHY9JzQuNjc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmY5OTUnLCB2PSczLjk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzA3YTYnLCB2PScyLjI0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MxNWI1Jywgdj0nMi41MTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMjNjNicsIHY9JzQuNzg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzMxZDUnLCB2PScxMC40MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjM2ZlNicsIHY9JzUuODYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkZjUnLCB2PSc5LjY2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M1YzA2Jywgdj0nNS4xOTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNmExNicsIHY9JzUuMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNzgyNicsIHY9JzcuNzQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzg2MzYnLCB2PSczLjY1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M5NDQ2Jywgdj0nNC4yMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYTI1NicsIHY9JzMuMjgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2IwNjYnLCB2PSc1LjY1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiZTc2Jywgdj0nMi4yNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjY2M4NycsIHY9JzEyLjAwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NkYTk2Jywgdj0nMTUuODMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2U4YTgnLCB2PScxMS45ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZjZiNycsIHY9JzE1LjE0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QwNGM4Jywgdj0nMTIuMzg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDEyZDcnLCB2PSc4LjUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDIwZTcnLCB2PScxLjQ3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyZjAyJywgdj0nNy40NDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkM2QwNScsIHY9JzQuMjYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMTUnLCB2PSczLjgwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q1OTI2Jywgdj0nMy43NTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzUuNTM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDc1NDYnLCB2PSc5LjUyNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q4MzU1Jywgdj0nMS45ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOTE2NicsIHY9JzQuMTU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PSc5LjYyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RhZDg3Jywgdj0nMTcuNzA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGJiOTcnLCB2PScxOS4xNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYzlhOCcsIHY9JzE5LjI1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RkN2I3Jywgdj0nMTQuOTYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGU1YzYnLCB2PScxMi44MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZjNkNycsIHY9JzEzLjExMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwMWQ3Jywgdj0nMTMuNDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmZTUnLCB2PScxMy4yODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMWRmNScsIHY9JzEzLjk4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UyYzA0Jywgdj0nMTguMDk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTNhMTQnLCB2PScxNy43NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNDgyNCcsIHY9JzE1LjIyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U1NjM0Jywgdj0nMTUuMjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTY0NDQnLCB2PScxMS45NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNzI1NScsIHY9JzkuODkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTgwNmYnLCB2PSc3Ljk5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4ZTdmJywgdj0nMTMuODg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTljOGUnLCB2PSc2LjMzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VhYTlmJywgdj0nNS42MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYjhhZScsIHY9JzcuMzY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWM2YmYnLCB2PScxNC4yNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZDRjZScsIHY9JzkuNjc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWUyZGYnLCB2PScxMi44MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMGVmJywgdj0nMTQuOTg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWZmMDEnLCB2PScyMS41MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMGQxMCcsIHY9JzIxLjAzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YxYjIwJywgdj0nMjIuOTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjI5MzAnLCB2PScyMC44OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMzc0MCcsIHY9JzIyLjIzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y0NTUxJywgdj0nMjIuNTE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjUzNjEnLCB2PScyNC4xNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNjE3MicsIHY9JzIzLjAwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2ZjgwJywgdj0nMjMuNDc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjdkOTEnLCB2PScyMi4wNTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOGJhMScsIHY9JzE4LjY3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y5OWIxJywgdj0nMTguNDQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmE3YzAnLCB2PScxNS44NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9JzE2LjM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmMzZTAnLCB2PScxNS4xNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDFmYicsIHY9JzEyLjMzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlMDBiJywgdj0nMTIuMjgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMWMnLCB2PSc4Ljk0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZmYzJjJywgdj0nOC44MzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDBhM2InLCB2PSc4Ljc5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMTg0YycsIHY9JzEwLjA0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMjY1YicsIHY9JzEzLjkzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMzQ2YycsIHY9JzE1Ljk3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNDI3YicsIHY9JzE5LjE2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNTA4ZCcsIHY9JzIyLjIzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNWU5ZCcsIHY9JzIxLjUzMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNmNhZCcsIHY9JzIzLjMwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwN2FiZCcsIHY9JzIwLjMzMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwODhjZCcsIHY9JzE4LjU1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwOTZkZScsIHY9JzIwLjE2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYTRlZCcsIHY9JzE5Ljk3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjJmZScsIHY9JzIxLjE1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYzEwZCcsIHY9JzIzLjk2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwY2YxZScsIHY9JzIxLjg3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZGQyZScsIHY9JzE5LjU5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZWI2NicsIHY9JzIwLjIzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZjk0ZScsIHY9JzE3LjMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEwNzVlJywgdj0nMTYuNTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTExNTZkJywgdj0nMTMuMjE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEyMzg4Jywgdj0nMTIuMjcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzMTg3Jywgdj0nOC45NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTNmYjAnLCB2PSc4LjMxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNGRhNicsIHY9JzguMzU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE1YmI2Jywgdj0nOC40OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNjljNicsIHY9JzEwLjQ1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNzdkNicsIHY9JzEzLjk5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExODVlOCcsIHY9JzE1LjQ2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTNmNycsIHY9JzE4LjMzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYTIwOCcsIHY9JzIyLjI4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYjAxNycsIHY9JzE5LjE1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9JzIzLjQ2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExY2MzNycsIHY9JzIwLjIxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZGE0NycsIHY9JzE5LjgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFlODU3Jywgdj0nMjAuOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZjY2NycsIHY9JzE4LjA0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMDU3OCcsIHY9JzAuMDE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIxMzg2Jywgdj0nMC4wMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMjE5NicsIHY9JzAuMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjJmYTYnLCB2PScwLjAxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyM2RiNScsIHY9JzAuMDE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI0YmM1Jywgdj0nMC4wMTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjU5ZDUnLCB2PScwLjAxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNjdlNCcsIHY9JzAuMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjc2MDAnLCB2PScwLjAwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyODMwNScsIHY9JzAuMDA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTE1Jywgdj0nMC4wMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjlmMjUnLCB2PScwLjAwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYWQzNScsIHY9JzAuMDA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJiYjQ1Jywgdj0nMC4wMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmM5NTQnLCB2PScwLjAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJkNzY2Jywgdj0nMC4wMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmU1NzUnLCB2PScwLjAxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZjM4NicsIHY9JzAuMDEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMwMTk2Jywgdj0nMC4wMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzBmYTYnLCB2PScwLjAxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMWRiNycsIHY9JzAuMDE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMyYmM1Jywgdj0nMC4wMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzM5ZDQnLCB2PScwLjI2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNDdlNScsIHY9JzAuMTI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NWY0Jywgdj0nMC4xNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNjQwNCcsIHY9JzAuMjI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM3MjE0Jywgdj0nMC4yNDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzgwMjQnLCB2PScwLjIzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzAuMjM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nMC4wNzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2FhNTQnLCB2PScwLjA4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzAuMDMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nMC40MTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2Q0OGUnLCB2PScwLjE5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZTI5ZScsIHY9JzAuMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2YwYWUnLCB2PScwLjE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmZWJmJywgdj0nMC4yMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDBjY2YnLCB2PScwLjMwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MWFkZicsIHY9JzAuMjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQyOGVmJywgdj0nMC4wMzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2ZmYnLCB2PScwLjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NDUwZicsIHY9JzAuMDU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ1MzFmJywgdj0nMC4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDYxMzAnLCB2PScwLjAyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NmY0MCcsIHY9JzAuMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDdkNDQnLCB2PScwLjAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ4YjU3Jywgdj0nMC4wMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDk5NjUnLCB2PScwLjAyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YTc3NScsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRiNTg0Jywgdj0nMC4wODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGMzOTcnLCB2PScwLjI1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZDFhNCcsIHY9JzAuMjI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRkZmI2Jywgdj0nMC4xOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGVkYzUnLCB2PScwLjEwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZmJkNScsIHY9JzAuMDQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUwOWU1Jywgdj0nMC4wMjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTE3ZmYnLCB2PScwLjA2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MjYwNScsIHY9JzAuMTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUzNDE1Jywgdj0nMC4xMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTQyMjUnLCB2PScwLjA5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NTAzNScsIHY9JzAuMTI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU1ZTQ1Jywgdj0nMC4xODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTZjNTUnLCB2PScwLjI4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1N2E2NScsIHY9JzAuMTYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU4ODc1Jywgdj0nMC4xNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1OTY4NicsIHY9JzAuMjQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVhNDk1Jywgdj0nMC4yMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWIyYTYnLCB2PScwLjE4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YzBiNicsIHY9JzAuMTA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjZWM2Jywgdj0nMC4wOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWRjZDUnLCB2PScwLjA5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZWFlNicsIHY9JzAuMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmOGY1Jywgdj0nMC4yOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MDcwNicsIHY9JzAuMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjE1MTcnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MjMyNicsIHY9JzAuMDcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzMTM3Jywgdj0nMC4wNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjNmNDYnLCB2PScwLjEwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NGQ1NycsIHY9JzAuMDQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY1YjY3Jywgdj0nMC4wMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjY5ODInLCB2PScwLjA1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Nzc4NicsIHY9JzAuMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjg1OTYnLCB2PScwLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2OTNhNicsIHY9JzAuMDI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZhMWI1Jywgdj0nMC4wMjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmFmYzYnLCB2PScwLjA3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YmRkNScsIHY9JzAuMTc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZjYmU2Jywgdj0nMC4yMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5ZjYnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZTgwNycsIHY9JzAuNTc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZmNjE2Jywgdj0nMC42MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzA0MjknLCB2PScwLjY3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MTIzNicsIHY9JzAuNDU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyMDQ3Jywgdj0nMC40NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzJlNTcnLCB2PScwLjQ3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3M2M2NycsIHY9JzAuNDg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc0YTc3Jywgdj0nMC41NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzU4ODcnLCB2PScwLjU5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NjY5NCcsIHY9JzM0LjM3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9JzMzLjA1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ODJiMycsIHY9JzM0LjE5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OTBjNScsIHY9JzMxLjE0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OWVkNCcsIHY9JzI2LjczNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YWNlNCcsIHY9JzI2Ljg4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmFmZCcsIHY9JzI4LjA0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YzkwZicsIHY9JzI1LjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcxZScsIHY9JzI0LjgyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZTUyZicsIHY9JzI1LjEyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZjMzZicsIHY9JzIyLjk3OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MDE0ZicsIHY9JzIyLjk2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MGY1ZicsIHY9JzI4LjA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgxZDZlJywgdj0nMzAuNjA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgyYjdmJywgdj0nMzUuMTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgzOThmJywgdj0nNjEuMDc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nNjEuMTE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg1NWFmJywgdj0nNTguMjE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg2M2MwJywgdj0nNTQuMTQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3MWNmJywgdj0nNTYuMTQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3ZmUwJywgdj0nNTMuNzU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg4ZGVmJywgdj0nNTcuMTg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YzAwJywgdj0nNTMuNTk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThiODBkJywgdj0nMzYuMjY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThjNjFjJywgdj0nMzYuNjI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThkNDJjJywgdj0nMzUuMTAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThlMjNiJywgdj0nMjkuODU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmMDRiJywgdj0nMjguMzA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmZTVlJywgdj0nMjUuMzY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkwYzc2Jywgdj0nMTkuOTk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkxYTg2Jywgdj0nMTkuNzQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkyODk2Jywgdj0nMTkuMzQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkzNmE2Jywgdj0nMTguODczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk0NGI3Jywgdj0nMTguMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTUyYzYnLCB2PScyMC4wMzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTYwZDcnLCB2PScyNS4xMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTZlZTYnLCB2PScyNy41MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTdjZjgnLCB2PScyOS40NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOThiMGYnLCB2PScyNy4zNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTk5MWYnLCB2PSczMC41NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWI1NDEnLCB2PScyOS45NjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWMzNGQnLCB2PScyOC4zMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWQxNWUnLCB2PScyOC4xMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWRmODAnLCB2PScyOC44NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVkOTAnLCB2PScyOC4yNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVlYmUnLCB2PScyOC4zOTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWZiOGUnLCB2PScxMS4wMTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PScxNC4xNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTE3YWUnLCB2PScxOS4xMzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTI1YmUnLCB2PScyMC4yOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMzNjZCcsIHY9JzExLjI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0MWRkJywgdj0nMTIuMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTRmZWQnLCB2PScxNi41NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVlMDgnLCB2PScxNS4xNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNmMwNScsIHY9JzkuOTUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE3YTE1Jywgdj0nMTIuNzMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE4ODI2Jywgdj0nMTIuOTU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjM3Jywgdj0nOS42ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWE0NDUnLCB2PSc2LjgwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYjI1NScsIHY9JzQuNTU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjMDY1Jywgdj0nMTAuNjMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjZTc1Jywgdj0nMTQuNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWRjODcnLCB2PScxNC4xODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWVhOTYnLCB2PScxMy43MTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWY4YTcnLCB2PScxNS4wNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjA2YjcnLCB2PScxMy4yMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjE0YzYnLCB2PScxMi43NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzc0NjAnLCB2PSczLjk5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjODI3MCcsIHY9JzIuMTg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nMTYuNTg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nMTQuMzc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNhY2EyJywgdj0nMTYuMDQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNiYWIxJywgdj0nMTUuNzk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNjOGMxJywgdj0nMjkuMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2Q2ZDAnLCB2PScyNy42MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2U0ZGUnLCB2PScyNS40NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2YyZjAnLCB2PScyNC4zNjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAxMDknLCB2PScyNS4zNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDBmMDYnLCB2PScyOC42ODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDFkMTUnLCB2PScyOC4zNzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDJiMjUnLCB2PScyOC44MDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDM5MzUnLCB2PSczMC4wNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDQ3NDUnLCB2PSczMC42NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDU1NTUnLCB2PSczMC4zNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDYzNjYnLCB2PScyNC45MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDcxNzUnLCB2PScyMy44MTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDdmODYnLCB2PScyMy44MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDhkOTUnLCB2PScxNS4xNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDliYTYnLCB2PScxNi42OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYTliNicsIHY9JzE2LjM4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYjdjNycsIHY9JzE1LjY0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9JzE2LjI2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZDNlNicsIHY9JzE2LjY4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZTFmNScsIHY9JzI3Ljg5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZjAwNicsIHY9JzMxLjQ0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9JzMxLjIzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMGMyNicsIHY9JzMyLjAwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMWEzNicsIHY9JzMxLjk5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9JzMwLjY2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMzY1OScsIHY9JzI5LjE4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNDQ2NycsIHY9JzI3LjE5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9JzIzLjc5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNjA4NicsIHY9JzIzLjU2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNmU5NicsIHY9JzIzLjAzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9JzguNTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nNy45MTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTk4YzYnLCB2PSc3Ljg1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9JzkuODQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWViNGU2Jywgdj0nMTAuMTc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMmY2Jywgdj0nMTEuNzMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkMTA2Jywgdj0nMTEuNTU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkZjE2Jywgdj0nMTIuMDY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVlZDI2Jywgdj0nMTEuNzI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVmYjM2Jywgdj0nMTEuNDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYwOTQ2Jywgdj0nMTAuODUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzU2Jywgdj0nMTAuOTI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYyNTY2Jywgdj0nMTAuOTg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYzMzc2Jywgdj0nMTMuNjI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY0MTg3Jywgdj0nMTkuMzk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY0Zjk2Jywgdj0nMTYuMzI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY1ZGE3Jywgdj0nMTUuODQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY2YmI2Jywgdj0nMTUuNzg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY3OWM3Jywgdj0nMTQuMzE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY4N2Q2Jywgdj0nMTUuNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjk1ZTcnLCB2PScxNi4yOTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmE0MDEnLCB2PScxMy4zODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PScxMS43NTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmMwMTYnLCB2PScxMS42OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmNlMjUnLCB2PSc5LjI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZkYzM1Jywgdj0nOC45NjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmVhNDUnLCB2PSc5LjQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZmODU1Jywgdj0nMTEuMjk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAwNjY1Jywgdj0nMTguMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDE0NzUnLCB2PScxNS45ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDIyODYnLCB2PScyMy4zNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDMwOTUnLCB2PScyNi4wNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDNlYTUnLCB2PScyOS4yODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDRjYjYnLCB2PScyNS44NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDVhYzYnLCB2PScyNS4yMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDY4ZDYnLCB2PScyNi40MDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDc2ZTYnLCB2PSczMC4wNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDg0ZjYnLCB2PScyOC40MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDkzMDYnLCB2PSczMC4yNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGExMTYnLCB2PScyOC41NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGFmMjYnLCB2PScyNC41NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGJkMzcnLCB2PScyMy45NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGNiNDYnLCB2PScyMS4yNDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGQ5NTcnLCB2PScxOS42MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGU3NjcnLCB2PScxOC4wMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGY1ODEnLCB2PScxNy43OTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTAzODYnLCB2PScxNS4zMDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTExOTQnLCB2PScxMy40NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTFmYTUnLCB2PScxMy4wNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTJkYjUnLCB2PScxMi44NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTNiYzUnLCB2PScxMy41NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTQ5ZDYnLCB2PScxNy4yNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNTdlNScsIHY9JzIxLjA0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjVmNicsIHY9JzI1LjgzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNzQwNicsIHY9JzI3Ljc5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxODIxNycsIHY9JzI4LjA1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOTAyNicsIHY9JzI3LjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE5ZTM5Jywgdj0nMjguNDU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFhYzQ2Jywgdj0nMjcuNzI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTU3Jywgdj0nMjcuOTIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFjODY3Jywgdj0nMjguMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWQ2NzcnLCB2PScyNy41MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWU0ODcnLCB2PScyNi4yNTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWYyOTYnLCB2PScyNS45NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjAwYTYnLCB2PScyNC42NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjBlYjcnLCB2PScyNC4zODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjFjYzYnLCB2PScyMi43NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjJhZDcnLCB2PScxNy43NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjM4ZTcnLCB2PScxNi4xMTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ3MDEnLCB2PScxNC41NDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjU1MDUnLCB2PScxOC40MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjYzMTUnLCB2PScxMC4xNDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjcxMjUnLCB2PScxMC42NDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjdmMzUnLCB2PScxMy4wNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjhkNDUnLCB2PScxNy4wODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjliNTQnLCB2PScxNS43MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmE5NjUnLCB2PScxNy42MjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmI3NzYnLCB2PScyMS4wODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmM1ODYnLCB2PScyNC4yOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmQzOTcnLCB2PScyNi44MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmUxYTYnLCB2PScyNy4wNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZWZiNicsIHY9JzIyLjA5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZmRjNycsIHY9JzIxLjUxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9JzIwLjkyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMTllNicsIHY9JzI1LjA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMjdmNicsIHY9JzI1Ljk1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzI3LjY0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNDQxNicsIHY9JzI1LjU3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNTIyNicsIHY9JzI0LjE5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNjAzNycsIHY9JzIzLjgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM2ZTQ2Jywgdj0nMjIuNzE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM3YzU3Jywgdj0nMjAuOTUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM4YTY2Jywgdj0nMTguMzgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM5ODgxJywgdj0nMTQuOTI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNhNjg1Jywgdj0nMTQuODU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNiNDk1Jywgdj0nMTQuMDgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNjMmE0Jywgdj0nMTMuMzA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkMGI1Jywgdj0nMTMuNzI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkZWM0Jywgdj0nMTUuMDcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNlY2Q1Jywgdj0nMTcuMDY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNmYWU0Jywgdj0nMjAuNjEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwOGY2Jywgdj0nMjQuODkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQxNzA2Jywgdj0nMzIuOTQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQyNTE4Jywgdj0nMzQuMjQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQzMzI1Jywgdj0nMzQuNzg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0MTM3Jywgdj0nMzEuMTc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0ZjQ2Jywgdj0nMjkuODA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ2YjY2Jywgdj0nMzAuNTY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ3OTc2Jywgdj0nMjkuMTc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ4Nzg2Jywgdj0nMzQuOTIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ5NTdlJywgdj0nMjguNzY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRhMzhmJywgdj0nMjUuNzk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiMTljJywgdj0nMjYuMTYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiZmFjJywgdj0nMjQuNzY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRjZGJjJywgdj0nMjQuMDUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRkYmNkJywgdj0nMjAuMjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5ZTUnLCB2PScxOC4yMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9JzE1LjM0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MDYxNicsIHY9JzE1Ljk1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MTQyNicsIHY9JzE1Ljg4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MjIzNicsIHY9JzE1LjA1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MzA0NycsIHY9JzE2LjAxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1M2U1NicsIHY9JzE5LjU3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NGM2NycsIHY9JzIwLjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NWE3NicsIHY9JzIzLjkzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Njg4NycsIHY9JzI5LjI3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NzY5NycsIHY9JzMxLjY5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ODRhOCcsIHY9Jzc1LjE1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1OTJiNicsIHY9JzQxLjQ1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YTBjNycsIHY9JzIxLjIyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YWVkNycsIHY9JzI5LjQxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YmNlNycsIHY9JzI4LjU5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2FmOCcsIHY9JzI3LjI1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZDkwNycsIHY9JzI4LjkyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZTcxOCcsIHY9JzI5LjM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVmNTI3Jywgdj0nMjYuNTU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nMjUuMjM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxMTQ5Jywgdj0nMjMuMzEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxZjU5Jywgdj0nMjEuMzE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYyZDY4Jywgdj0nMjAuNzYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYzYjgzJywgdj0nMTYuMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjQ5ODYnLCB2PScxNS42NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjU3OTUnLCB2PScxNi42MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjY1YTYnLCB2PScxNy44ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjczYjUnLCB2PScxNi44NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjgxYzYnLCB2PScxNi42MTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjhmZDUnLCB2PScxNy40MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjlkZTYnLCB2PScxOC4yMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmFiZjYnLCB2PScxOC40MTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmJhMDYnLCB2PScyMi4xMjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmM4MTcnLCB2PScyMi4xMjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmQ2MmInLCB2PScyNS43ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmU0MzYnLCB2PScyMi43NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmYyNDcnLCB2PScyMi43NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzAwNTcnLCB2PScyMi45MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNjcnLCB2PScyMy4xMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzFjNzcnLCB2PScyMS41NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzJhODcnLCB2PScyMy41MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzM4OTcnLCB2PScyMy4xMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzQ2YTgnLCB2PScyMi43MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzU0YjknLCB2PScyMi4zMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzYyYzcnLCB2PScyMy4yMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzcwZDgnLCB2PScxOC4yMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzdlZTcnLCB2PScxNC4xMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nOTgxMicsIGg9JzNkYzFhOGRlJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzExNC4wODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDgnLCB2PScxMTcuMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzMyJywgdj0nMTE4Ljk2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhM2MnLCB2PScxMjAuNTY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzgzNScsIHY9JzExOC43NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjQ1Jywgdj0nMTE2LjUyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NTUnLCB2PScxMDkuMzg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2NScsIHY9JzEyMS4zNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDc1Jywgdj0nMTE5LjAxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlODUnLCB2PScxMTYuMjI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5NicsIHY9JzEyMC4xNzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWE1Jywgdj0nMTIwLjk0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YjYnLCB2PScxMjQuMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2YzUnLCB2PScxMjQuMDQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkNycsIHY9JzExNy43NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMzBiJywgdj0nMTE4LjA5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwZjYnLCB2PScxMTguMzU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwNicsIHY9JzExOC42MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDE3Jywgdj0nMTE4LjQ5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjI3Jywgdj0nMTIxLjI0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTM3Jywgdj0nMTIyLjI3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzQ2Jywgdj0nMTE5LjY4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTU2Jywgdj0nMTIxLjE2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzY2Jywgdj0nMTI1LjY4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nMTI3LjUxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Zjg1Jywgdj0nMTE5LjUwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDk1Jywgdj0nMTIxLjI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYTQnLCB2PScxMjEuMjYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YjUnLCB2PScxMjAuNTk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3YzQnLCB2PScxMTguNzI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZDUnLCB2PScxMjYuOTEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIzZTYnLCB2PScxMjUuOTg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMxZjYnLCB2PScxMjQuOTcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwMDUnLCB2PScxMjEuNzIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMTUnLCB2PScxMjIuMjMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMjUnLCB2PScxMjIuODM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhMzYnLCB2PScxMjQuMTI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NDUnLCB2PScxMjUuMTA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NTYnLCB2PScxMjUuMjY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NjUnLCB2PScxMjUuMzgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyNzYnLCB2PScxMjMuNjg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwODYnLCB2PScxMTkuNDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOTknLCB2PScxMTkuMTY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYTcnLCB2PScxMjAuMzM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYjcnLCB2PScxMTkuODM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc4YzYnLCB2PScxMjAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjg2ZDYnLCB2PScxMjIuMDc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjk0ZTYnLCB2PScxMjUuNTQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDEnLCB2PScxMjUuNjM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmIxMDUnLCB2PScxMTcuMzk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PScxMTguODA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmNkMjUnLCB2PScxMTkuNjQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmRiMzUnLCB2PScxMTkuNjc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmU5NDYnLCB2PScxMTcuNTQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmY3NTUnLCB2PScxMTMuMjI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzA1NjYnLCB2PScxMjUuMTUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzEzNzUnLCB2PScxMjQuNjkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzIxOWUnLCB2PScxMjMuNTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzJmOTYnLCB2PScxMjMuMjMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzNkYTYnLCB2PScxMjMuNDA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzRiYjYnLCB2PScxMjMuOTMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzU5ZGUnLCB2PScxMjMuMzI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzY3ZDYnLCB2PScxMjIuNjQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzc1ZTYnLCB2PScxMjEuNTQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzg0MGUnLCB2PScxMTguMjA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzkyMWUnLCB2PScxMTguNjc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2EwMTYnLCB2PScxMTguMzI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2FlMjcnLCB2PScxMjEuODkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2JjMzYnLCB2PScxMjAuNzExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2NhNDcnLCB2PScxMTkuODU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Q4NTYnLCB2PScxMjAuMTY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2U2NjcnLCB2PScxMjIuOTk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Y0ODEnLCB2PScxMjYuNTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDAyODUnLCB2PScxMjQuMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDEwOTUnLCB2PScxMjQuODc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDFlYTUnLCB2PScxMjUuMjQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDJjYjUnLCB2PScxMjUuMDgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDNhYzUnLCB2PScxMjMuMTgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDQ4ZDUnLCB2PScxMTkuMzExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDU2ZTYnLCB2PScxMjIuNTI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0ZjUnLCB2PScxMjEuMTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDgwZmYnLCB2PScxMTguNjk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDhmMGUnLCB2PScxMTcuNTU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDlkMWQnLCB2PScxMTguOTQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGFiNDYnLCB2PScxMTguNzk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGI5NTUnLCB2PScxMTcuMDQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGM3NjknLCB2PScxMTYuMTgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGQ1NzcnLCB2PScxMTkuMTAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGUzODcnLCB2PScxMTkuMTUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGYxOTYnLCB2PScxMTYuODE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGZmYTYnLCB2PScxMTguOTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTBkZDAnLCB2PScxMjAuODQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTFiYzYnLCB2PScxMTkuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTI5ZDYnLCB2PScxMjAuODAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTM3ZTcnLCB2PScxMjMuMDk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PScxMjUuOTIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTU0MDYnLCB2PScxMjIuMDgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTYyMTUnLCB2PScxMjMuMDAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PScxMjMuMDMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTdlMzYnLCB2PScxMjIuOTcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNThjNDYnLCB2PScxMjAuNzE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PScxMjEuNTk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWE4NjcnLCB2PScxMjAuOTc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWI2NzYnLCB2PScxMTkuMDM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWM0ODcnLCB2PScxMTUuNzk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWQyOTYnLCB2PScxMTkuOTEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWUwYTknLCB2PScxMjAuMjg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWVlYjgnLCB2PScxMTkuNDUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWZjYzYnLCB2PScxMTguMzI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjBhZDcnLCB2PScxMTcuMTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjE4ZTcnLCB2PScxMTcuMjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2ZjcnLCB2PScxMjAuMTQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjM1MDcnLCB2PScxMTcuNTM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjQzMTcnLCB2PScxMTguOTAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PScxMjAuMDk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjVmMzcnLCB2PScxMjEuNDM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjZkNDYnLCB2PScxMjEuOTg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjdiNTcnLCB2PScxMjAuNjgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjg5NjcnLCB2PScxMjIuODYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjk3ODInLCB2PScxMTkuMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YTU4NicsIHY9JzEyMC44NDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YjM5NScsIHY9JzEyMi4xMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YzFhNicsIHY9JzEyMi41MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2Y2ZiNScsIHY9JzEyMS40NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZGRjNicsIHY9JzExOC45MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZWJkNicsIHY9JzExNi4zNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZjllNicsIHY9JzEyMS4zMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDdmNicsIHY9JzExOS40MTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MTYwNycsIHY9JzExOC4yODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MjQxNycsIHY9JzExOC4xNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MzIyNycsIHY9JzExNy44MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NDAzNycsIHY9JzEyMS42OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NGU0NycsIHY9JzEyMC43NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NWM1NycsIHY9JzExOC42NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NmE2MycsIHY9JzExOC4wOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc3ODczJywgdj0nMTE4LjI4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc4NjgwJywgdj0nMTEzLjkxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc5NDhmJywgdj0nMTE2Ljk0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdhMjlmJywgdj0nMTE5LjUwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiMGFmJywgdj0nMTE5LjA3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiZWJmJywgdj0nMTIxLjE0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdjY2NmJywgdj0nMTIxLjMzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdkYWRmJywgdj0nMTIyLjA5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlOGZhJywgdj0nMTIxLjc4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdmNzBhJywgdj0nMTI0LjA2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgwNTFhJywgdj0nMTI1LjQ1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgxMzJhJywgdj0nMTI2LjAxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyMTNhJywgdj0nMTI1LjAxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyZjRhJywgdj0nMTIyLjc0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgzZDVhJywgdj0nMTIwLjI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODRiNmEnLCB2PScxMTguODU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODU5N2EnLCB2PScxMTguODE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODY3OGInLCB2PScxMTcuODA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODc1OWInLCB2PScxMTcuNDQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODgzYWMnLCB2PScxMTkuOTY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODkxYmInLCB2PScxMjEuMTQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODlmY2EnLCB2PScxMjAuMjU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGFkZGEnLCB2PScxMTguNTU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGJiZWInLCB2PScxMTguODEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5ZmMnLCB2PScxMTguNjMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGQ4MGInLCB2PScxMTguOTQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGU2MWEnLCB2PScxMTcuMzE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGY0MmEnLCB2PScxMTguMTQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTAyM2EnLCB2PScxMjAuMTIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTEwNGEnLCB2PScxMjAuNTYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTFlNWEnLCB2PScxMTguNjM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTJjNmEnLCB2PScxMjIuODQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTNhODQnLCB2PScxMjUuMTUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTQ4ODUnLCB2PScxMjMuNDYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTU2OTQnLCB2PScxMjIuNzkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTY0YTUnLCB2PScxMjMuMDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTcyYjQnLCB2PScxMjIuNTM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTgwYzUnLCB2PScxMjAuMTg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOThlZDQnLCB2PScxMjMuMDk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTljZTUnLCB2PScxMTkuMzM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhZjUnLCB2PScxMTguNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzliOTA2Jywgdj0nMTE1Ljc0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzljNzE2Jywgdj0nMTE5LjcyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlkNTI2Jywgdj0nMTIwLjIyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzllMzM2Jywgdj0nMTE4LjkxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmMTQ1Jywgdj0nMTE3LjU1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmZjU2Jywgdj0nMTE2LjY0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EwZDY1Jywgdj0nMTE2LjUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTFiNzcnLCB2PScxMTYuNzAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTI5ODYnLCB2PScxMTguODA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTM3OTUnLCB2PScxMTguNDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTQ1YTcnLCB2PScxMTkuNTkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTUzYjYnLCB2PScxMTkuNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNjFjNycsIHY9JzExOS45NzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNmZkNicsIHY9JzEyMC43NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhN2UwMCcsIHY9JzEyMi43ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGMwMCcsIHY9JzEyNS40NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOWEwNScsIHY9JzExOC4yNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYTgxNScsIHY9JzExOS4zMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYjYyNScsIHY9JzEyMC4xNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYzQzNScsIHY9JzExOS42NzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZDI0NScsIHY9JzExNy4xMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZTA1NScsIHY9JzExNC42ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZWU2NScsIHY9JzEyMC44NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZmM3NScsIHY9JzExOS4wOTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMGE4NScsIHY9JzExNi42MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMjZhNicsIHY9JzExNi43MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMzRiNicsIHY9JzExOC4wNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNDJjNicsIHY9JzExNS40NzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNTBkNicsIHY9JzExNS44OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNWVlNycsIHY9JzExNC4yNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2Y2Y2Jywgdj0nMTIyLjc5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I3YjA3Jywgdj0nMTE5LjAwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I4OTE3Jywgdj0nMTE4LjcwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I5NzI4Jywgdj0nMTE5LjYwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JhNTM3Jywgdj0nMTIwLjk2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JiMzQ3Jywgdj0nMTE5LjkyNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjMTU3Jywgdj0nMTIwLjYyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjZjY3Jywgdj0nMTIzLjEyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JkZDgxJywgdj0nMTE4LjY4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JlYjg2Jywgdj0nMTE4LjMwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JmOTk1Jywgdj0nMTE4Ljg4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MwN2E2Jywgdj0nMTIwLjE4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MxNWI1Jywgdj0nMTE5LjU3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MyM2M2Jywgdj0nMTE4LjI0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzMWQ1Jywgdj0nMTE1LjY5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzZmU2Jywgdj0nMTE3LjU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkZjUnLCB2PScxMTYuMDU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzVjMDYnLCB2PScxMTcuNDExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzZhMTYnLCB2PScxMTcuNDg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzc4MjYnLCB2PScxMTYuNzQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzg2MzYnLCB2PScxMTguMjY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzk0NDYnLCB2PScxMTguMjAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2EyNTYnLCB2PScxMTguMDA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2IwNjYnLCB2PScxMTcuMjU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2JlNzYnLCB2PScxMjIuNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjY2M4NycsIHY9JzExOC43MzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZGE5NicsIHY9JzExNi43MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZThhOCcsIHY9JzExOC4zMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZjZiNycsIHY9JzExOC42NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QwNGM4Jywgdj0nMTE5LjcwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QxMmQ3Jywgdj0nMTIxLjUzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyMGU3Jywgdj0nMTIzLjQxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyZjAyJywgdj0nMTI2LjE4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzZDA1Jywgdj0nMTE5LjMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMTUnLCB2PScxMjAuNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNTkyNicsIHY9JzEyMC44NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzExOS41ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNzU0NicsIHY9JzExNy40MjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkODM1NScsIHY9JzEyNC4zNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOTE2NicsIHY9JzEyMi40MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOWY3NScsIHY9JzEyMC42OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYWQ4NycsIHY9JzExNy4yMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYmI5NycsIHY9JzExNi44NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYzlhOCcsIHY9JzExNi43MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZDdiNycsIHY9JzExOC4yMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZTVjNicsIHY9JzExNy44NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZjNkNycsIHY9JzExNy4xNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDFkNycsIHY9JzExNy4yNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGZlNScsIHY9JzExNi43OTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMWRmNScsIHY9JzExNy4zNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMmMwNCcsIHY9JzExOS43NjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlM2ExNCcsIHY9JzEyMS4wNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U0ODI0Jywgdj0nMTIwLjkyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U1NjM0Jywgdj0nMTIyLjQ5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U2NDQ0Jywgdj0nMTIwLjY3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U3MjU1Jywgdj0nMTIyLjY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTgwNmYnLCB2PScxMjMuNzc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZThlN2YnLCB2PScxMTYuNjU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTljOGUnLCB2PScxMTguMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWFhOWYnLCB2PScxMTguMzcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWI4YWUnLCB2PScxMTcuNTI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWM2YmYnLCB2PScxMTMuNTE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWQ0Y2UnLCB2PScxMjMuNDk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWUyZGYnLCB2PScxMjAuNjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwZWYnLCB2PScxMTguNzA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWZmMDEnLCB2PScxMTUuNjUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjBkMTAnLCB2PScxMTcuNDg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjFiMjAnLCB2PScxMTcuMTg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjI5MzAnLCB2PScxMjEuMTE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjM3NDAnLCB2PScxMTcuNjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjQ1NTEnLCB2PScxMTcuODkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjUzNjEnLCB2PScxMTcuNzE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjYxNzInLCB2PScxMTcuNTg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjZmODAnLCB2PScxMTcuMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmN2Q5MScsIHY9JzExOS4yMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOGJhMScsIHY9JzEyMS4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOTliMScsIHY9JzEyMC4yMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYTdjMCcsIHY9JzExOC4zNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9JzExOC4yMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYzNlMCcsIHY9JzEyMy4wMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDFmYicsIHY9JzEyMy4wMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZTAwYicsIHY9JzEyNi4yOTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZWUxYycsIHY9JzEyMy42ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZmMyYycsIHY9JzEyMy41OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDBhM2InLCB2PScxMjIuOTE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAxODRjJywgdj0nMTIxLjM4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMjY1YicsIHY9JzExNy41ODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDM0NmMnLCB2PScxMTcuNzE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA0MjdiJywgdj0nMTE5LjE5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNTA4ZCcsIHY9JzExNy4zNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDVlOWQnLCB2PScxMTcuODYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA2Y2FkJywgdj0nMTE3LjUzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwN2FiZCcsIHY9JzExOS44ODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDg4Y2QnLCB2PScxMTkuNDI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA5NmRlJywgdj0nMTE4LjcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBhNGVkJywgdj0nMTE5LjAwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjJmZScsIHY9JzExOC43MjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGMxMGQnLCB2PScxMTYuMTk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBjZjFlJywgdj0nMTE4LjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZGQyZScsIHY9JzExOS4wMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGViNjYnLCB2PScxMjAuOTYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBmOTRlJywgdj0nMTIxLjM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEwNzVlJywgdj0nMTE5LjE1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMTU2ZCcsIHY9JzEyMC43OTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTIzODgnLCB2PScxMjMuNTE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzMTg3Jywgdj0nMTIyLjM2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExM2ZiMCcsIHY9JzEyMy4zODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTRkYTYnLCB2PScxMjMuMjk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE1YmI2Jywgdj0nMTIzLjA0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNjljNicsIHY9JzEyMC44NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTc3ZDYnLCB2PScxMTguMDE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE4NWU4Jywgdj0nMTE4LjM4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTNmNycsIHY9JzExNy43NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWEyMDgnLCB2PScxMTkuNzYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFiMDE3Jywgdj0nMTIxLjU0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9JzEyMi4wMjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWNjMzcnLCB2PScxMjIuMTk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFkYTQ3Jywgdj0nMTIxLjc4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZTg1NycsIHY9JzEyMC41ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWY2NjcnLCB2PScxMjEuNjg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIwNTc4Jywgdj0nMTIwLjk3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMTM4NicsIHY9JzExNi44MzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjIxOTYnLCB2PScxMTcuNjMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyZmE2Jywgdj0nMTE4LjgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIzZGI1Jywgdj0nMTIwLjc0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNGJjNScsIHY9JzEyMi41NDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjU5ZDUnLCB2PScxMjAuMjQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI2N2U0Jywgdj0nMTIyLjcwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzYwMCcsIHY9JzEyNC41MzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjgzMDUnLCB2PScxMjUuMjg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTE1Jywgdj0nMTI1LjMyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOWYyNScsIHY9JzEyNS40OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYWQzNScsIHY9JzEyNC42NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmJiNDUnLCB2PScxMjIuODEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJjOTU0Jywgdj0nMTIxLjU3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZDc2NicsIHY9JzEyMC43MTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmU1NzUnLCB2PScxMTkuNzA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJmMzg2Jywgdj0nMTE2LjkzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMDE5NicsIHY9JzExNy4yNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzBmYTYnLCB2PScxMTguMzY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMxZGI3Jywgdj0nMTE5LjgyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMmJjNScsIHY9JzExOS42MDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzM5ZDQnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNDdlNScsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NWY0Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzY0MDQnLCB2PScwLjEwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNzIxNCcsIHY9JzAuMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM4MDI0Jywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzhlMzMnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOWM0NCcsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNhYTU0Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2I4NjUnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYzY3ZScsIHY9JzAuMTAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNkNDhlJywgdj0nMC4xMDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2UyOWUnLCB2PScwLjEwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZjBhZScsIHY9JzAuMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmZWJmJywgdj0nMC4xMDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDBjY2YnLCB2PScwLjEwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MWFkZicsIHY9JzAuMTA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQyOGVmJywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2ZmYnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NDUwZicsIHY9JzAuMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ1MzFmJywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDYxMzAnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NmY0MCcsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDdkNDQnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0OGI1NycsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ5OTY1Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGE3NzUnLCB2PScwLjEwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YjU4NCcsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGMzOTcnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZDFhNCcsIHY9JzAuMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRkZmI2Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGVkYzUnLCB2PScwLjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRmYmQ1Jywgdj0nMC4xMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTA5ZTUnLCB2PScwLjExMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTdmZicsIHY9JzAuMTE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUyNjA1Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTM0MTUnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NDIyNScsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTUwMzUnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzAuMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU2YzU1Jywgdj0nMC4xMDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTdhNjUnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzAuMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU5Njg2Jywgdj0nMC4xMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWE0OTUnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YjJhNicsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjMGI2Jywgdj0nMC4xMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWNlYzYnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZGNkNScsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVlYWU2Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWY4ZjUnLCB2PScwLjEwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MDcwNicsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjE1MTcnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MjMyNicsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjMxMzcnLCB2PScwLjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2M2Y0NicsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY0ZDU3Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NWI2NycsIHY9JzAuMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY2OTgyJywgdj0nMC4xMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjc3ODYnLCB2PScwLjExMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ODU5NicsIHY9JzAuMTEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY5M2E2Jywgdj0nMC4xMTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmExYjUnLCB2PScwLjExMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YWZjNicsIHY9JzAuMTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZiZGQ1Jywgdj0nMC4xMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmNiZTYnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDlmNicsIHY9JzAuMTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZlODA3Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZjYxNicsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzA0MjknLCB2PScwLjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MTIzNicsIHY9JzAuMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyMDQ3Jywgdj0nMC4xMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzJlNTcnLCB2PScwLjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3M2M2NycsIHY9JzAuMTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc0YTc3Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NTg4NycsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc2Njk0Jywgdj0nMTE4LjM1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9JzExOS43NjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzgyYjMnLCB2PScxMjAuODcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5MGM1Jywgdj0nMTIxLjQ0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OWVkNCcsIHY9JzEyNC41ODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2FjZTQnLCB2PScxMjcuMTE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYWZkJywgdj0nMTI4Ljg4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YzkwZicsIHY9JzEyNy4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MWUnLCB2PScxMjcuMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZTUyZicsIHY9JzEyNy4zNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZjMzZicsIHY9JzEyNi41NTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODAxNGYnLCB2PScxMjQuNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODBmNWYnLCB2PScxMjQuMDc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgxZDZlJywgdj0nMTI1LjA5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MmI3ZicsIHY9JzEyNS4wMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODM5OGYnLCB2PScxMjMuOTU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nMTIzLjY0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NTVhZicsIHY9JzEyNC4zMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODYzYzAnLCB2PScxMjYuMjAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3MWNmJywgdj0nMTI1LjQyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4N2ZlMCcsIHY9JzEyNS4wNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODhkZWYnLCB2PScxMjQuODY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YzAwJywgdj0nMTIzLjg1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YjgwZCcsIHY9JzExNy4xNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGM2MWMnLCB2PScxMjAuOTg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThkNDJjJywgdj0nMTIxLjY4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZTIzYicsIHY9JzEyMS41MTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGYwNGInLCB2PScxMjMuNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGZlNWUnLCB2PScxMjUuODQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkwYzc2Jywgdj0nMTIzLjE2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MWE4NicsIHY9JzEyNC44NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5Mjg5NicsIHY9JzEyNi40NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTM2YTYnLCB2PScxMjYuNTY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk0NGI3Jywgdj0nMTI1LjgyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NTJjNicsIHY9JzEyMy42NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTYwZDcnLCB2PScxMjAuOTg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk2ZWU2Jywgdj0nMTIxLjAxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2NmOCcsIHY9JzEyMC43NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOThiMGYnLCB2PScxMjAuMTM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk5OTFmJywgdj0nMTIwLjA2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YjU0MScsIHY9JzEyMi40NTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWMzNGQnLCB2PScxMjEuNjAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkMTVlJywgdj0nMTIwLjg1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZGY4MCcsIHY9JzEyMC44ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVkOTAnLCB2PScxMjAuMDQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZWJlJywgdj0nMTE5LjkwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZmI4ZScsIHY9JzExNi4wMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PScxMTkuMjgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWExN2FlJywgdj0nMTIwLjMwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMjViZScsIHY9JzEyMS43MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTMzY2QnLCB2PScxMjEuNTE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0MWRkJywgdj0nMTIyLjg0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNGZlZCcsIHY9JzEyNi4wOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVlMDgnLCB2PScxMjYuNzI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE2YzA1Jywgdj0nMTI0Ljg4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhN2ExNScsIHY9JzEyNS45MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTg4MjYnLCB2PScxMjYuMDk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjM3Jywgdj0nMTI0LjkwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYTQ0NScsIHY9JzEyMy42NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWIyNTUnLCB2PScxMjEuNDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjMDY1Jywgdj0nMTIzLjg5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhY2U3NScsIHY9JzEyMy43NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWRjODcnLCB2PScxMjIuMzY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFlYTk2Jywgdj0nMTIxLjkzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZjhhNycsIHY9JzEyMi4zMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjA2YjcnLCB2PScxMjQuMDQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIxNGM2Jywgdj0nMTIzLjY5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzEyMC4wMjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzgyNzAnLCB2PScxMjAuMDMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nMTE5LjMxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjOWU4ZicsIHY9JzEyMC40NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2FjYTInLCB2PScxMjEuOTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2JhYjEnLCB2PScxMjIuNDg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNjOGMxJywgdj0nMTE4LjU2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZDZkMCcsIHY9JzExOS4zNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2U0ZGUnLCB2PScxMjAuODA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNmMmYwJywgdj0nMTIzLjEwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDEwOScsIHY9JzEyNS4wMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDBmMDYnLCB2PScxMjMuMjc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQxZDE1Jywgdj0nMTIzLjkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQyYjI1Jywgdj0nMTIzLjg3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMzkzNScsIHY9JzEyMi44ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDQ3NDUnLCB2PScxMjIuMDcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ1NTU1Jywgdj0nMTIxLjU0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNjM2NicsIHY9JzEyMy4yNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNzE3NScsIHY9JzEyMy41MTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDdmODYnLCB2PScxMjIuNjA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ4ZDk1Jywgdj0nMTIxLjI4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOWJhNicsIHY9JzEyMS43MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGE5YjYnLCB2PScxMjIuNzE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRiN2M3Jywgdj0nMTIzLjEyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9JzEyMy40MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGQzZTYnLCB2PScxMjIuOTg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMWY1Jywgdj0nMTE5LjI2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZjAwNicsIHY9JzExOC4wODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGZlMTYnLCB2PScxMTYuNTMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUwYzI2Jywgdj0nMTE4LjYxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMWEzNicsIHY9JzExOS43MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTI4NDcnLCB2PScxMjAuODk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nMTIwLjcxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNDQ2NycsIHY9JzEyMS42MjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTUyODEnLCB2PScxMTcuOTI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nMTIwLjkyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNmU5NicsIHY9JzEyMi4zNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9JzEyMi45NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZThhYjUnLCB2PScxMjMuMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTk4YzYnLCB2PScxMjIuNDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWE2ZDUnLCB2PScxMjAuNzM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWViNGU2Jywgdj0nMTIwLjcxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzJmNicsIHY9JzEyMy42ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWQxMDYnLCB2PScxMjIuODUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkZjE2Jywgdj0nMTIyLjc1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZWQyNicsIHY9JzEyMi45NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWZiMzYnLCB2PScxMjMuNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjA5NDYnLCB2PScxMjMuMjc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzU2Jywgdj0nMTIxLjc3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMjU2NicsIHY9JzEyMS40NTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjMzNzYnLCB2PScxMjAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY0MTg3Jywgdj0nMTE2LjgzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNGY5NicsIHY9JzExOS45NDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjVkYTcnLCB2PScxMjAuMDIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY2YmI2Jywgdj0nMTIwLjg4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNzljNycsIHY9JzExOS42MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjg3ZDYnLCB2PScxMjIuODExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY5NWU3Jywgdj0nMTIzLjk5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTQwMScsIHY9JzEyNi42NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PScxMjUuNTc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjMDE2Jywgdj0nMTI2LjQ5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmY2UyNScsIHY9JzEyNi4wMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmRjMzUnLCB2PScxMjUuNTIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZlYTQ1Jywgdj0nMTIzLjEwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZjg1NScsIHY9JzEyMS4wNzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDA2NjUnLCB2PScxMTcuOTk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAxNDc1Jywgdj0nMTE5LjM3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMjI4NicsIHY9JzExOS4zMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDMwOTUnLCB2PScxMjAuMjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDNlYTUnLCB2PScxMjAuNDk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA0Y2I2Jywgdj0nMTIzLjI3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNWFjNicsIHY9JzEyMS4yODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDY4ZDYnLCB2PScxMjAuNDkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA3NmU2Jywgdj0nMTE5LjY0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwODRmNicsIHY9JzExNy42MjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDkzMDYnLCB2PScxMjEuOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYTExNicsIHY9JzEyMC44NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGFmMjYnLCB2PScxMjAuNDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBiZDM3Jywgdj0nMTIxLjUyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwY2I0NicsIHY9JzExOS40NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZDk1NycsIHY9JzEyMC4yODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGU3NjcnLCB2PScxMjEuNzEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBmNTgxJywgdj0nMTI0LjIwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMDM4NicsIHY9JzEyNi41ODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTExOTQnLCB2PScxMjQuNjI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExZmE1Jywgdj0nMTI0LjUyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMmRiNScsIHY9JzEyMy44MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTNiYzUnLCB2PScxMjIuMzU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE0OWQ2Jywgdj0nMTE4LjY0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNTdlNScsIHY9JzExNi42NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1ZjYnLCB2PScxMjIuNDM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE3NDA2Jywgdj0nMTIwLjIzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxODIxNycsIHY9JzExOS4zMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTkwMjYnLCB2PScxMjAuMjM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE5ZTM5Jywgdj0nMTIwLjM0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYWM0NicsIHY9JzExOS4xNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNTcnLCB2PScxMTguOTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFjODY3Jywgdj0nMTE3Ljg3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZDY3NycsIHY9JzEyMi41ODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWU0ODcnLCB2PScxMjAuMjUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFmMjk2Jywgdj0nMTIwLjQ2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMDBhNicsIHY9JzEyMS4zMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjBlYjcnLCB2PScxMjIuMTgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIxY2M2Jywgdj0nMTE4Ljc0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMmFkNycsIHY9JzEyMC44MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMzhlNycsIHY9JzEyMy45MzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ3MDEnLCB2PScxMjYuNjg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI1NTA1Jywgdj0nMTE5LjU1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNjMxNScsIHY9JzExOS43NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjcxMjUnLCB2PScxMTkuNzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nMTE3LjU1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOGQ0NScsIHY9JzExNi4yNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjliNTQnLCB2PScxMjIuNDY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nMTE5Ljc2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYjc3NicsIHY9JzExOS43OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYzU4NicsIHY9JzExOS4wMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmQzOTcnLCB2PScxMTguNjk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJlMWE2Jywgdj0nMTE5LjAxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZWZiNicsIHY9JzEyMC43NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmZkYzcnLCB2PScxMjAuNDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzBiZDcnLCB2PScxMTkuNjA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMxOWU2Jywgdj0nMTE5LjI2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMjdmNicsIHY9JzExOC4yMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzM2MWInLCB2PScxMTkuMjM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM0NDE2Jywgdj0nMTE4LjE5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNTIyNicsIHY9JzExOS41MjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzYwMzcnLCB2PScxMjAuNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzZlNDYnLCB2PScxMTguNDQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM3YzU3Jywgdj0nMTE5Ljg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM4YTY2Jywgdj0nMTIxLjQ1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzEyMC45MzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2E2ODUnLCB2PScxMjIuMzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNiNDk1Jywgdj0nMTIzLjA4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzEyMy4xNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2QwYjUnLCB2PScxMjIuMjc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkZWM0Jywgdj0nMTIxLjE1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzExOS4zMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZmFlNCcsIHY9JzEyMC42MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDA4ZjYnLCB2PScxMTguNDgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQxNzA2Jywgdj0nMTE3Ljc4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MjUxOCcsIHY9JzExOC4xNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDMzMjUnLCB2PScxMTguNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDQxMzcnLCB2PScxMTkuODkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0ZjQ2Jywgdj0nMTE5LjE3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI2NicsIHY9JzExOC44OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Nzk3NicsIHY9JzExOC4wMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ODc4NicsIHY9JzExNS4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ5NTdlJywgdj0nMTE4LjA5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YTM4ZicsIHY9JzExOS42MDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGIxOWMnLCB2PScxMjAuODQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiZmFjJywgdj0nMTIwLjA5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Y2RiYycsIHY9JzEyMy44NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGRiY2QnLCB2PScxMjMuNDk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOWU1Jywgdj0nMTI0LjgwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9JzEyNC4yNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MDYxNicsIHY9JzEyNC45ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTE0MjYnLCB2PScxMjUuMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTIyMzYnLCB2PScxMjMuNDgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nMTIyLjQzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1M2U1NicsIHY9JzEyMC4wNDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTRjNjcnLCB2PScxMTkuNDk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU1YTc2Jywgdj0nMTE5LjM2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Njg4NycsIHY9JzExNy43NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTc2OTcnLCB2PScxMTguNjE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU4NGE4Jywgdj0nMTE3LjI3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1OTJiNicsIHY9JzExOC45NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWEwYzcnLCB2PScxMTkuNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWFlZDcnLCB2PScxMTkuMzMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjViY2U3Jywgdj0nMTE5LjE5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2FmOCcsIHY9JzExOC42MzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWQ5MDcnLCB2PScxMjAuNTM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVlNzE4Jywgdj0nMTE5LjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWY1MjcnLCB2PScxMjAuNDAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nMTIxLjA1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MTE0OScsIHY9JzExOS40MTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjFmNTknLCB2PScxMjAuMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjJkNjgnLCB2PScxMjMuMjAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYzYjgzJywgdj0nMTIxLjE0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NDk4NicsIHY9JzEyMi45NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjU3OTUnLCB2PScxMjMuNjk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY2NWE2Jywgdj0nMTI0LjQ3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NzNiNScsIHY9JzEyMy41OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjgxYzYnLCB2PScxMjMuMTc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4ZmQ1Jywgdj0nMTIxLjg1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2OWRlNicsIHY9JzEyMS4yOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmFiZjYnLCB2PScxMjAuNTkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZiYTA2Jywgdj0nMTE4Ljc2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YzgxNycsIHY9JzExOC4yNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmQ2MmInLCB2PScxMTguNTk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZlNDM2Jywgdj0nMTE5Ljk4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZjI0NycsIHY9JzExOS41MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzAwNTcnLCB2PScxMTkuNTc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTY3Jywgdj0nMTE5LjAxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MWM3NycsIHY9JzExOS43MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzJhODcnLCB2PScxMjAuODc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjczODk3Jywgdj0nMTIwLjY2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NDZhOCcsIHY9JzEyMS40NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzU0YjknLCB2PScxMjEuODM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc2MmM3Jywgdj0nMTE5LjA1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NzBkOCcsIHY9JzEyMS4wMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3N2VlNycsIHY9JzEyMy41NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nOTgwOCcsIGg9JzNkYzFhOGRlJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMzMicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTNjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4MzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NDU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZTg1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2YzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMzBiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Zjg1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OWI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2M0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiM2U2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjMWY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZTE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwODQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMjc2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZTk5Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2E3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3OGM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI4NmQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI5NGU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJiMTA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJiZjE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJjZDI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJkYjM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJlOTQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMwNTY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMxMzc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyMTllJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyZjk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMzZGE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM0YmI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM1OWRlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM2N2Q2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM3NWU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4NDBlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM5MjFlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhMDE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhZTI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNiYzM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNjYTQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNkODU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNlNjY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNmNDgxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQwMjg1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxMDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxZWE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQyY2I1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQzYWM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ0OGQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ1NmU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NGY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ4MGZmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ4ZjBlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ5ZDFkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRhYjQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRiOTU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRjNzY5Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRkNTc3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRlMzg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmMTk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmZmE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUwZGQwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUxYmM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUyOWQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUzN2U3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NjAwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU2MjE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3MDI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3ZTM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU4YzQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU5YTcwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVhODY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzViNjc2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVjNDg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVkMjk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlMGE5Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlZWI4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVmY2M2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYwYWQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYxOGU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNmY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYzNTA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY0MzE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1MTI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1ZjM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY2ZDQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY3YjU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY4OTY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY5NzgyJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZhNTg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZiMzk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZjMWE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZjZmI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZkZGM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZlYmQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZmOWU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcwN2Y2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcxNjA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcyNDE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzczMjI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0MDM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0ZTQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc1YzU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc2YTYzJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc3ODczJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc4NjgwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc5NDhmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdhMjlmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiMGFmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiZWJmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdjY2NmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdkYWRmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlOGZhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdmNzBhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgwNTFhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgxMzJhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyMTNhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyZjRhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgzZDVhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg0YjZhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg1OTdhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg2NzhiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg3NTliJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg4M2FjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5MWJiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5ZmNhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhhZGRhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhiYmViJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOWZjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhkODBiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhlNjFhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhmNDJhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkwMjNhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxMDRhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxZTVhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkyYzZhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkzYTg0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk0ODg1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk1Njk0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk2NGE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk3MmI0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4MGM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4ZWQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk5Y2U1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlhYWY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzliOTA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzljNzE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlkNTI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzllMzM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmMTQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmZjU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EwZDY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ExYjc3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EyOTg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EzNzk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E0NWE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E1M2I2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2MWM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2ZmQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E3ZTAwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YzAwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FhODE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FiNjI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FjNDM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FkMjQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlMDU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlZTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FmYzc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IwYTg1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IyNmE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IzNGI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I0MmM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1MGQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1ZWU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2Y2Y2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I3YjA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I4OTE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I5NzI4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JhNTM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JiMzQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjMTU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjZjY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JkZDgxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JlYjg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JmOTk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MwN2E2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MxNWI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MyM2M2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzMWQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzZmU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M0ZGY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M1YzA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M2YTE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M3ODI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M4NjM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M5NDQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NhMjU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiMDY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiZTc2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NjYzg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NkYTk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NlOGE4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NmNmI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QwNGM4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QxMmQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyMGU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyZjAyJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzZDA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjE1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q1OTI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q2NzM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q3NTQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q4MzU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q5MTY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q5Zjc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RhZDg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RiYjk3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RjOWE4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RkN2I3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RlNWM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RmM2Q3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwMWQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwZmU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UxZGY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UyYzA0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UzYTE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U0ODI0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U1NjM0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U2NDQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U3MjU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4MDZmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4ZTdmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U5YzhlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VhYTlmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ViOGFlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VjNmJmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VkNGNlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VlMmRmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMGVmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmZjAxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YwZDEwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YxYjIwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YyOTMwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YzNzQwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y0NTUxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y1MzYxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2MTcyJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2ZjgwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y3ZDkxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y4YmExJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y5OWIxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZhN2MwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZiNWQxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZjM2UwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMWZiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlMDBiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTFjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZmYzJjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMGEzYicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDE4NGMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAyNjViJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMzQ2YycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDQyN2InLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA1MDhkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNWU5ZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDZjYWQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA3YWJkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwODhjZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDk2ZGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBhNGVkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjJmZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGMxMGQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBjZjFlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZGQyZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGViNjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBmOTRlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMDc1ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTE1NmQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEyMzg4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMzE4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTNmYjAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE0ZGE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNWJiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTY5YzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE3N2Q2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExODVlOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTkzZjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFhMjA4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYjAxNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWJlMmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFjYzM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZGE0NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWU4NTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFmNjY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMDU3OCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjEzODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyMTk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMmZhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjNkYjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI0YmM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNTlkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjY3ZTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NjAwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyODMwNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5ZjI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYWQzNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmJiNDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJjOTU0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZDc2NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmU1NzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJmMzg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMDE5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzBmYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMxZGI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMmJjNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzM5ZDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM0N2U1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTVmNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzY0MDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM3MjE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzODAyNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzhlMzMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYWE1NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2I4NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZDQ4ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2UyOWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmMGFlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZmViZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDBjY2YnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQxYWRmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MjhlZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2ZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ0NTBmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NTMxZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDYxMzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2ZjQwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0N2Q0NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDhiNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ5OTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YTc3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGI1ODQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRjMzk3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZDFhNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGRmYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRlZGM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZmJkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTA5ZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxN2ZmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MjYwNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTM0MTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU0MjI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NTAzNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTVlNDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU2YzU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1N2E2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTg4NzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU5Njg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YTQ5NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWIyYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjMGI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Y2VjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWRjZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVlYWU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZjhmNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjA3MDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYxNTE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MjMyNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjMxMzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzZjQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NGQ1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjViNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY2OTgyJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Nzc4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjg1OTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY5M2E2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YTFiNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmFmYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZiZGQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Y2JlNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5ZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZlODA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZjYxNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzA0MjknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcxMjM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MjA0NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzJlNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTczYzY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NGE3NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzU4ODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc2Njk0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzgyYjMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5MGM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OWVkNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2FjZTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYWZkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YzkwZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdlNTJmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZjMzZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODAxNGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgwZjVmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MWQ2ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODJiN2YnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgzOThmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NDdhMScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODU1YWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg2M2MwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NzFjZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODdmZTAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg4ZGVmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OWMwMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGI4MGQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThjNjFjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZDQyYycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGUyM2InLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmMDRiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZmU1ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTBjNzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkxYTg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5Mjg5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTM2YTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk0NGI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NTJjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTYwZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk2ZWU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2NmOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOThiMGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk5OTFmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YjU0MScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWMzNGQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkMTVlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZGY4MCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVkOTAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZWJlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZmI4ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWExN2FlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMjViZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTMzY2QnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0MWRkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNGZlZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVlMDgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE2YzA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhN2ExNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTg4MjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYTQ0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWIyNTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjMDY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhY2U3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWRjODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFlYTk2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZjhhNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjA2YjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIxNGM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzgyNzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjOWU4ZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2FjYTInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNiYWIxJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYzhjMScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2Q2ZDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNlNGRlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZjJmMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAxMDknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwZjA2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMWQxNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDJiMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQzOTM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNDc0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDU1NTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ2MzY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNzE3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDdmODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ4ZDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOWJhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGE5YjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRiN2M3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGQzZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMWY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZjAwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGZlMTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUwYzI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMWEzNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTI4NDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNDQ2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTUyODEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNmU5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTdjYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlOThjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWE2ZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWViNGU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzJmNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWQxMDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkZjE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZWQyNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWZiMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYwOTQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMTc1NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjI1NjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYzMzc2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNDE4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjRmOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY1ZGE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNmJiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjc5YzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY4N2Q2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmOTVlNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmE0MDEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZiMjA0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYzAxNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmNlMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZkYzM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZWE0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmY4NTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAwNjY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMTQ3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDIyODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzMDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwM2VhNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDRjYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA1YWM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNjhkNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDc2ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NGY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwOTMwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGExMTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBhZjI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYmQzNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGNiNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBkOTU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZTc2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGY1ODEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEwMzg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMTE5NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTFmYTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEyZGI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxM2JjNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTQ5ZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE1N2U1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjVmNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTc0MDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE4MjE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOTAyNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTllMzknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFhYzQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYmE1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWM4NjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFkNjc3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZTQ4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWYyOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwMGE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMGViNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjFjYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIyYWQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMzhlNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ3MDEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI1NTA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNjMxNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjcxMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOGQ0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjliNTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYjc3NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmM1ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZTFhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmVmYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJmZGM3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzE5ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyN2Y2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzQ0MTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM1MjI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNjAzNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzZlNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM3YzU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOGE2NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzk4ODEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNhNjg1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYjQ5NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2MyYTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkMGI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZGVjNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2VjZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNmYWU0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDhmNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDE3MDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQyNTE4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MzMyNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDQxMzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0ZjQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI2NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDc5NzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ4Nzg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0OTU3ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGEzOGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiMTljJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YmZhYycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGNkYmMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRkYmNkJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZTllNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGY4MDgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUwNjE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MTQyNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTIyMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1M2U1NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTRjNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU1YTc2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Njg4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTc2OTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU4NGE4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1OTJiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWEwYzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVhZWQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YmNlNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWNhZjgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVkOTA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZTcxOCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWY1MjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MTE0OScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjFmNTknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYyZDY4Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2M2I4MycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjQ5ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY1Nzk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NjVhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjczYjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4MWM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2OGZkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjlkZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYmY2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YmEwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmM4MTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZkNjJiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZTQzNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmYyNDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwMDU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MGU2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzFjNzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcyYTg3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3Mzg5NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzQ2YTgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc1NGI5Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NjJjNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzcwZDgnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc3ZWU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPSc5ODA0JywgaD0nM2RjMWE4ZGUnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nMTEzLjc2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwOCcsIHY9JzExNy4xMzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzMyJywgdj0nMTE4Ljc5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhM2MnLCB2PScxMjAuMzYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzgzNScsIHY9JzExOC41MDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjQ1Jywgdj0nMTE2LjI3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NTUnLCB2PScxMDkuMjU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2NScsIHY9JzEyMS4xMjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDc1Jywgdj0nMTE4Ljg0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlODUnLCB2PScxMTYuMDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5NicsIHY9JzEyMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWE1Jywgdj0nMTIwLjg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYThiNicsIHY9JzEyNC4wNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmM1Jywgdj0nMTI0LjA0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M0ZDcnLCB2PScxMTcuNzEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDMwYicsIHY9JzExOC4wNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGY2Jywgdj0nMTE4LjA1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMDYnLCB2PScxMTguMjU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmQxNycsIHY9JzExOC4wNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyNycsIHY9JzEyMC44NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTkzNycsIHY9JzEyMS45MjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjc0NicsIHY9JzExOS4zNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1NicsIHY9JzEyMC44NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2NicsIHY9JzEyNS40OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nMTI3LjQzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Zjg1Jywgdj0nMTE5LjA2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDk1Jywgdj0nMTIwLjkwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmE0Jywgdj0nMTIwLjk3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OWI1Jywgdj0nMTIwLjI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3YzQnLCB2PScxMTguMjkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZDUnLCB2PScxMjYuNTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIzZTYnLCB2PScxMjUuNjM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMxZjYnLCB2PScxMjQuNjY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwMDUnLCB2PScxMjEuMzkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMTUnLCB2PScxMjEuOTk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMjUnLCB2PScxMjIuNTU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhMzYnLCB2PScxMjMuOTQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NDUnLCB2PScxMjQuNzQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NTYnLCB2PScxMjUuMDg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NjUnLCB2PScxMjUuMTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyNzYnLCB2PScxMjMuMzE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwODYnLCB2PScxMTkuMDI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOTknLCB2PScxMTguNjgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYTcnLCB2PScxMTkuODE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYjcnLCB2PScxMTkuMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzhjNicsIHY9JzExOS42NzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyODZkNicsIHY9JzEyMS43MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyOTRlNicsIHY9JzEyNS4xODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMScsIHY9JzEyNS4yMTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYjEwNScsIHY9JzExNy4xMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJiZjE1Jywgdj0nMTE4LjQ4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJjZDI1Jywgdj0nMTE5LjMzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJkYjM1Jywgdj0nMTE5LjM5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJlOTQ2Jywgdj0nMTE3LjI3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nMTEyLjk2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMwNTY2Jywgdj0nMTI0Ljc3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMxMzc1Jywgdj0nMTI0LjQwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyMTllJywgdj0nMTIzLjI2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyZjk2Jywgdj0nMTIyLjk1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMzZGE2Jywgdj0nMTIzLjAzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM0YmI2Jywgdj0nMTIzLjU1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM1OWRlJywgdj0nMTIzLjAwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM2N2Q2Jywgdj0nMTIyLjEyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM3NWU2Jywgdj0nMTIxLjA3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4NDBlJywgdj0nMTE3LjcwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM5MjFlJywgdj0nMTE4LjEwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhMDE2Jywgdj0nMTE3Ljc3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhZTI3Jywgdj0nMTIxLjM5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNiYzM2Jywgdj0nMTIwLjE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2NhNDcnLCB2PScxMTkuMzg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Q4NTYnLCB2PScxMTkuODg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2U2NjcnLCB2PScxMjIuNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZjQ4MScsIHY9JzEyNS45NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MDI4NScsIHY9JzEyMy41MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxMDk1Jywgdj0nMTI0LjMyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxZWE1Jywgdj0nMTI0LjYzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQyY2I1Jywgdj0nMTI0LjQ0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQzYWM1Jywgdj0nMTIyLjQzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ0OGQ1Jywgdj0nMTE4LjYyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ1NmU2Jywgdj0nMTIyLjE2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NGY1Jywgdj0nMTIwLjk3OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ4MGZmJywgdj0nMTE4LjM1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ4ZjBlJywgdj0nMTE3LjI3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ5ZDFkJywgdj0nMTE4LjY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGFiNDYnLCB2PScxMTguNTYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGI5NTUnLCB2PScxMTYuODQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGM3NjknLCB2PScxMTUuOTEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGQ1NzcnLCB2PScxMTguODk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGUzODcnLCB2PScxMTguNTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZjE5NicsIHY9JzExNi4yOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZmZhNicsIHY9JzExOC4yOTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MGRkMCcsIHY9JzEyMC4yMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MWJjNicsIHY9JzExOC40OTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MjlkNicsIHY9JzEyMC40MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MzdlNycsIHY9JzEyMi42NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NDYwMCcsIHY9JzEyNS41MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQwNicsIHY9JzEyMS43NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NjIxNScsIHY9JzEyMi42NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NzAyNicsIHY9JzEyMi41ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1N2UzNicsIHY9JzEyMi42MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OGM0NicsIHY9JzEyMC40MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OWE3MCcsIHY9JzEyMS4zMjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YTg2NycsIHY9JzEyMC42NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YjY3NicsIHY9JzExOC44NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YzQ4NycsIHY9JzExNS42NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZDI5NicsIHY9JzExOS44MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZTBhOScsIHY9JzEyMC4zNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlZWI4Jywgdj0nMTE5LjQzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVmY2M2Jywgdj0nMTE4LjI0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYwYWQ3Jywgdj0nMTE3LjAwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYxOGU3Jywgdj0nMTE3LjE2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNmY3Jywgdj0nMTE5Ljk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjM1MDcnLCB2PScxMTcuMTQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjQzMTcnLCB2PScxMTguNTQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PScxMTkuODIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjVmMzcnLCB2PScxMjEuMDEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjZkNDYnLCB2PScxMjEuNTc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjdiNTcnLCB2PScxMjAuMjg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjg5NjcnLCB2PScxMjIuNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2OTc4MicsIHY9JzExOS4wOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YTU4NicsIHY9JzEyMC40OTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YjM5NScsIHY9JzEyMS45MTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YzFhNicsIHY9JzEyMi4yMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2Y2ZiNScsIHY9JzEyMS4wMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZGRjNicsIHY9JzExOC40MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZWJkNicsIHY9JzExNS45NzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZjllNicsIHY9JzEyMC45NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDdmNicsIHY9JzExOS4yMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MTYwNycsIHY9JzExOC4wMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MjQxNycsIHY9JzExNy45MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MzIyNycsIHY9JzExNy41NjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NDAzNycsIHY9JzEyMS40NjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NGU0NycsIHY9JzEyMC41MTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NWM1NycsIHY9JzExOC40ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NmE2MycsIHY9JzExNy44ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Nzg3MycsIHY9JzExNy45NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ODY4MCcsIHY9JzExMy42MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3OTQ4ZicsIHY9JzExNi41ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YTI5ZicsIHY9JzExOS4zMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YjBhZicsIHY9JzExOC44MDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YmViZicsIHY9JzEyMC43OTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Y2NjZicsIHY9JzEyMC44NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZGFkZicsIHY9JzEyMS41OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZThmYScsIHY9JzEyMS40MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcwYScsIHY9JzEyMy43NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgwNTFhJywgdj0nMTI1LjE4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgxMzJhJywgdj0nMTI1LjY3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyMTNhJywgdj0nMTI0Ljc3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyZjRhJywgdj0nMTIyLjQzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgzZDVhJywgdj0nMTIwLjAxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg0YjZhJywgdj0nMTE4LjYyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg1OTdhJywgdj0nMTE4LjU1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg2NzhiJywgdj0nMTE3LjUyNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg3NTliJywgdj0nMTE3LjI1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg4M2FjJywgdj0nMTE5LjkwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5MWJiJywgdj0nMTIwLjkyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5ZmNhJywgdj0nMTE5Ljk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGFkZGEnLCB2PScxMTguNDgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGJiZWInLCB2PScxMTguNjA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5ZmMnLCB2PScxMTguMjgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGQ4MGInLCB2PScxMTguNjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGU2MWEnLCB2PScxMTcuMDA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGY0MmEnLCB2PScxMTcuNzY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTAyM2EnLCB2PScxMTkuNzIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTEwNGEnLCB2PScxMjAuMjk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTFlNWEnLCB2PScxMTguMzY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTJjNmEnLCB2PScxMjIuNTI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTNhODQnLCB2PScxMjQuODMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTQ4ODUnLCB2PScxMjMuMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NTY5NCcsIHY9JzEyMi4zOTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NjRhNScsIHY9JzEyMi43OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NzJiNCcsIHY9JzEyMi4yMzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ODBjNScsIHY9JzExOS43OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4ZWQ0Jywgdj0nMTIyLjg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTljZTUnLCB2PScxMTkuMDEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhZjUnLCB2PScxMTguMzIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWI5MDYnLCB2PScxMTUuNDU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWM3MTYnLCB2PScxMTkuMzc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWQ1MjYnLCB2PScxMjAuMzQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWUzMzYnLCB2PScxMTkuMjU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWYxNDUnLCB2PScxMTcuODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZmY1NicsIHY9JzExNy4wMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMGQ2NScsIHY9JzExNi43ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMWI3NycsIHY9JzExNi44MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMjk4NicsIHY9JzExOC43NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EzNzk1Jywgdj0nMTE4LjM1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E0NWE3Jywgdj0nMTE5LjQ5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E1M2I2Jywgdj0nMTE5LjY5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2MWM3Jywgdj0nMTE5LjkwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2ZmQ2Jywgdj0nMTIwLjY3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E3ZTAwJywgdj0nMTIyLjc1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YzAwJywgdj0nMTI1LjM4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTA1Jywgdj0nMTE4LjIxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FhODE1Jywgdj0nMTE5LjMyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FiNjI1Jywgdj0nMTIwLjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWM0MzUnLCB2PScxMTkuNjg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWQyNDUnLCB2PScxMTcuMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZTA1NScsIHY9JzExNC43MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZWU2NScsIHY9JzEyMC44NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZmM3NScsIHY9JzExOS4xNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMGE4NScsIHY9JzExNi42OTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMjZhNicsIHY9JzExNi43NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMzRiNicsIHY9JzExOC4wNzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNDJjNicsIHY9JzExNS41NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNTBkNicsIHY9JzExNS44NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNWVlNycsIHY9JzExNC4zMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmNmNicsIHY9JzEyMi43ODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiN2IwNycsIHY9JzExOC45MDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiODkxNycsIHY9JzExOC41MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiOTcyOCcsIHY9JzExOS40MzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYTUzNycsIHY9JzEyMC45MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYjM0NycsIHY9JzExOS44NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYzE1NycsIHY9JzEyMC41NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiY2Y2NycsIHY9JzEyMy4yMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZGQ4MScsIHY9JzExOC43MTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZWI4NicsIHY9JzExOC4zMTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZjk5NScsIHY9JzExOC44NTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMDdhNicsIHY9JzEyMC4wOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMTViNScsIHY9JzExOS41MzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMjNjNicsIHY9JzExOC4xNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMzFkNScsIHY9JzExNS43MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjM2ZlNicsIHY9JzExNy42NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGRmNScsIHY9JzExNi4wNDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNWMwNicsIHY9JzExNy40MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNmExNicsIHY9JzExNy41NzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNzgyNicsIHY9JzExNi43NTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjODYzNicsIHY9JzExOC4zMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjOTQ0NicsIHY9JzExOC4zNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYTI1NicsIHY9JzExOC4xMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYjA2NicsIHY9JzExNy4yMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYmU3NicsIHY9JzEyMi42NTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjY2M4NycsIHY9JzExOC41NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZGE5NicsIHY9JzExNi42MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZThhOCcsIHY9JzExOC4xMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZjZiNycsIHY9JzExOC41MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMDRjOCcsIHY9JzExOS41NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMTJkNycsIHY9JzEyMS40JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDIwZTcnLCB2PScxMjMuMzk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDJmMDInLCB2PScxMjYuMDY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDNkMDUnLCB2PScxMTkuMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIxNScsIHY9JzEyMC41MjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNTkyNicsIHY9JzEyMC43NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzExOS41NDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNzU0NicsIHY9JzExNy4zNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkODM1NScsIHY9JzEyNC4yNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOTE2NicsIHY9JzEyMi4zODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOWY3NScsIHY9JzEyMC43NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYWQ4NycsIHY9JzExNy4zNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYmI5NycsIHY9JzExNi42OTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYzlhOCcsIHY9JzExNi43OTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZDdiNycsIHY9JzExOC4yMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZTVjNicsIHY9JzExNy44NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZjNkNycsIHY9JzExNy4yODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDFkNycsIHY9JzExNy40MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwZmU1Jywgdj0nMTE2Ljc5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UxZGY1Jywgdj0nMTE3LjE4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UyYzA0Jywgdj0nMTE5LjY2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UzYTE0Jywgdj0nMTIxLjAzMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U0ODI0Jywgdj0nMTIwLjgzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U1NjM0Jywgdj0nMTIyLjQ1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U2NDQ0Jywgdj0nMTIwLjUzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U3MjU1Jywgdj0nMTIyLjc2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4MDZmJywgdj0nMTIzLjczNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4ZTdmJywgdj0nMTE2LjY1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U5YzhlJywgdj0nMTE4LjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VhYTlmJywgdj0nMTE4LjQ0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ViOGFlJywgdj0nMTE3LjQ2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VjNmJmJywgdj0nMTEzLjU0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VkNGNlJywgdj0nMTIzLjU5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VlMmRmJywgdj0nMTIwLjcwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMGVmJywgdj0nMTE4Ljk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWZmMDEnLCB2PScxMTYuMDAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjBkMTAnLCB2PScxMTcuNzQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjFiMjAnLCB2PScxMTcuNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMjkzMCcsIHY9JzEyMS40MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMzc0MCcsIHY9JzExNy43MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNDU1MScsIHY9JzExOC4xNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNTM2MScsIHY9JzExNy44MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNjE3MicsIHY9JzExNy42ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNmY4MCcsIHY9JzExNy41MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmN2Q5MScsIHY9JzExOS4zODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOGJhMScsIHY9JzEyMS4yMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOTliMScsIHY9JzEyMC4yNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYTdjMCcsIHY9JzExOC4zMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9JzExOC4yNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYzNlMCcsIHY9JzEyMy4wODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDFmYicsIHY9JzEyMy4xODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZTAwYicsIHY9JzEyNi4zNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZWUxYycsIHY9JzEyMy43NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZmMyYycsIHY9JzEyMy42MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDBhM2InLCB2PScxMjMuMDA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAxODRjJywgdj0nMTIxLjM4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMjY1YicsIHY9JzExNy42OTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDM0NmMnLCB2PScxMTcuOTAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA0MjdiJywgdj0nMTE5LjQwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNTA4ZCcsIHY9JzExNy42NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDVlOWQnLCB2PScxMTguMTQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA2Y2FkJywgdj0nMTE3LjgwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwN2FiZCcsIHY9JzEyMC4xNTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDg4Y2QnLCB2PScxMTkuNzMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA5NmRlJywgdj0nMTE5LjA5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYTRlZCcsIHY9JzExOS4yOTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyZmUnLCB2PScxMTguOTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBjMTBkJywgdj0nMTE2LjMzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwY2YxZScsIHY9JzExOC4xNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGRkMmUnLCB2PScxMTkuMDgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBlYjY2Jywgdj0nMTIwLjk1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZjk0ZScsIHY9JzEyMS40MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMDc1ZScsIHY9JzExOS4wODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTE1NmQnLCB2PScxMjAuOTQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEyMzg4Jywgdj0nMTIzLjY5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMzE4NycsIHY9JzEyMi40OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExM2ZiMCcsIHY9JzEyMy4zNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTRkYTYnLCB2PScxMjMuMzEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE1YmI2Jywgdj0nMTIzLjIxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNjljNicsIHY9JzEyMC45NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTc3ZDYnLCB2PScxMTguMDc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE4NWU4Jywgdj0nMTE4LjU3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTNmNycsIHY9JzExNy45NzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWEyMDgnLCB2PScxMjAuMDE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFiMDE3Jywgdj0nMTIxLjY2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9JzEyMi4yNjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWNjMzcnLCB2PScxMjIuMzE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFkYTQ3Jywgdj0nMTIxLjkzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZTg1NycsIHY9JzEyMC43NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWY2NjcnLCB2PScxMjEuODg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIwNTc4Jywgdj0nMTIxLjA2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMTM4NicsIHY9JzExNi44MjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjIxOTYnLCB2PScxMTcuNTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyZmE2Jywgdj0nMTE4Ljc4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyM2RiNScsIHY9JzEyMC43NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNGJjNScsIHY9JzEyMi41NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjU5ZDUnLCB2PScxMjAuMjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI2N2U0Jywgdj0nMTIyLjcyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzYwMCcsIHY9JzEyNC41NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjgzMDUnLCB2PScxMjUuMjM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTE1Jywgdj0nMTI1LjM0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOWYyNScsIHY9JzEyNS40OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmFkMzUnLCB2PScxMjQuNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmJiNDUnLCB2PScxMjIuODE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJjOTU0Jywgdj0nMTIxLjcxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZDc2NicsIHY9JzEyMC44ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmU1NzUnLCB2PScxMTkuODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmYzODYnLCB2PScxMTcuMTc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMwMTk2Jywgdj0nMTE3LjQ0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMGZhNicsIHY9JzExOC42NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzFkYjcnLCB2PScxMjAuMDE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMyYmM1Jywgdj0nMTE5Ljk1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMzlkNCcsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM0N2U1Jywgdj0nMC4xMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1ZjQnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNjQwNCcsIHY9JzAuMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM3MjE0Jywgdj0nMC4xMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzgwMjQnLCB2PScwLjEwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nMC4xMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2FhNTQnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nMC4xMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2Q0OGUnLCB2PScwLjEwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZTI5ZScsIHY9JzAuMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmMGFlJywgdj0nMC4xMDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2ZlYmYnLCB2PScwLjEwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MGNjZicsIHY9JzAuMTAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQxYWRmJywgdj0nMC4xMDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDI4ZWYnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzZmZicsIHY9JzAuMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ0NTBmJywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDUzMWYnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NjEzMCcsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2ZjQwJywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0N2Q0NCcsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ4YjU3Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDk5NjUnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YTc3NScsIHY9JzAuMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRiNTg0Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YzM5NycsIHY9JzAuMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRkMWE0Jywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGRmYjYnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZWRjNScsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGZiZDUnLCB2PScwLjExMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MDllNScsIHY9JzAuMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxN2ZmJywgdj0nMC4xMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTI2MDUnLCB2PScwLjEwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU0MjI1Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NTAzNScsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU1ZTQ1Jywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTZjNTUnLCB2PScwLjEwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1N2E2NScsIHY9JzAuMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU4ODc1Jywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTk2ODYnLCB2PScwLjEwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YTQ5NScsIHY9JzAuMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTViMmE2Jywgdj0nMC4xMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWMwYjYnLCB2PScwLjEwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Y2VjNicsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVkY2Q1Jywgdj0nMC4xMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWVhZTYnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZjhmNScsIHY9JzAuMTA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYwNzA2Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MTUxNycsIHY9JzAuMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYyMzI2Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MzEzNycsIHY9JzAuMTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzZjQ2Jywgdj0nMC4xMDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjRkNTcnLCB2PScwLjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY1YjY3Jywgdj0nMC4xMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjY5ODInLCB2PScwLjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Nzc4NicsIHY9JzAuMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY4NTk2Jywgdj0nMC4xMTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjkzYTYnLCB2PScwLjExMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YTFiNScsIHY9JzAuMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZhZmM2Jywgdj0nMC4xMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YmRkNScsIHY9JzAuMTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZjYmU2Jywgdj0nMC4xMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5ZjYnLCB2PScwLjExMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZTgwNycsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmY2MTYnLCB2PScwLjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcwNDI5Jywgdj0nMC4xMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzEyMzYnLCB2PScwLjExMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MjA0NycsIHY9JzAuMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyZTU3Jywgdj0nMC4xMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzNjNjcnLCB2PScwLjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NGE3NycsIHY9JzAuMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzU4ODcnLCB2PScwLjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NjY5NCcsIHY9JzExNy44NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9JzExOS4xOTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzgyYjMnLCB2PScxMjAuMjI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5MGM1Jywgdj0nMTIwLjkyNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OWVkNCcsIHY9JzEyNC4wMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2FjZTQnLCB2PScxMjYuNzQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYWZkJywgdj0nMTI4LjM2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YzkwZicsIHY9JzEyNi41NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcxZScsIHY9JzEyNi41MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2U1MmYnLCB2PScxMjYuODkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdmMzNmJywgdj0nMTI2LjExNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MDE0ZicsIHY9JzEyNC4yMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODBmNWYnLCB2PScxMjMuNjkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgxZDZlJywgdj0nMTI0LjcyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MmI3ZicsIHY9JzEyNC42NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODM5OGYnLCB2PScxMjMuNjY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nMTIzLjMzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NTVhZicsIHY9JzEyNC4wNDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODYzYzAnLCB2PScxMjUuOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODcxY2YnLCB2PScxMjUuMTQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3ZmUwJywgdj0nMTI0Ljc2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OGRlZicsIHY9JzEyNC41NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODljMDAnLCB2PScxMjMuNDgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThiODBkJywgdj0nMTE2LjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThjNjFjJywgdj0nMTIwLjQ2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZDQyYycsIHY9JzEyMS4yMjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGUyM2InLCB2PScxMjEuMTU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmMDRiJywgdj0nMTIzLjQwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZmU1ZScsIHY9JzEyNS40MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTBjNzYnLCB2PScxMjIuNzE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkxYTg2Jywgdj0nMTI0LjM4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5Mjg5NicsIHY9JzEyNi4wNDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTM2YTYnLCB2PScxMjYuMTY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk0NGI3Jywgdj0nMTI1LjI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk1MmM2Jywgdj0nMTIzLjI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk2MGQ3Jywgdj0nMTIwLjQ5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NmVlNicsIHY9JzEyMC43MDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTdjZjgnLCB2PScxMjAuNDkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk4YjBmJywgdj0nMTE5Ljk5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OTkxZicsIHY9JzEyMC4yNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWI1NDEnLCB2PScxMjIuMjMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTljMzRkJywgdj0nMTIxLjQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkMTVlJywgdj0nMTIwLjcwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZGY4MCcsIHY9JzEyMC42MTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVkOTAnLCB2PScxMTkuODM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZWJlJywgdj0nMTE5LjY4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZmI4ZScsIHY9JzExNS41OTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PScxMTguODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTE3YWUnLCB2PScxMTkuOTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTI1YmUnLCB2PScxMjEuMzY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEzM2NkJywgdj0nMTIxLjA5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNDFkZCcsIHY9JzEyMi40NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTRmZWQnLCB2PScxMjUuNzY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZTA4Jywgdj0nMTI2LjMwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNmMwNScsIHY9JzEyNC40OTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTdhMTUnLCB2PScxMjUuNjU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE4ODI2Jywgdj0nMTI1Ljc3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhOTYzNycsIHY9JzEyNC40NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWE0NDUnLCB2PScxMjMuMTY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFiMjU1Jywgdj0nMTIxLjEzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYzA2NScsIHY9JzEyMy42NzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWNlNzUnLCB2PScxMjMuNTY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFkYzg3Jywgdj0nMTIyLjI1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZWE5NicsIHY9JzEyMS43OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWY4YTcnLCB2PScxMjIuMDg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIwNmI3Jywgdj0nMTIzLjg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIxNGM2Jywgdj0nMTIzLjU1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzExOS42ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzgyNzAnLCB2PScxMTkuNjc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nMTE4LjgyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjOWU4ZicsIHY9JzExOS44MzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2FjYTInLCB2PScxMjEuMTkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNiYWIxJywgdj0nMTIxLjY4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYzhjMScsIHY9JzExNy44NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2Q2ZDAnLCB2PScxMTguNzYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNlNGRlJywgdj0nMTIwLjI2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZjJmMCcsIHY9JzEyMi40NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAxMDknLCB2PScxMjQuNTM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwZjA2Jywgdj0nMTIyLjU5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMWQxNScsIHY9JzEyMy4yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQyYjI1Jywgdj0nMTIzLjIxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMzkzNScsIHY9JzEyMi4yMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDQ3NDUnLCB2PScxMjEuNDI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ1NTU1Jywgdj0nMTIwLjg4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNjM2NicsIHY9JzEyMi43NDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDcxNzUnLCB2PScxMjMuMDc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ3Zjg2Jywgdj0nMTIyLjIzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOGQ5NScsIHY9JzEyMC44NTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDliYTYnLCB2PScxMjEuMjMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRhOWI2Jywgdj0nMTIyLjE4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYjdjNycsIHY9JzEyMi42NDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGM1ZDUnLCB2PScxMjIuOTkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRkM2U2Jywgdj0nMTIyLjQ4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZTFmNScsIHY9JzExOC43MDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGYwMDYnLCB2PScxMTcuMzY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRmZTE2Jywgdj0nMTE1LjcxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMGMyNicsIHY9JzExNy43NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMWEzNicsIHY9JzExOS4wNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTI4NDcnLCB2PScxMjAuMTc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nMTE5Ljk0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNDQ2NycsIHY9JzEyMC45MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTUyODEnLCB2PScxMTcuMjUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nMTIwLjExOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNmU5NicsIHY9JzEyMS41MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTdjYTYnLCB2PScxMjIuMTg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nMTIyLjIxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlOThjNicsIHY9JzEyMS41MzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWE2ZDUnLCB2PScxMTkuOTgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWViNGU2Jywgdj0nMTE5Ljk3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzJmNicsIHY9JzEyMi45MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWQxMDYnLCB2PScxMjIuMjg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkZjE2Jywgdj0nMTIyLjA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVlZDI2Jywgdj0nMTIyLjI3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9JzEyMi44NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjA5NDYnLCB2PScxMjIuNjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzU2Jywgdj0nMTIxLjE0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMjU2NicsIHY9JzEyMC44NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjMzNzYnLCB2PScxMTkuNjA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY0MTg3Jywgdj0nMTE2LjEwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNGY5NicsIHY9JzExOS4xNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjVkYTcnLCB2PScxMTkuMjg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY2YmI2Jywgdj0nMTIwLjIwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNzljNycsIHY9JzExOC43NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjg3ZDYnLCB2PScxMjIuMjIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY5NWU3Jywgdj0nMTIzLjI4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTQwMScsIHY9JzEyNi4wMjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PScxMjQuODI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjMDE2Jywgdj0nMTI1Ljc2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmY2UyNScsIHY9JzEyNS4yMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmRjMzUnLCB2PScxMjQuNzk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZlYTQ1Jywgdj0nMTIyLjM5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZjg1NScsIHY9JzEyMC41MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDA2NjUnLCB2PScxMTcuMzE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAxNDc1Jywgdj0nMTE4Ljc3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMjI4NicsIHY9JzExOC44MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDMwOTUnLCB2PScxMTkuNjg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzZWE1Jywgdj0nMTE5Ljk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA0Y2I2Jywgdj0nMTIyLjcwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNWFjNicsIHY9JzEyMC43NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDY4ZDYnLCB2PScxMTkuOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDc2ZTYnLCB2PScxMTkuMTI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NGY2Jywgdj0nMTE3LjA5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwOTMwNicsIHY9JzEyMS4yMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGExMTYnLCB2PScxMjAuMjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGFmMjYnLCB2PScxMTkuNjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGJkMzcnLCB2PScxMjAuNjc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBjYjQ2Jywgdj0nMTE4Ljc1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZDk1NycsIHY9JzExOS42MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGU3NjcnLCB2PScxMjEuMDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBmNTgxJywgdj0nMTIzLjU3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMDM4NicsIHY9JzEyNS45NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTExOTQnLCB2PScxMjMuOTI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExZmE1Jywgdj0nMTIzLjg4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMmRiNScsIHY9JzEyMy4wOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxM2JjNScsIHY9JzEyMS42OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNDlkNicsIHY9JzExNy45MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTU3ZTUnLCB2PScxMTYuMDE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NWY2Jywgdj0nMTIxLjkzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNzQwNicsIHY9JzExOS42NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTgyMTcnLCB2PScxMTguOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOTAyNicsIHY9JzExOS42NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTllMzknLCB2PScxMTkuNzE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFhYzQ2Jywgdj0nMTE4LjYyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYmE1NycsIHY9JzExOC40NTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWM4NjcnLCB2PScxMTcuMzM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFkNjc3Jywgdj0nMTIyLjA5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZTQ4NycsIHY9JzExOS41NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWYyOTYnLCB2PScxMTkuNzYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwMGE2Jywgdj0nMTIwLjUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwZWI3Jywgdj0nMTIxLjQyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMWNjNicsIHY9JzExOC4wMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjJhZDcnLCB2PScxMjAuMjI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIzOGU3Jywgdj0nMTIzLjMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NzAxJywgdj0nMTI1Ljg2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNTUwNScsIHY9JzExOC43ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjYzMTUnLCB2PScxMTkuMTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3MTI1Jywgdj0nMTE5LjExNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyN2YzNScsIHY9JzExNi45MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjhkNDUnLCB2PScxMTUuNjQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI5YjU0Jywgdj0nMTIyLjAxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYTk2NScsIHY9JzExOS4yMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmI3NzYnLCB2PScxMTkuMzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmM1ODYnLCB2PScxMTguNTY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nMTE4LjI0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZTFhNicsIHY9JzExOC41NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmVmYjYnLCB2PScxMjAuMjg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJmZGM3Jywgdj0nMTE5Ljk5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9JzExOS4yNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzE5ZTYnLCB2PScxMTguODY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyN2Y2Jywgdj0nMTE3Ljc0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzExOC41NDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzQ0MTYnLCB2PScxMTcuNTM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM1MjI2Jywgdj0nMTE4LjcwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNjAzNycsIHY9JzExOS45NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNmU0NicsIHY9JzExNy42NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzdjNTcnLCB2PScxMTkuMTU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM4YTY2Jywgdj0nMTIwLjc3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzEyMC4yMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2E2ODUnLCB2PScxMjEuNjI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNiNDk1Jywgdj0nMTIyLjI3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzEyMi40MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2QwYjUnLCB2PScxMjEuNjg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkZWM0Jywgdj0nMTIwLjM2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzExOC43NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2ZhZTQnLCB2PScxMjAuMDI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwOGY2Jywgdj0nMTE3Ljk3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MTcwNicsIHY9JzExNy4zMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDI1MTgnLCB2PScxMTcuNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDMzMjUnLCB2PScxMTguMTkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0MTM3Jywgdj0nMTE5LjU0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NGY0NicsIHY9JzExOC43NDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNjYnLCB2PScxMTguMjk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ3OTc2Jywgdj0nMTE3LjUzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ODc4NicsIHY9JzExNC40NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDk1N2UnLCB2PScxMTcuMzU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRhMzhmJywgdj0nMTE4Ljg1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YjE5YycsIHY9JzEyMC4xMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGJmYWMnLCB2PScxMTkuMzQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRjZGJjJywgdj0nMTIzLjIyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZGJjZCcsIHY9JzEyMi45MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5ZTUnLCB2PScxMjQuMjczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRmODA4Jywgdj0nMTIzLjUxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MDYxNicsIHY9JzEyNC4xODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTE0MjYnLCB2PScxMjQuMjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTIyMzYnLCB2PScxMjIuODI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nMTIxLjgwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1M2U1NicsIHY9JzExOS41MTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTRjNjcnLCB2PScxMTguOTIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU1YTc2Jywgdj0nMTE4Ljg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU2ODg3Jywgdj0nMTE3LjI2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NzY5NycsIHY9JzExOC4wMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTg0YTgnLCB2PScxMTYuODE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU5MmI2Jywgdj0nMTE4LjM4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YTBjNycsIHY9JzExOS4yNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWFlZDcnLCB2PScxMTguODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWJjZTcnLCB2PScxMTguNjc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYWY4Jywgdj0nMTE4LjEwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZDkwNycsIHY9JzExOS42MjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWU3MTgnLCB2PScxMTkuMDQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVmNTI3Jywgdj0nMTE5LjYzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MDMzOCcsIHY9JzEyMC4zNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjExNDknLCB2PScxMTguNzI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxZjU5Jywgdj0nMTE5Ljc3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MmQ2OCcsIHY9JzEyMi42MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjNiODMnLCB2PScxMjAuNDk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY0OTg2Jywgdj0nMTIyLjMzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NTc5NScsIHY9JzEyMy4wMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjY1YTYnLCB2PScxMjMuODI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY3M2I1Jywgdj0nMTIyLjkzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ODFjNicsIHY9JzEyMi4zOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjhmZDUnLCB2PScxMjEuMjEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY5ZGU2Jywgdj0nMTIwLjg0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWJmNicsIHY9JzEyMC4wNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmJhMDYnLCB2PScxMTguMjk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZjODE3Jywgdj0nMTE3Ljc5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZDYyYicsIHY9JzExNy45OTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmU0MzYnLCB2PScxMTkuMjg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZmMjQ3Jywgdj0nMTE4LjgxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MDA1NycsIHY9JzExOC45NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNjcnLCB2PScxMTguNDQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcxYzc3Jywgdj0nMTE5LjE1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MmE4NycsIHY9JzEyMC4xMjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzM4OTcnLCB2PScxMTkuODU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc0NmE4Jywgdj0nMTIwLjY2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NTRiOScsIHY9JzEyMS4wNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzYyYzcnLCB2PScxMTguMjY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc3MGQ4Jywgdj0nMTIwLjMwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3N2VlNycsIHY9JzEyMi44NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nNDQwNjAwJywgaD0nM2RjMWE4ZGUnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nLTEyNzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDgnLCB2PSctMTQ4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjMzInLCB2PSctMTU2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhM2MnLCB2PSctMTY0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4MzUnLCB2PSctMTQ0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NDUnLCB2PSctMTI3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NTUnLCB2PSctMTA0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNjUnLCB2PSctMTY5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcwNzUnLCB2PSctMTc2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlODUnLCB2PSctMTY2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOTYnLCB2PSctMjA2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlhYTUnLCB2PSctMTk5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YjYnLCB2PSctMTkyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2YzUnLCB2PSctMjAxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M0ZDcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzMGInLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwZjYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmQxNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5MzcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzQ2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNjYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWY4NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZkOTUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmE0Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODliNScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3YzQnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWQ1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjNlNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMxZjYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDA1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGUxNScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMjUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTM2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDg0NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NTYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDY1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOTknLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2E3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmFiNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc4YzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjg2ZDYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI5NGU2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmIxMDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmNkMjUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJkYjM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJlOTQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMwNTY2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMTM3NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzIxOWUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyZjk2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczM2RhNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzRiYjYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM1OWRlJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNjdkNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzc1ZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzg0MGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzkyMWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2EwMTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2FlMjcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNiYzM2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczY2E0NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZDg1NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2U2NjcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNmNDgxJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MDI4NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDEwOTUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxZWE1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MmNiNScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDNhYzUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ0OGQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ1NmU2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjRmNScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDgwZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDhmMGUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDlkMWQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGFiNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGI5NTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGM3NjknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGQ1NzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGUzODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGYxOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGZmYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTBkZDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTFiYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTI5ZDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTM3ZTcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NjAwJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQwNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTYyMTUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3MDI2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1N2UzNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNThjNDYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU5YTcwJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YTg2NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWI2NzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWM0ODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWQyOTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWUwYTknLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlZWI4Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZmNjNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjBhZDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjE4ZTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2ZjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjM1MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjQzMTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjUxMjcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1ZjM3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NmQ0NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjdiNTcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY4OTY3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2OTc4MicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmE1ODYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZiMzk1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YzFhNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmNmYjUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZkZGM2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZWJkNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZjllNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3ZjYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcxNjA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcyNDE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzczMjI3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0MDM3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NGU0NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzVjNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzZhNjMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzc4NzMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzg2ODAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzk0OGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2EyOWYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2IwYWYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiZWJmJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Y2NjZicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2RhZGYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlOGZhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcwYScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODA1MWEnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgxMzJhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MjEzYScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODJmNGEnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgzZDVhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NGI2YScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NTk3YScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4Njc4YicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NzU5YicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ODNhYycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODkxYmInLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5ZmNhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YWRkYScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YmJlYicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YzlmYycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZDgwYicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZTYxYScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZjQyYScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MDIzYScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MTA0YScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTFlNWEnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTJjNmEnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkzYTg0Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NDg4NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTU2OTQnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk2NGE1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NzJiNCcsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTgwYzUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4ZWQ0Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5OWNlNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWFmNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YjkwNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWM3MTYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlkNTI2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZTMzNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWYxNDUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmZjU2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMGQ2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMWI3NycsIHY9Jy0xODQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTI5ODYnLCB2PSctNjMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTM3OTUnLCB2PScxNTY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTQ1YTcnLCB2PSctNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNTNiNicsIHY9Jy0zOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNjFjNycsIHY9Jy02OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNmZkNicsIHY9Jy04ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhN2UwMCcsIHY9Jy0xNTc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYThjMDAnLCB2PSctMjIwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTA1Jywgdj0nMTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWE4MTUnLCB2PSctNDIwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWI2MjUnLCB2PSctODU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWM0MzUnLCB2PSctNjI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWQyNDUnLCB2PSc1MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZTA1NScsIHY9JzE4MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZWU2NScsIHY9JzI5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FmYzc1Jywgdj0nMTE4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IwYTg1Jywgdj0nMzk0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IyNmE2Jywgdj0nNDIzMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IzNGI2Jywgdj0nMzY4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I0MmM2Jywgdj0nMjQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjUwZDYnLCB2PSc0MzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNWVlNycsIHY9JzEwMjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmNmNicsIHY9Jy01MjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiN2IwNycsIHY9Jy0yNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiODkxNycsIHY9Jy02NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I5NzI4Jywgdj0nLTQ4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JhNTM3Jywgdj0nLTg0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JiMzQ3Jywgdj0nMTA4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjMTU3Jywgdj0nMzEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmNmNjcnLCB2PSctMTExMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JkZDgxJywgdj0nMzYzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JlYjg2Jywgdj0nNTEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmY5OTUnLCB2PScyMTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMDdhNicsIHY9Jy0yOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMTViNScsIHY9Jy0xMjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMjNjNicsIHY9JzQ5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzMWQ1Jywgdj0nMTgxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzZmU2Jywgdj0nODE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkZjUnLCB2PScxNTM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzVjMDYnLCB2PSc2ODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNmExNicsIHY9JzcxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M3ODI2Jywgdj0nMTI4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M4NjM2Jywgdj0nMzk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzk0NDYnLCB2PSc0OTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYTI1NicsIHY9JzI1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiMDY2Jywgdj0nNzg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2JlNzYnLCB2PSctMjAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2NjODcnLCB2PScyMTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2RhOTYnLCB2PScyOTM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2U4YTgnLCB2PScyMTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2Y2YjcnLCB2PScyODI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDA0YzgnLCB2PScyMjY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDEyZDcnLCB2PScxNDQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDIwZTcnLCB2PSctMjk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDJmMDInLCB2PSctMjI4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QzZDA1Jywgdj0nLTExODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIxNScsIHY9Jy05NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNTkyNicsIHY9Jy00NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzI2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q3NTQ2Jywgdj0nMTMwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q4MzU1Jywgdj0nLTg0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q5MTY2Jywgdj0nMTc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PScxMTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGFkODcnLCB2PScyNzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGJiOTcnLCB2PScyNzY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGM5YTgnLCB2PScyOTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGQ3YjcnLCB2PScxMzI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGU1YzYnLCB2PSc0NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZjNkNycsIHY9JzE5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwMWQ3Jywgdj0nMTY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmZTUnLCB2PSc1NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMWRmNScsIHY9JzQxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UyYzA0Jywgdj0nLTM3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UzYTE0Jywgdj0nLTExNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNDgyNCcsIHY9JzkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTU2MzQnLCB2PSctODQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTY0NDQnLCB2PScxNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNzI1NScsIHY9Jy02NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlODA2ZicsIHY9Jy03MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOGU3ZicsIHY9JzI2NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOWM4ZScsIHY9JzgzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VhYTlmJywgdj0nNjk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWI4YWUnLCB2PScxMDk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWM2YmYnLCB2PScyNjQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWQ0Y2UnLCB2PSctNDk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWUyZGYnLCB2PScxMTY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwZWYnLCB2PSc1NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZmYwMScsIHY9JzE4NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMGQxMCcsIHY9Jzk3OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YxYjIwJywgdj0nMTIxMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YyOTMwJywgdj0nLTM1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YzNzQwJywgdj0nMTY1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y0NTUxJywgdj0nMTM2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y1MzYxJywgdj0nMTQ2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2MTcyJywgdj0nMTYxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2ZjgwJywgdj0nMTMwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y3ZDkxJywgdj0nMTg4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y4YmExJywgdj0nMTEzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y5OWIxJywgdj0nMTE2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZhN2MwJywgdj0nMTQwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZiNWQxJywgdj0nMTMxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZjM2UwJywgdj0nLTEwNDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDFmYicsIHY9Jy0xMTkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmUwMGInLCB2PSctMTYwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTFjJywgdj0nLTE5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZmYzJjJywgdj0nLTI1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMGEzYicsIHY9JzU4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMTg0YycsIHY9JzEwNjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDI2NWInLCB2PScxOTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAzNDZjJywgdj0nMTgzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNDI3YicsIHY9JzExMjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDUwOGQnLCB2PScxNzY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA1ZTlkJywgdj0nMTM0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNmNhZCcsIHY9JzE1NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDdhYmQnLCB2PSc4NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDg4Y2QnLCB2PSc4MDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDk2ZGUnLCB2PScxMDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBhNGVkJywgdj0nODgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBiMmZlJywgdj0nMTI1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYzEwZCcsIHY9JzI2NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGNmMWUnLCB2PScxMzY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBkZDJlJywgdj0nMTAwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZWI2NicsIHY9JzIwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZjk0ZScsIHY9JzIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEwNzVlJywgdj0nMTE0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMTU2ZCcsIHY9JzI4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMjM4OCcsIHY9Jy0xMTY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzMTg3Jywgdj0nNzEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzZmIwJywgdj0nMjI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE0ZGE2Jywgdj0nMjM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE1YmI2Jywgdj0nMzcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE2OWM2Jywgdj0nMTQ0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNzdkNicsIHY9JzIwMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTg1ZTgnLCB2PScxMjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5M2Y3Jywgdj0nMTI4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYTIwOCcsIHY9JzM2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYjAxNycsIHY9Jy0zMTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWJlMmYnLCB2PSctODAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFjYzM3Jywgdj0nNzgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFkYTQ3Jywgdj0nNDkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFlODU3Jywgdj0nMTAyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZjY2NycsIHY9JzUxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMDU3OCcsIHY9JzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjEzODYnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyMTk2Jywgdj0nMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMmZhNicsIHY9JzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjNkYjUnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI0YmM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNTlkNScsIHY9JzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjY3ZTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NjAwJywgdj0nLTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjgzMDUnLCB2PSctMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTExNScsIHY9Jy0xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5ZjI1Jywgdj0nLTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmFkMzUnLCB2PSctMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYmI0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmM5NTQnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJkNzY2Jywgdj0nMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZTU3NScsIHY9JzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmYzODYnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMwMTk2Jywgdj0nMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMGZhNicsIHY9JzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzFkYjcnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMyYmM1Jywgdj0nMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMzlkNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzQ3ZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NWY0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNjQwNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzcyMTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM4MDI0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzljNDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNhYTU0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2M2N2UnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNkNDhlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZTI5ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2YwYWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmZWJmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MGNjZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDFhZGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQyOGVmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzZmZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDQ1MGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ1MzFmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NjEzMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDZmNDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ3ZDQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0OGI1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDk5NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRhNzc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YjU4NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGMzOTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRkMWE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZGZiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGVkYzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRmYmQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MDllNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTE3ZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUyNjA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTQyMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU1MDM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTZjNTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU3YTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTk2ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVhNDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YjJhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWMwYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjZWM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZGNkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWVhZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmOGY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MDcwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjE1MTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYyMzI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MzEzNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjNmNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY0ZDU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NWI2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjY5ODInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY3Nzg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ODU5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjkzYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZhMWI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YWZjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmJkZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZjYmU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDlmNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmU4MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZmNjE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MDQyOScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzEyMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyMDQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MmU1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzNjNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc0YTc3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NTg4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzY2OTQnLCB2PScyMjc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc3NGEzJywgdj0nMTc3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ODJiMycsIHY9JzExNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzkwYzUnLCB2PSc3NjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzllZDQnLCB2PSctODQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdhY2U0Jywgdj0nLTIzNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2JhZmQnLCB2PSctMjk2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YzkwZicsIHY9Jy0yNTE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdkNzFlJywgdj0nLTI0NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2U1MmYnLCB2PSctMjg2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZjMzZicsIHY9Jy0yMjc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgwMTRmJywgdj0nLTEyNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODBmNWYnLCB2PSctNzE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgxZDZlJywgdj0nLTE0ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODJiN2YnLCB2PSctMjAwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4Mzk4ZicsIHY9Jy0xMDU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nLTk3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NTVhZicsIHY9Jy0xMjY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg2M2MwJywgdj0nLTMxNzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODcxY2YnLCB2PSctMjY2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4N2ZlMCcsIHY9Jy0yNTQwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg4ZGVmJywgdj0nLTIzNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODljMDAnLCB2PSctMTEyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YjgwZCcsIHY9JzEyMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGM2MWMnLCB2PSctMTA2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZDQyYycsIHY9Jy0xNTE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThlMjNiJywgdj0nLTEyODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGYwNGInLCB2PSctMTkwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZmU1ZScsIHY9Jy0xNjIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkwYzc2Jywgdj0nLTc3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MWE4NicsIHY9Jy0xNzMwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkyODk2Jywgdj0nLTE3NDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTM2YTYnLCB2PSctMTg3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NDRiNycsIHY9Jy0xMjA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk1MmM2Jywgdj0nLTIxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NjBkNycsIHY9JzE2MTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTZlZTYnLCB2PSctNzY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3Y2Y4Jywgdj0nLTgyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OGIwZicsIHY9JzQwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk5OTFmJywgdj0nLTE5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YjU0MScsIHY9Jy05NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWMzNGQnLCB2PSctNjgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkMTVlJywgdj0nLTM4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZGY4MCcsIHY9Jy0yNDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVkOTAnLCB2PSczNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVlYmUnLCB2PSc0NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWZiOGUnLCB2PSc2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMDlhMCcsIHY9Jy0yNDQwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWExN2FlJywgdj0nLTM0NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTI1YmUnLCB2PSctMzg2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMzNjZCcsIHY9Jy0xNjU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0MWRkJywgdj0nLTIyNzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTRmZWQnLCB2PSctNDEzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWUwOCcsIHY9Jy0zNzM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE2YzA1Jywgdj0nLTI2NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTdhMTUnLCB2PSctMzI4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhODgyNicsIHY9Jy0zMzc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjM3Jywgdj0nLTI3MDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWE0NDUnLCB2PSctMTk4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYjI1NScsIHY9Jy03OTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWMwNjUnLCB2PSctMjA0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhY2U3NScsIHY9Jy0yNzkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFkYzg3Jywgdj0nLTE5MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWVhOTYnLCB2PSctMjA5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZjhhNycsIHY9Jy0yMjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIwNmI3Jywgdj0nLTI2NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjE0YzYnLCB2PSctMjUzMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzQ1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjODI3MCcsIHY9Jy0xNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzkwN2UnLCB2PScxMTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nLTE0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYWNhMicsIHY9Jy0xMDAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNiYWIxJywgdj0nLTE0MDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2M4YzEnLCB2PScyOTQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNkNmQwJywgdj0nMjIyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZTRkZScsIHY9JzEwMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2YyZjAnLCB2PSctMTYyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDEwOScsIHY9Jy0xODM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwZjA2Jywgdj0nLTIxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMWQxNScsIHY9Jy03NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDJiMjUnLCB2PSctNzkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQzOTM1Jywgdj0nMTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ0NzQ1Jywgdj0nNzc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ1NTU1Jywgdj0nMTI0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNjM2NicsIHY9Jy05NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDcxNzUnLCB2PSctOTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ3Zjg2Jywgdj0nLTI0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOGQ5NScsIHY9Jy02NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOWJhNicsIHY9Jy0zMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGE5YjYnLCB2PSctODExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRiN2M3Jywgdj0nLTgwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9Jy05NTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGQzZTYnLCB2PSctNzE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMWY1Jywgdj0nLTE2MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGYwMDYnLCB2PSctMTkxMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9Jy0xODA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUwYzI2Jywgdj0nLTIyMjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTFhMzYnLCB2PSctMjI3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9Jy0yMzE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nLTIyODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTQ0NjcnLCB2PSctMjMzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9Jy0xODYwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nLTIxMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTZlOTYnLCB2PSctMjIwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9Jy0yOTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZThhYjUnLCB2PSctNDQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU5OGM2Jywgdj0nLTE0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9Jy00MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWI0ZTYnLCB2PSctMzY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMmY2Jywgdj0nLTU4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZDEwNicsIHY9Jy0yNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWRmMTYnLCB2PSctMzI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVlZDI2Jywgdj0nLTE0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9Jy0zNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjA5NDYnLCB2PSctMzEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzU2Jywgdj0nNDk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYyNTY2Jywgdj0nNjYwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYzMzc2Jywgdj0nMTI0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNDE4NycsIHY9JzI4ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjRmOTYnLCB2PScxNTMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY1ZGE3Jywgdj0nLTE0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNmJiNicsIHY9Jy01MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjc5YzcnLCB2PScyMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjg3ZDYnLCB2PSctMTY2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmOTVlNycsIHY9Jy0yMzMwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhNDAxJywgdj0nLTE3MjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PSctMTQ4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYzAxNicsIHY9Jy0xNTE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjZTI1Jywgdj0nLTQ3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZGMzNScsIHY9Jy0xOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmVhNDUnLCB2PScxMjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmY4NTUnLCB2PSczNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDA2NjUnLCB2PScyODcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAxNDc1Jywgdj0nNDA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAyMjg2Jywgdj0nMTkyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMzA5NScsIHY9JzE4MzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDNlYTUnLCB2PScxNzk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA0Y2I2Jywgdj0nMzM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA1YWM2Jywgdj0nMTI2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNjhkNicsIHY9JzE4MTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDc2ZTYnLCB2PScyMjcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NGY2Jywgdj0nMjYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA5MzA2Jywgdj0nLTM4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYTExNicsIHY9Jy02MTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGFmMjYnLCB2PSctMjUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBiZDM3Jywgdj0nLTg4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwY2I0NicsIHY9JzU1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZDk1NycsIHY9JzQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBlNzY3Jywgdj0nLTk4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZjU4MScsIHY9Jy0xNjEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEwMzg2Jywgdj0nLTExMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTExOTQnLCB2PSctMzgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExZmE1Jywgdj0nLTQ0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMmRiNScsIHY9JzcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEzYmM1Jywgdj0nMTAyMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNDlkNicsIHY9Jzc2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNTdlNScsIHY9Jy0zMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1ZjYnLCB2PSctMTE0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNzQwNicsIHY9JzMwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxODIxNycsIHY9Jy0zMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTkwMjYnLCB2PSctNTgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE5ZTM5Jywgdj0nNDA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFhYzQ2Jywgdj0nMTAzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYmE1NycsIHY9JzExMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWM4NjcnLCB2PScyMDgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFkNjc3Jywgdj0nLTEyMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWU0ODcnLCB2PSc2MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWYyOTYnLCB2PSc0NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjAwYTYnLCB2PSctNzM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwZWI3Jywgdj0nLTgxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMWNjNicsIHY9JzE2ODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjJhZDcnLCB2PSczMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjM4ZTcnLCB2PSctODAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NzAxJywgdj0nLTEyNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjU1MDUnLCB2PSczMzA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI2MzE1Jywgdj0nNTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3MTI1Jywgdj0nNjM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nMTk2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOGQ0NScsIHY9JzI4NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjliNTQnLCB2PSctODMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nLTI3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYjc3NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmM1ODYnLCB2PScyMDEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nMzQwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZTFhNicsIHY9JzMxOTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmVmYjYnLCB2PSctMTg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJmZGM3Jywgdj0nLTIyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9JzUzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMTllNicsIHY9Jy04MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3ZjYnLCB2PSc2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzEwNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzQ0MTYnLCB2PScxNTQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM1MjI2Jywgdj0nOTAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM2MDM3Jywgdj0nMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM2ZTQ2Jywgdj0nMTc4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzN2M1NycsIHY9JzE0MDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzhhNjYnLCB2PScyOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzk4ODEnLCB2PSc1NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2E2ODUnLCB2PSctMzExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNiNDk1Jywgdj0nLTY1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9JzE2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZDBiNScsIHY9JzY0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZGVjNCcsIHY9JzE0MjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2VjZDUnLCB2PSc4MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2ZhZTQnLCB2PSctNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDhmNicsIHY9JzExOTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDE3MDYnLCB2PSczNzUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQyNTE4Jywgdj0nMjk5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MzMyNScsIHY9JzI4MDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDQxMzcnLCB2PSctMTE4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NGY0NicsIHY9Jy04MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNjYnLCB2PSctNzk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ3OTc2Jywgdj0nNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDg3ODYnLCB2PSc0NjAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ5NTdlJywgdj0nMTkxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YTM4ZicsIHY9Jzc5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YjE5YycsIHY9Jy05NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGJmYWMnLCB2PSctNzA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRjZGJjJywgdj0nLTc5MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZGJjZCcsIHY9Jy00OTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5ZTUnLCB2PSctMTMxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9Jy04MjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTA2MTYnLCB2PSctMTAxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MTQyNicsIHY9Jy0xMTc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUyMjM2Jywgdj0nLTM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1M2U1NicsIHY9JzEzNTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTRjNjcnLCB2PScxMDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU1YTc2Jywgdj0nMTI5MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Njg4NycsIHY9JzIwNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTc2OTcnLCB2PSczNjE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU4NGE4Jywgdj0nLTQ2ODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTkyYjYnLCB2PSctMjQ3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YTBjNycsIHY9Jy01NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWFlZDcnLCB2PScxODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWJjZTcnLCB2PScyNjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWNhZjgnLCB2PSc4MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWQ5MDcnLCB2PScyNDg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVlNzE4Jywgdj0nMjczMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZjUyNycsIHY9JzIyMzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjAzMzgnLCB2PSc1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MTE0OScsIHY9JzEyMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjFmNTknLCB2PSc2MzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjJkNjgnLCB2PSctMTM2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2M2I4MycsIHY9JzM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY0OTg2Jywgdj0nLTk4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NTc5NScsIHY9Jy0xNTAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY2NWE2Jywgdj0nLTIxMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjczYjUnLCB2PSctMTYxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ODFjNicsIHY9Jy0xMzE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4ZmQ1Jywgdj0nLTQzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2OWRlNicsIHY9JzMwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWJmNicsIHY9JzY4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YmEwNicsIHY9JzE2OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmM4MTcnLCB2PScxODk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZkNjJiJywgdj0nMzYyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZTQzNicsIHY9JzI3MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmYyNDcnLCB2PSczMDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwMDU3Jywgdj0nMjg5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MGU2NycsIHY9JzMyNTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzFjNzcnLCB2PScxODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzJhODcnLCB2PSctNjM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjczODk3Jywgdj0nLTQyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NDZhOCcsIHY9Jy03MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzU0YjknLCB2PSctOTc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc2MmM3Jywgdj0nMjY3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NzBkOCcsIHY9JzEyNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzdlZTcnLCB2PSctNDk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzQyNDYwMCcsIGg9JzNkYzFhOGRlJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9Jy00MzEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTA4Jywgdj0nLTQxNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzMyJywgdj0nLTQxMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTNjJywgdj0nLTQwOTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODM1Jywgdj0nLTM5ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NjQ1Jywgdj0nLTM5MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NDU1Jywgdj0nLTQ0MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MjY1Jywgdj0nLTUzMjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDc1Jywgdj0nLTYyOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZTg1Jywgdj0nLTczMzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4Yzk2Jywgdj0nLTc1NDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWE1Jywgdj0nLTcyNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGI2Jywgdj0nLTY4NjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNmM1Jywgdj0nLTY0NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGQ3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMzBiJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGY2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZjA2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDE3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyNycsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE5MzcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzQ2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzU1NicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQzNjYnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MTgxJywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWY4NScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZkOTUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YmE0Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODliNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3YzQnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNWQ1Jywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjNlNicsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMxZjYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDA1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGUxNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMjUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTM2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDg0NScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE2NTYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDY1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3NicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQwODYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZTk5Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWNhNycsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYjcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3OGM2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyODZkNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjk0ZTYnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAxJywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYjEwNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmJmMTUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJjZDI1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyZGIzNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmU5NDYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJmNzU1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMDU2NicsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzEzNzUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMyMTllJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMmY5NicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzNkYTYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM0YmI2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNTlkZScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzY3ZDYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM3NWU2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODQwZScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzkyMWUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNhMDE2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYWUyNycsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2JjMzYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNjYTQ3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZDg1NicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2U2NjcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNmNDgxJywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MDI4NScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDEwOTUnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxZWE1Jywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MmNiNScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDNhYzUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ0OGQ1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NTZlNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0ZjUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ4MGZmJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0OGYwZScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDlkMWQnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRhYjQ2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0Yjk1NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGM3NjknLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRkNTc3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZTM4NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGYxOTYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmZmE2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MGRkMCcsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTFiYzYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUyOWQ2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MzdlNycsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDA2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NjIxNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3ZTM2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OGM0NicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVhODY3Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YjY3NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWM0ODcnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVkMjk2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZTBhOScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWVlYjgnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVmY2M2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MGFkNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjE4ZTcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYyNmY3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MzUwNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjQzMTcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY1MTI3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NWYzNycsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjZkNDYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY3YjU3Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ODk2NycsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjk3ODInLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZhNTg2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YjM5NScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmMxYTYnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZjZmI1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZGRjNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmViZDYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZmOWU2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDdmNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzE2MDcnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcyNDE3Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MzIyNycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzQwMzcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0ZTQ3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NWM1NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzZhNjMnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc3ODczJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ODY4MCcsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzk0OGYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdhMjlmJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YjBhZicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2JlYmYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdjY2NmJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZGFkZicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4ZmEnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdmNzBhJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MDUxYScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODEzMmEnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyMTNhJywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MmY0YScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODNkNWEnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg0YjZhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NTk3YScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODY3OGInLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg3NTliJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ODNhYycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODkxYmInLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5ZmNhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YWRkYScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGJiZWInLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOWZjJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZDgwYicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGU2MWEnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhmNDJhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MDIzYScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTEwNGEnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxZTVhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MmM2YScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTNhODQnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk0ODg1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NTY5NCcsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTY0YTUnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk3MmI0Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ODBjNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOThlZDQnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk5Y2U1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YWFmNScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWI5MDYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzljNzE2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZDUyNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWUzMzYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlmMTQ1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZmY1NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTBkNjUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ExYjc3Jywgdj0nLTY0NjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMjk4NicsIHY9Jy0zNTQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTM3OTUnLCB2PSctOTg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTQ1YTcnLCB2PSc2OTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNTNiNicsIHY9Jzc3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2MWM3Jywgdj0nOTI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTZmZDYnLCB2PScxMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhN2UwMCcsIHY9JzQ1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YzAwJywgdj0nOTAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMDUnLCB2PScyNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYTgxNScsIHY9JzI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWI2MjUnLCB2PSc0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FjNDM1Jywgdj0nMTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWQyNDUnLCB2PSc5NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZTA1NScsIHY9JzcyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlZTY1Jywgdj0nLTQ1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FmYzc1Jywgdj0nLTExNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IwYTg1Jywgdj0nMjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiMjZhNicsIHY9JzE4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IzNGI2Jywgdj0nLTE1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I0MmM2Jywgdj0nLTQyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1MGQ2Jywgdj0nLTcwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1ZWU3Jywgdj0nLTc5MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I2Y2Y2Jywgdj0nLTE1NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiN2IwNycsIHY9Jy0yMDI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjg5MTcnLCB2PSctMTc1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I5NzI4Jywgdj0nLTE3MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYTUzNycsIHY9Jy0xOTAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmIzNDcnLCB2PSctNzQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmMxNTcnLCB2PSctODEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmNmNjcnLCB2PSctODkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmRkODEnLCB2PSc2NTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZWI4NicsIHY9JzQxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JmOTk1Jywgdj0nNTE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzA3YTYnLCB2PSczOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMTViNScsIHY9JzM4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MyM2M2Jywgdj0nNDcwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzMxZDUnLCB2PSc1OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjM2ZlNicsIHY9JzI2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M0ZGY1Jywgdj0nNzcwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzVjMDYnLCB2PScxNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNmExNicsIHY9JzQzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M3ODI2Jywgdj0nLTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzg2MzYnLCB2PSc3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M5NDQ2Jywgdj0nMjQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2EyNTYnLCB2PScyMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYjA2NicsIHY9JzExNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiZTc2Jywgdj0nLTQyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NjYzg3Jywgdj0nLTIyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NkYTk2Jywgdj0nLTI4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NlOGE4Jywgdj0nLTI0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NmNmI3Jywgdj0nLTEzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QwNGM4Jywgdj0nLTU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDEyZDcnLCB2PSc5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyMGU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QyZjAyJywgdj0nMTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkM2QwNScsIHY9JzU5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjE1Jywgdj0nNzIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDU5MjYnLCB2PSc4MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzEwNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNzU0NicsIHY9JzEyNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkODM1NScsIHY9Jy0xMTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOTE2NicsIHY9Jy03MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkOWY3NScsIHY9Jy0xNTA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGFkODcnLCB2PSctMjA4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RiYjk3Jywgdj0nLTI1NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYzlhOCcsIHY9Jy0yMzQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGQ3YjcnLCB2PSctMjkyMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RlNWM2Jywgdj0nLTI3MTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZjNkNycsIHY9Jy0yODU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTAxZDcnLCB2PSctMjkyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwZmU1Jywgdj0nLTI4MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMWRmNScsIHY9Jy0zMDMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTJjMDQnLCB2PSctNDAxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UzYTE0Jywgdj0nLTM5MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNDgyNCcsIHY9Jy0zNDEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTU2MzQnLCB2PSctMzQ0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U2NDQ0Jywgdj0nLTI1NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNzI1NScsIHY9Jy0yMTM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTgwNmYnLCB2PSctMTc2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4ZTdmJywgdj0nLTQ2NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U5YzhlJywgdj0nLTcwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VhYTlmJywgdj0nLTY0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ViOGFlJywgdj0nLTY3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VjNmJmJywgdj0nLTUwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VkNGNlJywgdj0nLTIxNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZTJkZicsIHY9Jy0yMzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwZWYnLCB2PSctMzE3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmZjAxJywgdj0nLTQwMzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMGQxMCcsIHY9Jy00MzM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjFiMjAnLCB2PSctNDY1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YyOTMwJywgdj0nLTQ2NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMzc0MCcsIHY9Jy00MzQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjQ1NTEnLCB2PSctNDU3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y1MzYxJywgdj0nLTQ5MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNjE3MicsIHY9Jy00NjA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjZmODAnLCB2PSctNDg2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y3ZDkxJywgdj0nLTQzMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmOGJhMScsIHY9Jy0zODk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjk5YjEnLCB2PSctMzc4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZhN2MwJywgdj0nLTI5ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYjVkMScsIHY9Jy0zMDk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmMzZTAnLCB2PSctMzMzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZkMWZiJywgdj0nLTI2ODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZTAwYicsIHY9Jy0yNTIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMWMnLCB2PSctMjA3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZmYzJjJywgdj0nLTE5ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDBhM2InLCB2PSctMTc4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMTg0YycsIHY9Jy0xNzk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAyNjViJywgdj0nLTIwNzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDM0NmMnLCB2PSctMjY5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNDI3YicsIHY9Jy0zOTMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA1MDhkJywgdj0nLTQ0MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDVlOWQnLCB2PSctNDM2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNmNhZCcsIHY9Jy00NjkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA3YWJkJywgdj0nLTQzMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDg4Y2QnLCB2PSctMzkyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwOTZkZScsIHY9Jy00MTAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBhNGVkJywgdj0nLTQxODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGIyZmUnLCB2PSctNDM0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYzEwZCcsIHY9Jy00MTYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBjZjFlJywgdj0nLTQ0NTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGRkMmUnLCB2PSctNDEzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZWI2NicsIHY9Jy00NDk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBmOTRlJywgdj0nLTM4ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTA3NWUnLCB2PSctMzI5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMTU2ZCcsIHY9Jy0yODYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEyMzg4Jywgdj0nLTI2NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTMxODcnLCB2PSctMTc3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExM2ZiMCcsIHY9Jy0xODEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE0ZGE2Jywgdj0nLTE4MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTViYjYnLCB2PSctMTgwMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNjljNicsIHY9Jy0xNTk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE3N2Q2Jywgdj0nLTIwNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTg1ZTgnLCB2PSctMjk2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTNmNycsIHY9Jy0zNjI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFhMjA4Jywgdj0nLTQ4MzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWIwMTcnLCB2PSctNDI5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9Jy01MjU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFjYzM3Jywgdj0nLTQ0MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWRhNDcnLCB2PSctNDMyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZTg1NycsIHY9Jy00NDIwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFmNjY3Jywgdj0nLTM5NTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjA1NzgnLCB2PSctNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMTM4NicsIHY9Jy00JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyMTk2Jywgdj0nLTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjJmYTYnLCB2PSctMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyM2RiNScsIHY9Jy0zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI0YmM1Jywgdj0nLTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjU5ZDUnLCB2PSctMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNjdlNCcsIHY9Jy0yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NjAwJywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjgzMDUnLCB2PSctMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTExNScsIHY9Jy0yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5ZjI1Jywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmFkMzUnLCB2PSctMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYmI0NScsIHY9Jy0xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJjOTU0Jywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmQ3NjYnLCB2PSctMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZTU3NScsIHY9Jy0zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJmMzg2Jywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzAxOTYnLCB2PSctNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMGZhNicsIHY9Jy0zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMxZGI3Jywgdj0nLTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzJiYzUnLCB2PSctMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMzlkNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzQ3ZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NWY0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNjQwNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzcyMTQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM4MDI0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzOGUzMycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzljNDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNhYTU0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYjg2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2M2N2UnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNkNDhlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZTI5ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2YwYWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmZWJmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MGNjZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDFhZGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQyOGVmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzZmZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDQ1MGYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ1MzFmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NjEzMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDZmNDAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ3ZDQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0OGI1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDk5NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRhNzc1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YjU4NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGMzOTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRkMWE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZGZiNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGVkYzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRmYmQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MDllNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTE3ZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUyNjA1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQxNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTQyMjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU1MDM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NWU0NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTZjNTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU3YTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ODg3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTk2ODYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVhNDk1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YjJhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWMwYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjZWM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZGNkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWVhZTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmOGY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MDcwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjE1MTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYyMzI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MzEzNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjNmNDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY0ZDU3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NWI2NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjY5ODInLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY3Nzg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ODU5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjkzYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZhMWI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YWZjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmJkZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZjYmU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDlmNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmU4MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZmNjE2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MDQyOScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzEyMzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcyMDQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MmU1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzNjNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc0YTc3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NTg4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzY2OTQnLCB2PSctNjg2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9Jy02NzkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc4MmIzJywgdj0nLTcyNTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzkwYzUnLCB2PSctNjczNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3OWVkNCcsIHY9Jy02MDMwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdhY2U0Jywgdj0nLTU4OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2JhZmQnLCB2PSctNjA2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YzkwZicsIHY9Jy01NDg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdkNzFlJywgdj0nLTU0NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2U1MmYnLCB2PSctNTMzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZjMzZicsIHY9Jy00OTgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgwMTRmJywgdj0nLTUxOTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODBmNWYnLCB2PSctNjMxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MWQ2ZScsIHY9Jy02ODM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgyYjdmJywgdj0nLTc4NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODM5OGYnLCB2PSctMTM1MDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODQ3YTEnLCB2PSctMTMzODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODU1YWYnLCB2PSctMTI3NzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODYzYzAnLCB2PSctMTE4OTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODcxY2YnLCB2PSctMTIzMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODdmZTAnLCB2PSctMTE3NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODhkZWYnLCB2PSctMTI2NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODljMDAnLCB2PSctMTE4NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGI4MGQnLCB2PSctNzQ3MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YzYxYycsIHY9Jy04MTI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThkNDJjJywgdj0nLTc2OTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGUyM2InLCB2PSctNjUzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZjA0YicsIHY9Jy02MTc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmZTVlJywgdj0nLTU2NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTBjNzYnLCB2PSctNDQ4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MWE4NicsIHY9Jy00MzAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkyODk2Jywgdj0nLTQyNjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTM2YTYnLCB2PSctNDExOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NDRiNycsIHY9Jy00MTAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk1MmM2Jywgdj0nLTQ1MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTYwZDcnLCB2PSctNTEzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NmVlNicsIHY9Jy02MDM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk3Y2Y4Jywgdj0nLTYzOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOThiMGYnLCB2PSctNTg5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OTkxZicsIHY9Jy02NjkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTliNTQxJywgdj0nLTY2MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWMzNGQnLCB2PSctNjE1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZDE1ZScsIHY9Jy02MTI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlkZjgwJywgdj0nLTYyMjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVkOTAnLCB2PSctNjA0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZWViZScsIHY9Jy02MDA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlmYjhlJywgdj0nLTIyOTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PSctMjU0MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMTdhZScsIHY9Jy0zMDg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEyNWJlJywgdj0nLTMyNjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTMzY2QnLCB2PSctMjI2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNDFkZCcsIHY9Jy0yMTU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0ZmVkJywgdj0nLTE1MzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVlMDgnLCB2PSctMTY3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNmMwNScsIHY9Jy05NjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTdhMTUnLCB2PSctMTEyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhODgyNicsIHY9Jy0xMDYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjM3Jywgdj0nLTUwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYTQ0NScsIHY9Jy01MzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWIyNTUnLCB2PSctOTkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjMDY1Jywgdj0nLTE4MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWNlNzUnLCB2PSctMjU3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZGM4NycsIHY9Jy0yODQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFlYTk2Jywgdj0nLTI2MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWY4YTcnLCB2PSctMjkyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMDZiNycsIHY9Jy0yMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIxNGM2Jywgdj0nLTIwNzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzc0NjAnLCB2PSczNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzgyNzAnLCB2PSc0MzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzkwN2UnLCB2PSczNDA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nMzI2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYWNhMicsIHY9JzM2NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2JhYjEnLCB2PSczNTIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNjOGMxJywgdj0nNTQzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZDZkMCcsIHY9JzU1NjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2U0ZGUnLCB2PSc1NjYwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNmMmYwJywgdj0nNTYyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMDEwOScsIHY9JzU4OTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDBmMDYnLCB2PSc2NjU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQxZDE1Jywgdj0nNjY0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMmIyNScsIHY9JzY3MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDM5MzUnLCB2PSc2OTE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ0NzQ1Jywgdj0nNjg3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNTU1NScsIHY9JzY2OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDYzNjYnLCB2PSc1ODE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ3MTc1Jywgdj0nNTYxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkN2Y4NicsIHY9JzU2MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDhkOTUnLCB2PSctMzIzMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOWJhNicsIHY9Jy0zNjU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRhOWI2Jywgdj0nLTM2MjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGI3YzcnLCB2PSctMzQ0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9Jy0zNjAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRkM2U2Jywgdj0nLTM3MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGUxZjUnLCB2PSctNTk5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZjAwNicsIHY9Jy02NzE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRmZTE2Jywgdj0nLTY1ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTBjMjYnLCB2PSctNjc2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMWEzNicsIHY9Jy02ODAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUyODQ3Jywgdj0nLTY1MjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTM2NTknLCB2PSctNjE3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNDQ2NycsIHY9Jy01Njc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU1MjgxJywgdj0nLTQ5MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTYwODYnLCB2PSctNDkxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNmU5NicsIHY9Jy00ODAxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU3Y2E2Jywgdj0nLTE5ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZThhYjUnLCB2PSctMTgxMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlOThjNicsIHY9Jy0xODM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVhNmQ1Jywgdj0nLTIyNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWI0ZTYnLCB2PSctMjMyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzJmNicsIHY9Jy0yNjg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkMTA2Jywgdj0nLTI2NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWRmMTYnLCB2PSctMjc3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZWQyNicsIHY9Jy0yNjg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVmYjM2Jywgdj0nLTI2NTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjA5NDYnLCB2PSctMjU1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMTc1NicsIHY9Jy0yMzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYyNTY2Jywgdj0nLTIzMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjMzNzYnLCB2PSctMjU4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNDE4NycsIHY9Jy0yODExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY0Zjk2Jywgdj0nLTMxODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjVkYTcnLCB2PSctMzU3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNmJiNicsIHY9Jy0zNTQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY3OWM3Jywgdj0nLTMxNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjg3ZDYnLCB2PSctMzM0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmOTVlNycsIHY9Jy0zMTM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhNDAxJywgdj0nLTI4MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PSctMjUwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYzAxNicsIHY9Jy0yNDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjZTI1Jywgdj0nLTIxNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmRjMzUnLCB2PSctMjEzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZWE0NScsIHY9Jy0yMTU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZmODU1Jywgdj0nLTI0OTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDA2NjUnLCB2PSctMjM2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMTQ3NScsIHY9Jy0zNTEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAyMjg2Jywgdj0nLTQ1NjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDMwOTUnLCB2PSctNTM0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwM2VhNScsIHY9Jy02MDU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA0Y2I2Jywgdj0nLTU3OTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDVhYzYnLCB2PSctNTM0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNjhkNicsIHY9Jy01Mzk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA3NmU2Jywgdj0nLTU5NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDg0ZjYnLCB2PSctNjA5MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwOTMwNicsIHY9Jy02Nzc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBhMTE2Jywgdj0nLTYzNzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGFmMjYnLCB2PSctNTQ3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYmQzNycsIHY9Jy01MzgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBjYjQ2Jywgdj0nLTQ2MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGQ5NTcnLCB2PSctNDMxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZTc2NycsIHY9Jy00MDU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBmNTgxJywgdj0nLTM4NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTAzODYnLCB2PSctMzQ4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMTE5NCcsIHY9Jy0zMTE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExZmE1Jywgdj0nLTMwMTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTJkYjUnLCB2PSctMjk0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxM2JjNScsIHY9Jy0yODE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE0OWQ2Jywgdj0nLTM2NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTU3ZTUnLCB2PSctNDQ5OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjVmNicsIHY9Jy01Nzk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE3NDA2Jywgdj0nLTYxOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTgyMTcnLCB2PSctNjE3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOTAyNicsIHY9Jy02MTAyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE5ZTM5Jywgdj0nLTYyMTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWFjNDYnLCB2PSctNTg5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYmE1NycsIHY9Jy01OTg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFjODY3Jywgdj0nLTU2MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWQ2NzcnLCB2PSctNjIxMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZTQ4NycsIHY9Jy01NzgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFmMjk2Jywgdj0nLTU3MjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjAwYTYnLCB2PSctNTUzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMGViNycsIHY9Jy01NDA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIxY2M2Jywgdj0nLTQ2MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjJhZDcnLCB2PSctMzg3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMzhlNycsIHY9Jy0zNjE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NzAxJywgdj0nLTMyOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjU1MDUnLCB2PSctMTY4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNjMxNScsIHY9Jy0yMDcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3MTI1Jywgdj0nLTIwNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjdmMzUnLCB2PSctMTY3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOGQ0NScsIHY9Jy0xNzkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI5YjU0Jywgdj0nLTM0ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmE5NjUnLCB2PSctMzkxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYjc3NicsIHY9Jy00NTc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJjNTg2Jywgdj0nLTQ3ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmQzOTcnLCB2PSctNDQ1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZTFhNicsIHY9Jy00NjkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJlZmI2Jywgdj0nLTQ4MzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmZkYzcnLCB2PSctNDY1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9Jy00NDUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMxOWU2Jywgdj0nLTUzOTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3ZjYnLCB2PSctNTUzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9Jy01ODY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM0NDE2Jywgdj0nLTUyMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzUyMjYnLCB2PSctNTE2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNjAzNycsIHY9Jy01MjUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM2ZTQ2Jywgdj0nLTQzODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzdjNTcnLCB2PSctNDIxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOGE2NicsIHY9Jy00MDE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM5ODgxJywgdj0nLTMyMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2E2ODUnLCB2PSctMzMxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYjQ5NScsIHY9Jy0zMTgzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNjMmE0Jywgdj0nLTI5NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2QwYjUnLCB2PSctMjk0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZGVjNCcsIHY9Jy0yOTMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNlY2Q1Jywgdj0nLTM1NzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2ZhZTQnLCB2PSctNDU0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDhmNicsIHY9Jy01MTE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQxNzA2Jywgdj0nLTU3MzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDI1MTgnLCB2PSctNjUxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MzMyNScsIHY9Jy02Nzc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0MTM3Jywgdj0nLTY3NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDRmNDYnLCB2PSctNjM2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI2NicsIHY9Jy02NTQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ3OTc2Jywgdj0nLTYyNzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDg3ODYnLCB2PSctNTQwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0OTU3ZScsIHY9Jy01Nzk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRhMzhmJywgdj0nLTU2NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGIxOWMnLCB2PSctNTc0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YmZhYycsIHY9Jy01NDQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRjZGJjJywgdj0nLTU0NDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGRiY2QnLCB2PSctNDU1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZTllNScsIHY9Jy00MDE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRmODA4Jywgdj0nLTM0ODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTA2MTYnLCB2PSctMzYxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MTQyNicsIHY9Jy0zNTU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUyMjM2Jywgdj0nLTM0MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTMwNDcnLCB2PSctMzYwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1M2U1NicsIHY9Jy00MDIwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU0YzY3Jywgdj0nLTQxODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTVhNzYnLCB2PSctNDk5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Njg4NycsIHY9Jy01ODEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU3Njk3Jywgdj0nLTU1OTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTg0YTgnLCB2PSctMTUyMjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTkyYjYnLCB2PSctODY5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YTBjNycsIHY9Jy00NTc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVhZWQ3Jywgdj0nLTYzMTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWJjZTcnLCB2PSctNjEwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1Y2FmOCcsIHY9Jy01NzUwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVkOTA3Jywgdj0nLTU3NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWU3MTgnLCB2PSctNTY0OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZjUyNycsIHY9Jy01MjQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nLTU1NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjExNDknLCB2PSctNDg3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MWY1OScsIHY9Jy00NjE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYyZDY4Jywgdj0nLTQ2MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjNiODMnLCB2PSctMzYxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NDk4NicsIHY9Jy0zNDY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY1Nzk1Jywgdj0nLTM1NjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjY1YTYnLCB2PSctMzY3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NzNiNScsIHY9Jy0zNjE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4MWM2Jywgdj0nLTM2MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjhmZDUnLCB2PSctMzg2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2OWRlNicsIHY9Jy0zOTY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZhYmY2Jywgdj0nLTM4ODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmJhMDYnLCB2PSctNDM4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YzgxNycsIHY9Jy00MjcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZkNjJiJywgdj0nLTM5NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmU0MzYnLCB2PSctNDAwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZjI0NycsIHY9Jy0zNTYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwMDU3Jywgdj0nLTM4NzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNjcnLCB2PSctMzU2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MWM3NycsIHY9Jy00NjkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcyYTg3Jywgdj0nLTUxOTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzM4OTcnLCB2PSctNTIxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NDZhOCcsIHY9Jy01MDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc1NGI5Jywgdj0nLTQ5NjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzYyYzcnLCB2PSctNDA0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NzBkOCcsIHY9Jy0zNzA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc3ZWU3Jywgdj0nLTMyMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nNDM4MjAwJywgaD0nM2RjMWE4ZGUnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nLTExMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMDgnLCB2PSctMTI4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjMzInLCB2PSctMTM1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhM2MnLCB2PSctMTQyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM4MzUnLCB2PSctMTI0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NDUnLCB2PSctMTEwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NTUnLCB2PSctOTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2NScsIHY9Jy0xNDcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3NScsIHY9Jy0xNTIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4NScsIHY9Jy0xNDM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5NicsIHY9Jy0xNzg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhNScsIHY9Jy0xNzU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYThiNicsIHY9Jy0xNjgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjZjNScsIHY9Jy0xNzQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkNycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDMwYicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmNicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjI3Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTkzNycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI3NDYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTU2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2NicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxODEnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Zjg1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5NScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYTQnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4OWI1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTdjNCcsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZDUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiM2U2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzFmNicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwMDUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZTE1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWMyNScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhMzYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwODQ1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1NicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NjUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMjc2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDA4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5OScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYTcnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWI3Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzhjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyODZkNicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjk0ZTYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAxJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYjEwNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYmYxNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyY2QyNScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmRiMzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmU5NDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmY3NTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzA1NjYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMxMzc1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMjE5ZScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzJmOTYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMzZGE2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNGJiNicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzU5ZGUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM2N2Q2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNzVlNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczODQwZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczOTIxZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYTAxNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYWUyNycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2JjMzYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNjYTQ3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNkODU2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZTY2NycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Y0ODEnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQwMjg1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MTA5NScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDFlYTUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQyY2I1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0M2FjNScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDQ4ZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDU2ZTYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NGY1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ODBmZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0OGYwZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0OWQxZCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0YWI0NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0Yjk1NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0Yzc2OScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZDU3NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZTM4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZjE5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZmZhNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MGRkMCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MWJjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MjlkNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MzdlNycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ2MDAnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDA2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NjIxNScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTcwMjYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3ZTM2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1OGM0NicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTlhNzAnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVhODY3Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YjY3NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YzQ4NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZDI5NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZTBhOScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWVlYjgnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVmY2M2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MGFkNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MThlNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MjZmNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MzUwNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NDMxNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NTEyNycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjVmMzcnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY2ZDQ2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2N2I1NycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjg5NjcnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY5NzgyJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YTU4NicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmIzOTUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZjMWE2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2Y2ZiNScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmRkYzYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZlYmQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZmOWU2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MDdmNicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzE2MDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzI0MTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzMyMjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzQwMzcnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0ZTQ3Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NWM1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NmE2MycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Nzg3MycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ODY4MCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3OTQ4ZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YTI5ZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YjBhZicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2JlYmYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdjY2NmJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZGFkZicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4ZmEnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdmNzBhJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MDUxYScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODEzMmEnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgyMTNhJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MmY0YScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODNkNWEnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg0YjZhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg1OTdhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg2NzhiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg3NTliJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg4M2FjJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4OTFiYicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODlmY2EnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhhZGRhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhiYmViJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhjOWZjJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhkODBiJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhlNjFhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhmNDJhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkwMjNhJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxMDRhJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MWU1YScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MmM2YScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTNhODQnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk0ODg1Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NTY5NCcsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTY0YTUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk3MmI0Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ODBjNScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOThlZDQnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk5Y2U1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzlhYWY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzliOTA2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YzcxNicsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWQ1MjYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzllMzM2Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZjE0NScsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWZmNTYnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EwZDY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ExYjc3Jywgdj0nLTE1OTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMjk4NicsIHY9Jy01MDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMzc5NScsIHY9JzEzNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNDVhNycsIHY9Jy00NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E1M2I2Jywgdj0nLTM0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2MWM3Jywgdj0nLTU4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2ZmQ2Jywgdj0nLTc1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E3ZTAwJywgdj0nLTEzNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOGMwMCcsIHY9Jy0xOTA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMDUnLCB2PScxMDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYTgxNScsIHY9Jy0zNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYjYyNScsIHY9Jy03NDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYzQzNScsIHY9Jy01NTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZDI0NScsIHY9JzQzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlMDU1Jywgdj0nMTU5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlZTY1Jywgdj0nMjc1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWZjNzUnLCB2PScxMDE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjBhODUnLCB2PSczNDQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjI2YTYnLCB2PSczNjI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjM0YjYnLCB2PSczMjAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjQyYzYnLCB2PScyMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiNTBkNicsIHY9JzM4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I1ZWU3Jywgdj0nODkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjZjZjYnLCB2PSctNDQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjdiMDcnLCB2PSctMjAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjg5MTcnLCB2PSctNDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiOTcyOCcsIHY9Jy00MjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYTUzNycsIHY9Jy03MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYjM0NycsIHY9Jzk0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JjMTU3Jywgdj0nMjc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmNmNjcnLCB2PSctOTQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmRkODEnLCB2PSczMTI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmViODYnLCB2PSc0NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZjk5NScsIHY9JzE5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MwN2E2Jywgdj0nLTI0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MxNWI1Jywgdj0nLTEyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MyM2M2Jywgdj0nNDMwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzMxZDUnLCB2PScxNTgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzNmZTYnLCB2PSc3MjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNGRmNScsIHY9JzEzMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNWMwNicsIHY9JzU4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M2YTE2Jywgdj0nNjQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzc4MjYnLCB2PScxMDk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzg2MzYnLCB2PSczMTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjOTQ0NicsIHY9JzM3NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NhMjU2Jywgdj0nMjA0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2IwNjYnLCB2PSc2OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYmU3NicsIHY9Jy0xOTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjY2M4NycsIHY9JzE4ODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZGE5NicsIHY9JzI1MDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZThhOCcsIHY9JzE4NDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjZjZiNycsIHY9JzI0MzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMDRjOCcsIHY9JzE5MzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMTJkNycsIHY9JzEyMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMjBlNycsIHY9Jy0yNTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMmYwMicsIHY9Jy0xOTcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDNkMDUnLCB2PSctMTAyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjE1Jywgdj0nLTEwNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNTkyNicsIHY9Jy0zODgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNjczNScsIHY9JzIyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q3NTQ2Jywgdj0nMTEzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q4MzU1Jywgdj0nLTcyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q5MTY2Jywgdj0nMTY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PSc5NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYWQ4NycsIHY9JzIzNDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYmI5NycsIHY9JzIzNTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYzlhOCcsIHY9JzI1NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZDdiNycsIHY9JzExMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZTVjNicsIHY9JzM2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RmM2Q3Jywgdj0nMTczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTAxZDcnLCB2PScxNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGZlNScsIHY9JzQ2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UxZGY1Jywgdj0nMzU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTJjMDQnLCB2PSctMzA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTNhMTQnLCB2PSctMTAwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U0ODI0Jywgdj0nOTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNTYzNCcsIHY9Jy03MjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNjQ0NCcsIHY9JzE0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U3MjU1Jywgdj0nLTU1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4MDZmJywgdj0nLTYyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4ZTdmJywgdj0nMjMxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U5YzhlJywgdj0nNzE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWFhOWYnLCB2PSc2MDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYjhhZScsIHY9Jzk1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VjNmJmJywgdj0nMjI2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VkNGNlJywgdj0nLTQwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VlMmRmJywgdj0nOTk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwZWYnLCB2PSc0NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZmYwMScsIHY9JzE2NjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMGQxMCcsIHY9JzgyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YxYjIwJywgdj0nMTA1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YyOTMwJywgdj0nLTMxNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YzNzQwJywgdj0nMTQzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y0NTUxJywgdj0nMTIwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y1MzYxJywgdj0nMTI4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2MTcyJywgdj0nMTQzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2ZjgwJywgdj0nMTE0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y3ZDkxJywgdj0nMTYzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y4YmExJywgdj0nOTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjk5YjEnLCB2PScxMDE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmE3YzAnLCB2PScxMjE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmI1ZDEnLCB2PScxMTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmMzZTAnLCB2PSctODkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmQxZmInLCB2PSctMTAxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlMDBiJywgdj0nLTEzODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZWUxYycsIHY9Jy0xODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZmMyYycsIHY9Jy0yMjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDBhM2InLCB2PSc1MDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDE4NGMnLCB2PSc5NDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDI2NWInLCB2PScxNzE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAzNDZjJywgdj0nMTU5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNDI3YicsIHY9Jzk2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNTA4ZCcsIHY9JzE1MzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDVlOWQnLCB2PScxMTc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA2Y2FkJywgdj0nMTMzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwN2FiZCcsIHY9JzczNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwODhjZCcsIHY9JzcyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwOTZkZScsIHY9JzkxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYTRlZCcsIHY9Jzc5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYjJmZScsIHY9JzEwNzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGMxMGQnLCB2PScyMzI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBjZjFlJywgdj0nMTE5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZGQyZScsIHY9Jzg2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZWI2NicsIHY9JzE4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZjk0ZScsIHY9JzEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEwNzVlJywgdj0nOTc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTExNTZkJywgdj0nMjU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEyMzg4Jywgdj0nLTEwMDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTMxODcnLCB2PSc2MTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTNmYjAnLCB2PScyMDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTRkYTYnLCB2PScxOTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTViYjYnLCB2PSczMTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTY5YzYnLCB2PScxMjQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE3N2Q2Jywgdj0nMTc0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExODVlOCcsIHY9JzEwNDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTkzZjcnLCB2PScxMDk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFhMjA4Jywgdj0nMzA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFiMDE3Jywgdj0nLTIwMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYmUyZicsIHY9Jy03MjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWNjMzcnLCB2PSc2ODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWRhNDcnLCB2PSc0NDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWU4NTcnLCB2PSc4NzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWY2NjcnLCB2PSc0NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjA1NzgnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIxMzg2Jywgdj0nMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMjE5NicsIHY9JzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjJmYTYnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIzZGI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNGJjNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjU5ZDUnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI2N2U0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzYwMCcsIHY9Jy0xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI4MzA1Jywgdj0nLTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMTUnLCB2PSctMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOWYyNScsIHY9Jy0xJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJhZDM1Jywgdj0nLTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmJiNDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJjOTU0Jywgdj0nMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZDc2NicsIHY9JzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmU1NzUnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJmMzg2Jywgdj0nMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMDE5NicsIHY9JzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzBmYTYnLCB2PScxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMxZGI3Jywgdj0nMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMmJjNScsIHY9JzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzM5ZDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM0N2U1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTVmNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzY0MDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM3MjE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzODAyNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzhlMzMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYWE1NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2I4NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZDQ4ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2UyOWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmMGFlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZmViZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDBjY2YnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQxYWRmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MjhlZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2ZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ0NTBmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NTMxZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDYxMzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2ZjQwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0N2Q0NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDhiNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ5OTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YTc3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGI1ODQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRjMzk3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZDFhNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGRmYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRlZGM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZmJkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTA5ZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxN2ZmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MjYwNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTM0MTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU0MjI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NTAzNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTVlNDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU2YzU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1N2E2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTg4NzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU5Njg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YTQ5NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWIyYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjMGI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Y2VjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWRjZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVlYWU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZjhmNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjA3MDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYxNTE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MjMyNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjMxMzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzZjQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NGQ1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjViNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY2OTgyJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Nzc4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjg1OTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY5M2E2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YTFiNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmFmYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZiZGQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Y2JlNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5ZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZlODA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZjYxNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzA0MjknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcxMjM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MjA0NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzJlNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTczYzY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NGE3NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzU4ODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc2Njk0Jywgdj0nMTk1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NzRhMycsIHY9JzE1MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzgyYjMnLCB2PScxMDI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5MGM1Jywgdj0nNjc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5ZWQ0Jywgdj0nLTc1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YWNlNCcsIHY9Jy0yMDQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYWZkJywgdj0nLTI1NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2M5MGYnLCB2PSctMjE3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcxZScsIHY9Jy0yMTI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdlNTJmJywgdj0nLTI0ODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2YzM2YnLCB2PSctMTk4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MDE0ZicsIHY9Jy0xMDcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgwZjVmJywgdj0nLTUyNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MWQ2ZScsIHY9Jy0xMzY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgyYjdmJywgdj0nLTE3NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODM5OGYnLCB2PSctODkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nLTg0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4NTVhZicsIHY9Jy0xMTQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg2M2MwJywgdj0nLTI3MTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODcxY2YnLCB2PSctMjI5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4N2ZlMCcsIHY9Jy0yMjA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg4ZGVmJywgdj0nLTIwMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODljMDAnLCB2PSctOTk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThiODBkJywgdj0nMTA0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4YzYxYycsIHY9Jy05NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGQ0MmMnLCB2PSctMTMzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZTIzYicsIHY9Jy0xMTIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThmMDRiJywgdj0nLTE2MjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGZlNWUnLCB2PSctMTQxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5MGM3NicsIHY9Jy02NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTFhODYnLCB2PSctMTUwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5Mjg5NicsIHY9Jy0xNTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkzNmE2Jywgdj0nLTE2MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTQ0YjcnLCB2PSctMTAzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NTJjNicsIHY9Jy0xOTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTYwZDcnLCB2PScxMzk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk2ZWU2Jywgdj0nLTYyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2NmOCcsIHY9Jy03MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOThiMGYnLCB2PScyMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5OTkxZicsIHY9Jy0xMzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWI1NDEnLCB2PSctODQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTljMzRkJywgdj0nLTY0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZDE1ZScsIHY9Jy0zMjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWRmODAnLCB2PSctMjEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZDkwJywgdj0nMjk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZWJlJywgdj0nNDE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTlmYjhlJywgdj0nMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTA5YTAnLCB2PSctMjEwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMTdhZScsIHY9Jy0yOTgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEyNWJlJywgdj0nLTMzMjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTMzY2QnLCB2PSctMTQzMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNDFkZCcsIHY9Jy0xOTg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE0ZmVkJywgdj0nLTM1NzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVlMDgnLCB2PSctMzIzMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNmMwNScsIHY9Jy0yMjg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE3YTE1Jywgdj0nLTI4NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTg4MjYnLCB2PSctMjk0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhOTYzNycsIHY9Jy0yMzQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFhNDQ1Jywgdj0nLTE3MTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWIyNTUnLCB2PSctNjY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjMDY1Jywgdj0nLTE3NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWNlNzUnLCB2PSctMjQxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZGM4NycsIHY9Jy0xNzI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFlYTk2Jywgdj0nLTE4MzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWY4YTcnLCB2PSctMTg4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMDZiNycsIHY9Jy0yMzQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIxNGM2Jywgdj0nLTIxNzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzc0NjAnLCB2PSczNzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzgyNzAnLCB2PSctMTMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nOTkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5ZThmJywgdj0nLTE1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYWNhMicsIHY9Jy04NDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2JhYjEnLCB2PSctMTE5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYzhjMScsIHY9JzI1NzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2Q2ZDAnLCB2PScxNTgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNlNGRlJywgdj0nOTA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNmMmYwJywgdj0nLTE0MDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAxMDknLCB2PSctMTU5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMGYwNicsIHY9Jy0xODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDFkMTUnLCB2PSctNjU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQyYjI1Jywgdj0nLTY3OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMzkzNScsIHY9Jzg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ0NzQ1Jywgdj0nNjgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ1NTU1Jywgdj0nMTA5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNjM2NicsIHY9Jy04MzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDcxNzUnLCB2PSctNzg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ3Zjg2Jywgdj0nLTIyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOGQ5NScsIHY9Jy00MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkOWJhNicsIHY9Jy0yODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGE5YjYnLCB2PSctNjk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRiN2M3Jywgdj0nLTY5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYzVkNScsIHY9Jy04MTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGQzZTYnLCB2PSctNjI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMWY1Jywgdj0nLTE0MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGYwMDYnLCB2PSctMTY2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9Jy0xNTc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUwYzI2Jywgdj0nLTE5MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTFhMzYnLCB2PSctMTk3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9Jy0yMDE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nLTE5ODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTQ0NjcnLCB2PSctMjAwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9Jy0xNjExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nLTE4NTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTZlOTYnLCB2PSctMTkwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9Jy0yNTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZThhYjUnLCB2PSctMzg2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU5OGM2Jywgdj0nLTEyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9Jy0zNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWI0ZTYnLCB2PSctMzEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVjMmY2Jywgdj0nLTUwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZDEwNicsIHY9Jy0yMzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWRmMTYnLCB2PSctMjg4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVlZDI2Jywgdj0nLTEyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9Jy0zMTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjA5NDYnLCB2PSctMjQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzU2Jywgdj0nNDM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYyNTY2Jywgdj0nNjA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYzMzc2Jywgdj0nMTA3OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNDE4NycsIHY9JzI0OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjRmOTYnLCB2PScxMzI3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY1ZGE3Jywgdj0nLTExNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNmJiNicsIHY9Jy00NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjc5YzcnLCB2PScyMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjg3ZDYnLCB2PSctMTQzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmOTVlNycsIHY9Jy0yMDE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZhNDAxJywgdj0nLTE0OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmIyMDQnLCB2PSctMTI4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYzAxNicsIHY9Jy0xMzA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZjZTI1Jywgdj0nLTQwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZGMzNScsIHY9Jy0xNjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmVhNDUnLCB2PSc5MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZjg1NScsIHY9JzMxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMDY2NScsIHY9JzI0ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDE0NzUnLCB2PSczNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDIyODYnLCB2PScxNjgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzMDk1Jywgdj0nMTU3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwM2VhNScsIHY9JzE1NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDRjYjYnLCB2PSczMDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDVhYzYnLCB2PScxMDc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA2OGQ2Jywgdj0nMTU1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNzZlNicsIHY9JzE5NzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDg0ZjYnLCB2PScyMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDkzMDYnLCB2PSctMzUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBhMTE2Jywgdj0nLTUyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYWYyNicsIHY9Jy0yMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGJkMzcnLCB2PSctNzgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBjYjQ2Jywgdj0nNDUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBkOTU3Jywgdj0nNjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGU3NjcnLCB2PSctODQ4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBmNTgxJywgdj0nLTEzODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTAzODYnLCB2PSctOTg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjExMTk0Jywgdj0nLTMyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMWZhNScsIHY9Jy0zODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTJkYjUnLCB2PSc2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxM2JjNScsIHY9Jzg4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNDlkNicsIHY9JzY1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNTdlNScsIHY9Jy0yNjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1ZjYnLCB2PSctOTkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE3NDA2Jywgdj0nMjg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE4MjE3Jywgdj0nLTI5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOTAyNicsIHY9Jy01NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTllMzknLCB2PSczNjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWFjNDYnLCB2PSc5MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNTcnLCB2PSc5OTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWM4NjcnLCB2PScxODA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFkNjc3Jywgdj0nLTEwNDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWU0ODcnLCB2PSc1NDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWYyOTYnLCB2PSczNzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjAwYTYnLCB2PSctNjE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwZWI3Jywgdj0nLTcxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMWNjNicsIHY9JzE0NTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjJhZDcnLCB2PScyNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjM4ZTcnLCB2PSctNjk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI0NzAxJywgdj0nLTEwODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjU1MDUnLCB2PScyODczJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI2MzE1Jywgdj0nNDIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3MTI1Jywgdj0nNTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nMTY5NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOGQ0NScsIHY9JzI0ODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjliNTQnLCB2PSctNzA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nLTIzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYjc3NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmM1ODYnLCB2PScxNzMwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nMjk5MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZTFhNicsIHY9JzI3NDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmVmYjYnLCB2PSctMTc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJmZGM3Jywgdj0nLTE5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMGJkNycsIHY9JzQ4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMTllNicsIHY9Jy03MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzI3ZjYnLCB2PSc3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMzYxYicsIHY9JzkwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNDQxNicsIHY9JzEyOTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzUyMjYnLCB2PSc3NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzYwMzcnLCB2PScxMjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzZlNDYnLCB2PScxNTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM3YzU3Jywgdj0nMTIwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOGE2NicsIHY9JzI1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9JzUwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYTY4NScsIHY9Jy0yNzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2I0OTUnLCB2PSctNTcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNjMmE0Jywgdj0nMTQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkMGI1Jywgdj0nNTY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkZWM0Jywgdj0nMTIyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9JzczMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZmFlNCcsIHY9JzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDA4ZjYnLCB2PScxMDQxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQxNzA2Jywgdj0nMzIyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MjUxOCcsIHY9JzI1NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDMzMjUnLCB2PScyNDIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0MTM3Jywgdj0nLTEwMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDRmNDYnLCB2PSctNzQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ2YjY2Jywgdj0nLTY2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Nzk3NicsIHY9JzQ1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ4Nzg2Jywgdj0nMzk4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0OTU3ZScsIHY9JzE2OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGEzOGYnLCB2PSc3MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGIxOWMnLCB2PSctODQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiZmFjJywgdj0nLTYwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Y2RiYycsIHY9Jy02NjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGRiY2QnLCB2PSctNDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRlOWU1Jywgdj0nLTExNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGY4MDgnLCB2PSctNzE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUwNjE2Jywgdj0nLTg3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MTQyNicsIHY9Jy0xMDI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUyMjM2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTMwNDcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzZTU2Jywgdj0nMTE4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NGM2NycsIHY9Jzg4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NWE3NicsIHY9JzExMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTY4ODcnLCB2PScxNzg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU3Njk3Jywgdj0nMzEzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ODRhOCcsIHY9Jy00MDMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU5MmI2Jywgdj0nLTIxMTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWEwYzcnLCB2PSctNDk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVhZWQ3Jywgdj0nMTc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjViY2U3Jywgdj0nMjEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYWY4Jywgdj0nNzEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVkOTA3Jywgdj0nMjEyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZTcxOCcsIHY9JzIzODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWY1MjcnLCB2PScxOTE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYwMzM4Jywgdj0nNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjExNDknLCB2PScxMDcwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxZjU5Jywgdj0nNTY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYyZDY4Jywgdj0nLTExODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjNiODMnLCB2PSczNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NDk4NicsIHY9Jy04NDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjU3OTUnLCB2PSctMTMxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NjVhNicsIHY9Jy0xODQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY3M2I1Jywgdj0nLTE0MDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjgxYzYnLCB2PSctMTEyOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2OGZkNScsIHY9Jy0zNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjlkZTYnLCB2PScyNjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmFiZjYnLCB2PSc1NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmJhMDYnLCB2PScxNDEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZjODE3Jywgdj0nMTU4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZDYyYicsIHY9JzMxNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmU0MzYnLCB2PScyMzQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZmMjQ3Jywgdj0nMjYyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MDA1NycsIHY9JzI1MDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNjcnLCB2PScyODE4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcxYzc3Jywgdj0nMTU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcyYTg3Jywgdj0nLTU0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3Mzg5NycsIHY9Jy0zNzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzQ2YTgnLCB2PSctNjI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc1NGI5Jywgdj0nLTg0NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NjJjNycsIHY9JzIzMTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzcwZDgnLCB2PScxMDk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc3ZWU3Jywgdj0nLTQxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPSc0MjIyMDAnLCBoPSczZGMxYThkZScpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PSctNDMwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwOCcsIHY9Jy00MTY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWMzMicsIHY9Jy00MDk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzYycsIHY9Jy00MDg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzgzNScsIHY9Jy0zOTYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDY0NScsIHY9Jy0zOTY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTQ1NScsIHY9Jy00NDExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjI2NScsIHY9Jy01MzU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3NScsIHY9Jy02MzE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2U4NScsIHY9Jy03Mjk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGM5NicsIHY9Jy03NTE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhNScsIHY9Jy03MzUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYThiNicsIHY9Jy02ODkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjZjNScsIHY9Jy02NDY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDMwYicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTBmNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWYwNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmQxNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBiMjcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExOTM3Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjc0NicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM1NTYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MzY2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTE4MScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVmODUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZDk1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2JhNCcsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YjUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2M0Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTVkNScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWIzZTYnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjMWY2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAwNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMTUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYzI1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmEzNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NDUnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNjU2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjQ2NScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyNzYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MDg2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5OScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVjYTcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWI3Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzhjNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjg2ZDYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI5NGU2Jywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmIxMDUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJiZjE1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyY2QyNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmRiMzUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJlOTQ2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyZjc1NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzA1NjYnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMxMzc1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczMjE5ZScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzJmOTYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzMzZGE2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNGJiNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzU5ZGUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM2N2Q2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczNzVlNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMzg0MGUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzM5MjFlJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczYTAxNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2FlMjcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNiYzM2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczY2E0NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nM2Q4NTYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzNlNjY3Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSczZjQ4MScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDAyODUnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQxMDk1Jywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0MWVhNScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDJjYjUnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQzYWM1Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0NDhkNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDU2ZTYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ2NGY1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ODBmZicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNDhmMGUnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzQ5ZDFkJywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0YWI0NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGI5NTUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRjNzY5Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZDU3NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNGUzODcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzRmMTk2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc0ZmZhNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTBkZDAnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzUxYmM2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1MjlkNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTM3ZTcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU0NjAwJywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQwNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTYyMTUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU3MDI2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1N2UzNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNThjNDYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU5YTcwJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1YTg2NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWI2NzYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVjNDg3Jywgdj0nLTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZDI5NicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNWUwYTknLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzVlZWI4Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1ZmNjNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjBhZDcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzYxOGU3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2MjZmNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjM1MDcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY0MzE3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2NTEyNycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjVmMzcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY2ZDQ2Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2N2I1NycsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNjg5NjcnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzY5NzgyJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2YTU4NicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmIzOTUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZjMWE2Jywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2Y2ZiNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNmRkYzYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzZlYmQ2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc2ZjllNicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzA3ZjYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzcxNjA3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3MjQxNycsIHY9Jy02JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzMyMjcnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc0MDM3Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3NGU0NycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzVjNTcnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc2YTYzJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Nzg3MycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNzg2ODAnLCB2PSctNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzc5NDhmJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3YTI5ZicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2IwYWYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdiZWJmJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3Y2NjZicsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2RhZGYnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdlOGZhJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcwYScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODA1MWEnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgxMzJhJywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4MjEzYScsIHY9Jy05JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODJmNGEnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzgzZDVhJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NGI2YScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODU5N2EnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg2NzhiJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4NzU5YicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nODgzYWMnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzg5MWJiJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4OWZjYScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGFkZGEnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhiYmViJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4YzlmYycsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOGQ4MGInLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzhlNjFhJywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc4ZjQyYScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTAyM2EnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkxMDRhJywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5MWU1YScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTJjNmEnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzkzYTg0Jywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NDg4NScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTU2OTQnLCB2PSctOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk2NGE1Jywgdj0nLTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5NzJiNCcsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOTgwYzUnLCB2PSctOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89Jzk4ZWQ0Jywgdj0nLTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5OWNlNScsIHY9Jy04JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWFhZjUnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzliOTA2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5YzcxNicsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWQ1MjYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzllMzM2Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc5ZjE0NScsIHY9Jy03JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nOWZmNTYnLCB2PSctNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EwZDY1Jywgdj0nLTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhMWI3NycsIHY9Jy02MzI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTI5ODYnLCB2PSctMzUxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2EzNzk1Jywgdj0nLTk2MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E0NWE3Jywgdj0nNjQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTUzYjYnLCB2PSc3MDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhNjFjNycsIHY9Jzk0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E2ZmQ2Jywgdj0nOTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhN2UwMCcsIHY9JzQ2NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E4YzAwJywgdj0nOTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMDUnLCB2PScyODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhYTgxNScsIHY9JzMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWI2MjUnLCB2PSc0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FjNDM1Jywgdj0nMjAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYWQyNDUnLCB2PSc5MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhZTA1NScsIHY9Jzc0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FlZTY1Jywgdj0nLTU2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2FmYzc1Jywgdj0nLTY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjBhODUnLCB2PSczMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2IyNmE2Jywgdj0nMTQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjM0YjYnLCB2PSctMTIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjQyYzYnLCB2PSctNDUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjUwZDYnLCB2PSctNzI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjVlZTcnLCB2PSctNzEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjZjZjYnLCB2PSctMTU4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2I3YjA3Jywgdj0nLTE5ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiODkxNycsIHY9Jy0xNzUzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYjk3MjgnLCB2PSctMTc1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JhNTM3Jywgdj0nLTE4OTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYjM0NycsIHY9Jy04MjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiYzE1NycsIHY9Jy04ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiY2Y2NycsIHY9Jy04OTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdiZGQ4MScsIHY9JzY0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2JlYjg2Jywgdj0nNDE3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYmY5OTUnLCB2PSc1MjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMDdhNicsIHY9JzQwMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MxNWI1Jywgdj0nMzcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzIzYzYnLCB2PSc0ODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjMzFkNScsIHY9JzU5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2MzZmU2Jywgdj0nMzM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzRkZjUnLCB2PSc3NDEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjNWMwNicsIHY9JzExNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M2YTE2Jywgdj0nNTA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYzc4MjYnLCB2PSctNTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjODYzNicsIHY9JzEzNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2M5NDQ2Jywgdj0nMzM0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nY2EyNTYnLCB2PScyMzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdjYjA2NicsIHY9JzExNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NiZTc2Jywgdj0nLTQxNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NjYzg3Jywgdj0nLTIzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NkYTk2Jywgdj0nLTE4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NlOGE4Jywgdj0nLTIxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2NmNmI3Jywgdj0nLTEzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2QwNGM4Jywgdj0nLTUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDEyZDcnLCB2PScxNDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMjBlNycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkMmYwMicsIHY9JzExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDNkMDUnLCB2PSc2MDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIxNScsIHY9JzY0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q1OTI2Jywgdj0nODM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDY3MzUnLCB2PScxMDY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDc1NDYnLCB2PScxMjEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDgzNTUnLCB2PSctMTM1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDkxNjYnLCB2PSctNzU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDlmNzUnLCB2PSctMTQ5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RhZDg3Jywgdj0nLTIwMTEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkYmI5NycsIHY9Jy0yNTYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGM5YTgnLCB2PSctMjMzOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2RkN2I3Jywgdj0nLTI4OTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkZTVjNicsIHY9Jy0yNzgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZGYzZDcnLCB2PSctMjkxMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UwMWQ3Jywgdj0nLTI5MTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlMGZlNScsIHY9Jy0yODMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTFkZjUnLCB2PSctMzAxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2UyYzA0Jywgdj0nLTQwOTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlM2ExNCcsIHY9Jy0zOTc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTQ4MjQnLCB2PSctMzM3MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U1NjM0Jywgdj0nLTM0MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlNjQ0NCcsIHY9Jy0yNTUxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZTcyNTUnLCB2PSctMjE4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2U4MDZmJywgdj0nLTE3NTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOGU3ZicsIHY9Jy00NzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlOWM4ZScsIHY9Jy03MDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYWE5ZicsIHY9Jy02NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYjhhZScsIHY9Jy02NTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlYzZiZicsIHY9Jy00NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZDRjZScsIHY9Jy0yMTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZWUyZGYnLCB2PSctMjIzOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2VmMGVmJywgdj0nLTMxOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdlZmYwMScsIHY9Jy00MDg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjBkMTAnLCB2PSctNDMwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2YxYjIwJywgdj0nLTQ1NTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmMjkzMCcsIHY9Jy00NjI4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjM3NDAnLCB2PSctNDMwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y0NTUxJywgdj0nLTQ2MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmNTM2MScsIHY9Jy00ODU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjYxNzInLCB2PSctNDYxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y2ZjgwJywgdj0nLTQ4MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmN2Q5MScsIHY9Jy00MjQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZjhiYTEnLCB2PSctMzkxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Y5OWIxJywgdj0nLTM4MDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmYTdjMCcsIHY9Jy0zMDI1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmI1ZDEnLCB2PSctMzAzNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZjM2UwJywgdj0nLTMyOTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZDFmYicsIHY9Jy0yNjgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmUwMGInLCB2PSctMjUzMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTFjJywgdj0nLTIwODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZmMyYycsIHY9Jy0xOTgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAwYTNiJywgdj0nLTE3OTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDE4NGMnLCB2PSctMTc5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwMjY1YicsIHY9Jy0yMDc3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTAzNDZjJywgdj0nLTI3MjQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDQyN2InLCB2PSctNDAxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwNTA4ZCcsIHY9Jy00MzIwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA1ZTlkJywgdj0nLTQzMzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDZjYWQnLCB2PSctNDcyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwN2FiZCcsIHY9Jy00MzM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTA4OGNkJywgdj0nLTM5MDYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMDk2ZGUnLCB2PSctNDExOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwYTRlZCcsIHY9Jy00MzIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBiMmZlJywgdj0nLTQzNDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGMxMGQnLCB2PSctNDE2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwY2YxZScsIHY9Jy00MzU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTBkZDJlJywgdj0nLTQxNjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMGViNjYnLCB2PSctNDQ1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEwZjk0ZScsIHY9Jy0zODk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEwNzVlJywgdj0nLTMyODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTE1NmQnLCB2PSctMjg2NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExMjM4OCcsIHY9Jy0yNjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTEzMTg3Jywgdj0nLTE3OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTNmYjAnLCB2PSctMTc5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNGRhNicsIHY9Jy0xODIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE1YmI2Jywgdj0nLTE3ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTY5YzYnLCB2PSctMTU4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExNzdkNicsIHY9Jy0yMDgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTE4NWU4Jywgdj0nLTI4ODUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMTkzZjcnLCB2PSctMzU1OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExYTIwOCcsIHY9Jy00ODM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFiMDE3Jywgdj0nLTQzMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWJlMmYnLCB2PSctNTM5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExY2MzNycsIHY9Jy00NDU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTFkYTQ3Jywgdj0nLTQyNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMWU4NTcnLCB2PSctNDM1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzExZjY2NycsIHY9Jy0zOTAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIwNTc4Jywgdj0nLTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjEzODYnLCB2PSctNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyMjE5NicsIHY9Jy00JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTIyZmE2Jywgdj0nLTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjNkYjUnLCB2PSctMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNGJjNScsIHY9Jy0zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI1OWQ1Jywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjY3ZTQnLCB2PSctMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyNzYwMCcsIHY9Jy0yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI4MzA1Jywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMTUnLCB2PSctMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOWYyNScsIHY9Jy0yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJhZDM1Jywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmJiNDUnLCB2PSctMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyYzk1NCcsIHY9Jy0yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTJkNzY2Jywgdj0nLTInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMmU1NzUnLCB2PSctMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyZjM4NicsIHY9Jy0yJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMwMTk2Jywgdj0nLTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzBmYTYnLCB2PSctMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzMWRiNycsIHY9Jy0zJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTMyYmM1Jywgdj0nLTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzM5ZDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM0N2U1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzNTVmNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzY0MDQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM3MjE0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzODAyNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMzhlMzMnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTM5YzQ0Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzYWE1NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2I4NjUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNjNjdlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZDQ4ZScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxM2UyOWUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTNmMGFlJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEzZmViZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDBjY2YnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQxYWRmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0MjhlZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDM2ZmYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ0NTBmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0NTMxZicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDYxMzAnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ2ZjQwJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0N2Q0NCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNDhiNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTQ5OTY1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0YTc3NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGI1ODQnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRjMzk3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZDFhNCcsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNGRmYjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTRlZGM1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE0ZmJkNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTA5ZTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUxN2ZmJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MjYwNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTM0MTUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU0MjI1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1NTAzNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTVlNDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU2YzU1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1N2E2NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTg4NzUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTU5Njg2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1YTQ5NScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWIyYTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVjMGI2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1Y2VjNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNWRjZDUnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTVlYWU2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1ZjhmNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjA3MDYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYxNTE3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2MjMyNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjMxMzcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTYzZjQ2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2NGQ1NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjViNjcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY2OTgyJywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Nzc4NicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNjg1OTYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTY5M2E2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2YTFiNScsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmFmYzYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZiZGQ1Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2Y2JlNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNmQ5ZjYnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTZlODA3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE2ZjYxNicsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzA0MjknLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTcxMjM2Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3MjA0NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzJlNTcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTczYzY3Jywgdj0nMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3NGE3NycsIHY9JzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzU4ODcnLCB2PScwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc2Njk0Jywgdj0nLTY4NDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzc0YTMnLCB2PSctNjg0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ODJiMycsIHY9Jy03Mjc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTc5MGM1Jywgdj0nLTY3MTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNzllZDQnLCB2PSctNjA0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3YWNlNCcsIHY9Jy01ODc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdiYWZkJywgdj0nLTYwNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2M5MGYnLCB2PSctNTQ4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcxZScsIHY9Jy01NDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdlNTJmJywgdj0nLTUzNDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2YzM2YnLCB2PSctNDk4MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MDE0ZicsIHY9Jy01MTkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgwZjVmJywgdj0nLTYzMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxODFkNmUnLCB2PSctNjkyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4MmI3ZicsIHY9Jy03ODg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTgzOThmJywgdj0nLTEzNDY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg0N2ExJywgdj0nLTEzMzU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg1NWFmJywgdj0nLTEyODEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg2M2MwJywgdj0nLTExOTk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3MWNmJywgdj0nLTEyNDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg3ZmUwJywgdj0nLTExNjU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg4ZGVmJywgdj0nLTEyNTA4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTg5YzAwJywgdj0nLTExOTY1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThiODBkJywgdj0nLTc1NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGM2MWMnLCB2PSctODEwMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZDQyYycsIHY9Jy03Njc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMThlMjNiJywgdj0nLTY1NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOGYwNGInLCB2PSctNjE2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE4ZmU1ZScsIHY9Jy01NjYwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkwYzc2Jywgdj0nLTQ0NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTFhODYnLCB2PSctNDMwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5Mjg5NicsIHY9Jy00MjUyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTkzNmE2Jywgdj0nLTQxMjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTQ0YjcnLCB2PSctNDEyNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5NTJjNicsIHY9Jy00NDk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk2MGQ3Jywgdj0nLTUxMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTZlZTYnLCB2PSctNTk2NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5N2NmOCcsIHY9Jy02MzU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTk4YjBmJywgdj0nLTU5NjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOTk5MWYnLCB2PSctNjYxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5YjU0MScsIHY9Jy02NjE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTljMzRkJywgdj0nLTYxOTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWQxNWUnLCB2PSctNjIzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZGY4MCcsIHY9Jy02MzEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTllZDkwJywgdj0nLTYwNzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxOWVlYmUnLCB2PSctNjA3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE5ZmI4ZScsIHY9Jy0yMzkwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEwOWEwJywgdj0nLTI2MDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTE3YWUnLCB2PSctMzA1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhMjViZScsIHY9Jy0zMzM4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWEzM2NkJywgdj0nLTIyMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTQxZGQnLCB2PSctMjEzNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhNGZlZCcsIHY9Jy0xNTQ2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE1ZTA4Jywgdj0nLTE2NzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTZjMDUnLCB2PSctOTY5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE3YTE1Jywgdj0nLTExMjMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTg4MjYnLCB2PSctMTA3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhOTYzNycsIHY9Jy00ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWE0NDUnLCB2PSctNTM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFiMjU1Jywgdj0nLTk5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhYzA2NScsIHY9Jy0xODE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFjZTc1Jywgdj0nLTI2MzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYWRjODcnLCB2PSctMjkyMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhZWE5NicsIHY9Jy0yNTk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWFmOGE3Jywgdj0nLTI4OTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYjA2YjcnLCB2PSctMjE3MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFiMTRjNicsIHY9Jy0yMDkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM3NDYwJywgdj0nMzExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM4MjcwJywgdj0nMzk5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM5MDdlJywgdj0nMzQ4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjOWU4ZicsIHY9JzMzNTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2FjYTInLCB2PSczNjcwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNiYWIxJywgdj0nMzU4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjYzhjMScsIHY9JzUzOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxY2Q2ZDAnLCB2PSc1NDc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWNlNGRlJywgdj0nNTYxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjZjJmMCcsIHY9JzU2NTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDAxMDknLCB2PSc1OTIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQwZjA2Jywgdj0nNjY1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkMWQxNScsIHY9JzY2NTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDJiMjUnLCB2PSc2NzEzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQzOTM1Jywgdj0nNjg4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNDc0NScsIHY9JzY4OTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDU1NTUnLCB2PSc2NzA1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ2MzY2Jywgdj0nNTg1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkNzE3NScsIHY9JzU1NDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDdmODYnLCB2PSc1NTg5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWQ4ZDk1Jywgdj0nLTMyMTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZDliYTYnLCB2PSctMzYyMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkYTliNicsIHY9Jy0zNjIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRiN2M3Jywgdj0nLTM0NzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGM1ZDUnLCB2PSctMzYzMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZDNlNicsIHY9Jy0zNzIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWRlMWY1Jywgdj0nLTYwMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZGYwMDYnLCB2PSctNjc1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFkZmUxNicsIHY9Jy02NjQ3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUwYzI2Jywgdj0nLTY3NzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTFhMzYnLCB2PSctNjc5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlMjg0NycsIHY9Jy02NTkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWUzNjU5Jywgdj0nLTYxMzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTQ0NjcnLCB2PSctNTY1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlNTI4MScsIHY9Jy00OTEwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU2MDg2Jywgdj0nLTQ5MDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTZlOTYnLCB2PSctNDgwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlN2NhNicsIHY9Jy0xOTcwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWU4YWI1Jywgdj0nLTE4MjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZTk4YzYnLCB2PSctMTgyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlYTZkNScsIHY9Jy0yMjcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWViNGU2Jywgdj0nLTIzMzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWMyZjYnLCB2PSctMjY0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZDEwNicsIHY9Jy0yNjQ0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWVkZjE2Jywgdj0nLTI3NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZWVkMjYnLCB2PSctMjcyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFlZmIzNicsIHY9Jy0yNTg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYwOTQ2Jywgdj0nLTI1NDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NTYnLCB2PSctMjM3NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMjU2NicsIHY9Jy0yMzM5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYzMzc2Jywgdj0nLTI1NjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjQxODcnLCB2PSctMjc4NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNGY5NicsIHY9Jy0zMTkxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY1ZGE3Jywgdj0nLTM1ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjZiYjYnLCB2PSctMzU5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmNzljNycsIHY9Jy0zMTI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWY4N2Q2Jywgdj0nLTMzMzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjk1ZTcnLCB2PSctMzE0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmYTQwMScsIHY9Jy0yODA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZiMjA0Jywgdj0nLTI0ODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmMwMTYnLCB2PSctMjQ5NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmY2UyNScsIHY9Jy0yMTcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWZkYzM1Jywgdj0nLTIxMzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZmVhNDUnLCB2PSctMjE1OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmZjg1NScsIHY9Jy0yNTAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAwNjY1Jywgdj0nLTIzOTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDE0NzUnLCB2PSctMzQ2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwMjI4NicsIHY9Jy00NTEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjAzMDk1Jywgdj0nLTUzNTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDNlYTUnLCB2PSctNTkxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNGNiNicsIHY9Jy01NzcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA1YWM2Jywgdj0nLTUyODcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDY4ZDYnLCB2PSctNTM4NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwNzZlNicsIHY9Jy01OTc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjA4NGY2Jywgdj0nLTYxMDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMDkzMDYnLCB2PSctNjc0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwYTExNicsIHY9Jy02MzEyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBhZjI2Jywgdj0nLTU1MzMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGJkMzcnLCB2PSctNTQ1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwY2I0NicsIHY9Jy00NjMwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjBkOTU3Jywgdj0nLTQzNDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMGU3NjcnLCB2PSctNDA0NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIwZjU4MScsIHY9Jy0zODU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEwMzg2Jywgdj0nLTM1MTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTExOTQnLCB2PSctMzEzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxMWZhNScsIHY9Jy0zMDE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjEyZGI1Jywgdj0nLTI5MDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTNiYzUnLCB2PSctMjgyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNDlkNicsIHY9Jy0zNjgwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE1N2U1Jywgdj0nLTQ1MDcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTY1ZjYnLCB2PSctNTg0NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxNzQwNicsIHY9Jy02MTk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjE4MjE3Jywgdj0nLTYxNjUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMTkwMjYnLCB2PSctNjE0MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxOWUzOScsIHY9Jy02MjIzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFhYzQ2Jywgdj0nLTU5MzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNTcnLCB2PSctNTkyNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYzg2NycsIHY9Jy01NTU3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFkNjc3Jywgdj0nLTYyNDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWU0ODcnLCB2PSctNTc1MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxZjI5NicsIHY9Jy01NzcyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIwMGE2Jywgdj0nLTU0NjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjBlYjcnLCB2PSctNTM5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyMWNjNicsIHY9Jy00NTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjIyYWQ3Jywgdj0nLTM4NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjM4ZTcnLCB2PSctMzYyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNDcwMScsIHY9Jy0zMjkyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI1NTA1Jywgdj0nLTE2ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjYzMTUnLCB2PSctMjA4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyNzEyNScsIHY9Jy0yMDQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjI3ZjM1Jywgdj0nLTE2NzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMjhkNDUnLCB2PSctMTc4NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyOWI1NCcsIHY9Jy0zNDk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJhOTY1Jywgdj0nLTQwODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmI3NzYnLCB2PSctNDQ1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyYzU4NicsIHY9Jy00ODE2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJkMzk3Jywgdj0nLTQ0MDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMmUxYTYnLCB2PSctNDYyMCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIyZWZiNicsIHY9Jy00ODIwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjJmZGM3Jywgdj0nLTQ2NDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzBiZDcnLCB2PSctNDQzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzMTllNicsIHY9Jy01Mzk3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjMyN2Y2Jywgdj0nLTU1NTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzM2MWInLCB2PSctNTg4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNDQxNicsIHY9Jy01MjA3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM1MjI2Jywgdj0nLTUyMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzYwMzcnLCB2PSctNTI1MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzNmU0NicsIHY9Jy00MzQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjM3YzU3Jywgdj0nLTQxOTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMzhhNjYnLCB2PSctMzk5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzOTg4MScsIHY9Jy0zMTk1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNhNjg1Jywgdj0nLTMzMjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2I0OTUnLCB2PSctMzE5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzYzJhNCcsIHY9Jy0yOTY2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNkMGI1Jywgdj0nLTI5NTknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyM2RlYzQnLCB2PSctMjkxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIzZWNkNScsIHY9Jy0zNjIwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjNmYWU0Jywgdj0nLTQ1NjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDA4ZjYnLCB2PSctNTAxMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0MTcwNicsIHY9Jy01NzkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQyNTE4Jywgdj0nLTY2MDUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDMzMjUnLCB2PSctNjc4NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NDEzNycsIHY9Jy02NzMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ0ZjQ2Jywgdj0nLTY0MzUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNjYnLCB2PSctNjQxNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Nzk3NicsIHY9Jy02MjYxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ4Nzg2Jywgdj0nLTUzNzEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDk1N2UnLCB2PSctNTcwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0YTM4ZicsIHY9Jy01NjY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRiMTljJywgdj0nLTU4MTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGJmYWMnLCB2PSctNTQ5NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0Y2RiYycsIHY9Jy01MzY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjRkYmNkJywgdj0nLTQ1MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNGU5ZTUnLCB2PSctNDAwMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0ZjgwOCcsIHY9Jy0zNDg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUwNjE2Jywgdj0nLTM1OTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTE0MjYnLCB2PSctMzU3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1MjIzNicsIHY9Jy0zNDIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjUzMDQ3Jywgdj0nLTM2MTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTNlNTYnLCB2PSctNDA2OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NGM2NycsIHY9Jy00MjA5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU1YTc2Jywgdj0nLTQ5NzcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNTY4ODcnLCB2PSctNTg0NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1NzY5NycsIHY9Jy01NjYyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU4NGE4Jywgdj0nLTE1MTU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjU5MmI2Jywgdj0nLTg2MjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWEwYzcnLCB2PSctNDYwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1YWVkNycsIHY9Jy02MzI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjViY2U3Jywgdj0nLTYxMjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWNhZjgnLCB2PSctNTgxOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI1ZDkwNycsIHY9Jy01ODAwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjVlNzE4Jywgdj0nLTU2MjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNWY1MjcnLCB2PSctNTMxOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MDMzOCcsIHY9Jy01NTQzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYxMTQ5Jywgdj0nLTQ5MTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjFmNTknLCB2PSctNDU4OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2MmQ2OCcsIHY9Jy00NjcwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjYzYjgzJywgdj0nLTM2OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjQ5ODYnLCB2PSctMzQ5MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2NTc5NScsIHY9Jy0zNTgyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY2NWE2Jywgdj0nLTM2ODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjczYjUnLCB2PSctMzYwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ODFjNicsIHY9Jy0zNjgxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjY4ZmQ1Jywgdj0nLTM4NTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNjlkZTYnLCB2PSctMzkyMycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2YWJmNicsIHY9Jy0zOTU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZiYTA2Jywgdj0nLTQ0NjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmM4MTcnLCB2PSctNDI1NycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI2ZDYyYicsIHY9Jy0zOTE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjZlNDM2Jywgdj0nLTM4OTcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNmYyNDcnLCB2PSctMzUzMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MDA1NycsIHY9Jy0zNzk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTY3Jywgdj0nLTM2MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzFjNzcnLCB2PSctNDU0MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MmE4NycsIHY9Jy01MTcxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjczODk3Jywgdj0nLTUwMzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzQ2YTgnLCB2PSctNTAyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3NTRiOScsIHY9Jy01MDI5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjc2MmM3Jywgdj0nLTM5OTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzcwZDgnLCB2PSctMzU1MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3N2VlNycsIHY9Jy0zMjA2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzY3NDYwMScsIGg9JzNkYzFhN2UwJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzIyMTIzOjEzNzo4ODo3NjoxMDM6Njk6ODk6NjA0Nzo2NTcxOjIxMzQ6NjQxNDoyMjIzOjI3MjcuMjMxOjE0MzUuNjc1OjUuOTc5OjAuMDY3OjA6NDE3MTo0MTAzOToyOTA1Mjo0MjEwNDoxMjIxODoyNDcyMToxMzUwNDo4OTc1OjExMTUzOjI5OTA6ODY2NTo5NzU5OjExNzQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzY3MzgwMScsIGg9JzNkYzFhN2UwJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzA6MDowOjA6MDowOjA6MjQ3MjoyMjUwNToyNTE2MDoxNjQyNTozMDAxMjoyMzUxNC4yMjk6MTE2NzUuMzYyOjkuMjcyOjAuNDE2OjA6NjQ5MTozMjIxOjI4Njc6NDIwNDoyMjgyMjozMDQ3OjYyNjM6MTUzNDI6OTc4NTozMjQyNDoyMzM0NjoyMTU3ODoyMzUwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPSc2NzM0MDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PSc3Mjg5ODoxOTE6MTg4OjE3NjoxNzg6MTc0OjE4MToxMDQ0MToxNDA3OToxMzYwOjQ2NjY3Ojc0MTMxOjgwOTk2LjEzOjUwMzI0LjMyNjozMi4xODg6MC4wMzg6MDo0NDAyNzoyMDAyODk6MTA5MjE2OjUyNDYxOjEyOTUxOjc1ODk2OjY5MTk2OjEwNDg1MjoxMTcwMzY6OTY5MDM6MTIwNzE0OjEyNDMwODo5NjIwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPSc2NzMwMDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PScwOjA6MDowOjA6MDowOjM0NzY6MzIyNjo1NTk3OjQ4NTM6MDowOjA6MC4wMDE6MC4xMzc6MDowOjA6MDowOjUwNzM1OjU5MjA1OjA6MDowOjA6MDowOjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nMjYyNzQ2MDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PScwOjoxMzA1OjoyODY5Ojo0NDgyOjo2MDY2Ojo3Mzk2Ojo4NTczOjoxMDI2Mjo6MTE5MjI6OjEzNzczOjoxNTQ5Mjo6MTc1MjI6OjE5NTQ0OjoyMTQ1Mjo6MjIwNzA6OjIyMDc1OjoyMjA4MDo6MjIwODQ6OjIyMDg1OjoyMjA5MDo6MjIwOTc6OjIyMTAzOjoyMjEwOTo6MjIxMTY6OjA6OjY6OjEzOjoyMDo6Mjc6OjMyOjozNDo6NDE6OjQ4Ojo1NDo6NjE6OjY4Ojo3NTo6ODI6Ojg5Ojo5Njo6MTAzOjoxMTA6OjExMDo6MTExOjoxMTY6OjExOTo6MTIzOjoxMjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMCcsIHY9JzA6OjU6OjU6Ojc6OjExOjoxMjo6MTI6OjE3OjoyNDo6MzA6OjM3Ojo0NDo6NTE6OjU4Ojo2NTo6Njk6OjcxOjo3MTo6NzE6OjczOjo3NTo6NzY6Ojc2Ojo4MTo6MDo6Njo6MTM6OjIwOjoyNzo6MzQ6OjQwOjo0NDo6NTA6Ojo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTE6OjU0Ojo2MDo6NjM6OjY5OjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTU0MTAnLCB2PSc2OjoxMzo6MjA6OjI3OjozNDo6Mzg6OjQ0Ojo0Njo6NDY6OjQ3Ojo1Mjo6NTg6OjY1Ojo2Njo6NjY6OjY3Ojo2OTo6Njk6OjcwOjo3Njo6ODM6Ojg5Ojo5Njo6MDo6NTo6MTI6OjE5OjoyNTo6MzA6OjMxOjozNTo6Mzc6OjM3OjozNzo6Mzc6OjM4Ojo0NDo6NDU6OjQ1Ojo0NTo6NDU6OjQ1Ojo0NTo6NDg6OjUxOjo1Njo6NjI6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcxMCcsIHY9JzY6OjE0OjoyMTo6Mjg6OjM1Ojo0Mjo6NDc6OjUwOjo1MDo6NTA6OjUyOjo1OTo6NjU6OjY5Ojo3Mjo6NzQ6Ojc1Ojo3NTo6NzU6Ojc1Ojo3ODo6Nzk6OjgyOjowOjo3OjoxNDo6MjE6OjI4OjozNDo6Mzg6OjQ0Ojo0NTo6NDU6OjQ5Ojo1Njo6NjM6OjcwOjo3Njo6ODA6OjgzNTo6MTY3NTo6MjAzODo6MjAzOTo6Mjg1Njo6MzE1ODo6MzYwNzo6NDQzMTo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTEwJywgdj0nNjI5Ojo3OTc6OjE0NTY6OjIzODI6OjI0NzY6OjI0Nzc6OjI4MjE6OjI4MjE6OjI4MjE6Ojo6MjgyMTo6MjgyMTo6Mjg1Njo6Mjg2NTo6Mjg2NTo6MzA0OTo6MzIyMzo6MzI2Nzo6MzUzMjo6NDMwNDo6NTE0Nzo6NTE0Nzo6NTQ0OTo6MDo6MTAxOjoxMDI6OjI1Mjo6NTkyOjo2MDU6OjYwNTo6NjA1Ojo2MDU6OjYxMjo6NjEyOjo2MTI6OjYxMjo6NjEyOjo2MTI6OjYxMjo6Njc5Ojo3Njc6Ojc2Nzo6NzY3Ojo3Njc6Ojc2Nzo6NzY3Ojo5MTA6OjA6OjExNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIyMCcsIHY9JzIyODk6OjI3MDE6OjMwNzY6OjMwNzY6OjMzODU6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MDQ6OjM5MTE6OjQwMjM6OjQ1OTk6OjUyMzc6OjU0OTQ6OjU3ODA6OjYwNzI6OjA6OjYyMjo6NjIyOjo2MjI6OjYyMjo6NjIyOjo3MTY6OjgxOTo6ODE5Ojo4MTk6OjgxOTo6ODE5Ojo4MTk6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6MTAyNDo6MDo6MTEyNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTIwJywgdj0nMTk1NDo6MjE3Mzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4NDo6MjQwMDo6MjQwMDo6MDo6MTYzOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjIwNDo6MzMwOjo3NTE6OjE0MDA6OjE0MzM6OjE0MzM6OjE0MzM6OjE0MzUuMTo6MTQzNS4xOjoxNDM1LjE6OjE0MzUuMTo6MTQzNS4xOjoxNDM1LjE0NDo6MTQzNS4zNzU6OjE0MzUuMzgxOjowOjoxLjE3OScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTEyMCcsIHY9JzIuNDg2OjozLjg2OTo6NS4yNzg6OjUuODA5Ojo1LjgxMTo6NS44MTE6OjUuODExOjo1Ljg0Mzo6NS45Njc6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njk6OjUuOTY5OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowLjAwMTo6MC4wMTQ6OjAuMDMyOjowLjA0OjowLjA0Njo6MC4wNDk6OjAuMDU6OjAuMDU6OjAuMDU6OjAuMDU6OjAuMDU6OjAuMDU6OjAuMDUzOjowOjowLjAwNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQyMCcsIHY9JzAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA5OjowLjAwOTo6MC4wMDk6OjAuMDA5OjowLjAwOTo6MC4wMDk6OjAuMDE0OjowOjowLjAwNDo6MC4wMjo6MC4wMzE6OjAuMDQyOjowLjA0NDo6MC4wNDQ6OjAuMDQ0OjowLjA0NDo6MC4wNDQ6OjAuMDQ0OjowLjA0NDo6MC4wNDc6OjAuMDU6OjAuMDUxOjowLjA1NDo6MC4wNTQ6OjAuMDU0OjowOjowOjowOjowOjoxNzU6OjE4Nzg6OjA6OjIzMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MjAnLCB2PSc1MDE2Ojo3ODg5OjoxMDgyNTo6MTI3ODU6OjEzNDI4OjoxNDU2ODo6MTYyODE6OjE3ODcwOjoxODc1Nzo6MTk2NzM6OjIyMzE0OjoyNTMxNzo6MjgwMTc6OjMwNjExOjozMjU3MTo6OjozMzA3ODo6MzM1NzA6OjM0ODY1OjozNjEyNDo6Mzc2NzA6OjM5OTA4OjowOjo5Nzg6OjI1NDA6OjQyMzY6OjU5OTI6OjY3NzM6OjY4MTg6OjY5MTU6Ojc2NDM6Ojg1MTA6Ojg2MTg6Ojo6OTM1NDo6MTAzMzQ6OjEwODU3OjoxMTE5MDo6MTEzODc6OjExMzg3OjoxMjgxODo6MTU1NDc6OjE5MDExOjoyMTA3Nzo6MjI2MTA6OjI1NjgyOjowOjoyNjgyOjo1NzU3Ojo5MDk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjQwJywgdj0nMTI0Mzk6OjE0ODEwOjoxNjQyNjo6MTgxNzI6OjIwNDYyOjoyMjg1MTo6MjQ5NTc6OjI2OTEyOjoyOTIwMDo6MzE3ODknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzc0NjAnLCB2PSc4MTk3Ojo4MjY0Ojo4MzY1Ojo4MzY1Ojo4OTk2Ojo5OTk2OjoxMDU3MDo6MTA1NzA6OjEwNTcwOjoxMDgwNzo6MDo6Mzg4Ojo3NzY6OjE2NTU6OjIzNzQ6OjIzOTE6OjIzOTE6OjI0Mjk6OjMzMzI6OjM2Nzc6OjM3Njg6OjM4NTE6OjQyOTQ6OjQ5MzA6OjU4NDc6OjY2MjU6Ojc4NTI6Ojk0OTI6OjExMzI4OjoxMzM3Njo6MTU2MjA6OjE3OTQ2OjoyMDE3MDo6MjI0Njk6OjA6OjE5Nzk6OjQxNzk6OjQ4MTc6OjUzMDI6OjU2MTI6OjU4MDI6OjYwNzU6OjY3ODc6OjcxNzI6Ojc0ODk6Ojc2Njg6Ojc4Njc6OjgxODQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NjAnLCB2PSc4MjcwOjo4MjcwOjo4MjcwOjo4MjcwOjo4MjcwOjo4Mjc5Ojo4NDI1Ojo4NzY2Ojo5MjYxOjoxMTM3OTo6MDo6OTY3OjoyMjMyOjozMjI0OjozNTg0OjozNzA4OjozNzQyOjo0MTkyOjo0MzczOjo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0NDY4Ojo0ODE2Ojo1MTExOjo1NTMzOjo2MzkzOjo2NzQwOjo3Mzk0Ojo3Mzk0Ojo3OTg4OjowOjoxNDc5OjoyNDA3OjoyOTA3OjozMzQxOjozMzQ3OjozMzQ3OjozNTIyOjo0NTIxOjo0NzAyOjo1MTA0Ojo1Mzk5Ojo2NTExOjo2NTExJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTYwJywgdj0nNjUxMTo6NjUxMTo6NzU1NDo6ODA0Njo6ODA0Njo6ODA4NDo6ODc4MTo6OTQzNzo6OTQzNzo6MTAwMzQ6OjA6OjI1ODo6MjU4OjoyNTg6OjI1ODo6MjU4OjozMDM6OjU0MTo6MTA5Nzo6MTEyMjo6MTEyMjo6MTEyMjo6MTEyMjo6MTM5Nzo6MTQyOTo6MjA1Mjo6MjYzODo6MjYzODo6MjYzODo6MjYzODo6MjYzODo6Mjc3OTo6Mjc3OTo6Mjc3OTo6MDo6MjExOjo3MTY6Ojk5Mzo6OTkzOjo5OTM6Ojk5Mzo6MTA1ODo6MTA2MDo6MTA2MDo6MTA2MDo6MTA2MDo6MTEyMzo6MTY0MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI3MCcsIHY9JzMyODA6OjM5NTI6OjM5NjI6OjM5NjI6OjM5NjI6OjQyOTc6OjU1ODY6OjY5OTg6Ojc5NTY6OjA6OjQ5Mjo6MTU3MDo6MjY4Mzo6MzU4NTo6MzYxNTo6MzYxODo6MzY1OTo6MzY1OTo6MzY1OTo6MzY1OTo6Mzk3Mzo6Njc2Nzo6ODY0NDo6ODcxNzo6ODcxODo6ODcxODo6ODcxODo6ODcxODo6ODcxODo6ODcxODo6ODg5ODo6ODg5ODo6OTIwNTo6MDo6NTAyOjoxODI1OjozNzIyOjo1NzU4Ojo3MjM3Ojo4MTU5Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2Ojo4MjI2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTcwJywgdj0nODIyNjo6ODI0MDo6ODUwNDo6ODk4MDo6OTQ2Njo6MTAzMDg6OjEwNjY2OjoxMDY2Njo6MTA3MzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nMjYyNzM4MDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjo6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQxMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcxMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjY4MDo6MTc1Mzo6MjQzNjo6MjQzOTo6MjQ3MTo6MjQ3Mjo6MjQ3Mjo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTEwJywgdj0nMjczOjozMDQ6OjMwNDo6MzA0OjozOTI6OjE0Njc6OjE5NjE6OjI3MzU6OjQ1MTE6Ojo6MTIxMTQ6OjE2MzM3OjoxODI1Mjo6MTg0NTI6OjE5MDUxOjoyMDcyNDo6MjExMTU6OjIxNjExOjoyMTYxNjo6MjE2MTY6OjIxNjQ3OjoyMjQ2MDo6MjI1MDU6OjA6OjE0Mjg6OjE3ODY6OjE4MjE6OjE4MjE6OjIxMDA6OjMxMTY6OjQ2MDY6OjU3MDA6OjYyNjM6OjcyMzI6OjgzMjE6OjkyMDI6Ojk3MDY6OjEwMTA5OjoxMDU2Nzo6MTE4Mjc6OjEyMzU2OjoxNDgxODo6MTc0MTY6OjIwMTg2OjoyMjYyODo6MjQ0Njc6OjI1MTYwOjowOjoxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjIwJywgdj0nMTY6OjE2OjoxODo6NzYxOjoyMzE3OjoyMzQ1OjozMDMxOjo1MDEwOjo3NjgxOjoxMDcxOTo6MTM0OTE6OjE0MDc5OjoxNDU0MTo6MTQ3ODg6OjE1MDI4OjoxNTU1MTo6MTYxODI6OjE2MTgyOjoxNjMyNzo6MTYzNTE6OjE2Mzk0OjoxNjQyNDo6MDo6MTI1NDo6MjUyMTo6MzMwNDo6NDIxNDo6NjE4OTo6ODU0Mjo6ODg4NDo6OTcxNDo6MTA5MDc6OjEyNDQ3OjoxMzYwNDo6MTQ0MDc6OjE0OTI4OjoxNjg1NTo6MTgzMjM6OjIwMDE2OjoyMjMwNjo6MjM5NTI6OjI1NTExOjoyNjcwMDo6Mjc4NTg6OjI5NTEyOjozMDAxMjo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTIwJywgdj0nMTQ6OjE0OjoxNjo6ODQ4OjoyNTEyOjo0MTE0Ojo1NTU2Ojo3MDcwOjo3OTY3Ojo5NDI0OjoxMDgxMjo6MTE3MjI6OjEyODI5OjoxMzk1MDo6MTUwMzM6OjE3MDk1OjoxOTQyMzo6MjA2NzA6OjIxMTI5OjoyMTgyODo6MjI2MDg6OjIzNDQ0OjowOjoxMDI0OjoxNTA4OjoxNzg2OjoxOTg1OjoyOTUxOjo0OTAwOjo2NTg5Ojo4MDUzOjo4ODQ5Ojo4OTI5Ojo4OTI5Ojo4OTI5Ojo5NTAyOjoxMDM4MDo6MTEyMDA6OjExNjY5LjQzOjoxMTY3MC43MTQ6OjExNjcxLjUwMTo6MTE2NzMuMjM2OjoxMTY3NC4zMjQ6OjExNjc0LjYxNjo6MTE2NzQuODg3OjoxMTY3NS4zNDU6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMjAnLCB2PScwOjowOjowOjowOjowLjYzMjo6MS41Nzo6Mi43ODc6OjQuMzg5Ojo1LjM1Mzo6Ni42NzY6OjcuODI1Ojo4LjQ3Mzo6OS4wNTk6OjkuMDc6OjkuMDgzOjo5LjExMzo6OS4xNDk6OjkuMTg2Ojo5LjIyMjo6OS4yNTQ6OjkuMjYzOjo5LjI2Nzo6MDo6MC4wNTQ6OjAuMDc4OjowLjA5NDo6MC4xMTM6OjAuMTQ5OjowLjI6OjAuMjI5OjowLjIzNDo6MC4yNDE6OjAuMjQ0OjowLjI0NTo6MC4yNDU6OjAuMjQ1OjowLjI0NTo6MC4yNDU6OjAuMjQ2OjowLjI3Njo6MC4zMDk6OjAuMzQ4OjowLjM4Mzo6MC40MDg6OjAuNDE1OjowLjQxNjo6MDo6MC4wMjInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTM0MjAnLCB2PScwLjAzMTo6MC4wMzI6OjAuMDMzOjowLjA0NTo6MC4wNzY6OjAuMTo6MC4xMjE6OjAuMTYxOjowLjE5Nzo6MC4yMjc6OjAuMjUyOjowLjI1Nzo6MC4yNjQ6OjAuMjc1OjowLjI5NTo6MC4zMTU6OjAuMzIyOjowLjMyOTo6MC4zMzI6OjAuMzQ4OjowLjM1Nzo6MC4zNTc6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDE1OjowLjA1MTo6MC4wNjI6OjAuMDY4OjowLjA3OTo6MC4wOTE6OjAuMDk0OjowLjA5NDo6MC4wOTc6OjAuMTA4OjowLjEyNTo6MC4xNjE6OjE0MjU6OjM1NjM6OjUwODc6OjYwODE6OjY0OTE6OjY0OTE6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MjAnLCB2PScwOjowOjowOjowOjozOjo0OjoxNzo6MTc6OjE3OjoxNzo6ODM6OjgzOjo4Mzo6ODM6OjgzOjo6OjI4MTU6OjMyMjE6OjMyMjE6OjMyMjE6OjMyMjE6OjMyMjE6OjA6OjA6OjA6OjA6OjA6OjA6OjUwMzo6MjEyNDo6MjEyNDo6MjEzNTo6MjE4Nzo6OjoyMjIwOjoyMjIwOjoyMjIwOjoyMjIwOjoyMjMxOjoyODU3OjoyODY3OjoyODY3OjoyODY3OjoyODY3OjoyODY3OjoyODY3OjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjQwJywgdj0nMDo6MDo6MDo6MDo6NTo6NTo6NTo6NTo6NTo6NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzE0MTM5OjoxNDIxODo6MTQ1Mzg6OjE2NDY3OjoxNjQ5Mzo6MTY0OTM6OjE3OTEzOjoyMDM4ODo6MjI1MDM6OjIyODIyOjowOjoyNDI6OjI0Mjo6MjQyOjoyNDI6OjQ3Mzo6MTYxNDo6Mjc4Mzo6Mjc4Mzo6Mjc4NTo6MzA0Mzo6MzA0Njo6MzA0Njo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MzA0Nzo6MDo6MDo6MDo6MTAxOjoxMDE6OjEwMTo6MTU1OjoxNTU6OjE1NTo6MTU1OjoxNTU6OjE1ODo6MTU4OjoxNTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NjAnLCB2PSczMDM6OjY4OTo6MTI2Nzo6MzI5MTo6NTM2Mjo6NTk2NDo6NTk2NDo6NjIwNTo6NjI2Mzo6NjI2Mzo6MDo6Njc6Ojc4Ojo3ODo6Nzg6Ojk2OjoyNzk6OjEyNTc6OjIxNjk6OjMzODI6OjU2Mjg6Ojc2OTI6OjkxNDQ6Ojk4MDA6OjExNDEwOjoxMzE5Mzo6MTM3NzA6OjE0NTAwOjoxNDUwMjo6MTQ1MjY6OjE0NTI4OjoxNDY5Mzo6MTUzMzc6OjE1MzQyOjowOjowOjoxMjg6OjEyODo6MTI4Ojo2MzE6OjE5NjA6OjI4MzQ6OjI4NDc6OjI5OTQ6OjM0NDU6OjM0NDU6OjM0NDU6OjQwMTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNjAnLCB2PSc1MzA0Ojo2ODAyOjo3MTg4Ojo3MzA0Ojo3Nzc3Ojo4MTE5Ojo4MTE5Ojo4MjM4Ojo5NzMxOjo5Nzg1OjowOjozMjAyOjo1MTM3Ojo1NTkzOjo2MzA0Ojo4NTc3OjoxMjMyMjo6MTI1NjE6OjEyNTYxOjoxMzk2MDo6MTY1MzM6OjIwMTI3OjoyMjg0MTo6MjI4NjM6OjIzMTA2OjoyMzI0Nzo6MjMyNDc6OjI0OTg3OjoyNjQwMjo6Mjc1OTA6OjI4MDc1OjoyOTI2Mzo6MzE0Mzg6OjMyMzI1OjowOjoxNzE6OjE3MTo6MjAwOjozNDQ6OjE0NzY6OjI0MjU6OjMzODc6OjQxNDU6OjU4NzU6OjkyMTA6OjEyMjkxOjoxNTE0NDo6MTUxNDQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNzAnLCB2PScxNTE0NDo6MTUxNDQ6OjE3MjY3OjoyMTg2NDo6MjMyMzI6OjIzMzQ2OjoyMzM0Njo6MjMzNDY6OjIzMzQ2OjowOjo4Njo6ODY6Ojg2Ojo4Njo6MTg4Ojo3MDk6OjEzMzM6OjI1MTE6OjQzMTM6Ojc1OTM6OjEwNDM0OjoxMDQzNDo6MTA0NDM6OjEwNjIyOjoxMDgxMDo6MTEyOTM6OjEyMzAyOjoxNDg1OTo6MTc0NzY6OjE5NTY1OjoxOTc0Mjo6MjEwMzU6OjIxMjM0OjowOjoxMzo6MTM6OjEzOjoxMzo6MTM6OjEzOjoyMTY6OjkyOTo6MjA1ODo6MzcwMDo6NTY5ODo6ODc4Mjo6MTE2OTg6OjE0NjYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTcwJywgdj0nMTc3Njc6OjE4NTQ2OjoxOTE1NTo6MTkxNTU6OjE5MTU1OjoxOTE1NTo6MjA3MzA6OjIzMDE2OjoyMzUwOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPScyNjI3MzQwMScsIGg9JzNkYzFhN2UwJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzA6OjQxNzc6OjgzNDg6OjEyNDIxOjoxNjQ2Njo6MjAzODk6OjI0NTUwOjoyOTYzODo6MzUzOTA6OjQyMzI5Ojo0OTYwODo6NTY5ODI6OjY0MTE5Ojo3MDgxOTo6NzI4MjQ6OjcyODMxOjo3MjgzODo6NzI4NDU6OjcyODUxOjo3Mjg1OTo6NzI4NjY6OjcyODczOjo3Mjg4MTo6NzI4ODk6OjA6Ojg6OjE2OjoyNDo6MzI6OjQwOjo0ODo6NTY6OjY1Ojo3Mzo6ODE6Ojg5Ojo5Nzo6MTA1OjoxMTQ6OjEyMjo6MTMxOjoxMzg6OjE0NTo6MTUyOjoxNjA6OjE2Nzo6MTc1OjoxODMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMCcsIHY9JzA6Ojg6OjE2OjoyMzo6MzE6OjM5Ojo0Nzo6NTU6OjYzOjo3MTo6Nzk6Ojg3Ojo5Njo6MTA0OjoxMTI6OjEyMDo6MTI4OjoxMzU6OjE0Mjo6MTUwOjoxNTc6OjE2NTo6MTcyOjoxODA6OjA6Ojg6OjE3OjoyNTo6MzQ6OjQzOjo1MTo6NTg6OjY2Ojo6Ojc5Ojo4NTo6OTI6Ojk4OjoxMDU6OjExMTo6MTE3OjoxMjQ6OjEzMTo6MTM4OjoxNDU6OjE1Mzo6MTYwOjoxNjg6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQxMCcsIHY9Jzg6OjE2OjoyNTo6MzM6OjQxOjo0OTo6NTY6OjY0Ojo3MDo6Nzc6Ojg0Ojo5MTo6OTg6OjEwNTo6MTExOjoxMTg6OjEyNTo6MTMyOjoxMzk6OjE0Nzo6MTU0OjoxNjI6OjE3MDo6MDo6Nzo6MTY6OjI0OjozMjo6NDA6OjQ4Ojo1NTo6NjM6OjY5Ojo3Njo6ODI6Ojg5Ojo5Njo6MTAzOjoxMDk6OjExNjo6MTIyOjoxMjg6OjEzNTo6MTQzOjoxNTA6OjE1ODo6MTY2OjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MTAnLCB2PSc4OjoxNzo6MjU6OjM0Ojo0Mzo6NTE6OjU4Ojo2Njo6NzM6OjgwOjo4Nzo6OTQ6OjEwMTo6MTA4OjoxMTU6OjEyMjo6MTI5OjoxMzU6OjE0Mjo6MTUwOjoxNTc6OjE2NTo6MTcyOjowOjo4OjoxNzo6MjU6OjM0Ojo0Mjo6NTA6OjU4Ojo2NTo6NzI6Ojc4Ojo4NTo6OTI6OjEwMDo6MTA3OjoxMTQ6OjI1OTU6Ojc5MTM6OjEwMjk0OjoxMDQzOTo6MTA0Mzk6OjEwNDM5OjoxMDQ0MTo6MTA0NDE6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOWExMCcsIHY9JzI6OjQ6Ojk6Ojk6Ojk6Ojk6OjY5OjoxODE6OjIzNjo6OjozMjc6OjQ2MTo6NzIwOjoxMzkzOjoyMjE1OjozMDU5Ojo0NTkzOjo2MzQyOjo4MDQxOjo5OTQ0OjoxMTU2MTo6MTIzMTQ6OjEzMTY2OjowOjo0Nzo6NDc6OjQ3Ojo0Nzo6NDc6OjQ3Ojo0Nzo6NDc6OjQ4Ojo1OTo6ODc6OjEyNzo6MTM0OjoxMzU6OjE0Mjo6MTgyOjo1Mzc6Ojc2OTo6MTAwMDo6MTE1Njo6MTIwODo6MTIzMDo6MTI2NDo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjIwJywgdj0nMDo6MDo6MDo6MDo6NTg6OjQ2NDo6MTIxNDo6Mjg2Njo6NTE5NTo6NzY0NDo6MTAxODk6OjEzMTA4OjoxNTkwMjo6MTg3NzM6OjIxNTU3OjoyNDM0NTo6MjgyNzE6OjMyMjY3OjozNjAxMjo6MzkzNjA6OjQyMzUyOjo0NDc4Mjo6MDo6MTIxNTo6MTg3OTo6MjU4MTo6MzIzMjo6MzczMDo6NDYyNzo6Njg0NTo6OTQyNjo6MTMyMTM6OjE3NDYwOjoyMTgxMjo6MjY0MDg6OjMwODc4OjozNTM0Njo6NDAwNjE6OjQ0Nzc2Ojo0OTE0NTo6NTM1MDE6OjU3NTc1Ojo2MTQyOTo6NjQ5Njg6OjY4MDI5Ojo3MTE1NDo6MDo6MjU0MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTIwJywgdj0nNDc1Nzo6Njc0OTo6ODcwNzo6MTA0NDY6OjEyMjk2OjoxNDgxNzo6MTgwMjE6OjIyMTkyOjoyNDcxMDo6MjkyMDk6OjMzNzk5OjozODAwMDo6NDIxOTk6OjQ2Mzc1Ojo1MDY4MTo6NTUwNjI6OjU5Mzg3Ojo2MzY4Njo6Njc5NzE6OjcxODgzOjo3NTM3ODo6NzgyNzQ6OjA6OjE5NjU6OjM3ODU6OjU1ODk6Ojc0MDg6OjkwNDI6OjEwNzM1OjoxMzE0Mzo6MTYyNTQ6OjIwNDczOjoyNTIxMDo6Mjk4OTg6OjM0OTg5OjozOTI2NTo6NDM1NDc6OjQ3NjU5Ojo1MDI5OC44MTY6OjUwMzAyLjczMzo6NTAzMDYuNzI5Ojo1MDMxMC4zMjY6OjUwMzEzLjc4Mzo6NTAzMTcuMDYyOjo1MDMyMC4wMTY6OjUwMzIyLjI3Nzo6MDo6MS45ODYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMjAnLCB2PSczLjc0Njo6NS40Mjc6OjcuMTE2Ojo4LjY0OTo6MTAuMjI1OjoxMi4zNzc6OjE0Ljk3Mjo6MTguMTU1OjoyMS41MTk6OjI0LjA3OTo6MjYuNzg5OjoyOS44NzI6OjMyLjAzODo6MzIuMDc1OjozMi4wOTM6OjMyLjExOjozMi4xMzI6OjMyLjE0OTo6MzIuMTYzOjozMi4xNzM6OjMyLjE4MTo6MzIuMTgzOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowLjAwMTo6MC4wMDU6OjAuMDA4OjowLjAxMjo6MC4wMTQ6OjAuMDE0OjowLjAxNDo6MC4wMTQ6OjAuMDE3OjowLjAyMzo6MC4wMjY6OjAuMDI5OjowLjAzMjo6MC4wMzU6OjAuMDM4OjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUzNDIwJywgdj0nMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MC4wMDQ6OjAuMDEzOjowLjAyMzo6MC4wMzU6OjAuMDM5OjowLjA0OjowLjA0OjowOjowOjowOjowOjowOjowOjowOjowOjowLjAxMTo6MC4wNjQ6OjAuMTg0OjowLjI5OTo6MC40MDM6OjAuNDkxOjowLjU4Nzo6MC42ODQ6OjAuNzc3OjowLjg4Mjo6NDY0OTo6MTEzNjk6OjE4Mzg0OjoyNTUzOTo6MzIwOTg6OjM4MTg5OjowOjo1NjMxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdkNzIwJywgdj0nMTExMzQ6OjE2NTgwOjoyMTgxOTo6MjY5MzQ6OjMyNDQ5OjozOTAxMTo6NDYxNjQ6OjU3MzI5Ojo3MDUzNTo6ODM1OTI6Ojk2MTEyOjoxMDc5MzQ6OjExOTgzNjo6MTMxODM2OjoxNDM5MzI6Ojo6MTU5OTcyOjoxNjc4Mzg6OjE3NTc1OTo6MTgyOTQwOjoxODkyNjE6OjE5NTI2MDo6MDo6NDM2MTo6ODYzNzo6MTI4NDQ6OjE3MDI2OjoyMTI5Mjo6MjYxODU6OjMxNTE0OjozNzYyOTo6NDQxNDc6OjUwMjk1Ojo6OjYyOTcyOjo2OTE0Mjo6NzU0OTA6OjgxODcxOjo4ODQxMTo6OTI2MzQ6Ojk1MjYzOjo5ODEzNjo6MTAxNDkzOjoxMDQzMzg6OjEwNjI2NDo6MTA4MDg2OjowOjoxMTE4OjoyMTI1OjozMTYzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjQwJywgdj0nMzk3Mjo6NDQyNDo6NTExNzo6NjY3MDo6ODY4Mjo6MTEyNzM6OjE0MDM2OjoxNjgwMDo6MTk1ODU6OjIxNjg3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM3NDYwJywgdj0nMTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjIwOTc6OjU2NTg6OjkzMDc6OjEyODM3OjoxNjQzNzo6MjAwNzI6OjI0ODU1OjozMTEyMDo6Mzc4MTM6OjQ0NjM1Ojo1MTUwOTo6NTgyMjQ6OjY0NTE5Ojo3MDQ2MDo6MDo6NDkxMjo6OTc3OTo6MTI0Njg6OjE0Mzc3OjoxNjE5Njo6MTgwOTg6OjIwMzU3OjoyMjkxNjo6MjU1NzI6OjI4MzMzOjozMTA0ODo6MzM2NzM6OjM2MjY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzYwJywgdj0nMzg3Njk6OjQxMTk3Ojo0MzYxNzo6NDYyMjI6OjQ5MzA3Ojo1MjY5NDo6NTYyMjk6OjU5NTg2Ojo2Mjc5MDo6NjYxNDc6OjA6OjI1NjM6OjUwMTA6OjczNzc6Ojk1NDc6OjExNjYyOjoxMzk3MDo6MTY3MjI6OjE5ODIwOjoyMzY2ODo6Mjg0NTU6OjM0MDc5OjozOTc5OTo6NDUxNDg6OjUwNTg5Ojo1NjQ0ODo6NjI2NzQ6OjY5MDg0Ojo3NTU4NDo6ODE2Mjk6Ojg3MDA3Ojo5MjE5MDo6OTY2NjQ6OjEwMDk1Mzo6MDo6MzY4Njo6Njk4MTo6MTAxMDk6OjEzMTQ5OjoxNjAzOTo6MTkxNjg6OjIzMTY0OjoyODI2Mzo6MzQyMzg6OjQwNDczOjo0NjU5MDo6NTI4MjE6OjU4ODY4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTYwJywgdj0nNjQ4MTA6OjcwNjI4Ojo3NzAyNjo6ODMxNjA6Ojg5MDI3Ojo5NDY3Mzo6MTAwMTU1OjoxMDUzODM6OjEwOTY5MTo6MTEzNTU5OjowOjoxOTk2OjozODc2Ojo1OTQ5Ojo3OTQ1Ojo5NjczOjoxMTU4Mzo6MTUxOTc6OjE5MzU1OjoyMzk1OTo6Mjg2ODk6OjMzMjI5OjozNzk4MTo6NDI3NDU6OjQ3NDcwOjo1MjY1Njo6NTgyMjg6OjYzNzY4Ojo2OTM1Mzo6NzQ2MzQ6Ojc5ODcyOjo4NDY5OTo6ODg5NjY6OjkzMDkwOjowOjozMjcyOjo2NTE5Ojo5NjQ2OjoxMjY2NTo6MTU1Mjk6OjE4Nzg1OjoyMjc2Nzo6MjczNjE6OjMzMDI2OjozOTE5Nzo6NDU2MzQ6OjUyMjMxOjo1ODY4OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI3MCcsIHY9JzcxNjIzOjo3Nzg5Nzo6ODM2NjE6Ojg4OTE5Ojo5NDUwOTo6MTAwMjI2OjoxMDYwMDQ6OjExMTUxNzo6MTE2NDk3OjowOjozNTA0Ojo3MTQ3OjoxMDc2MDo6MTQzNDE6OjE3ODIzOjoyMTU2MTo6MjU4NDU6OjMwMzgxOjozNTgyMTo6NDE1Mjk6OjQ4MDI2Ojo1NzMxMDo6NjQ4OTg6OjcwOTI0Ojo3NzE5NTo6ODMxMzU6Ojg5MTA1Ojo5NDkwMDo6MTAwMzIxOjoxMDU2OTg6OjExMTA1Mzo6MTE1NzI3OjoxMjAzMDk6OjA6OjM2MTA6OjcxMjc6OjEwNzc4OjoxNDQyMTo6MTgwMTU6OjIxNzEyOjoyNTU2NDo6Mjk0NTQ6OjMzNTk4OjozNzk0Njo6NDIxMDA6OjQ2MDU0Ojo0OTgyNDo6NTM1MDAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNzAnLCB2PSc1NzA5OTo6NjEzODU6OjY2MjIxOjo3MTM1Mjo6NzYzODI6OjgxMzY4Ojo4NTgyODo6ODk2Nzc6OjkzMDM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzI2MjczMDAxJywgaD0nM2RjMWE3ZTAnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAwJywgdj0nMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTU0MTAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MTAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjoxMDo6NTIxOjoxMDA5OjoxOTE0OjoyMzI5OjoyODA0OjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMTAnLCB2PScxMDcwOjoxMjA1OjoxMjQyOjoxMzYxOjoxODczOjoyNjg4OjoyODg4OjoyOTY4OjozMDEzOjo6OjMwOTM6OjMxNjU6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjMyMjY6OjA6OjUwNDo6OTc1OjoxNDIwOjoxNzc2OjoyMzA1OjoyNzk2OjozMjEyOjo0MDAyOjo0MjU0Ojo0MzczOjo0NDk0Ojo0NTQ5Ojo0NzUzOjo0OTUwOjo1MDg3Ojo1NDUzOjo1NDUzOjo1NDUzOjo1NDUzOjo1NDU0Ojo1NDczOjo1NTA5Ojo1NTgxOjowOjo1ODEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIyMCcsIHY9JzEyMzE6OjE5Mjc6OjI3NjA6OjM5MDI6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjQ4NTM6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZWUyMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMjAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowLjAxNzo6MC4wMzE6OjAuMDQ4OjowLjA2NTo6MC4wODU6OjAuMTA1OjowLjExNDo6MC4xMTY6OjAuMTE2OjowLjExNjo6MC4xMTY6OjAuMTE2OjowLjExNzo6MC4xMjo6MC4xMjM6OjAuMTI4OjowLjEzNTo6MC4xMzU6OjAuMTM1OjowLjEzNTo6MC4xMzU6OjAuMTM1OjowLjEzNjo6MDo6MC4wMTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTM0MjAnLCB2PScwLjAzNjo6MC4wNTQ6OjAuMDc0OjowLjA5Njo6MC4xMTk6OjAuMTM3OjowLjE1Mjo6MC4xNjU6OjAuMTc4OjowLjE5OjowLjIwNDo6MC4yMTY6OjAuMjI4OjowLjIzNzo6MC4yNDk6OjAuMjU2OjowLjI1Njo6MC4yNTY6OjAuMjU2OjowLjI1Njo6MC4yNTY6OjAuMjU3OjowOjowLjAxMjo6MC4wMTg6OjAuMDI6OjAuMDIxOjowLjAyNTo6MC4wMzI6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcyMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjQwJywgdj0nMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzkyMDg6Ojk0OTA6OjEyNTc5OjoxNjYzMzo6MjAxNjQ6OjIzODgyOjoyODMzNDo6MzM3MTM6OjM5MjIwOjo0NDkwOTo6MDo6NjU0Mjo6MTMxODA6OjE5ODU1OjoyNjU5NDo6MzM0MzI6OjQwMjgwOjo0Njc3Nzo6NTI1MjQ6OjU3ODc1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NjAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTYwJywgdj0nMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI3MCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNzAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzEzMTQ2MDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PScyNzAzNzAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nMTMxMzgwMScsIGg9JzNkYzFhN2UwJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzMwNjY5MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPScxMzEzNDAxJywgaD0nM2RjMWE3ZTAnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nMTU3NjExMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPScxMzEzMDAxJywgaD0nM2RjMWE3ZTAnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nMTI3MDk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzUyNTE0NjAxJywgaD0nM2RjMWE3ZTAnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nMDo6MTMwNTo6Mjg2OTo6NDQ4Mjo6NjA2Njo6NzM5Njo6ODU3Mzo6MTAyNjI6OjExOTIyOjoxMzc3Mzo6MTU0OTI6OjE3NTIyOjoxOTU0NDo6MjE0NTI6OjIyMDcwOjoyMjA3NTo6MjIwODA6OjIyMDg0OjoyMjA4NTo6MjIwOTA6OjIyMDk3OjoyMjEwMzo6MjIxMDk6OjIyMTE2OjoyMjEyMzo6MjIxMjk6OjIyMTM2OjoyMjE0Mzo6MjIxNTA6OjIyMTU2OjoyMjE1ODo6MjIxNjY6OjIyMTczOjoyMjE4MDo6MjIxODY6OjIyMTkzOjoyMjIwMDo6MjIyMDc6OjIyMjE0OjoyMjIyMTo6MjIyMjg6OjIyMjM1OjoyMjIzNTo6MjIyMzY6OjIyMjQxOjoyMjI0NDo6MjIyNDc6OjIyMjU0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDAnLCB2PScyMjI2MTo6MjIyNjc6OjIyMjY3OjoyMjI2OTo6MjIyNzM6OjIyMjc0OjoyMjI3NDo6MjIyODA6OjIyMjg3OjoyMjI5NDo6MjIzMDE6OjIyMzA4OjoyMjMxNTo6MjIzMjI6OjIyMzI5OjoyMjMzMzo6MjIzMzU6OjIyMzM1OjoyMjMzNTo6MjIzMzY6OjIyMzM4OjoyMjMzOTo6MjIzMzk6OjIyMzQ0OjoyMjM1MTo6MjIzNTg6OjIyMzY1OjoyMjM3Mjo6MjIzNzk6OjIyMzg2OjoyMjM5MTo6MjIzOTU6OjIyNDAyOjo6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNzo6MjI0MTM6OjIyNDE2OjoyMjQyMjo6MjI0MjknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQxMCcsIHY9JzIyNDM2OjoyMjQ0Mzo6MjI0NTA6OjIyNDU3OjoyMjQ2NDo6MjI0Njg6OjIyNDc1OjoyMjQ3Nzo6MjI0Nzc6OjIyNDc4OjoyMjQ4Mzo6MjI0ODk6OjIyNDk1OjoyMjQ5Nzo6MjI0OTc6OjIyNDk4OjoyMjQ5OTo6MjI0OTk6OjIyNTAwOjoyMjUwNzo6MjI1MTM6OjIyNTIwOjoyMjUyNjo6MjI1MzM6OjIyNTM4OjoyMjU0NTo6MjI1NTI6OjIyNTU5OjoyMjU2NDo6MjI1NjQ6OjIyNTY5OjoyMjU3MTo6MjI1NzI6OjIyNTcyOjoyMjU3Mjo6MjI1NzM6OjIyNTc5OjoyMjU4MDo6MjI1ODA6OjIyNTgwOjoyMjU4MDo6MjI1ODA6OjIyNTgwOjoyMjU4Mzo6MjI1ODU6OjIyNTkwOjoyMjU5Njo6MjI2MDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcxMCcsIHY9JzIyNjEwOjoyMjYxNzo6MjI2MjQ6OjIyNjMyOjoyMjYzOTo6MjI2NDU6OjIyNjUwOjoyMjY1Mzo6MjI2NTM6OjIyNjUzOjoyMjY1NTo6MjI2NjI6OjIyNjY5OjoyMjY3Mjo6MjI2NzU6OjIyNjc3OjoyMjY3ODo6MjI2Nzg6OjIyNjc4OjoyMjY3ODo6MjI2ODI6OjIyNjgzOjoyMjY4Njo6MjI2OTM6OjIyNzAxOjoyMjcwODo6MjI3MTU6OjIyNzIyOjoyMjcyODo6MjI3MzI6OjIyNzM4OjoyMjc0MDo6MjI3NDA6OjIyNzQ0OjoyMjc1MTo6MjI3NTg6OjIyNzY1OjoyMjc3MDo6MjI3NzU6OjIzNTI5OjoyNDM3MDo6MjQ3MzM6OjI0NzM0OjoyNTU1MTo6MjU4NTM6OjI2MzAxOjoyNzEyNjo6Mjg3NDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOWExMCcsIHY9JzI5MzcyOjoyOTU0MDo6MzAxOTk6OjMxMTI1OjozMTIxODo6MzEyMTk6OjMxNTY0OjozMTU2NDo6MzE1NjQ6Ojo6MzE1NjQ6OjMxNTY0OjozMTU5OTo6MzE2MDc6OjMxNjA3OjozMTc5Mjo6MzE5NjU6OjMyMDEwOjozMjI3NDo6MzMwNDc6OjMzODkwOjozMzg5MDo6MzQxOTM6OjM1MzE2OjozNTQxNzo6MzU0MTg6OjM1NTY5OjozNTkwOTo6MzU5MjE6OjM1OTIxOjozNTkyMTo6MzU5MjE6OjM1OTI4OjozNTkyODo6MzU5Mjg6OjM1OTI4OjozNTkyODo6MzU5Mjg6OjM1OTI4OjozNTk5NTo6MzYwODM6OjM2MDgzOjozNjA4Mzo6MzYwODM6OjM2MDgzOjozNjA4Mzo6MzYyMjY6OjM3NDUwOjozODYwOScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjIwJywgdj0nMzk3NDA6OjQwMTUxOjo0MDUyNzo6NDA1Mjc6OjQwODM2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNjM6OjQxNDc2Ojo0MjA1MTo6NDI2OTA6OjQyOTQ2Ojo0MzIzMTo6NDM1MjQ6OjQzODY1Ojo0NDQ4ODo6NDQ0ODg6OjQ0NDg4Ojo0NDQ4ODo6NDQ0ODg6OjQ0NTgyOjo0NDY4NTo6NDQ2ODU6OjQ0Njg1Ojo0NDY4NTo6NDQ2ODU6OjQ0Njg1Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ4OTA6OjQ2MDg5Ojo0NzIxNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTIwJywgdj0nNDgwNDM6OjQ4MjYyOjo0ODQ2Njo6NDg0NjY6OjQ4NDY2Ojo0ODQ2Njo6NDg0NjY6OjQ4NDY2Ojo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDc0Ojo0ODQ5MTo6NDg0OTE6OjQ4ODE2Ojo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ5MDIyOjo0OTE0Nzo6NDk1Njk6OjUwMjE4Ojo1MDI1MTo6NTAyNTE6OjUwMjUxOjo1MDI1Mi45MTo6NTAyNTIuOTE6OjUwMjUyLjkxOjo1MDI1Mi45MTo6NTAyNTIuOTE6OjUwMjUyLjk1NDo6NTAyNTMuMTg1Ojo1MDI1My4xOTI6OjUwMjUzLjQ4Nzo6NTAyNTQuNjY3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTIwJywgdj0nNTAyNTUuOTczOjo1MDI1Ny4zNTY6OjUwMjU4Ljc2NTo6NTAyNTkuMjk2Ojo1MDI1OS4yOTk6OjUwMjU5LjI5OTo6NTAyNTkuMjk5Ojo1MDI1OS4zMzI6OjUwMjU5LjQ1NTo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTc6OjUwMjU5LjQ1ODo6NTAyNTkuNDU4Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY5Ojo1MDI1OS40ODI6OjUwMjU5LjU6OjUwMjU5LjUwNzo6NTAyNTkuNTEzOjo1MDI1OS41MTY6OjUwMjU5LjUxNzo6NTAyNTkuNTE3Ojo1MDI1OS41MTc6OjUwMjU5LjUxNzo6NTAyNTkuNTE3Ojo1MDI1OS41MTc6OjUwMjU5LjUyMTo6NTAyNTkuNTM1Ojo1MDI1OS41NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQyMCcsIHY9JzUwMjU5LjU0Ojo1MDI1OS41NDo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDY6OjUwMjU5LjU0Njo6NTAyNTkuNTQ2Ojo1MDI1OS41NDY6OjUwMjU5LjU0Nzo6NTAyNTkuNTQ3Ojo1MDI1OS41NTI6OjUwMjU5LjU1Nzo6NTAyNTkuNTYxOjo1MDI1OS41Nzc6OjUwMjU5LjU4ODo6NTAyNTkuNjo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDQ6OjUwMjU5LjYwODo6NTAyNTkuNjA5Ojo1MDI1OS42MTI6OjUwMjU5LjYxMjo6NTAyNTkuNjEyOjo1MDI1ODo6NTAyNTg6OjUwMjU4Ojo1MDI1ODo6NTA0MzQ6OjUyMTM3Ojo1NDQzMTo6NTY3MzQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MjAnLCB2PSc1OTQ0Nzo6NjIzMjE6OjY1MjU3Ojo2NzIxNzo6Njc4NjA6OjY5MDAwOjo3MDcxMzo6NzIzMDI6OjczMTg5Ojo3NDEwNjo6NzY3NDY6Ojc5NzUwOjo4MjQ0OTo6ODUwNDM6Ojg3MDAzOjo6Ojg3NTEwOjo4ODAwMjo6ODkyOTc6OjkwNTU2Ojo5MjEwMjo6OTQzNDA6Ojk1NDcwOjo5NjQ0OTo6OTgwMTE6Ojk5NzA3OjoxMDE0NjM6OjEwMjI0NDo6MTAyMjg5OjoxMDIzODY6OjEwMzExNTo6MTAzOTgzOjoxMDQwOTE6Ojo6MTA0ODI2OjoxMDU4MDY6OjEwNjMzMDo6MTA2NjYyOjoxMDY4NTk6OjEwNjg1OTo6MTA4MjkwOjoxMTEwMTk6OjExNDQ4Mzo6MTE2NTQ5OjoxMTgwODM6OjEyMTE1NDo6MTI0NTI0OjoxMjcyMDc6OjEzMDI4Mjo6MTMzNjE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjQwJywgdj0nMTM2OTYzOjoxMzkzMzU6OjE0MDk1MTo6MTQyNjk4OjoxNDQ5ODg6OjE0NzM3Nzo6MTQ5NDgzOjoxNTE0Mzg6OjE1MzcyNjo6MTU2MzE1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM3NDYwJywgdj0nMTc0ODI5OjoxNzQ4OTY6OjE3NDk5Njo6MTc0OTk2OjoxNzU2Mjc6OjE3NjYyODo6MTc3MjAxOjoxNzcyMDE6OjE3NzIwMTo6MTc3NDM5OjoxNzg4NDk6OjE3OTIzODo6MTc5NjI2OjoxODA1MDU6OjE4MTIyNDo6MTgxMjQxOjoxODEyNDE6OjE4MTI3OTo6MTgyMTgzOjoxODI1Mjg6OjE4MjYxOTo6MTgyNzAxOjoxODMxNDQ6OjE4Mzc4MDo6MTg0Njk3OjoxODU0NzU6OjE4NjcwMjo6MTg4MzQyOjoxOTAxNzk6OjE5MjIyNjo6MTk0NDcwOjoxOTY3OTY6OjE5OTAyMDo6MjAxMzE5OjoyMDM1NzE6OjIwNTU1MDo6MjA3NzUxOjoyMDgzODk6OjIwODg3Mzo6MjA5MTg0OjoyMDkzNzM6OjIwOTY0Njo6MjEwMzU4OjoyMTA3NDQ6OjIxMTA2MTo6MjExMjQwOjoyMTE0Mzk6OjIxMTc1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMTc2MCcsIHY9JzIxMTg0Mzo6MjExODQzOjoyMTE4NDM6OjIxMTg0Mzo6MjExODQzOjoyMTE4NTI6OjIxMTk5ODo6MjEyMzM5OjoyMTI4MzM6OjIxNDk1MTo6MjE3MDc3OjoyMTgwNDU6OjIxOTMwOTo6MjIwMzAyOjoyMjA2NjI6OjIyMDc4Njo6MjIwODE5OjoyMjEyNjk6OjIyMTQ1MTo6MjIxNDU4OjoyMjE0NTg6OjIyMTQ1ODo6MjIxNDU4OjoyMjE0NTg6OjIyMTQ1ODo6MjIxNTQ3OjoyMjE4OTU6OjIyMjE4OTo6MjIyNjExOjoyMjM0NzE6OjIyMzgxODo6MjI0NDcyOjoyMjQ0NzM6OjIyNTA2Njo6MjI2MDU0OjoyMjc1MzM6OjIyODQ2MTo6MjI4OTYyOjoyMjkzOTY6OjIyOTQwMTo6MjI5NDAxOjoyMjk1Nzc6OjIzMDU3Njo6MjMwNzU4OjoyMzExNTk6OjIzMTQ1NDo6MjMyNTY2OjoyMzI1NjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNjAnLCB2PScyMzI1NjY6OjIzMjU2Njo6MjMzNjA5OjoyMzQxMDE6OjIzNDEwMTo6MjM0MTM5OjoyMzQ4MzY6OjIzNTQ5Mjo6MjM1NDkyOjoyMzYwODk6OjIzNzIwODo6MjM3NDY3OjoyMzc0Njc6OjIzNzQ2Nzo6MjM3NDY3OjoyMzc0Njc6OjIzNzUxMTo6MjM3NzQ5OjoyMzgzMDY6OjIzODMzMTo6MjM4MzMxOjoyMzgzMzE6OjIzODMzMTo6MjM4NjA2OjoyMzg2Mzc6OjIzOTI2MDo6MjM5ODQ2OjoyMzk4NDY6OjIzOTg0Njo6MjM5ODQ2OjoyMzk4NDc6OjIzOTk4ODo6MjM5OTg4OjoyMzk5ODg6OjI0MDIwMDo6MjQwNDExOjoyNDA5MTY6OjI0MTE5Mzo6MjQxMTk0OjoyNDExOTQ6OjI0MTE5NDo6MjQxMjYwOjoyNDEyNjI6OjI0MTI2Mjo6MjQxMjYyOjoyNDEyNjI6OjI0MTMyNTo6MjQxODQyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ2YjcwJywgdj0nMjQzNDgyOjoyNDQxNTQ6OjI0NDE2NDo6MjQ0MTY0OjoyNDQxNjQ6OjI0NDQ5OTo6MjQ1Nzg4OjoyNDcyMDA6OjI0ODE1Nzo6MjQ4ODY2OjoyNDkzNTg6OjI1MDQzNjo6MjUxNTQ5OjoyNTI0NTI6OjI1MjQ4Mjo6MjUyNDg0OjoyNTI1MjY6OjI1MjUyNjo6MjUyNTI2OjoyNTI1MjY6OjI1Mjg0MDo6MjU1NjM0OjoyNTc1MTE6OjI1NzU4NDo6MjU3NTg1OjoyNTc1ODU6OjI1NzU4NTo6MjU3NTg1OjoyNTc1ODU6OjI1NzU4NTo6MjU3NzY2OjoyNTc3NjY6OjI1ODA3Mzo6MjU4NjI4OjoyNTkxMzA6OjI2MDQ1NDo6MjYyMzUwOjoyNjQzODc6OjI2NTg2NTo6MjY2Nzg3OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MGU3MCcsIHY9JzI2Njg1NDo6MjY2ODY4OjoyNjcxMzI6OjI2NzYwOTo6MjY4MDk1OjoyNjg5MzY6OjI2OTI5NDo6MjY5Mjk0OjoyNjkzNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nNTI1MTM4MDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDAnLCB2PScwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjo6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQxMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcxMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjY4MDo6MTc1Mzo6MjQzNjo6MjQzOTo6MjQ3MTo6MjQ3Mjo6MjQ3Mjo6MjQ3MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTEwJywgdj0nMjc0NTo6Mjc3Njo6Mjc3Njo6Mjc3Njo6Mjg2NDo6MzkzOTo6NDQzNDo6NTIwNzo6Njk4Mzo6OjoxNDU4Nzo6MTg4MDk6OjIwNzI0OjoyMDkyNDo6MjE1MjM6OjIzMTk2OjoyMzU4Nzo6MjQwODQ6OjI0MDg4OjoyNDA4ODo6MjQxMTk6OjI0OTMzOjoyNDk3ODo6MjQ5Nzg6OjI2NDA2OjoyNjc2NDo6MjY3OTk6OjI2Nzk5OjoyNzA3OTo6MjgwOTQ6OjI5NTg0OjozMDY3ODo6MzEyNDI6OjMyMjExOjozMzMwMTo6MzQxODE6OjM0Njg1OjozNTA4ODo6MzU1NDY6OjM2ODA2OjozNzMzNjo6Mzk3OTg6OjQyMzk2Ojo0NTE2Njo6NDc2MDg6OjQ5NDQ3Ojo1MDEzOTo6NTAxMzk6OjUwMTU1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMjAnLCB2PSc1MDE1NTo6NTAxNTY6OjUwMTU4Ojo1MDkwMTo6NTI0NTc6OjUyNDg2Ojo1MzE3MTo6NTUxNTE6OjU3ODIxOjo2MDg2MDo6NjM2MzI6OjY0MjIwOjo2NDY4Mjo6NjQ5Mjk6OjY1MTY5Ojo2NTY5Mjo6NjYzMjQ6OjY2MzI0Ojo2NjQ2OTo6NjY0OTI6OjY2NTM1Ojo2NjU2NTo6NjY1NjU6OjY3ODIwOjo2OTA4Nzo6Njk4Njk6OjcwNzgwOjo3Mjc1NTo6NzUxMDc6Ojc1NDQ5Ojo3NjI3OTo6Nzc0NzM6Ojc5MDEzOjo4MDE3MTo6ODA5NzM6OjgxNDk0Ojo4MzQyMTo6ODQ4ODk6Ojg2NTgyOjo4ODg3Mjo6OTA1MTg6OjkyMDc3Ojo5MzI2Njo6OTQ0MjQ6Ojk2MDc5Ojo5NjU3OTo6OTY1Nzk6Ojk2NTc5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMjAnLCB2PSc5NjU5NDo6OTY1OTQ6Ojk2NTk2Ojo5NzQyODo6OTkwOTI6OjEwMDY5NDo6MTAyMTM2OjoxMDM2NTE6OjEwNDU0Nzo6MTA2MDA0OjoxMDczOTI6OjEwODMwMjo6MTA5NDEwOjoxMTA1MzA6OjExMTYxMzo6MTEzNjc2OjoxMTYwMDU6OjExNzI1MTo6MTE3NzExOjoxMTg0MDk6OjExOTE4ODo6MTIwMDI0OjoxMjAwOTM6OjEyMTExODo6MTIxNjAyOjoxMjE4ODA6OjEyMjA3OTo6MTIzMDQ0OjoxMjQ5OTQ6OjEyNjY4Mzo6MTI4MTQ4OjoxMjg5NDU6OjEyOTAyNTo6MTI5MDI1OjoxMjkwMjU6OjEyOTU5Nzo6MTMwNDc1OjoxMzEyOTU6OjEzMTc2NC4zMDM6OjEzMTc2NS41ODg6OjEzMTc2Ni4zNzU6OjEzMTc2OC4xMTo6MTMxNzY5LjE5ODo6MTMxNzY5LjQ5OjoxMzE3NjkuNzYxOjoxMzE3NzAuMjE5OjoxMzE3NzAuMjM2OjoxMzE3NzAuMjM2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTIwJywgdj0nMTMxNzcwLjIzNjo6MTMxNzcwLjIzNjo6MTMxNzcwLjIzNjo6MTMxNzcwLjIzNjo6MTMxNzcwLjg2ODo6MTMxNzcxLjgwNjo6MTMxNzczLjAyMzo6MTMxNzc0LjYyNTo6MTMxNzc1LjU4OTo6MTMxNzc2LjkxMjo6MTMxNzc4LjA2Mjo6MTMxNzc4LjcwOTo6MTMxNzc5LjI5NTo6MTMxNzc5LjMwNjo6MTMxNzc5LjMxOTo6MTMxNzc5LjM0OTo6MTMxNzc5LjM4Njo6MTMxNzc5LjQyMzo6MTMxNzc5LjQ1ODo6MTMxNzc5LjQ5OjoxMzE3NzkuNDk5OjoxMzE3NzkuNTAzOjoxMzE3NzkuNTA5OjoxMzE3NzkuNTY0OjoxMzE3NzkuNTg3OjoxMzE3NzkuNjA0OjoxMzE3NzkuNjIzOjoxMzE3NzkuNjU5OjoxMzE3NzkuNzA5OjoxMzE3NzkuNzM4OjoxMzE3NzkuNzQ0OjoxMzE3NzkuNzUyOjoxMzE3NzkuNzU1OjoxMzE3NzkuNzU1OjoxMzE3NzkuNzU1OjoxMzE3NzkuNzU1OjoxMzE3NzkuNzU1OjoxMzE3NzkuNzU1OjoxMzE3NzkuNzU2OjoxMzE3NzkuNzg2OjoxMzE3NzkuODE5OjoxMzE3NzkuODU4OjoxMzE3NzkuODkzOjoxMzE3NzkuOTE4OjoxMzE3NzkuOTI2OjoxMzE3NzkuOTI2OjoxMzE3NzkuOTI2OjoxMzE3NzkuOTQ5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUzNDIwJywgdj0nMTMxNzc5Ljk1ODo6MTMxNzc5Ljk1OTo6MTMxNzc5Ljk2OjoxMzE3NzkuOTcyOjoxMzE3ODAuMDAzOjoxMzE3ODAuMDI3OjoxMzE3ODAuMDQ5OjoxMzE3ODAuMDg5OjoxMzE3ODAuMTI1OjoxMzE3ODAuMTU1OjoxMzE3ODAuMTc5OjoxMzE3ODAuMTg0OjoxMzE3ODAuMTkxOjoxMzE3ODAuMjAyOjoxMzE3ODAuMjIyOjoxMzE3ODAuMjQzOjoxMzE3ODAuMjUxOjoxMzE3ODAuMjU4OjoxMzE3ODAuMjYxOjoxMzE3ODAuMjc3OjoxMzE3ODAuMjg1OjoxMzE3ODAuMjg1OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg4OjoxMzE3ODAuMjg5OjoxMzE3ODAuMzAzOjoxMzE3ODAuMzQ6OjEzMTc4MC4zNTo6MTMxNzgwLjM1Njo6MTMxNzgwLjM2ODo6MTMxNzgwLjM4MTo6MTMxNzgwLjM4NDo6MTMxNzgwLjM4NDo6MTMxNzgwLjM4Njo6MTMxNzgwLjM5ODo6MTMxNzgwLjQxNTo6MTMxNzgwLjQ1MTo6MTMzMjA1OjoxMzUzNDM6OjEzNjg2Njo6MTM3ODYxOjoxMzgyNzI6OjEzODI3Mjo6MTM4MjcyOjoxMzgyNzInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MjAnLCB2PScxMzgyNzI6OjEzODI3Mjo6MTM4MjcyOjoxMzgyNzI6OjEzODI3NTo6MTM4Mjc3OjoxMzgyOTA6OjEzODI5MDo6MTM4MjkwOjoxMzgyOTA6OjEzODM1NTo6MTM4MzU1OjoxMzgzNTU6OjEzODM1NTo6MTM4MzU1Ojo6OjE0MTA4ODo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTk5Nzo6MTQzNjE4OjoxNDM2MTg6OjE0MzYyOTo6MTQzNjgxOjo6OjE0MzcxNDo6MTQzNzE0OjoxNDM3MTQ6OjE0MzcxNDo6MTQzNzI1OjoxNDQzNTE6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhOTY0MCcsIHY9JzE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzY4OjoxNDQzNjg6OjE0NDM2ODo6MTQ0MzY4OjoxNDQzNjg6OjE0NDM2OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzE2MjcwNzo6MTYyNzg2OjoxNjMxMDc6OjE2NTAzNTo6MTY1MDYyOjoxNjUwNjI6OjE2NjQ4MTo6MTY4OTU2OjoxNzEwNzI6OjE3MTM5MTo6MTcxMzkxOjoxNzE2MzQ6OjE3MTYzNDo6MTcxNjM0OjoxNzE2MzQ6OjE3MTg2NTo6MTczMDA2OjoxNzQxNzU6OjE3NDE3NTo6MTc0MTc3OjoxNzQ0MzU6OjE3NDQzODo6MTc0NDM4OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NTQwOjoxNzQ1NDA6OjE3NDU0MDo6MTc0NTk0OjoxNzQ1OTQ6OjE3NDU5NDo6MTc0NTk0OjoxNzQ1OTQ6OjE3NDU5ODo6MTc0NTk4OjoxNzQ1OTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NjAnLCB2PScxNzQ3NDI6OjE3NTEyOTo6MTc1NzA2OjoxNzc3MzE6OjE3OTgwMzo6MTgwNDA1OjoxODA0MDU6OjE4MDY0Njo6MTgwNzA0OjoxODA3MDQ6OjE4MDcwNDo6MTgwNzcxOjoxODA3ODI6OjE4MDc4Mjo6MTgwNzgyOjoxODA4MDE6OjE4MDk4Mzo6MTgxOTYxOjoxODI4NzM6OjE4NDA4Njo6MTg2MzMyOjoxODgzOTY6OjE4OTg0ODo6MTkwNTA0OjoxOTIxMTQ6OjE5Mzg5Nzo6MTk0NDc0OjoxOTUyMDQ6OjE5NTIwNjo6MTk1MjMwOjoxOTUyMzI6OjE5NTM5Nzo6MTk2MDQxOjoxOTYwNDY6OjE5NjA0Njo6MTk2MDQ2OjoxOTYxNzU6OjE5NjE3NTo6MTk2MTc1OjoxOTY2Nzg6OjE5ODAwNzo6MTk4ODgxOjoxOTg4OTU6OjE5OTA0Mzo6MTk5NDk0OjoxOTk0OTQ6OjE5OTQ5NDo6MjAwMDU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTYwJywgdj0nMjAxMzUzOjoyMDI4NTE6OjIwMzIzNzo6MjAzMzUzOjoyMDM4MjU6OjIwNDE2Nzo6MjA0MTY3OjoyMDQyODY6OjIwNTc3ODo6MjA1ODMzOjoyMDU4MzM6OjIwOTAzNjo6MjEwOTcwOjoyMTE0MjY6OjIxMjEzODo6MjE0NDEwOjoyMTgxNTY6OjIxODM5NTo6MjE4Mzk1OjoyMTk3OTU6OjIyMjM2ODo6MjI1OTYzOjoyMjg2NzY6OjIyODY5ODo6MjI4OTQxOjoyMjkwODI6OjIyOTA4Mjo6MjMwODIyOjoyMzIyMzc6OjIzMzQyNTo6MjMzOTEwOjoyMzUwOTg6OjIzNzI3Mzo6MjM4MTYwOjoyMzgyNTk6OjIzODQzMTo6MjM4NDMxOjoyMzg0NjA6OjIzODYwNDo6MjM5NzM1OjoyNDA2ODU6OjI0MTY0ODo6MjQyNDA2OjoyNDQxMzc6OjI0NzQ3MTo6MjUwNTUxOjoyNTM0MDQ6OjI1MzQwNCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI3MCcsIHY9JzI1MzQwNDo6MjUzNDA0OjoyNTU1Mjc6OjI2MDEyNDo6MjYxNDkyOjoyNjE2MDY6OjI2MTYwNjo6MjYxNjA2OjoyNjE2MDY6OjI2MTYwNjo6MjYxNjkyOjoyNjE2OTI6OjI2MTY5Mjo6MjYxNjkyOjoyNjE3OTQ6OjI2MjMxNTo6MjYyOTM5OjoyNjQxMTg6OjI2NTkyMTo6MjY5MjAwOjoyNzIwNDE6OjI3MjA0MTo6MjcyMDQ5OjoyNzIyMjk6OjI3MjQxNzo6MjcyOTAwOjoyNzM5MDk6OjI3NjQ2Njo6Mjc5MDg0OjoyODExNzM6OjI4MTM0OTo6MjgyNjQyOjoyODI4NDE6OjI4MzE4NTo6MjgzMTk4OjoyODMxOTg6OjI4MzE5ODo6MjgzMTk4OjoyODMxOTg6OjI4MzE5ODo6MjgzNDAyOjoyODQxMTQ6OjI4NTI0NDo6Mjg2ODg2OjoyODg4ODQ6OjI5MTk2ODo6Mjk0ODg0OjoyOTc4NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNzAnLCB2PSczMDA5NTQ6OjMwMTczMzo6MzAyMzQxOjozMDIzNDE6OjMwMjM0MTo6MzAyMzQxOjozMDM5MTU6OjMwNjIwMTo6MzA2NjkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzUyNTEzNDAxJywgaD0nM2RjMWE3ZTAnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nMDo6NDE3Nzo6ODM0ODo6MTI0MjE6OjE2NDY2OjoyMDM4OTo6MjQ1NTA6OjI5NjM4OjozNTM5MDo6NDIzMjk6OjQ5NjA4Ojo1Njk4Mjo6NjQxMTk6OjcwODE5Ojo3MjgyNDo6NzI4MzE6OjcyODM4Ojo3Mjg0NTo6NzI4NTE6OjcyODU5Ojo3Mjg2Njo6NzI4NzM6OjcyODgxOjo3Mjg4OTo6NzI4OTg6OjcyOTA2Ojo3MjkxNDo6NzI5MjI6OjcyOTMxOjo3MjkzODo6NzI5NDY6OjcyOTU1Ojo3Mjk2Mzo6NzI5NzI6OjcyOTc5Ojo3Mjk4Nzo6NzI5OTU6OjczMDA0Ojo3MzAxMjo6NzMwMjE6OjczMDI5Ojo3MzAzNzo6NzMwNDU6OjczMDUyOjo3MzA2MDo6NzMwNjc6OjczMDc0Ojo3MzA4MycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAwJywgdj0nNzMwOTI6OjczMTAwOjo3MzEwODo6NzMxMTY6OjczMTI0Ojo3MzEzMTo6NzMxMzk6OjczMTQ3Ojo3MzE1NTo6NzMxNjQ6OjczMTcyOjo3MzE4MDo6NzMxODk6OjczMTk3Ojo3MzIwNTo6NzMyMTM6OjczMjIxOjo3MzIyODo6NzMyMzU6OjczMjQyOjo3MzI1MDo6NzMyNTg6OjczMjY1Ojo3MzI3Mzo6NzMyODE6OjczMjkwOjo3MzI5ODo6NzMzMDc6OjczMzE2Ojo3MzMyNDo6NzMzMzM6OjczMzQxOjo3MzM0OTo6Ojo3MzM2Mjo6NzMzNjg6OjczMzc0Ojo3MzM4MTo6NzMzODc6OjczMzk0Ojo3MzQwMDo6NzM0MDc6OjczNDE0Ojo3MzQyMTo6NzM0Mjg6OjczNDM2Ojo3MzQ0Mzo6NzM0NTE6OjczNDU5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTU0MTAnLCB2PSc3MzQ2Nzo6NzM0NzY6OjczNDg0Ojo3MzQ5Mjo6NzM1MDE6OjczNTA4Ojo3MzUxNjo6NzM1MjM6OjczNTI5Ojo3MzUzNjo6NzM1NDM6OjczNTUwOjo3MzU1Nzo6NzM1NjQ6OjczNTcxOjo3MzU3ODo6NzM1ODU6OjczNTkyOjo3MzU5OTo6NzM2MDc6OjczNjE0Ojo3MzYyMjo6NzM2MzA6OjczNjM5Ojo3MzY0Nzo6NzM2NTU6OjczNjYzOjo3MzY3Mjo6NzM2ODA6OjczNjg3Ojo3MzY5NDo6NzM3MDI6OjczNzA5Ojo3MzcxNTo6NzM3MjE6OjczNzI4Ojo3MzczNTo6NzM3NDI6OjczNzQ4Ojo3Mzc1NTo6NzM3NjI6OjczNzY5Ojo3Mzc3Njo6NzM3ODM6OjczNzkxOjo3Mzc5ODo6NzM4MDY6OjczODE0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MTAnLCB2PSc3MzgyMzo6NzM4MzE6OjczODQwOjo3Mzg0OTo6NzM4NTg6OjczODY2Ojo3Mzg3NDo6NzM4ODE6OjczODg4Ojo3Mzg5NTo6NzM5MDI6OjczOTA5Ojo3MzkxNzo6NzM5MjQ6OjczOTMxOjo3MzkzODo6NzM5NDU6OjczOTUyOjo3Mzk1OTo6NzM5NjY6OjczOTczOjo3Mzk4MDo6NzM5ODg6OjczOTk2Ojo3NDAwNTo6NzQwMTQ6Ojc0MDIyOjo3NDAzMTo6NzQwMzk6Ojc0MDQ3Ojo3NDA1NTo6NzQwNjI6Ojc0MDY5Ojo3NDA3Njo6NzQwODQ6Ojc0MDkxOjo3NDA5ODo6NzQxMDU6Ojc0MTEyOjo3NjU5Mzo6ODE5MTI6Ojg0MjkzOjo4NDQzODo6ODQ0Mzg6Ojg0NDM4Ojo4NDQzOTo6ODQ0NDA6Ojg0NDQwJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMTAnLCB2PSc4NDQ0Mjo6ODQ0NDU6Ojg0NDUwOjo4NDQ1MDo6ODQ0NTA6Ojg0NDUwOjo4NDUxMDo6ODQ2MjI6Ojg0Njc3Ojo6Ojg0NzY4Ojo4NDkwMjo6ODUxNjE6Ojg1ODM0Ojo4NjY1Njo6ODc1MDA6Ojg5MDM0Ojo5MDc4Mzo6OTI0ODI6Ojk0Mzg2Ojo5NjAwMzo6OTY3NTY6Ojk3NjA4Ojo5ODUyMDo6OTg1Njg6Ojk4NTY4Ojo5ODU2ODo6OTg1Njg6Ojk4NTY4Ojo5ODU2ODo6OTg1Njk6Ojk4NTY5Ojo5ODU3MDo6OTg1ODE6Ojk4NjA5Ojo5ODY0OTo6OTg2NTY6Ojk4NjU3Ojo5ODY2NDo6OTg3MDQ6Ojk5MDU5Ojo5OTI5MTo6OTk1MjI6Ojk5Njc5Ojo5OTczMDo6OTk3NTI6Ojk5Nzg2Ojo5OTg4Mjo6OTk4ODInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIyMCcsIHY9Jzk5ODgyOjo5OTg4Mjo6OTk4ODI6Ojk5ODgyOjo5OTk0MDo6MTAwMzQ2OjoxMDEwOTY6OjEwMjc0OTo6MTA1MDc4OjoxMDc1Mjc6OjExMDA3Mjo6MTEyOTkxOjoxMTU3ODY6OjExODY1Njo6MTIxNDQxOjoxMjQyMjg6OjEyODE1NDo6MTMyMTQ5OjoxMzU4OTU6OjEzOTI0Mzo6MTQyMjM1OjoxNDQ2NjU6OjE0NjU1MDo6MTQ3NzY2OjoxNDg0MzA6OjE0OTEzMjo6MTQ5NzgzOjoxNTAyODE6OjE1MTE3ODo6MTUzMzk2OjoxNTU5Nzc6OjE1OTc2NDo6MTY0MDExOjoxNjgzNjM6OjE3Mjk1OTo6MTc3NDI5OjoxODE4OTc6OjE4NjYxMjo6MTkxMzI4OjoxOTU2OTc6OjIwMDA1NDo6MjA0MTI3OjoyMDc5ODE6OjIxMTUyMDo6MjE0NTgxOjoyMTc3MDU6OjIyMDY4Mjo6MjIzMjI0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMjAnLCB2PScyMjU0NDA6OjIyNzQzMTo6MjI5Mzg5OjoyMzExMjg6OjIzMjk3OTo6MjM1NTAxOjoyMzg3MDU6OjI0Mjg3Nzo6MjQ1Mzk1OjoyNDk4OTQ6OjI1NDQ4NDo6MjU4Njg1OjoyNjI4ODQ6OjI2NzA1OTo6MjcxMzY1OjoyNzU3NDc6OjI4MDA3Mjo6Mjg0MzcxOjoyODg2NTY6OjI5MjU2Nzo6Mjk2MDYyOjoyOTg5NTg6OjMwMTY3ODo6MzAzNjQzOjozMDU0NjQ6OjMwNzI2ODo6MzA5MDg3OjozMTA3MjE6OjMxMjQxNDo6MzE0ODIzOjozMTc5MzM6OjMyMjE1Mzo6MzI2ODg5OjozMzE1Nzc6OjMzNjY2ODo6MzQwOTQ0OjozNDUyMjc6OjM0OTMzODo6MTUxOTc4LjY5Nzo6MTUxOTgyLjYxNDo6MTUxOTg2LjYxOjoxNTE5OTAuMjA3OjoxNTE5OTMuNjY1OjoxNTE5OTYuOTQzOjoxNTE5OTkuODk3OjoxNTIwMDIuMTU4OjoxNTIwMDQuMjA3OjoxNTIwMDYuMTk0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTIwJywgdj0nMTUyMDA3Ljk1NDo6MTUyMDA5LjYzNTo6MTUyMDExLjMyNDo6MTUyMDEyLjg1Nzo6MTUyMDE0LjQzMzo6MTUyMDE2LjU4Njo6MTUyMDE5LjE4MTo6MTUyMDIyLjM2NTo6MTUyMDI1LjcyODo6MTUyMDI4LjI4ODo6MTUyMDMwLjk5ODo6MTUyMDM0LjA4MTo6MTUyMDM2LjI0Nzo6MTUyMDM2LjI4NDo6MTUyMDM2LjMwMjo6MTUyMDM2LjMxOTo6MTUyMDM2LjM0MTo6MTUyMDM2LjM1OTo6MTUyMDM2LjM3Mjo6MTUyMDM2LjM4Mzo6MTUyMDM2LjM5OjoxNTIwMzYuMzkzOjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk4OjoxNTIwMzYuMzk5OjoxNTIwMzYuNDA0OjoxNTIwMzYuNDA3OjoxNTIwMzYuNDEyOjoxNTIwMzYuNDE0OjoxNTIwMzYuNDE0OjoxNTIwMzYuNDE0OjoxNTIwMzYuNDE0OjoxNTIwMzYuNDE3OjoxNTIwMzYuNDIyOjoxNTIwMzYuNDI1OjoxNTIwMzYuNDI4OjoxNTIwMzYuNDMyOjoxNTIwMzYuNDM1OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUzNDIwJywgdj0nMTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQzNzo6MTUyMDM2LjQ0MTo6MTUyMDM2LjQ1OjoxNTIwMzYuNDY6OjE1MjAzNi40NzI6OjE1MjAzNi40NzY6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40Nzg6OjE1MjAzNi40ODk6OjE1MjAzNi41NDM6OjE1MjAzNi42NjM6OjE1MjAzNi43Nzg6OjE1MjAzNi44ODM6OjE1MjAzNi45NzE6OjE1MjAzNy4wNjY6OjE1MjAzNy4xNjQ6OjE1MjAzNy4yNTc6OjE1MjAzNy4zNjE6OjM1NjY4NTo6MzYzNDA1OjozNzA0MjA6OjM3NzU3NTo6Mzg0MTM0OjozOTAyMjU6OjM5NjA2NDo6NDAxNjk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdkNzIwJywgdj0nNDA3MTk4Ojo0MTI2NDQ6OjQxNzg4Mzo6NDIyOTk4Ojo0Mjg1MTM6OjQzNTA3NTo6NDQyMjI5Ojo0NTMzOTU6OjQ2NjYwMTo6NDc5NjU4Ojo0OTIxNzc6OjUwNDAwMDo6NTE1OTAxOjo1Mjc5MDE6OjUzOTk5Nzo6Ojo1NTYwMzY6OjU2MzkwMzo6NTcxODIzOjo1NzkwMDU6OjU4NTMyNjo6NTkxMzI1Ojo1OTYzNTQ6OjYwMDcxNTo6NjA0OTkyOjo2MDkxOTk6OjYxMzM4MTo6NjE3NjQ2Ojo2MjI1Mzk6OjYyNzg2ODo6NjMzOTgzOjo2NDA1MDI6OjY0NjY1MDo6Ojo2NTkzMjg6OjY2NTQ5ODo6NjcxODQ1Ojo2NzgyMjc6OjY4NDc2Njo6Njg4OTkwOjo2OTE2MTk6OjY5NDQ5Mjo6Njk3ODQ5Ojo3MDA2OTQ6OjcwMjYyMDo6NzA0NDQyOjo3MDU1NzI6OjcwNjY5MTo6NzA3Njk3Ojo3MDg3MzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYTk2NDAnLCB2PSc3MDk1NDU6OjcwOTk5Nzo6NzEwNjkwOjo3MTIyNDM6OjcxNDI1NTo6NzE2ODQ3Ojo3MTk2MDk6OjcyMjM3Mzo6NzI1MTU4Ojo3MjcyNjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzc0NjAnLCB2PSc3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzczMDg2Ojo3NzY2NDc6Ojc4MDI5Njo6NzgzODI2Ojo3ODc0MjY6Ojc5MTA2MTo6Nzk1ODQ0Ojo4MDIxMDk6OjgwODgwMTo6ODE1NjI0Ojo4MjI0OTg6OjgyOTIxMzo6ODM1NTA4Ojo4NDE0NDk6Ojg0Njg4Njo6ODUxNzk4Ojo4NTY2NjU6Ojg1OTM1NDo6ODYxMjYzOjo4NjMwODM6Ojg2NDk4NTo6ODY3MjQ1Ojo4Njk4MDM6Ojg3MjQ2MDo6ODc1MjIxOjo4Nzc5Mzc6Ojg4MDU2MTo6ODgzMTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzYwJywgdj0nODg1NjU3Ojo4ODgwODU6Ojg5MDUwNTo6ODkzMTEwOjo4OTYxOTQ6Ojg5OTU4MTo6OTAzMTE2Ojo5MDY0NzM6OjkwOTY3Nzo6OTEzMDM0Ojo5MTYwODI6OjkxODY0Njo6OTIxMDkzOjo5MjM0NjA6OjkyNTYzMDo6OTI3NzQ0Ojo5MzAwNTM6OjkzMjgwNjo6OTM1OTA0Ojo5Mzk3NTM6Ojk0NDU0MDo6OTUwMTYzOjo5NTU4ODQ6Ojk2MTIzMzo6OTY2NjczOjo5NzI1MzM6Ojk3ODc1ODo6OTg1MTY4Ojo5OTE2Njg6Ojk5NzcxMzo6MTAwMzA5MTo6MTAwODI3NDo6MTAxMjc0OTo6MTAxNzAzODo6MTAyMDkzNzo6MTAyNDYyNDo6MTAyNzkxOTo6MTAzMTA0Nzo6MTAzNDA4Nzo6MTAzNjk3Njo6MTA0MDEwNjo6MTA0NDEwMjo6MTA0OTIwMTo6MTA1NTE3Nzo6MTA2MTQxMTo6MTA2NzUyODo6MTA3Mzc1OTo6MTA3OTgwNicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYmE2MCcsIHY9JzEwODU3NDg6OjEwOTE1NjY6OjEwOTc5NjQ6OjExMDQwOTg6OjExMDk5NjU6OjExMTU2MTE6OjExMjEwOTM6OjExMjYzMjE6OjExMzA2MzA6OjExMzQ0OTc6OjExMzc5NzM6OjExMzk5NzA6OjExNDE4NDk6OjExNDM5MjM6OjExNDU5MTg6OjExNDc2NDc6OjExNDk1NTc6OjExNTMxNzE6OjExNTczMjk6OjExNjE5MzQ6OjExNjY2NjQ6OjExNzEyMDQ6OjExNzU5NTc6OjExODA3MjE6OjExODU0NDY6OjExOTA2MzI6OjExOTYyMDQ6OjEyMDE3NDM6OjEyMDczMjg6OjEyMTI2MDg6OjEyMTc4NDc6OjEyMjI2NzQ6OjEyMjY5NDI6OjEyMzEwNjY6OjEyMzQ4Nzg6OjEyMzgxNTE6OjEyNDEzOTg6OjEyNDQ1MjU6OjEyNDc1NDQ6OjEyNTA0MDg6OjEyNTM2NjM6OjEyNTc2NDU6OjEyNjIyMzk6OjEyNjc5MDU6OjEyNzQwNzU6OjEyODA1MTI6OjEyODcxMDk6OjEyOTM1NjYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNzAnLCB2PScxMzA2NTAxOjoxMzEyNzc1OjoxMzE4NTM5OjoxMzIzNzk4OjoxMzI5Mzg3OjoxMzM1MTA1OjoxMzQwODgzOjoxMzQ2Mzk2OjoxMzUxMzc2OjoxMzU1NTk0OjoxMzU5MDk5OjoxMzYyNzQyOjoxMzY2MzU1OjoxMzY5OTM2OjoxMzczNDE4OjoxMzc3MTU2OjoxMzgxNDQwOjoxMzg1OTc2OjoxMzkxNDE2OjoxMzk3MTI0OjoxNDAzNjIyOjoxNDEyOTA1OjoxNDIwNDk0OjoxNDI2NTE5OjoxNDMyNzkxOjoxNDM4NzMxOjoxNDQ0NzAwOjoxNDUwNDk1OjoxNDU1OTE2OjoxNDYxMjkzOjoxNDY2NjQ4OjoxNDcxMzIzOjoxNDc1OTA0OjoxNDc5OTAzOjoxNDgzNTE0OjoxNDg3MDMwOjoxNDkwNjgyOjoxNDk0MzI0OjoxNDk3OTE4OjoxNTAxNjE1OjoxNTA1NDY4OjoxNTA5MzU4OjoxNTEzNTAzOjoxNTE3ODUwOjoxNTIyMDA0OjoxNTI1OTU3OjoxNTI5NzI4OjoxNTMzNDAzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTcwJywgdj0nMTUzNzAwMzo6MTU0MTI4OTo6MTU0NjEyNDo6MTU1MTI1Njo6MTU1NjI4Njo6MTU2MTI3Mjo6MTU2NTczMTo6MTU2OTU4MTo6MTU3Mjk0MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPSc1MjUxMzAwMScsIGg9JzNkYzFhN2UwJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMCcsIHY9JzA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDEwJywgdj0nMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdmNzEwJywgdj0nMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MTA6OjUyMTo6MTAwOTo6MTkxNDo6MjMyOTo6MjgwNDo6MzQ3NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTEwJywgdj0nNDU0Njo6NDY4Mjo6NDcxOTo6NDgzODo6NTM1MDo6NjE2NTo6NjM2NTo6NjQ0NTo6NjQ5MDo6Ojo2NTcxOjo2NjQzOjo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo2NzA0Ojo3MjA4Ojo3Njc5Ojo4MTI0Ojo4NDgwOjo5MDEwOjo5NTAxOjo5OTE4OjoxMDcwODo6MTA5NjA6OjExMDc5OjoxMTIwMDo6MTEyNTU6OjExNDU5OjoxMTY1Njo6MTE3OTM6OjEyMTU5OjoxMjE1OTo6MTIxNTk6OjEyMTU5OjoxMjE2MDo6MTIxNzk6OjEyMjE1OjoxMjI4Nzo6MTIzMDI6OjEyODg0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMjAnLCB2PScxMzUzMzo6MTQyMzA6OjE1MDYyOjoxNjIwNDo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMjAnLCB2PScxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTEyMCcsIHY9JzE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkzOjoxNzE1Ny41MTE6OjE3MTU3LjUyNTo6MTcxNTcuNTQyOjoxNzE1Ny41NTg6OjE3MTU3LjU3OTo6MTcxNTcuNTk5OjoxNzE1Ny42MDg6OjE3MTU3LjYxMTo6MTcxNTcuNjEyOjoxNzE1Ny42MTI6OjE3MTU3LjYxMjo6MTcxNTcuNjEyOjoxNzE1Ny42MTM6OjE3MTU3LjYxNjo6MTcxNTcuNjE4OjoxNzE1Ny42MjM6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMyOjoxNzE1Ny42NDknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxNTM0MjAnLCB2PScxNzE1Ny42Njk6OjE3MTU3LjY4Njo6MTcxNTcuNzA2OjoxNzE1Ny43Mjg6OjE3MTU3Ljc1Mjo6MTcxNTcuNzcxOjoxNzE1Ny43ODY6OjE3MTU3Ljc5OTo6MTcxNTcuODEyOjoxNzE1Ny44MjQ6OjE3MTU3LjgzODo6MTcxNTcuODU6OjE3MTU3Ljg2MTo6MTcxNTcuODcxOjoxNzE1Ny44ODM6OjE3MTU3Ljg5OjoxNzE1Ny44OTo6MTcxNTcuODk6OjE3MTU3Ljg5OjoxNzE1Ny44OTo6MTcxNTcuODk6OjE3MTU3Ljg5MTo6MTcxNTcuODk5OjoxNzE1Ny45MTE6OjE3MTU3LjkxODo6MTcxNTcuOTI6OjE3MTU3LjkyMTo6MTcxNTcuOTI1OjoxNzE1Ny45MzI6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxN2Q3MjAnLCB2PScxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ojo6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1NicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhOTY0MCcsIHY9JzE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM3NDYwJywgdj0nMjYzNjY6OjI2NjQ4OjoyOTczNzo6MzM3OTA6OjM3MzIwOjo0MTAzODo6NDU0OTE6OjUwODcwOjo1NjM3ODo6NjIwNjY6OjY3ODkyOjo3NDQzNTo6ODEwNzM6Ojg3NzQ4Ojo5NDQ4Nzo6MTAxMzI1OjoxMDgxNzM6OjExNDY3MTo6MTIwNDE3OjoxMjU3Njg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMTc2MCcsIHY9JzEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNjAnLCB2PScxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ2YjcwJywgdj0nMTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MGU3MCcsIHY9JzEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nMzQ2MDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PSc2MDk0NTY0Ojo2MDk1ODY5Ojo2MDk3NDMzOjo2MDk5MDQ2Ojo2MTAwNjMwOjo2MTAxOTYwOjo2MTAzMTM3Ojo2MTA0ODI2Ojo2MTA2NDg3Ojo2MTA4MzM4Ojo2MTEwMDU3Ojo2MTEyMDg3Ojo2MTE0MTA4Ojo2MTE2MDE3Ojo2MTE2NjM1Ojo2MTE2NjQwOjo2MTE2NjQ1Ojo2MTE2NjQ4Ojo2MTE2NjQ5Ojo2MTE2NjU0Ojo2MTE2NjYxOjo2MTE2NjY3Ojo2MTE2Njc0Ojo2MTE2NjgxOjo2MTE2Njg4Ojo2MTE2Njk0Ojo2MTE2NzAxOjo2MTE2NzA4Ojo2MTE2NzE1Ojo2MTE2NzIxOjo2MTE2NzIzOjo2MTE2NzMwOjo2MTE2NzM4Ojo2MTE2NzQ1Ojo2MTE2NzUxOjo2MTE2NzU3Ojo2MTE2NzY0Ojo2MTE2NzcxOjo2MTE2Nzc5Ojo2MTE2Nzg2Ojo2MTE2NzkzOjo2MTE2Nzk5Ojo2MTE2ODAwOjo2MTE2ODAwOjo2MTE2ODA1Ojo2MTE2ODA4Ojo2MTE2ODEyOjo2MTE2ODE5JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDAnLCB2PSc2MTE2ODI2Ojo2MTE2ODMyOjo2MTE2ODMyOjo2MTE2ODM0Ojo2MTE2ODM4Ojo2MTE2ODM5Ojo2MTE2ODM5Ojo2MTE2ODQ1Ojo2MTE2ODUyOjo2MTE2ODU5Ojo2MTE2ODY2Ojo2MTE2ODczOjo2MTE2ODgwOjo2MTE2ODg3Ojo2MTE2ODkzOjo2MTE2ODk4Ojo2MTE2ODk5Ojo2MTE2ODk5Ojo2MTE2ODk5Ojo2MTE2OTAxOjo2MTE2OTAyOjo2MTE2OTA0Ojo2MTE2OTA1Ojo2MTE2OTEwOjo2MTE2OTE3Ojo2MTE2OTI0Ojo2MTE2OTMxOjo2MTE2OTM4Ojo2MTE2OTQ1Ojo2MTE2OTUyOjo2MTE2OTU3Ojo2MTE2OTYxOjo2MTE2OTY4Ojo6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzA6OjYxMTY5NzI6OjYxMTY5Nzg6OjYxMTY5ODA6OjYxMTY5ODc6OjYxMTY5OTQnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQxMCcsIHY9JzYxMTcwMDE6OjYxMTcwMDg6OjYxMTcwMTU6OjYxMTcwMjI6OjYxMTcwMjk6OjYxMTcwMzM6OjYxMTcwMzk6OjYxMTcwNDI6OjYxMTcwNDI6OjYxMTcwNDQ6OjYxMTcwNDk6OjYxMTcwNTQ6OjYxMTcwNjE6OjYxMTcwNjI6OjYxMTcwNjI6OjYxMTcwNjM6OjYxMTcwNjU6OjYxMTcwNjU6OjYxMTcwNjY6OjYxMTcwNzI6OjYxMTcwNzg6OjYxMTcwODQ6OjYxMTcwOTE6OjYxMTcwOTg6OjYxMTcxMDM6OjYxMTcxMTA6OjYxMTcxMTc6OjYxMTcxMjQ6OjYxMTcxMjk6OjYxMTcxMjk6OjYxMTcxMzQ6OjYxMTcxMzY6OjYxMTcxMzc6OjYxMTcxMzc6OjYxMTcxMzc6OjYxMTcxMzg6OjYxMTcxNDQ6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDU6OjYxMTcxNDg6OjYxMTcxNTA6OjYxMTcxNTQ6OjYxMTcxNjA6OjYxMTcxNjcnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcxMCcsIHY9JzYxMTcxNzQ6OjYxMTcxODE6OjYxMTcxODk6OjYxMTcxOTY6OjYxMTcyMDM6OjYxMTcyMTA6OjYxMTcyMTY6OjYxMTcyMTk6OjYxMTcyMjA6OjYxMTcyMjA6OjYxMTcyMjI6OjYxMTcyMjg6OjYxMTcyMzU6OjYxMTcyMzk6OjYxMTcyNDE6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDc6OjYxMTcyNDg6OjYxMTcyNTI6OjYxMTcyNTk6OjYxMTcyNjY6OjYxMTcyNzM6OjYxMTcyODA6OjYxMTcyODc6OjYxMTcyOTM6OjYxMTcyOTc6OjYxMTczMDM6OjYxMTczMDQ6OjYxMTczMDU6OjYxMTczMDk6OjYxMTczMTY6OjYxMTczMjM6OjYxMTczMzA6OjYxMTczMzY6OjYxMTczNDA6OjYxMTgwOTU6OjYxMTg5MzY6OjYxMTkyOTk6OjYxMTkzMDA6OjYxMjAxMTc6OjYxMjA0MTk6OjYxMjA4Njc6OjYxMjE2OTI6OjYxMjMzMDgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOWExMCcsIHY9JzYxMjM5Mzg6OjYxMjQxMDY6OjYxMjQ3NjU6OjYxMjU2OTE6OjYxMjU3ODQ6OjYxMjU3ODU6OjYxMjYxMjk6OjYxMjYxMjk6OjYxMjYxMjk6Ojo6NjEyNjEyOTo6NjEyNjEyOTo6NjEyNjE2NDo6NjEyNjE3Mzo6NjEyNjE3Mzo6NjEyNjM1ODo6NjEyNjUzMTo6NjEyNjU3Njo6NjEyNjg0MDo6NjEyNzYxMjo6NjEyODQ1NTo6NjEyODQ1NTo6NjEyODc1Nzo6NjEyOTg4MDo6NjEyOTk4MTo6NjEyOTk4Mzo6NjEzMDEzMzo6NjEzMDQ3Mzo6NjEzMDQ4NTo6NjEzMDQ4NTo6NjEzMDQ4NTo6NjEzMDQ4NTo6NjEzMDQ5Mzo6NjEzMDQ5Mzo6NjEzMDQ5Mzo6NjEzMDQ5Mzo6NjEzMDQ5Mzo6NjEzMDQ5Mzo6NjEzMDQ5Mzo6NjEzMDU2MTo6NjEzMDY0OTo6NjEzMDY0OTo6NjEzMDY0OTo6NjEzMDY0OTo6NjEzMDY0OTo6NjEzMDY0OTo6NjEzMDc5Mjo6NjEzMjAxNjo6NjEzMzE3NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjIwJywgdj0nNjEzNDMwNjo6NjEzNDcxNzo6NjEzNTA5Mzo6NjEzNTA5Mzo6NjEzNTQwMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyMjo6NjEzNTkyOTo6NjEzNjA0MTo6NjEzNjYxNzo6NjEzNzI1Njo6NjEzNzUxMjo6NjEzNzc5Nzo6NjEzODA4OTo6NjEzODQzMTo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTA1Mzo6NjEzOTE0Nzo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTI1MTo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTMwMjo6NjEzOTQ1Njo6NjE0MDY1NTo6NjE0MTc4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTIwJywgdj0nNjE0MjYwOTo6NjE0MjgyODo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzOTo6NjE0MzA1Njo6NjE0MzA1Njo6NjE0MzM4Mjo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU4Nzo6NjE0MzcxMzo6NjE0NDEzNTo6NjE0NDc4Mzo6NjE0NDgxNjo6NjE0NDgxNjo6NjE0NDgxNjo6MTQ0ODE4LjI6OjE0NDgxOC4yOjoxNDQ4MTguMjo6MTQ0ODE4LjI6OjE0NDgxOC4yOjoxNDQ4MTguMjQzOjoxNDQ4MTguNDc0OjoxNDQ4MTguNDg6OjE0NDgxOC43NzU6OjE0NDgxOS45NTUnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxMjkxMjAnLCB2PScxNDQ4MjEuMjYxOjoxNDQ4MjIuNjQ0OjoxNDQ4MjQuMDUzOjoxNDQ4MjQuNTg0OjoxNDQ4MjQuNTg3OjoxNDQ4MjQuNTg3OjoxNDQ4MjQuNTg3OjoxNDQ4MjQuNjI6OjE0NDgyNC43NDQ6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NDY6OjE0NDgyNC43NTU6OjE0NDgyNC43NTU6OjE0NDgyNC43NTU6OjE0NDgyNC43NTU6OjE0NDgyNC43NTU6OjE0NDgyNC43NTU6OjE0NDgyNC43NTU6OjE0NDgyNC43NTY6OjE0NDgyNC43NTY6OjE0NDgyNC43NTY6OjE0NDgyNC43NTY6OjE0NDgyNC43NTc6OjE0NDgyNC43Nzo6MTQ0ODI0Ljc4ODo6MTQ0ODI0Ljc5Njo6MTQ0ODI0LjgwMjo6MTQ0ODI0LjgwNTo6MTQ0ODI0LjgwNjo6MTQ0ODI0LjgwNjo6MTQ0ODI0LjgwNjo6MTQ0ODI0LjgwNjo6MTQ0ODI0LjgwNjo6MTQ0ODI0LjgwNjo6MTQ0ODI0LjgwOTo6MTQ0ODI0LjgyMzo6MTQ0ODI0LjgyOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQyMCcsIHY9JzE0NDgyNC44Mjg6OjE0NDgyNC44Mjg6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44Mjk6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzQ6OjE0NDgyNC44MzU6OjE0NDgyNC44MzU6OjE0NDgyNC44NDo6MTQ0ODI0Ljg0NTo6MTQ0ODI0Ljg0OTo6MTQ0ODI0Ljg2NTo6MTQ0ODI0Ljg3Njo6MTQ0ODI0Ljg4ODo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg4OTo6MTQ0ODI0Ljg5Mjo6MTQ0ODI0Ljg5Njo6MTQ0ODI0Ljg5Nzo6MTQ0ODI0Ljk6OjE0NDgyNC45OjoxNDQ4MjQuOTo6NjE0NDgyNDo6NjE0NDgyNDo6NjE0NDgyNDo6NjE0NDgyNDo6NjE0NTAwMDo6NjE0NjcwMjo6NjE0ODk5NTo6NjE1MTI5OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcyMCcsIHY9JzYxNTQwMTE6OjYxNTY4ODU6OjYxNTk4MjE6OjYxNjE3ODE6OjYxNjI0MjQ6OjYxNjM1NjU6OjYxNjUyNzg6OjYxNjY4Njg6OjYxNjc3NTU6OjYxNjg2NzE6OjYxNzEzMTI6OjYxNzQzMTU6OjYxNzcwMTQ6OjYxNzk2MDk6OjYxODE1Njg6Ojo6NjE4MjA3Njo6NjE4MjU2Nzo6NjE4Mzg2Mzo6NjE4NTEyMjo6NjE4NjY2ODo6NjE4ODkwNjo6NjE5MDAzNzo6NjE5MTAxNjo6NjE5MjU3Nzo6NjE5NDI3NDo6NjE5NjAyOTo6NjE5NjgxMDo6NjE5Njg1NTo6NjE5Njk1Mjo6NjE5NzY4MTo6NjE5ODU0ODo6NjE5ODY1Nzo6Ojo2MTk5MzkyOjo2MjAwMzcyOjo2MjAwODk1Ojo2MjAxMjI4Ojo2MjAxNDI1Ojo2MjAxNDI1Ojo2MjAyODU2Ojo2MjA1NTg1Ojo2MjA5MDQ4Ojo2MjExMTE1Ojo2MjEyNjQ4Ojo2MjE1NzIwOjo2MjE5MDkwOjo2MjIxNzczOjo2MjI0ODQ4Ojo2MjI4MTg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjQwJywgdj0nNjIzMTUzMDo6NjIzMzkwMTo6NjIzNTUxNzo6NjIzNzI2NDo6NjIzOTU1NDo6NjI0MTk0Mzo6NjI0NDA0OTo6NjI0NjAwMzo6NjI0ODI5MTo6NjI1MDg4MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFjNzQ2MCcsIHY9JzYyNjkzOTM6OjYyNjk0NjA6OjYyNjk1NjE6OjYyNjk1NjE6OjYyNzAxOTM6OjYyNzExOTM6OjYyNzE3NjY6OjYyNzE3NjY6OjYyNzE3NjY6OjYyNzIwMDM6OjYyNzM0MTQ6OjYyNzM4MDI6OjYyNzQxOTA6OjYyNzUwNzA6OjYyNzU3ODg6OjYyNzU4MDU6OjYyNzU4MDU6OjYyNzU4NDQ6OjYyNzY3NDc6OjYyNzcwOTM6OjYyNzcxODQ6OjYyNzcyNjc6OjYyNzc3MTA6OjYyNzgzNDY6OjYyNzkyNjI6OjYyODAwNDE6OjYyODEyNjg6OjYyODI5MDg6OjYyODQ3NDQ6OjYyODY3OTI6OjYyODkwMzY6OjYyOTEzNjI6OjYyOTM1ODY6OjYyOTU4ODQ6OjYyOTgxMzY6OjYzMDAxMTU6OjYzMDIzMTY6OjYzMDI5NTQ6OjYzMDM0Mzk6OjYzMDM3NDk6OjYzMDM5Mzg6OjYzMDQyMTI6OjYzMDQ5MjQ6OjYzMDUzMDk6OjYzMDU2MjY6OjYzMDU4MDQ6OjYzMDYwMDQ6OjYzMDYzMjEnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxZjE3NjAnLCB2PSc2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDE3Ojo2MzA2NTYyOjo2MzA2OTA0Ojo2MzA3Mzk5Ojo2MzA5NTE3Ojo2MzExNjQzOjo2MzEyNjExOjo2MzEzODc1Ojo2MzE0ODY4Ojo2MzE1MjI4Ojo2MzE1MzUyOjo2MzE1Mzg1Ojo2MzE1ODM1Ojo2MzE2MDE2Ojo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MTEzOjo2MzE2NDYwOjo2MzE2NzU1Ojo2MzE3MTc3Ojo2MzE4MDM2Ojo2MzE4MzgzOjo2MzE5MDM4Ojo2MzE5MDM4Ojo2MzE5NjMyOjo2MzIwNjIwOjo2MzIyMDk5Ojo2MzIzMDI3Ojo2MzIzNTI4Ojo2MzIzOTYyOjo2MzIzOTY3Ojo2MzIzOTY3Ojo2MzI0MTQzOjo2MzI1MTQxOjo2MzI1MzIyOjo2MzI1NzI0Ojo2MzI2MDIwOjo2MzI3MTMyOjo2MzI3MTMyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjFiYTYwJywgdj0nNjMyNzEzMjo6NjMyNzEzMjo6NjMyODE3NDo6NjMyODY2Nzo6NjMyODY2Nzo6NjMyODcwNTo6NjMyOTQwMjo6NjMzMDA1ODo6NjMzMDA1ODo6NjMzMDY1NTo6NjMzMTc3NDo6NjMzMjAzMzo6NjMzMjAzMzo6NjMzMjAzMzo6NjMzMjAzMzo6NjMzMjAzMzo6NjMzMjA3ODo6NjMzMjMxNjo6NjMzMjg3Mjo6NjMzMjg5Nzo6NjMzMjg5Nzo6NjMzMjg5Nzo6NjMzMjg5Nzo6NjMzMzE3Mzo6NjMzMzIwNDo6NjMzMzgyNzo6NjMzNDQxMzo6NjMzNDQxMzo6NjMzNDQxMzo6NjMzNDQxMzo6NjMzNDQxMzo6NjMzNDU1NDo6NjMzNDU1NDo6NjMzNDU1NDo6NjMzNDc2NTo6NjMzNDk3Nzo6NjMzNTQ4MTo6NjMzNTc1OTo6NjMzNTc1OTo6NjMzNTc1OTo6NjMzNTc1OTo6NjMzNTgyNDo6NjMzNTgyNjo6NjMzNTgyNjo6NjMzNTgyNjo6NjMzNTgyNjo6NjMzNTg4OTo6NjMzNjQwNycpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI0NmI3MCcsIHY9JzYzMzgwNDc6OjYzMzg3MTk6OjYzMzg3Mjk6OjYzMzg3Mjk6OjYzMzg3Mjk6OjYzMzkwNjU6OjYzNDAzNTQ6OjYzNDE3NjY6OjYzNDI3MjM6OjYzNDM0MzI6OjYzNDM5MjQ6OjYzNDUwMDI6OjYzNDYxMTU6OjYzNDcwMTg6OjYzNDcwNDg6OjYzNDcwNTA6OjYzNDcwOTE6OjYzNDcwOTE6OjYzNDcwOTE6OjYzNDcwOTE6OjYzNDc0MDY6OjYzNTAyMDA6OjYzNTIwNzc6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIxNTA6OjYzNTIzMzE6OjYzNTIzMzE6OjYzNTI2Mzg6OjYzNTMxOTM6OjYzNTM2OTU6OjYzNTUwMTk6OjYzNTY5MTU6OjYzNTg5NTI6OjYzNjA0MzA6OjYzNjEzNTI6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjA6OjYzNjE0MjAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNzBlNzAnLCB2PSc2MzYxNDIwOjo2MzYxNDM0Ojo2MzYxNjk4Ojo2MzYyMTc0Ojo2MzYyNjYwOjo2MzYzNTAyOjo2MzYzODYwOjo2MzYzODYwOjo2MzYzOTMzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50KHBhcikKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGFyLCBtZW1pbmQ9JzMzODAxJywgaD0nM2RjMWE3ZTAnKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScwJywgdj0nODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzJhMzAwJywgdj0nODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6Ojo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nNTU0MTAnLCB2PSc4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nN2Y3MTAnLCB2PSc4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxODAxMDI6Ojg4MTgxMTc2Ojo4ODE4MTg1OTo6ODgxODE4NjE6Ojg4MTgxODk0Ojo4ODE4MTg5Njo6ODgxODE4OTY6Ojg4MTgxODk2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nYTlhMTAnLCB2PSc4ODE4MjE2OTo6ODgxODIyMDA6Ojg4MTgyMjAwOjo4ODE4MjIwMDo6ODgxODIyODg6Ojg4MTgzMzYzOjo4ODE4Mzg1Nzo6ODgxODQ2MzE6Ojg4MTg2NDA3Ojo6Ojg4MTk0MDEwOjo4ODE5ODIzMzo6ODgyMDAxNDg6Ojg4MjAwMzQ4Ojo4ODIwMDk0Nzo6ODgyMDI2MjA6Ojg4MjAzMDExOjo4ODIwMzUwNzo6ODgyMDM1MTI6Ojg4MjAzNTEyOjo4ODIwMzU0Mzo6ODgyMDQzNTY6Ojg4MjA0NDAxOjo4ODIwNDQwMTo6ODgyMDU4MzA6Ojg4MjA2MTg4Ojo4ODIwNjIyMjo6ODgyMDYyMjI6Ojg4MjA2NTAyOjo4ODIwNzUxNzo6ODgyMDkwMDg6Ojg4MjEwMTAyOjo4ODIxMDY2Njo6ODgyMTE2MzU6Ojg4MjEyNzI0Ojo4ODIxMzYwNDo6ODgyMTQxMDg6Ojg4MjE0NTEyOjo4ODIxNDk2OTo6ODgyMTYyMjk6Ojg4MjE2NzU5Ojo4ODIxOTIyMTo6ODgyMjE4MTg6Ojg4MjI0NTg5Ojo4ODIyNzAzMTo6ODgyMjg4NzA6Ojg4MjI5NTYzOjo4ODIyOTU2Mzo6ODgyMjk1ODAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdkNGIyMCcsIHY9Jzg4MjI5NTgwOjo4ODIyOTU4MDo6ODgyMjk1ODI6Ojg4MjMwMzI1Ojo4ODIzMTg4MTo6ODgyMzE5MTA6Ojg4MjMyNTk1Ojo4ODIzNDU3NDo6ODgyMzcyNDU6Ojg4MjQwMjgzOjo4ODI0MzA1Njo6ODgyNDM2NDM6Ojg4MjQ0MTA1Ojo4ODI0NDM1Mjo6ODgyNDQ1OTM6Ojg4MjQ1MTE1Ojo4ODI0NTc0Njo6ODgyNDU3NDY6Ojg4MjQ1ODkxOjo4ODI0NTkxNTo6ODgyNDU5NTk6Ojg4MjQ1OTg4Ojo4ODI0NTk4OTo6ODgyNDcyNDQ6Ojg4MjQ4NTEwOjo4ODI0OTI5Mzo6ODgyNTAyMDM6Ojg4MjUyMTc4Ojo4ODI1NDUzMTo6ODgyNTQ4NzQ6Ojg4MjU1NzA0Ojo4ODI1Njg5ODo6ODgyNTg0Mzg6Ojg4MjU5NTk1Ojo4ODI2MDM5ODo6ODgyNjA5MTk6Ojg4MjYyODQ1Ojo4ODI2NDMxNDo6ODgyNjYwMDY6Ojg4MjY4Mjk3Ojo4ODI2OTk0Mjo6ODgyNzE1MDI6Ojg4MjcyNjkwOjo4ODI3Mzg0OTo6ODgyNzU1MDM6Ojg4Mjc2MDAzOjo4ODI3NjAwMzo6ODgyNzYwMDMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdmZWUyMCcsIHY9Jzg4Mjc2MDE3Ojo4ODI3NjAxNzo6ODgyNzYwMTk6Ojg4Mjc2ODUxOjo4ODI3ODUxNTo6ODgyODAxMTg6Ojg4MjgxNTYwOjo4ODI4MzA3NDo6ODgyODM5NzE6Ojg4Mjg1NDI4Ojo4ODI4NjgxNTo6ODgyODc3MjY6Ojg4Mjg4ODMzOjo4ODI4OTk1Mzo6ODgyOTEwMzc6Ojg4MjkzMDk5Ojo4ODI5NTQyNzo6ODgyOTY2NzQ6Ojg4Mjk3MTMzOjo4ODI5NzgzMjo6ODgyOTg2MTI6Ojg4Mjk5NDQ3Ojo4ODI5OTUxNzo6ODgzMDA1NDE6Ojg4MzAxMDI1Ojo4ODMwMTMwNDo6ODgzMDE1MDM6Ojg4MzAyNDY4Ojo4ODMwNDQxNzo6ODgzMDYxMDY6Ojg4MzA3NTcxOjo4ODMwODM2ODo6ODgzMDg0NDg6Ojg4MzA4NDQ4Ojo4ODMwODQ0ODo6ODgzMDkwMjE6Ojg4MzA5ODk5Ojo4ODMxMDcxOTo6MTExMTg4LjAxNjo6MTExMTg5LjM6OjExMTE5MC4wODg6OjExMTE5MS44MjM6OjExMTE5Mi45MTo6MTExMTkzLjIwMjo6MTExMTkzLjQ3Mzo6MTExMTkzLjkzMTo6MTExMTkzLjk0ODo6MTExMTkzLjk0OCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTEyMCcsIHY9JzExMTE5My45NDg6OjExMTE5My45NDg6OjExMTE5My45NDg6OjExMTE5My45NDg6OjExMTE5NC41ODo6MTExMTk1LjUxOTo6MTExMTk2LjczNTo6MTExMTk4LjMzODo6MTExMTk5LjMwMjo6MTExMjAwLjYyNTo6MTExMjAxLjc3NTo6MTExMjAyLjQyMjo6MTExMjAzLjAwODo6MTExMjAzLjAyOjoxMTEyMDMuMDMyOjoxMTEyMDMuMDYyOjoxMTEyMDMuMDk4OjoxMTEyMDMuMTM1OjoxMTEyMDMuMTcxOjoxMTEyMDMuMjAzOjoxMTEyMDMuMjEyOjoxMTEyMDMuMjE2OjoxMTEyMDMuMjIxOjoxMTEyMDMuMjc2OjoxMTEyMDMuMjk5OjoxMTEyMDMuMzE2OjoxMTEyMDMuMzM1OjoxMTEyMDMuMzcxOjoxMTEyMDMuNDIyOjoxMTEyMDMuNDUyOjoxMTEyMDMuNDU3OjoxMTEyMDMuNDY0OjoxMTEyMDMuNDY4OjoxMTEyMDMuNDY4OjoxMTEyMDMuNDY4OjoxMTEyMDMuNDY4OjoxMTEyMDMuNDY4OjoxMTEyMDMuNDY4OjoxMTEyMDMuNDY5OjoxMTEyMDMuNTo6MTExMjAzLjUzMjo6MTExMjAzLjU3MTo6MTExMjAzLjYwNjo6MTExMjAzLjYzMjo6MTExMjAzLjYzOTo6MTExMjAzLjYzOTo6MTExMjAzLjYzOTo6MTExMjAzLjY2MScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE1MzQyMCcsIHY9JzExMTIwMy42NzE6OjExMTIwMy42NzE6OjExMTIwMy42NzI6OjExMTIwMy42ODQ6OjExMTIwMy43MTU6OjExMTIwMy43Mzk6OjExMTIwMy43NjE6OjExMTIwMy44MDE6OjExMTIwMy44Mzc6OjExMTIwMy44Njc6OjExMTIwMy44OTE6OjExMTIwMy44OTc6OjExMTIwMy45MDQ6OjExMTIwMy45MTU6OjExMTIwMy45MzU6OjExMTIwMy45NTU6OjExMTIwMy45NjI6OjExMTIwMy45Njk6OjExMTIwMy45NzI6OjExMTIwMy45ODg6OjExMTIwMy45OTc6OjExMTIwMy45OTc6OjExMTIwNDo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAwMTo6MTExMjA0LjAxNjo6MTExMjA0LjA1Mjo6MTExMjA0LjA2Mzo6MTExMjA0LjA3OjoxMTEyMDQuMDgxOjoxMTEyMDQuMDkzOjoxMTEyMDQuMDk3OjoxMTEyMDQuMDk3OjoxMTEyMDQuMDk5OjoxMTEyMDQuMTE6OjExMTIwNC4xMjg6OjExMTIwNC4xNjQ6Ojg4MzEyNjI4Ojo4ODMxNDc2Nzo6ODgzMTYyOTA6Ojg4MzE3Mjg0Ojo4ODMxNzY5NDo6ODgzMTc2OTQ6Ojg4MzE3Njk0Ojo4ODMxNzY5NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzE3ZDcyMCcsIHY9Jzg4MzE3Njk0Ojo4ODMxNzY5NDo6ODgzMTc2OTQ6Ojg4MzE3Njk0Ojo4ODMxNzY5ODo6ODgzMTc3MDA6Ojg4MzE3NzEzOjo4ODMxNzcxMzo6ODgzMTc3MTM6Ojg4MzE3NzEzOjo4ODMxNzc3ODo6ODgzMTc3Nzg6Ojg4MzE3Nzc4Ojo4ODMxNzc3ODo6ODgzMTc3Nzg6Ojo6ODgzMjA1MTE6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjE0MjA6Ojg4MzIzMDQyOjo4ODMyMzA0Mjo6ODgzMjMwNTM6Ojg4MzIzMTA1Ojo6Ojg4MzIzMTM3Ojo4ODMyMzEzNzo6ODgzMjMxMzc6Ojg4MzIzMTM3Ojo4ODMyMzE0ODo6ODgzMjM3NzU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWE5NjQwJywgdj0nODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzkwOjo4ODMyMzc5MDo6ODgzMjM3OTA6Ojg4MzIzNzkwOjo4ODMyMzc5MDo6ODgzMjM3OTAnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScxYzc0NjAnLCB2PSc4ODM0MjEzMDo6ODgzNDIyMDk6Ojg4MzQyNTI5Ojo4ODM0NDQ1ODo6ODgzNDQ0ODU6Ojg4MzQ0NDg1Ojo4ODM0NTkwNTo6ODgzNDgzNzk6Ojg4MzUwNDk0Ojo4ODM1MDgxMzo6ODgzNTA4MTM6Ojg4MzUxMDU2Ojo4ODM1MTA1Njo6ODgzNTEwNTY6Ojg4MzUxMDU2Ojo4ODM1MTI4Nzo6ODgzNTI0Mjg6Ojg4MzUzNTk4Ojo4ODM1MzU5ODo6ODgzNTM2MDE6Ojg4MzUzODU5Ojo4ODM1Mzg2Mjo6ODgzNTM4NjI6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM5NjU6Ojg4MzUzOTY1Ojo4ODM1Mzk2NTo6ODgzNTQwMTg6Ojg4MzU0MDE4Ojo4ODM1NDAxODo6ODgzNTQwMTg6Ojg4MzU0MDE4Ojo4ODM1NDAyMTo6ODgzNTQwMjE6Ojg4MzU0MDIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWYxNzYwJywgdj0nODgzNTQxNjY6Ojg4MzU0NTUyOjo4ODM1NTEzMDo6ODgzNTcxNTQ6Ojg4MzU5MjI2Ojo4ODM1OTgyODo6ODgzNTk4Mjg6Ojg4MzYwMDY4Ojo4ODM2MDEyNjo6ODgzNjAxMjY6Ojg4MzYwMTI2Ojo4ODM2MDE5NDo6ODgzNjAyMDU6Ojg4MzYwMjA1Ojo4ODM2MDIwNTo6ODgzNjAyMjM6Ojg4MzYwNDA2Ojo4ODM2MTM4NTo6ODgzNjIyOTc6Ojg4MzYzNTExOjo4ODM2NTc1Nzo6ODgzNjc4MjE6Ojg4MzY5MjczOjo4ODM2OTkyOTo6ODgzNzE1Mzg6Ojg4MzczMzIyOjo4ODM3Mzg5OTo6ODgzNzQ2Mjk6Ojg4Mzc0NjMxOjo4ODM3NDY1NTo6ODgzNzQ2NTc6Ojg4Mzc0ODIyOjo4ODM3NTQ2Njo6ODgzNzU0NzE6Ojg4Mzc1NDcxOjo4ODM3NTQ3MTo6ODgzNzU1OTk6Ojg4Mzc1NTk5Ojo4ODM3NTU5OTo6ODgzNzYxMDI6Ojg4Mzc3NDMyOjo4ODM3ODMwNjo6ODgzNzgzMTk6Ojg4Mzc4NDY3Ojo4ODM3ODkxNzo6ODgzNzg5MTc6Ojg4Mzc4OTE4Ojo4ODM3OTQ4MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzIxYmE2MCcsIHY9Jzg4MzgwNzc3Ojo4ODM4MjI3NTo6ODgzODI2NjE6Ojg4MzgyNzc3Ojo4ODM4MzI1MDo6ODgzODM1OTI6Ojg4MzgzNTkyOjo4ODM4MzcxMTo6ODgzODUyMDM6Ojg4Mzg1MjU3Ojo4ODM4NTI1Nzo6ODgzODg0NTk6Ojg4MzkwMzk0Ojo4ODM5MDg1MDo6ODgzOTE1NjE6Ojg4MzkzODM0Ojo4ODM5NzU3OTo6ODgzOTc4MTk6Ojg4Mzk3ODE5Ojo4ODM5OTIxODo6ODg0MDE3OTI6Ojg4NDA1Mzg2Ojo4ODQwODEwMDo6ODg0MDgxMjI6Ojg4NDA4MzY1Ojo4ODQwODUwNTo6ODg0MDg1MDU6Ojg4NDEwMjQ2Ojo4ODQxMTY2MDo6ODg0MTI4NDk6Ojg4NDEzMzMzOjo4ODQxNDUyMTo6ODg0MTY2OTY6Ojg4NDE3NTgzOjo4ODQxNzY4Mzo6ODg0MTc4NTQ6Ojg4NDE3ODU0Ojo4ODQxNzg4Mzo6ODg0MTgwMjc6Ojg4NDE5MTU5Ojo4ODQyMDEwODo6ODg0MjEwNzE6Ojg4NDIxODI4Ojo4ODQyMzU1OTo6ODg0MjY4OTQ6Ojg4NDI5OTc1Ojo4ODQzMjgyODo6ODg0MzI4MjgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyNDZiNzAnLCB2PSc4ODQzMjgyODo6ODg0MzI4Mjg6Ojg4NDM0OTUxOjo4ODQzOTU0ODo6ODg0NDA5MTY6Ojg4NDQxMDMwOjo4ODQ0MTAzMDo6ODg0NDEwMzA6Ojg4NDQxMDMwOjo4ODQ0MTAzMDo6ODg0NDExMTY6Ojg4NDQxMTE2Ojo4ODQ0MTExNjo6ODg0NDExMTY6Ojg4NDQxMjE4Ojo4ODQ0MTczOTo6ODg0NDIzNjM6Ojg4NDQzNTQyOjo4ODQ0NTM0NDo6ODg0NDg2MjQ6Ojg4NDUxNDY0Ojo4ODQ1MTQ2NDo6ODg0NTE0NzM6Ojg4NDUxNjUyOjo4ODQ1MTg0MDo6ODg0NTIzMjM6Ojg4NDUzMzMyOjo4ODQ1NTg4OTo6ODg0NTg1MDc6Ojg4NDYwNTk1Ojo4ODQ2MDc3Mjo6ODg0NjIwNjU6Ojg4NDYyMjY0Ojo4ODQ2MjYwODo6ODg0NjI2MjI6Ojg4NDYyNjIyOjo4ODQ2MjYyMjo6ODg0NjI2MjI6Ojg4NDYyNjIyOjo4ODQ2MjYyMjo6ODg0NjI4MjY6Ojg4NDYzNTM4Ojo4ODQ2NDY2Nzo6ODg0NjYzMTA6Ojg4NDY4MzA5Ojo4ODQ3MTM5Mzo6ODg0NzQzMDg6Ojg4NDc3Mjc0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjcwZTcwJywgdj0nODg0ODAzNzg6Ojg4NDgxMTU3Ojo4ODQ4MTc2Njo6ODg0ODE3NjY6Ojg4NDgxNzY2Ojo4ODQ4MTc2Njo6ODg0ODMzNDA6Ojg4NDg1NjI2Ojo4ODQ4NjExOCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50KHBhciwgbWVtaW5kPSczMzQwMScsIGg9JzNkYzFhN2UwJykKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMCcsIHY9Jzk0Mzc3OTU6Ojk0NDE5NzI6Ojk0NDYxNDQ6Ojk0NTAyMTc6Ojk0NTQyNjE6Ojk0NTgxODQ6Ojk0NjIzNDY6Ojk0Njc0MzQ6Ojk0NzMxODY6Ojk0ODAxMjY6Ojk0ODc0MDQ6Ojk0OTQ3Nzk6Ojk1MDE5MTY6Ojk1MDg2MTU6Ojk1MTA2MjE6Ojk1MTA2Mjg6Ojk1MTA2MzU6Ojk1MTA2NDI6Ojk1MTA2NDk6Ojk1MTA2NTY6Ojk1MTA2NjM6Ojk1MTA2NzE6Ojk1MTA2Nzg6Ojk1MTA2ODc6Ojk1MTA2OTU6Ojk1MTA3MDM6Ojk1MTA3MTI6Ojk1MTA3MjA6Ojk1MTA3Mjg6Ojk1MTA3MzY6Ojk1MTA3NDM6Ojk1MTA3NTE6Ojk1MTA3NjA6Ojk1MTA3Njg6Ojk1MTA3NzY6Ojk1MTA3ODQ6Ojk1MTA3OTI6Ojk1MTA4MDA6Ojk1MTA4MDk6Ojk1MTA4MTc6Ojk1MTA4MjY6Ojk1MTA4MzM6Ojk1MTA4NDA6Ojk1MTA4NDc6Ojk1MTA4NTU6Ojk1MTA4NjM6Ojk1MTA4NzE6Ojk1MTA4NzknKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyYTMwMCcsIHY9Jzk1MTA4ODg6Ojk1MTA4OTY6Ojk1MTA5MDQ6Ojk1MTA5MTI6Ojk1MTA5MjA6Ojk1MTA5Mjg6Ojk1MTA5MzU6Ojk1MTA5NDQ6Ojk1MTA5NTI6Ojk1MTA5NjA6Ojk1MTA5Njg6Ojk1MTA5NzY6Ojk1MTA5ODQ6Ojk1MTA5OTM6Ojk1MTEwMDE6Ojk1MTEwMDk6Ojk1MTEwMTY6Ojk1MTEwMjM6Ojk1MTEwMzA6Ojk1MTEwMzg6Ojk1MTEwNDU6Ojk1MTEwNTM6Ojk1MTEwNjE6Ojk1MTEwNjk6Ojk1MTEwNzg6Ojk1MTEwODY6Ojk1MTEwOTU6Ojk1MTExMDM6Ojk1MTExMTI6Ojk1MTExMjE6Ojk1MTExMjk6Ojk1MTExMzc6Ojk1MTExNDQ6Ojo6OTUxMTE1ODo6OTUxMTE2NTo6OTUxMTE3MTo6OTUxMTE3ODo6OTUxMTE4NDo6OTUxMTE5MDo6OTUxMTE5Nzo6OTUxMTIwMzo6OTUxMTIwOTo6OTUxMTIxNjo6OTUxMTIyMzo6OTUxMTIzMTo6OTUxMTIzOTo6OTUxMTI0Nzo6OTUxMTI1NScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzU1NDEwJywgdj0nOTUxMTI2NDo6OTUxMTI3Mjo6OTUxMTI4MDo6OTUxMTI4OTo6OTUxMTI5Nzo6OTUxMTMwNTo6OTUxMTMxMzo6OTUxMTMyMDo6OTUxMTMyNzo6OTUxMTMzMzo6OTUxMTM0MDo6OTUxMTM0Nzo6OTUxMTM1NDo6OTUxMTM2MTo6OTUxMTM2ODo6OTUxMTM3NTo6OTUxMTM4Mjo6OTUxMTM4OTo6OTUxMTM5Nzo6OTUxMTQwNDo6OTUxMTQxMjo6OTUxMTQxOTo6OTUxMTQyNzo6OTUxMTQzNTo6OTUxMTQ0Mzo6OTUxMTQ1MTo6OTUxMTQ2MDo6OTUxMTQ2ODo6OTUxMTQ3Njo6OTUxMTQ4NDo6OTUxMTQ5Mjo6OTUxMTUwMDo6OTUxMTUwNjo6OTUxMTUxMzo6OTUxMTUxOTo6OTUxMTUyNjo6OTUxMTUzMzo6OTUxMTUzOTo6OTUxMTU0Njo6OTUxMTU1Mzo6OTUxMTU1OTo6OTUxMTU2NTo6OTUxMTU3Mjo6OTUxMTU4MDo6OTUxMTU4Nzo6OTUxMTU5NTo6OTUxMTYwMzo6OTUxMTYxMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzdmNzEwJywgdj0nOTUxMTYxOTo6OTUxMTYyODo6OTUxMTYzNzo6OTUxMTY0Njo6OTUxMTY1NDo6OTUxMTY2Mjo6OTUxMTY3MDo6OTUxMTY3Nzo6OTUxMTY4NDo6OTUxMTY5MTo6OTUxMTY5ODo6OTUxMTcwNTo6OTUxMTcxMzo6OTUxMTcyMDo6OTUxMTcyNzo6OTUxMTczNDo6OTUxMTc0MDo6OTUxMTc0Nzo6OTUxMTc1NDo6OTUxMTc2MTo6OTUxMTc2OTo6OTUxMTc3Nzo6OTUxMTc4NTo6OTUxMTc5NDo6OTUxMTgwMzo6OTUxMTgxMTo6OTUxMTgyMDo6OTUxMTgyODo6OTUxMTgzNjo6OTUxMTg0NDo6OTUxMTg1Mjo6OTUxMTg1OTo6OTUxMTg2Njo6OTUxMTg3Mzo6OTUxMTg4MDo6OTUxMTg4ODo6OTUxMTg5NTo6OTUxMTkwMjo6OTUxMTkwOTo6OTUxNDM5MDo6OTUxOTcwOTo6OTUyMjA4OTo6OTUyMjIzNDo6OTUyMjIzNDo6OTUyMjIzNDo6OTUyMjIzNTo6OTUyMjIzNTo6OTUyMjIzNScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2E5YTEwJywgdj0nOTUyMjIzNzo6OTUyMjI0MDo6OTUyMjI0NTo6OTUyMjI0NTo6OTUyMjI0NTo6OTUyMjI0NTo6OTUyMjMwNTo6OTUyMjQxNzo6OTUyMjQ3Mjo6Ojo5NTIyNTY0Ojo5NTIyNjk4Ojo5NTIyOTU3Ojo5NTIzNjMwOjo5NTI0NDUxOjo5NTI1Mjk2Ojo5NTI2ODMwOjo5NTI4NTc5Ojo5NTMwMjc5Ojo5NTMyMTgyOjo5NTMzNzk5Ojo5NTM0NTUyOjo5NTM1NDA0Ojo5NTM2MzE3Ojo5NTM2MzY0Ojo5NTM2MzY0Ojo5NTM2MzY0Ojo5NTM2MzY0Ojo5NTM2MzY0Ojo5NTM2MzY0Ojo5NTM2MzY1Ojo5NTM2MzY1Ojo5NTM2MzY2Ojo5NTM2Mzc4Ojo5NTM2NDA1Ojo5NTM2NDQ1Ojo5NTM2NDUyOjo5NTM2NDU0Ojo5NTM2NDYwOjo5NTM2NTAxOjo5NTM2ODU1Ojo5NTM3MDg3Ojo5NTM3MzE4Ojo5NTM3NDc0Ojo5NTM3NTI1Ojo5NTM3NTQ4Ojo5NTM3NTgxOjo5NTM3Njc3Ojo5NTM3Njc4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZDRiMjAnLCB2PSc5NTM3Njc4Ojo5NTM3Njc4Ojo5NTM3Njc4Ojo5NTM3Njc4Ojo5NTM3NzM2Ojo5NTM4MTQzOjo5NTM4ODkzOjo5NTQwNTQ2Ojo5NTQyODc1Ojo5NTQ1MzI0Ojo5NTQ3ODY5Ojo5NTUwNzg4Ojo5NTUzNTgyOjo5NTU2NDUzOjo5NTU5MjM3Ojo5NTYyMDI1Ojo5NTY1OTUxOjo5NTY5OTQ3Ojo5NTczNjkyOjo5NTc3MDQwOjo5NTgwMDMyOjo5NTgyNDYyOjo5NTg0MzQ3Ojo5NTg1NTYyOjo5NTg2MjI2Ojo5NTg2OTI4Ojo5NTg3NTc5Ojo5NTg4MDc3Ojo5NTg4OTc0Ojo5NTkxMTkyOjo5NTkzNzczOjo5NTk3NTYwOjo5NjAxODA4Ojo5NjA2MTYwOjo5NjEwNzU2Ojo5NjE1MjI2Ojo5NjE5Njk0Ojo5NjI0NDA5Ojo5NjI5MTI0Ojo5NjMzNDkzOjo5NjM3ODQ5Ojo5NjQxOTIyOjo5NjQ1Nzc2Ojo5NjQ5MzE2Ojo5NjUyMzc4Ojo5NjU1NTAyOjo5NjU4NDc5Ojo5NjYxMDIxJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nZmVlMjAnLCB2PSc5NjYzMjM3Ojo5NjY1MjI4Ojo5NjY3MTg3Ojo5NjY4OTI1Ojo5NjcwNzc2Ojo5NjczMjk3Ojo5Njc2NTAyOjo5NjgwNjczOjo5NjgzMTkxOjo5Njg3NjkwOjo5NjkyMjc5Ojo5Njk2NDgxOjo5NzAwNjc5Ojo5NzA0ODU1Ojo5NzA5MTYxOjo5NzEzNTQyOjo5NzE3ODY3Ojo5NzIyMTY3Ojo5NzI2NDUxOjo5NzMwMzYzOjo5NzMzODU5Ojo5NzM2NzU0Ojo5NzM5NDc1Ojo5NzQxNDQwOjo5NzQzMjYwOjo5NzQ1MDY0Ojo5NzQ2ODgzOjo5NzQ4NTE3Ojo5NzUwMjEwOjo5NzUyNjE5Ojo5NzU1NzMwOjo5NzU5OTQ5Ojo5NzY0Njg2Ojo5NzY5Mzc0Ojo5Nzc0NDY1Ojo5Nzc4NzQxOjo5NzgzMDIzOjo5Nzg3MTM1Ojo4OTc3NS4xMjM6Ojg5Nzc5LjA0Ojo4OTc4My4wMzY6Ojg5Nzg2LjYzMzo6ODk3OTAuMDkxOjo4OTc5My4zNjk6Ojg5Nzk2LjMyNDo6ODk3OTguNTg1Ojo4OTgwMC42MzU6Ojg5ODAyLjYyMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzEyOTEyMCcsIHY9Jzg5ODA0LjM4MTo6ODk4MDYuMDYzOjo4OTgwNy43NTI6Ojg5ODA5LjI4NDo6ODk4MTAuODY6Ojg5ODEzLjAxMjo6ODk4MTUuNjA3Ojo4OTgxOC43OTo6ODk4MjIuMTU0Ojo4OTgyNC43MTQ6Ojg5ODI3LjQyNTo6ODk4MzAuNTA4Ojo4OTgzMi42NzM6Ojg5ODMyLjcxOjo4OTgzMi43Mjg6Ojg5ODMyLjc0NTo6ODk4MzIuNzY3Ojo4OTgzMi43ODU6Ojg5ODMyLjc5ODo6ODk4MzIuODA5Ojo4OTgzMi44MTc6Ojg5ODMyLjgyOjo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjY6Ojg5ODMyLjgzMTo6ODk4MzIuODM0Ojo4OTgzMi44Mzg6Ojg5ODMyLjg0Ojo4OTgzMi44NDo6ODk4MzIuODQ6Ojg5ODMyLjg0Ojo4OTgzMi44NDM6Ojg5ODMyLjg0ODo6ODk4MzIuODUxOjo4OTgzMi44NTQ6Ojg5ODMyLjg1ODo6ODk4MzIuODYxOjo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTUzNDIwJywgdj0nODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY4Ojo4OTgzMi44Nzc6Ojg5ODMyLjg4Nzo6ODk4MzIuODk5Ojo4OTgzMi45MDM6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTE2Ojo4OTgzMi45Nzo6ODk4MzMuMDk6Ojg5ODMzLjIwNDo6ODk4MzMuMzA5Ojo4OTgzMy4zOTc6Ojg5ODMzLjQ5Mjo6ODk4MzMuNTk6Ojg5ODMzLjY4Mzo6ODk4MzMuNzg4Ojo5Nzk0NDgyOjo5ODAxMjAxOjo5ODA4MjE3Ojo5ODE1MzcyOjo5ODIxOTMwOjo5ODI4MDIyOjo5ODMzODYxOjo5ODM5NDkzJykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTdkNzIwJywgdj0nOTg0NDk5Njo6OTg1MDQ0MTo6OTg1NTY4MTo6OTg2MDc5NTo6OTg2NjMxMTo6OTg3Mjg3Mzo6OTg4MDAyNzo6OTg5MTE5Mzo6OTkwNDM5ODo6OTkxNzQ1NDo6OTkyOTk3NDo6OTk0MTc5Njo6OTk1MzY5ODo6OTk2NTY5ODo6OTk3Nzc5NDo6Ojo5OTkzODM0OjoxMDAwMTcwMTo6MTAwMDk2MjE6OjEwMDE2ODAzOjoxMDAyMzEyNDo6MTAwMjkxMjM6OjEwMDM0MTUxOjoxMDAzODUxMzo6MTAwNDI3ODk6OjEwMDQ2OTk2OjoxMDA1MTE3ODo6MTAwNTU0NDM6OjEwMDYwMzM2OjoxMDA2NTY2NTo6MTAwNzE3ODA6OjEwMDc4Mjk5OjoxMDA4NDQ0Njo6OjoxMDA5NzEyMzo6MTAxMDMyOTM6OjEwMTA5NjQxOjoxMDExNjAyMzo6MTAxMjI1NjI6OjEwMTI2Nzg1OjoxMDEyOTQxNDo6MTAxMzIyODg6OjEwMTM1NjQ1OjoxMDEzODQ4OTo6MTAxNDA0MTY6OjEwMTQyMjM4OjoxMDE0MzM2ODo6MTAxNDQ0ODc6OjEwMTQ1NDk0OjoxMDE0NjUzMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFhOTY0MCcsIHY9JzEwMTQ3MzQxOjoxMDE0Nzc5Mzo6MTAxNDg0ODY6OjEwMTUwMDM5OjoxMDE1MjA1MTo6MTAxNTQ2NDM6OjEwMTU3NDA2OjoxMDE2MDE3MDo6MTAxNjI5NTU6OjEwMTY1MDU4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMWM3NDYwJywgdj0nMTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIxMDg4Mjo6MTAyMTQ0NDQ6OjEwMjE4MDkzOjoxMDIyMTYyMzo6MTAyMjUyMjM6OjEwMjI4ODU4OjoxMDIzMzY0MTo6MTAyMzk5MDY6OjEwMjQ2NTk4OjoxMDI1MzQyMDo6MTAyNjAyOTU6OjEwMjY3MDEwOjoxMDI3MzMwNTo6MTAyNzkyNDU6OjEwMjg0NjgyOjoxMDI4OTU5NDo6MTAyOTQ0NjE6OjEwMjk3MTUwOjoxMDI5OTA2MDo6MTAzMDA4Nzk6OjEwMzAyNzgxOjoxMDMwNTA0MTo6MTAzMDc2MDA6OjEwMzEwMjU2OjoxMDMxMzAxNzo6MTAzMTU3MzI6OjEwMzE4MzU3OjoxMDMyMDk1MicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzFmMTc2MCcsIHY9JzEwMzIzNDUzOjoxMDMyNTg4MTo6MTAzMjgzMDE6OjEwMzMwOTA2OjoxMDMzMzk5MTo6MTAzMzczNzg6OjEwMzQwOTEzOjoxMDM0NDI3MDo6MTAzNDc0NzQ6OjEwMzUwODMxOjoxMDM1Mzg4MDo6MTAzNTY0NDM6OjEwMzU4ODkwOjoxMDM2MTI1Nzo6MTAzNjM0Mjc6OjEwMzY1NTQyOjoxMDM2Nzg1MDo6MTAzNzA2MDI6OjEwMzczNzAwOjoxMDM3NzU0ODo6MTAzODIzMzU6OjEwMzg3OTU5OjoxMDM5MzY3OTo6MTAzOTkwMjg6OjEwNDA0NDY5OjoxMDQxMDMyODo6MTA0MTY1NTQ6OjEwNDIyOTY0OjoxMDQyOTQ2NDo6MTA0MzU1MTA6OjEwNDQwODg3OjoxMDQ0NjA3MDo6MTA0NTA1NDQ6OjEwNDU0ODMzOjoxMDQ1ODczMjo6MTA0NjI0MTk6OjEwNDY1NzE0OjoxMDQ2ODg0Mjo6MTA0NzE4ODI6OjEwNDc0NzcyOjoxMDQ3NzkwMTo6MTA0ODE4OTc6OjEwNDg2OTk3OjoxMDQ5Mjk3Mzo6MTA0OTkyMDc6OjEwNTA1MzI0OjoxMDUxMTU1NTo6MTA1MTc2MDInKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPScyMWJhNjAnLCB2PScxMDUyMzU0NDo6MTA1MjkzNjI6OjEwNTM1NzYwOjoxMDU0MTg5NDo6MTA1NDc3NjI6OjEwNTUzNDA3OjoxMDU1ODg5MDo6MTA1NjQxMTg6OjEwNTY4NDI2OjoxMDU3MjI5NDo6MTA1NzU3NzE6OjEwNTc3NzY3OjoxMDU3OTY0Nzo6MTA1ODE3MjA6OjEwNTgzNzE2OjoxMDU4NTQ0NDo6MTA1ODczNTQ6OjEwNTkwOTY4OjoxMDU5NTEyNjo6MTA1OTk3MzE6OjEwNjA0NDYwOjoxMDYwOTAwMDo6MTA2MTM3NTM6OjEwNjE4NTE2OjoxMDYyMzI0MTo6MTA2Mjg0Mjg6OjEwNjMzOTk5OjoxMDYzOTUzOTo6MTA2NDUxMjU6OjEwNjUwNDA1OjoxMDY1NTY0Mzo6MTA2NjA0NzE6OjEwNjY0NzM4OjoxMDY2ODg2Mjo6MTA2NzI2NzU6OjEwNjc1OTQ3OjoxMDY3OTE5NTo6MTA2ODIzMjI6OjEwNjg1MzQwOjoxMDY4ODIwNDo6MTA2OTE0NjA6OjEwNjk1NDQzOjoxMDcwMDAzNzo6MTA3MDU3MDI6OjEwNzExODczOjoxMDcxODMwOTo6MTA3MjQ5MDc6OjEwNzMxMzY0JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMjQ2YjcwJywgdj0nMTA3NDQyOTg6OjEwNzUwNTczOjoxMDc1NjMzNjo6MTA3NjE1OTQ6OjEwNzY3MTg0OjoxMDc3MjkwMTo6MTA3Nzg2Nzk6OjEwNzg0MTkzOjoxMDc4OTE3Mzo6MTA3OTMzOTE6OjEwNzk2ODk1OjoxMDgwMDUzODo6MTA4MDQxNTE6OjEwODA3NzMyOjoxMDgxMTIxNDo6MTA4MTQ5NTI6OjEwODE5MjM2OjoxMDgyMzc3Mjo6MTA4MjkyMTI6OjEwODM0OTIwOjoxMDg0MTQxODo6MTA4NTA3MDE6OjEwODU4Mjg5OjoxMDg2NDMxNTo6MTA4NzA1ODY6OjEwODc2NTI2OjoxMDg4MjQ5Njo6MTA4ODgyOTE6OjEwODkzNzEzOjoxMDg5OTA5MDo6MTA5MDQ0NDQ6OjEwOTA5MTE5OjoxMDkxMzcwMDo6MTA5MTc2OTk6OjEwOTIxMzEwOjoxMDkyNDgyNjo6MTA5Mjg0Nzg6OjEwOTMyMTIxOjoxMDkzNTcxNTo6MTA5Mzk0MTI6OjEwOTQzMjY1OjoxMDk0NzE1NDo6MTA5NTEyOTk6OjEwOTU1NjQ3OjoxMDk1OTgwMjo6MTA5NjM3NTU6OjEwOTY3NTI2OjoxMDk3MTIwMScpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzI3MGU3MCcsIHY9JzEwOTc0ODAxOjoxMDk3OTA4Njo6MTA5ODM5MjI6OjEwOTg5MDUzOjoxMDk5NDA4Mzo6MTA5OTkwNjk6OjExMDAzNTI5OjoxMTAwNzM3OTo6MTEwMTA3MzgnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnQocGFyKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwYXIsIG1lbWluZD0nMzMwMDEnLCBoPSczZGMxYTdlMCcpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89JzAnLCB2PSczODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMmEzMDAnLCB2PSczODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2Ojo6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc1NTQxMCcsIHY9JzM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzYnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSc3ZjcxMCcsIHY9JzM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1ODc6OjM4NjEzMDk3OjozODYxMzU4NTo6Mzg2MTQ0OTA6OjM4NjE0OTA2OjozODYxNTM4MDo6Mzg2MTYwNTMnKQorU0FYLmVuZEVsZW1lbnQodmFsKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnQodmFsLCBvPSdhOWExMCcsIHY9JzM4NjE3MTIzOjozODYxNzI1ODo6Mzg2MTcyOTY6OjM4NjE3NDE0OjozODYxNzkyNjo6Mzg2MTg3NDE6OjM4NjE4OTQyOjozODYxOTAyMTo6Mzg2MTkwNjY6Ojo6Mzg2MTkxNDc6OjM4NjE5MjE5OjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTc4Njo6Mzg2MjAyNTc6OjM4NjIwNzAyOjozODYyMTA1ODo6Mzg2MjE1ODc6OjM4NjIyMDc4OjozODYyMjQ5NDo6Mzg2MjMyODQ6OjM4NjIzNTM2OjozODYyMzY1NTo6Mzg2MjM3NzY6OjM4NjIzODMxOjozODYyNDAzNTo6Mzg2MjQyMzI6OjM4NjI0MzY5OjozODYyNDczNTo6Mzg2MjQ3MzU6OjM4NjI0NzM1OjozODYyNDczNTo6Mzg2MjQ3Mzc6OjM4NjI0NzU1OjozODYyNDc5MTo6Mzg2MjQ4NjM6OjM4NjI0ODc5OjozODYyNTQ2MCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2Q0YjIwJywgdj0nMzg2MjYxMTA6OjM4NjI2ODA3OjozODYyNzYzOTo6Mzg2Mjg3ODE6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMicpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudCh2YWwsIG89J2ZlZTIwJywgdj0nMzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4JykKK1NBWC5lbmRFbGVtZW50KHZhbCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50KHZhbCwgbz0nMTI5MTIwJywgdj0nMjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5ODo6MjI5NzM0LjM5OTo6MjI5NzM0LjQxNzo6MjI5NzM0LjQzMTo6MjI5NzM0LjQ0ODo6MjI5NzM0LjQ2NTo6MjI5NzM0LjQ4NTo6MjI5NzM0LjUwNTo6MjI5NzM0LjUxNDo6MjI5NzM0LjUxNzo6MjI5NzM0LjUxNzo6MjI5NzM0LjUxNzo6MjI5NzM0LjUxNzo6MjI5NzM0LjUxNzo6MjI5NzM0LjUxODo6MjI5NzM0LjUyMTo6MjI5NzM0LjUyMzo6MjI5NzM0LjUyODo6MjI5NzM0LjUzNjo6MjI5NzM0LjUzNjo6MjI5NzM0LjUzNjo6MjI5NzM0LjUzNjo6MjI5NzM0LjUzNjo6MjI5NzM0LjUzNjo6MjI5NzM0LjUzNjo6MjI5NzM0LjUzNzo6MjI5NzM0LjU1NCcpCitTQVguZW5kRWxlbWVudCh2YWwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudChwYXIpCitTQVguY2hhcmFjdGVycygKKwkJCSwgNCkKK1NBWC5lbmRFbGVtZW50KGRldmljZSkKK1NBWC5jaGFyYWN0ZXJzKAorCQksIDMpCitTQVguZW5kRWxlbWVudChzZWxlY3QpCitTQVguY2hhcmFjdGVycygKKwksIDIpCitTQVguZW5kRWxlbWVudChkYXRhKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChlbGVjdHJveG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDQuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDQuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTMxNDhjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NC5zYXgyCkBAIC0wLDAgKzEsMzY5NzYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmNvbW1lbnQoIGVkaXRlZCB3aXRoIFhNTCBTcHkgdjQuNCBVIChodHRwOi8vd3d3LnhtbHNweS5jb20pIGJ5IFNsYXZhIChHSVZDKSApCitTQVguc3RhcnRFbGVtZW50TnMoZWxlY3Ryb3htbCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgbW9kaWZpZWQ9JzIwMDIuLi4nLCAxNSkKK1NBWC5jaGFyYWN0ZXJzKAorCSwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhkYXRhLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBmcm9tPScyMDAyLi4uJywgMTEsIHRvPScyMDAyLi4uJywgMTEpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlbGVjdCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRldmljZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc2VyaWFsbnVtYj0nRTAwMC4uLicsIDkpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzExMzQuLi4nLCA2LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDgiLi4uJywgMywgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzMyLi4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTNjLi4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODM1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjQ1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDU1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjY1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDc1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZTg1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Yzk2Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWE1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGI2Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmM1Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGQ3Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMzBiLi4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGY2Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjA2Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDE3Li4uJywgNCwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODliLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjNlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzFmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmEzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzhjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyODZkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyOTRlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYjEwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYmYxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyY2QyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZGIzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZTk0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZjc1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMDU2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMTM3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMjE5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMmY5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczM2RhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNGJiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNTlkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNjdkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNzVlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODQwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczOTIxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYTAxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYWUyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYmMzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczY2E0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZDg1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZTY2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZjQ4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MDI4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MTA5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MWVhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MmNiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0M2FjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NDhkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NTZlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjRmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ODBmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OGYwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OWQxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0YWI0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yjk1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yzc2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZDU3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZTM4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZjE5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZmZhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MGRkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MWJjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MjlkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MzdlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDYwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NjIxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NzAyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1N2UzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OGM0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OWE3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YTg2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YjY3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YzQ4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZDI5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZTBhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZWViLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZmNjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MGFkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MThlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjZmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MzUwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NDMxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NTEyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NWYzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NmQ0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2N2I1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ODk2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2OTc4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YTU4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YjM5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YzFhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2Y2ZiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZGRjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZWJkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZjllLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDdmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MTYwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MjQxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MzIyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NDAzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NGU0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NWM1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NmE2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Nzg3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ODY4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3OTQ4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YTI5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YjBhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YmViLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Y2NjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZGFkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZThmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MDUxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MTMyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MjEzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MmY0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4M2Q1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NGI2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NTk3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Njc4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NzU5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ODNhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OTFiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OWZjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YWRkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YmJlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YzlmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZDgwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZTYxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZjQyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MDIzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MTA0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MWU1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MmM2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5M2E4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NDg4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NTY5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NjRhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NzJiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ODBjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OGVkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OWNlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWFmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YjkwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YzcxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZDUyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZTMzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZjE0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZmY1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMGQ2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMWI3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMjk4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMzc5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNDVhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNTNiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNjFjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNmZkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhN2UwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGMwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWEwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYTgxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYjYyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYzQzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZDI0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZTA1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZWU2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZmM3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMGE4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMjZhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMzRiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNDJjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNTBkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNWVlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmNmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiN2IwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiODkxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiOTcyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYTUzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYjM0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYzE1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiY2Y2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZGQ4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZWI4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZjk5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMDdhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMTViLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMjNjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMzFkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjM2ZlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGRmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNWMwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNmExLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNzgyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjODYzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjOTQ0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYTI1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYjA2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYmU3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjY2M4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZGE5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZThhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZjZiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMDRjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMTJkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMjBlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMmYwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkM2QwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNTkyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNjczLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNzU0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkODM1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOTE2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOWY3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYWQ4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYmI5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYzlhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZDdiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZTVjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZjNkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDFkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGZlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMWRmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMmMwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlM2ExLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNDgyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNTYzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNjQ0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNzI1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlODA2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOGU3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOWM4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYWE5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYjhhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYzZiLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZDRjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZTJkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjBlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZmYwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMGQxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMWIyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMjkzLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMzc0Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNDU1Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNTM2Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNjE3Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNmY4Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmN2Q5Li4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOGJhLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOTliLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYTdjLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYjVkLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYzNlLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDFmLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZTAwLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUxLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZmMyLi4uJywgNSwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDBhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDE4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDI2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDM0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDQyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDUwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDVlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDZjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDdhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDg4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDk2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGE0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGMxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGNmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGRkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGViLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGY5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTA3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTE1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTIzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTMxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTNmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTRkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTViLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTY5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTc3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTg1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWEyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWIwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWJlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWNjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWRhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWU4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWY2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjA1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjEzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjIxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjJmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjNkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjRiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjU5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjY3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjgzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjlmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmFkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmJiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmM5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmQ3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmU1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmYzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzAxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzBmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzFkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzJiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzM5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzQ3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzY0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzcyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzgwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzhlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzljLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2FhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2I4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2M2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2Q0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2UyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2YwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2ZlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDBjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDFhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDI4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDQ1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDUzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDYxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDZmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDdkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDhiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDk5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGE3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGI1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGMzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGQxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGRmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGVkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGZiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTA5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTI2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTQyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTUwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTVlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTZjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTdhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTg4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTk2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWE0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWIyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWMwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWNlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWRjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWVhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjA3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjE1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjIzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjMxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjNmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjRkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjViLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjY5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjc3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjg1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjkzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmExLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmFmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmJkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmNiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmU4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmY2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzA0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzEyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzIwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzJlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzNjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzRhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzU4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzY2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzc0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzgyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzkwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzllLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2FjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2M5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2U1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2YzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODAxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODBmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODFkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODJiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODM5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODQ3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODU1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODYzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODcxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODdmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODhkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODljLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGI4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGM2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGQ0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGUyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGYwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGZlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTBjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTFhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTI4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTM2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTQ0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTUyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTYwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTZlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOThiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTk5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWI1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWMzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWQxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWRmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVkLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWZiLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTA5Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTE3Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTI1Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTMzLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTQxLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTRmLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTZjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTdhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTg4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWE0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWIyLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWMwLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWNlLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWRjLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWVhLi4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWY4Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjA2Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjE0Li4uJywgNiwgdj0nNTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzgyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzkwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzllLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2FjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2JhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2M4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2Q2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2U0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2YyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDBmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDFkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDJiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDM5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDQ3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDU1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDYzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDcxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDdmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDhkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDliLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGE5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGI3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGM1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGQzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGYwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGZlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTBjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTFhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTI4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTM2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTQ0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTUyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTYwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTZlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTdjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZThhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTk4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWE2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWI0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWQxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWRmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWVkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWZiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjA5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjI1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjMzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjQxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjRmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjVkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjZiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjc5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjg3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjk1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmE0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmIyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmMwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmNlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmRjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmVhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmY4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDA2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDE0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDIyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDMwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDNlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDRjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDVhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDY4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDc2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDkzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGExLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGFmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGJkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGNiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGQ5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGU3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGY1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTAzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTExLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTFmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTJkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTNiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTQ5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTU3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTc0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTgyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTkwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTllLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWFjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWM4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWQ2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWU0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWYyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjAwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjBlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjFjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjJhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjM4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjU1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjYzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjcxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjdmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjhkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjliLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmE5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmI3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmM1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmQzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmUxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmVmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmZkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzBiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzE5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzM2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzQ0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzUyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzYwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzZlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzdjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzhhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzk4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2E2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2I0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2MyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2QwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2RlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2VjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2ZhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDE3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDI1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDMzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDQxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDRmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDc5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDg3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDk1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGEzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGIxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGJmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGNkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGRiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGY4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTA2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTE0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTIyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTMwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTNlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTRjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTVhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTY4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTc2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTg0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTkyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWEwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWFlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWJjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWQ5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWU3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWY1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjAzLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjExLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjFmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjJkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjNiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjQ5Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjU3Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjY1Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjczLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjgxLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjhmLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjlkLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmJhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmM4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmQ2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmU0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmYyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzAwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzFjLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzJhLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzM4Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzQ2Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzU0Li4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzYyLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzcwLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzdlLi4uJywgNiwgdj0nNTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPScxNjkzLi4uJywgOCwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzE5Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTA4Ii4uLicsIDMsIHY9JzE5OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMzMi4uLicsIDQsIHY9JzIwMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzYy4uLicsIDQsIHY9JzIwMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzgzNS4uLicsIDQsIHY9JzE5OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0NS4uLicsIDQsIHY9JzE5Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ1NS4uLicsIDQsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2NS4uLicsIDQsIHY9JzE5Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3NS4uLicsIDQsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4NS4uLicsIDQsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Ni4uLicsIDQsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhNS4uLicsIDQsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThiNi4uLicsIDQsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjNS4uLicsIDQsIHY9JzE5Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkNy4uLicsIDQsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDMwYi4uLicsIDQsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmNi4uLicsIDQsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwNi4uLicsIDQsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxNy4uLicsIDQsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDUsIHY9JzIyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3NC4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxOC4uLicsIDUsIHY9JzIyMCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDUsIHY9JzIyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDUsIHY9JzIyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yi4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZC4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIzZS4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMxZi4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhMy4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ni4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDUsIHY9JzIyMiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDUsIHY9JzIyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc4Yy4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjg2ZC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjk0ZS4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9JzIyMCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmIxMC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmJmMS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmNkMi4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmRiMy4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmU5NC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmY3NS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzA1Ni4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzEzNy4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzIxOS4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzJmOS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzNkYS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzRiYi4uLicsIDUsIHY9JzIxOSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzU5ZC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzY3ZC4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzc1ZS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzg0MC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzkyMS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2EwMS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2FlMi4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2JjMy4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2NhNC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Q4NS4uLicsIDUsIHY9JzIyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2U2Ni4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Y0OC4uLicsIDUsIHY9JzIxNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDAyOC4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDEwOS4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDFlYS4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDJjYi4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDNhYy4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDQ4ZC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDU2ZS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0Zi4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDgwZi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDhmMC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDlkMS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGFiNC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGI5NS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGM3Ni4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGQ1Ny4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGUzOC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGYxOS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGZmYS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTBkZC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTFiYy4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTI5ZC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTM3ZS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ2MC4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MC4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTYyMS4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTcwMi4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTdlMy4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNThjNC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTlhNy4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWE4Ni4uLicsIDUsIHY9JzIyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWI2Ny4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWM0OC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWQyOS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWUwYS4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWVlYi4uLicsIDUsIHY9JzIyNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWZjYy4uLicsIDUsIHY9JzIyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjBhZC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjE4ZS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2Zi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjM1MC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjQzMS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjUxMi4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjVmMy4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjZkNC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjdiNS4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjg5Ni4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjk3OC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmE1OC4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmIzOS4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmMxYS4uLicsIDUsIHY9JzIxOSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmNmYi4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmRkYy4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmViZC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmY5ZS4uLicsIDUsIHY9JzIyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3Zi4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzE2MC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzI0MS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzMyMi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzQwMy4uLicsIDUsIHY9JzIyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzRlNC4uLicsIDUsIHY9JzIyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzVjNS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzZhNi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzc4Ny4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzg2OC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzk0OC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2EyOS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2IwYS4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2JlYi4uLicsIDUsIHY9JzIyMSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2NjYy4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2RhZC4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4Zi4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2Y3MC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODA1MS4uLicsIDUsIHY9JzIxNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODEzMi4uLicsIDUsIHY9JzIxOSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODIxMy4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODJmNC4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODNkNS4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODRiNi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODU5Ny4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODY3OC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODc1OS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODgzYS4uLicsIDUsIHY9JzIyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODkxYi4uLicsIDUsIHY9JzIyMiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODlmYy4uLicsIDUsIHY9JzIyNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGFkZC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGJiZS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Zi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGQ4MC4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGU2MS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGY0Mi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTAyMy4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTEwNC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTFlNS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTJjNi4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTNhOC4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTQ4OC4uLicsIDUsIHY9JzIxOSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTU2OS4uLicsIDUsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTY0YS4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTcyYi4uLicsIDUsIHY9JzIxOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTgwYy4uLicsIDUsIHY9JzIyMSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOThlZC4uLicsIDUsIHY9JzIyMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTljZS4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhZi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWI5MC4uLicsIDUsIHY9JzIyNS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWM3MS4uLicsIDUsIHY9JzIyNSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWQ1Mi4uLicsIDUsIHY9JzIyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWUzMy4uLicsIDUsIHY9JzIyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWYxNC4uLicsIDUsIHY9JzIyNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWZmNS4uLicsIDUsIHY9JzIyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTBkNi4uLicsIDUsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTFiNy4uLicsIDUsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTI5OC4uLicsIDUsIHY9JzE5MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTM3OS4uLicsIDUsIHY9JzEyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTQ1YS4uLicsIDUsIHY9JzM1NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTUzYi4uLicsIDUsIHY9JzMzMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTYxYy4uLicsIDUsIHY9JzMyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTZmZC4uLicsIDUsIHY9JzI3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTdlMC4uLicsIDUsIHY9JzI4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThjMC4uLicsIDUsIHY9JzI5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMC4uLicsIDUsIHY9JzIxLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWE4MS4uLicsIDUsIHY9JzI3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWI2Mi4uLicsIDUsIHY9JzI3Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWM0My4uLicsIDUsIHY9JzI4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWQyNC4uLicsIDUsIHY9JzI4LjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWUwNS4uLicsIDUsIHY9JzY4LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWVlNi4uLicsIDUsIHY9JzE0Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWZjNy4uLicsIDUsIHY9Jzk1LjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjBhOC4uLicsIDUsIHY9Jzg5LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjI2YS4uLicsIDUsIHY9Jzg4LjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjM0Yi4uLicsIDUsIHY9JzkyLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjQyYy4uLicsIDUsIHY9JzE0OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjUwZC4uLicsIDUsIHY9JzE0OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjVlZS4uLicsIDUsIHY9JzEyNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjZi4uLicsIDUsIHY9JzE5OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjdiMC4uLicsIDUsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjg5MS4uLicsIDUsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjk3Mi4uLicsIDUsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmE1My4uLicsIDUsIHY9JzIwMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmIzNC4uLicsIDUsIHY9JzEyNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmMxNS4uLicsIDUsIHY9JzE1OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmNmNi4uLicsIDUsIHY9JzIzMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmRkOC4uLicsIDUsIHY9Jzc5LjguLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmViOC4uLicsIDUsIHY9JzUxLjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmY5OS4uLicsIDUsIHY9JzIyLjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzA3YS4uLicsIDUsIHY9JzMyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzE1Yi4uLicsIDUsIHY9JzM0MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzIzYy4uLicsIDUsIHY9JzQ2LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzMxZC4uLicsIDUsIHY9JzcxLjkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzNmZS4uLicsIDUsIHY9JzcxLjkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkZi4uLicsIDUsIHY9JzYzLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzVjMC4uLicsIDUsIHY9Jzc2LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzZhMS4uLicsIDUsIHY9JzU4LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzc4Mi4uLicsIDUsIHY9JzkyIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzg2My4uLicsIDUsIHY9Jzc5LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzk0NC4uLicsIDUsIHY9JzYzLjEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2EyNS4uLicsIDUsIHY9JzUxLjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2IwNi4uLicsIDUsIHY9JzgxLjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2JlNy4uLicsIDUsIHY9JzIwNS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2NjOC4uLicsIDUsIHY9Jzk2LjEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2RhOS4uLicsIDUsIHY9Jzk1LjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2U4YS4uLicsIDUsIHY9Jzk2LjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2Y2Yi4uLicsIDUsIHY9JzkyLjguLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDA0Yy4uLicsIDUsIHY9JzkxLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDEyZC4uLicsIDUsIHY9Jzg2LjEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDIwZS4uLicsIDUsIHY9JzI3MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDJmMC4uLicsIDUsIHY9JzI3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDNkMC4uLicsIDUsIHY9JzI5Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMS4uLicsIDUsIHY9JzMwNi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDU5Mi4uLicsIDUsIHY9JzMzMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDY3My4uLicsIDUsIHY9JzEzLjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDc1NC4uLicsIDUsIHY9JzQ2LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDgzNS4uLicsIDUsIHY9JzI2Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDkxNi4uLicsIDUsIHY9JzE2Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDlmNy4uLicsIDUsIHY9JzE0My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGFkOC4uLicsIDUsIHY9JzEyNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGJiOS4uLicsIDUsIHY9JzEzMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGM5YS4uLicsIDUsIHY9JzEyOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGQ3Yi4uLicsIDUsIHY9JzE1NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGU1Yy4uLicsIDUsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGYzZC4uLicsIDUsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTAxZC4uLicsIDUsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmZS4uLicsIDUsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTFkZi4uLicsIDUsIHY9JzE3Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTJjMC4uLicsIDUsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTNhMS4uLicsIDUsIHY9JzE5Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTQ4Mi4uLicsIDUsIHY9JzE3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTU2My4uLicsIDUsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTY0NC4uLicsIDUsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTcyNS4uLicsIDUsIHY9JzE5Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTgwNi4uLicsIDUsIHY9JzIwMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZThlNy4uLicsIDUsIHY9Jzk5LjkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTljOC4uLicsIDUsIHY9JzEzMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWFhOS4uLicsIDUsIHY9JzEzMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWI4YS4uLicsIDUsIHY9JzEyMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWM2Yi4uLicsIDUsIHY9JzEwMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWQ0Yy4uLicsIDUsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWUyZC4uLicsIDUsIHY9JzE1My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwZS4uLicsIDUsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWZmMC4uLicsIDUsIHY9JzE1NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjBkMS4uLicsIDUsIHY9JzE2Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjFiMi4uLicsIDUsIHY9JzE2NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjI5My4uLicsIDUsIHY9JzE4NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjM3NC4uLicsIDUsIHY9JzE1OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjQ1NS4uLicsIDUsIHY9JzE2My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjUzNi4uLicsIDUsIHY9JzE2My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjYxNy4uLicsIDUsIHY9JzE2MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjZmOC4uLicsIDUsIHY9JzE2NSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjdkOS4uLicsIDUsIHY9JzE1Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjhiYS4uLicsIDUsIHY9JzE2My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjk5Yi4uLicsIDUsIHY9JzE2Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmE3Yy4uLicsIDUsIHY9JzE1NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmI1ZC4uLicsIDUsIHY9JzE1Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmMzZS4uLicsIDUsIHY9JzE5Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxZi4uLicsIDUsIHY9JzIwMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmUwMC4uLicsIDUsIHY9JzIxMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmVlMS4uLicsIDUsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmZjMi4uLicsIDUsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAwYS4uLicsIDYsIHY9JzE2MiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAxOC4uLicsIDYsIHY9JzE0OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAyNi4uLicsIDYsIHY9JzEzNi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAzNC4uLicsIDYsIHY9JzE0NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA0Mi4uLicsIDYsIHY9JzE2NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1MC4uLicsIDYsIHY9JzE1OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1ZS4uLicsIDYsIHY9JzE2MyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA2Yy4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA3YS4uLicsIDYsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA4OC4uLicsIDYsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA5Ni4uLicsIDYsIHY9JzE2NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBhNC4uLicsIDYsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDYsIHY9JzE2My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjMS4uLicsIDYsIHY9JzE0Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjZi4uLicsIDYsIHY9JzE2MyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBkZC4uLicsIDYsIHY9JzE2Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBlYi4uLicsIDYsIHY9JzE3Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBmOS4uLicsIDYsIHY9JzE3OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEwNy4uLicsIDYsIHY9JzE2MSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTExNS4uLicsIDYsIHY9JzE3NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEyMy4uLicsIDYsIHY9JzIwMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzMS4uLicsIDYsIHY9JzE1OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzZi4uLicsIDYsIHY9JzE3Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE0ZC4uLicsIDYsIHY9JzE3Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE1Yi4uLicsIDYsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE2OS4uLicsIDYsIHY9JzEzOCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE3Ny4uLicsIDYsIHY9JzEzNS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE4NS4uLicsIDYsIHY9JzE1Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDYsIHY9JzE2MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFhMi4uLicsIDYsIHY9JzE3NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiMC4uLicsIDYsIHY9JzE4NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiZS4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFjYy4uLicsIDYsIHY9JzE3MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFkYS4uLicsIDYsIHY9JzE3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFlOC4uLicsIDYsIHY9JzE2NyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFmNi4uLicsIDYsIHY9JzE3Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIwNS4uLicsIDYsIHY9JzE2NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIxMy4uLicsIDYsIHY9JzE2Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyMS4uLicsIDYsIHY9JzE1MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyZi4uLicsIDYsIHY9JzE1OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIzZC4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI0Yi4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI1OS4uLicsIDYsIHY9JzE2MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI2Ny4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3Ni4uLicsIDYsIHY9JzIwNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI4My4uLicsIDYsIHY9JzIxNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9JzIxMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5Zi4uLicsIDYsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJhZC4uLicsIDYsIHY9JzIxMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJiYi4uLicsIDYsIHY9JzE3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJjOS4uLicsIDYsIHY9JzE2Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJkNy4uLicsIDYsIHY9JzE1Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJlNS4uLicsIDYsIHY9JzE1My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJmMy4uLicsIDYsIHY9JzE0My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwMS4uLicsIDYsIHY9JzE2MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwZi4uLicsIDYsIHY9JzE1My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMxZC4uLicsIDYsIHY9JzE2My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMyYi4uLicsIDYsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMzOS4uLicsIDYsIHY9JzE2OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM0Ny4uLicsIDYsIHY9JzEzOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDYsIHY9JzE0Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM2NC4uLicsIDYsIHY9JzEyMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM3Mi4uLicsIDYsIHY9JzEyNS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4MC4uLicsIDYsIHY9JzExMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4ZS4uLicsIDYsIHY9JzExMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM5Yy4uLicsIDYsIHY9JzE5MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNhYS4uLicsIDYsIHY9Jzk5LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNiOC4uLicsIDYsIHY9JzIwOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNjNi4uLicsIDYsIHY9Jzc2LjIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNkNC4uLicsIDYsIHY9JzYxLjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNlMi4uLicsIDYsIHY9JzQ0LjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmMC4uLicsIDYsIHY9JzQ0LjIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmZS4uLicsIDYsIHY9JzYwLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQwYy4uLicsIDYsIHY9JzY0LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQxYS4uLicsIDYsIHY9JzY3LjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQyOC4uLicsIDYsIHY9JzM0MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDYsIHY9JzExNS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ0NS4uLicsIDYsIHY9JzExNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ1My4uLicsIDYsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2MS4uLicsIDYsIHY9JzI1Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2Zi4uLicsIDYsIHY9JzI2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ3ZC4uLicsIDYsIHY9JzMxMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ4Yi4uLicsIDYsIHY9JzMxMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ5OS4uLicsIDYsIHY9JzI5MiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRhNy4uLicsIDYsIHY9JzU3LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRiNS4uLicsIDYsIHY9JzE1MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRjMy4uLicsIDYsIHY9JzkyLjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkMS4uLicsIDYsIHY9JzkzLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkZi4uLicsIDYsIHY9JzEwMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRlZC4uLicsIDYsIHY9Jzk3LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRmYi4uLicsIDYsIHY9JzE4NCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUwOS4uLicsIDYsIHY9JzI4OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxNy4uLicsIDYsIHY9JzI3NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUyNi4uLicsIDYsIHY9JzM5LjguLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzYuNSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU0Mi4uLicsIDYsIHY9JzM1NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1MC4uLicsIDYsIHY9JzE5LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1ZS4uLicsIDYsIHY9JzQ0LjIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU2Yy4uLicsIDYsIHY9JzYxLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU3YS4uLicsIDYsIHY9JzU1LjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU4OC4uLicsIDYsIHY9JzYwLjIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU5Ni4uLicsIDYsIHY9JzcxLjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVhNC4uLicsIDYsIHY9JzY2LjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTViMi4uLicsIDYsIHY9JzYxLjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjMC4uLicsIDYsIHY9JzM4LjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjZS4uLicsIDYsIHY9JzE3LjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVkYy4uLicsIDYsIHY9JzM1LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVlYS4uLicsIDYsIHY9JzQ0LjkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDYsIHY9JzcxLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYwNy4uLicsIDYsIHY9JzE2Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYxNS4uLicsIDYsIHY9JzEyNSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYyMy4uLicsIDYsIHY9JzE3NiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzMS4uLicsIDYsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzZi4uLicsIDYsIHY9Jzk5LjEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY0ZC4uLicsIDYsIHY9JzkwIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY1Yi4uLicsIDYsIHY9JzI3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY2OS4uLicsIDYsIHY9JzM0NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY3Ny4uLicsIDYsIHY9JzMwNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY4NS4uLicsIDYsIHY9JzI3MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY5My4uLicsIDYsIHY9JzI3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhMS4uLicsIDYsIHY9JzI5MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhZi4uLicsIDYsIHY9JzUyLjkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZiZC4uLicsIDYsIHY9Jzc2LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZjYi4uLicsIDYsIHY9Jzg3LjYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZlOC4uLicsIDYsIHY9JzE3NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZmNi4uLicsIDYsIHY9JzE3NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcwNC4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcxMi4uLicsIDYsIHY9JzE4My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyMC4uLicsIDYsIHY9JzE4MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyZS4uLicsIDYsIHY9JzE3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTczYy4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc0YS4uLicsIDYsIHY9JzE2NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc1OC4uLicsIDYsIHY9JzE2My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc2Ni4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc3NC4uLicsIDYsIHY9JzE2NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc4Mi4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5MC4uLicsIDYsIHY9JzE3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5ZS4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdhYy4uLicsIDYsIHY9JzIwMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDYsIHY9JzIwNS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdjOS4uLicsIDYsIHY9JzIwNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdkNy4uLicsIDYsIHY9JzIwNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdlNS4uLicsIDYsIHY9JzIwOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdmMy4uLicsIDYsIHY9JzIwNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwMS4uLicsIDYsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwZi4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgxZC4uLicsIDYsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgyYi4uLicsIDYsIHY9JzE5NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgzOS4uLicsIDYsIHY9JzE4NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg0Ny4uLicsIDYsIHY9JzE4NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg1NS4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg2My4uLicsIDYsIHY9JzE5NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3MS4uLicsIDYsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3Zi4uLicsIDYsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg4ZC4uLicsIDYsIHY9JzE5MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yy4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThiOC4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThjNi4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThkNC4uLicsIDYsIHY9JzE5MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThlMi4uLicsIDYsIHY9JzE5MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmMC4uLicsIDYsIHY9JzE5Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmZS4uLicsIDYsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkwYy4uLicsIDYsIHY9JzE4OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkxYS4uLicsIDYsIHY9JzIwMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkyOC4uLicsIDYsIHY9JzIwMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkzNi4uLicsIDYsIHY9JzIwNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk0NC4uLicsIDYsIHY9JzE5Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk1Mi4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2MC4uLicsIDYsIHY9JzE2Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2ZS4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk4Yi4uLicsIDYsIHY9JzE3OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk5OS4uLicsIDYsIHY9JzE4MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTliNS4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTljMy4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkMS4uLicsIDYsIHY9JzE4My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkZi4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZC4uLicsIDYsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZS4uLicsIDYsIHY9JzE3NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlmYi4uLicsIDYsIHY9JzE3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEwOS4uLicsIDYsIHY9JzIyMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWExNy4uLicsIDYsIHY9JzIyOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEyNS4uLicsIDYsIHY9JzIyOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEzMy4uLicsIDYsIHY9JzIxNi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0MS4uLicsIDYsIHY9JzIyNi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0Zi4uLicsIDYsIHY9JzI0OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZS4uLicsIDYsIHY9JzI0NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE2Yy4uLicsIDYsIHY9JzI1MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE3YS4uLicsIDYsIHY9JzI1MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE4OC4uLicsIDYsIHY9JzI1Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9JzI1OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFhNC4uLicsIDYsIHY9JzI1NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFiMi4uLicsIDYsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjMC4uLicsIDYsIHY9JzIyOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjZS4uLicsIDYsIHY9JzIyNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFkYy4uLicsIDYsIHY9JzIxNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFlYS4uLicsIDYsIHY9JzIxOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFmOC4uLicsIDYsIHY9JzIxNyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIwNi4uLicsIDYsIHY9JzIzMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIxNC4uLicsIDYsIHY9JzIzMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM3NC4uLicsIDYsIHY9JzUyIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM4Mi4uLicsIDYsIHY9JzM0MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5MC4uLicsIDYsIHY9JzE4LjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5ZS4uLicsIDYsIHY9JzM1Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNhYy4uLicsIDYsIHY9JzM0NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNiYS4uLicsIDYsIHY9JzMzOC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNjOC4uLicsIDYsIHY9JzI4LjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNkNi4uLicsIDYsIHY9JzIxLjguLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNlNC4uLicsIDYsIHY9JzEwLjQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNmMi4uLicsIDYsIHY9JzM0My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMS4uLicsIDYsIHY9JzM0Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwZi4uLicsIDYsIHY9JzM1OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQxZC4uLicsIDYsIHY9JzM1My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQyYi4uLicsIDYsIHY9JzM1My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQzOS4uLicsIDYsIHY9JzEuNCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ0Ny4uLicsIDYsIHY9JzYuNCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ1NS4uLicsIDYsIHY9JzEwLjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ2My4uLicsIDYsIHY9JzM1MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3MS4uLicsIDYsIHY9JzM1MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3Zi4uLicsIDYsIHY9JzM1Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ4ZC4uLicsIDYsIHY9JzE4MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ5Yi4uLicsIDYsIHY9JzE4NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRhOS4uLicsIDYsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRiNy4uLicsIDYsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRjNS4uLicsIDYsIHY9JzE5NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRkMy4uLicsIDYsIHY9JzE5MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDYsIHY9JzE5NSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmMC4uLicsIDYsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmZS4uLicsIDYsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUwYy4uLicsIDYsIHY9JzE5OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUxYS4uLicsIDYsIHY9JzE5OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUyOC4uLicsIDYsIHY9JzE5OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUzNi4uLicsIDYsIHY9JzIwMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU0NC4uLicsIDYsIHY9JzIwMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU1Mi4uLicsIDYsIHY9JzIwMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2MC4uLicsIDYsIHY9JzIwMy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2ZS4uLicsIDYsIHY9JzIwNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU3Yy4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU4YS4uLicsIDYsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU5OC4uLicsIDYsIHY9JzE4NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVhNi4uLicsIDYsIHY9JzE5MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWViNC4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDYsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkMS4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkZi4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVlZC4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVmYi4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYwOS4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYyNS4uLicsIDYsIHY9JzE2NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYzMy4uLicsIDYsIHY9JzE1NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0MS4uLicsIDYsIHY9JzEzNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0Zi4uLicsIDYsIHY9JzE1NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY1ZC4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY2Yi4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY3OS4uLicsIDYsIHY9JzE3NiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY4Ny4uLicsIDYsIHY9JzIwNi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY5NS4uLicsIDYsIHY9JzIxNi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhNC4uLicsIDYsIHY9JzIxMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZiMi4uLicsIDYsIHY9JzIxMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjMC4uLicsIDYsIHY9JzIxMS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjZS4uLicsIDYsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZkYy4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZlYS4uLicsIDYsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZmOC4uLicsIDYsIHY9JzE3MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAwNi4uLicsIDYsIHY9JzEyOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAxNC4uLicsIDYsIHY9JzE3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAyMi4uLicsIDYsIHY9JzE1Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzMC4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzZS4uLicsIDYsIHY9JzE2My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA0Yy4uLicsIDYsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA1YS4uLicsIDYsIHY9JzE2Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA2OC4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA3Ni4uLicsIDYsIHY9JzE1OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDYsIHY9JzE3Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA5My4uLicsIDYsIHY9JzE4My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhMS4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhZi4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBiZC4uLicsIDYsIHY9JzE4OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBjYi4uLicsIDYsIHY9JzE3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBkOS4uLicsIDYsIHY9JzE3OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBlNy4uLicsIDYsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBmNS4uLicsIDYsIHY9JzIwMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEwMy4uLicsIDYsIHY9JzE5Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExMS4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExZi4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEyZC4uLicsIDYsIHY9JzE3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEzYi4uLicsIDYsIHY9JzE2MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE0OS4uLicsIDYsIHY9JzE2OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE1Ny4uLicsIDYsIHY9JzE4NCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDYsIHY9JzE5MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE3NC4uLicsIDYsIHY9JzE3Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE4Mi4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5MC4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5ZS4uLicsIDYsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFhYy4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9JzE2OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFjOC4uLicsIDYsIHY9JzE1OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFkNi4uLicsIDYsIHY9JzE5MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFlNC4uLicsIDYsIHY9JzE3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFmMi4uLicsIDYsIHY9JzE3NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwMC4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwZS4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIxYy4uLicsIDYsIHY9JzE2MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIyYS4uLicsIDYsIHY9JzE3NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIzOC4uLicsIDYsIHY9JzE5Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ny4uLicsIDYsIHY9JzIwMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI1NS4uLicsIDYsIHY9JzExNi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI2My4uLicsIDYsIHY9JzE2Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3MS4uLicsIDYsIHY9JzE2Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3Zi4uLicsIDYsIHY9JzEzMC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI4ZC4uLicsIDYsIHY9JzEyMiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI5Yi4uLicsIDYsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJhOS4uLicsIDYsIHY9JzE4My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJiNy4uLicsIDYsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJjNS4uLicsIDYsIHY9JzE1Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJkMy4uLicsIDYsIHY9JzE0Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlMS4uLicsIDYsIHY9JzE0NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlZi4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJmZC4uLicsIDYsIHY9JzE4Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMwYi4uLicsIDYsIHY9JzE3My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMxOS4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDYsIHY9JzE3OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMzNi4uLicsIDYsIHY9JzE2OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM0NC4uLicsIDYsIHY9JzE2NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM1Mi4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2MC4uLicsIDYsIHY9JzE3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2ZS4uLicsIDYsIHY9JzE1OCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM3Yy4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM4YS4uLicsIDYsIHY9JzE3NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM5OC4uLicsIDYsIHY9JzE2OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNhNi4uLicsIDYsIHY9JzE4NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNiNC4uLicsIDYsIHY9JzE5MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNjMi4uLicsIDYsIHY9JzE3Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkMC4uLicsIDYsIHY9JzE2Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkZS4uLicsIDYsIHY9JzE1NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNlYy4uLicsIDYsIHY9JzE2NyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNmYS4uLicsIDYsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDYsIHY9JzE2Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQxNy4uLicsIDYsIHY9JzE0Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQyNS4uLicsIDYsIHY9JzE1NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQzMy4uLicsIDYsIHY9JzE1Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0MS4uLicsIDYsIHY9JzE4OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0Zi4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ2Yi4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ3OS4uLicsIDYsIHY9JzE3OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ4Ny4uLicsIDYsIHY9JzEzOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ5NS4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRhMy4uLicsIDYsIHY9JzE3MiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiMS4uLicsIDYsIHY9JzE4OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiZi4uLicsIDYsIHY9JzE4Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRjZC4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRkYi4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDYsIHY9JzE5OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRmOC4uLicsIDYsIHY9JzE5My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUwNi4uLicsIDYsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUxNC4uLicsIDYsIHY9JzE5OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUyMi4uLicsIDYsIHY9JzE4MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzMC4uLicsIDYsIHY9JzE4MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzZS4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU0Yy4uLicsIDYsIHY9JzE2NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU1YS4uLicsIDYsIHY9JzE2NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU2OC4uLicsIDYsIHY9JzE2MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU3Ni4uLicsIDYsIHY9JzE0Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU4NC4uLicsIDYsIHY9JzE5Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU5Mi4uLicsIDYsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhMC4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhZS4uLicsIDYsIHY9JzE3OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjViYy4uLicsIDYsIHY9JzE3Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDYsIHY9JzE3MiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVkOS4uLicsIDYsIHY9JzE1Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVlNy4uLicsIDYsIHY9JzE1NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVmNS4uLicsIDYsIHY9JzE1NyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYwMy4uLicsIDYsIHY9JzE3OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxMS4uLicsIDYsIHY9JzE2NiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxZi4uLicsIDYsIHY9JzE3Mi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYyZC4uLicsIDYsIHY9JzE5Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYzYi4uLicsIDYsIHY9JzE3OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY0OS4uLicsIDYsIHY9JzE5NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY1Ny4uLicsIDYsIHY9JzIwMi4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY2NS4uLicsIDYsIHY9JzIwOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY3My4uLicsIDYsIHY9JzIwNC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4MS4uLicsIDYsIHY9JzE5OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4Zi4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY5ZC4uLicsIDYsIHY9JzE3NS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDYsIHY9JzE3MC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZiYS4uLicsIDYsIHY9JzE1OS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZjOC4uLicsIDYsIHY9JzE1Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZkNi4uLicsIDYsIHY9JzEzNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZlNC4uLicsIDYsIHY9JzE0NiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZmMi4uLicsIDYsIHY9JzEzOS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwMC4uLicsIDYsIHY9JzE0My4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9JzEzNy4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcxYy4uLicsIDYsIHY9JzE3Ny4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcyYS4uLicsIDYsIHY9JzE4Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjczOC4uLicsIDYsIHY9JzE4NC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc0Ni4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc1NC4uLicsIDYsIHY9JzE5MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc2Mi4uLicsIDYsIHY9JzE0Ni4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3MC4uLicsIDYsIHY9JzE2MS4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3ZS4uLicsIDYsIHY9JzE4OC4uLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nMTA2OS4uLicsIDgsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwOCIuLi4nLCAzLCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMzIuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhM2MuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4MzUuLi4nLCA0LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NDUuLi4nLCA0LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NTUuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNjUuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwNzUuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlODUuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOTYuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYTUuLi4nLCA0LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YjYuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2YzUuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZDcuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzMGIuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZjYuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMDYuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMTcuLi4nLCA0LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiM2UuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMWYuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3OGMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI4NmQuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI5NGUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiMTAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiZjEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJjZDIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJkYjMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJlOTQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJmNzUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMwNTYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMxMzcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyMTkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyZjkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMzZGEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM0YmIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM1OWQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM2N2QuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM3NWUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4NDAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM5MjEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhMDEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhZTIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNiYzMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNjYTQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNkODUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNlNjYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNmNDguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQwMjguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxMDkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxZWEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQyY2IuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQzYWMuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ0OGQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ1NmUuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NGYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4MGYuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4ZjAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ5ZDEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRhYjQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRiOTUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRjNzYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRkNTcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRlMzguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmMTkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmZmEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUwZGQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUxYmMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUyOWQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUzN2UuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NjAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU1NDAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU2MjEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3MDIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3ZTMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU4YzQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU5YTcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVhODYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzViNjcuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVjNDguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVkMjkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlMGEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlZWIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVmY2MuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYwYWQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYxOGUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNmYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYzNTAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY0MzEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1MTIuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1ZjMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY2ZDQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY3YjUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY4OTYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY5NzguLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZhNTguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZiMzkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjMWEuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjZmIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZkZGMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZlYmQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZmOWUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwN2YuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcxNjAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcyNDEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzczMjIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0MDMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0ZTQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc1YzUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc2YTYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc3ODcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc4NjguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc5NDguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdhMjkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiMGEuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiZWIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdjY2MuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdkYWQuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlOGYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgwNTEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgxMzIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyMTMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyZjQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgzZDUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg0YjYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg1OTcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg2NzguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg3NTkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg4M2EuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5MWIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5ZmMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhhZGQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhiYmUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOWYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhkODAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhlNjEuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhmNDIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkwMjMuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxMDQuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxZTUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkyYzYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkzYTguLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk0ODguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk1NjkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk2NGEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk3MmIuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4MGMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4ZWQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk5Y2UuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYWYuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzliOTAuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzljNzEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlkNTIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzllMzMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmMTQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmZjUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EwZDYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ExYjcuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EyOTguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EzNzkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E0NWEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E1M2IuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2MWMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2ZmQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E3ZTAuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YzAuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FhODEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FiNjIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FjNDMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FkMjQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlMDUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlZTYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FmYzcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IwYTguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IyNmEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IzNGIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I0MmMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1MGQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1ZWUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2Y2YuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I3YjAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I4OTEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I5NzIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JhNTMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JiMzQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjMTUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjZjYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JkZDguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JlYjguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JmOTkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MwN2EuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MxNWIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MyM2MuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzMWQuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzZmUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZGYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M1YzAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M2YTEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M3ODIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M4NjMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M5NDQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NhMjUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiMDYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiZTcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NjYzguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NkYTkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NlOGEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NmNmIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QwNGMuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QxMmQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyMGUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyZjAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzZDAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q0YjEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q1OTIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q2NzMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q3NTQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q4MzUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5MTYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5ZjcuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RhZDguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RiYjkuLi4nLCA1LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RjOWEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RkN2IuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RlNWMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RmM2QuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwMWQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZmUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UxZGYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UyYzAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UzYTEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U0ODIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U1NjMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U2NDQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U3MjUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4MDYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4ZTcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U5YzguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VhYTkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ViOGEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VjNmIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VkNGMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VlMmQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMGUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmZjAuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YwZDEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YxYjIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YyOTMuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YzNzQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y0NTUuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y1MzYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2MTcuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2ZjguLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y3ZDkuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y4YmEuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y5OWIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZhN2MuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZiNWQuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZjM2UuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMWYuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlMDAuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTEuLi4nLCA1LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZmYzIuLi4nLCA1LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMGEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMTguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMjYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMzQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNDIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNTAuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNmMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwN2EuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwODguLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwOTYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYzEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwY2YuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZGQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZWIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZjkuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMDcuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMTUuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMjMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMzEuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExM2YuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNGQuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNWIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNjkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNzcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExODUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYTIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYmUuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExY2MuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZGEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZTguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZjYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMDUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMTMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMjEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMmYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyM2QuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNGIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNTkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNjcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyODMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOWYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYWQuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYmIuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYzkuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZDcuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZTUuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZjMuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMGYuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMWQuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMmIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMzkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNDcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNjQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNzIuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzODAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOGUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOWMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYWEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYzYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZDQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZTIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZmUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MGMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MWEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NDUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NTMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NjEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NmYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0N2QuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OGIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OTkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YzMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZGYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZWQuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZmIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MDkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MjYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MzQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NDIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NTAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NmMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1N2EuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ODguLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1OTYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YjIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YzAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1Y2UuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZGMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZWEuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MDcuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MjMuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MzEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2M2YuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NGQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NWIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NjkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NzcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ODUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2OTMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YTEuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YWYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YmQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2Y2IuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZTguLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZjYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MDQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MTIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MmUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3M2MuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NGEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NTguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NjYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NzQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ODIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OTAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YWMuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YzkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZjMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MGYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MWQuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MmIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MzkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NDcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NjMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NzEuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4N2YuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OGQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YzYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZDQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZTIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZmUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MGMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MWEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MzYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NDQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NTIuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NmUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OGIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OTkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YzMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZGYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZmIuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMDkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMTcuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMzMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNGYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNmMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhN2EuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhODguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYjIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYzAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhY2UuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZGMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZWEuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMDYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjODIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOTAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYWMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYmEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYzguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZDYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZjIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMGYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMWQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMmIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMzkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNDcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNjMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNzEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkN2YuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOGQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOWIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYTkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYjcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYzUuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZDMuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZmUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMGMuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMWEuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMzYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNDQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNTIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNmUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlN2MuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOGEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOTguLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYTYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYjQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZGYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZWQuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZmIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMDkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMzMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNGYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNWQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNmIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNzkuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmODcuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmOTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYjIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYzAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmY2UuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZGMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZWEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMDYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMjIuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMzAuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwM2UuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNGMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNWEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNzYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwOTMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYTEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYWYuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYmQuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwY2IuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZDkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMDMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMTEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMWYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMmQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxM2IuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNDkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNzQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxODIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOTAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYWMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYmEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYzguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZDYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZjIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMDAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMGUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMWMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMmEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMzguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDcuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNjMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNzEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyN2YuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOGQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOWIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYTkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYjcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYzUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZDMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZTEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZWYuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZmQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMGIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMTkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMzYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNDQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNTIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNjAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNmUuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzN2MuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOGEuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOTguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYTYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYjQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYzIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZDAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZGUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZWMuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZmEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MjUuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MzMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NDEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NGYuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NzkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ODcuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0OTUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YTMuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YjEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YmYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0Y2QuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZGIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MDYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MTQuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MjIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MzAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1M2UuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NGMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NWEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NjguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NzYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ODQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1OTIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YTAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YWUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YmMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZDkuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MDMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MTEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MWYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MmQuLi4nLCA2LCB2PSc1MC4xLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2M2IuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NDkuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NTcuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NjUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NzMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ODEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OGYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OWQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YmEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YzguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZDYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZjIuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MDAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MWMuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MmEuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MzguLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NDYuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NTQuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NjIuLi4nLCA2LCB2PSc0OS45Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NzAuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3N2UuLi4nLCA2LCB2PSc1MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9Jzg2MTIuLi4nLCA0LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nMjUuMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDgiLi4uJywgMywgdj0nMjQuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzMyLi4uJywgNCwgdj0nMjMuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTNjLi4uJywgNCwgdj0nMjMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODM1Li4uJywgNCwgdj0nMjIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjQ1Li4uJywgNCwgdj0nMjIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDU1Li4uJywgNCwgdj0nMjYuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjY1Li4uJywgNCwgdj0nMjguOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDc1Li4uJywgNCwgdj0nMzQuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZTg1Li4uJywgNCwgdj0nNDAuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Yzk2Li4uJywgNCwgdj0nNDAuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWE1Li4uJywgNCwgdj0nMzguNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGI2Li4uJywgNCwgdj0nMzUuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmM1Li4uJywgNCwgdj0nMzQuMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGQ3Li4uJywgNCwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMzBiLi4uJywgNCwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGY2Li4uJywgNCwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjA2Li4uJywgNCwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDE3Li4uJywgNCwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODliLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjNlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzFmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmEzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzhjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyODZkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyOTRlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYjEwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYmYxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyY2QyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZGIzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZTk0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZjc1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMDU2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMTM3Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMjE5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMmY5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczM2RhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNGJiLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNTlkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNjdkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNzVlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODQwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczOTIxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYTAxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYWUyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYmMzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczY2E0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZDg1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZTY2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZjQ4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MDI4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MTA5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MWVhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MmNiLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0M2FjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NDhkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NTZlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjRmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ODBmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OGYwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OWQxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0YWI0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yjk1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yzc2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZDU3Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZTM4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZjE5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZmZhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MGRkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MWJjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MjlkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MzdlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDYwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NjIxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NzAyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1N2UzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OGM0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OWE3Li4uJywgNSwgdj0nMC4wNC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YTg2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YjY3Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YzQ4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZDI5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZTBhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZWViLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZmNjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MGFkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MThlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjZmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MzUwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NDMxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NTEyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NWYzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NmQ0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2N2I1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ODk2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2OTc4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YTU4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YjM5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YzFhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2Y2ZiLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZGRjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZWJkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZjllLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDdmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MTYwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MjQxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MzIyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NDAzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NGU0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NWM1Li4uJywgNSwgdj0nMC4wNC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NmE2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Nzg3Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ODY4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3OTQ4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YTI5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YjBhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YmViLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Y2NjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZGFkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZThmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MDUxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MTMyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MjEzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MmY0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4M2Q1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NGI2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NTk3Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Njc4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NzU5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ODNhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OTFiLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OWZjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YWRkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YmJlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YzlmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZDgwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZTYxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZjQyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MDIzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MTA0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MWU1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MmM2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5M2E4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NDg4Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NTY5Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NjRhLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NzJiLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ODBjLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OGVkLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OWNlLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWFmLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YjkwLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YzcxLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZDUyLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZTMzLi4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZjE0Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZmY1Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMGQ2Li4uJywgNSwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMWI3Li4uJywgNSwgdj0nMzYuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMjk4Li4uJywgNSwgdj0nMTcuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMzc5Li4uJywgNSwgdj0nOC4zNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNDVhLi4uJywgNSwgdj0nNS45NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNTNiLi4uJywgNSwgdj0nNy4xMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNjFjLi4uJywgNSwgdj0nOC42NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNmZkLi4uJywgNSwgdj0nNi40Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhN2UwLi4uJywgNSwgdj0nMTAuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGMwLi4uJywgNSwgdj0nMTQuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWEwLi4uJywgNSwgdj0nMy41NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYTgxLi4uJywgNSwgdj0nMy44Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYjYyLi4uJywgNSwgdj0nNi4wOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYzQzLi4uJywgNSwgdj0nNS4yMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZDI0Li4uJywgNSwgdj0nNy41Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZTA1Li4uJywgNSwgdj0nMTEuMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZWU2Li4uJywgNSwgdj0nMC45NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZmM3Li4uJywgNSwgdj0nNS43Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMGE4Li4uJywgNSwgdj0nMjEuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMjZhLi4uJywgNSwgdj0nMjIuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMzRiLi4uJywgNSwgdj0nMTkuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNDJjLi4uJywgNSwgdj0nMS4yNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNTBkLi4uJywgNSwgdj0nMy4xMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNWVlLi4uJywgNSwgdj0nNi4wOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmNmLi4uJywgNSwgdj0nNy4yNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiN2IwLi4uJywgNSwgdj0nOS4zNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiODkxLi4uJywgNSwgdj0nNy43MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiOTcyLi4uJywgNSwgdj0nOC4xOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYTUzLi4uJywgNSwgdj0nOS44NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYjM0Li4uJywgNSwgdj0nNS4yNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYzE1Li4uJywgNSwgdj0nMi42NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiY2Y2Li4uJywgNSwgdj0nNy4xNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZGQ4Li4uJywgNSwgdj0nMTkuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZWI4Li4uJywgNSwgdj0nNC43MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZjk5Li4uJywgNSwgdj0nNS4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMDdhLi4uJywgNSwgdj0nNS4wMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMTViLi4uJywgNSwgdj0nNC40MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMjNjLi4uJywgNSwgdj0nNS4xNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMzFkLi4uJywgNSwgdj0nMTAuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjM2ZlLi4uJywgNSwgdj0nNS4wOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGRmLi4uJywgNSwgdj0nMTAuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNWMwLi4uJywgNSwgdj0nNC4wOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNmExLi4uJywgNSwgdj0nNS4yMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNzgyLi4uJywgNSwgdj0nNi42Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjODYzLi4uJywgNSwgdj0nMi41Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjOTQ0Li4uJywgNSwgdj0nMy43Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYTI1Li4uJywgNSwgdj0nMi45Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYjA2Li4uJywgNSwgdj0nNC4yMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYmU3Li4uJywgNSwgdj0nMi40NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjY2M4Li4uJywgNSwgdj0nMTAuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZGE5Li4uJywgNSwgdj0nMTUuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZThhLi4uJywgNSwgdj0nMTAuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZjZiLi4uJywgNSwgdj0nMTQuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMDRjLi4uJywgNSwgdj0nMTEuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMTJkLi4uJywgNSwgdj0nNy4yNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMjBlLi4uJywgNSwgdj0nMy4yNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMmYwLi4uJywgNSwgdj0nMTIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkM2QwLi4uJywgNSwgdj0nOC44Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIxLi4uJywgNSwgdj0nOC40Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNTkyLi4uJywgNSwgdj0nNy41MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNjczLi4uJywgNSwgdj0nNy44MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNzU0Li4uJywgNSwgdj0nMTAuOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkODM1Li4uJywgNSwgdj0nNS43NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOTE2Li4uJywgNSwgdj0nMi4wOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOWY3Li4uJywgNSwgdj0nNy43NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYWQ4Li4uJywgNSwgdj0nMTYuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYmI5Li4uJywgNSwgdj0nMTguNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYzlhLi4uJywgNSwgdj0nMTguOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZDdiLi4uJywgNSwgdj0nMTYuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZTVjLi4uJywgNSwgdj0nMTMuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZjNkLi4uJywgNSwgdj0nMTQuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDFkLi4uJywgNSwgdj0nMTQuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGZlLi4uJywgNSwgdj0nMTQuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMWRmLi4uJywgNSwgdj0nMTUuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMmMwLi4uJywgNSwgdj0nMjAuMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlM2ExLi4uJywgNSwgdj0nMjAuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNDgyLi4uJywgNSwgdj0nMTYuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNTYzLi4uJywgNSwgdj0nMTcuMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNjQ0Li4uJywgNSwgdj0nMTEuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNzI1Li4uJywgNSwgdj0nMTAuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlODA2Li4uJywgNSwgdj0nOC43My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOGU3Li4uJywgNSwgdj0nMTQuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOWM4Li4uJywgNSwgdj0nNC44Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYWE5Li4uJywgNSwgdj0nNC4xNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYjhhLi4uJywgNSwgdj0nNi4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYzZiLi4uJywgNSwgdj0nMTQuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZDRjLi4uJywgNSwgdj0nOS45OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZTJkLi4uJywgNSwgdj0nMTEuOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjBlLi4uJywgNSwgdj0nMTUuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZmYwLi4uJywgNSwgdj0nMjIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMGQxLi4uJywgNSwgdj0nMjIuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMWIyLi4uJywgNSwgdj0nMjQuMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMjkzLi4uJywgNSwgdj0nMjMuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMzc0Li4uJywgNSwgdj0nMjMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNDU1Li4uJywgNSwgdj0nMjQuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNTM2Li4uJywgNSwgdj0nMjUuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNjE3Li4uJywgNSwgdj0nMjQuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNmY4Li4uJywgNSwgdj0nMjUuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmN2Q5Li4uJywgNSwgdj0nMjMuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOGJhLi4uJywgNSwgdj0nMTkuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOTliLi4uJywgNSwgdj0nMTkuMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYTdjLi4uJywgNSwgdj0nMTYuMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYjVkLi4uJywgNSwgdj0nMTYuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYzNlLi4uJywgNSwgdj0nMTYuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDFmLi4uJywgNSwgdj0nMTQuMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZTAwLi4uJywgNSwgdj0nMTQuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUxLi4uJywgNSwgdj0nOS41NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZmMyLi4uJywgNSwgdj0nOS4wNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDBhLi4uJywgNiwgdj0nOC4zMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDE4Li4uJywgNiwgdj0nOS43Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDI2Li4uJywgNiwgdj0nMTQuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDM0Li4uJywgNiwgdj0nMTYuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDQyLi4uJywgNiwgdj0nMTkuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDUwLi4uJywgNiwgdj0nMjMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDVlLi4uJywgNiwgdj0nMjMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDZjLi4uJywgNiwgdj0nMjUuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDdhLi4uJywgNiwgdj0nMjEuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDg4Li4uJywgNiwgdj0nMTkuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDk2Li4uJywgNiwgdj0nMjEuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGE0Li4uJywgNiwgdj0nMjEuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNiwgdj0nMjIuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGMxLi4uJywgNiwgdj0nMjUuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGNmLi4uJywgNiwgdj0nMjMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGRkLi4uJywgNiwgdj0nMjAuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGViLi4uJywgNiwgdj0nMjIuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGY5Li4uJywgNiwgdj0nMTguNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTA3Li4uJywgNiwgdj0nMTYuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTE1Li4uJywgNiwgdj0nMTMuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTIzLi4uJywgNiwgdj0nMTMuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTMxLi4uJywgNiwgdj0nOC43MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTNmLi4uJywgNiwgdj0nOC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTRkLi4uJywgNiwgdj0nOC4xOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTViLi4uJywgNiwgdj0nOC4zMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTY5Li4uJywgNiwgdj0nMTAuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTc3Li4uJywgNiwgdj0nMTQuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTg1Li4uJywgNiwgdj0nMTUuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNiwgdj0nMTkuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWEyLi4uJywgNiwgdj0nMjMuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWIwLi4uJywgNiwgdj0nMjAuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWJlLi4uJywgNiwgdj0nMjYuMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWNjLi4uJywgNiwgdj0nMjEuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWRhLi4uJywgNiwgdj0nMjEuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWU4Li4uJywgNiwgdj0nMjIuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWY2Li4uJywgNiwgdj0nMTkuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjA1Li4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjEzLi4uJywgNiwgdj0nMC4wMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjIxLi4uJywgNiwgdj0nMC4wMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjJmLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjNkLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjRiLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjU5Li4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjY3Li4uJywgNiwgdj0nMC4wMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc2Li4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjgzLi4uJywgNiwgdj0nMC4wMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nMC4wMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjlmLi4uJywgNiwgdj0nMC4wMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmFkLi4uJywgNiwgdj0nMC4wMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmJiLi4uJywgNiwgdj0nMC4wMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmM5Li4uJywgNiwgdj0nMC4wMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmQ3Li4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmU1Li4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmYzLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzAxLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzBmLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzFkLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzJiLi4uJywgNiwgdj0nMC4wMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzM5Li4uJywgNiwgdj0nMC4yNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzQ3Li4uJywgNiwgdj0nMC4wOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNiwgdj0nMC4xNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzY0Li4uJywgNiwgdj0nMC4yMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzcyLi4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzgwLi4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzhlLi4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzljLi4uJywgNiwgdj0nMC4wNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2FhLi4uJywgNiwgdj0nMC4wNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2I4Li4uJywgNiwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2M2Li4uJywgNiwgdj0nMC40NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2Q0Li4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2UyLi4uJywgNiwgdj0nMC4xNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2YwLi4uJywgNiwgdj0nMC4xNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2ZlLi4uJywgNiwgdj0nMC4yMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDBjLi4uJywgNiwgdj0nMC4zMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDFhLi4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDI4Li4uJywgNiwgdj0nMC4wNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNiwgdj0nMC4wMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDQ1Li4uJywgNiwgdj0nMC4wMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDUzLi4uJywgNiwgdj0nMC4wMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDYxLi4uJywgNiwgdj0nMC4wNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDZmLi4uJywgNiwgdj0nMC4xNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDdkLi4uJywgNiwgdj0nMC4wNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDhiLi4uJywgNiwgdj0nMC4wOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDk5Li4uJywgNiwgdj0nMC4wNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGE3Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGI1Li4uJywgNiwgdj0nMC4wNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGMzLi4uJywgNiwgdj0nMC4yMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGQxLi4uJywgNiwgdj0nMC4yMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGRmLi4uJywgNiwgdj0nMC4xNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGVkLi4uJywgNiwgdj0nMC4wNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGZiLi4uJywgNiwgdj0nMC4wMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTA5Li4uJywgNiwgdj0nMC4wNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE3Li4uJywgNiwgdj0nMC4xNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTI2Li4uJywgNiwgdj0nMC4xOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nMC4xNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTQyLi4uJywgNiwgdj0nMC4xNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTUwLi4uJywgNiwgdj0nMC4xNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTVlLi4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTZjLi4uJywgNiwgdj0nMC4zMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTdhLi4uJywgNiwgdj0nMC4xNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTg4Li4uJywgNiwgdj0nMC4xNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTk2Li4uJywgNiwgdj0nMC4yNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWE0Li4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWIyLi4uJywgNiwgdj0nMC4xOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWMwLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWNlLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWRjLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWVhLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNiwgdj0nMC4zMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjA3Li4uJywgNiwgdj0nMC4wMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjE1Li4uJywgNiwgdj0nMC4wNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjIzLi4uJywgNiwgdj0nMC4wNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjMxLi4uJywgNiwgdj0nMC4wNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjNmLi4uJywgNiwgdj0nMC4wNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjRkLi4uJywgNiwgdj0nMC4wMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjViLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjY5Li4uJywgNiwgdj0nMC4wOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjc3Li4uJywgNiwgdj0nMC4xNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjg1Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjkzLi4uJywgNiwgdj0nMC4wOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmExLi4uJywgNiwgdj0nMC4wNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmFmLi4uJywgNiwgdj0nMC4wNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmJkLi4uJywgNiwgdj0nMC4xNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmNiLi4uJywgNiwgdj0nMC4yMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNiwgdj0nMC4wOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmU4Li4uJywgNiwgdj0nMC42MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmY2Li4uJywgNiwgdj0nMC42Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzA0Li4uJywgNiwgdj0nMC43Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzEyLi4uJywgNiwgdj0nMC40Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzIwLi4uJywgNiwgdj0nMC40Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzJlLi4uJywgNiwgdj0nMC40OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzNjLi4uJywgNiwgdj0nMC40OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzRhLi4uJywgNiwgdj0nMC41Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzU4Li4uJywgNiwgdj0nMC42Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzY2Li4uJywgNiwgdj0nMzUuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzc0Li4uJywgNiwgdj0nMzMuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzgyLi4uJywgNiwgdj0nMzUuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzkwLi4uJywgNiwgdj0nMzIuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzllLi4uJywgNiwgdj0nMjguNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2FjLi4uJywgNiwgdj0nMjkuMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNiwgdj0nMzAuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2M5Li4uJywgNiwgdj0nMjguMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nMjcuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2U1Li4uJywgNiwgdj0nMjguMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2YzLi4uJywgNiwgdj0nMjUuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODAxLi4uJywgNiwgdj0nMjUuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODBmLi4uJywgNiwgdj0nMzAuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODFkLi4uJywgNiwgdj0nMzIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODJiLi4uJywgNiwgdj0nMzguMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODM5Li4uJywgNiwgdj0nNjQuMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODQ3Li4uJywgNiwgdj0nNjMuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODU1Li4uJywgNiwgdj0nNjAuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODYzLi4uJywgNiwgdj0nNTcuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODcxLi4uJywgNiwgdj0nNTkuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODdmLi4uJywgNiwgdj0nNTYuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODhkLi4uJywgNiwgdj0nNjAuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODljLi4uJywgNiwgdj0nNTYuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGI4Li4uJywgNiwgdj0nMzcuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGM2Li4uJywgNiwgdj0nNDAuMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGQ0Li4uJywgNiwgdj0nMzguMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGUyLi4uJywgNiwgdj0nMzIuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGYwLi4uJywgNiwgdj0nMzAuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGZlLi4uJywgNiwgdj0nMjYuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTBjLi4uJywgNiwgdj0nMjEuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTFhLi4uJywgNiwgdj0nMjEuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTI4Li4uJywgNiwgdj0nMjEuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTM2Li4uJywgNiwgdj0nMjAuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTQ0Li4uJywgNiwgdj0nMTkuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTUyLi4uJywgNiwgdj0nMjAuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTYwLi4uJywgNiwgdj0nMjUuNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTZlLi4uJywgNiwgdj0nMjkuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNiwgdj0nMzEuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOThiLi4uJywgNiwgdj0nMjguNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTk5Li4uJywgNiwgdj0nMzIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWI1Li4uJywgNiwgdj0nMzIuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWMzLi4uJywgNiwgdj0nMjkuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWQxLi4uJywgNiwgdj0nMjkuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWRmLi4uJywgNiwgdj0nMjkuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVkLi4uJywgNiwgdj0nMjkuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVlLi4uJywgNiwgdj0nMjkuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWZiLi4uJywgNiwgdj0nMTAuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTA5Li4uJywgNiwgdj0nMTguMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTE3Li4uJywgNiwgdj0nMjMuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTI1Li4uJywgNiwgdj0nMjUuOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTMzLi4uJywgNiwgdj0nMTMuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTQxLi4uJywgNiwgdj0nMTUuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTRmLi4uJywgNiwgdj0nMjIuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVlLi4uJywgNiwgdj0nMjAuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTZjLi4uJywgNiwgdj0nMTQuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTdhLi4uJywgNiwgdj0nMTcuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTg4Li4uJywgNiwgdj0nMTguMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nMTQuOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWE0Li4uJywgNiwgdj0nMTEuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWIyLi4uJywgNiwgdj0nNi40MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWMwLi4uJywgNiwgdj0nMTMuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWNlLi4uJywgNiwgdj0nMTguMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWRjLi4uJywgNiwgdj0nMTYuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWVhLi4uJywgNiwgdj0nMTYuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWY4Li4uJywgNiwgdj0nMTcuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjA2Li4uJywgNiwgdj0nMTYuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjE0Li4uJywgNiwgdj0nMTYuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nNC4zMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzgyLi4uJywgNiwgdj0nNC4zMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzkwLi4uJywgNiwgdj0nMjEuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzllLi4uJywgNiwgdj0nMjAuOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2FjLi4uJywgNiwgdj0nMjIuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2JhLi4uJywgNiwgdj0nMjIuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2M4Li4uJywgNiwgdj0nMzQuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2Q2Li4uJywgNiwgdj0nMzMuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2U0Li4uJywgNiwgdj0nMzIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2YyLi4uJywgNiwgdj0nMzMuMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAxLi4uJywgNiwgdj0nMzQuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDBmLi4uJywgNiwgdj0nMzYuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDFkLi4uJywgNiwgdj0nMzYuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDJiLi4uJywgNiwgdj0nMzYuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDM5Li4uJywgNiwgdj0nMzcuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDQ3Li4uJywgNiwgdj0nMzcuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDU1Li4uJywgNiwgdj0nMzcuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDYzLi4uJywgNiwgdj0nMzIuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDcxLi4uJywgNiwgdj0nMzEuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDdmLi4uJywgNiwgdj0nMzEuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDhkLi4uJywgNiwgdj0nMTUuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDliLi4uJywgNiwgdj0nMTcuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGE5Li4uJywgNiwgdj0nMTcuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGI3Li4uJywgNiwgdj0nMTYuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGM1Li4uJywgNiwgdj0nMTcuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGQzLi4uJywgNiwgdj0nMTguMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNiwgdj0nMzIuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGYwLi4uJywgNiwgdj0nMzcuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGZlLi4uJywgNiwgdj0nMzYuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTBjLi4uJywgNiwgdj0nMzcuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTFhLi4uJywgNiwgdj0nMzcuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTI4Li4uJywgNiwgdj0nMzUuOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTM2Li4uJywgNiwgdj0nMzQuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTQ0Li4uJywgNiwgdj0nMzEuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTUyLi4uJywgNiwgdj0nMjcuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTYwLi4uJywgNiwgdj0nMjcuNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTZlLi4uJywgNiwgdj0nMjcuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTdjLi4uJywgNiwgdj0nOS42NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZThhLi4uJywgNiwgdj0nOC45OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTk4Li4uJywgNiwgdj0nOC44Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWE2Li4uJywgNiwgdj0nMTEuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWI0Li4uJywgNiwgdj0nMTEuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNiwgdj0nMTMuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWQxLi4uJywgNiwgdj0nMTIuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWRmLi4uJywgNiwgdj0nMTMuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWVkLi4uJywgNiwgdj0nMTIuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWZiLi4uJywgNiwgdj0nMTIuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjA5Li4uJywgNiwgdj0nMTIuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nMTEuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjI1Li4uJywgNiwgdj0nMTEuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjMzLi4uJywgNiwgdj0nMTMuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjQxLi4uJywgNiwgdj0nMjAuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjRmLi4uJywgNiwgdj0nMTcuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjVkLi4uJywgNiwgdj0nMTcuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjZiLi4uJywgNiwgdj0nMTcuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjc5Li4uJywgNiwgdj0nMTUuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjg3Li4uJywgNiwgdj0nMTguNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjk1Li4uJywgNiwgdj0nMTkuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmE0Li4uJywgNiwgdj0nMTUuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmIyLi4uJywgNiwgdj0nMTQuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmMwLi4uJywgNiwgdj0nMTQuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmNlLi4uJywgNiwgdj0nMTAuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmRjLi4uJywgNiwgdj0nMTAuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmVhLi4uJywgNiwgdj0nMTAuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmY4Li4uJywgNiwgdj0nMTIuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDA2Li4uJywgNiwgdj0nMTguNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDE0Li4uJywgNiwgdj0nMTcuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDIyLi4uJywgNiwgdj0nMjQuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDMwLi4uJywgNiwgdj0nMjcuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDNlLi4uJywgNiwgdj0nMzEuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDRjLi4uJywgNiwgdj0nMjguMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDVhLi4uJywgNiwgdj0nMjYuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDY4Li4uJywgNiwgdj0nMjcuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDc2Li4uJywgNiwgdj0nMzEuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNiwgdj0nMzAuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDkzLi4uJywgNiwgdj0nMzMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGExLi4uJywgNiwgdj0nMzEuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGFmLi4uJywgNiwgdj0nMjcuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGJkLi4uJywgNiwgdj0nMjYuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGNiLi4uJywgNiwgdj0nMjIuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGQ5Li4uJywgNiwgdj0nMjEuMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGU3Li4uJywgNiwgdj0nMjAuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGY1Li4uJywgNiwgdj0nMjAuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTAzLi4uJywgNiwgdj0nMTcuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTExLi4uJywgNiwgdj0nMTQuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTFmLi4uJywgNiwgdj0nMTQuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTJkLi4uJywgNiwgdj0nMTMuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTNiLi4uJywgNiwgdj0nMTQuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTQ5Li4uJywgNiwgdj0nMTguMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTU3Li4uJywgNiwgdj0nMjIuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNiwgdj0nMjkuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTc0Li4uJywgNiwgdj0nMzAuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTgyLi4uJywgNiwgdj0nMzEuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTkwLi4uJywgNiwgdj0nMzAuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTllLi4uJywgNiwgdj0nMzAuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWFjLi4uJywgNiwgdj0nMjkuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nMjkuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWM4Li4uJywgNiwgdj0nMzAuNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWQ2Li4uJywgNiwgdj0nMzEuMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWU0Li4uJywgNiwgdj0nMjguOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWYyLi4uJywgNiwgdj0nMjguNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjAwLi4uJywgNiwgdj0nMjcuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjBlLi4uJywgNiwgdj0nMjYuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjFjLi4uJywgNiwgdj0nMjQuMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjJhLi4uJywgNiwgdj0nMTguOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjM4Li4uJywgNiwgdj0nMTcuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ3Li4uJywgNiwgdj0nMTYuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjU1Li4uJywgNiwgdj0nMTguNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjYzLi4uJywgNiwgdj0nOS44My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjcxLi4uJywgNiwgdj0nOS43My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjdmLi4uJywgNiwgdj0nMTIuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjhkLi4uJywgNiwgdj0nMTcuMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjliLi4uJywgNiwgdj0nMTcuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmE5Li4uJywgNiwgdj0nMTkuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmI3Li4uJywgNiwgdj0nMjIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmM1Li4uJywgNiwgdj0nMjUuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmQzLi4uJywgNiwgdj0nMjguMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmUxLi4uJywgNiwgdj0nMjguNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmVmLi4uJywgNiwgdj0nMjMuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmZkLi4uJywgNiwgdj0nMjIuNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzBiLi4uJywgNiwgdj0nMjIuMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzE5Li4uJywgNiwgdj0nMjcuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNiwgdj0nMjcuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzM2Li4uJywgNiwgdj0nMjkuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzQ0Li4uJywgNiwgdj0nMjcuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzUyLi4uJywgNiwgdj0nMjUuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzYwLi4uJywgNiwgdj0nMjUuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzZlLi4uJywgNiwgdj0nMjMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzdjLi4uJywgNiwgdj0nMjEuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzhhLi4uJywgNiwgdj0nMTkuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzk4Li4uJywgNiwgdj0nMTUuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2E2Li4uJywgNiwgdj0nMTYuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2I0Li4uJywgNiwgdj0nMTUuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2MyLi4uJywgNiwgdj0nMTMuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2QwLi4uJywgNiwgdj0nMTQuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2RlLi4uJywgNiwgdj0nMTUuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2VjLi4uJywgNiwgdj0nMTguMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2ZhLi4uJywgNiwgdj0nMjIuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNiwgdj0nMjYuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDE3Li4uJywgNiwgdj0nMzQuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDI1Li4uJywgNiwgdj0nMzUuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDMzLi4uJywgNiwgdj0nMzYuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDQxLi4uJywgNiwgdj0nMzQuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDRmLi4uJywgNiwgdj0nMzIuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nMzMuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDc5Li4uJywgNiwgdj0nMzEuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDg3Li4uJywgNiwgdj0nMzYuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDk1Li4uJywgNiwgdj0nMzAuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGEzLi4uJywgNiwgdj0nMjguMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGIxLi4uJywgNiwgdj0nMjguOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGJmLi4uJywgNiwgdj0nMjcuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGNkLi4uJywgNiwgdj0nMjYuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGRiLi4uJywgNiwgdj0nMjEuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNiwgdj0nMjAuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGY4Li4uJywgNiwgdj0nMTcuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTA2Li4uJywgNiwgdj0nMTcuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTE0Li4uJywgNiwgdj0nMTcuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTIyLi4uJywgNiwgdj0nMTYuMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTMwLi4uJywgNiwgdj0nMTcuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTNlLi4uJywgNiwgdj0nMjAuOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTRjLi4uJywgNiwgdj0nMjEuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTVhLi4uJywgNiwgdj0nMjUuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTY4Li4uJywgNiwgdj0nMzEuMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTc2Li4uJywgNiwgdj0nMzMuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTg0Li4uJywgNiwgdj0nODIuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTkyLi4uJywgNiwgdj0nNDYuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWEwLi4uJywgNiwgdj0nMjIuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWFlLi4uJywgNiwgdj0nMzEuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWJjLi4uJywgNiwgdj0nMzAuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNiwgdj0nMjguOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWQ5Li4uJywgNiwgdj0nMzAuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWU3Li4uJywgNiwgdj0nMzEuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWY1Li4uJywgNiwgdj0nMjguMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjAzLi4uJywgNiwgdj0nMjcuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjExLi4uJywgNiwgdj0nMjQuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjFmLi4uJywgNiwgdj0nMjIuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjJkLi4uJywgNiwgdj0nMjMuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjNiLi4uJywgNiwgdj0nMTcuNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjQ5Li4uJywgNiwgdj0nMTcuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjU3Li4uJywgNiwgdj0nMTguNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjY1Li4uJywgNiwgdj0nMjAuNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjczLi4uJywgNiwgdj0nMTkuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjgxLi4uJywgNiwgdj0nMTguNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjhmLi4uJywgNiwgdj0nMTguNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjlkLi4uJywgNiwgdj0nMTguOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNiwgdj0nMTguOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmJhLi4uJywgNiwgdj0nMjMuNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmM4Li4uJywgNiwgdj0nMjMuNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmQ2Li4uJywgNiwgdj0nMjYuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmU0Li4uJywgNiwgdj0nMjQuMC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmYyLi4uJywgNiwgdj0nMjMuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzAwLi4uJywgNiwgdj0nMjMuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nMjQiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzFjLi4uJywgNiwgdj0nMjIuOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzJhLi4uJywgNiwgdj0nMjYuMi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzM4Li4uJywgNiwgdj0nMjUuOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzQ2Li4uJywgNiwgdj0nMjUuMS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzU0Li4uJywgNiwgdj0nMjQuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzYyLi4uJywgNiwgdj0nMjMuNy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzcwLi4uJywgNiwgdj0nMTguOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzdlLi4uJywgNiwgdj0nMTUuMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc4NjA4Li4uJywgNCwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTA4Ii4uLicsIDMsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMzMi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzYy4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzgzNS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ1NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Ni4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhNS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThiNi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjNS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkNy4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDMwYi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmNi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwNi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxNy4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIzZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMxZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc4Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjg2ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjk0ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmIxMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmJmMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmNkMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmRiMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmU5NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmY3NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzA1Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzEzNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzIxOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzJmOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzNkYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzRiYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzU5ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzY3ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzc1ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzg0MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzkyMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2EwMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2FlMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2JjMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2NhNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Q4NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2U2Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Y0OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDAyOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDEwOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDFlYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDJjYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDNhYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDQ4ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDU2ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDgwZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDhmMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDlkMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGFiNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGI5NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGM3Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGQ1Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGUzOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGYxOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGZmYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTBkZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTFiYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTI5ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTM3ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ2MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTYyMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTcwMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTdlMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNThjNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTlhNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWE4Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWI2Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWM0OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWQyOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWUwYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWVlYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWZjYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjBhZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjE4ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjM1MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjQzMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjUxMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjVmMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjZkNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjdiNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjg5Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjk3OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmE1OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmIzOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmMxYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmNmYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmRkYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmViZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmY5ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzE2MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzI0MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzMyMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzQwMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzRlNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzVjNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzZhNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzc4Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzg2OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzk0OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2EyOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2IwYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2JlYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2NjYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2RhZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2Y3MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODA1MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODEzMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODIxMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODJmNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODNkNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODRiNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODU5Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODY3OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODc1OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODgzYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODkxYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODlmYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGFkZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGJiZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGQ4MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGU2MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGY0Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTAyMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTEwNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTFlNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTJjNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTNhOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTQ4OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTU2OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTY0YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTcyYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTgwYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOThlZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTljZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWI5MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWM3MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWQ1Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWUzMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWYxNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWZmNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTBkNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTFiNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTI5OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTM3OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTQ1YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTUzYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTYxYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTZmZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTdlMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThjMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWE4MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWI2Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWM0My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWQyNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWUwNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWVlNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWZjNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjBhOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjI2YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjM0Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjQyYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjUwZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjVlZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjdiMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjg5MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjk3Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmE1My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmIzNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmMxNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmNmNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmRkOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmViOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmY5OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzA3YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzE1Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzIzYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzMxZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzNmZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzVjMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzZhMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzc4Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzg2My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzk0NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2EyNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2IwNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2JlNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2NjOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2RhOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2U4YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2Y2Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDA0Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDEyZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDIwZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDJmMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDNkMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDU5Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDY3My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDc1NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDgzNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDkxNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDlmNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGFkOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGJiOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGM5YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGQ3Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGU1Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGYzZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTAxZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTFkZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTJjMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTNhMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTQ4Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTU2My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTY0NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTcyNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTgwNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZThlNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTljOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWFhOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWI4YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWM2Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWQ0Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWUyZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWZmMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjBkMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjFiMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjI5My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjM3NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjQ1NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjUzNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjYxNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjZmOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjdkOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjhiYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjk5Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmE3Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmI1ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmMzZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmUwMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmVlMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmZjMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAwYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAxOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAyNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAzNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA0Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA2Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA3YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA4OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA5Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBkZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBlYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBmOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEwNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTExNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEyMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE0ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE1Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE2OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE3Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE4NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFhMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFjYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFkYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFlOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFmNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIwNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIxMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIzZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI0Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI1OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI2Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI4My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJhZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJiYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJjOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJkNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJlNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJmMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMxZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMyYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMzOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM2NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM3Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM5Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNhYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNiOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNjNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNkNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNlMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQwYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQxYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQyOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ0NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ1My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ3ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ4Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ5OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRhNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRiNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRjMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRlZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRmYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUwOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUyNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU0Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU2Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU3YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU4OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU5Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTViMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVkYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVlYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYwNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYxNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYyMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY0ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY1Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY2OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY3Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY4NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY5My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZiZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZjYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZlOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZmNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcwNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcxMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTczYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc0YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc1OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc2Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc3NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc4Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdhYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdjOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdkNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdlNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdmMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgxZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgyYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgzOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg2My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg4ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThiOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThjNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThkNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThlMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkwYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkxYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkyOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk0NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk1Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk4Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk5OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTliNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTljMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlmYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEwOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWExNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEyNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEzMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE2Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE3YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE4OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFiMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFkYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFlYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIwNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIxNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM3NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM4Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNhYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNjOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNkNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNlNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNmMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQxZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQyYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQzOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ2My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ4ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ5Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRhOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRiNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRjNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRkMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUwYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUxYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUyOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU0NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU1Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU3Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU4YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU5OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVhNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWViNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVlZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVmYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYwOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYyNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYzMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY1ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY2Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY3OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY4Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY5NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZiMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZkYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZlYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAwNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAxNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAyMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA0Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA1YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA2OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA3Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA5My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBiZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBjYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBkOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBlNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBmNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEwMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEyZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEzYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE0OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE1Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE3NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE4Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFhYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFjOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFkNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFlNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFmMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIxYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIyYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIzOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI2My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI4ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI5Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJhOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJiNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJjNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJkMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJmZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMwYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMxOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM0NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM1Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM3Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM4YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM5OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNhNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNiNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNjMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNlYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNmYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQxNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQyNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQzMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ2Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ3OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ4Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ5NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRhMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRjZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRkYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUwNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUxNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUyMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU0Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU1YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU2OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU3Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU4NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU5Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjViYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVkOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVlNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVmNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYwMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYyZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYzYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY0OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY1Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY2NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY3My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY5ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZjOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZkNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZlNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZmMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcxYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcyYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjczOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc0Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc1NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc2Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nODYwNC4uLicsIDQsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PScyMS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwOCIuLi4nLCAzLCB2PScyMC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMzIuLi4nLCA0LCB2PScxOS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhM2MuLi4nLCA0LCB2PScxOS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4MzUuLi4nLCA0LCB2PScxOC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NDUuLi4nLCA0LCB2PScxOC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NTUuLi4nLCA0LCB2PScyMi4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNjUuLi4nLCA0LCB2PScyNC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwNzUuLi4nLCA0LCB2PScyOS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlODUuLi4nLCA0LCB2PSczNS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOTYuLi4nLCA0LCB2PSczNS4wLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYTUuLi4nLCA0LCB2PSczMy41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YjYuLi4nLCA0LCB2PSczMC43Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2YzUuLi4nLCA0LCB2PScyOS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZDcuLi4nLCA0LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzMGIuLi4nLCA0LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZjYuLi4nLCA0LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMDYuLi4nLCA0LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMTcuLi4nLCA0LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTguLi4nLCA1LCB2PScwLjA3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiM2UuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMWYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDAuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3OGMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI4NmQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI5NGUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiMTAuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiZjEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJjZDIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJkYjMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJlOTQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJmNzUuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMwNTYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMxMzcuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyMTkuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyZjkuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMzZGEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM0YmIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM1OWQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM2N2QuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM3NWUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4NDAuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM5MjEuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhMDEuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhZTIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNiYzMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNjYTQuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNkODUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNlNjYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNmNDguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQwMjguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxMDkuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxZWEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQyY2IuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQzYWMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ0OGQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ1NmUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NGYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4MGYuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4ZjAuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ5ZDEuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRhYjQuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRiOTUuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRjNzYuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRkNTcuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRlMzguLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmMTkuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmZmEuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUwZGQuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUxYmMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUyOWQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUzN2UuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NjAuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU1NDAuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU2MjEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3MDIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3ZTMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU4YzQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU5YTcuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVhODYuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzViNjcuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVjNDguLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVkMjkuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlMGEuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlZWIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVmY2MuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYwYWQuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYxOGUuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNmYuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYzNTAuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY0MzEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1MTIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1ZjMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY2ZDQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY3YjUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY4OTYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY5NzguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZhNTguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZiMzkuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjMWEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjZmIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZkZGMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZlYmQuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZmOWUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwN2YuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcxNjAuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcyNDEuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzczMjIuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0MDMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0ZTQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc1YzUuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc2YTYuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc3ODcuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc4NjguLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc5NDguLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdhMjkuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiMGEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiZWIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdjY2MuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdkYWQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlOGYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzAuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgwNTEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgxMzIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyMTMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyZjQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgzZDUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg0YjYuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg1OTcuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg2NzguLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg3NTkuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg4M2EuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5MWIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5ZmMuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhhZGQuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhiYmUuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOWYuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhkODAuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhlNjEuLi4nLCA1LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhmNDIuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkwMjMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxMDQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxZTUuLi4nLCA1LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkyYzYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkzYTguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk0ODguLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk1NjkuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk2NGEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk3MmIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4MGMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4ZWQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk5Y2UuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYWYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzliOTAuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzljNzEuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlkNTIuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzllMzMuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmMTQuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmZjUuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EwZDYuLi4nLCA1LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ExYjcuLi4nLCA1LCB2PSczMC4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EyOTguLi4nLCA1LCB2PScxNi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EzNzkuLi4nLCA1LCB2PScxMC4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E0NWEuLi4nLCA1LCB2PSczLjgzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E1M2IuLi4nLCA1LCB2PSczLjMwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2MWMuLi4nLCA1LCB2PSc0LjE5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2ZmQuLi4nLCA1LCB2PScyLjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E3ZTAuLi4nLCA1LCB2PSc0LjkxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YzAuLi4nLCA1LCB2PSc3Ljg5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTAuLi4nLCA1LCB2PScyLjkzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FhODEuLi4nLCA1LCB2PScxLjQ4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FiNjIuLi4nLCA1LCB2PScyLjE5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FjNDMuLi4nLCA1LCB2PScxLjY3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FkMjQuLi4nLCA1LCB2PSc1Ljk4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlMDUuLi4nLCA1LCB2PScxMC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlZTYuLi4nLCA1LCB2PSczLjY1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FmYzcuLi4nLCA1LCB2PSc3LjI1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IwYTguLi4nLCA1LCB2PScxOS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IyNmEuLi4nLCA1LCB2PScyMS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IzNGIuLi4nLCA1LCB2PScxOC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I0MmMuLi4nLCA1LCB2PSczLjQ1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1MGQuLi4nLCA1LCB2PSc0LjkxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1ZWUuLi4nLCA1LCB2PSc3LjMzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2Y2YuLi4nLCA1LCB2PSc3LjIwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I3YjAuLi4nLCA1LCB2PSc5LjE5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I4OTEuLi4nLCA1LCB2PSc4LjAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I5NzIuLi4nLCA1LCB2PSc3LjY4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JhNTMuLi4nLCA1LCB2PSc4LjY2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JiMzQuLi4nLCA1LCB2PSc3LjczLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjMTUuLi4nLCA1LCB2PSc1LjE0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjZjYuLi4nLCA1LCB2PSc1LjA4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JkZDguLi4nLCA1LCB2PScxOC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JlYjguLi4nLCA1LCB2PSc0LjY3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JmOTkuLi4nLCA1LCB2PSczLjk3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MwN2EuLi4nLCA1LCB2PScyLjI0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MxNWIuLi4nLCA1LCB2PScyLjUxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MyM2MuLi4nLCA1LCB2PSc0Ljc4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzMWQuLi4nLCA1LCB2PScxMC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzZmUuLi4nLCA1LCB2PSc1Ljg2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZGYuLi4nLCA1LCB2PSc5LjY2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M1YzAuLi4nLCA1LCB2PSc1LjE5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M2YTEuLi4nLCA1LCB2PSc1LjM1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M3ODIuLi4nLCA1LCB2PSc3Ljc0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M4NjMuLi4nLCA1LCB2PSczLjY1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M5NDQuLi4nLCA1LCB2PSc0LjIzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NhMjUuLi4nLCA1LCB2PSczLjI4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiMDYuLi4nLCA1LCB2PSc1LjY1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiZTcuLi4nLCA1LCB2PScyLjI0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NjYzguLi4nLCA1LCB2PScxMi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NkYTkuLi4nLCA1LCB2PScxNS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NlOGEuLi4nLCA1LCB2PScxMS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NmNmIuLi4nLCA1LCB2PScxNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QwNGMuLi4nLCA1LCB2PScxMi4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QxMmQuLi4nLCA1LCB2PSc4LjUzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyMGUuLi4nLCA1LCB2PScxLjQ3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyZjAuLi4nLCA1LCB2PSc3LjQ0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzZDAuLi4nLCA1LCB2PSc0LjI2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q0YjEuLi4nLCA1LCB2PSczLjgwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q1OTIuLi4nLCA1LCB2PSczLjc1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q2NzMuLi4nLCA1LCB2PSc1LjUzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q3NTQuLi4nLCA1LCB2PSc5LjUyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q4MzUuLi4nLCA1LCB2PScxLjk4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5MTYuLi4nLCA1LCB2PSc0LjE1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5ZjcuLi4nLCA1LCB2PSc5LjYyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RhZDguLi4nLCA1LCB2PScxNy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RiYjkuLi4nLCA1LCB2PScxOS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RjOWEuLi4nLCA1LCB2PScxOS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RkN2IuLi4nLCA1LCB2PScxNC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RlNWMuLi4nLCA1LCB2PScxMi44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RmM2QuLi4nLCA1LCB2PScxMy4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwMWQuLi4nLCA1LCB2PScxMy40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZmUuLi4nLCA1LCB2PScxMy4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UxZGYuLi4nLCA1LCB2PScxMy45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UyYzAuLi4nLCA1LCB2PScxOC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UzYTEuLi4nLCA1LCB2PScxNy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U0ODIuLi4nLCA1LCB2PScxNS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U1NjMuLi4nLCA1LCB2PScxNS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U2NDQuLi4nLCA1LCB2PScxMS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U3MjUuLi4nLCA1LCB2PSc5Ljg5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4MDYuLi4nLCA1LCB2PSc3Ljk5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4ZTcuLi4nLCA1LCB2PScxMy44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U5YzguLi4nLCA1LCB2PSc2LjMzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VhYTkuLi4nLCA1LCB2PSc1LjYzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ViOGEuLi4nLCA1LCB2PSc3LjM2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VjNmIuLi4nLCA1LCB2PScxNC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VkNGMuLi4nLCA1LCB2PSc5LjY3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VlMmQuLi4nLCA1LCB2PScxMi44Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMGUuLi4nLCA1LCB2PScxNC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmZjAuLi4nLCA1LCB2PScyMS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YwZDEuLi4nLCA1LCB2PScyMS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YxYjIuLi4nLCA1LCB2PScyMi45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YyOTMuLi4nLCA1LCB2PScyMC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YzNzQuLi4nLCA1LCB2PScyMi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y0NTUuLi4nLCA1LCB2PScyMi41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y1MzYuLi4nLCA1LCB2PScyNC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2MTcuLi4nLCA1LCB2PScyMy4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2ZjguLi4nLCA1LCB2PScyMy40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y3ZDkuLi4nLCA1LCB2PScyMi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y4YmEuLi4nLCA1LCB2PScxOC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y5OWIuLi4nLCA1LCB2PScxOC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZhN2MuLi4nLCA1LCB2PScxNS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZiNWQuLi4nLCA1LCB2PScxNi4zLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZjM2UuLi4nLCA1LCB2PScxNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMWYuLi4nLCA1LCB2PScxMi4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlMDAuLi4nLCA1LCB2PScxMi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTEuLi4nLCA1LCB2PSc4Ljk0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZmYzIuLi4nLCA1LCB2PSc4LjgzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMGEuLi4nLCA2LCB2PSc4Ljc5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMTguLi4nLCA2LCB2PScxMC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMjYuLi4nLCA2LCB2PScxMy45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMzQuLi4nLCA2LCB2PScxNS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNDIuLi4nLCA2LCB2PScxOS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNTAuLi4nLCA2LCB2PScyMi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNWUuLi4nLCA2LCB2PScyMS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNmMuLi4nLCA2LCB2PScyMy4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwN2EuLi4nLCA2LCB2PScyMC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwODguLi4nLCA2LCB2PScxOC41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwOTYuLi4nLCA2LCB2PScyMC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYTQuLi4nLCA2LCB2PScxOS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA2LCB2PScyMS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYzEuLi4nLCA2LCB2PScyMy45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwY2YuLi4nLCA2LCB2PScyMS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZGQuLi4nLCA2LCB2PScxOS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZWIuLi4nLCA2LCB2PScyMC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZjkuLi4nLCA2LCB2PScxNy4zLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMDcuLi4nLCA2LCB2PScxNi41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMTUuLi4nLCA2LCB2PScxMy4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMjMuLi4nLCA2LCB2PScxMi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMzEuLi4nLCA2LCB2PSc4Ljk2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExM2YuLi4nLCA2LCB2PSc4LjMxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNGQuLi4nLCA2LCB2PSc4LjM1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNWIuLi4nLCA2LCB2PSc4LjQ5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNjkuLi4nLCA2LCB2PScxMC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNzcuLi4nLCA2LCB2PScxMy45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExODUuLi4nLCA2LCB2PScxNS40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA2LCB2PScxOC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYTIuLi4nLCA2LCB2PScyMi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYjAuLi4nLCA2LCB2PScxOS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYmUuLi4nLCA2LCB2PScyMy40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExY2MuLi4nLCA2LCB2PScyMC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZGEuLi4nLCA2LCB2PScxOS44Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZTguLi4nLCA2LCB2PScyMC44Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZjYuLi4nLCA2LCB2PScxOC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMDUuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMTMuLi4nLCA2LCB2PScwLjAyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMjEuLi4nLCA2LCB2PScwLjAyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMmYuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyM2QuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNGIuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNTkuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNjcuLi4nLCA2LCB2PScwLjAxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzYuLi4nLCA2LCB2PScwLjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyODMuLi4nLCA2LCB2PScwLjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PScwLjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOWYuLi4nLCA2LCB2PScwLjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYWQuLi4nLCA2LCB2PScwLjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYmIuLi4nLCA2LCB2PScwLjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYzkuLi4nLCA2LCB2PScwLjAxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZDcuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZTUuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZjMuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMDEuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMGYuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMWQuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMmIuLi4nLCA2LCB2PScwLjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMzkuLi4nLCA2LCB2PScwLjI2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNDcuLi4nLCA2LCB2PScwLjEyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA2LCB2PScwLjE2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNjQuLi4nLCA2LCB2PScwLjIyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNzIuLi4nLCA2LCB2PScwLjI0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzODAuLi4nLCA2LCB2PScwLjIzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOGUuLi4nLCA2LCB2PScwLjIzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOWMuLi4nLCA2LCB2PScwLjA3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYWEuLi4nLCA2LCB2PScwLjA4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYjguLi4nLCA2LCB2PScwLjAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYzYuLi4nLCA2LCB2PScwLjQxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZDQuLi4nLCA2LCB2PScwLjE5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZTIuLi4nLCA2LCB2PScwLjE1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZjAuLi4nLCA2LCB2PScwLjE0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZmUuLi4nLCA2LCB2PScwLjIxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MGMuLi4nLCA2LCB2PScwLjMwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MWEuLi4nLCA2LCB2PScwLjIwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MjguLi4nLCA2LCB2PScwLjAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA2LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NDUuLi4nLCA2LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NTMuLi4nLCA2LCB2PScwLjAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NjEuLi4nLCA2LCB2PScwLjAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NmYuLi4nLCA2LCB2PScwLjA5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0N2QuLi4nLCA2LCB2PScwLjAzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OGIuLi4nLCA2LCB2PScwLjAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OTkuLi4nLCA2LCB2PScwLjAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YTcuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YjUuLi4nLCA2LCB2PScwLjA4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YzMuLi4nLCA2LCB2PScwLjI1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZDEuLi4nLCA2LCB2PScwLjIyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZGYuLi4nLCA2LCB2PScwLjE5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZWQuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZmIuLi4nLCA2LCB2PScwLjA0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MDkuLi4nLCA2LCB2PScwLjAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTcuLi4nLCA2LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MjYuLi4nLCA2LCB2PScwLjE1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MzQuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NDIuLi4nLCA2LCB2PScwLjA5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NTAuLi4nLCA2LCB2PScwLjEyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NWUuLi4nLCA2LCB2PScwLjE4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NmMuLi4nLCA2LCB2PScwLjI4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1N2EuLi4nLCA2LCB2PScwLjE2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ODguLi4nLCA2LCB2PScwLjE1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1OTYuLi4nLCA2LCB2PScwLjI0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YTQuLi4nLCA2LCB2PScwLjIxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YjIuLi4nLCA2LCB2PScwLjE4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YzAuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1Y2UuLi4nLCA2LCB2PScwLjA5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZGMuLi4nLCA2LCB2PScwLjA5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZWEuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA2LCB2PScwLjI5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MDcuLi4nLCA2LCB2PScwLjA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MTUuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MjMuLi4nLCA2LCB2PScwLjA3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MzEuLi4nLCA2LCB2PScwLjA2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2M2YuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NGQuLi4nLCA2LCB2PScwLjA0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NWIuLi4nLCA2LCB2PScwLjAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NjkuLi4nLCA2LCB2PScwLjA1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NzcuLi4nLCA2LCB2PScwLjA3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ODUuLi4nLCA2LCB2PScwLjAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2OTMuLi4nLCA2LCB2PScwLjAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YTEuLi4nLCA2LCB2PScwLjAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YWYuLi4nLCA2LCB2PScwLjA3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YmQuLi4nLCA2LCB2PScwLjE3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2Y2IuLi4nLCA2LCB2PScwLjIyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZTguLi4nLCA2LCB2PScwLjU3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZjYuLi4nLCA2LCB2PScwLjYzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MDQuLi4nLCA2LCB2PScwLjY3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MTIuLi4nLCA2LCB2PScwLjQ1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MjAuLi4nLCA2LCB2PScwLjQ2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MmUuLi4nLCA2LCB2PScwLjQ3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3M2MuLi4nLCA2LCB2PScwLjQ4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NGEuLi4nLCA2LCB2PScwLjU2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NTguLi4nLCA2LCB2PScwLjU5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NjYuLi4nLCA2LCB2PSczNC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NzQuLi4nLCA2LCB2PSczMy4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ODIuLi4nLCA2LCB2PSczNC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OTAuLi4nLCA2LCB2PSczMS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OWUuLi4nLCA2LCB2PScyNi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YWMuLi4nLCA2LCB2PScyNi44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA2LCB2PScyOC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YzkuLi4nLCA2LCB2PScyNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PScyNC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZTUuLi4nLCA2LCB2PScyNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZjMuLi4nLCA2LCB2PScyMi45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MDEuLi4nLCA2LCB2PScyMi45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MGYuLi4nLCA2LCB2PScyOC4wLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MWQuLi4nLCA2LCB2PSczMC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MmIuLi4nLCA2LCB2PSczNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MzkuLi4nLCA2LCB2PSc2MS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NDcuLi4nLCA2LCB2PSc2MS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NTUuLi4nLCA2LCB2PSc1OC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NjMuLi4nLCA2LCB2PSc1NC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NzEuLi4nLCA2LCB2PSc1Ni4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4N2YuLi4nLCA2LCB2PSc1My43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OGQuLi4nLCA2LCB2PSc1Ny4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWMuLi4nLCA2LCB2PSc1My41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YjguLi4nLCA2LCB2PSczNi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YzYuLi4nLCA2LCB2PSczNi42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZDQuLi4nLCA2LCB2PSczNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZTIuLi4nLCA2LCB2PScyOS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZjAuLi4nLCA2LCB2PScyOC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZmUuLi4nLCA2LCB2PScyNS4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MGMuLi4nLCA2LCB2PScxOS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MWEuLi4nLCA2LCB2PScxOS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MjguLi4nLCA2LCB2PScxOS4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MzYuLi4nLCA2LCB2PScxOC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NDQuLi4nLCA2LCB2PScxOC4xLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NTIuLi4nLCA2LCB2PScyMC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NjAuLi4nLCA2LCB2PScyNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NmUuLi4nLCA2LCB2PScyNy41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA2LCB2PScyOS40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OGIuLi4nLCA2LCB2PScyNy4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OTkuLi4nLCA2LCB2PSczMC41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YjUuLi4nLCA2LCB2PScyOS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YzMuLi4nLCA2LCB2PScyOC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZDEuLi4nLCA2LCB2PScyOC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZGYuLi4nLCA2LCB2PScyOC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWQuLi4nLCA2LCB2PScyOC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWUuLi4nLCA2LCB2PScyOC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZmIuLi4nLCA2LCB2PScxMS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMDkuLi4nLCA2LCB2PScxNC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMTcuLi4nLCA2LCB2PScxOS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMjUuLi4nLCA2LCB2PScyMC4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMzMuLi4nLCA2LCB2PScxMS4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNDEuLi4nLCA2LCB2PScxMi4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNGYuLi4nLCA2LCB2PScxNi41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWUuLi4nLCA2LCB2PScxNS4xLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNmMuLi4nLCA2LCB2PSc5Ljk1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhN2EuLi4nLCA2LCB2PScxMi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhODguLi4nLCA2LCB2PScxMi45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PSc5LjY4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYTQuLi4nLCA2LCB2PSc2LjgwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYjIuLi4nLCA2LCB2PSc0LjU1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYzAuLi4nLCA2LCB2PScxMC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhY2UuLi4nLCA2LCB2PScxNC42Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZGMuLi4nLCA2LCB2PScxNC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZWEuLi4nLCA2LCB2PScxMy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZjguLi4nLCA2LCB2PScxNS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMDYuLi4nLCA2LCB2PScxMy4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMTQuLi4nLCA2LCB2PScxMi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PSczLjk5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjODIuLi4nLCA2LCB2PScyLjE4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOTAuLi4nLCA2LCB2PScxNi41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOWUuLi4nLCA2LCB2PScxNC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYWMuLi4nLCA2LCB2PScxNi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYmEuLi4nLCA2LCB2PScxNS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYzguLi4nLCA2LCB2PScyOS4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZDYuLi4nLCA2LCB2PScyNy42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZTQuLi4nLCA2LCB2PScyNS40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZjIuLi4nLCA2LCB2PScyNC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDEuLi4nLCA2LCB2PScyNS4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMGYuLi4nLCA2LCB2PScyOC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMWQuLi4nLCA2LCB2PScyOC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMmIuLi4nLCA2LCB2PScyOC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMzkuLi4nLCA2LCB2PSczMC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNDcuLi4nLCA2LCB2PSczMC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNTUuLi4nLCA2LCB2PSczMC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNjMuLi4nLCA2LCB2PScyNC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNzEuLi4nLCA2LCB2PScyMy44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkN2YuLi4nLCA2LCB2PScyMy44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOGQuLi4nLCA2LCB2PScxNS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOWIuLi4nLCA2LCB2PScxNi42Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYTkuLi4nLCA2LCB2PScxNi4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYjcuLi4nLCA2LCB2PScxNS42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYzUuLi4nLCA2LCB2PScxNi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZDMuLi4nLCA2LCB2PScxNi42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA2LCB2PScyNy44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZjAuLi4nLCA2LCB2PSczMS40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZmUuLi4nLCA2LCB2PSczMS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMGMuLi4nLCA2LCB2PSczMi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMWEuLi4nLCA2LCB2PSczMS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMjguLi4nLCA2LCB2PSczMC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMzYuLi4nLCA2LCB2PScyOS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNDQuLi4nLCA2LCB2PScyNy4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNTIuLi4nLCA2LCB2PScyMy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNjAuLi4nLCA2LCB2PScyMy41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNmUuLi4nLCA2LCB2PScyMy4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlN2MuLi4nLCA2LCB2PSc4LjU3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOGEuLi4nLCA2LCB2PSc3LjkxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOTguLi4nLCA2LCB2PSc3Ljg1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYTYuLi4nLCA2LCB2PSc5Ljg0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYjQuLi4nLCA2LCB2PScxMC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA2LCB2PScxMS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZDEuLi4nLCA2LCB2PScxMS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZGYuLi4nLCA2LCB2PScxMi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZWQuLi4nLCA2LCB2PScxMS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZmIuLi4nLCA2LCB2PScxMS40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMDkuLi4nLCA2LCB2PScxMC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PScxMC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMjUuLi4nLCA2LCB2PScxMC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMzMuLi4nLCA2LCB2PScxMy42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNDEuLi4nLCA2LCB2PScxOS4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNGYuLi4nLCA2LCB2PScxNi4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNWQuLi4nLCA2LCB2PScxNS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNmIuLi4nLCA2LCB2PScxNS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNzkuLi4nLCA2LCB2PScxNC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmODcuLi4nLCA2LCB2PScxNS43Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmOTUuLi4nLCA2LCB2PScxNi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTQuLi4nLCA2LCB2PScxMy4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYjIuLi4nLCA2LCB2PScxMS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYzAuLi4nLCA2LCB2PScxMS42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmY2UuLi4nLCA2LCB2PSc5LjI0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZGMuLi4nLCA2LCB2PSc4Ljk2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZWEuLi4nLCA2LCB2PSc5LjQyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZjguLi4nLCA2LCB2PScxMS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMDYuLi4nLCA2LCB2PScxOC4wLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMTQuLi4nLCA2LCB2PScxNS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMjIuLi4nLCA2LCB2PScyMy4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMzAuLi4nLCA2LCB2PScyNi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwM2UuLi4nLCA2LCB2PScyOS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNGMuLi4nLCA2LCB2PScyNS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNWEuLi4nLCA2LCB2PScyNS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNjguLi4nLCA2LCB2PScyNi40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNzYuLi4nLCA2LCB2PSczMC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA2LCB2PScyOC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwOTMuLi4nLCA2LCB2PSczMC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYTEuLi4nLCA2LCB2PScyOC41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYWYuLi4nLCA2LCB2PScyNC41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYmQuLi4nLCA2LCB2PScyMy45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwY2IuLi4nLCA2LCB2PScyMS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZDkuLi4nLCA2LCB2PScxOS42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZTcuLi4nLCA2LCB2PScxOC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZjUuLi4nLCA2LCB2PScxNy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMDMuLi4nLCA2LCB2PScxNS4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMTEuLi4nLCA2LCB2PScxMy40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMWYuLi4nLCA2LCB2PScxMy4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMmQuLi4nLCA2LCB2PScxMi44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxM2IuLi4nLCA2LCB2PScxMy41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNDkuLi4nLCA2LCB2PScxNy4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNTcuLi4nLCA2LCB2PScyMS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA2LCB2PScyNS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNzQuLi4nLCA2LCB2PScyNy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxODIuLi4nLCA2LCB2PScyOC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOTAuLi4nLCA2LCB2PScyNy42Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOWUuLi4nLCA2LCB2PScyOC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYWMuLi4nLCA2LCB2PScyNy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYmEuLi4nLCA2LCB2PScyNy45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYzguLi4nLCA2LCB2PScyOC4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZDYuLi4nLCA2LCB2PScyNy41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZTQuLi4nLCA2LCB2PScyNi4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZjIuLi4nLCA2LCB2PScyNS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMDAuLi4nLCA2LCB2PScyNC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMGUuLi4nLCA2LCB2PScyNC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMWMuLi4nLCA2LCB2PScyMi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMmEuLi4nLCA2LCB2PScxNy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMzguLi4nLCA2LCB2PScxNi4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDcuLi4nLCA2LCB2PScxNC41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNTUuLi4nLCA2LCB2PScxOC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNjMuLi4nLCA2LCB2PScxMC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNzEuLi4nLCA2LCB2PScxMC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyN2YuLi4nLCA2LCB2PScxMy4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOGQuLi4nLCA2LCB2PScxNy4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOWIuLi4nLCA2LCB2PScxNS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYTkuLi4nLCA2LCB2PScxNy42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYjcuLi4nLCA2LCB2PScyMS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYzUuLi4nLCA2LCB2PScyNC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZDMuLi4nLCA2LCB2PScyNi44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZTEuLi4nLCA2LCB2PScyNy4wLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZWYuLi4nLCA2LCB2PScyMi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZmQuLi4nLCA2LCB2PScyMS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMGIuLi4nLCA2LCB2PScyMC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMTkuLi4nLCA2LCB2PScyNS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA2LCB2PScyNS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMzYuLi4nLCA2LCB2PScyNy42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNDQuLi4nLCA2LCB2PScyNS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNTIuLi4nLCA2LCB2PScyNC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNjAuLi4nLCA2LCB2PScyMy44Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNmUuLi4nLCA2LCB2PScyMi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzN2MuLi4nLCA2LCB2PScyMC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOGEuLi4nLCA2LCB2PScxOC4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOTguLi4nLCA2LCB2PScxNC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYTYuLi4nLCA2LCB2PScxNC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYjQuLi4nLCA2LCB2PScxNC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYzIuLi4nLCA2LCB2PScxMy4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZDAuLi4nLCA2LCB2PScxMy43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZGUuLi4nLCA2LCB2PScxNS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZWMuLi4nLCA2LCB2PScxNy4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZmEuLi4nLCA2LCB2PScyMC42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA2LCB2PScyNC44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MTcuLi4nLCA2LCB2PSczMi45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MjUuLi4nLCA2LCB2PSczNC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MzMuLi4nLCA2LCB2PSczNC43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NDEuLi4nLCA2LCB2PSczMS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NGYuLi4nLCA2LCB2PScyOS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PSczMC41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NzkuLi4nLCA2LCB2PScyOS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ODcuLi4nLCA2LCB2PSczNC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0OTUuLi4nLCA2LCB2PScyOC43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YTMuLi4nLCA2LCB2PScyNS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YjEuLi4nLCA2LCB2PScyNi4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YmYuLi4nLCA2LCB2PScyNC43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0Y2QuLi4nLCA2LCB2PScyNC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZGIuLi4nLCA2LCB2PScyMC4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA2LCB2PScxOC4yLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZjguLi4nLCA2LCB2PScxNS4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MDYuLi4nLCA2LCB2PScxNS45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MTQuLi4nLCA2LCB2PScxNS44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MjIuLi4nLCA2LCB2PScxNS4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MzAuLi4nLCA2LCB2PScxNi4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1M2UuLi4nLCA2LCB2PScxOS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NGMuLi4nLCA2LCB2PScyMC4wLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NWEuLi4nLCA2LCB2PScyMy45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NjguLi4nLCA2LCB2PScyOS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NzYuLi4nLCA2LCB2PSczMS42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ODQuLi4nLCA2LCB2PSc3NS4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1OTIuLi4nLCA2LCB2PSc0MS40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YTAuLi4nLCA2LCB2PScyMS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YWUuLi4nLCA2LCB2PScyOS40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YmMuLi4nLCA2LCB2PScyOC41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA2LCB2PScyNy4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZDkuLi4nLCA2LCB2PScyOC45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZTcuLi4nLCA2LCB2PScyOS4zLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZjUuLi4nLCA2LCB2PScyNi41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MDMuLi4nLCA2LCB2PScyNS4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MTEuLi4nLCA2LCB2PScyMy4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MWYuLi4nLCA2LCB2PScyMS4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MmQuLi4nLCA2LCB2PScyMC43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2M2IuLi4nLCA2LCB2PScxNi4zLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NDkuLi4nLCA2LCB2PScxNS42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NTcuLi4nLCA2LCB2PScxNi42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NjUuLi4nLCA2LCB2PScxNy44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NzMuLi4nLCA2LCB2PScxNi44Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ODEuLi4nLCA2LCB2PScxNi42Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OGYuLi4nLCA2LCB2PScxNy40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OWQuLi4nLCA2LCB2PScxOC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA2LCB2PScxOC40Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YmEuLi4nLCA2LCB2PScyMi4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YzguLi4nLCA2LCB2PScyMi4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZDYuLi4nLCA2LCB2PScyNS43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZTQuLi4nLCA2LCB2PScyMi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZjIuLi4nLCA2LCB2PScyMi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MDAuLi4nLCA2LCB2PScyMi45Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PScyMy4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MWMuLi4nLCA2LCB2PScyMS41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MmEuLi4nLCA2LCB2PScyMy41Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MzguLi4nLCA2LCB2PScyMy4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NDYuLi4nLCA2LCB2PScyMi43Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NTQuLi4nLCA2LCB2PScyMi4zLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NjIuLi4nLCA2LCB2PScyMy4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NzAuLi4nLCA2LCB2PScxOC4yLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3N2UuLi4nLCA2LCB2PScxNC4xLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9Jzk4MTIuLi4nLCA0LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nMTE0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDgiLi4uJywgMywgdj0nMTE3Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzMyLi4uJywgNCwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTNjLi4uJywgNCwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODM1Li4uJywgNCwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjQ1Li4uJywgNCwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDU1Li4uJywgNCwgdj0nMTA5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjY1Li4uJywgNCwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDc1Li4uJywgNCwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZTg1Li4uJywgNCwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Yzk2Li4uJywgNCwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWE1Li4uJywgNCwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGI2Li4uJywgNCwgdj0nMTI0Li4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmM1Li4uJywgNCwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGQ3Li4uJywgNCwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMzBiLi4uJywgNCwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGY2Li4uJywgNCwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjA2Li4uJywgNCwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDE3Li4uJywgNCwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc0Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE4Li4uJywgNSwgdj0nMTI3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNSwgdj0nMTIxLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODliLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVkLi4uJywgNSwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjNlLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzFmLi4uJywgNSwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAwLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmEzLi4uJywgNSwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ2Li4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzhjLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyODZkLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyOTRlLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYjEwLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYmYxLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyY2QyLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZGIzLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZTk0Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZjc1Li4uJywgNSwgdj0nMTEzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMDU2Li4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMTM3Li4uJywgNSwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMjE5Li4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMmY5Li4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczM2RhLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNGJiLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNTlkLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNjdkLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNzVlLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODQwLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczOTIxLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYTAxLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYWUyLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYmMzLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczY2E0Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZDg1Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZTY2Li4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZjQ4Li4uJywgNSwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MDI4Li4uJywgNSwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MTA5Li4uJywgNSwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MWVhLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MmNiLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0M2FjLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NDhkLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NTZlLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjRmLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ODBmLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OGYwLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OWQxLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0YWI0Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yjk1Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yzc2Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZDU3Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZTM4Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZjE5Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZmZhLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MGRkLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MWJjLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MjlkLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MzdlLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDYwLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQwLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NjIxLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NzAyLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1N2UzLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OGM0Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OWE3Li4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YTg2Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YjY3Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YzQ4Li4uJywgNSwgdj0nMTE1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZDI5Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZTBhLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZWViLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZmNjLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MGFkLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MThlLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjZmLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MzUwLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NDMxLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NTEyLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NWYzLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NmQ0Li4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2N2I1Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ODk2Li4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2OTc4Li4uJywgNSwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YTU4Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YjM5Li4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YzFhLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2Y2ZiLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZGRjLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZWJkLi4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZjllLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDdmLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MTYwLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MjQxLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MzIyLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NDAzLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NGU0Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NWM1Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NmE2Li4uJywgNSwgdj0nMTE4Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Nzg3Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ODY4Li4uJywgNSwgdj0nMTEzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3OTQ4Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YTI5Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YjBhLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YmViLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Y2NjLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZGFkLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZThmLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcwLi4uJywgNSwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MDUxLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MTMyLi4uJywgNSwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MjEzLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MmY0Li4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4M2Q1Li4uJywgNSwgdj0nMTIwLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NGI2Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NTk3Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Njc4Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NzU5Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ODNhLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OTFiLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OWZjLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YWRkLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YmJlLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YzlmLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZDgwLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZTYxLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZjQyLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MDIzLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MTA0Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MWU1Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MmM2Li4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5M2E4Li4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NDg4Li4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NTY5Li4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NjRhLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NzJiLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ODBjLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OGVkLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OWNlLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWFmLi4uJywgNSwgdj0nMTE4Li4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YjkwLi4uJywgNSwgdj0nMTE1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YzcxLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZDUyLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZTMzLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZjE0Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZmY1Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMGQ2Li4uJywgNSwgdj0nMTE2Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMWI3Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMjk4Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMzc5Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNDVhLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNTNiLi4uJywgNSwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNjFjLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNmZkLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhN2UwLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGMwLi4uJywgNSwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWEwLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYTgxLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYjYyLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYzQzLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZDI0Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZTA1Li4uJywgNSwgdj0nMTE0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZWU2Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZmM3Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMGE4Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMjZhLi4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMzRiLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNDJjLi4uJywgNSwgdj0nMTE1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNTBkLi4uJywgNSwgdj0nMTE1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNWVlLi4uJywgNSwgdj0nMTE0Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmNmLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiN2IwLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiODkxLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiOTcyLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYTUzLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYjM0Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYzE1Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiY2Y2Li4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZGQ4Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZWI4Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZjk5Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMDdhLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMTViLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMjNjLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMzFkLi4uJywgNSwgdj0nMTE1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjM2ZlLi4uJywgNSwgdj0nMTE3Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGRmLi4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNWMwLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNmExLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNzgyLi4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjODYzLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjOTQ0Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYTI1Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYjA2Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYmU3Li4uJywgNSwgdj0nMTIyLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjY2M4Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZGE5Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZThhLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZjZiLi4uJywgNSwgdj0nMTE4Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMDRjLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMTJkLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMjBlLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMmYwLi4uJywgNSwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkM2QwLi4uJywgNSwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIxLi4uJywgNSwgdj0nMTIwLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNTkyLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNjczLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNzU0Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkODM1Li4uJywgNSwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOTE2Li4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOWY3Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYWQ4Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYmI5Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYzlhLi4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZDdiLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZTVjLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZjNkLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDFkLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGZlLi4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMWRmLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMmMwLi4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlM2ExLi4uJywgNSwgdj0nMTIxLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNDgyLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNTYzLi4uJywgNSwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNjQ0Li4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNzI1Li4uJywgNSwgdj0nMTIyLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlODA2Li4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOGU3Li4uJywgNSwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOWM4Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYWE5Li4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYjhhLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYzZiLi4uJywgNSwgdj0nMTEzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZDRjLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZTJkLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjBlLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZmYwLi4uJywgNSwgdj0nMTE1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMGQxLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMWIyLi4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMjkzLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMzc0Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNDU1Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNTM2Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNjE3Li4uJywgNSwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNmY4Li4uJywgNSwgdj0nMTE3Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmN2Q5Li4uJywgNSwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOGJhLi4uJywgNSwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOTliLi4uJywgNSwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYTdjLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYjVkLi4uJywgNSwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYzNlLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDFmLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZTAwLi4uJywgNSwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUxLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZmMyLi4uJywgNSwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDBhLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDE4Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDI2Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDM0Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDQyLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDUwLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDVlLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDZjLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDdhLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDg4Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDk2Li4uJywgNiwgdj0nMTE4Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGE0Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGMxLi4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGNmLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGRkLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGViLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGY5Li4uJywgNiwgdj0nMTIxLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTA3Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTE1Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTIzLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTMxLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTNmLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTRkLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTViLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTY5Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTc3Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTg1Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWEyLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWIwLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWJlLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWNjLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWRhLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWU4Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWY2Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjA1Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjEzLi4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjIxLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjJmLi4uJywgNiwgdj0nMTE4Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjNkLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjRiLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjU5Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjY3Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc2Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjgzLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjlmLi4uJywgNiwgdj0nMTI1Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmFkLi4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmJiLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmM5Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmQ3Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmU1Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmYzLi4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzAxLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzBmLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzFkLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzJiLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzM5Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzQ3Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzY0Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzcyLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzgwLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzhlLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzljLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2FhLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2I4Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2M2Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2Q0Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2UyLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2YwLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2ZlLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDBjLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDFhLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDI4Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDQ1Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDUzLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDYxLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDZmLi4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDdkLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDhiLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDk5Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGE3Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGI1Li4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGMzLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGQxLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGRmLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGVkLi4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGZiLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTA5Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE3Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTI2Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTQyLi4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTUwLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTVlLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTZjLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTdhLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTg4Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTk2Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWE0Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWIyLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWMwLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWNlLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWRjLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWVhLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjA3Li4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjE1Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjIzLi4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjMxLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjNmLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjRkLi4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjViLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjY5Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjc3Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjg1Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjkzLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmExLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmFmLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmJkLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmNiLi4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmU4Li4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmY2Li4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzA0Li4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzEyLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzIwLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzJlLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzNjLi4uJywgNiwgdj0nMC4xMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzRhLi4uJywgNiwgdj0nMC4xMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzU4Li4uJywgNiwgdj0nMC4xMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzY2Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzc0Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzgyLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzkwLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzllLi4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2FjLi4uJywgNiwgdj0nMTI3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNiwgdj0nMTI4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2M5Li4uJywgNiwgdj0nMTI3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nMTI3Li4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2U1Li4uJywgNiwgdj0nMTI3Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2YzLi4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODAxLi4uJywgNiwgdj0nMTI0Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODBmLi4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODFkLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODJiLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODM5Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODQ3Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODU1Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODYzLi4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODcxLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODdmLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODhkLi4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODljLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGI4Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGM2Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGQ0Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGUyLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGYwLi4uJywgNiwgdj0nMTIzLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGZlLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTBjLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTFhLi4uJywgNiwgdj0nMTI0Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTI4Li4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTM2Li4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTQ0Li4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTUyLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTYwLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTZlLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOThiLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTk5Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWI1Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWMzLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWQxLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWRmLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVkLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVlLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWZiLi4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTA5Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTE3Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTI1Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTMzLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTQxLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTRmLi4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVlLi4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTZjLi4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTdhLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTg4Li4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWE0Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWIyLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWMwLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWNlLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWRjLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWVhLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWY4Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjA2Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjE0Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzgyLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzkwLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzllLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2FjLi4uJywgNiwgdj0nMTIxLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2JhLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2M4Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2Q2Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2U0Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2YyLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAxLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDBmLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDFkLi4uJywgNiwgdj0nMTIzLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDJiLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDM5Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDQ3Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDU1Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDYzLi4uJywgNiwgdj0nMTIzLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDcxLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDdmLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDhkLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDliLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGE5Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGI3Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGM1Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGQzLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGYwLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGZlLi4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTBjLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTFhLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTI4Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTM2Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTQ0Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTUyLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTYwLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTZlLi4uJywgNiwgdj0nMTIyLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTdjLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZThhLi4uJywgNiwgdj0nMTIzLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTk4Li4uJywgNiwgdj0nMTIyLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWE2Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWI0Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWQxLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWRmLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWVkLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWZiLi4uJywgNiwgdj0nMTIzLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjA5Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjI1Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjMzLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjQxLi4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjRmLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjVkLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjZiLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjc5Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjg3Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjk1Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmE0Li4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmIyLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmMwLi4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmNlLi4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmRjLi4uJywgNiwgdj0nMTI1Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmVhLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmY4Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDA2Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDE0Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDIyLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDMwLi4uJywgNiwgdj0nMTIwLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDNlLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDRjLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDVhLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDY4Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDc2Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDkzLi4uJywgNiwgdj0nMTIxLi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGExLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGFmLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGJkLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGNiLi4uJywgNiwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGQ5Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGU3Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGY1Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTAzLi4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTExLi4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTFmLi4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTJkLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTNiLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTQ5Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTU3Li4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTc0Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTgyLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTkwLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTllLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWFjLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWM4Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWQ2Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWU0Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWYyLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjAwLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjBlLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjFjLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjJhLi4uJywgNiwgdj0nMTIwLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjM4Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ3Li4uJywgNiwgdj0nMTI2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjU1Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjYzLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjcxLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjdmLi4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjhkLi4uJywgNiwgdj0nMTE2Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjliLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmE5Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmI3Li4uJywgNiwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmM1Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmQzLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmUxLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmVmLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmZkLi4uJywgNiwgdj0nMTIwLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzBiLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzE5Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzM2Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzQ0Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzUyLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzYwLi4uJywgNiwgdj0nMTIwLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzZlLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzdjLi4uJywgNiwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzhhLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzk4Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2E2Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2I0Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2MyLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2QwLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2RlLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2VjLi4uJywgNiwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2ZhLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDE3Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDI1Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDMzLi4uJywgNiwgdj0nMTE4Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDQxLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDRmLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nMTE4Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDc5Li4uJywgNiwgdj0nMTE4Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDg3Li4uJywgNiwgdj0nMTE1Li4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDk1Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGEzLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGIxLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGJmLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGNkLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGRiLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGY4Li4uJywgNiwgdj0nMTI0Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTA2Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTE0Li4uJywgNiwgdj0nMTI1Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTIyLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTMwLi4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTNlLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTRjLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTVhLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTY4Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTc2Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTg0Li4uJywgNiwgdj0nMTE3Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTkyLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWEwLi4uJywgNiwgdj0nMTE5Li4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWFlLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWJjLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWQ5Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWU3Li4uJywgNiwgdj0nMTE5Li4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWY1Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjAzLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjExLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjFmLi4uJywgNiwgdj0nMTIwLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjJkLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjNiLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjQ5Li4uJywgNiwgdj0nMTIyLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjU3Li4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjY1Li4uJywgNiwgdj0nMTI0Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjczLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjgxLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjhmLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjlkLi4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmJhLi4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmM4Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmQ2Li4uJywgNiwgdj0nMTE4Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmU0Li4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmYyLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzAwLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzFjLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzJhLi4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzM4Li4uJywgNiwgdj0nMTIwLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzQ2Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzU0Li4uJywgNiwgdj0nMTIxLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzYyLi4uJywgNiwgdj0nMTE5Li4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzcwLi4uJywgNiwgdj0nMTIxLi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzdlLi4uJywgNiwgdj0nMTIzLi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc5ODA4Li4uJywgNCwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTA4Ii4uLicsIDMsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMzMi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzYy4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzgzNS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ1NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4NS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Ni4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhNS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThiNi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjNS4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkNy4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDMwYi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmNi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwNi4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxNy4uLicsIDQsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIzZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMxZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc4Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjg2ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjk0ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmIxMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmJmMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmNkMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmRiMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmU5NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmY3NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzA1Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzEzNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzIxOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzJmOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzNkYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzRiYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzU5ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzY3ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzc1ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzg0MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzkyMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2EwMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2FlMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2JjMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2NhNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Q4NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2U2Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Y0OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDAyOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDEwOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDFlYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDJjYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDNhYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDQ4ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDU2ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDgwZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDhmMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDlkMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGFiNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGI5NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGM3Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGQ1Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGUzOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGYxOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGZmYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTBkZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTFiYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTI5ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTM3ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ2MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTYyMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTcwMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTdlMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNThjNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTlhNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWE4Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWI2Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWM0OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWQyOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWUwYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWVlYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWZjYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjBhZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjE4ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjM1MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjQzMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjUxMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjVmMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjZkNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjdiNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjg5Ni4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjk3OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmE1OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmIzOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmMxYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmNmYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmRkYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmViZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmY5ZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzE2MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzI0MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzMyMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzQwMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzRlNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzVjNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzZhNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzc4Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzg2OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzk0OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2EyOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2IwYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2JlYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2NjYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2RhZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2Y3MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODA1MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODEzMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODIxMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODJmNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODNkNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODRiNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODU5Ny4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODY3OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODc1OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODgzYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODkxYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODlmYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGFkZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGJiZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Zi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGQ4MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGU2MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGY0Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTAyMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTEwNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTFlNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTJjNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTNhOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTQ4OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTU2OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTY0YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTcyYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTgwYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOThlZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTljZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWI5MC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWM3MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWQ1Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWUzMy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWYxNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWZmNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTBkNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTFiNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTI5OC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTM3OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTQ1YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTUzYi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTYxYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTZmZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTdlMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThjMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWE4MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWI2Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWM0My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWQyNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWUwNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWVlNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWZjNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjBhOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjI2YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjM0Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjQyYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjUwZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjVlZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjdiMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjg5MS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjk3Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmE1My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmIzNC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmMxNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmNmNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmRkOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmViOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmY5OS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzA3YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzE1Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzIzYy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzMxZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzNmZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzVjMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzZhMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzc4Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzg2My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzk0NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2EyNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2IwNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2JlNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2NjOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2RhOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2U4YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2Y2Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDA0Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDEyZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDIwZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDJmMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDNkMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDU5Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDY3My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDc1NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDgzNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDkxNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDlmNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGFkOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGJiOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGM5YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGQ3Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGU1Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGYzZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTAxZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTFkZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTJjMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTNhMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTQ4Mi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTU2My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTY0NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTcyNS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTgwNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZThlNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTljOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWFhOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWI4YS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWM2Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWQ0Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWUyZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWZmMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjBkMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjFiMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjI5My4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjM3NC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjQ1NS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjUzNi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjYxNy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjZmOC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjdkOS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjhiYS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjk5Yi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmE3Yy4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmI1ZC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmMzZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxZi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmUwMC4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmVlMS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmZjMi4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAwYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAxOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAyNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAzNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA0Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA2Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA3YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA4OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA5Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBkZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBlYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBmOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEwNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTExNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEyMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE0ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE1Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE2OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE3Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE4NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFhMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFjYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFkYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFlOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFmNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIwNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIxMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIzZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI0Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI1OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI2Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI4My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJhZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJiYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJjOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJkNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJlNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJmMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMxZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMyYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMzOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM2NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM3Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM5Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNhYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNiOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNjNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNkNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNlMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQwYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQxYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQyOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ0NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ1My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ3ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ4Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ5OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRhNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRiNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRjMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRlZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRmYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUwOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUyNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU0Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU2Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU3YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU4OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU5Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTViMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVkYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVlYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYwNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYxNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYyMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY0ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY1Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY2OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY3Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY4NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY5My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZiZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZjYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZlOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZmNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcwNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcxMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTczYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc0YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc1OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc2Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc3NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc4Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdhYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdjOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdkNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdlNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdmMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgxZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgyYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgzOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg2My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg4ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThiOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThjNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThkNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThlMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkwYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkxYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkyOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk0NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk1Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk4Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk5OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTliNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTljMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlmYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEwOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWExNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEyNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEzMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE2Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE3YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE4OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFiMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFkYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFlYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIwNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIxNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM3NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM4Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNhYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNjOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNkNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNlNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNmMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQxZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQyYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQzOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ2My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ4ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ5Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRhOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRiNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRjNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRkMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUwYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUxYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUyOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU0NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU1Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU3Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU4YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU5OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVhNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWViNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVlZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVmYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYwOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYyNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYzMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY1ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY2Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY3OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY4Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY5NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZiMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZkYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZlYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAwNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAxNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAyMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA0Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA1YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA2OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA3Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA5My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBiZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBjYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBkOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBlNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBmNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEwMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEyZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEzYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE0OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE1Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE3NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE4Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFhYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFjOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFkNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFlNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFmMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIxYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIyYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIzOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI2My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI4ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI5Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJhOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJiNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJjNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJkMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJmZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMwYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMxOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM0NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM1Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM3Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM4YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM5OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNhNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNiNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNjMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNlYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNmYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQxNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQyNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQzMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ2Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ3OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ4Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ5NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRhMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRjZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRkYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUwNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUxNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUyMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU0Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU1YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU2OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU3Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU4NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU5Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjViYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVkOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVlNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVmNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYwMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYyZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYzYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY0OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY1Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY2NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY3My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY5ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZiYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZjOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZkNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZlNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZmMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcxYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcyYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjczOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc0Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc1NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc2Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nOTgwNC4uLicsIDQsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PScxMTMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwOCIuLi4nLCAzLCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMzIuLi4nLCA0LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhM2MuLi4nLCA0LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4MzUuLi4nLCA0LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NDUuLi4nLCA0LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NTUuLi4nLCA0LCB2PScxMDkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNjUuLi4nLCA0LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwNzUuLi4nLCA0LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlODUuLi4nLCA0LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOTYuLi4nLCA0LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYTUuLi4nLCA0LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YjYuLi4nLCA0LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2YzUuLi4nLCA0LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZDcuLi4nLCA0LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzMGIuLi4nLCA0LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZjYuLi4nLCA0LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMDYuLi4nLCA0LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMTcuLi4nLCA0LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzQuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA1LCB2PScxMjUuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTguLi4nLCA1LCB2PScxMjcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWIuLi4nLCA1LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWQuLi4nLCA1LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiM2UuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMWYuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDAuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTMuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDYuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA1LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3OGMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI4NmQuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI5NGUuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiMTAuLi4nLCA1LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiZjEuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJjZDIuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJkYjMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJlOTQuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJmNzUuLi4nLCA1LCB2PScxMTIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMwNTYuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMxMzcuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyMTkuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyZjkuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMzZGEuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM0YmIuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM1OWQuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM2N2QuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM3NWUuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4NDAuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM5MjEuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhMDEuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhZTIuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNiYzMuLi4nLCA1LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNjYTQuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNkODUuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNlNjYuLi4nLCA1LCB2PScxMjIuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNmNDguLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQwMjguLi4nLCA1LCB2PScxMjMuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxMDkuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxZWEuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQyY2IuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQzYWMuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ0OGQuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ1NmUuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NGYuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4MGYuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4ZjAuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ5ZDEuLi4nLCA1LCB2PScxMTguLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRhYjQuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRiOTUuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRjNzYuLi4nLCA1LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRkNTcuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRlMzguLi4nLCA1LCB2PScxMTguLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmMTkuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmZmEuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUwZGQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUxYmMuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUyOWQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUzN2UuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NjAuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU1NDAuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU2MjEuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3MDIuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3ZTMuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU4YzQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU5YTcuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVhODYuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzViNjcuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVjNDguLi4nLCA1LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVkMjkuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlMGEuLi4nLCA1LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlZWIuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVmY2MuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYwYWQuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYxOGUuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNmYuLi4nLCA1LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYzNTAuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY0MzEuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1MTIuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1ZjMuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY2ZDQuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY3YjUuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY4OTYuLi4nLCA1LCB2PScxMjIuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY5NzguLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZhNTguLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZiMzkuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjMWEuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjZmIuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZkZGMuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZlYmQuLi4nLCA1LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZmOWUuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwN2YuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcxNjAuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcyNDEuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzczMjIuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0MDMuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0ZTQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc1YzUuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc2YTYuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc3ODcuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc4NjguLi4nLCA1LCB2PScxMTMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc5NDguLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdhMjkuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiMGEuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiZWIuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdjY2MuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdkYWQuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlOGYuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzAuLi4nLCA1LCB2PScxMjMuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgwNTEuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgxMzIuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyMTMuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyZjQuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgzZDUuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg0YjYuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg1OTcuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg2NzguLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg3NTkuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg4M2EuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5MWIuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5ZmMuLi4nLCA1LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhhZGQuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhiYmUuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOWYuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhkODAuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhlNjEuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhmNDIuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkwMjMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxMDQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxZTUuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkyYzYuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkzYTguLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk0ODguLi4nLCA1LCB2PScxMjMuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk1NjkuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk2NGEuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk3MmIuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4MGMuLi4nLCA1LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4ZWQuLi4nLCA1LCB2PScxMjIuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk5Y2UuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYWYuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzliOTAuLi4nLCA1LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzljNzEuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlkNTIuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzllMzMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmMTQuLi4nLCA1LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmZjUuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EwZDYuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ExYjcuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EyOTguLi4nLCA1LCB2PScxMTguLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EzNzkuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E0NWEuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E1M2IuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2MWMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2ZmQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E3ZTAuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YzAuLi4nLCA1LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTAuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FhODEuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FiNjIuLi4nLCA1LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FjNDMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FkMjQuLi4nLCA1LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlMDUuLi4nLCA1LCB2PScxMTQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlZTYuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FmYzcuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IwYTguLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IyNmEuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IzNGIuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I0MmMuLi4nLCA1LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1MGQuLi4nLCA1LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1ZWUuLi4nLCA1LCB2PScxMTQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2Y2YuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I3YjAuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I4OTEuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I5NzIuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JhNTMuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JiMzQuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjMTUuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjZjYuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JkZDguLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JlYjguLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JmOTkuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MwN2EuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MxNWIuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MyM2MuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzMWQuLi4nLCA1LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzZmUuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZGYuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M1YzAuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M2YTEuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M3ODIuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M4NjMuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M5NDQuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NhMjUuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiMDYuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiZTcuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NjYzguLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NkYTkuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NlOGEuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NmNmIuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QwNGMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QxMmQuLi4nLCA1LCB2PScxMjEuLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyMGUuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyZjAuLi4nLCA1LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzZDAuLi4nLCA1LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q0YjEuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q1OTIuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q2NzMuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q3NTQuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q4MzUuLi4nLCA1LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5MTYuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5ZjcuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RhZDguLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RiYjkuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RjOWEuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RkN2IuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RlNWMuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RmM2QuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwMWQuLi4nLCA1LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZmUuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UxZGYuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UyYzAuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UzYTEuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U0ODIuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U1NjMuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U2NDQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U3MjUuLi4nLCA1LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4MDYuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4ZTcuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U5YzguLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VhYTkuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ViOGEuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VjNmIuLi4nLCA1LCB2PScxMTMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VkNGMuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VlMmQuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMGUuLi4nLCA1LCB2PScxMTguLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmZjAuLi4nLCA1LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YwZDEuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YxYjIuLi4nLCA1LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YyOTMuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YzNzQuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y0NTUuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y1MzYuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2MTcuLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2ZjguLi4nLCA1LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y3ZDkuLi4nLCA1LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y4YmEuLi4nLCA1LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y5OWIuLi4nLCA1LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZhN2MuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZiNWQuLi4nLCA1LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZjM2UuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMWYuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlMDAuLi4nLCA1LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTEuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZmYzIuLi4nLCA1LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMGEuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMTguLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMjYuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMzQuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNDIuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNTAuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNWUuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNmMuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwN2EuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwODguLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwOTYuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYTQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYzEuLi4nLCA2LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwY2YuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZGQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZWIuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZjkuLi4nLCA2LCB2PScxMjEuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMDcuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMTUuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMjMuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMzEuLi4nLCA2LCB2PScxMjIuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExM2YuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNGQuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNWIuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNjkuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNzcuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExODUuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYTIuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYjAuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYmUuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExY2MuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZGEuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZTguLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZjYuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMDUuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMTMuLi4nLCA2LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMjEuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMmYuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyM2QuLi4nLCA2LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNGIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNTkuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNjcuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzYuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyODMuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOWYuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYWQuLi4nLCA2LCB2PScxMjQuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYmIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYzkuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZDcuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZTUuLi4nLCA2LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZjMuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMDEuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMGYuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMWQuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMmIuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMzkuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNDcuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNjQuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNzIuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzODAuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOGUuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOWMuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYWEuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYjguLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYzYuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZDQuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZTIuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZjAuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZmUuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MGMuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MWEuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MjguLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NDUuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NTMuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NjEuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NmYuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0N2QuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OGIuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OTkuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YTcuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YjUuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YzMuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZDEuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZGYuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZWQuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZmIuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MDkuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTcuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MjYuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MzQuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NDIuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NTAuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NWUuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NmMuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1N2EuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ODguLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1OTYuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YTQuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YjIuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YzAuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1Y2UuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZGMuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZWEuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MDcuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MTUuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MjMuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MzEuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2M2YuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NGQuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NWIuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NjkuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NzcuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ODUuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2OTMuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YTEuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YWYuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YmQuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2Y2IuLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZTguLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZjYuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MDQuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MTIuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MjAuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MmUuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3M2MuLi4nLCA2LCB2PScwLjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NGEuLi4nLCA2LCB2PScwLjExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NTguLi4nLCA2LCB2PScwLjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NjYuLi4nLCA2LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NzQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ODIuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OTAuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OWUuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YWMuLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA2LCB2PScxMjguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YzkuLi4nLCA2LCB2PScxMjYuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZTUuLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZjMuLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MDEuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MGYuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MWQuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MmIuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MzkuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NDcuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NTUuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NjMuLi4nLCA2LCB2PScxMjUuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NzEuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4N2YuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OGQuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWMuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YjguLi4nLCA2LCB2PScxMTYuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YzYuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZDQuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZTIuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZjAuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZmUuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MGMuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MWEuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MjguLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MzYuLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NDQuLi4nLCA2LCB2PScxMjUuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NTIuLi4nLCA2LCB2PScxMjMuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NjAuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NmUuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OGIuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OTkuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YjUuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YzMuLi4nLCA2LCB2PScxMjEuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZDEuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZGYuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWUuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZmIuLi4nLCA2LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMDkuLi4nLCA2LCB2PScxMTguLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMTcuLi4nLCA2LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMjUuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMzMuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNDEuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNGYuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWUuLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNmMuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhN2EuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhODguLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYTQuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYjIuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYzAuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhY2UuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZGMuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZWEuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZjguLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMDYuLi4nLCA2LCB2PScxMjMuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMTQuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjODIuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOTAuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOWUuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYWMuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYmEuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYzguLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZDYuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZTQuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZjIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDEuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMGYuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMWQuLi4nLCA2LCB2PScxMjMuLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMmIuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMzkuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNDcuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNTUuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNjMuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNzEuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkN2YuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOGQuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOWIuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYTkuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYjcuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYzUuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZDMuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZjAuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZmUuLi4nLCA2LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMGMuLi4nLCA2LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMWEuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMjguLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMzYuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNDQuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNTIuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNjAuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNmUuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlN2MuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOGEuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOTguLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYTYuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYjQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZDEuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZGYuLi4nLCA2LCB2PScxMjIuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZWQuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZmIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMDkuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMjUuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMzMuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNDEuLi4nLCA2LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNGYuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNWQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNmIuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNzkuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmODcuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmOTUuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTQuLi4nLCA2LCB2PScxMjYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYjIuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYzAuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmY2UuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZGMuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZWEuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZjguLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMDYuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMTQuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMjIuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMzAuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwM2UuLi4nLCA2LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNGMuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNWEuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNjguLi4nLCA2LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNzYuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwOTMuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYTEuLi4nLCA2LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYWYuLi4nLCA2LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYmQuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwY2IuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZDkuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZTcuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZjUuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMDMuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMTEuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMWYuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMmQuLi4nLCA2LCB2PScxMjMuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxM2IuLi4nLCA2LCB2PScxMjEuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNDkuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNTcuLi4nLCA2LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNzQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxODIuLi4nLCA2LCB2PScxMTguLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOTAuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOWUuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYWMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYmEuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYzguLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZDYuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZTQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZjIuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMDAuLi4nLCA2LCB2PScxMjAuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMGUuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMWMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMmEuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMzguLi4nLCA2LCB2PScxMjMuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDcuLi4nLCA2LCB2PScxMjUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNTUuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNjMuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNzEuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyN2YuLi4nLCA2LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOGQuLi4nLCA2LCB2PScxMTUuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOWIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYTkuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYjcuLi4nLCA2LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYzUuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZDMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZTEuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZWYuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZmQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMGIuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMTkuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMzYuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNDQuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNTIuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNjAuLi4nLCA2LCB2PScxMTkuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNmUuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzN2MuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOGEuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOTguLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYTYuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYjQuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYzIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZDAuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZGUuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZWMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZmEuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MTcuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MjUuLi4nLCA2LCB2PScxMTcuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MzMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NDEuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NGYuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NzkuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ODcuLi4nLCA2LCB2PScxMTQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0OTUuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YTMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YjEuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YmYuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0Y2QuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZGIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZjguLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MDYuLi4nLCA2LCB2PScxMjQuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MTQuLi4nLCA2LCB2PScxMjQuLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MjIuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MzAuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1M2UuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NGMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NWEuLi4nLCA2LCB2PScxMTguLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NjguLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NzYuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ODQuLi4nLCA2LCB2PScxMTYuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1OTIuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YTAuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YWUuLi4nLCA2LCB2PScxMTguLi4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YmMuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZDkuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZTcuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZjUuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MDMuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MTEuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MWYuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MmQuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2M2IuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NDkuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NTcuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NjUuLi4nLCA2LCB2PScxMjMuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NzMuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ODEuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OGYuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OWQuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YmEuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YzguLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZDYuLi4nLCA2LCB2PScxMTcuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZTQuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZjIuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MDAuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MWMuLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MmEuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MzguLi4nLCA2LCB2PScxMTkuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NDYuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NTQuLi4nLCA2LCB2PScxMjEuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NjIuLi4nLCA2LCB2PScxMTguLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NzAuLi4nLCA2LCB2PScxMjAuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3N2UuLi4nLCA2LCB2PScxMjIuLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzQ0MDYuLi4nLCA2LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nLTEyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDgiLi4uJywgMywgdj0nLTE0OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzMyLi4uJywgNCwgdj0nLTE1Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTNjLi4uJywgNCwgdj0nLTE2NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODM1Li4uJywgNCwgdj0nLTE0NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjQ1Li4uJywgNCwgdj0nLTEyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDU1Li4uJywgNCwgdj0nLTEwNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjY1Li4uJywgNCwgdj0nLTE2OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDc1Li4uJywgNCwgdj0nLTE3Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZTg1Li4uJywgNCwgdj0nLTE2Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Yzk2Li4uJywgNCwgdj0nLTIwNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWE1Li4uJywgNCwgdj0nLTE5OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGI2Li4uJywgNCwgdj0nLTE5Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmM1Li4uJywgNCwgdj0nLTIwMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGQ3Li4uJywgNCwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMzBiLi4uJywgNCwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGY2Li4uJywgNCwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjA2Li4uJywgNCwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDE3Li4uJywgNCwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE4Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODliLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjNlLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzFmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmEzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzhjLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyODZkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyOTRlLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYjEwLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYmYxLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyY2QyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZGIzLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZTk0Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZjc1Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMDU2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMTM3Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMjE5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMmY5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczM2RhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNGJiLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNTlkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNjdkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNzVlLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODQwLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczOTIxLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYTAxLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYWUyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYmMzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczY2E0Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZDg1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZTY2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZjQ4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MDI4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MTA5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MWVhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MmNiLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0M2FjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NDhkLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NTZlLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjRmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ODBmLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OGYwLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OWQxLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0YWI0Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yjk1Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yzc2Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZDU3Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZTM4Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZjE5Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZmZhLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MGRkLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MWJjLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MjlkLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MzdlLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDYwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NjIxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NzAyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1N2UzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OGM0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OWE3Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YTg2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YjY3Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YzQ4Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZDI5Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZTBhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZWViLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZmNjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MGFkLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MThlLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjZmLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MzUwLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NDMxLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NTEyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NWYzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NmQ0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2N2I1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ODk2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2OTc4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YTU4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YjM5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YzFhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2Y2ZiLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZGRjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZWJkLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZjllLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDdmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MTYwLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MjQxLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MzIyLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NDAzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NGU0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NWM1Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NmE2Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Nzg3Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ODY4Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3OTQ4Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YTI5Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YjBhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YmViLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Y2NjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZGFkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZThmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MDUxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MTMyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MjEzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MmY0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4M2Q1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NGI2Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NTk3Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Njc4Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NzU5Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ODNhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OTFiLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OWZjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YWRkLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YmJlLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YzlmLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZDgwLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZTYxLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZjQyLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MDIzLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MTA0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MWU1Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MmM2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5M2E4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NDg4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NTY5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NjRhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NzJiLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ODBjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OGVkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OWNlLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWFmLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YjkwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YzcxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZDUyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZTMzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZjE0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZmY1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMGQ2Li4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMWI3Li4uJywgNSwgdj0nLTE4NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMjk4Li4uJywgNSwgdj0nLTYzMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMzc5Li4uJywgNSwgdj0nMTU2NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNDVhLi4uJywgNSwgdj0nLTY2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNTNiLi4uJywgNSwgdj0nLTM5My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNjFjLi4uJywgNSwgdj0nLTY5MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNmZkLi4uJywgNSwgdj0nLTg4My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhN2UwLi4uJywgNSwgdj0nLTE1Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGMwLi4uJywgNSwgdj0nLTIyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWEwLi4uJywgNSwgdj0nMTA5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYTgxLi4uJywgNSwgdj0nLTQyMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYjYyLi4uJywgNSwgdj0nLTg1OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYzQzLi4uJywgNSwgdj0nLTYyOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZDI0Li4uJywgNSwgdj0nNTE2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZTA1Li4uJywgNSwgdj0nMTgzOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZWU2Li4uJywgNSwgdj0nMjkzIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZmM3Li4uJywgNSwgdj0nMTE4NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMGE4Li4uJywgNSwgdj0nMzk0Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMjZhLi4uJywgNSwgdj0nNDIzMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMzRiLi4uJywgNSwgdj0nMzY4OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNDJjLi4uJywgNSwgdj0nMjQ4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNTBkLi4uJywgNSwgdj0nNDMwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNWVlLi4uJywgNSwgdj0nMTAyNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmNmLi4uJywgNSwgdj0nLTUyNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiN2IwLi4uJywgNSwgdj0nLTI1OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiODkxLi4uJywgNSwgdj0nLTY1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiOTcyLi4uJywgNSwgdj0nLTQ4OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYTUzLi4uJywgNSwgdj0nLTg0Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYjM0Li4uJywgNSwgdj0nMTA4Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYzE1Li4uJywgNSwgdj0nMzEwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiY2Y2Li4uJywgNSwgdj0nLTExMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZGQ4Li4uJywgNSwgdj0nMzYzMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZWI4Li4uJywgNSwgdj0nNTEzIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZjk5Li4uJywgNSwgdj0nMjE0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMDdhLi4uJywgNSwgdj0nLTI5Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMTViLi4uJywgNSwgdj0nLTEyNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMjNjLi4uJywgNSwgdj0nNDk1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMzFkLi4uJywgNSwgdj0nMTgxNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjM2ZlLi4uJywgNSwgdj0nODE4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGRmLi4uJywgNSwgdj0nMTUzOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNWMwLi4uJywgNSwgdj0nNjgwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNmExLi4uJywgNSwgdj0nNzEyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNzgyLi4uJywgNSwgdj0nMTI4MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjODYzLi4uJywgNSwgdj0nMzk3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjOTQ0Li4uJywgNSwgdj0nNDkzIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYTI1Li4uJywgNSwgdj0nMjUwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYjA2Li4uJywgNSwgdj0nNzg1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYmU3Li4uJywgNSwgdj0nLTIwMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjY2M4Li4uJywgNSwgdj0nMjE1Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZGE5Li4uJywgNSwgdj0nMjkzNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZThhLi4uJywgNSwgdj0nMjEwNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZjZiLi4uJywgNSwgdj0nMjgyNC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMDRjLi4uJywgNSwgdj0nMjI2OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMTJkLi4uJywgNSwgdj0nMTQ0MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMjBlLi4uJywgNSwgdj0nLTI5Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMmYwLi4uJywgNSwgdj0nLTIyOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkM2QwLi4uJywgNSwgdj0nLTExOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIxLi4uJywgNSwgdj0nLTk2NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNTkyLi4uJywgNSwgdj0nLTQ0Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNjczLi4uJywgNSwgdj0nMjYxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNzU0Li4uJywgNSwgdj0nMTMwOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkODM1Li4uJywgNSwgdj0nLTg0OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOTE2Li4uJywgNSwgdj0nMTc4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOWY3Li4uJywgNSwgdj0nMTExMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYWQ4Li4uJywgNSwgdj0nMjc1MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYmI5Li4uJywgNSwgdj0nMjc2OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYzlhLi4uJywgNSwgdj0nMjk3My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZDdiLi4uJywgNSwgdj0nMTMyNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZTVjLi4uJywgNSwgdj0nNDU0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZjNkLi4uJywgNSwgdj0nMTk5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDFkLi4uJywgNSwgdj0nMTY3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGZlLi4uJywgNSwgdj0nNTU2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMWRmLi4uJywgNSwgdj0nNDE2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMmMwLi4uJywgNSwgdj0nLTM3MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlM2ExLi4uJywgNSwgdj0nLTExNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNDgyLi4uJywgNSwgdj0nOTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNTYzLi4uJywgNSwgdj0nLTg0My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNjQ0Li4uJywgNSwgdj0nMTcxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNzI1Li4uJywgNSwgdj0nLTY0Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlODA2Li4uJywgNSwgdj0nLTcyMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOGU3Li4uJywgNSwgdj0nMjY2NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOWM4Li4uJywgNSwgdj0nODM3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYWE5Li4uJywgNSwgdj0nNjk4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYjhhLi4uJywgNSwgdj0nMTA5Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYzZiLi4uJywgNSwgdj0nMjY0OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZDRjLi4uJywgNSwgdj0nLTQ5NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZTJkLi4uJywgNSwgdj0nMTE2NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjBlLi4uJywgNSwgdj0nNTQyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZmYwLi4uJywgNSwgdj0nMTg3MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMGQxLi4uJywgNSwgdj0nOTc5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMWIyLi4uJywgNSwgdj0nMTIxMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMjkzLi4uJywgNSwgdj0nLTM1Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMzc0Li4uJywgNSwgdj0nMTY1NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNDU1Li4uJywgNSwgdj0nMTM2OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNTM2Li4uJywgNSwgdj0nMTQ2Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNjE3Li4uJywgNSwgdj0nMTYxMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNmY4Li4uJywgNSwgdj0nMTMwOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmN2Q5Li4uJywgNSwgdj0nMTg4Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOGJhLi4uJywgNSwgdj0nMTEzNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOTliLi4uJywgNSwgdj0nMTE2OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYTdjLi4uJywgNSwgdj0nMTQwMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYjVkLi4uJywgNSwgdj0nMTMxNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYzNlLi4uJywgNSwgdj0nLTEwNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDFmLi4uJywgNSwgdj0nLTExOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZTAwLi4uJywgNSwgdj0nLTE2MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUxLi4uJywgNSwgdj0nLTE5OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZmMyLi4uJywgNSwgdj0nLTI1Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDBhLi4uJywgNiwgdj0nNTg1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDE4Li4uJywgNiwgdj0nMTA2OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDI2Li4uJywgNiwgdj0nMTk3My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDM0Li4uJywgNiwgdj0nMTgzMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDQyLi4uJywgNiwgdj0nMTEyNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDUwLi4uJywgNiwgdj0nMTc2Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDVlLi4uJywgNiwgdj0nMTM0My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDZjLi4uJywgNiwgdj0nMTU2NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDdhLi4uJywgNiwgdj0nODQ5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDg4Li4uJywgNiwgdj0nODA1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDk2Li4uJywgNiwgdj0nMTA5My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGE0Li4uJywgNiwgdj0nODgwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNiwgdj0nMTI1NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGMxLi4uJywgNiwgdj0nMjY2NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGNmLi4uJywgNiwgdj0nMTM2OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGRkLi4uJywgNiwgdj0nMTAwOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGViLi4uJywgNiwgdj0nMjA4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGY5Li4uJywgNiwgdj0nMjIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTA3Li4uJywgNiwgdj0nMTE0Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTE1Li4uJywgNiwgdj0nMjg2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTIzLi4uJywgNiwgdj0nLTExNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTMxLi4uJywgNiwgdj0nNzEyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTNmLi4uJywgNiwgdj0nMjI3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTRkLi4uJywgNiwgdj0nMjM2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTViLi4uJywgNiwgdj0nMzcyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTY5Li4uJywgNiwgdj0nMTQ0MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTc3Li4uJywgNiwgdj0nMjAxNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTg1Li4uJywgNiwgdj0nMTIxMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNiwgdj0nMTI4NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWEyLi4uJywgNiwgdj0nMzY5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWIwLi4uJywgNiwgdj0nLTMxMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWJlLi4uJywgNiwgdj0nLTgwMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWNjLi4uJywgNiwgdj0nNzgxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWRhLi4uJywgNiwgdj0nNDkxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWU4Li4uJywgNiwgdj0nMTAyMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWY2Li4uJywgNiwgdj0nNTE2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjA1Li4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjEzLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjIxLi4uJywgNiwgdj0nMiIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjJmLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjNkLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjRiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjU5Li4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjY3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc2Li4uJywgNiwgdj0nLTEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjgzLi4uJywgNiwgdj0nLTEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nLTEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjlmLi4uJywgNiwgdj0nLTEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmFkLi4uJywgNiwgdj0nLTEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmJiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmM5Li4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmQ3Li4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmU1Li4uJywgNiwgdj0nMiIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmYzLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzAxLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzBmLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzFkLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzJiLi4uJywgNiwgdj0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzM5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzQ3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzY0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzcyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzgwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzhlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzljLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2FhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2I4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2M2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2Q0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2UyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2YwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2ZlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDBjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDFhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDI4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDQ1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDUzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDYxLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDZmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDdkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDhiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDk5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGE3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGI1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGMzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGQxLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGRmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGVkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGZiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTA5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTI2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTQyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTUwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTVlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTZjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTdhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTg4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTk2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWE0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWIyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWMwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWNlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWRjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWVhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjA3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjE1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjIzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjMxLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjNmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjRkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjViLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjY5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjc3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjg1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjkzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmExLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmFmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmJkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmNiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmU4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmY2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzA0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzEyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzIwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzJlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzNjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzRhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzU4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzY2Li4uJywgNiwgdj0nMjI3NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzc0Li4uJywgNiwgdj0nMTc3NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzgyLi4uJywgNiwgdj0nMTE1My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzkwLi4uJywgNiwgdj0nNzY5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzllLi4uJywgNiwgdj0nLTg0Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2FjLi4uJywgNiwgdj0nLTIzNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNiwgdj0nLTI5Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2M5Li4uJywgNiwgdj0nLTI1MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nLTI0NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2U1Li4uJywgNiwgdj0nLTI4Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2YzLi4uJywgNiwgdj0nLTIyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODAxLi4uJywgNiwgdj0nLTEyNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODBmLi4uJywgNiwgdj0nLTcxNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODFkLi4uJywgNiwgdj0nLTE0OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODJiLi4uJywgNiwgdj0nLTIwMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODM5Li4uJywgNiwgdj0nLTEwNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODQ3Li4uJywgNiwgdj0nLTk3OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODU1Li4uJywgNiwgdj0nLTEyNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODYzLi4uJywgNiwgdj0nLTMxNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODcxLi4uJywgNiwgdj0nLTI2Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODdmLi4uJywgNiwgdj0nLTI1NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODhkLi4uJywgNiwgdj0nLTIzNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODljLi4uJywgNiwgdj0nLTExMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGI4Li4uJywgNiwgdj0nMTIxOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGM2Li4uJywgNiwgdj0nLTEwNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGQ0Li4uJywgNiwgdj0nLTE1MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGUyLi4uJywgNiwgdj0nLTEyOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGYwLi4uJywgNiwgdj0nLTE5MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGZlLi4uJywgNiwgdj0nLTE2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTBjLi4uJywgNiwgdj0nLTc3OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTFhLi4uJywgNiwgdj0nLTE3My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTI4Li4uJywgNiwgdj0nLTE3NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTM2Li4uJywgNiwgdj0nLTE4Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTQ0Li4uJywgNiwgdj0nLTEyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTUyLi4uJywgNiwgdj0nLTIxMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTYwLi4uJywgNiwgdj0nMTYxOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTZlLi4uJywgNiwgdj0nLTc2NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNiwgdj0nLTgyNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOThiLi4uJywgNiwgdj0nNDAiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTk5Li4uJywgNiwgdj0nLTE5OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWI1Li4uJywgNiwgdj0nLTk2Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWMzLi4uJywgNiwgdj0nLTY4MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWQxLi4uJywgNiwgdj0nLTM4NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWRmLi4uJywgNiwgdj0nLTI0MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVkLi4uJywgNiwgdj0nMzcxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVlLi4uJywgNiwgdj0nNDcxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWZiLi4uJywgNiwgdj0nNjEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTA5Li4uJywgNiwgdj0nLTI0NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTE3Li4uJywgNiwgdj0nLTM0NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTI1Li4uJywgNiwgdj0nLTM4Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTMzLi4uJywgNiwgdj0nLTE2NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTQxLi4uJywgNiwgdj0nLTIyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTRmLi4uJywgNiwgdj0nLTQxMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVlLi4uJywgNiwgdj0nLTM3My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTZjLi4uJywgNiwgdj0nLTI2NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTdhLi4uJywgNiwgdj0nLTMyOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTg4Li4uJywgNiwgdj0nLTMzNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nLTI3MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWE0Li4uJywgNiwgdj0nLTE5OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWIyLi4uJywgNiwgdj0nLTc5Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWMwLi4uJywgNiwgdj0nLTIwNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWNlLi4uJywgNiwgdj0nLTI3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWRjLi4uJywgNiwgdj0nLTE5My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWVhLi4uJywgNiwgdj0nLTIwOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWY4Li4uJywgNiwgdj0nLTIyMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjA2Li4uJywgNiwgdj0nLTI2Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjE0Li4uJywgNiwgdj0nLTI1My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nNDUzIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzgyLi4uJywgNiwgdj0nLTE1Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzkwLi4uJywgNiwgdj0nMTE0My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzllLi4uJywgNiwgdj0nLTE0Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2FjLi4uJywgNiwgdj0nLTEwMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2JhLi4uJywgNiwgdj0nLTE0MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2M4Li4uJywgNiwgdj0nMjk0OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2Q2Li4uJywgNiwgdj0nMjIyOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2U0Li4uJywgNiwgdj0nMTAyMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2YyLi4uJywgNiwgdj0nLTE2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAxLi4uJywgNiwgdj0nLTE4My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDBmLi4uJywgNiwgdj0nLTIxMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDFkLi4uJywgNiwgdj0nLTc2Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDJiLi4uJywgNiwgdj0nLTc5Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDM5Li4uJywgNiwgdj0nMTczIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDQ3Li4uJywgNiwgdj0nNzc2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDU1Li4uJywgNiwgdj0nMTI0OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDYzLi4uJywgNiwgdj0nLTk1Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDcxLi4uJywgNiwgdj0nLTkxMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDdmLi4uJywgNiwgdj0nLTI0My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDhkLi4uJywgNiwgdj0nLTY1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDliLi4uJywgNiwgdj0nLTMwOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGE5Li4uJywgNiwgdj0nLTgxMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGI3Li4uJywgNiwgdj0nLTgwNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGM1Li4uJywgNiwgdj0nLTk1Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGQzLi4uJywgNiwgdj0nLTcxNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNiwgdj0nLTE2MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGYwLi4uJywgNiwgdj0nLTE5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGZlLi4uJywgNiwgdj0nLTE4MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTBjLi4uJywgNiwgdj0nLTIyMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTFhLi4uJywgNiwgdj0nLTIyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTI4Li4uJywgNiwgdj0nLTIzMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTM2Li4uJywgNiwgdj0nLTIyOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTQ0Li4uJywgNiwgdj0nLTIzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTUyLi4uJywgNiwgdj0nLTE4Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTYwLi4uJywgNiwgdj0nLTIxMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTZlLi4uJywgNiwgdj0nLTIyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTdjLi4uJywgNiwgdj0nLTI5Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZThhLi4uJywgNiwgdj0nLTQ0OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTk4Li4uJywgNiwgdj0nLTE0Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWE2Li4uJywgNiwgdj0nLTQyMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWI0Li4uJywgNiwgdj0nLTM2NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNiwgdj0nLTU4MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWQxLi4uJywgNiwgdj0nLTI2My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWRmLi4uJywgNiwgdj0nLTMyNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWVkLi4uJywgNiwgdj0nLTE0Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWZiLi4uJywgNiwgdj0nLTM1NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjA5Li4uJywgNiwgdj0nLTMxMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nNDk2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjI1Li4uJywgNiwgdj0nNjYwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjMzLi4uJywgNiwgdj0nMTI0Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjQxLi4uJywgNiwgdj0nMjg4OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjRmLi4uJywgNiwgdj0nMTUzMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjVkLi4uJywgNiwgdj0nLTE0My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjZiLi4uJywgNiwgdj0nLTUxOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjc5Li4uJywgNiwgdj0nMjI1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjg3Li4uJywgNiwgdj0nLTE2Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjk1Li4uJywgNiwgdj0nLTIzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmE0Li4uJywgNiwgdj0nLTE3Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmIyLi4uJywgNiwgdj0nLTE0OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmMwLi4uJywgNiwgdj0nLTE1MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmNlLi4uJywgNiwgdj0nLTQ3Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmRjLi4uJywgNiwgdj0nLTE5My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmVhLi4uJywgNiwgdj0nMTI4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmY4Li4uJywgNiwgdj0nMzc2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDA2Li4uJywgNiwgdj0nMjg3Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDE0Li4uJywgNiwgdj0nNDA4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDIyLi4uJywgNiwgdj0nMTkyMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDMwLi4uJywgNiwgdj0nMTgzMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDNlLi4uJywgNiwgdj0nMTc5OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDRjLi4uJywgNiwgdj0nMzM0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDVhLi4uJywgNiwgdj0nMTI2MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDY4Li4uJywgNiwgdj0nMTgxNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDc2Li4uJywgNiwgdj0nMjI3Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNiwgdj0nMjYyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDkzLi4uJywgNiwgdj0nLTM4Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGExLi4uJywgNiwgdj0nLTYxMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGFmLi4uJywgNiwgdj0nLTI1MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGJkLi4uJywgNiwgdj0nLTg4NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGNiLi4uJywgNiwgdj0nNTUxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGQ5Li4uJywgNiwgdj0nNDgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGU3Li4uJywgNiwgdj0nLTk4Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGY1Li4uJywgNiwgdj0nLTE2MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTAzLi4uJywgNiwgdj0nLTExMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTExLi4uJywgNiwgdj0nLTM4MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTFmLi4uJywgNiwgdj0nLTQ0MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTJkLi4uJywgNiwgdj0nNzEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTNiLi4uJywgNiwgdj0nMTAyMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTQ5Li4uJywgNiwgdj0nNzYwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTU3Li4uJywgNiwgdj0nLTMxOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNiwgdj0nLTExNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTc0Li4uJywgNiwgdj0nMzAyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTgyLi4uJywgNiwgdj0nLTMxOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTkwLi4uJywgNiwgdj0nLTU4Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTllLi4uJywgNiwgdj0nNDA4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWFjLi4uJywgNiwgdj0nMTAzMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nMTEzOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWM4Li4uJywgNiwgdj0nMjA4Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWQ2Li4uJywgNiwgdj0nLTEyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWU0Li4uJywgNiwgdj0nNjIyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWYyLi4uJywgNiwgdj0nNDU2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjAwLi4uJywgNiwgdj0nLTczNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjBlLi4uJywgNiwgdj0nLTgxOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjFjLi4uJywgNiwgdj0nMTY4NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjJhLi4uJywgNiwgdj0nMzA3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjM4Li4uJywgNiwgdj0nLTgwMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ3Li4uJywgNiwgdj0nLTEyNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjU1Li4uJywgNiwgdj0nMzMwOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjYzLi4uJywgNiwgdj0nNTA2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjcxLi4uJywgNiwgdj0nNjM5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjdmLi4uJywgNiwgdj0nMTk2My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjhkLi4uJywgNiwgdj0nMjg2Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjliLi4uJywgNiwgdj0nLTgzMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmE5Li4uJywgNiwgdj0nLTI3MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmI3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmM1Li4uJywgNiwgdj0nMjAxMC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmQzLi4uJywgNiwgdj0nMzQwOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmUxLi4uJywgNiwgdj0nMzE5MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmVmLi4uJywgNiwgdj0nLTE4Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmZkLi4uJywgNiwgdj0nLTIyNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzBiLi4uJywgNiwgdj0nNTMxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzE5Li4uJywgNiwgdj0nLTgyMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNiwgdj0nNjIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzM2Li4uJywgNiwgdj0nMTA3OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzQ0Li4uJywgNiwgdj0nMTU0Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzUyLi4uJywgNiwgdj0nOTAwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzYwLi4uJywgNiwgdj0nMTEyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzZlLi4uJywgNiwgdj0nMTc4MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzdjLi4uJywgNiwgdj0nMTQwNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzhhLi4uJywgNiwgdj0nMjk4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzk4Li4uJywgNiwgdj0nNTY1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2E2Li4uJywgNiwgdj0nLTMxMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2I0Li4uJywgNiwgdj0nLTY1Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2MyLi4uJywgNiwgdj0nMTY4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2QwLi4uJywgNiwgdj0nNjQ3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2RlLi4uJywgNiwgdj0nMTQyNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2VjLi4uJywgNiwgdj0nODI5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2ZhLi4uJywgNiwgdj0nLTUiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNiwgdj0nMTE5Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDE3Li4uJywgNiwgdj0nMzc1MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDI1Li4uJywgNiwgdj0nMjk5MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDMzLi4uJywgNiwgdj0nMjgwMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDQxLi4uJywgNiwgdj0nLTExOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDRmLi4uJywgNiwgdj0nLTgyOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nLTc5OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDc5Li4uJywgNiwgdj0nNTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDg3Li4uJywgNiwgdj0nNDYwMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDk1Li4uJywgNiwgdj0nMTkxMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGEzLi4uJywgNiwgdj0nNzk5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGIxLi4uJywgNiwgdj0nLTk3Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGJmLi4uJywgNiwgdj0nLTcwOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGNkLi4uJywgNiwgdj0nLTc5MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGRiLi4uJywgNiwgdj0nLTQ5MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNiwgdj0nLTEzMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGY4Li4uJywgNiwgdj0nLTgyNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTA2Li4uJywgNiwgdj0nLTEwMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTE0Li4uJywgNiwgdj0nLTExNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTIyLi4uJywgNiwgdj0nLTM1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTMwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTNlLi4uJywgNiwgdj0nMTM1Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTRjLi4uJywgNiwgdj0nMTA1OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTVhLi4uJywgNiwgdj0nMTI5MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTY4Li4uJywgNiwgdj0nMjA3OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTc2Li4uJywgNiwgdj0nMzYxOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTg0Li4uJywgNiwgdj0nLTQ2OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTkyLi4uJywgNiwgdj0nLTI0Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWEwLi4uJywgNiwgdj0nLTU1Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWFlLi4uJywgNiwgdj0nMTg5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWJjLi4uJywgNiwgdj0nMjYwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNiwgdj0nODE2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWQ5Li4uJywgNiwgdj0nMjQ4OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWU3Li4uJywgNiwgdj0nMjczMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWY1Li4uJywgNiwgdj0nMjIzNC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjAzLi4uJywgNiwgdj0nNTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjExLi4uJywgNiwgdj0nMTIxOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjFmLi4uJywgNiwgdj0nNjMyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjJkLi4uJywgNiwgdj0nLTEzNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjNiLi4uJywgNiwgdj0nMzgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjQ5Li4uJywgNiwgdj0nLTk4MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjU3Li4uJywgNiwgdj0nLTE1MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjY1Li4uJywgNiwgdj0nLTIxMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjczLi4uJywgNiwgdj0nLTE2MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjgxLi4uJywgNiwgdj0nLTEzMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjhmLi4uJywgNiwgdj0nLTQzMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjlkLi4uJywgNiwgdj0nMzA5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNiwgdj0nNjg1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmJhLi4uJywgNiwgdj0nMTY5Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmM4Li4uJywgNiwgdj0nMTg5OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmQ2Li4uJywgNiwgdj0nMzYyMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmU0Li4uJywgNiwgdj0nMjcwOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmYyLi4uJywgNiwgdj0nMzAzNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzAwLi4uJywgNiwgdj0nMjg5OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nMzI1MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzFjLi4uJywgNiwgdj0nMTg2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzJhLi4uJywgNiwgdj0nLTYzNi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzM4Li4uJywgNiwgdj0nLTQyMS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzQ2Li4uJywgNiwgdj0nLTcyOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzU0Li4uJywgNiwgdj0nLTk3OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzYyLi4uJywgNiwgdj0nMjY3MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzcwLi4uJywgNiwgdj0nMTI1NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzdlLi4uJywgNiwgdj0nLTQ5Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc0MjQ2Li4uJywgNiwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9Jy00MzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTA4Ii4uLicsIDMsIHY9Jy00MTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMzMi4uLicsIDQsIHY9Jy00MTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzYy4uLicsIDQsIHY9Jy00MDkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzgzNS4uLicsIDQsIHY9Jy0zOTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0NS4uLicsIDQsIHY9Jy0zOTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ1NS4uLicsIDQsIHY9Jy00NDMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2NS4uLicsIDQsIHY9Jy01MzIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3NS4uLicsIDQsIHY9Jy02MjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4NS4uLicsIDQsIHY9Jy03MzMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Ni4uLicsIDQsIHY9Jy03NTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhNS4uLicsIDQsIHY9Jy03MjQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThiNi4uLicsIDQsIHY9Jy02ODYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjNS4uLicsIDQsIHY9Jy02NDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkNy4uLicsIDQsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDMwYi4uLicsIDQsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmNi4uLicsIDQsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwNi4uLicsIDQsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxNy4uLicsIDQsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3NC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxOC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIzZS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWMxZi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhMy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ni4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc4Yy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjg2ZC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjk0ZS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmIxMC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmJmMS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmNkMi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmRiMy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmU5NC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmY3NS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzA1Ni4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzEzNy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzIxOS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzJmOS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzNkYS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzRiYi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzU5ZC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzY3ZC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzc1ZS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzg0MC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMzkyMS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2EwMS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2FlMi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2JjMy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2NhNC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Q4NS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2U2Ni4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nM2Y0OC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDAyOC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDEwOS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDFlYS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDJjYi4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDNhYy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDQ4ZC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDU2ZS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDY0Zi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDgwZi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDhmMC4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNDlkMS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGFiNC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGI5NS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGM3Ni4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGQ1Ny4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGUzOC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGYxOS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNGZmYS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTBkZC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTFiYy4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTI5ZC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTM3ZS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTQ2MC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTYyMS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTcwMi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTdlMy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNThjNC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTlhNy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWE4Ni4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWI2Ny4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWM0OC4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWQyOS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWUwYS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWVlYi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNWZjYy4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjBhZC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjE4ZS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjI2Zi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjM1MC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjQzMS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjUxMi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjVmMy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjZkNC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjdiNS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjg5Ni4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNjk3OC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmE1OC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmIzOS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmMxYS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmNmYi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmRkYy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmViZC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNmY5ZS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzA3Zi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzE2MC4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzI0MS4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzMyMi4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzQwMy4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzRlNC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzVjNS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzZhNi4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzc4Ny4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzg2OC4uLicsIDUsIHY9Jy02Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNzk0OC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2EyOS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2IwYS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2JlYi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2NjYy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2RhZC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2U4Zi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2Y3MC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODA1MS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODEzMi4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODIxMy4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODJmNC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODNkNS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODRiNi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODU5Ny4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODY3OC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODc1OS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODgzYS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODkxYi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nODlmYy4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGFkZC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGJiZS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGM5Zi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGQ4MC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGU2MS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOGY0Mi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTAyMy4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTEwNC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTFlNS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTJjNi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTNhOC4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTQ4OC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTU2OS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTY0YS4uLicsIDUsIHY9Jy05Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTcyYi4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTgwYy4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOThlZC4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOTljZS4uLicsIDUsIHY9Jy04Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWFhZi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWI5MC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWM3MS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWQ1Mi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWUzMy4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWYxNC4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nOWZmNS4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTBkNi4uLicsIDUsIHY9Jy03Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTFiNy4uLicsIDUsIHY9Jy02NDYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTI5OC4uLicsIDUsIHY9Jy0zNTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTM3OS4uLicsIDUsIHY9Jy05ODYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTQ1YS4uLicsIDUsIHY9JzY5NyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTUzYi4uLicsIDUsIHY9Jzc3NiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTYxYy4uLicsIDUsIHY9JzkyNSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTZmZC4uLicsIDUsIHY9JzEyNSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTdlMC4uLicsIDUsIHY9JzQ1NiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYThjMC4uLicsIDUsIHY9JzkwMyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMC4uLicsIDUsIHY9JzI3OCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWE4MS4uLicsIDUsIHY9JzI3Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWI2Mi4uLicsIDUsIHY9JzQzIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWM0My4uLicsIDUsIHY9JzE3MyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWQyNC4uLicsIDUsIHY9Jzk0NyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWUwNS4uLicsIDUsIHY9JzcyOCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWVlNi4uLicsIDUsIHY9Jy00NTIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYWZjNy4uLicsIDUsIHY9Jy0xMTcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjBhOC4uLicsIDUsIHY9JzIzIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjI2YS4uLicsIDUsIHY9JzE4MiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjM0Yi4uLicsIDUsIHY9Jy0xNTIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjQyYy4uLicsIDUsIHY9Jy00MjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjUwZC4uLicsIDUsIHY9Jy03MDUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjVlZS4uLicsIDUsIHY9Jy03OTAuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjZjZi4uLicsIDUsIHY9Jy0xNTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjdiMC4uLicsIDUsIHY9Jy0yMDIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjg5MS4uLicsIDUsIHY9Jy0xNzUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYjk3Mi4uLicsIDUsIHY9Jy0xNzIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmE1My4uLicsIDUsIHY9Jy0xOTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmIzNC4uLicsIDUsIHY9Jy03NDEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmMxNS4uLicsIDUsIHY9Jy04MTIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmNmNi4uLicsIDUsIHY9Jy04OTEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmRkOC4uLicsIDUsIHY9JzY1MiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmViOC4uLicsIDUsIHY9JzQxMSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYmY5OS4uLicsIDUsIHY9JzUxNiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzA3YS4uLicsIDUsIHY9JzM5OCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzE1Yi4uLicsIDUsIHY9JzM4MiIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzIzYy4uLicsIDUsIHY9JzQ3MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzMxZC4uLicsIDUsIHY9JzU5MSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzNmZS4uLicsIDUsIHY9JzI2NyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzRkZi4uLicsIDUsIHY9Jzc3MCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzVjMC4uLicsIDUsIHY9JzE2NCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzZhMS4uLicsIDUsIHY9JzQzOCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzc4Mi4uLicsIDUsIHY9Jy00MyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzg2My4uLicsIDUsIHY9JzcyIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYzk0NC4uLicsIDUsIHY9JzI0OSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2EyNS4uLicsIDUsIHY9JzIwMSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2IwNi4uLicsIDUsIHY9JzExNSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2JlNy4uLicsIDUsIHY9Jy00MjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2NjOC4uLicsIDUsIHY9Jy0yMjkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2RhOS4uLicsIDUsIHY9Jy0yODQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2U4YS4uLicsIDUsIHY9Jy0yNDcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nY2Y2Yi4uLicsIDUsIHY9Jy0xMzUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDA0Yy4uLicsIDUsIHY9Jy01NCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDEyZC4uLicsIDUsIHY9Jzk2Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDIwZS4uLicsIDUsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDJmMC4uLicsIDUsIHY9JzE2Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDNkMC4uLicsIDUsIHY9JzU5OCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMS4uLicsIDUsIHY9JzcyMSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDU5Mi4uLicsIDUsIHY9JzgxOCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDY3My4uLicsIDUsIHY9JzEwNjcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDc1NC4uLicsIDUsIHY9JzEyNDUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDgzNS4uLicsIDUsIHY9Jy0xMTcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDkxNi4uLicsIDUsIHY9Jy03MjEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDlmNy4uLicsIDUsIHY9Jy0xNTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGFkOC4uLicsIDUsIHY9Jy0yMDguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGJiOS4uLicsIDUsIHY9Jy0yNTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGM5YS4uLicsIDUsIHY9Jy0yMzQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGQ3Yi4uLicsIDUsIHY9Jy0yOTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGU1Yy4uLicsIDUsIHY9Jy0yNzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZGYzZC4uLicsIDUsIHY9Jy0yODUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTAxZC4uLicsIDUsIHY9Jy0yOTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTBmZS4uLicsIDUsIHY9Jy0yODAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTFkZi4uLicsIDUsIHY9Jy0zMDMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTJjMC4uLicsIDUsIHY9Jy00MDEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTNhMS4uLicsIDUsIHY9Jy0zOTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTQ4Mi4uLicsIDUsIHY9Jy0zNDEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTU2My4uLicsIDUsIHY9Jy0zNDQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTY0NC4uLicsIDUsIHY9Jy0yNTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTcyNS4uLicsIDUsIHY9Jy0yMTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTgwNi4uLicsIDUsIHY9Jy0xNzYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZThlNy4uLicsIDUsIHY9Jy00NjUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZTljOC4uLicsIDUsIHY9Jy03MDIuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWFhOS4uLicsIDUsIHY9Jy02NDcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWI4YS4uLicsIDUsIHY9Jy02NzYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWM2Yi4uLicsIDUsIHY9Jy01MDkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWQ0Yy4uLicsIDUsIHY9Jy0yMTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWUyZC4uLicsIDUsIHY9Jy0yMzUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWYwZS4uLicsIDUsIHY9Jy0zMTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZWZmMC4uLicsIDUsIHY9Jy00MDMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjBkMS4uLicsIDUsIHY9Jy00MzMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjFiMi4uLicsIDUsIHY9Jy00NjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjI5My4uLicsIDUsIHY9Jy00NjYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjM3NC4uLicsIDUsIHY9Jy00MzQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjQ1NS4uLicsIDUsIHY9Jy00NTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjUzNi4uLicsIDUsIHY9Jy00OTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjYxNy4uLicsIDUsIHY9Jy00NjAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjZmOC4uLicsIDUsIHY9Jy00ODYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjdkOS4uLicsIDUsIHY9Jy00MzAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjhiYS4uLicsIDUsIHY9Jy0zODkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZjk5Yi4uLicsIDUsIHY9Jy0zNzguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmE3Yy4uLicsIDUsIHY9Jy0yOTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmI1ZC4uLicsIDUsIHY9Jy0zMDkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmMzZS4uLicsIDUsIHY9Jy0zMzMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmQxZi4uLicsIDUsIHY9Jy0yNjguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmUwMC4uLicsIDUsIHY9Jy0yNTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmVlMS4uLicsIDUsIHY9Jy0yMDcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmZjMi4uLicsIDUsIHY9Jy0xOTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAwYS4uLicsIDYsIHY9Jy0xNzguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAxOC4uLicsIDYsIHY9Jy0xNzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAyNi4uLicsIDYsIHY9Jy0yMDcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTAzNC4uLicsIDYsIHY9Jy0yNjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA0Mi4uLicsIDYsIHY9Jy0zOTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1MC4uLicsIDYsIHY9Jy00NDAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA1ZS4uLicsIDYsIHY9Jy00MzYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA2Yy4uLicsIDYsIHY9Jy00NjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA3YS4uLicsIDYsIHY9Jy00MzAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA4OC4uLicsIDYsIHY9Jy0zOTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTA5Ni4uLicsIDYsIHY9Jy00MTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBhNC4uLicsIDYsIHY9Jy00MTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBiMi4uLicsIDYsIHY9Jy00MzQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjMS4uLicsIDYsIHY9Jy00MTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBjZi4uLicsIDYsIHY9Jy00NDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBkZC4uLicsIDYsIHY9Jy00MTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBlYi4uLicsIDYsIHY9Jy00NDkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTBmOS4uLicsIDYsIHY9Jy0zODguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEwNy4uLicsIDYsIHY9Jy0zMjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTExNS4uLicsIDYsIHY9Jy0yODYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEyMy4uLicsIDYsIHY9Jy0yNjYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzMS4uLicsIDYsIHY9Jy0xNzcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTEzZi4uLicsIDYsIHY9Jy0xODEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE0ZC4uLicsIDYsIHY9Jy0xODIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE1Yi4uLicsIDYsIHY9Jy0xODAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE2OS4uLicsIDYsIHY9Jy0xNTkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE3Ny4uLicsIDYsIHY9Jy0yMDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE4NS4uLicsIDYsIHY9Jy0yOTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTE5My4uLicsIDYsIHY9Jy0zNjIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFhMi4uLicsIDYsIHY9Jy00ODMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiMC4uLicsIDYsIHY9Jy00MjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFiZS4uLicsIDYsIHY9Jy01MjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFjYy4uLicsIDYsIHY9Jy00NDAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFkYS4uLicsIDYsIHY9Jy00MzIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFlOC4uLicsIDYsIHY9Jy00NDIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTFmNi4uLicsIDYsIHY9Jy0zOTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIwNS4uLicsIDYsIHY9Jy00Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIxMy4uLicsIDYsIHY9Jy00Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyMS4uLicsIDYsIHY9Jy00Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIyZi4uLicsIDYsIHY9Jy0zIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTIzZC4uLicsIDYsIHY9Jy0zIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI0Yi4uLicsIDYsIHY9Jy0zIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI1OS4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI2Ny4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI3Ni4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI4My4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5Zi4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJhZC4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJiYi4uLicsIDYsIHY9Jy0xIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJjOS4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJkNy4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJlNS4uLicsIDYsIHY9Jy0zIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTJmMy4uLicsIDYsIHY9Jy0yIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwMS4uLicsIDYsIHY9Jy00Ii8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMwZi4uLicsIDYsIHY9Jy0zIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMxZC4uLicsIDYsIHY9Jy0zIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMyYi4uLicsIDYsIHY9Jy0zIi8uLi4nLCAyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTMzOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM0Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM1NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM2NC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM3Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM4ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTM5Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNhYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNiOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNjNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNkNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNlMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTNmZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQwYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQxYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQyOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQzNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ0NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ1My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2MS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ2Zi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ3ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ4Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTQ5OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRhNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRiNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRjMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRkZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRlZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTRmYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUwOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUxNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUyNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU0Mi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1MC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU1ZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU2Yy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU3YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU4OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTU5Ni4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVhNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTViMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVjZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVkYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVlYS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTVmOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYwNy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYxNS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYyMy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTYzZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY0ZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY1Yi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY2OS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY3Ny4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY4NS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTY5My4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhMS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZhZi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZiZC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZjYi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZkOS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZlOC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTZmNi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcwNC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcxMi4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyMC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTcyZS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTczYy4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc0YS4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc1OC4uLicsIDYsIHY9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc2Ni4uLicsIDYsIHY9Jy02ODYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc3NC4uLicsIDYsIHY9Jy02NzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc4Mi4uLicsIDYsIHY9Jy03MjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5MC4uLicsIDYsIHY9Jy02NzMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTc5ZS4uLicsIDYsIHY9Jy02MDMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdhYy4uLicsIDYsIHY9Jy01ODkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdiYS4uLicsIDYsIHY9Jy02MDYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdjOS4uLicsIDYsIHY9Jy01NDguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdkNy4uLicsIDYsIHY9Jy01NDQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdlNS4uLicsIDYsIHY9Jy01MzMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdmMy4uLicsIDYsIHY9Jy00OTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwMS4uLicsIDYsIHY9Jy01MTkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgwZi4uLicsIDYsIHY9Jy02MzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgxZC4uLicsIDYsIHY9Jy02ODMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgyYi4uLicsIDYsIHY9Jy03ODUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTgzOS4uLicsIDYsIHY9Jy0xMzUuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg0Ny4uLicsIDYsIHY9Jy0xMzMuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg1NS4uLicsIDYsIHY9Jy0xMjcuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg2My4uLicsIDYsIHY9Jy0xMTguLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3MS4uLicsIDYsIHY9Jy0xMjMuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg3Zi4uLicsIDYsIHY9Jy0xMTcuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg4ZC4uLicsIDYsIHY9Jy0xMjYuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTg5Yy4uLicsIDYsIHY9Jy0xMTguLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThiOC4uLicsIDYsIHY9Jy03NDcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThjNi4uLicsIDYsIHY9Jy04MTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThkNC4uLicsIDYsIHY9Jy03NjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThlMi4uLicsIDYsIHY9Jy02NTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmMC4uLicsIDYsIHY9Jy02MTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMThmZS4uLicsIDYsIHY9Jy01NjYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkwYy4uLicsIDYsIHY9Jy00NDguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkxYS4uLicsIDYsIHY9Jy00MzAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkyOC4uLicsIDYsIHY9Jy00MjYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTkzNi4uLicsIDYsIHY9Jy00MTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk0NC4uLicsIDYsIHY9Jy00MTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk1Mi4uLicsIDYsIHY9Jy00NTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2MC4uLicsIDYsIHY9Jy01MTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk2ZS4uLicsIDYsIHY9Jy02MDMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk3Yy4uLicsIDYsIHY9Jy02MzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk4Yi4uLicsIDYsIHY9Jy01ODkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTk5OS4uLicsIDYsIHY9Jy02NjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTliNS4uLicsIDYsIHY9Jy02NjAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTljMy4uLicsIDYsIHY9Jy02MTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkMS4uLicsIDYsIHY9Jy02MTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlkZi4uLicsIDYsIHY9Jy02MjIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZC4uLicsIDYsIHY9Jy02MDQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTllZS4uLicsIDYsIHY9Jy02MDAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTlmYi4uLicsIDYsIHY9Jy0yMjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEwOS4uLicsIDYsIHY9Jy0yNTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWExNy4uLicsIDYsIHY9Jy0zMDguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEyNS4uLicsIDYsIHY9Jy0zMjYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWEzMy4uLicsIDYsIHY9Jy0yMjYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0MS4uLicsIDYsIHY9Jy0yMTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE0Zi4uLicsIDYsIHY9Jy0xNTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE1ZS4uLicsIDYsIHY9Jy0xNjcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE2Yy4uLicsIDYsIHY9Jy05NjAuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE3YS4uLicsIDYsIHY9Jy0xMTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE4OC4uLicsIDYsIHY9Jy0xMDYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9Jy01MDUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFhNC4uLicsIDYsIHY9Jy01MzYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFiMi4uLicsIDYsIHY9Jy05OTEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjMC4uLicsIDYsIHY9Jy0xODEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFjZS4uLicsIDYsIHY9Jy0yNTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFkYy4uLicsIDYsIHY9Jy0yODQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFlYS4uLicsIDYsIHY9Jy0yNjAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWFmOC4uLicsIDYsIHY9Jy0yOTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIwNi4uLicsIDYsIHY9Jy0yMTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWIxNC4uLicsIDYsIHY9Jy0yMDcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM3NC4uLicsIDYsIHY9JzM1NCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM4Mi4uLicsIDYsIHY9JzQzOCIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5MC4uLicsIDYsIHY9JzM0MDguLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM5ZS4uLicsIDYsIHY9JzMyNjkuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNhYy4uLicsIDYsIHY9JzM2NTUuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNiYS4uLicsIDYsIHY9JzM1MjEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNjOC4uLicsIDYsIHY9JzU0MzEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNkNi4uLicsIDYsIHY9JzU1NjAuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNlNC4uLicsIDYsIHY9JzU2NjAuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWNmMi4uLicsIDYsIHY9JzU2MjMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwMS4uLicsIDYsIHY9JzU4OTYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQwZi4uLicsIDYsIHY9JzY2NTYuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQxZC4uLicsIDYsIHY9JzY2NDcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQyYi4uLicsIDYsIHY9JzY3MzMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQzOS4uLicsIDYsIHY9JzY5MTQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ0Ny4uLicsIDYsIHY9JzY4NzMuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ1NS4uLicsIDYsIHY9JzY2OTEuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ2My4uLicsIDYsIHY9JzU4MTQuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3MS4uLicsIDYsIHY9JzU2MTcuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ3Zi4uLicsIDYsIHY9JzU2MDguLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ4ZC4uLicsIDYsIHY9Jy0zMjMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWQ5Yi4uLicsIDYsIHY9Jy0zNjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRhOS4uLicsIDYsIHY9Jy0zNjIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRiNy4uLicsIDYsIHY9Jy0zNDQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRjNS4uLicsIDYsIHY9Jy0zNjAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRkMy4uLicsIDYsIHY9Jy0zNzMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRlMS4uLicsIDYsIHY9Jy01OTkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmMC4uLicsIDYsIHY9Jy02NzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWRmZS4uLicsIDYsIHY9Jy02NTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUwYy4uLicsIDYsIHY9Jy02NzYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUxYS4uLicsIDYsIHY9Jy02ODAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUyOC4uLicsIDYsIHY9Jy02NTIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWUzNi4uLicsIDYsIHY9Jy02MTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU0NC4uLicsIDYsIHY9Jy01NjcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU1Mi4uLicsIDYsIHY9Jy00OTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2MC4uLicsIDYsIHY9Jy00OTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU2ZS4uLicsIDYsIHY9Jy00ODAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU3Yy4uLicsIDYsIHY9Jy0xOTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU4YS4uLicsIDYsIHY9Jy0xODEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWU5OC4uLicsIDYsIHY9Jy0xODMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVhNi4uLicsIDYsIHY9Jy0yMjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWViNC4uLicsIDYsIHY9Jy0yMzIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVjMi4uLicsIDYsIHY9Jy0yNjguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkMS4uLicsIDYsIHY9Jy0yNjcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVkZi4uLicsIDYsIHY9Jy0yNzcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVlZC4uLicsIDYsIHY9Jy0yNjguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWVmYi4uLicsIDYsIHY9Jy0yNjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYwOS4uLicsIDYsIHY9Jy0yNTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9Jy0yMzUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYyNS4uLicsIDYsIHY9Jy0yMzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYzMy4uLicsIDYsIHY9Jy0yNTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0MS4uLicsIDYsIHY9Jy0yODEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY0Zi4uLicsIDYsIHY9Jy0zMTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY1ZC4uLicsIDYsIHY9Jy0zNTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY2Yi4uLicsIDYsIHY9Jy0zNTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY3OS4uLicsIDYsIHY9Jy0zMTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY4Ny4uLicsIDYsIHY9Jy0zMzQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWY5NS4uLicsIDYsIHY9Jy0zMTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZhNC4uLicsIDYsIHY9Jy0yODAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZiMi4uLicsIDYsIHY9Jy0yNTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjMC4uLicsIDYsIHY9Jy0yNDkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZjZS4uLicsIDYsIHY9Jy0yMTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZkYy4uLicsIDYsIHY9Jy0yMTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZlYS4uLicsIDYsIHY9Jy0yMTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWZmOC4uLicsIDYsIHY9Jy0yNDkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAwNi4uLicsIDYsIHY9Jy0yMzYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAxNC4uLicsIDYsIHY9Jy0zNTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAyMi4uLicsIDYsIHY9Jy00NTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzMC4uLicsIDYsIHY9Jy01MzQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjAzZS4uLicsIDYsIHY9Jy02MDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA0Yy4uLicsIDYsIHY9Jy01NzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA1YS4uLicsIDYsIHY9Jy01MzQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA2OC4uLicsIDYsIHY9Jy01MzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA3Ni4uLicsIDYsIHY9Jy01OTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA4NC4uLicsIDYsIHY9Jy02MDkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjA5My4uLicsIDYsIHY9Jy02NzcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhMS4uLicsIDYsIHY9Jy02MzcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBhZi4uLicsIDYsIHY9Jy01NDcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBiZC4uLicsIDYsIHY9Jy01MzguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBjYi4uLicsIDYsIHY9Jy00NjAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBkOS4uLicsIDYsIHY9Jy00MzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBlNy4uLicsIDYsIHY9Jy00MDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjBmNS4uLicsIDYsIHY9Jy0zODYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEwMy4uLicsIDYsIHY9Jy0zNDguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExMS4uLicsIDYsIHY9Jy0zMTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjExZi4uLicsIDYsIHY9Jy0zMDEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEyZC4uLicsIDYsIHY9Jy0yOTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjEzYi4uLicsIDYsIHY9Jy0yODEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE0OS4uLicsIDYsIHY9Jy0zNjQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE1Ny4uLicsIDYsIHY9Jy00NDkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE2NS4uLicsIDYsIHY9Jy01NzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE3NC4uLicsIDYsIHY9Jy02MTkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE4Mi4uLicsIDYsIHY9Jy02MTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5MC4uLicsIDYsIHY9Jy02MTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjE5ZS4uLicsIDYsIHY9Jy02MjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFhYy4uLicsIDYsIHY9Jy01ODkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9Jy01OTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFjOC4uLicsIDYsIHY9Jy01NjMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFkNi4uLicsIDYsIHY9Jy02MjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFlNC4uLicsIDYsIHY9Jy01NzguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFmMi4uLicsIDYsIHY9Jy01NzIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwMC4uLicsIDYsIHY9Jy01NTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIwZS4uLicsIDYsIHY9Jy01NDAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIxYy4uLicsIDYsIHY9Jy00NjAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIyYS4uLicsIDYsIHY9Jy0zODcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjIzOC4uLicsIDYsIHY9Jy0zNjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI0Ny4uLicsIDYsIHY9Jy0zMjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI1NS4uLicsIDYsIHY9Jy0xNjguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI2My4uLicsIDYsIHY9Jy0yMDcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3MS4uLicsIDYsIHY9Jy0yMDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI3Zi4uLicsIDYsIHY9Jy0xNjcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI4ZC4uLicsIDYsIHY9Jy0xNzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjI5Yi4uLicsIDYsIHY9Jy0zNDguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJhOS4uLicsIDYsIHY9Jy0zOTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJiNy4uLicsIDYsIHY9Jy00NTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJjNS4uLicsIDYsIHY9Jy00NzguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJkMy4uLicsIDYsIHY9Jy00NDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlMS4uLicsIDYsIHY9Jy00NjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJlZi4uLicsIDYsIHY9Jy00ODMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjJmZC4uLicsIDYsIHY9Jy00NjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMwYi4uLicsIDYsIHY9Jy00NDUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMxOS4uLicsIDYsIHY9Jy01MzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMyNy4uLicsIDYsIHY9Jy01NTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjMzNi4uLicsIDYsIHY9Jy01ODYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM0NC4uLicsIDYsIHY9Jy01MjIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM1Mi4uLicsIDYsIHY9Jy01MTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2MC4uLicsIDYsIHY9Jy01MjUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM2ZS4uLicsIDYsIHY9Jy00MzguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM3Yy4uLicsIDYsIHY9Jy00MjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM4YS4uLicsIDYsIHY9Jy00MDEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjM5OC4uLicsIDYsIHY9Jy0zMjIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNhNi4uLicsIDYsIHY9Jy0zMzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNiNC4uLicsIDYsIHY9Jy0zMTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNjMi4uLicsIDYsIHY9Jy0yOTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkMC4uLicsIDYsIHY9Jy0yOTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNkZS4uLicsIDYsIHY9Jy0yOTMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNlYy4uLicsIDYsIHY9Jy0zNTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjNmYS4uLicsIDYsIHY9Jy00NTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQwOC4uLicsIDYsIHY9Jy01MTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQxNy4uLicsIDYsIHY9Jy01NzMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQyNS4uLicsIDYsIHY9Jy02NTEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQzMy4uLicsIDYsIHY9Jy02NzcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0MS4uLicsIDYsIHY9Jy02NzUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ0Zi4uLicsIDYsIHY9Jy02MzYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ2Yi4uLicsIDYsIHY9Jy02NTQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ3OS4uLicsIDYsIHY9Jy02MjcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ4Ny4uLicsIDYsIHY9Jy01NDAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ5NS4uLicsIDYsIHY9Jy01NzkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRhMy4uLicsIDYsIHY9Jy01NjQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiMS4uLicsIDYsIHY9Jy01NzQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRiZi4uLicsIDYsIHY9Jy01NDQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRjZC4uLicsIDYsIHY9Jy01NDQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRkYi4uLicsIDYsIHY9Jy00NTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRlOS4uLicsIDYsIHY9Jy00MDEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjRmOC4uLicsIDYsIHY9Jy0zNDguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUwNi4uLicsIDYsIHY9Jy0zNjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUxNC4uLicsIDYsIHY9Jy0zNTUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUyMi4uLicsIDYsIHY9Jy0zNDAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzMC4uLicsIDYsIHY9Jy0zNjAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjUzZS4uLicsIDYsIHY9Jy00MDIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU0Yy4uLicsIDYsIHY9Jy00MTguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU1YS4uLicsIDYsIHY9Jy00OTkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU2OC4uLicsIDYsIHY9Jy01ODEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU3Ni4uLicsIDYsIHY9Jy01NTkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU4NC4uLicsIDYsIHY9Jy0xNTIuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjU5Mi4uLicsIDYsIHY9Jy04NjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhMC4uLicsIDYsIHY9Jy00NTcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVhZS4uLicsIDYsIHY9Jy02MzEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjViYy4uLicsIDYsIHY9Jy02MTAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVjYS4uLicsIDYsIHY9Jy01NzUuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVkOS4uLicsIDYsIHY9Jy01NzYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVlNy4uLicsIDYsIHY9Jy01NjQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjVmNS4uLicsIDYsIHY9Jy01MjQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYwMy4uLicsIDYsIHY9Jy01NTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxMS4uLicsIDYsIHY9Jy00ODcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYxZi4uLicsIDYsIHY9Jy00NjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYyZC4uLicsIDYsIHY9Jy00NjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjYzYi4uLicsIDYsIHY9Jy0zNjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY0OS4uLicsIDYsIHY9Jy0zNDYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY1Ny4uLicsIDYsIHY9Jy0zNTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY2NS4uLicsIDYsIHY9Jy0zNjcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY3My4uLicsIDYsIHY9Jy0zNjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4MS4uLicsIDYsIHY9Jy0zNjIuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY4Zi4uLicsIDYsIHY9Jy0zODYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjY5ZC4uLicsIDYsIHY9Jy0zOTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZhYi4uLicsIDYsIHY9Jy0zODguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZiYS4uLicsIDYsIHY9Jy00MzguLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZjOC4uLicsIDYsIHY9Jy00MjcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZkNi4uLicsIDYsIHY9Jy0zOTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZlNC4uLicsIDYsIHY9Jy00MDAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjZmMi4uLicsIDYsIHY9Jy0zNTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwMC4uLicsIDYsIHY9Jy0zODcuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9Jy0zNTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcxYy4uLicsIDYsIHY9Jy00NjkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcyYS4uLicsIDYsIHY9Jy01MTkuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjczOC4uLicsIDYsIHY9Jy01MjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc0Ni4uLicsIDYsIHY9Jy01MDMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc1NC4uLicsIDYsIHY9Jy00OTYuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc2Mi4uLicsIDYsIHY9Jy00MDQuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3MC4uLicsIDYsIHY9Jy0zNzAuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjc3ZS4uLicsIDYsIHY9Jy0zMjEuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nNDM4Mi4uLicsIDYsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PSctMTEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwOCIuLi4nLCAzLCB2PSctMTI4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMzIuLi4nLCA0LCB2PSctMTM1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhM2MuLi4nLCA0LCB2PSctMTQyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4MzUuLi4nLCA0LCB2PSctMTI0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NDUuLi4nLCA0LCB2PSctMTEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NTUuLi4nLCA0LCB2PSctOTA5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNjUuLi4nLCA0LCB2PSctMTQ3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwNzUuLi4nLCA0LCB2PSctMTUyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlODUuLi4nLCA0LCB2PSctMTQzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOTYuLi4nLCA0LCB2PSctMTc4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYTUuLi4nLCA0LCB2PSctMTc1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YjYuLi4nLCA0LCB2PSctMTY4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2YzUuLi4nLCA0LCB2PSctMTc0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZDcuLi4nLCA0LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzMGIuLi4nLCA0LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZjYuLi4nLCA0LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMDYuLi4nLCA0LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMTcuLi4nLCA0LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTguLi4nLCA1LCB2PSctNyIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiM2UuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjMWYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDAuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3OGMuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI4NmQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI5NGUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiMTAuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJiZjEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJjZDIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJkYjMuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJlOTQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJmNzUuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMwNTYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMxMzcuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyMTkuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMyZjkuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzMzZGEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM0YmIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM1OWQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM2N2QuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM3NWUuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM4NDAuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzM5MjEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhMDEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNhZTIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNiYzMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNjYTQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNkODUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNlNjYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzNmNDguLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQwMjguLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxMDkuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQxZWEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQyY2IuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQzYWMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ0OGQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ1NmUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ2NGYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4MGYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ4ZjAuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzQ5ZDEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRhYjQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRiOTUuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRjNzYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRkNTcuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRlMzguLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmMTkuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzRmZmEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUwZGQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUxYmMuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUyOWQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzUzN2UuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU0NjAuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU1NDAuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU2MjEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3MDIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU3ZTMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU4YzQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU5YTcuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVhODYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzViNjcuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVjNDguLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVkMjkuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlMGEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVlZWIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzVmY2MuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYwYWQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYxOGUuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYyNmYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzYzNTAuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY0MzEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1MTIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY1ZjMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY2ZDQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY3YjUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY4OTYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzY5NzguLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZhNTguLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZiMzkuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjMWEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZjZmIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZkZGMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZlYmQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzZmOWUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcwN2YuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcxNjAuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzcyNDEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzczMjIuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0MDMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc0ZTQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc1YzUuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc2YTYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc3ODcuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc4NjguLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzc5NDguLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdhMjkuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiMGEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdiZWIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdjY2MuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdkYWQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdlOGYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzAuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgwNTEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgxMzIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyMTMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgyZjQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzgzZDUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg0YjYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg1OTcuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg2NzguLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg3NTkuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg4M2EuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5MWIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzg5ZmMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhhZGQuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhiYmUuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhjOWYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhkODAuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhlNjEuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzhmNDIuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkwMjMuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxMDQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkxZTUuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkyYzYuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzkzYTguLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk0ODguLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk1NjkuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk2NGEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk3MmIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4MGMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk4ZWQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89Jzk5Y2UuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlhYWYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzliOTAuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzljNzEuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlkNTIuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzllMzMuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmMTQuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzlmZjUuLi4nLCA1LCB2PSctNiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EwZDYuLi4nLCA1LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ExYjcuLi4nLCA1LCB2PSctMTU5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EyOTguLi4nLCA1LCB2PSctNTAwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2EzNzkuLi4nLCA1LCB2PScxMzc5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E0NWEuLi4nLCA1LCB2PSctNDUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E1M2IuLi4nLCA1LCB2PSctMzQ2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2MWMuLi4nLCA1LCB2PSctNTgwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E2ZmQuLi4nLCA1LCB2PSctNzUyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E3ZTAuLi4nLCA1LCB2PSctMTM2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E4YzAuLi4nLCA1LCB2PSctMTkwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTAuLi4nLCA1LCB2PScxMDEiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FhODEuLi4nLCA1LCB2PSctMzY2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FiNjIuLi4nLCA1LCB2PSctNzQwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FjNDMuLi4nLCA1LCB2PSctNTUwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FkMjQuLi4nLCA1LCB2PSc0MzIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlMDUuLi4nLCA1LCB2PScxNTk1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FlZTYuLi4nLCA1LCB2PScyNzUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2FmYzcuLi4nLCA1LCB2PScxMDE5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IwYTguLi4nLCA1LCB2PSczNDQ0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IyNmEuLi4nLCA1LCB2PSczNjI5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2IzNGIuLi4nLCA1LCB2PSczMjAzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I0MmMuLi4nLCA1LCB2PScyMTUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1MGQuLi4nLCA1LCB2PSczODAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I1ZWUuLi4nLCA1LCB2PSc4OTAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I2Y2YuLi4nLCA1LCB2PSctNDQ2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I3YjAuLi4nLCA1LCB2PSctMjAwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I4OTEuLi4nLCA1LCB2PSctNDQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2I5NzIuLi4nLCA1LCB2PSctNDI0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JhNTMuLi4nLCA1LCB2PSctNzE4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JiMzQuLi4nLCA1LCB2PSc5NDYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjMTUuLi4nLCA1LCB2PScyNzYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JjZjYuLi4nLCA1LCB2PSctOTQ0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JkZDguLi4nLCA1LCB2PSczMTI5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JlYjguLi4nLCA1LCB2PSc0NTMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2JmOTkuLi4nLCA1LCB2PScxOTQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MwN2EuLi4nLCA1LCB2PSctMjQ2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MxNWIuLi4nLCA1LCB2PSctMTIyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MyM2MuLi4nLCA1LCB2PSc0MzAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzMWQuLi4nLCA1LCB2PScxNTgyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2MzZmUuLi4nLCA1LCB2PSc3MjAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M0ZGYuLi4nLCA1LCB2PScxMzMzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M1YzAuLi4nLCA1LCB2PSc1ODgiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M2YTEuLi4nLCA1LCB2PSc2NDIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M3ODIuLi4nLCA1LCB2PScxMDk2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M4NjMuLi4nLCA1LCB2PSczMTMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2M5NDQuLi4nLCA1LCB2PSczNzQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NhMjUuLi4nLCA1LCB2PScyMDQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiMDYuLi4nLCA1LCB2PSc2OTIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NiZTcuLi4nLCA1LCB2PSctMTk2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NjYzguLi4nLCA1LCB2PScxODg4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NkYTkuLi4nLCA1LCB2PScyNTAyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NlOGEuLi4nLCA1LCB2PScxODQwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2NmNmIuLi4nLCA1LCB2PScyNDM3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QwNGMuLi4nLCA1LCB2PScxOTMwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QxMmQuLi4nLCA1LCB2PScxMjE5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyMGUuLi4nLCA1LCB2PSctMjUwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QyZjAuLi4nLCA1LCB2PSctMTk3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2QzZDAuLi4nLCA1LCB2PSctMTAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q0YjEuLi4nLCA1LCB2PSctMTA3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q1OTIuLi4nLCA1LCB2PSctMzg4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q2NzMuLi4nLCA1LCB2PScyMjkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q3NTQuLi4nLCA1LCB2PScxMTMxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q4MzUuLi4nLCA1LCB2PSctNzI2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5MTYuLi4nLCA1LCB2PScxNjYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q5ZjcuLi4nLCA1LCB2PSc5NjUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RhZDguLi4nLCA1LCB2PScyMzQxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RiYjkuLi4nLCA1LCB2PScyMzU0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RjOWEuLi4nLCA1LCB2PScyNTY1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RkN2IuLi4nLCA1LCB2PScxMTM2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RlNWMuLi4nLCA1LCB2PSczNjciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2RmM2QuLi4nLCA1LCB2PScxNzMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwMWQuLi4nLCA1LCB2PScxNTYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UwZmUuLi4nLCA1LCB2PSc0NjAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UxZGYuLi4nLCA1LCB2PSczNTgiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UyYzAuLi4nLCA1LCB2PSctMzA4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2UzYTEuLi4nLCA1LCB2PSctMTAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U0ODIuLi4nLCA1LCB2PSc5MyIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U1NjMuLi4nLCA1LCB2PSctNzIzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U2NDQuLi4nLCA1LCB2PScxNDciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U3MjUuLi4nLCA1LCB2PSctNTUxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4MDYuLi4nLCA1LCB2PSctNjI2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U4ZTcuLi4nLCA1LCB2PScyMzE2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2U5YzguLi4nLCA1LCB2PSc3MTQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VhYTkuLi4nLCA1LCB2PSc2MDAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ViOGEuLi4nLCA1LCB2PSc5NTMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VjNmIuLi4nLCA1LCB2PScyMjY3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VkNGMuLi4nLCA1LCB2PSctNDAzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VlMmQuLi4nLCA1LCB2PSc5OTkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmMGUuLi4nLCA1LCB2PSc0NzUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2VmZjAuLi4nLCA1LCB2PScxNjYzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YwZDEuLi4nLCA1LCB2PSc4MjkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YxYjIuLi4nLCA1LCB2PScxMDU1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YyOTMuLi4nLCA1LCB2PSctMzE0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2YzNzQuLi4nLCA1LCB2PScxNDMxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y0NTUuLi4nLCA1LCB2PScxMjAxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y1MzYuLi4nLCA1LCB2PScxMjgwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2MTcuLi4nLCA1LCB2PScxNDMxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y2ZjguLi4nLCA1LCB2PScxMTQ1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y3ZDkuLi4nLCA1LCB2PScxNjM1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y4YmEuLi4nLCA1LCB2PSc5NTciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Y5OWIuLi4nLCA1LCB2PScxMDE5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZhN2MuLi4nLCA1LCB2PScxMjE5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZiNWQuLi4nLCA1LCB2PScxMTQzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZjM2UuLi4nLCA1LCB2PSctODkzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZkMWYuLi4nLCA1LCB2PSctMTAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlMDAuLi4nLCA1LCB2PSctMTM4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTEuLi4nLCA1LCB2PSctMTgyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZmYzIuLi4nLCA1LCB2PSctMjIwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMGEuLi4nLCA2LCB2PSc1MDIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMTguLi4nLCA2LCB2PSc5NDAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMjYuLi4nLCA2LCB2PScxNzE5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwMzQuLi4nLCA2LCB2PScxNTkyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNDIuLi4nLCA2LCB2PSc5NjAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNTAuLi4nLCA2LCB2PScxNTM3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNWUuLi4nLCA2LCB2PScxMTc3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwNmMuLi4nLCA2LCB2PScxMzM3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwN2EuLi4nLCA2LCB2PSc3MzciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwODguLi4nLCA2LCB2PSc3MjMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwOTYuLi4nLCA2LCB2PSc5MTciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYTQuLi4nLCA2LCB2PSc3OTQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYjIuLi4nLCA2LCB2PScxMDc1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwYzEuLi4nLCA2LCB2PScyMzI4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwY2YuLi4nLCA2LCB2PScxMTkyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZGQuLi4nLCA2LCB2PSc4NjciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZWIuLi4nLCA2LCB2PScxODQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEwZjkuLi4nLCA2LCB2PScxMiIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMDcuLi4nLCA2LCB2PSc5NzgiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMTUuLi4nLCA2LCB2PScyNTYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMjMuLi4nLCA2LCB2PSctMTAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExMzEuLi4nLCA2LCB2PSc2MTQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExM2YuLi4nLCA2LCB2PScyMDUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNGQuLi4nLCA2LCB2PScxOTUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNWIuLi4nLCA2LCB2PSczMTYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNjkuLi4nLCA2LCB2PScxMjQxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExNzcuLi4nLCA2LCB2PScxNzQ4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExODUuLi4nLCA2LCB2PScxMDQ2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExOTMuLi4nLCA2LCB2PScxMDk5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYTIuLi4nLCA2LCB2PSczMDkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYjAuLi4nLCA2LCB2PSctMjAyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExYmUuLi4nLCA2LCB2PSctNzIyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExY2MuLi4nLCA2LCB2PSc2ODAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZGEuLi4nLCA2LCB2PSc0NDAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZTguLi4nLCA2LCB2PSc4NzAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzExZjYuLi4nLCA2LCB2PSc0NzUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMDUuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMTMuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMjEuLi4nLCA2LCB2PScyIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyMmYuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyM2QuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNGIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNTkuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNjcuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyNzYuLi4nLCA2LCB2PSctMSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyODMuLi4nLCA2LCB2PSctMSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PSctMSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOWYuLi4nLCA2LCB2PSctMSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYWQuLi4nLCA2LCB2PSctMSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYmIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyYzkuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZDcuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZTUuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyZjMuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMDEuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMGYuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMWQuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMmIuLi4nLCA2LCB2PScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzMzkuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNDcuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNTUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNjQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzNzIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzODAuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOGUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzOWMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYWEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYjguLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzYzYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZDQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZTIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZjAuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEzZmUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MGMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MWEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MjguLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0MzYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NDUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NTMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NjEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0NmYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0N2QuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OGIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0OTkuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YTcuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YjUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0YzMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZDEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZGYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZWQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE0ZmIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MDkuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MTcuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MjYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MzQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NDIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NTAuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NWUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1NmMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1N2EuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ODguLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1OTYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YTQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YjIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1YzAuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1Y2UuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZGMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZWEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1ZjguLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MDcuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MTUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MjMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2MzEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2M2YuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NGQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NWIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NjkuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2NzcuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ODUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2OTMuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YTEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YWYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2YmQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2Y2IuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZDkuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZTguLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE2ZjYuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MDQuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MTIuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MjAuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3MmUuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3M2MuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NGEuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NTguLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NjYuLi4nLCA2LCB2PScxOTU5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3NzQuLi4nLCA2LCB2PScxNTA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ODIuLi4nLCA2LCB2PScxMDI3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OTAuLi4nLCA2LCB2PSc2NzciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3OWUuLi4nLCA2LCB2PSctNzU5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YWMuLi4nLCA2LCB2PSctMjA0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YmEuLi4nLCA2LCB2PSctMjU1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3YzkuLi4nLCA2LCB2PSctMjE3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PSctMjEyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZTUuLi4nLCA2LCB2PSctMjQ4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZjMuLi4nLCA2LCB2PSctMTk4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MDEuLi4nLCA2LCB2PSctMTA3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MGYuLi4nLCA2LCB2PSctNTI0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MWQuLi4nLCA2LCB2PSctMTM2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MmIuLi4nLCA2LCB2PSctMTc1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4MzkuLi4nLCA2LCB2PSctODkzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NDcuLi4nLCA2LCB2PSctODQ1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NTUuLi4nLCA2LCB2PSctMTE0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NjMuLi4nLCA2LCB2PSctMjcxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4NzEuLi4nLCA2LCB2PSctMjI5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4N2YuLi4nLCA2LCB2PSctMjIwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OGQuLi4nLCA2LCB2PSctMjAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4OWMuLi4nLCA2LCB2PSctOTk3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YjguLi4nLCA2LCB2PScxMDQ4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4YzYuLi4nLCA2LCB2PSctOTU1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZDQuLi4nLCA2LCB2PSctMTMzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZTIuLi4nLCA2LCB2PSctMTEyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZjAuLi4nLCA2LCB2PSctMTYyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE4ZmUuLi4nLCA2LCB2PSctMTQxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MGMuLi4nLCA2LCB2PSctNjcxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MWEuLi4nLCA2LCB2PSctMTUwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MjguLi4nLCA2LCB2PSctMTUxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5MzYuLi4nLCA2LCB2PSctMTYxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NDQuLi4nLCA2LCB2PSctMTAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NTIuLi4nLCA2LCB2PSctMTkyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NjAuLi4nLCA2LCB2PScxMzk3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5NmUuLi4nLCA2LCB2PSctNjI3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5N2MuLi4nLCA2LCB2PSctNzExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OGIuLi4nLCA2LCB2PScyMCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5OTkuLi4nLCA2LCB2PSctMTMwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YjUuLi4nLCA2LCB2PSctODQzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5YzMuLi4nLCA2LCB2PSctNjQyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZDEuLi4nLCA2LCB2PSctMzIwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZGYuLi4nLCA2LCB2PSctMjEwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWQuLi4nLCA2LCB2PScyOTUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZWUuLi4nLCA2LCB2PSc0MTciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE5ZmIuLi4nLCA2LCB2PSczNyIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMDkuLi4nLCA2LCB2PSctMjEwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMTcuLi4nLCA2LCB2PSctMjk4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMjUuLi4nLCA2LCB2PSctMzMyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhMzMuLi4nLCA2LCB2PSctMTQzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNDEuLi4nLCA2LCB2PSctMTk4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNGYuLi4nLCA2LCB2PSctMzU3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNWUuLi4nLCA2LCB2PSctMzIzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhNmMuLi4nLCA2LCB2PSctMjI4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhN2EuLi4nLCA2LCB2PSctMjg0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhODguLi4nLCA2LCB2PSctMjk0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PSctMjM0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYTQuLi4nLCA2LCB2PSctMTcxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYjIuLi4nLCA2LCB2PSctNjY4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhYzAuLi4nLCA2LCB2PSctMTc2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhY2UuLi4nLCA2LCB2PSctMjQxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZGMuLi4nLCA2LCB2PSctMTcyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZWEuLi4nLCA2LCB2PSctMTgzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhZjguLi4nLCA2LCB2PSctMTg4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMDYuLi4nLCA2LCB2PSctMjM0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFiMTQuLi4nLCA2LCB2PSctMjE3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PSczNzQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjODIuLi4nLCA2LCB2PSctMTMyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOTAuLi4nLCA2LCB2PSc5OTMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjOWUuLi4nLCA2LCB2PSctMTUwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYWMuLi4nLCA2LCB2PSctODQzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYmEuLi4nLCA2LCB2PSctMTE5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjYzguLi4nLCA2LCB2PScyNTc3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZDYuLi4nLCA2LCB2PScxNTgyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZTQuLi4nLCA2LCB2PSc5MDkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjZjIuLi4nLCA2LCB2PSctMTQwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMDEuLi4nLCA2LCB2PSctMTU5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMGYuLi4nLCA2LCB2PSctMTg2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMWQuLi4nLCA2LCB2PSctNjU4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMmIuLi4nLCA2LCB2PSctNjc5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkMzkuLi4nLCA2LCB2PSc4OSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNDcuLi4nLCA2LCB2PSc2ODAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNTUuLi4nLCA2LCB2PScxMDk1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNjMuLi4nLCA2LCB2PSctODMyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkNzEuLi4nLCA2LCB2PSctNzg1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkN2YuLi4nLCA2LCB2PSctMjI4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOGQuLi4nLCA2LCB2PSctNDAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkOWIuLi4nLCA2LCB2PSctMjgwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYTkuLi4nLCA2LCB2PSctNjk3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYjcuLi4nLCA2LCB2PSctNjk3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkYzUuLi4nLCA2LCB2PSctODExLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZDMuLi4nLCA2LCB2PSctNjI5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZTEuLi4nLCA2LCB2PSctMTQwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZjAuLi4nLCA2LCB2PSctMTY2Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFkZmUuLi4nLCA2LCB2PSctMTU3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMGMuLi4nLCA2LCB2PSctMTkyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMWEuLi4nLCA2LCB2PSctMTk3Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMjguLi4nLCA2LCB2PSctMjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlMzYuLi4nLCA2LCB2PSctMTk4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNDQuLi4nLCA2LCB2PSctMjAwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNTIuLi4nLCA2LCB2PSctMTYxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNjAuLi4nLCA2LCB2PSctMTg1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlNmUuLi4nLCA2LCB2PSctMTkwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlN2MuLi4nLCA2LCB2PSctMjUxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOGEuLi4nLCA2LCB2PSctMzg2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlOTguLi4nLCA2LCB2PSctMTIxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYTYuLi4nLCA2LCB2PSctMzY1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYjQuLi4nLCA2LCB2PSctMzEzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlYzIuLi4nLCA2LCB2PSctNTA2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZDEuLi4nLCA2LCB2PSctMjMyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZGYuLi4nLCA2LCB2PSctMjg4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZWQuLi4nLCA2LCB2PSctMTIxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFlZmIuLi4nLCA2LCB2PSctMzEwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMDkuLi4nLCA2LCB2PSctMjQ1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PSc0MzkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMjUuLi4nLCA2LCB2PSc2MDkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMzMuLi4nLCA2LCB2PScxMDc4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNDEuLi4nLCA2LCB2PScyNDkxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNGYuLi4nLCA2LCB2PScxMzI3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNWQuLi4nLCA2LCB2PSctMTE1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNmIuLi4nLCA2LCB2PSctNDQyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmNzkuLi4nLCA2LCB2PScyMDMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmODcuLi4nLCA2LCB2PSctMTQzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmOTUuLi4nLCA2LCB2PSctMjAxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYTQuLi4nLCA2LCB2PSctMTQ5Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYjIuLi4nLCA2LCB2PSctMTI4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmYzAuLi4nLCA2LCB2PSctMTMwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmY2UuLi4nLCA2LCB2PSctNDA5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZGMuLi4nLCA2LCB2PSctMTYyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZWEuLi4nLCA2LCB2PSc5MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmZjguLi4nLCA2LCB2PSczMTkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMDYuLi4nLCA2LCB2PScyNDgzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMTQuLi4nLCA2LCB2PSczNTciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMjIuLi4nLCA2LCB2PScxNjgxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwMzAuLi4nLCA2LCB2PScxNTcyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwM2UuLi4nLCA2LCB2PScxNTc1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNGMuLi4nLCA2LCB2PSczMDIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNWEuLi4nLCA2LCB2PScxMDc2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNjguLi4nLCA2LCB2PScxNTU1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwNzYuLi4nLCA2LCB2PScxOTcxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwODQuLi4nLCA2LCB2PScyMzkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwOTMuLi4nLCA2LCB2PSctMzUxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYTEuLi4nLCA2LCB2PSctNTI3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYWYuLi4nLCA2LCB2PSctMjE1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwYmQuLi4nLCA2LCB2PSctNzgyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwY2IuLi4nLCA2LCB2PSc0NTIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZDkuLi4nLCA2LCB2PSc2MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZTcuLi4nLCA2LCB2PSctODQ4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIwZjUuLi4nLCA2LCB2PSctMTM4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMDMuLi4nLCA2LCB2PSctOTg5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMTEuLi4nLCA2LCB2PSctMzI1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMWYuLi4nLCA2LCB2PSctMzgyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxMmQuLi4nLCA2LCB2PSc2MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxM2IuLi4nLCA2LCB2PSc4ODQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNDkuLi4nLCA2LCB2PSc2NTkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNTcuLi4nLCA2LCB2PSctMjY0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNjUuLi4nLCA2LCB2PSctOTkwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxNzQuLi4nLCA2LCB2PScyODkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxODIuLi4nLCA2LCB2PSctMjkyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOTAuLi4nLCA2LCB2PSctNTQyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxOWUuLi4nLCA2LCB2PSczNjYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYWMuLi4nLCA2LCB2PSc5MDkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYmEuLi4nLCA2LCB2PSc5OTIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYzguLi4nLCA2LCB2PScxODA4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZDYuLi4nLCA2LCB2PSctMTA0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZTQuLi4nLCA2LCB2PSc1NDMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxZjIuLi4nLCA2LCB2PSczNzciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMDAuLi4nLCA2LCB2PSctNjE5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMGUuLi4nLCA2LCB2PSctNzEyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMWMuLi4nLCA2LCB2PScxNDU5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMmEuLi4nLCA2LCB2PScyNTciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyMzguLi4nLCA2LCB2PSctNjk2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNDcuLi4nLCA2LCB2PSctMTA4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNTUuLi4nLCA2LCB2PScyODczLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNjMuLi4nLCA2LCB2PSc0MjEiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyNzEuLi4nLCA2LCB2PSc1NTciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyN2YuLi4nLCA2LCB2PScxNjk2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOGQuLi4nLCA2LCB2PScyNDgwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyOWIuLi4nLCA2LCB2PSctNzA3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYTkuLi4nLCA2LCB2PSctMjM3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYjcuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyYzUuLi4nLCA2LCB2PScxNzMwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZDMuLi4nLCA2LCB2PScyOTkwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZTEuLi4nLCA2LCB2PScyNzQ2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZWYuLi4nLCA2LCB2PSctMTc0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIyZmQuLi4nLCA2LCB2PSctMTk0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMGIuLi4nLCA2LCB2PSc0ODUiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMTkuLi4nLCA2LCB2PSctNzI5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMjcuLi4nLCA2LCB2PSc3MCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzMzYuLi4nLCA2LCB2PSc5MDciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNDQuLi4nLCA2LCB2PScxMjk3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNTIuLi4nLCA2LCB2PSc3NzYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNjAuLi4nLCA2LCB2PScxMjMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzNmUuLi4nLCA2LCB2PScxNTU3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzN2MuLi4nLCA2LCB2PScxMjA4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOGEuLi4nLCA2LCB2PScyNTMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzOTguLi4nLCA2LCB2PSc1MDgiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYTYuLi4nLCA2LCB2PSctMjc0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYjQuLi4nLCA2LCB2PSctNTcxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzYzIuLi4nLCA2LCB2PScxNDYiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZDAuLi4nLCA2LCB2PSc1NjciLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZGUuLi4nLCA2LCB2PScxMjIyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZWMuLi4nLCA2LCB2PSc3MzMiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIzZmEuLi4nLCA2LCB2PSc4Ii8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MDguLi4nLCA2LCB2PScxMDQxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MTcuLi4nLCA2LCB2PSczMjIyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MjUuLi4nLCA2LCB2PScyNTc2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0MzMuLi4nLCA2LCB2PScyNDIyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NDEuLi4nLCA2LCB2PSctMTAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NGYuLi4nLCA2LCB2PSctNzQ2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PSctNjYxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NzkuLi4nLCA2LCB2PSc0NSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ODcuLi4nLCA2LCB2PSczOTgzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0OTUuLi4nLCA2LCB2PScxNjk0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YTMuLi4nLCA2LCB2PSc3MDkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YjEuLi4nLCA2LCB2PSctODQ0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0YmYuLi4nLCA2LCB2PSctNjA1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0Y2QuLi4nLCA2LCB2PSctNjYxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZGIuLi4nLCA2LCB2PSctNDM2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZTkuLi4nLCA2LCB2PSctMTE1Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0ZjguLi4nLCA2LCB2PSctNzE2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MDYuLi4nLCA2LCB2PSctODc3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MTQuLi4nLCA2LCB2PSctMTAyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MjIuLi4nLCA2LCB2PSctNyIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1MzAuLi4nLCA2LCB2PScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1M2UuLi4nLCA2LCB2PScxMTg1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NGMuLi4nLCA2LCB2PSc4ODQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NWEuLi4nLCA2LCB2PScxMTAzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NjguLi4nLCA2LCB2PScxNzg5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1NzYuLi4nLCA2LCB2PSczMTMyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ODQuLi4nLCA2LCB2PSctNDAzLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1OTIuLi4nLCA2LCB2PSctMjExLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YTAuLi4nLCA2LCB2PSctNDk4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YWUuLi4nLCA2LCB2PScxNzQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1YmMuLi4nLCA2LCB2PScyMTAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1Y2EuLi4nLCA2LCB2PSc3MTAiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZDkuLi4nLCA2LCB2PScyMTI3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZTcuLi4nLCA2LCB2PScyMzg2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI1ZjUuLi4nLCA2LCB2PScxOTE2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MDMuLi4nLCA2LCB2PSc1MyIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MTEuLi4nLCA2LCB2PScxMDcwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MWYuLi4nLCA2LCB2PSc1NjQiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2MmQuLi4nLCA2LCB2PSctMTE4Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2M2IuLi4nLCA2LCB2PSczNCIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NDkuLi4nLCA2LCB2PSctODQ3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NTcuLi4nLCA2LCB2PSctMTMxLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NjUuLi4nLCA2LCB2PSctMTg0Li4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2NzMuLi4nLCA2LCB2PSctMTQwLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ODEuLi4nLCA2LCB2PSctMTEyLi4uJywgNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OGYuLi4nLCA2LCB2PSctMzcyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2OWQuLi4nLCA2LCB2PScyNjkiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YWIuLi4nLCA2LCB2PSc1NzIiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YmEuLi4nLCA2LCB2PScxNDEzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2YzguLi4nLCA2LCB2PScxNTg2Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZDYuLi4nLCA2LCB2PSczMTYxLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZTQuLi4nLCA2LCB2PScyMzQ3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI2ZjIuLi4nLCA2LCB2PScyNjI3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MDAuLi4nLCA2LCB2PScyNTAyLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PScyODE4Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MWMuLi4nLCA2LCB2PScxNTgiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MmEuLi4nLCA2LCB2PSctNTQ1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MzguLi4nLCA2LCB2PSctMzcwLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NDYuLi4nLCA2LCB2PSctNjI0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NTQuLi4nLCA2LCB2PSctODQ3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NjIuLi4nLCA2LCB2PScyMzE1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3NzAuLi4nLCA2LCB2PScxMDk5Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3N2UuLi4nLCA2LCB2PSctNDE3Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzQyMjIuLi4nLCA2LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nLTQzMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDgiLi4uJywgMywgdj0nLTQxNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzMyLi4uJywgNCwgdj0nLTQwOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTNjLi4uJywgNCwgdj0nLTQwOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODM1Li4uJywgNCwgdj0nLTM5Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjQ1Li4uJywgNCwgdj0nLTM5Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDU1Li4uJywgNCwgdj0nLTQ0MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjY1Li4uJywgNCwgdj0nLTUzNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDc1Li4uJywgNCwgdj0nLTYzMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZTg1Li4uJywgNCwgdj0nLTcyOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Yzk2Li4uJywgNCwgdj0nLTc1MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWE1Li4uJywgNCwgdj0nLTczNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGI2Li4uJywgNCwgdj0nLTY4OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmM1Li4uJywgNCwgdj0nLTY0Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGQ3Li4uJywgNCwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMzBiLi4uJywgNCwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGY2Li4uJywgNCwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjA2Li4uJywgNCwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDE3Li4uJywgNCwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc0Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE4Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODliLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVkLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjNlLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzFmLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAwLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmEzLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ2Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzhjLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyODZkLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyOTRlLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYjEwLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYmYxLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyY2QyLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZGIzLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZTk0Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyZjc1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMDU2Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMTM3Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMjE5Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczMmY5Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczM2RhLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNGJiLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNTlkLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNjdkLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczNzVlLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczODQwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczOTIxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYTAxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYWUyLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczYmMzLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczY2E0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZDg1Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZTY2Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSczZjQ4Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MDI4Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MTA5Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MWVhLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0MmNiLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0M2FjLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NDhkLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NTZlLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0NjRmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ODBmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OGYwLi4uJywgNSwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0OWQxLi4uJywgNSwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0YWI0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yjk1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0Yzc2Li4uJywgNSwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZDU3Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZTM4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZjE5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc0ZmZhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MGRkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MWJjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MjlkLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1MzdlLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NDYwLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQwLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NjIxLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NzAyLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1N2UzLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OGM0Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1OWE3Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YTg2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YjY3Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1YzQ4Li4uJywgNSwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZDI5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZTBhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZWViLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1ZmNjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MGFkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MThlLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MjZmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2MzUwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NDMxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NTEyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NWYzLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2NmQ0Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2N2I1Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ODk2Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2OTc4Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YTU4Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YjM5Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2YzFhLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2Y2ZiLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZGRjLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZWJkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc2ZjllLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MDdmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MTYwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MjQxLi4uJywgNSwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3MzIyLi4uJywgNSwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NDAzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NGU0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NWM1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3NmE2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Nzg3Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ODY4Li4uJywgNSwgdj0nLTYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3OTQ4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YTI5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YjBhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3YmViLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3Y2NjLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZGFkLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZThmLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcwLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MDUxLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MTMyLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MjEzLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4MmY0Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4M2Q1Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NGI2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NTk3Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4Njc4Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4NzU5Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ODNhLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OTFiLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4OWZjLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YWRkLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YmJlLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4YzlmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZDgwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZTYxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc4ZjQyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MDIzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MTA0Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MWU1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5MmM2Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5M2E4Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NDg4Li4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NTY5Li4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NjRhLi4uJywgNSwgdj0nLTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5NzJiLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ODBjLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OGVkLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5OWNlLi4uJywgNSwgdj0nLTgiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YWFmLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YjkwLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5YzcxLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZDUyLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZTMzLi4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZjE0Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc5ZmY1Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMGQ2Li4uJywgNSwgdj0nLTciLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMWI3Li4uJywgNSwgdj0nLTYzMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMjk4Li4uJywgNSwgdj0nLTM1MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhMzc5Li4uJywgNSwgdj0nLTk2My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNDVhLi4uJywgNSwgdj0nNjQ0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNTNiLi4uJywgNSwgdj0nNzAwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNjFjLi4uJywgNSwgdj0nOTQyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhNmZkLi4uJywgNSwgdj0nOTkiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhN2UwLi4uJywgNSwgdj0nNDY0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOGMwLi4uJywgNSwgdj0nOTEyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWEwLi4uJywgNSwgdj0nMjg5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYTgxLi4uJywgNSwgdj0nMzIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYjYyLi4uJywgNSwgdj0nNDYiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhYzQzLi4uJywgNSwgdj0nMjAwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZDI0Li4uJywgNSwgdj0nOTIxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZTA1Li4uJywgNSwgdj0nNzQ0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZWU2Li4uJywgNSwgdj0nLTU2MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhZmM3Li4uJywgNSwgdj0nLTY4Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMGE4Li4uJywgNSwgdj0nMzEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMjZhLi4uJywgNSwgdj0nMTQyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiMzRiLi4uJywgNSwgdj0nLTEyMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNDJjLi4uJywgNSwgdj0nLTQ1MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNTBkLi4uJywgNSwgdj0nLTcyOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNWVlLi4uJywgNSwgdj0nLTcxMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiNmNmLi4uJywgNSwgdj0nLTE1OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiN2IwLi4uJywgNSwgdj0nLTE5OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiODkxLi4uJywgNSwgdj0nLTE3NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiOTcyLi4uJywgNSwgdj0nLTE3NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYTUzLi4uJywgNSwgdj0nLTE4OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYjM0Li4uJywgNSwgdj0nLTgyNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiYzE1Li4uJywgNSwgdj0nLTg4Mi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiY2Y2Li4uJywgNSwgdj0nLTg5OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZGQ4Li4uJywgNSwgdj0nNjQ0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZWI4Li4uJywgNSwgdj0nNDE3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdiZjk5Li4uJywgNSwgdj0nNTI0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMDdhLi4uJywgNSwgdj0nNDAwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMTViLi4uJywgNSwgdj0nMzcyIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMjNjLi4uJywgNSwgdj0nNDg0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjMzFkLi4uJywgNSwgdj0nNTkxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjM2ZlLi4uJywgNSwgdj0nMzM2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNGRmLi4uJywgNSwgdj0nNzQxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNWMwLi4uJywgNSwgdj0nMTE0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNmExLi4uJywgNSwgdj0nNTA3Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjNzgyLi4uJywgNSwgdj0nLTUxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjODYzLi4uJywgNSwgdj0nMTM2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjOTQ0Li4uJywgNSwgdj0nMzM0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYTI1Li4uJywgNSwgdj0nMjM1Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYjA2Li4uJywgNSwgdj0nMTE2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjYmU3Li4uJywgNSwgdj0nLTQxNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjY2M4Li4uJywgNSwgdj0nLTIzMi4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZGE5Li4uJywgNSwgdj0nLTE4NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZThhLi4uJywgNSwgdj0nLTIxOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdjZjZiLi4uJywgNSwgdj0nLTEzNC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMDRjLi4uJywgNSwgdj0nLTUxIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMTJkLi4uJywgNSwgdj0nMTQzIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMjBlLi4uJywgNSwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkMmYwLi4uJywgNSwgdj0nMTEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkM2QwLi4uJywgNSwgdj0nNjAwIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIxLi4uJywgNSwgdj0nNjQ0Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNTkyLi4uJywgNSwgdj0nODM2Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNjczLi4uJywgNSwgdj0nMTA2OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNzU0Li4uJywgNSwgdj0nMTIxMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkODM1Li4uJywgNSwgdj0nLTEzNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOTE2Li4uJywgNSwgdj0nLTc1NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkOWY3Li4uJywgNSwgdj0nLTE0OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYWQ4Li4uJywgNSwgdj0nLTIwMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYmI5Li4uJywgNSwgdj0nLTI1Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkYzlhLi4uJywgNSwgdj0nLTIzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZDdiLi4uJywgNSwgdj0nLTI4OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZTVjLi4uJywgNSwgdj0nLTI3OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkZjNkLi4uJywgNSwgdj0nLTI5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMDFkLi4uJywgNSwgdj0nLTI5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMGZlLi4uJywgNSwgdj0nLTI4My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMWRmLi4uJywgNSwgdj0nLTMwMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlMmMwLi4uJywgNSwgdj0nLTQwOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlM2ExLi4uJywgNSwgdj0nLTM5Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNDgyLi4uJywgNSwgdj0nLTMzNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNTYzLi4uJywgNSwgdj0nLTM0Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNjQ0Li4uJywgNSwgdj0nLTI1NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlNzI1Li4uJywgNSwgdj0nLTIxOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlODA2Li4uJywgNSwgdj0nLTE3NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOGU3Li4uJywgNSwgdj0nLTQ3Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlOWM4Li4uJywgNSwgdj0nLTcwOS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYWE5Li4uJywgNSwgdj0nLTY1My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYjhhLi4uJywgNSwgdj0nLTY1My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlYzZiLi4uJywgNSwgdj0nLTQ2OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZDRjLi4uJywgNSwgdj0nLTIxMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZTJkLi4uJywgNSwgdj0nLTIyMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZjBlLi4uJywgNSwgdj0nLTMxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdlZmYwLi4uJywgNSwgdj0nLTQwOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMGQxLi4uJywgNSwgdj0nLTQzMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMWIyLi4uJywgNSwgdj0nLTQ1NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMjkzLi4uJywgNSwgdj0nLTQ2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmMzc0Li4uJywgNSwgdj0nLTQzMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNDU1Li4uJywgNSwgdj0nLTQ2MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNTM2Li4uJywgNSwgdj0nLTQ4NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNjE3Li4uJywgNSwgdj0nLTQ2MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmNmY4Li4uJywgNSwgdj0nLTQ4MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmN2Q5Li4uJywgNSwgdj0nLTQyNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOGJhLi4uJywgNSwgdj0nLTM5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmOTliLi4uJywgNSwgdj0nLTM4MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYTdjLi4uJywgNSwgdj0nLTMwMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYjVkLi4uJywgNSwgdj0nLTMwMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmYzNlLi4uJywgNSwgdj0nLTMyOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZDFmLi4uJywgNSwgdj0nLTI2OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZTAwLi4uJywgNSwgdj0nLTI1My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUxLi4uJywgNSwgdj0nLTIwOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZmMyLi4uJywgNSwgdj0nLTE5OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDBhLi4uJywgNiwgdj0nLTE3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDE4Li4uJywgNiwgdj0nLTE3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDI2Li4uJywgNiwgdj0nLTIwNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDM0Li4uJywgNiwgdj0nLTI3Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDQyLi4uJywgNiwgdj0nLTQwMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDUwLi4uJywgNiwgdj0nLTQzMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDVlLi4uJywgNiwgdj0nLTQzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDZjLi4uJywgNiwgdj0nLTQ3Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDdhLi4uJywgNiwgdj0nLTQzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDg4Li4uJywgNiwgdj0nLTM5MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMDk2Li4uJywgNiwgdj0nLTQxMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGE0Li4uJywgNiwgdj0nLTQzMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGIyLi4uJywgNiwgdj0nLTQzNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGMxLi4uJywgNiwgdj0nLTQxNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGNmLi4uJywgNiwgdj0nLTQzNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGRkLi4uJywgNiwgdj0nLTQxNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGViLi4uJywgNiwgdj0nLTQ0NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMGY5Li4uJywgNiwgdj0nLTM4OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTA3Li4uJywgNiwgdj0nLTMyOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTE1Li4uJywgNiwgdj0nLTI4Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTIzLi4uJywgNiwgdj0nLTI2Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTMxLi4uJywgNiwgdj0nLTE3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTNmLi4uJywgNiwgdj0nLTE3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTRkLi4uJywgNiwgdj0nLTE4Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTViLi4uJywgNiwgdj0nLTE3OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTY5Li4uJywgNiwgdj0nLTE1OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTc3Li4uJywgNiwgdj0nLTIwOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTg1Li4uJywgNiwgdj0nLTI4OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMTkzLi4uJywgNiwgdj0nLTM1NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWEyLi4uJywgNiwgdj0nLTQ4My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWIwLi4uJywgNiwgdj0nLTQzMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWJlLi4uJywgNiwgdj0nLTUzOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWNjLi4uJywgNiwgdj0nLTQ0NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWRhLi4uJywgNiwgdj0nLTQyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWU4Li4uJywgNiwgdj0nLTQzNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMWY2Li4uJywgNiwgdj0nLTM5MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjA1Li4uJywgNiwgdj0nLTQiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjEzLi4uJywgNiwgdj0nLTQiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjIxLi4uJywgNiwgdj0nLTQiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjJmLi4uJywgNiwgdj0nLTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjNkLi4uJywgNiwgdj0nLTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjRiLi4uJywgNiwgdj0nLTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjU5Li4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjY3Li4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjc2Li4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjgzLi4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjlmLi4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmFkLi4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmJiLi4uJywgNiwgdj0nLTEiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmM5Li4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmQ3Li4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmU1Li4uJywgNiwgdj0nLTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMmYzLi4uJywgNiwgdj0nLTIiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzAxLi4uJywgNiwgdj0nLTQiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzBmLi4uJywgNiwgdj0nLTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzFkLi4uJywgNiwgdj0nLTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzJiLi4uJywgNiwgdj0nLTMiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzM5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzQ3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzU1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzY0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzcyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzgwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzhlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMzljLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2FhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2I4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2M2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2Q0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2UyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2YwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxM2ZlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDBjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDFhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDI4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDM2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDQ1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDUzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDYxLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDZmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDdkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDhiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNDk5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGE3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGI1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGMzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGQxLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGRmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGVkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNGZiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTA5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTE3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTI2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTQyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTUwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTVlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTZjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTdhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTg4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTk2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWE0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWIyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWMwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWNlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWRjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWVhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNWY4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjA3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjE1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjIzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjMxLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjNmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjRkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjViLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjY5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjc3Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjg1Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNjkzLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmExLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmFmLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmJkLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmNiLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmQ5Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmU4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNmY2Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzA0Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzEyLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzIwLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzJlLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzNjLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzRhLi4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzU4Li4uJywgNiwgdj0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzY2Li4uJywgNiwgdj0nLTY4NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzc0Li4uJywgNiwgdj0nLTY4NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzgyLi4uJywgNiwgdj0nLTcyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzkwLi4uJywgNiwgdj0nLTY3MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNzllLi4uJywgNiwgdj0nLTYwNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2FjLi4uJywgNiwgdj0nLTU4Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2JhLi4uJywgNiwgdj0nLTYwNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2M5Li4uJywgNiwgdj0nLTU0OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nLTU0My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2U1Li4uJywgNiwgdj0nLTUzNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2YzLi4uJywgNiwgdj0nLTQ5OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODAxLi4uJywgNiwgdj0nLTUxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODBmLi4uJywgNiwgdj0nLTYzMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODFkLi4uJywgNiwgdj0nLTY5Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODJiLi4uJywgNiwgdj0nLTc4OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODM5Li4uJywgNiwgdj0nLTEzNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODQ3Li4uJywgNiwgdj0nLTEzMy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODU1Li4uJywgNiwgdj0nLTEyOC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODYzLi4uJywgNiwgdj0nLTExOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODcxLi4uJywgNiwgdj0nLTEyNC4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODdmLi4uJywgNiwgdj0nLTExNi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODhkLi4uJywgNiwgdj0nLTEyNS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxODljLi4uJywgNiwgdj0nLTExOS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGI4Li4uJywgNiwgdj0nLTc1Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGM2Li4uJywgNiwgdj0nLTgxMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGQ0Li4uJywgNiwgdj0nLTc2Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGUyLi4uJywgNiwgdj0nLTY1Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGYwLi4uJywgNiwgdj0nLTYxNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOGZlLi4uJywgNiwgdj0nLTU2Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTBjLi4uJywgNiwgdj0nLTQ0Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTFhLi4uJywgNiwgdj0nLTQzMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTI4Li4uJywgNiwgdj0nLTQyNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTM2Li4uJywgNiwgdj0nLTQxMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTQ0Li4uJywgNiwgdj0nLTQxMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTUyLi4uJywgNiwgdj0nLTQ0OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTYwLi4uJywgNiwgdj0nLTUxMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTZlLi4uJywgNiwgdj0nLTU5Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTdjLi4uJywgNiwgdj0nLTYzNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOThiLi4uJywgNiwgdj0nLTU5Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOTk5Li4uJywgNiwgdj0nLTY2MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWI1Li4uJywgNiwgdj0nLTY2MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWMzLi4uJywgNiwgdj0nLTYxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWQxLi4uJywgNiwgdj0nLTYyMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWRmLi4uJywgNiwgdj0nLTYzMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVkLi4uJywgNiwgdj0nLTYwNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWVlLi4uJywgNiwgdj0nLTYwNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxOWZiLi4uJywgNiwgdj0nLTIzOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTA5Li4uJywgNiwgdj0nLTI2MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTE3Li4uJywgNiwgdj0nLTMwNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTI1Li4uJywgNiwgdj0nLTMzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTMzLi4uJywgNiwgdj0nLTIyMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTQxLi4uJywgNiwgdj0nLTIxMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTRmLi4uJywgNiwgdj0nLTE1NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTVlLi4uJywgNiwgdj0nLTE2Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTZjLi4uJywgNiwgdj0nLTk2OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTdhLi4uJywgNiwgdj0nLTExMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTg4Li4uJywgNiwgdj0nLTEwNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nLTQ4MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWE0Li4uJywgNiwgdj0nLTUzNy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWIyLi4uJywgNiwgdj0nLTk5NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWMwLi4uJywgNiwgdj0nLTE4MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWNlLi4uJywgNiwgdj0nLTI2My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWRjLi4uJywgNiwgdj0nLTI5Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWVhLi4uJywgNiwgdj0nLTI1OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYWY4Li4uJywgNiwgdj0nLTI4OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjA2Li4uJywgNiwgdj0nLTIxNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYjE0Li4uJywgNiwgdj0nLTIwOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nMzExIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzgyLi4uJywgNiwgdj0nMzk5Ii4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzkwLi4uJywgNiwgdj0nMzQ4Ni4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzllLi4uJywgNiwgdj0nMzM1Ny4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2FjLi4uJywgNiwgdj0nMzY3MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2JhLi4uJywgNiwgdj0nMzU4MC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2M4Li4uJywgNiwgdj0nNTM5OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2Q2Li4uJywgNiwgdj0nNTQ3OC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2U0Li4uJywgNiwgdj0nNTYxOC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxY2YyLi4uJywgNiwgdj0nNTY1OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDAxLi4uJywgNiwgdj0nNTkyMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDBmLi4uJywgNiwgdj0nNjY1MS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDFkLi4uJywgNiwgdj0nNjY1NC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDJiLi4uJywgNiwgdj0nNjcxMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDM5Li4uJywgNiwgdj0nNjg4NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDQ3Li4uJywgNiwgdj0nNjg5My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDU1Li4uJywgNiwgdj0nNjcwNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDYzLi4uJywgNiwgdj0nNTg1My4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDcxLi4uJywgNiwgdj0nNTU0NS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDdmLi4uJywgNiwgdj0nNTU4OS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDhkLi4uJywgNiwgdj0nLTMyMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZDliLi4uJywgNiwgdj0nLTM2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGE5Li4uJywgNiwgdj0nLTM2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGI3Li4uJywgNiwgdj0nLTM0Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGM1Li4uJywgNiwgdj0nLTM2My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGQzLi4uJywgNiwgdj0nLTM3Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGUxLi4uJywgNiwgdj0nLTYwMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGYwLi4uJywgNiwgdj0nLTY3NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZGZlLi4uJywgNiwgdj0nLTY2NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTBjLi4uJywgNiwgdj0nLTY3Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTFhLi4uJywgNiwgdj0nLTY3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTI4Li4uJywgNiwgdj0nLTY1OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTM2Li4uJywgNiwgdj0nLTYxMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTQ0Li4uJywgNiwgdj0nLTU2NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTUyLi4uJywgNiwgdj0nLTQ5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTYwLi4uJywgNiwgdj0nLTQ5MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTZlLi4uJywgNiwgdj0nLTQ4MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTdjLi4uJywgNiwgdj0nLTE5Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZThhLi4uJywgNiwgdj0nLTE4Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZTk4Li4uJywgNiwgdj0nLTE4Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWE2Li4uJywgNiwgdj0nLTIyNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWI0Li4uJywgNiwgdj0nLTIzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWMyLi4uJywgNiwgdj0nLTI2NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWQxLi4uJywgNiwgdj0nLTI2NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWRmLi4uJywgNiwgdj0nLTI3NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWVkLi4uJywgNiwgdj0nLTI3Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZWZiLi4uJywgNiwgdj0nLTI1OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjA5Li4uJywgNiwgdj0nLTI1NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nLTIzNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjI1Li4uJywgNiwgdj0nLTIzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjMzLi4uJywgNiwgdj0nLTI1Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjQxLi4uJywgNiwgdj0nLTI3OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjRmLi4uJywgNiwgdj0nLTMxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjVkLi4uJywgNiwgdj0nLTM1OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjZiLi4uJywgNiwgdj0nLTM1OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjc5Li4uJywgNiwgdj0nLTMxMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjg3Li4uJywgNiwgdj0nLTMzMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjk1Li4uJywgNiwgdj0nLTMxNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmE0Li4uJywgNiwgdj0nLTI4MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmIyLi4uJywgNiwgdj0nLTI0OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmMwLi4uJywgNiwgdj0nLTI0OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmNlLi4uJywgNiwgdj0nLTIxNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmRjLi4uJywgNiwgdj0nLTIxMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmVhLi4uJywgNiwgdj0nLTIxNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZmY4Li4uJywgNiwgdj0nLTI1MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDA2Li4uJywgNiwgdj0nLTIzOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDE0Li4uJywgNiwgdj0nLTM0Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDIyLi4uJywgNiwgdj0nLTQ1MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDMwLi4uJywgNiwgdj0nLTUzNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDNlLi4uJywgNiwgdj0nLTU5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDRjLi4uJywgNiwgdj0nLTU3Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDVhLi4uJywgNiwgdj0nLTUyOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDY4Li4uJywgNiwgdj0nLTUzOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDc2Li4uJywgNiwgdj0nLTU5Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDg0Li4uJywgNiwgdj0nLTYxMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMDkzLi4uJywgNiwgdj0nLTY3NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGExLi4uJywgNiwgdj0nLTYzMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGFmLi4uJywgNiwgdj0nLTU1My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGJkLi4uJywgNiwgdj0nLTU0NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGNiLi4uJywgNiwgdj0nLTQ2My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGQ5Li4uJywgNiwgdj0nLTQzNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGU3Li4uJywgNiwgdj0nLTQwNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMGY1Li4uJywgNiwgdj0nLTM4NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTAzLi4uJywgNiwgdj0nLTM1MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTExLi4uJywgNiwgdj0nLTMxMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTFmLi4uJywgNiwgdj0nLTMwMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTJkLi4uJywgNiwgdj0nLTI5MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTNiLi4uJywgNiwgdj0nLTI4Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTQ5Li4uJywgNiwgdj0nLTM2OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTU3Li4uJywgNiwgdj0nLTQ1MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTY1Li4uJywgNiwgdj0nLTU4NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTc0Li4uJywgNiwgdj0nLTYxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTgyLi4uJywgNiwgdj0nLTYxNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTkwLi4uJywgNiwgdj0nLTYxNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMTllLi4uJywgNiwgdj0nLTYyMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWFjLi4uJywgNiwgdj0nLTU5My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nLTU5Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWM4Li4uJywgNiwgdj0nLTU1NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWQ2Li4uJywgNiwgdj0nLTYyNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWU0Li4uJywgNiwgdj0nLTU3NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWYyLi4uJywgNiwgdj0nLTU3Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjAwLi4uJywgNiwgdj0nLTU0Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjBlLi4uJywgNiwgdj0nLTUzOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjFjLi4uJywgNiwgdj0nLTQ1NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjJhLi4uJywgNiwgdj0nLTM4Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjM4Li4uJywgNiwgdj0nLTM2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjQ3Li4uJywgNiwgdj0nLTMyOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjU1Li4uJywgNiwgdj0nLTE2OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjYzLi4uJywgNiwgdj0nLTIwOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjcxLi4uJywgNiwgdj0nLTIwNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjdmLi4uJywgNiwgdj0nLTE2Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjhkLi4uJywgNiwgdj0nLTE3OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMjliLi4uJywgNiwgdj0nLTM0OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmE5Li4uJywgNiwgdj0nLTQwOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmI3Li4uJywgNiwgdj0nLTQ0NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmM1Li4uJywgNiwgdj0nLTQ4MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmQzLi4uJywgNiwgdj0nLTQ0MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmUxLi4uJywgNiwgdj0nLTQ2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmVmLi4uJywgNiwgdj0nLTQ4Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMmZkLi4uJywgNiwgdj0nLTQ2NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzBiLi4uJywgNiwgdj0nLTQ0My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzE5Li4uJywgNiwgdj0nLTUzOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzI3Li4uJywgNiwgdj0nLTU1NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzM2Li4uJywgNiwgdj0nLTU4OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzQ0Li4uJywgNiwgdj0nLTUyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzUyLi4uJywgNiwgdj0nLTUyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzYwLi4uJywgNiwgdj0nLTUyNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzZlLi4uJywgNiwgdj0nLTQzNC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzdjLi4uJywgNiwgdj0nLTQxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzhhLi4uJywgNiwgdj0nLTM5OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMzk4Li4uJywgNiwgdj0nLTMxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2E2Li4uJywgNiwgdj0nLTMzMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2I0Li4uJywgNiwgdj0nLTMxOS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2MyLi4uJywgNiwgdj0nLTI5Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2QwLi4uJywgNiwgdj0nLTI5NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2RlLi4uJywgNiwgdj0nLTI5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2VjLi4uJywgNiwgdj0nLTM2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyM2ZhLi4uJywgNiwgdj0nLTQ1Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDA4Li4uJywgNiwgdj0nLTUwMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDE3Li4uJywgNiwgdj0nLTU3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDI1Li4uJywgNiwgdj0nLTY2MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDMzLi4uJywgNiwgdj0nLTY3OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDQxLi4uJywgNiwgdj0nLTY3My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDRmLi4uJywgNiwgdj0nLTY0My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nLTY0MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDc5Li4uJywgNiwgdj0nLTYyNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDg3Li4uJywgNiwgdj0nLTUzNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDk1Li4uJywgNiwgdj0nLTU3MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGEzLi4uJywgNiwgdj0nLTU2Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGIxLi4uJywgNiwgdj0nLTU4MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGJmLi4uJywgNiwgdj0nLTU0OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGNkLi4uJywgNiwgdj0nLTUzNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGRiLi4uJywgNiwgdj0nLTQ1My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGU5Li4uJywgNiwgdj0nLTQwMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNGY4Li4uJywgNiwgdj0nLTM0OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTA2Li4uJywgNiwgdj0nLTM1OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTE0Li4uJywgNiwgdj0nLTM1Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTIyLi4uJywgNiwgdj0nLTM0Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTMwLi4uJywgNiwgdj0nLTM2MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTNlLi4uJywgNiwgdj0nLTQwNi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTRjLi4uJywgNiwgdj0nLTQyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTVhLi4uJywgNiwgdj0nLTQ5Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTY4Li4uJywgNiwgdj0nLTU4NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTc2Li4uJywgNiwgdj0nLTU2Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTg0Li4uJywgNiwgdj0nLTE1MS4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNTkyLi4uJywgNiwgdj0nLTg2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWEwLi4uJywgNiwgdj0nLTQ2MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWFlLi4uJywgNiwgdj0nLTYzMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWJjLi4uJywgNiwgdj0nLTYxMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWNhLi4uJywgNiwgdj0nLTU4MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWQ5Li4uJywgNiwgdj0nLTU4MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWU3Li4uJywgNiwgdj0nLTU2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNWY1Li4uJywgNiwgdj0nLTUzMS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjAzLi4uJywgNiwgdj0nLTU1NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjExLi4uJywgNiwgdj0nLTQ5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjFmLi4uJywgNiwgdj0nLTQ1OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjJkLi4uJywgNiwgdj0nLTQ2Ny4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjNiLi4uJywgNiwgdj0nLTM2OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjQ5Li4uJywgNiwgdj0nLTM0OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjU3Li4uJywgNiwgdj0nLTM1OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjY1Li4uJywgNiwgdj0nLTM2OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjczLi4uJywgNiwgdj0nLTM2MC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjgxLi4uJywgNiwgdj0nLTM2OC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjhmLi4uJywgNiwgdj0nLTM4NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNjlkLi4uJywgNiwgdj0nLTM5Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmFiLi4uJywgNiwgdj0nLTM5NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmJhLi4uJywgNiwgdj0nLTQ0Ni4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmM4Li4uJywgNiwgdj0nLTQyNS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmQ2Li4uJywgNiwgdj0nLTM5MS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmU0Li4uJywgNiwgdj0nLTM4OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNmYyLi4uJywgNiwgdj0nLTM1My4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzAwLi4uJywgNiwgdj0nLTM3OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nLTM2Mi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzFjLi4uJywgNiwgdj0nLTQ1NC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzJhLi4uJywgNiwgdj0nLTUxNy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzM4Li4uJywgNiwgdj0nLTUwMy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzQ2Li4uJywgNiwgdj0nLTUwMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzU0Li4uJywgNiwgdj0nLTUwMi4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzYyLi4uJywgNiwgdj0nLTM5OS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzcwLi4uJywgNiwgdj0nLTM1NS4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzdlLi4uJywgNiwgdj0nLTMyMC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc2NzQ2Li4uJywgNiwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzIyMTIuLi4nLCAxNTUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc2NzM4Li4uJywgNiwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzA6MDouLi4nLCAxNDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc2NzM0Li4uJywgNiwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzcyODkuLi4nLCAxNzYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc2NzMwLi4uJywgNiwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzA6MDouLi4nLCA4NykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzI2MjcuLi4nLCA4LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nMDo6MS4uLicsIDI1OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PScwOjo1Li4uJywgMTg1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MS4uLicsIDUsIHY9JzY6OjEuLi4nLCAxODYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcxLi4uJywgNSwgdj0nNjo6MS4uLicsIDIwMSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTEuLi4nLCA1LCB2PSc2Mjk6Li4uJywgMjU3KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMi4uLicsIDUsIHY9JzIyODkuLi4nLCAyNTgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUyLi4uJywgNSwgdj0nMTk1NC4uLicsIDI5MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PScyLjQ4Li4uJywgMjc5KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzAuMDAuLi4nLCAzMDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nNTAxNi4uLicsIDMxMykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PScxMjQzLi4uJywgNjgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nODE5Ny4uLicsIDI4OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PSc4MjcwLi4uJywgMjgwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9JzY1MTEuLi4nLCAyNjgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nMzI4MC4uLicsIDI3OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PSc4MjI2Li4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPScyNjI3Li4uJywgOCwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzA6OjAuLi4nLCAxNDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nMDo6MC4uLicsIDE0NCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU1NDEuLi4nLCA1LCB2PScwOjowLi4uJywgMTQyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2Y3MS4uLicsIDUsIHY9JzA6OjAuLi4nLCAxNjIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWExLi4uJywgNSwgdj0nMjczOi4uLicsIDI5OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q0YjIuLi4nLCA1LCB2PScxNjo6Li4uJywgMjk4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmVlMi4uLicsIDUsIHY9JzE0OjouLi4nLCAzMjMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nMDo6MC4uLicsIDMwNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MzQuLi4nLCA2LCB2PScwLjAzLi4uJywgMjk0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdkNy4uLicsIDYsIHY9JzA6OjAuLi4nLCAyMjMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nMDo6MC4uLicsIDI4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM3NC4uLicsIDYsIHY9JzE0MTMuLi4nLCAyNjgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nMzAzOi4uLicsIDI3MCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYmEuLi4nLCA2LCB2PSc1MzA0Li4uJywgMjk3KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ2Yi4uLicsIDYsIHY9JzE1MTQuLi4nLCAyODApCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nMTc3Ni4uLicsIDYxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nMjYyNy4uLicsIDgsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PScwOjo0Li4uJywgMjY1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9JzA6OjguLi4nLCAyMDgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQxLi4uJywgNSwgdj0nODo6MS4uLicsIDIwNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzEuLi4nLCA1LCB2PSc4OjoxLi4uJywgMjIyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMS4uLicsIDUsIHY9JzI6OjQuLi4nLCAyMjgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIyLi4uJywgNSwgdj0nMDo6MC4uLicsIDI5MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTIuLi4nLCA1LCB2PSc0NzU3Li4uJywgMzUwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9JzMuNzQuLi4nLCAzMDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nMDo6MC4uLicsIDIzNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PScxMTEzLi4uJywgMzM5KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9JzM5NzIuLi4nLCA2MykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PScxMjk1Li4uJywgMjg1KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9JzM4NzYuLi4nLCAzMjEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nNjQ4MS4uLicsIDMyMikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PSc3MTYyLi4uJywgMzMxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9JzU3MDkuLi4nLCA2MSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzI2MjcuLi4nLCA4LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nMDo6MC4uLicsIDE0MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PScwOjowLi4uJywgMTQ0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MS4uLicsIDUsIHY9JzA6OjAuLi4nLCAxNDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcxLi4uJywgNSwgdj0nMDo6MC4uLicsIDE1NykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTEuLi4nLCA1LCB2PScxMDcwLi4uJywgMjc5KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMi4uLicsIDUsIHY9JzEyMzEuLi4nLCAyMDgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUyLi4uJywgNSwgdj0nMDo6MC4uLicsIDE0MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PScwOjowLi4uJywgMjM3KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzAuMDMuLi4nLCAyOTYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nMDo6MC4uLicsIDE0NikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PScwOjowLi4uJywgMjgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nOTIwOC4uLicsIDI3MSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PScwOjowLi4uJywgMTQyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9JzA6OjAuLi4nLCAxNDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nMDo6MC4uLicsIDE0MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PScwOjowLi4uJywgMjUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPScxMzE0Li4uJywgNywgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzI3MDMuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nMTMxMy4uLicsIDcsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PSczMDY2Li4uJywgNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzEzMTMuLi4nLCA3LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nMTU3Ni4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPScxMzEzLi4uJywgNywgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzEyNzAuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nNTI1MS4uLicsIDgsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PScwOjoxLi4uJywgMzI0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9JzIyMjYuLi4nLCAzMzYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQxLi4uJywgNSwgdj0nMjI0My4uLicsIDMzNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzEuLi4nLCA1LCB2PScyMjYxLi4uJywgMzM0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMS4uLicsIDUsIHY9JzI5MzcuLi4nLCAzMzYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIyLi4uJywgNSwgdj0nMzk3NC4uLicsIDMzNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTIuLi4nLCA1LCB2PSc0ODA0Li4uJywgMzY5KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9JzUwMjUuLi4nLCA1MjMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nNTAyNS4uLicsIDQ5MCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PSc1OTQ0Li4uJywgMzYxKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9JzEzNjkuLi4nLCA3OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PScxNzQ4Li4uJywgMzgyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9JzIxMTguLi4nLCAzODIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nMjMyNS4uLicsIDM4MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PScyNDM0Li4uJywgMzgyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9JzI2NjguLi4nLCA3MCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzUyNTEuLi4nLCA4LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nMDo6MC4uLicsIDE0MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PScwOjowLi4uJywgMTQ0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MS4uLicsIDUsIHY9JzA6OjAuLi4nLCAxNDIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcxLi4uJywgNSwgdj0nMDo6MC4uLicsIDE2NSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTEuLi4nLCA1LCB2PScyNzQ1Li4uJywgMzI3KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMi4uLicsIDUsIHY9JzUwMTUuLi4nLCAzMzQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUyLi4uJywgNSwgdj0nOTY1OS4uLicsIDQxNSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PScxMzE3Li4uJywgNTczKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzEzMTcuLi4nLCA1MzkpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nMTM4Mi4uLicsIDM4NikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PScxNDQzLi4uJywgNzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nMTYyNy4uLicsIDM4MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PScxNzQ3Li4uJywgMzgyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9JzIwMTMuLi4nLCAzODIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nMjUzNC4uLicsIDM4MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PSczMDA5Li4uJywgNzApCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSc1MjUxLi4uJywgOCwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9JzA6OjQuLi4nLCAzMjgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nNzMwOS4uLicsIDMzNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU1NDEuLi4nLCA1LCB2PSc3MzQ2Li4uJywgMzM0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2Y3MS4uLicsIDUsIHY9JzczODIuLi4nLCAzMzQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWExLi4uJywgNSwgdj0nODQ0NC4uLicsIDMzNikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q0YjIuLi4nLCA1LCB2PSc5OTg4Li4uJywgMzc3KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmVlMi4uLicsIDUsIHY9JzIyNTQuLi4nLCA0MjEpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nMTUyMC4uLicsIDU3MykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MzQuLi4nLCA2LCB2PScxNTIwLi4uJywgNTQwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdkNy4uLicsIDYsIHY9JzQwNzEuLi4nLCAzODYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nNzA5NS4uLicsIDc4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM3NC4uLicsIDYsIHY9Jzc3MDkuLi4nLCAzODIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nODg1Ni4uLicsIDQwMCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYmEuLi4nLCA2LCB2PScxMDg1Li4uJywgNDMwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ2Yi4uLicsIDYsIHY9JzEzMDYuLi4nLCA0MzApCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nMTUzNy4uLicsIDc5KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nNTI1MS4uLicsIDgsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PScwOjowLi4uJywgMTQyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9JzA6OjAuLi4nLCAxNDQpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQxLi4uJywgNSwgdj0nMDo6MC4uLicsIDE0MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzEuLi4nLCA1LCB2PScwOjowLi4uJywgMTYwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMS4uLicsIDUsIHY9JzQ1NDYuLi4nLCAzMDYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIyLi4uJywgNSwgdj0nMTM1My4uLicsIDMzNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTIuLi4nLCA1LCB2PScxNzE1Li4uJywgMzc0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9JzE3MTUuLi4nLCA1MjYpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nMTcxNS4uLicsIDQ4NikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PScxNzE1Li4uJywgMzM4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9JzE3MTUuLi4nLCA2OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PScyNjM2Li4uJywgMzY3KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9JzEyNzAuLi4nLCAzODIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nMTI3MC4uLicsIDM4MikKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PScxMjcwLi4uJywgMzgyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9JzEyNzAuLi4nLCA3MCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzM0NjAuLi4nLCA1LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nNjA5NC4uLicsIDQzMCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PSc2MTE2Li4uJywgNDMyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MS4uLicsIDUsIHY9JzYxMTcuLi4nLCA0MzApCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcxLi4uJywgNSwgdj0nNjExNy4uLicsIDQzMCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTEuLi4nLCA1LCB2PSc2MTIzLi4uJywgNDMyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMi4uLicsIDUsIHY9JzYxMzQuLi4nLCA0MzApCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUyLi4uJywgNSwgdj0nNjE0Mi4uLicsIDQ0OSkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PScxNDQ4Li4uJywgNTcyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTUzNC4uLicsIDYsIHY9JzE0NDguLi4nLCA1NDMpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxN2Q3Li4uJywgNiwgdj0nNjE1NC4uLicsIDQzNCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFhOTYuLi4nLCA2LCB2PSc2MjMxLi4uJywgODgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYzc0Li4uJywgNiwgdj0nNjI2OS4uLicsIDQzMCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFmMTcuLi4nLCA2LCB2PSc2MzA2Li4uJywgNDMwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjFiYS4uLicsIDYsIHY9JzYzMjcuLi4nLCA0MzApCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNDZiLi4uJywgNiwgdj0nNjMzOC4uLicsIDQzMCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI3MGUuLi4nLCA2LCB2PSc2MzYxLi4uJywgNzkpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5lbmRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbWVtaW5kPSczMzgwLi4uJywgNSwgaD0nM2RjMS4uLicsIDgpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMCIgdi4uLicsIDEsIHY9Jzg4MTcuLi4nLCA0NzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyYTMwLi4uJywgNSwgdj0nODgxNy4uLicsIDQ4MCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzU1NDEuLi4nLCA1LCB2PSc4ODE3Li4uJywgNDc4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nN2Y3MS4uLicsIDUsIHY9Jzg4MTcuLi4nLCA0NzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdhOWExLi4uJywgNSwgdj0nODgxOC4uLicsIDQ4MCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2Q0YjIuLi4nLCA1LCB2PSc4ODIyLi4uJywgNDc4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZmVlMi4uLicsIDUsIHY9Jzg4MjcuLi4nLCA0OTUpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxMjkxLi4uJywgNiwgdj0nMTExMS4uLicsIDU3MCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE1MzQuLi4nLCA2LCB2PScxMTEyLi4uJywgNTUyKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTdkNy4uLicsIDYsIHY9Jzg4MzEuLi4nLCA0ODIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxYTk2Li4uJywgNiwgdj0nODgzMi4uLicsIDk4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWM3NC4uLicsIDYsIHY9Jzg4MzQuLi4nLCA0NzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxZjE3Li4uJywgNiwgdj0nODgzNS4uLicsIDQ3OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzIxYmEuLi4nLCA2LCB2PSc4ODM4Li4uJywgNDc4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjQ2Yi4uLicsIDYsIHY9Jzg4NDMuLi4nLCA0NzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyNzBlLi4uJywgNiwgdj0nODg0OC4uLicsIDg4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCSwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG1lbWluZD0nMzM0MC4uLicsIDUsIGg9JzNkYzEuLi4nLCA4KQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzAiIHYuLi4nLCAxLCB2PSc5NDM3Li4uJywgNDMwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMmEzMC4uLicsIDUsIHY9Jzk1MTAuLi4nLCA0MzIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc1NTQxLi4uJywgNSwgdj0nOTUxMS4uLicsIDQzMCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzdmNzEuLi4nLCA1LCB2PSc5NTExLi4uJywgNDMwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nYTlhMS4uLicsIDUsIHY9Jzk1MjIuLi4nLCA0MzIpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdkNGIyLi4uJywgNSwgdj0nOTUzNy4uLicsIDQzMCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2ZlZTIuLi4nLCA1LCB2PSc5NjYzLi4uJywgNDQ5KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMTI5MS4uLicsIDYsIHY9Jzg5ODAuLi4nLCA1MTgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScxNTM0Li4uJywgNiwgdj0nODk4My4uLicsIDUwNykKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzE3ZDcuLi4nLCA2LCB2PSc5ODQ0Li4uJywgNDY2KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWE5Ni4uLicsIDYsIHY9JzEwMTQuLi4nLCA5OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzFjNzQuLi4nLCA2LCB2PScxMDIwLi4uJywgNDc4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMWYxNy4uLicsIDYsIHY9JzEwMzIuLi4nLCA0NzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScyMWJhLi4uJywgNiwgdj0nMTA1Mi4uLicsIDQ3OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzI0NmIuLi4nLCA2LCB2PScxMDc0Li4uJywgNDc4KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nMjcwZS4uLicsIDYsIHY9JzEwOTcuLi4nLCA4OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguc3RhcnRFbGVtZW50TnMocGFyLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBtZW1pbmQ9JzMzMDAuLi4nLCA1LCBoPSczZGMxLi4uJywgOCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPScwIiB2Li4uJywgMSwgdj0nMzg2MS4uLicsIDQ3OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzJhMzAuLi4nLCA1LCB2PSczODYxLi4uJywgNDgwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nNTU0MS4uLicsIDUsIHY9JzM4NjEuLi4nLCA0NzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSc3ZjcxLi4uJywgNSwgdj0nMzg2MS4uLicsIDQ3OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89J2E5YTEuLi4nLCA1LCB2PSczODYxLi4uJywgNDgwKQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQkJLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbz0nZDRiMi4uLicsIDUsIHY9JzM4NjIuLi4nLCA0NzgpCitTQVguZW5kRWxlbWVudE5zKHZhbCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJCQksIDYpCitTQVguc3RhcnRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBvPSdmZWUyLi4uJywgNSwgdj0nMzg2Mi4uLicsIDQ5OCkKK1NBWC5lbmRFbGVtZW50TnModmFsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisJCQkJCSwgNikKK1NBWC5zdGFydEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG89JzEyOTEuLi4nLCA2LCB2PScyMjk3Li4uJywgNTc0KQorU0FYLmVuZEVsZW1lbnROcyh2YWwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJCQksIDUpCitTQVguZW5kRWxlbWVudE5zKHBhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCQkJLCA0KQorU0FYLmVuZEVsZW1lbnROcyhkZXZpY2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzZWxlY3QsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKwksIDIpCitTQVguZW5kRWxlbWVudE5zKGRhdGEsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZWxlY3Ryb3htbCwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ1IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzY4ZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NQpAQCAtMCwwICsxLDQwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFBVFRMSVNUIG5vcm1JZCBhdHRyIE5NVE9LRU5TICNJTVBMSUVEPgorXT4KKzxkb2M+CisgIDwhLS0gbm8gbm9ybWFsaXphdGlvbiAtLT4KKyAgPG5vcm0gYXR0cj0iICAgIi8+CisgIDxub3JtIGF0dHI9IiAgIGZvbyBiYXIgICAiLz4KKyAgPG5vcm0gYXR0cj0iICBmb29iYXIiLz4KKyAgPG5vcm0gYXR0cj0iIGZvbyBiYXIgIi8+CisgIDxub3JtIGF0dHI9ImZvb2JhciAgIi8+CisgIDxub3JtIGF0dHI9IiAmYW1wOyAiLz4KKyAgPG5vcm0gYXR0cj0iICAgZm9vJmFtcDtiYXIgICAiLz4KKyAgPG5vcm0gYXR0cj0iICBmb29iYXImYW1wOyIvPgorICA8bm9ybSBhdHRyPSImYW1wO2ZvbyBiYXIgIi8+CisgIDxub3JtIGF0dHI9ImZvb2JhciAgJmFtcDsiLz4KKyAgPG5vcm0gYXR0cj0iICZsdDsgIi8+CisgIDxub3JtIGF0dHI9IiAgIGZvbyZsdDtiYXIgICAiLz4KKyAgPG5vcm0gYXR0cj0iICBmb29iYXImbHQ7Ii8+CisgIDxub3JtIGF0dHI9IiZsdDtmb28gYmFyICIvPgorICA8bm9ybSBhdHRyPSJmb29iYXIgICZsdDsiLz4KKyAgPG5vcm0gYXR0cj0iICAmIzEzOyYjMTA7JiM5OyAiLz4KKyAgPCEtLSBub3JtYWxpemF0aW9uIC0tPgorICA8bm9ybUlkIGF0dHI9IiIvPgorICA8bm9ybUlkIGF0dHI9ImZvbyBiYXIiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb29iYXIiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb28gYmFyIi8+CisgIDxub3JtSWQgYXR0cj0iZm9vYmFyIi8+CisgIDxub3JtSWQgYXR0cj0iJmFtcDsiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb28mYW1wO2JhciIvPgorICA8bm9ybUlkIGF0dHI9ImZvb2JhciZhbXA7Ii8+CisgIDxub3JtSWQgYXR0cj0iJmFtcDtmb28gYmFyIi8+CisgIDxub3JtSWQgYXR0cj0iZm9vYmFyICZhbXA7Ii8+CisgIDxub3JtSWQgYXR0cj0iJmx0OyIvPgorICA8bm9ybUlkIGF0dHI9ImZvbyZsdDtiYXIiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb29iYXImbHQ7Ii8+CisgIDxub3JtSWQgYXR0cj0iJmx0O2ZvbyBiYXIiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb29iYXIgJmx0OyIvPgorICA8bm9ybUlkIGF0dHI9IiYjMTM7JiMxMDsmIzk7Ii8+IDwhLS0gUEJNIHNlcmlhbGl6aW5nIGJhY2sgLS0+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDUucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NS5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUyMjBiMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDUucmRlCkBAIC0wLDAgKzEsMTA5IEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDggI2NvbW1lbnQgMCAxICBubyBub3JtYWxpemF0aW9uIAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDggI2NvbW1lbnQgMCAxICBub3JtYWxpemF0aW9uIAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxICAKKzEgOCAjY29tbWVudCAwIDEgIFBCTSBzZXJpYWxpemluZyBiYWNrIAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ1LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTIyMGIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NS5yZHIKQEAgLTAsMCArMSwxMDkgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgOCAjY29tbWVudCAwIDEgIG5vIG5vcm1hbGl6YXRpb24gCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm0gMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybSAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgOCAjY29tbWVudCAwIDEgIG5vcm1hbGl6YXRpb24gCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIG5vcm1JZCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBub3JtSWQgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgbm9ybUlkIDEgMAorMSAxNCAjdGV4dCAwIDEgIAorMSA4ICNjb21tZW50IDAgMSAgUEJNIHNlcmlhbGl6aW5nIGJhY2sgCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ1LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDUuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5ZDg1ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ1LnNheApAQCAtMCwwICsxLDE0OCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5hdHRyaWJ1dGVEZWNsKG5vcm1JZCwgYXR0ciwgOCwgMywgTlVMTCwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguY29tbWVudCggbm8gbm9ybWFsaXphdGlvbiApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtLCBhdHRyPScgICAnKQorU0FYLmVuZEVsZW1lbnQobm9ybSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KG5vcm0sIGF0dHI9JyAgIGZvbyBiYXIgICAnKQorU0FYLmVuZEVsZW1lbnQobm9ybSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KG5vcm0sIGF0dHI9JyAgZm9vYmFyJykKK1NBWC5lbmRFbGVtZW50KG5vcm0pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtLCBhdHRyPScgZm9vIGJhciAnKQorU0FYLmVuZEVsZW1lbnQobm9ybSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KG5vcm0sIGF0dHI9J2Zvb2JhciAgJykKK1NBWC5lbmRFbGVtZW50KG5vcm0pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtLCBhdHRyPScgJiMzODsgJykKK1NBWC5lbmRFbGVtZW50KG5vcm0pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtLCBhdHRyPScgICBmb28mIzM4O2JhciAgICcpCitTQVguZW5kRWxlbWVudChub3JtKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybSwgYXR0cj0nICBmb29iYXImIzM4OycpCitTQVguZW5kRWxlbWVudChub3JtKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybSwgYXR0cj0nJiMzODtmb28gYmFyICcpCitTQVguZW5kRWxlbWVudChub3JtKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybSwgYXR0cj0nZm9vYmFyICAmIzM4OycpCitTQVguZW5kRWxlbWVudChub3JtKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybSwgYXR0cj0nIDwgJykKK1NBWC5lbmRFbGVtZW50KG5vcm0pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtLCBhdHRyPScgICBmb288YmFyICAgJykKK1NBWC5lbmRFbGVtZW50KG5vcm0pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtLCBhdHRyPScgIGZvb2JhcjwnKQorU0FYLmVuZEVsZW1lbnQobm9ybSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KG5vcm0sIGF0dHI9Jzxmb28gYmFyICcpCitTQVguZW5kRWxlbWVudChub3JtKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybSwgYXR0cj0nZm9vYmFyICA8JykKK1NBWC5lbmRFbGVtZW50KG5vcm0pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtLCBhdHRyPScgIA0KKwkgJykKK1NBWC5lbmRFbGVtZW50KG5vcm0pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIG5vcm1hbGl6YXRpb24gKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPScgICAnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPScgICBmb28gYmFyICAgJykKK1NBWC5lbmRFbGVtZW50KG5vcm1JZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KG5vcm1JZCwgYXR0cj0nICBmb29iYXInKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPScgZm9vIGJhciAnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPSdmb29iYXIgICcpCitTQVguZW5kRWxlbWVudChub3JtSWQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtSWQsIGF0dHI9JyAmIzM4OyAnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPScgICBmb28mIzM4O2JhciAgICcpCitTQVguZW5kRWxlbWVudChub3JtSWQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtSWQsIGF0dHI9JyAgZm9vYmFyJiMzODsnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPScmIzM4O2ZvbyBiYXIgJykKK1NBWC5lbmRFbGVtZW50KG5vcm1JZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KG5vcm1JZCwgYXR0cj0nZm9vYmFyICAmIzM4OycpCitTQVguZW5kRWxlbWVudChub3JtSWQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtSWQsIGF0dHI9JyA8ICcpCitTQVguZW5kRWxlbWVudChub3JtSWQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChub3JtSWQsIGF0dHI9JyAgIGZvbzxiYXIgICAnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPScgIGZvb2JhcjwnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPSc8Zm9vIGJhciAnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPSdmb29iYXIgIDwnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQobm9ybUlkLCBhdHRyPScgDQorCSAnKQorU0FYLmVuZEVsZW1lbnQobm9ybUlkKQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5jb21tZW50KCBQQk0gc2VyaWFsaXppbmcgYmFjayApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ1LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ1LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMwMGExZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDUuc2F4MgpAQCAtMCwwICsxLDE0OSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5hdHRyaWJ1dGVEZWNsKG5vcm1JZCwgYXR0ciwgOCwgMywgTlVMTCwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5jb21tZW50KCBubyBub3JtYWxpemF0aW9uICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nICAgJy4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9JyAgIGYuLi4nLCAxMykKK1NBWC5lbmRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nICBmby4uLicsIDgpCitTQVguZW5kRWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9JyBmb28uLi4nLCA5KQorU0FYLmVuZEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPSdmb29iLi4uJywgOCkKK1NBWC5lbmRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nICYjMy4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9JyAgIGYuLi4nLCAxNykKK1NBWC5lbmRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nICBmby4uLicsIDEzKQorU0FYLmVuZEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPScmIzM4Li4uJywgMTMpCitTQVguZW5kRWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J2Zvb2IuLi4nLCAxMykKK1NBWC5lbmRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nIDwgLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nICAgZi4uLicsIDEzKQorU0FYLmVuZEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPScgIGZvLi4uJywgOSkKK1NBWC5lbmRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nPGZvby4uLicsIDkpCitTQVguZW5kRWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J2Zvb2IuLi4nLCA5KQorU0FYLmVuZEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPScgIA0KKy4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKG5vcm0sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIG5vcm1hbGl6YXRpb24gKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9JycvPgorLi4uJywgMCkKK1NBWC5lbmRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J2ZvbyAuLi4nLCA3KQorU0FYLmVuZEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nZm9vYi4uLicsIDYpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPSdmb28gLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J2Zvb2IuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nJiMzOC4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPSdmb28mLi4uJywgMTEpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPSdmb29iLi4uJywgMTEpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPScmIzM4Li4uJywgMTIpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPSdmb29iLi4uJywgMTIpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPSc8Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J2ZvbzwuLi4nLCA3KQorU0FYLmVuZEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nZm9vYi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBhdHRyPSc8Zm9vLi4uJywgOCkKK1NBWC5lbmRFbGVtZW50TnMobm9ybUlkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J2Zvb2IuLi4nLCA4KQorU0FYLmVuZEVsZW1lbnROcyhub3JtSWQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cj0nDQorCS4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKG5vcm1JZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguY29tbWVudCggUEJNIHNlcmlhbGl6aW5nIGJhY2sgKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ2IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzhlNmI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0NgpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8SW52b2ljZSB4bWxuczpjY3RzPSJ1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkNvcmVDb21wb25lbnRQYXJhbWV0ZXJzOjEuMDowLjcwIiB4bWxuczpjY3Q9InVybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29yZUNvbXBvbmVudFR5cGVzOjEuMDowLjcwIiB4bWxuczpjYXQ9InVybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29tbW9uQWdncmVnYXRlVHlwZXM6MS4wOjAuNzAiIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkludm9pY2U6MS4wOjAuNzAiPgorICAgPGNhdDpSZWZlcmVuY2VkT3JkZXI+CisgICAgICA8Y2F0OlNlbGxlcnNPcmRlcklEIHNjaGVtZUlEPSJwdmFsdWUtJmd0O1JlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVJRCIgc2NoZW1lQWdlbmN5SUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZUFnZW5jeUlEIiBzY2hlbWVWZXJzaW9uSUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZVZlcnNpb25JRCIgc2NoZW1lQWdlbmN5U2NoZW1lSUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZUFnZW5jeVNjaGVtZUlEIiBzY2hlbWVBZ2VuY3lTY2hlbWVBZ2VuY3lJRD0icHZhbHVlLSZndDtSZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lQWdlbmN5U2NoZW1lQWdlbmN5SUQiIHNjaGVtZURhdGFVUkk9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZURhdGFVUkkiIHNjaGVtZVVSST0icHZhbHVlLSZndDtSZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lVVJJIiBVSUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELlVJRCIgVUlEUmVmPSJwdmFsdWUtJmd0O1JlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5VSURSZWYiIFVJRFJlZnM9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELlVJRFJlZnMwIiBsYW5ndWFnZT0icHZhbHVlLSZndDtSZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQubGFuZ3VhZ2UiPnB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklEPC9jYXQ6U2VsbGVyc09yZGVySUQ+CisgICA8L2NhdDpSZWZlcmVuY2VkT3JkZXI+Cis8L0ludm9pY2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ2LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDYucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMzkzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ2LnJkZQpAQCAtMCwwICsxLDE1IEBACiswIDEgSW52b2ljZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgY2F0OlJlZmVyZW5jZWRPcmRlciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgICAgCisyIDEgY2F0OlNlbGxlcnNPcmRlcklEIDAgMAorMyAzICN0ZXh0IDAgMSBwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRAorMiAxNSBjYXQ6U2VsbGVyc09yZGVySUQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAxNSBjYXQ6UmVmZXJlbmNlZE9yZGVyIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgSW52b2ljZSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDYucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ni5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQzOTM1MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDYucmRyCkBAIC0wLDAgKzEsMTUgQEAKKzAgMSBJbnZvaWNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBjYXQ6UmVmZXJlbmNlZE9yZGVyIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgICAKKzIgMSBjYXQ6U2VsbGVyc09yZGVySUQgMCAwCiszIDMgI3RleHQgMCAxIHB2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklECisyIDE1IGNhdDpTZWxsZXJzT3JkZXJJRCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgCisxIDE1IGNhdDpSZWZlcmVuY2VkT3JkZXIgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBJbnZvaWNlIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ni5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ2LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWI5NTIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ni5zYXgKQEAgLTAsMCArMSwyMCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KEludm9pY2UsIHhtbG5zOmNjdHM9J3VybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29yZUNvbXBvbmVudFBhcmFtZXRlcnM6MS4wOjAuNzAnLCB4bWxuczpjY3Q9J3VybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29yZUNvbXBvbmVudFR5cGVzOjEuMDowLjcwJywgeG1sbnM6Y2F0PSd1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkNvbW1vbkFnZ3JlZ2F0ZVR5cGVzOjEuMDowLjcwJywgeG1sbnM9J3VybjpvYXNpczpuYW1lczp0Yzp1Ymw6SW52b2ljZToxLjA6MC43MCcpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoY2F0OlJlZmVyZW5jZWRPcmRlcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChjYXQ6U2VsbGVyc09yZGVySUQsIHNjaGVtZUlEPSdwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVJRCcsIHNjaGVtZUFnZW5jeUlEPSdwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVBZ2VuY3lJRCcsIHNjaGVtZVZlcnNpb25JRD0ncHZhbHVlLT5SZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lVmVyc2lvbklEJywgc2NoZW1lQWdlbmN5U2NoZW1lSUQ9J3B2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZUFnZW5jeVNjaGVtZUlEJywgc2NoZW1lQWdlbmN5U2NoZW1lQWdlbmN5SUQ9J3B2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZUFnZW5jeVNjaGVtZUFnZW5jeUlEJywgc2NoZW1lRGF0YVVSST0ncHZhbHVlLT5SZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lRGF0YVVSSScsIHNjaGVtZVVSST0ncHZhbHVlLT5SZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lVVJJJywgVUlEPSdwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5VSUQnLCBVSURSZWY9J3B2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELlVJRFJlZicsIFVJRFJlZnM9J3B2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELlVJRFJlZnMwJywgbGFuZ3VhZ2U9J3B2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELmxhbmd1YWdlJykKK1NBWC5jaGFyYWN0ZXJzKHB2YWx1ZS0sIDcpCitTQVguY2hhcmFjdGVycyg+LCAxKQorU0FYLmNoYXJhY3RlcnMoUmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELCAzMCkKK1NBWC5lbmRFbGVtZW50KGNhdDpTZWxsZXJzT3JkZXJJRCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLmVuZEVsZW1lbnQoY2F0OlJlZmVyZW5jZWRPcmRlcikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoSW52b2ljZSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ2LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ2LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRkZDZkMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDYuc2F4MgpAQCAtMCwwICsxLDIwIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhJbnZvaWNlLCBOVUxMLCAndXJuOm9hc2lzOm5hbWVzOnRjOnVibDpJbnZvaWNlOjEuMDowLjcwJywgNCwgeG1sbnM6Y2N0cz0ndXJuOm9hc2lzOm5hbWVzOnRjOnVibDpDb3JlQ29tcG9uZW50UGFyYW1ldGVyczoxLjA6MC43MCcsIHhtbG5zOmNjdD0ndXJuOm9hc2lzOm5hbWVzOnRjOnVibDpDb3JlQ29tcG9uZW50VHlwZXM6MS4wOjAuNzAnLCB4bWxuczpjYXQ9J3VybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29tbW9uQWdncmVnYXRlVHlwZXM6MS4wOjAuNzAnLCB4bWxucz0ndXJuOm9hc2lzOm5hbWVzOnRjOnVibDpJbnZvaWNlOjEuMDowLjcwJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlZmVyZW5jZWRPcmRlciwgY2F0LCAndXJuOm9hc2lzOm5hbWVzOnRjOnVibDpDb21tb25BZ2dyZWdhdGVUeXBlczoxLjA6MC43MCcsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhTZWxsZXJzT3JkZXJJRCwgY2F0LCAndXJuOm9hc2lzOm5hbWVzOnRjOnVibDpDb21tb25BZ2dyZWdhdGVUeXBlczoxLjA6MC43MCcsIDAsIDExLCAwLCBzY2hlbWVJRD0ncHZhbC4uLicsIDQ3LCBzY2hlbWVBZ2VuY3lJRD0ncHZhbC4uLicsIDUzLCBzY2hlbWVWZXJzaW9uSUQ9J3B2YWwuLi4nLCA1NCwgc2NoZW1lQWdlbmN5U2NoZW1lSUQ9J3B2YWwuLi4nLCA1OSwgc2NoZW1lQWdlbmN5U2NoZW1lQWdlbmN5SUQ9J3B2YWwuLi4nLCA2NSwgc2NoZW1lRGF0YVVSST0ncHZhbC4uLicsIDUyLCBzY2hlbWVVUkk9J3B2YWwuLi4nLCA0OCwgVUlEPSdwdmFsLi4uJywgNDIsIFVJRFJlZj0ncHZhbC4uLicsIDQ1LCBVSURSZWZzPSdwdmFsLi4uJywgNDcsIGxhbmd1YWdlPSdwdmFsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycyhwdmFsdWUtLCA3KQorU0FYLmNoYXJhY3RlcnMoPiwgMSkKK1NBWC5jaGFyYWN0ZXJzKFJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRCwgMzApCitTQVguZW5kRWxlbWVudE5zKFNlbGxlcnNPcmRlcklELCBjYXQsICd1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkNvbW1vbkFnZ3JlZ2F0ZVR5cGVzOjEuMDowLjcwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLmVuZEVsZW1lbnROcyhSZWZlcmVuY2VkT3JkZXIsIGNhdCwgJ3VybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29tbW9uQWdncmVnYXRlVHlwZXM6MS4wOjAuNzAnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKEludm9pY2UsIE5VTEwsICd1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkludm9pY2U6MS4wOjAuNzAnKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZDA4MzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ3CkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHggWworPCFFTEVNRU5UIHggKHRlc3QpKj4KKzwhRUxFTUVOVCB0ZXN0IEVNUFRZPgorPCFBVFRMSVNUIHRlc3QgYXR0IENEQVRBICJhdHR2YWx1ZSI+Cis8IUVOVElUWSB0ZXN0LmVudCAiPHRlc3QvPiI+CitdPgorPHg+CisgICAgPHRlc3QvPgorICAgICZ0ZXN0LmVudDsKKzwveD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDcucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ny5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZjZWY1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDcucmRlCkBAIC0wLDAgKzEsMTIgQEAKKzAgMTAgeCAwIDAKKzAgMSB4IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAgCisxIDEgdGVzdCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAgIAorMSAxIHRlc3QgMCAwCisxIDE1IHRlc3QgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSB4IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ny5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ3LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2IxOWI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ny5yZHIKQEAgLTAsMCArMSwxMSBAQAorMCAxMCB4IDAgMAorMCAxIHggMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzEgMSB0ZXN0IDEgMAorMSAxNCAjdGV4dCAwIDEgCisgICAgCisxIDUgdGVzdC5lbnQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSB4IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ny5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ3LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDkzMjc5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ny5zYXgKQEAgLTAsMCArMSwyNCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoeCwgLCApCitTQVguZWxlbWVudERlY2woeCwgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKHRlc3QsIDEsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKHRlc3QsIGF0dCwgMSwgMSwgYXR0dmFsdWUsIC4uLikKK1NBWC5lbnRpdHlEZWNsKHRlc3QuZW50LCAxLCAobnVsbCksIChudWxsKSwgPHRlc3QvPikKK1NBWC5nZXRFbnRpdHkodGVzdC5lbnQpCitTQVguZXh0ZXJuYWxTdWJzZXQoeCwgLCApCitTQVguc3RhcnRFbGVtZW50KHgpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRlc3QpCitTQVguZW5kRWxlbWVudCh0ZXN0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmdldEVudGl0eSh0ZXN0LmVudCkKK1NBWC5zdGFydEVsZW1lbnQodGVzdCkKK1NBWC5lbmRFbGVtZW50KHRlc3QpCitTQVgucmVmZXJlbmNlKHRlc3QuZW50KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudCh4KQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDcuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDcuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzdlMmFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0Ny5zYXgyCkBAIC0wLDAgKzEsMjQgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHgsICwgKQorU0FYLmVsZW1lbnREZWNsKHgsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbCh0ZXN0LCAxLCAuLi4pCitTQVguYXR0cmlidXRlRGVjbCh0ZXN0LCBhdHQsIDEsIDEsIGF0dHZhbHVlLCAuLi4pCitTQVguZW50aXR5RGVjbCh0ZXN0LmVudCwgMSwgKG51bGwpLCAobnVsbCksIDx0ZXN0Lz4pCitTQVguZ2V0RW50aXR5KHRlc3QuZW50KQorU0FYLmV4dGVybmFsU3Vic2V0KHgsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKHgsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGVzdCwgTlVMTCwgTlVMTCwgMCwgMSwgMSwgYXR0PSdhdHR2Li4uJywgOCkKK1NBWC5lbmRFbGVtZW50TnModGVzdCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5nZXRFbnRpdHkodGVzdC5lbnQpCitTQVguc3RhcnRFbGVtZW50TnModGVzdCwgTlVMTCwgTlVMTCwgMCwgMSwgMSwgYXR0PSdhdHR2Li4uJywgOCkKK1NBWC5lbmRFbGVtZW50TnModGVzdCwgTlVMTCwgTlVMTCkKK1NBWC5yZWZlcmVuY2UodGVzdC5lbnQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoeCwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDgwN2EyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxpbm86cmVzcG9uc2UgeG1sbnM6aW5vPSJodHRwOi8vbmFtZXNwYWNlcy5zb2Z0d2FyZWFnLmNvbS90YW1pbm8vcmVzcG9uc2UyIiB4bWxuczp4cWw9Imh0dHA6Ly9tZXRhbGFiLnVuYy5lZHUveHFsLyIgaW5vOnNlc3Npb25pZD0iNTU2IiBpbm86c2Vzc2lvbmtleT0iMTU5MDQ2OTY3NyI+PHhxbDpxdWVyeT4vYnNrOkRvY1BhcnRbQGRvY0lkPScyMDA0MDMwODE1MjYwMTM0NTIzNicgYW5kIEBkb2NQYXJ0Tm89MV08L3hxbDpxdWVyeT48aW5vOm1lc3NhZ2UgaW5vOnJldHVybnZhbHVlPSIwIj48aW5vOm1lc3NhZ2VsaW5lPlhRTCBSZXF1ZXN0IHByb2Nlc3Npbmc8L2lubzptZXNzYWdlbGluZT48L2lubzptZXNzYWdlPjx4cWw6cmVzdWx0Pjxic2s6RG9jUGFydCB4bWxuczpic2s9Imh0dHA6Ly93d3cuaGVpdGVjLm5ldC9zYXJhNC90YW1pbm8vYmFza2V0IiBkb2NJZD0iMjAwNDAzMDgxNTI2MDEzNDUyMzYiIGRvY1BhcnRObz0iMSIgaW5vOmlkPSIxNTI5MCI+PGJzazpGaWxlIG5hbWU9IjQ4OThXUFpFTzJNNjUiIHNpemU9Ijc1MTk1Ij4gPC9ic2s6RmlsZT48L2JzazpEb2NQYXJ0PjwveHFsOnJlc3VsdD48aW5vOm1lc3NhZ2UgaW5vOnJldHVybnZhbHVlPSIwIj48aW5vOm1lc3NhZ2VsaW5lPlhRTCBSZXF1ZXN0IHByb2Nlc3NlZDwvaW5vOm1lc3NhZ2VsaW5lPjwvaW5vOm1lc3NhZ2U+PC9pbm86cmVzcG9uc2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ4LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDgucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZmRlMzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ4LnJkZQpAQCAtMCwwICsxLDIyIEBACiswIDEgaW5vOnJlc3BvbnNlIDAgMAorMSAxIHhxbDpxdWVyeSAwIDAKKzIgMyAjdGV4dCAwIDEgL2JzazpEb2NQYXJ0W0Bkb2NJZD0nMjAwNDAzMDgxNTI2MDEzNDUyMzYnIGFuZCBAZG9jUGFydE5vPTFdCisxIDE1IHhxbDpxdWVyeSAwIDAKKzEgMSBpbm86bWVzc2FnZSAwIDAKKzIgMSBpbm86bWVzc2FnZWxpbmUgMCAwCiszIDMgI3RleHQgMCAxIFhRTCBSZXF1ZXN0IHByb2Nlc3NpbmcKKzIgMTUgaW5vOm1lc3NhZ2VsaW5lIDAgMAorMSAxNSBpbm86bWVzc2FnZSAwIDAKKzEgMSB4cWw6cmVzdWx0IDAgMAorMiAxIGJzazpEb2NQYXJ0IDAgMAorMyAxIGJzazpGaWxlIDAgMAorNCAxNCAjdGV4dCAwIDEgIAorMyAxNSBic2s6RmlsZSAwIDAKKzIgMTUgYnNrOkRvY1BhcnQgMCAwCisxIDE1IHhxbDpyZXN1bHQgMCAwCisxIDEgaW5vOm1lc3NhZ2UgMCAwCisyIDEgaW5vOm1lc3NhZ2VsaW5lIDAgMAorMyAzICN0ZXh0IDAgMSBYUUwgUmVxdWVzdCBwcm9jZXNzZWQKKzIgMTUgaW5vOm1lc3NhZ2VsaW5lIDAgMAorMSAxNSBpbm86bWVzc2FnZSAwIDAKKzAgMTUgaW5vOnJlc3BvbnNlIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ4LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmZkZTMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OC5yZHIKQEAgLTAsMCArMSwyMiBAQAorMCAxIGlubzpyZXNwb25zZSAwIDAKKzEgMSB4cWw6cXVlcnkgMCAwCisyIDMgI3RleHQgMCAxIC9ic2s6RG9jUGFydFtAZG9jSWQ9JzIwMDQwMzA4MTUyNjAxMzQ1MjM2JyBhbmQgQGRvY1BhcnRObz0xXQorMSAxNSB4cWw6cXVlcnkgMCAwCisxIDEgaW5vOm1lc3NhZ2UgMCAwCisyIDEgaW5vOm1lc3NhZ2VsaW5lIDAgMAorMyAzICN0ZXh0IDAgMSBYUUwgUmVxdWVzdCBwcm9jZXNzaW5nCisyIDE1IGlubzptZXNzYWdlbGluZSAwIDAKKzEgMTUgaW5vOm1lc3NhZ2UgMCAwCisxIDEgeHFsOnJlc3VsdCAwIDAKKzIgMSBic2s6RG9jUGFydCAwIDAKKzMgMSBic2s6RmlsZSAwIDAKKzQgMTQgI3RleHQgMCAxICAKKzMgMTUgYnNrOkZpbGUgMCAwCisyIDE1IGJzazpEb2NQYXJ0IDAgMAorMSAxNSB4cWw6cmVzdWx0IDAgMAorMSAxIGlubzptZXNzYWdlIDAgMAorMiAxIGlubzptZXNzYWdlbGluZSAwIDAKKzMgMyAjdGV4dCAwIDEgWFFMIFJlcXVlc3QgcHJvY2Vzc2VkCisyIDE1IGlubzptZXNzYWdlbGluZSAwIDAKKzEgMTUgaW5vOm1lc3NhZ2UgMCAwCiswIDE1IGlubzpyZXNwb25zZSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDguc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJlMzc4YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDguc2F4CkBAIC0wLDAgKzEsMjkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChpbm86cmVzcG9uc2UsIHhtbG5zOmlubz0naHR0cDovL25hbWVzcGFjZXMuc29mdHdhcmVhZy5jb20vdGFtaW5vL3Jlc3BvbnNlMicsIHhtbG5zOnhxbD0naHR0cDovL21ldGFsYWIudW5jLmVkdS94cWwvJywgaW5vOnNlc3Npb25pZD0nNTU2JywgaW5vOnNlc3Npb25rZXk9JzE1OTA0Njk2NzcnKQorU0FYLnN0YXJ0RWxlbWVudCh4cWw6cXVlcnkpCitTQVguY2hhcmFjdGVycygvYnNrOkRvY1BhcnRbQGRvY0lkPSwgMjApCitTQVguY2hhcmFjdGVycygnLCAxKQorU0FYLmNoYXJhY3RlcnMoMjAwNDAzMDgxNTI2MDEzNDUyMzYsIDIwKQorU0FYLmNoYXJhY3RlcnMoJywgMSkKK1NBWC5jaGFyYWN0ZXJzKCBhbmQgQGRvY1BhcnRObz0xXSwgMTgpCitTQVguZW5kRWxlbWVudCh4cWw6cXVlcnkpCitTQVguc3RhcnRFbGVtZW50KGlubzptZXNzYWdlLCBpbm86cmV0dXJudmFsdWU9JzAnKQorU0FYLnN0YXJ0RWxlbWVudChpbm86bWVzc2FnZWxpbmUpCitTQVguY2hhcmFjdGVycyhYUUwgUmVxdWVzdCBwcm9jZXNzaW5nLCAyMikKK1NBWC5lbmRFbGVtZW50KGlubzptZXNzYWdlbGluZSkKK1NBWC5lbmRFbGVtZW50KGlubzptZXNzYWdlKQorU0FYLnN0YXJ0RWxlbWVudCh4cWw6cmVzdWx0KQorU0FYLnN0YXJ0RWxlbWVudChic2s6RG9jUGFydCwgZG9jSWQ9JzIwMDQwMzA4MTUyNjAxMzQ1MjM2JywgZG9jUGFydE5vPScxJywgaW5vOmlkPScxNTI5MCcsIHhtbG5zOmJzaz0naHR0cDovL3d3dy5oZWl0ZWMubmV0L3NhcmE0L3RhbWluby9iYXNrZXQnKQorU0FYLnN0YXJ0RWxlbWVudChic2s6RmlsZSwgbmFtZT0nNDg5OFdQWkVPMk02NScsIHNpemU9Jzc1MTk1JykKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguZW5kRWxlbWVudChic2s6RmlsZSkKK1NBWC5lbmRFbGVtZW50KGJzazpEb2NQYXJ0KQorU0FYLmVuZEVsZW1lbnQoeHFsOnJlc3VsdCkKK1NBWC5zdGFydEVsZW1lbnQoaW5vOm1lc3NhZ2UsIGlubzpyZXR1cm52YWx1ZT0nMCcpCitTQVguc3RhcnRFbGVtZW50KGlubzptZXNzYWdlbGluZSkKK1NBWC5jaGFyYWN0ZXJzKFhRTCBSZXF1ZXN0IHByb2Nlc3NlZCwgMjEpCitTQVguZW5kRWxlbWVudChpbm86bWVzc2FnZWxpbmUpCitTQVguZW5kRWxlbWVudChpbm86bWVzc2FnZSkKK1NBWC5lbmRFbGVtZW50KGlubzpyZXNwb25zZSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ4LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ4LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYyMzQ0YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDguc2F4MgpAQCAtMCwwICsxLDI5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgaW5vLCAnaHR0cDovL25hbWVzcGFjZXMuc29mdHdhcmVhZy5jb20vdGFtaW5vL3Jlc3BvbnNlMicsIDIsIHhtbG5zOmlubz0naHR0cDovL25hbWVzcGFjZXMuc29mdHdhcmVhZy5jb20vdGFtaW5vL3Jlc3BvbnNlMicsIHhtbG5zOnhxbD0naHR0cDovL21ldGFsYWIudW5jLmVkdS94cWwvJywgMiwgMCwgaW5vOnNlc3Npb25pZD0nNTU2Ii4uLicsIDMsIGlubzpzZXNzaW9ua2V5PScxNTkwLi4uJywgMTApCitTQVguc3RhcnRFbGVtZW50TnMocXVlcnksIHhxbCwgJ2h0dHA6Ly9tZXRhbGFiLnVuYy5lZHUveHFsLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygvYnNrOkRvY1BhcnRbQGRvY0lkPSwgMjApCitTQVguY2hhcmFjdGVycygnLCAxKQorU0FYLmNoYXJhY3RlcnMoMjAwNDAzMDgxNTI2MDEzNDUyMzYsIDIwKQorU0FYLmNoYXJhY3RlcnMoJywgMSkKK1NBWC5jaGFyYWN0ZXJzKCBhbmQgQGRvY1BhcnRObz0xXSwgMTgpCitTQVguZW5kRWxlbWVudE5zKHF1ZXJ5LCB4cWwsICdodHRwOi8vbWV0YWxhYi51bmMuZWR1L3hxbC8nKQorU0FYLnN0YXJ0RWxlbWVudE5zKG1lc3NhZ2UsIGlubywgJ2h0dHA6Ly9uYW1lc3BhY2VzLnNvZnR3YXJlYWcuY29tL3RhbWluby9yZXNwb25zZTInLCAwLCAxLCAwLCBpbm86cmV0dXJudmFsdWU9JzAiPjwuLi4nLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKG1lc3NhZ2VsaW5lLCBpbm8sICdodHRwOi8vbmFtZXNwYWNlcy5zb2Z0d2FyZWFnLmNvbS90YW1pbm8vcmVzcG9uc2UyJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFhRTCBSZXF1ZXN0IHByb2Nlc3NpbmcsIDIyKQorU0FYLmVuZEVsZW1lbnROcyhtZXNzYWdlbGluZSwgaW5vLCAnaHR0cDovL25hbWVzcGFjZXMuc29mdHdhcmVhZy5jb20vdGFtaW5vL3Jlc3BvbnNlMicpCitTQVguZW5kRWxlbWVudE5zKG1lc3NhZ2UsIGlubywgJ2h0dHA6Ly9uYW1lc3BhY2VzLnNvZnR3YXJlYWcuY29tL3RhbWluby9yZXNwb25zZTInKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3VsdCwgeHFsLCAnaHR0cDovL21ldGFsYWIudW5jLmVkdS94cWwvJywgMCwgMCwgMCkKK1NBWC5zdGFydEVsZW1lbnROcyhEb2NQYXJ0LCBic2ssICdodHRwOi8vd3d3LmhlaXRlYy5uZXQvc2FyYTQvdGFtaW5vL2Jhc2tldCcsIDEsIHhtbG5zOmJzaz0naHR0cDovL3d3dy5oZWl0ZWMubmV0L3NhcmE0L3RhbWluby9iYXNrZXQnLCAzLCAwLCBkb2NJZD0nMjAwNC4uLicsIDIwLCBkb2NQYXJ0Tm89JzEiIGkuLi4nLCAxLCBpbm86aWQ9JzE1MjkuLi4nLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKEZpbGUsIGJzaywgJ2h0dHA6Ly93d3cuaGVpdGVjLm5ldC9zYXJhNC90YW1pbm8vYmFza2V0JywgMCwgMiwgMCwgbmFtZT0nNDg5OC4uLicsIDEzLCBzaXplPSc3NTE5Li4uJywgNSkKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguZW5kRWxlbWVudE5zKEZpbGUsIGJzaywgJ2h0dHA6Ly93d3cuaGVpdGVjLm5ldC9zYXJhNC90YW1pbm8vYmFza2V0JykKK1NBWC5lbmRFbGVtZW50TnMoRG9jUGFydCwgYnNrLCAnaHR0cDovL3d3dy5oZWl0ZWMubmV0L3NhcmE0L3RhbWluby9iYXNrZXQnKQorU0FYLmVuZEVsZW1lbnROcyhyZXN1bHQsIHhxbCwgJ2h0dHA6Ly9tZXRhbGFiLnVuYy5lZHUveHFsLycpCitTQVguc3RhcnRFbGVtZW50TnMobWVzc2FnZSwgaW5vLCAnaHR0cDovL25hbWVzcGFjZXMuc29mdHdhcmVhZy5jb20vdGFtaW5vL3Jlc3BvbnNlMicsIDAsIDEsIDAsIGlubzpyZXR1cm52YWx1ZT0nMCI+PC4uLicsIDEpCitTQVguc3RhcnRFbGVtZW50TnMobWVzc2FnZWxpbmUsIGlubywgJ2h0dHA6Ly9uYW1lc3BhY2VzLnNvZnR3YXJlYWcuY29tL3RhbWluby9yZXNwb25zZTInLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoWFFMIFJlcXVlc3QgcHJvY2Vzc2VkLCAyMSkKK1NBWC5lbmRFbGVtZW50TnMobWVzc2FnZWxpbmUsIGlubywgJ2h0dHA6Ly9uYW1lc3BhY2VzLnNvZnR3YXJlYWcuY29tL3RhbWluby9yZXNwb25zZTInKQorU0FYLmVuZEVsZW1lbnROcyhtZXNzYWdlLCBpbm8sICdodHRwOi8vbmFtZXNwYWNlcy5zb2Z0d2FyZWFnLmNvbS90YW1pbm8vcmVzcG9uc2UyJykKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2UsIGlubywgJ2h0dHA6Ly9uYW1lc3BhY2VzLnNvZnR3YXJlYWcuY29tL3RhbWluby9yZXNwb25zZTInKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDkgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OTgyYTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ5CkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhQVRUTElTVCBkb2MgYTEgTk1UT0tFTlMgIjEgMiI+Cis8IUVMRU1FTlQgZG9jICgjUENEQVRBKT4KK10+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDkucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OS5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIwYTM0ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDkucmRlCkBAIC0wLDAgKzEsMiBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ5LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBhMzRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OS5yZHIKQEAgLTAsMCArMSwyIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ5LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dDkuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmZTE0YTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ5LnNheApAQCAtMCwwICsxLDkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguYXR0cmlidXRlRGVjbChkb2MsIGExLCA4LCAxLCAxIDIsIC4uLikKK1NBWC5lbGVtZW50RGVjbChkb2MsIDMsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0OS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5YjNhMDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHQ5LnNheDIKQEAgLTAsMCArMSw5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmF0dHJpYnV0ZURlY2woZG9jLCBhMSwgOCwgMSwgMSAyLCAuLi4pCitTQVguZWxlbWVudERlY2woZG9jLCAzLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDEsIDEsIGExPScxIDIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0cmliLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dHJpYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlhMWU1NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dHJpYi54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxpdGVtIHRpdGxlPSJJY3JvbnRpYy5jb20gLSBXYXJuaW5nOiBCcmVha2RhbmNpbmcgbWlkZ2V0IHdpdGggdG91cmV0dGUncyBzeW5kcm9tZSBvbi1ib2FyZCYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyYjeEEwOyIgdXJsPSJodHRwOi8vd3d3Lmljcm9udGljLmNvbS8iIGZpcnN0X3RpbWU9Ijk4NTAzNDMzOSIgbGFzdF90aW1lPSI5ODUwMzQzMzkiIHZpc2l0cz0iMSIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0cmliLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHRyaWIueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTYzMjVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0cmliLnhtbC5yZGUKQEAgLTAsMCArMSBAQAorMCAxIGl0ZW0gMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHRyaWIueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dHJpYi54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNjMyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHRyaWIueG1sLnJkcgpAQCAtMCwwICsxIEBACiswIDEgaXRlbSAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dHJpYi54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXR0cmliLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBhZDhlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dHJpYi54bWwuc2F4CkBAIC0wLDAgKzEsNSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGl0ZW0sIHRpdGxlPSdJY3JvbnRpYy5jb20gLSBXYXJuaW5nOiBCcmVha2RhbmNpbmcgbWlkZ2V0IHdpdGggdG91cmV0dGUncyBzeW5kcm9tZSBvbi1ib2FyZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCcsIHVybD0naHR0cDovL3d3dy5pY3JvbnRpYy5jb20vJywgZmlyc3RfdGltZT0nOTg1MDM0MzM5JywgbGFzdF90aW1lPSc5ODUwMzQzMzknLCB2aXNpdHM9JzEnKQorU0FYLmVuZEVsZW1lbnQoaXRlbSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHRyaWIueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9hdHRyaWIueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdkMmM4NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F0dHJpYi54bWwuc2F4MgpAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGl0ZW0sIE5VTEwsIE5VTEwsIDAsIDUsIDAsIHRpdGxlPSdJY3JvLi4uJywgMTczLCB1cmw9J2h0dHAuLi4nLCAyNCwgZmlyc3RfdGltZT0nOTg1MC4uLicsIDksIGxhc3RfdGltZT0nOTg1MC4uLicsIDksIHZpc2l0cz0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKGl0ZW0sIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXV0b21hdGEvYSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2EKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVjZTQxMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2EKQEAgLTAsMCArMSw0IEBACis9PiBQYXNzZWQKKz0+IEZhaWxlZAorPT4gRmFpbGVkCis9PiBGYWlsZWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2FiYSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2FiYQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTFiOWJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXV0b21hdGEvYWJhCkBAIC0wLDAgKzEsNiBAQAorPT4gUGFzc2VkCis9PiBQYXNzZWQKKz0+IFBhc3NlZAorPT4gRmFpbGVkCis9PiBGYWlsZWQKKz0+IEZhaWxlZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXV0b21hdGEvYWJhYSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2FiYWEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0NzY5ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2FiYWEKQEAgLTAsMCArMSw1IEBACis9PiBQYXNzZWQKKz0+IFBhc3NlZAorPT4gUGFzc2VkCis9PiBGYWlsZWQKKz0+IEZhaWxlZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXV0b21hdGEvYWJiYSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2FiYmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE2MDg0OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL2FiYmEKQEAgLTAsMCArMSw0IEBACis9PiBQYXNzZWQKKz0+IFBhc3NlZAorPT4gRmFpbGVkCis9PiBGYWlsZWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL3BvIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYXV0b21hdGEvcG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFmY2FlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2F1dG9tYXRhL3BvCkBAIC0wLDAgKzEsMiBAQAorPT4gUGFzc2VkCis9PiBQYXNzZWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2JhZGNvbW1lbnQueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmFkY29tbWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIxM2MxMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JhZGNvbW1lbnQueG1sCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Zm9vPgorPCEtLSBkZWY9J05ULUNoYXInLS0+PCEtLT5DaGFyPC9udD4qICddXSZndDsnIDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiopKQorJ11dJmd0Oyc8L3Jocz4KKzxjb20+Q0RBVEEgc2VjdGlvbnM8L2NvbT4KKzxyaHM+fCAnJmx0OyFET0NUWVBFJyAKKyg8bnQgZGVmPSJOVC1DaGFyIj5DaGFyPC9udD4gLSAoJ1snIHwgJ10nKSkrCisoJ1snIAorPG50IGRlZj0iTlQtc2ltcGxlRFREIj5zaW1wbGVEVEQ8L250PioKKyddJyk/ICcmZ3Q7JzwvcmhzPgorPGNvbT5kb2MgdHlwZSBkZWNsYXJhdGlvbjwvY29tPgorPHByb2QgaWQ9Ik5ULXNpbXBsZURURCI+PGxocz5zaW1wbGVEVEQ8L2xocz4KKzxyaHM+JyZsdDshJmNvbW87JyAKKyg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qIC0gCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAnJmNvbWM7JyA8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKSkKKycmY29tYzsmZ3Q7JzwvcmhzPi0tPgorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjlhM2NkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JhZGNvbW1lbnQueG1sLnJkZQpAQCAtMCwwICsxLDIxIEBACiswIDEgZm9vIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgOCAjY29tbWVudCAwIDEgIGRlZj0nTlQtQ2hhcicKKzEgOCAjY29tbWVudCAwIDEgPkNoYXI8L250PiogJ11dJmd0OycgPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KikpCisnXV0mZ3Q7JzwvcmhzPgorPGNvbT5DREFUQSBzZWN0aW9uczwvY29tPgorPHJocz58ICcmbHQ7IURPQ1RZUEUnIAorKDxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiAtICgnWycgfCAnXScpKSsKKygnWycgCis8bnQgZGVmPSJOVC1zaW1wbGVEVEQiPnNpbXBsZURURDwvbnQ+KgorJ10nKT8gJyZndDsnPC9yaHM+Cis8Y29tPmRvYyB0eXBlIGRlY2xhcmF0aW9uPC9jb20+Cis8cHJvZCBpZD0iTlQtc2ltcGxlRFREIj48bGhzPnNpbXBsZURURDwvbGhzPgorPHJocz4nJmx0OyEmY29tbzsnIAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogLSAKKyg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qICcmY29tYzsnIDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiopKQorJyZjb21jOyZndDsnPC9yaHM+CisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBmb28gMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjlhM2NkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JhZGNvbW1lbnQueG1sLnJkcgpAQCAtMCwwICsxLDIxIEBACiswIDEgZm9vIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgOCAjY29tbWVudCAwIDEgIGRlZj0nTlQtQ2hhcicKKzEgOCAjY29tbWVudCAwIDEgPkNoYXI8L250PiogJ11dJmd0OycgPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KikpCisnXV0mZ3Q7JzwvcmhzPgorPGNvbT5DREFUQSBzZWN0aW9uczwvY29tPgorPHJocz58ICcmbHQ7IURPQ1RZUEUnIAorKDxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiAtICgnWycgfCAnXScpKSsKKygnWycgCis8bnQgZGVmPSJOVC1zaW1wbGVEVEQiPnNpbXBsZURURDwvbnQ+KgorJ10nKT8gJyZndDsnPC9yaHM+Cis8Y29tPmRvYyB0eXBlIGRlY2xhcmF0aW9uPC9jb20+Cis8cHJvZCBpZD0iTlQtc2ltcGxlRFREIj48bGhzPnNpbXBsZURURDwvbGhzPgorPHJocz4nJmx0OyEmY29tbzsnIAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogLSAKKyg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qICcmY29tYzsnIDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiopKQorJyZjb21jOyZndDsnPC9yaHM+CisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBmb28gMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQwOTM2OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JhZGNvbW1lbnQueG1sLnNheApAQCAtMCwwICsxLDI0IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoZm9vKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguY29tbWVudCggZGVmPSdOVC1DaGFyJykKK1NBWC5jb21tZW50KD5DaGFyPC9udD4qICddXSZndDsnIDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiopKQorJ11dJmd0Oyc8L3Jocz4KKzxjb20+Q0RBVEEgc2VjdGlvbnM8L2NvbT4KKzxyaHM+fCAnJmx0OyFET0NUWVBFJyAKKyg8bnQgZGVmPSJOVC1DaGFyIj5DaGFyPC9udD4gLSAoJ1snIHwgJ10nKSkrCisoJ1snIAorPG50IGRlZj0iTlQtc2ltcGxlRFREIj5zaW1wbGVEVEQ8L250PioKKyddJyk/ICcmZ3Q7JzwvcmhzPgorPGNvbT5kb2MgdHlwZSBkZWNsYXJhdGlvbjwvY29tPgorPHByb2QgaWQ9Ik5ULXNpbXBsZURURCI+PGxocz5zaW1wbGVEVEQ8L2xocz4KKzxyaHM+JyZsdDshJmNvbW87JyAKKyg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qIC0gCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAnJmNvbWM7JyA8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKSkKKycmY29tYzsmZ3Q7JzwvcmhzPikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZm9vKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2JhZGNvbW1lbnQueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZTU2MjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iYWRjb21tZW50LnhtbC5zYXgyCkBAIC0wLDAgKzEsMjQgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGZvbywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIGRlZj0nTlQtQ2hhcicpCitTQVguY29tbWVudCg+Q2hhcjwvbnQ+KiAnXV0mZ3Q7JyA8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKSkKKyddXSZndDsnPC9yaHM+Cis8Y29tPkNEQVRBIHNlY3Rpb25zPC9jb20+Cis8cmhzPnwgJyZsdDshRE9DVFlQRScgCisoPG50IGRlZj0iTlQtQ2hhciI+Q2hhcjwvbnQ+IC0gKCdbJyB8ICddJykpKworKCdbJyAKKzxudCBkZWY9Ik5ULXNpbXBsZURURCI+c2ltcGxlRFREPC9udD4qCisnXScpPyAnJmd0Oyc8L3Jocz4KKzxjb20+ZG9jIHR5cGUgZGVjbGFyYXRpb248L2NvbT4KKzxwcm9kIGlkPSJOVC1zaW1wbGVEVEQiPjxsaHM+c2ltcGxlRFREPC9saHM+Cis8cmhzPicmbHQ7ISZjb21vOycgCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAtIAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogJyZjb21jOycgPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KikpCisnJmNvbWM7Jmd0Oyc8L3Jocz4pCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZm9vLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ2VudG5hbWUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnZW50bmFtZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI3MTgzZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ2VudG5hbWUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIHZlcnlfYmlnX2VudGl0eV9uYW1lMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ZlcnlfYmlnX2VudF9uYW1lICciWWVzIic+Cis8IUVOVElUWSBXaGF0SGVTYWlkICJIZSBzYWlkICZ2ZXJ5X2JpZ19lbnRpdHlfbmFtZTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl92ZXJ5X2JpZ19lbnRfbmFtZTsiPgorXT4KKzxkb2M+JldoYXRIZVNhaWQ7PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWdlbnRuYW1lLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWdlbnRuYW1lLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJkNGNjMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ2VudG5hbWUueG1sLnJkZQpAQCAtMCwwICsxLDQgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMyAjdGV4dCAwIDEgSGUgc2FpZCAiWWVzIgorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWdlbnRuYW1lLnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWdlbnRuYW1lLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM5NGE0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ2VudG5hbWUueG1sLnJkcgpAQCAtMCwwICsxLDQgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgNSBXaGF0SGVTYWlkIDAgMAorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWdlbnRuYW1lLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWdlbnRuYW1lLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVlMTlhYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ2VudG5hbWUueG1sLnNheApAQCAtMCwwICsxLDE3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVudGl0eURlY2wodmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWUsIDEsIChudWxsKSwgKG51bGwpLCAiWWVzIikKK1NBWC5nZXRFbnRpdHkodmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWUpCitTQVguZW50aXR5RGVjbChXaGF0SGVTYWlkLCAxLCAobnVsbCksIChudWxsKSwgSGUgc2FpZCAmdmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWU7KQorU0FYLmdldEVudGl0eShXaGF0SGVTYWlkKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5nZXRFbnRpdHkoV2hhdEhlU2FpZCkKK1NBWC5jaGFyYWN0ZXJzKEhlIHNhaWQgLCA4KQorU0FYLmdldEVudGl0eSh2ZXJ5X2JpZ19lbnRpdHlfbmFtZTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl92ZXJ5X2JpZ19lbnRfbmFtZSkKK1NBWC5jaGFyYWN0ZXJzKCJZZXMiLCA1KQorU0FYLnJlZmVyZW5jZSh2ZXJ5X2JpZ19lbnRpdHlfbmFtZTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl92ZXJ5X2JpZ19lbnRfbmFtZSkKK1NBWC5yZWZlcmVuY2UoV2hhdEhlU2FpZCkKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWdlbnRuYW1lLnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnZW50bmFtZS54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmY3MmMwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnZW50bmFtZS54bWwuc2F4MgpAQCAtMCwwICsxLDE3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVudGl0eURlY2wodmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWUsIDEsIChudWxsKSwgKG51bGwpLCAiWWVzIikKK1NBWC5nZXRFbnRpdHkodmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWUpCitTQVguZW50aXR5RGVjbChXaGF0SGVTYWlkLCAxLCAobnVsbCksIChudWxsKSwgSGUgc2FpZCAmdmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWU7KQorU0FYLmdldEVudGl0eShXaGF0SGVTYWlkKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmdldEVudGl0eShXaGF0SGVTYWlkKQorU0FYLmNoYXJhY3RlcnMoSGUgc2FpZCAsIDgpCitTQVguZ2V0RW50aXR5KHZlcnlfYmlnX2VudGl0eV9uYW1lMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ZlcnlfYmlnX2VudF9uYW1lKQorU0FYLmNoYXJhY3RlcnMoIlllcyIsIDUpCitTQVgucmVmZXJlbmNlKHZlcnlfYmlnX2VudGl0eV9uYW1lMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ZlcnlfYmlnX2VudF9uYW1lKQorU0FYLnJlZmVyZW5jZShXaGF0SGVTYWlkKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODVmZDdjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZS54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx0aGlzX2lzX2FfdmVyeV9sYXJnZV9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl90aGVfdmVyeV9sYXJnZV9uYW1lLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ25hbWUueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ25hbWUueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTI4NGMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZS54bWwucmRlCkBAIC0wLDAgKzEgQEAKKzAgMSB0aGlzX2lzX2FfdmVyeV9sYXJnZV9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl90aGVfdmVyeV9sYXJnZV9uYW1lIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZS54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZS54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMjg0YzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lLnhtbC5yZHIKQEAgLTAsMCArMSBAQAorMCAxIHRoaXNfaXNfYV92ZXJ5X2xhcmdlX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE5NDViZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ25hbWUueG1sLnNheApAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudCh0aGlzX2lzX2FfdmVyeV9sYXJnZV9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl90aGVfdmVyeV9sYXJnZV9uYW1lKQorU0FYLmVuZEVsZW1lbnQodGhpc19pc19hX3ZlcnlfbGFyZ2VfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdGhlX3ZlcnlfbGFyZ2VfbmFtZSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lLnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZS54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjkzOWY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZS54bWwuc2F4MgpAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHRoaXNfaXNfYV92ZXJ5X2xhcmdlX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKHRoaXNfaXNfYV92ZXJ5X2xhcmdlX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZTIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0OGMzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lMi54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx0aGlzX2lzX2FfdmVyeV9sYXJnZV9xdWFsaWZpZWRfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfcHJlZml4OnN0YXJ0X25jX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUgeG1sbnM6dGhpc19pc19hX3ZlcnlfbGFyZ2VfcXVhbGlmaWVkX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ByZWZpeD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS90ZXN0bnMvIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lMi54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZTIueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGU5ZGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZTIueG1sLnJkZQpAQCAtMCwwICsxIEBACiswIDEgdGhpc19pc19hX3ZlcnlfbGFyZ2VfcXVhbGlmaWVkX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ByZWZpeDpzdGFydF9uY19uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl90aGVfdmVyeV9sYXJnZV9uYW1lIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYmlnbmFtZTIueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ25hbWUyLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRlOWRkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ25hbWUyLnhtbC5yZHIKQEAgLTAsMCArMSBAQAorMCAxIHRoaXNfaXNfYV92ZXJ5X2xhcmdlX3F1YWxpZmllZF9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl9wcmVmaXg6c3RhcnRfbmNfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdGhlX3ZlcnlfbGFyZ2VfbmFtZSAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ25hbWUyLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lMi54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMzUzZTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lMi54bWwuc2F4CkBAIC0wLDAgKzEsNSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KHRoaXNfaXNfYV92ZXJ5X2xhcmdlX3F1YWxpZmllZF9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl9wcmVmaXg6c3RhcnRfbmNfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdGhlX3ZlcnlfbGFyZ2VfbmFtZSwgeG1sbnM6dGhpc19pc19hX3ZlcnlfbGFyZ2VfcXVhbGlmaWVkX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ByZWZpeD0naHR0cDovL3d3dy5leGFtcGxlLmNvbS90ZXN0bnMvJykKK1NBWC5lbmRFbGVtZW50KHRoaXNfaXNfYV92ZXJ5X2xhcmdlX3F1YWxpZmllZF9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl9wcmVmaXg6c3RhcnRfbmNfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdGhlX3ZlcnlfbGFyZ2VfbmFtZSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lMi54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2JpZ25hbWUyLnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNDA2ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9iaWduYW1lMi54bWwuc2F4MgpAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0YXJ0X25jX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUsIHRoaXNfaXNfYV92ZXJ5X2xhcmdlX3F1YWxpZmllZF9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl9wcmVmaXgsICdodHRwOi8vd3d3LmV4YW1wbGUuY29tL3Rlc3Rucy8nLCAxLCB4bWxuczp0aGlzX2lzX2FfdmVyeV9sYXJnZV9xdWFsaWZpZWRfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfcHJlZml4PSdodHRwOi8vd3d3LmV4YW1wbGUuY29tL3Rlc3Rucy8nLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhzdGFydF9uY19uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl90aGVfdmVyeV9sYXJnZV9uYW1lLCB0aGlzX2lzX2FfdmVyeV9sYXJnZV9xdWFsaWZpZWRfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfcHJlZml4LCAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS90ZXN0bnMvJykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0xCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmOWE5NzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iZG9jLnhzbCIKKyAgIHR5cGU9InRleHQveHNsIiAgID8+Cis8ZG9jPkhlbGxvLCB3b3JsZCE8L2RvYz4KKzw/cGktd2l0aG91dC1kYXRhPz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0yCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhZmExNWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMgpAQCAtMCwwICsxLDExIEBACis8ZG9jPgorICAgPGNsZWFuPiAgIDwvY2xlYW4+CisgICA8ZGlydHk+ICAgQSAgIEIgICA8L2RpcnR5PgorICAgPG1peGVkPgorICAgICAgQQorICAgICAgPGNsZWFuPiAgIDwvY2xlYW4+CisgICAgICBCCisgICAgICA8ZGlydHk+ICAgQSAgIEIgICA8L2RpcnR5PgorICAgICAgQworICAgPC9taXhlZD4KKzwvZG9jPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGMyODdlNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0zCkBAIC0wLDAgKzEsMTQgQEAKKzxkb2M+CisgICA8ZTE+PC9lMT4KKyAgIDxlMj48L2UyPgorICAgPGUzIGlkPSJlbGVtMyIgbmFtZT0iZWxlbTMiPjwvZTM+CisgICA8ZTQgaWQ9ImVsZW00IiBuYW1lPSJlbGVtNCI+PC9lND4KKyAgIDxlNSB4bWxucz0iaHR0cDovL3d3dy51dmljLmNhIiB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sbnM6Yj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgYXR0cj0iSSdtIiBhdHRyMj0iYWxsIiBiOmF0dHI9InNvcnRlZCIgYTphdHRyPSJvdXQiPjwvZTU+CisgICA8ZTYgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciPgorICAgICAgIDxlNyB4bWxucz0iaHR0cDovL3d3dy5pZXRmLm9yZyI+CisgICAgICAgICAgIDxlOCB4bWxucz0iIj4KKyAgICAgICAgICAgICAgIDxlOSB4bWxuczphPSJodHRwOi8vd3d3LmlldGYub3JnIiBhdHRyPSJkZWZhdWx0Ij48L2U5PgorICAgICAgICAgICA8L2U4PgorICAgICAgIDwvZTc+CisgICA8L2U2PgorPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOWEyNTU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQKQEAgLTAsMCArMSw5IEBACis8ZG9jPgorICAgPHRleHQ+Rmlyc3QgbGluZSYjeEQ7CitTZWNvbmQgbGluZTwvdGV4dD4KKyAgIDx2YWx1ZT4yPC92YWx1ZT4KKyAgIDxjb21wdXRlPnZhbHVlJmd0OyIwIiAmYW1wOyZhbXA7IHZhbHVlJmx0OyIxMCIgPyJ2YWxpZCI6ImVycm9yIjwvY29tcHV0ZT4KKyAgIDxjb21wdXRlIGV4cHI9InZhbHVlPiZxdW90OzAmcXVvdDsgJmFtcDsmYW1wOyB2YWx1ZSZsdDsmcXVvdDsxMCZxdW90OyA/JnF1b3Q7dmFsaWQmcXVvdDs6JnF1b3Q7ZXJyb3ImcXVvdDsiPnZhbGlkPC9jb21wdXRlPgorICAgPG5vcm0gYXR0cj0iICcgICAgJiN4RDsmI3hBOyYjeDk7ICAgJyAiPjwvbm9ybT4KKyAgIDxub3JtSWQgaWQ9IicgJiN4RDsmI3hBOyYjeDk7ICciPjwvbm9ybUlkPgorPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjMyZTc0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTUKQEAgLTAsMCArMSwzIEBACis8ZG9jIGF0dHJFeHRFbnQ9ImVudEV4dCI+CisgICBIZWxsbywgd29ybGQhCis8L2RvYz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS02Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBiZTM4ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNgpAQCAtMCwwICsxIEBACis8ZG9jPsKpPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYTk2Y2M0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcKQEAgLTAsMCArMSBAQAorPGUxIHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIj48ZTMgeG1sbnM9IiIgaWQ9IkUzIiB4bWw6c3BhY2U9InByZXNlcnZlIj48L2UzPjwvZTE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtOApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjgzMGU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTgKQEAgLTAsMCArMSBAQAorPGUxIHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6YmFzZT0ic29tZXRoaW5nL2Vsc2UiPjxlMyB4bWxucz0iIiBpZD0iRTMiIHhtbDpiYXNlPSJiYXIvZm9vIiB4bWw6c3BhY2U9InByZXNlcnZlIj48L2UzPjwvZTE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMtMTAyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMtMTAyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMWQ2MGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYy0xMDIKQEAgLTAsMCArMSBAQAorPGUxIHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6YmFzZT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zb21ldGhpbmcvZWxzZSI+PGUzIHhtbG5zPSIiIGlkPSJFMyIgeG1sOmJhc2U9Ii4uL2Jhci9mb28iIHhtbDpzcGFjZT0icHJlc2VydmUiPjwvZTM+PC9lMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzItMTAyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMyLTEwMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjgzMGU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMyLTEwMgpAQCAtMCwwICsxIEBACis8ZTEgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJzb21ldGhpbmcvZWxzZSI+PGUzIHhtbG5zPSIiIGlkPSJFMyIgeG1sOmJhc2U9ImJhci9mb28iIHhtbDpzcGFjZT0icHJlc2VydmUiPjwvZTM+PC9lMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzMtMTAyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMzLTEwMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2VmODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMzLTEwMgpAQCAtMCwwICsxLDIgQEAKKzxhIHhtbDpiYXNlPSJmb28vYmFyIj48ZCB4bWw6YmFzZT0iLi4vLi4veCI+CisgICAgIDwvZD48L2E+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGEzYTJiNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTEKQEAgLTAsMCArMSwxNCBAQAorPGlldGY6YzE0bjExWG1sQmFzZURvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sOmJhc2U9Imh0dHA6Ly94bWxiYXNlLmV4YW1wbGUub3JnL3htbGJhc2UwLyI+CisgICAgPGlldGY6ZTEgeG1sOmJhc2U9Ii94bWxiYXNlMS8iPgorICAgICAgPGlldGY6ZTExIHhtbDpiYXNlPSIveG1sYmFzZTExLyI+CisgICAgICAgIDxpZXRmOmUxMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTExLyI+PC9pZXRmOmUxMTE+CisgICAgICA8L2lldGY6ZTExPgorICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgPGlldGY6ZTEyMSB4bWw6YmFzZT0iL3htbGJhc2UxMjEvIj48L2lldGY6ZTEyMT4KKyAgICAgIDwvaWV0ZjplMTI+CisgICAgPC9pZXRmOmUxPgorICAgIAorICAgIDxpZXRmOmUzPgorICAgICAgPGlldGY6ZTMxIGF0PSIzIj48L2lldGY6ZTMxPgorICAgIDwvaWV0ZjplMz4KKzwvaWV0ZjpjMTRuMTFYbWxCYXNlRG9jMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWZhODExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMgpAQCAtMCwwICsxLDggQEAKKzxpZXRmOmUxIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJodHRwOi8veG1sYmFzZS5leGFtcGxlLm9yZy94bWxiYXNlMS8iPgorICAgICAgPGlldGY6ZTExIHhtbDpiYXNlPSIveG1sYmFzZTExLyI+CisgICAgICAgIDxpZXRmOmUxMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTExLyI+PC9pZXRmOmUxMTE+CisgICAgICA8L2lldGY6ZTExPgorICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgPGlldGY6ZTEyMSB4bWw6YmFzZT0iL3htbGJhc2UxMjEvIj48L2lldGY6ZTEyMT4KKyAgICAgIDwvaWV0ZjplMTI+CisgICAgPC9pZXRmOmUxPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NTdkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0zCkBAIC0wLDAgKzEsMyBAQAorPGlldGY6ZTExIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJodHRwOi8veG1sYmFzZS5leGFtcGxlLm9yZy94bWxiYXNlMTEvIj4KKyAgICAgICAgPGlldGY6ZTExMSB4bWw6YmFzZT0iL3htbGJhc2UxMTEvIj48L2lldGY6ZTExMT4KKyAgICAgIDwvaWV0ZjplMTE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ0NTgzOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTQKQEAgLTAsMCArMSBAQAorPGlldGY6ZTExMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6YmFzZT0iaHR0cDovL3htbGJhc2UuZXhhbXBsZS5vcmcveG1sYmFzZTExMS8iPjwvaWV0ZjplMTExPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC01Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ZTUxZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC01CkBAIC0wLDAgKzEgQEAKKzxpZXRmOmUyMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6YmFzZT0iaHR0cDovL3htbGJhc2UuZXhhbXBsZS5vcmcveG1sYmFzZTIxLyI+PC9pZXRmOmUyMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC02IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2I2MWUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNgpAQCAtMCwwICsxLDMgQEAKKzxpZXRmOmUzIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJodHRwOi8veG1sYmFzZS5leGFtcGxlLm9yZy94bWxiYXNlMC8iPgorICAgICAgPGlldGY6ZTMxIGF0PSIzIj48L2lldGY6ZTMxPgorICAgIDwvaWV0ZjplMz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC03IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGEzMTY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNwpAQCAtMCwwICsxLDcgQEAKKzxpZXRmOmMxNG4xMVhtbEJhc2VEb2MxIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJodHRwOi8veG1sYmFzZS5leGFtcGxlLm9yZy94bWxiYXNlMC8iPgorICAgIAorICAgIAorICAgIDxpZXRmOmUzPgorICAgICAgPGlldGY6ZTMxIGF0PSIzIj48L2lldGY6ZTMxPgorICAgIDwvaWV0ZjplMz4KKzwvaWV0ZjpjMTRuMTFYbWxCYXNlRG9jMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGlkLXByb3AtMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1saWQtcHJvcC0xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNzZjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGlkLXByb3AtMQpAQCAtMCwwICsxLDggQEAKKzxpZXRmOmUxIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDppZD0iSWRJbnRlcm9wIj4KKyAgICAgICAgPGlldGY6ZTExPgorICAgICAgICAgICA8aWV0ZjplMTExPjwvaWV0ZjplMTExPgorICAgICAgICA8L2lldGY6ZTExPgorICAgICAgICA8aWV0ZjplMTIgYXQ9IjIiPgorICAgICAgICAgICA8aWV0ZjplMTIxPjwvaWV0ZjplMTIxPgorICAgICAgICA8L2lldGY6ZTEyPgorICAgICA8L2lldGY6ZTE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxpZC1wcm9wLTIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGlkLXByb3AtMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGNjYjhkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxpZC1wcm9wLTIKQEAgLTAsMCArMSw1IEBACis8aWV0ZjplMTEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgICAgICAgIDxpZXRmOmUxMTE+PC9pZXRmOmUxMTE+CisgICAgICAgIDwvaWV0ZjplMTE+PGlldGY6ZTEyIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIGF0PSIyIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMT48L2lldGY6ZTEyMT4KKyAgICAgICAgPC9pZXRmOmUxMj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTgxYTlkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMQpAQCAtMCwwICsxLDggQEAKKzxpZXRmOmUxIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpsYW5nPSJFTiI+CisgICAgICAgIDxpZXRmOmUxMT4KKyAgICAgICAgICAgPGlldGY6ZTExMT48L2lldGY6ZTExMT4KKyAgICAgICAgPC9pZXRmOmUxMT4KKyAgICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMT48L2lldGY6ZTEyMT4KKyAgICAgICAgPC9pZXRmOmUxMj4KKyAgICAgPC9pZXRmOmUxPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhZGQ1ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0yCkBAIC0wLDAgKzEsMyBAQAorPGlldGY6ZTIgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgICAgIDxpZXRmOmUyMT48L2lldGY6ZTIxPgorICAgICA8L2lldGY6ZTI+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMyN2ViZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTMKQEAgLTAsMCArMSwzIEBACis8aWV0ZjplMTEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sOmxhbmc9IkVOIj4KKyAgICAgICAgICAgPGlldGY6ZTExMT48L2lldGY6ZTExMT4KKyAgICAgICAgPC9pZXRmOmUxMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC00IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzE5MmM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtNApAQCAtMCwwICsxLDUgQEAKKzxpZXRmOmUxMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6bGFuZz0iRU4iPgorICAgICAgICAgICA8aWV0ZjplMTExPjwvaWV0ZjplMTExPgorICAgICAgICA8L2lldGY6ZTExPjxpZXRmOmUxMiB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiBhdD0iMiIgeG1sOmxhbmc9IkVOIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMT48L2lldGY6ZTEyMT4KKyAgICAgICAgPC9pZXRmOmUxMj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC0xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMTNhY2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMQpAQCAtMCwwICsxLDggQEAKKzxpZXRmOmUxIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpzcGFjZT0idHJ1ZSI+CisgICAgICAgIDxpZXRmOmUxMT4KKyAgICAgICAgICAgPGlldGY6ZTExMT48L2lldGY6ZTExMT4KKyAgICAgICAgPC9pZXRmOmUxMT4KKyAgICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMT48L2lldGY6ZTEyMT4KKyAgICAgICAgPC9pZXRmOmUxMj4KKyAgICAgPC9pZXRmOmUxPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC0yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFkZDVmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC0yCkBAIC0wLDAgKzEsMyBAQAorPGlldGY6ZTIgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgICAgIDxpZXRmOmUyMT48L2lldGY6ZTIxPgorICAgICA8L2lldGY6ZTI+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGExYTU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTMKQEAgLTAsMCArMSwzIEBACis8aWV0ZjplMTEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sOnNwYWNlPSJ0cnVlIj4KKyAgICAgICAgICAgPGlldGY6ZTExMT48L2lldGY6ZTExMT4KKyAgICAgICAgPC9pZXRmOmUxMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjYmRkZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtNApAQCAtMCwwICsxLDUgQEAKKzxpZXRmOmUxMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6c3BhY2U9InRydWUiPgorICAgICAgICAgICA8aWV0ZjplMTExPjwvaWV0ZjplMTExPgorICAgICAgICA8L2lldGY6ZTExPjxpZXRmOmUxMiB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiBhdD0iMiIgeG1sOnNwYWNlPSJ0cnVlIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMT48L2lldGY6ZTEyMT4KKyAgICAgICAgPC9pZXRmOmUxMj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OWZkNmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOQpAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciI+CisgICAgIDxmb286U29tZXRoaW5nIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyI+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiPjwvYmF6OlNvbWV0aGluZz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEwIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc5ZmQ2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEwCkBAIC0wLDAgKzEsOSBAQAorPGJhcjpTb21ldGhpbmcgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIj4KKyAgICAgPGZvbzpTb21ldGhpbmcgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIj4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiI+PC9iYXo6U29tZXRoaW5nPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzlmZDZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTEKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZyB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiPgorICAgICA8Zm9vOlNvbWV0aGluZyB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6Ij48L2JhejpTb21ldGhpbmc+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNTMzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMgpAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciI+CisgICAgIAorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgCisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6Ij48L2JhejpTb21ldGhpbmc+CisgICAgICAgICAgIAorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIAorICA8L2JhcjpTb21ldGhpbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2ZiNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTMKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZz48L2JhejpTb21ldGhpbmc+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ZmI2ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNApAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nPjwvYmF6OlNvbWV0aGluZz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE1IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE1CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2ZiNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTcKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZz48L2JhejpTb21ldGhpbmc+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NzUzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOApAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiPgorICAgICA8Zm9vOlNvbWV0aGluZyB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6Ij48L2JhejpTb21ldGhpbmc+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OWZkNmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOQpAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciI+CisgICAgIDxmb286U29tZXRoaW5nIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyI+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiPjwvYmF6OlNvbWV0aGluZz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIwIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc5ZmQ2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIwCkBAIC0wLDAgKzEsOSBAQAorPGJhcjpTb21ldGhpbmcgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIj4KKyAgICAgPGZvbzpTb21ldGhpbmcgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIj4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiI+PC9iYXo6U29tZXRoaW5nPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDUzMzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjEKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZyB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiPgorICAgICAKKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIAorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiI+PC9iYXo6U29tZXRoaW5nPgorICAgICAgICAgICAKKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICAKKyAgPC9iYXI6U29tZXRoaW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdmYjZlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIyCkBAIC0wLDAgKzEsOSBAQAorPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmc+PC9iYXo6U29tZXRoaW5nPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2ZiNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjMKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZz48L2JhejpTb21ldGhpbmc+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2MmM3NDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNApAQCAtMCwwICsxIEBACisgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI1IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI1CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmN2ViNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNgpAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyI+CisgICAgICAgIDxiYXI6U29tZXRoaW5nIHhtbG5zPSIiPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyI+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgeG1sbnM9IiI+PC9iYXo6U29tZXRoaW5nPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODA2ZWEwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTAKQEAgLTAsMCArMSw3IEBACis8ZTYgdGVzdD0iLi4vYmF6Ij4KKyAgICAgICA8ZTcgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciPgorICAgICAgICAgICA8ZTggeG1sbnM9IiIgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciIGE6Zm9vPSJiYXIiPgorICAgICAgICAgICAgICAgPGU5IGF0dHI9ImRlZmF1bHQiPjwvZTk+CisgICAgICAgICAgIDwvZTg+CisgICAgICAgPC9lNz4KKyAgIDwvZTY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDU5MzBmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTEKQEAgLTAsMCArMSw3IEBACis8ZTYgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciIHRlc3Q9Ii4uL2JheiI+CisgICAgICAgPGU3IHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIj4KKyAgICAgICAgICAgPGU4IHhtbG5zPSIiIGE6Zm9vPSJiYXIiPgorICAgICAgICAgICAgICAgPGU5IHhtbG5zOmE9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIGF0dHI9ImRlZmF1bHQiPjwvZTk+CisgICAgICAgICAgIDwvZTg+CisgICAgICAgPC9lNz4KKyAgIDwvZTY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjhhMGNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTIKQEAgLTAsMCArMSwxMSBAQAorPFNpZ25lZEluZm8geG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPgorICAgIDxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9kczpDYW5vbmljYWxpemF0aW9uTWV0aG9kPgorICAgIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiPjwvU2lnbmF0dXJlTWV0aG9kPgorICAgIDxSZWZlcmVuY2UgVVJJPSIjbmRpZDoxMjM0LTU2NzgtMDk4NyI+CisgICAgICA8VHJhbnNmb3Jtcz4KKyAgICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyI+PC9UcmFuc2Zvcm0+CisgICAgICA8L1RyYW5zZm9ybXM+CisgICAgICA8RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiPjwvRGlnZXN0TWV0aG9kPgorICAgICAgPERpZ2VzdFZhbHVlPnNqMVZYREIyVk1DVTVxbXZhMk90RHcza0tPcz08L0RpZ2VzdFZhbHVlPgorICAgIDwvUmVmZXJlbmNlPgorICA8L1NpZ25lZEluZm8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk4ZDE2OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTEKQEAgLTAsMCArMSw2IEBACis8P3htbC1zdHlsZXNoZWV0IGhyZWY9ImRvYy54c2wiCisgICB0eXBlPSJ0ZXh0L3hzbCIgICA/PgorPGRvYz5IZWxsbywgd29ybGQhPCEtLSBDb21tZW50IDEgLS0+PC9kb2M+Cis8P3BpLXdpdGhvdXQtZGF0YT8+Cis8IS0tIENvbW1lbnQgMiAtLT4KKzwhLS0gQ29tbWVudCAzIC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS0yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZmExNWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS0yCkBAIC0wLDAgKzEsMTEgQEAKKzxkb2M+CisgICA8Y2xlYW4+ICAgPC9jbGVhbj4KKyAgIDxkaXJ0eT4gICBBICAgQiAgIDwvZGlydHk+CisgICA8bWl4ZWQ+CisgICAgICBBCisgICAgICA8Y2xlYW4+ICAgPC9jbGVhbj4KKyAgICAgIEIKKyAgICAgIDxkaXJ0eT4gICBBICAgQiAgIDwvZGlydHk+CisgICAgICBDCisgICA8L21peGVkPgorPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMyODdlNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTMKQEAgLTAsMCArMSwxNCBAQAorPGRvYz4KKyAgIDxlMT48L2UxPgorICAgPGUyPjwvZTI+CisgICA8ZTMgaWQ9ImVsZW0zIiBuYW1lPSJlbGVtMyI+PC9lMz4KKyAgIDxlNCBpZD0iZWxlbTQiIG5hbWU9ImVsZW00Ij48L2U0PgorICAgPGU1IHhtbG5zPSJodHRwOi8vd3d3LnV2aWMuY2EiIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIiB4bWxuczpiPSJodHRwOi8vd3d3LmlldGYub3JnIiBhdHRyPSJJJ20iIGF0dHIyPSJhbGwiIGI6YXR0cj0ic29ydGVkIiBhOmF0dHI9Im91dCI+PC9lNT4KKyAgIDxlNiB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgICAgPGU3IHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIj4KKyAgICAgICAgICAgPGU4IHhtbG5zPSIiPgorICAgICAgICAgICAgICAgPGU5IHhtbG5zOmE9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIGF0dHI9ImRlZmF1bHQiPjwvZTk+CisgICAgICAgICAgIDwvZTg+CisgICAgICAgPC9lNz4KKyAgIDwvZTY+Cis8L2RvYz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS00IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWEyNTU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNApAQCAtMCwwICsxLDkgQEAKKzxkb2M+CisgICA8dGV4dD5GaXJzdCBsaW5lJiN4RDsKK1NlY29uZCBsaW5lPC90ZXh0PgorICAgPHZhbHVlPjI8L3ZhbHVlPgorICAgPGNvbXB1dGU+dmFsdWUmZ3Q7IjAiICZhbXA7JmFtcDsgdmFsdWUmbHQ7IjEwIiA/InZhbGlkIjoiZXJyb3IiPC9jb21wdXRlPgorICAgPGNvbXB1dGUgZXhwcj0idmFsdWU+JnF1b3Q7MCZxdW90OyAmYW1wOyZhbXA7IHZhbHVlJmx0OyZxdW90OzEwJnF1b3Q7ID8mcXVvdDt2YWxpZCZxdW90OzomcXVvdDtlcnJvciZxdW90OyI+dmFsaWQ8L2NvbXB1dGU+CisgICA8bm9ybSBhdHRyPSIgJyAgICAmI3hEOyYjeEE7JiN4OTsgICAnICI+PC9ub3JtPgorICAgPG5vcm1JZCBpZD0iJyAmI3hEOyYjeEE7JiN4OTsgJyI+PC9ub3JtSWQ+Cis8L2RvYz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS01IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTdkNDAyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNQpAQCAtMCwwICsxLDQgQEAKKzxkb2MgYXR0ckV4dEVudD0iZW50RXh0Ij4KKyAgIEhlbGxvLCB3b3JsZCEKKzwvZG9jPgorPCEtLSBMZXQgd29ybGQudHh0IGNvbnRhaW4gIndvcmxkIiAoZXhjbHVkaW5nIHRoZSBxdW90ZXMpIC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS02Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZTM4ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS02CkBAIC0wLDAgKzEgQEAKKzxkb2M+wqk8L2RvYz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS03IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTk2Y2M0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNwpAQCAtMCwwICsxIEBACis8ZTEgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciPjxlMyB4bWxucz0iIiBpZD0iRTMiIHhtbDpzcGFjZT0icHJlc2VydmUiPjwvZTM+PC9lMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjlhOTc3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iZG9jLnhzbCIKKyAgIHR5cGU9InRleHQveHNsIiAgID8+Cis8ZG9jPkhlbGxvLCB3b3JsZCE8L2RvYz4KKzw/cGktd2l0aG91dC1kYXRhPz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWZhMTVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMgpAQCAtMCwwICsxLDExIEBACis8ZG9jPgorICAgPGNsZWFuPiAgIDwvY2xlYW4+CisgICA8ZGlydHk+ICAgQSAgIEIgICA8L2RpcnR5PgorICAgPG1peGVkPgorICAgICAgQQorICAgICAgPGNsZWFuPiAgIDwvY2xlYW4+CisgICAgICBCCisgICAgICA8ZGlydHk+ICAgQSAgIEIgICA8L2RpcnR5PgorICAgICAgQworICAgPC9taXhlZD4KKzwvZG9jPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMjg3ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0zCkBAIC0wLDAgKzEsMTQgQEAKKzxkb2M+CisgICA8ZTE+PC9lMT4KKyAgIDxlMj48L2UyPgorICAgPGUzIGlkPSJlbGVtMyIgbmFtZT0iZWxlbTMiPjwvZTM+CisgICA8ZTQgaWQ9ImVsZW00IiBuYW1lPSJlbGVtNCI+PC9lND4KKyAgIDxlNSB4bWxucz0iaHR0cDovL3d3dy51dmljLmNhIiB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sbnM6Yj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgYXR0cj0iSSdtIiBhdHRyMj0iYWxsIiBiOmF0dHI9InNvcnRlZCIgYTphdHRyPSJvdXQiPjwvZTU+CisgICA8ZTYgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciPgorICAgICAgIDxlNyB4bWxucz0iaHR0cDovL3d3dy5pZXRmLm9yZyI+CisgICAgICAgICAgIDxlOCB4bWxucz0iIj4KKyAgICAgICAgICAgICAgIDxlOSB4bWxuczphPSJodHRwOi8vd3d3LmlldGYub3JnIiBhdHRyPSJkZWZhdWx0Ij48L2U5PgorICAgICAgICAgICA8L2U4PgorICAgICAgIDwvZTc+CisgICA8L2U2PgorPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTlhMjU1OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQKQEAgLTAsMCArMSw5IEBACis8ZG9jPgorICAgPHRleHQ+Rmlyc3QgbGluZSYjeEQ7CitTZWNvbmQgbGluZTwvdGV4dD4KKyAgIDx2YWx1ZT4yPC92YWx1ZT4KKyAgIDxjb21wdXRlPnZhbHVlJmd0OyIwIiAmYW1wOyZhbXA7IHZhbHVlJmx0OyIxMCIgPyJ2YWxpZCI6ImVycm9yIjwvY29tcHV0ZT4KKyAgIDxjb21wdXRlIGV4cHI9InZhbHVlPiZxdW90OzAmcXVvdDsgJmFtcDsmYW1wOyB2YWx1ZSZsdDsmcXVvdDsxMCZxdW90OyA/JnF1b3Q7dmFsaWQmcXVvdDs6JnF1b3Q7ZXJyb3ImcXVvdDsiPnZhbGlkPC9jb21wdXRlPgorICAgPG5vcm0gYXR0cj0iICcgICAgJiN4RDsmI3hBOyYjeDk7ICAgJyAiPjwvbm9ybT4KKyAgIDxub3JtSWQgaWQ9IicgJiN4RDsmI3hBOyYjeDk7ICciPjwvbm9ybUlkPgorPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIzMmU3NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTUKQEAgLTAsMCArMSwzIEBACis8ZG9jIGF0dHJFeHRFbnQ9ImVudEV4dCI+CisgICBIZWxsbywgd29ybGQhCis8L2RvYz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS02IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmUzOGY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNgpAQCAtMCwwICsxIEBACis8ZG9jPsKpPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE5NmNjNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcKQEAgLTAsMCArMSBAQAorPGUxIHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIj48ZTMgeG1sbnM9IiIgaWQ9IkUzIiB4bWw6c3BhY2U9InByZXNlcnZlIj48L2UzPjwvZTE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNhMmIzMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDAKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZz48L2JhejpTb21ldGhpbmc+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTQyZWRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMQpAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAgPGZvbzpTb21ldGhpbmcgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIj4KKyAgICAgICAgPGJhcjpTb21ldGhpbmcgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIj4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmcgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIj4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiPjwvYmF6OlNvbWV0aGluZz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNDJlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAyCkBAIC0wLDAgKzEsOSBAQAorPGJhcjpTb21ldGhpbmcgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICA8Zm9vOlNvbWV0aGluZyB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iPgorICAgICAgICA8YmFyOlNvbWV0aGluZyB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZyB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiI+PC9iYXo6U29tZXRoaW5nPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcwMzU0YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDMKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZyB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgICB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iCisgICAgICAgIDxiYXI6U29tZXRoaW5nIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgICAgICAgICB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iCisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWw6bGFuZz0iZW4taWUiPjwvYmF6OlNvbWV0aGluZz4KKyAgICAgICAgICAgCisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgCisgIDwvYmFyOlNvbWV0aGluZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODVjYmYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNApAQCAtMCwwICsxLDkgQEAKKzxiYXI6U29tZXRoaW5nIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmc+PC9iYXo6U29tZXRoaW5nPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg1Y2JmMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDUKQEAgLTAsMCArMSw5IEBACis8YmFyOlNvbWV0aGluZyB4bWw6bGFuZz0iZW4taWUiPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nPjwvYmF6OlNvbWV0aGluZz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNDVkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA2CkBAIC0wLDAgKzEgQEAKKyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQyZmZjMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDcKQEAgLTAsMCArMSBAQAorIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNWJiYjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA4CkBAIC0wLDAgKzEsOSBAQAorPGJhcjpTb21ldGhpbmcgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAgPGZvbzpTb21ldGhpbmcgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iPgorICAgICAgICA8YmFyOlNvbWV0aGluZyB4bWxucz0iIj4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmcgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIHhtbG5zPSIiPjwvYmF6OlNvbWV0aGluZz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxM2RlMzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0wCkBAIC0wLDAgKzEgQEAKK0kgYW0gdGhlIHRleHQuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE1MGY0YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTEKQEAgLTAsMCArMSwzMSBAQAorPFg1MDlEYXRhIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KKyAgICAgICAgICA8WDUwOVN1YmplY3ROYW1lPgorICAgICAgICAgICAgQ049TWVybGluIEh1Z2hlcyxPPUJhbHRpbW9yZSBUZWNobm9sb2dpZXNcLCBMdGQuLFNUPUR1YmxpbixDPUlFCisgICAgICAgICAgPC9YNTA5U3ViamVjdE5hbWU+CisgICAgICAgICAgPFg1MDlJc3N1ZXJTZXJpYWw+CisgICAgICAgICAgICA8WDUwOUlzc3Vlck5hbWU+CisgICAgICAgICAgICAgIENOPVRlc3QgRFNBIENBLE89QmFsdGltb3JlIFRlY2hub2xvZ2llc1wsIEx0ZC4sU1Q9RHVibGluLEM9SUUKKyAgICAgICAgICAgIDwvWDUwOUlzc3Vlck5hbWU+CisgICAgICAgICAgICA8WDUwOVNlcmlhbE51bWJlcj45NzA4NDk5MzY8L1g1MDlTZXJpYWxOdW1iZXI+CisgICAgICAgICAgPC9YNTA5SXNzdWVyU2VyaWFsPgorICAgICAgICAgIDxYNTA5Q2VydGlmaWNhdGU+CisgICAgICAgICAgICBNSUlETnpDQ0F2V2dBd0lCQWdJRU9kMytrREFKQmdjcWhrak9PQVFETUZzeEN6QUpCZ05WQkFZVEFrbEZNUTh3CisgICAgICAgICAgICBEUVlEVlFRSUV3WkVkV0pzYVc0eEpUQWpCZ05WQkFvVEhFSmhiSFJwYlc5eVpTQlVaV05vYm05c2IyZHBaWE1zCisgICAgICAgICAgICBJRXgwWkM0eEZEQVNCZ05WQkFNVEMxUmxjM1FnUkZOQklFTkJNQjRYRFRBd01UQXdOakUyTXpJeE5Wb1hEVEF4CisgICAgICAgICAgICBNVEF3TmpFMk16SXhORm93WFRFTE1Ba0dBMVVFQmhNQ1NVVXhEekFOQmdOVkJBZ1RCa1IxWW14cGJqRWxNQ01HCisgICAgICAgICAgICBBMVVFQ2hNY1FtRnNkR2x0YjNKbElGUmxZMmh1YjJ4dloybGxjeXdnVEhSa0xqRVdNQlFHQTFVRUF4TU5UV1Z5CisgICAgICAgICAgICBiR2x1SUVoMVoyaGxjekNDQWJZd2dnRXJCZ2NxaGtqT09BUUJNSUlCSGdLQmdRRGFKamZEVHJhd01IZjhNaVV0CisgICAgICAgICAgICBZNTRiMzdoU21ZTm5SM0twR1QxMHVVMURxcHBjanUwNnVOMGlHYnFmOTQ3RGprQkMyNWhLbnF5a0szMXhCdzBFCisgICAgICAgICAgICBDUGJZcS9LQzk4a2doZGYyeEpDdTZCOGFxSjk1SzlqZFZmbEozV1A3UFF4Sm4rZm1NMjN6eTZIWUxYVklDcGZxCisgICAgICAgICAgICBldGROai9WSENTaFpFM2JkSmlFNlZvYlNGUUlWQVBRZWNxUzJQYVREcHJjUW5rd3g0TUhUUlhockFvR0FNdUdBCisgICAgICAgICAgICBscWVCMWF4K3Z5TzIrT3N1YmpobDdwSHhMdTQ3UklIKy9NNTJEakVTQTlLTVNyd3pzWXg4eU5SMldvb0J5ckUwCisgICAgICAgICAgICB0NmZ1MFZuY0s3VUs4b2xPNHQ3d3B2Mno0QUZRUFJWQ0tGd28wcWduNWFLSWtJQ0dNbHJSeTgxYXZiMjd3R2NXCisgICAgICAgICAgICBvdGh4M2lQUE10Rlh0b0RxSzBKSXRhSTlSOHpjMW1zRmhNMUdLTVlEZ1lRQUFvR0FjdEE4WUd4cnRuZ2cvektWCisgICAgICAgICAgICB2cUVPZWZud21WaUZ6dGNuUEJZUGxKc3ZoNnlLSTRpRG02OGZucDRNaTNScko2YlpBeWdGclVJUUx4TGpWK09KCisgICAgICAgICAgICB0Z0pBRXRvMHhBcytNZWh1cTFEa1NGRXBQM29EekNUT3NyT2lTMUR3UWU0b0liN3pWay85bDdhUHRKTUhXMExWCisgICAgICAgICAgICBsTWR3Wk5GTk5Kb3FNY1QyWmZDUHJmdll2UTJqUnpCRk1CNEdBMVVkRVFRWE1CV0JFMjFsY214cGJrQmlZV3gwCisgICAgICAgICAgICBhVzF2Y21VdWFXVXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CTUdBMVVkSXdRTU1BcUFDRUpaUUcwS3dSYlBNQWtHCisgICAgICAgICAgICBCeXFHU000NEJBTURNUUF3TGdJVkFLNHNrV0VGWWdyZ2dhSkE4dllBd1NqZzEyK0tBaFVBd0hUbzd3ZDR0RU53CisgICAgICAgICAgICA5TEFLUGtsUS83NGZIMTg9CisgICAgICAgICAgPC9YNTA5Q2VydGlmaWNhdGU+CisgICAgICAgIDwvWDUwOURhdGE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgyOTQ4MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTIKQEAgLTAsMCArMSwzIEBACis8bjE6ZWxlbTIgeG1sbnM6bjA9ImZvbzovL2JhciIgeG1sbnM6bjE9Imh0dHA6Ly9leGFtcGxlLm5ldCIgeG1sbnM6bjM9ImZ0cDovL2V4YW1wbGUub3JnIiB4bWw6bGFuZz0iZW4iPgorCTxuMzpzdHVmZj48L24zOnN0dWZmPgorICAgIDwvbjE6ZWxlbTI+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE4Y2IxOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTMKQEAgLTAsMCArMSw3IEBACis8ZTYgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciIHhtbG5zOmZvbz0iaHR0cDovL3d3dy5iYXIub3JnIiB0ZXN0PSIuLi9iYXoiIHhtbDpiYXNlPSJodHRwOi8vd3d3LmV4YW1wbGUub3JnLzIwMDIvIj4KKyAgICAgICA8ZTcgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciPgorICAgICAgICAgICA8ZTggeG1sbnM9IiIgYTpmb289ImJhciI+CisgICAgICAgICAgICAgICA8ZTkgeG1sbnM6YT0iaHR0cDovL3d3dy5pZXRmLm9yZyIgYXR0cj0iZGVmYXVsdCI+PC9lOT4KKyAgICAgICAgICAgPC9lOD4KKyAgICAgICA8L2U3PgorICAgPC9lNj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jYXRhbG9ncy9jYXRhbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL2NhdGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyYjJhZmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jYXRhbG9ncy9jYXRhbApAQCAtMCwwICsxLDUgQEAKKz4gdGVzdC9jYXRhbG9ncy9jYWxzdGJseC5kdGQKKz4gdGVzdC9jYXRhbG9ncy9kb2Nib29rLmR0ZAorPiB0ZXN0L2NhdGFsb2dzL3NvZXh0Ymx4LmR0ZAorPiB0ZXN0L2NhdGFsb2dzL2RiZ2VuZW50Lm1vZAorPiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jYXRhbG9ncy9kb2Nib29rIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2F0YWxvZ3MvZG9jYm9vawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDQwMDVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2F0YWxvZ3MvZG9jYm9vawpAQCAtMCwwICsxLDYgQEAKKz4gL3Vzci9zaGFyZS94bWwvZG9jYm9vay94bWwvNC4xLjIvZGJwb29seC5tb2QKKz4gaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYmNlbnR4Lm1vZAorPiBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorPiBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorPiBmaWxlOi8vL3Vzci9zaGFyZS94bWwvdG90by90b3RvLmR0ZAorPiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2cuZW1wdHkgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2cuZW1wdHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRmNDgyZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL215Y2F0YWxvZy5lbXB0eQpAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCI+Cis8Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nLmZ1bGwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jYXRhbG9ncy9teWNhdGFsb2cuZnVsbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWUxY2NmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2F0YWxvZ3MvbXljYXRhbG9nLmZ1bGwKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiIgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiPgorPGNhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciPgorICA8cHVibGljIHB1YmxpY0lkPSJQdWJpZCIgdXJpPSJzeXNpZCIvPgorICA8cHVibGljIHB1YmxpY0lkPSJQdWJpZDIiIHVyaT0ic3lzaWQyIi8+CisgIDxwdWJsaWMgcHVibGljSWQ9IlB1YmlkMyIgdXJpPSJzeXNpZDMiLz4KKzwvY2F0YWxvZz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL3JlZ2lzdHJ5IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2F0YWxvZ3MvcmVnaXN0cnkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAzNWM1NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL3JlZ2lzdHJ5CkBAIC0wLDAgKzEsNSBAQAorPiAvdXNyL3NoYXJlL3htbC9kb2Nib29rL3htbC80LjEuMi9kYnBvb2x4Lm1vZAorPiBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RiY2VudHgubW9kCis+IC91c3Ivc2hhcmUveG1sL2RvY2Jvb2sveG1sLzQuMS4yL2RicG9vbHgubW9kCis+IGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCis+IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL3doaXRlcyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL3doaXRlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmIyYWZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2F0YWxvZ3Mvd2hpdGVzCkBAIC0wLDAgKzEsNSBAQAorPiB0ZXN0L2NhdGFsb2dzL2NhbHN0Ymx4LmR0ZAorPiB0ZXN0L2NhdGFsb2dzL2RvY2Jvb2suZHRkCis+IHRlc3QvY2F0YWxvZ3Mvc29leHRibHguZHRkCis+IHRlc3QvY2F0YWxvZ3MvZGJnZW5lbnQubW9kCis+IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL3doaXRleCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NhdGFsb2dzL3doaXRleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDJiY2M2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2F0YWxvZ3Mvd2hpdGV4CkBAIC0wLDAgKzEsOCBAQAorPiAvdXNyL3NoYXJlL3htbC9kb2Nib29rL3htbC80LjEuMi9kYnBvb2x4Lm1vZAorPiBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RiY2VudHgubW9kCis+IGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZGJjZW50eC5tb2QKKz4gaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYmNlbnR4Lm1vZAorPiBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorPiBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAorPiBmaWxlOi8vL3Vzci9zaGFyZS94bWwvdG90by90b3RvLmR0ZAorPiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NkYXRhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4MGVhNDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKzwhW0NEQVRBWzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz5dXT4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxNmI4YmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YS5yZGUKQEAgLTAsMCArMSw3IEBACiswIDEgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgNCAjY2RhdGEtc2VjdGlvbiAwIDEgPGdyZWV0aW5nPkhlbGxvLCB3b3JsZCE8L2dyZWV0aW5nPgorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxNmI4YmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YS5yZHIKQEAgLTAsMCArMSw3IEBACiswIDEgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgNCAjY2RhdGEtc2VjdGlvbiAwIDEgPGdyZWV0aW5nPkhlbGxvLCB3b3JsZCE8L2dyZWV0aW5nPgorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5MTdmOTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YS5zYXgKQEAgLTAsMCArMSwxMCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnBjZGF0YSg8Z3JlZXRpbmc+SGVsbG8sIHdvciwgMzQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTdiMmIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEuc2F4MgpAQCAtMCwwICsxLDEwIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5wY2RhdGEoPGdyZWV0aW5nPkhlbGxvLCB3b3IsIDM0KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRkYjc5MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NkYXRhMgpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Y29sbGVjdGlvbj4KKyAgPHRlc3Q+PCFbQ0RBVEFbCisgICAgPCFbQ0RBVEFbYWJjXV1dPl0mZ3Q7PCFbQ0RBVEFbCisgIF1dPjwvdGVzdD4KKzwvY29sbGVjdGlvbj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NkYXRhMi5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWE2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIucmRlCkBAIC0wLDAgKzEsMTMgQEAKKzAgMSBjb2xsZWN0aW9uIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIHRlc3QgMCAwCisyIDQgI2NkYXRhLXNlY3Rpb24gMCAxIAorICAgIDwhW0NEQVRBW2FiY10KKzIgMyAjdGV4dCAwIDEgXT4KKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgCisgIAorMSAxNSB0ZXN0IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgY29sbGVjdGlvbiAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NkYXRhMi5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWE2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIucmRyCkBAIC0wLDAgKzEsMTMgQEAKKzAgMSBjb2xsZWN0aW9uIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIHRlc3QgMCAwCisyIDQgI2NkYXRhLXNlY3Rpb24gMCAxIAorICAgIDwhW0NEQVRBW2FiY10KKzIgMyAjdGV4dCAwIDEgXT4KKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgCisgIAorMSAxNSB0ZXN0IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgY29sbGVjdGlvbiAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NkYXRhMi5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmY2M4NjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIuc2F4CkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChjb2xsZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQodGVzdCkKK1NBWC5wY2RhdGEoCisgICAgPCFbQ0RBVEFbYWJjXSwgMTgpCitTQVguY2hhcmFjdGVycyhdLCAxKQorU0FYLmNoYXJhY3RlcnMoPiwgMSkKK1NBWC5wY2RhdGEoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHRlc3QpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGNvbGxlY3Rpb24pCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEyLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jZGF0YTIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTQyMGU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY2RhdGEyLnNheDIKQEAgLTAsMCArMSwxNyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMoY29sbGVjdGlvbiwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnModGVzdCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5wY2RhdGEoCisgICAgPCFbQ0RBVEFbYWJjXSwgMTgpCitTQVguY2hhcmFjdGVycyhdLCAxKQorU0FYLmNoYXJhY3RlcnMoPiwgMSkKK1NBWC5wY2RhdGEoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnModGVzdCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhjb2xsZWN0aW9uLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThjNWVmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jPgorPCEtLSBkb2N1bWVudCBzdGFydCAtLT4KKzxlbXB0eS8+Cis8IS0tIGRvY3VtZW50IGVuZCAtLT4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudC54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudC54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NTFjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50LnhtbC5yZGUKQEAgLTAsMCArMSwxMyBAQAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDggI2NvbW1lbnQgMCAxICBkb2N1bWVudCBzdGFydCAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgZW1wdHkgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSA4ICNjb21tZW50IDAgMSAgZG9jdW1lbnQgZW5kIAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudC54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudC54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NTFjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50LnhtbC5yZHIKQEAgLTAsMCArMSwxMyBAQAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDggI2NvbW1lbnQgMCAxICBkb2N1bWVudCBzdGFydCAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgZW1wdHkgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSA4ICNjb21tZW50IDAgMSAgZG9jdW1lbnQgZW5kIAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudC54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudC54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NjkwMzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50LnhtbC5zYXgKQEAgLTAsMCArMSwxNyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIGRvY3VtZW50IHN0YXJ0ICkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChlbXB0eSkKK1NBWC5lbmRFbGVtZW50KGVtcHR5KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguY29tbWVudCggZG9jdW1lbnQgZW5kICkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50LnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNTdmNTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50LnhtbC5zYXgyCkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIGRvY3VtZW50IHN0YXJ0ICkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKGVtcHR5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhlbXB0eSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmNvbW1lbnQoIGRvY3VtZW50IGVuZCApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTEyMmVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDIueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIGRvY3VtZW50IHN0YXJ0IC0tPgorPGRvYz4KKzxlbXB0eS8+Cis8L2RvYz4KKzwhLS0gZG9jdW1lbnQgZW5kIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDIueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEzMjc5ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbC5yZGUKQEAgLTAsMCArMSw5IEBACiswIDggI2NvbW1lbnQgMCAxICBkb2N1bWVudCBzdGFydCAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIGVtcHR5IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMAorMCA4ICNjb21tZW50IDAgMSAgZG9jdW1lbnQgZW5kIApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDIueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEzMjc5ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbC5yZHIKQEAgLTAsMCArMSw5IEBACiswIDggI2NvbW1lbnQgMCAxICBkb2N1bWVudCBzdGFydCAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIGVtcHR5IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMAorMCA4ICNjb21tZW50IDAgMSAgZG9jdW1lbnQgZW5kIApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDIueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZmZDdlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQyLnhtbC5zYXgKQEAgLTAsMCArMSwxMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggZG9jdW1lbnQgc3RhcnQgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoZW1wdHkpCitTQVguZW5kRWxlbWVudChlbXB0eSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZG9jKQorU0FYLmNvbW1lbnQoIGRvY3VtZW50IGVuZCApCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDIueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Mi54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjg2NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDIueG1sLnNheDIKQEAgLTAsMCArMSwxMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggZG9jdW1lbnQgc3RhcnQgKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKGVtcHR5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhlbXB0eSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguY29tbWVudCggZG9jdW1lbnQgZW5kICkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50My54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50My54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk1ZjY3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQzLnhtbApAQCAtMCwwICsxLDE2NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCEtLSB0ZXN0IG9mIHZlcnkgdmVyeSBsb25nIGNvbW1lbnRzIGFuZCBidWZmZXIgbGltaXRzCiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorLS0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQzLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50My54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxOWI4ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50My54bWwucmRlCkBAIC0wLDAgKzEsMTYzIEBACiswIDggI2NvbW1lbnQgMCAxICB0ZXN0IG9mIHZlcnkgdmVyeSBsb25nIGNvbW1lbnRzIGFuZCBidWZmZXIgbGltaXRzCiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorCiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDMueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQzLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE5YjhkMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQzLnhtbC5yZHIKQEAgLTAsMCArMSwxNjMgQEAKKzAgOCAjY29tbWVudCAwIDEgIHRlc3Qgb2YgdmVyeSB2ZXJ5IGxvbmcgY29tbWVudHMgYW5kIGJ1ZmZlciBsaW1pdHMKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CisKKzAgMSBkb2MgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50My54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDMueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmI4YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDMueG1sLnNheApAQCAtMCwwICsxLDE2NyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggdGVzdCBvZiB2ZXJ5IHZlcnkgbG9uZyBjb21tZW50cyBhbmQgYnVmZmVyIGxpbWl0cworMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKykKK1NBWC5zdGFydEVsZW1lbnQoZG9jKQorU0FYLmVuZEVsZW1lbnQoZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQzLnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDMueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVmMWZkNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQzLnhtbC5zYXgyCkBAIC0wLDAgKzEsMTY3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5jb21tZW50KCB0ZXN0IG9mIHZlcnkgdmVyeSBsb25nIGNvbW1lbnRzIGFuZCBidWZmZXIgbGltaXRzCiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ0LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzI4MmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDQueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCEtLSB0ZXN0IG9mIG5vbiBhc2NpaSBjb21tZW50cyBsaWtlIGzgIGV0IHRy6HMgLS0+Cis8IS0t4CBhbm90aGVyIG9uZSAtLT4KKzwhLS0gYW5vdGhlciBvbmUg4C0tPgorPGRvYy8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NC54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDQueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWUxODFiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDQueG1sLnJkZQpAQCAtMCwwICsxLDQgQEAKKzAgOCAjY29tbWVudCAwIDEgIHRlc3Qgb2Ygbm9uIGFzY2lpIGNvbW1lbnRzIGxpa2UgbMOgIGV0IHRyw6hzIAorMCA4ICNjb21tZW50IDAgMSDDoCBhbm90aGVyIG9uZSAKKzAgOCAjY29tbWVudCAwIDEgIGFub3RoZXIgb25lIMOgCiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDQueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ0LnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDllMTgxYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ0LnhtbC5yZHIKQEAgLTAsMCArMSw0IEBACiswIDggI2NvbW1lbnQgMCAxICB0ZXN0IG9mIG5vbiBhc2NpaSBjb21tZW50cyBsaWtlIGzDoCBldCB0csOocyAKKzAgOCAjY29tbWVudCAwIDEgw6AgYW5vdGhlciBvbmUgCiswIDggI2NvbW1lbnQgMCAxICBhbm90aGVyIG9uZSDDoAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ0LnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NC54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDExZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NC54bWwuc2F4CkBAIC0wLDAgKzEsOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggdGVzdCBvZiBub24gYXNjaWkgY29tbWVudHMgbGlrZSBsw6AgZXQgdHLDqHMgKQorU0FYLmNvbW1lbnQow6AgYW5vdGhlciBvbmUgKQorU0FYLmNvbW1lbnQoIGFub3RoZXIgb25lIMOgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDQueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NC54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTI2MTFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDQueG1sLnNheDIKQEAgLTAsMCArMSw4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5jb21tZW50KCB0ZXN0IG9mIG5vbiBhc2NpaSBjb21tZW50cyBsaWtlIGzDoCBldCB0csOocyApCitTQVguY29tbWVudCjDoCBhbm90aGVyIG9uZSApCitTQVguY29tbWVudCggYW5vdGhlciBvbmUgw6ApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5OGY5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NS54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IS0tIHRlc3Qgb2YgaHlwaGVuIGFuZCBsaW5lIGJyZWFrIGhhbmRsaW5nCisgICAgIHNvbWUgdGV4dCAtIGludGVycnVwdGVkIC0KKy0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KKyAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNob3VsZCBzdG9wIGhlcmVeCisKKworLS0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ1LnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NS54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlN2E4OGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NS54bWwucmRlCkBAIC0wLDAgKzEsOCBAQAorMCA4ICNjb21tZW50IDAgMSAgdGVzdCBvZiBoeXBoZW4gYW5kIGxpbmUgYnJlYWsgaGFuZGxpbmcKKyAgICAgc29tZSB0ZXh0IC0gaW50ZXJydXB0ZWQgLQorLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQorICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2hvdWxkIHN0b3AgaGVyZV4KKworCisKKzAgMSBkb2MgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NS54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDUueG1sLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTdhODhmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDUueG1sLnJkcgpAQCAtMCwwICsxLDggQEAKKzAgOCAjY29tbWVudCAwIDEgIHRlc3Qgb2YgaHlwaGVuIGFuZCBsaW5lIGJyZWFrIGhhbmRsaW5nCisgICAgIHNvbWUgdGV4dCAtIGludGVycnVwdGVkIC0KKy0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KKyAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNob3VsZCBzdG9wIGhlcmVeCisKKworCiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDUueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ1LnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ1OGU3YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ1LnhtbC5zYXgKQEAgLTAsMCArMSwxMiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggdGVzdCBvZiBoeXBoZW4gYW5kIGxpbmUgYnJlYWsgaGFuZGxpbmcKKyAgICAgc29tZSB0ZXh0IC0gaW50ZXJydXB0ZWQgLQorLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQorICAgICAgICAgICAgICAgICAgICAgIHRoaXMgc2hvdWxkIHN0b3AgaGVyZV4KKworCispCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NS54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ1LnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwOTQwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50NS54bWwuc2F4MgpAQCAtMCwwICsxLDEyIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5jb21tZW50KCB0ZXN0IG9mIGh5cGhlbiBhbmQgbGluZSBicmVhayBoYW5kbGluZworICAgICBzb21lIHRleHQgLSBpbnRlcnJ1cHRlZCAtCistIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCisgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzaG91bGQgc3RvcCBoZXJlXgorCisKKykKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U2MDc0ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ2LnhtbApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0KK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50CistLT4KKzwhRE9DVFlQRSBhIFsKKzwhRUxFTUVOVCBhIEVNUFRZPgorXT4KKzxhLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ2LnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NzdjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwucmRlCkBAIC0wLDAgKzEsMTEgQEAKKzAgOCAjY29tbWVudCAwIDEgCitsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorCiswIDEwIGEgMCAwCiswIDEgYSAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ2LnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NzdjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwucmRyCkBAIC0wLDAgKzEsMTEgQEAKKzAgOCAjY29tbWVudCAwIDEgCitsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorCiswIDEwIGEgMCAwCiswIDEgYSAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2NvbW1lbnQ2LnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZmVhMjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwuc2F4CkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmNvbW1lbnQoCitsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorKQorU0FYLmludGVybmFsU3Vic2V0KGEsICwgKQorU0FYLmVsZW1lbnREZWNsKGEsIDEsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChhLCAsICkKK1NBWC5zdGFydEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDYueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9jb21tZW50Ni54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGQ3ZGMwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvY29tbWVudDYueG1sLnNheDIKQEAgLTAsMCArMSwxNyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCgKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50CispCitTQVguaW50ZXJuYWxTdWJzZXQoYSwgLCApCitTQVguZWxlbWVudERlY2woYSwgMSwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGEsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKGEsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKGEsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JmZDRjNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDptdWx0aXN0YXR1cyB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIiB4bWxuczpSPSJodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hIj4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxSOmJpZ2JveD4KKyAgICAgICAgPFI6Qm94VHlwZT5Cb3ggdHlwZSBBPC9SOkJveFR5cGU+CisgICAgICA8L1I6YmlnYm94PgorICAgICAgPFI6YXV0aG9yPgorICAgICAgICA8UjpOYW1lPkouSi4gRGluZ2xlaGVpbWVyc2NobWlkdDwvUjpOYW1lPgorICAgICAgPC9SOmF1dGhvcj4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUC8xLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpwcm9wPgorICAgICAgPFI6RGluZ0FMaW5nLz4KKyAgICAgIDxSOlJhbmRvbS8+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDQwMyBGb3JiaWRkZW48L0Q6c3RhdHVzPgorICAgIDxEOnJlc3BvbnNlZGVzY3JpcHRpb24+IFRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBEaW5nQUxpbmcgcHJvcGVydHkuCisgICAgICA8L0Q6cmVzcG9uc2VkZXNjcmlwdGlvbj4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZWRlc2NyaXB0aW9uPiBUaGVyZSBoYXMgYmVlbiBhbiBhY2Nlc3MgdmlvbGF0aW9uIGVycm9yLgorIDwvRDpyZXNwb25zZWRlc2NyaXB0aW9uPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGQ0NGU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MS5yZGUKQEAgLTAsMCArMSw3OCBAQAorMCAxIEQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUjpiaWdib3ggMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUjpCb3hUeXBlIDAgMAorNSAzICN0ZXh0IDAgMSBCb3ggdHlwZSBBCis0IDE1IFI6Qm94VHlwZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFI6YmlnYm94IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOmF1dGhvciAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSOk5hbWUgMCAwCis1IDMgI3RleHQgMCAxIEouSi4gRGluZ2xlaGVpbWVyc2NobWlkdAorNCAxNSBSOk5hbWUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBSOmF1dGhvciAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgMjAwIE9LCisyIDE1IEQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBEOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnByb3AgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIFI6RGluZ0FMaW5nIDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOlJhbmRvbSAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgNDAzIEZvcmJpZGRlbgorMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cmVzcG9uc2VkZXNjcmlwdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgIFRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBEaW5nQUxpbmcgcHJvcGVydHkuCisgICAgICAKKzIgMTUgRDpyZXNwb25zZWRlc2NyaXB0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBEOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cmVzcG9uc2VkZXNjcmlwdGlvbiAwIDAKKzIgMyAjdGV4dCAwIDEgIFRoZXJlIGhhcyBiZWVuIGFuIGFjY2VzcyB2aW9sYXRpb24gZXJyb3IuCisgCisxIDE1IEQ6cmVzcG9uc2VkZXNjcmlwdGlvbiAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZDQ0ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxLnJkcgpAQCAtMCwwICsxLDc4IEBACiswIDEgRDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOmJpZ2JveCAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSOkJveFR5cGUgMCAwCis1IDMgI3RleHQgMCAxIEJveCB0eXBlIEEKKzQgMTUgUjpCb3hUeXBlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgUjpiaWdib3ggMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIFI6YXV0aG9yIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFI6TmFtZSAwIDAKKzUgMyAjdGV4dCAwIDEgSi5KLiBEaW5nbGVoZWltZXJzY2htaWR0Cis0IDE1IFI6TmFtZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFI6YXV0aG9yIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSAyMDAgT0sKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUjpEaW5nQUxpbmcgMSAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIFI6UmFuZG9tIDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSA0MDMgRm9yYmlkZGVuCisyIDE1IEQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpyZXNwb25zZWRlc2NyaXB0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSAgVGhlIHVzZXIgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIERpbmdBTGluZyBwcm9wZXJ0eS4KKyAgICAgIAorMiAxNSBEOnJlc3BvbnNlZGVzY3JpcHRpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZWRlc2NyaXB0aW9uIDAgMAorMiAzICN0ZXh0IDAgMSAgVGhlcmUgaGFzIGJlZW4gYW4gYWNjZXNzIHZpb2xhdGlvbiBlcnJvci4KKyAKKzEgMTUgRDpyZXNwb25zZWRlc2NyaXB0aW9uIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDptdWx0aXN0YXR1cyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWMxOTg4ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEuc2F4CkBAIC0wLDAgKzEsODEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChEOm11bHRpc3RhdHVzLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgeG1sbnM6Uj0naHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoUjpiaWdib3gpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSOkJveFR5cGUpCitTQVguY2hhcmFjdGVycyhCb3ggdHlwZSBBLCAxMCkKK1NBWC5lbmRFbGVtZW50KFI6Qm94VHlwZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoUjpiaWdib3gpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoUjphdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSOk5hbWUpCitTQVguY2hhcmFjdGVycyhKLkouIERpbmdsZWhlaW1lcnNjaG1pZHQsIDI0KQorU0FYLmVuZEVsZW1lbnQoUjpOYW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChSOmF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KEQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChSOkRpbmdBTGluZykKK1NBWC5lbmRFbGVtZW50KFI6RGluZ0FMaW5nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KFI6UmFuZG9tKQorU0FYLmVuZEVsZW1lbnQoUjpSYW5kb20pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgNDAzIEZvcmJpZGRlbiwgMjIpCitTQVguZW5kRWxlbWVudChEOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpyZXNwb25zZWRlc2NyaXB0aW9uKQorU0FYLmNoYXJhY3RlcnMoIFRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYWNjZXNzLCA2NCkKK1NBWC5lbmRFbGVtZW50KEQ6cmVzcG9uc2VkZXNjcmlwdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpyZXNwb25zZWRlc2NyaXB0aW9uKQorU0FYLmNoYXJhY3RlcnMoIFRoZXJlIGhhcyBiZWVuIGFuIGFjY2VzcyB2aW9sLCA0NCkKK1NBWC5lbmRFbGVtZW50KEQ6cmVzcG9uc2VkZXNjcmlwdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoRDptdWx0aXN0YXR1cykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRhZDExYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEuc2F4MgpAQCAtMCwwICsxLDgxIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhtdWx0aXN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAyLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgeG1sbnM6Uj0naHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYScsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYmlnYm94LCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYScsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKEJveFR5cGUsIFIsICdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEJveCB0eXBlIEEsIDEwKQorU0FYLmVuZEVsZW1lbnROcyhCb3hUeXBlLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYScpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYmlnYm94LCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYScpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIFIsICdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoTmFtZSwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEnLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSi5KLiBEaW5nbGVoZWltZXJzY2htaWR0LCAyNCkKK1NBWC5lbmRFbGVtZW50TnMoTmFtZSwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoRGluZ0FMaW5nLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYScsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKERpbmdBTGluZywgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoUmFuZG9tLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYScsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKFJhbmRvbSwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSA0MDMgRm9yYmlkZGVuLCAyMikKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocmVzcG9uc2VkZXNjcmlwdGlvbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYWNjZXNzLCA2NCkKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2VkZXNjcmlwdGlvbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2UsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocmVzcG9uc2VkZXNjcmlwdGlvbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFRoZXJlIGhhcyBiZWVuIGFuIGFjY2VzcyB2aW9sLCA0NCkKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2VkZXNjcmlwdGlvbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKG11bHRpc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjAwZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTAKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm93bmVyIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpocmVmPmh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdy9jb250YWN0Lmh0bWw8L0Q6aHJlZj4KKzwvRDpvd25lcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEwLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEwLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmI1NTJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTAucmRlCkBAIC0wLDAgKzEsOSBAQAorMCAxIEQ6b3duZXIgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpocmVmIDAgMAorMiAzICN0ZXh0IDAgMSBodHRwOi8vd3d3Lmljcy51Y2kuZWR1L35lancvY29udGFjdC5odG1sCisxIDE1IEQ6aHJlZiAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6b3duZXIgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZiNTUyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEwLnJkcgpAQCAtMCwwICsxLDkgQEAKKzAgMSBEOm93bmVyIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6aHJlZiAwIDAKKzIgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvbnRhY3QuaHRtbAorMSAxNSBEOmhyZWYgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOm93bmVyIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTAuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTAuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhOTgyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMC5zYXgKQEAgLTAsMCArMSwxMiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KEQ6b3duZXIsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvLCA0MCkKK1NBWC5lbmRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoRDpvd25lcikKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTAuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTNlMjJjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTAuc2F4MgpAQCAtMCwwICsxLDEyIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhvd25lciwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAxLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvLCA0MCkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKG93bmVyLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWMyM2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEKQEAgLTAsMCArMSwyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpwcm9wIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpsb2NrZGlzY292ZXJ5PgorICAgIDxEOmFjdGl2ZWxvY2s+CisgICAgICA8RDpsb2NrdHlwZT53cml0ZTwvRDpsb2NrdHlwZT4KKyAgICAgIDxEOmxvY2tzY29wZT5leGNsdXNpdmU8L0Q6bG9ja3Njb3BlPgorICAgICAgPEQ6YWRkbG9ja3MvPgorICAgICAgPEQ6b3duZXI+CisgICAgICAgIDxEOmhyZWY+CisJCWh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdy9jb250YWN0Lmh0bWwKKwkJPC9EOmhyZWY+CisgICAgICA8L0Q6b3duZXI+CisgICAgICA8RDp0aW1lb3V0PlNlY29uZC02MDQ4MDA8L0Q6dGltZW91dD4KKyAgICAgIDxEOmxvY2t0b2tlbj4KKyAgICAgICAgPEQ6aHJlZj4KKwkgICBvcGFxdWVsb2NrdG9rZW46eHl6MTIyMzkzNDgxMjMwOTEyYXNkZmEwOXM4ZGYwOXM3ZGYKKwkJPC9EOmhyZWY+CisgICAgICA8L0Q6bG9ja3Rva2VuPgorICAgIDwvRDphY3RpdmVsb2NrPgorICA8L0Q6bG9ja2Rpc2NvdmVyeT4KKzwvRDpwcm9wPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OGFmZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMS5yZGUKQEAgLTAsMCArMSw2MCBAQAorMCAxIEQ6cHJvcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOmxvY2tkaXNjb3ZlcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOmFjdGl2ZWxvY2sgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6bG9ja3R5cGUgMCAwCis0IDMgI3RleHQgMCAxIHdyaXRlCiszIDE1IEQ6bG9ja3R5cGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6bG9ja3Njb3BlIDAgMAorNCAzICN0ZXh0IDAgMSBleGNsdXNpdmUKKzMgMTUgRDpsb2Nrc2NvcGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6YWRkbG9ja3MgMSAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6b3duZXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpocmVmIDAgMAorNSAzICN0ZXh0IDAgMSAKKwkJaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvbnRhY3QuaHRtbAorCQkKKzQgMTUgRDpocmVmIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgRDpvd25lciAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDp0aW1lb3V0IDAgMAorNCAzICN0ZXh0IDAgMSBTZWNvbmQtNjA0ODAwCiszIDE1IEQ6dGltZW91dCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpsb2NrdG9rZW4gMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpocmVmIDAgMAorNSAzICN0ZXh0IDAgMSAKKwkgICBvcGFxdWVsb2NrdG9rZW46eHl6MTIyMzkzNDgxMjMwOTEyYXNkZmEwOXM4ZGYwOXM3ZGYKKwkJCis0IDE1IEQ6aHJlZiAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IEQ6bG9ja3Rva2VuIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6YWN0aXZlbG9jayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpsb2NrZGlzY292ZXJ5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDpwcm9wIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OGFmZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMS5yZHIKQEAgLTAsMCArMSw2MCBAQAorMCAxIEQ6cHJvcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOmxvY2tkaXNjb3ZlcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOmFjdGl2ZWxvY2sgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6bG9ja3R5cGUgMCAwCis0IDMgI3RleHQgMCAxIHdyaXRlCiszIDE1IEQ6bG9ja3R5cGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6bG9ja3Njb3BlIDAgMAorNCAzICN0ZXh0IDAgMSBleGNsdXNpdmUKKzMgMTUgRDpsb2Nrc2NvcGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6YWRkbG9ja3MgMSAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6b3duZXIgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpocmVmIDAgMAorNSAzICN0ZXh0IDAgMSAKKwkJaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvbnRhY3QuaHRtbAorCQkKKzQgMTUgRDpocmVmIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgRDpvd25lciAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDp0aW1lb3V0IDAgMAorNCAzICN0ZXh0IDAgMSBTZWNvbmQtNjA0ODAwCiszIDE1IEQ6dGltZW91dCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpsb2NrdG9rZW4gMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpocmVmIDAgMAorNSAzICN0ZXh0IDAgMSAKKwkgICBvcGFxdWVsb2NrdG9rZW46eHl6MTIyMzkzNDgxMjMwOTEyYXNkZmEwOXM4ZGYwOXM3ZGYKKwkJCis0IDE1IEQ6aHJlZiAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IEQ6bG9ja3Rva2VuIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6YWN0aXZlbG9jayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpsb2NrZGlzY292ZXJ5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDpwcm9wIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTEuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzODE1ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMS5zYXgKQEAgLTAsMCArMSw2MiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KEQ6cHJvcCwgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOmxvY2tkaXNjb3ZlcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6YWN0aXZlbG9jaykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChEOmxvY2t0eXBlKQorU0FYLmNoYXJhY3RlcnMod3JpdGUsIDUpCitTQVguZW5kRWxlbWVudChEOmxvY2t0eXBlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEQ6bG9ja3Njb3BlKQorU0FYLmNoYXJhY3RlcnMoZXhjbHVzaXZlLCA5KQorU0FYLmVuZEVsZW1lbnQoRDpsb2Nrc2NvcGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoRDphZGRsb2NrcykKK1NBWC5lbmRFbGVtZW50KEQ6YWRkbG9ja3MpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoRDpvd25lcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorCQlodHRwOi8vd3d3Lmljcy51Y2kuZWR1L35lancsIDQ2KQorU0FYLmVuZEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChEOm93bmVyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEQ6dGltZW91dCkKK1NBWC5jaGFyYWN0ZXJzKFNlY29uZC02MDQ4MDAsIDEzKQorU0FYLmVuZEVsZW1lbnQoRDp0aW1lb3V0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEQ6bG9ja3Rva2VuKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisJICAgb3BhcXVlbG9ja3Rva2VuOnh5ejEyMjM5MywgNTkpCitTQVguZW5kRWxlbWVudChEOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KEQ6bG9ja3Rva2VuKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoRDphY3RpdmVsb2NrKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6bG9ja2Rpc2NvdmVyeSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoRDpwcm9wKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjExLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZjIzMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMS5zYXgyCkBAIC0wLDAgKzEsNjIgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMSwgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGxvY2tkaXNjb3ZlcnksIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhY3RpdmVsb2NrLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhsb2NrdHlwZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMod3JpdGUsIDUpCitTQVguZW5kRWxlbWVudE5zKGxvY2t0eXBlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhsb2Nrc2NvcGUsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGV4Y2x1c2l2ZSwgOSkKK1NBWC5lbmRFbGVtZW50TnMobG9ja3Njb3BlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhZGRsb2NrcywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhhZGRsb2NrcywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMob3duZXIsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisJCWh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdywgNDYpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhvd25lciwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnModGltZW91dCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoU2Vjb25kLTYwNDgwMCwgMTMpCitTQVguZW5kRWxlbWVudE5zKHRpbWVvdXQsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxvY2t0b2tlbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKwkgICBvcGFxdWVsb2NrdG9rZW46eHl6MTIyMzkzLCA1OSkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGxvY2t0b2tlbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhhY3RpdmVsb2NrLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhsb2NrZGlzY292ZXJ5LCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhkMDNmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEyCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpocmVmIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPmh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdy9jb250YWN0Lmh0bWw8L0Q6aHJlZj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEyLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEyLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZGY3OTQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTIucmRlCkBAIC0wLDAgKzEsMyBAQAorMCAxIEQ6aHJlZiAwIDAKKzEgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvbnRhY3QuaHRtbAorMCAxNSBEOmhyZWYgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMi5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMi5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRmNzk0MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEyLnJkcgpAQCAtMCwwICsxLDMgQEAKKzAgMSBEOmhyZWYgMCAwCisxIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdy9jb250YWN0Lmh0bWwKKzAgMTUgRDpocmVmIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTIuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTIuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3YjlmNjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMi5zYXgKQEAgLTAsMCArMSw2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoRDpocmVmLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdy9jbywgNDApCitTQVguZW5kRWxlbWVudChEOmhyZWYpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEyLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE3MTViNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEyLnNheDIKQEAgLTAsMCArMSw2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDEsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvLCA0MCkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ0YWUzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEzCkBAIC0wLDAgKzEsMTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOmhyZWY+CisJICAgaHR0cDovL3dlYmRhdi5zYi5hb2wuY29tL3dvcmtzcGFjZS93ZWJkYXYvcHJvcG9zYWwuZG9jCisgICAgICA8L0Q6aHJlZj4KKyAgICA8RDpocmVmPgorCSAgIGh0dHA6Ly93ZWJkYXYuc2IuYW9sLmNvbS93b3Jrc3BhY2Uvd2ViZGF2LworICAgICAgPC9EOmhyZWY+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDIwMiBBY2NlcHRlZDwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6aHJlZj5odHRwOi8vZm9vLmJhci9ibGFoPC9EOmhyZWY+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDQwMyBGb3JiaWRkZW48L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMy5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMy5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZlOTc4ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEzLnJkZQpAQCAtMCwwICsxLDQ1IEBACiswIDEgRDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSAKKwkgICBodHRwOi8vd2ViZGF2LnNiLmFvbC5jb20vd29ya3NwYWNlL3dlYmRhdi9wcm9wb3NhbC5kb2MKKyAgICAgIAorMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIAorCSAgIGh0dHA6Ly93ZWJkYXYuc2IuYW9sLmNvbS93b3Jrc3BhY2Uvd2ViZGF2LworICAgICAgCisyIDE1IEQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSAyMDIgQWNjZXB0ZWQKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL2Zvby5iYXIvYmxhaAorMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgNDAzIEZvcmJpZGRlbgorMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMy5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMy5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZlOTc4ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEzLnJkcgpAQCAtMCwwICsxLDQ1IEBACiswIDEgRDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSAKKwkgICBodHRwOi8vd2ViZGF2LnNiLmFvbC5jb20vd29ya3NwYWNlL3dlYmRhdi9wcm9wb3NhbC5kb2MKKyAgICAgIAorMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIAorCSAgIGh0dHA6Ly93ZWJkYXYuc2IuYW9sLmNvbS93b3Jrc3BhY2Uvd2ViZGF2LworICAgICAgCisyIDE1IEQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSAyMDIgQWNjZXB0ZWQKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL2Zvby5iYXIvYmxhaAorMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgNDAzIEZvcmJpZGRlbgorMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMy5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxMy5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZlZGZkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEzLnNheApAQCAtMCwwICsxLDQ2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoRDptdWx0aXN0YXR1cywgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOmhyZWYpCitTQVguY2hhcmFjdGVycygKKwkgICBodHRwOi8vd2ViZGF2LnNiLmFvbC5jb20vLCA2NikKK1NBWC5lbmRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisJICAgaHR0cDovL3dlYmRhdi5zYi5hb2wuY29tLywgNTQpCitTQVguZW5kRWxlbWVudChEOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgMjAyIEFjY2VwdGVkLCAyMSkKK1NBWC5lbmRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vZm9vLmJhci9ibGFoLCAxOSkKK1NBWC5lbmRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSA0MDMgRm9yYmlkZGVuLCAyMikKK1NBWC5lbmRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KEQ6bXVsdGlzdGF0dXMpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTMuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEzLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZjNTM4MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjEzLnNheDIKQEAgLTAsMCArMSw0NiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMobXVsdGlzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMSwgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisJICAgaHR0cDovL3dlYmRhdi5zYi5hb2wuY29tLywgNjYpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKwkgICBodHRwOi8vd2ViZGF2LnNiLmFvbC5jb20vLCA1NCkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgMjAyIEFjY2VwdGVkLCAyMSkKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZXNwb25zZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9mb28uYmFyL2JsYWgsIDE5KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSA0MDMgRm9yYmlkZGVuLCAyMikKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZXNwb25zZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKG11bHRpc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODA4MDJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTUKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpwcm9wIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOkY9Imh0dHA6Ly93d3cuZm9vY29ycC5jb20vUHJvamVjdC8iPgorICA8RDpTb3VyY2U+CisgICAgPEQ6bGluaz4KKyAgICAgIDxGOnByb2pmaWxlcz5Tb3VyY2U8L0Y6cHJvamZpbGVzPgorICAgICAgPEQ6c3JjPmh0dHA6Ly9mb28uYmFyL3Byb2dyYW08L0Q6c3JjPgorICAgICAgPEQ6ZHN0Pmh0dHA6Ly9mb28uYmFyL3NyYy9tYWluLmM8L0Q6ZHN0PgorICAgIDwvRDpsaW5rPgorICAgIDxEOmxpbms+CisgICAgICA8Rjpwcm9qZmlsZXM+TGlicmFyeTwvRjpwcm9qZmlsZXM+CisgICAgICA8RDpzcmM+aHR0cDovL2Zvby5iYXIvcHJvZ3JhbTwvRDpzcmM+CisgICAgICA8RDpkc3Q+aHR0cDovL2Zvby5iYXIvc3JjL21haW4ubGliPC9EOmRzdD4KKyAgICA8L0Q6bGluaz4KKyAgICA8RDpsaW5rPgorICAgICAgPEY6cHJvamZpbGVzPk1ha2VmaWxlPC9GOnByb2pmaWxlcz4KKyAgICAgIDxEOnNyYz5odHRwOi8vZm9vLmJhci9wcm9ncmFtPC9EOnNyYz4KKyAgICAgIDxEOmRzdD5odHRwOi8vZm9vLmJhci9zcmMvbWFrZWZpbGU8L0Q6ZHN0PgorICAgIDwvRDpsaW5rPgorICA8L0Q6U291cmNlPgorPC9EOnByb3A+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNS5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRhNGU3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE1LnJkZQpAQCAtMCwwICsxLDczIEBACiswIDEgRDpwcm9wIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6U291cmNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpsaW5rIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBGOnByb2pmaWxlcyAwIDAKKzQgMyAjdGV4dCAwIDEgU291cmNlCiszIDE1IEY6cHJvamZpbGVzIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBEOnNyYyAwIDAKKzQgMyAjdGV4dCAwIDEgaHR0cDovL2Zvby5iYXIvcHJvZ3JhbQorMyAxNSBEOnNyYyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpkc3QgMCAwCis0IDMgI3RleHQgMCAxIGh0dHA6Ly9mb28uYmFyL3NyYy9tYWluLmMKKzMgMTUgRDpkc3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpsaW5rIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpsaW5rIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBGOnByb2pmaWxlcyAwIDAKKzQgMyAjdGV4dCAwIDEgTGlicmFyeQorMyAxNSBGOnByb2pmaWxlcyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpzcmMgMCAwCis0IDMgI3RleHQgMCAxIGh0dHA6Ly9mb28uYmFyL3Byb2dyYW0KKzMgMTUgRDpzcmMgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6ZHN0IDAgMAorNCAzICN0ZXh0IDAgMSBodHRwOi8vZm9vLmJhci9zcmMvbWFpbi5saWIKKzMgMTUgRDpkc3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpsaW5rIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpsaW5rIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBGOnByb2pmaWxlcyAwIDAKKzQgMyAjdGV4dCAwIDEgTWFrZWZpbGUKKzMgMTUgRjpwcm9qZmlsZXMgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6c3JjIDAgMAorNCAzICN0ZXh0IDAgMSBodHRwOi8vZm9vLmJhci9wcm9ncmFtCiszIDE1IEQ6c3JjIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBEOmRzdCAwIDAKKzQgMyAjdGV4dCAwIDEgaHR0cDovL2Zvby5iYXIvc3JjL21ha2VmaWxlCiszIDE1IEQ6ZHN0IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6bGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpTb3VyY2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOnByb3AgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRhNGU3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE1LnJkcgpAQCAtMCwwICsxLDczIEBACiswIDEgRDpwcm9wIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6U291cmNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpsaW5rIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBGOnByb2pmaWxlcyAwIDAKKzQgMyAjdGV4dCAwIDEgU291cmNlCiszIDE1IEY6cHJvamZpbGVzIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBEOnNyYyAwIDAKKzQgMyAjdGV4dCAwIDEgaHR0cDovL2Zvby5iYXIvcHJvZ3JhbQorMyAxNSBEOnNyYyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpkc3QgMCAwCis0IDMgI3RleHQgMCAxIGh0dHA6Ly9mb28uYmFyL3NyYy9tYWluLmMKKzMgMTUgRDpkc3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpsaW5rIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpsaW5rIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBGOnByb2pmaWxlcyAwIDAKKzQgMyAjdGV4dCAwIDEgTGlicmFyeQorMyAxNSBGOnByb2pmaWxlcyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpzcmMgMCAwCis0IDMgI3RleHQgMCAxIGh0dHA6Ly9mb28uYmFyL3Byb2dyYW0KKzMgMTUgRDpzcmMgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6ZHN0IDAgMAorNCAzICN0ZXh0IDAgMSBodHRwOi8vZm9vLmJhci9zcmMvbWFpbi5saWIKKzMgMTUgRDpkc3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpsaW5rIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpsaW5rIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBGOnByb2pmaWxlcyAwIDAKKzQgMyAjdGV4dCAwIDEgTWFrZWZpbGUKKzMgMTUgRjpwcm9qZmlsZXMgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6c3JjIDAgMAorNCAzICN0ZXh0IDAgMSBodHRwOi8vZm9vLmJhci9wcm9ncmFtCiszIDE1IEQ6c3JjIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBEOmRzdCAwIDAKKzQgMyAjdGV4dCAwIDEgaHR0cDovL2Zvby5iYXIvc3JjL21ha2VmaWxlCiszIDE1IEQ6ZHN0IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6bGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpTb3VyY2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOnByb3AgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM0ZWM3ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE1LnNheApAQCAtMCwwICsxLDc2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoRDpwcm9wLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgeG1sbnM6Rj0naHR0cDovL3d3dy5mb29jb3JwLmNvbS9Qcm9qZWN0LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOlNvdXJjZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEY6cHJvamZpbGVzKQorU0FYLmNoYXJhY3RlcnMoU291cmNlLCA2KQorU0FYLmVuZEVsZW1lbnQoRjpwcm9qZmlsZXMpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoRDpzcmMpCitTQVguY2hhcmFjdGVycyhodHRwOi8vZm9vLmJhci9wcm9ncmFtLCAyMikKK1NBWC5lbmRFbGVtZW50KEQ6c3JjKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEQ6ZHN0KQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL2Zvby5iYXIvc3JjL21haW4uYywgMjUpCitTQVguZW5kRWxlbWVudChEOmRzdCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KEQ6bGluaykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEY6cHJvamZpbGVzKQorU0FYLmNoYXJhY3RlcnMoTGlicmFyeSwgNykKK1NBWC5lbmRFbGVtZW50KEY6cHJvamZpbGVzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEQ6c3JjKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL2Zvby5iYXIvcHJvZ3JhbSwgMjIpCitTQVguZW5kRWxlbWVudChEOnNyYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChEOmRzdCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9mb28uYmFyL3NyYy9tYWluLmxpYiwgMjcpCitTQVguZW5kRWxlbWVudChEOmRzdCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KEQ6bGluaykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEY6cHJvamZpbGVzKQorU0FYLmNoYXJhY3RlcnMoTWFrZWZpbGUsIDgpCitTQVguZW5kRWxlbWVudChGOnByb2pmaWxlcykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChEOnNyYykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9mb28uYmFyL3Byb2dyYW0sIDIyKQorU0FYLmVuZEVsZW1lbnQoRDpzcmMpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoRDpkc3QpCitTQVguY2hhcmFjdGVycyhodHRwOi8vZm9vLmJhci9zcmMvbWFrZWZpbGUsIDI3KQorU0FYLmVuZEVsZW1lbnQoRDpkc3QpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChEOmxpbmspCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoRDpTb3VyY2UpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KEQ6cHJvcCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTUuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDQwY2QxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTUuc2F4MgpAQCAtMCwwICsxLDc2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDIsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCB4bWxuczpGPSdodHRwOi8vd3d3LmZvb2NvcnAuY29tL1Byb2plY3QvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMoU291cmNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMobGluaywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMocHJvamZpbGVzLCBGLCAnaHR0cDovL3d3dy5mb29jb3JwLmNvbS9Qcm9qZWN0LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhTb3VyY2UsIDYpCitTQVguZW5kRWxlbWVudE5zKHByb2pmaWxlcywgRiwgJ2h0dHA6Ly93d3cuZm9vY29ycC5jb20vUHJvamVjdC8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoc3JjLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vZm9vLmJhci9wcm9ncmFtLCAyMikKK1NBWC5lbmRFbGVtZW50TnMoc3JjLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhkc3QsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9mb28uYmFyL3NyYy9tYWluLmMsIDI1KQorU0FYLmVuZEVsZW1lbnROcyhkc3QsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMobGluaywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKHByb2pmaWxlcywgRiwgJ2h0dHA6Ly93d3cuZm9vY29ycC5jb20vUHJvamVjdC8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoTGlicmFyeSwgNykKK1NBWC5lbmRFbGVtZW50TnMocHJvamZpbGVzLCBGLCAnaHR0cDovL3d3dy5mb29jb3JwLmNvbS9Qcm9qZWN0LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhzcmMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9mb28uYmFyL3Byb2dyYW0sIDIyKQorU0FYLmVuZEVsZW1lbnROcyhzcmMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRzdCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL2Zvby5iYXIvc3JjL21haW4ubGliLCAyNykKK1NBWC5lbmRFbGVtZW50TnMoZHN0LCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKGxpbmssIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhsaW5rLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhwcm9qZmlsZXMsIEYsICdodHRwOi8vd3d3LmZvb2NvcnAuY29tL1Byb2plY3QvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKE1ha2VmaWxlLCA4KQorU0FYLmVuZEVsZW1lbnROcyhwcm9qZmlsZXMsIEYsICdodHRwOi8vd3d3LmZvb2NvcnAuY29tL1Byb2plY3QvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNyYywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL2Zvby5iYXIvcHJvZ3JhbSwgMjIpCitTQVguZW5kRWxlbWVudE5zKHNyYywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoZHN0LCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vZm9vLmJhci9zcmMvbWFrZWZpbGUsIDI3KQorU0FYLmVuZEVsZW1lbnROcyhkc3QsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMobGluaywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoU291cmNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE2IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE3ZGMzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE2CkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpwcm9wZmluZCB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPEQ6cHJvcD4KKyAgICA8bG9ja2Rpc2NvdmVyeS8+CisgIDwvRDpwcm9wPgorPC9EOnByb3BmaW5kPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTYucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTYucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YTk5MzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNi5yZGUKQEAgLTAsMCArMSwxMyBAQAorMCAxIEQ6cHJvcGZpbmQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbG9ja2Rpc2NvdmVyeSAxIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpwcm9wIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDpwcm9wZmluZCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE2LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE2LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2E5OTMzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTYucmRyCkBAIC0wLDAgKzEsMTMgQEAKKzAgMSBEOnByb3BmaW5kIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGxvY2tkaXNjb3ZlcnkgMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cHJvcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6cHJvcGZpbmQgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNi5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNi5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIxMjUyYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE2LnNheApAQCAtMCwwICsxLDE3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoRDpwcm9wZmluZCwgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGxvY2tkaXNjb3ZlcnkpCitTQVguZW5kRWxlbWVudChsb2NrZGlzY292ZXJ5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoRDpwcm9wZmluZCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNi5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTYuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWRlMjJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTYuc2F4MgpAQCAtMCwwICsxLDE3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhwcm9wZmluZCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAxLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxvY2tkaXNjb3ZlcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKGxvY2tkaXNjb3ZlcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMocHJvcGZpbmQsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzc2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNwpAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm11bHRpc3RhdHVzIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpwcm9wPgorICAgICAgPEQ6bG9ja2Rpc2NvdmVyeT4KKyAgICAgICAgPEQ6YWN0aXZlbG9jaz4KKyAgICAgICAgICA8RDpsb2NrdHlwZT53cml0ZTwvRDpsb2NrdHlwZT4KKyAgICAgICAgICA8RDpsb2Nrc2NvcGU+ZXhjbHVzaXZlPC9EOmxvY2tzY29wZT4KKyAgICAgICAgICA8RDphZGRsb2Nrcz4KKyAgICAgICAgICAgIDxEOmhyZWY+aHR0cDovL2Zvby5jb20vZG9jLzwvRDpocmVmPgorICAgICAgICAgIDwvRDphZGRsb2Nrcz4KKyAgICAgICAgICA8RDpvd25lcj5KYW5lIFNtaXRoPC9EOm93bmVyPgorICAgICAgICAgIDxEOnRpbWVvdXQ+SW5maW5pdGU8L0Q6dGltZW91dD4KKyAgICAgICAgICA8RDpsb2NrdG9rZW4+CisgICAgICAgICAgICA8RDpocmVmPmlhbXVyaTp1bmlxdWUhISEhITwvRDpocmVmPgorICAgICAgICAgIDwvRDpsb2NrdG9rZW4+CisgICAgICAgIDwvRDphY3RpdmVsb2NrPgorICAgICAgPC9EOmxvY2tkaXNjb3Zlcnk+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDIwMCBPSzwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKzwvRDptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE3LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE3LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDdiNjRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTcucmRlCkBAIC0wLDAgKzEsNzUgQEAKKzAgMSBEOm11bHRpc3RhdHVzIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnByb3AgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6bG9ja2Rpc2NvdmVyeSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBEOmFjdGl2ZWxvY2sgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBEOmxvY2t0eXBlIDAgMAorNiAzICN0ZXh0IDAgMSB3cml0ZQorNSAxNSBEOmxvY2t0eXBlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDpsb2Nrc2NvcGUgMCAwCis2IDMgI3RleHQgMCAxIGV4Y2x1c2l2ZQorNSAxNSBEOmxvY2tzY29wZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIEQ6YWRkbG9ja3MgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIEQ6aHJlZiAwIDAKKzcgMyAjdGV4dCAwIDEgaHR0cDovL2Zvby5jb20vZG9jLworNiAxNSBEOmhyZWYgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgRDphZGRsb2NrcyAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIEQ6b3duZXIgMCAwCis2IDMgI3RleHQgMCAxIEphbmUgU21pdGgKKzUgMTUgRDpvd25lciAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIEQ6dGltZW91dCAwIDAKKzYgMyAjdGV4dCAwIDEgSW5maW5pdGUKKzUgMTUgRDp0aW1lb3V0IDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDpsb2NrdG9rZW4gMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIEQ6aHJlZiAwIDAKKzcgMyAjdGV4dCAwIDEgaWFtdXJpOnVuaXF1ZSEhISEhCis2IDE1IEQ6aHJlZiAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBEOmxvY2t0b2tlbiAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMTUgRDphY3RpdmVsb2NrIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgRDpsb2NrZGlzY292ZXJ5IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSAyMDAgT0sKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTcucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTcucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0N2I2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNy5yZHIKQEAgLTAsMCArMSw3NSBAQAorMCAxIEQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpsb2NrZGlzY292ZXJ5IDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIEQ6YWN0aXZlbG9jayAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIEQ6bG9ja3R5cGUgMCAwCis2IDMgI3RleHQgMCAxIHdyaXRlCis1IDE1IEQ6bG9ja3R5cGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBEOmxvY2tzY29wZSAwIDAKKzYgMyAjdGV4dCAwIDEgZXhjbHVzaXZlCis1IDE1IEQ6bG9ja3Njb3BlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDphZGRsb2NrcyAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgRDpocmVmIDAgMAorNyAzICN0ZXh0IDAgMSBodHRwOi8vZm9vLmNvbS9kb2MvCis2IDE1IEQ6aHJlZiAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBEOmFkZGxvY2tzIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDpvd25lciAwIDAKKzYgMyAjdGV4dCAwIDEgSmFuZSBTbWl0aAorNSAxNSBEOm93bmVyIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDp0aW1lb3V0IDAgMAorNiAzICN0ZXh0IDAgMSBJbmZpbml0ZQorNSAxNSBEOnRpbWVvdXQgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBEOmxvY2t0b2tlbiAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgRDpocmVmIDAgMAorNyAzICN0ZXh0IDAgMSBpYW11cmk6dW5pcXVlISEhISEKKzYgMTUgRDpocmVmIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDE1IEQ6bG9ja3Rva2VuIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxNSBEOmFjdGl2ZWxvY2sgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBEOmxvY2tkaXNjb3ZlcnkgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDIwMCBPSworMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNy5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxNy5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNmNWJjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE3LnNheApAQCAtMCwwICsxLDc4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoRDptdWx0aXN0YXR1cywgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoRDpsb2NrZGlzY292ZXJ5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoRDphY3RpdmVsb2NrKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoRDpsb2NrdHlwZSkKK1NBWC5jaGFyYWN0ZXJzKHdyaXRlLCA1KQorU0FYLmVuZEVsZW1lbnQoRDpsb2NrdHlwZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KEQ6bG9ja3Njb3BlKQorU0FYLmNoYXJhY3RlcnMoZXhjbHVzaXZlLCA5KQorU0FYLmVuZEVsZW1lbnQoRDpsb2Nrc2NvcGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChEOmFkZGxvY2tzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudChEOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vZm9vLmNvbS9kb2MvLCAxOSkKK1NBWC5lbmRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudChEOmFkZGxvY2tzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoRDpvd25lcikKK1NBWC5jaGFyYWN0ZXJzKEphbmUgU21pdGgsIDEwKQorU0FYLmVuZEVsZW1lbnQoRDpvd25lcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KEQ6dGltZW91dCkKK1NBWC5jaGFyYWN0ZXJzKEluZmluaXRlLCA4KQorU0FYLmVuZEVsZW1lbnQoRDp0aW1lb3V0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoRDpsb2NrdG9rZW4pCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKGlhbXVyaTp1bmlxdWUhISEhISwgMTgpCitTQVguZW5kRWxlbWVudChEOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnQoRDpsb2NrdG9rZW4pCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnQoRDphY3RpdmVsb2NrKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChEOmxvY2tkaXNjb3ZlcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgMjAwIE9LLCAxNSkKK1NBWC5lbmRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KEQ6bXVsdGlzdGF0dXMpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTcuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE3LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgxODVhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE3LnNheDIKQEAgLTAsMCArMSw3OCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMobXVsdGlzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMSwgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMobG9ja2Rpc2NvdmVyeSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhhY3RpdmVsb2NrLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGxvY2t0eXBlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh3cml0ZSwgNSkKK1NBWC5lbmRFbGVtZW50TnMobG9ja3R5cGUsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50TnMobG9ja3Njb3BlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhleGNsdXNpdmUsIDkpCitTQVguZW5kRWxlbWVudE5zKGxvY2tzY29wZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnROcyhhZGRsb2NrcywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9mb28uY29tL2RvYy8sIDE5KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnROcyhhZGRsb2NrcywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnROcyhvd25lciwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSmFuZSBTbWl0aCwgMTApCitTQVguZW5kRWxlbWVudE5zKG93bmVyLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWVvdXQsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEluZmluaXRlLCA4KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lb3V0LCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGxvY2t0b2tlbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGlhbXVyaTp1bmlxdWUhISEhISwgMTgpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudE5zKGxvY2t0b2tlbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5lbmRFbGVtZW50TnMoYWN0aXZlbG9jaywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGxvY2tkaXNjb3ZlcnksIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgMjAwIE9LLCAxNSkKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZXNwb25zZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKG11bHRpc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGUxYzE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTgKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOnByb3BmaW5kIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpwcm9wPgorICAgIDxzdXBwb3J0ZWRsb2NrLz4KKyAgPC9EOnByb3A+Cis8L0Q6cHJvcGZpbmQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRlMTdhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE4LnJkZQpAQCAtMCwwICsxLDEzIEBACiswIDEgRDpwcm9wZmluZCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzdXBwb3J0ZWRsb2NrIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBEOnByb3AgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOnByb3BmaW5kIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTgucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTgucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZTE3YWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOC5yZHIKQEAgLTAsMCArMSwxMyBAQAorMCAxIEQ6cHJvcGZpbmQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc3VwcG9ydGVkbG9jayAxIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpwcm9wIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDpwcm9wZmluZCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE4LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE4LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWY0MGU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTguc2F4CkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3BmaW5kLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc3VwcG9ydGVkbG9jaykKK1NBWC5lbmRFbGVtZW50KHN1cHBvcnRlZGxvY2spCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChEOnByb3BmaW5kKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE4LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZGMxMDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOC5zYXgyCkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHByb3BmaW5kLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDEsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3VwcG9ydGVkbG9jaywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoc3VwcG9ydGVkbG9jaywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhwcm9wZmluZCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE5IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUzNWZmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE5CkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOnByb3A+CisgICAgICA8RDpzdXBwb3J0ZWRsb2NrPgorICAgICAgICA8RDpMb2NrRW50cnk+CisgICAgICAgICAgPEQ6bG9ja3R5cGU+V3JpdGU8L0Q6bG9ja3R5cGU+CisgICAgICAgICAgPEQ6bG9ja3Njb3BlPkV4Y2x1c2l2ZTwvRDpsb2Nrc2NvcGU+CisgICAgICAgIDwvRDpMb2NrRW50cnk+CisgICAgICAgIDxEOkxvY2tFbnRyeT4KKyAgICAgICAgICA8RDpsb2NrdHlwZT5Xcml0ZTwvRDpsb2NrdHlwZT4KKyAgICAgICAgICA8RDpsb2Nrc2NvcGU+U2hhcmVkPC9EOmxvY2tzY29wZT4KKyAgICAgICAgPC9EOkxvY2tFbnRyeT4KKyAgICAgIDwvRDpzdXBwb3J0ZWRsb2NrPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOS5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJjMWUwMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE5LnJkZQpAQCAtMCwwICsxLDU5IEBACiswIDEgRDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBEOnN1cHBvcnRlZGxvY2sgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpMb2NrRW50cnkgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBEOmxvY2t0eXBlIDAgMAorNiAzICN0ZXh0IDAgMSBXcml0ZQorNSAxNSBEOmxvY2t0eXBlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDpsb2Nrc2NvcGUgMCAwCis2IDMgI3RleHQgMCAxIEV4Y2x1c2l2ZQorNSAxNSBEOmxvY2tzY29wZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMTUgRDpMb2NrRW50cnkgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpMb2NrRW50cnkgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBEOmxvY2t0eXBlIDAgMAorNiAzICN0ZXh0IDAgMSBXcml0ZQorNSAxNSBEOmxvY2t0eXBlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDpsb2Nrc2NvcGUgMCAwCis2IDMgI3RleHQgMCAxIFNoYXJlZAorNSAxNSBEOmxvY2tzY29wZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMTUgRDpMb2NrRW50cnkgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBEOnN1cHBvcnRlZGxvY2sgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDIwMCBPSworMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJjMWUwMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE5LnJkcgpAQCAtMCwwICsxLDU5IEBACiswIDEgRDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBEOnN1cHBvcnRlZGxvY2sgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpMb2NrRW50cnkgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBEOmxvY2t0eXBlIDAgMAorNiAzICN0ZXh0IDAgMSBXcml0ZQorNSAxNSBEOmxvY2t0eXBlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDpsb2Nrc2NvcGUgMCAwCis2IDMgI3RleHQgMCAxIEV4Y2x1c2l2ZQorNSAxNSBEOmxvY2tzY29wZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMTUgRDpMb2NrRW50cnkgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpMb2NrRW50cnkgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBEOmxvY2t0eXBlIDAgMAorNiAzICN0ZXh0IDAgMSBXcml0ZQorNSAxNSBEOmxvY2t0eXBlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgRDpsb2Nrc2NvcGUgMCAwCis2IDMgI3RleHQgMCAxIFNoYXJlZAorNSAxNSBEOmxvY2tzY29wZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMTUgRDpMb2NrRW50cnkgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBEOnN1cHBvcnRlZGxvY2sgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDIwMCBPSworMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY1ZTAzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjE5LnNheApAQCAtMCwwICsxLDYyIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoRDptdWx0aXN0YXR1cywgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoRDpzdXBwb3J0ZWRsb2NrKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoRDpMb2NrRW50cnkpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChEOmxvY2t0eXBlKQorU0FYLmNoYXJhY3RlcnMoV3JpdGUsIDUpCitTQVguZW5kRWxlbWVudChEOmxvY2t0eXBlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoRDpsb2Nrc2NvcGUpCitTQVguY2hhcmFjdGVycyhFeGNsdXNpdmUsIDkpCitTQVguZW5kRWxlbWVudChEOmxvY2tzY29wZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguZW5kRWxlbWVudChEOkxvY2tFbnRyeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KEQ6TG9ja0VudHJ5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoRDpsb2NrdHlwZSkKK1NBWC5jaGFyYWN0ZXJzKFdyaXRlLCA1KQorU0FYLmVuZEVsZW1lbnQoRDpsb2NrdHlwZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KEQ6bG9ja3Njb3BlKQorU0FYLmNoYXJhY3RlcnMoU2hhcmVkLCA2KQorU0FYLmVuZEVsZW1lbnQoRDpsb2Nrc2NvcGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnQoRDpMb2NrRW50cnkpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KEQ6c3VwcG9ydGVkbG9jaykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoRDptdWx0aXN0YXR1cykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYxOS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTkuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGRkNDAyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MTkuc2F4MgpAQCAtMCwwICsxLDYyIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhtdWx0aXN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAxLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocmVzcG9uc2UsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhzdXBwb3J0ZWRsb2NrLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKExvY2tFbnRyeSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnROcyhsb2NrdHlwZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoV3JpdGUsIDUpCitTQVguZW5kRWxlbWVudE5zKGxvY2t0eXBlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGxvY2tzY29wZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoRXhjbHVzaXZlLCA5KQorU0FYLmVuZEVsZW1lbnROcyhsb2Nrc2NvcGUsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguZW5kRWxlbWVudE5zKExvY2tFbnRyeSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhMb2NrRW50cnksIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50TnMobG9ja3R5cGUsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFdyaXRlLCA1KQorU0FYLmVuZEVsZW1lbnROcyhsb2NrdHlwZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnROcyhsb2Nrc2NvcGUsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFNoYXJlZCwgNikKK1NBWC5lbmRFbGVtZW50TnMobG9ja3Njb3BlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnROcyhMb2NrRW50cnksIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhzdXBwb3J0ZWRsb2NrLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDIwMCBPSywgMTUpCitTQVguZW5kRWxlbWVudE5zKHN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2UsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhtdWx0aXN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MzFiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYyCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFM6bXVsdGlzdGF0dXMgeG1sbnM6Uz0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyIgeG1sbnM6Uj0iaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8iPgorICA8UzpyZXNwb25zZT4KKyAgICA8UzpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvPC9TOmhyZWY+CisgICAgPFM6cHJvcD4KKyAgICAgIDxSOmJpZ2JveD4KKyAgICAgICAgPFI6Qm94VHlwZT5Cb3ggdHlwZSBBPC9SOkJveFR5cGU+CisgICAgICA8L1I6YmlnYm94PgorICAgICAgPFI6YXV0aG9yPgorICAgICAgICA8UjpOYW1lPkhhZHJpYW48L1I6TmFtZT4KKyAgICAgIDwvUjphdXRob3I+CisgICAgPC9TOnByb3A+CisgICAgPFM6c3RhdHVzPkhUVFAgMS4xIDIwMCBPSzwvUzpzdGF0dXM+CisgIDwvUzpyZXNwb25zZT4KKyAgPFM6cmVzcG9uc2U+CisgICAgPFM6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL2luZGV4Lmh0bWw8L1M6aHJlZj4KKyAgICA8Uzpwcm9wPgorICAgICAgPFI6YmlnYm94PgorICAgICAgICA8UjpCb3hUeXBlPkJveCB0eXBlIEI8L1I6Qm94VHlwZT4KKyAgICAgIDwvUjpiaWdib3g+CisgICAgPC9TOnByb3A+CisgICAgPFM6c3RhdHVzPkhUVFAgMS4xIDIwMCBPSzwvUzpzdGF0dXM+CisgIDwvUzpyZXNwb25zZT4KKzwvUzptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjIucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Mi5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmYzg2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjIucmRlCkBAIC0wLDAgKzEsODEgQEAKKzAgMSBTOm11bHRpc3RhdHVzIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIFM6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBTOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvCisyIDE1IFM6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFM6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUjpiaWdib3ggMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUjpCb3hUeXBlIDAgMAorNSAzICN0ZXh0IDAgMSBCb3ggdHlwZSBBCis0IDE1IFI6Qm94VHlwZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFI6YmlnYm94IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOmF1dGhvciAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSOk5hbWUgMCAwCis1IDMgI3RleHQgMCAxIEhhZHJpYW4KKzQgMTUgUjpOYW1lIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgUjphdXRob3IgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgUzpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUzpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAgMS4xIDIwMCBPSworMiAxNSBTOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgUzpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBTOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUzpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL2luZGV4Lmh0bWwKKzIgMTUgUzpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUzpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOmJpZ2JveCAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSOkJveFR5cGUgMCAwCis1IDMgI3RleHQgMCAxIEJveCB0eXBlIEIKKzQgMTUgUjpCb3hUeXBlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgUjpiaWdib3ggMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgUzpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUzpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAgMS4xIDIwMCBPSworMiAxNSBTOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgUzpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IFM6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYyLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjIucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZmM4NmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYyLnJkcgpAQCAtMCwwICsxLDgxIEBACiswIDEgUzptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBTOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUzpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLworMiAxNSBTOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBTOnByb3AgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIFI6YmlnYm94IDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFI6Qm94VHlwZSAwIDAKKzUgMyAjdGV4dCAwIDEgQm94IHR5cGUgQQorNCAxNSBSOkJveFR5cGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBSOmJpZ2JveCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUjphdXRob3IgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUjpOYW1lIDAgMAorNSAzICN0ZXh0IDAgMSBIYWRyaWFuCis0IDE1IFI6TmFtZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFI6YXV0aG9yIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IFM6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFM6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQIDEuMSAyMDAgT0sKKzIgMTUgUzpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IFM6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgUzpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFM6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9pbmRleC5odG1sCisyIDE1IFM6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFM6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUjpiaWdib3ggMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUjpCb3hUeXBlIDAgMAorNSAzICN0ZXh0IDAgMSBCb3ggdHlwZSBCCis0IDE1IFI6Qm94VHlwZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFI6YmlnYm94IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IFM6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFM6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQIDEuMSAyMDAgT0sKKzIgMTUgUzpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IFM6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBTOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Mi5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYyLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWJjMDZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Mi5zYXgKQEAgLTAsMCArMSw4NCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KFM6bXVsdGlzdGF0dXMsIHhtbG5zOlM9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCB4bWxuczpSPSdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChTOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChTOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLywgMjkpCitTQVguZW5kRWxlbWVudChTOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFM6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChSOmJpZ2JveCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KFI6Qm94VHlwZSkKK1NBWC5jaGFyYWN0ZXJzKEJveCB0eXBlIEEsIDEwKQorU0FYLmVuZEVsZW1lbnQoUjpCb3hUeXBlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChSOmJpZ2JveCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChSOmF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KFI6TmFtZSkKK1NBWC5jaGFyYWN0ZXJzKEhhZHJpYW4sIDcpCitTQVguZW5kRWxlbWVudChSOk5hbWUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KFI6YXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoUzpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChTOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAgMS4xIDIwMCBPSywgMTUpCitTQVguZW5kRWxlbWVudChTOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChTOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoUzpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUzpocmVmKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9pLCAzOSkKK1NBWC5lbmRFbGVtZW50KFM6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUzpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KFI6YmlnYm94KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoUjpCb3hUeXBlKQorU0FYLmNoYXJhY3RlcnMoQm94IHR5cGUgQiwgMTApCitTQVguZW5kRWxlbWVudChSOkJveFR5cGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KFI6YmlnYm94KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoUzpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChTOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAgMS4xIDIwMCBPSywgMTUpCitTQVguZW5kRWxlbWVudChTOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChTOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChTOm11bHRpc3RhdHVzKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmM3YmIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Mi5zYXgyCkBAIC0wLDAgKzEsODQgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKG11bHRpc3RhdHVzLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDIsIHhtbG5zOlM9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCB4bWxuczpSPSdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgUywgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci8sIDI5KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgUywgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYmlnYm94LCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhCb3hUeXBlLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQm94IHR5cGUgQSwgMTApCitTQVguZW5kRWxlbWVudE5zKEJveFR5cGUsIFIsICdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYmlnYm94LCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhOYW1lLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSGFkcmlhbiwgNykKK1NBWC5lbmRFbGVtZW50TnMoTmFtZSwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIFIsICdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKHByb3AsIFMsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzdGF0dXMsIFMsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEhUVFAgMS4xIDIwMCBPSywgMTUpCitTQVguZW5kRWxlbWVudE5zKHN0YXR1cywgUywgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2UsIFMsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocmVzcG9uc2UsIFMsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL2ksIDM5KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgUywgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYmlnYm94LCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhCb3hUeXBlLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQm94IHR5cGUgQiwgMTApCitTQVguZW5kRWxlbWVudE5zKEJveFR5cGUsIFIsICdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYmlnYm94LCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQIDEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIFMsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBTLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMobXVsdGlzdGF0dXMsIFMsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODZiM2ZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2MwpAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm11bHRpc3RhdHVzIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOlI9Imh0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvIj4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLzwvRDpocmVmPgorICAgIDxEOnByb3A+CisgICAgICA8UjpiaWdib3gvPgorICAgICAgPFI6YXV0aG9yLz4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUCAxLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvaW5kZXguaHRtbDwvRDpocmVmPgorICAgIDxEOnByb3A+CisgICAgICA8UjpiaWdib3gvPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQIDEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYzLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjMucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMDZmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYzLnJkZQpAQCAtMCwwICsxLDU3IEBACiswIDEgRDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLworMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnByb3AgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIFI6YmlnYm94IDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOmF1dGhvciAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUCAxLjEgMjAwIE9LCisyIDE1IEQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBEOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvaW5kZXguaHRtbAorMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnByb3AgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIFI6YmlnYm94IDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQIDEuMSAyMDAgT0sKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2My5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYzLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTA2ZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2My5yZHIKQEAgLTAsMCArMSw1NyBAQAorMCAxIEQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci8KKzIgMTUgRDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOmJpZ2JveCAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUjphdXRob3IgMSAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAgMS4xIDIwMCBPSworMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL2luZGV4Lmh0bWwKKzIgMTUgRDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSOmJpZ2JveCAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUCAxLjEgMjAwIE9LCisyIDE1IEQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBEOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDptdWx0aXN0YXR1cyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjMuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2My5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTllYWJkOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjMuc2F4CkBAIC0wLDAgKzEsNjMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChEOm11bHRpc3RhdHVzLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgeG1sbnM6Uj0naHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci8sIDI5KQorU0FYLmVuZEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoUjpiaWdib3gpCitTQVguZW5kRWxlbWVudChSOmJpZ2JveCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChSOmF1dGhvcikKK1NBWC5lbmRFbGVtZW50KFI6YXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAgMS4xIDIwMCBPSywgMTUpCitTQVguZW5kRWxlbWVudChEOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9pLCAzOSkKK1NBWC5lbmRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KFI6YmlnYm94KQorU0FYLmVuZEVsZW1lbnQoUjpiaWdib3gpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUCAxLjEgMjAwIE9LLCAxNSkKK1NBWC5lbmRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KEQ6bXVsdGlzdGF0dXMpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2My5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2My5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwODhmMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXYzLnNheDIKQEAgLTAsMCArMSw2MyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMobXVsdGlzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMiwgeG1sbnM6RD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIHhtbG5zOlI9J2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocmVzcG9uc2UsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLywgMjkpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhiaWdib3gsIFIsICdodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLycsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKGJpZ2JveCwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvJywgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoYXV0aG9yLCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQIDEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9pLCAzOSkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGJpZ2JveCwgUiwgJ2h0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvJywgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoYmlnYm94LCBSLCAnaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQIDEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMobXVsdGlzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWI3Y2ViCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOnByb3BlcnR5dXBkYXRlIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOlo9Imh0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvIj4KKyAgPEQ6c2V0PgorICAgIDxEOnByb3A+CisgICAgICA8WjphdXRob3JzPgorICAgICAgICA8WjpBdXRob3I+SmltIFdoaXRlaGVhZDwvWjpBdXRob3I+CisgICAgICAgIDxaOkF1dGhvcj5Sb3kgRmllbGRpbmc8L1o6QXV0aG9yPgorICAgICAgPC9aOmF1dGhvcnM+CisgICAgPC9EOnByb3A+CisgIDwvRDpzZXQ+CisgIDxEOnJlbW92ZT4KKyAgICA8RDpwcm9wPgorICAgICAgPFo6Q29weXJpZ2h0LU93bmVyLz4KKyAgICA8L0Q6cHJvcD4KKyAgPC9EOnJlbW92ZT4KKzwvRDpwcm9wZXJ0eXVwZGF0ZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc2NDA0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQucmRlCkBAIC0wLDAgKzEsNDcgQEAKKzAgMSBEOnByb3BlcnR5dXBkYXRlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6c2V0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBaOmF1dGhvcnMgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgWjpBdXRob3IgMCAwCis1IDMgI3RleHQgMCAxIEppbSBXaGl0ZWhlYWQKKzQgMTUgWjpBdXRob3IgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgWjpBdXRob3IgMCAwCis1IDMgI3RleHQgMCAxIFJveSBGaWVsZGluZworNCAxNSBaOkF1dGhvciAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFo6YXV0aG9ycyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6c2V0IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cmVtb3ZlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBaOkNvcHlyaWdodC1Pd25lciAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVtb3ZlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDpwcm9wZXJ0eXVwZGF0ZSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc2NDA0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQucmRyCkBAIC0wLDAgKzEsNDcgQEAKKzAgMSBEOnByb3BlcnR5dXBkYXRlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6c2V0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBaOmF1dGhvcnMgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgWjpBdXRob3IgMCAwCis1IDMgI3RleHQgMCAxIEppbSBXaGl0ZWhlYWQKKzQgMTUgWjpBdXRob3IgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgWjpBdXRob3IgMCAwCis1IDMgI3RleHQgMCAxIFJveSBGaWVsZGluZworNCAxNSBaOkF1dGhvciAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFo6YXV0aG9ycyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6c2V0IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cmVtb3ZlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBaOkNvcHlyaWdodC1Pd25lciAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVtb3ZlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDpwcm9wZXJ0eXVwZGF0ZSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI2ODAyNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQuc2F4CkBAIC0wLDAgKzEsNTEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3BlcnR5dXBkYXRlLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgeG1sbnM6Wj0naHR0cDovL3d3dy53My5jb20vc3RhbmRhcmRzL3ozOS41MC8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpzZXQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChaOmF1dGhvcnMpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChaOkF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKEppbSBXaGl0ZWhlYWQsIDEzKQorU0FYLmVuZEVsZW1lbnQoWjpBdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChaOkF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKFJveSBGaWVsZGluZywgMTIpCitTQVguZW5kRWxlbWVudChaOkF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoWjphdXRob3JzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6c2V0KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpyZW1vdmUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChaOkNvcHlyaWdodC1Pd25lcikKK1NBWC5lbmRFbGVtZW50KFo6Q29weXJpZ2h0LU93bmVyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6cmVtb3ZlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChEOnByb3BlcnR5dXBkYXRlKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjQuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGZiOGFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NC5zYXgyCkBAIC0wLDAgKzEsNTEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHByb3BlcnR5dXBkYXRlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDIsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCB4bWxuczpaPSdodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHNldCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvcnMsIFosICdodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKEF1dGhvciwgWiwgJ2h0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEppbSBXaGl0ZWhlYWQsIDEzKQorU0FYLmVuZEVsZW1lbnROcyhBdXRob3IsIFosICdodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKEF1dGhvciwgWiwgJ2h0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFJveSBGaWVsZGluZywgMTIpCitTQVguZW5kRWxlbWVudE5zKEF1dGhvciwgWiwgJ2h0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3JzLCBaLCAnaHR0cDovL3d3dy53My5jb20vc3RhbmRhcmRzL3ozOS41MC8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzZXQsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocmVtb3ZlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoQ29weXJpZ2h0LU93bmVyLCBaLCAnaHR0cDovL3d3dy53My5jb20vc3RhbmRhcmRzL3ozOS41MC8nLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhDb3B5cmlnaHQtT3duZXIsIFosICdodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlbW92ZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKHByb3BlcnR5dXBkYXRlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhlYmFiOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjUKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDptdWx0aXN0YXR1cyB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIiB4bWxuczpaPSJodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOnByb3A+CisgICAgICA8WjpBdXRob3JzLz4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUC8xLjEgNDIwIE1ldGhvZCBGYWlsdXJlPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpwcm9wPgorICAgICAgPFo6Q29weXJpZ2h0LU93bmVyLz4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUC8xLjEgNDA5IENvbmZsaWN0PC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZWRlc2NyaXB0aW9uPiBDb3B5cmlnaHQgT3duZXIgY2FuIG5vdCBiZSBkZWxldGVkIG9yCithbHRlcmVkLjwvRDpyZXNwb25zZWRlc2NyaXB0aW9uPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY1LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTJkMTc3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NS5yZGUKQEAgLTAsMCArMSw1MCBAQAorMCAxIEQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgWjpBdXRob3JzIDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSA0MjAgTWV0aG9kIEZhaWx1cmUKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgWjpDb3B5cmlnaHQtT3duZXIgMSAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDQwOSBDb25mbGljdAorMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlZGVzY3JpcHRpb24gMCAwCisyIDMgI3RleHQgMCAxICBDb3B5cmlnaHQgT3duZXIgY2FuIG5vdCBiZSBkZWxldGVkIG9yCithbHRlcmVkLgorMSAxNSBEOnJlc3BvbnNlZGVzY3JpcHRpb24gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY1LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTJkMTc3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NS5yZHIKQEAgLTAsMCArMSw1MCBAQAorMCAxIEQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgWjpBdXRob3JzIDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSA0MjAgTWV0aG9kIEZhaWx1cmUKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgWjpDb3B5cmlnaHQtT3duZXIgMSAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDQwOSBDb25mbGljdAorMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlZGVzY3JpcHRpb24gMCAwCisyIDMgI3RleHQgMCAxICBDb3B5cmlnaHQgT3duZXIgY2FuIG5vdCBiZSBkZWxldGVkIG9yCithbHRlcmVkLgorMSAxNSBEOnJlc3BvbnNlZGVzY3JpcHRpb24gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY1LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mzk2N2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NS5zYXgKQEAgLTAsMCArMSw1NCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KEQ6bXVsdGlzdGF0dXMsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCB4bWxuczpaPSdodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoWjpBdXRob3JzKQorU0FYLmVuZEVsZW1lbnQoWjpBdXRob3JzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDQyMCBNZXRob2QgRmFpbHVyZSwgMjcpCitTQVguZW5kRWxlbWVudChEOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChEOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KFo6Q29weXJpZ2h0LU93bmVyKQorU0FYLmVuZEVsZW1lbnQoWjpDb3B5cmlnaHQtT3duZXIpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgNDA5IENvbmZsaWN0LCAyMSkKK1NBWC5lbmRFbGVtZW50KEQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KEQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChEOnJlc3BvbnNlZGVzY3JpcHRpb24pCitTQVguY2hhcmFjdGVycyggQ29weXJpZ2h0IE93bmVyIGNhbiBub3QgYmUgZGUsIDQ3KQorU0FYLmVuZEVsZW1lbnQoRDpyZXNwb25zZWRlc2NyaXB0aW9uKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChEOm11bHRpc3RhdHVzKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjUuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjUuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDYyY2NhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2NS5zYXgyCkBAIC0wLDAgKzEsNTQgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKG11bHRpc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDIsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCB4bWxuczpaPSdodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoQXV0aG9ycywgWiwgJ2h0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvJywgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoQXV0aG9ycywgWiwgJ2h0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgNDIwIE1ldGhvZCBGYWlsdXJlLCAyNykKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZXNwb25zZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKENvcHlyaWdodC1Pd25lciwgWiwgJ2h0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvJywgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoQ29weXJpZ2h0LU93bmVyLCBaLCAnaHR0cDovL3d3dy53My5jb20vc3RhbmRhcmRzL3ozOS41MC8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSA0MDkgQ29uZmxpY3QsIDIxKQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlZGVzY3JpcHRpb24sIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBDb3B5cmlnaHQgT3duZXIgY2FuIG5vdCBiZSBkZSwgNDcpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlZGVzY3JpcHRpb24sIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhtdWx0aXN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMGRlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY2CkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOmhyZWY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3VzZXIveWFyb25nL2Rhdl9kcmFmdHMvCisgICAgICA8L0Q6aHJlZj4KKyAgICA8RDpwcm9wPgorICAgICAgPEQ6cmVzb3VyY2V0eXBlPgorICAgICAgICA8RDpjb2xsZWN0aW9uLz4KKyAgICAgIDwvRDpyZXNvdXJjZXR5cGU+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAgMS4xIDIwMCBPSzwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6aHJlZj4KKyAgICAgIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS91c2VyL3lhcm9uZy9kYXZfZHJhZnRzL2Jhc2UKKyAgICAgIDwvRDpocmVmPgorICAgIDxEOnByb3A+CisgICAgICA8RDpyZXNvdXJjZXR5cGUvPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQIDEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY2LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjYucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNmUzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY2LnJkZQpAQCAtMCwwICsxLDYzIEBACiswIDEgRDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdXNlci95YXJvbmcvZGF2X2RyYWZ0cy8KKyAgICAgIAorMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnByb3AgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6cmVzb3VyY2V0eXBlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIEQ6Y29sbGVjdGlvbiAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IEQ6cmVzb3VyY2V0eXBlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQIDEuMSAyMDAgT0sKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgRDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgCisgICAgICBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdXNlci95YXJvbmcvZGF2X2RyYWZ0cy9iYXNlCisgICAgICAKKzIgMTUgRDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpwcm9wIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBEOnJlc291cmNldHlwZSAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBEOnByb3AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUCAxLjEgMjAwIE9LCisyIDE1IEQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBEOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRDptdWx0aXN0YXR1cyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjYucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Ni5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzI2ZTNjMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjYucmRyCkBAIC0wLDAgKzEsNjMgQEAKKzAgMSBEOm11bHRpc3RhdHVzIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIEQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS91c2VyL3lhcm9uZy9kYXZfZHJhZnRzLworICAgICAgCisyIDE1IEQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6cHJvcCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgRDpyZXNvdXJjZXR5cGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgRDpjb2xsZWN0aW9uIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgRDpyZXNvdXJjZXR5cGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgRDpwcm9wIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAgMS4xIDIwMCBPSworMiAxNSBEOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgRDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBEOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgRDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSAKKyAgICAgIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS91c2VyL3lhcm9uZy9kYXZfZHJhZnRzL2Jhc2UKKyAgICAgIAorMiAxNSBEOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBEOnByb3AgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIEQ6cmVzb3VyY2V0eXBlIDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IEQ6cHJvcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIEQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQIDEuMSAyMDAgT0sKKzIgMTUgRDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IEQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBEOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Ni5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY2LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmE1YjJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Ni5zYXgKQEAgLTAsMCArMSw2NiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KEQ6bXVsdGlzdGF0dXMsIHhtbG5zOkQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3VzZXIvLCA1NSkKK1NBWC5lbmRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpwcm9wKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KEQ6cmVzb3VyY2V0eXBlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoRDpjb2xsZWN0aW9uKQorU0FYLmVuZEVsZW1lbnQoRDpjb2xsZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChEOnJlc291cmNldHlwZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycyhIVFRQIDEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KEQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgaHR0cDovL3d3dy5taWNyb3NvZnQuY28sIDY2KQorU0FYLmVuZEVsZW1lbnQoRDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChEOnByb3ApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoRDpyZXNvdXJjZXR5cGUpCitTQVguZW5kRWxlbWVudChEOnJlc291cmNldHlwZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KEQ6cHJvcCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycyhIVFRQIDEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnQoRDpzdGF0dXMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoRDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoRDptdWx0aXN0YXR1cykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY2LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY2LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE5NTJjNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjYuc2F4MgpAQCAtMCwwICsxLDY2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhtdWx0aXN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAxLCB4bWxuczpEPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocmVzcG9uc2UsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdXNlci8sIDU1KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocHJvcCwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMocmVzb3VyY2V0eXBlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbGxlY3Rpb24sIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoY29sbGVjdGlvbiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKHJlc291cmNldHlwZSwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQIDEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jbywgNjYpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwcm9wLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNvdXJjZXR5cGUsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMocmVzb3VyY2V0eXBlLCBELCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKHByb3AsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzdGF0dXMsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEhUVFAgMS4xIDIwMCBPSywgMTUpCitTQVguZW5kRWxlbWVudE5zKHN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2UsIEQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhtdWx0aXN0YXR1cywgRCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjNGE5NTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY3CkBAIC0wLDAgKzEsMTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGQ6bXVsdGlzdGF0dXMgeG1sbnM6ZD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTE8L2Q6aHJlZj4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UyPC9kOmhyZWY+CisgICAgPGQ6c3RhdHVzPkhUVFAvMS4xIDIwMCBPSzwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLzwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSA0MjAgTWV0aG9kIEZhaWx1cmU8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTM8L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgNDEyIFByZWNvbmRpdGlvbiBGYWlsZWQ8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+Cis8L2Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY3LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjcucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmOTgzMjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY3LnJkZQpAQCAtMCwwICsxLDU3IEBACiswIDEgZDptdWx0aXN0YXR1cyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBkOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMQorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UyCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSAyMDAgT0sKKzIgMTUgZDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci8KKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDQyMCBNZXRob2QgRmFpbHVyZQorMiAxNSBkOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgZDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBkOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMworMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgNDEyIFByZWNvbmRpdGlvbiBGYWlsZWQKKzIgMTUgZDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Ny5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY3LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjk4MzI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Ny5yZHIKQEAgLTAsMCArMSw1NyBAQAorMCAxIGQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTEKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMgorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgMjAwIE9LCisyIDE1IGQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSA0MjAgTWV0aG9kIEZhaWx1cmUKKzIgMTUgZDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTMKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDQxMiBQcmVjb25kaXRpb24gRmFpbGVkCisyIDE1IGQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZDptdWx0aXN0YXR1cyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjcuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Ny5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTMzYTljMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjcuc2F4CkBAIC0wLDAgKzEsNjAgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChkOm11bHRpc3RhdHVzLCB4bWxuczpkPSdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvciwgMzgpCitTQVguZW5kRWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvciwgMzgpCitTQVguZW5kRWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgMjAwIE9LLCAxNSkKK1NBWC5lbmRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLywgMjkpCitTQVguZW5kRWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgNDIwIE1ldGhvZCBGYWlsdXJlLCAyNykKK1NBWC5lbmRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3IsIDM4KQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDQxMiBQcmVjb25kaXRpb24gRmFpbCwgMzIpCitTQVguZW5kRWxlbWVudChkOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkOm11bHRpc3RhdHVzKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjcuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjcuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDUxZTc0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2Ny5zYXgyCkBAIC0wLDAgKzEsNjAgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKG11bHRpc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDEsIHhtbG5zOmQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvciwgMzgpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3IsIDM4KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSAyMDAgT0ssIDE1KQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci8sIDI5KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIVFRQLzEuMSA0MjAgTWV0aG9kIEZhaWx1cmUsIDI3KQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yLCAzOCkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0YXR1cywgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgNDEyIFByZWNvbmRpdGlvbiBGYWlsLCAzMikKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKG11bHRpc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y5OWJhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjgKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZDptdWx0aXN0YXR1cyB4bWxuczpkPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvcmVzb3VyY2UxPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvcmVzb3VyY2UyPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvUjIvRDI8L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgMjAxIENyZWF0ZWQ8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL1IyLzwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSA0MTIgUHJlY29uZGl0aW9uIEZhaWxlZDwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKzwvZDptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjgucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE0MjI1ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjgucmRlCkBAIC0wLDAgKzEsNTEgQEAKKzAgMSBkOm11bHRpc3RhdHVzIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaW5lci9yZXNvdXJjZTEKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvcmVzb3VyY2UyCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyLworMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaW5lci9SMi9EMgorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgMjAxIENyZWF0ZWQKKzIgMTUgZDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL1IyLworMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgNDEyIFByZWNvbmRpdGlvbiBGYWlsZWQKKzIgMTUgZDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkOm11bHRpc3RhdHVzIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY4LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTQyMjVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OC5yZHIKQEAgLTAsMCArMSw1MSBAQAorMCAxIGQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL3Jlc291cmNlMQorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaW5lci9yZXNvdXJjZTIKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL1IyL0QyCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSAyMDEgQ3JlYXRlZAorMiAxNSBkOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgZDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBkOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvUjIvCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6c3RhdHVzIDAgMAorMyAzICN0ZXh0IDAgMSBIVFRQLzEuMSA0MTIgUHJlY29uZGl0aW9uIEZhaWxlZAorMiAxNSBkOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgZDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY4LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjguc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhODEwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY4LnNheApAQCAtMCwwICsxLDU0IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoZDptdWx0aXN0YXR1cywgeG1sbnM6ZD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWksIDQzKQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWksIDQzKQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWksIDM0KQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWksIDM5KQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDIwMSBDcmVhdGVkLCAyMCkKK1NBWC5lbmRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWksIDM3KQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDQxMiBQcmVjb25kaXRpb24gRmFpbCwgMzIpCitTQVguZW5kRWxlbWVudChkOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkOm11bHRpc3RhdHVzKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjguc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjguc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGU1NDdlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OC5zYXgyCkBAIC0wLDAgKzEsNTQgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKG11bHRpc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDEsIHhtbG5zOmQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaSwgNDMpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWksIDQzKQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpLCAzNCkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaSwgMzkpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzdGF0dXMsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDIwMSBDcmVhdGVkLCAyMCkKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaSwgMzcpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzdGF0dXMsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDQxMiBQcmVjb25kaXRpb24gRmFpbCwgMzIpCitTQVguZW5kRWxlbWVudE5zKHN0YXR1cywgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2UsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhtdWx0aXN0YXR1cywgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjkgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlZDYzYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY5CkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGQ6bXVsdGlzdGF0dXMgeG1sbnM6ZD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTE8L2Q6aHJlZj4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UyPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLzwvZDpocmVmPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9DMi9SMjwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSAyMDEgQ3JlYXRlZDwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL0MyPC9kOmhyZWY+CisgICAgPGQ6c3RhdHVzPkhUVFAvMS4xIDQyMCBNZXRob2QgRmFpbHVyZTwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvQzI8L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgNDA5IENvbmZsaWN0PC9kOnN0YXR1cz4KKyAgPC9kOnJlc3BvbnNlPgorPC9kOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY5LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDNhYjk2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OS5yZGUKQEAgLTAsMCArMSw2NyBAQAorMCAxIGQ6bXVsdGlzdGF0dXMgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTEKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMgorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9DMi9SMgorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgMjAxIENyZWF0ZWQKKzIgMTUgZDpzdGF0dXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGQ6cmVzcG9uc2UgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZDpyZXNwb25zZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9DMgorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgNDIwIE1ldGhvZCBGYWlsdXJlCisyIDE1IGQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaW5lci9DMgorMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOnN0YXR1cyAwIDAKKzMgMyAjdGV4dCAwIDEgSFRUUC8xLjEgNDA5IENvbmZsaWN0CisyIDE1IGQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZDptdWx0aXN0YXR1cyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjkucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQzYWI5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RhdjkucmRyCkBAIC0wLDAgKzEsNjcgQEAKKzAgMSBkOm11bHRpc3RhdHVzIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UxCisyIDE1IGQ6aHJlZiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGQ6aHJlZiAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTIKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLworMiAxNSBkOmhyZWYgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvQzIvUjIKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDIwMSBDcmVhdGVkCisyIDE1IGQ6c3RhdHVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkOnJlc3BvbnNlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGQ6cmVzcG9uc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkOmhyZWYgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvQzIKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDQyMCBNZXRob2QgRmFpbHVyZQorMiAxNSBkOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgZDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBkOnJlc3BvbnNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpocmVmIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvQzIKKzIgMTUgZDpocmVmIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZDpzdGF0dXMgMCAwCiszIDMgI3RleHQgMCAxIEhUVFAvMS4xIDQwOSBDb25mbGljdAorMiAxNSBkOnN0YXR1cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgZDpyZXNwb25zZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGQ6bXVsdGlzdGF0dXMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY5LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjkuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMTZiYWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kYXY5LnNheApAQCAtMCwwICsxLDcwIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoZDptdWx0aXN0YXR1cywgeG1sbnM6ZD0naHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3IsIDM4KQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3IsIDM4KQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLywgMjkpCitTQVguZW5kRWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvQywgMzQpCitTQVguZW5kRWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgMjAxIENyZWF0ZWQsIDIwKQorU0FYLmVuZEVsZW1lbnQoZDpzdGF0dXMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoZDpyZXNwb25zZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6aHJlZikKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvQywgMzEpCitTQVguZW5kRWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgNDIwIE1ldGhvZCBGYWlsdXJlLCAyNykKK1NBWC5lbmRFbGVtZW50KGQ6c3RhdHVzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGQ6cmVzcG9uc2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOmhyZWYpCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWksIDM2KQorU0FYLmVuZEVsZW1lbnQoZDpocmVmKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDQwOSBDb25mbGljdCwgMjEpCitTQVguZW5kRWxlbWVudChkOnN0YXR1cykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChkOnJlc3BvbnNlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkOm11bHRpc3RhdHVzKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjkuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Rhdjkuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmU0OTQyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGF2OS5zYXgyCkBAIC0wLDAgKzEsNzAgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKG11bHRpc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDEsIHhtbG5zOmQ9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvciwgMzgpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3IsIDM4KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci8sIDI5KQorU0FYLmVuZEVsZW1lbnROcyhocmVmLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9DLCAzNCkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0YXR1cywgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgMjAxIENyZWF0ZWQsIDIwKQorU0FYLmVuZEVsZW1lbnROcyhzdGF0dXMsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlc3BvbnNlLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlc3BvbnNlLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9DLCAzMSkKK1NBWC5lbmRFbGVtZW50TnMoaHJlZiwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0YXR1cywgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSFRUUC8xLjEgNDIwIE1ldGhvZCBGYWlsdXJlLCAyNykKK1NBWC5lbmRFbGVtZW50TnMoc3RhdHVzLCBkLCAnaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZXNwb25zZSwgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaSwgMzYpCitTQVguZW5kRWxlbWVudE5zKGhyZWYsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzdGF0dXMsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEhUVFAvMS4xIDQwOSBDb25mbGljdCwgMjEpCitTQVguZW5kRWxlbWVudE5zKHN0YXR1cywgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMocmVzcG9uc2UsIGQsICdodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhtdWx0aXN0YXR1cywgZCwgJ2h0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0ci54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE0YWMxNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgRU1QVFk+Cis8IUFUVExJU1QgZG9jIHhtbG5zIENEQVRBICNGSVhFRCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iPgorXT4KKzxkb2MgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIwYTM0ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIueG1sLnJkZQpAQCAtMCwwICsxLDIgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIueG1sLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBhMzRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0ci54bWwucmRyCkBAIC0wLDAgKzEsMiBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0ci54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0ci54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZWY1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyLnhtbC5zYXgKQEAgLTAsMCArMSw5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMSwgLi4uKQorU0FYLmF0dHJpYnV0ZURlY2woZG9jLCB4bWxucywgMSwgNCwgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0ci54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZlYmE0OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIueG1sLnNheDIKQEAgLTAsMCArMSw5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMSwgLi4uKQorU0FYLmF0dHJpYnV0ZURlY2woZG9jLCB4bWxucywgMSwgNCwgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJywgMSwgeG1sbnM9J2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJywgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDFmYzNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0cjIueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgRU1QVFk+Cis8IUFUVExJU1QgZG9jIGRlZmF0dCAoMCB8IDEpICIwIj4KKzwhQVRUTElTVCBkb2MgeG1sbnM6dHN0IENEQVRBICNGSVhFRCAiaHR0cDovL2V4YW1wbGUub3JnIj4KKzwhQVRUTElTVCBkb2MgdHN0OmF0dCAoMCB8IDEpICIxIj4KK10+Cis8ZG9jIHhtbG5zOnRzdD0iaHR0cDovL2V4YW1wbGUub3JnIiBhdHQ9IjEiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIyLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyMi54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGEzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyMi54bWwucmRlCkBAIC0wLDAgKzEsMiBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0cjIueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIyLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIwYTM0ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIyLnhtbC5yZHIKQEAgLTAsMCArMSwyIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyMi54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0cjIueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmY4ZmNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGVmYXR0cjIueG1sLnNheApAQCAtMCwwICsxLDExIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMSwgLi4uKQorU0FYLmF0dHJpYnV0ZURlY2woZG9jLCBkZWZhdHQsIDksIDEsIDAsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGRvYywgeG1sbnM6dHN0LCAxLCA0LCBodHRwOi8vZXhhbXBsZS5vcmcsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGRvYywgdHN0OmF0dCwgOSwgMSwgMSwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYywgYXR0PScxJykKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyMi54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RlZmF0dHIyLnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNzcyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kZWZhdHRyMi54bWwuc2F4MgpAQCAtMCwwICsxLDExIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMSwgLi4uKQorU0FYLmF0dHJpYnV0ZURlY2woZG9jLCBkZWZhdHQsIDksIDEsIDAsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGRvYywgeG1sbnM6dHN0LCAxLCA0LCBodHRwOi8vZXhhbXBsZS5vcmcsIC4uLikKK1NBWC5hdHRyaWJ1dGVEZWNsKGRvYywgdHN0OmF0dCwgOSwgMSwgMSwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAxLCB4bWxuczp0c3Q9J2h0dHA6Ly9leGFtcGxlLm9yZycsIDMsIDIsIGF0dD0nMSIvPi4uLicsIDEsIGRlZmF0dD0nMC4uLicsIDEsIHRzdDphdHQ9JzEuLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGlhMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA3YmQ3MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTEKQEAgLTAsMCArMSw5OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZGlhOmRpYWdyYW0geG1sbnM6ZGlhPSJodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8iPgorICA8ZGlhOmRpYWdyYW1kYXRhPgorICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImJhY2tncm91bmQiPgorICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4KKyAgICA8L2RpYTphdHRyaWJ1dGU+CisgIDwvZGlhOmRpYWdyYW1kYXRhPgorICA8ZGlhOmxheWVyIG5hbWU9IkJhY2tncm91bmQiIHZpc2libGU9InRydWUiPgorICAgIDxkaWE6b2JqZWN0IHR5cGU9IlN0YW5kYXJkIC0gTGluZSIgdmVyc2lvbj0iMCIgaWQ9Ik8wIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMS45NSw2Ljg1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjEuOSw2Ljg7MTEsOC41NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29ubl9lbmRwb2ludHMiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMS45NSw2Ljg1Ii8+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw4LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjAuMSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9zdHlsZSI+CisgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InN0YXJ0X2Fycm93Ij4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZW5kX2Fycm93Ij4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTpjb25uZWN0aW9ucz4KKyAgICAgICAgPGRpYTpjb25uZWN0aW9uIGhhbmRsZT0iMSIgdG89Ik8yIiBjb25uZWN0aW9uPSIzIi8+CisgICAgICA8L2RpYTpjb25uZWN0aW9ucz4KKyAgICA8L2RpYTpvYmplY3Q+CisgICAgPGRpYTpvYmplY3QgdHlwZT0iU3RhbmRhcmQgLSBUZXh0IiB2ZXJzaW9uPSIwIiBpZD0iTzEiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSI0LjgsNC43NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KKyAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSIyLjU3OSwzLjk2MzU5OzcuMDIxLDQuOTYzNTkiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHQiPgorICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJ0ZXh0Ij4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJzdHJpbmciPgorICAgICAgICAgICAgPGRpYTpzdHJpbmcgdmFsPSJzZGZzZGZnIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImZvbnQiPgorICAgICAgICAgICAgPGRpYTpmb250IG5hbWU9IkNvdXJpZXIiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iaGVpZ2h0Ij4KKyAgICAgICAgICAgIDxkaWE6cmVhbCB2YWw9IjEiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0icG9zIj4KKyAgICAgICAgICAgIDxkaWE6cG9pbnQgdmFsPSI0LjgsNC43NSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb2xvciI+CisgICAgICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJhbGlnbm1lbnQiPgorICAgICAgICAgICAgPGRpYTplbnVtIHZhbD0iMSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgPC9kaWE6Y29tcG9zaXRlPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgIDwvZGlhOm9iamVjdD4KKyAgICA8ZGlhOm9iamVjdCB0eXBlPSJTdGFuZGFyZCAtIEJveCIgdmVyc2lvbj0iMCIgaWQ9Ik8yIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTAuOTUsNy41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjEwLjksNy40NTsxMy4wNSw5LjU1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX2Nvcm5lciI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw3LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgdmFsPSIyLjA1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX2hlaWdodCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjIiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImJvcmRlcl93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjAuMSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYm9yZGVyX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImlubmVyX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfc3R5bGUiPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgPC9kaWE6b2JqZWN0PgorICA8L2RpYTpsYXllcj4KKzwvZGlhOmRpYWdyYW0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTEucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NjczMjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnJkZQpAQCAtMCwwICsxLDI5MiBAQAorMCAxIGRpYTpkaWFncmFtIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGRpYTpkaWFncmFtZGF0YSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTpjb2xvciAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6YXR0cmlidXRlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkaWE6ZGlhZ3JhbWRhdGEgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZGlhOmxheWVyIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOm9iamVjdCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWN0YW5nbGUgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpjb2xvciAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlYWwgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTplbnVtIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6ZW51bSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmVudW0gMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6Y29ubmVjdGlvbnMgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbm5lY3Rpb24gMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6Y29ubmVjdGlvbnMgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgZGlhOm9iamVjdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRpYTpvYmplY3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnBvaW50IDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVjdGFuZ2xlIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6Y29tcG9zaXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOnN0cmluZyAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOmZvbnQgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIGRpYTphdHRyaWJ1dGUgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIGRpYTpyZWFsIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDE1IGRpYTphdHRyaWJ1dGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6cG9pbnQgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIGRpYTphdHRyaWJ1dGUgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIGRpYTpjb2xvciAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOmVudW0gMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMTUgZGlhOmNvbXBvc2l0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgZGlhOm9iamVjdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRpYTpvYmplY3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnBvaW50IDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVjdGFuZ2xlIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWFsIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVhbCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlYWwgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpjb2xvciAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbG9yIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6ZW51bSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgZGlhOm9iamVjdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgZGlhOmxheWVyIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZGlhOmRpYWdyYW0gMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTEucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NjczMjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnJkcgpAQCAtMCwwICsxLDI5MiBAQAorMCAxIGRpYTpkaWFncmFtIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGRpYTpkaWFncmFtZGF0YSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTpjb2xvciAxIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6YXR0cmlidXRlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkaWE6ZGlhZ3JhbWRhdGEgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZGlhOmxheWVyIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOm9iamVjdCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWN0YW5nbGUgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpjb2xvciAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlYWwgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTplbnVtIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6ZW51bSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmVudW0gMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6Y29ubmVjdGlvbnMgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbm5lY3Rpb24gMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6Y29ubmVjdGlvbnMgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgZGlhOm9iamVjdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRpYTpvYmplY3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnBvaW50IDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVjdGFuZ2xlIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6Y29tcG9zaXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOnN0cmluZyAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOmZvbnQgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIGRpYTphdHRyaWJ1dGUgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIGRpYTpyZWFsIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDE1IGRpYTphdHRyaWJ1dGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6cG9pbnQgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIGRpYTphdHRyaWJ1dGUgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIGRpYTpjb2xvciAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOmVudW0gMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMTUgZGlhOmNvbXBvc2l0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgZGlhOm9iamVjdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRpYTpvYmplY3QgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnBvaW50IDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVjdGFuZ2xlIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWFsIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVhbCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlYWwgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpjb2xvciAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbG9yIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6ZW51bSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgZGlhOm9iamVjdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgZGlhOmxheWVyIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZGlhOmRpYWdyYW0gMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTEuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNjVkNjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnNheApAQCAtMCwwICsxLDMyMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGRpYTpkaWFncmFtLCB4bWxuczpkaWE9J2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZGlhZ3JhbWRhdGEpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2JhY2tncm91bmQnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTpjb2xvciwgdmFsPScjZmZmZmZmJykKK1NBWC5lbmRFbGVtZW50KGRpYTpjb2xvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoZGlhOmRpYWdyYW1kYXRhKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmxheWVyLCBuYW1lPSdCYWNrZ3JvdW5kJywgdmlzaWJsZT0ndHJ1ZScpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRpYTpvYmplY3QsIHR5cGU9J1N0YW5kYXJkIC0gTGluZScsIHZlcnNpb249JzAnLCBpZD0nTzAnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J29ial9wb3MnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnBvaW50LCB2YWw9JzEuOTUsNi44NScpCitTQVguZW5kRWxlbWVudChkaWE6cG9pbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nb2JqX2JiJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpyZWN0YW5nbGUsIHZhbD0nMS45LDYuODsxMSw4LjU1JykKK1NBWC5lbmRFbGVtZW50KGRpYTpyZWN0YW5nbGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nY29ubl9lbmRwb2ludHMnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnBvaW50LCB2YWw9JzEuOTUsNi44NScpCitTQVguZW5kRWxlbWVudChkaWE6cG9pbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cG9pbnQsIHZhbD0nMTAuOTUsOC41JykKK1NBWC5lbmRFbGVtZW50KGRpYTpwb2ludCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdsaW5lX2NvbG9yJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpjb2xvciwgdmFsPScjMDAwMDAwJykKK1NBWC5lbmRFbGVtZW50KGRpYTpjb2xvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdsaW5lX3dpZHRoJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpyZWFsLCB2YWw9JzAuMScpCitTQVguZW5kRWxlbWVudChkaWE6cmVhbCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdsaW5lX3N0eWxlJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTplbnVtLCB2YWw9JzAnKQorU0FYLmVuZEVsZW1lbnQoZGlhOmVudW0pCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nc3RhcnRfYXJyb3cnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmVudW0sIHZhbD0nMCcpCitTQVguZW5kRWxlbWVudChkaWE6ZW51bSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdlbmRfYXJyb3cnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmVudW0sIHZhbD0nMCcpCitTQVguZW5kRWxlbWVudChkaWE6ZW51bSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6Y29ubmVjdGlvbnMpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6Y29ubmVjdGlvbiwgaGFuZGxlPScxJywgdG89J08yJywgY29ubmVjdGlvbj0nMycpCitTQVguZW5kRWxlbWVudChkaWE6Y29ubmVjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmNvbm5lY3Rpb25zKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoZGlhOm9iamVjdCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOm9iamVjdCwgdHlwZT0nU3RhbmRhcmQgLSBUZXh0JywgdmVyc2lvbj0nMCcsIGlkPSdPMScpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nb2JqX3BvcycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cG9pbnQsIHZhbD0nNC44LDQuNzUnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnBvaW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J29ial9iYicpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cmVjdGFuZ2xlLCB2YWw9JzIuNTc5LDMuOTYzNTk7Ny4wMjEsNC45NjM1OScpCitTQVguZW5kRWxlbWVudChkaWE6cmVjdGFuZ2xlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J3RleHQnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmNvbXBvc2l0ZSwgdHlwZT0ndGV4dCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdzdHJpbmcnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6c3RyaW5nLCB2YWw9J3NkZnNkZmcnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnN0cmluZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nZm9udCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGRpYTpmb250LCBuYW1lPSdDb3VyaWVyJykKK1NBWC5lbmRFbGVtZW50KGRpYTpmb250KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdoZWlnaHQnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cmVhbCwgdmFsPScxJykKK1NBWC5lbmRFbGVtZW50KGRpYTpyZWFsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdwb3MnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cG9pbnQsIHZhbD0nNC44LDQuNzUnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnBvaW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdjb2xvcicpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGRpYTpjb2xvciwgdmFsPScjMDAwMDAwJykKK1NBWC5lbmRFbGVtZW50KGRpYTpjb2xvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nYWxpZ25tZW50JykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmVudW0sIHZhbD0nMScpCitTQVguZW5kRWxlbWVudChkaWE6ZW51bSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5lbmRFbGVtZW50KGRpYTpjb21wb3NpdGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChkaWE6b2JqZWN0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6b2JqZWN0LCB0eXBlPSdTdGFuZGFyZCAtIEJveCcsIHZlcnNpb249JzAnLCBpZD0nTzInKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J29ial9wb3MnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnBvaW50LCB2YWw9JzEwLjk1LDcuNScpCitTQVguZW5kRWxlbWVudChkaWE6cG9pbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nb2JqX2JiJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpyZWN0YW5nbGUsIHZhbD0nMTAuOSw3LjQ1OzEzLjA1LDkuNTUnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnJlY3RhbmdsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdlbGVtX2Nvcm5lcicpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cG9pbnQsIHZhbD0nMTAuOTUsNy41JykKK1NBWC5lbmRFbGVtZW50KGRpYTpwb2ludCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdlbGVtX3dpZHRoJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpyZWFsLCB2YWw9JzIuMDUnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnJlYWwpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nZWxlbV9oZWlnaHQnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnJlYWwsIHZhbD0nMicpCitTQVguZW5kRWxlbWVudChkaWE6cmVhbCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdib3JkZXJfd2lkdGgnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnJlYWwsIHZhbD0nMC4xJykKK1NBWC5lbmRFbGVtZW50KGRpYTpyZWFsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2JvcmRlcl9jb2xvcicpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6Y29sb3IsIHZhbD0nIzAwMDAwMCcpCitTQVguZW5kRWxlbWVudChkaWE6Y29sb3IpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0naW5uZXJfY29sb3InKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmNvbG9yLCB2YWw9JyNmZmZmZmYnKQorU0FYLmVuZEVsZW1lbnQoZGlhOmNvbG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2xpbmVfc3R5bGUnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmVudW0sIHZhbD0nMCcpCitTQVguZW5kRWxlbWVudChkaWE6ZW51bSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KGRpYTpvYmplY3QpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoZGlhOmxheWVyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkaWE6ZGlhZ3JhbSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWExLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgyMWM5YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTEuc2F4MgpAQCAtMCwwICsxLDMyMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMoZGlhZ3JhbSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMSwgeG1sbnM6ZGlhPSdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhkaWFncmFtZGF0YSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2JhY2suLi4nLCAxMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JyNmZmYuLi4nLCA3KQorU0FYLmVuZEVsZW1lbnROcyhjb2xvciwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoZGlhZ3JhbWRhdGEsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGxheWVyLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAyLCAwLCBuYW1lPSdCYWNrLi4uJywgMTAsIHZpc2libGU9J3RydWUuLi4nLCA0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKG9iamVjdCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMywgMCwgdHlwZT0nU3Rhbi4uLicsIDE1LCB2ZXJzaW9uPScwIiBpLi4uJywgMSwgaWQ9J08wIj4uLi4nLCAyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdvYmpfLi4uJywgNykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMS45NS4uLicsIDkpCitTQVguZW5kRWxlbWVudE5zKHBvaW50LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nb2JqXy4uLicsIDYpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlY3RhbmdsZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxLjksLi4uJywgMTUpCitTQVguZW5kRWxlbWVudE5zKHJlY3RhbmdsZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2Nvbm4uLi4nLCAxNCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMS45NS4uLicsIDkpCitTQVguZW5kRWxlbWVudE5zKHBvaW50LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxMC45Li4uJywgOSkKK1NBWC5lbmRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdsaW5lLi4uJywgMTApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JyMwMDAuLi4nLCA3KQorU0FYLmVuZEVsZW1lbnROcyhjb2xvciwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2xpbmUuLi4nLCAxMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScwLjEiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2xpbmUuLi4nLCAxMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoZW51bSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZW51bSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J3N0YXIuLi4nLCAxMSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoZW51bSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScwIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZW51bSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2VuZF8uLi4nLCA5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbm5lY3Rpb25zLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb25uZWN0aW9uLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAzLCAwLCBoYW5kbGU9JzEiIHQuLi4nLCAxLCB0bz0nTzIiIC4uLicsIDIsIGNvbm5lY3Rpb249JzMiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhjb25uZWN0aW9uLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGNvbm5lY3Rpb25zLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhvYmplY3QsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMob2JqZWN0LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAzLCAwLCB0eXBlPSdTdGFuLi4uJywgMTUsIHZlcnNpb249JzAiIGkuLi4nLCAxLCBpZD0nTzEiPi4uLicsIDIpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J29ial8uLi4nLCA3KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPSc0LjgsLi4uJywgOCkKK1NBWC5lbmRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdvYmpfLi4uJywgNikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocmVjdGFuZ2xlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzIuNTcuLi4nLCAyNykKK1NBWC5lbmRFbGVtZW50TnMocmVjdGFuZ2xlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0ndGV4dC4uLicsIDQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbXBvc2l0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdHlwZT0ndGV4dC4uLicsIDQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nc3RyaS4uLicsIDYpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50TnMoc3RyaW5nLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9J3NkZnMuLi4nLCA3KQorU0FYLmVuZEVsZW1lbnROcyhzdHJpbmcsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nZm9udC4uLicsIDQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50TnMoZm9udCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nQ291ci4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKGZvbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0naGVpZy4uLicsIDYpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdwb3MiLi4uJywgMykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPSc0LjgsLi4uJywgOCkKK1NBWC5lbmRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nY29sby4uLicsIDUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50TnMoY29sb3IsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nIzAwMC4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2FsaWcuLi4nLCA5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGVudW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKGVudW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnROcyhjb21wb3NpdGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhvYmplY3QsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMob2JqZWN0LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAzLCAwLCB0eXBlPSdTdGFuLi4uJywgMTQsIHZlcnNpb249JzAiIGkuLi4nLCAxLCBpZD0nTzIiPi4uLicsIDIpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J29ial8uLi4nLCA3KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxMC45Li4uJywgOSkKK1NBWC5lbmRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdvYmpfLi4uJywgNikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocmVjdGFuZ2xlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzEwLjkuLi4nLCAyMCkKK1NBWC5lbmRFbGVtZW50TnMocmVjdGFuZ2xlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nZWxlbS4uLicsIDExKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxMC45Li4uJywgOSkKK1NBWC5lbmRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdlbGVtLi4uJywgMTApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlYWwsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMi4wNS4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHJlYWwsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdlbGVtLi4uJywgMTEpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlYWwsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMiIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHJlYWwsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdib3JkLi4uJywgMTIpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlYWwsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMC4xIi4uLicsIDMpCitTQVguZW5kRWxlbWVudE5zKHJlYWwsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdib3JkLi4uJywgMTIpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JyMwMDAuLi4nLCA3KQorU0FYLmVuZEVsZW1lbnROcyhjb2xvciwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2lubmUuLi4nLCAxMSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoY29sb3IsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nI2ZmZi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nbGluZS4uLicsIDEwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMob2JqZWN0LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMobGF5ZXIsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZGlhZ3JhbSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kaWEyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGlhMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDdiZDczCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGlhMgpAQCAtMCwwICsxLDk5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyI+CisgIDxkaWE6ZGlhZ3JhbWRhdGE+CisgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYmFja2dyb3VuZCI+CisgICAgICA8ZGlhOmNvbG9yIHZhbD0iI2ZmZmZmZiIvPgorICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgPC9kaWE6ZGlhZ3JhbWRhdGE+CisgIDxkaWE6bGF5ZXIgbmFtZT0iQmFja2dyb3VuZCIgdmlzaWJsZT0idHJ1ZSI+CisgICAgPGRpYTpvYmplY3QgdHlwZT0iU3RhbmRhcmQgLSBMaW5lIiB2ZXJzaW9uPSIwIiBpZD0iTzAiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxLjk1LDYuODUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iMS45LDYuODsxMSw4LjU1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb25uX2VuZHBvaW50cyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxLjk1LDYuODUiLz4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEwLjk1LDguNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9jb2xvciI+CisgICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX3dpZHRoIj4KKyAgICAgICAgPGRpYTpyZWFsIHZhbD0iMC4xIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX3N0eWxlIj4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ic3RhcnRfYXJyb3ciPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbmRfYXJyb3ciPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmNvbm5lY3Rpb25zPgorICAgICAgICA8ZGlhOmNvbm5lY3Rpb24gaGFuZGxlPSIxIiB0bz0iTzIiIGNvbm5lY3Rpb249IjMiLz4KKyAgICAgIDwvZGlhOmNvbm5lY3Rpb25zPgorICAgIDwvZGlhOm9iamVjdD4KKyAgICA8ZGlhOm9iamVjdCB0eXBlPSJTdGFuZGFyZCAtIFRleHQiIHZlcnNpb249IjAiIGlkPSJPMSI+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjQuOCw0Ljc1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjIuNTc5LDMuOTYzNTk7Ny4wMjEsNC45NjM1OSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0idGV4dCI+CisgICAgICAgIDxkaWE6Y29tcG9zaXRlIHR5cGU9InRleHQiPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InN0cmluZyI+CisgICAgICAgICAgICA8ZGlhOnN0cmluZyB2YWw9InNkZnNkZmciLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZm9udCI+CisgICAgICAgICAgICA8ZGlhOmZvbnQgbmFtZT0iQ291cmllciIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJoZWlnaHQiPgorICAgICAgICAgICAgPGRpYTpyZWFsIHZhbD0iMSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJwb3MiPgorICAgICAgICAgICAgPGRpYTpwb2ludCB2YWw9IjQuOCw0Ljc1Ii8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImNvbG9yIj4KKyAgICAgICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAwIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImFsaWdubWVudCI+CisgICAgICAgICAgICA8ZGlhOmVudW0gdmFsPSIxIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICA8L2RpYTpjb21wb3NpdGU+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgPC9kaWE6b2JqZWN0PgorICAgIDxkaWE6b2JqZWN0IHR5cGU9IlN0YW5kYXJkIC0gQm94IiB2ZXJzaW9uPSIwIiBpZD0iTzIiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw3LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iMTAuOSw3LjQ1OzEzLjA1LDkuNTUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fY29ybmVyIj4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEwLjk1LDcuNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZWxlbV93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjIuMDUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1faGVpZ2h0Ij4KKyAgICAgICAgPGRpYTpyZWFsIHZhbD0iMiIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYm9yZGVyX3dpZHRoIj4KKyAgICAgICAgPGRpYTpyZWFsIHZhbD0iMC4xIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJib3JkZXJfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iaW5uZXJfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iI2ZmZmZmZiIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9zdHlsZSI+CisgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICA8L2RpYTpvYmplY3Q+CisgIDwvZGlhOmxheWVyPgorPC9kaWE6ZGlhZ3JhbT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGlhMi5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc2NzMyNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIucmRlCkBAIC0wLDAgKzEsMjkyIEBACiswIDEgZGlhOmRpYWdyYW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZGlhOmRpYWdyYW1kYXRhIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmNvbG9yIDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IGRpYTphdHRyaWJ1dGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGRpYTpkaWFncmFtZGF0YSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBkaWE6bGF5ZXIgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkaWE6b2JqZWN0IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlY3RhbmdsZSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnBvaW50IDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbG9yIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVhbCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmVudW0gMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTplbnVtIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6ZW51bSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTpjb25uZWN0aW9ucyAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6Y29ubmVjdGlvbiAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTpjb25uZWN0aW9ucyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6b2JqZWN0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOm9iamVjdCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWN0YW5nbGUgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpjb21wb3NpdGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6c3RyaW5nIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDE1IGRpYTphdHRyaWJ1dGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6Zm9udCAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOnJlYWwgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIGRpYTphdHRyaWJ1dGUgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIGRpYTpwb2ludCAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOmNvbG9yIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDE1IGRpYTphdHRyaWJ1dGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6ZW51bSAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxNSBkaWE6Y29tcG9zaXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6b2JqZWN0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOm9iamVjdCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWN0YW5nbGUgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlYWwgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWFsIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVhbCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbG9yIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6Y29sb3IgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTplbnVtIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6b2JqZWN0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkaWE6bGF5ZXIgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkaWE6ZGlhZ3JhbSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGlhMi5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc2NzMyNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIucmRyCkBAIC0wLDAgKzEsMjkyIEBACiswIDEgZGlhOmRpYWdyYW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZGlhOmRpYWdyYW1kYXRhIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmNvbG9yIDEgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IGRpYTphdHRyaWJ1dGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGRpYTpkaWFncmFtZGF0YSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBkaWE6bGF5ZXIgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkaWE6b2JqZWN0IDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlY3RhbmdsZSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnBvaW50IDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbG9yIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVhbCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmVudW0gMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTplbnVtIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6ZW51bSAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTpjb25uZWN0aW9ucyAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6Y29ubmVjdGlvbiAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTpjb25uZWN0aW9ucyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6b2JqZWN0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOm9iamVjdCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWN0YW5nbGUgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpjb21wb3NpdGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6c3RyaW5nIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDE1IGRpYTphdHRyaWJ1dGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6Zm9udCAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOnJlYWwgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxIGRpYTphdHRyaWJ1dGUgMCAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAgIAorNiAxIGRpYTpwb2ludCAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgICAgCis2IDEgZGlhOmNvbG9yIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgCis1IDE1IGRpYTphdHRyaWJ1dGUgMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgICAKKzUgMSBkaWE6YXR0cmlidXRlIDAgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgICAgICAgICAKKzYgMSBkaWE6ZW51bSAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAgICAgIAorNSAxNSBkaWE6YXR0cmlidXRlIDAgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxNSBkaWE6Y29tcG9zaXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6b2JqZWN0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGlhOm9iamVjdCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cG9pbnQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWN0YW5nbGUgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpwb2ludCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOnJlYWwgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTpyZWFsIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6cmVhbCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IGRpYTphdHRyaWJ1dGUgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIGRpYTphdHRyaWJ1dGUgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgZGlhOmNvbG9yIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgZGlhOmF0dHJpYnV0ZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBkaWE6Y29sb3IgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBkaWE6YXR0cmlidXRlIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBkaWE6YXR0cmlidXRlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIGRpYTplbnVtIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgZGlhOmF0dHJpYnV0ZSAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBkaWE6b2JqZWN0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkaWE6bGF5ZXIgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkaWE6ZGlhZ3JhbSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGlhMi5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY2NWQ2MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIuc2F4CkBAIC0wLDAgKzEsMzIzIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmRpYWdyYW0sIHhtbG5zOmRpYT0naHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGRpYTpkaWFncmFtZGF0YSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nYmFja2dyb3VuZCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmNvbG9yLCB2YWw9JyNmZmZmZmYnKQorU0FYLmVuZEVsZW1lbnQoZGlhOmNvbG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChkaWE6ZGlhZ3JhbWRhdGEpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6bGF5ZXIsIG5hbWU9J0JhY2tncm91bmQnLCB2aXNpYmxlPSd0cnVlJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOm9iamVjdCwgdHlwZT0nU3RhbmRhcmQgLSBMaW5lJywgdmVyc2lvbj0nMCcsIGlkPSdPMCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nb2JqX3BvcycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cG9pbnQsIHZhbD0nMS45NSw2Ljg1JykKK1NBWC5lbmRFbGVtZW50KGRpYTpwb2ludCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdvYmpfYmInKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnJlY3RhbmdsZSwgdmFsPScxLjksNi44OzExLDguNTUnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnJlY3RhbmdsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdjb25uX2VuZHBvaW50cycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cG9pbnQsIHZhbD0nMS45NSw2Ljg1JykKK1NBWC5lbmRFbGVtZW50KGRpYTpwb2ludCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpwb2ludCwgdmFsPScxMC45NSw4LjUnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnBvaW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2xpbmVfY29sb3InKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmNvbG9yLCB2YWw9JyMwMDAwMDAnKQorU0FYLmVuZEVsZW1lbnQoZGlhOmNvbG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2xpbmVfd2lkdGgnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnJlYWwsIHZhbD0nMC4xJykKK1NBWC5lbmRFbGVtZW50KGRpYTpyZWFsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2xpbmVfc3R5bGUnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmVudW0sIHZhbD0nMCcpCitTQVguZW5kRWxlbWVudChkaWE6ZW51bSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdzdGFydF9hcnJvdycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZW51bSwgdmFsPScwJykKK1NBWC5lbmRFbGVtZW50KGRpYTplbnVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2VuZF9hcnJvdycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZW51bSwgdmFsPScwJykKK1NBWC5lbmRFbGVtZW50KGRpYTplbnVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTpjb25uZWN0aW9ucykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpjb25uZWN0aW9uLCBoYW5kbGU9JzEnLCB0bz0nTzInLCBjb25uZWN0aW9uPSczJykKK1NBWC5lbmRFbGVtZW50KGRpYTpjb25uZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6Y29ubmVjdGlvbnMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChkaWE6b2JqZWN0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6b2JqZWN0LCB0eXBlPSdTdGFuZGFyZCAtIFRleHQnLCB2ZXJzaW9uPScwJywgaWQ9J08xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdvYmpfcG9zJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpwb2ludCwgdmFsPSc0LjgsNC43NScpCitTQVguZW5kRWxlbWVudChkaWE6cG9pbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nb2JqX2JiJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpyZWN0YW5nbGUsIHZhbD0nMi41NzksMy45NjM1OTs3LjAyMSw0Ljk2MzU5JykKK1NBWC5lbmRFbGVtZW50KGRpYTpyZWN0YW5nbGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0ndGV4dCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6Y29tcG9zaXRlLCB0eXBlPSd0ZXh0JykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J3N0cmluZycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGRpYTpzdHJpbmcsIHZhbD0nc2Rmc2RmZycpCitTQVguZW5kRWxlbWVudChkaWE6c3RyaW5nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdmb250JykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmZvbnQsIG5hbWU9J0NvdXJpZXInKQorU0FYLmVuZEVsZW1lbnQoZGlhOmZvbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2hlaWdodCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGRpYTpyZWFsLCB2YWw9JzEnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnJlYWwpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J3BvcycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50KGRpYTpwb2ludCwgdmFsPSc0LjgsNC43NScpCitTQVguZW5kRWxlbWVudChkaWE6cG9pbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2NvbG9yJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmNvbG9yLCB2YWw9JyMwMDAwMDAnKQorU0FYLmVuZEVsZW1lbnQoZGlhOmNvbG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdhbGlnbm1lbnQnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZW51bSwgdmFsPScxJykKK1NBWC5lbmRFbGVtZW50KGRpYTplbnVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLmVuZEVsZW1lbnQoZGlhOmNvbXBvc2l0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5lbmRFbGVtZW50KGRpYTpvYmplY3QpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRpYTpvYmplY3QsIHR5cGU9J1N0YW5kYXJkIC0gQm94JywgdmVyc2lvbj0nMCcsIGlkPSdPMicpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nb2JqX3BvcycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cG9pbnQsIHZhbD0nMTAuOTUsNy41JykKK1NBWC5lbmRFbGVtZW50KGRpYTpwb2ludCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdvYmpfYmInKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnJlY3RhbmdsZSwgdmFsPScxMC45LDcuNDU7MTMuMDUsOS41NScpCitTQVguZW5kRWxlbWVudChkaWE6cmVjdGFuZ2xlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2VsZW1fY29ybmVyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpwb2ludCwgdmFsPScxMC45NSw3LjUnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnBvaW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2VsZW1fd2lkdGgnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoZGlhOnJlYWwsIHZhbD0nMi4wNScpCitTQVguZW5kRWxlbWVudChkaWE6cmVhbCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdlbGVtX2hlaWdodCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cmVhbCwgdmFsPScyJykKK1NBWC5lbmRFbGVtZW50KGRpYTpyZWFsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KGRpYTphdHRyaWJ1dGUsIG5hbWU9J2JvcmRlcl93aWR0aCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6cmVhbCwgdmFsPScwLjEnKQorU0FYLmVuZEVsZW1lbnQoZGlhOnJlYWwpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nYm9yZGVyX2NvbG9yJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KGRpYTpjb2xvciwgdmFsPScjMDAwMDAwJykKK1NBWC5lbmRFbGVtZW50KGRpYTpjb2xvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6YXR0cmlidXRlLCBuYW1lPSdpbm5lcl9jb2xvcicpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6Y29sb3IsIHZhbD0nI2ZmZmZmZicpCitTQVguZW5kRWxlbWVudChkaWE6Y29sb3IpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KGRpYTphdHRyaWJ1dGUpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnQoZGlhOmF0dHJpYnV0ZSwgbmFtZT0nbGluZV9zdHlsZScpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZW51bSwgdmFsPScwJykKK1NBWC5lbmRFbGVtZW50KGRpYTplbnVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChkaWE6YXR0cmlidXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoZGlhOm9iamVjdCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChkaWE6bGF5ZXIpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGRpYTpkaWFncmFtKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2RpYTIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODIxYzliCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZGlhMi5zYXgyCkBAIC0wLDAgKzEsMzIzIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhkaWFncmFtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAxLCB4bWxuczpkaWE9J2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRpYWdyYW1kYXRhLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nYmFjay4uLicsIDEwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoY29sb3IsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nI2ZmZi4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhkaWFncmFtZGF0YSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMobGF5ZXIsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDIsIDAsIG5hbWU9J0JhY2suLi4nLCAxMCwgdmlzaWJsZT0ndHJ1ZS4uLicsIDQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMob2JqZWN0LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAzLCAwLCB0eXBlPSdTdGFuLi4uJywgMTUsIHZlcnNpb249JzAiIGkuLi4nLCAxLCBpZD0nTzAiPi4uLicsIDIpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J29ial8uLi4nLCA3KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxLjk1Li4uJywgOSkKK1NBWC5lbmRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdvYmpfLi4uJywgNikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocmVjdGFuZ2xlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzEuOSwuLi4nLCAxNSkKK1NBWC5lbmRFbGVtZW50TnMocmVjdGFuZ2xlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nY29ubi4uLicsIDE0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxLjk1Li4uJywgOSkKK1NBWC5lbmRFbGVtZW50TnMocG9pbnQsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvaW50LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzEwLjkuLi4nLCA5KQorU0FYLmVuZEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2xpbmUuLi4nLCAxMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoY29sb3IsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nIzAwMC4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nbGluZS4uLicsIDEwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhyZWFsLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzAuMSIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyhyZWFsLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nbGluZS4uLicsIDEwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nc3Rhci4uLicsIDExKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhlbnVtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nZW5kXy4uLicsIDkpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKGVudW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKGVudW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoY29ubmVjdGlvbnMsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbm5lY3Rpb24sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDMsIDAsIGhhbmRsZT0nMSIgdC4uLicsIDEsIHRvPSdPMiIgLi4uJywgMiwgY29ubmVjdGlvbj0nMyIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKGNvbm5lY3Rpb24sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoY29ubmVjdGlvbnMsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKG9iamVjdCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhvYmplY3QsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDMsIDAsIHR5cGU9J1N0YW4uLi4nLCAxNSwgdmVyc2lvbj0nMCIgaS4uLicsIDEsIGlkPSdPMSI+Li4uJywgMikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nb2JqXy4uLicsIDcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvaW50LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzQuOCwuLi4nLCA4KQorU0FYLmVuZEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J29ial8uLi4nLCA2KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhyZWN0YW5nbGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMi41Ny4uLicsIDI3KQorU0FYLmVuZEVsZW1lbnROcyhyZWN0YW5nbGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSd0ZXh0Li4uJywgNCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoY29tcG9zaXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB0eXBlPSd0ZXh0Li4uJywgNCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdzdHJpLi4uJywgNikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnROcyhzdHJpbmcsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nc2Rmcy4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKHN0cmluZywgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdmb250Li4uJywgNCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnROcyhmb250LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdDb3VyLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnMoZm9udCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdoZWlnLi4uJywgNikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnROcyhyZWFsLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzEiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhyZWFsLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgLCAxMSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J3BvcyIuLi4nLCAzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICAgICAsIDEzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvaW50LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzQuOCwuLi4nLCA4KQorU0FYLmVuZEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdjb2xvLi4uJywgNSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICAgLCAxMykKK1NBWC5zdGFydEVsZW1lbnROcyhjb2xvciwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScjMDAwLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnMoY29sb3IsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAsIDExKQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nYWxpZy4uLicsIDkpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgICAgICwgMTMpCitTQVguc3RhcnRFbGVtZW50TnMoZW51bSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZW51bSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAgICwgMTEpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguZW5kRWxlbWVudE5zKGNvbXBvc2l0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKG9iamVjdCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhvYmplY3QsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDMsIDAsIHR5cGU9J1N0YW4uLi4nLCAxNCwgdmVyc2lvbj0nMCIgaS4uLicsIDEsIGlkPSdPMiI+Li4uJywgMikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0nb2JqXy4uLicsIDcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvaW50LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzEwLjkuLi4nLCA5KQorU0FYLmVuZEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J29ial8uLi4nLCA2KQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhyZWN0YW5nbGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMTAuOS4uLicsIDIwKQorU0FYLmVuZEVsZW1lbnROcyhyZWN0YW5nbGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdlbGVtLi4uJywgMTEpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvaW50LCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCB2YWw9JzEwLjkuLi4nLCA5KQorU0FYLmVuZEVsZW1lbnROcyhwb2ludCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2VsZW0uLi4nLCAxMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScyLjA1Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2VsZW0uLi4nLCAxMSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScyIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2JvcmQuLi4nLCAxMikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScwLjEiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnMocmVhbCwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLmVuZEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhhdHRyaWJ1dGUsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIG5hbWU9J2JvcmQuLi4nLCAxMikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoY29sb3IsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nIzAwMC4uLicsIDcpCitTQVguZW5kRWxlbWVudE5zKGNvbG9yLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF0dHJpYnV0ZSwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgbmFtZT0naW5uZS4uLicsIDExKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb2xvciwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMSwgMCwgdmFsPScjZmZmLi4uJywgNykKK1NBWC5lbmRFbGVtZW50TnMoY29sb3IsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAwLCAxLCAwLCBuYW1lPSdsaW5lLi4uJywgMTApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKGVudW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIHZhbD0nMCIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKGVudW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50TnMoYXR0cmlidXRlLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhvYmplY3QsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhsYXllciwgZGlhLCAnaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhkaWFncmFtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMTFmZmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgTUVNTyBQVUJMSUMgIi0vL1NHTUxTT1VSQ0UvL0RURCBNRU1PLy9FTiIgImh0dHA6Ly93d3cuc2dtbHNvdXJjZS5jb20vZHRkcy9tZW1vLmR0ZCI+Cis8TUVNTz4KKzwvTUVNTz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMS5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiMzliOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEucmRlCkBAIC0wLDAgKzEsNSBAQAorMCAxMCBNRU1PIDAgMAorMCAxIE1FTU8gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBNRU1PIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmIzOWI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMS5yZHIKQEAgLTAsMCArMSw1IEBACiswIDEwIE1FTU8gMCAwCiswIDEgTUVNTyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IE1FTU8gMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmOGQ2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxLnNheApAQCAtMCwwICsxLDkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KE1FTU8sIC0vL1NHTUxTT1VSQ0UvL0RURCBNRU1PLy9FTiwgaHR0cDovL3d3dy5zZ21sc291cmNlLmNvbS9kdGRzL21lbW8uZHRkKQorU0FYLmV4dGVybmFsU3Vic2V0KE1FTU8sIC0vL1NHTUxTT1VSQ0UvL0RURCBNRU1PLy9FTiwgaHR0cDovL3d3dy5zZ21sc291cmNlLmNvbS9kdGRzL21lbW8uZHRkKQorU0FYLnN0YXJ0RWxlbWVudChNRU1PKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChNRU1PKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2JlNWUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMS5zYXgyCkBAIC0wLDAgKzEsOSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoTUVNTywgLS8vU0dNTFNPVVJDRS8vRFREIE1FTU8vL0VOLCBodHRwOi8vd3d3LnNnbWxzb3VyY2UuY29tL2R0ZHMvbWVtby5kdGQpCitTQVguZXh0ZXJuYWxTdWJzZXQoTUVNTywgLS8vU0dNTFNPVVJDRS8vRFREIE1FTU8vL0VOLCBodHRwOi8vd3d3LnNnbWxzb3VyY2UuY29tL2R0ZHMvbWVtby5kdGQpCitTQVguc3RhcnRFbGVtZW50TnMoTUVNTywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhNRU1PLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEwIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM3ZDVlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEwCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKChhIHwgYikrICwgYyAsIGQpKj4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KKzwhRUxFTUVOVCBjICgjUENEQVRBKT4KKzwhRUxFTUVOVCBkICgjUENEQVRBKT4KK10+Cis8ZG9jPjxiPlRoaXM8L2I+PGM+IGlzIGE8L2M+PGQ+IHZhbGlkIGRvY3VtZW50PC9kPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTAucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTAucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkZjI0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMC5yZGUKQEAgLTAsMCArMSwxMiBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDAgMAorMSAxIGIgMCAwCisyIDMgI3RleHQgMCAxIFRoaXMKKzEgMTUgYiAwIDAKKzEgMSBjIDAgMAorMiAzICN0ZXh0IDAgMSAgaXMgYQorMSAxNSBjIDAgMAorMSAxIGQgMCAwCisyIDMgI3RleHQgMCAxICB2YWxpZCBkb2N1bWVudAorMSAxNSBkIDAgMAorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRmMjRjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEwLnJkcgpAQCAtMCwwICsxLDEyIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDEgYiAwIDAKKzIgMyAjdGV4dCAwIDEgVGhpcworMSAxNSBiIDAgMAorMSAxIGMgMCAwCisyIDMgI3RleHQgMCAxICBpcyBhCisxIDE1IGMgMCAwCisxIDEgZCAwIDAKKzIgMyAjdGV4dCAwIDEgIHZhbGlkIGRvY3VtZW50CisxIDE1IGQgMCAwCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEwLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEwLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2ZkMDQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTAuc2F4CkBAIC0wLDAgKzEsMjEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCA0LCAuLi4pCitTQVguZWxlbWVudERlY2woYSwgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGIsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChjLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woZCwgMywgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKFRoaXMsIDQpCitTQVguZW5kRWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChjKQorU0FYLmNoYXJhY3RlcnMoIGlzIGEsIDUpCitTQVguZW5kRWxlbWVudChjKQorU0FYLnN0YXJ0RWxlbWVudChkKQorU0FYLmNoYXJhY3RlcnMoIHZhbGlkIGRvY3VtZW50LCAxNSkKK1NBWC5lbmRFbGVtZW50KGQpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTAuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEwLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YxNWEwOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEwLnNheDIKQEAgLTAsMCArMSwyMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbGVtZW50RGVjbChkb2MsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChhLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woYiwgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGMsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChkLCAzLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguc3RhcnRFbGVtZW50TnMoYiwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFRoaXMsIDQpCitTQVguZW5kRWxlbWVudE5zKGIsIE5VTEwsIE5VTEwpCitTQVguc3RhcnRFbGVtZW50TnMoYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBpcyBhLCA1KQorU0FYLmVuZEVsZW1lbnROcyhjLCBOVUxMLCBOVUxMKQorU0FYLnN0YXJ0RWxlbWVudE5zKGQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggdmFsaWQgZG9jdW1lbnQsIDE1KQorU0FYLmVuZEVsZW1lbnROcyhkLCBOVUxMLCBOVUxMKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGRmOGFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTEKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoI1BDREFUQSk+Cis8IUFUVExJU1QgZG9jIHZhbCBDREFUQSAjSU1QTElFRD4KK10+Cis8ZG9jIHZhbD0idjEiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDExLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDExLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBhMzRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTEucmRlCkBAIC0wLDAgKzEsMiBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTEucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGEzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMS5yZHIKQEAgLTAsMCArMSwyIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJiZWUwYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDExLnNheApAQCAtMCwwICsxLDkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCAzLCAuLi4pCitTQVguYXR0cmlidXRlRGVjbChkb2MsIHZhbCwgMSwgMywgTlVMTCwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYywgdmFsPSd2MScpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTEuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDExLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTljYWU1ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDExLnNheDIKQEAgLTAsMCArMSw5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMywgLi4uKQorU0FYLmF0dHJpYnV0ZURlY2woZG9jLCB2YWwsIDEsIDMsIE5VTEwsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmFsPSd2MSIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkMTI2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEyCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIFlOICciWWVzIic+Cis8IUVOVElUWSBXaGF0SGVTYWlkICJIZSBzYWlkICZZTjsiPgorXT4KKzxkb2M+JldoYXRIZVNhaWQ7PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMi5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMi5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJkNGNjMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEyLnJkZQpAQCAtMCwwICsxLDQgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMyAjdGV4dCAwIDEgSGUgc2FpZCAiWWVzIgorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMi5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMi5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM5NGE0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEyLnJkcgpAQCAtMCwwICsxLDQgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgNSBXaGF0SGVTYWlkIDAgMAorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMi5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMi5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIwNTRjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEyLnNheApAQCAtMCwwICsxLDE3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVudGl0eURlY2woWU4sIDEsIChudWxsKSwgKG51bGwpLCAiWWVzIikKK1NBWC5nZXRFbnRpdHkoWU4pCitTQVguZW50aXR5RGVjbChXaGF0SGVTYWlkLCAxLCAobnVsbCksIChudWxsKSwgSGUgc2FpZCAmWU47KQorU0FYLmdldEVudGl0eShXaGF0SGVTYWlkKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5nZXRFbnRpdHkoV2hhdEhlU2FpZCkKK1NBWC5jaGFyYWN0ZXJzKEhlIHNhaWQgLCA4KQorU0FYLmdldEVudGl0eShZTikKK1NBWC5jaGFyYWN0ZXJzKCJZZXMiLCA1KQorU0FYLnJlZmVyZW5jZShZTikKK1NBWC5yZWZlcmVuY2UoV2hhdEhlU2FpZCkKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMi5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTVkOGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTIuc2F4MgpAQCAtMCwwICsxLDE3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVudGl0eURlY2woWU4sIDEsIChudWxsKSwgKG51bGwpLCAiWWVzIikKK1NBWC5nZXRFbnRpdHkoWU4pCitTQVguZW50aXR5RGVjbChXaGF0SGVTYWlkLCAxLCAobnVsbCksIChudWxsKSwgSGUgc2FpZCAmWU47KQorU0FYLmdldEVudGl0eShXaGF0SGVTYWlkKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmdldEVudGl0eShXaGF0SGVTYWlkKQorU0FYLmNoYXJhY3RlcnMoSGUgc2FpZCAsIDgpCitTQVguZ2V0RW50aXR5KFlOKQorU0FYLmNoYXJhY3RlcnMoIlllcyIsIDUpCitTQVgucmVmZXJlbmNlKFlOKQorU0FYLnJlZmVyZW5jZShXaGF0SGVTYWlkKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQxMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODE0MTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTMKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0gY29tbWVudCBiZWZvcmUgdGhlIERURCAtLT4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyBBTlk+CitdPgorPCEtLSBjb21tZW50IGFmdGVyIHRoZSBEVEQgLS0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTY3Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTMucmRlCkBAIC0wLDAgKzEsNCBAQAorMCA4ICNjb21tZW50IDAgMSAgY29tbWVudCBiZWZvcmUgdGhlIERURCAKKzAgMTAgZG9jIDAgMAorMCA4ICNjb21tZW50IDAgMSAgY29tbWVudCBhZnRlciB0aGUgRFREIAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTY3Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTMucmRyCkBAIC0wLDAgKzEsNCBAQAorMCA4ICNjb21tZW50IDAgMSAgY29tbWVudCBiZWZvcmUgdGhlIERURCAKKzAgMTAgZG9jIDAgMAorMCA4ICNjb21tZW50IDAgMSAgY29tbWVudCBhZnRlciB0aGUgRFREIAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjEyNDVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTMuc2F4CkBAIC0wLDAgKzEsMTAgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmNvbW1lbnQoIGNvbW1lbnQgYmVmb3JlIHRoZSBEVEQgKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCAyLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5jb21tZW50KCBjb21tZW50IGFmdGVyIHRoZSBEVEQgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMTMuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYzMTUwMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDEzLnNheDIKQEAgLTAsMCArMSwxMCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggY29tbWVudCBiZWZvcmUgdGhlIERURCApCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbGVtZW50RGVjbChkb2MsIDIsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmNvbW1lbnQoIGNvbW1lbnQgYWZ0ZXIgdGhlIERURCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIxZmQ5NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDIKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoI1BDREFUQSk+CitdPgorPGRvYz5UaGlzIGlzIGEgdmFsaWQgZG9jdW1lbnQgITwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMi5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQyLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGNiZjJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMi5yZGUKQEAgLTAsMCArMSw0IEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDMgI3RleHQgMCAxIFRoaXMgaXMgYSB2YWxpZCBkb2N1bWVudCAhCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDIucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMi5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBjYmYyYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDIucmRyCkBAIC0wLDAgKzEsNCBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDAgMAorMSAzICN0ZXh0IDAgMSBUaGlzIGlzIGEgdmFsaWQgZG9jdW1lbnQgIQorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQyLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDIuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzNDM0ODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQyLnNheApAQCAtMCwwICsxLDkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCAzLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnQoZG9jKQorU0FYLmNoYXJhY3RlcnMoVGhpcyBpcyBhIHZhbGlkIGRvY3VtZW50ICEsIDI2KQorU0FYLmVuZEVsZW1lbnQoZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjZiNTY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMi5zYXgyCkBAIC0wLDAgKzEsOSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbGVtZW50RGVjbChkb2MsIDMsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFRoaXMgaXMgYSB2YWxpZCBkb2N1bWVudCAhLCAyNikKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ODFlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQzCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgQU5ZPgorXT4KKzxkb2M+VGhpcyBpcyBhIHZhbGlkIGRvY3VtZW50ICE8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDMucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMy5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBjYmYyYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDMucmRlCkBAIC0wLDAgKzEsNCBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDAgMAorMSAzICN0ZXh0IDAgMSBUaGlzIGlzIGEgdmFsaWQgZG9jdW1lbnQgIQorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQzLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDMucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwY2JmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQzLnJkcgpAQCAtMCwwICsxLDQgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMyAjdGV4dCAwIDEgVGhpcyBpcyBhIHZhbGlkIGRvY3VtZW50ICEKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMy5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQzLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzUzOWQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkMy5zYXgKQEAgLTAsMCArMSw5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMiwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5jaGFyYWN0ZXJzKFRoaXMgaXMgYSB2YWxpZCBkb2N1bWVudCAhLCAyNikKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQzLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQzLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYyNWFkNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDMuc2F4MgpAQCAtMCwwICsxLDkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCAyLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhUaGlzIGlzIGEgdmFsaWQgZG9jdW1lbnQgISwgMjYpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2YyNDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIEVNUFRZPgorXT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ0LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBhMzRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNC5yZGUKQEAgLTAsMCArMSwyIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ0LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDQucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGEzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ0LnJkcgpAQCAtMCwwICsxLDIgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDQuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZiNGM3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDQuc2F4CkBAIC0wLDAgKzEsOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbGVtZW50RGVjbChkb2MsIDEsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNjZkNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ0LnNheDIKQEAgLTAsMCArMSw4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMSwgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwOWQ1MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDUKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoI1BDREFUQSB8IGEgfCBiKSo+Cis8IUVMRU1FTlQgYSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+CitdPgorPGRvYz48YT5UaGlzPC9hPiBpcyBhIDxiPnZhbGlkPC9iPiBkb2N1bWVudDwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ1LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Njc3M2EzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNS5yZGUKQEAgLTAsMCArMSwxMSBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDAgMAorMSAxIGEgMCAwCisyIDMgI3RleHQgMCAxIFRoaXMKKzEgMTUgYSAwIDAKKzEgMyAjdGV4dCAwIDEgIGlzIGEgCisxIDEgYiAwIDAKKzIgMyAjdGV4dCAwIDEgdmFsaWQKKzEgMTUgYiAwIDAKKzEgMyAjdGV4dCAwIDEgIGRvY3VtZW50CiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDUucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY3NzNhMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDUucmRyCkBAIC0wLDAgKzEsMTEgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMSBhIDAgMAorMiAzICN0ZXh0IDAgMSBUaGlzCisxIDE1IGEgMCAwCisxIDMgI3RleHQgMCAxICBpcyBhIAorMSAxIGIgMCAwCisyIDMgI3RleHQgMCAxIHZhbGlkCisxIDE1IGIgMCAwCisxIDMgI3RleHQgMCAxICBkb2N1bWVudAorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ1LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDUuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkYzhkYjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ1LnNheApAQCAtMCwwICsxLDE4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGEsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChiLCAzLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnQoZG9jKQorU0FYLnN0YXJ0RWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoVGhpcywgNCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyggaXMgYSAsIDYpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyh2YWxpZCwgNSkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyggZG9jdW1lbnQsIDkpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0OGMwMWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ1LnNheDIKQEAgLTAsMCArMSwxOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbGVtZW50RGVjbChkb2MsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChhLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woYiwgMywgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLnN0YXJ0RWxlbWVudE5zKGEsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhUaGlzLCA0KQorU0FYLmVuZEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIGlzIGEgLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGIsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh2YWxpZCwgNSkKK1NBWC5lbmRFbGVtZW50TnMoYiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCBkb2N1bWVudCwgOSkKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMmQ5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ2CkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEgfCBiKSo+Cis8IUVMRU1FTlQgYSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+CitdPgorPGRvYz48YT5UaGlzPC9hPjxiPiBpcyBhIHZhbGlkPC9iPjxhPiBkb2N1bWVudDwvYT48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDYucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNi5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk0MWU2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDYucmRlCkBAIC0wLDAgKzEsMTIgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMSBhIDAgMAorMiAzICN0ZXh0IDAgMSBUaGlzCisxIDE1IGEgMCAwCisxIDEgYiAwIDAKKzIgMyAjdGV4dCAwIDEgIGlzIGEgdmFsaWQKKzEgMTUgYiAwIDAKKzEgMSBhIDAgMAorMiAzICN0ZXh0IDAgMSAgZG9jdW1lbnQKKzEgMTUgYSAwIDAKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNi5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ2LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTQxZTZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNi5yZHIKQEAgLTAsMCArMSwxMiBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDAgMAorMSAxIGEgMCAwCisyIDMgI3RleHQgMCAxIFRoaXMKKzEgMTUgYSAwIDAKKzEgMSBiIDAgMAorMiAzICN0ZXh0IDAgMSAgaXMgYSB2YWxpZAorMSAxNSBiIDAgMAorMSAxIGEgMCAwCisyIDMgI3RleHQgMCAxICBkb2N1bWVudAorMSAxNSBhIDAgMAorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ2LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDYuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5MDg4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ2LnNheApAQCAtMCwwICsxLDE5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKGEsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChiLCAzLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnQoZG9jKQorU0FYLnN0YXJ0RWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoVGhpcywgNCkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguc3RhcnRFbGVtZW50KGIpCitTQVguY2hhcmFjdGVycyggaXMgYSB2YWxpZCwgMTEpCitTQVguZW5kRWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChhKQorU0FYLmNoYXJhY3RlcnMoIGRvY3VtZW50LCA5KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ2LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ2LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU3ODkyNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDYuc2F4MgpAQCAtMCwwICsxLDE5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKGEsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChiLCAzLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguc3RhcnRFbGVtZW50TnMoYSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFRoaXMsIDQpCitTQVguZW5kRWxlbWVudE5zKGEsIE5VTEwsIE5VTEwpCitTQVguc3RhcnRFbGVtZW50TnMoYiwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBpcyBhIHZhbGlkLCAxMSkKK1NBWC5lbmRFbGVtZW50TnMoYiwgTlVMTCwgTlVMTCkKK1NBWC5zdGFydEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIGRvY3VtZW50LCA5KQorU0FYLmVuZEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE0MDc1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDcKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSAsIGIpKj4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KK10+Cis8ZG9jPjxhPlRoaXM8L2E+PGI+IGlzIGEgdmFsaWQgZG9jdW1lbnQ8L2I+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ3LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDcucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Nzc2MTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ3LnJkZQpAQCAtMCwwICsxLDkgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMSBhIDAgMAorMiAzICN0ZXh0IDAgMSBUaGlzCisxIDE1IGEgMCAwCisxIDEgYiAwIDAKKzIgMyAjdGV4dCAwIDEgIGlzIGEgdmFsaWQgZG9jdW1lbnQKKzEgMTUgYiAwIDAKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNy5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ3LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDc3NjEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNy5yZHIKQEAgLTAsMCArMSw5IEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDEgYSAwIDAKKzIgMyAjdGV4dCAwIDEgVGhpcworMSAxNSBhIDAgMAorMSAxIGIgMCAwCisyIDMgI3RleHQgMCAxICBpcyBhIHZhbGlkIGRvY3VtZW50CisxIDE1IGIgMCAwCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDcuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNy5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJmNmU1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDcuc2F4CkBAIC0wLDAgKzEsMTYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCA0LCAuLi4pCitTQVguZWxlbWVudERlY2woYSwgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGIsIDMsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguc3RhcnRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycyhUaGlzLCA0KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKCBpcyBhIHZhbGlkIGRvY3VtZW50LCAyMCkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNy5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkNy5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNDcxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ3LnNheDIKQEAgLTAsMCArMSwxNiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbGVtZW50RGVjbChkb2MsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChhLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woYiwgMywgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLnN0YXJ0RWxlbWVudE5zKGEsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhUaGlzLCA0KQorU0FYLmVuZEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMKQorU0FYLnN0YXJ0RWxlbWVudE5zKGIsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggaXMgYSB2YWxpZCBkb2N1bWVudCwgMjApCitTQVguZW5kRWxlbWVudE5zKGIsIE5VTEwsIE5VTEwpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTY1NWY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgoYSB8IGIpICwgKGMgfCBkKSkrPgorPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGQgKCNQQ0RBVEEpPgorXT4KKzxkb2M+PGI+VGhpczwvYj48Yz4gaXMgYSB2YWxpZCBkb2N1bWVudDwvYz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDgucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVlZTAxMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDgucmRlCkBAIC0wLDAgKzEsOSBAQAorMCAxMCBkb2MgMCAwCiswIDEgZG9jIDAgMAorMSAxIGIgMCAwCisyIDMgI3RleHQgMCAxIFRoaXMKKzEgMTUgYiAwIDAKKzEgMSBjIDAgMAorMiAzICN0ZXh0IDAgMSAgaXMgYSB2YWxpZCBkb2N1bWVudAorMSAxNSBjIDAgMAorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ4LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDgucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZWUwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ4LnJkcgpAQCAtMCwwICsxLDkgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMSBiIDAgMAorMiAzICN0ZXh0IDAgMSBUaGlzCisxIDE1IGIgMCAwCisxIDEgYyAwIDAKKzIgMyAjdGV4dCAwIDEgIGlzIGEgdmFsaWQgZG9jdW1lbnQKKzEgMTUgYyAwIDAKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ4LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDk0OWEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOC5zYXgKQEAgLTAsMCArMSwxOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbGVtZW50RGVjbChkb2MsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChhLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woYiwgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGMsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChkLCAzLCAuLi4pCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnQoZG9jKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmNoYXJhY3RlcnMoVGhpcywgNCkKK1NBWC5lbmRFbGVtZW50KGIpCitTQVguc3RhcnRFbGVtZW50KGMpCitTQVguY2hhcmFjdGVycyggaXMgYSB2YWxpZCBkb2N1bWVudCwgMjApCitTQVguZW5kRWxlbWVudChjKQorU0FYLmVuZEVsZW1lbnQoZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDguc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDguc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzhiNjBkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOC5zYXgyCkBAIC0wLDAgKzEsMTggQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCA0LCAuLi4pCitTQVguZWxlbWVudERlY2woYSwgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGIsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChjLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woZCwgMywgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLnN0YXJ0RWxlbWVudE5zKGIsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhUaGlzLCA0KQorU0FYLmVuZEVsZW1lbnROcyhiLCBOVUxMLCBOVUxMKQorU0FYLnN0YXJ0RWxlbWVudE5zKGMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggaXMgYSB2YWxpZCBkb2N1bWVudCwgMjApCitTQVguZW5kRWxlbWVudE5zKGMsIE5VTEwsIE5VTEwpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ5IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWNjMWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOQpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgoYSB8IGIgfCBjKSAsIGQpPz4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KKzwhRUxFTUVOVCBjICgjUENEQVRBKT4KKzwhRUxFTUVOVCBkICgjUENEQVRBKT4KK10+Cis8ZG9jPjxiPlRoaXM8L2I+PGQ+IGlzIGEgdmFsaWQgZG9jdW1lbnQ8L2Q+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ5LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDkucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMmIyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ5LnJkZQpAQCAtMCwwICsxLDkgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMSBiIDAgMAorMiAzICN0ZXh0IDAgMSBUaGlzCisxIDE1IGIgMCAwCisxIDEgZCAwIDAKKzIgMyAjdGV4dCAwIDEgIGlzIGEgdmFsaWQgZG9jdW1lbnQKKzEgMTUgZCAwIDAKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ5LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTJiMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOS5yZHIKQEAgLTAsMCArMSw5IEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDEgYiAwIDAKKzIgMyAjdGV4dCAwIDEgVGhpcworMSAxNSBiIDAgMAorMSAxIGQgMCAwCisyIDMgI3RleHQgMCAxICBpcyBhIHZhbGlkIGRvY3VtZW50CisxIDE1IGQgMCAwCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDkuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZHRkOS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM4ZjRkMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDkuc2F4CkBAIC0wLDAgKzEsMTggQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZWxlbWVudERlY2woZG9jLCA0LCAuLi4pCitTQVguZWxlbWVudERlY2woYSwgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGIsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChjLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woZCwgMywgLi4uKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5zdGFydEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKFRoaXMsIDQpCitTQVguZW5kRWxlbWVudChiKQorU0FYLnN0YXJ0RWxlbWVudChkKQorU0FYLmNoYXJhY3RlcnMoIGlzIGEgdmFsaWQgZG9jdW1lbnQsIDIwKQorU0FYLmVuZEVsZW1lbnQoZCkKK1NBWC5lbmRFbGVtZW50KGRvYykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ5LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9kdGQ5LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTViNTM3ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2R0ZDkuc2F4MgpAQCAtMCwwICsxLDE4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVsZW1lbnREZWNsKGRvYywgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKGEsIDMsIC4uLikKK1NBWC5lbGVtZW50RGVjbChiLCAzLCAuLi4pCitTQVguZWxlbWVudERlY2woYywgMywgLi4uKQorU0FYLmVsZW1lbnREZWNsKGQsIDMsIC4uLikKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5zdGFydEVsZW1lbnROcyhiLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoVGhpcywgNCkKK1NBWC5lbmRFbGVtZW50TnMoYiwgTlVMTCwgTlVMTCkKK1NBWC5zdGFydEVsZW1lbnROcyhkLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIGlzIGEgdmFsaWQgZG9jdW1lbnQsIDIwKQorU0FYLmVuZEVsZW1lbnROcyhkLCBOVUxMLCBOVUxMKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZWJjZGljXzU2NjAxMi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lYmNkaWNfNTY2MDEyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTNhZGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZWJjZGljXzU2NjAxMi54bWwKQEAgLTAsMCArMSBAQAorTG+nlJNApYWZoomWlX5/8Uvwf0CFlYOWhImVh35/ycLUYPHx9PF/b24lTKOFoqNAgaOjmX5/SuBaf2FuJQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2ViY2RpY181NjYwMTIueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ViY2RpY181NjYwMTIueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmJjMThiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZWJjZGljXzU2NjAxMi54bWwucmRlCkBAIC0wLDAgKzEgQEAKKzAgMSB0ZXN0IDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZWJjZGljXzU2NjAxMi54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZWJjZGljXzU2NjAxMi54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYmMxOGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lYmNkaWNfNTY2MDEyLnhtbC5yZHIKQEAgLTAsMCArMSBAQAorMCAxIHRlc3QgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lYmNkaWNfNTY2MDEyLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lYmNkaWNfNTY2MDEyLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VjNmQ1YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ViY2RpY181NjYwMTIueG1sLnNheApAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudCh0ZXN0LCBhdHRyPSfDhMOWw5wnKQorU0FYLmVuZEVsZW1lbnQodGVzdCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lYmNkaWNfNTY2MDEyLnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZWJjZGljXzU2NjAxMi54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGE0Y2UwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZWJjZGljXzU2NjAxMi54bWwuc2F4MgpAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHRlc3QsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGF0dHI9J8OEw5YuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyh0ZXN0LCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VtcHR5Y2RhdGEueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW1wdHljZGF0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM5ODM4OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VtcHR5Y2RhdGEueG1sCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8IVtDREFUQVtdXT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VtcHR5Y2RhdGEueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VtcHR5Y2RhdGEueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzhiNzRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW1wdHljZGF0YS54bWwucmRlCkBAIC0wLDAgKzEsNyBAQAorMCAxIGh0bWwgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSA0ICNjZGF0YS1zZWN0aW9uIDAgMSAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGh0bWwgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbXB0eWNkYXRhLnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbXB0eWNkYXRhLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM4Yjc0ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VtcHR5Y2RhdGEueG1sLnJkcgpAQCAtMCwwICsxLDcgQEAKKzAgMSBodG1sIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgNCAjY2RhdGEtc2VjdGlvbiAwIDEgCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBodG1sIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW1wdHljZGF0YS54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW1wdHljZGF0YS54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NTg3YzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbXB0eWNkYXRhLnhtbC5zYXgKQEAgLTAsMCArMSwxMCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGh0bWwsIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnBjZGF0YSgsIDApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGh0bWwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW1wdHljZGF0YS54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VtcHR5Y2RhdGEueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y4MDI5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VtcHR5Y2RhdGEueG1sLnNheDIKQEAgLTAsMCArMSwxMCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMoaHRtbCwgTlVMTCwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAxLCB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsIDAsIDApCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5wY2RhdGEoLCAwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGh0bWwsIE5VTEwsICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTI0NzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MQpAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIEVYQU1QTEUgU1lTVEVNICJleGFtcGxlLmR0ZCIgWworPCFFTlRJVFkgeG1sICJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI+CitdPgorPEVYQU1QTEU+CisgICAgJnhtbDsKKzwvRVhBTVBMRT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MS5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgwNmQyNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEucmRlCkBAIC0wLDAgKzEsNiBAQAorMCAxMCBFWEFNUExFIDAgMAorMCAxIEVYQU1QTEUgMCAwCisxIDMgI3RleHQgMCAxIAorICAgIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlCisKKzAgMTUgRVhBTVBMRSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY5YzJjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEucmRyCkBAIC0wLDAgKzEsOCBAQAorMCAxMCBFWEFNUExFIDAgMAorMCAxIEVYQU1QTEUgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzEgNSB4bWwgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBFWEFNUExFIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDUzMzRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MS5zYXgKQEAgLTAsMCArMSwxNiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5lbnRpdHlEZWNsKHhtbCwgMSwgKG51bGwpLCAobnVsbCksIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlKQorU0FYLmdldEVudGl0eSh4bWwpCitTQVguZXh0ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5zdGFydEVsZW1lbnQoRVhBTVBMRSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5nZXRFbnRpdHkoeG1sKQorU0FYLmNoYXJhY3RlcnMoRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UsIDI2KQorU0FYLnJlZmVyZW5jZSh4bWwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KEVYQU1QTEUpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3M2Y0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxLnNheDIKQEAgLTAsMCArMSwxNiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5lbnRpdHlEZWNsKHhtbCwgMSwgKG51bGwpLCAobnVsbCksIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlKQorU0FYLmdldEVudGl0eSh4bWwpCitTQVguZXh0ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5zdGFydEVsZW1lbnROcyhFWEFNUExFLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmdldEVudGl0eSh4bWwpCitTQVguY2hhcmFjdGVycyhFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSwgMjYpCitTQVgucmVmZXJlbmNlKHhtbCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhFWEFNUExFLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEwIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ2ZDE5ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEwCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBybm9kZSBbCis8IUVMRU1FTlQgcm5vZGUgKGYpPgorPCFFTEVNRU5UIGYgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGYgYXR0MSBDREFUQSAjRklYRUQgIkoiPgorPCFFTlRJVFkgZiAiCisgICA8Zj4KKyAgIGhlbGxvIHdvcmxkCisgICA8L2Y+CisgICAiPgorXT4KKzxybm9kZT4KKyAgICZmOworPC9ybm9kZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEwLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEwLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjk1OTRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTAucmRlCkBAIC0wLDAgKzEsMTQgQEAKKzAgMTAgcm5vZGUgMCAwCiswIDEgcm5vZGUgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorICAgCisxIDEgZiAwIDAKKzIgMyAjdGV4dCAwIDEgCisgICBoZWxsbyB3b3JsZAorICAgCisxIDE1IGYgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorCiswIDE1IHJub2RlIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTAucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTAucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZWRiNTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMC5yZHIKQEAgLTAsMCArMSw4IEBACiswIDEwIHJub2RlIDAgMAorMCAxIHJub2RlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgNSBmIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgcm5vZGUgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVlZDIwYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEwLnNheApAQCAtMCwwICsxLDMxIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChybm9kZSwgLCApCitTQVguZWxlbWVudERlY2wocm5vZGUsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChmLCAzLCAuLi4pCitTQVguYXR0cmlidXRlRGVjbChmLCBhdHQxLCAxLCA0LCBKLCAuLi4pCitTQVguZW50aXR5RGVjbChmLCAxLCAobnVsbCksIChudWxsKSwgCisgICA8Zj4KKyAgIGhlbGxvIHdvcmxkCisgICA8L2Y+CisgICApCitTQVguZ2V0RW50aXR5KGYpCitTQVguZXh0ZXJuYWxTdWJzZXQocm5vZGUsICwgKQorU0FYLnN0YXJ0RWxlbWVudChybm9kZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLmdldEVudGl0eShmKQorU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KGYpCitTQVguY2hhcmFjdGVycygKKyAgIGhlbGxvIHdvcmxkCisgICAsIDE5KQorU0FYLmVuZEVsZW1lbnQoZikKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnJlZmVyZW5jZShmKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChybm9kZSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTAuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTM3OWZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTAuc2F4MgpAQCAtMCwwICsxLDMxIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChybm9kZSwgLCApCitTQVguZWxlbWVudERlY2wocm5vZGUsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChmLCAzLCAuLi4pCitTQVguYXR0cmlidXRlRGVjbChmLCBhdHQxLCAxLCA0LCBKLCAuLi4pCitTQVguZW50aXR5RGVjbChmLCAxLCAobnVsbCksIChudWxsKSwgCisgICA8Zj4KKyAgIGhlbGxvIHdvcmxkCisgICA8L2Y+CisgICApCitTQVguZ2V0RW50aXR5KGYpCitTQVguZXh0ZXJuYWxTdWJzZXQocm5vZGUsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJub2RlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguZ2V0RW50aXR5KGYpCitTQVguaWdub3JhYmxlV2hpdGVzcGFjZSgKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhmLCBOVUxMLCBOVUxMLCAwLCAxLCAxLCBhdHQxPSdKLi4uJywgMSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgaGVsbG8gd29ybGQKKyAgICwgMTkpCitTQVguZW5kRWxlbWVudE5zKGYsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5yZWZlcmVuY2UoZikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhybm9kZSwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZWUwMjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMQpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIG5ld2wgIiYjMTM7Ij4KK10+Cis8ZG9jPiZuZXdsOzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTEucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTEucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2YzNjMjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMS5yZGUKQEAgLTAsMCArMSw1IEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRhNzU0YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDExLnJkcgpAQCAtMCwwICsxLDQgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgNSBuZXdsIDAgMAorMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUzNmE2YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDExLnNheApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTEuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODA3NzhmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTEuc2F4MgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MDNjNTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMgpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHJvb3QgWworPCFFTlRJVFkgZm9vICJhYmMiPgorPCFFTlRJVFkgYmFyICJkZWYiPgorXT4KKzxyb290IGF0dHJpYnV0ZT0iJmZvbzsiPgorICAgPGVsZW1lbnQ+JmJhcjs8L2VsZW1lbnQ+Cis8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMi5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMi5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgzNTQ3YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEyLnJkZQpAQCAtMCwwICsxLDEwIEBACiswIDEwIHJvb3QgMCAwCiswIDEgcm9vdCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgZWxlbWVudCAwIDAKKzIgMyAjdGV4dCAwIDEgZGVmCisxIDE1IGVsZW1lbnQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSByb290IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTIucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTIucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NGMxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMi5yZHIKQEAgLTAsMCArMSwxMCBAQAorMCAxMCByb290IDAgMAorMCAxIHJvb3QgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAxIGVsZW1lbnQgMCAwCisyIDUgYmFyIDAgMAorMSAxNSBlbGVtZW50IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgcm9vdCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEyLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEyLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDMyMmQyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTIuc2F4CkBAIC0wLDAgKzEsMjEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHJvb3QsICwgKQorU0FYLmVudGl0eURlY2woZm9vLCAxLCAobnVsbCksIChudWxsKSwgYWJjKQorU0FYLmdldEVudGl0eShmb28pCitTQVguZW50aXR5RGVjbChiYXIsIDEsIChudWxsKSwgKG51bGwpLCBkZWYpCitTQVguZ2V0RW50aXR5KGJhcikKK1NBWC5leHRlcm5hbFN1YnNldChyb290LCAsICkKK1NBWC5nZXRFbnRpdHkoZm9vKQorU0FYLnN0YXJ0RWxlbWVudChyb290LCBhdHRyaWJ1dGU9JyZmb287JykKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChlbGVtZW50KQorU0FYLmdldEVudGl0eShiYXIpCitTQVguY2hhcmFjdGVycyhkZWYsIDMpCitTQVgucmVmZXJlbmNlKGJhcikKK1NBWC5lbmRFbGVtZW50KGVsZW1lbnQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHJvb3QpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEyLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgxZmVkZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEyLnNheDIKQEAgLTAsMCArMSwyMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQocm9vdCwgLCApCitTQVguZW50aXR5RGVjbChmb28sIDEsIChudWxsKSwgKG51bGwpLCBhYmMpCitTQVguZ2V0RW50aXR5KGZvbykKK1NBWC5lbnRpdHlEZWNsKGJhciwgMSwgKG51bGwpLCAobnVsbCksIGRlZikKK1NBWC5nZXRFbnRpdHkoYmFyKQorU0FYLmV4dGVybmFsU3Vic2V0KHJvb3QsICwgKQorU0FYLmdldEVudGl0eShmb28pCitTQVguc3RhcnRFbGVtZW50TnMocm9vdCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgYXR0cmlidXRlPScmZm9vLi4uJywgNSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKGVsZW1lbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZ2V0RW50aXR5KGJhcikKK1NBWC5jaGFyYWN0ZXJzKGRlZiwgMykKK1NBWC5yZWZlcmVuY2UoYmFyKQorU0FYLmVuZEVsZW1lbnROcyhlbGVtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKHJvb3QsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGQ5NmM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MTMKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB0ZXN0IFsKKzwhRU5USVRZIGFtcHByb2JsZW0gIiZhbXA7Ij4KK10+Cis8dCBhPSImYW1wcHJvYmxlbTsiPmE8L3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkyMjdmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEzLnJkZQpAQCAtMCwwICsxLDQgQEAKKzAgMTAgdGVzdCAwIDAKKzAgMSB0IDAgMAorMSAzICN0ZXh0IDAgMSBhCiswIDE1IHQgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkyMjdmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEzLnJkcgpAQCAtMCwwICsxLDQgQEAKKzAgMTAgdGVzdCAwIDAKKzAgMSB0IDAgMAorMSAzICN0ZXh0IDAgMSBhCiswIDE1IHQgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU0YmI0NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEzLnNheApAQCAtMCwwICsxLDExIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldCh0ZXN0LCAsICkKK1NBWC5lbnRpdHlEZWNsKGFtcHByb2JsZW0sIDEsIChudWxsKSwgKG51bGwpLCAmYW1wOykKK1NBWC5nZXRFbnRpdHkoYW1wcHJvYmxlbSkKK1NBWC5leHRlcm5hbFN1YnNldCh0ZXN0LCAsICkKK1NBWC5nZXRFbnRpdHkoYW1wcHJvYmxlbSkKK1NBWC5zdGFydEVsZW1lbnQodCwgYT0nJmFtcHByb2JsZW07JykKK1NBWC5jaGFyYWN0ZXJzKGEsIDEpCitTQVguZW5kRWxlbWVudCh0KQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDEzLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MTRkYTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQxMy5zYXgyCkBAIC0wLDAgKzEsMTEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHRlc3QsICwgKQorU0FYLmVudGl0eURlY2woYW1wcHJvYmxlbSwgMSwgKG51bGwpLCAobnVsbCksICZhbXA7KQorU0FYLmdldEVudGl0eShhbXBwcm9ibGVtKQorU0FYLmV4dGVybmFsU3Vic2V0KHRlc3QsICwgKQorU0FYLmdldEVudGl0eShhbXBwcm9ibGVtKQorU0FYLnN0YXJ0RWxlbWVudE5zKHQsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGE9JyZhbXAuLi4nLCAxMikKK1NBWC5jaGFyYWN0ZXJzKGEsIDEpCitTQVguZW5kRWxlbWVudE5zKHQsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI0MTM3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgRVhBTVBMRSBTWVNURU0gImV4YW1wbGUuZHRkIiBbCis8IUVOVElUWSB4bWwgIkV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIj4KKzwhRU5USVRZIHRpdGxlIFBVQkxJQyAiLS8vTVktVElUTEUvL0ZSIiAidGl0bGUueG1sIj4KKzwhRU5USVRZIGltYWdlIFNZU1RFTSAiaW1nLmdpZiIgTkRBVEEgR0lGPgorXT4KKzxFWEFNUExFPgorICAmdGl0bGU7CisgIFRoaXMgdGV4dCBpcyBhYm91dCBYTUwsIHRoZSAmeG1sOyBhbmQgdGhpcyBpcyBhbiBlbWJlZGRlZCA8SU1HIHNyYz0iaW1hZ2UiLz4KKzwvRVhBTVBMRT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Mi5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZlM2FhOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIucmRlCkBAIC0wLDAgKzEsMTUgQEAKKzAgMTAgRVhBTVBMRSAwIDAKKzAgMSBFWEFNUExFIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorCisxIDEgdGl0bGUgMCAwCisyIDMgI3RleHQgMCAxIG15IHRpdGxlCisxIDE1IHRpdGxlIDAgMAorMSAzICN0ZXh0IDAgMSAKKworICBUaGlzIHRleHQgaXMgYWJvdXQgWE1MLCB0aGUgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgYW5kIHRoaXMgaXMgYW4gZW1iZWRkZWQgCisxIDEgSU1HIDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgRVhBTVBMRSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Mi5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMyZTc2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIucmRyCkBAIC0wLDAgKzEsMTMgQEAKKzAgMTAgRVhBTVBMRSAwIDAKKzAgMSBFWEFNUExFIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSA1IHRpdGxlIDAgMAorMSAzICN0ZXh0IDAgMSAKKyAgVGhpcyB0ZXh0IGlzIGFib3V0IFhNTCwgdGhlIAorMSA1IHhtbCAwIDAKKzEgMyAjdGV4dCAwIDEgIGFuZCB0aGlzIGlzIGFuIGVtYmVkZGVkIAorMSAxIElNRyAxIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IEVYQU1QTEUgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQyLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZDJjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQyLnNheApAQCAtMCwwICsxLDI2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChFWEFNUExFLCAsIGV4YW1wbGUuZHRkKQorU0FYLmVudGl0eURlY2woeG1sLCAxLCAobnVsbCksIChudWxsKSwgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UpCitTQVguZ2V0RW50aXR5KHhtbCkKK1NBWC5lbnRpdHlEZWNsKHRpdGxlLCAyLCAtLy9NWS1USVRMRS8vRlIsIHRpdGxlLnhtbCwgKG51bGwpKQorU0FYLnVucGFyc2VkRW50aXR5RGVjbChpbWFnZSwgKG51bGwpLCBpbWcuZ2lmLCBHSUYpCitTQVguZXh0ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5zdGFydEVsZW1lbnQoRVhBTVBMRSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZ2V0RW50aXR5KHRpdGxlKQorU0FYLmVycm9yOiBFbnRpdHkgJ3RpdGxlJyBub3QgZGVmaW5lZAorU0FYLnJlZmVyZW5jZSh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICBUaGlzIHRleHQgaXMgYWJvdXQgWE1MLCB0aGUsIDMxKQorU0FYLmdldEVudGl0eSh4bWwpCitTQVguY2hhcmFjdGVycyhFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSwgMjYpCitTQVgucmVmZXJlbmNlKHhtbCkKK1NBWC5jaGFyYWN0ZXJzKCBhbmQgdGhpcyBpcyBhbiBlbWJlZGRlZCAsIDI1KQorU0FYLnN0YXJ0RWxlbWVudChJTUcsIHNyYz0naW1hZ2UnKQorU0FYLmVuZEVsZW1lbnQoSU1HKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChFWEFNUExFKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2M4MDAyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Mi5zYXgyCkBAIC0wLDAgKzEsMjYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KEVYQU1QTEUsICwgZXhhbXBsZS5kdGQpCitTQVguZW50aXR5RGVjbCh4bWwsIDEsIChudWxsKSwgKG51bGwpLCBFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSkKK1NBWC5nZXRFbnRpdHkoeG1sKQorU0FYLmVudGl0eURlY2wodGl0bGUsIDIsIC0vL01ZLVRJVExFLy9GUiwgdGl0bGUueG1sLCAobnVsbCkpCitTQVgudW5wYXJzZWRFbnRpdHlEZWNsKGltYWdlLCAobnVsbCksIGltZy5naWYsIEdJRikKK1NBWC5leHRlcm5hbFN1YnNldChFWEFNUExFLCAsIGV4YW1wbGUuZHRkKQorU0FYLnN0YXJ0RWxlbWVudE5zKEVYQU1QTEUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmdldEVudGl0eSh0aXRsZSkKK1NBWC5lcnJvcjogRW50aXR5ICd0aXRsZScgbm90IGRlZmluZWQKK1NBWC5yZWZlcmVuY2UodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgVGhpcyB0ZXh0IGlzIGFib3V0IFhNTCwgdGhlLCAzMSkKK1NBWC5nZXRFbnRpdHkoeG1sKQorU0FYLmNoYXJhY3RlcnMoRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UsIDI2KQorU0FYLnJlZmVyZW5jZSh4bWwpCitTQVguY2hhcmFjdGVycyggYW5kIHRoaXMgaXMgYW4gZW1iZWRkZWQgLCAyNSkKK1NBWC5zdGFydEVsZW1lbnROcyhJTUcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHNyYz0naW1hZy4uLicsIDUpCitTQVguZW5kRWxlbWVudE5zKElNRywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhFWEFNUExFLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmYjRjN2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQzCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgRVhBTVBMRSBTWVNURU0gImV4YW1wbGUuZHRkIiBbCis8IUVOVElUWSB4bWwgIkV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIj4KK10+Cis8RVhBTVBMRSBwcm9wMT0iYSZhbXA7YiIgcHJvcDI9IiZ4bWw7Ij4KKyAgVGVzdCBvZiBlbnRpdGllcyBpbiBhdHRyaWJ1dGVzLgorPC9FWEFNUExFPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQzLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDA0NDJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5yZGUKQEAgLTAsMCArMSw2IEBACiswIDEwIEVYQU1QTEUgMCAwCiswIDEgRVhBTVBMRSAwIDAKKzEgMyAjdGV4dCAwIDEgCisgIFRlc3Qgb2YgZW50aXRpZXMgaW4gYXR0cmlidXRlcy4KKworMCAxNSBFWEFNUExFIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQzLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDA0NDJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5yZHIKQEAgLTAsMCArMSw2IEBACiswIDEwIEVYQU1QTEUgMCAwCiswIDEgRVhBTVBMRSAwIDAKKzEgMyAjdGV4dCAwIDEgCisgIFRlc3Qgb2YgZW50aXRpZXMgaW4gYXR0cmlidXRlcy4KKworMCAxNSBFWEFNUExFIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQzLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDdkMjRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5zYXgKQEAgLTAsMCArMSwxMiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5lbnRpdHlEZWNsKHhtbCwgMSwgKG51bGwpLCAobnVsbCksIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlKQorU0FYLmdldEVudGl0eSh4bWwpCitTQVguZXh0ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5nZXRFbnRpdHkoeG1sKQorU0FYLnN0YXJ0RWxlbWVudChFWEFNUExFLCBwcm9wMT0nYSYjMzg7YicsIHByb3AyPScmeG1sOycpCitTQVguY2hhcmFjdGVycygKKyAgVGVzdCBvZiBlbnRpdGllcyBpbiBhdHRyaWJ1LCAzNSkKK1NBWC5lbmRFbGVtZW50KEVYQU1QTEUpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50My5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNWZmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQzLnNheDIKQEAgLTAsMCArMSwxMiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5lbnRpdHlEZWNsKHhtbCwgMSwgKG51bGwpLCAobnVsbCksIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlKQorU0FYLmdldEVudGl0eSh4bWwpCitTQVguZXh0ZXJuYWxTdWJzZXQoRVhBTVBMRSwgLCBleGFtcGxlLmR0ZCkKK1NBWC5nZXRFbnRpdHkoeG1sKQorU0FYLnN0YXJ0RWxlbWVudE5zKEVYQU1QTEUsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIHByb3AxPSdhJiMzLi4uJywgNywgcHJvcDI9JyZ4bWwuLi4nLCA1KQorU0FYLmNoYXJhY3RlcnMoCisgIFRlc3Qgb2YgZW50aXRpZXMgaW4gYXR0cmlidSwgMzUpCitTQVguZW5kRWxlbWVudE5zKEVYQU1QTEUsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkyMTk0YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDQKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBFWEFNUExFIFNZU1RFTSAiZXhhbXBsZS5kdGQiIFsKKzwhRU5USVRZIHhtbCAiRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UiPgorXT4KKzxFWEFNUExFPgorICBUZXN0IG9mICZhbXA7YW1wOyBiZWhhdmlvdXIgYSZhbXA7YiAuCis8L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ0LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDQucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiNjU0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ0LnJkZQpAQCAtMCwwICsxLDYgQEAKKzAgMTAgRVhBTVBMRSAwIDAKKzAgMSBFWEFNUExFIDAgMAorMSAzICN0ZXh0IDAgMSAKKyAgVGVzdCBvZiAmYW1wOyBiZWhhdmlvdXIgYSZiIC4KKworMCAxNSBFWEFNUExFIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ0LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjY1NDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NC5yZHIKQEAgLTAsMCArMSw2IEBACiswIDEwIEVYQU1QTEUgMCAwCiswIDEgRVhBTVBMRSAwIDAKKzEgMyAjdGV4dCAwIDEgCisgIFRlc3Qgb2YgJmFtcDsgYmVoYXZpb3VyIGEmYiAuCisKKzAgMTUgRVhBTVBMRSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDQuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBiYzI4ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDQuc2F4CkBAIC0wLDAgKzEsMTYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KEVYQU1QTEUsICwgZXhhbXBsZS5kdGQpCitTQVguZW50aXR5RGVjbCh4bWwsIDEsIChudWxsKSwgKG51bGwpLCBFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSkKK1NBWC5nZXRFbnRpdHkoeG1sKQorU0FYLmV4dGVybmFsU3Vic2V0KEVYQU1QTEUsICwgZXhhbXBsZS5kdGQpCitTQVguc3RhcnRFbGVtZW50KEVYQU1QTEUpCitTQVguY2hhcmFjdGVycygKKyAgVGVzdCBvZiAsIDExKQorU0FYLmNoYXJhY3RlcnMoJiwgMSkKK1NBWC5jaGFyYWN0ZXJzKGFtcDsgYmVoYXZpb3VyIGEsIDE2KQorU0FYLmNoYXJhY3RlcnMoJiwgMSkKK1NBWC5jaGFyYWN0ZXJzKGIgLgorLCA0KQorU0FYLmVuZEVsZW1lbnQoRVhBTVBMRSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ0LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ0LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBhNmIwOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDQuc2F4MgpAQCAtMCwwICsxLDE2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChFWEFNUExFLCAsIGV4YW1wbGUuZHRkKQorU0FYLmVudGl0eURlY2woeG1sLCAxLCAobnVsbCksIChudWxsKSwgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UpCitTQVguZ2V0RW50aXR5KHhtbCkKK1NBWC5leHRlcm5hbFN1YnNldChFWEFNUExFLCAsIGV4YW1wbGUuZHRkKQorU0FYLnN0YXJ0RWxlbWVudE5zKEVYQU1QTEUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgVGVzdCBvZiAsIDExKQorU0FYLmNoYXJhY3RlcnMoJiwgMSkKK1NBWC5jaGFyYWN0ZXJzKGFtcDsgYmVoYXZpb3VyIGEsIDE2KQorU0FYLmNoYXJhY3RlcnMoJiwgMSkKK1NBWC5jaGFyYWN0ZXJzKGIgLgorLCA0KQorU0FYLmVuZEVsZW1lbnROcyhFWEFNUExFLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZTdlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ1CkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RVhBTVBMRT4KKyAgICBUaGlzIGlzIGFuIGludmVydGVkIGV4Y2xhbWF0aW9uIHNpZ24gJiN4QTE7CisgICAgVGhpcyBpcyBhIHNwYWNlICAgCis8L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ1LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDUucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1NzBjMzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ1LnJkZQpAQCAtMCwwICsxLDYgQEAKKzAgMSBFWEFNUExFIDAgMAorMSAzICN0ZXh0IDAgMSAKKyAgICBUaGlzIGlzIGFuIGludmVydGVkIGV4Y2xhbWF0aW9uIHNpZ24gwqEKKyAgICBUaGlzIGlzIGEgc3BhY2UgICAKKworMCAxNSBFWEFNUExFIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ1LnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTcwYzMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NS5yZHIKQEAgLTAsMCArMSw2IEBACiswIDEgRVhBTVBMRSAwIDAKKzEgMyAjdGV4dCAwIDEgCisgICAgVGhpcyBpcyBhbiBpbnZlcnRlZCBleGNsYW1hdGlvbiBzaWduIMKhCisgICAgVGhpcyBpcyBhIHNwYWNlICAgCisKKzAgMTUgRVhBTVBMRSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDUuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FkOGI2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDUuc2F4CkBAIC0wLDAgKzEsMTMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChFWEFNUExFKQorU0FYLmNoYXJhY3RlcnMoCisgICAgVGhpcyBpcyBhbiBpbnZlcnRlZCBleGNsYSwgNDIpCitTQVguY2hhcmFjdGVycyjCoSwgMikKK1NBWC5jaGFyYWN0ZXJzKAorICAgIFRoaXMgaXMgYSBzcGFjZSAsIDIxKQorU0FYLmNoYXJhY3RlcnMoICwgMSkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50KEVYQU1QTEUpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MjUxZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ1LnNheDIKQEAgLTAsMCArMSwxMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMoRVhBTVBMRSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgIFRoaXMgaXMgYW4gaW52ZXJ0ZWQgZXhjbGEsIDQyKQorU0FYLmNoYXJhY3RlcnMowqEsIDIpCitTQVguY2hhcmFjdGVycygKKyAgICBUaGlzIGlzIGEgc3BhY2UgLCAyMSkKK1NBWC5jaGFyYWN0ZXJzKCAsIDEpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudE5zKEVYQU1QTEUsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ3ZjliYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDYKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTlRJVFkgbHQgIiYjMzg7IzYwOyI+Cis8IUVOVElUWSBndCAiJiM2MjsiPgorPCFFTlRJVFkgYW1wICImIzM4OyMzODsiPgorPCFFTlRJVFkgYXBvcyAiJiMzOTsiPgorPCFFTlRJVFkgcXVvdCAiJiMzNDsiPgorXT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ni5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ2LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBhMzRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ni5yZGUKQEAgLTAsMCArMSwyIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ2LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDYucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGEzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ2LnJkcgpAQCAtMCwwICsxLDIgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDYuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ni5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ0MjZlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDYuc2F4CkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZW50aXR5RGVjbChsdCwgMSwgKG51bGwpLCAobnVsbCksICYjNjA7KQorU0FYLmdldEVudGl0eShsdCkKK1NBWC5lbnRpdHlEZWNsKGd0LCAxLCAobnVsbCksIChudWxsKSwgPikKK1NBWC5nZXRFbnRpdHkoZ3QpCitTQVguZW50aXR5RGVjbChhbXAsIDEsIChudWxsKSwgKG51bGwpLCAmIzM4OykKK1NBWC5nZXRFbnRpdHkoYW1wKQorU0FYLmVudGl0eURlY2woYXBvcywgMSwgKG51bGwpLCAobnVsbCksICcpCitTQVguZ2V0RW50aXR5KGFwb3MpCitTQVguZW50aXR5RGVjbChxdW90LCAxLCAobnVsbCksIChudWxsKSwgIikKK1NBWC5nZXRFbnRpdHkocXVvdCkKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ni5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ni5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MGQwYmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ2LnNheDIKQEAgLTAsMCArMSwxNyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5lbnRpdHlEZWNsKGx0LCAxLCAobnVsbCksIChudWxsKSwgJiM2MDspCitTQVguZ2V0RW50aXR5KGx0KQorU0FYLmVudGl0eURlY2woZ3QsIDEsIChudWxsKSwgKG51bGwpLCA+KQorU0FYLmdldEVudGl0eShndCkKK1NBWC5lbnRpdHlEZWNsKGFtcCwgMSwgKG51bGwpLCAobnVsbCksICYjMzg7KQorU0FYLmdldEVudGl0eShhbXApCitTQVguZW50aXR5RGVjbChhcG9zLCAxLCAobnVsbCksIChudWxsKSwgJykKK1NBWC5nZXRFbnRpdHkoYXBvcykKK1NBWC5lbnRpdHlEZWNsKHF1b3QsIDEsIChudWxsKSwgKG51bGwpLCAiKQorU0FYLmdldEVudGl0eShxdW90KQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50NyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ2ZDhiYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDcKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBpdGVtIFsKKzwhRU5USVRZICUgc2FtcGxlRW50ICI8IUVMRU1FTlQgaXRlbSAocGFyYSkrPiI+Cis8IUVOVElUWSBzYW1wbGVFbnQgInRoZSBoeWFjaW50aCBnaXJsIj4KKzwhRUxFTUVOVCBpdGVtIChwYXJhKSs+Cis8IUVMRU1FTlQgcGFyYSAoI1BDREFUQSk+CitdPgorPGl0ZW0+PHBhcmE+J3RoZXkgY2FsbGVkIG1lICZzYW1wbGVFbnQ7JzwvcGFyYT48L2l0ZW0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ3LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDcucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNzRiMGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ3LnJkZQpAQCAtMCwwICsxLDYgQEAKKzAgMTAgaXRlbSAwIDAKKzAgMSBpdGVtIDAgMAorMSAxIHBhcmEgMCAwCisyIDMgI3RleHQgMCAxICd0aGV5IGNhbGxlZCBtZSB0aGUgaHlhY2ludGggZ2lybCcKKzEgMTUgcGFyYSAwIDAKKzAgMTUgaXRlbSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDcucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ny5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM3YTg0OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDcucmRyCkBAIC0wLDAgKzEsOCBAQAorMCAxMCBpdGVtIDAgMAorMCAxIGl0ZW0gMCAwCisxIDEgcGFyYSAwIDAKKzIgMyAjdGV4dCAwIDEgJ3RoZXkgY2FsbGVkIG1lIAorMiA1IHNhbXBsZUVudCAwIDAKKzIgMyAjdGV4dCAwIDEgJworMSAxNSBwYXJhIDAgMAorMCAxNSBpdGVtIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ny5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ3LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjI4ZGUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50Ny5zYXgKQEAgLTAsMCArMSwxNyBAQAoreG1sU0FYVXNlclBhcnNlRmlsZSByZXR1cm5lZCBlcnJvciAyNworU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoaXRlbSwgLCApCitTQVguZW50aXR5RGVjbChzYW1wbGVFbnQsIDQsIChudWxsKSwgKG51bGwpLCA8IUVMRU1FTlQgaXRlbSAocGFyYSkrPikKK1NBWC5nZXRQYXJhbWV0ZXJFbnRpdHkoc2FtcGxlRW50KQorU0FYLmVudGl0eURlY2woc2FtcGxlRW50LCAxLCAobnVsbCksIChudWxsKSwgdGhlIGh5YWNpbnRoIGdpcmwpCitTQVguZ2V0RW50aXR5KHNhbXBsZUVudCkKK1NBWC5nZXRQYXJhbWV0ZXJFbnRpdHkoc2FtcGxlRW50KQorU0FYLmVycm9yOiBQRVJlZmVyZW5jZTogJXNhbXBsZUVudDsgbm90IGZvdW5kCitTQVguY2hhcmFjdGVycygndGhleSBjYWxsZWQgbWUgLCAxNikKK1NBWC5nZXRFbnRpdHkoc2FtcGxlRW50KQorU0FYLmVycm9yOiBFbnRpdHkgJ3NhbXBsZUVudCcgbm90IGRlZmluZWQKK1NBWC5yZWZlcmVuY2Uoc2FtcGxlRW50KQorU0FYLmNoYXJhY3RlcnMoJywgMSkKK1NBWC5lbmREb2N1bWVudCgpCit4bWxTQVhVc2VyUGFyc2VGaWxlIHJldHVybmVkIGVycm9yIDI3CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ3LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ3LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzIyOGRlMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDcuc2F4MgpAQCAtMCwwICsxLDE3IEBACit4bWxTQVhVc2VyUGFyc2VGaWxlIHJldHVybmVkIGVycm9yIDI3CitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChpdGVtLCAsICkKK1NBWC5lbnRpdHlEZWNsKHNhbXBsZUVudCwgNCwgKG51bGwpLCAobnVsbCksIDwhRUxFTUVOVCBpdGVtIChwYXJhKSs+KQorU0FYLmdldFBhcmFtZXRlckVudGl0eShzYW1wbGVFbnQpCitTQVguZW50aXR5RGVjbChzYW1wbGVFbnQsIDEsIChudWxsKSwgKG51bGwpLCB0aGUgaHlhY2ludGggZ2lybCkKK1NBWC5nZXRFbnRpdHkoc2FtcGxlRW50KQorU0FYLmdldFBhcmFtZXRlckVudGl0eShzYW1wbGVFbnQpCitTQVguZXJyb3I6IFBFUmVmZXJlbmNlOiAlc2FtcGxlRW50OyBub3QgZm91bmQKK1NBWC5jaGFyYWN0ZXJzKCd0aGV5IGNhbGxlZCBtZSAsIDE2KQorU0FYLmdldEVudGl0eShzYW1wbGVFbnQpCitTQVguZXJyb3I6IEVudGl0eSAnc2FtcGxlRW50JyBub3QgZGVmaW5lZAorU0FYLnJlZmVyZW5jZShzYW1wbGVFbnQpCitTQVguY2hhcmFjdGVycygnLCAxKQorU0FYLmVuZERvY3VtZW50KCkKK3htbFNBWFVzZXJQYXJzZUZpbGUgcmV0dXJuZWQgZXJyb3IgMjcKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZTZjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ4CkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVOVElUWSB0ZXN0MSAidGVzdCAxIj4KKzwhRU5USVRZIHRlc3QyICJ0ZXN0IDIiPgorXT4KKzxkb2M+CisgICA8Q29udGVudD5SZXRlbiYjeEU3OyYjeEUzO288L0NvbnRlbnQ+CisgICA8Q29udGVudD4mbHQ7Jmd0OzwvQ29udGVudD4KKyAgIDxDb250ZW50PiZ0ZXN0MTsmdGVzdDI7PC9Db250ZW50PgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ4LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDgucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiODc2NjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ4LnJkZQpAQCAtMCwwICsxLDIwIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAxIENvbnRlbnQgMCAwCisyIDMgI3RleHQgMCAxIFJldGVuw6fDo28KKzEgMTUgQ29udGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgQ29udGVudCAwIDAKKzIgMyAjdGV4dCAwIDEgPD4KKzEgMTUgQ29udGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgQ29udGVudCAwIDAKKzIgMyAjdGV4dCAwIDEgdGVzdCAxdGVzdCAyCisxIDE1IENvbnRlbnQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkb2MgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ4LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDgucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NzdlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ4LnJkcgpAQCAtMCwwICsxLDIxIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAxIENvbnRlbnQgMCAwCisyIDMgI3RleHQgMCAxIFJldGVuw6fDo28KKzEgMTUgQ29udGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgQ29udGVudCAwIDAKKzIgMyAjdGV4dCAwIDEgPD4KKzEgMTUgQ29udGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgQ29udGVudCAwIDAKKzIgNSB0ZXN0MSAwIDAKKzIgNSB0ZXN0MiAwIDAKKzEgMTUgQ29udGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDguc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzOTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDguc2F4CkBAIC0wLDAgKzEsMzcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZW50aXR5RGVjbCh0ZXN0MSwgMSwgKG51bGwpLCAobnVsbCksIHRlc3QgMSkKK1NBWC5nZXRFbnRpdHkodGVzdDEpCitTQVguZW50aXR5RGVjbCh0ZXN0MiwgMSwgKG51bGwpLCAobnVsbCksIHRlc3QgMikKK1NBWC5nZXRFbnRpdHkodGVzdDIpCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnQoZG9jKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KENvbnRlbnQpCitTQVguY2hhcmFjdGVycyhSZXRlbiwgNSkKK1NBWC5jaGFyYWN0ZXJzKMOnLCAyKQorU0FYLmNoYXJhY3RlcnMow6MsIDIpCitTQVguY2hhcmFjdGVycyhvLCAxKQorU0FYLmVuZEVsZW1lbnQoQ29udGVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChDb250ZW50KQorU0FYLmNoYXJhY3RlcnMoPCwgMSkKK1NBWC5jaGFyYWN0ZXJzKD4sIDEpCitTQVguZW5kRWxlbWVudChDb250ZW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KENvbnRlbnQpCitTQVguZ2V0RW50aXR5KHRlc3QxKQorU0FYLmNoYXJhY3RlcnModGVzdCAxLCA2KQorU0FYLnJlZmVyZW5jZSh0ZXN0MSkKK1NBWC5nZXRFbnRpdHkodGVzdDIpCitTQVguY2hhcmFjdGVycyh0ZXN0IDIsIDYpCitTQVgucmVmZXJlbmNlKHRlc3QyKQorU0FYLmVuZEVsZW1lbnQoQ29udGVudCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDguc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDguc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDFmOWE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OC5zYXgyCkBAIC0wLDAgKzEsMzcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZW50aXR5RGVjbCh0ZXN0MSwgMSwgKG51bGwpLCAobnVsbCksIHRlc3QgMSkKK1NBWC5nZXRFbnRpdHkodGVzdDEpCitTQVguZW50aXR5RGVjbCh0ZXN0MiwgMSwgKG51bGwpLCAobnVsbCksIHRlc3QgMikKK1NBWC5nZXRFbnRpdHkodGVzdDIpCitTQVguZXh0ZXJuYWxTdWJzZXQoZG9jLCAsICkKK1NBWC5zdGFydEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhDb250ZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoUmV0ZW4sIDUpCitTQVguY2hhcmFjdGVycyjDpywgMikKK1NBWC5jaGFyYWN0ZXJzKMOjLCAyKQorU0FYLmNoYXJhY3RlcnMobywgMSkKK1NBWC5lbmRFbGVtZW50TnMoQ29udGVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKENvbnRlbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyg8LCAxKQorU0FYLmNoYXJhY3RlcnMoPiwgMSkKK1NBWC5lbmRFbGVtZW50TnMoQ29udGVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKENvbnRlbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZ2V0RW50aXR5KHRlc3QxKQorU0FYLmNoYXJhY3RlcnModGVzdCAxLCA2KQorU0FYLnJlZmVyZW5jZSh0ZXN0MSkKK1NBWC5nZXRFbnRpdHkodGVzdDIpCitTQVguY2hhcmFjdGVycyh0ZXN0IDIsIDYpCitTQVgucmVmZXJlbmNlKHRlc3QyKQorU0FYLmVuZEVsZW1lbnROcyhDb250ZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ5IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2UzMDg5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OQpAQCAtMCwwICsxLDYxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTlRJVFkgdGVzdDEgIjxhLz4sPGIvPiw8Yy8+LDxkLz4iPgorXT4KKzxkb2M+CisgICA8ZW50PiZ0ZXN0MTs8L2VudD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8ZW50PiZ0ZXN0MTs8L2VudD4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ5LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGI5ZjQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OS5yZGUKQEAgLTAsMCArMSwzMDAgQEAKKzAgMTAgZG9jIDAgMAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgZW50IDAgMAorMiAxIGEgMCAwCisyIDE1IGEgMCAwCisyIDMgI3RleHQgMCAxICwKKzIgMSBiIDAgMAorMiAxNSBiIDAgMAorMiAzICN0ZXh0IDAgMSAsCisyIDEgYyAwIDAKKzIgMTUgYyAwIDAKKzIgMyAjdGV4dCAwIDEgLAorMiAxIGQgMCAwCisyIDE1IGQgMCAwCisxIDE1IGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW0KKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgCisxIDEgZW50IDAgMAorMiAxIGEgMCAwCisyIDE1IGEgMCAwCisyIDMgI3RleHQgMCAxICwKKzIgMSBiIDAgMAorMiAxNSBiIDAgMAorMiAzICN0ZXh0IDAgMSAsCisyIDEgYyAwIDAKKzIgMTUgYyAwIDAKKzIgMyAjdGV4dCAwIDEgLAorMiAxIGQgMCAwCisyIDE1IGQgMCAwCisxIDE1IGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDkucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJmOGE1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDkucmRyCkBAIC0wLDAgKzEsMjgwIEBACiswIDEwIGRvYyAwIDAKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgIAorMSAxIGVudCAwIDAKKzIgNSB0ZXN0MSAwIDAKKzEgMTUgZW50IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSAgV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAKKzEgMSBlbnQgMCAwCisyIDUgdGVzdDEgMCAwCisxIDE1IGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDkuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNhMmFkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2VudDkuc2F4CkBAIC0wLDAgKzEsMzEwIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLmVudGl0eURlY2wodGVzdDEsIDEsIChudWxsKSwgKG51bGwpLCA8YS8+LDxiLz4sPGMvPiw8ZC8+KQorU0FYLmdldEVudGl0eSh0ZXN0MSkKK1NBWC5leHRlcm5hbFN1YnNldChkb2MsICwgKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoZW50KQorU0FYLmdldEVudGl0eSh0ZXN0MSkKK1NBWC5zdGFydEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycygsLCAxKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKCwsIDEpCitTQVguc3RhcnRFbGVtZW50KGMpCitTQVguZW5kRWxlbWVudChjKQorU0FYLmNoYXJhY3RlcnMoLCwgMSkKK1NBWC5zdGFydEVsZW1lbnQoZCkKK1NBWC5lbmRFbGVtZW50KGQpCitTQVgucmVmZXJlbmNlKHRlc3QxKQorU0FYLmVuZEVsZW1lbnQoZW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoZW50KQorU0FYLmdldEVudGl0eSh0ZXN0MSkKK1NBWC5zdGFydEVsZW1lbnQoYSkKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycygsLCAxKQorU0FYLnN0YXJ0RWxlbWVudChiKQorU0FYLmVuZEVsZW1lbnQoYikKK1NBWC5jaGFyYWN0ZXJzKCwsIDEpCitTQVguc3RhcnRFbGVtZW50KGMpCitTQVguZW5kRWxlbWVudChjKQorU0FYLmNoYXJhY3RlcnMoLCwgMSkKK1NBWC5zdGFydEVsZW1lbnQoZCkKK1NBWC5lbmRFbGVtZW50KGQpCitTQVgucmVmZXJlbmNlKHRlc3QxKQorU0FYLmVuZEVsZW1lbnQoZW50KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZW50OS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzOWRjZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lbnQ5LnNheDIKQEAgLTAsMCArMSwzMTAgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguZW50aXR5RGVjbCh0ZXN0MSwgMSwgKG51bGwpLCAobnVsbCksIDxhLz4sPGIvPiw8Yy8+LDxkLz4pCitTQVguZ2V0RW50aXR5KHRlc3QxKQorU0FYLmV4dGVybmFsU3Vic2V0KGRvYywgLCApCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMoZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmdldEVudGl0eSh0ZXN0MSkKK1NBWC5zdGFydEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoLCwgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhiLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhiLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoLCwgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhjLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhjLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoLCwgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhkLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhkLCBOVUxMLCBOVUxMKQorU0FYLnJlZmVyZW5jZSh0ZXN0MSkKK1NBWC5lbmRFbGVtZW50TnMoZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8sIDUwKQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0bywgNTApCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvLCA1MCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKGVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5nZXRFbnRpdHkodGVzdDEpCitTQVguc3RhcnRFbGVtZW50TnMoYSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoYSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCwsIDEpCitTQVguc3RhcnRFbGVtZW50TnMoYiwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoYiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCwsIDEpCitTQVguc3RhcnRFbGVtZW50TnMoYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCwsIDEpCitTQVguc3RhcnRFbGVtZW50TnMoZCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoZCwgTlVMTCwgTlVMTCkKK1NBWC5yZWZlcmVuY2UodGVzdDEpCitTQVguZW5kRWxlbWVudE5zKGVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIxLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMS54bWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIxLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYwODUzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMS54bWwuZXJyCkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L2Vycm9ycy9hdHRyMS54bWw6MjogcGFyc2VyIGVycm9yIDogQXR0VmFsdWU6ICcgZXhwZWN0ZWQKKworXgorLi90ZXN0L2Vycm9ycy9hdHRyMS54bWw6MTogcGFyc2VyIGVycm9yIDogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudAorPGZvbyBmb289Im9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28KKyBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjEueG1sLnN0ciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMS54bWwuc3RyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxOGQyM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjEueG1sLnN0cgpAQCAtMCwwICsxLDEwIEBACisuL3Rlc3QvZXJyb3JzL2F0dHIxLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBBdHRWYWx1ZTogJyBleHBlY3RlZAorCiteCisuL3Rlc3QvZXJyb3JzL2F0dHIxLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBhdHRyaWJ1dGVzIGNvbnN0cnVjdCBlcnJvcgorCiteCisuL3Rlc3QvZXJyb3JzL2F0dHIxLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgZm9vCisKK14KKy4vdGVzdC9lcnJvcnMvYXR0cjEueG1sIDogZmFpbGVkIHRvIHBhcnNlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjIueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGE5YzdkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbC5lcnIKQEAgLTAsMCArMSw2IEBACisuL3Rlc3QvZXJyb3JzL2F0dHIyLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBBdHRWYWx1ZTogJyBleHBlY3RlZAorCiteCisuL3Rlc3QvZXJyb3JzL2F0dHIyLnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Cis8Zm9vIGZvbz0iPm9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbworIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMi54bWwuc3RyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIyLnhtbC5zdHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNiMDhhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMi54bWwuc3RyCkBAIC0wLDAgKzEsMTAgQEAKKy4vdGVzdC9lcnJvcnMvYXR0cjIueG1sOjI6IHBhcnNlciBlcnJvciA6IEF0dFZhbHVlOiAnIGV4cGVjdGVkCisKK14KKy4vdGVzdC9lcnJvcnMvYXR0cjIueG1sOjI6IHBhcnNlciBlcnJvciA6IGF0dHJpYnV0ZXMgY29uc3RydWN0IGVycm9yCisKK14KKy4vdGVzdC9lcnJvcnMvYXR0cjIueG1sOjI6IHBhcnNlciBlcnJvciA6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyBmb28KKworXgorLi90ZXN0L2Vycm9ycy9hdHRyMi54bWwgOiBmYWlsZWQgdG8gcGFyc2UKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMWY5MjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjMueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRvYyBhMSBDREFUQSAidjEiPgorXT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIzLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjMueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjI4Y2E3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIzLnhtbC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvZXJyb3JzL2F0dHIzLnhtbDo0OiB2YWxpZGl0eSB3YXJuaW5nIDogQXR0cmlidXRlIGExIG9mIGVsZW1lbnQgZG9jOiBhbHJlYWR5IGRlZmluZWQKKzwhQVRUTElTVCBkb2MgYTEgQ0RBVEEgInoxIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMy54bWwuc3RyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHIzLnhtbC5zdHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTYyOGNhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9hdHRyMy54bWwuc3RyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L2Vycm9ycy9hdHRyMy54bWw6NDogdmFsaWRpdHkgd2FybmluZyA6IEF0dHJpYnV0ZSBhMSBvZiBlbGVtZW50IGRvYzogYWxyZWFkeSBkZWZpbmVkCis8IUFUVExJU1QgZG9jIGExIENEQVRBICJ6MSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjQueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHI0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHI0LnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHI0LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjQueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTk2NmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHI0LnhtbC5lcnIKQEAgLTAsMCArMSwxMiBAQAorLi90ZXN0L2Vycm9ycy9hdHRyNC54bWw6MTogcGFyc2VyIGVycm9yIDogaW52YWxpZCBjaGFyYWN0ZXIgaW4gYXR0cmlidXRlIHZhbHVlCis8Uk9PVCBhdHRyPSJYWRYiLz4KKyAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy9hdHRyNC54bWw6MTogcGFyc2VyIGVycm9yIDogYXR0cmlidXRlcyBjb25zdHJ1Y3QgZXJyb3IKKzxST09UIGF0dHI9IlhZFiIvPgorICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzL2F0dHI0LnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgUk9PVCBsaW5lIDEKKzxST09UIGF0dHI9IlhZFiIvPgorICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzL2F0dHI0LnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Cis8Uk9PVCBhdHRyPSJYWRYiLz4KKyAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHI0LnhtbC5zdHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvYXR0cjQueG1sLnN0cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWI5MjUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2F0dHI0LnhtbC5zdHIKQEAgLTAsMCArMSwxMCBAQAorLi90ZXN0L2Vycm9ycy9hdHRyNC54bWw6MTogcGFyc2VyIGVycm9yIDogaW52YWxpZCBjaGFyYWN0ZXIgaW4gYXR0cmlidXRlIHZhbHVlCis8Uk9PVCBhdHRyPSJYWRYiLz4KKyAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy9hdHRyNC54bWw6MTogcGFyc2VyIGVycm9yIDogYXR0cmlidXRlcyBjb25zdHJ1Y3QgZXJyb3IKKzxST09UIGF0dHI9IlhZFiIvPgorICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzL2F0dHI0LnhtbDoxOiBwYXJzZXIgZXJyb3IgOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgUk9PVAorPFJPT1QgYXR0cj0iWFkWIi8+CisgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvYXR0cjQueG1sIDogZmFpbGVkIHRvIHBhcnNlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2RhdGEueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NkYXRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NkYXRhLnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NkYXRhLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2RhdGEueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzU3OTYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NkYXRhLnhtbC5lcnIKQEAgLTAsMCArMSw0IEBACisuL3Rlc3QvZXJyb3JzL2NkYXRhLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBJbnB1dCBpcyBub3QgcHJvcGVyIFVURi04LCBpbmRpY2F0ZSBlbmNvZGluZyAhCitCeXRlczogMHhFMSAweDcyIDB4NUQgMHg1RAorPEE+PCFbQ0RBVEFbQ+FyXV0+PC9BPgorICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jZGF0YS54bWwuc3RyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NkYXRhLnhtbC5zdHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA0MzQ0MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jZGF0YS54bWwuc3RyCkBAIC0wLDAgKzEsNSBAQAorLi90ZXN0L2Vycm9ycy9jZGF0YS54bWw6MjogcGFyc2VyIGVycm9yIDogSW5wdXQgaXMgbm90IHByb3BlciBVVEYtOCwgaW5kaWNhdGUgZW5jb2RpbmcgIQorQnl0ZXM6IDB4NUIgMHg0MyAweEUxIDB4NzIKKzxBPjwhW0NEQVRBW0Phcl1dPjwvQT4KKyAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy9jZGF0YS54bWwgOiBmYWlsZWQgdG8gcGFyc2UKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jaGFycmVmMS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2hhcnJlZjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2hhcnJlZjEueG1sCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2hhcnJlZjEueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jaGFycmVmMS54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNDNiY2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2hhcnJlZjEueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9lcnJvcnMvY2hhcnJlZjEueG1sOjE6IHBhcnNlciBlcnJvciA6IHhtbFBhcnNlQ2hhclJlZjogaW52YWxpZCB4bWxDaGFyIHZhbHVlIDYwCis8YmxhPiYjMDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwOzwvYmxhPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2hhcnJlZjEueG1sLnN0ciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jaGFycmVmMS54bWwuc3RyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2N2I0ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY2hhcnJlZjEueG1sLnN0cgpAQCAtMCwwICsxLDQgQEAKKy4vdGVzdC9lcnJvcnMvY2hhcnJlZjEueG1sOjE6IHBhcnNlciBlcnJvciA6IHhtbFBhcnNlQ2hhclJlZjogaW52YWxpZCB4bWxDaGFyIHZhbHVlIDYwCis8YmxhPiYjMDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwOzwvYmxhPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzL2NoYXJyZWYxLnhtbCA6IGZhaWxlZCB0byBwYXJzZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NvbW1lbnQxLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jb21tZW50MS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jb21tZW50MS54bWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jb21tZW50MS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NvbW1lbnQxLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE3MzJkZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jb21tZW50MS54bWwuZXJyCkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L2Vycm9ycy9jb21tZW50MS54bWw6NTogcGFyc2VyIGVycm9yIDogeG1sUGFyc2VDb21tZW50OiBpbnZhbGlkIHhtbENoYXIgdmFsdWUgMTQKKyBpbiBwMDI6IA4gLS0+CisgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzL2NvbW1lbnQxLnhtbDo1OiBwYXJzZXIgZXJyb3IgOiBTdGFydCB0YWcgZXhwZWN0ZWQsICc8JyBub3QgZm91bmQKKyBpbiBwMDI6IA4gLS0+CisgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY29tbWVudDEueG1sLnN0ciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jb21tZW50MS54bWwuc3RyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NGQxZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY29tbWVudDEueG1sLnN0cgpAQCAtMCwwICsxLDQgQEAKKy4vdGVzdC9lcnJvcnMvY29tbWVudDEueG1sOjU6IHBhcnNlciBlcnJvciA6IHhtbFBhcnNlQ29tbWVudDogaW52YWxpZCB4bWxDaGFyIHZhbHVlIDE0CisgaW4gcDAyOiAOIC0tPgorICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy9jb21tZW50MS54bWwgOiBmYWlsZWQgdG8gcGFyc2UKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jb250ZW50MS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY29udGVudDEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY29udGVudDEueG1sCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY29udGVudDEueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9jb250ZW50MS54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NmM3ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY29udGVudDEueG1sLmVycgpAQCAtMCwwICsxLDE1IEBACisuL3Rlc3QvZXJyb3JzL2NvbnRlbnQxLnhtbDo3OiBwYXJzZXIgZXJyb3IgOiBDb250ZW50RGVjbCA6ICcsJyAnfCcgb3IgJyknIGV4cGVjdGVkCis8IUVMRU1FTlQgYUVsZW1lbnQgKGEgfGIgKiA+CisgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy9jb250ZW50MS54bWw6NzogcGFyc2VyIGVycm9yIDogZXhwZWN0ZWQgJz4nCis8IUVMRU1FTlQgYUVsZW1lbnQgKGEgfGIgKiA+CisgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy9jb250ZW50MS54bWw6NzogcGFyc2VyIGVycm9yIDogaW50ZXJuYWwgZXJyb3IKKzwhRUxFTUVOVCBhRWxlbWVudCAoYSB8YiAqID4KKyAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzL2NvbnRlbnQxLnhtbDo3OiBwYXJzZXIgZXJyb3IgOiBET0NUWVBFIGltcHJvcGVybHkgdGVybWluYXRlZAorPCFFTEVNRU5UIGFFbGVtZW50IChhIHxiICogPgorICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvY29udGVudDEueG1sOjc6IHBhcnNlciBlcnJvciA6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZAorPCFFTEVNRU5UIGFFbGVtZW50IChhIHxiICogPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NvbnRlbnQxLnhtbC5zdHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvY29udGVudDEueG1sLnN0cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTM0NmY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL2NvbnRlbnQxLnhtbC5zdHIKQEAgLTAsMCArMSwxMyBAQAorLi90ZXN0L2Vycm9ycy9jb250ZW50MS54bWw6NzogcGFyc2VyIGVycm9yIDogQ29udGVudERlY2wgOiAnLCcgJ3wnIG9yICcpJyBleHBlY3RlZAorPCFFTEVNRU5UIGFFbGVtZW50IChhIHxiICogPgorICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvY29udGVudDEueG1sOjc6IHBhcnNlciBlcnJvciA6IGV4cGVjdGVkICc+JworPCFFTEVNRU5UIGFFbGVtZW50IChhIHxiICogPgorICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy4vdGVzdC9lcnJvcnMvY29udGVudDEueG1sOjc6IHBhcnNlciBlcnJvciA6IGludGVybmFsIGVycm9yCis8IUVMRU1FTlQgYUVsZW1lbnQgKGEgfGIgKiA+CisgICAgICAgICAgICAgICAgICAgICAgICAgXgorLi90ZXN0L2Vycm9ycy9jb250ZW50MS54bWw6NzogcGFyc2VyIGVycm9yIDogRE9DVFlQRSBpbXByb3Blcmx5IHRlcm1pbmF0ZWQKKzwhRUxFTUVOVCBhRWxlbWVudCAoYSB8YiAqID4KKyAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvZXJyb3JzL2NvbnRlbnQxLnhtbCA6IGZhaWxlZCB0byBwYXJzZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL25hbWUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL25hbWUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZS54bWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9uYW1lLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZS54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYmZjNTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZS54bWwuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L2Vycm9ycy9uYW1lLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgZm9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbyBsaW5lIDEKKworXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXJyb3JzL25hbWUueG1sLnN0ciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9uYW1lLnhtbC5zdHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ0YWY1OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9uYW1lLnhtbC5zdHIKQEAgLTAsMCArMSw0IEBACisuL3Rlc3QvZXJyb3JzL25hbWUueG1sOjI6IHBhcnNlciBlcnJvciA6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyBmb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vCisKK14KKy4vdGVzdC9lcnJvcnMvbmFtZS54bWwgOiBmYWlsZWQgdG8gcGFyc2UKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9uYW1lMi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9uYW1lMi54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NjQ5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sLmVycgpAQCAtMCwwICsxLDYgQEAKKy4vdGVzdC9lcnJvcnMvbmFtZTIueG1sOjI6IHBhcnNlciBlcnJvciA6IFNwZWNpZmljYXRpb24gbWFuZGF0ZSB2YWx1ZSBmb3IgYXR0cmlidXRlIGZvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28KKworXgorLi90ZXN0L2Vycm9ycy9uYW1lMi54bWw6MTogcGFyc2VyIGVycm9yIDogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudAorPGZvbyBmb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28KKyBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sLnN0ciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2Vycm9ycy9uYW1lMi54bWwuc3RyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZWUwOTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9lcnJvcnMvbmFtZTIueG1sLnN0cgpAQCAtMCwwICsxLDEwIEBACisuL3Rlc3QvZXJyb3JzL25hbWUyLnhtbDoyOiBwYXJzZXIgZXJyb3IgOiBTcGVjaWZpY2F0aW9uIG1hbmRhdGUgdmFsdWUgZm9yIGF0dHJpYnV0ZSBmb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vCisKK14KKy4vdGVzdC9lcnJvcnMvbmFtZTIueG1sOjI6IHBhcnNlciBlcnJvciA6IGF0dHJpYnV0ZXMgY29uc3RydWN0IGVycm9yCisKK14KKy4vdGVzdC9lcnJvcnMvbmFtZTIueG1sOjI6IHBhcnNlciBlcnJvciA6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyBmb28KKworXgorLi90ZXN0L2Vycm9ycy9uYW1lMi54bWwgOiBmYWlsZWQgdG8gcGFyc2UKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2V2ZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ldmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhYjcyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ldmUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhRE9DVFlQRSBzcGVjIFBVQkxJQyAiLS8vdGVzdHNwZWMvLyIgImR0ZHMvZXZlLmR0ZCIgWworPCFFTlRJVFkgaXNvNi5kb2MuZGF0ZSAiMjktTWF5LTE5OTkiPgorXT4KKzxzcGVjPgorPC9zcGVjPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXZlLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ldmUueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjA4YzU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXZlLnhtbC5yZGUKQEAgLTAsMCArMSw1IEBACiswIDEwIHNwZWMgMCAwCiswIDEgc3BlYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHNwZWMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ldmUueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2V2ZS54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMDhjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ldmUueG1sLnJkcgpAQCAtMCwwICsxLDUgQEAKKzAgMTAgc3BlYyAwIDAKKzAgMSBzcGVjIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgc3BlYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2V2ZS54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXZlLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0MTZiMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2V2ZS54bWwuc2F4CkBAIC0wLDAgKzEsMTEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHNwZWMsIC0vL3Rlc3RzcGVjLy8sIGR0ZHMvZXZlLmR0ZCkKK1NBWC5lbnRpdHlEZWNsKGlzbzYuZG9jLmRhdGUsIDEsIChudWxsKSwgKG51bGwpLCAyOS1NYXktMTk5OSkKK1NBWC5nZXRFbnRpdHkoaXNvNi5kb2MuZGF0ZSkKK1NBWC5leHRlcm5hbFN1YnNldChzcGVjLCAtLy90ZXN0c3BlYy8vLCBkdGRzL2V2ZS5kdGQpCitTQVguc3RhcnRFbGVtZW50KHNwZWMpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHNwZWMpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXZlLnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXZlLnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhM2I0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ldmUueG1sLnNheDIKQEAgLTAsMCArMSwxMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoc3BlYywgLS8vdGVzdHNwZWMvLywgZHRkcy9ldmUuZHRkKQorU0FYLmVudGl0eURlY2woaXNvNi5kb2MuZGF0ZSwgMSwgKG51bGwpLCAobnVsbCksIDI5LU1heS0xOTk5KQorU0FYLmdldEVudGl0eShpc282LmRvYy5kYXRlKQorU0FYLmV4dGVybmFsU3Vic2V0KHNwZWMsIC0vL3Rlc3RzcGVjLy8sIGR0ZHMvZXZlLmR0ZCkKK1NBWC5zdGFydEVsZW1lbnROcyhzcGVjLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKHNwZWMsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXhhbXBsZS5kdGQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9leGFtcGxlLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXhhbXBsZS5kdGQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2V4cHIvYmFzZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2V4cHIvYmFzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWIwZDE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvZXhwci9iYXNlCkBAIC0wLDAgKzEsODUgQEAKK0V4cHJlc3Npb246IGEKK1N1YmV4cDogYSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGEgfCBhID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYiA9PiByZWplY3QsIE9rCitFeHByZXNzaW9uOiBhfGIKK1N1YmV4cDogYSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGIgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhIHwgYiA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGF7MH0gPT4gcmVqZWN0LCBPaworU3ViZXhwOiBiezB9ID0+IHJlamVjdCwgT2sKK0V4cHJlc3Npb246IGEgfCBiIHwgYQorU3ViZXhwOiBhID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYiA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGEgfCBiID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYiB8IGEgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhIHwgYiB8IGIgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhIHwgYiB8IGEgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBiIHwgYSB8IGIgPT4gYWNjZXB0LCBPaworRXhwcmVzc2lvbjogYSxhCitTdWJleHA6IGEsYSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGEgPT4gcmVqZWN0LCBPaworU3ViZXhwOiBhLGEsYSA9PiByZWplY3QsIE9rCitFeHByZXNzaW9uOiBhezAsM30KK1N1YmV4cDogYXszfSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGEgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhLGEsYSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGF7MSwzfSA9PiBhY2NlcHQsIE9rCitFeHByZXNzaW9uOiAoYXxiKXswLDR9CitTdWJleHA6IGEgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBiID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSxiID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSxiLGEsYiA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGIsYSxiLGEsYiA9PiByZWplY3QsIE9rCitTdWJleHA6IGIsYXsxLDN9ID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYXsxLDN9LGIgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhezEsM30sYixhID0+IHJlamVjdCwgT2sKK1N1YmV4cDogYXsxLDR9LGIgPT4gcmVqZWN0LCBPaworU3ViZXhwOiBhezAsNX0gPT4gcmVqZWN0LCBPaworU3ViZXhwOiAoYnxhKXswLDR9ID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogKGJ8YSl7MCw0fSxhID0+IHJlamVjdCwgT2sKK1N1YmV4cDogKGEsYil7MCwyfSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IChhLGIpezAsMX0sYiA9PiBhY2NlcHQsIE9rCitFeHByZXNzaW9uOiAgYSoKK1N1YmV4cDogYSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGE/ID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSsgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhKiA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGF7MH0gPT4gYWNjZXB0LCBPaworRXhwcmVzc2lvbjogIGErCitTdWJleHA6IGEgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhPyA9PiByZWplY3QsIE9rCitTdWJleHA6IGErID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSogPT4gcmVqZWN0LCBPaworU3ViZXhwOiBhPyxhID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSxhKiA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGEqLGEgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhPyxhKixhID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSosYT8sYSA9PiBhY2NlcHQsIE9rCitFeHByZXNzaW9uOiAoYXxiKSoKK1N1YmV4cDogYSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGIgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhLGIgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhLGIsYSxiID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogKGJ8YSl7MCw0fSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IChifGEpezAsNH0sYSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGEqID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYiogPT4gYWNjZXB0LCBPaworU3ViZXhwOiAoYXxiKSogPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhezEsM30gPT4gYWNjZXB0LCBPaworU3ViZXhwOiBiLGF7MSwzfSA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGF7MSwzfSxiID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSosKGF8YikqID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSosYnsyLDV9ID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYSosKGF8YikqLGJ7Miw1fSA9PiBhY2NlcHQsIE9rCitFeHByZXNzaW9uOiAoYXxiKSssKGN8ZCkKK1N1YmV4cDogYSssYyA9PiBhY2NlcHQsIE9rCitTdWJleHA6IGEqLGMgPT4gcmVqZWN0LCBPaworU3ViZXhwOiBhLGMgPT4gYWNjZXB0LCBPaworU3ViZXhwOiBhLGIqLGEqLGMgPT4gYWNjZXB0LCBPaworRXhwcmVzc2lvbjogKGF8YiksKGF8Yyl7MCwxMDB9CitTdWJleHA6IGF7MCwxMDB9LChhfGMpID0+IGFjY2VwdCwgT2sKK1N1YmV4cDogYXswLDEwMX0sKGF8YykgPT4gcmVqZWN0LCBPaworRXhwcmVzc2lvbjogKGEsICgoYiwgYywgZCl7MCw1fSwgZXswLDF9KXswLDR9LCBmKQorU3ViZXhwOiAoYSwgYiwgKGMsIGQsIGIpezIsM30sIGMsIGQsIGUsIGYpID0+IGFjY2VwdCwgT2sKK09wczogMCBub2RlcywgMjIxIGNvbnMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkODU3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzwhRE9DVFlQRSByb290IFsKKzwhRUxFTUVOVCByb290IEVNUFRZPgorPCEtLSAgIiAtLT5dPgorPHJvb3QvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0LnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTAzNDIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0LnhtbC5yZGUKQEAgLTAsMCArMSwyIEBACiswIDEwIHJvb3QgMCAwCiswIDEgcm9vdCAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldC54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0LnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUwMzQyMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldC54bWwucmRyCkBAIC0wLDAgKzEsMiBAQAorMCAxMCByb290IDAgMAorMCAxIHJvb3QgMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldC54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MmUyYjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQueG1sLnNheApAQCAtMCwwICsxLDkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHJvb3QsICwgKQorU0FYLmVsZW1lbnREZWNsKHJvb3QsIDEsIC4uLikKK1NBWC5jb21tZW50KCAgIiApCitTQVguZXh0ZXJuYWxTdWJzZXQocm9vdCwgLCApCitTQVguc3RhcnRFbGVtZW50KHJvb3QpCitTQVguZW5kRWxlbWVudChyb290KQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldC54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldC54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGRiMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0LnhtbC5zYXgyCkBAIC0wLDAgKzEsOSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQocm9vdCwgLCApCitTQVguZWxlbWVudERlY2wocm9vdCwgMSwgLi4uKQorU0FYLmNvbW1lbnQoICAiICkKK1NBWC5leHRlcm5hbFN1YnNldChyb290LCAsICkKK1NBWC5zdGFydEVsZW1lbnROcyhyb290LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhyb290LCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldDIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0Mi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEwMzk1NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldDIueG1sCkBAIC0wLDAgKzEsMjUwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBrYW5qaWRpYzIgWworPCEtLSBWZXJzaW9uIDEuMworCVRoaXMgaXMgdGhlIERURCBvZiB0aGUgWE1MLWZvcm1hdCBrYW5qaSBmaWxlIGNvbWJpbmluZyBpbmZvcm1hdGlvbiBmcm9tCisJdGhlIEtBTkpJRElDIGFuZCBLQU5KRDIxMiBmaWxlcy4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgbGFyZ2VseSBzZWxmLQorCWRvY3VtZW50aW5nLCB3aXRoIGVhY2ggZmllbGQgYmVpbmcgYWNjb21wYW5pZWQgYnkgYW4gZXhwbGFuYXRvcnkKKwljb21tZW50LgorCisJVGhlIGZpbGUgY292ZXJzIHRoZSBmb2xsb3dpbmcga2Fuamk6CisJKGEpIHRoZSA2LDM1NSBrYW5qaSBmcm9tIEpJUyBYIDAyMDg7CisJKGIpIHRoZSA1LDgwMSBrYW5qaSBmcm9tIEpJUyBYIDAyMTI7CisJKGMpIHRoZSAzLDYyNSBrYW5qaSBmcm9tIEpJUyBYIDAyMTMgYXMgZm9sbG93czoKKwkJKGkpIHRoZSAyLDc0MSBrYW5qaSB3aGljaCBhcmUgYWxzbyBpbiBKSVMgWCAwMjEyIGhhdmUKKwkJSklTIFggMDIxMyBjb2RlLXBvaW50cyAoa3V0ZW4pIGFkZGVkIHRvIHRoZSBleGlzdGluZyBlbnRyeTsKKwkJKGlpKSB0aGUgODg0ICJuZXciIGthbmppIGhhdmUgbmV3IGVudHJpZXMuCisKKwlBdCB0aGUgZW5kIG9mIHRoZSBleHBsYW5hdGlvbiBmb3IgYSBudW1iZXIgb2YgZmllbGRzIHRoZXJlIGlzIGEgdGFnCisJd2l0aCB0aGUgZm9ybWF0IFtOXS4gVGhpcyBpbmRpY2F0ZXMgdGhlIGxlYWRpbmcgbGV0dGVyKHMpIG9mIHRoZQorCWVxdWl2YWxlbnQgZmllbGQgaW4gdGhlIEtBTkpJRElDIGFuZCBLQU5KRDIxMiBmaWxlcy4KKworCVRoZSBLQU5KSURJQyBkb2N1bWVudGF0aW9uIHNob3VsZCBhbHNvIGJlIHJlYWQgZm9yIGFkZGl0aW9uYWwgCisJaW5mb3JtYXRpb24gYWJvdXQgdGhlIGluZm9ybWF0aW9uIGluIHRoZSBmaWxlLgorCS0tPjwhRUxFTUVOVCBrYW5qaWRpYzIgKGhlYWRlciAsIGNoYXJhY3RlciopPgorPCFFTEVNRU5UIGhlYWRlciAoZmlsZV92ZXJzaW9uICwgZGF0YWJhc2VfdmVyc2lvbiAsIGRhdGVfb2ZfY3JlYXRpb24pPgorPCEtLQorCVRoZSBzaW5nbGUgaGVhZGVyIGVsZW1lbnQgd2lsbCBjb250YWluIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uCisJYWJvdXQgdGhlIHZlcnNpb24gb2YgdGhlIGZpbGUgCisJLS0+PCFFTEVNRU5UIGZpbGVfdmVyc2lvbiAoI1BDREFUQSk+Cis8IS0tCisJVGhpcyBmaWVsZCBkZW5vdGVzIHRoZSB2ZXJzaW9uIG9mIGthbmppZGljMiBzdHJ1Y3R1cmUsIGFzIG1vcmUKKwl0aGFuIG9uZSB2ZXJzaW9uIG1heSBleGlzdC4KKwktLT48IUVMRU1FTlQgZGF0YWJhc2VfdmVyc2lvbiAoI1BDREFUQSk+Cis8IS0tCisJVGhlIHZlcnNpb24gb2YgdGhlIGZpbGUsIGluIHRoZSBmb3JtYXQgWVlZWS1OTiwgd2hlcmUgTk4gd2lsbCBiZQorCWEgbnVtYmVyIHN0YXJ0aW5nIHdpdGggMDEgZm9yIHRoZSBmaXJzdCB2ZXJzaW9uIHJlbGVhc2VkIGluIGEKKwljYWxlbmRhciB5ZWFyLCB0aGVuIGluY3JlYXNpbmcgZm9yIGVhY2ggdmVyc2lvbiBpbiB0aGF0IHllYXIuCisJLS0+PCFFTEVNRU5UIGRhdGVfb2ZfY3JlYXRpb24gKCNQQ0RBVEEpPgorPCEtLQorCVRoZSBkYXRlIHRoZSBmaWxlIHdhcyBjcmVhdGVkIGluIGludGVybmF0aW9uYWwgZm9ybWF0IChZWVlZLU1NLUREKS4KKwktLT48IUVMRU1FTlQgY2hhcmFjdGVyIChsaXRlcmFsICwgY29kZXBvaW50ICwgcmFkaWNhbCAsIG1pc2MgLCBkaWNfbnVtYmVyPyAsIHF1ZXJ5X2NvZGU/ICwgcmVhZGluZ19tZWFuaW5nPyAsIG5hbm9yaT8pKj4KKzwhRUxFTUVOVCBsaXRlcmFsICgjUENEQVRBKT4KKzwhLS0KKwlUaGUgY2hhcmFjdGVyIGl0c2VsZiBpbiBVVEY4IGNvZGluZy4KKwktLT48IUVMRU1FTlQgY29kZXBvaW50IChjcF92YWx1ZSkrPgorPCEtLSAKKwlUaGUgY29kZXBvaW50IGVsZW1lbnQgc3RhdGVzIHRoZSBjb2RlIG9mIHRoZSBjaGFyYWN0ZXIgaW4gdGhlIHZhcmlvdXMKKwljaGFyYWN0ZXIgc2V0IHN0YW5kYXJkcy4KKwktLT48IUVMRU1FTlQgY3BfdmFsdWUgKCNQQ0RBVEEpPgorPCEtLSAKKwlUaGUgY3BfdmFsdWUgY29udGFpbnMgdGhlIGNvZGVwb2ludCBvZiB0aGUgY2hhcmFjdGVyIGluIGEgcGFydGljdWxhcgorCXN0YW5kYXJkLiBUaGUgc3RhbmRhcmQgd2lsbCBiZSBpZGVudGlmaWVkIGluIHRoZSBjcF90eXBlIGF0dHJpYnV0ZS4KKwktLT48IUFUVExJU1QgY3BfdmFsdWUgY3BfdHlwZSBDREFUQSAjUkVRVUlSRUQ+Cis8IS0tIAorCVRoZSBjcF90eXBlIGF0dHJpYnV0ZSBzdGF0ZXMgdGhlIGNvZGluZyBzdGFuZGFyZCBhcHBseWluZyB0byB0aGUKKwllbGVtZW50LiBUaGUgdmFsdWVzIGFzc2lnbmVkIHNvIGZhciBhcmU6CisJCWppczIwOCAtIEpJUyBYIDAyMDgtMTk5NyAtIGt1dGVuIGNvZGluZyAobm4tbm4pCisJCWppczIxMiAtIEpJUyBYIDAyMTItMTk5MCAtIGt1dGVuIGNvZGluZyAobm4tbm4pCisJCWppczIxMyAtIEpJUyBYIDAyMTMtMjAwMCAtIGt1dGVuIGNvZGluZyAocC1ubi1ubikKKwkJdWNzIC0gVW5pY29kZSA0LjAgLSBoZXggY29kaW5nICg0IG9yIDUgaGV4YWRlY2ltYWwgZGlnaXRzKQorCS0tPjwhRUxFTUVOVCByYWRpY2FsIChyYWRfdmFsdWUpKz4KKzwhRUxFTUVOVCByYWRfdmFsdWUgKCNQQ0RBVEEpPgorPCEtLSAKKwlUaGUgcmFkaWNhbCBudW1iZXIsIGluIHRoZSByYW5nZSAxIHRvIDIxNC4gVGhlIHBhcnRpY3VsYXIKKwljbGFzc2lmaWNhdGlvbiB0eXBlIGlzIHN0YXRlZCBpbiB0aGUgcmFkX3R5cGUgYXR0cmlidXRlLgorCS0tPjwhQVRUTElTVCByYWRfdmFsdWUgcmFkX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorPCEtLSAKKwlUaGUgcmFkX3R5cGUgYXR0cmlidXRlIHN0YXRlcyB0aGUgdHlwZSBvZiByYWRpY2FsIGNsYXNzaWZpY2F0aW9uLgorCQljbGFzc2ljYWwgLSBhcyByZWNvcmRlZCBpbiB0aGUgS2FuZ1hpIFppZGlhbi4KKwkJbmVsc29uIC0gYXMgdXNlZCBpbiB0aGUgTmVsc29uICJNb2Rlcm4gSmFwYW5lc2UtRW5nbGlzaCAKKwkJQ2hhcmFjdGVyIERpY3Rpb25hcnkiIChpLmUuIHRoZSBDbGFzc2ljLCBub3QgdGhlIE5ldyBOZWxzb24pLgorCQlUaGlzIHdpbGwgb25seSBiZSB1c2VkIHdoZXJlIE5lbHNvbiByZWNsYXNzaWZpZWQgdGhlIGthbmppLgorCS0tPjwhRUxFTUVOVCBtaXNjIChncmFkZT8gLCBzdHJva2VfY291bnQrICwgdmFyaWFudCogLCBmcmVxKiAsIHJhZF9uYW1lKik+Cis8IUVMRU1FTlQgZ3JhZGUgKCNQQ0RBVEEpPgorPCEtLSAKKwlUaGUgSm91eW91IEthbmppIGdyYWRlIGxldmVsLiAxIHRocm91Z2ggNiBpbmRpY2F0ZSB0aGUgZ3JhZGUgaW4gd2hpY2gKKwl0aGUga2FuamkgaXMgdGF1Z2h0IGluIEphcGFuZXNlIHNjaG9vbHMuIDggaW5kaWNhdGVzIGl0IGlzIG9uZSBvZiB0aGUKKwlyZW1haW5pbmcgSm91eW91IEthbmppIHRvIGJlIGxlYXJuZWQgaW4ganVuaW9yIGhpZ2ggc2Nob29sLCBhbmQgOSAKKwlpbmRpY2F0ZXMgaXQgaXMgYSBKaW5tZWl5b3UgKGZvciB1c2UgaW4gbmFtZXMpIGthbmppLiBbR10KKwktLT48IUVMRU1FTlQgc3Ryb2tlX2NvdW50ICgjUENEQVRBKT4KKzwhLS0gCisJVGhlIHN0cm9rZSBjb3VudCBvZiB0aGUga2FuamksIGluY2x1ZGluZyB0aGUgcmFkaWNhbC4gSWYgbW9yZSB0aGFuIAorCW9uZSwgdGhlIGZpcnN0IGlzIGNvbnNpZGVyZWQgdGhlIGFjY2VwdGVkIGNvdW50LCB3aGlsZSBzdWJzZXF1ZW50IG9uZXMgCisJYXJlIGNvbW1vbiBtaXNjb3VudHMuIChTZWUgQXBwZW5kaXggRS4gb2YgdGhlIEtBTkpJRElDIGRvY3VtZW50YXRpb24KKwlmb3Igc29tZSBvZiB0aGUgcnVsZXMgYXBwbGllZCB3aGVuIGNvdW50aW5nIHN0cm9rZXMgaW4gc29tZSBvZiB0aGUgCisJcmFkaWNhbHMuKSBbU10KKwktLT48IUVMRU1FTlQgdmFyaWFudCAoI1BDREFUQSk+Cis8IS0tIAorCUEgY3Jvc3MtcmVmZXJlbmNlIGNvZGUgdG8gYW5vdGhlciBrYW5qaSwgdXN1YWxseSByZWdhcmRlZCBhcyBhIHZhcmlhbnQuCisJVGhlIHR5cGUgb2YgY3Jvc3MtcmVmZXJlbmNlIGlzIGdpdmVuIGluIHRoZSB2YXJfdHlwZSBhdHRyaWJ1dGUuCisJLS0+PCFBVFRMSVNUIHZhcmlhbnQgdmFyX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorPCEtLSAKKwlUaGUgdmFyX3R5cGUgYXR0cmlidXRlIGluZGljYXRlcyB0aGUgdHlwZSBvZiB2YXJpYW50IGNvZGUuIFRoZSBjdXJyZW50CisJdmFsdWVzIGFyZTogCisJCWppczIwOCAtIGluIEpJUyBYIDAyMDggLSBrdXRlbiBjb2RpbmcKKwkJamlzMjEyIC0gaW4gSklTIFggMDIxMiAtIGt1dGVuIGNvZGluZworCQlqaXMyMTMgLSBpbiBKSVMgWCAwMjEzIC0ga3V0ZW4gY29kaW5nCisJCWRlcm9vIC0gRGUgUm9vIG51bWJlciAtIG51bWVyaWMKKwkJbmplY2QgLSBIYWxwZXJuIE5KRUNEIGluZGV4IG51bWJlciAtIG51bWVyaWMKKwkJc19oIC0gVGhlIEthbmppIERpY3Rpb25hcnkgKFNwYWhuICYgSGFkYW1pdHpreSkgLSBkZXNjcmlwdG9yCisJCW5lbHNvbiAtICJDbGFzc2ljIiBOZWxzb24gLSBudW1lcmljCisJCW9uZWlsbCAtIEphcGFuZXNlIE5hbWVzIChPJ05laWxsKSAtIG51bWVyaWMKKwktLT48IUVMRU1FTlQgZnJlcSAoI1BDREFUQSk+Cis8IS0tIAorCUEgZnJlcXVlbmN5LW9mLXVzZSByYW5raW5nLiBUaGUgMiw1MDAgbW9zdC11c2VkIGNoYXJhY3RlcnMgaGF2ZSBhIAorCXJhbmtpbmc7IHRob3NlIGNoYXJhY3RlcnMgdGhhdCBsYWNrIHRoaXMgZmllbGQgYXJlIG5vdCByYW5rZWQuIFRoZSAKKwlmcmVxdWVuY3kgaXMgYSBudW1iZXIgZnJvbSAxIHRvIDIsNTAwIHRoYXQgZXhwcmVzc2VzIHRoZSByZWxhdGl2ZSAKKwlmcmVxdWVuY3kgb2Ygb2NjdXJyZW5jZSBvZiBhIGNoYXJhY3RlciBpbiBtb2Rlcm4gSmFwYW5lc2UuIFRoaXMgaXMKKwliYXNlZCBvbiBhIHN1cnZleSBpbiBuZXdzcGFwZXJzLCBzbyBpdCBpcyBiaWFzc2VkIHRvd2FyZHMga2FuamkKKwl1c2VkIGluIG5ld3NwYXBlciBhcnRpY2xlcy4gVGhlIGRpc2NyaW1pbmF0aW9uIGJldHdlZW4gdGhlIGxlc3MKKwlmcmVxdWVudGx5IHVzZWQga2FuamkgaXMgbm90IHN0cm9uZy4KKwktLT48IUVMRU1FTlQgcmFkX25hbWUgKCNQQ0RBVEEpPgorPCEtLSAKKwlXaGVuIHRoZSBrYW5qaSBpcyBpdHNlbGYgYSByYWRpY2FsIGFuZCBoYXMgYSBuYW1lLCB0aGlzIGVsZW1lbnQKKwljb250YWlucyB0aGUgbmFtZSAoaW4gaGlyYWdhbmEuKSBbVDJdCisJLS0+PCFFTEVNRU5UIGRpY19udW1iZXIgKGRpY19yZWYpKz4KKzwhLS0gCisJVGhpcyBlbGVtZW50IGNvbnRhaW5zIHRoZSBpbmRleCBudW1iZXJzIGFuZCBzaW1pbGFyIHVuc3RydWN0dXJlZAorCWluZm9ybWF0aW9uIHN1Y2ggYXMgcGFnZSBudW1iZXJzIGluIGEgbnVtYmVyIG9mIHB1Ymxpc2hlZCBkaWN0aW9uYXJpZXMsCisJYW5kIGluc3RydWN0aW9uYWwgYm9va3Mgb24ga2FuamkuCisJLS0+PCFFTEVNRU5UIGRpY19yZWYgKCNQQ0RBVEEpPgorPCEtLSAKKwlFYWNoIGRpY19yZWYgY29udGFpbnMgYW4gaW5kZXggbnVtYmVyLiBUaGUgcGFydGljdWxhciBkaWN0aW9uYXJ5LAorCWV0Yy4gaXMgZGVmaW5lZCBieSB0aGUgZHJfdHlwZSBhdHRyaWJ1dGUuCisJLS0+PCFBVFRMSVNUIGRpY19yZWYgZHJfdHlwZSBDREFUQSAjUkVRVUlSRUQ+Cis8IS0tIAorCVRoZSBkcl90eXBlIGRlZmluZXMgdGhlIGRpY3Rpb25hcnkgb3IgcmVmZXJlbmNlIGJvb2ssIGV0Yy4gdG8gd2hpY2gKKwlkaWNfcmVmIGVsZW1lbnQgYXBwbGllcy4gVGhlIGluaXRpYWwgYWxsb2NhdGlvbiBpczoKKwkgIG5lbHNvbl9jIC0gIk1vZGVybiBSZWFkZXIncyBKYXBhbmVzZS1FbmdsaXNoIENoYXJhY3RlciBEaWN0aW9uYXJ5IiwgIAorCSAgCWVkaXRlZCBieSBBbmRyZXcgTmVsc29uIChub3cgcHVibGlzaGVkIGFzIHRoZSAiQ2xhc3NpYyIgCisJICAJTmVsc29uKS4KKwkgIG5lbHNvbl9uIC0gIlRoZSBOZXcgTmVsc29uIEphcGFuZXNlLUVuZ2xpc2ggQ2hhcmFjdGVyIERpY3Rpb25hcnkiLCAKKwkgIAllZGl0ZWQgYnkgSm9obiBIYWlnLgorCSAgaGFscGVybl9uamVjZCAtICJOZXcgSmFwYW5lc2UtRW5nbGlzaCBDaGFyYWN0ZXIgRGljdGlvbmFyeSIsIAorCSAgCWVkaXRlZCBieSBKYWNrIEhhbHBlcm4uCisJICBoYWxwZXJuX2trbGQgLSAiS2FuamkgTGVhcm5lcnMgRGljdGlvbmFyeSIgKEtvZGFuc2hhKSBlZGl0ZWQgYnkgCisJICAJSmFjayBIYWxwZXJuLgorCSAgaGVpc2lnIC0gIlJlbWVtYmVyaW5nIFRoZSAgS2FuamkiICBieSAgSmFtZXMgSGVpc2lnLgorCSAgZ2Fra2VuIC0gIkEgIE5ldyBEaWN0aW9uYXJ5IG9mIEthbmppIFVzYWdlIiAoR2Fra2VuKQorCSAgb25laWxsX25hbWVzIC0gIkphcGFuZXNlIE5hbWVzIiwgYnkgUC5HLiBPJ05laWxsLiAKKwkgIG9uZWlsbF9rayAtICJFc3NlbnRpYWwgS2FuamkiIGJ5IFAuRy4gTydOZWlsbC4KKwkgIG1vcm8gLSAiRGFpa2Fud2FqaXRlbiIgY29tcGlsZWQgYnkgTW9yb2hhc2hpLiBGb3Igc29tZSBrYW5qaSB0d28KKwkgIAlhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgYXJlIHVzZWQ6IG1fdm9sOiAgdGhlIHZvbHVtZSBvZiB0aGUKKwkgIAlkaWN0aW9uYXJ5IGluIHdoaWNoIHRoZSBrYW5qaSBpcyBmb3VuZCwgYW5kIG1fcGFnZTogdGhlIHBhZ2UKKwkgIAludW1iZXIgaW4gdGhlIHZvbHVtZS4KKwkgIGhlbnNoYWxsIC0gIkEgR3VpZGUgVG8gUmVtZW1iZXJpbmcgSmFwYW5lc2UgQ2hhcmFjdGVycyIgYnkKKwkgIAlLZW5uZXRoIEcuICBIZW5zaGFsbC4KKwkgIHNoX2trIC0gIkthbmppIGFuZCBLYW5hIiBieSBTcGFobiBhbmQgSGFkYW1pdHpreS4KKwkgIHNha2FkZSAtICJBIEd1aWRlIFRvIFJlYWRpbmcgYW5kIFdyaXRpbmcgSmFwYW5lc2UiIGVkaXRlZCBieQorCSAgCUZsb3JlbmNlIFNha2FkZS4KKwkgIGhlbnNoYWxsMyAtICJBIEd1aWRlIFRvIFJlYWRpbmcgYW5kIFdyaXRpbmcgSmFwYW5lc2UiIDNyZAorCQllZGl0aW9uLCBlZGl0ZWQgYnkgSGVuc2hhbGwsIFNlZWxleSBhbmQgRGUgR3Jvb3QuCisJICB0dXR0X2NhcmRzIC0gVHV0dGxlIEthbmppIENhcmRzLCBjb21waWxlZCBieSBBbGV4YW5kZXIgS2Fzay4KKwkgIGNyb3dsZXkgLSAiVGhlIEthbmppIFdheSB0byBKYXBhbmVzZSBMYW5ndWFnZSBQb3dlciIgYnkKKwkgIAlEYWxlIENyb3dsZXkuCisJICBrYW5qaV9pbl9jb250ZXh0IC0gIkthbmppIGluIENvbnRleHQiIGJ5IE5pc2hpZ3VjaGkgYW5kIEtvbm8uCisJICBidXN5X3Blb3BsZSAtICJKYXBhbmVzZSBGb3IgQnVzeSBQZW9wbGUiIHZvbHMgSS1JSUksIHB1Ymxpc2hlZAorCQlieSB0aGUgQUpMVC4gVGhlIGNvZGVzIGFyZSB0aGUgdm9sdW1lLmNoYXB0ZXIuCisJICBrb2RhbnNoYV9jb21wYWN0IC0gdGhlICJLb2RhbnNoYSBDb21wYWN0IEthbmppIEd1aWRlIi4KKwktLT48IUFUVExJU1QgZGljX3JlZiBtX3ZvbCBDREFUQSAjSU1QTElFRD4KKzwhLS0gCisJU2VlIGFib3ZlIHVuZGVyICJtb3JvIi4KKwktLT48IUFUVExJU1QgZGljX3JlZiBtX3BhZ2UgQ0RBVEEgI0lNUExJRUQ+Cis8IS0tIAorCVNlZSBhYm92ZSB1bmRlciAibW9ybyIuCisJLS0+PCFFTEVNRU5UIHF1ZXJ5X2NvZGUgKHFfY29kZSkrPgorPCEtLSAKKwlUaGVzZSBjb2RlcyBjb250YWluIGluZm9ybWF0aW9uIHJlbGF0aW5nIHRvIHRoZSBnbHlwaCwgYW5kIGNhbiBiZSB1c2VkCisJZm9yIGZpbmRpbmcgYSByZXF1aXJlZCBrYW5qaS4gVGhlIHR5cGUgb2YgY29kZSBpcyBkZWZpbmVkIGJ5IHRoZQorCXFjX3R5cGUgYXR0cmlidXRlLgorCS0tPjwhRUxFTUVOVCBxX2NvZGUgKCNQQ0RBVEEpPgorPCEtLQorCVRoZSBxX2NvZGUgY29udGFpbnMgdGhlIGFjdHVhbCBxdWVyeS1jb2RlIHZhbHVlLCBhY2NvcmRpbmcgdG8gdGhlCisJcWNfdHlwZSBhdHRyaWJ1dGUuCisJLS0+PCFBVFRMSVNUIHFfY29kZSBxY190eXBlIENEQVRBICNSRVFVSVJFRD4KKzwhLS0gCisJVGhlIHFfY29kZSBhdHRyaWJ1dGUgZGVmaW5lcyB0aGUgdHlwZSBvZiBxdWVyeSBjb2RlLiBUaGUgY3VycmVudCB2YWx1ZXMKKwlhcmU6CisJICBza2lwIC0gIEhhbHBlcm4ncyBTS0lQIChTeXN0ZW0gIG9mICBLYW5qaSAgSW5kZXhpbmcgIGJ5ICBQYXR0ZXJucykgCisJICAJY29kZS4gVGhlICBmb3JtYXQgaXMgbi1ubi1ubi4gIFNlZSB0aGUgS0FOSklESUMgIGRvY3VtZW50YXRpb24gCisJICAJZm9yICBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb2RlIGFuZCByZXN0cmljdGlvbnMgb24gIHRoZSAKKwkgIAljb21tZXJjaWFsICB1c2UgIG9mIHRoaXMgZGF0YS4gW1BdCisKKwkgIHNoX2Rlc2MgLSB0aGUgZGVzY3JpcHRvciBjb2RlcyBmb3IgVGhlIEthbmppIERpY3Rpb25hcnkgKFR1dHRsZSAKKwkgIAkxOTk2KSBieSBTcGFobiBhbmQgSGFkYW1pdHpreS4gVGhleSBhcmUgaW4gdGhlIGZvcm0gbnhubi5uLCAgCisJICAJZS5nLiAgM2sxMS4yLCB3aGVyZSB0aGUgIGthbmppIGhhcyAzIHN0cm9rZXMgaW4gdGhlIAorCSAgCWlkZW50aWZ5aW5nIHJhZGljYWwsIGl0IGlzIHJhZGljYWwgImsiIGluIHRoZSBTSCAKKwkgIAljbGFzc2lmaWNhdGlvbiBzeXN0ZW0sIHRoZXJlIGFyZSAxMSBvdGhlciBzdHJva2VzLCBhbmQgaXQgaXMgCisJICAJdGhlIDJuZCBrYW5qaSBpbiB0aGUgM2sxMSBzZXF1ZW5jZS4gKEkgYW0gdmVyeSBncmF0ZWZ1bCB0byAKKwkgIAlNYXJrIFNwYWhuIGZvciBwcm92aWRpbmcgdGhlIGxpc3Qgb2YgdGhlc2UgZGVzY3JpcHRvciBjb2RlcyAKKwkgIAlmb3IgdGhlIGthbmppIGluIHRoaXMgZmlsZS4pIFtJXQorCSAgZm91cl9jb3JuZXIgLSB0aGUgIkZvdXIgQ29ybmVyIiBjb2RlIGZvciB0aGUga2FuamkuIFRoaXMgaXMgYSBjb2RlIAorCSAgCWludmVudGVkIGJ5IFdhbmcgQ2hlbiBpbiAxOTI4LiBTZWUgdGhlIEtBTkpJRElDIGRvY3VtZW50YXRpb24gCisJICAJZm9yICBhbiBvdmVydmlldyBvZiAgdGhlIEZvdXIgQ29ybmVyIFN5c3RlbS4gW1FdCisKKwkgIGRlcm9vIC0gdGhlIGNvZGVzIGRldmVsb3BlZCBieSB0aGUgbGF0ZSBGYXRoZXIgSm9zZXBoIERlIFJvbywgYW5kIAorCSAgCXB1Ymxpc2hlZCBpbiAgaGlzIGJvb2sgIjIwMDEgS2FuamkiIChCb2ppbnNoYSkuIEZyIERlIFJvbyAKKwkgIAlnYXZlIGhpcyBwZXJtaXNzaW9uIGZvciB0aGVzZSBjb2RlcyB0byBiZSBpbmNsdWRlZC4gW0RSXQorCSAgbWlzY2xhc3MgLSBhIHBvc3NpYmxlIG1pc2NsYXNzaWZpY2F0aW9uIG9mIHRoZSBrYW5qaSBhY2NvcmRpbmcKKwkJdG8gb25lIG9mIHRoZSBjb2RlIHR5cGVzLiAoU2VlIHRoZSAiWiIgY29kZXMgaW4gdGhlIEtBTkpJRElDCisJCWRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4pCisJICAKKwktLT48IUVMRU1FTlQgcmVhZGluZ19tZWFuaW5nIChybWdyb3VwKiAsIG5hbm9yaSopPgorPCEtLSAKKwlUaGUgcmVhZGluZ3MgZm9yIHRoZSBrYW5qaSBpbiBzZXZlcmFsIGxhbmd1YWdlcywgYW5kIHRoZSBtZWFuaW5ncywgYWxzbworCWluIHNldmVyYWwgbGFuZ3VhZ2VzLiBUaGUgcmVhZGluZ3MgYW5kIG1lYW5pbmdzIGFyZSBncm91cGVkIHRvIGVuYWJsZQorCXRoZSBoYW5kbGluZyBvZiB0aGUgc2l0dWF0aW9uIHdoZXJlIHRoZSBtZWFuaW5nIGlzIGRpZmZlcmVudGlhdGVkIGJ5IAorCXJlYWRpbmcuIFtUMV0KKwktLT48IUVMRU1FTlQgbmFub3JpICgjUENEQVRBKT4KKzwhLS0gCisJSmFwYW5lc2UgcmVhZGluZ3MgdGhhdCBhcmUgbm93IG9ubHkgYXNzb2NpYXRlZCB3aXRoIG5hbWVzLgorCS0tPjwhRUxFTUVOVCBybWdyb3VwIChyZWFkaW5nKiAsIG1lYW5pbmcqKT4KKzwhRUxFTUVOVCByZWFkaW5nICgjUENEQVRBKT4KKzwhLS0gCisJVGhlIHJlYWRpbmcgZWxlbWVudCBjb250YWlucyB0aGUgcmVhZGluZyBvciBwcm9udW5jaWF0aW9uCisJb2YgdGhlIGthbmppLgorCS0tPjwhQVRUTElTVCByZWFkaW5nIHJfdHlwZSBDREFUQSAjUkVRVUlSRUQ+Cis8IS0tIAorCVRoZSByX3R5cGUgYXR0cmlidXRlIGRlZmluZXMgdGhlIHR5cGUgb2YgcmVhZGluZyBpbiB0aGUgcmVhZGluZworCWVsZW1lbnQuIFRoZSBjdXJyZW50IHZhbHVlcyBhcmU6CisJICBwaW55aW4gLSB0aGUgbW9kZXJuIFBpbllpbiByb21hbml6YXRpb24gb2YgdGhlIENoaW5lc2UgcmVhZGluZyAKKwkgIAlvZiB0aGUga2FuamkuIFRoZSB0b25lcyBhcmUgcmVwcmVzZW50ZWQgYnkgYSBjb25jbHVkaW5nIAorCSAgCWRpZ2l0LiBbWV0KKwkgIGtvcmVhbl9yIC0gdGhlIHJvbWFuaXplZCBmb3JtIG9mIHRoZSBLb3JlYW4gcmVhZGluZyhzKSBvZiB0aGUgCisJICAJa2FuamkuICBUaGUgcmVhZGluZ3MgYXJlIGluIHRoZSAoUmVwdWJsaWMgb2YgS29yZWEpIE1pbmlzdHJ5IAorCSAgCW9mIEVkdWNhdGlvbiBzdHlsZSBvZiByb21hbml6YXRpb24uIFtXXQorCSAga29yZWFuX2ggLSB0aGUgS29yZWFuIHJlYWRpbmcocykgb2YgdGhlIGthbmppIGluIGhhbmd1bC4KKwkgIGphX29uIC0gdGhlICJvbiIgSmFwYW5lc2UgcmVhZGluZyBvZiB0aGUga2FuamksIGluIGthdGFrYW5hLiBBCisJICAJc2Vjb25kIGF0dHJpYnV0ZSByX3N0YXR1cywgaWYgcHJlc2VudCwgd2lsbCBpbmRpY2F0ZSB3aXRoCisJICAJYSB2YWx1ZSBvZiAiankiIHdoZXRoZXIgdGhlIHJlYWRpbmcgaXMgYXBwcm92ZWQgZm9yIGEKKwkgIAkiSm91eW91IGthbmppIi4KKwkgIGphX2t1biAtIHRoZSAia3VuIiBKYXBhbmVzZSByZWFkaW5nIG9mIHRoZSBrYW5qaSwgaW4gaGlyYWdhbmEuIAorCSAgCVdoZXJlIHJlbGV2YW50IHRoZSBva3VyaWdhbmEgaXMgYWxzbyBpbmNsdWRlZCBzZXBhcmF0ZWQgYnkgYSAKKwkgIAkiLiIuIFJlYWRpbmdzIGFzc29jaWF0ZWQgd2l0aCBwcmVmaXhlcyBhbmQgc3VmZml4ZXMgYXJlIAorCSAgCW1hcmtlZCB3aXRoIGEgIi0iLiBBIHNlY29uZCBhdHRyaWJ1dGUgcl9zdGF0dXMsIGlmIHByZXNlbnQsIAorCSAgCXdpbGwgaW5kaWNhdGUgd2l0aCBhIHZhbHVlIG9mICJqeSIgd2hldGhlciB0aGUgcmVhZGluZyBpcyAKKwkgIAlhcHByb3ZlZCBmb3IgYSAiSm91eW91IGthbmppIi4KKwktLT48IUFUVExJU1QgcmVhZGluZyByX3N0YXR1cyBDREFUQSAjSU1QTElFRD4KKzwhLS0gCisJU2VlIHVuZGVyIGphX29uIGFuZCBqYV9rdW4gYWJvdmUuCisJLS0+PCFFTEVNRU5UIG1lYW5pbmcgKCNQQ0RBVEEpPgorPCEtLSAKKwlUaGUgbWVhbmluZyBhc3NvY2lhdGVkIHdpdGggdGhlIGthbmppLgorCS0tPjwhQVRUTElTVCBtZWFuaW5nIG1fbGFuZyBDREFUQSAjSU1QTElFRD4KKzwhLS0gCisJVGhlIG1fbGFuZyBhdHRyaWJ1dGUgZGVmaW5lcyB0aGUgdGFyZ2V0IGxhbmd1YWdlIG9mIHRoZSBtZWFuaW5nLiBJdCAKKwl3aWxsIGJlIGNvZGVkIHVzaW5nIHRoZSB0d28tbGV0dGVyIGxhbmd1YWdlIGNvZGUgZnJvbSB0aGUgSVNPIDYzOSAKKwlzdGFuZGFyZC4gV2hlbiBhYnNlbnQsIHRoZSB2YWx1ZSAiZW4iIChpLmUuIEVuZ2xpc2gpIGlzIGltcGxpZWQuIFt7fV0KKwktLT5dPgorPGthbmppZGljMj4KKzwva2FuamlkaWMyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0Mi54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0Mi54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyN2UyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQyLnhtbC5yZGUKQEAgLTAsMCArMSw1IEBACiswIDEwIGthbmppZGljMiAwIDAKKzAgMSBrYW5qaWRpYzIgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBrYW5qaWRpYzIgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQyLnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQyLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3ZTI0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldDIueG1sLnJkcgpAQCAtMCwwICsxLDUgQEAKKzAgMTAga2FuamlkaWMyIDAgMAorMCAxIGthbmppZGljMiAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGthbmppZGljMiAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldDIueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldDIueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGQ3YmY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaW50c3Vic2V0Mi54bWwuc2F4CkBAIC0wLDAgKzEsMjg2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChrYW5qaWRpYzIsICwgKQorU0FYLmNvbW1lbnQoIFZlcnNpb24gMS4zCisJVGhpcyBpcyB0aGUgRFREIG9mIHRoZSBYTUwtZm9ybWF0IGthbmppIGZpbGUgY29tYmluaW5nIGluZm9ybWF0aW9uIGZyb20KKwl0aGUgS0FOSklESUMgYW5kIEtBTkpEMjEyIGZpbGVzLiBJdCBpcyBpbnRlbmRlZCB0byBiZSBsYXJnZWx5IHNlbGYtCisJZG9jdW1lbnRpbmcsIHdpdGggZWFjaCBmaWVsZCBiZWluZyBhY2NvbXBhbmllZCBieSBhbiBleHBsYW5hdG9yeQorCWNvbW1lbnQuCisKKwlUaGUgZmlsZSBjb3ZlcnMgdGhlIGZvbGxvd2luZyBrYW5qaToKKwkoYSkgdGhlIDYsMzU1IGthbmppIGZyb20gSklTIFggMDIwODsKKwkoYikgdGhlIDUsODAxIGthbmppIGZyb20gSklTIFggMDIxMjsKKwkoYykgdGhlIDMsNjI1IGthbmppIGZyb20gSklTIFggMDIxMyBhcyBmb2xsb3dzOgorCQkoaSkgdGhlIDIsNzQxIGthbmppIHdoaWNoIGFyZSBhbHNvIGluIEpJUyBYIDAyMTIgaGF2ZQorCQlKSVMgWCAwMjEzIGNvZGUtcG9pbnRzIChrdXRlbikgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIGVudHJ5OworCQkoaWkpIHRoZSA4ODQgIm5ldyIga2FuamkgaGF2ZSBuZXcgZW50cmllcy4KKworCUF0IHRoZSBlbmQgb2YgdGhlIGV4cGxhbmF0aW9uIGZvciBhIG51bWJlciBvZiBmaWVsZHMgdGhlcmUgaXMgYSB0YWcKKwl3aXRoIHRoZSBmb3JtYXQgW05dLiBUaGlzIGluZGljYXRlcyB0aGUgbGVhZGluZyBsZXR0ZXIocykgb2YgdGhlCisJZXF1aXZhbGVudCBmaWVsZCBpbiB0aGUgS0FOSklESUMgYW5kIEtBTkpEMjEyIGZpbGVzLgorCisJVGhlIEtBTkpJRElDIGRvY3VtZW50YXRpb24gc2hvdWxkIGFsc28gYmUgcmVhZCBmb3IgYWRkaXRpb25hbCAKKwlpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGZpbGUuCisJKQorU0FYLmVsZW1lbnREZWNsKGthbmppZGljMiwgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKGhlYWRlciwgNCwgLi4uKQorU0FYLmNvbW1lbnQoCisJVGhlIHNpbmdsZSBoZWFkZXIgZWxlbWVudCB3aWxsIGNvbnRhaW4gaWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24KKwlhYm91dCB0aGUgdmVyc2lvbiBvZiB0aGUgZmlsZSAKKwkpCitTQVguZWxlbWVudERlY2woZmlsZV92ZXJzaW9uLCAzLCAuLi4pCitTQVguY29tbWVudCgKKwlUaGlzIGZpZWxkIGRlbm90ZXMgdGhlIHZlcnNpb24gb2Yga2FuamlkaWMyIHN0cnVjdHVyZSwgYXMgbW9yZQorCXRoYW4gb25lIHZlcnNpb24gbWF5IGV4aXN0LgorCSkKK1NBWC5lbGVtZW50RGVjbChkYXRhYmFzZV92ZXJzaW9uLCAzLCAuLi4pCitTQVguY29tbWVudCgKKwlUaGUgdmVyc2lvbiBvZiB0aGUgZmlsZSwgaW4gdGhlIGZvcm1hdCBZWVlZLU5OLCB3aGVyZSBOTiB3aWxsIGJlCisJYSBudW1iZXIgc3RhcnRpbmcgd2l0aCAwMSBmb3IgdGhlIGZpcnN0IHZlcnNpb24gcmVsZWFzZWQgaW4gYQorCWNhbGVuZGFyIHllYXIsIHRoZW4gaW5jcmVhc2luZyBmb3IgZWFjaCB2ZXJzaW9uIGluIHRoYXQgeWVhci4KKwkpCitTQVguZWxlbWVudERlY2woZGF0ZV9vZl9jcmVhdGlvbiwgMywgLi4uKQorU0FYLmNvbW1lbnQoCisJVGhlIGRhdGUgdGhlIGZpbGUgd2FzIGNyZWF0ZWQgaW4gaW50ZXJuYXRpb25hbCBmb3JtYXQgKFlZWVktTU0tREQpLgorCSkKK1NBWC5lbGVtZW50RGVjbChjaGFyYWN0ZXIsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChsaXRlcmFsLCAzLCAuLi4pCitTQVguY29tbWVudCgKKwlUaGUgY2hhcmFjdGVyIGl0c2VsZiBpbiBVVEY4IGNvZGluZy4KKwkpCitTQVguZWxlbWVudERlY2woY29kZXBvaW50LCA0LCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIGNvZGVwb2ludCBlbGVtZW50IHN0YXRlcyB0aGUgY29kZSBvZiB0aGUgY2hhcmFjdGVyIGluIHRoZSB2YXJpb3VzCisJY2hhcmFjdGVyIHNldCBzdGFuZGFyZHMuCisJKQorU0FYLmVsZW1lbnREZWNsKGNwX3ZhbHVlLCAzLCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIGNwX3ZhbHVlIGNvbnRhaW5zIHRoZSBjb2RlcG9pbnQgb2YgdGhlIGNoYXJhY3RlciBpbiBhIHBhcnRpY3VsYXIKKwlzdGFuZGFyZC4gVGhlIHN0YW5kYXJkIHdpbGwgYmUgaWRlbnRpZmllZCBpbiB0aGUgY3BfdHlwZSBhdHRyaWJ1dGUuCisJKQorU0FYLmF0dHJpYnV0ZURlY2woY3BfdmFsdWUsIGNwX3R5cGUsIDEsIDIsIE5VTEwsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgY3BfdHlwZSBhdHRyaWJ1dGUgc3RhdGVzIHRoZSBjb2Rpbmcgc3RhbmRhcmQgYXBwbHlpbmcgdG8gdGhlCisJZWxlbWVudC4gVGhlIHZhbHVlcyBhc3NpZ25lZCBzbyBmYXIgYXJlOgorCQlqaXMyMDggLSBKSVMgWCAwMjA4LTE5OTcgLSBrdXRlbiBjb2RpbmcgKG5uLW5uKQorCQlqaXMyMTIgLSBKSVMgWCAwMjEyLTE5OTAgLSBrdXRlbiBjb2RpbmcgKG5uLW5uKQorCQlqaXMyMTMgLSBKSVMgWCAwMjEzLTIwMDAgLSBrdXRlbiBjb2RpbmcgKHAtbm4tbm4pCisJCXVjcyAtIFVuaWNvZGUgNC4wIC0gaGV4IGNvZGluZyAoNCBvciA1IGhleGFkZWNpbWFsIGRpZ2l0cykKKwkpCitTQVguZWxlbWVudERlY2wocmFkaWNhbCwgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKHJhZF92YWx1ZSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSByYWRpY2FsIG51bWJlciwgaW4gdGhlIHJhbmdlIDEgdG8gMjE0LiBUaGUgcGFydGljdWxhcgorCWNsYXNzaWZpY2F0aW9uIHR5cGUgaXMgc3RhdGVkIGluIHRoZSByYWRfdHlwZSBhdHRyaWJ1dGUuCisJKQorU0FYLmF0dHJpYnV0ZURlY2wocmFkX3ZhbHVlLCByYWRfdHlwZSwgMSwgMiwgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSByYWRfdHlwZSBhdHRyaWJ1dGUgc3RhdGVzIHRoZSB0eXBlIG9mIHJhZGljYWwgY2xhc3NpZmljYXRpb24uCisJCWNsYXNzaWNhbCAtIGFzIHJlY29yZGVkIGluIHRoZSBLYW5nWGkgWmlkaWFuLgorCQluZWxzb24gLSBhcyB1c2VkIGluIHRoZSBOZWxzb24gIk1vZGVybiBKYXBhbmVzZS1FbmdsaXNoIAorCQlDaGFyYWN0ZXIgRGljdGlvbmFyeSIgKGkuZS4gdGhlIENsYXNzaWMsIG5vdCB0aGUgTmV3IE5lbHNvbikuCisJCVRoaXMgd2lsbCBvbmx5IGJlIHVzZWQgd2hlcmUgTmVsc29uIHJlY2xhc3NpZmllZCB0aGUga2FuamkuCisJKQorU0FYLmVsZW1lbnREZWNsKG1pc2MsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChncmFkZSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSBKb3V5b3UgS2FuamkgZ3JhZGUgbGV2ZWwuIDEgdGhyb3VnaCA2IGluZGljYXRlIHRoZSBncmFkZSBpbiB3aGljaAorCXRoZSBrYW5qaSBpcyB0YXVnaHQgaW4gSmFwYW5lc2Ugc2Nob29scy4gOCBpbmRpY2F0ZXMgaXQgaXMgb25lIG9mIHRoZQorCXJlbWFpbmluZyBKb3V5b3UgS2FuamkgdG8gYmUgbGVhcm5lZCBpbiBqdW5pb3IgaGlnaCBzY2hvb2wsIGFuZCA5IAorCWluZGljYXRlcyBpdCBpcyBhIEppbm1laXlvdSAoZm9yIHVzZSBpbiBuYW1lcykga2FuamkuIFtHXQorCSkKK1NBWC5lbGVtZW50RGVjbChzdHJva2VfY291bnQsIDMsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgc3Ryb2tlIGNvdW50IG9mIHRoZSBrYW5qaSwgaW5jbHVkaW5nIHRoZSByYWRpY2FsLiBJZiBtb3JlIHRoYW4gCisJb25lLCB0aGUgZmlyc3QgaXMgY29uc2lkZXJlZCB0aGUgYWNjZXB0ZWQgY291bnQsIHdoaWxlIHN1YnNlcXVlbnQgb25lcyAKKwlhcmUgY29tbW9uIG1pc2NvdW50cy4gKFNlZSBBcHBlbmRpeCBFLiBvZiB0aGUgS0FOSklESUMgZG9jdW1lbnRhdGlvbgorCWZvciBzb21lIG9mIHRoZSBydWxlcyBhcHBsaWVkIHdoZW4gY291bnRpbmcgc3Ryb2tlcyBpbiBzb21lIG9mIHRoZSAKKwlyYWRpY2Fscy4pIFtTXQorCSkKK1NBWC5lbGVtZW50RGVjbCh2YXJpYW50LCAzLCAuLi4pCitTQVguY29tbWVudCggCisJQSBjcm9zcy1yZWZlcmVuY2UgY29kZSB0byBhbm90aGVyIGthbmppLCB1c3VhbGx5IHJlZ2FyZGVkIGFzIGEgdmFyaWFudC4KKwlUaGUgdHlwZSBvZiBjcm9zcy1yZWZlcmVuY2UgaXMgZ2l2ZW4gaW4gdGhlIHZhcl90eXBlIGF0dHJpYnV0ZS4KKwkpCitTQVguYXR0cmlidXRlRGVjbCh2YXJpYW50LCB2YXJfdHlwZSwgMSwgMiwgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSB2YXJfdHlwZSBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoZSB0eXBlIG9mIHZhcmlhbnQgY29kZS4gVGhlIGN1cnJlbnQKKwl2YWx1ZXMgYXJlOiAKKwkJamlzMjA4IC0gaW4gSklTIFggMDIwOCAtIGt1dGVuIGNvZGluZworCQlqaXMyMTIgLSBpbiBKSVMgWCAwMjEyIC0ga3V0ZW4gY29kaW5nCisJCWppczIxMyAtIGluIEpJUyBYIDAyMTMgLSBrdXRlbiBjb2RpbmcKKwkJZGVyb28gLSBEZSBSb28gbnVtYmVyIC0gbnVtZXJpYworCQluamVjZCAtIEhhbHBlcm4gTkpFQ0QgaW5kZXggbnVtYmVyIC0gbnVtZXJpYworCQlzX2ggLSBUaGUgS2FuamkgRGljdGlvbmFyeSAoU3BhaG4gJiBIYWRhbWl0emt5KSAtIGRlc2NyaXB0b3IKKwkJbmVsc29uIC0gIkNsYXNzaWMiIE5lbHNvbiAtIG51bWVyaWMKKwkJb25laWxsIC0gSmFwYW5lc2UgTmFtZXMgKE8nTmVpbGwpIC0gbnVtZXJpYworCSkKK1NBWC5lbGVtZW50RGVjbChmcmVxLCAzLCAuLi4pCitTQVguY29tbWVudCggCisJQSBmcmVxdWVuY3ktb2YtdXNlIHJhbmtpbmcuIFRoZSAyLDUwMCBtb3N0LXVzZWQgY2hhcmFjdGVycyBoYXZlIGEgCisJcmFua2luZzsgdGhvc2UgY2hhcmFjdGVycyB0aGF0IGxhY2sgdGhpcyBmaWVsZCBhcmUgbm90IHJhbmtlZC4gVGhlIAorCWZyZXF1ZW5jeSBpcyBhIG51bWJlciBmcm9tIDEgdG8gMiw1MDAgdGhhdCBleHByZXNzZXMgdGhlIHJlbGF0aXZlIAorCWZyZXF1ZW5jeSBvZiBvY2N1cnJlbmNlIG9mIGEgY2hhcmFjdGVyIGluIG1vZGVybiBKYXBhbmVzZS4gVGhpcyBpcworCWJhc2VkIG9uIGEgc3VydmV5IGluIG5ld3NwYXBlcnMsIHNvIGl0IGlzIGJpYXNzZWQgdG93YXJkcyBrYW5qaQorCXVzZWQgaW4gbmV3c3BhcGVyIGFydGljbGVzLiBUaGUgZGlzY3JpbWluYXRpb24gYmV0d2VlbiB0aGUgbGVzcworCWZyZXF1ZW50bHkgdXNlZCBrYW5qaSBpcyBub3Qgc3Ryb25nLgorCSkKK1NBWC5lbGVtZW50RGVjbChyYWRfbmFtZSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCVdoZW4gdGhlIGthbmppIGlzIGl0c2VsZiBhIHJhZGljYWwgYW5kIGhhcyBhIG5hbWUsIHRoaXMgZWxlbWVudAorCWNvbnRhaW5zIHRoZSBuYW1lIChpbiBoaXJhZ2FuYS4pIFtUMl0KKwkpCitTQVguZWxlbWVudERlY2woZGljX251bWJlciwgNCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoaXMgZWxlbWVudCBjb250YWlucyB0aGUgaW5kZXggbnVtYmVycyBhbmQgc2ltaWxhciB1bnN0cnVjdHVyZWQKKwlpbmZvcm1hdGlvbiBzdWNoIGFzIHBhZ2UgbnVtYmVycyBpbiBhIG51bWJlciBvZiBwdWJsaXNoZWQgZGljdGlvbmFyaWVzLAorCWFuZCBpbnN0cnVjdGlvbmFsIGJvb2tzIG9uIGthbmppLgorCSkKK1NBWC5lbGVtZW50RGVjbChkaWNfcmVmLCAzLCAuLi4pCitTQVguY29tbWVudCggCisJRWFjaCBkaWNfcmVmIGNvbnRhaW5zIGFuIGluZGV4IG51bWJlci4gVGhlIHBhcnRpY3VsYXIgZGljdGlvbmFyeSwKKwlldGMuIGlzIGRlZmluZWQgYnkgdGhlIGRyX3R5cGUgYXR0cmlidXRlLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKGRpY19yZWYsIGRyX3R5cGUsIDEsIDIsIE5VTEwsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgZHJfdHlwZSBkZWZpbmVzIHRoZSBkaWN0aW9uYXJ5IG9yIHJlZmVyZW5jZSBib29rLCBldGMuIHRvIHdoaWNoCisJZGljX3JlZiBlbGVtZW50IGFwcGxpZXMuIFRoZSBpbml0aWFsIGFsbG9jYXRpb24gaXM6CisJICBuZWxzb25fYyAtICJNb2Rlcm4gUmVhZGVyJ3MgSmFwYW5lc2UtRW5nbGlzaCBDaGFyYWN0ZXIgRGljdGlvbmFyeSIsICAKKwkgIAllZGl0ZWQgYnkgQW5kcmV3IE5lbHNvbiAobm93IHB1Ymxpc2hlZCBhcyB0aGUgIkNsYXNzaWMiIAorCSAgCU5lbHNvbikuCisJICBuZWxzb25fbiAtICJUaGUgTmV3IE5lbHNvbiBKYXBhbmVzZS1FbmdsaXNoIENoYXJhY3RlciBEaWN0aW9uYXJ5IiwgCisJICAJZWRpdGVkIGJ5IEpvaG4gSGFpZy4KKwkgIGhhbHBlcm5fbmplY2QgLSAiTmV3IEphcGFuZXNlLUVuZ2xpc2ggQ2hhcmFjdGVyIERpY3Rpb25hcnkiLCAKKwkgIAllZGl0ZWQgYnkgSmFjayBIYWxwZXJuLgorCSAgaGFscGVybl9ra2xkIC0gIkthbmppIExlYXJuZXJzIERpY3Rpb25hcnkiIChLb2RhbnNoYSkgZWRpdGVkIGJ5IAorCSAgCUphY2sgSGFscGVybi4KKwkgIGhlaXNpZyAtICJSZW1lbWJlcmluZyBUaGUgIEthbmppIiAgYnkgIEphbWVzIEhlaXNpZy4KKwkgIGdha2tlbiAtICJBICBOZXcgRGljdGlvbmFyeSBvZiBLYW5qaSBVc2FnZSIgKEdha2tlbikKKwkgIG9uZWlsbF9uYW1lcyAtICJKYXBhbmVzZSBOYW1lcyIsIGJ5IFAuRy4gTydOZWlsbC4gCisJICBvbmVpbGxfa2sgLSAiRXNzZW50aWFsIEthbmppIiBieSBQLkcuIE8nTmVpbGwuCisJICBtb3JvIC0gIkRhaWthbndhaml0ZW4iIGNvbXBpbGVkIGJ5IE1vcm9oYXNoaS4gRm9yIHNvbWUga2FuamkgdHdvCisJICAJYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGFyZSB1c2VkOiBtX3ZvbDogIHRoZSB2b2x1bWUgb2YgdGhlCisJICAJZGljdGlvbmFyeSBpbiB3aGljaCB0aGUga2FuamkgaXMgZm91bmQsIGFuZCBtX3BhZ2U6IHRoZSBwYWdlCisJICAJbnVtYmVyIGluIHRoZSB2b2x1bWUuCisJICBoZW5zaGFsbCAtICJBIEd1aWRlIFRvIFJlbWVtYmVyaW5nIEphcGFuZXNlIENoYXJhY3RlcnMiIGJ5CisJICAJS2VubmV0aCBHLiAgSGVuc2hhbGwuCisJICBzaF9rayAtICJLYW5qaSBhbmQgS2FuYSIgYnkgU3BhaG4gYW5kIEhhZGFtaXR6a3kuCisJICBzYWthZGUgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiBlZGl0ZWQgYnkKKwkgIAlGbG9yZW5jZSBTYWthZGUuCisJICBoZW5zaGFsbDMgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiAzcmQKKwkJZWRpdGlvbiwgZWRpdGVkIGJ5IEhlbnNoYWxsLCBTZWVsZXkgYW5kIERlIEdyb290LgorCSAgdHV0dF9jYXJkcyAtIFR1dHRsZSBLYW5qaSBDYXJkcywgY29tcGlsZWQgYnkgQWxleGFuZGVyIEthc2suCisJICBjcm93bGV5IC0gIlRoZSBLYW5qaSBXYXkgdG8gSmFwYW5lc2UgTGFuZ3VhZ2UgUG93ZXIiIGJ5CisJICAJRGFsZSBDcm93bGV5LgorCSAga2FuamlfaW5fY29udGV4dCAtICJLYW5qaSBpbiBDb250ZXh0IiBieSBOaXNoaWd1Y2hpIGFuZCBLb25vLgorCSAgYnVzeV9wZW9wbGUgLSAiSmFwYW5lc2UgRm9yIEJ1c3kgUGVvcGxlIiB2b2xzIEktSUlJLCBwdWJsaXNoZWQKKwkJYnkgdGhlIEFKTFQuIFRoZSBjb2RlcyBhcmUgdGhlIHZvbHVtZS5jaGFwdGVyLgorCSAga29kYW5zaGFfY29tcGFjdCAtIHRoZSAiS29kYW5zaGEgQ29tcGFjdCBLYW5qaSBHdWlkZSIuCisJKQorU0FYLmF0dHJpYnV0ZURlY2woZGljX3JlZiwgbV92b2wsIDEsIDMsIE5VTEwsIC4uLikKK1NBWC5jb21tZW50KCAKKwlTZWUgYWJvdmUgdW5kZXIgIm1vcm8iLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKGRpY19yZWYsIG1fcGFnZSwgMSwgMywgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVNlZSBhYm92ZSB1bmRlciAibW9ybyIuCisJKQorU0FYLmVsZW1lbnREZWNsKHF1ZXJ5X2NvZGUsIDQsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGVzZSBjb2RlcyBjb250YWluIGluZm9ybWF0aW9uIHJlbGF0aW5nIHRvIHRoZSBnbHlwaCwgYW5kIGNhbiBiZSB1c2VkCisJZm9yIGZpbmRpbmcgYSByZXF1aXJlZCBrYW5qaS4gVGhlIHR5cGUgb2YgY29kZSBpcyBkZWZpbmVkIGJ5IHRoZQorCXFjX3R5cGUgYXR0cmlidXRlLgorCSkKK1NBWC5lbGVtZW50RGVjbChxX2NvZGUsIDMsIC4uLikKK1NBWC5jb21tZW50KAorCVRoZSBxX2NvZGUgY29udGFpbnMgdGhlIGFjdHVhbCBxdWVyeS1jb2RlIHZhbHVlLCBhY2NvcmRpbmcgdG8gdGhlCisJcWNfdHlwZSBhdHRyaWJ1dGUuCisJKQorU0FYLmF0dHJpYnV0ZURlY2wocV9jb2RlLCBxY190eXBlLCAxLCAyLCBOVUxMLCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIHFfY29kZSBhdHRyaWJ1dGUgZGVmaW5lcyB0aGUgdHlwZSBvZiBxdWVyeSBjb2RlLiBUaGUgY3VycmVudCB2YWx1ZXMKKwlhcmU6CisJICBza2lwIC0gIEhhbHBlcm4ncyBTS0lQIChTeXN0ZW0gIG9mICBLYW5qaSAgSW5kZXhpbmcgIGJ5ICBQYXR0ZXJucykgCisJICAJY29kZS4gVGhlICBmb3JtYXQgaXMgbi1ubi1ubi4gIFNlZSB0aGUgS0FOSklESUMgIGRvY3VtZW50YXRpb24gCisJICAJZm9yICBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb2RlIGFuZCByZXN0cmljdGlvbnMgb24gIHRoZSAKKwkgIAljb21tZXJjaWFsICB1c2UgIG9mIHRoaXMgZGF0YS4gW1BdCisKKwkgIHNoX2Rlc2MgLSB0aGUgZGVzY3JpcHRvciBjb2RlcyBmb3IgVGhlIEthbmppIERpY3Rpb25hcnkgKFR1dHRsZSAKKwkgIAkxOTk2KSBieSBTcGFobiBhbmQgSGFkYW1pdHpreS4gVGhleSBhcmUgaW4gdGhlIGZvcm0gbnhubi5uLCAgCisJICAJZS5nLiAgM2sxMS4yLCB3aGVyZSB0aGUgIGthbmppIGhhcyAzIHN0cm9rZXMgaW4gdGhlIAorCSAgCWlkZW50aWZ5aW5nIHJhZGljYWwsIGl0IGlzIHJhZGljYWwgImsiIGluIHRoZSBTSCAKKwkgIAljbGFzc2lmaWNhdGlvbiBzeXN0ZW0sIHRoZXJlIGFyZSAxMSBvdGhlciBzdHJva2VzLCBhbmQgaXQgaXMgCisJICAJdGhlIDJuZCBrYW5qaSBpbiB0aGUgM2sxMSBzZXF1ZW5jZS4gKEkgYW0gdmVyeSBncmF0ZWZ1bCB0byAKKwkgIAlNYXJrIFNwYWhuIGZvciBwcm92aWRpbmcgdGhlIGxpc3Qgb2YgdGhlc2UgZGVzY3JpcHRvciBjb2RlcyAKKwkgIAlmb3IgdGhlIGthbmppIGluIHRoaXMgZmlsZS4pIFtJXQorCSAgZm91cl9jb3JuZXIgLSB0aGUgIkZvdXIgQ29ybmVyIiBjb2RlIGZvciB0aGUga2FuamkuIFRoaXMgaXMgYSBjb2RlIAorCSAgCWludmVudGVkIGJ5IFdhbmcgQ2hlbiBpbiAxOTI4LiBTZWUgdGhlIEtBTkpJRElDIGRvY3VtZW50YXRpb24gCisJICAJZm9yICBhbiBvdmVydmlldyBvZiAgdGhlIEZvdXIgQ29ybmVyIFN5c3RlbS4gW1FdCisKKwkgIGRlcm9vIC0gdGhlIGNvZGVzIGRldmVsb3BlZCBieSB0aGUgbGF0ZSBGYXRoZXIgSm9zZXBoIERlIFJvbywgYW5kIAorCSAgCXB1Ymxpc2hlZCBpbiAgaGlzIGJvb2sgIjIwMDEgS2FuamkiIChCb2ppbnNoYSkuIEZyIERlIFJvbyAKKwkgIAlnYXZlIGhpcyBwZXJtaXNzaW9uIGZvciB0aGVzZSBjb2RlcyB0byBiZSBpbmNsdWRlZC4gW0RSXQorCSAgbWlzY2xhc3MgLSBhIHBvc3NpYmxlIG1pc2NsYXNzaWZpY2F0aW9uIG9mIHRoZSBrYW5qaSBhY2NvcmRpbmcKKwkJdG8gb25lIG9mIHRoZSBjb2RlIHR5cGVzLiAoU2VlIHRoZSAiWiIgY29kZXMgaW4gdGhlIEtBTkpJRElDCisJCWRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4pCisJICAKKwkpCitTQVguZWxlbWVudERlY2wocmVhZGluZ19tZWFuaW5nLCA0LCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIHJlYWRpbmdzIGZvciB0aGUga2FuamkgaW4gc2V2ZXJhbCBsYW5ndWFnZXMsIGFuZCB0aGUgbWVhbmluZ3MsIGFsc28KKwlpbiBzZXZlcmFsIGxhbmd1YWdlcy4gVGhlIHJlYWRpbmdzIGFuZCBtZWFuaW5ncyBhcmUgZ3JvdXBlZCB0byBlbmFibGUKKwl0aGUgaGFuZGxpbmcgb2YgdGhlIHNpdHVhdGlvbiB3aGVyZSB0aGUgbWVhbmluZyBpcyBkaWZmZXJlbnRpYXRlZCBieSAKKwlyZWFkaW5nLiBbVDFdCisJKQorU0FYLmVsZW1lbnREZWNsKG5hbm9yaSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCUphcGFuZXNlIHJlYWRpbmdzIHRoYXQgYXJlIG5vdyBvbmx5IGFzc29jaWF0ZWQgd2l0aCBuYW1lcy4KKwkpCitTQVguZWxlbWVudERlY2wocm1ncm91cCwgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKHJlYWRpbmcsIDMsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgcmVhZGluZyBlbGVtZW50IGNvbnRhaW5zIHRoZSByZWFkaW5nIG9yIHByb251bmNpYXRpb24KKwlvZiB0aGUga2FuamkuCisJKQorU0FYLmF0dHJpYnV0ZURlY2wocmVhZGluZywgcl90eXBlLCAxLCAyLCBOVUxMLCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIHJfdHlwZSBhdHRyaWJ1dGUgZGVmaW5lcyB0aGUgdHlwZSBvZiByZWFkaW5nIGluIHRoZSByZWFkaW5nCisJZWxlbWVudC4gVGhlIGN1cnJlbnQgdmFsdWVzIGFyZToKKwkgIHBpbnlpbiAtIHRoZSBtb2Rlcm4gUGluWWluIHJvbWFuaXphdGlvbiBvZiB0aGUgQ2hpbmVzZSByZWFkaW5nIAorCSAgCW9mIHRoZSBrYW5qaS4gVGhlIHRvbmVzIGFyZSByZXByZXNlbnRlZCBieSBhIGNvbmNsdWRpbmcgCisJICAJZGlnaXQuIFtZXQorCSAga29yZWFuX3IgLSB0aGUgcm9tYW5pemVkIGZvcm0gb2YgdGhlIEtvcmVhbiByZWFkaW5nKHMpIG9mIHRoZSAKKwkgIAlrYW5qaS4gIFRoZSByZWFkaW5ncyBhcmUgaW4gdGhlIChSZXB1YmxpYyBvZiBLb3JlYSkgTWluaXN0cnkgCisJICAJb2YgRWR1Y2F0aW9uIHN0eWxlIG9mIHJvbWFuaXphdGlvbi4gW1ddCisJICBrb3JlYW5faCAtIHRoZSBLb3JlYW4gcmVhZGluZyhzKSBvZiB0aGUga2FuamkgaW4gaGFuZ3VsLgorCSAgamFfb24gLSB0aGUgIm9uIiBKYXBhbmVzZSByZWFkaW5nIG9mIHRoZSBrYW5qaSwgaW4ga2F0YWthbmEuIEEKKwkgIAlzZWNvbmQgYXR0cmlidXRlIHJfc3RhdHVzLCBpZiBwcmVzZW50LCB3aWxsIGluZGljYXRlIHdpdGgKKwkgIAlhIHZhbHVlIG9mICJqeSIgd2hldGhlciB0aGUgcmVhZGluZyBpcyBhcHByb3ZlZCBmb3IgYQorCSAgCSJKb3V5b3Uga2FuamkiLgorCSAgamFfa3VuIC0gdGhlICJrdW4iIEphcGFuZXNlIHJlYWRpbmcgb2YgdGhlIGthbmppLCBpbiBoaXJhZ2FuYS4gCisJICAJV2hlcmUgcmVsZXZhbnQgdGhlIG9rdXJpZ2FuYSBpcyBhbHNvIGluY2x1ZGVkIHNlcGFyYXRlZCBieSBhIAorCSAgCSIuIi4gUmVhZGluZ3MgYXNzb2NpYXRlZCB3aXRoIHByZWZpeGVzIGFuZCBzdWZmaXhlcyBhcmUgCisJICAJbWFya2VkIHdpdGggYSAiLSIuIEEgc2Vjb25kIGF0dHJpYnV0ZSByX3N0YXR1cywgaWYgcHJlc2VudCwgCisJICAJd2lsbCBpbmRpY2F0ZSB3aXRoIGEgdmFsdWUgb2YgImp5IiB3aGV0aGVyIHRoZSByZWFkaW5nIGlzIAorCSAgCWFwcHJvdmVkIGZvciBhICJKb3V5b3Uga2FuamkiLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKHJlYWRpbmcsIHJfc3RhdHVzLCAxLCAzLCBOVUxMLCAuLi4pCitTQVguY29tbWVudCggCisJU2VlIHVuZGVyIGphX29uIGFuZCBqYV9rdW4gYWJvdmUuCisJKQorU0FYLmVsZW1lbnREZWNsKG1lYW5pbmcsIDMsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgbWVhbmluZyBhc3NvY2lhdGVkIHdpdGggdGhlIGthbmppLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKG1lYW5pbmcsIG1fbGFuZywgMSwgMywgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSBtX2xhbmcgYXR0cmlidXRlIGRlZmluZXMgdGhlIHRhcmdldCBsYW5ndWFnZSBvZiB0aGUgbWVhbmluZy4gSXQgCisJd2lsbCBiZSBjb2RlZCB1c2luZyB0aGUgdHdvLWxldHRlciBsYW5ndWFnZSBjb2RlIGZyb20gdGhlIElTTyA2MzkgCisJc3RhbmRhcmQuIFdoZW4gYWJzZW50LCB0aGUgdmFsdWUgImVuIiAoaS5lLiBFbmdsaXNoKSBpcyBpbXBsaWVkLiBbe31dCisJKQorU0FYLmV4dGVybmFsU3Vic2V0KGthbmppZGljMiwgLCApCitTQVguc3RhcnRFbGVtZW50KGthbmppZGljMikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoa2FuamlkaWMyKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2ludHN1YnNldDIueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQyLnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NTg3MDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pbnRzdWJzZXQyLnhtbC5zYXgyCkBAIC0wLDAgKzEsMjg2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChrYW5qaWRpYzIsICwgKQorU0FYLmNvbW1lbnQoIFZlcnNpb24gMS4zCisJVGhpcyBpcyB0aGUgRFREIG9mIHRoZSBYTUwtZm9ybWF0IGthbmppIGZpbGUgY29tYmluaW5nIGluZm9ybWF0aW9uIGZyb20KKwl0aGUgS0FOSklESUMgYW5kIEtBTkpEMjEyIGZpbGVzLiBJdCBpcyBpbnRlbmRlZCB0byBiZSBsYXJnZWx5IHNlbGYtCisJZG9jdW1lbnRpbmcsIHdpdGggZWFjaCBmaWVsZCBiZWluZyBhY2NvbXBhbmllZCBieSBhbiBleHBsYW5hdG9yeQorCWNvbW1lbnQuCisKKwlUaGUgZmlsZSBjb3ZlcnMgdGhlIGZvbGxvd2luZyBrYW5qaToKKwkoYSkgdGhlIDYsMzU1IGthbmppIGZyb20gSklTIFggMDIwODsKKwkoYikgdGhlIDUsODAxIGthbmppIGZyb20gSklTIFggMDIxMjsKKwkoYykgdGhlIDMsNjI1IGthbmppIGZyb20gSklTIFggMDIxMyBhcyBmb2xsb3dzOgorCQkoaSkgdGhlIDIsNzQxIGthbmppIHdoaWNoIGFyZSBhbHNvIGluIEpJUyBYIDAyMTIgaGF2ZQorCQlKSVMgWCAwMjEzIGNvZGUtcG9pbnRzIChrdXRlbikgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIGVudHJ5OworCQkoaWkpIHRoZSA4ODQgIm5ldyIga2FuamkgaGF2ZSBuZXcgZW50cmllcy4KKworCUF0IHRoZSBlbmQgb2YgdGhlIGV4cGxhbmF0aW9uIGZvciBhIG51bWJlciBvZiBmaWVsZHMgdGhlcmUgaXMgYSB0YWcKKwl3aXRoIHRoZSBmb3JtYXQgW05dLiBUaGlzIGluZGljYXRlcyB0aGUgbGVhZGluZyBsZXR0ZXIocykgb2YgdGhlCisJZXF1aXZhbGVudCBmaWVsZCBpbiB0aGUgS0FOSklESUMgYW5kIEtBTkpEMjEyIGZpbGVzLgorCisJVGhlIEtBTkpJRElDIGRvY3VtZW50YXRpb24gc2hvdWxkIGFsc28gYmUgcmVhZCBmb3IgYWRkaXRpb25hbCAKKwlpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGZpbGUuCisJKQorU0FYLmVsZW1lbnREZWNsKGthbmppZGljMiwgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKGhlYWRlciwgNCwgLi4uKQorU0FYLmNvbW1lbnQoCisJVGhlIHNpbmdsZSBoZWFkZXIgZWxlbWVudCB3aWxsIGNvbnRhaW4gaWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24KKwlhYm91dCB0aGUgdmVyc2lvbiBvZiB0aGUgZmlsZSAKKwkpCitTQVguZWxlbWVudERlY2woZmlsZV92ZXJzaW9uLCAzLCAuLi4pCitTQVguY29tbWVudCgKKwlUaGlzIGZpZWxkIGRlbm90ZXMgdGhlIHZlcnNpb24gb2Yga2FuamlkaWMyIHN0cnVjdHVyZSwgYXMgbW9yZQorCXRoYW4gb25lIHZlcnNpb24gbWF5IGV4aXN0LgorCSkKK1NBWC5lbGVtZW50RGVjbChkYXRhYmFzZV92ZXJzaW9uLCAzLCAuLi4pCitTQVguY29tbWVudCgKKwlUaGUgdmVyc2lvbiBvZiB0aGUgZmlsZSwgaW4gdGhlIGZvcm1hdCBZWVlZLU5OLCB3aGVyZSBOTiB3aWxsIGJlCisJYSBudW1iZXIgc3RhcnRpbmcgd2l0aCAwMSBmb3IgdGhlIGZpcnN0IHZlcnNpb24gcmVsZWFzZWQgaW4gYQorCWNhbGVuZGFyIHllYXIsIHRoZW4gaW5jcmVhc2luZyBmb3IgZWFjaCB2ZXJzaW9uIGluIHRoYXQgeWVhci4KKwkpCitTQVguZWxlbWVudERlY2woZGF0ZV9vZl9jcmVhdGlvbiwgMywgLi4uKQorU0FYLmNvbW1lbnQoCisJVGhlIGRhdGUgdGhlIGZpbGUgd2FzIGNyZWF0ZWQgaW4gaW50ZXJuYXRpb25hbCBmb3JtYXQgKFlZWVktTU0tREQpLgorCSkKK1NBWC5lbGVtZW50RGVjbChjaGFyYWN0ZXIsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChsaXRlcmFsLCAzLCAuLi4pCitTQVguY29tbWVudCgKKwlUaGUgY2hhcmFjdGVyIGl0c2VsZiBpbiBVVEY4IGNvZGluZy4KKwkpCitTQVguZWxlbWVudERlY2woY29kZXBvaW50LCA0LCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIGNvZGVwb2ludCBlbGVtZW50IHN0YXRlcyB0aGUgY29kZSBvZiB0aGUgY2hhcmFjdGVyIGluIHRoZSB2YXJpb3VzCisJY2hhcmFjdGVyIHNldCBzdGFuZGFyZHMuCisJKQorU0FYLmVsZW1lbnREZWNsKGNwX3ZhbHVlLCAzLCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIGNwX3ZhbHVlIGNvbnRhaW5zIHRoZSBjb2RlcG9pbnQgb2YgdGhlIGNoYXJhY3RlciBpbiBhIHBhcnRpY3VsYXIKKwlzdGFuZGFyZC4gVGhlIHN0YW5kYXJkIHdpbGwgYmUgaWRlbnRpZmllZCBpbiB0aGUgY3BfdHlwZSBhdHRyaWJ1dGUuCisJKQorU0FYLmF0dHJpYnV0ZURlY2woY3BfdmFsdWUsIGNwX3R5cGUsIDEsIDIsIE5VTEwsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgY3BfdHlwZSBhdHRyaWJ1dGUgc3RhdGVzIHRoZSBjb2Rpbmcgc3RhbmRhcmQgYXBwbHlpbmcgdG8gdGhlCisJZWxlbWVudC4gVGhlIHZhbHVlcyBhc3NpZ25lZCBzbyBmYXIgYXJlOgorCQlqaXMyMDggLSBKSVMgWCAwMjA4LTE5OTcgLSBrdXRlbiBjb2RpbmcgKG5uLW5uKQorCQlqaXMyMTIgLSBKSVMgWCAwMjEyLTE5OTAgLSBrdXRlbiBjb2RpbmcgKG5uLW5uKQorCQlqaXMyMTMgLSBKSVMgWCAwMjEzLTIwMDAgLSBrdXRlbiBjb2RpbmcgKHAtbm4tbm4pCisJCXVjcyAtIFVuaWNvZGUgNC4wIC0gaGV4IGNvZGluZyAoNCBvciA1IGhleGFkZWNpbWFsIGRpZ2l0cykKKwkpCitTQVguZWxlbWVudERlY2wocmFkaWNhbCwgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKHJhZF92YWx1ZSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSByYWRpY2FsIG51bWJlciwgaW4gdGhlIHJhbmdlIDEgdG8gMjE0LiBUaGUgcGFydGljdWxhcgorCWNsYXNzaWZpY2F0aW9uIHR5cGUgaXMgc3RhdGVkIGluIHRoZSByYWRfdHlwZSBhdHRyaWJ1dGUuCisJKQorU0FYLmF0dHJpYnV0ZURlY2wocmFkX3ZhbHVlLCByYWRfdHlwZSwgMSwgMiwgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSByYWRfdHlwZSBhdHRyaWJ1dGUgc3RhdGVzIHRoZSB0eXBlIG9mIHJhZGljYWwgY2xhc3NpZmljYXRpb24uCisJCWNsYXNzaWNhbCAtIGFzIHJlY29yZGVkIGluIHRoZSBLYW5nWGkgWmlkaWFuLgorCQluZWxzb24gLSBhcyB1c2VkIGluIHRoZSBOZWxzb24gIk1vZGVybiBKYXBhbmVzZS1FbmdsaXNoIAorCQlDaGFyYWN0ZXIgRGljdGlvbmFyeSIgKGkuZS4gdGhlIENsYXNzaWMsIG5vdCB0aGUgTmV3IE5lbHNvbikuCisJCVRoaXMgd2lsbCBvbmx5IGJlIHVzZWQgd2hlcmUgTmVsc29uIHJlY2xhc3NpZmllZCB0aGUga2FuamkuCisJKQorU0FYLmVsZW1lbnREZWNsKG1pc2MsIDQsIC4uLikKK1NBWC5lbGVtZW50RGVjbChncmFkZSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSBKb3V5b3UgS2FuamkgZ3JhZGUgbGV2ZWwuIDEgdGhyb3VnaCA2IGluZGljYXRlIHRoZSBncmFkZSBpbiB3aGljaAorCXRoZSBrYW5qaSBpcyB0YXVnaHQgaW4gSmFwYW5lc2Ugc2Nob29scy4gOCBpbmRpY2F0ZXMgaXQgaXMgb25lIG9mIHRoZQorCXJlbWFpbmluZyBKb3V5b3UgS2FuamkgdG8gYmUgbGVhcm5lZCBpbiBqdW5pb3IgaGlnaCBzY2hvb2wsIGFuZCA5IAorCWluZGljYXRlcyBpdCBpcyBhIEppbm1laXlvdSAoZm9yIHVzZSBpbiBuYW1lcykga2FuamkuIFtHXQorCSkKK1NBWC5lbGVtZW50RGVjbChzdHJva2VfY291bnQsIDMsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgc3Ryb2tlIGNvdW50IG9mIHRoZSBrYW5qaSwgaW5jbHVkaW5nIHRoZSByYWRpY2FsLiBJZiBtb3JlIHRoYW4gCisJb25lLCB0aGUgZmlyc3QgaXMgY29uc2lkZXJlZCB0aGUgYWNjZXB0ZWQgY291bnQsIHdoaWxlIHN1YnNlcXVlbnQgb25lcyAKKwlhcmUgY29tbW9uIG1pc2NvdW50cy4gKFNlZSBBcHBlbmRpeCBFLiBvZiB0aGUgS0FOSklESUMgZG9jdW1lbnRhdGlvbgorCWZvciBzb21lIG9mIHRoZSBydWxlcyBhcHBsaWVkIHdoZW4gY291bnRpbmcgc3Ryb2tlcyBpbiBzb21lIG9mIHRoZSAKKwlyYWRpY2Fscy4pIFtTXQorCSkKK1NBWC5lbGVtZW50RGVjbCh2YXJpYW50LCAzLCAuLi4pCitTQVguY29tbWVudCggCisJQSBjcm9zcy1yZWZlcmVuY2UgY29kZSB0byBhbm90aGVyIGthbmppLCB1c3VhbGx5IHJlZ2FyZGVkIGFzIGEgdmFyaWFudC4KKwlUaGUgdHlwZSBvZiBjcm9zcy1yZWZlcmVuY2UgaXMgZ2l2ZW4gaW4gdGhlIHZhcl90eXBlIGF0dHJpYnV0ZS4KKwkpCitTQVguYXR0cmlidXRlRGVjbCh2YXJpYW50LCB2YXJfdHlwZSwgMSwgMiwgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSB2YXJfdHlwZSBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoZSB0eXBlIG9mIHZhcmlhbnQgY29kZS4gVGhlIGN1cnJlbnQKKwl2YWx1ZXMgYXJlOiAKKwkJamlzMjA4IC0gaW4gSklTIFggMDIwOCAtIGt1dGVuIGNvZGluZworCQlqaXMyMTIgLSBpbiBKSVMgWCAwMjEyIC0ga3V0ZW4gY29kaW5nCisJCWppczIxMyAtIGluIEpJUyBYIDAyMTMgLSBrdXRlbiBjb2RpbmcKKwkJZGVyb28gLSBEZSBSb28gbnVtYmVyIC0gbnVtZXJpYworCQluamVjZCAtIEhhbHBlcm4gTkpFQ0QgaW5kZXggbnVtYmVyIC0gbnVtZXJpYworCQlzX2ggLSBUaGUgS2FuamkgRGljdGlvbmFyeSAoU3BhaG4gJiBIYWRhbWl0emt5KSAtIGRlc2NyaXB0b3IKKwkJbmVsc29uIC0gIkNsYXNzaWMiIE5lbHNvbiAtIG51bWVyaWMKKwkJb25laWxsIC0gSmFwYW5lc2UgTmFtZXMgKE8nTmVpbGwpIC0gbnVtZXJpYworCSkKK1NBWC5lbGVtZW50RGVjbChmcmVxLCAzLCAuLi4pCitTQVguY29tbWVudCggCisJQSBmcmVxdWVuY3ktb2YtdXNlIHJhbmtpbmcuIFRoZSAyLDUwMCBtb3N0LXVzZWQgY2hhcmFjdGVycyBoYXZlIGEgCisJcmFua2luZzsgdGhvc2UgY2hhcmFjdGVycyB0aGF0IGxhY2sgdGhpcyBmaWVsZCBhcmUgbm90IHJhbmtlZC4gVGhlIAorCWZyZXF1ZW5jeSBpcyBhIG51bWJlciBmcm9tIDEgdG8gMiw1MDAgdGhhdCBleHByZXNzZXMgdGhlIHJlbGF0aXZlIAorCWZyZXF1ZW5jeSBvZiBvY2N1cnJlbmNlIG9mIGEgY2hhcmFjdGVyIGluIG1vZGVybiBKYXBhbmVzZS4gVGhpcyBpcworCWJhc2VkIG9uIGEgc3VydmV5IGluIG5ld3NwYXBlcnMsIHNvIGl0IGlzIGJpYXNzZWQgdG93YXJkcyBrYW5qaQorCXVzZWQgaW4gbmV3c3BhcGVyIGFydGljbGVzLiBUaGUgZGlzY3JpbWluYXRpb24gYmV0d2VlbiB0aGUgbGVzcworCWZyZXF1ZW50bHkgdXNlZCBrYW5qaSBpcyBub3Qgc3Ryb25nLgorCSkKK1NBWC5lbGVtZW50RGVjbChyYWRfbmFtZSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCVdoZW4gdGhlIGthbmppIGlzIGl0c2VsZiBhIHJhZGljYWwgYW5kIGhhcyBhIG5hbWUsIHRoaXMgZWxlbWVudAorCWNvbnRhaW5zIHRoZSBuYW1lIChpbiBoaXJhZ2FuYS4pIFtUMl0KKwkpCitTQVguZWxlbWVudERlY2woZGljX251bWJlciwgNCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoaXMgZWxlbWVudCBjb250YWlucyB0aGUgaW5kZXggbnVtYmVycyBhbmQgc2ltaWxhciB1bnN0cnVjdHVyZWQKKwlpbmZvcm1hdGlvbiBzdWNoIGFzIHBhZ2UgbnVtYmVycyBpbiBhIG51bWJlciBvZiBwdWJsaXNoZWQgZGljdGlvbmFyaWVzLAorCWFuZCBpbnN0cnVjdGlvbmFsIGJvb2tzIG9uIGthbmppLgorCSkKK1NBWC5lbGVtZW50RGVjbChkaWNfcmVmLCAzLCAuLi4pCitTQVguY29tbWVudCggCisJRWFjaCBkaWNfcmVmIGNvbnRhaW5zIGFuIGluZGV4IG51bWJlci4gVGhlIHBhcnRpY3VsYXIgZGljdGlvbmFyeSwKKwlldGMuIGlzIGRlZmluZWQgYnkgdGhlIGRyX3R5cGUgYXR0cmlidXRlLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKGRpY19yZWYsIGRyX3R5cGUsIDEsIDIsIE5VTEwsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgZHJfdHlwZSBkZWZpbmVzIHRoZSBkaWN0aW9uYXJ5IG9yIHJlZmVyZW5jZSBib29rLCBldGMuIHRvIHdoaWNoCisJZGljX3JlZiBlbGVtZW50IGFwcGxpZXMuIFRoZSBpbml0aWFsIGFsbG9jYXRpb24gaXM6CisJICBuZWxzb25fYyAtICJNb2Rlcm4gUmVhZGVyJ3MgSmFwYW5lc2UtRW5nbGlzaCBDaGFyYWN0ZXIgRGljdGlvbmFyeSIsICAKKwkgIAllZGl0ZWQgYnkgQW5kcmV3IE5lbHNvbiAobm93IHB1Ymxpc2hlZCBhcyB0aGUgIkNsYXNzaWMiIAorCSAgCU5lbHNvbikuCisJICBuZWxzb25fbiAtICJUaGUgTmV3IE5lbHNvbiBKYXBhbmVzZS1FbmdsaXNoIENoYXJhY3RlciBEaWN0aW9uYXJ5IiwgCisJICAJZWRpdGVkIGJ5IEpvaG4gSGFpZy4KKwkgIGhhbHBlcm5fbmplY2QgLSAiTmV3IEphcGFuZXNlLUVuZ2xpc2ggQ2hhcmFjdGVyIERpY3Rpb25hcnkiLCAKKwkgIAllZGl0ZWQgYnkgSmFjayBIYWxwZXJuLgorCSAgaGFscGVybl9ra2xkIC0gIkthbmppIExlYXJuZXJzIERpY3Rpb25hcnkiIChLb2RhbnNoYSkgZWRpdGVkIGJ5IAorCSAgCUphY2sgSGFscGVybi4KKwkgIGhlaXNpZyAtICJSZW1lbWJlcmluZyBUaGUgIEthbmppIiAgYnkgIEphbWVzIEhlaXNpZy4KKwkgIGdha2tlbiAtICJBICBOZXcgRGljdGlvbmFyeSBvZiBLYW5qaSBVc2FnZSIgKEdha2tlbikKKwkgIG9uZWlsbF9uYW1lcyAtICJKYXBhbmVzZSBOYW1lcyIsIGJ5IFAuRy4gTydOZWlsbC4gCisJICBvbmVpbGxfa2sgLSAiRXNzZW50aWFsIEthbmppIiBieSBQLkcuIE8nTmVpbGwuCisJICBtb3JvIC0gIkRhaWthbndhaml0ZW4iIGNvbXBpbGVkIGJ5IE1vcm9oYXNoaS4gRm9yIHNvbWUga2FuamkgdHdvCisJICAJYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGFyZSB1c2VkOiBtX3ZvbDogIHRoZSB2b2x1bWUgb2YgdGhlCisJICAJZGljdGlvbmFyeSBpbiB3aGljaCB0aGUga2FuamkgaXMgZm91bmQsIGFuZCBtX3BhZ2U6IHRoZSBwYWdlCisJICAJbnVtYmVyIGluIHRoZSB2b2x1bWUuCisJICBoZW5zaGFsbCAtICJBIEd1aWRlIFRvIFJlbWVtYmVyaW5nIEphcGFuZXNlIENoYXJhY3RlcnMiIGJ5CisJICAJS2VubmV0aCBHLiAgSGVuc2hhbGwuCisJICBzaF9rayAtICJLYW5qaSBhbmQgS2FuYSIgYnkgU3BhaG4gYW5kIEhhZGFtaXR6a3kuCisJICBzYWthZGUgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiBlZGl0ZWQgYnkKKwkgIAlGbG9yZW5jZSBTYWthZGUuCisJICBoZW5zaGFsbDMgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiAzcmQKKwkJZWRpdGlvbiwgZWRpdGVkIGJ5IEhlbnNoYWxsLCBTZWVsZXkgYW5kIERlIEdyb290LgorCSAgdHV0dF9jYXJkcyAtIFR1dHRsZSBLYW5qaSBDYXJkcywgY29tcGlsZWQgYnkgQWxleGFuZGVyIEthc2suCisJICBjcm93bGV5IC0gIlRoZSBLYW5qaSBXYXkgdG8gSmFwYW5lc2UgTGFuZ3VhZ2UgUG93ZXIiIGJ5CisJICAJRGFsZSBDcm93bGV5LgorCSAga2FuamlfaW5fY29udGV4dCAtICJLYW5qaSBpbiBDb250ZXh0IiBieSBOaXNoaWd1Y2hpIGFuZCBLb25vLgorCSAgYnVzeV9wZW9wbGUgLSAiSmFwYW5lc2UgRm9yIEJ1c3kgUGVvcGxlIiB2b2xzIEktSUlJLCBwdWJsaXNoZWQKKwkJYnkgdGhlIEFKTFQuIFRoZSBjb2RlcyBhcmUgdGhlIHZvbHVtZS5jaGFwdGVyLgorCSAga29kYW5zaGFfY29tcGFjdCAtIHRoZSAiS29kYW5zaGEgQ29tcGFjdCBLYW5qaSBHdWlkZSIuCisJKQorU0FYLmF0dHJpYnV0ZURlY2woZGljX3JlZiwgbV92b2wsIDEsIDMsIE5VTEwsIC4uLikKK1NBWC5jb21tZW50KCAKKwlTZWUgYWJvdmUgdW5kZXIgIm1vcm8iLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKGRpY19yZWYsIG1fcGFnZSwgMSwgMywgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVNlZSBhYm92ZSB1bmRlciAibW9ybyIuCisJKQorU0FYLmVsZW1lbnREZWNsKHF1ZXJ5X2NvZGUsIDQsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGVzZSBjb2RlcyBjb250YWluIGluZm9ybWF0aW9uIHJlbGF0aW5nIHRvIHRoZSBnbHlwaCwgYW5kIGNhbiBiZSB1c2VkCisJZm9yIGZpbmRpbmcgYSByZXF1aXJlZCBrYW5qaS4gVGhlIHR5cGUgb2YgY29kZSBpcyBkZWZpbmVkIGJ5IHRoZQorCXFjX3R5cGUgYXR0cmlidXRlLgorCSkKK1NBWC5lbGVtZW50RGVjbChxX2NvZGUsIDMsIC4uLikKK1NBWC5jb21tZW50KAorCVRoZSBxX2NvZGUgY29udGFpbnMgdGhlIGFjdHVhbCBxdWVyeS1jb2RlIHZhbHVlLCBhY2NvcmRpbmcgdG8gdGhlCisJcWNfdHlwZSBhdHRyaWJ1dGUuCisJKQorU0FYLmF0dHJpYnV0ZURlY2wocV9jb2RlLCBxY190eXBlLCAxLCAyLCBOVUxMLCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIHFfY29kZSBhdHRyaWJ1dGUgZGVmaW5lcyB0aGUgdHlwZSBvZiBxdWVyeSBjb2RlLiBUaGUgY3VycmVudCB2YWx1ZXMKKwlhcmU6CisJICBza2lwIC0gIEhhbHBlcm4ncyBTS0lQIChTeXN0ZW0gIG9mICBLYW5qaSAgSW5kZXhpbmcgIGJ5ICBQYXR0ZXJucykgCisJICAJY29kZS4gVGhlICBmb3JtYXQgaXMgbi1ubi1ubi4gIFNlZSB0aGUgS0FOSklESUMgIGRvY3VtZW50YXRpb24gCisJICAJZm9yICBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb2RlIGFuZCByZXN0cmljdGlvbnMgb24gIHRoZSAKKwkgIAljb21tZXJjaWFsICB1c2UgIG9mIHRoaXMgZGF0YS4gW1BdCisKKwkgIHNoX2Rlc2MgLSB0aGUgZGVzY3JpcHRvciBjb2RlcyBmb3IgVGhlIEthbmppIERpY3Rpb25hcnkgKFR1dHRsZSAKKwkgIAkxOTk2KSBieSBTcGFobiBhbmQgSGFkYW1pdHpreS4gVGhleSBhcmUgaW4gdGhlIGZvcm0gbnhubi5uLCAgCisJICAJZS5nLiAgM2sxMS4yLCB3aGVyZSB0aGUgIGthbmppIGhhcyAzIHN0cm9rZXMgaW4gdGhlIAorCSAgCWlkZW50aWZ5aW5nIHJhZGljYWwsIGl0IGlzIHJhZGljYWwgImsiIGluIHRoZSBTSCAKKwkgIAljbGFzc2lmaWNhdGlvbiBzeXN0ZW0sIHRoZXJlIGFyZSAxMSBvdGhlciBzdHJva2VzLCBhbmQgaXQgaXMgCisJICAJdGhlIDJuZCBrYW5qaSBpbiB0aGUgM2sxMSBzZXF1ZW5jZS4gKEkgYW0gdmVyeSBncmF0ZWZ1bCB0byAKKwkgIAlNYXJrIFNwYWhuIGZvciBwcm92aWRpbmcgdGhlIGxpc3Qgb2YgdGhlc2UgZGVzY3JpcHRvciBjb2RlcyAKKwkgIAlmb3IgdGhlIGthbmppIGluIHRoaXMgZmlsZS4pIFtJXQorCSAgZm91cl9jb3JuZXIgLSB0aGUgIkZvdXIgQ29ybmVyIiBjb2RlIGZvciB0aGUga2FuamkuIFRoaXMgaXMgYSBjb2RlIAorCSAgCWludmVudGVkIGJ5IFdhbmcgQ2hlbiBpbiAxOTI4LiBTZWUgdGhlIEtBTkpJRElDIGRvY3VtZW50YXRpb24gCisJICAJZm9yICBhbiBvdmVydmlldyBvZiAgdGhlIEZvdXIgQ29ybmVyIFN5c3RlbS4gW1FdCisKKwkgIGRlcm9vIC0gdGhlIGNvZGVzIGRldmVsb3BlZCBieSB0aGUgbGF0ZSBGYXRoZXIgSm9zZXBoIERlIFJvbywgYW5kIAorCSAgCXB1Ymxpc2hlZCBpbiAgaGlzIGJvb2sgIjIwMDEgS2FuamkiIChCb2ppbnNoYSkuIEZyIERlIFJvbyAKKwkgIAlnYXZlIGhpcyBwZXJtaXNzaW9uIGZvciB0aGVzZSBjb2RlcyB0byBiZSBpbmNsdWRlZC4gW0RSXQorCSAgbWlzY2xhc3MgLSBhIHBvc3NpYmxlIG1pc2NsYXNzaWZpY2F0aW9uIG9mIHRoZSBrYW5qaSBhY2NvcmRpbmcKKwkJdG8gb25lIG9mIHRoZSBjb2RlIHR5cGVzLiAoU2VlIHRoZSAiWiIgY29kZXMgaW4gdGhlIEtBTkpJRElDCisJCWRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4pCisJICAKKwkpCitTQVguZWxlbWVudERlY2wocmVhZGluZ19tZWFuaW5nLCA0LCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIHJlYWRpbmdzIGZvciB0aGUga2FuamkgaW4gc2V2ZXJhbCBsYW5ndWFnZXMsIGFuZCB0aGUgbWVhbmluZ3MsIGFsc28KKwlpbiBzZXZlcmFsIGxhbmd1YWdlcy4gVGhlIHJlYWRpbmdzIGFuZCBtZWFuaW5ncyBhcmUgZ3JvdXBlZCB0byBlbmFibGUKKwl0aGUgaGFuZGxpbmcgb2YgdGhlIHNpdHVhdGlvbiB3aGVyZSB0aGUgbWVhbmluZyBpcyBkaWZmZXJlbnRpYXRlZCBieSAKKwlyZWFkaW5nLiBbVDFdCisJKQorU0FYLmVsZW1lbnREZWNsKG5hbm9yaSwgMywgLi4uKQorU0FYLmNvbW1lbnQoIAorCUphcGFuZXNlIHJlYWRpbmdzIHRoYXQgYXJlIG5vdyBvbmx5IGFzc29jaWF0ZWQgd2l0aCBuYW1lcy4KKwkpCitTQVguZWxlbWVudERlY2wocm1ncm91cCwgNCwgLi4uKQorU0FYLmVsZW1lbnREZWNsKHJlYWRpbmcsIDMsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgcmVhZGluZyBlbGVtZW50IGNvbnRhaW5zIHRoZSByZWFkaW5nIG9yIHByb251bmNpYXRpb24KKwlvZiB0aGUga2FuamkuCisJKQorU0FYLmF0dHJpYnV0ZURlY2wocmVhZGluZywgcl90eXBlLCAxLCAyLCBOVUxMLCAuLi4pCitTQVguY29tbWVudCggCisJVGhlIHJfdHlwZSBhdHRyaWJ1dGUgZGVmaW5lcyB0aGUgdHlwZSBvZiByZWFkaW5nIGluIHRoZSByZWFkaW5nCisJZWxlbWVudC4gVGhlIGN1cnJlbnQgdmFsdWVzIGFyZToKKwkgIHBpbnlpbiAtIHRoZSBtb2Rlcm4gUGluWWluIHJvbWFuaXphdGlvbiBvZiB0aGUgQ2hpbmVzZSByZWFkaW5nIAorCSAgCW9mIHRoZSBrYW5qaS4gVGhlIHRvbmVzIGFyZSByZXByZXNlbnRlZCBieSBhIGNvbmNsdWRpbmcgCisJICAJZGlnaXQuIFtZXQorCSAga29yZWFuX3IgLSB0aGUgcm9tYW5pemVkIGZvcm0gb2YgdGhlIEtvcmVhbiByZWFkaW5nKHMpIG9mIHRoZSAKKwkgIAlrYW5qaS4gIFRoZSByZWFkaW5ncyBhcmUgaW4gdGhlIChSZXB1YmxpYyBvZiBLb3JlYSkgTWluaXN0cnkgCisJICAJb2YgRWR1Y2F0aW9uIHN0eWxlIG9mIHJvbWFuaXphdGlvbi4gW1ddCisJICBrb3JlYW5faCAtIHRoZSBLb3JlYW4gcmVhZGluZyhzKSBvZiB0aGUga2FuamkgaW4gaGFuZ3VsLgorCSAgamFfb24gLSB0aGUgIm9uIiBKYXBhbmVzZSByZWFkaW5nIG9mIHRoZSBrYW5qaSwgaW4ga2F0YWthbmEuIEEKKwkgIAlzZWNvbmQgYXR0cmlidXRlIHJfc3RhdHVzLCBpZiBwcmVzZW50LCB3aWxsIGluZGljYXRlIHdpdGgKKwkgIAlhIHZhbHVlIG9mICJqeSIgd2hldGhlciB0aGUgcmVhZGluZyBpcyBhcHByb3ZlZCBmb3IgYQorCSAgCSJKb3V5b3Uga2FuamkiLgorCSAgamFfa3VuIC0gdGhlICJrdW4iIEphcGFuZXNlIHJlYWRpbmcgb2YgdGhlIGthbmppLCBpbiBoaXJhZ2FuYS4gCisJICAJV2hlcmUgcmVsZXZhbnQgdGhlIG9rdXJpZ2FuYSBpcyBhbHNvIGluY2x1ZGVkIHNlcGFyYXRlZCBieSBhIAorCSAgCSIuIi4gUmVhZGluZ3MgYXNzb2NpYXRlZCB3aXRoIHByZWZpeGVzIGFuZCBzdWZmaXhlcyBhcmUgCisJICAJbWFya2VkIHdpdGggYSAiLSIuIEEgc2Vjb25kIGF0dHJpYnV0ZSByX3N0YXR1cywgaWYgcHJlc2VudCwgCisJICAJd2lsbCBpbmRpY2F0ZSB3aXRoIGEgdmFsdWUgb2YgImp5IiB3aGV0aGVyIHRoZSByZWFkaW5nIGlzIAorCSAgCWFwcHJvdmVkIGZvciBhICJKb3V5b3Uga2FuamkiLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKHJlYWRpbmcsIHJfc3RhdHVzLCAxLCAzLCBOVUxMLCAuLi4pCitTQVguY29tbWVudCggCisJU2VlIHVuZGVyIGphX29uIGFuZCBqYV9rdW4gYWJvdmUuCisJKQorU0FYLmVsZW1lbnREZWNsKG1lYW5pbmcsIDMsIC4uLikKK1NBWC5jb21tZW50KCAKKwlUaGUgbWVhbmluZyBhc3NvY2lhdGVkIHdpdGggdGhlIGthbmppLgorCSkKK1NBWC5hdHRyaWJ1dGVEZWNsKG1lYW5pbmcsIG1fbGFuZywgMSwgMywgTlVMTCwgLi4uKQorU0FYLmNvbW1lbnQoIAorCVRoZSBtX2xhbmcgYXR0cmlidXRlIGRlZmluZXMgdGhlIHRhcmdldCBsYW5ndWFnZSBvZiB0aGUgbWVhbmluZy4gSXQgCisJd2lsbCBiZSBjb2RlZCB1c2luZyB0aGUgdHdvLWxldHRlciBsYW5ndWFnZSBjb2RlIGZyb20gdGhlIElTTyA2MzkgCisJc3RhbmRhcmQuIFdoZW4gYWJzZW50LCB0aGUgdmFsdWUgImVuIiAoaS5lLiBFbmdsaXNoKSBpcyBpbXBsaWVkLiBbe31dCisJKQorU0FYLmV4dGVybmFsU3Vic2V0KGthbmppZGljMiwgLCApCitTQVguc3RhcnRFbGVtZW50TnMoa2FuamlkaWMyLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGthbmppZGljMiwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTVhMDU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MQpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx0cuhzPmzgPC90cuhzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQxLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjg5YjJmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MS5yZGUKQEAgLTAsMCArMSwzIEBACiswIDEgdHLDqHMgMCAwCisxIDMgI3RleHQgMCAxIGzDoAorMCAxNSB0csOocyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI4OWIyZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDEucmRyCkBAIC0wLDAgKzEsMyBAQAorMCAxIHRyw6hzIDAgMAorMSAzICN0ZXh0IDAgMSBsw6AKKzAgMTUgdHLDqHMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQxLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDEuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMmE2ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQxLnNheApAQCAtMCwwICsxLDcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudCh0csOocykKK1NBWC5jaGFyYWN0ZXJzKGwsIDEpCitTQVguY2hhcmFjdGVycyjDoCwgMikKK1NBWC5lbmRFbGVtZW50KHRyw6hzKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDEuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDEuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTc5MjBhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MS5zYXgyCkBAIC0wLDAgKzEsNyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnModHLDqHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhsLCAxKQorU0FYLmNoYXJhY3RlcnMow6AsIDIpCitTQVguZW5kRWxlbWVudE5zKHRyw6hzLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMjkwYjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyCkBAIC0wLDAgKzEsMTA3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8dHN0PgorCisgICAgICAgVGhlIGZvbGxvd2luZyB0YWJsZSBkaXNwbGF5cyB0aGUgY2hhcmFjdGVycyAgaW4gIElTTyAgODg1OQorICAgICAgIExhdGluLTEsICB3aGljaCBhcmUgcHJpbnRhYmxlIGFuZCB1bmxpc3RlZCBpbiB0aGUgYXNjaWkKKyAgICAgICBtYW51YWwgcGFnZS4KKworICAgICAgIE9jdCAgIERlYyAgIEhleCAgIENoYXIgICBEZXNjcmlwdGlvbgorICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgMjQwICAgMTYwICAgQTAgICAgICAgICAgIE5PLUJSRUFLIFNQQUNFCisgICAgICAgMjQxICAgMTYxICAgQTEgICAgIKEgICAgIElOVkVSVEVEIEVYQ0xBTUFUSU9OIE1BUksKKyAgICAgICAyNDIgICAxNjIgICBBMiAgICAgoiAgICAgQ0VOVCBTSUdOCisgICAgICAgMjQzICAgMTYzICAgQTMgICAgIKMgICAgIFBPVU5EIFNJR04KKyAgICAgICAyNDQgICAxNjQgICBBNCAgICAgpCAgICAgQ1VSUkVOQ1kgU0lHTgorICAgICAgIDI0NSAgIDE2NSAgIEE1ICAgICClICAgICBZRU4gU0lHTgorICAgICAgIDI0NiAgIDE2NiAgIEE2ICAgICCmICAgICBCUk9LRU4gQkFSCisgICAgICAgMjQ3ICAgMTY3ICAgQTcgICAgIKcgICAgIFNFQ1RJT04gU0lHTgorICAgICAgIDI1MCAgIDE2OCAgIEE4ICAgICCoICAgICBESUFFUkVTSVMKKyAgICAgICAyNTEgICAxNjkgICBBOSAgICAgqSAgICAgQ09QWVJJR0hUIFNJR04KKyAgICAgICAyNTIgICAxNzAgICBBQSAgICAgqiAgICAgRkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAgICAyNTMgICAxNzEgICBBQiAgICAgqyAgICAgTEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKKyAgICAgICAyNTQgICAxNzIgICBBQyAgICAgrCAgICAgTk9UIFNJR04KKyAgICAgICAyNTUgICAxNzMgICBBRCAgICAgrSAgICAgU09GVCBIWVBIRU4KKyAgICAgICAyNTYgICAxNzQgICBBRSAgICAgriAgICAgUkVHSVNURVJFRCBTSUdOCisgICAgICAgMjU3ICAgMTc1ICAgQUYgICAgIK8gICAgIE1BQ1JPTgorICAgICAgIDI2MCAgIDE3NiAgIEIwICAgICCwICAgICBERUdSRUUgU0lHTgorICAgICAgIDI2MSAgIDE3NyAgIEIxICAgICCxICAgICBQTFVTLU1JTlVTIFNJR04KKyAgICAgICAyNjIgICAxNzggICBCMiAgICAgsiAgICAgU1VQRVJTQ1JJUFQgVFdPCisgICAgICAgMjYzICAgMTc5ICAgQjMgICAgILMgICAgIFNVUEVSU0NSSVBUIFRIUkVFCisgICAgICAgMjY0ICAgMTgwICAgQjQgICAgILQgICAgIEFDVVRFIEFDQ0VOVAorICAgICAgIDI2NSAgIDE4MSAgIEI1ICAgICC1ICAgICBNSUNSTyBTSUdOCisgICAgICAgMjY2ICAgMTgyICAgQjYgICAgILYgICAgIFBJTENST1cgU0lHTgorICAgICAgIDI2NyAgIDE4MyAgIEI3ICAgICC3ICAgICBNSURETEUgRE9UCisgICAgICAgMjcwICAgMTg0ICAgQjggICAgILggICAgIENFRElMTEEKKyAgICAgICAyNzEgICAxODUgICBCOSAgICAguSAgICAgU1VQRVJTQ1JJUFQgT05FCisgICAgICAgMjcyICAgMTg2ICAgQkEgICAgILogICAgIE1BU0NVTElORSBPUkRJTkFMIElORElDQVRPUgorICAgICAgIDI3MyAgIDE4NyAgIEJCICAgICC7ICAgICBSSUdIVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKKyAgICAgICAyNzQgICAxODggICBCQyAgICAgvCAgICAgVlVMR0FSIEZSQUNUSU9OIE9ORSBRVUFSVEVSCisgICAgICAgMjc1ICAgMTg5ICAgQkQgICAgIL0gICAgIFZVTEdBUiBGUkFDVElPTiBPTkUgSEFMRgorICAgICAgIDI3NiAgIDE5MCAgIEJFICAgICC+ICAgICBWVUxHQVIgRlJBQ1RJT04gVEhSRUUgUVVBUlRFUlMKKyAgICAgICAyNzcgICAxOTEgICBCRiAgICAgvyAgICAgSU5WRVJURUQgUVVFU1RJT04gTUFSSworICAgICAgIDMwMCAgIDE5MiAgIEMwICAgICDAICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggR1JBVkUKKyAgICAgICAzMDEgICAxOTMgICBDMSAgICAgwSAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgICAgICAgMzAyICAgMTk0ICAgQzIgICAgIMIgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzAzICAgMTk1ICAgQzMgICAgIMMgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBUSUxERQorICAgICAgIDMwNCAgIDE5NiAgIEM0ICAgICDEICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTCisgICAgICAgMzA1ICAgMTk3ICAgQzUgICAgIMUgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFCisgICAgICAgMzA2ICAgMTk4ICAgQzYgICAgIMYgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEFFCisgICAgICAgMzA3ICAgMTk5ICAgQzcgICAgIMcgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBCisgICAgICAgMzEwICAgMjAwICAgQzggICAgIMggICAgIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBHUkFWRQorICAgICAgIDMxMSAgIDIwMSAgIEM5ICAgICDJICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQUNVVEUKKyAgICAgICAzMTIgICAyMDIgICBDQSAgICAgyiAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzMTMgICAyMDMgICBDQiAgICAgyyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUworICAgICAgIDMxNCAgIDIwNCAgIENDICAgICDMICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkUKKyAgICAgICAzMTUgICAyMDUgICBDRCAgICAgzSAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFCisgICAgICAgMzE2ICAgMjA2ICAgQ0UgICAgIM4gICAgIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzE3ICAgMjA3ICAgQ0YgICAgIM8gICAgIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMjAgICAyMDggICBEMCAgICAg0CAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRVRICisgICAgICAgMzIxICAgMjA5ICAgRDEgICAgINEgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBUSUxERQorICAgICAgIDMyMiAgIDIxMCAgIEQyICAgICDSICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggR1JBVkUKKyAgICAgICAzMjMgICAyMTEgICBEMyAgICAg0yAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEFDVVRFCisgICAgICAgMzI0ICAgMjEyICAgRDQgICAgINQgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzI1ICAgMjEzICAgRDUgICAgINUgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERQorICAgICAgIDMyNiAgIDIxNCAgIEQ2ICAgICDWICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCisgICAgICAgMzI3ICAgMjE1ICAgRDcgICAgINcgICAgIE1VTFRJUExJQ0FUSU9OIFNJR04KKyAgICAgICAzMzAgICAyMTYgICBEOCAgICAg2CAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRQorICAgICAgIDMzMSAgIDIxNyAgIEQ5ICAgICDZICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggR1JBVkUKKyAgICAgICAzMzIgICAyMTggICBEQSAgICAg2iAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgICAgMzMzICAgMjE5ICAgREIgICAgINsgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzM0ICAgMjIwICAgREMgICAgINwgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMzUgICAyMjEgICBERCAgICAg3SAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgICAgMzM2ICAgMjIyICAgREUgICAgIN4gICAgIExBVElOIENBUElUQUwgTEVUVEVSIFRIT1JOCisgICAgICAgMzM3ICAgMjIzICAgREYgICAgIN8gICAgIExBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTCisgICAgICAgMzQwICAgMjI0ICAgRTAgICAgIOAgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkUKKyAgICAgICAzNDEgICAyMjUgICBFMSAgICAg4SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURQorICAgICAgIDM0MiAgIDIyNiAgIEUyICAgICDiICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzNDMgICAyMjcgICBFMyAgICAg4yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBUSUxERQorICAgICAgIDM0NCAgIDIyOCAgIEU0ICAgICDkICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUworICAgICAgIDM0NSAgIDIyOSAgIEU1ICAgICDlICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUKKyAgICAgICAzNDYgICAyMzAgICBFNiAgICAg5iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEFFCisgICAgICAgMzQ3ICAgMjMxICAgRTcgICAgIOcgICAgIExBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQQorICAgICAgIDM1MCAgIDIzMiAgIEU4ICAgICDoICAgICBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEdSQVZFCisgICAgICAgMzUxICAgMjMzICAgRTkgICAgIOkgICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEUKKyAgICAgICAzNTIgICAyMzQgICBFQSAgICAg6iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzUzICAgMjM1ICAgRUIgICAgIOsgICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTCisgICAgICAgMzU0ICAgMjM2ICAgRUMgICAgIOwgICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkUKKyAgICAgICAzNTUgICAyMzcgICBFRCAgICAg7SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBBQ1VURQorICAgICAgIDM1NiAgIDIzOCAgIEVFICAgICDuICAgICBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzNTcgICAyMzkgICBFRiAgICAg7yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNjAgICAyNDAgICBGMCAgICAg8CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEVUSAorICAgICAgIDM2MSAgIDI0MSAgIEYxICAgICDxICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFRJTERFCisgICAgICAgMzYyICAgMjQyICAgRjIgICAgIPIgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkUKKyAgICAgICAzNjMgICAyNDMgICBGMyAgICAg8yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBBQ1VURQorICAgICAgIDM2NCAgIDI0NCAgIEY0ICAgICD0ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzNjUgICAyNDUgICBGNSAgICAg9SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERQorICAgICAgIDM2NiAgIDI0NiAgIEY2ICAgICD2ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUworICAgICAgIDM2NyAgIDI0NyAgIEY3ICAgICD3ICAgICBESVZJU0lPTiBTSUdOCisgICAgICAgMzcwICAgMjQ4ICAgRjggICAgIPggICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFCisgICAgICAgMzcxICAgMjQ5ICAgRjkgICAgIPkgICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggR1JBVkUKKyAgICAgICAzNzIgICAyNTAgICBGQSAgICAg+iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBBQ1VURQorICAgICAgIDM3MyAgIDI1MSAgIEZCICAgICD7ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzNzQgICAyNTIgICBGQyAgICAg/CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNzUgICAyNTMgICBGRCAgICAg/SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBBQ1VURQorICAgICAgIDM3NiAgIDI1NCAgIEZFICAgICD+ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk4KKyAgICAgICAzNzcgICAyNTUgICBGRiAgICAg/yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVMKKworPC90c3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDIucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyNGNiM2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyLnJkZQpAQCAtMCwwICsxLDEwOCBAQAorMCAxIHRzdCAwIDAKKzEgMyAjdGV4dCAwIDEgCisKKyAgICAgICBUaGUgZm9sbG93aW5nIHRhYmxlIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXJzICBpbiAgSVNPICA4ODU5CisgICAgICAgTGF0aW4tMSwgIHdoaWNoIGFyZSBwcmludGFibGUgYW5kIHVubGlzdGVkIGluIHRoZSBhc2NpaQorICAgICAgIG1hbnVhbCBwYWdlLgorCisgICAgICAgT2N0ICAgRGVjICAgSGV4ICAgQ2hhciAgIERlc2NyaXB0aW9uCisgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAyNDAgICAxNjAgICBBMCAgICAgICAgICAgTk8tQlJFQUsgU1BBQ0UKKyAgICAgICAyNDEgICAxNjEgICBBMSAgICAgwqEgICAgIElOVkVSVEVEIEVYQ0xBTUFUSU9OIE1BUksKKyAgICAgICAyNDIgICAxNjIgICBBMiAgICAgwqIgICAgIENFTlQgU0lHTgorICAgICAgIDI0MyAgIDE2MyAgIEEzICAgICDCoyAgICAgUE9VTkQgU0lHTgorICAgICAgIDI0NCAgIDE2NCAgIEE0ICAgICDCpCAgICAgQ1VSUkVOQ1kgU0lHTgorICAgICAgIDI0NSAgIDE2NSAgIEE1ICAgICDCpSAgICAgWUVOIFNJR04KKyAgICAgICAyNDYgICAxNjYgICBBNiAgICAgwqYgICAgIEJST0tFTiBCQVIKKyAgICAgICAyNDcgICAxNjcgICBBNyAgICAgwqcgICAgIFNFQ1RJT04gU0lHTgorICAgICAgIDI1MCAgIDE2OCAgIEE4ICAgICDCqCAgICAgRElBRVJFU0lTCisgICAgICAgMjUxICAgMTY5ICAgQTkgICAgIMKpICAgICBDT1BZUklHSFQgU0lHTgorICAgICAgIDI1MiAgIDE3MCAgIEFBICAgICDCqiAgICAgRkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAgICAyNTMgICAxNzEgICBBQiAgICAgwqsgICAgIExFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgICAgMjU0ICAgMTcyICAgQUMgICAgIMKsICAgICBOT1QgU0lHTgorICAgICAgIDI1NSAgIDE3MyAgIEFEICAgICDCrSAgICAgU09GVCBIWVBIRU4KKyAgICAgICAyNTYgICAxNzQgICBBRSAgICAgwq4gICAgIFJFR0lTVEVSRUQgU0lHTgorICAgICAgIDI1NyAgIDE3NSAgIEFGICAgICDCryAgICAgTUFDUk9OCisgICAgICAgMjYwICAgMTc2ICAgQjAgICAgIMKwICAgICBERUdSRUUgU0lHTgorICAgICAgIDI2MSAgIDE3NyAgIEIxICAgICDCsSAgICAgUExVUy1NSU5VUyBTSUdOCisgICAgICAgMjYyICAgMTc4ICAgQjIgICAgIMKyICAgICBTVVBFUlNDUklQVCBUV08KKyAgICAgICAyNjMgICAxNzkgICBCMyAgICAgwrMgICAgIFNVUEVSU0NSSVBUIFRIUkVFCisgICAgICAgMjY0ICAgMTgwICAgQjQgICAgIMK0ICAgICBBQ1VURSBBQ0NFTlQKKyAgICAgICAyNjUgICAxODEgICBCNSAgICAgwrUgICAgIE1JQ1JPIFNJR04KKyAgICAgICAyNjYgICAxODIgICBCNiAgICAgwrYgICAgIFBJTENST1cgU0lHTgorICAgICAgIDI2NyAgIDE4MyAgIEI3ICAgICDCtyAgICAgTUlERExFIERPVAorICAgICAgIDI3MCAgIDE4NCAgIEI4ICAgICDCuCAgICAgQ0VESUxMQQorICAgICAgIDI3MSAgIDE4NSAgIEI5ICAgICDCuSAgICAgU1VQRVJTQ1JJUFQgT05FCisgICAgICAgMjcyICAgMTg2ICAgQkEgICAgIMK6ICAgICBNQVNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAgICAyNzMgICAxODcgICBCQiAgICAgwrsgICAgIFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICAgIDI3NCAgIDE4OCAgIEJDICAgICDCvCAgICAgVlVMR0FSIEZSQUNUSU9OIE9ORSBRVUFSVEVSCisgICAgICAgMjc1ICAgMTg5ICAgQkQgICAgIMK9ICAgICBWVUxHQVIgRlJBQ1RJT04gT05FIEhBTEYKKyAgICAgICAyNzYgICAxOTAgICBCRSAgICAgwr4gICAgIFZVTEdBUiBGUkFDVElPTiBUSFJFRSBRVUFSVEVSUworICAgICAgIDI3NyAgIDE5MSAgIEJGICAgICDCvyAgICAgSU5WRVJURUQgUVVFU1RJT04gTUFSSworICAgICAgIDMwMCAgIDE5MiAgIEMwICAgICDDgCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFCisgICAgICAgMzAxICAgMTkzICAgQzEgICAgIMOBICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAgICAzMDIgICAxOTQgICBDMiAgICAgw4IgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzAzICAgMTk1ICAgQzMgICAgIMODICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggVElMREUKKyAgICAgICAzMDQgICAxOTYgICBDNCAgICAgw4QgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMDUgICAxOTcgICBDNSAgICAgw4UgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFCisgICAgICAgMzA2ICAgMTk4ICAgQzYgICAgIMOGICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBRQorICAgICAgIDMwNyAgIDE5OSAgIEM3ICAgICDDhyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAgICAzMTAgICAyMDAgICBDOCAgICAgw4ggICAgIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBHUkFWRQorICAgICAgIDMxMSAgIDIwMSAgIEM5ICAgICDDiSAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFCisgICAgICAgMzEyICAgMjAyICAgQ0EgICAgIMOKICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMxMyAgIDIwMyAgIENCICAgICDDiyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUworICAgICAgIDMxNCAgIDIwNCAgIENDICAgICDDjCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgICAgMzE1ICAgMjA1ICAgQ0QgICAgIMONICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAgICAzMTYgICAyMDYgICBDRSAgICAgw44gICAgIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzE3ICAgMjA3ICAgQ0YgICAgIMOPICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTCisgICAgICAgMzIwICAgMjA4ICAgRDAgICAgIMOQICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEgKKyAgICAgICAzMjEgICAyMDkgICBEMSAgICAgw5EgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBUSUxERQorICAgICAgIDMyMiAgIDIxMCAgIEQyICAgICDDkiAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEdSQVZFCisgICAgICAgMzIzICAgMjExICAgRDMgICAgIMOTICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAgICAzMjQgICAyMTIgICBENCAgICAgw5QgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzI1ICAgMjEzICAgRDUgICAgIMOVICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUKKyAgICAgICAzMjYgICAyMTQgICBENiAgICAgw5YgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMjcgICAyMTUgICBENyAgICAgw5cgICAgIE1VTFRJUExJQ0FUSU9OIFNJR04KKyAgICAgICAzMzAgICAyMTYgICBEOCAgICAgw5ggICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKKyAgICAgICAzMzEgICAyMTcgICBEOSAgICAgw5kgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRQorICAgICAgIDMzMiAgIDIxOCAgIERBICAgICDDmiAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgICAgMzMzICAgMjE5ICAgREIgICAgIMObICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMzNCAgIDIyMCAgIERDICAgICDDnCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICAgIDMzNSAgIDIyMSAgIEREICAgICDDnSAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgICAgMzM2ICAgMjIyICAgREUgICAgIMOeICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STgorICAgICAgIDMzNyAgIDIyMyAgIERGICAgICDDnyAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKyAgICAgICAzNDAgICAyMjQgICBFMCAgICAgw6AgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkUKKyAgICAgICAzNDEgICAyMjUgICBFMSAgICAgw6EgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAgICAzNDIgICAyMjYgICBFMiAgICAgw6IgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM0MyAgIDIyNyAgIEUzICAgICDDoyAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBUSUxERQorICAgICAgIDM0NCAgIDIyOCAgIEU0ICAgICDDpCAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNDUgICAyMjkgICBFNSAgICAgw6UgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRQorICAgICAgIDM0NiAgIDIzMCAgIEU2ICAgICDDpiAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEFFCisgICAgICAgMzQ3ICAgMjMxICAgRTcgICAgIMOnICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAgICAzNTAgICAyMzIgICBFOCAgICAgw6ggICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggR1JBVkUKKyAgICAgICAzNTEgICAyMzMgICBFOSAgICAgw6kgICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEUKKyAgICAgICAzNTIgICAyMzQgICBFQSAgICAgw6ogICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM1MyAgIDIzNSAgIEVCICAgICDDqyAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNTQgICAyMzYgICBFQyAgICAgw6wgICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkUKKyAgICAgICAzNTUgICAyMzcgICBFRCAgICAgw60gICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAgICAzNTYgICAyMzggICBFRSAgICAgw64gICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM1NyAgIDIzOSAgIEVGICAgICDDryAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNjAgICAyNDAgICBGMCAgICAgw7AgICAgIExBVElOIFNNQUxMIExFVFRFUiBFVEgKKyAgICAgICAzNjEgICAyNDEgICBGMSAgICAgw7EgICAgIExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggVElMREUKKyAgICAgICAzNjIgICAyNDIgICBGMiAgICAgw7IgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkUKKyAgICAgICAzNjMgICAyNDMgICBGMyAgICAgw7MgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAgICAzNjQgICAyNDQgICBGNCAgICAgw7QgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM2NSAgIDI0NSAgIEY1ICAgICDDtSAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERQorICAgICAgIDM2NiAgIDI0NiAgIEY2ICAgICDDtiAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNjcgICAyNDcgICBGNyAgICAgw7cgICAgIERJVklTSU9OIFNJR04KKyAgICAgICAzNzAgICAyNDggICBGOCAgICAgw7ggICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFCisgICAgICAgMzcxICAgMjQ5ICAgRjkgICAgIMO5ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEdSQVZFCisgICAgICAgMzcyICAgMjUwICAgRkEgICAgIMO6ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgICAgMzczICAgMjUxICAgRkIgICAgIMO7ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzNzQgICAyNTIgICBGQyAgICAgw7wgICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCisgICAgICAgMzc1ICAgMjUzICAgRkQgICAgIMO9ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgICAgMzc2ICAgMjU0ICAgRkUgICAgIMO+ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk4KKyAgICAgICAzNzcgICAyNTUgICBGRiAgICAgw78gICAgIExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTCisKKworMCAxNSB0c3QgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDIucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyNGNiM2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyLnJkcgpAQCAtMCwwICsxLDEwOCBAQAorMCAxIHRzdCAwIDAKKzEgMyAjdGV4dCAwIDEgCisKKyAgICAgICBUaGUgZm9sbG93aW5nIHRhYmxlIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXJzICBpbiAgSVNPICA4ODU5CisgICAgICAgTGF0aW4tMSwgIHdoaWNoIGFyZSBwcmludGFibGUgYW5kIHVubGlzdGVkIGluIHRoZSBhc2NpaQorICAgICAgIG1hbnVhbCBwYWdlLgorCisgICAgICAgT2N0ICAgRGVjICAgSGV4ICAgQ2hhciAgIERlc2NyaXB0aW9uCisgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAyNDAgICAxNjAgICBBMCAgICAgICAgICAgTk8tQlJFQUsgU1BBQ0UKKyAgICAgICAyNDEgICAxNjEgICBBMSAgICAgwqEgICAgIElOVkVSVEVEIEVYQ0xBTUFUSU9OIE1BUksKKyAgICAgICAyNDIgICAxNjIgICBBMiAgICAgwqIgICAgIENFTlQgU0lHTgorICAgICAgIDI0MyAgIDE2MyAgIEEzICAgICDCoyAgICAgUE9VTkQgU0lHTgorICAgICAgIDI0NCAgIDE2NCAgIEE0ICAgICDCpCAgICAgQ1VSUkVOQ1kgU0lHTgorICAgICAgIDI0NSAgIDE2NSAgIEE1ICAgICDCpSAgICAgWUVOIFNJR04KKyAgICAgICAyNDYgICAxNjYgICBBNiAgICAgwqYgICAgIEJST0tFTiBCQVIKKyAgICAgICAyNDcgICAxNjcgICBBNyAgICAgwqcgICAgIFNFQ1RJT04gU0lHTgorICAgICAgIDI1MCAgIDE2OCAgIEE4ICAgICDCqCAgICAgRElBRVJFU0lTCisgICAgICAgMjUxICAgMTY5ICAgQTkgICAgIMKpICAgICBDT1BZUklHSFQgU0lHTgorICAgICAgIDI1MiAgIDE3MCAgIEFBICAgICDCqiAgICAgRkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAgICAyNTMgICAxNzEgICBBQiAgICAgwqsgICAgIExFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgICAgMjU0ICAgMTcyICAgQUMgICAgIMKsICAgICBOT1QgU0lHTgorICAgICAgIDI1NSAgIDE3MyAgIEFEICAgICDCrSAgICAgU09GVCBIWVBIRU4KKyAgICAgICAyNTYgICAxNzQgICBBRSAgICAgwq4gICAgIFJFR0lTVEVSRUQgU0lHTgorICAgICAgIDI1NyAgIDE3NSAgIEFGICAgICDCryAgICAgTUFDUk9OCisgICAgICAgMjYwICAgMTc2ICAgQjAgICAgIMKwICAgICBERUdSRUUgU0lHTgorICAgICAgIDI2MSAgIDE3NyAgIEIxICAgICDCsSAgICAgUExVUy1NSU5VUyBTSUdOCisgICAgICAgMjYyICAgMTc4ICAgQjIgICAgIMKyICAgICBTVVBFUlNDUklQVCBUV08KKyAgICAgICAyNjMgICAxNzkgICBCMyAgICAgwrMgICAgIFNVUEVSU0NSSVBUIFRIUkVFCisgICAgICAgMjY0ICAgMTgwICAgQjQgICAgIMK0ICAgICBBQ1VURSBBQ0NFTlQKKyAgICAgICAyNjUgICAxODEgICBCNSAgICAgwrUgICAgIE1JQ1JPIFNJR04KKyAgICAgICAyNjYgICAxODIgICBCNiAgICAgwrYgICAgIFBJTENST1cgU0lHTgorICAgICAgIDI2NyAgIDE4MyAgIEI3ICAgICDCtyAgICAgTUlERExFIERPVAorICAgICAgIDI3MCAgIDE4NCAgIEI4ICAgICDCuCAgICAgQ0VESUxMQQorICAgICAgIDI3MSAgIDE4NSAgIEI5ICAgICDCuSAgICAgU1VQRVJTQ1JJUFQgT05FCisgICAgICAgMjcyICAgMTg2ICAgQkEgICAgIMK6ICAgICBNQVNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAgICAyNzMgICAxODcgICBCQiAgICAgwrsgICAgIFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICAgIDI3NCAgIDE4OCAgIEJDICAgICDCvCAgICAgVlVMR0FSIEZSQUNUSU9OIE9ORSBRVUFSVEVSCisgICAgICAgMjc1ICAgMTg5ICAgQkQgICAgIMK9ICAgICBWVUxHQVIgRlJBQ1RJT04gT05FIEhBTEYKKyAgICAgICAyNzYgICAxOTAgICBCRSAgICAgwr4gICAgIFZVTEdBUiBGUkFDVElPTiBUSFJFRSBRVUFSVEVSUworICAgICAgIDI3NyAgIDE5MSAgIEJGICAgICDCvyAgICAgSU5WRVJURUQgUVVFU1RJT04gTUFSSworICAgICAgIDMwMCAgIDE5MiAgIEMwICAgICDDgCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFCisgICAgICAgMzAxICAgMTkzICAgQzEgICAgIMOBICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAgICAzMDIgICAxOTQgICBDMiAgICAgw4IgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzAzICAgMTk1ICAgQzMgICAgIMODICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggVElMREUKKyAgICAgICAzMDQgICAxOTYgICBDNCAgICAgw4QgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMDUgICAxOTcgICBDNSAgICAgw4UgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFCisgICAgICAgMzA2ICAgMTk4ICAgQzYgICAgIMOGICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBRQorICAgICAgIDMwNyAgIDE5OSAgIEM3ICAgICDDhyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAgICAzMTAgICAyMDAgICBDOCAgICAgw4ggICAgIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBHUkFWRQorICAgICAgIDMxMSAgIDIwMSAgIEM5ICAgICDDiSAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFCisgICAgICAgMzEyICAgMjAyICAgQ0EgICAgIMOKICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMxMyAgIDIwMyAgIENCICAgICDDiyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUworICAgICAgIDMxNCAgIDIwNCAgIENDICAgICDDjCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgICAgMzE1ICAgMjA1ICAgQ0QgICAgIMONICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAgICAzMTYgICAyMDYgICBDRSAgICAgw44gICAgIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzE3ICAgMjA3ICAgQ0YgICAgIMOPICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTCisgICAgICAgMzIwICAgMjA4ICAgRDAgICAgIMOQICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEgKKyAgICAgICAzMjEgICAyMDkgICBEMSAgICAgw5EgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBUSUxERQorICAgICAgIDMyMiAgIDIxMCAgIEQyICAgICDDkiAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEdSQVZFCisgICAgICAgMzIzICAgMjExICAgRDMgICAgIMOTICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAgICAzMjQgICAyMTIgICBENCAgICAgw5QgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzI1ICAgMjEzICAgRDUgICAgIMOVICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUKKyAgICAgICAzMjYgICAyMTQgICBENiAgICAgw5YgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMjcgICAyMTUgICBENyAgICAgw5cgICAgIE1VTFRJUExJQ0FUSU9OIFNJR04KKyAgICAgICAzMzAgICAyMTYgICBEOCAgICAgw5ggICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKKyAgICAgICAzMzEgICAyMTcgICBEOSAgICAgw5kgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRQorICAgICAgIDMzMiAgIDIxOCAgIERBICAgICDDmiAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgICAgMzMzICAgMjE5ICAgREIgICAgIMObICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMzNCAgIDIyMCAgIERDICAgICDDnCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICAgIDMzNSAgIDIyMSAgIEREICAgICDDnSAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgICAgMzM2ICAgMjIyICAgREUgICAgIMOeICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STgorICAgICAgIDMzNyAgIDIyMyAgIERGICAgICDDnyAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKyAgICAgICAzNDAgICAyMjQgICBFMCAgICAgw6AgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkUKKyAgICAgICAzNDEgICAyMjUgICBFMSAgICAgw6EgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAgICAzNDIgICAyMjYgICBFMiAgICAgw6IgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM0MyAgIDIyNyAgIEUzICAgICDDoyAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBUSUxERQorICAgICAgIDM0NCAgIDIyOCAgIEU0ICAgICDDpCAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNDUgICAyMjkgICBFNSAgICAgw6UgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRQorICAgICAgIDM0NiAgIDIzMCAgIEU2ICAgICDDpiAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEFFCisgICAgICAgMzQ3ICAgMjMxICAgRTcgICAgIMOnICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAgICAzNTAgICAyMzIgICBFOCAgICAgw6ggICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggR1JBVkUKKyAgICAgICAzNTEgICAyMzMgICBFOSAgICAgw6kgICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEUKKyAgICAgICAzNTIgICAyMzQgICBFQSAgICAgw6ogICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM1MyAgIDIzNSAgIEVCICAgICDDqyAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNTQgICAyMzYgICBFQyAgICAgw6wgICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkUKKyAgICAgICAzNTUgICAyMzcgICBFRCAgICAgw60gICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAgICAzNTYgICAyMzggICBFRSAgICAgw64gICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM1NyAgIDIzOSAgIEVGICAgICDDryAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNjAgICAyNDAgICBGMCAgICAgw7AgICAgIExBVElOIFNNQUxMIExFVFRFUiBFVEgKKyAgICAgICAzNjEgICAyNDEgICBGMSAgICAgw7EgICAgIExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggVElMREUKKyAgICAgICAzNjIgICAyNDIgICBGMiAgICAgw7IgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkUKKyAgICAgICAzNjMgICAyNDMgICBGMyAgICAgw7MgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAgICAzNjQgICAyNDQgICBGNCAgICAgw7QgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM2NSAgIDI0NSAgIEY1ICAgICDDtSAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERQorICAgICAgIDM2NiAgIDI0NiAgIEY2ICAgICDDtiAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNjcgICAyNDcgICBGNyAgICAgw7cgICAgIERJVklTSU9OIFNJR04KKyAgICAgICAzNzAgICAyNDggICBGOCAgICAgw7ggICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFCisgICAgICAgMzcxICAgMjQ5ICAgRjkgICAgIMO5ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEdSQVZFCisgICAgICAgMzcyICAgMjUwICAgRkEgICAgIMO6ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgICAgMzczICAgMjUxICAgRkIgICAgIMO7ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzNzQgICAyNTIgICBGQyAgICAgw7wgICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCisgICAgICAgMzc1ICAgMjUzICAgRkQgICAgIMO9ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgICAgMzc2ICAgMjU0ICAgRkUgICAgIMO+ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk4KKyAgICAgICAzNzcgICAyNTUgICBGRiAgICAgw78gICAgIExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTCisKKworMCAxNSB0c3QgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDIuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczN2M5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyLnNheApAQCAtMCwwICsxLDM1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQodHN0KQorU0FYLmNoYXJhY3RlcnMoCisKKyAgICAgICBUaGUgZm9sbG93aW5nIHRhYmxlIGQsIDM0NSkKK1NBWC5jaGFyYWN0ZXJzKMKhICAgICBJTlZFUlRFRCBFWENMQU1BVElPTiBNQSwgMzAwKQorU0FYLmNoYXJhY3RlcnMoICAgICAgMjUwICAgMTY4ICAgQTggICAgIMKoICAgLCAzMDApCitTQVguY2hhcmFjdGVycyhTT0ZUIEhZUEhFTgorICAgICAgIDI1NiAgIDE3NCAgLCAzMDApCitTQVguY2hhcmFjdGVycyggIDI2NCAgIDE4MCAgIEI0ICAgICDCtCAgICAgQUMsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKFNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKDEgICBCRiAgICAgwr8gICAgIElOVkVSVEVEIFFVRSwgMzAwKQorU0FYLmNoYXJhY3RlcnMoIEEgV0lUSCBUSUxERQorICAgICAgIDMwNCAgIDE5NiwgMzAwKQorU0FYLmNoYXJhY3RlcnMoICBDOCAgICAgw4ggICAgIExBVElOIENBUElUQUwgLCAzMDApCitTQVguY2hhcmFjdGVycyhBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgLCAzMDApCitTQVguY2hhcmFjdGVycyggIDMyMSAgIDIwOSAgIEQxICAgICDDkSAgICAgTEEsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVCwgMzAwKQorU0FYLmNoYXJhY3RlcnMoIDMzMiAgIDIxOCAgIERBICAgICDDmiAgICAgTEFULCAzMDApCitTQVguY2hhcmFjdGVycyggICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk4sIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKDMgICAyMjcgICBFMyAgICAgw6MgICAgIExBVElOICwgMzAwKQorU0FYLmNoYXJhY3RlcnMoUiBDIFdJVEggQ0VESUxMQQorICAgICAgIDM1MCAgICwgMzAwKQorU0FYLmNoYXJhY3RlcnMoMzYgICBFQyAgICAgw6wgICAgIExBVElOIFNNQUxMLCAzMDApCitTQVguY2hhcmFjdGVycyhMRVRURVIgRVRICisgICAgICAgMzYxICAgMjQxICAgLCAzMDApCitTQVguY2hhcmFjdGVycyggIMO1ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyAsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKCAyNTAgICBGQSAgICAgw7ogICAgIExBVElOIFNNQSwgMzAwKQorU0FYLmNoYXJhY3RlcnMoTCBMRVRURVIgVEhPUk4KKyAgICAgICAzNzcgICAyNSwgODUpCitTQVguZW5kRWxlbWVudCh0c3QpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0Mi5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0Mi5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhYzNmNTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQyLnNheDIKQEAgLTAsMCArMSwzNSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnModHN0LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisKKyAgICAgICBUaGUgZm9sbG93aW5nIHRhYmxlIGQsIDM0NSkKK1NBWC5jaGFyYWN0ZXJzKMKhICAgICBJTlZFUlRFRCBFWENMQU1BVElPTiBNQSwgMzAwKQorU0FYLmNoYXJhY3RlcnMoICAgICAgMjUwICAgMTY4ICAgQTggICAgIMKoICAgLCAzMDApCitTQVguY2hhcmFjdGVycyhTT0ZUIEhZUEhFTgorICAgICAgIDI1NiAgIDE3NCAgLCAzMDApCitTQVguY2hhcmFjdGVycyggIDI2NCAgIDE4MCAgIEI0ICAgICDCtCAgICAgQUMsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKFNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKDEgICBCRiAgICAgwr8gICAgIElOVkVSVEVEIFFVRSwgMzAwKQorU0FYLmNoYXJhY3RlcnMoIEEgV0lUSCBUSUxERQorICAgICAgIDMwNCAgIDE5NiwgMzAwKQorU0FYLmNoYXJhY3RlcnMoICBDOCAgICAgw4ggICAgIExBVElOIENBUElUQUwgLCAzMDApCitTQVguY2hhcmFjdGVycyhBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgLCAzMDApCitTQVguY2hhcmFjdGVycyggIDMyMSAgIDIwOSAgIEQxICAgICDDkSAgICAgTEEsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVCwgMzAwKQorU0FYLmNoYXJhY3RlcnMoIDMzMiAgIDIxOCAgIERBICAgICDDmiAgICAgTEFULCAzMDApCitTQVguY2hhcmFjdGVycyggICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk4sIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKDMgICAyMjcgICBFMyAgICAgw6MgICAgIExBVElOICwgMzAwKQorU0FYLmNoYXJhY3RlcnMoUiBDIFdJVEggQ0VESUxMQQorICAgICAgIDM1MCAgICwgMzAwKQorU0FYLmNoYXJhY3RlcnMoMzYgICBFQyAgICAgw6wgICAgIExBVElOIFNNQUxMLCAzMDApCitTQVguY2hhcmFjdGVycyhMRVRURVIgRVRICisgICAgICAgMzYxICAgMjQxICAgLCAzMDApCitTQVguY2hhcmFjdGVycyggIMO1ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyAsIDMwMCkKK1NBWC5jaGFyYWN0ZXJzKCAyNTAgICBGQSAgICAgw7ogICAgIExBVElOIFNNQSwgMzAwKQorU0FYLmNoYXJhY3RlcnMoTCBMRVRURVIgVEhPUk4KKyAgICAgICAzNzcgICAyNSwgODUpCitTQVguZW5kRWxlbWVudE5zKHRzdCwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWJmN2I0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0MwpAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8cmVjPgorPGVnPjwhW0NEQVRBWzwhRU5USVRZICUgcHViICAgICImI3hjOTtkaXRpb25zIEdhbGxpbWFyZCIgPgorPCFFTlRJVFkgICByaWdodHMgIkFsbCByaWdodHMgcmVzZXJ2ZWQiID4KKzwhRU5USVRZICAgYm9vayAgICJMYSBQZXN0ZTogQWxiZXJ0IENhbXVzLCAKKyYjeEE5OyAxOTQ3ICVwdWI7LiAmcmlnaHRzOyIgPl1dPjwvZWc+Cit0aGVuIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciB0aGUgZW50aXR5ICI8Y29kZT5ib29rPC9jb2RlPiIgaXM6Cis8ZWc+TGEgUGVzdGU6IEFsYmVydCBDYW11cywgCiupIDE5NDcgyWRpdGlvbnMgR2FsbGltYXJkLiAmYW1wO3JpZ2h0czs8L2VnPgorPC9yZWM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDMucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNjdjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzLnJkZQpAQCAtMCwwICsxLDIzIEBACiswIDEgcmVjIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBlZyAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgPCFFTlRJVFkgJSBwdWIgICAgIiYjeGM5O2RpdGlvbnMgR2FsbGltYXJkIiA+Cis8IUVOVElUWSAgIHJpZ2h0cyAiQWxsIHJpZ2h0cyByZXNlcnZlZCIgPgorPCFFTlRJVFkgICBib29rICAgIkxhIFBlc3RlOiBBbGJlcnQgQ2FtdXMsIAorJiN4QTk7IDE5NDcgJXB1YjsuICZyaWdodHM7IiA+CisxIDE1IGVnIDAgMAorMSAzICN0ZXh0IDAgMSAKK3RoZW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIHRoZSBlbnRpdHkgIgorMSAxIGNvZGUgMCAwCisyIDMgI3RleHQgMCAxIGJvb2sKKzEgMTUgY29kZSAwIDAKKzEgMyAjdGV4dCAwIDEgIiBpczoKKworMSAxIGVnIDAgMAorMiAzICN0ZXh0IDAgMSBMYSBQZXN0ZTogQWxiZXJ0IENhbXVzLCAKK8KpIDE5NDcgw4lkaXRpb25zIEdhbGxpbWFyZC4gJnJpZ2h0czsKKzEgMTUgZWcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSByZWMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDMucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNjdjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzLnJkcgpAQCAtMCwwICsxLDIzIEBACiswIDEgcmVjIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBlZyAwIDAKKzIgNCAjY2RhdGEtc2VjdGlvbiAwIDEgPCFFTlRJVFkgJSBwdWIgICAgIiYjeGM5O2RpdGlvbnMgR2FsbGltYXJkIiA+Cis8IUVOVElUWSAgIHJpZ2h0cyAiQWxsIHJpZ2h0cyByZXNlcnZlZCIgPgorPCFFTlRJVFkgICBib29rICAgIkxhIFBlc3RlOiBBbGJlcnQgQ2FtdXMsIAorJiN4QTk7IDE5NDcgJXB1YjsuICZyaWdodHM7IiA+CisxIDE1IGVnIDAgMAorMSAzICN0ZXh0IDAgMSAKK3RoZW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIHRoZSBlbnRpdHkgIgorMSAxIGNvZGUgMCAwCisyIDMgI3RleHQgMCAxIGJvb2sKKzEgMTUgY29kZSAwIDAKKzEgMyAjdGV4dCAwIDEgIiBpczoKKworMSAxIGVnIDAgMAorMiAzICN0ZXh0IDAgMSBMYSBQZXN0ZTogQWxiZXJ0IENhbXVzLCAKK8KpIDE5NDcgw4lkaXRpb25zIEdhbGxpbWFyZC4gJnJpZ2h0czsKKzEgMTUgZWcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSByZWMgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L2lzb2xhdDMuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNDBlNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzLnNheApAQCAtMCwwICsxLDI5IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQocmVjKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGVnKQorU0FYLnBjZGF0YSg8IUVOVElUWSAlIHB1YiAgICAiJiwgMTYyKQorU0FYLmVuZEVsZW1lbnQoZWcpCitTQVguY2hhcmFjdGVycygKK3RoZW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yLCA0MykKK1NBWC5zdGFydEVsZW1lbnQoY29kZSkKK1NBWC5jaGFyYWN0ZXJzKGJvb2ssIDQpCitTQVguZW5kRWxlbWVudChjb2RlKQorU0FYLmNoYXJhY3RlcnMoIiBpczoKKywgNikKK1NBWC5zdGFydEVsZW1lbnQoZWcpCitTQVguY2hhcmFjdGVycyhMYSBQZXN0ZTogQWxiZXJ0IENhbXVzLCAKKywgMjUpCitTQVguY2hhcmFjdGVycyjCqSwgMikKK1NBWC5jaGFyYWN0ZXJzKCAxOTQ3ICwgNikKK1NBWC5jaGFyYWN0ZXJzKMOJLCAyKQorU0FYLmNoYXJhY3RlcnMoZGl0aW9ucyBHYWxsaW1hcmQuICwgMTkpCitTQVguY2hhcmFjdGVycygmLCAxKQorU0FYLmNoYXJhY3RlcnMocmlnaHRzOywgNykKK1NBWC5lbmRFbGVtZW50KGVnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChyZWMpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0My5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvaXNvbGF0My5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxMjk2YWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9pc29sYXQzLnNheDIKQEAgLTAsMCArMSwyOSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMocmVjLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50TnMoZWcsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVgucGNkYXRhKDwhRU5USVRZICUgcHViICAgICImLCAxNjIpCitTQVguZW5kRWxlbWVudE5zKGVnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCit0aGVuIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciwgNDMpCitTQVguc3RhcnRFbGVtZW50TnMoY29kZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGJvb2ssIDQpCitTQVguZW5kRWxlbWVudE5zKGNvZGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygiIGlzOgorLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGVnLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoTGEgUGVzdGU6IEFsYmVydCBDYW11cywgCissIDI1KQorU0FYLmNoYXJhY3RlcnMowqksIDIpCitTQVguY2hhcmFjdGVycyggMTk0NyAsIDYpCitTQVguY2hhcmFjdGVycyjDiSwgMikKK1NBWC5jaGFyYWN0ZXJzKGRpdGlvbnMgR2FsbGltYXJkLiAsIDE5KQorU0FYLmNoYXJhY3RlcnMoJiwgMSkKK1NBWC5jaGFyYWN0ZXJzKHJpZ2h0czssIDcpCitTQVguZW5kRWxlbWVudE5zKGVnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKHJlYywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8wLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2OGQ5NTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8wLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbyB4bWxuc2Jhcj0iMSIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMC54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMC54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8wLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzEueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRhYThmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzEueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zOj0iaHR0cDovL2V4YW1wbGUuY29tLyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMS54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NDY2Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8xLnhtbC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvbmFtZXNwYWNlcy9lcnJfMS54bWw6MTogbmFtZXNwYWNlIGVycm9yIDogRmFpbGVkIHRvIHBhcnNlIFFOYW1lICd4bWxuczonCis8Zm9vIHhtbG5zOj0iaHR0cDovL2V4YW1wbGUuY29tLyIvPgorICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8xMC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8xMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzEwLnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMTAueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzEwLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRhNGI1NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzEwLnhtbC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvbmFtZXNwYWNlcy9lcnJfMTAueG1sOjE6IHBhcnNlciBlcnJvciA6IEF0dHJpYnV0ZSB4bWxucyByZWRlZmluZWQKKzx0c3QgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS8iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5jb20vIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8xMS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8xMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzExLnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMTEueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzExLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE5YmMwMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzExLnhtbC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvbmFtZXNwYWNlcy9lcnJfMTEueG1sOjE6IHBhcnNlciBlcnJvciA6IEF0dHJpYnV0ZSB4bWxuczphIHJlZGVmaW5lZAorPHRzdCB4bWxuczphPSJodHRwOi8vZXhhbXBsZS5jb20vIiB4bWxuczphPSJodHRwOi8vZXhhbXBsZS5jb20vIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2U3MjdiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMi54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzw6Lz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzIueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzIueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzFiY2ZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMi54bWwuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L25hbWVzcGFjZXMvZXJyXzIueG1sOjE6IG5hbWVzcGFjZSBlcnJvciA6IEZhaWxlZCB0byBwYXJzZSBRTmFtZSAnOicKKzw6Lz4KKyAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl8zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTUxODM0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMy54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzw6Zm9vLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzMueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzMueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMThmZTlmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfMy54bWwuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L25hbWVzcGFjZXMvZXJyXzMueG1sOjE6IG5hbWVzcGFjZSBlcnJvciA6IEZhaWxlZCB0byBwYXJzZSBRTmFtZSAnOmZvbycKKzw6Zm9vLz4KKyAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGQ2NjRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfNC54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmOiB4bWxuczpmPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl80LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl80LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzliMGMwMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzQueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9uYW1lc3BhY2VzL2Vycl80LnhtbDoxOiBuYW1lc3BhY2UgZXJyb3IgOiBGYWlsZWQgdG8gcGFyc2UgUU5hbWUgJ2Y6JworPGY6IHhtbG5zOmY9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iLz4KKyAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfNS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q4ZDBiMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzUueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZjphOiB4bWxuczpmPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl81LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl81LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMyYTJlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzUueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9uYW1lc3BhY2VzL2Vycl81LnhtbDoxOiBuYW1lc3BhY2UgZXJyb3IgOiBGYWlsZWQgdG8gcGFyc2UgUU5hbWUgJ2Y6YTonCis8ZjphOiB4bWxuczpmPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIi8+CisgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfNi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl82LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWEyYTU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfNi54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmOmE6YiB4bWxuczpmPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl82LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl82LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdjMTRmZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzYueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9uYW1lc3BhY2VzL2Vycl82LnhtbDoxOiBuYW1lc3BhY2UgZXJyb3IgOiBGYWlsZWQgdG8gcGFyc2UgUU5hbWUgJ2Y6YTonCis8ZjphOmIgeG1sbnM6Zj0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIvPgorICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzcueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfNy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRlNTE2NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzcueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzcueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzcueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2ZmOTViCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfNy54bWwuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L25hbWVzcGFjZXMvZXJyXzcueG1sOjE6IG5hbWVzcGFjZSBlcnJvciA6IE5hbWVzcGFjZSBwcmVmaXggZiBvbiBmb28gaXMgbm90IGRlZmluZWQKKzxmOmZvby8+CisgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl84LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2MDgzMTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl84LnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHRzdC8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl84LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl84LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY3MzVkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzgueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9uYW1lc3BhY2VzL2Vycl84LnhtbDoxOiBuYW1lc3BhY2UgZXJyb3IgOiB4bWwgbmFtZXNwYWNlIHByZWZpeCBtYXBwZWQgdG8gd3JvbmcgVVJJCis8dHN0IHhtbG5zOnhtbD0iaHR0cDovL2V4YW1wbGUuY29tLyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfOS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl85LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDA3ZGZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbmFtZXNwYWNlcy9lcnJfOS54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx0c3QgeG1sbnM6YT0iaHR0cDovL2V4YW1wbGUuY29tLyIgeG1sbnM6Yj0iaHR0cDovL2V4YW1wbGUuY29tLyIgYTplcnI9IjEiIGI6ZXJyPSIyIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl85LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uYW1lc3BhY2VzL2Vycl85LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE4MzdhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25hbWVzcGFjZXMvZXJyXzkueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9uYW1lc3BhY2VzL2Vycl85LnhtbDoyOiBuYW1lc3BhY2UgZXJyb3IgOiBOYW1lc3BhY2VkIEF0dHJpYnV0ZSBlcnIgaW4gJ2h0dHA6Ly9leGFtcGxlLmNvbS8nIHJlZGVmaW5lZAorICAgICBhOmVycj0iMSIgYjplcnI9IjIiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYWE2YmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQxCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jIGF0dHI9InRvIG5vcm1hbGl6ZSB3aXRoIGEgICAgc3BhY2UiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDEwIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0MTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdmMDA5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDEwCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICh0c3QpKj4KKzwhRUxFTUVOVCB0c3QgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRzdCBhIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIHRzdCBiIENEQVRBICNJTVBMSUVEPgorPCFFTlRJVFkgZCAiJiN4RDsiPgorPCFFTlRJVFkgYSAiJiN4QTsiPgorPCFFTlRJVFkgZGEgIiYjeEQ7JiN4QTsiPgorXT4KKzxkb2M+Cis8dHN0IGE9Inh5eiIgYj0iICB4eXoiLz4KKzx0c3QgYT0iQSBCIiBiPSIgIEEgICBCICAiLz4KKzx0c3QgYT0iJiMxMzsmIzEzO0EmIzEwOyYjMTA7QiYjMTM7JiMxMDsiIGI9IiYjMTM7JiMxMztBJiMxMDsmIzEwO0ImIzEzOyYjMTA7Ii8+Cis8dHN0IGE9InggeSIgYj0iIHggIHkgIi8+Cis8dHN0IGE9ImEgYiIgYj0iIGEgYiAiLz4KKzx0c3QgYT0iYSBiIiBiPSIgIGEgIGIgICIvPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQxMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2NDZlNjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQxMQpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8IURPQ1RZUEUgYXR0cmlidXRlcyBbCis8IUVMRU1FTlQgYXR0cmlidXRlcyBFTVBUWT4KKzwhQVRUTElTVCBhdHRyaWJ1dGVzIG5tdG9rZW4gTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBhdHRyaWJ1dGVzIG5tdG9rZW5zIE5NVE9LRU5TICNJTVBMSUVEPgorPCFFTlRJVFkgZW50ICIgZW50aXR5JnJlY3Vyc2l2ZTsgIj4KKzwhRU5USVRZIHJlY3Vyc2l2ZSAicmVmZXJlbmNlIj4KK10+Cis8YXR0cmlidXRlcyBubXRva2VuPSJlbnRpdHlyZWZlcmVuY2UgZW50aXR5cmVmZXJlbmNlIGVudGl0eXJlZmVyZW5jZSIgbm10b2tlbnM9IlRlc3QmIzEzOyYjMTA7IHRoaXMgbm9ybWFsaXphdGlvbiIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg5ODlhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDIKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2MgYXR0cj0idG8gbm9ybWFsaXplICAgd2l0aCBhIHNwYWNlIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0MwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjNhYzVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0MwpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHNlbGVjdCBvbmNsaWNrPSJhYWFhJiMxMDsgICAgICBiYmJiJiN4QTA7Ij5mJiN4QTA7b288L3NlbGVjdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MmNlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQ0CkBAIC0wLDAgKzEsOTI2NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gZWRpdGVkIHdpdGggWE1MIFNweSB2NC40IFUgKGh0dHA6Ly93d3cueG1sc3B5LmNvbSkgYnkgU2xhdmEgKEdJVkMpIC0tPgorPGVsZWN0cm94bWwgbW9kaWZpZWQ9IjIwMDIxMjE2VDA3MjcyNiI+CisJPGRhdGEgZnJvbT0iMjAwMjEwMzFUMjIiIHRvPSIyMDAyMTEzMFQyMiI+CisJCTxzZWxlY3Q+CisJCQk8ZGV2aWNlIHNlcmlhbG51bWI9IkUwMDAwMzU2MiI+CisJCQkJPHBhciBtZW1pbmQ9IjExMzQwMCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5M2E4NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhNmZkNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTZkOWY2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSI1MyIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iNTMiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWNkNmQwIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQwMTA5IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iNTUiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjU1Ii8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSI1NSIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iNTUiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMTY5MzY2MDAiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIxOTYuNCIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iMTk5LjUiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIyMDAuOCIvPgorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjIwMS44Ii8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMTk5LjkiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIxOTcuOSIvPgorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjE5My4yIi8+CisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMTk3LjYiLz4KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIxOTUuNiIvPgorCQkJCQk8dmFsIG89IjdlODUiIHY9IjE5Mi43Ii8+CisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMTk1LjMiLz4KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIxOTUuNCIvPgorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjE5NS42Ii8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMTk3LjMiLz4KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSIyMjIuNiIvPgorCQkJCQk8dmFsIG89ImQzMGIiIHY9IjIyMC45Ii8+CisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMjIyLjgiLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMjIxLjQiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMjIyLjIiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iMjIyLjUiLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMjIwLjUiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMjIwLjgiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iMjIwIi8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjIyMS4yIi8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjIyMC4zIi8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjIyMS4xIi8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjIyMC42Ii8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjIyMC45Ii8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjIxOS4yIi8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjIxOS4zIi8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjIyMC41Ii8+CisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjIyMC43Ii8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjIyMC4xIi8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjIyMC40Ii8+CisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjIyMC4xIi8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjIyMC4xIi8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjIyMC43Ii8+CisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjIyMC43Ii8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjIyMC41Ii8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSIyMjIiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iMjIxLjgiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iMjIwLjYiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjIyMC44Ii8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjIxOC45Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9IjIyMCIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjIxOC44Ii8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjIxOS45Ii8+CisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjIyMC41Ii8+CisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjIxOS43Ii8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjIyMC44Ii8+CisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjIyMC42Ii8+CisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjIxOSIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSIyMjAuMyIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSIyMTkuMyIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iMjIwLjkiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iMjIwLjEiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjIyMS40Ii8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjIyMC4yIi8+CisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9IjIxNy42Ii8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjIxOC40Ii8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjIxOC4xIi8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjIxOC43Ii8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjIxOS45Ii8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjIxOC43Ii8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSIyMjAuNyIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSIyMjIuNyIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iMjIwLjUiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iMjE4LjkiLz4KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iMjE5LjMiLz4KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iMjE5LjYiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iMjE5LjMiLz4KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iMjE5LjciLz4KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iMjIwLjQiLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iMjIwLjUiLz4KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iMjIxLjgiLz4KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iMjIyLjUiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iMjI0LjUiLz4KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iMjIzLjYiLz4KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIyMjIuMyIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIyMjIuNiIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSIyMjAuOCIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIyMjAuOCIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIyMjAuMiIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSIyMjAuMiIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIyMTkuMyIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIyMTkuOCIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSIyMTkiLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iMjE4LjciLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMjIwLjciLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjIyMS44Ii8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjIyMi44Ii8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9IjIyMy44Ii8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjIyMy40Ii8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjIyMi4xIi8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9IjIyMSIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSIyMTkuNSIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIyMTkuOSIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSIyMjAuOCIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSIyMjAuOCIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIyMTcuOSIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIyMTkiLz4KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iMjE4LjYiLz4KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iMjE5LjQiLz4KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iMjE5LjciLz4KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjIyMy4xIi8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjIyMiIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIyMjQuMiIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iMjIwLjQiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjIxOS42Ii8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjIxOS4yIi8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjIxOSIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIyMTguNSIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSIyMTkuMyIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIyMTkuNCIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIyMjEiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iMjIwLjciLz4KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIyMjUuMiIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIyMjUiLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iMjIyLjYiLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iMjIzLjYiLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iMjI0LjEiLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iMjIzLjIiLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iYTFiNzciIHY9IjE5NS45Ii8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjE5MCIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSIxMjIuMyIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIzNTQuNiIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSIzMzMuMiIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSIzMjMuMyIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIyNzguMSIvPgorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSIyODYuMiIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIyOTIuMyIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIyMS40Ii8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjI3My43Ii8+CisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjI3Mi45Ii8+CisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjI4NS40Ii8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjI4LjUiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iNjguNCIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIxNDcuMSIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSI5NS43Ii8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9Ijg5LjYiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iODguMyIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSI5Mi40Ii8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjE0OS43Ii8+CisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9IjE0OC43Ii8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjEyNy43Ii8+CisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9IjE5OC4yIi8+CisJCQkJCTx2YWwgbz0iYjdiMDciIHY9IjE4Ny4yIi8+CisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjE4Mi4xIi8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9IjE5NS44Ii8+CisJCQkJCTx2YWwgbz0iYmE1MzciIHY9IjIwMy44Ii8+CisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjEyNC41Ii8+CisJCQkJCTx2YWwgbz0iYmMxNTciIHY9IjE1OS4yIi8+CisJCQkJCTx2YWwgbz0iYmNmNjciIHY9IjIzMC42Ii8+CisJCQkJCTx2YWwgbz0iYmRkODEiIHY9Ijc5LjgiLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNTEuMyIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIyMi41Ii8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjMyMy43Ii8+CisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjM0MS42Ii8+CisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjQ2LjQiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iNzEuOSIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI3MS45Ii8+CisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjYzLjQiLz4KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iNzYuNCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI1OC40Ii8+CisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjkyIi8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9Ijc5LjYiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iNjMuMSIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSI1MS4zIi8+CisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjgxLjciLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMjA1LjMiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iOTYuMSIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSI5NS43Ii8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9Ijk2LjciLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iOTIuOCIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSI5MS40Ii8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9Ijg2LjEiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMjcwIi8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjI3MC40Ii8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjI5Ni43Ii8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjMwNi44Ii8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjMzMS43Ii8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjEzLjciLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iNDYuNCIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSIyNjIuMSIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIxNjYuMiIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSIxNDMuNiIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIxMjcuMiIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSIxMzIuNyIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIxMjguMyIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIxNTUuNiIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSIxNzAuOCIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxNzYuMSIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxNzYuOCIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIxNjguOCIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIxNzIuMiIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSIxODUuMiIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIxOTYuMyIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIxNzguNSIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIxOTMuNyIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIxNzYuMiIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIxOTYuNyIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSIyMDIuMiIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSI5OS45Ii8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjEzMC4yIi8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjEzMi45Ii8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjEyMS43Ii8+CisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjEwMC45Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjE5Mi45Ii8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjE1My43Ii8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjE3MC40Ii8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjE1NS4yIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjE2Ny4zIi8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjE2NS41Ii8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjE4NC4zIi8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjE1OS4yIi8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjE2My40Ii8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjE2My41Ii8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjE2MC44Ii8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjE2NSIvPgorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIxNTYuNCIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIxNjMuOCIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIxNjIuOSIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxNTQuOSIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIxNTcuMSIvPgorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSIxOTcuMiIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSIyMDMuOCIvPgorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSIyMTIuNSIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSIxODUuNCIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSIxODcuMiIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iMTYyIi8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSIxNDkuMyIvPgorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMTM2LjgiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjE0NS45Ii8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIxNjQuMSIvPgorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMTU4LjIiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjE2MyIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMTYxLjYiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjE2OC45Ii8+CisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSIxNjguNSIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMTY1LjEiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjE2OC4yIi8+CisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSIxNjMuOSIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMTQ3LjUiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjE2MyIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMTY2LjMiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjE3Ny40Ii8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxNzkuNyIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iMTYxIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIxNzQuNCIvPgorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iMjAzLjYiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjE1OC4zIi8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSIxNzIuOSIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iMTcyLjciLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjE2OC40Ii8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSIxMzgiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjEzNS44Ii8+CisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIxNTcuOCIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTYwLjYiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjE3NS43Ii8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIxODQuMSIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMTg4LjYiLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjE3MCIvPgorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iMTczLjYiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjE2NyIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iMTcyLjYiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjE2NC42Ii8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIxNjYuOCIvPgorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMTUxLjkiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjE1OC42Ii8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIxNzAuOCIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMTg1LjQiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjE2MC4xIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIxODguNiIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMjA3LjciLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjIxNC42Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIyMTMuNyIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMjE4LjQiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjIxMC41Ii8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSIxNzguOCIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMTYyLjYiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjE1Ni40Ii8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSIxNTMuNSIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMTQzLjkiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjE2MC44Ii8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSIxNTMuNCIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMTYzLjYiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjE2OC4yIi8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSIxNjkuMyIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMTM5LjEiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjE0Mi40Ii8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIxMjIuMSIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMTI1LjUiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjExMC43Ii8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIxMTAuNiIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMTkwLjIiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9Ijk5LjYiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjIwOS40Ii8+CisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSI3Ni4yIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSI2MS41Ii8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSI0NC41Ii8+CisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSI0NC4yIi8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSI2MC40Ii8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSI2NC42Ii8+CisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSI2Ny4zIi8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIzNDEuMiIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMTE1LjgiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjExNy4zIi8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjI1Mi40Ii8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIyNjEuOCIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMzEzLjMiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjMxMS4zIi8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIyOTIiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjU3LjYiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjE1MS42Ii8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSI5Mi43Ii8+CisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSI5My40Ii8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIxMDAuMyIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iOTcuNCIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMTg0Ii8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIyODkuMSIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMjc0LjIiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjM5LjgiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjYuNSIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMzU1LjkiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjE5LjQiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjQ0LjIiLz4KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjYxLjQiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjU1LjUiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjYwLjIiLz4KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjcxLjciLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjY2LjMiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjYxLjUiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjM4LjUiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjE3LjMiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjM1LjYiLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjQ0LjkiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjcxLjQiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjE2Ni4xIi8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIxMjUiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjE3NiIvPgorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMTk1LjMiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9Ijk5LjEiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjkwIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIyNzMuOSIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMzQ0LjciLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjMwNy4yIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIyNzEuOCIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMjc4LjgiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjI5MS41Ii8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSI1Mi45Ii8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSI3Ni42Ii8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSI4Ny42Ii8+CisJCQkJCTx2YWwgbz0iMTZkOWY2IiB2PSIxNzAuMSIvPgorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMTc0LjIiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjE3NS42Ii8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIxODYuNyIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMTgzLjIiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjE4MS43Ii8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIxNzMuNiIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMTcwLjciLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjE2NS40Ii8+CisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSIxNjMuOCIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMTYxLjciLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjE2NS40Ii8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSIxNzAuOSIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMTczLjUiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjE4Ny45Ii8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSIyMDEuOCIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iMjA1LjkiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjIwNC42Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSIyMDQuMSIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iMjA4LjIiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjIwNC40Ii8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSIxOTMuNSIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iMTg2LjQiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjE5Mi40Ii8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSIxOTQuMyIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iMTg0LjQiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9IjE4NC4xIi8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSIxODUuNiIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iMTk0LjkiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjE5Mi4xIi8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSIxOTIuMSIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iMTkwLjYiLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjE4NS40Ii8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIxNzAuOSIvPgorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iMTg3LjQiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjE5MS4xIi8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSIxOTEuMSIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iMTk3LjEiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjE5NS45Ii8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSIxODkuOCIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iMjAxLjkiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjIwMi4yIi8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSIyMDQuNCIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iMTk2LjMiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjE4Mi42Ii8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSIxNjIuNiIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMTg3LjIiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjE4Ny4zIi8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSIxNzkuNyIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMTgxLjciLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjE4OC4zIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSIxODYuMiIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMTgzLjUiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjE4Mi4yIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSIxNzYuNSIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMTc1LjYiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjE3OC41Ii8+CisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSIyMjMuOCIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMjI4LjEiLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjIyOS43Ii8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSIyMTYuMSIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iMjI2LjQiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjI0OS42Ii8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSIyNDUuOCIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iMjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjI1MS4xIi8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIyNTIuNSIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iMjU5LjQiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjI1NC44Ii8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSIyMTguNyIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMjI4LjMiLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjIyNy4zIi8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSIyMTQuMiIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMjE4LjciLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjIxNyIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iMjMxLjciLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjIzMC42Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI1MiIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMzQwLjMiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjE4LjUiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjM1Ny41Ii8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSIzNDQuNyIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iMzM4LjQiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjI4LjQiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjIxLjgiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjEwLjQiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjM0My45Ii8+CisJCQkJCTx2YWwgbz0iMWQwMTA5IiB2PSIzNDIuOCIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iMzU4LjIiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjM1My41Ii8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSIzNTMuNCIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMS40Ii8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI2LjQiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjEwLjUiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjM1MC43Ii8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSIzNTAuOCIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iMzU3LjYiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjE4MS4xIi8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSIxODQuOCIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iMTkyLjYiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjE5My4xIi8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSIxOTQuNyIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iMTkwLjgiLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjE5NSIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMTk1LjgiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjE5NS4zIi8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIxOTguMSIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMTk4LjQiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjE5OS41Ii8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIyMDAuMiIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMjAyLjMiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjIwMC43Ii8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIyMDMuNSIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMjA0LjYiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjE4OC40Ii8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSIxOTMuOSIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iMTg0LjQiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjE5MC41Ii8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIxODguOSIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTkyLjIiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjE4NS42Ii8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIxODYuNiIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMTgyLjgiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjE4Ny42Ii8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSIxODYuOSIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iMTY4LjIiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjE2NC4yIi8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxNTQuMyIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMTM0LjMiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjE1NC4yIi8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSIxODIuMiIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iMTg4LjMiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjE3NiIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iMjA2LjQiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjIxNi41Ii8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSIyMTEuNSIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iMjEwLjgiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjIxMS4yIi8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSIxOTIuNCIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iMTg1LjEiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjE3Ni42Ii8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIxNzEuNSIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMTI5LjUiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjE3My40Ii8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSIxNTcuMiIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMTYxLjIiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjE2My41Ii8+CisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSIxNzYuOCIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMTY2LjgiLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjE2MS41Ii8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSIxNTkuMyIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMTc3LjYiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjE4My4yIi8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSIxODUuNCIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iMTgyLjYiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjE4OS4zIi8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSIxNzMuMiIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMTc5LjQiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjE5My41Ii8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSIyMDIuNiIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iMTk3LjgiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjE4Ni45Ii8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSIxODguMyIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iMTc4LjciLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjE2MC4yIi8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSIxNjguMyIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iMTg0Ii8+CisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSIxOTEuMSIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMTc3LjMiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjE4Mi45Ii8+CisJCQkJCTx2YWwgbz0iMjE5MDI2IiB2PSIxODUuNCIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iMTc2LjMiLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjE3MC4xIi8+CisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSIxNjkuMyIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMTU5LjgiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjE5MC45Ii8+CisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSIxNzMuOSIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMTc1LjUiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjE4Ny41Ii8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIxODguNSIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMTYwIi8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIxNzUuNSIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iMTkyLjQiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjIwMC44Ii8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIxMTYuOSIvPgorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iMTY2LjMiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjE2Mi44Ii8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxMzAuNCIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMTIyIi8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSIxOTMuNSIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iMTgzLjkiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjE4MCIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMTU3LjMiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjE0Mi43Ii8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIxNDUuOSIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMTgyLjIiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjE4Mi43Ii8+CisJCQkJCTx2YWwgbz0iMjMwYmQ3IiB2PSIxNzMuMyIvPgorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMTg4LjYiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjE3OS40Ii8+CisJCQkJCTx2YWwgbz0iMjMzNjFiIiB2PSIxNjkuOCIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMTY0LjMiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjE3MC4yIi8+CisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSIxNzguOCIvPgorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMTU4Ii8+CisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIxNjEuNiIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMTc1LjgiLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjE2OS45Ii8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSIxODUuMyIvPgorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iMTkxLjYiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjE3Ni44Ii8+CisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSIxNjcuNyIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTU0LjEiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjE2NyIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMTgwIi8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIxNjYuOSIvPgorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMTQ2LjkiLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjE1NS40Ii8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIxNTcuNiIvPgorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iMTg5LjkiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjE4Ny40Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIxODYuOSIvPgorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iMTc5LjUiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjEzOS42Ii8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIxNjEuOCIvPgorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iMTcyIi8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSIxODkuNSIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iMTg3LjMiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjE4OC4yIi8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSIxODYuMSIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iMTk4LjEiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjE5My4zIi8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSIxOTUuNiIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMTk4LjMiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjE4MC41Ii8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIxODAiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjE2MS42Ii8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSIxNjUuOCIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMTY1LjYiLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjE2MC40Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIxNDcuMiIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iMTk2LjkiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjE5NS43Ii8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSIxODYuOSIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iMTc4LjMiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjE3Ny42Ii8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSIxNzIiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjE1Ni41Ii8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIxNTQuMyIvPgorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iMTU3Ii8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIxNzkuNSIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMTY2Ii8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIxNzIuMyIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iMTk2LjQiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjE3OS41Ii8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSIxOTUuNyIvPgorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iMjAyLjciLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjIwOS45Ii8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSIyMDQuMSIvPgorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iMTk5LjkiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjE4Ni4zIi8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSIxNzUuNiIvPgorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iMTcwLjEiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjE1OS4yIi8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIxNTYuNCIvPgorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iMTM3LjciLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjE0NiIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iMTM5LjYiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjE0My4yIi8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIxMzcuNyIvPgorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iMTc3LjkiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjE4Ni45Ii8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIxODQuNSIvPgorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iMTg4LjIiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjE5MS4xIi8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIxNDYuNyIvPgorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMTYxLjQiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjE4OC43Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjEwNjk1MDAwIiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExOTM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNmViZDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImViOGFlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWU2ZTk2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjUwLjEiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSI1MC4xIi8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSI0OS45Ii8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjQ5LjkiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iNTAuMSIvPgorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjUwIi8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSI1MCIvPgorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iNDkuOSIvPgorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iNTAiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjUwIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9Ijg2MTIiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIyNS4wNyIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iMjQuMDY3Ii8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iMjMuNDM4Ii8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMjMuMjQ1Ii8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMjIuNzg0Ii8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iMjIuNzQ2Ii8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMjYuMjk3Ii8+CisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMjguODc4Ii8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iMzQuNDUxIi8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iNDAuMDE3Ii8+CisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iNDAuNTcyIi8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iMzguNjgyIi8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iMzUuODY5Ii8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMzQuMTIiLz4KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89ImQzMGIiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjAuMDM4Ii8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjAuMDM4Ii8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjAuMDMzIi8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMjc4YzYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAuMDMzIi8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjAuMDMzIi8+CisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAuMDMzIi8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjAuMDM4Ii8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9IjAuMDM5Ii8+CisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjAuMDM4Ii8+CisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAuMDM3Ii8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAuMDM4Ii8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9IjAuMDM2Ii8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjAuMDQiLz4KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iMC4wMzQiLz4KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iMC4wMzkiLz4KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iMC4wMzkiLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iMC4wMzYiLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMC4wMzMiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMC4wMzMiLz4KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iMC4wMzUiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMC4wNCIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSIwLjAzNCIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIwLjAzNyIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwLjAzNiIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIzNi4xMTciLz4KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iMTcuNjEzIi8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjguMzU3Ii8+CisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjUuOTU3Ii8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjcuMTM0Ii8+CisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjguNjQ2Ii8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjYuNDI5Ii8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjEwLjIzNSIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIxNC4wMjciLz4KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iMy41NDkiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMy44Ii8+CisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjYuMDkzIi8+CisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjUuMjA0Ii8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjcuNTI2Ii8+CisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjExLjM5Ii8+CisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjAuOTU0Ii8+CisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjUuNzczIi8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjIxLjAxOSIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSIyMi42MzYiLz4KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMTkuMzE2Ii8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjEuMjY1Ii8+CisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9IjMuMTMiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iNi4wOTEiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iNy4yNzMiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iOS4zNzMiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iNy43MTEiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iOC4xODMiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iOS44NDMiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iNS4yNTEiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMi42NDYiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iNy4xNzUiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iMTkuNjk3Ii8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjQuNzAzIi8+CisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjUuMDE3Ii8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjUuMDI4Ii8+CisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjQuNDA2Ii8+CisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjUuMTY0Ii8+CisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjEwLjk1MSIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI1LjA5NiIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIxMC4wMzIiLz4KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iNC4wODQiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNS4yMjMiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iNi42MjIiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMi41NzEiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMy43NjYiLz4KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMi45MjUiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iNC4yMzkiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMi40NDIiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTAuNjUzIi8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjE1LjA0NSIvPgorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSIxMC40OTciLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMTQuMjQzIi8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjExLjMxOCIvPgorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSI3LjI2Ii8+CisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjMuMjc4Ii8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjEyLjc2OCIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSI4Ljg2MyIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSI4LjQyMyIvPgorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSI3LjUwMyIvPgorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSI3LjgwMyIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIxMC45MSIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSI1Ljc0MyIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIyLjA4MiIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSI3Ljc1MSIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIxNi43ODUiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMTguNDY3Ii8+CisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjE4LjgwMSIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIxNi4wMDgiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMTMuNjI5Ii8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjE0LjQ3OSIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxNC45MjciLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMTQuMzQ5Ii8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjE1LjUwMiIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSIyMC4wNyIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIyMC4wMTEiLz4KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iMTYuMzU3Ii8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjE3LjAzIi8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjExLjkwMSIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIxMC4xMzgiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iOC43MzEiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMTQuMzU3Ii8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjQuODYiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iNC4xNDkiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iNi4wMTkiLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iMTQuNjM1Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjkuOTg5Ii8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjExLjk2Ii8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjE1LjQyMiIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSIyMi43NDIiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMjIuNDI4Ii8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjI0LjExIi8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjIzLjA3NiIvPgorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIyMy4yNDEiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMjQuMDE4Ii8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjI1Ljk4OSIvPgorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIyNC43NDgiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMjUuMzIzIi8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjIzLjEyMiIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIxOS40MDMiLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iMTkuMjgiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMTYuMTIiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTYuMjI4Ii8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjE2LjY1NCIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSIxNC4yIi8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9IjE0LjA1NCIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSI5LjU1NyIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSI5LjA3MiIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iOC4zMzMiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjkuNzcxIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIxNC4zMzciLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjE2LjA0OSIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iMTkuOTExIi8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIyMy4yMzgiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjIzLjIxMyIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMjUuMTc5Ii8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSIyMS41OTEiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjE5LjY2NSIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMjEuMDc5Ii8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSIyMS4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjIyLjM2MyIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMjUuMTcyIi8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIyMy4yMjMiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjIwLjkxMiIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMjIuMDE3Ii8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxOC43MjkiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjE2Ljc2MSIvPgorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iMTMuMTQ1Ii8+CisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSIxMy45MTIiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjguNzEyIi8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSI4LjEwNiIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iOC4xOTUiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjguMzAxIi8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSIxMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjE0LjIxMyIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTUuNjE3Ii8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIxOS4wOTUiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjIzLjk4NiIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMjAuOTE5Ii8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSIyNi4wNiIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iMjEuNDkzIi8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIyMS4wMDYiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjIyLjE0NCIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iMTkuMTI0Ii8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIwLjAxOSIvPgorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iMC4wMjEiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjAuMDIxIi8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIwLjAxOCIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMC4wMTUiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjAuMDE2Ii8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIwLjAxMSIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iMC4wMSIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMC4wMTEiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjAuMDEiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjAuMDEiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjAuMDEiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjAuMDA5Ii8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSIwLjAwNiIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMC4wMDkiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjAuMDExIi8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSIwLjAxNyIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMC4wMTIiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjAuMDE5Ii8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSIwLjAxNCIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMC4wMTUiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjAuMDE1Ii8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSIwLjI3OSIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMC4wOTYiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAuMTQxIi8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIwLjIwNyIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMC4yMTgiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAuMjEzIi8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIwLjIxNCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMC4wNzUiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAuMDUiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAuMDM0Ii8+CisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwLjQ0OSIvPgorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMC4yMTciLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAuMTY3Ii8+CisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwLjE1OCIvPgorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMC4yMzIiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAuMzM5Ii8+CisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwLjIxMiIvPgorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMC4wNDQiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAuMDMzIi8+CisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwLjAyNSIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMC4wMjMiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwLjE0NSIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAuMDgiLz4KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMC4wNSIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iMC4yMzkiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAuMjA2Ii8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIwLjE2MyIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAuMDI3Ii8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwLjA3NyIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMC4xNTMiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAuMTgxIi8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwLjE0OSIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMC4xNTciLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAuMTY2Ii8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwLjIxNiIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMC4zMDYiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAuMTY4Ii8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwLjE0NSIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMC4yNTIiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAuMjEzIi8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSIwLjE5Ii8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMC4xMTQiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwLjExNSIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMC4zMDIiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAuMDMiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAuMDQ4Ii8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwLjA2OSIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAuMDI5Ii8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwLjEwNSIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMC4wOTYiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAuMTQyIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIwLjEwMSIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMC4wOTIiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAuMDcxIi8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSIwLjA2NyIvPgorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMC4xNyIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMC4yMTIiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAuMDg5Ii8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwLjYwNyIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMC42NzUiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAuNzIzIi8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwLjQ3NyIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMC40NzciLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAuNDkxIi8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwLjQ5NiIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMC41NzkiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAuNjIiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjM1LjcxNiIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMzMuOTczIi8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSIzNS4yOTUiLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjMyLjQyOSIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMjguNDMzIi8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSIyOS4yNCIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iMzAuOTQzIi8+CisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSIyOC4wNSIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMjcuNzkyIi8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSIyOC4xMDIiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjI1LjUzNCIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMjUuMDIxIi8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSIzMC4wNDYiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjMyLjc3MiIvPgorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iMzguMTg2Ii8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSI2NC4zNCIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iNjMuNTgyIi8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSI2MC44OTUiLz4KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjU3LjE2NyIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iNTkuNDM2Ii8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSI1Ni42NTUiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjYwLjU5NyIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iNTYuODM2Ii8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIzNy41ODEiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjQwLjEiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjM4LjIxNCIvPgorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iMzIuMTc1Ii8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSIzMC42NjIiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjI2LjkzMyIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iMjEuMjY5Ii8+CisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSIyMS42NDYiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjIxLjI0NCIvPgorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iMjAuODU1Ii8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIxOS41ODgiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjIwLjgwOSIvPgorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iMjUuNjQiLz4KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9IjI5LjE2NiIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iMzEuMjM2Ii8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSIyOC40MjQiLz4KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9IjMyLjcxNyIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iMzIuMjMxIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSIyOS44MTYiLz4KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9IjI5LjIxOSIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMjkuODYxIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSIyOS4wOTMiLz4KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjI5LjAwNCIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMTAuNDQ1Ii8+CisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSIxOC4xNTgiLz4KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9IjIzLjcxMyIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iMjUuODQiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjEzLjY5MiIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iMTUuNjE5Ii8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIyMi4yMzUiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjIwLjUzMyIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iMTQuODA2Ii8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIxNy43ODYiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjE4LjIwNSIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iMTQuODYiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjExLjMxNyIvPgorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iNi40MDMiLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9IjEzLjM4OSIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMTguMDk0Ii8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSIxNi42ODgiLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9IjE2LjI1MSIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iMTcuOTAyIi8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSIxNi44NjQiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjE2LjA3NiIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNC4zMyIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iNC4zMyIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMjEuMjIxIi8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIyMC44NiIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMjIuOTAzIi8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIyMi42NzIiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjM0LjcxMSIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMzMuNzkyIi8+CisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSIzMi43MTciLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjMzLjA0Ii8+CisJCQkJCTx2YWwgbz0iMWQwMTA5IiB2PSIzNC4wNDciLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjM2LjUzNiIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iMzYuNjczIi8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSIzNi43NTIiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjM3LjkzMiIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iMzcuODU3Ii8+CisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIzNy4wMjkiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjMyLjg0NCIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iMzEuOTE3Ii8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSIzMS4zNjMiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjE1LjM0OSIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iMTcuNjIzIi8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIxNy42NTgiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjE2LjU5NyIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMTcuNjIxIi8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIxOC4wMTciLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjMyLjMzNyIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMzcuMTEzIi8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSIzNi44OTYiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjM3LjY0NiIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMzcuNDY1Ii8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSIzNS45NiIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iMzQuMjE3Ii8+CisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSIzMS40NzIiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjI3LjkxMyIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iMjcuNzciLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjI3LjA5MiIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iOS42NSIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iOC45ODkiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjguODcxIi8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSIxMS41MjUiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjExLjMxMiIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTMuMTQ1Ii8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSIxMi44NjYiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjEzLjUwMyIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMTIuOTc3Ii8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSIxMi44NTMiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjEyLjMyMiIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iMTEuMjQ0Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSIxMS4zNTciLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjEzLjkwOSIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMjAuNzc4Ii8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSIxNy4zODQiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjE3Ljg4MiIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iMTcuNzc5Ii8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSIxNS42MjgiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjE4LjcxOCIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iMTkuNjg3Ii8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSIxNS44NTYiLz4KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjE0LjIzNSIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iMTQuMTIxIi8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSIxMC40MTciLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjEwLjE5MiIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iMTAuMjQ3Ii8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIxMi40MDkiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjE4Ljc4MiIvPgorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iMTcuNzA5Ii8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSIyNC40NjgiLz4KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjI3Ljg5NSIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMzEuMTM1Ii8+CisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSIyOC4wNzMiLz4KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjI2Ljc4MSIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMjcuOTU1Ii8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSIzMS44MzQiLz4KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjMwLjY4NCIvPgorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMzMuMjM5Ii8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSIzMS41OTIiLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjI3LjA1MSIvPgorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iMjYuODkxIi8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSIyMi44MzQiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjIxLjEiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjIwLjcyMyIvPgorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iMjAuNDEyIi8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSIxNy4xNzgiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjE0Ljg0NSIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iMTQuNDA0Ii8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSIxMy44OTUiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjE0LjI5MSIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iMTguMzc2Ii8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSIyMi42ODIiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjI5LjA1NiIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMzAuOTg1Ii8+CisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSIzMS4yNDQiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjMwLjUwMSIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iMzAuNzU3Ii8+CisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSIyOS43NjYiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjI5LjY4NiIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMzAuNDciLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjMxLjA2Ii8+CisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSIyOC45NTgiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjI4LjQ3NCIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iMjcuNzUzIi8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIyNi42NzYiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjI0LjA3Ii8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIxOC44ODkiLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjE3LjU1NiIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iMTYuNDM0Ii8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIxOC40NyIvPgorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iOS44MzciLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjkuNzMiLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjEyLjY3MiIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMTcuMjkiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjE3LjE2MSIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iMTkuMzg4Ii8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIyMi43OTIiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjI1Ljk3MyIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iMjguMzA1Ii8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIyOC40NzUiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjIzLjUzMSIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iMjIuNjIiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjIyLjEzIi8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSIyNy4xNTkiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjI3LjcwNSIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMjkuNzk2Ii8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIyNy4zNDEiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjI1Ljg4NyIvPgorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMjUuODQyIi8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIyMy4yNjYiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjIxLjY2NCIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMTkuNDM3Ii8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSIxNS45MTIiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjE2LjAzNyIvPgorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iMTUuNjc0Ii8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxMy43MDUiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjE0LjMzMSIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTUuNzgxIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSIxOC4xOTYiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjIyLjExNSIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMjYuMDY2Ii8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIzNC44MTMiLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjM1LjkxNCIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMzYuNzc1Ii8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIzNC4yNzciLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjMyLjA1NiIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMzMuMDAxIi8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIzMS42ODciLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjM2Ljg1NCIvPgorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMzAuNDI4Ii8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIyOC4yNDYiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjI4Ljk4NCIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iMjcuMTc2Ii8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSIyNi40NTUiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjIxLjg5MSIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iMjAuMDczIi8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSIxNy4wODMiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjE3LjkyMSIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMTcuOTcyIi8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSIxNi4xIi8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIxNy4zMjQiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjIwLjk3Ii8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSIyMS4yNjkiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjI1LjA0MSIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMzEuMjciLz4KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjMzLjcxMiIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iODIuNzQ0Ii8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSI0Ni43NDYiLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjIyLjkwMyIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iMzEuMzQzIi8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIzMC40MzgiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjI4Ljg4MyIvPgorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iMzAuNzk0Ii8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIzMS4wMTEiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjI4LjA5OCIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iMjcuMTc3Ii8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIyNC45NDEiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjIyLjgzNCIvPgorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iMjMuMjA5Ii8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxNy41NiIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iMTcuNTU1Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSIxOC43NjEiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjIwLjY5OCIvPgorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iMTkuMzcyIi8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSIxOC42NDQiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjE4Ljc5MiIvPgorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iMTguOTUxIi8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSIxOC45MDciLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjIzLjQwOSIvPgorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iMjMuNTExIi8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIyNi45NDEiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjI0LjAwOCIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iMjMuMTQ3Ii8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIyMy45MzUiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjI0Ii8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIyMi44ODgiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjI2LjI0NiIvPgorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iMjUuOTA5Ii8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSIyNS4xMDkiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjI0LjcyNSIvPgorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iMjMuNzU1Ii8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIxOC44MzkiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjE1LjM2MiIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI4NjA4IiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5M2E4NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjAiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iODYwNCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9IjIxLjA0MyIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iMjAuMDUxIi8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iMTkuODE4Ii8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMTkuNTU0Ii8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMTguOTUxIi8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iMTguODUzIi8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMjIuMzk4Ii8+CisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMjQuNDkyIi8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iMjkuMjA2Ii8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iMzUuMDYzIi8+CisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMzUuMDciLz4KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIzMy41ODUiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIzMC43NyIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjI5LjE0MSIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMC4wNTkiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjAuMDYzIi8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjAuMDYxIi8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjAuMDY2Ii8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjAuMDciLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iMC4wNjUiLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iMC4wNjciLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMC4wNjciLz4KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iMC4wNjMiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMC4wNTkiLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMC4wNjgiLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iMC4wNjUiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iMC4wNjUiLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iMC4wNjYiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iMC4wNjQiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMC4wNTgiLz4KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMC4wNTYiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMC4wNTciLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMC4wNTYiLz4KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMC4wNTciLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMC4wNTUiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMC4wNTciLz4KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMC4wNTciLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMC4wNTciLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMC4wNTgiLz4KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSIwLjA2NyIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMC4wNTYiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMC4wNTgiLz4KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSIwLjA1NyIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSIwLjA2NiIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIwLjA1OSIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwLjA1NiIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIwLjA1OCIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjAuMDY0Ii8+CisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjAuMDY2Ii8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjAuMDY2Ii8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjAuMDY3Ii8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjAuMDYyIi8+CisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iMC4wNTkiLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMC4wNTkiLz4KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iMC4wNTciLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIwLjA2Ii8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAuMDU4Ii8+CisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjAuMDU5Ii8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjAuMDYiLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iMC4wNjEiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iMC4wNjIiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSIwLjA2NyIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIwLjA2NSIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIwLjA2MiIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIwLjA2MyIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwLjA2MSIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIzMC4yMiIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSIxNi4wNTQiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMTAuMjIiLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iMy44MzkiLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iMy4zMDEiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iNC4xOSIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIyLjAwMiIvPgorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSI0LjkxMSIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSI3Ljg5NyIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIyLjkzNCIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSIxLjQ4NyIvPgorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSIyLjE5NiIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIxLjY3OSIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSI1Ljk4NCIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSIxMC42NjEiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMy42NTMiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iNy4yNTIiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMTkuNzA4Ii8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjIxLjEyOCIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIxOC4zNTgiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMy40NTYiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iNC45MTYiLz4KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iNy4zMzciLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iNy4yMDUiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iOS4xOTEiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iOC4wMjciLz4KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iNy42ODgiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iOC42NjciLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iNy43MzQiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iNS4xNDgiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iNS4wODEiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iMTguNDMzIi8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjQuNjc2Ii8+CisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjMuOTciLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iMi4yNDciLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iMi41MTkiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNC43ODQiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMTAuNDA2Ii8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjUuODYzIi8+CisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjkuNjY4Ii8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjUuMTk0Ii8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjUuMzUiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iNy43NDUiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMy42NTEiLz4KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iNC4yMzYiLz4KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMy4yODEiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iNS42NTciLz4KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMi4yNDkiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTIuMDA0Ii8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjE1LjgzMyIvPgorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSIxMS45ODEiLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMTUuMTQ1Ii8+CisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjEyLjM4NiIvPgorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSI4LjUzIi8+CisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjEuNDc0Ii8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjcuNDQxIi8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjQuMjYyIi8+CisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjMuODA1Ii8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjMuNzUyIi8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjUuNTM4Ii8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjkuNTI0Ii8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjEuOTg4Ii8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjQuMTU5Ii8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjkuNjIxIi8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjE3LjcwNCIvPgorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSIxOS4xNzEiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMTkuMjUyIi8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjE0Ljk2MSIvPgorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSIxMi44MTYiLz4KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMTMuMTEzIi8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjEzLjQzNSIvPgorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIxMy4yODMiLz4KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iMTMuOTg5Ii8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjE4LjA5OCIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIxNy43NDIiLz4KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iMTUuMjI5Ii8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjE1LjI2MyIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIxMS45NjgiLz4KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iOS44OTMiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iNy45OTciLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMTMuODg4Ii8+CisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjYuMzM2Ii8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjUuNjM0Ii8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjcuMzY5Ii8+CisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjE0LjI3NiIvPgorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSI5LjY3NCIvPgorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSIxMi44MSIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIxNC45ODUiLz4KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iMjEuNTMxIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjIxLjAzOCIvPgorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIyMi45MDgiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iMjAuODkxIi8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjIyLjIzNCIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIyMi41MTciLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMjQuMTcyIi8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjIzLjAwOCIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIyMy40NzUiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMjIuMDU5Ii8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjE4LjY3MSIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIxOC40NDciLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMTUuODYyIi8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjE2LjM4Ii8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjE1LjE2NSIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSIxMi4zMzUiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMTIuMjgzIi8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjguOTQxIi8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjguODM3Ii8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSI4Ljc5MyIvPgorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iMTAuMDQzIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIxMy45MzIiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjE1Ljk3NCIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iMTkuMTY3Ii8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIyMi4yMzciLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjIxLjUzMyIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMjMuMzA5Ii8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSIyMC4zMzMiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjE4LjU1NiIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMjAuMTYzIi8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSIxOS45NzgiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjIxLjE1NSIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMjMuOTY0Ii8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIyMS44NzQiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjE5LjU5MSIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMjAuMjM0Ii8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxNy4zMiIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iMTYuNTU2Ii8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIxMy4yMTciLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjEyLjI3MSIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iOC45NjciLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjguMzE5Ii8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSI4LjM1NyIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iOC40OSIvPgorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTAuNDU4Ii8+CisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSIxMy45OTgiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjE1LjQ2MSIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTguMzMxIi8+CisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSIyMi4yODQiLz4KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjE5LjE1MSIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMjMuNDY0Ii8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSIyMC4yMTEiLz4KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjE5LjgzIi8+CisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSIyMC44Ii8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIxOC4wNDIiLz4KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjAuMDE4Ii8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIwLjAyIi8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIwLjAyIi8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIwLjAxNyIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMC4wMTUiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjAuMDE0Ii8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIwLjAxMSIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iMC4wMSIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMC4wMDkiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjAuMDA4Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIwLjAwOCIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMC4wMDgiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjAuMDA3Ii8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSIwLjAwNyIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMC4wMSIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMC4wMTEiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjAuMDE2Ii8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIwLjAxMyIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMC4wMTkiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjAuMDE0Ii8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIwLjAxNSIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMC4wMTUiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAuMjY5Ii8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwLjEyNCIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMC4xNiIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMC4yMjciLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAuMjQzIi8+CisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwLjIzNiIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMC4yMzkiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAuMDc0Ii8+CisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwLjA4NiIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMC4wMzEiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAuNDEyIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwLjE5OSIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMC4xNSIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMC4xNCIvPgorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMC4yMTgiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAuMzA5Ii8+CisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwLjIwNiIvPgorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMC4wMzIiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwLjA1NCIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMC4wMzciLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAuMDI1Ii8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwLjA5Ii8+CisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwLjAzIi8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwLjAzOCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMC4wMjYiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwLjA4NiIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iMC4yNTEiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAuMjI1Ii8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIwLjE5MyIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iMC4xMDMiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAuMDQ0Ii8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwLjAyMyIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMC4wNjgiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAuMTU3Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwLjEwNSIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMC4wOTciLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAuMTI3Ii8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwLjE4OSIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMC4yODEiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAuMTYyIi8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwLjE1Ii8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwLjI0NiIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMC4yMTEiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAuMTg4Ii8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwLjEwNSIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMC4wOTIiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAuMDk5Ii8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMC4yOSIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMC4wNiIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAuMDcyIi8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwLjA2NCIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMC4xMDEiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAuMDQ1Ii8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwLjAzNSIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMC4wNTciLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAuMDciLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAuMDM1Ii8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwLjAyOSIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMC4wMjYiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAuMDc1Ii8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwLjE3OCIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMC4yMjEiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwLjU3OCIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMC42MzMiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAuNjc4Ii8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwLjQ1NiIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMC40NjEiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAuNDc1Ii8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwLjQ4NyIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMC41NjUiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAuNTk3Ii8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIzNC4zNzIiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjMzLjA1NiIvPgorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMzQuMTk4Ii8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSIzMS4xNDgiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjI2LjczNCIvPgorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iMjYuODgzIi8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIyOC4wNDYiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjI1LjEwNyIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMjQuODI2Ii8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSIyNS4xMjkiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjIyLjk3OSIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMjIuOTY4Ii8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSIyOC4wNCIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iMzAuNjA4Ii8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSIzNS4xNTYiLz4KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjYxLjA3OSIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iNjEuMTE4Ii8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSI1OC4yMTQiLz4KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjU0LjE0OSIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iNTYuMTQxIi8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSI1My43NTciLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjU3LjE4OCIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iNTMuNTk2Ii8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIzNi4yNjkiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjM2LjYyNiIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iMzUuMTAyIi8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSIyOS44NTUiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjI4LjMwNyIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMjUuMzY0Ii8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSIxOS45OTYiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjE5Ljc0OCIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMTkuMzQ1Ii8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSIxOC44NzMiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjE4LjExIi8+CisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSIyMC4wMzIiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjI1LjEzNyIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMjcuNTA4Ii8+CisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSIyOS40NDkiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjI3LjM3MiIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMzAuNTYyIi8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSIyOS45NjMiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjI4LjMzNiIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMjguMTAyIi8+CisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSIyOC44NjQiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjI4LjI3OCIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMjguMzk5Ii8+CisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIxMS4wMTYiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjE0LjE1NSIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMTkuMTMyIi8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSIyMC4yOCIvPgorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iMTEuMjgiLz4KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9IjEyLjI1Ii8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIxNi41NjEiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjE1LjE1Ii8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSI5Ljk1MyIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iMTIuNzMyIi8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIxMi45NTgiLz4KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9IjkuNjg1Ii8+CisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSI2LjgwNSIvPgorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iNC41NTkiLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9IjEwLjYzMiIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMTQuNjQiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjE0LjE4MiIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMTMuNzE3Ii8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSIxNS4wNzEiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjEzLjIzNiIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iMTIuNzQ2Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIzLjk5OSIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMi4xODYiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjE2LjU4NSIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMTQuMzc4Ii8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSIxNi4wNDEiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjE1Ljc5OSIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMjkuMjUiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjI3LjYyMSIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iMjUuNDUzIi8+CisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSIyNC4zNjkiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjI1LjM0OCIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iMjguNjg3Ii8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSIyOC4zNzMiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjI4LjgwMSIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMzAuMDQ1Ii8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSIzMC42NDQiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjMwLjM1NCIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMjQuOTMzIi8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSIyMy44MTMiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjIzLjgxOCIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iMTUuMTUzIi8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSIxNi42OSIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iMTYuMzg1Ii8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSIxNS42NDMiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjE2LjI2OSIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iMTYuNjg5Ii8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSIyNy44OTciLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjMxLjQ0OSIvPgorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMzEuMjMyIi8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIzMi4wMDEiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9IjMxLjk5OSIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMzAuNjY5Ii8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIyOS4xODUiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjI3LjE5OSIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMjMuNzk4Ii8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIyMy41NjYiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjIzLjAzNSIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iOC41NzMiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjcuOTEzIi8+CisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSI3Ljg1MSIvPgorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iOS44NDUiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjEwLjE3NyIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTEuNzMyIi8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSIxMS41NTQiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjEyLjA2NyIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMTEuNzI1Ii8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSIxMS40NjUiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjEwLjg1MSIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iMTAuOTI4Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSIxMC45ODQiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjEzLjYyNiIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMTkuMzk5Ii8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSIxNi4zMjYiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjE1Ljg0OCIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iMTUuNzg1Ii8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSIxNC4zMTkiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjE1Ljc3Ii8+CisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIxNi4yOTUiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjEzLjM4MiIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iMTEuNzUyIi8+CisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIxMS42OTQiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjkuMjQiLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjguOTY5Ii8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSI5LjQyIi8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIxMS4yOTkiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjE4LjA2Ii8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIxNS45ODkiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjIzLjM2MyIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMjYuMDcxIi8+CisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSIyOS4yODMiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjI1Ljg1NiIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMjUuMjM1Ii8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIyNi40MDUiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjMwLjA3NiIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMjguNDMzIi8+CisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSIzMC4yNzEiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjI4LjU1NyIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iMjQuNTQyIi8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIyMy45NjIiLz4KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjIxLjI0MiIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMTkuNjMzIi8+CisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSIxOC4wMDkiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjE3Ljc5OCIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iMTUuMzA0Ii8+CisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSIxMy40NTMiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjEzLjA1NSIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iMTIuODcyIi8+CisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSIxMy41NDQiLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjE3LjI1Ii8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSIyMS4wNDYiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjI1LjgzMiIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMjcuNzkxIi8+CisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSIyOC4wNTQiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjI3LjYzIi8+CisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSIyOC40NTciLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjI3LjcyNSIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMjcuOTIyIi8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIyOC4yNSIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMjcuNTM5Ii8+CisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSIyNi4yNTEiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjI1Ljk0NyIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iMjQuNjcxIi8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIyNC4zODMiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjIyLjc0MiIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iMTcuNzQyIi8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSIxNi4xMTciLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjE0LjU0OCIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iMTguNDE4Ii8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSIxMC4xNDciLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjEwLjY0OCIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMTMuMDYyIi8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIxNy4wODIiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjE1LjcyMyIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iMTcuNjI3Ii8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIyMS4wODMiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjI0LjI5MyIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iMjYuODIzIi8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIyNy4wNCIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMjIuMDkxIi8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSIyMS41MTQiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjIwLjkyMiIvPgorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMjUuMDYxIi8+CisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSIyNS45NTkiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjI3LjY0NCIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMjUuNTc4Ii8+CisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSIyNC4xOTkiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjIzLjgzIi8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIyMi43MTkiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjIwLjk1MiIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMTguMzgyIi8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSIxNC45MjgiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjE0Ljg1OSIvPgorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iMTQuMDgxIi8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxMy4zMDkiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjEzLjcyNiIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTUuMDcxIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSIxNy4wNjQiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjIwLjYxMiIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMjQuODkxIi8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIzMi45NDIiLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjM0LjI0NyIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMzQuNzg3Ii8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIzMS4xNzYiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjI5LjgwNiIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMzAuNTY5Ii8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIyOS4xNzUiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjM0LjkyMSIvPgorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMjguNzY3Ii8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIyNS43OTciLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjI2LjE2MSIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iMjQuNzY5Ii8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSIyNC4wNTMiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjIwLjI4Ii8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIxOC4yMiIvPgorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMTUuMzQ1Ii8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSIxNS45NTMiLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjE1Ljg4NCIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMTUuMDU0Ii8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIxNi4wMTQiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjE5LjU3NCIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMjAuMDY1Ii8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIyMy45MzYiLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjI5LjI3NCIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMzEuNjkxIi8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSI3NS4xNTQiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjQxLjQ1OCIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMjEuMjIxIi8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIyOS40MTciLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjI4LjU5NyIvPgorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iMjcuMjU2Ii8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIyOC45MjUiLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjI5LjM4Ii8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIyNi41NTkiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjI1LjIzNCIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMjMuMzEyIi8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIyMS4zMTciLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjIwLjc2MSIvPgorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iMTYuMzYiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjE1LjY1NyIvPgorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iMTYuNjE4Ii8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSIxNy44ODgiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjE2Ljg2MSIvPgorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iMTYuNjE3Ii8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSIxNy40MjgiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjE4LjIyNSIvPgorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iMTguNDE1Ii8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIyMi4xMjYiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjIyLjEyNiIvPgorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iMjUuNzgyIi8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIyMi43NzQiLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjIyLjc3NCIvPgorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iMjIuOTA5Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIyMy4xMzkiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjIxLjU1MyIvPgorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iMjMuNTM5Ii8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIyMy4xMzkiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjIyLjczNSIvPgorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iMjIuMzM1Ii8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIyMy4yMDUiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjE4LjIzOCIvPgorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMTQuMTM2Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9Ijk4MTIiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIxMTQuMDgxIi8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSIxMTcuMTkiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIxMTguOTY0Ii8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMTIwLjU2NCIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjExOC43NDciLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIxMTYuNTI5Ii8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMTA5LjM4NCIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjEyMS4zNTYiLz4KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIxMTkuMDE0Ii8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iMTE2LjIyNiIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjEyMC4xNzUiLz4KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIxMjAuOTQ5Ii8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iMTI0LjIiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSIxMjQuMDQzIi8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iMTE3Ljc2MSIvPgorCQkJCQk8dmFsIG89ImQzMGIiIHY9IjExOC4wOTIiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSIxMTguMzU0Ii8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMTE4LjYzMyIvPgorCQkJCQk8dmFsIG89ImZkMTciIHY9IjExOC40OTQiLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMTIxLjI0MyIvPgorCQkJCQk8dmFsIG89IjExOTM3IiB2PSIxMjIuMjc4Ii8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjExOS42ODkiLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMTIxLjE2NSIvPgorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSIxMjUuNjg4Ii8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjEyNy41MTciLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iMTE5LjUwOCIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIxMjEuMjciLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iMTIxLjI2MiIvPgorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSIxMjAuNTk1Ii8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjExOC43MjUiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMTI2LjkxMyIvPgorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSIxMjUuOTg0Ii8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjEyNC45NzEiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMTIxLjcyMiIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSIxMjIuMjMzIi8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjEyMi44MzYiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMTI0LjEyNSIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSIxMjUuMTA1Ii8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjEyNS4yNjYiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMTI1LjM4MSIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSIxMjMuNjg4Ii8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjExOS40MzciLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iMTE5LjE2NyIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSIxMjAuMzM0Ii8+CisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjExOS44MzciLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMTIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSIxMjIuMDc0Ii8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjEyNS41NDIiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMTI1LjYzOCIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIxMTcuMzk4Ii8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjExOC44MDciLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iMTE5LjY0NCIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIxMTkuNjc0Ii8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjExNy41NDkiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iMTEzLjIyOSIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSIxMjUuMTUzIi8+CisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjEyNC42OTEiLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iMTIzLjU1NiIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSIxMjMuMjMxIi8+CisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjEyMy40MDQiLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iMTIzLjkzMiIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSIxMjMuMzI4Ii8+CisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjEyMi42NDEiLz4KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iMTIxLjU0NCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIxMTguMjA5Ii8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjExOC42NzUiLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iMTE4LjMyNSIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSIxMjEuODkzIi8+CisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjEyMC43MTEiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMTE5Ljg1NCIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSIxMjAuMTY1Ii8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjEyMi45OTYiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMTI2LjU1NyIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSIxMjQuMDYxIi8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjEyNC44NzQiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iMTI1LjI0NCIvPgorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSIxMjUuMDgzIi8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjEyMy4xODIiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMTE5LjMxMSIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSIxMjIuNTI0Ii8+CisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9IjEyMS4xNzMiLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMTE4LjY5NiIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIxMTcuNTU5Ii8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjExOC45NDciLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMTE4Ljc5NyIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIxMTcuMDQ4Ii8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjExNi4xODIiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMTE5LjEwMSIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIxMTkuMTUyIi8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjExNi44MTQiLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMTE4Ljk0MyIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIxMjAuODQ0Ii8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjExOS4xMDkiLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMTIwLjgwMiIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSIxMjMuMDk1Ii8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjEyNS45MjIiLz4KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iMTIyLjA4MiIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSIxMjMuMDAxIi8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjEyMy4wMzMiLz4KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iMTIyLjk3MiIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSIxMjAuNzE3Ii8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjEyMS41OTkiLz4KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iMTIwLjk3NyIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIxMTkuMDM4Ii8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjExNS43OTgiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMTE5LjkxMyIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIxMjAuMjg0Ii8+CisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjExOS40NTEiLz4KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iMTE4LjMyNSIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIxMTcuMTExIi8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjExNy4yNjMiLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iMTIwLjE0NyIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIxMTcuNTM0Ii8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjExOC45MDIiLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iMTIwLjA5OSIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIxMjEuNDM0Ii8+CisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjEyMS45ODYiLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iMTIwLjY4MyIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIxMjIuODYxIi8+CisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjExOS4zNSIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIxMjAuODQ1Ii8+CisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjEyMi4xMTkiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMTIyLjUwNiIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIxMjEuNDYyIi8+CisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9IjExOC45MDkiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMTE2LjM3MiIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIxMjEuMzExIi8+CisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjExOS40MTIiLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMTE4LjI4MSIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIxMTguMTQ4Ii8+CisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjExNy44MTEiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMTIxLjY5NCIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIxMjAuNzU1Ii8+CisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjExOC42NTEiLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMTE4LjA4Ii8+CisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjExOC4yODIiLz4KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iMTEzLjkxMSIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIxMTYuOTQxIi8+CisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjExOS41MDgiLz4KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iMTE5LjA3MSIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSIxMjEuMTQ2Ii8+CisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjEyMS4zMzYiLz4KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iMTIyLjA5NSIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSIxMjEuNzg1Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjEyNC4wNjUiLz4KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iMTI1LjQ1NSIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIxMjYuMDExIi8+CisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjEyNS4wMTgiLz4KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iMTIyLjc0MSIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIxMjAuMjYiLz4KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iMTE4Ljg1NiIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSIxMTguODE3Ii8+CisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjExNy44MDciLz4KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iMTE3LjQ0NCIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSIxMTkuOTY3Ii8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjEyMS4xNDEiLz4KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iMTIwLjI1OSIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIxMTguNTU4Ii8+CisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjExOC44MTIiLz4KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMTE4LjYzMyIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIxMTguOTQ4Ii8+CisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjExNy4zMTUiLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMTE4LjE0NiIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIxMjAuMTIxIi8+CisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjEyMC41NjEiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMTE4LjYzOCIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSIxMjIuODQ0Ii8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjEyNS4xNTMiLz4KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iMTIzLjQ2MyIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIxMjIuNzkzIi8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjEyMy4wOTMiLz4KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iMTIyLjUzNSIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIxMjAuMTg5Ii8+CisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjEyMy4wOTciLz4KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iMTE5LjMzNiIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSIxMTguNSIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIxMTUuNzQzIi8+CisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjExOS43MjIiLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iMTIwLjIyMiIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIxMTguOTE4Ii8+CisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjExNy41NTEiLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iMTE2LjY0OSIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIxMTYuNTIiLz4KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iMTE2LjcwMyIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSIxMTguODA2Ii8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjExOC40NjEiLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iMTE5LjU5MyIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSIxMTkuNzgiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iMTE5Ljk3MyIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIxMjAuNzYxIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjEyMi43ODIiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iMTI1LjQ0NCIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIxMTguMjU1Ii8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjExOS4zMDIiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iMTIwLjE0OSIvPgorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIxMTkuNjc4Ii8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjExNy4xMzgiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTE0LjY4MSIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIxMjAuODUxIi8+CisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjExOS4wOTkiLz4KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMTE2LjYwOSIvPgorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSIxMTYuNzI5Ii8+CisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjExOC4wNDUiLz4KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMTE1LjQ3NyIvPgorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSIxMTUuODkxIi8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjExNC4yNCIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSIxMjIuNzk0Ii8+CisJCQkJCTx2YWwgbz0iYjdiMDciIHY9IjExOS4wMDIiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iMTE4LjcwMSIvPgorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSIxMTkuNjAyIi8+CisJCQkJCTx2YWwgbz0iYmE1MzciIHY9IjEyMC45NjMiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iMTE5LjkyNCIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIxMjAuNjI4Ii8+CisJCQkJCTx2YWwgbz0iYmNmNjciIHY9IjEyMy4xMjIiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iMTE4LjY4MyIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSIxMTguMzAxIi8+CisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjExOC44ODIiLz4KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iMTIwLjE4NyIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIxMTkuNTc2Ii8+CisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjExOC4yNDMiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMTE1LjY5MiIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSIxMTcuNTYiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMTE2LjA1NyIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSIxMTcuNDExIi8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjExNy40ODYiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iMTE2Ljc0NSIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIxMTguMjY1Ii8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjExOC4yMDIiLz4KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMTE4LjAwNCIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSIxMTcuMjU1Ii8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjEyMi43MSIvPgorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIxMTguNzM2Ii8+CisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjExNi43MzQiLz4KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMTE4LjMzOSIvPgorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIxMTguNjYiLz4KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iMTE5LjcwMyIvPgorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSIxMjEuNTM2Ii8+CisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjEyMy40MTkiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMTI2LjE4NiIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSIxMTkuMzEiLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iMTIwLjU4Ii8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjEyMC44NTciLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMTE5LjU4MiIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIxMTcuNDI2Ii8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjEyNC4zNDkiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMTIyLjQzNSIvPgorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSIxMjAuNjkyIi8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjExNy4yMzMiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMTE2Ljg2MiIvPgorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIxMTYuNzI4Ii8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjExOC4yMTIiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMTE3Ljg1NyIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxMTcuMTc2Ii8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjExNy4yNzEiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMTE2Ljc5NiIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIxMTcuMzYxIi8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjExOS43NjkiLz4KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iMTIxLjA1Ii8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjEyMC45MjEiLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iMTIyLjQ5NyIvPgorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIxMjAuNjc3Ii8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjEyMi42NyIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSIxMjMuNzc4Ii8+CisJCQkJCTx2YWwgbz0iZThlN2YiIHY9IjExNi42NTUiLz4KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iMTE4LjEwOSIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSIxMTguMzcyIi8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjExNy41MjciLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iMTEzLjUxOCIvPgorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSIxMjMuNDk2Ii8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjEyMC42MTEiLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iMTE4LjcwNCIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSIxMTUuNjUxIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjExNy40ODciLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iMTE3LjE4NiIvPgorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSIxMjEuMTE0Ii8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjExNy42MTEiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMTE3Ljg5MiIvPgorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIxMTcuNzE4Ii8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjExNy41ODQiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMTE3LjM4Ii8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjExOS4yMjIiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMTIxLjAzNyIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIxMjAuMjIxIi8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjExOC4zNzkiLz4KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTE4LjIzOCIvPgorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSIxMjMuMDM3Ii8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjEyMy4wMDciLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMTI2LjI5NCIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSIxMjMuNjgyIi8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjEyMy41OTEiLz4KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjEyMi45MTgiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjEyMS4zODciLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjExNy41ODYiLz4KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjExNy43MTYiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjExOS4xOTEiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjExNy4zNTUiLz4KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjExNy44NjIiLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjExNy41MzEiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjExOS44ODYiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjExOS40MjYiLz4KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjExOC43MiIvPgorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iMTE5LjAwNCIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMTE4LjcyNSIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMTE2LjE5NiIvPgorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iMTE4LjExMSIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMTE5LjAwMSIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMTIwLjk2MyIvPgorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iMTIxLjM0Ii8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIxMTkuMTUxIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIxMjAuNzk3Ii8+CisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSIxMjMuNTE5Ii8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSIxMjIuMzY2Ii8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSIxMjMuMzgxIi8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIxMjMuMjk2Ii8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIxMjMuMDQ3Ii8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSIxMjAuODc0Ii8+CisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSIxMTguMDE3Ii8+CisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIxMTguMzg4Ii8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIxMTcuNzUzIi8+CisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSIxMTkuNzYxIi8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIxMjEuNTQ3Ii8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSIxMjIuMDI4Ii8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSIxMjIuMTk1Ii8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIxMjEuNzgzIi8+CisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSIxMjAuNTgxIi8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIxMjEuNjg1Ii8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIxMjAuOTcyIi8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIxMTYuODM2Ii8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIxMTcuNjMzIi8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIxMTguODMiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjEyMC43NDYiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjEyMi41NDEiLz4KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjEyMC4yNDkiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjEyMi43MDgiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9IjEyNC41MzgiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjEyNS4yODkiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjEyNS4zMjUiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjEyNS40OSIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMTI0LjY3MiIvPgorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iMTIyLjgxMyIvPgorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMTIxLjU3MyIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMTIwLjcxOSIvPgorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMTE5LjcwNiIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMTE2LjkzNSIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMTE3LjI1NSIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMTE4LjM2NSIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMTE5LjgyOSIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMTE5LjYwNyIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAuMTAxIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwLjEwNCIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwLjEwNCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMC4xMDIiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAuMTE1Ii8+CisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMC4xMDQiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIwLjExMyIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMC4xMTMiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTZkOWY2IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAuMTExIi8+CisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMTE4LjM1MSIvPgorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMTE5Ljc2MyIvPgorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMTIwLjg3MiIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMTIxLjQ0MyIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMTI0LjU4NyIvPgorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iMTI3LjExOSIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iMTI4Ljg4NyIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMTI3LjEwNyIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMTI3LjEiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjEyNy4zNSIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMTI2LjU1MiIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMTI0LjcxIi8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSIxMjQuMDc3Ii8+CisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIxMjUuMDk5Ii8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSIxMjUuMDI1Ii8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSIxMjMuOTU0Ii8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSIxMjMuNjQxIi8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSIxMjQuMzA4Ii8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSIxMjYuMjAxIi8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSIxMjUuNDI2Ii8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSIxMjUuMDQ1Ii8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSIxMjQuODY4Ii8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSIxMjMuODU0Ii8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIxMTcuMTc3Ii8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSIxMjAuOTg1Ii8+CisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSIxMjEuNjg5Ii8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSIxMjEuNTE0Ii8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSIxMjMuNzYiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjEyNS44NDgiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjEyMy4xNjIiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjEyNC44NyIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMTI2LjQ1NyIvPgorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iMTI2LjU2NSIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iMTI1LjgyMSIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iMTIzLjY1NCIvPgorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iMTIwLjk4NSIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMTIxLjAxOSIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iMTIwLjc3MSIvPgorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iMTIwLjEzOSIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMTIwLjA2NyIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iMTIyLjQ1OSIvPgorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iMTIxLjYwMyIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMTIwLjg1NiIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMTIwLjg4MiIvPgorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iMTIwLjA0OSIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMTE5LjkwMyIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMTE2LjAxMiIvPgorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iMTE5LjI4MyIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMTIwLjMwMyIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iMTIxLjcyOCIvPgorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iMTIxLjUxNiIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iMTIyLjg0OSIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iMTI2LjA5MyIvPgorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iMTI2LjcyNSIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iMTI0Ljg4MyIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iMTI1LjkzMSIvPgorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iMTI2LjA5NiIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iMTI0LjkwNiIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iMTIzLjY1NCIvPgorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iMTIxLjQ5MyIvPgorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMTIzLjg5NyIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMTIzLjc1NiIvPgorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iMTIyLjM2OSIvPgorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMTIxLjkzNCIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iMTIyLjMwNiIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iMTI0LjA0MSIvPgorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iMTIzLjY5OCIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTIwLjAyOSIvPgorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMTIwLjAzMyIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMTE5LjMxNCIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMTIwLjQ3OSIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMTIxLjkxIi8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIxMjIuNDg1Ii8+CisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSIxMTguNTY0Ii8+CisJCQkJCTx2YWwgbz0iMWNkNmQwIiB2PSIxMTkuMzY3Ii8+CisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSIxMjAuODA4Ii8+CisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSIxMjMuMTA1Ii8+CisJCQkJCTx2YWwgbz0iMWQwMTA5IiB2PSIxMjUuMDIxIi8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSIxMjMuMjc0Ii8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSIxMjMuOTIiLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjEyMy44NzYiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjEyMi44ODMiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjEyMi4wNzIiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjEyMS41NDQiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjEyMy4yNyIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iMTIzLjUxMyIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iMTIyLjYwNCIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iMTIxLjI4MSIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iMTIxLjcxNiIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iMTIyLjcxNCIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iMTIzLjEyOSIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMTIzLjQzMSIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iMTIyLjk4NyIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iMTE5LjI2MiIvPgorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMTE4LjA4NyIvPgorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMTE2LjUzMiIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iMTE4LjYxOCIvPgorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMTE5LjcwNiIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMTIwLjg5OSIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iMTIwLjcxOCIvPgorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMTIxLjYyNCIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMTE3LjkyNSIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iMTIwLjkyOCIvPgorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMTIyLjM0Ii8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSIxMjIuOTcyIi8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSIxMjMuMDUiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjEyMi40NCIvPgorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iMTIwLjczNSIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iMTIwLjcxMSIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTIzLjY4OCIvPgorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iMTIyLjg1MyIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iMTIyLjc1NCIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMTIyLjk3NSIvPgorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMTIzLjQ5Ii8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSIxMjMuMjc4Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxMjEuNzc2Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSIxMjEuNDU4Ii8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxMjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIxMTYuODMyIi8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSIxMTkuOTQ4Ii8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSIxMjAuMDIyIi8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxMjAuODg0Ii8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSIxMTkuNjE4Ii8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSIxMjIuODExIi8+CisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIxMjMuOTk3Ii8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSIxMjYuNjU0Ii8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSIxMjUuNTc0Ii8+CisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIxMjYuNDk1Ii8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSIxMjYuMDIxIi8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSIxMjUuNTIxIi8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIxMjMuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIxMjEuMDczIi8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIxMTcuOTk3Ii8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIxMTkuMzc2Ii8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSIxMTkuMzAyIi8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSIxMjAuMjQiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjEyMC40OTciLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjEyMy4yNzYiLz4KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjEyMS4yODciLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjEyMC40OTIiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjExOS42NDMiLz4KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjExNy42MjYiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjEyMS45Ii8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSIxMjAuODYxIi8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSIxMjAuNDkzIi8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIxMjEuNTI2Ii8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSIxMTkuNDYiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjEyMC4yODQiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjEyMS43MTMiLz4KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjEyNC4yMDMiLz4KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjEyNi41ODciLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjEyNC42MjciLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjEyNC41MjYiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjEyMy44MjEiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjEyMi4zNTciLz4KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjExOC42NDIiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjExNi42NTEiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjEyMi40MzkiLz4KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjEyMC4yMzIiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjExOS4zMjIiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjEyMC4yMzYiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjEyMC4zNDYiLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjExOS4xNDgiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjExOC45MDciLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjExNy44NzQiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjEyMi41ODQiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjEyMC4yNTIiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjEyMC40NjkiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjEyMS4zMDMiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjEyMi4xODMiLz4KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjExOC43NDciLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjEyMC44MSIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iMTIzLjkzNyIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iMTI2LjY4NyIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iMTE5LjU1MyIvPgorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iMTE5Ljc1NyIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iMTE5Ljc1MyIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMTE3LjU1NyIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMTE2LjI2MiIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iMTIyLjQ2OSIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iMTE5Ljc2NSIvPgorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMTE5Ljc4Ii8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSIxMTkuMDA2Ii8+CisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIxMTguNjk2Ii8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIxMTkuMDE4Ii8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSIxMjAuNzY1Ii8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSIxMjAuNDEiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjExOS42MDgiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjExOS4yNjgiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjExOC4yMjEiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjExOS4yMzQiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjExOC4xOTkiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjExOS41MjQiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjEyMC43NiIvPgorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMTE4LjQ0NiIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMTE5Ljg2Ii8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxMjEuNDU4Ii8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSIxMjAuOTM3Ii8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSIxMjIuMzUzIi8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxMjMuMDg1Ii8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxMjMuMTQ1Ii8+CisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSIxMjIuMjc3Ii8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxMjEuMTUzIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSIxMTkuMzEiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjEyMC42MTYiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjExOC40ODIiLz4KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjExNy43ODkiLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjExOC4xNzgiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjExOC42NSIvPgorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iMTE5Ljg5MyIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iMTE5LjE3MiIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMTE4Ljg4Ii8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIxMTguMDMiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjExNS4yIi8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIxMTguMDkxIi8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIxMTkuNjAxIi8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSIxMjAuODQ0Ii8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIxMjAuMDk0Ii8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSIxMjMuODUxIi8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSIxMjMuNDk5Ii8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIxMjQuODA2Ii8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSIxMjQuMjciLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjEyNC45ODUiLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjEyNS4wMiIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMTIzLjQ4MyIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iMTIyLjQzNiIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTIwLjA0MSIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMTE5LjQ5NiIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMTE5LjM2MiIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMTE3Ljc2NyIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMTE4LjYxNiIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iMTE3LjI3NCIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iMTE4Ljk3NSIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMTE5Ljc5Ii8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIxMTkuMzMxIi8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIxMTkuMTk0Ii8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSIxMTguNjM3Ii8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIxMjAuNTM1Ii8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIxMTkuOCIvPgorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iMTIwLjQwMyIvPgorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iMTIxLjA1NCIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMTE5LjQxMyIvPgorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iMTIwLjM4Ii8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIxMjMuMjAzIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxMjEuMTQzIi8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSIxMjIuOTc2Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSIxMjMuNjk3Ii8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSIxMjQuNDc2Ii8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSIxMjMuNTkyIi8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSIxMjMuMTc3Ii8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSIxMjEuODUzIi8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSIxMjEuMjk4Ii8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSIxMjAuNTkzIi8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIxMTguNzYzIi8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIxMTguMjc4Ii8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIxMTguNTk2Ii8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIxMTkuOTg0Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIxMTkuNTIzIi8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIxMTkuNTc0Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIxMTkuMDEzIi8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxMTkuNzIyIi8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSIxMjAuODc1Ii8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIxMjAuNjY4Ii8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSIxMjEuNDUxIi8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSIxMjEuODM4Ii8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIxMTkuMDUzIi8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIxMjEuMDMiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjEyMy41NDQiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iOTgwOCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNmViZDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhNmZkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmMxNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZThlN2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY3Nzg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZkOWY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWNkNmQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQwMTA5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWU2ZTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE5MDI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjMwYmQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjMzNjFiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSIwIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9Ijk4MDQiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIxMTMuNzY4Ii8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSIxMTcuMTMxIi8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iMTE4Ljc5NCIvPgorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjEyMC4zNjIiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSIxMTguNTA0Ii8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iMTE2LjI3NSIvPgorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjEwOS4yNTgiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSIxMjEuMTI3Ii8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iMTE4Ljg0OSIvPgorCQkJCQk8dmFsIG89IjdlODUiIHY9IjExNi4wOTMiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSIxMjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iMTIwLjg0Ii8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iMTI0LjA0NSIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjEyNC4wNDIiLz4KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSIxMTcuNzEzIi8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMTE4LjA0OCIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjExOC4wNTEiLz4KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIxMTguMjU5Ii8+CisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iMTE4LjA1NCIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSIxMjAuODQ0Ii8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjEyMS45MjUiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iMTE5LjM1MyIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSIxMjAuODY3Ii8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjEyNS40OCIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIxMjcuNDM0Ii8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjExOS4wNjkiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iMTIwLjkwNCIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIxMjAuOTc0Ii8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjEyMC4yNSIvPgorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSIxMTguMjkxIi8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjEyNi41NzMiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iMTI1LjYzNyIvPgorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSIxMjQuNjY4Ii8+CisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjEyMS4zOTMiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iMTIxLjk5OCIvPgorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSIxMjIuNTU1Ii8+CisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjEyMy45NDEiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iMTI0Ljc0NiIvPgorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSIxMjUuMDg1Ii8+CisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjEyNS4xNDMiLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iMTIzLjMxNSIvPgorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSIxMTkuMDI2Ii8+CisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjExOC42ODMiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iMTE5LjgxNSIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSIxMTkuMjUiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMTE5LjY3OCIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSIxMjEuNzA4Ii8+CisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjEyNS4xODIiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMTI1LjIxNyIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIxMTcuMTIiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMTE4LjQ4OSIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIxMTkuMzM4Ii8+CisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjExOS4zOTIiLz4KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iMTE3LjI3NyIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIxMTIuOTY3Ii8+CisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjEyNC43NzUiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iMTI0LjQwOSIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIxMjMuMjY4Ii8+CisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjEyMi45NTYiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iMTIzLjAzMiIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIxMjMuNTU1Ii8+CisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjEyMy4wMDQiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iMTIyLjEyNSIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIxMjEuMDc4Ii8+CisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjExNy43MDEiLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMTE4LjEwMSIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIxMTcuNzcxIi8+CisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjEyMS4zOTMiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iMTIwLjE2Ii8+CisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjExOS4zODciLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iMTE5Ljg4NyIvPgorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSIxMjIuNjQiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMTI1Ljk1NCIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSIxMjMuNTEiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iMTI0LjMyOCIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIxMjQuNjM5Ii8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjEyNC40NDgiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iMTIyLjQzNCIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIxMTguNjIzIi8+CisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjEyMi4xNjkiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iMTIwLjk3OSIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIxMTguMzU4Ii8+CisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjExNy4yNzEiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMTE4LjY4Ii8+CisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjExOC41NjIiLz4KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMTE2Ljg0MiIvPgorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSIxMTUuOTEzIi8+CisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjExOC44OTQiLz4KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMTE4LjU5Ii8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjExNi4yOTMiLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMTE4LjI5OSIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIxMjAuMjMzIi8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjExOC40OTUiLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMTIwLjQwNiIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSIxMjIuNjQ0Ii8+CisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjEyNS41MjgiLz4KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iMTIxLjc0NiIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSIxMjIuNjQyIi8+CisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjEyMi41ODEiLz4KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iMTIyLjYyMyIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSIxMjAuNDMxIi8+CisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjEyMS4zMjkiLz4KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iMTIwLjY1MSIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIxMTguODc2Ii8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjExNS42NjEiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMTE5LjgzNSIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIxMjAuMzQiLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iMTE5LjQzOSIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIxMTguMjQ1Ii8+CisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjExNy4wMDQiLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMTE3LjE2NSIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIxMTkuOTUiLz4KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iMTE3LjE0OSIvPgorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSIxMTguNTQxIi8+CisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjExOS44MjIiLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iMTIxLjAxMyIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSIxMjEuNTc3Ii8+CisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjEyMC4yODkiLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iMTIyLjYyIi8+CisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjExOS4wOTMiLz4KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iMTIwLjQ5MyIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIxMjEuOTE5Ii8+CisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjEyMi4yMTgiLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iMTIxLjAyMiIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSIxMTguNDMzIi8+CisJCQkJCTx2YWwgbz0iNmViZDYiIHY9IjExNS45NzgiLz4KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iMTIwLjk3MSIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSIxMTkuMjM0Ii8+CisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjExOC4wMTUiLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iMTE3LjkyMiIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIxMTcuNTY2Ii8+CisJCQkJCTx2YWwgbz0iNzQwMzciIHY9IjEyMS40NjkiLz4KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iMTIwLjUxNCIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIxMTguNDg1Ii8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjExNy44ODkiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMTE3Ljk0NiIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIxMTMuNjExIi8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjExNi41ODMiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMTE5LjMwNiIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSIxMTguODAyIi8+CisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9IjEyMC43OTkiLz4KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iMTIwLjg1NyIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIxMjEuNTk0Ii8+CisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjEyMS40MjEiLz4KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iMTIzLjc0Ii8+CisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjEyNS4xODkiLz4KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iMTI1LjY3MyIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIxMjQuNzc3Ii8+CisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjEyMi40MzIiLz4KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iMTIwLjAxMSIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIxMTguNjIyIi8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjExOC41NTkiLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMTE3LjUyNCIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIxMTcuMjU3Ii8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjExOS45MDkiLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iMTIwLjkyMSIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIxMTkuOTYiLz4KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iMTE4LjQ4MSIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIxMTguNjA1Ii8+CisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjExOC4yODIiLz4KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iMTE4LjY2MyIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIxMTcuMDA5Ii8+CisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjExNy43NjYiLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iMTE5LjcyMiIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIxMjAuMjk5Ii8+CisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjExOC4zNjYiLz4KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iMTIyLjUyOSIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSIxMjQuODMzIi8+CisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjEyMy4wNiIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIxMjIuMzk2Ii8+CisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjEyMi43OTIiLz4KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iMTIyLjIzMiIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIxMTkuNzkiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iMTIyLjg2Ii8+CisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjExOS4wMTIiLz4KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iMTE4LjMyMSIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIxMTUuNDU2Ii8+CisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjExOS4zNzQiLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iMTIwLjM0NCIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIxMTkuMjU0Ii8+CisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjExNy44MyIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIxMTcuMDAxIi8+CisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjExNi43ODIiLz4KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iMTE2LjgwMyIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSIxMTguNzUiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMTE4LjM1OCIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIxMTkuNDkzIi8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjExOS42OTgiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iMTE5LjkwOCIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIxMjAuNjc1Ii8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjEyMi43NTQiLz4KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iMTI1LjM4NSIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIxMTguMjE0Ii8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjExOS4zMjkiLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iMTIwLjExIi8+CisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjExOS42ODkiLz4KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iMTE3LjEyIi8+CisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjExNC43MjkiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMTIwLjg3MSIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSIxMTkuMTc3Ii8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjExNi42OTkiLz4KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMTE2Ljc2OCIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIxMTguMDc1Ii8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjExNS41NzEiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMTE1Ljg2NyIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSIxMTQuMzA5Ii8+CisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9IjEyMi43ODciLz4KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iMTE4LjkwNCIvPgorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSIxMTguNTMxIi8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9IjExOS40MzgiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iMTIwLjkwOCIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSIxMTkuODQ0Ii8+CisJCQkJCTx2YWwgbz0iYmMxNTciIHY9IjEyMC41NzUiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iMTIzLjIxMiIvPgorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIxMTguNzEyIi8+CisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjExOC4zMTYiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMTE4Ljg1OSIvPgorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSIxMjAuMDkyIi8+CisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjExOS41MzIiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iMTE4LjE3OSIvPgorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIxMTUuNzMxIi8+CisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjExNy42NzEiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMTE2LjA0NiIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSIxMTcuNDE2Ii8+CisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjExNy41NzgiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iMTE2Ljc1OCIvPgorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIxMTguMzE5Ii8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjExOC4zNTUiLz4KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMTE4LjEzNiIvPgorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSIxMTcuMjI1Ii8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjEyMi42NTkiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTE4LjU0NyIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSIxMTYuNjM1Ii8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjExOC4xMDUiLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMTE4LjUwMyIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIxMTkuNTQ3Ii8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjEyMS40Ii8+CisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjEyMy4zOTYiLz4KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMTI2LjA2OCIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSIxMTkuMzMiLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iMTIwLjUyNCIvPgorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSIxMjAuNzQyIi8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjExOS41NDgiLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTE3LjM1OCIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSIxMjQuMjY3Ii8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjEyMi4zODgiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iMTIwLjc3NCIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIxMTcuMzQ1Ii8+CisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjExNi42OTgiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMTE2Ljc5OCIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIxMTguMjE5Ii8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjExNy44NzkiLz4KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMTE3LjI4NyIvPgorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxMTcuNDIiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMTE2Ljc5OCIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIxMTcuMTg0Ii8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjExOS42NjUiLz4KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iMTIxLjAzMyIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIxMjAuODM5Ii8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjEyMi40NTYiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMTIwLjUzNCIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIxMjIuNzY2Ii8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjEyMy43MzUiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMTE2LjY1NCIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSIxMTguMTExIi8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjExOC40NDEiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iMTE3LjQ2MyIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIxMTMuNTQ5Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjEyMy41OTYiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iMTIwLjcwOSIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIxMTguOTQiLz4KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iMTE2LjAwMiIvPgorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSIxMTcuNzQxIi8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjExNy40OSIvPgorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSIxMjEuNDMzIi8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjExNy43MzUiLz4KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMTE4LjE2NSIvPgorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIxMTcuODM5Ii8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjExNy42ODUiLz4KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMTE3LjUxOCIvPgorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIxMTkuMzg1Ii8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjEyMS4yMDIiLz4KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iMTIwLjI1NCIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxMTguMzM2Ii8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjExOC4yNjciLz4KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iMTIzLjA4OCIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSIxMjMuMTgzIi8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9IjEyNi4zNzciLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iMTIzLjc3MiIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSIxMjMuNjM0Ii8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSIxMjMuMDA4Ii8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSIxMjEuMzgyIi8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIxMTcuNjk2Ii8+CisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIxMTcuOTAxIi8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIxMTkuNDA0Ii8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIxMTcuNjQ2Ii8+CisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSIxMTguMTQ3Ii8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxMTcuODAyIi8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSIxMjAuMTUxIi8+CisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSIxMTkuNzMzIi8+CisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIxMTkuMDk2Ii8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSIxMTkuMjkxIi8+CisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSIxMTguOTczIi8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIxMTYuMzM2Ii8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIxMTguMTcxIi8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSIxMTkuMDgyIi8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIxMjAuOTUzIi8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxMjEuNDEiLz4KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjExOS4wODgiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjEyMC45NDEiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjEyMy42OTkiLz4KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjEyMi40OCIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iMTIzLjM3OCIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iMTIzLjMxMiIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iMTIzLjIxNyIvPgorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTIwLjk2MSIvPgorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMTE4LjA3NiIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTE4LjU3MyIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTE3Ljk3OCIvPgorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMTIwLjAxOSIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMTIxLjY2MiIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMTIyLjI2OCIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iMTIyLjMxNyIvPgorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iMTIxLjkzNCIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMTIwLjc3NiIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iMTIxLjg4OSIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMTIxLjA2NCIvPgorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iMTE2LjgyNCIvPgorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMTE3LjU1NiIvPgorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iMTE4Ljc4NCIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMTIwLjc3Ii8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIxMjIuNTY1Ii8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIxMjAuMjYzIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIxMjIuNzI5Ii8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSIxMjQuNTYxIi8+CisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSIxMjUuMjM3Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIxMjUuMzQ0Ii8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSIxMjUuNDkyIi8+CisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSIxMjQuNjciLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjEyMi44MTkiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjEyMS43MTMiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjEyMC44ODMiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjExOS44NSIvPgorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMTE3LjE3NiIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMTE3LjQ0NyIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMTE4LjY3OSIvPgorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMTIwLjAxNiIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMTE5Ljk1OSIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAuMTAxIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwLjEwNCIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwLjEwNCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMC4xMDIiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwLjEwNiIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAuMTE1Ii8+CisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMC4xMDQiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwLjEwNyIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMC4xMDYiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAuMTA3Ii8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMC4xMDkiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iMC4xMDgiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAuMTA0Ii8+CisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwLjEwOSIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMC4xMSIvPgorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAuMTA5Ii8+CisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIwLjExMiIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMC4xMTMiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwLjEwOCIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMC4xMDciLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwLjExIi8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMC4xMTIiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjAuMTEyIi8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIwLjExMSIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMC4xMTEiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjAuMTEiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAuMTA4Ii8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIxMTcuODQiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjExOS4xOTkiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjEyMC4yMjYiLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjEyMC45MjQiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjEyNC4wMzgiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjEyNi43NDciLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9IjEyOC4zNjQiLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjEyNi41NSIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMTI2LjUyMiIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iMTI2Ljg5MyIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMTI2LjExNCIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMTI0LjIxOSIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iMTIzLjY5MSIvPgorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iMTI0LjcyMyIvPgorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iMTI0LjY2NyIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iMTIzLjY2NiIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iMTIzLjMzNyIvPgorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iMTI0LjA0MiIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iMTI1LjkyIi8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSIxMjUuMTQ0Ii8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSIxMjQuNzY5Ii8+CisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSIxMjQuNTQ5Ii8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSIxMjMuNDgzIi8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIxMTYuNjMiLz4KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjEyMC40NjEiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjEyMS4yMjgiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjEyMS4xNTQiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjEyMy40MDkiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjEyNS40MDMiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjEyMi43MTYiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjEyNC4zODUiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjEyNi4wNDYiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjEyNi4xNjYiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjEyNS4yNiIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iMTIzLjI5Ii8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSIxMjAuNDk5Ii8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSIxMjAuNzA1Ii8+CisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSIxMjAuNDkyIi8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSIxMTkuOTk2Ii8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSIxMjAuMjY1Ii8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSIxMjIuMjMyIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSIxMjEuNDkiLz4KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9IjEyMC43MDQiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjEyMC42MTQiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjExOS44MzkiLz4KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjExOS42ODUiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjExNS41OTMiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjExOC44NiIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMTE5Ljk3Ii8+CisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSIxMjEuMzY5Ii8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSIxMjEuMDk2Ii8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIxMjIuNDUxIi8+CisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIxMjUuNzY1Ii8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSIxMjYuMzAyIi8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIxMjQuNDk1Ii8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIxMjUuNjU5Ii8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIxMjUuNzczIi8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIxMjQuNDY0Ii8+CisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSIxMjMuMTY3Ii8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSIxMjEuMTM3Ii8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSIxMjMuNjc3Ii8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIxMjMuNTY5Ii8+CisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSIxMjIuMjU0Ii8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSIxMjEuNzk0Ii8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSIxMjIuMDg4Ii8+CisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSIxMjMuODciLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjEyMy41NTYiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjExOS42ODIiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjExOS42NzYiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjExOC44MjEiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjExOS44MzYiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjEyMS4xOTIiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjEyMS42ODUiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjExNy44NzQiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjExOC43NjIiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjEyMC4yNjMiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjEyMi40NjgiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjEyNC41MzYiLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjEyMi41OTgiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjEyMy4yIi8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSIxMjMuMjE4Ii8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSIxMjIuMjAyIi8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSIxMjEuNDI0Ii8+CisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIxMjAuODg4Ii8+CisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSIxMjIuNzQzIi8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSIxMjMuMDc4Ii8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSIxMjIuMjM3Ii8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSIxMjAuODU4Ii8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSIxMjEuMjMxIi8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIxMjIuMTg1Ii8+CisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSIxMjIuNjQ4Ii8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSIxMjIuOTkyIi8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIxMjIuNDgyIi8+CisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSIxMTguNzA3Ii8+CisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSIxMTcuMzY3Ii8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSIxMTUuNzE0Ii8+CisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIxMTcuNzQiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9IjExOS4wNDgiLz4KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjEyMC4xNzkiLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9IjExOS45NDkiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjEyMC45MDYiLz4KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjExNy4yNTEiLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9IjEyMC4xMTgiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjEyMS41MjEiLz4KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjEyMi4xODgiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjEyMi4yMTIiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjEyMS41MzEiLz4KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjExOS45ODEiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjExOS45NzciLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9IjEyMi45MzkiLz4KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjEyMi4yODkiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjEyMi4wNSIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMTIyLjI3MSIvPgorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMTIyLjg1NiIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iMTIyLjYxMSIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iMTIxLjE0OCIvPgorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMTIwLjg2NCIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iMTE5LjYwOSIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMTE2LjEwMSIvPgorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTE5LjE2NSIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iMTE5LjI4NyIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iMTIwLjIwOCIvPgorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMTE4Ljc3NSIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iMTIyLjIyMiIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iMTIzLjI4OCIvPgorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iMTI2LjAyNiIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iMTI0LjgyOCIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iMTI1Ljc2OSIvPgorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iMTI1LjIxOCIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iMTI0Ljc5NSIvPgorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iMTIyLjM5MyIvPgorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMTIwLjUyMyIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMTE3LjMxOSIvPgorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iMTE4Ljc3MiIvPgorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMTE4LjgwOCIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMTE5LjY4NiIvPgorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMTE5Ljk5Ii8+CisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSIxMjIuNzA4Ii8+CisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIxMjAuNzYyIi8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIxMTkuOTIiLz4KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjExOS4xMjkiLz4KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjExNy4wOTEiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjEyMS4yMTkiLz4KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjEyMC4yOCIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iMTE5LjY5Ii8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIxMjAuNjc3Ii8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSIxMTguNzU2Ii8+CisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSIxMTkuNjA4Ii8+CisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSIxMjEuMDU5Ii8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSIxMjMuNTczIi8+CisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSIxMjUuOTc2Ii8+CisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSIxMjMuOTI2Ii8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSIxMjMuODg4Ii8+CisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSIxMjMuMDgiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjEyMS42OSIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iMTE3LjkxNiIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iMTE2LjAxNCIvPgorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMTIxLjkzNSIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMTE5LjY3NSIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iMTE4LjgiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjExOS42NDkiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjExOS43MTUiLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjExOC42MjIiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjExOC40NTkiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjExNy4zMzkiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjEyMi4wOTUiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjExOS41NTYiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjExOS43NjEiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjEyMC41MyIvPgorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iMTIxLjQyOCIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMTE4LjAwMyIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iMTIwLjIyOCIvPgorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iMTIzLjMzIi8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSIxMjUuODYxIi8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIxMTguNzg4Ii8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSIxMTkuMTA2Ii8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSIxMTkuMTE2Ii8+CisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxMTYuOTA4Ii8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIxMTUuNjQyIi8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSIxMjIuMDEzIi8+CisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIxMTkuMjM0Ii8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIxMTkuMzEiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjExOC41NjYiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjExOC4yNDMiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjExOC41NzkiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjEyMC4yODgiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjExOS45OTYiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjExOS4yNDkiLz4KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjExOC44NjYiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjExNy43NDEiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjExOC41NDMiLz4KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjExNy41MzgiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjExOC43MDkiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjExOS45NCIvPgorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMTE3LjY2OCIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMTE5LjE1OSIvPgorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMTIwLjc3MSIvPgorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMTIwLjIzNCIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iMTIxLjYyNCIvPgorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iMTIyLjI3MiIvPgorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMTIyLjQyMiIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iMTIxLjY4NyIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTIwLjM2MSIvPgorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMTE4Ljc1MSIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMTIwLjAyOCIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMTE3Ljk3NCIvPgorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMTE3LjMwNSIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMTE3LjcxIi8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIxMTguMTkzIi8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIxMTkuNTQyIi8+CisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSIxMTguNzQxIi8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIxMTguMjk1Ii8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIxMTcuNTM0Ii8+CisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSIxMTQuNDcyIi8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIxMTcuMzU3Ii8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIxMTguODUxIi8+CisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSIxMjAuMTM3Ii8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIxMTkuMzQ5Ii8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSIxMjMuMjI2Ii8+CisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSIxMjIuOTIxIi8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIxMjQuMjczIi8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSIxMjMuNTE1Ii8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSIxMjQuMTgyIi8+CisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSIxMjQuMjciLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjEyMi44MjciLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjEyMS44MDEiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjExOS41MTQiLz4KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjExOC45MjIiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjExOC44NiIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMTE3LjI2NCIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMTE4LjAyMiIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iMTE2LjgxOSIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iMTE4LjM4NCIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMTE5LjI3NiIvPgorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iMTE4LjgxIi8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIxMTguNjc2Ii8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSIxMTguMTA4Ii8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIxMTkuNjI1Ii8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIxMTkuMDQyIi8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIxMTkuNjM4Ii8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIxMjAuMzU1Ii8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIxMTguNzI4Ii8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIxMTkuNzc3Ii8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIxMjIuNjIxIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxMjAuNDk0Ii8+CisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSIxMjIuMzM1Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSIxMjMuMDAxIi8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSIxMjMuODI3Ii8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSIxMjIuOTM5Ii8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSIxMjIuMzk4Ii8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSIxMjEuMjEyIi8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSIxMjAuODQ0Ii8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSIxMjAuMDU0Ii8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIxMTguMjk3Ii8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIxMTcuNzk1Ii8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIxMTcuOTk2Ii8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIxMTkuMjg3Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIxMTguODE1Ii8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIxMTguOTU1Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIxMTguNDQ5Ii8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxMTkuMTU3Ii8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSIxMjAuMTI0Ii8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIxMTkuODU4Ii8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSIxMjAuNjY4Ii8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSIxMjEuMDY3Ii8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIxMTguMjY1Ii8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIxMjAuMzA4Ii8+CisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSIxMjIuODUxIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjQ0MDYwMCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9Ii0xMjc1Ii8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSItMTQ4MiIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9Ii0xNTYyIi8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iLTE2NDMiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSItMTQ0NiIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9Ii0xMjc2Ii8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iLTEwNDkiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSItMTY5NCIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9Ii0xNzYwIi8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iLTE2NjIiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSItMjA2NyIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9Ii0xOTkyIi8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iLTE5MjgiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSItMjAxOCIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9Ii04Ii8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSItMTg0NSIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSItNjMxIi8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjE1NjQiLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iLTY2Ii8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9Ii0zOTMiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iLTY5MSIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSItODgzIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9Ii0xNTc1Ii8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9Ii0yMjA5Ii8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjEwOSIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSItNDIwIi8+CisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9Ii04NTkiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iLTYyOCIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSI1MTYiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTgzOSIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIyOTMiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iMTE4NSIvPgorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIzOTQ2Ii8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjQyMzAiLz4KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMzY4OSIvPgorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIyNDgiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iNDMwIi8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjEwMjYiLz4KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iLTUyNiIvPgorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSItMjU4Ii8+CisJCQkJCTx2YWwgbz0iYjg5MTciIHY9Ii02NSIvPgorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSItNDg5Ii8+CisJCQkJCTx2YWwgbz0iYmE1MzciIHY9Ii04NDIiLz4KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iMTA4MiIvPgorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIzMTAiLz4KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iLTExMTIiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iMzYzMiIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI1MTMiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMjE0Ii8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9Ii0yOTIiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iLTEyNyIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI0OTUiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMTgxNSIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI4MTgiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMTUzOSIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI2ODAiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNzEyIi8+CisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjEyODAiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMzk3Ii8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjQ5MyIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIyNTAiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iNzg1Ii8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9Ii0yMDEiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMjE1NiIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSIyOTM3Ii8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjIxMDciLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMjgyNCIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIyMjY5Ii8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjE0NDEiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iLTI5NyIvPgorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSItMjI4MCIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSItMTE4OSIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSItOTY0Ii8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9Ii00NDIiLz4KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMjYxIi8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjEzMDkiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iLTg0OSIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIxNzgiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iMTExMSIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIyNzUwIi8+CisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjI3NjkiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMjk3MyIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIxMzI3Ii8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjQ1NCIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxOTkiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iMTY3Ii8+CisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjU1NiIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSI0MTYiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iLTM3MCIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSItMTE1NCIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSI5MyIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSItODQzIi8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjE3MSIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSItNjQ2Ii8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9Ii03MjMiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMjY2NSIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSI4MzciLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iNjk4Ii8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjEwOTciLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iMjY0OSIvPgorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSItNDk1Ii8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjExNjUiLz4KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iNTQyIi8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjE4NzEiLz4KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iOTc5Ii8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjEyMTAiLz4KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iLTM1NiIvPgorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIxNjU0Ii8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjEzNjgiLz4KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMTQ2MiIvPgorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIxNjEyIi8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjEzMDkiLz4KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMTg4NiIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIxMTM2Ii8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjExNjkiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMTQwMyIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIxMzE2Ii8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9Ii0xMDQxIi8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9Ii0xMTkwIi8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9Ii0xNjA5Ii8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9Ii0xOTkiLz4KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iLTI1MiIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iNTg1Ii8+CisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSIxMDY5Ii8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIxOTczIi8+CisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIxODMxIi8+CisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIxMTI3Ii8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIxNzY3Ii8+CisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSIxMzQzIi8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxNTY0Ii8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSI4NDkiLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjgwNSIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMTA5MyIvPgorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iODgwIi8+CisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSIxMjU0Ii8+CisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIyNjY0Ii8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIxMzY4Ii8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSIxMDA5Ii8+CisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIyMDgiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjIyIi8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIxMTQyIi8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIyODYiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9Ii0xMTY4Ii8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSI3MTIiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjIyNyIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iMjM2Ii8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIzNzIiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjE0NDEiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjIwMTUiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjEyMTEiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjEyODQiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjM2OSIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iLTMxMCIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iLTgwMiIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iNzgxIi8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSI0OTEiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjEwMjMiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjUxNiIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMiIvPgorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iMSIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9Ii0xIi8+CisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9Ii0xIi8+CisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSIyIi8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTMwZmE2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTMzOWQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM2NDA0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM4ZTMzIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY3Nzg2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZkOWY2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIyMjc0Ii8+CisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSIxNzc1Ii8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSIxMTUzIi8+CisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSI3NjkiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9Ii04NDYiLz4KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9Ii0yMzYyIi8+CisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSItMjk2MSIvPgorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iLTI1MTkiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9Ii0yNDQ3Ii8+CisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSItMjg2NSIvPgorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iLTIyNzYiLz4KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9Ii0xMjUwIi8+CisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSItNzE2Ii8+CisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSItMTQ4OSIvPgorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iLTIwMDQiLz4KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9Ii0xMDU1Ii8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSItOTc4Ii8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSItMTI2OSIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iLTMxNzAiLz4KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9Ii0yNjY4Ii8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSItMjU0MCIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iLTIzNzciLz4KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9Ii0xMTI2Ii8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIxMjE5Ii8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSItMTA2MSIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iLTE1MTkiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9Ii0xMjg0Ii8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSItMTkwMiIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iLTE2MjMiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9Ii03NzgiLz4KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9Ii0xNzMwIi8+CisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSItMTc0NSIvPgorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iLTE4NzIiLz4KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9Ii0xMjA3Ii8+CisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSItMjExIi8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSIxNjE5Ii8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSItNzY0Ii8+CisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSItODI3Ii8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSI0MCIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iLTE5OSIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iLTk2NyIvPgorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iLTY4MCIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iLTM4NSIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iLTI0MSIvPgorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iMzcxIi8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSI0NzEiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjYxIi8+CisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSItMjQ0MCIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iLTM0NDciLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9Ii0zODYyIi8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSItMTY1NyIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iLTIyNzMiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9Ii00MTMyIi8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSItMzczNSIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iLTI2NTUiLz4KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9Ii0zMjg2Ii8+CisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSItMzM3NyIvPgorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iLTI3MDciLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9Ii0xOTgwIi8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSItNzk3Ii8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSItMjA0NiIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iLTI3OTMiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9Ii0xOTM5Ii8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSItMjA5MiIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iLTIyMTEiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9Ii0yNjc5Ii8+CisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSItMjUzMCIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNDUzIi8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSItMTU3Ii8+CisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIxMTQzIi8+CisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSItMTQ2Ii8+CisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSItMTAwMiIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iLTE0MDIiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjI5NDkiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjIyMjkiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjEwMjIiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9Ii0xNjI4Ii8+CisJCQkJCTx2YWwgbz0iMWQwMTA5IiB2PSItMTgzNSIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iLTIxMSIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iLTc2NyIvPgorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iLTc5MiIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMTczIi8+CisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI3NzYiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjEyNDkiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9Ii05NTciLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9Ii05MTEiLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9Ii0yNDMiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9Ii02NSIvPgorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iLTMwOCIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iLTgxMSIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iLTgwNiIvPgorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iLTk1MiIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iLTcxNiIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iLTE2MTgiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9Ii0xOTEwIi8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSItMTgwOSIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iLTIyMjQiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9Ii0yMjcyIi8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSItMjMxNyIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iLTIyODMiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9Ii0yMzM0Ii8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSItMTg2MCIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iLTIxMzkiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9Ii0yMjA2Ii8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSItMjk2Ii8+CisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSItNDQ5Ii8+CisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSItMTQyIi8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSItNDIyIi8+CisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSItMzY1Ii8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSItNTgxIi8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSItMjYzIi8+CisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSItMzI1Ii8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSItMTQyIi8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSItMzU1Ii8+CisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSItMzEwIi8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSI0OTYiLz4KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjY2MCIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iMTI0NiIvPgorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMjg4OSIvPgorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTUzMiIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iLTE0MyIvPgorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iLTUxOCIvPgorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMjI1Ii8+CisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSItMTY2NyIvPgorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iLTIzMzAiLz4KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9Ii0xNzI3Ii8+CisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSItMTQ4OSIvPgorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iLTE1MTUiLz4KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9Ii00NzYiLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9Ii0xOTMiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjEyOCIvPgorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMzc2Ii8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIyODcyIi8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSI0MDgiLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjE5MjMiLz4KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjE4MzAiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjE3OTgiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjMzNCIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMTI2MCIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMTgxNSIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMjI3MiIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMjYyIi8+CisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSItMzg3Ii8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSItNjEzIi8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSItMjUxIi8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSItODg1Ii8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSI1NTEiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjQ4Ii8+CisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSItOTgyIi8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSItMTYxMiIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iLTExMjUiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9Ii0zODEiLz4KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9Ii00NDEiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjcxIi8+CisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSIxMDIwIi8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSI3NjAiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9Ii0zMTkiLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9Ii0xMTQ0Ii8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIzMDIiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9Ii0zMTkiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9Ii01ODIiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjQwOCIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iMTAzMSIvPgorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMTEzOSIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMjA4MiIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iLTEyMDIiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjYyMiIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iNDU2Ii8+CisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSItNzM2Ii8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSItODE4Ii8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIxNjg0Ii8+CisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIzMDciLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9Ii04MDEiLz4KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9Ii0xMjU2Ii8+CisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIzMzA4Ii8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSI1MDYiLz4KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjYzOSIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMTk2MyIvPgorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMjg2NyIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iLTgzMSIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iLTI3MCIvPgorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMjAxMCIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iMzQwOCIvPgorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMzE5MCIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iLTE4NyIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iLTIyNSIvPgorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iNTMxIi8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSItODIzIi8+CisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSI2MiIvPgorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMTA3OSIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMTU0NyIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iOTAwIi8+CisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSIxMTIiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjE3ODAiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjE0MDciLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjI5OCIvPgorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iNTY1Ii8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSItMzExIi8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSItNjU3Ii8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxNjgiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjY0NyIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTQyNyIvPgorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iODI5Ii8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSItNSIvPgorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMTE5NyIvPgorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMzc1MSIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMjk5MSIvPgorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMjgwMSIvPgorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iLTExODgiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9Ii04MjgiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9Ii03OTkiLz4KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjU3Ii8+CisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSI0NjAxIi8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIxOTExIi8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSI3OTkiLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9Ii05NzIiLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9Ii03MDgiLz4KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9Ii03OTAiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9Ii00OTAiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9Ii0xMzE2Ii8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSItODI1Ii8+CisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSItMTAxMiIvPgorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iLTExNzgiLz4KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9Ii0zNSIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTM1MiIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMTA1OSIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMTI5MCIvPgorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMjA3OSIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMzYxOCIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iLTQ2ODQiLz4KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9Ii0yNDcwIi8+CisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSItNTU2Ii8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIxODkiLz4KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjI2MCIvPgorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iODE2Ii8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIyNDg5Ii8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIyNzMyIi8+CisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIyMjM0Ii8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSI1NyIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMTIxOSIvPgorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iNjMyIi8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSItMTM2MCIvPgorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iMzgiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9Ii05ODAiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9Ii0xNTAxIi8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSItMjExOSIvPgorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iLTE2MTgiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9Ii0xMzE0Ii8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSItNDMyIi8+CisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSIzMDkiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjY4NSIvPgorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iMTY5MiIvPgorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iMTg5OSIvPgorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iMzYyMiIvPgorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iMjcwOSIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iMzAzNyIvPgorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iMjg5OCIvPgorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iMzI1MSIvPgorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iMTg2Ii8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSItNjM2Ii8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSItNDIxIi8+CisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSItNzI5Ii8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSItOTc4Ii8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIyNjcwIi8+CisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIxMjU1Ii8+CisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSItNDk2Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjQyNDYwMCIgaD0iM2RjMWE4ZGUiPgorCQkJCQk8dmFsIG89IjAiIHY9Ii00MzEzIi8+CisJCQkJCTx2YWwgbz0iZTA4IiB2PSItNDE2MyIvPgorCQkJCQk8dmFsIG89IjFjMzIiIHY9Ii00MTAyIi8+CisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iLTQwOTEiLz4KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSItMzk4MiIvPgorCQkJCQk8dmFsIG89IjQ2NDUiIHY9Ii0zOTM0Ii8+CisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iLTQ0MzkiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSItNTMyMyIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9Ii02Mjk4Ii8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iLTczMzIiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSItNzU0MSIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9Ii03MjQ4Ii8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iLTY4NjkiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSItNjQ1NCIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI5M2E4NCIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iLTkiLz4KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iLTgiLz4KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iLTY0NjAiLz4KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iLTM1NDYiLz4KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iLTk4NiIvPgorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSI2OTciLz4KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iNzc2Ii8+CisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjkyNSIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIxMjUiLz4KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iNDU2Ii8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjkwMyIvPgorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIyNzgiLz4KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMjciLz4KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iNDMiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iMTczIi8+CisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9Ijk0NyIvPgorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSI3MjgiLz4KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iLTQ1MiIvPgorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSItMTE3Ii8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjIzIi8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjE4MiIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSItMTUyIi8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9Ii00MjMiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iLTcwNSIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSItNzkwIi8+CisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9Ii0xNTc1Ii8+CisJCQkJCTx2YWwgbz0iYjdiMDciIHY9Ii0yMDI3Ii8+CisJCQkJCTx2YWwgbz0iYjg5MTciIHY9Ii0xNzU3Ii8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9Ii0xNzIyIi8+CisJCQkJCTx2YWwgbz0iYmE1MzciIHY9Ii0xOTAxIi8+CisJCQkJCTx2YWwgbz0iYmIzNDciIHY9Ii03NDEiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iLTgxMiIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSItODkxIi8+CisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjY1MiIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI0MTEiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iNTE2Ii8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjM5OCIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIzODIiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNDcwIi8+CisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjU5MSIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSIyNjciLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iNzcwIi8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjE2NCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI0MzgiLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iLTQzIi8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjcyIi8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjI0OSIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIyMDEiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iMTE1Ii8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9Ii00MjUiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iLTIyOSIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSItMjg0Ii8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9Ii0yNDciLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iLTEzNSIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSItNTQiLz4KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iOTYiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSIxNiIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSI1OTgiLz4KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iNzIxIi8+CisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjgxOCIvPgorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSIxMDY3Ii8+CisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjEyNDUiLz4KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iLTExNyIvPgorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSItNzIxIi8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9Ii0xNTA0Ii8+CisJCQkJCTx2YWwgbz0iZGFkODciIHY9Ii0yMDg0Ii8+CisJCQkJCTx2YWwgbz0iZGJiOTciIHY9Ii0yNTU0Ii8+CisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9Ii0yMzQ1Ii8+CisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9Ii0yOTIwIi8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9Ii0yNzEyIi8+CisJCQkJCTx2YWwgbz0iZGYzZDciIHY9Ii0yODU4Ii8+CisJCQkJCTx2YWwgbz0iZTAxZDciIHY9Ii0yOTI4Ii8+CisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9Ii0yODAzIi8+CisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9Ii0zMDMyIi8+CisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9Ii00MDE3Ii8+CisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9Ii0zOTE4Ii8+CisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9Ii0zNDEyIi8+CisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9Ii0zNDQxIi8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9Ii0yNTYxIi8+CisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9Ii0yMTM5Ii8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9Ii0xNzY1Ii8+CisJCQkJCTx2YWwgbz0iZThlN2YiIHY9Ii00NjUiLz4KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iLTcwMiIvPgorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSItNjQ3Ii8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9Ii02NzYiLz4KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iLTUwOSIvPgorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSItMjE1MCIvPgorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSItMjM1NSIvPgorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSItMzE3MSIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSItNDAzMSIvPgorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSItNDMzOCIvPgorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSItNDY1MSIvPgorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSItNDY2OCIvPgorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSItNDM0NiIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSItNDU3MSIvPgorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSItNDkyOSIvPgorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSItNDYwNyIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSItNDg2NiIvPgorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSItNDMwOCIvPgorCQkJCQk8dmFsIG89ImY4YmExIiB2PSItMzg5NyIvPgorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSItMzc4NCIvPgorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSItMjk4OCIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSItMzA5OSIvPgorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSItMzMzNSIvPgorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSItMjY4NiIvPgorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSItMjUyMiIvPgorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSItMjA3NCIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSItMTk4OSIvPgorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iLTE3ODgiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9Ii0xNzk1Ii8+CisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSItMjA3NSIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iLTI2OTgiLz4KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9Ii0zOTMyIi8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSItNDQwNiIvPgorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iLTQzNjYiLz4KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9Ii00NjkyIi8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSItNDMwMiIvPgorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iLTM5MjciLz4KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9Ii00MTAxIi8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSItNDE4NyIvPgorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iLTQzNDIiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9Ii00MTYyIi8+CisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSItNDQ1NiIvPgorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iLTQxMzIiLz4KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9Ii00NDk5Ii8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSItMzg4MiIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iLTMyOTUiLz4KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9Ii0yODYzIi8+CisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSItMjY2OCIvPgorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iLTE3NzgiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9Ii0xODEwIi8+CisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSItMTgyOSIvPgorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iLTE4MDAiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9Ii0xNTk1Ii8+CisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSItMjA1MCIvPgorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iLTI5NjEiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9Ii0zNjI3Ii8+CisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSItNDgzMCIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iLTQyOTYiLz4KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9Ii01MjU3Ii8+CisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSItNDQwOCIvPgorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iLTQzMjYiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9Ii00NDIwIi8+CisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSItMzk1MCIvPgorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iLTQiLz4KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9Ii00Ii8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSItNCIvPgorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9Ii0xIi8+CisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iLTQiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9Ii02ODY4Ii8+CisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSItNjc5MCIvPgorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iLTcyNTIiLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9Ii02NzM0Ii8+CisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSItNjAzMCIvPgorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iLTU4OTIiLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9Ii02MDY2Ii8+CisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSItNTQ4NiIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iLTU0NDQiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9Ii01MzM5Ii8+CisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSItNDk4MyIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iLTUxOTAiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9Ii02MzEzIi8+CisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSItNjgzOSIvPgorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iLTc4NTMiLz4KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9Ii0xMzUwNyIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iLTEzMzgxIi8+CisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSItMTI3NzgiLz4KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9Ii0xMTg5MCIvPgorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iLTEyMzM4Ii8+CisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSItMTE3NzQiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9Ii0xMjY0OSIvPgorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iLTExODQ5Ii8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSItNzQ3MSIvPgorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iLTgxMjYiLz4KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9Ii03Njk2Ii8+CisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSItNjUzOCIvPgorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iLTYxNzUiLz4KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9Ii01NjY0Ii8+CisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSItNDQ4MCIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iLTQzMDAiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9Ii00MjYzIi8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSItNDExOSIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iLTQxMDMiLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9Ii00NTExIi8+CisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSItNTEzNSIvPgorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iLTYwMzgiLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9Ii02MzkyIi8+CisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSItNTg5OSIvPgorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iLTY2OTAiLz4KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9Ii02NjAzIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSItNjE1OSIvPgorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iLTYxMjgiLz4KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9Ii02MjIwIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSItNjA0NyIvPgorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iLTYwMDkiLz4KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9Ii0yMjk1Ii8+CisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSItMjU0MyIvPgorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iLTMwODUiLz4KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9Ii0zMjY5Ii8+CisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSItMjI2NyIvPgorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iLTIxNTkiLz4KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9Ii0xNTMyIi8+CisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSItMTY3NSIvPgorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iLTk2MCIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iLTExMjIiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9Ii0xMDYxIi8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSItNTA1Ii8+CisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSItNTM2Ii8+CisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSItOTkxIi8+CisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSItMTgxOCIvPgorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iLTI1NzQiLz4KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9Ii0yODQ0Ii8+CisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSItMjYwOCIvPgorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iLTI5MjgiLz4KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9Ii0yMTEyIi8+CisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSItMjA3NCIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMzU0Ii8+CisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSI0MzgiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjM0MDgiLz4KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjMyNjkiLz4KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjM2NTUiLz4KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjM1MjEiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjU0MzEiLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjU1NjAiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjU2NjAiLz4KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjU2MjMiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjU4OTYiLz4KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjY2NTYiLz4KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjY2NDciLz4KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjY3MzMiLz4KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjY5MTQiLz4KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjY4NzMiLz4KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjY2OTEiLz4KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjU4MTQiLz4KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjU2MTciLz4KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjU2MDgiLz4KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9Ii0zMjMwIi8+CisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSItMzY1NiIvPgorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iLTM2MjAiLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9Ii0zNDQ5Ii8+CisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSItMzYwMSIvPgorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iLTM3MzUiLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9Ii01OTk2Ii8+CisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSItNjcxOCIvPgorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iLTY1ODMiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9Ii02NzY3Ii8+CisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSItNjgwMCIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iLTY1MjUiLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9Ii02MTcwIi8+CisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSItNTY3NiIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iLTQ5MTEiLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9Ii00OTExIi8+CisJCQkJCTx2YWwgbz0iMWU2ZTk2IiB2PSItNDgwMSIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iLTE5ODIiLz4KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9Ii0xODEwIi8+CisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSItMTgzNCIvPgorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iLTIyNTYiLz4KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9Ii0yMzI1Ii8+CisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSItMjY4NCIvPgorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iLTI2NzUiLz4KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9Ii0yNzc4Ii8+CisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSItMjY4OCIvPgorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iLTI2NTAiLz4KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9Ii0yNTU3Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSItMjM1NSIvPgorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iLTIzMTgiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9Ii0yNTgyIi8+CisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSItMjgxMSIvPgorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iLTMxODIiLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9Ii0zNTc4Ii8+CisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSItMzU0NCIvPgorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iLTMxNDgiLz4KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9Ii0zMzQ1Ii8+CisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSItMzEzNyIvPgorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iLTI4MDkiLz4KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9Ii0yNTAxIi8+CisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSItMjQ5MyIvPgorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iLTIxNTciLz4KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9Ii0yMTM3Ii8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSItMjE1NSIvPgorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iLTI0OTgiLz4KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9Ii0yMzY4Ii8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSItMzUxMyIvPgorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iLTQ1NjYiLz4KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9Ii01MzQ1Ii8+CisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSItNjA1NyIvPgorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iLTU3OTkiLz4KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9Ii01MzQxIi8+CisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSItNTM5NSIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iLTU5NzkiLz4KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9Ii02MDkwIi8+CisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSItNjc3OCIvPgorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iLTYzNzgiLz4KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9Ii01NDczIi8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSItNTM4MiIvPgorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iLTQ2MDgiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9Ii00MzE2Ii8+CisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSItNDA1NSIvPgorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iLTM4NjciLz4KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9Ii0zNDgyIi8+CisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSItMzExNiIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iLTMwMTAiLz4KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9Ii0yOTQ0Ii8+CisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSItMjgxOSIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iLTM2NDQiLz4KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9Ii00NDk5Ii8+CisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSItNTc5NSIvPgorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iLTYxOTgiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9Ii02MTc0Ii8+CisJCQkJCTx2YWwgbz0iMjE5MDI2IiB2PSItNjEwMiIvPgorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iLTYyMTgiLz4KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9Ii01ODk4Ii8+CisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSItNTk4NiIvPgorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iLTU2MzMiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9Ii02MjEwIi8+CisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSItNTc4MyIvPgorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iLTU3MjYiLz4KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9Ii01NTM5Ii8+CisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSItNTQwOCIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iLTQ2MDgiLz4KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9Ii0zODc2Ii8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSItMzYxOCIvPgorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iLTMyOTIiLz4KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9Ii0xNjg1Ii8+CisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSItMjA3MiIvPgorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iLTIwNTAiLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9Ii0xNjcwIi8+CisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSItMTc5MiIvPgorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iLTM0ODUiLz4KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9Ii0zOTExIi8+CisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSItNDU3OCIvPgorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iLTQ3ODgiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9Ii00NDU5Ii8+CisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSItNDY5MyIvPgorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iLTQ4MzAiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9Ii00NjUyIi8+CisJCQkJCTx2YWwgbz0iMjMwYmQ3IiB2PSItNDQ1MiIvPgorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iLTUzOTQiLz4KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9Ii01NTM4Ii8+CisJCQkJCTx2YWwgbz0iMjMzNjFiIiB2PSItNTg2NiIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iLTUyMjUiLz4KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9Ii01MTYyIi8+CisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSItNTI1MCIvPgorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iLTQzODQiLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9Ii00MjE4Ii8+CisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSItNDAxNiIvPgorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iLTMyMjIiLz4KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9Ii0zMzExIi8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSItMzE4MyIvPgorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iLTI5NzQiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9Ii0yOTQ1Ii8+CisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSItMjkzMyIvPgorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iLTM1NzAiLz4KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9Ii00NTQ1Ii8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSItNTExOSIvPgorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iLTU3MzciLz4KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9Ii02NTE1Ii8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSItNjc3NiIvPgorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iLTY3NTUiLz4KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9Ii02MzYxIi8+CisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSItNjU0NiIvPgorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iLTYyNzMiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9Ii01NDAyIi8+CisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSItNTc5NyIvPgorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iLTU2NDciLz4KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9Ii01NzQ3Ii8+CisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSItNTQ0MyIvPgorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iLTU0NDUiLz4KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9Ii00NTU3Ii8+CisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSItNDAxOSIvPgorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iLTM0ODQiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9Ii0zNjE2Ii8+CisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSItMzU1OSIvPgorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iLTM0MDgiLz4KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9Ii0zNjA5Ii8+CisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSItNDAyMCIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iLTQxODIiLz4KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9Ii00OTk3Ii8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSItNTgxMCIvPgorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iLTU1OTUiLz4KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9Ii0xNTIyNCIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iLTg2OTUiLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9Ii00NTc1Ii8+CisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSItNjMxMyIvPgorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iLTYxMDQiLz4KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9Ii01NzUwIi8+CisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSItNTc2NCIvPgorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iLTU2NDkiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9Ii01MjQ5Ii8+CisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSItNTU2MiIvPgorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iLTQ4NzUiLz4KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9Ii00NjE5Ii8+CisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSItNDYxMSIvPgorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iLTM2MTkiLz4KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9Ii0zNDY3Ii8+CisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSItMzU2NCIvPgorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iLTM2NzIiLz4KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9Ii0zNjE0Ii8+CisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSItMzYyMSIvPgorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iLTM4NjgiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9Ii0zOTY5Ii8+CisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSItMzg4NiIvPgorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iLTQzODEiLz4KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9Ii00MjcxIi8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSItMzk2NyIvPgorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iLTQwMDIiLz4KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9Ii0zNTYyIi8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSItMzg3NCIvPgorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iLTM1NjEiLz4KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9Ii00NjkwIi8+CisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSItNTE5NiIvPgorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iLTUyMTEiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9Ii01MDM3Ii8+CisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSItNDk2MyIvPgorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iLTQwNDgiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9Ii0zNzA4Ii8+CisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSItMzIxNSIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI0MzgyMDAiIGg9IjNkYzFhOGRlIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSItMTEwMyIvPgorCQkJCQk8dmFsIG89ImUwOCIgdj0iLTEyODYiLz4KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSItMTM1MSIvPgorCQkJCQk8dmFsIG89IjJhM2MiIHY9Ii0xNDI3Ii8+CisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iLTEyNDYiLz4KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSItMTEwMSIvPgorCQkJCQk8dmFsIG89IjU0NTUiIHY9Ii05MDkiLz4KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSItMTQ3MiIvPgorCQkJCQk8dmFsIG89IjcwNzUiIHY9Ii0xNTIzIi8+CisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iLTE0MzUiLz4KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSItMTc4NCIvPgorCQkJCQk8dmFsIG89IjlhYTUiIHY9Ii0xNzU3Ii8+CisJCQkJCTx2YWwgbz0iYThiNiIgdj0iLTE2ODIiLz4KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSItMTc0NSIvPgorCQkJCQk8dmFsIG89ImM0ZDciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTBiMjciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTE5MzciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTUxODEiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iMTVmODUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iM2U2NjciIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNDAyODUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMCIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iODgzYWMiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODkxYmIiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iODlmY2EiIHY9Ii02Ii8+CisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iLTYiLz4KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSItMTU5MCIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSItNTAwIi8+CisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjEzNzkiLz4KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iLTQ1Ii8+CisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9Ii0zNDYiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iLTU4MCIvPgorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSItNzUyIi8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9Ii0xMzY3Ii8+CisJCQkJCTx2YWwgbz0iYThjMDAiIHY9Ii0xOTA2Ii8+CisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjEwMSIvPgorCQkJCQk8dmFsIG89ImFhODE1IiB2PSItMzY2Ii8+CisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9Ii03NDAiLz4KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iLTU1MCIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSI0MzIiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTU5NSIvPgorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIyNzUiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iMTAxOSIvPgorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIzNDQ0Ii8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjM2MjkiLz4KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMzIwMyIvPgorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIyMTUiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMzgwIi8+CisJCQkJCTx2YWwgbz0iYjVlZTciIHY9Ijg5MCIvPgorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSItNDQ2Ii8+CisJCQkJCTx2YWwgbz0iYjdiMDciIHY9Ii0yMDAiLz4KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iLTQ0Ii8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9Ii00MjQiLz4KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iLTcxOCIvPgorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSI5NDYiLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMjc2Ii8+CisJCQkJCTx2YWwgbz0iYmNmNjciIHY9Ii05NDQiLz4KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iMzEyOSIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI0NTMiLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMTk0Ii8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9Ii0yNDYiLz4KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iLTEyMiIvPgorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI0MzAiLz4KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMTU4MiIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI3MjAiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMTMzMyIvPgorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI1ODgiLz4KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNjQyIi8+CisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjEwOTYiLz4KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMzEzIi8+CisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjM3NCIvPgorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIyMDQiLz4KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iNjkyIi8+CisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9Ii0xOTYiLz4KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTg4OCIvPgorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSIyNTAyIi8+CisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjE4NDAiLz4KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMjQzNyIvPgorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIxOTMwIi8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjEyMTkiLz4KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iLTI1MCIvPgorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSItMTk3MSIvPgorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSItMTAyOSIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSItMTA3MiIvPgorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSItMzg4Ii8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjIyOSIvPgorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIxMTMxIi8+CisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9Ii03MjYiLz4KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMTY2Ii8+CisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9Ijk2NSIvPgorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIyMzQxIi8+CisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjIzNTQiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMjU2NSIvPgorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIxMTM2Ii8+CisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjM2NyIvPgorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxNzMiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iMTU2Ii8+CisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjQ2MCIvPgorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIzNTgiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iLTMwOCIvPgorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSItMTAwNiIvPgorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSI5MyIvPgorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSItNzIzIi8+CisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjE0NyIvPgorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSItNTUxIi8+CisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9Ii02MjYiLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMjMxNiIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSI3MTQiLz4KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iNjAwIi8+CisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9Ijk1MyIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIyMjY3Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9Ii00MDMiLz4KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iOTk5Ii8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjQ3NSIvPgorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSIxNjYzIi8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjgyOSIvPgorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIxMDU1Ii8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9Ii0zMTQiLz4KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMTQzMSIvPgorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIxMjAxIi8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjEyODAiLz4KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMTQzMSIvPgorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIxMTQ1Ii8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjE2MzUiLz4KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iOTU3Ii8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjEwMTkiLz4KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMTIxOSIvPgorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIxMTQzIi8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9Ii04OTMiLz4KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iLTEwMTkiLz4KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iLTEzODkiLz4KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iLTE4MiIvPgorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSItMjIwIi8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSI1MDIiLz4KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9Ijk0MCIvPgorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMTcxOSIvPgorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMTU5MiIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iOTYwIi8+CisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIxNTM3Ii8+CisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSIxMTc3Ii8+CisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxMzM3Ii8+CisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSI3MzciLz4KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjcyMyIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iOTE3Ii8+CisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSI3OTQiLz4KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjEwNzUiLz4KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjIzMjgiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjExOTIiLz4KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9Ijg2NyIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMTg0Ii8+CisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxMiIvPgorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iOTc4Ii8+CisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIyNTYiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9Ii0xMDA3Ii8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSI2MTQiLz4KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjIwNSIvPgorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iMTk1Ii8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIzMTYiLz4KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjEyNDEiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjE3NDgiLz4KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjEwNDYiLz4KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjEwOTkiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjMwOSIvPgorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iLTIwMiIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iLTcyMiIvPgorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iNjgwIi8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSI0NDAiLz4KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9Ijg3MCIvPgorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iNDc1Ii8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIyIi8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIxIi8+CisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9Ii0xIi8+CisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSItMSIvPgorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjEiLz4KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjE5NTkiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjE1MDYiLz4KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjEwMjciLz4KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjY3NyIvPgorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iLTc1OSIvPgorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iLTIwNDIiLz4KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9Ii0yNTU0Ii8+CisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSItMjE3OCIvPgorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iLTIxMjYiLz4KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9Ii0yNDg0Ii8+CisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSItMTk4MCIvPgorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iLTEwNzIiLz4KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9Ii01MjQiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9Ii0xMzY2Ii8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSItMTc1MyIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iLTg5MyIvPgorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iLTg0NSIvPgorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iLTExNDgiLz4KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9Ii0yNzEwIi8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSItMjI5NyIvPgorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iLTIyMDgiLz4KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9Ii0yMDM3Ii8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSItOTk3Ii8+CisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIxMDQ4Ii8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSItOTU1Ii8+CisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSItMTMzNCIvPgorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iLTExMjEiLz4KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9Ii0xNjI1Ii8+CisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSItMTQxOSIvPgorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iLTY3MSIvPgorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iLTE1MDEiLz4KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9Ii0xNTExIi8+CisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSItMTYxOCIvPgorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iLTEwMzciLz4KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9Ii0xOTIiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjEzOTciLz4KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9Ii02MjciLz4KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9Ii03MTEiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjIwIi8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSItMTMwIi8+CisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSItODQzIi8+CisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSItNjQyIi8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSItMzIwIi8+CisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSItMjEwIi8+CisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSIyOTUiLz4KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjQxNyIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMzciLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9Ii0yMTA1Ii8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSItMjk4MCIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iLTMzMjkiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9Ii0xNDMwIi8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSItMTk4NiIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iLTM1NzAiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9Ii0zMjMwIi8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSItMjI4OCIvPgorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iLTI4NDYiLz4KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9Ii0yOTQ2Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSItMjM0MiIvPgorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iLTE3MTkiLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9Ii02NjgiLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9Ii0xNzYxIi8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSItMjQxMyIvPgorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iLTE3MjciLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9Ii0xODMyIi8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSItMTg4OSIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iLTIzNDYiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9Ii0yMTc2Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIzNzQiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9Ii0xMzIiLz4KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9Ijk5MyIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iLTE1MCIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iLTg0MyIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iLTExOTYiLz4KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjI1NzciLz4KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjE1ODIiLz4KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjkwOSIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iLTE0MDUiLz4KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9Ii0xNTk3Ii8+CisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSItMTg2Ii8+CisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSItNjU4Ii8+CisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSItNjc5Ii8+CisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSI4OSIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iNjgwIi8+CisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIxMDk1Ii8+CisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSItODMyIi8+CisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSItNzg1Ii8+CisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSItMjI4Ii8+CisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSItNDAiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9Ii0yODAiLz4KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9Ii02OTciLz4KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9Ii02OTciLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9Ii04MTEiLz4KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9Ii02MjkiLz4KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9Ii0xNDA4Ii8+CisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSItMTY2NiIvPgorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iLTE1NzQiLz4KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9Ii0xOTI4Ii8+CisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSItMTk3MCIvPgorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iLTIwMTciLz4KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9Ii0xOTg0Ii8+CisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSItMjAwNyIvPgorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iLTE2MTEiLz4KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9Ii0xODUxIi8+CisJCQkJCTx2YWwgbz0iMWU2ZTk2IiB2PSItMTkwOCIvPgorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iLTI1MSIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iLTM4NiIvPgorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iLTEyMSIvPgorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iLTM2NSIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iLTMxMyIvPgorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iLTUwNiIvPgorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iLTIzMiIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iLTI4OCIvPgorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iLTEyMSIvPgorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iLTMxMCIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iLTI0NSIvPgorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iNDM5Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSI2MDkiLz4KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjEwNzgiLz4KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9IjI0OTEiLz4KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjEzMjciLz4KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9Ii0xMTUiLz4KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9Ii00NDIiLz4KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjIwMyIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iLTE0MzkiLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9Ii0yMDE5Ii8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSItMTQ5MSIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iLTEyODUiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9Ii0xMzA5Ii8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSItNDA5Ii8+CisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSItMTYyIi8+CisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSI5MCIvPgorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMzE5Ii8+CisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIyNDgzIi8+CisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIzNTciLz4KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjE2ODEiLz4KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjE1NzIiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjE1NzUiLz4KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjMwMiIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMTA3NiIvPgorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMTU1NSIvPgorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMTk3MSIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMjM5Ii8+CisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSItMzUxIi8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSItNTI3Ii8+CisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSItMjE1Ii8+CisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSItNzgyIi8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSI0NTIiLz4KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjYwIi8+CisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSItODQ4Ii8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSItMTM4MyIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iLTk4OSIvPgorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iLTMyNSIvPgorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iLTM4MiIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iNjAiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9Ijg4NCIvPgorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iNjU5Ii8+CisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSItMjY0Ii8+CisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSItOTkwIi8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIyODkiLz4KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9Ii0yOTIiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9Ii01NDIiLz4KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjM2NiIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iOTA5Ii8+CisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSI5OTIiLz4KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjE4MDgiLz4KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9Ii0xMDQ5Ii8+CisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSI1NDMiLz4KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjM3NyIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iLTYxOSIvPgorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iLTcxMiIvPgorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMTQ1OSIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iMjU3Ii8+CisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSItNjk2Ii8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSItMTA4NSIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iMjg3MyIvPgorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iNDIxIi8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSI1NTciLz4KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjE2OTYiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjI0ODAiLz4KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9Ii03MDciLz4KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9Ii0yMzciLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjAiLz4KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjE3MzAiLz4KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjI5OTAiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjI3NDYiLz4KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9Ii0xNzQiLz4KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9Ii0xOTQiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjQ4NSIvPgorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iLTcyOSIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iNzAiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjkwNyIvPgorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMTI5NyIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iNzc2Ii8+CisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSIxMjMiLz4KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjE1NTciLz4KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjEyMDgiLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjI1MyIvPgorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iNTA4Ii8+CisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSItMjc0Ii8+CisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSItNTcxIi8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxNDYiLz4KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjU2NyIvPgorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTIyMiIvPgorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iNzMzIi8+CisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSI4Ii8+CisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIxMDQxIi8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIzMjIyIi8+CisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSIyNTc2Ii8+CisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIyNDIyIi8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSItMTAzNiIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iLTc0NiIvPgorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iLTY2MSIvPgorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iNDUiLz4KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjM5ODMiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjE2OTQiLz4KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjcwOSIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iLTg0NCIvPgorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iLTYwNSIvPgorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iLTY2MSIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iLTQzNiIvPgorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iLTExNTUiLz4KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9Ii03MTYiLz4KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9Ii04NzciLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9Ii0xMDI0Ii8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTE4NSIvPgorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iODg0Ii8+CisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIxMTAzIi8+CisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIxNzg5Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIzMTMyIi8+CisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSItNDAzMiIvPgorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iLTIxMTQiLz4KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9Ii00OTgiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjE3NCIvPgorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iMjEwIi8+CisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSI3MTAiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjIxMjciLz4KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjIzODYiLz4KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjE5MTYiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjUzIi8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIxMDcwIi8+CisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSI1NjQiLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9Ii0xMTgxIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIzNCIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iLTg0NyIvPgorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iLTEzMTgiLz4KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9Ii0xODQyIi8+CisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSItMTQwNCIvPgorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iLTExMjkiLz4KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9Ii0zNzIiLz4KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjI2OSIvPgorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iNTcyIi8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIxNDEzIi8+CisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIxNTg2Ii8+CisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIzMTYxIi8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIyMzQ3Ii8+CisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIyNjI3Ii8+CisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIyNTAyIi8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIyODE4Ii8+CisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxNTgiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9Ii01NDUiLz4KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9Ii0zNzAiLz4KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9Ii02MjQiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9Ii04NDciLz4KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjIzMTUiLz4KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjEwOTkiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9Ii00MTciLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNDIyMjAwIiBoPSIzZGMxYThkZSI+CisJCQkJCTx2YWwgbz0iMCIgdj0iLTQzMDciLz4KKwkJCQkJPHZhbCBvPSJlMDgiIHY9Ii00MTY5Ii8+CisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iLTQwOTYiLz4KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSItNDA4NyIvPgorCQkJCQk8dmFsIG89IjM4MzUiIHY9Ii0zOTYzIi8+CisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iLTM5NjkiLz4KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSItNDQxMSIvPgorCQkJCQk8dmFsIG89IjYyNjUiIHY9Ii01MzU4Ii8+CisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iLTYzMTciLz4KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSItNzI5OCIvPgorCQkJCQk8dmFsIG89IjhjOTYiIHY9Ii03NTE5Ii8+CisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iLTczNTEiLz4KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSItNjg5MCIvPgorCQkJCQk8dmFsIG89ImI2YzUiIHY9Ii02NDY1Ii8+CisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImUwZjYiIHY9Ii03Ii8+CisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iLTciLz4KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjExOTM3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjMyMTllIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjNkODU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjVhODY3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjViNjc2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89IjczMjI3IiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSItNiIvPgorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSItOSIvPgorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSItNyIvPgorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhiYmViIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhkODBiIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSItOSIvPgorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSItOSIvPgorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSItOSIvPgorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSItOCIvPgorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSItOCIvPgorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjliOTA2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjljNzE2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjllMzM2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSItNyIvPgorCQkJCQk8dmFsIG89ImExYjc3IiB2PSItNjMyNCIvPgorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSItMzUxNiIvPgorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSItOTYzIi8+CisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjY0NCIvPgorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSI3MDAiLz4KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iOTQyIi8+CisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9Ijk5Ii8+CisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjQ2NCIvPgorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSI5MTIiLz4KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iMjg5Ii8+CisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjMyIi8+CisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjQ2Ii8+CisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjIwMCIvPgorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSI5MjEiLz4KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iNzQ0Ii8+CisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9Ii01NjEiLz4KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iLTY4Ii8+CisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjMxIi8+CisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjE0MiIvPgorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSItMTIzIi8+CisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9Ii00NTEiLz4KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iLTcyOSIvPgorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSItNzEyIi8+CisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9Ii0xNTg0Ii8+CisJCQkJCTx2YWwgbz0iYjdiMDciIHY9Ii0xOTgzIi8+CisJCQkJCTx2YWwgbz0iYjg5MTciIHY9Ii0xNzUzIi8+CisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9Ii0xNzU4Ii8+CisJCQkJCTx2YWwgbz0iYmE1MzciIHY9Ii0xODkxIi8+CisJCQkJCTx2YWwgbz0iYmIzNDciIHY9Ii04MjciLz4KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iLTg4MiIvPgorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSItODk5Ii8+CisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjY0NCIvPgorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI0MTciLz4KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iNTI0Ii8+CisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjQwMCIvPgorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIzNzIiLz4KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNDg0Ii8+CisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjU5MSIvPgorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSIzMzYiLz4KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iNzQxIi8+CisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjExNCIvPgorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI1MDciLz4KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iLTUxIi8+CisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjEzNiIvPgorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSIzMzQiLz4KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMjM1Ii8+CisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjExNiIvPgorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSItNDE3Ii8+CisJCQkJCTx2YWwgbz0iY2NjODciIHY9Ii0yMzIiLz4KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iLTE4NCIvPgorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSItMjE5Ii8+CisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9Ii0xMzQiLz4KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iLTUxIi8+CisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjE0MyIvPgorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIwIi8+CisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjExIi8+CisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjYwMCIvPgorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSI2NDQiLz4KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iODM2Ii8+CisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjEwNjgiLz4KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTIxMyIvPgorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSItMTM1Ii8+CisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9Ii03NTUiLz4KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iLTE0OTgiLz4KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iLTIwMTEiLz4KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iLTI1NjEiLz4KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iLTIzMzgiLz4KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iLTI4OTUiLz4KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iLTI3ODAiLz4KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iLTI5MTIiLz4KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iLTI5MTMiLz4KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iLTI4MzIiLz4KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iLTMwMTgiLz4KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iLTQwOTkiLz4KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iLTM5NzkiLz4KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iLTMzNzAiLz4KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iLTM0MjgiLz4KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iLTI1NTEiLz4KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iLTIxODkiLz4KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iLTE3NTciLz4KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iLTQ3NyIvPgorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSItNzA5Ii8+CisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9Ii02NTMiLz4KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iLTY1MyIvPgorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSItNDY4Ii8+CisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9Ii0yMTEyIi8+CisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9Ii0yMjM5Ii8+CisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9Ii0zMTk4Ii8+CisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9Ii00MDg3Ii8+CisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9Ii00MzA4Ii8+CisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9Ii00NTUwIi8+CisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9Ii00NjI4Ii8+CisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9Ii00MzAxIi8+CisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9Ii00NjA4Ii8+CisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9Ii00ODU3Ii8+CisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9Ii00NjEzIi8+CisJCQkJCTx2YWwgbz0iZjZmODAiIHY9Ii00ODE4Ii8+CisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9Ii00MjQ0Ii8+CisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9Ii0zOTE1Ii8+CisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9Ii0zODA1Ii8+CisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9Ii0zMDI1Ii8+CisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9Ii0zMDM0Ii8+CisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9Ii0zMjk1Ii8+CisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9Ii0yNjgwIi8+CisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9Ii0yNTMwIi8+CisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9Ii0yMDgzIi8+CisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9Ii0xOTgyIi8+CisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSItMTc5MCIvPgorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iLTE3OTEiLz4KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9Ii0yMDc3Ii8+CisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSItMjcyNCIvPgorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iLTQwMTYiLz4KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9Ii00MzIwIi8+CisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSItNDMzOSIvPgorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iLTQ3MjUiLz4KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9Ii00MzM4Ii8+CisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSItMzkwNiIvPgorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iLTQxMTkiLz4KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9Ii00MzIyIi8+CisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSItNDM0NSIvPgorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iLTQxNjkiLz4KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9Ii00MzU0Ii8+CisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSItNDE2MCIvPgorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iLTQ0NTMiLz4KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9Ii0zODk1Ii8+CisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSItMzI4MSIvPgorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iLTI4NjYiLz4KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9Ii0yNjYzIi8+CisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSItMTc5NCIvPgorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iLTE3OTciLz4KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9Ii0xODIzIi8+CisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSItMTc4MiIvPgorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iLTE1ODUiLz4KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9Ii0yMDgyIi8+CisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSItMjg4NSIvPgorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iLTM1NTgiLz4KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9Ii00ODM4Ii8+CisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSItNDMyMiIvPgorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iLTUzOTMiLz4KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9Ii00NDU2Ii8+CisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSItNDI3OSIvPgorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iLTQzNTQiLz4KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9Ii0zOTAwIi8+CisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSItNCIvPgorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iLTQiLz4KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9Ii00Ii8+CisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iLTIiLz4KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iLTEiLz4KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSItMiIvPgorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9Ii0yIi8+CisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSItNCIvPgorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iLTMiLz4KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9Ii0zIi8+CisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSItMyIvPgorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1NmM1NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMCIvPgorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iLTY4NDQiLz4KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9Ii02ODQ4Ii8+CisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSItNzI3NiIvPgorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iLTY3MTgiLz4KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9Ii02MDQ0Ii8+CisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSItNTg3OSIvPgorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iLTYwNjciLz4KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9Ii01NDg0Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSItNTQzNyIvPgorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iLTUzNDIiLz4KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9Ii00OTgxIi8+CisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSItNTE5MyIvPgorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iLTYzMjEiLz4KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9Ii02OTIzIi8+CisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSItNzg4OSIvPgorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iLTEzNDY0Ii8+CisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSItMTMzNTQiLz4KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9Ii0xMjgxMyIvPgorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iLTExOTk2Ii8+CisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSItMTI0MzYiLz4KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9Ii0xMTY1OCIvPgorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iLTEyNTA4Ii8+CisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSItMTE5NjUiLz4KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9Ii03NTY3Ii8+CisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSItODEwMCIvPgorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iLTc2NzYiLz4KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9Ii02NTY1Ii8+CisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSItNjE2NyIvPgorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iLTU2NjAiLz4KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9Ii00NDc1Ii8+CisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSItNDMwNiIvPgorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iLTQyNTIiLz4KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9Ii00MTI1Ii8+CisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSItNDEyNSIvPgorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iLTQ0OTgiLz4KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9Ii01MTM3Ii8+CisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSItNTk2NyIvPgorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iLTYzNTQiLz4KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9Ii01OTY1Ii8+CisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSItNjYxNSIvPgorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iLTY2MTkiLz4KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9Ii02MTk5Ii8+CisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSItNjIzNSIvPgorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iLTYzMTMiLz4KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9Ii02MDc5Ii8+CisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSItNjA3NSIvPgorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iLTIzOTAiLz4KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9Ii0yNjAwIi8+CisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSItMzA1MSIvPgorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iLTMzMzgiLz4KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9Ii0yMjM4Ii8+CisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSItMjEzNyIvPgorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iLTE1NDYiLz4KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9Ii0xNjcwIi8+CisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSItOTY5Ii8+CisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSItMTEyMyIvPgorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iLTEwNzIiLz4KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9Ii00ODEiLz4KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9Ii01MzciLz4KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9Ii05OTUiLz4KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9Ii0xODE5Ii8+CisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSItMjYzNiIvPgorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iLTI5MjAiLz4KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9Ii0yNTk0Ii8+CisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSItMjg5OCIvPgorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iLTIxNzMiLz4KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9Ii0yMDkyIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIzMTEiLz4KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjM5OSIvPgorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iMzQ4NiIvPgorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMzM1NyIvPgorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMzY3MCIvPgorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iMzU4MCIvPgorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iNTM5OCIvPgorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iNTQ3OCIvPgorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iNTYxOCIvPgorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iNTY1OSIvPgorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iNTkyMyIvPgorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iNjY1MSIvPgorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iNjY1NCIvPgorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iNjcxMyIvPgorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iNjg4NSIvPgorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iNjg5MyIvPgorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iNjcwNSIvPgorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iNTg1MyIvPgorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iNTU0NSIvPgorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iNTU4OSIvPgorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iLTMyMTkiLz4KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9Ii0zNjIwIi8+CisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSItMzYyMyIvPgorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iLTM0NzIiLz4KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9Ii0zNjMwIi8+CisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSItMzcyMyIvPgorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iLTYwMzMiLz4KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9Ii02NzUyIi8+CisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSItNjY0NyIvPgorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iLTY3NzgiLz4KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9Ii02Nzk0Ii8+CisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSItNjU5MyIvPgorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iLTYxMzYiLz4KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9Ii01NjUzIi8+CisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSItNDkxMCIvPgorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iLTQ5MDgiLz4KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9Ii00ODAzIi8+CisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSItMTk3MCIvPgorCQkJCQk8dmFsIG89IjFlOGFiNSIgdj0iLTE4MjAiLz4KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9Ii0xODIxIi8+CisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSItMjI3MSIvPgorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iLTIzMzIiLz4KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9Ii0yNjQ2Ii8+CisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSItMjY0NCIvPgorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iLTI3NDkiLz4KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9Ii0yNzI4Ii8+CisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSItMjU4NyIvPgorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iLTI1NDgiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9Ii0yMzc3Ii8+CisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSItMjMzOSIvPgorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iLTI1NjYiLz4KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9Ii0yNzg0Ii8+CisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSItMzE5MSIvPgorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iLTM1ODEiLz4KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9Ii0zNTkxIi8+CisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSItMzEyNCIvPgorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iLTMzMzciLz4KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9Ii0zMTQyIi8+CisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSItMjgwNiIvPgorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iLTI0ODAiLz4KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9Ii0yNDk3Ii8+CisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSItMjE3MSIvPgorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iLTIxMzMiLz4KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9Ii0yMTU5Ii8+CisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSItMjUwMCIvPgorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iLTIzOTUiLz4KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9Ii0zNDY5Ii8+CisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSItNDUxMiIvPgorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iLTUzNTUiLz4KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9Ii01OTE1Ii8+CisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSItNTc3MSIvPgorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iLTUyODciLz4KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9Ii01Mzg2Ii8+CisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSItNTk3NiIvPgorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iLTYxMDAiLz4KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9Ii02NzQyIi8+CisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSItNjMxMiIvPgorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iLTU1MzMiLz4KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9Ii01NDU1Ii8+CisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSItNDYzMCIvPgorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iLTQzNDgiLz4KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9Ii00MDQ2Ii8+CisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSItMzg1NSIvPgorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iLTM1MTkiLz4KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9Ii0zMTMxIi8+CisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSItMzAxNCIvPgorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iLTI5MDQiLz4KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9Ii0yODI2Ii8+CisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSItMzY4MCIvPgorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iLTQ1MDciLz4KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9Ii01ODQ0Ii8+CisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSItNjE5NSIvPgorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iLTYxNjUiLz4KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9Ii02MTQyIi8+CisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSItNjIyMyIvPgorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iLTU5MzgiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9Ii01OTI2Ii8+CisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSItNTU1NyIvPgorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iLTYyNDAiLz4KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9Ii01NzUwIi8+CisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSItNTc3MiIvPgorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iLTU0NjgiLz4KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9Ii01MzkzIi8+CisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSItNDU0MyIvPgorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iLTM4NzYiLz4KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9Ii0zNjIyIi8+CisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSItMzI5MiIvPgorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iLTE2ODEiLz4KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9Ii0yMDgyIi8+CisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSItMjA0MyIvPgorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iLTE2NzUiLz4KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9Ii0xNzg1Ii8+CisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSItMzQ5NCIvPgorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iLTQwODAiLz4KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9Ii00NDU0Ii8+CisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSItNDgxNiIvPgorCQkJCQk8dmFsIG89IjIyZDM5NyIgdj0iLTQ0MDUiLz4KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9Ii00NjIwIi8+CisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSItNDgyMCIvPgorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iLTQ2NDMiLz4KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9Ii00NDM1Ii8+CisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSItNTM5NyIvPgorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iLTU1NTgiLz4KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9Ii01ODgzIi8+CisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSItNTIwNyIvPgorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iLTUyMDMiLz4KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9Ii01MjUzIi8+CisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSItNDM0MiIvPgorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iLTQxOTQiLz4KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9Ii0zOTkxIi8+CisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSItMzE5NSIvPgorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iLTMzMjgiLz4KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9Ii0zMTkxIi8+CisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSItMjk2NiIvPgorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iLTI5NTkiLz4KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9Ii0yOTE2Ii8+CisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSItMzYyMCIvPgorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iLTQ1NjIiLz4KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9Ii01MDEzIi8+CisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSItNTc5MyIvPgorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iLTY2MDUiLz4KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9Ii02Nzg3Ii8+CisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSItNjczMiIvPgorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iLTY0MzUiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9Ii02NDE1Ii8+CisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSItNjI2MSIvPgorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iLTUzNzEiLz4KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9Ii01NzAzIi8+CisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSItNTY2OCIvPgorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iLTU4MTAiLz4KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9Ii01NDk1Ii8+CisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSItNTM2OCIvPgorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iLTQ1MzkiLz4KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9Ii00MDAzIi8+CisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSItMzQ4NyIvPgorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iLTM1OTciLz4KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9Ii0zNTc1Ii8+CisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSItMzQyMiIvPgorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iLTM2MTAiLz4KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9Ii00MDY5Ii8+CisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSItNDIwOSIvPgorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iLTQ5NzciLz4KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9Ii01ODQ1Ii8+CisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSItNTY2MiIvPgorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iLTE1MTU1Ii8+CisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSItODYyMSIvPgorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iLTQ2MDkiLz4KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9Ii02MzI5Ii8+CisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSItNjEyMCIvPgorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iLTU4MTkiLz4KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9Ii01ODAwIi8+CisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSItNTYyNyIvPgorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iLTUzMTgiLz4KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9Ii01NTQzIi8+CisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSItNDkxNiIvPgorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iLTQ1ODkiLz4KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9Ii00NjcwIi8+CisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSItMzY5NCIvPgorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iLTM0OTEiLz4KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9Ii0zNTgyIi8+CisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSItMzY4MyIvPgorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iLTM2MDgiLz4KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9Ii0zNjgxIi8+CisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSItMzg1MCIvPgorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iLTM5MjMiLz4KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9Ii0zOTU1Ii8+CisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSItNDQ2NyIvPgorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iLTQyNTciLz4KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9Ii0zOTE1Ii8+CisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSItMzg5NyIvPgorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iLTM1MzEiLz4KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9Ii0zNzk4Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSItMzYyOCIvPgorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iLTQ1NDAiLz4KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9Ii01MTcxIi8+CisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSItNTAzOCIvPgorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iLTUwMjgiLz4KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9Ii01MDI5Ii8+CisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSItMzk5MyIvPgorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iLTM1NTEiLz4KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9Ii0zMjA2Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjY3NDYwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjIyMTIzOjEzNzo4ODo3NjoxMDM6Njk6ODk6NjA0Nzo2NTcxOjIxMzQ6NjQxNDoyMjIzOjI3MjcuMjMxOjE0MzUuNjc1OjUuOTc5OjAuMDY3OjA6NDE3MTo0MTAzOToyOTA1Mjo0MjEwNDoxMjIxODoyNDcyMToxMzUwNDo4OTc1OjExMTUzOjI5OTA6ODY2NTo5NzU5OjExNzQyIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjY3MzgwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjA6MDowOjA6MDowOjA6MjQ3MjoyMjUwNToyNTE2MDoxNjQyNTozMDAxMjoyMzUxNC4yMjk6MTE2NzUuMzYyOjkuMjcyOjAuNDE2OjA6NjQ5MTozMjIxOjI4Njc6NDIwNDoyMjgyMjozMDQ3OjYyNjM6MTUzNDI6OTc4NTozMjQyNDoyMzM0NjoyMTU3ODoyMzUwOCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI2NzM0MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSI3Mjg5ODoxOTE6MTg4OjE3NjoxNzg6MTc0OjE4MToxMDQ0MToxNDA3OToxMzYwOjQ2NjY3Ojc0MTMxOjgwOTk2LjEzOjUwMzI0LjMyNjozMi4xODg6MC4wMzg6MDo0NDAyNzoyMDAyODk6MTA5MjE2OjUyNDYxOjEyOTUxOjc1ODk2OjY5MTk2OjEwNDg1MjoxMTcwMzY6OTY5MDM6MTIwNzE0OjEyNDMwODo5NjIwNyIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI2NzMwMDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjA6MDowOjA6MDowOjM0NzY6MzIyNjo1NTk3OjQ4NTM6MDowOjA6MC4wMDE6MC4xMzc6MDowOjA6MDowOjUwNzM1OjU5MjA1OjA6MDowOjA6MDowOjAiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMjYyNzQ2MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjoxMzA1OjoyODY5Ojo0NDgyOjo2MDY2Ojo3Mzk2Ojo4NTczOjoxMDI2Mjo6MTE5MjI6OjEzNzczOjoxNTQ5Mjo6MTc1MjI6OjE5NTQ0OjoyMTQ1Mjo6MjIwNzA6OjIyMDc1OjoyMjA4MDo6MjIwODQ6OjIyMDg1OjoyMjA5MDo6MjIwOTc6OjIyMTAzOjoyMjEwOTo6MjIxMTY6OjA6OjY6OjEzOjoyMDo6Mjc6OjMyOjozNDo6NDE6OjQ4Ojo1NDo6NjE6OjY4Ojo3NTo6ODI6Ojg5Ojo5Njo6MTAzOjoxMTA6OjExMDo6MTExOjoxMTY6OjExOTo6MTIzOjoxMjkiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6NTo6NTo6Nzo6MTE6OjEyOjoxMjo6MTc6OjI0OjozMDo6Mzc6OjQ0Ojo1MTo6NTg6OjY1Ojo2OTo6NzE6OjcxOjo3MTo6NzM6Ojc1Ojo3Njo6NzY6OjgxOjowOjo2OjoxMzo6MjA6OjI3OjozNDo6NDA6OjQ0Ojo1MDo6Ojo1MTo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTQ6OjYwOjo2Mzo6Njk6OjAiLz4KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iNjo6MTM6OjIwOjoyNzo6MzQ6OjM4Ojo0NDo6NDY6OjQ2Ojo0Nzo6NTI6OjU4Ojo2NTo6NjY6OjY2Ojo2Nzo6Njk6OjY5Ojo3MDo6NzY6OjgzOjo4OTo6OTY6OjA6OjU6OjEyOjoxOTo6MjU6OjMwOjozMTo6MzU6OjM3OjozNzo6Mzc6OjM3OjozODo6NDQ6OjQ1Ojo0NTo6NDU6OjQ1Ojo0NTo6NDU6OjQ4Ojo1MTo6NTY6OjYyOjowIi8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjY6OjE0OjoyMTo6Mjg6OjM1Ojo0Mjo6NDc6OjUwOjo1MDo6NTA6OjUyOjo1OTo6NjU6OjY5Ojo3Mjo6NzQ6Ojc1Ojo3NTo6NzU6Ojc1Ojo3ODo6Nzk6OjgyOjowOjo3OjoxNDo6MjE6OjI4OjozNDo6Mzg6OjQ0Ojo0NTo6NDU6OjQ5Ojo1Njo6NjM6OjcwOjo3Njo6ODA6OjgzNTo6MTY3NTo6MjAzODo6MjAzOTo6Mjg1Njo6MzE1ODo6MzYwNzo6NDQzMTo6MCIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSI2Mjk6Ojc5Nzo6MTQ1Njo6MjM4Mjo6MjQ3Njo6MjQ3Nzo6MjgyMTo6MjgyMTo6MjgyMTo6OjoyODIxOjoyODIxOjoyODU2OjoyODY1OjoyODY1OjozMDQ5OjozMjIzOjozMjY3OjozNTMyOjo0MzA0Ojo1MTQ3Ojo1MTQ3Ojo1NDQ5OjowOjoxMDE6OjEwMjo6MjUyOjo1OTI6OjYwNTo6NjA1Ojo2MDU6OjYwNTo6NjEyOjo2MTI6OjYxMjo6NjEyOjo2MTI6OjYxMjo6NjEyOjo2Nzk6Ojc2Nzo6NzY3Ojo3Njc6Ojc2Nzo6NzY3Ojo3Njc6OjkxMDo6MDo6MTE1OCIvPgorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSIyMjg5OjoyNzAxOjozMDc2OjozMDc2OjozMzg1OjozOTA0OjozOTA0OjozOTA0OjozOTA0OjozOTA0OjozOTA0OjozOTA0OjozOTA0OjozOTA0OjozOTA0OjozOTExOjo0MDIzOjo0NTk5Ojo1MjM3Ojo1NDk0Ojo1NzgwOjo2MDcyOjowOjo2MjI6OjYyMjo6NjIyOjo2MjI6OjYyMjo6NzE2Ojo4MTk6OjgxOTo6ODE5Ojo4MTk6OjgxOTo6ODE5Ojo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6OjEwMjQ6OjA6OjExMjciLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iMTk1NDo6MjE3Mzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM3Nzo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4MTo6MjM4NDo6MjQwMDo6MjQwMDo6MDo6MTYzOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjIwNDo6MzMwOjo3NTE6OjE0MDA6OjE0MzM6OjE0MzM6OjE0MzM6OjE0MzUuMTo6MTQzNS4xOjoxNDM1LjE6OjE0MzUuMTo6MTQzNS4xOjoxNDM1LjE0NDo6MTQzNS4zNzU6OjE0MzUuMzgxOjowOjoxLjE3OSIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMi40ODY6OjMuODY5Ojo1LjI3ODo6NS44MDk6OjUuODExOjo1LjgxMTo6NS44MTE6OjUuODQzOjo1Ljk2Nzo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2OTo6NS45Njk6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDAxOjowLjAxNDo6MC4wMzI6OjAuMDQ6OjAuMDQ2OjowLjA0OTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTM6OjA6OjAuMDA1Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIwLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwOTo6MC4wMDk6OjAuMDA5OjowLjAwOTo6MC4wMDk6OjAuMDA5OjowLjAxNDo6MDo6MC4wMDQ6OjAuMDI6OjAuMDMxOjowLjA0Mjo6MC4wNDQ6OjAuMDQ0OjowLjA0NDo6MC4wNDQ6OjAuMDQ0OjowLjA0NDo6MC4wNDQ6OjAuMDQ3OjowLjA1OjowLjA1MTo6MC4wNTQ6OjAuMDU0OjowLjA1NDo6MDo6MDo6MDo6MDo6MTc1OjoxODc4OjowOjoyMzAzIi8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSI1MDE2Ojo3ODg5OjoxMDgyNTo6MTI3ODU6OjEzNDI4OjoxNDU2ODo6MTYyODE6OjE3ODcwOjoxODc1Nzo6MTk2NzM6OjIyMzE0OjoyNTMxNzo6MjgwMTc6OjMwNjExOjozMjU3MTo6OjozMzA3ODo6MzM1NzA6OjM0ODY1OjozNjEyNDo6Mzc2NzA6OjM5OTA4OjowOjo5Nzg6OjI1NDA6OjQyMzY6OjU5OTI6OjY3NzM6OjY4MTg6OjY5MTU6Ojc2NDM6Ojg1MTA6Ojg2MTg6Ojo6OTM1NDo6MTAzMzQ6OjEwODU3OjoxMTE5MDo6MTEzODc6OjExMzg3OjoxMjgxODo6MTU1NDc6OjE5MDExOjoyMTA3Nzo6MjI2MTA6OjI1NjgyOjowOjoyNjgyOjo1NzU3Ojo5MDk0Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIxMjQzOTo6MTQ4MTA6OjE2NDI2OjoxODE3Mjo6MjA0NjI6OjIyODUxOjoyNDk1Nzo6MjY5MTI6OjI5MjAwOjozMTc4OSIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iODE5Nzo6ODI2NDo6ODM2NTo6ODM2NTo6ODk5Njo6OTk5Njo6MTA1NzA6OjEwNTcwOjoxMDU3MDo6MTA4MDc6OjA6OjM4ODo6Nzc2OjoxNjU1OjoyMzc0OjoyMzkxOjoyMzkxOjoyNDI5OjozMzMyOjozNjc3OjozNzY4OjozODUxOjo0Mjk0Ojo0OTMwOjo1ODQ3Ojo2NjI1Ojo3ODUyOjo5NDkyOjoxMTMyODo6MTMzNzY6OjE1NjIwOjoxNzk0Njo6MjAxNzA6OjIyNDY5OjowOjoxOTc5Ojo0MTc5Ojo0ODE3Ojo1MzAyOjo1NjEyOjo1ODAyOjo2MDc1Ojo2Nzg3Ojo3MTcyOjo3NDg5Ojo3NjY4Ojo3ODY3Ojo4MTg0Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSI4MjcwOjo4MjcwOjo4MjcwOjo4MjcwOjo4MjcwOjo4Mjc5Ojo4NDI1Ojo4NzY2Ojo5MjYxOjoxMTM3OTo6MDo6OTY3OjoyMjMyOjozMjI0OjozNTg0OjozNzA4OjozNzQyOjo0MTkyOjo0MzczOjo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0Mzc5Ojo0NDY4Ojo0ODE2Ojo1MTExOjo1NTMzOjo2MzkzOjo2NzQwOjo3Mzk0Ojo3Mzk0Ojo3OTg4OjowOjoxNDc5OjoyNDA3OjoyOTA3OjozMzQxOjozMzQ3OjozMzQ3OjozNTIyOjo0NTIxOjo0NzAyOjo1MTA0Ojo1Mzk5Ojo2NTExOjo2NTExIi8+CisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSI2NTExOjo2NTExOjo3NTU0Ojo4MDQ2Ojo4MDQ2Ojo4MDg0Ojo4NzgxOjo5NDM3Ojo5NDM3OjoxMDAzNDo6MDo6MjU4OjoyNTg6OjI1ODo6MjU4OjoyNTg6OjMwMzo6NTQxOjoxMDk3OjoxMTIyOjoxMTIyOjoxMTIyOjoxMTIyOjoxMzk3OjoxNDI5OjoyMDUyOjoyNjM4OjoyNjM4OjoyNjM4OjoyNjM4OjoyNjM4OjoyNzc5OjoyNzc5OjoyNzc5OjowOjoyMTE6OjcxNjo6OTkzOjo5OTM6Ojk5Mzo6OTkzOjoxMDU4OjoxMDYwOjoxMDYwOjoxMDYwOjoxMDYwOjoxMTIzOjoxNjQwIi8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIzMjgwOjozOTUyOjozOTYyOjozOTYyOjozOTYyOjo0Mjk3Ojo1NTg2Ojo2OTk4Ojo3OTU2OjowOjo0OTI6OjE1NzA6OjI2ODM6OjM1ODU6OjM2MTU6OjM2MTg6OjM2NTk6OjM2NTk6OjM2NTk6OjM2NTk6OjM5NzM6OjY3Njc6Ojg2NDQ6Ojg3MTc6Ojg3MTg6Ojg3MTg6Ojg3MTg6Ojg3MTg6Ojg3MTg6Ojg3MTg6Ojg4OTg6Ojg4OTg6OjkyMDU6OjA6OjUwMjo6MTgyNTo6MzcyMjo6NTc1ODo6NzIzNzo6ODE1OTo6ODIyNjo6ODIyNjo6ODIyNjo6ODIyNjo6ODIyNjo6ODIyNjo6ODIyNjo6ODIyNiIvPgorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iODIyNjo6ODI0MDo6ODUwNDo6ODk4MDo6OTQ2Njo6MTAzMDg6OjEwNjY2OjoxMDY2Njo6MTA3MzkiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMjYyNzM4MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjY4MDo6MTc1Mzo6MjQzNjo6MjQzOTo6MjQ3MTo6MjQ3Mjo6MjQ3Mjo6MCIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSIyNzM6OjMwNDo6MzA0OjozMDQ6OjM5Mjo6MTQ2Nzo6MTk2MTo6MjczNTo6NDUxMTo6OjoxMjExNDo6MTYzMzc6OjE4MjUyOjoxODQ1Mjo6MTkwNTE6OjIwNzI0OjoyMTExNTo6MjE2MTE6OjIxNjE2OjoyMTYxNjo6MjE2NDc6OjIyNDYwOjoyMjUwNTo6MDo6MTQyODo6MTc4Njo6MTgyMTo6MTgyMTo6MjEwMDo6MzExNjo6NDYwNjo6NTcwMDo6NjI2Mzo6NzIzMjo6ODMyMTo6OTIwMjo6OTcwNjo6MTAxMDk6OjEwNTY3OjoxMTgyNzo6MTIzNTY6OjE0ODE4OjoxNzQxNjo6MjAxODY6OjIyNjI4OjoyNDQ2Nzo6MjUxNjA6OjA6OjE2Ii8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjE2OjoxNjo6MTg6Ojc2MTo6MjMxNzo6MjM0NTo6MzAzMTo6NTAxMDo6NzY4MTo6MTA3MTk6OjEzNDkxOjoxNDA3OTo6MTQ1NDE6OjE0Nzg4OjoxNTAyODo6MTU1NTE6OjE2MTgyOjoxNjE4Mjo6MTYzMjc6OjE2MzUxOjoxNjM5NDo6MTY0MjQ6OjA6OjEyNTQ6OjI1MjE6OjMzMDQ6OjQyMTQ6OjYxODk6Ojg1NDI6Ojg4ODQ6Ojk3MTQ6OjEwOTA3OjoxMjQ0Nzo6MTM2MDQ6OjE0NDA3OjoxNDkyODo6MTY4NTU6OjE4MzIzOjoyMDAxNjo6MjIzMDY6OjIzOTUyOjoyNTUxMTo6MjY3MDA6OjI3ODU4OjoyOTUxMjo6MzAwMTI6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iMTQ6OjE0OjoxNjo6ODQ4OjoyNTEyOjo0MTE0Ojo1NTU2Ojo3MDcwOjo3OTY3Ojo5NDI0OjoxMDgxMjo6MTE3MjI6OjEyODI5OjoxMzk1MDo6MTUwMzM6OjE3MDk1OjoxOTQyMzo6MjA2NzA6OjIxMTI5OjoyMTgyODo6MjI2MDg6OjIzNDQ0OjowOjoxMDI0OjoxNTA4OjoxNzg2OjoxOTg1OjoyOTUxOjo0OTAwOjo2NTg5Ojo4MDUzOjo4ODQ5Ojo4OTI5Ojo4OTI5Ojo4OTI5Ojo5NTAyOjoxMDM4MDo6MTEyMDA6OjExNjY5LjQzOjoxMTY3MC43MTQ6OjExNjcxLjUwMTo6MTE2NzMuMjM2OjoxMTY3NC4zMjQ6OjExNjc0LjYxNjo6MTE2NzQuODg3OjoxMTY3NS4zNDU6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjA6OjA6OjA6OjA6OjAuNjMyOjoxLjU3OjoyLjc4Nzo6NC4zODk6OjUuMzUzOjo2LjY3Njo6Ny44MjU6OjguNDczOjo5LjA1OTo6OS4wNzo6OS4wODM6OjkuMTEzOjo5LjE0OTo6OS4xODY6OjkuMjIyOjo5LjI1NDo6OS4yNjM6OjkuMjY3OjowOjowLjA1NDo6MC4wNzg6OjAuMDk0OjowLjExMzo6MC4xNDk6OjAuMjo6MC4yMjk6OjAuMjM0OjowLjI0MTo6MC4yNDQ6OjAuMjQ1OjowLjI0NTo6MC4yNDU6OjAuMjQ1OjowLjI0NTo6MC4yNDY6OjAuMjc2OjowLjMwOTo6MC4zNDg6OjAuMzgzOjowLjQwODo6MC40MTU6OjAuNDE2OjowOjowLjAyMiIvPgorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMC4wMzE6OjAuMDMyOjowLjAzMzo6MC4wNDU6OjAuMDc2OjowLjE6OjAuMTIxOjowLjE2MTo6MC4xOTc6OjAuMjI3OjowLjI1Mjo6MC4yNTc6OjAuMjY0OjowLjI3NTo6MC4yOTU6OjAuMzE1OjowLjMyMjo6MC4zMjk6OjAuMzMyOjowLjM0ODo6MC4zNTc6OjAuMzU3OjowOjowOjowOjowOjowOjowOjowLjAxNTo6MC4wNTE6OjAuMDYyOjowLjA2ODo6MC4wNzk6OjAuMDkxOjowLjA5NDo6MC4wOTQ6OjAuMDk3OjowLjEwODo6MC4xMjU6OjAuMTYxOjoxNDI1OjozNTYzOjo1MDg3Ojo2MDgxOjo2NDkxOjo2NDkxOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSIwOjowOjowOjowOjozOjo0OjoxNzo6MTc6OjE3OjoxNzo6ODM6OjgzOjo4Mzo6ODM6OjgzOjo6OjI4MTU6OjMyMjE6OjMyMjE6OjMyMjE6OjMyMjE6OjMyMjE6OjA6OjA6OjA6OjA6OjA6OjA6OjUwMzo6MjEyNDo6MjEyNDo6MjEzNTo6MjE4Nzo6OjoyMjIwOjoyMjIwOjoyMjIwOjoyMjIwOjoyMjMxOjoyODU3OjoyODY3OjoyODY3OjoyODY3OjoyODY3OjoyODY3OjoyODY3OjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIwOjowOjowOjowOjo1Ojo1Ojo1Ojo1Ojo1Ojo1Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIxNDEzOTo6MTQyMTg6OjE0NTM4OjoxNjQ2Nzo6MTY0OTM6OjE2NDkzOjoxNzkxMzo6MjAzODg6OjIyNTAzOjoyMjgyMjo6MDo6MjQyOjoyNDI6OjI0Mjo6MjQyOjo0NzM6OjE2MTQ6OjI3ODM6OjI3ODM6OjI3ODU6OjMwNDM6OjMwNDY6OjMwNDY6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjMwNDc6OjA6OjA6OjA6OjEwMTo6MTAxOjoxMDE6OjE1NTo6MTU1OjoxNTU6OjE1NTo6MTU1OjoxNTg6OjE1ODo6MTU4Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSIzMDM6OjY4OTo6MTI2Nzo6MzI5MTo6NTM2Mjo6NTk2NDo6NTk2NDo6NjIwNTo6NjI2Mzo6NjI2Mzo6MDo6Njc6Ojc4Ojo3ODo6Nzg6Ojk2OjoyNzk6OjEyNTc6OjIxNjk6OjMzODI6OjU2Mjg6Ojc2OTI6OjkxNDQ6Ojk4MDA6OjExNDEwOjoxMzE5Mzo6MTM3NzA6OjE0NTAwOjoxNDUwMjo6MTQ1MjY6OjE0NTI4OjoxNDY5Mzo6MTUzMzc6OjE1MzQyOjowOjowOjoxMjg6OjEyODo6MTI4Ojo2MzE6OjE5NjA6OjI4MzQ6OjI4NDc6OjI5OTQ6OjM0NDU6OjM0NDU6OjM0NDU6OjQwMTAiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjUzMDQ6OjY4MDI6OjcxODg6OjczMDQ6Ojc3Nzc6OjgxMTk6OjgxMTk6OjgyMzg6Ojk3MzE6Ojk3ODU6OjA6OjMyMDI6OjUxMzc6OjU1OTM6OjYzMDQ6Ojg1Nzc6OjEyMzIyOjoxMjU2MTo6MTI1NjE6OjEzOTYwOjoxNjUzMzo6MjAxMjc6OjIyODQxOjoyMjg2Mzo6MjMxMDY6OjIzMjQ3OjoyMzI0Nzo6MjQ5ODc6OjI2NDAyOjoyNzU5MDo6MjgwNzU6OjI5MjYzOjozMTQzODo6MzIzMjU6OjA6OjE3MTo6MTcxOjoyMDA6OjM0NDo6MTQ3Njo6MjQyNTo6MzM4Nzo6NDE0NTo6NTg3NTo6OTIxMDo6MTIyOTE6OjE1MTQ0OjoxNTE0NCIvPgorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMTUxNDQ6OjE1MTQ0OjoxNzI2Nzo6MjE4NjQ6OjIzMjMyOjoyMzM0Njo6MjMzNDY6OjIzMzQ2OjoyMzM0Njo6MDo6ODY6Ojg2Ojo4Njo6ODY6OjE4ODo6NzA5OjoxMzMzOjoyNTExOjo0MzEzOjo3NTkzOjoxMDQzNDo6MTA0MzQ6OjEwNDQzOjoxMDYyMjo6MTA4MTA6OjExMjkzOjoxMjMwMjo6MTQ4NTk6OjE3NDc2OjoxOTU2NTo6MTk3NDI6OjIxMDM1OjoyMTIzNDo6MDo6MTM6OjEzOjoxMzo6MTM6OjEzOjoxMzo6MjE2Ojo5Mjk6OjIwNTg6OjM3MDA6OjU2OTg6Ojg3ODI6OjExNjk4OjoxNDY2MyIvPgorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMTc3Njc6OjE4NTQ2OjoxOTE1NTo6MTkxNTU6OjE5MTU1OjoxOTE1NTo6MjA3MzA6OjIzMDE2OjoyMzUwOCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIyNjI3MzQwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjQxNzc6OjgzNDg6OjEyNDIxOjoxNjQ2Njo6MjAzODk6OjI0NTUwOjoyOTYzODo6MzUzOTA6OjQyMzI5Ojo0OTYwODo6NTY5ODI6OjY0MTE5Ojo3MDgxOTo6NzI4MjQ6OjcyODMxOjo3MjgzODo6NzI4NDU6OjcyODUxOjo3Mjg1OTo6NzI4NjY6OjcyODczOjo3Mjg4MTo6NzI4ODk6OjA6Ojg6OjE2OjoyNDo6MzI6OjQwOjo0ODo6NTY6OjY1Ojo3Mzo6ODE6Ojg5Ojo5Nzo6MTA1OjoxMTQ6OjEyMjo6MTMxOjoxMzg6OjE0NTo6MTUyOjoxNjA6OjE2Nzo6MTc1OjoxODMiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6ODo6MTY6OjIzOjozMTo6Mzk6OjQ3Ojo1NTo6NjM6OjcxOjo3OTo6ODc6Ojk2OjoxMDQ6OjExMjo6MTIwOjoxMjg6OjEzNTo6MTQyOjoxNTA6OjE1Nzo6MTY1OjoxNzI6OjE4MDo6MDo6ODo6MTc6OjI1OjozNDo6NDM6OjUxOjo1ODo6NjY6Ojo6Nzk6Ojg1Ojo5Mjo6OTg6OjEwNTo6MTExOjoxMTc6OjEyNDo6MTMxOjoxMzg6OjE0NTo6MTUzOjoxNjA6OjE2ODo6MCIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSI4OjoxNjo6MjU6OjMzOjo0MTo6NDk6OjU2Ojo2NDo6NzA6Ojc3Ojo4NDo6OTE6Ojk4OjoxMDU6OjExMTo6MTE4OjoxMjU6OjEzMjo6MTM5OjoxNDc6OjE1NDo6MTYyOjoxNzA6OjA6Ojc6OjE2OjoyNDo6MzI6OjQwOjo0ODo6NTU6OjYzOjo2OTo6NzY6OjgyOjo4OTo6OTY6OjEwMzo6MTA5OjoxMTY6OjEyMjo6MTI4OjoxMzU6OjE0Mzo6MTUwOjoxNTg6OjE2Njo6MCIvPgorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSI4OjoxNzo6MjU6OjM0Ojo0Mzo6NTE6OjU4Ojo2Njo6NzM6OjgwOjo4Nzo6OTQ6OjEwMTo6MTA4OjoxMTU6OjEyMjo6MTI5OjoxMzU6OjE0Mjo6MTUwOjoxNTc6OjE2NTo6MTcyOjowOjo4OjoxNzo6MjU6OjM0Ojo0Mjo6NTA6OjU4Ojo2NTo6NzI6Ojc4Ojo4NTo6OTI6OjEwMDo6MTA3OjoxMTQ6OjI1OTU6Ojc5MTM6OjEwMjk0OjoxMDQzOTo6MTA0Mzk6OjEwNDM5OjoxMDQ0MTo6MTA0NDE6OjAiLz4KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iMjo6NDo6OTo6OTo6OTo6OTo6Njk6OjE4MTo6MjM2Ojo6OjMyNzo6NDYxOjo3MjA6OjEzOTM6OjIyMTU6OjMwNTk6OjQ1OTM6OjYzNDI6OjgwNDE6Ojk5NDQ6OjExNTYxOjoxMjMxNDo6MTMxNjY6OjA6OjQ3Ojo0Nzo6NDc6OjQ3Ojo0Nzo6NDc6OjQ3Ojo0Nzo6NDg6OjU5Ojo4Nzo6MTI3OjoxMzQ6OjEzNTo6MTQyOjoxODI6OjUzNzo6NzY5OjoxMDAwOjoxMTU2OjoxMjA4OjoxMjMwOjoxMjY0OjowOjowIi8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjA6OjA6OjA6OjA6OjU4Ojo0NjQ6OjEyMTQ6OjI4NjY6OjUxOTU6Ojc2NDQ6OjEwMTg5OjoxMzEwODo6MTU5MDI6OjE4NzczOjoyMTU1Nzo6MjQzNDU6OjI4MjcxOjozMjI2Nzo6MzYwMTI6OjM5MzYwOjo0MjM1Mjo6NDQ3ODI6OjA6OjEyMTU6OjE4Nzk6OjI1ODE6OjMyMzI6OjM3MzA6OjQ2Mjc6OjY4NDU6Ojk0MjY6OjEzMjEzOjoxNzQ2MDo6MjE4MTI6OjI2NDA4OjozMDg3ODo6MzUzNDY6OjQwMDYxOjo0NDc3Njo6NDkxNDU6OjUzNTAxOjo1NzU3NTo6NjE0Mjk6OjY0OTY4Ojo2ODAyOTo6NzExNTQ6OjA6OjI1NDEiLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iNDc1Nzo6Njc0OTo6ODcwNzo6MTA0NDY6OjEyMjk2OjoxNDgxNzo6MTgwMjE6OjIyMTkyOjoyNDcxMDo6MjkyMDk6OjMzNzk5OjozODAwMDo6NDIxOTk6OjQ2Mzc1Ojo1MDY4MTo6NTUwNjI6OjU5Mzg3Ojo2MzY4Njo6Njc5NzE6OjcxODgzOjo3NTM3ODo6NzgyNzQ6OjA6OjE5NjU6OjM3ODU6OjU1ODk6Ojc0MDg6OjkwNDI6OjEwNzM1OjoxMzE0Mzo6MTYyNTQ6OjIwNDczOjoyNTIxMDo6Mjk4OTg6OjM0OTg5OjozOTI2NTo6NDM1NDc6OjQ3NjU5Ojo1MDI5OC44MTY6OjUwMzAyLjczMzo6NTAzMDYuNzI5Ojo1MDMxMC4zMjY6OjUwMzEzLjc4Mzo6NTAzMTcuMDYyOjo1MDMyMC4wMTY6OjUwMzIyLjI3Nzo6MDo6MS45ODYiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjMuNzQ2Ojo1LjQyNzo6Ny4xMTY6OjguNjQ5OjoxMC4yMjU6OjEyLjM3Nzo6MTQuOTcyOjoxOC4xNTU6OjIxLjUxOTo6MjQuMDc5OjoyNi43ODk6OjI5Ljg3Mjo6MzIuMDM4OjozMi4wNzU6OjMyLjA5Mzo6MzIuMTE6OjMyLjEzMjo6MzIuMTQ5OjozMi4xNjM6OjMyLjE3Mzo6MzIuMTgxOjozMi4xODM6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDAxOjowLjAwNTo6MC4wMDg6OjAuMDEyOjowLjAxNDo6MC4wMTQ6OjAuMDE0OjowLjAxNDo6MC4wMTc6OjAuMDIzOjowLjAyNjo6MC4wMjk6OjAuMDMyOjowLjAzNTo6MC4wMzg6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDA0OjowLjAxMzo6MC4wMjM6OjAuMDM1OjowLjAzOTo6MC4wNDo6MC4wNDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MC4wMTE6OjAuMDY0OjowLjE4NDo6MC4yOTk6OjAuNDAzOjowLjQ5MTo6MC41ODc6OjAuNjg0OjowLjc3Nzo6MC44ODI6OjQ2NDk6OjExMzY5OjoxODM4NDo6MjU1Mzk6OjMyMDk4OjozODE4OTo6MDo6NTYzMSIvPgorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iMTExMzQ6OjE2NTgwOjoyMTgxOTo6MjY5MzQ6OjMyNDQ5OjozOTAxMTo6NDYxNjQ6OjU3MzI5Ojo3MDUzNTo6ODM1OTI6Ojk2MTEyOjoxMDc5MzQ6OjExOTgzNjo6MTMxODM2OjoxNDM5MzI6Ojo6MTU5OTcyOjoxNjc4Mzg6OjE3NTc1OTo6MTgyOTQwOjoxODkyNjE6OjE5NTI2MDo6MDo6NDM2MTo6ODYzNzo6MTI4NDQ6OjE3MDI2OjoyMTI5Mjo6MjYxODU6OjMxNTE0OjozNzYyOTo6NDQxNDc6OjUwMjk1Ojo6OjYyOTcyOjo2OTE0Mjo6NzU0OTA6OjgxODcxOjo4ODQxMTo6OTI2MzQ6Ojk1MjYzOjo5ODEzNjo6MTAxNDkzOjoxMDQzMzg6OjEwNjI2NDo6MTA4MDg2OjowOjoxMTE4OjoyMTI1OjozMTYzIi8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIzOTcyOjo0NDI0Ojo1MTE3Ojo2NjcwOjo4NjgyOjoxMTI3Mzo6MTQwMzY6OjE2ODAwOjoxOTU4NTo6MjE2ODciLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjoyMDk3Ojo1NjU4Ojo5MzA3OjoxMjgzNzo6MTY0Mzc6OjIwMDcyOjoyNDg1NTo6MzExMjA6OjM3ODEzOjo0NDYzNTo6NTE1MDk6OjU4MjI0Ojo2NDUxOTo6NzA0NjA6OjA6OjQ5MTI6Ojk3Nzk6OjEyNDY4OjoxNDM3Nzo6MTYxOTY6OjE4MDk4OjoyMDM1Nzo6MjI5MTY6OjI1NTcyOjoyODMzMzo6MzEwNDg6OjMzNjczOjozNjI2OCIvPgorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iMzg3Njk6OjQxMTk3Ojo0MzYxNzo6NDYyMjI6OjQ5MzA3Ojo1MjY5NDo6NTYyMjk6OjU5NTg2Ojo2Mjc5MDo6NjYxNDc6OjA6OjI1NjM6OjUwMTA6OjczNzc6Ojk1NDc6OjExNjYyOjoxMzk3MDo6MTY3MjI6OjE5ODIwOjoyMzY2ODo6Mjg0NTU6OjM0MDc5OjozOTc5OTo6NDUxNDg6OjUwNTg5Ojo1NjQ0ODo6NjI2NzQ6OjY5MDg0Ojo3NTU4NDo6ODE2Mjk6Ojg3MDA3Ojo5MjE5MDo6OTY2NjQ6OjEwMDk1Mzo6MDo6MzY4Njo6Njk4MTo6MTAxMDk6OjEzMTQ5OjoxNjAzOTo6MTkxNjg6OjIzMTY0OjoyODI2Mzo6MzQyMzg6OjQwNDczOjo0NjU5MDo6NTI4MjE6OjU4ODY4Ii8+CisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSI2NDgxMDo6NzA2Mjg6Ojc3MDI2Ojo4MzE2MDo6ODkwMjc6Ojk0NjczOjoxMDAxNTU6OjEwNTM4Mzo6MTA5NjkxOjoxMTM1NTk6OjA6OjE5OTY6OjM4NzY6OjU5NDk6Ojc5NDU6Ojk2NzM6OjExNTgzOjoxNTE5Nzo6MTkzNTU6OjIzOTU5OjoyODY4OTo6MzMyMjk6OjM3OTgxOjo0Mjc0NTo6NDc0NzA6OjUyNjU2Ojo1ODIyODo6NjM3Njg6OjY5MzUzOjo3NDYzNDo6Nzk4NzI6Ojg0Njk5Ojo4ODk2Njo6OTMwOTA6OjA6OjMyNzI6OjY1MTk6Ojk2NDY6OjEyNjY1OjoxNTUyOTo6MTg3ODU6OjIyNzY3OjoyNzM2MTo6MzMwMjY6OjM5MTk3Ojo0NTYzNDo6NTIyMzE6OjU4Njg4Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSI3MTYyMzo6Nzc4OTc6OjgzNjYxOjo4ODkxOTo6OTQ1MDk6OjEwMDIyNjo6MTA2MDA0OjoxMTE1MTc6OjExNjQ5Nzo6MDo6MzUwNDo6NzE0Nzo6MTA3NjA6OjE0MzQxOjoxNzgyMzo6MjE1NjE6OjI1ODQ1OjozMDM4MTo6MzU4MjE6OjQxNTI5Ojo0ODAyNjo6NTczMTA6OjY0ODk4Ojo3MDkyNDo6NzcxOTU6OjgzMTM1Ojo4OTEwNTo6OTQ5MDA6OjEwMDMyMTo6MTA1Njk4OjoxMTEwNTM6OjExNTcyNzo6MTIwMzA5OjowOjozNjEwOjo3MTI3OjoxMDc3ODo6MTQ0MjE6OjE4MDE1OjoyMTcxMjo6MjU1NjQ6OjI5NDU0OjozMzU5ODo6Mzc5NDY6OjQyMTAwOjo0NjA1NDo6NDk4MjQ6OjUzNTAwIi8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSI1NzA5OTo6NjEzODU6OjY2MjIxOjo3MTM1Mjo6NzYzODI6OjgxMzY4Ojo4NTgyODo6ODk2Nzc6OjkzMDM2Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjI2MjczMDAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjo6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjoxMDo6NTIxOjoxMDA5OjoxOTE0OjoyMzI5OjoyODA0OjowIi8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9IjEwNzA6OjEyMDU6OjEyNDI6OjEzNjE6OjE4NzM6OjI2ODg6OjI4ODg6OjI5Njg6OjMwMTM6Ojo6MzA5Mzo6MzE2NTo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MDo6NTA0Ojo5NzU6OjE0MjA6OjE3NzY6OjIzMDU6OjI3OTY6OjMyMTI6OjQwMDI6OjQyNTQ6OjQzNzM6OjQ0OTQ6OjQ1NDk6OjQ3NTM6OjQ5NTA6OjUwODc6OjU0NTM6OjU0NTM6OjU0NTM6OjU0NTM6OjU0NTQ6OjU0NzM6OjU1MDk6OjU1ODE6OjA6OjU4MSIvPgorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSIxMjMxOjoxOTI3OjoyNzYwOjozOTAyOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjo0ODUzOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDE3OjowLjAzMTo6MC4wNDg6OjAuMDY1OjowLjA4NTo6MC4xMDU6OjAuMTE0OjowLjExNjo6MC4xMTY6OjAuMTE2OjowLjExNjo6MC4xMTY6OjAuMTE3OjowLjEyOjowLjEyMzo6MC4xMjg6OjAuMTM1OjowLjEzNTo6MC4xMzU6OjAuMTM1OjowLjEzNTo6MC4xMzU6OjAuMTM2OjowOjowLjAxNiIvPgorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMC4wMzY6OjAuMDU0OjowLjA3NDo6MC4wOTY6OjAuMTE5OjowLjEzNzo6MC4xNTI6OjAuMTY1OjowLjE3ODo6MC4xOTo6MC4yMDQ6OjAuMjE2OjowLjIyODo6MC4yMzc6OjAuMjQ5OjowLjI1Njo6MC4yNTY6OjAuMjU2OjowLjI1Njo6MC4yNTY6OjAuMjU2OjowLjI1Nzo6MDo6MC4wMTI6OjAuMDE4OjowLjAyOjowLjAyMTo6MC4wMjU6OjAuMDMyOjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI5MjA4Ojo5NDkwOjoxMjU3OTo6MTY2MzM6OjIwMTY0OjoyMzg4Mjo6MjgzMzQ6OjMzNzEzOjozOTIyMDo6NDQ5MDk6OjA6OjY1NDI6OjEzMTgwOjoxOTg1NTo6MjY1OTQ6OjMzNDMyOjo0MDI4MDo6NDY3Nzc6OjUyNTI0Ojo1Nzg3NTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjEzMTQ2MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIyNzAzNzAiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMTMxMzgwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjMwNjY5MyIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIxMzEzNDAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMTU3NjExMSIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIxMzEzMDAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMTI3MDk4Ii8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjUyNTE0NjAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMDo6MTMwNTo6Mjg2OTo6NDQ4Mjo6NjA2Njo6NzM5Njo6ODU3Mzo6MTAyNjI6OjExOTIyOjoxMzc3Mzo6MTU0OTI6OjE3NTIyOjoxOTU0NDo6MjE0NTI6OjIyMDcwOjoyMjA3NTo6MjIwODA6OjIyMDg0OjoyMjA4NTo6MjIwOTA6OjIyMDk3OjoyMjEwMzo6MjIxMDk6OjIyMTE2OjoyMjEyMzo6MjIxMjk6OjIyMTM2OjoyMjE0Mzo6MjIxNTA6OjIyMTU2OjoyMjE1ODo6MjIxNjY6OjIyMTczOjoyMjE4MDo6MjIxODY6OjIyMTkzOjoyMjIwMDo6MjIyMDc6OjIyMjE0OjoyMjIyMTo6MjIyMjg6OjIyMjM1OjoyMjIzNTo6MjIyMzY6OjIyMjQxOjoyMjI0NDo6MjIyNDc6OjIyMjU0Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjIyMjYxOjoyMjI2Nzo6MjIyNjc6OjIyMjY5OjoyMjI3Mzo6MjIyNzQ6OjIyMjc0OjoyMjI4MDo6MjIyODc6OjIyMjk0OjoyMjMwMTo6MjIzMDg6OjIyMzE1OjoyMjMyMjo6MjIzMjk6OjIyMzMzOjoyMjMzNTo6MjIzMzU6OjIyMzM1OjoyMjMzNjo6MjIzMzg6OjIyMzM5OjoyMjMzOTo6MjIzNDQ6OjIyMzUxOjoyMjM1ODo6MjIzNjU6OjIyMzcyOjoyMjM3OTo6MjIzODY6OjIyMzkxOjoyMjM5NTo6MjI0MDI6Ojo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA3OjoyMjQxMzo6MjI0MTY6OjIyNDIyOjoyMjQyOSIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSIyMjQzNjo6MjI0NDM6OjIyNDUwOjoyMjQ1Nzo6MjI0NjQ6OjIyNDY4OjoyMjQ3NTo6MjI0Nzc6OjIyNDc3OjoyMjQ3ODo6MjI0ODM6OjIyNDg5OjoyMjQ5NTo6MjI0OTc6OjIyNDk3OjoyMjQ5ODo6MjI0OTk6OjIyNDk5OjoyMjUwMDo6MjI1MDc6OjIyNTEzOjoyMjUyMDo6MjI1MjY6OjIyNTMzOjoyMjUzODo6MjI1NDU6OjIyNTUyOjoyMjU1OTo6MjI1NjQ6OjIyNTY0OjoyMjU2OTo6MjI1NzE6OjIyNTcyOjoyMjU3Mjo6MjI1NzI6OjIyNTczOjoyMjU3OTo6MjI1ODA6OjIyNTgwOjoyMjU4MDo6MjI1ODA6OjIyNTgwOjoyMjU4MDo6MjI1ODM6OjIyNTg1OjoyMjU5MDo6MjI1OTY6OjIyNjAzIi8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjIyNjEwOjoyMjYxNzo6MjI2MjQ6OjIyNjMyOjoyMjYzOTo6MjI2NDU6OjIyNjUwOjoyMjY1Mzo6MjI2NTM6OjIyNjUzOjoyMjY1NTo6MjI2NjI6OjIyNjY5OjoyMjY3Mjo6MjI2NzU6OjIyNjc3OjoyMjY3ODo6MjI2Nzg6OjIyNjc4OjoyMjY3ODo6MjI2ODI6OjIyNjgzOjoyMjY4Njo6MjI2OTM6OjIyNzAxOjoyMjcwODo6MjI3MTU6OjIyNzIyOjoyMjcyODo6MjI3MzI6OjIyNzM4OjoyMjc0MDo6MjI3NDA6OjIyNzQ0OjoyMjc1MTo6MjI3NTg6OjIyNzY1OjoyMjc3MDo6MjI3NzU6OjIzNTI5OjoyNDM3MDo6MjQ3MzM6OjI0NzM0OjoyNTU1MTo6MjU4NTM6OjI2MzAxOjoyNzEyNjo6Mjg3NDIiLz4KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iMjkzNzI6OjI5NTQwOjozMDE5OTo6MzExMjU6OjMxMjE4OjozMTIxOTo6MzE1NjQ6OjMxNTY0OjozMTU2NDo6OjozMTU2NDo6MzE1NjQ6OjMxNTk5OjozMTYwNzo6MzE2MDc6OjMxNzkyOjozMTk2NTo6MzIwMTA6OjMyMjc0OjozMzA0Nzo6MzM4OTA6OjMzODkwOjozNDE5Mzo6MzUzMTY6OjM1NDE3OjozNTQxODo6MzU1Njk6OjM1OTA5OjozNTkyMTo6MzU5MjE6OjM1OTIxOjozNTkyMTo6MzU5Mjg6OjM1OTI4OjozNTkyODo6MzU5Mjg6OjM1OTI4OjozNTkyODo6MzU5Mjg6OjM1OTk1OjozNjA4Mzo6MzYwODM6OjM2MDgzOjozNjA4Mzo6MzYwODM6OjM2MDgzOjozNjIyNjo6Mzc0NTA6OjM4NjA5Ii8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjM5NzQwOjo0MDE1MTo6NDA1Mjc6OjQwNTI3Ojo0MDgzNjo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzYzOjo0MTQ3Njo6NDIwNTE6OjQyNjkwOjo0Mjk0Njo6NDMyMzE6OjQzNTI0Ojo0Mzg2NTo6NDQ0ODg6OjQ0NDg4Ojo0NDQ4ODo6NDQ0ODg6OjQ0NDg4Ojo0NDU4Mjo6NDQ2ODU6OjQ0Njg1Ojo0NDY4NTo6NDQ2ODU6OjQ0Njg1Ojo0NDY4NTo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0ODkwOjo0NjA4OTo6NDcyMTYiLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iNDgwNDM6OjQ4MjYyOjo0ODQ2Njo6NDg0NjY6OjQ4NDY2Ojo0ODQ2Njo6NDg0NjY6OjQ4NDY2Ojo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDc0Ojo0ODQ5MTo6NDg0OTE6OjQ4ODE2Ojo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ5MDIyOjo0OTE0Nzo6NDk1Njk6OjUwMjE4Ojo1MDI1MTo6NTAyNTE6OjUwMjUxOjo1MDI1Mi45MTo6NTAyNTIuOTE6OjUwMjUyLjkxOjo1MDI1Mi45MTo6NTAyNTIuOTE6OjUwMjUyLjk1NDo6NTAyNTMuMTg1Ojo1MDI1My4xOTI6OjUwMjUzLjQ4Nzo6NTAyNTQuNjY3Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSI1MDI1NS45NzM6OjUwMjU3LjM1Njo6NTAyNTguNzY1Ojo1MDI1OS4yOTY6OjUwMjU5LjI5OTo6NTAyNTkuMjk5Ojo1MDI1OS4yOTk6OjUwMjU5LjMzMjo6NTAyNTkuNDU1Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Nzo6NTAyNTkuNDU4Ojo1MDI1OS40NTg6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njk6OjUwMjU5LjQ4Mjo6NTAyNTkuNTo6NTAyNTkuNTA3Ojo1MDI1OS41MTM6OjUwMjU5LjUxNjo6NTAyNTkuNTE3Ojo1MDI1OS41MTc6OjUwMjU5LjUxNzo6NTAyNTkuNTE3Ojo1MDI1OS41MTc6OjUwMjU5LjUxNzo6NTAyNTkuNTIxOjo1MDI1OS41MzU6OjUwMjU5LjU0Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSI1MDI1OS41NDo6NTAyNTkuNTQ6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQ2Ojo1MDI1OS41NDY6OjUwMjU5LjU0Njo6NTAyNTkuNTQ2Ojo1MDI1OS41NDc6OjUwMjU5LjU0Nzo6NTAyNTkuNTUyOjo1MDI1OS41NTc6OjUwMjU5LjU2MTo6NTAyNTkuNTc3Ojo1MDI1OS41ODg6OjUwMjU5LjY6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjA0Ojo1MDI1OS42MDg6OjUwMjU5LjYwOTo6NTAyNTkuNjEyOjo1MDI1OS42MTI6OjUwMjU5LjYxMjo6NTAyNTg6OjUwMjU4Ojo1MDI1ODo6NTAyNTg6OjUwNDM0Ojo1MjEzNzo6NTQ0MzE6OjU2NzM0Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSI1OTQ0Nzo6NjIzMjE6OjY1MjU3Ojo2NzIxNzo6Njc4NjA6OjY5MDAwOjo3MDcxMzo6NzIzMDI6OjczMTg5Ojo3NDEwNjo6NzY3NDY6Ojc5NzUwOjo4MjQ0OTo6ODUwNDM6Ojg3MDAzOjo6Ojg3NTEwOjo4ODAwMjo6ODkyOTc6OjkwNTU2Ojo5MjEwMjo6OTQzNDA6Ojk1NDcwOjo5NjQ0OTo6OTgwMTE6Ojk5NzA3OjoxMDE0NjM6OjEwMjI0NDo6MTAyMjg5OjoxMDIzODY6OjEwMzExNTo6MTAzOTgzOjoxMDQwOTE6Ojo6MTA0ODI2OjoxMDU4MDY6OjEwNjMzMDo6MTA2NjYyOjoxMDY4NTk6OjEwNjg1OTo6MTA4MjkwOjoxMTEwMTk6OjExNDQ4Mzo6MTE2NTQ5OjoxMTgwODM6OjEyMTE1NDo6MTI0NTI0OjoxMjcyMDc6OjEzMDI4Mjo6MTMzNjE5Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIxMzY5NjM6OjEzOTMzNTo6MTQwOTUxOjoxNDI2OTg6OjE0NDk4ODo6MTQ3Mzc3OjoxNDk0ODM6OjE1MTQzODo6MTUzNzI2OjoxNTYzMTUiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjE3NDgyOTo6MTc0ODk2OjoxNzQ5OTY6OjE3NDk5Njo6MTc1NjI3OjoxNzY2Mjg6OjE3NzIwMTo6MTc3MjAxOjoxNzcyMDE6OjE3NzQzOTo6MTc4ODQ5OjoxNzkyMzg6OjE3OTYyNjo6MTgwNTA1OjoxODEyMjQ6OjE4MTI0MTo6MTgxMjQxOjoxODEyNzk6OjE4MjE4Mzo6MTgyNTI4OjoxODI2MTk6OjE4MjcwMTo6MTgzMTQ0OjoxODM3ODA6OjE4NDY5Nzo6MTg1NDc1OjoxODY3MDI6OjE4ODM0Mjo6MTkwMTc5OjoxOTIyMjY6OjE5NDQ3MDo6MTk2Nzk2OjoxOTkwMjA6OjIwMTMxOTo6MjAzNTcxOjoyMDU1NTA6OjIwNzc1MTo6MjA4Mzg5OjoyMDg4NzM6OjIwOTE4NDo6MjA5MzczOjoyMDk2NDY6OjIxMDM1ODo6MjEwNzQ0OjoyMTEwNjE6OjIxMTI0MDo6MjExNDM5OjoyMTE3NTYiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjIxMTg0Mzo6MjExODQzOjoyMTE4NDM6OjIxMTg0Mzo6MjExODQzOjoyMTE4NTI6OjIxMTk5ODo6MjEyMzM5OjoyMTI4MzM6OjIxNDk1MTo6MjE3MDc3OjoyMTgwNDU6OjIxOTMwOTo6MjIwMzAyOjoyMjA2NjI6OjIyMDc4Njo6MjIwODE5OjoyMjEyNjk6OjIyMTQ1MTo6MjIxNDU4OjoyMjE0NTg6OjIyMTQ1ODo6MjIxNDU4OjoyMjE0NTg6OjIyMTQ1ODo6MjIxNTQ3OjoyMjE4OTU6OjIyMjE4OTo6MjIyNjExOjoyMjM0NzE6OjIyMzgxODo6MjI0NDcyOjoyMjQ0NzM6OjIyNTA2Njo6MjI2MDU0OjoyMjc1MzM6OjIyODQ2MTo6MjI4OTYyOjoyMjkzOTY6OjIyOTQwMTo6MjI5NDAxOjoyMjk1Nzc6OjIzMDU3Njo6MjMwNzU4OjoyMzExNTk6OjIzMTQ1NDo6MjMyNTY2OjoyMzI1NjYiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjIzMjU2Njo6MjMyNTY2OjoyMzM2MDk6OjIzNDEwMTo6MjM0MTAxOjoyMzQxMzk6OjIzNDgzNjo6MjM1NDkyOjoyMzU0OTI6OjIzNjA4OTo6MjM3MjA4OjoyMzc0Njc6OjIzNzQ2Nzo6MjM3NDY3OjoyMzc0Njc6OjIzNzQ2Nzo6MjM3NTExOjoyMzc3NDk6OjIzODMwNjo6MjM4MzMxOjoyMzgzMzE6OjIzODMzMTo6MjM4MzMxOjoyMzg2MDY6OjIzODYzNzo6MjM5MjYwOjoyMzk4NDY6OjIzOTg0Njo6MjM5ODQ2OjoyMzk4NDY6OjIzOTg0Nzo6MjM5OTg4OjoyMzk5ODg6OjIzOTk4ODo6MjQwMjAwOjoyNDA0MTE6OjI0MDkxNjo6MjQxMTkzOjoyNDExOTQ6OjI0MTE5NDo6MjQxMTk0OjoyNDEyNjA6OjI0MTI2Mjo6MjQxMjYyOjoyNDEyNjI6OjI0MTI2Mjo6MjQxMzI1OjoyNDE4NDIiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjI0MzQ4Mjo6MjQ0MTU0OjoyNDQxNjQ6OjI0NDE2NDo6MjQ0MTY0OjoyNDQ0OTk6OjI0NTc4ODo6MjQ3MjAwOjoyNDgxNTc6OjI0ODg2Njo6MjQ5MzU4OjoyNTA0MzY6OjI1MTU0OTo6MjUyNDUyOjoyNTI0ODI6OjI1MjQ4NDo6MjUyNTI2OjoyNTI1MjY6OjI1MjUyNjo6MjUyNTI2OjoyNTI4NDA6OjI1NTYzNDo6MjU3NTExOjoyNTc1ODQ6OjI1NzU4NTo6MjU3NTg1OjoyNTc1ODU6OjI1NzU4NTo6MjU3NTg1OjoyNTc1ODU6OjI1Nzc2Njo6MjU3NzY2OjoyNTgwNzM6OjI1ODYyODo6MjU5MTMwOjoyNjA0NTQ6OjI2MjM1MDo6MjY0Mzg3OjoyNjU4NjU6OjI2Njc4Nzo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjI2Njg1NDo6MjY2ODY4OjoyNjcxMzI6OjI2NzYwOTo6MjY4MDk1OjoyNjg5MzY6OjI2OTI5NDo6MjY5Mjk0OjoyNjkzNjciLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iNTI1MTM4MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjY4MDo6MTc1Mzo6MjQzNjo6MjQzOTo6MjQ3MTo6MjQ3Mjo6MjQ3Mjo6MjQ3MiIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSIyNzQ1OjoyNzc2OjoyNzc2OjoyNzc2OjoyODY0OjozOTM5Ojo0NDM0Ojo1MjA3Ojo2OTgzOjo6OjE0NTg3OjoxODgwOTo6MjA3MjQ6OjIwOTI0OjoyMTUyMzo6MjMxOTY6OjIzNTg3OjoyNDA4NDo6MjQwODg6OjI0MDg4OjoyNDExOTo6MjQ5MzM6OjI0OTc4OjoyNDk3ODo6MjY0MDY6OjI2NzY0OjoyNjc5OTo6MjY3OTk6OjI3MDc5OjoyODA5NDo6Mjk1ODQ6OjMwNjc4OjozMTI0Mjo6MzIyMTE6OjMzMzAxOjozNDE4MTo6MzQ2ODU6OjM1MDg4OjozNTU0Njo6MzY4MDY6OjM3MzM2OjozOTc5ODo6NDIzOTY6OjQ1MTY2Ojo0NzYwODo6NDk0NDc6OjUwMTM5Ojo1MDEzOTo6NTAxNTUiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iNTAxNTU6OjUwMTU2Ojo1MDE1ODo6NTA5MDE6OjUyNDU3Ojo1MjQ4Njo6NTMxNzE6OjU1MTUxOjo1NzgyMTo6NjA4NjA6OjYzNjMyOjo2NDIyMDo6NjQ2ODI6OjY0OTI5Ojo2NTE2OTo6NjU2OTI6OjY2MzI0Ojo2NjMyNDo6NjY0Njk6OjY2NDkyOjo2NjUzNTo6NjY1NjU6OjY2NTY1Ojo2NzgyMDo6NjkwODc6OjY5ODY5Ojo3MDc4MDo6NzI3NTU6Ojc1MTA3Ojo3NTQ0OTo6NzYyNzk6Ojc3NDczOjo3OTAxMzo6ODAxNzE6OjgwOTczOjo4MTQ5NDo6ODM0MjE6Ojg0ODg5Ojo4NjU4Mjo6ODg4NzI6OjkwNTE4Ojo5MjA3Nzo6OTMyNjY6Ojk0NDI0Ojo5NjA3OTo6OTY1Nzk6Ojk2NTc5Ojo5NjU3OSIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI5NjU5NDo6OTY1OTQ6Ojk2NTk2Ojo5NzQyODo6OTkwOTI6OjEwMDY5NDo6MTAyMTM2OjoxMDM2NTE6OjEwNDU0Nzo6MTA2MDA0OjoxMDczOTI6OjEwODMwMjo6MTA5NDEwOjoxMTA1MzA6OjExMTYxMzo6MTEzNjc2OjoxMTYwMDU6OjExNzI1MTo6MTE3NzExOjoxMTg0MDk6OjExOTE4ODo6MTIwMDI0OjoxMjAwOTM6OjEyMTExODo6MTIxNjAyOjoxMjE4ODA6OjEyMjA3OTo6MTIzMDQ0OjoxMjQ5OTQ6OjEyNjY4Mzo6MTI4MTQ4OjoxMjg5NDU6OjEyOTAyNTo6MTI5MDI1OjoxMjkwMjU6OjEyOTU5Nzo6MTMwNDc1OjoxMzEyOTU6OjEzMTc2NC4zMDM6OjEzMTc2NS41ODg6OjEzMTc2Ni4zNzU6OjEzMTc2OC4xMTo6MTMxNzY5LjE5ODo6MTMxNzY5LjQ5OjoxMzE3NjkuNzYxOjoxMzE3NzAuMjE5OjoxMzE3NzAuMjM2OjoxMzE3NzAuMjM2Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIxMzE3NzAuMjM2OjoxMzE3NzAuMjM2OjoxMzE3NzAuMjM2OjoxMzE3NzAuMjM2OjoxMzE3NzAuODY4OjoxMzE3NzEuODA2OjoxMzE3NzMuMDIzOjoxMzE3NzQuNjI1OjoxMzE3NzUuNTg5OjoxMzE3NzYuOTEyOjoxMzE3NzguMDYyOjoxMzE3NzguNzA5OjoxMzE3NzkuMjk1OjoxMzE3NzkuMzA2OjoxMzE3NzkuMzE5OjoxMzE3NzkuMzQ5OjoxMzE3NzkuMzg2OjoxMzE3NzkuNDIzOjoxMzE3NzkuNDU4OjoxMzE3NzkuNDk6OjEzMTc3OS40OTk6OjEzMTc3OS41MDM6OjEzMTc3OS41MDk6OjEzMTc3OS41NjQ6OjEzMTc3OS41ODc6OjEzMTc3OS42MDQ6OjEzMTc3OS42MjM6OjEzMTc3OS42NTk6OjEzMTc3OS43MDk6OjEzMTc3OS43Mzg6OjEzMTc3OS43NDQ6OjEzMTc3OS43NTI6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTY6OjEzMTc3OS43ODY6OjEzMTc3OS44MTk6OjEzMTc3OS44NTg6OjEzMTc3OS44OTM6OjEzMTc3OS45MTg6OjEzMTc3OS45MjY6OjEzMTc3OS45MjY6OjEzMTc3OS45MjY6OjEzMTc3OS45NDkiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjEzMTc3OS45NTg6OjEzMTc3OS45NTk6OjEzMTc3OS45Njo6MTMxNzc5Ljk3Mjo6MTMxNzgwLjAwMzo6MTMxNzgwLjAyNzo6MTMxNzgwLjA0OTo6MTMxNzgwLjA4OTo6MTMxNzgwLjEyNTo6MTMxNzgwLjE1NTo6MTMxNzgwLjE3OTo6MTMxNzgwLjE4NDo6MTMxNzgwLjE5MTo6MTMxNzgwLjIwMjo6MTMxNzgwLjIyMjo6MTMxNzgwLjI0Mzo6MTMxNzgwLjI1MTo6MTMxNzgwLjI1ODo6MTMxNzgwLjI2MTo6MTMxNzgwLjI3Nzo6MTMxNzgwLjI4NTo6MTMxNzgwLjI4NTo6MTMxNzgwLjI4ODo6MTMxNzgwLjI4ODo6MTMxNzgwLjI4ODo6MTMxNzgwLjI4ODo6MTMxNzgwLjI4ODo6MTMxNzgwLjI4OTo6MTMxNzgwLjMwMzo6MTMxNzgwLjM0OjoxMzE3ODAuMzU6OjEzMTc4MC4zNTY6OjEzMTc4MC4zNjg6OjEzMTc4MC4zODE6OjEzMTc4MC4zODQ6OjEzMTc4MC4zODQ6OjEzMTc4MC4zODY6OjEzMTc4MC4zOTg6OjEzMTc4MC40MTU6OjEzMTc4MC40NTE6OjEzMzIwNTo6MTM1MzQzOjoxMzY4NjY6OjEzNzg2MTo6MTM4MjcyOjoxMzgyNzI6OjEzODI3Mjo6MTM4MjcyIi8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSIxMzgyNzI6OjEzODI3Mjo6MTM4MjcyOjoxMzgyNzI6OjEzODI3NTo6MTM4Mjc3OjoxMzgyOTA6OjEzODI5MDo6MTM4MjkwOjoxMzgyOTA6OjEzODM1NTo6MTM4MzU1OjoxMzgzNTU6OjEzODM1NTo6MTM4MzU1Ojo6OjE0MTA4ODo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTk5Nzo6MTQzNjE4OjoxNDM2MTg6OjE0MzYyOTo6MTQzNjgxOjo6OjE0MzcxNDo6MTQzNzE0OjoxNDM3MTQ6OjE0MzcxNDo6MTQzNzI1OjoxNDQzNTE6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2MiIvPgorCQkJCQk8dmFsIG89IjFhOTY0MCIgdj0iMTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjg6OjE0NDM2ODo6MTQ0MzY4OjoxNDQzNjg6OjE0NDM2ODo6MTQ0MzY4Ii8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIxNjI3MDc6OjE2Mjc4Njo6MTYzMTA3OjoxNjUwMzU6OjE2NTA2Mjo6MTY1MDYyOjoxNjY0ODE6OjE2ODk1Njo6MTcxMDcyOjoxNzEzOTE6OjE3MTM5MTo6MTcxNjM0OjoxNzE2MzQ6OjE3MTYzNDo6MTcxNjM0OjoxNzE4NjU6OjE3MzAwNjo6MTc0MTc1OjoxNzQxNzU6OjE3NDE3Nzo6MTc0NDM1OjoxNzQ0Mzg6OjE3NDQzODo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDU0MDo6MTc0NTQwOjoxNzQ1NDA6OjE3NDU5NDo6MTc0NTk0OjoxNzQ1OTQ6OjE3NDU5NDo6MTc0NTk0OjoxNzQ1OTg6OjE3NDU5ODo6MTc0NTk4Ii8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSIxNzQ3NDI6OjE3NTEyOTo6MTc1NzA2OjoxNzc3MzE6OjE3OTgwMzo6MTgwNDA1OjoxODA0MDU6OjE4MDY0Njo6MTgwNzA0OjoxODA3MDQ6OjE4MDcwNDo6MTgwNzcxOjoxODA3ODI6OjE4MDc4Mjo6MTgwNzgyOjoxODA4MDE6OjE4MDk4Mzo6MTgxOTYxOjoxODI4NzM6OjE4NDA4Njo6MTg2MzMyOjoxODgzOTY6OjE4OTg0ODo6MTkwNTA0OjoxOTIxMTQ6OjE5Mzg5Nzo6MTk0NDc0OjoxOTUyMDQ6OjE5NTIwNjo6MTk1MjMwOjoxOTUyMzI6OjE5NTM5Nzo6MTk2MDQxOjoxOTYwNDY6OjE5NjA0Njo6MTk2MDQ2OjoxOTYxNzU6OjE5NjE3NTo6MTk2MTc1OjoxOTY2Nzg6OjE5ODAwNzo6MTk4ODgxOjoxOTg4OTU6OjE5OTA0Mzo6MTk5NDk0OjoxOTk0OTQ6OjE5OTQ5NDo6MjAwMDU4Ii8+CisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSIyMDEzNTM6OjIwMjg1MTo6MjAzMjM3OjoyMDMzNTM6OjIwMzgyNTo6MjA0MTY3OjoyMDQxNjc6OjIwNDI4Njo6MjA1Nzc4OjoyMDU4MzM6OjIwNTgzMzo6MjA5MDM2OjoyMTA5NzA6OjIxMTQyNjo6MjEyMTM4OjoyMTQ0MTA6OjIxODE1Njo6MjE4Mzk1OjoyMTgzOTU6OjIxOTc5NTo6MjIyMzY4OjoyMjU5NjM6OjIyODY3Njo6MjI4Njk4OjoyMjg5NDE6OjIyOTA4Mjo6MjI5MDgyOjoyMzA4MjI6OjIzMjIzNzo6MjMzNDI1OjoyMzM5MTA6OjIzNTA5ODo6MjM3MjczOjoyMzgxNjA6OjIzODI1OTo6MjM4NDMxOjoyMzg0MzE6OjIzODQ2MDo6MjM4NjA0OjoyMzk3MzU6OjI0MDY4NTo6MjQxNjQ4OjoyNDI0MDY6OjI0NDEzNzo6MjQ3NDcxOjoyNTA1NTE6OjI1MzQwNDo6MjUzNDA0Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIyNTM0MDQ6OjI1MzQwNDo6MjU1NTI3OjoyNjAxMjQ6OjI2MTQ5Mjo6MjYxNjA2OjoyNjE2MDY6OjI2MTYwNjo6MjYxNjA2OjoyNjE2MDY6OjI2MTY5Mjo6MjYxNjkyOjoyNjE2OTI6OjI2MTY5Mjo6MjYxNzk0OjoyNjIzMTU6OjI2MjkzOTo6MjY0MTE4OjoyNjU5MjE6OjI2OTIwMDo6MjcyMDQxOjoyNzIwNDE6OjI3MjA0OTo6MjcyMjI5OjoyNzI0MTc6OjI3MjkwMDo6MjczOTA5OjoyNzY0NjY6OjI3OTA4NDo6MjgxMTczOjoyODEzNDk6OjI4MjY0Mjo6MjgyODQxOjoyODMxODU6OjI4MzE5ODo6MjgzMTk4OjoyODMxOTg6OjI4MzE5ODo6MjgzMTk4OjoyODMxOTg6OjI4MzQwMjo6Mjg0MTE0OjoyODUyNDQ6OjI4Njg4Njo6Mjg4ODg0OjoyOTE5Njg6OjI5NDg4NDo6Mjk3ODQ5Ii8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSIzMDA5NTQ6OjMwMTczMzo6MzAyMzQxOjozMDIzNDE6OjMwMjM0MTo6MzAyMzQxOjozMDM5MTU6OjMwNjIwMTo6MzA2NjkzIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjUyNTEzNDAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iMDo6NDE3Nzo6ODM0ODo6MTI0MjE6OjE2NDY2OjoyMDM4OTo6MjQ1NTA6OjI5NjM4OjozNTM5MDo6NDIzMjk6OjQ5NjA4Ojo1Njk4Mjo6NjQxMTk6OjcwODE5Ojo3MjgyNDo6NzI4MzE6OjcyODM4Ojo3Mjg0NTo6NzI4NTE6OjcyODU5Ojo3Mjg2Njo6NzI4NzM6OjcyODgxOjo3Mjg4OTo6NzI4OTg6OjcyOTA2Ojo3MjkxNDo6NzI5MjI6OjcyOTMxOjo3MjkzODo6NzI5NDY6OjcyOTU1Ojo3Mjk2Mzo6NzI5NzI6OjcyOTc5Ojo3Mjk4Nzo6NzI5OTU6OjczMDA0Ojo3MzAxMjo6NzMwMjE6OjczMDI5Ojo3MzAzNzo6NzMwNDU6OjczMDUyOjo3MzA2MDo6NzMwNjc6OjczMDc0Ojo3MzA4MyIvPgorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSI3MzA5Mjo6NzMxMDA6OjczMTA4Ojo3MzExNjo6NzMxMjQ6OjczMTMxOjo3MzEzOTo6NzMxNDc6OjczMTU1Ojo3MzE2NDo6NzMxNzI6OjczMTgwOjo3MzE4OTo6NzMxOTc6OjczMjA1Ojo3MzIxMzo6NzMyMjE6OjczMjI4Ojo3MzIzNTo6NzMyNDI6OjczMjUwOjo3MzI1ODo6NzMyNjU6OjczMjczOjo3MzI4MTo6NzMyOTA6OjczMjk4Ojo3MzMwNzo6NzMzMTY6OjczMzI0Ojo3MzMzMzo6NzMzNDE6OjczMzQ5Ojo6OjczMzYyOjo3MzM2ODo6NzMzNzQ6OjczMzgxOjo3MzM4Nzo6NzMzOTQ6OjczNDAwOjo3MzQwNzo6NzM0MTQ6OjczNDIxOjo3MzQyODo6NzM0MzY6OjczNDQzOjo3MzQ1MTo6NzM0NTkiLz4KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iNzM0Njc6OjczNDc2Ojo3MzQ4NDo6NzM0OTI6OjczNTAxOjo3MzUwODo6NzM1MTY6OjczNTIzOjo3MzUyOTo6NzM1MzY6OjczNTQzOjo3MzU1MDo6NzM1NTc6OjczNTY0Ojo3MzU3MTo6NzM1Nzg6OjczNTg1Ojo3MzU5Mjo6NzM1OTk6OjczNjA3Ojo3MzYxNDo6NzM2MjI6OjczNjMwOjo3MzYzOTo6NzM2NDc6OjczNjU1Ojo3MzY2Mzo6NzM2NzI6OjczNjgwOjo3MzY4Nzo6NzM2OTQ6OjczNzAyOjo3MzcwOTo6NzM3MTU6OjczNzIxOjo3MzcyODo6NzM3MzU6OjczNzQyOjo3Mzc0ODo6NzM3NTU6OjczNzYyOjo3Mzc2OTo6NzM3NzY6OjczNzgzOjo3Mzc5MTo6NzM3OTg6OjczODA2Ojo3MzgxNCIvPgorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSI3MzgyMzo6NzM4MzE6OjczODQwOjo3Mzg0OTo6NzM4NTg6OjczODY2Ojo3Mzg3NDo6NzM4ODE6OjczODg4Ojo3Mzg5NTo6NzM5MDI6OjczOTA5Ojo3MzkxNzo6NzM5MjQ6OjczOTMxOjo3MzkzODo6NzM5NDU6OjczOTUyOjo3Mzk1OTo6NzM5NjY6OjczOTczOjo3Mzk4MDo6NzM5ODg6OjczOTk2Ojo3NDAwNTo6NzQwMTQ6Ojc0MDIyOjo3NDAzMTo6NzQwMzk6Ojc0MDQ3Ojo3NDA1NTo6NzQwNjI6Ojc0MDY5Ojo3NDA3Njo6NzQwODQ6Ojc0MDkxOjo3NDA5ODo6NzQxMDU6Ojc0MTEyOjo3NjU5Mzo6ODE5MTI6Ojg0MjkzOjo4NDQzODo6ODQ0Mzg6Ojg0NDM4Ojo4NDQzOTo6ODQ0NDA6Ojg0NDQwIi8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9Ijg0NDQyOjo4NDQ0NTo6ODQ0NTA6Ojg0NDUwOjo4NDQ1MDo6ODQ0NTA6Ojg0NTEwOjo4NDYyMjo6ODQ2Nzc6Ojo6ODQ3Njg6Ojg0OTAyOjo4NTE2MTo6ODU4MzQ6Ojg2NjU2Ojo4NzUwMDo6ODkwMzQ6OjkwNzgzOjo5MjQ4Mjo6OTQzODY6Ojk2MDAzOjo5Njc1Njo6OTc2MDg6Ojk4NTIwOjo5ODU2ODo6OTg1Njg6Ojk4NTY4Ojo5ODU2ODo6OTg1Njg6Ojk4NTY4Ojo5ODU2OTo6OTg1Njk6Ojk4NTcwOjo5ODU4MTo6OTg2MDk6Ojk4NjQ5Ojo5ODY1Njo6OTg2NTc6Ojk4NjY0Ojo5ODcwNDo6OTkwNTk6Ojk5MjkxOjo5OTUyMjo6OTk2Nzk6Ojk5NzMwOjo5OTc1Mjo6OTk3ODY6Ojk5ODgyOjo5OTg4MiIvPgorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSI5OTg4Mjo6OTk4ODI6Ojk5ODgyOjo5OTg4Mjo6OTk5NDA6OjEwMDM0Njo6MTAxMDk2OjoxMDI3NDk6OjEwNTA3ODo6MTA3NTI3OjoxMTAwNzI6OjExMjk5MTo6MTE1Nzg2OjoxMTg2NTY6OjEyMTQ0MTo6MTI0MjI4OjoxMjgxNTQ6OjEzMjE0OTo6MTM1ODk1OjoxMzkyNDM6OjE0MjIzNTo6MTQ0NjY1OjoxNDY1NTA6OjE0Nzc2Njo6MTQ4NDMwOjoxNDkxMzI6OjE0OTc4Mzo6MTUwMjgxOjoxNTExNzg6OjE1MzM5Njo6MTU1OTc3OjoxNTk3NjQ6OjE2NDAxMTo6MTY4MzYzOjoxNzI5NTk6OjE3NzQyOTo6MTgxODk3OjoxODY2MTI6OjE5MTMyODo6MTk1Njk3OjoyMDAwNTQ6OjIwNDEyNzo6MjA3OTgxOjoyMTE1MjA6OjIxNDU4MTo6MjE3NzA1OjoyMjA2ODI6OjIyMzIyNCIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIyMjU0NDA6OjIyNzQzMTo6MjI5Mzg5OjoyMzExMjg6OjIzMjk3OTo6MjM1NTAxOjoyMzg3MDU6OjI0Mjg3Nzo6MjQ1Mzk1OjoyNDk4OTQ6OjI1NDQ4NDo6MjU4Njg1OjoyNjI4ODQ6OjI2NzA1OTo6MjcxMzY1OjoyNzU3NDc6OjI4MDA3Mjo6Mjg0MzcxOjoyODg2NTY6OjI5MjU2Nzo6Mjk2MDYyOjoyOTg5NTg6OjMwMTY3ODo6MzAzNjQzOjozMDU0NjQ6OjMwNzI2ODo6MzA5MDg3OjozMTA3MjE6OjMxMjQxNDo6MzE0ODIzOjozMTc5MzM6OjMyMjE1Mzo6MzI2ODg5OjozMzE1Nzc6OjMzNjY2ODo6MzQwOTQ0OjozNDUyMjc6OjM0OTMzODo6MTUxOTc4LjY5Nzo6MTUxOTgyLjYxNDo6MTUxOTg2LjYxOjoxNTE5OTAuMjA3OjoxNTE5OTMuNjY1OjoxNTE5OTYuOTQzOjoxNTE5OTkuODk3OjoxNTIwMDIuMTU4OjoxNTIwMDQuMjA3OjoxNTIwMDYuMTk0Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIxNTIwMDcuOTU0OjoxNTIwMDkuNjM1OjoxNTIwMTEuMzI0OjoxNTIwMTIuODU3OjoxNTIwMTQuNDMzOjoxNTIwMTYuNTg2OjoxNTIwMTkuMTgxOjoxNTIwMjIuMzY1OjoxNTIwMjUuNzI4OjoxNTIwMjguMjg4OjoxNTIwMzAuOTk4OjoxNTIwMzQuMDgxOjoxNTIwMzYuMjQ3OjoxNTIwMzYuMjg0OjoxNTIwMzYuMzAyOjoxNTIwMzYuMzE5OjoxNTIwMzYuMzQxOjoxNTIwMzYuMzU5OjoxNTIwMzYuMzcyOjoxNTIwMzYuMzgzOjoxNTIwMzYuMzk6OjE1MjAzNi4zOTM6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTk6OjE1MjAzNi40MDQ6OjE1MjAzNi40MDc6OjE1MjAzNi40MTI6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTc6OjE1MjAzNi40MjI6OjE1MjAzNi40MjU6OjE1MjAzNi40Mjg6OjE1MjAzNi40MzI6OjE1MjAzNi40MzU6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40MzciLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40NDE6OjE1MjAzNi40NTo6MTUyMDM2LjQ2OjoxNTIwMzYuNDcyOjoxNTIwMzYuNDc2OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDc4OjoxNTIwMzYuNDg5OjoxNTIwMzYuNTQzOjoxNTIwMzYuNjYzOjoxNTIwMzYuNzc4OjoxNTIwMzYuODgzOjoxNTIwMzYuOTcxOjoxNTIwMzcuMDY2OjoxNTIwMzcuMTY0OjoxNTIwMzcuMjU3OjoxNTIwMzcuMzYxOjozNTY2ODU6OjM2MzQwNTo6MzcwNDIwOjozNzc1NzU6OjM4NDEzNDo6MzkwMjI1OjozOTYwNjQ6OjQwMTY5NiIvPgorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iNDA3MTk4Ojo0MTI2NDQ6OjQxNzg4Mzo6NDIyOTk4Ojo0Mjg1MTM6OjQzNTA3NTo6NDQyMjI5Ojo0NTMzOTU6OjQ2NjYwMTo6NDc5NjU4Ojo0OTIxNzc6OjUwNDAwMDo6NTE1OTAxOjo1Mjc5MDE6OjUzOTk5Nzo6Ojo1NTYwMzY6OjU2MzkwMzo6NTcxODIzOjo1NzkwMDU6OjU4NTMyNjo6NTkxMzI1Ojo1OTYzNTQ6OjYwMDcxNTo6NjA0OTkyOjo2MDkxOTk6OjYxMzM4MTo6NjE3NjQ2Ojo2MjI1Mzk6OjYyNzg2ODo6NjMzOTgzOjo2NDA1MDI6OjY0NjY1MDo6Ojo2NTkzMjg6OjY2NTQ5ODo6NjcxODQ1Ojo2NzgyMjc6OjY4NDc2Njo6Njg4OTkwOjo2OTE2MTk6OjY5NDQ5Mjo6Njk3ODQ5Ojo3MDA2OTQ6OjcwMjYyMDo6NzA0NDQyOjo3MDU1NzI6OjcwNjY5MTo6NzA3Njk3Ojo3MDg3MzYiLz4KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjcwOTU0NTo6NzA5OTk3Ojo3MTA2OTA6OjcxMjI0Mzo6NzE0MjU1Ojo3MTY4NDc6OjcxOTYwOTo6NzIyMzczOjo3MjUxNTg6OjcyNzI2MSIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MzA4Njo6Nzc2NjQ3Ojo3ODAyOTY6Ojc4MzgyNjo6Nzg3NDI2Ojo3OTEwNjE6Ojc5NTg0NDo6ODAyMTA5Ojo4MDg4MDE6OjgxNTYyNDo6ODIyNDk4Ojo4MjkyMTM6OjgzNTUwODo6ODQxNDQ5Ojo4NDY4ODY6Ojg1MTc5ODo6ODU2NjY1Ojo4NTkzNTQ6Ojg2MTI2Mzo6ODYzMDgzOjo4NjQ5ODU6Ojg2NzI0NTo6ODY5ODAzOjo4NzI0NjA6Ojg3NTIyMTo6ODc3OTM3Ojo4ODA1NjE6Ojg4MzE1NiIvPgorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iODg1NjU3Ojo4ODgwODU6Ojg5MDUwNTo6ODkzMTEwOjo4OTYxOTQ6Ojg5OTU4MTo6OTAzMTE2Ojo5MDY0NzM6OjkwOTY3Nzo6OTEzMDM0Ojo5MTYwODI6OjkxODY0Njo6OTIxMDkzOjo5MjM0NjA6OjkyNTYzMDo6OTI3NzQ0Ojo5MzAwNTM6OjkzMjgwNjo6OTM1OTA0Ojo5Mzk3NTM6Ojk0NDU0MDo6OTUwMTYzOjo5NTU4ODQ6Ojk2MTIzMzo6OTY2NjczOjo5NzI1MzM6Ojk3ODc1ODo6OTg1MTY4Ojo5OTE2Njg6Ojk5NzcxMzo6MTAwMzA5MTo6MTAwODI3NDo6MTAxMjc0OTo6MTAxNzAzODo6MTAyMDkzNzo6MTAyNDYyNDo6MTAyNzkxOTo6MTAzMTA0Nzo6MTAzNDA4Nzo6MTAzNjk3Njo6MTA0MDEwNjo6MTA0NDEwMjo6MTA0OTIwMTo6MTA1NTE3Nzo6MTA2MTQxMTo6MTA2NzUyODo6MTA3Mzc1OTo6MTA3OTgwNiIvPgorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iMTA4NTc0ODo6MTA5MTU2Njo6MTA5Nzk2NDo6MTEwNDA5ODo6MTEwOTk2NTo6MTExNTYxMTo6MTEyMTA5Mzo6MTEyNjMyMTo6MTEzMDYzMDo6MTEzNDQ5Nzo6MTEzNzk3Mzo6MTEzOTk3MDo6MTE0MTg0OTo6MTE0MzkyMzo6MTE0NTkxODo6MTE0NzY0Nzo6MTE0OTU1Nzo6MTE1MzE3MTo6MTE1NzMyOTo6MTE2MTkzNDo6MTE2NjY2NDo6MTE3MTIwNDo6MTE3NTk1Nzo6MTE4MDcyMTo6MTE4NTQ0Njo6MTE5MDYzMjo6MTE5NjIwNDo6MTIwMTc0Mzo6MTIwNzMyODo6MTIxMjYwODo6MTIxNzg0Nzo6MTIyMjY3NDo6MTIyNjk0Mjo6MTIzMTA2Njo6MTIzNDg3ODo6MTIzODE1MTo6MTI0MTM5ODo6MTI0NDUyNTo6MTI0NzU0NDo6MTI1MDQwODo6MTI1MzY2Mzo6MTI1NzY0NTo6MTI2MjIzOTo6MTI2NzkwNTo6MTI3NDA3NTo6MTI4MDUxMjo6MTI4NzEwOTo6MTI5MzU2NiIvPgorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMTMwNjUwMTo6MTMxMjc3NTo6MTMxODUzOTo6MTMyMzc5ODo6MTMyOTM4Nzo6MTMzNTEwNTo6MTM0MDg4Mzo6MTM0NjM5Njo6MTM1MTM3Njo6MTM1NTU5NDo6MTM1OTA5OTo6MTM2Mjc0Mjo6MTM2NjM1NTo6MTM2OTkzNjo6MTM3MzQxODo6MTM3NzE1Njo6MTM4MTQ0MDo6MTM4NTk3Njo6MTM5MTQxNjo6MTM5NzEyNDo6MTQwMzYyMjo6MTQxMjkwNTo6MTQyMDQ5NDo6MTQyNjUxOTo6MTQzMjc5MTo6MTQzODczMTo6MTQ0NDcwMDo6MTQ1MDQ5NTo6MTQ1NTkxNjo6MTQ2MTI5Mzo6MTQ2NjY0ODo6MTQ3MTMyMzo6MTQ3NTkwNDo6MTQ3OTkwMzo6MTQ4MzUxNDo6MTQ4NzAzMDo6MTQ5MDY4Mjo6MTQ5NDMyNDo6MTQ5NzkxODo6MTUwMTYxNTo6MTUwNTQ2ODo6MTUwOTM1ODo6MTUxMzUwMzo6MTUxNzg1MDo6MTUyMjAwNDo6MTUyNTk1Nzo6MTUyOTcyODo6MTUzMzQwMyIvPgorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMTUzNzAwMzo6MTU0MTI4OTo6MTU0NjEyNDo6MTU1MTI1Njo6MTU1NjI4Njo6MTU2MTI3Mjo6MTU2NTczMTo6MTU2OTU4MTo6MTU3Mjk0MCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSI1MjUxMzAwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MTA6OjUyMTo6MTAwOTo6MTkxNDo6MjMyOTo6MjgwNDo6MzQ3NiIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSI0NTQ2Ojo0NjgyOjo0NzE5Ojo0ODM4Ojo1MzUwOjo2MTY1Ojo2MzY1Ojo2NDQ1Ojo2NDkwOjo6OjY1NzE6OjY2NDM6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjcyMDg6Ojc2Nzk6OjgxMjQ6Ojg0ODA6OjkwMTA6Ojk1MDE6Ojk5MTg6OjEwNzA4OjoxMDk2MDo6MTEwNzk6OjExMjAwOjoxMTI1NTo6MTE0NTk6OjExNjU2OjoxMTc5Mzo6MTIxNTk6OjEyMTU5OjoxMjE1OTo6MTIxNTk6OjEyMTYwOjoxMjE3OTo6MTIyMTU6OjEyMjg3OjoxMjMwMjo6MTI4ODQiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iMTM1MzM6OjE0MjMwOjoxNTA2Mjo6MTYyMDQ6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1NiIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5MiIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTM6OjE3MTU3LjUxMTo6MTcxNTcuNTI1OjoxNzE1Ny41NDI6OjE3MTU3LjU1ODo6MTcxNTcuNTc5OjoxNzE1Ny41OTk6OjE3MTU3LjYwODo6MTcxNTcuNjExOjoxNzE1Ny42MTI6OjE3MTU3LjYxMjo6MTcxNTcuNjEyOjoxNzE1Ny42MTI6OjE3MTU3LjYxMzo6MTcxNTcuNjE2OjoxNzE1Ny42MTg6OjE3MTU3LjYyMzo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzI6OjE3MTU3LjY0OSIvPgorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMTcxNTcuNjY5OjoxNzE1Ny42ODY6OjE3MTU3LjcwNjo6MTcxNTcuNzI4OjoxNzE1Ny43NTI6OjE3MTU3Ljc3MTo6MTcxNTcuNzg2OjoxNzE1Ny43OTk6OjE3MTU3LjgxMjo6MTcxNTcuODI0OjoxNzE1Ny44Mzg6OjE3MTU3Ljg1OjoxNzE1Ny44NjE6OjE3MTU3Ljg3MTo6MTcxNTcuODgzOjoxNzE1Ny44OTo6MTcxNTcuODk6OjE3MTU3Ljg5OjoxNzE1Ny44OTo6MTcxNTcuODk6OjE3MTU3Ljg5OjoxNzE1Ny44OTE6OjE3MTU3Ljg5OTo6MTcxNTcuOTExOjoxNzE1Ny45MTg6OjE3MTU3LjkyOjoxNzE1Ny45MjE6OjE3MTU3LjkyNTo6MTcxNTcuOTMyOjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ii8+CisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSIxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ojo6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1NiIvPgorCQkJCQk8dmFsIG89IjFhOTY0MCIgdj0iMTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTYiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjI2MzY2OjoyNjY0ODo6Mjk3Mzc6OjMzNzkwOjozNzMyMDo6NDEwMzg6OjQ1NDkxOjo1MDg3MDo6NTYzNzg6OjYyMDY2Ojo2Nzg5Mjo6NzQ0MzU6OjgxMDczOjo4Nzc0ODo6OTQ0ODc6OjEwMTMyNTo6MTA4MTczOjoxMTQ2NzE6OjEyMDQxNzo6MTI1NzY4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMzQ2MDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSI2MDk0NTY0Ojo2MDk1ODY5Ojo2MDk3NDMzOjo2MDk5MDQ2Ojo2MTAwNjMwOjo2MTAxOTYwOjo2MTAzMTM3Ojo2MTA0ODI2Ojo2MTA2NDg3Ojo2MTA4MzM4Ojo2MTEwMDU3Ojo2MTEyMDg3Ojo2MTE0MTA4Ojo2MTE2MDE3Ojo2MTE2NjM1Ojo2MTE2NjQwOjo2MTE2NjQ1Ojo2MTE2NjQ4Ojo2MTE2NjQ5Ojo2MTE2NjU0Ojo2MTE2NjYxOjo2MTE2NjY3Ojo2MTE2Njc0Ojo2MTE2NjgxOjo2MTE2Njg4Ojo2MTE2Njk0Ojo2MTE2NzAxOjo2MTE2NzA4Ojo2MTE2NzE1Ojo2MTE2NzIxOjo2MTE2NzIzOjo2MTE2NzMwOjo2MTE2NzM4Ojo2MTE2NzQ1Ojo2MTE2NzUxOjo2MTE2NzU3Ojo2MTE2NzY0Ojo2MTE2NzcxOjo2MTE2Nzc5Ojo2MTE2Nzg2Ojo2MTE2NzkzOjo2MTE2Nzk5Ojo2MTE2ODAwOjo2MTE2ODAwOjo2MTE2ODA1Ojo2MTE2ODA4Ojo2MTE2ODEyOjo2MTE2ODE5Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjYxMTY4MjY6OjYxMTY4MzI6OjYxMTY4MzI6OjYxMTY4MzQ6OjYxMTY4Mzg6OjYxMTY4Mzk6OjYxMTY4Mzk6OjYxMTY4NDU6OjYxMTY4NTI6OjYxMTY4NTk6OjYxMTY4NjY6OjYxMTY4NzM6OjYxMTY4ODA6OjYxMTY4ODc6OjYxMTY4OTM6OjYxMTY4OTg6OjYxMTY4OTk6OjYxMTY4OTk6OjYxMTY4OTk6OjYxMTY5MDE6OjYxMTY5MDI6OjYxMTY5MDQ6OjYxMTY5MDU6OjYxMTY5MTA6OjYxMTY5MTc6OjYxMTY5MjQ6OjYxMTY5MzE6OjYxMTY5Mzg6OjYxMTY5NDU6OjYxMTY5NTI6OjYxMTY5NTc6OjYxMTY5NjE6OjYxMTY5Njg6Ojo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3Mjo6NjExNjk3ODo6NjExNjk4MDo6NjExNjk4Nzo6NjExNjk5NCIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSI2MTE3MDAxOjo2MTE3MDA4Ojo2MTE3MDE1Ojo2MTE3MDIyOjo2MTE3MDI5Ojo2MTE3MDMzOjo2MTE3MDM5Ojo2MTE3MDQyOjo2MTE3MDQyOjo2MTE3MDQ0Ojo2MTE3MDQ5Ojo2MTE3MDU0Ojo2MTE3MDYxOjo2MTE3MDYyOjo2MTE3MDYyOjo2MTE3MDYzOjo2MTE3MDY1Ojo2MTE3MDY1Ojo2MTE3MDY2Ojo2MTE3MDcyOjo2MTE3MDc4Ojo2MTE3MDg0Ojo2MTE3MDkxOjo2MTE3MDk4Ojo2MTE3MTAzOjo2MTE3MTEwOjo2MTE3MTE3Ojo2MTE3MTI0Ojo2MTE3MTI5Ojo2MTE3MTI5Ojo2MTE3MTM0Ojo2MTE3MTM2Ojo2MTE3MTM3Ojo2MTE3MTM3Ojo2MTE3MTM3Ojo2MTE3MTM4Ojo2MTE3MTQ0Ojo2MTE3MTQ1Ojo2MTE3MTQ1Ojo2MTE3MTQ1Ojo2MTE3MTQ1Ojo2MTE3MTQ1Ojo2MTE3MTQ1Ojo2MTE3MTQ4Ojo2MTE3MTUwOjo2MTE3MTU0Ojo2MTE3MTYwOjo2MTE3MTY3Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjYxMTcxNzQ6OjYxMTcxODE6OjYxMTcxODk6OjYxMTcxOTY6OjYxMTcyMDM6OjYxMTcyMTA6OjYxMTcyMTY6OjYxMTcyMTk6OjYxMTcyMjA6OjYxMTcyMjA6OjYxMTcyMjI6OjYxMTcyMjg6OjYxMTcyMzU6OjYxMTcyMzk6OjYxMTcyNDE6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDQ6OjYxMTcyNDc6OjYxMTcyNDg6OjYxMTcyNTI6OjYxMTcyNTk6OjYxMTcyNjY6OjYxMTcyNzM6OjYxMTcyODA6OjYxMTcyODc6OjYxMTcyOTM6OjYxMTcyOTc6OjYxMTczMDM6OjYxMTczMDQ6OjYxMTczMDU6OjYxMTczMDk6OjYxMTczMTY6OjYxMTczMjM6OjYxMTczMzA6OjYxMTczMzY6OjYxMTczNDA6OjYxMTgwOTU6OjYxMTg5MzY6OjYxMTkyOTk6OjYxMTkzMDA6OjYxMjAxMTc6OjYxMjA0MTk6OjYxMjA4Njc6OjYxMjE2OTI6OjYxMjMzMDgiLz4KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iNjEyMzkzODo6NjEyNDEwNjo6NjEyNDc2NTo6NjEyNTY5MTo6NjEyNTc4NDo6NjEyNTc4NTo6NjEyNjEyOTo6NjEyNjEyOTo6NjEyNjEyOTo6Ojo2MTI2MTI5Ojo2MTI2MTI5Ojo2MTI2MTY0Ojo2MTI2MTczOjo2MTI2MTczOjo2MTI2MzU4Ojo2MTI2NTMxOjo2MTI2NTc2Ojo2MTI2ODQwOjo2MTI3NjEyOjo2MTI4NDU1Ojo2MTI4NDU1Ojo2MTI4NzU3Ojo2MTI5ODgwOjo2MTI5OTgxOjo2MTI5OTgzOjo2MTMwMTMzOjo2MTMwNDczOjo2MTMwNDg1Ojo2MTMwNDg1Ojo2MTMwNDg1Ojo2MTMwNDg1Ojo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNTYxOjo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNzkyOjo2MTMyMDE2Ojo2MTMzMTc1Ii8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjYxMzQzMDY6OjYxMzQ3MTc6OjYxMzUwOTM6OjYxMzUwOTM6OjYxMzU0MDI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5MjI6OjYxMzU5Mjk6OjYxMzYwNDE6OjYxMzY2MTc6OjYxMzcyNTY6OjYxMzc1MTI6OjYxMzc3OTc6OjYxMzgwODk6OjYxMzg0MzE6OjYxMzkwNTM6OjYxMzkwNTM6OjYxMzkwNTM6OjYxMzkwNTM6OjYxMzkwNTM6OjYxMzkxNDc6OjYxMzkyNTE6OjYxMzkyNTE6OjYxMzkyNTE6OjYxMzkyNTE6OjYxMzkyNTE6OjYxMzkyNTE6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzkzMDI6OjYxMzk0NTY6OjYxNDA2NTU6OjYxNDE3ODIiLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iNjE0MjYwOTo6NjE0MjgyODo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzMjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzNjo6NjE0MzAzOTo6NjE0MzA1Njo6NjE0MzA1Njo6NjE0MzM4Mjo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU0NTo6NjE0MzU4Nzo6NjE0MzcxMzo6NjE0NDEzNTo6NjE0NDc4Mzo6NjE0NDgxNjo6NjE0NDgxNjo6NjE0NDgxNjo6MTQ0ODE4LjI6OjE0NDgxOC4yOjoxNDQ4MTguMjo6MTQ0ODE4LjI6OjE0NDgxOC4yOjoxNDQ4MTguMjQzOjoxNDQ4MTguNDc0OjoxNDQ4MTguNDg6OjE0NDgxOC43NzU6OjE0NDgxOS45NTUiLz4KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjE0NDgyMS4yNjE6OjE0NDgyMi42NDQ6OjE0NDgyNC4wNTM6OjE0NDgyNC41ODQ6OjE0NDgyNC41ODc6OjE0NDgyNC41ODc6OjE0NDgyNC41ODc6OjE0NDgyNC42Mjo6MTQ0ODI0Ljc0NDo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Nzo6MTQ0ODI0Ljc3OjoxNDQ4MjQuNzg4OjoxNDQ4MjQuNzk2OjoxNDQ4MjQuODAyOjoxNDQ4MjQuODA1OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA5OjoxNDQ4MjQuODIzOjoxNDQ4MjQuODI4Ii8+CisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIxNDQ4MjQuODI4OjoxNDQ4MjQuODI4OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODI5OjoxNDQ4MjQuODM0OjoxNDQ4MjQuODM0OjoxNDQ4MjQuODM0OjoxNDQ4MjQuODM0OjoxNDQ4MjQuODM1OjoxNDQ4MjQuODM1OjoxNDQ4MjQuODQ6OjE0NDgyNC44NDU6OjE0NDgyNC44NDk6OjE0NDgyNC44NjU6OjE0NDgyNC44NzY6OjE0NDgyNC44ODg6OjE0NDgyNC44ODk6OjE0NDgyNC44ODk6OjE0NDgyNC44ODk6OjE0NDgyNC44ODk6OjE0NDgyNC44ODk6OjE0NDgyNC44ODk6OjE0NDgyNC44ODk6OjE0NDgyNC44OTI6OjE0NDgyNC44OTY6OjE0NDgyNC44OTc6OjE0NDgyNC45OjoxNDQ4MjQuOTo6MTQ0ODI0Ljk6OjYxNDQ4MjQ6OjYxNDQ4MjQ6OjYxNDQ4MjQ6OjYxNDQ4MjQ6OjYxNDUwMDA6OjYxNDY3MDI6OjYxNDg5OTU6OjYxNTEyOTgiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjYxNTQwMTE6OjYxNTY4ODU6OjYxNTk4MjE6OjYxNjE3ODE6OjYxNjI0MjQ6OjYxNjM1NjU6OjYxNjUyNzg6OjYxNjY4Njg6OjYxNjc3NTU6OjYxNjg2NzE6OjYxNzEzMTI6OjYxNzQzMTU6OjYxNzcwMTQ6OjYxNzk2MDk6OjYxODE1Njg6Ojo6NjE4MjA3Njo6NjE4MjU2Nzo6NjE4Mzg2Mzo6NjE4NTEyMjo6NjE4NjY2ODo6NjE4ODkwNjo6NjE5MDAzNzo6NjE5MTAxNjo6NjE5MjU3Nzo6NjE5NDI3NDo6NjE5NjAyOTo6NjE5NjgxMDo6NjE5Njg1NTo6NjE5Njk1Mjo6NjE5NzY4MTo6NjE5ODU0ODo6NjE5ODY1Nzo6Ojo2MTk5MzkyOjo2MjAwMzcyOjo2MjAwODk1Ojo2MjAxMjI4Ojo2MjAxNDI1Ojo2MjAxNDI1Ojo2MjAyODU2Ojo2MjA1NTg1Ojo2MjA5MDQ4Ojo2MjExMTE1Ojo2MjEyNjQ4Ojo2MjE1NzIwOjo2MjE5MDkwOjo2MjIxNzczOjo2MjI0ODQ4Ojo2MjI4MTg1Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSI2MjMxNTMwOjo2MjMzOTAxOjo2MjM1NTE3Ojo2MjM3MjY0Ojo2MjM5NTU0Ojo2MjQxOTQzOjo2MjQ0MDQ5Ojo2MjQ2MDAzOjo2MjQ4MjkxOjo2MjUwODgwIi8+CisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI2MjY5MzkzOjo2MjY5NDYwOjo2MjY5NTYxOjo2MjY5NTYxOjo2MjcwMTkzOjo2MjcxMTkzOjo2MjcxNzY2Ojo2MjcxNzY2Ojo2MjcxNzY2Ojo2MjcyMDAzOjo2MjczNDE0Ojo2MjczODAyOjo2Mjc0MTkwOjo2Mjc1MDcwOjo2Mjc1Nzg4Ojo2Mjc1ODA1Ojo2Mjc1ODA1Ojo2Mjc1ODQ0Ojo2Mjc2NzQ3Ojo2Mjc3MDkzOjo2Mjc3MTg0Ojo2Mjc3MjY3Ojo2Mjc3NzEwOjo2Mjc4MzQ2Ojo2Mjc5MjYyOjo2MjgwMDQxOjo2MjgxMjY4Ojo2MjgyOTA4Ojo2Mjg0NzQ0Ojo2Mjg2NzkyOjo2Mjg5MDM2Ojo2MjkxMzYyOjo2MjkzNTg2Ojo2Mjk1ODg0Ojo2Mjk4MTM2Ojo2MzAwMTE1Ojo2MzAyMzE2Ojo2MzAyOTU0Ojo2MzAzNDM5Ojo2MzAzNzQ5Ojo2MzAzOTM4Ojo2MzA0MjEyOjo2MzA0OTI0Ojo2MzA1MzA5Ojo2MzA1NjI2Ojo2MzA1ODA0Ojo2MzA2MDA0Ojo2MzA2MzIxIi8+CisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSI2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDA3Ojo2MzA2NDE3Ojo2MzA2NTYyOjo2MzA2OTA0Ojo2MzA3Mzk5Ojo2MzA5NTE3Ojo2MzExNjQzOjo2MzEyNjExOjo2MzEzODc1Ojo2MzE0ODY4Ojo2MzE1MjI4Ojo2MzE1MzUyOjo2MzE1Mzg1Ojo2MzE1ODM1Ojo2MzE2MDE2Ojo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MDIzOjo2MzE2MTEzOjo2MzE2NDYwOjo2MzE2NzU1Ojo2MzE3MTc3Ojo2MzE4MDM2Ojo2MzE4MzgzOjo2MzE5MDM4Ojo2MzE5MDM4Ojo2MzE5NjMyOjo2MzIwNjIwOjo2MzIyMDk5Ojo2MzIzMDI3Ojo2MzIzNTI4Ojo2MzIzOTYyOjo2MzIzOTY3Ojo2MzIzOTY3Ojo2MzI0MTQzOjo2MzI1MTQxOjo2MzI1MzIyOjo2MzI1NzI0Ojo2MzI2MDIwOjo2MzI3MTMyOjo2MzI3MTMyIi8+CisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSI2MzI3MTMyOjo2MzI3MTMyOjo2MzI4MTc0Ojo2MzI4NjY3Ojo2MzI4NjY3Ojo2MzI4NzA1Ojo2MzI5NDAyOjo2MzMwMDU4Ojo2MzMwMDU4Ojo2MzMwNjU1Ojo2MzMxNzc0Ojo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDc4Ojo2MzMyMzE2Ojo2MzMyODcyOjo2MzMyODk3Ojo2MzMyODk3Ojo2MzMyODk3Ojo2MzMyODk3Ojo2MzMzMTczOjo2MzMzMjA0Ojo2MzMzODI3Ojo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NTU0Ojo2MzM0NTU0Ojo2MzM0NTU0Ojo2MzM0NzY1Ojo2MzM0OTc3Ojo2MzM1NDgxOjo2MzM1NzU5Ojo2MzM1NzU5Ojo2MzM1NzU5Ojo2MzM1NzU5Ojo2MzM1ODI0Ojo2MzM1ODI2Ojo2MzM1ODI2Ojo2MzM1ODI2Ojo2MzM1ODI2Ojo2MzM1ODg5Ojo2MzM2NDA3Ii8+CisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSI2MzM4MDQ3Ojo2MzM4NzE5Ojo2MzM4NzI5Ojo2MzM4NzI5Ojo2MzM4NzI5Ojo2MzM5MDY1Ojo2MzQwMzU0Ojo2MzQxNzY2Ojo2MzQyNzIzOjo2MzQzNDMyOjo2MzQzOTI0Ojo2MzQ1MDAyOjo2MzQ2MTE1Ojo2MzQ3MDE4Ojo2MzQ3MDQ4Ojo2MzQ3MDUwOjo2MzQ3MDkxOjo2MzQ3MDkxOjo2MzQ3MDkxOjo2MzQ3MDkxOjo2MzQ3NDA2Ojo2MzUwMjAwOjo2MzUyMDc3Ojo2MzUyMTUwOjo2MzUyMTUwOjo2MzUyMTUwOjo2MzUyMTUwOjo2MzUyMTUwOjo2MzUyMTUwOjo2MzUyMTUwOjo2MzUyMzMxOjo2MzUyMzMxOjo2MzUyNjM4Ojo2MzUzMTkzOjo2MzUzNjk1Ojo2MzU1MDE5Ojo2MzU2OTE1Ojo2MzU4OTUyOjo2MzYwNDMwOjo2MzYxMzUyOjo2MzYxNDIwOjo2MzYxNDIwOjo2MzYxNDIwOjo2MzYxNDIwOjo2MzYxNDIwOjo2MzYxNDIwOjo2MzYxNDIwOjo2MzYxNDIwIi8+CisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSI2MzYxNDIwOjo2MzYxNDM0Ojo2MzYxNjk4Ojo2MzYyMTc0Ojo2MzYyNjYwOjo2MzYzNTAyOjo2MzYzODYwOjo2MzYzODYwOjo2MzYzOTMzIi8+CisJCQkJPC9wYXI+CisJCQkJPHBhciBtZW1pbmQ9IjMzODAxIiBoPSIzZGMxYTdlMCI+CisJCQkJCTx2YWwgbz0iMCIgdj0iODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMiIvPgorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSI4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjIiLz4KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMiIvPgorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSI4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxODAxMDI6Ojg4MTgxMTc2Ojo4ODE4MTg1OTo6ODgxODE4NjE6Ojg4MTgxODk0Ojo4ODE4MTg5Njo6ODgxODE4OTY6Ojg4MTgxODk2Ii8+CisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9Ijg4MTgyMTY5Ojo4ODE4MjIwMDo6ODgxODIyMDA6Ojg4MTgyMjAwOjo4ODE4MjI4ODo6ODgxODMzNjM6Ojg4MTgzODU3Ojo4ODE4NDYzMTo6ODgxODY0MDc6Ojo6ODgxOTQwMTA6Ojg4MTk4MjMzOjo4ODIwMDE0ODo6ODgyMDAzNDg6Ojg4MjAwOTQ3Ojo4ODIwMjYyMDo6ODgyMDMwMTE6Ojg4MjAzNTA3Ojo4ODIwMzUxMjo6ODgyMDM1MTI6Ojg4MjAzNTQzOjo4ODIwNDM1Njo6ODgyMDQ0MDE6Ojg4MjA0NDAxOjo4ODIwNTgzMDo6ODgyMDYxODg6Ojg4MjA2MjIyOjo4ODIwNjIyMjo6ODgyMDY1MDI6Ojg4MjA3NTE3Ojo4ODIwOTAwODo6ODgyMTAxMDI6Ojg4MjEwNjY2Ojo4ODIxMTYzNTo6ODgyMTI3MjQ6Ojg4MjEzNjA0Ojo4ODIxNDEwODo6ODgyMTQ1MTI6Ojg4MjE0OTY5Ojo4ODIxNjIyOTo6ODgyMTY3NTk6Ojg4MjE5MjIxOjo4ODIyMTgxODo6ODgyMjQ1ODk6Ojg4MjI3MDMxOjo4ODIyODg3MDo6ODgyMjk1NjM6Ojg4MjI5NTYzOjo4ODIyOTU4MCIvPgorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSI4ODIyOTU4MDo6ODgyMjk1ODA6Ojg4MjI5NTgyOjo4ODIzMDMyNTo6ODgyMzE4ODE6Ojg4MjMxOTEwOjo4ODIzMjU5NTo6ODgyMzQ1NzQ6Ojg4MjM3MjQ1Ojo4ODI0MDI4Mzo6ODgyNDMwNTY6Ojg4MjQzNjQzOjo4ODI0NDEwNTo6ODgyNDQzNTI6Ojg4MjQ0NTkzOjo4ODI0NTExNTo6ODgyNDU3NDY6Ojg4MjQ1NzQ2Ojo4ODI0NTg5MTo6ODgyNDU5MTU6Ojg4MjQ1OTU5Ojo4ODI0NTk4ODo6ODgyNDU5ODk6Ojg4MjQ3MjQ0Ojo4ODI0ODUxMDo6ODgyNDkyOTM6Ojg4MjUwMjAzOjo4ODI1MjE3ODo6ODgyNTQ1MzE6Ojg4MjU0ODc0Ojo4ODI1NTcwNDo6ODgyNTY4OTg6Ojg4MjU4NDM4Ojo4ODI1OTU5NTo6ODgyNjAzOTg6Ojg4MjYwOTE5Ojo4ODI2Mjg0NTo6ODgyNjQzMTQ6Ojg4MjY2MDA2Ojo4ODI2ODI5Nzo6ODgyNjk5NDI6Ojg4MjcxNTAyOjo4ODI3MjY5MDo6ODgyNzM4NDk6Ojg4Mjc1NTAzOjo4ODI3NjAwMzo6ODgyNzYwMDM6Ojg4Mjc2MDAzIi8+CisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9Ijg4Mjc2MDE3Ojo4ODI3NjAxNzo6ODgyNzYwMTk6Ojg4Mjc2ODUxOjo4ODI3ODUxNTo6ODgyODAxMTg6Ojg4MjgxNTYwOjo4ODI4MzA3NDo6ODgyODM5NzE6Ojg4Mjg1NDI4Ojo4ODI4NjgxNTo6ODgyODc3MjY6Ojg4Mjg4ODMzOjo4ODI4OTk1Mzo6ODgyOTEwMzc6Ojg4MjkzMDk5Ojo4ODI5NTQyNzo6ODgyOTY2NzQ6Ojg4Mjk3MTMzOjo4ODI5NzgzMjo6ODgyOTg2MTI6Ojg4Mjk5NDQ3Ojo4ODI5OTUxNzo6ODgzMDA1NDE6Ojg4MzAxMDI1Ojo4ODMwMTMwNDo6ODgzMDE1MDM6Ojg4MzAyNDY4Ojo4ODMwNDQxNzo6ODgzMDYxMDY6Ojg4MzA3NTcxOjo4ODMwODM2ODo6ODgzMDg0NDg6Ojg4MzA4NDQ4Ojo4ODMwODQ0ODo6ODgzMDkwMjE6Ojg4MzA5ODk5Ojo4ODMxMDcxOTo6MTExMTg4LjAxNjo6MTExMTg5LjM6OjExMTE5MC4wODg6OjExMTE5MS44MjM6OjExMTE5Mi45MTo6MTExMTkzLjIwMjo6MTExMTkzLjQ3Mzo6MTExMTkzLjkzMTo6MTExMTkzLjk0ODo6MTExMTkzLjk0OCIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMTExMTkzLjk0ODo6MTExMTkzLjk0ODo6MTExMTkzLjk0ODo6MTExMTkzLjk0ODo6MTExMTk0LjU4OjoxMTExOTUuNTE5OjoxMTExOTYuNzM1OjoxMTExOTguMzM4OjoxMTExOTkuMzAyOjoxMTEyMDAuNjI1OjoxMTEyMDEuNzc1OjoxMTEyMDIuNDIyOjoxMTEyMDMuMDA4OjoxMTEyMDMuMDI6OjExMTIwMy4wMzI6OjExMTIwMy4wNjI6OjExMTIwMy4wOTg6OjExMTIwMy4xMzU6OjExMTIwMy4xNzE6OjExMTIwMy4yMDM6OjExMTIwMy4yMTI6OjExMTIwMy4yMTY6OjExMTIwMy4yMjE6OjExMTIwMy4yNzY6OjExMTIwMy4yOTk6OjExMTIwMy4zMTY6OjExMTIwMy4zMzU6OjExMTIwMy4zNzE6OjExMTIwMy40MjI6OjExMTIwMy40NTI6OjExMTIwMy40NTc6OjExMTIwMy40NjQ6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njk6OjExMTIwMy41OjoxMTEyMDMuNTMyOjoxMTEyMDMuNTcxOjoxMTEyMDMuNjA2OjoxMTEyMDMuNjMyOjoxMTEyMDMuNjM5OjoxMTEyMDMuNjM5OjoxMTEyMDMuNjM5OjoxMTEyMDMuNjYxIi8+CisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIxMTEyMDMuNjcxOjoxMTEyMDMuNjcxOjoxMTEyMDMuNjcyOjoxMTEyMDMuNjg0OjoxMTEyMDMuNzE1OjoxMTEyMDMuNzM5OjoxMTEyMDMuNzYxOjoxMTEyMDMuODAxOjoxMTEyMDMuODM3OjoxMTEyMDMuODY3OjoxMTEyMDMuODkxOjoxMTEyMDMuODk3OjoxMTEyMDMuOTA0OjoxMTEyMDMuOTE1OjoxMTEyMDMuOTM1OjoxMTEyMDMuOTU1OjoxMTEyMDMuOTYyOjoxMTEyMDMuOTY5OjoxMTEyMDMuOTcyOjoxMTEyMDMuOTg4OjoxMTEyMDMuOTk3OjoxMTEyMDMuOTk3OjoxMTEyMDQ6OjExMTIwNC4wMDE6OjExMTIwNC4wMDE6OjExMTIwNC4wMDE6OjExMTIwNC4wMDE6OjExMTIwNC4wMDE6OjExMTIwNC4wMTY6OjExMTIwNC4wNTI6OjExMTIwNC4wNjM6OjExMTIwNC4wNzo6MTExMjA0LjA4MTo6MTExMjA0LjA5Mzo6MTExMjA0LjA5Nzo6MTExMjA0LjA5Nzo6MTExMjA0LjA5OTo6MTExMjA0LjExOjoxMTEyMDQuMTI4OjoxMTEyMDQuMTY0Ojo4ODMxMjYyODo6ODgzMTQ3Njc6Ojg4MzE2MjkwOjo4ODMxNzI4NDo6ODgzMTc2OTQ6Ojg4MzE3Njk0Ojo4ODMxNzY5NDo6ODgzMTc2OTQiLz4KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9Ijg4MzE3Njk0Ojo4ODMxNzY5NDo6ODgzMTc2OTQ6Ojg4MzE3Njk0Ojo4ODMxNzY5ODo6ODgzMTc3MDA6Ojg4MzE3NzEzOjo4ODMxNzcxMzo6ODgzMTc3MTM6Ojg4MzE3NzEzOjo4ODMxNzc3ODo6ODgzMTc3Nzg6Ojg4MzE3Nzc4Ojo4ODMxNzc3ODo6ODgzMTc3Nzg6Ojo6ODgzMjA1MTE6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjE0MjA6Ojg4MzIzMDQyOjo4ODMyMzA0Mjo6ODgzMjMwNTM6Ojg4MzIzMTA1Ojo6Ojg4MzIzMTM3Ojo4ODMyMzEzNzo6ODgzMjMxMzc6Ojg4MzIzMTM3Ojo4ODMyMzE0ODo6ODgzMjM3NzU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ii8+CisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSI4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3OTA6Ojg4MzIzNzkwOjo4ODMyMzc5MDo6ODgzMjM3OTA6Ojg4MzIzNzkwOjo4ODMyMzc5MCIvPgorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iODgzNDIxMzA6Ojg4MzQyMjA5Ojo4ODM0MjUyOTo6ODgzNDQ0NTg6Ojg4MzQ0NDg1Ojo4ODM0NDQ4NTo6ODgzNDU5MDU6Ojg4MzQ4Mzc5Ojo4ODM1MDQ5NDo6ODgzNTA4MTM6Ojg4MzUwODEzOjo4ODM1MTA1Njo6ODgzNTEwNTY6Ojg4MzUxMDU2Ojo4ODM1MTA1Njo6ODgzNTEyODc6Ojg4MzUyNDI4Ojo4ODM1MzU5ODo6ODgzNTM1OTg6Ojg4MzUzNjAxOjo4ODM1Mzg1OTo6ODgzNTM4NjI6Ojg4MzUzODYyOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzOTY1Ojo4ODM1Mzk2NTo6ODgzNTM5NjU6Ojg4MzU0MDE4Ojo4ODM1NDAxODo6ODgzNTQwMTg6Ojg4MzU0MDE4Ojo4ODM1NDAxODo6ODgzNTQwMjE6Ojg4MzU0MDIxOjo4ODM1NDAyMSIvPgorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iODgzNTQxNjY6Ojg4MzU0NTUyOjo4ODM1NTEzMDo6ODgzNTcxNTQ6Ojg4MzU5MjI2Ojo4ODM1OTgyODo6ODgzNTk4Mjg6Ojg4MzYwMDY4Ojo4ODM2MDEyNjo6ODgzNjAxMjY6Ojg4MzYwMTI2Ojo4ODM2MDE5NDo6ODgzNjAyMDU6Ojg4MzYwMjA1Ojo4ODM2MDIwNTo6ODgzNjAyMjM6Ojg4MzYwNDA2Ojo4ODM2MTM4NTo6ODgzNjIyOTc6Ojg4MzYzNTExOjo4ODM2NTc1Nzo6ODgzNjc4MjE6Ojg4MzY5MjczOjo4ODM2OTkyOTo6ODgzNzE1Mzg6Ojg4MzczMzIyOjo4ODM3Mzg5OTo6ODgzNzQ2Mjk6Ojg4Mzc0NjMxOjo4ODM3NDY1NTo6ODgzNzQ2NTc6Ojg4Mzc0ODIyOjo4ODM3NTQ2Njo6ODgzNzU0NzE6Ojg4Mzc1NDcxOjo4ODM3NTQ3MTo6ODgzNzU1OTk6Ojg4Mzc1NTk5Ojo4ODM3NTU5OTo6ODgzNzYxMDI6Ojg4Mzc3NDMyOjo4ODM3ODMwNjo6ODgzNzgzMTk6Ojg4Mzc4NDY3Ojo4ODM3ODkxNzo6ODgzNzg5MTc6Ojg4Mzc4OTE4Ojo4ODM3OTQ4MiIvPgorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iODgzODA3Nzc6Ojg4MzgyMjc1Ojo4ODM4MjY2MTo6ODgzODI3Nzc6Ojg4MzgzMjUwOjo4ODM4MzU5Mjo6ODgzODM1OTI6Ojg4MzgzNzExOjo4ODM4NTIwMzo6ODgzODUyNTc6Ojg4Mzg1MjU3Ojo4ODM4ODQ1OTo6ODgzOTAzOTQ6Ojg4MzkwODUwOjo4ODM5MTU2MTo6ODgzOTM4MzQ6Ojg4Mzk3NTc5Ojo4ODM5NzgxOTo6ODgzOTc4MTk6Ojg4Mzk5MjE4Ojo4ODQwMTc5Mjo6ODg0MDUzODY6Ojg4NDA4MTAwOjo4ODQwODEyMjo6ODg0MDgzNjU6Ojg4NDA4NTA1Ojo4ODQwODUwNTo6ODg0MTAyNDY6Ojg4NDExNjYwOjo4ODQxMjg0OTo6ODg0MTMzMzM6Ojg4NDE0NTIxOjo4ODQxNjY5Njo6ODg0MTc1ODM6Ojg4NDE3NjgzOjo4ODQxNzg1NDo6ODg0MTc4NTQ6Ojg4NDE3ODgzOjo4ODQxODAyNzo6ODg0MTkxNTk6Ojg4NDIwMTA4Ojo4ODQyMTA3MTo6ODg0MjE4Mjg6Ojg4NDIzNTU5Ojo4ODQyNjg5NDo6ODg0Mjk5NzU6Ojg4NDMyODI4Ojo4ODQzMjgyOCIvPgorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iODg0MzI4Mjg6Ojg4NDMyODI4Ojo4ODQzNDk1MTo6ODg0Mzk1NDg6Ojg4NDQwOTE2Ojo4ODQ0MTAzMDo6ODg0NDEwMzA6Ojg4NDQxMDMwOjo4ODQ0MTAzMDo6ODg0NDEwMzA6Ojg4NDQxMTE2Ojo4ODQ0MTExNjo6ODg0NDExMTY6Ojg4NDQxMTE2Ojo4ODQ0MTIxODo6ODg0NDE3Mzk6Ojg4NDQyMzYzOjo4ODQ0MzU0Mjo6ODg0NDUzNDQ6Ojg4NDQ4NjI0Ojo4ODQ1MTQ2NDo6ODg0NTE0NjQ6Ojg4NDUxNDczOjo4ODQ1MTY1Mjo6ODg0NTE4NDA6Ojg4NDUyMzIzOjo4ODQ1MzMzMjo6ODg0NTU4ODk6Ojg4NDU4NTA3Ojo4ODQ2MDU5NTo6ODg0NjA3NzI6Ojg4NDYyMDY1Ojo4ODQ2MjI2NDo6ODg0NjI2MDg6Ojg4NDYyNjIyOjo4ODQ2MjYyMjo6ODg0NjI2MjI6Ojg4NDYyNjIyOjo4ODQ2MjYyMjo6ODg0NjI2MjI6Ojg4NDYyODI2Ojo4ODQ2MzUzODo6ODg0NjQ2Njc6Ojg4NDY2MzEwOjo4ODQ2ODMwOTo6ODg0NzEzOTM6Ojg4NDc0MzA4Ojo4ODQ3NzI3NCIvPgorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iODg0ODAzNzg6Ojg4NDgxMTU3Ojo4ODQ4MTc2Njo6ODg0ODE3NjY6Ojg4NDgxNzY2Ojo4ODQ4MTc2Njo6ODg0ODMzNDA6Ojg4NDg1NjI2Ojo4ODQ4NjExOCIvPgorCQkJCTwvcGFyPgorCQkJCTxwYXIgbWVtaW5kPSIzMzQwMSIgaD0iM2RjMWE3ZTAiPgorCQkJCQk8dmFsIG89IjAiIHY9Ijk0Mzc3OTU6Ojk0NDE5NzI6Ojk0NDYxNDQ6Ojk0NTAyMTc6Ojk0NTQyNjE6Ojk0NTgxODQ6Ojk0NjIzNDY6Ojk0Njc0MzQ6Ojk0NzMxODY6Ojk0ODAxMjY6Ojk0ODc0MDQ6Ojk0OTQ3Nzk6Ojk1MDE5MTY6Ojk1MDg2MTU6Ojk1MTA2MjE6Ojk1MTA2Mjg6Ojk1MTA2MzU6Ojk1MTA2NDI6Ojk1MTA2NDk6Ojk1MTA2NTY6Ojk1MTA2NjM6Ojk1MTA2NzE6Ojk1MTA2Nzg6Ojk1MTA2ODc6Ojk1MTA2OTU6Ojk1MTA3MDM6Ojk1MTA3MTI6Ojk1MTA3MjA6Ojk1MTA3Mjg6Ojk1MTA3MzY6Ojk1MTA3NDM6Ojk1MTA3NTE6Ojk1MTA3NjA6Ojk1MTA3Njg6Ojk1MTA3NzY6Ojk1MTA3ODQ6Ojk1MTA3OTI6Ojk1MTA4MDA6Ojk1MTA4MDk6Ojk1MTA4MTc6Ojk1MTA4MjY6Ojk1MTA4MzM6Ojk1MTA4NDA6Ojk1MTA4NDc6Ojk1MTA4NTU6Ojk1MTA4NjM6Ojk1MTA4NzE6Ojk1MTA4NzkiLz4KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iOTUxMDg4ODo6OTUxMDg5Njo6OTUxMDkwNDo6OTUxMDkxMjo6OTUxMDkyMDo6OTUxMDkyODo6OTUxMDkzNTo6OTUxMDk0NDo6OTUxMDk1Mjo6OTUxMDk2MDo6OTUxMDk2ODo6OTUxMDk3Njo6OTUxMDk4NDo6OTUxMDk5Mzo6OTUxMTAwMTo6OTUxMTAwOTo6OTUxMTAxNjo6OTUxMTAyMzo6OTUxMTAzMDo6OTUxMTAzODo6OTUxMTA0NTo6OTUxMTA1Mzo6OTUxMTA2MTo6OTUxMTA2OTo6OTUxMTA3ODo6OTUxMTA4Njo6OTUxMTA5NTo6OTUxMTEwMzo6OTUxMTExMjo6OTUxMTEyMTo6OTUxMTEyOTo6OTUxMTEzNzo6OTUxMTE0NDo6Ojo5NTExMTU4Ojo5NTExMTY1Ojo5NTExMTcxOjo5NTExMTc4Ojo5NTExMTg0Ojo5NTExMTkwOjo5NTExMTk3Ojo5NTExMjAzOjo5NTExMjA5Ojo5NTExMjE2Ojo5NTExMjIzOjo5NTExMjMxOjo5NTExMjM5Ojo5NTExMjQ3Ojo5NTExMjU1Ii8+CisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9Ijk1MTEyNjQ6Ojk1MTEyNzI6Ojk1MTEyODA6Ojk1MTEyODk6Ojk1MTEyOTc6Ojk1MTEzMDU6Ojk1MTEzMTM6Ojk1MTEzMjA6Ojk1MTEzMjc6Ojk1MTEzMzM6Ojk1MTEzNDA6Ojk1MTEzNDc6Ojk1MTEzNTQ6Ojk1MTEzNjE6Ojk1MTEzNjg6Ojk1MTEzNzU6Ojk1MTEzODI6Ojk1MTEzODk6Ojk1MTEzOTc6Ojk1MTE0MDQ6Ojk1MTE0MTI6Ojk1MTE0MTk6Ojk1MTE0Mjc6Ojk1MTE0MzU6Ojk1MTE0NDM6Ojk1MTE0NTE6Ojk1MTE0NjA6Ojk1MTE0Njg6Ojk1MTE0NzY6Ojk1MTE0ODQ6Ojk1MTE0OTI6Ojk1MTE1MDA6Ojk1MTE1MDY6Ojk1MTE1MTM6Ojk1MTE1MTk6Ojk1MTE1MjY6Ojk1MTE1MzM6Ojk1MTE1Mzk6Ojk1MTE1NDY6Ojk1MTE1NTM6Ojk1MTE1NTk6Ojk1MTE1NjU6Ojk1MTE1NzI6Ojk1MTE1ODA6Ojk1MTE1ODc6Ojk1MTE1OTU6Ojk1MTE2MDM6Ojk1MTE2MTEiLz4KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iOTUxMTYxOTo6OTUxMTYyODo6OTUxMTYzNzo6OTUxMTY0Njo6OTUxMTY1NDo6OTUxMTY2Mjo6OTUxMTY3MDo6OTUxMTY3Nzo6OTUxMTY4NDo6OTUxMTY5MTo6OTUxMTY5ODo6OTUxMTcwNTo6OTUxMTcxMzo6OTUxMTcyMDo6OTUxMTcyNzo6OTUxMTczNDo6OTUxMTc0MDo6OTUxMTc0Nzo6OTUxMTc1NDo6OTUxMTc2MTo6OTUxMTc2OTo6OTUxMTc3Nzo6OTUxMTc4NTo6OTUxMTc5NDo6OTUxMTgwMzo6OTUxMTgxMTo6OTUxMTgyMDo6OTUxMTgyODo6OTUxMTgzNjo6OTUxMTg0NDo6OTUxMTg1Mjo6OTUxMTg1OTo6OTUxMTg2Njo6OTUxMTg3Mzo6OTUxMTg4MDo6OTUxMTg4ODo6OTUxMTg5NTo6OTUxMTkwMjo6OTUxMTkwOTo6OTUxNDM5MDo6OTUxOTcwOTo6OTUyMjA4OTo6OTUyMjIzNDo6OTUyMjIzNDo6OTUyMjIzNDo6OTUyMjIzNTo6OTUyMjIzNTo6OTUyMjIzNSIvPgorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSI5NTIyMjM3Ojo5NTIyMjQwOjo5NTIyMjQ1Ojo5NTIyMjQ1Ojo5NTIyMjQ1Ojo5NTIyMjQ1Ojo5NTIyMzA1Ojo5NTIyNDE3Ojo5NTIyNDcyOjo6Ojk1MjI1NjQ6Ojk1MjI2OTg6Ojk1MjI5NTc6Ojk1MjM2MzA6Ojk1MjQ0NTE6Ojk1MjUyOTY6Ojk1MjY4MzA6Ojk1Mjg1Nzk6Ojk1MzAyNzk6Ojk1MzIxODI6Ojk1MzM3OTk6Ojk1MzQ1NTI6Ojk1MzU0MDQ6Ojk1MzYzMTc6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjU6Ojk1MzYzNjU6Ojk1MzYzNjY6Ojk1MzYzNzg6Ojk1MzY0MDU6Ojk1MzY0NDU6Ojk1MzY0NTI6Ojk1MzY0NTQ6Ojk1MzY0NjA6Ojk1MzY1MDE6Ojk1MzY4NTU6Ojk1MzcwODc6Ojk1MzczMTg6Ojk1Mzc0NzQ6Ojk1Mzc1MjU6Ojk1Mzc1NDg6Ojk1Mzc1ODE6Ojk1Mzc2Nzc6Ojk1Mzc2NzgiLz4KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iOTUzNzY3ODo6OTUzNzY3ODo6OTUzNzY3ODo6OTUzNzY3ODo6OTUzNzczNjo6OTUzODE0Mzo6OTUzODg5Mzo6OTU0MDU0Njo6OTU0Mjg3NTo6OTU0NTMyNDo6OTU0Nzg2OTo6OTU1MDc4ODo6OTU1MzU4Mjo6OTU1NjQ1Mzo6OTU1OTIzNzo6OTU2MjAyNTo6OTU2NTk1MTo6OTU2OTk0Nzo6OTU3MzY5Mjo6OTU3NzA0MDo6OTU4MDAzMjo6OTU4MjQ2Mjo6OTU4NDM0Nzo6OTU4NTU2Mjo6OTU4NjIyNjo6OTU4NjkyODo6OTU4NzU3OTo6OTU4ODA3Nzo6OTU4ODk3NDo6OTU5MTE5Mjo6OTU5Mzc3Mzo6OTU5NzU2MDo6OTYwMTgwODo6OTYwNjE2MDo6OTYxMDc1Njo6OTYxNTIyNjo6OTYxOTY5NDo6OTYyNDQwOTo6OTYyOTEyNDo6OTYzMzQ5Mzo6OTYzNzg0OTo6OTY0MTkyMjo6OTY0NTc3Njo6OTY0OTMxNjo6OTY1MjM3ODo6OTY1NTUwMjo6OTY1ODQ3OTo6OTY2MTAyMSIvPgorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI5NjYzMjM3Ojo5NjY1MjI4Ojo5NjY3MTg3Ojo5NjY4OTI1Ojo5NjcwNzc2Ojo5NjczMjk3Ojo5Njc2NTAyOjo5NjgwNjczOjo5NjgzMTkxOjo5Njg3NjkwOjo5NjkyMjc5Ojo5Njk2NDgxOjo5NzAwNjc5Ojo5NzA0ODU1Ojo5NzA5MTYxOjo5NzEzNTQyOjo5NzE3ODY3Ojo5NzIyMTY3Ojo5NzI2NDUxOjo5NzMwMzYzOjo5NzMzODU5Ojo5NzM2NzU0Ojo5NzM5NDc1Ojo5NzQxNDQwOjo5NzQzMjYwOjo5NzQ1MDY0Ojo5NzQ2ODgzOjo5NzQ4NTE3Ojo5NzUwMjEwOjo5NzUyNjE5Ojo5NzU1NzMwOjo5NzU5OTQ5Ojo5NzY0Njg2Ojo5NzY5Mzc0Ojo5Nzc0NDY1Ojo5Nzc4NzQxOjo5NzgzMDIzOjo5Nzg3MTM1Ojo4OTc3NS4xMjM6Ojg5Nzc5LjA0Ojo4OTc4My4wMzY6Ojg5Nzg2LjYzMzo6ODk3OTAuMDkxOjo4OTc5My4zNjk6Ojg5Nzk2LjMyNDo6ODk3OTguNTg1Ojo4OTgwMC42MzU6Ojg5ODAyLjYyMSIvPgorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iODk4MDQuMzgxOjo4OTgwNi4wNjM6Ojg5ODA3Ljc1Mjo6ODk4MDkuMjg0Ojo4OTgxMC44Njo6ODk4MTMuMDEyOjo4OTgxNS42MDc6Ojg5ODE4Ljc5Ojo4OTgyMi4xNTQ6Ojg5ODI0LjcxNDo6ODk4MjcuNDI1Ojo4OTgzMC41MDg6Ojg5ODMyLjY3Mzo6ODk4MzIuNzE6Ojg5ODMyLjcyODo6ODk4MzIuNzQ1Ojo4OTgzMi43Njc6Ojg5ODMyLjc4NTo6ODk4MzIuNzk4Ojo4OTgzMi44MDk6Ojg5ODMyLjgxNzo6ODk4MzIuODI6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNjo6ODk4MzIuODMxOjo4OTgzMi44MzQ6Ojg5ODMyLjgzODo6ODk4MzIuODQ6Ojg5ODMyLjg0Ojo4OTgzMi44NDo6ODk4MzIuODQ6Ojg5ODMyLjg0Mzo6ODk4MzIuODQ4Ojo4OTgzMi44NTE6Ojg5ODMyLjg1NDo6ODk4MzIuODU4Ojo4OTgzMi44NjE6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQiLz4KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9Ijg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2ODo6ODk4MzIuODc3Ojo4OTgzMi44ODc6Ojg5ODMyLjg5OTo6ODk4MzIuOTAzOjo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkxNjo6ODk4MzIuOTc6Ojg5ODMzLjA5Ojo4OTgzMy4yMDQ6Ojg5ODMzLjMwOTo6ODk4MzMuMzk3Ojo4OTgzMy40OTI6Ojg5ODMzLjU5Ojo4OTgzMy42ODM6Ojg5ODMzLjc4ODo6OTc5NDQ4Mjo6OTgwMTIwMTo6OTgwODIxNzo6OTgxNTM3Mjo6OTgyMTkzMDo6OTgyODAyMjo6OTgzMzg2MTo6OTgzOTQ5MyIvPgorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iOTg0NDk5Njo6OTg1MDQ0MTo6OTg1NTY4MTo6OTg2MDc5NTo6OTg2NjMxMTo6OTg3Mjg3Mzo6OTg4MDAyNzo6OTg5MTE5Mzo6OTkwNDM5ODo6OTkxNzQ1NDo6OTkyOTk3NDo6OTk0MTc5Njo6OTk1MzY5ODo6OTk2NTY5ODo6OTk3Nzc5NDo6Ojo5OTkzODM0OjoxMDAwMTcwMTo6MTAwMDk2MjE6OjEwMDE2ODAzOjoxMDAyMzEyNDo6MTAwMjkxMjM6OjEwMDM0MTUxOjoxMDAzODUxMzo6MTAwNDI3ODk6OjEwMDQ2OTk2OjoxMDA1MTE3ODo6MTAwNTU0NDM6OjEwMDYwMzM2OjoxMDA2NTY2NTo6MTAwNzE3ODA6OjEwMDc4Mjk5OjoxMDA4NDQ0Njo6OjoxMDA5NzEyMzo6MTAxMDMyOTM6OjEwMTA5NjQxOjoxMDExNjAyMzo6MTAxMjI1NjI6OjEwMTI2Nzg1OjoxMDEyOTQxNDo6MTAxMzIyODg6OjEwMTM1NjQ1OjoxMDEzODQ4OTo6MTAxNDA0MTY6OjEwMTQyMjM4OjoxMDE0MzM2ODo6MTAxNDQ0ODc6OjEwMTQ1NDk0OjoxMDE0NjUzMiIvPgorCQkJCQk8dmFsIG89IjFhOTY0MCIgdj0iMTAxNDczNDE6OjEwMTQ3NzkzOjoxMDE0ODQ4Njo6MTAxNTAwMzk6OjEwMTUyMDUxOjoxMDE1NDY0Mzo6MTAxNTc0MDY6OjEwMTYwMTcwOjoxMDE2Mjk1NTo6MTAxNjUwNTgiLz4KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMTA4ODI6OjEwMjE0NDQ0OjoxMDIxODA5Mzo6MTAyMjE2MjM6OjEwMjI1MjIzOjoxMDIyODg1ODo6MTAyMzM2NDE6OjEwMjM5OTA2OjoxMDI0NjU5ODo6MTAyNTM0MjA6OjEwMjYwMjk1OjoxMDI2NzAxMDo6MTAyNzMzMDU6OjEwMjc5MjQ1OjoxMDI4NDY4Mjo6MTAyODk1OTQ6OjEwMjk0NDYxOjoxMDI5NzE1MDo6MTAyOTkwNjA6OjEwMzAwODc5OjoxMDMwMjc4MTo6MTAzMDUwNDE6OjEwMzA3NjAwOjoxMDMxMDI1Njo6MTAzMTMwMTc6OjEwMzE1NzMyOjoxMDMxODM1Nzo6MTAzMjA5NTIiLz4KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjEwMzIzNDUzOjoxMDMyNTg4MTo6MTAzMjgzMDE6OjEwMzMwOTA2OjoxMDMzMzk5MTo6MTAzMzczNzg6OjEwMzQwOTEzOjoxMDM0NDI3MDo6MTAzNDc0NzQ6OjEwMzUwODMxOjoxMDM1Mzg4MDo6MTAzNTY0NDM6OjEwMzU4ODkwOjoxMDM2MTI1Nzo6MTAzNjM0Mjc6OjEwMzY1NTQyOjoxMDM2Nzg1MDo6MTAzNzA2MDI6OjEwMzczNzAwOjoxMDM3NzU0ODo6MTAzODIzMzU6OjEwMzg3OTU5OjoxMDM5MzY3OTo6MTAzOTkwMjg6OjEwNDA0NDY5OjoxMDQxMDMyODo6MTA0MTY1NTQ6OjEwNDIyOTY0OjoxMDQyOTQ2NDo6MTA0MzU1MTA6OjEwNDQwODg3OjoxMDQ0NjA3MDo6MTA0NTA1NDQ6OjEwNDU0ODMzOjoxMDQ1ODczMjo6MTA0NjI0MTk6OjEwNDY1NzE0OjoxMDQ2ODg0Mjo6MTA0NzE4ODI6OjEwNDc0NzcyOjoxMDQ3NzkwMTo6MTA0ODE4OTc6OjEwNDg2OTk3OjoxMDQ5Mjk3Mzo6MTA0OTkyMDc6OjEwNTA1MzI0OjoxMDUxMTU1NTo6MTA1MTc2MDIiLz4KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjEwNTIzNTQ0OjoxMDUyOTM2Mjo6MTA1MzU3NjA6OjEwNTQxODk0OjoxMDU0Nzc2Mjo6MTA1NTM0MDc6OjEwNTU4ODkwOjoxMDU2NDExODo6MTA1Njg0MjY6OjEwNTcyMjk0OjoxMDU3NTc3MTo6MTA1Nzc3Njc6OjEwNTc5NjQ3OjoxMDU4MTcyMDo6MTA1ODM3MTY6OjEwNTg1NDQ0OjoxMDU4NzM1NDo6MTA1OTA5Njg6OjEwNTk1MTI2OjoxMDU5OTczMTo6MTA2MDQ0NjA6OjEwNjA5MDAwOjoxMDYxMzc1Mzo6MTA2MTg1MTY6OjEwNjIzMjQxOjoxMDYyODQyODo6MTA2MzM5OTk6OjEwNjM5NTM5OjoxMDY0NTEyNTo6MTA2NTA0MDU6OjEwNjU1NjQzOjoxMDY2MDQ3MTo6MTA2NjQ3Mzg6OjEwNjY4ODYyOjoxMDY3MjY3NTo6MTA2NzU5NDc6OjEwNjc5MTk1OjoxMDY4MjMyMjo6MTA2ODUzNDA6OjEwNjg4MjA0OjoxMDY5MTQ2MDo6MTA2OTU0NDM6OjEwNzAwMDM3OjoxMDcwNTcwMjo6MTA3MTE4NzM6OjEwNzE4MzA5OjoxMDcyNDkwNzo6MTA3MzEzNjQiLz4KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjEwNzQ0Mjk4OjoxMDc1MDU3Mzo6MTA3NTYzMzY6OjEwNzYxNTk0OjoxMDc2NzE4NDo6MTA3NzI5MDE6OjEwNzc4Njc5OjoxMDc4NDE5Mzo6MTA3ODkxNzM6OjEwNzkzMzkxOjoxMDc5Njg5NTo6MTA4MDA1Mzg6OjEwODA0MTUxOjoxMDgwNzczMjo6MTA4MTEyMTQ6OjEwODE0OTUyOjoxMDgxOTIzNjo6MTA4MjM3NzI6OjEwODI5MjEyOjoxMDgzNDkyMDo6MTA4NDE0MTg6OjEwODUwNzAxOjoxMDg1ODI4OTo6MTA4NjQzMTU6OjEwODcwNTg2OjoxMDg3NjUyNjo6MTA4ODI0OTY6OjEwODg4MjkxOjoxMDg5MzcxMzo6MTA4OTkwOTA6OjEwOTA0NDQ0OjoxMDkwOTExOTo6MTA5MTM3MDA6OjEwOTE3Njk5OjoxMDkyMTMxMDo6MTA5MjQ4MjY6OjEwOTI4NDc4OjoxMDkzMjEyMTo6MTA5MzU3MTU6OjEwOTM5NDEyOjoxMDk0MzI2NTo6MTA5NDcxNTQ6OjEwOTUxMjk5OjoxMDk1NTY0Nzo6MTA5NTk4MDI6OjEwOTYzNzU1OjoxMDk2NzUyNjo6MTA5NzEyMDEiLz4KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjEwOTc0ODAxOjoxMDk3OTA4Njo6MTA5ODM5MjI6OjEwOTg5MDUzOjoxMDk5NDA4Mzo6MTA5OTkwNjk6OjExMDAzNTI5OjoxMTAwNzM3OTo6MTEwMTA3MzgiLz4KKwkJCQk8L3Bhcj4KKwkJCQk8cGFyIG1lbWluZD0iMzMwMDEiIGg9IjNkYzFhN2UwIj4KKwkJCQkJPHZhbCBvPSIwIiB2PSIzODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2Ii8+CisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6Ojo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3NiIvPgorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSIzODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2Ii8+CisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1ODc6OjM4NjEzMDk3OjozODYxMzU4NTo6Mzg2MTQ0OTA6OjM4NjE0OTA2OjozODYxNTM4MDo6Mzg2MTYwNTMiLz4KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iMzg2MTcxMjM6OjM4NjE3MjU4OjozODYxNzI5Njo6Mzg2MTc0MTQ6OjM4NjE3OTI2OjozODYxODc0MTo6Mzg2MTg5NDI6OjM4NjE5MDIxOjozODYxOTA2Njo6OjozODYxOTE0Nzo6Mzg2MTkyMTk6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5Nzg2OjozODYyMDI1Nzo6Mzg2MjA3MDI6OjM4NjIxMDU4OjozODYyMTU4Nzo6Mzg2MjIwNzg6OjM4NjIyNDk0OjozODYyMzI4NDo6Mzg2MjM1MzY6OjM4NjIzNjU1OjozODYyMzc3Njo6Mzg2MjM4MzE6OjM4NjI0MDM1OjozODYyNDIzMjo6Mzg2MjQzNjk6OjM4NjI0NzM1OjozODYyNDczNTo6Mzg2MjQ3MzU6OjM4NjI0NzM1OjozODYyNDczNzo6Mzg2MjQ3NTU6OjM4NjI0NzkxOjozODYyNDg2Mzo6Mzg2MjQ4Nzk6OjM4NjI1NDYwIi8+CisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjM4NjI2MTEwOjozODYyNjgwNzo6Mzg2Mjc2Mzk6OjM4NjI4NzgxOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzIiLz4KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iMzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4Ii8+CisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk5OjoyMjk3MzQuNDE3OjoyMjk3MzQuNDMxOjoyMjk3MzQuNDQ4OjoyMjk3MzQuNDY1OjoyMjk3MzQuNDg1OjoyMjk3MzQuNTA1OjoyMjk3MzQuNTE0OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE4OjoyMjk3MzQuNTIxOjoyMjk3MzQuNTIzOjoyMjk3MzQuNTI4OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM3OjoyMjk3MzQuNTU0Ii8+CisJCQkJPC9wYXI+CisJCQk8L2RldmljZT4KKwkJPC9zZWxlY3Q+CisJPC9kYXRhPgorPC9lbGVjdHJveG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0NSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc2OGUzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2F0dDUKQEAgLTAsMCArMSw0MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhQVRUTElTVCBub3JtSWQgYXR0ciBOTVRPS0VOUyAjSU1QTElFRD4KK10+Cis8ZG9jPgorICA8IS0tIG5vIG5vcm1hbGl6YXRpb24gLS0+CisgIDxub3JtIGF0dHI9IiAgICIvPgorICA8bm9ybSBhdHRyPSIgICBmb28gYmFyICAgIi8+CisgIDxub3JtIGF0dHI9IiAgZm9vYmFyIi8+CisgIDxub3JtIGF0dHI9IiBmb28gYmFyICIvPgorICA8bm9ybSBhdHRyPSJmb29iYXIgICIvPgorICA8bm9ybSBhdHRyPSIgJmFtcDsgIi8+CisgIDxub3JtIGF0dHI9IiAgIGZvbyZhbXA7YmFyICAgIi8+CisgIDxub3JtIGF0dHI9IiAgZm9vYmFyJmFtcDsiLz4KKyAgPG5vcm0gYXR0cj0iJmFtcDtmb28gYmFyICIvPgorICA8bm9ybSBhdHRyPSJmb29iYXIgICZhbXA7Ii8+CisgIDxub3JtIGF0dHI9IiAmbHQ7ICIvPgorICA8bm9ybSBhdHRyPSIgICBmb28mbHQ7YmFyICAgIi8+CisgIDxub3JtIGF0dHI9IiAgZm9vYmFyJmx0OyIvPgorICA8bm9ybSBhdHRyPSImbHQ7Zm9vIGJhciAiLz4KKyAgPG5vcm0gYXR0cj0iZm9vYmFyICAmbHQ7Ii8+CisgIDxub3JtIGF0dHI9IiAgJiMxMzsmIzEwOyYjOTsgIi8+CisgIDwhLS0gbm9ybWFsaXphdGlvbiAtLT4KKyAgPG5vcm1JZCBhdHRyPSIiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb28gYmFyIi8+CisgIDxub3JtSWQgYXR0cj0iZm9vYmFyIi8+CisgIDxub3JtSWQgYXR0cj0iZm9vIGJhciIvPgorICA8bm9ybUlkIGF0dHI9ImZvb2JhciIvPgorICA8bm9ybUlkIGF0dHI9IiZhbXA7Ii8+CisgIDxub3JtSWQgYXR0cj0iZm9vJmFtcDtiYXIiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb29iYXImYW1wOyIvPgorICA8bm9ybUlkIGF0dHI9IiZhbXA7Zm9vIGJhciIvPgorICA8bm9ybUlkIGF0dHI9ImZvb2JhciAmYW1wOyIvPgorICA8bm9ybUlkIGF0dHI9IiZsdDsiLz4KKyAgPG5vcm1JZCBhdHRyPSJmb28mbHQ7YmFyIi8+CisgIDxub3JtSWQgYXR0cj0iZm9vYmFyJmx0OyIvPgorICA8bm9ybUlkIGF0dHI9IiZsdDtmb28gYmFyIi8+CisgIDxub3JtSWQgYXR0cj0iZm9vYmFyICZsdDsiLz4KKyAgPG5vcm1JZCBhdHRyPSImIzEzOyYjMTA7JiM5OyIvPiA8IS0tIFBCTSBzZXJpYWxpemluZyBiYWNrIC0tPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQ2IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0NgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzhlNmI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0NgpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8SW52b2ljZSB4bWxuczpjY3RzPSJ1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkNvcmVDb21wb25lbnRQYXJhbWV0ZXJzOjEuMDowLjcwIiB4bWxuczpjY3Q9InVybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29yZUNvbXBvbmVudFR5cGVzOjEuMDowLjcwIiB4bWxuczpjYXQ9InVybjpvYXNpczpuYW1lczp0Yzp1Ymw6Q29tbW9uQWdncmVnYXRlVHlwZXM6MS4wOjAuNzAiIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkludm9pY2U6MS4wOjAuNzAiPgorICAgPGNhdDpSZWZlcmVuY2VkT3JkZXI+CisgICAgICA8Y2F0OlNlbGxlcnNPcmRlcklEIHNjaGVtZUlEPSJwdmFsdWUtJmd0O1JlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVJRCIgc2NoZW1lQWdlbmN5SUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZUFnZW5jeUlEIiBzY2hlbWVWZXJzaW9uSUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZVZlcnNpb25JRCIgc2NoZW1lQWdlbmN5U2NoZW1lSUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZUFnZW5jeVNjaGVtZUlEIiBzY2hlbWVBZ2VuY3lTY2hlbWVBZ2VuY3lJRD0icHZhbHVlLSZndDtSZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lQWdlbmN5U2NoZW1lQWdlbmN5SUQiIHNjaGVtZURhdGFVUkk9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZURhdGFVUkkiIHNjaGVtZVVSST0icHZhbHVlLSZndDtSZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lVVJJIiBVSUQ9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELlVJRCIgVUlEUmVmPSJwdmFsdWUtJmd0O1JlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5VSURSZWYiIFVJRFJlZnM9InB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELlVJRFJlZnMwIiBsYW5ndWFnZT0icHZhbHVlLSZndDtSZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQubGFuZ3VhZ2UiPnB2YWx1ZS0mZ3Q7UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklEPC9jYXQ6U2VsbGVyc09yZGVySUQ+CisgICA8L2NhdDpSZWZlcmVuY2VkT3JkZXI+Cis8L0ludm9pY2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQ3IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0NwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNThhMDRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0NwpAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB4IFsKKzwhRUxFTUVOVCB4ICh0ZXN0KSo+Cis8IUVMRU1FTlQgdGVzdCBFTVBUWT4KKzwhQVRUTElTVCB0ZXN0IGF0dCBDREFUQSAiYXR0dmFsdWUiPgorPCFFTlRJVFkgdGVzdC5lbnQgIjx0ZXN0Lz4iPgorXT4KKzx4PgorICAgIDx0ZXN0Lz4KKyAgICA8dGVzdC8+Cis8L3g+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQ4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0OApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDgwN2EyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0OApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxpbm86cmVzcG9uc2UgeG1sbnM6aW5vPSJodHRwOi8vbmFtZXNwYWNlcy5zb2Z0d2FyZWFnLmNvbS90YW1pbm8vcmVzcG9uc2UyIiB4bWxuczp4cWw9Imh0dHA6Ly9tZXRhbGFiLnVuYy5lZHUveHFsLyIgaW5vOnNlc3Npb25pZD0iNTU2IiBpbm86c2Vzc2lvbmtleT0iMTU5MDQ2OTY3NyI+PHhxbDpxdWVyeT4vYnNrOkRvY1BhcnRbQGRvY0lkPScyMDA0MDMwODE1MjYwMTM0NTIzNicgYW5kIEBkb2NQYXJ0Tm89MV08L3hxbDpxdWVyeT48aW5vOm1lc3NhZ2UgaW5vOnJldHVybnZhbHVlPSIwIj48aW5vOm1lc3NhZ2VsaW5lPlhRTCBSZXF1ZXN0IHByb2Nlc3Npbmc8L2lubzptZXNzYWdlbGluZT48L2lubzptZXNzYWdlPjx4cWw6cmVzdWx0Pjxic2s6RG9jUGFydCB4bWxuczpic2s9Imh0dHA6Ly93d3cuaGVpdGVjLm5ldC9zYXJhNC90YW1pbm8vYmFza2V0IiBkb2NJZD0iMjAwNDAzMDgxNTI2MDEzNDUyMzYiIGRvY1BhcnRObz0iMSIgaW5vOmlkPSIxNTI5MCI+PGJzazpGaWxlIG5hbWU9IjQ4OThXUFpFTzJNNjUiIHNpemU9Ijc1MTk1Ij4gPC9ic2s6RmlsZT48L2JzazpEb2NQYXJ0PjwveHFsOnJlc3VsdD48aW5vOm1lc3NhZ2UgaW5vOnJldHVybnZhbHVlPSIwIj48aW5vOm1lc3NhZ2VsaW5lPlhRTCBSZXF1ZXN0IHByb2Nlc3NlZDwvaW5vOm1lc3NhZ2VsaW5lPjwvaW5vOm1lc3NhZ2U+PC9pbm86cmVzcG9uc2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHQ5IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0OQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDk4MmEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0OQpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUFUVExJU1QgZG9jIGExIE5NVE9LRU5TICIxIDIiPgorPCFFTEVNRU5UIGRvYyAoI1BDREFUQSk+CitdPgorPGRvYy8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9hdHRyaWIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0cmliLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWExZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYXR0cmliLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGl0ZW0gdGl0bGU9Ikljcm9udGljLmNvbSAtIFdhcm5pbmc6IEJyZWFrZGFuY2luZyBtaWRnZXQgd2l0aCB0b3VyZXR0ZSdzIHN5bmRyb21lIG9uLWJvYXJkJiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7JiN4QTA7IiB1cmw9Imh0dHA6Ly93d3cuaWNyb250aWMuY29tLyIgZmlyc3RfdGltZT0iOTg1MDM0MzM5IiBsYXN0X3RpbWU9Ijk4NTAzNDMzOSIgdmlzaXRzPSIxIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9iYWRjb21tZW50LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2JhZGNvbW1lbnQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMTNjMTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9iYWRjb21tZW50LnhtbApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGZvbz4KKzwhLS0gZGVmPSdOVC1DaGFyJy0tPjwhLS0+Q2hhcjwvbnQ+KiAnXV0mZ3Q7JyA8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKSkKKyddXSZndDsnPC9yaHM+Cis8Y29tPkNEQVRBIHNlY3Rpb25zPC9jb20+Cis8cmhzPnwgJyZsdDshRE9DVFlQRScgCisoPG50IGRlZj0iTlQtQ2hhciI+Q2hhcjwvbnQ+IC0gKCdbJyB8ICddJykpKworKCdbJyAKKzxudCBkZWY9Ik5ULXNpbXBsZURURCI+c2ltcGxlRFREPC9udD4qCisnXScpPyAnJmd0Oyc8L3Jocz4KKzxjb20+ZG9jIHR5cGUgZGVjbGFyYXRpb248L2NvbT4KKzxwcm9kIGlkPSJOVC1zaW1wbGVEVEQiPjxsaHM+c2ltcGxlRFREPC9saHM+Cis8cmhzPicmbHQ7ISZjb21vOycgCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAtIAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogJyZjb21jOycgPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KikpCisnJmNvbWM7Jmd0Oyc8L3Jocz4tLT4KKzwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYmlnZW50bmFtZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9iaWdlbnRuYW1lLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTdkOWQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYmlnZW50bmFtZS54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTlRJVFkgdmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWUgJyJZZXMiJz4KKzwhRU5USVRZIFdoYXRIZVNhaWQgIkhlIHNhaWQgJnZlcnlfYmlnX2VudGl0eV9uYW1lMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ZlcnlfYmlnX2VudF9uYW1lOyI+CitdPgorPGRvYz5IZSBzYWlkICJZZXMiPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9iaWduYW1lLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2JpZ25hbWUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NWZkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9iaWduYW1lLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHRoaXNfaXNfYV92ZXJ5X2xhcmdlX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYmlnbmFtZTIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvYmlnbmFtZTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0OGMzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9iaWduYW1lMi54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx0aGlzX2lzX2FfdmVyeV9sYXJnZV9xdWFsaWZpZWRfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfcHJlZml4OnN0YXJ0X25jX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUgeG1sbnM6dGhpc19pc19hX3ZlcnlfbGFyZ2VfcXVhbGlmaWVkX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ByZWZpeD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS90ZXN0bnMvIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jZGF0YSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2NkYXRhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4MGVhNDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jZGF0YQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKzwhW0NEQVRBWzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz5dXT4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY2RhdGEyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY2RhdGEyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ZGI3OTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jZGF0YTIKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGNvbGxlY3Rpb24+CisgIDx0ZXN0PjwhW0NEQVRBWworICAgIDwhW0NEQVRBW2FiY11dXT5dJmd0OzwhW0NEQVRBWworICBdXT48L3Rlc3Q+Cis8L2NvbGxlY3Rpb24+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jb21tZW50LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2NvbW1lbnQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4YzVlZmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jb21tZW50LnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKzwhLS0gZG9jdW1lbnQgc3RhcnQgLS0+Cis8ZW1wdHkvPgorPCEtLSBkb2N1bWVudCBlbmQgLS0+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2NvbW1lbnQyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2NvbW1lbnQyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTEyMmVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY29tbWVudDIueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIGRvY3VtZW50IHN0YXJ0IC0tPgorPGRvYz4KKzxlbXB0eS8+Cis8L2RvYz4KKzwhLS0gZG9jdW1lbnQgZW5kIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY29tbWVudDMueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY29tbWVudDMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NWY2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jb21tZW50My54bWwKQEAgLTAsMCArMSwxNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhLS0gdGVzdCBvZiB2ZXJ5IHZlcnkgbG9uZyBjb21tZW50cyBhbmQgYnVmZmVyIGxpbWl0cworMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKy0tPgorPGRvYy8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jb21tZW50NC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jb21tZW50NC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyODJkOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2NvbW1lbnQ0LnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhLS0gdGVzdCBvZiBub24gYXNjaWkgY29tbWVudHMgbGlrZSBs4CBldCB0cuhzIC0tPgorPCEtLeAgYW5vdGhlciBvbmUgLS0+Cis8IS0tIGFub3RoZXIgb25lIOAtLT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY29tbWVudDUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY29tbWVudDUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5OGY5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9jb21tZW50NS54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IS0tIHRlc3Qgb2YgaHlwaGVuIGFuZCBsaW5lIGJyZWFrIGhhbmRsaW5nCisgICAgIHNvbWUgdGV4dCAtIGludGVycnVwdGVkIC0KKy0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KKyAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNob3VsZCBzdG9wIGhlcmVeCisKKworLS0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2NvbW1lbnQ2LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2NvbW1lbnQ2LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTYwNzRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvY29tbWVudDYueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLQorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50Citsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudAorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQKKy0tPgorPCFET0NUWVBFIGEgWworPCFFTEVNRU5UIGEgRU1QVFk+CitdPgorPGEvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JmZDRjNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjEKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDptdWx0aXN0YXR1cyB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIiB4bWxuczpSPSJodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hIj4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxSOmJpZ2JveD4KKyAgICAgICAgPFI6Qm94VHlwZT5Cb3ggdHlwZSBBPC9SOkJveFR5cGU+CisgICAgICA8L1I6YmlnYm94PgorICAgICAgPFI6YXV0aG9yPgorICAgICAgICA8UjpOYW1lPkouSi4gRGluZ2xlaGVpbWVyc2NobWlkdDwvUjpOYW1lPgorICAgICAgPC9SOmF1dGhvcj4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUC8xLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpwcm9wPgorICAgICAgPFI6RGluZ0FMaW5nLz4KKyAgICAgIDxSOlJhbmRvbS8+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDQwMyBGb3JiaWRkZW48L0Q6c3RhdHVzPgorICAgIDxEOnJlc3BvbnNlZGVzY3JpcHRpb24+IFRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBEaW5nQUxpbmcgcHJvcGVydHkuCisgICAgICA8L0Q6cmVzcG9uc2VkZXNjcmlwdGlvbj4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZWRlc2NyaXB0aW9uPiBUaGVyZSBoYXMgYmVlbiBhbiBhY2Nlc3MgdmlvbGF0aW9uIGVycm9yLgorIDwvRDpyZXNwb25zZWRlc2NyaXB0aW9uPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYxMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjAwZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTAKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm93bmVyIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpocmVmPmh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdy9jb250YWN0Lmh0bWw8L0Q6aHJlZj4KKzwvRDpvd25lcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjExIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFjMjNkNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjExCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6cHJvcCB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPEQ6bG9ja2Rpc2NvdmVyeT4KKyAgICA8RDphY3RpdmVsb2NrPgorICAgICAgPEQ6bG9ja3R5cGU+d3JpdGU8L0Q6bG9ja3R5cGU+CisgICAgICA8RDpsb2Nrc2NvcGU+ZXhjbHVzaXZlPC9EOmxvY2tzY29wZT4KKyAgICAgIDxEOmFkZGxvY2tzLz4KKyAgICAgIDxEOm93bmVyPgorICAgICAgICA8RDpocmVmPgorCQlodHRwOi8vd3d3Lmljcy51Y2kuZWR1L35lancvY29udGFjdC5odG1sCisJCTwvRDpocmVmPgorICAgICAgPC9EOm93bmVyPgorICAgICAgPEQ6dGltZW91dD5TZWNvbmQtNjA0ODAwPC9EOnRpbWVvdXQ+CisgICAgICA8RDpsb2NrdG9rZW4+CisgICAgICAgIDxEOmhyZWY+CisJICAgb3BhcXVlbG9ja3Rva2VuOnh5ejEyMjM5MzQ4MTIzMDkxMmFzZGZhMDlzOGRmMDlzN2RmCisJCTwvRDpocmVmPgorICAgICAgPC9EOmxvY2t0b2tlbj4KKyAgICA8L0Q6YWN0aXZlbG9jaz4KKyAgPC9EOmxvY2tkaXNjb3Zlcnk+Cis8L0Q6cHJvcD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjEyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhkMDNmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjEyCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpocmVmIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPmh0dHA6Ly93d3cuaWNzLnVjaS5lZHUvfmVqdy9jb250YWN0Lmh0bWw8L0Q6aHJlZj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjEzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ0YWUzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjEzCkBAIC0wLDAgKzEsMTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOmhyZWY+CisJICAgaHR0cDovL3dlYmRhdi5zYi5hb2wuY29tL3dvcmtzcGFjZS93ZWJkYXYvcHJvcG9zYWwuZG9jCisgICAgICA8L0Q6aHJlZj4KKyAgICA8RDpocmVmPgorCSAgIGh0dHA6Ly93ZWJkYXYuc2IuYW9sLmNvbS93b3Jrc3BhY2Uvd2ViZGF2LworICAgICAgPC9EOmhyZWY+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDIwMiBBY2NlcHRlZDwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6aHJlZj5odHRwOi8vZm9vLmJhci9ibGFoPC9EOmhyZWY+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDQwMyBGb3JiaWRkZW48L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYxNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjE1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4MDgwMmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYxNQpAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOnByb3AgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyIgeG1sbnM6Rj0iaHR0cDovL3d3dy5mb29jb3JwLmNvbS9Qcm9qZWN0LyI+CisgIDxEOlNvdXJjZT4KKyAgICA8RDpsaW5rPgorICAgICAgPEY6cHJvamZpbGVzPlNvdXJjZTwvRjpwcm9qZmlsZXM+CisgICAgICA8RDpzcmM+aHR0cDovL2Zvby5iYXIvcHJvZ3JhbTwvRDpzcmM+CisgICAgICA8RDpkc3Q+aHR0cDovL2Zvby5iYXIvc3JjL21haW4uYzwvRDpkc3Q+CisgICAgPC9EOmxpbms+CisgICAgPEQ6bGluaz4KKyAgICAgIDxGOnByb2pmaWxlcz5MaWJyYXJ5PC9GOnByb2pmaWxlcz4KKyAgICAgIDxEOnNyYz5odHRwOi8vZm9vLmJhci9wcm9ncmFtPC9EOnNyYz4KKyAgICAgIDxEOmRzdD5odHRwOi8vZm9vLmJhci9zcmMvbWFpbi5saWI8L0Q6ZHN0PgorICAgIDwvRDpsaW5rPgorICAgIDxEOmxpbms+CisgICAgICA8Rjpwcm9qZmlsZXM+TWFrZWZpbGU8L0Y6cHJvamZpbGVzPgorICAgICAgPEQ6c3JjPmh0dHA6Ly9mb28uYmFyL3Byb2dyYW08L0Q6c3JjPgorICAgICAgPEQ6ZHN0Pmh0dHA6Ly9mb28uYmFyL3NyYy9tYWtlZmlsZTwvRDpkc3Q+CisgICAgPC9EOmxpbms+CisgIDwvRDpTb3VyY2U+Cis8L0Q6cHJvcD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjE2IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE3ZGMzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjE2CkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpwcm9wZmluZCB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPEQ6cHJvcD4KKyAgICA8bG9ja2Rpc2NvdmVyeS8+CisgIDwvRDpwcm9wPgorPC9EOnByb3BmaW5kPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYxNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTM3NjYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTcKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDptdWx0aXN0YXR1cyB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxEOmxvY2tkaXNjb3Zlcnk+CisgICAgICAgIDxEOmFjdGl2ZWxvY2s+CisgICAgICAgICAgPEQ6bG9ja3R5cGU+d3JpdGU8L0Q6bG9ja3R5cGU+CisgICAgICAgICAgPEQ6bG9ja3Njb3BlPmV4Y2x1c2l2ZTwvRDpsb2Nrc2NvcGU+CisgICAgICAgICAgPEQ6YWRkbG9ja3M+CisgICAgICAgICAgICA8RDpocmVmPmh0dHA6Ly9mb28uY29tL2RvYy88L0Q6aHJlZj4KKyAgICAgICAgICA8L0Q6YWRkbG9ja3M+CisgICAgICAgICAgPEQ6b3duZXI+SmFuZSBTbWl0aDwvRDpvd25lcj4KKyAgICAgICAgICA8RDp0aW1lb3V0PkluZmluaXRlPC9EOnRpbWVvdXQ+CisgICAgICAgICAgPEQ6bG9ja3Rva2VuPgorICAgICAgICAgICAgPEQ6aHJlZj5pYW11cmk6dW5pcXVlISEhISE8L0Q6aHJlZj4KKyAgICAgICAgICA8L0Q6bG9ja3Rva2VuPgorICAgICAgICA8L0Q6YWN0aXZlbG9jaz4KKyAgICAgIDwvRDpsb2NrZGlzY292ZXJ5PgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYxOCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjE4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkZTFjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYxOApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6cHJvcGZpbmQgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnByb3A+CisgICAgPHN1cHBvcnRlZGxvY2svPgorICA8L0Q6cHJvcD4KKzwvRDpwcm9wZmluZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjE5IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MTkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUzNWZmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjE5CkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOnByb3A+CisgICAgICA8RDpzdXBwb3J0ZWRsb2NrPgorICAgICAgICA8RDpMb2NrRW50cnk+CisgICAgICAgICAgPEQ6bG9ja3R5cGU+V3JpdGU8L0Q6bG9ja3R5cGU+CisgICAgICAgICAgPEQ6bG9ja3Njb3BlPkV4Y2x1c2l2ZTwvRDpsb2Nrc2NvcGU+CisgICAgICAgIDwvRDpMb2NrRW50cnk+CisgICAgICAgIDxEOkxvY2tFbnRyeT4KKyAgICAgICAgICA8RDpsb2NrdHlwZT5Xcml0ZTwvRDpsb2NrdHlwZT4KKyAgICAgICAgICA8RDpsb2Nrc2NvcGU+U2hhcmVkPC9EOmxvY2tzY29wZT4KKyAgICAgICAgPC9EOkxvY2tFbnRyeT4KKyAgICAgIDwvRDpzdXBwb3J0ZWRsb2NrPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODMxYjRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MgpAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxTOm11bHRpc3RhdHVzIHhtbG5zOlM9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOlI9Imh0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvIj4KKyAgPFM6cmVzcG9uc2U+CisgICAgPFM6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLzwvUzpocmVmPgorICAgIDxTOnByb3A+CisgICAgICA8UjpiaWdib3g+CisgICAgICAgIDxSOkJveFR5cGU+Qm94IHR5cGUgQTwvUjpCb3hUeXBlPgorICAgICAgPC9SOmJpZ2JveD4KKyAgICAgIDxSOmF1dGhvcj4KKyAgICAgICAgPFI6TmFtZT5IYWRyaWFuPC9SOk5hbWU+CisgICAgICA8L1I6YXV0aG9yPgorICAgIDwvUzpwcm9wPgorICAgIDxTOnN0YXR1cz5IVFRQIDEuMSAyMDAgT0s8L1M6c3RhdHVzPgorICA8L1M6cmVzcG9uc2U+CisgIDxTOnJlc3BvbnNlPgorICAgIDxTOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9pbmRleC5odG1sPC9TOmhyZWY+CisgICAgPFM6cHJvcD4KKyAgICAgIDxSOmJpZ2JveD4KKyAgICAgICAgPFI6Qm94VHlwZT5Cb3ggdHlwZSBCPC9SOkJveFR5cGU+CisgICAgICA8L1I6YmlnYm94PgorICAgIDwvUzpwcm9wPgorICAgIDxTOnN0YXR1cz5IVFRQIDEuMSAyMDAgT0s8L1M6c3RhdHVzPgorICA8L1M6cmVzcG9uc2U+Cis8L1M6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXYzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODZiM2ZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2MwpAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm11bHRpc3RhdHVzIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOlI9Imh0dHA6Ly93d3cuZm9vLmJhci9ib3hzY2hlbWEvIj4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLzwvRDpocmVmPgorICAgIDxEOnByb3A+CisgICAgICA8UjpiaWdib3gvPgorICAgICAgPFI6YXV0aG9yLz4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUCAxLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvaW5kZXguaHRtbDwvRDpocmVmPgorICAgIDxEOnByb3A+CisgICAgICA8UjpiaWdib3gvPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQIDEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWI3Y2ViCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2NApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOnByb3BlcnR5dXBkYXRlIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOlo9Imh0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvIj4KKyAgPEQ6c2V0PgorICAgIDxEOnByb3A+CisgICAgICA8WjphdXRob3JzPgorICAgICAgICA8WjpBdXRob3I+SmltIFdoaXRlaGVhZDwvWjpBdXRob3I+CisgICAgICAgIDxaOkF1dGhvcj5Sb3kgRmllbGRpbmc8L1o6QXV0aG9yPgorICAgICAgPC9aOmF1dGhvcnM+CisgICAgPC9EOnByb3A+CisgIDwvRDpzZXQ+CisgIDxEOnJlbW92ZT4KKyAgICA8RDpwcm9wPgorICAgICAgPFo6Q29weXJpZ2h0LU93bmVyLz4KKyAgICA8L0Q6cHJvcD4KKyAgPC9EOnJlbW92ZT4KKzwvRDpwcm9wZXJ0eXVwZGF0ZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZWJhYjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY1CkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyIgeG1sbnM6Wj0iaHR0cDovL3d3dy53My5jb20vc3RhbmRhcmRzL3ozOS41MC8iPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpwcm9wPgorICAgICAgPFo6QXV0aG9ycy8+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDQyMCBNZXRob2QgRmFpbHVyZTwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxaOkNvcHlyaWdodC1Pd25lci8+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDQwOSBDb25mbGljdDwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2VkZXNjcmlwdGlvbj4gQ29weXJpZ2h0IE93bmVyIGNhbiBub3QgYmUgZGVsZXRlZCBvcgorYWx0ZXJlZC48L0Q6cmVzcG9uc2VkZXNjcmlwdGlvbj4KKzwvRDptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMGRlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY2CkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOmhyZWY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3VzZXIveWFyb25nL2Rhdl9kcmFmdHMvCisgICAgICA8L0Q6aHJlZj4KKyAgICA8RDpwcm9wPgorICAgICAgPEQ6cmVzb3VyY2V0eXBlPgorICAgICAgICA8RDpjb2xsZWN0aW9uLz4KKyAgICAgIDwvRDpyZXNvdXJjZXR5cGU+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAgMS4xIDIwMCBPSzwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6aHJlZj4KKyAgICAgIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS91c2VyL3lhcm9uZy9kYXZfZHJhZnRzL2Jhc2UKKyAgICAgIDwvRDpocmVmPgorICAgIDxEOnByb3A+CisgICAgICA8RDpyZXNvdXJjZXR5cGUvPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQIDEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY3IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2NwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzRhOTUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2NwpAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkOm11bHRpc3RhdHVzIHhtbG5zOmQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8ZDpyZXNwb25zZT4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UxPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMjwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSAyMDAgT0s8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci88L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgNDIwIE1ldGhvZCBGYWlsdXJlPC9kOnN0YXR1cz4KKyAgPC9kOnJlc3BvbnNlPgorICA8ZDpyZXNwb25zZT4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UzPC9kOmhyZWY+CisgICAgPGQ6c3RhdHVzPkhUVFAvMS4xIDQxMiBQcmVjb25kaXRpb24gRmFpbGVkPC9kOnN0YXR1cz4KKyAgPC9kOnJlc3BvbnNlPgorPC9kOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGF2OCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y5OWJhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjgKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZDptdWx0aXN0YXR1cyB4bWxuczpkPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvcmVzb3VyY2UxPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvcmVzb3VyY2UyPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvUjIvRDI8L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgMjAxIENyZWF0ZWQ8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL1IyLzwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSA0MTIgUHJlY29uZGl0aW9uIEZhaWxlZDwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKzwvZDptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RhdjkgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlZDYzYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kYXY5CkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGQ6bXVsdGlzdGF0dXMgeG1sbnM6ZD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTE8L2Q6aHJlZj4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UyPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyLzwvZDpocmVmPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9DMi9SMjwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSAyMDEgQ3JlYXRlZDwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL0MyPC9kOmhyZWY+CisgICAgPGQ6c3RhdHVzPkhUVFAvMS4xIDQyMCBNZXRob2QgRmFpbHVyZTwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvb3RoZXJjb250YWluZXIvQzI8L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgNDA5IENvbmZsaWN0PC9kOnN0YXR1cz4KKyAgPC9kOnJlc3BvbnNlPgorPC9kOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGVmYXR0ci54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kZWZhdHRyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTRhYzE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGVmYXR0ci54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyBFTVBUWT4KKzwhQVRUTElTVCBkb2MgeG1sbnMgQ0RBVEEgI0ZJWEVEICJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+CitdPgorPGRvYyB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RlZmF0dHIyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RlZmF0dHIyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDFmYzNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGVmYXR0cjIueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgRU1QVFk+Cis8IUFUVExJU1QgZG9jIGRlZmF0dCAoMCB8IDEpICIwIj4KKzwhQVRUTElTVCBkb2MgeG1sbnM6dHN0IENEQVRBICNGSVhFRCAiaHR0cDovL2V4YW1wbGUub3JnIj4KKzwhQVRUTElTVCBkb2MgdHN0OmF0dCAoMCB8IDEpICIxIj4KK10+Cis8ZG9jIHhtbG5zOnRzdD0iaHR0cDovL2V4YW1wbGUub3JnIiBhdHQ9IjEiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RpYTEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kaWExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwN2JkNzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kaWExCkBAIC0wLDAgKzEsOTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRpYTpkaWFncmFtIHhtbG5zOmRpYT0iaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvIj4KKyAgPGRpYTpkaWFncmFtZGF0YT4KKyAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJiYWNrZ3JvdW5kIj4KKyAgICAgIDxkaWE6Y29sb3IgdmFsPSIjZmZmZmZmIi8+CisgICAgPC9kaWE6YXR0cmlidXRlPgorICA8L2RpYTpkaWFncmFtZGF0YT4KKyAgPGRpYTpsYXllciBuYW1lPSJCYWNrZ3JvdW5kIiB2aXNpYmxlPSJ0cnVlIj4KKyAgICA8ZGlhOm9iamVjdCB0eXBlPSJTdGFuZGFyZCAtIExpbmUiIHZlcnNpb249IjAiIGlkPSJPMCI+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEuOTUsNi44NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KKyAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSIxLjksNi44OzExLDguNTUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImNvbm5fZW5kcG9pbnRzIj4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEuOTUsNi44NSIvPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTAuOTUsOC41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgdmFsPSIwLjEiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfc3R5bGUiPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJzdGFydF9hcnJvdyI+CisgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVuZF9hcnJvdyI+CisgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6Y29ubmVjdGlvbnM+CisgICAgICAgIDxkaWE6Y29ubmVjdGlvbiBoYW5kbGU9IjEiIHRvPSJPMiIgY29ubmVjdGlvbj0iMyIvPgorICAgICAgPC9kaWE6Y29ubmVjdGlvbnM+CisgICAgPC9kaWE6b2JqZWN0PgorICAgIDxkaWE6b2JqZWN0IHR5cGU9IlN0YW5kYXJkIC0gVGV4dCIgdmVyc2lvbj0iMCIgaWQ9Ik8xIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iNC44LDQuNzUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iMi41NzksMy45NjM1OTs3LjAyMSw0Ljk2MzU5Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgPGRpYTpjb21wb3NpdGUgdHlwZT0idGV4dCI+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ic3RyaW5nIj4KKyAgICAgICAgICAgIDxkaWE6c3RyaW5nIHZhbD0ic2Rmc2RmZyIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJmb250Ij4KKyAgICAgICAgICAgIDxkaWE6Zm9udCBuYW1lPSJDb3VyaWVyIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImhlaWdodCI+CisgICAgICAgICAgICA8ZGlhOnJlYWwgdmFsPSIxIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InBvcyI+CisgICAgICAgICAgICA8ZGlhOnBvaW50IHZhbD0iNC44LDQuNzUiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29sb3IiPgorICAgICAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYWxpZ25tZW50Ij4KKyAgICAgICAgICAgIDxkaWE6ZW51bSB2YWw9IjEiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgIDwvZGlhOmNvbXBvc2l0ZT4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICA8L2RpYTpvYmplY3Q+CisgICAgPGRpYTpvYmplY3QgdHlwZT0iU3RhbmRhcmQgLSBCb3giIHZlcnNpb249IjAiIGlkPSJPMiI+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEwLjk1LDcuNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KKyAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSIxMC45LDcuNDU7MTMuMDUsOS41NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZWxlbV9jb3JuZXIiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTAuOTUsNy41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX3dpZHRoIj4KKyAgICAgICAgPGRpYTpyZWFsIHZhbD0iMi4wNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZWxlbV9oZWlnaHQiPgorICAgICAgICA8ZGlhOnJlYWwgdmFsPSIyIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJib3JkZXJfd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgdmFsPSIwLjEiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImJvcmRlcl9jb2xvciI+CisgICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJpbm5lcl9jb2xvciI+CisgICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjZmZmZmZmIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX3N0eWxlIj4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgIDwvZGlhOm9iamVjdD4KKyAgPC9kaWE6bGF5ZXI+Cis8L2RpYTpkaWFncmFtPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZGlhMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RpYTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA3YmQ3MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2RpYTIKQEAgLTAsMCArMSw5OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZGlhOmRpYWdyYW0geG1sbnM6ZGlhPSJodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8iPgorICA8ZGlhOmRpYWdyYW1kYXRhPgorICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImJhY2tncm91bmQiPgorICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4KKyAgICA8L2RpYTphdHRyaWJ1dGU+CisgIDwvZGlhOmRpYWdyYW1kYXRhPgorICA8ZGlhOmxheWVyIG5hbWU9IkJhY2tncm91bmQiIHZpc2libGU9InRydWUiPgorICAgIDxkaWE6b2JqZWN0IHR5cGU9IlN0YW5kYXJkIC0gTGluZSIgdmVyc2lvbj0iMCIgaWQ9Ik8wIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMS45NSw2Ljg1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjEuOSw2Ljg7MTEsOC41NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29ubl9lbmRwb2ludHMiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMS45NSw2Ljg1Ii8+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw4LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjAuMSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9zdHlsZSI+CisgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InN0YXJ0X2Fycm93Ij4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZW5kX2Fycm93Ij4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTpjb25uZWN0aW9ucz4KKyAgICAgICAgPGRpYTpjb25uZWN0aW9uIGhhbmRsZT0iMSIgdG89Ik8yIiBjb25uZWN0aW9uPSIzIi8+CisgICAgICA8L2RpYTpjb25uZWN0aW9ucz4KKyAgICA8L2RpYTpvYmplY3Q+CisgICAgPGRpYTpvYmplY3QgdHlwZT0iU3RhbmRhcmQgLSBUZXh0IiB2ZXJzaW9uPSIwIiBpZD0iTzEiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSI0LjgsNC43NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KKyAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSIyLjU3OSwzLjk2MzU5OzcuMDIxLDQuOTYzNTkiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHQiPgorICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJ0ZXh0Ij4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJzdHJpbmciPgorICAgICAgICAgICAgPGRpYTpzdHJpbmcgdmFsPSJzZGZzZGZnIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImZvbnQiPgorICAgICAgICAgICAgPGRpYTpmb250IG5hbWU9IkNvdXJpZXIiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iaGVpZ2h0Ij4KKyAgICAgICAgICAgIDxkaWE6cmVhbCB2YWw9IjEiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0icG9zIj4KKyAgICAgICAgICAgIDxkaWE6cG9pbnQgdmFsPSI0LjgsNC43NSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb2xvciI+CisgICAgICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJhbGlnbm1lbnQiPgorICAgICAgICAgICAgPGRpYTplbnVtIHZhbD0iMSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgPC9kaWE6Y29tcG9zaXRlPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgIDwvZGlhOm9iamVjdD4KKyAgICA8ZGlhOm9iamVjdCB0eXBlPSJTdGFuZGFyZCAtIEJveCIgdmVyc2lvbj0iMCIgaWQ9Ik8yIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTAuOTUsNy41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjEwLjksNy40NTsxMy4wNSw5LjU1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX2Nvcm5lciI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw3LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgdmFsPSIyLjA1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX2hlaWdodCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjIiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImJvcmRlcl93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjAuMSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYm9yZGVyX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImlubmVyX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfc3R5bGUiPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgPC9kaWE6b2JqZWN0PgorICA8L2RpYTpsYXllcj4KKzwvZGlhOmRpYWdyYW0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjExZmZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIE1FTU8gUFVCTElDICItLy9TR01MU09VUkNFLy9EVEQgTUVNTy8vRU4iICJodHRwOi8vd3d3LnNnbWxzb3VyY2UuY29tL2R0ZHMvbWVtby5kdGQiPgorPE1FTU8+Cis8L01FTU8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQxMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDEwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjN2Q1ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQxMApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgoYSB8IGIpKyAsIGMgLCBkKSo+Cis8IUVMRU1FTlQgYSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYyAoI1BDREFUQSk+Cis8IUVMRU1FTlQgZCAoI1BDREFUQSk+CitdPgorPGRvYz48Yj5UaGlzPC9iPjxjPiBpcyBhPC9jPjxkPiB2YWxpZCBkb2N1bWVudDwvZD48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDExIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBkZjhhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDExCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRvYyB2YWwgQ0RBVEEgI0lNUExJRUQ+CitdPgorPGRvYyB2YWw9InYxIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQxMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDEyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYWZmODEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQxMgpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVOVElUWSBZTiAnIlllcyInPgorPCFFTlRJVFkgV2hhdEhlU2FpZCAiSGUgc2FpZCAmWU47Ij4KK10+Cis8ZG9jPkhlIHNhaWQgIlllcyI8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDEzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgxNDE0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDEzCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIGNvbW1lbnQgYmVmb3JlIHRoZSBEVEQgLS0+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgQU5ZPgorXT4KKzwhLS0gY29tbWVudCBhZnRlciB0aGUgRFREIC0tPgorPGRvYy8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjFmZDk0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMgpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgjUENEQVRBKT4KK10+Cis8ZG9jPlRoaXMgaXMgYSB2YWxpZCBkb2N1bWVudCAhPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjgxZWY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkMwpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIEFOWT4KK10+Cis8ZG9jPlRoaXMgaXMgYSB2YWxpZCBkb2N1bWVudCAhPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQ0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2YyNDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkNApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIEVNUFRZPgorXT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwOWQ1MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDUKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoI1BDREFUQSB8IGEgfCBiKSo+Cis8IUVMRU1FTlQgYSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+CitdPgorPGRvYz48YT5UaGlzPC9hPiBpcyBhIDxiPnZhbGlkPC9iPiBkb2N1bWVudDwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQyZDk5MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDYKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSB8IGIpKj4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KK10+Cis8ZG9jPjxhPlRoaXM8L2E+PGI+IGlzIGEgdmFsaWQ8L2I+PGE+IGRvY3VtZW50PC9hPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkNyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE0MDc1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDcKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSAsIGIpKj4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KK10+Cis8ZG9jPjxhPlRoaXM8L2E+PGI+IGlzIGEgdmFsaWQgZG9jdW1lbnQ8L2I+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQ4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTY1NWY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZHRkOApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgoYSB8IGIpICwgKGMgfCBkKSkrPgorPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGQgKCNQQ0RBVEEpPgorXT4KKzxkb2M+PGI+VGhpczwvYj48Yz4gaXMgYSB2YWxpZCBkb2N1bWVudDwvYz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2R0ZDkgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQ5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5Y2MxZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9kdGQ5CkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKChhIHwgYiB8IGMpICwgZCk/PgorPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGQgKCNQQ0RBVEEpPgorXT4KKzxkb2M+PGI+VGhpczwvYj48ZD4gaXMgYSB2YWxpZCBkb2N1bWVudDwvZD48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2ViY2RpY181NjYwMTIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZWJjZGljXzU2NjAxMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUzYWRkNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2ViY2RpY181NjYwMTIueG1sCkBAIC0wLDAgKzEgQEAKK0xvp5STQKWFmaKJlpV+f/FL8H9AhZWDloSJlYd+f8nC1GDx8fTxf29uJUyjhaKjQIGjo5l+f0rgWn9hbiUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbXB0eWNkYXRhLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VtcHR5Y2RhdGEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjOTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbXB0eWNkYXRhLnhtbApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPCFbQ0RBVEFbXV0+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGJmNDI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MQpAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIEVYQU1QTEUgU1lTVEVNICJleGFtcGxlLmR0ZCIgWworPCFFTlRJVFkgeG1sICJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI+CitdPgorPEVYQU1QTEU+CisgICAgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UKKzwvRVhBTVBMRT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDEwIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ2YWZmOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDEwCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSBybm9kZSBbCis8IUVMRU1FTlQgcm5vZGUgKGYpPgorPCFFTEVNRU5UIGYgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGYgYXR0MSBDREFUQSAjRklYRUQgIkoiPgorPCFFTlRJVFkgZiAiCisgICA8Zj4KKyAgIGhlbGxvIHdvcmxkCisgICA8L2Y+CisgICAiPgorXT4KKzxybm9kZT4KKyAgIAorICAgPGY+CisgICBoZWxsbyB3b3JsZAorICAgPC9mPgorICAgCis8L3Jub2RlPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MTEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQxMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWUxZTBmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MTEKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVOVElUWSBuZXdsICImIzEzOyI+CitdPgorPGRvYz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MTIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQxMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzk4MzEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MTIKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSByb290IFsKKzwhRU5USVRZIGZvbyAiYWJjIj4KKzwhRU5USVRZIGJhciAiZGVmIj4KK10+Cis8cm9vdCBhdHRyaWJ1dGU9ImFiYyI+CisgICA8ZWxlbWVudD5kZWY8L2VsZW1lbnQ+Cis8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQxMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDEzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYmMwNjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQxMwpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHRlc3QgWworPCFFTlRJVFkgYW1wcHJvYmxlbSAiJmFtcDsiPgorXT4KKzx0IGE9IiZhbXA7Ij5hPC90PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY0M2FjMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDIKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgRVhBTVBMRSBTWVNURU0gImV4YW1wbGUuZHRkIiBbCis8IUVOVElUWSB4bWwgIkV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIj4KKzwhRU5USVRZIHRpdGxlIFBVQkxJQyAiLS8vTVktVElUTEUvL0ZSIiAidGl0bGUueG1sIj4KKzwhRU5USVRZIGltYWdlIFNZU1RFTSAiaW1nLmdpZiIgTkRBVEEgR0lGPgorXT4KKzxFWEFNUExFPgorICAKKzx0aXRsZT5teSB0aXRsZTwvdGl0bGU+CisKKyAgVGhpcyB0ZXh0IGlzIGFib3V0IFhNTCwgdGhlIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIGFuZCB0aGlzIGlzIGFuIGVtYmVkZGVkIDxJTUcgc3JjPSJpbWFnZSIvPgorPC9FWEFNUExFPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50MyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFjMGIxNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDMKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBFWEFNUExFIFNZU1RFTSAiZXhhbXBsZS5kdGQiIFsKKzwhRU5USVRZIHhtbCAiRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UiPgorXT4KKzxFWEFNUExFIHByb3AxPSJhJmFtcDtiIiBwcm9wMj0iRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UiPgorICBUZXN0IG9mIGVudGl0aWVzIGluIGF0dHJpYnV0ZXMuCis8L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQ0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTIxOTRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50NApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIEVYQU1QTEUgU1lTVEVNICJleGFtcGxlLmR0ZCIgWworPCFFTlRJVFkgeG1sICJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI+CitdPgorPEVYQU1QTEU+CisgIFRlc3Qgb2YgJmFtcDthbXA7IGJlaGF2aW91ciBhJmFtcDtiIC4KKzwvRVhBTVBMRT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZTdlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQ1CkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RVhBTVBMRT4KKyAgICBUaGlzIGlzIGFuIGludmVydGVkIGV4Y2xhbWF0aW9uIHNpZ24gJiN4QTE7CisgICAgVGhpcyBpcyBhIHNwYWNlICAgCis8L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQ2IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50NgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDdmOWJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50NgpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVOVElUWSBsdCAiJiMzODsjNjA7Ij4KKzwhRU5USVRZIGd0ICImIzYyOyI+Cis8IUVOVElUWSBhbXAgIiYjMzg7IzM4OyI+Cis8IUVOVElUWSBhcG9zICImIzM5OyI+Cis8IUVOVElUWSBxdW90ICImIzM0OyI+CitdPgorPGRvYy8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQ3IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50NwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzg5NWFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50NwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGl0ZW0gWworPCFFTlRJVFkgJSBzYW1wbGVFbnQgIjwhRUxFTUVOVCBpdGVtIChwYXJhKSs+Ij4KKzwhRU5USVRZIHNhbXBsZUVudCAidGhlIGh5YWNpbnRoIGdpcmwiPgorPCFFTEVNRU5UIGl0ZW0gKHBhcmEpKz4KKzwhRUxFTUVOVCBwYXJhICgjUENEQVRBKT4KK10+Cis8aXRlbT48cGFyYT4ndGhleSBjYWxsZWQgbWUgdGhlIGh5YWNpbnRoIGdpcmwnPC9wYXJhPjwvaXRlbT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQ4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3NjI2NmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9lbnQ4CkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVOVElUWSB0ZXN0MSAidGVzdCAxIj4KKzwhRU5USVRZIHRlc3QyICJ0ZXN0IDIiPgorXT4KKzxkb2M+CisgICA8Q29udGVudD5SZXRlbiYjeEU3OyYjeEUzO288L0NvbnRlbnQ+CisgICA8Q29udGVudD4mbHQ7Jmd0OzwvQ29udGVudD4KKyAgIDxDb250ZW50PnRlc3QgMXRlc3QgMjwvQ29udGVudD4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvZW50OSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjkzMGU0YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2VudDkKQEAgLTAsMCArMSw2MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIHRlc3QxICI8YS8+LDxiLz4sPGMvPiw8ZC8+Ij4KK10+Cis8ZG9jPgorICAgPGVudD48YS8+LDxiLz4sPGMvPiw8ZC8+PC9lbnQ+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPGVudD48YS8+LDxiLz4sPGMvPiw8ZC8+PC9lbnQ+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2V2ZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9ldmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhYjcyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9ldmUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhRE9DVFlQRSBzcGVjIFBVQkxJQyAiLS8vdGVzdHNwZWMvLyIgImR0ZHMvZXZlLmR0ZCIgWworPCFFTlRJVFkgaXNvNi5kb2MuZGF0ZSAiMjktTWF5LTE5OTkiPgorXT4KKzxzcGVjPgorPC9zcGVjPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvaW50c3Vic2V0LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2ludHN1YnNldC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ4NTc5NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2ludHN1YnNldC54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PgorPCFET0NUWVBFIHJvb3QgWworPCFFTEVNRU5UIHJvb3QgRU1QVFk+Cis8IS0tICAiIC0tPl0+Cis8cm9vdC8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9pbnRzdWJzZXQyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2ludHN1YnNldDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMDM5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9pbnRzdWJzZXQyLnhtbApAQCAtMCwwICsxLDI1MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUga2FuamlkaWMyIFsKKzwhLS0gVmVyc2lvbiAxLjMKKwlUaGlzIGlzIHRoZSBEVEQgb2YgdGhlIFhNTC1mb3JtYXQga2FuamkgZmlsZSBjb21iaW5pbmcgaW5mb3JtYXRpb24gZnJvbQorCXRoZSBLQU5KSURJQyBhbmQgS0FOSkQyMTIgZmlsZXMuIEl0IGlzIGludGVuZGVkIHRvIGJlIGxhcmdlbHkgc2VsZi0KKwlkb2N1bWVudGluZywgd2l0aCBlYWNoIGZpZWxkIGJlaW5nIGFjY29tcGFuaWVkIGJ5IGFuIGV4cGxhbmF0b3J5CisJY29tbWVudC4KKworCVRoZSBmaWxlIGNvdmVycyB0aGUgZm9sbG93aW5nIGthbmppOgorCShhKSB0aGUgNiwzNTUga2FuamkgZnJvbSBKSVMgWCAwMjA4OworCShiKSB0aGUgNSw4MDEga2FuamkgZnJvbSBKSVMgWCAwMjEyOworCShjKSB0aGUgMyw2MjUga2FuamkgZnJvbSBKSVMgWCAwMjEzIGFzIGZvbGxvd3M6CisJCShpKSB0aGUgMiw3NDEga2Fuamkgd2hpY2ggYXJlIGFsc28gaW4gSklTIFggMDIxMiBoYXZlCisJCUpJUyBYIDAyMTMgY29kZS1wb2ludHMgKGt1dGVuKSBhZGRlZCB0byB0aGUgZXhpc3RpbmcgZW50cnk7CisJCShpaSkgdGhlIDg4NCAibmV3IiBrYW5qaSBoYXZlIG5ldyBlbnRyaWVzLgorCisJQXQgdGhlIGVuZCBvZiB0aGUgZXhwbGFuYXRpb24gZm9yIGEgbnVtYmVyIG9mIGZpZWxkcyB0aGVyZSBpcyBhIHRhZworCXdpdGggdGhlIGZvcm1hdCBbTl0uIFRoaXMgaW5kaWNhdGVzIHRoZSBsZWFkaW5nIGxldHRlcihzKSBvZiB0aGUKKwllcXVpdmFsZW50IGZpZWxkIGluIHRoZSBLQU5KSURJQyBhbmQgS0FOSkQyMTIgZmlsZXMuCisKKwlUaGUgS0FOSklESUMgZG9jdW1lbnRhdGlvbiBzaG91bGQgYWxzbyBiZSByZWFkIGZvciBhZGRpdGlvbmFsIAorCWluZm9ybWF0aW9uIGFib3V0IHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgZmlsZS4KKwktLT48IUVMRU1FTlQga2FuamlkaWMyIChoZWFkZXIgLCBjaGFyYWN0ZXIqKT4KKzwhRUxFTUVOVCBoZWFkZXIgKGZpbGVfdmVyc2lvbiAsIGRhdGFiYXNlX3ZlcnNpb24gLCBkYXRlX29mX2NyZWF0aW9uKT4KKzwhLS0KKwlUaGUgc2luZ2xlIGhlYWRlciBlbGVtZW50IHdpbGwgY29udGFpbiBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbgorCWFib3V0IHRoZSB2ZXJzaW9uIG9mIHRoZSBmaWxlIAorCS0tPjwhRUxFTUVOVCBmaWxlX3ZlcnNpb24gKCNQQ0RBVEEpPgorPCEtLQorCVRoaXMgZmllbGQgZGVub3RlcyB0aGUgdmVyc2lvbiBvZiBrYW5qaWRpYzIgc3RydWN0dXJlLCBhcyBtb3JlCisJdGhhbiBvbmUgdmVyc2lvbiBtYXkgZXhpc3QuCisJLS0+PCFFTEVNRU5UIGRhdGFiYXNlX3ZlcnNpb24gKCNQQ0RBVEEpPgorPCEtLQorCVRoZSB2ZXJzaW9uIG9mIHRoZSBmaWxlLCBpbiB0aGUgZm9ybWF0IFlZWVktTk4sIHdoZXJlIE5OIHdpbGwgYmUKKwlhIG51bWJlciBzdGFydGluZyB3aXRoIDAxIGZvciB0aGUgZmlyc3QgdmVyc2lvbiByZWxlYXNlZCBpbiBhCisJY2FsZW5kYXIgeWVhciwgdGhlbiBpbmNyZWFzaW5nIGZvciBlYWNoIHZlcnNpb24gaW4gdGhhdCB5ZWFyLgorCS0tPjwhRUxFTUVOVCBkYXRlX29mX2NyZWF0aW9uICgjUENEQVRBKT4KKzwhLS0KKwlUaGUgZGF0ZSB0aGUgZmlsZSB3YXMgY3JlYXRlZCBpbiBpbnRlcm5hdGlvbmFsIGZvcm1hdCAoWVlZWS1NTS1ERCkuCisJLS0+PCFFTEVNRU5UIGNoYXJhY3RlciAobGl0ZXJhbCAsIGNvZGVwb2ludCAsIHJhZGljYWwgLCBtaXNjICwgZGljX251bWJlcj8gLCBxdWVyeV9jb2RlPyAsIHJlYWRpbmdfbWVhbmluZz8gLCBuYW5vcmk/KSo+Cis8IUVMRU1FTlQgbGl0ZXJhbCAoI1BDREFUQSk+Cis8IS0tCisJVGhlIGNoYXJhY3RlciBpdHNlbGYgaW4gVVRGOCBjb2RpbmcuCisJLS0+PCFFTEVNRU5UIGNvZGVwb2ludCAoY3BfdmFsdWUpKz4KKzwhLS0gCisJVGhlIGNvZGVwb2ludCBlbGVtZW50IHN0YXRlcyB0aGUgY29kZSBvZiB0aGUgY2hhcmFjdGVyIGluIHRoZSB2YXJpb3VzCisJY2hhcmFjdGVyIHNldCBzdGFuZGFyZHMuCisJLS0+PCFFTEVNRU5UIGNwX3ZhbHVlICgjUENEQVRBKT4KKzwhLS0gCisJVGhlIGNwX3ZhbHVlIGNvbnRhaW5zIHRoZSBjb2RlcG9pbnQgb2YgdGhlIGNoYXJhY3RlciBpbiBhIHBhcnRpY3VsYXIKKwlzdGFuZGFyZC4gVGhlIHN0YW5kYXJkIHdpbGwgYmUgaWRlbnRpZmllZCBpbiB0aGUgY3BfdHlwZSBhdHRyaWJ1dGUuCisJLS0+PCFBVFRMSVNUIGNwX3ZhbHVlIGNwX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorPCEtLSAKKwlUaGUgY3BfdHlwZSBhdHRyaWJ1dGUgc3RhdGVzIHRoZSBjb2Rpbmcgc3RhbmRhcmQgYXBwbHlpbmcgdG8gdGhlCisJZWxlbWVudC4gVGhlIHZhbHVlcyBhc3NpZ25lZCBzbyBmYXIgYXJlOgorCQlqaXMyMDggLSBKSVMgWCAwMjA4LTE5OTcgLSBrdXRlbiBjb2RpbmcgKG5uLW5uKQorCQlqaXMyMTIgLSBKSVMgWCAwMjEyLTE5OTAgLSBrdXRlbiBjb2RpbmcgKG5uLW5uKQorCQlqaXMyMTMgLSBKSVMgWCAwMjEzLTIwMDAgLSBrdXRlbiBjb2RpbmcgKHAtbm4tbm4pCisJCXVjcyAtIFVuaWNvZGUgNC4wIC0gaGV4IGNvZGluZyAoNCBvciA1IGhleGFkZWNpbWFsIGRpZ2l0cykKKwktLT48IUVMRU1FTlQgcmFkaWNhbCAocmFkX3ZhbHVlKSs+Cis8IUVMRU1FTlQgcmFkX3ZhbHVlICgjUENEQVRBKT4KKzwhLS0gCisJVGhlIHJhZGljYWwgbnVtYmVyLCBpbiB0aGUgcmFuZ2UgMSB0byAyMTQuIFRoZSBwYXJ0aWN1bGFyCisJY2xhc3NpZmljYXRpb24gdHlwZSBpcyBzdGF0ZWQgaW4gdGhlIHJhZF90eXBlIGF0dHJpYnV0ZS4KKwktLT48IUFUVExJU1QgcmFkX3ZhbHVlIHJhZF90eXBlIENEQVRBICNSRVFVSVJFRD4KKzwhLS0gCisJVGhlIHJhZF90eXBlIGF0dHJpYnV0ZSBzdGF0ZXMgdGhlIHR5cGUgb2YgcmFkaWNhbCBjbGFzc2lmaWNhdGlvbi4KKwkJY2xhc3NpY2FsIC0gYXMgcmVjb3JkZWQgaW4gdGhlIEthbmdYaSBaaWRpYW4uCisJCW5lbHNvbiAtIGFzIHVzZWQgaW4gdGhlIE5lbHNvbiAiTW9kZXJuIEphcGFuZXNlLUVuZ2xpc2ggCisJCUNoYXJhY3RlciBEaWN0aW9uYXJ5IiAoaS5lLiB0aGUgQ2xhc3NpYywgbm90IHRoZSBOZXcgTmVsc29uKS4KKwkJVGhpcyB3aWxsIG9ubHkgYmUgdXNlZCB3aGVyZSBOZWxzb24gcmVjbGFzc2lmaWVkIHRoZSBrYW5qaS4KKwktLT48IUVMRU1FTlQgbWlzYyAoZ3JhZGU/ICwgc3Ryb2tlX2NvdW50KyAsIHZhcmlhbnQqICwgZnJlcSogLCByYWRfbmFtZSopPgorPCFFTEVNRU5UIGdyYWRlICgjUENEQVRBKT4KKzwhLS0gCisJVGhlIEpvdXlvdSBLYW5qaSBncmFkZSBsZXZlbC4gMSB0aHJvdWdoIDYgaW5kaWNhdGUgdGhlIGdyYWRlIGluIHdoaWNoCisJdGhlIGthbmppIGlzIHRhdWdodCBpbiBKYXBhbmVzZSBzY2hvb2xzLiA4IGluZGljYXRlcyBpdCBpcyBvbmUgb2YgdGhlCisJcmVtYWluaW5nIEpvdXlvdSBLYW5qaSB0byBiZSBsZWFybmVkIGluIGp1bmlvciBoaWdoIHNjaG9vbCwgYW5kIDkgCisJaW5kaWNhdGVzIGl0IGlzIGEgSmlubWVpeW91IChmb3IgdXNlIGluIG5hbWVzKSBrYW5qaS4gW0ddCisJLS0+PCFFTEVNRU5UIHN0cm9rZV9jb3VudCAoI1BDREFUQSk+Cis8IS0tIAorCVRoZSBzdHJva2UgY291bnQgb2YgdGhlIGthbmppLCBpbmNsdWRpbmcgdGhlIHJhZGljYWwuIElmIG1vcmUgdGhhbiAKKwlvbmUsIHRoZSBmaXJzdCBpcyBjb25zaWRlcmVkIHRoZSBhY2NlcHRlZCBjb3VudCwgd2hpbGUgc3Vic2VxdWVudCBvbmVzIAorCWFyZSBjb21tb24gbWlzY291bnRzLiAoU2VlIEFwcGVuZGl4IEUuIG9mIHRoZSBLQU5KSURJQyBkb2N1bWVudGF0aW9uCisJZm9yIHNvbWUgb2YgdGhlIHJ1bGVzIGFwcGxpZWQgd2hlbiBjb3VudGluZyBzdHJva2VzIGluIHNvbWUgb2YgdGhlIAorCXJhZGljYWxzLikgW1NdCisJLS0+PCFFTEVNRU5UIHZhcmlhbnQgKCNQQ0RBVEEpPgorPCEtLSAKKwlBIGNyb3NzLXJlZmVyZW5jZSBjb2RlIHRvIGFub3RoZXIga2FuamksIHVzdWFsbHkgcmVnYXJkZWQgYXMgYSB2YXJpYW50LgorCVRoZSB0eXBlIG9mIGNyb3NzLXJlZmVyZW5jZSBpcyBnaXZlbiBpbiB0aGUgdmFyX3R5cGUgYXR0cmlidXRlLgorCS0tPjwhQVRUTElTVCB2YXJpYW50IHZhcl90eXBlIENEQVRBICNSRVFVSVJFRD4KKzwhLS0gCisJVGhlIHZhcl90eXBlIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdmFyaWFudCBjb2RlLiBUaGUgY3VycmVudAorCXZhbHVlcyBhcmU6IAorCQlqaXMyMDggLSBpbiBKSVMgWCAwMjA4IC0ga3V0ZW4gY29kaW5nCisJCWppczIxMiAtIGluIEpJUyBYIDAyMTIgLSBrdXRlbiBjb2RpbmcKKwkJamlzMjEzIC0gaW4gSklTIFggMDIxMyAtIGt1dGVuIGNvZGluZworCQlkZXJvbyAtIERlIFJvbyBudW1iZXIgLSBudW1lcmljCisJCW5qZWNkIC0gSGFscGVybiBOSkVDRCBpbmRleCBudW1iZXIgLSBudW1lcmljCisJCXNfaCAtIFRoZSBLYW5qaSBEaWN0aW9uYXJ5IChTcGFobiAmIEhhZGFtaXR6a3kpIC0gZGVzY3JpcHRvcgorCQluZWxzb24gLSAiQ2xhc3NpYyIgTmVsc29uIC0gbnVtZXJpYworCQlvbmVpbGwgLSBKYXBhbmVzZSBOYW1lcyAoTydOZWlsbCkgLSBudW1lcmljCisJLS0+PCFFTEVNRU5UIGZyZXEgKCNQQ0RBVEEpPgorPCEtLSAKKwlBIGZyZXF1ZW5jeS1vZi11c2UgcmFua2luZy4gVGhlIDIsNTAwIG1vc3QtdXNlZCBjaGFyYWN0ZXJzIGhhdmUgYSAKKwlyYW5raW5nOyB0aG9zZSBjaGFyYWN0ZXJzIHRoYXQgbGFjayB0aGlzIGZpZWxkIGFyZSBub3QgcmFua2VkLiBUaGUgCisJZnJlcXVlbmN5IGlzIGEgbnVtYmVyIGZyb20gMSB0byAyLDUwMCB0aGF0IGV4cHJlc3NlcyB0aGUgcmVsYXRpdmUgCisJZnJlcXVlbmN5IG9mIG9jY3VycmVuY2Ugb2YgYSBjaGFyYWN0ZXIgaW4gbW9kZXJuIEphcGFuZXNlLiBUaGlzIGlzCisJYmFzZWQgb24gYSBzdXJ2ZXkgaW4gbmV3c3BhcGVycywgc28gaXQgaXMgYmlhc3NlZCB0b3dhcmRzIGthbmppCisJdXNlZCBpbiBuZXdzcGFwZXIgYXJ0aWNsZXMuIFRoZSBkaXNjcmltaW5hdGlvbiBiZXR3ZWVuIHRoZSBsZXNzCisJZnJlcXVlbnRseSB1c2VkIGthbmppIGlzIG5vdCBzdHJvbmcuCisJLS0+PCFFTEVNRU5UIHJhZF9uYW1lICgjUENEQVRBKT4KKzwhLS0gCisJV2hlbiB0aGUga2FuamkgaXMgaXRzZWxmIGEgcmFkaWNhbCBhbmQgaGFzIGEgbmFtZSwgdGhpcyBlbGVtZW50CisJY29udGFpbnMgdGhlIG5hbWUgKGluIGhpcmFnYW5hLikgW1QyXQorCS0tPjwhRUxFTUVOVCBkaWNfbnVtYmVyIChkaWNfcmVmKSs+Cis8IS0tIAorCVRoaXMgZWxlbWVudCBjb250YWlucyB0aGUgaW5kZXggbnVtYmVycyBhbmQgc2ltaWxhciB1bnN0cnVjdHVyZWQKKwlpbmZvcm1hdGlvbiBzdWNoIGFzIHBhZ2UgbnVtYmVycyBpbiBhIG51bWJlciBvZiBwdWJsaXNoZWQgZGljdGlvbmFyaWVzLAorCWFuZCBpbnN0cnVjdGlvbmFsIGJvb2tzIG9uIGthbmppLgorCS0tPjwhRUxFTUVOVCBkaWNfcmVmICgjUENEQVRBKT4KKzwhLS0gCisJRWFjaCBkaWNfcmVmIGNvbnRhaW5zIGFuIGluZGV4IG51bWJlci4gVGhlIHBhcnRpY3VsYXIgZGljdGlvbmFyeSwKKwlldGMuIGlzIGRlZmluZWQgYnkgdGhlIGRyX3R5cGUgYXR0cmlidXRlLgorCS0tPjwhQVRUTElTVCBkaWNfcmVmIGRyX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorPCEtLSAKKwlUaGUgZHJfdHlwZSBkZWZpbmVzIHRoZSBkaWN0aW9uYXJ5IG9yIHJlZmVyZW5jZSBib29rLCBldGMuIHRvIHdoaWNoCisJZGljX3JlZiBlbGVtZW50IGFwcGxpZXMuIFRoZSBpbml0aWFsIGFsbG9jYXRpb24gaXM6CisJICBuZWxzb25fYyAtICJNb2Rlcm4gUmVhZGVyJ3MgSmFwYW5lc2UtRW5nbGlzaCBDaGFyYWN0ZXIgRGljdGlvbmFyeSIsICAKKwkgIAllZGl0ZWQgYnkgQW5kcmV3IE5lbHNvbiAobm93IHB1Ymxpc2hlZCBhcyB0aGUgIkNsYXNzaWMiIAorCSAgCU5lbHNvbikuCisJICBuZWxzb25fbiAtICJUaGUgTmV3IE5lbHNvbiBKYXBhbmVzZS1FbmdsaXNoIENoYXJhY3RlciBEaWN0aW9uYXJ5IiwgCisJICAJZWRpdGVkIGJ5IEpvaG4gSGFpZy4KKwkgIGhhbHBlcm5fbmplY2QgLSAiTmV3IEphcGFuZXNlLUVuZ2xpc2ggQ2hhcmFjdGVyIERpY3Rpb25hcnkiLCAKKwkgIAllZGl0ZWQgYnkgSmFjayBIYWxwZXJuLgorCSAgaGFscGVybl9ra2xkIC0gIkthbmppIExlYXJuZXJzIERpY3Rpb25hcnkiIChLb2RhbnNoYSkgZWRpdGVkIGJ5IAorCSAgCUphY2sgSGFscGVybi4KKwkgIGhlaXNpZyAtICJSZW1lbWJlcmluZyBUaGUgIEthbmppIiAgYnkgIEphbWVzIEhlaXNpZy4KKwkgIGdha2tlbiAtICJBICBOZXcgRGljdGlvbmFyeSBvZiBLYW5qaSBVc2FnZSIgKEdha2tlbikKKwkgIG9uZWlsbF9uYW1lcyAtICJKYXBhbmVzZSBOYW1lcyIsIGJ5IFAuRy4gTydOZWlsbC4gCisJICBvbmVpbGxfa2sgLSAiRXNzZW50aWFsIEthbmppIiBieSBQLkcuIE8nTmVpbGwuCisJICBtb3JvIC0gIkRhaWthbndhaml0ZW4iIGNvbXBpbGVkIGJ5IE1vcm9oYXNoaS4gRm9yIHNvbWUga2FuamkgdHdvCisJICAJYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGFyZSB1c2VkOiBtX3ZvbDogIHRoZSB2b2x1bWUgb2YgdGhlCisJICAJZGljdGlvbmFyeSBpbiB3aGljaCB0aGUga2FuamkgaXMgZm91bmQsIGFuZCBtX3BhZ2U6IHRoZSBwYWdlCisJICAJbnVtYmVyIGluIHRoZSB2b2x1bWUuCisJICBoZW5zaGFsbCAtICJBIEd1aWRlIFRvIFJlbWVtYmVyaW5nIEphcGFuZXNlIENoYXJhY3RlcnMiIGJ5CisJICAJS2VubmV0aCBHLiAgSGVuc2hhbGwuCisJICBzaF9rayAtICJLYW5qaSBhbmQgS2FuYSIgYnkgU3BhaG4gYW5kIEhhZGFtaXR6a3kuCisJICBzYWthZGUgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiBlZGl0ZWQgYnkKKwkgIAlGbG9yZW5jZSBTYWthZGUuCisJICBoZW5zaGFsbDMgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiAzcmQKKwkJZWRpdGlvbiwgZWRpdGVkIGJ5IEhlbnNoYWxsLCBTZWVsZXkgYW5kIERlIEdyb290LgorCSAgdHV0dF9jYXJkcyAtIFR1dHRsZSBLYW5qaSBDYXJkcywgY29tcGlsZWQgYnkgQWxleGFuZGVyIEthc2suCisJICBjcm93bGV5IC0gIlRoZSBLYW5qaSBXYXkgdG8gSmFwYW5lc2UgTGFuZ3VhZ2UgUG93ZXIiIGJ5CisJICAJRGFsZSBDcm93bGV5LgorCSAga2FuamlfaW5fY29udGV4dCAtICJLYW5qaSBpbiBDb250ZXh0IiBieSBOaXNoaWd1Y2hpIGFuZCBLb25vLgorCSAgYnVzeV9wZW9wbGUgLSAiSmFwYW5lc2UgRm9yIEJ1c3kgUGVvcGxlIiB2b2xzIEktSUlJLCBwdWJsaXNoZWQKKwkJYnkgdGhlIEFKTFQuIFRoZSBjb2RlcyBhcmUgdGhlIHZvbHVtZS5jaGFwdGVyLgorCSAga29kYW5zaGFfY29tcGFjdCAtIHRoZSAiS29kYW5zaGEgQ29tcGFjdCBLYW5qaSBHdWlkZSIuCisJLS0+PCFBVFRMSVNUIGRpY19yZWYgbV92b2wgQ0RBVEEgI0lNUExJRUQ+Cis8IS0tIAorCVNlZSBhYm92ZSB1bmRlciAibW9ybyIuCisJLS0+PCFBVFRMSVNUIGRpY19yZWYgbV9wYWdlIENEQVRBICNJTVBMSUVEPgorPCEtLSAKKwlTZWUgYWJvdmUgdW5kZXIgIm1vcm8iLgorCS0tPjwhRUxFTUVOVCBxdWVyeV9jb2RlIChxX2NvZGUpKz4KKzwhLS0gCisJVGhlc2UgY29kZXMgY29udGFpbiBpbmZvcm1hdGlvbiByZWxhdGluZyB0byB0aGUgZ2x5cGgsIGFuZCBjYW4gYmUgdXNlZAorCWZvciBmaW5kaW5nIGEgcmVxdWlyZWQga2FuamkuIFRoZSB0eXBlIG9mIGNvZGUgaXMgZGVmaW5lZCBieSB0aGUKKwlxY190eXBlIGF0dHJpYnV0ZS4KKwktLT48IUVMRU1FTlQgcV9jb2RlICgjUENEQVRBKT4KKzwhLS0KKwlUaGUgcV9jb2RlIGNvbnRhaW5zIHRoZSBhY3R1YWwgcXVlcnktY29kZSB2YWx1ZSwgYWNjb3JkaW5nIHRvIHRoZQorCXFjX3R5cGUgYXR0cmlidXRlLgorCS0tPjwhQVRUTElTVCBxX2NvZGUgcWNfdHlwZSBDREFUQSAjUkVRVUlSRUQ+Cis8IS0tIAorCVRoZSBxX2NvZGUgYXR0cmlidXRlIGRlZmluZXMgdGhlIHR5cGUgb2YgcXVlcnkgY29kZS4gVGhlIGN1cnJlbnQgdmFsdWVzCisJYXJlOgorCSAgc2tpcCAtICBIYWxwZXJuJ3MgU0tJUCAoU3lzdGVtICBvZiAgS2FuamkgIEluZGV4aW5nICBieSAgUGF0dGVybnMpIAorCSAgCWNvZGUuIFRoZSAgZm9ybWF0IGlzIG4tbm4tbm4uICBTZWUgdGhlIEtBTkpJRElDICBkb2N1bWVudGF0aW9uIAorCSAgCWZvciAgYSBkZXNjcmlwdGlvbiBvZiB0aGUgY29kZSBhbmQgcmVzdHJpY3Rpb25zIG9uICB0aGUgCisJICAJY29tbWVyY2lhbCAgdXNlICBvZiB0aGlzIGRhdGEuIFtQXQorCisJICBzaF9kZXNjIC0gdGhlIGRlc2NyaXB0b3IgY29kZXMgZm9yIFRoZSBLYW5qaSBEaWN0aW9uYXJ5IChUdXR0bGUgCisJICAJMTk5NikgYnkgU3BhaG4gYW5kIEhhZGFtaXR6a3kuIFRoZXkgYXJlIGluIHRoZSBmb3JtIG54bm4ubiwgIAorCSAgCWUuZy4gIDNrMTEuMiwgd2hlcmUgdGhlICBrYW5qaSBoYXMgMyBzdHJva2VzIGluIHRoZSAKKwkgIAlpZGVudGlmeWluZyByYWRpY2FsLCBpdCBpcyByYWRpY2FsICJrIiBpbiB0aGUgU0ggCisJICAJY2xhc3NpZmljYXRpb24gc3lzdGVtLCB0aGVyZSBhcmUgMTEgb3RoZXIgc3Ryb2tlcywgYW5kIGl0IGlzIAorCSAgCXRoZSAybmQga2FuamkgaW4gdGhlIDNrMTEgc2VxdWVuY2UuIChJIGFtIHZlcnkgZ3JhdGVmdWwgdG8gCisJICAJTWFyayBTcGFobiBmb3IgcHJvdmlkaW5nIHRoZSBsaXN0IG9mIHRoZXNlIGRlc2NyaXB0b3IgY29kZXMgCisJICAJZm9yIHRoZSBrYW5qaSBpbiB0aGlzIGZpbGUuKSBbSV0KKwkgIGZvdXJfY29ybmVyIC0gdGhlICJGb3VyIENvcm5lciIgY29kZSBmb3IgdGhlIGthbmppLiBUaGlzIGlzIGEgY29kZSAKKwkgIAlpbnZlbnRlZCBieSBXYW5nIENoZW4gaW4gMTkyOC4gU2VlIHRoZSBLQU5KSURJQyBkb2N1bWVudGF0aW9uIAorCSAgCWZvciAgYW4gb3ZlcnZpZXcgb2YgIHRoZSBGb3VyIENvcm5lciBTeXN0ZW0uIFtRXQorCisJICBkZXJvbyAtIHRoZSBjb2RlcyBkZXZlbG9wZWQgYnkgdGhlIGxhdGUgRmF0aGVyIEpvc2VwaCBEZSBSb28sIGFuZCAKKwkgIAlwdWJsaXNoZWQgaW4gIGhpcyBib29rICIyMDAxIEthbmppIiAoQm9qaW5zaGEpLiBGciBEZSBSb28gCisJICAJZ2F2ZSBoaXMgcGVybWlzc2lvbiBmb3IgdGhlc2UgY29kZXMgdG8gYmUgaW5jbHVkZWQuIFtEUl0KKwkgIG1pc2NsYXNzIC0gYSBwb3NzaWJsZSBtaXNjbGFzc2lmaWNhdGlvbiBvZiB0aGUga2FuamkgYWNjb3JkaW5nCisJCXRvIG9uZSBvZiB0aGUgY29kZSB0eXBlcy4gKFNlZSB0aGUgIloiIGNvZGVzIGluIHRoZSBLQU5KSURJQworCQlkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuKQorCSAgCisJLS0+PCFFTEVNRU5UIHJlYWRpbmdfbWVhbmluZyAocm1ncm91cCogLCBuYW5vcmkqKT4KKzwhLS0gCisJVGhlIHJlYWRpbmdzIGZvciB0aGUga2FuamkgaW4gc2V2ZXJhbCBsYW5ndWFnZXMsIGFuZCB0aGUgbWVhbmluZ3MsIGFsc28KKwlpbiBzZXZlcmFsIGxhbmd1YWdlcy4gVGhlIHJlYWRpbmdzIGFuZCBtZWFuaW5ncyBhcmUgZ3JvdXBlZCB0byBlbmFibGUKKwl0aGUgaGFuZGxpbmcgb2YgdGhlIHNpdHVhdGlvbiB3aGVyZSB0aGUgbWVhbmluZyBpcyBkaWZmZXJlbnRpYXRlZCBieSAKKwlyZWFkaW5nLiBbVDFdCisJLS0+PCFFTEVNRU5UIG5hbm9yaSAoI1BDREFUQSk+Cis8IS0tIAorCUphcGFuZXNlIHJlYWRpbmdzIHRoYXQgYXJlIG5vdyBvbmx5IGFzc29jaWF0ZWQgd2l0aCBuYW1lcy4KKwktLT48IUVMRU1FTlQgcm1ncm91cCAocmVhZGluZyogLCBtZWFuaW5nKik+Cis8IUVMRU1FTlQgcmVhZGluZyAoI1BDREFUQSk+Cis8IS0tIAorCVRoZSByZWFkaW5nIGVsZW1lbnQgY29udGFpbnMgdGhlIHJlYWRpbmcgb3IgcHJvbnVuY2lhdGlvbgorCW9mIHRoZSBrYW5qaS4KKwktLT48IUFUVExJU1QgcmVhZGluZyByX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorPCEtLSAKKwlUaGUgcl90eXBlIGF0dHJpYnV0ZSBkZWZpbmVzIHRoZSB0eXBlIG9mIHJlYWRpbmcgaW4gdGhlIHJlYWRpbmcKKwllbGVtZW50LiBUaGUgY3VycmVudCB2YWx1ZXMgYXJlOgorCSAgcGlueWluIC0gdGhlIG1vZGVybiBQaW5ZaW4gcm9tYW5pemF0aW9uIG9mIHRoZSBDaGluZXNlIHJlYWRpbmcgCisJICAJb2YgdGhlIGthbmppLiBUaGUgdG9uZXMgYXJlIHJlcHJlc2VudGVkIGJ5IGEgY29uY2x1ZGluZyAKKwkgIAlkaWdpdC4gW1ldCisJICBrb3JlYW5fciAtIHRoZSByb21hbml6ZWQgZm9ybSBvZiB0aGUgS29yZWFuIHJlYWRpbmcocykgb2YgdGhlIAorCSAgCWthbmppLiAgVGhlIHJlYWRpbmdzIGFyZSBpbiB0aGUgKFJlcHVibGljIG9mIEtvcmVhKSBNaW5pc3RyeSAKKwkgIAlvZiBFZHVjYXRpb24gc3R5bGUgb2Ygcm9tYW5pemF0aW9uLiBbV10KKwkgIGtvcmVhbl9oIC0gdGhlIEtvcmVhbiByZWFkaW5nKHMpIG9mIHRoZSBrYW5qaSBpbiBoYW5ndWwuCisJICBqYV9vbiAtIHRoZSAib24iIEphcGFuZXNlIHJlYWRpbmcgb2YgdGhlIGthbmppLCBpbiBrYXRha2FuYS4gQQorCSAgCXNlY29uZCBhdHRyaWJ1dGUgcl9zdGF0dXMsIGlmIHByZXNlbnQsIHdpbGwgaW5kaWNhdGUgd2l0aAorCSAgCWEgdmFsdWUgb2YgImp5IiB3aGV0aGVyIHRoZSByZWFkaW5nIGlzIGFwcHJvdmVkIGZvciBhCisJICAJIkpvdXlvdSBrYW5qaSIuCisJICBqYV9rdW4gLSB0aGUgImt1biIgSmFwYW5lc2UgcmVhZGluZyBvZiB0aGUga2FuamksIGluIGhpcmFnYW5hLiAKKwkgIAlXaGVyZSByZWxldmFudCB0aGUgb2t1cmlnYW5hIGlzIGFsc28gaW5jbHVkZWQgc2VwYXJhdGVkIGJ5IGEgCisJICAJIi4iLiBSZWFkaW5ncyBhc3NvY2lhdGVkIHdpdGggcHJlZml4ZXMgYW5kIHN1ZmZpeGVzIGFyZSAKKwkgIAltYXJrZWQgd2l0aCBhICItIi4gQSBzZWNvbmQgYXR0cmlidXRlIHJfc3RhdHVzLCBpZiBwcmVzZW50LCAKKwkgIAl3aWxsIGluZGljYXRlIHdpdGggYSB2YWx1ZSBvZiAiankiIHdoZXRoZXIgdGhlIHJlYWRpbmcgaXMgCisJICAJYXBwcm92ZWQgZm9yIGEgIkpvdXlvdSBrYW5qaSIuCisJLS0+PCFBVFRMSVNUIHJlYWRpbmcgcl9zdGF0dXMgQ0RBVEEgI0lNUExJRUQ+Cis8IS0tIAorCVNlZSB1bmRlciBqYV9vbiBhbmQgamFfa3VuIGFib3ZlLgorCS0tPjwhRUxFTUVOVCBtZWFuaW5nICgjUENEQVRBKT4KKzwhLS0gCisJVGhlIG1lYW5pbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBrYW5qaS4KKwktLT48IUFUVExJU1QgbWVhbmluZyBtX2xhbmcgQ0RBVEEgI0lNUExJRUQ+Cis8IS0tIAorCVRoZSBtX2xhbmcgYXR0cmlidXRlIGRlZmluZXMgdGhlIHRhcmdldCBsYW5ndWFnZSBvZiB0aGUgbWVhbmluZy4gSXQgCisJd2lsbCBiZSBjb2RlZCB1c2luZyB0aGUgdHdvLWxldHRlciBsYW5ndWFnZSBjb2RlIGZyb20gdGhlIElTTyA2MzkgCisJc3RhbmRhcmQuIFdoZW4gYWJzZW50LCB0aGUgdmFsdWUgImVuIiAoaS5lLiBFbmdsaXNoKSBpcyBpbXBsaWVkLiBbe31dCisJLS0+XT4KKzxrYW5qaWRpYzI+Cis8L2thbmppZGljMj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2lzb2xhdDEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9pc29sYXQxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNWEwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9pc29sYXQxCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHRy6HM+bOA8L3Ry6HM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9pc29sYXQyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvaXNvbGF0MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzI5MGI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvaXNvbGF0MgpAQCAtMCwwICsxLDEwNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHRzdD4KKworICAgICAgIFRoZSBmb2xsb3dpbmcgdGFibGUgZGlzcGxheXMgdGhlIGNoYXJhY3RlcnMgIGluICBJU08gIDg4NTkKKyAgICAgICBMYXRpbi0xLCAgd2hpY2ggYXJlIHByaW50YWJsZSBhbmQgdW5saXN0ZWQgaW4gdGhlIGFzY2lpCisgICAgICAgbWFudWFsIHBhZ2UuCisKKyAgICAgICBPY3QgICBEZWMgICBIZXggICBDaGFyICAgRGVzY3JpcHRpb24KKyAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIDI0MCAgIDE2MCAgIEEwICAgICAgICAgICBOTy1CUkVBSyBTUEFDRQorICAgICAgIDI0MSAgIDE2MSAgIEExICAgICChICAgICBJTlZFUlRFRCBFWENMQU1BVElPTiBNQVJLCisgICAgICAgMjQyICAgMTYyICAgQTIgICAgIKIgICAgIENFTlQgU0lHTgorICAgICAgIDI0MyAgIDE2MyAgIEEzICAgICCjICAgICBQT1VORCBTSUdOCisgICAgICAgMjQ0ICAgMTY0ICAgQTQgICAgIKQgICAgIENVUlJFTkNZIFNJR04KKyAgICAgICAyNDUgICAxNjUgICBBNSAgICAgpSAgICAgWUVOIFNJR04KKyAgICAgICAyNDYgICAxNjYgICBBNiAgICAgpiAgICAgQlJPS0VOIEJBUgorICAgICAgIDI0NyAgIDE2NyAgIEE3ICAgICCnICAgICBTRUNUSU9OIFNJR04KKyAgICAgICAyNTAgICAxNjggICBBOCAgICAgqCAgICAgRElBRVJFU0lTCisgICAgICAgMjUxICAgMTY5ICAgQTkgICAgIKkgICAgIENPUFlSSUdIVCBTSUdOCisgICAgICAgMjUyICAgMTcwICAgQUEgICAgIKogICAgIEZFTUlOSU5FIE9SRElOQUwgSU5ESUNBVE9SCisgICAgICAgMjUzICAgMTcxICAgQUIgICAgIKsgICAgIExFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgICAgMjU0ICAgMTcyICAgQUMgICAgIKwgICAgIE5PVCBTSUdOCisgICAgICAgMjU1ICAgMTczICAgQUQgICAgIK0gICAgIFNPRlQgSFlQSEVOCisgICAgICAgMjU2ICAgMTc0ICAgQUUgICAgIK4gICAgIFJFR0lTVEVSRUQgU0lHTgorICAgICAgIDI1NyAgIDE3NSAgIEFGICAgICCvICAgICBNQUNST04KKyAgICAgICAyNjAgICAxNzYgICBCMCAgICAgsCAgICAgREVHUkVFIFNJR04KKyAgICAgICAyNjEgICAxNzcgICBCMSAgICAgsSAgICAgUExVUy1NSU5VUyBTSUdOCisgICAgICAgMjYyICAgMTc4ICAgQjIgICAgILIgICAgIFNVUEVSU0NSSVBUIFRXTworICAgICAgIDI2MyAgIDE3OSAgIEIzICAgICCzICAgICBTVVBFUlNDUklQVCBUSFJFRQorICAgICAgIDI2NCAgIDE4MCAgIEI0ICAgICC0ICAgICBBQ1VURSBBQ0NFTlQKKyAgICAgICAyNjUgICAxODEgICBCNSAgICAgtSAgICAgTUlDUk8gU0lHTgorICAgICAgIDI2NiAgIDE4MiAgIEI2ICAgICC2ICAgICBQSUxDUk9XIFNJR04KKyAgICAgICAyNjcgICAxODMgICBCNyAgICAgtyAgICAgTUlERExFIERPVAorICAgICAgIDI3MCAgIDE4NCAgIEI4ICAgICC4ICAgICBDRURJTExBCisgICAgICAgMjcxICAgMTg1ICAgQjkgICAgILkgICAgIFNVUEVSU0NSSVBUIE9ORQorICAgICAgIDI3MiAgIDE4NiAgIEJBICAgICC6ICAgICBNQVNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKKyAgICAgICAyNzMgICAxODcgICBCQiAgICAguyAgICAgUklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgICAgMjc0ICAgMTg4ICAgQkMgICAgILwgICAgIFZVTEdBUiBGUkFDVElPTiBPTkUgUVVBUlRFUgorICAgICAgIDI3NSAgIDE4OSAgIEJEICAgICC9ICAgICBWVUxHQVIgRlJBQ1RJT04gT05FIEhBTEYKKyAgICAgICAyNzYgICAxOTAgICBCRSAgICAgviAgICAgVlVMR0FSIEZSQUNUSU9OIFRIUkVFIFFVQVJURVJTCisgICAgICAgMjc3ICAgMTkxICAgQkYgICAgIL8gICAgIElOVkVSVEVEIFFVRVNUSU9OIE1BUksKKyAgICAgICAzMDAgICAxOTIgICBDMCAgICAgwCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFCisgICAgICAgMzAxICAgMTkzICAgQzEgICAgIMEgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBBQ1VURQorICAgICAgIDMwMiAgIDE5NCAgIEMyICAgICDCICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMwMyAgIDE5NSAgIEMzICAgICDDICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggVElMREUKKyAgICAgICAzMDQgICAxOTYgICBDNCAgICAgxCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUworICAgICAgIDMwNSAgIDE5NyAgIEM1ICAgICDFICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRQorICAgICAgIDMwNiAgIDE5OCAgIEM2ICAgICDGICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBRQorICAgICAgIDMwNyAgIDE5OSAgIEM3ICAgICDHICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQQorICAgICAgIDMxMCAgIDIwMCAgIEM4ICAgICDIICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggR1JBVkUKKyAgICAgICAzMTEgICAyMDEgICBDOSAgICAgySAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFCisgICAgICAgMzEyICAgMjAyICAgQ0EgICAgIMogICAgIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzEzICAgMjAzICAgQ0IgICAgIMsgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMTQgICAyMDQgICBDQyAgICAgzCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgICAgMzE1ICAgMjA1ICAgQ0QgICAgIM0gICAgIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQorICAgICAgIDMxNiAgIDIwNiAgIENFICAgICDOICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMxNyAgIDIwNyAgIENGICAgICDPICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTCisgICAgICAgMzIwICAgMjA4ICAgRDAgICAgINAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEVUSAorICAgICAgIDMyMSAgIDIwOSAgIEQxICAgICDRICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggVElMREUKKyAgICAgICAzMjIgICAyMTAgICBEMiAgICAg0iAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEdSQVZFCisgICAgICAgMzIzICAgMjExICAgRDMgICAgINMgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBBQ1VURQorICAgICAgIDMyNCAgIDIxMiAgIEQ0ICAgICDUICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMyNSAgIDIxMyAgIEQ1ICAgICDVICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUKKyAgICAgICAzMjYgICAyMTQgICBENiAgICAg1iAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUworICAgICAgIDMyNyAgIDIxNSAgIEQ3ICAgICDXICAgICBNVUxUSVBMSUNBVElPTiBTSUdOCisgICAgICAgMzMwICAgMjE2ICAgRDggICAgINggICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKKyAgICAgICAzMzEgICAyMTcgICBEOSAgICAg2SAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFCisgICAgICAgMzMyICAgMjE4ICAgREEgICAgINogICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBBQ1VURQorICAgICAgIDMzMyAgIDIxOSAgIERCICAgICDbICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMzNCAgIDIyMCAgIERDICAgICDcICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCisgICAgICAgMzM1ICAgMjIxICAgREQgICAgIN0gICAgIExBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBBQ1VURQorICAgICAgIDMzNiAgIDIyMiAgIERFICAgICDeICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STgorICAgICAgIDMzNyAgIDIyMyAgIERGICAgICDfICAgICBMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUworICAgICAgIDM0MCAgIDIyNCAgIEUwICAgICDgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEdSQVZFCisgICAgICAgMzQxICAgMjI1ICAgRTEgICAgIOEgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAgICAzNDIgICAyMjYgICBFMiAgICAg4iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzQzICAgMjI3ICAgRTMgICAgIOMgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggVElMREUKKyAgICAgICAzNDQgICAyMjggICBFNCAgICAg5CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNDUgICAyMjkgICBFNSAgICAg5SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFCisgICAgICAgMzQ2ICAgMjMwICAgRTYgICAgIOYgICAgIExBVElOIFNNQUxMIExFVFRFUiBBRQorICAgICAgIDM0NyAgIDIzMSAgIEU3ICAgICDnICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAgICAzNTAgICAyMzIgICBFOCAgICAg6CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBHUkFWRQorICAgICAgIDM1MSAgIDIzMyAgIEU5ICAgICDpICAgICBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEFDVVRFCisgICAgICAgMzUyICAgMjM0ICAgRUEgICAgIOogICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM1MyAgIDIzNSAgIEVCICAgICDrICAgICBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUworICAgICAgIDM1NCAgIDIzNiAgIEVDICAgICDsICAgICBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgICAgMzU1ICAgMjM3ICAgRUQgICAgIO0gICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAgICAzNTYgICAyMzggICBFRSAgICAg7iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzU3ICAgMjM5ICAgRUYgICAgIO8gICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTCisgICAgICAgMzYwICAgMjQwICAgRjAgICAgIPAgICAgIExBVElOIFNNQUxMIExFVFRFUiBFVEgKKyAgICAgICAzNjEgICAyNDEgICBGMSAgICAg8SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBUSUxERQorICAgICAgIDM2MiAgIDI0MiAgIEYyICAgICDyICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEdSQVZFCisgICAgICAgMzYzICAgMjQzICAgRjMgICAgIPMgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAgICAzNjQgICAyNDQgICBGNCAgICAg9CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzY1ICAgMjQ1ICAgRjUgICAgIPUgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUKKyAgICAgICAzNjYgICAyNDYgICBGNiAgICAg9iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNjcgICAyNDcgICBGNyAgICAg9yAgICAgRElWSVNJT04gU0lHTgorICAgICAgIDM3MCAgIDI0OCAgIEY4ICAgICD4ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFNUUk9LRQorICAgICAgIDM3MSAgIDI0OSAgIEY5ICAgICD5ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEdSQVZFCisgICAgICAgMzcyICAgMjUwICAgRkEgICAgIPogICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQUNVVEUKKyAgICAgICAzNzMgICAyNTEgICBGQiAgICAg+yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYCisgICAgICAgMzc0ICAgMjUyICAgRkMgICAgIPwgICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCisgICAgICAgMzc1ICAgMjUzICAgRkQgICAgIP0gICAgIExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQUNVVEUKKyAgICAgICAzNzYgICAyNTQgICBGRSAgICAg/iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFRIT1JOCisgICAgICAgMzc3ICAgMjU1ICAgRkYgICAgIP8gICAgIExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTCisKKzwvdHN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvaXNvbGF0MyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2lzb2xhdDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFiZjdiNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L2lzb2xhdDMKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHJlYz4KKzxlZz48IVtDREFUQVs8IUVOVElUWSAlIHB1YiAgICAiJiN4Yzk7ZGl0aW9ucyBHYWxsaW1hcmQiID4KKzwhRU5USVRZICAgcmlnaHRzICJBbGwgcmlnaHRzIHJlc2VydmVkIiA+Cis8IUVOVElUWSAgIGJvb2sgICAiTGEgUGVzdGU6IEFsYmVydCBDYW11cywgCismI3hBOTsgMTk0NyAlcHViOy4gJnJpZ2h0czsiID5dXT48L2VnPgordGhlbiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBmb3IgdGhlIGVudGl0eSAiPGNvZGU+Ym9vazwvY29kZT4iIGlzOgorPGVnPkxhIFBlc3RlOiBBbGJlcnQgQ2FtdXMsIAorqSAxOTQ3IMlkaXRpb25zIEdhbGxpbWFyZC4gJmFtcDtyaWdodHM7PC9lZz4KKzwvcmVjPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9ucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGI5MjdlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnMKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyI+CisgIDxkaWE6ZGlhZ3JhbWRhdGEgZGlhOnRlc3RhdHRyPSJ0ZXN0Ii8+Cis8L2RpYTpkaWFncmFtPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnMyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnMyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2OWFkODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uczIKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyIgZGlhOnRlc3RhdHRyPSJ0ZXN0Ii8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uczMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uczMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY5YWQ4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L25zMwpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRpYTpkaWFncmFtIHhtbG5zOmRpYT0iaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvIiBkaWE6dGVzdGF0dHI9InRlc3QiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L25zNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L25zNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzZiZjkyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnM0CkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZGlhZ3JhbSB0ZXN0YXR0cj0idGVzdCIgeG1sOmxhbmc9ImVuIiB4bWw6bGluaz0ic2ltcGxlIiB4bWw6c3BhY2U9InByZXNlcnZlIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uczUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uczUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFmZTRlMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L25zNQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGVsZW1lbnQgeG1sbnM6cm5nPSJodHRwOi8vZXhhbXBsZS5vcmcvbnMvMSIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy9ucy8xIiBuYW1lPSJmb28iPgorICA8ZW1wdHkvPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnM2IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnM2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NzEyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uczYKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxyb290PgorICA8Zm9vIHhtbG5zPSJodHRwOi8vYWJjIi8+CisgIDxiYXIvPgorPC9yb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnM3IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvbnM3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MDg5ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uczcKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4bWw6dGVzdC8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uc2NsZWFuLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L25zY2xlYW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMWVhODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9uc2NsZWFuLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVTLUFTQ0lJIj8+Cis8YXJ0aWNsZSB4bWxucz0idGFnOmZvb2Zvb2Zvb2Zvb2Zvb2Zvb2Zvb2ZvbyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpkY3Rlcm1zPSJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvIj4KKzxmb29wOmNvbnRlbnQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOmZvb3A9InRhZzpmb29mb29mb29mb29mb29mb29mb29mb28iPgorPC9mb29wOmNvbnRlbnQ+Cis8L2FydGljbGU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9wM3AgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9wM3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFkNTU4NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3AzcApAQCAtMCwwICsxLDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxSREY6UkRGIHhtbG5zOnAzcD0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9XRC1QM1AxMC1zeW50YXgjcHJvcG9zYWwuRFREIiB4bWxuczpSREY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjIj4KKzxQUk9QIHJlYWxtPSJodHRwOi8vd3d3LkNvb2xDYXRhbG9nLmNvbS9jYXRhbG9ndWUvIiBlbnRpdHk9IkNvb2xDYXRhbG9nIiBhZ3JlZUlEPSI5NGRmMTI5M2EzZTUxOWJiIiBhc3N1cmFuY2U9Imh0dHA6Ly93d3cuVHJ1c3RVcy5vcmciPgorICA8VVNFUz4KKyAgPFNUQVRFTUVOVCBwdXJwPSIyLDMiIHJlY3BudD0iMCIgaWQ9IjAiIGNvbnNxPSJhIHNpdGUgd2l0aCBjbG90aGVzIHlvdSdkIGFwcHJlY2lhdGUuIj4KKyAgICA8V0lUSD48UFJFRklYIG5hbWU9IlVzZXIuIj4KKyAgICAgPFJFRiBuYW1lPSJOYW1lLkZpcnN0Ii8+CisgICAgIDxSRUYgbmFtZT0iQmRhdGUuWWVhciIgb3B0aW9uYWw9IjEiLz4KKyAgICAgPFJFRiBuYW1lPSJHZW5kZXIiLz4KKyAgICA8L1BSRUZJWD48L1dJVEg+CisgIDwvU1RBVEVNRU5UPgorICA8L1VTRVM+CisgIDxVU0VTPgorICA8U1RBVEVNRU5UIGFjdGlvbj0icmVhZCZhbXA7d3JpdGUiIHB1cnA9IjAiIHJlY3BudD0iMCIgaWQ9IjEiPgorICAgIDxSRUYgbmFtZT0iVXNlci5TaGlwcGluZy4iLz4KKyAgPC9TVEFURU1FTlQ+CisgIDwvVVNFUz4KKyAgPERJU0NMT1NVUkUgZGlzY1VSST0iaHR0cDovL3d3dy5Db29sQ2F0YWxvZy5jb20vUHJpdmFjeVByYWN0aWNlLmh0bWwiIGFjY2Vzcz0iMyIgb3RoZXI9IjAsMSIvPgorPC9QUk9QPjwvUkRGOlJERj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3BpLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3BpLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGM3ZmYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvcGkueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jPgorPD9kb2N1bWVudC1zdGFydCBkb2M/PgorPGVtcHR5Lz4KKzw/ZG9jdW1lbnQtZW5kIGRvYz8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3BpMi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9waTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMGQ1MWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9waTIueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8P2RvY3VtZW50LXN0YXJ0IGRvYz8+Cis8ZG9jPgorPGVtcHR5Lz4KKzwvZG9jPgorPD9kb2N1bWVudC1lbmQgZG9jPz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3JkZjEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9yZGYxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NGMzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9yZGYxCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFJERjpSREYgeG1sbnM6UlBNPSJodHRwOi8vd3d3LnJwbS5vcmcvIiB4bWxuczpSREY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjIj4KKyAgPFJERjpEZXNjcmlwdGlvbiBIUkVGPSJmdHA6Ly9ydWZ1cy53My5vcmcvbGludXgvcmVkaGF0L3JlZGhhdC01LjEvaTM4Ni9SZWRIYXQvUlBNUy9ycG0tMi41LTIuaTM4Ni5ycG0iPgorICAgIDxSUE06TmFtZT5ycG08L1JQTTpOYW1lPgorICAgIDxSUE06VmVyc2lvbj4yLjU8L1JQTTpWZXJzaW9uPgorICAgIDxSUE06UmVsZWFzZT4yPC9SUE06UmVsZWFzZT4KKyAgICA8UlBNOkFyY2g+aTM4NjwvUlBNOkFyY2g+CisgICAgPFJQTTpPcz5MaW51eDwvUlBNOk9zPgorICAgIDxSUE06RGlzdHJpYnV0aW9uPk1hbmhhdHRhbiA8L1JQTTpEaXN0cmlidXRpb24+CisgICAgPFJQTTpWZW5kb3I+UmVkIEhhdCBTb2Z0d2FyZTwvUlBNOlZlbmRvcj4KKyAgICA8UlBNOlBhY2thZ2VyPlJlZCBIYXQgU29mdHdhcmUgJmx0O2J1Z3NAcmVkaGF0LmNvbSZndDs8L1JQTTpQYWNrYWdlcj4KKyAgICA8UlBNOkdyb3VwPlV0aWxpdGllcy9TeXN0ZW08L1JQTTpHcm91cD4KKyAgICA8UlBNOlN1bW1hcnk+UmVkIEhhdCBQYWNrYWdlIE1hbmFnZXI8L1JQTTpTdW1tYXJ5PgorICAgIDxSUE06RGVzY3JpcHRpb24+UlBNIGlzIGEgcG93ZXJmdWwgcGFja2FnZSBtYW5hZ2VyLCB3aGljaCBjYW4gYmUgdXNlZCB0byBidWlsZCwgaW5zdGFsbCwKK3F1ZXJ5LCB2ZXJpZnksIHVwZGF0ZSwgYW5kIHVuaW5zdGFsbCBpbmRpdmlkdWFsIHNvZnR3YXJlIHBhY2thZ2VzLiBBCitwYWNrYWdlIGNvbnNpc3RzIG9mIGFuIGFyY2hpdmUgb2YgZmlsZXMsIGFuZCBwYWNrYWdlIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcKK25hbWUsIHZlcnNpb24sIGFuZCBkZXNjcmlwdGlvbi48L1JQTTpEZXNjcmlwdGlvbj4KKyAgICA8UlBNOkNvcHlyaWdodD5HUEw8L1JQTTpDb3B5cmlnaHQ+CisgICAgPFJQTTpDaGFuZ2Vsb2c+KiBTdW4gTWF5IDEwIDE5OTggUHJvc3BlY3RvciBTeXN0ZW0gJmx0O2J1Z3NAcmVkaGF0LmNvbSZndDsKKyAgLSB0cmFuc2xhdGlvbnMgbW9kaWZpZWQgZm9yIGRlLCBmciwgdHIKKzwvUlBNOkNoYW5nZWxvZz4KKyAgICA8UlBNOlNvdXJjZXM+cnBtLTIuNS0yLnNyYy5ycG08L1JQTTpTb3VyY2VzPgorICAgIDxSUE06U291cmNlc0Z0cD5mdHA6Ly9mdHAucmVkaGF0LmNvbS9wdWIvcmVkaGF0L3JlZGhhdC01LjEvU1JQTVM8L1JQTTpTb3VyY2VzRnRwPgorICAgIDxSUE06QnVpbGREYXRlPlN1biBNYXkgMTAgMTQ6NTI6MzIgMTk5ODwvUlBNOkJ1aWxkRGF0ZT4KKyAgICA8UlBNOkRhdGU+ODk0ODI2MzUyPC9SUE06RGF0ZT4KKyAgICA8UlBNOlNpemU+ODUwNTk5PC9SUE06U2l6ZT4KKyAgICA8UlBNOkJ1aWxkSG9zdD5wb3JreS5yZWRoYXQuY29tPC9SUE06QnVpbGRIb3N0PgorICAgIDxSUE06UHJvdmlkZXM+CisgICAgICA8UkRGOkJhZz4KKyAgICAgICAgPFJQTTpSZXNvdXJjZT5ycG08L1JQTTpSZXNvdXJjZT4KKyAgICAgIDwvUkRGOkJhZz4KKyAgICA8L1JQTTpQcm92aWRlcz4KKyAgICA8UlBNOlJlcXVpcmVzPgorICAgICAgPFJERjpCYWc+CisgICAgICAgIDxSUE06UmVzb3VyY2U+L2Jpbi9zaDwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlPmxkLWxpbnV4LnNvLjI8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZT5saWJjLnNvLjY8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZT5saWJkYi5zby4yPC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+bGliei5zby4xPC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+L2Jpbi9iYXNoPC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+L2Jpbi9zaDwvUlBNOlJlc291cmNlPgorICAgICAgPC9SREY6QmFnPgorICAgIDwvUlBNOlJlcXVpcmVzPgorICAgIDxSUE06RmlsZXM+L2Jpbi9ycG0KKy91c3IvYmluL2ZpbmQtcHJvdmlkZXMKKy91c3IvYmluL2ZpbmQtcmVxdWlyZXMKKy91c3IvYmluL2dlbmRpZmYKKy91c3IvYmluL3JwbTJjcGlvCisvdXNyL2RvYy9ycG0tMi41CisvdXNyL2RvYy9ycG0tMi41L0NIQU5HRVMKKy91c3IvZG9jL3JwbS0yLjUvUlBNLVBHUC1LRVkKKy91c3IvZG9jL3JwbS0yLjUvYnVpbGRyb290CisvdXNyL2RvYy9ycG0tMi41L2RlcGVuZGVuY2llcworL3Vzci9kb2MvcnBtLTIuNS9mb3JtYXQKKy91c3IvZG9jL3JwbS0yLjUvZ3JvdXBzCisvdXNyL2RvYy9ycG0tMi41L21hY3JvcworL3Vzci9kb2MvcnBtLTIuNS9xdWVyeWZvcm1hdAorL3Vzci9kb2MvcnBtLTIuNS9yZWxvY2F0YWJsZQorL3Vzci9kb2MvcnBtLTIuNS9zaWduYXR1cmVzCisvdXNyL2RvYy9ycG0tMi41L3NwZWMKKy91c3IvZG9jL3JwbS0yLjUvdHJpZ2dlcnMKKy91c3IvbGliL3JwbXBvcHQKKy91c3IvbGliL3JwbXJjCisvdXNyL21hbi9tYW44L3JwbS44CisvdXNyL21hbi9tYW44L3JwbTJjcGlvLjgKKy91c3Ivc2hhcmUvbG9jYWxlL2RlL0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvZnIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NoYXJlL2xvY2FsZS9wdC1ici9MQ19NRVNTQUdFUy9ycG0ubW8KKy91c3Ivc2hhcmUvbG9jYWxlL3N2L0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvdHIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NyYy9yZWRoYXQKKy91c3Ivc3JjL3JlZGhhdC9CVUlMRAorL3Vzci9zcmMvcmVkaGF0L1JQTVMKKy91c3Ivc3JjL3JlZGhhdC9SUE1TL2kzODYKKy91c3Ivc3JjL3JlZGhhdC9SUE1TL25vYXJjaAorL3Vzci9zcmMvcmVkaGF0L1NPVVJDRVMKKy91c3Ivc3JjL3JlZGhhdC9TUEVDUworL3Vzci9zcmMvcmVkaGF0L1NSUE1TCis8L1JQTTpGaWxlcz4KKyAgPC9SREY6RGVzY3JpcHRpb24+Cis8L1JERjpSREY+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9yZGYyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvcmRmMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODQ5NDZiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvcmRmMgpAQCAtMCwwICsxLDE4OTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFJERjpSREYgeG1sbnM6UkRGPSJodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IyIgeG1sbnM6UlBNPSJodHRwOi8vd3d3LnJwbS5vcmcvIj4KKyAgPFJERjpEZXNjcmlwdGlvbiBhYm91dD0iZnRwOi8vcnVmdXMudzMub3JnL2xpbnV4L2RsZC81LjQvaTM4Ni9SUE1TL2kzODYvbmN1cnNlczQtNC4yLTMuaTM4Ni5ycG0iPgorICAgIDxSUE06TmFtZT5uY3Vyc2VzNDwvUlBNOk5hbWU+CisgICAgPFJQTTpWZXJzaW9uPjQuMjwvUlBNOlZlcnNpb24+CisgICAgPFJQTTpSZWxlYXNlPjM8L1JQTTpSZWxlYXNlPgorICAgIDxSUE06QXJjaD5pMzg2PC9SUE06QXJjaD4KKyAgICA8UlBNOk9zPkxpbnV4PC9SUE06T3M+CisgICAgPFJQTTpEaXN0cmlidXRpb24+RExEPC9SUE06RGlzdHJpYnV0aW9uPgorICAgIDxSUE06VmVuZG9yPmRlbGl4IENvbXB1dGVyIEdtYkg8L1JQTTpWZW5kb3I+CisgICAgPFJQTTpQYWNrYWdlcj5UaWxsIEJ1YmVjayAmbHQ7YnViZWNrQGRlbGl4LmRlJmd0OywgTmdvIFRoYW4gJmx0O3RoYW5AZGVsaXguZGUmZ3Q7PC9SUE06UGFja2FnZXI+CisgICAgPFJQTTpHcm91cD5MaWJyYXJpZXM8L1JQTTpHcm91cD4KKyAgICA8UlBNOlN1bW1hcnk+QmlibGlvdGhlayB6dXIgQW5zdGV1ZXJ1bmcgdm9uIFRlcm1pbmFsczwvUlBNOlN1bW1hcnk+CisgICAgPFJQTTpEZXNjcmlwdGlvbj5EaWVzZSBMaWJyYXJ5IHN0ZWxsdCBkZW0gUHJvZ3JhbW1pZXJlciB2b20gVGVybWluYWwgdW5hYmgmI3hFNDtuZ2lnZQorUm91dGluZW4genVyIEFuc3RldWVydW5nIElocmVzIEJpbGRzY2hpcm1zIHp1ciBWZXJmJiN4RkM7Z3VuZywgZGllCitzcGV6aWVsbCBvcHRpbWllcnQgc2luZC4KK0RpZXNlIFZlcnNpb24gaXN0IGRpZSAnbmV3IGN1cnNlcycgKG5jdXJzZXMpIFZhcmlhbnRlIHVuZCBpc3QgZGVyCithbmVya2FubnRlIEVyc2F0eiBmJiN4RkM7ciBkaWUga2xhc3Npc2NoZSBDdXJzZXMtTGlicmFyeSwgZGllIG5pY2h0IG1laHIKK3dlaXRlcmVudHdpY2tlbHQgd2lyZC48L1JQTTpEZXNjcmlwdGlvbj4KKyAgICA8UlBNOkNvcHlyaWdodD5HUEw8L1JQTTpDb3B5cmlnaHQ+CisgICAgPFJQTTpTb3VyY2VzPm5jdXJzZXM0LTQuMi0zLnNyYy5ycG08L1JQTTpTb3VyY2VzPgorICAgIDxSUE06QnVpbGREYXRlPlR1ZSBNYXkgMTIgMTk6MzA6MjYgMTk5ODwvUlBNOkJ1aWxkRGF0ZT4KKyAgICA8UlBNOkRhdGU+ODk1MDE1ODI2PC9SUE06RGF0ZT4KKyAgICA8UlBNOlNpemU+MTM3MzUxMzwvUlBNOlNpemU+CisgICAgPFJQTTpCdWlsZEhvc3Q+ZXJkYmVlcmUuZGVsaXguZGU8L1JQTTpCdWlsZEhvc3Q+CisgICAgPFJQTTpQcm92aWRlcz4KKyAgICAgIDxSREY6QmFnPgorICAgICAgICA8UlBNOlJlc291cmNlIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9uY3Vyc2VzNC5yZGYiPm5jdXJzZXM0PC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2UgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2xpYnBhbmVsLnNvLjQucmRmIj5saWJwYW5lbC5zby40PC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2UgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2xpYm5jdXJzZXMuc28uNC5yZGYiPmxpYm5jdXJzZXMuc28uNDwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9saWJtZW51LnNvLjQucmRmIj5saWJtZW51LnNvLjQ8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbGliZm9ybS5zby40LnJkZiI+bGliZm9ybS5zby40PC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2UgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL25jdXJzZXMucmRmIj5uY3Vyc2VzPC9SUE06UmVzb3VyY2U+CisgICAgICA8L1JERjpCYWc+CisgICAgPC9SUE06UHJvdmlkZXM+CisgICAgPFJQTTpGaWxlcz4vbGliL2xpYm5jdXJzZXMuc28uNAorL2xpYi9saWJuY3Vyc2VzLnNvLjQuMgorL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL0FOTk9VTkNFLmd6CisvdXNyL2RvYy9uY3Vyc2VzNC00LjItMy9ORVdTLmd6CisvdXNyL2RvYy9uY3Vyc2VzNC00LjItMy9SRUFETUUuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL1RPLURPLmd6CisvdXNyL2xpYi9saWJmb3JtLnNvLjQKKy91c3IvbGliL2xpYmZvcm0uc28uNC4yCisvdXNyL2xpYi9saWJtZW51LnNvLjQKKy91c3IvbGliL2xpYm1lbnUuc28uNC4yCisvdXNyL2xpYi9saWJwYW5lbC5zby40CisvdXNyL2xpYi9saWJwYW5lbC5zby40LjIKKy91c3Ivc2hhcmUvbmN1cnNlczQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0CisvdXNyL3NoYXJlL25jdXJzZXM0L3RhYnNldC9zdGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0L3N0ZGNydAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvdnQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0L3Z0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMS8xMTc4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzEvMTczMC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yLzI2MjEtd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMi8yNjIxQQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yLzI2MjFhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMy8zODZhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8zLzNiMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby80CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQvNDAyNWV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQvNDAyN2V4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQvNDQxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81MDUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUvNTQxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUvNTYyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzU2MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NjMwRE1ELTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNi82MzAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNi82MzBNVEctMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1URy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1URy00MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1URy00MXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNy83MzBNVEdyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHci0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby84CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzgvODUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby85CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzkvOTU1LWhiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzkvOTU1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxMi1NCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLU0tVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxMi1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDE0LU0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtTS1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDE0LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A4LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOS04LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOS1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vWC9YLWhwdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTIxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2E4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2E5ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYTQwODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErZGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhK3J2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhK3VuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0xOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0xOC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yNC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXJ2LWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zLWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zLXJ2LWN0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTM2LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQ4LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLWRlYy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS02MC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS02MC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXMtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1kYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1ydi1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2LXVuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1zLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMtcnYtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS11bmsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYXMxOTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYm04NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1aC1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hY3Q0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWN0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkZHJpbmZvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkczk4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkZHN2aWV3cG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZGRzdnA2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbStzZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMTc4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0yMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zMS1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtM2ErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG00Mi1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZXBybworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FpeHRlcm0tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FpeHRlcm0tbS1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hagorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqNTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWo4MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hajgzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0N3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0by1oMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvLWhlYXRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b2gxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9oZWF0aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zLTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvcy0zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zLTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtYmFzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1iYXNzYWRvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtaWdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1pZ2EtaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcDIxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcDIxOXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleC0yMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleC0yMTl3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgtMjMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgxNzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDE3NS1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MjE5dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MjMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMzJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXg4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FubmFyYm9yNDA4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLWNvbG9yLTItZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1jb2xvci0zLWVteAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2ktZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1taW5pCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1udAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2kuc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS5zeXMtb2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS5zeXNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTQzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k3NworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgyNS1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1LXJhdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgzMC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDQzLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NTAtbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg2MC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpbC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpcy1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaXN5c2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwLXZtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcG9sbG8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcG9sbG9fMTVQCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBvbGxvXzE5TAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsb19jb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtYWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS1zb3JvYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXV0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdXRlcm0tdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS12aWRleAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZpZGV4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZpZGV4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTJlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUyZS1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGU4MHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZUlJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGVJSWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZUlJZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUlncworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0Mzg2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXRhcmkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQyMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0MjM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDEwdjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDEwdjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1K25sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXJ2LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13LXJ2LW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI0LTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI0bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUwNS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUxMGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MTBkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTEzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTMxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxMHYxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxMHYxLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjArbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjBfMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjBfMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjUtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU2MjAtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU2MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjA1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjA1LXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjA1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTAtMTAzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC0xMDNrLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxNS0xMDNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LTEwM2stdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjIwLTEwM2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtMTAzay13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2Mzg2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDczMHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzByLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwci00MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdmF0YXIwKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQrcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ydi1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ydi1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdy1ydi1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXJ2LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXdzYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYi0xMjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iYW50YW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iYXNpYzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iYXNpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JjdDUxMGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iY3Q1MTBkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVhY29uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlaGl2ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JlZWhpdmUzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlaGl2ZTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlSUlJbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JldGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMS4yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMS4yNW52CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1cnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzIuMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wbnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzIuMHJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmczLjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmczLjEwbnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTBydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JoM20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iaDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iaXRncmFwaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JsaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9ib2JjYXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9ic2RvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JzZG9zLWJvbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTAwLTFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMC00cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTAwLXJ2LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LXJ2LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC1ydi04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtdy04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMzAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzMyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NhMjI4NTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jYWQ2OC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2FkNjgtMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NiYmxpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NidW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NjaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NjaTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM0NTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3MjEtZXNjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2RjNzIxbGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3NTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3NTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZzc5MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZ2MyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2djMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2Nocm9tYXRpY3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaTg1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0MTAxZS0xMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLW4xMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC02bHBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtOGxwaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLWNvbXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC1lbGl0ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLXBpY2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC1wcm9wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtcHMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb2NvMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvaGVyZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29sb3JfeHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb2xvcnNjYW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb21tb2RvcmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdC1hdnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOC04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDgtdy04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOC13OHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4cnY0cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNS1pc28tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNS1pc284ODU5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWtvaTgtcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNS1rb2k4ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjVsMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNWwxLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMzMC1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczQzLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAtaXNvLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAtaXNvODg1OQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1rb2k4cgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1rb2k4ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTBsMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MGwxLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTByCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWlzbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MC1pc28tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MC1rb2k4cgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MC1rb2k4ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjBsMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MGwxLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjByCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29wcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvcHMtMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb3BzMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jczEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3MxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3Q4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N0ODUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N0cm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N4MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3liMTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3liODMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2QxMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kODAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGF0YWdyYXBoaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhbWVkaWEyNTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGF0YXBvaW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGF0YXNwZWVkNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZDUwMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZHIzMTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0NDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjcHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjd3JpdGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVsdGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZy1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGcxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnMjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGcyMTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzQ1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNDYwLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzYwNTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzYxMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8tbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTYyMC1tOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjQwLWxtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTY0MC1tOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTc0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE3NDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG80NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG82MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFsb2d1ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWxvZ3VlODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWdpbG9nCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGt1NzAwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RrdTcwMDMtZHVtYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMTUyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMjUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMzAyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMzA0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbTgwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtY2hhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZC0zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbWR0ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbWR0ODB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG10ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHAzMzYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHA4MjQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RzNDAtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0LTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0LTEwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0MTAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0MTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0ODAtc2FzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQ4MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdGMzMDBzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHRjMzgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHR0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHVtYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHcxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHcyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHczCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHc0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHdrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHdrLXZ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lY21hK2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZWNtYStzZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lbW90cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VtdQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VudjIzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VudmlzaW9uMjMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VwNDAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VwNDA4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VwNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lcmdvNDAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VzcHJpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VzcHJpdC1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXgxNTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDYyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2Mi1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDY0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2NC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhlYzgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjEwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTEwLTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjExMC0xNHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxNzIwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMjAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMjAwdmkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMjAwdmktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZhbGNvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmFsY28tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2Zlbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmVuaXh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZml4dGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZvcnR1bmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mb3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mb3gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZnJlZWRvbS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20xMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tMTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZnJlZWRvbTIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nYXRvci01MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dhdG9yLTUydAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dhdG9yLXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9naWdpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2xhc3N0dHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nby0yMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nbzE0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvMTQwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvMjI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3JhcGhvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dyYXBob3MtMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczU0MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczU0MzAtMjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczU0MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczYzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0MTAwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndDQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1K3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1K3VuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0zMy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtMzMtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTQ0LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni1scAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYtdy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtbHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LW5jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaC0xMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oLTEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxMDBidworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktYnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktZworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1zbXVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LXUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktdXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTlhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5ZworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTlrZXJtaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTl1cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEta2MtYmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMjlhLWtjLXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDI5YS1ua2MtYmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMjlhLW5rYy11YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2g4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hhODY3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hhODY4NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hhemVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGRzMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGU4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGVhdGgtMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aC1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGVhdGhraXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aGtpdC1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGZ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGZ0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oaXJlejEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hpcmV6MTAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9obW9kMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArYXJyb3dzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArY29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtsYWJlbHMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmsrYXJyb3dzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArcGZrK2NyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArcGZrLWNyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArcHJpbnRlcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAxNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM4MmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzOTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzOTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzOTdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLTQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtYmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtZmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLXdsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxQQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFhLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1reAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWIta3gtcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWItcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWs0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFwLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjJhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNC0xMHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0YS0xMHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi0xMHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTEwcC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi00cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGItNHAtcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGItcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNi0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNi0xMi1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyeDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYteDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI3YS1yZXYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjdjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjJ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0MGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDFhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ0YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0NWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ4YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMzAwaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNzAwLXd5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDA5MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNzAwOTJBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDA5MmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4MzcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA5ODU1MGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA5ODcyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocGV4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwZ2VuZXJpYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwc3ViCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHB0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHR4MTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejEwMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MjAtbm9lc2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1NTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1NTItcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejIwMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2kxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pMzEwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2kzMTUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTMxNjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pNDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJjczIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tYXBsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtLXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtLXN5c3RlbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzE1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxNjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTYzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzE2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMyN3gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MDUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTA4MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUwODEtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUxNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MTU0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTE1NC1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNjE1MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm02MTU0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm02MTU1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtODUxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTg1MTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtODUxNC1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtYWVkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtYXBhMTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtYXBhOGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGE4Yy1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtZWdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtZWdhLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtbXBlbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libW1wZWwtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMzcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXBjM3ItbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXBjeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXZnYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXZnYS1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJteAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lmbXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbXMtYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ltczk1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ltczk1MC1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW5mb3RvbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGVydGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0dWJlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0dWJlMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGV4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGV4dDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRleHRpaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lwcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lwc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcTEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lxMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpcy1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpcy1hbnNpLWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpcy1jb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lyaXM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9qCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2ovamFpeHRlcm0tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9qL2plcnEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2s0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2theXBybworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2theXBybzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rZXJtaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rZXJtaXQtYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZSthY3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZStjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2tvaThhY3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZStzZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZStzZ3ItZHVtYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2t0NworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2t0N2l4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Rlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rdG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xhMTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGF5ZXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1jLW5jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgta29pOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LW5pYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saXNhdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc2F0ZXJtLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saXN3YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xuMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sbjAzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9scHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sdW5hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbHVuYTY4aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbTItbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFjLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWNpbnRvc2gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWN0ZXJtaW5hbC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFzc2NvbXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYXNzY29tcDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYXNzY29tcDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZGwxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZWdhdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWVtaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZ3ItbGludXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZ3Itc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWljcm9iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWljcm9iZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb3Rlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb3Rlcm01CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUtM2F4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS1mYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTJhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTJhLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEtdgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUzMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTNheAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWVpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZWlpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml0ZWwtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml0ZWwtMi1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml4LW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml4LW9sZC1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21tMzE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW0zNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2QyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZGdyYXBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9kZ3JhcGgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9kZ3JhcGg0OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vbm8tZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrMjI3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrMjI3MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjdhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21za2VybWl0MjI3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjcxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21za2VybWl0MjI3YW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tdC03MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL210NDUyMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL210NzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpLnN5cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpLnN5c2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uYW5zaXN5cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uY3I3OTAwaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDBpdgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZWM1NTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3aHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdocGtleWJvYXJkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMjkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzLTI5LWV1YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMjktc2ppcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzLTMzLWV1YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMzMtc2ppcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzLTQyLWV1YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtNDItc2ppcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3Mtb2xkLXVuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czI4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czI4LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMzEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czQwLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3M0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzY2JtLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzY2JtLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzY2JtMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV4dHNoZWxsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbm9ydGhzdGFyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndlNTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndlNTAxLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cC01MTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AtNTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwLTUxNy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwMjUxLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AyNTEtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMi1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTMtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMy1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE0LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxNy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE4LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vbzMxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vbzQxMTItbmQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2FibTg1aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29ibGl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2MxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vY29uY2VwdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29qZXJxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2xkaWJtcGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2xkcGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2xkc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb21yb24KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vcHVzM24xKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29yaWdpYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vcmlncGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3M5TElJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29zYm9ybmUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29zYm9ybmUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZTEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29zZXhlYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL290ZWs0MTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vdGVrNDExNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL290ZWs0MTE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3dsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi1tLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxNC1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxNC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDhnbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A5LTgtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A5LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYy1jb2hlcmVudAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjLW1pbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMtdmVuaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzMtYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjM3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzNyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzYzMDBwbHVzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGM3MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTI1LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMzMtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS00My1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpMjVtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kzM20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2k0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjY29ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjY29uc29sZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2tlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0MTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2tlcm1pdDEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjcGxvdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyNXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0Mjh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDM1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDM1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NDN3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDUwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnRYWAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjejE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGUxMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGUxMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGUxMjUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGU1NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTYxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTYzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTYzMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTcwMDBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGU3MDAwbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BpbG90CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpbnRlcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTEyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTEyLW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTE0LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTE0LW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204Z2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTktOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS04LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BybzM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BzMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLTgweDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLTkweDI4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLTk2eDQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLWJhc2ljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLWZhc3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3hfYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQxMDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDIwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDIxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQyNTB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQ1MDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDUwNS0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0NTA1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHR5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xZGNvbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xZHNzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcW54CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcW54NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F1bWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdW1lNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwMSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTkrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOSstMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOSstdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOS0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTlwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOXAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOXAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMysKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQyMDMtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQyMDMtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzLXctYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JiY29tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JiY29tbS1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yYmNvbW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JjYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlYnVzMzE4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQ0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDQwKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcnQ2MjIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcnQ2MjIxLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Ivcnh2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3J4dnQtYmFzaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Nib2JjYXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zYzQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjNDE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NhbnNldAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Njb2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3JlZW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3JlZW4tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3JlZW4zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyZXdwb2ludAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmhwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2ltdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Nvcm9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc29yb2MxMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zb3JvYzE0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NwaW53cml0ZXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdDUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1jbWQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1lLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4taWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tbmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tcy1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLXNzNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1cGVyYmVlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJiZWUteHNiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJiZWVpYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1cGVyYnJhaW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdjgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3d0cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N5bmVydGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3luZXJ0ZWszODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zeXN0ZW0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90MTA2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMDYxZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QzNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDM4MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90NjUzeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMi0xNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMi1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YW5kZW02NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFuZGVtNjUzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxNC1zbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDE1LXNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNS0xNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUtMTctd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LWNyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNS1leAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjVhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNWV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjctZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNS0zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDVhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNmJybAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA3YnJsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDlicmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMi01CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMi1uZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEzLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMy1uZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQyMDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MjA3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDIwNy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDQwNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlbGVyYXkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWxldGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVybWluZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZXJtaW5ldDEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZXJtaW5ldDMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RndGVsbmV0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk3MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTczMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpNzM1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk3NDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTgwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYtMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYtMjIwLTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0yMjAtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi04LTEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI0LTh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjR3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNi04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyOC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aV9hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdG4xMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdG4zMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cnMxNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cnM4MElJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHJzSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cy0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMtMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90czEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90czEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwLWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90czEwMC1zcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dDUwNS0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHkzNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQ0MjQtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQ0MjRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDEwdjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDEwdjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwK25sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXJ2LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13LXJ2LW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyNS1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NjIwLTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NjIwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMC0zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eWRtZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aS0ycAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTgwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkwNjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTJjYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMC0ycAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTI1LWhpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTJCCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTJECisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLXJ2LTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLXJ2LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTU1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTU1LWhiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTU1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NzAtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmlwdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdWx0aW1hMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3VsdGltYUlJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5pdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3VuaXRlcm00OQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3VuaXhwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3Vua25vd24KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91dHMzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdjIwMC1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92MzIwbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3YzMjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdjU0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YXBwbGUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzEwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmMzMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzMwM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzQwM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzQwNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDA0LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzQxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDE0aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmVuaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92ZXJzYXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwLWYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTIwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkzMDAtb2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1MGFkbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTU1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmlld3BvaW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmlld3BvaW50M2ErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmlld3BvaW50NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQ5MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Zpc2E1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Zpc3VhbDYwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpdHR5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmsxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92cDNhKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92cDkwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnJlbW90ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZzMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnMxMDAteDEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnNjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQtNjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtYm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ibS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtYm90LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1uYW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hdgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hdi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXMtYm90CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtcy10b3AKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC10b3AtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXctYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC13LW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXctbmF2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDBuYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyLW5zZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIwMC1qcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIyMC1qcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIyMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMwMC13LW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtazMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1rMzExCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzIwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjBuYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQwMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjBmCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjBwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NDIwcGNkb3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUxMHBjZG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDYxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ2MS41CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93cmVuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3JlbncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93c2lyaXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eS03NWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEwMHEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwLXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXRlaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxODUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzAtbWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDJ3LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDJ3dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjV3LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLTEwMWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC0xMDVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtRVBDCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtbmsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXRlaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTM2dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTM2d3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtNDh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtNDh3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtMzE2WAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTQyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzUtbWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5ODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5ODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3Qtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlLTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UtNzVhcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UtdnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTQzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE4NS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMC1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS0yNXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS00MncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS00M3cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzNTAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MC1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtMzZwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtMzZ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNndwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTQ4cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTQ4dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDh3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLWVwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtZXBjLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1wYy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtcGMtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0zMTZYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLTQyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NS1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTg1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTg1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxMHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94MTcwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzAwLWxtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDE3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94MTc1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3g2OGsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94NjhrLWl0ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3g4MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGVyb3gtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZXJveDE3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZXJveDgyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hsODMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGFsaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0rc2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybStzbC10d20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS0xNmNvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tOGJpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLWJvbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1uaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1wY29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0teGY4Ni12MzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14Zjg2LXYzMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXhmODYtdjQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0teGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybXMtc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHdzaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovei0xMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96LTEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxMDBidworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MTEwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjlhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEta2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjlhLW5rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEtbmtjLXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MzQwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozOS1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM5YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3o1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3o4MDAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW41MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbjgwMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW5pdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW5pdGgyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDM5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW5pdGgzOS1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenQtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3p0eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3p0eC0xLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96dHgxMQorPC9SUE06RmlsZXM+CisgIDwvUkRGOkRlc2NyaXB0aW9uPgorPC9SREY6UkRGPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvc2xhc2hkb3QucmRmIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvc2xhc2hkb3QucmRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMDA4YWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zbGFzaGRvdC5yZGYKQEAgLTAsMCArMSw2NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zPSJodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LyI+CisKKyAgPGNoYW5uZWw+CisgICAgPHRpdGxlPlNsYXNoZG90Ok5ld3MgZm9yIE5lcmRzLiBTdHVmZiB0aGF0IE1hdHRlcnMuPC90aXRsZT4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnLzwvbGluaz4KKyAgICA8ZGVzY3JpcHRpb24+TmV3cyBmb3IgTmVyZHMuICBTdHVmZiB0aGF0IE1hdHRlcnM8L2Rlc2NyaXB0aW9uPgorICA8L2NoYW5uZWw+CisKKyAgPGltYWdlPgorICAgIDx0aXRsZT5TbGFzaGRvdDwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2ltYWdlcy9zbGFzaGRvdGxnLmdpZjwvdXJsPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmc8L2xpbms+CisgIDwvaW1hZ2U+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+MTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tZTwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDQwMjExLnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+R2ltcCAxLjIgUHJldmlldzwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDM4MjQ2LnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+U29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQ8L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzMjI1Ni5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPkFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciAiSGFja2VyIj88L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkb3QvOTkvMDYvMDUvMTgxNTIyNS5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPkNvcmVsIExpbnV4IEZBUTwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xODQyMjE4LnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+VXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLjwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xNTU4MjEwLnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+MiBUZXJhYml0cyBvZiBCYW5kd2lkdGg8L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1NDI1OC5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPlN1cHByZXNzaW9uIG9mIGNvbGQgZnVzaW9uIHJlc2VhcmNoPzwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzEzMjAwLnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+Q2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mbyBTYWxlPC90aXRsZT4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzIzNTI1Ni5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPlJlZCBIYXQgQW5ub3VuY2VzIElQTzwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8wODQ5MjA3LnNodG1sPC9saW5rPgorICA8L2l0ZW0+Cis8L3JkZjpSREY+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zbGFzaGRvdC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zbGFzaGRvdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY0OGQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3NsYXNoZG90LnhtbApAQCAtMCwwICsxLDExMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8dWx0cmFtb2RlPgorIDxzdG9yeT4KKyAgICA8dGl0bGU+MTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tZTwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0NDAyMTEuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA2IDE0OjM5OjU5PC90aW1lPgorICAgIDxhdXRob3I+Q21kclRhY288L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD53b3VsZG4ndC1pdC1iZS1uaWNlPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5pbnRlcm5ldDwvdG9waWM+CisgICAgPGNvbW1lbnRzPjIwPC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNpbnRlcm5ldC5qcGc8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+R2ltcCAxLjIgUHJldmlldzwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzgyNDYuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA2IDE0OjM4OjQwPC90aW1lPgorICAgIDxhdXRob3I+Q21kclRhY288L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD5zdHVmZi10by1yZWFkPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5naW1wPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTI8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY2dpbXAuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKyA8c3Rvcnk+CisgICAgPHRpdGxlPlNvbnkncyBBSUJPIHJvYm90IFNvbGQgT3V0PC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzMjI1Ni5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDYgMTQ6MzI6NTE8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnN0dWZmLXRvLXNlZTwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+dGVjaDwvdG9waWM+CisgICAgPGNvbW1lbnRzPjEwPC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWN0ZWNoMi5qcGc8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+QXNrIFNsYXNoZG90OiBBbm90aGVyIFdvcmQgZm9yICJIYWNrZXIiPzwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG90Lzk5LzA2LzA1LzE4MTUyMjUuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA1IDIwOjAwOjAwPC90aW1lPgorICAgIDxhdXRob3I+Q2xpZmY8L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD5oYWNrZXItdnMtY3JhY2tlcjwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+bmV3czwvdG9waWM+CisgICAgPGNvbW1lbnRzPjM4NTwvY29tbWVudHM+CisgICAgPHNlY3Rpb24+YXNrc2xhc2hkb3Q8L3NlY3Rpb24+CisgICAgPGltYWdlPnRvcGljbmV3cy5naWY8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+Q29yZWwgTGludXggRkFRPC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTg0MjIxOC5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDUgMTg6NDI6MDY8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnN0dWZmLXRvLXJlYWQ8L2RlcGFydG1lbnQ+CisgICAgPHRvcGljPmNvcmVsPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTY0PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNjb3JlbC5naWY8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+VXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLjwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA1LzE1NTgyMTAuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA1IDE1OjU2OjQ1PC90aW1lPgorICAgIDxhdXRob3I+Q21kclRhY288L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD5zdHVmZi10by10aGluay1hYm91dDwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+bXVzaWM8L3RvcGljPgorICAgIDxjb21tZW50cz40ODwvY29tbWVudHM+CisgICAgPHNlY3Rpb24+YXJ0aWNsZXM8L3NlY3Rpb24+CisgICAgPGltYWdlPnRvcGljbXVzaWMuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKyA8c3Rvcnk+CisgICAgPHRpdGxlPjIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoPC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1NDI1OC5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDUgMTU6NTM6NDM8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PmZhc3Rlci1wb3JuPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5pbnRlcm5ldDwvdG9waWM+CisgICAgPGNvbW1lbnRzPjY2PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNpbnRlcm5ldC5qcGc8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+U3VwcHJlc3Npb24gb2YgY29sZCBmdXNpb24gcmVzZWFyY2g/PC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMjMxMzIwMC5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDQgMjM6MTI6Mjk8L3RpbWU+CisgICAgPGF1dGhvcj5IZW1vczwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnBvc3NpYmx5LXByb2JhYmx5PC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5zY2llbmNlPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MjE3PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNzY2llbmNlLmdpZjwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5DYWxpZm9ybmlhIEdvdi4gSGFsdHMgV2FnZSBJbmZvIFNhbGU8L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzUyNTYuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA0IDIzOjA1OjM0PC90aW1lPgorICAgIDxhdXRob3I+SGVtb3M8L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD53b28taG9vITwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+dXNhPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTY8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY3VzLmdpZjwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5SZWQgSGF0IEFubm91bmNlcyBJUE88L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8wODQ5MjA3LnNodG1sPC91cmw+CisgICAgPHRpbWU+MTk5OS0wNi0wNCAxOTozMDoxODwvdGltZT4KKyAgICA8YXV0aG9yPkp1c3RpbjwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PmRldGFpbHMtc2tldGNoeTwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+cmVkaGF0PC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTU1PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNyZWRoYXQuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKzwvdWx0cmFtb2RlPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvc2xhc2hkb3QxNi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zbGFzaGRvdDE2LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmE3ZjJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvc2xhc2hkb3QxNi54bWwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvc3ZnMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3N2ZzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU5YmQ0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3N2ZzEKQEAgLTAsMCArMSwxNjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iMjQycHgiIGhlaWdodD0iMzgzcHgiPgorPGcgc3R5bGU9InN0cm9rZTogIzAwMDAwMCI+IAorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjZjJjYzk5Ij4gCisgICA8cG9seWxpbmUgdmVydHM9IiA2OSwxOCA4Miw4IDk5LDMgMTE4LDUgMTM1LDEyIDE0OSwyMSAxNTYsMTMgMTY1LDkgMTc3LDEzIDE4MywyOCAxODAsNTAgMTY0LDkxIDE1NSwxMDcgMTU0LDExNCAxNTEsMTIxIDE0MSwxMjcgMTM5LDEzNiAxNTUsMjA2IDE1NywyNTEgMTI2LDM0MiAxMzMsMzU3IDEyOCwzNzYgODMsMzc2IDc1LDM2OCA2NywzNTAgNjEsMzUwIDUzLDM2OSA0LDM2OSAyLDM2MSA1LDM1NCAxMiwzNDIgMTYsMzIxIDQsMjU3IDQsMjQ0IDcsMjE4IDksMTc5IDI2LDEyNyA0Myw5MyAzMiw3NyAzMCw3MCAyNCw2NyAxNiw0OSAxNywzNSAxOCwyMyAzMCwxMiA0MCw3IDUzLDcgNjIsMTIgNjksMTggNjksMTggNjksMTgiLz4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICNlNWIyN2YiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0Miw3OSAxMzYsNzQgMTM4LDgyIDEzMyw3OCAxMzMsODQgMTI3LDc4IDEyOCw4NSAxMjQsODAgMTI1LDg3IDExOSw4MiAxMTksOTAgMTI1LDk5IDEyNSw5NiAxMjgsMTAwIDEyOCw5NCAxMzEsOTggMTMyLDkzIDEzNSw5NyAxMzYsOTMgMTM4LDk3IDEzOSw5NCAxNDEsOTggMTQzLDk0IDE0NCw4NSAxNDIsNzkgMTQyLDc5IDE0Miw3OSIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogI2ViODA4MCI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTI3LDEwMSAxMzIsMTAwIDEzNyw5OSAxNDQsMTAxIDE0MywxMDUgMTM1LDExMCAxMjcsMTAxIDEyNywxMDEgMTI3LDEwMSIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogI2YyY2M5OSI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTc4LDIyOSAxNTcsMjQ4IDEzOSwyOTYgMTI2LDM0OSAxMzcsMzU2IDE1OCwzNTcgMTgzLDM0MiAyMTIsMzMyIDIzNSwyODggMjM1LDI2MSAyMjgsMjUyIDIxMiwyNTAgMTg4LDI1MSAxNzgsMjI5IDE3OCwyMjkgMTc4LDIyOSIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogIzljODI2YiI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNTYsMjI5IDQ4LDI0MSA0OCwyNTAgNTcsMjgxIDYzLDMyNSA3MSwzMzggODEsMzE1IDc2LDMyMSA3OSwzMTEgODMsMzAxIDc1LDMwOCA4MCwyOTggNzMsMzAzIDc2LDI5NiA3MSwyOTggNzQsMjkyIDY5LDI5MyA3NCwyODQgNzgsMjc4IDcxLDI3OCA3NCwyNzQgNjgsMjczIDcwLDI2OCA2NiwyNjcgNjgsMjYxIDYwLDI2NiA2MiwyNTkgNjUsMjUzIDU3LDI1OCA1OSwyNTEgNTUsMjU0IDU1LDI0OCA2MCwyMzcgNTQsMjQwIDU4LDIzNCA1NCwyMzYgNTYsMjI5IDU2LDIyOSA1NiwyMjkiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA3NCwzNjMgNzksMzY4IDgxLDM2OCA4NSwzNjIgODksMzYzIDkyLDM3MCA5NiwzNzMgMTAxLDM3MiAxMDgsMzYxIDExMCwzNzEgMTEzLDM3MyAxMTYsMzcxIDEyMCwzNTggMTIyLDM2MyAxMjMsMzcxIDEyNiwzNzEgMTI5LDM2NyAxMzIsMzU3IDEzNSwzNjEgMTMwLDM3NiAxMjcsMzc3IDk0LDM3OCA4NCwzNzYgNzYsMzcxIDc0LDM2MyA3NCwzNjMgNzQsMzYzIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMjEyLDI1MCAyMTksMjUxIDIyOCwyNTggMjM2LDI3MCAyMzUsMjg3IDIyNSwzMDQgMjA1LDMzMiAxNzcsMzQzIDE3MSwzNTIgMTU4LDM1NyAxNjYsMzUyIDE2OCwzNDYgMTY4LDMzOSAxNjUsMzMzIDE1NSwzMjcgMTU1LDMyMyAxNjEsMzIwIDE2NSwzMTYgMTY5LDMxNiAxNjcsMzEyIDE3MSwzMTMgMTY4LDMwOCAxNzMsMzA5IDE3MCwzMDYgMTc3LDMwNiAxNzUsMzA4IDE3NywzMTEgMTc0LDMxMSAxNzYsMzE2IDE3MSwzMTUgMTc0LDMxOSAxNjgsMzIwIDE2OCwzMjMgMTc1LDMyNyAxNzksMzMyIDE4MywzMjYgMTg0LDMzMiAxODksMzIzIDE5MCwzMjggMTk0LDMyMCAxOTQsMzI1IDE5OSwzMTYgMjAxLDMyMCAyMDQsMzEzIDIwNiwzMTYgMjA4LDMxMCAyMTEsMzA1IDIxOSwyOTggMjI2LDI4OCAyMjksMjc5IDIyOCwyNjYgMjI0LDI1OSAyMTcsMjUzIDIxMiwyNTAgMjEyLDI1MCAyMTIsMjUwIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTUxLDIwNSAxNTEsMjM4IDE0OSwyNTIgMTQxLDI2OCAxMjgsMjgyIDEyMSwzMDEgMTMwLDMwMCAxMjYsMzEzIDExOCwzMjQgMTE2LDMzNyAxMjAsMzQ2IDEzMywzNTIgMTMzLDM0MCAxMzcsMzMzIDE0NSwzMjkgMTU2LDMyNyAxNTMsMzE5IDE1MywyOTEgMTU3LDI3MSAxNzAsMjU5IDE3OCwyNzcgMTkzLDI1MCAxNzQsMjE2IDE1MSwyMDUgMTUxLDIwNSAxNTEsMjA1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzgsMTI3IDkwLDE0MiA5NSwxNTUgMTA4LDE2NCAxMjUsMTY3IDEzOSwxNzUgMTUwLDIwNiAxNTIsMTkxIDE0MSwxNDAgMTIxLDE0OCAxMDAsMTM2IDc4LDEyNyA3OCwxMjcgNzgsMTI3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMjEsNTggMzUsNjMgMzgsNjggMzIsNjkgNDIsNzQgNDAsNzkgNDcsODAgNTQsODMgNDUsOTQgMzQsODEgMzIsNzMgMjQsNjYgMjEsNTggMjEsNTggMjEsNTgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA3MSwzNCA2NywzNCA2NiwyNyA1OSwyNCA1NCwxNyA0OCwxNyAzOSwyMiAzMCwyNiAyOCwzMSAzMSwzOSAzOCw0NiAyOSw0NSAzNiw1NCA0MSw2MSA0MSw3MCA1MCw2OSA1NCw3MSA1NSw1OCA2Nyw1MiA3Niw0MyA3NiwzOSA2OCw0NCA3MSwzNCA3MSwzNCA3MSwzNCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEzOSw3NCAxNDEsODMgMTQzLDg5IDE0NCwxMDQgMTQ4LDEwNCAxNTUsMTA2IDE1NCw4NiAxNTcsNzcgMTU1LDcyIDE1MCw3NyAxNDQsNzcgMTM5LDc0IDEzOSw3NCAxMzksNzQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDUsNDQgMTAyLDUzIDEwOCw1OCAxMTEsNjIgMTEyLDU1IDEwNSw0NCAxMDUsNDQgMTA1LDQ0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQxLDQ4IDE0MSw1NCAxNDQsNTggMTM5LDYyIDEzNyw2NiAxMzYsNTkgMTM3LDUyIDE0MSw0OCAxNDEsNDggMTQxLDQ4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTgsMTM1IDEwNCwxMzAgMTA1LDEzNCAxMDgsMTMyIDEwOCwxMzUgMTEyLDEzNCAxMTMsMTM3IDExNiwxMzYgMTE2LDEzOSAxMTksMTM5IDEyNCwxNDEgMTI4LDE0MCAxMzMsMTM4IDE0MCwxMzMgMTM5LDE0MCAxMjYsMTQ2IDEwNCwxNDQgOTgsMTM1IDk4LDEzNSA5OCwxMzUiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5NywxMTYgMTAzLDExOSAxMDMsMTE2IDExMSwxMTggMTE2LDExNyAxMjIsMTE0IDEyNywxMDcgMTM1LDExMSAxNDIsMTA3IDE0MSwxMTQgMTQ1LDExOCAxNDksMTIxIDE0NSwxMjUgMTQwLDEyNCAxMjcsMTIxIDExMywxMjUgMTAwLDEyNCA5NywxMTYgOTcsMTE2IDk3LDExNiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0NywzMyAxNTIsMzUgMTU3LDM0IDE1MywzMSAxNjAsMzEgMTU2LDI4IDE2MSwyOCAxNTksMjQgMTYzLDI1IDE2MywyMSAxNjUsMjIgMTcwLDIzIDE2NywxNyAxNzIsMjEgMTc0LDE4IDE3NSwyMyAxNzYsMjIgMTc3LDI4IDE3NywzMyAxNzQsMzcgMTc2LDM5IDE3NCw0NCAxNzEsNDkgMTY4LDUzIDE2NCw1NyAxNTksNjggMTU2LDcwIDE1NCw2MCAxNTAsNTEgMTQ2LDQzIDE0NCwzNSAxNDcsMzMgMTQ3LDMzIDE0NywzMyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDg1LDcyIDg5LDc0IDkzLDc1IDEwMCw3NiAxMDUsNzUgMTAyLDc5IDk0LDc5IDg4LDc2IDg1LDcyIDg1LDcyIDg1LDcyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgODYsMjE0IDc5LDIyMSA3NiwyMzIgODIsMjI1IDc4LDIzOSA4MiwyMzQgNzgsMjQ1IDgxLDI0MyA3OSwyNTUgODQsMjUwIDg0LDI2NyA4NywyNTQgOTAsMjcxIDkwLDI1NyA5NSwyNzEgOTMsMjU2IDk1LDI0OSA5MiwyNTIgOTMsMjQzIDg5LDI1MyA4OSwyNDEgODYsMjUwIDg3LDIzNiA4MywyNDUgODcsMjMxIDgyLDIzMSA5MCwyMTkgODQsMjIxIDg2LDIxNCA4NiwyMTQgODYsMjE0Ii8+IAorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjZmZjYzdmIj4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5Myw2OCA5Niw3MiAxMDAsNzMgMTA2LDcyIDEwOCw2NiAxMDUsNjMgMTAwLDYyIDkzLDY4IDkzLDY4IDkzLDY4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ0LDY0IDE0Miw2OCAxNDIsNzMgMTQ2LDc0IDE1MCw3MyAxNTQsNjQgMTQ5LDYyIDE0NCw2NCAxNDQsNjQgMTQ0LDY0Ii8+IAorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjOWM4MjZiIj4gCisgICA8cG9seWxpbmUgdmVydHM9IiA1Nyw5MSA0MiwxMTEgNTIsMTA1IDQxLDExNyA1MywxMTIgNDYsMTIwIDUzLDExNiA1MCwxMjQgNTcsMTE5IDU1LDEyNyA2MSwxMjIgNjAsMTMwIDY3LDEyNiA2NiwxMzQgNzEsMTI5IDcyLDEzNiA3NywxMzAgNzYsMTM3IDgwLDEzMyA4MiwxMzggODYsMTM1IDk2LDEzNSA5NCwxMjkgODYsMTI0IDgzLDExNyA3NywxMjMgNzksMTE3IDczLDEyMCA3NSwxMTIgNjgsMTE2IDcxLDExMSA2NSwxMTQgNjksMTA3IDYzLDExMCA2OCwxMDIgNjEsMTA3IDY2LDk4IDYxLDEwMyA2Myw5NyA1Nyw5OSA1Nyw5MSA1Nyw5MSA1Nyw5MSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDgzLDc5IDc2LDc5IDY3LDgyIDc1LDgzIDY1LDg4IDc2LDg3IDY1LDkyIDc2LDkxIDY4LDk2IDc3LDk1IDcwLDk5IDgwLDk4IDcyLDEwNCA4MCwxMDIgNzYsMTA4IDg1LDEwMyA5MiwxMDEgODcsOTggOTMsOTYgODYsOTQgOTEsOTMgODUsOTEgOTMsODkgOTksODkgMTA1LDkzIDEwNyw4NSAxMDIsODIgOTIsODAgODMsNzkgODMsNzkgODMsNzkiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDksNzcgMTExLDgzIDEwOSw4OSAxMTMsOTQgMTE3LDkwIDExNyw4MSAxMTQsNzggMTA5LDc3IDEwOSw3NyAxMDksNzciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMjIsMTI4IDEyNywxMjYgMTM0LDEyNyAxMzYsMTI5IDEzNCwxMzAgMTMwLDEyOCAxMjQsMTI5IDEyMiwxMjggMTIyLDEyOCAxMjIsMTI4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzgsMjcgODIsMzIgODAsMzMgODIsMzYgNzgsMzcgODIsNDAgNzgsNDIgODEsNDYgNzYsNDcgNzgsNDkgNzQsNTAgODIsNTIgODcsNTAgODMsNDggOTEsNDYgODYsNDUgOTEsNDIgODgsNDAgOTIsMzcgODYsMzQgOTAsMzEgODYsMjkgODksMjYgNzgsMjcgNzgsMjcgNzgsMjciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA4MiwxNyA5MiwyMCA3OSwyMSA5MCwyNSA4MSwyNSA5NCwyOCA5MywyNiAxMDEsMzAgMTAxLDI2IDEwNywzMyAxMDgsMjggMTExLDQwIDExMywzNCAxMTUsNDUgMTE3LDM5IDExOSw1NCAxMjEsNDYgMTI0LDU4IDEyNiw0NyAxMjksNTkgMTMwLDQ5IDEzNCw1OCAxMzMsNDQgMTM3LDQ4IDEzMywzNyAxMzcsNDAgMTMzLDMyIDEyNiwyMCAxMzUsMjYgMTMyLDE5IDEzOCwyMyAxMzUsMTcgMTQyLDE4IDEzMiwxMSAxMTYsNiA5NCw2IDc4LDExIDkyLDEyIDgwLDE0IDkwLDE2IDgyLDE3IDgyLDE3IDgyLDE3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQyLDIzNCAxMzIsMjI3IDEyNCwyMjMgMTE1LDIyMCAxMTAsMjI1IDExOCwyMjQgMTI3LDIyOSAxMzUsMjM2IDEyMiwyMzQgMTE1LDIzNyAxMTMsMjQyIDEyMSwyMzggMTM5LDI0MyAxMjEsMjQ1IDExMSwyNTQgOTUsMjU0IDEwMiwyNDQgMTA0LDIzNSAxMTAsMjI5IDEwMCwyMzEgMTA0LDIyNCAxMTMsMjE2IDEyMiwyMTUgMTMyLDIxNyAxNDEsMjI0IDE0NSwyMzAgMTQ5LDI0MCAxNDIsMjM0IDE0MiwyMzQgMTQyLDIzNCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDExNSwyNTIgMTI1LDI0OCAxMzcsMjQ5IDE0MywyNTggMTM0LDI1NSAxMjUsMjU0IDExNSwyNTIgMTE1LDI1MiAxMTUsMjUyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTE0LDIxMiAxMzAsMjEzIDE0MCwyMTkgMTQ3LDIyNSAxNDQsMjE0IDEzNywyMDkgMTI4LDIwNyAxMTQsMjEyIDExNCwyMTIgMTE0LDIxMiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwMiwyNjMgMTA4LDI1OCAxMTcsMjU3IDEzMSwyNTggMTE2LDI2MCAxMDksMjY1IDEwMiwyNjMgMTAyLDI2MyAxMDIsMjYzIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNTEsMjQxIDM1LDIyNCA0MCwyMzggMjMsMjI0IDMxLDI0MiAxOSwyMzkgMjgsMjQ3IDE3LDI0NiAyNSwyNTAgMzcsMjU0IDM5LDI2MyA0NCwyNzEgNDcsMjk0IDQ4LDMxNyA1MSwzMjggNjAsMzUxIDYwLDMyMyA1MywyNjIgNDcsMjQ2IDUxLDI0MSA1MSwyNDEgNTEsMjQxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMiwzNjQgOSwzNjcgMTQsMzY2IDE4LDM1NSAyMCwzNjQgMjYsMzY2IDMxLDM1NyAzNSwzNjQgMzksMzY0IDQyLDM1NyA0NywzNjMgNTMsMzYwIDU5LDM1NyA1NCwzNjkgNywzNzMgMiwzNjQgMiwzNjQgMiwzNjQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA3LDM0OSAxOSwzNDUgMjUsMzM5IDE4LDM0MSAyMywzMzMgMjgsMzI2IDIzLDMyNiAyNywzMjAgMjMsMzE2IDI1LDMxMSAyMCwyOTggMTUsMjc3IDEyLDI2NCA5LDI0OSAxMCwyMjMgMywyNDggNSwyNjEgMTUsMzA3IDE3LDMyNiAxMSwzNDMgNywzNDkgNywzNDkgNywzNDkiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMSwyMjYgMTUsMjMxIDI1LDIzNiAxOCwyMjcgMTEsMjI2IDExLDIyNiAxMSwyMjYiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMywyMTQgMTksMjE3IDMyLDIyNyAyMywyMTQgMTYsMjA4IDE1LDE5MCAyNCwxNDggMzEsMTIxIDI0LDEzNyAxNCwxNzAgOCwxODkgMTMsMjE0IDEzLDIxNCAxMywyMTQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAyMDIsMjU0IDE5NSwyNTggMTk5LDI2MCAxOTMsMjYzIDE5NywyNjMgMTkwLDI2OCAxOTYsMjY4IDE5MSwyNzMgMTg4LDI4MiAyMDAsMjcyIDE5NCwyNzIgMjAxLDI2NiAxOTcsMjY1IDIwNCwyNjIgMjAwLDI1OCAyMDQsMjU2IDIwMiwyNTQgMjAyLDI1NCAyMDIsMjU0Ii8+IAorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjODQ1NDMzIj4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNTEsMjEzIDE2NSwyMTIgMTc5LDIyNSAxODksMjQ2IDE4NywyNjIgMTc5LDI3NSAxNzYsMjYzIDE3NywyNDcgMTcxLDIzMyAxNjMsMjMwIDE2NSwyNTEgMTU3LDI2NCAxNDYsMjk4IDE0NSwzMjEgMTMzLDMyNiAxNDMsMjg1IDE1NCwyNjAgMTUzLDI0MCAxNTEsMjEzIDE1MSwyMTMgMTUxLDIxMyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDkxLDEzMiA5NSwxNDUgOTcsMTU0IDEwNCwxNDggMTA3LDE1NSAxMDksMTUwIDExMSwxNTggMTE1LDE1MiAxMTgsMTU5IDEyMCwxNTMgMTI1LDE2MSAxMjYsMTU1IDEzMywxNjQgMTMyLDE1NCAxMzcsMTYzIDEzNywxNTIgMTQyLDE2MyAxNDcsMTg2IDE1MiwxOTIgMTQ4LDE2NyAxNDEsMTQzIDEyNCwxNDUgMTA1LDE0MyA5MSwxMzIgOTEsMTMyIDkxLDEzMiIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogIzljODI2YiI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMzEsNTcgMjMsNTIgMjYsNTEgMjAsNDQgMjMsNDIgMjEsMzYgMjIsMjkgMjUsMjMgMjQsMzIgMzAsNDMgMjYsNDEgMzAsNTAgMjYsNDggMzEsNTcgMzEsNTcgMzEsNTciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNDcsMjEgMTQ5LDI4IDE1NSwyMSAxNjEsMTYgMTY3LDE0IDE3NSwxNSAxNzMsMTEgMTYxLDkgMTQ3LDIxIDE0NywyMSAxNDcsMjEiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxODEsMzkgMTc1LDUxIDE2OSw1NyAxNzEsNjUgMTY1LDY4IDE2NSw3NSAxNjAsNzYgMTYyLDkxIDE3MSw3MSAxODAsNTEgMTgxLDM5IDE4MSwzOSAxODEsMzkiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMzIsMzQ2IDEzOSwzNDggMTQxLDM0NiAxNDIsMzQxIDE0NywzNDIgMTQzLDM1NSAxMzMsMzUwIDEzMiwzNDYgMTMyLDM0NiAxMzIsMzQ2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ2LDM1NSAxNTEsMzUyIDE1NSwzNDggMTU3LDM0MyAxNjAsMzQ5IDE1MSwzNTYgMTQ3LDM1NyAxNDYsMzU1IDE0NiwzNTUgMTQ2LDM1NSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDk5LDI2NiAxMDAsMjgxIDk0LDMwNSA4NiwzMjIgNzgsMzMyIDcyLDM0NiA3MywzMzEgOTEsMjkxIDk5LDI2NiA5OSwyNjYgOTksMjY2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMjAsMzQ3IDMyLDM0MiA0NSwzNDAgNTQsMzQ1IDQ1LDM1MCA0MiwzNTMgMzgsMzUwIDMxLDM1MyAyOSwzNTYgMjMsMzUwIDE5LDM1MyAxNSwzNDkgMjAsMzQ3IDIwLDM0NyAyMCwzNDciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA3OCwzNDQgODYsMzQ0IDkyLDM0OSA4OCwzNTggODQsMzUyIDc4LDM0NCA3OCwzNDQgNzgsMzQ0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTMsMzQ3IDEwNCwzNDQgMTE3LDM0NSAxMjQsMzU0IDEyMSwzNTcgMTE2LDM1MSAxMTIsMzUxIDEwOCwzNTUgMTAyLDM1MSA5MywzNDcgOTMsMzQ3IDkzLDM0NyIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA1LDEyIDExMSwxOCAxMTMsMjQgMTEzLDI5IDExOSwzNCAxMTYsMjMgMTEyLDE2IDEwNSwxMiAxMDUsMTIgMTA1LDEyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTIyLDI3IDEyNSwzNCAxMjcsNDMgMTI4LDM0IDEyNSwyOSAxMjIsMjcgMTIyLDI3IDEyMiwyNyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDExNSwxMyAxMjIsMTkgMTIyLDE1IDExMywxMCAxMTUsMTMgMTE1LDEzIDExNSwxMyIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogI2ZmZTViMiI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTE2LDE3MiAxMDcsMTgyIDk4LDE5MyA5OCwxODMgOTAsMTk5IDg5LDE4OSA4NCwyMDcgODgsMjA2IDg3LDIxNSA5NSwyMDYgOTMsMjE5IDkxLDIzMCA5OCwyMTYgOTcsMjI2IDEwNCwyMTQgMTEyLDIwOSAxMDQsMjA4IDExMywyMDIgMTI2LDIwMCAxMzksMjA3IDEzMiwxOTggMTQyLDIwMyAxMzQsMTkyIDE0MiwxOTUgMTM0LDE4NyAxNDAsMTg1IDEzMCwxODEgMTM2LDE3NyAxMjYsMTc3IDEyNSwxNzEgMTE2LDE4MCAxMTYsMTcyIDExNiwxNzIgMTE2LDE3MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDc0LDIyMCA2NywyMzAgNjcsMjIxIDU5LDIzNSA2MywyMzMgNjAsMjQ4IDcwLDIzMiA2NSwyNDkgNzEsMjQzIDY3LDI1NiA3MywyNTAgNjksMjYyIDczLDI1OSA3MSwyNjcgNzYsMjYyIDcyLDI3MSA3OCwyNzAgNzYsMjc1IDgyLDI3NCA3OCwyOTAgODYsMjc5IDg2LDI4OSA5MiwyNzQgODgsMjc1IDg3LDI2NCA4MiwyNzAgODIsMjU4IDc3LDI1NyA3OCwyNDcgNzMsMjQ2IDc3LDIzMyA3MiwyMzYgNzQsMjIwIDc0LDIyMCA3NCwyMjAiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMzMsMjMwIDE0NywyNDIgMTQ4LDI1MCAxNDUsMjU0IDEzOCwyNDcgMTI5LDI0NiAxNDIsMjQ1IDEzOCwyNDEgMTI4LDIzNyAxMzcsMjM4IDEzMywyMzAgMTMzLDIzMCAxMzMsMjMwIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTMzLDI2MSAxMjUsMjYxIDExNiwyNjMgMTExLDI2NyAxMjUsMjY1IDEzMywyNjEgMTMzLDI2MSAxMzMsMjYxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTIxLDI3MSAxMDksMjczIDEwMywyNzkgOTksMzA1IDkyLDMxNiA4NSwzMjcgODMsMzM1IDg5LDM0MCA5NywzNDEgOTQsMzM2IDEwMSwzMzYgOTYsMzMxIDEwMywzMzAgOTcsMzI3IDEwOCwzMjUgOTksMzIyIDEwOSwzMjEgMTAwLDMxOCAxMTAsMzE3IDEwNSwzMTQgMTEwLDMxMiAxMDcsMzEwIDExMywzMDggMTA1LDMwNiAxMTQsMzAzIDEwNSwzMDEgMTE1LDI5OCAxMDcsMjk1IDExNSwyOTQgMTA4LDI5MyAxMTcsMjkxIDEwOSwyODkgMTE3LDI4NiAxMDksMjg2IDExOCwyODMgMTEyLDI4MSAxMTgsMjc5IDExNCwyNzggMTE5LDI3NiAxMTUsMjc0IDEyMSwyNzEgMTIxLDI3MSAxMjEsMjcxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzksMzY0IDc0LDM1OSA3NCwzNTMgNzYsMzQ3IDgwLDM1MSA4MywzNTYgODIsMzYwIDc5LDM2NCA3OSwzNjQgNzksMzY0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTEsMzYzIDkzLDM1NiA5NywzNTMgMTAzLDM1NSAxMDUsMzYwIDEwMywzNjYgOTksMzcxIDk0LDM2OCA5MSwzNjMgOTEsMzYzIDkxLDM2MyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDExMCwzNTUgMTE0LDM1MyAxMTgsMzU3IDExNywzNjMgMTEzLDM2OSAxMTEsMzYyIDExMCwzNTUgMTEwLDM1NSAxMTAsMzU1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTI2LDM1NCAxMjMsMzU4IDEyNCwzNjcgMTI2LDM2OSAxMjksMzYxIDEyOSwzNTcgMTI2LDM1NCAxMjYsMzU0IDEyNiwzNTQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAzMCwxNTQgMjQsMTY2IDIwLDE4MiAyMywxOTQgMjksMjA4IDM3LDIxOCA0MSwyMTAgNDEsMjIzIDQ2LDIxNCA0NiwyMjcgNTIsMjE2IDUyLDIyNyA2MSwyMTYgNTksMjI1IDY4LDIxMyA3MywyMTkgNzAsMjA3IDc3LDIxMiA2OSwyMDAgNzcsMjAyIDcwLDE5NCA3OCwxOTcgNjgsMTg3IDc2LDE4MiA2NCwxODIgNTgsMTc1IDU4LDE4NSA1MywxNzcgNTAsMTg2IDQ2LDE3MSA0NCwxODIgMzksMTY3IDM2LDE3MiAzNiwxNjIgMzAsMTY2IDMwLDE1NCAzMCwxNTQgMzAsMTU0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNDQsMTMwIDQxLDEzNyA0NSwxMzYgNDMsMTUwIDQ4LDE0MiA0OCwxNTcgNTMsMTUwIDUyLDE2NCA2MCwxNTYgNjEsMTY5IDY0LDE2NSA2NiwxNzUgNzAsMTY3IDc0LDE3NiA3NywxNjggODAsMTgzIDg1LDE3MiA5MCwxODIgOTMsMTc0IDk4LDE4MSA5OSwxNzMgMTA0LDE3NSAxMDUsMTY5IDExNCwxNjggMTAyLDE2MyA5NSwxNTcgOTQsMTY2IDkwLDE1NCA4NywxNjIgODIsMTQ5IDc1LDE1OSA3MiwxNDggNjgsMTU1IDY3LDE0MyA2MiwxNDggNjIsMTM4IDU4LDE0NSA1NiwxMzMgNTIsMTQyIDUyLDEyOCA0OSwxMzQgNDcsMTI1IDQ0LDEzMCA0NCwxMzAgNDQsMTMwIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTMsMjE2IDE5LDIxOSAzNiwyMzEgMjIsMjIzIDE2LDIyMiAyMiwyMjcgMTIsMjI0IDEzLDIyMCAxNiwyMjAgMTMsMjE2IDEzLDIxNiAxMywyMTYiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMCwyMzEgMTQsMjM2IDI1LDIzOSAyNywyMzcgMTksMjM0IDEwLDIzMSAxMCwyMzEgMTAsMjMxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOSwyNDUgMTQsMjQyIDI1LDI0NSAxMywyNDUgOSwyNDUgOSwyNDUgOSwyNDUiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAzMywyNTUgMjYsMjUzIDE4LDI1NCAyNSwyNTYgMTgsMjU4IDI3LDI2MCAxOCwyNjMgMjcsMjY1IDE5LDI2NyAyOSwyNzAgMjEsMjcyIDI5LDI3NiAyMSwyNzggMzAsMjgxIDIyLDI4MyAzMSwyODcgMjQsMjg4IDMyLDI5MiAyMywyOTMgMzQsMjk4IDI2LDI5OSAzNywzMDMgMzIsMzA1IDM5LDMwOSAzMywzMDkgMzksMzE0IDM0LDMxNCA0MCwzMTggMzQsMzE3IDQwLDMyMSAzNCwzMjEgNDEsMzI2IDMzLDMyNiA0MCwzMzAgMzMsMzMyIDM5LDMzMyAzMywzMzcgNDIsMzM3IDU0LDM0MSA0OSwzMzcgNTIsMzM1IDQ3LDMzMCA1MCwzMzAgNDUsMzI1IDQ5LDMyNSA0NSwzMjEgNDgsMzIxIDQ1LDMxNiA0NiwzMDYgNDUsMjg2IDQzLDI3NCAzNiwyNjEgMzMsMjU1IDMzLDI1NSAzMywyNTUiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA3LDM1OCA5LDM1MSAxNCwzNTEgMTcsMzU5IDExLDM2NCA3LDM1OCA3LDM1OCA3LDM1OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDQ0LDM1NCA0OSwzNTEgNTIsMzU1IDQ5LDM2MSA0NCwzNTQgNDQsMzU0IDQ0LDM1NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDMyLDM1NyAzNywzNTMgNDAsMzU4IDM2LDM2MSAzMiwzNTcgMzIsMzU3IDMyLDM1NyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEzOSwzMzQgMTQ1LDMzMCAxNTQsMzMwIDE1OCwzMzQgMTU0LDM0MSAxNTIsMzQ4IDE0NSwzNTAgMTQ5LDM0MCAxNDcsMzM2IDE0MSwzMzkgMTM5LDM0NSAxMzYsMzQyIDEzNiwzMzkgMTM5LDMzNCAxMzksMzM0IDEzOSwzMzQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAyMDgsMjU5IDIxNSwyNTkgMjEyLDI1NSAyMjAsMjU5IDIyNCwyNjMgMjI1LDI3NCAyMjQsMjgzIDIyMCwyOTIgMjA4LDMwMCAyMDYsMzA4IDIwMywzMDQgMTk5LDMxNSAxOTcsMzA5IDE5NSwzMTggMTkzLDMxMyAxOTAsMzIyIDE5MCwzMTYgMTg1LDMyNSAxODIsMzE4IDE4MCwzMjUgMTcyLDMyMSAxNzgsMzIwIDE3NiwzMTMgMTg2LDMxMiAxODAsMzA3IDE4OCwzMDcgMTg0LDMwMyAxOTEsMzAyIDE4NiwyOTkgMTk1LDI5NCAxODcsMjkwIDE5NywyODggMTkyLDI4NiAyMDEsMjgzIDE5NCwyODAgMjAzLDI3NyAxOTgsMjc1IDIwNywyNzEgMjAwLDI2OSAyMDksMjY1IDIwNCwyNjUgMjEyLDI2MiAyMDgsMjU5IDIwOCwyNTkgMjA4LDI1OSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwNiwxMjYgMTA2LDEzMSAxMDksMTMyIDExMSwxMzQgMTE1LDEzMiAxMTUsMTM1IDExOSwxMzMgMTE4LDEzNyAxMjMsMTM3IDEyOCwxMzcgMTMzLDEzNCAxMzYsMTMwIDEzNiwxMjcgMTMyLDEyNCAxMTgsMTI4IDExMiwxMjggMTA2LDEyNiAxMDYsMTI2IDEwNiwxMjYiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDcsMTE0IDEwMSwxMTAgOTgsMTAyIDEwNSw5NyAxMTEsOTggMTE5LDEwMiAxMjEsMTA4IDExOCwxMTIgMTEzLDExNSAxMDcsMTE0IDEwNywxMTQgMTA3LDExNCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0OCwxMDYgMTQ1LDExMCAxNDYsMTE2IDE1MCwxMTggMTUyLDExMSAxNTEsMTA3IDE0OCwxMDYgMTQ4LDEwNiAxNDgsMTA2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgODAsNTUgNzAsNTIgNzUsNTggNjMsNTcgNzIsNjEgNTcsNjEgNjcsNjYgNTcsNjcgNjIsNjkgNTQsNzEgNjEsNzMgNTQsNzcgNjMsNzggNTMsODUgNjAsODQgNTYsOTAgNjksODQgNjMsODIgNzUsNzYgNzAsNzUgNzcsNzIgNzIsNzEgNzgsNjkgNzIsNjYgODEsNjcgNzgsNjQgODIsNjMgODAsNjAgODYsNjIgODAsNTUgODAsNTUgODAsNTUiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA4Nyw1NiA5MSw1MiA5Niw1MCAxMDIsNTYgOTgsNTYgOTIsNjAgODcsNTYgODcsNTYgODcsNTYiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA4NSw2OCA4OSw3MyA5OCw3NiAxMDYsNzQgOTYsNzMgOTEsNzAgODUsNjggODUsNjggODUsNjgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTUsNTcgMTE0LDY0IDExMSw2NCAxMTUsNzUgMTIyLDgxIDEyMiw3NCAxMjYsNzkgMTI2LDc0IDEzMSw3OCAxMzAsNzIgMTMzLDc3IDEzMSw2OCAxMjYsNjEgMTE5LDU3IDExNSw1NyAxMTUsNTcgMTE1LDU3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ1LDQ4IDE0Myw1MyAxNDcsNTkgMTUxLDU5IDE1MCw1NSAxNDUsNDggMTQ1LDQ4IDE0NSw0OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDI2LDIyIDM0LDE1IDQzLDEwIDUyLDEwIDU5LDE2IDQ3LDE1IDMyLDIyIDI2LDIyIDI2LDIyIDI2LDIyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTYwLDE5IDE1MiwyNiAxNDksMzQgMTU0LDMzIDE1MiwzMCAxNTcsMzAgMTU1LDI2IDE1OCwyNyAxNTcsMjMgMTYxLDIzIDE2MCwxOSAxNjAsMTkgMTYwLDE5Ii8+IAorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5OCwxMTcgMTA1LDEyMiAxMDksMTIyIDEwNSwxMTcgMTEzLDEyMCAxMjEsMTIwIDEzMCwxMTIgMTI4LDEwOCAxMjMsMTAzIDEyMyw5OSAxMjgsMTAxIDEzMiwxMDYgMTM1LDEwOSAxNDIsMTA1IDE0MiwxMDEgMTQ1LDEwMSAxNDUsOTEgMTQ4LDEwMSAxNDUsMTA1IDEzNiwxMTIgMTM1LDExNiAxNDMsMTI0IDE0OCwxMjAgMTUwLDEyMiAxNDIsMTI4IDEzMywxMjIgMTIxLDEyNSAxMTIsMTI2IDEwMywxMjUgMTAwLDEyOSA5NiwxMjQgOTgsMTE3IDk4LDExNyA5OCwxMTciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNDYsMTE4IDE1MiwxMTggMTUyLDExNSAxNDksMTE1IDE0NiwxMTggMTQ2LDExOCAxNDYsMTE4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ4LDExMiAxNTQsMTExIDE1NCwxMDkgMTQ5LDEwOSAxNDgsMTEyIDE0OCwxMTIgMTQ4LDExMiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwNiwxMTIgMTA4LDExNSAxMTQsMTE2IDExOCwxMTQgMTA2LDExMiAxMDYsMTEyIDEwNiwxMTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDgsMTA4IDExMSwxMTAgMTE2LDExMCAxMTksMTA4IDEwOCwxMDggMTA4LDEwOCAxMDgsMTA4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA2LDEwNCAxMDksMTA1IDExNywxMDYgMTE1LDEwNCAxMDYsMTA0IDEwNiwxMDQgMTA2LDEwNCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDUwLDI1IDQxLDI2IDM0LDMzIDM5LDQzIDQ5LDU4IDM2LDUxIDQ3LDY4IDU1LDY5IDU0LDU5IDYxLDU3IDc0LDQ2IDYwLDUyIDY3LDQyIDU3LDQ4IDYxLDQwIDU0LDQ1IDYwLDM2IDU5LDI5IDQ4LDM4IDUyLDMwIDQ3LDMyIDUwLDI1IDUwLDI1IDUwLDI1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ3LDM0IDE1Miw0MSAxNTUsNDkgMTYxLDUzIDE1Nyw0NyAxNjQsNDcgMTU4LDQzIDE2OCw0NCAxNTksNDAgMTY0LDM3IDE2OSwzNyAxNjQsMzMgMTY5LDM0IDE2NSwyOCAxNzAsMzAgMTcwLDI1IDE3MywyOSAxNzUsMjcgMTc2LDMyIDE3MywzNiAxNzUsMzkgMTcyLDQyIDE3Miw0NiAxNjgsNDkgMTcwLDU1IDE2Miw1NyAxNTgsNjMgMTU1LDU4IDE1Myw1MCAxNDksNDYgMTQ3LDM0IDE0NywzNCAxNDcsMzQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNTUsNzEgMTU5LDgwIDE1Nyw5MyAxNTcsMTAyIDE1NSwxMDggMTUwLDEwMSAxNDksOTMgMTU0LDEwMSAxNTIsOTEgMTUxLDgzIDE1NSw3OSAxNTUsNzEgMTU1LDcxIDE1NSw3MSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDExMiw3OCAxMTUsODEgMTE0LDkxIDExMiw4NyAxMTMsODIgMTEyLDc4IDExMiw3OCAxMTIsNzgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA3OCwyOCA2NCwxNyA1OCwxMSA0Nyw5IDM2LDEwIDI4LDE2IDIxLDI2IDE4LDQxIDIwLDUxIDIzLDYxIDMzLDY1IDI4LDY4IDM3LDc0IDM2LDgxIDQzLDg3IDQ4LDkwIDQzLDEwMCA0MCw5OCAzOSw5MCAzMSw4MCAzMCw3MiAyMiw3MSAxNyw2MSAxNCw0NiAxNiwyOCAyMywxNyAzMyw5IDQ1LDYgNTQsNiA2NSwxMiA3OCwyOCA3OCwyOCA3OCwyOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDY3LDE4IDc2LDkgODcsNSAxMDEsMiAxMTgsMyAxMzUsOCAxNDksMjAgMTQ5LDI2IDE0NCwxOSAxMzIsMTIgMTIxLDkgMTA1LDcgODksOCA3NiwxNCA3MCwyMCA2NywxOCA2NywxOCA2NywxOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDU2LDk4IDQ4LDEwNiA1NiwxMDMgNDcsMTEyIDU2LDExMCA1MiwxMTUgNTcsMTEzIDUyLDEyMSA2MiwxMTUgNTgsMTIzIDY1LDExOSA2MywxMjUgNjksMTIxIDY4LDEyNyA3NCwxMjUgNzQsMTI5IDc5LDEyOCA4MywxMzIgOTQsMTM1IDkzLDEyOSA4NSwxMjcgODEsMTIyIDc2LDEyNiA3NSwxMjEgNzEsMTI0IDcxLDExNyA2NiwxMjEgNjYsMTE3IDYyLDExNyA2NCwxMTIgNjAsMTEzIDYwLDExMCA1NywxMTEgNjEsMTA1IDU3LDEwNyA2MCwxMDEgNTUsMTAyIDU2LDk4IDU2LDk4IDU2LDk4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTAxLDEzMiAxMDMsMTM4IDEwNiwxMzQgMTA2LDEzOSAxMTIsMTM2IDExMSwxNDIgMTE1LDEzOSAxMTQsMTQzIDExOSwxNDIgMTI1LDE0NSAxMzEsMTQyIDEzNSwxMzggMTQwLDEzNCAxNDAsMTI5IDE0MywxMzUgMTQ1LDE0OSAxNTAsMTcxIDE0OSwxODQgMTQ1LDE2NSAxNDEsMTUwIDEzNiwxNDcgMTMyLDE1MSAxMzEsMTQ5IDEyNiwxNTIgMTI1LDE1MCAxMjEsMTUyIDExNywxNDggMTExLDE1MiAxMTAsMTQ4IDEwNSwxNDkgMTA0LDE0NSA5OCwxNTAgOTYsMTM4IDk0LDEzMiA5NCwxMzAgOTgsMTMyIDEwMSwxMzIgMTAxLDEzMiAxMDEsMTMyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNDEsOTQgMzIsMTEwIDIzLDEzMiAxMiwxNjMgNiwxOTAgNywyMTcgNSwyMzYgMywyNDcgOSwyMzAgMTIsMjExIDEyLDE4NSAxOCwxNjAgMjYsMTM0IDM1LDExMCA0Myw5OSA0MSw5NCA0MSw5NCA0MSw5NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDMyLDI0NiA0MSwyNTAgNTAsMjU3IDUyLDI2NyA1MywyOTUgNTMsMzIzIDU5LDM1MCA1NCwzNjMgNTEsMzY1IDQ0LDM2NiA0MiwzNjAgNDAsMzcyIDU0LDM3MiA1OSwzNjYgNjIsMzUzIDcxLDM1MiA3NSwzMzUgNzMsMzMwIDY2LDMxOCA2OCwzMDIgNjQsMjk0IDY3LDI4OCA2MywyODYgNjMsMjc5IDU5LDI3NSA1OCwyNjcgNTYsMjYyIDUwLDI0NyA0MiwyMzUgNDQsMjQ2IDMyLDIzNiAzNSwyNDQgMzIsMjQ2IDMyLDI0NiAzMiwyNDYiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMzQsMzI0IDE0NiwzMjAgMTU5LDMyMiAxNzMsMzI3IDE3OSwzMzcgMTc5LDM0OSAxNzIsMzU1IDE1OCwzNTcgMTcwLDM1MCAxNzQsMzQzIDE3MCwzMzMgMTYzLDMyOCAxNTIsMzI2IDEzNCwzMjkgMTM0LDMyNCAxMzQsMzI0IDEzNCwzMjQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNzMsMzM5IDE4MywzMzQgMTg0LDMzOCAxOTEsMzI5IDE5NCwzMzIgMTk5LDMyMyAyMDIsMzI1IDIwNiwzMTggMjA5LDMyMCAyMTMsMzA5IDIyMSwzMDMgMjI4LDI5NiAyMzIsMjg5IDIzNCwyNzkgMjMzLDI2OSAyMzAsMjYyIDIyNSwyNTYgMjE5LDI1MyAyMDgsMjUyIDE5OCwyNTIgMjEwLDI0OSAyMjMsMjUwIDIzMiwyNTcgMjM3LDI2NSAyMzgsMjc3IDIzOCwyOTEgMjMyLDMwNSAyMjEsMzIzIDIxOCwzMzUgMjEyLDM0MiAyMDAsMzQ5IDE3OCwzNDggMTczLDMzOSAxNzMsMzM5IDE3MywzMzkiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNjUsMjk2IDE1OCwzMDEgMTU2LDMxMCAxNTYsMzIzIDE2MiwzMjQgMTU5LDMxOCAxNjIsMzA4IDE2MiwzMDQgMTY1LDI5NiAxNjUsMjk2IDE2NSwyOTYiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5OSwyNTIgMTA1LDI0NCAxMDcsMjM0IDExNSwyMjggMTIxLDIyOCAxMzEsMjM1IDEyMiwyMzMgMTEzLDIzNSAxMDksMjQ2IDEyMSwyMzkgMTMzLDI0MyAxMjEsMjQzIDExMCwyNTEgOTksMjUyIDk5LDI1MiA5OSwyNTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTcsMjUyIDEyNCwyNDcgMTM0LDI0OSAxMzYsMjUzIDEyNiwyNTIgMTE3LDI1MiAxMTcsMjUyIDExNywyNTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTcsMjE4IDEzMiwyMjQgMTQ0LDIzMyAxNDAsMjI1IDEzMiwyMTkgMTE3LDIxOCAxMTcsMjE4IDExNywyMTgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMjIsMjEyIDEzNCwyMTQgMTQzLDIyMSAxNDEsMjEzIDEzMiwyMTAgMTIyLDIxMiAxMjIsMjEyIDEyMiwyMTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA2OSwzNTIgNzAsMzYzIDc2LDM3MyA4NiwzNzggOTcsMzc5IDEwOCwzNzkgMTIwLDM3NyAxMjgsMzc4IDEzMiwzNzMgMTM1LDM2MSAxMzMsMzU4IDEzMiwzNjYgMTI3LDM3NSAxMjEsMzc0IDEyMSwzNjIgMTE5LDM2NyAxMTcsMzc0IDExMCwzNzYgMTEwLDM2MiAxMDcsMzU3IDEwNiwzNzEgMTA0LDM3NSA5NywzNzYgOTAsMzc1IDkwLDM2OCA4NiwzNjIgODMsMzY0IDg2LDM2OSA4NSwzNzMgNzgsMzcwIDczLDM2MiA3MSwzNTEgNjksMzUyIDY5LDM1MiA2OSwzNTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDAsMzYwIDk2LDM2MyA5OSwzNjkgMTAyLDM2NCAxMDAsMzYwIDEwMCwzNjAgMTAwLDM2MCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDExNSwzNjAgMTEyLDM2MyAxMTQsMzY5IDExNywzNjQgMTE1LDM2MCAxMTUsMzYwIDExNSwzNjAiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMjcsMzYyIDEyNSwzNjQgMTI2LDM2OSAxMjgsMzY1IDEyNywzNjIgMTI3LDM2MiAxMjcsMzYyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNSwyNTUgNywyNzYgMTEsMzA0IDE1LDMyMCAxMywzMzQgNiwzNDggMiwzNTMgMCwzNjMgNSwzNzIgMTIsMzc0IDI1LDM3MiAzOCwzNzIgNDQsMzY5IDQyLDM2NyAzNiwzNjggMzEsMzY5IDMwLDM2MCAyNywzNjggMjAsMzcwIDE2LDM2MSAxNSwzNjggMTAsMzY5IDMsMzY2IDMsMzU5IDYsMzUyIDExLDM0OCAxNywzMzEgMTksMzE2IDEyLDI5MSA5LDI3NCA1LDI1NSA1LDI1NSA1LDI1NSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwLDM1OCA3LDM2MiAxMCwzNjYgMTEsMzYyIDEwLDM1OCAxMCwzNTggMTAsMzU4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMjUsMzU3IDIyLDM2MCAyNCwzNjYgMjcsMzYwIDI1LDM1NyAyNSwzNTcgMjUsMzU3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMzcsMzU3IDM0LDM2MSAzNiwzNjUgMzgsMzYxIDM3LDM1NyAzNywzNTcgMzcsMzU3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNDksMzU2IDQ2LDM1OSA0NywzNjQgNTAsMzYwIDQ5LDM1NiA0OSwzNTYgNDksMzU2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTMwLDEwMSAxMzIsMTAyIDEzNSwxMDEgMTM5LDEwMiAxNDMsMTAzIDE0MiwxMDEgMTM3LDEwMCAxMzMsMTAwIDEzMCwxMDEgMTMwLDEwMSAxMzAsMTAxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA2LDQ4IDEwNSw1MiAxMDgsNTYgMTA5LDUyIDEwNiw0OCAxMDYsNDggMTA2LDQ4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTM5LDUyIDEzOSw1NiAxNDAsNjAgMTQyLDU4IDE0MSw1NiAxMzksNTIgMTM5LDUyIDEzOSw1MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDI1LDM0OSAyOSwzNTEgMzAsMzU1IDMzLDM1MCAzNywzNDggNDIsMzUxIDQ1LDM0NyA0OSwzNDUgNDQsMzQzIDM2LDM0NSAyNSwzNDkgMjUsMzQ5IDI1LDM0OSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDk4LDM0NyAxMDUsMzUxIDEwNywzNTQgMTA5LDM0OSAxMTUsMzQ5IDEyMCwzNTMgMTE4LDM0OSAxMTMsMzQ2IDEwNCwzNDYgOTgsMzQ3IDk4LDM0NyA5OCwzNDciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA4MywzNDggODcsMzUyIDg3LDM1NyA4OSwzNTEgODcsMzQ4IDgzLDM0OCA4MywzNDggODMsMzQ4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTU1LDEwNyAxNjMsMTA3IDE3MCwxMDcgMTg2LDEwOCAxNzUsMTA5IDE1NSwxMDkgMTU1LDEwNyAxNTUsMTA3IDE1NSwxMDciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNTMsMTE0IDE2MiwxMTMgMTc1LDExMiAxOTIsMTE0IDE3MywxMTQgMTU0LDExNSAxNTMsMTE0IDE1MywxMTQgMTUzLDExNCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE1MiwxMTggMTY0LDEyMCAxODAsMTIzIDE5NywxMjkgMTY5LDEyMyAxNTEsMTIwIDE1MiwxMTggMTUyLDExOCAxNTIsMTE4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNjgsMTA5IDg3LDEwNiAxMDcsMTA2IDEwNiwxMDggODgsMTA4IDY4LDEwOSA2OCwxMDkgNjgsMTA5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA1LDExMSA5NSwxMTIgNzksMTE0IDcxLDExNiA4NSwxMTUgMTAyLDExMyAxMDUsMTExIDEwNSwxMTEgMTA1LDExMSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwOCwxMDEgOTgsOTkgODcsOTkgNzgsOTkgOTMsMTAwIDEwNSwxMDIgMTA4LDEwMSAxMDgsMTAxIDEwOCwxMDEiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA4NSw2MyA5MSw2MyA5Nyw2MCAxMDQsNjAgMTA4LDYyIDExMSw2OSAxMTIsNzUgMTEwLDc0IDEwOCw3MSAxMDMsNzMgMTA2LDY5IDEwNSw2NSAxMDMsNjQgMTAzLDY3IDEwMiw3MCA5OSw3MCA5Nyw2NiA5NCw2NyA5Nyw3MiA4OCw2NyA4NCw2NiA4NSw2MyA4NSw2MyA4NSw2MyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0MCw3NCAxNDEsNjYgMTQ0LDYxIDE1MCw2MSAxNTYsNjIgMTUzLDcwIDE1MCw3MyAxNTIsNjUgMTUwLDY1IDE1MSw2OCAxNDksNzEgMTQ2LDcxIDE0NCw2NiAxNDMsNzAgMTQzLDc0IDE0MCw3NCAxNDAsNzQgMTQwLDc0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ2LDIwIDE1NiwxMSAxNjMsOSAxNzIsOSAxNzgsMTQgMTgyLDE4IDE4NCwzMiAxODIsNDIgMTgyLDUyIDE3Nyw1OCAxNzYsNjcgMTcxLDc2IDE2NSw5MCAxNTcsMTA1IDE2MCw5MiAxNjQsODUgMTY4LDc4IDE2Nyw3MyAxNzMsNjYgMTcyLDYyIDE3NSw1OSAxNzQsNTUgMTc3LDUzIDE4MCw0NiAxODEsMjkgMTc5LDIxIDE3MywxMyAxNjYsMTEgMTU5LDEzIDE1MywxOCAxNDgsMjMgMTQ2LDIwIDE0NiwyMCAxNDYsMjAiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNTAsMTg3IDE0OCwyMTEgMTUwLDIzMyAxNTMsMjQ3IDE0OCwyNjcgMTM1LDI4MyAxMjUsMjk5IDEzNiwyOTIgMTMxLDMxMyAxMjIsMzI4IDEyMiwzNDUgMTI5LDM1MiAxMzMsMzU5IDEzMywzNjcgMTM3LDM1OSAxNDgsMzU2IDE0MCwzNTAgMTMxLDM0NyAxMjksMzQwIDEzMiwzMzIgMTQwLDMyOCAxMzcsMzIyIDE0MCwzMDQgMTU0LDI2NSAxNTcsMjQ0IDE1NSwyMjMgMTYxLDIyMCAxNzUsMjI5IDE4NiwyNDcgMTg1LDI2MCAxNzYsMjc1IDE3OCwyODcgMTg1LDI3NyAxODgsMjYxIDE5NiwyNTMgMTg5LDIzNiAxNzQsMjEzIDE1MCwxODcgMTUwLDE4NyAxNTAsMTg3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ3LDMzOCAxNDIsMzQxIDE0MywzNDUgMTQxLDM1NCAxNDcsMzQzIDE0NywzMzggMTQ3LDMzOCAxNDcsMzM4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTU3LDM0MiAxNTYsMzQ5IDE1MCwzNTYgMTU3LDM1MyAxNjMsMzQ2IDE2MiwzNDIgMTU3LDM0MiAxNTcsMzQyIDE1NywzNDIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5OSwyNjUgOTYsMjg0IDkyLDI5OSA3MywzMzkgNzMsMzMzIDg3LDMwMCA5OSwyNjUgOTksMjY1IDk5LDI2NSIvPiAKKzwvZz48L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3N2ZzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zdmcyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjMzk5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zdmcyCkBAIC0wLDAgKzEsNTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aD0iMjY4cHgiIGhlaWdodD0iMjA3cHgiPgorPGcgc3R5bGU9InN0cm9rZTogIzAwMDAwMCI+IAorICAgPHBhdGggZD0iIE0gMjkgMjggIi8+IAorICAgPHBhdGggZD0iIEwgMTkgNzQgIi8+IAorPC9nPiAKKzxnIHN0eWxlPSJzdHJva2U6ICM4MDAwNDAiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDMyLDEwMCA3Miw1MCA5MCw4MiA3MywxNiAxMjAsNjQgMTUyLDkgMTc3LDEwNyIvPiAKKzwvZz4gCis8ZyBzdHlsZT0ic3Ryb2tlOiAjMDAwMDAwIj4gCis8L2c+IAorPGcgc3R5bGU9InN0cm9rZTogIzAwMDBmZiI+IAorICAgPHJlY3QgeD0iMzAiIHk9IjEwMSIgd2lkdGg9IjUxIiBoZWlnaHQ9IjMzIi8+Cis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICMwMDAwZmYiPiAKKyAgIDxlbGxpcHNlIGN4PSIxODIiIGN5PSIxMjciIG1ham9yPSIzNyIgbWlub3I9IjMxIiBhbmdsZT0iOTAiLz4KKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogI2ZmMDAwMCI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzgsMTgwIDc2LDE1MSAxMzEsMTQ5IDEzNiwxODIgMTM1LDE4MiAxMzQsMTgzIDEyNywxODUgMTE3LDE4NiAxMDksMTkyIDEwNCwxOTQgOTgsMTk5IDk2LDIwMCA5NSwyMDEgOTQsMjAyIDkyLDIwMiA4NSwyMDIgNzAsMjAwIDU0LDE5OSA0NywxOTggNDYsMTk3IDQ1LDE5NyAzNywxOTUgMjYsMTkzIDE3LDE4NyA5LDE4MSA4LDE4MSA3LDE3NiA2LDE3NSA2LDE3MyA2LDE3MiA2LDE3MCA4LDE2NCA4LDE2MyA4LDE2MiA5LDE2MiAxMCwxNjIgMTEsMTYyIDEzLDE2MiAyMCwxNjIgMjYsMTYyIDI3LDE2MiAyOCwxNjIgMzAsMTYyIDMwLDE2MyAzMSwxNjMgMzIsMTY0IDM0LDE2NiAzNSwxNjYgMzYsMTY3IDM2LDE2OCAzNywxNjkgMzgsMTY5IDM5LDE2OSA0MSwxNzAgNDMsMTcwIDQ1LDE3MCA0NywxNzAgNDksMTcwIDUwLDE2OCA1MCwxNjEgNTAsMTYwIDUwLDE1OSA0NywxNjIgNzgsMTgwIi8+IAorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMDwvZGVzYz4gCisgICA8L2c+CisgICA8Zz4KKyAgICAgPGRlc2M+IEphdmEgRm9udCBkZWZpbml0aW9uOkhlbHZldGljYSAwPC9kZXNjPiAKKyAgIDwvZz4KKzwvZz4gCis8ZyBzdHlsZT0ic3Ryb2tlOiAjMDAwMDAwIj4gCisgICA8dGV4dCB4PSIxODgiIHk9IjM2Ij50aGlzIGlzIHRleHQ8L3RleHQ+Cis8L2c+IAorPGcgc3R5bGU9InN0cm9rZTogIzAwMDAwMCI+IAorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMDwvZGVzYz4gCisgICA8L2c+CisgICA8Zz4KKyAgICAgPGRlc2M+IEphdmEgRm9udCBkZWZpbml0aW9uOkhlbHZldGljYSA3MDA8L2Rlc2M+IAorICAgPC9nPgorPC9nPiAKKzxnIHN0eWxlPSJzdHJva2U6ICMwMDgwODAiPiAKKyAgIDx0ZXh0IHg9IjE3NiIgeT0iODUiPnNhZGZzYWRmc2FkPC90ZXh0PgorPC9nPiAKKzxnIHN0eWxlPSJzdHJva2U6ICMwMDAwMDAiPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogIzgwMDA0MCI+IAorICAgPGVsbGlwc2UgY3g9IjIwOCIgY3k9IjE4MCIgbWFqb3I9IjQ1IiBtaW5vcj0iMzEiIGFuZ2xlPSIwIi8+Cis8L2c+IAorPGcgc3R5bGU9InN0cm9rZTogIzAwMDAwMCI+IAorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4gCisgICA8Zz4KKyAgICAgPGRlc2M+IEphdmEgRm9udCBkZWZpbml0aW9uOkRpYWxvZyA3MDA8L2Rlc2M+IAorICAgPC9nPgorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgNzAwPC9kZXNjPiAKKyAgIDwvZz4KKzwvZz48L3N2Zz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3N2ZzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zdmczCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OTk0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC9zdmczCkBAIC0wLDAgKzEsNzIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxzdmc+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzcuNjk2IDI4NC4yODVDNzcuNjk2IDI4NC4yODUgNzcuNzk3IDI4Ni4xNzkgNzYuOTczIDI4Ni4xNkM3Ni4xNDkgMjg2LjE0MSA1OS42OTUgMjM4LjA2NiAzOS4xNjcgMjQwLjMwOUMzOS4xNjcgMjQwLjMwOSA1Ni45NSAyMzIuOTU2IDc3LjY5NiAyODQuMjg1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik04MS4yMjYgMjgxLjI2MkM4MS4yMjYgMjgxLjI2MiA4MC42NzcgMjgzLjA3OCA3OS45MDggMjgyLjc3OUM3OS4xNCAyODIuNDgxIDgwLjAyMyAyMzEuNjc1IDU5Ljk1NyAyMjYuODAxQzU5Ljk1NyAyMjYuODAxIDc5LjE4IDIyNS45MzcgODEuMjI2IDI4MS4yNjJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyIj4KKyAgPHBhdGggZD0iTTEwOC43MTYgMzIzLjU5QzEwOC43MTYgMzIzLjU5IDExMC4zNTIgMzI0LjU1IDEwOS44ODIgMzI1LjIyN0MxMDkuNDExIDMyNS45MDQgNjAuMjM3IDMxMy4xMDIgNTAuNzgyIDMzMS40NTlDNTAuNzgyIDMzMS40NTkgNTQuNDYxIDMxMi41NzIgMTA4LjcxNiAzMjMuNTl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyIj4KKyAgPHBhdGggZD0iTTEwNS45MDcgMzMzLjgwMUMxMDUuOTA3IDMzMy44MDEgMTA3Ljc2MyAzMzQuMTk3IDEwNy41MjkgMzM0Ljk4OEMxMDcuMjk2IDMzNS43NzkgNTYuNTkzIDMzOS4xMjEgNTMuNDAzIDM1OS41MjJDNTMuNDAzIDM1OS41MjIgNTAuOTQ1IDM0MC40MzcgMTA1LjkwNyAzMzMuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik0xMDEuNjk2IDMyOC4yNzZDMTAxLjY5NiAzMjguMjc2IDEwMy40NzQgMzI4LjkzOSAxMDMuMTI4IDMyOS42ODdDMTAyLjc4MiAzMzAuNDM1IDUyLjEzNCAzMjYuMzQ2IDQ2LjAwMiAzNDYuMDY0QzQ2LjAwMiAzNDYuMDY0IDQ2LjM1NCAzMjYuODI1IDEwMS42OTYgMzI4LjI3NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNOTAuOTkxIDMxMC4wNzJDOTAuOTkxIDMxMC4wNzIgOTIuMjk5IDMxMS40NDYgOTEuNjYgMzExLjk2N0M5MS4wMjEgMzEyLjQ4OCA0Ny4yNzggMjg2LjYzNCAzMy4xMzEgMzAxLjY3NkMzMy4xMzEgMzAxLjY3NiA0MS44NzIgMjg0LjUzMyA5MC45OTEgMzEwLjA3MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNODMuNDQ2IDMxNC4yNjNDODMuNDQ2IDMxNC4yNjMgODQuOTAyIDMxNS40OCA4NC4zMjYgMzE2LjA3MUM4My43NSAzMTYuNjYxIDM3LjM2MiAyOTUuOTIyIDI1LjAwOCAzMTIuNDY5QzI1LjAwOCAzMTIuNDY5IDMxLjc1MyAyOTQuNDQ3IDgzLjQ0NiAzMTQuMjYzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik04MC44NDYgMzE4LjMzNUM4MC44NDYgMzE4LjMzNSA4Mi40NTQgMzE5LjM0MyA4MS45NjQgMzIwLjAwNkM4MS40NzQgMzIwLjY2OSAzMi42OTIgMzA2LjQ0NiAyMi43MDkgMzI0LjUyMkMyMi43MDkgMzI0LjUyMiAyNi45MzQgMzA1Ljc0OSA4MC44NDYgMzE4LjMzNXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNOTEuNTggMzE4Ljk0OUM5MS41OCAzMTguOTQ5IDkyLjcwMiAzMjAuNDggOTIuMDAxIDMyMC45MTVDOTEuMyAzMjEuMzUgNTEuMjMxIDI5MC4xMDIgMzUuMjczIDMwMy4yMDdDMzUuMjczIDMwMy4yMDcgNDYuMTM4IDI4Ny4zMjYgOTEuNTggMzE4Ljk0OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzEuOCAyOTBDNzEuOCAyOTAgNzIuNCAyOTEuOCA3MS42IDI5MkM3MC44IDI5Mi4yIDQyLjIgMjUwLjIgMjIuOTk5IDI1Ny44QzIyLjk5OSAyNTcuOCAzOC4yIDI0NiA3MS44IDI5MHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzIuNDk1IDI5Ni45NzlDNzIuNDk1IDI5Ni45NzkgNzMuNDcgMjk4LjYwOCA3Mi43MzEgMjk4Ljk3NUM3MS45OTMgMjk5LjM0MyAzNS4wMDggMjY0LjQ5OSAxNy44OTkgMjc2LjA2MUMxNy44OTkgMjc2LjA2MSAzMC4xOTYgMjYxLjI2MSA3Mi40OTUgMjk2Ljk3OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzIuMzggMzAxLjM0OUM3Mi4zOCAzMDEuMzQ5IDczLjUwMiAzMDIuODggNzIuODAxIDMwMy4zMTVDNzIuMSAzMDMuNzQ5IDMyLjAzMSAyNzIuNTAyIDE2LjA3MyAyODUuNjA3QzE2LjA3MyAyODUuNjA3IDI2LjkzOCAyNjkuNzI2IDcyLjM4IDMwMS4zNDl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik03MC4xNyAzMDMuMDY1QzcwLjY3MyAzMDkuMTEzIDcxLjY2MSAzMTUuNjgyIDczLjQgMzE4LjgwMUM3My40IDMxOC44MDEgNjkuOCAzMzEuMjAxIDc4LjYgMzQ0LjQwMUM3OC42IDM0NC40MDEgNzguMiAzNTEuNjAxIDc5LjggMzU0LjgwMUM3OS44IDM1NC44MDEgODMuOCAzNjMuMjAxIDg4LjYgMzY0LjAwMUM5Mi40ODQgMzY0LjY0OCAxMDEuMjA3IDM2Ny43MTcgMTExLjA2OCAzNjkuMTIxQzExMS4wNjggMzY5LjEyMSAxMjguMiAzODMuMjAxIDEyNSAzOTYuMDAxQzEyNSAzOTYuMDAxIDEyNC42IDQxMi40MDEgMTIxIDQxNC4wMDFDMTIxIDQxNC4wMDEgMTMyLjYgNDAyLjgwMSAxMjMgNDE5LjYwMUwxMTguNiA0MzguNDAxQzExOC42IDQzOC40MDEgMTQ0LjIgNDE2LjgwMSAxMjguNiA0MzUuMjAxTDExOC42IDQ2MS4yMDFDMTE4LjYgNDYxLjIwMSAxMzguMiA0NDIuODAxIDEzMSA0NTEuMjAxTDEyNy44IDQ2MC4wMDFDMTI3LjggNDYwLjAwMSAxNzEgNDMyLjgwMSAxNDAuMiA0NjIuNDAxQzE0MC4yIDQ2Mi40MDEgMTQ4LjIgNDU4LjgwMSAxNTIuNiA0NjEuNjAxQzE1Mi42IDQ2MS42MDEgMTU5LjQgNDYwLjQwMSAxNTguNiA0NjIuMDAxQzE1OC42IDQ2Mi4wMDEgMTM3LjggNDcyLjQwMSAxMzQuMiA0OTAuODAxQzEzNC4yIDQ5MC44MDEgMTQyLjYgNDgwLjgwMSAxMzkuNCA0OTEuNjAxTDEzOS44IDUwMy4yMDFDMTM5LjggNTAzLjIwMSAxNDMuOCA0ODEuNjAxIDE0My40IDUxOS4yMDFDMTQzLjQgNTE5LjIwMSAxNjIuNiA1MDEuMjAxIDE1MSA1MjIuMDAxTDE1MSA1MzguODAxQzE1MSA1MzguODAxIDE2Ni4yIDUyMi40MDEgMTU5LjggNTM1LjIwMUMxNTkuOCA1MzUuMjAxIDE2OS44IDUyNi40MDEgMTY1LjggNTQxLjYwMUMxNjUuOCA1NDEuNjAxIDE2NSA1NTIuMDAxIDE2OS40IDU0MC44MDFDMTY5LjQgNTQwLjgwMSAxODUuNCA1MTAuMjAxIDE3OS40IDUzNi40MDFDMTc5LjQgNTM2LjQwMSAxNzguNiA1NTUuNjAxIDE4My40IDU0MC44MDFDMTgzLjQgNTQwLjgwMSAxODMuOCA1NTEuMjAxIDE5MyA1NTguNDAxQzE5MyA1NTguNDAxIDE5MS44IDUwNy42MDEgMjA0LjYgNTQzLjYwMUwyMDguNiA1NjAuMDAxQzIwOC42IDU2MC4wMDEgMjExLjQgNTUwLjgwMSAyMTEgNTQ1LjYwMUMyMTEgNTQ1LjYwMSAyMjUuOCA1MjkuMjAxIDIxOSA1NTMuNjAxQzIxOSA1NTMuNjAxIDIzNC4yIDUzMC44MDEgMjMxIDU0NC4wMDFDMjMxIDU0NC4wMDEgMjIzLjQgNTYwLjAwMSAyMjUgNTY0LjgwMUMyMjUgNTY0LjgwMSAyNDEuOCA1MzAuMDAxIDI0MyA1MjguNDAxQzI0MyA1MjguNDAxIDI0MSA1NzAuODAyIDI1MS44IDUzNC44MDFDMjUxLjggNTM0LjgwMSAyNTcuNCA1NDYuODAxIDI1NC42IDU1MS4yMDFDMjU0LjYgNTUxLjIwMSAyNjIuNiA1NDMuMjAxIDI2MS44IDU0MC4wMDFDMjYxLjggNTQwLjAwMSAyNjYuNCA1MzEuODAxIDI2OS4yIDU0NS40MDFDMjY5LjIgNTQ1LjQwMSAyNzEgNTU0LjgwMSAyNzIuNiA1NTEuNjAxQzI3Mi42IDU1MS42MDEgMjc2LjYgNTc1LjYwMiAyNzcuOCA1NTIuODAxQzI3Ny44IDU1Mi44MDEgMjc5LjQgNTM5LjIwMSAyNzIuMiA1MjcuNjAxQzI3Mi4yIDUyNy42MDEgMjczIDUyNC40MDEgMjcwLjIgNTIwLjQwMUMyNzAuMiA1MjAuNDAxIDI4My44IDU0Mi4wMDEgMjc2LjYgNTEzLjIwMUMyNzYuNiA1MTMuMjAxIDI4Ny44MDEgNTIxLjIwMSAyODkuMDAxIDUyMS4yMDFDMjg5LjAwMSA1MjEuMjAxIDI3NS40IDQ5OC4wMDEgMjg0LjIgNTAyLjgwMUMyODQuMiA1MDIuODAxIDI3OSA0OTIuNDAxIDI5Ny4wMDEgNTA0LjQwMUMyOTcuMDAxIDUwNC40MDEgMjgxIDQ4OC40MDEgMjk4LjYwMSA0OTguMDAxQzI5OC42MDEgNDk4LjAwMSAzMDYuNjAxIDUwNC40MDEgMjk5LjAwMSA0OTQuNDAxQzI5OS4wMDEgNDk0LjQwMSAyODQuNiA0NzguNDAxIDMwNi42MDEgNDk2LjQwMUMzMDYuNjAxIDQ5Ni40MDEgMzE4LjIwMSA1MTIuODAxIDMxOS4wMDEgNTE1LjYwMUMzMTkuMDAxIDUxNS42MDEgMzA5LjAwMSA0ODYuNDAxIDMwNC42MDEgNDgzLjYwMUMzMDQuNjAxIDQ4My42MDEgMzEzLjAwMSA0NDcuMjAxIDM1NC4yMDEgNDYyLjgwMUMzNTQuMjAxIDQ2Mi44MDEgMzYxLjAwMSA0ODAuMDAxIDM2NS40MDEgNDYxLjYwMUMzNjUuNDAxIDQ2MS42MDEgMzc4LjIwMSA0NTUuMjAxIDM4OS40MDEgNDgyLjgwMUMzODkuNDAxIDQ4Mi44MDEgMzkzLjQwMSA0NjkuMjAxIDM5Mi42MDEgNDY2LjQwMUMzOTIuNjAxIDQ2Ni40MDEgMzk5LjQwMSA0NjcuNjAxIDM5OC42MDEgNDY2LjQwMUMzOTguNjAxIDQ2Ni40MDEgNDExLjgwMSA0NzAuODAxIDQxMy4wMDEgNDcwLjAwMUM0MTMuMDAxIDQ3MC4wMDEgNDE5LjgwMSA0NzYuODAxIDQyMC4yMDEgNDczLjIwMUM0MjAuMjAxIDQ3My4yMDEgNDI5LjQwMSA0NzYuMDAxIDQyNy40MDEgNDcyLjQwMUM0MjcuNDAxIDQ3Mi40MDEgNDM2LjIwMSA0ODguMDAxIDQzNi42MDEgNDkxLjYwMUw0MzkuMDAxIDQ3Ny42MDFMNDQxLjAwMSA0ODAuNDAxQzQ0MS4wMDEgNDgwLjQwMSA0NDIuNjAxIDQ3Mi44MDEgNDQxLjgwMSA0NzEuNjAxQzQ0MS4wMDEgNDcwLjQwMSA0NjEuODAxIDQ3OC40MDEgNDY2LjYwMSA0OTkuMjAxTDQ2OC42MDEgNTA3LjYwMUM0NjguNjAxIDUwNy42MDEgNDc0LjYwMSA0OTIuODAxIDQ3My4wMDEgNDg4LjgwMUM0NzMuMDAxIDQ4OC44MDEgNDc4LjIwMSA0ODkuNjAxIDQ3OC42MDEgNDk0LjAwMUM0NzguNjAxIDQ5NC4wMDEgNDgyLjYwMSA0NzAuODAxIDQ3Ny44MDEgNDY0LjgwMUM0NzcuODAxIDQ2NC44MDEgNDgyLjIwMSA0NjQuMDAxIDQ4My40MDEgNDY3LjYwMUw0ODMuNDAxIDQ2MC40MDFDNDgzLjQwMSA0NjAuNDAxIDQ5MC42MDEgNDYxLjIwMSA0OTAuNjAxIDQ1OC44MDFDNDkwLjYwMSA0NTguODAxIDQ5NS4wMDEgNDU0LjgwMSA0OTcuMDAxIDQ1OS42MDFDNDk3LjAwMSA0NTkuNjAxIDQ4NC42MDEgNDI0LjQwMSA1MDMuMDAxIDQ0My42MDFDNTAzLjAwMSA0NDMuNjAxIDUxMC4yMDEgNDU0LjQwMSA1MDYuNjAxIDQzNS42MDFDNTAzLjAwMSA0MTYuODAxIDQ5OS4wMDEgNDE1LjIwMSA1MDMuODAxIDQxNC44MDFDNTAzLjgwMSA0MTQuODAxIDUwNC42MDEgNDExLjIwMSA1MDIuNjAxIDQwOS42MDFDNTAwLjYwMSA0MDguMDAxIDUwMy44MDEgNDA5LjYwMSA1MDMuODAxIDQwOS42MDFDNTAzLjgwMSA0MDkuNjAxIDUwOC42MDEgNDEzLjYwMSA1MDMuNDAxIDM5MS42MDFDNTAzLjQwMSAzOTEuNjAxIDUwOS44MDEgMzkzLjIwMSA0OTcuODAxIDM2NC4wMDFDNDk3LjgwMSAzNjQuMDAxIDUwMC42MDEgMzYxLjYwMSA0OTYuNjAxIDM1My4yMDFDNDk2LjYwMSAzNTMuMjAxIDUwNC42MDEgMzU3LjYwMSA1MDcuNDAxIDM1Ni4wMDFDNTA3LjQwMSAzNTYuMDAxIDUwNy4wMDEgMzU0LjQwMSA1MDMuODAxIDM1MC40MDFDNTAzLjgwMSAzNTAuNDAxIDQ4Mi4yMDEgMjk1LjYgNTAyLjYwMSAzMTcuNjAxQzUwMi42MDEgMzE3LjYwMSA1MTQuNDUxIDMzMS4xNTEgNTA4LjA1MSAzMDguMzUxQzUwOC4wNTEgMzA4LjM1MSA0OTguOTQgMjg0LjM0MSA0OTkuNzE3IDI4MC4wNDVMNzAuMTcgMzAzLjA2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjY7IHN0cm9rZTojMDAwMDAwIj4KKyAgPHBhdGggZD0iTTQ5OS43MTcgMjgwLjI0NUM1MDAuMzQ1IDI4MC40MjYgNTAyLjU1MSAyODEuNTUgNTAzLjgwMSAyODMuMkM1MDMuODAxIDI4My4yIDUxMC42MDEgMjk0IDUwNS40MDEgMjc1LjZDNTA1LjQwMSAyNzUuNiA0OTYuMjAxIDI0Ni44IDUwNS4wMDEgMjU4QzUwNS4wMDEgMjU4IDUxMS4wMDEgMjY1LjIgNTA3LjgwMSAyNTEuNkM1MDMuOTM2IDIzNS4xNzMgNTAxLjQwMSAyMjguOCA1MDEuNDAxIDIyOC44QzUwMS40MDEgMjI4LjggNTEzLjAwMSAyMzMuNiA0ODYuMjAxIDE5NEw0OTUuMDAxIDE5Ny42QzQ5NS4wMDEgMTk3LjYgNDc1LjQwMSAxNTggNDUzLjgwMSAxNTIuOEw0NDUuODAxIDE0Ni44QzQ0NS44MDEgMTQ2LjggNDg0LjIwMSAxMDguOCA0NzEuNDAxIDcyQzQ3MS40MDEgNzIgNDY0LjYwMSA2Ni44IDQ1NS4wMDEgNzZDNDU1LjAwMSA3NiA0NDguNjAxIDgwLjggNDQyLjYwMSA3OS4yQzQ0Mi42MDEgNzkuMiA0MTEuODAxIDgwLjQgNDA5LjgwMSA4MC40QzQwNy44MDEgODAuNCAzNzMuMDAxIDQzLjIgMzA3LjQwMSA2MC44QzMwNy40MDEgNjAuOCAzMDIuMjAxIDYyLjggMjk3LjgwMSA2MS42QzI5Ny44MDEgNjEuNiAyNzkuNCA0NS42IDIzMC42IDY4LjRDMjMwLjYgNjguNCAyMjAuNiA3MC40IDIxOSA3MC40QzIxNy40IDcwLjQgMjE0LjYgNzAuNCAyMDYuNiA3Ni44QzE5OC42IDgzLjIgMTk4LjIgODQgMTk2LjIgODUuNkMxOTYuMiA4NS42IDE3OS44IDk2LjggMTc1IDk3LjZDMTc1IDk3LjYgMTYzLjQgMTA0IDE1OSAxMTRMMTU1LjQgMTE1LjJDMTU1LjQgMTE1LjIgMTUzLjggMTIyLjQgMTUzLjQgMTIzLjZDMTUzLjQgMTIzLjYgMTQ4LjYgMTI3LjIgMTQ3LjggMTMyLjhDMTQ3LjggMTMyLjggMTM5IDEzOC44IDEzOS40IDE0My4yQzEzOS40IDE0My4yIDEzNy44IDE0OC40IDEzNyAxNTMuMkMxMzcgMTUzLjIgMTI5LjggMTU4IDEzMC42IDE2MC44QzEzMC42IDE2MC44IDEyMyAxNzQuOCAxMjQuMiAxODEuNkMxMjQuMiAxODEuNiAxMTcuOCAxODEuMiAxMTUgMTgzLjZDMTE1IDE4My42IDExNC4yIDE4OC40IDExMi42IDE4OC44QzExMi42IDE4OC44IDEwOS44IDE5MCAxMTIuMiAxOTRDMTEyLjIgMTk0IDExMC42IDE5Ni44IDExMC4yIDE5OC40QzExMC4yIDE5OC40IDExMSAyMDEuMiAxMDYuNiAyMDYuOEMxMDYuNiAyMDYuOCAxMDAuMiAyMjUuNiAxMDIuMiAyMzAuOEMxMDIuMiAyMzAuOCAxMDIuNiAyMzUuNiA5OS44IDIzNy4yQzk5LjggMjM3LjIgOTYuMiAyMzYuOCAxMDQuNiAyNDguOEMxMDQuNiAyNDguOCAxMDUuNCAyNTAgMTAyLjIgMjUyLjRDMTAyLjIgMjUyLjQgODUgMjU2IDgyLjYgMjcyLjRDODIuNiAyNzIuNCA2OSAyODcuMiA2OSAyOTIuNEM2OSAyOTQuNzA1IDY5LjI3MSAyOTcuODUyIDY5Ljk3IDMwMi40NjVDNjkuOTcgMzAyLjQ2NSA2OS40IDMxMC44MDEgOTcgMzExLjYwMUMxMjQuNiAzMTIuNDAxIDQ5OS43MTcgMjgwLjI0NSA0OTkuNzE3IDI4MC4yNDV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTg0LjQgMzAyLjZDNTkuNCAyNjMuMiA3My44IDMxOS42MDEgNzMuOCAzMTkuNjAxQzgyLjYgMzU0LjAwMSAyMTIuMiAzMTYuNDAxIDIxMi4yIDMxNi40MDFDMjEyLjIgMzE2LjQwMSAzODEuMDAxIDI4NiAzOTIuMjAxIDI4MkM0MDMuNDAxIDI3OCA0OTguNjAxIDI4NC40IDQ5OC42MDEgMjg0LjRMNDkzLjAwMSAyNjcuNkM0MjguMjAxIDIyMS4yIDQwOS4wMDEgMjQ0LjQgMzk1LjQwMSAyNDAuNEMzODEuODAxIDIzNi40IDM4NC4yMDEgMjQ2IDM4MS4wMDEgMjQ2LjhDMzc3LjgwMSAyNDcuNiAzMzguNjAxIDIyMi44IDMzMi4yMDEgMjIzLjZDMzI1LjgwMSAyMjQuNCAzMDAuNDU5IDIwMC42NDkgMzE1LjQwMSAyMzIuNEMzMzEuNDAxIDI2Ni40IDI1NyAyNzEuNiAyNDAuMiAyNjAuNEMyMjMuNCAyNDkuMiAyNDcuNCAyNzguOCAyNDcuNCAyNzguOEMyNjUuOCAyOTguOCAyMzEuNCAyODIgMjMxLjQgMjgyQzE5NyAyNjkuMiAxNzMgMjk0LjggMTY5LjggMjk1LjZDMTY2LjYgMjk2LjQgMTYxLjggMjk5LjYgMTYxIDI5My4yQzE2MC4yIDI4Ni44IDE1Mi42OSAyNzAuMDk5IDEyMSAyOTYuNEMxMDEgMzEzLjAwMSA4Ny4yIDI5MSA4Ny4yIDI5MUw4NC40IDMwMi42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2U4N2YzYSI+CisgIDxwYXRoIGQ9Ik0zMzMuNTEgMjI1LjM0NkMzMjcuMTEgMjI2LjE0NiAzMDEuNzQzIDIwMi40MDcgMzE2LjcxIDIzNC4xNDZDMzMzLjMxIDI2OS4zNDYgMjU4LjMxIDI3My4zNDYgMjQxLjUxIDI2Mi4xNDZDMjI0LjcwOSAyNTAuOTQ2IDI0OC43MSAyODAuNTQ2IDI0OC43MSAyODAuNTQ2QzI2Ny4xMSAzMDAuNTQ2IDIzMi43MDkgMjgzLjc0NiAyMzIuNzA5IDI4My43NDZDMTk4LjMwOSAyNzAuOTQ2IDE3NC4zMDkgMjk2LjU0NiAxNzEuMTA5IDI5Ny4zNDZDMTY3LjkwOSAyOTguMTQ2IDE2My4xMDkgMzAxLjM0NiAxNjIuMzA5IDI5NC45NDZDMTYxLjUwOSAyODguNTQ2IDE1NC4xMyAyNzIuMDEyIDEyMi4zMDkgMjk4LjE0NkMxMDEuMDczIDMxNS40OTIgODcuNTgyIDI5NC4wMzcgODcuNTgyIDI5NC4wMzdMODQuMzgyIDMwNC4xNDZDNTkuMzgyIDI2NC4zNDYgNzQuNDU0IDMyMi42NTUgNzQuNDU0IDMyMi42NTVDODMuMjU1IDM1Ny4wNTYgMjEzLjUwOSAzMTguMTQ2IDIxMy41MDkgMzE4LjE0NkMyMTMuNTA5IDMxOC4xNDYgMzgyLjMxIDI4Ny43NDYgMzkzLjUxIDI4My43NDZDNDA0LjcxIDI3OS43NDYgNDk5LjAzOCAyODYuMDczIDQ5OS4wMzggMjg2LjA3M0w0OTMuNTEgMjY4Ljc2NEM0MjguNzEgMjIyLjM2NCA0MTAuMzEgMjQ2LjE0NiAzOTYuNzEgMjQyLjE0NkMzODMuMTEgMjM4LjE0NiAzODUuNTEgMjQ3Ljc0NiAzODIuMzEgMjQ4LjU0NkMzNzkuMTEgMjQ5LjM0NiAzMzkuOTEgMjI0LjU0NiAzMzMuNTEgMjI1LjM0NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlYThjNGQiPgorICA8cGF0aCBkPSJNMzM0LjgxOSAyMjcuMDkxQzMyOC40MTkgMjI3Ljg5MSAzMDMuNjg1IDIwMy44NjIgMzE4LjAxOSAyMzUuODkxQzMzNC4yMTkgMjcyLjA5MiAyNTkuNjE5IDI3NS4wOTIgMjQyLjgxOSAyNjMuODkyQzIyNi4wMTkgMjUyLjY5MiAyNTAuMDE5IDI4Mi4yOTIgMjUwLjAxOSAyODIuMjkyQzI2OC40MTkgMzAyLjI5MiAyMzQuMDE5IDI4NS40OTIgMjM0LjAxOSAyODUuNDkyQzE5OS42MTkgMjcyLjY5MiAxNzUuNjE4IDI5OC4yOTIgMTcyLjQxOCAyOTkuMDkyQzE2OS4yMTggMjk5Ljg5MiAxNjQuNDE4IDMwMy4wOTIgMTYzLjYxOCAyOTYuNjkyQzE2Mi44MTggMjkwLjI5MiAxNTUuNTcgMjczLjkyNSAxMjMuNjE4IDI5OS44OTJDMTAxLjE0NSAzMTcuOTgzIDg3Ljk2NCAyOTcuMDc0IDg3Ljk2NCAyOTcuMDc0TDg0LjM2NCAzMDUuNjkyQzYwLjU2NCAyNjYuNjkyIDc1LjEwOSAzMjUuNzEgNzUuMTA5IDMyNS43MUM4My45MDkgMzYwLjExIDIxNC44MTkgMzE5Ljg5MiAyMTQuODE5IDMxOS44OTJDMjE0LjgxOSAzMTkuODkyIDM4My42MTkgMjg5LjQ5MiAzOTQuODE5IDI4NS40OTJDNDA2LjAxOSAyODEuNDkyIDQ5OS40NzQgMjg3Ljc0NiA0OTkuNDc0IDI4Ny43NDZMNDk0LjAyIDI2OS45MjhDNDI5LjIxOSAyMjMuNTI4IDQxMS42MTkgMjQ3Ljg5MSAzOTguMDE5IDI0My44OTFDMzg0LjQxOSAyMzkuODkxIDM4Ni44MTkgMjQ5LjQ5MSAzODMuNjE5IDI1MC4yOTJDMzgwLjQxOSAyNTEuMDkyIDM0MS4yMTkgMjI2LjI5MSAzMzQuODE5IDIyNy4wOTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZWM5OTYxIj4KKyAgPHBhdGggZD0iTTMzNi4xMjggMjI4LjgzN0MzMjkuNzI4IDIyOS42MzcgMzA0Ljk5OSAyMDUuNjA1IDMxOS4zMjggMjM3LjYzN0MzMzYuMTI4IDI3NS4xOTMgMjYwLjM5NCAyNzYuNDgyIDI0NC4xMjggMjY1LjYzN0MyMjcuMzI4IDI1NC40MzcgMjUxLjMyOCAyODQuMDM3IDI1MS4zMjggMjg0LjAzN0MyNjkuNzI4IDMwNC4wMzcgMjM1LjMyOCAyODcuMjM3IDIzNS4zMjggMjg3LjIzN0MyMDAuOTI4IDI3NC40MzcgMTc2LjkyOCAzMDAuMDM3IDE3My43MjggMzAwLjgzN0MxNzAuNTI4IDMwMS42MzcgMTY1LjcyOCAzMDQuODM3IDE2NC45MjggMjk4LjQzN0MxNjQuMTI4IDI5Mi4wMzcgMTU3LjAxMSAyNzUuODM5IDEyNC45MjcgMzAxLjYzN0MxMDEuMjE4IDMyMC40NzQgODguMzQ1IDMwMC4xMSA4OC4zNDUgMzAwLjExTDg0LjM0NSAzMDcuMjM3QzYyLjU0NSAyNzAuNDM3IDc1Ljc2NCAzMjguNzY1IDc1Ljc2NCAzMjguNzY1Qzg0LjU2NCAzNjMuMTY1IDIxNi4xMjggMzIxLjYzNyAyMTYuMTI4IDMyMS42MzdDMjE2LjEyOCAzMjEuNjM3IDM4NC45MjggMjkxLjIzNyAzOTYuMTI5IDI4Ny4yMzdDNDA3LjMyOSAyODMuMjM3IDQ5OS45MTEgMjg5LjQxOSA0OTkuOTExIDI4OS40MTlMNDk0LjUyOSAyNzEuMDkyQzQyOS43MjkgMjI0LjY5MSA0MTIuOTI5IDI0OS42MzcgMzk5LjMyOSAyNDUuNjM3QzM4NS43MjggMjQxLjYzNyAzODguMTI4IDI1MS4yMzcgMzg0LjkyOCAyNTIuMDM3QzM4MS43MjggMjUyLjgzNyAzNDIuNTI4IDIyOC4wMzcgMzM2LjEyOCAyMjguODM3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2VlYTU3NSI+CisgIDxwYXRoIGQ9Ik0zMzcuNDM4IDIzMC41ODNDMzMxLjAzNyAyMzEuMzgzIDMwNi44MTQgMjA3LjEyOSAzMjAuNjM3IDIzOS4zODNDMzM3LjQzOCAyNzguNTgzIDI2Mi4yMzcgMjc4LjU4MyAyNDUuNDM3IDI2Ny4zODNDMjI4LjYzNyAyNTYuMTgzIDI1Mi42MzcgMjg1Ljc4MyAyNTIuNjM3IDI4NS43ODNDMjcxLjAzNyAzMDUuNzgzIDIzNi42MzcgMjg4Ljk4MyAyMzYuNjM3IDI4OC45ODNDMjAyLjIzNyAyNzYuMTgzIDE3OC4yMzcgMzAxLjc4MyAxNzUuMDM3IDMwMi41ODNDMTcxLjgzNyAzMDMuMzgzIDE2Ny4wMzcgMzA2LjU4MyAxNjYuMjM3IDMwMC4xODNDMTY1LjQzNyAyOTMuNzgzIDE1OC40NTIgMjc3Ljc1MiAxMjYuMjM3IDMwMy4zODNDMTAxLjI5MSAzMjIuOTY1IDg4LjcyNyAzMDMuMTQ2IDg4LjcyNyAzMDMuMTQ2TDg0LjMyNyAzMDguNzgzQzY0LjUyNyAyNzMuOTgyIDc2LjQxOCAzMzEuODE5IDc2LjQxOCAzMzEuODE5Qzg1LjIxOCAzNjYuMjIgMjE3LjQzNyAzMjMuMzgzIDIxNy40MzcgMzIzLjM4M0MyMTcuNDM3IDMyMy4zODMgMzg2LjIzOCAyOTIuOTgzIDM5Ny40MzggMjg4Ljk4M0M0MDguNjM4IDI4NC45ODMgNTAwLjM0NyAyOTEuMDkyIDUwMC4zNDcgMjkxLjA5Mkw0OTUuMDM4IDI3Mi4yNTVDNDMwLjIzOCAyMjUuODU1IDQxNC4yMzggMjUxLjM4MyA0MDAuNjM4IDI0Ny4zODNDMzg3LjAzOCAyNDMuMzgzIDM4OS40MzggMjUyLjk4MyAzODYuMjM4IDI1My43ODNDMzgzLjAzOCAyNTQuNTgzIDM0My44MzggMjI5Ljc4MyAzMzcuNDM4IDIzMC41ODN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZjFiMjg4Ij4KKyAgPHBhdGggZD0iTTMzOC43NDcgMjMyLjMyOEMzMzIuMzQ3IDIzMy4xMjggMzA2LjM4MyAyMDkuNjc3IDMyMS45NDcgMjQxLjEyOEMzNDEuMTQ3IDI3OS45MjggMjYzLjU0NiAyODAuMzI4IDI0Ni43NDYgMjY5LjEyOEMyMjkuOTQ2IDI1Ny45MjggMjUzLjk0NiAyODcuNTI4IDI1My45NDYgMjg3LjUyOEMyNzIuMzQ2IDMwNy41MjggMjM3Ljk0NiAyOTAuNzI4IDIzNy45NDYgMjkwLjcyOEMyMDMuNTQ2IDI3Ny45MjggMTc5LjU0NiAzMDMuNTI4IDE3Ni4zNDYgMzA0LjMyOEMxNzMuMTQ2IDMwNS4xMjggMTY4LjM0NiAzMDguMzI4IDE2Ny41NDYgMzAxLjkyOEMxNjYuNzQ2IDI5NS41MjggMTU5Ljg5MiAyNzkuNjY1IDEyNy41NDYgMzA1LjEyOEMxMDEuMzY0IDMyNS40NTYgODkuMTA5IDMwNi4xODMgODkuMTA5IDMwNi4xODNMODQuMzA5IDMxMC4zMjhDNjYuMzA5IDI3Ny4xMjggNzcuMDczIDMzNC44NzQgNzcuMDczIDMzNC44NzRDODUuODczIDM2OS4yNzQgMjE4Ljc0NiAzMjUuMTI4IDIxOC43NDYgMzI1LjEyOEMyMTguNzQ2IDMyNS4xMjggMzg3LjU0NyAyOTQuNzI4IDM5OC43NDcgMjkwLjcyOEM0MDkuOTQ3IDI4Ni43MjggNTAwLjc4MyAyOTIuNzY0IDUwMC43ODMgMjkyLjc2NEw0OTUuNTQ3IDI3My40MTlDNDMwLjc0NyAyMjcuMDE5IDQxNS41NDcgMjUzLjEyOCA0MDEuOTQ3IDI0OS4xMjhDMzg4LjM0NyAyNDUuMTI4IDM5MC43NDcgMjU0LjcyOCAzODcuNTQ3IDI1NS41MjhDMzg0LjM0NyAyNTYuMzI4IDM0NS4xNDcgMjMxLjUyOCAzMzguNzQ3IDIzMi4zMjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZjNiZjljIj4KKyAgPHBhdGggZD0iTTM0MC4wNTYgMjM0LjA3M0MzMzMuNjU1IDIzNC44NzMgMzA3LjMxMyAyMTEuNjEzIDMyMy4yNTUgMjQyLjg3M0MzNDMuNjU2IDI4Mi44NzQgMjY0Ljg1NSAyODIuMDc0IDI0OC4wNTUgMjcwLjg3NEMyMzEuMjU1IDI1OS42NzQgMjU1LjI1NSAyODkuMjc0IDI1NS4yNTUgMjg5LjI3NEMyNzMuNjU1IDMwOS4yNzQgMjM5LjI1NSAyOTIuNDc0IDIzOS4yNTUgMjkyLjQ3NEMyMDQuODU1IDI3OS42NzQgMTgwLjg1NSAzMDUuMjc0IDE3Ny42NTUgMzA2LjA3NEMxNzQuNDU1IDMwNi44NzQgMTY5LjY1NSAzMTAuMDc0IDE2OC44NTUgMzAzLjY3NEMxNjguMDU1IDI5Ny4yNzQgMTYxLjMzMiAyODEuNTc4IDEyOC44NTUgMzA2Ljg3NEMxMDEuNDM2IDMyNy45NDcgODkuNDkxIDMwOS4yMTkgODkuNDkxIDMwOS4yMTlMODQuMjkxIDMxMS44NzRDNjguMjkxIDI4MS42NzQgNzcuNzI3IDMzNy45MjkgNzcuNzI3IDMzNy45MjlDODYuNTI3IDM3Mi4zMjkgMjIwLjA1NSAzMjYuODc0IDIyMC4wNTUgMzI2Ljg3NEMyMjAuMDU1IDMyNi44NzQgMzg4Ljg1NiAyOTYuNDc0IDQwMC4wNTYgMjkyLjQ3NEM0MTEuMjU2IDI4OC40NzQgNTAxLjIyIDI5NC40MzcgNTAxLjIyIDI5NC40MzdMNDk2LjA1NiAyNzQuNTgzQzQzMS4yNTYgMjI4LjE4MyA0MTYuODU2IDI1NC44NzQgNDAzLjI1NiAyNTAuODc0QzM4OS42NTYgMjQ2Ljg3MyAzOTIuMDU2IDI1Ni40NzQgMzg4Ljg1NiAyNTcuMjc0QzM4NS42NTYgMjU4LjA3NCAzNDYuNDU2IDIzMy4yNzMgMzQwLjA1NiAyMzQuMDczeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2Y1Y2NiMCI+CisgIDxwYXRoIGQ9Ik0zNDEuMzY1IDIzNS44MTlDMzM0Ljk2NSAyMzYuNjE5IDMwNy41MjMgMjEzLjk0NCAzMjQuNTY1IDI0NC42MTlDMzQ2LjU2NSAyODQuMjE5IDI2Ni4xNjQgMjgzLjgxOSAyNDkuMzY0IDI3Mi42MTlDMjMyLjU2NCAyNjEuNDE5IDI1Ni41NjQgMjkxLjAxOSAyNTYuNTY0IDI5MS4wMTlDMjc0Ljk2NCAzMTEuMDE5IDI0MC41NjQgMjk0LjIxOSAyNDAuNTY0IDI5NC4yMTlDMjA2LjE2NCAyODEuNDE5IDE4Mi4xNjQgMzA3LjAxOSAxNzguOTY0IDMwNy44MTlDMTc1Ljc2NCAzMDguNjE5IDE3MC45NjQgMzExLjgxOSAxNzAuMTY0IDMwNS40MTlDMTY5LjM2NCAyOTkuMDE5IDE2Mi43NzMgMjgzLjQ5MiAxMzAuMTY0IDMwOC42MTlDMTAxLjUwOSAzMzAuNDM4IDg5Ljg3MyAzMTIuMjU2IDg5Ljg3MyAzMTIuMjU2TDg0LjI3MyAzMTMuNDE5QzY5Ljg3MiAyODUuMDE5IDc4LjM4MiAzNDAuOTgzIDc4LjM4MiAzNDAuOTgzQzg3LjE4MiAzNzUuMzg0IDIyMS4zNjQgMzI4LjYxOSAyMjEuMzY0IDMyOC42MTlDMjIxLjM2NCAzMjguNjE5IDM5MC4xNjUgMjk4LjIxOSA0MDEuMzY1IDI5NC4yMTlDNDEyLjU2NSAyOTAuMjE5IDUwMS42NTYgMjk2LjExIDUwMS42NTYgMjk2LjExTDQ5Ni41NjUgMjc1Ljc0NkM0MzEuNzY1IDIyOS4zNDYgNDE4LjE2NSAyNTYuNjE5IDQwNC41NjUgMjUyLjYxOUMzOTAuOTY1IDI0OC42MTkgMzkzLjM2NSAyNTguMjE5IDM5MC4xNjUgMjU5LjAxOUMzODYuOTY1IDI1OS44MTkgMzQ3Ljc2NSAyMzUuMDE5IDM0MS4zNjUgMjM1LjgxOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmOGQ4YzQiPgorICA8cGF0aCBkPSJNMzQyLjY3NCAyMzcuNTY1QzMzNi4yNzQgMjM4LjM2NSAzMDguODMyIDIxNS42ODkgMzI1Ljg3NCAyNDYuMzY1QzM0Ny44NzQgMjg1Ljk2NSAyNjcuNDc0IDI4NS41NjUgMjUwLjY3NCAyNzQuMzY1QzIzMy44NzQgMjYzLjE2NSAyNTcuODc0IDI5Mi43NjUgMjU3Ljg3NCAyOTIuNzY1QzI3Ni4yNzQgMzEyLjc2NSAyNDEuODc0IDI5NS45NjUgMjQxLjg3NCAyOTUuOTY1QzIwNy40NzMgMjgzLjE2NSAxODMuNDczIDMwOC43NjUgMTgwLjI3MyAzMDkuNTY1QzE3Ny4wNzMgMzEwLjM2NSAxNzIuMjczIDMxMy41NjUgMTcxLjQ3MyAzMDcuMTY1QzE3MC42NzMgMzAwLjc2NSAxNjQuMjE0IDI4NS40MDUgMTMxLjQ3MyAzMTAuMzY1QzEwMS41ODIgMzMyLjkyOSA5MC4yNTUgMzE1LjI5MyA5MC4yNTUgMzE1LjI5M0w4NC4yNTUgMzE0Ljk2NUM3MC42NTQgMjg4LjU2NCA3OS4wMzcgMzQ0LjAzOCA3OS4wMzcgMzQ0LjAzOEM4Ny44MzcgMzc4LjQzOCAyMjIuNjczIDMzMC4zNjUgMjIyLjY3MyAzMzAuMzY1QzIyMi42NzMgMzMwLjM2NSAzOTEuNDc0IDI5OS45NjUgNDAyLjY3NCAyOTUuOTY1QzQxMy44NzQgMjkxLjk2NSA1MDIuMDkzIDI5Ny43ODMgNTAyLjA5MyAyOTcuNzgzTDQ5Ny4wNzUgMjc2LjkxQzQzMi4yNzQgMjMwLjUxIDQxOS40NzQgMjU4LjM2NSA0MDUuODc0IDI1NC4zNjVDMzkyLjI3NCAyNTAuMzY1IDM5NC42NzQgMjU5Ljk2NSAzOTEuNDc0IDI2MC43NjVDMzg4LjI3NCAyNjEuNTY1IDM0OS4wNzQgMjM2Ljc2NSAzNDIuNjc0IDIzNy41NjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmFlNWQ3Ij4KKyAgPHBhdGggZD0iTTM0My45ODMgMjM5LjMxQzMzNy41ODMgMjQwLjExIDMxMC41MjkgMjE3LjIyMyAzMjcuMTgzIDI0OC4xMUMzNDkuMTgzIDI4OC45MSAyNjguNzgzIDI4Ny4zMSAyNTEuOTgzIDI3Ni4xMUMyMzUuMTgzIDI2NC45MSAyNTkuMTgzIDI5NC41MSAyNTkuMTgzIDI5NC41MUMyNzcuNTgzIDMxNC41MSAyNDMuMTgzIDI5Ny43MSAyNDMuMTgzIDI5Ny43MUMyMDguNzgzIDI4NC45MSAxODQuNzgzIDMxMC41MSAxODEuNTgzIDMxMS4zMUMxNzguMzgyIDMxMi4xMSAxNzMuNTgyIDMxNS4zMSAxNzIuNzgyIDMwOC45MUMxNzEuOTgyIDMwMi41MSAxNjUuNjU0IDI4Ny4zMTggMTMyLjc4MiAzMTIuMTFDMTAxLjY1NSAzMzUuNDIgOTAuNjM3IDMxOC4zMjkgOTAuNjM3IDMxOC4zMjlMODQuMjM2IDMxNi41MUM3MS4yMzYgMjkyLjUxIDc5LjY5MSAzNDcuMDkzIDc5LjY5MSAzNDcuMDkzQzg4LjQ5MSAzODEuNDkzIDIyMy45ODMgMzMyLjExIDIyMy45ODMgMzMyLjExQzIyMy45ODMgMzMyLjExIDM5Mi43ODMgMzAxLjcxIDQwMy45ODMgMjk3LjcxQzQxNS4xODMgMjkzLjcxIDUwMi41MjkgMjk5LjQ1NiA1MDIuNTI5IDI5OS40NTZMNDk3LjU4MyAyNzguMDc0QzQzMi43ODMgMjMxLjY3MyA0MjAuNzgzIDI2MC4xMSA0MDcuMTgzIDI1Ni4xMUMzOTMuNTgzIDI1Mi4xMSAzOTUuOTgzIDI2MS43MSAzOTIuNzgzIDI2Mi41MUMzODkuNTgzIDI2My4zMSAzNTAuMzgzIDIzOC41MSAzNDMuOTgzIDIzOS4zMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmY2YyZWIiPgorICA8cGF0aCBkPSJNMzQ1LjI5MiAyNDEuMDU1QzMzOC44OTIgMjQxLjg1NSAzMTIuOTE3IDIxOC40MTEgMzI4LjQ5MiAyNDkuODU1QzM0OS42OTIgMjkyLjY1NiAyNzAuMDkyIDI4OS4wNTYgMjUzLjI5MiAyNzcuODU2QzIzNi40OTIgMjY2LjY1NiAyNjAuNDkyIDI5Ni4yNTYgMjYwLjQ5MiAyOTYuMjU2QzI3OC44OTIgMzE2LjI1NiAyNDQuNDkyIDI5OS40NTYgMjQ0LjQ5MiAyOTkuNDU2QzIxMC4wOTIgMjg2LjY1NiAxODYuMDkyIDMxMi4yNTYgMTgyLjg5MiAzMTMuMDU2QzE3OS42OTIgMzEzLjg1NiAxNzQuODkyIDMxNy4wNTYgMTc0LjA5MiAzMTAuNjU2QzE3My4yOTIgMzA0LjI1NiAxNjcuMDk1IDI4OS4yMzIgMTM0LjA5MiAzMTMuODU2QzEwMS43MjcgMzM3LjkxMSA5MS4wMTggMzIxLjM2NSA5MS4wMTggMzIxLjM2NUw4NC4yMTggMzE4LjA1NkM3MS40MTggMjk0Ljg1NiA4MC4zNDYgMzUwLjE0NyA4MC4zNDYgMzUwLjE0N0M4OS4xNDYgMzg0LjU0NyAyMjUuMjkyIDMzMy44NTYgMjI1LjI5MiAzMzMuODU2QzIyNS4yOTIgMzMzLjg1NiAzOTQuMDkzIDMwMy40NTYgNDA1LjI5MyAyOTkuNDU2QzQxNi40OTMgMjk1LjQ1NiA1MDIuOTY1IDMwMS4xMjggNTAyLjk2NSAzMDEuMTI4TDQ5OC4wOTMgMjc5LjIzN0M0MzMuMjkyIDIzMi44MzcgNDIyLjA5MyAyNjEuODU2IDQwOC40OTMgMjU3Ljg1NkMzOTQuODkzIDI1My44NTUgMzk3LjI5MyAyNjMuNDU2IDM5NC4wOTMgMjY0LjI1NkMzOTAuODkyIDI2NS4wNTYgMzUxLjY5MiAyNDAuMjU1IDM0NS4yOTIgMjQxLjA1NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNODQuMiAzMTkuNjAxQzcxLjQgMjk3LjYgODEgMzUzLjIwMSA4MSAzNTMuMjAxQzg5LjggMzg3LjYwMSAyMjYuNiAzMzUuNjAxIDIyNi42IDMzNS42MDFDMjI2LjYgMzM1LjYwMSAzOTUuNDAxIDMwNS4yIDQwNi42MDEgMzAxLjJDNDE3LjgwMSAyOTcuMiA1MDMuNDAxIDMwMi44IDUwMy40MDEgMzAyLjhMNDk4LjYwMSAyODAuNEM0MzMuODAxIDIzNCA0MjMuNDAxIDI2My42IDQwOS44MDEgMjU5LjZDMzk2LjIwMSAyNTUuNiAzOTguNjAxIDI2NS4yIDM5NS40MDEgMjY2QzM5Mi4yMDEgMjY2LjggMzUzLjAwMSAyNDIgMzQ2LjYwMSAyNDIuOEMzNDAuMjAxIDI0My42IDMxNC45ODEgMjE5Ljc5MyAzMjkuODAxIDI1MS42QzM1Mi4wMjggMjk5LjMwNyAyNjkuMDQxIDI4OS4yMjcgMjU0LjYgMjc5LjZDMjM3LjggMjY4LjQgMjYxLjggMjk4IDI2MS44IDI5OEMyODAuMiAzMTguMDAxIDI0NS44IDMwMS4yIDI0NS44IDMwMS4yQzIxMS40IDI4OC40IDE4Ny40IDMxNC4wMDEgMTg0LjIgMzE0LjgwMUMxODEgMzE1LjYwMSAxNzYuMiAzMTguODAxIDE3NS40IDMxMi40MDFDMTc0LjYgMzA2IDE2OC41MzUgMjkxLjE0NCAxMzUuNCAzMTUuNjAxQzEwMS44IDM0MC40MDEgOTEuNCAzMjQuNDAxIDkxLjQgMzI0LjQwMUw4NC4yIDMxOS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEyNS44IDM0OS42MDFDMTI1LjggMzQ5LjYwMSAxMTguNiAzNjEuMjAxIDEzOS40IDM3NC40MDFDMTM5LjQgMzc0LjQwMSAxNDAuOCAzNzUuODAxIDEyMi44IDM3MS42MDFDMTIyLjggMzcxLjYwMSAxMTYuNiAzNjkuNjAxIDExNSAzNTkuMjAxQzExNSAzNTkuMjAxIDExMC4yIDM1NC44MDEgMTA1LjQgMzQ5LjIwMUMxMDAuNiAzNDMuNjAxIDEyNS44IDM0OS42MDEgMTI1LjggMzQ5LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjY1LjggMzAyQzI2NS44IDMwMiAyODMuNDk4IDMyOC44MjEgMjgyLjkgMzMzLjYwMUMyODEuNiAzNDQuMDAxIDI4MS40IDM1My42MDEgMjg0LjYgMzU3LjYwMUMyODcuODAxIDM2MS42MDEgMjk2LjYwMSAzOTQuODAxIDI5Ni42MDEgMzk0LjgwMUMyOTYuNjAxIDM5NC44MDEgMjk2LjIwMSAzOTYuMDAxIDMwOC42MDEgMzU4LjAwMUMzMDguNjAxIDM1OC4wMDEgMzIwLjIwMSAzNDIuMDAxIDMwMC4yMDEgMzIzLjYwMUMzMDAuMjAxIDMyMy42MDEgMjY1IDI5NC44IDI2NS44IDMwMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTQ1LjggMzc2LjQwMUMxNDUuOCAzNzYuNDAxIDE1NyAzODMuNjAxIDE0Mi42IDQxNC44MDFMMTQ5IDQxMi40MDFDMTQ5IDQxMi40MDEgMTQ4LjIgNDIzLjYwMSAxNDUgNDI2LjAwMUwxNTIuMiA0MjIuODAxQzE1Mi4yIDQyMi44MDEgMTU3IDQzMC44MDEgMTUzIDQzNS42MDFDMTUzIDQzNS42MDEgMTY5LjggNDQzLjYwMSAxNjkgNDUwLjAwMUMxNjkgNDUwLjAwMSAxNzUuNCA0NDIuMDAxIDE3MS40IDQzNS42MDFDMTY3LjQgNDI5LjIwMSAxNjAuMiA0MzMuMjAxIDE2MSA0MTQuODAxTDE1Mi4yIDQxOC4wMDFDMTUyLjIgNDE4LjAwMSAxNTcuOCA0MDkuMjAxIDE1Ny44IDQwMi44MDFMMTQ5LjggNDA1LjIwMUMxNDkuOCA0MDUuMjAxIDE2NS4yNjkgMzc4LjYyMyAxNTQuNiAzNzcuMjAxQzE0OC42IDM3Ni40MDEgMTQ1LjggMzc2LjQwMSAxNDUuOCAzNzYuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNzguMiAzOTMuMjAxQzE3OC4yIDM5My4yMDEgMTgxIDM4OC44MDEgMTc4LjIgMzg5LjYwMUMxNzUuNCAzOTAuNDAxIDE0NC4yIDQwNS4yMDEgMTM4LjIgNDE0LjgwMUMxMzguMiA0MTQuODAxIDE3Mi42IDM5MC40MDEgMTc4LjIgMzkzLjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTg4LjYgNDAxLjIwMUMxODguNiA0MDEuMjAxIDE5MS40IDM5Ni44MDEgMTg4LjYgMzk3LjYwMUMxODUuOCAzOTguNDAxIDE1NC42IDQxMy4yMDEgMTQ4LjYgNDIyLjgwMUMxNDguNiA0MjIuODAxIDE4MyAzOTguNDAxIDE4OC42IDQwMS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTIwMS44IDM4Ni4wMDFDMjAxLjggMzg2LjAwMSAyMDQuNiAzODEuNjAxIDIwMS44IDM4Mi40MDFDMTk5IDM4My4yMDEgMTY3LjggMzk4LjAwMSAxNjEuOCA0MDcuNjAxQzE2MS44IDQwNy42MDEgMTk2LjIgMzgzLjIwMSAyMDEuOCAzODYuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNzguNiA0MjkuNjAxQzE3OC42IDQyOS42MDEgMTc4LjYgNDIzLjYwMSAxNzUuOCA0MjQuNDAxQzE3MyA0MjUuMjAxIDEzNyA0NDIuODAxIDEzMSA0NTIuNDAxQzEzMSA0NTIuNDAxIDE3MyA0MjYuODAxIDE3OC42IDQyOS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3OS44IDQxOC44MDFDMTc5LjggNDE4LjgwMSAxODEgNDE0LjAwMSAxNzguMiA0MTQuODAxQzE3Ni4yIDQxNC44MDEgMTQ5LjggNDI2LjQwMSAxNDMuOCA0MzYuMDAxQzE0My44IDQzNi4wMDEgMTczLjQgNDE0LjQwMSAxNzkuOCA0MTguODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNjUuNCA0NjYuNDAxTDE1NS40IDQ3NC4wMDFDMTU1LjQgNDc0LjAwMSAxNjUuOCA0NjYuNDAxIDE2OS40IDQ2Ny42MDFDMTY5LjQgNDY3LjYwMSAxNjIuNiA0NzguODAxIDE2MS44IDQ4NC4wMDFDMTYxLjggNDg0LjAwMSAxNzIuMiA0NzEuMjAxIDE3Ny44IDQ3MS42MDFDMTc3LjggNDcxLjYwMSAxODUuNCA0NzIuMDAxIDE4NS40IDQ4Mi44MDFDMTg1LjQgNDgyLjgwMSAxOTEgNDcyLjQwMSAxOTQuMiA0NzIuODAxQzE5NC4yIDQ3Mi44MDEgMTk1LjQgNDc5LjIwMSAxOTQuMiA0ODYuMDAxQzE5NC4yIDQ4Ni4wMDEgMTk4LjIgNDc4LjQwMSAyMDIuMiA0ODAuMDAxQzIwMi4yIDQ4MC4wMDEgMjA4LjYgNDc4LjAwMSAyMDcuOCA0ODkuNjAxQzIwNy44IDQ4OS42MDEgMjA3LjggNTAwLjAwMSAyMDcgNTAyLjgwMUMyMDcgNTAyLjgwMSAyMTIuNiA0NzYuNDAxIDIxNSA0NzYuMDAxQzIxNSA0NzYuMDAxIDIyMyA0NzQuODAxIDIyNy44IDQ4My42MDFDMjI3LjggNDgzLjYwMSAyMjMuOCA0NzYuMDAxIDIyOC42IDQ3OC4wMDFDMjI4LjYgNDc4LjAwMSAyMzkuNCA0NzkuNjAxIDI0Mi42IDQ4Ni40MDFDMjQyLjYgNDg2LjQwMSAyMzUuOCA0NzQuNDAxIDI0MS40IDQ3Ny42MDFDMjQxLjQgNDc3LjYwMSAyNDguMiA0NzcuNjAxIDI0OS40IDQ4NC4wMDFDMjQ5LjQgNDg0LjAwMSAyNTcuOCA1MDUuMjAxIDI1OS44IDUwNi44MDFDMjU5LjggNTA2LjgwMSAyNTIuMiA0ODUuMjAxIDI1My44IDQ4NS4yMDFDMjUzLjggNDg1LjIwMSAyNTEuOCA0NzMuMjAxIDI1NyA0ODguMDAxQzI1NyA0ODguMDAxIDI1My44IDQ3NC4wMDEgMjU5LjQgNDc0LjgwMUMyNjUgNDc1LjYwMSAyNjkuNCA0ODUuNjAxIDI3Ny44IDQ4My4yMDFDMjc3LjggNDgzLjIwMSAyODcuNDAxIDQ4OC44MDEgMjg5LjQwMSA0MTkuNjAxTDE2NS40IDQ2Ni40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE3MC4yIDM3My42MDFDMTcwLjIgMzczLjYwMSAxODUgMzY3LjYwMSAyMjUgMzczLjYwMUMyMjUgMzczLjYwMSAyMzIuMiAzNzQuMDAxIDIzOSAzNjUuMjAxQzI0NS44IDM1Ni40MDEgMjcyLjYgMzQ5LjIwMSAyNzkgMzUxLjIwMUwyODguNjAxIDM1Ny42MDFMMjg5LjQwMSAzNTguODAxQzI4OS40MDEgMzU4LjgwMSAzMDEuODAxIDM2OS4yMDEgMzAyLjIwMSAzNzYuODAxQzMwMi42MDEgMzg0LjQwMSAyODcuODAxIDQzMi40MDEgMjc4LjIgNDQ4LjQwMUMyNjguNiA0NjQuNDAxIDI1OSA0NzYuODAxIDIzOS44IDQ3NC40MDFDMjM5LjggNDc0LjQwMSAyMTkgNDcwLjQwMSAxOTMuNCA0NzQuNDAxQzE5My40IDQ3NC40MDEgMTY0LjIgNDcyLjgwMSAxNjEuNCA0NjQuODAxQzE1OC42IDQ1Ni44MDEgMTcyLjYgNDQxLjYwMSAxNzIuNiA0NDEuNjAxQzE3Mi42IDQ0MS42MDEgMTc3IDQzMy4yMDEgMTc1LjggNDE4LjgwMUMxNzQuNiA0MDQuNDAxIDE3NSAzNzYuNDAxIDE3MC4yIDM3My42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTU2NjhjIj4KKyAgPHBhdGggZD0iTTE5Mi4yIDM3NS42MDFDMjAwLjYgMzk0LjAwMSAxNzEgNDU5LjIwMSAxNzEgNDU5LjIwMUMxNjkgNDYwLjgwMSAxODMuNjYgNDY2Ljg0NiAxOTMuOCA0NjQuNDAxQzIwNC43NDYgNDYxLjc2MyAyNDUgNDY2LjAwMSAyNDUgNDY2LjAwMUMyNjguNiA0NTAuNDAxIDI4MS40IDQwNi4wMDEgMjgxLjQgNDA2LjAwMUMyODEuNCA0MDYuMDAxIDI5MS44MDEgMzgyLjAwMSAyNzQuMiAzNzguODAxQzI1Ni42IDM3NS42MDEgMTkyLjIgMzc1LjYwMSAxOTIuMiAzNzUuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2IyMzI1OSI+CisgIDxwYXRoIGQ9Ik0xOTAuMTY5IDQwNi40OTdDMTkzLjQ5NSAzOTMuNzA3IDE5NS4wNzkgMzgxLjkwNiAxOTIuMiAzNzUuNjAxQzE5Mi4yIDM3NS42MDEgMjU0LjYgMzgyLjAwMSAyNjUuOCAzNjEuMjAxQzI3MC4wNDEgMzUzLjMyNiAyODQuODAxIDM4NC4wMDEgMjg0LjQgMzkzLjYwMUMyODQuNCAzOTMuNjAxIDIyMS40IDQwOC4wMDEgMjA2LjYgMzk2LjgwMUwxOTAuMTY5IDQwNi40OTd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjYTUyNjRjIj4KKyAgPHBhdGggZD0iTTE5NC42IDQyMi44MDFDMTk0LjYgNDIyLjgwMSAxOTYuNiA0MzAuMDAxIDE5NC4yIDQzNC4wMDFDMTk0LjIgNDM0LjAwMSAxOTIuNiA0MzQuODAxIDE5MS40IDQzNS4yMDFDMTkxLjQgNDM1LjIwMSAxOTIuNiA0MzguODAxIDE5OC42IDQ0MC40MDFDMTk4LjYgNDQwLjQwMSAyMDAuNiA0NDQuODAxIDIwMyA0NDUuMjAxQzIwNS40IDQ0NS42MDEgMjEwLjIgNDUxLjIwMSAyMTQuMiA0NTAuMDAxQzIxOC4yIDQ0OC44MDEgMjI5LjQgNDQ0LjgwMSAyMjkuNCA0NDQuODAxQzIyOS40IDQ0NC44MDEgMjM1IDQ0MS42MDEgMjQzLjggNDQ1LjIwMUMyNDMuOCA0NDUuMjAxIDI0Ni4xNzUgNDQ0LjM5OSAyNDYuNiA0NDAuNDAxQzI0Ny4xIDQzNS43MDEgMjUwLjIgNDMyLjAwMSAyNTIuMiA0MzAuMDAxQzI1NC4yIDQyOC4wMDEgMjYzLjggNDE1LjIwMSAyNjIuNiA0MTQuODAxQzI2MS40IDQxNC40MDEgMTk0LjYgNDIyLjgwMSAxOTQuNiA0MjIuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmNzI3Zjsgc3Ryb2tlOiMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTkwLjIgMzc0LjQwMUMxOTAuMiAzNzQuNDAxIDE4Ny40IDM5Ni44MDEgMTkwLjYgNDA1LjIwMUMxOTMuOCA0MTMuNjAxIDE5MyA0MTUuNjAxIDE5Mi4yIDQxOS42MDFDMTkxLjQgNDIzLjYwMSAxOTUuOCA0MzMuNjAxIDIwMS40IDQzOS42MDFMMjEzLjQgNDQxLjIwMUMyMTMuNCA0NDEuMjAxIDIyOC42IDQzNy42MDEgMjM3LjggNDQwLjQwMUMyMzcuOCA0NDAuNDAxIDI0Ni43OTQgNDQxLjc0NCAyNTAuMiA0MjYuODAxQzI1MC4yIDQyNi44MDEgMjU1IDQyMC40MDEgMjYyLjIgNDE3LjYwMUMyNjkuNCA0MTQuODAxIDI3Ni42IDM3My4yMDEgMjcyLjYgMzY1LjIwMUMyNjguNiAzNTcuMjAxIDI1NC4yIDM1Mi44MDEgMjM4LjIgMzY4LjQwMUMyMjIuMiAzODQuMDAxIDIyMC4yIDM2Ny4yMDEgMTkwLjIgMzc0LjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTE5MS44IDQ0OS4yMDFDMTkxLjggNDQ5LjIwMSAxOTEgNDQ3LjIwMSAxODYuNiA0NDYuODAxQzE4Ni42IDQ0Ni44MDEgMTY0LjIgNDQzLjIwMSAxNTUuOCA0MzAuODAxQzE1NS44IDQzMC44MDEgMTQ5IDQyNS4yMDEgMTUzLjQgNDM2LjgwMUMxNTMuNCA0MzYuODAxIDE2My44IDQ1Ny4yMDEgMTcwLjYgNDYwLjAwMUMxNzAuNiA0NjAuMDAxIDE4NyA0NjQuMDAxIDE5MS44IDQ0OS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2MzZjRjIj4KKyAgPHBhdGggZD0iTTI3MS43NDIgMzg1LjIyOUMyNzIuNDAxIDM3Ny4zMjMgMjc0LjM1NCAzNjguNzA5IDI3Mi42IDM2NS4yMDFDMjY2LjE1NCAzNTIuMzA3IDI0OS4xODEgMzU3LjY5NSAyMzguMiAzNjguNDAxQzIyMi4yIDM4NC4wMDEgMjIwLjIgMzY3LjIwMSAxOTAuMiAzNzQuNDAxQzE5MC4yIDM3NC40MDEgMTg4LjQ1NSAzODguMzY0IDE4OS4yOTUgMzk4LjM3NkMxODkuMjk1IDM5OC4zNzYgMjI2LjYgMzg2LjgwMSAyMjcuNCAzOTIuNDAxQzIyNy40IDM5Mi40MDEgMjI5IDM4OS4yMDEgMjM4LjIgMzg5LjIwMUMyNDcuNCAzODkuMjAxIDI3MC4xNDIgMzg4LjAyOSAyNzEuNzQyIDM4NS4yMjl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6I2E1MTkyNjsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjI4LjYgMzc1LjIwMUMyMjguNiAzNzUuMjAxIDIzMy40IDM4MC4wMDEgMjI5LjggMzg5LjYwMUMyMjkuOCAzODkuNjAxIDIxNS40IDQwNS42MDEgMjE3LjQgNDE5LjYwMSIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTgwLjYgNDYwLjAwMUMxODAuNiA0NjAuMDAxIDE3Ni4yIDQ0Ny4yMDEgMTg1IDQ1NC4wMDFDMTg1IDQ1NC4wMDEgMTg5LjggNDU2LjAwMSAxODguNiA0NTcuNjAxQzE4Ny40IDQ1OS4yMDEgMTgxLjggNDYzLjIwMSAxODAuNiA0NjAuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTg1LjY0IDQ2MS4yMDFDMTg1LjY0IDQ2MS4yMDEgMTgyLjEyIDQ1MC45NjEgMTg5LjE2IDQ1Ni40MDFDMTg5LjE2IDQ1Ni40MDEgMTkzLjU4MSA0NTguODQ5IDE5Mi4wNCA0NTkuMjgxQzE4Ny40OCA0NjAuNTYxIDE5Mi4wNCA0NjMuMTIxIDE4NS42NCA0NjEuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTkwLjQ0IDQ2MS4yMDFDMTkwLjQ0IDQ2MS4yMDEgMTg2LjkyIDQ1MC45NjEgMTkzLjk2IDQ1Ni40MDFDMTkzLjk2IDQ1Ni40MDEgMTk4LjMzNSA0NTguNzExIDE5Ni44NCA0NTkuMjgxQzE5My40OCA0NjAuNTYxIDE5Ni44NCA0NjMuMTIxIDE5MC40NCA0NjEuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTk3LjA0IDQ2MS40MDFDMTk3LjA0IDQ2MS40MDEgMTkzLjUyIDQ1MS4xNjEgMjAwLjU2IDQ1Ni42MDFDMjAwLjU2IDQ1Ni42MDEgMjA0Ljk0MyA0NTguOTMzIDIwMy40NDEgNDU5LjQ4MUMyMDAuNDggNDYwLjU2MSAyMDMuNDQxIDQ2My4zMjEgMTk3LjA0IDQ2MS40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0yMDMuNTIgNDYxLjMyMUMyMDMuNTIgNDYxLjMyMSAyMDAgNDUxLjA4MSAyMDcuMDQxIDQ1Ni41MjFDMjA3LjA0MSA0NTYuNTIxIDIxMC44ODEgNDU4LjEyMSAyMDkuOTIxIDQ1OS40MDFDMjA4Ljk2MSA0NjAuNjgxIDIwOS45MjEgNDYzLjI0MSAyMDMuNTIgNDYxLjMyMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTIxMC4yIDQ2Mi4wMDFDMjEwLjIgNDYyLjAwMSAyMDUuNCA0NDkuNjAxIDIxNC42IDQ1Ni4wMDFDMjE0LjYgNDU2LjAwMSAyMTkuNCA0NTguMDAxIDIxOC4yIDQ1OS42MDFDMjE3IDQ2MS4yMDEgMjE4LjIgNDY0LjQwMSAyMTAuMiA0NjIuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiNhNTI2NGM7IHN0cm9rZS13aWR0aDoyIj4KKyAgPHBhdGggZD0iTTE4MS44IDQ0NC44MDFDMTgxLjggNDQ0LjgwMSAxOTUgNDQyLjAwMSAyMDEgNDQ1LjIwMUMyMDEgNDQ1LjIwMSAyMDcgNDQ2LjQwMSAyMDguMiA0NDYuMDAxQzIwOS40IDQ0NS42MDEgMjEyLjYgNDQ1LjIwMSAyMTIuNiA0NDUuMjAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjE1LjggNDUzLjYwMUMyMTUuOCA0NTMuNjAxIDIyNy44IDQ0MC4wMDEgMjM5LjggNDQ0LjQwMUMyNDYuODE2IDQ0Ni45NzQgMjQ1LjggNDQzLjYwMSAyNDYuNiA0NDAuODAxQzI0Ny40IDQzOC4wMDEgMjQ3LjYgNDMzLjgwMSAyNTIuNiA0MzAuODAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0yMzMgNDM3LjYwMUMyMzMgNDM3LjYwMSAyMjkgNDI2LjgwMSAyMjYuMiA0MzkuNjAxQzIyMy40IDQ1Mi40MDEgMjIwLjIgNDU2LjAwMSAyMTguNiA0NTguODAxQzIxOC42IDQ1OC44MDEgMjE4LjYgNDY0LjAwMSAyMjcgNDYzLjYwMUMyMjcgNDYzLjYwMSAyMzcuOCA0NjMuMjAxIDIzOC4yIDQ2MC40MDFDMjM4LjYgNDU3LjYwMSAyMzcgNDQ2LjAwMSAyMzMgNDM3LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojYTUyNjRjOyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yNDcgNDQ0LjgwMUMyNDcgNDQ0LjgwMSAyNTAuNiA0NDIuNDAxIDI1MyA0NDMuNjAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjUzLjUgNDI4LjQwMUMyNTMuNSA0MjguNDAxIDI1Ni40IDQyMy41MDEgMjYxLjIgNDIyLjcwMSIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2IyYjJiMiI+CisgIDxwYXRoIGQ9Ik0xNzQuMiA0NjUuMjAxQzE3NC4yIDQ2NS4yMDEgMTkyLjIgNDY4LjQwMSAxOTYuNiA0NjYuODAxQzE5Ni42IDQ2Ni44MDEgMjA1LjQgNDY2LjgwMSAxOTcgNDY4LjgwMUMxOTcgNDY4LjgwMSAxODQuMiA0NjguODAxIDE3Ni4yIDQ2Ny42MDFDMTc2LjIgNDY3LjYwMSAxNjQuNiA0NjIuMDAxIDE3NC4yIDQ2NS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xODguMiAzNzIuMDAxQzE4OC4yIDM3Mi4wMDEgMjA1LjggMzcyLjAwMSAyMDcuOCAzNzIuODAxQzIwNy44IDM3Mi44MDEgMjE1IDQwMy42MDEgMjExLjQgNDExLjIwMUMyMTEuNCA0MTEuMjAxIDIxMC4yIDQxNC4wMDEgMjA3LjQgNDA4LjQwMUMyMDcuNCA0MDguNDAxIDE4OSAzNzUuNjAxIDE4NS44IDM3My42MDFDMTgyLjYgMzcxLjYwMSAxODcgMzcyLjAwMSAxODguMiAzNzIuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTExLjEgMzY5LjMwMUMxMTEuMSAzNjkuMzAxIDEyMCAzNzEuMDAxIDEzMi42IDM3My42MDFDMTMyLjYgMzczLjYwMSAxMzcuNCAzOTYuMDAxIDE0MC42IDQwMC44MDFDMTQzLjggNDA1LjYwMSAxNDAuMiA0MDUuNjAxIDEzNi42IDQwMi44MDFDMTMzIDQwMC4wMDEgMTE4LjIgMzg2LjAwMSAxMTYuMiAzODEuNjAxQzExNC4yIDM3Ny4yMDEgMTExLjEgMzY5LjMwMSAxMTEuMSAzNjkuMzAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTMyLjk2MSAzNzMuODE4QzEzMi45NjEgMzczLjgxOCAxMzguNzYxIDM3NS4zNjYgMTM5Ljc3IDM3Ny41ODFDMTQwLjc3OCAzNzkuNzk1IDEzOC41NjggMzgzLjA5MiAxMzguNTY4IDM4My4wOTJDMTM4LjU2OCAzODMuMDkyIDEzNy41NjggMzg2LjM5NyAxMzYuMzY2IDM4NC4yMzVDMTM1LjE2NCAzODIuMDcyIDEzMi4yOTIgMzc0LjQxMiAxMzIuOTYxIDM3My44MTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEzMyAzNzMuNjAxQzEzMyAzNzMuNjAxIDEzNi42IDM3OC44MDEgMTQwLjIgMzc4LjgwMUMxNDMuOCAzNzguODAxIDE0NC4xODIgMzc4LjM4OCAxNDcgMzc5LjAwMUMxNTEuNiAzODAuMDAxIDE1MS4yIDM3OC4wMDEgMTU3LjggMzc5LjIwMUMxNjAuNDQgMzc5LjY4MSAxNjMgMzc4LjgwMSAxNjUuOCAzODAuMDAxQzE2OC42IDM4MS4yMDEgMTcxLjggMzgwLjQwMSAxNzMgMzc4LjQwMUMxNzQuMiAzNzYuNDAxIDE3OSAzNzIuMjAxIDE3OSAzNzIuMjAxQzE3OSAzNzIuMjAxIDE2Ni4yIDM3NC4wMDEgMTYzLjQgMzc0LjgwMUMxNjMuNCAzNzQuODAxIDE0MSAzNzYuMDAxIDEzMyAzNzMuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTc3LjYgMzczLjgwMUMxNzcuNiAzNzMuODAxIDE3MS4xNSAzNzcuMzAxIDE3MC43NSAzNzkuNzAxQzE3MC4zNSAzODIuMTAxIDE3NiAzODUuODAxIDE3NiAzODUuODAxQzE3NiAzODUuODAxIDE3OC43NSAzOTAuNDAxIDE3OS4zNSAzODguMDAxQzE3OS45NSAzODUuNjAxIDE3OC40IDM3NC4yMDEgMTc3LjYgMzczLjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTE0MC4xMTUgMzc5LjI2NUMxNDAuMTE1IDM3OS4yNjUgMTQ3LjEyMiAzOTAuNDUzIDE0Ny4zMzkgMzc5LjI0MkMxNDcuMzM5IDM3OS4yNDIgMTQ3Ljg5NiAzNzcuOTg0IDE0Ni4xMzYgMzc3Ljk2MkMxNDAuMDYxIDM3Ny44ODYgMTQxLjU4MiAzNzMuNzg0IDE0MC4xMTUgMzc5LjI2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTE0Ny4yOTMgMzc5LjUxNEMxNDcuMjkzIDM3OS41MTQgMTU1LjIxNCAzOTAuNzAxIDE1NC41NzggMzc5LjQyMUMxNTQuNTc4IDM3OS40MjEgMTU0LjU4NSAzNzkuMDg5IDE1Mi44MzIgMzc4LjkzNkMxNDguMDg1IDM3OC41MjIgMTQ4LjQzIDM3NC4wMDQgMTQ3LjI5MyAzNzkuNTE0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTU0LjUwNiAzNzkuNTIyQzE1NC41MDYgMzc5LjUyMiAxNjIuNDY2IDM5MC4xNSAxNjEuNzk3IDM4MC40ODRDMTYxLjc5NyAzODAuNDg0IDE2MS45MTYgMzc5LjI1MSAxNjAuMjYyIDM3OC45NUMxNTYuMzcgMzc4LjI0NCAxNTYuMTU5IDM3NC45OTUgMTU0LjUwNiAzNzkuNTIyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTYxLjM4MiAzNzkuNjAyQzE2MS4zODIgMzc5LjYwMiAxNjkuMjgyIDM5MS4xNjMgMTY5LjYzIDM4MS4zODJDMTY5LjYzIDM4MS4zODIgMTcxLjI3NCAzODAuMDA0IDE2OS41MjggMzc5Ljc4MkMxNjMuNzEgMzc5LjA0MiAxNjQuNTA4IDM3NC41ODggMTYxLjM4MiAzNzkuNjAyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2U1ZTViMiI+CisgIDxwYXRoIGQ9Ik0xMjUuMjA4IDM4My4xMzJMMTE3LjU1IDM4MS42MDFDMTE0Ljk1IDM3Ni42MDEgMTEyLjg1IDM3MC40NTEgMTEyLjg1IDM3MC40NTFDMTEyLjg1IDM3MC40NTEgMTE5LjIgMzcxLjQ1MSAxMzEuNyAzNzQuMjUxQzEzMS43IDM3NC4yNTEgMTMyLjU3NiAzNzcuNTY5IDEzNC4wNDggMzgzLjM2NEwxMjUuMjA4IDM4My4xMzJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTVlNWIyIj4KKyAgPHBhdGggZD0iTTE5MC4yNzYgMzc4LjQ3QzE4OC42MSAzNzUuOTY0IDE4Ny4yOTMgMzc0LjIwNiAxODYuNjQzIDM3My44QzE4My42MyAzNzEuOTE3IDE4Ny43NzMgMzcyLjI5NCAxODguOTAyIDM3Mi4yOTRDMTg4LjkwMiAzNzIuMjk0IDIwNS40NzMgMzcyLjI5NCAyMDcuMzU2IDM3My4wNDdDMjA3LjM1NiAzNzMuMDQ3IDIwNy44OCAzNzUuMjg5IDIwOC41NjQgMzc4LjY4QzIwOC41NjQgMzc4LjY4IDE5OC40NzYgMzc2LjY3IDE5MC4yNzYgMzc4LjQ3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yNDMuODggMjQwLjMyMUMyNzEuNjAxIDI0NC4yODEgMjk3LjEyMSAyMDguNjQxIDI5OC44ODEgMTk4Ljk2QzMwMC42NDEgMTg5LjI4IDI5MC41MjEgMTc3LjQgMjkwLjUyMSAxNzcuNEMyOTEuODQxIDE3NC4zMiAyODcuMDAxIDE2MC4yNCAyODEuNzIxIDE1MUMyNzYuNDQxIDE0MS43NiAyNjAuNTQgMTQyLjczNCAyNDMgMTQxLjc2QzIyNy4xNiAxNDAuODggMjA4LjY4IDE2NC4yIDIwNy4zNiAxNjUuOTZDMjA2LjA0IDE2Ny43MiAyMTIuMiAyMDYuMDAxIDIxMy41MiAyMTEuNzIxQzIxNC44NCAyMTcuNDQxIDIxMi4yIDI0My44NDEgMjEyLjIgMjQzLjg0MUMyNDYuNDQgMjM0Ljc0MSAyMTYuMTYgMjM2LjM2MSAyNDMuODggMjQwLjMyMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlYThlNTEiPgorICA8cGF0aCBkPSJNMjA4LjA4OCAxNjYuNjA4QzIwNi43OTIgMTY4LjMzNiAyMTIuODQgMjA1LjkyMSAyMTQuMTM2IDIxMS41MzdDMjE1LjQzMiAyMTcuMTUzIDIxMi44NCAyNDMuMDczIDIxMi44NCAyNDMuMDczQzI0NS41MTIgMjM0LjE5MyAyMTYuNzI4IDIzNS43MjkgMjQzLjk0NCAyMzkuNjE3QzI3MS4xNjEgMjQzLjUwNSAyOTYuMjE3IDIwOC41MTMgMjk3Ljk0NSAxOTkuMDA4QzI5OS42NzMgMTg5LjUwNCAyODkuNzM3IDE3Ny44NCAyODkuNzM3IDE3Ny44NEMyOTEuMDMzIDE3NC44MTYgMjg2LjI4MSAxNjAuOTkyIDI4MS4wOTcgMTUxLjkyQzI3NS45MTMgMTQyLjg0OCAyNjAuMzAyIDE0My44MDUgMjQzLjA4IDE0Mi44NDhDMjI3LjUyOCAxNDEuOTg0IDIwOS4zODQgMTY0Ljg4IDIwOC4wODggMTY2LjYwOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlZmFhN2MiPgorICA8cGF0aCBkPSJNMjA4LjgxNiAxNjcuMjU2QzIwNy41NDQgMTY4Ljk1MiAyMTMuNDggMjA1Ljg0MSAyMTQuNzUyIDIxMS4zNTNDMjE2LjAyNCAyMTYuODY1IDIxMy40OCAyNDIuMzA1IDIxMy40OCAyNDIuMzA1QzI0NC44ODQgMjMzLjE0NSAyMTcuMjk2IDIzNS4wOTcgMjQ0LjAwOCAyMzguOTEzQzI3MC43MjEgMjQyLjcyOSAyOTUuMzEzIDIwOC4zODUgMjk3LjAwOSAxOTkuMDU2QzI5OC43MDUgMTg5LjcyOCAyODguOTUzIDE3OC4yOCAyODguOTUzIDE3OC4yOEMyOTAuMjI1IDE3NS4zMTIgMjg1LjU2MSAxNjEuNzQ0IDI4MC40NzMgMTUyLjg0QzI3NS4zODUgMTQzLjkzNiAyNjAuMDYzIDE0NC44NzUgMjQzLjE2IDE0My45MzZDMjI3Ljg5NiAxNDMuMDg4IDIxMC4wODggMTY1LjU2IDIwOC44MTYgMTY3LjI1NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmNGM2YTgiPgorICA8cGF0aCBkPSJNMjA5LjU0NCAxNjcuOTA0QzIwOC4yOTYgMTY5LjU2OCAyMTQuMTIgMjA1Ljc2MSAyMTUuMzY4IDIxMS4xNjlDMjE2LjYxNiAyMTYuNTc3IDIxNC4xMiAyNDEuNTM3IDIxNC4xMiAyNDEuNTM3QzI0My41NTYgMjMyLjQ5NyAyMTcuODY0IDIzNC40NjUgMjQ0LjA3MiAyMzguMjA5QzI3MC4yODEgMjQxLjk1MyAyOTQuNDA5IDIwOC4yNTcgMjk2LjA3MyAxOTkuMTA1QzI5Ny43MzcgMTg5Ljk1MiAyODguMTY5IDE3OC43MiAyODguMTY5IDE3OC43MkMyODkuNDE3IDE3NS44MDggMjg0Ljg0MSAxNjIuNDk2IDI3OS44NDkgMTUzLjc2QzI3NC44NTcgMTQ1LjAyNCAyNTkuODI0IDE0NS45NDUgMjQzLjI0IDE0NS4wMjRDMjI4LjI2NCAxNDQuMTkyIDIxMC43OTIgMTY2LjI0IDIwOS41NDQgMTY3LjkwNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmOWUyZDMiPgorICA8cGF0aCBkPSJNMjEwLjI3MiAxNjguNTUyQzIwOS4wNDggMTcwLjE4NCAyMTQuNzYgMjA1LjY4MSAyMTUuOTg0IDIxMC45ODVDMjE3LjIwOCAyMTYuMjg5IDIxNC43NiAyNDAuNzY5IDIxNC43NiAyNDAuNzY5QzI0Mi42MjggMjMxLjg0OSAyMTguNDMyIDIzMy44MzMgMjQ0LjEzNiAyMzcuNTA1QzI2OS44NDEgMjQxLjE3NyAyOTMuNTA1IDIwOC4xMjkgMjk1LjEzNyAxOTkuMTUyQzI5Ni43NjkgMTkwLjE3NiAyODcuMzg1IDE3OS4xNiAyODcuMzg1IDE3OS4xNkMyODguNjA5IDE3Ni4zMDQgMjg0LjEyMSAxNjMuMjQ4IDI3OS4yMjUgMTU0LjY4QzI3NC4zMjkgMTQ2LjExMiAyNTkuNTg1IDE0Ny4wMTUgMjQzLjMyIDE0Ni4xMTJDMjI4LjYzMiAxNDUuMjk2IDIxMS40OTYgMTY2LjkyIDIxMC4yNzIgMTY4LjU1MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMjQ0LjIgMjM2LjhDMjY5LjQgMjQwLjQgMjkyLjYwMSAyMDggMjk0LjIwMSAxOTkuMkMyOTUuODAxIDE5MC40IDI4Ni42MDEgMTc5LjYgMjg2LjYwMSAxNzkuNkMyODcuODAxIDE3Ni44IDI4My40IDE2NCAyNzguNiAxNTUuNkMyNzMuOCAxNDcuMiAyNTkuMzQ2IDE0OC4wODYgMjQzLjQgMTQ3LjJDMjI5IDE0Ni40IDIxMi4yIDE2Ny42IDIxMSAxNjkuMkMyMDkuOCAxNzAuOCAyMTUuNCAyMDUuNiAyMTYuNiAyMTAuOEMyMTcuOCAyMTYgMjE1LjQgMjQwIDIxNS40IDI0MEMyNDAuOSAyMzEuNCAyMTkgMjMzLjIgMjQ0LjIgMjM2Ljh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTI5MC42MDEgMjAyLjhDMjkwLjYwMSAyMDIuOCAyNjIuOCAyMTAuNCAyNTEuMiAyMDguOEMyNTEuMiAyMDguOCAyMzUuNCAyMDIuMiAyMjYuNiAyMjRDMjI2LjYgMjI0IDIyMyAyMzEuMiAyMjEgMjMzLjJDMjE5IDIzNS4yIDI5MC42MDEgMjAyLjggMjkwLjYwMSAyMDIuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjk0LjQwMSAyMDAuNkMyOTQuNDAxIDIwMC42IDI2NS40IDIxMi44IDI1NS40IDIxMi40QzI1NS40IDIxMi40IDIzOSAyMDcuOCAyMzAuNiAyMjIuNEMyMzAuNiAyMjIuNCAyMjIuMiAyMzEuNiAyMTkgMjMzLjJDMjE5IDIzMy4yIDIxOC42IDIzNC44IDIyNSAyMzAuOEwyMzUuNCAyMzZDMjM1LjQgMjM2IDI1MC4yIDI0NS42IDI1OS44IDIyOS42QzI1OS44IDIyOS42IDI2My44IDIxOC40IDI2My44IDIxNi40QzI2My44IDIxNC40IDI4NSAyMDguOCAyODYuNjAxIDIwOC40QzI4OC4yMDEgMjA4IDI5NC44MDEgMjAzLjggMjk0LjQwMSAyMDAuNnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OWNjMzIiPgorICA8cGF0aCBkPSJNMjQ3IDIzNi41MTRDMjQwLjEyOCAyMzYuNTE0IDIzMS43NTUgMjMyLjY0OSAyMzEuNzU1IDIyNi40QzIzMS43NTUgMjIwLjE1MiAyNDAuMTI4IDIxMy44ODcgMjQ3IDIxMy44ODdDMjUzLjg3NCAyMTMuODg3IDI1OS40NDYgMjE4Ljk1MiAyNTkuNDQ2IDIyNS4yQzI1OS40NDYgMjMxLjQ0OSAyNTMuODc0IDIzNi41MTQgMjQ3IDIzNi41MTR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjNjU5OTAwIj4KKyAgPHBhdGggZD0iTTI0My4zNzcgMjE5LjgzQzIzOC41MzEgMjIwLjU1MiAyMzMuNDQyIDIyMi4wNTUgMjMzLjUxNCAyMjEuODM5QzIzNS4wNTQgMjE3LjIyIDI0MS40MTUgMjEzLjg4NyAyNDcgMjEzLjg4N0MyNTEuMjk2IDIxMy44ODcgMjU1LjA4NCAyMTUuODY1IDI1Ny4zMiAyMTguODc1QzI1Ny4zMiAyMTguODc1IDI1Mi4wMDQgMjE4LjU0NSAyNDMuMzc3IDIxOS44M3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMjU1LjQgMjE5LjZDMjU1LjQgMjE5LjYgMjUxIDIxNi40IDI1MSAyMTguNkMyNTEgMjE4LjYgMjU0LjYgMjIzIDI1NS40IDIxOS42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNDUuNCAyMjcuNzI2QzI0Mi45MDEgMjI3LjcyNiAyNDAuODc1IDIyNS43IDI0MC44NzUgMjIzLjJDMjQwLjg3NSAyMjAuNzAxIDI0Mi45MDEgMjE4LjY3NSAyNDUuNCAyMTguNjc1QzI0Ny45IDIxOC42NzUgMjQ5LjkyNiAyMjAuNzAxIDI0OS45MjYgMjIzLjJDMjQ5LjkyNiAyMjUuNyAyNDcuOSAyMjcuNzI2IDI0NS40IDIyNy43MjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTE0MS40IDIxNC40QzE0MS40IDIxNC40IDEzOC4yIDE5My4yIDE0MC42IDE4OC44QzE0MC42IDE4OC44IDE1MS40IDE3OC44IDE1MSAxNzUuMkMxNTEgMTc1LjIgMTUwLjYgMTU3LjIgMTQ5LjQgMTU2LjRDMTQ4LjIgMTU1LjYgMTQwLjYgMTQ5LjYgMTM0LjYgMTU2QzEzNC42IDE1NiAxMjQuMiAxNzQgMTI1IDE4MC40TDEyNSAxODIuNEMxMjUgMTgyLjQgMTE3LjQgMTgyIDExNS44IDE4NEMxMTUuOCAxODQgMTE0LjYgMTg5LjIgMTEzLjQgMTg5LjZDMTEzLjQgMTg5LjYgMTEwLjYgMTkyIDExMi42IDE5NC44QzExMi42IDE5NC44IDExMC42IDE5Ny4yIDExMSAyMDEuMkwxMTguNiAyMDUuMkMxMTguNiAyMDUuMiAxMjAuNiAyMTkuNiAxMzEuNCAyMjQuOEMxMzYuMjM2IDIyNy4xMjkgMTM5LjQgMjIwLjQgMTQxLjQgMjE0LjR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTE0MC40IDIxMi41NkMxNDAuNCAyMTIuNTYgMTM3LjUyIDE5My40OCAxMzkuNjggMTg5LjUyQzEzOS42OCAxODkuNTIgMTQ5LjQgMTgwLjUyIDE0OS4wNCAxNzcuMjhDMTQ5LjA0IDE3Ny4yOCAxNDguNjggMTYxLjA4IDE0Ny42IDE2MC4zNkMxNDYuNTIgMTU5LjY0IDEzOS42OCAxNTQuMjQgMTM0LjI4IDE2MEMxMzQuMjggMTYwIDEyNC45MiAxNzYuMiAxMjUuNjQgMTgxLjk2TDEyNS42NCAxODMuNzZDMTI1LjY0IDE4My43NiAxMTguOCAxODMuNCAxMTcuMzYgMTg1LjJDMTE3LjM2IDE4NS4yIDExNi4yOCAxODkuODggMTE1LjIgMTkwLjI0QzExNS4yIDE5MC4yNCAxMTIuNjggMTkyLjQgMTE0LjQ4IDE5NC45MkMxMTQuNDggMTk0LjkyIDExMi42OCAxOTcuMDggMTEzLjA0IDIwMC42OEwxMTkuODggMjA0LjI4QzExOS44OCAyMDQuMjggMTIxLjY4IDIxNy4yNCAxMzEuNCAyMjEuOTJDMTM1Ljc1MiAyMjQuMDE1IDEzOC42IDIxNy45NiAxNDAuNCAyMTIuNTZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZWI5NTVjIj4KKyAgPHBhdGggZD0iTTE0OC45NSAxNTcuMzlDMTQ3Ljg2IDE1Ni41MyAxNDAuMzcgMTUwLjc2IDEzNC41MiAxNTdDMTM0LjUyIDE1NyAxMjQuMzggMTc0LjU1IDEyNS4xNiAxODAuNzlMMTI1LjE2IDE4Mi43NEMxMjUuMTYgMTgyLjc0IDExNy43NSAxODIuMzUgMTE2LjE5IDE4NC4zQzExNi4xOSAxODQuMyAxMTUuMDIgMTg5LjM3IDExMy44NSAxODkuNzZDMTEzLjg1IDE4OS43NiAxMTEuMTIgMTkyLjEgMTEzLjA3IDE5NC44M0MxMTMuMDcgMTk0LjgzIDExMS4xMiAxOTcuMTcgMTExLjUxIDIwMS4wN0wxMTguOTIgMjA0Ljk3QzExOC45MiAyMDQuOTcgMTIwLjg3IDIxOS4wMSAxMzEuNCAyMjQuMDhDMTM2LjExNCAyMjYuMzUgMTM5LjIgMjE5Ljc5IDE0MS4xNSAyMTMuOTRDMTQxLjE1IDIxMy45NCAxMzguMDMgMTkzLjI3IDE0MC4zNyAxODguOThDMTQwLjM3IDE4OC45OCAxNTAuOSAxNzkuMjMgMTUwLjUxIDE3NS43MkMxNTAuNTEgMTc1LjcyIDE1MC4xMiAxNTguMTcgMTQ4Ljk1IDE1Ny4zOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmMmI4OTIiPgorICA8cGF0aCBkPSJNMTQ4LjUgMTU4LjM4QzE0Ny41MiAxNTcuNDYgMTQwLjE0IDE1MS45MiAxMzQuNDQgMTU4QzEzNC40NCAxNTggMTI0LjU2IDE3NS4xIDEyNS4zMiAxODEuMThMMTI1LjMyIDE4My4wOEMxMjUuMzIgMTgzLjA4IDExOC4xIDE4Mi43IDExNi41OCAxODQuNkMxMTYuNTggMTg0LjYgMTE1LjQ0IDE4OS41NCAxMTQuMyAxODkuOTJDMTE0LjMgMTg5LjkyIDExMS42NCAxOTIuMiAxMTMuNTQgMTk0Ljg2QzExMy41NCAxOTQuODYgMTExLjY0IDE5Ny4xNCAxMTIuMDIgMjAwLjk0TDExOS4yNCAyMDQuNzRDMTE5LjI0IDIwNC43NCAxMjEuMTQgMjE4LjQyIDEzMS40IDIyMy4zNkMxMzUuOTk0IDIyNS41NzIgMTM5IDIxOS4xOCAxNDAuOSAyMTMuNDhDMTQwLjkgMjEzLjQ4IDEzNy44NiAxOTMuMzQgMTQwLjE0IDE4OS4xNkMxNDAuMTQgMTg5LjE2IDE1MC40IDE3OS42NiAxNTAuMDIgMTc2LjI0QzE1MC4wMiAxNzYuMjQgMTQ5LjY0IDE1OS4xNCAxNDguNSAxNTguMzh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZjhkY2M4Ij4KKyAgPHBhdGggZD0iTTE0OC4wNSAxNTkuMzdDMTQ3LjE4IDE1OC4zOSAxMzkuOTEgMTUzLjA4IDEzNC4zNiAxNTlDMTM0LjM2IDE1OSAxMjQuNzQgMTc1LjY1IDEyNS40OCAxODEuNTdMMTI1LjQ4IDE4My40MkMxMjUuNDggMTgzLjQyIDExOC40NSAxODMuMDUgMTE2Ljk3IDE4NC45QzExNi45NyAxODQuOSAxMTUuODYgMTg5LjcxIDExNC43NSAxOTAuMDhDMTE0Ljc1IDE5MC4wOCAxMTIuMTYgMTkyLjMgMTE0LjAxIDE5NC44OUMxMTQuMDEgMTk0Ljg5IDExMi4xNiAxOTcuMTEgMTEyLjUzIDIwMC44MUwxMTkuNTYgMjA0LjUxQzExOS41NiAyMDQuNTEgMTIxLjQxIDIxNy44MyAxMzEuNCAyMjIuNjRDMTM1Ljg3MyAyMjQuNzk0IDEzOC44IDIxOC41NyAxNDAuNjUgMjEzLjAyQzE0MC42NSAyMTMuMDIgMTM3LjY5IDE5My40MSAxMzkuOTEgMTg5LjM0QzEzOS45MSAxODkuMzQgMTQ5LjkgMTgwLjA5IDE0OS41MyAxNzYuNzZDMTQ5LjUzIDE3Ni43NiAxNDkuMTYgMTYwLjExIDE0OC4wNSAxNTkuMzd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTE0MC40IDIxMi40NkMxNDAuNCAyMTIuNDYgMTM3LjUyIDE5My40OCAxMzkuNjggMTg5LjUyQzEzOS42OCAxODkuNTIgMTQ5LjQgMTgwLjUyIDE0OS4wNCAxNzcuMjhDMTQ5LjA0IDE3Ny4yOCAxNDguNjggMTYxLjA4IDE0Ny42IDE2MC4zNkMxNDYuODQgMTU5LjMyIDEzOS42OCAxNTQuMjQgMTM0LjI4IDE2MEMxMzQuMjggMTYwIDEyNC45MiAxNzYuMiAxMjUuNjQgMTgxLjk2TDEyNS42NCAxODMuNzZDMTI1LjY0IDE4My43NiAxMTguOCAxODMuNCAxMTcuMzYgMTg1LjJDMTE3LjM2IDE4NS4yIDExNi4yOCAxODkuODggMTE1LjIgMTkwLjI0QzExNS4yIDE5MC4yNCAxMTIuNjggMTkyLjQgMTE0LjQ4IDE5NC45MkMxMTQuNDggMTk0LjkyIDExMi42OCAxOTcuMDggMTEzLjA0IDIwMC42OEwxMTkuODggMjA0LjI4QzExOS44OCAyMDQuMjggMTIxLjY4IDIxNy4yNCAxMzEuNCAyMjEuOTJDMTM1Ljc1MiAyMjQuMDE1IDEzOC42IDIxNy44NiAxNDAuNCAyMTIuNDZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTEzNy4zIDIwNi4yQzEzNy4zIDIwNi4yIDExNS43IDE5NiAxMTQuOCAxOTUuMkMxMTQuOCAxOTUuMiAxMjMuOSAyMDMuNCAxMjQuNyAyMDMuNEMxMjUuNSAyMDMuNCAxMzcuMyAyMDYuMiAxMzcuMyAyMDYuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTIwLjIgMjAwQzEyMC4yIDIwMCAxMzguNiAyMDMuNiAxMzguNiAyMDhDMTM4LjYgMjEwLjkxMiAxMzguMzU3IDIyNC4zMzEgMTMzIDIyMi44QzEyNC42IDIyMC40IDEyOC4yIDIwNiAxMjAuMiAyMDB6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjOTljYzMyIj4KKyAgPHBhdGggZD0iTTEyOC42IDIwMy44QzEyOC42IDIwMy44IDEzNy41NzggMjA1LjI3NCAxMzguNiAyMDhDMTM5LjIgMjA5LjYgMTM5Ljg2MyAyMTcuOTA4IDEzNC40IDIxOUMxMjkuODQ4IDIxOS45MTEgMTI3LjYxOCAyMDkuNjkgMTI4LjYgMjAzLjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIxNC41OTUgMjQ2LjM0OUMyMTQuMDk4IDI0NC42MDcgMjE1LjQwOSAyNDQuNzM4IDIxNy4yIDI0NC4yQzIxOS4yIDI0My42IDIzMS40IDIzOS44IDIzMi4yIDIzNy4yQzIzMyAyMzQuNiAyNDYuMiAyMzkgMjQ2LjIgMjM5QzI0OCAyMzkuOCAyNTIuNCAyNDIuNCAyNTIuNCAyNDIuNEMyNTcuMiAyNDMuNiAyNjMuOCAyNDQgMjYzLjggMjQ0QzI2Ni4yIDI0NSAyNjkuNiAyNDcuOCAyNjkuNiAyNDcuOEMyODQuMiAyNTggMjk2LjYwMSAyNTAuOCAyOTYuNjAxIDI1MC44QzMxNi42MDEgMjQ0LjIgMzEwLjYwMSAyMjcgMzEwLjYwMSAyMjdDMzA3LjYwMSAyMTggMzEwLjgwMSAyMTQuNiAzMTAuODAxIDIxNC42QzMxMS4wMDEgMjEwLjggMzE4LjIwMSAyMTcuMiAzMTguMjAxIDIxNy4yQzMyMC44MDEgMjIxLjQgMzIxLjYwMSAyMjYuNCAzMjEuNjAxIDIyNi40QzMyOS42MDEgMjM3LjYgMzI2LjIwMSAyMTkuOCAzMjYuMjAxIDIxOS44QzMyNi40MDEgMjE4LjggMzIzLjYwMSAyMTUuMiAzMjMuNjAxIDIxNEMzMjMuNjAxIDIxMi44IDMyMS44MDEgMjA5LjQgMzIxLjgwMSAyMDkuNEMzMTguODAxIDIwNiAzMjEuMjAxIDE5OSAzMjEuMjAxIDE5OUMzMjMuMDAxIDE4NS4yIDMyMC44MDEgMTg3IDMyMC44MDEgMTg3QzMxOS42MDEgMTg1LjIgMzEwLjQwMSAxOTUuMiAzMTAuNDAxIDE5NS4yQzMwOC4yMDEgMTk4LjYgMzAyLjIwMSAyMDAuMiAzMDIuMjAxIDIwMC4yQzI5OS40MDEgMjAyIDI5Ni4wMDEgMjAwLjYgMjk2LjAwMSAyMDAuNkMyOTMuNDAxIDIwMC4yIDI4Ny44MDEgMjA3LjIgMjg3LjgwMSAyMDcuMkMyOTAuNjAxIDIwNyAyOTMuMDAxIDIxMS40IDI5NS40MDEgMjExLjZDMjk3LjgwMSAyMTEuOCAyOTkuNjAxIDIwOS4yIDMwMS4yMDEgMjA4LjZDMzAyLjgwMSAyMDggMzA1LjYwMSAyMTMuOCAzMDUuNjAxIDIxMy44QzMwNi4wMDEgMjE2LjQgMzAwLjQwMSAyMjEuMiAzMDAuNDAxIDIyMS4yQzMwMC4wMDEgMjI1LjggMjk4LjQwMSAyMjQuMiAyOTguNDAxIDIyNC4yQzI5NS40MDEgMjIzLjYgMjk0LjIwMSAyMjcuNCAyOTMuMjAxIDIzMkMyOTIuMjAxIDIzNi42IDI4OC4wMDEgMjM3IDI4OC4wMDEgMjM3QzI4Ni40MDEgMjQ0LjQgMjg1LjIgMjQxLjQgMjg1LjIgMjQxLjRDMjg1IDIzNS44IDI3OSAyNDEuNiAyNzkgMjQxLjZDMjc3LjggMjQzLjYgMjczLjIgMjQxLjQgMjczLjIgMjQxLjRDMjY2LjQgMjM5LjQgMjY4LjggMjM3LjQgMjY4LjggMjM3LjRDMjcwLjYgMjM1LjIgMjgxLjggMjM3LjQgMjgxLjggMjM3LjRDMjg0IDIzNS44IDI3NiAyMzEuOCAyNzYgMjMxLjhDMjc1LjQgMjMwIDI3Ni40IDIyNS42IDI3Ni40IDIyNS42QzI3Ny42IDIyMi40IDI4NC40IDIxNi44IDI4NC40IDIxNi44QzI5My44MDEgMjE1LjYgMjkxLjAwMSAyMTQgMjkxLjAwMSAyMTRDMjg0LjgwMSAyMDguOCAyNzkgMjE2LjQgMjc5IDIxNi40QzI3Ni44IDIyMi42IDI1OS40IDIzNy42IDI1OS40IDIzNy42QzI1NC42IDI0MSAyNTcuMiAyMzQuMiAyNTMuMiAyMzcuNkMyNDkuMiAyNDEgMjI4LjYgMjMyIDIyOC42IDIzMkMyMTcuMDM4IDIzMC44MDcgMjE0LjMwNiAyNDYuNTQ5IDIxMC43NzcgMjQzLjQyOUMyMTAuNzc3IDI0My40MjkgMjE2LjE5NSAyNTEuOTQ5IDIxNC41OTUgMjQ2LjM0OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNNDA5LjQwMSA4MEM0MDkuNDAxIDgwIDM4My44MDEgODggMzgxLjAwMSAxMDYuOEMzODEuMDAxIDEwNi44IDM3OC42MDEgMTI5LjYgMzk5LjAwMSAxNDcuMkMzOTkuMDAxIDE0Ny4yIDM5OS40MDEgMTUzLjYgNDAxLjQwMSAxNTYuOEM0MDEuNDAxIDE1Ni44IDM5OS44MDEgMTYxLjYgNDE4LjYwMSAxNTRMNDQ1LjgwMSAxNDUuNkM0NDUuODAxIDE0NS42IDQ1Mi4yMDEgMTQzLjIgNDU3LjQwMSAxMzQuNEM0NjIuNjAxIDEyNS42IDQ3Ny44MDEgMTA2LjggNDc0LjIwMSA4MS42QzQ3NC4yMDEgODEuNiA0NzUuNDAxIDcwLjQgNDY5LjQwMSA3MEM0NjkuNDAxIDcwIDQ2MS4wMDEgNjguNCA0NTMuODAxIDc2QzQ1My44MDEgNzYgNDQ3LjAwMSA3OS4yIDQ0NC42MDEgNzguOEw0MDkuNDAxIDgweiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik00NjQuMDIyIDc5LjAxQzQ2NC4wMjIgNzkuMDEgNDY2LjEyMiA3MC4wOCA0NjEuMjgyIDc0LjkyQzQ2MS4yODIgNzQuOTIgNDU0LjI0MiA4MC42NCA0NDYuNzYxIDgwLjY0QzQ0Ni43NjEgODAuNjQgNDMyLjI0MSA4Mi44NCA0MjcuODQxIDk2LjA0QzQyNy44NDEgOTYuMDQgNDIzLjg4MSAxMjIuODggNDMxLjgwMSAxMjguNkM0MzEuODAxIDEyOC42IDQzNi42NDEgMTM2LjA4IDQ0My42ODEgMTI5LjQ4QzQ1MC43MjIgMTIyLjg4IDQ2Ni4yMjIgOTIuNjUgNDY0LjAyMiA3OS4wMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMzMjMyMzIiPgorICA8cGF0aCBkPSJNNDYzLjY0OCA3OS4zNjhDNDYzLjY0OCA3OS4zNjggNDY1LjczOCA3MC42MjQgNDYwLjk4NiA3NS4zNzZDNDYwLjk4NiA3NS4zNzYgNDU0LjA3NCA4MC45OTIgNDQ2LjcyOSA4MC45OTJDNDQ2LjcyOSA4MC45OTIgNDMyLjQ3MyA4My4xNTIgNDI4LjE1MyA5Ni4xMTJDNDI4LjE1MyA5Ni4xMTIgNDI0LjI2NSAxMjIuNDY0IDQzMi4wNDEgMTI4LjA4QzQzMi4wNDEgMTI4LjA4IDQzNi43OTMgMTM1LjQyNCA0NDMuNzA1IDEyOC45NDRDNDUwLjYxOCAxMjIuNDY0IDQ2NS44MDggOTIuNzYgNDYzLjY0OCA3OS4zNjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjNjY2NjY2Ij4KKyAgPHBhdGggZD0iTTQ2My4yNzQgNzkuNzI2QzQ2My4yNzQgNzkuNzI2IDQ2NS4zNTQgNzEuMTY4IDQ2MC42OSA3NS44MzJDNDYwLjY5IDc1LjgzMiA0NTMuOTA2IDgxLjM0NCA0NDYuNjk3IDgxLjM0NEM0NDYuNjk3IDgxLjM0NCA0MzIuNzA1IDgzLjQ2NCA0MjguNDY1IDk2LjE4NEM0MjguNDY1IDk2LjE4NCA0MjQuNjQ5IDEyMi4wNDggNDMyLjI4MSAxMjcuNTZDNDMyLjI4MSAxMjcuNTYgNDM2Ljk0NSAxMzQuNzY4IDQ0My43MjkgMTI4LjQwOEM0NTAuNTE0IDEyMi4wNDggNDY1LjM5NCA5Mi44NyA0NjMuMjc0IDc5LjcyNnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTk5OTkiPgorICA8cGF0aCBkPSJNNDYyLjkgODAuMDg0QzQ2Mi45IDgwLjA4NCA0NjQuOTcgNzEuNzEyIDQ2MC4zOTQgNzYuMjg4QzQ2MC4zOTQgNzYuMjg4IDQ1My43MzggODEuNjk2IDQ0Ni42NjUgODEuNjk2QzQ0Ni42NjUgODEuNjk2IDQzMi45MzcgODMuNzc2IDQyOC43NzcgOTYuMjU2QzQyOC43NzcgOTYuMjU2IDQyNS4wMzMgMTIxLjYzMiA0MzIuNTIxIDEyNy4wNEM0MzIuNTIxIDEyNy4wNCA0MzcuMDk3IDEzNC4xMTIgNDQzLjc1MyAxMjcuODcyQzQ1MC40MSAxMjEuNjMyIDQ2NC45OCA5Mi45OCA0NjIuOSA4MC4wODR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQ2Mi41MjYgODAuNDQyQzQ2Mi41MjYgODAuNDQyIDQ2NC41ODYgNzIuMjU2IDQ2MC4wOTggNzYuNzQ0QzQ2MC4wOTggNzYuNzQ0IDQ1My41NjkgODIuMDQ4IDQ0Ni42MzMgODIuMDQ4QzQ0Ni42MzMgODIuMDQ4IDQzMy4xNjkgODQuMDg4IDQyOS4wODkgOTYuMzI4QzQyOS4wODkgOTYuMzI4IDQyNS40MTcgMTIxLjIxNiA0MzIuNzYxIDEyNi41MkM0MzIuNzYxIDEyNi41MiA0MzcuMjQ5IDEzMy40NTYgNDQzLjc3NyAxMjcuMzM2QzQ1MC4zMDUgMTIxLjIxNiA0NjQuNTY2IDkzLjA5IDQ2Mi41MjYgODAuNDQyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZiI+CisgIDxwYXRoIGQ9Ik00NjIuMTUxIDgwLjhDNDYyLjE1MSA4MC44IDQ2NC4yMDEgNzIuOCA0NTkuODAxIDc3LjJDNDU5LjgwMSA3Ny4yIDQ1My40MDEgODIuNCA0NDYuNjAxIDgyLjRDNDQ2LjYwMSA4Mi40IDQzMy40MDEgODQuNCA0MjkuNDAxIDk2LjRDNDI5LjQwMSA5Ni40IDQyNS44MDEgMTIwLjggNDMzLjAwMSAxMjZDNDMzLjAwMSAxMjYgNDM3LjQwMSAxMzIuOCA0NDMuODAxIDEyNi44QzQ1MC4yMDEgMTIwLjggNDY0LjE1MSA5My4yIDQ2Mi4xNTEgODAuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTI2MDAiPgorICA8cGF0aCBkPSJNMjUwLjYgMjg0QzI1MC42IDI4NCAyMzAuMiAyNjQuOCAyMjIuMiAyNjRDMjIyLjIgMjY0IDE4Ny44IDI2MCAxNzMgMjc4QzE3MyAyNzggMTkwLjYgMjU3LjYgMjE4LjIgMjYzLjJDMjE4LjIgMjYzLjIgMTk2LjYgMjU4LjggMTg0LjIgMjYyQzE4NC4yIDI2MiAxNjcuNCAyNjIgMTU3LjggMjc2TDE1NSAyODAuOEMxNTUgMjgwLjggMTU5IDI2NiAxNzcuNCAyNjBDMTc3LjQgMjYwIDIwMC4yIDI1NS4yIDIxMSAyNjBDMjExIDI2MCAxODkuNCAyNTMuMiAxNzkuNCAyNTUuMkMxNzkuNCAyNTUuMiAxNDkgMjUyLjggMTM2LjIgMjc5LjJDMTM2LjIgMjc5LjIgMTQwLjIgMjY0LjggMTU1IDI1Ny42QzE1NSAyNTcuNiAxNjguNiAyNDguOCAxODkgMjUxLjZDMTg5IDI1MS42IDIwMy40IDI1NC44IDIwOC42IDI1Ny4yQzIxMy44IDI1OS42IDIxMi42IDI1Ni44IDIwNC4yIDI1MkMyMDQuMiAyNTIgMTk4LjYgMjQyIDE4NC42IDI0Mi40QzE4NC42IDI0Mi40IDE0MS44IDI0NiAxMzEuNCAyNThDMTMxLjQgMjU4IDE0NSAyNDYuOCAxNTUuNCAyNDRDMTU1LjQgMjQ0IDE3Ny44IDIzNiAxODYuMiAyMzYuOEMxODYuMiAyMzYuOCAyMTEgMjM3LjggMjE4LjYgMjMzLjhDMjE4LjYgMjMzLjggMjA3LjQgMjM4LjggMjEwLjYgMjQyQzIxMy44IDI0NS4yIDIyMC42IDI1Mi44IDIyMC42IDI1NEMyMjAuNiAyNTUuMiAyNDQuOCAyNzcuMyAyNDguNCAyODEuN0wyNTAuNiAyODR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTM4OSA0NzhDMzg5IDQ3OCAzNzMuNSA0NDEuNSAzNjEgNDMyQzM2MSA0MzIgMzg3IDQ0OCAzOTAuNSA0NjZDMzkwLjUgNDY2IDM5MC41IDQ3NiAzODkgNDc4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik00MzYgNDg1LjVDNDM2IDQ4NS41IDQwOS41IDQzMC41IDM5MSA0MDYuNUMzOTEgNDA2LjUgNDM0LjUgNDQ0IDQzOS41IDQ3MC41TDQ0MCA0NzZMNDM3IDQ3My41QzQzNyA0NzMuNSA0MzYuNSA0ODIuNSA0MzYgNDg1LjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQ5Mi41IDQzN0M0OTIuNSA0MzcgNDMwIDM3Ny41IDQyOC41IDM3NUM0MjguNSAzNzUgNDg5IDQ0MSA0OTIgNDQ4LjVDNDkyIDQ0OC41IDQ5MCA0MzkuNSA0OTIuNSA0Mzd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTMwNCA0ODAuNUMzMDQgNDgwLjUgMzIzLjUgNDI4LjUgMzQyLjUgNDUxQzM0Mi41IDQ1MSAzNTcuNSA0NjEgMzU3IDQ2NEMzNTcgNDY0IDM1MyA0NTcuNSAzMzUgNDU4QzMzNSA0NTggMzE2IDQ1NSAzMDQgNDgwLjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQ5NC41IDM1M0M0OTQuNSAzNTMgNDQ5LjUgMzI0LjUgNDQyIDMyM0M0MzAuMTkzIDMyMC42MzkgNDkxLjUgMzUyIDQ5Ni41IDM2Mi41QzQ5Ni41IDM2Mi41IDQ5OC41IDM2MCA0OTQuNSAzNTN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTM0My44MDEgNDU5LjYwMUMzNDMuODAxIDQ1OS42MDEgMzY0LjIwMSA0NTcuNjAxIDM3MS4wMDEgNDUwLjgwMUwzNzUuNDAxIDQ1NC40MDFMMzkzLjAwMSA0MTYuMDAxTDM5Ni42MDEgNDIxLjIwMUMzOTYuNjAxIDQyMS4yMDEgNDExLjAwMSA0MDYuNDAxIDQxMC4yMDEgMzk4LjQwMUM0MDkuNDAxIDM5MC40MDEgNDIzLjAwMSA0MDQuNDAxIDQyMy4wMDEgNDA0LjQwMUM0MjMuMDAxIDQwNC40MDEgNDIyLjIwMSAzOTIuODAxIDQyOS40MDEgMzk5LjYwMUM0MjkuNDAxIDM5OS42MDEgNDI3LjAwMSAzODQuMDAxIDQzNS40MDEgMzkyLjAwMUM0MzUuNDAxIDM5Mi4wMDEgNDI0Ljg2NCAzNjEuODQ0IDQ0Ny40MDEgMzg3LjYwMUM0NTMuMDAxIDM5NC4wMDEgNDQ4LjYwMSAzODcuMjAxIDQ0OC42MDEgMzg3LjIwMUM0NDguNjAxIDM4Ny4yMDEgNDIyLjYwMSAzMzkuMjAxIDQ0NC4yMDEgMzUzLjYwMUM0NDQuMjAxIDM1My42MDEgNDQ2LjIwMSAzMzAuODAxIDQ0NS4wMDEgMzI2LjQwMUM0NDMuODAxIDMyMi4wMDEgNDQxLjgwMSAyOTkuNiA0MzcuMDAxIDI5NC40QzQzMi4yMDEgMjg5LjIgNDM3LjQwMSAyODcuNiA0NDMuMDAxIDI5Mi44QzQ0My4wMDEgMjkyLjggNDMxLjgwMSAyNjguOCA0NDUuMDAxIDI4MC44QzQ0NS4wMDEgMjgwLjggNDQxLjQwMSAyNjUuNiA0MzcuMDAxIDI2Mi44QzQzNy4wMDEgMjYyLjggNDMxLjQwMSAyNDUuNiA0NDYuNjAxIDI1Ni40QzQ0Ni42MDEgMjU2LjQgNDQyLjIwMSAyNDQgNDM5LjAwMSAyNDAuOEM0MzkuMDAxIDI0MC44IDQyNy40MDEgMjEzLjIgNDM0LjYwMSAyMThMNDM5LjAwMSAyMjEuNkM0MzkuMDAxIDIyMS42IDQzMi4yMDEgMjA3LjYgNDM4LjYwMSAyMTJDNDQ1LjAwMSAyMTYuNCA0NDUuMDAxIDIxNiA0NDUuMDAxIDIxNkM0NDUuMDAxIDIxNiA0MjMuODAxIDE4Mi44IDQ0NC4yMDEgMjAwLjRDNDQ0LjIwMSAyMDAuNCA0MzYuMDQyIDE4Ni40ODIgNDMyLjYwMSAxNzkuNkM0MzIuNjAxIDE3OS42IDQxMy44MDEgMTU5LjIgNDI4LjIwMSAxNjUuNkw0MzMuMDAxIDE2Ny4yQzQzMy4wMDEgMTY3LjIgNDI0LjIwMSAxNTcuMiA0MTYuMjAxIDE1NS42QzQwOC4yMDEgMTU0IDQxOC42MDEgMTQ3LjYgNDI1LjAwMSAxNDkuNkM0MzEuNDAxIDE1MS42IDQ0Ny4wMDEgMTU5LjIgNDQ3LjAwMSAxNTkuMkM0NDcuMDAxIDE1OS4yIDQ1OS44MDEgMTc4IDQ2My44MDEgMTc4LjRDNDYzLjgwMSAxNzguNCA0NDMuODAxIDE3MC44IDQ0OS44MDEgMTc4LjhDNDQ5LjgwMSAxNzguOCA0NjQuMjAxIDE5Mi44IDQ1Ny4wMDEgMTkyLjRDNDU3LjAwMSAxOTIuNCA0NTEuMDAxIDE5OS42IDQ1NS44MDEgMjA4LjRDNDU1LjgwMSAyMDguNCA0MzcuMzQyIDE5MC4wMDkgNDUyLjIwMSAyMTUuNkw0NTkuMDAxIDIzMkM0NTkuMDAxIDIzMiA0MzQuNjAxIDIwNy4yIDQ0NS44MDEgMjI5LjJDNDQ1LjgwMSAyMjkuMiA0NjMuMDAxIDI1Mi44IDQ2NS4wMDEgMjUzLjJDNDY3LjAwMSAyNTMuNiA0NzEuNDAxIDI2Mi40IDQ3MS40MDEgMjYyLjRMNDY3LjAwMSAyNjAuNEw0NzIuMjAxIDI2OS4yQzQ3Mi4yMDEgMjY5LjIgNDYxLjAwMSAyNTcuMiA0NjcuMDAxIDI3MC40TDQ3Mi42MDEgMjg0LjhDNDcyLjYwMSAyODQuOCA0NTIuMjAxIDI2Mi44IDQ2NS44MDEgMjkyLjRDNDY1LjgwMSAyOTIuNCA0NDkuNDAxIDI4Ny4yIDQ1OC4yMDEgMzA0LjRDNDU4LjIwMSAzMDQuNCA0NTYuNjAxIDMyMC40MDEgNDU3LjAwMSAzMjUuNjAxQzQ1Ny40MDEgMzMwLjgwMSA0NTguNjAxIDM1OS4yMDEgNDU0LjIwMSAzNjcuMjAxQzQ0OS44MDEgMzc1LjIwMSA0NjAuMjAxIDM5NC40MDEgNDYyLjIwMSAzOTguNDAxQzQ2NC4yMDEgNDAyLjQwMSA0NjcuODAxIDQxMy4yMDEgNDU5LjAwMSA0MDQuMDAxQzQ1MC4yMDEgMzk0LjgwMSA0NTQuNjAxIDQwMC40MDEgNDU2LjYwMSA0MDkuMjAxQzQ1OC42MDEgNDE4LjAwMSA0NjQuNjAxIDQzMy42MDEgNDYzLjgwMSA0MzkuMjAxQzQ2My44MDEgNDM5LjIwMSA0NjIuNjAxIDQ0MC40MDEgNDU5LjQwMSA0MzYuODAxQzQ1OS40MDEgNDM2LjgwMSA0NDQuNjAxIDQxNC4wMDEgNDQ2LjIwMSA0MjguNDAxQzQ0Ni4yMDEgNDI4LjQwMSA0NDUuMDAxIDQzNi40MDEgNDQxLjgwMSA0NDUuMjAxQzQ0MS44MDEgNDQ1LjIwMSA0MzguNjAxIDQ1Ni4wMDEgNDM4LjYwMSA0NDcuMjAxQzQzOC42MDEgNDQ3LjIwMSA0MzUuNDAxIDQzMC40MDEgNDMyLjYwMSA0MzguMDAxQzQyOS44MDEgNDQ1LjYwMSA0MjYuMjAxIDQ1MS42MDEgNDIzLjQwMSA0NTQuMDAxQzQyMC42MDEgNDU2LjQwMSA0MTUuNDAxIDQzMy42MDEgNDE0LjIwMSA0NDQuMDAxQzQxNC4yMDEgNDQ0LjAwMSA0MDIuMjAxIDQzMS42MDEgMzk3LjQwMSA0NDguMDAxTDM4NS44MDEgNDY0LjQwMUMzODUuODAxIDQ2NC40MDEgMzg1LjQwMSA0NTIuMDAxIDM4NC4yMDEgNDU4LjAwMUMzODQuMjAxIDQ1OC4wMDEgMzU0LjIwMSA0NjQuMDAxIDM0My44MDEgNDU5LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMzA5LjQwMSAxMDIuOEMzMDkuNDAxIDEwMi44IDI5Ny44MDEgOTQuOCAyOTMuODAxIDk1LjJDMjg5LjgwMSA5NS42IDMyMS40MDEgODYuNCAzNjIuNjAxIDExNEMzNjIuNjAxIDExNCAzNjcuNDAxIDExNi44IDM3MS4wMDEgMTE2LjRDMzcxLjAwMSAxMTYuNCAzNzQuMjAxIDExOC44IDM3MS40MDEgMTIyLjRDMzcxLjQwMSAxMjIuNCAzNjIuNjAxIDEzMiAzNzMuODAxIDE0My4yQzM3My44MDEgMTQzLjIgMzkyLjIwMSAxNTAgMzg2LjYwMSAxNDEuMkMzODYuNjAxIDE0MS4yIDM5Ny40MDEgMTQ1LjIgMzk5LjgwMSAxNDkuMkM0MDIuMjAxIDE1My4yIDQwMS4wMDEgMTQ5LjIgNDAxLjAwMSAxNDkuMkM0MDEuMDAxIDE0OS4yIDM5NC42MDEgMTQyIDM4OC42MDEgMTM2LjhDMzg4LjYwMSAxMzYuOCAzODMuNDAxIDEzNC44IDM4MC42MDEgMTI2LjRDMzc3LjgwMSAxMTggMzc1LjQwMSAxMDggMzc5LjgwMSAxMDQuOEMzNzkuODAxIDEwNC44IDM3NS44MDEgMTA5LjIgMzc2LjYwMSAxMDUuMkMzNzcuNDAxIDEwMS4yIDM4MS4wMDEgOTcuNiAzODIuNjAxIDk3LjJDMzg0LjIwMSA5Ni44IDQwMC42MDEgODEgNDA3LjQwMSA4MC42QzQwNy40MDEgODAuNiAzOTguMjAxIDgyIDM5NS4yMDEgODFDMzkyLjIwMSA4MCAzNjUuNjAxIDY4LjYgMzU5LjYwMSA2Ny40QzM1OS42MDEgNjcuNCAzNDIuODAxIDYwLjggMzU0LjgwMSA2Mi44QzM1NC44MDEgNjIuOCAzOTAuNjAxIDY2LjYgNDA4LjgwMSA3OS44QzQwOC44MDEgNzkuOCA0MDEuNjAxIDcxLjQgMzgzLjIwMSA2NC40QzM4My4yMDEgNjQuNCAzNjEuMDAxIDUxLjggMzI1LjgwMSA1Ni44QzMyNS44MDEgNTYuOCAzMDguMDAxIDYwIDMwMC4yMDEgNjEuOEMzMDAuMjAxIDYxLjggMjk3LjYwMSA2MS4yIDI5Ny4wMDEgNjAuOEMyOTYuNDAxIDYwLjQgMjg0LjYgNTEuNCAyNTcgNTguNEMyNTcgNTguNCAyNDAgNjMgMjMxLjQgNjcuOEMyMzEuNCA2Ny44IDIxNi4yIDY5IDIxMi42IDcyLjJDMjEyLjYgNzIuMiAxOTQgODYuOCAxOTIgODcuNkMxOTAgODguNCAxNzguNiA5NiAxNzcuOCA5Ni40QzE3Ny44IDk2LjQgMjAyLjQgODkuOCAyMDQuOCA4Ny40QzIwNy4yIDg1IDIyNC42IDgyLjQgMjI3IDgzLjhDMjI5LjQgODUuMiAyMzcuOCA4NC42IDIyOC4yIDg1LjJDMjI4LjIgODUuMiAzMDMuODAxIDEwMCAzMDQuNjAxIDEwMkMzMDUuNDAxIDEwNCAzMDkuNDAxIDEwMi44IDMwOS40MDEgMTAyLjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTM4MC44MDEgOTMuNkMzODAuODAxIDkzLjYgMzcwLjYwMSA4Ni4yIDM2OC42MDEgODYuMkMzNjYuNjAxIDg2LjIgMzU0LjIwMSA3NiAzNTAuMDAxIDc2LjRDMzQ1LjgwMSA3Ni44IDMzMy42MDEgNjYuOCAzMDYuMjAxIDc1QzMwNi4yMDEgNzUgMzA1LjYwMSA3MyAzMDkuMjAxIDcyLjJDMzA5LjIwMSA3Mi4yIDMxNS42MDEgNzAgMzE2LjAwMSA2OS40QzMxNi4wMDEgNjkuNCAzMzYuMjAxIDY1LjIgMzQzLjQwMSA2OC44QzM0My40MDEgNjguOCAzNTIuNjAxIDcxLjQgMzU4LjgwMSA3Ny42QzM1OC44MDEgNzcuNiAzNzAuMDAxIDgwLjggMzczLjIwMSA3OS44QzM3My4yMDEgNzkuOCAzODIuMDAxIDgyIDM4Mi40MDEgODMuOEMzODIuNDAxIDgzLjggMzg4LjIwMSA4Ni44IDM4Ni40MDEgODkuNEMzODYuNDAxIDg5LjQgMzg2LjgwMSA5MSAzODAuODAxIDkzLjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTM2OC4zMyA5MS40OTFDMzY5LjEzNyA5Mi4xMjMgMzcwLjE1NiA5Mi4yMjEgMzcwLjc2MSA5My4wM0MzNzAuOTk1IDkzLjM0NCAzNzAuNzA2IDkzLjY3IDM3MC4zOTEgOTMuNzY3QzM2OS4zNDggOTQuMDg0IDM2OC4yOTIgOTMuNTE0IDM2Ny4xNSA5NC4xMDJDMzY2Ljc0OCA5NC4zMDkgMzY2LjEwNiA5NC4xMjcgMzY1LjU1MyA5My45NzhDMzYzLjkyMSA5My41MzcgMzYyLjA5MiA5My41MTIgMzYwLjQwMSA5NC4yQzM1OC40MTYgOTMuMDcxIDM1Ni4wNTYgOTMuNjU1IDM1My45NzUgOTIuNjU0QzM1My45MTcgOTIuNjI3IDM1My42OTUgOTIuOTczIDM1My42MjEgOTIuOTQ2QzM1MC41NzUgOTEuODAxIDM0Ni44MzIgOTIuMDg0IDM0NC40MDEgODkuOEMzNDEuOTczIDg5LjM4OCAzMzkuNjE2IDg4LjkyNiAzMzcuMTg4IDg4LjI0NkMzMzUuMzcgODcuNzM3IDMzMy45NjEgODYuNzQ4IDMzMi4zNDEgODUuOTE2QzMzMC45NjQgODUuMjA4IDMyOS41MDcgODQuNjg2IDMyNy45NzMgODQuMzE0QzMyNi4xMSA4My44NjIgMzI0LjI3OSA4My45NzQgMzIyLjM4NiA4My40NTRDMzIyLjI5MyA4My40MjkgMzIyLjEwMSA4My43NzMgMzIyLjAxOSA4My43NDZDMzIxLjY5NSA4My42MzggMzIxLjQwNSA4My4wNTUgMzIxLjIzNCA4My4xMDhDMzE5LjU1MyA4My42MyAzMTguMDY1IDgyLjY1OCAzMTYuNDAxIDgzQzMxNS4yMjMgODEuNzc2IDMxMy40OTUgODIuMDIxIDMxMS45NDkgODEuNTc5QzMwOC45ODUgODAuNzMxIDMwNS44MzEgODIuMDAxIDMwMi44MDEgODFDMzA2LjkxNCA3OS4xNTggMzExLjYwMSA4MC4zOSAzMTUuNjYzIDc4LjMyMUMzMTcuOTkxIDc3LjEzNSAzMjAuNjUzIDc4LjIzNyAzMjMuMjIzIDc3LjQ3N0MzMjMuNzEgNzcuMzMzIDMyNC40MDEgNzcuMTMxIDMyNC44MDEgNzcuOEMzMjQuOTM1IDc3LjY2NSAzMjUuMTE3IDc3LjQyNiAzMjUuMTc1IDc3LjQ1NEMzMjcuNjI1IDc4LjYxMSAzMjkuOTQgNzkuODg1IDMzMi40MjIgODAuOTUxQzMzMi43NjMgODEuMDk3IDMzMy4yOTUgODAuODY1IDMzMy41NDcgODEuMDY3QzMzNS4wNjcgODIuMjgzIDMzNy4wMSA4Mi4xOCAzMzguNDAxIDgzLjRDMzQwLjA5OSA4Mi44OTggMzQxLjg5MiA4My4yNzggMzQzLjYyMSA4Mi42NTRDMzQzLjY5OCA4Mi42MjcgMzQzLjkzMiA4Mi45NjggMzQzLjk2NSA4Mi45NDZDMzQ1LjA5NSA4Mi4xOTggMzQ2LjI1IDgyLjQ2OSAzNDcuMTQyIDgyLjc3M0MzNDcuNDggODIuODg4IDM0OC4xNDMgODMuMTM1IDM0OC40NDggODMuMjA5QzM0OS41NzQgODMuNDg1IDM1MC40MyA4My45NjUgMzUxLjYwOSA4NC4xNDhDMzUxLjcyMyA4NC4xNjYgMzUxLjkwOCA4My44MjYgMzUxLjk4IDgzLjg1NEMzNTMuMTAzIDg0LjI5MiAzNTQuMTQ1IDg0LjIzNiAzNTQuODAxIDg1LjRDMzU0LjkzNiA4NS4yNjUgMzU1LjEwMSA4NS4wMjcgMzU1LjE4MyA4NS4wNTRDMzU2LjIxIDg1LjM5MiAzNTYuODU5IDg2LjE0NyAzNTcuOTYgODYuMzg4QzM1OC40NDUgODYuNDk0IDM1OS4wNTcgODcuMTIgMzU5LjYzMyA4Ny4yOTZDMzYyLjAyNSA4OC4wMjcgMzYzLjg2OCA4OS41NTYgMzY2LjA2MiA5MC40NTFDMzY2LjgyMSA5MC43NjEgMzY3LjY5NyA5MC45OTUgMzY4LjMzIDkxLjQ5MXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNMjkxLjY5NiA3Ny4yNjFDMjg5LjE3OCA3NS41MzYgMjg2LjgxIDc0LjQzIDI4NC4zNjggNzIuNjQ0QzI4NC4xODcgNzIuNTExIDI4My44MjcgNzIuNjgxIDI4My42MjUgNzIuNTU5QzI4Mi42MTggNzEuOTUgMjgxLjczIDcxLjM2OSAyODAuNzQ4IDcwLjY3M0MyODAuMjA5IDcwLjI5MSAyNzkuMzg4IDcwLjMwMiAyNzguODggNzAuMDQ0QzI3Ni4zMzYgNjguNzUyIDI3My43MDcgNjguMTk0IDI3MS4yIDY3QzI3MS44ODIgNjYuMzYyIDI3My4wMDQgNjYuNjA2IDI3My42IDY1LjhDMjczLjc5NSA2Ni4wOCAyNzQuMDMzIDY2LjM2NCAyNzQuMzg2IDY2LjE3M0MyNzYuMDY0IDY1LjI2OSAyNzcuOTE0IDY1LjExNiAyNzkuNTkgNjUuMjA2QzI4MS4yOTQgNjUuMjk4IDI4My4wMTQgNjUuNjAzIDI4NC43ODkgNjUuODc1QzI4NS4wOTYgNjUuOTIyIDI4NS4yOTUgNjYuNDQ1IDI4NS42MTggNjYuNTQyQzI4Ny44NDYgNjcuMjA1IDI5MC4yMzUgNjYuNjggMjkyLjM1NCA2Ny41MThDMjkzLjk0NSA2OC4xNDcgMjk1LjUxNSA2OC45NyAyOTYuNzU0IDcwLjI0NUMyOTcuMDA2IDcwLjUwNSAyOTYuNjgxIDcwLjgwNiAyOTYuNDAxIDcxQzI5Ni43ODkgNzAuODkxIDI5Ny4wNjIgNzEuMDk3IDI5Ny4xNzMgNzEuNDFDMjk3LjI1NyA3MS42NDkgMjk3LjI1NyA3MS45NTEgMjk3LjE3MyA3Mi4xOUMyOTcuMDYxIDcyLjUwMiAyOTYuNzgyIDcyLjYwMyAyOTYuNDA4IDcyLjY1NEMyOTUuMDAxIDcyLjg0NCAyOTYuNzczIDcxLjQ2NCAyOTYuMDczIDcxLjkxMkMyOTQuOCA3Mi43MjYgMjk1LjU0NiA3NC4xMzIgMjk0LjgwMSA3NS40QzI5NC41MjEgNzUuMjA2IDI5NC4yOTEgNzQuOTg4IDI5NC40MDEgNzQuNkMyOTQuNjM1IDc1LjEyMiAyOTQuMDMzIDc1LjQxMiAyOTMuODY1IDc1LjcyOEMyOTMuNDggNzYuNDUzIDI5Mi41ODEgNzcuODY4IDI5MS42OTYgNzcuMjYxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yNTkuMTk4IDg0LjYwOUMyNTYuMDQ0IDgzLjgxNSAyNTIuOTk0IDgzLjkzIDI0OS45NzggODIuNjU0QzI0OS45MTEgODIuNjI2IDI0OS42ODggODIuOTczIDI0OS42MjQgODIuOTQ2QzI0OC4yNTggODIuMzUyIDI0Ny4zNCA4MS4zODYgMjQ2LjI2NCA4MC4zNEMyNDUuMzUxIDc5LjQ1MiAyNDMuNjkzIDc5LjgzOSAyNDIuNDE5IDc5LjM1MkMyNDIuMDk1IDc5LjIyOCAyNDEuODkyIDc4LjcxNiAyNDEuNTkxIDc4LjY3N0MyNDAuMzcyIDc4LjUyIDIzOS40NDUgNzcuNTcxIDIzOC40IDc3QzI0MC43MzYgNzYuMjA1IDI0My4xNDcgNzYuMjM2IDI0NS42MDkgNzUuODUyQzI0NS43MjIgNzUuODM0IDI0NS44NjcgNzYuMTU1IDI0NiA3Ni4xNTVDMjQ2LjEzNiA3Ni4xNTUgMjQ2LjI2NiA3NS45MzQgMjQ2LjQgNzUuOEMyNDYuNTk1IDc2LjA4IDI0Ni44OTcgNzYuNDA2IDI0Ny4xNTQgNzYuMTUyQzI0Ny43MDIgNzUuNjEyIDI0OC4yNTggNzUuODAyIDI0OC43OTggNzUuODQyQzI0OC45NDIgNzUuODUyIDI0OS4wNjcgNzYuMTU1IDI0OS4yIDc2LjE1NUMyNDkuMzM2IDc2LjE1NSAyNDkuNDY3IDc1Ljg0NCAyNDkuNiA3NS44NDRDMjQ5LjczNiA3NS44NDUgMjQ5Ljg2NyA3Ni4xNTUgMjUwIDc2LjE1NUMyNTAuMTM2IDc2LjE1NSAyNTAuMjY2IDc1LjkzNCAyNTAuNCA3NS44QzI1MS4wOTIgNzYuNTgyIDI1MS45NzcgNzYuMDI4IDI1Mi43OTkgNzYuMjA3QzI1My44MzcgNzYuNDM0IDI1NC4xMDQgNzcuNTgyIDI1NS4xNzggNzcuODhDMjU5Ljg5MyA3OS4xODQgMjY0LjAzIDgxLjMyOSAyNjguMzkzIDgzLjQxNkMyNjguNyA4My41NjMgMjY4LjkxIDgzLjgxMSAyNjguOCA4NC4yQzI2OS4wNjcgODQuMiAyNjkuMzggODQuMTEyIDI2OS41NyA4NC4yNDRDMjcwLjYyOCA4NC45NzYgMjcxLjY2OSA4NS41MjQgMjcyLjM2NiA4Ni42MjJDMjcyLjU4MiA4Ni45NjEgMjcyLjI1MyA4Ny4zNjggMjcyLjAyIDg3LjMxNkMyNjcuNTkxIDg2LjMyMSAyNjMuNTg1IDg1LjcxMyAyNTkuMTk4IDg0LjYwOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNMjQ1LjMzOCAxMjguODIxQzI0My43NDYgMTI3LjYwMiAyNDMuMTYyIDEyNS41NzEgMjQyLjAzNCAxMjMuNzc5QzI0MS44MiAxMjMuNDM5IDI0Mi4wOTQgMTIzLjEyNSAyNDIuNDExIDEyMy4wMzZDMjQyLjk3MSAxMjIuODc3IDI0My41MTQgMTIzLjM1NSAyNDMuOTIzIDEyMy41NTdDMjQ1LjY2OCAxMjQuNDE5IDI0Ny4yMDMgMTI1LjY2MSAyNDkuMiAxMjUuOEMyNTEuMTkgMTI4LjAzNCAyNTUuNDUgMTI4LjQxOSAyNTUuNDU3IDEzMS44QzI1NS40NTggMTMyLjY1OSAyNTQuMDMgMTMxLjc0MSAyNTMuNiAxMzIuNkMyNTEuMTQ5IDEzMS41OTcgMjQ4Ljc2IDEzMS43IDI0Ni4zOCAxMzAuMjMzQzI0NS43NjMgMTI5Ljg1MiAyNDYuMDkzIDEyOS4zOTkgMjQ1LjMzOCAxMjguODIxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yMTcuOCA3Ni4yNDRDMjE3LjkzNSA3Ni4yNDUgMjI0Ljk2NiA3Ni40NzggMjI0Ljk0OSA3Ni41OTJDMjI0LjkwNCA3Ni45MDEgMjE3LjE3NCA3Ny45NSAyMTYuODEgNzcuNzhDMjE2LjY0NiA3Ny43MDQgMjA5LjEzNCA4MC4xMzQgMjA5IDgwQzIwOS4yNjggNzkuODY1IDIxNy41MzQgNzYuMjQ0IDIxNy44IDc2LjI0NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjMzLjIgODZDMjMzLjIgODYgMjE4LjQgODcuOCAyMTQgODlDMjA5LjYgOTAuMiAxOTEgOTcuOCAxODggOTkuOEMxODggOTkuOCAxNzQuNiAxMDUuMiAxNTcuNiAxMjUuMkMxNTcuNiAxMjUuMiAxNjUuMiAxMjEuOCAxNjcuNCAxMTlDMTY3LjQgMTE5IDE4MSAxMDYuNCAxODAuOCAxMDlDMTgwLjggMTA5IDE5MyAxMDAuNCAxOTIuNCAxMDIuNkMxOTIuNCAxMDIuNiAyMTYuOCA5MS40IDIxNC44IDk0LjZDMjE0LjggOTQuNiAyMzYuNCA5MCAyMzUuNCA5MkMyMzUuNCA5MiAyNTQuMiA5Ni40IDI1MS40IDk2LjZDMjUxLjQgOTYuNiAyNDUuNiA5Ny44IDI1MiAxMDEuNEMyNTIgMTAxLjQgMjQ4LjYgMTA1LjggMjQzLjIgMTAxLjhDMjM3LjggOTcuOCAyNDAuOCAxMDAgMjM1LjggMTAxQzIzNS44IDEwMSAyMzMuMiAxMDEuOCAyMjguNiA5Ny44QzIyOC42IDk3LjggMjIzIDkzLjIgMjE0LjIgOTYuOEMyMTQuMiA5Ni44IDE4My42IDEwOS40IDE4MS42IDExMEMxODEuNiAxMTAgMTc4IDExMi44IDE3NS42IDExNi40QzE3NS42IDExNi40IDE2OS44IDEyMC44IDE2Ni44IDEyMi4yQzE2Ni44IDEyMi4yIDE1NCAxMzMuOCAxNTIuOCAxMzUuMkMxNTIuOCAxMzUuMiAxNDkuNCAxNDAuNCAxNDguNiAxNDAuOEMxNDguNiAxNDAuOCAxNTUgMTM3IDE1NyAxMzVDMTU3IDEzNSAxNzEgMTI1IDE3Ni40IDEyNC4yQzE3Ni40IDEyNC4yIDE4MC44IDEyMS4yIDE4MS42IDExOS44QzE4MS42IDExOS44IDE5NiAxMTAuNiAyMDAuMiAxMTAuNkMyMDAuMiAxMTAuNiAyMDkuNCAxMTUuOCAyMTEuOCAxMDguOEMyMTEuOCAxMDguOCAyMTcuNiAxMDcgMjIzLjIgMTA4LjJDMjIzLjIgMTA4LjIgMjI2LjQgMTA1LjYgMjI1LjYgMTAzLjRDMjI1LjYgMTAzLjQgMjI3LjIgMTAxLjYgMjI4LjIgMTA1LjRDMjI4LjIgMTA1LjQgMjMxLjYgMTA5IDIzNi40IDEwN0MyMzYuNCAxMDcgMjQwLjQgMTA2LjggMjM4LjQgMTA5LjJDMjM4LjQgMTA5LjIgMjM0IDExMyAyMjIuMiAxMTMuMkMyMjIuMiAxMTMuMiAyMDkuOCAxMTMuOCAxOTMuNCAxMjEuNEMxOTMuNCAxMjEuNCAxNjMuNiAxMzEuOCAxNTQuNCAxNDIuMkMxNTQuNCAxNDIuMiAxNDggMTUxIDE0Mi42IDE1Mi4yQzE0Mi42IDE1Mi4yIDEzNi44IDE1MyAxMzAuOCAxNjAuNEMxMzAuOCAxNjAuNCAxNDAuNiAxNTQuNiAxNDkuNiAxNTQuNkMxNDkuNiAxNTQuNiAxNTMuNiAxNTIuMiAxNDkuOCAxNTUuOEMxNDkuOCAxNTUuOCAxNDYuMiAxNjMuNCAxNDcuOCAxNjguOEMxNDcuOCAxNjguOCAxNDcuMiAxNzQgMTQ2LjQgMTc1LjZDMTQ2LjQgMTc1LjYgMTM4LjYgMTg4LjQgMTM4LjYgMTkwLjhDMTM4LjYgMTkzLjIgMTM5LjggMjAzIDE0MC4yIDIwMy42QzE0MC42IDIwNC4yIDEzOS4yIDIwMiAxNDMgMjA0LjRDMTQ2LjggMjA2LjggMTQ5LjYgMjA4LjQgMTUwLjQgMjExLjJDMTUxLjIgMjE0IDE0OC40IDIwNS44IDE0OC4yIDIwNEMxNDggMjAyLjIgMTQzLjggMTk1IDE0NC42IDE5Mi42QzE0NC42IDE5Mi42IDE0NS42IDE5My42IDE0Ni40IDE5NUMxNDYuNCAxOTUgMTQ1LjggMTk0LjQgMTQ2LjQgMTkwLjhDMTQ2LjQgMTkwLjggMTQ3LjIgMTg1LjYgMTQ4LjYgMTgyLjRDMTUwIDE3OS4yIDE1MiAxNzUuNCAxNTIuNCAxNzQuNkMxNTIuOCAxNzMuOCAxNTIuOCAxNjggMTU0LjIgMTcwLjZMMTU3LjYgMTczLjJDMTU3LjYgMTczLjIgMTU0LjggMTcwLjYgMTU3IDE2OC40QzE1NyAxNjguNCAxNTYgMTYyLjggMTU3LjggMTYwLjJDMTU3LjggMTYwLjIgMTY0LjggMTUxLjggMTY2LjQgMTUwLjhDMTY4IDE0OS44IDE2Ni42IDE1MC4yIDE2Ni42IDE1MC4yQzE2Ni42IDE1MC4yIDE3Mi42IDE0NiAxNjYuOCAxNDcuNkMxNjYuOCAxNDcuNiAxNjIuOCAxNDkuMiAxNTkuOCAxNDkuMkMxNTkuOCAxNDkuMiAxNTIuMiAxNTEuMiAxNTYuMiAxNDdDMTYwLjIgMTQyLjggMTcwLjIgMTM3LjQgMTc0IDEzNy42TDE3NC44IDEzOS4yTDE4NiAxMzYuOEwxODQuOCAxMzcuNkMxODQuOCAxMzcuNiAxODQuNiAxMzcuNCAxODguOCAxMzdDMTkzIDEzNi42IDE5OC44IDEzOCAyMDAuMiAxMzYuMkMyMDEuNiAxMzQuNCAyMDUgMTMzLjQgMjA0LjYgMTM0LjhDMjA0LjIgMTM2LjIgMjA0IDEzOC4yIDIwNCAxMzguMkMyMDQgMTM4LjIgMjA5IDEzMi40IDIwOC40IDEzNC42QzIwNy44IDEzNi44IDE5OS42IDE0MiAxOTguMiAxNDguMkwyMDguNiAxNDBMMjEyLjIgMTM3QzIxMi4yIDEzNyAyMTUuOCAxMzkuMiAyMTYgMTM3LjZDMjE2LjIgMTM2IDIyMC44IDEzMC4yIDIyMiAxMzAuNEMyMjMuMiAxMzAuNiAyMjUuMiAxMjcuOCAyMjUgMTMwLjRDMjI0LjggMTMzIDIzMi40IDEzOC40IDIzMi40IDEzOC40QzIzMi40IDEzOC40IDIzNS42IDEzNi42IDIzNyAxMzhDMjM4LjQgMTM5LjQgMjQyLjYgMTE4LjIgMjQyLjYgMTE4LjJMMjY3LjYgMTA3LjZMMzExLjIwMSAxMDQuMkwyOTQuMjAxIDk3LjRMMjMzLjIgODZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjUxLjQgMjg1QzI1MS40IDI4NSAyMzYuNCAyNjguMiAyMjggMjY1LjZDMjI4IDI2NS42IDIxNC42IDI1OC44IDE5MCAyNjYuNiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiM0YzAwMDA7IHN0cm9rZS13aWR0aDoyIj4KKyAgPHBhdGggZD0iTTIyNC44IDI2NC4yQzIyNC44IDI2NC4yIDE5OS42IDI1Ni4yIDE4NC4yIDI2MC40QzE4NC4yIDI2MC40IDE2NS44IDI2Mi40IDE1Ny40IDI3Ni4yIi8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjIxLjIgMjYzQzIyMS4yIDI2MyAyMDQuMiAyNTUuOCAxODkuNCAyNTMuNkMxODkuNCAyNTMuNiAxNzIuOCAyNTEgMTU2LjIgMjU4LjJDMTU2LjIgMjU4LjIgMTQ0IDI2NC4yIDEzOC42IDI3NC40Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjIyLjIgMjYzLjRDMjIyLjIgMjYzLjQgMjA2LjggMjUyLjQgMjA1LjggMjUxQzIwNS44IDI1MSAxOTguOCAyNDAgMTg1LjggMjM5LjZDMTg1LjggMjM5LjYgMTY0LjQgMjQwLjQgMTQ3LjIgMjQ4LjQiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjIwLjg5NSAyNTQuNDA3QzIyMi40MzcgMjU1Ljg3IDI0OS40IDI4NC44IDI0OS40IDI4NC44QzI4NC42IDMyMS40MDEgMjU2LjYgMjg3LjIgMjU2LjYgMjg3LjJDMjQ5IDI4Mi40IDIzOS44IDI2My42IDIzOS44IDI2My42QzIzOC42IDI2MC44IDI1My44IDI3MC44IDI1My44IDI3MC44QzI1Ny44IDI3MS42IDI3MS40IDI5MC44IDI3MS40IDI5MC44QzI2NC42IDI4OC40IDI2OS40IDI5NS42IDI2OS40IDI5NS42QzI3Mi4yIDI5Ny42IDI5Mi42MDEgMzEzLjIwMSAyOTIuNjAxIDMxMy4yMDFDMjk2LjIwMSAzMTcuMjAxIDMwMC4yMDEgMzE4LjgwMSAzMDAuMjAxIDMxOC44MDFDMzE0LjIwMSAzMTMuNjAxIDMwNy44MDEgMzI2LjgwMSAzMDcuODAxIDMyNi44MDFDMzEwLjIwMSAzMzMuNjAxIDMxNS44MDEgMzIyLjAwMSAzMTUuODAxIDMyMi4wMDFDMzI3LjAwMSAzMDUuMiAzMTAuNjAxIDMwNy42MDEgMzEwLjYwMSAzMDcuNjAxQzI4MC42IDMxMC40MDEgMjczLjggMjk0LjQgMjczLjggMjk0LjRDMjcxLjQgMjkyIDI4MC4yIDI5NC40IDI4MC4yIDI5NC40QzI4OC42MDEgMjk2LjQgMjczIDI4MiAyNzMgMjgyQzI3NS40IDI4MiAyODQuNiAyODguOCAyODQuNiAyODguOEMyOTUuMDAxIDI5OCAyOTcuMDAxIDI5NiAyOTcuMDAxIDI5NkMzMTUuMDAxIDI4Ny4yIDMyNS40MDEgMjk0LjggMzI1LjQwMSAyOTQuOEMzMjcuNDAxIDI5Ni40IDMyMS44MDEgMzAzLjIgMzIzLjQwMSAzMDguNDAxQzMyNS4wMDEgMzEzLjYwMSAzMjkuODAxIDMyNi4wMDEgMzI5LjgwMSAzMjYuMDAxQzMyNy40MDEgMzI3LjYwMSAzMjcuODAxIDMzOC40MDEgMzI3LjgwMSAzMzguNDAxQzM0NC42MDEgMzYxLjYwMSAzMzUuMDAxIDM1OS42MDEgMzM1LjAwMSAzNTkuNjAxQzMxOS40MDEgMzU5LjIwMSAzMzQuMjAxIDM2Ni44MDEgMzM0LjIwMSAzNjYuODAxQzMzNy40MDEgMzY4LjgwMSAzNDYuMjAxIDM3Ni4wMDEgMzQ2LjIwMSAzNzYuMDAxQzM0My40MDEgMzc0LjgwMSAzNDEuODAxIDM4MC4wMDEgMzQxLjgwMSAzODAuMDAxQzM0Ni42MDEgMzg0LjAwMSAzNDMuODAxIDM4OC44MDEgMzQzLjgwMSAzODguODAxQzMzNy44MDEgMzkwLjAwMSAzMzYuNjAxIDM5NC4wMDEgMzM2LjYwMSAzOTQuMDAxQzM0My40MDEgNDAyLjAwMSAzMzMuNDAxIDQwMi40MDEgMzMzLjQwMSA0MDIuNDAxQzMzNy4wMDEgNDA2LjgwMSAzMzIuMjAxIDQxOC44MDEgMzMyLjIwMSA0MTguODAxQzMyNy40MDEgNDE4LjgwMSAzMjEuMDAxIDQyNC40MDEgMzIxLjAwMSA0MjQuNDAxQzMyMy40MDEgNDI5LjIwMSAzMTMuMDAxIDQzNC44MDEgMzEzLjAwMSA0MzQuODAxQzMwNC42MDEgNDM2LjQwMSAzMDcuNDAxIDQ0My4yMDEgMzA3LjQwMSA0NDMuMjAxQzI5OS40MDEgNDQ5LjIwMSAyOTcuMDAxIDQ2NS4yMDEgMjk3LjAwMSA0NjUuMjAxQzI5Ni4yMDEgNDc1LjYwMSAyOTMuODAxIDQ3OC44MDEgMjk5LjAwMSA0NzYuODAxQzMwNC4yMDEgNDc0LjgwMSAzMDMuNDAxIDQ2Mi40MDEgMzAzLjQwMSA0NjIuNDAxQzI5OC42MDEgNDQ2LjgwMSAzNDEuNDAxIDQzMC44MDEgMzQxLjQwMSA0MzAuODAxQzM0NS40MDEgNDI5LjIwMSAzNDYuMjAxIDQyNC4wMDEgMzQ2LjIwMSA0MjQuMDAxQzM0OC4yMDEgNDI0LjQwMSAzNTcuMDAxIDQzMi4wMDEgMzU3LjAwMSA0MzIuMDAxQzM2NC42MDEgNDQzLjIwMSAzNjUuMDAxIDQzNC4wMDEgMzY1LjAwMSA0MzQuMDAxQzM2Ni4yMDEgNDMwLjQwMSAzNjQuNjAxIDQyNC40MDEgMzY0LjYwMSA0MjQuNDAxQzM3MC42MDEgNDAyLjgwMSAzNTYuNjAxIDM5Ni40MDEgMzU2LjYwMSAzOTYuNDAxQzM0Ni42MDEgMzYyLjgwMSAzNjAuNjAxIDM3MS4yMDEgMzYwLjYwMSAzNzEuMjAxQzM2My40MDEgMzc2LjgwMSAzNzQuMjAxIDM4Mi4wMDEgMzc0LjIwMSAzODIuMDAxTDM3Ny44MDEgMzc5LjYwMUMzNzYuMjAxIDM3NC44MDEgMzg0LjYwMSAzNjguODAxIDM4NC42MDEgMzY4LjgwMUMzODcuNDAxIDM3NS4yMDEgMzkzLjQwMSAzNjcuMjAxIDM5My40MDEgMzY3LjIwMUMzOTcuMDAxIDM0Mi44MDEgNDA5LjQwMSAzNTcuMjAxIDQwOS40MDEgMzU3LjIwMUM0MTMuNDAxIDM1OC40MDEgNDE0LjYwMSAzNTEuNjAxIDQxNC42MDEgMzUxLjYwMUM0MTguMjAxIDM0MS4yMDEgNDE0LjYwMSAzMjcuNjAxIDQxNC42MDEgMzI3LjYwMUM0MTguMjAxIDMyNy4yMDEgNDI3LjgwMSAzMzMuMjAxIDQyNy44MDEgMzMzLjIwMUM0MzAuNjAxIDMyOS42MDEgNDIxLjQwMSAzMTIuODAxIDQyNS40MDEgMzE1LjIwMUM0MjkuNDAxIDMxNy42MDEgNDMzLjgwMSAzMTkuMjAxIDQzMy44MDEgMzE5LjIwMUM0MzQuNjAxIDMxNy4yMDEgNDI0LjYwMSAzMDQuODAxIDQyNC42MDEgMzA0LjgwMUM0MjAuMjAxIDMwMiA0MTUuMDAxIDI4MS42IDQxNS4wMDEgMjgxLjZDNDIyLjIwMSAyODUuMiA0MTIuMjAxIDI3MCA0MTIuMjAxIDI3MEM0MTIuMjAxIDI2Ni44IDQxOC4yMDEgMjU1LjYgNDE4LjIwMSAyNTUuNkM0MTcuNDAxIDI0OC44IDQxOC4yMDEgMjQ5LjIgNDE4LjIwMSAyNDkuMkM0MjEuMDAxIDI1MC40IDQyOS4wMDEgMjUyIDQyMi4yMDEgMjQ1LjZDNDE1LjQwMSAyMzkuMiA0MjMuMDAxIDIzNC40IDQyMy4wMDEgMjM0LjRDNDI3LjQwMSAyMzEuNiA0MTMuODAxIDIzMiA0MTMuODAxIDIzMkM0MDguNjAxIDIyNy42IDQwOS4wMDEgMjIzLjYgNDA5LjAwMSAyMjMuNkM0MTcuMDAxIDIyNS42IDQwMi42MDEgMjExLjIgNDAwLjIwMSAyMDcuNkMzOTcuODAxIDIwNCA0MDcuNDAxIDE5OC44IDQwNy40MDEgMTk4LjhDNDIwLjYwMSAxOTUuMiA0MDkuMDAxIDE5MiA0MDkuMDAxIDE5MkMzODkuNDAxIDE5Mi40IDQwMC4yMDEgMTgxLjYgNDAwLjIwMSAxODEuNkM0MDYuMjAxIDE4MiA0MDQuNjAxIDE3OS42IDQwNC42MDEgMTc5LjZDMzk5LjQwMSAxNzguNCAzODkuODAxIDE3MiAzODkuODAxIDE3MkMzODUuODAxIDE2OC40IDM4OS40MDEgMTY5LjIgMzg5LjQwMSAxNjkuMkM0MDYuMjAxIDE3MC40IDM3Ny40MDEgMTU5LjIgMzc3LjQwMSAxNTkuMkMzODUuNDAxIDE1OS4yIDM2Ny40MDEgMTQ4LjggMzY3LjQwMSAxNDguOEMzNjUuNDAxIDE0Ny4yIDM2Mi4yMDEgMTM5LjYgMzYyLjIwMSAxMzkuNkMzNTYuMjAxIDEzNC40IDM1MS40MDEgMTI3LjYgMzUxLjQwMSAxMjcuNkMzNTEuMDAxIDEyMy4yIDM0Ni4yMDEgMTE4LjQgMzQ2LjIwMSAxMTguNEMzMzQuNjAxIDEwNC44IDMyOS4wMDEgMTA1LjIgMzI5LjAwMSAxMDUuMkMzMTQuMjAxIDEwMS42IDMwOS4wMDEgMTAyLjQgMzA5LjAwMSAxMDIuNEwyNTYuMiAxMDYuOEMyMjkuOCAxMTkuNiAyMzcuNiAxNDAuNiAyMzcuNiAxNDAuNkMyNDQgMTQ5IDI1My4yIDE0NS4yIDI1My4yIDE0NS4yQzI1Ny44IDEzOSAyNjkuNCAxNDEuMiAyNjkuNCAxNDEuMkMyODkuODAxIDE0NC40IDI4Ny4yMDEgMTQwLjggMjg3LjIwMSAxNDAuOEMyODQuODAxIDEzNi4yIDI2OC42IDEzMCAyNjguNCAxMjkuNEMyNjguMiAxMjguOCAyNTkuNCAxMjUuNCAyNTkuNCAxMjUuNEMyNTYuNCAxMjQuMiAyNTIgMTE1IDI1MiAxMTVDMjQ4LjggMTExLjYgMjY0LjYgMTE3LjQgMjY0LjYgMTE3LjRDMjYzLjQgMTE4LjQgMjcwLjggMTIyLjQgMjcwLjggMTIyLjRDMjg4LjIwMSAxMjEuNCAyOTguODAxIDEzMi4yIDI5OC44MDEgMTMyLjJDMzA5LjYwMSAxNDguOCAzMDkuODAxIDE0MC42IDMwOS44MDEgMTQwLjZDMzEyLjYwMSAxMzEuMiAzMDAuODAxIDExMCAzMDAuODAxIDExMEMzMDEuMjAxIDEwOCAzMDkuNDAxIDExNC42IDMwOS40MDEgMTE0LjZDMzEwLjgwMSAxMTIuNiAzMTEuNjAxIDExOC40IDMxMS42MDEgMTE4LjRDMzExLjgwMSAxMjAuOCAzMTUuNjAxIDEyOC44IDMxNS42MDEgMTI4LjhDMzE4LjQwMSAxNDEuOCAzMjIuMDAxIDEzNC40IDMyMi4wMDEgMTM0LjRMMzI2LjYwMSAxNDMuOEMzMjguMDAxIDE0Ni40IDMyMi4wMDEgMTU0IDMyMi4wMDEgMTU0QzMyMS44MDEgMTU2LjggMzIyLjYwMSAxNTYuNiAzMTcuMDAxIDE2NC4yQzMxMS40MDEgMTcxLjggMzE0LjgwMSAxNzYuMiAzMTQuODAxIDE3Ni4yQzMxMy40MDEgMTgyLjggMzIyLjIwMSAxODIuNCAzMjIuMjAxIDE4Mi40QzMyNC44MDEgMTg0LjYgMzI4LjIwMSAxODQuNiAzMjguMjAxIDE4NC42QzMzMC4wMDEgMTg2LjYgMzMyLjQwMSAxODYgMzMyLjQwMSAxODZDMzM0LjAwMSAxODIuMiAzNDAuMjAxIDE4NC4yIDM0MC4yMDEgMTg0LjJDMzQxLjYwMSAxODEuOCAzNDkuODAxIDE4MS40IDM0OS44MDEgMTgxLjRDMzUwLjgwMSAxNzguOCAzNTEuMjAxIDE3Ny4yIDM1NC42MDEgMTc2LjZDMzU4LjAwMSAxNzYgMzMzLjQwMSAxMzMgMzMzLjQwMSAxMzNDMzM5LjgwMSAxMzIuMiAzMzEuNjAxIDExOS44IDMzMS42MDEgMTE5LjhDMzI5LjQwMSAxMTMuMiAzNDAuODAxIDEyNy44IDM0My4wMDEgMTI5LjJDMzQ1LjIwMSAxMzAuNiAzNDYuMjAxIDEzMi44IDM0NC42MDEgMTMyLjZDMzQzLjAwMSAxMzIuNCAzNDEuMjAxIDEzNC42IDM0Mi42MDEgMTM0LjhDMzQ0LjAwMSAxMzUgMzU3LjAwMSAxNTAgMzYwLjQwMSAxNjAuMkMzNjMuODAxIDE3MC40IDM2OS44MDEgMTc0LjQgMzc2LjAwMSAxODAuNEMzODIuMjAxIDE4Ni40IDM4MS40MDEgMjEwLjYgMzgxLjQwMSAyMTAuNkMzODEuMDAxIDIxOS40IDM4Ny4wMDEgMjMwIDM4Ny4wMDEgMjMwQzM4OS4wMDEgMjMzLjggMzg0LjgwMSAyNTIgMzg0LjgwMSAyNTJDMzgyLjgwMSAyNTQuMiAzODQuMjAxIDI1NSAzODQuMjAxIDI1NUMzODUuMjAxIDI1Ni4yIDM5Mi4wMDEgMjY5LjQgMzkyLjAwMSAyNjkuNEMzOTAuMjAxIDI2OS4yIDM5My44MDEgMjcyLjggMzkzLjgwMSAyNzIuOEMzOTkuMDAxIDI3OC44IDM5Mi42MDEgMjc1LjggMzkyLjYwMSAyNzUuOEMzODYuNjAxIDI3NC4yIDM5My42MDEgMjg0IDM5My42MDEgMjg0QzM5NC44MDEgMjg1LjggMzg1LjgwMSAyODEuMiAzODUuODAxIDI4MS4yQzM3Ni42MDEgMjgwLjYgMzg4LjIwMSAyODcuOCAzODguMjAxIDI4Ny44QzM5Ni44MDEgMjk1IDM4NS40MDEgMjkwLjYgMzg1LjQwMSAyOTAuNkMzODAuODAxIDI4OC44IDM4NC4wMDEgMjk1LjYgMzg0LjAwMSAyOTUuNkMzODcuMjAxIDI5Ny4yIDQwNC40MDEgMzA0LjIgNDA0LjQwMSAzMDQuMkM0MDQuODAxIDMwOC4wMDEgNDAxLjgwMSAzMTMuMDAxIDQwMS44MDEgMzEzLjAwMUM0MDIuMjAxIDMxNy4wMDEgNDAwLjAwMSAzMjAuNDAxIDQwMC4wMDEgMzIwLjQwMUMzOTguODAxIDMyOC42MDEgMzk4LjIwMSAzMjkuNDAxIDM5OC4yMDEgMzI5LjQwMUMzOTQuMDAxIDMyOS42MDEgMzg2LjYwMSAzNDMuNDAxIDM4Ni42MDEgMzQzLjQwMUMzODQuODAxIDM0Ni4wMDEgMzc0LjYwMSAzNTguMDAxIDM3NC42MDEgMzU4LjAwMUMzNzIuNjAxIDM2NS4wMDEgMzU0LjYwMSAzNTcuODAxIDM1NC42MDEgMzU3LjgwMUMzNDguMDAxIDM2MS4yMDEgMzUwLjAwMSAzNTcuODAxIDM1MC4wMDEgMzU3LjgwMUMzNDkuNjAxIDM1NS42MDEgMzU0LjQwMSAzNDkuNjAxIDM1NC40MDEgMzQ5LjYwMUMzNjEuNDAxIDM0Ny4wMDEgMzU4LjgwMSAzMzYuMjAxIDM1OC44MDEgMzM2LjIwMUMzNjIuODAxIDMzNC44MDEgMzUxLjYwMSAzMzIuMDAxIDM1MS44MDEgMzMwLjgwMUMzNTIuMDAxIDMyOS42MDEgMzU3LjgwMSAzMjguMjAxIDM1Ny44MDEgMzI4LjIwMUMzNjUuODAxIDMyNi4yMDEgMzYxLjQwMSAzMjMuODAxIDM2MS40MDEgMzIzLjgwMUMzNjAuODAxIDMxOS44MDEgMzYzLjgwMSAzMTQuMjAxIDM2My44MDEgMzE0LjIwMUMzNzUuNDAxIDMxMy40MDEgMzYzLjgwMSAyOTcuMiAzNjMuODAxIDI5Ny4yQzM1My4wMDEgMjg5LjYgMzUyLjAwMSAyODMuOCAzNTIuMDAxIDI4My44QzM2NC42MDEgMjc1LjYgMzU2LjQwMSAyNjMuMiAzNTYuNjAxIDI1OS42QzM1Ni44MDEgMjU2IDM1OC4wMDEgMjM0LjQgMzU4LjAwMSAyMzQuNEMzNTYuMDAxIDIyOC4yIDM1My4wMDEgMjE0LjYgMzUzLjAwMSAyMTQuNkMzNTUuMjAxIDIwOS40IDM2Mi42MDEgMTk2LjggMzYyLjYwMSAxOTYuOEMzNjUuNDAxIDE5Mi42IDM3NC4yMDEgMTg3LjggMzcyLjAwMSAxODQuOEMzNjkuODAxIDE4MS44IDM2Mi4wMDEgMTgzLjYgMzYyLjAwMSAxODMuNkMzNTQuMjAxIDE4Mi4yIDM1NC44MDEgMTg3LjQgMzU0LjgwMSAxODcuNEMzNTMuMjAxIDE4OC40IDM1Mi40MDEgMTkzLjQgMzUyLjQwMSAxOTMuNEMzNTEuNjggMjAxLjMzMyAzNDIuODAxIDIwNy42IDM0Mi44MDEgMjA3LjZDMzMxLjYwMSAyMTMuOCAzNDAuODAxIDIxNy44IDM0MC44MDEgMjE3LjhDMzQ2LjgwMSAyMjQuNCAzMzcuMDAxIDIyNC42IDMzNy4wMDEgMjI0LjZDMzI2LjAwMSAyMjIuOCAzMzQuMjAxIDIzMyAzMzQuMjAxIDIzM0MzNDUuMDAxIDI0NS44IDM0Mi4wMDEgMjQ4LjYgMzQyLjAwMSAyNDguNkMzMzEuODAxIDI0OS42IDM0NC40MDEgMjU4LjggMzQ0LjQwMSAyNTguOEMzNDQuNDAxIDI1OC44IDM0My42MDEgMjU2LjggMzQzLjgwMSAyNTguNkMzNDQuMDAxIDI2MC40IDM0Ny4wMDEgMjY0LjYgMzQ3LjgwMSAyNjYuNkMzNDguNjAxIDI2OC42IDM0NC42MDEgMjY4LjggMzQ0LjYwMSAyNjguOEMzNDUuMjAxIDI3OC40IDMyOS44MDEgMjc0LjIgMzI5LjgwMSAyNzQuMkMzMjkuODAxIDI3NC4yIDMyOS44MDEgMjc0LjIgMzI4LjIwMSAyNzQuNEMzMjYuNjAxIDI3NC42IDMxNS40MDEgMjczLjggMzA5LjYwMSAyNzEuNkMzMDMuODAxIDI2OS40IDI5Ny4wMDEgMjY5LjQgMjk3LjAwMSAyNjkuNEMyOTcuMDAxIDI2OS40IDI5My4wMDEgMjcxLjIgMjg1LjQgMjcxQzI3Ny44IDI3MC44IDI2OS44IDI3My42IDI2OS44IDI3My42QzI2NS40IDI3My4yIDI3NCAyNjguOCAyNzQuMiAyNjlDMjc0LjQgMjY5LjIgMjgwIDI2My42IDI3MiAyNjQuMkMyNTAuMjAzIDI2NS44MzUgMjM5LjQgMjU1LjYgMjM5LjQgMjU1LjZDMjM3LjQgMjU0LjIgMjM0LjggMjUxLjQgMjM0LjggMjUxLjRDMjI0LjggMjQ5LjQgMjM2LjIgMjYzLjggMjM2LjIgMjYzLjhDMjM3LjQgMjY1LjIgMjM2IDI2Ni4yIDIzNiAyNjYuMkMyMzUuMiAyNjQuNiAyMjcuNCAyNTkuMiAyMjcuNCAyNTkuMkMyMjQuNTg5IDI1OC4yMjcgMjIzLjIyNiAyNTYuODkzIDIyMC44OTUgMjU0LjQwN3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM0YzAwMDAiPgorICA8cGF0aCBkPSJNMTk3IDI0Mi44QzE5NyAyNDIuOCAyMDguNiAyNDguNCAyMTEuMiAyNTEuMkMyMTMuOCAyNTQgMjI3LjggMjY1LjQgMjI3LjggMjY1LjRDMjI3LjggMjY1LjQgMjIyLjQgMjYzLjQgMjE5LjggMjYxLjZDMjE3LjIgMjU5LjggMjA2LjQgMjUxLjYgMjA2LjQgMjUxLjZDMjA2LjQgMjUxLjYgMjAyLjYgMjQ1LjYgMTk3IDI0Mi44eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5Y2MzMiI+CisgIDxwYXRoIGQ9Ik0xMzguOTkxIDIxMS42MDNDMTM5LjMyOCAyMTEuNDU1IDEzOC44MDQgMjA4Ljc0MyAxMzguNiAyMDguMkMxMzcuNTc4IDIwNS40NzQgMTI4LjYgMjA0IDEyOC42IDIwNEMxMjguMzczIDIwNS4zNjUgMTI4LjMxOCAyMDYuOTYxIDEyOC40MjQgMjA4LjU5OUMxMjguNDI0IDIwOC41OTkgMTMzLjI5MiAyMTQuMTE4IDEzOC45OTEgMjExLjYwM3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM2NTk5MDAiPgorICA8cGF0aCBkPSJNMTM4Ljk5MSAyMTEuNDAzQzEzOC41NDIgMjExLjU2MSAxMzguOTc2IDIwOC42NjkgMTM4LjggMjA4LjJDMTM3Ljc3OCAyMDUuNDc0IDEyOC42IDIwMy45IDEyOC42IDIwMy45QzEyOC4zNzMgMjA1LjI2NSAxMjguMzE4IDIwNi44NjEgMTI4LjQyNCAyMDguNDk5QzEyOC40MjQgMjA4LjQ5OSAxMzIuNjkyIDIxMy42MTggMTM4Ljk5MSAyMTEuNDAzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMzQuNiAyMTEuNTQ2QzEzMy45NzUgMjExLjU0NiAxMzMuNDY5IDIxMC40MDYgMTMzLjQ2OSAyMDlDMTMzLjQ2OSAyMDcuNTk1IDEzMy45NzUgMjA2LjQ1NSAxMzQuNiAyMDYuNDU1QzEzNS4yMjUgMjA2LjQ1NSAxMzUuNzMyIDIwNy41OTUgMTM1LjczMiAyMDlDMTM1LjczMiAyMTAuNDA2IDEzNS4yMjUgMjExLjU0NiAxMzQuNiAyMTEuNTQ2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMzQuNiAyMDl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTg5IDMwOS42MDFDODkgMzA5LjYwMSA4My40IDMxOS42MDEgMTA4LjIgMzEzLjYwMUMxMDguMiAzMTMuNjAxIDEyMi4yIDMxMi40MDEgMTI0LjYgMzEwLjAwMUMxMjUuOCAzMTAuODAxIDEzNC4xNjYgMzEzLjczNCAxMzcgMzE0LjQwMUMxNDMuOCAzMTYuMDAxIDE1Mi4yIDMwNiAxNTIuMiAzMDZDMTUyLjIgMzA2IDE1Ni44IDI5NS41IDE1OS42IDI5NS41QzE2Mi40IDI5NS41IDE1OS4yIDI5Ny4xIDE1OS4yIDI5Ny4xQzE1OS4yIDI5Ny4xIDE1Mi42IDMwNy4yMDEgMTUzIDMwOC44MDFDMTUzIDMwOC44MDEgMTQ3LjggMzI4LjgwMSAxMzEuOCAzMjkuNjAxQzEzMS44IDMyOS42MDEgMTE1LjY1IDMzMC41NTEgMTE3IDMzNi40MDFDMTE3IDMzNi40MDEgMTI1LjggMzM0LjAwMSAxMjguMiAzMzYuNDAxQzEyOC4yIDMzNi40MDEgMTM5IDMzNi4wMDEgMTMxIDM0Mi40MDFMMTI0LjIgMzU0LjAwMUMxMjQuMiAzNTQuMDAxIDEyNC4zNCAzNTcuOTE5IDExNC4yIDM1NC40MDFDMTA0LjQgMzUxLjAwMSA5NC4xIDMzOC4xMDEgOTQuMSAzMzguMTAxQzk0LjEgMzM4LjEwMSA3OC4xNSAzMjMuNTUxIDg5IDMwOS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTU5OTk5Ij4KKyAgPHBhdGggZD0iTTg3LjggMzEzLjYwMUM4Ny44IDMxMy42MDEgODUuOCAzMjMuMjAxIDEyMi42IDMxMi44MDFDMTIyLjYgMzEyLjgwMSAxMjcgMzEyLjgwMSAxMjkuNCAzMTMuNjAxQzEzMS44IDMxNC40MDEgMTQzLjggMzE3LjIwMSAxNDUuOCAzMTYuMDAxQzE0NS44IDMxNi4wMDEgMTM4LjYgMzI5LjYwMSAxMjcgMzI4LjAwMUMxMjcgMzI4LjAwMSAxMTMuOCAzMjkuNjAxIDExNC4yIDMzNC40MDFDMTE0LjIgMzM0LjQwMSAxMTguMiAzNDEuNjAxIDEyMyAzNDQuMDAxQzEyMyAzNDQuMDAxIDEyNS44IDM0Ni40MDEgMTI1LjQgMzQ5LjYwMUMxMjUgMzUyLjgwMSAxMjIuMiAzNTQuNDAxIDEyMC4yIDM1NS4yMDFDMTE4LjIgMzU2LjAwMSAxMTUgMzUyLjgwMSAxMTMuNCAzNTIuODAxQzExMS44IDM1Mi44MDEgMTAzLjQgMzQ2LjQwMSA5OSAzNDEuNjAxQzk0LjYgMzM2LjgwMSA4Ni4yIDMyNC44MDEgODYuNiAzMjIuMDAxQzg3IDMxOS4yMDEgODcuOCAzMTMuNjAxIDg3LjggMzEzLjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNiMjY1NjUiPgorICA8cGF0aCBkPSJNOTEgMzMxLjA1MUM5My42IDMzNS4wMDEgOTYuOCAzMzkuMjAxIDk5IDM0MS42MDFDMTAzLjQgMzQ2LjQwMSAxMTEuOCAzNTIuODAxIDExMy40IDM1Mi44MDFDMTE1IDM1Mi44MDEgMTE4LjIgMzU2LjAwMSAxMjAuMiAzNTUuMjAxQzEyMi4yIDM1NC40MDEgMTI1IDM1Mi44MDEgMTI1LjQgMzQ5LjYwMUMxMjUuOCAzNDYuNDAxIDEyMyAzNDQuMDAxIDEyMyAzNDQuMDAxQzExOS45MzQgMzQyLjQ2OCAxMTcuMTk0IDMzOC45NzYgMTE1LjYxNSAzMzYuNjUzQzExNS42MTUgMzM2LjY1MyAxMTUuOCAzMzkuMjAxIDExMC42IDMzOC40MDFDMTA1LjQgMzM3LjYwMSAxMDAuMiAzMzQuODAxIDk4LjYgMzMxLjYwMUM5NyAzMjguNDAxIDk0LjYgMzI2LjAwMSA5Ni4yIDMyOS42MDFDOTcuOCAzMzMuMjAxIDEwMC4yIDMzNi44MDEgMTAxLjggMzM3LjIwMUMxMDMuNCAzMzcuNjAxIDEwMyAzMzguODAxIDEwMC42IDMzOC40MDFDOTguMiAzMzguMDAxIDk1LjQgMzM3LjYwMSA5MSAzMzIuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5MjYwMCI+CisgIDxwYXRoIGQ9Ik04OC40IDMxMC4wMDFDODguNCAzMTAuMDAxIDkwLjIgMjk2LjQgOTEuNCAyOTIuNEM5MS40IDI5Mi40IDkwLjYgMjg1LjYgOTMgMjgxLjRDOTUuNCAyNzcuMiA5Ny40IDI3MSAxMDAuNCAyNjUuNkMxMDMuNCAyNjAuMiAxMDMuNiAyNTYuMiAxMDcuNiAyNTQuNkMxMTEuNiAyNTMgMTE3LjYgMjQ0LjQgMTIwLjQgMjQzLjRDMTIzLjIgMjQyLjQgMTIzIDI0My4yIDEyMyAyNDMuMkMxMjMgMjQzLjIgMTI5LjggMjI4LjQgMTQzLjQgMjMyLjRDMTQzLjQgMjMyLjQgMTI3LjIgMjI5LjYgMTQzIDIyMC4yQzE0MyAyMjAuMiAxMzguMiAyMjEuMyAxNDEuNSAyMTQuM0MxNDMuNzAxIDIwOS42MzIgMTQzLjIgMjE2LjQgMTMyLjIgMjI4LjJDMTMyLjIgMjI4LjIgMTI3LjIgMjM2LjggMTIyIDIzOS44QzExNi44IDI0Mi44IDEwNC44IDI0OS44IDEwMy42IDI1My42QzEwMi40IDI1Ny40IDk5LjIgMjYzLjIgOTcuMiAyNjQuOEM5NS4yIDI2Ni40IDkyLjQgMjcwLjYgOTIgMjc0QzkyIDI3NCA5MC44IDI3OCA4OS40IDI3OS4yQzg4IDI4MC40IDg3LjggMjgzLjYgODcuOCAyODUuNkM4Ny44IDI4Ny42IDg1LjggMjkwLjQgODYgMjkyLjhDODYgMjkyLjggODYuOCAzMTEuODAxIDg2LjQgMzEzLjgwMUw4OC40IDMxMC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTc5LjggMzE0LjYwMUM3OS44IDMxNC42MDEgNzcuOCAzMTMuMjAxIDczLjQgMzE5LjIwMUM3My40IDMxOS4yMDEgODAuNyAzNTIuMjAxIDgwLjcgMzUzLjYwMUM4MC43IDM1My42MDEgODEuOCAzNTEuNTAxIDgwLjUgMzQ0LjMwMUM3OS4yIDMzNy4xMDEgNzguMyAzMjQuNDAxIDc4LjMgMzI0LjQwMUw3OS44IDMxNC42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjOTkyNjAwIj4KKyAgPHBhdGggZD0iTTEwMS40IDI1NEMxMDEuNCAyNTQgODMuOCAyNTcuMiA4NC4yIDI4Ni40TDgzLjQgMzExLjIwMUM4My40IDMxMS4yMDEgODIuMiAyODUuNiA4MSAyODRDNzkuOCAyODIuNCA4My44IDI3MS4yIDgwLjYgMjc3LjJDODAuNiAyNzcuMiA2Ni42IDI5MS4yIDc0LjYgMzEyLjQwMUM3NC42IDMxMi40MDEgNzYuMSAzMTUuNzAxIDczLjEgMzExLjEwMUM3My4xIDMxMS4xMDEgNjguNSAyOTguNSA2OS42IDI5Mi4xQzY5LjYgMjkyLjEgNjkuOCAyODkuOSA3MS43IDI4Ny4xQzcxLjcgMjg3LjEgODAuMyAyNzUuNCA4MyAyNzMuMUM4MyAyNzMuMSA4NC44IDI1OC43IDEwMC4yIDI1My41QzEwMC4yIDI1My41IDEwNS45IDI1MS4yIDEwMS40IDI1NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjQwLjggMTg3LjhDMjQxLjQ2IDE4Ny40NDYgMjQxLjQ1MSAxODYuNDc2IDI0Mi4wMzEgMTg2LjMwM0MyNDMuMTggMTg1Ljk1OSAyNDMuMzQ0IDE4NC44OTIgMjQzLjg2MiAxODQuMTA4QzI0NC43MzUgMTgyLjc4OSAyNDQuOTI4IDE4MS4yNTYgMjQ1LjUxIDE3OS43NjVDMjQ1Ljc4MiAxNzkuMDY1IDI0NS44MDkgMTc4LjExIDI0NS40OTYgMTc3LjQ1QzI0NC4zMjIgMTc0Ljk2OSAyNDMuNjIgMTcyLjUyIDI0Mi4xNzggMTcwLjA5NEMyNDEuOTEgMTY5LjY0NCAyNDEuNjQ4IDE2OC44NSAyNDEuNDQ3IDE2OC4yNTJDMjQwLjk4NCAxNjYuODY4IDIzOS43MjcgMTY1Ljg3NyAyMzguODY3IDE2NC41NTdDMjM4LjU3OSAxNjQuMTE2IDIzOS4xMDQgMTYzLjE5MSAyMzguMzg4IDE2My4xMDdDMjM3LjQ5MSAxNjMuMDAyIDIzNi4wNDIgMTYyLjQyMiAyMzUuODA5IDE2My40NDhDMjM1LjIyMSAxNjYuMDM1IDIzNi4yMzIgMTY4LjU1OCAyMzcuMiAxNzFDMjM2LjQxOCAxNzEuNjkyIDIzNi43NTIgMTcyLjYxMyAyMzYuOTA0IDE3My4zOEMyMzcuNjE0IDE3Ni45ODYgMjM2LjQxNiAxODAuMzM4IDIzNS42NTUgMTgzLjgxMkMyMzUuNjMyIDE4My45MTYgMjM1Ljk3NCAxODQuMTE0IDIzNS45NDYgMTg0LjE3NkMyMzQuNzI0IDE4Ni44NjIgMjMzLjI3MiAxODkuMzA3IDIzMS40NTMgMTkxLjY4OEMyMzAuNjk1IDE5Mi42OCAyMjkuODIzIDE5My41OTYgMjI5LjMyNiAxOTQuNjU5QzIyOC45NTggMTk1LjQ0NiAyMjguNTUgMTk2LjQxMiAyMjguOCAxOTcuNEMyMjUuMzY1IDIwMC4xOCAyMjMuMTE1IDIwNC4wMjUgMjIwLjUwNCAyMDcuODcxQzIyMC4wNDIgMjA4LjU1MSAyMjAuMzMzIDIwOS43NiAyMjAuODg0IDIxMC4wMjlDMjIxLjY5NyAyMTAuNDI3IDIyMi42NTMgMjA5LjQwMyAyMjMuMTIzIDIwOC41NTdDMjIzLjUxMiAyMDcuODU5IDIyMy44NjUgMjA3LjIwOSAyMjQuMzU2IDIwNi41NjZDMjI0LjQ4OSAyMDYuMzkxIDIyNC4zMSAyMDUuOTcyIDIyNC40NDUgMjA1Ljg1MUMyMjcuMDc4IDIwMy41MDQgMjI4Ljc0NyAyMDAuNTY4IDIzMS4yIDE5OC4yQzIzMy4xNSAxOTcuODcxIDIzNC42ODcgMTk2Ljg3MyAyMzYuNDM1IDE5NS44NkMyMzYuNzQzIDE5NS42ODEgMjM3LjI2NyAxOTUuOTMgMjM3LjU1NyAxOTUuNzM1QzIzOS4zMSAxOTQuNTU4IDIzOS4zMDggMTkyLjUyMiAyMzkuNDE0IDE5MC42MTJDMjM5LjQ2NCAxODkuNzI4IDIzOS42NiAxODguNDExIDI0MC44IDE4Ny44eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMzEuOTU5IDE4My4zMzRDMjMyLjA4MyAxODMuMjU3IDIzMS45MjggMTgyLjgzNCAyMzIuMDM3IDE4Mi42MThDMjMyLjE5OSAxODIuMjk0IDIzMi42MDIgMTgyLjEwNiAyMzIuNzY0IDE4MS43ODJDMjMyLjg3MyAxODEuNTY2IDIzMi43MSAxODEuMTg2IDIzMi44NDYgMTgxLjA0NEMyMzUuMTc5IDE3OC41OTcgMjM1LjQzNiAxNzUuNTczIDIzNC40IDE3Mi42QzIzNS40MjQgMTcxLjk4IDIzNS40ODUgMTcwLjcxOCAyMzUuMDYgMTY5Ljg3MUMyMzQuMjA3IDE2OC4xNzEgMjM0LjAxNCAxNjYuMjQ1IDIzMy4wMzkgMTY0LjcwMkMyMzIuMjM3IDE2My40MzMgMjMwLjY1OSAxNjIuMTg5IDIyOS4yODggMTYzLjQ5MkMyMjguODY3IDE2My44OTIgMjI4LjU0NiAxNjQuNjc5IDIyOC44MjQgMTY1LjM5MUMyMjguODg4IDE2NS41NTQgMjI5LjE3MyAxNjUuNyAyMjkuMTQ2IDE2NS43ODJDMjI5LjAzOSAxNjYuMTA2IDIyOC40OTMgMTY2LjMzIDIyOC40ODcgMTY2LjYwMkMyMjguNDU3IDE2OC4wOTggMjI3LjUwMyAxNjkuNjA5IDIyOC4xMzMgMTcwLjkzOEMyMjguOTA1IDE3Mi41NjcgMjI5LjcyNCAxNzQuNDI0IDIzMC40IDE3Ni4yQzIyOS4xNjYgMTc4LjMxNiAyMzAuMTk5IDE4MC43NjUgMjI4LjQ0NiAxODIuNjQyQzIyOC4zMSAxODIuNzg4IDIyOC4zMTkgMTgzLjE3NCAyMjguNDQxIDE4My4zNzZDMjI4LjczMyAxODMuODYyIDIyOS4xMzkgMTg0LjI2OCAyMjkuNjI1IDE4NC41NkMyMjkuODI3IDE4NC42ODEgMjMwLjE3NSAxODQuNjgzIDIzMC4zNzUgMTg0LjU1OUMyMzAuOTUzIDE4NC4xOTcgMjMxLjM1MSAxODMuNzEgMjMxLjk1OSAxODMuMzM0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yOTQuNzcxIDE3My4wMjNDMjk2LjE2IDE3NC44MTUgMjk2LjQ1IDE3Ny42MSAyOTQuNDAxIDE3OUMyOTQuOTUxIDE4Mi4zMDkgMjk4LjMwMiAxODAuMzMgMzAwLjQwMSAxNzkuOEMzMDAuMjkyIDE3OS40MTIgMzAwLjUxOSAxNzkuMDY4IDMwMC44MDIgMTc5LjA2M0MzMDEuODU5IDE3OS4wNDggMzAyLjUzOSAxNzguMDE2IDMwMy42MDEgMTc4LjJDMzA0LjAzNSAxNzYuNjQzIDMwNS42NzMgMTc1Ljk0MSAzMDYuMzE3IDE3NC41NjFDMzA4LjA0MyAxNzAuODY2IDMwNy40NTIgMTY2LjU5MyAzMDQuODY4IDE2My4zNDdDMzA0LjY2NiAxNjMuMDkzIDMwNC44ODMgMTYyLjU3NiAzMDQuNzU5IDE2Mi4yMTRDMzA0LjAwMyAxNjAuMDAzIDMwMS45MzUgMTU5LjY4OCAzMDAuMDAxIDE1OUMyOTguODI0IDE1NS4xMjUgMjk4LjE2MyAxNTEuMDk0IDI5Ni40MDEgMTQ3LjRDMjk0Ljc4NyAxNDcuMTUgMjk0LjA4OSAxNDUuNDExIDI5Mi43NTIgMTQ0LjY5MUMyOTEuNDE5IDE0My45NzIgMjkwLjg1MSAxNDUuNTUxIDI5MC44OTIgMTQ2LjU5N0MyOTAuODk5IDE0Ni44MDIgMjkxLjM1MSAxNDcuMDI2IDI5MS4xODEgMTQ3LjM5MUMyOTEuMTA1IDE0Ny41NTUgMjkwLjg0NSAxNDcuNjY2IDI5MC44NDUgMTQ3LjhDMjkwLjg0NiAxNDcuOTM1IDI5MS4wNjcgMTQ4LjA2NiAyOTEuMjAxIDE0OC4yQzI5MC4yODMgMTQ5LjAyIDI4OC44NiAxNDkuNDk3IDI4OC41NjUgMTUwLjY0MkMyODcuNjExIDE1NC4zNTIgMjkwLjE4NCAxNTcuNDc3IDI5MS44NTIgMTYwLjY3OEMyOTIuNDQzIDE2MS44MTMgMjkxLjcwNyAxNjMuMDg0IDI5MC45NDcgMTY0LjI5MkMyOTAuNTA5IDE2NC45ODcgMjkwLjYxNyAxNjYuMTE0IDI5MC44OTMgMTY2Ljk3QzI5MS42NDUgMTY5LjMwMSAyOTMuMjM2IDE3MS4wNCAyOTQuNzcxIDE3My4wMjN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTI1Ny42MTEgMTkxLjQwOUMyNTYuMTI0IDE5My4yNiAyNTIuNzEyIDE5NS44MjkgMjU1LjYyOSAxOTcuNzU3QzI1NS44MjMgMTk3Ljg4NiAyNTYuMTkzIDE5Ny44OSAyNTYuMzY2IDE5Ny43NTZDMjU4LjM4NyAxOTYuMTkxIDI2MC4zOSAxOTUuMjg4IDI2Mi44MjYgMTk0LjcwNkMyNjIuOTUgMTk0LjY3NyAyNjMuMjI0IDE5NS4xNDQgMjYzLjU5MyAxOTQuOTgzQzI2NS4yMDYgMTk0LjI4IDI2Ny4yMTYgMTk0LjMzOCAyNjguNCAxOTNDMjcyLjE2NyAxOTMuMjI0IDI3NS43MzIgMTkyLjEwOCAyNzkuMTIzIDE5MC44QzI4MC4yODQgMTkwLjM1MiAyODEuNTU0IDE4OS43OTMgMjgyLjc1NSAxODkuMjkxQzI4NC4xMzEgMTg4LjcxNSAyODUuMzM1IDE4Ny43ODcgMjg2LjQ0NyAxODYuNjQ2QzI4Ni41OCAxODYuNTEgMjg2LjkzNCAxODYuNiAyODcuMjAxIDE4Ni42QzI4Ny4xNjEgMTg1LjczNyAyODguMTIzIDE4NS42MSAyODguMzcgMTg0Ljk4OEMyODguNDYyIDE4NC43NTYgMjg4LjMxMiAxODQuMzYgMjg4LjQ0NSAxODQuMjU4QzI5MC41ODMgMTgyLjYyOCAyOTEuNTAzIDE4MC42MSAyOTAuMzM0IDE3OC4yMzNDMjkwLjA0OSAxNzcuNjU1IDI4OS44IDE3Ny4wMzcgMjg5LjIzNCAxNzYuNTYxQzI4OC4xNDkgMTc1LjY1IDI4Ny4wNDcgMTc2LjUwNCAyODYgMTc2LjJDMjg1Ljg0MSAxNzYuODI4IDI4NS4xMTIgMTc2LjY1NiAyODQuNzI2IDE3Ni44NTRDMjgzLjg2NyAxNzcuMjkzIDI4Mi41MzQgMTc2LjcwOCAyODEuNjc1IDE3Ny4xNDZDMjgwLjMxMyAxNzcuODQxIDI3OS4wNzIgMTc4LjAxIDI3Ny42NSAxNzguMzg3QzI3Ny4zMzggMTc4LjQ2OSAyNzYuNTYgMTc4LjM3MyAyNzYuNCAxNzlDMjc2LjI2NiAxNzguODY2IDI3Ni4xMTggMTc4LjYzMiAyNzYuMDEyIDE3OC42NTRDMjc0LjEwNCAxNzkuMDUgMjcyLjg0NCAxNzkuMjY0IDI3MS41NDMgMTgwLjk1NkMyNzEuNDQgMTgxLjA4OSAyNzAuOTk4IDE4MC45MSAyNzAuODM5IDE4MS4wNDVDMjY5Ljg4MiAxODEuODUzIDI2OS40NzcgMTgzLjA4NyAyNjguMzc2IDE4My43NTlDMjY4LjE3NSAxODMuODgyIDI2Ny44MjMgMTgzLjcxNCAyNjcuNjI5IDE4My44NDNDMjY2Ljk4MyAxODQuMjc0IDI2Ni42MTYgMTg0LjkxNSAyNjUuOTc0IDE4NS4zNjJDMjY1LjY0NSAxODUuNTkxIDI2NS4yNDUgMTg1LjI2NiAyNjUuMjc3IDE4NS4wMUMyNjUuNTIyIDE4My4wNjMgMjY2LjE3NSAxODEuMjc2IDI2NS42IDE3OS40QzI2Ny42NzcgMTc2Ljg4IDI3MC4xOTQgMTc0LjkzMSAyNzIgMTcyLjJDMjcyLjAxNSAxNzAuMDM0IDI3Mi43MDcgMTY3Ljg4OCAyNzIuNTk0IDE2NS44MTFDMjcyLjU4NCAxNjUuNjE4IDI3Mi4yOTYgMTY0Ljg4NSAyNzIuMTcgMTY0LjUzOEMyNzEuODU4IDE2My42ODQgMjcyLjc2NCAxNjIuNjE4IDI3MS45MiAxNjEuODk0QzI3MC41MTYgMTYwLjY5MSAyNjkuMjI0IDE2MS41NjcgMjY4LjQgMTYzQzI2Ni41NjIgMTYzLjM5IDI2NC40OTYgMTY0LjA4MyAyNjIuOTE4IDE2Mi44NDlDMjYxLjkxMSAxNjIuMDYyIDI2MS4zMzMgMTYxLjE1NiAyNjAuNTM0IDE2MC4xQzI1OS41NDkgMTU4Ljc5OCAyNTkuODg0IDE1Ny4zNjIgMjU5Ljk1NCAxNTUuNzk4QzI1OS45NiAxNTUuNjcgMjU5LjY0NSAxNTUuNTM0IDI1OS42NDUgMTU1LjRDMjU5LjY0NiAxNTUuMjY1IDI1OS44NjYgMTU1LjEzNCAyNjAgMTU1QzI1OS4yOTQgMTU0LjM3NCAyNTkuMDE5IDE1My4zMTYgMjU4IDE1M0MyNTguMzA1IDE1MS45MDggMjU3LjYyOSAxNTEuMDI0IDI1Ni43NTggMTUwLjcyMkMyNTQuNzYzIDE1MC4wMzEgMjUzLjA4NiAxNTEuOTQzIDI1MS4xOTQgMTUyLjAxNkMyNTAuNjggMTUyLjAzNSAyNTAuMjEzIDE1MC45OTcgMjQ5LjU2NCAxNTAuNjcyQzI0OS4xMzIgMTUwLjQ1NiAyNDguNDI4IDE1MC40MjMgMjQ4LjA2NiAxNTAuNjg5QzI0Ny4zNzggMTUxLjE5MyAyNDYuNzg5IDE1MS4zMDcgMjQ2LjAzMSAxNTEuNTEyQzI0NC40MTQgMTUxLjk0OCAyNDMuMTM2IDE1My4wNDIgMjQxLjY1NiAxNTMuODk3QzI0MC4xNzEgMTU0Ljc1NCAyMzkuMjE2IDE1Ni4xOTEgMjM4LjEzNiAxNTcuNTExQzIzNy4xOTUgMTU4LjY2MyAyMzcuMDU5IDE2MS4wNzcgMjM4LjQ3OSAxNjEuNTc3QzI0MC4zMjIgMTYyLjIyNyAyNDEuNjI2IDE1OS41MjQgMjQzLjU5MiAxNTkuODVDMjQzLjkwNCAxNTkuOTAxIDI0NC4xMSAxNjAuMjEyIDI0NCAxNjAuNkMyNDQuMzg5IDE2MC43MDkgMjQ0LjYwNyAxNjAuNDggMjQ0LjggMTYwLjJDMjQ1LjY1OCAxNjEuMjE5IDI0Ni44MjIgMTYxLjU1NiAyNDcuNzYgMTYyLjQyOUMyNDguNzMgMTYzLjMzMyAyNTAuNDc2IDE2Mi45MTUgMjUxLjQ5MSAxNjMuOTEyQzI1My4wMiAxNjUuNDE0IDI1Mi40NjEgMTY4LjA5NSAyNTQuNCAxNjkuNEMyNTMuODE0IDE3MC43MTMgMjUzLjIwNyAxNzEuOTkgMjUyLjg3MiAxNzMuNDE3QzI1Mi41OSAxNzQuNjIzIDI1My41ODQgMTc1LjgyIDI1NC43OTUgMTc1LjcyOUMyNTYuMDUzIDE3NS42MzUgMjU2LjMxNSAxNzQuODc2IDI1Ni44IDE3My44QzI1Ny4wNjcgMTc0LjA2NyAyNTcuNTM2IDE3NC4zNjQgMjU3LjQ5NSAxNzQuNThDMjU3LjAzOCAxNzYuOTY3IDI1Ni4wMTEgMTc4Ljk2IDI1NS41NTMgMTgxLjM5MUMyNTUuNDk0IDE4MS43MDggMjU1LjE4OSAxODEuOTEgMjU0LjggMTgxLjhDMjU0LjMzMiAxODUuOTQ5IDI1MC4yOCAxODguMzQzIDI0Ny43MzUgMTkxLjUwOEMyNDcuMzMyIDE5Mi4wMSAyNDcuMzI4IDE5My4yNTkgMjQ3LjczNyAxOTMuNjYyQzI0OS4xNCAxOTUuMDQ5IDI1MS4xIDE5My41MDMgMjUyLjggMTkzQzI1My4wMTMgMTkxLjc5NCAyNTMuODcyIDE5MC44NTIgMjU1LjIwNCAxOTAuOTA4QzI1NS40NiAxOTAuOTE4IDI1NS42OTUgMTkwLjM3NiAyNTYuMDE5IDE5MC4yNDZDMjU2LjM2NyAxOTAuMTA4IDI1Ni44NjkgMTkwLjMzMiAyNTcuMTU1IDE5MC4xMzRDMjU4Ljg4NCAxODguOTM5IDI2MC4yOTIgMTg3LjgzMyAyNjIuMDMgMTg2LjY0NEMyNjIuMjIyIDE4Ni41MTMgMjYyLjU2NiAxODYuNjcyIDI2Mi43ODIgMTg2LjU2NEMyNjMuMTA3IDE4Ni40MDIgMjYzLjI5NCAxODYuMDE1IDI2My42MTcgMTg1LjgzQzI2My45NjUgMTg1LjYzIDI2NC4yMDcgMTg1LjkyIDI2NC40IDE4Ni4yQzI2My43NTQgMTg2LjU0OSAyNjMuNzUgMTg3LjUwNiAyNjMuMTY4IDE4Ny43MDhDMjYyLjM5MyAxODcuOTc2IDI2MS44MzIgMTg4LjQ4OSAyNjEuMTU4IDE4OC45MzZDMjYwLjg2NiAxODkuMTI5IDI2MC4yMDcgMTg4Ljg4MSAyNjAuMTAzIDE4OS4wNkMyNTkuNTA1IDE5MC4wODggMjU4LjMyMSAxOTAuNTI2IDI1Ny42MTEgMTkxLjQwOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjAyLjIgMTQyQzIwMi4yIDE0MiAxOTIuOTYyIDEzOS4xMjggMTgxLjggMTY0LjhDMTgxLjggMTY0LjggMTc5LjQgMTcwIDE3NyAxNzJDMTc0LjYgMTc0IDE2My40IDE3Ny42IDE2MS40IDE4MS42TDE1MSAxOTcuNkMxNTEgMTk3LjYgMTY1LjggMTgxLjYgMTY5IDE3OS4yQzE2OSAxNzkuMiAxNzcgMTcwLjggMTczLjggMTc3LjZDMTczLjggMTc3LjYgMTU5LjggMTg4LjQgMTYxIDE5Ny42QzE2MSAxOTcuNiAxNTUuNCAyMTIgMTU0LjYgMjE0QzE1NC42IDIxNCAxNzAuNiAxODIgMTczIDE4MC44QzE3NS40IDE3OS42IDE3Ni42IDE3OS42IDE3NS40IDE4My4yQzE3NC4yIDE4Ni44IDE3My44IDIwMy4yIDE3MSAyMDUuMkMxNzEgMjA1LjIgMTc5IDE4NC44IDE3OC4yIDE4MS42QzE3OC4yIDE4MS42IDE4MS40IDE3OCAxODMuOCAxODMuMkwxODIuNiAxOTkuMkwxODcgMjExLjJDMTg3IDIxMS4yIDE4NC42IDIwMCAxODYuMiAxODQuNEMxODYuMiAxODQuNCAxODQuMiAxNzQgMTg4LjIgMTc5LjZDMTkyLjIgMTg1LjIgMjAxLjggMTkxLjIgMjAxLjggMTk2QzIwMS44IDE5NiAxOTYuNiAxNzguNCAxODcuNCAxNzMuNkwxODMuNCAxNzkuNkwxODIuMiAxNzcuNkMxODIuMiAxNzcuNiAxNzguNiAxNzYuOCAxODMgMTcwQzE4Ny40IDE2My4yIDE4NyAxNjIuNCAxODcgMTYyLjRDMTg3IDE2Mi40IDE5My40IDE2OS42IDE5NSAxNjkuNkMxOTUgMTY5LjYgMjA4LjIgMTYyIDIwOS40IDE4Ni40QzIwOS40IDE4Ni40IDIxNi4yIDE3MiAyMDcgMTY1LjJDMjA3IDE2NS4yIDE5Mi4yIDE2My4yIDE5My40IDE1OEwyMDAuNiAxNDUuNkMyMDQuMiAxNDAuNCAyMDIuNiAxNDMuMiAyMDIuNiAxNDMuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTgyLjIgMTU4LjRDMTgyLjIgMTU4LjQgMTY5LjQgMTU4LjQgMTY2LjIgMTYzLjZMMTU5IDE3My4yQzE1OSAxNzMuMiAxNzYuMiAxNjMuMiAxODAuMiAxNjJDMTg0LjIgMTYwLjggMTgyLjIgMTU4LjQgMTgyLjIgMTU4LjR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE0Mi4yIDE2NC44QzE0Mi4yIDE2NC44IDE0MC4yIDE2NiAxMzkuOCAxNjguOEMxMzkuNCAxNzEuNiAxMzcgMTcyIDEzNy44IDE3NC44QzEzOC42IDE3Ny42IDE0MC42IDE4MCAxNDAuNiAxNzZDMTQwLjYgMTcyIDE0Mi4yIDE3MCAxNDMgMTY4LjhDMTQzLjggMTY3LjYgMTQ1LjQgMTYzLjIgMTQyLjIgMTY0Ljh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEzMy40IDIyNkMxMzMuNCAyMjYgMTI1IDIyMiAxMjEuOCAyMTguNEMxMTguNiAyMTQuOCAxMTkuMDUyIDIxOS45NjYgMTE0LjIgMjE5LjZDMTA4LjM1MyAyMTkuMTU5IDEwOS40IDIwMy4yIDEwOS40IDIwMy4yTDEwNS40IDIxMC44QzEwNS40IDIxMC44IDEwNC4yIDIyNS4yIDExMi4yIDIyMi44QzExNi4xMDcgMjIxLjYyOCAxMTcuNCAyMjMuMiAxMTUuOCAyMjRDMTE0LjIgMjI0LjggMTIxLjQgMjI1LjIgMTE4LjYgMjI2LjhDMTE1LjggMjI4LjQgMTMwLjIgMjIzLjIgMTI3LjggMjMzLjZMMTMzLjQgMjI2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMjAuOCAyNDAuNEMxMjAuOCAyNDAuNCAxMDUuNCAyNDQuOCAxMDEuOCAyMzUuMkMxMDEuOCAyMzUuMiA5NyAyMzcuNiA5OS4yIDI0MC42QzEwMS40IDI0My42IDEwMi42IDI0NCAxMDIuNiAyNDRDMTAyLjYgMjQ0IDEwOCAyNDUuMiAxMDcuNCAyNDZDMTA2LjggMjQ2LjggMTA0LjQgMjUwLjIgMTA0LjQgMjUwLjJDMTA0LjQgMjUwLjIgMTE0LjYgMjQ0LjIgMTIwLjggMjQwLjR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTM0OS4yMDEgMzE4LjYwMUMzNDguNzc0IDMyMC43MzUgMzQ3LjEwMyAzMjEuNTM2IDM0NS4yMDEgMzIyLjIwMUMzNDMuMjg0IDMyMS4yNDMgMzQwLjY4NiAzMTguMTM3IDMzOC44MDEgMzIwLjIwMUMzMzguMzI3IDMxOS43MjEgMzM3LjU0OCAzMTkuNjYxIDMzNy4yMDQgMzE4Ljk5OUMzMzYuNzM5IDMxOC4xMDEgMzM3LjAxMSAzMTcuMDU1IDMzNi42NjkgMzE2LjI1N0MzMzYuMTI0IDMxNC45ODUgMzM1LjQxNSAzMTMuNjE5IDMzNS42MDEgMzEyLjIwMUMzMzcuNDA3IDMxMS40ODkgMzM4LjAwMiAzMDkuNTgzIDMzNy41MjggMzA3LjgyQzMzNy40NTkgMzA3LjU2MyAzMzcuMDMgMzA3LjM2NiAzMzcuMjMgMzA3LjAxN0MzMzcuNDE2IDMwNi42OTQgMzM3LjczNCAzMDYuNDY3IDMzOC4wMDEgMzA2LjJDMzM3Ljg2NiAzMDYuMzM1IDMzNy43MjEgMzA2LjU2OCAzMzcuNjEgMzA2LjU0OEMzMzcgMzA2LjQ0MiAzMzcuMTI0IDMwNS44MDUgMzM3LjI1NCAzMDUuNDE4QzMzNy44MzkgMzAzLjY3MiAzMzkuODUzIDMwMy40MDggMzQxLjIwMSAzMDQuNkMzNDEuNDU3IDMwNC4wMzUgMzQxLjk2NiAzMDQuMjI5IDM0Mi40MDEgMzA0LjJDMzQyLjM1MSAzMDMuNjIxIDM0Mi43NTkgMzAzLjA5NCAzNDIuOTU3IDMwMi42NzRDMzQzLjQ3NSAzMDEuNTc2IDM0NS4xMDQgMzAyLjY4MiAzNDUuOTAxIDMwMi4wN0MzNDYuOTc3IDMwMS4yNDUgMzQ4LjA0IDMwMC41NDYgMzQ5LjExOCAzMDEuMTQ5QzM1MC45MjcgMzAyLjE2MiAzNTIuNjM2IDMwMy4zNzQgMzUzLjgzNSAzMDUuMTE1QzM1NC40MSAzMDUuOTQ5IDM1NC42NSAzMDcuMjMgMzU0LjU5MiAzMDguMTg4QzM1NC41NTQgMzA4LjgzNSAzNTMuMTczIDMwOC40ODMgMzUyLjgzIDMwOS40MTJDMzUyLjE4NSAzMTEuMTYgMzU0LjAxNiAzMTEuNjc5IDM1NC43NzIgMzEzLjAxN0MzNTQuOTcgMzEzLjM2NiAzNTQuNzA2IDMxMy42NyAzNTQuMzkxIDMxMy43NjhDMzUzLjk4IDMxMy44OTYgMzUzLjE5NiAzMTMuNzA3IDM1My4zMzQgMzE0LjE2QzM1NC4zMDYgMzE3LjM1MyAzNTEuNTUgMzE4LjAzMSAzNDkuMjAxIDMxOC42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTMzOS42IDMzOC4yMDFDMzM5LjU5MyAzMzYuNDYzIDMzNy45OTIgMzM0LjcwNyAzMzkuMjAxIDMzMy4wMDFDMzM5LjMzNiAzMzMuMTM1IDMzOS40NjcgMzMzLjM1NiAzMzkuNjAxIDMzMy4zNTZDMzM5LjczNiAzMzMuMzU2IDMzOS44NjcgMzMzLjEzNSAzNDAuMDAxIDMzMy4wMDFDMzQxLjQ5NiAzMzUuMjE3IDM0NS4xNDggMzM2LjE0NSAzNDUuMDA2IDMzOC45OTFDMzQ0Ljk4NCAzMzkuNDM4IDM0My44OTcgMzQwLjM1NiAzNDQuODAxIDM0MS4wMDFDMzQyLjk4OCAzNDIuMzQ5IDM0Mi45MzMgMzQ0LjcxOSAzNDIuMDAxIDM0Ni42MDFDMzQwLjc2MyAzNDYuMzE1IDMzOS41NTEgMzQ1Ljk1MiAzMzguNDAxIDM0NS40MDFDMzM4Ljc1MyAzNDMuOTE1IDMzOC42MzYgMzQyLjIzMSAzMzkuNDU2IDM0MC45MTFDMzM5Ljg5IDM0MC4yMTMgMzM5LjYwMyAzMzkuMTM0IDMzOS42IDMzOC4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3My40IDMyOS4yMDFDMTczLjQgMzI5LjIwMSAxNTYuNTQyIDMzOS4zMzcgMTcwLjYgMzI0LjAwMUMxNzkuNCAzMTQuNDAxIDE4OS40IDMwOC44MDEgMTg5LjQgMzA4LjgwMUMxODkuNCAzMDguODAxIDE5OS44IDMwNC40IDIwMy40IDMwMy4yQzIwNyAzMDIgMjIyLjIgMjk2LjggMjI1LjQgMjk2LjRDMjI4LjYgMjk2IDIzOC4yIDI5MiAyNDUgMjk2QzI1MS44IDMwMCAyNTkuOCAzMDQuNCAyNTkuOCAzMDQuNEMyNTkuOCAzMDQuNCAyNDMuNCAyOTYgMjM5LjggMjk4LjRDMjM2LjIgMzAwLjggMjI5IDMwMC40IDIyMyAzMDMuNkMyMjMgMzAzLjYgMjA4LjIgMzA4LjAwMSAyMDUgMzEwLjAwMUMyMDEuOCAzMTIuMDAxIDE5MS40IDMyMy42MDEgMTg5LjggMzIyLjgwMUMxODguMiAzMjIuMDAxIDE5MC4yIDMyMS42MDEgMTkxLjQgMzE4LjgwMUMxOTIuNiAzMTYuMDAxIDE5MC42IDMxNC40MDEgMTgyLjYgMzIwLjgwMUMxNzQuNiAzMjcuMjAxIDE3My40IDMyOS4yMDEgMTczLjQgMzI5LjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTgwLjgwNSAzMjMuMjM0QzE4MC44MDUgMzIzLjIzNCAxODIuMjE1IDMxMC4xOTQgMTkwLjY5MyAzMTEuODU5QzE5MC42OTMgMzExLjg1OSAxOTguOTE5IDMwNy42ODkgMjAxLjY0MSAzMDUuNzIxQzIwMS42NDEgMzA1LjcyMSAyMDkuNzggMzA0LjAxOSAyMTEuMDkgMzAzLjQwMkMyMjkuNTY5IDI5NC43MDIgMjQ0LjI4OCAyOTkuMjIxIDI0NC44MzUgMjk4LjEwMUMyNDUuMzgxIDI5Ni45ODIgMjY1LjAwNiAzMDQuMDk5IDI2OC42MTUgMzA4LjE4NUMyNjkuMDA2IDMwOC42MjggMjU4LjM4NCAzMDIuNTg4IDI0OC42ODYgMzAwLjY5N0MyNDAuNDEzIDI5OS4wODMgMjE4LjgxMSAzMDAuOTQ0IDIwNy45MDUgMzA2LjQ4QzIwNC45MzIgMzA3Ljk4OSAxOTUuOTg3IDMxMy43NzMgMTkzLjQ1NiAzMTMuNjYyQzE5MC45MjUgMzEzLjU1IDE4MC44MDUgMzIzLjIzNCAxODAuODA1IDMyMy4yMzR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3NyAzNDguODAxQzE3NyAzNDguODAxIDE2MS44IDM0Ni40MDEgMTc4LjYgMzQ0LjgwMUMxNzguNiAzNDQuODAxIDE5Ni42IDM0Mi44MDEgMjAwLjYgMzM3LjYwMUMyMDAuNiAzMzcuNjAxIDIxNC4yIDMyOC40MDEgMjE3IDMyOC4wMDFDMjE5LjggMzI3LjYwMSAyNDkuOCAzMjAuNDAxIDI1MC4yIDMxOC4wMDFDMjUwLjYgMzE1LjYwMSAyNTYuMiAzMTUuNjAxIDI1Ny44IDMxNi40MDFDMjU5LjQgMzE3LjIwMSAyNTguNiAzMTguNDAxIDI1NS44IDMxOS4yMDFDMjUzIDMyMC4wMDEgMjIxLjggMzM2LjQwMSAyMTUuNCAzMzcuNjAxQzIwOSAzMzguODAxIDE5Ny40IDM0Ni40MDEgMTkyLjYgMzQ3LjYwMUMxODcuOCAzNDguODAxIDE3NyAzNDguODAxIDE3NyAzNDguODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTYuNTIgMzQxLjQwM0MxOTYuNTIgMzQxLjQwMyAxODcuOTM4IDM0MC41NzQgMTk2LjUzOSAzMzkuNzU1QzE5Ni41MzkgMzM5Ljc1NSAyMDUuMzU1IDMzNi4zMzEgMjA3LjQwMyAzMzMuNjY4QzIwNy40MDMgMzMzLjY2OCAyMTQuMzY3IDMyOC45NTcgMjE1LjggMzI4Ljc1M0MyMTcuMjM0IDMyOC41NDggMjMxLjE5NCAzMjQuODYxIDIzMS4zOTkgMzIzLjYzM0MyMzEuNjA0IDMyMi40MDQgMjY1LjY3IDMwOS44MjMgMjcwLjA5IDMxMy4wMTNDMjczLjAwMSAzMTUuMTE0IDI2My4xIDMxMy40MzcgMjUzLjQ2NiAzMTcuODQ3QzI1Mi4xMTEgMzE4LjQ2NyAyMTguMjU4IDMzMy4wNTQgMjE0Ljk4MSAzMzMuNjY4QzIxMS43MDQgMzM0LjI4MyAyMDUuNzY1IDMzOC4xNzQgMjAzLjMwNyAzMzguNzg4QzIwMC44NSAzMzkuNDAzIDE5Ni41MiAzNDEuNDAzIDE5Ni41MiAzNDEuNDAzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xODguNiAzNDMuNjAxQzE4OC42IDM0My42MDEgMTkzLjggMzQzLjIwMSAxOTIuNiAzNDQuODAxQzE5MS40IDM0Ni40MDEgMTg5IDM0NS42MDEgMTg5IDM0NS42MDFMMTg4LjYgMzQzLjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTgxLjQgMzQ1LjIwMUMxODEuNCAzNDUuMjAxIDE4Ni42IDM0NC44MDEgMTg1LjQgMzQ2LjQwMUMxODQuMiAzNDguMDAxIDE4MS44IDM0Ny4yMDEgMTgxLjggMzQ3LjIwMUwxODEuNCAzNDUuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNzEgMzQ2LjgwMUMxNzEgMzQ2LjgwMSAxNzYuMiAzNDYuNDAxIDE3NSAzNDguMDAxQzE3My44IDM0OS42MDEgMTcxLjQgMzQ4LjgwMSAxNzEuNCAzNDguODAxTDE3MSAzNDYuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjMuNCAzNDcuNjAxQzE2My40IDM0Ny42MDEgMTY4LjYgMzQ3LjIwMSAxNjcuNCAzNDguODAxQzE2Ni4yIDM1MC40MDEgMTYzLjggMzQ5LjYwMSAxNjMuOCAzNDkuNjAxTDE2My40IDM0Ny42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIwMS44IDMwOC4wMDFDMjAxLjggMzA4LjAwMSAyMDYuMiAzMDguMDAxIDIwNSAzMDkuNjAxQzIwMy44IDMxMS4yMDEgMjAwLjYgMzEwLjgwMSAyMDAuNiAzMTAuODAxTDIwMS44IDMwOC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE5MS44IDMxMy42MDFDMTkxLjggMzEzLjYwMSAxOTguMzA2IDMxMS40NiAxOTUuOCAzMTQuODAxQzE5NC42IDMxNi40MDEgMTkyLjIgMzE1LjYwMSAxOTIuMiAzMTUuNjAxTDE5MS44IDMxMy42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE4MC42IDMxOC40MDFDMTgwLjYgMzE4LjQwMSAxODUuOCAzMTguMDAxIDE4NC42IDMxOS42MDFDMTgzLjQgMzIxLjIwMSAxODEgMzIwLjQwMSAxODEgMzIwLjQwMUwxODAuNiAzMTguNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNzMgMzI0LjQwMUMxNzMgMzI0LjQwMSAxNzguMiAzMjQuMDAxIDE3NyAzMjUuNjAxQzE3NS44IDMyNy4yMDEgMTczLjQgMzI2LjQwMSAxNzMuNCAzMjYuNDAxTDE3MyAzMjQuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjYuMiAzMjkuMjAxQzE2Ni4yIDMyOS4yMDEgMTcxLjQgMzI4LjgwMSAxNzAuMiAzMzAuNDAxQzE2OSAzMzIuMDAxIDE2Ni42IDMzMS4yMDEgMTY2LjYgMzMxLjIwMUwxNjYuMiAzMjkuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMDUuMjgyIDMzNS41OThDMjA1LjI4MiAzMzUuNTk4IDIxMi4yMDMgMzM1LjA2NiAyMTAuNjA2IDMzNy4xOTVDMjA5LjAwOSAzMzkuMzI1IDIwNS44MTQgMzM4LjI2IDIwNS44MTQgMzM4LjI2TDIwNS4yODIgMzM1LjU5OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjE1LjY4MiAzMzAuNzk4QzIxNS42ODIgMzMwLjc5OCAyMjIuNjAzIDMzMC4yNjYgMjIxLjAwNiAzMzIuMzk1QzIxOS40MDkgMzM0LjUyNSAyMTYuMjE0IDMzMy40NiAyMTYuMjE0IDMzMy40NkwyMTUuNjgyIDMzMC43OTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIyNi40ODIgMzI2LjM5OEMyMjYuNDgyIDMyNi4zOTggMjMzLjQwMyAzMjUuODY2IDIzMS44MDYgMzI3Ljk5NUMyMzAuMjA5IDMzMC4xMjUgMjI3LjAxNCAzMjkuMDYgMjI3LjAxNCAzMjkuMDZMMjI2LjQ4MiAzMjYuMzk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMzYuODgyIDMyMS41OThDMjM2Ljg4MiAzMjEuNTk4IDI0My44MDMgMzIxLjA2NiAyNDIuMjA2IDMyMy4xOTVDMjQwLjYwOSAzMjUuMzI1IDIzNy40MTQgMzI0LjI2IDIzNy40MTQgMzI0LjI2TDIzNi44ODIgMzIxLjU5OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjA5LjI4MiAzMDMuNTk4QzIwOS4yODIgMzAzLjU5OCAyMTYuMjAzIDMwMy4wNjYgMjE0LjYwNiAzMDUuMTk1QzIxMy4wMDkgMzA3LjMyNSAyMDkuMDE0IDMwNy4wNiAyMDkuMDE0IDMwNy4wNkwyMDkuMjgyIDMwMy41OTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIxOS4yODIgMzAwLjM5OEMyMTkuMjgyIDMwMC4zOTggMjI2LjIwMyAyOTkuODY2IDIyNC42MDYgMzAxLjk5NUMyMjMuMDA5IDMwNC4xMjUgMjE4LjYxNCAzMDMuODYgMjE4LjYxNCAzMDMuODZMMjE5LjI4MiAzMDAuMzk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTYuNiAzNDAuNDAxQzE5Ni42IDM0MC40MDEgMjAxLjggMzQwLjAwMSAyMDAuNiAzNDEuNjAxQzE5OS40IDM0My4yMDEgMTk3IDM0Mi40MDEgMTk3IDM0Mi40MDFMMTk2LjYgMzQwLjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTI2MDAiPgorICA8cGF0aCBkPSJNMTIzLjQgMjQxLjJDMTIzLjQgMjQxLjIgMTE5IDI1MCAxMTguNiAyNTMuMkMxMTguNiAyNTMuMiAxMTkuNCAyNDQuNCAxMjAuNiAyNDIuNEMxMjEuOCAyNDAuNCAxMjMuNCAyNDEuMiAxMjMuNCAyNDEuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTI2MDAiPgorICA8cGF0aCBkPSJNMTA1IDI1NS4yQzEwNSAyNTUuMiAxMDEuOCAyNjkuNiAxMDIuMiAyNzIuNEMxMDIuMiAyNzIuNCAxMDEgMjYwLjggMTAxLjQgMjU5LjZDMTAxLjggMjU4LjQgMTA1IDI1NS4yIDEwNSAyNTUuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTI1LjggMTgwLjZMMTI1LjYgMTgzLjhMMTIzLjQgMTg0QzEyMy40IDE4NCAxMzcuNiAxOTYuNiAxMzguMiAyMDQuMkMxMzguMiAyMDQuMiAxMzkgMTk2IDEyNS44IDE4MC42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMjkuNzg0IDE4MS44NjVDMTI5LjM1MyAxODEuNDQ5IDEyOS41NzIgMTgwLjcwNCAxMjkuMTY0IDE4MC40NDRDMTI4LjM1NSAxNzkuOTI4IDEzMC40NjIgMTc5Ljg3MSAxMzAuMjM0IDE3OS4xNTVDMTI5Ljg1MSAxNzcuOTQ5IDEzMC4wMzggMTc3LjkyOCAxMjkuOTE2IDE3Ni42NTJDMTI5Ljg1OSAxNzYuMDU0IDEzMC40NDcgMTc0LjUxNCAxMzAuODMyIDE3NC4wNzRDMTMyLjI3OCAxNzIuNDIyIDEzMC45NTQgMTY5LjQ5IDEzMi41OTQgMTY3LjkzOUMxMzIuODk4IDE2Ny42NSAxMzMuMjc0IDE2Ny4wOTggMTMzLjU1OSAxNjYuNjhDMTM0LjIxOCAxNjUuNzE3IDEzNS40MDIgMTY1LjIyOSAxMzYuMzUyIDE2NC40MDFDMTM2LjY3IDE2NC4xMjUgMTM2LjQ2OSAxNjMuMjk4IDEzNy4wMzggMTYzLjM5QzEzNy43NTIgMTYzLjUwNSAxMzguOTkzIDE2My4zNzUgMTM4Ljk0OCAxNjQuMjE2QzEzOC44MzUgMTY2LjMzNiAxMzcuNTA2IDE2OC4wNTYgMTM2LjIyNiAxNjkuNzI0QzEzNi42NzcgMTcwLjQyOCAxMzYuMjE5IDE3MS4wNjMgMTM1LjkzNSAxNzEuNjJDMTM0LjYgMTc0LjI0IDEzNC43ODkgMTc3LjA4MSAxMzQuNjE1IDE3OS45MjFDMTM0LjYxIDE4MC4wMDYgMTM0LjMwMyAxODAuMDg0IDEzNC4zMTEgMTgwLjEzN0MxMzQuNjY0IDE4Mi40NzIgMTM1LjI0OCAxODQuNjcxIDEzNi4xMjcgMTg2LjlDMTM2LjQ5MyAxODcuODMgMTM2Ljk2NCAxODguNzI1IDEzNy4xMTQgMTg5LjY1MkMxMzcuMjI1IDE5MC4zMzggMTM3LjMyOCAxOTEuMTcxIDEzNi45MiAxOTEuODc2QzEzOC45NTUgMTk0Ljc2NiAxMzcuNjQ2IDE5Ny40MTcgMTM4LjgxNSAyMDAuOTQ4QzEzOS4wMjIgMjAxLjU3MyAxNDAuNzE0IDIwMy40ODcgMTQwLjI1MSAyMDMuMzI2QzEzNy43MzggMjAyLjQ1NSAxMzcuNjI2IDIwMi4wNTcgMTM3LjQ0OSAyMDEuMzA0QzEzNy4zMDMgMjAwLjY4MSAxMzYuOTczIDE5OS4zMDQgMTM2LjczNiAxOTguNzAyQzEzNi42NzIgMTk4LjUzOCAxMzYuNTAxIDE5Ni42NTQgMTM2LjQyMyAxOTYuNTMyQzEzNC45MSAxOTQuMTUgMTM2LjI2OCAxOTQuMzI2IDEzNC44OTggMTkxLjk2OEMxMzMuNDcgMTkxLjI4OCAxMzIuNTA0IDE5MC4xODQgMTMxLjM4MSAxODkuMDIyQzEzMS4xODMgMTg4LjgxOCAxMzIuMzI2IDE4OC4wOTQgMTMyLjE0NSAxODcuODgxQzEzMS4wNTMgMTg2LjU5MiAxMjkuOSAxODUuODI1IDEzMC4yMzYgMTg0LjMzMkMxMzAuMzkxIDE4My42NDIgMTMwLjUyOCAxODIuNTg1IDEyOS43ODQgMTgxLjg2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTI2LjIgMTgzLjZDMTI2LjIgMTgzLjYgMTI2LjYgMTkwLjQgMTI5IDE5MkMxMzEuNCAxOTMuNiAxMzAuMiAxOTIuOCAxMjcgMTkxLjZDMTIzLjggMTkwLjQgMTI1IDE4OS42IDEyNSAxODkuNkMxMjUgMTg5LjYgMTIyLjIgMTkwIDEyNC42IDE5MkMxMjcgMTk0IDEzMC42IDE5Ni40IDEyOSAxOTYuNEMxMjcuNCAxOTYuNCAxMTkuOCAxOTIuNCAxMTkuOCAxODkuNkMxMTkuOCAxODYuOCAxMTguOCAxODIuNyAxMTguOCAxODIuN0MxMTguOCAxODIuNyAxMTkuOSAxODEuOSAxMjQuNyAxODJDMTI0LjcgMTgyIDEyNi4xIDE4Mi43IDEyNi4yIDE4My42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTI1LjQgMjAyLjJDMTI1LjQgMjAyLjIgMTE2Ljg4IDE5OS40MDkgOTguNCAyMDIuOEM5OC40IDIwMi44IDEwNy40MzEgMjAwLjcyMiAxMjYuMiAyMDNDMTM2LjUgMjA0LjI1IDEyNS40IDIwMi4yIDEyNS40IDIwMi4yeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTI3LjQ5OCAyMDIuMTI5QzEyNy40OTggMjAyLjEyOSAxMTkuMjUyIDE5OC42MTEgMTAwLjU0NyAyMDAuMzkyQzEwMC41NDcgMjAwLjM5MiAxMDkuNzI1IDE5OS4xMDMgMTI4LjIyNiAyMDIuOTk1QzEzOC4zOCAyMDUuMTMxIDEyNy40OTggMjAyLjEyOSAxMjcuNDk4IDIwMi4xMjl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xMjkuMjg2IDIwMi4yMjJDMTI5LjI4NiAyMDIuMjIyIDEyMS4zMjQgMTk4LjEwMSAxMDIuNTM5IDE5OC40ODZDMTAyLjUzOSAxOTguNDg2IDExMS43ODcgMTk3Ljg4MiAxMjkuOTQ4IDIwMy4xNEMxMzkuOTE0IDIwNi4wMjUgMTI5LjI4NiAyMDIuMjIyIDEyOS4yODYgMjAyLjIyMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTEzMC41NTYgMjAyLjQ0NUMxMzAuNTU2IDIwMi40NDUgMTIzLjczMiAxOTguMTM4IDEwNi44NTggMTk3LjA0QzEwNi44NTggMTk3LjA0IDExNS4xOTcgMTk3LjIxIDEzMS4wNzggMjAzLjMxOUMxMzkuNzk0IDIwNi42NzIgMTMwLjU1NiAyMDIuNDQ1IDEzMC41NTYgMjAyLjQ0NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTI0NS44NCAyMTIuOTYxQzI0NS44NCAyMTIuOTYxIDI0NC45MSAyMTMuNjA1IDI0NS4xMjQgMjEyLjQyNEMyNDUuMzM5IDIxMS4yNDMgMjczLjU0NyAxOTguMDczIDI3Ny4xNjEgMTk4LjMyM0MyNzcuMTYxIDE5OC4zMjMgMjQ2LjkxMyAyMTEuNTI5IDI0NS44NCAyMTIuOTYxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjQyLjQ0NiAyMTMuNkMyNDIuNDQ2IDIxMy42IDI0MS41NyAyMTQuMzE1IDI0MS42OTEgMjEzLjEyMUMyNDEuODEyIDIxMS45MjcgMjY4Ljg5OSAxOTYuNTgyIDI3Mi41MjEgMTk2LjU0OEMyNzIuNTIxIDE5Ni41NDggMjQzLjQwNCAyMTIuMDg5IDI0Mi40NDYgMjEzLjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzkuMTYgMjE0Ljk3NUMyMzkuMTYgMjE0Ljk3NSAyMzguMzMyIDIxNS43NDcgMjM4LjM3NCAyMTQuNTQ3QzIzOC40MTYgMjEzLjM0OCAyNTguMjMzIDE5Ny44NTEgMjY4LjA0NSAxOTUuOTc3QzI2OC4wNDUgMTk1Ljk3NyAyNTAuMDE1IDIwNC4xMDQgMjM5LjE2IDIxNC45NzV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzYuMjg0IDIxNi44MzhDMjM2LjI4NCAyMTYuODM4IDIzNS41MzkgMjE3LjUzMiAyMzUuNTc3IDIxNi40NTNDMjM1LjYxNSAyMTUuMzczIDI1My40NDkgMjAxLjQyNiAyNjIuMjggMTk5Ljc0QzI2Mi4yOCAxOTkuNzQgMjQ2LjA1NCAyMDcuMDU0IDIzNi4yODQgMjE2LjgzOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjA0LjYgMzY0LjgwMUMyMDQuNiAzNjQuODAxIDE4OS40IDM2Mi40MDEgMjA2LjIgMzYwLjgwMUMyMDYuMiAzNjAuODAxIDIyNC4yIDM1OC44MDEgMjI4LjIgMzUzLjYwMUMyMjguMiAzNTMuNjAxIDI0MS44IDM0NC40MDEgMjQ0LjYgMzQ0LjAwMUMyNDcuNCAzNDMuNjAxIDI2My44IDM0MC4wMDEgMjY0LjIgMzM3LjYwMUMyNjQuNiAzMzUuMjAxIDI3MC42IDMzMi44MDEgMjcyLjIgMzMzLjYwMUMyNzMuOCAzMzQuNDAxIDI3My44IDM0My42MDEgMjcxIDM0NC40MDFDMjY4LjIgMzQ1LjIwMSAyNDkuNCAzNTIuNDAxIDI0MyAzNTMuNjAxQzIzNi42IDM1NC44MDEgMjI1IDM2Mi40MDEgMjIwLjIgMzYzLjYwMUMyMTUuNCAzNjQuODAxIDIwNC42IDM2NC44MDEgMjA0LjYgMzY0LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjc3LjYgMzI3LjQwMUMyNzcuNiAzMjcuNDAxIDI3NC42IDMyOS4wMDEgMjczLjQgMzMxLjYwMUMyNzMuNCAzMzEuNjAxIDI2NyAzNDIuMjAxIDI1Mi44IDM0NS40MDFDMjUyLjggMzQ1LjQwMSAyMjkuOCAzNTQuNDAxIDIyMiAzNTYuNDAxQzIyMiAzNTYuNDAxIDIwOC42IDM2MS40MDEgMjAxLjIgMzYwLjYwMUMyMDEuMiAzNjAuNjAxIDE5NC4yIDM2MC44MDEgMjAwLjQgMzYyLjQwMUMyMDAuNCAzNjIuNDAxIDIyMC42IDM2MC40MDEgMjI0IDM1OC42MDFDMjI0IDM1OC42MDEgMjM5LjYgMzUzLjQwMSAyNDIuNiAzNTAuODAxQzI0NS42IDM0OC4yMDEgMjYzLjggMzQzLjIwMSAyNjYgMzQxLjIwMUMyNjguMiAzMzkuMjAxIDI3OCAzMzAuODAxIDI3Ny42IDMyNy40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIxOC44ODIgMzU4LjkxMUMyMTguODgyIDM1OC45MTEgMjI0LjExMSAzNTguNjg1IDIyMi45NTggMzYwLjIzNEMyMjEuODA1IDM2MS43ODQgMjE5LjM1NyAzNjAuOTEgMjE5LjM1NyAzNjAuOTFMMjE4Ljg4MiAzNTguOTExeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMTEuNjggMzYwLjI2M0MyMTEuNjggMzYwLjI2MyAyMTYuOTA4IDM2MC4wMzcgMjE1Ljc1NiAzNjEuNTg2QzIxNC42MDMgMzYzLjEzNiAyMTIuMTU1IDM2Mi4yNjMgMjEyLjE1NSAzNjIuMjYzTDIxMS42OCAzNjAuMjYzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMDEuMjUxIDM2MS41MTFDMjAxLjI1MSAzNjEuNTExIDIwNi40OCAzNjEuMjg0IDIwNS4zMjcgMzYyLjgzNEMyMDQuMTc0IDM2NC4zODMgMjAxLjcyNiAzNjMuNTEgMjAxLjcyNiAzNjMuNTFMMjAxLjI1MSAzNjEuNTExeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTMuNjE3IDM2Mi4wNTVDMTkzLjYxNyAzNjIuMDU1IDE5OC44NDYgMzYxLjgyOSAxOTcuNjkzIDM2My4zNzhDMTk2LjU0IDM2NC45MjggMTk0LjA5MiAzNjQuMDU0IDE5NC4wOTIgMzY0LjA1NEwxOTMuNjE3IDM2Mi4wNTV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIzNS40MTUgMzUxLjUxM0MyMzUuNDE1IDM1MS41MTMgMjQyLjM3NSAzNTEuMjEyIDI0MC44NCAzNTMuMjc0QzIzOS4zMDYgMzU1LjMzNiAyMzYuMDQ3IDM1NC4xNzQgMjM2LjA0NyAzNTQuMTc0TDIzNS40MTUgMzUxLjUxM3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjQ1LjczIDM0Ny4wODhDMjQ1LjczIDM0Ny4wODggMjUxLjY4OSAzNDMuNzg3IDI1MS4xNTUgMzQ4Ljg0OUMyNTAuODg1IDM1MS40MDUgMjQ2LjM2MiAzNDkuNzQ5IDI0Ni4zNjIgMzQ5Ljc0OUwyNDUuNzMgMzQ3LjA4OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjU0Ljg2MiAzNDQuMjc0QzI1NC44NjIgMzQ0LjI3NCAyNjIuMDIxIDM0MC41NzMgMjYwLjI4NyAzNDYuMDM1QzI1OS41MDkgMzQ4LjQ4NSAyNTUuNDkzIDM0Ni45MzUgMjU1LjQ5MyAzNDYuOTM1TDI1NC44NjIgMzQ0LjI3NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjY0LjM3NiAzMzkuNDQ5QzI2NC4zNzYgMzM5LjQ0OSAyNjguNzM1IDMzNC41NDggMjY5LjgwMSAzNDEuMjFDMjcwLjIwNyAzNDMuNzQ4IDI2NS4wMDggMzQyLjExIDI2NS4wMDggMzQyLjExTDI2NC4zNzYgMzM5LjQ0OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjI2LjgzNCAzNTUuOTk3QzIyNi44MzQgMzU1Ljk5NyAyMzIuMDYyIDM1NS43NyAyMzAuOTEgMzU3LjMyQzIyOS43NTcgMzU4Ljg2OSAyMjcuMzA4IDM1Ny45OTYgMjI3LjMwOCAzNTcuOTk2TDIyNi44MzQgMzU1Ljk5N3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTI2Mi40MzQgMjM0LjYwM0MyNjIuNDM0IDIzNC42MDMgMjYxLjcwOCAyMzUuMjY4IDI2MS43MDcgMjM0LjE5N0MyNjEuNzA3IDIzMy4xMjcgMjc5LjE5MSAyMTkuODYzIDI4OC4wMzQgMjE4LjQ3OUMyODguMDM0IDIxOC40NzkgMjcxLjkzNSAyMjUuMjA4IDI2Mi40MzQgMjM0LjYwM3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjY1LjQgMjk4LjRDMjY1LjQgMjk4LjQgMjg3LjQwMSAzMjAuODAxIDI5Ni42MDEgMzI0LjQwMUMyOTYuNjAxIDMyNC40MDEgMzA1LjgwMSAzMzUuNjAxIDMwMS44MDEgMzYxLjYwMUMzMDEuODAxIDM2MS42MDEgMjk4LjYwMSAzNjkuMjAxIDI5NS40MDEgMzQ4LjQwMUMyOTUuNDAxIDM0OC40MDEgMjk4LjYwMSAzMjMuMjAxIDI4Ny40MDEgMzM5LjIwMUMyODcuNDAxIDMzOS4yMDEgMjc5IDMyOS4zMDEgMjg1LjQgMzI5LjYwMUMyODUuNCAzMjkuNjAxIDI4OC42MDEgMzMxLjYwMSAyODkuMDAxIDMzMC4wMDFDMjg5LjQwMSAzMjguNDAxIDI4MS40IDMxNC44MDEgMjY0LjIgMzAwLjRDMjQ3IDI4NiAyNjUuNCAyOTguNCAyNjUuNCAyOTguNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIwNyAzMzcuMjAxQzIwNyAzMzcuMjAxIDIwNi44IDMzNS40MDEgMjA4LjYgMzM2LjIwMUMyMTAuNCAzMzcuMDAxIDMwNC42MDEgMzQzLjIwMSAzMzYuMjAxIDM2Ny4yMDFDMzM2LjIwMSAzNjcuMjAxIDI5MS4wMDEgMzQ0LjAwMSAyMDcgMzM3LjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIxNy40IDMzMi44MDFDMjE3LjQgMzMyLjgwMSAyMTcuMiAzMzEuMDAxIDIxOSAzMzEuODAxQzIyMC44IDMzMi42MDEgMzU3LjQwMSAzMzEuNjAxIDM4MS4wMDEgMzY0LjAwMUMzODEuMDAxIDM2NC4wMDEgMzU5LjAwMSAzMzguODAxIDIxNy40IDMzMi44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMjkgMzI4LjgwMUMyMjkgMzI4LjgwMSAyMjguOCAzMjcuMDAxIDIzMC42IDMyNy44MDFDMjMyLjQgMzI4LjYwMSA0MDUuODAxIDMxNS42MDEgNDI5LjQwMSAzNDguMDAxQzQyOS40MDEgMzQ4LjAwMSA0MTkuODAxIDMyMi40MDEgMjI5IDMyOC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzkgMzI0LjAwMUMyMzkgMzI0LjAwMSAyMzguOCAzMjIuMjAxIDI0MC42IDMyMy4wMDFDMjQyLjQgMzIzLjgwMSAzNjQuNjAxIDI4NS4yIDM4OC4yMDEgMzE3LjYwMUMzODguMjAxIDMxNy42MDEgMzc0LjgwMSAyOTMgMjM5IDMyNC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xODEgMzQ2LjgwMUMxODEgMzQ2LjgwMSAxODAuOCAzNDUuMDAxIDE4Mi42IDM0NS44MDFDMTg0LjQgMzQ2LjYwMSAyMDIuMiAzNDguODAxIDIwNC4yIDM4Ny42MDFDMjA0LjIgMzg3LjYwMSAxOTcgMzQ1LjYwMSAxODEgMzQ2LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE3Mi4yIDM0OC40MDFDMTcyLjIgMzQ4LjQwMSAxNzIgMzQ2LjYwMSAxNzMuOCAzNDcuNDAxQzE3NS42IDM0OC4yMDEgMTg5LjggMzQzLjYwMSAxODcgMzgyLjQwMUMxODcgMzgyLjQwMSAxODguMiAzNDcuMjAxIDE3Mi4yIDM0OC40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xNjQuMiAzNDguODAxQzE2NC4yIDM0OC44MDEgMTY0IDM0Ny4wMDEgMTY1LjggMzQ3LjgwMUMxNjcuNiAzNDguNjAxIDE4MyAzNDkuMjAxIDE3MC42IDM3MS42MDFDMTcwLjYgMzcxLjYwMSAxODAuMiAzNDcuNjAxIDE2NC4yIDM0OC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMTEuNTI2IDMwNC40NjVDMjExLjUyNiAzMDQuNDY1IDIxMS4wODIgMzA2LjQ2NCAyMTIuNjMxIDMwNS4yNDdDMjI4LjY5OSAyOTIuNjIyIDI2MS4xNDEgMjMzLjcyIDMxNi44MjYgMjI4LjA4NkMzMTYuODI2IDIyOC4wODYgMjc4LjUxOCAyMTUuOTc2IDIxMS41MjYgMzA0LjQ2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIyMi43MjYgMzAyLjY2NUMyMjIuNzI2IDMwMi42NjUgMjIxLjM2MyAzMDEuNDcyIDIyMy4yMzEgMzAwLjg0N0MyMjUuMDk5IDMwMC4yMjIgMzM3LjU0MSAyMjcuNzIgMzc2LjgyNiAyMzUuNjg2QzM3Ni44MjYgMjM1LjY4NiAzNDkuNzE5IDIyOC4xNzYgMjIyLjcyNiAzMDIuNjY1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjAxLjg4NSAzMDguNzY3QzIwMS44ODUgMzA4Ljc2NyAyMDEuMzc2IDMxMC4zNjYgMjAzLjA4NyAzMDkuMzlDMjEyLjA2MiAzMDQuMjcgMjE1LjY3NyAyNDcuMDU5IDI1OS4yNTQgMjQ1LjgwNEMyNTkuMjU0IDI0NS44MDQgMjI2Ljg0MyAyMzEuMDkgMjAxLjg4NSAzMDguNzY3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTgxLjk2MiAzMTkuNzkzQzE4MS45NjIgMzE5Ljc5MyAxODAuODg1IDMyMS4wNzkgMTgyLjgzOCAzMjAuODI1QzE5My4wODQgMzE5LjQ5MyAyMTQuNDg5IDI3OC4yMjIgMjU4LjkyOCAyODMuMzAxQzI1OC45MjggMjgzLjMwMSAyMjYuOTYyIDI2OC45NTUgMTgxLjk2MiAzMTkuNzkzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTkzLjIgMzEzLjY2N0MxOTMuMiAzMTMuNjY3IDE5Mi4zODkgMzE1LjEzNiAxOTQuMjU4IDMxNC41MTFDMjA0LjA1NyAzMTEuMjM3IDIxNy4xNDEgMjY2LjYyNSAyNjEuNzI5IDI2My4wNzhDMjYxLjcyOSAyNjMuMDc4IDIyNy42MDMgMjU1LjEzNSAxOTMuMiAzMTMuNjY3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTc0LjkyMiAzMjQuOTEyQzE3NC45MjIgMzI0LjkxMiAxNzQuMDQ5IDMyNS45NTQgMTc1LjYzMSAzMjUuNzQ4QzE4My45MyAzMjQuNjY5IDIwMS4yNjggMjkxLjI0IDIzNy4yNjQgMjk1LjM1NEMyMzcuMjY0IDI5NS4zNTQgMjExLjM3MSAyODMuNzM0IDE3NC45MjIgMzI0LjkxMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE2Ny4zMjMgMzMwLjgyMUMxNjcuMzIzIDMzMC44MjEgMTY2LjMxOCAzMzEuODY2IDE2Ny45MDkgMzMxLjc0OEMxNzIuMDc3IDMzMS40MzkgMjAyLjcxNSAyOTguMzYgMjIxLjE4MyAzMTMuODYyQzIyMS4xODMgMzEzLjg2MiAyMDkuMTY4IDI5NS4xMzkgMTY3LjMyMyAzMzAuODIxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjM2Ljg1NSAyOTguODk4QzIzNi44NTUgMjk4Ljg5OCAyMzUuNjU0IDI5Ny41NDMgMjM3LjU4NiAyOTcuMTU4QzIzOS41MTggMjk2Ljc3NCAzNjAuMjIxIDIzOS4wNjEgMzk4LjE4NCAyNTEuOTI3QzM5OC4xODQgMjUxLjkyNyAzNzIuMjQzIDI0MS4wNTMgMjM2Ljg1NSAyOTguODk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjAzLjQgMzYzLjIwMUMyMDMuNCAzNjMuMjAxIDIwMy4yIDM2MS40MDEgMjA1IDM2Mi4yMDFDMjA2LjggMzYzLjAwMSAyMjIuMiAzNjMuNjAxIDIwOS44IDM4Ni4wMDFDMjA5LjggMzg2LjAwMSAyMTkuNCAzNjIuMDAxIDIwMy40IDM2My4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMTMuOCAzNjEuNjAxQzIxMy44IDM2MS42MDEgMjEzLjYgMzU5LjgwMSAyMTUuNCAzNjAuNjAxQzIxNy4yIDM2MS40MDEgMjM1IDM2My42MDEgMjM3IDQwMi40MDFDMjM3IDQwMi40MDEgMjI5LjggMzYwLjQwMSAyMTMuOCAzNjEuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjIwLjYgMzYwLjAwMUMyMjAuNiAzNjAuMDAxIDIyMC40IDM1OC4yMDEgMjIyLjIgMzU5LjAwMUMyMjQgMzU5LjgwMSAyNDguNiAzNjMuMjAxIDI3Mi4yIDM5NS42MDFDMjcyLjIgMzk1LjYwMSAyMzYuNiAzNTguODAxIDIyMC42IDM2MC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMjguMjI1IDM1Ny45NzJDMjI4LjIyNSAzNTcuOTcyIDIyNy43ODggMzU2LjIxNCAyMjkuNjc4IDM1Ni43NjhDMjMxLjU2OCAzNTcuMzIyIDI1Mi4wMDIgMzU1LjQyMyAyOTAuMDk5IDM4OS41OTlDMjkwLjA5OSAzODkuNTk5IDI0My45MjQgMzU0LjY1NiAyMjguMjI1IDM1Ny45NzJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzguNjI1IDM1My41NzJDMjM4LjYyNSAzNTMuNTcyIDIzOC4xODggMzUxLjgxNCAyNDAuMDc4IDM1Mi4zNjhDMjQxLjk2OCAzNTIuOTIyIDI3Ni44MDIgMzU3LjQyMyAzMjguNDk5IDM5Mi4zOTlDMzI4LjQ5OSAzOTIuMzk5IDI1NC4zMjQgMzUwLjI1NiAyMzguNjI1IDM1My41NzJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xOTguMiAzNDIuMDAxQzE5OC4yIDM0Mi4wMDEgMTk4IDM0MC4yMDEgMTk5LjggMzQxLjAwMUMyMDEuNiAzNDEuODAxIDI1NSAzNDQuNDAxIDI4NS40IDM3MS4yMDFDMjg1LjQgMzcxLjIwMSAyNTAuNDk5IDM0Ni40MjYgMTk4LjIgMzQyLjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE4OC4yIDM0Ni4wMDFDMTg4LjIgMzQ2LjAwMSAxODggMzQ0LjIwMSAxODkuOCAzNDUuMDAxQzE5MS42IDM0NS44MDEgMjE2LjIgMzQ5LjIwMSAyMzkuOCAzODEuNjAxQzIzOS44IDM4MS42MDEgMjA0LjIgMzQ0LjgwMSAxODguMiAzNDYuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjQ5LjUwMyAzNDguOTYyQzI0OS41MDMgMzQ4Ljk2MiAyNDguOTM4IDM0Ny4yNDEgMjUwLjg2NCAzNDcuNjU1QzI1Mi43OSAzNDguMDY4IDI4Ny44NiAzNTAuMDA0IDM0MS45ODEgMzgxLjA5OEMzNDEuOTgxIDM4MS4wOTggMjY0LjMxNyAzNDYuNzA0IDI0OS41MDMgMzQ4Ljk2MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTI1Ny45MDMgMzQ2LjU2MkMyNTcuOTAzIDM0Ni41NjIgMjU3LjMzOCAzNDQuODQxIDI1OS4yNjQgMzQ1LjI1NUMyNjEuMTkgMzQ1LjY2OCAyOTYuMjYgMzQ3LjYwNCAzNTAuMzgxIDM3OC42OThDMzUwLjM4MSAzNzguNjk4IDI3My4zMTcgMzQzLjkwNCAyNTcuOTAzIDM0Ni41NjJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yNjcuNTAzIDM0MS41NjJDMjY3LjUwMyAzNDEuNTYyIDI2Ni45MzggMzM5Ljg0MSAyNjguODY0IDM0MC4yNTVDMjcwLjc5IDM0MC42NjggMzEzLjg2IDM0NS4wMDQgNDAzLjU4MiAzNzkuMjk4QzQwMy41ODIgMzc5LjI5OCAyODIuOTE3IDMzOC45MDQgMjY3LjUwMyAzNDEuNTYyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNTYuMiAzNDguNDAxQzE1Ni4yIDM0OC40MDEgMTYxLjQgMzQ4LjAwMSAxNjAuMiAzNDkuNjAxQzE1OSAzNTEuMjAxIDE1Ni42IDM1MC40MDEgMTU2LjYgMzUwLjQwMUwxNTYuMiAzNDguNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xODcgMzYyLjQwMUMxODcgMzYyLjQwMSAxOTIuMiAzNjIuMDAxIDE5MSAzNjMuNjAxQzE4OS44IDM2NS4yMDEgMTg3LjQgMzY0LjQwMSAxODcuNCAzNjQuNDAxTDE4NyAzNjIuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNzguMiAzNjIuMDAxQzE3OC4yIDM2Mi4wMDEgMTgzLjQgMzYxLjYwMSAxODIuMiAzNjMuMjAxQzE4MSAzNjQuODAxIDE3OC42IDM2NC4wMDEgMTc4LjYgMzY0LjAwMUwxNzguMiAzNjIuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik04Mi44MzEgMzUwLjE4MkM4Mi44MzEgMzUwLjE4MiA4Ny44NzYgMzUxLjUwNSA4Ni4yMTggMzUyLjYyNEM4NC41NjEgMzUzLjc0NCA4Mi41NTQgMzUyLjIwMiA4Mi41NTQgMzUyLjIwMkw4Mi44MzEgMzUwLjE4MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNODQuODMxIDM0MC41ODJDODQuODMxIDM0MC41ODIgODkuODc2IDM0MS45MDUgODguMjE4IDM0My4wMjRDODYuNTYxIDM0NC4xNDQgODQuNTU0IDM0Mi42MDIgODQuNTU0IDM0Mi42MDJMODQuODMxIDM0MC41ODJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTc3LjYzMSAzMzYuMTgyQzc3LjYzMSAzMzYuMTgyIDgyLjY3NiAzMzcuNTA1IDgxLjAxOCAzMzguNjI0Qzc5LjM2MSAzMzkuNzQ0IDc3LjM1NCAzMzguMjAyIDc3LjM1NCAzMzguMjAyTDc3LjYzMSAzMzYuMTgyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNTcuNCA0MTEuMjAxQzE1Ny40IDQxMS4yMDEgMTU1LjggNDExLjIwMSAxNTEuOCA0MTMuMjAxQzE0OS44IDQxMy4yMDEgMTM4LjYgNDE2LjgwMSAxMzMgNDI2LjgwMUMxMzMgNDI2LjgwMSAxNDUuNCA0MTcuMjAxIDE1Ny40IDQxMS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTI0NS4xMTYgNTAzLjg0N0MyNDUuMjU3IDUwNC4xMDUgMjQ1LjMxMiA1MDQuNTI1IDI0NS42MDQgNTA0LjU0MkMyNDYuMjYyIDUwNC41ODIgMjQ3LjQ5NSA1MDQuODgzIDI0Ny4zNyA1MDQuMjQ3QzI0Ni41MjIgNDk5Ljk0MSAyNDUuNjQ4IDQ5NS4wMDQgMjQxLjUxNSA0OTMuMTk3QzI0MC44NzYgNDkyLjkxOCAyMzkuNDM0IDQ5My4zMzEgMjM5LjM2IDQ5NC4yMTVDMjM5LjIzMyA0OTUuNzM5IDIzOS4xMTYgNDk3LjA4OCAyMzkuNDI1IDQ5OC41NTRDMjM5LjcyNSA0OTkuOTc1IDI0MS44ODMgNDk5Ljk4NSAyNDIuOCA0OTguNjAxQzI0My43MzYgNTAwLjI3MyAyNDQuMTY4IDUwMi4xMTYgMjQ1LjExNiA1MDMuODQ3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yMzQuMDM4IDUwOC41ODFDMjM0Ljc4NiA1MDkuOTk0IDIzNC42NTkgNTExLjg1MyAyMzYuMDc0IDUxMi40MTZDMjM2LjgxNCA1MTIuNzEgMjM4LjY2NCA1MTEuNzM1IDIzOC4yNDYgNTEwLjY2MUMyMzcuNDQ0IDUwOC42IDIzNy4wNTYgNTA2LjM2MSAyMzUuNjY3IDUwNC41NUMyMzUuNDY3IDUwNC4yODggMjM1LjcwNyA1MDMuNzU1IDIzNS41NDcgNTAzLjQyN0MyMzQuOTUzIDUwMi4yMDcgMjMzLjgwOCA1MDEuNDcyIDIzMi40IDUwMS44MDFDMjMxLjI4NSA1MDQuMDA0IDIzMi40MzMgNTA2LjEzMyAyMzMuOTU1IDUwNy44NDJDMjM0LjA5MSA1MDcuOTk0IDIzMy45MjUgNTA4LjM3IDIzNC4wMzggNTA4LjU4MXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTk0LjQzNiA1MDMuMzkxQzE5NC4zMjggNTAzLjAxNCAxOTQuMjkgNTAyLjU1MSAxOTQuNDU1IDUwMi4yM0MxOTQuOTg2IDUwMS4xOTcgMTk1Ljc3OSA1MDAuMDc1IDE5NS40NDIgNDk5LjA1M0MxOTUuMDk0IDQ5Ny45OTcgMTkzLjk3OCA0OTguMTc5IDE5My4zMjggNDk4Ljc0OEMxOTIuMTkzIDQ5OS43NDIgMTkyLjE0NCA1MDEuNTY4IDE5MS40NTMgNTAyLjkyN0MxOTEuMjU3IDUwMy4zMTMgMTkxLjMwOCA1MDMuODg2IDE5MC44NjcgNTA0LjI3N0MxOTAuMzkzIDUwNC42OTggMTg5Ljk1MyA1MDYuMjIyIDE5MC4wNDkgNTA2Ljc5M0MxOTAuMTAyIDUwNy4xMDYgMTg5LjkxOSA1MTcuMDE0IDE5MC4xNDEgNTE2Ljc1MUMxOTAuNzYgNTE2LjAxOCAxOTMuODEgNTA2LjI4NCAxOTMuODc5IDUwNS4zOTJDMTkzLjkzNiA1MDQuNjYxIDE5NC42NjggNTA0LjE5NiAxOTQuNDM2IDUwMy4zOTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE2OC43OTggNDk2LjU5OUMxNzEuNDMyIDQ5NC4xIDE3NC4yMjIgNDkxLjEzOSAxNzMuNzggNDg3LjQyN0MxNzMuNjY0IDQ4Ni40NTEgMTcxLjg4OSA0ODYuOTc4IDE3MS43MDIgNDg3LjgyNEMxNzAuOSA0OTEuNDQ5IDE2OC44NjEgNDk0LjExIDE2Ni4yOTMgNDk2LjUwMkMxNjQuMDk3IDQ5OC41NDkgMTYyLjIzNSA1MDQuODkzIDE2MiA1MDUuNDAxQzE2NS42OTcgNTAwLjE0NSAxNjcuOTU0IDQ5Ny4zOTkgMTY4Ljc5OCA0OTYuNTk5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNTUuMjI0IDQ5MC42MzVDMTU1Ljc0NyA0OTAuMjY1IDE1NS40NDUgNDg5Ljc3NCAxNTUuNjYyIDQ4OS40NDJDMTU2LjYxNSA0ODcuOTg0IDE1Ny45MTYgNDg2LjczOCAxNTcuOTM0IDQ4NUMxNTcuOTM3IDQ4NC43MjMgMTU3LjU1OSA0ODQuNDE0IDE1Ny4yMjQgNDg0LjYzOEMxNTYuOTQ3IDQ4NC44MjIgMTU2LjYwNSA0ODQuOTUyIDE1Ni40OTcgNDg1LjA4MkMxNTQuNDY3IDQ4Ny41MzEgMTUzLjA2NyA0OTAuMjAyIDE1MS42MjQgNDkzLjAxNEMxNTEuNDQxIDQ5My4zNzEgMTUwLjI5NyA0OTcuODYyIDE1MC42MSA0OTcuOTczQzE1MC44NDkgNDk4LjA1OCAxNTIuNTY5IDQ5My44NzcgMTUyLjc3OSA0OTMuNzYzQzE1NC4wNDIgNDkzLjA3NyAxNTQuMDU0IDQ5MS40NjIgMTU1LjIyNCA0OTAuNjM1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNzEuOTU3IDUxMC4xNzlDMTcyLjQwMSA1MDkuMzEgMTczLjk3NyA1MDguMTA4IDE3My44NjQgNTA3LjIxOUMxNzMuNzQ2IDUwNi4yOTEgMTc0LjIxNCA1MDQuODQ4IDE3My4zMDIgNTA1LjUzNkMxNzIuMDQ1IDUwNi40ODQgMTY4LjU5NiA1MDcuODMzIDE2OC4zMjYgNTEzLjY0MUMxNjguMyA1MTQuMjEyIDE3MS4yNzQgNTExLjUxOSAxNzEuOTU3IDUxMC4xNzl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE4Ni40IDQ5My4wMDFDMTg2LjggNDkyLjMzMyAxODcuNTA4IDQ5Mi44MDYgMTg3Ljk2NyA0OTIuNTQzQzE4OC42MTUgNDkyLjE3MSAxODkuMjI2IDQ5MS42MTMgMTg5LjUxOCA0OTAuOTY0QzE5MC40ODggNDg4LjgxNSAxOTIuMjU3IDQ4Ni45OTUgMTkyLjQgNDg0LjYwMUMxOTAuOTA5IDQ4My4xOTYgMTkwLjIzIDQ4NS4yMzYgMTg5LjYgNDg2LjIwMUMxODguMjc3IDQ4NC41NTQgMTg3LjI3OCA0ODYuNDI4IDE4NS45NzggNDg2Ljk0N0MxODUuOTA4IDQ4Ni45NzUgMTg1LjY5NSA0ODYuNjI4IDE4NS42MiA0ODYuNjU1QzE4NC40NDMgNDg3LjA5NSAxODMuNzYzIDQ4OC4xNzYgMTgyLjc2NSA0ODguOTU3QzE4Mi41OTQgNDg5LjA5MSAxODIuMTg5IDQ4OC45MTEgMTgyLjA0MiA0ODkuMDQ3QzE4MS4zOSA0ODkuNjUgMTgwLjQxNyA0ODkuOTc1IDE4MC4xMzcgNDkwLjY1N0MxNzkuMDI3IDQ5My4zNjQgMTc1Ljg4NyA0OTUuNDU5IDE3NCA1MDMuMDAxQzE3NC4zODEgNTAzLjkxIDE3OC41MTIgNDk2LjM1OSAxNzguOTk5IDQ5NS42NjFDMTc5LjgzNSA0OTQuNDY1IDE3OS45NTMgNDk3LjMyMiAxODEuMjI5IDQ5Ni42NTZDMTgxLjI4IDQ5Ni42MjkgMTgxLjQ2NiA0OTYuODY3IDE4MS42IDQ5Ny4wMDFDMTgxLjc5NCA0OTYuNzIxIDE4Mi4wMTIgNDk2LjQ5MiAxODIuNCA0OTYuNjAxQzE4Mi40IDQ5Ni4yMDEgMTgyLjI2NiA0OTUuNjQ1IDE4Mi40NjcgNDk1LjQ4NkMxODMuNzA0IDQ5NC41MDkgMTgzLjYyIDQ5My40NDEgMTg0LjQgNDkyLjIwMUMxODQuODU4IDQ5Mi45OSAxODUuOTE5IDQ5Mi4yNzEgMTg2LjQgNDkzLjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjQ2LjIgNTQ3LjQwMUMyNDYuMiA1NDcuNDAxIDI1My42IDUyNy4wMDEgMjQ5LjIgNTE1LjgwMUMyNDkuMiA1MTUuODAxIDI2MC42IDUzNy40MDEgMjU2IDU0OC42MDFDMjU2IDU0OC42MDEgMjU1LjYgNTM4LjIwMSAyNTEuNiA1MzMuMjAxQzI1MS42IDUzMy4yMDEgMjQ3LjYgNTQ2LjAwMSAyNDYuMiA1NDcuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yMzEuNCA1NDQuODAxQzIzMS40IDU0NC44MDEgMjM2LjggNTM2LjAwMSAyMjguOCA1MTcuNjAxQzIyOC44IDUxNy42MDEgMjI4IDUzOC4wMDEgMjIxLjIgNTQ5LjAwMUMyMjEuMiA1NDkuMDAxIDIzNS40IDUyOC44MDEgMjMxLjQgNTQ0LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjIxLjQgNTQyLjgwMUMyMjEuNCA1NDIuODAxIDIyMS4yIDUyMi44MDEgMjIxLjYgNTE5LjgwMUMyMjEuNiA1MTkuODAxIDIxNy44IDUzNi40MDEgMjA3LjYgNTQ2LjAwMUMyMDcuNiA1NDYuMDAxIDIyMiA1MzQuMDAxIDIyMS40IDU0Mi44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTIxMS44IDUxMC44MDFDMjExLjggNTEwLjgwMSAyMTcuOCA1MjQuNDAxIDIwNy44IDU0Mi44MDFDMjA3LjggNTQyLjgwMSAyMTQuMiA1MzAuNjAxIDIwOS40IDUyMy42MDFDMjA5LjQgNTIzLjYwMSAyMTIgNTIwLjIwMSAyMTEuOCA1MTAuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xOTIuNiA1NDIuNDAxQzE5Mi42IDU0Mi40MDEgMTkxLjYgNTI2LjgwMSAxOTMuNCA1MjQuNjAxQzE5My40IDUyNC42MDEgMTkzLjYgNTE4LjIwMSAxOTMuMiA1MTcuMjAxQzE5My4yIDUxNy4yMDEgMTk3LjIgNTExLjAwMSAxOTcuNCA1MTguNDAxQzE5Ny40IDUxOC40MDEgMTk4LjggNTI2LjIwMSAyMDEuNiA1MzAuODAxQzIwMS42IDUzMC44MDEgMjA1LjIgNTM2LjIwMSAyMDUgNTQyLjYwMUMyMDUgNTQyLjYwMSAxOTUgNTEyLjQwMSAxOTIuNiA1NDIuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xODkgNTE0LjgwMUMxODkgNTE0LjgwMSAxODIuNCA1MjUuNjAxIDE4MC42IDU0NC42MDFDMTgwLjYgNTQ0LjYwMSAxNzkuMiA1MzguNDAxIDE4MyA1MjQuMDAxQzE4MyA1MjQuMDAxIDE4Ny4yIDUwOC42MDEgMTg5IDUxNC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE2Ny4yIDUzNC42MDFDMTY3LjIgNTM0LjYwMSAxNzIuMiA1MjkuMjAxIDE3My42IDUyNC4yMDFDMTczLjYgNTI0LjIwMSAxNzcuMiA1MDguNDAxIDE3MC44IDUxNy4wMDFDMTcwLjggNTE3LjAwMSAxNzEgNTI1LjAwMSAxNjIuOCA1MzIuNDAxQzE2Mi44IDUzMi40MDEgMTY3LjYgNTMwLjAwMSAxNjcuMiA1MzQuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNjEuNCA1MjkuNjAxQzE2MS40IDUyOS42MDEgMTY0LjggNTEyLjIwMSAxNjUuNiA1MTEuNDAxQzE2NS42IDUxMS40MDEgMTY3LjQgNTA4LjAwMSAxNjQuNiA1MTEuMjAxQzE2NC42IDUxMS4yMDEgMTU1LjggNTMwLjQwMSAxNTEuOCA1MzcuMDAxQzE1MS44IDUzNy4wMDEgMTU5LjggNTI3LjgwMSAxNjEuNCA1MjkuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNTUuNiA1MTMuMDAxQzE1NS42IDUxMy4wMDEgMTY3LjIgNDkwLjYwMSAxNDUuNCA1MTYuNDAxQzE0NS40IDUxNi40MDEgMTU2LjQgNTA2LjYwMSAxNTUuNiA1MTMuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNDAuMiA0OTguNDAxQzE0MC4yIDQ5OC40MDEgMTQ1IDQ3OS42MDEgMTQ3LjYgNDc5LjgwMUMxNDcuNiA0NzkuODAxIDE1NS44IDQ3MC44MDEgMTQ5LjIgNDgxLjQwMUMxNDkuMiA0ODEuNDAxIDE0My4yIDQ5MS4wMDEgMTQzLjggNTAwLjgwMUMxNDMuOCA1MDAuODAxIDE0My4yIDQ5MS4yMDEgMTQwLjIgNDk4LjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNDcwLjUgNDg3QzQ3MC41IDQ4NyA0NTguNSA0NzcgNDU2IDQ3My41QzQ1NiA0NzMuNSA0NjkuNSA0OTIgNDY5LjUgNDk5QzQ2OS41IDQ5OSA0NzIgNDkxLjUgNDcwLjUgNDg3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik00NzYgNDY1QzQ3NiA0NjUgNDU1IDQ1MCA0NTEuNSA0NDIuNUM0NTEuNSA0NDIuNSA0NzggNDcyIDQ3OCA0NzYuNUM0NzggNDc2LjUgNDc4LjUgNDY3LjUgNDc2IDQ2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNDkzIDMxMUM0OTMgMzExIDQ4MSAzMDMgNDc5LjUgMzA1QzQ3OS41IDMwNSA0OTAgMzExLjUgNDkyLjUgMzIwQzQ5Mi41IDMyMCA0OTEgMzExIDQ5MyAzMTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTUwMS41IDM5MS41TDQ4NCAzNzkuNUM0ODQgMzc5LjUgNTAzIDM5Ni41IDUwMy41IDQwMC41TDUwMS41IDM5MS41eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTEwLjc1IDM2OUwxMzIuNzUgMzczLjc1Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjEgNTMxQzE2MSA1MzEgMTYwLjUgNTI3LjUgMTUxLjUgNTM4Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjYuNSA1MzZDMTY2LjUgNTM2IDE2OC41IDUyOS41IDE2MiA1MzQiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIyMC41IDU0NC41QzIyMC41IDU0NC41IDIyMiA1MzMuNSAyMTAuNSA1NDYuNSIvPgorIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvdGl0bGUueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvdGl0bGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiM2ZlMDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC90aXRsZS54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPHRpdGxlPm15IHRpdGxlPC90aXRsZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3RzdGJsYW5rcy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC90c3RibGFua3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NjE4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC90c3RibGFua3MueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8YSB0ZXN0PSJwYXNzZWQiPmNvbnRlbnQ8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGYxNmJlYm9tLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3V0ZjE2YmVib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNTQ2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGYxNmJlYm9tLnhtbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGYxNmJvbS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGYxNmJvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVhMjk2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3V0ZjE2Ym9tLnhtbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGYxNmxlYm9tLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3V0ZjE2bGVib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMzY0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGYxNmxlYm9tLnhtbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGY4Ym9tLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3V0Zjhib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ZTUxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC91dGY4Ym9tLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvby8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC93YXAueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvd2FwLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTRiNDlmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvd2FwLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB3bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFdNTCAxLjEvL0VOIiAiaHR0cDovL2Rhcmsud2FwaXQuY29tL3Zzd2FwL3Rlc3RzL3dhcC9EVEQvd21sMTEuZHRkIj4KKzwhLS0gKEMpIDE5OTksIDIwMDAgV0FQIEZvcnVtIEx0ZC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQgLS0+Cis8d21sPgorPGNhcmQgaWQ9ImNhcmQxIj4KKzxvbmV2ZW50IHR5cGU9Im9uZW50ZXJmb3J3YXJkIj4KKzxnbyBocmVmPSIvdnN3YXAvcnVuL3Jlc3VsdC5lbWwiPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InZhciIgdmFsdWU9IiR0ZXN0Ii8+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0idiIgdmFsdWU9ImRhcmsiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ0cyIgdmFsdWU9IjAwMDMiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ0cCIgdmFsdWU9IndtbC9zdGF0ZS92YXJpYWJsZXMvcGFyc2luZy8xIi8+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0idGkiIHZhbHVlPSIxIi8+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0iZXhwZWN0ZWQiIHZhbHVlPSJ2YXI6cGFzcyIvPgorPC9nbz4KKzwvb25ldmVudD4KKzxwPklmIGF1dG9tYXRpYyB0ZXN0aW5nIGZhaWxlZCwgc2VsZWN0IDxhbmNob3I+RmFpbGVkPGdvIGhyZWY9Ii92c3dhcC9ydW4vcmVzdWx0LmVtbCI+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0iU1VCTUlUIiB2YWx1ZT0iTm8iLz48cG9zdGZpZWxkIG5hbWU9InYiIHZhbHVlPSJkYXJrIi8+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0idHMiIHZhbHVlPSIwMDAzIi8+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0idHAiIHZhbHVlPSJ3bWwvc3RhdGUvdmFyaWFibGVzL3BhcnNpbmcvMSIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InRpIiB2YWx1ZT0iMSIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9ImV4cGVjdGVkIiB2YWx1ZT0idmFyOnBhc3MiLz48L2dvPjwvYW5jaG9yPi48L3A+Cis8L2NhcmQ+CisKKzwvd21sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvd2luYmxhbmtzLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3dpbmJsYW5rcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA0NGFhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3dpbmJsYW5rcy54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxhPgorICAgIDxCPgorICAgICAgICA8Qy8+ICAgCis8L0I+Cis8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC93bWwueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvd21sLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTk2NTYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQvd21sLnhtbApAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB3bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFdNTCAxLjEvL0VOIiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcvRFREL3dtbF8xLjEueG1sIj4KKzx3bWw+CisgIDxjYXJkIGlkPSJjYXJkMSIgdGl0bGU9IlJ1YnJpcXVlcyA3NTAwOCI+CisJPHA+CisJCTxhIGhyZWY9InJ1Ym1lbnUuYXNwP0NQPTc1MDA4JmFtcDtSQj0wMSI+Q2luJiN4RTk7bWE8L2E+PGJyLz4KKwk8L3A+CisKKzwvY2FyZD4KKzwvd21sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQveGh0bWwxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQveGh0bWwxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjMDZhOTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC94aHRtbDEKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzwhLS0gMy4xLjEgMy8gLS0+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgIDxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgorICAgIDx0aXRsZT5WaXJ0dWFsIExpYnJhcnk8L3RpdGxlPgorICA8L2hlYWQ+CisgIDwhLS0gNC44IC0tPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgIC4uLiB1bmVzY2FwZWQgc2NyaXB0ICZsdDsgY29udGVudCAuLi4KKyAgPC9zY3JpcHQ+CisgIDxib2R5PgorICAgIDxwPk1vdmVkIHRvIDxhIGhyZWY9Imh0dHA6Ly9leGFtcGxlLm9yZy8iPmV4YW1wbGUub3JnPC9hPi48L3A+CisgIDwvYm9keT4KKyAgPCEtLSBDMiAtLT4KKyAgPGltZyBzcmM9ImZvby5naWYiIGFsdD0iZm9vIiAvPgorICA8IS0tIEMzIC0tPgorICA8cD48L3A+CisgIDwhLS0gQzcgLS0+CisgIDxwIGxhbmc9ImZyIiB4bWw6bGFuZz0iZnIiPmNvdWNvdTwvcD4KKyAgPHAgeG1sOmxhbmc9ImZyIiBsYW5nPSJmciI+c2FsdXQ8L3A+CisgIDwhLS0gQzggLS0+CisgIDxwIG5hbWU9ImZyYWdpZCIgaWQ9ImZyYWdpZCI+dGVzdDwvcD4KKyAgPCEtLSA0LjUgLS0+CisgIDxkbCBjb21wYWN0PSJjb21wYWN0Ij4KKyAgPGR0PkludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2U8L2R0PgorICA8ZGQ+QW4gb3JnYW5pemF0aW9uIHdoaWNoIGVzdGFibGlzaGVzIHRlY2huaWNhbCBzdGFuZGFyZHMgZm9yIHRoZSBJbnRlcm5ldDwvZGQ+CisgIDwvZGw+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3hodG1sY29tcCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3hodG1sY29tcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2U2MzRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQveGh0bWxjb21wCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgIDxib2R5PgorICAgIDxoMT48YWJicj5hPC9hYmJyPiBiPC9oMT4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbm9lbnQveG1sMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3htbDEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM3ZDI2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3htbDEKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB0ZXN0IFsKKzwhRU5USVRZIGV4YW1wbGUgIjxwPkFuIGFtcGVyc2FuZCAoJiMzODsjMzg7KSBtYXkgYmUgZXNjYXBlZAorIG51bWVyaWNhbGx5ICgmIzM4OyMzODsjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKyAgKCZhbXA7YW1wOykuPC9wPiI+CitdPgorPHRlc3Q+PHA+QW4gYW1wZXJzYW5kICgmYW1wOykgbWF5IGJlIGVzY2FwZWQKKyBudW1lcmljYWxseSAoJmFtcDsjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKyAgKCZhbXA7YW1wOykuPC9wPjwvdGVzdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25vZW50L3htbDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC94bWwyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjMzk0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ub2VudC94bWwyCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgdGVzdCBbCis8IUVMRU1FTlQgdGVzdCAoI1BDREFUQSk+Cis8IUVOVElUWSAlIHh4ICImIzM3O3p6OyI+Cis8IUVOVElUWSAlIHp6ICcmIzYwOyFFTlRJVFkgdHJpY2t5ICJlcnJvci1wcm9uZSIgPic+Cis8IUVOVElUWSB0cmlja3kgImVycm9yLXByb25lIj4KK10+Cis8dGVzdD5UaGlzIHNhbXBsZSBzaG93cyBhIGVycm9yLXByb25lIG1ldGhvZC48L3Rlc3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ucyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YjkyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ucwpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRpYTpkaWFncmFtIHhtbG5zOmRpYT0iaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvIj4KKyAgPGRpYTpkaWFncmFtZGF0YSBkaWE6dGVzdGF0dHI9InRlc3QiLz4KKzwvZGlhOmRpYWdyYW0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ucy5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ucy5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEzZDEzNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zLnJkZQpAQCAtMCwwICsxLDcgQEAKKzAgMSBkaWE6ZGlhZ3JhbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBkaWE6ZGlhZ3JhbWRhdGEgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBkaWE6ZGlhZ3JhbSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTNkMTM1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMucmRyCkBAIC0wLDAgKzEsNyBAQAorMCAxIGRpYTpkaWFncmFtIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGRpYTpkaWFncmFtZGF0YSAxIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRpYTpkaWFncmFtIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZTAwZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ucy5zYXgKQEAgLTAsMCArMSwxMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGRpYTpkaWFncmFtLCB4bWxuczpkaWE9J2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZGlhZ3JhbWRhdGEsIGRpYTp0ZXN0YXR0cj0ndGVzdCcpCitTQVguZW5kRWxlbWVudChkaWE6ZGlhZ3JhbWRhdGEpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGRpYTpkaWFncmFtKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ucy5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MTVkYjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9ucy5zYXgyCkBAIC0wLDAgKzEsMTEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRpYWdyYW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDEsIHhtbG5zOmRpYT0naHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMoZGlhZ3JhbWRhdGEsIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDAsIDEsIDAsIGRpYTp0ZXN0YXR0cj0ndGVzdC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKGRpYWdyYW1kYXRhLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGRpYWdyYW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2OWFkODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczIKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyIgZGlhOnRlc3RhdHRyPSJ0ZXN0Ii8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczIucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGNhMGFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnJkZQpAQCAtMCwwICsxIEBACiswIDEgZGlhOmRpYWdyYW0gMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczIucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGNhMGFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnJkcgpAQCAtMCwwICsxIEBACiswIDEgZGlhOmRpYWdyYW0gMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczIuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGEzZmU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnNheApAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZGlhZ3JhbSwgeG1sbnM6ZGlhPSdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCBkaWE6dGVzdGF0dHI9J3Rlc3QnKQorU0FYLmVuZEVsZW1lbnQoZGlhOmRpYWdyYW0pCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzhkNmY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMyLnNheDIKQEAgLTAsMCArMSw1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhkaWFncmFtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAxLCB4bWxuczpkaWE9J2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDEsIDAsIGRpYTp0ZXN0YXR0cj0ndGVzdC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKGRpYWdyYW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2OWFkODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczMKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyIgZGlhOnRlc3RhdHRyPSJ0ZXN0Ii8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczMucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGNhMGFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnJkZQpAQCAtMCwwICsxIEBACiswIDEgZGlhOmRpYWdyYW0gMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczMucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGNhMGFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnJkcgpAQCAtMCwwICsxIEBACiswIDEgZGlhOmRpYWdyYW0gMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczMuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjFjN2YwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnNheApAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChkaWE6ZGlhZ3JhbSwgZGlhOnRlc3RhdHRyPSd0ZXN0JywgeG1sbnM6ZGlhPSdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nKQorU0FYLmVuZEVsZW1lbnQoZGlhOmRpYWdyYW0pCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczMuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzhkNmY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnMzLnNheDIKQEAgLTAsMCArMSw1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhkaWFncmFtLCBkaWEsICdodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8nLCAxLCB4bWxuczpkaWE9J2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycsIDEsIDAsIGRpYTp0ZXN0YXR0cj0ndGVzdC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKGRpYWdyYW0sIGRpYSwgJ2h0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLycpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNmJmOTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczQKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWFncmFtIHRlc3RhdHRyPSJ0ZXN0IiB4bWw6bGFuZz0iZW4iIHhtbDpsaW5rPSJzaW1wbGUiIHhtbDpzcGFjZT0icHJlc2VydmUiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczQucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNWRkYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczQucmRlCkBAIC0wLDAgKzEgQEAKKzAgMSBkaWFncmFtIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM0LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY1ZGRhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNC5yZHIKQEAgLTAsMCArMSBAQAorMCAxIGRpYWdyYW0gMSAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczQuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM0LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzRiOWEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM0LnNheApAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChkaWFncmFtLCB0ZXN0YXR0cj0ndGVzdCcsIHhtbDpsYW5nPSdlbicsIHhtbDpsaW5rPSdzaW1wbGUnLCB4bWw6c3BhY2U9J3ByZXNlcnZlJykKK1NBWC5lbmRFbGVtZW50KGRpYWdyYW0pCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM0LnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczQuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzFjYzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM0LnNheDIKQEAgLTAsMCArMSw1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhkaWFncmFtLCBOVUxMLCBOVUxMLCAwLCA0LCAwLCB0ZXN0YXR0cj0ndGVzdC4uLicsIDQsIHhtbDpsYW5nPSdlbiIgLi4uJywgMiwgeG1sOmxpbms9J3NpbXAuLi4nLCA2LCB4bWw6c3BhY2U9J3ByZXMuLi4nLCA4KQorU0FYLmVuZEVsZW1lbnROcyhkaWFncmFtLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWZlNGUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM1CkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZWxlbWVudCB4bWxuczpybmc9Imh0dHA6Ly9leGFtcGxlLm9yZy9ucy8xIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnL25zLzEiIG5hbWU9ImZvbyI+CisgIDxlbXB0eS8+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczUucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM1LnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGNlMTk2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM1LnJkZQpAQCAtMCwwICsxLDcgQEAKKzAgMSBlbGVtZW50IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGVtcHR5IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZWxlbWVudCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNS5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczUucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwY2UxOTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczUucmRyCkBAIC0wLDAgKzEsNyBAQAorMCAxIGVsZW1lbnQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZW1wdHkgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBlbGVtZW50IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM1LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ1OGJjYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNS5zYXgKQEAgLTAsMCArMSwxMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGVsZW1lbnQsIG5hbWU9J2ZvbycsIHhtbG5zOnJuZz0naHR0cDovL2V4YW1wbGUub3JnL25zLzEnLCB4bWxucz0naHR0cDovL2V4YW1wbGUub3JnL25zLzEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoZW1wdHkpCitTQVguZW5kRWxlbWVudChlbXB0eSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZWxlbWVudCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczUuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNS5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MzRkNmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczUuc2F4MgpAQCAtMCwwICsxLDExIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhlbGVtZW50LCBOVUxMLCAnaHR0cDovL2V4YW1wbGUub3JnL25zLzEnLCAyLCB4bWxuczpybmc9J2h0dHA6Ly9leGFtcGxlLm9yZy9ucy8xJywgeG1sbnM9J2h0dHA6Ly9leGFtcGxlLm9yZy9ucy8xJywgMSwgMCwgbmFtZT0nZm9vIi4uLicsIDMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGVtcHR5LCBOVUxMLCAnaHR0cDovL2V4YW1wbGUub3JnL25zLzEnLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhlbXB0eSwgTlVMTCwgJ2h0dHA6Ly9leGFtcGxlLm9yZy9ucy8xJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhlbGVtZW50LCBOVUxMLCAnaHR0cDovL2V4YW1wbGUub3JnL25zLzEnKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTcxMjUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM2CkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cm9vdD4KKyAgPGZvbyB4bWxucz0iaHR0cDovL2FiYyIvPgorICA8YmFyLz4KKzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNi5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczYucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzYTgwZWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczYucmRlCkBAIC0wLDAgKzEsMTAgQEAKKzAgMSByb290IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGZvbyAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBiYXIgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSByb290IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM2LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNi5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNhODBlYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNi5yZHIKQEAgLTAsMCArMSwxMCBAQAorMCAxIHJvb3QgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZm9vIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGJhciAxIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHJvb3QgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczYuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM2LnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTQwNWIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM2LnNheApAQCAtMCwwICsxLDE1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQocm9vdCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGZvbywgeG1sbnM9J2h0dHA6Ly9hYmMnKQorU0FYLmVuZEVsZW1lbnQoZm9vKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoYmFyKQorU0FYLmVuZEVsZW1lbnQoYmFyKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChyb290KQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNi5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM2LnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I1NDU1MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNi5zYXgyCkBAIC0wLDAgKzEsMTUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJvb3QsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGZvbywgTlVMTCwgJ2h0dHA6Ly9hYmMnLCAxLCB4bWxucz0naHR0cDovL2FiYycsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKGZvbywgTlVMTCwgJ2h0dHA6Ly9hYmMnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhiYXIsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKGJhciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhyb290LCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTA4OWUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM3CkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eG1sOnRlc3QvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM3LnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNy5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZmNTM1MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNy5yZGUKQEAgLTAsMCArMSBAQAorMCAxIHhtbDp0ZXN0IDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM3LnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNy5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZmNTM1MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNy5yZHIKQEAgLTAsMCArMSBAQAorMCAxIHhtbDp0ZXN0IDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnM3LnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNy5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAyMGJlOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNy5zYXgKQEAgLTAsMCArMSw1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoeG1sOnRlc3QpCitTQVguZW5kRWxlbWVudCh4bWw6dGVzdCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczcuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zNy5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMmM3MTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uczcuc2F4MgpAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHRlc3QsIHhtbCwgJ2h0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZScsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKHRlc3QsIHhtbCwgJ2h0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZScpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnNjbGVhbi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uc2NsZWFuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjFlYTgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnNjbGVhbi54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVUy1BU0NJSSI/PgorPGFydGljbGUgeG1sbnM9InRhZzpmb29mb29mb29mb29mb29mb29mb29mb28iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6ZGN0ZXJtcz0iaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyI+Cis8Zm9vcDpjb250ZW50IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxuczpmb29wPSJ0YWc6Zm9vZm9vZm9vZm9vZm9vZm9vZm9vZm9vIj4KKzwvZm9vcDpjb250ZW50PgorPC9hcnRpY2xlPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnNjbGVhbi54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnNjbGVhbi54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MDY1OTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uc2NsZWFuLnhtbC5yZGUKQEAgLTAsMCArMSwxMCBAQAorMCAxIGFydGljbGUgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIGZvb3A6Y29udGVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCisxIDE1IGZvb3A6Y29udGVudCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGFydGljbGUgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uc2NsZWFuLnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uc2NsZWFuLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYwNjU5MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zY2xlYW4ueG1sLnJkcgpAQCAtMCwwICsxLDEwIEBACiswIDEgYXJ0aWNsZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgZm9vcDpjb250ZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZm9vcDpjb250ZW50IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgYXJ0aWNsZSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zY2xlYW4ueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L25zY2xlYW4ueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDFhZWFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvbnNjbGVhbi54bWwuc2F4CkBAIC0wLDAgKzEsMTMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChhcnRpY2xlLCB4bWxucz0ndGFnOmZvb2Zvb2Zvb2Zvb2Zvb2Zvb2Zvb2ZvbycsIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLycsIHhtbG5zOmRjdGVybXM9J2h0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8nKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KGZvb3A6Y29udGVudCwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCB4bWxuczpmb29wPSd0YWc6Zm9vZm9vZm9vZm9vZm9vZm9vZm9vZm9vJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZm9vcDpjb250ZW50KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChhcnRpY2xlKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L25zY2xlYW4ueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uc2NsZWFuLnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NDNlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9uc2NsZWFuLnhtbC5zYXgyCkBAIC0wLDAgKzEsMTMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGFydGljbGUsIE5VTEwsICd0YWc6Zm9vZm9vZm9vZm9vZm9vZm9vZm9vZm9vJywgMywgeG1sbnM9J3RhZzpmb29mb29mb29mb29mb29mb29mb29mb28nLCB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nLCB4bWxuczpkY3Rlcm1zPSdodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbnRlbnQsIGZvb3AsICd0YWc6Zm9vZm9vZm9vZm9vZm9vZm9vZm9vZm9vJywgMiwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCB4bWxuczpmb29wPSd0YWc6Zm9vZm9vZm9vZm9vZm9vZm9vZm9vZm9vJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhjb250ZW50LCBmb29wLCAndGFnOmZvb2Zvb2Zvb2Zvb2Zvb2Zvb2Zvb2ZvbycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoYXJ0aWNsZSwgTlVMTCwgJ3RhZzpmb29mb29mb29mb29mb29mb29mb29mb28nKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWQ1NTg3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcDNwCkBAIC0wLDAgKzEsMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFJERjpSREYgeG1sbnM6cDNwPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1dELVAzUDEwLXN5bnRheCNwcm9wb3NhbC5EVEQiIHhtbG5zOlJERj0iaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMiPgorPFBST1AgcmVhbG09Imh0dHA6Ly93d3cuQ29vbENhdGFsb2cuY29tL2NhdGFsb2d1ZS8iIGVudGl0eT0iQ29vbENhdGFsb2ciIGFncmVlSUQ9Ijk0ZGYxMjkzYTNlNTE5YmIiIGFzc3VyYW5jZT0iaHR0cDovL3d3dy5UcnVzdFVzLm9yZyI+CisgIDxVU0VTPgorICA8U1RBVEVNRU5UIHB1cnA9IjIsMyIgcmVjcG50PSIwIiBpZD0iMCIgY29uc3E9ImEgc2l0ZSB3aXRoIGNsb3RoZXMgeW91J2QgYXBwcmVjaWF0ZS4iPgorICAgIDxXSVRIPjxQUkVGSVggbmFtZT0iVXNlci4iPgorICAgICA8UkVGIG5hbWU9Ik5hbWUuRmlyc3QiLz4KKyAgICAgPFJFRiBuYW1lPSJCZGF0ZS5ZZWFyIiBvcHRpb25hbD0iMSIvPgorICAgICA8UkVGIG5hbWU9IkdlbmRlciIvPgorICAgIDwvUFJFRklYPjwvV0lUSD4KKyAgPC9TVEFURU1FTlQ+CisgIDwvVVNFUz4KKyAgPFVTRVM+CisgIDxTVEFURU1FTlQgYWN0aW9uPSJyZWFkJmFtcDt3cml0ZSIgcHVycD0iMCIgcmVjcG50PSIwIiBpZD0iMSI+CisgICAgPFJFRiBuYW1lPSJVc2VyLlNoaXBwaW5nLiIvPgorICA8L1NUQVRFTUVOVD4KKyAgPC9VU0VTPgorICA8RElTQ0xPU1VSRSBkaXNjVVJJPSJodHRwOi8vd3d3LkNvb2xDYXRhbG9nLmNvbS9Qcml2YWN5UHJhY3RpY2UuaHRtbCIgYWNjZXNzPSIzIiBvdGhlcj0iMCwxIi8+Cis8L1BST1A+PC9SREY6UkRGPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcDNwLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMwMWY1MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcC5yZGUKQEAgLTAsMCArMSw1NSBAQAorMCAxIFJERjpSREYgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIFBST1AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgVVNFUyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAKKzMgMSBTVEFURU1FTlQgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAKKzQgMSBXSVRIIDAgMAorNSAxIFBSRUZJWCAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAKKzYgMSBSRUYgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgCis2IDEgUkVGIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgIAorNiAxIFJFRiAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgIAorNSAxNSBQUkVGSVggMCAwCis0IDE1IFdJVEggMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgCiszIDE1IFNUQVRFTUVOVCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAKKzIgMTUgVVNFUyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBVU0VTIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgIAorMyAxIFNUQVRFTUVOVCAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgIAorNCAxIFJFRiAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAKKzMgMTUgU1RBVEVNRU5UIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgIAorMiAxNSBVU0VTIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIERJU0NMT1NVUkUgMSAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBQUk9QIDAgMAorMCAxNSBSREY6UkRGIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcDNwLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMwMWY1MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcC5yZHIKQEAgLTAsMCArMSw1NSBAQAorMCAxIFJERjpSREYgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIFBST1AgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgVVNFUyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAKKzMgMSBTVEFURU1FTlQgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAKKzQgMSBXSVRIIDAgMAorNSAxIFBSRUZJWCAwIDAKKzYgMTQgI3RleHQgMCAxIAorICAgICAKKzYgMSBSRUYgMSAwCis2IDE0ICN0ZXh0IDAgMSAKKyAgICAgCis2IDEgUkVGIDEgMAorNiAxNCAjdGV4dCAwIDEgCisgICAgIAorNiAxIFJFRiAxIDAKKzYgMTQgI3RleHQgMCAxIAorICAgIAorNSAxNSBQUkVGSVggMCAwCis0IDE1IFdJVEggMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgCiszIDE1IFNUQVRFTUVOVCAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAKKzIgMTUgVVNFUyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBVU0VTIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgIAorMyAxIFNUQVRFTUVOVCAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgIAorNCAxIFJFRiAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAKKzMgMTUgU1RBVEVNRU5UIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgIAorMiAxNSBVU0VTIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIERJU0NMT1NVUkUgMSAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBQUk9QIDAgMAorMCAxNSBSREY6UkRGIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcDNwLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM2NjI5YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcC5zYXgKQEAgLTAsMCArMSw2MyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KFJERjpSREYsIHhtbG5zOnAzcD0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9XRC1QM1AxMC1zeW50YXgjcHJvcG9zYWwuRFREJywgeG1sbnM6UkRGPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoUFJPUCwgcmVhbG09J2h0dHA6Ly93d3cuQ29vbENhdGFsb2cuY29tL2NhdGFsb2d1ZS8nLCBlbnRpdHk9J0Nvb2xDYXRhbG9nJywgYWdyZWVJRD0nOTRkZjEyOTNhM2U1MTliYicsIGFzc3VyYW5jZT0naHR0cDovL3d3dy5UcnVzdFVzLm9yZycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChVU0VTKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoU1RBVEVNRU5ULCBwdXJwPScyLDMnLCByZWNwbnQ9JzAnLCBpZD0nMCcsIGNvbnNxPSdhIHNpdGUgd2l0aCBjbG90aGVzIHlvdSdkIGFwcHJlY2lhdGUuJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoV0lUSCkKK1NBWC5zdGFydEVsZW1lbnQoUFJFRklYLCBuYW1lPSdVc2VyLicpCitTQVguY2hhcmFjdGVycygKKyAgICAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChSRUYsIG5hbWU9J05hbWUuRmlyc3QnKQorU0FYLmVuZEVsZW1lbnQoUkVGKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoUkVGLCBuYW1lPSdCZGF0ZS5ZZWFyJywgb3B0aW9uYWw9JzEnKQorU0FYLmVuZEVsZW1lbnQoUkVGKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoUkVGLCBuYW1lPSdHZW5kZXInKQorU0FYLmVuZEVsZW1lbnQoUkVGKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoUFJFRklYKQorU0FYLmVuZEVsZW1lbnQoV0lUSCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChTVEFURU1FTlQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoVVNFUykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KFVTRVMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChTVEFURU1FTlQsIGFjdGlvbj0ncmVhZCYjMzg7d3JpdGUnLCBwdXJwPScwJywgcmVjcG50PScwJywgaWQ9JzEnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSRUYsIG5hbWU9J1VzZXIuU2hpcHBpbmcuJykKK1NBWC5lbmRFbGVtZW50KFJFRikKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChTVEFURU1FTlQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoVVNFUykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KERJU0NMT1NVUkUsIGRpc2NVUkk9J2h0dHA6Ly93d3cuQ29vbENhdGFsb2cuY29tL1ByaXZhY3lQcmFjdGljZS5odG1sJywgYWNjZXNzPSczJywgb3RoZXI9JzAsMScpCitTQVguZW5kRWxlbWVudChESVNDTE9TVVJFKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChQUk9QKQorU0FYLmVuZEVsZW1lbnQoUkRGOlJERikKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9wM3Auc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3AzcC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MmFlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9wM3Auc2F4MgpAQCAtMCwwICsxLDY1IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhSREYsIFJERiwgJ2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjJywgMiwgeG1sbnM6cDNwPSdodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1dELVAzUDEwLXN5bnRheCNwcm9wb3NhbC5EVEQnLCB4bWxuczpSREY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjJywgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKFBST1AsIE5VTEwsIE5VTEwsIDAsIDQsIDAsIHJlYWxtPSdodHRwLi4uJywgMzcsIGVudGl0eT0nQ29vbC4uLicsIDExLCBhZ3JlZUlEPSc5NGRmLi4uJywgMTYsIGFzc3VyYW5jZT0naHR0cC4uLicsIDIyKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhVU0VTLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhTVEFURU1FTlQsIE5VTEwsIE5VTEwsIDAsIDQsIDAsIHB1cnA9JzIsMyIuLi4nLCAzLCByZWNwbnQ9JzAiIGkuLi4nLCAxLCBpZD0nMCIKKyAuLi4nLCAxLCBjb25zcT0nYSBzaS4uLicsIDM3KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFdJVEgsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguc3RhcnRFbGVtZW50TnMoUFJFRklYLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBuYW1lPSdVc2VyLi4uJywgNSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoUkVGLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBuYW1lPSdOYW1lLi4uJywgMTApCitTQVguZW5kRWxlbWVudE5zKFJFRiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoUkVGLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBuYW1lPSdCZGF0Li4uJywgMTAsIG9wdGlvbmFsPScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMoUkVGLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnROcyhSRUYsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIG5hbWU9J0dlbmQuLi4nLCA2KQorU0FYLmVuZEVsZW1lbnROcyhSRUYsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKFBSRUZJWCwgTlVMTCwgTlVMTCkKK1NBWC5lbmRFbGVtZW50TnMoV0lUSCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKFNUQVRFTUVOVCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKFVTRVMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKFVTRVMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKFNUQVRFTUVOVCwgTlVMTCwgTlVMTCwgMCwgNCwgMCwgYWN0aW9uPSdyZWFkLi4uJywgMTQsIHB1cnA9JzAiIHIuLi4nLCAxLCByZWNwbnQ9JzAiIGkuLi4nLCAxLCBpZD0nMSI+CisuLi4nLCAxKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJFRiwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgbmFtZT0nVXNlci4uLicsIDE0KQorU0FYLmVuZEVsZW1lbnROcyhSRUYsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhTVEFURU1FTlQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhVU0VTLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhESVNDTE9TVVJFLCBOVUxMLCBOVUxMLCAwLCAzLCAwLCBkaXNjVVJJPSdodHRwLi4uJywgNDcsIGFjY2Vzcz0nMyIgby4uLicsIDEsIG90aGVyPScwLDEiLi4uJywgMykKK1NBWC5lbmRFbGVtZW50TnMoRElTQ0xPU1VSRSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhQUk9QLCBOVUxMLCBOVUxMKQorU0FYLmVuZEVsZW1lbnROcyhSREYsIFJERiwgJ2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjJykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9wYXR0ZXJuL2NvbmogYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9wYXR0ZXJuL2NvbmoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE2NDUwYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BhdHRlcm4vY29uagpAQCAtMCwwICsxLDQ3IEBACitOb2RlIC9hIG1hdGNoZXMgcGF0dGVybiBhfGIKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gYXxiCitOb2RlIC9hL2IvY1sxXS9iIG1hdGNoZXMgcGF0dGVybiBhfGIKK05vZGUgL2EvYi9jWzJdL2IgbWF0Y2hlcyBwYXR0ZXJuIGF8YgorTm9kZSAvYS9iL2NbMl0vYy9iIG1hdGNoZXMgcGF0dGVybiBhfGIKK05vZGUgL2EvYy9iIG1hdGNoZXMgcGF0dGVybiBhfGIKK05vZGUgL2EgbWF0Y2hlcyBwYXR0ZXJuIGF8YworTm9kZSAvYS9iL2NbMV0gbWF0Y2hlcyBwYXR0ZXJuIGF8YworTm9kZSAvYS9iL2NbMl0gbWF0Y2hlcyBwYXR0ZXJuIGF8YworTm9kZSAvYS9iL2NbMl0vYyBtYXRjaGVzIHBhdHRlcm4gYXxjCitOb2RlIC9hL2MgbWF0Y2hlcyBwYXR0ZXJuIGF8YworTm9kZSAvYS9iIG1hdGNoZXMgcGF0dGVybiBifGMKK05vZGUgL2EvYi9jWzFdIG1hdGNoZXMgcGF0dGVybiBifGMKK05vZGUgL2EvYi9jWzFdL2IgbWF0Y2hlcyBwYXR0ZXJuIGJ8YworTm9kZSAvYS9iL2NbMl0gbWF0Y2hlcyBwYXR0ZXJuIGJ8YworTm9kZSAvYS9iL2NbMl0vYiBtYXRjaGVzIHBhdHRlcm4gYnxjCitOb2RlIC9hL2IvY1syXS9jIG1hdGNoZXMgcGF0dGVybiBifGMKK05vZGUgL2EvYi9jWzJdL2MvYiBtYXRjaGVzIHBhdHRlcm4gYnxjCitOb2RlIC9hL2MgbWF0Y2hlcyBwYXR0ZXJuIGJ8YworTm9kZSAvYS9jL2IgbWF0Y2hlcyBwYXR0ZXJuIGJ8YworTm9kZSAvYSBtYXRjaGVzIHBhdHRlcm4gYXxifGMKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gYXxifGMKK05vZGUgL2EvYi9jWzFdIG1hdGNoZXMgcGF0dGVybiBhfGJ8YworTm9kZSAvYS9iL2NbMV0vYiBtYXRjaGVzIHBhdHRlcm4gYXxifGMKK05vZGUgL2EvYi9jWzJdIG1hdGNoZXMgcGF0dGVybiBhfGJ8YworTm9kZSAvYS9iL2NbMl0vYiBtYXRjaGVzIHBhdHRlcm4gYXxifGMKK05vZGUgL2EvYi9jWzJdL2MgbWF0Y2hlcyBwYXR0ZXJuIGF8YnxjCitOb2RlIC9hL2IvY1syXS9jL2IgbWF0Y2hlcyBwYXR0ZXJuIGF8YnxjCitOb2RlIC9hL2MgbWF0Y2hlcyBwYXR0ZXJuIGF8YnxjCitOb2RlIC9hL2MvYiBtYXRjaGVzIHBhdHRlcm4gYXxifGMKK05vZGUgL2EgbWF0Y2hlcyBwYXR0ZXJuIC9hfGIKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gL2F8YgorTm9kZSAvYS9iL2NbMV0vYiBtYXRjaGVzIHBhdHRlcm4gL2F8YgorTm9kZSAvYS9iL2NbMl0vYiBtYXRjaGVzIHBhdHRlcm4gL2F8YgorTm9kZSAvYS9iL2NbMl0vYy9iIG1hdGNoZXMgcGF0dGVybiAvYXxiCitOb2RlIC9hL2MvYiBtYXRjaGVzIHBhdHRlcm4gL2F8YgorTm9kZSAvYSBtYXRjaGVzIHBhdHRlcm4gYnwvYQorTm9kZSAvYS9iIG1hdGNoZXMgcGF0dGVybiBifC9hCitOb2RlIC9hL2IvY1sxXS9iIG1hdGNoZXMgcGF0dGVybiBifC9hCitOb2RlIC9hL2IvY1syXS9iIG1hdGNoZXMgcGF0dGVybiBifC9hCitOb2RlIC9hL2IvY1syXS9jL2IgbWF0Y2hlcyBwYXR0ZXJuIGJ8L2EKK05vZGUgL2EvYy9iIG1hdGNoZXMgcGF0dGVybiBifC9hCitOb2RlIC9hL2IvY1sxXSBtYXRjaGVzIHBhdHRlcm4gYS8vY3xiLy9jCitOb2RlIC9hL2IvY1syXSBtYXRjaGVzIHBhdHRlcm4gYS8vY3xiLy9jCitOb2RlIC9hL2IvY1syXS9jIG1hdGNoZXMgcGF0dGVybiBhLy9jfGIvL2MKK05vZGUgL2EvYyBtYXRjaGVzIHBhdHRlcm4gYS8vY3xiLy9jCitOb2RlIC9hIG1hdGNoZXMgcGF0dGVybiBkfGV8ZnxnfGh8YQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGF0dGVybi9tdWx0aXBsZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BhdHRlcm4vbXVsdGlwbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEwMzkwZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BhdHRlcm4vbXVsdGlwbGUKQEAgLTAsMCArMSw5MSBAQAorTm9kZSAvYy9iWzFdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIGEKK05vZGUgL2MvYlsxXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBhCitOb2RlIC9jL2MvYi9hWzFdIG1hdGNoZXMgcGF0dGVybiBhCitOb2RlIC9jL2MvYi9hWzJdIG1hdGNoZXMgcGF0dGVybiBhCitOb2RlIC9jL2JbMl0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gYQorTm9kZSAvYy9iWzJdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIGEKK05vZGUgL2MvYlsxXSBtYXRjaGVzIHBhdHRlcm4gYgorTm9kZSAvYy9jL2IgbWF0Y2hlcyBwYXR0ZXJuIGIKK05vZGUgL2MvYlsyXSBtYXRjaGVzIHBhdHRlcm4gYgorTm9kZSAvYyBtYXRjaGVzIHBhdHRlcm4gYworTm9kZSAvYy9jIG1hdGNoZXMgcGF0dGVybiBjCitOb2RlIC9jL2JbMV0gbWF0Y2hlcyBwYXR0ZXJuIGMvYgorTm9kZSAvYy9jL2IgbWF0Y2hlcyBwYXR0ZXJuIGMvYgorTm9kZSAvYy9iWzJdIG1hdGNoZXMgcGF0dGVybiBjL2IKK05vZGUgL2MvYlsxXS9hWzFdIG1hdGNoZXMgcGF0dGVybiBiL2EKK05vZGUgL2MvYlsxXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBiL2EKK05vZGUgL2MvYy9iL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIGIvYQorTm9kZSAvYy9jL2IvYVsyXSBtYXRjaGVzIHBhdHRlcm4gYi9hCitOb2RlIC9jL2JbMl0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gYi9hCitOb2RlIC9jL2JbMl0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gYi9hCitOb2RlIC9jL2JbMV0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gYy9iL2EKK05vZGUgL2MvYlsxXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBjL2IvYQorTm9kZSAvYy9jL2IvYVsxXSBtYXRjaGVzIHBhdHRlcm4gYy9iL2EKK05vZGUgL2MvYy9iL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIGMvYi9hCitOb2RlIC9jL2JbMl0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gYy9iL2EKK05vZGUgL2MvYlsyXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBjL2IvYQorTm9kZSAvYy9iWzFdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIGMvL2EKK05vZGUgL2MvYlsxXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBjLy9hCitOb2RlIC9jL2MvYi9hWzFdIG1hdGNoZXMgcGF0dGVybiBjLy9hCitOb2RlIC9jL2MvYi9hWzJdIG1hdGNoZXMgcGF0dGVybiBjLy9hCitOb2RlIC9jL2JbMl0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gYy8vYQorTm9kZSAvYy9iWzJdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIGMvL2EKK05vZGUgL2MvYlsxXSBtYXRjaGVzIHBhdHRlcm4gYy8vYgorTm9kZSAvYy9jL2IgbWF0Y2hlcyBwYXR0ZXJuIGMvL2IKK05vZGUgL2MvYlsyXSBtYXRjaGVzIHBhdHRlcm4gYy8vYgorTm9kZSAvYy9iWzFdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIGIvL2EKK05vZGUgL2MvYlsxXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBiLy9hCitOb2RlIC9jL2MvYi9hWzFdIG1hdGNoZXMgcGF0dGVybiBiLy9hCitOb2RlIC9jL2MvYi9hWzJdIG1hdGNoZXMgcGF0dGVybiBiLy9hCitOb2RlIC9jL2JbMl0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gYi8vYQorTm9kZSAvYy9iWzJdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIGIvL2EKK05vZGUgL2MvYlsxXS9hWzFdIG1hdGNoZXMgcGF0dGVybiBjLy9iLy9hCitOb2RlIC9jL2JbMV0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gYy8vYi8vYQorTm9kZSAvYy9jL2IvYVsxXSBtYXRjaGVzIHBhdHRlcm4gYy8vYi8vYQorTm9kZSAvYy9jL2IvYVsyXSBtYXRjaGVzIHBhdHRlcm4gYy8vYi8vYQorTm9kZSAvYy9iWzJdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIGMvL2IvL2EKK05vZGUgL2MvYlsyXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBjLy9iLy9hCitOb2RlIC9jL2JbMV0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gYy9iLy9hCitOb2RlIC9jL2JbMV0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gYy9iLy9hCitOb2RlIC9jL2MvYi9hWzFdIG1hdGNoZXMgcGF0dGVybiBjL2IvL2EKK05vZGUgL2MvYy9iL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIGMvYi8vYQorTm9kZSAvYy9iWzJdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIGMvYi8vYQorTm9kZSAvYy9iWzJdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIGMvYi8vYQorTm9kZSAvYy9iWzFdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIGMvL2IvYQorTm9kZSAvYy9iWzFdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIGMvL2IvYQorTm9kZSAvYy9jL2IvYVsxXSBtYXRjaGVzIHBhdHRlcm4gYy8vYi9hCitOb2RlIC9jL2MvYi9hWzJdIG1hdGNoZXMgcGF0dGVybiBjLy9iL2EKK05vZGUgL2MvYlsyXS9hWzFdIG1hdGNoZXMgcGF0dGVybiBjLy9iL2EKK05vZGUgL2MvYlsyXS9hWzJdIG1hdGNoZXMgcGF0dGVybiBjLy9iL2EKK05vZGUgL2MgbWF0Y2hlcyBwYXR0ZXJuIC9jCitOb2RlIC9jL2JbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jL2IKK05vZGUgL2MvYlsyXSBtYXRjaGVzIHBhdHRlcm4gL2MvYgorTm9kZSAvYy9iWzFdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jL2IvYQorTm9kZSAvYy9iWzFdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIC9jL2IvYQorTm9kZSAvYy9iWzJdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jL2IvYQorTm9kZSAvYy9iWzJdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIC9jL2IvYQorTm9kZSAvYy9iWzFdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9hCitOb2RlIC9jL2JbMV0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gL2MvL2EKK05vZGUgL2MvYy9iL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9hCitOb2RlIC9jL2MvYi9hWzJdIG1hdGNoZXMgcGF0dGVybiAvYy8vYQorTm9kZSAvYy9iWzJdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9hCitOb2RlIC9jL2JbMl0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gL2MvL2EKK05vZGUgL2MvYlsxXSBtYXRjaGVzIHBhdHRlcm4gL2MvL2IKK05vZGUgL2MvYy9iIG1hdGNoZXMgcGF0dGVybiAvYy8vYgorTm9kZSAvYy9iWzJdIG1hdGNoZXMgcGF0dGVybiAvYy8vYgorTm9kZSAvYy9iWzFdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9iLy9hCitOb2RlIC9jL2JbMV0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gL2MvL2IvL2EKK05vZGUgL2MvYy9iL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9iLy9hCitOb2RlIC9jL2MvYi9hWzJdIG1hdGNoZXMgcGF0dGVybiAvYy8vYi8vYQorTm9kZSAvYy9iWzJdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9iLy9hCitOb2RlIC9jL2JbMl0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gL2MvL2IvL2EKK05vZGUgL2MvYlsxXS9hWzFdIG1hdGNoZXMgcGF0dGVybiAvYy9iLy9hCitOb2RlIC9jL2JbMV0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gL2MvYi8vYQorTm9kZSAvYy9iWzJdL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jL2IvL2EKK05vZGUgL2MvYlsyXS9hWzJdIG1hdGNoZXMgcGF0dGVybiAvYy9iLy9hCitOb2RlIC9jL2JbMV0vYVsxXSBtYXRjaGVzIHBhdHRlcm4gL2MvL2IvYQorTm9kZSAvYy9iWzFdL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9iL2EKK05vZGUgL2MvYy9iL2FbMV0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9iL2EKK05vZGUgL2MvYy9iL2FbMl0gbWF0Y2hlcyBwYXR0ZXJuIC9jLy9iL2EKK05vZGUgL2MvYlsyXS9hWzFdIG1hdGNoZXMgcGF0dGVybiAvYy8vYi9hCitOb2RlIC9jL2JbMl0vYVsyXSBtYXRjaGVzIHBhdHRlcm4gL2MvL2IvYQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGF0dGVybi9uYW1lc3BhY2VzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGF0dGVybi9uYW1lc3BhY2VzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1OWY4NDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9wYXR0ZXJuL25hbWVzcGFjZXMKQEAgLTAsMCArMSwyMCBAQAorTm9kZSAvYSBtYXRjaGVzIHBhdHRlcm4gLy9hCitOb2RlIC9hL2I6Yi9hIG1hdGNoZXMgcGF0dGVybiAvL2EKK05vZGUgL2EvKls0XS9hIG1hdGNoZXMgcGF0dGVybiAvL2EKK05vZGUgL2EvYTphIG1hdGNoZXMgcGF0dGVybiAvL2E6YQorTm9kZSAvYS9iOmIvYS9hOmEgbWF0Y2hlcyBwYXR0ZXJuIC8vYTphCitOb2RlIC9hLypbNF0gbWF0Y2hlcyBwYXR0ZXJuIC8vYTphCitOb2RlIC9hL2M6YSBtYXRjaGVzIHBhdHRlcm4gLy9hOmEKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gLy9iCitOb2RlIC9hL2E6YS9iOmIgbWF0Y2hlcyBwYXR0ZXJuIC8vYjpiCitOb2RlIC9hL2I6YiBtYXRjaGVzIHBhdHRlcm4gLy9iOmIKK05vZGUgL2EvYjpiL2EvYTphL2I6YiBtYXRjaGVzIHBhdHRlcm4gLy9iOmIKK05vZGUgL2EvYjpiL2EgbWF0Y2hlcyBwYXR0ZXJuIC9hLy9hCitOb2RlIC9hLypbNF0vYSBtYXRjaGVzIHBhdHRlcm4gL2EvL2EKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gL2EvYgorTm9kZSAvYS9hOmEgbWF0Y2hlcyBwYXR0ZXJuIC9hL2E6YQorTm9kZSAvYS8qWzRdIG1hdGNoZXMgcGF0dGVybiAvYS9hOmEKK05vZGUgL2EvYzphIG1hdGNoZXMgcGF0dGVybiAvYS9hOmEKK05vZGUgL2EvYTphIG1hdGNoZXMgcGF0dGVybiAvYS9jOmEKK05vZGUgL2EvKls0XSBtYXRjaGVzIHBhdHRlcm4gL2EvYzphCitOb2RlIC9hL2M6YSBtYXRjaGVzIHBhdHRlcm4gL2EvYzphCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9wYXR0ZXJuL3NpbXBsZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BhdHRlcm4vc2ltcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MTBiNWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9wYXR0ZXJuL3NpbXBsZQpAQCAtMCwwICsxLDEyIEBACitOb2RlIC9hIG1hdGNoZXMgcGF0dGVybiBhCitOb2RlIC9hL2IgbWF0Y2hlcyBwYXR0ZXJuIGIKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gYgorTm9kZSAvYSBtYXRjaGVzIHBhdHRlcm4gL2EKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gYS9iCitOb2RlIC9hL2IvYyBtYXRjaGVzIHBhdHRlcm4gYS9iL2MKK05vZGUgL2EgbWF0Y2hlcyBwYXR0ZXJuIC8vYQorTm9kZSAvYS9iIG1hdGNoZXMgcGF0dGVybiAvL2IKK05vZGUgL2EvYi9jIG1hdGNoZXMgcGF0dGVybiAvL2MKK05vZGUgL2EvYiBtYXRjaGVzIHBhdHRlcm4gYS8vYgorTm9kZSAvYS9iL2MgbWF0Y2hlcyBwYXR0ZXJuIGEvL2MKK05vZGUgL2EvYi9jIG1hdGNoZXMgcGF0dGVybiBiLy9jCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhjN2ZmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKzw/ZG9jdW1lbnQtc3RhcnQgZG9jPz4KKzxlbXB0eS8+Cis8P2RvY3VtZW50LWVuZCBkb2M/PgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waS54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGM4YThkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkueG1sLnJkZQpAQCAtMCwwICsxLDEzIEBACiswIDEgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgNyBkb2N1bWVudC1zdGFydCAwIDEgZG9jCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIGVtcHR5IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgNyBkb2N1bWVudC1lbmQgMCAxIGRvYworMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RjOGE4ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpLnhtbC5yZHIKQEAgLTAsMCArMSwxMyBAQAorMCAxIGRvYyAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDcgZG9jdW1lbnQtc3RhcnQgMCAxIGRvYworMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBlbXB0eSAxIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDcgZG9jdW1lbnQtZW5kIDAgMSBkb2MKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waS54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMWI5YmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waS54bWwuc2F4CkBAIC0wLDAgKzEsMTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChkb2MpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oZG9jdW1lbnQtc3RhcnQsIGRvYykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChlbXB0eSkKK1NBWC5lbmRFbGVtZW50KGVtcHR5KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVgucHJvY2Vzc2luZ0luc3RydWN0aW9uKGRvY3VtZW50LWVuZCwgZG9jKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waS54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDQ5MGVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkueG1sLnNheDIKQEAgLTAsMCArMSwxNyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVgucHJvY2Vzc2luZ0luc3RydWN0aW9uKGRvY3VtZW50LXN0YXJ0LCBkb2MpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhlbXB0eSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoZW1wdHksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oZG9jdW1lbnQtZW5kLCBkb2MpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZG9jLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpMi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMGQ1MWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waTIueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8P2RvY3VtZW50LXN0YXJ0IGRvYz8+Cis8ZG9jPgorPGVtcHR5Lz4KKzwvZG9jPgorPD9kb2N1bWVudC1lbmQgZG9jPz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpMi54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkyLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJiM2I5ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpMi54bWwucmRlCkBAIC0wLDAgKzEsOSBAQAorMCA3IGRvY3VtZW50LXN0YXJ0IDAgMSBkb2MKKzAgMSBkb2MgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIGVtcHR5IDEgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgZG9jIDAgMAorMCA3IGRvY3VtZW50LWVuZCAwIDEgZG9jCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waTIueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpMi54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyYjNiOWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waTIueG1sLnJkcgpAQCAtMCwwICsxLDkgQEAKKzAgNyBkb2N1bWVudC1zdGFydCAwIDEgZG9jCiswIDEgZG9jIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBlbXB0eSAxIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGRvYyAwIDAKKzAgNyBkb2N1bWVudC1lbmQgMCAxIGRvYwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkyLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9waTIueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTAwYTE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkyLnhtbC5zYXgKQEAgLTAsMCArMSwxMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVgucHJvY2Vzc2luZ0luc3RydWN0aW9uKGRvY3VtZW50LXN0YXJ0LCBkb2MpCitTQVguc3RhcnRFbGVtZW50KGRvYykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChlbXB0eSkKK1NBWC5lbmRFbGVtZW50KGVtcHR5KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChkb2MpCitTQVgucHJvY2Vzc2luZ0luc3RydWN0aW9uKGRvY3VtZW50LWVuZCwgZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpMi54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3BpMi54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTZjYWFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcGkyLnhtbC5zYXgyCkBAIC0wLDAgKzEsMTMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnByb2Nlc3NpbmdJbnN0cnVjdGlvbihkb2N1bWVudC1zdGFydCwgZG9jKQorU0FYLnN0YXJ0RWxlbWVudE5zKGRvYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKGVtcHR5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhlbXB0eSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhkb2MsIE5VTEwsIE5VTEwpCitTQVgucHJvY2Vzc2luZ0luc3RydWN0aW9uKGRvY3VtZW50LWVuZCwgZG9jKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NGMzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYxCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFJERjpSREYgeG1sbnM6UlBNPSJodHRwOi8vd3d3LnJwbS5vcmcvIiB4bWxuczpSREY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjIj4KKyAgPFJERjpEZXNjcmlwdGlvbiBIUkVGPSJmdHA6Ly9ydWZ1cy53My5vcmcvbGludXgvcmVkaGF0L3JlZGhhdC01LjEvaTM4Ni9SZWRIYXQvUlBNUy9ycG0tMi41LTIuaTM4Ni5ycG0iPgorICAgIDxSUE06TmFtZT5ycG08L1JQTTpOYW1lPgorICAgIDxSUE06VmVyc2lvbj4yLjU8L1JQTTpWZXJzaW9uPgorICAgIDxSUE06UmVsZWFzZT4yPC9SUE06UmVsZWFzZT4KKyAgICA8UlBNOkFyY2g+aTM4NjwvUlBNOkFyY2g+CisgICAgPFJQTTpPcz5MaW51eDwvUlBNOk9zPgorICAgIDxSUE06RGlzdHJpYnV0aW9uPk1hbmhhdHRhbiA8L1JQTTpEaXN0cmlidXRpb24+CisgICAgPFJQTTpWZW5kb3I+UmVkIEhhdCBTb2Z0d2FyZTwvUlBNOlZlbmRvcj4KKyAgICA8UlBNOlBhY2thZ2VyPlJlZCBIYXQgU29mdHdhcmUgJmx0O2J1Z3NAcmVkaGF0LmNvbSZndDs8L1JQTTpQYWNrYWdlcj4KKyAgICA8UlBNOkdyb3VwPlV0aWxpdGllcy9TeXN0ZW08L1JQTTpHcm91cD4KKyAgICA8UlBNOlN1bW1hcnk+UmVkIEhhdCBQYWNrYWdlIE1hbmFnZXI8L1JQTTpTdW1tYXJ5PgorICAgIDxSUE06RGVzY3JpcHRpb24+UlBNIGlzIGEgcG93ZXJmdWwgcGFja2FnZSBtYW5hZ2VyLCB3aGljaCBjYW4gYmUgdXNlZCB0byBidWlsZCwgaW5zdGFsbCwKK3F1ZXJ5LCB2ZXJpZnksIHVwZGF0ZSwgYW5kIHVuaW5zdGFsbCBpbmRpdmlkdWFsIHNvZnR3YXJlIHBhY2thZ2VzLiBBCitwYWNrYWdlIGNvbnNpc3RzIG9mIGFuIGFyY2hpdmUgb2YgZmlsZXMsIGFuZCBwYWNrYWdlIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcKK25hbWUsIHZlcnNpb24sIGFuZCBkZXNjcmlwdGlvbi48L1JQTTpEZXNjcmlwdGlvbj4KKyAgICA8UlBNOkNvcHlyaWdodD5HUEw8L1JQTTpDb3B5cmlnaHQ+CisgICAgPFJQTTpDaGFuZ2Vsb2c+KiBTdW4gTWF5IDEwIDE5OTggUHJvc3BlY3RvciBTeXN0ZW0gJmx0O2J1Z3NAcmVkaGF0LmNvbSZndDsKKyAgLSB0cmFuc2xhdGlvbnMgbW9kaWZpZWQgZm9yIGRlLCBmciwgdHIKKzwvUlBNOkNoYW5nZWxvZz4KKyAgICA8UlBNOlNvdXJjZXM+cnBtLTIuNS0yLnNyYy5ycG08L1JQTTpTb3VyY2VzPgorICAgIDxSUE06U291cmNlc0Z0cD5mdHA6Ly9mdHAucmVkaGF0LmNvbS9wdWIvcmVkaGF0L3JlZGhhdC01LjEvU1JQTVM8L1JQTTpTb3VyY2VzRnRwPgorICAgIDxSUE06QnVpbGREYXRlPlN1biBNYXkgMTAgMTQ6NTI6MzIgMTk5ODwvUlBNOkJ1aWxkRGF0ZT4KKyAgICA8UlBNOkRhdGU+ODk0ODI2MzUyPC9SUE06RGF0ZT4KKyAgICA8UlBNOlNpemU+ODUwNTk5PC9SUE06U2l6ZT4KKyAgICA8UlBNOkJ1aWxkSG9zdD5wb3JreS5yZWRoYXQuY29tPC9SUE06QnVpbGRIb3N0PgorICAgIDxSUE06UHJvdmlkZXM+CisgICAgICA8UkRGOkJhZz4KKyAgICAgICAgPFJQTTpSZXNvdXJjZT5ycG08L1JQTTpSZXNvdXJjZT4KKyAgICAgIDwvUkRGOkJhZz4KKyAgICA8L1JQTTpQcm92aWRlcz4KKyAgICA8UlBNOlJlcXVpcmVzPgorICAgICAgPFJERjpCYWc+CisgICAgICAgIDxSUE06UmVzb3VyY2U+L2Jpbi9zaDwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlPmxkLWxpbnV4LnNvLjI8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZT5saWJjLnNvLjY8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZT5saWJkYi5zby4yPC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+bGliei5zby4xPC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+L2Jpbi9iYXNoPC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+L2Jpbi9zaDwvUlBNOlJlc291cmNlPgorICAgICAgPC9SREY6QmFnPgorICAgIDwvUlBNOlJlcXVpcmVzPgorICAgIDxSUE06RmlsZXM+L2Jpbi9ycG0KKy91c3IvYmluL2ZpbmQtcHJvdmlkZXMKKy91c3IvYmluL2ZpbmQtcmVxdWlyZXMKKy91c3IvYmluL2dlbmRpZmYKKy91c3IvYmluL3JwbTJjcGlvCisvdXNyL2RvYy9ycG0tMi41CisvdXNyL2RvYy9ycG0tMi41L0NIQU5HRVMKKy91c3IvZG9jL3JwbS0yLjUvUlBNLVBHUC1LRVkKKy91c3IvZG9jL3JwbS0yLjUvYnVpbGRyb290CisvdXNyL2RvYy9ycG0tMi41L2RlcGVuZGVuY2llcworL3Vzci9kb2MvcnBtLTIuNS9mb3JtYXQKKy91c3IvZG9jL3JwbS0yLjUvZ3JvdXBzCisvdXNyL2RvYy9ycG0tMi41L21hY3JvcworL3Vzci9kb2MvcnBtLTIuNS9xdWVyeWZvcm1hdAorL3Vzci9kb2MvcnBtLTIuNS9yZWxvY2F0YWJsZQorL3Vzci9kb2MvcnBtLTIuNS9zaWduYXR1cmVzCisvdXNyL2RvYy9ycG0tMi41L3NwZWMKKy91c3IvZG9jL3JwbS0yLjUvdHJpZ2dlcnMKKy91c3IvbGliL3JwbXBvcHQKKy91c3IvbGliL3JwbXJjCisvdXNyL21hbi9tYW44L3JwbS44CisvdXNyL21hbi9tYW44L3JwbTJjcGlvLjgKKy91c3Ivc2hhcmUvbG9jYWxlL2RlL0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvZnIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NoYXJlL2xvY2FsZS9wdC1ici9MQ19NRVNTQUdFUy9ycG0ubW8KKy91c3Ivc2hhcmUvbG9jYWxlL3N2L0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvdHIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NyYy9yZWRoYXQKKy91c3Ivc3JjL3JlZGhhdC9CVUlMRAorL3Vzci9zcmMvcmVkaGF0L1JQTVMKKy91c3Ivc3JjL3JlZGhhdC9SUE1TL2kzODYKKy91c3Ivc3JjL3JlZGhhdC9SUE1TL25vYXJjaAorL3Vzci9zcmMvcmVkaGF0L1NPVVJDRVMKKy91c3Ivc3JjL3JlZGhhdC9TUEVDUworL3Vzci9zcmMvcmVkaGF0L1NSUE1TCis8L1JQTTpGaWxlcz4KKyAgPC9SREY6RGVzY3JpcHRpb24+Cis8L1JERjpSREY+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYxLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjEucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNDM5OWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYxLnJkZQpAQCAtMCwwICsxLDIxNCBAQAorMCAxIFJERjpSREYgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgUkRGOkRlc2NyaXB0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOk5hbWUgMCAwCiszIDMgI3RleHQgMCAxIHJwbQorMiAxNSBSUE06TmFtZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpWZXJzaW9uIDAgMAorMyAzICN0ZXh0IDAgMSAyLjUKKzIgMTUgUlBNOlZlcnNpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06UmVsZWFzZSAwIDAKKzMgMyAjdGV4dCAwIDEgMgorMiAxNSBSUE06UmVsZWFzZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpBcmNoIDAgMAorMyAzICN0ZXh0IDAgMSBpMzg2CisyIDE1IFJQTTpBcmNoIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOk9zIDAgMAorMyAzICN0ZXh0IDAgMSBMaW51eAorMiAxNSBSUE06T3MgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06RGlzdHJpYnV0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBNYW5oYXR0YW4gCisyIDE1IFJQTTpEaXN0cmlidXRpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06VmVuZG9yIDAgMAorMyAzICN0ZXh0IDAgMSBSZWQgSGF0IFNvZnR3YXJlCisyIDE1IFJQTTpWZW5kb3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06UGFja2FnZXIgMCAwCiszIDMgI3RleHQgMCAxIFJlZCBIYXQgU29mdHdhcmUgPGJ1Z3NAcmVkaGF0LmNvbT4KKzIgMTUgUlBNOlBhY2thZ2VyIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkdyb3VwIDAgMAorMyAzICN0ZXh0IDAgMSBVdGlsaXRpZXMvU3lzdGVtCisyIDE1IFJQTTpHcm91cCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpTdW1tYXJ5IDAgMAorMyAzICN0ZXh0IDAgMSBSZWQgSGF0IFBhY2thZ2UgTWFuYWdlcgorMiAxNSBSUE06U3VtbWFyeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpEZXNjcmlwdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgUlBNIGlzIGEgcG93ZXJmdWwgcGFja2FnZSBtYW5hZ2VyLCB3aGljaCBjYW4gYmUgdXNlZCB0byBidWlsZCwgaW5zdGFsbCwKK3F1ZXJ5LCB2ZXJpZnksIHVwZGF0ZSwgYW5kIHVuaW5zdGFsbCBpbmRpdmlkdWFsIHNvZnR3YXJlIHBhY2thZ2VzLiBBCitwYWNrYWdlIGNvbnNpc3RzIG9mIGFuIGFyY2hpdmUgb2YgZmlsZXMsIGFuZCBwYWNrYWdlIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcKK25hbWUsIHZlcnNpb24sIGFuZCBkZXNjcmlwdGlvbi4KKzIgMTUgUlBNOkRlc2NyaXB0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkNvcHlyaWdodCAwIDAKKzMgMyAjdGV4dCAwIDEgR1BMCisyIDE1IFJQTTpDb3B5cmlnaHQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06Q2hhbmdlbG9nIDAgMAorMyAzICN0ZXh0IDAgMSAqIFN1biBNYXkgMTAgMTk5OCBQcm9zcGVjdG9yIFN5c3RlbSA8YnVnc0ByZWRoYXQuY29tPgorICAtIHRyYW5zbGF0aW9ucyBtb2RpZmllZCBmb3IgZGUsIGZyLCB0cgorCisyIDE1IFJQTTpDaGFuZ2Vsb2cgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06U291cmNlcyAwIDAKKzMgMyAjdGV4dCAwIDEgcnBtLTIuNS0yLnNyYy5ycG0KKzIgMTUgUlBNOlNvdXJjZXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06U291cmNlc0Z0cCAwIDAKKzMgMyAjdGV4dCAwIDEgZnRwOi8vZnRwLnJlZGhhdC5jb20vcHViL3JlZGhhdC9yZWRoYXQtNS4xL1NSUE1TCisyIDE1IFJQTTpTb3VyY2VzRnRwIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkJ1aWxkRGF0ZSAwIDAKKzMgMyAjdGV4dCAwIDEgU3VuIE1heSAxMCAxNDo1MjozMiAxOTk4CisyIDE1IFJQTTpCdWlsZERhdGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06RGF0ZSAwIDAKKzMgMyAjdGV4dCAwIDEgODk0ODI2MzUyCisyIDE1IFJQTTpEYXRlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlNpemUgMCAwCiszIDMgI3RleHQgMCAxIDg1MDU5OQorMiAxNSBSUE06U2l6ZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpCdWlsZEhvc3QgMCAwCiszIDMgI3RleHQgMCAxIHBvcmt5LnJlZGhhdC5jb20KKzIgMTUgUlBNOkJ1aWxkSG9zdCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpQcm92aWRlcyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUkRGOkJhZyAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIHJwbQorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBSREY6QmFnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IFJQTTpQcm92aWRlcyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpSZXF1aXJlcyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDEgUkRGOkJhZyAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIC9iaW4vc2gKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgbGQtbGludXguc28uMgorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBsaWJjLnNvLjYKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgbGliZGIuc28uMgorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBsaWJ6LnNvLjEKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgL2Jpbi9iYXNoCis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIC9iaW4vc2gKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgUkRGOkJhZyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBSUE06UmVxdWlyZXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06RmlsZXMgMCAwCiszIDMgI3RleHQgMCAxIC9iaW4vcnBtCisvdXNyL2Jpbi9maW5kLXByb3ZpZGVzCisvdXNyL2Jpbi9maW5kLXJlcXVpcmVzCisvdXNyL2Jpbi9nZW5kaWZmCisvdXNyL2Jpbi9ycG0yY3BpbworL3Vzci9kb2MvcnBtLTIuNQorL3Vzci9kb2MvcnBtLTIuNS9DSEFOR0VTCisvdXNyL2RvYy9ycG0tMi41L1JQTS1QR1AtS0VZCisvdXNyL2RvYy9ycG0tMi41L2J1aWxkcm9vdAorL3Vzci9kb2MvcnBtLTIuNS9kZXBlbmRlbmNpZXMKKy91c3IvZG9jL3JwbS0yLjUvZm9ybWF0CisvdXNyL2RvYy9ycG0tMi41L2dyb3VwcworL3Vzci9kb2MvcnBtLTIuNS9tYWNyb3MKKy91c3IvZG9jL3JwbS0yLjUvcXVlcnlmb3JtYXQKKy91c3IvZG9jL3JwbS0yLjUvcmVsb2NhdGFibGUKKy91c3IvZG9jL3JwbS0yLjUvc2lnbmF0dXJlcworL3Vzci9kb2MvcnBtLTIuNS9zcGVjCisvdXNyL2RvYy9ycG0tMi41L3RyaWdnZXJzCisvdXNyL2xpYi9ycG1wb3B0CisvdXNyL2xpYi9ycG1yYworL3Vzci9tYW4vbWFuOC9ycG0uOAorL3Vzci9tYW4vbWFuOC9ycG0yY3Bpby44CisvdXNyL3NoYXJlL2xvY2FsZS9kZS9MQ19NRVNTQUdFUy9ycG0ubW8KKy91c3Ivc2hhcmUvbG9jYWxlL2ZyL0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvcHQtYnIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NoYXJlL2xvY2FsZS9zdi9MQ19NRVNTQUdFUy9ycG0ubW8KKy91c3Ivc2hhcmUvbG9jYWxlL3RyL0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zcmMvcmVkaGF0CisvdXNyL3NyYy9yZWRoYXQvQlVJTEQKKy91c3Ivc3JjL3JlZGhhdC9SUE1TCisvdXNyL3NyYy9yZWRoYXQvUlBNUy9pMzg2CisvdXNyL3NyYy9yZWRoYXQvUlBNUy9ub2FyY2gKKy91c3Ivc3JjL3JlZGhhdC9TT1VSQ0VTCisvdXNyL3NyYy9yZWRoYXQvU1BFQ1MKKy91c3Ivc3JjL3JlZGhhdC9TUlBNUworCisyIDE1IFJQTTpGaWxlcyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgUkRGOkRlc2NyaXB0aW9uIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgUkRGOlJERiAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM0Mzk5YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjEucmRyCkBAIC0wLDAgKzEsMjE0IEBACiswIDEgUkRGOlJERiAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBSREY6RGVzY3JpcHRpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06TmFtZSAwIDAKKzMgMyAjdGV4dCAwIDEgcnBtCisyIDE1IFJQTTpOYW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlZlcnNpb24gMCAwCiszIDMgI3RleHQgMCAxIDIuNQorMiAxNSBSUE06VmVyc2lvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpSZWxlYXNlIDAgMAorMyAzICN0ZXh0IDAgMSAyCisyIDE1IFJQTTpSZWxlYXNlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkFyY2ggMCAwCiszIDMgI3RleHQgMCAxIGkzODYKKzIgMTUgUlBNOkFyY2ggMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06T3MgMCAwCiszIDMgI3RleHQgMCAxIExpbnV4CisyIDE1IFJQTTpPcyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpEaXN0cmlidXRpb24gMCAwCiszIDMgI3RleHQgMCAxIE1hbmhhdHRhbiAKKzIgMTUgUlBNOkRpc3RyaWJ1dGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpWZW5kb3IgMCAwCiszIDMgI3RleHQgMCAxIFJlZCBIYXQgU29mdHdhcmUKKzIgMTUgUlBNOlZlbmRvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpQYWNrYWdlciAwIDAKKzMgMyAjdGV4dCAwIDEgUmVkIEhhdCBTb2Z0d2FyZSA8YnVnc0ByZWRoYXQuY29tPgorMiAxNSBSUE06UGFja2FnZXIgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06R3JvdXAgMCAwCiszIDMgI3RleHQgMCAxIFV0aWxpdGllcy9TeXN0ZW0KKzIgMTUgUlBNOkdyb3VwIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlN1bW1hcnkgMCAwCiszIDMgI3RleHQgMCAxIFJlZCBIYXQgUGFja2FnZSBNYW5hZ2VyCisyIDE1IFJQTTpTdW1tYXJ5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkRlc2NyaXB0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBSUE0gaXMgYSBwb3dlcmZ1bCBwYWNrYWdlIG1hbmFnZXIsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGJ1aWxkLCBpbnN0YWxsLAorcXVlcnksIHZlcmlmeSwgdXBkYXRlLCBhbmQgdW5pbnN0YWxsIGluZGl2aWR1YWwgc29mdHdhcmUgcGFja2FnZXMuIEEKK3BhY2thZ2UgY29uc2lzdHMgb2YgYW4gYXJjaGl2ZSBvZiBmaWxlcywgYW5kIHBhY2thZ2UgaW5mb3JtYXRpb24sIGluY2x1ZGluZworbmFtZSwgdmVyc2lvbiwgYW5kIGRlc2NyaXB0aW9uLgorMiAxNSBSUE06RGVzY3JpcHRpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06Q29weXJpZ2h0IDAgMAorMyAzICN0ZXh0IDAgMSBHUEwKKzIgMTUgUlBNOkNvcHlyaWdodCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpDaGFuZ2Vsb2cgMCAwCiszIDMgI3RleHQgMCAxICogU3VuIE1heSAxMCAxOTk4IFByb3NwZWN0b3IgU3lzdGVtIDxidWdzQHJlZGhhdC5jb20+CisgIC0gdHJhbnNsYXRpb25zIG1vZGlmaWVkIGZvciBkZSwgZnIsIHRyCisKKzIgMTUgUlBNOkNoYW5nZWxvZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpTb3VyY2VzIDAgMAorMyAzICN0ZXh0IDAgMSBycG0tMi41LTIuc3JjLnJwbQorMiAxNSBSUE06U291cmNlcyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpTb3VyY2VzRnRwIDAgMAorMyAzICN0ZXh0IDAgMSBmdHA6Ly9mdHAucmVkaGF0LmNvbS9wdWIvcmVkaGF0L3JlZGhhdC01LjEvU1JQTVMKKzIgMTUgUlBNOlNvdXJjZXNGdHAgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06QnVpbGREYXRlIDAgMAorMyAzICN0ZXh0IDAgMSBTdW4gTWF5IDEwIDE0OjUyOjMyIDE5OTgKKzIgMTUgUlBNOkJ1aWxkRGF0ZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpEYXRlIDAgMAorMyAzICN0ZXh0IDAgMSA4OTQ4MjYzNTIKKzIgMTUgUlBNOkRhdGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06U2l6ZSAwIDAKKzMgMyAjdGV4dCAwIDEgODUwNTk5CisyIDE1IFJQTTpTaXplIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkJ1aWxkSG9zdCAwIDAKKzMgMyAjdGV4dCAwIDEgcG9ya3kucmVkaGF0LmNvbQorMiAxNSBSUE06QnVpbGRIb3N0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlByb3ZpZGVzIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSREY6QmFnIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgcnBtCis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFJERjpCYWcgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgUlBNOlByb3ZpZGVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlJlcXVpcmVzIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSREY6QmFnIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgL2Jpbi9zaAorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBsZC1saW51eC5zby4yCis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIGxpYmMuc28uNgorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBsaWJkYi5zby4yCis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIGxpYnouc28uMQorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSAvYmluL2Jhc2gKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgL2Jpbi9zaAorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxNSBSREY6QmFnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgCisyIDE1IFJQTTpSZXF1aXJlcyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpGaWxlcyAwIDAKKzMgMyAjdGV4dCAwIDEgL2Jpbi9ycG0KKy91c3IvYmluL2ZpbmQtcHJvdmlkZXMKKy91c3IvYmluL2ZpbmQtcmVxdWlyZXMKKy91c3IvYmluL2dlbmRpZmYKKy91c3IvYmluL3JwbTJjcGlvCisvdXNyL2RvYy9ycG0tMi41CisvdXNyL2RvYy9ycG0tMi41L0NIQU5HRVMKKy91c3IvZG9jL3JwbS0yLjUvUlBNLVBHUC1LRVkKKy91c3IvZG9jL3JwbS0yLjUvYnVpbGRyb290CisvdXNyL2RvYy9ycG0tMi41L2RlcGVuZGVuY2llcworL3Vzci9kb2MvcnBtLTIuNS9mb3JtYXQKKy91c3IvZG9jL3JwbS0yLjUvZ3JvdXBzCisvdXNyL2RvYy9ycG0tMi41L21hY3JvcworL3Vzci9kb2MvcnBtLTIuNS9xdWVyeWZvcm1hdAorL3Vzci9kb2MvcnBtLTIuNS9yZWxvY2F0YWJsZQorL3Vzci9kb2MvcnBtLTIuNS9zaWduYXR1cmVzCisvdXNyL2RvYy9ycG0tMi41L3NwZWMKKy91c3IvZG9jL3JwbS0yLjUvdHJpZ2dlcnMKKy91c3IvbGliL3JwbXBvcHQKKy91c3IvbGliL3JwbXJjCisvdXNyL21hbi9tYW44L3JwbS44CisvdXNyL21hbi9tYW44L3JwbTJjcGlvLjgKKy91c3Ivc2hhcmUvbG9jYWxlL2RlL0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvZnIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NoYXJlL2xvY2FsZS9wdC1ici9MQ19NRVNTQUdFUy9ycG0ubW8KKy91c3Ivc2hhcmUvbG9jYWxlL3N2L0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvdHIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NyYy9yZWRoYXQKKy91c3Ivc3JjL3JlZGhhdC9CVUlMRAorL3Vzci9zcmMvcmVkaGF0L1JQTVMKKy91c3Ivc3JjL3JlZGhhdC9SUE1TL2kzODYKKy91c3Ivc3JjL3JlZGhhdC9SUE1TL25vYXJjaAorL3Vzci9zcmMvcmVkaGF0L1NPVVJDRVMKKy91c3Ivc3JjL3JlZGhhdC9TUEVDUworL3Vzci9zcmMvcmVkaGF0L1NSUE1TCisKKzIgMTUgUlBNOkZpbGVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBSREY6RGVzY3JpcHRpb24gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBSREY6UkRGIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYxLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjM1OTczCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMS5zYXgKQEAgLTAsMCArMSwxODYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChSREY6UkRGLCB4bWxuczpSUE09J2h0dHA6Ly93d3cucnBtLm9yZy8nLCB4bWxuczpSREY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KFJERjpEZXNjcmlwdGlvbiwgSFJFRj0nZnRwOi8vcnVmdXMudzMub3JnL2xpbnV4L3JlZGhhdC9yZWRoYXQtNS4xL2kzODYvUmVkSGF0L1JQTVMvcnBtLTIuNS0yLmkzODYucnBtJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOk5hbWUpCitTQVguY2hhcmFjdGVycyhycG0sIDMpCitTQVguZW5kRWxlbWVudChSUE06TmFtZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlZlcnNpb24pCitTQVguY2hhcmFjdGVycygyLjUsIDMpCitTQVguZW5kRWxlbWVudChSUE06VmVyc2lvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlJlbGVhc2UpCitTQVguY2hhcmFjdGVycygyLCAxKQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlbGVhc2UpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpBcmNoKQorU0FYLmNoYXJhY3RlcnMoaTM4NiwgNCkKK1NBWC5lbmRFbGVtZW50KFJQTTpBcmNoKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06T3MpCitTQVguY2hhcmFjdGVycyhMaW51eCwgNSkKK1NBWC5lbmRFbGVtZW50KFJQTTpPcykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkRpc3RyaWJ1dGlvbikKK1NBWC5jaGFyYWN0ZXJzKE1hbmhhdHRhbiAsIDEwKQorU0FYLmVuZEVsZW1lbnQoUlBNOkRpc3RyaWJ1dGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlZlbmRvcikKK1NBWC5jaGFyYWN0ZXJzKFJlZCBIYXQgU29mdHdhcmUsIDE2KQorU0FYLmVuZEVsZW1lbnQoUlBNOlZlbmRvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlBhY2thZ2VyKQorU0FYLmNoYXJhY3RlcnMoUmVkIEhhdCBTb2Z0d2FyZSAsIDE3KQorU0FYLmNoYXJhY3RlcnMoPCwgMSkKK1NBWC5jaGFyYWN0ZXJzKGJ1Z3NAcmVkaGF0LmNvbSwgMTUpCitTQVguY2hhcmFjdGVycyg+LCAxKQorU0FYLmVuZEVsZW1lbnQoUlBNOlBhY2thZ2VyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06R3JvdXApCitTQVguY2hhcmFjdGVycyhVdGlsaXRpZXMvU3lzdGVtLCAxNikKK1NBWC5lbmRFbGVtZW50KFJQTTpHcm91cCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlN1bW1hcnkpCitTQVguY2hhcmFjdGVycyhSZWQgSGF0IFBhY2thZ2UgTWFuYWdlciwgMjMpCitTQVguZW5kRWxlbWVudChSUE06U3VtbWFyeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkRlc2NyaXB0aW9uKQorU0FYLmNoYXJhY3RlcnMoUlBNIGlzIGEgcG93ZXJmdWwgcGFja2FnZSBtYW5hLCAyNDgpCitTQVguZW5kRWxlbWVudChSUE06RGVzY3JpcHRpb24pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpDb3B5cmlnaHQpCitTQVguY2hhcmFjdGVycyhHUEwsIDMpCitTQVguZW5kRWxlbWVudChSUE06Q29weXJpZ2h0KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06Q2hhbmdlbG9nKQorU0FYLmNoYXJhY3RlcnMoKiBTdW4gTWF5IDEwIDE5OTggUHJvc3BlY3RvciBTLCAzNikKK1NBWC5jaGFyYWN0ZXJzKDwsIDEpCitTQVguY2hhcmFjdGVycyhidWdzQHJlZGhhdC5jb20sIDE1KQorU0FYLmNoYXJhY3RlcnMoPiwgMSkKK1NBWC5jaGFyYWN0ZXJzKAorICAtIHRyYW5zbGF0aW9ucyBtb2RpZmllZCBmb3IsIDQyKQorU0FYLmVuZEVsZW1lbnQoUlBNOkNoYW5nZWxvZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlNvdXJjZXMpCitTQVguY2hhcmFjdGVycyhycG0tMi41LTIuc3JjLnJwbSwgMTcpCitTQVguZW5kRWxlbWVudChSUE06U291cmNlcykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlNvdXJjZXNGdHApCitTQVguY2hhcmFjdGVycyhmdHA6Ly9mdHAucmVkaGF0LmNvbS9wdWIvcmVkaGEsIDQ4KQorU0FYLmVuZEVsZW1lbnQoUlBNOlNvdXJjZXNGdHApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpCdWlsZERhdGUpCitTQVguY2hhcmFjdGVycyhTdW4gTWF5IDEwIDE0OjUyOjMyIDE5OTgsIDI0KQorU0FYLmVuZEVsZW1lbnQoUlBNOkJ1aWxkRGF0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkRhdGUpCitTQVguY2hhcmFjdGVycyg4OTQ4MjYzNTIsIDkpCitTQVguZW5kRWxlbWVudChSUE06RGF0ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlNpemUpCitTQVguY2hhcmFjdGVycyg4NTA1OTksIDYpCitTQVguZW5kRWxlbWVudChSUE06U2l6ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkJ1aWxkSG9zdCkKK1NBWC5jaGFyYWN0ZXJzKHBvcmt5LnJlZGhhdC5jb20sIDE2KQorU0FYLmVuZEVsZW1lbnQoUlBNOkJ1aWxkSG9zdCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlByb3ZpZGVzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50KFJERjpCYWcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycyhycG0sIDMpCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5lbmRFbGVtZW50KFJERjpCYWcpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguZW5kRWxlbWVudChSUE06UHJvdmlkZXMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpSZXF1aXJlcykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChSREY6QmFnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMoL2Jpbi9zaCwgNykKK1NBWC5lbmRFbGVtZW50KFJQTTpSZXNvdXJjZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50KFJQTTpSZXNvdXJjZSkKK1NBWC5jaGFyYWN0ZXJzKGxkLWxpbnV4LnNvLjIsIDEzKQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMobGliYy5zby42LCA5KQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMobGliZGIuc28uMiwgMTApCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycyhsaWJ6LnNvLjEsIDkpCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygvYmluL2Jhc2gsIDkpCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygvYmluL3NoLCA3KQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChSREY6QmFnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlcXVpcmVzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06RmlsZXMpCitTQVguY2hhcmFjdGVycygvYmluL3JwbQorL3Vzci9iaW4vZmluZC1wcm92aWRlLCA4ODUpCitTQVguZW5kRWxlbWVudChSUE06RmlsZXMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoUkRGOkRlc2NyaXB0aW9uKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChSREY6UkRGKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjEuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjEuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDgyMmUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMS5zYXgyCkBAIC0wLDAgKzEsMTg2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhSREYsIFJERiwgJ2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjJywgMiwgeG1sbnM6UlBNPSdodHRwOi8vd3d3LnJwbS5vcmcvJywgeG1sbnM6UkRGPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKERlc2NyaXB0aW9uLCBSREYsICdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycsIDAsIDEsIDAsIEhSRUY9J2Z0cDouLi4nLCA3OCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhOYW1lLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHJwbSwgMykKK1NBWC5lbmRFbGVtZW50TnMoTmFtZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoVmVyc2lvbiwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygyLjUsIDMpCitTQVguZW5kRWxlbWVudE5zKFZlcnNpb24sIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlbGVhc2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMiwgMSkKK1NBWC5lbmRFbGVtZW50TnMoUmVsZWFzZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoQXJjaCwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhpMzg2LCA0KQorU0FYLmVuZEVsZW1lbnROcyhBcmNoLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhPcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhMaW51eCwgNSkKK1NBWC5lbmRFbGVtZW50TnMoT3MsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKERpc3RyaWJ1dGlvbiwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhNYW5oYXR0YW4gLCAxMCkKK1NBWC5lbmRFbGVtZW50TnMoRGlzdHJpYnV0aW9uLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhWZW5kb3IsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoUmVkIEhhdCBTb2Z0d2FyZSwgMTYpCitTQVguZW5kRWxlbWVudE5zKFZlbmRvciwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoUGFja2FnZXIsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoUmVkIEhhdCBTb2Z0d2FyZSAsIDE3KQorU0FYLmNoYXJhY3RlcnMoPCwgMSkKK1NBWC5jaGFyYWN0ZXJzKGJ1Z3NAcmVkaGF0LmNvbSwgMTUpCitTQVguY2hhcmFjdGVycyg+LCAxKQorU0FYLmVuZEVsZW1lbnROcyhQYWNrYWdlciwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoR3JvdXAsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoVXRpbGl0aWVzL1N5c3RlbSwgMTYpCitTQVguZW5kRWxlbWVudE5zKEdyb3VwLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhTdW1tYXJ5LCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFJlZCBIYXQgUGFja2FnZSBNYW5hZ2VyLCAyMykKK1NBWC5lbmRFbGVtZW50TnMoU3VtbWFyeSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoRGVzY3JpcHRpb24sIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoUlBNIGlzIGEgcG93ZXJmdWwgcGFja2FnZSBtYW5hLCAyNDgpCitTQVguZW5kRWxlbWVudE5zKERlc2NyaXB0aW9uLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhDb3B5cmlnaHQsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoR1BMLCAzKQorU0FYLmVuZEVsZW1lbnROcyhDb3B5cmlnaHQsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKENoYW5nZWxvZywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygqIFN1biBNYXkgMTAgMTk5OCBQcm9zcGVjdG9yIFMsIDM2KQorU0FYLmNoYXJhY3RlcnMoPCwgMSkKK1NBWC5jaGFyYWN0ZXJzKGJ1Z3NAcmVkaGF0LmNvbSwgMTUpCitTQVguY2hhcmFjdGVycyg+LCAxKQorU0FYLmNoYXJhY3RlcnMoCisgIC0gdHJhbnNsYXRpb25zIG1vZGlmaWVkIGZvciwgNDIpCitTQVguZW5kRWxlbWVudE5zKENoYW5nZWxvZywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoU291cmNlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhycG0tMi41LTIuc3JjLnJwbSwgMTcpCitTQVguZW5kRWxlbWVudE5zKFNvdXJjZXMsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFNvdXJjZXNGdHAsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoZnRwOi8vZnRwLnJlZGhhdC5jb20vcHViL3JlZGhhLCA0OCkKK1NBWC5lbmRFbGVtZW50TnMoU291cmNlc0Z0cCwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoQnVpbGREYXRlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFN1biBNYXkgMTAgMTQ6NTI6MzIgMTk5OCwgMjQpCitTQVguZW5kRWxlbWVudE5zKEJ1aWxkRGF0ZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoRGF0ZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyg4OTQ4MjYzNTIsIDkpCitTQVguZW5kRWxlbWVudE5zKERhdGUsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFNpemUsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoODUwNTk5LCA2KQorU0FYLmVuZEVsZW1lbnROcyhTaXplLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhCdWlsZEhvc3QsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMocG9ya3kucmVkaGF0LmNvbSwgMTYpCitTQVguZW5kRWxlbWVudE5zKEJ1aWxkSG9zdCwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoUHJvdmlkZXMsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoQmFnLCBSREYsICdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHJwbSwgMykKK1NBWC5lbmRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKEJhZywgUkRGLCAnaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhQcm92aWRlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoUmVxdWlyZXMsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguc3RhcnRFbGVtZW50TnMoQmFnLCBSREYsICdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKC9iaW4vc2gsIDcpCitTQVguZW5kRWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMobGQtbGludXguc28uMiwgMTMpCitTQVguZW5kRWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMobGliYy5zby42LCA5KQorU0FYLmVuZEVsZW1lbnROcyhSZXNvdXJjZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGxpYmRiLnNvLjIsIDEwKQorU0FYLmVuZEVsZW1lbnROcyhSZXNvdXJjZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGxpYnouc28uMSwgOSkKK1NBWC5lbmRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhSZXNvdXJjZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygvYmluL2Jhc2gsIDkpCitTQVguZW5kRWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoL2Jpbi9zaCwgNykKK1NBWC5lbmRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKEJhZywgUkRGLCAnaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhSZXF1aXJlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoRmlsZXMsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoL2Jpbi9ycG0KKy91c3IvYmluL2ZpbmQtcHJvdmlkZSwgODg1KQorU0FYLmVuZEVsZW1lbnROcyhGaWxlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhEZXNjcmlwdGlvbiwgUkRGLCAnaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKFJERiwgUkRGLCAnaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMnKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NDk0NmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYyCkBAIC0wLDAgKzEsMTg5OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8UkRGOlJERiB4bWxuczpSREY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjIiB4bWxuczpSUE09Imh0dHA6Ly93d3cucnBtLm9yZy8iPgorICA8UkRGOkRlc2NyaXB0aW9uIGFib3V0PSJmdHA6Ly9ydWZ1cy53My5vcmcvbGludXgvZGxkLzUuNC9pMzg2L1JQTVMvaTM4Ni9uY3Vyc2VzNC00LjItMy5pMzg2LnJwbSI+CisgICAgPFJQTTpOYW1lPm5jdXJzZXM0PC9SUE06TmFtZT4KKyAgICA8UlBNOlZlcnNpb24+NC4yPC9SUE06VmVyc2lvbj4KKyAgICA8UlBNOlJlbGVhc2U+MzwvUlBNOlJlbGVhc2U+CisgICAgPFJQTTpBcmNoPmkzODY8L1JQTTpBcmNoPgorICAgIDxSUE06T3M+TGludXg8L1JQTTpPcz4KKyAgICA8UlBNOkRpc3RyaWJ1dGlvbj5ETEQ8L1JQTTpEaXN0cmlidXRpb24+CisgICAgPFJQTTpWZW5kb3I+ZGVsaXggQ29tcHV0ZXIgR21iSDwvUlBNOlZlbmRvcj4KKyAgICA8UlBNOlBhY2thZ2VyPlRpbGwgQnViZWNrICZsdDtidWJlY2tAZGVsaXguZGUmZ3Q7LCBOZ28gVGhhbiAmbHQ7dGhhbkBkZWxpeC5kZSZndDs8L1JQTTpQYWNrYWdlcj4KKyAgICA8UlBNOkdyb3VwPkxpYnJhcmllczwvUlBNOkdyb3VwPgorICAgIDxSUE06U3VtbWFyeT5CaWJsaW90aGVrIHp1ciBBbnN0ZXVlcnVuZyB2b24gVGVybWluYWxzPC9SUE06U3VtbWFyeT4KKyAgICA8UlBNOkRlc2NyaXB0aW9uPkRpZXNlIExpYnJhcnkgc3RlbGx0IGRlbSBQcm9ncmFtbWllcmVyIHZvbSBUZXJtaW5hbCB1bmFiaCYjeEU0O25naWdlCitSb3V0aW5lbiB6dXIgQW5zdGV1ZXJ1bmcgSWhyZXMgQmlsZHNjaGlybXMgenVyIFZlcmYmI3hGQztndW5nLCBkaWUKK3NwZXppZWxsIG9wdGltaWVydCBzaW5kLgorRGllc2UgVmVyc2lvbiBpc3QgZGllICduZXcgY3Vyc2VzJyAobmN1cnNlcykgVmFyaWFudGUgdW5kIGlzdCBkZXIKK2FuZXJrYW5udGUgRXJzYXR6IGYmI3hGQztyIGRpZSBrbGFzc2lzY2hlIEN1cnNlcy1MaWJyYXJ5LCBkaWUgbmljaHQgbWVocgord2VpdGVyZW50d2lja2VsdCB3aXJkLjwvUlBNOkRlc2NyaXB0aW9uPgorICAgIDxSUE06Q29weXJpZ2h0PkdQTDwvUlBNOkNvcHlyaWdodD4KKyAgICA8UlBNOlNvdXJjZXM+bmN1cnNlczQtNC4yLTMuc3JjLnJwbTwvUlBNOlNvdXJjZXM+CisgICAgPFJQTTpCdWlsZERhdGU+VHVlIE1heSAxMiAxOTozMDoyNiAxOTk4PC9SUE06QnVpbGREYXRlPgorICAgIDxSUE06RGF0ZT44OTUwMTU4MjY8L1JQTTpEYXRlPgorICAgIDxSUE06U2l6ZT4xMzczNTEzPC9SUE06U2l6ZT4KKyAgICA8UlBNOkJ1aWxkSG9zdD5lcmRiZWVyZS5kZWxpeC5kZTwvUlBNOkJ1aWxkSG9zdD4KKyAgICA8UlBNOlByb3ZpZGVzPgorICAgICAgPFJERjpCYWc+CisgICAgICAgIDxSUE06UmVzb3VyY2UgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL25jdXJzZXM0LnJkZiI+bmN1cnNlczQ8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbGlicGFuZWwuc28uNC5yZGYiPmxpYnBhbmVsLnNvLjQ8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbGlibmN1cnNlcy5zby40LnJkZiI+bGlibmN1cnNlcy5zby40PC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2UgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2xpYm1lbnUuc28uNC5yZGYiPmxpYm1lbnUuc28uNDwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9saWJmb3JtLnNvLjQucmRmIj5saWJmb3JtLnNvLjQ8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbmN1cnNlcy5yZGYiPm5jdXJzZXM8L1JQTTpSZXNvdXJjZT4KKyAgICAgIDwvUkRGOkJhZz4KKyAgICA8L1JQTTpQcm92aWRlcz4KKyAgICA8UlBNOkZpbGVzPi9saWIvbGlibmN1cnNlcy5zby40CisvbGliL2xpYm5jdXJzZXMuc28uNC4yCisvdXNyL2RvYy9uY3Vyc2VzNC00LjItMworL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMvQU5OT1VOQ0UuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL05FV1MuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL1JFQURNRS5negorL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMvVE8tRE8uZ3oKKy91c3IvbGliL2xpYmZvcm0uc28uNAorL3Vzci9saWIvbGliZm9ybS5zby40LjIKKy91c3IvbGliL2xpYm1lbnUuc28uNAorL3Vzci9saWIvbGlibWVudS5zby40LjIKKy91c3IvbGliL2xpYnBhbmVsLnNvLjQKKy91c3IvbGliL2xpYnBhbmVsLnNvLjQuMgorL3Vzci9zaGFyZS9uY3Vyc2VzNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0L3N0ZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvc3RkY3J0CisvdXNyL3NoYXJlL25jdXJzZXM0L3RhYnNldC92dDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvdnQzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8xLzExNzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMS8xNzMwLWxtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMi8yNjIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMS13bAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yLzI2MjFBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8zLzM4NmF0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzMvM2IxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80MDI1ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80MDI3ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzUwNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUvNTYzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzU2MzBETUQtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby82LzYzMC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby82LzYzME1URy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTQxcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1UR3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNy83MzBNVEdyLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOC84NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOS85NTUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOS85NTUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLU0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTItTS1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtTQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxNC1NLVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDgtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDktOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LTgtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vWAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9YL1gtaHB0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hMjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTk4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhNDA4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYStkZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTE4LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcnYtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXMtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXMtcnYtY3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzYtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDgtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAtZGVjLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAtcy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLWRiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2LWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcnYtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcy1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcy1ydi1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXVuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhczE5MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVoLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FjdDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hY3Q1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkcmluZm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZGRzOTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkc3ZpZXdwb2ludAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkZHN2cDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTExNzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTFhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTMxLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zYSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTQyLW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FlcHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWl4dGVybS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWl4dGVybS1tLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWo1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hajgzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqODMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvLWgxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG8taGVhdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvaDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b2hlYXRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zLTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvcy00CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zN3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1iYXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbWJhc3NhZG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1pZ2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbWlnYS1oCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wMjE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wMjE5dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4LTIxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4LTIxOXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleC0yMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDE3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MTc1LWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MjE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMTl3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIzMncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5uYXJib3I0MDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2ktY29sb3ItMi1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLWNvbG9yLTMtZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW1pbmkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS5zeXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLnN5cy1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLnN5c2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpNDNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTc3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1LW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4MjUtcmF3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDMwLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NDMtbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg1MC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDYwLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2lsLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2lzLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2l3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXAtdm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsb18xNVAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcG9sbG9fMTlMCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBvbGxvX2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS1hZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXNvcm9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS11dGVybS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZpZGV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdmlkZXgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdmlkZXgzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlMmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTJlLXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTgwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZUlJYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUllCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGVJSWdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXQzODYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdGFyaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDIzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQyMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTB2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTB2MS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUrbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjQtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjUtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTA1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTA1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTEwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUxMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MzEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTMyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwdjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwdjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDE4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMCtubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMC1ydi1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ydi1uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMF8yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMF8yLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyNS1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU2MjAtMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUtcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC0xMDNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjEwLTEwM2stdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LTEwM2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTUtMTAzay13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtMTAzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYyMC0xMDNrLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzODYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAtNDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDczMHItMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzByLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcjArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dCtzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXJ2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctcnYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hd3NjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iLTEyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JhbnRhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2Jhc2ljNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2Jhc2lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmN0NTEwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JjdDUxMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWFjb24KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlaGl2ZTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JlZWhpdmVJSUltCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmV0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1bnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzEuMjVydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcyLjBudgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTBudgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMy4xMHJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmgzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JoNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JpdGdyYXBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmxpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JvYmNhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JzZG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYnNkb3MtYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTAwLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LXJ2LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC13LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MzMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2EyMjg1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NhZDY4LTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jYWQ2OC0zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2JibGl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2J1bml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2NpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2NpMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzQ1NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzcyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzcyMS1lc2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3MjFsbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzc1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzc1NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NnNzkwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NnYzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZ2MzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2hyb21hdGljcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpODUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdC04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLTEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtbjEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQ1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLTZscGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC04bHBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtY29tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLWVsaXRlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtcGljYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLXByb3AKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC1wcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvY28zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29oZXJlbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb2xvcl94dGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbG9yc2NhbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbW1vZG9yZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0LWF2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDgtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOC13LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LXc4cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDhydjRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWlzby1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWlzbzg4NTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjUta29pOC1yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjUtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNWwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1bDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjVyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczMwLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNDMtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1pc28tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1pc284ODU5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MGwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwbDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTByLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAtaXNvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWlzby1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MGwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwbDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjByLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb3BzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29wcy0xMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvcHMxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NzMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jczEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jdDgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3Q4NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3RybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3gxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeWIxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeWI4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZDEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2Q4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2Q4MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhZ3JhcGhpeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RhdGFtZWRpYTI1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhcG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhc3BlZWQ0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkNTAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkcjMxODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQyMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQzMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQ0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWNwcm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWN3cml0ZXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWx0YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGcyMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzIxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNDUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGc0NjAtYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNjA1MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNjEzNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsby1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjIwLW04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTY0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2NDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjQwLW04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE3MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTc0MC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzQ1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzYzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWxvZ3VlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhbG9ndWU4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpZ2lsb2cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9ka3U3MDAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGt1NzAwMy1kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0xNTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0xNTIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0yNTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0zMDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0zMDQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtODB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1jaGF0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZHQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZHQ4MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kcDMzNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kcDgyNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kczQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHM0MC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQtMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQtMTAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQxMDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQ4MC1zYXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDgwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0YzMwMHMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdGMzODIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kd2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kd2stdnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VjbWErY29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lY21hK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2Vtb3RzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW11CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW52MjMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW52aXNpb24yMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lcDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VyZ280MDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXNwcml0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXNwcml0LWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leDE1NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDYyLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjQtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDY0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGVjODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAtMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTEwLTE0dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxNzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjE3MjBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDB2aQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDB2aS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmFsY28KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mYWxjby1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmVuaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mZW5peHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9maXh0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZm9ydHVuZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZveAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZnJlZWRvbTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20xMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nYXRvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dhdG9yLTUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3ItNTJ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3ItdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dpZ2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nbGFzc3R0eQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvLTIyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ28xNDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ28yMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ncmFwaG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3JhcGhvcy0zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMC0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3QxMDBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3Q0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0NDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydStydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTMzLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0zMy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS00NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNDQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2LWxwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2LXdtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1scAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtbmN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oLTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gtMTAwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1icworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1nCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LXNtdWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktdQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS11cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTlnCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWtlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOXVzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDI5YS1rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEta2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMjlhLW5rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEtbmtjLXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGE4Njc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGE4Njg2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGF6ZWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZHMyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGVhdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aC0xOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aGtpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoa2l0LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZnQtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hpcmV6MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGlyZXoxMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2htb2QxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCthcnJvd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwK2xhYmVscworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwK3BmaythcnJvd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmsrY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmstY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwcmludGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyMzgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyMzgyYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5NworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5N2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1iYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1mbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1rNDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFiLWt4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1reC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMXAtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0LTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRhLTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGItMTBwLXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi00cC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtMTJ4NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNi14NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjZhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyN2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjdhLXJldgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyN2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MngKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQwYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0MWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDRhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ1YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0N2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDhhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAzMDBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDAtd3kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMDkyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDA5MkEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMDkyYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTgzNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg1NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NTUwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBhbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBleAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwZXgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBnZW5lcmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBzdWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9odHgxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUyMC1ub2VzYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTU1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTU1Mi1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MjAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2kzMTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTMxNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pMzE2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2k0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYmNzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libS1hcGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tc3lzdGVtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzE2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxNjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTY0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzI3eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUwNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MDgxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTA4MS1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTE1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUxNTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MTU0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm02MTUzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNjE1NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTQtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtODUxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTg1MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTE0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hZWQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGExNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libWFwYTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGE4YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libWFwYThjLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1lZ2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1lZ2EtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1tcGVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtbXBlbC1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1wYzNyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMzci1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGN4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtdmdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtdmdhLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWZtcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ltcy1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwLWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbXM5NTAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbmZvdG9uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0ZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRlcnR1YmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRlcnR1YmUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXh0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGV4dGlpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXBzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXBzaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lxMTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXExNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWFuc2ktYXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWNvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpczQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2oKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vai9qYWl4dGVybS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2ovamVycQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2svazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2F5cHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2F5cHJvMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tlcm1pdC1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2FjcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2xvbmUra29pOGFjcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK3Nnci1kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Q3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Q3aXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2t0bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGExMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sYXllcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LWMtbmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1rb2k4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgta29pOHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtbmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGlzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc2F0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGlzYXRlcm0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc3diCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbG4wMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xuMDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xwcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2x1bmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sdW5hNjhrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tMi1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hY2ludG9zaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hY3Rlcm1pbmFsLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYXNzY29tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hc3Njb21wMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hc3Njb21wMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21kbDExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21lZ2F0ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZW1ocAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21ncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21nci1saW51eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21nci1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb2JlZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pY3JvdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pY3JvdGVybTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS0zYXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lLWZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS1oYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUyYS12CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTMxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lM2F4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1laWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW5pdGVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbC0yLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXgtb2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXgtb2xkLWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW0zMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tbTM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9kZ3JhcGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2RncmFwaDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2RncmFwaDQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9uby1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjcxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21zazIyN2FtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2tlcm1pdDIyNzE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjdhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL210LTcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXQ0NTIwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXQ3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2kuc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2kuc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2lzeXNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMGl2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25lYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25lYzU1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdocAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld2hwa2V5Ym9hcmQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0yOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMjktZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0yOS1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMzMtZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0zMy1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtNDItZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy00Mi1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1vbGQtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy11bmsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjgtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMS1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czMxLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3M0MC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3c2NibQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0tYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0tbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25leHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXh0c2hlbGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ub3J0aHN0YXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253ZTUwMS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwLTUxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cC01MTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AtNTE3LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AyNTEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDI1MS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTExCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTItbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMy1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEzLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxNC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE3LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxOC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vMzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vNDExMi1uZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL284NWgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vYWJtODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2JsaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vYzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29jb25jZXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2plcnEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRpYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRwYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRzdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbXJvbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29wdXMzbjErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3JpZ2libXBjMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29yaWdwYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vczlMSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vc2Jvcm5lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vc2Jvcm5lMS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3NleGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vdGVrNDExMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL290ZWs0MTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDEyLW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTQtbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOGdsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOS04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjLWNvaGVyZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMtbWluaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYy12ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjMy1ib2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMzcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjM3ItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjNjMwMHBsdXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzczMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMjUtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS0zMy1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTQzLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kyNW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kzMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTMzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNjb25zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNjb25zb2xlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNpeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNrZXJtaXQxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0MTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNwbG90CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyOHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MzV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDQwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0M3cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NTB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dFhYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN6MTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTExMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTEyNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTU1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjMxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNzAwMGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTcwMDBtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGlsb3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmludGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xNC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc200CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc201CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc203CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbThnbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc205LTgtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJvMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHMzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tODB4MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tOTB4MjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tOTZ4NDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tYmFzaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tZmFzdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BzeF9hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDEwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQyNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDI1MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDUwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0NTA1LTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQ1MDUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3FkY29ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3Fkc3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xbngKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xbng0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXVtZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F1bWU1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAxKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTkrLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5LTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTlwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQyMDMtdy1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmJjb21tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmJjb21tLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JiY29tbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVidXMzMTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50NDArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydDYyMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydDYyMjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3J0cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yeHZ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Ivcnh2dC1iYXNpYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3MvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3M0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2JpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2JvYmNhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjNDEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2M0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY2Fuc2V0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NvYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyZWVuMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3Jld3BvaW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zaW10ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc29yb2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zb3JvYzEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Nvcm9jMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3BpbndyaXRlcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N0NTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0xNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLWNtZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLWUtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1pbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1uaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1zLWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tc3M1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW5lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJiZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdXBlcmJlZS14c2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdXBlcmJlZWljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJicmFpbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N2ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zd3RwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3luZXJ0ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zeW5lcnRlazM4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N5c3RlbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMDYxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDEwNjFmCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDM3MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90MzgwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Q2NTN4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLTE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YWIxMzItdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhbmRlbTY1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YW5kZW02NTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDE0LXNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTUtc20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDIzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNS0xNy13cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUtY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LWV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNy1leAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA1LTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA2YnJsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDdicmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwOWJybAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyLTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyLW5kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTMtMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEzLW5kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDIwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQyMDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MjA3LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0NDA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVsZXJheQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlbGV0ZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZXJtaW5ldAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Rlcm1pbmV0MTIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Rlcm1pbmV0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGd0ZWxuZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTcwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpNzMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk3MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTc0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpODAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0xMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0yMjAtNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTIyMC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTgtMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQtOHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI2LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI4LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpX2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90bjEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90bjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHJzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczgwSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cnNJSQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzLTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cy0xcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMxMDAtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwLXNwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMxcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0NTA1LTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5MzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHkzNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTM3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQ0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTB2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTB2MS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjArbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjAtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDI1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NjIwLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5ZG1kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpODAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTA2NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMCsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTItMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTJiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMmNjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjUtaGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MkIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MkQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MC0ycAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91bHRpbWEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdWx0aW1hSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91bml0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5pdGVybTQ5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5peHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5rbm93bgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3V0czMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92MjAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3YzMjBuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdjMyMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92NTQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZhcHBsZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMTAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmMyMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzMwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMzAzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDAzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MDQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MTRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZlcnNhdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkyMDAtZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTMwMC1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTUwYWRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk2MDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQzYSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQ2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpZXdwb2ludDkwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmlzYTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmlzdWFsNjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdml0dHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92azEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwM2ErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnA2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwOTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92cmVtb3RlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnMxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92czEwMC14MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92c2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dC02MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ibQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLWJtLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ib3QtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtbmF2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtbmF2LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtcy1ib3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1zLXRvcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXRvcC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdy1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdy1uYXYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMG5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDItbnNncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTMxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjAwLWpzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLWpzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMDAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1rMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzIwLWszMTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtdy1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMG5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NDAwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQyMGYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQyMHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjBwY2RvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUwaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MTBwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwcGNkb3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDYxLjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3dyZW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93cmVudworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3dzaXJpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5LTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTAwcQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC00Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxODUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMC1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtMjV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MnctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00Mnd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNXctMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtMTAxaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLTEwNWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1FUEMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1uaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAtbWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC0zNnBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZ3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTQ4cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtZXBjLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0zMTZYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTQzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NS1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzVhcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5ODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTg1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC10ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UtMzI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZS03NWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZS12cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtNDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQydworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQzdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNnBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTM2d3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDhwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC00OHdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtZXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1lcGMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtcC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXBjLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1wYy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLTMxNlgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNzUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDEwdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDE3MDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94MTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDY4aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3g2OGstaXRlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDgyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGVyb3gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZXJveC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94MTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94ODIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGw4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0YWxrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybStzbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtK3NsLXR3bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLTE2Y29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS04Yml0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLW5pYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXBjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tcjYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14Zjg2LXYzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXhmODYtdjMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0teGY4Ni12NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14aQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtcy1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94d3NoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3oKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96LTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3otMTAwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxMTBidworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjlhLWtjLWJjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1rYy11YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEtbmtjLWJjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1ua2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjliCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozNDAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MzlhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejgwMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW4zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbjUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuODAwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDI5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuaXRoMzktYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDM5LWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96dC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenR4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenR4LTEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3p0eDExCis8L1JQTTpGaWxlcz4KKyAgPC9SREY6RGVzY3JpcHRpb24+Cis8L1JERjpSREY+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYyLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjIucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZTVlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYyLnJkZQpAQCAtMCwwICsxLDIwMDggQEAKKzAgMSBSREY6UkRGIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIFJERjpEZXNjcmlwdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpOYW1lIDAgMAorMyAzICN0ZXh0IDAgMSBuY3Vyc2VzNAorMiAxNSBSUE06TmFtZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpWZXJzaW9uIDAgMAorMyAzICN0ZXh0IDAgMSA0LjIKKzIgMTUgUlBNOlZlcnNpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06UmVsZWFzZSAwIDAKKzMgMyAjdGV4dCAwIDEgMworMiAxNSBSUE06UmVsZWFzZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpBcmNoIDAgMAorMyAzICN0ZXh0IDAgMSBpMzg2CisyIDE1IFJQTTpBcmNoIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOk9zIDAgMAorMyAzICN0ZXh0IDAgMSBMaW51eAorMiAxNSBSUE06T3MgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06RGlzdHJpYnV0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBETEQKKzIgMTUgUlBNOkRpc3RyaWJ1dGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpWZW5kb3IgMCAwCiszIDMgI3RleHQgMCAxIGRlbGl4IENvbXB1dGVyIEdtYkgKKzIgMTUgUlBNOlZlbmRvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpQYWNrYWdlciAwIDAKKzMgMyAjdGV4dCAwIDEgVGlsbCBCdWJlY2sgPGJ1YmVja0BkZWxpeC5kZT4sIE5nbyBUaGFuIDx0aGFuQGRlbGl4LmRlPgorMiAxNSBSUE06UGFja2FnZXIgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06R3JvdXAgMCAwCiszIDMgI3RleHQgMCAxIExpYnJhcmllcworMiAxNSBSUE06R3JvdXAgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06U3VtbWFyeSAwIDAKKzMgMyAjdGV4dCAwIDEgQmlibGlvdGhlayB6dXIgQW5zdGV1ZXJ1bmcgdm9uIFRlcm1pbmFscworMiAxNSBSUE06U3VtbWFyeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpEZXNjcmlwdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgRGllc2UgTGlicmFyeSBzdGVsbHQgZGVtIFByb2dyYW1taWVyZXIgdm9tIFRlcm1pbmFsIHVuYWJow6RuZ2lnZQorUm91dGluZW4genVyIEFuc3RldWVydW5nIElocmVzIEJpbGRzY2hpcm1zIHp1ciBWZXJmw7xndW5nLCBkaWUKK3NwZXppZWxsIG9wdGltaWVydCBzaW5kLgorRGllc2UgVmVyc2lvbiBpc3QgZGllICduZXcgY3Vyc2VzJyAobmN1cnNlcykgVmFyaWFudGUgdW5kIGlzdCBkZXIKK2FuZXJrYW5udGUgRXJzYXR6IGbDvHIgZGllIGtsYXNzaXNjaGUgQ3Vyc2VzLUxpYnJhcnksIGRpZSBuaWNodCBtZWhyCit3ZWl0ZXJlbnR3aWNrZWx0IHdpcmQuCisyIDE1IFJQTTpEZXNjcmlwdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpDb3B5cmlnaHQgMCAwCiszIDMgI3RleHQgMCAxIEdQTAorMiAxNSBSUE06Q29weXJpZ2h0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlNvdXJjZXMgMCAwCiszIDMgI3RleHQgMCAxIG5jdXJzZXM0LTQuMi0zLnNyYy5ycG0KKzIgMTUgUlBNOlNvdXJjZXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06QnVpbGREYXRlIDAgMAorMyAzICN0ZXh0IDAgMSBUdWUgTWF5IDEyIDE5OjMwOjI2IDE5OTgKKzIgMTUgUlBNOkJ1aWxkRGF0ZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpEYXRlIDAgMAorMyAzICN0ZXh0IDAgMSA4OTUwMTU4MjYKKzIgMTUgUlBNOkRhdGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06U2l6ZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTM3MzUxMworMiAxNSBSUE06U2l6ZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpCdWlsZEhvc3QgMCAwCiszIDMgI3RleHQgMCAxIGVyZGJlZXJlLmRlbGl4LmRlCisyIDE1IFJQTTpCdWlsZEhvc3QgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06UHJvdmlkZXMgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgIAorMyAxIFJERjpCYWcgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBuY3Vyc2VzNAorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBsaWJwYW5lbC5zby40Cis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIGxpYm5jdXJzZXMuc28uNAorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBsaWJtZW51LnNvLjQKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgbGliZm9ybS5zby40Cis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIG5jdXJzZXMKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMTUgUkRGOkJhZyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgIAorMiAxNSBSUE06UHJvdmlkZXMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06RmlsZXMgMCAwCiszIDMgI3RleHQgMCAxIC9saWIvbGlibmN1cnNlcy5zby40CisvbGliL2xpYm5jdXJzZXMuc28uNC4yCisvdXNyL2RvYy9uY3Vyc2VzNC00LjItMworL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMvQU5OT1VOQ0UuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL05FV1MuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL1JFQURNRS5negorL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMvVE8tRE8uZ3oKKy91c3IvbGliL2xpYmZvcm0uc28uNAorL3Vzci9saWIvbGliZm9ybS5zby40LjIKKy91c3IvbGliL2xpYm1lbnUuc28uNAorL3Vzci9saWIvbGlibWVudS5zby40LjIKKy91c3IvbGliL2xpYnBhbmVsLnNvLjQKKy91c3IvbGliL2xpYnBhbmVsLnNvLjQuMgorL3Vzci9zaGFyZS9uY3Vyc2VzNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0L3N0ZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvc3RkY3J0CisvdXNyL3NoYXJlL25jdXJzZXM0L3RhYnNldC92dDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvdnQzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8xLzExNzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMS8xNzMwLWxtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMi8yNjIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMS13bAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yLzI2MjFBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8zLzM4NmF0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzMvM2IxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80MDI1ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80MDI3ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzUwNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUvNTYzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzU2MzBETUQtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby82LzYzMC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby82LzYzME1URy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTQxcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1UR3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNy83MzBNVEdyLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOC84NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOS85NTUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOS85NTUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLU0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTItTS1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtTQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxNC1NLVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDgtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDktOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LTgtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vWAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9YL1gtaHB0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hMjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTk4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhNDA4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYStkZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTE4LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcnYtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXMtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXMtcnYtY3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzYtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDgtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAtZGVjLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAtcy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLWRiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2LWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcnYtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcy1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcy1ydi1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXVuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhczE5MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVoLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FjdDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hY3Q1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkcmluZm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZGRzOTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkc3ZpZXdwb2ludAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkZHN2cDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTExNzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTFhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTMxLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zYSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTQyLW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FlcHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWl4dGVybS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWl4dGVybS1tLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWo1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hajgzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqODMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvLWgxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG8taGVhdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvaDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b2hlYXRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zLTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvcy00CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zN3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1iYXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbWJhc3NhZG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1pZ2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbWlnYS1oCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wMjE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wMjE5dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4LTIxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4LTIxOXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleC0yMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDE3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MTc1LWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MjE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMTl3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIzMncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5uYXJib3I0MDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2ktY29sb3ItMi1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLWNvbG9yLTMtZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW1pbmkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS5zeXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLnN5cy1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLnN5c2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpNDNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTc3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1LW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4MjUtcmF3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDMwLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NDMtbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg1MC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDYwLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2lsLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2lzLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2l3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXAtdm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsb18xNVAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcG9sbG9fMTlMCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBvbGxvX2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS1hZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXNvcm9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS11dGVybS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZpZGV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdmlkZXgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdmlkZXgzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlMmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTJlLXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTgwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZUlJYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUllCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGVJSWdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXQzODYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdGFyaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDIzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQyMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTB2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTB2MS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUrbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjQtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjUtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTA1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTA1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTEwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUxMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MzEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTMyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwdjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwdjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDE4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMCtubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMC1ydi1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ydi1uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMF8yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMF8yLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyNS1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU2MjAtMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUtcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC0xMDNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjEwLTEwM2stdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LTEwM2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTUtMTAzay13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtMTAzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYyMC0xMDNrLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzODYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAtNDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDczMHItMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzByLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcjArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dCtzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXJ2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctcnYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hd3NjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iLTEyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JhbnRhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2Jhc2ljNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2Jhc2lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmN0NTEwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JjdDUxMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWFjb24KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlaGl2ZTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JlZWhpdmVJSUltCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmV0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1bnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzEuMjVydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcyLjBudgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTBudgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMy4xMHJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmgzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JoNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JpdGdyYXBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmxpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JvYmNhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JzZG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYnNkb3MtYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTAwLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LXJ2LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC13LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MzMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2EyMjg1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NhZDY4LTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jYWQ2OC0zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2JibGl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2J1bml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2NpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2NpMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzQ1NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzcyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzcyMS1lc2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3MjFsbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzc1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzc1NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NnNzkwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NnYzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZ2MzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2hyb21hdGljcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpODUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdC04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLTEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtbjEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQ1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLTZscGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC04bHBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtY29tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLWVsaXRlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtcGljYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLXByb3AKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC1wcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvY28zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29oZXJlbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb2xvcl94dGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbG9yc2NhbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbW1vZG9yZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0LWF2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDgtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOC13LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LXc4cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDhydjRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWlzby1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWlzbzg4NTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjUta29pOC1yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjUtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNWwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1bDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjVyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczMwLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNDMtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1pc28tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1pc284ODU5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MGwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwbDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTByLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAtaXNvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWlzby1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MGwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwbDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjByLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb3BzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29wcy0xMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvcHMxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NzMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jczEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jdDgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3Q4NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3RybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3gxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeWIxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeWI4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZDEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2Q4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2Q4MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhZ3JhcGhpeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RhdGFtZWRpYTI1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhcG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhc3BlZWQ0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkNTAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkcjMxODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQyMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQzMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQ0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWNwcm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWN3cml0ZXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWx0YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGcyMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzIxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNDUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGc0NjAtYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNjA1MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNjEzNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsby1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjIwLW04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTY0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2NDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjQwLW04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE3MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTc0MC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzQ1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzYzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWxvZ3VlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhbG9ndWU4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpZ2lsb2cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9ka3U3MDAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGt1NzAwMy1kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0xNTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0xNTIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0yNTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0zMDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0zMDQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtODB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1jaGF0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZHQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZHQ4MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kcDMzNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kcDgyNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kczQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHM0MC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQtMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQtMTAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQxMDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQ4MC1zYXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDgwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0YzMwMHMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdGMzODIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kd2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kd2stdnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VjbWErY29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lY21hK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2Vtb3RzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW11CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW52MjMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW52aXNpb24yMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lcDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VyZ280MDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXNwcml0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXNwcml0LWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leDE1NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDYyLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjQtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDY0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGVjODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAtMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTEwLTE0dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxNzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjE3MjBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDB2aQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDB2aS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmFsY28KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mYWxjby1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmVuaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mZW5peHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9maXh0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZm9ydHVuZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZveAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZnJlZWRvbTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20xMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nYXRvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dhdG9yLTUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3ItNTJ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3ItdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dpZ2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nbGFzc3R0eQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvLTIyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ28xNDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ28yMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ncmFwaG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3JhcGhvcy0zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMC0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3QxMDBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3Q0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0NDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydStydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTMzLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0zMy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS00NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNDQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2LWxwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2LXdtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1scAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtbmN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oLTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gtMTAwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1icworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1nCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LXNtdWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktdQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS11cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTlnCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWtlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOXVzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDI5YS1rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEta2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMjlhLW5rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEtbmtjLXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGE4Njc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGE4Njg2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGF6ZWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZHMyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGVhdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aC0xOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aGtpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoa2l0LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZnQtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hpcmV6MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGlyZXoxMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2htb2QxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCthcnJvd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwK2xhYmVscworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwK3BmaythcnJvd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmsrY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmstY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwcmludGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyMzgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyMzgyYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5NworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5N2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1iYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1mbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1rNDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFiLWt4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1reC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMXAtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0LTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRhLTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGItMTBwLXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi00cC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtMTJ4NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNi14NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjZhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyN2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjdhLXJldgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyN2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MngKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQwYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0MWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDRhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ1YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0N2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDhhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAzMDBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDAtd3kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMDkyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDA5MkEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMDkyYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTgzNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg1NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NTUwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBhbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBleAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwZXgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBnZW5lcmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBzdWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9odHgxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUyMC1ub2VzYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTU1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTU1Mi1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MjAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2kzMTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTMxNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pMzE2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2k0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYmNzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libS1hcGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tc3lzdGVtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzE2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxNjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTY0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzI3eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUwNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MDgxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTA4MS1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTE1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUxNTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MTU0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm02MTUzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNjE1NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTQtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtODUxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTg1MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTE0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hZWQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGExNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libWFwYTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGE4YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libWFwYThjLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1lZ2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1lZ2EtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1tcGVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtbXBlbC1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1wYzNyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMzci1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGN4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtdmdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtdmdhLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWZtcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ltcy1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwLWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbXM5NTAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbmZvdG9uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0ZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRlcnR1YmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRlcnR1YmUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXh0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGV4dGlpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXBzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXBzaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lxMTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXExNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWFuc2ktYXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWNvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpczQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2oKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vai9qYWl4dGVybS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2ovamVycQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2svazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2F5cHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2F5cHJvMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tlcm1pdC1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2FjcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2xvbmUra29pOGFjcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK3Nnci1kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Q3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Q3aXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2t0bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGExMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sYXllcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LWMtbmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1rb2k4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgta29pOHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtbmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGlzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc2F0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGlzYXRlcm0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc3diCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbG4wMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xuMDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xwcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2x1bmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sdW5hNjhrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tMi1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hY2ludG9zaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hY3Rlcm1pbmFsLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYXNzY29tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hc3Njb21wMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hc3Njb21wMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21kbDExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21lZ2F0ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZW1ocAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21ncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21nci1saW51eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21nci1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb2JlZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pY3JvdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pY3JvdGVybTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS0zYXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lLWZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS1oYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUyYS12CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTMxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lM2F4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1laWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW5pdGVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbC0yLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXgtb2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXgtb2xkLWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW0zMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tbTM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9kZ3JhcGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2RncmFwaDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2RncmFwaDQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9uby1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjcxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21zazIyN2FtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2tlcm1pdDIyNzE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjdhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL210LTcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXQ0NTIwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXQ3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2kuc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2kuc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2lzeXNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMGl2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25lYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25lYzU1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdocAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld2hwa2V5Ym9hcmQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0yOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMjktZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0yOS1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMzMtZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0zMy1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtNDItZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy00Mi1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1vbGQtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy11bmsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjgtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMS1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czMxLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3M0MC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3c2NibQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0tYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0tbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25leHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXh0c2hlbGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ub3J0aHN0YXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253ZTUwMS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwLTUxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cC01MTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AtNTE3LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AyNTEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDI1MS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTExCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTItbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMy1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEzLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxNC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE3LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxOC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vMzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vNDExMi1uZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL284NWgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vYWJtODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2JsaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vYzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29jb25jZXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2plcnEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRpYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRwYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRzdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbXJvbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29wdXMzbjErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3JpZ2libXBjMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29yaWdwYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vczlMSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vc2Jvcm5lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vc2Jvcm5lMS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3NleGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vdGVrNDExMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL290ZWs0MTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDEyLW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTQtbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOGdsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOS04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjLWNvaGVyZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMtbWluaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYy12ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjMy1ib2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMzcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjM3ItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjNjMwMHBsdXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzczMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMjUtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS0zMy1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTQzLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kyNW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kzMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTMzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNjb25zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNjb25zb2xlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNpeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNrZXJtaXQxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0MTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNwbG90CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyOHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MzV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDQwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0M3cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NTB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dFhYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN6MTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTExMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTEyNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTU1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjMxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNzAwMGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTcwMDBtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGlsb3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmludGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xNC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc200CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc201CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc203CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbThnbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc205LTgtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJvMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHMzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tODB4MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tOTB4MjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tOTZ4NDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tYmFzaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tZmFzdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BzeF9hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDEwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQyNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDI1MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDUwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0NTA1LTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQ1MDUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3FkY29ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3Fkc3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xbngKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xbng0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXVtZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F1bWU1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAxKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTkrLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5LTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTlwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQyMDMtdy1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmJjb21tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmJjb21tLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JiY29tbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVidXMzMTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50NDArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydDYyMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydDYyMjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3J0cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yeHZ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Ivcnh2dC1iYXNpYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3MvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3M0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2JpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2JvYmNhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjNDEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2M0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY2Fuc2V0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NvYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyZWVuMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3Jld3BvaW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zaW10ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc29yb2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zb3JvYzEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Nvcm9jMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3BpbndyaXRlcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N0NTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0xNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLWNtZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLWUtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1pbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1uaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1zLWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tc3M1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW5lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJiZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdXBlcmJlZS14c2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdXBlcmJlZWljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJicmFpbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N2ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zd3RwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3luZXJ0ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zeW5lcnRlazM4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N5c3RlbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMDYxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDEwNjFmCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDM3MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90MzgwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Q2NTN4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLTE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YWIxMzItdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhbmRlbTY1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YW5kZW02NTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDE0LXNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTUtc20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDIzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNS0xNy13cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUtY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LWV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNy1leAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA1LTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA2YnJsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDdicmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwOWJybAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyLTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyLW5kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTMtMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEzLW5kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDIwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQyMDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MjA3LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0NDA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVsZXJheQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlbGV0ZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZXJtaW5ldAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Rlcm1pbmV0MTIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Rlcm1pbmV0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGd0ZWxuZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTcwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpNzMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk3MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTc0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpODAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0xMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0yMjAtNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTIyMC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTgtMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQtOHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI2LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI4LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpX2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90bjEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90bjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHJzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczgwSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cnNJSQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzLTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cy0xcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMxMDAtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwLXNwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMxcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0NTA1LTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5MzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHkzNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTM3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQ0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTB2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTB2MS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjArbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjAtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDI1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NjIwLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5ZG1kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpODAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTA2NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMCsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTItMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTJiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMmNjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjUtaGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MkIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MkQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MC0ycAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91bHRpbWEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdWx0aW1hSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91bml0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5pdGVybTQ5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5peHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5rbm93bgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3V0czMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92MjAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3YzMjBuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdjMyMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92NTQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZhcHBsZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMTAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmMyMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzMwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMzAzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDAzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MDQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MTRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZlcnNhdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkyMDAtZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTMwMC1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTUwYWRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk2MDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQzYSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQ2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpZXdwb2ludDkwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmlzYTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmlzdWFsNjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdml0dHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92azEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwM2ErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnA2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwOTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92cmVtb3RlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnMxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92czEwMC14MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92c2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dC02MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ibQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLWJtLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ib3QtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtbmF2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtbmF2LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtcy1ib3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1zLXRvcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXRvcC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdy1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdy1uYXYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMG5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDItbnNncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTMxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjAwLWpzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLWpzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMDAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1rMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzIwLWszMTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtdy1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMG5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NDAwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQyMGYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQyMHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjBwY2RvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUwaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MTBwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwcGNkb3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDYxLjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3dyZW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93cmVudworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3dzaXJpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5LTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTAwcQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC00Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxODUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMC1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtMjV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MnctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00Mnd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNXctMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtMTAxaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLTEwNWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1FUEMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1uaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAtbWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC0zNnBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZ3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTQ4cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtZXBjLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0zMTZYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTQzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NS1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzVhcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5ODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTg1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC10ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UtMzI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZS03NWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZS12cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtNDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQydworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQzdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNnBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTM2d3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDhwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC00OHdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtZXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1lcGMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtcC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXBjLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1wYy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLTMxNlgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNzUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDEwdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDE3MDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94MTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDY4aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3g2OGstaXRlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDgyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGVyb3gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZXJveC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94MTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94ODIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGw4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0YWxrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybStzbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtK3NsLXR3bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLTE2Y29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS04Yml0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLW5pYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXBjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tcjYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14Zjg2LXYzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXhmODYtdjMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0teGY4Ni12NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14aQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtcy1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94d3NoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3oKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96LTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3otMTAwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxMTBidworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjlhLWtjLWJjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1rYy11YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEtbmtjLWJjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1ua2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjliCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozNDAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MzlhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejgwMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW4zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbjUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuODAwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDI5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuaXRoMzktYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDM5LWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96dC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenR4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenR4LTEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3p0eDExCisKKzIgMTUgUlBNOkZpbGVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBSREY6RGVzY3JpcHRpb24gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBSREY6UkRGIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMi5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZGYyLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWU1ZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMi5yZHIKQEAgLTAsMCArMSwyMDA4IEBACiswIDEgUkRGOlJERiAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBSREY6RGVzY3JpcHRpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06TmFtZSAwIDAKKzMgMyAjdGV4dCAwIDEgbmN1cnNlczQKKzIgMTUgUlBNOk5hbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06VmVyc2lvbiAwIDAKKzMgMyAjdGV4dCAwIDEgNC4yCisyIDE1IFJQTTpWZXJzaW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlJlbGVhc2UgMCAwCiszIDMgI3RleHQgMCAxIDMKKzIgMTUgUlBNOlJlbGVhc2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06QXJjaCAwIDAKKzMgMyAjdGV4dCAwIDEgaTM4NgorMiAxNSBSUE06QXJjaCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpPcyAwIDAKKzMgMyAjdGV4dCAwIDEgTGludXgKKzIgMTUgUlBNOk9zIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkRpc3RyaWJ1dGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgRExECisyIDE1IFJQTTpEaXN0cmlidXRpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06VmVuZG9yIDAgMAorMyAzICN0ZXh0IDAgMSBkZWxpeCBDb21wdXRlciBHbWJICisyIDE1IFJQTTpWZW5kb3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06UGFja2FnZXIgMCAwCiszIDMgI3RleHQgMCAxIFRpbGwgQnViZWNrIDxidWJlY2tAZGVsaXguZGU+LCBOZ28gVGhhbiA8dGhhbkBkZWxpeC5kZT4KKzIgMTUgUlBNOlBhY2thZ2VyIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkdyb3VwIDAgMAorMyAzICN0ZXh0IDAgMSBMaWJyYXJpZXMKKzIgMTUgUlBNOkdyb3VwIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlN1bW1hcnkgMCAwCiszIDMgI3RleHQgMCAxIEJpYmxpb3RoZWsgenVyIEFuc3RldWVydW5nIHZvbiBUZXJtaW5hbHMKKzIgMTUgUlBNOlN1bW1hcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06RGVzY3JpcHRpb24gMCAwCiszIDMgI3RleHQgMCAxIERpZXNlIExpYnJhcnkgc3RlbGx0IGRlbSBQcm9ncmFtbWllcmVyIHZvbSBUZXJtaW5hbCB1bmFiaMOkbmdpZ2UKK1JvdXRpbmVuIHp1ciBBbnN0ZXVlcnVuZyBJaHJlcyBCaWxkc2NoaXJtcyB6dXIgVmVyZsO8Z3VuZywgZGllCitzcGV6aWVsbCBvcHRpbWllcnQgc2luZC4KK0RpZXNlIFZlcnNpb24gaXN0IGRpZSAnbmV3IGN1cnNlcycgKG5jdXJzZXMpIFZhcmlhbnRlIHVuZCBpc3QgZGVyCithbmVya2FubnRlIEVyc2F0eiBmw7xyIGRpZSBrbGFzc2lzY2hlIEN1cnNlcy1MaWJyYXJ5LCBkaWUgbmljaHQgbWVocgord2VpdGVyZW50d2lja2VsdCB3aXJkLgorMiAxNSBSUE06RGVzY3JpcHRpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06Q29weXJpZ2h0IDAgMAorMyAzICN0ZXh0IDAgMSBHUEwKKzIgMTUgUlBNOkNvcHlyaWdodCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIFJQTTpTb3VyY2VzIDAgMAorMyAzICN0ZXh0IDAgMSBuY3Vyc2VzNC00LjItMy5zcmMucnBtCisyIDE1IFJQTTpTb3VyY2VzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkJ1aWxkRGF0ZSAwIDAKKzMgMyAjdGV4dCAwIDEgVHVlIE1heSAxMiAxOTozMDoyNiAxOTk4CisyIDE1IFJQTTpCdWlsZERhdGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06RGF0ZSAwIDAKKzMgMyAjdGV4dCAwIDEgODk1MDE1ODI2CisyIDE1IFJQTTpEYXRlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlNpemUgMCAwCiszIDMgI3RleHQgMCAxIDEzNzM1MTMKKzIgMTUgUlBNOlNpemUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBSUE06QnVpbGRIb3N0IDAgMAorMyAzICN0ZXh0IDAgMSBlcmRiZWVyZS5kZWxpeC5kZQorMiAxNSBSUE06QnVpbGRIb3N0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOlByb3ZpZGVzIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgICAKKzMgMSBSREY6QmFnIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgbmN1cnNlczQKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgbGlicGFuZWwuc28uNAorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBsaWJuY3Vyc2VzLnNvLjQKKzQgMTUgUlBNOlJlc291cmNlIDAgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIFJQTTpSZXNvdXJjZSAwIDAKKzUgMyAjdGV4dCAwIDEgbGlibWVudS5zby40Cis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBSUE06UmVzb3VyY2UgMCAwCis1IDMgI3RleHQgMCAxIGxpYmZvcm0uc28uNAorNCAxNSBSUE06UmVzb3VyY2UgMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgUlBNOlJlc291cmNlIDAgMAorNSAzICN0ZXh0IDAgMSBuY3Vyc2VzCis0IDE1IFJQTTpSZXNvdXJjZSAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgCiszIDE1IFJERjpCYWcgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMTUgUlBNOlByb3ZpZGVzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgUlBNOkZpbGVzIDAgMAorMyAzICN0ZXh0IDAgMSAvbGliL2xpYm5jdXJzZXMuc28uNAorL2xpYi9saWJuY3Vyc2VzLnNvLjQuMgorL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL0FOTk9VTkNFLmd6CisvdXNyL2RvYy9uY3Vyc2VzNC00LjItMy9ORVdTLmd6CisvdXNyL2RvYy9uY3Vyc2VzNC00LjItMy9SRUFETUUuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL1RPLURPLmd6CisvdXNyL2xpYi9saWJmb3JtLnNvLjQKKy91c3IvbGliL2xpYmZvcm0uc28uNC4yCisvdXNyL2xpYi9saWJtZW51LnNvLjQKKy91c3IvbGliL2xpYm1lbnUuc28uNC4yCisvdXNyL2xpYi9saWJwYW5lbC5zby40CisvdXNyL2xpYi9saWJwYW5lbC5zby40LjIKKy91c3Ivc2hhcmUvbmN1cnNlczQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0CisvdXNyL3NoYXJlL25jdXJzZXM0L3RhYnNldC9zdGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0L3N0ZGNydAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvdnQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0L3Z0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMS8xMTc4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzEvMTczMC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yLzI2MjEtd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMi8yNjIxQQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yLzI2MjFhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMy8zODZhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8zLzNiMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby80CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQvNDAyNWV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQvNDAyN2V4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQvNDQxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81MDUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUvNTQxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUvNTYyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzU2MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NjMwRE1ELTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNi82MzAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNi82MzBNVEctMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1URy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1URy00MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1URy00MXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNy83MzBNVEdyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHci0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby84CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzgvODUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby85CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzkvOTU1LWhiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzkvOTU1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxMi1NCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLU0tVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxMi1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDE0LU0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtTS1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDE0LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A4LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOS04LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QOS1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vWC9YLWhwdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTIxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2E4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2E5ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYTQwODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErZGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhK3J2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhK3VuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0xOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0xOC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yNC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0yOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXJ2LWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zLWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zLXJ2LWN0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTM2LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTQ4LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLWRlYy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS02MC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS02MC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXMtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1kYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1ydi1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2LXVuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1zLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMtcnYtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS11bmsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYXMxOTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYm04NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1aC1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hY3Q0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWN0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkZHJpbmZvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkczk4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkZHN2aWV3cG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZGRzdnA2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbStzZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMTc4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0yMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zMS1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtM2ErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG00Mi1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZXBybworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FpeHRlcm0tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FpeHRlcm0tbS1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hagorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqNTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWo4MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hajgzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0N3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0by1oMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvLWhlYXRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b2gxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9oZWF0aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zLTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvcy0zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zLTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvczdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtYmFzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1iYXNzYWRvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtaWdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1pZ2EtaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcDIxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcDIxOXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleC0yMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleC0yMTl3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgtMjMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgxNzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDE3NS1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MjE5dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MjMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMzJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXg4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FubmFyYm9yNDA4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLWNvbG9yLTItZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1jb2xvci0zLWVteAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2ktZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1taW5pCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1udAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2kuc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS5zeXMtb2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS5zeXNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTQzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k3NworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgyNS1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1LXJhdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHgzMC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDQzLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NTAtbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg2MC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpbC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpcy1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaXN5c2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwLXZtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcG9sbG8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcG9sbG9fMTVQCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBvbGxvXzE5TAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsb19jb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtYWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS1zb3JvYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXV0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdXRlcm0tdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS12aWRleAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZpZGV4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZpZGV4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTJlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUyZS1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGU4MHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZUlJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGVJSWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZUlJZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUlncworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0Mzg2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXRhcmkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQyMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0MjM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDEwdjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDEwdjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1K25sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXJ2LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS13LXJ2LW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI0LTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI0bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUwNS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUxMGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MTBkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTEzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTMxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxMHYxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxMHYxLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQxOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjArbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjBfMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjBfMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjUtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU2MjAtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU2MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjA1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjA1LXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjA1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTAtMTAzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC0xMDNrLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxNS0xMDNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LTEwM2stdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjIwLTEwM2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtMTAzay13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2Mzg2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDczMHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzByLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwci00MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdmF0YXIwKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQrcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ydi1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC1ydi1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdy1ydi1ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXJ2LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXdzYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYi0xMjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iYW50YW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iYXNpYzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iYXNpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JjdDUxMGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iY3Q1MTBkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVhY29uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlaGl2ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JlZWhpdmUzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlaGl2ZTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlSUlJbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JldGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMS4yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMS4yNW52CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1cnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzIuMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wbnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzIuMHJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmczLjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmczLjEwbnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTBydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JoM20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iaDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iaXRncmFwaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JsaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9ib2JjYXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9ic2RvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JzZG9zLWJvbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTAwLTFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMC00cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTAwLXJ2LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LXJ2LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC1ydi04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtdy04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMzAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzMyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NhMjI4NTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jYWQ2OC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2FkNjgtMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NiYmxpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NidW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NjaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NjaTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM0NTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3MjEtZXNjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2RjNzIxbGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3NTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3NTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZzc5MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZ2MyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2djMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2Nocm9tYXRpY3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaTg1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0MTAxZS0xMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLW4xMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC02bHBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtOGxwaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLWNvbXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC1lbGl0ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLXBpY2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC1wcm9wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtcHMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb2NvMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvaGVyZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29sb3JfeHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb2xvcnNjYW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb21tb2RvcmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdC1hdnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOC04cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDgtdy04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOC13OHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4cnY0cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNS1pc28tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNS1pc284ODU5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWtvaTgtcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNS1rb2k4ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjVsMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNWwxLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMzMC1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczQzLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAtaXNvLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAtaXNvODg1OQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1rb2k4cgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1rb2k4ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTBsMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MGwxLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTByCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWlzbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MC1pc28tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MC1rb2k4cgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MC1rb2k4ci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjBsMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MGwxLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjByCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwci1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29udGVsMzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29wcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvcHMtMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb3BzMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jczEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3MxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3Q4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N0ODUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N0cm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N4MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3liMTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3liODMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2QxMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kODAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGF0YWdyYXBoaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhbWVkaWEyNTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGF0YXBvaW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGF0YXNwZWVkNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZDUwMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZHIzMTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0MzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjLXZ0NDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjcHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVjd3JpdGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGVsdGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZy1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGcxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnMjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGcyMTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzQ1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNDYwLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzYwNTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzYxMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8tbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTYyMC1tOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjQwLWxtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTY0MC1tOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTc0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE3NDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG80NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG82MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFsb2d1ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWxvZ3VlODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWdpbG9nCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGt1NzAwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RrdTcwMDMtZHVtYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMTUyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMjUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMzAyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtMzA0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbTgwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtY2hhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZC0zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbWR0ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbWR0ODB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG10ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHAzMzYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHA4MjQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RzNDAtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0LTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0LTEwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0MTAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0MTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0ODAtc2FzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQ4MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdGMzMDBzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHRjMzgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHR0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHVtYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHcxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHcyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHczCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHc0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHdrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHdrLXZ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lY21hK2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZWNtYStzZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lbW90cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VtdQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VudjIzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VudmlzaW9uMjMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VwNDAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VwNDA4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VwNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lcmdvNDAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VzcHJpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VzcHJpdC1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXgxNTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDYyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2Mi1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDY0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2NC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhlYzgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjEwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTEwLTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjExMC0xNHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxNzIwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMjAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMjAwdmkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMjAwdmktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZhbGNvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmFsY28tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2Zlbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmVuaXh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZml4dGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZvcnR1bmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mb3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mb3gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZnJlZWRvbS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20xMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tMTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZnJlZWRvbTIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nYXRvci01MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dhdG9yLTUydAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dhdG9yLXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9naWdpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2xhc3N0dHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nby0yMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nbzE0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvMTQwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvMjI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3JhcGhvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dyYXBob3MtMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczU0MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczU0MzAtMjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczU0MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nczYzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0MTAwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndDQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1K3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1K3VuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0zMy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtMzMtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTQ0LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni1scAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYtdy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtbHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LW5jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaC0xMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oLTEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxMDBidworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktYnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktZworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1zbXVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LXUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktdXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTlhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5ZworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTlrZXJtaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTl1cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEta2MtYmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMjlhLWtjLXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDI5YS1ua2MtYmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMjlhLW5rYy11YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2g4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hhODY3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hhODY4NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hhemVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGRzMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGU4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGVhdGgtMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aC1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGVhdGhraXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aGtpdC1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGZ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGZ0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oaXJlejEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hpcmV6MTAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9obW9kMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArYXJyb3dzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArY29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtsYWJlbHMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmsrYXJyb3dzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArcGZrK2NyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArcGZrLWNyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHArcHJpbnRlcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAxNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM4MmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzOTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzOTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDIzOTdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLTQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtYmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtZmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxLXdsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxQQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFhLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1reAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWIta3gtcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWItcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWs0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFwLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjJhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNC0xMHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0YS0xMHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi0xMHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTEwcC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi00cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGItNHAtcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGItcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNi0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNi0xMi1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyeDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYteDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI3YS1yZXYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjdjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjJ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0MGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDFhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ0YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0NWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ4YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMzAwaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNzAwLXd5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDA5MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNzAwOTJBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDA5MmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4MzcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA5ODU1MGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA5ODcyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocGV4MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwZ2VuZXJpYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwc3ViCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHB0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHR4MTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejEwMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1MjAtbm9lc2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1NTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejE1NTItcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oejIwMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2kxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pMzEwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2kzMTUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTMxNjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pNDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJjczIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tYXBsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtLXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtLXN5c3RlbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzE1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxNjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTYzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzE2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMyN3gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MDUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTA4MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUwODEtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUxNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MTU0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTE1NC1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNjE1MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm02MTU0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm02MTU1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtODUxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTg1MTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtODUxNC1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtYWVkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtYXBhMTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtYXBhOGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGE4Yy1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtZWdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtZWdhLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtbXBlbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libW1wZWwtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMzcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXBjM3ItbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXBjeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXZnYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libXZnYS1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJteAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lmbXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbXMtYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ltczk1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ltczk1MC1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW5mb3RvbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGVydGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0dWJlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0dWJlMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGV4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGV4dDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRleHRpaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lwcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lwc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcTEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lxMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpcy1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpcy1hbnNpLWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpcy1jb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lyaXM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9qCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2ovamFpeHRlcm0tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9qL2plcnEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2s0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2theXBybworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2theXBybzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rZXJtaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rZXJtaXQtYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZSthY3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZStjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2tvaThhY3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZStzZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rbG9uZStzZ3ItZHVtYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2t0NworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2t0N2l4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Rlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rdG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xhMTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGF5ZXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1jLW5jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgta29pOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LW5pYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saXNhdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc2F0ZXJtLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saXN3YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xuMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sbjAzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9scHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sdW5hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbHVuYTY4aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbTItbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFjLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWNpbnRvc2gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWN0ZXJtaW5hbC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWFzc2NvbXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYXNzY29tcDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYXNzY29tcDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZGwxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZWdhdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWVtaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZ3ItbGludXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZ3Itc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWljcm9iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWljcm9iZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb3Rlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb3Rlcm01CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUtM2F4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS1mYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTJhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTJhLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEtdgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUzMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTNheAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWVpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZWlpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml0ZWwtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml0ZWwtMi1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml4LW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml4LW9sZC1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21tMzE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW0zNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2QyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZGdyYXBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9kZ3JhcGgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9kZ3JhcGg0OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vbm8tZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrMjI3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrMjI3MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjdhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21za2VybWl0MjI3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjcxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21za2VybWl0MjI3YW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tdC03MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL210NDUyMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL210NzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpLnN5cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpLnN5c2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uYW5zaXN5cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uY3I3OTAwaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDBpdgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZWM1NTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3aHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdocGtleWJvYXJkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMjkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzLTI5LWV1YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMjktc2ppcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzLTMzLWV1YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMzMtc2ppcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzLTQyLWV1YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtNDItc2ppcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3Mtb2xkLXVuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czI4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czI4LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMzEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czQwLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3M0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzY2JtLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzY2JtLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzY2JtMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV4dHNoZWxsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbm9ydGhzdGFyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndlNTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndlNTAxLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cC01MTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AtNTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwLTUxNy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwMjUxLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AyNTEtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMi1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTMtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMy1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE0LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxNy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE4LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgtbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vbzMxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vbzQxMTItbmQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2FibTg1aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29ibGl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2MxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vY29uY2VwdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29qZXJxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2xkaWJtcGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2xkcGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2xkc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb21yb24KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vcHVzM24xKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29yaWdpYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vcmlncGMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3M5TElJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29zYm9ybmUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29zYm9ybmUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZTEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29zZXhlYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL290ZWs0MTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vdGVrNDExNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL290ZWs0MTE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3dsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi1tLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxNC1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxNC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDhnbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A5LTgtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A5LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYy1jb2hlcmVudAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjLW1pbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMtdmVuaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzMtYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjM3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzNyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzYzMDBwbHVzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGM3MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTI1LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMzMtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS00My1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpMjVtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kzM20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2k0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjY29ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjY29uc29sZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2tlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0MTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2tlcm1pdDEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjcGxvdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyNXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0Mjh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDM1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDM1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NDN3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDUwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnRYWAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjejE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGUxMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGUxMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGUxMjUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGU1NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTYxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTYzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTYzMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTcwMDBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGU3MDAwbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BpbG90CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpbnRlcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTEyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTEyLW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTE0LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTE0LW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204Z2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTktOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS04LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbTktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BybzM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BzMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLTgweDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLTkweDI4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLTk2eDQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLWJhc2ljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHN0ZXJtLWZhc3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3hfYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQxMDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDIwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDIxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQyNTB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQ1MDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDUwNS0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0NTA1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHR5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xZGNvbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xZHNzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcW54CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcW54NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F1bWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdW1lNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwMSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTkrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOSstMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOSstdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOS0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTlwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOXAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOXAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMysKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQyMDMtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQyMDMtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzLXctYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JiY29tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JiY29tbS1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yYmNvbW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JjYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlYnVzMzE4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQ0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDQwKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcnQ2MjIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcnQ2MjIxLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Ivcnh2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3J4dnQtYmFzaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NiaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Nib2JjYXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zYzQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjNDE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NhbnNldAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Njb2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3JlZW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3JlZW4tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3JlZW4zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyZXdwb2ludAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmhwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2ltdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Nvcm9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc29yb2MxMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zb3JvYzE0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NwaW53cml0ZXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdDUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1jbWQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1lLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4taWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tbmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tcy1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLXNzNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1cGVyYmVlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJiZWUteHNiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJiZWVpYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1cGVyYnJhaW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdjgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3d0cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N5bmVydGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3luZXJ0ZWszODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zeXN0ZW0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90MTA2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMDYxZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QzNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDM4MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90NjUzeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMi0xNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMi1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhYjEzMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YW5kZW02NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFuZGVtNjUzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxNC1zbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDE1LXNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNS0xNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUtMTctd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LWNyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNS1leAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjVhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNWV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjctZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNS0zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDVhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNmJybAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA3YnJsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDlicmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMi01CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMi1uZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEzLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMy1uZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQyMDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MjA3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDIwNy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDQwNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlbGVyYXkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWxldGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVybWluZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZXJtaW5ldDEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZXJtaW5ldDMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RndGVsbmV0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk3MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTczMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpNzM1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk3NDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTgwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYtMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYtMjIwLTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0yMjAtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi04LTEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI0LTh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjR3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNi04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyOC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aV9hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdG4xMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdG4zMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cnMxNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cnM4MElJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHJzSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cy0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMtMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90czEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90czEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwLWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90czEwMC1zcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dDUwNS0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHkzNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQ0MjQtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQ0MjRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDEwdjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDEwdjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwK25sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXJ2LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC13LXJ2LW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyNS1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NjIwLTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NjIwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMC0zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eWRtZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aS0ycAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTgwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkwNjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTJjYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMC0ycAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTI1LWhpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTJCCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTJECisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLXJ2LTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTUwLXJ2LTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTU1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTU1LWhiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTU1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NzAtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmlwdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdWx0aW1hMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3VsdGltYUlJCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5pdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3VuaXRlcm00OQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3VuaXhwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3Vua25vd24KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91dHMzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdjIwMC1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92MzIwbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3YzMjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdjU0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YXBwbGUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzEwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmMzMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzMwM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzQwM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzQwNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDA0LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzQxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDE0aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmVuaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92ZXJzYXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwLWYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTIwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkzMDAtb2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1MGFkbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTU1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmlld3BvaW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmlld3BvaW50M2ErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmlld3BvaW50NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQ5MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Zpc2E1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Zpc3VhbDYwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpdHR5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmsxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92cDNhKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92cDkwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnJlbW90ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZzMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnMxMDAteDEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnNjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQtNjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtYm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ibS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtYm90LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1uYW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hdgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hdi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXMtYm90CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtcy10b3AKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC10b3AtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXctYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC13LW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXctbmF2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDBuYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyLW5zZ3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIwMC1qcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIyMC1qcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIyMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMwMC13LW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtazMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1rMzExCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzIwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjBuYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQwMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjBmCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjBwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NDIwcGNkb3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUxMHBjZG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDYxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ2MS41CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93cmVuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3JlbncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93c2lyaXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eS03NWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEwMHEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwLXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXRlaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxODUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzAtbWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDJ3LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDJ3dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjV3LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLTEwMWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC0xMDVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtRVBDCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtbmsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXRlaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTM2dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTM2d3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtNDh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtNDh3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC1lcGMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtMzE2WAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTQyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzUtbWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5ODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5ODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3Qtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlLTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UtNzVhcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UtdnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTQzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE4NS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMC1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS0yNXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS00MncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS00M3cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzNTAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MC1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtMzZwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtMzZ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNndwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTQ4cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTQ4dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDh3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLWVwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtZXBjLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1wYy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtcGMtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0zMTZYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLTQyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NS1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U3NWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTg1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTg1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxMHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94MTcwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzAwLWxtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDE3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94MTc1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3g2OGsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94NjhrLWl0ZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3g4MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGVyb3gtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZXJveDE3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZXJveDgyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hsODMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGFsaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0rc2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybStzbC10d20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS0xNmNvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tOGJpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLWJvbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1uaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1wY29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0teGY4Ni12MzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14Zjg2LXYzMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXhmODYtdjQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0teGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybXMtc3VuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHdzaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovei0xMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96LTEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxMDBidworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MTEwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjlhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEta2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjlhLW5rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEtbmtjLXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MzQwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozOS1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM5YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3o1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3o4MDAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW41MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbjgwMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW5pdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW5pdGgyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDM5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW5pdGgzOS1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenQtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3p0eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3p0eC0xLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96dHgxMQorCisyIDE1IFJQTTpGaWxlcyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgUkRGOkRlc2NyaXB0aW9uIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgUkRGOlJERiAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjIuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMi5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY2ODZjMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjIuc2F4CkBAIC0wLDAgKzEsMTkxIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoUkRGOlJERiwgeG1sbnM6UkRGPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycsIHhtbG5zOlJQTT0naHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChSREY6RGVzY3JpcHRpb24sIGFib3V0PSdmdHA6Ly9ydWZ1cy53My5vcmcvbGludXgvZGxkLzUuNC9pMzg2L1JQTVMvaTM4Ni9uY3Vyc2VzNC00LjItMy5pMzg2LnJwbScpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpOYW1lKQorU0FYLmNoYXJhY3RlcnMobmN1cnNlczQsIDgpCitTQVguZW5kRWxlbWVudChSUE06TmFtZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlZlcnNpb24pCitTQVguY2hhcmFjdGVycyg0LjIsIDMpCitTQVguZW5kRWxlbWVudChSUE06VmVyc2lvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlJlbGVhc2UpCitTQVguY2hhcmFjdGVycygzLCAxKQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlbGVhc2UpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpBcmNoKQorU0FYLmNoYXJhY3RlcnMoaTM4NiwgNCkKK1NBWC5lbmRFbGVtZW50KFJQTTpBcmNoKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06T3MpCitTQVguY2hhcmFjdGVycyhMaW51eCwgNSkKK1NBWC5lbmRFbGVtZW50KFJQTTpPcykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkRpc3RyaWJ1dGlvbikKK1NBWC5jaGFyYWN0ZXJzKERMRCwgMykKK1NBWC5lbmRFbGVtZW50KFJQTTpEaXN0cmlidXRpb24pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpWZW5kb3IpCitTQVguY2hhcmFjdGVycyhkZWxpeCBDb21wdXRlciBHbWJILCAxOSkKK1NBWC5lbmRFbGVtZW50KFJQTTpWZW5kb3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpQYWNrYWdlcikKK1NBWC5jaGFyYWN0ZXJzKFRpbGwgQnViZWNrICwgMTIpCitTQVguY2hhcmFjdGVycyg8LCAxKQorU0FYLmNoYXJhY3RlcnMoYnViZWNrQGRlbGl4LmRlLCAxNSkKK1NBWC5jaGFyYWN0ZXJzKD4sIDEpCitTQVguY2hhcmFjdGVycygsIE5nbyBUaGFuICwgMTEpCitTQVguY2hhcmFjdGVycyg8LCAxKQorU0FYLmNoYXJhY3RlcnModGhhbkBkZWxpeC5kZSwgMTMpCitTQVguY2hhcmFjdGVycyg+LCAxKQorU0FYLmVuZEVsZW1lbnQoUlBNOlBhY2thZ2VyKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06R3JvdXApCitTQVguY2hhcmFjdGVycyhMaWJyYXJpZXMsIDkpCitTQVguZW5kRWxlbWVudChSUE06R3JvdXApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpTdW1tYXJ5KQorU0FYLmNoYXJhY3RlcnMoQmlibGlvdGhlayB6dXIgQW5zdGV1ZXJ1bmcgdm9uLCA0MCkKK1NBWC5lbmRFbGVtZW50KFJQTTpTdW1tYXJ5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06RGVzY3JpcHRpb24pCitTQVguY2hhcmFjdGVycyhEaWVzZSBMaWJyYXJ5IHN0ZWxsdCBkZW0gUHJvZ3IsIDU3KQorU0FYLmNoYXJhY3RlcnMow6QsIDIpCitTQVguY2hhcmFjdGVycyhuZ2lnZQorUm91dGluZW4genVyIEFuc3RldWVydW5nLCA1NykKK1NBWC5jaGFyYWN0ZXJzKMO8LCAyKQorU0FYLmNoYXJhY3RlcnMoZ3VuZywgZGllCitzcGV6aWVsbCBvcHRpbWllcnQgcywgNTcpCitTQVguY2hhcmFjdGVycygnLCAxKQorU0FYLmNoYXJhY3RlcnMobmV3IGN1cnNlcywgMTApCitTQVguY2hhcmFjdGVycygnLCAxKQorU0FYLmNoYXJhY3RlcnMoIChuY3Vyc2VzKSBWYXJpYW50ZSB1bmQgaXN0IGRlLCA1MSkKK1NBWC5jaGFyYWN0ZXJzKMO8LCAyKQorU0FYLmNoYXJhY3RlcnMociBkaWUga2xhc3Npc2NoZSBDdXJzZXMtTGlicmFyLCA3MCkKK1NBWC5lbmRFbGVtZW50KFJQTTpEZXNjcmlwdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkNvcHlyaWdodCkKK1NBWC5jaGFyYWN0ZXJzKEdQTCwgMykKK1NBWC5lbmRFbGVtZW50KFJQTTpDb3B5cmlnaHQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpTb3VyY2VzKQorU0FYLmNoYXJhY3RlcnMobmN1cnNlczQtNC4yLTMuc3JjLnJwbSwgMjIpCitTQVguZW5kRWxlbWVudChSUE06U291cmNlcykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkJ1aWxkRGF0ZSkKK1NBWC5jaGFyYWN0ZXJzKFR1ZSBNYXkgMTIgMTk6MzA6MjYgMTk5OCwgMjQpCitTQVguZW5kRWxlbWVudChSUE06QnVpbGREYXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06RGF0ZSkKK1NBWC5jaGFyYWN0ZXJzKDg5NTAxNTgyNiwgOSkKK1NBWC5lbmRFbGVtZW50KFJQTTpEYXRlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06U2l6ZSkKK1NBWC5jaGFyYWN0ZXJzKDEzNzM1MTMsIDcpCitTQVguZW5kRWxlbWVudChSUE06U2l6ZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOkJ1aWxkSG9zdCkKK1NBWC5jaGFyYWN0ZXJzKGVyZGJlZXJlLmRlbGl4LmRlLCAxNykKK1NBWC5lbmRFbGVtZW50KFJQTTpCdWlsZEhvc3QpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KFJQTTpQcm92aWRlcykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgLCA3KQorU0FYLnN0YXJ0RWxlbWVudChSREY6QmFnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlJlc291cmNlLCBocmVmPScuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbmN1cnNlczQucmRmJykKK1NBWC5jaGFyYWN0ZXJzKG5jdXJzZXM0LCA4KQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQoUlBNOlJlc291cmNlLCBocmVmPScuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbGlicGFuZWwuc28uNC5yZGYnKQorU0FYLmNoYXJhY3RlcnMobGlicGFuZWwuc28uNCwgMTMpCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UsIGhyZWY9Jy4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9saWJuY3Vyc2VzLnNvLjQucmRmJykKK1NBWC5jaGFyYWN0ZXJzKGxpYm5jdXJzZXMuc28uNCwgMTUpCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UsIGhyZWY9Jy4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9saWJtZW51LnNvLjQucmRmJykKK1NBWC5jaGFyYWN0ZXJzKGxpYm1lbnUuc28uNCwgMTIpCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UsIGhyZWY9Jy4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9saWJmb3JtLnNvLjQucmRmJykKK1NBWC5jaGFyYWN0ZXJzKGxpYmZvcm0uc28uNCwgMTIpCitTQVguZW5kRWxlbWVudChSUE06UmVzb3VyY2UpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChSUE06UmVzb3VyY2UsIGhyZWY9Jy4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9uY3Vyc2VzLnJkZicpCitTQVguY2hhcmFjdGVycyhuY3Vyc2VzLCA3KQorU0FYLmVuZEVsZW1lbnQoUlBNOlJlc291cmNlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudChSREY6QmFnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoUlBNOlByb3ZpZGVzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChSUE06RmlsZXMpCitTQVguY2hhcmFjdGVycygvbGliL2xpYm5jdXJzZXMuc28uNAorL2xpYi9saWJuLCAyMDA4KQorU0FYLmNoYXJhY3RlcnMoL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDE0LCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoZXM0L3Rlcm1pbmZvL2EvYWx0N3BjCisvdXNyL3NoYSwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKC9hL2F0dDQ0MTUtdworL3Vzci9zaGFyZS9uY3Vyc2UsIDQwMDApCitTQVguY2hhcmFjdGVycyhzZXM0L3Rlcm1pbmZvL2IvYmVlCisvdXNyL3NoYXJlLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoc3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoL3Rlcm1pbmZvL2gvaHAyNjI2LTEyeDQwCisvdXNyLywgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKGUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRlcnR1YiwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKHJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjcxNCwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi1tCissIDQwMDApCitTQVguY2hhcmFjdGVycyhwdDEwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVyLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoc3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zLCA0MDAwKQorU0FYLmNoYXJhY3RlcnModXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTU1LCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoL3d5OTlndC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNCwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKC93L3d5c2U5OWd0CisvdXNyL3NoYXJlL25jdXJzZXMsIDI5MDcpCitTQVguZW5kRWxlbWVudChSUE06RmlsZXMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoUkRGOkRlc2NyaXB0aW9uKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChSREY6UkRGKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JkZjIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODgxNzRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmRmMi5zYXgyCkBAIC0wLDAgKzEsMTkxIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhSREYsIFJERiwgJ2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjJywgMiwgeG1sbnM6UkRGPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycsIHhtbG5zOlJQTT0naHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKERlc2NyaXB0aW9uLCBSREYsICdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IycsIDAsIDEsIDAsIGFib3V0PSdmdHA6Li4uJywgNzEpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoTmFtZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhuY3Vyc2VzNCwgOCkKK1NBWC5lbmRFbGVtZW50TnMoTmFtZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoVmVyc2lvbiwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyg0LjIsIDMpCitTQVguZW5kRWxlbWVudE5zKFZlcnNpb24sIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlbGVhc2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMywgMSkKK1NBWC5lbmRFbGVtZW50TnMoUmVsZWFzZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoQXJjaCwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhpMzg2LCA0KQorU0FYLmVuZEVsZW1lbnROcyhBcmNoLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhPcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhMaW51eCwgNSkKK1NBWC5lbmRFbGVtZW50TnMoT3MsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKERpc3RyaWJ1dGlvbiwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhETEQsIDMpCitTQVguZW5kRWxlbWVudE5zKERpc3RyaWJ1dGlvbiwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoVmVuZG9yLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGRlbGl4IENvbXB1dGVyIEdtYkgsIDE5KQorU0FYLmVuZEVsZW1lbnROcyhWZW5kb3IsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFBhY2thZ2VyLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFRpbGwgQnViZWNrICwgMTIpCitTQVguY2hhcmFjdGVycyg8LCAxKQorU0FYLmNoYXJhY3RlcnMoYnViZWNrQGRlbGl4LmRlLCAxNSkKK1NBWC5jaGFyYWN0ZXJzKD4sIDEpCitTQVguY2hhcmFjdGVycygsIE5nbyBUaGFuICwgMTEpCitTQVguY2hhcmFjdGVycyg8LCAxKQorU0FYLmNoYXJhY3RlcnModGhhbkBkZWxpeC5kZSwgMTMpCitTQVguY2hhcmFjdGVycyg+LCAxKQorU0FYLmVuZEVsZW1lbnROcyhQYWNrYWdlciwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoR3JvdXAsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoTGlicmFyaWVzLCA5KQorU0FYLmVuZEVsZW1lbnROcyhHcm91cCwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoU3VtbWFyeSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhCaWJsaW90aGVrIHp1ciBBbnN0ZXVlcnVuZyB2b24sIDQwKQorU0FYLmVuZEVsZW1lbnROcyhTdW1tYXJ5LCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhEZXNjcmlwdGlvbiwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhEaWVzZSBMaWJyYXJ5IHN0ZWxsdCBkZW0gUHJvZ3IsIDU3KQorU0FYLmNoYXJhY3RlcnMow6QsIDIpCitTQVguY2hhcmFjdGVycyhuZ2lnZQorUm91dGluZW4genVyIEFuc3RldWVydW5nLCA1NykKK1NBWC5jaGFyYWN0ZXJzKMO8LCAyKQorU0FYLmNoYXJhY3RlcnMoZ3VuZywgZGllCitzcGV6aWVsbCBvcHRpbWllcnQgcywgNTcpCitTQVguY2hhcmFjdGVycygnLCAxKQorU0FYLmNoYXJhY3RlcnMobmV3IGN1cnNlcywgMTApCitTQVguY2hhcmFjdGVycygnLCAxKQorU0FYLmNoYXJhY3RlcnMoIChuY3Vyc2VzKSBWYXJpYW50ZSB1bmQgaXN0IGRlLCA1MSkKK1NBWC5jaGFyYWN0ZXJzKMO8LCAyKQorU0FYLmNoYXJhY3RlcnMociBkaWUga2xhc3Npc2NoZSBDdXJzZXMtTGlicmFyLCA3MCkKK1NBWC5lbmRFbGVtZW50TnMoRGVzY3JpcHRpb24sIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKENvcHlyaWdodCwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhHUEwsIDMpCitTQVguZW5kRWxlbWVudE5zKENvcHlyaWdodCwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoU291cmNlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhuY3Vyc2VzNC00LjItMy5zcmMucnBtLCAyMikKK1NBWC5lbmRFbGVtZW50TnMoU291cmNlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoQnVpbGREYXRlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFR1ZSBNYXkgMTIgMTk6MzA6MjYgMTk5OCwgMjQpCitTQVguZW5kRWxlbWVudE5zKEJ1aWxkRGF0ZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoRGF0ZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyg4OTUwMTU4MjYsIDkpCitTQVguZW5kRWxlbWVudE5zKERhdGUsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKFNpemUsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTM3MzUxMywgNykKK1NBWC5lbmRFbGVtZW50TnMoU2l6ZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoQnVpbGRIb3N0LCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGVyZGJlZXJlLmRlbGl4LmRlLCAxNykKK1NBWC5lbmRFbGVtZW50TnMoQnVpbGRIb3N0LCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhQcm92aWRlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICwgNykKK1NBWC5zdGFydEVsZW1lbnROcyhCYWcsIFJERiwgJ2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAxLCAwLCBocmVmPScuLi8uLi4uJywgMzcpCitTQVguY2hhcmFjdGVycyhuY3Vyc2VzNCwgOCkKK1NBWC5lbmRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhSZXNvdXJjZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDEsIDAsIGhyZWY9Jy4uLy4uLi4nLCA0MikKK1NBWC5jaGFyYWN0ZXJzKGxpYnBhbmVsLnNvLjQsIDEzKQorU0FYLmVuZEVsZW1lbnROcyhSZXNvdXJjZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMSwgMCwgaHJlZj0nLi4vLi4uLicsIDQ0KQorU0FYLmNoYXJhY3RlcnMobGlibmN1cnNlcy5zby40LCAxNSkKK1NBWC5lbmRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhSZXNvdXJjZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycsIDAsIDEsIDAsIGhyZWY9Jy4uLy4uLi4nLCA0MSkKK1NBWC5jaGFyYWN0ZXJzKGxpYm1lbnUuc28uNCwgMTIpCitTQVguZW5kRWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAxLCAwLCBocmVmPScuLi8uLi4uJywgNDEpCitTQVguY2hhcmFjdGVycyhsaWJmb3JtLnNvLjQsIDEyKQorU0FYLmVuZEVsZW1lbnROcyhSZXNvdXJjZSwgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKFJlc291cmNlLCBSUE0sICdodHRwOi8vd3d3LnJwbS5vcmcvJywgMCwgMSwgMCwgaHJlZj0nLi4vLi4uLicsIDM2KQorU0FYLmNoYXJhY3RlcnMobmN1cnNlcywgNykKK1NBWC5lbmRFbGVtZW50TnMoUmVzb3VyY2UsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAsIDcpCitTQVguZW5kRWxlbWVudE5zKEJhZywgUkRGLCAnaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhQcm92aWRlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoRmlsZXMsIFJQTSwgJ2h0dHA6Ly93d3cucnBtLm9yZy8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoL2xpYi9saWJuY3Vyc2VzLnNvLjQKKy9saWIvbGlibiwgMjAwOCkKK1NBWC5jaGFyYWN0ZXJzKC9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxNCwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKGVzNC90ZXJtaW5mby9hL2FsdDdwYworL3Vzci9zaGEsIDQwMDApCitTQVguY2hhcmFjdGVycygvYS9hdHQ0NDE1LXcKKy91c3Ivc2hhcmUvbmN1cnNlLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMoc2VzNC90ZXJtaW5mby9iL2JlZQorL3Vzci9zaGFyZSwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKHIvc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jbywgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKC91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZCwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKHNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZywgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKC90ZXJtaW5mby9oL2hwMjYyNi0xMng0MAorL3Vzci8sIDQwMDApCitTQVguY2hhcmFjdGVycyhlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0dWIsIDQwMDApCitTQVguY2hhcmFjdGVycyhyc2VzNC90ZXJtaW5mby9tL21za2VybWl0MjI3MTQsIDQwMDApCitTQVguY2hhcmFjdGVycyhhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTItbQorLCA0MDAwKQorU0FYLmNoYXJhY3RlcnMocHQxMDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3RlciwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKHNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3MvcywgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKHVzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90LywgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKHNoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1NSwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLSwgNDAwMCkKK1NBWC5jaGFyYWN0ZXJzKC93eTk5Z3QtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQsIDQwMDApCitTQVguY2hhcmFjdGVycygvdy93eXNlOTlndAorL3Vzci9zaGFyZS9uY3Vyc2VzLCAyOTA3KQorU0FYLmVuZEVsZW1lbnROcyhGaWxlcywgUlBNLCAnaHR0cDovL3d3dy5ycG0ub3JnLycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhEZXNjcmlwdGlvbiwgUkRGLCAnaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMnKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKFJERiwgUkRGLCAnaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMnKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9icmFuY2ggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvYnJhbmNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNzAzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvYnJhbmNoCkBAIC0wLDAgKzEsMTQgQEAKK1JlZ2V4cDogYXxiKGR8ZShnfGh8aSl8Zil8YworYTogT2sKK2M6IE9rCitiZDogT2sKK2JmOiBPaworYmVnOiBPaworYmVoOiBPaworYmVpOiBPaworYjogRmFpbAorYmU6IEZhaWwKK2JpOiBGYWlsCitmOiBGYWlsCithYjogRmFpbAorYWM6IEZhaWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9idWczMTYzMzggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvYnVnMzE2MzM4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjZDFhYzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvYnVnMzE2MzM4CkBAIC0wLDAgKzEsMjAgQEAKK1JlZ2V4cDogKCgoQ3xjKSgoW1xzXSpcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/KXszfSkrW1xzXSopKSsKK0MgNDMzOiBPaworQyA0MzMgMTI6IEZhaWwKK0MgNDMzIDEyMzogT2sKK0MgNDMzIDEyMyA0NTY6IE9rCitDIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyOiBGYWlsCitSZWdleHA6ICgoKEN8YykoKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPyl7M30pK1tcc10qKSkrCitDIDQzMzogRmFpbAorQyA0MzMgMTI6IEZhaWwKK0MgNDMzIDEyMzogRmFpbAorQyA0MzMgMTIzIDQ1NjogT2sKK0MgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTI6IEZhaWwKK1JlZ2V4cDogKCgoQ3xjKSgoW1xzXStcLT9bMC05XSsoXC5bMC05XSspP1tcc10qLFtcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8pezN9KStbXHNdKikpKworQyA0MzM6IEZhaWwKK0MgNDMzIDEyOiBGYWlsCitDIDQzMyAxMjM6IEZhaWwKK0MgNDMzIDEyMyA0NTY6IEZhaWwKK0MgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMjcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMjogRmFpbAorUmVnZXhwOiAoKChNfG0pKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10qLFtcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPylbXHNdKil8KChMfGwpKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10qLFtcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPykrW1xzXSopfCgoSHxoKShbXHNdK1wtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT8pK1tcc10qKXwoKFZ8dikoW1xzXStcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/KStbXHNdKil8KChDfGMpKChbXHNdK1wtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT9bXHNdKixbXHNdKlwtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT8pezN9KStbXHNdKil8KChRfHEpKChbXHNdK1wtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT9bXHNdKixbXHNdKlwtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT8pezJ9KStbXHNdKil8KChTfHMpKChbXHNdK1wtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT9bXHNdKixbXHNdKlwtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT8pezJ9KStbXHNdKil8KChBfGEpKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10qLFtcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10rWzAtMV1bXHNdK1swLTFdW1xzXStcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/W1xzXSosW1xzXSpcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/KStbXHNdKil8KChafHopW1xzXSopKSoKK00gNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTIgNzI0LjY0LDQzMy4xMiA3MTguMDgsNDMzLjEyIDcxMS41Miw0MzMuMTI6IEZhaWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9idWc0MjA1OTYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvYnVnNDIwNTk2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyM2IzMDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvYnVnNDIwNTk2CkBAIC0wLDAgKzEsMTAgQEAKK1JlZ2V4cDogKFwrfC0pKDBbMC05XXwxWzAtMV0pCisrMDE6IE9rCistMDE6IE9rCisrMTA6IE9rCistMTA6IE9rCitSZWdleHA6IFsrLV0oMFswLTldfDFbMC0xXSkKKyswMTogT2sKKy0wMTogT2sKKysxMDogT2sKKy0xMDogT2sKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9jb250ZW50IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVnZXhwL2NvbnRlbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIwZmQ0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9jb250ZW50CkBAIC0wLDAgKzEsMTIgQEAKK1JlZ2V4cDogKChhfGJ8YylkZWYpCithZGVmOiBPaworYmRlZjogT2sKK2FkZWZnOiBGYWlsCithYWVmOiBGYWlsCitSZWdleHA6ICgoYXxifGN8ZHxlfGYpPyhnfGh8aSkrKGt8bCkqKQorZzogT2sKK2dpOiBPaworZmlsOiBPaworZ2lrbDogT2sKK2NnaGhoaWlsbDogT2sKK2FrOiBGYWlsCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvaGFyZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9oYXJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4ZDYxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvaGFyZApAQCAtMCwwICsxLDEyIEBACitSZWdleHA6ICgoYXxifFxwe05kfSl7MSwyfXxhYWF8YmJiYil7MSwyfQorYmFiOiBPaworYWFjYTogRmFpbAorYWFhYmJiYjogT2sKK2EwYjogT2sKK2FhMGFhYTogRmFpbAorYjBhYWE6IE9rCitSZWdleHA6IChcZHsxLDN9XC4pezN9XGR7MSwzfQorMS4yLjMuNDogT2sKKzEuMjIuMzMzLjQ0OiBPaworMS4yLjM6IEZhaWwKKzEuLjIuMzogRmFpbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVnZXhwL25jbmFtZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9uY25hbWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YxNmQ5NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9uY25hbWUKQEAgLTAsMCArMSw2IEBACitSZWdleHA6IFtcaS1bOl1dW1xjLVs6XV0qCithOiBPaworYWJjOiBPaworYWJjMWQ6IE9rCisxYWM6IEZhaWwKK2ExYjpjOiBGYWlsCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvcmFuZ2VzIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVnZXhwL3JhbmdlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2JmMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVnZXhwL3JhbmdlcwpAQCAtMCwwICsxLDE1IEBACitSZWdleHA6IGF7MiwzfQorYTogRmFpbAorYWE6IE9rCithYWE6IE9rCithYWFhOiBGYWlsCitSZWdleHA6IGJhezIsM31jCitiYWM6IEZhaWwKK2JhYWM6IE9rCitiYWFhYzogT2sKK2JhYWFhYzogRmFpbAorUmVnZXhwOiBhKGJ8Yyl7MiwzfWQKK2FiY2Q6IE9rCithY2NjZDogT2sKK2FiZDogRmFpbAorYWNjY2NkOiBGYWlsCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvcmFuZ2VzMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC9yYW5nZXMyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMDU3MzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWdleHAvcmFuZ2VzMgpAQCAtMCwwICsxLDE0IEBACitSZWdleHA6IChhfGJ7MCwzfSl7MCwxfQorYTogT2sKK2FhOiBGYWlsCitiOiBPaworYmI6IE9rCitiYmI6IE9rCitiYmJiOiBGYWlsCithYjogRmFpbAorYmE6IEZhaWwKK1JlZ2V4cDogKFswLTldezAsM318KFswLTldezB9fFswLTldezAsM30pKXswLDN9CiswOiBPaworMDA6IE9rCisxMjM6IE9rCithYmM6IEZhaWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC94cGF0aCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlZ2V4cC94cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjZiMTNjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVnZXhwL3hwYXRoCkBAIC0wLDAgKzEsMzIgQEAKK1JlZ2V4cDogKFwuLy8pPygoKGNoaWxkOjopPygoXGlcYyo6KT8oXGlcYyp8XCopKSl8XC4pKC8oKChjaGlsZDo6KT8oKFxpXGMqOik/KFxpXGMqfFwqKSkpfFwuKSkqKFx8KFwuLy8pPygoKGNoaWxkOjopPygoXGlcYyo6KT8oXGlcYyp8XCopKSl8XC4pKC8oKChjaGlsZDo6KT8oKFxpXGMqOik/KFxpXGMqfFwqKSkpfFwuKSkqKSoKK2E6IE9rCithMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzOiBPaworKjogT2sKK2F8YjogT2sKKy4vL2E6YjogT2sKK2EvYi9jOiBPaworYS8qL2I6IE9rCithOiovYjoqL2M6KjogT2sKK2NoaWxkOjphL2NoaWxkOjpiOio6IE9rCitjaGlsZDo6YS9jaGlsZDo6YjoqfGEvKi9ifC4vL2E6YjogT2sKKzE6IEZhaWwKKzFhYjogRmFpbAorYToxOiBPaworQGE6IEZhaWwKK2FuY2VzdG9yOjphOiBPaworUmVnZXhwOiAoXC4vLyk/KCgoY2hpbGQ6Oik/KChbXGktWzpdXVtcYy1bOl1dKjopPyhbXGktWzpdXVtcYy1bOl1dKnxcKikpKXxcLikoLygoKGNoaWxkOjopPygoW1xpLVs6XV1bXGMtWzpdXSo6KT8oW1xpLVs6XV1bXGMtWzpdXSp8XCopKSl8XC4pKSooXHwoXC4vLyk/KCgoY2hpbGQ6Oik/KChbXGktWzpdXVtcYy1bOl1dKjopPyhbXGktWzpdXVtcYy1bOl1dKnxcKikpKXxcLikoLygoKGNoaWxkOjopPygoW1xpLVs6XV1bXGMtWzpdXSo6KT8oW1xpLVs6XV1bXGMtWzpdXSp8XCopKSl8XC4pKSopKgorYTogT2sKK2ExMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjM6IE9rCisqOiBPaworYXxiOiBPaworLi8vYTpiOiBPaworYS9iL2M6IE9rCithLyovYjogT2sKK2E6Ki9iOiovYzoqOiBPaworY2hpbGQ6OmEvY2hpbGQ6OmI6KjogT2sKK2NoaWxkOjphL2NoaWxkOjpiOip8YS8qL2J8Li8vYTpiOiBPaworMTogRmFpbAorMWFiOiBGYWlsCithOjE6IEZhaWwKK0BhOiBGYWlsCithbmNlc3Rvcjo6YTogRmFpbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDI4MzZfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzAyODM2XzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzAyODM2XzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzAyODM2XzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDI4MzZfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZhZTQzYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzAyODM2XzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nLzMwMjgzNl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzAyODM2X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzAyODM2X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWIyZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDI4MzZfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nLzMwMjgzNi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwMjgzNl92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzAyODM2X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwMjgzNl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3XzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3XzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3XzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY0NjViYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3XzAuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvMzA3Mzc3XzAueG1sOjE6IGVsZW1lbnQgbnVtYmVyOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgbnVtYmVyIGZhaWxlZCB0byB2YWxpZGF0ZSBhdHRyaWJ1dGVzCisuL3Rlc3QvcmVsYXhuZy8zMDczNzdfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwNzM3N18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwNzM3N18xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwNzM3N18xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZmI1MzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwNzM3N18xLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9yZWxheG5nLzMwNzM3N18xLnhtbDoxOiBlbGVtZW50IG51bWJlcjogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFeHRyYSBkYXRhIGluIGxpc3Q6IGEKKy4vdGVzdC9yZWxheG5nLzMwNzM3N18xLnhtbDoxOiBlbGVtZW50IG51bWJlcjogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IG51bWJlciBmYWlsZWQgdG8gdmFsaWRhdGUgYXR0cmlidXRlcworLi90ZXN0L3JlbGF4bmcvMzA3Mzc3XzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwNzM3N18yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwNzM3N18yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNThlYTQyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvMzA3Mzc3XzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MDVlYWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzMwNzM3N19lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvMzA3Mzc3LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy8zMDczNzdfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvMzA3Mzc3X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN18wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy80OTIzMTdfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy80OTIzMTdfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy80OTIzMTdfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN18wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjhkYjE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy80OTIzMTdfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvNDkyMzE3XzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy80OTIzMTdfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy80OTIzMTdfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc3ZWU3YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nLzQ5MjMxN18xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3XzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN18yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN18yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN18yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3XzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4YjIyZTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN18yLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9yZWxheG5nLzQ5MjMxN18yLnhtbDoyOiBlbGVtZW50IGNoaWxkOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgY2hpbGQgZmFpbGVkIHRvIHZhbGlkYXRlIGF0dHJpYnV0ZXMKKy4vdGVzdC9yZWxheG5nLzQ5MjMxN18yLnhtbDoxOiBlbGVtZW50IHJvb3Q6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCByb290IGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy80OTIzMTdfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjA3NTM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy80OTIzMTdfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nLzQ5MjMxNy5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN192YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNDkyMzE3X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzQ5MjMxN192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVjYzNlOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nLzU1ODQ1Ml8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMjI1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8xLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9yZWxheG5nLzU1ODQ1Ml8xLnhtbDoyOiBlbGVtZW50IGRvYzogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFeHBlY3RpbmcgYW4gZWxlbWVudCAsIGdvdCBub3RoaW5nCisuL3Rlc3QvcmVsYXhuZy81NTg0NTJfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0ODI4N2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy81NTg0NTJfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfMwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDMzY2RiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfMy5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvNTU4NDUyXzMueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJlMTJmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyXzQuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvNTU4NDUyXzQueG1sOjY6IGVsZW1lbnQgZWxlbTogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBEaWQgbm90IGV4cGVjdCBlbGVtZW50IGVsZW0gdGhlcmUKKy4vdGVzdC9yZWxheG5nLzU1ODQ1Ml80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxNjI4NDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU1ODQ1Ml9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvNTU4NDUyLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81NTg0NTJfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTU4NDUyX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU5NTc5Mi1leHRfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTItZXh0X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTJmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTItZXh0X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy81OTU3OTItZXh0LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTk1NzkyLWV4dF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTk1NzkyLWV4dF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTItZXh0X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU5NTc5Ml8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTJfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTJfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTJfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU5NTc5Ml8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmQ3M2NkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTJfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvNTk1NzkyXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTJfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZjMxOTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nLzU5NTc5Ml9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvNTk1NzkyLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTk1NzkyX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy81OTU3OTJfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvNTk1NzkyX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL09wZW5Eb2N1bWVudFN1Yl8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL09wZW5Eb2N1bWVudFN1Yl8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWM2OTE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvT3BlbkRvY3VtZW50U3ViXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MWQ2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL09wZW5Eb2N1bWVudFN1Yl9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvT3BlbkRvY3VtZW50U3ViLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvT3BlbkRvY3VtZW50U3ViX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvT3BlbkRvY3VtZW50U3ViX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2FkZHJlc3NCb29rX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvYWRkcmVzc0Jvb2tfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NGQ1NWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2FkZHJlc3NCb29rX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9hZGRyZXNzQm9vay5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2FkZHJlc3NCb29rX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9hZGRyZXNzQm9va192YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9hZGRyZXNzQm9va192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTk4ZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2Nob2ljZTBfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMjE0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvY2hvaWNlMF8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTliZDNjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODIzNDVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzMuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2Nob2ljZTBfMy54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF80Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjYTE0NWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNC5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzQueG1sOjE6IGVsZW1lbnQgZGV2aWNlOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZGV2aWNlIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzQueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF81Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzUuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4ZGQxYzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNS5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzUueG1sOjE6IGVsZW1lbnQgZGV2aWNlOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZGV2aWNlIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzUueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF82Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzYuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzYuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYWNiMDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNi5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzYueG1sOjE6IGVsZW1lbnQgZGV2aWNlOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZGV2aWNlIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzYueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF83Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzcuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzcuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5YjllMzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfNy5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzcueG1sOjE6IGVsZW1lbnQgZGV2aWNlOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IERpZCBub3QgZXhwZWN0IGVsZW1lbnQgdW5rbm93bi1lbGVtZW50IHRoZXJlCisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzcueG1sOjE6IGVsZW1lbnQgZGV2aWNlOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZGV2aWNlIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzcueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfOCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF84Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfOApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzguZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwXzguZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwOTRlY2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfOC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzgueG1sOjE6IGVsZW1lbnQgZGV2aWNlOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IERpZCBub3QgZXhwZWN0IGVsZW1lbnQgdW5rbm93bi1lbGVtZW50IHRoZXJlCisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzgueG1sOjE6IGVsZW1lbnQgZGV2aWNlOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZGV2aWNlIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzgueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2Nob2ljZTBfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjEyNDMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9jaG9pY2UwLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY2hvaWNlMF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jaG9pY2UwX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2NvbXBhcmUwXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2NvbXBhcmUwXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcGFyZTBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wYXJlMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcGFyZTBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyOGYyNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcGFyZTBfMC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvcmVsYXhuZy9jb21wYXJlMF8wLnhtbDoyOiBlbGVtZW50IG51bWJlcjogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBmYWlsZWQgdG8gY29tcGFyZSB0eXBlIGludGVnZXIKKy4vdGVzdC9yZWxheG5nL2NvbXBhcmUwXzAueG1sOjI6IGVsZW1lbnQgbnVtYmVyOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgbnVtYmVyIGZhaWxlZCB0byB2YWxpZGF0ZSBhdHRyaWJ1dGVzCisuL3Rlc3QvcmVsYXhuZy9jb21wYXJlMF8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wYXJlMF9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2NvbXBhcmUwX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDNkNzM0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wYXJlMF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvY29tcGFyZTAucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wYXJlMF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcGFyZTBfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcGFyZTBfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcHNfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcHNfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wc18wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2NvbXBzXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wc18wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGVmZTYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wc18wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9jb21wc18wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcHNfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9jb21wc19lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdkZDQwMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcHNfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2NvbXBzLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvY29tcHNfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2NvbXBzX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2NvbXBzX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RlbW8yX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZGVtbzJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliZGFlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RlbW8yX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9kZW1vMi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RlbW8yX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kZW1vMl92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kZW1vMl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kZW1vM19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RlbW8zX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2NlZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kZW1vM19lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvZGVtbzMucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kZW1vM192YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZGVtbzNfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZGVtbzNfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZGVtb19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RlbW9fZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMzk3ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RlbW9fZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2RlbW8ucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kZW1vX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kZW1vX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RlbW9fdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZG9jYm9va18wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kb2Nib29rXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZG9jYm9va18wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RvY2Jvb2tfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RvY2Jvb2tfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThkMTk3MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZG9jYm9va18wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9kb2Nib29rXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9kb2Nib29rX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZG9jYm9va19lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODEyNDAxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZG9jYm9va19lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvZG9jYm9vay5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RvY2Jvb2tfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2RvY2Jvb2tfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZG9jYm9va192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9lbXB0eTBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkwXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkwXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkwXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9lbXB0eTBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdkMGM5ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkwXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2VtcHR5MF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkwX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkwX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDA2MGNmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9lbXB0eTBfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2VtcHR5MC5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkwX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MF92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9lbXB0eTFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkxXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkxXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkxXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9lbXB0eTFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMxYTlhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkxXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2VtcHR5MV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkxXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkxXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNzFiYjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9lbXB0eTFfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUyZDk1YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvZW1wdHkxX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9lbXB0eTEucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9lbXB0eTFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2VtcHR5MV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9lbXB0eTFfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW5saW5lMl9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZTJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNzQwOGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZTJfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2lubGluZTIucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9pbmxpbmUyX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9pbmxpbmUyX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZTJfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW5saW5lM19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZTNfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjZWNjYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZTNfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2lubGluZTMucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9pbmxpbmUzX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9pbmxpbmUzX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZTNfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW5saW5lX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW5saW5lX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmEwZTVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9pbmxpbmVfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2lubGluZS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZV92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW5saW5lX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2lubGluZV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9pbnRlcmxlYXZlMF8wX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW50ZXJsZWF2ZTBfMF9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ4NjVlYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW50ZXJsZWF2ZTBfMF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvaW50ZXJsZWF2ZTBfMC5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2ludGVybGVhdmUwXzBfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2ludGVybGVhdmUwXzBfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW50ZXJsZWF2ZTBfMF92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9pbnRlcmxlYXZlMV8wX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW50ZXJsZWF2ZTFfMF9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgwMjM1MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW50ZXJsZWF2ZTFfMF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvaW50ZXJsZWF2ZTFfMC5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2ludGVybGVhdmUxXzBfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2ludGVybGVhdmUxXzBfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvaW50ZXJsZWF2ZTFfMF92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saWJ2aXJ0XzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpYnZpcnRfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saWJ2aXJ0XzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlidmlydF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlidmlydF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTUzNWI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saWJ2aXJ0XzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL2xpYnZpcnRfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpYnZpcnRfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saWJ2aXJ0X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWNmM2VkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saWJ2aXJ0X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9saWJ2aXJ0LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlidmlydF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlidmlydF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saWJ2aXJ0X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpc3RfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlzdF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpc3RfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saXN0XzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saXN0XzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjOGNhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpc3RfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvbGlzdF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlzdF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saXN0XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlzdF8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpc3RfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpc3RfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FlMzVhZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlzdF8xLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9yZWxheG5nL2xpc3RfMS54bWw6MTogZWxlbWVudCBlbGVtMTogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGVsZW0xIGZhaWxlZCB0byB2YWxpZGF0ZSBhdHRyaWJ1dGVzCisuL3Rlc3QvcmVsYXhuZy9saXN0XzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL2xpc3RfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saXN0X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDhlMjFiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saXN0X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9saXN0LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlzdF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvbGlzdF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9saXN0X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3BhdHRlcm4xX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcGF0dGVybjFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NTY0NDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3BhdHRlcm4xX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9wYXR0ZXJuMS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3BhdHRlcm4xX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuMV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuMl9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3BhdHRlcm4yX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2NjYzU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuMl9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvcGF0dGVybjIucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9wYXR0ZXJuMl92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcGF0dGVybjJfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcGF0dGVybjJfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcHJvb2ZzeXN0ZW1fZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9wcm9vZnN5c3RlbV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZiY2ZkYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcHJvb2ZzeXN0ZW1fZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3Byb29mc3lzdGVtLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcHJvb2ZzeXN0ZW1fdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3Byb29mc3lzdGVtX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3Byb29mc3lzdGVtX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3JuZ2J1Zy0wMDFfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9ybmdidWctMDAxX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzMwMTUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9ybmdidWctMDAxX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9ybmdidWctMDAxLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcm5nYnVnLTAwMV92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvcm5nYnVnLTAwMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9ybmdidWctMDAxX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3NwZWMxXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3NwZWMxXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlYzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlYzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyMTNhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlYzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvc3BlYzFfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3NwZWMxX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlYzFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NTFjMWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3NwZWMxX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9zcGVjMS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3NwZWMxX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjMV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3NwZWNfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlY18wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlY18wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjMwZThhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3NwZWNfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3NwZWNfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzMzNmUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy9zcGVjLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlY192YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvc3BlY192YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy9zcGVjX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3RhYmxlX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdGFibGVfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZTc5OTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3RhYmxlX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90YWJsZS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3RhYmxlX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90YWJsZV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90YWJsZV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzEwXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMTBfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzEwXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xMF8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzcwZmYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzEwXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMTBfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMTBfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzEwX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGE1ZjdlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzEwX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzEwLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xMF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xMF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzEwX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjFlMWU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA5MmQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMV8yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV8zCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjNWI2OGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV8zLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfMy54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV80IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV80LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDMwZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNC5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfNC54bWw6MTogZWxlbWVudCBmb286IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRXhwZWN0aW5nIGEgbmFtZXNwYWNlIGZvciBlbGVtZW50IGZvbworLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzQueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV81IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV81LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWI4ZDkwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNS5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfNS54bWw6MTogZWxlbWVudCBmb286IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBmb28gaGFzIHdyb25nIG5hbWVzcGFjZTogZXhwZWN0aW5nIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20KKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMV81LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzYuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfNi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FmZWIxNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xXzYuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzYueG1sOjE6IGVsZW1lbnQgZm9vOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZm9vIGhhcyB3cm9uZyBuYW1lc3BhY2U6IGV4cGVjdGluZyBodHRwOi8vd3d3LmV4YW1wbGUuY29tCisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfNi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWJlM2JlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzFfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8xX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM2ZGJmNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMl8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl8yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNmNlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl8yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfMwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmYyYTgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfMy5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfMy54bWw6MTogZWxlbWVudCBmb286IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRXhwZWN0aW5nIG5vIG5hbWVzcGFjZSBmb3IgZWxlbWVudCBmb28KKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMl8zLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcxNmI5YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yXzQuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF8yXzQueG1sOjE6IGVsZW1lbnQgZm9vOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEV4cGVjdGluZyBubyBuYW1lc3BhY2UgZm9yIGVsZW1lbnQgZm9vCisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfNC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2UzMmE2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzJfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8yX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfMl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzNfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8zXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8zXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8zXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzNfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5YTNiMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8zXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfM18xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8zX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8zX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzcxNGFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzNfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfMy5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfM192YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF8zX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfM192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzRfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF80XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF80XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF80XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzRfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMzYzVlZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF80XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfNF8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF80X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF80X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjA4MTM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzRfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfNC5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfNF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF80X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfNF92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzVfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF81XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF81XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF81XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzVfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIwYmQ5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF81XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfNV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF81X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF81X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTgwOGNmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzVfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfNS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfNV92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF81X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfNV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzZfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF82XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF82XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF82XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzZfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZlZDhmNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF82XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfNl8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF82X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF82X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTM2OGMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzZfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfNi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfNl92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF82X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfNl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF83XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF83XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF83XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJhYWI1MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF83XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfN18xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF83XzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN18yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN18yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN18yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF83XzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MTg5ODgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN18yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzdfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN18zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfMwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN18zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTNkZmFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfMy5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzdfMy54bWw6MjogZWxlbWVudCBjYXJkOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgY2FyZCBmYWlsZWQgdG8gdmFsaWRhdGUgYXR0cmlidXRlcworLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF83XzMueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN19lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDgxYTIzMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF83X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzcucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfN192YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzdfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOF8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MTIxMDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOF8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjEwXzhfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOF8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOF8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmVjZjg2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF84XzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84XzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84XzMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84XzMuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWUwZWI1NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84XzMuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF84XzMueG1sOjI6IGVsZW1lbnQgY2FyZDogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGNhcmQgZmFpbGVkIHRvIHZhbGlkYXRlIGF0dHJpYnV0ZXMKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTBfOF8zLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhODY0Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF84LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzhfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF84X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzlfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzlfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzlfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTgyODg3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzlfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF85XzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzlfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzlfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MjA1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTBfOV9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMF85LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF85X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEwXzlfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMF85X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODI4M2ZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMV8xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8xXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8xXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8xXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJhNzJmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8xXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTFfMV8yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8xXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV8zCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8xXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMTljYzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV8zLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjExXzFfMy54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgzNDdmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8xX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjExXzEucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzFfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8yXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8yXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYzYwZWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjExXzJfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzJfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzJfMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzJfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGFiYmEwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzJfMi5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjExXzJfMi54bWw6MzogZWxlbWVudCBjYXJkOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEludmFsaWQgYXR0cmlidXRlIGZvbyBmb3IgZWxlbWVudCBjYXJkCisuL3Rlc3QvcmVsYXhuZy90dXRvcjExXzJfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8yXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8zCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8yXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwN2VhNzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl8zLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTFfMl8zLnhtbDozOiBlbGVtZW50IGNhcmQ6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogSW52YWxpZCBhdHRyaWJ1dGUgYiBmb3IgZWxlbWVudCBjYXJkCisuL3Rlc3QvcmVsYXhuZy90dXRvcjExXzJfMy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8yX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8yX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjk0YzEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzJfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMTFfMi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8yX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfMl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzNfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8zXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8zXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8zXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzNfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU5ZGIzMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8zXzEuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMV8zLnJuZzoxOiBlbGVtZW50IGVsZW1lbnQ6IFJlbGF4LU5HIHBhcnNlciBlcnJvciA6IEF0dHJpYnV0ZXMgY29uZmxpY3RzIGluIGdyb3VwCitSZWxheC1ORyBzY2hlbWEgLi90ZXN0L3JlbGF4bmcvdHV0b3IxMV8zLnJuZyBmYWlsZWQgdG8gY29tcGlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzNfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzNfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0ZDlkNDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfM19lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMV8zLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8zX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzNfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV8zX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfNF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzRfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzRfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzRfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfNF8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmFlZDVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzRfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMV80XzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzRfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzRfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwYTgzMzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTFfNF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMV80LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV80X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjExXzRfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMV80X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTJfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEyXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEyXzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEyXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTJfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWIyMGQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEyXzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMl8xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEyXzFfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEyXzFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMmZiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTJfMV9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxMl8xLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMl8xX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEyXzFfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxMl8xX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTNfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEzXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEzXzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEzXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTNfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTNmMmFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEzXzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxM18xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEzXzFfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEzXzFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZDExYWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTNfMV9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxM18xLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxM18xX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjEzXzFfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxM18xX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTRfMV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTRfMV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkxZWMzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxNF8xX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjE0XzEucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjE0XzFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMTRfMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjE0XzFfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfMV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8xXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjc2N2YyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfMV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjFfMV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzFfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfMV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdjYmZlOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzFfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMV8xLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8xX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8xX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8yXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8yXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzJfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfMl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzJfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRjMzY5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzJfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxXzJfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8yX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZDMyYjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8yX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjFfMi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8yX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfMl92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfMl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfM18xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfM18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8zXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzNfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8zXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMTE2ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8zXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMV8zXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfM19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV8zX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTQxZjhmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfM19lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IxXzMucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfM192YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzNfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzNfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzRfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzRfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfNF8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV80XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfNF8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGMzNWU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfNF8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjFfNF8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzRfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjFfNF9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFmZDYwYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzRfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yMV80LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IxXzRfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV80X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMV80X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMl8xXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMl8xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IyXzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjJfMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IyXzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRhNzYzMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IyXzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IyXzFfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMl8xX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IyXzFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNDc3OGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMl8xX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjJfMS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yMl8xX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjJfMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjJfMV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18xXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18xXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNWYxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18xXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM18xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMV8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMV8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18xXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzFfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18xXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMjY0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18xXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM18xXzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18xX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDllZjlhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMV9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzEucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMV92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzFfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzFfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzJfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzJfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMl8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18yXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMl8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODAyNTBhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMl8xLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM18yXzEueG1sOjE6IGVsZW1lbnQgZW1haWw6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRGlkIG5vdCBleHBlY3QgZWxlbWVudCBlbWFpbCB0aGVyZQorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzJfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzJfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfMl9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZjYjFhZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzJfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM18yLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzJfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18yX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18yX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18zXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18zXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzNfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfM18xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzNfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NkNWUwNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzNfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzNfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18zX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzNfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZTgzYjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18zX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjNfMy5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM18zX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfM192YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfM192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM180XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzRfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM180XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyOTU2ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM180XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM180XzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNF9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM180X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWVmNDFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzQucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzRfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzRfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzVfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzVfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM181XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTViMTYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjNfNV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzVfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzVfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNV8yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM181XzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNV8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmU2NjI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNV8yLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM181XzIueG1sOjI6IGVsZW1lbnQgZW1haWw6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRXhwZWN0aW5nIGVsZW1lbnQgbmFtZSwgZ290IGVtYWlsCisuL3Rlc3QvcmVsYXhuZy90dXRvcjNfNV8yLnhtbDoyOiBlbGVtZW50IGVtYWlsOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgY2FyZCBmYWlsZWQgdG8gdmFsaWRhdGUgY29udGVudAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzVfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzVfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUzNjg2OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzVfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM181LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzVfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM181X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM181X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM182XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM182XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzZfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzZfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE2NDU2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzZfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzZfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM182X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzZfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NzliZWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM182X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjNfNi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM182X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNl92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfNl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfN18xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfN18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM183XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzdfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM183XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YjIxMzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM183XzEuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzcucm5nOjE6IGVsZW1lbnQgZWxlbWVudDogUmVsYXgtTkcgcGFyc2VyIGVycm9yIDogeG1sUmVsYXhOR1BhcnNlRWxlbWVudDogZWxlbWVudCBoYXMgbm8gY29udGVudAorUmVsYXgtTkcgc2NoZW1hIC4vdGVzdC9yZWxheG5nL3R1dG9yM183LnJuZyBmYWlsZWQgdG8gY29tcGlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfN19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM183X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTQ2MTMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfN19lcnIKQEAgLTAsMCArMSw0IEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjNfNy5ybmc6MTogZWxlbWVudCBlbGVtZW50OiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEV4cGVjdGluZyBhbiBlbGVtZW50ICwgZ290IG5vdGhpbmcKKy4vdGVzdC9yZWxheG5nL3R1dG9yM183LnJuZzoxOiBlbGVtZW50IGVsZW1lbnQ6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogSW52YWxpZCBzZXF1ZW5jZSBpbiBpbnRlcmxlYXZlCisuL3Rlc3QvcmVsYXhuZy90dXRvcjNfNy5ybmc6MTogZWxlbWVudCBlbGVtZW50OiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgZWxlbWVudCBmYWlsZWQgdG8gdmFsaWRhdGUgY29udGVudAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzcucm5nIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM183X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfN192YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfN192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM184XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzhfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM184XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ODk0YTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM184XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM184XzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOF9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM184X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGZlNzVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3IzXzgucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzhfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzhfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzlfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzlfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM185XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWU1MGMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjNfOV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzlfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjNfOV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU0ZmJlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzlfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yM185LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3IzXzlfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM185X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yM185X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8xXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhmNDM2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I0XzFfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8xX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZjAyODkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8xX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfMS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8xX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMl8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMl8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8yXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzJfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8yXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NGRjYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8yXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNF8yXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMl9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8yX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjA4NWQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMl9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I0XzIucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfMl92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzJfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzJfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmYzYWZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfM18xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2VlZmZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfM18yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18zCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zXzMuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWU5ODExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM18zLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfM18zLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM180CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zXzQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM180LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTUwMDQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM180LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfM180LnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM181CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zXzUuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM181LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjc2NDgwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM181LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfM181LnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM182CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zXzYuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM182LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjgwYTgxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM182LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfM182LnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfM19lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRlYjhiMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNF8zLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzNfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF8zX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF80XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF80XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzRfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfNF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzRfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk1YmQ2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzRfMS5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfNC5ybmc6MjU6IGVsZW1lbnQgcmVmOiBSZWxheC1ORyBwYXJzZXIgZXJyb3IgOiBEZXRlY3RlZCBhIGN5Y2xlIGluIGlubGluZSByZWZlcmVuY2VzCitSZWxheC1ORyBzY2hlbWEgLi90ZXN0L3JlbGF4bmcvdHV0b3I0XzQucm5nIGZhaWxlZCB0byBjb21waWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF80X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I0XzRfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MWVlODcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF80X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjRfNC5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNF80X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfNF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjRfNF92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8xXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8xXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YzI4NDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8xXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNV8xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8xX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODZmZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMV9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I1XzEucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMV92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzFfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzFfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzJfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzJfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMl8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8yXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMl8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjRkZjNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMl8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjVfMl8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzJfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfMl9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU4ZjQyMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzJfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNV8yLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzJfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8yX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8yX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8zXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8zXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzNfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfM18xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzNfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJmNDM3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzNfMS5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjVfMy5ybmc6MTogZWxlbWVudCBlbGVtZW50OiBSZWxheC1ORyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50IGJhZCBoYXMgYSBjb250ZW50IHR5cGUgZXJyb3IKK1JlbGF4LU5HIHNjaGVtYSAuL3Rlc3QvcmVsYXhuZy90dXRvcjVfMy5ybmcgZmFpbGVkIHRvIGNvbXBpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzNfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfM19lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAwYTU0MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzNfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNV8zLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzNfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8zX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV8zX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV80XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV80XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzRfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfNF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzRfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNhYzliYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzRfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I1XzRfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV80X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzRfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2OWI0MWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV80X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjVfNC5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV80X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfNF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfNF92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfNV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNV81X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjlmMGY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfNV9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I1XzUucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjVfNV92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzVfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I1XzVfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzQ0NjYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjZfMV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzcwZmVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjZfMV8yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8zCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xXzMuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGY2ZTdmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV8zLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8xXzMueG1sOjE6IGVsZW1lbnQgY2FyZDogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGNhcmQgZmFpbGVkIHRvIHZhbGlkYXRlIGF0dHJpYnV0ZXMKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8xXzMueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xXzQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xXzQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfNApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDliMjI5MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfNC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I2XzFfNC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xXzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfNQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV81LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfNS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYwMWQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfNS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I2XzFfNS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NDA4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjZfMS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8xX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzJfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwNzgwN2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8yXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzJfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmMTAwNzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8yXzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzJfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NjAyZDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzMuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8yXzMueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl80IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl80Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzJfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyOGFjMjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yXzQuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I2XzJfNC54bWw6NDogZWxlbWVudCBwcmVmZXJyZWRGb3JtYXQ6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRXJyb3IgdmFsaWRhdGluZyB2YWx1ZSAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8yXzQueG1sOjQ6IGVsZW1lbnQgcHJlZmVycmVkRm9ybWF0OiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgcHJlZmVycmVkRm9ybWF0IGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy90dXRvcjZfMl80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8yX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTc4ZWM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I2XzIucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfMl92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzJfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzJfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzNfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzNfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfM18xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8zXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfM18xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWY3MjFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfM18xLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8zXzEueG1sOjE6IGVsZW1lbnQgY2FyZDogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGNhcmQgZmFpbGVkIHRvIHZhbGlkYXRlIGF0dHJpYnV0ZXMKKy4vdGVzdC9yZWxheG5nL3R1dG9yNl8zXzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8zX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I2XzNfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ZGJlNTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8zX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjZfMy5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yNl8zX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfM192YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjZfM192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjYWU1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NWY0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzIuZXJyCkBAIC0wLDAgKzEsNCBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMi54bWw6MTogZWxlbWVudCB2ZWN0b3I6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogZmFpbGVkIHRvIHZhbGlkYXRlIHR5cGUgZmxvYXQKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18xXzIueG1sOjE6IGVsZW1lbnQgdmVjdG9yOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVycm9yIHZhbGlkYXRpbmcgbGlzdAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMi54bWw6MTogZWxlbWVudCB2ZWN0b3I6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCB2ZWN0b3IgZmFpbGVkIHRvIHZhbGlkYXRlIGNvbnRlbnQKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18xXzIueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfMwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBmYjhmOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfMy5lcnIKQEAgLTAsMCArMSw0IEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfMV8zLnhtbDoxOiBlbGVtZW50IHZlY3RvcjogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFeHRyYSBkYXRhIGluIGxpc3Q6IDUuNgorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMy54bWw6MTogZWxlbWVudCB2ZWN0b3I6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRXJyb3IgdmFsaWRhdGluZyBsaXN0CisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfMV8zLnhtbDoxOiBlbGVtZW50IHZlY3RvcjogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IHZlY3RvciBmYWlsZWQgdG8gdmFsaWRhdGUgY29udGVudAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV80CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xXzQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV80LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWI5ZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV80LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfMV80LnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNkMjczZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18xLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18xX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY3MzQ2MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzJfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMl8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAzY2IzMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzJfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMl8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFmMTE5MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfMy5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzJfMy54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yXzQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfNApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMl80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFjMjJhOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfNC5lcnIKQEAgLTAsMCArMSw0IEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfMl80LnhtbDoxOiBlbGVtZW50IHZlY3RvcjogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBmYWlsZWQgdG8gdmFsaWRhdGUgdHlwZSBkb3VibGUKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18yXzQueG1sOjE6IGVsZW1lbnQgdmVjdG9yOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVycm9yIHZhbGlkYXRpbmcgbGlzdAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzJfNC54bWw6MTogZWxlbWVudCB2ZWN0b3I6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCB2ZWN0b3IgZmFpbGVkIHRvIHZhbGlkYXRlIGNvbnRlbnQKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18yXzQueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlYzUyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfMi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18yX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMl92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfMl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM18xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwOTZiNTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18zXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM18yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM18yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZTM5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18zXzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM18zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM18zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MTk2NzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzMuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18zXzMueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM180IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM180Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwNTMxZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzQuZXJyCkBAIC0wLDAgKzEsNCBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfNC54bWw6MTogZWxlbWVudCBwYXRoOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEV4dHJhIGRhdGEgaW4gbGlzdDogNS42CisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfM180LnhtbDoxOiBlbGVtZW50IHBhdGg6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRXJyb3IgdmFsaWRhdGluZyBsaXN0CisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfM180LnhtbDoxOiBlbGVtZW50IHBhdGg6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBwYXRoIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy90dXRvcjdfM180LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM181IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM181Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMWE2OGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zXzUuZXJyCkBAIC0wLDAgKzEsNCBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfNS54bWw6MTogZWxlbWVudCBwYXRoOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IGZhaWxlZCB0byB2YWxpZGF0ZSB0eXBlIGRvdWJsZQorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfNS54bWw6MTogZWxlbWVudCBwYXRoOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVycm9yIHZhbGlkYXRpbmcgbGlzdAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfNS54bWw6MTogZWxlbWVudCBwYXRoOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgcGF0aCBmYWlsZWQgdG8gdmFsaWRhdGUgY29udGVudAorLi90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfNS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjdfM19lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYxYzVhMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yN18zLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I3XzNfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yN18zX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8xXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzFfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc4YzM5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I4XzFfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8xXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8xXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzFfMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMV8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzFfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFjMTYxMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzFfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I4XzFfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8xX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzFfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ZjZjZTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8xX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjhfMS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8xX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNmIzZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOF8yXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmOTU5YjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOF8yXzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxYWJlOTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzMuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOF8yXzMueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl80IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl80Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwYTA4YjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzQuZXJyCkBAIC0wLDAgKzEsMyBAQAorUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFeHRyYSBlbGVtZW50IHRpdGxlIGluIGludGVybGVhdmUKKy4vdGVzdC9yZWxheG5nL3R1dG9yOF8yXzQueG1sOjU6IGVsZW1lbnQgdGl0bGU6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBoZWFkIGZhaWxlZCB0byB2YWxpZGF0ZSBjb250ZW50CisuL3Rlc3QvcmVsYXhuZy90dXRvcjhfMl80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl81IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl81Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMTVkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzUuZXJyCkBAIC0wLDAgKzEsNCBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfNS54bWw6MTogZWxlbWVudCBoZWFkOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEV4cGVjdGluZyBhbiBlbGVtZW50IHRpdGxlLCBnb3Qgbm90aGluZworLi90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfNS54bWw6MTogZWxlbWVudCBoZWFkOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEludmFsaWQgc2VxdWVuY2UgaW4gaW50ZXJsZWF2ZQorLi90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfNS54bWw6MTogZWxlbWVudCBoZWFkOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgaGVhZCBmYWlsZWQgdG8gdmFsaWRhdGUgY29udGVudAorLi90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfNS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl82CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yXzYuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl82LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTU5NzY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl82LmVycgpAQCAtMCwwICsxLDMgQEAKK1JlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRXh0cmEgZWxlbWVudCBiYXNlIGluIGludGVybGVhdmUKKy4vdGVzdC9yZWxheG5nL3R1dG9yOF8yXzYueG1sOjQ6IGVsZW1lbnQgYmFzZTogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGhlYWQgZmFpbGVkIHRvIHZhbGlkYXRlIGNvbnRlbnQKKy4vdGVzdC9yZWxheG5nL3R1dG9yOF8yXzYueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhM2RjYjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjhfMi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8yX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfMl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfM18xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfM18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8zXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzNfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8zXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNjM3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8zXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOF8zXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfM19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOF8zX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWM2MTg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfM19lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I4XzMucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjhfM192YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzNfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I4XzNfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzEwXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMF8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzEwXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNjExN2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMF8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMTBfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMF9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMF9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThhN2NiNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzEwX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMTAucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMTBfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMF92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMTBfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzExXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzExXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYTFmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMTFfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRkOThiZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzExX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMTEucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMTFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMTFfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzEyXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMl8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMl8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzEyXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZjJhOGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMl8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMTJfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMl9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMl9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg4MTczMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzEyX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMTIucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMTJfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xMl92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMTJfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmQwM2QxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzFfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJjNWYzNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzFfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV8xLnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xX3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8xX3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8yXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8yXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzJfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzJfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmMxNzRmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzJfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5XzJfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8yXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8yXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzJfMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMl8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzJfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA3YWEwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzJfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5XzJfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8yX2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzJfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzYzM0ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8yX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfMi5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8yX3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMl92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfMl92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfM18xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfM18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8zXzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzNfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8zXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwYWMyNGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8zXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV8zXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfM18yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfM18yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8zXzIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzNfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8zXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNjFjOTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8zXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV8zXzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfM19lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV8zX2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTgyZjhlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfM19lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5XzMucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfM192YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzNfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzNfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzRfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzRfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNF8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV80XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNF8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTRlYjk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNF8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNF8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzRfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzRfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNF8yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV80XzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNF8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTc4MGRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNF8yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNF8yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzRfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNF9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJkMDg3ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzRfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV80LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzRfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV80X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV80X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRmNWQ2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5XzVfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81XzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81XzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNV8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM4NDYxNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfMi5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNV8yLnhtbDoyOiBlbGVtZW50IGNhcmQ6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogSW52YWxpZCBzZXF1ZW5jZSBpbiBpbnRlcmxlYXZlCisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNV8yLnhtbDoyOiBlbGVtZW50IGNhcmQ6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCBjYXJkIGZhaWxlZCB0byB2YWxpZGF0ZSBhdHRyaWJ1dGVzCisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNV8yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNV8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNV8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81XzMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81XzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNWQwYWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81XzMuZXJyCkBAIC0wLDAgKzEsMiBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5XzVfMy54bWw6MjogZWxlbWVudCBjYXJkOiBSZWxheC1ORyB2YWxpZGl0eSBlcnJvciA6IEludmFsaWQgYXR0cmlidXRlIGVycm9yIGZvciBlbGVtZW50IGNhcmQKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV81XzMueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzVfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ZGRkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNS5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV81X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNV92YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNi5ybmcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV82LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2U2NDkyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNi5ybmcKQEAgLTAsMCArMSwyNCBAQAorPGdyYW1tYXI+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIj4KKyAgICAgIDx6ZXJvT3JNb3JlPgorCTxlbGVtZW50IG5hbWU9ImNhcmQiPgorCSAgPHJlZiBuYW1lPSJjYXJkLmF0dGxpc3QiLz4KKwk8L2VsZW1lbnQ+CisgICAgICA8L3plcm9Pck1vcmU+CisgICAgPC9lbGVtZW50PgorICA8L3N0YXJ0PgorCisgIDxkZWZpbmUgbmFtZT0iY2FyZC5hdHRsaXN0Ij4KKyAgICA8Z3JvdXA+CisgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiPgorCTx0ZXh0Lz4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCI+CisJPHRleHQvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9ncm91cD4KKyAgPC9kZWZpbmU+CisKKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV82XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTcyNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNl8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl8yCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV82XzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2VjOTdmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl8yLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV82XzIueG1sOjI6IGVsZW1lbnQgY2FyZDogUmVsYXgtTkcgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50IGNhcmQgZmFpbGVkIHRvIHZhbGlkYXRlIGF0dHJpYnV0ZXMKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV82XzIueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV82XzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV82XzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfMwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZlNWY1NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfMy5lcnIKQEAgLTAsMCArMSwyIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNl8zLnhtbDoyOiBlbGVtZW50IGNhcmQ6IFJlbGF4LU5HIHZhbGlkaXR5IGVycm9yIDogSW52YWxpZCBhdHRyaWJ1dGUgZXJyb3IgZm9yIGVsZW1lbnQgY2FyZAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5XzZfMy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfNl9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk3YTA5MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV82LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzZfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV82X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV82X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV83XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV83XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzdfMQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfN18xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzdfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBkMTUwMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzdfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5XzdfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV83X2VyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzdfZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNzEzMjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV83X2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfNy5ybmcgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV83X3ZhbGlkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfN192YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfN192YWxpZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV84XzEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzhfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV84XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NDlmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV84XzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV84XzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOF9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV84X2VycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWE5MjZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOF9lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3JlbGF4bmcvdHV0b3I5Xzgucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOF92YWxpZCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzhfdmFsaWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzhfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzlfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzlfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOV8xCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV85XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODhmMDFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvcjlfOV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzlfZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvcjlfOV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRhOTVmZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzlfZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9yZWxheG5nL3R1dG9yOV85LnJuZyB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3I5XzlfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV85X3ZhbGlkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yOV85X3ZhbGlkCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yQV9lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yQV9lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRhYjg5MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3JlbGF4bmcvdHV0b3JBX2VycgpAQCAtMCwwICsxIEBACisuL3Rlc3QvcmVsYXhuZy90dXRvckEucm5nIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvckFfdmFsaWQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9yZWxheG5nL3R1dG9yQV92YWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvcmVsYXhuZy90dXRvckFfdmFsaWQKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTcwNzAyXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTcwNzAyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTcxNmU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81NzA3MDJfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU3MDcwMl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTcwNzAyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3MDcwMl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3MDcwMl8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlhMjRmMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlM2QzOWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvNTc5NzQ2XzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMS5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTFlYWYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF8yCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU3OTc0Nl8yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzIuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YwNmJjNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMwpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNGMyNWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzMuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU3OTc0Nl8zLnhtbDo1OiBlbGVtZW50IGN1c3RvbWVyOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnY3VzdG9tZXInOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF80IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF80Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3NjMwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8wXzQKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvNTc5NzQ2XzQueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfNC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTczOGU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF81CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU3OTc0Nl81LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMF81LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfNS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU1NjgwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzBfNS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvNTc5NzQ2XzUueG1sOjU6IGVsZW1lbnQgY29tbWVudDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2NvbW1lbnQnOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YTI0ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvNTc5NzQ2XzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTNkMzlhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU3OTc0Nl8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzEuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTExZWFmMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfMgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8yLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMDZiYzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzMKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvNTc5NzQ2XzMueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzMuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTRjMjVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV8zLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMy54bWw6NTogZWxlbWVudCBjdXN0b21lcjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2N1c3RvbWVyJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzYzMDAxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81Nzk3NDZfMV80CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU3OTc0Nl80LnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzQuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE3MzhlNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfNQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy81Nzk3NDZfNS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTc5NzQ2XzFfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNTY4MGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU3OTc0Nl8xXzUuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU3OTc0Nl81LnhtbDo1OiBlbGVtZW50IGNvbW1lbnQ6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdjb21tZW50JzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTgyODg3XzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTgyODg3XzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWU4NDgyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81ODI4ODdfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzLzU4Mjg4N18wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTgyODg3XzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU4Mjg4N18wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU4Mjg4N18wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU4MjkwNi0xXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTgyOTA2LTFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYWJiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU4MjkwNi0xXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy81ODI5MDYtMV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTgyOTA2LTFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTgyOTA2LTFfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81ODI5MDYtMV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU4MjkwNi0yXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvNTgyOTA2LTJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU4MjkwNi0yXzBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81ODI5MDYtMl8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy81ODI5MDYtMl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZjgyMDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzLzU4MjkwNi0yXzBfMC5lcnIKQEAgLTAsMCArMSBAQAordGVzdC9zY2hlbWFzLzU4MjkwNi0yLXByb2cxLnhzZDo5OiBlbGVtZW50IGluY2x1ZGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWluY2x1ZGUnOiBUaGUgdGFyZ2V0IG5hbWVzcGFjZSAnaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMycgb2YgdGhlIGluY2x1ZGVkL3JlZGVmaW5lZCBzY2hlbWEgJ3Rlc3Qvc2NoZW1hcy81ODI5MDYtMi1jb21tb24ueHNkJyBkaWZmZXJzIGZyb20gJ2h0dHA6Ly9leGFtcGxlLmNvbS94bWwvUHJvZzEnIG9mIHRoZSBpbmNsdWRpbmcvcmVkZWZpbmluZyBzY2hlbWEuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbDFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGwxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjdjZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGwxXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGwxXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGwxXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbDFfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGwxXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGViMTA4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFmNGExYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8xLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYWY5MDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzIueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMi5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWEyYTRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8zCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF8zLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkzM2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfMy5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzMueG1sOjE6IGVsZW1lbnQgZG9jOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZG9jJzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLiBFeHBlY3RlZCBpcyAoIGMgKS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGQ4ODI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF80CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg0NmQxNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzQueG1sOjE6IGVsZW1lbnQgZG9jOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZG9jJzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLiBFeHBlY3RlZCBpcyBvbmUgb2YgKCBhLCBiLCBjICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjkzOWY2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfNS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4Y2E5YTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzUuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF81LnhtbDoxOiBlbGVtZW50IGE6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdhJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4gRXhwZWN0ZWQgaXMgKCBjICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM3MDVjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfNi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzBfNi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzYuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMWQ5MWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzYuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF82LnhtbDoxOiBlbGVtZW50IGRvYzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2RvYyc6IE1pc3NpbmcgY2hpbGQgZWxlbWVudChzKS4gRXhwZWN0ZWQgaXMgb25lIG9mICggYiwgYyApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF83IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF83Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNDRkMmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzcKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzcueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8wXzcuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF83LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWM1NDI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMF83LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfNy54bWw6MTogZWxlbWVudCBkb2M6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdkb2MnOiBNaXNzaW5nIGNoaWxkIGVsZW1lbnQocykuIEV4cGVjdGVkIGlzICggYyApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZWIxMDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWY0YTFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzEuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJhZjkwMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfMgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8yLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1YTJhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzMKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzMueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzMuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTMzZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV8zLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfMy54bWw6MTogZWxlbWVudCBkb2M6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdkb2MnOiBNaXNzaW5nIGNoaWxkIGVsZW1lbnQocykuIEV4cGVjdGVkIGlzICggYyApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV80IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV80Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYjIyYWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzQKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzQueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTM5ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV81CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF81LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV81LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhjYTlhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzUueG1sOjE6IGVsZW1lbnQgYTogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2EnOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLiBFeHBlY3RlZCBpcyAoIGMgKS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzcwNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV82CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF82LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMV82LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMxZDkxYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzYueG1sOjE6IGVsZW1lbnQgZG9jOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZG9jJzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLiBFeHBlY3RlZCBpcyBvbmUgb2YgKCBiLCBjICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE0NGQyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNwpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfNy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzFfNy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzcuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YzU0MjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8xXzcuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF83LnhtbDoxOiBlbGVtZW50IGRvYzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2RvYyc6IE1pc3NpbmcgY2hpbGQgZWxlbWVudChzKS4gRXhwZWN0ZWQgaXMgKCBjICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcwNjZlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZjg1OTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF8wLnhtbDoxOiBlbGVtZW50IGM6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdjJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmRhMWZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ4Y2I0OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzEueG1sOjE6IGVsZW1lbnQgYzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2MnOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLiBFeHBlY3RlZCBpcyAoIGEgKS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2RiNjQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl8yCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF8yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYwNDQ2MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzIueG1sOjE6IGVsZW1lbnQgYzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2MnOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxODZlODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzMKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzMueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfMy5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGQ4ODI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl80CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFkY2YxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsXzQueG1sOjE6IGVsZW1lbnQgZG9jOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZG9jJzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLiBFeHBlY3RlZCBpcyBvbmUgb2YgKCBhLCBiICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjkzOWY2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfNS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NTllYmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzUuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF81LnhtbDoxOiBlbGVtZW50IGE6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdhJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGE5NTk0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl82CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbF82LnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzYuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzYuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzcgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFkNGZjNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsXzJfNwpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbGxfNy54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbF8yXzcuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl83LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxfMl83LmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDc4ZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsc2dfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjNjZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsc2dfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF8xLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTNkZTUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsc2dfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF8yLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTgxNTJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzMKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsc2dfMy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjhhMzYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzMuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbHNnXzMueG1sOjY6IGVsZW1lbnQgZ20tQi0xOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne3Vybjp0ZXN0OmZvb31nbS1CLTEnOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLiBFeHBlY3RlZCBpcyBvbmUgb2YgKCB7dXJuOnRlc3Q6Zm9vfWdoLUEsIHt1cm46dGVzdDpmb299Z20tQS0xLCB7dXJuOnRlc3Q6Zm9vfWdtLUEtMiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmU2OWMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzQKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsc2dfNC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF80LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzIyODhkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzQuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbHNnXzQueG1sOjY6IGVsZW1lbnQgZ20tQS0xOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne3Vybjp0ZXN0OmZvb31nbS1BLTEnOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLiBFeHBlY3RlZCBpcyBvbmUgb2YgKCB7dXJuOnRlc3Q6Zm9vfWdoLUIsIHt1cm46dGVzdDpmb299Z20tQi0xLCB7dXJuOnRlc3Q6Zm9vfWdtLUItMiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FsbHNnXzBfNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjg5Y2YwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzUKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYWxsc2dfNS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF81LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYWxsc2dfMF81LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmExNDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbGxzZ18wXzUuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FsbHNnXzUueG1sOjc6IGVsZW1lbnQgZ20tQi0yOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne3Vybjp0ZXN0OmZvb31nbS1CLTInOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbm5vdC1lcnJfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbm5vdC1lcnJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Fubm90LWVycl8wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW5ub3QtZXJyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Fubm90LWVycl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4YzBjNzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Fubm90LWVycl8wXzAuZXJyCkBAIC0wLDAgKzEsNyBAQAorLi90ZXN0L3NjaGVtYXMvYW5ub3QtZXJyXzAueHNkOjc6IGVsZW1lbnQgYW5ub3RhdGlvbjogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9YW5ub3RhdGlvbic6IFRoZSBhdHRyaWJ1dGUgJ2RlYXRoJyBpcyBub3QgYWxsb3dlZC4KKy4vdGVzdC9zY2hlbWFzL2Fubm90LWVycl8wLnhzZDo3OiBlbGVtZW50IGFubm90YXRpb246IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWFubm90YXRpb24nOiBUaGUgY29udGVudCBpcyBub3QgdmFsaWQuIEV4cGVjdGVkIGlzIChhcHBpbmZvIHwgZG9jdW1lbnRhdGlvbikqLgorLi90ZXN0L3NjaGVtYXMvYW5ub3QtZXJyXzAueHNkOjEwOiBlbGVtZW50IGFwcGluZm86IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWFwcGluZm8nOiBUaGUgYXR0cmlidXRlICdpZCcgaXMgbm90IGFsbG93ZWQuCisuL3Rlc3Qvc2NoZW1hcy9hbm5vdC1lcnJfMC54c2Q6MTA6IGVsZW1lbnQgYXBwaW5mbzogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9YXBwaW5mbyc6IFRoZSBhdHRyaWJ1dGUgJ2Z1bicgaXMgbm90IGFsbG93ZWQuCisuL3Rlc3Qvc2NoZW1hcy9hbm5vdC1lcnJfMC54c2Q6MTQ6IGVsZW1lbnQgZG9jdW1lbnRhdGlvbjogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZG9jdW1lbnRhdGlvbic6IFRoZSBhdHRyaWJ1dGUgJ2lkJyBpcyBub3QgYWxsb3dlZC4KKy4vdGVzdC9zY2hlbWFzL2Fubm90LWVycl8wLnhzZDoxNDogZWxlbWVudCBkb2N1bWVudGF0aW9uOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1kb2N1bWVudGF0aW9uJzogVGhlIGF0dHJpYnV0ZSAnbW90aGVycycgaXMgbm90IGFsbG93ZWQuCisuL3Rlc3Qvc2NoZW1hcy9hbm5vdC1lcnJfMC54c2Q6MTQ6IGVsZW1lbnQgZG9jdW1lbnRhdGlvbjogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZG9jdW1lbnRhdGlvbicsIGF0dHJpYnV0ZSAne2h0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZX1sYW5nJzogJyonIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAneHM6bGFuZ3VhZ2UnLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnkxXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55MV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VlYzBmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55MV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55MV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55MV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnkxXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55MV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTJfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnkyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWY3M2I4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnkyXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnkyXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnkyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTJfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnkyXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55M18wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTNfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OGFmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTNfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTNfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55M18wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnkzXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDljZTU4MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55M18wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTNfMC54bWw6MTI6IGVsZW1lbnQgYmFyLkE6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdiYXIuQSc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICggIyNvdGhlcntodHRwOi8vRk9PfSogKS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NF8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTRfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyZWE0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTRfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTRfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTRfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NF8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTRfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEwZjhiYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjlmZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV8wLnhtbDo2OiBlbGVtZW50IGJvbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3t1cm46dGVzdDpmb299Ym9vJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4gRXhwZWN0ZWQgaXMgKCAjI290aGVye3Vybjp0ZXN0OmZvb30qICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTJjNDYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk1XzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5ZDdlMzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk1XzEueG1sOjExOiBlbGVtZW50IGJvbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3t1cm46dGVzdDpiYXJ9Ym9vJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNDk0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8yCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTViZjRjMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfMi54bWw6NzogZWxlbWVudCBib286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6Zm9vfWJvbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2ZiOTRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMwpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk1XzMueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfMy5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF80Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNGJjZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF80CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfNC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRhNmJkYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzQuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfNC54bWw6MTE6IGVsZW1lbnQgYm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne3Vybjp0ZXN0OmJhcn1ib28nOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfNSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMxNWQyNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzUKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV81LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF81LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTAxMTNmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfNS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV81LnhtbDoxMTogZWxlbWVudCBib286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6Zm9vfWJvbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF82IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWRmNTYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzBfNgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk1XzYueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF82LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8wXzYuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NGNkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMF82LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk1XzYueG1sOjExOiBlbGVtZW50IGJvbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3t1cm46dGVzdDpiYXJ9Ym9vJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMGY4YmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY5ZmQ1NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfMC54bWw6NjogZWxlbWVudCBib286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6Zm9vfWJvbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICggIyNvdGhlcnt1cm46dGVzdDpmb299KiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUyYzQ2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmZjY2I0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV8xLnhtbDoxMTogZWxlbWVudCBib286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6YmFyfWJvbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICgge3Vybjp0ZXN0OmZvb31ib28gKS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYWIyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8yCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8yLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjExNGE2NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzMKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV8zLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNmMwN2IyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfMy5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV8zLnhtbDo0OiBlbGVtZW50IGZvbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3t1cm46dGVzdDpmb299Zm9vJzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE0YmNlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzQKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV80LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDg5NzczCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfNC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV80LnhtbDoxMTogZWxlbWVudCBib286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6YmFyfWJvbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICgge3Vybjp0ZXN0OmZvb31ib28gKS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV81Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NzNkNDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV81CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTVfNS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV81LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV81LmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlkZjU2MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55NV8xXzYKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV82LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfNi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTVfMV82LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzNmMDIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk1XzFfNi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55NV82LnhtbDoxMTogZWxlbWVudCBib286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6YmFyfWJvbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICgge3Vybjp0ZXN0OmZvb31ib28gKS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55Nl8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTZfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiYjQ5M2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTZfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueTZfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTZfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55Nl8xXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTZfMV8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk2XzJfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55Nl8yXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJiNDkzYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55Nl8yXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55Nl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55Nl8yXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk2XzJfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55Nl8yXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmQ5ZGNjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzFfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk3XzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18xXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Mjc0ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMV8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk3XzAueG1sOjE4OiBlbGVtZW50IG1vbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ21vbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICggIyNvdGhlcnt1cm46dGVzdDpmb299KiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE2ZjVkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18xXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55N18xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzQ1NDY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55N18xLnhtbDoxNzogZWxlbWVudCBiYXI6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6Zm9vfWJhcic6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICggIyNvdGhlcnt1cm46dGVzdDpmb299KiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzFfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18xXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmYzNWUyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18xXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55N18yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18xXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzFfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18xXzIuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMl8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzJfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmQ5ZGNjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzJfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk3XzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMl8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18yXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Mjc0ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMl8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk3XzAueG1sOjE4OiBlbGVtZW50IG1vbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ21vbyc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICggIyNvdGhlcnt1cm46dGVzdDpmb299KiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzJfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18yXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE2ZjVkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18yXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55N18xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzJfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueTdfMl8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzQ1NDY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzJfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55N18xLnhtbDoxNzogZWxlbWVudCBiYXI6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7dXJuOnRlc3Q6Zm9vfWJhcic6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuIEV4cGVjdGVkIGlzICggIyNvdGhlcnt1cm46dGVzdDpmb299KiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzJfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18yXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmYzNWUyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18yXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55N18yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18yXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk3XzJfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55N18yXzIuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueThfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk4XzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWY0ZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk4XzFfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnk4XzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk4XzFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueThfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnk4XzFfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUtZXJyb3JzMV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlLWVycm9yczFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZTQ2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlLWVycm9yczFfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlLWVycm9yczFfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlLWVycm9yczFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUtZXJyb3JzMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlLWVycm9yczFfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZTFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZTFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYWUxM2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUxXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZTFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUxXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUxXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUyXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2NjNmUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZTJfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMl8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzLWVycjFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50cy1lcnIxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2U3N2FhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50cy1lcnIxXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50cy1lcnIxXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzLWVycjFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMtZXJyMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNDc2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzLWVycjFfMF8wLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzLWVycjFfMC54bWw6ODogZWxlbWVudCBlbGVtLmxheDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vRk9PfWVsZW0ubGF4JywgYXR0cmlidXRlICd7aHR0cDovL0ZPT31iYXInOiAnbyBvJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgYXRvbWljIHR5cGUgJ3hzOmxhbmd1YWdlJy4KKy4vdGVzdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzLWVycjFfMC54bWw6OTogZWxlbWVudCBlbGVtLnN0cmljdDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vRk9PfWVsZW0uc3RyaWN0JywgYXR0cmlidXRlICd7aHR0cDovL0ZPT31iYXJCJzogTm8gbWF0Y2hpbmcgZ2xvYmFsIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBhdmFpbGFibGUsIGJ1dCBkZW1hbmRlZCBieSB0aGUgc3RyaWN0IHdpbGRjYXJkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50czFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50czFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZDBjYzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzMV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMxXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50czFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMxXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMxXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0cjFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyMV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFmYzIzYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYW55QXR0cjFfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2FueUF0dHIxXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyMV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hbnlBdHRyMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2FueUF0dHIxXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cjBfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRyMF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA1NGJlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cjBfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2F0dHIwXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRyMF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRyMF8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2F0dHIwXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cnVzZV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2F0dHJ1c2VfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NDViYzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2F0dHJ1c2VfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2F0dHJ1c2VfMF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cnVzZV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRydXNlXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cnVzZV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2F0dHJ1c2VfMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRydXNlXzBfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDIzZDBiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRydXNlXzBfMQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hdHRydXNlXzBfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cnVzZV8wXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRydXNlXzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkNGZiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cnVzZV8wXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2F0dHJ1c2VfMF8xLnhtbDozOiBlbGVtZW50IGJhckE6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdiYXJBJzogVGhlIGF0dHJpYnV0ZSAnYXR0cicgaXMgcmVxdWlyZWQgYnV0IG1pc3NpbmcuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2F0dHJ1c2VfMF8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRydXNlXzBfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWEzMzAxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRydXNlXzBfMgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9hdHRydXNlXzBfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cnVzZV8wXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9hdHRydXNlXzBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFjZjgyMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYXR0cnVzZV8wXzIuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2F0dHJ1c2VfMF8yLnhtbDo2OiBlbGVtZW50IGJhckM6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdiYXJDJywgYXR0cmlidXRlICdhdHRyJzogVGhlIGF0dHJpYnV0ZSAnYXR0cicgaXMgbm90IGFsbG93ZWQuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0MTMxMl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0MTMxMl8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgwNDhhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTQxMzEyXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9idWcxNDEzMTJfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0MTMxMl8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDEzMTJfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDEzMTJfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDEzMzNfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDEzMzNfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4OTY2MGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0MTMzM18wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYnVnMTQxMzMzXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDEzMzNfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTQxMzMzXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTQxMzMzXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTQzOTUxXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTQzOTUxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDBlM2U3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDM5NTFfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2J1ZzE0Mzk1MV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTQzOTUxXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0Mzk1MV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0Mzk1MV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0NTI0Nl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0NTI0Nl8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI4Y2NmNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTQ1MjQ2XzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9idWcxNDUyNDZfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE0NTI0Nl8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDUyNDZfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNDUyNDZfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNTI0NzBfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNTI0NzBfMV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxNThjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE1MjQ3MF8xXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYnVnMTUyNDcwXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNTI0NzBfMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTUyNDcwXzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTUyNDcwXzFfMS5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTY3NzU0XzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTY3NzU0XzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2I1MGZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWcxNjc3NTRfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2J1ZzE2Nzc1NF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMTY3NzU0XzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE2Nzc1NF8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzE2Nzc1NF8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA5MmJmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzAzNTY2XzFfMQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9idWczMDM1NjZfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzAzNTY2XzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxNTY5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xLnhtbDo5OiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnUGFydCc6IE5vIG1hdGNoIGZvdW5kIGZvciBrZXktc2VxdWVuY2UgWydCJ10gb2Yga2V5cmVmICdQYXJ0UmVmQ291bnRyeUR1bW15Jy4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzA2ODA2XzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzA2ODA2XzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmNiN2M4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMDY4MDZfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2J1ZzMwNjgwNl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzA2ODA2XzFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwNjgwNl8xXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwNjgwNl8xXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwOTMzOF8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwOTMzOF8xXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUzMzFmMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzA5MzM4XzFfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9idWczMDkzMzhfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMwOTMzOF8xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMDkzMzhfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMDkzMzhfMV8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTAyNjRfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTAyNjRfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNzI5M2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMxMDI2NF8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYnVnMzEwMjY0XzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTAyNjRfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEwMjY0XzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEwMjY0XzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEyOTU3XzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEyOTU3XzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWM2MjY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTI5NTdfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2J1ZzMxMjk1N18wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTI5NTdfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEyOTU3XzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBlNThmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEyOTU3XzFfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYnVnMzEyOTU3XzAueG1sOjEwOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnc2lzdGVyJzogTm8gbWF0Y2ggZm91bmQgZm9yIGtleS1zZXF1ZW5jZSBbJ2FubmllJ10gb2Yga2V5cmVmICdzaWJsaW5nX2tleV9yZWYnLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTM5ODJfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTM5ODJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ODU1Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMxMzk4Ml8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYnVnMzEzOTgyXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMTM5ODJfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEzOTgyXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzEzOTgyXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzIxNDc1XzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzIxNDc1XzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTQzMDQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMjE0NzVfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2J1ZzMyMTQ3NV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzIxNDc1XzFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMyMTQ3NV8xXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMyMTQ3NV8xXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMyMjQxMV8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMyMjQxMV8xXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk1NjBmYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnMzIyNDExXzFfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9idWczMjI0MTFfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMyMjQxMV8xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMjI0MTFfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMjI0MTFfMV8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMjM1MTBfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMjM1MTBfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzM2Q2ODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMyMzUxMF8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvYnVnMzIzNTEwXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzMyMzUxMF8xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMjM1MTBfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjU1MDcwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWczMjM1MTBfMV8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9idWczMjM1MTBfMC54bWw6MjogZWxlbWVudCBmb286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdmb28nOiBNaXNzaW5nIGNoaWxkIGVsZW1lbnQocykuIEV4cGVjdGVkIGlzICggYmFyICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzQ1NTk1M18wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzQ1NTk1M18wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE3NWQxZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvYnVnNDU1OTUzXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9idWc0NTU5NTNfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2J1ZzQ1NTk1M18wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWc0NTU5NTNfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9idWc0NTU5NTNfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaGFuZ2Vsb2cwOTNfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaGFuZ2Vsb2cwOTNfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZjgzZWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2NoYW5nZWxvZzA5M18xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hhbmdlbG9nMDkzXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2NoYW5nZWxvZzA5M18xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaGFuZ2Vsb2cwOTNfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjBiMWVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaGFuZ2Vsb2cwOTNfMV8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaGFuZ2Vsb2cwOTNfMC54bWw6NzogZWxlbWVudCBkZXNjcmlwdGlvbjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LmJsYWNrcGVybC5jb20vWE1ML0NoYW5nZUxvZ31kZXNjcmlwdGlvbic6IER1cGxpY2F0ZSBrZXktc2VxdWVuY2UgWydQTCddIGluIHVuaXF1ZSBpZGVudGl0eS1jb25zdHJhaW50ICd7aHR0cDovL3d3dy5ibGFja3BlcmwuY29tL1hNTC9DaGFuZ2VMb2d9Y2hhbmdlbG9nRGVzY3JpcHRpb25MYW5nQ29uc3RyYWludCcuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRhMDYyZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MzM4ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfMS5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDcxMzE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8yCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV8yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE0MTQ0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzIueG1sOjM6IGVsZW1lbnQgYjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2InOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZjYwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzMKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzMueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzMuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8zLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2U1ZDY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF8zLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMy54bWw6MzogZWxlbWVudCBhOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnYSc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY0M2UzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfNApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfNC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkM2FmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzQuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV80LnhtbDoxOiBlbGVtZW50IGRvYzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2RvYyc6IE1pc3NpbmcgY2hpbGQgZWxlbWVudChzKS4gRXhwZWN0ZWQgaXMgb25lIG9mICggYSwgYiApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF81IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF81Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjYWFkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzUKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzUueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzUuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF81LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWQ0MTNjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMF81LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfNS54bWw6MzogZWxlbWVudCBiOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnYic6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzYgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU0Y2VhZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfNgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfNi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzBfNi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzYuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNGQxZTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8wXzYuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV82LnhtbDozOiBlbGVtZW50IGI6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdiJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGEwNjJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQzMzhkZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfMQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV8xLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwNzEzMTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzIueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTQxNDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV8yLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMi54bWw6MzogZWxlbWVudCBiOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnYic6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVmNjA0YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfMwpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZTVkNjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzMuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV8zLnhtbDozOiBlbGVtZW50IGE6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdhJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmIzODI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV80CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV80LnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzQuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNhYWRkZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfNS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzUuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ZDQxM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8xXzUuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV81LnhtbDozOiBlbGVtZW50IGI6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdiJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTRjZWFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV82CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV82LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMV82LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE0ZDFlMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzFfNi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzYueG1sOjM6IGVsZW1lbnQgYjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2InOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYTA2MmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDMzOGRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV8xLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzEuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU4ZTE1NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8yLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNThmN2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzMKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzMueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfMy5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjQzZTNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl80CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Nob2ljZV80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QzYWY1OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfNC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzQueG1sOjE6IGVsZW1lbnQgZG9jOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZG9jJzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLiBFeHBlY3RlZCBpcyBvbmUgb2YgKCBhLCBiICkuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdlNzliYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY2hvaWNlXzJfNQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfNS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzUuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl81LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl81LmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl82IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl82Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlNGNlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzYKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY2hvaWNlXzYueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nob2ljZV8yXzYuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl82LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWY1NmRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jaG9pY2VfMl82LmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jaG9pY2VfNi54bWw6NTogZWxlbWVudCBhOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnYSc6IFRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nvcy1jdC1leHRlbmRzLTEtM18wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nvcy1jdC1leHRlbmRzLTEtM18wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkNWJkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY29zLWN0LWV4dGVuZHMtMS0zXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9jb3MtY3QtZXh0ZW5kcy0xLTNfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nvcy1jdC1leHRlbmRzLTEtM18wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jb3MtY3QtZXh0ZW5kcy0xLTNfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jb3MtY3QtZXh0ZW5kcy0xLTNfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMzQyNTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nvcy1zdC1yZXN0cmljdHMtMS0yLWVycl8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY29zLXN0LXJlc3RyaWN0cy0xLTItZXJyXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Nvcy1zdC1yZXN0cmljdHMtMS0yLWVycl8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2MxMmI2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMF8wLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9zY2hlbWFzL2Nvcy1zdC1yZXN0cmljdHMtMS0yLWVycl8wLnhtbDozOiBlbGVtZW50IGZvbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vRk9PfWZvbyc6IFtmYWNldCAnbGVuZ3RoJ10gVGhlIHZhbHVlIGhhcyBhIGxlbmd0aCBvZiAnMic7IHRoaXMgZGlmZmVycyBmcm9tIHRoZSBhbGxvd2VkIGxlbmd0aCBvZiAnMycuCisuL3Rlc3Qvc2NoZW1hcy9jb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMC54bWw6MzogZWxlbWVudCBmb286IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL0ZPT31mb28nOiAnMSAyJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgbGlzdCB0eXBlICd7aHR0cDovL0ZPT310eXBlLkEnLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jdC1zYy1ub2Jhc2VfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jdC1zYy1ub2Jhc2VfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ODcxMmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2N0LXNjLW5vYmFzZV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvY3Qtc2Mtbm9iYXNlXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9jdC1zYy1ub2Jhc2VfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY3Qtc2Mtbm9iYXNlXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvY3Qtc2Mtbm9iYXNlXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGF0ZV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RhdGVfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NTRkMzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RhdGVfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2RhdGVfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RhdGVfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGF0ZV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RhdGVfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTFfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTFfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MWIzMWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RlY2ltYWwtMV8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RlY2ltYWwtMV8xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTFfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjRmYTljCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTFfMV8wLmVycgpAQCAtMCwwICsxLDggQEAKKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtMV8wLnhtbDoxNjogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiAnLicgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGF0b21pYyB0eXBlICdteURlY2ltYWwnLgorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xXzAueG1sOjE3OiBlbGVtZW50IHZhbDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3ZhbCc6ICctJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgYXRvbWljIHR5cGUgJ215RGVjaW1hbCcuCisuL3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTFfMC54bWw6MTg6IGVsZW1lbnQgdmFsOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAndmFsJzogJysnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnbXlEZWNpbWFsJy4KKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtMV8wLnhtbDoxOTogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiAnKicgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGF0b21pYyB0eXBlICdteURlY2ltYWwnLgorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xXzAueG1sOjIwOiBlbGVtZW50IHZhbDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3ZhbCc6ICctIDEnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnbXlEZWNpbWFsJy4KKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtMV8wLnhtbDoyMTogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiAnKyAxJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgYXRvbWljIHR5cGUgJ215RGVjaW1hbCcuCisuL3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTFfMC54bWw6MjI6IGVsZW1lbnQgdmFsOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAndmFsJzogJysgMCcgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGF0b21pYyB0eXBlICdteURlY2ltYWwnLgorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xXzAueG1sOjIzOiBlbGVtZW50IHZhbDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3ZhbCc6ICctIDAnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnbXlEZWNpbWFsJy4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0yXzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0yXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjhjYTkyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTJfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtMl8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTJfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0yXzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU2NjNjMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0yXzFfMC5lcnIKQEAgLTAsMCArMSw0IEBACisuL3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTJfMC54bWw6MTI6IGVsZW1lbnQgdmFsOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAndmFsJzogW2ZhY2V0ICdtaW5JbmNsdXNpdmUnXSBUaGUgdmFsdWUgJy0wLjEnIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSB2YWx1ZSBhbGxvd2VkICgnMCcpLgorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0yXzAueG1sOjEyOiBlbGVtZW50IHZhbDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3ZhbCc6ICctMC4xJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgYXRvbWljIHR5cGUgJ215RGVjaW1hbCcuCisuL3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTJfMC54bWw6MTM6IGVsZW1lbnQgdmFsOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAndmFsJzogW2ZhY2V0ICdtaW5JbmNsdXNpdmUnXSBUaGUgdmFsdWUgJy0xJyBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gdmFsdWUgYWxsb3dlZCAoJzAnKS4KKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtMl8wLnhtbDoxMzogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiAnLTEnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnbXlEZWNpbWFsJy4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0zXzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0zXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjAxNTM1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTNfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtM18wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZWNpbWFsLTNfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0zXzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJhOGNmOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVjaW1hbC0zXzFfMC5lcnIKQEAgLTAsMCArMSw4IEBACisuL3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTNfMC54bWw6MTI6IGVsZW1lbnQgdmFsOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAndmFsJzogW2ZhY2V0ICd0b3RhbERpZ2l0cyddIFRoZSB2YWx1ZSAnMC4xMjMnIGhhcyBtb3JlIGRpZ2l0cyB0aGFuIGFyZSBhbGxvd2VkICgnMicpLgorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0zXzAueG1sOjEyOiBlbGVtZW50IHZhbDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3ZhbCc6ICcwLjEyMycgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGF0b21pYyB0eXBlICdteURlY2ltYWwnLgorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0zXzAueG1sOjEzOiBlbGVtZW50IHZhbDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3ZhbCc6IFtmYWNldCAndG90YWxEaWdpdHMnXSBUaGUgdmFsdWUgJzAuMDIzJyBoYXMgbW9yZSBkaWdpdHMgdGhhbiBhcmUgYWxsb3dlZCAoJzInKS4KKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtM18wLnhtbDoxMzogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiAnMC4wMjMnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnbXlEZWNpbWFsJy4KKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtM18wLnhtbDoxNDogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiBbZmFjZXQgJ3RvdGFsRGlnaXRzJ10gVGhlIHZhbHVlICcxMjMnIGhhcyBtb3JlIGRpZ2l0cyB0aGFuIGFyZSBhbGxvd2VkICgnMicpLgorLi90ZXN0L3NjaGVtYXMvZGVjaW1hbC0zXzAueG1sOjE0OiBlbGVtZW50IHZhbDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3ZhbCc6ICcxMjMnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnbXlEZWNpbWFsJy4KKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtM18wLnhtbDoxNTogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiBbZmFjZXQgJ3RvdGFsRGlnaXRzJ10gVGhlIHZhbHVlICcxMi4zJyBoYXMgbW9yZSBkaWdpdHMgdGhhbiBhcmUgYWxsb3dlZCAoJzInKS4KKy4vdGVzdC9zY2hlbWFzL2RlY2ltYWwtM18wLnhtbDoxNTogZWxlbWVudCB2YWw6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd2YWwnOiAnMTIuMycgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGF0b21pYyB0eXBlICdteURlY2ltYWwnLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLWV4dGVuc2lvbi1lcnJfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLWV4dGVuc2lvbi1lcnJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uLWVycl8wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb24tZXJyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uLWVycl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZmJhNTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uLWVycl8wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uLWVycl8wLnhzZDo2OiBlbGVtZW50IGNvbXBsZXhUeXBlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IGxvY2FsIGNvbXBsZXggdHlwZTogRHVwbGljYXRlIGF0dHJpYnV0ZSB1c2UgJ2JhckFfMScuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb25fMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NDczNjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLWV4dGVuc2lvbl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb25fMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb25fMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzE0MjMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLWV4dGVuc2lvbl8wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzAueHNkOjEwOiBlbGVtZW50IGF0dHJpYnV0ZTogU2NoZW1hcyBwYXJzZXIgd2FybmluZyA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1hdHRyaWJ1dGUnOiBTa2lwcGluZyBhdHRyaWJ1dGUgdXNlIHByb2hpYml0aW9uLCBzaW5jZSBpdCBpcyBwb2ludGxlc3Mgd2hlbiBleHRlbmRpbmcgYSB0eXBlLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTItMS0xXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTItMS0xXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQzOGRkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wXzAuZXJyCkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wLnhzZDo2OiBlbGVtZW50IGNvbXBsZXhUeXBlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IGxvY2FsIGNvbXBsZXggdHlwZSwgYXR0cmlidXRlIHVzZSAnYmFyQl8xJzogVGhlICdvcHRpb25hbCcgYXR0cmlidXRlIHVzZSBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAncmVxdWlyZWQnIGF0dHJpYnV0ZSB1c2Ugb2YgdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24gJ3todHRwOi8vRk9PfXR5cGVBJy4KKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tMi0xLTFfMC54c2Q6NjogZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBsb2NhbCBjb21wbGV4IHR5cGUsIGF0dHJpYnV0ZSB1c2UgJ2JhckNfMSc6IE5laXRoZXIgYSBtYXRjaGluZyBhdHRyaWJ1dGUgdXNlLCBub3IgYSBtYXRjaGluZyB3aWxkY2FyZCBleGlzdHMgaW4gdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24gJ3todHRwOi8vRk9PfXR5cGVBJy4KKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tMi0xLTFfMC54c2Q6NjogZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBsb2NhbCBjb21wbGV4IHR5cGUsIGF0dHJpYnV0ZSB1c2UgJ2JhckNfMic6IE5laXRoZXIgYSBtYXRjaGluZyBhdHRyaWJ1dGUgdXNlLCBub3IgYSBtYXRjaGluZyB3aWxkY2FyZCBleGlzdHMgaW4gdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24gJ3todHRwOi8vRk9PfXR5cGVBJy4KKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tMi0xLTFfMC54c2Q6NjogZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBsb2NhbCBjb21wbGV4IHR5cGUsIGF0dHJpYnV0ZSB1c2UgJ2JhckRfMSc6IE5laXRoZXIgYSBtYXRjaGluZyBhdHRyaWJ1dGUgdXNlLCBub3IgYSBtYXRjaGluZyB3aWxkY2FyZCBleGlzdHMgaW4gdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24gJ3todHRwOi8vRk9PfXR5cGVBJy4KKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tMi0xLTFfMC54c2Q6NjogZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBsb2NhbCBjb21wbGV4IHR5cGUsIGF0dHJpYnV0ZSB1c2UgJ2JhckRfMic6IE5laXRoZXIgYSBtYXRjaGluZyBhdHRyaWJ1dGUgdXNlLCBub3IgYSBtYXRjaGluZyB3aWxkY2FyZCBleGlzdHMgaW4gdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24gJ3todHRwOi8vRk9PfXR5cGVBJy4KKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tMi0xLTFfMC54c2Q6NjogZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBsb2NhbCBjb21wbGV4IHR5cGU6IEEgbWF0Y2hpbmcgYXR0cmlidXRlIHVzZSBmb3IgdGhlICdyZXF1aXJlZCcgYXR0cmlidXRlIHVzZSAnYmFyQl8zJyBvZiB0aGUgYmFzZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbiAne2h0dHA6Ly9GT099dHlwZUEnIGlzIG1pc3NpbmcuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tNC0xLWVycl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tNC0xLWVycl8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi00LTEtZXJyXzBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTQtMS1lcnJfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi00LTEtZXJyXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIyODNmYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi00LTEtZXJyXzBfMC5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTQtMS1lcnJfMC54c2Q6MzM6IGVsZW1lbnQgY29tcGxleFR5cGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogY29tcGxleCB0eXBlICd0eXBlLkEnOiBUaGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24gaGFzIGFuIGF0dHJpYnV0ZSB3aWxkY2FyZCwgYnV0IHRoZSBiYXNlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uICd7aHR0cDovL0ZPT31iYXNlLnR5cGUuQScgZG9lcyBub3QgaGF2ZSBvbmUuCisuL3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTQtMS1lcnJfMC54c2Q6NDU6IGVsZW1lbnQgY29tcGxleFR5cGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogY29tcGxleCB0eXBlICd0eXBlLkInOiBUaGUgYXR0cmlidXRlIHdpbGRjYXJkIGlzIG5vdCBhIHZhbGlkIHN1YnNldCBvZiB0aGUgd2lsZGNhcmQgaW4gdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24gJ3todHRwOi8vRk9PfWJhc2UudHlwZS5CJy4KKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tNC0xLWVycl8wLnhzZDo2NTogZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBjb21wbGV4IHR5cGUgJ2Jhc2UudHlwZS5DJzogVGhlIHtwcm9jZXNzIGNvbnRlbnRzfSBvZiB0aGUgYXR0cmlidXRlIHdpbGRjYXJkIGlzIHdlYWtlciB0aGFuIHRoZSBvbmUgaW4gdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24gJ3todHRwOi8vRk9PfWJhc2UudHlwZS5DJy4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlBdHRyXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlBdHRyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTA0MTc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXJpdmF0aW9uLXJlc3RyaWN0aW9uLWFueUF0dHJfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tcmVzdHJpY3Rpb24tYW55QXR0cl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlBdHRyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tcmVzdHJpY3Rpb24tYW55QXR0cl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2Rlcml2YXRpb24tcmVzdHJpY3Rpb24tYW55QXR0cl8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RldGVyMF8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2RldGVyMF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGV0ZXIwXzBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kZXRlcjBfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGV0ZXIwXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJjOGI0ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZGV0ZXIwXzBfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZGV0ZXIwXzAueHNkOjY6IGVsZW1lbnQgY29tcGxleFR5cGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogbG9jYWwgY29tcGxleCB0eXBlOiBUaGUgY29udGVudCBtb2RlbCBpcyBub3QgZGV0ZXJtaW5pc3QuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2R1cl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2R1cl8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIzYTJjOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZHVyXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9kdXJfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2R1cl8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kdXJfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9kdXJfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbGVtMF8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VsZW0wXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWIwNmI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbGVtMF8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZWxlbTBfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VsZW0wXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VsZW0wXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZWxlbTBfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbGVtZW50LWVycl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbGVtZW50LWVycl8wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZWxlbWVudC1lcnJfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZWxlbWVudC1lcnJfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDUyNGY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbGVtZW50LWVycl8wXzAuZXJyCkBAIC0wLDAgKzEsMjAgQEAKKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkOjg6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCc6IFRoZSBhdHRyaWJ1dGUgJ25hbWUnIGlzIHJlcXVpcmVkIGJ1dCBtaXNzaW5nLgorLi90ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2Q6MTQ6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCc6IFRoZSBhdHRyaWJ1dGUgJ3JlZicgaXMgbm90IGFsbG93ZWQuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDoxNDogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JzogVGhlIGF0dHJpYnV0ZSAnbWluT2NjdXJzJyBpcyBub3QgYWxsb3dlZC4KKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkOjE0OiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnOiBUaGUgYXR0cmlidXRlICdtYXhPY2N1cnMnIGlzIG5vdCBhbGxvd2VkLgorLi90ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2Q6MTQ6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCc6IFRoZSBhdHRyaWJ1dGUgJ2Zvcm0nIGlzIG5vdCBhbGxvd2VkLgorLi90ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2Q6MTQ6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCcsIGF0dHJpYnV0ZSAnZmluYWwnOiBUaGUgdmFsdWUgJ2ZhbnRhc3knIGlzIG5vdCB2YWxpZC4gRXhwZWN0ZWQgaXMgJygjYWxsIHwgTGlzdCBvZiAoZXh0ZW5zaW9uIHwgcmVzdHJpY3Rpb24pKScuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDoxNDogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdibG9jayc6IFRoZSB2YWx1ZSAnZmx1dGUnIGlzIG5vdCB2YWxpZC4gRXhwZWN0ZWQgaXMgJygjYWxsIHwgTGlzdCBvZiAoZXh0ZW5zaW9uIHwgcmVzdHJpY3Rpb24gfCBzdWJzdGl0dXRpb24pKScuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDoxNDogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JzogVGhlIGF0dHJpYnV0ZXMgJ2RlZmF1bHQnIGFuZCAnZml4ZWQnIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDoyMjogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdtaW5PY2N1cnMnOiBUaGUgdmFsdWUgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIHRoZSB2YWx1ZSBvZiAnbWF4T2NjdXJzJy4KKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkOjIyOiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnOiBUaGUgYXR0cmlidXRlcyAncmVmJyBhbmQgJ25hbWUnIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDoyMjogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdhYnN0cmFjdCc6IE9ubHkgdGhlIGF0dHJpYnV0ZXMgJ21pbk9jY3VycycsICdtYXhPY2N1cnMnIGFuZCAnaWQnIGFyZSBhbGxvd2VkIGluIGFkZGl0aW9uIHRvICdyZWYnLgorLi90ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2Q6MjM6IGVsZW1lbnQgY29tcGxleFR5cGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnOiBUaGUgY29udGVudCBpcyBub3QgdmFsaWQuIEV4cGVjdGVkIGlzIChhbm5vdGF0aW9uPykuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDozMDogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdtYXhPY2N1cnMnOiBUaGUgdmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4KKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkOjMwOiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnOiBUaGUgYXR0cmlidXRlICdhYnN0cmFjdCcgaXMgbm90IGFsbG93ZWQuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDozMDogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JzogVGhlIGF0dHJpYnV0ZSAnc3Vic3RpdHV0aW9uR3JvdXAnIGlzIG5vdCBhbGxvd2VkLgorLi90ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2Q6MzA6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCc6IFRoZSBhdHRyaWJ1dGUgJ2ZpbmFsJyBpcyBub3QgYWxsb3dlZC4KKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkOjMwOiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnLCBhdHRyaWJ1dGUgJ2Jsb2NrJzogVGhlIHZhbHVlICdmbHV0ZScgaXMgbm90IHZhbGlkLiBFeHBlY3RlZCBpcyAnKCNhbGwgfCBMaXN0IG9mIChleHRlbnNpb24gfCByZXN0cmljdGlvbiB8IHN1YnN0aXR1dGlvbikpJy4KKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkOjMwOiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnOiBUaGUgYXR0cmlidXRlcyAnZGVmYXVsdCcgYW5kICdmaXhlZCcgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueHNkOjMxOiBlbGVtZW50IGNvbXBsZXhUeXBlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JzogVGhlIGF0dHJpYnV0ZSAndHlwZScgYW5kIHRoZSA8Y29tcGxleFR5cGU+IGNoaWxkIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisuL3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZDozMjogZWxlbWVudCBzaW1wbGVUeXBlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JzogVGhlIGNvbnRlbnQgaXMgbm90IHZhbGlkLiBFeHBlY3RlZCBpcyAoYW5ub3RhdGlvbj8sICgoc2ltcGxlVHlwZSB8IGNvbXBsZXhUeXBlKT8sICh1bmlxdWUgfCBrZXkgfCBrZXlyZWYpKikpLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbGVtZW50LW1pbm1heC1lcnJfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbGVtZW50LW1pbm1heC1lcnJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VsZW1lbnQtbWlubWF4LWVycl8wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZWxlbWVudC1taW5tYXgtZXJyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VsZW1lbnQtbWlubWF4LWVycl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1M2YzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VsZW1lbnQtbWlubWF4LWVycl8wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2VsZW1lbnQtbWlubWF4LWVycl8wLnhzZDo2OiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnLCBhdHRyaWJ1dGUgJ21heE9jY3Vycyc6IFRoZSB2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eS12YWx1ZV8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODY0NTU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eS12YWx1ZV8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZW1wdHktdmFsdWVfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZW1wdHktdmFsdWVfMV8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eS12YWx1ZV8xXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTJkMzI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eS12YWx1ZV8xXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZW1wdHktdmFsdWVfMS54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZW1wdHktdmFsdWVfMV8xLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5XzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGZjNTJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZW1wdHlfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5XzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5XzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZW1wdHlfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eV8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5XzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGZjNTJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9lbXB0eV8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZW1wdHlfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5XzFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2VtcHR5XzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZW1wdHlfMV8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24wXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNkY2E3YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMF8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24wXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMF8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2RhOWVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24xXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjFfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjFfMF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNDdiODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjFfMF8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjFfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI1YjA0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjFfMS54bWw6MTogZWxlbWVudCB0aXRsZTogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3RpdGxlJywgYXR0cmlidXRlICdsYW5ndWUnOiBUaGUgYXR0cmlidXRlICdsYW5ndWUnIGlzIG5vdCBhbGxvd2VkLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM4ZWNjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMV8yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjFfMF8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjFmZTllCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24xXzBfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMV8yLnhtbDoxOiBlbGVtZW50IHRpdGxlOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAndGl0bGUnOiBFbGVtZW50IGNvbnRlbnQgaXMgbm90IGFsbG93ZWQsIGJlY2F1c2UgdGhlIGNvbnRlbnQgdHlwZSBpcyBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24uCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjJfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24yXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGMxNWFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24yXzFfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24yXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24yXzFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2V4dGVuc2lvbjJfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9leHRlbnNpb24yXzFfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtdW5pb25TVC1lcnIxXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtdW5pb25TVC1lcnIxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWY4MjgwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9mYWNldC11bmlvblNULWVycjFfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2ZhY2V0LXVuaW9uU1QtZXJyMV8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9mYWNldC11bmlvblNULWVycjFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtdW5pb25TVC1lcnIxXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkyZGJlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtdW5pb25TVC1lcnIxXzBfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZmFjZXQtdW5pb25TVC1lcnIxXzAueG1sOjM6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly9GT099Zm9vJzogJ3RpbnknIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSB1bmlvbiB0eXBlICd7aHR0cDovL0ZPT31mb29UeXBlLkInLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9mYWNldC13aGl0ZVNwYWNlXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjMyNzZjNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9mYWNldC13aGl0ZVNwYWNlXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2dyb3VwMF8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2dyb3VwMF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg3YTc0YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvZ3JvdXAwXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9ncm91cDBfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2dyb3VwMF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9ncm91cDBfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9ncm91cDBfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9oZXhiaW5hcnlfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9oZXhiaW5hcnlfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4M2JhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2hleGJpbmFyeV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9oZXhiaW5hcnlfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaGV4YmluYXJ5XzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaGV4YmluYXJ5XzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaGV4YmluYXJ5XzBfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaGV4YmluYXJ5XzBfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2IxMGQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9oZXhiaW5hcnlfMF8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9oZXhiaW5hcnlfMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaGV4YmluYXJ5XzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIwYzc0YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaGV4YmluYXJ5XzBfMS5lcnIKQEAgLTAsMCArMSwxMCBAQAorLi90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sOjY6IGVsZW1lbnQgaGV4OiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnaGV4JzogJzAnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAneHM6aGV4QmluYXJ5Jy4KKy4vdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8xLnhtbDo3OiBlbGVtZW50IGhleDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2hleCc6ICcwMTIzNDU2Nzg5QUJDREVGR0gnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAneHM6aGV4QmluYXJ5Jy4KKy4vdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8xLnhtbDo4OiBlbGVtZW50IGhleDogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2hleCc6ICcrYWJjZGVmMDEyMzQ1Njc4OScgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGF0b21pYyB0eXBlICd4czpoZXhCaW5hcnknLgorLi90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sOjk6IGVsZW1lbnQgaGV4OiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnaGV4JzogJy0wMTIzNDU2Nzg5YWJjZGVmJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgYXRvbWljIHR5cGUgJ3hzOmhleEJpbmFyeScuCisuL3Rlc3Qvc2NoZW1hcy9oZXhiaW5hcnlfMS54bWw6MTE6IGVsZW1lbnQgaGV4MjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2hleDInOiBbZmFjZXQgJ21heExlbmd0aCddIFRoZSB2YWx1ZSBoYXMgYSBsZW5ndGggb2YgJzknOyB0aGlzIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbWF4aW11bSBsZW5ndGggb2YgJzgnLgorLi90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sOjExOiBlbGVtZW50IGhleDI6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdoZXgyJzogJzExMjIzMzQ0NTU2Njc3ODg5OScgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGxvY2FsIGF0b21pYyB0eXBlLgorLi90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sOjEzOiBlbGVtZW50IGhleDM6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdoZXgzJzogW2ZhY2V0ICdsZW5ndGgnXSBUaGUgdmFsdWUgaGFzIGEgbGVuZ3RoIG9mICcxJzsgdGhpcyBkaWZmZXJzIGZyb20gdGhlIGFsbG93ZWQgbGVuZ3RoIG9mICcyJy4KKy4vdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8xLnhtbDoxMzogZWxlbWVudCBoZXgzOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnaGV4Myc6ICdhYicgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgdGhlIGxvY2FsIGF0b21pYyB0eXBlLgorLi90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sOjE0OiBlbGVtZW50IGhleDM6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdoZXgzJzogW2ZhY2V0ICdsZW5ndGgnXSBUaGUgdmFsdWUgaGFzIGEgbGVuZ3RoIG9mICczJzsgdGhpcyBkaWZmZXJzIGZyb20gdGhlIGFsbG93ZWQgbGVuZ3RoIG9mICcyJy4KKy4vdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8xLnhtbDoxNDogZWxlbWVudCBoZXgzOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnaGV4Myc6ICcwMGZlZGMnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBsb2NhbCBhdG9taWMgdHlwZS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaWRjLWtleXJlZi1lcnIxXzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaWRjLWtleXJlZi1lcnIxXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDMzM2E5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pZGMta2V5cmVmLWVycjFfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2lkYy1rZXlyZWYtZXJyMV8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pZGMta2V5cmVmLWVycjFfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaWRjLWtleXJlZi1lcnIxXzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU5Y2IyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaWRjLWtleXJlZi1lcnIxXzFfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvaWRjLWtleXJlZi1lcnIxXzAueG1sOjEyOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne3Vybjp0ZXN0OmZvb31SZWYnOiBObyBtYXRjaCBmb3VuZCBmb3Iga2V5LXNlcXVlbmNlIFsnTDQnXSBvZiBrZXlyZWYgJ3t1cm46dGVzdDpmb299TGlua0tleVJlZicuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDBfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbXBvcnQwXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjMxODAwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbXBvcnQwXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9pbXBvcnQwXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbXBvcnQwXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDBfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbXBvcnQwXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW1wb3J0MV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDFfMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW1wb3J0MV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2ZjU3MmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDFfMF8wLmVycgpAQCAtMCwwICsxLDQgQEAKK0kvTyB3YXJuaW5nIDogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJ0ZXN0L3NjaGVtYXMvaW1wb3J0MV8wYmMuaW1wIgorLi90ZXN0L3NjaGVtYXMvaW1wb3J0MV8wLnhzZDoxMTogZWxlbWVudCBpbXBvcnQ6IFNjaGVtYXMgcGFyc2VyIHdhcm5pbmcgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9aW1wb3J0JzogRmFpbGVkIHRvIGxvY2F0ZSBhIHNjaGVtYSBhdCBsb2NhdGlvbiAndGVzdC9zY2hlbWFzL2ltcG9ydDFfMGJjLmltcCcuIFNraXBwaW5nIHRoZSBpbXBvcnQuCisuL3Rlc3Qvc2NoZW1hcy9pbXBvcnQxXzAueHNkOjE2OiBlbGVtZW50IGltcG9ydDogU2NoZW1hcyBwYXJzZXIgd2FybmluZyA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1pbXBvcnQnOiBTa2lwcGluZyBpbXBvcnQgb2Ygc2NoZW1hIGxvY2F0ZWQgYXQgJ3Rlc3Qvc2NoZW1hcy9pbXBvcnQxXzBiLmltcCcgZm9yIHRoZSBuYW1lc3BhY2UgJ2h0dHA6Ly9CQVInLCBzaW5jZSB0aGlzIG5hbWVzcGFjZSB3YXMgYWxyZWFkeSBpbXBvcnRlZCB3aXRoIHRoZSBzY2hlbWEgbG9jYXRlZCBhdCAndGVzdC9zY2hlbWFzL2ltcG9ydDFfMC5pbXAnLgorLi90ZXN0L3NjaGVtYXMvaW1wb3J0MV8wLnhzZDoyNjogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdyZWYnOiBUaGUgUU5hbWUgdmFsdWUgJ3todHRwOi8vQkFSfWJhci5CJyBkb2VzIG5vdCByZXNvbHZlIHRvIGEobikgZWxlbWVudCBkZWNsYXJhdGlvbi4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW1wb3J0Ml8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5NjBiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDJfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2ltcG9ydDJfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDJfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW1wb3J0Ml8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2ltcG9ydDJfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbmNsdWRlMV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2luY2x1ZGUxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmE4YTJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbmNsdWRlMV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvaW5jbHVkZTFfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2luY2x1ZGUxXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2luY2x1ZGUxXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW5jbHVkZTFfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbmNsdWRlMl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2luY2x1ZGUyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWVhMmIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbmNsdWRlMl8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvaW5jbHVkZTJfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2luY2x1ZGUyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2luY2x1ZGUyXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW5jbHVkZTJfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbmNsdWRlM18wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2luY2x1ZGUzXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbmNsdWRlM18wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW5jbHVkZTNfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaW5jbHVkZTNfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2JiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pbmNsdWRlM18wXzAuZXJyCkBAIC0wLDAgKzEgQEAKK3Rlc3Qvc2NoZW1hcy9pbmNsdWRlM18wLmluYzo0OiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnOiBBIGdsb2JhbCBlbGVtZW50IGRlY2xhcmF0aW9uICd7aHR0cDovL0ZPT31iYXInIGRvZXMgYWxyZWFkeSBleGlzdC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaXRlbV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2l0ZW1fMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZmE1NjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2l0ZW1fMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2l0ZW1fMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2l0ZW1fMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaXRlbV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2l0ZW1fMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pdGVtXzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaXRlbV8xXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBmYTU2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaXRlbV8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvaXRlbV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaXRlbV8xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9pdGVtXzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvaXRlbV8xXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xlbmd0aDFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9sZW5ndGgxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGNiZTI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9sZW5ndGgxXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9sZW5ndGgxXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9sZW5ndGgxXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xlbmd0aDFfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9sZW5ndGgxXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGVuZ3RoMl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xlbmd0aDJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmZDI3ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xlbmd0aDJfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2xlbmd0aDJfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xlbmd0aDJfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGVuZ3RoMl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xlbmd0aDJfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9sZW5ndGgzXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGVuZ3RoM18wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGVuZ3RoM18wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGVuZ3RoM18wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9sZW5ndGgzXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjVhZmNkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGVuZ3RoM18wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2xlbmd0aDNfMC54c2Q6NTogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IGVsZW1lbnQgZGVjbC4gJ3NpemUnLCBhdHRyaWJ1dGUgJ3R5cGUnOiBUaGUgUU5hbWUgdmFsdWUgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1ub24tcG9zaXRpdmUtaW50ZWdlcicgZG9lcyBub3QgcmVzb2x2ZSB0byBhKG4pIHR5cGUgZGVmaW5pdGlvbi4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdhMmNkYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2xpc3QwXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8wXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE3NTdmNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMF8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2xpc3QwXzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzBfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EzYjYzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMF8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9saXN0MF8xLnhtbDoxOiBlbGVtZW50IHRlc3Q6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd0ZXN0JzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLiBFeHBlY3RlZCBpcyAoIHN0cmluZyApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8wXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzBfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWM2MjM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8wXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbGlzdDBfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzBfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMF8yLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2Y5ODA2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbGlzdDBfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmMzYzhhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8xXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2xpc3QwXzAueG1sOjU6IGVsZW1lbnQgc3RyaW5nOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnc3RyaW5nJzogVGhpcyBlbGVtZW50IGlzIG5vdCBleHBlY3RlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE3NTdmNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL2xpc3QwXzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EzYjYzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8xLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9saXN0MF8xLnhtbDoxOiBlbGVtZW50IHRlc3Q6IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICd0ZXN0JzogTWlzc2luZyBjaGlsZCBlbGVtZW50KHMpLiBFeHBlY3RlZCBpcyAoIHN0cmluZyApLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8xXzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzFfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWM2MjM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9saXN0MF8xXzIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbGlzdDBfMi54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzFfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL2xpc3QwXzFfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbGlzdDBfMV8yLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9taXhlZDBfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9taXhlZDBfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMmYwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL21peGVkMF8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbWl4ZWQwXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9taXhlZDBfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbWl4ZWQwXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbWl4ZWQwXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbWl4ZWQxXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbWl4ZWQxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWE2YjAxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9taXhlZDFfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL21peGVkMV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbWl4ZWQxXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL21peGVkMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL21peGVkMV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRkMWQ0NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9uczBfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxMTAyNDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8wXzEKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMwXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMS5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2U4NWY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8yCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMF8yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ2YWYyNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMwXzIueG1sOjE6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZm9vJzogTm8gbWF0Y2hpbmcgZ2xvYmFsIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlIHZhbGlkYXRpb24gcm9vdC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzMyMDZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8zCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMF8zLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF8zLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQxY2JkNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfMy5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMwXzMueG1sOjE6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly9leGFtcGxlLmNvbS94c2QvbnN9Zm9vJywgYXR0cmlidXRlICd7aHR0cDovL2V4YW1wbGUuY29tL3hzZC9uc31pZCc6IFRoZSBhdHRyaWJ1dGUgJ3todHRwOi8vZXhhbXBsZS5jb20veHNkL25zfWlkJyBpcyBub3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTBmNDVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF80CkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMF80LnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMF80LmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfNC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUxMmU4ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzBfNC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMwXzQueG1sOjI6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly9leGFtcGxlLmNvbS94c2QvbnN9Zm9vJywgYXR0cmlidXRlICd7aHR0cDovL2V4YW1wbGUuY29tL3hzZC9uc31pZCc6IFRoZSBhdHRyaWJ1dGUgJ3todHRwOi8vZXhhbXBsZS5jb20veHNkL25zfWlkJyBpcyBub3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmEwNDcxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMF8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI4Mjg4OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMwXzAueG1sOjE6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly9leGFtcGxlLmNvbS94c2QvbnN9Zm9vJywgYXR0cmlidXRlICdpZCc6IFRoZSBhdHRyaWJ1dGUgJ2lkJyBpcyBub3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjQ2NGRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMF8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTliMjg4MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMS5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMwXzEueG1sOjE6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly9leGFtcGxlLmNvbS94c2QvbnN9Zm9vJywgYXR0cmlidXRlICdpZCc6IFRoZSBhdHRyaWJ1dGUgJ2lkJyBpcyBub3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2U4NWY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV8yCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMF8yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ2YWYyNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMi5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMwXzIueG1sOjE6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZm9vJzogTm8gbWF0Y2hpbmcgZ2xvYmFsIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlIHZhbGlkYXRpb24gcm9vdC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmM4NzcyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV8zCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMF8zLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8xXzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8xXzMuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8xXzQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8xXzQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM3NGViZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMwXzFfNApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9uczBfNC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMF8xXzQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV80LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczBfMV80LmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmY2ZiNmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvbnMxXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMxXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMxXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMyXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmMxODFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9uczJfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL25zMl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnMyXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL25zMl8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL252ZGN2ZV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL252ZGN2ZV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlN2M3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvbnZkY3ZlXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9udmRjdmVfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL252ZGN2ZV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9udmRjdmVfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9udmRjdmVfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9wbzBfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9wbzBfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2ODdiOWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3BvMF8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvcG8wXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9wbzBfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG8wXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG8wXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG8xXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG8xXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzI2NGNlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9wbzFfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3BvMV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG8xXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3BvMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3BvMV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Bvc2NoYXJncnAwXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG9zY2hhcmdycDBfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMTRmNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Bvc2NoYXJncnAwXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9wb3NjaGFyZ3JwMF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG9zY2hhcmdycDBfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcG9zY2hhcmdycDBfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9wb3NjaGFyZ3JwMF8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBjZWI3ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9yZWdleHAtY2hhci1yZWZfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8xXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBjZWI3ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzFfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9yZWdleHAtY2hhci1yZWZfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0LUNULWF0dHItcmVmXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcmVzdHJpY3QtQ1QtYXR0ci1yZWZfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ZGJhNzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0LUNULWF0dHItcmVmXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9yZXN0cmljdC1DVC1hdHRyLXJlZl8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcmVzdHJpY3QtQ1QtYXR0ci1yZWZfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcmVzdHJpY3QtQ1QtYXR0ci1yZWZfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdC1DVC1hdHRyLXJlZl8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcmVzdHJpY3Rpb24tYXR0cjFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbi1hdHRyMV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbi1hdHRyMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZjAwM2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzBfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvcmVzdHJpY3Rpb24tYXR0cjFfMC54c2Q6NTogZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBsb2NhbCBjb21wbGV4IHR5cGUsIGF0dHJpYnV0ZSB1c2UgJ2JhckEnOiBUaGUgJ29wdGlvbmFsJyBhdHRyaWJ1dGUgdXNlIGlzIGluY29uc2lzdGVudCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nICdyZXF1aXJlZCcgYXR0cmlidXRlIHVzZSBvZiB0aGUgYmFzZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbiAne2h0dHA6Ly9GT099dHlwZUEnLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZTI2Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWVudW0tMV8xXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvcmVzdHJpY3Rpb24tZW51bS0xXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWVudW0tMV8xXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODZkMmRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMV8wLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWVudW0tMV8wLnhtbDo3OiBlbGVtZW50IGZvbzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2Zvbyc6IFtmYWNldCAnZW51bWVyYXRpb24nXSBUaGUgdmFsdWUgJ2MnIGlzIG5vdCBhbiBlbGVtZW50IG9mIHRoZSBzZXQgeydhJywgJ2InLCAnZCd9LgorLi90ZXN0L3NjaGVtYXMvcmVzdHJpY3Rpb24tZW51bS0xXzAueG1sOjc6IGVsZW1lbnQgZm9vOiBTY2hlbWFzIHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCAnZm9vJzogJ2MnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnYmFyVHlwZScuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uMF8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uMF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZlZjJiYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvcmVzdHJpY3Rpb24wXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbjBfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Jlc3RyaWN0aW9uMF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbjBfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9yZXN0cmljdGlvbjBfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zY2Mtbm8teG1sbnNfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zY2Mtbm8teG1sbnNfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NjYy1uby14bWxuc18wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2NjLW5vLXhtbG5zXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NjYy1uby14bWxuc18wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhZDJiNjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NjYy1uby14bWxuc18wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3NjYy1uby14bWxuc18wLnhzZDo3OiBlbGVtZW50IGF0dHJpYnV0ZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9YXR0cmlidXRlJywgYXR0cmlidXRlICduYW1lJzogVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgbXVzdCBub3QgbWF0Y2ggJ3htbG5zJy4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2NjLW5vLXhzaV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NjYy1uby14c2lfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NjYy1uby14c2lfMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NjYy1uby14c2lfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2NjLW5vLXhzaV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNGUzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NjYy1uby14c2lfMF8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9zY2Mtbm8teHNpXzAueHNkOjc6IGVsZW1lbnQgYXR0cmlidXRlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1hdHRyaWJ1dGUnOiBUaGUgdGFyZ2V0IG5hbWVzcGFjZSBtdXN0IG5vdCBtYXRjaCAnaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UnLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zZXEtZHVibC1lbGVtMV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjZkM2E4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zZXEtZHVibC1lbGVtMV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvc2VxLWR1YmwtZWxlbTFfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2VxLWR1YmwtZWxlbTFfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zZXEwXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2VxMF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRjODQzMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2VxMF8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvc2VxMF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2VxMF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zZXEwXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc2VxMF8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUxXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUxXzBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2OGQ5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUxXzBfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTFfMC54c2Q6OTogZWxlbWVudCBhdHRyaWJ1dGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWF0dHJpYnV0ZSc6IFRoZSBhdHRyaWJ1dGVzICdkZWZhdWx0JyBhbmQgJ2ZpeGVkJyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMl8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUyXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMl8wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTJfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTJfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzZkZjZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMl8wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUyXzAueHNkOjk6IGVsZW1lbnQgYXR0cmlidXRlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1hdHRyaWJ1dGUnOiBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAndXNlJyBtdXN0IGJlICdvcHRpb25hbCcgaWYgdGhlIGF0dHJpYnV0ZSAnZGVmYXVsdCcgaXMgcHJlc2VudC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMV8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzNDViM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMF8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0xXzAueHNkOjk6IGVsZW1lbnQgYXR0cmlidXRlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1hdHRyaWJ1dGUnOiBUaGUgYXR0cmlidXRlICduYW1lJyBpcyBub3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi1mb3JtXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi1mb3JtXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItZm9ybV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDM2NjdiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMF8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMC54c2Q6MTA6IGVsZW1lbnQgYXR0cmlidXRlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1hdHRyaWJ1dGUnOiBUaGUgYXR0cmlidXRlICdmb3JtJyBpcyBub3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi1zdF8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi1zdF8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlODVlMGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMF8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLXN0XzAueHNkOjExOiBlbGVtZW50IHNpbXBsZVR5cGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWF0dHJpYnV0ZSc6IFRoZSBjb250ZW50IGlzIG5vdCB2YWxpZC4gRXhwZWN0ZWQgaXMgKGFubm90YXRpb24/KS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi10eXBlXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi10eXBlXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLXR5cGVfMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItdHlwZV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLXR5cGVfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDAxNmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLXR5cGVfMF8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLXR5cGVfMC54c2Q6MTA6IGVsZW1lbnQgYXR0cmlidXRlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1hdHRyaWJ1dGUnOiBUaGUgYXR0cmlidXRlICd0eXBlJyBpcyBub3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTRfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtYXR0cmlidXRlNF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTRfMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGU0XzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGU0XzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FjNjcxOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTRfMF8wLmVycgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlNF8wLnhzZDo4OiBlbGVtZW50IHNpbXBsZVR5cGU6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWF0dHJpYnV0ZSc6IFRoZSBhdHRyaWJ1dGUgJ3R5cGUnIGFuZCB0aGUgPHNpbXBsZVR5cGU+IGNoaWxkIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1lbGVtZW50MV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1lbGVtZW50MV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ4YjE5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzBfMC5lcnIKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzAueHNkOjc6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCc6IFRoZSBhdHRyaWJ1dGVzICdkZWZhdWx0JyBhbmQgJ2ZpeGVkJyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDItMV8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0xXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDItMV8wXzAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTFfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTFfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWQ4OWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDItMV8wXzAuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0xXzAueHNkOjEyOiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnOiBUaGUgYXR0cmlidXRlcyAncmVmJyBhbmQgJ25hbWUnIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzBfMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwY2Q3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzBfMC5lcnIKQEAgLTAsMCArMSw5IEBACisuL3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wLnhzZDoxODogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdtYXhPY2N1cnMnOiBUaGUgdmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4KKy4vdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzAueHNkOjIzOiBlbGVtZW50IGNvbXBsZXhUeXBlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JzogVGhlIGNvbnRlbnQgaXMgbm90IHZhbGlkLiBFeHBlY3RlZCBpcyAoYW5ub3RhdGlvbj8pLgorLi90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTJfMC54c2Q6Mjk6IGVsZW1lbnQgc2ltcGxlVHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCc6IFRoZSBjb250ZW50IGlzIG5vdCB2YWxpZC4gRXhwZWN0ZWQgaXMgKGFubm90YXRpb24/KS4KKy4vdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzAueHNkOjM2OiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnLCBhdHRyaWJ1dGUgJ3R5cGUnOiBPbmx5IHRoZSBhdHRyaWJ1dGVzICdtaW5PY2N1cnMnLCAnbWF4T2NjdXJzJyBhbmQgJ2lkJyBhcmUgYWxsb3dlZCBpbiBhZGRpdGlvbiB0byAncmVmJy4KKy4vdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzAueHNkOjM3OiBlbGVtZW50IGVsZW1lbnQ6IFNjaGVtYXMgcGFyc2VyIGVycm9yIDogRWxlbWVudCAne2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hfWVsZW1lbnQnLCBhdHRyaWJ1dGUgJ25pbGxhYmxlJzogT25seSB0aGUgYXR0cmlidXRlcyAnbWluT2NjdXJzJywgJ21heE9jY3VycycgYW5kICdpZCcgYXJlIGFsbG93ZWQgaW4gYWRkaXRpb24gdG8gJ3JlZicuCisuL3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wLnhzZDozODogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdkZWZhdWx0JzogT25seSB0aGUgYXR0cmlidXRlcyAnbWluT2NjdXJzJywgJ21heE9jY3VycycgYW5kICdpZCcgYXJlIGFsbG93ZWQgaW4gYWRkaXRpb24gdG8gJ3JlZicuCisuL3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wLnhzZDozOTogZWxlbWVudCBlbGVtZW50OiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JywgYXR0cmlidXRlICdmaXhlZCc6IE9ubHkgdGhlIGF0dHJpYnV0ZXMgJ21pbk9jY3VycycsICdtYXhPY2N1cnMnIGFuZCAnaWQnIGFyZSBhbGxvd2VkIGluIGFkZGl0aW9uIHRvICdyZWYnLgorLi90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTJfMC54c2Q6NDA6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCcsIGF0dHJpYnV0ZSAnZm9ybSc6IE9ubHkgdGhlIGF0dHJpYnV0ZXMgJ21pbk9jY3VycycsICdtYXhPY2N1cnMnIGFuZCAnaWQnIGFyZSBhbGxvd2VkIGluIGFkZGl0aW9uIHRvICdyZWYnLgorLi90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTJfMC54c2Q6NDE6IGVsZW1lbnQgZWxlbWVudDogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCcsIGF0dHJpYnV0ZSAnYmxvY2snOiBPbmx5IHRoZSBhdHRyaWJ1dGVzICdtaW5PY2N1cnMnLCAnbWF4T2NjdXJzJyBhbmQgJ2lkJyBhcmUgYWxsb3dlZCBpbiBhZGRpdGlvbiB0byAncmVmJy4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQzXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvc3JjLWVsZW1lbnQzXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDNfMF8wCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3NyYy1lbGVtZW50M18wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDNfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGJkODE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zcmMtZWxlbWVudDNfMF8wLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50M18wLnhzZDo4OiBlbGVtZW50IGNvbXBsZXhUeXBlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IEVsZW1lbnQgJ3todHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYX1lbGVtZW50JzogVGhlIGF0dHJpYnV0ZSAndHlwZScgYW5kIHRoZSA8Y29tcGxleFR5cGU+IGNoaWxkIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisuL3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDNfMC54c2Q6MTY6IGVsZW1lbnQgc2ltcGxlVHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiBFbGVtZW50ICd7aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWF9ZWxlbWVudCc6IFRoZSBhdHRyaWJ1dGUgJ3R5cGUnIGFuZCB0aGUgPHNpbXBsZVR5cGU+IGNoaWxkIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3N1YnN0LWdyb3VwLTFfMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzBfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzc1Y2RkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzBfMQpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzBfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3N1YnN0LWdyb3VwLTFfMF8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzBfMS5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdW5pb24yXzFfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdW5pb24yXzFfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDRlZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy91bmlvbjJfMV8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3VuaW9uMl8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy91bmlvbjJfMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdW5pb24yXzFfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY2YWQ1OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdW5pb24yXzFfMS5lcnIKQEAgLTAsMCArMSwzIEBACisuL3Rlc3Qvc2NoZW1hcy91bmlvbjJfMS54bWw6NDogZWxlbWVudCBFTEVNRU5UUzogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ3t1cm46dGVzdDpmb299RUxFTUVOVFMnOiAnCisJNQorJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgbG9jYWwgdW5pb24gdHlwZS4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdW5pb25fMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy91bmlvbl8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RiYzg2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdW5pb25fMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3VuaW9uXzBfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3VuaW9uXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3VuaW9uXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdW5pb25fMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QwXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0MF8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQzOWVjYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0MF8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0MF8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0MF8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QwXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0MF8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDFfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QxXzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGY0YjE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QxXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QxXzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QxXzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDFfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QxXzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0Ml8wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDJfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MzBlZGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDJfMF8wCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDJfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDJfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0Ml8wXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDJfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QzXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0M18wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQzZTNlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0M18wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0M18wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0M18wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3QzXzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0M18wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmE5YjI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0XzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NF8wXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YTdhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8xCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDRfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NF8wXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI5NjRiMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NF8wXzEuZXJyCkBAIC0wLDAgKzEgQEAKKy4vdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDRfMS54bWw6MTQ6IGVsZW1lbnQgYm9ybjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2Jvcm4nOiAnMTk2VDYtMDgtMjInIGlzIG5vdCBhIHZhbGlkIHZhbHVlIG9mIHRoZSBhdG9taWMgdHlwZSAnZGF0ZScuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjU5YjY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q0XzBfMgpAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0XzIueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NF8wXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNmU1MmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3Zkdi1maXJzdDRfMF8yLmVycgpAQCAtMCwwICsxLDIgQEAKKy4vdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDRfMi54bWw6MjQ6IGVsZW1lbnQgYm9ybjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IEVsZW1lbnQgJ2Jvcm4nOiBbZmFjZXQgJ3BhdHRlcm4nXSBUaGUgdmFsdWUgJzIwMDAtMDEtMjBaJyBpcyBub3QgYWNjZXB0ZWQgYnkgdGhlIHBhdHRlcm4gJ1teOlpdKicuCisuL3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0XzIueG1sOjI0OiBlbGVtZW50IGJvcm46IFNjaGVtYXMgdmFsaWRpdHkgZXJyb3IgOiBFbGVtZW50ICdib3JuJzogJzIwMDAtMDEtMjBaJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiB0aGUgYXRvbWljIHR5cGUgJ2RhdGUnLgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q1XzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NV8wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YwOTMxNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NV8wXzAKQEAgLTAsMCArMSBAQAorLi90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0NV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NV8wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy92ZHYtZmlyc3Q1XzBfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMvdmR2LWZpcnN0NV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3hzZC1saXN0LWl0ZW1UeXBlXzBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMveHNkLWxpc3QtaXRlbVR5cGVfMF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlY2Q4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3hzZC1saXN0LWl0ZW1UeXBlXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy94c2QtbGlzdC1pdGVtVHlwZV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMveHNkLWxpc3QtaXRlbVR5cGVfMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMveHNkLWxpc3QtaXRlbVR5cGVfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy94c2QtbGlzdC1pdGVtVHlwZV8wXzAuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3hzZC1zaW1wbGVUeXBlLXZhcmlldGllc18wXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3hzZC1zaW1wbGVUeXBlLXZhcmlldGllc18wXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY2NTA2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXMveHNkLXNpbXBsZVR5cGUtdmFyaWV0aWVzXzBfMApAQCAtMCwwICsxIEBACisuL3Rlc3Qvc2NoZW1hcy94c2Qtc2ltcGxlVHlwZS12YXJpZXRpZXNfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWFzL3hzZC1zaW1wbGVUeXBlLXZhcmlldGllc18wXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy94c2Qtc2ltcGxlVHlwZS12YXJpZXRpZXNfMF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hcy94c2Qtc2ltcGxlVHlwZS12YXJpZXRpZXNfMF8wLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTBfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEwXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFhZTRiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEwXzAKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEwXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyNGVjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMF8wLmVycgpAQCAtMCwwICsxLDUgQEAKK1BhdHRlcm46IE9wZW4gbW9kZWwKKy9BQUEgbGluZSAxOiAgQ0NDIGVsZW1lbnQgaXMgbm90IHByZXNlbnQKK1BhdHRlcm46IENsb3NlZCBtb2RlbAorL0FBQSBsaW5lIDE6ICBDQ0MgZWxlbWVudCBpcyBub3QgcHJlc2VudAorLi90ZXN0L3NjaGVtYXRyb24venZvbjEwXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTBfMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODIzNTNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTBfMQpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQi8+CisgICAgIDxEREQvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEwXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliYzM2MWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMF8xLmVycgpAQCAtMCwwICsxLDYgQEAKK1BhdHRlcm46IE9wZW4gbW9kZWwKKy9BQUEgbGluZSAxOiAgQ0NDIGVsZW1lbnQgaXMgbm90IHByZXNlbnQKK1BhdHRlcm46IENsb3NlZCBtb2RlbAorL0FBQSBsaW5lIDE6ICBDQ0MgZWxlbWVudCBpcyBub3QgcHJlc2VudAorL0FBQSBsaW5lIDE6IFRoZXJlIGlzIGFuIGV4dHJhIGVsZW1lbnQKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b24xMF8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDljODAwNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzAKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkIgYWFhPSJBIiBiYmI9IkIiLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjRhYTc0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMC5lcnIKQEAgLTAsMCArMSwyIEBACitQYXR0ZXJuOiBBdHRyaWJ1dGVzIHByZXNlbnQKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b24xMV8wLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1MzI4ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMV8xCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorICAgICA8QkJCIGJiYj0iQiIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMV8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYWUyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMV8xLmVycgpAQCAtMCwwICsxLDMgQEAKK1BhdHRlcm46IEF0dHJpYnV0ZXMgcHJlc2VudAorL0FBQS9CQkIgbGluZSAyOiBUaGUgZWxlbWVudCBtdXN0IG5vdCBoYXZlIGFuIGlzb2xhdGVkIGJiYiBhdHRyaWJ1dGUKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b24xMV8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjczYTdhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzIKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkIgYWFhPSJBIi8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUxMTdmNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzIuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogQXR0cmlidXRlcyBwcmVzZW50CisvQUFBL0JCQiBsaW5lIDI6IFRoZSBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW4gaXNvbGF0ZWQgYWFhIGF0dHJpYnV0ZQorLi90ZXN0L3NjaGVtYXRyb24venZvbjExXzIueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMV8zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWFlNGIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMwpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQi8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzMuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTFfMy5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg1MTdlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjExXzMuZXJyCkBAIC0wLDAgKzEsMiBAQAorUGF0dGVybjogQXR0cmlidXRlcyBwcmVzZW50CisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTFfMy54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMl8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTJfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjIwODA0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTJfMApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQiBiYmI9IkMiLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTJfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMl8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2U5ZWQyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTJfMC5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBOdW1iZXIgb2YgY2hhcmFjdGVycyBpbiBhbiBhYmJyZXZpYXRpb24KKy9BQUEvQkJCIGxpbmUgMjogVGhlcmUgaXMgbm90IGVub3VnaCBsZXR0ZXJzIGluIHRoZSBhYmJyZXZpYXRpb24KKy4vdGVzdC9zY2hlbWF0cm9uL3p2b24xMl8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTJfMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEyXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYyZGUzNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEyXzEKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkIgYmJiPSJDWiIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMl8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEyXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4NmMwYmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xMl8xLmVycgpAQCAtMCwwICsxLDIgQEAKK1BhdHRlcm46IE51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGFuIGFiYnJldmlhdGlvbgorLi90ZXN0L3NjaGVtYXRyb24venZvbjEyXzEueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTJfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEyXzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJiZjdjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEyXzIKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkIgYmJiPSJDWkNaIi8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEyXzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTJfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVkYWYzMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEyXzIuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogTnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gYW4gYWJicmV2aWF0aW9uCisvQUFBL0JCQiBsaW5lIDI6IFRoZXJlIGlzIHRvbyBtdWNoIGxldHRlcnMgaW4gdGhlIGFiYnJldmlhdGlvbgorLi90ZXN0L3NjaGVtYXRyb24venZvbjEyXzIueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xM18wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTNfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTI5NWMzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTNfMApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFRvdGFsPgorICAgICA8UGVyY2VudD4yMDwvUGVyY2VudD4KKyAgICAgPFBlcmNlbnQ+MzA8L1BlcmNlbnQ+CisgICAgIDxQZXJjZW50PjEwPC9QZXJjZW50PgorICAgICA8UGVyY2VudD41MDwvUGVyY2VudD4gICAgICAgICAgCis8L1RvdGFsPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTNfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xM18wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDk4Y2IzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTNfMC5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBTdW0gZXF1YWxzIDEwMCUuCisvVG90YWwgbGluZSAxOiBUaGUgdmFsdWVzIGRvIG5vdCBzdW0gdG8gMTAwJS4gCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTNfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEzXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xM18xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwMWU5MTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xM18xCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8VG90YWw+CisgICAgIDxQZXJjZW50PjIwPC9QZXJjZW50PgorICAgICA8UGVyY2VudD4xMDwvUGVyY2VudD4KKyAgICAgPFBlcmNlbnQ+NTA8L1BlcmNlbnQ+ICAgICAgICAgIAorPC9Ub3RhbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEzXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTNfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBmMDJjMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEzXzEuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogU3VtIGVxdWFscyAxMDAlLgorL1RvdGFsIGxpbmUgMTogVGhlIHZhbHVlcyBkbyBub3Qgc3VtIHRvIDEwMCUuIAorLi90ZXN0L3NjaGVtYXRyb24venZvbjEzXzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xM18yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTNfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjFkZjJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTNfMgpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFRvdGFsPgorICAgICA8UGVyY2VudD4yMDwvUGVyY2VudD4KKyAgICAgPFBlcmNlbnQ+MzA8L1BlcmNlbnQ+CisgICAgIDxQZXJjZW50PjUwPC9QZXJjZW50PiAgICAgICAgICAKKzwvVG90YWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xM18yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjEzXzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYWI2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xM18yLmVycgpAQCAtMCwwICsxLDIgQEAKK1BhdHRlcm46IFN1bSBlcXVhbHMgMTAwJS4KKy4vdGVzdC9zY2hlbWF0cm9uL3p2b24xM18yLnhtbCB2YWxpZGF0ZXMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjE0XzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xNF8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3MmUwYzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xNF8wCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgPC9CQkI+CisgICAgIDxDQ0MvPgorICAgICA8REREPgorICAgICAgICAgIDxDQ0MvPgorICAgICAgICAgIDxFRUU+CisgICAgICAgICAgICAgICA8Q0NDLz4KKyAgICAgICAgICA8L0VFRT4KKyAgICAgPC9EREQ+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjE0XzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMTRfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAxNTVkYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjE0XzAuZXJyCkBAIC0wLDAgKzEsNCBAQAorUGF0dGVybjogYSBjaGlsZCBvZiBzZWxlY3RlZCBlbGVtZW50cworL0FBQS9DQ0MgbGluZSA1OiBFbGVtZW50IENDQyBtdXN0IG5vdCBiZSBhIGNoaWxkIG9mIGVsZW1lbnQgQUFBIAorL0FBQS9EREQvRUVFL0NDQyBsaW5lIDk6IEVsZW1lbnQgQ0NDIG11c3Qgbm90IGJlIGEgY2hpbGQgb2YgZWxlbWVudCBFRUUgCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTRfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjE1XzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xNV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NTAwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xNV8wCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBIG5hbWU9ImFhYSI+Cis8QkJCIGlkPSJiYmIiLz4KKzxDQ0MgY29sb3I9ImNjYyIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xNV8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjE1XzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzQ4ODkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xNV8wLmVycgpAQCAtMCwwICsxLDQgQEAKK1BhdHRlcm46IGlkIGlzIHRoZSBvbmx5IHBlcm1pdGVkIGF0dHJpYnV0ZSBuYW1lCisvQUFBIGxpbmUgMTogQXR0cmlidXRlIG5hbWUgaXMgZm9yYmlkZGVuIGluIGVsZW1lbnQgQUFBIAorL0FBQS9DQ0MgbGluZSAzOiBBdHRyaWJ1dGUgY29sb3IgaXMgZm9yYmlkZGVuIGluIGVsZW1lbnQgQ0NDIAorLi90ZXN0L3NjaGVtYXRyb24venZvbjE1XzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFhZTRiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjFfMApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQi8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjFfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkNDIxODQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzAuZXJyCkBAIC0wLDAgKzEsOCBAQAorUGF0dGVybjogUHJpbnQgYm90aCBjYXNlcworL0FBQSBsaW5lIDE6IEJCQiBlbGVtZW50IGlzIHByZXNlbnQuCisvQUFBIGxpbmUgMTogQUFBIG1pc3NlcyBhdHRyaWJ1dGUgbmFtZS4KK1BhdHRlcm46IFByaW50IHBvc2l0aXZlIHJlc3VsdCBvbmx5CisvQUFBIGxpbmUgMTogQkJCIGVsZW1lbnQgaXMgcHJlc2VudC4KK1BhdHRlcm46IFByaW50IG5lZ2F0aXZlIHJlc3VsdCBvbmx5CisvQUFBIGxpbmUgMTogQUFBIG1pc3NlcyBhdHRyaWJ1dGUgbmFtZS4KKy4vdGVzdC9zY2hlbWF0cm9uL3p2b24xXzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEwNjk1MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjFfMQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPENDQy8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjFfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwZWU4N2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24xXzEuZXJyCkBAIC0wLDAgKzEsOCBAQAorUGF0dGVybjogUHJpbnQgYm90aCBjYXNlcworL0FBQSBsaW5lIDE6IEJCQiBlbGVtZW50IGlzIG1pc3NpbmcuCisvQUFBIGxpbmUgMTogQUFBIG1pc3NlcyBhdHRyaWJ1dGUgbmFtZS4KK1BhdHRlcm46IFByaW50IHBvc2l0aXZlIHJlc3VsdCBvbmx5CitQYXR0ZXJuOiBQcmludCBuZWdhdGl2ZSByZXN1bHQgb25seQorL0FBQSBsaW5lIDE6IEJCQiBlbGVtZW50IGlzIG1pc3NpbmcuCisvQUFBIGxpbmUgMTogQUFBIG1pc3NlcyBhdHRyaWJ1dGUgbmFtZS4KKy4vdGVzdC9zY2hlbWF0cm9uL3p2b24xXzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24yXzAgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24yXzAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk1YmM4ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjJfMApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQj5iYmJiPC9CQkI+CisgICAgIDxDQ0M+Y2NjYzwvQ0NDPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24yXzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMl8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGU0YTdmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMl8wLmVycgpAQCAtMCwwICsxLDIgQEAKK1BhdHRlcm46IENoYXJhY3RlciBAIGZvcmJpZGRlbgorLi90ZXN0L3NjaGVtYXRyb24venZvbjJfMC54bWwgdmFsaWRhdGVzCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24yXzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24yXzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFmMmNkMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjJfMQpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQj5iYmJiQGJiYi5jb208L0JCQj4KKyAgICAgPENDQz5jY2NAY2NjLmNvbTwvQ0NDPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24yXzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMl8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGYzZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMl8xLmVycgpAQCAtMCwwICsxLDUgQEAKK1BhdHRlcm46IENoYXJhY3RlciBAIGZvcmJpZGRlbgorL0FBQSBsaW5lIDE6IFRleHQgaW4gZWxlbWVudCBBQUEgbXVzdCBub3QgY29udGFpbiBjaGFyYWN0ZXIgQCAKKy9BQUEvQkJCIGxpbmUgMjogVGV4dCBpbiBlbGVtZW50IEJCQiBtdXN0IG5vdCBjb250YWluIGNoYXJhY3RlciBAIAorL0FBQS9DQ0MgbGluZSAzOiBUZXh0IGluIGVsZW1lbnQgQ0NDIG11c3Qgbm90IGNvbnRhaW4gY2hhcmFjdGVyIEAgCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uMl8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMl8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMl8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NWNmMGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24yXzIKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkI+YmJiYjwvQkJCPgorICAgICA8Q0NDPmNjY2M8L0NDQz4KKyAgICAgYWFhQGFhYS5uZXQKKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uMl8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjJfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBkYzdjYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjJfMi5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBDaGFyYWN0ZXIgQCBmb3JiaWRkZW4KKy9BQUEgbGluZSAxOiBUZXh0IGluIGVsZW1lbnQgQUFBIG11c3Qgbm90IGNvbnRhaW4gY2hhcmFjdGVyIEAgCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uMl8yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uM18wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uM18wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YTZlZDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b24zXzAKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkI+CisgICAgICAgICAgPENDQy8+CisgICAgICAgICAgPENDQy8+CisgICAgIDwvQkJCPgorICAgICA8Q0NDIG5hbWU9ImMxIi8+CisgICAgIDxDQ0MgbmFtZT0iYzIiLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uM18wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjNfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE5ZTcyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjNfMC5lcnIKQEAgLTAsMCArMSw2IEBACitQYXR0ZXJuOiBBdHRyaWJ1dGUgdGVzdAorL0FBQS9CQkIvQ0NDWzFdIGxpbmUgMzogYXR0cmlidXRlIG5hbWUgaXMgbm90IHByZXNlbnQKKy9BQUEvQkJCL0NDQ1syXSBsaW5lIDQ6IGF0dHJpYnV0ZSBuYW1lIGlzIG5vdCBwcmVzZW50CisvQUFBL0NDQ1sxXSBsaW5lIDY6IGF0dHJpYnV0ZSBuYW1lIGlzIHByZXNlbnQKKy9BQUEvQ0NDWzJdIGxpbmUgNzogYXR0cmlidXRlIG5hbWUgaXMgcHJlc2VudAorLi90ZXN0L3NjaGVtYXRyb24venZvbjNfMC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjRfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjRfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWU2OTRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNF8wCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorICAgICA8QkJCPgorICAgICAgICAgIDxDQ0MvPgorICAgICAgICAgIDxDQ0MvPgorICAgICA8L0JCQj4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNF8wLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjRfMC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFhNmIyYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjRfMC5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBSb290IHRlc3QKKy9BQUEgbGluZSAxOiBSb290IGVsZW1lbnQgaXMgQUFBCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uNF8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMWZhY2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b240XzEKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYWFg+CisgICAgIDxCQkI+CisgICAgICAgICAgPENDQy8+CisgICAgICAgICAgPENDQy8+CisgICAgIDwvQkJCPgorPC9YWFg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b240XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNF8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWQzMjRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNF8xLmVycgpAQCAtMCwwICsxLDMgQEAKK1BhdHRlcm46IFJvb3QgdGVzdAorL1hYWCBsaW5lIDE6IFJvb3QgZWxlbWVudCBpcyBYWFgsIG5vdCBBQUEgCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uNF8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNV8wIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNV8wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3NjM1MDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzAKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxCQkI+CisgICAgICAgICAgPENDQy8+CisgICAgIDwvQkJCPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNV8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWVmNWYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNV8wLmVycgpAQCAtMCwwICsxLDcgQEAKK1BhdHRlcm46IFNlbGVjdCBlbXB0eSBlbGVtZW50cyBDQ0MKKy9BQUEvQkJCL0NDQyBsaW5lIDM6IFNvdXJjZSBjb250YWlucyBhbiBlbXB0eSBlbGVtZW50IENDQyAKKy9BQUEvQkJCL0NDQyBsaW5lIDM6IFsxXUFuIGVsZW1lbnQgQ0NDIGRvZXMgbm90IGNvbnRhaW4gYW55IHRleHQKKy9BQUEvQkJCL0NDQyBsaW5lIDM6IFsyXUFuIGVsZW1lbnQgQ0NDIGRvZXMgbm90IGNvbnRhaW4gYW55IHRleHQKKy9BQUEvQkJCL0NDQyBsaW5lIDM6IFsxXUFuIGVsZW1lbnQgQ0NDIGRvZXMgbm90IGNvbnRhaW4gYW55IGNoaWxkIGVsZW1lbnQKKy9BQUEvQkJCL0NDQyBsaW5lIDM6IFsyXUFuIGVsZW1lbnQgQ0NDIGRvZXMgbm90IGNvbnRhaW4gYW55IGNoaWxkIGVsZW1lbnQKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b241XzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc2Yjc1NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjVfMQpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDPkkgYW0gQ0NDIGVsZW1lbnQ8L0NDQz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjVfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0Y2U2ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzEuZXJyCkBAIC0wLDAgKzEsNSBAQAorUGF0dGVybjogU2VsZWN0IGVtcHR5IGVsZW1lbnRzIENDQworL0FBQS9CQkIvQ0NDIGxpbmUgMzogU291cmNlIGNvbnRhaW5zIGFuIGVtcHR5IGVsZW1lbnQgQ0NDIAorL0FBQS9CQkIvQ0NDIGxpbmUgMzogWzFdQW4gZWxlbWVudCBDQ0MgZG9lcyBub3QgY29udGFpbiBhbnkgY2hpbGQgZWxlbWVudAorL0FBQS9CQkIvQ0NDIGxpbmUgMzogWzJdQW4gZWxlbWVudCBDQ0MgZG9lcyBub3QgY29udGFpbiBhbnkgY2hpbGQgZWxlbWVudAorLi90ZXN0L3NjaGVtYXRyb24venZvbjVfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjVfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjVfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGMxMWZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNV8yCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorICAgICA8QkJCPgorICAgICAgICAgIDxDQ0M+CisgICAgICAgICAgICAgICA8RERELz4KKyAgICAgICAgICA8L0NDQz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjVfMi5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjNjllNzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b241XzIuZXJyCkBAIC0wLDAgKzEsNSBAQAorUGF0dGVybjogU2VsZWN0IGVtcHR5IGVsZW1lbnRzIENDQworL0FBQS9CQkIvQ0NDIGxpbmUgMzogU291cmNlIGNvbnRhaW5zIGFuIGVtcHR5IGVsZW1lbnQgQ0NDIAorL0FBQS9CQkIvQ0NDIGxpbmUgMzogWzFdQW4gZWxlbWVudCBDQ0MgZG9lcyBub3QgY29udGFpbiBhbnkgdGV4dAorL0FBQS9CQkIvQ0NDIGxpbmUgMzogWzJdQW4gZWxlbWVudCBDQ0MgZG9lcyBub3QgY29udGFpbiBhbnkgdGV4dAorLi90ZXN0L3NjaGVtYXRyb24venZvbjVfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjZfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjZfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTM5NzY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNl8wCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorYWFhCis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjZfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b242XzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYzNiMzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b242XzAuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogUHJlZGVmaW5lZCB2YWx1ZXMKKy9BQUEgbGluZSAxOiBPLksuCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uNl8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNl8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNl8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYzJlNzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b242XzEKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgICAgICAgYmJiCis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjZfMS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b242XzEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiNzI4ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b242XzEuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogUHJlZGVmaW5lZCB2YWx1ZXMKKy9BQUEgbGluZSAxOiBPLksuCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uNl8xLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNl8yIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNl8yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYzI0YTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b242XzIKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgIGNjYworPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b242XzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNl8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODY4OTM0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uNl8yLmVycgpAQCAtMCwwICsxLDMgQEAKK1BhdHRlcm46IFByZWRlZmluZWQgdmFsdWVzCisvQUFBIGxpbmUgMTogVGhlIEFBQSB2YWx1ZSBpcyBub3QgcGVybWl0dGVkLgorLi90ZXN0L3NjaGVtYXRyb24venZvbjZfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTM5NzY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uN18wCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorYWFhCis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNDI3ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzAuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogVGVzdCBpbnRlZ2VyCisvQUFBIGxpbmUgMTogVGhlIEFBQSB2YWx1ZSBpcyBub3QgYW4gaW50ZWdlci4KKy4vdGVzdC9zY2hlbWF0cm9uL3p2b243XzAueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE0MDA3YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMQpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAxMi4yMzQKKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uN18xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExZTBhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMS5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBUZXN0IGludGVnZXIKKy9BQUEgbGluZSAxOiBUaGUgQUFBIHZhbHVlIGlzIG5vdCBhbiBpbnRlZ2VyLgorLi90ZXN0L3NjaGVtYXRyb24venZvbjdfMS54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWI0NWUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uN18yCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorNDUKKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uN18yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJmOGNjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMi5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBUZXN0IGludGVnZXIKKy9BQUEgbGluZSAxOiBPLksuCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uN18yLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uN18zIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uN18zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1MDg5ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzMKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CiswCis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfMy5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNGI1OWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzMuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogVGVzdCBpbnRlZ2VyCisvQUFBIGxpbmUgMTogTy5LLgorLi90ZXN0L3NjaGVtYXRyb24venZvbjdfMy54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfNCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzM5ZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uN180CkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorLTQ1Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjdfNC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzQuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMWVlODkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b243XzQuZXJyCkBAIC0wLDAgKzEsMyBAQAorUGF0dGVybjogVGVzdCBpbnRlZ2VyCisvQUFBIGxpbmUgMTogTy5LLgorLi90ZXN0L3NjaGVtYXRyb24venZvbjdfNC54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjhfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjhfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTMyY2QwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8wCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFhYPgorICAgICA8QkJCLz4KKyAgICAgPEJCQi8+CisgICAgIDxBQUEvPgorICAgICA8QkJCLz4KKyAgICAgPEFBQS8+CisgICAgIDxBQUEvPgorPC9YWFg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b244XzAuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8wLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODVlMWRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8wLmVycgpAQCAtMCwwICsxLDMgQEAKK1BhdHRlcm46IFRlc3QgY291bnQKKy9YWFggbGluZSAxOiBPLksuCisuL3Rlc3Qvc2NoZW1hdHJvbi96dm9uOF8wLnhtbCBmYWlscyB0byB2YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZTVjZmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b244XzEKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYWFg+CisgICAgIDxCQkIvPgorICAgICA8QUFBLz4KKyAgICAgPEJCQi8+CisgICAgIDxBQUEvPgorICAgICA8QUFBLz4KKzwvWFhYPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8xLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjhfMS5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUwN2QwNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjhfMS5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBUZXN0IGNvdW50CisvWFhYIGxpbmUgMTogU29tZSBCQkIgYXJlIG1pc3NpbmcKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b244XzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b244XzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b244XzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVlYTc3YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjhfMgpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhYWD4KKyAgICAgPEJCQi8+CisgICAgIDxCQkIvPgorICAgICA8QUFBLz4KKyAgICAgPEJCQi8+CisgICAgIDxBQUEvPgorPC9YWFg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b244XzIuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8yLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2U4NDMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOF8yLmVycgpAQCAtMCwwICsxLDMgQEAKK1BhdHRlcm46IFRlc3QgY291bnQKKy9YWFggbGluZSAxOiBTb21lIEFBQSBhcmUgbWlzc2luZworLi90ZXN0L3NjaGVtYXRyb24venZvbjhfMi54bWwgZmFpbHMgdG8gdmFsaWRhdGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjlfMCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjlfMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjI1NGVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOV8wCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8QUFBPgorICAgICA8Q0NDLz4KKyAgICAgPENDQy8+CisgICAgIDxCQkI+CisgICAgICAgICAgPENDQyBpZD0iUTEiLz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjlfMC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b245XzAuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzOWNlZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b245XzAuZXJyCkBAIC0wLDAgKzEsMiBAQAorUGF0dGVybjogVGVzdCBhdHRyaWJ1dGUKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b245XzAueG1sIHZhbGlkYXRlcwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOV8xIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOV8xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYzBkZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b245XzEKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxBQUE+CisgICAgIDxDQ0MgaWQ9IlEyIi8+CisgICAgIDxDQ0MvPgorICAgICA8QkJCPgorICAgICAgICAgIDxDQ0MgaWQ9IlExIi8+CisgICAgIDwvQkJCPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b245XzEuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOV8xLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGM2ZjY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOV8xLmVycgpAQCAtMCwwICsxLDMgQEAKK1BhdHRlcm46IFRlc3QgYXR0cmlidXRlCisvQUFBL0NDQ1sxXSBsaW5lIDI6IEF0dHJpYnV0ZSBpZCBpcyB1c2VkIGluIHdyb25nIGNvbnRleHQKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b245XzEueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b245XzIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY2hlbWF0cm9uL3p2b245XzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjkyMThmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjlfMgpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEFBQT4KKyAgICAgPENDQy8+CisgICAgIDxDQ0MvPgorICAgICA8QkJCPgorICAgICAgICAgIDxDQ0MvPgorICAgICA8L0JCQj4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NoZW1hdHJvbi96dm9uOV8yLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjlfMi5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBiMDg4NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjaGVtYXRyb24venZvbjlfMi5lcnIKQEAgLTAsMCArMSwzIEBACitQYXR0ZXJuOiBUZXN0IGF0dHJpYnV0ZQorL0FBQS9CQkIvQ0NDIGxpbmUgNTogQXR0cmlidXRlIGlkIGlzIG1pc3NpbmcKKy4vdGVzdC9zY2hlbWF0cm9uL3p2b245XzIueG1sIGZhaWxzIHRvIHZhbGlkYXRlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL2Jhc2UgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL2Jhc2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY0MjMxYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjcmlwdHMvYmFzZQpAQCAtMCwwICsxLDQgQEAKKy8gPiAuL3Rlc3Qvc2NyaXB0cy9iYXNlLnhtbAorLyA+IGUgPiBodHRwOi8vZXhhbXBsZS5jb20vYmFzZS8KK2UgPiBpbWcgPiBodHRwOi8vZXhhbXBsZS5jb20vYmFzZS9pbWFnZXMvCitpbWcgPiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL2Jhc2UuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9iYXNlLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9iYXNlLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9iYXNlMiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjcmlwdHMvYmFzZTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNlZGYzNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjcmlwdHMvYmFzZTIKQEAgLTAsMCArMSw0IEBACisvID4gLi90ZXN0L3NjcmlwdHMvYmFzZTIueG1sCisvID4gZSA+IHRlc3Qvc2NyaXB0cy9odG1sLworZSA+IGltZyA+IHRlc3Qvc2NyaXB0cy9pbWFnZXMvCitpbWcgPiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL2Jhc2UyLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjcmlwdHMvYmFzZTIuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL2Jhc2UyLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9zZXQxIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9zZXQxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YzJjOWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDEKQEAgLTAsMCArMSwzIEBACisvID4gLyA+IDw/eG1sIHZlcnNpb249IjEuMCI/PgorPGIvPgorLyA+IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjcmlwdHMvc2V0MS5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDEuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDEuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODEyYjM1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjcmlwdHMvc2V0MwpAQCAtMCwwICsxLDEyIEBACisvID4gYSA+IE9iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBhCisgICAgZGVmYXVsdCBuYW1lc3BhY2UgaHJlZj1iYXIKK2EgPiBhID4gT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDIgbm9kZXM6CisxICBFTEVNRU5UIGEKKyAgICBkZWZhdWx0IG5hbWVzcGFjZSBocmVmPWJhcgorMiAgRUxFTUVOVCBiCithID4gPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8YSB4bWxucz0iYmFyIj48Yi8+PC9hPgorYSA+IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NjcmlwdHMvc2V0My5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDMuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZjBkNjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDMuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L3NjcmlwdHMvc2V0My54bWw6MTogcGFyc2VyIHdhcm5pbmcgOiB4bWxuczogVVJJIGJhciBpcyBub3QgYWJzb2x1dGUKKzxhIHhtbG5zPSJiYXIiPmZvbzwvYT4KKyAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9zZXQ0IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9zZXQ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ZTlhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDQKQEAgLTAsMCArMSw2IEBACisvID4gYiA+IGIgPiBPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgYTpjCitiID4gPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8YSB4bWxuczphPSJiYXIiPjxiIHhtbG5zOmE9ImZvbyI+PGE6Yy8+PC9iPjwvYT4KK2IgPiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zY3JpcHRzL3NldDQuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9zZXQ0LmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2NyaXB0cy9zZXQ0LmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMDA4YWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC5yZGYKQEAgLTAsMCArMSw2NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zPSJodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LyI+CisKKyAgPGNoYW5uZWw+CisgICAgPHRpdGxlPlNsYXNoZG90Ok5ld3MgZm9yIE5lcmRzLiBTdHVmZiB0aGF0IE1hdHRlcnMuPC90aXRsZT4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnLzwvbGluaz4KKyAgICA8ZGVzY3JpcHRpb24+TmV3cyBmb3IgTmVyZHMuICBTdHVmZiB0aGF0IE1hdHRlcnM8L2Rlc2NyaXB0aW9uPgorICA8L2NoYW5uZWw+CisKKyAgPGltYWdlPgorICAgIDx0aXRsZT5TbGFzaGRvdDwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2ltYWdlcy9zbGFzaGRvdGxnLmdpZjwvdXJsPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmc8L2xpbms+CisgIDwvaW1hZ2U+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+MTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tZTwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDQwMjExLnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+R2ltcCAxLjIgUHJldmlldzwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDM4MjQ2LnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+U29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQ8L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzMjI1Ni5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPkFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciAiSGFja2VyIj88L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkb3QvOTkvMDYvMDUvMTgxNTIyNS5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPkNvcmVsIExpbnV4IEZBUTwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xODQyMjE4LnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+VXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLjwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xNTU4MjEwLnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+MiBUZXJhYml0cyBvZiBCYW5kd2lkdGg8L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1NDI1OC5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPlN1cHByZXNzaW9uIG9mIGNvbGQgZnVzaW9uIHJlc2VhcmNoPzwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzEzMjAwLnNodG1sPC9saW5rPgorICA8L2l0ZW0+CisgIAorICA8aXRlbT4KKyAgICA8dGl0bGU+Q2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mbyBTYWxlPC90aXRsZT4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzIzNTI1Ni5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPlJlZCBIYXQgQW5ub3VuY2VzIElQTzwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8wODQ5MjA3LnNodG1sPC9saW5rPgorICA8L2l0ZW0+Cis8L3JkZjpSREY+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC5yZGYucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWNkMjRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnJkZQpAQCAtMCwwICsxLDIxOCBAQAorMCAxIHJkZjpSREYgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworICAKKzEgMSBjaGFubmVsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFNsYXNoZG90Ok5ld3MgZm9yIE5lcmRzLiBTdHVmZiB0aGF0IE1hdHRlcnMuCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy8KKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlc2NyaXB0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBOZXdzIGZvciBOZXJkcy4gIFN0dWZmIHRoYXQgTWF0dGVycworMiAxNSBkZXNjcmlwdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgY2hhbm5lbCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisgIAorMSAxIGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFNsYXNoZG90CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2ltYWdlcy9zbGFzaGRvdGxnLmdpZgorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGltYWdlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorICAKKzEgMSBpdGVtIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbWUKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0NDAyMTEuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKyAgCisxIDEgaXRlbSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBHaW1wIDEuMiBQcmV2aWV3CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDM4MjQ2LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzIyNTYuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKyAgCisxIDEgaXRlbSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBBc2sgU2xhc2hkb3Q6IEFub3RoZXIgV29yZCBmb3IgIkhhY2tlciI/CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hc2tzbGFzaGRvdC85OS8wNi8wNS8xODE1MjI1LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQ29yZWwgTGludXggRkFRCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xODQyMjE4LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgVXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLgorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGxpbmsgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1ODIxMC5zaHRtbAorMiAxNSBsaW5rIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBpdGVtIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorICAKKzEgMSBpdGVtIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xNTU0MjU4LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU3VwcHJlc3Npb24gb2YgY29sZCBmdXNpb24gcmVzZWFyY2g/CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzEzMjAwLnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mbyBTYWxlCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzUyNTYuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKyAgCisxIDEgaXRlbSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBSZWQgSGF0IEFubm91bmNlcyBJUE8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzA4NDkyMDcuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHJkZjpSREYgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC5yZGYucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWNkMjRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnJkcgpAQCAtMCwwICsxLDIxOCBAQAorMCAxIHJkZjpSREYgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworICAKKzEgMSBjaGFubmVsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFNsYXNoZG90Ok5ld3MgZm9yIE5lcmRzLiBTdHVmZiB0aGF0IE1hdHRlcnMuCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy8KKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlc2NyaXB0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBOZXdzIGZvciBOZXJkcy4gIFN0dWZmIHRoYXQgTWF0dGVycworMiAxNSBkZXNjcmlwdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgY2hhbm5lbCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisgIAorMSAxIGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFNsYXNoZG90CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2ltYWdlcy9zbGFzaGRvdGxnLmdpZgorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGltYWdlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorICAKKzEgMSBpdGVtIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbWUKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0NDAyMTEuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKyAgCisxIDEgaXRlbSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBHaW1wIDEuMiBQcmV2aWV3CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDM4MjQ2LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzIyNTYuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKyAgCisxIDEgaXRlbSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBBc2sgU2xhc2hkb3Q6IEFub3RoZXIgV29yZCBmb3IgIkhhY2tlciI/CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hc2tzbGFzaGRvdC85OS8wNi8wNS8xODE1MjI1LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQ29yZWwgTGludXggRkFRCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xODQyMjE4LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgVXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLgorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGxpbmsgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1ODIxMC5zaHRtbAorMiAxNSBsaW5rIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBpdGVtIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorICAKKzEgMSBpdGVtIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xNTU0MjU4LnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU3VwcHJlc3Npb24gb2YgY29sZCBmdXNpb24gcmVzZWFyY2g/CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzEzMjAwLnNodG1sCisyIDE1IGxpbmsgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGl0ZW0gMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisgIAorMSAxIGl0ZW0gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mbyBTYWxlCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgbGluayAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzUyNTYuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKyAgCisxIDEgaXRlbSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBSZWQgSGF0IEFubm91bmNlcyBJUE8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBsaW5rIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzA4NDkyMDcuc2h0bWwKKzIgMTUgbGluayAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaXRlbSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHJkZjpSREYgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC5yZGYuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTU0Mzc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnNheApAQCAtMCwwICsxLDIyMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KHJkZjpSREYsIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIycsIHhtbG5zPSdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKworICAsIDQpCitTQVguc3RhcnRFbGVtZW50KGNoYW5uZWwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoU2xhc2hkb3Q6TmV3cyBmb3IgTmVyZHMuIFN0dWZmLCA0NCkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy8sIDIwKQorU0FYLmVuZEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVzY3JpcHRpb24pCitTQVguY2hhcmFjdGVycyhOZXdzIGZvciBOZXJkcy4gIFN0dWZmIHRoYXQgTWEsIDM1KQorU0FYLmVuZEVsZW1lbnQoZGVzY3JpcHRpb24pCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoY2hhbm5lbCkKK1NBWC5jaGFyYWN0ZXJzKAorCisgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoU2xhc2hkb3QsIDgpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9pbWFnZXMvc2xhLCA0MSkKK1NBWC5lbmRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcsIDE5KQorU0FYLmVuZEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChpdGVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbSwgMzEpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGl0ZW0pCitTQVguY2hhcmFjdGVycygKKyAgCisgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoaXRlbSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhHaW1wIDEuMiBQcmV2aWV3LCAxNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50KGxpbmspCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoaXRlbSkKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChpdGVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKFNvbnkncyBBSUJPIHJvYm90IFNvbGQgT3V0LCAyNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50KGxpbmspCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoaXRlbSkKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChpdGVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKEFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciwgNDApCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkbywgNTQpCitTQVguZW5kRWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGl0ZW0pCitTQVguY2hhcmFjdGVycygKKyAgCisgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoaXRlbSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhDb3JlbCBMaW51eCBGQVEsIDE1KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGxpbmspCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChpdGVtKQorU0FYLmNoYXJhY3RlcnMoCisgIAorICAsIDYpCitTQVguc3RhcnRFbGVtZW50KGl0ZW0pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoVXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLiwgMjUpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGl0ZW0pCitTQVguY2hhcmFjdGVycygKKyAgCisgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoaXRlbSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygyIFRlcmFiaXRzIG9mIEJhbmR3aWR0aCwgMjMpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGl0ZW0pCitTQVguY2hhcmFjdGVycygKKyAgCisgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoaXRlbSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhTdXBwcmVzc2lvbiBvZiBjb2xkIGZ1c2lvbiByZXMsIDM2KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGxpbmspCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChpdGVtKQorU0FYLmNoYXJhY3RlcnMoCisgIAorICAsIDYpCitTQVguc3RhcnRFbGVtZW50KGl0ZW0pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mLCAzNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MCkKK1NBWC5lbmRFbGVtZW50KGxpbmspCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoaXRlbSkKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudChpdGVtKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKFJlZCBIYXQgQW5ub3VuY2VzIElQTywgMjEpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQobGluaykKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudChsaW5rKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGl0ZW0pCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHJkZjpSREYpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC5yZGYuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTYxY2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QucmRmLnNheDIKQEAgLTAsMCArMSwyMjEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKFJERiwgcmRmLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIycsIDIsIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIycsIHhtbG5zPSdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDApCitTQVguY2hhcmFjdGVycygKKworICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMoY2hhbm5lbCwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFNsYXNoZG90Ok5ld3MgZm9yIE5lcmRzLiBTdHVmZiwgNDQpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnLywgMjApCitTQVguZW5kRWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVzY3JpcHRpb24sIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhOZXdzIGZvciBOZXJkcy4gIFN0dWZmIHRoYXQgTWEsIDM1KQorU0FYLmVuZEVsZW1lbnROcyhkZXNjcmlwdGlvbiwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKGNoYW5uZWwsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKworICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhTbGFzaGRvdCwgOCkKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9pbWFnZXMvc2xhLCA0MSkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnLCAxOSkKK1NBWC5lbmRFbGVtZW50TnMobGluaywgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgIAorICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbSwgMzEpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyhsaW5rLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGl0ZW0sIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhHaW1wIDEuMiBQcmV2aWV3LCAxNikKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMobGluaywgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhpdGVtLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgIAorICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFNvbnkncyBBSUJPIHJvYm90IFNvbGQgT3V0LCAyNikKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMobGluaywgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhpdGVtLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgIAorICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciwgNDApCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG8sIDU0KQorU0FYLmVuZEVsZW1lbnROcyhsaW5rLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGl0ZW0sIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhDb3JlbCBMaW51eCBGQVEsIDE1KQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhsaW5rLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnMobGluaywgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKGl0ZW0sIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgCisgICwgNikKK1NBWC5zdGFydEVsZW1lbnROcyhpdGVtLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoVXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLiwgMjUpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyhsaW5rLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGl0ZW0sIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygyIFRlcmFiaXRzIG9mIEJhbmR3aWR0aCwgMjMpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyhsaW5rLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAKKyAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGl0ZW0sIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhTdXBwcmVzc2lvbiBvZiBjb2xkIGZ1c2lvbiByZXMsIDM2KQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhsaW5rLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnMobGluaywgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKGl0ZW0sIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgCisgICwgNikKK1NBWC5zdGFydEVsZW1lbnROcyhpdGVtLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mLCAzNikKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMobGluaywgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTApCitTQVguZW5kRWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhpdGVtLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgIAorICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJywgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFJlZCBIYXQgQW5ub3VuY2VzIElQTywgMjEpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGxpbmssIE5VTEwsICdodHRwOi8vbXkubmV0c2NhcGUuY29tL3JkZi9zaW1wbGUvMC45LycsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyhsaW5rLCBOVUxMLCAnaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoaXRlbSwgTlVMTCwgJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcmRmL3NpbXBsZS8wLjkvJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhSREYsIHJkZiwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjQ4ZDVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QueG1sCkBAIC0wLDAgKzEsMTEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx1bHRyYW1vZGU+CisgPHN0b3J5PgorICAgIDx0aXRsZT4xMDAgTWJpdC9zIG9uIEZpYnJlIHRvIHRoZSBob21lPC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQ0MDIxMS5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDYgMTQ6Mzk6NTk8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PndvdWxkbid0LWl0LWJlLW5pY2U8L2RlcGFydG1lbnQ+CisgICAgPHRvcGljPmludGVybmV0PC90b3BpYz4KKyAgICA8Y29tbWVudHM+MjA8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY2ludGVybmV0LmpwZzwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5HaW1wIDEuMiBQcmV2aWV3PC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzODI0Ni5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDYgMTQ6Mzg6NDA8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnN0dWZmLXRvLXJlYWQ8L2RlcGFydG1lbnQ+CisgICAgPHRvcGljPmdpbXA8L3RvcGljPgorICAgIDxjb21tZW50cz4xMjwvY29tbWVudHM+CisgICAgPHNlY3Rpb24+YXJ0aWNsZXM8L3NlY3Rpb24+CisgICAgPGltYWdlPnRvcGljZ2ltcC5naWY8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+U29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQ8L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDMyMjU2LnNodG1sPC91cmw+CisgICAgPHRpbWU+MTk5OS0wNi0wNiAxNDozMjo1MTwvdGltZT4KKyAgICA8YXV0aG9yPkNtZHJUYWNvPC9hdXRob3I+CisgICAgPGRlcGFydG1lbnQ+c3R1ZmYtdG8tc2VlPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz50ZWNoPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTA8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY3RlY2gyLmpwZzwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5Bc2sgU2xhc2hkb3Q6IEFub3RoZXIgV29yZCBmb3IgIkhhY2tlciI/PC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkb3QvOTkvMDYvMDUvMTgxNTIyNS5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDUgMjA6MDA6MDA8L3RpbWU+CisgICAgPGF1dGhvcj5DbGlmZjwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PmhhY2tlci12cy1jcmFja2VyPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5uZXdzPC90b3BpYz4KKyAgICA8Y29tbWVudHM+Mzg1PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hc2tzbGFzaGRvdDwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNuZXdzLmdpZjwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5Db3JlbCBMaW51eCBGQVE8L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xODQyMjE4LnNodG1sPC91cmw+CisgICAgPHRpbWU+MTk5OS0wNi0wNSAxODo0MjowNjwvdGltZT4KKyAgICA8YXV0aG9yPkNtZHJUYWNvPC9hdXRob3I+CisgICAgPGRlcGFydG1lbnQ+c3R1ZmYtdG8tcmVhZDwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+Y29yZWw8L3RvcGljPgorICAgIDxjb21tZW50cz4xNjQ8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY2NvcmVsLmdpZjwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5VcHNpZGUgZG93bnNpZGVzIE1QMy5DT00uPC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1ODIxMC5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDUgMTU6NTY6NDU8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnN0dWZmLXRvLXRoaW5rLWFib3V0PC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5tdXNpYzwvdG9waWM+CisgICAgPGNvbW1lbnRzPjQ4PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNtdXNpYy5naWY8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+MiBUZXJhYml0cyBvZiBCYW5kd2lkdGg8L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xNTU0MjU4LnNodG1sPC91cmw+CisgICAgPHRpbWU+MTk5OS0wNi0wNSAxNTo1Mzo0MzwvdGltZT4KKyAgICA8YXV0aG9yPkNtZHJUYWNvPC9hdXRob3I+CisgICAgPGRlcGFydG1lbnQ+ZmFzdGVyLXBvcm48L2RlcGFydG1lbnQ+CisgICAgPHRvcGljPmludGVybmV0PC90b3BpYz4KKyAgICA8Y29tbWVudHM+NjY8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY2ludGVybmV0LmpwZzwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5TdXBwcmVzc2lvbiBvZiBjb2xkIGZ1c2lvbiByZXNlYXJjaD88L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzEzMjAwLnNodG1sPC91cmw+CisgICAgPHRpbWU+MTk5OS0wNi0wNCAyMzoxMjoyOTwvdGltZT4KKyAgICA8YXV0aG9yPkhlbW9zPC9hdXRob3I+CisgICAgPGRlcGFydG1lbnQ+cG9zc2libHktcHJvYmFibHk8L2RlcGFydG1lbnQ+CisgICAgPHRvcGljPnNjaWVuY2U8L3RvcGljPgorICAgIDxjb21tZW50cz4yMTc8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY3NjaWVuY2UuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKyA8c3Rvcnk+CisgICAgPHRpdGxlPkNhbGlmb3JuaWEgR292LiBIYWx0cyBXYWdlIEluZm8gU2FsZTwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzIzNTI1Ni5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDQgMjM6MDU6MzQ8L3RpbWU+CisgICAgPGF1dGhvcj5IZW1vczwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50Pndvby1ob28hPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz51c2E8L3RvcGljPgorICAgIDxjb21tZW50cz4xNjwvY29tbWVudHM+CisgICAgPHNlY3Rpb24+YXJ0aWNsZXM8L3NlY3Rpb24+CisgICAgPGltYWdlPnRvcGljdXMuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKyA8c3Rvcnk+CisgICAgPHRpdGxlPlJlZCBIYXQgQW5ub3VuY2VzIElQTzwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzA4NDkyMDcuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA0IDE5OjMwOjE4PC90aW1lPgorICAgIDxhdXRob3I+SnVzdGluPC9hdXRob3I+CisgICAgPGRlcGFydG1lbnQ+ZGV0YWlscy1za2V0Y2h5PC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5yZWRoYXQ8L3RvcGljPgorICAgIDxjb21tZW50cz4xNTU8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY3JlZGhhdC5naWY8L2ltYWdlPgorICA8L3N0b3J5PgorPC91bHRyYW1vZGU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmI2ODM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QueG1sLnJkZQpAQCAtMCwwICsxLDUxNCBAQAorMCAxIHVsdHJhbW9kZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbWUKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQ0MDIxMS5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA2IDE0OjM5OjU5CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHdvdWxkbid0LWl0LWJlLW5pY2UKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBpbnRlcm5ldAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAyMAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNpbnRlcm5ldC5qcGcKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgR2ltcCAxLjIgUHJldmlldworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDM4MjQ2LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6Mzg6NDAKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tcmVhZAorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGdpbXAKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTIKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljZ2ltcC5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzMjI1Ni5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA2IDE0OjMyOjUxCisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHN0dWZmLXRvLXNlZQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIHRlY2gKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTAKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljdGVjaDIuanBnCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIEFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciAiSGFja2VyIj8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkb3QvOTkvMDYvMDUvMTgxNTIyNS5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDIwOjAwOjAwCisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENsaWZmCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIGhhY2tlci12cy1jcmFja2VyCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgbmV3cworMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAzODUKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhc2tzbGFzaGRvdAorMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljbmV3cy5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQ29yZWwgTGludXggRkFRCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA1LzE4NDIyMTguc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNSAxODo0MjowNgorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBDbWRyVGFjbworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBzdHVmZi10by1yZWFkCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgY29yZWwKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTY0CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY2NvcmVsLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBVcHNpZGUgZG93bnNpZGVzIE1QMy5DT00uCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA1LzE1NTgyMTAuc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNSAxNTo1Njo0NQorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBDbWRyVGFjbworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBzdHVmZi10by10aGluay1hYm91dAorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIG11c2ljCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDQ4CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY211c2ljLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSAyIFRlcmFiaXRzIG9mIEJhbmR3aWR0aAorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xNTU0MjU4LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDUgMTU6NTM6NDMKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgZmFzdGVyLXBvcm4KKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBpbnRlcm5ldAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSA2NgorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNpbnRlcm5ldC5qcGcKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU3VwcHJlc3Npb24gb2YgY29sZCBmdXNpb24gcmVzZWFyY2g/CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzIzMTMyMDAuc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNCAyMzoxMjoyOQorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBIZW1vcworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBwb3NzaWJseS1wcm9iYWJseQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIHNjaWVuY2UKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMjE3CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY3NjaWVuY2UuZ2lmCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIENhbGlmb3JuaWEgR292LiBIYWx0cyBXYWdlIEluZm8gU2FsZQorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzUyNTYuc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNCAyMzowNTozNAorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBIZW1vcworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSB3b28taG9vIQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIHVzYQorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxNgorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWN1cy5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgUmVkIEhhdCBBbm5vdW5jZXMgSVBPCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzA4NDkyMDcuc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNCAxOTozMDoxOAorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBKdXN0aW4KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgZGV0YWlscy1za2V0Y2h5CisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgcmVkaGF0CisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDE1NQorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNyZWRoYXQuZ2lmCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IHVsdHJhbW9kZSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90LnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YjY4MzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdC54bWwucmRyCkBAIC0wLDAgKzEsNTE0IEBACiswIDEgdWx0cmFtb2RlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tZQorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDQwMjExLnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6Mzk6NTkKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgd291bGRuJ3QtaXQtYmUtbmljZQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGludGVybmV0CisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDIwCisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY2ludGVybmV0LmpwZworMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBHaW1wIDEuMiBQcmV2aWV3CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzgyNDYuc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNiAxNDozODo0MAorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBDbWRyVGFjbworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBzdHVmZi10by1yZWFkCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgZ2ltcAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxMgorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNnaW1wLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBTb255J3MgQUlCTyByb2JvdCBTb2xkIE91dAorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDMyMjU2LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6MzI6NTEKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tc2VlCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgdGVjaAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxMAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWN0ZWNoMi5qcGcKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQXNrIFNsYXNoZG90OiBBbm90aGVyIFdvcmQgZm9yICJIYWNrZXIiPworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hc2tzbGFzaGRvdC85OS8wNi8wNS8xODE1MjI1LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDUgMjA6MDA6MDAKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ2xpZmYKKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgaGFja2VyLXZzLWNyYWNrZXIKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBuZXdzCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDM4NQorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFza3NsYXNoZG90CisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNuZXdzLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBDb3JlbCBMaW51eCBGQVEKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTg0MjIxOC5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDE4OjQyOjA2CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHN0dWZmLXRvLXJlYWQKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBjb3JlbAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxNjQKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljY29yZWwuZ2lmCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFVwc2lkZSBkb3duc2lkZXMgTVAzLkNPTS4KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1ODIxMC5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDE1OjU2OjQ1CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHN0dWZmLXRvLXRoaW5rLWFib3V0CisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgbXVzaWMKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgNDgKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljbXVzaWMuZ2lmCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA1LzE1NTQyNTguc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNSAxNTo1Mzo0MworMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBDbWRyVGFjbworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBmYXN0ZXItcG9ybgorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGludGVybmV0CisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDY2CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY2ludGVybmV0LmpwZworMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBTdXBwcmVzc2lvbiBvZiBjb2xkIGZ1c2lvbiByZXNlYXJjaD8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMjMxMzIwMC5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA0IDIzOjEyOjI5CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIEhlbW9zCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHBvc3NpYmx5LXByb2JhYmx5CisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgc2NpZW5jZQorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAyMTcKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljc2NpZW5jZS5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mbyBTYWxlCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzIzNTI1Ni5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA0IDIzOjA1OjM0CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIEhlbW9zCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHdvby1ob28hCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgdXNhCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDE2CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY3VzLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBSZWQgSGF0IEFubm91bmNlcyBJUE8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMDg0OTIwNy5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA0IDE5OjMwOjE4CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIEp1c3RpbgorMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBkZXRhaWxzLXNrZXRjaHkKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSByZWRoYXQKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTU1CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY3JlZGhhdC5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgdWx0cmFtb2RlIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90LnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNiNWYwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90LnhtbC5zYXgKQEAgLTAsMCArMSw1MTcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudCh1bHRyYW1vZGUpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbSwgMzEpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6Mzk6NTksIDE5KQorU0FYLmVuZEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycyh3b3VsZG4ndC1pdC1iZS1uaWNlLCAxOSkKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoaW50ZXJuZXQsIDgpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygyMCwgMikKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljaW50ZXJuZXQuanBnLCAxNykKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhHaW1wIDEuMiBQcmV2aWV3LCAxNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNiAxNDozODo0MCwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXJlYWQsIDEzKQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhnaW1wLCA0KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMTIsIDIpCitTQVguZW5kRWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY2dpbXAuZ2lmLCAxMykKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhTb255J3MgQUlCTyByb2JvdCBTb2xkIE91dCwgMjYpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6MzI6NTEsIDE5KQorU0FYLmVuZEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycyhzdHVmZi10by1zZWUsIDEyKQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyh0ZWNoLCA0KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMTAsIDIpCitTQVguZW5kRWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY3RlY2gyLmpwZywgMTQpCitTQVguZW5kRWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoQXNrIFNsYXNoZG90OiBBbm90aGVyIFdvcmQgZm9yLCA0MCkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG8sIDU0KQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAyMDowMDowMCwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbGlmZiwgNSkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKGhhY2tlci12cy1jcmFja2VyLCAxNykKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMobmV3cywgNCkKK1NBWC5lbmRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKDM4NSwgMykKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXNrc2xhc2hkb3QsIDExKQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY25ld3MuZ2lmLCAxMykKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhDb3JlbCBMaW51eCBGQVEsIDE1KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA1IDE4OjQyOjA2LCAxOSkKK1NBWC5lbmRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoc3R1ZmYtdG8tcmVhZCwgMTMpCitTQVguZW5kRWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKGNvcmVsLCA1KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMTY0LCAzKQorU0FYLmVuZEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnModG9waWNjb3JlbC5naWYsIDE0KQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKFVwc2lkZSBkb3duc2lkZXMgTVAzLkNPTS4sIDI1KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA1IDE1OjU2OjQ1LCAxOSkKK1NBWC5lbmRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoc3R1ZmYtdG8tdGhpbmstYWJvdXQsIDIwKQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhtdXNpYywgNSkKK1NBWC5lbmRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKDQ4LCAyKQorU0FYLmVuZEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnModG9waWNtdXNpYy5naWYsIDE0KQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKDIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoLCAyMykKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAxNTo1Mzo0MywgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKGZhc3Rlci1wb3JuLCAxMSkKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoaW50ZXJuZXQsIDgpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycyg2NiwgMikKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljaW50ZXJuZXQuanBnLCAxNykKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhTdXBwcmVzc2lvbiBvZiBjb2xkIGZ1c2lvbiByZXMsIDM2KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA0IDIzOjEyOjI5LCAxOSkKK1NBWC5lbmRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKEhlbW9zLCA1KQorU0FYLmVuZEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMocG9zc2libHktcHJvYmFibHksIDE3KQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhzY2llbmNlLCA3KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMjE3LCAzKQorU0FYLmVuZEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnModG9waWNzY2llbmNlLmdpZiwgMTYpCitTQVguZW5kRWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mLCAzNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUwKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNCAyMzowNTozNCwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhIZW1vcywgNSkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHdvby1ob28hLCA4KQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyh1c2EsIDMpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygxNiwgMikKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljdXMuZ2lmLCAxMSkKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhSZWQgSGF0IEFubm91bmNlcyBJUE8sIDIxKQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA0IDE5OjMwOjE4LCAxOSkKK1NBWC5lbmRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKEp1c3RpbiwgNikKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKGRldGFpbHMtc2tldGNoeSwgMTUpCitTQVguZW5kRWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKHJlZGhhdCwgNikKK1NBWC5lbmRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKDE1NSwgMykKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljcmVkaGF0LmdpZiwgMTUpCitTQVguZW5kRWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQodWx0cmFtb2RlKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90LnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmVhZDcwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90LnhtbC5zYXgyCkBAIC0wLDAgKzEsNTE3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyh1bHRyYW1vZGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxMDAgTWJpdC9zIG9uIEZpYnJlIHRvIHRoZSBob20sIDMxKQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6Mzk6NTksIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHdvdWxkbid0LWl0LWJlLW5pY2UsIDE5KQorU0FYLmVuZEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaW50ZXJuZXQsIDgpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMjAsIDIpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljaW50ZXJuZXQuanBnLCAxNykKK1NBWC5lbmRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEdpbXAgMS4yIFByZXZpZXcsIDE2KQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6Mzg6NDAsIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXJlYWQsIDEzKQorU0FYLmVuZEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoZ2ltcCwgNCkKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxMiwgMikKK1NBWC5lbmRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnModG9waWNnaW1wLmdpZiwgMTMpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhTb255J3MgQUlCTyByb2JvdCBTb2xkIE91dCwgMjYpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNiAxNDozMjo1MSwgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoc3R1ZmYtdG8tc2VlLCAxMikKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRlY2gsIDQpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTAsIDIpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljdGVjaDIuanBnLCAxNCkKK1NBWC5lbmRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciwgNDApCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkbywgNTQpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAyMDowMDowMCwgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ2xpZmYsIDUpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaGFja2VyLXZzLWNyYWNrZXIsIDE3KQorU0FYLmVuZEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMobmV3cywgNCkKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygzODUsIDMpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhc2tzbGFzaGRvdCwgMTEpCitTQVguZW5kRWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0b3BpY25ld3MuZ2lmLCAxMykKK1NBWC5lbmRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENvcmVsIExpbnV4IEZBUSwgMTUpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAxODo0MjowNiwgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoc3R1ZmYtdG8tcmVhZCwgMTMpCitTQVguZW5kRWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhjb3JlbCwgNSkKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxNjQsIDMpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljY29yZWwuZ2lmLCAxNCkKK1NBWC5lbmRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFVwc2lkZSBkb3duc2lkZXMgTVAzLkNPTS4sIDI1KQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDUgMTU6NTY6NDUsIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXRoaW5rLWFib3V0LCAyMCkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKG11c2ljLCA1KQorU0FYLmVuZEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDQ4LCAyKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0b3BpY211c2ljLmdpZiwgMTQpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygyIFRlcmFiaXRzIG9mIEJhbmR3aWR0aCwgMjMpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAxNTo1Mzo0MywgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoZmFzdGVyLXBvcm4sIDExKQorU0FYLmVuZEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaW50ZXJuZXQsIDgpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoNjYsIDIpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljaW50ZXJuZXQuanBnLCAxNykKK1NBWC5lbmRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFN1cHByZXNzaW9uIG9mIGNvbGQgZnVzaW9uIHJlcywgMzYpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNCAyMzoxMjoyOSwgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSGVtb3MsIDUpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMocG9zc2libHktcHJvYmFibHksIDE3KQorU0FYLmVuZEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoc2NpZW5jZSwgNykKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygyMTcsIDMpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljc2NpZW5jZS5naWYsIDE2KQorU0FYLmVuZEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mLCAzNikKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MCkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA0IDIzOjA1OjM0LCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIZW1vcywgNSkKK1NBWC5lbmRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh3b28taG9vISwgOCkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHVzYSwgMykKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxNiwgMikKK1NBWC5lbmRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnModG9waWN1cy5naWYsIDExKQorU0FYLmVuZEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoUmVkIEhhdCBBbm5vdW5jZXMgSVBPLCAyMSkKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA0IDE5OjMwOjE4LCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhKdXN0aW4sIDYpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoZGV0YWlscy1za2V0Y2h5LCAxNSkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHJlZGhhdCwgNikKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxNTUsIDMpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljcmVkaGF0LmdpZiwgMTUpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnModWx0cmFtb2RlLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90MTYueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QxNi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZhN2YyYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90MTYueG1sCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90MTYueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90MTYueG1sLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjdhODZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QxNi54bWwucmRlCkBAIC0wLDAgKzEsNzE4IEBACiswIDEgdWx0cmFtb2RlIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tZQorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDQwMjExLnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6Mzk6NTkKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgd291bGRuJ3QtaXQtYmUtbmljZQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGludGVybmV0CisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDIwCisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY2ludGVybmV0LmpwZworMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBHaW1wIDEuMiBQcmV2aWV3CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzgyNDYuc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNiAxNDozODo0MAorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBDbWRyVGFjbworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBzdHVmZi10by1yZWFkCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgZ2ltcAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxMgorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNnaW1wLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBTb255J3MgQUlCTyByb2JvdCBTb2xkIE91dAorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDMyMjU2LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6MzI6NTEKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tc2VlCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgdGVjaAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxMAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWN0ZWNoMi5qcGcKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQXNrIFNsYXNoZG90OiBBbm90aGVyIFdvcmQgZm9yICJIYWNrZXIiPworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hc2tzbGFzaGRvdC85OS8wNi8wNS8xODE1MjI1LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDUgMjA6MDA6MDAKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ2xpZmYKKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgaGFja2VyLXZzLWNyYWNrZXIKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBuZXdzCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDM4NQorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFza3NsYXNoZG90CisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNuZXdzLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tZQorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDQwMjExLnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6Mzk6NTkKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgd291bGRuJ3QtaXQtYmUtbmljZQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGludGVybmV0CisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDIwCisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY2ludGVybmV0LmpwZworMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBHaW1wIDEuMiBQcmV2aWV3CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzgyNDYuc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNiAxNDozODo0MAorMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBDbWRyVGFjbworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBzdHVmZi10by1yZWFkCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgZ2ltcAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxMgorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNnaW1wLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBTb255J3MgQUlCTyByb2JvdCBTb2xkIE91dAorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDMyMjU2LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6MzI6NTEKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tc2VlCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgdGVjaAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxMAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWN0ZWNoMi5qcGcKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQXNrIFNsYXNoZG90OiBBbm90aGVyIFdvcmQgZm9yICJIYWNrZXIiPworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hc2tzbGFzaGRvdC85OS8wNi8wNS8xODE1MjI1LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDUgMjA6MDA6MDAKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ2xpZmYKKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgaGFja2VyLXZzLWNyYWNrZXIKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBuZXdzCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDM4NQorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFza3NsYXNoZG90CisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNuZXdzLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIENvcmVsIExpbnV4IEZBUQorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xODQyMjE4LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDUgMTg6NDI6MDYKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tcmVhZAorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGNvcmVsCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDE2NAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNjb3JlbC5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgVXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLgorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNS8xNTU4MjEwLnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDUgMTU6NTY6NDUKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tdGhpbmstYWJvdXQKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBtdXNpYworMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSA0OAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNtdXNpYy5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgMiBUZXJhYml0cyBvZiBCYW5kd2lkdGgKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1NDI1OC5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDE1OjUzOjQzCisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIGZhc3Rlci1wb3JuCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgaW50ZXJuZXQKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgNjYKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljaW50ZXJuZXQuanBnCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFN1cHByZXNzaW9uIG9mIGNvbGQgZnVzaW9uIHJlc2VhcmNoPworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzEzMjAwLnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDQgMjM6MTI6MjkKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgSGVtb3MKKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgcG9zc2libHktcHJvYmFibHkKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBzY2llbmNlCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDIxNworMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNzY2llbmNlLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBDYWxpZm9ybmlhIEdvdi4gSGFsdHMgV2FnZSBJbmZvIFNhbGUKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMjM1MjU2LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDQgMjM6MDU6MzQKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgSGVtb3MKKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgd29vLWhvbyEKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSB1c2EKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTYKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljdXMuZ2lmCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFJlZCBIYXQgQW5ub3VuY2VzIElQTworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8wODQ5MjA3LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDQgMTk6MzA6MTgKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgSnVzdGluCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIGRldGFpbHMtc2tldGNoeQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIHJlZGhhdAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxNTUKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljcmVkaGF0LmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSB1bHRyYW1vZGUgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdDE2LnhtbC5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdDE2LnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I3YTg2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3NsYXNoZG90MTYueG1sLnJkcgpAQCAtMCwwICsxLDcxOCBAQAorMCAxIHVsdHJhbW9kZSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbWUKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQ0MDIxMS5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA2IDE0OjM5OjU5CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHdvdWxkbid0LWl0LWJlLW5pY2UKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBpbnRlcm5ldAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAyMAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNpbnRlcm5ldC5qcGcKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgR2ltcCAxLjIgUHJldmlldworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDM4MjQ2LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6Mzg6NDAKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tcmVhZAorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGdpbXAKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTIKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljZ2ltcC5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzMjI1Ni5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA2IDE0OjMyOjUxCisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHN0dWZmLXRvLXNlZQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIHRlY2gKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTAKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljdGVjaDIuanBnCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIEFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciAiSGFja2VyIj8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkb3QvOTkvMDYvMDUvMTgxNTIyNS5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDIwOjAwOjAwCisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENsaWZmCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIGhhY2tlci12cy1jcmFja2VyCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgbmV3cworMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAzODUKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhc2tzbGFzaGRvdAorMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljbmV3cy5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbWUKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQ0MDIxMS5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA2IDE0OjM5OjU5CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHdvdWxkbid0LWl0LWJlLW5pY2UKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBpbnRlcm5ldAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAyMAorMiAxNSBjb21tZW50cyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHNlY3Rpb24gMCAwCiszIDMgI3RleHQgMCAxIGFydGljbGVzCisyIDE1IHNlY3Rpb24gMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBpbWFnZSAwIDAKKzMgMyAjdGV4dCAwIDEgdG9waWNpbnRlcm5ldC5qcGcKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgR2ltcCAxLjIgUHJldmlldworMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHVybCAwIDAKKzMgMyAjdGV4dCAwIDEgaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNi8xNDM4MjQ2LnNodG1sCisyIDE1IHVybCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpbWUgMCAwCiszIDMgI3RleHQgMCAxIDE5OTktMDYtMDYgMTQ6Mzg6NDAKKzIgMTUgdGltZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGF1dGhvciAwIDAKKzMgMyAjdGV4dCAwIDEgQ21kclRhY28KKzIgMTUgYXV0aG9yIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgZGVwYXJ0bWVudCAwIDAKKzMgMyAjdGV4dCAwIDEgc3R1ZmYtdG8tcmVhZAorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGdpbXAKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTIKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljZ2ltcC5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgU29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzMjI1Ni5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA2IDE0OjMyOjUxCisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHN0dWZmLXRvLXNlZQorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIHRlY2gKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTAKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljdGVjaDIuanBnCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIEFzayBTbGFzaGRvdDogQW5vdGhlciBXb3JkIGZvciAiSGFja2VyIj8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkb3QvOTkvMDYvMDUvMTgxNTIyNS5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDIwOjAwOjAwCisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENsaWZmCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIGhhY2tlci12cy1jcmFja2VyCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgbmV3cworMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAzODUKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhc2tzbGFzaGRvdAorMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljbmV3cy5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBDb3JlbCBMaW51eCBGQVEKKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTg0MjIxOC5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDE4OjQyOjA2CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHN0dWZmLXRvLXJlYWQKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSBjb3JlbAorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAxNjQKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljY29yZWwuZ2lmCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFVwc2lkZSBkb3duc2lkZXMgTVAzLkNPTS4KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1ODIxMC5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA1IDE1OjU2OjQ1CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIENtZHJUYWNvCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHN0dWZmLXRvLXRoaW5rLWFib3V0CisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgbXVzaWMKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgNDgKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljbXVzaWMuZ2lmCisyIDE1IGltYWdlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBzdG9yeSAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIHN0b3J5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIDIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA1LzE1NTQyNTguc2h0bWwKKzIgMTUgdXJsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGltZSAwIDAKKzMgMyAjdGV4dCAwIDEgMTk5OS0wNi0wNSAxNTo1Mzo0MworMiAxNSB0aW1lIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgYXV0aG9yIDAgMAorMyAzICN0ZXh0IDAgMSBDbWRyVGFjbworMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBmYXN0ZXItcG9ybgorMiAxNSBkZXBhcnRtZW50IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdG9waWMgMCAwCiszIDMgI3RleHQgMCAxIGludGVybmV0CisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDY2CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY2ludGVybmV0LmpwZworMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBTdXBwcmVzc2lvbiBvZiBjb2xkIGZ1c2lvbiByZXNlYXJjaD8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMjMxMzIwMC5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA0IDIzOjEyOjI5CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIEhlbW9zCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHBvc3NpYmx5LXByb2JhYmx5CisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgc2NpZW5jZQorMiAxNSB0b3BpYyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGNvbW1lbnRzIDAgMAorMyAzICN0ZXh0IDAgMSAyMTcKKzIgMTUgY29tbWVudHMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBzZWN0aW9uIDAgMAorMyAzICN0ZXh0IDAgMSBhcnRpY2xlcworMiAxNSBzZWN0aW9uIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgaW1hZ2UgMCAwCiszIDMgI3RleHQgMCAxIHRvcGljc2NpZW5jZS5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgc3RvcnkgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mbyBTYWxlCisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdXJsIDAgMAorMyAzICN0ZXh0IDAgMSBodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA0LzIzNTI1Ni5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA0IDIzOjA1OjM0CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIEhlbW9zCisyIDE1IGF1dGhvciAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGRlcGFydG1lbnQgMCAwCiszIDMgI3RleHQgMCAxIHdvby1ob28hCisyIDE1IGRlcGFydG1lbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0b3BpYyAwIDAKKzMgMyAjdGV4dCAwIDEgdXNhCisyIDE1IHRvcGljIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgY29tbWVudHMgMCAwCiszIDMgI3RleHQgMCAxIDE2CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY3VzLmdpZgorMiAxNSBpbWFnZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgc3RvcnkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBzdG9yeSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRpdGxlIDAgMAorMyAzICN0ZXh0IDAgMSBSZWQgSGF0IEFubm91bmNlcyBJUE8KKzIgMTUgdGl0bGUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB1cmwgMCAwCiszIDMgI3RleHQgMCAxIGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMDg0OTIwNy5zaHRtbAorMiAxNSB1cmwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aW1lIDAgMAorMyAzICN0ZXh0IDAgMSAxOTk5LTA2LTA0IDE5OjMwOjE4CisyIDE1IHRpbWUgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBhdXRob3IgMCAwCiszIDMgI3RleHQgMCAxIEp1c3RpbgorMiAxNSBhdXRob3IgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBkZXBhcnRtZW50IDAgMAorMyAzICN0ZXh0IDAgMSBkZXRhaWxzLXNrZXRjaHkKKzIgMTUgZGVwYXJ0bWVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHRvcGljIDAgMAorMyAzICN0ZXh0IDAgMSByZWRoYXQKKzIgMTUgdG9waWMgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSBjb21tZW50cyAwIDAKKzMgMyAjdGV4dCAwIDEgMTU1CisyIDE1IGNvbW1lbnRzIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgc2VjdGlvbiAwIDAKKzMgMyAjdGV4dCAwIDEgYXJ0aWNsZXMKKzIgMTUgc2VjdGlvbiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGltYWdlIDAgMAorMyAzICN0ZXh0IDAgMSB0b3BpY3JlZGhhdC5naWYKKzIgMTUgaW1hZ2UgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IHN0b3J5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgdWx0cmFtb2RlIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QxNi54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QxNi54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3Y2ZhZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdDE2LnhtbC5zYXgKQEAgLTAsMCArMSw3MjEgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudCh1bHRyYW1vZGUpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKDEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbSwgMzEpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6Mzk6NTksIDE5KQorU0FYLmVuZEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycyh3b3VsZG4ndC1pdC1iZS1uaWNlLCAxOSkKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoaW50ZXJuZXQsIDgpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygyMCwgMikKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljaW50ZXJuZXQuanBnLCAxNykKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhHaW1wIDEuMiBQcmV2aWV3LCAxNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNiAxNDozODo0MCwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXJlYWQsIDEzKQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhnaW1wLCA0KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMTIsIDIpCitTQVguZW5kRWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY2dpbXAuZ2lmLCAxMykKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhTb255J3MgQUlCTyByb2JvdCBTb2xkIE91dCwgMjYpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6MzI6NTEsIDE5KQorU0FYLmVuZEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycyhzdHVmZi10by1zZWUsIDEyKQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyh0ZWNoLCA0KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMTAsIDIpCitTQVguZW5kRWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY3RlY2gyLmpwZywgMTQpCitTQVguZW5kRWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoQXNrIFNsYXNoZG90OiBBbm90aGVyIFdvcmQgZm9yLCA0MCkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG8sIDU0KQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAyMDowMDowMCwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbGlmZiwgNSkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKGhhY2tlci12cy1jcmFja2VyLCAxNykKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMobmV3cywgNCkKK1NBWC5lbmRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKDM4NSwgMykKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXNrc2xhc2hkb3QsIDExKQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY25ld3MuZ2lmLCAxMykKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoMTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tLCAzMSkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNiAxNDozOTo1OSwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHdvdWxkbid0LWl0LWJlLW5pY2UsIDE5KQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhpbnRlcm5ldCwgOCkKK1NBWC5lbmRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKDIwLCAyKQorU0FYLmVuZEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnModG9waWNpbnRlcm5ldC5qcGcsIDE3KQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKEdpbXAgMS4yIFByZXZpZXcsIDE2KQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA2IDE0OjM4OjQwLCAxOSkKK1NBWC5lbmRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoc3R1ZmYtdG8tcmVhZCwgMTMpCitTQVguZW5kRWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKGdpbXAsIDQpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygxMiwgMikKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljZ2ltcC5naWYsIDEzKQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKFNvbnkncyBBSUJPIHJvYm90IFNvbGQgT3V0LCAyNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNiAxNDozMjo1MSwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXNlZSwgMTIpCitTQVguZW5kRWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKHRlY2gsIDQpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygxMCwgMikKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljdGVjaDIuanBnLCAxNCkKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhBc2sgU2xhc2hkb3Q6IEFub3RoZXIgV29yZCBmb3IsIDQwKQorU0FYLmVuZEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXNrc2xhc2hkbywgNTQpCitTQVguZW5kRWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA1IDIwOjAwOjAwLCAxOSkKK1NBWC5lbmRFbGVtZW50KHRpbWUpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKENsaWZmLCA1KQorU0FYLmVuZEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoaGFja2VyLXZzLWNyYWNrZXIsIDE3KQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhuZXdzLCA0KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMzg1LCAzKQorU0FYLmVuZEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHNlY3Rpb24pCitTQVguY2hhcmFjdGVycyhhc2tzbGFzaGRvdCwgMTEpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljbmV3cy5naWYsIDEzKQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoQ29yZWwgTGludXggRkFRLCAxNSkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAxODo0MjowNiwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXJlYWQsIDEzKQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhjb3JlbCwgNSkKK1NBWC5lbmRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKDE2NCwgMykKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljY29yZWwuZ2lmLCAxNCkKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhVcHNpZGUgZG93bnNpZGVzIE1QMy5DT00uLCAyNSkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAxNTo1Njo0NSwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXRoaW5rLWFib3V0LCAyMCkKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMobXVzaWMsIDUpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycyg0OCwgMikKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljbXVzaWMuZ2lmLCAxNCkKK1NBWC5lbmRFbGVtZW50KGltYWdlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycygyIFRlcmFiaXRzIG9mIEJhbmR3aWR0aCwgMjMpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDUgMTU6NTM6NDMsIDE5KQorU0FYLmVuZEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycyhmYXN0ZXItcG9ybiwgMTEpCitTQVguZW5kRWxlbWVudChkZXBhcnRtZW50KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKGludGVybmV0LCA4KQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoNjYsIDIpCitTQVguZW5kRWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY2ludGVybmV0LmpwZywgMTcpCitTQVguZW5kRWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoU3VwcHJlc3Npb24gb2YgY29sZCBmdXNpb24gcmVzLCAzNikKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNCAyMzoxMjoyOSwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhIZW1vcywgNSkKK1NBWC5lbmRFbGVtZW50KGF1dGhvcikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKHBvc3NpYmx5LXByb2JhYmx5LCAxNykKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoc2NpZW5jZSwgNykKK1NBWC5lbmRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKDIxNywgMykKK1NBWC5lbmRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudChzZWN0aW9uKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljc2NpZW5jZS5naWYsIDE2KQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KHN0b3J5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKENhbGlmb3JuaWEgR292LiBIYWx0cyBXYWdlIEluZiwgMzYpCitTQVguZW5kRWxlbWVudCh0aXRsZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MCkKK1NBWC5lbmRFbGVtZW50KHVybCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDQgMjM6MDU6MzQsIDE5KQorU0FYLmVuZEVsZW1lbnQodGltZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoYXV0aG9yKQorU0FYLmNoYXJhY3RlcnMoSGVtb3MsIDUpCitTQVguZW5kRWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycyh3b28taG9vISwgOCkKK1NBWC5lbmRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRvcGljKQorU0FYLmNoYXJhY3RlcnModXNhLCAzKQorU0FYLmVuZEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGNvbW1lbnRzKQorU0FYLmNoYXJhY3RlcnMoMTYsIDIpCitTQVguZW5kRWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY3VzLmdpZiwgMTEpCitTQVguZW5kRWxlbWVudChpbWFnZSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChzdG9yeSkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoUmVkIEhhdCBBbm5vdW5jZXMgSVBPLCAyMSkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh1cmwpCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnQodXJsKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNCAxOTozMDoxOCwgMTkpCitTQVguZW5kRWxlbWVudCh0aW1lKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycyhKdXN0aW4sIDYpCitTQVguZW5kRWxlbWVudChhdXRob3IpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGRlcGFydG1lbnQpCitTQVguY2hhcmFjdGVycyhkZXRhaWxzLXNrZXRjaHksIDE1KQorU0FYLmVuZEVsZW1lbnQoZGVwYXJ0bWVudCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQodG9waWMpCitTQVguY2hhcmFjdGVycyhyZWRoYXQsIDYpCitTQVguZW5kRWxlbWVudCh0b3BpYykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoY29tbWVudHMpCitTQVguY2hhcmFjdGVycygxNTUsIDMpCitTQVguZW5kRWxlbWVudChjb21tZW50cykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnQoc2VjdGlvbikKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycyh0b3BpY3JlZGhhdC5naWYsIDE1KQorU0FYLmVuZEVsZW1lbnQoaW1hZ2UpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnQoc3RvcnkpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHVsdHJhbW9kZSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zbGFzaGRvdDE2LnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QxNi54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODVlNjk5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc2xhc2hkb3QxNi54bWwuc2F4MgpAQCAtMCwwICsxLDcyMSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnModWx0cmFtb2RlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tLCAzMSkKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA2IDE0OjM5OjU5LCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh3b3VsZG4ndC1pdC1iZS1uaWNlLCAxOSkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGludGVybmV0LCA4KQorU0FYLmVuZEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDIwLCAyKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0b3BpY2ludGVybmV0LmpwZywgMTcpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhHaW1wIDEuMiBQcmV2aWV3LCAxNikKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA2IDE0OjM4OjQwLCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhzdHVmZi10by1yZWFkLCAxMykKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGdpbXAsIDQpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTIsIDIpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljZ2ltcC5naWYsIDEzKQorU0FYLmVuZEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoU29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQsIDI2KQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6MzI6NTEsIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXNlZSwgMTIpCitTQVguZW5kRWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0ZWNoLCA0KQorU0FYLmVuZEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDEwLCAyKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0b3BpY3RlY2gyLmpwZywgMTQpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhBc2sgU2xhc2hkb3Q6IEFub3RoZXIgV29yZCBmb3IsIDQwKQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG8sIDU0KQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDUgMjA6MDA6MDAsIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENsaWZmLCA1KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGhhY2tlci12cy1jcmFja2VyLCAxNykKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKG5ld3MsIDQpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMzg1LCAzKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXNrc2xhc2hkb3QsIDExKQorU0FYLmVuZEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnModG9waWNuZXdzLmdpZiwgMTMpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tLCAzMSkKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA2IDE0OjM5OjU5LCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh3b3VsZG4ndC1pdC1iZS1uaWNlLCAxOSkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGludGVybmV0LCA4KQorU0FYLmVuZEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDIwLCAyKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0b3BpY2ludGVybmV0LmpwZywgMTcpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhHaW1wIDEuMiBQcmV2aWV3LCAxNikKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA2IDE0OjM4OjQwLCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhDbWRyVGFjbywgOCkKK1NBWC5lbmRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhzdHVmZi10by1yZWFkLCAxMykKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGdpbXAsIDQpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTIsIDIpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljZ2ltcC5naWYsIDEzKQorU0FYLmVuZEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoU29ueSdzIEFJQk8gcm9ib3QgU29sZCBPdXQsIDI2KQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDYgMTQ6MzI6NTEsIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXNlZSwgMTIpCitTQVguZW5kRWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0ZWNoLCA0KQorU0FYLmVuZEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDEwLCAyKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0b3BpY3RlY2gyLmpwZywgMTQpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhBc2sgU2xhc2hkb3Q6IEFub3RoZXIgV29yZCBmb3IsIDQwKQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG8sIDU0KQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDUgMjA6MDA6MDAsIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENsaWZmLCA1KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGhhY2tlci12cy1jcmFja2VyLCAxNykKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKG5ld3MsIDQpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMzg1LCAzKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXNrc2xhc2hkb3QsIDExKQorU0FYLmVuZEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnModG9waWNuZXdzLmdpZiwgMTMpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENvcmVsIExpbnV4IEZBUSwgMTUpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAxODo0MjowNiwgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoc3R1ZmYtdG8tcmVhZCwgMTMpCitTQVguZW5kRWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhjb3JlbCwgNSkKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxNjQsIDMpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljY29yZWwuZ2lmLCAxNCkKK1NBWC5lbmRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFVwc2lkZSBkb3duc2lkZXMgTVAzLkNPTS4sIDI1KQorU0FYLmVuZEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhodHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzksIDUxKQorU0FYLmVuZEVsZW1lbnROcyh1cmwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDE5OTktMDYtMDUgMTU6NTY6NDUsIDE5KQorU0FYLmVuZEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKENtZHJUYWNvLCA4KQorU0FYLmVuZEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHN0dWZmLXRvLXRoaW5rLWFib3V0LCAyMCkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKG11c2ljLCA1KQorU0FYLmVuZEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKDQ4LCAyKQorU0FYLmVuZEVsZW1lbnROcyhjb21tZW50cywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoYXJ0aWNsZXMsIDgpCitTQVguZW5kRWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh0b3BpY211c2ljLmdpZiwgMTQpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygyIFRlcmFiaXRzIG9mIEJhbmR3aWR0aCwgMjMpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNSAxNTo1Mzo0MywgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ21kclRhY28sIDgpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoZmFzdGVyLXBvcm4sIDExKQorU0FYLmVuZEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaW50ZXJuZXQsIDgpCitTQVguZW5kRWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoNjYsIDIpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljaW50ZXJuZXQuanBnLCAxNykKK1NBWC5lbmRFbGVtZW50TnMoaW1hZ2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhzdG9yeSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFN1cHByZXNzaW9uIG9mIGNvbGQgZnVzaW9uIHJlcywgMzYpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOSwgNTEpCitTQVguZW5kRWxlbWVudE5zKHVybCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aW1lLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoMTk5OS0wNi0wNCAyMzoxMjoyOSwgMTkpCitTQVguZW5kRWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoSGVtb3MsIDUpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMocG9zc2libHktcHJvYmFibHksIDE3KQorU0FYLmVuZEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRvcGljLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoc2NpZW5jZSwgNykKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygyMTcsIDMpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljc2NpZW5jZS5naWYsIDE2KQorU0FYLmVuZEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoQ2FsaWZvcm5pYSBHb3YuIEhhbHRzIFdhZ2UgSW5mLCAzNikKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MCkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA0IDIzOjA1OjM0LCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhIZW1vcywgNSkKK1NBWC5lbmRFbGVtZW50TnMoYXV0aG9yLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRlcGFydG1lbnQsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyh3b28taG9vISwgOCkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHVzYSwgMykKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxNiwgMikKK1NBWC5lbmRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGFydGljbGVzLCA4KQorU0FYLmVuZEVsZW1lbnROcyhzZWN0aW9uLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnModG9waWN1cy5naWYsIDExKQorU0FYLmVuZEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN0b3J5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoUmVkIEhhdCBBbm5vdW5jZXMgSVBPLCAyMSkKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoaHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85LCA1MSkKK1NBWC5lbmRFbGVtZW50TnModXJsLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHRpbWUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxOTk5LTA2LTA0IDE5OjMwOjE4LCAxOSkKK1NBWC5lbmRFbGVtZW50TnModGltZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhhdXRob3IsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhKdXN0aW4sIDYpCitTQVguZW5kRWxlbWVudE5zKGF1dGhvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhkZXBhcnRtZW50LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoZGV0YWlscy1za2V0Y2h5LCAxNSkKK1NBWC5lbmRFbGVtZW50TnMoZGVwYXJ0bWVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0b3BpYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHJlZGhhdCwgNikKK1NBWC5lbmRFbGVtZW50TnModG9waWMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoY29tbWVudHMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygxNTUsIDMpCitTQVguZW5kRWxlbWVudE5zKGNvbW1lbnRzLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHNlY3Rpb24sIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhhcnRpY2xlcywgOCkKK1NBWC5lbmRFbGVtZW50TnMoc2VjdGlvbiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhpbWFnZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKHRvcGljcmVkaGF0LmdpZiwgMTUpCitTQVguZW5kRWxlbWVudE5zKGltYWdlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoc3RvcnksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnModWx0cmFtb2RlLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzEgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1OWJkNDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcxCkBAIC0wLDAgKzEsMTYxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjI0MnB4IiBoZWlnaHQ9IjM4M3B4Ij4KKzxnIHN0eWxlPSJzdHJva2U6ICMwMDAwMDAiPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogI2YyY2M5OSI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNjksMTggODIsOCA5OSwzIDExOCw1IDEzNSwxMiAxNDksMjEgMTU2LDEzIDE2NSw5IDE3NywxMyAxODMsMjggMTgwLDUwIDE2NCw5MSAxNTUsMTA3IDE1NCwxMTQgMTUxLDEyMSAxNDEsMTI3IDEzOSwxMzYgMTU1LDIwNiAxNTcsMjUxIDEyNiwzNDIgMTMzLDM1NyAxMjgsMzc2IDgzLDM3NiA3NSwzNjggNjcsMzUwIDYxLDM1MCA1MywzNjkgNCwzNjkgMiwzNjEgNSwzNTQgMTIsMzQyIDE2LDMyMSA0LDI1NyA0LDI0NCA3LDIxOCA5LDE3OSAyNiwxMjcgNDMsOTMgMzIsNzcgMzAsNzAgMjQsNjcgMTYsNDkgMTcsMzUgMTgsMjMgMzAsMTIgNDAsNyA1Myw3IDYyLDEyIDY5LDE4IDY5LDE4IDY5LDE4Ii8+IAorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjZTViMjdmIj4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNDIsNzkgMTM2LDc0IDEzOCw4MiAxMzMsNzggMTMzLDg0IDEyNyw3OCAxMjgsODUgMTI0LDgwIDEyNSw4NyAxMTksODIgMTE5LDkwIDEyNSw5OSAxMjUsOTYgMTI4LDEwMCAxMjgsOTQgMTMxLDk4IDEzMiw5MyAxMzUsOTcgMTM2LDkzIDEzOCw5NyAxMzksOTQgMTQxLDk4IDE0Myw5NCAxNDQsODUgMTQyLDc5IDE0Miw3OSAxNDIsNzkiLz4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICNlYjgwODAiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEyNywxMDEgMTMyLDEwMCAxMzcsOTkgMTQ0LDEwMSAxNDMsMTA1IDEzNSwxMTAgMTI3LDEwMSAxMjcsMTAxIDEyNywxMDEiLz4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICNmMmNjOTkiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE3OCwyMjkgMTU3LDI0OCAxMzksMjk2IDEyNiwzNDkgMTM3LDM1NiAxNTgsMzU3IDE4MywzNDIgMjEyLDMzMiAyMzUsMjg4IDIzNSwyNjEgMjI4LDI1MiAyMTIsMjUwIDE4OCwyNTEgMTc4LDIyOSAxNzgsMjI5IDE3OCwyMjkiLz4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICM5YzgyNmIiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDU2LDIyOSA0OCwyNDEgNDgsMjUwIDU3LDI4MSA2MywzMjUgNzEsMzM4IDgxLDMxNSA3NiwzMjEgNzksMzExIDgzLDMwMSA3NSwzMDggODAsMjk4IDczLDMwMyA3NiwyOTYgNzEsMjk4IDc0LDI5MiA2OSwyOTMgNzQsMjg0IDc4LDI3OCA3MSwyNzggNzQsMjc0IDY4LDI3MyA3MCwyNjggNjYsMjY3IDY4LDI2MSA2MCwyNjYgNjIsMjU5IDY1LDI1MyA1NywyNTggNTksMjUxIDU1LDI1NCA1NSwyNDggNjAsMjM3IDU0LDI0MCA1OCwyMzQgNTQsMjM2IDU2LDIyOSA1NiwyMjkgNTYsMjI5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzQsMzYzIDc5LDM2OCA4MSwzNjggODUsMzYyIDg5LDM2MyA5MiwzNzAgOTYsMzczIDEwMSwzNzIgMTA4LDM2MSAxMTAsMzcxIDExMywzNzMgMTE2LDM3MSAxMjAsMzU4IDEyMiwzNjMgMTIzLDM3MSAxMjYsMzcxIDEyOSwzNjcgMTMyLDM1NyAxMzUsMzYxIDEzMCwzNzYgMTI3LDM3NyA5NCwzNzggODQsMzc2IDc2LDM3MSA3NCwzNjMgNzQsMzYzIDc0LDM2MyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDIxMiwyNTAgMjE5LDI1MSAyMjgsMjU4IDIzNiwyNzAgMjM1LDI4NyAyMjUsMzA0IDIwNSwzMzIgMTc3LDM0MyAxNzEsMzUyIDE1OCwzNTcgMTY2LDM1MiAxNjgsMzQ2IDE2OCwzMzkgMTY1LDMzMyAxNTUsMzI3IDE1NSwzMjMgMTYxLDMyMCAxNjUsMzE2IDE2OSwzMTYgMTY3LDMxMiAxNzEsMzEzIDE2OCwzMDggMTczLDMwOSAxNzAsMzA2IDE3NywzMDYgMTc1LDMwOCAxNzcsMzExIDE3NCwzMTEgMTc2LDMxNiAxNzEsMzE1IDE3NCwzMTkgMTY4LDMyMCAxNjgsMzIzIDE3NSwzMjcgMTc5LDMzMiAxODMsMzI2IDE4NCwzMzIgMTg5LDMyMyAxOTAsMzI4IDE5NCwzMjAgMTk0LDMyNSAxOTksMzE2IDIwMSwzMjAgMjA0LDMxMyAyMDYsMzE2IDIwOCwzMTAgMjExLDMwNSAyMTksMjk4IDIyNiwyODggMjI5LDI3OSAyMjgsMjY2IDIyNCwyNTkgMjE3LDI1MyAyMTIsMjUwIDIxMiwyNTAgMjEyLDI1MCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE1MSwyMDUgMTUxLDIzOCAxNDksMjUyIDE0MSwyNjggMTI4LDI4MiAxMjEsMzAxIDEzMCwzMDAgMTI2LDMxMyAxMTgsMzI0IDExNiwzMzcgMTIwLDM0NiAxMzMsMzUyIDEzMywzNDAgMTM3LDMzMyAxNDUsMzI5IDE1NiwzMjcgMTUzLDMxOSAxNTMsMjkxIDE1NywyNzEgMTcwLDI1OSAxNzgsMjc3IDE5MywyNTAgMTc0LDIxNiAxNTEsMjA1IDE1MSwyMDUgMTUxLDIwNSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDc4LDEyNyA5MCwxNDIgOTUsMTU1IDEwOCwxNjQgMTI1LDE2NyAxMzksMTc1IDE1MCwyMDYgMTUyLDE5MSAxNDEsMTQwIDEyMSwxNDggMTAwLDEzNiA3OCwxMjcgNzgsMTI3IDc4LDEyNyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDIxLDU4IDM1LDYzIDM4LDY4IDMyLDY5IDQyLDc0IDQwLDc5IDQ3LDgwIDU0LDgzIDQ1LDk0IDM0LDgxIDMyLDczIDI0LDY2IDIxLDU4IDIxLDU4IDIxLDU4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzEsMzQgNjcsMzQgNjYsMjcgNTksMjQgNTQsMTcgNDgsMTcgMzksMjIgMzAsMjYgMjgsMzEgMzEsMzkgMzgsNDYgMjksNDUgMzYsNTQgNDEsNjEgNDEsNzAgNTAsNjkgNTQsNzEgNTUsNTggNjcsNTIgNzYsNDMgNzYsMzkgNjgsNDQgNzEsMzQgNzEsMzQgNzEsMzQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMzksNzQgMTQxLDgzIDE0Myw4OSAxNDQsMTA0IDE0OCwxMDQgMTU1LDEwNiAxNTQsODYgMTU3LDc3IDE1NSw3MiAxNTAsNzcgMTQ0LDc3IDEzOSw3NCAxMzksNzQgMTM5LDc0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA1LDQ0IDEwMiw1MyAxMDgsNTggMTExLDYyIDExMiw1NSAxMDUsNDQgMTA1LDQ0IDEwNSw0NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0MSw0OCAxNDEsNTQgMTQ0LDU4IDEzOSw2MiAxMzcsNjYgMTM2LDU5IDEzNyw1MiAxNDEsNDggMTQxLDQ4IDE0MSw0OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDk4LDEzNSAxMDQsMTMwIDEwNSwxMzQgMTA4LDEzMiAxMDgsMTM1IDExMiwxMzQgMTEzLDEzNyAxMTYsMTM2IDExNiwxMzkgMTE5LDEzOSAxMjQsMTQxIDEyOCwxNDAgMTMzLDEzOCAxNDAsMTMzIDEzOSwxNDAgMTI2LDE0NiAxMDQsMTQ0IDk4LDEzNSA5OCwxMzUgOTgsMTM1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTcsMTE2IDEwMywxMTkgMTAzLDExNiAxMTEsMTE4IDExNiwxMTcgMTIyLDExNCAxMjcsMTA3IDEzNSwxMTEgMTQyLDEwNyAxNDEsMTE0IDE0NSwxMTggMTQ5LDEyMSAxNDUsMTI1IDE0MCwxMjQgMTI3LDEyMSAxMTMsMTI1IDEwMCwxMjQgOTcsMTE2IDk3LDExNiA5NywxMTYiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNDcsMzMgMTUyLDM1IDE1NywzNCAxNTMsMzEgMTYwLDMxIDE1NiwyOCAxNjEsMjggMTU5LDI0IDE2MywyNSAxNjMsMjEgMTY1LDIyIDE3MCwyMyAxNjcsMTcgMTcyLDIxIDE3NCwxOCAxNzUsMjMgMTc2LDIyIDE3NywyOCAxNzcsMzMgMTc0LDM3IDE3NiwzOSAxNzQsNDQgMTcxLDQ5IDE2OCw1MyAxNjQsNTcgMTU5LDY4IDE1Niw3MCAxNTQsNjAgMTUwLDUxIDE0Niw0MyAxNDQsMzUgMTQ3LDMzIDE0NywzMyAxNDcsMzMiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA4NSw3MiA4OSw3NCA5Myw3NSAxMDAsNzYgMTA1LDc1IDEwMiw3OSA5NCw3OSA4OCw3NiA4NSw3MiA4NSw3MiA4NSw3MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDg2LDIxNCA3OSwyMjEgNzYsMjMyIDgyLDIyNSA3OCwyMzkgODIsMjM0IDc4LDI0NSA4MSwyNDMgNzksMjU1IDg0LDI1MCA4NCwyNjcgODcsMjU0IDkwLDI3MSA5MCwyNTcgOTUsMjcxIDkzLDI1NiA5NSwyNDkgOTIsMjUyIDkzLDI0MyA4OSwyNTMgODksMjQxIDg2LDI1MCA4NywyMzYgODMsMjQ1IDg3LDIzMSA4MiwyMzEgOTAsMjE5IDg0LDIyMSA4NiwyMTQgODYsMjE0IDg2LDIxNCIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogI2ZmY2M3ZiI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTMsNjggOTYsNzIgMTAwLDczIDEwNiw3MiAxMDgsNjYgMTA1LDYzIDEwMCw2MiA5Myw2OCA5Myw2OCA5Myw2OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0NCw2NCAxNDIsNjggMTQyLDczIDE0Niw3NCAxNTAsNzMgMTU0LDY0IDE0OSw2MiAxNDQsNjQgMTQ0LDY0IDE0NCw2NCIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogIzljODI2YiI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNTcsOTEgNDIsMTExIDUyLDEwNSA0MSwxMTcgNTMsMTEyIDQ2LDEyMCA1MywxMTYgNTAsMTI0IDU3LDExOSA1NSwxMjcgNjEsMTIyIDYwLDEzMCA2NywxMjYgNjYsMTM0IDcxLDEyOSA3MiwxMzYgNzcsMTMwIDc2LDEzNyA4MCwxMzMgODIsMTM4IDg2LDEzNSA5NiwxMzUgOTQsMTI5IDg2LDEyNCA4MywxMTcgNzcsMTIzIDc5LDExNyA3MywxMjAgNzUsMTEyIDY4LDExNiA3MSwxMTEgNjUsMTE0IDY5LDEwNyA2MywxMTAgNjgsMTAyIDYxLDEwNyA2Niw5OCA2MSwxMDMgNjMsOTcgNTcsOTkgNTcsOTEgNTcsOTEgNTcsOTEiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA4Myw3OSA3Niw3OSA2Nyw4MiA3NSw4MyA2NSw4OCA3Niw4NyA2NSw5MiA3Niw5MSA2OCw5NiA3Nyw5NSA3MCw5OSA4MCw5OCA3MiwxMDQgODAsMTAyIDc2LDEwOCA4NSwxMDMgOTIsMTAxIDg3LDk4IDkzLDk2IDg2LDk0IDkxLDkzIDg1LDkxIDkzLDg5IDk5LDg5IDEwNSw5MyAxMDcsODUgMTAyLDgyIDkyLDgwIDgzLDc5IDgzLDc5IDgzLDc5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA5LDc3IDExMSw4MyAxMDksODkgMTEzLDk0IDExNyw5MCAxMTcsODEgMTE0LDc4IDEwOSw3NyAxMDksNzcgMTA5LDc3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTIyLDEyOCAxMjcsMTI2IDEzNCwxMjcgMTM2LDEyOSAxMzQsMTMwIDEzMCwxMjggMTI0LDEyOSAxMjIsMTI4IDEyMiwxMjggMTIyLDEyOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDc4LDI3IDgyLDMyIDgwLDMzIDgyLDM2IDc4LDM3IDgyLDQwIDc4LDQyIDgxLDQ2IDc2LDQ3IDc4LDQ5IDc0LDUwIDgyLDUyIDg3LDUwIDgzLDQ4IDkxLDQ2IDg2LDQ1IDkxLDQyIDg4LDQwIDkyLDM3IDg2LDM0IDkwLDMxIDg2LDI5IDg5LDI2IDc4LDI3IDc4LDI3IDc4LDI3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgODIsMTcgOTIsMjAgNzksMjEgOTAsMjUgODEsMjUgOTQsMjggOTMsMjYgMTAxLDMwIDEwMSwyNiAxMDcsMzMgMTA4LDI4IDExMSw0MCAxMTMsMzQgMTE1LDQ1IDExNywzOSAxMTksNTQgMTIxLDQ2IDEyNCw1OCAxMjYsNDcgMTI5LDU5IDEzMCw0OSAxMzQsNTggMTMzLDQ0IDEzNyw0OCAxMzMsMzcgMTM3LDQwIDEzMywzMiAxMjYsMjAgMTM1LDI2IDEzMiwxOSAxMzgsMjMgMTM1LDE3IDE0MiwxOCAxMzIsMTEgMTE2LDYgOTQsNiA3OCwxMSA5MiwxMiA4MCwxNCA5MCwxNiA4MiwxNyA4MiwxNyA4MiwxNyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0MiwyMzQgMTMyLDIyNyAxMjQsMjIzIDExNSwyMjAgMTEwLDIyNSAxMTgsMjI0IDEyNywyMjkgMTM1LDIzNiAxMjIsMjM0IDExNSwyMzcgMTEzLDI0MiAxMjEsMjM4IDEzOSwyNDMgMTIxLDI0NSAxMTEsMjU0IDk1LDI1NCAxMDIsMjQ0IDEwNCwyMzUgMTEwLDIyOSAxMDAsMjMxIDEwNCwyMjQgMTEzLDIxNiAxMjIsMjE1IDEzMiwyMTcgMTQxLDIyNCAxNDUsMjMwIDE0OSwyNDAgMTQyLDIzNCAxNDIsMjM0IDE0MiwyMzQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTUsMjUyIDEyNSwyNDggMTM3LDI0OSAxNDMsMjU4IDEzNCwyNTUgMTI1LDI1NCAxMTUsMjUyIDExNSwyNTIgMTE1LDI1MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDExNCwyMTIgMTMwLDIxMyAxNDAsMjE5IDE0NywyMjUgMTQ0LDIxNCAxMzcsMjA5IDEyOCwyMDcgMTE0LDIxMiAxMTQsMjEyIDExNCwyMTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDIsMjYzIDEwOCwyNTggMTE3LDI1NyAxMzEsMjU4IDExNiwyNjAgMTA5LDI2NSAxMDIsMjYzIDEwMiwyNjMgMTAyLDI2MyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDUxLDI0MSAzNSwyMjQgNDAsMjM4IDIzLDIyNCAzMSwyNDIgMTksMjM5IDI4LDI0NyAxNywyNDYgMjUsMjUwIDM3LDI1NCAzOSwyNjMgNDQsMjcxIDQ3LDI5NCA0OCwzMTcgNTEsMzI4IDYwLDM1MSA2MCwzMjMgNTMsMjYyIDQ3LDI0NiA1MSwyNDEgNTEsMjQxIDUxLDI0MSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDIsMzY0IDksMzY3IDE0LDM2NiAxOCwzNTUgMjAsMzY0IDI2LDM2NiAzMSwzNTcgMzUsMzY0IDM5LDM2NCA0MiwzNTcgNDcsMzYzIDUzLDM2MCA1OSwzNTcgNTQsMzY5IDcsMzczIDIsMzY0IDIsMzY0IDIsMzY0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNywzNDkgMTksMzQ1IDI1LDMzOSAxOCwzNDEgMjMsMzMzIDI4LDMyNiAyMywzMjYgMjcsMzIwIDIzLDMxNiAyNSwzMTEgMjAsMjk4IDE1LDI3NyAxMiwyNjQgOSwyNDkgMTAsMjIzIDMsMjQ4IDUsMjYxIDE1LDMwNyAxNywzMjYgMTEsMzQzIDcsMzQ5IDcsMzQ5IDcsMzQ5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTEsMjI2IDE1LDIzMSAyNSwyMzYgMTgsMjI3IDExLDIyNiAxMSwyMjYgMTEsMjI2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTMsMjE0IDE5LDIxNyAzMiwyMjcgMjMsMjE0IDE2LDIwOCAxNSwxOTAgMjQsMTQ4IDMxLDEyMSAyNCwxMzcgMTQsMTcwIDgsMTg5IDEzLDIxNCAxMywyMTQgMTMsMjE0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMjAyLDI1NCAxOTUsMjU4IDE5OSwyNjAgMTkzLDI2MyAxOTcsMjYzIDE5MCwyNjggMTk2LDI2OCAxOTEsMjczIDE4OCwyODIgMjAwLDI3MiAxOTQsMjcyIDIwMSwyNjYgMTk3LDI2NSAyMDQsMjYyIDIwMCwyNTggMjA0LDI1NiAyMDIsMjU0IDIwMiwyNTQgMjAyLDI1NCIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogIzg0NTQzMyI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTUxLDIxMyAxNjUsMjEyIDE3OSwyMjUgMTg5LDI0NiAxODcsMjYyIDE3OSwyNzUgMTc2LDI2MyAxNzcsMjQ3IDE3MSwyMzMgMTYzLDIzMCAxNjUsMjUxIDE1NywyNjQgMTQ2LDI5OCAxNDUsMzIxIDEzMywzMjYgMTQzLDI4NSAxNTQsMjYwIDE1MywyNDAgMTUxLDIxMyAxNTEsMjEzIDE1MSwyMTMiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5MSwxMzIgOTUsMTQ1IDk3LDE1NCAxMDQsMTQ4IDEwNywxNTUgMTA5LDE1MCAxMTEsMTU4IDExNSwxNTIgMTE4LDE1OSAxMjAsMTUzIDEyNSwxNjEgMTI2LDE1NSAxMzMsMTY0IDEzMiwxNTQgMTM3LDE2MyAxMzcsMTUyIDE0MiwxNjMgMTQ3LDE4NiAxNTIsMTkyIDE0OCwxNjcgMTQxLDE0MyAxMjQsMTQ1IDEwNSwxNDMgOTEsMTMyIDkxLDEzMiA5MSwxMzIiLz4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICM5YzgyNmIiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDMxLDU3IDIzLDUyIDI2LDUxIDIwLDQ0IDIzLDQyIDIxLDM2IDIyLDI5IDI1LDIzIDI0LDMyIDMwLDQzIDI2LDQxIDMwLDUwIDI2LDQ4IDMxLDU3IDMxLDU3IDMxLDU3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ3LDIxIDE0OSwyOCAxNTUsMjEgMTYxLDE2IDE2NywxNCAxNzUsMTUgMTczLDExIDE2MSw5IDE0NywyMSAxNDcsMjEgMTQ3LDIxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTgxLDM5IDE3NSw1MSAxNjksNTcgMTcxLDY1IDE2NSw2OCAxNjUsNzUgMTYwLDc2IDE2Miw5MSAxNzEsNzEgMTgwLDUxIDE4MSwzOSAxODEsMzkgMTgxLDM5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTMyLDM0NiAxMzksMzQ4IDE0MSwzNDYgMTQyLDM0MSAxNDcsMzQyIDE0MywzNTUgMTMzLDM1MCAxMzIsMzQ2IDEzMiwzNDYgMTMyLDM0NiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0NiwzNTUgMTUxLDM1MiAxNTUsMzQ4IDE1NywzNDMgMTYwLDM0OSAxNTEsMzU2IDE0NywzNTcgMTQ2LDM1NSAxNDYsMzU1IDE0NiwzNTUiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5OSwyNjYgMTAwLDI4MSA5NCwzMDUgODYsMzIyIDc4LDMzMiA3MiwzNDYgNzMsMzMxIDkxLDI5MSA5OSwyNjYgOTksMjY2IDk5LDI2NiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDIwLDM0NyAzMiwzNDIgNDUsMzQwIDU0LDM0NSA0NSwzNTAgNDIsMzUzIDM4LDM1MCAzMSwzNTMgMjksMzU2IDIzLDM1MCAxOSwzNTMgMTUsMzQ5IDIwLDM0NyAyMCwzNDcgMjAsMzQ3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzgsMzQ0IDg2LDM0NCA5MiwzNDkgODgsMzU4IDg0LDM1MiA3OCwzNDQgNzgsMzQ0IDc4LDM0NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDkzLDM0NyAxMDQsMzQ0IDExNywzNDUgMTI0LDM1NCAxMjEsMzU3IDExNiwzNTEgMTEyLDM1MSAxMDgsMzU1IDEwMiwzNTEgOTMsMzQ3IDkzLDM0NyA5MywzNDciLz4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwNSwxMiAxMTEsMTggMTEzLDI0IDExMywyOSAxMTksMzQgMTE2LDIzIDExMiwxNiAxMDUsMTIgMTA1LDEyIDEwNSwxMiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEyMiwyNyAxMjUsMzQgMTI3LDQzIDEyOCwzNCAxMjUsMjkgMTIyLDI3IDEyMiwyNyAxMjIsMjciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTUsMTMgMTIyLDE5IDEyMiwxNSAxMTMsMTAgMTE1LDEzIDExNSwxMyAxMTUsMTMiLz4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICNmZmU1YjIiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDExNiwxNzIgMTA3LDE4MiA5OCwxOTMgOTgsMTgzIDkwLDE5OSA4OSwxODkgODQsMjA3IDg4LDIwNiA4NywyMTUgOTUsMjA2IDkzLDIxOSA5MSwyMzAgOTgsMjE2IDk3LDIyNiAxMDQsMjE0IDExMiwyMDkgMTA0LDIwOCAxMTMsMjAyIDEyNiwyMDAgMTM5LDIwNyAxMzIsMTk4IDE0MiwyMDMgMTM0LDE5MiAxNDIsMTk1IDEzNCwxODcgMTQwLDE4NSAxMzAsMTgxIDEzNiwxNzcgMTI2LDE3NyAxMjUsMTcxIDExNiwxODAgMTE2LDE3MiAxMTYsMTcyIDExNiwxNzIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA3NCwyMjAgNjcsMjMwIDY3LDIyMSA1OSwyMzUgNjMsMjMzIDYwLDI0OCA3MCwyMzIgNjUsMjQ5IDcxLDI0MyA2NywyNTYgNzMsMjUwIDY5LDI2MiA3MywyNTkgNzEsMjY3IDc2LDI2MiA3MiwyNzEgNzgsMjcwIDc2LDI3NSA4MiwyNzQgNzgsMjkwIDg2LDI3OSA4NiwyODkgOTIsMjc0IDg4LDI3NSA4NywyNjQgODIsMjcwIDgyLDI1OCA3NywyNTcgNzgsMjQ3IDczLDI0NiA3NywyMzMgNzIsMjM2IDc0LDIyMCA3NCwyMjAgNzQsMjIwIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTMzLDIzMCAxNDcsMjQyIDE0OCwyNTAgMTQ1LDI1NCAxMzgsMjQ3IDEyOSwyNDYgMTQyLDI0NSAxMzgsMjQxIDEyOCwyMzcgMTM3LDIzOCAxMzMsMjMwIDEzMywyMzAgMTMzLDIzMCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEzMywyNjEgMTI1LDI2MSAxMTYsMjYzIDExMSwyNjcgMTI1LDI2NSAxMzMsMjYxIDEzMywyNjEgMTMzLDI2MSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEyMSwyNzEgMTA5LDI3MyAxMDMsMjc5IDk5LDMwNSA5MiwzMTYgODUsMzI3IDgzLDMzNSA4OSwzNDAgOTcsMzQxIDk0LDMzNiAxMDEsMzM2IDk2LDMzMSAxMDMsMzMwIDk3LDMyNyAxMDgsMzI1IDk5LDMyMiAxMDksMzIxIDEwMCwzMTggMTEwLDMxNyAxMDUsMzE0IDExMCwzMTIgMTA3LDMxMCAxMTMsMzA4IDEwNSwzMDYgMTE0LDMwMyAxMDUsMzAxIDExNSwyOTggMTA3LDI5NSAxMTUsMjk0IDEwOCwyOTMgMTE3LDI5MSAxMDksMjg5IDExNywyODYgMTA5LDI4NiAxMTgsMjgzIDExMiwyODEgMTE4LDI3OSAxMTQsMjc4IDExOSwyNzYgMTE1LDI3NCAxMjEsMjcxIDEyMSwyNzEgMTIxLDI3MSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDc5LDM2NCA3NCwzNTkgNzQsMzUzIDc2LDM0NyA4MCwzNTEgODMsMzU2IDgyLDM2MCA3OSwzNjQgNzksMzY0IDc5LDM2NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDkxLDM2MyA5MywzNTYgOTcsMzUzIDEwMywzNTUgMTA1LDM2MCAxMDMsMzY2IDk5LDM3MSA5NCwzNjggOTEsMzYzIDkxLDM2MyA5MSwzNjMiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTAsMzU1IDExNCwzNTMgMTE4LDM1NyAxMTcsMzYzIDExMywzNjkgMTExLDM2MiAxMTAsMzU1IDExMCwzNTUgMTEwLDM1NSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEyNiwzNTQgMTIzLDM1OCAxMjQsMzY3IDEyNiwzNjkgMTI5LDM2MSAxMjksMzU3IDEyNiwzNTQgMTI2LDM1NCAxMjYsMzU0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMzAsMTU0IDI0LDE2NiAyMCwxODIgMjMsMTk0IDI5LDIwOCAzNywyMTggNDEsMjEwIDQxLDIyMyA0NiwyMTQgNDYsMjI3IDUyLDIxNiA1MiwyMjcgNjEsMjE2IDU5LDIyNSA2OCwyMTMgNzMsMjE5IDcwLDIwNyA3NywyMTIgNjksMjAwIDc3LDIwMiA3MCwxOTQgNzgsMTk3IDY4LDE4NyA3NiwxODIgNjQsMTgyIDU4LDE3NSA1OCwxODUgNTMsMTc3IDUwLDE4NiA0NiwxNzEgNDQsMTgyIDM5LDE2NyAzNiwxNzIgMzYsMTYyIDMwLDE2NiAzMCwxNTQgMzAsMTU0IDMwLDE1NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDQ0LDEzMCA0MSwxMzcgNDUsMTM2IDQzLDE1MCA0OCwxNDIgNDgsMTU3IDUzLDE1MCA1MiwxNjQgNjAsMTU2IDYxLDE2OSA2NCwxNjUgNjYsMTc1IDcwLDE2NyA3NCwxNzYgNzcsMTY4IDgwLDE4MyA4NSwxNzIgOTAsMTgyIDkzLDE3NCA5OCwxODEgOTksMTczIDEwNCwxNzUgMTA1LDE2OSAxMTQsMTY4IDEwMiwxNjMgOTUsMTU3IDk0LDE2NiA5MCwxNTQgODcsMTYyIDgyLDE0OSA3NSwxNTkgNzIsMTQ4IDY4LDE1NSA2NywxNDMgNjIsMTQ4IDYyLDEzOCA1OCwxNDUgNTYsMTMzIDUyLDE0MiA1MiwxMjggNDksMTM0IDQ3LDEyNSA0NCwxMzAgNDQsMTMwIDQ0LDEzMCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEzLDIxNiAxOSwyMTkgMzYsMjMxIDIyLDIyMyAxNiwyMjIgMjIsMjI3IDEyLDIyNCAxMywyMjAgMTYsMjIwIDEzLDIxNiAxMywyMTYgMTMsMjE2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTAsMjMxIDE0LDIzNiAyNSwyMzkgMjcsMjM3IDE5LDIzNCAxMCwyMzEgMTAsMjMxIDEwLDIzMSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDksMjQ1IDE0LDI0MiAyNSwyNDUgMTMsMjQ1IDksMjQ1IDksMjQ1IDksMjQ1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMzMsMjU1IDI2LDI1MyAxOCwyNTQgMjUsMjU2IDE4LDI1OCAyNywyNjAgMTgsMjYzIDI3LDI2NSAxOSwyNjcgMjksMjcwIDIxLDI3MiAyOSwyNzYgMjEsMjc4IDMwLDI4MSAyMiwyODMgMzEsMjg3IDI0LDI4OCAzMiwyOTIgMjMsMjkzIDM0LDI5OCAyNiwyOTkgMzcsMzAzIDMyLDMwNSAzOSwzMDkgMzMsMzA5IDM5LDMxNCAzNCwzMTQgNDAsMzE4IDM0LDMxNyA0MCwzMjEgMzQsMzIxIDQxLDMyNiAzMywzMjYgNDAsMzMwIDMzLDMzMiAzOSwzMzMgMzMsMzM3IDQyLDMzNyA1NCwzNDEgNDksMzM3IDUyLDMzNSA0NywzMzAgNTAsMzMwIDQ1LDMyNSA0OSwzMjUgNDUsMzIxIDQ4LDMyMSA0NSwzMTYgNDYsMzA2IDQ1LDI4NiA0MywyNzQgMzYsMjYxIDMzLDI1NSAzMywyNTUgMzMsMjU1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNywzNTggOSwzNTEgMTQsMzUxIDE3LDM1OSAxMSwzNjQgNywzNTggNywzNTggNywzNTgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA0NCwzNTQgNDksMzUxIDUyLDM1NSA0OSwzNjEgNDQsMzU0IDQ0LDM1NCA0NCwzNTQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAzMiwzNTcgMzcsMzUzIDQwLDM1OCAzNiwzNjEgMzIsMzU3IDMyLDM1NyAzMiwzNTciLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMzksMzM0IDE0NSwzMzAgMTU0LDMzMCAxNTgsMzM0IDE1NCwzNDEgMTUyLDM0OCAxNDUsMzUwIDE0OSwzNDAgMTQ3LDMzNiAxNDEsMzM5IDEzOSwzNDUgMTM2LDM0MiAxMzYsMzM5IDEzOSwzMzQgMTM5LDMzNCAxMzksMzM0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMjA4LDI1OSAyMTUsMjU5IDIxMiwyNTUgMjIwLDI1OSAyMjQsMjYzIDIyNSwyNzQgMjI0LDI4MyAyMjAsMjkyIDIwOCwzMDAgMjA2LDMwOCAyMDMsMzA0IDE5OSwzMTUgMTk3LDMwOSAxOTUsMzE4IDE5MywzMTMgMTkwLDMyMiAxOTAsMzE2IDE4NSwzMjUgMTgyLDMxOCAxODAsMzI1IDE3MiwzMjEgMTc4LDMyMCAxNzYsMzEzIDE4NiwzMTIgMTgwLDMwNyAxODgsMzA3IDE4NCwzMDMgMTkxLDMwMiAxODYsMjk5IDE5NSwyOTQgMTg3LDI5MCAxOTcsMjg4IDE5MiwyODYgMjAxLDI4MyAxOTQsMjgwIDIwMywyNzcgMTk4LDI3NSAyMDcsMjcxIDIwMCwyNjkgMjA5LDI2NSAyMDQsMjY1IDIxMiwyNjIgMjA4LDI1OSAyMDgsMjU5IDIwOCwyNTkiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDYsMTI2IDEwNiwxMzEgMTA5LDEzMiAxMTEsMTM0IDExNSwxMzIgMTE1LDEzNSAxMTksMTMzIDExOCwxMzcgMTIzLDEzNyAxMjgsMTM3IDEzMywxMzQgMTM2LDEzMCAxMzYsMTI3IDEzMiwxMjQgMTE4LDEyOCAxMTIsMTI4IDEwNiwxMjYgMTA2LDEyNiAxMDYsMTI2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA3LDExNCAxMDEsMTEwIDk4LDEwMiAxMDUsOTcgMTExLDk4IDExOSwxMDIgMTIxLDEwOCAxMTgsMTEyIDExMywxMTUgMTA3LDExNCAxMDcsMTE0IDEwNywxMTQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNDgsMTA2IDE0NSwxMTAgMTQ2LDExNiAxNTAsMTE4IDE1MiwxMTEgMTUxLDEwNyAxNDgsMTA2IDE0OCwxMDYgMTQ4LDEwNiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDgwLDU1IDcwLDUyIDc1LDU4IDYzLDU3IDcyLDYxIDU3LDYxIDY3LDY2IDU3LDY3IDYyLDY5IDU0LDcxIDYxLDczIDU0LDc3IDYzLDc4IDUzLDg1IDYwLDg0IDU2LDkwIDY5LDg0IDYzLDgyIDc1LDc2IDcwLDc1IDc3LDcyIDcyLDcxIDc4LDY5IDcyLDY2IDgxLDY3IDc4LDY0IDgyLDYzIDgwLDYwIDg2LDYyIDgwLDU1IDgwLDU1IDgwLDU1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgODcsNTYgOTEsNTIgOTYsNTAgMTAyLDU2IDk4LDU2IDkyLDYwIDg3LDU2IDg3LDU2IDg3LDU2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgODUsNjggODksNzMgOTgsNzYgMTA2LDc0IDk2LDczIDkxLDcwIDg1LDY4IDg1LDY4IDg1LDY4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTE1LDU3IDExNCw2NCAxMTEsNjQgMTE1LDc1IDEyMiw4MSAxMjIsNzQgMTI2LDc5IDEyNiw3NCAxMzEsNzggMTMwLDcyIDEzMyw3NyAxMzEsNjggMTI2LDYxIDExOSw1NyAxMTUsNTcgMTE1LDU3IDExNSw1NyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0NSw0OCAxNDMsNTMgMTQ3LDU5IDE1MSw1OSAxNTAsNTUgMTQ1LDQ4IDE0NSw0OCAxNDUsNDgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAyNiwyMiAzNCwxNSA0MywxMCA1MiwxMCA1OSwxNiA0NywxNSAzMiwyMiAyNiwyMiAyNiwyMiAyNiwyMiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE2MCwxOSAxNTIsMjYgMTQ5LDM0IDE1NCwzMyAxNTIsMzAgMTU3LDMwIDE1NSwyNiAxNTgsMjcgMTU3LDIzIDE2MSwyMyAxNjAsMTkgMTYwLDE5IDE2MCwxOSIvPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTgsMTE3IDEwNSwxMjIgMTA5LDEyMiAxMDUsMTE3IDExMywxMjAgMTIxLDEyMCAxMzAsMTEyIDEyOCwxMDggMTIzLDEwMyAxMjMsOTkgMTI4LDEwMSAxMzIsMTA2IDEzNSwxMDkgMTQyLDEwNSAxNDIsMTAxIDE0NSwxMDEgMTQ1LDkxIDE0OCwxMDEgMTQ1LDEwNSAxMzYsMTEyIDEzNSwxMTYgMTQzLDEyNCAxNDgsMTIwIDE1MCwxMjIgMTQyLDEyOCAxMzMsMTIyIDEyMSwxMjUgMTEyLDEyNiAxMDMsMTI1IDEwMCwxMjkgOTYsMTI0IDk4LDExNyA5OCwxMTcgOTgsMTE3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTQ2LDExOCAxNTIsMTE4IDE1MiwxMTUgMTQ5LDExNSAxNDYsMTE4IDE0NiwxMTggMTQ2LDExOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0OCwxMTIgMTU0LDExMSAxNTQsMTA5IDE0OSwxMDkgMTQ4LDExMiAxNDgsMTEyIDE0OCwxMTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDYsMTEyIDEwOCwxMTUgMTE0LDExNiAxMTgsMTE0IDEwNiwxMTIgMTA2LDExMiAxMDYsMTEyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTA4LDEwOCAxMTEsMTEwIDExNiwxMTAgMTE5LDEwOCAxMDgsMTA4IDEwOCwxMDggMTA4LDEwOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwNiwxMDQgMTA5LDEwNSAxMTcsMTA2IDExNSwxMDQgMTA2LDEwNCAxMDYsMTA0IDEwNiwxMDQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA1MCwyNSA0MSwyNiAzNCwzMyAzOSw0MyA0OSw1OCAzNiw1MSA0Nyw2OCA1NSw2OSA1NCw1OSA2MSw1NyA3NCw0NiA2MCw1MiA2Nyw0MiA1Nyw0OCA2MSw0MCA1NCw0NSA2MCwzNiA1OSwyOSA0OCwzOCA1MiwzMCA0NywzMiA1MCwyNSA1MCwyNSA1MCwyNSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0NywzNCAxNTIsNDEgMTU1LDQ5IDE2MSw1MyAxNTcsNDcgMTY0LDQ3IDE1OCw0MyAxNjgsNDQgMTU5LDQwIDE2NCwzNyAxNjksMzcgMTY0LDMzIDE2OSwzNCAxNjUsMjggMTcwLDMwIDE3MCwyNSAxNzMsMjkgMTc1LDI3IDE3NiwzMiAxNzMsMzYgMTc1LDM5IDE3Miw0MiAxNzIsNDYgMTY4LDQ5IDE3MCw1NSAxNjIsNTcgMTU4LDYzIDE1NSw1OCAxNTMsNTAgMTQ5LDQ2IDE0NywzNCAxNDcsMzQgMTQ3LDM0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTU1LDcxIDE1OSw4MCAxNTcsOTMgMTU3LDEwMiAxNTUsMTA4IDE1MCwxMDEgMTQ5LDkzIDE1NCwxMDEgMTUyLDkxIDE1MSw4MyAxNTUsNzkgMTU1LDcxIDE1NSw3MSAxNTUsNzEiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTIsNzggMTE1LDgxIDExNCw5MSAxMTIsODcgMTEzLDgyIDExMiw3OCAxMTIsNzggMTEyLDc4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNzgsMjggNjQsMTcgNTgsMTEgNDcsOSAzNiwxMCAyOCwxNiAyMSwyNiAxOCw0MSAyMCw1MSAyMyw2MSAzMyw2NSAyOCw2OCAzNyw3NCAzNiw4MSA0Myw4NyA0OCw5MCA0MywxMDAgNDAsOTggMzksOTAgMzEsODAgMzAsNzIgMjIsNzEgMTcsNjEgMTQsNDYgMTYsMjggMjMsMTcgMzMsOSA0NSw2IDU0LDYgNjUsMTIgNzgsMjggNzgsMjggNzgsMjgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA2NywxOCA3Niw5IDg3LDUgMTAxLDIgMTE4LDMgMTM1LDggMTQ5LDIwIDE0OSwyNiAxNDQsMTkgMTMyLDEyIDEyMSw5IDEwNSw3IDg5LDggNzYsMTQgNzAsMjAgNjcsMTggNjcsMTggNjcsMTgiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA1Niw5OCA0OCwxMDYgNTYsMTAzIDQ3LDExMiA1NiwxMTAgNTIsMTE1IDU3LDExMyA1MiwxMjEgNjIsMTE1IDU4LDEyMyA2NSwxMTkgNjMsMTI1IDY5LDEyMSA2OCwxMjcgNzQsMTI1IDc0LDEyOSA3OSwxMjggODMsMTMyIDk0LDEzNSA5MywxMjkgODUsMTI3IDgxLDEyMiA3NiwxMjYgNzUsMTIxIDcxLDEyNCA3MSwxMTcgNjYsMTIxIDY2LDExNyA2MiwxMTcgNjQsMTEyIDYwLDExMyA2MCwxMTAgNTcsMTExIDYxLDEwNSA1NywxMDcgNjAsMTAxIDU1LDEwMiA1Niw5OCA1Niw5OCA1Niw5OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwMSwxMzIgMTAzLDEzOCAxMDYsMTM0IDEwNiwxMzkgMTEyLDEzNiAxMTEsMTQyIDExNSwxMzkgMTE0LDE0MyAxMTksMTQyIDEyNSwxNDUgMTMxLDE0MiAxMzUsMTM4IDE0MCwxMzQgMTQwLDEyOSAxNDMsMTM1IDE0NSwxNDkgMTUwLDE3MSAxNDksMTg0IDE0NSwxNjUgMTQxLDE1MCAxMzYsMTQ3IDEzMiwxNTEgMTMxLDE0OSAxMjYsMTUyIDEyNSwxNTAgMTIxLDE1MiAxMTcsMTQ4IDExMSwxNTIgMTEwLDE0OCAxMDUsMTQ5IDEwNCwxNDUgOTgsMTUwIDk2LDEzOCA5NCwxMzIgOTQsMTMwIDk4LDEzMiAxMDEsMTMyIDEwMSwxMzIgMTAxLDEzMiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDQxLDk0IDMyLDExMCAyMywxMzIgMTIsMTYzIDYsMTkwIDcsMjE3IDUsMjM2IDMsMjQ3IDksMjMwIDEyLDIxMSAxMiwxODUgMTgsMTYwIDI2LDEzNCAzNSwxMTAgNDMsOTkgNDEsOTQgNDEsOTQgNDEsOTQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAzMiwyNDYgNDEsMjUwIDUwLDI1NyA1MiwyNjcgNTMsMjk1IDUzLDMyMyA1OSwzNTAgNTQsMzYzIDUxLDM2NSA0NCwzNjYgNDIsMzYwIDQwLDM3MiA1NCwzNzIgNTksMzY2IDYyLDM1MyA3MSwzNTIgNzUsMzM1IDczLDMzMCA2NiwzMTggNjgsMzAyIDY0LDI5NCA2NywyODggNjMsMjg2IDYzLDI3OSA1OSwyNzUgNTgsMjY3IDU2LDI2MiA1MCwyNDcgNDIsMjM1IDQ0LDI0NiAzMiwyMzYgMzUsMjQ0IDMyLDI0NiAzMiwyNDYgMzIsMjQ2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTM0LDMyNCAxNDYsMzIwIDE1OSwzMjIgMTczLDMyNyAxNzksMzM3IDE3OSwzNDkgMTcyLDM1NSAxNTgsMzU3IDE3MCwzNTAgMTc0LDM0MyAxNzAsMzMzIDE2MywzMjggMTUyLDMyNiAxMzQsMzI5IDEzNCwzMjQgMTM0LDMyNCAxMzQsMzI0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTczLDMzOSAxODMsMzM0IDE4NCwzMzggMTkxLDMyOSAxOTQsMzMyIDE5OSwzMjMgMjAyLDMyNSAyMDYsMzE4IDIwOSwzMjAgMjEzLDMwOSAyMjEsMzAzIDIyOCwyOTYgMjMyLDI4OSAyMzQsMjc5IDIzMywyNjkgMjMwLDI2MiAyMjUsMjU2IDIxOSwyNTMgMjA4LDI1MiAxOTgsMjUyIDIxMCwyNDkgMjIzLDI1MCAyMzIsMjU3IDIzNywyNjUgMjM4LDI3NyAyMzgsMjkxIDIzMiwzMDUgMjIxLDMyMyAyMTgsMzM1IDIxMiwzNDIgMjAwLDM0OSAxNzgsMzQ4IDE3MywzMzkgMTczLDMzOSAxNzMsMzM5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTY1LDI5NiAxNTgsMzAxIDE1NiwzMTAgMTU2LDMyMyAxNjIsMzI0IDE1OSwzMTggMTYyLDMwOCAxNjIsMzA0IDE2NSwyOTYgMTY1LDI5NiAxNjUsMjk2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTksMjUyIDEwNSwyNDQgMTA3LDIzNCAxMTUsMjI4IDEyMSwyMjggMTMxLDIzNSAxMjIsMjMzIDExMywyMzUgMTA5LDI0NiAxMjEsMjM5IDEzMywyNDMgMTIxLDI0MyAxMTAsMjUxIDk5LDI1MiA5OSwyNTIgOTksMjUyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTE3LDI1MiAxMjQsMjQ3IDEzNCwyNDkgMTM2LDI1MyAxMjYsMjUyIDExNywyNTIgMTE3LDI1MiAxMTcsMjUyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTE3LDIxOCAxMzIsMjI0IDE0NCwyMzMgMTQwLDIyNSAxMzIsMjE5IDExNywyMTggMTE3LDIxOCAxMTcsMjE4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTIyLDIxMiAxMzQsMjE0IDE0MywyMjEgMTQxLDIxMyAxMzIsMjEwIDEyMiwyMTIgMTIyLDIxMiAxMjIsMjEyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgNjksMzUyIDcwLDM2MyA3NiwzNzMgODYsMzc4IDk3LDM3OSAxMDgsMzc5IDEyMCwzNzcgMTI4LDM3OCAxMzIsMzczIDEzNSwzNjEgMTMzLDM1OCAxMzIsMzY2IDEyNywzNzUgMTIxLDM3NCAxMjEsMzYyIDExOSwzNjcgMTE3LDM3NCAxMTAsMzc2IDExMCwzNjIgMTA3LDM1NyAxMDYsMzcxIDEwNCwzNzUgOTcsMzc2IDkwLDM3NSA5MCwzNjggODYsMzYyIDgzLDM2NCA4NiwzNjkgODUsMzczIDc4LDM3MCA3MywzNjIgNzEsMzUxIDY5LDM1MiA2OSwzNTIgNjksMzUyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTAwLDM2MCA5NiwzNjMgOTksMzY5IDEwMiwzNjQgMTAwLDM2MCAxMDAsMzYwIDEwMCwzNjAiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMTUsMzYwIDExMiwzNjMgMTE0LDM2OSAxMTcsMzY0IDExNSwzNjAgMTE1LDM2MCAxMTUsMzYwIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTI3LDM2MiAxMjUsMzY0IDEyNiwzNjkgMTI4LDM2NSAxMjcsMzYyIDEyNywzNjIgMTI3LDM2MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDUsMjU1IDcsMjc2IDExLDMwNCAxNSwzMjAgMTMsMzM0IDYsMzQ4IDIsMzUzIDAsMzYzIDUsMzcyIDEyLDM3NCAyNSwzNzIgMzgsMzcyIDQ0LDM2OSA0MiwzNjcgMzYsMzY4IDMxLDM2OSAzMCwzNjAgMjcsMzY4IDIwLDM3MCAxNiwzNjEgMTUsMzY4IDEwLDM2OSAzLDM2NiAzLDM1OSA2LDM1MiAxMSwzNDggMTcsMzMxIDE5LDMxNiAxMiwyOTEgOSwyNzQgNSwyNTUgNSwyNTUgNSwyNTUiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMCwzNTggNywzNjIgMTAsMzY2IDExLDM2MiAxMCwzNTggMTAsMzU4IDEwLDM1OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDI1LDM1NyAyMiwzNjAgMjQsMzY2IDI3LDM2MCAyNSwzNTcgMjUsMzU3IDI1LDM1NyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDM3LDM1NyAzNCwzNjEgMzYsMzY1IDM4LDM2MSAzNywzNTcgMzcsMzU3IDM3LDM1NyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDQ5LDM1NiA0NiwzNTkgNDcsMzY0IDUwLDM2MCA0OSwzNTYgNDksMzU2IDQ5LDM1NiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEzMCwxMDEgMTMyLDEwMiAxMzUsMTAxIDEzOSwxMDIgMTQzLDEwMyAxNDIsMTAxIDEzNywxMDAgMTMzLDEwMCAxMzAsMTAxIDEzMCwxMDEgMTMwLDEwMSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwNiw0OCAxMDUsNTIgMTA4LDU2IDEwOSw1MiAxMDYsNDggMTA2LDQ4IDEwNiw0OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEzOSw1MiAxMzksNTYgMTQwLDYwIDE0Miw1OCAxNDEsNTYgMTM5LDUyIDEzOSw1MiAxMzksNTIiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAyNSwzNDkgMjksMzUxIDMwLDM1NSAzMywzNTAgMzcsMzQ4IDQyLDM1MSA0NSwzNDcgNDksMzQ1IDQ0LDM0MyAzNiwzNDUgMjUsMzQ5IDI1LDM0OSAyNSwzNDkiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiA5OCwzNDcgMTA1LDM1MSAxMDcsMzU0IDEwOSwzNDkgMTE1LDM0OSAxMjAsMzUzIDExOCwzNDkgMTEzLDM0NiAxMDQsMzQ2IDk4LDM0NyA5OCwzNDcgOTgsMzQ3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgODMsMzQ4IDg3LDM1MiA4NywzNTcgODksMzUxIDg3LDM0OCA4MywzNDggODMsMzQ4IDgzLDM0OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE1NSwxMDcgMTYzLDEwNyAxNzAsMTA3IDE4NiwxMDggMTc1LDEwOSAxNTUsMTA5IDE1NSwxMDcgMTU1LDEwNyAxNTUsMTA3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTUzLDExNCAxNjIsMTEzIDE3NSwxMTIgMTkyLDExNCAxNzMsMTE0IDE1NCwxMTUgMTUzLDExNCAxNTMsMTE0IDE1MywxMTQiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNTIsMTE4IDE2NCwxMjAgMTgwLDEyMyAxOTcsMTI5IDE2OSwxMjMgMTUxLDEyMCAxNTIsMTE4IDE1MiwxMTggMTUyLDExOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDY4LDEwOSA4NywxMDYgMTA3LDEwNiAxMDYsMTA4IDg4LDEwOCA2OCwxMDkgNjgsMTA5IDY4LDEwOSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDEwNSwxMTEgOTUsMTEyIDc5LDExNCA3MSwxMTYgODUsMTE1IDEwMiwxMTMgMTA1LDExMSAxMDUsMTExIDEwNSwxMTEiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxMDgsMTAxIDk4LDk5IDg3LDk5IDc4LDk5IDkzLDEwMCAxMDUsMTAyIDEwOCwxMDEgMTA4LDEwMSAxMDgsMTAxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgODUsNjMgOTEsNjMgOTcsNjAgMTA0LDYwIDEwOCw2MiAxMTEsNjkgMTEyLDc1IDExMCw3NCAxMDgsNzEgMTAzLDczIDEwNiw2OSAxMDUsNjUgMTAzLDY0IDEwMyw2NyAxMDIsNzAgOTksNzAgOTcsNjYgOTQsNjcgOTcsNzIgODgsNjcgODQsNjYgODUsNjMgODUsNjMgODUsNjMiLz4gCisgICA8cG9seWxpbmUgdmVydHM9IiAxNDAsNzQgMTQxLDY2IDE0NCw2MSAxNTAsNjEgMTU2LDYyIDE1Myw3MCAxNTAsNzMgMTUyLDY1IDE1MCw2NSAxNTEsNjggMTQ5LDcxIDE0Niw3MSAxNDQsNjYgMTQzLDcwIDE0Myw3NCAxNDAsNzQgMTQwLDc0IDE0MCw3NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0NiwyMCAxNTYsMTEgMTYzLDkgMTcyLDkgMTc4LDE0IDE4MiwxOCAxODQsMzIgMTgyLDQyIDE4Miw1MiAxNzcsNTggMTc2LDY3IDE3MSw3NiAxNjUsOTAgMTU3LDEwNSAxNjAsOTIgMTY0LDg1IDE2OCw3OCAxNjcsNzMgMTczLDY2IDE3Miw2MiAxNzUsNTkgMTc0LDU1IDE3Nyw1MyAxODAsNDYgMTgxLDI5IDE3OSwyMSAxNzMsMTMgMTY2LDExIDE1OSwxMyAxNTMsMTggMTQ4LDIzIDE0NiwyMCAxNDYsMjAgMTQ2LDIwIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgMTUwLDE4NyAxNDgsMjExIDE1MCwyMzMgMTUzLDI0NyAxNDgsMjY3IDEzNSwyODMgMTI1LDI5OSAxMzYsMjkyIDEzMSwzMTMgMTIyLDMyOCAxMjIsMzQ1IDEyOSwzNTIgMTMzLDM1OSAxMzMsMzY3IDEzNywzNTkgMTQ4LDM1NiAxNDAsMzUwIDEzMSwzNDcgMTI5LDM0MCAxMzIsMzMyIDE0MCwzMjggMTM3LDMyMiAxNDAsMzA0IDE1NCwyNjUgMTU3LDI0NCAxNTUsMjIzIDE2MSwyMjAgMTc1LDIyOSAxODYsMjQ3IDE4NSwyNjAgMTc2LDI3NSAxNzgsMjg3IDE4NSwyNzcgMTg4LDI2MSAxOTYsMjUzIDE4OSwyMzYgMTc0LDIxMyAxNTAsMTg3IDE1MCwxODcgMTUwLDE4NyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE0NywzMzggMTQyLDM0MSAxNDMsMzQ1IDE0MSwzNTQgMTQ3LDM0MyAxNDcsMzM4IDE0NywzMzggMTQ3LDMzOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDE1NywzNDIgMTU2LDM0OSAxNTAsMzU2IDE1NywzNTMgMTYzLDM0NiAxNjIsMzQyIDE1NywzNDIgMTU3LDM0MiAxNTcsMzQyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzPSIgOTksMjY1IDk2LDI4NCA5MiwyOTkgNzMsMzM5IDczLDMzMyA4NywzMDAgOTksMjY1IDk5LDI2NSA5OSwyNjUiLz4gCis8L2c+PC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcxLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzEucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxNDk3ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcxLnJkZQpAQCAtMCwwICsxLDQ3NyBAQAorMCAxMCBzdmcgMCAwCiswIDEgc3ZnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCiswIDE1IHN2ZyAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE0OTdkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzEucmRyCkBAIC0wLDAgKzEsNDc3IEBACiswIDEwIHN2ZyAwIDAKKzAgMSBzdmcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcG9seWxpbmUgMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzAgMTUgc3ZnIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcxLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDlmMDFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMS5zYXgKQEAgLTAsMCArMSw2MTMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHN2ZywgLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOLCBodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCkKK1NBWC5leHRlcm5hbFN1YnNldChzdmcsIC0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiwgaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQpCitTQVguc3RhcnRFbGVtZW50KHN2Zywgd2lkdGg9JzI0MnB4JywgaGVpZ2h0PSczODNweCcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2YyY2M5OScpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDY5LDE4IDgyLDggOTksMyAxMTgsNSAxMzUsMTIgMTQ5LDIxIDE1NiwxMyAxNjUsOSAxNzcsMTMgMTgzLDI4IDE4MCw1MCAxNjQsOTEgMTU1LDEwNyAxNTQsMTE0IDE1MSwxMjEgMTQxLDEyNyAxMzksMTM2IDE1NSwyMDYgMTU3LDI1MSAxMjYsMzQyIDEzMywzNTcgMTI4LDM3NiA4MywzNzYgNzUsMzY4IDY3LDM1MCA2MSwzNTAgNTMsMzY5IDQsMzY5IDIsMzYxIDUsMzU0IDEyLDM0MiAxNiwzMjEgNCwyNTcgNCwyNDQgNywyMTggOSwxNzkgMjYsMTI3IDQzLDkzIDMyLDc3IDMwLDcwIDI0LDY3IDE2LDQ5IDE3LDM1IDE4LDIzIDMwLDEyIDQwLDcgNTMsNyA2MiwxMiA2OSwxOCA2OSwxOCA2OSwxOCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZTViMjdmJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTQyLDc5IDEzNiw3NCAxMzgsODIgMTMzLDc4IDEzMyw4NCAxMjcsNzggMTI4LDg1IDEyNCw4MCAxMjUsODcgMTE5LDgyIDExOSw5MCAxMjUsOTkgMTI1LDk2IDEyOCwxMDAgMTI4LDk0IDEzMSw5OCAxMzIsOTMgMTM1LDk3IDEzNiw5MyAxMzgsOTcgMTM5LDk0IDE0MSw5OCAxNDMsOTQgMTQ0LDg1IDE0Miw3OSAxNDIsNzkgMTQyLDc5JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNlYjgwODAnKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMjcsMTAxIDEzMiwxMDAgMTM3LDk5IDE0NCwxMDEgMTQzLDEwNSAxMzUsMTEwIDEyNywxMDEgMTI3LDEwMSAxMjcsMTAxJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmMmNjOTknKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNzgsMjI5IDE1NywyNDggMTM5LDI5NiAxMjYsMzQ5IDEzNywzNTYgMTU4LDM1NyAxODMsMzQyIDIxMiwzMzIgMjM1LDI4OCAyMzUsMjYxIDIyOCwyNTIgMjEyLDI1MCAxODgsMjUxIDE3OCwyMjkgMTc4LDIyOSAxNzgsMjI5JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICM5YzgyNmInKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA1NiwyMjkgNDgsMjQxIDQ4LDI1MCA1NywyODEgNjMsMzI1IDcxLDMzOCA4MSwzMTUgNzYsMzIxIDc5LDMxMSA4MywzMDEgNzUsMzA4IDgwLDI5OCA3MywzMDMgNzYsMjk2IDcxLDI5OCA3NCwyOTIgNjksMjkzIDc0LDI4NCA3OCwyNzggNzEsMjc4IDc0LDI3NCA2OCwyNzMgNzAsMjY4IDY2LDI2NyA2OCwyNjEgNjAsMjY2IDYyLDI1OSA2NSwyNTMgNTcsMjU4IDU5LDI1MSA1NSwyNTQgNTUsMjQ4IDYwLDIzNyA1NCwyNDAgNTgsMjM0IDU0LDIzNiA1NiwyMjkgNTYsMjI5IDU2LDIyOScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgNzQsMzYzIDc5LDM2OCA4MSwzNjggODUsMzYyIDg5LDM2MyA5MiwzNzAgOTYsMzczIDEwMSwzNzIgMTA4LDM2MSAxMTAsMzcxIDExMywzNzMgMTE2LDM3MSAxMjAsMzU4IDEyMiwzNjMgMTIzLDM3MSAxMjYsMzcxIDEyOSwzNjcgMTMyLDM1NyAxMzUsMzYxIDEzMCwzNzYgMTI3LDM3NyA5NCwzNzggODQsMzc2IDc2LDM3MSA3NCwzNjMgNzQsMzYzIDc0LDM2MycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMjEyLDI1MCAyMTksMjUxIDIyOCwyNTggMjM2LDI3MCAyMzUsMjg3IDIyNSwzMDQgMjA1LDMzMiAxNzcsMzQzIDE3MSwzNTIgMTU4LDM1NyAxNjYsMzUyIDE2OCwzNDYgMTY4LDMzOSAxNjUsMzMzIDE1NSwzMjcgMTU1LDMyMyAxNjEsMzIwIDE2NSwzMTYgMTY5LDMxNiAxNjcsMzEyIDE3MSwzMTMgMTY4LDMwOCAxNzMsMzA5IDE3MCwzMDYgMTc3LDMwNiAxNzUsMzA4IDE3NywzMTEgMTc0LDMxMSAxNzYsMzE2IDE3MSwzMTUgMTc0LDMxOSAxNjgsMzIwIDE2OCwzMjMgMTc1LDMyNyAxNzksMzMyIDE4MywzMjYgMTg0LDMzMiAxODksMzIzIDE5MCwzMjggMTk0LDMyMCAxOTQsMzI1IDE5OSwzMTYgMjAxLDMyMCAyMDQsMzEzIDIwNiwzMTYgMjA4LDMxMCAyMTEsMzA1IDIxOSwyOTggMjI2LDI4OCAyMjksMjc5IDIyOCwyNjYgMjI0LDI1OSAyMTcsMjUzIDIxMiwyNTAgMjEyLDI1MCAyMTIsMjUwJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNTEsMjA1IDE1MSwyMzggMTQ5LDI1MiAxNDEsMjY4IDEyOCwyODIgMTIxLDMwMSAxMzAsMzAwIDEyNiwzMTMgMTE4LDMyNCAxMTYsMzM3IDEyMCwzNDYgMTMzLDM1MiAxMzMsMzQwIDEzNywzMzMgMTQ1LDMyOSAxNTYsMzI3IDE1MywzMTkgMTUzLDI5MSAxNTcsMjcxIDE3MCwyNTkgMTc4LDI3NyAxOTMsMjUwIDE3NCwyMTYgMTUxLDIwNSAxNTEsMjA1IDE1MSwyMDUnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDc4LDEyNyA5MCwxNDIgOTUsMTU1IDEwOCwxNjQgMTI1LDE2NyAxMzksMTc1IDE1MCwyMDYgMTUyLDE5MSAxNDEsMTQwIDEyMSwxNDggMTAwLDEzNiA3OCwxMjcgNzgsMTI3IDc4LDEyNycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMjEsNTggMzUsNjMgMzgsNjggMzIsNjkgNDIsNzQgNDAsNzkgNDcsODAgNTQsODMgNDUsOTQgMzQsODEgMzIsNzMgMjQsNjYgMjEsNTggMjEsNTggMjEsNTgnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDcxLDM0IDY3LDM0IDY2LDI3IDU5LDI0IDU0LDE3IDQ4LDE3IDM5LDIyIDMwLDI2IDI4LDMxIDMxLDM5IDM4LDQ2IDI5LDQ1IDM2LDU0IDQxLDYxIDQxLDcwIDUwLDY5IDU0LDcxIDU1LDU4IDY3LDUyIDc2LDQzIDc2LDM5IDY4LDQ0IDcxLDM0IDcxLDM0IDcxLDM0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMzksNzQgMTQxLDgzIDE0Myw4OSAxNDQsMTA0IDE0OCwxMDQgMTU1LDEwNiAxNTQsODYgMTU3LDc3IDE1NSw3MiAxNTAsNzcgMTQ0LDc3IDEzOSw3NCAxMzksNzQgMTM5LDc0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDUsNDQgMTAyLDUzIDEwOCw1OCAxMTEsNjIgMTEyLDU1IDEwNSw0NCAxMDUsNDQgMTA1LDQ0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNDEsNDggMTQxLDU0IDE0NCw1OCAxMzksNjIgMTM3LDY2IDEzNiw1OSAxMzcsNTIgMTQxLDQ4IDE0MSw0OCAxNDEsNDgnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDk4LDEzNSAxMDQsMTMwIDEwNSwxMzQgMTA4LDEzMiAxMDgsMTM1IDExMiwxMzQgMTEzLDEzNyAxMTYsMTM2IDExNiwxMzkgMTE5LDEzOSAxMjQsMTQxIDEyOCwxNDAgMTMzLDEzOCAxNDAsMTMzIDEzOSwxNDAgMTI2LDE0NiAxMDQsMTQ0IDk4LDEzNSA5OCwxMzUgOTgsMTM1JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA5NywxMTYgMTAzLDExOSAxMDMsMTE2IDExMSwxMTggMTE2LDExNyAxMjIsMTE0IDEyNywxMDcgMTM1LDExMSAxNDIsMTA3IDE0MSwxMTQgMTQ1LDExOCAxNDksMTIxIDE0NSwxMjUgMTQwLDEyNCAxMjcsMTIxIDExMywxMjUgMTAwLDEyNCA5NywxMTYgOTcsMTE2IDk3LDExNicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTQ3LDMzIDE1MiwzNSAxNTcsMzQgMTUzLDMxIDE2MCwzMSAxNTYsMjggMTYxLDI4IDE1OSwyNCAxNjMsMjUgMTYzLDIxIDE2NSwyMiAxNzAsMjMgMTY3LDE3IDE3MiwyMSAxNzQsMTggMTc1LDIzIDE3NiwyMiAxNzcsMjggMTc3LDMzIDE3NCwzNyAxNzYsMzkgMTc0LDQ0IDE3MSw0OSAxNjgsNTMgMTY0LDU3IDE1OSw2OCAxNTYsNzAgMTU0LDYwIDE1MCw1MSAxNDYsNDMgMTQ0LDM1IDE0NywzMyAxNDcsMzMgMTQ3LDMzJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA4NSw3MiA4OSw3NCA5Myw3NSAxMDAsNzYgMTA1LDc1IDEwMiw3OSA5NCw3OSA4OCw3NiA4NSw3MiA4NSw3MiA4NSw3MicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgODYsMjE0IDc5LDIyMSA3NiwyMzIgODIsMjI1IDc4LDIzOSA4MiwyMzQgNzgsMjQ1IDgxLDI0MyA3OSwyNTUgODQsMjUwIDg0LDI2NyA4NywyNTQgOTAsMjcxIDkwLDI1NyA5NSwyNzEgOTMsMjU2IDk1LDI0OSA5MiwyNTIgOTMsMjQzIDg5LDI1MyA4OSwyNDEgODYsMjUwIDg3LDIzNiA4MywyNDUgODcsMjMxIDgyLDIzMSA5MCwyMTkgODQsMjIxIDg2LDIxNCA4NiwyMTQgODYsMjE0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmNjN2YnKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA5Myw2OCA5Niw3MiAxMDAsNzMgMTA2LDcyIDEwOCw2NiAxMDUsNjMgMTAwLDYyIDkzLDY4IDkzLDY4IDkzLDY4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNDQsNjQgMTQyLDY4IDE0Miw3MyAxNDYsNzQgMTUwLDczIDE1NCw2NCAxNDksNjIgMTQ0LDY0IDE0NCw2NCAxNDQsNjQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzljODI2YicpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDU3LDkxIDQyLDExMSA1MiwxMDUgNDEsMTE3IDUzLDExMiA0NiwxMjAgNTMsMTE2IDUwLDEyNCA1NywxMTkgNTUsMTI3IDYxLDEyMiA2MCwxMzAgNjcsMTI2IDY2LDEzNCA3MSwxMjkgNzIsMTM2IDc3LDEzMCA3NiwxMzcgODAsMTMzIDgyLDEzOCA4NiwxMzUgOTYsMTM1IDk0LDEyOSA4NiwxMjQgODMsMTE3IDc3LDEyMyA3OSwxMTcgNzMsMTIwIDc1LDExMiA2OCwxMTYgNzEsMTExIDY1LDExNCA2OSwxMDcgNjMsMTEwIDY4LDEwMiA2MSwxMDcgNjYsOTggNjEsMTAzIDYzLDk3IDU3LDk5IDU3LDkxIDU3LDkxIDU3LDkxJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA4Myw3OSA3Niw3OSA2Nyw4MiA3NSw4MyA2NSw4OCA3Niw4NyA2NSw5MiA3Niw5MSA2OCw5NiA3Nyw5NSA3MCw5OSA4MCw5OCA3MiwxMDQgODAsMTAyIDc2LDEwOCA4NSwxMDMgOTIsMTAxIDg3LDk4IDkzLDk2IDg2LDk0IDkxLDkzIDg1LDkxIDkzLDg5IDk5LDg5IDEwNSw5MyAxMDcsODUgMTAyLDgyIDkyLDgwIDgzLDc5IDgzLDc5IDgzLDc5JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDksNzcgMTExLDgzIDEwOSw4OSAxMTMsOTQgMTE3LDkwIDExNyw4MSAxMTQsNzggMTA5LDc3IDEwOSw3NyAxMDksNzcnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEyMiwxMjggMTI3LDEyNiAxMzQsMTI3IDEzNiwxMjkgMTM0LDEzMCAxMzAsMTI4IDEyNCwxMjkgMTIyLDEyOCAxMjIsMTI4IDEyMiwxMjgnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDc4LDI3IDgyLDMyIDgwLDMzIDgyLDM2IDc4LDM3IDgyLDQwIDc4LDQyIDgxLDQ2IDc2LDQ3IDc4LDQ5IDc0LDUwIDgyLDUyIDg3LDUwIDgzLDQ4IDkxLDQ2IDg2LDQ1IDkxLDQyIDg4LDQwIDkyLDM3IDg2LDM0IDkwLDMxIDg2LDI5IDg5LDI2IDc4LDI3IDc4LDI3IDc4LDI3JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA4MiwxNyA5MiwyMCA3OSwyMSA5MCwyNSA4MSwyNSA5NCwyOCA5MywyNiAxMDEsMzAgMTAxLDI2IDEwNywzMyAxMDgsMjggMTExLDQwIDExMywzNCAxMTUsNDUgMTE3LDM5IDExOSw1NCAxMjEsNDYgMTI0LDU4IDEyNiw0NyAxMjksNTkgMTMwLDQ5IDEzNCw1OCAxMzMsNDQgMTM3LDQ4IDEzMywzNyAxMzcsNDAgMTMzLDMyIDEyNiwyMCAxMzUsMjYgMTMyLDE5IDEzOCwyMyAxMzUsMTcgMTQyLDE4IDEzMiwxMSAxMTYsNiA5NCw2IDc4LDExIDkyLDEyIDgwLDE0IDkwLDE2IDgyLDE3IDgyLDE3IDgyLDE3JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNDIsMjM0IDEzMiwyMjcgMTI0LDIyMyAxMTUsMjIwIDExMCwyMjUgMTE4LDIyNCAxMjcsMjI5IDEzNSwyMzYgMTIyLDIzNCAxMTUsMjM3IDExMywyNDIgMTIxLDIzOCAxMzksMjQzIDEyMSwyNDUgMTExLDI1NCA5NSwyNTQgMTAyLDI0NCAxMDQsMjM1IDExMCwyMjkgMTAwLDIzMSAxMDQsMjI0IDExMywyMTYgMTIyLDIxNSAxMzIsMjE3IDE0MSwyMjQgMTQ1LDIzMCAxNDksMjQwIDE0MiwyMzQgMTQyLDIzNCAxNDIsMjM0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMTUsMjUyIDEyNSwyNDggMTM3LDI0OSAxNDMsMjU4IDEzNCwyNTUgMTI1LDI1NCAxMTUsMjUyIDExNSwyNTIgMTE1LDI1MicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTE0LDIxMiAxMzAsMjEzIDE0MCwyMTkgMTQ3LDIyNSAxNDQsMjE0IDEzNywyMDkgMTI4LDIwNyAxMTQsMjEyIDExNCwyMTIgMTE0LDIxMicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTAyLDI2MyAxMDgsMjU4IDExNywyNTcgMTMxLDI1OCAxMTYsMjYwIDEwOSwyNjUgMTAyLDI2MyAxMDIsMjYzIDEwMiwyNjMnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDUxLDI0MSAzNSwyMjQgNDAsMjM4IDIzLDIyNCAzMSwyNDIgMTksMjM5IDI4LDI0NyAxNywyNDYgMjUsMjUwIDM3LDI1NCAzOSwyNjMgNDQsMjcxIDQ3LDI5NCA0OCwzMTcgNTEsMzI4IDYwLDM1MSA2MCwzMjMgNTMsMjYyIDQ3LDI0NiA1MSwyNDEgNTEsMjQxIDUxLDI0MScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMiwzNjQgOSwzNjcgMTQsMzY2IDE4LDM1NSAyMCwzNjQgMjYsMzY2IDMxLDM1NyAzNSwzNjQgMzksMzY0IDQyLDM1NyA0NywzNjMgNTMsMzYwIDU5LDM1NyA1NCwzNjkgNywzNzMgMiwzNjQgMiwzNjQgMiwzNjQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDcsMzQ5IDE5LDM0NSAyNSwzMzkgMTgsMzQxIDIzLDMzMyAyOCwzMjYgMjMsMzI2IDI3LDMyMCAyMywzMTYgMjUsMzExIDIwLDI5OCAxNSwyNzcgMTIsMjY0IDksMjQ5IDEwLDIyMyAzLDI0OCA1LDI2MSAxNSwzMDcgMTcsMzI2IDExLDM0MyA3LDM0OSA3LDM0OSA3LDM0OScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTEsMjI2IDE1LDIzMSAyNSwyMzYgMTgsMjI3IDExLDIyNiAxMSwyMjYgMTEsMjI2JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMywyMTQgMTksMjE3IDMyLDIyNyAyMywyMTQgMTYsMjA4IDE1LDE5MCAyNCwxNDggMzEsMTIxIDI0LDEzNyAxNCwxNzAgOCwxODkgMTMsMjE0IDEzLDIxNCAxMywyMTQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDIwMiwyNTQgMTk1LDI1OCAxOTksMjYwIDE5MywyNjMgMTk3LDI2MyAxOTAsMjY4IDE5NiwyNjggMTkxLDI3MyAxODgsMjgyIDIwMCwyNzIgMTk0LDI3MiAyMDEsMjY2IDE5NywyNjUgMjA0LDI2MiAyMDAsMjU4IDIwNCwyNTYgMjAyLDI1NCAyMDIsMjU0IDIwMiwyNTQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzg0NTQzMycpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE1MSwyMTMgMTY1LDIxMiAxNzksMjI1IDE4OSwyNDYgMTg3LDI2MiAxNzksMjc1IDE3NiwyNjMgMTc3LDI0NyAxNzEsMjMzIDE2MywyMzAgMTY1LDI1MSAxNTcsMjY0IDE0NiwyOTggMTQ1LDMyMSAxMzMsMzI2IDE0MywyODUgMTU0LDI2MCAxNTMsMjQwIDE1MSwyMTMgMTUxLDIxMyAxNTEsMjEzJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA5MSwxMzIgOTUsMTQ1IDk3LDE1NCAxMDQsMTQ4IDEwNywxNTUgMTA5LDE1MCAxMTEsMTU4IDExNSwxNTIgMTE4LDE1OSAxMjAsMTUzIDEyNSwxNjEgMTI2LDE1NSAxMzMsMTY0IDEzMiwxNTQgMTM3LDE2MyAxMzcsMTUyIDE0MiwxNjMgMTQ3LDE4NiAxNTIsMTkyIDE0OCwxNjcgMTQxLDE0MyAxMjQsMTQ1IDEwNSwxNDMgOTEsMTMyIDkxLDEzMiA5MSwxMzInKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzljODI2YicpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDMxLDU3IDIzLDUyIDI2LDUxIDIwLDQ0IDIzLDQyIDIxLDM2IDIyLDI5IDI1LDIzIDI0LDMyIDMwLDQzIDI2LDQxIDMwLDUwIDI2LDQ4IDMxLDU3IDMxLDU3IDMxLDU3JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNDcsMjEgMTQ5LDI4IDE1NSwyMSAxNjEsMTYgMTY3LDE0IDE3NSwxNSAxNzMsMTEgMTYxLDkgMTQ3LDIxIDE0NywyMSAxNDcsMjEnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE4MSwzOSAxNzUsNTEgMTY5LDU3IDE3MSw2NSAxNjUsNjggMTY1LDc1IDE2MCw3NiAxNjIsOTEgMTcxLDcxIDE4MCw1MSAxODEsMzkgMTgxLDM5IDE4MSwzOScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTMyLDM0NiAxMzksMzQ4IDE0MSwzNDYgMTQyLDM0MSAxNDcsMzQyIDE0MywzNTUgMTMzLDM1MCAxMzIsMzQ2IDEzMiwzNDYgMTMyLDM0NicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTQ2LDM1NSAxNTEsMzUyIDE1NSwzNDggMTU3LDM0MyAxNjAsMzQ5IDE1MSwzNTYgMTQ3LDM1NyAxNDYsMzU1IDE0NiwzNTUgMTQ2LDM1NScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgOTksMjY2IDEwMCwyODEgOTQsMzA1IDg2LDMyMiA3OCwzMzIgNzIsMzQ2IDczLDMzMSA5MSwyOTEgOTksMjY2IDk5LDI2NiA5OSwyNjYnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDIwLDM0NyAzMiwzNDIgNDUsMzQwIDU0LDM0NSA0NSwzNTAgNDIsMzUzIDM4LDM1MCAzMSwzNTMgMjksMzU2IDIzLDM1MCAxOSwzNTMgMTUsMzQ5IDIwLDM0NyAyMCwzNDcgMjAsMzQ3JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA3OCwzNDQgODYsMzQ0IDkyLDM0OSA4OCwzNTggODQsMzUyIDc4LDM0NCA3OCwzNDQgNzgsMzQ0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA5MywzNDcgMTA0LDM0NCAxMTcsMzQ1IDEyNCwzNTQgMTIxLDM1NyAxMTYsMzUxIDExMiwzNTEgMTA4LDM1NSAxMDIsMzUxIDkzLDM0NyA5MywzNDcgOTMsMzQ3JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDUsMTIgMTExLDE4IDExMywyNCAxMTMsMjkgMTE5LDM0IDExNiwyMyAxMTIsMTYgMTA1LDEyIDEwNSwxMiAxMDUsMTInKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEyMiwyNyAxMjUsMzQgMTI3LDQzIDEyOCwzNCAxMjUsMjkgMTIyLDI3IDEyMiwyNyAxMjIsMjcnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDExNSwxMyAxMjIsMTkgMTIyLDE1IDExMywxMCAxMTUsMTMgMTE1LDEzIDExNSwxMycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZlNWIyJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTE2LDE3MiAxMDcsMTgyIDk4LDE5MyA5OCwxODMgOTAsMTk5IDg5LDE4OSA4NCwyMDcgODgsMjA2IDg3LDIxNSA5NSwyMDYgOTMsMjE5IDkxLDIzMCA5OCwyMTYgOTcsMjI2IDEwNCwyMTQgMTEyLDIwOSAxMDQsMjA4IDExMywyMDIgMTI2LDIwMCAxMzksMjA3IDEzMiwxOTggMTQyLDIwMyAxMzQsMTkyIDE0MiwxOTUgMTM0LDE4NyAxNDAsMTg1IDEzMCwxODEgMTM2LDE3NyAxMjYsMTc3IDEyNSwxNzEgMTE2LDE4MCAxMTYsMTcyIDExNiwxNzIgMTE2LDE3MicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgNzQsMjIwIDY3LDIzMCA2NywyMjEgNTksMjM1IDYzLDIzMyA2MCwyNDggNzAsMjMyIDY1LDI0OSA3MSwyNDMgNjcsMjU2IDczLDI1MCA2OSwyNjIgNzMsMjU5IDcxLDI2NyA3NiwyNjIgNzIsMjcxIDc4LDI3MCA3NiwyNzUgODIsMjc0IDc4LDI5MCA4NiwyNzkgODYsMjg5IDkyLDI3NCA4OCwyNzUgODcsMjY0IDgyLDI3MCA4MiwyNTggNzcsMjU3IDc4LDI0NyA3MywyNDYgNzcsMjMzIDcyLDIzNiA3NCwyMjAgNzQsMjIwIDc0LDIyMCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTMzLDIzMCAxNDcsMjQyIDE0OCwyNTAgMTQ1LDI1NCAxMzgsMjQ3IDEyOSwyNDYgMTQyLDI0NSAxMzgsMjQxIDEyOCwyMzcgMTM3LDIzOCAxMzMsMjMwIDEzMywyMzAgMTMzLDIzMCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTMzLDI2MSAxMjUsMjYxIDExNiwyNjMgMTExLDI2NyAxMjUsMjY1IDEzMywyNjEgMTMzLDI2MSAxMzMsMjYxJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMjEsMjcxIDEwOSwyNzMgMTAzLDI3OSA5OSwzMDUgOTIsMzE2IDg1LDMyNyA4MywzMzUgODksMzQwIDk3LDM0MSA5NCwzMzYgMTAxLDMzNiA5NiwzMzEgMTAzLDMzMCA5NywzMjcgMTA4LDMyNSA5OSwzMjIgMTA5LDMyMSAxMDAsMzE4IDExMCwzMTcgMTA1LDMxNCAxMTAsMzEyIDEwNywzMTAgMTEzLDMwOCAxMDUsMzA2IDExNCwzMDMgMTA1LDMwMSAxMTUsMjk4IDEwNywyOTUgMTE1LDI5NCAxMDgsMjkzIDExNywyOTEgMTA5LDI4OSAxMTcsMjg2IDEwOSwyODYgMTE4LDI4MyAxMTIsMjgxIDExOCwyNzkgMTE0LDI3OCAxMTksMjc2IDExNSwyNzQgMTIxLDI3MSAxMjEsMjcxIDEyMSwyNzEnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDc5LDM2NCA3NCwzNTkgNzQsMzUzIDc2LDM0NyA4MCwzNTEgODMsMzU2IDgyLDM2MCA3OSwzNjQgNzksMzY0IDc5LDM2NCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgOTEsMzYzIDkzLDM1NiA5NywzNTMgMTAzLDM1NSAxMDUsMzYwIDEwMywzNjYgOTksMzcxIDk0LDM2OCA5MSwzNjMgOTEsMzYzIDkxLDM2MycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTEwLDM1NSAxMTQsMzUzIDExOCwzNTcgMTE3LDM2MyAxMTMsMzY5IDExMSwzNjIgMTEwLDM1NSAxMTAsMzU1IDExMCwzNTUnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEyNiwzNTQgMTIzLDM1OCAxMjQsMzY3IDEyNiwzNjkgMTI5LDM2MSAxMjksMzU3IDEyNiwzNTQgMTI2LDM1NCAxMjYsMzU0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAzMCwxNTQgMjQsMTY2IDIwLDE4MiAyMywxOTQgMjksMjA4IDM3LDIxOCA0MSwyMTAgNDEsMjIzIDQ2LDIxNCA0NiwyMjcgNTIsMjE2IDUyLDIyNyA2MSwyMTYgNTksMjI1IDY4LDIxMyA3MywyMTkgNzAsMjA3IDc3LDIxMiA2OSwyMDAgNzcsMjAyIDcwLDE5NCA3OCwxOTcgNjgsMTg3IDc2LDE4MiA2NCwxODIgNTgsMTc1IDU4LDE4NSA1MywxNzcgNTAsMTg2IDQ2LDE3MSA0NCwxODIgMzksMTY3IDM2LDE3MiAzNiwxNjIgMzAsMTY2IDMwLDE1NCAzMCwxNTQgMzAsMTU0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA0NCwxMzAgNDEsMTM3IDQ1LDEzNiA0MywxNTAgNDgsMTQyIDQ4LDE1NyA1MywxNTAgNTIsMTY0IDYwLDE1NiA2MSwxNjkgNjQsMTY1IDY2LDE3NSA3MCwxNjcgNzQsMTc2IDc3LDE2OCA4MCwxODMgODUsMTcyIDkwLDE4MiA5MywxNzQgOTgsMTgxIDk5LDE3MyAxMDQsMTc1IDEwNSwxNjkgMTE0LDE2OCAxMDIsMTYzIDk1LDE1NyA5NCwxNjYgOTAsMTU0IDg3LDE2MiA4MiwxNDkgNzUsMTU5IDcyLDE0OCA2OCwxNTUgNjcsMTQzIDYyLDE0OCA2MiwxMzggNTgsMTQ1IDU2LDEzMyA1MiwxNDIgNTIsMTI4IDQ5LDEzNCA0NywxMjUgNDQsMTMwIDQ0LDEzMCA0NCwxMzAnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEzLDIxNiAxOSwyMTkgMzYsMjMxIDIyLDIyMyAxNiwyMjIgMjIsMjI3IDEyLDIyNCAxMywyMjAgMTYsMjIwIDEzLDIxNiAxMywyMTYgMTMsMjE2JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMCwyMzEgMTQsMjM2IDI1LDIzOSAyNywyMzcgMTksMjM0IDEwLDIzMSAxMCwyMzEgMTAsMjMxJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA5LDI0NSAxNCwyNDIgMjUsMjQ1IDEzLDI0NSA5LDI0NSA5LDI0NSA5LDI0NScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMzMsMjU1IDI2LDI1MyAxOCwyNTQgMjUsMjU2IDE4LDI1OCAyNywyNjAgMTgsMjYzIDI3LDI2NSAxOSwyNjcgMjksMjcwIDIxLDI3MiAyOSwyNzYgMjEsMjc4IDMwLDI4MSAyMiwyODMgMzEsMjg3IDI0LDI4OCAzMiwyOTIgMjMsMjkzIDM0LDI5OCAyNiwyOTkgMzcsMzAzIDMyLDMwNSAzOSwzMDkgMzMsMzA5IDM5LDMxNCAzNCwzMTQgNDAsMzE4IDM0LDMxNyA0MCwzMjEgMzQsMzIxIDQxLDMyNiAzMywzMjYgNDAsMzMwIDMzLDMzMiAzOSwzMzMgMzMsMzM3IDQyLDMzNyA1NCwzNDEgNDksMzM3IDUyLDMzNSA0NywzMzAgNTAsMzMwIDQ1LDMyNSA0OSwzMjUgNDUsMzIxIDQ4LDMyMSA0NSwzMTYgNDYsMzA2IDQ1LDI4NiA0MywyNzQgMzYsMjYxIDMzLDI1NSAzMywyNTUgMzMsMjU1JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA3LDM1OCA5LDM1MSAxNCwzNTEgMTcsMzU5IDExLDM2NCA3LDM1OCA3LDM1OCA3LDM1OCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgNDQsMzU0IDQ5LDM1MSA1MiwzNTUgNDksMzYxIDQ0LDM1NCA0NCwzNTQgNDQsMzU0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAzMiwzNTcgMzcsMzUzIDQwLDM1OCAzNiwzNjEgMzIsMzU3IDMyLDM1NyAzMiwzNTcnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEzOSwzMzQgMTQ1LDMzMCAxNTQsMzMwIDE1OCwzMzQgMTU0LDM0MSAxNTIsMzQ4IDE0NSwzNTAgMTQ5LDM0MCAxNDcsMzM2IDE0MSwzMzkgMTM5LDM0NSAxMzYsMzQyIDEzNiwzMzkgMTM5LDMzNCAxMzksMzM0IDEzOSwzMzQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDIwOCwyNTkgMjE1LDI1OSAyMTIsMjU1IDIyMCwyNTkgMjI0LDI2MyAyMjUsMjc0IDIyNCwyODMgMjIwLDI5MiAyMDgsMzAwIDIwNiwzMDggMjAzLDMwNCAxOTksMzE1IDE5NywzMDkgMTk1LDMxOCAxOTMsMzEzIDE5MCwzMjIgMTkwLDMxNiAxODUsMzI1IDE4MiwzMTggMTgwLDMyNSAxNzIsMzIxIDE3OCwzMjAgMTc2LDMxMyAxODYsMzEyIDE4MCwzMDcgMTg4LDMwNyAxODQsMzAzIDE5MSwzMDIgMTg2LDI5OSAxOTUsMjk0IDE4NywyOTAgMTk3LDI4OCAxOTIsMjg2IDIwMSwyODMgMTk0LDI4MCAyMDMsMjc3IDE5OCwyNzUgMjA3LDI3MSAyMDAsMjY5IDIwOSwyNjUgMjA0LDI2NSAyMTIsMjYyIDIwOCwyNTkgMjA4LDI1OSAyMDgsMjU5JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDYsMTI2IDEwNiwxMzEgMTA5LDEzMiAxMTEsMTM0IDExNSwxMzIgMTE1LDEzNSAxMTksMTMzIDExOCwxMzcgMTIzLDEzNyAxMjgsMTM3IDEzMywxMzQgMTM2LDEzMCAxMzYsMTI3IDEzMiwxMjQgMTE4LDEyOCAxMTIsMTI4IDEwNiwxMjYgMTA2LDEyNiAxMDYsMTI2JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDcsMTE0IDEwMSwxMTAgOTgsMTAyIDEwNSw5NyAxMTEsOTggMTE5LDEwMiAxMjEsMTA4IDExOCwxMTIgMTEzLDExNSAxMDcsMTE0IDEwNywxMTQgMTA3LDExNCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTQ4LDEwNiAxNDUsMTEwIDE0NiwxMTYgMTUwLDExOCAxNTIsMTExIDE1MSwxMDcgMTQ4LDEwNiAxNDgsMTA2IDE0OCwxMDYnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDgwLDU1IDcwLDUyIDc1LDU4IDYzLDU3IDcyLDYxIDU3LDYxIDY3LDY2IDU3LDY3IDYyLDY5IDU0LDcxIDYxLDczIDU0LDc3IDYzLDc4IDUzLDg1IDYwLDg0IDU2LDkwIDY5LDg0IDYzLDgyIDc1LDc2IDcwLDc1IDc3LDcyIDcyLDcxIDc4LDY5IDcyLDY2IDgxLDY3IDc4LDY0IDgyLDYzIDgwLDYwIDg2LDYyIDgwLDU1IDgwLDU1IDgwLDU1JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA4Nyw1NiA5MSw1MiA5Niw1MCAxMDIsNTYgOTgsNTYgOTIsNjAgODcsNTYgODcsNTYgODcsNTYnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDg1LDY4IDg5LDczIDk4LDc2IDEwNiw3NCA5Niw3MyA5MSw3MCA4NSw2OCA4NSw2OCA4NSw2OCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTE1LDU3IDExNCw2NCAxMTEsNjQgMTE1LDc1IDEyMiw4MSAxMjIsNzQgMTI2LDc5IDEyNiw3NCAxMzEsNzggMTMwLDcyIDEzMyw3NyAxMzEsNjggMTI2LDYxIDExOSw1NyAxMTUsNTcgMTE1LDU3IDExNSw1NycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTQ1LDQ4IDE0Myw1MyAxNDcsNTkgMTUxLDU5IDE1MCw1NSAxNDUsNDggMTQ1LDQ4IDE0NSw0OCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMjYsMjIgMzQsMTUgNDMsMTAgNTIsMTAgNTksMTYgNDcsMTUgMzIsMjIgMjYsMjIgMjYsMjIgMjYsMjInKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE2MCwxOSAxNTIsMjYgMTQ5LDM0IDE1NCwzMyAxNTIsMzAgMTU3LDMwIDE1NSwyNiAxNTgsMjcgMTU3LDIzIDE2MSwyMyAxNjAsMTkgMTYwLDE5IDE2MCwxOScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgOTgsMTE3IDEwNSwxMjIgMTA5LDEyMiAxMDUsMTE3IDExMywxMjAgMTIxLDEyMCAxMzAsMTEyIDEyOCwxMDggMTIzLDEwMyAxMjMsOTkgMTI4LDEwMSAxMzIsMTA2IDEzNSwxMDkgMTQyLDEwNSAxNDIsMTAxIDE0NSwxMDEgMTQ1LDkxIDE0OCwxMDEgMTQ1LDEwNSAxMzYsMTEyIDEzNSwxMTYgMTQzLDEyNCAxNDgsMTIwIDE1MCwxMjIgMTQyLDEyOCAxMzMsMTIyIDEyMSwxMjUgMTEyLDEyNiAxMDMsMTI1IDEwMCwxMjkgOTYsMTI0IDk4LDExNyA5OCwxMTcgOTgsMTE3JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNDYsMTE4IDE1MiwxMTggMTUyLDExNSAxNDksMTE1IDE0NiwxMTggMTQ2LDExOCAxNDYsMTE4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNDgsMTEyIDE1NCwxMTEgMTU0LDEwOSAxNDksMTA5IDE0OCwxMTIgMTQ4LDExMiAxNDgsMTEyJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDYsMTEyIDEwOCwxMTUgMTE0LDExNiAxMTgsMTE0IDEwNiwxMTIgMTA2LDExMiAxMDYsMTEyJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDgsMTA4IDExMSwxMTAgMTE2LDExMCAxMTksMTA4IDEwOCwxMDggMTA4LDEwOCAxMDgsMTA4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMDYsMTA0IDEwOSwxMDUgMTE3LDEwNiAxMTUsMTA0IDEwNiwxMDQgMTA2LDEwNCAxMDYsMTA0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA1MCwyNSA0MSwyNiAzNCwzMyAzOSw0MyA0OSw1OCAzNiw1MSA0Nyw2OCA1NSw2OSA1NCw1OSA2MSw1NyA3NCw0NiA2MCw1MiA2Nyw0MiA1Nyw0OCA2MSw0MCA1NCw0NSA2MCwzNiA1OSwyOSA0OCwzOCA1MiwzMCA0NywzMiA1MCwyNSA1MCwyNSA1MCwyNScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTQ3LDM0IDE1Miw0MSAxNTUsNDkgMTYxLDUzIDE1Nyw0NyAxNjQsNDcgMTU4LDQzIDE2OCw0NCAxNTksNDAgMTY0LDM3IDE2OSwzNyAxNjQsMzMgMTY5LDM0IDE2NSwyOCAxNzAsMzAgMTcwLDI1IDE3MywyOSAxNzUsMjcgMTc2LDMyIDE3MywzNiAxNzUsMzkgMTcyLDQyIDE3Miw0NiAxNjgsNDkgMTcwLDU1IDE2Miw1NyAxNTgsNjMgMTU1LDU4IDE1Myw1MCAxNDksNDYgMTQ3LDM0IDE0NywzNCAxNDcsMzQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE1NSw3MSAxNTksODAgMTU3LDkzIDE1NywxMDIgMTU1LDEwOCAxNTAsMTAxIDE0OSw5MyAxNTQsMTAxIDE1Miw5MSAxNTEsODMgMTU1LDc5IDE1NSw3MSAxNTUsNzEgMTU1LDcxJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMTIsNzggMTE1LDgxIDExNCw5MSAxMTIsODcgMTEzLDgyIDExMiw3OCAxMTIsNzggMTEyLDc4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA3OCwyOCA2NCwxNyA1OCwxMSA0Nyw5IDM2LDEwIDI4LDE2IDIxLDI2IDE4LDQxIDIwLDUxIDIzLDYxIDMzLDY1IDI4LDY4IDM3LDc0IDM2LDgxIDQzLDg3IDQ4LDkwIDQzLDEwMCA0MCw5OCAzOSw5MCAzMSw4MCAzMCw3MiAyMiw3MSAxNyw2MSAxNCw0NiAxNiwyOCAyMywxNyAzMyw5IDQ1LDYgNTQsNiA2NSwxMiA3OCwyOCA3OCwyOCA3OCwyOCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgNjcsMTggNzYsOSA4Nyw1IDEwMSwyIDExOCwzIDEzNSw4IDE0OSwyMCAxNDksMjYgMTQ0LDE5IDEzMiwxMiAxMjEsOSAxMDUsNyA4OSw4IDc2LDE0IDcwLDIwIDY3LDE4IDY3LDE4IDY3LDE4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA1Niw5OCA0OCwxMDYgNTYsMTAzIDQ3LDExMiA1NiwxMTAgNTIsMTE1IDU3LDExMyA1MiwxMjEgNjIsMTE1IDU4LDEyMyA2NSwxMTkgNjMsMTI1IDY5LDEyMSA2OCwxMjcgNzQsMTI1IDc0LDEyOSA3OSwxMjggODMsMTMyIDk0LDEzNSA5MywxMjkgODUsMTI3IDgxLDEyMiA3NiwxMjYgNzUsMTIxIDcxLDEyNCA3MSwxMTcgNjYsMTIxIDY2LDExNyA2MiwxMTcgNjQsMTEyIDYwLDExMyA2MCwxMTAgNTcsMTExIDYxLDEwNSA1NywxMDcgNjAsMTAxIDU1LDEwMiA1Niw5OCA1Niw5OCA1Niw5OCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTAxLDEzMiAxMDMsMTM4IDEwNiwxMzQgMTA2LDEzOSAxMTIsMTM2IDExMSwxNDIgMTE1LDEzOSAxMTQsMTQzIDExOSwxNDIgMTI1LDE0NSAxMzEsMTQyIDEzNSwxMzggMTQwLDEzNCAxNDAsMTI5IDE0MywxMzUgMTQ1LDE0OSAxNTAsMTcxIDE0OSwxODQgMTQ1LDE2NSAxNDEsMTUwIDEzNiwxNDcgMTMyLDE1MSAxMzEsMTQ5IDEyNiwxNTIgMTI1LDE1MCAxMjEsMTUyIDExNywxNDggMTExLDE1MiAxMTAsMTQ4IDEwNSwxNDkgMTA0LDE0NSA5OCwxNTAgOTYsMTM4IDk0LDEzMiA5NCwxMzAgOTgsMTMyIDEwMSwxMzIgMTAxLDEzMiAxMDEsMTMyJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA0MSw5NCAzMiwxMTAgMjMsMTMyIDEyLDE2MyA2LDE5MCA3LDIxNyA1LDIzNiAzLDI0NyA5LDIzMCAxMiwyMTEgMTIsMTg1IDE4LDE2MCAyNiwxMzQgMzUsMTEwIDQzLDk5IDQxLDk0IDQxLDk0IDQxLDk0JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAzMiwyNDYgNDEsMjUwIDUwLDI1NyA1MiwyNjcgNTMsMjk1IDUzLDMyMyA1OSwzNTAgNTQsMzYzIDUxLDM2NSA0NCwzNjYgNDIsMzYwIDQwLDM3MiA1NCwzNzIgNTksMzY2IDYyLDM1MyA3MSwzNTIgNzUsMzM1IDczLDMzMCA2NiwzMTggNjgsMzAyIDY0LDI5NCA2NywyODggNjMsMjg2IDYzLDI3OSA1OSwyNzUgNTgsMjY3IDU2LDI2MiA1MCwyNDcgNDIsMjM1IDQ0LDI0NiAzMiwyMzYgMzUsMjQ0IDMyLDI0NiAzMiwyNDYgMzIsMjQ2JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMzQsMzI0IDE0NiwzMjAgMTU5LDMyMiAxNzMsMzI3IDE3OSwzMzcgMTc5LDM0OSAxNzIsMzU1IDE1OCwzNTcgMTcwLDM1MCAxNzQsMzQzIDE3MCwzMzMgMTYzLDMyOCAxNTIsMzI2IDEzNCwzMjkgMTM0LDMyNCAxMzQsMzI0IDEzNCwzMjQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE3MywzMzkgMTgzLDMzNCAxODQsMzM4IDE5MSwzMjkgMTk0LDMzMiAxOTksMzIzIDIwMiwzMjUgMjA2LDMxOCAyMDksMzIwIDIxMywzMDkgMjIxLDMwMyAyMjgsMjk2IDIzMiwyODkgMjM0LDI3OSAyMzMsMjY5IDIzMCwyNjIgMjI1LDI1NiAyMTksMjUzIDIwOCwyNTIgMTk4LDI1MiAyMTAsMjQ5IDIyMywyNTAgMjMyLDI1NyAyMzcsMjY1IDIzOCwyNzcgMjM4LDI5MSAyMzIsMzA1IDIyMSwzMjMgMjE4LDMzNSAyMTIsMzQyIDIwMCwzNDkgMTc4LDM0OCAxNzMsMzM5IDE3MywzMzkgMTczLDMzOScpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTY1LDI5NiAxNTgsMzAxIDE1NiwzMTAgMTU2LDMyMyAxNjIsMzI0IDE1OSwzMTggMTYyLDMwOCAxNjIsMzA0IDE2NSwyOTYgMTY1LDI5NiAxNjUsMjk2JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA5OSwyNTIgMTA1LDI0NCAxMDcsMjM0IDExNSwyMjggMTIxLDIyOCAxMzEsMjM1IDEyMiwyMzMgMTEzLDIzNSAxMDksMjQ2IDEyMSwyMzkgMTMzLDI0MyAxMjEsMjQzIDExMCwyNTEgOTksMjUyIDk5LDI1MiA5OSwyNTInKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDExNywyNTIgMTI0LDI0NyAxMzQsMjQ5IDEzNiwyNTMgMTI2LDI1MiAxMTcsMjUyIDExNywyNTIgMTE3LDI1MicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTE3LDIxOCAxMzIsMjI0IDE0NCwyMzMgMTQwLDIyNSAxMzIsMjE5IDExNywyMTggMTE3LDIxOCAxMTcsMjE4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMjIsMjEyIDEzNCwyMTQgMTQzLDIyMSAxNDEsMjEzIDEzMiwyMTAgMTIyLDIxMiAxMjIsMjEyIDEyMiwyMTInKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDY5LDM1MiA3MCwzNjMgNzYsMzczIDg2LDM3OCA5NywzNzkgMTA4LDM3OSAxMjAsMzc3IDEyOCwzNzggMTMyLDM3MyAxMzUsMzYxIDEzMywzNTggMTMyLDM2NiAxMjcsMzc1IDEyMSwzNzQgMTIxLDM2MiAxMTksMzY3IDExNywzNzQgMTEwLDM3NiAxMTAsMzYyIDEwNywzNTcgMTA2LDM3MSAxMDQsMzc1IDk3LDM3NiA5MCwzNzUgOTAsMzY4IDg2LDM2MiA4MywzNjQgODYsMzY5IDg1LDM3MyA3OCwzNzAgNzMsMzYyIDcxLDM1MSA2OSwzNTIgNjksMzUyIDY5LDM1MicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTAwLDM2MCA5NiwzNjMgOTksMzY5IDEwMiwzNjQgMTAwLDM2MCAxMDAsMzYwIDEwMCwzNjAnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDExNSwzNjAgMTEyLDM2MyAxMTQsMzY5IDExNywzNjQgMTE1LDM2MCAxMTUsMzYwIDExNSwzNjAnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEyNywzNjIgMTI1LDM2NCAxMjYsMzY5IDEyOCwzNjUgMTI3LDM2MiAxMjcsMzYyIDEyNywzNjInKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDUsMjU1IDcsMjc2IDExLDMwNCAxNSwzMjAgMTMsMzM0IDYsMzQ4IDIsMzUzIDAsMzYzIDUsMzcyIDEyLDM3NCAyNSwzNzIgMzgsMzcyIDQ0LDM2OSA0MiwzNjcgMzYsMzY4IDMxLDM2OSAzMCwzNjAgMjcsMzY4IDIwLDM3MCAxNiwzNjEgMTUsMzY4IDEwLDM2OSAzLDM2NiAzLDM1OSA2LDM1MiAxMSwzNDggMTcsMzMxIDE5LDMxNiAxMiwyOTEgOSwyNzQgNSwyNTUgNSwyNTUgNSwyNTUnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEwLDM1OCA3LDM2MiAxMCwzNjYgMTEsMzYyIDEwLDM1OCAxMCwzNTggMTAsMzU4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAyNSwzNTcgMjIsMzYwIDI0LDM2NiAyNywzNjAgMjUsMzU3IDI1LDM1NyAyNSwzNTcnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDM3LDM1NyAzNCwzNjEgMzYsMzY1IDM4LDM2MSAzNywzNTcgMzcsMzU3IDM3LDM1NycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgNDksMzU2IDQ2LDM1OSA0NywzNjQgNTAsMzYwIDQ5LDM1NiA0OSwzNTYgNDksMzU2JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxMzAsMTAxIDEzMiwxMDIgMTM1LDEwMSAxMzksMTAyIDE0MywxMDMgMTQyLDEwMSAxMzcsMTAwIDEzMywxMDAgMTMwLDEwMSAxMzAsMTAxIDEzMCwxMDEnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEwNiw0OCAxMDUsNTIgMTA4LDU2IDEwOSw1MiAxMDYsNDggMTA2LDQ4IDEwNiw0OCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTM5LDUyIDEzOSw1NiAxNDAsNjAgMTQyLDU4IDE0MSw1NiAxMzksNTIgMTM5LDUyIDEzOSw1MicpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMjUsMzQ5IDI5LDM1MSAzMCwzNTUgMzMsMzUwIDM3LDM0OCA0MiwzNTEgNDUsMzQ3IDQ5LDM0NSA0NCwzNDMgMzYsMzQ1IDI1LDM0OSAyNSwzNDkgMjUsMzQ5JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA5OCwzNDcgMTA1LDM1MSAxMDcsMzU0IDEwOSwzNDkgMTE1LDM0OSAxMjAsMzUzIDExOCwzNDkgMTEzLDM0NiAxMDQsMzQ2IDk4LDM0NyA5OCwzNDcgOTgsMzQ3JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA4MywzNDggODcsMzUyIDg3LDM1NyA4OSwzNTEgODcsMzQ4IDgzLDM0OCA4MywzNDggODMsMzQ4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNTUsMTA3IDE2MywxMDcgMTcwLDEwNyAxODYsMTA4IDE3NSwxMDkgMTU1LDEwOSAxNTUsMTA3IDE1NSwxMDcgMTU1LDEwNycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTUzLDExNCAxNjIsMTEzIDE3NSwxMTIgMTkyLDExNCAxNzMsMTE0IDE1NCwxMTUgMTUzLDExNCAxNTMsMTE0IDE1MywxMTQnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE1MiwxMTggMTY0LDEyMCAxODAsMTIzIDE5NywxMjkgMTY5LDEyMyAxNTEsMTIwIDE1MiwxMTggMTUyLDExOCAxNTIsMTE4JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyA2OCwxMDkgODcsMTA2IDEwNywxMDYgMTA2LDEwOCA4OCwxMDggNjgsMTA5IDY4LDEwOSA2OCwxMDknKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEwNSwxMTEgOTUsMTEyIDc5LDExNCA3MSwxMTYgODUsMTE1IDEwMiwxMTMgMTA1LDExMSAxMDUsMTExIDEwNSwxMTEnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDEwOCwxMDEgOTgsOTkgODcsOTkgNzgsOTkgOTMsMTAwIDEwNSwxMDIgMTA4LDEwMSAxMDgsMTAxIDEwOCwxMDEnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDg1LDYzIDkxLDYzIDk3LDYwIDEwNCw2MCAxMDgsNjIgMTExLDY5IDExMiw3NSAxMTAsNzQgMTA4LDcxIDEwMyw3MyAxMDYsNjkgMTA1LDY1IDEwMyw2NCAxMDMsNjcgMTAyLDcwIDk5LDcwIDk3LDY2IDk0LDY3IDk3LDcyIDg4LDY3IDg0LDY2IDg1LDYzIDg1LDYzIDg1LDYzJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChwb2x5bGluZSwgdmVydHM9JyAxNDAsNzQgMTQxLDY2IDE0NCw2MSAxNTAsNjEgMTU2LDYyIDE1Myw3MCAxNTAsNzMgMTUyLDY1IDE1MCw2NSAxNTEsNjggMTQ5LDcxIDE0Niw3MSAxNDQsNjYgMTQzLDcwIDE0Myw3NCAxNDAsNzQgMTQwLDc0IDE0MCw3NCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTQ2LDIwIDE1NiwxMSAxNjMsOSAxNzIsOSAxNzgsMTQgMTgyLDE4IDE4NCwzMiAxODIsNDIgMTgyLDUyIDE3Nyw1OCAxNzYsNjcgMTcxLDc2IDE2NSw5MCAxNTcsMTA1IDE2MCw5MiAxNjQsODUgMTY4LDc4IDE2Nyw3MyAxNzMsNjYgMTcyLDYyIDE3NSw1OSAxNzQsNTUgMTc3LDUzIDE4MCw0NiAxODEsMjkgMTc5LDIxIDE3MywxMyAxNjYsMTEgMTU5LDEzIDE1MywxOCAxNDgsMjMgMTQ2LDIwIDE0NiwyMCAxNDYsMjAnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE1MCwxODcgMTQ4LDIxMSAxNTAsMjMzIDE1MywyNDcgMTQ4LDI2NyAxMzUsMjgzIDEyNSwyOTkgMTM2LDI5MiAxMzEsMzEzIDEyMiwzMjggMTIyLDM0NSAxMjksMzUyIDEzMywzNTkgMTMzLDM2NyAxMzcsMzU5IDE0OCwzNTYgMTQwLDM1MCAxMzEsMzQ3IDEyOSwzNDAgMTMyLDMzMiAxNDAsMzI4IDEzNywzMjIgMTQwLDMwNCAxNTQsMjY1IDE1NywyNDQgMTU1LDIyMyAxNjEsMjIwIDE3NSwyMjkgMTg2LDI0NyAxODUsMjYwIDE3NiwyNzUgMTc4LDI4NyAxODUsMjc3IDE4OCwyNjEgMTk2LDI1MyAxODksMjM2IDE3NCwyMTMgMTUwLDE4NyAxNTAsMTg3IDE1MCwxODcnKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDE0NywzMzggMTQyLDM0MSAxNDMsMzQ1IDE0MSwzNTQgMTQ3LDM0MyAxNDcsMzM4IDE0NywzMzggMTQ3LDMzOCcpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgMTU3LDM0MiAxNTYsMzQ5IDE1MCwzNTYgMTU3LDM1MyAxNjMsMzQ2IDE2MiwzNDIgMTU3LDM0MiAxNTcsMzQyIDE1NywzNDInKQorU0FYLmVuZEVsZW1lbnQocG9seWxpbmUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDk5LDI2NSA5NiwyODQgOTIsMjk5IDczLDMzOSA3MywzMzMgODcsMzAwIDk5LDI2NSA5OSwyNjUgOTksMjY1JykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5lbmRFbGVtZW50KHN2ZykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcxLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcxLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I4MTQ1OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzEuc2F4MgpAQCAtMCwwICsxLDYxMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoc3ZnLCAtLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4sIGh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkKQorU0FYLmV4dGVybmFsU3Vic2V0KHN2ZywgLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOLCBodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCkKK1NBWC5zdGFydEVsZW1lbnROcyhzdmcsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIHdpZHRoPScyNDJwLi4uJywgNSwgaGVpZ2h0PSczODNwLi4uJywgNSkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMTUpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA2OSwuLi4nLCAzMzcpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTQyLi4uJywgMTkwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEyNy4uLicsIDcxKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE3OC4uLicsIDEyOCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA1NiwuLi4nLCAyNzMpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDc0LC4uLicsIDIwMykKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMjEyLi4uJywgNDQ4KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNTEuLi4nLCAyMDgpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDc4LC4uLicsIDEwNikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMjEsLi4uJywgOTApCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDcxLC4uLicsIDE1MCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTM5Li4uJywgMTAxKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMDUuLi4nLCA1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTQxLi4uJywgNzApCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDk4LC4uLicsIDE1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgOTcsLi4uJywgMTU2KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDcuLi4nLCAyMzgpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDg1LC4uLicsIDY5KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA4NiwuLi4nLCAyMTcpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgOTMsLi4uJywgNjUpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE0NC4uLicsIDcwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDU3LC4uLicsIDI5NCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgODMsLi4uJywgMTk0KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMDkuLi4nLCA3MCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTIyLi4uJywgODApCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDc4LC4uLicsIDE1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgODIsLi4uJywgMjg0KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDIuLi4nLCAyMzkpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDExNS4uLicsIDcyKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMTQuLi4nLCA4MCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTAyLi4uJywgNzIpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDUxLC4uLicsIDE1NCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMiwzLi4uJywgMTIwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA3LDMuLi4nLCAxNTQpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDExLC4uLicsIDQ5KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMywuLi4nLCA5NykKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMjAyLi4uJywgMTUyKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE1MS4uLicsIDE2OCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgOTEsLi4uJywgMjAyKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDMxLC4uLicsIDk2KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDcuLi4nLCA3NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTgxLi4uJywgOTEpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEzMi4uLicsIDgwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDYuLi4nLCA4MCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgOTksLi4uJywgNzgpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDIwLC4uLicsIDEwNSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgNzgsLi4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDkzLC4uLicsIDkyKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEwNS4uLicsIDcwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMjIuLi4nLCA1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTE1Li4uJywgNDkpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTE2Li4uJywgMjYwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA3NCwuLi4nLCAyNDUpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEzMy4uLicsIDEwNCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTMzLi4uJywgNjQpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEyMS4uLicsIDMzNCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgNzksLi4uJywgNzApCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDkxLC4uLicsIDgwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMTAuLi4nLCA3MikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTI2Li4uJywgNzIpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDMwLC4uLicsIDI2NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgNDQsLi4uJywgMzE5KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMywuLi4nLCA4NCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTAsLi4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDksMi4uLicsIDQ1KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAzMywuLi4nLCAzODUpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDcsMy4uLicsIDUxKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA0NCwuLi4nLCA0OSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMzIsLi4uJywgNDkpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEzOS4uLicsIDEyOCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMjA4Li4uJywgMzYwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMDYuLi4nLCAxNTIpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEwNy4uLicsIDkzKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDguLi4nLCA3MikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgODAsLi4uJywgMTkyKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA4NywuLi4nLCA1NSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgODUsLi4uJywgNTUpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDExNS4uLicsIDExOSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTQ1Li4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDI2LC4uLicsIDYwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNjAuLi4nLCA5MSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA5OCwuLi4nLCAyNjUpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE0Ni4uLicsIDU2KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDguLi4nLCA1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTA2Li4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEwOC4uLicsIDU2KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMDYuLi4nLCA1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgNTAsLi4uJywgMTQ0KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDcuLi4nLCAyMzEpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE1NS4uLicsIDEwMikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTEyLi4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDc4LC4uLicsIDE5NSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgNjcsLi4uJywgMTA5KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA1NiwuLi4nLCAyNzYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEwMS4uLicsIDMwNykKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgNDEsLi4uJywgMTE2KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAzMiwuLi4nLCAyNDUpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEzNC4uLicsIDEzNikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTczLi4uJywgMjgwKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNjUuLi4nLCA4OCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgOTksLi4uJywgMTI0KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMTcuLi4nLCA2NCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTE3Li4uJywgNjQpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEyMi4uLicsIDY0KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA2OSwuLi4nLCAyNjIpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEwMC4uLicsIDU0KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMTUuLi4nLCA1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTI3Li4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDUsMi4uLicsIDIxOCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTAsLi4uJywgNDgpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDI1LC4uLicsIDQ5KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAzNywuLi4nLCA0OSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgNDksLi4uJywgNDkpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDEzMC4uLicsIDg4KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMDYuLi4nLCA0OSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTM5Li4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDI1LC4uLicsIDkxKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA5OCwuLi4nLCA5MikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgODMsLi4uJywgNTYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE1NS4uLicsIDcyKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNTMuLi4nLCA3MikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTUyLi4uJywgNzIpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDY4LC4uLicsIDU4KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxMDUuLi4nLCA2OCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTA4Li4uJywgNjUpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDg1LC4uLicsIDE1NikKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTQwLi4uJywgMTI2KQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyAxNDYuLi4nLCAyMzcpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE1MC4uLicsIDMyMCkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMTQ3Li4uJywgNjQpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDE1Ny4uLicsIDcyKQorU0FYLmVuZEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb2x5bGluZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdmVydHM9JyA5OSwuLi4nLCA2MykKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguZW5kRWxlbWVudE5zKHN2ZywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzM5OTBjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMgpAQCAtMCwwICsxLDU2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4KKzxzdmcgd2lkdGg9IjI2OHB4IiBoZWlnaHQ9IjIwN3B4Ij4KKzxnIHN0eWxlPSJzdHJva2U6ICMwMDAwMDAiPiAKKyAgIDxwYXRoIGQ9IiBNIDI5IDI4ICIvPiAKKyAgIDxwYXRoIGQ9IiBMIDE5IDc0ICIvPiAKKzwvZz4gCis8ZyBzdHlsZT0ic3Ryb2tlOiAjODAwMDQwIj4gCisgICA8cG9seWxpbmUgdmVydHM9IiAzMiwxMDAgNzIsNTAgOTAsODIgNzMsMTYgMTIwLDY0IDE1Miw5IDE3NywxMDciLz4gCis8L2c+IAorPGcgc3R5bGU9InN0cm9rZTogIzAwMDAwMCI+IAorPC9nPiAKKzxnIHN0eWxlPSJzdHJva2U6ICMwMDAwZmYiPiAKKyAgIDxyZWN0IHg9IjMwIiB5PSIxMDEiIHdpZHRoPSI1MSIgaGVpZ2h0PSIzMyIvPgorPC9nPiAKKzxnIHN0eWxlPSJmaWxsOiAjMDAwMGZmIj4gCisgICA8ZWxsaXBzZSBjeD0iMTgyIiBjeT0iMTI3IiBtYWpvcj0iMzciIG1pbm9yPSIzMSIgYW5nbGU9IjkwIi8+Cis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICNmZjAwMDAiPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cz0iIDc4LDE4MCA3NiwxNTEgMTMxLDE0OSAxMzYsMTgyIDEzNSwxODIgMTM0LDE4MyAxMjcsMTg1IDExNywxODYgMTA5LDE5MiAxMDQsMTk0IDk4LDE5OSA5NiwyMDAgOTUsMjAxIDk0LDIwMiA5MiwyMDIgODUsMjAyIDcwLDIwMCA1NCwxOTkgNDcsMTk4IDQ2LDE5NyA0NSwxOTcgMzcsMTk1IDI2LDE5MyAxNywxODcgOSwxODEgOCwxODEgNywxNzYgNiwxNzUgNiwxNzMgNiwxNzIgNiwxNzAgOCwxNjQgOCwxNjMgOCwxNjIgOSwxNjIgMTAsMTYyIDExLDE2MiAxMywxNjIgMjAsMTYyIDI2LDE2MiAyNywxNjIgMjgsMTYyIDMwLDE2MiAzMCwxNjMgMzEsMTYzIDMyLDE2NCAzNCwxNjYgMzUsMTY2IDM2LDE2NyAzNiwxNjggMzcsMTY5IDM4LDE2OSAzOSwxNjkgNDEsMTcwIDQzLDE3MCA0NSwxNzAgNDcsMTcwIDQ5LDE3MCA1MCwxNjggNTAsMTYxIDUwLDE2MCA1MCwxNTkgNDcsMTYyIDc4LDE4MCIvPiAKKyAgIDxnPgorICAgICA8ZGVzYz4gSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDA8L2Rlc2M+IAorICAgPC9nPgorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpIZWx2ZXRpY2EgMDwvZGVzYz4gCisgICA8L2c+Cis8L2c+IAorPGcgc3R5bGU9InN0cm9rZTogIzAwMDAwMCI+IAorICAgPHRleHQgeD0iMTg4IiB5PSIzNiI+dGhpcyBpcyB0ZXh0PC90ZXh0PgorPC9nPiAKKzxnIHN0eWxlPSJzdHJva2U6ICMwMDAwMDAiPiAKKyAgIDxnPgorICAgICA8ZGVzYz4gSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDA8L2Rlc2M+IAorICAgPC9nPgorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpIZWx2ZXRpY2EgNzAwPC9kZXNjPiAKKyAgIDwvZz4KKzwvZz4gCis8ZyBzdHlsZT0ic3Ryb2tlOiAjMDA4MDgwIj4gCisgICA8dGV4dCB4PSIxNzYiIHk9Ijg1Ij5zYWRmc2FkZnNhZDwvdGV4dD4KKzwvZz4gCis8ZyBzdHlsZT0ic3Ryb2tlOiAjMDAwMDAwIj4gCis8L2c+IAorPGcgc3R5bGU9ImZpbGw6ICM4MDAwNDAiPiAKKyAgIDxlbGxpcHNlIGN4PSIyMDgiIGN5PSIxODAiIG1ham9yPSI0NSIgbWlub3I9IjMxIiBhbmdsZT0iMCIvPgorPC9nPiAKKzxnIHN0eWxlPSJzdHJva2U6ICMwMDAwMDAiPiAKKzwvZz4gCis8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZiI+IAorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgNzAwPC9kZXNjPiAKKyAgIDwvZz4KKyAgIDxnPgorICAgICA8ZGVzYz4gSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDcwMDwvZGVzYz4gCisgICA8L2c+Cis8L2c+PC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzIucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYWIxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyLnJkZQpAQCAtMCwwICsxLDE3OCBAQAorMCAxMCBzdmcgMCAwCiswIDEgc3ZnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHJlY3QgMSAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIGVsbGlwc2UgMSAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgZyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAKKzMgMSBkZXNjIDAgMAorNCAzICN0ZXh0IDAgMSAgSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDAKKzMgMTUgZGVzYyAwIDAKKzMgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxNSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAKKzIgMSBnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgIAorMyAxIGRlc2MgMCAwCis0IDMgI3RleHQgMCAxICBKYXZhIEZvbnQgZGVmaW5pdGlvbjpIZWx2ZXRpY2EgMAorMyAxNSBkZXNjIDAgMAorMyAxNCAjdGV4dCAwIDEgIAorICAgCisyIDE1IGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHRleHQgMCAwCiszIDMgI3RleHQgMCAxIHRoaXMgaXMgdGV4dAorMiAxNSB0ZXh0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgIAorMyAxIGRlc2MgMCAwCis0IDMgI3RleHQgMCAxICBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMAorMyAxNSBkZXNjIDAgMAorMyAxNCAjdGV4dCAwIDEgIAorICAgCisyIDE1IGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgIAorMiAxIGcgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgCiszIDEgZGVzYyAwIDAKKzQgMyAjdGV4dCAwIDEgIEphdmEgRm9udCBkZWZpbml0aW9uOkhlbHZldGljYSA3MDAKKzMgMTUgZGVzYyAwIDAKKzMgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxNSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSB0ZXh0IDAgMAorMyAzICN0ZXh0IDAgMSBzYWRmc2FkZnNhZAorMiAxNSB0ZXh0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBlbGxpcHNlIDEgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgIAorMyAxIGRlc2MgMCAwCis0IDMgI3RleHQgMCAxICBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgNzAwCiszIDE1IGRlc2MgMCAwCiszIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMTUgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgCisyIDEgZyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAKKzMgMSBkZXNjIDAgMAorNCAzICN0ZXh0IDAgMSAgSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDcwMAorMyAxNSBkZXNjIDAgMAorMyAxNCAjdGV4dCAwIDEgIAorICAgCisyIDE1IGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMCAxNSBzdmcgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzIucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYWIxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyLnJkcgpAQCAtMCwwICsxLDE3OCBAQAorMCAxMCBzdmcgMCAwCiswIDEgc3ZnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBwb2x5bGluZSAxIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHJlY3QgMSAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIGVsbGlwc2UgMSAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHBvbHlsaW5lIDEgMAorMiAxNCAjdGV4dCAwIDEgIAorICAgCisyIDEgZyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAKKzMgMSBkZXNjIDAgMAorNCAzICN0ZXh0IDAgMSAgSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDAKKzMgMTUgZGVzYyAwIDAKKzMgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxNSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAKKzIgMSBnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgIAorMyAxIGRlc2MgMCAwCis0IDMgI3RleHQgMCAxICBKYXZhIEZvbnQgZGVmaW5pdGlvbjpIZWx2ZXRpY2EgMAorMyAxNSBkZXNjIDAgMAorMyAxNCAjdGV4dCAwIDEgIAorICAgCisyIDE1IGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgIAorCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxIHRleHQgMCAwCiszIDMgI3RleHQgMCAxIHRoaXMgaXMgdGV4dAorMiAxNSB0ZXh0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgIAorMyAxIGRlc2MgMCAwCis0IDMgI3RleHQgMCAxICBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMAorMyAxNSBkZXNjIDAgMAorMyAxNCAjdGV4dCAwIDEgIAorICAgCisyIDE1IGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgIAorMiAxIGcgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKyAgICAgCiszIDEgZGVzYyAwIDAKKzQgMyAjdGV4dCAwIDEgIEphdmEgRm9udCBkZWZpbml0aW9uOkhlbHZldGljYSA3MDAKKzMgMTUgZGVzYyAwIDAKKzMgMTQgI3RleHQgMCAxICAKKyAgIAorMiAxNSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSB0ZXh0IDAgMAorMyAzICN0ZXh0IDAgMSBzYWRmc2FkZnNhZAorMiAxNSB0ZXh0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBlbGxpcHNlIDEgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxICAKKworMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMSBnIDAgMAorMyAxNCAjdGV4dCAwIDEgCisgICAgIAorMyAxIGRlc2MgMCAwCis0IDMgI3RleHQgMCAxICBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgNzAwCiszIDE1IGRlc2MgMCAwCiszIDE0ICN0ZXh0IDAgMSAgCisgICAKKzIgMTUgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgCisyIDEgZyAwIDAKKzMgMTQgI3RleHQgMCAxIAorICAgICAKKzMgMSBkZXNjIDAgMAorNCAzICN0ZXh0IDAgMSAgSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDcwMAorMyAxNSBkZXNjIDAgMAorMyAxNCAjdGV4dCAwIDEgIAorICAgCisyIDE1IGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworMSAxNSBnIDAgMAorMCAxNSBzdmcgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzIuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxMzQ1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyLnNheApAQCAtMCwwICsxLDE4OSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoc3ZnLCAtLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4sIGh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkKQorU0FYLmV4dGVybmFsU3Vic2V0KHN2ZywgLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOLCBodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCkKK1NBWC5zdGFydEVsZW1lbnQoc3ZnLCB3aWR0aD0nMjY4cHgnLCBoZWlnaHQ9JzIwN3B4JykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nc3Ryb2tlOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nIE0gMjkgMjggJykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9JyBMIDE5IDc0ICcpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTogIzgwMDA0MCcpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHBvbHlsaW5lLCB2ZXJ0cz0nIDMyLDEwMCA3Miw1MCA5MCw4MiA3MywxNiAxMjAsNjQgMTUyLDkgMTc3LDEwNycpCitTQVguZW5kRWxlbWVudChwb2x5bGluZSkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTogIzAwMDBmZicpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHJlY3QsIHg9JzMwJywgeT0nMTAxJywgd2lkdGg9JzUxJywgaGVpZ2h0PSczMycpCitTQVguZW5kRWxlbWVudChyZWN0KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDBmZicpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KGVsbGlwc2UsIGN4PScxODInLCBjeT0nMTI3JywgbWFqb3I9JzM3JywgbWlub3I9JzMxJywgYW5nbGU9JzkwJykKK1NBWC5lbmRFbGVtZW50KGVsbGlwc2UpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmYwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQocG9seWxpbmUsIHZlcnRzPScgNzgsMTgwIDc2LDE1MSAxMzEsMTQ5IDEzNiwxODIgMTM1LDE4MiAxMzQsMTgzIDEyNywxODUgMTE3LDE4NiAxMDksMTkyIDEwNCwxOTQgOTgsMTk5IDk2LDIwMCA5NSwyMDEgOTQsMjAyIDkyLDIwMiA4NSwyMDIgNzAsMjAwIDU0LDE5OSA0NywxOTggNDYsMTk3IDQ1LDE5NyAzNywxOTUgMjYsMTkzIDE3LDE4NyA5LDE4MSA4LDE4MSA3LDE3NiA2LDE3NSA2LDE3MyA2LDE3MiA2LDE3MCA4LDE2NCA4LDE2MyA4LDE2MiA5LDE2MiAxMCwxNjIgMTEsMTYyIDEzLDE2MiAyMCwxNjIgMjYsMTYyIDI3LDE2MiAyOCwxNjIgMzAsMTYyIDMwLDE2MyAzMSwxNjMgMzIsMTY0IDM0LDE2NiAzNSwxNjYgMzYsMTY3IDM2LDE2OCAzNywxNjkgMzgsMTY5IDM5LDE2OSA0MSwxNzAgNDMsMTcwIDQ1LDE3MCA0NywxNzAgNDksMTcwIDUwLDE2OCA1MCwxNjEgNTAsMTYwIDUwLDE1OSA0NywxNjIgNzgsMTgwJykKK1NBWC5lbmRFbGVtZW50KHBvbHlsaW5lKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoZGVzYykKK1NBWC5jaGFyYWN0ZXJzKCBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMCwgMzApCitTQVguZW5kRWxlbWVudChkZXNjKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgLCA0KQorU0FYLnN0YXJ0RWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnQoZGVzYykKK1NBWC5jaGFyYWN0ZXJzKCBKYXZhIEZvbnQgZGVmaW5pdGlvbjpIZWx2ZXRpYywgMzMpCitTQVguZW5kRWxlbWVudChkZXNjKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRleHQsIHg9JzE4OCcsIHk9JzM2JykKK1NBWC5jaGFyYWN0ZXJzKHRoaXMgaXMgdGV4dCwgMTIpCitTQVguZW5kRWxlbWVudCh0ZXh0KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nc3Ryb2tlOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KGRlc2MpCitTQVguY2hhcmFjdGVycyggSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDAsIDMwKQorU0FYLmVuZEVsZW1lbnQoZGVzYykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KGRlc2MpCitTQVguY2hhcmFjdGVycyggSmF2YSBGb250IGRlZmluaXRpb246SGVsdmV0aWMsIDM1KQorU0FYLmVuZEVsZW1lbnQoZGVzYykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6ICMwMDgwODAnKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudCh0ZXh0LCB4PScxNzYnLCB5PSc4NScpCitTQVguY2hhcmFjdGVycyhzYWRmc2FkZnNhZCwgMTEpCitTQVguZW5kRWxlbWVudCh0ZXh0KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nc3Ryb2tlOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjODAwMDQwJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZWxsaXBzZSwgY3g9JzIwOCcsIGN5PScxODAnLCBtYWpvcj0nNDUnLCBtaW5vcj0nMzEnLCBhbmdsZT0nMCcpCitTQVguZW5kRWxlbWVudChlbGxpcHNlKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nc3Ryb2tlOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmJykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KGRlc2MpCitTQVguY2hhcmFjdGVycyggSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDcsIDMyKQorU0FYLmVuZEVsZW1lbnQoZGVzYykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50KGRlc2MpCitTQVguY2hhcmFjdGVycyggSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDcsIDMyKQorU0FYLmVuZEVsZW1lbnQoZGVzYykKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguZW5kRWxlbWVudChzdmcpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMi5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMi5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNzM5OTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmcyLnNheDIKQEAgLTAsMCArMSwxODkgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHN2ZywgLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOLCBodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCkKK1NBWC5leHRlcm5hbFN1YnNldChzdmcsIC0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiwgaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQpCitTQVguc3RhcnRFbGVtZW50TnMoc3ZnLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCB3aWR0aD0nMjY4cC4uLicsIDUsIGhlaWdodD0nMjA3cC4uLicsIDUpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nc3Ryby4uLicsIDE1KQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9JyBNIDIuLi4nLCA5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9JyBMIDEuLi4nLCA5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMTUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHZlcnRzPScgMzIsLi4uJywgNDYpCitTQVguZW5kRWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMTUpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAxNSkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyhyZWN0LCBOVUxMLCBOVUxMLCAwLCA0LCAwLCB4PSczMCIgLi4uJywgMiwgeT0nMTAxIi4uLicsIDMsIHdpZHRoPSc1MSIgLi4uJywgMiwgaGVpZ2h0PSczMyIvLi4uJywgMikKK1NBWC5lbmRFbGVtZW50TnMocmVjdCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZWxsaXBzZSwgTlVMTCwgTlVMTCwgMCwgNSwgMCwgY3g9JzE4MiIuLi4nLCAzLCBjeT0nMTI3Ii4uLicsIDMsIG1ham9yPSczNyIgLi4uJywgMiwgbWlub3I9JzMxIiAuLi4nLCAyLCBhbmdsZT0nOTAiLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKGVsbGlwc2UsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvbHlsaW5lLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB2ZXJ0cz0nIDc4LC4uLicsIDQ0NSkKK1NBWC5lbmRFbGVtZW50TnMocG9seWxpbmUsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoZGVzYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMCwgMzApCitTQVguZW5kRWxlbWVudE5zKGRlc2MsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnROcyhkZXNjLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIEphdmEgRm9udCBkZWZpbml0aW9uOkhlbHZldGljLCAzMykKK1NBWC5lbmRFbGVtZW50TnMoZGVzYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMTUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGV4dCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgeD0nMTg4Ii4uLicsIDMsIHk9JzM2IiAuLi4nLCAyKQorU0FYLmNoYXJhY3RlcnModGhpcyBpcyB0ZXh0LCAxMikKK1NBWC5lbmRFbGVtZW50TnModGV4dCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMTUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoZGVzYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMCwgMzApCitTQVguZW5kRWxlbWVudE5zKGRlc2MsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICwgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICwgNikKK1NBWC5zdGFydEVsZW1lbnROcyhkZXNjLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoIEphdmEgRm9udCBkZWZpbml0aW9uOkhlbHZldGljLCAzNSkKK1NBWC5lbmRFbGVtZW50TnMoZGVzYywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKyAgICwgNSkKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMTUpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnModGV4dCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgeD0nMTc2Ii4uLicsIDMsIHk9Jzg1IiAuLi4nLCAyKQorU0FYLmNoYXJhY3RlcnMoc2FkZnNhZGZzYWQsIDExKQorU0FYLmVuZEVsZW1lbnROcyh0ZXh0LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAxNSkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGVsbGlwc2UsIE5VTEwsIE5VTEwsIDAsIDUsIDAsIGN4PScyMDgiLi4uJywgMywgY3k9JzE4MCIuLi4nLCAzLCBtYWpvcj0nNDUiIC4uLicsIDIsIG1pbm9yPSczMSIgLi4uJywgMiwgYW5nbGU9JzAiLz4uLi4nLCAxKQorU0FYLmVuZEVsZW1lbnROcyhlbGxpcHNlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCissIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAxNSkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKCAKKywgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgLCA2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGRlc2MsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyggSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDcsIDMyKQorU0FYLmVuZEVsZW1lbnROcyhkZXNjLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoIAorICAgLCA1KQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAsIDQpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAsIDYpCitTQVguc3RhcnRFbGVtZW50TnMoZGVzYywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKCBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgNywgMzIpCitTQVguZW5kRWxlbWVudE5zKGRlc2MsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggCisgICAsIDUpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5lbmRFbGVtZW50TnMoc3ZnLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzMgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmczCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OTk0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmczCkBAIC0wLDAgKzEsNzIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxzdmc+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzcuNjk2IDI4NC4yODVDNzcuNjk2IDI4NC4yODUgNzcuNzk3IDI4Ni4xNzkgNzYuOTczIDI4Ni4xNkM3Ni4xNDkgMjg2LjE0MSA1OS42OTUgMjM4LjA2NiAzOS4xNjcgMjQwLjMwOUMzOS4xNjcgMjQwLjMwOSA1Ni45NSAyMzIuOTU2IDc3LjY5NiAyODQuMjg1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik04MS4yMjYgMjgxLjI2MkM4MS4yMjYgMjgxLjI2MiA4MC42NzcgMjgzLjA3OCA3OS45MDggMjgyLjc3OUM3OS4xNCAyODIuNDgxIDgwLjAyMyAyMzEuNjc1IDU5Ljk1NyAyMjYuODAxQzU5Ljk1NyAyMjYuODAxIDc5LjE4IDIyNS45MzcgODEuMjI2IDI4MS4yNjJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyIj4KKyAgPHBhdGggZD0iTTEwOC43MTYgMzIzLjU5QzEwOC43MTYgMzIzLjU5IDExMC4zNTIgMzI0LjU1IDEwOS44ODIgMzI1LjIyN0MxMDkuNDExIDMyNS45MDQgNjAuMjM3IDMxMy4xMDIgNTAuNzgyIDMzMS40NTlDNTAuNzgyIDMzMS40NTkgNTQuNDYxIDMxMi41NzIgMTA4LjcxNiAzMjMuNTl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyIj4KKyAgPHBhdGggZD0iTTEwNS45MDcgMzMzLjgwMUMxMDUuOTA3IDMzMy44MDEgMTA3Ljc2MyAzMzQuMTk3IDEwNy41MjkgMzM0Ljk4OEMxMDcuMjk2IDMzNS43NzkgNTYuNTkzIDMzOS4xMjEgNTMuNDAzIDM1OS41MjJDNTMuNDAzIDM1OS41MjIgNTAuOTQ1IDM0MC40MzcgMTA1LjkwNyAzMzMuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik0xMDEuNjk2IDMyOC4yNzZDMTAxLjY5NiAzMjguMjc2IDEwMy40NzQgMzI4LjkzOSAxMDMuMTI4IDMyOS42ODdDMTAyLjc4MiAzMzAuNDM1IDUyLjEzNCAzMjYuMzQ2IDQ2LjAwMiAzNDYuMDY0QzQ2LjAwMiAzNDYuMDY0IDQ2LjM1NCAzMjYuODI1IDEwMS42OTYgMzI4LjI3NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNOTAuOTkxIDMxMC4wNzJDOTAuOTkxIDMxMC4wNzIgOTIuMjk5IDMxMS40NDYgOTEuNjYgMzExLjk2N0M5MS4wMjEgMzEyLjQ4OCA0Ny4yNzggMjg2LjYzNCAzMy4xMzEgMzAxLjY3NkMzMy4xMzEgMzAxLjY3NiA0MS44NzIgMjg0LjUzMyA5MC45OTEgMzEwLjA3MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNODMuNDQ2IDMxNC4yNjNDODMuNDQ2IDMxNC4yNjMgODQuOTAyIDMxNS40OCA4NC4zMjYgMzE2LjA3MUM4My43NSAzMTYuNjYxIDM3LjM2MiAyOTUuOTIyIDI1LjAwOCAzMTIuNDY5QzI1LjAwOCAzMTIuNDY5IDMxLjc1MyAyOTQuNDQ3IDgzLjQ0NiAzMTQuMjYzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik04MC44NDYgMzE4LjMzNUM4MC44NDYgMzE4LjMzNSA4Mi40NTQgMzE5LjM0MyA4MS45NjQgMzIwLjAwNkM4MS40NzQgMzIwLjY2OSAzMi42OTIgMzA2LjQ0NiAyMi43MDkgMzI0LjUyMkMyMi43MDkgMzI0LjUyMiAyNi45MzQgMzA1Ljc0OSA4MC44NDYgMzE4LjMzNXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNOTEuNTggMzE4Ljk0OUM5MS41OCAzMTguOTQ5IDkyLjcwMiAzMjAuNDggOTIuMDAxIDMyMC45MTVDOTEuMyAzMjEuMzUgNTEuMjMxIDI5MC4xMDIgMzUuMjczIDMwMy4yMDdDMzUuMjczIDMwMy4yMDcgNDYuMTM4IDI4Ny4zMjYgOTEuNTggMzE4Ljk0OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzEuOCAyOTBDNzEuOCAyOTAgNzIuNCAyOTEuOCA3MS42IDI5MkM3MC44IDI5Mi4yIDQyLjIgMjUwLjIgMjIuOTk5IDI1Ny44QzIyLjk5OSAyNTcuOCAzOC4yIDI0NiA3MS44IDI5MHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzIuNDk1IDI5Ni45NzlDNzIuNDk1IDI5Ni45NzkgNzMuNDcgMjk4LjYwOCA3Mi43MzEgMjk4Ljk3NUM3MS45OTMgMjk5LjM0MyAzNS4wMDggMjY0LjQ5OSAxNy44OTkgMjc2LjA2MUMxNy44OTkgMjc2LjA2MSAzMC4xOTYgMjYxLjI2MSA3Mi40OTUgMjk2Ljk3OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNNzIuMzggMzAxLjM0OUM3Mi4zOCAzMDEuMzQ5IDczLjUwMiAzMDIuODggNzIuODAxIDMwMy4zMTVDNzIuMSAzMDMuNzQ5IDMyLjAzMSAyNzIuNTAyIDE2LjA3MyAyODUuNjA3QzE2LjA3MyAyODUuNjA3IDI2LjkzOCAyNjkuNzI2IDcyLjM4IDMwMS4zNDl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik03MC4xNyAzMDMuMDY1QzcwLjY3MyAzMDkuMTEzIDcxLjY2MSAzMTUuNjgyIDczLjQgMzE4LjgwMUM3My40IDMxOC44MDEgNjkuOCAzMzEuMjAxIDc4LjYgMzQ0LjQwMUM3OC42IDM0NC40MDEgNzguMiAzNTEuNjAxIDc5LjggMzU0LjgwMUM3OS44IDM1NC44MDEgODMuOCAzNjMuMjAxIDg4LjYgMzY0LjAwMUM5Mi40ODQgMzY0LjY0OCAxMDEuMjA3IDM2Ny43MTcgMTExLjA2OCAzNjkuMTIxQzExMS4wNjggMzY5LjEyMSAxMjguMiAzODMuMjAxIDEyNSAzOTYuMDAxQzEyNSAzOTYuMDAxIDEyNC42IDQxMi40MDEgMTIxIDQxNC4wMDFDMTIxIDQxNC4wMDEgMTMyLjYgNDAyLjgwMSAxMjMgNDE5LjYwMUwxMTguNiA0MzguNDAxQzExOC42IDQzOC40MDEgMTQ0LjIgNDE2LjgwMSAxMjguNiA0MzUuMjAxTDExOC42IDQ2MS4yMDFDMTE4LjYgNDYxLjIwMSAxMzguMiA0NDIuODAxIDEzMSA0NTEuMjAxTDEyNy44IDQ2MC4wMDFDMTI3LjggNDYwLjAwMSAxNzEgNDMyLjgwMSAxNDAuMiA0NjIuNDAxQzE0MC4yIDQ2Mi40MDEgMTQ4LjIgNDU4LjgwMSAxNTIuNiA0NjEuNjAxQzE1Mi42IDQ2MS42MDEgMTU5LjQgNDYwLjQwMSAxNTguNiA0NjIuMDAxQzE1OC42IDQ2Mi4wMDEgMTM3LjggNDcyLjQwMSAxMzQuMiA0OTAuODAxQzEzNC4yIDQ5MC44MDEgMTQyLjYgNDgwLjgwMSAxMzkuNCA0OTEuNjAxTDEzOS44IDUwMy4yMDFDMTM5LjggNTAzLjIwMSAxNDMuOCA0ODEuNjAxIDE0My40IDUxOS4yMDFDMTQzLjQgNTE5LjIwMSAxNjIuNiA1MDEuMjAxIDE1MSA1MjIuMDAxTDE1MSA1MzguODAxQzE1MSA1MzguODAxIDE2Ni4yIDUyMi40MDEgMTU5LjggNTM1LjIwMUMxNTkuOCA1MzUuMjAxIDE2OS44IDUyNi40MDEgMTY1LjggNTQxLjYwMUMxNjUuOCA1NDEuNjAxIDE2NSA1NTIuMDAxIDE2OS40IDU0MC44MDFDMTY5LjQgNTQwLjgwMSAxODUuNCA1MTAuMjAxIDE3OS40IDUzNi40MDFDMTc5LjQgNTM2LjQwMSAxNzguNiA1NTUuNjAxIDE4My40IDU0MC44MDFDMTgzLjQgNTQwLjgwMSAxODMuOCA1NTEuMjAxIDE5MyA1NTguNDAxQzE5MyA1NTguNDAxIDE5MS44IDUwNy42MDEgMjA0LjYgNTQzLjYwMUwyMDguNiA1NjAuMDAxQzIwOC42IDU2MC4wMDEgMjExLjQgNTUwLjgwMSAyMTEgNTQ1LjYwMUMyMTEgNTQ1LjYwMSAyMjUuOCA1MjkuMjAxIDIxOSA1NTMuNjAxQzIxOSA1NTMuNjAxIDIzNC4yIDUzMC44MDEgMjMxIDU0NC4wMDFDMjMxIDU0NC4wMDEgMjIzLjQgNTYwLjAwMSAyMjUgNTY0LjgwMUMyMjUgNTY0LjgwMSAyNDEuOCA1MzAuMDAxIDI0MyA1MjguNDAxQzI0MyA1MjguNDAxIDI0MSA1NzAuODAyIDI1MS44IDUzNC44MDFDMjUxLjggNTM0LjgwMSAyNTcuNCA1NDYuODAxIDI1NC42IDU1MS4yMDFDMjU0LjYgNTUxLjIwMSAyNjIuNiA1NDMuMjAxIDI2MS44IDU0MC4wMDFDMjYxLjggNTQwLjAwMSAyNjYuNCA1MzEuODAxIDI2OS4yIDU0NS40MDFDMjY5LjIgNTQ1LjQwMSAyNzEgNTU0LjgwMSAyNzIuNiA1NTEuNjAxQzI3Mi42IDU1MS42MDEgMjc2LjYgNTc1LjYwMiAyNzcuOCA1NTIuODAxQzI3Ny44IDU1Mi44MDEgMjc5LjQgNTM5LjIwMSAyNzIuMiA1MjcuNjAxQzI3Mi4yIDUyNy42MDEgMjczIDUyNC40MDEgMjcwLjIgNTIwLjQwMUMyNzAuMiA1MjAuNDAxIDI4My44IDU0Mi4wMDEgMjc2LjYgNTEzLjIwMUMyNzYuNiA1MTMuMjAxIDI4Ny44MDEgNTIxLjIwMSAyODkuMDAxIDUyMS4yMDFDMjg5LjAwMSA1MjEuMjAxIDI3NS40IDQ5OC4wMDEgMjg0LjIgNTAyLjgwMUMyODQuMiA1MDIuODAxIDI3OSA0OTIuNDAxIDI5Ny4wMDEgNTA0LjQwMUMyOTcuMDAxIDUwNC40MDEgMjgxIDQ4OC40MDEgMjk4LjYwMSA0OTguMDAxQzI5OC42MDEgNDk4LjAwMSAzMDYuNjAxIDUwNC40MDEgMjk5LjAwMSA0OTQuNDAxQzI5OS4wMDEgNDk0LjQwMSAyODQuNiA0NzguNDAxIDMwNi42MDEgNDk2LjQwMUMzMDYuNjAxIDQ5Ni40MDEgMzE4LjIwMSA1MTIuODAxIDMxOS4wMDEgNTE1LjYwMUMzMTkuMDAxIDUxNS42MDEgMzA5LjAwMSA0ODYuNDAxIDMwNC42MDEgNDgzLjYwMUMzMDQuNjAxIDQ4My42MDEgMzEzLjAwMSA0NDcuMjAxIDM1NC4yMDEgNDYyLjgwMUMzNTQuMjAxIDQ2Mi44MDEgMzYxLjAwMSA0ODAuMDAxIDM2NS40MDEgNDYxLjYwMUMzNjUuNDAxIDQ2MS42MDEgMzc4LjIwMSA0NTUuMjAxIDM4OS40MDEgNDgyLjgwMUMzODkuNDAxIDQ4Mi44MDEgMzkzLjQwMSA0NjkuMjAxIDM5Mi42MDEgNDY2LjQwMUMzOTIuNjAxIDQ2Ni40MDEgMzk5LjQwMSA0NjcuNjAxIDM5OC42MDEgNDY2LjQwMUMzOTguNjAxIDQ2Ni40MDEgNDExLjgwMSA0NzAuODAxIDQxMy4wMDEgNDcwLjAwMUM0MTMuMDAxIDQ3MC4wMDEgNDE5LjgwMSA0NzYuODAxIDQyMC4yMDEgNDczLjIwMUM0MjAuMjAxIDQ3My4yMDEgNDI5LjQwMSA0NzYuMDAxIDQyNy40MDEgNDcyLjQwMUM0MjcuNDAxIDQ3Mi40MDEgNDM2LjIwMSA0ODguMDAxIDQzNi42MDEgNDkxLjYwMUw0MzkuMDAxIDQ3Ny42MDFMNDQxLjAwMSA0ODAuNDAxQzQ0MS4wMDEgNDgwLjQwMSA0NDIuNjAxIDQ3Mi44MDEgNDQxLjgwMSA0NzEuNjAxQzQ0MS4wMDEgNDcwLjQwMSA0NjEuODAxIDQ3OC40MDEgNDY2LjYwMSA0OTkuMjAxTDQ2OC42MDEgNTA3LjYwMUM0NjguNjAxIDUwNy42MDEgNDc0LjYwMSA0OTIuODAxIDQ3My4wMDEgNDg4LjgwMUM0NzMuMDAxIDQ4OC44MDEgNDc4LjIwMSA0ODkuNjAxIDQ3OC42MDEgNDk0LjAwMUM0NzguNjAxIDQ5NC4wMDEgNDgyLjYwMSA0NzAuODAxIDQ3Ny44MDEgNDY0LjgwMUM0NzcuODAxIDQ2NC44MDEgNDgyLjIwMSA0NjQuMDAxIDQ4My40MDEgNDY3LjYwMUw0ODMuNDAxIDQ2MC40MDFDNDgzLjQwMSA0NjAuNDAxIDQ5MC42MDEgNDYxLjIwMSA0OTAuNjAxIDQ1OC44MDFDNDkwLjYwMSA0NTguODAxIDQ5NS4wMDEgNDU0LjgwMSA0OTcuMDAxIDQ1OS42MDFDNDk3LjAwMSA0NTkuNjAxIDQ4NC42MDEgNDI0LjQwMSA1MDMuMDAxIDQ0My42MDFDNTAzLjAwMSA0NDMuNjAxIDUxMC4yMDEgNDU0LjQwMSA1MDYuNjAxIDQzNS42MDFDNTAzLjAwMSA0MTYuODAxIDQ5OS4wMDEgNDE1LjIwMSA1MDMuODAxIDQxNC44MDFDNTAzLjgwMSA0MTQuODAxIDUwNC42MDEgNDExLjIwMSA1MDIuNjAxIDQwOS42MDFDNTAwLjYwMSA0MDguMDAxIDUwMy44MDEgNDA5LjYwMSA1MDMuODAxIDQwOS42MDFDNTAzLjgwMSA0MDkuNjAxIDUwOC42MDEgNDEzLjYwMSA1MDMuNDAxIDM5MS42MDFDNTAzLjQwMSAzOTEuNjAxIDUwOS44MDEgMzkzLjIwMSA0OTcuODAxIDM2NC4wMDFDNDk3LjgwMSAzNjQuMDAxIDUwMC42MDEgMzYxLjYwMSA0OTYuNjAxIDM1My4yMDFDNDk2LjYwMSAzNTMuMjAxIDUwNC42MDEgMzU3LjYwMSA1MDcuNDAxIDM1Ni4wMDFDNTA3LjQwMSAzNTYuMDAxIDUwNy4wMDEgMzU0LjQwMSA1MDMuODAxIDM1MC40MDFDNTAzLjgwMSAzNTAuNDAxIDQ4Mi4yMDEgMjk1LjYgNTAyLjYwMSAzMTcuNjAxQzUwMi42MDEgMzE3LjYwMSA1MTQuNDUxIDMzMS4xNTEgNTA4LjA1MSAzMDguMzUxQzUwOC4wNTEgMzA4LjM1MSA0OTguOTQgMjg0LjM0MSA0OTkuNzE3IDI4MC4wNDVMNzAuMTcgMzAzLjA2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjY7IHN0cm9rZTojMDAwMDAwIj4KKyAgPHBhdGggZD0iTTQ5OS43MTcgMjgwLjI0NUM1MDAuMzQ1IDI4MC40MjYgNTAyLjU1MSAyODEuNTUgNTAzLjgwMSAyODMuMkM1MDMuODAxIDI4My4yIDUxMC42MDEgMjk0IDUwNS40MDEgMjc1LjZDNTA1LjQwMSAyNzUuNiA0OTYuMjAxIDI0Ni44IDUwNS4wMDEgMjU4QzUwNS4wMDEgMjU4IDUxMS4wMDEgMjY1LjIgNTA3LjgwMSAyNTEuNkM1MDMuOTM2IDIzNS4xNzMgNTAxLjQwMSAyMjguOCA1MDEuNDAxIDIyOC44QzUwMS40MDEgMjI4LjggNTEzLjAwMSAyMzMuNiA0ODYuMjAxIDE5NEw0OTUuMDAxIDE5Ny42QzQ5NS4wMDEgMTk3LjYgNDc1LjQwMSAxNTggNDUzLjgwMSAxNTIuOEw0NDUuODAxIDE0Ni44QzQ0NS44MDEgMTQ2LjggNDg0LjIwMSAxMDguOCA0NzEuNDAxIDcyQzQ3MS40MDEgNzIgNDY0LjYwMSA2Ni44IDQ1NS4wMDEgNzZDNDU1LjAwMSA3NiA0NDguNjAxIDgwLjggNDQyLjYwMSA3OS4yQzQ0Mi42MDEgNzkuMiA0MTEuODAxIDgwLjQgNDA5LjgwMSA4MC40QzQwNy44MDEgODAuNCAzNzMuMDAxIDQzLjIgMzA3LjQwMSA2MC44QzMwNy40MDEgNjAuOCAzMDIuMjAxIDYyLjggMjk3LjgwMSA2MS42QzI5Ny44MDEgNjEuNiAyNzkuNCA0NS42IDIzMC42IDY4LjRDMjMwLjYgNjguNCAyMjAuNiA3MC40IDIxOSA3MC40QzIxNy40IDcwLjQgMjE0LjYgNzAuNCAyMDYuNiA3Ni44QzE5OC42IDgzLjIgMTk4LjIgODQgMTk2LjIgODUuNkMxOTYuMiA4NS42IDE3OS44IDk2LjggMTc1IDk3LjZDMTc1IDk3LjYgMTYzLjQgMTA0IDE1OSAxMTRMMTU1LjQgMTE1LjJDMTU1LjQgMTE1LjIgMTUzLjggMTIyLjQgMTUzLjQgMTIzLjZDMTUzLjQgMTIzLjYgMTQ4LjYgMTI3LjIgMTQ3LjggMTMyLjhDMTQ3LjggMTMyLjggMTM5IDEzOC44IDEzOS40IDE0My4yQzEzOS40IDE0My4yIDEzNy44IDE0OC40IDEzNyAxNTMuMkMxMzcgMTUzLjIgMTI5LjggMTU4IDEzMC42IDE2MC44QzEzMC42IDE2MC44IDEyMyAxNzQuOCAxMjQuMiAxODEuNkMxMjQuMiAxODEuNiAxMTcuOCAxODEuMiAxMTUgMTgzLjZDMTE1IDE4My42IDExNC4yIDE4OC40IDExMi42IDE4OC44QzExMi42IDE4OC44IDEwOS44IDE5MCAxMTIuMiAxOTRDMTEyLjIgMTk0IDExMC42IDE5Ni44IDExMC4yIDE5OC40QzExMC4yIDE5OC40IDExMSAyMDEuMiAxMDYuNiAyMDYuOEMxMDYuNiAyMDYuOCAxMDAuMiAyMjUuNiAxMDIuMiAyMzAuOEMxMDIuMiAyMzAuOCAxMDIuNiAyMzUuNiA5OS44IDIzNy4yQzk5LjggMjM3LjIgOTYuMiAyMzYuOCAxMDQuNiAyNDguOEMxMDQuNiAyNDguOCAxMDUuNCAyNTAgMTAyLjIgMjUyLjRDMTAyLjIgMjUyLjQgODUgMjU2IDgyLjYgMjcyLjRDODIuNiAyNzIuNCA2OSAyODcuMiA2OSAyOTIuNEM2OSAyOTQuNzA1IDY5LjI3MSAyOTcuODUyIDY5Ljk3IDMwMi40NjVDNjkuOTcgMzAyLjQ2NSA2OS40IDMxMC44MDEgOTcgMzExLjYwMUMxMjQuNiAzMTIuNDAxIDQ5OS43MTcgMjgwLjI0NSA0OTkuNzE3IDI4MC4yNDV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTg0LjQgMzAyLjZDNTkuNCAyNjMuMiA3My44IDMxOS42MDEgNzMuOCAzMTkuNjAxQzgyLjYgMzU0LjAwMSAyMTIuMiAzMTYuNDAxIDIxMi4yIDMxNi40MDFDMjEyLjIgMzE2LjQwMSAzODEuMDAxIDI4NiAzOTIuMjAxIDI4MkM0MDMuNDAxIDI3OCA0OTguNjAxIDI4NC40IDQ5OC42MDEgMjg0LjRMNDkzLjAwMSAyNjcuNkM0MjguMjAxIDIyMS4yIDQwOS4wMDEgMjQ0LjQgMzk1LjQwMSAyNDAuNEMzODEuODAxIDIzNi40IDM4NC4yMDEgMjQ2IDM4MS4wMDEgMjQ2LjhDMzc3LjgwMSAyNDcuNiAzMzguNjAxIDIyMi44IDMzMi4yMDEgMjIzLjZDMzI1LjgwMSAyMjQuNCAzMDAuNDU5IDIwMC42NDkgMzE1LjQwMSAyMzIuNEMzMzEuNDAxIDI2Ni40IDI1NyAyNzEuNiAyNDAuMiAyNjAuNEMyMjMuNCAyNDkuMiAyNDcuNCAyNzguOCAyNDcuNCAyNzguOEMyNjUuOCAyOTguOCAyMzEuNCAyODIgMjMxLjQgMjgyQzE5NyAyNjkuMiAxNzMgMjk0LjggMTY5LjggMjk1LjZDMTY2LjYgMjk2LjQgMTYxLjggMjk5LjYgMTYxIDI5My4yQzE2MC4yIDI4Ni44IDE1Mi42OSAyNzAuMDk5IDEyMSAyOTYuNEMxMDEgMzEzLjAwMSA4Ny4yIDI5MSA4Ny4yIDI5MUw4NC40IDMwMi42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2U4N2YzYSI+CisgIDxwYXRoIGQ9Ik0zMzMuNTEgMjI1LjM0NkMzMjcuMTEgMjI2LjE0NiAzMDEuNzQzIDIwMi40MDcgMzE2LjcxIDIzNC4xNDZDMzMzLjMxIDI2OS4zNDYgMjU4LjMxIDI3My4zNDYgMjQxLjUxIDI2Mi4xNDZDMjI0LjcwOSAyNTAuOTQ2IDI0OC43MSAyODAuNTQ2IDI0OC43MSAyODAuNTQ2QzI2Ny4xMSAzMDAuNTQ2IDIzMi43MDkgMjgzLjc0NiAyMzIuNzA5IDI4My43NDZDMTk4LjMwOSAyNzAuOTQ2IDE3NC4zMDkgMjk2LjU0NiAxNzEuMTA5IDI5Ny4zNDZDMTY3LjkwOSAyOTguMTQ2IDE2My4xMDkgMzAxLjM0NiAxNjIuMzA5IDI5NC45NDZDMTYxLjUwOSAyODguNTQ2IDE1NC4xMyAyNzIuMDEyIDEyMi4zMDkgMjk4LjE0NkMxMDEuMDczIDMxNS40OTIgODcuNTgyIDI5NC4wMzcgODcuNTgyIDI5NC4wMzdMODQuMzgyIDMwNC4xNDZDNTkuMzgyIDI2NC4zNDYgNzQuNDU0IDMyMi42NTUgNzQuNDU0IDMyMi42NTVDODMuMjU1IDM1Ny4wNTYgMjEzLjUwOSAzMTguMTQ2IDIxMy41MDkgMzE4LjE0NkMyMTMuNTA5IDMxOC4xNDYgMzgyLjMxIDI4Ny43NDYgMzkzLjUxIDI4My43NDZDNDA0LjcxIDI3OS43NDYgNDk5LjAzOCAyODYuMDczIDQ5OS4wMzggMjg2LjA3M0w0OTMuNTEgMjY4Ljc2NEM0MjguNzEgMjIyLjM2NCA0MTAuMzEgMjQ2LjE0NiAzOTYuNzEgMjQyLjE0NkMzODMuMTEgMjM4LjE0NiAzODUuNTEgMjQ3Ljc0NiAzODIuMzEgMjQ4LjU0NkMzNzkuMTEgMjQ5LjM0NiAzMzkuOTEgMjI0LjU0NiAzMzMuNTEgMjI1LjM0NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlYThjNGQiPgorICA8cGF0aCBkPSJNMzM0LjgxOSAyMjcuMDkxQzMyOC40MTkgMjI3Ljg5MSAzMDMuNjg1IDIwMy44NjIgMzE4LjAxOSAyMzUuODkxQzMzNC4yMTkgMjcyLjA5MiAyNTkuNjE5IDI3NS4wOTIgMjQyLjgxOSAyNjMuODkyQzIyNi4wMTkgMjUyLjY5MiAyNTAuMDE5IDI4Mi4yOTIgMjUwLjAxOSAyODIuMjkyQzI2OC40MTkgMzAyLjI5MiAyMzQuMDE5IDI4NS40OTIgMjM0LjAxOSAyODUuNDkyQzE5OS42MTkgMjcyLjY5MiAxNzUuNjE4IDI5OC4yOTIgMTcyLjQxOCAyOTkuMDkyQzE2OS4yMTggMjk5Ljg5MiAxNjQuNDE4IDMwMy4wOTIgMTYzLjYxOCAyOTYuNjkyQzE2Mi44MTggMjkwLjI5MiAxNTUuNTcgMjczLjkyNSAxMjMuNjE4IDI5OS44OTJDMTAxLjE0NSAzMTcuOTgzIDg3Ljk2NCAyOTcuMDc0IDg3Ljk2NCAyOTcuMDc0TDg0LjM2NCAzMDUuNjkyQzYwLjU2NCAyNjYuNjkyIDc1LjEwOSAzMjUuNzEgNzUuMTA5IDMyNS43MUM4My45MDkgMzYwLjExIDIxNC44MTkgMzE5Ljg5MiAyMTQuODE5IDMxOS44OTJDMjE0LjgxOSAzMTkuODkyIDM4My42MTkgMjg5LjQ5MiAzOTQuODE5IDI4NS40OTJDNDA2LjAxOSAyODEuNDkyIDQ5OS40NzQgMjg3Ljc0NiA0OTkuNDc0IDI4Ny43NDZMNDk0LjAyIDI2OS45MjhDNDI5LjIxOSAyMjMuNTI4IDQxMS42MTkgMjQ3Ljg5MSAzOTguMDE5IDI0My44OTFDMzg0LjQxOSAyMzkuODkxIDM4Ni44MTkgMjQ5LjQ5MSAzODMuNjE5IDI1MC4yOTJDMzgwLjQxOSAyNTEuMDkyIDM0MS4yMTkgMjI2LjI5MSAzMzQuODE5IDIyNy4wOTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZWM5OTYxIj4KKyAgPHBhdGggZD0iTTMzNi4xMjggMjI4LjgzN0MzMjkuNzI4IDIyOS42MzcgMzA0Ljk5OSAyMDUuNjA1IDMxOS4zMjggMjM3LjYzN0MzMzYuMTI4IDI3NS4xOTMgMjYwLjM5NCAyNzYuNDgyIDI0NC4xMjggMjY1LjYzN0MyMjcuMzI4IDI1NC40MzcgMjUxLjMyOCAyODQuMDM3IDI1MS4zMjggMjg0LjAzN0MyNjkuNzI4IDMwNC4wMzcgMjM1LjMyOCAyODcuMjM3IDIzNS4zMjggMjg3LjIzN0MyMDAuOTI4IDI3NC40MzcgMTc2LjkyOCAzMDAuMDM3IDE3My43MjggMzAwLjgzN0MxNzAuNTI4IDMwMS42MzcgMTY1LjcyOCAzMDQuODM3IDE2NC45MjggMjk4LjQzN0MxNjQuMTI4IDI5Mi4wMzcgMTU3LjAxMSAyNzUuODM5IDEyNC45MjcgMzAxLjYzN0MxMDEuMjE4IDMyMC40NzQgODguMzQ1IDMwMC4xMSA4OC4zNDUgMzAwLjExTDg0LjM0NSAzMDcuMjM3QzYyLjU0NSAyNzAuNDM3IDc1Ljc2NCAzMjguNzY1IDc1Ljc2NCAzMjguNzY1Qzg0LjU2NCAzNjMuMTY1IDIxNi4xMjggMzIxLjYzNyAyMTYuMTI4IDMyMS42MzdDMjE2LjEyOCAzMjEuNjM3IDM4NC45MjggMjkxLjIzNyAzOTYuMTI5IDI4Ny4yMzdDNDA3LjMyOSAyODMuMjM3IDQ5OS45MTEgMjg5LjQxOSA0OTkuOTExIDI4OS40MTlMNDk0LjUyOSAyNzEuMDkyQzQyOS43MjkgMjI0LjY5MSA0MTIuOTI5IDI0OS42MzcgMzk5LjMyOSAyNDUuNjM3QzM4NS43MjggMjQxLjYzNyAzODguMTI4IDI1MS4yMzcgMzg0LjkyOCAyNTIuMDM3QzM4MS43MjggMjUyLjgzNyAzNDIuNTI4IDIyOC4wMzcgMzM2LjEyOCAyMjguODM3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2VlYTU3NSI+CisgIDxwYXRoIGQ9Ik0zMzcuNDM4IDIzMC41ODNDMzMxLjAzNyAyMzEuMzgzIDMwNi44MTQgMjA3LjEyOSAzMjAuNjM3IDIzOS4zODNDMzM3LjQzOCAyNzguNTgzIDI2Mi4yMzcgMjc4LjU4MyAyNDUuNDM3IDI2Ny4zODNDMjI4LjYzNyAyNTYuMTgzIDI1Mi42MzcgMjg1Ljc4MyAyNTIuNjM3IDI4NS43ODNDMjcxLjAzNyAzMDUuNzgzIDIzNi42MzcgMjg4Ljk4MyAyMzYuNjM3IDI4OC45ODNDMjAyLjIzNyAyNzYuMTgzIDE3OC4yMzcgMzAxLjc4MyAxNzUuMDM3IDMwMi41ODNDMTcxLjgzNyAzMDMuMzgzIDE2Ny4wMzcgMzA2LjU4MyAxNjYuMjM3IDMwMC4xODNDMTY1LjQzNyAyOTMuNzgzIDE1OC40NTIgMjc3Ljc1MiAxMjYuMjM3IDMwMy4zODNDMTAxLjI5MSAzMjIuOTY1IDg4LjcyNyAzMDMuMTQ2IDg4LjcyNyAzMDMuMTQ2TDg0LjMyNyAzMDguNzgzQzY0LjUyNyAyNzMuOTgyIDc2LjQxOCAzMzEuODE5IDc2LjQxOCAzMzEuODE5Qzg1LjIxOCAzNjYuMjIgMjE3LjQzNyAzMjMuMzgzIDIxNy40MzcgMzIzLjM4M0MyMTcuNDM3IDMyMy4zODMgMzg2LjIzOCAyOTIuOTgzIDM5Ny40MzggMjg4Ljk4M0M0MDguNjM4IDI4NC45ODMgNTAwLjM0NyAyOTEuMDkyIDUwMC4zNDcgMjkxLjA5Mkw0OTUuMDM4IDI3Mi4yNTVDNDMwLjIzOCAyMjUuODU1IDQxNC4yMzggMjUxLjM4MyA0MDAuNjM4IDI0Ny4zODNDMzg3LjAzOCAyNDMuMzgzIDM4OS40MzggMjUyLjk4MyAzODYuMjM4IDI1My43ODNDMzgzLjAzOCAyNTQuNTgzIDM0My44MzggMjI5Ljc4MyAzMzcuNDM4IDIzMC41ODN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZjFiMjg4Ij4KKyAgPHBhdGggZD0iTTMzOC43NDcgMjMyLjMyOEMzMzIuMzQ3IDIzMy4xMjggMzA2LjM4MyAyMDkuNjc3IDMyMS45NDcgMjQxLjEyOEMzNDEuMTQ3IDI3OS45MjggMjYzLjU0NiAyODAuMzI4IDI0Ni43NDYgMjY5LjEyOEMyMjkuOTQ2IDI1Ny45MjggMjUzLjk0NiAyODcuNTI4IDI1My45NDYgMjg3LjUyOEMyNzIuMzQ2IDMwNy41MjggMjM3Ljk0NiAyOTAuNzI4IDIzNy45NDYgMjkwLjcyOEMyMDMuNTQ2IDI3Ny45MjggMTc5LjU0NiAzMDMuNTI4IDE3Ni4zNDYgMzA0LjMyOEMxNzMuMTQ2IDMwNS4xMjggMTY4LjM0NiAzMDguMzI4IDE2Ny41NDYgMzAxLjkyOEMxNjYuNzQ2IDI5NS41MjggMTU5Ljg5MiAyNzkuNjY1IDEyNy41NDYgMzA1LjEyOEMxMDEuMzY0IDMyNS40NTYgODkuMTA5IDMwNi4xODMgODkuMTA5IDMwNi4xODNMODQuMzA5IDMxMC4zMjhDNjYuMzA5IDI3Ny4xMjggNzcuMDczIDMzNC44NzQgNzcuMDczIDMzNC44NzRDODUuODczIDM2OS4yNzQgMjE4Ljc0NiAzMjUuMTI4IDIxOC43NDYgMzI1LjEyOEMyMTguNzQ2IDMyNS4xMjggMzg3LjU0NyAyOTQuNzI4IDM5OC43NDcgMjkwLjcyOEM0MDkuOTQ3IDI4Ni43MjggNTAwLjc4MyAyOTIuNzY0IDUwMC43ODMgMjkyLjc2NEw0OTUuNTQ3IDI3My40MTlDNDMwLjc0NyAyMjcuMDE5IDQxNS41NDcgMjUzLjEyOCA0MDEuOTQ3IDI0OS4xMjhDMzg4LjM0NyAyNDUuMTI4IDM5MC43NDcgMjU0LjcyOCAzODcuNTQ3IDI1NS41MjhDMzg0LjM0NyAyNTYuMzI4IDM0NS4xNDcgMjMxLjUyOCAzMzguNzQ3IDIzMi4zMjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZjNiZjljIj4KKyAgPHBhdGggZD0iTTM0MC4wNTYgMjM0LjA3M0MzMzMuNjU1IDIzNC44NzMgMzA3LjMxMyAyMTEuNjEzIDMyMy4yNTUgMjQyLjg3M0MzNDMuNjU2IDI4Mi44NzQgMjY0Ljg1NSAyODIuMDc0IDI0OC4wNTUgMjcwLjg3NEMyMzEuMjU1IDI1OS42NzQgMjU1LjI1NSAyODkuMjc0IDI1NS4yNTUgMjg5LjI3NEMyNzMuNjU1IDMwOS4yNzQgMjM5LjI1NSAyOTIuNDc0IDIzOS4yNTUgMjkyLjQ3NEMyMDQuODU1IDI3OS42NzQgMTgwLjg1NSAzMDUuMjc0IDE3Ny42NTUgMzA2LjA3NEMxNzQuNDU1IDMwNi44NzQgMTY5LjY1NSAzMTAuMDc0IDE2OC44NTUgMzAzLjY3NEMxNjguMDU1IDI5Ny4yNzQgMTYxLjMzMiAyODEuNTc4IDEyOC44NTUgMzA2Ljg3NEMxMDEuNDM2IDMyNy45NDcgODkuNDkxIDMwOS4yMTkgODkuNDkxIDMwOS4yMTlMODQuMjkxIDMxMS44NzRDNjguMjkxIDI4MS42NzQgNzcuNzI3IDMzNy45MjkgNzcuNzI3IDMzNy45MjlDODYuNTI3IDM3Mi4zMjkgMjIwLjA1NSAzMjYuODc0IDIyMC4wNTUgMzI2Ljg3NEMyMjAuMDU1IDMyNi44NzQgMzg4Ljg1NiAyOTYuNDc0IDQwMC4wNTYgMjkyLjQ3NEM0MTEuMjU2IDI4OC40NzQgNTAxLjIyIDI5NC40MzcgNTAxLjIyIDI5NC40MzdMNDk2LjA1NiAyNzQuNTgzQzQzMS4yNTYgMjI4LjE4MyA0MTYuODU2IDI1NC44NzQgNDAzLjI1NiAyNTAuODc0QzM4OS42NTYgMjQ2Ljg3MyAzOTIuMDU2IDI1Ni40NzQgMzg4Ljg1NiAyNTcuMjc0QzM4NS42NTYgMjU4LjA3NCAzNDYuNDU2IDIzMy4yNzMgMzQwLjA1NiAyMzQuMDczeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2Y1Y2NiMCI+CisgIDxwYXRoIGQ9Ik0zNDEuMzY1IDIzNS44MTlDMzM0Ljk2NSAyMzYuNjE5IDMwNy41MjMgMjEzLjk0NCAzMjQuNTY1IDI0NC42MTlDMzQ2LjU2NSAyODQuMjE5IDI2Ni4xNjQgMjgzLjgxOSAyNDkuMzY0IDI3Mi42MTlDMjMyLjU2NCAyNjEuNDE5IDI1Ni41NjQgMjkxLjAxOSAyNTYuNTY0IDI5MS4wMTlDMjc0Ljk2NCAzMTEuMDE5IDI0MC41NjQgMjk0LjIxOSAyNDAuNTY0IDI5NC4yMTlDMjA2LjE2NCAyODEuNDE5IDE4Mi4xNjQgMzA3LjAxOSAxNzguOTY0IDMwNy44MTlDMTc1Ljc2NCAzMDguNjE5IDE3MC45NjQgMzExLjgxOSAxNzAuMTY0IDMwNS40MTlDMTY5LjM2NCAyOTkuMDE5IDE2Mi43NzMgMjgzLjQ5MiAxMzAuMTY0IDMwOC42MTlDMTAxLjUwOSAzMzAuNDM4IDg5Ljg3MyAzMTIuMjU2IDg5Ljg3MyAzMTIuMjU2TDg0LjI3MyAzMTMuNDE5QzY5Ljg3MiAyODUuMDE5IDc4LjM4MiAzNDAuOTgzIDc4LjM4MiAzNDAuOTgzQzg3LjE4MiAzNzUuMzg0IDIyMS4zNjQgMzI4LjYxOSAyMjEuMzY0IDMyOC42MTlDMjIxLjM2NCAzMjguNjE5IDM5MC4xNjUgMjk4LjIxOSA0MDEuMzY1IDI5NC4yMTlDNDEyLjU2NSAyOTAuMjE5IDUwMS42NTYgMjk2LjExIDUwMS42NTYgMjk2LjExTDQ5Ni41NjUgMjc1Ljc0NkM0MzEuNzY1IDIyOS4zNDYgNDE4LjE2NSAyNTYuNjE5IDQwNC41NjUgMjUyLjYxOUMzOTAuOTY1IDI0OC42MTkgMzkzLjM2NSAyNTguMjE5IDM5MC4xNjUgMjU5LjAxOUMzODYuOTY1IDI1OS44MTkgMzQ3Ljc2NSAyMzUuMDE5IDM0MS4zNjUgMjM1LjgxOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmOGQ4YzQiPgorICA8cGF0aCBkPSJNMzQyLjY3NCAyMzcuNTY1QzMzNi4yNzQgMjM4LjM2NSAzMDguODMyIDIxNS42ODkgMzI1Ljg3NCAyNDYuMzY1QzM0Ny44NzQgMjg1Ljk2NSAyNjcuNDc0IDI4NS41NjUgMjUwLjY3NCAyNzQuMzY1QzIzMy44NzQgMjYzLjE2NSAyNTcuODc0IDI5Mi43NjUgMjU3Ljg3NCAyOTIuNzY1QzI3Ni4yNzQgMzEyLjc2NSAyNDEuODc0IDI5NS45NjUgMjQxLjg3NCAyOTUuOTY1QzIwNy40NzMgMjgzLjE2NSAxODMuNDczIDMwOC43NjUgMTgwLjI3MyAzMDkuNTY1QzE3Ny4wNzMgMzEwLjM2NSAxNzIuMjczIDMxMy41NjUgMTcxLjQ3MyAzMDcuMTY1QzE3MC42NzMgMzAwLjc2NSAxNjQuMjE0IDI4NS40MDUgMTMxLjQ3MyAzMTAuMzY1QzEwMS41ODIgMzMyLjkyOSA5MC4yNTUgMzE1LjI5MyA5MC4yNTUgMzE1LjI5M0w4NC4yNTUgMzE0Ljk2NUM3MC42NTQgMjg4LjU2NCA3OS4wMzcgMzQ0LjAzOCA3OS4wMzcgMzQ0LjAzOEM4Ny44MzcgMzc4LjQzOCAyMjIuNjczIDMzMC4zNjUgMjIyLjY3MyAzMzAuMzY1QzIyMi42NzMgMzMwLjM2NSAzOTEuNDc0IDI5OS45NjUgNDAyLjY3NCAyOTUuOTY1QzQxMy44NzQgMjkxLjk2NSA1MDIuMDkzIDI5Ny43ODMgNTAyLjA5MyAyOTcuNzgzTDQ5Ny4wNzUgMjc2LjkxQzQzMi4yNzQgMjMwLjUxIDQxOS40NzQgMjU4LjM2NSA0MDUuODc0IDI1NC4zNjVDMzkyLjI3NCAyNTAuMzY1IDM5NC42NzQgMjU5Ljk2NSAzOTEuNDc0IDI2MC43NjVDMzg4LjI3NCAyNjEuNTY1IDM0OS4wNzQgMjM2Ljc2NSAzNDIuNjc0IDIzNy41NjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmFlNWQ3Ij4KKyAgPHBhdGggZD0iTTM0My45ODMgMjM5LjMxQzMzNy41ODMgMjQwLjExIDMxMC41MjkgMjE3LjIyMyAzMjcuMTgzIDI0OC4xMUMzNDkuMTgzIDI4OC45MSAyNjguNzgzIDI4Ny4zMSAyNTEuOTgzIDI3Ni4xMUMyMzUuMTgzIDI2NC45MSAyNTkuMTgzIDI5NC41MSAyNTkuMTgzIDI5NC41MUMyNzcuNTgzIDMxNC41MSAyNDMuMTgzIDI5Ny43MSAyNDMuMTgzIDI5Ny43MUMyMDguNzgzIDI4NC45MSAxODQuNzgzIDMxMC41MSAxODEuNTgzIDMxMS4zMUMxNzguMzgyIDMxMi4xMSAxNzMuNTgyIDMxNS4zMSAxNzIuNzgyIDMwOC45MUMxNzEuOTgyIDMwMi41MSAxNjUuNjU0IDI4Ny4zMTggMTMyLjc4MiAzMTIuMTFDMTAxLjY1NSAzMzUuNDIgOTAuNjM3IDMxOC4zMjkgOTAuNjM3IDMxOC4zMjlMODQuMjM2IDMxNi41MUM3MS4yMzYgMjkyLjUxIDc5LjY5MSAzNDcuMDkzIDc5LjY5MSAzNDcuMDkzQzg4LjQ5MSAzODEuNDkzIDIyMy45ODMgMzMyLjExIDIyMy45ODMgMzMyLjExQzIyMy45ODMgMzMyLjExIDM5Mi43ODMgMzAxLjcxIDQwMy45ODMgMjk3LjcxQzQxNS4xODMgMjkzLjcxIDUwMi41MjkgMjk5LjQ1NiA1MDIuNTI5IDI5OS40NTZMNDk3LjU4MyAyNzguMDc0QzQzMi43ODMgMjMxLjY3MyA0MjAuNzgzIDI2MC4xMSA0MDcuMTgzIDI1Ni4xMUMzOTMuNTgzIDI1Mi4xMSAzOTUuOTgzIDI2MS43MSAzOTIuNzgzIDI2Mi41MUMzODkuNTgzIDI2My4zMSAzNTAuMzgzIDIzOC41MSAzNDMuOTgzIDIzOS4zMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmY2YyZWIiPgorICA8cGF0aCBkPSJNMzQ1LjI5MiAyNDEuMDU1QzMzOC44OTIgMjQxLjg1NSAzMTIuOTE3IDIxOC40MTEgMzI4LjQ5MiAyNDkuODU1QzM0OS42OTIgMjkyLjY1NiAyNzAuMDkyIDI4OS4wNTYgMjUzLjI5MiAyNzcuODU2QzIzNi40OTIgMjY2LjY1NiAyNjAuNDkyIDI5Ni4yNTYgMjYwLjQ5MiAyOTYuMjU2QzI3OC44OTIgMzE2LjI1NiAyNDQuNDkyIDI5OS40NTYgMjQ0LjQ5MiAyOTkuNDU2QzIxMC4wOTIgMjg2LjY1NiAxODYuMDkyIDMxMi4yNTYgMTgyLjg5MiAzMTMuMDU2QzE3OS42OTIgMzEzLjg1NiAxNzQuODkyIDMxNy4wNTYgMTc0LjA5MiAzMTAuNjU2QzE3My4yOTIgMzA0LjI1NiAxNjcuMDk1IDI4OS4yMzIgMTM0LjA5MiAzMTMuODU2QzEwMS43MjcgMzM3LjkxMSA5MS4wMTggMzIxLjM2NSA5MS4wMTggMzIxLjM2NUw4NC4yMTggMzE4LjA1NkM3MS40MTggMjk0Ljg1NiA4MC4zNDYgMzUwLjE0NyA4MC4zNDYgMzUwLjE0N0M4OS4xNDYgMzg0LjU0NyAyMjUuMjkyIDMzMy44NTYgMjI1LjI5MiAzMzMuODU2QzIyNS4yOTIgMzMzLjg1NiAzOTQuMDkzIDMwMy40NTYgNDA1LjI5MyAyOTkuNDU2QzQxNi40OTMgMjk1LjQ1NiA1MDIuOTY1IDMwMS4xMjggNTAyLjk2NSAzMDEuMTI4TDQ5OC4wOTMgMjc5LjIzN0M0MzMuMjkyIDIzMi44MzcgNDIyLjA5MyAyNjEuODU2IDQwOC40OTMgMjU3Ljg1NkMzOTQuODkzIDI1My44NTUgMzk3LjI5MyAyNjMuNDU2IDM5NC4wOTMgMjY0LjI1NkMzOTAuODkyIDI2NS4wNTYgMzUxLjY5MiAyNDAuMjU1IDM0NS4yOTIgMjQxLjA1NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNODQuMiAzMTkuNjAxQzcxLjQgMjk3LjYgODEgMzUzLjIwMSA4MSAzNTMuMjAxQzg5LjggMzg3LjYwMSAyMjYuNiAzMzUuNjAxIDIyNi42IDMzNS42MDFDMjI2LjYgMzM1LjYwMSAzOTUuNDAxIDMwNS4yIDQwNi42MDEgMzAxLjJDNDE3LjgwMSAyOTcuMiA1MDMuNDAxIDMwMi44IDUwMy40MDEgMzAyLjhMNDk4LjYwMSAyODAuNEM0MzMuODAxIDIzNCA0MjMuNDAxIDI2My42IDQwOS44MDEgMjU5LjZDMzk2LjIwMSAyNTUuNiAzOTguNjAxIDI2NS4yIDM5NS40MDEgMjY2QzM5Mi4yMDEgMjY2LjggMzUzLjAwMSAyNDIgMzQ2LjYwMSAyNDIuOEMzNDAuMjAxIDI0My42IDMxNC45ODEgMjE5Ljc5MyAzMjkuODAxIDI1MS42QzM1Mi4wMjggMjk5LjMwNyAyNjkuMDQxIDI4OS4yMjcgMjU0LjYgMjc5LjZDMjM3LjggMjY4LjQgMjYxLjggMjk4IDI2MS44IDI5OEMyODAuMiAzMTguMDAxIDI0NS44IDMwMS4yIDI0NS44IDMwMS4yQzIxMS40IDI4OC40IDE4Ny40IDMxNC4wMDEgMTg0LjIgMzE0LjgwMUMxODEgMzE1LjYwMSAxNzYuMiAzMTguODAxIDE3NS40IDMxMi40MDFDMTc0LjYgMzA2IDE2OC41MzUgMjkxLjE0NCAxMzUuNCAzMTUuNjAxQzEwMS44IDM0MC40MDEgOTEuNCAzMjQuNDAxIDkxLjQgMzI0LjQwMUw4NC4yIDMxOS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEyNS44IDM0OS42MDFDMTI1LjggMzQ5LjYwMSAxMTguNiAzNjEuMjAxIDEzOS40IDM3NC40MDFDMTM5LjQgMzc0LjQwMSAxNDAuOCAzNzUuODAxIDEyMi44IDM3MS42MDFDMTIyLjggMzcxLjYwMSAxMTYuNiAzNjkuNjAxIDExNSAzNTkuMjAxQzExNSAzNTkuMjAxIDExMC4yIDM1NC44MDEgMTA1LjQgMzQ5LjIwMUMxMDAuNiAzNDMuNjAxIDEyNS44IDM0OS42MDEgMTI1LjggMzQ5LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjY1LjggMzAyQzI2NS44IDMwMiAyODMuNDk4IDMyOC44MjEgMjgyLjkgMzMzLjYwMUMyODEuNiAzNDQuMDAxIDI4MS40IDM1My42MDEgMjg0LjYgMzU3LjYwMUMyODcuODAxIDM2MS42MDEgMjk2LjYwMSAzOTQuODAxIDI5Ni42MDEgMzk0LjgwMUMyOTYuNjAxIDM5NC44MDEgMjk2LjIwMSAzOTYuMDAxIDMwOC42MDEgMzU4LjAwMUMzMDguNjAxIDM1OC4wMDEgMzIwLjIwMSAzNDIuMDAxIDMwMC4yMDEgMzIzLjYwMUMzMDAuMjAxIDMyMy42MDEgMjY1IDI5NC44IDI2NS44IDMwMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTQ1LjggMzc2LjQwMUMxNDUuOCAzNzYuNDAxIDE1NyAzODMuNjAxIDE0Mi42IDQxNC44MDFMMTQ5IDQxMi40MDFDMTQ5IDQxMi40MDEgMTQ4LjIgNDIzLjYwMSAxNDUgNDI2LjAwMUwxNTIuMiA0MjIuODAxQzE1Mi4yIDQyMi44MDEgMTU3IDQzMC44MDEgMTUzIDQzNS42MDFDMTUzIDQzNS42MDEgMTY5LjggNDQzLjYwMSAxNjkgNDUwLjAwMUMxNjkgNDUwLjAwMSAxNzUuNCA0NDIuMDAxIDE3MS40IDQzNS42MDFDMTY3LjQgNDI5LjIwMSAxNjAuMiA0MzMuMjAxIDE2MSA0MTQuODAxTDE1Mi4yIDQxOC4wMDFDMTUyLjIgNDE4LjAwMSAxNTcuOCA0MDkuMjAxIDE1Ny44IDQwMi44MDFMMTQ5LjggNDA1LjIwMUMxNDkuOCA0MDUuMjAxIDE2NS4yNjkgMzc4LjYyMyAxNTQuNiAzNzcuMjAxQzE0OC42IDM3Ni40MDEgMTQ1LjggMzc2LjQwMSAxNDUuOCAzNzYuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNzguMiAzOTMuMjAxQzE3OC4yIDM5My4yMDEgMTgxIDM4OC44MDEgMTc4LjIgMzg5LjYwMUMxNzUuNCAzOTAuNDAxIDE0NC4yIDQwNS4yMDEgMTM4LjIgNDE0LjgwMUMxMzguMiA0MTQuODAxIDE3Mi42IDM5MC40MDEgMTc4LjIgMzkzLjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTg4LjYgNDAxLjIwMUMxODguNiA0MDEuMjAxIDE5MS40IDM5Ni44MDEgMTg4LjYgMzk3LjYwMUMxODUuOCAzOTguNDAxIDE1NC42IDQxMy4yMDEgMTQ4LjYgNDIyLjgwMUMxNDguNiA0MjIuODAxIDE4MyAzOTguNDAxIDE4OC42IDQwMS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTIwMS44IDM4Ni4wMDFDMjAxLjggMzg2LjAwMSAyMDQuNiAzODEuNjAxIDIwMS44IDM4Mi40MDFDMTk5IDM4My4yMDEgMTY3LjggMzk4LjAwMSAxNjEuOCA0MDcuNjAxQzE2MS44IDQwNy42MDEgMTk2LjIgMzgzLjIwMSAyMDEuOCAzODYuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNzguNiA0MjkuNjAxQzE3OC42IDQyOS42MDEgMTc4LjYgNDIzLjYwMSAxNzUuOCA0MjQuNDAxQzE3MyA0MjUuMjAxIDEzNyA0NDIuODAxIDEzMSA0NTIuNDAxQzEzMSA0NTIuNDAxIDE3MyA0MjYuODAxIDE3OC42IDQyOS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3OS44IDQxOC44MDFDMTc5LjggNDE4LjgwMSAxODEgNDE0LjAwMSAxNzguMiA0MTQuODAxQzE3Ni4yIDQxNC44MDEgMTQ5LjggNDI2LjQwMSAxNDMuOCA0MzYuMDAxQzE0My44IDQzNi4wMDEgMTczLjQgNDE0LjQwMSAxNzkuOCA0MTguODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNjUuNCA0NjYuNDAxTDE1NS40IDQ3NC4wMDFDMTU1LjQgNDc0LjAwMSAxNjUuOCA0NjYuNDAxIDE2OS40IDQ2Ny42MDFDMTY5LjQgNDY3LjYwMSAxNjIuNiA0NzguODAxIDE2MS44IDQ4NC4wMDFDMTYxLjggNDg0LjAwMSAxNzIuMiA0NzEuMjAxIDE3Ny44IDQ3MS42MDFDMTc3LjggNDcxLjYwMSAxODUuNCA0NzIuMDAxIDE4NS40IDQ4Mi44MDFDMTg1LjQgNDgyLjgwMSAxOTEgNDcyLjQwMSAxOTQuMiA0NzIuODAxQzE5NC4yIDQ3Mi44MDEgMTk1LjQgNDc5LjIwMSAxOTQuMiA0ODYuMDAxQzE5NC4yIDQ4Ni4wMDEgMTk4LjIgNDc4LjQwMSAyMDIuMiA0ODAuMDAxQzIwMi4yIDQ4MC4wMDEgMjA4LjYgNDc4LjAwMSAyMDcuOCA0ODkuNjAxQzIwNy44IDQ4OS42MDEgMjA3LjggNTAwLjAwMSAyMDcgNTAyLjgwMUMyMDcgNTAyLjgwMSAyMTIuNiA0NzYuNDAxIDIxNSA0NzYuMDAxQzIxNSA0NzYuMDAxIDIyMyA0NzQuODAxIDIyNy44IDQ4My42MDFDMjI3LjggNDgzLjYwMSAyMjMuOCA0NzYuMDAxIDIyOC42IDQ3OC4wMDFDMjI4LjYgNDc4LjAwMSAyMzkuNCA0NzkuNjAxIDI0Mi42IDQ4Ni40MDFDMjQyLjYgNDg2LjQwMSAyMzUuOCA0NzQuNDAxIDI0MS40IDQ3Ny42MDFDMjQxLjQgNDc3LjYwMSAyNDguMiA0NzcuNjAxIDI0OS40IDQ4NC4wMDFDMjQ5LjQgNDg0LjAwMSAyNTcuOCA1MDUuMjAxIDI1OS44IDUwNi44MDFDMjU5LjggNTA2LjgwMSAyNTIuMiA0ODUuMjAxIDI1My44IDQ4NS4yMDFDMjUzLjggNDg1LjIwMSAyNTEuOCA0NzMuMjAxIDI1NyA0ODguMDAxQzI1NyA0ODguMDAxIDI1My44IDQ3NC4wMDEgMjU5LjQgNDc0LjgwMUMyNjUgNDc1LjYwMSAyNjkuNCA0ODUuNjAxIDI3Ny44IDQ4My4yMDFDMjc3LjggNDgzLjIwMSAyODcuNDAxIDQ4OC44MDEgMjg5LjQwMSA0MTkuNjAxTDE2NS40IDQ2Ni40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE3MC4yIDM3My42MDFDMTcwLjIgMzczLjYwMSAxODUgMzY3LjYwMSAyMjUgMzczLjYwMUMyMjUgMzczLjYwMSAyMzIuMiAzNzQuMDAxIDIzOSAzNjUuMjAxQzI0NS44IDM1Ni40MDEgMjcyLjYgMzQ5LjIwMSAyNzkgMzUxLjIwMUwyODguNjAxIDM1Ny42MDFMMjg5LjQwMSAzNTguODAxQzI4OS40MDEgMzU4LjgwMSAzMDEuODAxIDM2OS4yMDEgMzAyLjIwMSAzNzYuODAxQzMwMi42MDEgMzg0LjQwMSAyODcuODAxIDQzMi40MDEgMjc4LjIgNDQ4LjQwMUMyNjguNiA0NjQuNDAxIDI1OSA0NzYuODAxIDIzOS44IDQ3NC40MDFDMjM5LjggNDc0LjQwMSAyMTkgNDcwLjQwMSAxOTMuNCA0NzQuNDAxQzE5My40IDQ3NC40MDEgMTY0LjIgNDcyLjgwMSAxNjEuNCA0NjQuODAxQzE1OC42IDQ1Ni44MDEgMTcyLjYgNDQxLjYwMSAxNzIuNiA0NDEuNjAxQzE3Mi42IDQ0MS42MDEgMTc3IDQzMy4yMDEgMTc1LjggNDE4LjgwMUMxNzQuNiA0MDQuNDAxIDE3NSAzNzYuNDAxIDE3MC4yIDM3My42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTU2NjhjIj4KKyAgPHBhdGggZD0iTTE5Mi4yIDM3NS42MDFDMjAwLjYgMzk0LjAwMSAxNzEgNDU5LjIwMSAxNzEgNDU5LjIwMUMxNjkgNDYwLjgwMSAxODMuNjYgNDY2Ljg0NiAxOTMuOCA0NjQuNDAxQzIwNC43NDYgNDYxLjc2MyAyNDUgNDY2LjAwMSAyNDUgNDY2LjAwMUMyNjguNiA0NTAuNDAxIDI4MS40IDQwNi4wMDEgMjgxLjQgNDA2LjAwMUMyODEuNCA0MDYuMDAxIDI5MS44MDEgMzgyLjAwMSAyNzQuMiAzNzguODAxQzI1Ni42IDM3NS42MDEgMTkyLjIgMzc1LjYwMSAxOTIuMiAzNzUuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2IyMzI1OSI+CisgIDxwYXRoIGQ9Ik0xOTAuMTY5IDQwNi40OTdDMTkzLjQ5NSAzOTMuNzA3IDE5NS4wNzkgMzgxLjkwNiAxOTIuMiAzNzUuNjAxQzE5Mi4yIDM3NS42MDEgMjU0LjYgMzgyLjAwMSAyNjUuOCAzNjEuMjAxQzI3MC4wNDEgMzUzLjMyNiAyODQuODAxIDM4NC4wMDEgMjg0LjQgMzkzLjYwMUMyODQuNCAzOTMuNjAxIDIyMS40IDQwOC4wMDEgMjA2LjYgMzk2LjgwMUwxOTAuMTY5IDQwNi40OTd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjYTUyNjRjIj4KKyAgPHBhdGggZD0iTTE5NC42IDQyMi44MDFDMTk0LjYgNDIyLjgwMSAxOTYuNiA0MzAuMDAxIDE5NC4yIDQzNC4wMDFDMTk0LjIgNDM0LjAwMSAxOTIuNiA0MzQuODAxIDE5MS40IDQzNS4yMDFDMTkxLjQgNDM1LjIwMSAxOTIuNiA0MzguODAxIDE5OC42IDQ0MC40MDFDMTk4LjYgNDQwLjQwMSAyMDAuNiA0NDQuODAxIDIwMyA0NDUuMjAxQzIwNS40IDQ0NS42MDEgMjEwLjIgNDUxLjIwMSAyMTQuMiA0NTAuMDAxQzIxOC4yIDQ0OC44MDEgMjI5LjQgNDQ0LjgwMSAyMjkuNCA0NDQuODAxQzIyOS40IDQ0NC44MDEgMjM1IDQ0MS42MDEgMjQzLjggNDQ1LjIwMUMyNDMuOCA0NDUuMjAxIDI0Ni4xNzUgNDQ0LjM5OSAyNDYuNiA0NDAuNDAxQzI0Ny4xIDQzNS43MDEgMjUwLjIgNDMyLjAwMSAyNTIuMiA0MzAuMDAxQzI1NC4yIDQyOC4wMDEgMjYzLjggNDE1LjIwMSAyNjIuNiA0MTQuODAxQzI2MS40IDQxNC40MDEgMTk0LjYgNDIyLjgwMSAxOTQuNiA0MjIuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmNzI3Zjsgc3Ryb2tlOiMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTkwLjIgMzc0LjQwMUMxOTAuMiAzNzQuNDAxIDE4Ny40IDM5Ni44MDEgMTkwLjYgNDA1LjIwMUMxOTMuOCA0MTMuNjAxIDE5MyA0MTUuNjAxIDE5Mi4yIDQxOS42MDFDMTkxLjQgNDIzLjYwMSAxOTUuOCA0MzMuNjAxIDIwMS40IDQzOS42MDFMMjEzLjQgNDQxLjIwMUMyMTMuNCA0NDEuMjAxIDIyOC42IDQzNy42MDEgMjM3LjggNDQwLjQwMUMyMzcuOCA0NDAuNDAxIDI0Ni43OTQgNDQxLjc0NCAyNTAuMiA0MjYuODAxQzI1MC4yIDQyNi44MDEgMjU1IDQyMC40MDEgMjYyLjIgNDE3LjYwMUMyNjkuNCA0MTQuODAxIDI3Ni42IDM3My4yMDEgMjcyLjYgMzY1LjIwMUMyNjguNiAzNTcuMjAxIDI1NC4yIDM1Mi44MDEgMjM4LjIgMzY4LjQwMUMyMjIuMiAzODQuMDAxIDIyMC4yIDM2Ny4yMDEgMTkwLjIgMzc0LjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTE5MS44IDQ0OS4yMDFDMTkxLjggNDQ5LjIwMSAxOTEgNDQ3LjIwMSAxODYuNiA0NDYuODAxQzE4Ni42IDQ0Ni44MDEgMTY0LjIgNDQzLjIwMSAxNTUuOCA0MzAuODAxQzE1NS44IDQzMC44MDEgMTQ5IDQyNS4yMDEgMTUzLjQgNDM2LjgwMUMxNTMuNCA0MzYuODAxIDE2My44IDQ1Ny4yMDEgMTcwLjYgNDYwLjAwMUMxNzAuNiA0NjAuMDAxIDE4NyA0NjQuMDAxIDE5MS44IDQ0OS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2MzZjRjIj4KKyAgPHBhdGggZD0iTTI3MS43NDIgMzg1LjIyOUMyNzIuNDAxIDM3Ny4zMjMgMjc0LjM1NCAzNjguNzA5IDI3Mi42IDM2NS4yMDFDMjY2LjE1NCAzNTIuMzA3IDI0OS4xODEgMzU3LjY5NSAyMzguMiAzNjguNDAxQzIyMi4yIDM4NC4wMDEgMjIwLjIgMzY3LjIwMSAxOTAuMiAzNzQuNDAxQzE5MC4yIDM3NC40MDEgMTg4LjQ1NSAzODguMzY0IDE4OS4yOTUgMzk4LjM3NkMxODkuMjk1IDM5OC4zNzYgMjI2LjYgMzg2LjgwMSAyMjcuNCAzOTIuNDAxQzIyNy40IDM5Mi40MDEgMjI5IDM4OS4yMDEgMjM4LjIgMzg5LjIwMUMyNDcuNCAzODkuMjAxIDI3MC4xNDIgMzg4LjAyOSAyNzEuNzQyIDM4NS4yMjl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6I2E1MTkyNjsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjI4LjYgMzc1LjIwMUMyMjguNiAzNzUuMjAxIDIzMy40IDM4MC4wMDEgMjI5LjggMzg5LjYwMUMyMjkuOCAzODkuNjAxIDIxNS40IDQwNS42MDEgMjE3LjQgNDE5LjYwMSIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTgwLjYgNDYwLjAwMUMxODAuNiA0NjAuMDAxIDE3Ni4yIDQ0Ny4yMDEgMTg1IDQ1NC4wMDFDMTg1IDQ1NC4wMDEgMTg5LjggNDU2LjAwMSAxODguNiA0NTcuNjAxQzE4Ny40IDQ1OS4yMDEgMTgxLjggNDYzLjIwMSAxODAuNiA0NjAuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTg1LjY0IDQ2MS4yMDFDMTg1LjY0IDQ2MS4yMDEgMTgyLjEyIDQ1MC45NjEgMTg5LjE2IDQ1Ni40MDFDMTg5LjE2IDQ1Ni40MDEgMTkzLjU4MSA0NTguODQ5IDE5Mi4wNCA0NTkuMjgxQzE4Ny40OCA0NjAuNTYxIDE5Mi4wNCA0NjMuMTIxIDE4NS42NCA0NjEuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTkwLjQ0IDQ2MS4yMDFDMTkwLjQ0IDQ2MS4yMDEgMTg2LjkyIDQ1MC45NjEgMTkzLjk2IDQ1Ni40MDFDMTkzLjk2IDQ1Ni40MDEgMTk4LjMzNSA0NTguNzExIDE5Ni44NCA0NTkuMjgxQzE5My40OCA0NjAuNTYxIDE5Ni44NCA0NjMuMTIxIDE5MC40NCA0NjEuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTk3LjA0IDQ2MS40MDFDMTk3LjA0IDQ2MS40MDEgMTkzLjUyIDQ1MS4xNjEgMjAwLjU2IDQ1Ni42MDFDMjAwLjU2IDQ1Ni42MDEgMjA0Ljk0MyA0NTguOTMzIDIwMy40NDEgNDU5LjQ4MUMyMDAuNDggNDYwLjU2MSAyMDMuNDQxIDQ2My4zMjEgMTk3LjA0IDQ2MS40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0yMDMuNTIgNDYxLjMyMUMyMDMuNTIgNDYxLjMyMSAyMDAgNDUxLjA4MSAyMDcuMDQxIDQ1Ni41MjFDMjA3LjA0MSA0NTYuNTIxIDIxMC44ODEgNDU4LjEyMSAyMDkuOTIxIDQ1OS40MDFDMjA4Ljk2MSA0NjAuNjgxIDIwOS45MjEgNDYzLjI0MSAyMDMuNTIgNDYxLjMyMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTIxMC4yIDQ2Mi4wMDFDMjEwLjIgNDYyLjAwMSAyMDUuNCA0NDkuNjAxIDIxNC42IDQ1Ni4wMDFDMjE0LjYgNDU2LjAwMSAyMTkuNCA0NTguMDAxIDIxOC4yIDQ1OS42MDFDMjE3IDQ2MS4yMDEgMjE4LjIgNDY0LjQwMSAyMTAuMiA0NjIuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiNhNTI2NGM7IHN0cm9rZS13aWR0aDoyIj4KKyAgPHBhdGggZD0iTTE4MS44IDQ0NC44MDFDMTgxLjggNDQ0LjgwMSAxOTUgNDQyLjAwMSAyMDEgNDQ1LjIwMUMyMDEgNDQ1LjIwMSAyMDcgNDQ2LjQwMSAyMDguMiA0NDYuMDAxQzIwOS40IDQ0NS42MDEgMjEyLjYgNDQ1LjIwMSAyMTIuNiA0NDUuMjAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjE1LjggNDUzLjYwMUMyMTUuOCA0NTMuNjAxIDIyNy44IDQ0MC4wMDEgMjM5LjggNDQ0LjQwMUMyNDYuODE2IDQ0Ni45NzQgMjQ1LjggNDQzLjYwMSAyNDYuNiA0NDAuODAxQzI0Ny40IDQzOC4wMDEgMjQ3LjYgNDMzLjgwMSAyNTIuNiA0MzAuODAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0yMzMgNDM3LjYwMUMyMzMgNDM3LjYwMSAyMjkgNDI2LjgwMSAyMjYuMiA0MzkuNjAxQzIyMy40IDQ1Mi40MDEgMjIwLjIgNDU2LjAwMSAyMTguNiA0NTguODAxQzIxOC42IDQ1OC44MDEgMjE4LjYgNDY0LjAwMSAyMjcgNDYzLjYwMUMyMjcgNDYzLjYwMSAyMzcuOCA0NjMuMjAxIDIzOC4yIDQ2MC40MDFDMjM4LjYgNDU3LjYwMSAyMzcgNDQ2LjAwMSAyMzMgNDM3LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojYTUyNjRjOyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yNDcgNDQ0LjgwMUMyNDcgNDQ0LjgwMSAyNTAuNiA0NDIuNDAxIDI1MyA0NDMuNjAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjUzLjUgNDI4LjQwMUMyNTMuNSA0MjguNDAxIDI1Ni40IDQyMy41MDEgMjYxLjIgNDIyLjcwMSIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2IyYjJiMiI+CisgIDxwYXRoIGQ9Ik0xNzQuMiA0NjUuMjAxQzE3NC4yIDQ2NS4yMDEgMTkyLjIgNDY4LjQwMSAxOTYuNiA0NjYuODAxQzE5Ni42IDQ2Ni44MDEgMjA1LjQgNDY2LjgwMSAxOTcgNDY4LjgwMUMxOTcgNDY4LjgwMSAxODQuMiA0NjguODAxIDE3Ni4yIDQ2Ny42MDFDMTc2LjIgNDY3LjYwMSAxNjQuNiA0NjIuMDAxIDE3NC4yIDQ2NS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xODguMiAzNzIuMDAxQzE4OC4yIDM3Mi4wMDEgMjA1LjggMzcyLjAwMSAyMDcuOCAzNzIuODAxQzIwNy44IDM3Mi44MDEgMjE1IDQwMy42MDEgMjExLjQgNDExLjIwMUMyMTEuNCA0MTEuMjAxIDIxMC4yIDQxNC4wMDEgMjA3LjQgNDA4LjQwMUMyMDcuNCA0MDguNDAxIDE4OSAzNzUuNjAxIDE4NS44IDM3My42MDFDMTgyLjYgMzcxLjYwMSAxODcgMzcyLjAwMSAxODguMiAzNzIuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTExLjEgMzY5LjMwMUMxMTEuMSAzNjkuMzAxIDEyMCAzNzEuMDAxIDEzMi42IDM3My42MDFDMTMyLjYgMzczLjYwMSAxMzcuNCAzOTYuMDAxIDE0MC42IDQwMC44MDFDMTQzLjggNDA1LjYwMSAxNDAuMiA0MDUuNjAxIDEzNi42IDQwMi44MDFDMTMzIDQwMC4wMDEgMTE4LjIgMzg2LjAwMSAxMTYuMiAzODEuNjAxQzExNC4yIDM3Ny4yMDEgMTExLjEgMzY5LjMwMSAxMTEuMSAzNjkuMzAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTMyLjk2MSAzNzMuODE4QzEzMi45NjEgMzczLjgxOCAxMzguNzYxIDM3NS4zNjYgMTM5Ljc3IDM3Ny41ODFDMTQwLjc3OCAzNzkuNzk1IDEzOC41NjggMzgzLjA5MiAxMzguNTY4IDM4My4wOTJDMTM4LjU2OCAzODMuMDkyIDEzNy41NjggMzg2LjM5NyAxMzYuMzY2IDM4NC4yMzVDMTM1LjE2NCAzODIuMDcyIDEzMi4yOTIgMzc0LjQxMiAxMzIuOTYxIDM3My44MTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEzMyAzNzMuNjAxQzEzMyAzNzMuNjAxIDEzNi42IDM3OC44MDEgMTQwLjIgMzc4LjgwMUMxNDMuOCAzNzguODAxIDE0NC4xODIgMzc4LjM4OCAxNDcgMzc5LjAwMUMxNTEuNiAzODAuMDAxIDE1MS4yIDM3OC4wMDEgMTU3LjggMzc5LjIwMUMxNjAuNDQgMzc5LjY4MSAxNjMgMzc4LjgwMSAxNjUuOCAzODAuMDAxQzE2OC42IDM4MS4yMDEgMTcxLjggMzgwLjQwMSAxNzMgMzc4LjQwMUMxNzQuMiAzNzYuNDAxIDE3OSAzNzIuMjAxIDE3OSAzNzIuMjAxQzE3OSAzNzIuMjAxIDE2Ni4yIDM3NC4wMDEgMTYzLjQgMzc0LjgwMUMxNjMuNCAzNzQuODAxIDE0MSAzNzYuMDAxIDEzMyAzNzMuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTc3LjYgMzczLjgwMUMxNzcuNiAzNzMuODAxIDE3MS4xNSAzNzcuMzAxIDE3MC43NSAzNzkuNzAxQzE3MC4zNSAzODIuMTAxIDE3NiAzODUuODAxIDE3NiAzODUuODAxQzE3NiAzODUuODAxIDE3OC43NSAzOTAuNDAxIDE3OS4zNSAzODguMDAxQzE3OS45NSAzODUuNjAxIDE3OC40IDM3NC4yMDEgMTc3LjYgMzczLjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTE0MC4xMTUgMzc5LjI2NUMxNDAuMTE1IDM3OS4yNjUgMTQ3LjEyMiAzOTAuNDUzIDE0Ny4zMzkgMzc5LjI0MkMxNDcuMzM5IDM3OS4yNDIgMTQ3Ljg5NiAzNzcuOTg0IDE0Ni4xMzYgMzc3Ljk2MkMxNDAuMDYxIDM3Ny44ODYgMTQxLjU4MiAzNzMuNzg0IDE0MC4xMTUgMzc5LjI2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTE0Ny4yOTMgMzc5LjUxNEMxNDcuMjkzIDM3OS41MTQgMTU1LjIxNCAzOTAuNzAxIDE1NC41NzggMzc5LjQyMUMxNTQuNTc4IDM3OS40MjEgMTU0LjU4NSAzNzkuMDg5IDE1Mi44MzIgMzc4LjkzNkMxNDguMDg1IDM3OC41MjIgMTQ4LjQzIDM3NC4wMDQgMTQ3LjI5MyAzNzkuNTE0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTU0LjUwNiAzNzkuNTIyQzE1NC41MDYgMzc5LjUyMiAxNjIuNDY2IDM5MC4xNSAxNjEuNzk3IDM4MC40ODRDMTYxLjc5NyAzODAuNDg0IDE2MS45MTYgMzc5LjI1MSAxNjAuMjYyIDM3OC45NUMxNTYuMzcgMzc4LjI0NCAxNTYuMTU5IDM3NC45OTUgMTU0LjUwNiAzNzkuNTIyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTYxLjM4MiAzNzkuNjAyQzE2MS4zODIgMzc5LjYwMiAxNjkuMjgyIDM5MS4xNjMgMTY5LjYzIDM4MS4zODJDMTY5LjYzIDM4MS4zODIgMTcxLjI3NCAzODAuMDA0IDE2OS41MjggMzc5Ljc4MkMxNjMuNzEgMzc5LjA0MiAxNjQuNTA4IDM3NC41ODggMTYxLjM4MiAzNzkuNjAyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2U1ZTViMiI+CisgIDxwYXRoIGQ9Ik0xMjUuMjA4IDM4My4xMzJMMTE3LjU1IDM4MS42MDFDMTE0Ljk1IDM3Ni42MDEgMTEyLjg1IDM3MC40NTEgMTEyLjg1IDM3MC40NTFDMTEyLjg1IDM3MC40NTEgMTE5LjIgMzcxLjQ1MSAxMzEuNyAzNzQuMjUxQzEzMS43IDM3NC4yNTEgMTMyLjU3NiAzNzcuNTY5IDEzNC4wNDggMzgzLjM2NEwxMjUuMjA4IDM4My4xMzJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTVlNWIyIj4KKyAgPHBhdGggZD0iTTE5MC4yNzYgMzc4LjQ3QzE4OC42MSAzNzUuOTY0IDE4Ny4yOTMgMzc0LjIwNiAxODYuNjQzIDM3My44QzE4My42MyAzNzEuOTE3IDE4Ny43NzMgMzcyLjI5NCAxODguOTAyIDM3Mi4yOTRDMTg4LjkwMiAzNzIuMjk0IDIwNS40NzMgMzcyLjI5NCAyMDcuMzU2IDM3My4wNDdDMjA3LjM1NiAzNzMuMDQ3IDIwNy44OCAzNzUuMjg5IDIwOC41NjQgMzc4LjY4QzIwOC41NjQgMzc4LjY4IDE5OC40NzYgMzc2LjY3IDE5MC4yNzYgMzc4LjQ3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yNDMuODggMjQwLjMyMUMyNzEuNjAxIDI0NC4yODEgMjk3LjEyMSAyMDguNjQxIDI5OC44ODEgMTk4Ljk2QzMwMC42NDEgMTg5LjI4IDI5MC41MjEgMTc3LjQgMjkwLjUyMSAxNzcuNEMyOTEuODQxIDE3NC4zMiAyODcuMDAxIDE2MC4yNCAyODEuNzIxIDE1MUMyNzYuNDQxIDE0MS43NiAyNjAuNTQgMTQyLjczNCAyNDMgMTQxLjc2QzIyNy4xNiAxNDAuODggMjA4LjY4IDE2NC4yIDIwNy4zNiAxNjUuOTZDMjA2LjA0IDE2Ny43MiAyMTIuMiAyMDYuMDAxIDIxMy41MiAyMTEuNzIxQzIxNC44NCAyMTcuNDQxIDIxMi4yIDI0My44NDEgMjEyLjIgMjQzLjg0MUMyNDYuNDQgMjM0Ljc0MSAyMTYuMTYgMjM2LjM2MSAyNDMuODggMjQwLjMyMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlYThlNTEiPgorICA8cGF0aCBkPSJNMjA4LjA4OCAxNjYuNjA4QzIwNi43OTIgMTY4LjMzNiAyMTIuODQgMjA1LjkyMSAyMTQuMTM2IDIxMS41MzdDMjE1LjQzMiAyMTcuMTUzIDIxMi44NCAyNDMuMDczIDIxMi44NCAyNDMuMDczQzI0NS41MTIgMjM0LjE5MyAyMTYuNzI4IDIzNS43MjkgMjQzLjk0NCAyMzkuNjE3QzI3MS4xNjEgMjQzLjUwNSAyOTYuMjE3IDIwOC41MTMgMjk3Ljk0NSAxOTkuMDA4QzI5OS42NzMgMTg5LjUwNCAyODkuNzM3IDE3Ny44NCAyODkuNzM3IDE3Ny44NEMyOTEuMDMzIDE3NC44MTYgMjg2LjI4MSAxNjAuOTkyIDI4MS4wOTcgMTUxLjkyQzI3NS45MTMgMTQyLjg0OCAyNjAuMzAyIDE0My44MDUgMjQzLjA4IDE0Mi44NDhDMjI3LjUyOCAxNDEuOTg0IDIwOS4zODQgMTY0Ljg4IDIwOC4wODggMTY2LjYwOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlZmFhN2MiPgorICA8cGF0aCBkPSJNMjA4LjgxNiAxNjcuMjU2QzIwNy41NDQgMTY4Ljk1MiAyMTMuNDggMjA1Ljg0MSAyMTQuNzUyIDIxMS4zNTNDMjE2LjAyNCAyMTYuODY1IDIxMy40OCAyNDIuMzA1IDIxMy40OCAyNDIuMzA1QzI0NC44ODQgMjMzLjE0NSAyMTcuMjk2IDIzNS4wOTcgMjQ0LjAwOCAyMzguOTEzQzI3MC43MjEgMjQyLjcyOSAyOTUuMzEzIDIwOC4zODUgMjk3LjAwOSAxOTkuMDU2QzI5OC43MDUgMTg5LjcyOCAyODguOTUzIDE3OC4yOCAyODguOTUzIDE3OC4yOEMyOTAuMjI1IDE3NS4zMTIgMjg1LjU2MSAxNjEuNzQ0IDI4MC40NzMgMTUyLjg0QzI3NS4zODUgMTQzLjkzNiAyNjAuMDYzIDE0NC44NzUgMjQzLjE2IDE0My45MzZDMjI3Ljg5NiAxNDMuMDg4IDIxMC4wODggMTY1LjU2IDIwOC44MTYgMTY3LjI1NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmNGM2YTgiPgorICA8cGF0aCBkPSJNMjA5LjU0NCAxNjcuOTA0QzIwOC4yOTYgMTY5LjU2OCAyMTQuMTIgMjA1Ljc2MSAyMTUuMzY4IDIxMS4xNjlDMjE2LjYxNiAyMTYuNTc3IDIxNC4xMiAyNDEuNTM3IDIxNC4xMiAyNDEuNTM3QzI0My41NTYgMjMyLjQ5NyAyMTcuODY0IDIzNC40NjUgMjQ0LjA3MiAyMzguMjA5QzI3MC4yODEgMjQxLjk1MyAyOTQuNDA5IDIwOC4yNTcgMjk2LjA3MyAxOTkuMTA1QzI5Ny43MzcgMTg5Ljk1MiAyODguMTY5IDE3OC43MiAyODguMTY5IDE3OC43MkMyODkuNDE3IDE3NS44MDggMjg0Ljg0MSAxNjIuNDk2IDI3OS44NDkgMTUzLjc2QzI3NC44NTcgMTQ1LjAyNCAyNTkuODI0IDE0NS45NDUgMjQzLjI0IDE0NS4wMjRDMjI4LjI2NCAxNDQuMTkyIDIxMC43OTIgMTY2LjI0IDIwOS41NDQgMTY3LjkwNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmOWUyZDMiPgorICA8cGF0aCBkPSJNMjEwLjI3MiAxNjguNTUyQzIwOS4wNDggMTcwLjE4NCAyMTQuNzYgMjA1LjY4MSAyMTUuOTg0IDIxMC45ODVDMjE3LjIwOCAyMTYuMjg5IDIxNC43NiAyNDAuNzY5IDIxNC43NiAyNDAuNzY5QzI0Mi42MjggMjMxLjg0OSAyMTguNDMyIDIzMy44MzMgMjQ0LjEzNiAyMzcuNTA1QzI2OS44NDEgMjQxLjE3NyAyOTMuNTA1IDIwOC4xMjkgMjk1LjEzNyAxOTkuMTUyQzI5Ni43NjkgMTkwLjE3NiAyODcuMzg1IDE3OS4xNiAyODcuMzg1IDE3OS4xNkMyODguNjA5IDE3Ni4zMDQgMjg0LjEyMSAxNjMuMjQ4IDI3OS4yMjUgMTU0LjY4QzI3NC4zMjkgMTQ2LjExMiAyNTkuNTg1IDE0Ny4wMTUgMjQzLjMyIDE0Ni4xMTJDMjI4LjYzMiAxNDUuMjk2IDIxMS40OTYgMTY2LjkyIDIxMC4yNzIgMTY4LjU1MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMjQ0LjIgMjM2LjhDMjY5LjQgMjQwLjQgMjkyLjYwMSAyMDggMjk0LjIwMSAxOTkuMkMyOTUuODAxIDE5MC40IDI4Ni42MDEgMTc5LjYgMjg2LjYwMSAxNzkuNkMyODcuODAxIDE3Ni44IDI4My40IDE2NCAyNzguNiAxNTUuNkMyNzMuOCAxNDcuMiAyNTkuMzQ2IDE0OC4wODYgMjQzLjQgMTQ3LjJDMjI5IDE0Ni40IDIxMi4yIDE2Ny42IDIxMSAxNjkuMkMyMDkuOCAxNzAuOCAyMTUuNCAyMDUuNiAyMTYuNiAyMTAuOEMyMTcuOCAyMTYgMjE1LjQgMjQwIDIxNS40IDI0MEMyNDAuOSAyMzEuNCAyMTkgMjMzLjIgMjQ0LjIgMjM2Ljh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTI5MC42MDEgMjAyLjhDMjkwLjYwMSAyMDIuOCAyNjIuOCAyMTAuNCAyNTEuMiAyMDguOEMyNTEuMiAyMDguOCAyMzUuNCAyMDIuMiAyMjYuNiAyMjRDMjI2LjYgMjI0IDIyMyAyMzEuMiAyMjEgMjMzLjJDMjE5IDIzNS4yIDI5MC42MDEgMjAyLjggMjkwLjYwMSAyMDIuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjk0LjQwMSAyMDAuNkMyOTQuNDAxIDIwMC42IDI2NS40IDIxMi44IDI1NS40IDIxMi40QzI1NS40IDIxMi40IDIzOSAyMDcuOCAyMzAuNiAyMjIuNEMyMzAuNiAyMjIuNCAyMjIuMiAyMzEuNiAyMTkgMjMzLjJDMjE5IDIzMy4yIDIxOC42IDIzNC44IDIyNSAyMzAuOEwyMzUuNCAyMzZDMjM1LjQgMjM2IDI1MC4yIDI0NS42IDI1OS44IDIyOS42QzI1OS44IDIyOS42IDI2My44IDIxOC40IDI2My44IDIxNi40QzI2My44IDIxNC40IDI4NSAyMDguOCAyODYuNjAxIDIwOC40QzI4OC4yMDEgMjA4IDI5NC44MDEgMjAzLjggMjk0LjQwMSAyMDAuNnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OWNjMzIiPgorICA8cGF0aCBkPSJNMjQ3IDIzNi41MTRDMjQwLjEyOCAyMzYuNTE0IDIzMS43NTUgMjMyLjY0OSAyMzEuNzU1IDIyNi40QzIzMS43NTUgMjIwLjE1MiAyNDAuMTI4IDIxMy44ODcgMjQ3IDIxMy44ODdDMjUzLjg3NCAyMTMuODg3IDI1OS40NDYgMjE4Ljk1MiAyNTkuNDQ2IDIyNS4yQzI1OS40NDYgMjMxLjQ0OSAyNTMuODc0IDIzNi41MTQgMjQ3IDIzNi41MTR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjNjU5OTAwIj4KKyAgPHBhdGggZD0iTTI0My4zNzcgMjE5LjgzQzIzOC41MzEgMjIwLjU1MiAyMzMuNDQyIDIyMi4wNTUgMjMzLjUxNCAyMjEuODM5QzIzNS4wNTQgMjE3LjIyIDI0MS40MTUgMjEzLjg4NyAyNDcgMjEzLjg4N0MyNTEuMjk2IDIxMy44ODcgMjU1LjA4NCAyMTUuODY1IDI1Ny4zMiAyMTguODc1QzI1Ny4zMiAyMTguODc1IDI1Mi4wMDQgMjE4LjU0NSAyNDMuMzc3IDIxOS44M3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMjU1LjQgMjE5LjZDMjU1LjQgMjE5LjYgMjUxIDIxNi40IDI1MSAyMTguNkMyNTEgMjE4LjYgMjU0LjYgMjIzIDI1NS40IDIxOS42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNDUuNCAyMjcuNzI2QzI0Mi45MDEgMjI3LjcyNiAyNDAuODc1IDIyNS43IDI0MC44NzUgMjIzLjJDMjQwLjg3NSAyMjAuNzAxIDI0Mi45MDEgMjE4LjY3NSAyNDUuNCAyMTguNjc1QzI0Ny45IDIxOC42NzUgMjQ5LjkyNiAyMjAuNzAxIDI0OS45MjYgMjIzLjJDMjQ5LjkyNiAyMjUuNyAyNDcuOSAyMjcuNzI2IDI0NS40IDIyNy43MjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTE0MS40IDIxNC40QzE0MS40IDIxNC40IDEzOC4yIDE5My4yIDE0MC42IDE4OC44QzE0MC42IDE4OC44IDE1MS40IDE3OC44IDE1MSAxNzUuMkMxNTEgMTc1LjIgMTUwLjYgMTU3LjIgMTQ5LjQgMTU2LjRDMTQ4LjIgMTU1LjYgMTQwLjYgMTQ5LjYgMTM0LjYgMTU2QzEzNC42IDE1NiAxMjQuMiAxNzQgMTI1IDE4MC40TDEyNSAxODIuNEMxMjUgMTgyLjQgMTE3LjQgMTgyIDExNS44IDE4NEMxMTUuOCAxODQgMTE0LjYgMTg5LjIgMTEzLjQgMTg5LjZDMTEzLjQgMTg5LjYgMTEwLjYgMTkyIDExMi42IDE5NC44QzExMi42IDE5NC44IDExMC42IDE5Ny4yIDExMSAyMDEuMkwxMTguNiAyMDUuMkMxMTguNiAyMDUuMiAxMjAuNiAyMTkuNiAxMzEuNCAyMjQuOEMxMzYuMjM2IDIyNy4xMjkgMTM5LjQgMjIwLjQgMTQxLjQgMjE0LjR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTE0MC40IDIxMi41NkMxNDAuNCAyMTIuNTYgMTM3LjUyIDE5My40OCAxMzkuNjggMTg5LjUyQzEzOS42OCAxODkuNTIgMTQ5LjQgMTgwLjUyIDE0OS4wNCAxNzcuMjhDMTQ5LjA0IDE3Ny4yOCAxNDguNjggMTYxLjA4IDE0Ny42IDE2MC4zNkMxNDYuNTIgMTU5LjY0IDEzOS42OCAxNTQuMjQgMTM0LjI4IDE2MEMxMzQuMjggMTYwIDEyNC45MiAxNzYuMiAxMjUuNjQgMTgxLjk2TDEyNS42NCAxODMuNzZDMTI1LjY0IDE4My43NiAxMTguOCAxODMuNCAxMTcuMzYgMTg1LjJDMTE3LjM2IDE4NS4yIDExNi4yOCAxODkuODggMTE1LjIgMTkwLjI0QzExNS4yIDE5MC4yNCAxMTIuNjggMTkyLjQgMTE0LjQ4IDE5NC45MkMxMTQuNDggMTk0LjkyIDExMi42OCAxOTcuMDggMTEzLjA0IDIwMC42OEwxMTkuODggMjA0LjI4QzExOS44OCAyMDQuMjggMTIxLjY4IDIxNy4yNCAxMzEuNCAyMjEuOTJDMTM1Ljc1MiAyMjQuMDE1IDEzOC42IDIxNy45NiAxNDAuNCAyMTIuNTZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZWI5NTVjIj4KKyAgPHBhdGggZD0iTTE0OC45NSAxNTcuMzlDMTQ3Ljg2IDE1Ni41MyAxNDAuMzcgMTUwLjc2IDEzNC41MiAxNTdDMTM0LjUyIDE1NyAxMjQuMzggMTc0LjU1IDEyNS4xNiAxODAuNzlMMTI1LjE2IDE4Mi43NEMxMjUuMTYgMTgyLjc0IDExNy43NSAxODIuMzUgMTE2LjE5IDE4NC4zQzExNi4xOSAxODQuMyAxMTUuMDIgMTg5LjM3IDExMy44NSAxODkuNzZDMTEzLjg1IDE4OS43NiAxMTEuMTIgMTkyLjEgMTEzLjA3IDE5NC44M0MxMTMuMDcgMTk0LjgzIDExMS4xMiAxOTcuMTcgMTExLjUxIDIwMS4wN0wxMTguOTIgMjA0Ljk3QzExOC45MiAyMDQuOTcgMTIwLjg3IDIxOS4wMSAxMzEuNCAyMjQuMDhDMTM2LjExNCAyMjYuMzUgMTM5LjIgMjE5Ljc5IDE0MS4xNSAyMTMuOTRDMTQxLjE1IDIxMy45NCAxMzguMDMgMTkzLjI3IDE0MC4zNyAxODguOThDMTQwLjM3IDE4OC45OCAxNTAuOSAxNzkuMjMgMTUwLjUxIDE3NS43MkMxNTAuNTEgMTc1LjcyIDE1MC4xMiAxNTguMTcgMTQ4Ljk1IDE1Ny4zOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmMmI4OTIiPgorICA8cGF0aCBkPSJNMTQ4LjUgMTU4LjM4QzE0Ny41MiAxNTcuNDYgMTQwLjE0IDE1MS45MiAxMzQuNDQgMTU4QzEzNC40NCAxNTggMTI0LjU2IDE3NS4xIDEyNS4zMiAxODEuMThMMTI1LjMyIDE4My4wOEMxMjUuMzIgMTgzLjA4IDExOC4xIDE4Mi43IDExNi41OCAxODQuNkMxMTYuNTggMTg0LjYgMTE1LjQ0IDE4OS41NCAxMTQuMyAxODkuOTJDMTE0LjMgMTg5LjkyIDExMS42NCAxOTIuMiAxMTMuNTQgMTk0Ljg2QzExMy41NCAxOTQuODYgMTExLjY0IDE5Ny4xNCAxMTIuMDIgMjAwLjk0TDExOS4yNCAyMDQuNzRDMTE5LjI0IDIwNC43NCAxMjEuMTQgMjE4LjQyIDEzMS40IDIyMy4zNkMxMzUuOTk0IDIyNS41NzIgMTM5IDIxOS4xOCAxNDAuOSAyMTMuNDhDMTQwLjkgMjEzLjQ4IDEzNy44NiAxOTMuMzQgMTQwLjE0IDE4OS4xNkMxNDAuMTQgMTg5LjE2IDE1MC40IDE3OS42NiAxNTAuMDIgMTc2LjI0QzE1MC4wMiAxNzYuMjQgMTQ5LjY0IDE1OS4xNCAxNDguNSAxNTguMzh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZjhkY2M4Ij4KKyAgPHBhdGggZD0iTTE0OC4wNSAxNTkuMzdDMTQ3LjE4IDE1OC4zOSAxMzkuOTEgMTUzLjA4IDEzNC4zNiAxNTlDMTM0LjM2IDE1OSAxMjQuNzQgMTc1LjY1IDEyNS40OCAxODEuNTdMMTI1LjQ4IDE4My40MkMxMjUuNDggMTgzLjQyIDExOC40NSAxODMuMDUgMTE2Ljk3IDE4NC45QzExNi45NyAxODQuOSAxMTUuODYgMTg5LjcxIDExNC43NSAxOTAuMDhDMTE0Ljc1IDE5MC4wOCAxMTIuMTYgMTkyLjMgMTE0LjAxIDE5NC44OUMxMTQuMDEgMTk0Ljg5IDExMi4xNiAxOTcuMTEgMTEyLjUzIDIwMC44MUwxMTkuNTYgMjA0LjUxQzExOS41NiAyMDQuNTEgMTIxLjQxIDIxNy44MyAxMzEuNCAyMjIuNjRDMTM1Ljg3MyAyMjQuNzk0IDEzOC44IDIxOC41NyAxNDAuNjUgMjEzLjAyQzE0MC42NSAyMTMuMDIgMTM3LjY5IDE5My40MSAxMzkuOTEgMTg5LjM0QzEzOS45MSAxODkuMzQgMTQ5LjkgMTgwLjA5IDE0OS41MyAxNzYuNzZDMTQ5LjUzIDE3Ni43NiAxNDkuMTYgMTYwLjExIDE0OC4wNSAxNTkuMzd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTE0MC40IDIxMi40NkMxNDAuNCAyMTIuNDYgMTM3LjUyIDE5My40OCAxMzkuNjggMTg5LjUyQzEzOS42OCAxODkuNTIgMTQ5LjQgMTgwLjUyIDE0OS4wNCAxNzcuMjhDMTQ5LjA0IDE3Ny4yOCAxNDguNjggMTYxLjA4IDE0Ny42IDE2MC4zNkMxNDYuODQgMTU5LjMyIDEzOS42OCAxNTQuMjQgMTM0LjI4IDE2MEMxMzQuMjggMTYwIDEyNC45MiAxNzYuMiAxMjUuNjQgMTgxLjk2TDEyNS42NCAxODMuNzZDMTI1LjY0IDE4My43NiAxMTguOCAxODMuNCAxMTcuMzYgMTg1LjJDMTE3LjM2IDE4NS4yIDExNi4yOCAxODkuODggMTE1LjIgMTkwLjI0QzExNS4yIDE5MC4yNCAxMTIuNjggMTkyLjQgMTE0LjQ4IDE5NC45MkMxMTQuNDggMTk0LjkyIDExMi42OCAxOTcuMDggMTEzLjA0IDIwMC42OEwxMTkuODggMjA0LjI4QzExOS44OCAyMDQuMjggMTIxLjY4IDIxNy4yNCAxMzEuNCAyMjEuOTJDMTM1Ljc1MiAyMjQuMDE1IDEzOC42IDIxNy44NiAxNDAuNCAyMTIuNDZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTEzNy4zIDIwNi4yQzEzNy4zIDIwNi4yIDExNS43IDE5NiAxMTQuOCAxOTUuMkMxMTQuOCAxOTUuMiAxMjMuOSAyMDMuNCAxMjQuNyAyMDMuNEMxMjUuNSAyMDMuNCAxMzcuMyAyMDYuMiAxMzcuMyAyMDYuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTIwLjIgMjAwQzEyMC4yIDIwMCAxMzguNiAyMDMuNiAxMzguNiAyMDhDMTM4LjYgMjEwLjkxMiAxMzguMzU3IDIyNC4zMzEgMTMzIDIyMi44QzEyNC42IDIyMC40IDEyOC4yIDIwNiAxMjAuMiAyMDB6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjOTljYzMyIj4KKyAgPHBhdGggZD0iTTEyOC42IDIwMy44QzEyOC42IDIwMy44IDEzNy41NzggMjA1LjI3NCAxMzguNiAyMDhDMTM5LjIgMjA5LjYgMTM5Ljg2MyAyMTcuOTA4IDEzNC40IDIxOUMxMjkuODQ4IDIxOS45MTEgMTI3LjYxOCAyMDkuNjkgMTI4LjYgMjAzLjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIxNC41OTUgMjQ2LjM0OUMyMTQuMDk4IDI0NC42MDcgMjE1LjQwOSAyNDQuNzM4IDIxNy4yIDI0NC4yQzIxOS4yIDI0My42IDIzMS40IDIzOS44IDIzMi4yIDIzNy4yQzIzMyAyMzQuNiAyNDYuMiAyMzkgMjQ2LjIgMjM5QzI0OCAyMzkuOCAyNTIuNCAyNDIuNCAyNTIuNCAyNDIuNEMyNTcuMiAyNDMuNiAyNjMuOCAyNDQgMjYzLjggMjQ0QzI2Ni4yIDI0NSAyNjkuNiAyNDcuOCAyNjkuNiAyNDcuOEMyODQuMiAyNTggMjk2LjYwMSAyNTAuOCAyOTYuNjAxIDI1MC44QzMxNi42MDEgMjQ0LjIgMzEwLjYwMSAyMjcgMzEwLjYwMSAyMjdDMzA3LjYwMSAyMTggMzEwLjgwMSAyMTQuNiAzMTAuODAxIDIxNC42QzMxMS4wMDEgMjEwLjggMzE4LjIwMSAyMTcuMiAzMTguMjAxIDIxNy4yQzMyMC44MDEgMjIxLjQgMzIxLjYwMSAyMjYuNCAzMjEuNjAxIDIyNi40QzMyOS42MDEgMjM3LjYgMzI2LjIwMSAyMTkuOCAzMjYuMjAxIDIxOS44QzMyNi40MDEgMjE4LjggMzIzLjYwMSAyMTUuMiAzMjMuNjAxIDIxNEMzMjMuNjAxIDIxMi44IDMyMS44MDEgMjA5LjQgMzIxLjgwMSAyMDkuNEMzMTguODAxIDIwNiAzMjEuMjAxIDE5OSAzMjEuMjAxIDE5OUMzMjMuMDAxIDE4NS4yIDMyMC44MDEgMTg3IDMyMC44MDEgMTg3QzMxOS42MDEgMTg1LjIgMzEwLjQwMSAxOTUuMiAzMTAuNDAxIDE5NS4yQzMwOC4yMDEgMTk4LjYgMzAyLjIwMSAyMDAuMiAzMDIuMjAxIDIwMC4yQzI5OS40MDEgMjAyIDI5Ni4wMDEgMjAwLjYgMjk2LjAwMSAyMDAuNkMyOTMuNDAxIDIwMC4yIDI4Ny44MDEgMjA3LjIgMjg3LjgwMSAyMDcuMkMyOTAuNjAxIDIwNyAyOTMuMDAxIDIxMS40IDI5NS40MDEgMjExLjZDMjk3LjgwMSAyMTEuOCAyOTkuNjAxIDIwOS4yIDMwMS4yMDEgMjA4LjZDMzAyLjgwMSAyMDggMzA1LjYwMSAyMTMuOCAzMDUuNjAxIDIxMy44QzMwNi4wMDEgMjE2LjQgMzAwLjQwMSAyMjEuMiAzMDAuNDAxIDIyMS4yQzMwMC4wMDEgMjI1LjggMjk4LjQwMSAyMjQuMiAyOTguNDAxIDIyNC4yQzI5NS40MDEgMjIzLjYgMjk0LjIwMSAyMjcuNCAyOTMuMjAxIDIzMkMyOTIuMjAxIDIzNi42IDI4OC4wMDEgMjM3IDI4OC4wMDEgMjM3QzI4Ni40MDEgMjQ0LjQgMjg1LjIgMjQxLjQgMjg1LjIgMjQxLjRDMjg1IDIzNS44IDI3OSAyNDEuNiAyNzkgMjQxLjZDMjc3LjggMjQzLjYgMjczLjIgMjQxLjQgMjczLjIgMjQxLjRDMjY2LjQgMjM5LjQgMjY4LjggMjM3LjQgMjY4LjggMjM3LjRDMjcwLjYgMjM1LjIgMjgxLjggMjM3LjQgMjgxLjggMjM3LjRDMjg0IDIzNS44IDI3NiAyMzEuOCAyNzYgMjMxLjhDMjc1LjQgMjMwIDI3Ni40IDIyNS42IDI3Ni40IDIyNS42QzI3Ny42IDIyMi40IDI4NC40IDIxNi44IDI4NC40IDIxNi44QzI5My44MDEgMjE1LjYgMjkxLjAwMSAyMTQgMjkxLjAwMSAyMTRDMjg0LjgwMSAyMDguOCAyNzkgMjE2LjQgMjc5IDIxNi40QzI3Ni44IDIyMi42IDI1OS40IDIzNy42IDI1OS40IDIzNy42QzI1NC42IDI0MSAyNTcuMiAyMzQuMiAyNTMuMiAyMzcuNkMyNDkuMiAyNDEgMjI4LjYgMjMyIDIyOC42IDIzMkMyMTcuMDM4IDIzMC44MDcgMjE0LjMwNiAyNDYuNTQ5IDIxMC43NzcgMjQzLjQyOUMyMTAuNzc3IDI0My40MjkgMjE2LjE5NSAyNTEuOTQ5IDIxNC41OTUgMjQ2LjM0OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNNDA5LjQwMSA4MEM0MDkuNDAxIDgwIDM4My44MDEgODggMzgxLjAwMSAxMDYuOEMzODEuMDAxIDEwNi44IDM3OC42MDEgMTI5LjYgMzk5LjAwMSAxNDcuMkMzOTkuMDAxIDE0Ny4yIDM5OS40MDEgMTUzLjYgNDAxLjQwMSAxNTYuOEM0MDEuNDAxIDE1Ni44IDM5OS44MDEgMTYxLjYgNDE4LjYwMSAxNTRMNDQ1LjgwMSAxNDUuNkM0NDUuODAxIDE0NS42IDQ1Mi4yMDEgMTQzLjIgNDU3LjQwMSAxMzQuNEM0NjIuNjAxIDEyNS42IDQ3Ny44MDEgMTA2LjggNDc0LjIwMSA4MS42QzQ3NC4yMDEgODEuNiA0NzUuNDAxIDcwLjQgNDY5LjQwMSA3MEM0NjkuNDAxIDcwIDQ2MS4wMDEgNjguNCA0NTMuODAxIDc2QzQ1My44MDEgNzYgNDQ3LjAwMSA3OS4yIDQ0NC42MDEgNzguOEw0MDkuNDAxIDgweiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik00NjQuMDIyIDc5LjAxQzQ2NC4wMjIgNzkuMDEgNDY2LjEyMiA3MC4wOCA0NjEuMjgyIDc0LjkyQzQ2MS4yODIgNzQuOTIgNDU0LjI0MiA4MC42NCA0NDYuNzYxIDgwLjY0QzQ0Ni43NjEgODAuNjQgNDMyLjI0MSA4Mi44NCA0MjcuODQxIDk2LjA0QzQyNy44NDEgOTYuMDQgNDIzLjg4MSAxMjIuODggNDMxLjgwMSAxMjguNkM0MzEuODAxIDEyOC42IDQzNi42NDEgMTM2LjA4IDQ0My42ODEgMTI5LjQ4QzQ1MC43MjIgMTIyLjg4IDQ2Ni4yMjIgOTIuNjUgNDY0LjAyMiA3OS4wMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMzMjMyMzIiPgorICA8cGF0aCBkPSJNNDYzLjY0OCA3OS4zNjhDNDYzLjY0OCA3OS4zNjggNDY1LjczOCA3MC42MjQgNDYwLjk4NiA3NS4zNzZDNDYwLjk4NiA3NS4zNzYgNDU0LjA3NCA4MC45OTIgNDQ2LjcyOSA4MC45OTJDNDQ2LjcyOSA4MC45OTIgNDMyLjQ3MyA4My4xNTIgNDI4LjE1MyA5Ni4xMTJDNDI4LjE1MyA5Ni4xMTIgNDI0LjI2NSAxMjIuNDY0IDQzMi4wNDEgMTI4LjA4QzQzMi4wNDEgMTI4LjA4IDQzNi43OTMgMTM1LjQyNCA0NDMuNzA1IDEyOC45NDRDNDUwLjYxOCAxMjIuNDY0IDQ2NS44MDggOTIuNzYgNDYzLjY0OCA3OS4zNjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjNjY2NjY2Ij4KKyAgPHBhdGggZD0iTTQ2My4yNzQgNzkuNzI2QzQ2My4yNzQgNzkuNzI2IDQ2NS4zNTQgNzEuMTY4IDQ2MC42OSA3NS44MzJDNDYwLjY5IDc1LjgzMiA0NTMuOTA2IDgxLjM0NCA0NDYuNjk3IDgxLjM0NEM0NDYuNjk3IDgxLjM0NCA0MzIuNzA1IDgzLjQ2NCA0MjguNDY1IDk2LjE4NEM0MjguNDY1IDk2LjE4NCA0MjQuNjQ5IDEyMi4wNDggNDMyLjI4MSAxMjcuNTZDNDMyLjI4MSAxMjcuNTYgNDM2Ljk0NSAxMzQuNzY4IDQ0My43MjkgMTI4LjQwOEM0NTAuNTE0IDEyMi4wNDggNDY1LjM5NCA5Mi44NyA0NjMuMjc0IDc5LjcyNnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTk5OTkiPgorICA8cGF0aCBkPSJNNDYyLjkgODAuMDg0QzQ2Mi45IDgwLjA4NCA0NjQuOTcgNzEuNzEyIDQ2MC4zOTQgNzYuMjg4QzQ2MC4zOTQgNzYuMjg4IDQ1My43MzggODEuNjk2IDQ0Ni42NjUgODEuNjk2QzQ0Ni42NjUgODEuNjk2IDQzMi45MzcgODMuNzc2IDQyOC43NzcgOTYuMjU2QzQyOC43NzcgOTYuMjU2IDQyNS4wMzMgMTIxLjYzMiA0MzIuNTIxIDEyNy4wNEM0MzIuNTIxIDEyNy4wNCA0MzcuMDk3IDEzNC4xMTIgNDQzLjc1MyAxMjcuODcyQzQ1MC40MSAxMjEuNjMyIDQ2NC45OCA5Mi45OCA0NjIuOSA4MC4wODR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQ2Mi41MjYgODAuNDQyQzQ2Mi41MjYgODAuNDQyIDQ2NC41ODYgNzIuMjU2IDQ2MC4wOTggNzYuNzQ0QzQ2MC4wOTggNzYuNzQ0IDQ1My41NjkgODIuMDQ4IDQ0Ni42MzMgODIuMDQ4QzQ0Ni42MzMgODIuMDQ4IDQzMy4xNjkgODQuMDg4IDQyOS4wODkgOTYuMzI4QzQyOS4wODkgOTYuMzI4IDQyNS40MTcgMTIxLjIxNiA0MzIuNzYxIDEyNi41MkM0MzIuNzYxIDEyNi41MiA0MzcuMjQ5IDEzMy40NTYgNDQzLjc3NyAxMjcuMzM2QzQ1MC4zMDUgMTIxLjIxNiA0NjQuNTY2IDkzLjA5IDQ2Mi41MjYgODAuNDQyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZiI+CisgIDxwYXRoIGQ9Ik00NjIuMTUxIDgwLjhDNDYyLjE1MSA4MC44IDQ2NC4yMDEgNzIuOCA0NTkuODAxIDc3LjJDNDU5LjgwMSA3Ny4yIDQ1My40MDEgODIuNCA0NDYuNjAxIDgyLjRDNDQ2LjYwMSA4Mi40IDQzMy40MDEgODQuNCA0MjkuNDAxIDk2LjRDNDI5LjQwMSA5Ni40IDQyNS44MDEgMTIwLjggNDMzLjAwMSAxMjZDNDMzLjAwMSAxMjYgNDM3LjQwMSAxMzIuOCA0NDMuODAxIDEyNi44QzQ1MC4yMDEgMTIwLjggNDY0LjE1MSA5My4yIDQ2Mi4xNTEgODAuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTI2MDAiPgorICA8cGF0aCBkPSJNMjUwLjYgMjg0QzI1MC42IDI4NCAyMzAuMiAyNjQuOCAyMjIuMiAyNjRDMjIyLjIgMjY0IDE4Ny44IDI2MCAxNzMgMjc4QzE3MyAyNzggMTkwLjYgMjU3LjYgMjE4LjIgMjYzLjJDMjE4LjIgMjYzLjIgMTk2LjYgMjU4LjggMTg0LjIgMjYyQzE4NC4yIDI2MiAxNjcuNCAyNjIgMTU3LjggMjc2TDE1NSAyODAuOEMxNTUgMjgwLjggMTU5IDI2NiAxNzcuNCAyNjBDMTc3LjQgMjYwIDIwMC4yIDI1NS4yIDIxMSAyNjBDMjExIDI2MCAxODkuNCAyNTMuMiAxNzkuNCAyNTUuMkMxNzkuNCAyNTUuMiAxNDkgMjUyLjggMTM2LjIgMjc5LjJDMTM2LjIgMjc5LjIgMTQwLjIgMjY0LjggMTU1IDI1Ny42QzE1NSAyNTcuNiAxNjguNiAyNDguOCAxODkgMjUxLjZDMTg5IDI1MS42IDIwMy40IDI1NC44IDIwOC42IDI1Ny4yQzIxMy44IDI1OS42IDIxMi42IDI1Ni44IDIwNC4yIDI1MkMyMDQuMiAyNTIgMTk4LjYgMjQyIDE4NC42IDI0Mi40QzE4NC42IDI0Mi40IDE0MS44IDI0NiAxMzEuNCAyNThDMTMxLjQgMjU4IDE0NSAyNDYuOCAxNTUuNCAyNDRDMTU1LjQgMjQ0IDE3Ny44IDIzNiAxODYuMiAyMzYuOEMxODYuMiAyMzYuOCAyMTEgMjM3LjggMjE4LjYgMjMzLjhDMjE4LjYgMjMzLjggMjA3LjQgMjM4LjggMjEwLjYgMjQyQzIxMy44IDI0NS4yIDIyMC42IDI1Mi44IDIyMC42IDI1NEMyMjAuNiAyNTUuMiAyNDQuOCAyNzcuMyAyNDguNCAyODEuN0wyNTAuNiAyODR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTM4OSA0NzhDMzg5IDQ3OCAzNzMuNSA0NDEuNSAzNjEgNDMyQzM2MSA0MzIgMzg3IDQ0OCAzOTAuNSA0NjZDMzkwLjUgNDY2IDM5MC41IDQ3NiAzODkgNDc4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik00MzYgNDg1LjVDNDM2IDQ4NS41IDQwOS41IDQzMC41IDM5MSA0MDYuNUMzOTEgNDA2LjUgNDM0LjUgNDQ0IDQzOS41IDQ3MC41TDQ0MCA0NzZMNDM3IDQ3My41QzQzNyA0NzMuNSA0MzYuNSA0ODIuNSA0MzYgNDg1LjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQ5Mi41IDQzN0M0OTIuNSA0MzcgNDMwIDM3Ny41IDQyOC41IDM3NUM0MjguNSAzNzUgNDg5IDQ0MSA0OTIgNDQ4LjVDNDkyIDQ0OC41IDQ5MCA0MzkuNSA0OTIuNSA0Mzd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTMwNCA0ODAuNUMzMDQgNDgwLjUgMzIzLjUgNDI4LjUgMzQyLjUgNDUxQzM0Mi41IDQ1MSAzNTcuNSA0NjEgMzU3IDQ2NEMzNTcgNDY0IDM1MyA0NTcuNSAzMzUgNDU4QzMzNSA0NTggMzE2IDQ1NSAzMDQgNDgwLjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQ5NC41IDM1M0M0OTQuNSAzNTMgNDQ5LjUgMzI0LjUgNDQyIDMyM0M0MzAuMTkzIDMyMC42MzkgNDkxLjUgMzUyIDQ5Ni41IDM2Mi41QzQ5Ni41IDM2Mi41IDQ5OC41IDM2MCA0OTQuNSAzNTN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTM0My44MDEgNDU5LjYwMUMzNDMuODAxIDQ1OS42MDEgMzY0LjIwMSA0NTcuNjAxIDM3MS4wMDEgNDUwLjgwMUwzNzUuNDAxIDQ1NC40MDFMMzkzLjAwMSA0MTYuMDAxTDM5Ni42MDEgNDIxLjIwMUMzOTYuNjAxIDQyMS4yMDEgNDExLjAwMSA0MDYuNDAxIDQxMC4yMDEgMzk4LjQwMUM0MDkuNDAxIDM5MC40MDEgNDIzLjAwMSA0MDQuNDAxIDQyMy4wMDEgNDA0LjQwMUM0MjMuMDAxIDQwNC40MDEgNDIyLjIwMSAzOTIuODAxIDQyOS40MDEgMzk5LjYwMUM0MjkuNDAxIDM5OS42MDEgNDI3LjAwMSAzODQuMDAxIDQzNS40MDEgMzkyLjAwMUM0MzUuNDAxIDM5Mi4wMDEgNDI0Ljg2NCAzNjEuODQ0IDQ0Ny40MDEgMzg3LjYwMUM0NTMuMDAxIDM5NC4wMDEgNDQ4LjYwMSAzODcuMjAxIDQ0OC42MDEgMzg3LjIwMUM0NDguNjAxIDM4Ny4yMDEgNDIyLjYwMSAzMzkuMjAxIDQ0NC4yMDEgMzUzLjYwMUM0NDQuMjAxIDM1My42MDEgNDQ2LjIwMSAzMzAuODAxIDQ0NS4wMDEgMzI2LjQwMUM0NDMuODAxIDMyMi4wMDEgNDQxLjgwMSAyOTkuNiA0MzcuMDAxIDI5NC40QzQzMi4yMDEgMjg5LjIgNDM3LjQwMSAyODcuNiA0NDMuMDAxIDI5Mi44QzQ0My4wMDEgMjkyLjggNDMxLjgwMSAyNjguOCA0NDUuMDAxIDI4MC44QzQ0NS4wMDEgMjgwLjggNDQxLjQwMSAyNjUuNiA0MzcuMDAxIDI2Mi44QzQzNy4wMDEgMjYyLjggNDMxLjQwMSAyNDUuNiA0NDYuNjAxIDI1Ni40QzQ0Ni42MDEgMjU2LjQgNDQyLjIwMSAyNDQgNDM5LjAwMSAyNDAuOEM0MzkuMDAxIDI0MC44IDQyNy40MDEgMjEzLjIgNDM0LjYwMSAyMThMNDM5LjAwMSAyMjEuNkM0MzkuMDAxIDIyMS42IDQzMi4yMDEgMjA3LjYgNDM4LjYwMSAyMTJDNDQ1LjAwMSAyMTYuNCA0NDUuMDAxIDIxNiA0NDUuMDAxIDIxNkM0NDUuMDAxIDIxNiA0MjMuODAxIDE4Mi44IDQ0NC4yMDEgMjAwLjRDNDQ0LjIwMSAyMDAuNCA0MzYuMDQyIDE4Ni40ODIgNDMyLjYwMSAxNzkuNkM0MzIuNjAxIDE3OS42IDQxMy44MDEgMTU5LjIgNDI4LjIwMSAxNjUuNkw0MzMuMDAxIDE2Ny4yQzQzMy4wMDEgMTY3LjIgNDI0LjIwMSAxNTcuMiA0MTYuMjAxIDE1NS42QzQwOC4yMDEgMTU0IDQxOC42MDEgMTQ3LjYgNDI1LjAwMSAxNDkuNkM0MzEuNDAxIDE1MS42IDQ0Ny4wMDEgMTU5LjIgNDQ3LjAwMSAxNTkuMkM0NDcuMDAxIDE1OS4yIDQ1OS44MDEgMTc4IDQ2My44MDEgMTc4LjRDNDYzLjgwMSAxNzguNCA0NDMuODAxIDE3MC44IDQ0OS44MDEgMTc4LjhDNDQ5LjgwMSAxNzguOCA0NjQuMjAxIDE5Mi44IDQ1Ny4wMDEgMTkyLjRDNDU3LjAwMSAxOTIuNCA0NTEuMDAxIDE5OS42IDQ1NS44MDEgMjA4LjRDNDU1LjgwMSAyMDguNCA0MzcuMzQyIDE5MC4wMDkgNDUyLjIwMSAyMTUuNkw0NTkuMDAxIDIzMkM0NTkuMDAxIDIzMiA0MzQuNjAxIDIwNy4yIDQ0NS44MDEgMjI5LjJDNDQ1LjgwMSAyMjkuMiA0NjMuMDAxIDI1Mi44IDQ2NS4wMDEgMjUzLjJDNDY3LjAwMSAyNTMuNiA0NzEuNDAxIDI2Mi40IDQ3MS40MDEgMjYyLjRMNDY3LjAwMSAyNjAuNEw0NzIuMjAxIDI2OS4yQzQ3Mi4yMDEgMjY5LjIgNDYxLjAwMSAyNTcuMiA0NjcuMDAxIDI3MC40TDQ3Mi42MDEgMjg0LjhDNDcyLjYwMSAyODQuOCA0NTIuMjAxIDI2Mi44IDQ2NS44MDEgMjkyLjRDNDY1LjgwMSAyOTIuNCA0NDkuNDAxIDI4Ny4yIDQ1OC4yMDEgMzA0LjRDNDU4LjIwMSAzMDQuNCA0NTYuNjAxIDMyMC40MDEgNDU3LjAwMSAzMjUuNjAxQzQ1Ny40MDEgMzMwLjgwMSA0NTguNjAxIDM1OS4yMDEgNDU0LjIwMSAzNjcuMjAxQzQ0OS44MDEgMzc1LjIwMSA0NjAuMjAxIDM5NC40MDEgNDYyLjIwMSAzOTguNDAxQzQ2NC4yMDEgNDAyLjQwMSA0NjcuODAxIDQxMy4yMDEgNDU5LjAwMSA0MDQuMDAxQzQ1MC4yMDEgMzk0LjgwMSA0NTQuNjAxIDQwMC40MDEgNDU2LjYwMSA0MDkuMjAxQzQ1OC42MDEgNDE4LjAwMSA0NjQuNjAxIDQzMy42MDEgNDYzLjgwMSA0MzkuMjAxQzQ2My44MDEgNDM5LjIwMSA0NjIuNjAxIDQ0MC40MDEgNDU5LjQwMSA0MzYuODAxQzQ1OS40MDEgNDM2LjgwMSA0NDQuNjAxIDQxNC4wMDEgNDQ2LjIwMSA0MjguNDAxQzQ0Ni4yMDEgNDI4LjQwMSA0NDUuMDAxIDQzNi40MDEgNDQxLjgwMSA0NDUuMjAxQzQ0MS44MDEgNDQ1LjIwMSA0MzguNjAxIDQ1Ni4wMDEgNDM4LjYwMSA0NDcuMjAxQzQzOC42MDEgNDQ3LjIwMSA0MzUuNDAxIDQzMC40MDEgNDMyLjYwMSA0MzguMDAxQzQyOS44MDEgNDQ1LjYwMSA0MjYuMjAxIDQ1MS42MDEgNDIzLjQwMSA0NTQuMDAxQzQyMC42MDEgNDU2LjQwMSA0MTUuNDAxIDQzMy42MDEgNDE0LjIwMSA0NDQuMDAxQzQxNC4yMDEgNDQ0LjAwMSA0MDIuMjAxIDQzMS42MDEgMzk3LjQwMSA0NDguMDAxTDM4NS44MDEgNDY0LjQwMUMzODUuODAxIDQ2NC40MDEgMzg1LjQwMSA0NTIuMDAxIDM4NC4yMDEgNDU4LjAwMUMzODQuMjAxIDQ1OC4wMDEgMzU0LjIwMSA0NjQuMDAxIDM0My44MDEgNDU5LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMzA5LjQwMSAxMDIuOEMzMDkuNDAxIDEwMi44IDI5Ny44MDEgOTQuOCAyOTMuODAxIDk1LjJDMjg5LjgwMSA5NS42IDMyMS40MDEgODYuNCAzNjIuNjAxIDExNEMzNjIuNjAxIDExNCAzNjcuNDAxIDExNi44IDM3MS4wMDEgMTE2LjRDMzcxLjAwMSAxMTYuNCAzNzQuMjAxIDExOC44IDM3MS40MDEgMTIyLjRDMzcxLjQwMSAxMjIuNCAzNjIuNjAxIDEzMiAzNzMuODAxIDE0My4yQzM3My44MDEgMTQzLjIgMzkyLjIwMSAxNTAgMzg2LjYwMSAxNDEuMkMzODYuNjAxIDE0MS4yIDM5Ny40MDEgMTQ1LjIgMzk5LjgwMSAxNDkuMkM0MDIuMjAxIDE1My4yIDQwMS4wMDEgMTQ5LjIgNDAxLjAwMSAxNDkuMkM0MDEuMDAxIDE0OS4yIDM5NC42MDEgMTQyIDM4OC42MDEgMTM2LjhDMzg4LjYwMSAxMzYuOCAzODMuNDAxIDEzNC44IDM4MC42MDEgMTI2LjRDMzc3LjgwMSAxMTggMzc1LjQwMSAxMDggMzc5LjgwMSAxMDQuOEMzNzkuODAxIDEwNC44IDM3NS44MDEgMTA5LjIgMzc2LjYwMSAxMDUuMkMzNzcuNDAxIDEwMS4yIDM4MS4wMDEgOTcuNiAzODIuNjAxIDk3LjJDMzg0LjIwMSA5Ni44IDQwMC42MDEgODEgNDA3LjQwMSA4MC42QzQwNy40MDEgODAuNiAzOTguMjAxIDgyIDM5NS4yMDEgODFDMzkyLjIwMSA4MCAzNjUuNjAxIDY4LjYgMzU5LjYwMSA2Ny40QzM1OS42MDEgNjcuNCAzNDIuODAxIDYwLjggMzU0LjgwMSA2Mi44QzM1NC44MDEgNjIuOCAzOTAuNjAxIDY2LjYgNDA4LjgwMSA3OS44QzQwOC44MDEgNzkuOCA0MDEuNjAxIDcxLjQgMzgzLjIwMSA2NC40QzM4My4yMDEgNjQuNCAzNjEuMDAxIDUxLjggMzI1LjgwMSA1Ni44QzMyNS44MDEgNTYuOCAzMDguMDAxIDYwIDMwMC4yMDEgNjEuOEMzMDAuMjAxIDYxLjggMjk3LjYwMSA2MS4yIDI5Ny4wMDEgNjAuOEMyOTYuNDAxIDYwLjQgMjg0LjYgNTEuNCAyNTcgNTguNEMyNTcgNTguNCAyNDAgNjMgMjMxLjQgNjcuOEMyMzEuNCA2Ny44IDIxNi4yIDY5IDIxMi42IDcyLjJDMjEyLjYgNzIuMiAxOTQgODYuOCAxOTIgODcuNkMxOTAgODguNCAxNzguNiA5NiAxNzcuOCA5Ni40QzE3Ny44IDk2LjQgMjAyLjQgODkuOCAyMDQuOCA4Ny40QzIwNy4yIDg1IDIyNC42IDgyLjQgMjI3IDgzLjhDMjI5LjQgODUuMiAyMzcuOCA4NC42IDIyOC4yIDg1LjJDMjI4LjIgODUuMiAzMDMuODAxIDEwMCAzMDQuNjAxIDEwMkMzMDUuNDAxIDEwNCAzMDkuNDAxIDEwMi44IDMwOS40MDEgMTAyLjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTM4MC44MDEgOTMuNkMzODAuODAxIDkzLjYgMzcwLjYwMSA4Ni4yIDM2OC42MDEgODYuMkMzNjYuNjAxIDg2LjIgMzU0LjIwMSA3NiAzNTAuMDAxIDc2LjRDMzQ1LjgwMSA3Ni44IDMzMy42MDEgNjYuOCAzMDYuMjAxIDc1QzMwNi4yMDEgNzUgMzA1LjYwMSA3MyAzMDkuMjAxIDcyLjJDMzA5LjIwMSA3Mi4yIDMxNS42MDEgNzAgMzE2LjAwMSA2OS40QzMxNi4wMDEgNjkuNCAzMzYuMjAxIDY1LjIgMzQzLjQwMSA2OC44QzM0My40MDEgNjguOCAzNTIuNjAxIDcxLjQgMzU4LjgwMSA3Ny42QzM1OC44MDEgNzcuNiAzNzAuMDAxIDgwLjggMzczLjIwMSA3OS44QzM3My4yMDEgNzkuOCAzODIuMDAxIDgyIDM4Mi40MDEgODMuOEMzODIuNDAxIDgzLjggMzg4LjIwMSA4Ni44IDM4Ni40MDEgODkuNEMzODYuNDAxIDg5LjQgMzg2LjgwMSA5MSAzODAuODAxIDkzLjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTM2OC4zMyA5MS40OTFDMzY5LjEzNyA5Mi4xMjMgMzcwLjE1NiA5Mi4yMjEgMzcwLjc2MSA5My4wM0MzNzAuOTk1IDkzLjM0NCAzNzAuNzA2IDkzLjY3IDM3MC4zOTEgOTMuNzY3QzM2OS4zNDggOTQuMDg0IDM2OC4yOTIgOTMuNTE0IDM2Ny4xNSA5NC4xMDJDMzY2Ljc0OCA5NC4zMDkgMzY2LjEwNiA5NC4xMjcgMzY1LjU1MyA5My45NzhDMzYzLjkyMSA5My41MzcgMzYyLjA5MiA5My41MTIgMzYwLjQwMSA5NC4yQzM1OC40MTYgOTMuMDcxIDM1Ni4wNTYgOTMuNjU1IDM1My45NzUgOTIuNjU0QzM1My45MTcgOTIuNjI3IDM1My42OTUgOTIuOTczIDM1My42MjEgOTIuOTQ2QzM1MC41NzUgOTEuODAxIDM0Ni44MzIgOTIuMDg0IDM0NC40MDEgODkuOEMzNDEuOTczIDg5LjM4OCAzMzkuNjE2IDg4LjkyNiAzMzcuMTg4IDg4LjI0NkMzMzUuMzcgODcuNzM3IDMzMy45NjEgODYuNzQ4IDMzMi4zNDEgODUuOTE2QzMzMC45NjQgODUuMjA4IDMyOS41MDcgODQuNjg2IDMyNy45NzMgODQuMzE0QzMyNi4xMSA4My44NjIgMzI0LjI3OSA4My45NzQgMzIyLjM4NiA4My40NTRDMzIyLjI5MyA4My40MjkgMzIyLjEwMSA4My43NzMgMzIyLjAxOSA4My43NDZDMzIxLjY5NSA4My42MzggMzIxLjQwNSA4My4wNTUgMzIxLjIzNCA4My4xMDhDMzE5LjU1MyA4My42MyAzMTguMDY1IDgyLjY1OCAzMTYuNDAxIDgzQzMxNS4yMjMgODEuNzc2IDMxMy40OTUgODIuMDIxIDMxMS45NDkgODEuNTc5QzMwOC45ODUgODAuNzMxIDMwNS44MzEgODIuMDAxIDMwMi44MDEgODFDMzA2LjkxNCA3OS4xNTggMzExLjYwMSA4MC4zOSAzMTUuNjYzIDc4LjMyMUMzMTcuOTkxIDc3LjEzNSAzMjAuNjUzIDc4LjIzNyAzMjMuMjIzIDc3LjQ3N0MzMjMuNzEgNzcuMzMzIDMyNC40MDEgNzcuMTMxIDMyNC44MDEgNzcuOEMzMjQuOTM1IDc3LjY2NSAzMjUuMTE3IDc3LjQyNiAzMjUuMTc1IDc3LjQ1NEMzMjcuNjI1IDc4LjYxMSAzMjkuOTQgNzkuODg1IDMzMi40MjIgODAuOTUxQzMzMi43NjMgODEuMDk3IDMzMy4yOTUgODAuODY1IDMzMy41NDcgODEuMDY3QzMzNS4wNjcgODIuMjgzIDMzNy4wMSA4Mi4xOCAzMzguNDAxIDgzLjRDMzQwLjA5OSA4Mi44OTggMzQxLjg5MiA4My4yNzggMzQzLjYyMSA4Mi42NTRDMzQzLjY5OCA4Mi42MjcgMzQzLjkzMiA4Mi45NjggMzQzLjk2NSA4Mi45NDZDMzQ1LjA5NSA4Mi4xOTggMzQ2LjI1IDgyLjQ2OSAzNDcuMTQyIDgyLjc3M0MzNDcuNDggODIuODg4IDM0OC4xNDMgODMuMTM1IDM0OC40NDggODMuMjA5QzM0OS41NzQgODMuNDg1IDM1MC40MyA4My45NjUgMzUxLjYwOSA4NC4xNDhDMzUxLjcyMyA4NC4xNjYgMzUxLjkwOCA4My44MjYgMzUxLjk4IDgzLjg1NEMzNTMuMTAzIDg0LjI5MiAzNTQuMTQ1IDg0LjIzNiAzNTQuODAxIDg1LjRDMzU0LjkzNiA4NS4yNjUgMzU1LjEwMSA4NS4wMjcgMzU1LjE4MyA4NS4wNTRDMzU2LjIxIDg1LjM5MiAzNTYuODU5IDg2LjE0NyAzNTcuOTYgODYuMzg4QzM1OC40NDUgODYuNDk0IDM1OS4wNTcgODcuMTIgMzU5LjYzMyA4Ny4yOTZDMzYyLjAyNSA4OC4wMjcgMzYzLjg2OCA4OS41NTYgMzY2LjA2MiA5MC40NTFDMzY2LjgyMSA5MC43NjEgMzY3LjY5NyA5MC45OTUgMzY4LjMzIDkxLjQ5MXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNMjkxLjY5NiA3Ny4yNjFDMjg5LjE3OCA3NS41MzYgMjg2LjgxIDc0LjQzIDI4NC4zNjggNzIuNjQ0QzI4NC4xODcgNzIuNTExIDI4My44MjcgNzIuNjgxIDI4My42MjUgNzIuNTU5QzI4Mi42MTggNzEuOTUgMjgxLjczIDcxLjM2OSAyODAuNzQ4IDcwLjY3M0MyODAuMjA5IDcwLjI5MSAyNzkuMzg4IDcwLjMwMiAyNzguODggNzAuMDQ0QzI3Ni4zMzYgNjguNzUyIDI3My43MDcgNjguMTk0IDI3MS4yIDY3QzI3MS44ODIgNjYuMzYyIDI3My4wMDQgNjYuNjA2IDI3My42IDY1LjhDMjczLjc5NSA2Ni4wOCAyNzQuMDMzIDY2LjM2NCAyNzQuMzg2IDY2LjE3M0MyNzYuMDY0IDY1LjI2OSAyNzcuOTE0IDY1LjExNiAyNzkuNTkgNjUuMjA2QzI4MS4yOTQgNjUuMjk4IDI4My4wMTQgNjUuNjAzIDI4NC43ODkgNjUuODc1QzI4NS4wOTYgNjUuOTIyIDI4NS4yOTUgNjYuNDQ1IDI4NS42MTggNjYuNTQyQzI4Ny44NDYgNjcuMjA1IDI5MC4yMzUgNjYuNjggMjkyLjM1NCA2Ny41MThDMjkzLjk0NSA2OC4xNDcgMjk1LjUxNSA2OC45NyAyOTYuNzU0IDcwLjI0NUMyOTcuMDA2IDcwLjUwNSAyOTYuNjgxIDcwLjgwNiAyOTYuNDAxIDcxQzI5Ni43ODkgNzAuODkxIDI5Ny4wNjIgNzEuMDk3IDI5Ny4xNzMgNzEuNDFDMjk3LjI1NyA3MS42NDkgMjk3LjI1NyA3MS45NTEgMjk3LjE3MyA3Mi4xOUMyOTcuMDYxIDcyLjUwMiAyOTYuNzgyIDcyLjYwMyAyOTYuNDA4IDcyLjY1NEMyOTUuMDAxIDcyLjg0NCAyOTYuNzczIDcxLjQ2NCAyOTYuMDczIDcxLjkxMkMyOTQuOCA3Mi43MjYgMjk1LjU0NiA3NC4xMzIgMjk0LjgwMSA3NS40QzI5NC41MjEgNzUuMjA2IDI5NC4yOTEgNzQuOTg4IDI5NC40MDEgNzQuNkMyOTQuNjM1IDc1LjEyMiAyOTQuMDMzIDc1LjQxMiAyOTMuODY1IDc1LjcyOEMyOTMuNDggNzYuNDUzIDI5Mi41ODEgNzcuODY4IDI5MS42OTYgNzcuMjYxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yNTkuMTk4IDg0LjYwOUMyNTYuMDQ0IDgzLjgxNSAyNTIuOTk0IDgzLjkzIDI0OS45NzggODIuNjU0QzI0OS45MTEgODIuNjI2IDI0OS42ODggODIuOTczIDI0OS42MjQgODIuOTQ2QzI0OC4yNTggODIuMzUyIDI0Ny4zNCA4MS4zODYgMjQ2LjI2NCA4MC4zNEMyNDUuMzUxIDc5LjQ1MiAyNDMuNjkzIDc5LjgzOSAyNDIuNDE5IDc5LjM1MkMyNDIuMDk1IDc5LjIyOCAyNDEuODkyIDc4LjcxNiAyNDEuNTkxIDc4LjY3N0MyNDAuMzcyIDc4LjUyIDIzOS40NDUgNzcuNTcxIDIzOC40IDc3QzI0MC43MzYgNzYuMjA1IDI0My4xNDcgNzYuMjM2IDI0NS42MDkgNzUuODUyQzI0NS43MjIgNzUuODM0IDI0NS44NjcgNzYuMTU1IDI0NiA3Ni4xNTVDMjQ2LjEzNiA3Ni4xNTUgMjQ2LjI2NiA3NS45MzQgMjQ2LjQgNzUuOEMyNDYuNTk1IDc2LjA4IDI0Ni44OTcgNzYuNDA2IDI0Ny4xNTQgNzYuMTUyQzI0Ny43MDIgNzUuNjEyIDI0OC4yNTggNzUuODAyIDI0OC43OTggNzUuODQyQzI0OC45NDIgNzUuODUyIDI0OS4wNjcgNzYuMTU1IDI0OS4yIDc2LjE1NUMyNDkuMzM2IDc2LjE1NSAyNDkuNDY3IDc1Ljg0NCAyNDkuNiA3NS44NDRDMjQ5LjczNiA3NS44NDUgMjQ5Ljg2NyA3Ni4xNTUgMjUwIDc2LjE1NUMyNTAuMTM2IDc2LjE1NSAyNTAuMjY2IDc1LjkzNCAyNTAuNCA3NS44QzI1MS4wOTIgNzYuNTgyIDI1MS45NzcgNzYuMDI4IDI1Mi43OTkgNzYuMjA3QzI1My44MzcgNzYuNDM0IDI1NC4xMDQgNzcuNTgyIDI1NS4xNzggNzcuODhDMjU5Ljg5MyA3OS4xODQgMjY0LjAzIDgxLjMyOSAyNjguMzkzIDgzLjQxNkMyNjguNyA4My41NjMgMjY4LjkxIDgzLjgxMSAyNjguOCA4NC4yQzI2OS4wNjcgODQuMiAyNjkuMzggODQuMTEyIDI2OS41NyA4NC4yNDRDMjcwLjYyOCA4NC45NzYgMjcxLjY2OSA4NS41MjQgMjcyLjM2NiA4Ni42MjJDMjcyLjU4MiA4Ni45NjEgMjcyLjI1MyA4Ny4zNjggMjcyLjAyIDg3LjMxNkMyNjcuNTkxIDg2LjMyMSAyNjMuNTg1IDg1LjcxMyAyNTkuMTk4IDg0LjYwOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNMjQ1LjMzOCAxMjguODIxQzI0My43NDYgMTI3LjYwMiAyNDMuMTYyIDEyNS41NzEgMjQyLjAzNCAxMjMuNzc5QzI0MS44MiAxMjMuNDM5IDI0Mi4wOTQgMTIzLjEyNSAyNDIuNDExIDEyMy4wMzZDMjQyLjk3MSAxMjIuODc3IDI0My41MTQgMTIzLjM1NSAyNDMuOTIzIDEyMy41NTdDMjQ1LjY2OCAxMjQuNDE5IDI0Ny4yMDMgMTI1LjY2MSAyNDkuMiAxMjUuOEMyNTEuMTkgMTI4LjAzNCAyNTUuNDUgMTI4LjQxOSAyNTUuNDU3IDEzMS44QzI1NS40NTggMTMyLjY1OSAyNTQuMDMgMTMxLjc0MSAyNTMuNiAxMzIuNkMyNTEuMTQ5IDEzMS41OTcgMjQ4Ljc2IDEzMS43IDI0Ni4zOCAxMzAuMjMzQzI0NS43NjMgMTI5Ljg1MiAyNDYuMDkzIDEyOS4zOTkgMjQ1LjMzOCAxMjguODIxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yMTcuOCA3Ni4yNDRDMjE3LjkzNSA3Ni4yNDUgMjI0Ljk2NiA3Ni40NzggMjI0Ljk0OSA3Ni41OTJDMjI0LjkwNCA3Ni45MDEgMjE3LjE3NCA3Ny45NSAyMTYuODEgNzcuNzhDMjE2LjY0NiA3Ny43MDQgMjA5LjEzNCA4MC4xMzQgMjA5IDgwQzIwOS4yNjggNzkuODY1IDIxNy41MzQgNzYuMjQ0IDIxNy44IDc2LjI0NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjMzLjIgODZDMjMzLjIgODYgMjE4LjQgODcuOCAyMTQgODlDMjA5LjYgOTAuMiAxOTEgOTcuOCAxODggOTkuOEMxODggOTkuOCAxNzQuNiAxMDUuMiAxNTcuNiAxMjUuMkMxNTcuNiAxMjUuMiAxNjUuMiAxMjEuOCAxNjcuNCAxMTlDMTY3LjQgMTE5IDE4MSAxMDYuNCAxODAuOCAxMDlDMTgwLjggMTA5IDE5MyAxMDAuNCAxOTIuNCAxMDIuNkMxOTIuNCAxMDIuNiAyMTYuOCA5MS40IDIxNC44IDk0LjZDMjE0LjggOTQuNiAyMzYuNCA5MCAyMzUuNCA5MkMyMzUuNCA5MiAyNTQuMiA5Ni40IDI1MS40IDk2LjZDMjUxLjQgOTYuNiAyNDUuNiA5Ny44IDI1MiAxMDEuNEMyNTIgMTAxLjQgMjQ4LjYgMTA1LjggMjQzLjIgMTAxLjhDMjM3LjggOTcuOCAyNDAuOCAxMDAgMjM1LjggMTAxQzIzNS44IDEwMSAyMzMuMiAxMDEuOCAyMjguNiA5Ny44QzIyOC42IDk3LjggMjIzIDkzLjIgMjE0LjIgOTYuOEMyMTQuMiA5Ni44IDE4My42IDEwOS40IDE4MS42IDExMEMxODEuNiAxMTAgMTc4IDExMi44IDE3NS42IDExNi40QzE3NS42IDExNi40IDE2OS44IDEyMC44IDE2Ni44IDEyMi4yQzE2Ni44IDEyMi4yIDE1NCAxMzMuOCAxNTIuOCAxMzUuMkMxNTIuOCAxMzUuMiAxNDkuNCAxNDAuNCAxNDguNiAxNDAuOEMxNDguNiAxNDAuOCAxNTUgMTM3IDE1NyAxMzVDMTU3IDEzNSAxNzEgMTI1IDE3Ni40IDEyNC4yQzE3Ni40IDEyNC4yIDE4MC44IDEyMS4yIDE4MS42IDExOS44QzE4MS42IDExOS44IDE5NiAxMTAuNiAyMDAuMiAxMTAuNkMyMDAuMiAxMTAuNiAyMDkuNCAxMTUuOCAyMTEuOCAxMDguOEMyMTEuOCAxMDguOCAyMTcuNiAxMDcgMjIzLjIgMTA4LjJDMjIzLjIgMTA4LjIgMjI2LjQgMTA1LjYgMjI1LjYgMTAzLjRDMjI1LjYgMTAzLjQgMjI3LjIgMTAxLjYgMjI4LjIgMTA1LjRDMjI4LjIgMTA1LjQgMjMxLjYgMTA5IDIzNi40IDEwN0MyMzYuNCAxMDcgMjQwLjQgMTA2LjggMjM4LjQgMTA5LjJDMjM4LjQgMTA5LjIgMjM0IDExMyAyMjIuMiAxMTMuMkMyMjIuMiAxMTMuMiAyMDkuOCAxMTMuOCAxOTMuNCAxMjEuNEMxOTMuNCAxMjEuNCAxNjMuNiAxMzEuOCAxNTQuNCAxNDIuMkMxNTQuNCAxNDIuMiAxNDggMTUxIDE0Mi42IDE1Mi4yQzE0Mi42IDE1Mi4yIDEzNi44IDE1MyAxMzAuOCAxNjAuNEMxMzAuOCAxNjAuNCAxNDAuNiAxNTQuNiAxNDkuNiAxNTQuNkMxNDkuNiAxNTQuNiAxNTMuNiAxNTIuMiAxNDkuOCAxNTUuOEMxNDkuOCAxNTUuOCAxNDYuMiAxNjMuNCAxNDcuOCAxNjguOEMxNDcuOCAxNjguOCAxNDcuMiAxNzQgMTQ2LjQgMTc1LjZDMTQ2LjQgMTc1LjYgMTM4LjYgMTg4LjQgMTM4LjYgMTkwLjhDMTM4LjYgMTkzLjIgMTM5LjggMjAzIDE0MC4yIDIwMy42QzE0MC42IDIwNC4yIDEzOS4yIDIwMiAxNDMgMjA0LjRDMTQ2LjggMjA2LjggMTQ5LjYgMjA4LjQgMTUwLjQgMjExLjJDMTUxLjIgMjE0IDE0OC40IDIwNS44IDE0OC4yIDIwNEMxNDggMjAyLjIgMTQzLjggMTk1IDE0NC42IDE5Mi42QzE0NC42IDE5Mi42IDE0NS42IDE5My42IDE0Ni40IDE5NUMxNDYuNCAxOTUgMTQ1LjggMTk0LjQgMTQ2LjQgMTkwLjhDMTQ2LjQgMTkwLjggMTQ3LjIgMTg1LjYgMTQ4LjYgMTgyLjRDMTUwIDE3OS4yIDE1MiAxNzUuNCAxNTIuNCAxNzQuNkMxNTIuOCAxNzMuOCAxNTIuOCAxNjggMTU0LjIgMTcwLjZMMTU3LjYgMTczLjJDMTU3LjYgMTczLjIgMTU0LjggMTcwLjYgMTU3IDE2OC40QzE1NyAxNjguNCAxNTYgMTYyLjggMTU3LjggMTYwLjJDMTU3LjggMTYwLjIgMTY0LjggMTUxLjggMTY2LjQgMTUwLjhDMTY4IDE0OS44IDE2Ni42IDE1MC4yIDE2Ni42IDE1MC4yQzE2Ni42IDE1MC4yIDE3Mi42IDE0NiAxNjYuOCAxNDcuNkMxNjYuOCAxNDcuNiAxNjIuOCAxNDkuMiAxNTkuOCAxNDkuMkMxNTkuOCAxNDkuMiAxNTIuMiAxNTEuMiAxNTYuMiAxNDdDMTYwLjIgMTQyLjggMTcwLjIgMTM3LjQgMTc0IDEzNy42TDE3NC44IDEzOS4yTDE4NiAxMzYuOEwxODQuOCAxMzcuNkMxODQuOCAxMzcuNiAxODQuNiAxMzcuNCAxODguOCAxMzdDMTkzIDEzNi42IDE5OC44IDEzOCAyMDAuMiAxMzYuMkMyMDEuNiAxMzQuNCAyMDUgMTMzLjQgMjA0LjYgMTM0LjhDMjA0LjIgMTM2LjIgMjA0IDEzOC4yIDIwNCAxMzguMkMyMDQgMTM4LjIgMjA5IDEzMi40IDIwOC40IDEzNC42QzIwNy44IDEzNi44IDE5OS42IDE0MiAxOTguMiAxNDguMkwyMDguNiAxNDBMMjEyLjIgMTM3QzIxMi4yIDEzNyAyMTUuOCAxMzkuMiAyMTYgMTM3LjZDMjE2LjIgMTM2IDIyMC44IDEzMC4yIDIyMiAxMzAuNEMyMjMuMiAxMzAuNiAyMjUuMiAxMjcuOCAyMjUgMTMwLjRDMjI0LjggMTMzIDIzMi40IDEzOC40IDIzMi40IDEzOC40QzIzMi40IDEzOC40IDIzNS42IDEzNi42IDIzNyAxMzhDMjM4LjQgMTM5LjQgMjQyLjYgMTE4LjIgMjQyLjYgMTE4LjJMMjY3LjYgMTA3LjZMMzExLjIwMSAxMDQuMkwyOTQuMjAxIDk3LjRMMjMzLjIgODZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjUxLjQgMjg1QzI1MS40IDI4NSAyMzYuNCAyNjguMiAyMjggMjY1LjZDMjI4IDI2NS42IDIxNC42IDI1OC44IDE5MCAyNjYuNiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiM0YzAwMDA7IHN0cm9rZS13aWR0aDoyIj4KKyAgPHBhdGggZD0iTTIyNC44IDI2NC4yQzIyNC44IDI2NC4yIDE5OS42IDI1Ni4yIDE4NC4yIDI2MC40QzE4NC4yIDI2MC40IDE2NS44IDI2Mi40IDE1Ny40IDI3Ni4yIi8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjIxLjIgMjYzQzIyMS4yIDI2MyAyMDQuMiAyNTUuOCAxODkuNCAyNTMuNkMxODkuNCAyNTMuNiAxNzIuOCAyNTEgMTU2LjIgMjU4LjJDMTU2LjIgMjU4LjIgMTQ0IDI2NC4yIDEzOC42IDI3NC40Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjIyLjIgMjYzLjRDMjIyLjIgMjYzLjQgMjA2LjggMjUyLjQgMjA1LjggMjUxQzIwNS44IDI1MSAxOTguOCAyNDAgMTg1LjggMjM5LjZDMTg1LjggMjM5LjYgMTY0LjQgMjQwLjQgMTQ3LjIgMjQ4LjQiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjIwLjg5NSAyNTQuNDA3QzIyMi40MzcgMjU1Ljg3IDI0OS40IDI4NC44IDI0OS40IDI4NC44QzI4NC42IDMyMS40MDEgMjU2LjYgMjg3LjIgMjU2LjYgMjg3LjJDMjQ5IDI4Mi40IDIzOS44IDI2My42IDIzOS44IDI2My42QzIzOC42IDI2MC44IDI1My44IDI3MC44IDI1My44IDI3MC44QzI1Ny44IDI3MS42IDI3MS40IDI5MC44IDI3MS40IDI5MC44QzI2NC42IDI4OC40IDI2OS40IDI5NS42IDI2OS40IDI5NS42QzI3Mi4yIDI5Ny42IDI5Mi42MDEgMzEzLjIwMSAyOTIuNjAxIDMxMy4yMDFDMjk2LjIwMSAzMTcuMjAxIDMwMC4yMDEgMzE4LjgwMSAzMDAuMjAxIDMxOC44MDFDMzE0LjIwMSAzMTMuNjAxIDMwNy44MDEgMzI2LjgwMSAzMDcuODAxIDMyNi44MDFDMzEwLjIwMSAzMzMuNjAxIDMxNS44MDEgMzIyLjAwMSAzMTUuODAxIDMyMi4wMDFDMzI3LjAwMSAzMDUuMiAzMTAuNjAxIDMwNy42MDEgMzEwLjYwMSAzMDcuNjAxQzI4MC42IDMxMC40MDEgMjczLjggMjk0LjQgMjczLjggMjk0LjRDMjcxLjQgMjkyIDI4MC4yIDI5NC40IDI4MC4yIDI5NC40QzI4OC42MDEgMjk2LjQgMjczIDI4MiAyNzMgMjgyQzI3NS40IDI4MiAyODQuNiAyODguOCAyODQuNiAyODguOEMyOTUuMDAxIDI5OCAyOTcuMDAxIDI5NiAyOTcuMDAxIDI5NkMzMTUuMDAxIDI4Ny4yIDMyNS40MDEgMjk0LjggMzI1LjQwMSAyOTQuOEMzMjcuNDAxIDI5Ni40IDMyMS44MDEgMzAzLjIgMzIzLjQwMSAzMDguNDAxQzMyNS4wMDEgMzEzLjYwMSAzMjkuODAxIDMyNi4wMDEgMzI5LjgwMSAzMjYuMDAxQzMyNy40MDEgMzI3LjYwMSAzMjcuODAxIDMzOC40MDEgMzI3LjgwMSAzMzguNDAxQzM0NC42MDEgMzYxLjYwMSAzMzUuMDAxIDM1OS42MDEgMzM1LjAwMSAzNTkuNjAxQzMxOS40MDEgMzU5LjIwMSAzMzQuMjAxIDM2Ni44MDEgMzM0LjIwMSAzNjYuODAxQzMzNy40MDEgMzY4LjgwMSAzNDYuMjAxIDM3Ni4wMDEgMzQ2LjIwMSAzNzYuMDAxQzM0My40MDEgMzc0LjgwMSAzNDEuODAxIDM4MC4wMDEgMzQxLjgwMSAzODAuMDAxQzM0Ni42MDEgMzg0LjAwMSAzNDMuODAxIDM4OC44MDEgMzQzLjgwMSAzODguODAxQzMzNy44MDEgMzkwLjAwMSAzMzYuNjAxIDM5NC4wMDEgMzM2LjYwMSAzOTQuMDAxQzM0My40MDEgNDAyLjAwMSAzMzMuNDAxIDQwMi40MDEgMzMzLjQwMSA0MDIuNDAxQzMzNy4wMDEgNDA2LjgwMSAzMzIuMjAxIDQxOC44MDEgMzMyLjIwMSA0MTguODAxQzMyNy40MDEgNDE4LjgwMSAzMjEuMDAxIDQyNC40MDEgMzIxLjAwMSA0MjQuNDAxQzMyMy40MDEgNDI5LjIwMSAzMTMuMDAxIDQzNC44MDEgMzEzLjAwMSA0MzQuODAxQzMwNC42MDEgNDM2LjQwMSAzMDcuNDAxIDQ0My4yMDEgMzA3LjQwMSA0NDMuMjAxQzI5OS40MDEgNDQ5LjIwMSAyOTcuMDAxIDQ2NS4yMDEgMjk3LjAwMSA0NjUuMjAxQzI5Ni4yMDEgNDc1LjYwMSAyOTMuODAxIDQ3OC44MDEgMjk5LjAwMSA0NzYuODAxQzMwNC4yMDEgNDc0LjgwMSAzMDMuNDAxIDQ2Mi40MDEgMzAzLjQwMSA0NjIuNDAxQzI5OC42MDEgNDQ2LjgwMSAzNDEuNDAxIDQzMC44MDEgMzQxLjQwMSA0MzAuODAxQzM0NS40MDEgNDI5LjIwMSAzNDYuMjAxIDQyNC4wMDEgMzQ2LjIwMSA0MjQuMDAxQzM0OC4yMDEgNDI0LjQwMSAzNTcuMDAxIDQzMi4wMDEgMzU3LjAwMSA0MzIuMDAxQzM2NC42MDEgNDQzLjIwMSAzNjUuMDAxIDQzNC4wMDEgMzY1LjAwMSA0MzQuMDAxQzM2Ni4yMDEgNDMwLjQwMSAzNjQuNjAxIDQyNC40MDEgMzY0LjYwMSA0MjQuNDAxQzM3MC42MDEgNDAyLjgwMSAzNTYuNjAxIDM5Ni40MDEgMzU2LjYwMSAzOTYuNDAxQzM0Ni42MDEgMzYyLjgwMSAzNjAuNjAxIDM3MS4yMDEgMzYwLjYwMSAzNzEuMjAxQzM2My40MDEgMzc2LjgwMSAzNzQuMjAxIDM4Mi4wMDEgMzc0LjIwMSAzODIuMDAxTDM3Ny44MDEgMzc5LjYwMUMzNzYuMjAxIDM3NC44MDEgMzg0LjYwMSAzNjguODAxIDM4NC42MDEgMzY4LjgwMUMzODcuNDAxIDM3NS4yMDEgMzkzLjQwMSAzNjcuMjAxIDM5My40MDEgMzY3LjIwMUMzOTcuMDAxIDM0Mi44MDEgNDA5LjQwMSAzNTcuMjAxIDQwOS40MDEgMzU3LjIwMUM0MTMuNDAxIDM1OC40MDEgNDE0LjYwMSAzNTEuNjAxIDQxNC42MDEgMzUxLjYwMUM0MTguMjAxIDM0MS4yMDEgNDE0LjYwMSAzMjcuNjAxIDQxNC42MDEgMzI3LjYwMUM0MTguMjAxIDMyNy4yMDEgNDI3LjgwMSAzMzMuMjAxIDQyNy44MDEgMzMzLjIwMUM0MzAuNjAxIDMyOS42MDEgNDIxLjQwMSAzMTIuODAxIDQyNS40MDEgMzE1LjIwMUM0MjkuNDAxIDMxNy42MDEgNDMzLjgwMSAzMTkuMjAxIDQzMy44MDEgMzE5LjIwMUM0MzQuNjAxIDMxNy4yMDEgNDI0LjYwMSAzMDQuODAxIDQyNC42MDEgMzA0LjgwMUM0MjAuMjAxIDMwMiA0MTUuMDAxIDI4MS42IDQxNS4wMDEgMjgxLjZDNDIyLjIwMSAyODUuMiA0MTIuMjAxIDI3MCA0MTIuMjAxIDI3MEM0MTIuMjAxIDI2Ni44IDQxOC4yMDEgMjU1LjYgNDE4LjIwMSAyNTUuNkM0MTcuNDAxIDI0OC44IDQxOC4yMDEgMjQ5LjIgNDE4LjIwMSAyNDkuMkM0MjEuMDAxIDI1MC40IDQyOS4wMDEgMjUyIDQyMi4yMDEgMjQ1LjZDNDE1LjQwMSAyMzkuMiA0MjMuMDAxIDIzNC40IDQyMy4wMDEgMjM0LjRDNDI3LjQwMSAyMzEuNiA0MTMuODAxIDIzMiA0MTMuODAxIDIzMkM0MDguNjAxIDIyNy42IDQwOS4wMDEgMjIzLjYgNDA5LjAwMSAyMjMuNkM0MTcuMDAxIDIyNS42IDQwMi42MDEgMjExLjIgNDAwLjIwMSAyMDcuNkMzOTcuODAxIDIwNCA0MDcuNDAxIDE5OC44IDQwNy40MDEgMTk4LjhDNDIwLjYwMSAxOTUuMiA0MDkuMDAxIDE5MiA0MDkuMDAxIDE5MkMzODkuNDAxIDE5Mi40IDQwMC4yMDEgMTgxLjYgNDAwLjIwMSAxODEuNkM0MDYuMjAxIDE4MiA0MDQuNjAxIDE3OS42IDQwNC42MDEgMTc5LjZDMzk5LjQwMSAxNzguNCAzODkuODAxIDE3MiAzODkuODAxIDE3MkMzODUuODAxIDE2OC40IDM4OS40MDEgMTY5LjIgMzg5LjQwMSAxNjkuMkM0MDYuMjAxIDE3MC40IDM3Ny40MDEgMTU5LjIgMzc3LjQwMSAxNTkuMkMzODUuNDAxIDE1OS4yIDM2Ny40MDEgMTQ4LjggMzY3LjQwMSAxNDguOEMzNjUuNDAxIDE0Ny4yIDM2Mi4yMDEgMTM5LjYgMzYyLjIwMSAxMzkuNkMzNTYuMjAxIDEzNC40IDM1MS40MDEgMTI3LjYgMzUxLjQwMSAxMjcuNkMzNTEuMDAxIDEyMy4yIDM0Ni4yMDEgMTE4LjQgMzQ2LjIwMSAxMTguNEMzMzQuNjAxIDEwNC44IDMyOS4wMDEgMTA1LjIgMzI5LjAwMSAxMDUuMkMzMTQuMjAxIDEwMS42IDMwOS4wMDEgMTAyLjQgMzA5LjAwMSAxMDIuNEwyNTYuMiAxMDYuOEMyMjkuOCAxMTkuNiAyMzcuNiAxNDAuNiAyMzcuNiAxNDAuNkMyNDQgMTQ5IDI1My4yIDE0NS4yIDI1My4yIDE0NS4yQzI1Ny44IDEzOSAyNjkuNCAxNDEuMiAyNjkuNCAxNDEuMkMyODkuODAxIDE0NC40IDI4Ny4yMDEgMTQwLjggMjg3LjIwMSAxNDAuOEMyODQuODAxIDEzNi4yIDI2OC42IDEzMCAyNjguNCAxMjkuNEMyNjguMiAxMjguOCAyNTkuNCAxMjUuNCAyNTkuNCAxMjUuNEMyNTYuNCAxMjQuMiAyNTIgMTE1IDI1MiAxMTVDMjQ4LjggMTExLjYgMjY0LjYgMTE3LjQgMjY0LjYgMTE3LjRDMjYzLjQgMTE4LjQgMjcwLjggMTIyLjQgMjcwLjggMTIyLjRDMjg4LjIwMSAxMjEuNCAyOTguODAxIDEzMi4yIDI5OC44MDEgMTMyLjJDMzA5LjYwMSAxNDguOCAzMDkuODAxIDE0MC42IDMwOS44MDEgMTQwLjZDMzEyLjYwMSAxMzEuMiAzMDAuODAxIDExMCAzMDAuODAxIDExMEMzMDEuMjAxIDEwOCAzMDkuNDAxIDExNC42IDMwOS40MDEgMTE0LjZDMzEwLjgwMSAxMTIuNiAzMTEuNjAxIDExOC40IDMxMS42MDEgMTE4LjRDMzExLjgwMSAxMjAuOCAzMTUuNjAxIDEyOC44IDMxNS42MDEgMTI4LjhDMzE4LjQwMSAxNDEuOCAzMjIuMDAxIDEzNC40IDMyMi4wMDEgMTM0LjRMMzI2LjYwMSAxNDMuOEMzMjguMDAxIDE0Ni40IDMyMi4wMDEgMTU0IDMyMi4wMDEgMTU0QzMyMS44MDEgMTU2LjggMzIyLjYwMSAxNTYuNiAzMTcuMDAxIDE2NC4yQzMxMS40MDEgMTcxLjggMzE0LjgwMSAxNzYuMiAzMTQuODAxIDE3Ni4yQzMxMy40MDEgMTgyLjggMzIyLjIwMSAxODIuNCAzMjIuMjAxIDE4Mi40QzMyNC44MDEgMTg0LjYgMzI4LjIwMSAxODQuNiAzMjguMjAxIDE4NC42QzMzMC4wMDEgMTg2LjYgMzMyLjQwMSAxODYgMzMyLjQwMSAxODZDMzM0LjAwMSAxODIuMiAzNDAuMjAxIDE4NC4yIDM0MC4yMDEgMTg0LjJDMzQxLjYwMSAxODEuOCAzNDkuODAxIDE4MS40IDM0OS44MDEgMTgxLjRDMzUwLjgwMSAxNzguOCAzNTEuMjAxIDE3Ny4yIDM1NC42MDEgMTc2LjZDMzU4LjAwMSAxNzYgMzMzLjQwMSAxMzMgMzMzLjQwMSAxMzNDMzM5LjgwMSAxMzIuMiAzMzEuNjAxIDExOS44IDMzMS42MDEgMTE5LjhDMzI5LjQwMSAxMTMuMiAzNDAuODAxIDEyNy44IDM0My4wMDEgMTI5LjJDMzQ1LjIwMSAxMzAuNiAzNDYuMjAxIDEzMi44IDM0NC42MDEgMTMyLjZDMzQzLjAwMSAxMzIuNCAzNDEuMjAxIDEzNC42IDM0Mi42MDEgMTM0LjhDMzQ0LjAwMSAxMzUgMzU3LjAwMSAxNTAgMzYwLjQwMSAxNjAuMkMzNjMuODAxIDE3MC40IDM2OS44MDEgMTc0LjQgMzc2LjAwMSAxODAuNEMzODIuMjAxIDE4Ni40IDM4MS40MDEgMjEwLjYgMzgxLjQwMSAyMTAuNkMzODEuMDAxIDIxOS40IDM4Ny4wMDEgMjMwIDM4Ny4wMDEgMjMwQzM4OS4wMDEgMjMzLjggMzg0LjgwMSAyNTIgMzg0LjgwMSAyNTJDMzgyLjgwMSAyNTQuMiAzODQuMjAxIDI1NSAzODQuMjAxIDI1NUMzODUuMjAxIDI1Ni4yIDM5Mi4wMDEgMjY5LjQgMzkyLjAwMSAyNjkuNEMzOTAuMjAxIDI2OS4yIDM5My44MDEgMjcyLjggMzkzLjgwMSAyNzIuOEMzOTkuMDAxIDI3OC44IDM5Mi42MDEgMjc1LjggMzkyLjYwMSAyNzUuOEMzODYuNjAxIDI3NC4yIDM5My42MDEgMjg0IDM5My42MDEgMjg0QzM5NC44MDEgMjg1LjggMzg1LjgwMSAyODEuMiAzODUuODAxIDI4MS4yQzM3Ni42MDEgMjgwLjYgMzg4LjIwMSAyODcuOCAzODguMjAxIDI4Ny44QzM5Ni44MDEgMjk1IDM4NS40MDEgMjkwLjYgMzg1LjQwMSAyOTAuNkMzODAuODAxIDI4OC44IDM4NC4wMDEgMjk1LjYgMzg0LjAwMSAyOTUuNkMzODcuMjAxIDI5Ny4yIDQwNC40MDEgMzA0LjIgNDA0LjQwMSAzMDQuMkM0MDQuODAxIDMwOC4wMDEgNDAxLjgwMSAzMTMuMDAxIDQwMS44MDEgMzEzLjAwMUM0MDIuMjAxIDMxNy4wMDEgNDAwLjAwMSAzMjAuNDAxIDQwMC4wMDEgMzIwLjQwMUMzOTguODAxIDMyOC42MDEgMzk4LjIwMSAzMjkuNDAxIDM5OC4yMDEgMzI5LjQwMUMzOTQuMDAxIDMyOS42MDEgMzg2LjYwMSAzNDMuNDAxIDM4Ni42MDEgMzQzLjQwMUMzODQuODAxIDM0Ni4wMDEgMzc0LjYwMSAzNTguMDAxIDM3NC42MDEgMzU4LjAwMUMzNzIuNjAxIDM2NS4wMDEgMzU0LjYwMSAzNTcuODAxIDM1NC42MDEgMzU3LjgwMUMzNDguMDAxIDM2MS4yMDEgMzUwLjAwMSAzNTcuODAxIDM1MC4wMDEgMzU3LjgwMUMzNDkuNjAxIDM1NS42MDEgMzU0LjQwMSAzNDkuNjAxIDM1NC40MDEgMzQ5LjYwMUMzNjEuNDAxIDM0Ny4wMDEgMzU4LjgwMSAzMzYuMjAxIDM1OC44MDEgMzM2LjIwMUMzNjIuODAxIDMzNC44MDEgMzUxLjYwMSAzMzIuMDAxIDM1MS44MDEgMzMwLjgwMUMzNTIuMDAxIDMyOS42MDEgMzU3LjgwMSAzMjguMjAxIDM1Ny44MDEgMzI4LjIwMUMzNjUuODAxIDMyNi4yMDEgMzYxLjQwMSAzMjMuODAxIDM2MS40MDEgMzIzLjgwMUMzNjAuODAxIDMxOS44MDEgMzYzLjgwMSAzMTQuMjAxIDM2My44MDEgMzE0LjIwMUMzNzUuNDAxIDMxMy40MDEgMzYzLjgwMSAyOTcuMiAzNjMuODAxIDI5Ny4yQzM1My4wMDEgMjg5LjYgMzUyLjAwMSAyODMuOCAzNTIuMDAxIDI4My44QzM2NC42MDEgMjc1LjYgMzU2LjQwMSAyNjMuMiAzNTYuNjAxIDI1OS42QzM1Ni44MDEgMjU2IDM1OC4wMDEgMjM0LjQgMzU4LjAwMSAyMzQuNEMzNTYuMDAxIDIyOC4yIDM1My4wMDEgMjE0LjYgMzUzLjAwMSAyMTQuNkMzNTUuMjAxIDIwOS40IDM2Mi42MDEgMTk2LjggMzYyLjYwMSAxOTYuOEMzNjUuNDAxIDE5Mi42IDM3NC4yMDEgMTg3LjggMzcyLjAwMSAxODQuOEMzNjkuODAxIDE4MS44IDM2Mi4wMDEgMTgzLjYgMzYyLjAwMSAxODMuNkMzNTQuMjAxIDE4Mi4yIDM1NC44MDEgMTg3LjQgMzU0LjgwMSAxODcuNEMzNTMuMjAxIDE4OC40IDM1Mi40MDEgMTkzLjQgMzUyLjQwMSAxOTMuNEMzNTEuNjggMjAxLjMzMyAzNDIuODAxIDIwNy42IDM0Mi44MDEgMjA3LjZDMzMxLjYwMSAyMTMuOCAzNDAuODAxIDIxNy44IDM0MC44MDEgMjE3LjhDMzQ2LjgwMSAyMjQuNCAzMzcuMDAxIDIyNC42IDMzNy4wMDEgMjI0LjZDMzI2LjAwMSAyMjIuOCAzMzQuMjAxIDIzMyAzMzQuMjAxIDIzM0MzNDUuMDAxIDI0NS44IDM0Mi4wMDEgMjQ4LjYgMzQyLjAwMSAyNDguNkMzMzEuODAxIDI0OS42IDM0NC40MDEgMjU4LjggMzQ0LjQwMSAyNTguOEMzNDQuNDAxIDI1OC44IDM0My42MDEgMjU2LjggMzQzLjgwMSAyNTguNkMzNDQuMDAxIDI2MC40IDM0Ny4wMDEgMjY0LjYgMzQ3LjgwMSAyNjYuNkMzNDguNjAxIDI2OC42IDM0NC42MDEgMjY4LjggMzQ0LjYwMSAyNjguOEMzNDUuMjAxIDI3OC40IDMyOS44MDEgMjc0LjIgMzI5LjgwMSAyNzQuMkMzMjkuODAxIDI3NC4yIDMyOS44MDEgMjc0LjIgMzI4LjIwMSAyNzQuNEMzMjYuNjAxIDI3NC42IDMxNS40MDEgMjczLjggMzA5LjYwMSAyNzEuNkMzMDMuODAxIDI2OS40IDI5Ny4wMDEgMjY5LjQgMjk3LjAwMSAyNjkuNEMyOTcuMDAxIDI2OS40IDI5My4wMDEgMjcxLjIgMjg1LjQgMjcxQzI3Ny44IDI3MC44IDI2OS44IDI3My42IDI2OS44IDI3My42QzI2NS40IDI3My4yIDI3NCAyNjguOCAyNzQuMiAyNjlDMjc0LjQgMjY5LjIgMjgwIDI2My42IDI3MiAyNjQuMkMyNTAuMjAzIDI2NS44MzUgMjM5LjQgMjU1LjYgMjM5LjQgMjU1LjZDMjM3LjQgMjU0LjIgMjM0LjggMjUxLjQgMjM0LjggMjUxLjRDMjI0LjggMjQ5LjQgMjM2LjIgMjYzLjggMjM2LjIgMjYzLjhDMjM3LjQgMjY1LjIgMjM2IDI2Ni4yIDIzNiAyNjYuMkMyMzUuMiAyNjQuNiAyMjcuNCAyNTkuMiAyMjcuNCAyNTkuMkMyMjQuNTg5IDI1OC4yMjcgMjIzLjIyNiAyNTYuODkzIDIyMC44OTUgMjU0LjQwN3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM0YzAwMDAiPgorICA8cGF0aCBkPSJNMTk3IDI0Mi44QzE5NyAyNDIuOCAyMDguNiAyNDguNCAyMTEuMiAyNTEuMkMyMTMuOCAyNTQgMjI3LjggMjY1LjQgMjI3LjggMjY1LjRDMjI3LjggMjY1LjQgMjIyLjQgMjYzLjQgMjE5LjggMjYxLjZDMjE3LjIgMjU5LjggMjA2LjQgMjUxLjYgMjA2LjQgMjUxLjZDMjA2LjQgMjUxLjYgMjAyLjYgMjQ1LjYgMTk3IDI0Mi44eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5Y2MzMiI+CisgIDxwYXRoIGQ9Ik0xMzguOTkxIDIxMS42MDNDMTM5LjMyOCAyMTEuNDU1IDEzOC44MDQgMjA4Ljc0MyAxMzguNiAyMDguMkMxMzcuNTc4IDIwNS40NzQgMTI4LjYgMjA0IDEyOC42IDIwNEMxMjguMzczIDIwNS4zNjUgMTI4LjMxOCAyMDYuOTYxIDEyOC40MjQgMjA4LjU5OUMxMjguNDI0IDIwOC41OTkgMTMzLjI5MiAyMTQuMTE4IDEzOC45OTEgMjExLjYwM3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM2NTk5MDAiPgorICA8cGF0aCBkPSJNMTM4Ljk5MSAyMTEuNDAzQzEzOC41NDIgMjExLjU2MSAxMzguOTc2IDIwOC42NjkgMTM4LjggMjA4LjJDMTM3Ljc3OCAyMDUuNDc0IDEyOC42IDIwMy45IDEyOC42IDIwMy45QzEyOC4zNzMgMjA1LjI2NSAxMjguMzE4IDIwNi44NjEgMTI4LjQyNCAyMDguNDk5QzEyOC40MjQgMjA4LjQ5OSAxMzIuNjkyIDIxMy42MTggMTM4Ljk5MSAyMTEuNDAzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMzQuNiAyMTEuNTQ2QzEzMy45NzUgMjExLjU0NiAxMzMuNDY5IDIxMC40MDYgMTMzLjQ2OSAyMDlDMTMzLjQ2OSAyMDcuNTk1IDEzMy45NzUgMjA2LjQ1NSAxMzQuNiAyMDYuNDU1QzEzNS4yMjUgMjA2LjQ1NSAxMzUuNzMyIDIwNy41OTUgMTM1LjczMiAyMDlDMTM1LjczMiAyMTAuNDA2IDEzNS4yMjUgMjExLjU0NiAxMzQuNiAyMTEuNTQ2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMzQuNiAyMDl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTg5IDMwOS42MDFDODkgMzA5LjYwMSA4My40IDMxOS42MDEgMTA4LjIgMzEzLjYwMUMxMDguMiAzMTMuNjAxIDEyMi4yIDMxMi40MDEgMTI0LjYgMzEwLjAwMUMxMjUuOCAzMTAuODAxIDEzNC4xNjYgMzEzLjczNCAxMzcgMzE0LjQwMUMxNDMuOCAzMTYuMDAxIDE1Mi4yIDMwNiAxNTIuMiAzMDZDMTUyLjIgMzA2IDE1Ni44IDI5NS41IDE1OS42IDI5NS41QzE2Mi40IDI5NS41IDE1OS4yIDI5Ny4xIDE1OS4yIDI5Ny4xQzE1OS4yIDI5Ny4xIDE1Mi42IDMwNy4yMDEgMTUzIDMwOC44MDFDMTUzIDMwOC44MDEgMTQ3LjggMzI4LjgwMSAxMzEuOCAzMjkuNjAxQzEzMS44IDMyOS42MDEgMTE1LjY1IDMzMC41NTEgMTE3IDMzNi40MDFDMTE3IDMzNi40MDEgMTI1LjggMzM0LjAwMSAxMjguMiAzMzYuNDAxQzEyOC4yIDMzNi40MDEgMTM5IDMzNi4wMDEgMTMxIDM0Mi40MDFMMTI0LjIgMzU0LjAwMUMxMjQuMiAzNTQuMDAxIDEyNC4zNCAzNTcuOTE5IDExNC4yIDM1NC40MDFDMTA0LjQgMzUxLjAwMSA5NC4xIDMzOC4xMDEgOTQuMSAzMzguMTAxQzk0LjEgMzM4LjEwMSA3OC4xNSAzMjMuNTUxIDg5IDMwOS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTU5OTk5Ij4KKyAgPHBhdGggZD0iTTg3LjggMzEzLjYwMUM4Ny44IDMxMy42MDEgODUuOCAzMjMuMjAxIDEyMi42IDMxMi44MDFDMTIyLjYgMzEyLjgwMSAxMjcgMzEyLjgwMSAxMjkuNCAzMTMuNjAxQzEzMS44IDMxNC40MDEgMTQzLjggMzE3LjIwMSAxNDUuOCAzMTYuMDAxQzE0NS44IDMxNi4wMDEgMTM4LjYgMzI5LjYwMSAxMjcgMzI4LjAwMUMxMjcgMzI4LjAwMSAxMTMuOCAzMjkuNjAxIDExNC4yIDMzNC40MDFDMTE0LjIgMzM0LjQwMSAxMTguMiAzNDEuNjAxIDEyMyAzNDQuMDAxQzEyMyAzNDQuMDAxIDEyNS44IDM0Ni40MDEgMTI1LjQgMzQ5LjYwMUMxMjUgMzUyLjgwMSAxMjIuMiAzNTQuNDAxIDEyMC4yIDM1NS4yMDFDMTE4LjIgMzU2LjAwMSAxMTUgMzUyLjgwMSAxMTMuNCAzNTIuODAxQzExMS44IDM1Mi44MDEgMTAzLjQgMzQ2LjQwMSA5OSAzNDEuNjAxQzk0LjYgMzM2LjgwMSA4Ni4yIDMyNC44MDEgODYuNiAzMjIuMDAxQzg3IDMxOS4yMDEgODcuOCAzMTMuNjAxIDg3LjggMzEzLjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNiMjY1NjUiPgorICA8cGF0aCBkPSJNOTEgMzMxLjA1MUM5My42IDMzNS4wMDEgOTYuOCAzMzkuMjAxIDk5IDM0MS42MDFDMTAzLjQgMzQ2LjQwMSAxMTEuOCAzNTIuODAxIDExMy40IDM1Mi44MDFDMTE1IDM1Mi44MDEgMTE4LjIgMzU2LjAwMSAxMjAuMiAzNTUuMjAxQzEyMi4yIDM1NC40MDEgMTI1IDM1Mi44MDEgMTI1LjQgMzQ5LjYwMUMxMjUuOCAzNDYuNDAxIDEyMyAzNDQuMDAxIDEyMyAzNDQuMDAxQzExOS45MzQgMzQyLjQ2OCAxMTcuMTk0IDMzOC45NzYgMTE1LjYxNSAzMzYuNjUzQzExNS42MTUgMzM2LjY1MyAxMTUuOCAzMzkuMjAxIDExMC42IDMzOC40MDFDMTA1LjQgMzM3LjYwMSAxMDAuMiAzMzQuODAxIDk4LjYgMzMxLjYwMUM5NyAzMjguNDAxIDk0LjYgMzI2LjAwMSA5Ni4yIDMyOS42MDFDOTcuOCAzMzMuMjAxIDEwMC4yIDMzNi44MDEgMTAxLjggMzM3LjIwMUMxMDMuNCAzMzcuNjAxIDEwMyAzMzguODAxIDEwMC42IDMzOC40MDFDOTguMiAzMzguMDAxIDk1LjQgMzM3LjYwMSA5MSAzMzIuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5MjYwMCI+CisgIDxwYXRoIGQ9Ik04OC40IDMxMC4wMDFDODguNCAzMTAuMDAxIDkwLjIgMjk2LjQgOTEuNCAyOTIuNEM5MS40IDI5Mi40IDkwLjYgMjg1LjYgOTMgMjgxLjRDOTUuNCAyNzcuMiA5Ny40IDI3MSAxMDAuNCAyNjUuNkMxMDMuNCAyNjAuMiAxMDMuNiAyNTYuMiAxMDcuNiAyNTQuNkMxMTEuNiAyNTMgMTE3LjYgMjQ0LjQgMTIwLjQgMjQzLjRDMTIzLjIgMjQyLjQgMTIzIDI0My4yIDEyMyAyNDMuMkMxMjMgMjQzLjIgMTI5LjggMjI4LjQgMTQzLjQgMjMyLjRDMTQzLjQgMjMyLjQgMTI3LjIgMjI5LjYgMTQzIDIyMC4yQzE0MyAyMjAuMiAxMzguMiAyMjEuMyAxNDEuNSAyMTQuM0MxNDMuNzAxIDIwOS42MzIgMTQzLjIgMjE2LjQgMTMyLjIgMjI4LjJDMTMyLjIgMjI4LjIgMTI3LjIgMjM2LjggMTIyIDIzOS44QzExNi44IDI0Mi44IDEwNC44IDI0OS44IDEwMy42IDI1My42QzEwMi40IDI1Ny40IDk5LjIgMjYzLjIgOTcuMiAyNjQuOEM5NS4yIDI2Ni40IDkyLjQgMjcwLjYgOTIgMjc0QzkyIDI3NCA5MC44IDI3OCA4OS40IDI3OS4yQzg4IDI4MC40IDg3LjggMjgzLjYgODcuOCAyODUuNkM4Ny44IDI4Ny42IDg1LjggMjkwLjQgODYgMjkyLjhDODYgMjkyLjggODYuOCAzMTEuODAxIDg2LjQgMzEzLjgwMUw4OC40IDMxMC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTc5LjggMzE0LjYwMUM3OS44IDMxNC42MDEgNzcuOCAzMTMuMjAxIDczLjQgMzE5LjIwMUM3My40IDMxOS4yMDEgODAuNyAzNTIuMjAxIDgwLjcgMzUzLjYwMUM4MC43IDM1My42MDEgODEuOCAzNTEuNTAxIDgwLjUgMzQ0LjMwMUM3OS4yIDMzNy4xMDEgNzguMyAzMjQuNDAxIDc4LjMgMzI0LjQwMUw3OS44IDMxNC42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjOTkyNjAwIj4KKyAgPHBhdGggZD0iTTEwMS40IDI1NEMxMDEuNCAyNTQgODMuOCAyNTcuMiA4NC4yIDI4Ni40TDgzLjQgMzExLjIwMUM4My40IDMxMS4yMDEgODIuMiAyODUuNiA4MSAyODRDNzkuOCAyODIuNCA4My44IDI3MS4yIDgwLjYgMjc3LjJDODAuNiAyNzcuMiA2Ni42IDI5MS4yIDc0LjYgMzEyLjQwMUM3NC42IDMxMi40MDEgNzYuMSAzMTUuNzAxIDczLjEgMzExLjEwMUM3My4xIDMxMS4xMDEgNjguNSAyOTguNSA2OS42IDI5Mi4xQzY5LjYgMjkyLjEgNjkuOCAyODkuOSA3MS43IDI4Ny4xQzcxLjcgMjg3LjEgODAuMyAyNzUuNCA4MyAyNzMuMUM4MyAyNzMuMSA4NC44IDI1OC43IDEwMC4yIDI1My41QzEwMC4yIDI1My41IDEwNS45IDI1MS4yIDEwMS40IDI1NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjQwLjggMTg3LjhDMjQxLjQ2IDE4Ny40NDYgMjQxLjQ1MSAxODYuNDc2IDI0Mi4wMzEgMTg2LjMwM0MyNDMuMTggMTg1Ljk1OSAyNDMuMzQ0IDE4NC44OTIgMjQzLjg2MiAxODQuMTA4QzI0NC43MzUgMTgyLjc4OSAyNDQuOTI4IDE4MS4yNTYgMjQ1LjUxIDE3OS43NjVDMjQ1Ljc4MiAxNzkuMDY1IDI0NS44MDkgMTc4LjExIDI0NS40OTYgMTc3LjQ1QzI0NC4zMjIgMTc0Ljk2OSAyNDMuNjIgMTcyLjUyIDI0Mi4xNzggMTcwLjA5NEMyNDEuOTEgMTY5LjY0NCAyNDEuNjQ4IDE2OC44NSAyNDEuNDQ3IDE2OC4yNTJDMjQwLjk4NCAxNjYuODY4IDIzOS43MjcgMTY1Ljg3NyAyMzguODY3IDE2NC41NTdDMjM4LjU3OSAxNjQuMTE2IDIzOS4xMDQgMTYzLjE5MSAyMzguMzg4IDE2My4xMDdDMjM3LjQ5MSAxNjMuMDAyIDIzNi4wNDIgMTYyLjQyMiAyMzUuODA5IDE2My40NDhDMjM1LjIyMSAxNjYuMDM1IDIzNi4yMzIgMTY4LjU1OCAyMzcuMiAxNzFDMjM2LjQxOCAxNzEuNjkyIDIzNi43NTIgMTcyLjYxMyAyMzYuOTA0IDE3My4zOEMyMzcuNjE0IDE3Ni45ODYgMjM2LjQxNiAxODAuMzM4IDIzNS42NTUgMTgzLjgxMkMyMzUuNjMyIDE4My45MTYgMjM1Ljk3NCAxODQuMTE0IDIzNS45NDYgMTg0LjE3NkMyMzQuNzI0IDE4Ni44NjIgMjMzLjI3MiAxODkuMzA3IDIzMS40NTMgMTkxLjY4OEMyMzAuNjk1IDE5Mi42OCAyMjkuODIzIDE5My41OTYgMjI5LjMyNiAxOTQuNjU5QzIyOC45NTggMTk1LjQ0NiAyMjguNTUgMTk2LjQxMiAyMjguOCAxOTcuNEMyMjUuMzY1IDIwMC4xOCAyMjMuMTE1IDIwNC4wMjUgMjIwLjUwNCAyMDcuODcxQzIyMC4wNDIgMjA4LjU1MSAyMjAuMzMzIDIwOS43NiAyMjAuODg0IDIxMC4wMjlDMjIxLjY5NyAyMTAuNDI3IDIyMi42NTMgMjA5LjQwMyAyMjMuMTIzIDIwOC41NTdDMjIzLjUxMiAyMDcuODU5IDIyMy44NjUgMjA3LjIwOSAyMjQuMzU2IDIwNi41NjZDMjI0LjQ4OSAyMDYuMzkxIDIyNC4zMSAyMDUuOTcyIDIyNC40NDUgMjA1Ljg1MUMyMjcuMDc4IDIwMy41MDQgMjI4Ljc0NyAyMDAuNTY4IDIzMS4yIDE5OC4yQzIzMy4xNSAxOTcuODcxIDIzNC42ODcgMTk2Ljg3MyAyMzYuNDM1IDE5NS44NkMyMzYuNzQzIDE5NS42ODEgMjM3LjI2NyAxOTUuOTMgMjM3LjU1NyAxOTUuNzM1QzIzOS4zMSAxOTQuNTU4IDIzOS4zMDggMTkyLjUyMiAyMzkuNDE0IDE5MC42MTJDMjM5LjQ2NCAxODkuNzI4IDIzOS42NiAxODguNDExIDI0MC44IDE4Ny44eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMzEuOTU5IDE4My4zMzRDMjMyLjA4MyAxODMuMjU3IDIzMS45MjggMTgyLjgzNCAyMzIuMDM3IDE4Mi42MThDMjMyLjE5OSAxODIuMjk0IDIzMi42MDIgMTgyLjEwNiAyMzIuNzY0IDE4MS43ODJDMjMyLjg3MyAxODEuNTY2IDIzMi43MSAxODEuMTg2IDIzMi44NDYgMTgxLjA0NEMyMzUuMTc5IDE3OC41OTcgMjM1LjQzNiAxNzUuNTczIDIzNC40IDE3Mi42QzIzNS40MjQgMTcxLjk4IDIzNS40ODUgMTcwLjcxOCAyMzUuMDYgMTY5Ljg3MUMyMzQuMjA3IDE2OC4xNzEgMjM0LjAxNCAxNjYuMjQ1IDIzMy4wMzkgMTY0LjcwMkMyMzIuMjM3IDE2My40MzMgMjMwLjY1OSAxNjIuMTg5IDIyOS4yODggMTYzLjQ5MkMyMjguODY3IDE2My44OTIgMjI4LjU0NiAxNjQuNjc5IDIyOC44MjQgMTY1LjM5MUMyMjguODg4IDE2NS41NTQgMjI5LjE3MyAxNjUuNyAyMjkuMTQ2IDE2NS43ODJDMjI5LjAzOSAxNjYuMTA2IDIyOC40OTMgMTY2LjMzIDIyOC40ODcgMTY2LjYwMkMyMjguNDU3IDE2OC4wOTggMjI3LjUwMyAxNjkuNjA5IDIyOC4xMzMgMTcwLjkzOEMyMjguOTA1IDE3Mi41NjcgMjI5LjcyNCAxNzQuNDI0IDIzMC40IDE3Ni4yQzIyOS4xNjYgMTc4LjMxNiAyMzAuMTk5IDE4MC43NjUgMjI4LjQ0NiAxODIuNjQyQzIyOC4zMSAxODIuNzg4IDIyOC4zMTkgMTgzLjE3NCAyMjguNDQxIDE4My4zNzZDMjI4LjczMyAxODMuODYyIDIyOS4xMzkgMTg0LjI2OCAyMjkuNjI1IDE4NC41NkMyMjkuODI3IDE4NC42ODEgMjMwLjE3NSAxODQuNjgzIDIzMC4zNzUgMTg0LjU1OUMyMzAuOTUzIDE4NC4xOTcgMjMxLjM1MSAxODMuNzEgMjMxLjk1OSAxODMuMzM0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yOTQuNzcxIDE3My4wMjNDMjk2LjE2IDE3NC44MTUgMjk2LjQ1IDE3Ny42MSAyOTQuNDAxIDE3OUMyOTQuOTUxIDE4Mi4zMDkgMjk4LjMwMiAxODAuMzMgMzAwLjQwMSAxNzkuOEMzMDAuMjkyIDE3OS40MTIgMzAwLjUxOSAxNzkuMDY4IDMwMC44MDIgMTc5LjA2M0MzMDEuODU5IDE3OS4wNDggMzAyLjUzOSAxNzguMDE2IDMwMy42MDEgMTc4LjJDMzA0LjAzNSAxNzYuNjQzIDMwNS42NzMgMTc1Ljk0MSAzMDYuMzE3IDE3NC41NjFDMzA4LjA0MyAxNzAuODY2IDMwNy40NTIgMTY2LjU5MyAzMDQuODY4IDE2My4zNDdDMzA0LjY2NiAxNjMuMDkzIDMwNC44ODMgMTYyLjU3NiAzMDQuNzU5IDE2Mi4yMTRDMzA0LjAwMyAxNjAuMDAzIDMwMS45MzUgMTU5LjY4OCAzMDAuMDAxIDE1OUMyOTguODI0IDE1NS4xMjUgMjk4LjE2MyAxNTEuMDk0IDI5Ni40MDEgMTQ3LjRDMjk0Ljc4NyAxNDcuMTUgMjk0LjA4OSAxNDUuNDExIDI5Mi43NTIgMTQ0LjY5MUMyOTEuNDE5IDE0My45NzIgMjkwLjg1MSAxNDUuNTUxIDI5MC44OTIgMTQ2LjU5N0MyOTAuODk5IDE0Ni44MDIgMjkxLjM1MSAxNDcuMDI2IDI5MS4xODEgMTQ3LjM5MUMyOTEuMTA1IDE0Ny41NTUgMjkwLjg0NSAxNDcuNjY2IDI5MC44NDUgMTQ3LjhDMjkwLjg0NiAxNDcuOTM1IDI5MS4wNjcgMTQ4LjA2NiAyOTEuMjAxIDE0OC4yQzI5MC4yODMgMTQ5LjAyIDI4OC44NiAxNDkuNDk3IDI4OC41NjUgMTUwLjY0MkMyODcuNjExIDE1NC4zNTIgMjkwLjE4NCAxNTcuNDc3IDI5MS44NTIgMTYwLjY3OEMyOTIuNDQzIDE2MS44MTMgMjkxLjcwNyAxNjMuMDg0IDI5MC45NDcgMTY0LjI5MkMyOTAuNTA5IDE2NC45ODcgMjkwLjYxNyAxNjYuMTE0IDI5MC44OTMgMTY2Ljk3QzI5MS42NDUgMTY5LjMwMSAyOTMuMjM2IDE3MS4wNCAyOTQuNzcxIDE3My4wMjN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTI1Ny42MTEgMTkxLjQwOUMyNTYuMTI0IDE5My4yNiAyNTIuNzEyIDE5NS44MjkgMjU1LjYyOSAxOTcuNzU3QzI1NS44MjMgMTk3Ljg4NiAyNTYuMTkzIDE5Ny44OSAyNTYuMzY2IDE5Ny43NTZDMjU4LjM4NyAxOTYuMTkxIDI2MC4zOSAxOTUuMjg4IDI2Mi44MjYgMTk0LjcwNkMyNjIuOTUgMTk0LjY3NyAyNjMuMjI0IDE5NS4xNDQgMjYzLjU5MyAxOTQuOTgzQzI2NS4yMDYgMTk0LjI4IDI2Ny4yMTYgMTk0LjMzOCAyNjguNCAxOTNDMjcyLjE2NyAxOTMuMjI0IDI3NS43MzIgMTkyLjEwOCAyNzkuMTIzIDE5MC44QzI4MC4yODQgMTkwLjM1MiAyODEuNTU0IDE4OS43OTMgMjgyLjc1NSAxODkuMjkxQzI4NC4xMzEgMTg4LjcxNSAyODUuMzM1IDE4Ny43ODcgMjg2LjQ0NyAxODYuNjQ2QzI4Ni41OCAxODYuNTEgMjg2LjkzNCAxODYuNiAyODcuMjAxIDE4Ni42QzI4Ny4xNjEgMTg1LjczNyAyODguMTIzIDE4NS42MSAyODguMzcgMTg0Ljk4OEMyODguNDYyIDE4NC43NTYgMjg4LjMxMiAxODQuMzYgMjg4LjQ0NSAxODQuMjU4QzI5MC41ODMgMTgyLjYyOCAyOTEuNTAzIDE4MC42MSAyOTAuMzM0IDE3OC4yMzNDMjkwLjA0OSAxNzcuNjU1IDI4OS44IDE3Ny4wMzcgMjg5LjIzNCAxNzYuNTYxQzI4OC4xNDkgMTc1LjY1IDI4Ny4wNDcgMTc2LjUwNCAyODYgMTc2LjJDMjg1Ljg0MSAxNzYuODI4IDI4NS4xMTIgMTc2LjY1NiAyODQuNzI2IDE3Ni44NTRDMjgzLjg2NyAxNzcuMjkzIDI4Mi41MzQgMTc2LjcwOCAyODEuNjc1IDE3Ny4xNDZDMjgwLjMxMyAxNzcuODQxIDI3OS4wNzIgMTc4LjAxIDI3Ny42NSAxNzguMzg3QzI3Ny4zMzggMTc4LjQ2OSAyNzYuNTYgMTc4LjM3MyAyNzYuNCAxNzlDMjc2LjI2NiAxNzguODY2IDI3Ni4xMTggMTc4LjYzMiAyNzYuMDEyIDE3OC42NTRDMjc0LjEwNCAxNzkuMDUgMjcyLjg0NCAxNzkuMjY0IDI3MS41NDMgMTgwLjk1NkMyNzEuNDQgMTgxLjA4OSAyNzAuOTk4IDE4MC45MSAyNzAuODM5IDE4MS4wNDVDMjY5Ljg4MiAxODEuODUzIDI2OS40NzcgMTgzLjA4NyAyNjguMzc2IDE4My43NTlDMjY4LjE3NSAxODMuODgyIDI2Ny44MjMgMTgzLjcxNCAyNjcuNjI5IDE4My44NDNDMjY2Ljk4MyAxODQuMjc0IDI2Ni42MTYgMTg0LjkxNSAyNjUuOTc0IDE4NS4zNjJDMjY1LjY0NSAxODUuNTkxIDI2NS4yNDUgMTg1LjI2NiAyNjUuMjc3IDE4NS4wMUMyNjUuNTIyIDE4My4wNjMgMjY2LjE3NSAxODEuMjc2IDI2NS42IDE3OS40QzI2Ny42NzcgMTc2Ljg4IDI3MC4xOTQgMTc0LjkzMSAyNzIgMTcyLjJDMjcyLjAxNSAxNzAuMDM0IDI3Mi43MDcgMTY3Ljg4OCAyNzIuNTk0IDE2NS44MTFDMjcyLjU4NCAxNjUuNjE4IDI3Mi4yOTYgMTY0Ljg4NSAyNzIuMTcgMTY0LjUzOEMyNzEuODU4IDE2My42ODQgMjcyLjc2NCAxNjIuNjE4IDI3MS45MiAxNjEuODk0QzI3MC41MTYgMTYwLjY5MSAyNjkuMjI0IDE2MS41NjcgMjY4LjQgMTYzQzI2Ni41NjIgMTYzLjM5IDI2NC40OTYgMTY0LjA4MyAyNjIuOTE4IDE2Mi44NDlDMjYxLjkxMSAxNjIuMDYyIDI2MS4zMzMgMTYxLjE1NiAyNjAuNTM0IDE2MC4xQzI1OS41NDkgMTU4Ljc5OCAyNTkuODg0IDE1Ny4zNjIgMjU5Ljk1NCAxNTUuNzk4QzI1OS45NiAxNTUuNjcgMjU5LjY0NSAxNTUuNTM0IDI1OS42NDUgMTU1LjRDMjU5LjY0NiAxNTUuMjY1IDI1OS44NjYgMTU1LjEzNCAyNjAgMTU1QzI1OS4yOTQgMTU0LjM3NCAyNTkuMDE5IDE1My4zMTYgMjU4IDE1M0MyNTguMzA1IDE1MS45MDggMjU3LjYyOSAxNTEuMDI0IDI1Ni43NTggMTUwLjcyMkMyNTQuNzYzIDE1MC4wMzEgMjUzLjA4NiAxNTEuOTQzIDI1MS4xOTQgMTUyLjAxNkMyNTAuNjggMTUyLjAzNSAyNTAuMjEzIDE1MC45OTcgMjQ5LjU2NCAxNTAuNjcyQzI0OS4xMzIgMTUwLjQ1NiAyNDguNDI4IDE1MC40MjMgMjQ4LjA2NiAxNTAuNjg5QzI0Ny4zNzggMTUxLjE5MyAyNDYuNzg5IDE1MS4zMDcgMjQ2LjAzMSAxNTEuNTEyQzI0NC40MTQgMTUxLjk0OCAyNDMuMTM2IDE1My4wNDIgMjQxLjY1NiAxNTMuODk3QzI0MC4xNzEgMTU0Ljc1NCAyMzkuMjE2IDE1Ni4xOTEgMjM4LjEzNiAxNTcuNTExQzIzNy4xOTUgMTU4LjY2MyAyMzcuMDU5IDE2MS4wNzcgMjM4LjQ3OSAxNjEuNTc3QzI0MC4zMjIgMTYyLjIyNyAyNDEuNjI2IDE1OS41MjQgMjQzLjU5MiAxNTkuODVDMjQzLjkwNCAxNTkuOTAxIDI0NC4xMSAxNjAuMjEyIDI0NCAxNjAuNkMyNDQuMzg5IDE2MC43MDkgMjQ0LjYwNyAxNjAuNDggMjQ0LjggMTYwLjJDMjQ1LjY1OCAxNjEuMjE5IDI0Ni44MjIgMTYxLjU1NiAyNDcuNzYgMTYyLjQyOUMyNDguNzMgMTYzLjMzMyAyNTAuNDc2IDE2Mi45MTUgMjUxLjQ5MSAxNjMuOTEyQzI1My4wMiAxNjUuNDE0IDI1Mi40NjEgMTY4LjA5NSAyNTQuNCAxNjkuNEMyNTMuODE0IDE3MC43MTMgMjUzLjIwNyAxNzEuOTkgMjUyLjg3MiAxNzMuNDE3QzI1Mi41OSAxNzQuNjIzIDI1My41ODQgMTc1LjgyIDI1NC43OTUgMTc1LjcyOUMyNTYuMDUzIDE3NS42MzUgMjU2LjMxNSAxNzQuODc2IDI1Ni44IDE3My44QzI1Ny4wNjcgMTc0LjA2NyAyNTcuNTM2IDE3NC4zNjQgMjU3LjQ5NSAxNzQuNThDMjU3LjAzOCAxNzYuOTY3IDI1Ni4wMTEgMTc4Ljk2IDI1NS41NTMgMTgxLjM5MUMyNTUuNDk0IDE4MS43MDggMjU1LjE4OSAxODEuOTEgMjU0LjggMTgxLjhDMjU0LjMzMiAxODUuOTQ5IDI1MC4yOCAxODguMzQzIDI0Ny43MzUgMTkxLjUwOEMyNDcuMzMyIDE5Mi4wMSAyNDcuMzI4IDE5My4yNTkgMjQ3LjczNyAxOTMuNjYyQzI0OS4xNCAxOTUuMDQ5IDI1MS4xIDE5My41MDMgMjUyLjggMTkzQzI1My4wMTMgMTkxLjc5NCAyNTMuODcyIDE5MC44NTIgMjU1LjIwNCAxOTAuOTA4QzI1NS40NiAxOTAuOTE4IDI1NS42OTUgMTkwLjM3NiAyNTYuMDE5IDE5MC4yNDZDMjU2LjM2NyAxOTAuMTA4IDI1Ni44NjkgMTkwLjMzMiAyNTcuMTU1IDE5MC4xMzRDMjU4Ljg4NCAxODguOTM5IDI2MC4yOTIgMTg3LjgzMyAyNjIuMDMgMTg2LjY0NEMyNjIuMjIyIDE4Ni41MTMgMjYyLjU2NiAxODYuNjcyIDI2Mi43ODIgMTg2LjU2NEMyNjMuMTA3IDE4Ni40MDIgMjYzLjI5NCAxODYuMDE1IDI2My42MTcgMTg1LjgzQzI2My45NjUgMTg1LjYzIDI2NC4yMDcgMTg1LjkyIDI2NC40IDE4Ni4yQzI2My43NTQgMTg2LjU0OSAyNjMuNzUgMTg3LjUwNiAyNjMuMTY4IDE4Ny43MDhDMjYyLjM5MyAxODcuOTc2IDI2MS44MzIgMTg4LjQ4OSAyNjEuMTU4IDE4OC45MzZDMjYwLjg2NiAxODkuMTI5IDI2MC4yMDcgMTg4Ljg4MSAyNjAuMTAzIDE4OS4wNkMyNTkuNTA1IDE5MC4wODggMjU4LjMyMSAxOTAuNTI2IDI1Ny42MTEgMTkxLjQwOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjAyLjIgMTQyQzIwMi4yIDE0MiAxOTIuOTYyIDEzOS4xMjggMTgxLjggMTY0LjhDMTgxLjggMTY0LjggMTc5LjQgMTcwIDE3NyAxNzJDMTc0LjYgMTc0IDE2My40IDE3Ny42IDE2MS40IDE4MS42TDE1MSAxOTcuNkMxNTEgMTk3LjYgMTY1LjggMTgxLjYgMTY5IDE3OS4yQzE2OSAxNzkuMiAxNzcgMTcwLjggMTczLjggMTc3LjZDMTczLjggMTc3LjYgMTU5LjggMTg4LjQgMTYxIDE5Ny42QzE2MSAxOTcuNiAxNTUuNCAyMTIgMTU0LjYgMjE0QzE1NC42IDIxNCAxNzAuNiAxODIgMTczIDE4MC44QzE3NS40IDE3OS42IDE3Ni42IDE3OS42IDE3NS40IDE4My4yQzE3NC4yIDE4Ni44IDE3My44IDIwMy4yIDE3MSAyMDUuMkMxNzEgMjA1LjIgMTc5IDE4NC44IDE3OC4yIDE4MS42QzE3OC4yIDE4MS42IDE4MS40IDE3OCAxODMuOCAxODMuMkwxODIuNiAxOTkuMkwxODcgMjExLjJDMTg3IDIxMS4yIDE4NC42IDIwMCAxODYuMiAxODQuNEMxODYuMiAxODQuNCAxODQuMiAxNzQgMTg4LjIgMTc5LjZDMTkyLjIgMTg1LjIgMjAxLjggMTkxLjIgMjAxLjggMTk2QzIwMS44IDE5NiAxOTYuNiAxNzguNCAxODcuNCAxNzMuNkwxODMuNCAxNzkuNkwxODIuMiAxNzcuNkMxODIuMiAxNzcuNiAxNzguNiAxNzYuOCAxODMgMTcwQzE4Ny40IDE2My4yIDE4NyAxNjIuNCAxODcgMTYyLjRDMTg3IDE2Mi40IDE5My40IDE2OS42IDE5NSAxNjkuNkMxOTUgMTY5LjYgMjA4LjIgMTYyIDIwOS40IDE4Ni40QzIwOS40IDE4Ni40IDIxNi4yIDE3MiAyMDcgMTY1LjJDMjA3IDE2NS4yIDE5Mi4yIDE2My4yIDE5My40IDE1OEwyMDAuNiAxNDUuNkMyMDQuMiAxNDAuNCAyMDIuNiAxNDMuMiAyMDIuNiAxNDMuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTgyLjIgMTU4LjRDMTgyLjIgMTU4LjQgMTY5LjQgMTU4LjQgMTY2LjIgMTYzLjZMMTU5IDE3My4yQzE1OSAxNzMuMiAxNzYuMiAxNjMuMiAxODAuMiAxNjJDMTg0LjIgMTYwLjggMTgyLjIgMTU4LjQgMTgyLjIgMTU4LjR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE0Mi4yIDE2NC44QzE0Mi4yIDE2NC44IDE0MC4yIDE2NiAxMzkuOCAxNjguOEMxMzkuNCAxNzEuNiAxMzcgMTcyIDEzNy44IDE3NC44QzEzOC42IDE3Ny42IDE0MC42IDE4MCAxNDAuNiAxNzZDMTQwLjYgMTcyIDE0Mi4yIDE3MCAxNDMgMTY4LjhDMTQzLjggMTY3LjYgMTQ1LjQgMTYzLjIgMTQyLjIgMTY0Ljh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEzMy40IDIyNkMxMzMuNCAyMjYgMTI1IDIyMiAxMjEuOCAyMTguNEMxMTguNiAyMTQuOCAxMTkuMDUyIDIxOS45NjYgMTE0LjIgMjE5LjZDMTA4LjM1MyAyMTkuMTU5IDEwOS40IDIwMy4yIDEwOS40IDIwMy4yTDEwNS40IDIxMC44QzEwNS40IDIxMC44IDEwNC4yIDIyNS4yIDExMi4yIDIyMi44QzExNi4xMDcgMjIxLjYyOCAxMTcuNCAyMjMuMiAxMTUuOCAyMjRDMTE0LjIgMjI0LjggMTIxLjQgMjI1LjIgMTE4LjYgMjI2LjhDMTE1LjggMjI4LjQgMTMwLjIgMjIzLjIgMTI3LjggMjMzLjZMMTMzLjQgMjI2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMjAuOCAyNDAuNEMxMjAuOCAyNDAuNCAxMDUuNCAyNDQuOCAxMDEuOCAyMzUuMkMxMDEuOCAyMzUuMiA5NyAyMzcuNiA5OS4yIDI0MC42QzEwMS40IDI0My42IDEwMi42IDI0NCAxMDIuNiAyNDRDMTAyLjYgMjQ0IDEwOCAyNDUuMiAxMDcuNCAyNDZDMTA2LjggMjQ2LjggMTA0LjQgMjUwLjIgMTA0LjQgMjUwLjJDMTA0LjQgMjUwLjIgMTE0LjYgMjQ0LjIgMTIwLjggMjQwLjR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTM0OS4yMDEgMzE4LjYwMUMzNDguNzc0IDMyMC43MzUgMzQ3LjEwMyAzMjEuNTM2IDM0NS4yMDEgMzIyLjIwMUMzNDMuMjg0IDMyMS4yNDMgMzQwLjY4NiAzMTguMTM3IDMzOC44MDEgMzIwLjIwMUMzMzguMzI3IDMxOS43MjEgMzM3LjU0OCAzMTkuNjYxIDMzNy4yMDQgMzE4Ljk5OUMzMzYuNzM5IDMxOC4xMDEgMzM3LjAxMSAzMTcuMDU1IDMzNi42NjkgMzE2LjI1N0MzMzYuMTI0IDMxNC45ODUgMzM1LjQxNSAzMTMuNjE5IDMzNS42MDEgMzEyLjIwMUMzMzcuNDA3IDMxMS40ODkgMzM4LjAwMiAzMDkuNTgzIDMzNy41MjggMzA3LjgyQzMzNy40NTkgMzA3LjU2MyAzMzcuMDMgMzA3LjM2NiAzMzcuMjMgMzA3LjAxN0MzMzcuNDE2IDMwNi42OTQgMzM3LjczNCAzMDYuNDY3IDMzOC4wMDEgMzA2LjJDMzM3Ljg2NiAzMDYuMzM1IDMzNy43MjEgMzA2LjU2OCAzMzcuNjEgMzA2LjU0OEMzMzcgMzA2LjQ0MiAzMzcuMTI0IDMwNS44MDUgMzM3LjI1NCAzMDUuNDE4QzMzNy44MzkgMzAzLjY3MiAzMzkuODUzIDMwMy40MDggMzQxLjIwMSAzMDQuNkMzNDEuNDU3IDMwNC4wMzUgMzQxLjk2NiAzMDQuMjI5IDM0Mi40MDEgMzA0LjJDMzQyLjM1MSAzMDMuNjIxIDM0Mi43NTkgMzAzLjA5NCAzNDIuOTU3IDMwMi42NzRDMzQzLjQ3NSAzMDEuNTc2IDM0NS4xMDQgMzAyLjY4MiAzNDUuOTAxIDMwMi4wN0MzNDYuOTc3IDMwMS4yNDUgMzQ4LjA0IDMwMC41NDYgMzQ5LjExOCAzMDEuMTQ5QzM1MC45MjcgMzAyLjE2MiAzNTIuNjM2IDMwMy4zNzQgMzUzLjgzNSAzMDUuMTE1QzM1NC40MSAzMDUuOTQ5IDM1NC42NSAzMDcuMjMgMzU0LjU5MiAzMDguMTg4QzM1NC41NTQgMzA4LjgzNSAzNTMuMTczIDMwOC40ODMgMzUyLjgzIDMwOS40MTJDMzUyLjE4NSAzMTEuMTYgMzU0LjAxNiAzMTEuNjc5IDM1NC43NzIgMzEzLjAxN0MzNTQuOTcgMzEzLjM2NiAzNTQuNzA2IDMxMy42NyAzNTQuMzkxIDMxMy43NjhDMzUzLjk4IDMxMy44OTYgMzUzLjE5NiAzMTMuNzA3IDM1My4zMzQgMzE0LjE2QzM1NC4zMDYgMzE3LjM1MyAzNTEuNTUgMzE4LjAzMSAzNDkuMjAxIDMxOC42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTMzOS42IDMzOC4yMDFDMzM5LjU5MyAzMzYuNDYzIDMzNy45OTIgMzM0LjcwNyAzMzkuMjAxIDMzMy4wMDFDMzM5LjMzNiAzMzMuMTM1IDMzOS40NjcgMzMzLjM1NiAzMzkuNjAxIDMzMy4zNTZDMzM5LjczNiAzMzMuMzU2IDMzOS44NjcgMzMzLjEzNSAzNDAuMDAxIDMzMy4wMDFDMzQxLjQ5NiAzMzUuMjE3IDM0NS4xNDggMzM2LjE0NSAzNDUuMDA2IDMzOC45OTFDMzQ0Ljk4NCAzMzkuNDM4IDM0My44OTcgMzQwLjM1NiAzNDQuODAxIDM0MS4wMDFDMzQyLjk4OCAzNDIuMzQ5IDM0Mi45MzMgMzQ0LjcxOSAzNDIuMDAxIDM0Ni42MDFDMzQwLjc2MyAzNDYuMzE1IDMzOS41NTEgMzQ1Ljk1MiAzMzguNDAxIDM0NS40MDFDMzM4Ljc1MyAzNDMuOTE1IDMzOC42MzYgMzQyLjIzMSAzMzkuNDU2IDM0MC45MTFDMzM5Ljg5IDM0MC4yMTMgMzM5LjYwMyAzMzkuMTM0IDMzOS42IDMzOC4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3My40IDMyOS4yMDFDMTczLjQgMzI5LjIwMSAxNTYuNTQyIDMzOS4zMzcgMTcwLjYgMzI0LjAwMUMxNzkuNCAzMTQuNDAxIDE4OS40IDMwOC44MDEgMTg5LjQgMzA4LjgwMUMxODkuNCAzMDguODAxIDE5OS44IDMwNC40IDIwMy40IDMwMy4yQzIwNyAzMDIgMjIyLjIgMjk2LjggMjI1LjQgMjk2LjRDMjI4LjYgMjk2IDIzOC4yIDI5MiAyNDUgMjk2QzI1MS44IDMwMCAyNTkuOCAzMDQuNCAyNTkuOCAzMDQuNEMyNTkuOCAzMDQuNCAyNDMuNCAyOTYgMjM5LjggMjk4LjRDMjM2LjIgMzAwLjggMjI5IDMwMC40IDIyMyAzMDMuNkMyMjMgMzAzLjYgMjA4LjIgMzA4LjAwMSAyMDUgMzEwLjAwMUMyMDEuOCAzMTIuMDAxIDE5MS40IDMyMy42MDEgMTg5LjggMzIyLjgwMUMxODguMiAzMjIuMDAxIDE5MC4yIDMyMS42MDEgMTkxLjQgMzE4LjgwMUMxOTIuNiAzMTYuMDAxIDE5MC42IDMxNC40MDEgMTgyLjYgMzIwLjgwMUMxNzQuNiAzMjcuMjAxIDE3My40IDMyOS4yMDEgMTczLjQgMzI5LjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTgwLjgwNSAzMjMuMjM0QzE4MC44MDUgMzIzLjIzNCAxODIuMjE1IDMxMC4xOTQgMTkwLjY5MyAzMTEuODU5QzE5MC42OTMgMzExLjg1OSAxOTguOTE5IDMwNy42ODkgMjAxLjY0MSAzMDUuNzIxQzIwMS42NDEgMzA1LjcyMSAyMDkuNzggMzA0LjAxOSAyMTEuMDkgMzAzLjQwMkMyMjkuNTY5IDI5NC43MDIgMjQ0LjI4OCAyOTkuMjIxIDI0NC44MzUgMjk4LjEwMUMyNDUuMzgxIDI5Ni45ODIgMjY1LjAwNiAzMDQuMDk5IDI2OC42MTUgMzA4LjE4NUMyNjkuMDA2IDMwOC42MjggMjU4LjM4NCAzMDIuNTg4IDI0OC42ODYgMzAwLjY5N0MyNDAuNDEzIDI5OS4wODMgMjE4LjgxMSAzMDAuOTQ0IDIwNy45MDUgMzA2LjQ4QzIwNC45MzIgMzA3Ljk4OSAxOTUuOTg3IDMxMy43NzMgMTkzLjQ1NiAzMTMuNjYyQzE5MC45MjUgMzEzLjU1IDE4MC44MDUgMzIzLjIzNCAxODAuODA1IDMyMy4yMzR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3NyAzNDguODAxQzE3NyAzNDguODAxIDE2MS44IDM0Ni40MDEgMTc4LjYgMzQ0LjgwMUMxNzguNiAzNDQuODAxIDE5Ni42IDM0Mi44MDEgMjAwLjYgMzM3LjYwMUMyMDAuNiAzMzcuNjAxIDIxNC4yIDMyOC40MDEgMjE3IDMyOC4wMDFDMjE5LjggMzI3LjYwMSAyNDkuOCAzMjAuNDAxIDI1MC4yIDMxOC4wMDFDMjUwLjYgMzE1LjYwMSAyNTYuMiAzMTUuNjAxIDI1Ny44IDMxNi40MDFDMjU5LjQgMzE3LjIwMSAyNTguNiAzMTguNDAxIDI1NS44IDMxOS4yMDFDMjUzIDMyMC4wMDEgMjIxLjggMzM2LjQwMSAyMTUuNCAzMzcuNjAxQzIwOSAzMzguODAxIDE5Ny40IDM0Ni40MDEgMTkyLjYgMzQ3LjYwMUMxODcuOCAzNDguODAxIDE3NyAzNDguODAxIDE3NyAzNDguODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTYuNTIgMzQxLjQwM0MxOTYuNTIgMzQxLjQwMyAxODcuOTM4IDM0MC41NzQgMTk2LjUzOSAzMzkuNzU1QzE5Ni41MzkgMzM5Ljc1NSAyMDUuMzU1IDMzNi4zMzEgMjA3LjQwMyAzMzMuNjY4QzIwNy40MDMgMzMzLjY2OCAyMTQuMzY3IDMyOC45NTcgMjE1LjggMzI4Ljc1M0MyMTcuMjM0IDMyOC41NDggMjMxLjE5NCAzMjQuODYxIDIzMS4zOTkgMzIzLjYzM0MyMzEuNjA0IDMyMi40MDQgMjY1LjY3IDMwOS44MjMgMjcwLjA5IDMxMy4wMTNDMjczLjAwMSAzMTUuMTE0IDI2My4xIDMxMy40MzcgMjUzLjQ2NiAzMTcuODQ3QzI1Mi4xMTEgMzE4LjQ2NyAyMTguMjU4IDMzMy4wNTQgMjE0Ljk4MSAzMzMuNjY4QzIxMS43MDQgMzM0LjI4MyAyMDUuNzY1IDMzOC4xNzQgMjAzLjMwNyAzMzguNzg4QzIwMC44NSAzMzkuNDAzIDE5Ni41MiAzNDEuNDAzIDE5Ni41MiAzNDEuNDAzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xODguNiAzNDMuNjAxQzE4OC42IDM0My42MDEgMTkzLjggMzQzLjIwMSAxOTIuNiAzNDQuODAxQzE5MS40IDM0Ni40MDEgMTg5IDM0NS42MDEgMTg5IDM0NS42MDFMMTg4LjYgMzQzLjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTgxLjQgMzQ1LjIwMUMxODEuNCAzNDUuMjAxIDE4Ni42IDM0NC44MDEgMTg1LjQgMzQ2LjQwMUMxODQuMiAzNDguMDAxIDE4MS44IDM0Ny4yMDEgMTgxLjggMzQ3LjIwMUwxODEuNCAzNDUuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNzEgMzQ2LjgwMUMxNzEgMzQ2LjgwMSAxNzYuMiAzNDYuNDAxIDE3NSAzNDguMDAxQzE3My44IDM0OS42MDEgMTcxLjQgMzQ4LjgwMSAxNzEuNCAzNDguODAxTDE3MSAzNDYuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjMuNCAzNDcuNjAxQzE2My40IDM0Ny42MDEgMTY4LjYgMzQ3LjIwMSAxNjcuNCAzNDguODAxQzE2Ni4yIDM1MC40MDEgMTYzLjggMzQ5LjYwMSAxNjMuOCAzNDkuNjAxTDE2My40IDM0Ny42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIwMS44IDMwOC4wMDFDMjAxLjggMzA4LjAwMSAyMDYuMiAzMDguMDAxIDIwNSAzMDkuNjAxQzIwMy44IDMxMS4yMDEgMjAwLjYgMzEwLjgwMSAyMDAuNiAzMTAuODAxTDIwMS44IDMwOC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE5MS44IDMxMy42MDFDMTkxLjggMzEzLjYwMSAxOTguMzA2IDMxMS40NiAxOTUuOCAzMTQuODAxQzE5NC42IDMxNi40MDEgMTkyLjIgMzE1LjYwMSAxOTIuMiAzMTUuNjAxTDE5MS44IDMxMy42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE4MC42IDMxOC40MDFDMTgwLjYgMzE4LjQwMSAxODUuOCAzMTguMDAxIDE4NC42IDMxOS42MDFDMTgzLjQgMzIxLjIwMSAxODEgMzIwLjQwMSAxODEgMzIwLjQwMUwxODAuNiAzMTguNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNzMgMzI0LjQwMUMxNzMgMzI0LjQwMSAxNzguMiAzMjQuMDAxIDE3NyAzMjUuNjAxQzE3NS44IDMyNy4yMDEgMTczLjQgMzI2LjQwMSAxNzMuNCAzMjYuNDAxTDE3MyAzMjQuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjYuMiAzMjkuMjAxQzE2Ni4yIDMyOS4yMDEgMTcxLjQgMzI4LjgwMSAxNzAuMiAzMzAuNDAxQzE2OSAzMzIuMDAxIDE2Ni42IDMzMS4yMDEgMTY2LjYgMzMxLjIwMUwxNjYuMiAzMjkuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMDUuMjgyIDMzNS41OThDMjA1LjI4MiAzMzUuNTk4IDIxMi4yMDMgMzM1LjA2NiAyMTAuNjA2IDMzNy4xOTVDMjA5LjAwOSAzMzkuMzI1IDIwNS44MTQgMzM4LjI2IDIwNS44MTQgMzM4LjI2TDIwNS4yODIgMzM1LjU5OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjE1LjY4MiAzMzAuNzk4QzIxNS42ODIgMzMwLjc5OCAyMjIuNjAzIDMzMC4yNjYgMjIxLjAwNiAzMzIuMzk1QzIxOS40MDkgMzM0LjUyNSAyMTYuMjE0IDMzMy40NiAyMTYuMjE0IDMzMy40NkwyMTUuNjgyIDMzMC43OTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIyNi40ODIgMzI2LjM5OEMyMjYuNDgyIDMyNi4zOTggMjMzLjQwMyAzMjUuODY2IDIzMS44MDYgMzI3Ljk5NUMyMzAuMjA5IDMzMC4xMjUgMjI3LjAxNCAzMjkuMDYgMjI3LjAxNCAzMjkuMDZMMjI2LjQ4MiAzMjYuMzk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMzYuODgyIDMyMS41OThDMjM2Ljg4MiAzMjEuNTk4IDI0My44MDMgMzIxLjA2NiAyNDIuMjA2IDMyMy4xOTVDMjQwLjYwOSAzMjUuMzI1IDIzNy40MTQgMzI0LjI2IDIzNy40MTQgMzI0LjI2TDIzNi44ODIgMzIxLjU5OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjA5LjI4MiAzMDMuNTk4QzIwOS4yODIgMzAzLjU5OCAyMTYuMjAzIDMwMy4wNjYgMjE0LjYwNiAzMDUuMTk1QzIxMy4wMDkgMzA3LjMyNSAyMDkuMDE0IDMwNy4wNiAyMDkuMDE0IDMwNy4wNkwyMDkuMjgyIDMwMy41OTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIxOS4yODIgMzAwLjM5OEMyMTkuMjgyIDMwMC4zOTggMjI2LjIwMyAyOTkuODY2IDIyNC42MDYgMzAxLjk5NUMyMjMuMDA5IDMwNC4xMjUgMjE4LjYxNCAzMDMuODYgMjE4LjYxNCAzMDMuODZMMjE5LjI4MiAzMDAuMzk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTYuNiAzNDAuNDAxQzE5Ni42IDM0MC40MDEgMjAxLjggMzQwLjAwMSAyMDAuNiAzNDEuNjAxQzE5OS40IDM0My4yMDEgMTk3IDM0Mi40MDEgMTk3IDM0Mi40MDFMMTk2LjYgMzQwLjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTI2MDAiPgorICA8cGF0aCBkPSJNMTIzLjQgMjQxLjJDMTIzLjQgMjQxLjIgMTE5IDI1MCAxMTguNiAyNTMuMkMxMTguNiAyNTMuMiAxMTkuNCAyNDQuNCAxMjAuNiAyNDIuNEMxMjEuOCAyNDAuNCAxMjMuNCAyNDEuMiAxMjMuNCAyNDEuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTI2MDAiPgorICA8cGF0aCBkPSJNMTA1IDI1NS4yQzEwNSAyNTUuMiAxMDEuOCAyNjkuNiAxMDIuMiAyNzIuNEMxMDIuMiAyNzIuNCAxMDEgMjYwLjggMTAxLjQgMjU5LjZDMTAxLjggMjU4LjQgMTA1IDI1NS4yIDEwNSAyNTUuMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTI1LjggMTgwLjZMMTI1LjYgMTgzLjhMMTIzLjQgMTg0QzEyMy40IDE4NCAxMzcuNiAxOTYuNiAxMzguMiAyMDQuMkMxMzguMiAyMDQuMiAxMzkgMTk2IDEyNS44IDE4MC42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMjkuNzg0IDE4MS44NjVDMTI5LjM1MyAxODEuNDQ5IDEyOS41NzIgMTgwLjcwNCAxMjkuMTY0IDE4MC40NDRDMTI4LjM1NSAxNzkuOTI4IDEzMC40NjIgMTc5Ljg3MSAxMzAuMjM0IDE3OS4xNTVDMTI5Ljg1MSAxNzcuOTQ5IDEzMC4wMzggMTc3LjkyOCAxMjkuOTE2IDE3Ni42NTJDMTI5Ljg1OSAxNzYuMDU0IDEzMC40NDcgMTc0LjUxNCAxMzAuODMyIDE3NC4wNzRDMTMyLjI3OCAxNzIuNDIyIDEzMC45NTQgMTY5LjQ5IDEzMi41OTQgMTY3LjkzOUMxMzIuODk4IDE2Ny42NSAxMzMuMjc0IDE2Ny4wOTggMTMzLjU1OSAxNjYuNjhDMTM0LjIxOCAxNjUuNzE3IDEzNS40MDIgMTY1LjIyOSAxMzYuMzUyIDE2NC40MDFDMTM2LjY3IDE2NC4xMjUgMTM2LjQ2OSAxNjMuMjk4IDEzNy4wMzggMTYzLjM5QzEzNy43NTIgMTYzLjUwNSAxMzguOTkzIDE2My4zNzUgMTM4Ljk0OCAxNjQuMjE2QzEzOC44MzUgMTY2LjMzNiAxMzcuNTA2IDE2OC4wNTYgMTM2LjIyNiAxNjkuNzI0QzEzNi42NzcgMTcwLjQyOCAxMzYuMjE5IDE3MS4wNjMgMTM1LjkzNSAxNzEuNjJDMTM0LjYgMTc0LjI0IDEzNC43ODkgMTc3LjA4MSAxMzQuNjE1IDE3OS45MjFDMTM0LjYxIDE4MC4wMDYgMTM0LjMwMyAxODAuMDg0IDEzNC4zMTEgMTgwLjEzN0MxMzQuNjY0IDE4Mi40NzIgMTM1LjI0OCAxODQuNjcxIDEzNi4xMjcgMTg2LjlDMTM2LjQ5MyAxODcuODMgMTM2Ljk2NCAxODguNzI1IDEzNy4xMTQgMTg5LjY1MkMxMzcuMjI1IDE5MC4zMzggMTM3LjMyOCAxOTEuMTcxIDEzNi45MiAxOTEuODc2QzEzOC45NTUgMTk0Ljc2NiAxMzcuNjQ2IDE5Ny40MTcgMTM4LjgxNSAyMDAuOTQ4QzEzOS4wMjIgMjAxLjU3MyAxNDAuNzE0IDIwMy40ODcgMTQwLjI1MSAyMDMuMzI2QzEzNy43MzggMjAyLjQ1NSAxMzcuNjI2IDIwMi4wNTcgMTM3LjQ0OSAyMDEuMzA0QzEzNy4zMDMgMjAwLjY4MSAxMzYuOTczIDE5OS4zMDQgMTM2LjczNiAxOTguNzAyQzEzNi42NzIgMTk4LjUzOCAxMzYuNTAxIDE5Ni42NTQgMTM2LjQyMyAxOTYuNTMyQzEzNC45MSAxOTQuMTUgMTM2LjI2OCAxOTQuMzI2IDEzNC44OTggMTkxLjk2OEMxMzMuNDcgMTkxLjI4OCAxMzIuNTA0IDE5MC4xODQgMTMxLjM4MSAxODkuMDIyQzEzMS4xODMgMTg4LjgxOCAxMzIuMzI2IDE4OC4wOTQgMTMyLjE0NSAxODcuODgxQzEzMS4wNTMgMTg2LjU5MiAxMjkuOSAxODUuODI1IDEzMC4yMzYgMTg0LjMzMkMxMzAuMzkxIDE4My42NDIgMTMwLjUyOCAxODIuNTg1IDEyOS43ODQgMTgxLjg2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTI2LjIgMTgzLjZDMTI2LjIgMTgzLjYgMTI2LjYgMTkwLjQgMTI5IDE5MkMxMzEuNCAxOTMuNiAxMzAuMiAxOTIuOCAxMjcgMTkxLjZDMTIzLjggMTkwLjQgMTI1IDE4OS42IDEyNSAxODkuNkMxMjUgMTg5LjYgMTIyLjIgMTkwIDEyNC42IDE5MkMxMjcgMTk0IDEzMC42IDE5Ni40IDEyOSAxOTYuNEMxMjcuNCAxOTYuNCAxMTkuOCAxOTIuNCAxMTkuOCAxODkuNkMxMTkuOCAxODYuOCAxMTguOCAxODIuNyAxMTguOCAxODIuN0MxMTguOCAxODIuNyAxMTkuOSAxODEuOSAxMjQuNyAxODJDMTI0LjcgMTgyIDEyNi4xIDE4Mi43IDEyNi4yIDE4My42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTI1LjQgMjAyLjJDMTI1LjQgMjAyLjIgMTE2Ljg4IDE5OS40MDkgOTguNCAyMDIuOEM5OC40IDIwMi44IDEwNy40MzEgMjAwLjcyMiAxMjYuMiAyMDNDMTM2LjUgMjA0LjI1IDEyNS40IDIwMi4yIDEyNS40IDIwMi4yeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTI3LjQ5OCAyMDIuMTI5QzEyNy40OTggMjAyLjEyOSAxMTkuMjUyIDE5OC42MTEgMTAwLjU0NyAyMDAuMzkyQzEwMC41NDcgMjAwLjM5MiAxMDkuNzI1IDE5OS4xMDMgMTI4LjIyNiAyMDIuOTk1QzEzOC4zOCAyMDUuMTMxIDEyNy40OTggMjAyLjEyOSAxMjcuNDk4IDIwMi4xMjl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xMjkuMjg2IDIwMi4yMjJDMTI5LjI4NiAyMDIuMjIyIDEyMS4zMjQgMTk4LjEwMSAxMDIuNTM5IDE5OC40ODZDMTAyLjUzOSAxOTguNDg2IDExMS43ODcgMTk3Ljg4MiAxMjkuOTQ4IDIwMy4xNEMxMzkuOTE0IDIwNi4wMjUgMTI5LjI4NiAyMDIuMjIyIDEyOS4yODYgMjAyLjIyMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTEzMC41NTYgMjAyLjQ0NUMxMzAuNTU2IDIwMi40NDUgMTIzLjczMiAxOTguMTM4IDEwNi44NTggMTk3LjA0QzEwNi44NTggMTk3LjA0IDExNS4xOTcgMTk3LjIxIDEzMS4wNzggMjAzLjMxOUMxMzkuNzk0IDIwNi42NzIgMTMwLjU1NiAyMDIuNDQ1IDEzMC41NTYgMjAyLjQ0NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTI0NS44NCAyMTIuOTYxQzI0NS44NCAyMTIuOTYxIDI0NC45MSAyMTMuNjA1IDI0NS4xMjQgMjEyLjQyNEMyNDUuMzM5IDIxMS4yNDMgMjczLjU0NyAxOTguMDczIDI3Ny4xNjEgMTk4LjMyM0MyNzcuMTYxIDE5OC4zMjMgMjQ2LjkxMyAyMTEuNTI5IDI0NS44NCAyMTIuOTYxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjQyLjQ0NiAyMTMuNkMyNDIuNDQ2IDIxMy42IDI0MS41NyAyMTQuMzE1IDI0MS42OTEgMjEzLjEyMUMyNDEuODEyIDIxMS45MjcgMjY4Ljg5OSAxOTYuNTgyIDI3Mi41MjEgMTk2LjU0OEMyNzIuNTIxIDE5Ni41NDggMjQzLjQwNCAyMTIuMDg5IDI0Mi40NDYgMjEzLjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzkuMTYgMjE0Ljk3NUMyMzkuMTYgMjE0Ljk3NSAyMzguMzMyIDIxNS43NDcgMjM4LjM3NCAyMTQuNTQ3QzIzOC40MTYgMjEzLjM0OCAyNTguMjMzIDE5Ny44NTEgMjY4LjA0NSAxOTUuOTc3QzI2OC4wNDUgMTk1Ljk3NyAyNTAuMDE1IDIwNC4xMDQgMjM5LjE2IDIxNC45NzV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzYuMjg0IDIxNi44MzhDMjM2LjI4NCAyMTYuODM4IDIzNS41MzkgMjE3LjUzMiAyMzUuNTc3IDIxNi40NTNDMjM1LjYxNSAyMTUuMzczIDI1My40NDkgMjAxLjQyNiAyNjIuMjggMTk5Ljc0QzI2Mi4yOCAxOTkuNzQgMjQ2LjA1NCAyMDcuMDU0IDIzNi4yODQgMjE2LjgzOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjA0LjYgMzY0LjgwMUMyMDQuNiAzNjQuODAxIDE4OS40IDM2Mi40MDEgMjA2LjIgMzYwLjgwMUMyMDYuMiAzNjAuODAxIDIyNC4yIDM1OC44MDEgMjI4LjIgMzUzLjYwMUMyMjguMiAzNTMuNjAxIDI0MS44IDM0NC40MDEgMjQ0LjYgMzQ0LjAwMUMyNDcuNCAzNDMuNjAxIDI2My44IDM0MC4wMDEgMjY0LjIgMzM3LjYwMUMyNjQuNiAzMzUuMjAxIDI3MC42IDMzMi44MDEgMjcyLjIgMzMzLjYwMUMyNzMuOCAzMzQuNDAxIDI3My44IDM0My42MDEgMjcxIDM0NC40MDFDMjY4LjIgMzQ1LjIwMSAyNDkuNCAzNTIuNDAxIDI0MyAzNTMuNjAxQzIzNi42IDM1NC44MDEgMjI1IDM2Mi40MDEgMjIwLjIgMzYzLjYwMUMyMTUuNCAzNjQuODAxIDIwNC42IDM2NC44MDEgMjA0LjYgMzY0LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjc3LjYgMzI3LjQwMUMyNzcuNiAzMjcuNDAxIDI3NC42IDMyOS4wMDEgMjczLjQgMzMxLjYwMUMyNzMuNCAzMzEuNjAxIDI2NyAzNDIuMjAxIDI1Mi44IDM0NS40MDFDMjUyLjggMzQ1LjQwMSAyMjkuOCAzNTQuNDAxIDIyMiAzNTYuNDAxQzIyMiAzNTYuNDAxIDIwOC42IDM2MS40MDEgMjAxLjIgMzYwLjYwMUMyMDEuMiAzNjAuNjAxIDE5NC4yIDM2MC44MDEgMjAwLjQgMzYyLjQwMUMyMDAuNCAzNjIuNDAxIDIyMC42IDM2MC40MDEgMjI0IDM1OC42MDFDMjI0IDM1OC42MDEgMjM5LjYgMzUzLjQwMSAyNDIuNiAzNTAuODAxQzI0NS42IDM0OC4yMDEgMjYzLjggMzQzLjIwMSAyNjYgMzQxLjIwMUMyNjguMiAzMzkuMjAxIDI3OCAzMzAuODAxIDI3Ny42IDMyNy40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIxOC44ODIgMzU4LjkxMUMyMTguODgyIDM1OC45MTEgMjI0LjExMSAzNTguNjg1IDIyMi45NTggMzYwLjIzNEMyMjEuODA1IDM2MS43ODQgMjE5LjM1NyAzNjAuOTEgMjE5LjM1NyAzNjAuOTFMMjE4Ljg4MiAzNTguOTExeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMTEuNjggMzYwLjI2M0MyMTEuNjggMzYwLjI2MyAyMTYuOTA4IDM2MC4wMzcgMjE1Ljc1NiAzNjEuNTg2QzIxNC42MDMgMzYzLjEzNiAyMTIuMTU1IDM2Mi4yNjMgMjEyLjE1NSAzNjIuMjYzTDIxMS42OCAzNjAuMjYzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMDEuMjUxIDM2MS41MTFDMjAxLjI1MSAzNjEuNTExIDIwNi40OCAzNjEuMjg0IDIwNS4zMjcgMzYyLjgzNEMyMDQuMTc0IDM2NC4zODMgMjAxLjcyNiAzNjMuNTEgMjAxLjcyNiAzNjMuNTFMMjAxLjI1MSAzNjEuNTExeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTMuNjE3IDM2Mi4wNTVDMTkzLjYxNyAzNjIuMDU1IDE5OC44NDYgMzYxLjgyOSAxOTcuNjkzIDM2My4zNzhDMTk2LjU0IDM2NC45MjggMTk0LjA5MiAzNjQuMDU0IDE5NC4wOTIgMzY0LjA1NEwxOTMuNjE3IDM2Mi4wNTV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIzNS40MTUgMzUxLjUxM0MyMzUuNDE1IDM1MS41MTMgMjQyLjM3NSAzNTEuMjEyIDI0MC44NCAzNTMuMjc0QzIzOS4zMDYgMzU1LjMzNiAyMzYuMDQ3IDM1NC4xNzQgMjM2LjA0NyAzNTQuMTc0TDIzNS40MTUgMzUxLjUxM3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjQ1LjczIDM0Ny4wODhDMjQ1LjczIDM0Ny4wODggMjUxLjY4OSAzNDMuNzg3IDI1MS4xNTUgMzQ4Ljg0OUMyNTAuODg1IDM1MS40MDUgMjQ2LjM2MiAzNDkuNzQ5IDI0Ni4zNjIgMzQ5Ljc0OUwyNDUuNzMgMzQ3LjA4OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjU0Ljg2MiAzNDQuMjc0QzI1NC44NjIgMzQ0LjI3NCAyNjIuMDIxIDM0MC41NzMgMjYwLjI4NyAzNDYuMDM1QzI1OS41MDkgMzQ4LjQ4NSAyNTUuNDkzIDM0Ni45MzUgMjU1LjQ5MyAzNDYuOTM1TDI1NC44NjIgMzQ0LjI3NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjY0LjM3NiAzMzkuNDQ5QzI2NC4zNzYgMzM5LjQ0OSAyNjguNzM1IDMzNC41NDggMjY5LjgwMSAzNDEuMjFDMjcwLjIwNyAzNDMuNzQ4IDI2NS4wMDggMzQyLjExIDI2NS4wMDggMzQyLjExTDI2NC4zNzYgMzM5LjQ0OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjI2LjgzNCAzNTUuOTk3QzIyNi44MzQgMzU1Ljk5NyAyMzIuMDYyIDM1NS43NyAyMzAuOTEgMzU3LjMyQzIyOS43NTcgMzU4Ljg2OSAyMjcuMzA4IDM1Ny45OTYgMjI3LjMwOCAzNTcuOTk2TDIyNi44MzQgMzU1Ljk5N3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTI2Mi40MzQgMjM0LjYwM0MyNjIuNDM0IDIzNC42MDMgMjYxLjcwOCAyMzUuMjY4IDI2MS43MDcgMjM0LjE5N0MyNjEuNzA3IDIzMy4xMjcgMjc5LjE5MSAyMTkuODYzIDI4OC4wMzQgMjE4LjQ3OUMyODguMDM0IDIxOC40NzkgMjcxLjkzNSAyMjUuMjA4IDI2Mi40MzQgMjM0LjYwM3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjY1LjQgMjk4LjRDMjY1LjQgMjk4LjQgMjg3LjQwMSAzMjAuODAxIDI5Ni42MDEgMzI0LjQwMUMyOTYuNjAxIDMyNC40MDEgMzA1LjgwMSAzMzUuNjAxIDMwMS44MDEgMzYxLjYwMUMzMDEuODAxIDM2MS42MDEgMjk4LjYwMSAzNjkuMjAxIDI5NS40MDEgMzQ4LjQwMUMyOTUuNDAxIDM0OC40MDEgMjk4LjYwMSAzMjMuMjAxIDI4Ny40MDEgMzM5LjIwMUMyODcuNDAxIDMzOS4yMDEgMjc5IDMyOS4zMDEgMjg1LjQgMzI5LjYwMUMyODUuNCAzMjkuNjAxIDI4OC42MDEgMzMxLjYwMSAyODkuMDAxIDMzMC4wMDFDMjg5LjQwMSAzMjguNDAxIDI4MS40IDMxNC44MDEgMjY0LjIgMzAwLjRDMjQ3IDI4NiAyNjUuNCAyOTguNCAyNjUuNCAyOTguNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIwNyAzMzcuMjAxQzIwNyAzMzcuMjAxIDIwNi44IDMzNS40MDEgMjA4LjYgMzM2LjIwMUMyMTAuNCAzMzcuMDAxIDMwNC42MDEgMzQzLjIwMSAzMzYuMjAxIDM2Ny4yMDFDMzM2LjIwMSAzNjcuMjAxIDI5MS4wMDEgMzQ0LjAwMSAyMDcgMzM3LjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIxNy40IDMzMi44MDFDMjE3LjQgMzMyLjgwMSAyMTcuMiAzMzEuMDAxIDIxOSAzMzEuODAxQzIyMC44IDMzMi42MDEgMzU3LjQwMSAzMzEuNjAxIDM4MS4wMDEgMzY0LjAwMUMzODEuMDAxIDM2NC4wMDEgMzU5LjAwMSAzMzguODAxIDIxNy40IDMzMi44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMjkgMzI4LjgwMUMyMjkgMzI4LjgwMSAyMjguOCAzMjcuMDAxIDIzMC42IDMyNy44MDFDMjMyLjQgMzI4LjYwMSA0MDUuODAxIDMxNS42MDEgNDI5LjQwMSAzNDguMDAxQzQyOS40MDEgMzQ4LjAwMSA0MTkuODAxIDMyMi40MDEgMjI5IDMyOC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzkgMzI0LjAwMUMyMzkgMzI0LjAwMSAyMzguOCAzMjIuMjAxIDI0MC42IDMyMy4wMDFDMjQyLjQgMzIzLjgwMSAzNjQuNjAxIDI4NS4yIDM4OC4yMDEgMzE3LjYwMUMzODguMjAxIDMxNy42MDEgMzc0LjgwMSAyOTMgMjM5IDMyNC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xODEgMzQ2LjgwMUMxODEgMzQ2LjgwMSAxODAuOCAzNDUuMDAxIDE4Mi42IDM0NS44MDFDMTg0LjQgMzQ2LjYwMSAyMDIuMiAzNDguODAxIDIwNC4yIDM4Ny42MDFDMjA0LjIgMzg3LjYwMSAxOTcgMzQ1LjYwMSAxODEgMzQ2LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE3Mi4yIDM0OC40MDFDMTcyLjIgMzQ4LjQwMSAxNzIgMzQ2LjYwMSAxNzMuOCAzNDcuNDAxQzE3NS42IDM0OC4yMDEgMTg5LjggMzQzLjYwMSAxODcgMzgyLjQwMUMxODcgMzgyLjQwMSAxODguMiAzNDcuMjAxIDE3Mi4yIDM0OC40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xNjQuMiAzNDguODAxQzE2NC4yIDM0OC44MDEgMTY0IDM0Ny4wMDEgMTY1LjggMzQ3LjgwMUMxNjcuNiAzNDguNjAxIDE4MyAzNDkuMjAxIDE3MC42IDM3MS42MDFDMTcwLjYgMzcxLjYwMSAxODAuMiAzNDcuNjAxIDE2NC4yIDM0OC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMTEuNTI2IDMwNC40NjVDMjExLjUyNiAzMDQuNDY1IDIxMS4wODIgMzA2LjQ2NCAyMTIuNjMxIDMwNS4yNDdDMjI4LjY5OSAyOTIuNjIyIDI2MS4xNDEgMjMzLjcyIDMxNi44MjYgMjI4LjA4NkMzMTYuODI2IDIyOC4wODYgMjc4LjUxOCAyMTUuOTc2IDIxMS41MjYgMzA0LjQ2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIyMi43MjYgMzAyLjY2NUMyMjIuNzI2IDMwMi42NjUgMjIxLjM2MyAzMDEuNDcyIDIyMy4yMzEgMzAwLjg0N0MyMjUuMDk5IDMwMC4yMjIgMzM3LjU0MSAyMjcuNzIgMzc2LjgyNiAyMzUuNjg2QzM3Ni44MjYgMjM1LjY4NiAzNDkuNzE5IDIyOC4xNzYgMjIyLjcyNiAzMDIuNjY1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjAxLjg4NSAzMDguNzY3QzIwMS44ODUgMzA4Ljc2NyAyMDEuMzc2IDMxMC4zNjYgMjAzLjA4NyAzMDkuMzlDMjEyLjA2MiAzMDQuMjcgMjE1LjY3NyAyNDcuMDU5IDI1OS4yNTQgMjQ1LjgwNEMyNTkuMjU0IDI0NS44MDQgMjI2Ljg0MyAyMzEuMDkgMjAxLjg4NSAzMDguNzY3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTgxLjk2MiAzMTkuNzkzQzE4MS45NjIgMzE5Ljc5MyAxODAuODg1IDMyMS4wNzkgMTgyLjgzOCAzMjAuODI1QzE5My4wODQgMzE5LjQ5MyAyMTQuNDg5IDI3OC4yMjIgMjU4LjkyOCAyODMuMzAxQzI1OC45MjggMjgzLjMwMSAyMjYuOTYyIDI2OC45NTUgMTgxLjk2MiAzMTkuNzkzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTkzLjIgMzEzLjY2N0MxOTMuMiAzMTMuNjY3IDE5Mi4zODkgMzE1LjEzNiAxOTQuMjU4IDMxNC41MTFDMjA0LjA1NyAzMTEuMjM3IDIxNy4xNDEgMjY2LjYyNSAyNjEuNzI5IDI2My4wNzhDMjYxLjcyOSAyNjMuMDc4IDIyNy42MDMgMjU1LjEzNSAxOTMuMiAzMTMuNjY3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTc0LjkyMiAzMjQuOTEyQzE3NC45MjIgMzI0LjkxMiAxNzQuMDQ5IDMyNS45NTQgMTc1LjYzMSAzMjUuNzQ4QzE4My45MyAzMjQuNjY5IDIwMS4yNjggMjkxLjI0IDIzNy4yNjQgMjk1LjM1NEMyMzcuMjY0IDI5NS4zNTQgMjExLjM3MSAyODMuNzM0IDE3NC45MjIgMzI0LjkxMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE2Ny4zMjMgMzMwLjgyMUMxNjcuMzIzIDMzMC44MjEgMTY2LjMxOCAzMzEuODY2IDE2Ny45MDkgMzMxLjc0OEMxNzIuMDc3IDMzMS40MzkgMjAyLjcxNSAyOTguMzYgMjIxLjE4MyAzMTMuODYyQzIyMS4xODMgMzEzLjg2MiAyMDkuMTY4IDI5NS4xMzkgMTY3LjMyMyAzMzAuODIxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjM2Ljg1NSAyOTguODk4QzIzNi44NTUgMjk4Ljg5OCAyMzUuNjU0IDI5Ny41NDMgMjM3LjU4NiAyOTcuMTU4QzIzOS41MTggMjk2Ljc3NCAzNjAuMjIxIDIzOS4wNjEgMzk4LjE4NCAyNTEuOTI3QzM5OC4xODQgMjUxLjkyNyAzNzIuMjQzIDI0MS4wNTMgMjM2Ljg1NSAyOTguODk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjAzLjQgMzYzLjIwMUMyMDMuNCAzNjMuMjAxIDIwMy4yIDM2MS40MDEgMjA1IDM2Mi4yMDFDMjA2LjggMzYzLjAwMSAyMjIuMiAzNjMuNjAxIDIwOS44IDM4Ni4wMDFDMjA5LjggMzg2LjAwMSAyMTkuNCAzNjIuMDAxIDIwMy40IDM2My4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMTMuOCAzNjEuNjAxQzIxMy44IDM2MS42MDEgMjEzLjYgMzU5LjgwMSAyMTUuNCAzNjAuNjAxQzIxNy4yIDM2MS40MDEgMjM1IDM2My42MDEgMjM3IDQwMi40MDFDMjM3IDQwMi40MDEgMjI5LjggMzYwLjQwMSAyMTMuOCAzNjEuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjIwLjYgMzYwLjAwMUMyMjAuNiAzNjAuMDAxIDIyMC40IDM1OC4yMDEgMjIyLjIgMzU5LjAwMUMyMjQgMzU5LjgwMSAyNDguNiAzNjMuMjAxIDI3Mi4yIDM5NS42MDFDMjcyLjIgMzk1LjYwMSAyMzYuNiAzNTguODAxIDIyMC42IDM2MC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMjguMjI1IDM1Ny45NzJDMjI4LjIyNSAzNTcuOTcyIDIyNy43ODggMzU2LjIxNCAyMjkuNjc4IDM1Ni43NjhDMjMxLjU2OCAzNTcuMzIyIDI1Mi4wMDIgMzU1LjQyMyAyOTAuMDk5IDM4OS41OTlDMjkwLjA5OSAzODkuNTk5IDI0My45MjQgMzU0LjY1NiAyMjguMjI1IDM1Ny45NzJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzguNjI1IDM1My41NzJDMjM4LjYyNSAzNTMuNTcyIDIzOC4xODggMzUxLjgxNCAyNDAuMDc4IDM1Mi4zNjhDMjQxLjk2OCAzNTIuOTIyIDI3Ni44MDIgMzU3LjQyMyAzMjguNDk5IDM5Mi4zOTlDMzI4LjQ5OSAzOTIuMzk5IDI1NC4zMjQgMzUwLjI1NiAyMzguNjI1IDM1My41NzJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xOTguMiAzNDIuMDAxQzE5OC4yIDM0Mi4wMDEgMTk4IDM0MC4yMDEgMTk5LjggMzQxLjAwMUMyMDEuNiAzNDEuODAxIDI1NSAzNDQuNDAxIDI4NS40IDM3MS4yMDFDMjg1LjQgMzcxLjIwMSAyNTAuNDk5IDM0Ni40MjYgMTk4LjIgMzQyLjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE4OC4yIDM0Ni4wMDFDMTg4LjIgMzQ2LjAwMSAxODggMzQ0LjIwMSAxODkuOCAzNDUuMDAxQzE5MS42IDM0NS44MDEgMjE2LjIgMzQ5LjIwMSAyMzkuOCAzODEuNjAxQzIzOS44IDM4MS42MDEgMjA0LjIgMzQ0LjgwMSAxODguMiAzNDYuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjQ5LjUwMyAzNDguOTYyQzI0OS41MDMgMzQ4Ljk2MiAyNDguOTM4IDM0Ny4yNDEgMjUwLjg2NCAzNDcuNjU1QzI1Mi43OSAzNDguMDY4IDI4Ny44NiAzNTAuMDA0IDM0MS45ODEgMzgxLjA5OEMzNDEuOTgxIDM4MS4wOTggMjY0LjMxNyAzNDYuNzA0IDI0OS41MDMgMzQ4Ljk2MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTI1Ny45MDMgMzQ2LjU2MkMyNTcuOTAzIDM0Ni41NjIgMjU3LjMzOCAzNDQuODQxIDI1OS4yNjQgMzQ1LjI1NUMyNjEuMTkgMzQ1LjY2OCAyOTYuMjYgMzQ3LjYwNCAzNTAuMzgxIDM3OC42OThDMzUwLjM4MSAzNzguNjk4IDI3My4zMTcgMzQzLjkwNCAyNTcuOTAzIDM0Ni41NjJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yNjcuNTAzIDM0MS41NjJDMjY3LjUwMyAzNDEuNTYyIDI2Ni45MzggMzM5Ljg0MSAyNjguODY0IDM0MC4yNTVDMjcwLjc5IDM0MC42NjggMzEzLjg2IDM0NS4wMDQgNDAzLjU4MiAzNzkuMjk4QzQwMy41ODIgMzc5LjI5OCAyODIuOTE3IDMzOC45MDQgMjY3LjUwMyAzNDEuNTYyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNTYuMiAzNDguNDAxQzE1Ni4yIDM0OC40MDEgMTYxLjQgMzQ4LjAwMSAxNjAuMiAzNDkuNjAxQzE1OSAzNTEuMjAxIDE1Ni42IDM1MC40MDEgMTU2LjYgMzUwLjQwMUwxNTYuMiAzNDguNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xODcgMzYyLjQwMUMxODcgMzYyLjQwMSAxOTIuMiAzNjIuMDAxIDE5MSAzNjMuNjAxQzE4OS44IDM2NS4yMDEgMTg3LjQgMzY0LjQwMSAxODcuNCAzNjQuNDAxTDE4NyAzNjIuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNzguMiAzNjIuMDAxQzE3OC4yIDM2Mi4wMDEgMTgzLjQgMzYxLjYwMSAxODIuMiAzNjMuMjAxQzE4MSAzNjQuODAxIDE3OC42IDM2NC4wMDEgMTc4LjYgMzY0LjAwMUwxNzguMiAzNjIuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik04Mi44MzEgMzUwLjE4MkM4Mi44MzEgMzUwLjE4MiA4Ny44NzYgMzUxLjUwNSA4Ni4yMTggMzUyLjYyNEM4NC41NjEgMzUzLjc0NCA4Mi41NTQgMzUyLjIwMiA4Mi41NTQgMzUyLjIwMkw4Mi44MzEgMzUwLjE4MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNODQuODMxIDM0MC41ODJDODQuODMxIDM0MC41ODIgODkuODc2IDM0MS45MDUgODguMjE4IDM0My4wMjRDODYuNTYxIDM0NC4xNDQgODQuNTU0IDM0Mi42MDIgODQuNTU0IDM0Mi42MDJMODQuODMxIDM0MC41ODJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTc3LjYzMSAzMzYuMTgyQzc3LjYzMSAzMzYuMTgyIDgyLjY3NiAzMzcuNTA1IDgxLjAxOCAzMzguNjI0Qzc5LjM2MSAzMzkuNzQ0IDc3LjM1NCAzMzguMjAyIDc3LjM1NCAzMzguMjAyTDc3LjYzMSAzMzYuMTgyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNTcuNCA0MTEuMjAxQzE1Ny40IDQxMS4yMDEgMTU1LjggNDExLjIwMSAxNTEuOCA0MTMuMjAxQzE0OS44IDQxMy4yMDEgMTM4LjYgNDE2LjgwMSAxMzMgNDI2LjgwMUMxMzMgNDI2LjgwMSAxNDUuNCA0MTcuMjAxIDE1Ny40IDQxMS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTI0NS4xMTYgNTAzLjg0N0MyNDUuMjU3IDUwNC4xMDUgMjQ1LjMxMiA1MDQuNTI1IDI0NS42MDQgNTA0LjU0MkMyNDYuMjYyIDUwNC41ODIgMjQ3LjQ5NSA1MDQuODgzIDI0Ny4zNyA1MDQuMjQ3QzI0Ni41MjIgNDk5Ljk0MSAyNDUuNjQ4IDQ5NS4wMDQgMjQxLjUxNSA0OTMuMTk3QzI0MC44NzYgNDkyLjkxOCAyMzkuNDM0IDQ5My4zMzEgMjM5LjM2IDQ5NC4yMTVDMjM5LjIzMyA0OTUuNzM5IDIzOS4xMTYgNDk3LjA4OCAyMzkuNDI1IDQ5OC41NTRDMjM5LjcyNSA0OTkuOTc1IDI0MS44ODMgNDk5Ljk4NSAyNDIuOCA0OTguNjAxQzI0My43MzYgNTAwLjI3MyAyNDQuMTY4IDUwMi4xMTYgMjQ1LjExNiA1MDMuODQ3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yMzQuMDM4IDUwOC41ODFDMjM0Ljc4NiA1MDkuOTk0IDIzNC42NTkgNTExLjg1MyAyMzYuMDc0IDUxMi40MTZDMjM2LjgxNCA1MTIuNzEgMjM4LjY2NCA1MTEuNzM1IDIzOC4yNDYgNTEwLjY2MUMyMzcuNDQ0IDUwOC42IDIzNy4wNTYgNTA2LjM2MSAyMzUuNjY3IDUwNC41NUMyMzUuNDY3IDUwNC4yODggMjM1LjcwNyA1MDMuNzU1IDIzNS41NDcgNTAzLjQyN0MyMzQuOTUzIDUwMi4yMDcgMjMzLjgwOCA1MDEuNDcyIDIzMi40IDUwMS44MDFDMjMxLjI4NSA1MDQuMDA0IDIzMi40MzMgNTA2LjEzMyAyMzMuOTU1IDUwNy44NDJDMjM0LjA5MSA1MDcuOTk0IDIzMy45MjUgNTA4LjM3IDIzNC4wMzggNTA4LjU4MXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTk0LjQzNiA1MDMuMzkxQzE5NC4zMjggNTAzLjAxNCAxOTQuMjkgNTAyLjU1MSAxOTQuNDU1IDUwMi4yM0MxOTQuOTg2IDUwMS4xOTcgMTk1Ljc3OSA1MDAuMDc1IDE5NS40NDIgNDk5LjA1M0MxOTUuMDk0IDQ5Ny45OTcgMTkzLjk3OCA0OTguMTc5IDE5My4zMjggNDk4Ljc0OEMxOTIuMTkzIDQ5OS43NDIgMTkyLjE0NCA1MDEuNTY4IDE5MS40NTMgNTAyLjkyN0MxOTEuMjU3IDUwMy4zMTMgMTkxLjMwOCA1MDMuODg2IDE5MC44NjcgNTA0LjI3N0MxOTAuMzkzIDUwNC42OTggMTg5Ljk1MyA1MDYuMjIyIDE5MC4wNDkgNTA2Ljc5M0MxOTAuMTAyIDUwNy4xMDYgMTg5LjkxOSA1MTcuMDE0IDE5MC4xNDEgNTE2Ljc1MUMxOTAuNzYgNTE2LjAxOCAxOTMuODEgNTA2LjI4NCAxOTMuODc5IDUwNS4zOTJDMTkzLjkzNiA1MDQuNjYxIDE5NC42NjggNTA0LjE5NiAxOTQuNDM2IDUwMy4zOTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE2OC43OTggNDk2LjU5OUMxNzEuNDMyIDQ5NC4xIDE3NC4yMjIgNDkxLjEzOSAxNzMuNzggNDg3LjQyN0MxNzMuNjY0IDQ4Ni40NTEgMTcxLjg4OSA0ODYuOTc4IDE3MS43MDIgNDg3LjgyNEMxNzAuOSA0OTEuNDQ5IDE2OC44NjEgNDk0LjExIDE2Ni4yOTMgNDk2LjUwMkMxNjQuMDk3IDQ5OC41NDkgMTYyLjIzNSA1MDQuODkzIDE2MiA1MDUuNDAxQzE2NS42OTcgNTAwLjE0NSAxNjcuOTU0IDQ5Ny4zOTkgMTY4Ljc5OCA0OTYuNTk5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNTUuMjI0IDQ5MC42MzVDMTU1Ljc0NyA0OTAuMjY1IDE1NS40NDUgNDg5Ljc3NCAxNTUuNjYyIDQ4OS40NDJDMTU2LjYxNSA0ODcuOTg0IDE1Ny45MTYgNDg2LjczOCAxNTcuOTM0IDQ4NUMxNTcuOTM3IDQ4NC43MjMgMTU3LjU1OSA0ODQuNDE0IDE1Ny4yMjQgNDg0LjYzOEMxNTYuOTQ3IDQ4NC44MjIgMTU2LjYwNSA0ODQuOTUyIDE1Ni40OTcgNDg1LjA4MkMxNTQuNDY3IDQ4Ny41MzEgMTUzLjA2NyA0OTAuMjAyIDE1MS42MjQgNDkzLjAxNEMxNTEuNDQxIDQ5My4zNzEgMTUwLjI5NyA0OTcuODYyIDE1MC42MSA0OTcuOTczQzE1MC44NDkgNDk4LjA1OCAxNTIuNTY5IDQ5My44NzcgMTUyLjc3OSA0OTMuNzYzQzE1NC4wNDIgNDkzLjA3NyAxNTQuMDU0IDQ5MS40NjIgMTU1LjIyNCA0OTAuNjM1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNzEuOTU3IDUxMC4xNzlDMTcyLjQwMSA1MDkuMzEgMTczLjk3NyA1MDguMTA4IDE3My44NjQgNTA3LjIxOUMxNzMuNzQ2IDUwNi4yOTEgMTc0LjIxNCA1MDQuODQ4IDE3My4zMDIgNTA1LjUzNkMxNzIuMDQ1IDUwNi40ODQgMTY4LjU5NiA1MDcuODMzIDE2OC4zMjYgNTEzLjY0MUMxNjguMyA1MTQuMjEyIDE3MS4yNzQgNTExLjUxOSAxNzEuOTU3IDUxMC4xNzl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE4Ni40IDQ5My4wMDFDMTg2LjggNDkyLjMzMyAxODcuNTA4IDQ5Mi44MDYgMTg3Ljk2NyA0OTIuNTQzQzE4OC42MTUgNDkyLjE3MSAxODkuMjI2IDQ5MS42MTMgMTg5LjUxOCA0OTAuOTY0QzE5MC40ODggNDg4LjgxNSAxOTIuMjU3IDQ4Ni45OTUgMTkyLjQgNDg0LjYwMUMxOTAuOTA5IDQ4My4xOTYgMTkwLjIzIDQ4NS4yMzYgMTg5LjYgNDg2LjIwMUMxODguMjc3IDQ4NC41NTQgMTg3LjI3OCA0ODYuNDI4IDE4NS45NzggNDg2Ljk0N0MxODUuOTA4IDQ4Ni45NzUgMTg1LjY5NSA0ODYuNjI4IDE4NS42MiA0ODYuNjU1QzE4NC40NDMgNDg3LjA5NSAxODMuNzYzIDQ4OC4xNzYgMTgyLjc2NSA0ODguOTU3QzE4Mi41OTQgNDg5LjA5MSAxODIuMTg5IDQ4OC45MTEgMTgyLjA0MiA0ODkuMDQ3QzE4MS4zOSA0ODkuNjUgMTgwLjQxNyA0ODkuOTc1IDE4MC4xMzcgNDkwLjY1N0MxNzkuMDI3IDQ5My4zNjQgMTc1Ljg4NyA0OTUuNDU5IDE3NCA1MDMuMDAxQzE3NC4zODEgNTAzLjkxIDE3OC41MTIgNDk2LjM1OSAxNzguOTk5IDQ5NS42NjFDMTc5LjgzNSA0OTQuNDY1IDE3OS45NTMgNDk3LjMyMiAxODEuMjI5IDQ5Ni42NTZDMTgxLjI4IDQ5Ni42MjkgMTgxLjQ2NiA0OTYuODY3IDE4MS42IDQ5Ny4wMDFDMTgxLjc5NCA0OTYuNzIxIDE4Mi4wMTIgNDk2LjQ5MiAxODIuNCA0OTYuNjAxQzE4Mi40IDQ5Ni4yMDEgMTgyLjI2NiA0OTUuNjQ1IDE4Mi40NjcgNDk1LjQ4NkMxODMuNzA0IDQ5NC41MDkgMTgzLjYyIDQ5My40NDEgMTg0LjQgNDkyLjIwMUMxODQuODU4IDQ5Mi45OSAxODUuOTE5IDQ5Mi4yNzEgMTg2LjQgNDkzLjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjQ2LjIgNTQ3LjQwMUMyNDYuMiA1NDcuNDAxIDI1My42IDUyNy4wMDEgMjQ5LjIgNTE1LjgwMUMyNDkuMiA1MTUuODAxIDI2MC42IDUzNy40MDEgMjU2IDU0OC42MDFDMjU2IDU0OC42MDEgMjU1LjYgNTM4LjIwMSAyNTEuNiA1MzMuMjAxQzI1MS42IDUzMy4yMDEgMjQ3LjYgNTQ2LjAwMSAyNDYuMiA1NDcuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yMzEuNCA1NDQuODAxQzIzMS40IDU0NC44MDEgMjM2LjggNTM2LjAwMSAyMjguOCA1MTcuNjAxQzIyOC44IDUxNy42MDEgMjI4IDUzOC4wMDEgMjIxLjIgNTQ5LjAwMUMyMjEuMiA1NDkuMDAxIDIzNS40IDUyOC44MDEgMjMxLjQgNTQ0LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjIxLjQgNTQyLjgwMUMyMjEuNCA1NDIuODAxIDIyMS4yIDUyMi44MDEgMjIxLjYgNTE5LjgwMUMyMjEuNiA1MTkuODAxIDIxNy44IDUzNi40MDEgMjA3LjYgNTQ2LjAwMUMyMDcuNiA1NDYuMDAxIDIyMiA1MzQuMDAxIDIyMS40IDU0Mi44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTIxMS44IDUxMC44MDFDMjExLjggNTEwLjgwMSAyMTcuOCA1MjQuNDAxIDIwNy44IDU0Mi44MDFDMjA3LjggNTQyLjgwMSAyMTQuMiA1MzAuNjAxIDIwOS40IDUyMy42MDFDMjA5LjQgNTIzLjYwMSAyMTIgNTIwLjIwMSAyMTEuOCA1MTAuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xOTIuNiA1NDIuNDAxQzE5Mi42IDU0Mi40MDEgMTkxLjYgNTI2LjgwMSAxOTMuNCA1MjQuNjAxQzE5My40IDUyNC42MDEgMTkzLjYgNTE4LjIwMSAxOTMuMiA1MTcuMjAxQzE5My4yIDUxNy4yMDEgMTk3LjIgNTExLjAwMSAxOTcuNCA1MTguNDAxQzE5Ny40IDUxOC40MDEgMTk4LjggNTI2LjIwMSAyMDEuNiA1MzAuODAxQzIwMS42IDUzMC44MDEgMjA1LjIgNTM2LjIwMSAyMDUgNTQyLjYwMUMyMDUgNTQyLjYwMSAxOTUgNTEyLjQwMSAxOTIuNiA1NDIuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xODkgNTE0LjgwMUMxODkgNTE0LjgwMSAxODIuNCA1MjUuNjAxIDE4MC42IDU0NC42MDFDMTgwLjYgNTQ0LjYwMSAxNzkuMiA1MzguNDAxIDE4MyA1MjQuMDAxQzE4MyA1MjQuMDAxIDE4Ny4yIDUwOC42MDEgMTg5IDUxNC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE2Ny4yIDUzNC42MDFDMTY3LjIgNTM0LjYwMSAxNzIuMiA1MjkuMjAxIDE3My42IDUyNC4yMDFDMTczLjYgNTI0LjIwMSAxNzcuMiA1MDguNDAxIDE3MC44IDUxNy4wMDFDMTcwLjggNTE3LjAwMSAxNzEgNTI1LjAwMSAxNjIuOCA1MzIuNDAxQzE2Mi44IDUzMi40MDEgMTY3LjYgNTMwLjAwMSAxNjcuMiA1MzQuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNjEuNCA1MjkuNjAxQzE2MS40IDUyOS42MDEgMTY0LjggNTEyLjIwMSAxNjUuNiA1MTEuNDAxQzE2NS42IDUxMS40MDEgMTY3LjQgNTA4LjAwMSAxNjQuNiA1MTEuMjAxQzE2NC42IDUxMS4yMDEgMTU1LjggNTMwLjQwMSAxNTEuOCA1MzcuMDAxQzE1MS44IDUzNy4wMDEgMTU5LjggNTI3LjgwMSAxNjEuNCA1MjkuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNTUuNiA1MTMuMDAxQzE1NS42IDUxMy4wMDEgMTY3LjIgNDkwLjYwMSAxNDUuNCA1MTYuNDAxQzE0NS40IDUxNi40MDEgMTU2LjQgNTA2LjYwMSAxNTUuNiA1MTMuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xNDAuMiA0OTguNDAxQzE0MC4yIDQ5OC40MDEgMTQ1IDQ3OS42MDEgMTQ3LjYgNDc5LjgwMUMxNDcuNiA0NzkuODAxIDE1NS44IDQ3MC44MDEgMTQ5LjIgNDgxLjQwMUMxNDkuMiA0ODEuNDAxIDE0My4yIDQ5MS4wMDEgMTQzLjggNTAwLjgwMUMxNDMuOCA1MDAuODAxIDE0My4yIDQ5MS4yMDEgMTQwLjIgNDk4LjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNDcwLjUgNDg3QzQ3MC41IDQ4NyA0NTguNSA0NzcgNDU2IDQ3My41QzQ1NiA0NzMuNSA0NjkuNSA0OTIgNDY5LjUgNDk5QzQ2OS41IDQ5OSA0NzIgNDkxLjUgNDcwLjUgNDg3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik00NzYgNDY1QzQ3NiA0NjUgNDU1IDQ1MCA0NTEuNSA0NDIuNUM0NTEuNSA0NDIuNSA0NzggNDcyIDQ3OCA0NzYuNUM0NzggNDc2LjUgNDc4LjUgNDY3LjUgNDc2IDQ2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNDkzIDMxMUM0OTMgMzExIDQ4MSAzMDMgNDc5LjUgMzA1QzQ3OS41IDMwNSA0OTAgMzExLjUgNDkyLjUgMzIwQzQ5Mi41IDMyMCA0OTEgMzExIDQ5MyAzMTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTUwMS41IDM5MS41TDQ4NCAzNzkuNUM0ODQgMzc5LjUgNTAzIDM5Ni41IDUwMy41IDQwMC41TDUwMS41IDM5MS41eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTEwLjc1IDM2OUwxMzIuNzUgMzczLjc1Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjEgNTMxQzE2MSA1MzEgMTYwLjUgNTI3LjUgMTUxLjUgNTM4Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNjYuNSA1MzZDMTY2LjUgNTM2IDE2OC41IDUyOS41IDE2MiA1MzQiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIyMC41IDU0NC41QzIyMC41IDU0NC41IDIyMiA1MzMuNSAyMTAuNSA1NDYuNSIvPgorIDwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMy5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmczLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDY0MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMy5yZGUKQEAgLTAsMCArMSwyMTY0IEBACiswIDEgc3ZnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgc3ZnIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMy5yZHIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmczLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDY0MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMy5yZHIKQEAgLTAsMCArMSwyMTY0IEBACiswIDEgc3ZnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgCisxIDEgZyAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzIgMSBwYXRoIDEgMAorMiAxNCAjdGV4dCAwIDEgCisgCisxIDE1IGcgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMSBnIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIHBhdGggMSAwCisyIDE0ICN0ZXh0IDAgMSAKKyAKKzEgMTUgZyAwIDAKKzEgMTQgI3RleHQgMCAxIAorIAorMSAxIGcgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgcGF0aCAxIDAKKzIgMTQgI3RleHQgMCAxIAorIAorMSAxNSBnIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzAgMTUgc3ZnIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMy5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmczLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmIzZGEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvc3ZnMy5zYXgKQEAgLTAsMCArMSwyNDA3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQoc3ZnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNzcuNjk2IDI4NC4yODVDNzcuNjk2IDI4NC4yODUgNzcuNzk3IDI4Ni4xNzkgNzYuOTczIDI4Ni4xNkM3Ni4xNDkgMjg2LjE0MSA1OS42OTUgMjM4LjA2NiAzOS4xNjcgMjQwLjMwOUMzOS4xNjcgMjQwLjMwOSA1Ni45NSAyMzIuOTU2IDc3LjY5NiAyODQuMjg1eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTgxLjIyNiAyODEuMjYyQzgxLjIyNiAyODEuMjYyIDgwLjY3NyAyODMuMDc4IDc5LjkwOCAyODIuNzc5Qzc5LjE0IDI4Mi40ODEgODAuMDIzIDIzMS42NzUgNTkuOTU3IDIyNi44MDFDNTkuOTU3IDIyNi44MDEgNzkuMTggMjI1LjkzNyA4MS4yMjYgMjgxLjI2MnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xMDguNzE2IDMyMy41OUMxMDguNzE2IDMyMy41OSAxMTAuMzUyIDMyNC41NSAxMDkuODgyIDMyNS4yMjdDMTA5LjQxMSAzMjUuOTA0IDYwLjIzNyAzMTMuMTAyIDUwLjc4MiAzMzEuNDU5QzUwLjc4MiAzMzEuNDU5IDU0LjQ2MSAzMTIuNTcyIDEwOC43MTYgMzIzLjU5eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEwNS45MDcgMzMzLjgwMUMxMDUuOTA3IDMzMy44MDEgMTA3Ljc2MyAzMzQuMTk3IDEwNy41MjkgMzM0Ljk4OEMxMDcuMjk2IDMzNS43NzkgNTYuNTkzIDMzOS4xMjEgNTMuNDAzIDM1OS41MjJDNTMuNDAzIDM1OS41MjIgNTAuOTQ1IDM0MC40MzcgMTA1LjkwNyAzMzMuODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEwMS42OTYgMzI4LjI3NkMxMDEuNjk2IDMyOC4yNzYgMTAzLjQ3NCAzMjguOTM5IDEwMy4xMjggMzI5LjY4N0MxMDIuNzgyIDMzMC40MzUgNTIuMTM0IDMyNi4zNDYgNDYuMDAyIDM0Ni4wNjRDNDYuMDAyIDM0Ni4wNjQgNDYuMzU0IDMyNi44MjUgMTAxLjY5NiAzMjguMjc2eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTkwLjk5MSAzMTAuMDcyQzkwLjk5MSAzMTAuMDcyIDkyLjI5OSAzMTEuNDQ2IDkxLjY2IDMxMS45NjdDOTEuMDIxIDMxMi40ODggNDcuMjc4IDI4Ni42MzQgMzMuMTMxIDMwMS42NzZDMzMuMTMxIDMwMS42NzYgNDEuODcyIDI4NC41MzMgOTAuOTkxIDMxMC4wNzJ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNODMuNDQ2IDMxNC4yNjNDODMuNDQ2IDMxNC4yNjMgODQuOTAyIDMxNS40OCA4NC4zMjYgMzE2LjA3MUM4My43NSAzMTYuNjYxIDM3LjM2MiAyOTUuOTIyIDI1LjAwOCAzMTIuNDY5QzI1LjAwOCAzMTIuNDY5IDMxLjc1MyAyOTQuNDQ3IDgzLjQ0NiAzMTQuMjYzeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTgwLjg0NiAzMTguMzM1QzgwLjg0NiAzMTguMzM1IDgyLjQ1NCAzMTkuMzQzIDgxLjk2NCAzMjAuMDA2QzgxLjQ3NCAzMjAuNjY5IDMyLjY5MiAzMDYuNDQ2IDIyLjcwOSAzMjQuNTIyQzIyLjcwOSAzMjQuNTIyIDI2LjkzNCAzMDUuNzQ5IDgwLjg0NiAzMTguMzM1eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTkxLjU4IDMxOC45NDlDOTEuNTggMzE4Ljk0OSA5Mi43MDIgMzIwLjQ4IDkyLjAwMSAzMjAuOTE1QzkxLjMgMzIxLjM1IDUxLjIzMSAyOTAuMTAyIDM1LjI3MyAzMDMuMjA3QzM1LjI3MyAzMDMuMjA3IDQ2LjEzOCAyODcuMzI2IDkxLjU4IDMxOC45NDl6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNzEuOCAyOTBDNzEuOCAyOTAgNzIuNCAyOTEuOCA3MS42IDI5MkM3MC44IDI5Mi4yIDQyLjIgMjUwLjIgMjIuOTk5IDI1Ny44QzIyLjk5OSAyNTcuOCAzOC4yIDI0NiA3MS44IDI5MHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J003Mi40OTUgMjk2Ljk3OUM3Mi40OTUgMjk2Ljk3OSA3My40NyAyOTguNjA4IDcyLjczMSAyOTguOTc1QzcxLjk5MyAyOTkuMzQzIDM1LjAwOCAyNjQuNDk5IDE3Ljg5OSAyNzYuMDYxQzE3Ljg5OSAyNzYuMDYxIDMwLjE5NiAyNjEuMjYxIDcyLjQ5NSAyOTYuOTc5eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTcyLjM4IDMwMS4zNDlDNzIuMzggMzAxLjM0OSA3My41MDIgMzAyLjg4IDcyLjgwMSAzMDMuMzE1QzcyLjEgMzAzLjc0OSAzMi4wMzEgMjcyLjUwMiAxNi4wNzMgMjg1LjYwN0MxNi4wNzMgMjg1LjYwNyAyNi45MzggMjY5LjcyNiA3Mi4zOCAzMDEuMzQ5eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J003MC4xNyAzMDMuMDY1QzcwLjY3MyAzMDkuMTEzIDcxLjY2MSAzMTUuNjgyIDczLjQgMzE4LjgwMUM3My40IDMxOC44MDEgNjkuOCAzMzEuMjAxIDc4LjYgMzQ0LjQwMUM3OC42IDM0NC40MDEgNzguMiAzNTEuNjAxIDc5LjggMzU0LjgwMUM3OS44IDM1NC44MDEgODMuOCAzNjMuMjAxIDg4LjYgMzY0LjAwMUM5Mi40ODQgMzY0LjY0OCAxMDEuMjA3IDM2Ny43MTcgMTExLjA2OCAzNjkuMTIxQzExMS4wNjggMzY5LjEyMSAxMjguMiAzODMuMjAxIDEyNSAzOTYuMDAxQzEyNSAzOTYuMDAxIDEyNC42IDQxMi40MDEgMTIxIDQxNC4wMDFDMTIxIDQxNC4wMDEgMTMyLjYgNDAyLjgwMSAxMjMgNDE5LjYwMUwxMTguNiA0MzguNDAxQzExOC42IDQzOC40MDEgMTQ0LjIgNDE2LjgwMSAxMjguNiA0MzUuMjAxTDExOC42IDQ2MS4yMDFDMTE4LjYgNDYxLjIwMSAxMzguMiA0NDIuODAxIDEzMSA0NTEuMjAxTDEyNy44IDQ2MC4wMDFDMTI3LjggNDYwLjAwMSAxNzEgNDMyLjgwMSAxNDAuMiA0NjIuNDAxQzE0MC4yIDQ2Mi40MDEgMTQ4LjIgNDU4LjgwMSAxNTIuNiA0NjEuNjAxQzE1Mi42IDQ2MS42MDEgMTU5LjQgNDYwLjQwMSAxNTguNiA0NjIuMDAxQzE1OC42IDQ2Mi4wMDEgMTM3LjggNDcyLjQwMSAxMzQuMiA0OTAuODAxQzEzNC4yIDQ5MC44MDEgMTQyLjYgNDgwLjgwMSAxMzkuNCA0OTEuNjAxTDEzOS44IDUwMy4yMDFDMTM5LjggNTAzLjIwMSAxNDMuOCA0ODEuNjAxIDE0My40IDUxOS4yMDFDMTQzLjQgNTE5LjIwMSAxNjIuNiA1MDEuMjAxIDE1MSA1MjIuMDAxTDE1MSA1MzguODAxQzE1MSA1MzguODAxIDE2Ni4yIDUyMi40MDEgMTU5LjggNTM1LjIwMUMxNTkuOCA1MzUuMjAxIDE2OS44IDUyNi40MDEgMTY1LjggNTQxLjYwMUMxNjUuOCA1NDEuNjAxIDE2NSA1NTIuMDAxIDE2OS40IDU0MC44MDFDMTY5LjQgNTQwLjgwMSAxODUuNCA1MTAuMjAxIDE3OS40IDUzNi40MDFDMTc5LjQgNTM2LjQwMSAxNzguNiA1NTUuNjAxIDE4My40IDU0MC44MDFDMTgzLjQgNTQwLjgwMSAxODMuOCA1NTEuMjAxIDE5MyA1NTguNDAxQzE5MyA1NTguNDAxIDE5MS44IDUwNy42MDEgMjA0LjYgNTQzLjYwMUwyMDguNiA1NjAuMDAxQzIwOC42IDU2MC4wMDEgMjExLjQgNTUwLjgwMSAyMTEgNTQ1LjYwMUMyMTEgNTQ1LjYwMSAyMjUuOCA1MjkuMjAxIDIxOSA1NTMuNjAxQzIxOSA1NTMuNjAxIDIzNC4yIDUzMC44MDEgMjMxIDU0NC4wMDFDMjMxIDU0NC4wMDEgMjIzLjQgNTYwLjAwMSAyMjUgNTY0LjgwMUMyMjUgNTY0LjgwMSAyNDEuOCA1MzAuMDAxIDI0MyA1MjguNDAxQzI0MyA1MjguNDAxIDI0MSA1NzAuODAyIDI1MS44IDUzNC44MDFDMjUxLjggNTM0LjgwMSAyNTcuNCA1NDYuODAxIDI1NC42IDU1MS4yMDFDMjU0LjYgNTUxLjIwMSAyNjIuNiA1NDMuMjAxIDI2MS44IDU0MC4wMDFDMjYxLjggNTQwLjAwMSAyNjYuNCA1MzEuODAxIDI2OS4yIDU0NS40MDFDMjY5LjIgNTQ1LjQwMSAyNzEgNTU0LjgwMSAyNzIuNiA1NTEuNjAxQzI3Mi42IDU1MS42MDEgMjc2LjYgNTc1LjYwMiAyNzcuOCA1NTIuODAxQzI3Ny44IDU1Mi44MDEgMjc5LjQgNTM5LjIwMSAyNzIuMiA1MjcuNjAxQzI3Mi4yIDUyNy42MDEgMjczIDUyNC40MDEgMjcwLjIgNTIwLjQwMUMyNzAuMiA1MjAuNDAxIDI4My44IDU0Mi4wMDEgMjc2LjYgNTEzLjIwMUMyNzYuNiA1MTMuMjAxIDI4Ny44MDEgNTIxLjIwMSAyODkuMDAxIDUyMS4yMDFDMjg5LjAwMSA1MjEuMjAxIDI3NS40IDQ5OC4wMDEgMjg0LjIgNTAyLjgwMUMyODQuMiA1MDIuODAxIDI3OSA0OTIuNDAxIDI5Ny4wMDEgNTA0LjQwMUMyOTcuMDAxIDUwNC40MDEgMjgxIDQ4OC40MDEgMjk4LjYwMSA0OTguMDAxQzI5OC42MDEgNDk4LjAwMSAzMDYuNjAxIDUwNC40MDEgMjk5LjAwMSA0OTQuNDAxQzI5OS4wMDEgNDk0LjQwMSAyODQuNiA0NzguNDAxIDMwNi42MDEgNDk2LjQwMUMzMDYuNjAxIDQ5Ni40MDEgMzE4LjIwMSA1MTIuODAxIDMxOS4wMDEgNTE1LjYwMUMzMTkuMDAxIDUxNS42MDEgMzA5LjAwMSA0ODYuNDAxIDMwNC42MDEgNDgzLjYwMUMzMDQuNjAxIDQ4My42MDEgMzEzLjAwMSA0NDcuMjAxIDM1NC4yMDEgNDYyLjgwMUMzNTQuMjAxIDQ2Mi44MDEgMzYxLjAwMSA0ODAuMDAxIDM2NS40MDEgNDYxLjYwMUMzNjUuNDAxIDQ2MS42MDEgMzc4LjIwMSA0NTUuMjAxIDM4OS40MDEgNDgyLjgwMUMzODkuNDAxIDQ4Mi44MDEgMzkzLjQwMSA0NjkuMjAxIDM5Mi42MDEgNDY2LjQwMUMzOTIuNjAxIDQ2Ni40MDEgMzk5LjQwMSA0NjcuNjAxIDM5OC42MDEgNDY2LjQwMUMzOTguNjAxIDQ2Ni40MDEgNDExLjgwMSA0NzAuODAxIDQxMy4wMDEgNDcwLjAwMUM0MTMuMDAxIDQ3MC4wMDEgNDE5LjgwMSA0NzYuODAxIDQyMC4yMDEgNDczLjIwMUM0MjAuMjAxIDQ3My4yMDEgNDI5LjQwMSA0NzYuMDAxIDQyNy40MDEgNDcyLjQwMUM0MjcuNDAxIDQ3Mi40MDEgNDM2LjIwMSA0ODguMDAxIDQzNi42MDEgNDkxLjYwMUw0MzkuMDAxIDQ3Ny42MDFMNDQxLjAwMSA0ODAuNDAxQzQ0MS4wMDEgNDgwLjQwMSA0NDIuNjAxIDQ3Mi44MDEgNDQxLjgwMSA0NzEuNjAxQzQ0MS4wMDEgNDcwLjQwMSA0NjEuODAxIDQ3OC40MDEgNDY2LjYwMSA0OTkuMjAxTDQ2OC42MDEgNTA3LjYwMUM0NjguNjAxIDUwNy42MDEgNDc0LjYwMSA0OTIuODAxIDQ3My4wMDEgNDg4LjgwMUM0NzMuMDAxIDQ4OC44MDEgNDc4LjIwMSA0ODkuNjAxIDQ3OC42MDEgNDk0LjAwMUM0NzguNjAxIDQ5NC4wMDEgNDgyLjYwMSA0NzAuODAxIDQ3Ny44MDEgNDY0LjgwMUM0NzcuODAxIDQ2NC44MDEgNDgyLjIwMSA0NjQuMDAxIDQ4My40MDEgNDY3LjYwMUw0ODMuNDAxIDQ2MC40MDFDNDgzLjQwMSA0NjAuNDAxIDQ5MC42MDEgNDYxLjIwMSA0OTAuNjAxIDQ1OC44MDFDNDkwLjYwMSA0NTguODAxIDQ5NS4wMDEgNDU0LjgwMSA0OTcuMDAxIDQ1OS42MDFDNDk3LjAwMSA0NTkuNjAxIDQ4NC42MDEgNDI0LjQwMSA1MDMuMDAxIDQ0My42MDFDNTAzLjAwMSA0NDMuNjAxIDUxMC4yMDEgNDU0LjQwMSA1MDYuNjAxIDQzNS42MDFDNTAzLjAwMSA0MTYuODAxIDQ5OS4wMDEgNDE1LjIwMSA1MDMuODAxIDQxNC44MDFDNTAzLjgwMSA0MTQuODAxIDUwNC42MDEgNDExLjIwMSA1MDIuNjAxIDQwOS42MDFDNTAwLjYwMSA0MDguMDAxIDUwMy44MDEgNDA5LjYwMSA1MDMuODAxIDQwOS42MDFDNTAzLjgwMSA0MDkuNjAxIDUwOC42MDEgNDEzLjYwMSA1MDMuNDAxIDM5MS42MDFDNTAzLjQwMSAzOTEuNjAxIDUwOS44MDEgMzkzLjIwMSA0OTcuODAxIDM2NC4wMDFDNDk3LjgwMSAzNjQuMDAxIDUwMC42MDEgMzYxLjYwMSA0OTYuNjAxIDM1My4yMDFDNDk2LjYwMSAzNTMuMjAxIDUwNC42MDEgMzU3LjYwMSA1MDcuNDAxIDM1Ni4wMDFDNTA3LjQwMSAzNTYuMDAxIDUwNy4wMDEgMzU0LjQwMSA1MDMuODAxIDM1MC40MDFDNTAzLjgwMSAzNTAuNDAxIDQ4Mi4yMDEgMjk1LjYgNTAyLjYwMSAzMTcuNjAxQzUwMi42MDEgMzE3LjYwMSA1MTQuNDUxIDMzMS4xNTEgNTA4LjA1MSAzMDguMzUxQzUwOC4wNTEgMzA4LjM1MSA0OTguOTQgMjg0LjM0MSA0OTkuNzE3IDI4MC4wNDVMNzAuMTcgMzAzLjA2NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2M3MjI2OyBzdHJva2U6IzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNDk5LjcxNyAyODAuMjQ1QzUwMC4zNDUgMjgwLjQyNiA1MDIuNTUxIDI4MS41NSA1MDMuODAxIDI4My4yQzUwMy44MDEgMjgzLjIgNTEwLjYwMSAyOTQgNTA1LjQwMSAyNzUuNkM1MDUuNDAxIDI3NS42IDQ5Ni4yMDEgMjQ2LjggNTA1LjAwMSAyNThDNTA1LjAwMSAyNTggNTExLjAwMSAyNjUuMiA1MDcuODAxIDI1MS42QzUwMy45MzYgMjM1LjE3MyA1MDEuNDAxIDIyOC44IDUwMS40MDEgMjI4LjhDNTAxLjQwMSAyMjguOCA1MTMuMDAxIDIzMy42IDQ4Ni4yMDEgMTk0TDQ5NS4wMDEgMTk3LjZDNDk1LjAwMSAxOTcuNiA0NzUuNDAxIDE1OCA0NTMuODAxIDE1Mi44TDQ0NS44MDEgMTQ2LjhDNDQ1LjgwMSAxNDYuOCA0ODQuMjAxIDEwOC44IDQ3MS40MDEgNzJDNDcxLjQwMSA3MiA0NjQuNjAxIDY2LjggNDU1LjAwMSA3NkM0NTUuMDAxIDc2IDQ0OC42MDEgODAuOCA0NDIuNjAxIDc5LjJDNDQyLjYwMSA3OS4yIDQxMS44MDEgODAuNCA0MDkuODAxIDgwLjRDNDA3LjgwMSA4MC40IDM3My4wMDEgNDMuMiAzMDcuNDAxIDYwLjhDMzA3LjQwMSA2MC44IDMwMi4yMDEgNjIuOCAyOTcuODAxIDYxLjZDMjk3LjgwMSA2MS42IDI3OS40IDQ1LjYgMjMwLjYgNjguNEMyMzAuNiA2OC40IDIyMC42IDcwLjQgMjE5IDcwLjRDMjE3LjQgNzAuNCAyMTQuNiA3MC40IDIwNi42IDc2LjhDMTk4LjYgODMuMiAxOTguMiA4NCAxOTYuMiA4NS42QzE5Ni4yIDg1LjYgMTc5LjggOTYuOCAxNzUgOTcuNkMxNzUgOTcuNiAxNjMuNCAxMDQgMTU5IDExNEwxNTUuNCAxMTUuMkMxNTUuNCAxMTUuMiAxNTMuOCAxMjIuNCAxNTMuNCAxMjMuNkMxNTMuNCAxMjMuNiAxNDguNiAxMjcuMiAxNDcuOCAxMzIuOEMxNDcuOCAxMzIuOCAxMzkgMTM4LjggMTM5LjQgMTQzLjJDMTM5LjQgMTQzLjIgMTM3LjggMTQ4LjQgMTM3IDE1My4yQzEzNyAxNTMuMiAxMjkuOCAxNTggMTMwLjYgMTYwLjhDMTMwLjYgMTYwLjggMTIzIDE3NC44IDEyNC4yIDE4MS42QzEyNC4yIDE4MS42IDExNy44IDE4MS4yIDExNSAxODMuNkMxMTUgMTgzLjYgMTE0LjIgMTg4LjQgMTEyLjYgMTg4LjhDMTEyLjYgMTg4LjggMTA5LjggMTkwIDExMi4yIDE5NEMxMTIuMiAxOTQgMTEwLjYgMTk2LjggMTEwLjIgMTk4LjRDMTEwLjIgMTk4LjQgMTExIDIwMS4yIDEwNi42IDIwNi44QzEwNi42IDIwNi44IDEwMC4yIDIyNS42IDEwMi4yIDIzMC44QzEwMi4yIDIzMC44IDEwMi42IDIzNS42IDk5LjggMjM3LjJDOTkuOCAyMzcuMiA5Ni4yIDIzNi44IDEwNC42IDI0OC44QzEwNC42IDI0OC44IDEwNS40IDI1MCAxMDIuMiAyNTIuNEMxMDIuMiAyNTIuNCA4NSAyNTYgODIuNiAyNzIuNEM4Mi42IDI3Mi40IDY5IDI4Ny4yIDY5IDI5Mi40QzY5IDI5NC43MDUgNjkuMjcxIDI5Ny44NTIgNjkuOTcgMzAyLjQ2NUM2OS45NyAzMDIuNDY1IDY5LjQgMzEwLjgwMSA5NyAzMTEuNjAxQzEyNC42IDMxMi40MDEgNDk5LjcxNyAyODAuMjQ1IDQ5OS43MTcgMjgwLjI0NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2M3MjI2JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J004NC40IDMwMi42QzU5LjQgMjYzLjIgNzMuOCAzMTkuNjAxIDczLjggMzE5LjYwMUM4Mi42IDM1NC4wMDEgMjEyLjIgMzE2LjQwMSAyMTIuMiAzMTYuNDAxQzIxMi4yIDMxNi40MDEgMzgxLjAwMSAyODYgMzkyLjIwMSAyODJDNDAzLjQwMSAyNzggNDk4LjYwMSAyODQuNCA0OTguNjAxIDI4NC40TDQ5My4wMDEgMjY3LjZDNDI4LjIwMSAyMjEuMiA0MDkuMDAxIDI0NC40IDM5NS40MDEgMjQwLjRDMzgxLjgwMSAyMzYuNCAzODQuMjAxIDI0NiAzODEuMDAxIDI0Ni44QzM3Ny44MDEgMjQ3LjYgMzM4LjYwMSAyMjIuOCAzMzIuMjAxIDIyMy42QzMyNS44MDEgMjI0LjQgMzAwLjQ1OSAyMDAuNjQ5IDMxNS40MDEgMjMyLjRDMzMxLjQwMSAyNjYuNCAyNTcgMjcxLjYgMjQwLjIgMjYwLjRDMjIzLjQgMjQ5LjIgMjQ3LjQgMjc4LjggMjQ3LjQgMjc4LjhDMjY1LjggMjk4LjggMjMxLjQgMjgyIDIzMS40IDI4MkMxOTcgMjY5LjIgMTczIDI5NC44IDE2OS44IDI5NS42QzE2Ni42IDI5Ni40IDE2MS44IDI5OS42IDE2MSAyOTMuMkMxNjAuMiAyODYuOCAxNTIuNjkgMjcwLjA5OSAxMjEgMjk2LjRDMTAxIDMxMy4wMDEgODcuMiAyOTEgODcuMiAyOTFMODQuNCAzMDIuNnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZTg3ZjNhJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zMzMuNTEgMjI1LjM0NkMzMjcuMTEgMjI2LjE0NiAzMDEuNzQzIDIwMi40MDcgMzE2LjcxIDIzNC4xNDZDMzMzLjMxIDI2OS4zNDYgMjU4LjMxIDI3My4zNDYgMjQxLjUxIDI2Mi4xNDZDMjI0LjcwOSAyNTAuOTQ2IDI0OC43MSAyODAuNTQ2IDI0OC43MSAyODAuNTQ2QzI2Ny4xMSAzMDAuNTQ2IDIzMi43MDkgMjgzLjc0NiAyMzIuNzA5IDI4My43NDZDMTk4LjMwOSAyNzAuOTQ2IDE3NC4zMDkgMjk2LjU0NiAxNzEuMTA5IDI5Ny4zNDZDMTY3LjkwOSAyOTguMTQ2IDE2My4xMDkgMzAxLjM0NiAxNjIuMzA5IDI5NC45NDZDMTYxLjUwOSAyODguNTQ2IDE1NC4xMyAyNzIuMDEyIDEyMi4zMDkgMjk4LjE0NkMxMDEuMDczIDMxNS40OTIgODcuNTgyIDI5NC4wMzcgODcuNTgyIDI5NC4wMzdMODQuMzgyIDMwNC4xNDZDNTkuMzgyIDI2NC4zNDYgNzQuNDU0IDMyMi42NTUgNzQuNDU0IDMyMi42NTVDODMuMjU1IDM1Ny4wNTYgMjEzLjUwOSAzMTguMTQ2IDIxMy41MDkgMzE4LjE0NkMyMTMuNTA5IDMxOC4xNDYgMzgyLjMxIDI4Ny43NDYgMzkzLjUxIDI4My43NDZDNDA0LjcxIDI3OS43NDYgNDk5LjAzOCAyODYuMDczIDQ5OS4wMzggMjg2LjA3M0w0OTMuNTEgMjY4Ljc2NEM0MjguNzEgMjIyLjM2NCA0MTAuMzEgMjQ2LjE0NiAzOTYuNzEgMjQyLjE0NkMzODMuMTEgMjM4LjE0NiAzODUuNTEgMjQ3Ljc0NiAzODIuMzEgMjQ4LjU0NkMzNzkuMTEgMjQ5LjM0NiAzMzkuOTEgMjI0LjU0NiAzMzMuNTEgMjI1LjM0NnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZWE4YzRkJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zMzQuODE5IDIyNy4wOTFDMzI4LjQxOSAyMjcuODkxIDMwMy42ODUgMjAzLjg2MiAzMTguMDE5IDIzNS44OTFDMzM0LjIxOSAyNzIuMDkyIDI1OS42MTkgMjc1LjA5MiAyNDIuODE5IDI2My44OTJDMjI2LjAxOSAyNTIuNjkyIDI1MC4wMTkgMjgyLjI5MiAyNTAuMDE5IDI4Mi4yOTJDMjY4LjQxOSAzMDIuMjkyIDIzNC4wMTkgMjg1LjQ5MiAyMzQuMDE5IDI4NS40OTJDMTk5LjYxOSAyNzIuNjkyIDE3NS42MTggMjk4LjI5MiAxNzIuNDE4IDI5OS4wOTJDMTY5LjIxOCAyOTkuODkyIDE2NC40MTggMzAzLjA5MiAxNjMuNjE4IDI5Ni42OTJDMTYyLjgxOCAyOTAuMjkyIDE1NS41NyAyNzMuOTI1IDEyMy42MTggMjk5Ljg5MkMxMDEuMTQ1IDMxNy45ODMgODcuOTY0IDI5Ny4wNzQgODcuOTY0IDI5Ny4wNzRMODQuMzY0IDMwNS42OTJDNjAuNTY0IDI2Ni42OTIgNzUuMTA5IDMyNS43MSA3NS4xMDkgMzI1LjcxQzgzLjkwOSAzNjAuMTEgMjE0LjgxOSAzMTkuODkyIDIxNC44MTkgMzE5Ljg5MkMyMTQuODE5IDMxOS44OTIgMzgzLjYxOSAyODkuNDkyIDM5NC44MTkgMjg1LjQ5MkM0MDYuMDE5IDI4MS40OTIgNDk5LjQ3NCAyODcuNzQ2IDQ5OS40NzQgMjg3Ljc0Nkw0OTQuMDIgMjY5LjkyOEM0MjkuMjE5IDIyMy41MjggNDExLjYxOSAyNDcuODkxIDM5OC4wMTkgMjQzLjg5MUMzODQuNDE5IDIzOS44OTEgMzg2LjgxOSAyNDkuNDkxIDM4My42MTkgMjUwLjI5MkMzODAuNDE5IDI1MS4wOTIgMzQxLjIxOSAyMjYuMjkxIDMzNC44MTkgMjI3LjA5MXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZWM5OTYxJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zMzYuMTI4IDIyOC44MzdDMzI5LjcyOCAyMjkuNjM3IDMwNC45OTkgMjA1LjYwNSAzMTkuMzI4IDIzNy42MzdDMzM2LjEyOCAyNzUuMTkzIDI2MC4zOTQgMjc2LjQ4MiAyNDQuMTI4IDI2NS42MzdDMjI3LjMyOCAyNTQuNDM3IDI1MS4zMjggMjg0LjAzNyAyNTEuMzI4IDI4NC4wMzdDMjY5LjcyOCAzMDQuMDM3IDIzNS4zMjggMjg3LjIzNyAyMzUuMzI4IDI4Ny4yMzdDMjAwLjkyOCAyNzQuNDM3IDE3Ni45MjggMzAwLjAzNyAxNzMuNzI4IDMwMC44MzdDMTcwLjUyOCAzMDEuNjM3IDE2NS43MjggMzA0LjgzNyAxNjQuOTI4IDI5OC40MzdDMTY0LjEyOCAyOTIuMDM3IDE1Ny4wMTEgMjc1LjgzOSAxMjQuOTI3IDMwMS42MzdDMTAxLjIxOCAzMjAuNDc0IDg4LjM0NSAzMDAuMTEgODguMzQ1IDMwMC4xMUw4NC4zNDUgMzA3LjIzN0M2Mi41NDUgMjcwLjQzNyA3NS43NjQgMzI4Ljc2NSA3NS43NjQgMzI4Ljc2NUM4NC41NjQgMzYzLjE2NSAyMTYuMTI4IDMyMS42MzcgMjE2LjEyOCAzMjEuNjM3QzIxNi4xMjggMzIxLjYzNyAzODQuOTI4IDI5MS4yMzcgMzk2LjEyOSAyODcuMjM3QzQwNy4zMjkgMjgzLjIzNyA0OTkuOTExIDI4OS40MTkgNDk5LjkxMSAyODkuNDE5TDQ5NC41MjkgMjcxLjA5MkM0MjkuNzI5IDIyNC42OTEgNDEyLjkyOSAyNDkuNjM3IDM5OS4zMjkgMjQ1LjYzN0MzODUuNzI4IDI0MS42MzcgMzg4LjEyOCAyNTEuMjM3IDM4NC45MjggMjUyLjAzN0MzODEuNzI4IDI1Mi44MzcgMzQyLjUyOCAyMjguMDM3IDMzNi4xMjggMjI4LjgzN3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZWVhNTc1JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zMzcuNDM4IDIzMC41ODNDMzMxLjAzNyAyMzEuMzgzIDMwNi44MTQgMjA3LjEyOSAzMjAuNjM3IDIzOS4zODNDMzM3LjQzOCAyNzguNTgzIDI2Mi4yMzcgMjc4LjU4MyAyNDUuNDM3IDI2Ny4zODNDMjI4LjYzNyAyNTYuMTgzIDI1Mi42MzcgMjg1Ljc4MyAyNTIuNjM3IDI4NS43ODNDMjcxLjAzNyAzMDUuNzgzIDIzNi42MzcgMjg4Ljk4MyAyMzYuNjM3IDI4OC45ODNDMjAyLjIzNyAyNzYuMTgzIDE3OC4yMzcgMzAxLjc4MyAxNzUuMDM3IDMwMi41ODNDMTcxLjgzNyAzMDMuMzgzIDE2Ny4wMzcgMzA2LjU4MyAxNjYuMjM3IDMwMC4xODNDMTY1LjQzNyAyOTMuNzgzIDE1OC40NTIgMjc3Ljc1MiAxMjYuMjM3IDMwMy4zODNDMTAxLjI5MSAzMjIuOTY1IDg4LjcyNyAzMDMuMTQ2IDg4LjcyNyAzMDMuMTQ2TDg0LjMyNyAzMDguNzgzQzY0LjUyNyAyNzMuOTgyIDc2LjQxOCAzMzEuODE5IDc2LjQxOCAzMzEuODE5Qzg1LjIxOCAzNjYuMjIgMjE3LjQzNyAzMjMuMzgzIDIxNy40MzcgMzIzLjM4M0MyMTcuNDM3IDMyMy4zODMgMzg2LjIzOCAyOTIuOTgzIDM5Ny40MzggMjg4Ljk4M0M0MDguNjM4IDI4NC45ODMgNTAwLjM0NyAyOTEuMDkyIDUwMC4zNDcgMjkxLjA5Mkw0OTUuMDM4IDI3Mi4yNTVDNDMwLjIzOCAyMjUuODU1IDQxNC4yMzggMjUxLjM4MyA0MDAuNjM4IDI0Ny4zODNDMzg3LjAzOCAyNDMuMzgzIDM4OS40MzggMjUyLjk4MyAzODYuMjM4IDI1My43ODNDMzgzLjAzOCAyNTQuNTgzIDM0My44MzggMjI5Ljc4MyAzMzcuNDM4IDIzMC41ODN6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2YxYjI4OCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMzM4Ljc0NyAyMzIuMzI4QzMzMi4zNDcgMjMzLjEyOCAzMDYuMzgzIDIwOS42NzcgMzIxLjk0NyAyNDEuMTI4QzM0MS4xNDcgMjc5LjkyOCAyNjMuNTQ2IDI4MC4zMjggMjQ2Ljc0NiAyNjkuMTI4QzIyOS45NDYgMjU3LjkyOCAyNTMuOTQ2IDI4Ny41MjggMjUzLjk0NiAyODcuNTI4QzI3Mi4zNDYgMzA3LjUyOCAyMzcuOTQ2IDI5MC43MjggMjM3Ljk0NiAyOTAuNzI4QzIwMy41NDYgMjc3LjkyOCAxNzkuNTQ2IDMwMy41MjggMTc2LjM0NiAzMDQuMzI4QzE3My4xNDYgMzA1LjEyOCAxNjguMzQ2IDMwOC4zMjggMTY3LjU0NiAzMDEuOTI4QzE2Ni43NDYgMjk1LjUyOCAxNTkuODkyIDI3OS42NjUgMTI3LjU0NiAzMDUuMTI4QzEwMS4zNjQgMzI1LjQ1NiA4OS4xMDkgMzA2LjE4MyA4OS4xMDkgMzA2LjE4M0w4NC4zMDkgMzEwLjMyOEM2Ni4zMDkgMjc3LjEyOCA3Ny4wNzMgMzM0Ljg3NCA3Ny4wNzMgMzM0Ljg3NEM4NS44NzMgMzY5LjI3NCAyMTguNzQ2IDMyNS4xMjggMjE4Ljc0NiAzMjUuMTI4QzIxOC43NDYgMzI1LjEyOCAzODcuNTQ3IDI5NC43MjggMzk4Ljc0NyAyOTAuNzI4QzQwOS45NDcgMjg2LjcyOCA1MDAuNzgzIDI5Mi43NjQgNTAwLjc4MyAyOTIuNzY0TDQ5NS41NDcgMjczLjQxOUM0MzAuNzQ3IDIyNy4wMTkgNDE1LjU0NyAyNTMuMTI4IDQwMS45NDcgMjQ5LjEyOEMzODguMzQ3IDI0NS4xMjggMzkwLjc0NyAyNTQuNzI4IDM4Ny41NDcgMjU1LjUyOEMzODQuMzQ3IDI1Ni4zMjggMzQ1LjE0NyAyMzEuNTI4IDMzOC43NDcgMjMyLjMyOHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZjNiZjljJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zNDAuMDU2IDIzNC4wNzNDMzMzLjY1NSAyMzQuODczIDMwNy4zMTMgMjExLjYxMyAzMjMuMjU1IDI0Mi44NzNDMzQzLjY1NiAyODIuODc0IDI2NC44NTUgMjgyLjA3NCAyNDguMDU1IDI3MC44NzRDMjMxLjI1NSAyNTkuNjc0IDI1NS4yNTUgMjg5LjI3NCAyNTUuMjU1IDI4OS4yNzRDMjczLjY1NSAzMDkuMjc0IDIzOS4yNTUgMjkyLjQ3NCAyMzkuMjU1IDI5Mi40NzRDMjA0Ljg1NSAyNzkuNjc0IDE4MC44NTUgMzA1LjI3NCAxNzcuNjU1IDMwNi4wNzRDMTc0LjQ1NSAzMDYuODc0IDE2OS42NTUgMzEwLjA3NCAxNjguODU1IDMwMy42NzRDMTY4LjA1NSAyOTcuMjc0IDE2MS4zMzIgMjgxLjU3OCAxMjguODU1IDMwNi44NzRDMTAxLjQzNiAzMjcuOTQ3IDg5LjQ5MSAzMDkuMjE5IDg5LjQ5MSAzMDkuMjE5TDg0LjI5MSAzMTEuODc0QzY4LjI5MSAyODEuNjc0IDc3LjcyNyAzMzcuOTI5IDc3LjcyNyAzMzcuOTI5Qzg2LjUyNyAzNzIuMzI5IDIyMC4wNTUgMzI2Ljg3NCAyMjAuMDU1IDMyNi44NzRDMjIwLjA1NSAzMjYuODc0IDM4OC44NTYgMjk2LjQ3NCA0MDAuMDU2IDI5Mi40NzRDNDExLjI1NiAyODguNDc0IDUwMS4yMiAyOTQuNDM3IDUwMS4yMiAyOTQuNDM3TDQ5Ni4wNTYgMjc0LjU4M0M0MzEuMjU2IDIyOC4xODMgNDE2Ljg1NiAyNTQuODc0IDQwMy4yNTYgMjUwLjg3NEMzODkuNjU2IDI0Ni44NzMgMzkyLjA1NiAyNTYuNDc0IDM4OC44NTYgMjU3LjI3NEMzODUuNjU2IDI1OC4wNzQgMzQ2LjQ1NiAyMzMuMjczIDM0MC4wNTYgMjM0LjA3M3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZjVjY2IwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zNDEuMzY1IDIzNS44MTlDMzM0Ljk2NSAyMzYuNjE5IDMwNy41MjMgMjEzLjk0NCAzMjQuNTY1IDI0NC42MTlDMzQ2LjU2NSAyODQuMjE5IDI2Ni4xNjQgMjgzLjgxOSAyNDkuMzY0IDI3Mi42MTlDMjMyLjU2NCAyNjEuNDE5IDI1Ni41NjQgMjkxLjAxOSAyNTYuNTY0IDI5MS4wMTlDMjc0Ljk2NCAzMTEuMDE5IDI0MC41NjQgMjk0LjIxOSAyNDAuNTY0IDI5NC4yMTlDMjA2LjE2NCAyODEuNDE5IDE4Mi4xNjQgMzA3LjAxOSAxNzguOTY0IDMwNy44MTlDMTc1Ljc2NCAzMDguNjE5IDE3MC45NjQgMzExLjgxOSAxNzAuMTY0IDMwNS40MTlDMTY5LjM2NCAyOTkuMDE5IDE2Mi43NzMgMjgzLjQ5MiAxMzAuMTY0IDMwOC42MTlDMTAxLjUwOSAzMzAuNDM4IDg5Ljg3MyAzMTIuMjU2IDg5Ljg3MyAzMTIuMjU2TDg0LjI3MyAzMTMuNDE5QzY5Ljg3MiAyODUuMDE5IDc4LjM4MiAzNDAuOTgzIDc4LjM4MiAzNDAuOTgzQzg3LjE4MiAzNzUuMzg0IDIyMS4zNjQgMzI4LjYxOSAyMjEuMzY0IDMyOC42MTlDMjIxLjM2NCAzMjguNjE5IDM5MC4xNjUgMjk4LjIxOSA0MDEuMzY1IDI5NC4yMTlDNDEyLjU2NSAyOTAuMjE5IDUwMS42NTYgMjk2LjExIDUwMS42NTYgMjk2LjExTDQ5Ni41NjUgMjc1Ljc0NkM0MzEuNzY1IDIyOS4zNDYgNDE4LjE2NSAyNTYuNjE5IDQwNC41NjUgMjUyLjYxOUMzOTAuOTY1IDI0OC42MTkgMzkzLjM2NSAyNTguMjE5IDM5MC4xNjUgMjU5LjAxOUMzODYuOTY1IDI1OS44MTkgMzQ3Ljc2NSAyMzUuMDE5IDM0MS4zNjUgMjM1LjgxOXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZjhkOGM0JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zNDIuNjc0IDIzNy41NjVDMzM2LjI3NCAyMzguMzY1IDMwOC44MzIgMjE1LjY4OSAzMjUuODc0IDI0Ni4zNjVDMzQ3Ljg3NCAyODUuOTY1IDI2Ny40NzQgMjg1LjU2NSAyNTAuNjc0IDI3NC4zNjVDMjMzLjg3NCAyNjMuMTY1IDI1Ny44NzQgMjkyLjc2NSAyNTcuODc0IDI5Mi43NjVDMjc2LjI3NCAzMTIuNzY1IDI0MS44NzQgMjk1Ljk2NSAyNDEuODc0IDI5NS45NjVDMjA3LjQ3MyAyODMuMTY1IDE4My40NzMgMzA4Ljc2NSAxODAuMjczIDMwOS41NjVDMTc3LjA3MyAzMTAuMzY1IDE3Mi4yNzMgMzEzLjU2NSAxNzEuNDczIDMwNy4xNjVDMTcwLjY3MyAzMDAuNzY1IDE2NC4yMTQgMjg1LjQwNSAxMzEuNDczIDMxMC4zNjVDMTAxLjU4MiAzMzIuOTI5IDkwLjI1NSAzMTUuMjkzIDkwLjI1NSAzMTUuMjkzTDg0LjI1NSAzMTQuOTY1QzcwLjY1NCAyODguNTY0IDc5LjAzNyAzNDQuMDM4IDc5LjAzNyAzNDQuMDM4Qzg3LjgzNyAzNzguNDM4IDIyMi42NzMgMzMwLjM2NSAyMjIuNjczIDMzMC4zNjVDMjIyLjY3MyAzMzAuMzY1IDM5MS40NzQgMjk5Ljk2NSA0MDIuNjc0IDI5NS45NjVDNDEzLjg3NCAyOTEuOTY1IDUwMi4wOTMgMjk3Ljc4MyA1MDIuMDkzIDI5Ny43ODNMNDk3LjA3NSAyNzYuOTFDNDMyLjI3NCAyMzAuNTEgNDE5LjQ3NCAyNTguMzY1IDQwNS44NzQgMjU0LjM2NUMzOTIuMjc0IDI1MC4zNjUgMzk0LjY3NCAyNTkuOTY1IDM5MS40NzQgMjYwLjc2NUMzODguMjc0IDI2MS41NjUgMzQ5LjA3NCAyMzYuNzY1IDM0Mi42NzQgMjM3LjU2NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmFlNWQ3JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zNDMuOTgzIDIzOS4zMUMzMzcuNTgzIDI0MC4xMSAzMTAuNTI5IDIxNy4yMjMgMzI3LjE4MyAyNDguMTFDMzQ5LjE4MyAyODguOTEgMjY4Ljc4MyAyODcuMzEgMjUxLjk4MyAyNzYuMTFDMjM1LjE4MyAyNjQuOTEgMjU5LjE4MyAyOTQuNTEgMjU5LjE4MyAyOTQuNTFDMjc3LjU4MyAzMTQuNTEgMjQzLjE4MyAyOTcuNzEgMjQzLjE4MyAyOTcuNzFDMjA4Ljc4MyAyODQuOTEgMTg0Ljc4MyAzMTAuNTEgMTgxLjU4MyAzMTEuMzFDMTc4LjM4MiAzMTIuMTEgMTczLjU4MiAzMTUuMzEgMTcyLjc4MiAzMDguOTFDMTcxLjk4MiAzMDIuNTEgMTY1LjY1NCAyODcuMzE4IDEzMi43ODIgMzEyLjExQzEwMS42NTUgMzM1LjQyIDkwLjYzNyAzMTguMzI5IDkwLjYzNyAzMTguMzI5TDg0LjIzNiAzMTYuNTFDNzEuMjM2IDI5Mi41MSA3OS42OTEgMzQ3LjA5MyA3OS42OTEgMzQ3LjA5M0M4OC40OTEgMzgxLjQ5MyAyMjMuOTgzIDMzMi4xMSAyMjMuOTgzIDMzMi4xMUMyMjMuOTgzIDMzMi4xMSAzOTIuNzgzIDMwMS43MSA0MDMuOTgzIDI5Ny43MUM0MTUuMTgzIDI5My43MSA1MDIuNTI5IDI5OS40NTYgNTAyLjUyOSAyOTkuNDU2TDQ5Ny41ODMgMjc4LjA3NEM0MzIuNzgzIDIzMS42NzMgNDIwLjc4MyAyNjAuMTEgNDA3LjE4MyAyNTYuMTFDMzkzLjU4MyAyNTIuMTEgMzk1Ljk4MyAyNjEuNzEgMzkyLjc4MyAyNjIuNTFDMzg5LjU4MyAyNjMuMzEgMzUwLjM4MyAyMzguNTEgMzQzLjk4MyAyMzkuMzF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZjZjJlYicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMzQ1LjI5MiAyNDEuMDU1QzMzOC44OTIgMjQxLjg1NSAzMTIuOTE3IDIxOC40MTEgMzI4LjQ5MiAyNDkuODU1QzM0OS42OTIgMjkyLjY1NiAyNzAuMDkyIDI4OS4wNTYgMjUzLjI5MiAyNzcuODU2QzIzNi40OTIgMjY2LjY1NiAyNjAuNDkyIDI5Ni4yNTYgMjYwLjQ5MiAyOTYuMjU2QzI3OC44OTIgMzE2LjI1NiAyNDQuNDkyIDI5OS40NTYgMjQ0LjQ5MiAyOTkuNDU2QzIxMC4wOTIgMjg2LjY1NiAxODYuMDkyIDMxMi4yNTYgMTgyLjg5MiAzMTMuMDU2QzE3OS42OTIgMzEzLjg1NiAxNzQuODkyIDMxNy4wNTYgMTc0LjA5MiAzMTAuNjU2QzE3My4yOTIgMzA0LjI1NiAxNjcuMDk1IDI4OS4yMzIgMTM0LjA5MiAzMTMuODU2QzEwMS43MjcgMzM3LjkxMSA5MS4wMTggMzIxLjM2NSA5MS4wMTggMzIxLjM2NUw4NC4yMTggMzE4LjA1NkM3MS40MTggMjk0Ljg1NiA4MC4zNDYgMzUwLjE0NyA4MC4zNDYgMzUwLjE0N0M4OS4xNDYgMzg0LjU0NyAyMjUuMjkyIDMzMy44NTYgMjI1LjI5MiAzMzMuODU2QzIyNS4yOTIgMzMzLjg1NiAzOTQuMDkzIDMwMy40NTYgNDA1LjI5MyAyOTkuNDU2QzQxNi40OTMgMjk1LjQ1NiA1MDIuOTY1IDMwMS4xMjggNTAyLjk2NSAzMDEuMTI4TDQ5OC4wOTMgMjc5LjIzN0M0MzMuMjkyIDIzMi44MzcgNDIyLjA5MyAyNjEuODU2IDQwOC40OTMgMjU3Ljg1NkMzOTQuODkzIDI1My44NTUgMzk3LjI5MyAyNjMuNDU2IDM5NC4wOTMgMjY0LjI1NkMzOTAuODkyIDI2NS4wNTYgMzUxLjY5MiAyNDAuMjU1IDM0NS4yOTIgMjQxLjA1NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J004NC4yIDMxOS42MDFDNzEuNCAyOTcuNiA4MSAzNTMuMjAxIDgxIDM1My4yMDFDODkuOCAzODcuNjAxIDIyNi42IDMzNS42MDEgMjI2LjYgMzM1LjYwMUMyMjYuNiAzMzUuNjAxIDM5NS40MDEgMzA1LjIgNDA2LjYwMSAzMDEuMkM0MTcuODAxIDI5Ny4yIDUwMy40MDEgMzAyLjggNTAzLjQwMSAzMDIuOEw0OTguNjAxIDI4MC40QzQzMy44MDEgMjM0IDQyMy40MDEgMjYzLjYgNDA5LjgwMSAyNTkuNkMzOTYuMjAxIDI1NS42IDM5OC42MDEgMjY1LjIgMzk1LjQwMSAyNjZDMzkyLjIwMSAyNjYuOCAzNTMuMDAxIDI0MiAzNDYuNjAxIDI0Mi44QzM0MC4yMDEgMjQzLjYgMzE0Ljk4MSAyMTkuNzkzIDMyOS44MDEgMjUxLjZDMzUyLjAyOCAyOTkuMzA3IDI2OS4wNDEgMjg5LjIyNyAyNTQuNiAyNzkuNkMyMzcuOCAyNjguNCAyNjEuOCAyOTggMjYxLjggMjk4QzI4MC4yIDMxOC4wMDEgMjQ1LjggMzAxLjIgMjQ1LjggMzAxLjJDMjExLjQgMjg4LjQgMTg3LjQgMzE0LjAwMSAxODQuMiAzMTQuODAxQzE4MSAzMTUuNjAxIDE3Ni4yIDMxOC44MDEgMTc1LjQgMzEyLjQwMUMxNzQuNiAzMDYgMTY4LjUzNSAyOTEuMTQ0IDEzNS40IDMxNS42MDFDMTAxLjggMzQwLjQwMSA5MS40IDMyNC40MDEgOTEuNCAzMjQuNDAxTDg0LjIgMzE5LjYwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xMjUuOCAzNDkuNjAxQzEyNS44IDM0OS42MDEgMTE4LjYgMzYxLjIwMSAxMzkuNCAzNzQuNDAxQzEzOS40IDM3NC40MDEgMTQwLjggMzc1LjgwMSAxMjIuOCAzNzEuNjAxQzEyMi44IDM3MS42MDEgMTE2LjYgMzY5LjYwMSAxMTUgMzU5LjIwMUMxMTUgMzU5LjIwMSAxMTAuMiAzNTQuODAxIDEwNS40IDM0OS4yMDFDMTAwLjYgMzQzLjYwMSAxMjUuOCAzNDkuNjAxIDEyNS44IDM0OS42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjY1LjggMzAyQzI2NS44IDMwMiAyODMuNDk4IDMyOC44MjEgMjgyLjkgMzMzLjYwMUMyODEuNiAzNDQuMDAxIDI4MS40IDM1My42MDEgMjg0LjYgMzU3LjYwMUMyODcuODAxIDM2MS42MDEgMjk2LjYwMSAzOTQuODAxIDI5Ni42MDEgMzk0LjgwMUMyOTYuNjAxIDM5NC44MDEgMjk2LjIwMSAzOTYuMDAxIDMwOC42MDEgMzU4LjAwMUMzMDguNjAxIDM1OC4wMDEgMzIwLjIwMSAzNDIuMDAxIDMwMC4yMDEgMzIzLjYwMUMzMDAuMjAxIDMyMy42MDEgMjY1IDI5NC44IDI2NS44IDMwMnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNDUuOCAzNzYuNDAxQzE0NS44IDM3Ni40MDEgMTU3IDM4My42MDEgMTQyLjYgNDE0LjgwMUwxNDkgNDEyLjQwMUMxNDkgNDEyLjQwMSAxNDguMiA0MjMuNjAxIDE0NSA0MjYuMDAxTDE1Mi4yIDQyMi44MDFDMTUyLjIgNDIyLjgwMSAxNTcgNDMwLjgwMSAxNTMgNDM1LjYwMUMxNTMgNDM1LjYwMSAxNjkuOCA0NDMuNjAxIDE2OSA0NTAuMDAxQzE2OSA0NTAuMDAxIDE3NS40IDQ0Mi4wMDEgMTcxLjQgNDM1LjYwMUMxNjcuNCA0MjkuMjAxIDE2MC4yIDQzMy4yMDEgMTYxIDQxNC44MDFMMTUyLjIgNDE4LjAwMUMxNTIuMiA0MTguMDAxIDE1Ny44IDQwOS4yMDEgMTU3LjggNDAyLjgwMUwxNDkuOCA0MDUuMjAxQzE0OS44IDQwNS4yMDEgMTY1LjI2OSAzNzguNjIzIDE1NC42IDM3Ny4yMDFDMTQ4LjYgMzc2LjQwMSAxNDUuOCAzNzYuNDAxIDE0NS44IDM3Ni40MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTc4LjIgMzkzLjIwMUMxNzguMiAzOTMuMjAxIDE4MSAzODguODAxIDE3OC4yIDM4OS42MDFDMTc1LjQgMzkwLjQwMSAxNDQuMiA0MDUuMjAxIDEzOC4yIDQxNC44MDFDMTM4LjIgNDE0LjgwMSAxNzIuNiAzOTAuNDAxIDE3OC4yIDM5My4yMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTg4LjYgNDAxLjIwMUMxODguNiA0MDEuMjAxIDE5MS40IDM5Ni44MDEgMTg4LjYgMzk3LjYwMUMxODUuOCAzOTguNDAxIDE1NC42IDQxMy4yMDEgMTQ4LjYgNDIyLjgwMUMxNDguNiA0MjIuODAxIDE4MyAzOTguNDAxIDE4OC42IDQwMS4yMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjAxLjggMzg2LjAwMUMyMDEuOCAzODYuMDAxIDIwNC42IDM4MS42MDEgMjAxLjggMzgyLjQwMUMxOTkgMzgzLjIwMSAxNjcuOCAzOTguMDAxIDE2MS44IDQwNy42MDFDMTYxLjggNDA3LjYwMSAxOTYuMiAzODMuMjAxIDIwMS44IDM4Ni4wMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTc4LjYgNDI5LjYwMUMxNzguNiA0MjkuNjAxIDE3OC42IDQyMy42MDEgMTc1LjggNDI0LjQwMUMxNzMgNDI1LjIwMSAxMzcgNDQyLjgwMSAxMzEgNDUyLjQwMUMxMzEgNDUyLjQwMSAxNzMgNDI2LjgwMSAxNzguNiA0MjkuNjAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE3OS44IDQxOC44MDFDMTc5LjggNDE4LjgwMSAxODEgNDE0LjAwMSAxNzguMiA0MTQuODAxQzE3Ni4yIDQxNC44MDEgMTQ5LjggNDI2LjQwMSAxNDMuOCA0MzYuMDAxQzE0My44IDQzNi4wMDEgMTczLjQgNDE0LjQwMSAxNzkuOCA0MTguODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE2NS40IDQ2Ni40MDFMMTU1LjQgNDc0LjAwMUMxNTUuNCA0NzQuMDAxIDE2NS44IDQ2Ni40MDEgMTY5LjQgNDY3LjYwMUMxNjkuNCA0NjcuNjAxIDE2Mi42IDQ3OC44MDEgMTYxLjggNDg0LjAwMUMxNjEuOCA0ODQuMDAxIDE3Mi4yIDQ3MS4yMDEgMTc3LjggNDcxLjYwMUMxNzcuOCA0NzEuNjAxIDE4NS40IDQ3Mi4wMDEgMTg1LjQgNDgyLjgwMUMxODUuNCA0ODIuODAxIDE5MSA0NzIuNDAxIDE5NC4yIDQ3Mi44MDFDMTk0LjIgNDcyLjgwMSAxOTUuNCA0NzkuMjAxIDE5NC4yIDQ4Ni4wMDFDMTk0LjIgNDg2LjAwMSAxOTguMiA0NzguNDAxIDIwMi4yIDQ4MC4wMDFDMjAyLjIgNDgwLjAwMSAyMDguNiA0NzguMDAxIDIwNy44IDQ4OS42MDFDMjA3LjggNDg5LjYwMSAyMDcuOCA1MDAuMDAxIDIwNyA1MDIuODAxQzIwNyA1MDIuODAxIDIxMi42IDQ3Ni40MDEgMjE1IDQ3Ni4wMDFDMjE1IDQ3Ni4wMDEgMjIzIDQ3NC44MDEgMjI3LjggNDgzLjYwMUMyMjcuOCA0ODMuNjAxIDIyMy44IDQ3Ni4wMDEgMjI4LjYgNDc4LjAwMUMyMjguNiA0NzguMDAxIDIzOS40IDQ3OS42MDEgMjQyLjYgNDg2LjQwMUMyNDIuNiA0ODYuNDAxIDIzNS44IDQ3NC40MDEgMjQxLjQgNDc3LjYwMUMyNDEuNCA0NzcuNjAxIDI0OC4yIDQ3Ny42MDEgMjQ5LjQgNDg0LjAwMUMyNDkuNCA0ODQuMDAxIDI1Ny44IDUwNS4yMDEgMjU5LjggNTA2LjgwMUMyNTkuOCA1MDYuODAxIDI1Mi4yIDQ4NS4yMDEgMjUzLjggNDg1LjIwMUMyNTMuOCA0ODUuMjAxIDI1MS44IDQ3My4yMDEgMjU3IDQ4OC4wMDFDMjU3IDQ4OC4wMDEgMjUzLjggNDc0LjAwMSAyNTkuNCA0NzQuODAxQzI2NSA0NzUuNjAxIDI2OS40IDQ4NS42MDEgMjc3LjggNDgzLjIwMUMyNzcuOCA0ODMuMjAxIDI4Ny40MDEgNDg4LjgwMSAyODkuNDAxIDQxOS42MDFMMTY1LjQgNDY2LjQwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNzAuMiAzNzMuNjAxQzE3MC4yIDM3My42MDEgMTg1IDM2Ny42MDEgMjI1IDM3My42MDFDMjI1IDM3My42MDEgMjMyLjIgMzc0LjAwMSAyMzkgMzY1LjIwMUMyNDUuOCAzNTYuNDAxIDI3Mi42IDM0OS4yMDEgMjc5IDM1MS4yMDFMMjg4LjYwMSAzNTcuNjAxTDI4OS40MDEgMzU4LjgwMUMyODkuNDAxIDM1OC44MDEgMzAxLjgwMSAzNjkuMjAxIDMwMi4yMDEgMzc2LjgwMUMzMDIuNjAxIDM4NC40MDEgMjg3LjgwMSA0MzIuNDAxIDI3OC4yIDQ0OC40MDFDMjY4LjYgNDY0LjQwMSAyNTkgNDc2LjgwMSAyMzkuOCA0NzQuNDAxQzIzOS44IDQ3NC40MDEgMjE5IDQ3MC40MDEgMTkzLjQgNDc0LjQwMUMxOTMuNCA0NzQuNDAxIDE2NC4yIDQ3Mi44MDEgMTYxLjQgNDY0LjgwMUMxNTguNiA0NTYuODAxIDE3Mi42IDQ0MS42MDEgMTcyLjYgNDQxLjYwMUMxNzIuNiA0NDEuNjAxIDE3NyA0MzMuMjAxIDE3NS44IDQxOC44MDFDMTc0LjYgNDA0LjQwMSAxNzUgMzc2LjQwMSAxNzAuMiAzNzMuNjAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNlNTY2OGMnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE5Mi4yIDM3NS42MDFDMjAwLjYgMzk0LjAwMSAxNzEgNDU5LjIwMSAxNzEgNDU5LjIwMUMxNjkgNDYwLjgwMSAxODMuNjYgNDY2Ljg0NiAxOTMuOCA0NjQuNDAxQzIwNC43NDYgNDYxLjc2MyAyNDUgNDY2LjAwMSAyNDUgNDY2LjAwMUMyNjguNiA0NTAuNDAxIDI4MS40IDQwNi4wMDEgMjgxLjQgNDA2LjAwMUMyODEuNCA0MDYuMDAxIDI5MS44MDEgMzgyLjAwMSAyNzQuMiAzNzguODAxQzI1Ni42IDM3NS42MDEgMTkyLjIgMzc1LjYwMSAxOTIuMiAzNzUuNjAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNiMjMyNTknKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE5MC4xNjkgNDA2LjQ5N0MxOTMuNDk1IDM5My43MDcgMTk1LjA3OSAzODEuOTA2IDE5Mi4yIDM3NS42MDFDMTkyLjIgMzc1LjYwMSAyNTQuNiAzODIuMDAxIDI2NS44IDM2MS4yMDFDMjcwLjA0MSAzNTMuMzI2IDI4NC44MDEgMzg0LjAwMSAyODQuNCAzOTMuNjAxQzI4NC40IDM5My42MDEgMjIxLjQgNDA4LjAwMSAyMDYuNiAzOTYuODAxTDE5MC4xNjkgNDA2LjQ5N3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjYTUyNjRjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xOTQuNiA0MjIuODAxQzE5NC42IDQyMi44MDEgMTk2LjYgNDMwLjAwMSAxOTQuMiA0MzQuMDAxQzE5NC4yIDQzNC4wMDEgMTkyLjYgNDM0LjgwMSAxOTEuNCA0MzUuMjAxQzE5MS40IDQzNS4yMDEgMTkyLjYgNDM4LjgwMSAxOTguNiA0NDAuNDAxQzE5OC42IDQ0MC40MDEgMjAwLjYgNDQ0LjgwMSAyMDMgNDQ1LjIwMUMyMDUuNCA0NDUuNjAxIDIxMC4yIDQ1MS4yMDEgMjE0LjIgNDUwLjAwMUMyMTguMiA0NDguODAxIDIyOS40IDQ0NC44MDEgMjI5LjQgNDQ0LjgwMUMyMjkuNCA0NDQuODAxIDIzNSA0NDEuNjAxIDI0My44IDQ0NS4yMDFDMjQzLjggNDQ1LjIwMSAyNDYuMTc1IDQ0NC4zOTkgMjQ2LjYgNDQwLjQwMUMyNDcuMSA0MzUuNzAxIDI1MC4yIDQzMi4wMDEgMjUyLjIgNDMwLjAwMUMyNTQuMiA0MjguMDAxIDI2My44IDQxNS4yMDEgMjYyLjYgNDE0LjgwMUMyNjEuNCA0MTQuNDAxIDE5NC42IDQyMi44MDEgMTk0LjYgNDIyLjgwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmY3MjdmOyBzdHJva2U6IzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTkwLjIgMzc0LjQwMUMxOTAuMiAzNzQuNDAxIDE4Ny40IDM5Ni44MDEgMTkwLjYgNDA1LjIwMUMxOTMuOCA0MTMuNjAxIDE5MyA0MTUuNjAxIDE5Mi4yIDQxOS42MDFDMTkxLjQgNDIzLjYwMSAxOTUuOCA0MzMuNjAxIDIwMS40IDQzOS42MDFMMjEzLjQgNDQxLjIwMUMyMTMuNCA0NDEuMjAxIDIyOC42IDQzNy42MDEgMjM3LjggNDQwLjQwMUMyMzcuOCA0NDAuNDAxIDI0Ni43OTQgNDQxLjc0NCAyNTAuMiA0MjYuODAxQzI1MC4yIDQyNi44MDEgMjU1IDQyMC40MDEgMjYyLjIgNDE3LjYwMUMyNjkuNCA0MTQuODAxIDI3Ni42IDM3My4yMDEgMjcyLjYgMzY1LjIwMUMyNjguNiAzNTcuMjAxIDI1NC4yIDM1Mi44MDEgMjM4LjIgMzY4LjQwMUMyMjIuMiAzODQuMDAxIDIyMC4yIDM2Ny4yMDEgMTkwLjIgMzc0LjQwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTkxLjggNDQ5LjIwMUMxOTEuOCA0NDkuMjAxIDE5MSA0NDcuMjAxIDE4Ni42IDQ0Ni44MDFDMTg2LjYgNDQ2LjgwMSAxNjQuMiA0NDMuMjAxIDE1NS44IDQzMC44MDFDMTU1LjggNDMwLjgwMSAxNDkgNDI1LjIwMSAxNTMuNCA0MzYuODAxQzE1My40IDQzNi44MDEgMTYzLjggNDU3LjIwMSAxNzAuNiA0NjAuMDAxQzE3MC42IDQ2MC4wMDEgMTg3IDQ2NC4wMDEgMTkxLjggNDQ5LjIwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2MzZjRjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNzEuNzQyIDM4NS4yMjlDMjcyLjQwMSAzNzcuMzIzIDI3NC4zNTQgMzY4LjcwOSAyNzIuNiAzNjUuMjAxQzI2Ni4xNTQgMzUyLjMwNyAyNDkuMTgxIDM1Ny42OTUgMjM4LjIgMzY4LjQwMUMyMjIuMiAzODQuMDAxIDIyMC4yIDM2Ny4yMDEgMTkwLjIgMzc0LjQwMUMxOTAuMiAzNzQuNDAxIDE4OC40NTUgMzg4LjM2NCAxODkuMjk1IDM5OC4zNzZDMTg5LjI5NSAzOTguMzc2IDIyNi42IDM4Ni44MDEgMjI3LjQgMzkyLjQwMUMyMjcuNCAzOTIuNDAxIDIyOSAzODkuMjAxIDIzOC4yIDM4OS4yMDFDMjQ3LjQgMzg5LjIwMSAyNzAuMTQyIDM4OC4wMjkgMjcxLjc0MiAzODUuMjI5eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTojYTUxOTI2OyBzdHJva2Utd2lkdGg6MicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjI4LjYgMzc1LjIwMUMyMjguNiAzNzUuMjAxIDIzMy40IDM4MC4wMDEgMjI5LjggMzg5LjYwMUMyMjkuOCAzODkuNjAxIDIxNS40IDQwNS42MDEgMjE3LjQgNDE5LjYwMScpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xODAuNiA0NjAuMDAxQzE4MC42IDQ2MC4wMDEgMTc2LjIgNDQ3LjIwMSAxODUgNDU0LjAwMUMxODUgNDU0LjAwMSAxODkuOCA0NTYuMDAxIDE4OC42IDQ1Ny42MDFDMTg3LjQgNDU5LjIwMSAxODEuOCA0NjMuMjAxIDE4MC42IDQ2MC4wMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE4NS42NCA0NjEuMjAxQzE4NS42NCA0NjEuMjAxIDE4Mi4xMiA0NTAuOTYxIDE4OS4xNiA0NTYuNDAxQzE4OS4xNiA0NTYuNDAxIDE5My41ODEgNDU4Ljg0OSAxOTIuMDQgNDU5LjI4MUMxODcuNDggNDYwLjU2MSAxOTIuMDQgNDYzLjEyMSAxODUuNjQgNDYxLjIwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTkwLjQ0IDQ2MS4yMDFDMTkwLjQ0IDQ2MS4yMDEgMTg2LjkyIDQ1MC45NjEgMTkzLjk2IDQ1Ni40MDFDMTkzLjk2IDQ1Ni40MDEgMTk4LjMzNSA0NTguNzExIDE5Ni44NCA0NTkuMjgxQzE5My40OCA0NjAuNTYxIDE5Ni44NCA0NjMuMTIxIDE5MC40NCA0NjEuMjAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xOTcuMDQgNDYxLjQwMUMxOTcuMDQgNDYxLjQwMSAxOTMuNTIgNDUxLjE2MSAyMDAuNTYgNDU2LjYwMUMyMDAuNTYgNDU2LjYwMSAyMDQuOTQzIDQ1OC45MzMgMjAzLjQ0MSA0NTkuNDgxQzIwMC40OCA0NjAuNTYxIDIwMy40NDEgNDYzLjMyMSAxOTcuMDQgNDYxLjQwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjAzLjUyIDQ2MS4zMjFDMjAzLjUyIDQ2MS4zMjEgMjAwIDQ1MS4wODEgMjA3LjA0MSA0NTYuNTIxQzIwNy4wNDEgNDU2LjUyMSAyMTAuODgxIDQ1OC4xMjEgMjA5LjkyMSA0NTkuNDAxQzIwOC45NjEgNDYwLjY4MSAyMDkuOTIxIDQ2My4yNDEgMjAzLjUyIDQ2MS4zMjF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIxMC4yIDQ2Mi4wMDFDMjEwLjIgNDYyLjAwMSAyMDUuNCA0NDkuNjAxIDIxNC42IDQ1Ni4wMDFDMjE0LjYgNDU2LjAwMSAyMTkuNCA0NTguMDAxIDIxOC4yIDQ1OS42MDFDMjE3IDQ2MS4yMDEgMjE4LjIgNDY0LjQwMSAyMTAuMiA0NjIuMDAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTojYTUyNjRjOyBzdHJva2Utd2lkdGg6MicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTgxLjggNDQ0LjgwMUMxODEuOCA0NDQuODAxIDE5NSA0NDIuMDAxIDIwMSA0NDUuMjAxQzIwMSA0NDUuMjAxIDIwNyA0NDYuNDAxIDIwOC4yIDQ0Ni4wMDFDMjA5LjQgNDQ1LjYwMSAyMTIuNiA0NDUuMjAxIDIxMi42IDQ0NS4yMDEnKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIxNS44IDQ1My42MDFDMjE1LjggNDUzLjYwMSAyMjcuOCA0NDAuMDAxIDIzOS44IDQ0NC40MDFDMjQ2LjgxNiA0NDYuOTc0IDI0NS44IDQ0My42MDEgMjQ2LjYgNDQwLjgwMUMyNDcuNCA0MzguMDAxIDI0Ny42IDQzMy44MDEgMjUyLjYgNDMwLjgwMScpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMzMgNDM3LjYwMUMyMzMgNDM3LjYwMSAyMjkgNDI2LjgwMSAyMjYuMiA0MzkuNjAxQzIyMy40IDQ1Mi40MDEgMjIwLjIgNDU2LjAwMSAyMTguNiA0NTguODAxQzIxOC42IDQ1OC44MDEgMjE4LjYgNDY0LjAwMSAyMjcgNDYzLjYwMUMyMjcgNDYzLjYwMSAyMzcuOCA0NjMuMjAxIDIzOC4yIDQ2MC40MDFDMjM4LjYgNDU3LjYwMSAyMzcgNDQ2LjAwMSAyMzMgNDM3LjYwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI0NyA0NDQuODAxQzI0NyA0NDQuODAxIDI1MC42IDQ0Mi40MDEgMjUzIDQ0My42MDEnKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI1My41IDQyOC40MDFDMjUzLjUgNDI4LjQwMSAyNTYuNCA0MjMuNTAxIDI2MS4yIDQyMi43MDEnKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjYjJiMmIyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNzQuMiA0NjUuMjAxQzE3NC4yIDQ2NS4yMDEgMTkyLjIgNDY4LjQwMSAxOTYuNiA0NjYuODAxQzE5Ni42IDQ2Ni44MDEgMjA1LjQgNDY2LjgwMSAxOTcgNDY4LjgwMUMxOTcgNDY4LjgwMSAxODQuMiA0NjguODAxIDE3Ni4yIDQ2Ny42MDFDMTc2LjIgNDY3LjYwMSAxNjQuNiA0NjIuMDAxIDE3NC4yIDQ2NS4yMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE4OC4yIDM3Mi4wMDFDMTg4LjIgMzcyLjAwMSAyMDUuOCAzNzIuMDAxIDIwNy44IDM3Mi44MDFDMjA3LjggMzcyLjgwMSAyMTUgNDAzLjYwMSAyMTEuNCA0MTEuMjAxQzIxMS40IDQxMS4yMDEgMjEwLjIgNDE0LjAwMSAyMDcuNCA0MDguNDAxQzIwNy40IDQwOC40MDEgMTg5IDM3NS42MDEgMTg1LjggMzczLjYwMUMxODIuNiAzNzEuNjAxIDE4NyAzNzIuMDAxIDE4OC4yIDM3Mi4wMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTExMS4xIDM2OS4zMDFDMTExLjEgMzY5LjMwMSAxMjAgMzcxLjAwMSAxMzIuNiAzNzMuNjAxQzEzMi42IDM3My42MDEgMTM3LjQgMzk2LjAwMSAxNDAuNiA0MDAuODAxQzE0My44IDQwNS42MDEgMTQwLjIgNDA1LjYwMSAxMzYuNiA0MDIuODAxQzEzMyA0MDAuMDAxIDExOC4yIDM4Ni4wMDEgMTE2LjIgMzgxLjYwMUMxMTQuMiAzNzcuMjAxIDExMS4xIDM2OS4zMDEgMTExLjEgMzY5LjMwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTMyLjk2MSAzNzMuODE4QzEzMi45NjEgMzczLjgxOCAxMzguNzYxIDM3NS4zNjYgMTM5Ljc3IDM3Ny41ODFDMTQwLjc3OCAzNzkuNzk1IDEzOC41NjggMzgzLjA5MiAxMzguNTY4IDM4My4wOTJDMTM4LjU2OCAzODMuMDkyIDEzNy41NjggMzg2LjM5NyAxMzYuMzY2IDM4NC4yMzVDMTM1LjE2NCAzODIuMDcyIDEzMi4yOTIgMzc0LjQxMiAxMzIuOTYxIDM3My44MTh6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTMzIDM3My42MDFDMTMzIDM3My42MDEgMTM2LjYgMzc4LjgwMSAxNDAuMiAzNzguODAxQzE0My44IDM3OC44MDEgMTQ0LjE4MiAzNzguMzg4IDE0NyAzNzkuMDAxQzE1MS42IDM4MC4wMDEgMTUxLjIgMzc4LjAwMSAxNTcuOCAzNzkuMjAxQzE2MC40NCAzNzkuNjgxIDE2MyAzNzguODAxIDE2NS44IDM4MC4wMDFDMTY4LjYgMzgxLjIwMSAxNzEuOCAzODAuNDAxIDE3MyAzNzguNDAxQzE3NC4yIDM3Ni40MDEgMTc5IDM3Mi4yMDEgMTc5IDM3Mi4yMDFDMTc5IDM3Mi4yMDEgMTY2LjIgMzc0LjAwMSAxNjMuNCAzNzQuODAxQzE2My40IDM3NC44MDEgMTQxIDM3Ni4wMDEgMTMzIDM3My42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE3Ny42IDM3My44MDFDMTc3LjYgMzczLjgwMSAxNzEuMTUgMzc3LjMwMSAxNzAuNzUgMzc5LjcwMUMxNzAuMzUgMzgyLjEwMSAxNzYgMzg1LjgwMSAxNzYgMzg1LjgwMUMxNzYgMzg1LjgwMSAxNzguNzUgMzkwLjQwMSAxNzkuMzUgMzg4LjAwMUMxNzkuOTUgMzg1LjYwMSAxNzguNCAzNzQuMjAxIDE3Ny42IDM3My44MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE0MC4xMTUgMzc5LjI2NUMxNDAuMTE1IDM3OS4yNjUgMTQ3LjEyMiAzOTAuNDUzIDE0Ny4zMzkgMzc5LjI0MkMxNDcuMzM5IDM3OS4yNDIgMTQ3Ljg5NiAzNzcuOTg0IDE0Ni4xMzYgMzc3Ljk2MkMxNDAuMDYxIDM3Ny44ODYgMTQxLjU4MiAzNzMuNzg0IDE0MC4xMTUgMzc5LjI2NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTQ3LjI5MyAzNzkuNTE0QzE0Ny4yOTMgMzc5LjUxNCAxNTUuMjE0IDM5MC43MDEgMTU0LjU3OCAzNzkuNDIxQzE1NC41NzggMzc5LjQyMSAxNTQuNTg1IDM3OS4wODkgMTUyLjgzMiAzNzguOTM2QzE0OC4wODUgMzc4LjUyMiAxNDguNDMgMzc0LjAwNCAxNDcuMjkzIDM3OS41MTR6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE1NC41MDYgMzc5LjUyMkMxNTQuNTA2IDM3OS41MjIgMTYyLjQ2NiAzOTAuMTUgMTYxLjc5NyAzODAuNDg0QzE2MS43OTcgMzgwLjQ4NCAxNjEuOTE2IDM3OS4yNTEgMTYwLjI2MiAzNzguOTVDMTU2LjM3IDM3OC4yNDQgMTU2LjE1OSAzNzQuOTk1IDE1NC41MDYgMzc5LjUyMnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTYxLjM4MiAzNzkuNjAyQzE2MS4zODIgMzc5LjYwMiAxNjkuMjgyIDM5MS4xNjMgMTY5LjYzIDM4MS4zODJDMTY5LjYzIDM4MS4zODIgMTcxLjI3NCAzODAuMDA0IDE2OS41MjggMzc5Ljc4MkMxNjMuNzEgMzc5LjA0MiAxNjQuNTA4IDM3NC41ODggMTYxLjM4MiAzNzkuNjAyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNlNWU1YjInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEyNS4yMDggMzgzLjEzMkwxMTcuNTUgMzgxLjYwMUMxMTQuOTUgMzc2LjYwMSAxMTIuODUgMzcwLjQ1MSAxMTIuODUgMzcwLjQ1MUMxMTIuODUgMzcwLjQ1MSAxMTkuMiAzNzEuNDUxIDEzMS43IDM3NC4yNTFDMTMxLjcgMzc0LjI1MSAxMzIuNTc2IDM3Ny41NjkgMTM0LjA0OCAzODMuMzY0TDEyNS4yMDggMzgzLjEzMnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZTVlNWIyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xOTAuMjc2IDM3OC40N0MxODguNjEgMzc1Ljk2NCAxODcuMjkzIDM3NC4yMDYgMTg2LjY0MyAzNzMuOEMxODMuNjMgMzcxLjkxNyAxODcuNzczIDM3Mi4yOTQgMTg4LjkwMiAzNzIuMjk0QzE4OC45MDIgMzcyLjI5NCAyMDUuNDczIDM3Mi4yOTQgMjA3LjM1NiAzNzMuMDQ3QzIwNy4zNTYgMzczLjA0NyAyMDcuODggMzc1LjI4OSAyMDguNTY0IDM3OC42OEMyMDguNTY0IDM3OC42OCAxOTguNDc2IDM3Ni42NyAxOTAuMjc2IDM3OC40N3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2M3MjI2JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNDMuODggMjQwLjMyMUMyNzEuNjAxIDI0NC4yODEgMjk3LjEyMSAyMDguNjQxIDI5OC44ODEgMTk4Ljk2QzMwMC42NDEgMTg5LjI4IDI5MC41MjEgMTc3LjQgMjkwLjUyMSAxNzcuNEMyOTEuODQxIDE3NC4zMiAyODcuMDAxIDE2MC4yNCAyODEuNzIxIDE1MUMyNzYuNDQxIDE0MS43NiAyNjAuNTQgMTQyLjczNCAyNDMgMTQxLjc2QzIyNy4xNiAxNDAuODggMjA4LjY4IDE2NC4yIDIwNy4zNiAxNjUuOTZDMjA2LjA0IDE2Ny43MiAyMTIuMiAyMDYuMDAxIDIxMy41MiAyMTEuNzIxQzIxNC44NCAyMTcuNDQxIDIxMi4yIDI0My44NDEgMjEyLjIgMjQzLjg0MUMyNDYuNDQgMjM0Ljc0MSAyMTYuMTYgMjM2LjM2MSAyNDMuODggMjQwLjMyMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZWE4ZTUxJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMDguMDg4IDE2Ni42MDhDMjA2Ljc5MiAxNjguMzM2IDIxMi44NCAyMDUuOTIxIDIxNC4xMzYgMjExLjUzN0MyMTUuNDMyIDIxNy4xNTMgMjEyLjg0IDI0My4wNzMgMjEyLjg0IDI0My4wNzNDMjQ1LjUxMiAyMzQuMTkzIDIxNi43MjggMjM1LjcyOSAyNDMuOTQ0IDIzOS42MTdDMjcxLjE2MSAyNDMuNTA1IDI5Ni4yMTcgMjA4LjUxMyAyOTcuOTQ1IDE5OS4wMDhDMjk5LjY3MyAxODkuNTA0IDI4OS43MzcgMTc3Ljg0IDI4OS43MzcgMTc3Ljg0QzI5MS4wMzMgMTc0LjgxNiAyODYuMjgxIDE2MC45OTIgMjgxLjA5NyAxNTEuOTJDMjc1LjkxMyAxNDIuODQ4IDI2MC4zMDIgMTQzLjgwNSAyNDMuMDggMTQyLjg0OEMyMjcuNTI4IDE0MS45ODQgMjA5LjM4NCAxNjQuODggMjA4LjA4OCAxNjYuNjA4eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNlZmFhN2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIwOC44MTYgMTY3LjI1NkMyMDcuNTQ0IDE2OC45NTIgMjEzLjQ4IDIwNS44NDEgMjE0Ljc1MiAyMTEuMzUzQzIxNi4wMjQgMjE2Ljg2NSAyMTMuNDggMjQyLjMwNSAyMTMuNDggMjQyLjMwNUMyNDQuODg0IDIzMy4xNDUgMjE3LjI5NiAyMzUuMDk3IDI0NC4wMDggMjM4LjkxM0MyNzAuNzIxIDI0Mi43MjkgMjk1LjMxMyAyMDguMzg1IDI5Ny4wMDkgMTk5LjA1NkMyOTguNzA1IDE4OS43MjggMjg4Ljk1MyAxNzguMjggMjg4Ljk1MyAxNzguMjhDMjkwLjIyNSAxNzUuMzEyIDI4NS41NjEgMTYxLjc0NCAyODAuNDczIDE1Mi44NEMyNzUuMzg1IDE0My45MzYgMjYwLjA2MyAxNDQuODc1IDI0My4xNiAxNDMuOTM2QzIyNy44OTYgMTQzLjA4OCAyMTAuMDg4IDE2NS41NiAyMDguODE2IDE2Ny4yNTZ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2Y0YzZhOCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjA5LjU0NCAxNjcuOTA0QzIwOC4yOTYgMTY5LjU2OCAyMTQuMTIgMjA1Ljc2MSAyMTUuMzY4IDIxMS4xNjlDMjE2LjYxNiAyMTYuNTc3IDIxNC4xMiAyNDEuNTM3IDIxNC4xMiAyNDEuNTM3QzI0My41NTYgMjMyLjQ5NyAyMTcuODY0IDIzNC40NjUgMjQ0LjA3MiAyMzguMjA5QzI3MC4yODEgMjQxLjk1MyAyOTQuNDA5IDIwOC4yNTcgMjk2LjA3MyAxOTkuMTA1QzI5Ny43MzcgMTg5Ljk1MiAyODguMTY5IDE3OC43MiAyODguMTY5IDE3OC43MkMyODkuNDE3IDE3NS44MDggMjg0Ljg0MSAxNjIuNDk2IDI3OS44NDkgMTUzLjc2QzI3NC44NTcgMTQ1LjAyNCAyNTkuODI0IDE0NS45NDUgMjQzLjI0IDE0NS4wMjRDMjI4LjI2NCAxNDQuMTkyIDIxMC43OTIgMTY2LjI0IDIwOS41NDQgMTY3LjkwNHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZjllMmQzJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMTAuMjcyIDE2OC41NTJDMjA5LjA0OCAxNzAuMTg0IDIxNC43NiAyMDUuNjgxIDIxNS45ODQgMjEwLjk4NUMyMTcuMjA4IDIxNi4yODkgMjE0Ljc2IDI0MC43NjkgMjE0Ljc2IDI0MC43NjlDMjQyLjYyOCAyMzEuODQ5IDIxOC40MzIgMjMzLjgzMyAyNDQuMTM2IDIzNy41MDVDMjY5Ljg0MSAyNDEuMTc3IDI5My41MDUgMjA4LjEyOSAyOTUuMTM3IDE5OS4xNTJDMjk2Ljc2OSAxOTAuMTc2IDI4Ny4zODUgMTc5LjE2IDI4Ny4zODUgMTc5LjE2QzI4OC42MDkgMTc2LjMwNCAyODQuMTIxIDE2My4yNDggMjc5LjIyNSAxNTQuNjhDMjc0LjMyOSAxNDYuMTEyIDI1OS41ODUgMTQ3LjAxNSAyNDMuMzIgMTQ2LjExMkMyMjguNjMyIDE0NS4yOTYgMjExLjQ5NiAxNjYuOTIgMjEwLjI3MiAxNjguNTUyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmYnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI0NC4yIDIzNi44QzI2OS40IDI0MC40IDI5Mi42MDEgMjA4IDI5NC4yMDEgMTk5LjJDMjk1LjgwMSAxOTAuNCAyODYuNjAxIDE3OS42IDI4Ni42MDEgMTc5LjZDMjg3LjgwMSAxNzYuOCAyODMuNCAxNjQgMjc4LjYgMTU1LjZDMjczLjggMTQ3LjIgMjU5LjM0NiAxNDguMDg2IDI0My40IDE0Ny4yQzIyOSAxNDYuNCAyMTIuMiAxNjcuNiAyMTEgMTY5LjJDMjA5LjggMTcwLjggMjE1LjQgMjA1LjYgMjE2LjYgMjEwLjhDMjE3LjggMjE2IDIxNS40IDI0MCAyMTUuNCAyNDBDMjQwLjkgMjMxLjQgMjE5IDIzMy4yIDI0NC4yIDIzNi44eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI5MC42MDEgMjAyLjhDMjkwLjYwMSAyMDIuOCAyNjIuOCAyMTAuNCAyNTEuMiAyMDguOEMyNTEuMiAyMDguOCAyMzUuNCAyMDIuMiAyMjYuNiAyMjRDMjI2LjYgMjI0IDIyMyAyMzEuMiAyMjEgMjMzLjJDMjE5IDIzNS4yIDI5MC42MDEgMjAyLjggMjkwLjYwMSAyMDIuOHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yOTQuNDAxIDIwMC42QzI5NC40MDEgMjAwLjYgMjY1LjQgMjEyLjggMjU1LjQgMjEyLjRDMjU1LjQgMjEyLjQgMjM5IDIwNy44IDIzMC42IDIyMi40QzIzMC42IDIyMi40IDIyMi4yIDIzMS42IDIxOSAyMzMuMkMyMTkgMjMzLjIgMjE4LjYgMjM0LjggMjI1IDIzMC44TDIzNS40IDIzNkMyMzUuNCAyMzYgMjUwLjIgMjQ1LjYgMjU5LjggMjI5LjZDMjU5LjggMjI5LjYgMjYzLjggMjE4LjQgMjYzLjggMjE2LjRDMjYzLjggMjE0LjQgMjg1IDIwOC44IDI4Ni42MDEgMjA4LjRDMjg4LjIwMSAyMDggMjk0LjgwMSAyMDMuOCAyOTQuNDAxIDIwMC42eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICM5OWNjMzInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI0NyAyMzYuNTE0QzI0MC4xMjggMjM2LjUxNCAyMzEuNzU1IDIzMi42NDkgMjMxLjc1NSAyMjYuNEMyMzEuNzU1IDIyMC4xNTIgMjQwLjEyOCAyMTMuODg3IDI0NyAyMTMuODg3QzI1My44NzQgMjEzLjg4NyAyNTkuNDQ2IDIxOC45NTIgMjU5LjQ0NiAyMjUuMkMyNTkuNDQ2IDIzMS40NDkgMjUzLjg3NCAyMzYuNTE0IDI0NyAyMzYuNTE0eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICM2NTk5MDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI0My4zNzcgMjE5LjgzQzIzOC41MzEgMjIwLjU1MiAyMzMuNDQyIDIyMi4wNTUgMjMzLjUxNCAyMjEuODM5QzIzNS4wNTQgMjE3LjIyIDI0MS40MTUgMjEzLjg4NyAyNDcgMjEzLjg4N0MyNTEuMjk2IDIxMy44ODcgMjU1LjA4NCAyMTUuODY1IDI1Ny4zMiAyMTguODc1QzI1Ny4zMiAyMTguODc1IDI1Mi4wMDQgMjE4LjU0NSAyNDMuMzc3IDIxOS44M3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNTUuNCAyMTkuNkMyNTUuNCAyMTkuNiAyNTEgMjE2LjQgMjUxIDIxOC42QzI1MSAyMTguNiAyNTQuNiAyMjMgMjU1LjQgMjE5LjZ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjQ1LjQgMjI3LjcyNkMyNDIuOTAxIDIyNy43MjYgMjQwLjg3NSAyMjUuNyAyNDAuODc1IDIyMy4yQzI0MC44NzUgMjIwLjcwMSAyNDIuOTAxIDIxOC42NzUgMjQ1LjQgMjE4LjY3NUMyNDcuOSAyMTguNjc1IDI0OS45MjYgMjIwLjcwMSAyNDkuOTI2IDIyMy4yQzI0OS45MjYgMjI1LjcgMjQ3LjkgMjI3LjcyNiAyNDUuNCAyMjcuNzI2eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjYzcyMjYnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE0MS40IDIxNC40QzE0MS40IDIxNC40IDEzOC4yIDE5My4yIDE0MC42IDE4OC44QzE0MC42IDE4OC44IDE1MS40IDE3OC44IDE1MSAxNzUuMkMxNTEgMTc1LjIgMTUwLjYgMTU3LjIgMTQ5LjQgMTU2LjRDMTQ4LjIgMTU1LjYgMTQwLjYgMTQ5LjYgMTM0LjYgMTU2QzEzNC42IDE1NiAxMjQuMiAxNzQgMTI1IDE4MC40TDEyNSAxODIuNEMxMjUgMTgyLjQgMTE3LjQgMTgyIDExNS44IDE4NEMxMTUuOCAxODQgMTE0LjYgMTg5LjIgMTEzLjQgMTg5LjZDMTEzLjQgMTg5LjYgMTEwLjYgMTkyIDExMi42IDE5NC44QzExMi42IDE5NC44IDExMC42IDE5Ny4yIDExMSAyMDEuMkwxMTguNiAyMDUuMkMxMTguNiAyMDUuMiAxMjAuNiAyMTkuNiAxMzEuNCAyMjQuOEMxMzYuMjM2IDIyNy4xMjkgMTM5LjQgMjIwLjQgMTQxLjQgMjE0LjR6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTQwLjQgMjEyLjU2QzE0MC40IDIxMi41NiAxMzcuNTIgMTkzLjQ4IDEzOS42OCAxODkuNTJDMTM5LjY4IDE4OS41MiAxNDkuNCAxODAuNTIgMTQ5LjA0IDE3Ny4yOEMxNDkuMDQgMTc3LjI4IDE0OC42OCAxNjEuMDggMTQ3LjYgMTYwLjM2QzE0Ni41MiAxNTkuNjQgMTM5LjY4IDE1NC4yNCAxMzQuMjggMTYwQzEzNC4yOCAxNjAgMTI0LjkyIDE3Ni4yIDEyNS42NCAxODEuOTZMMTI1LjY0IDE4My43NkMxMjUuNjQgMTgzLjc2IDExOC44IDE4My40IDExNy4zNiAxODUuMkMxMTcuMzYgMTg1LjIgMTE2LjI4IDE4OS44OCAxMTUuMiAxOTAuMjRDMTE1LjIgMTkwLjI0IDExMi42OCAxOTIuNCAxMTQuNDggMTk0LjkyQzExNC40OCAxOTQuOTIgMTEyLjY4IDE5Ny4wOCAxMTMuMDQgMjAwLjY4TDExOS44OCAyMDQuMjhDMTE5Ljg4IDIwNC4yOCAxMjEuNjggMjE3LjI0IDEzMS40IDIyMS45MkMxMzUuNzUyIDIyNC4wMTUgMTM4LjYgMjE3Ljk2IDE0MC40IDIxMi41NnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZWI5NTVjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNDguOTUgMTU3LjM5QzE0Ny44NiAxNTYuNTMgMTQwLjM3IDE1MC43NiAxMzQuNTIgMTU3QzEzNC41MiAxNTcgMTI0LjM4IDE3NC41NSAxMjUuMTYgMTgwLjc5TDEyNS4xNiAxODIuNzRDMTI1LjE2IDE4Mi43NCAxMTcuNzUgMTgyLjM1IDExNi4xOSAxODQuM0MxMTYuMTkgMTg0LjMgMTE1LjAyIDE4OS4zNyAxMTMuODUgMTg5Ljc2QzExMy44NSAxODkuNzYgMTExLjEyIDE5Mi4xIDExMy4wNyAxOTQuODNDMTEzLjA3IDE5NC44MyAxMTEuMTIgMTk3LjE3IDExMS41MSAyMDEuMDdMMTE4LjkyIDIwNC45N0MxMTguOTIgMjA0Ljk3IDEyMC44NyAyMTkuMDEgMTMxLjQgMjI0LjA4QzEzNi4xMTQgMjI2LjM1IDEzOS4yIDIxOS43OSAxNDEuMTUgMjEzLjk0QzE0MS4xNSAyMTMuOTQgMTM4LjAzIDE5My4yNyAxNDAuMzcgMTg4Ljk4QzE0MC4zNyAxODguOTggMTUwLjkgMTc5LjIzIDE1MC41MSAxNzUuNzJDMTUwLjUxIDE3NS43MiAxNTAuMTIgMTU4LjE3IDE0OC45NSAxNTcuMzl6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2YyYjg5MicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTQ4LjUgMTU4LjM4QzE0Ny41MiAxNTcuNDYgMTQwLjE0IDE1MS45MiAxMzQuNDQgMTU4QzEzNC40NCAxNTggMTI0LjU2IDE3NS4xIDEyNS4zMiAxODEuMThMMTI1LjMyIDE4My4wOEMxMjUuMzIgMTgzLjA4IDExOC4xIDE4Mi43IDExNi41OCAxODQuNkMxMTYuNTggMTg0LjYgMTE1LjQ0IDE4OS41NCAxMTQuMyAxODkuOTJDMTE0LjMgMTg5LjkyIDExMS42NCAxOTIuMiAxMTMuNTQgMTk0Ljg2QzExMy41NCAxOTQuODYgMTExLjY0IDE5Ny4xNCAxMTIuMDIgMjAwLjk0TDExOS4yNCAyMDQuNzRDMTE5LjI0IDIwNC43NCAxMjEuMTQgMjE4LjQyIDEzMS40IDIyMy4zNkMxMzUuOTk0IDIyNS41NzIgMTM5IDIxOS4xOCAxNDAuOSAyMTMuNDhDMTQwLjkgMjEzLjQ4IDEzNy44NiAxOTMuMzQgMTQwLjE0IDE4OS4xNkMxNDAuMTQgMTg5LjE2IDE1MC40IDE3OS42NiAxNTAuMDIgMTc2LjI0QzE1MC4wMiAxNzYuMjQgMTQ5LjY0IDE1OS4xNCAxNDguNSAxNTguMzh6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2Y4ZGNjOCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTQ4LjA1IDE1OS4zN0MxNDcuMTggMTU4LjM5IDEzOS45MSAxNTMuMDggMTM0LjM2IDE1OUMxMzQuMzYgMTU5IDEyNC43NCAxNzUuNjUgMTI1LjQ4IDE4MS41N0wxMjUuNDggMTgzLjQyQzEyNS40OCAxODMuNDIgMTE4LjQ1IDE4My4wNSAxMTYuOTcgMTg0LjlDMTE2Ljk3IDE4NC45IDExNS44NiAxODkuNzEgMTE0Ljc1IDE5MC4wOEMxMTQuNzUgMTkwLjA4IDExMi4xNiAxOTIuMyAxMTQuMDEgMTk0Ljg5QzExNC4wMSAxOTQuODkgMTEyLjE2IDE5Ny4xMSAxMTIuNTMgMjAwLjgxTDExOS41NiAyMDQuNTFDMTE5LjU2IDIwNC41MSAxMjEuNDEgMjE3LjgzIDEzMS40IDIyMi42NEMxMzUuODczIDIyNC43OTQgMTM4LjggMjE4LjU3IDE0MC42NSAyMTMuMDJDMTQwLjY1IDIxMy4wMiAxMzcuNjkgMTkzLjQxIDEzOS45MSAxODkuMzRDMTM5LjkxIDE4OS4zNCAxNDkuOSAxODAuMDkgMTQ5LjUzIDE3Ni43NkMxNDkuNTMgMTc2Ljc2IDE0OS4xNiAxNjAuMTEgMTQ4LjA1IDE1OS4zN3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNDAuNCAyMTIuNDZDMTQwLjQgMjEyLjQ2IDEzNy41MiAxOTMuNDggMTM5LjY4IDE4OS41MkMxMzkuNjggMTg5LjUyIDE0OS40IDE4MC41MiAxNDkuMDQgMTc3LjI4QzE0OS4wNCAxNzcuMjggMTQ4LjY4IDE2MS4wOCAxNDcuNiAxNjAuMzZDMTQ2Ljg0IDE1OS4zMiAxMzkuNjggMTU0LjI0IDEzNC4yOCAxNjBDMTM0LjI4IDE2MCAxMjQuOTIgMTc2LjIgMTI1LjY0IDE4MS45NkwxMjUuNjQgMTgzLjc2QzEyNS42NCAxODMuNzYgMTE4LjggMTgzLjQgMTE3LjM2IDE4NS4yQzExNy4zNiAxODUuMiAxMTYuMjggMTg5Ljg4IDExNS4yIDE5MC4yNEMxMTUuMiAxOTAuMjQgMTEyLjY4IDE5Mi40IDExNC40OCAxOTQuOTJDMTE0LjQ4IDE5NC45MiAxMTIuNjggMTk3LjA4IDExMy4wNCAyMDAuNjhMMTE5Ljg4IDIwNC4yOEMxMTkuODggMjA0LjI4IDEyMS42OCAyMTcuMjQgMTMxLjQgMjIxLjkyQzEzNS43NTIgMjI0LjAxNSAxMzguNiAyMTcuODYgMTQwLjQgMjEyLjQ2eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEzNy4zIDIwNi4yQzEzNy4zIDIwNi4yIDExNS43IDE5NiAxMTQuOCAxOTUuMkMxMTQuOCAxOTUuMiAxMjMuOSAyMDMuNCAxMjQuNyAyMDMuNEMxMjUuNSAyMDMuNCAxMzcuMyAyMDYuMiAxMzcuMyAyMDYuMnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xMjAuMiAyMDBDMTIwLjIgMjAwIDEzOC42IDIwMy42IDEzOC42IDIwOEMxMzguNiAyMTAuOTEyIDEzOC4zNTcgMjI0LjMzMSAxMzMgMjIyLjhDMTI0LjYgMjIwLjQgMTI4LjIgMjA2IDEyMC4yIDIwMHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjOTljYzMyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xMjguNiAyMDMuOEMxMjguNiAyMDMuOCAxMzcuNTc4IDIwNS4yNzQgMTM4LjYgMjA4QzEzOS4yIDIwOS42IDEzOS44NjMgMjE3LjkwOCAxMzQuNCAyMTlDMTI5Ljg0OCAyMTkuOTExIDEyNy42MTggMjA5LjY5IDEyOC42IDIwMy44eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIxNC41OTUgMjQ2LjM0OUMyMTQuMDk4IDI0NC42MDcgMjE1LjQwOSAyNDQuNzM4IDIxNy4yIDI0NC4yQzIxOS4yIDI0My42IDIzMS40IDIzOS44IDIzMi4yIDIzNy4yQzIzMyAyMzQuNiAyNDYuMiAyMzkgMjQ2LjIgMjM5QzI0OCAyMzkuOCAyNTIuNCAyNDIuNCAyNTIuNCAyNDIuNEMyNTcuMiAyNDMuNiAyNjMuOCAyNDQgMjYzLjggMjQ0QzI2Ni4yIDI0NSAyNjkuNiAyNDcuOCAyNjkuNiAyNDcuOEMyODQuMiAyNTggMjk2LjYwMSAyNTAuOCAyOTYuNjAxIDI1MC44QzMxNi42MDEgMjQ0LjIgMzEwLjYwMSAyMjcgMzEwLjYwMSAyMjdDMzA3LjYwMSAyMTggMzEwLjgwMSAyMTQuNiAzMTAuODAxIDIxNC42QzMxMS4wMDEgMjEwLjggMzE4LjIwMSAyMTcuMiAzMTguMjAxIDIxNy4yQzMyMC44MDEgMjIxLjQgMzIxLjYwMSAyMjYuNCAzMjEuNjAxIDIyNi40QzMyOS42MDEgMjM3LjYgMzI2LjIwMSAyMTkuOCAzMjYuMjAxIDIxOS44QzMyNi40MDEgMjE4LjggMzIzLjYwMSAyMTUuMiAzMjMuNjAxIDIxNEMzMjMuNjAxIDIxMi44IDMyMS44MDEgMjA5LjQgMzIxLjgwMSAyMDkuNEMzMTguODAxIDIwNiAzMjEuMjAxIDE5OSAzMjEuMjAxIDE5OUMzMjMuMDAxIDE4NS4yIDMyMC44MDEgMTg3IDMyMC44MDEgMTg3QzMxOS42MDEgMTg1LjIgMzEwLjQwMSAxOTUuMiAzMTAuNDAxIDE5NS4yQzMwOC4yMDEgMTk4LjYgMzAyLjIwMSAyMDAuMiAzMDIuMjAxIDIwMC4yQzI5OS40MDEgMjAyIDI5Ni4wMDEgMjAwLjYgMjk2LjAwMSAyMDAuNkMyOTMuNDAxIDIwMC4yIDI4Ny44MDEgMjA3LjIgMjg3LjgwMSAyMDcuMkMyOTAuNjAxIDIwNyAyOTMuMDAxIDIxMS40IDI5NS40MDEgMjExLjZDMjk3LjgwMSAyMTEuOCAyOTkuNjAxIDIwOS4yIDMwMS4yMDEgMjA4LjZDMzAyLjgwMSAyMDggMzA1LjYwMSAyMTMuOCAzMDUuNjAxIDIxMy44QzMwNi4wMDEgMjE2LjQgMzAwLjQwMSAyMjEuMiAzMDAuNDAxIDIyMS4yQzMwMC4wMDEgMjI1LjggMjk4LjQwMSAyMjQuMiAyOTguNDAxIDIyNC4yQzI5NS40MDEgMjIzLjYgMjk0LjIwMSAyMjcuNCAyOTMuMjAxIDIzMkMyOTIuMjAxIDIzNi42IDI4OC4wMDEgMjM3IDI4OC4wMDEgMjM3QzI4Ni40MDEgMjQ0LjQgMjg1LjIgMjQxLjQgMjg1LjIgMjQxLjRDMjg1IDIzNS44IDI3OSAyNDEuNiAyNzkgMjQxLjZDMjc3LjggMjQzLjYgMjczLjIgMjQxLjQgMjczLjIgMjQxLjRDMjY2LjQgMjM5LjQgMjY4LjggMjM3LjQgMjY4LjggMjM3LjRDMjcwLjYgMjM1LjIgMjgxLjggMjM3LjQgMjgxLjggMjM3LjRDMjg0IDIzNS44IDI3NiAyMzEuOCAyNzYgMjMxLjhDMjc1LjQgMjMwIDI3Ni40IDIyNS42IDI3Ni40IDIyNS42QzI3Ny42IDIyMi40IDI4NC40IDIxNi44IDI4NC40IDIxNi44QzI5My44MDEgMjE1LjYgMjkxLjAwMSAyMTQgMjkxLjAwMSAyMTRDMjg0LjgwMSAyMDguOCAyNzkgMjE2LjQgMjc5IDIxNi40QzI3Ni44IDIyMi42IDI1OS40IDIzNy42IDI1OS40IDIzNy42QzI1NC42IDI0MSAyNTcuMiAyMzQuMiAyNTMuMiAyMzcuNkMyNDkuMiAyNDEgMjI4LjYgMjMyIDIyOC42IDIzMkMyMTcuMDM4IDIzMC44MDcgMjE0LjMwNiAyNDYuNTQ5IDIxMC43NzcgMjQzLjQyOUMyMTAuNzc3IDI0My40MjkgMjE2LjE5NSAyNTEuOTQ5IDIxNC41OTUgMjQ2LjM0OXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J000MDkuNDAxIDgwQzQwOS40MDEgODAgMzgzLjgwMSA4OCAzODEuMDAxIDEwNi44QzM4MS4wMDEgMTA2LjggMzc4LjYwMSAxMjkuNiAzOTkuMDAxIDE0Ny4yQzM5OS4wMDEgMTQ3LjIgMzk5LjQwMSAxNTMuNiA0MDEuNDAxIDE1Ni44QzQwMS40MDEgMTU2LjggMzk5LjgwMSAxNjEuNiA0MTguNjAxIDE1NEw0NDUuODAxIDE0NS42QzQ0NS44MDEgMTQ1LjYgNDUyLjIwMSAxNDMuMiA0NTcuNDAxIDEzNC40QzQ2Mi42MDEgMTI1LjYgNDc3LjgwMSAxMDYuOCA0NzQuMjAxIDgxLjZDNDc0LjIwMSA4MS42IDQ3NS40MDEgNzAuNCA0NjkuNDAxIDcwQzQ2OS40MDEgNzAgNDYxLjAwMSA2OC40IDQ1My44MDEgNzZDNDUzLjgwMSA3NiA0NDcuMDAxIDc5LjIgNDQ0LjYwMSA3OC44TDQwOS40MDEgODB6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNDY0LjAyMiA3OS4wMUM0NjQuMDIyIDc5LjAxIDQ2Ni4xMjIgNzAuMDggNDYxLjI4MiA3NC45MkM0NjEuMjgyIDc0LjkyIDQ1NC4yNDIgODAuNjQgNDQ2Ljc2MSA4MC42NEM0NDYuNzYxIDgwLjY0IDQzMi4yNDEgODIuODQgNDI3Ljg0MSA5Ni4wNEM0MjcuODQxIDk2LjA0IDQyMy44ODEgMTIyLjg4IDQzMS44MDEgMTI4LjZDNDMxLjgwMSAxMjguNiA0MzYuNjQxIDEzNi4wOCA0NDMuNjgxIDEyOS40OEM0NTAuNzIyIDEyMi44OCA0NjYuMjIyIDkyLjY1IDQ2NC4wMjIgNzkuMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzMyMzIzMicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNDYzLjY0OCA3OS4zNjhDNDYzLjY0OCA3OS4zNjggNDY1LjczOCA3MC42MjQgNDYwLjk4NiA3NS4zNzZDNDYwLjk4NiA3NS4zNzYgNDU0LjA3NCA4MC45OTIgNDQ2LjcyOSA4MC45OTJDNDQ2LjcyOSA4MC45OTIgNDMyLjQ3MyA4My4xNTIgNDI4LjE1MyA5Ni4xMTJDNDI4LjE1MyA5Ni4xMTIgNDI0LjI2NSAxMjIuNDY0IDQzMi4wNDEgMTI4LjA4QzQzMi4wNDEgMTI4LjA4IDQzNi43OTMgMTM1LjQyNCA0NDMuNzA1IDEyOC45NDRDNDUwLjYxOCAxMjIuNDY0IDQ2NS44MDggOTIuNzYgNDYzLjY0OCA3OS4zNjh6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzY2NjY2NicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNDYzLjI3NCA3OS43MjZDNDYzLjI3NCA3OS43MjYgNDY1LjM1NCA3MS4xNjggNDYwLjY5IDc1LjgzMkM0NjAuNjkgNzUuODMyIDQ1My45MDYgODEuMzQ0IDQ0Ni42OTcgODEuMzQ0QzQ0Ni42OTcgODEuMzQ0IDQzMi43MDUgODMuNDY0IDQyOC40NjUgOTYuMTg0QzQyOC40NjUgOTYuMTg0IDQyNC42NDkgMTIyLjA0OCA0MzIuMjgxIDEyNy41NkM0MzIuMjgxIDEyNy41NiA0MzYuOTQ1IDEzNC43NjggNDQzLjcyOSAxMjguNDA4QzQ1MC41MTQgMTIyLjA0OCA0NjUuMzk0IDkyLjg3IDQ2My4yNzQgNzkuNzI2eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICM5OTk5OTknKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTQ2Mi45IDgwLjA4NEM0NjIuOSA4MC4wODQgNDY0Ljk3IDcxLjcxMiA0NjAuMzk0IDc2LjI4OEM0NjAuMzk0IDc2LjI4OCA0NTMuNzM4IDgxLjY5NiA0NDYuNjY1IDgxLjY5NkM0NDYuNjY1IDgxLjY5NiA0MzIuOTM3IDgzLjc3NiA0MjguNzc3IDk2LjI1NkM0MjguNzc3IDk2LjI1NiA0MjUuMDMzIDEyMS42MzIgNDMyLjUyMSAxMjcuMDRDNDMyLjUyMSAxMjcuMDQgNDM3LjA5NyAxMzQuMTEyIDQ0My43NTMgMTI3Ljg3MkM0NTAuNDEgMTIxLjYzMiA0NjQuOTggOTIuOTggNDYyLjkgODAuMDg0eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTQ2Mi41MjYgODAuNDQyQzQ2Mi41MjYgODAuNDQyIDQ2NC41ODYgNzIuMjU2IDQ2MC4wOTggNzYuNzQ0QzQ2MC4wOTggNzYuNzQ0IDQ1My41NjkgODIuMDQ4IDQ0Ni42MzMgODIuMDQ4QzQ0Ni42MzMgODIuMDQ4IDQzMy4xNjkgODQuMDg4IDQyOS4wODkgOTYuMzI4QzQyOS4wODkgOTYuMzI4IDQyNS40MTcgMTIxLjIxNiA0MzIuNzYxIDEyNi41MkM0MzIuNzYxIDEyNi41MiA0MzcuMjQ5IDEzMy40NTYgNDQzLjc3NyAxMjcuMzM2QzQ1MC4zMDUgMTIxLjIxNiA0NjQuNTY2IDkzLjA5IDQ2Mi41MjYgODAuNDQyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmYnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTQ2Mi4xNTEgODAuOEM0NjIuMTUxIDgwLjggNDY0LjIwMSA3Mi44IDQ1OS44MDEgNzcuMkM0NTkuODAxIDc3LjIgNDUzLjQwMSA4Mi40IDQ0Ni42MDEgODIuNEM0NDYuNjAxIDgyLjQgNDMzLjQwMSA4NC40IDQyOS40MDEgOTYuNEM0MjkuNDAxIDk2LjQgNDI1LjgwMSAxMjAuOCA0MzMuMDAxIDEyNkM0MzMuMDAxIDEyNiA0MzcuNDAxIDEzMi44IDQ0My44MDEgMTI2LjhDNDUwLjIwMSAxMjAuOCA0NjQuMTUxIDkzLjIgNDYyLjE1MSA4MC44eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICM5OTI2MDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI1MC42IDI4NEMyNTAuNiAyODQgMjMwLjIgMjY0LjggMjIyLjIgMjY0QzIyMi4yIDI2NCAxODcuOCAyNjAgMTczIDI3OEMxNzMgMjc4IDE5MC42IDI1Ny42IDIxOC4yIDI2My4yQzIxOC4yIDI2My4yIDE5Ni42IDI1OC44IDE4NC4yIDI2MkMxODQuMiAyNjIgMTY3LjQgMjYyIDE1Ny44IDI3NkwxNTUgMjgwLjhDMTU1IDI4MC44IDE1OSAyNjYgMTc3LjQgMjYwQzE3Ny40IDI2MCAyMDAuMiAyNTUuMiAyMTEgMjYwQzIxMSAyNjAgMTg5LjQgMjUzLjIgMTc5LjQgMjU1LjJDMTc5LjQgMjU1LjIgMTQ5IDI1Mi44IDEzNi4yIDI3OS4yQzEzNi4yIDI3OS4yIDE0MC4yIDI2NC44IDE1NSAyNTcuNkMxNTUgMjU3LjYgMTY4LjYgMjQ4LjggMTg5IDI1MS42QzE4OSAyNTEuNiAyMDMuNCAyNTQuOCAyMDguNiAyNTcuMkMyMTMuOCAyNTkuNiAyMTIuNiAyNTYuOCAyMDQuMiAyNTJDMjA0LjIgMjUyIDE5OC42IDI0MiAxODQuNiAyNDIuNEMxODQuNiAyNDIuNCAxNDEuOCAyNDYgMTMxLjQgMjU4QzEzMS40IDI1OCAxNDUgMjQ2LjggMTU1LjQgMjQ0QzE1NS40IDI0NCAxNzcuOCAyMzYgMTg2LjIgMjM2LjhDMTg2LjIgMjM2LjggMjExIDIzNy44IDIxOC42IDIzMy44QzIxOC42IDIzMy44IDIwNy40IDIzOC44IDIxMC42IDI0MkMyMTMuOCAyNDUuMiAyMjAuNiAyNTIuOCAyMjAuNiAyNTRDMjIwLjYgMjU1LjIgMjQ0LjggMjc3LjMgMjQ4LjQgMjgxLjdMMjUwLjYgMjg0eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTM4OSA0NzhDMzg5IDQ3OCAzNzMuNSA0NDEuNSAzNjEgNDMyQzM2MSA0MzIgMzg3IDQ0OCAzOTAuNSA0NjZDMzkwLjUgNDY2IDM5MC41IDQ3NiAzODkgNDc4eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTQzNiA0ODUuNUM0MzYgNDg1LjUgNDA5LjUgNDMwLjUgMzkxIDQwNi41QzM5MSA0MDYuNSA0MzQuNSA0NDQgNDM5LjUgNDcwLjVMNDQwIDQ3Nkw0MzcgNDczLjVDNDM3IDQ3My41IDQzNi41IDQ4Mi41IDQzNiA0ODUuNXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J000OTIuNSA0MzdDNDkyLjUgNDM3IDQzMCAzNzcuNSA0MjguNSAzNzVDNDI4LjUgMzc1IDQ4OSA0NDEgNDkyIDQ0OC41QzQ5MiA0NDguNSA0OTAgNDM5LjUgNDkyLjUgNDM3eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTMwNCA0ODAuNUMzMDQgNDgwLjUgMzIzLjUgNDI4LjUgMzQyLjUgNDUxQzM0Mi41IDQ1MSAzNTcuNSA0NjEgMzU3IDQ2NEMzNTcgNDY0IDM1MyA0NTcuNSAzMzUgNDU4QzMzNSA0NTggMzE2IDQ1NSAzMDQgNDgwLjV6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNDk0LjUgMzUzQzQ5NC41IDM1MyA0NDkuNSAzMjQuNSA0NDIgMzIzQzQzMC4xOTMgMzIwLjYzOSA0OTEuNSAzNTIgNDk2LjUgMzYyLjVDNDk2LjUgMzYyLjUgNDk4LjUgMzYwIDQ5NC41IDM1M3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zNDMuODAxIDQ1OS42MDFDMzQzLjgwMSA0NTkuNjAxIDM2NC4yMDEgNDU3LjYwMSAzNzEuMDAxIDQ1MC44MDFMMzc1LjQwMSA0NTQuNDAxTDM5My4wMDEgNDE2LjAwMUwzOTYuNjAxIDQyMS4yMDFDMzk2LjYwMSA0MjEuMjAxIDQxMS4wMDEgNDA2LjQwMSA0MTAuMjAxIDM5OC40MDFDNDA5LjQwMSAzOTAuNDAxIDQyMy4wMDEgNDA0LjQwMSA0MjMuMDAxIDQwNC40MDFDNDIzLjAwMSA0MDQuNDAxIDQyMi4yMDEgMzkyLjgwMSA0MjkuNDAxIDM5OS42MDFDNDI5LjQwMSAzOTkuNjAxIDQyNy4wMDEgMzg0LjAwMSA0MzUuNDAxIDM5Mi4wMDFDNDM1LjQwMSAzOTIuMDAxIDQyNC44NjQgMzYxLjg0NCA0NDcuNDAxIDM4Ny42MDFDNDUzLjAwMSAzOTQuMDAxIDQ0OC42MDEgMzg3LjIwMSA0NDguNjAxIDM4Ny4yMDFDNDQ4LjYwMSAzODcuMjAxIDQyMi42MDEgMzM5LjIwMSA0NDQuMjAxIDM1My42MDFDNDQ0LjIwMSAzNTMuNjAxIDQ0Ni4yMDEgMzMwLjgwMSA0NDUuMDAxIDMyNi40MDFDNDQzLjgwMSAzMjIuMDAxIDQ0MS44MDEgMjk5LjYgNDM3LjAwMSAyOTQuNEM0MzIuMjAxIDI4OS4yIDQzNy40MDEgMjg3LjYgNDQzLjAwMSAyOTIuOEM0NDMuMDAxIDI5Mi44IDQzMS44MDEgMjY4LjggNDQ1LjAwMSAyODAuOEM0NDUuMDAxIDI4MC44IDQ0MS40MDEgMjY1LjYgNDM3LjAwMSAyNjIuOEM0MzcuMDAxIDI2Mi44IDQzMS40MDEgMjQ1LjYgNDQ2LjYwMSAyNTYuNEM0NDYuNjAxIDI1Ni40IDQ0Mi4yMDEgMjQ0IDQzOS4wMDEgMjQwLjhDNDM5LjAwMSAyNDAuOCA0MjcuNDAxIDIxMy4yIDQzNC42MDEgMjE4TDQzOS4wMDEgMjIxLjZDNDM5LjAwMSAyMjEuNiA0MzIuMjAxIDIwNy42IDQzOC42MDEgMjEyQzQ0NS4wMDEgMjE2LjQgNDQ1LjAwMSAyMTYgNDQ1LjAwMSAyMTZDNDQ1LjAwMSAyMTYgNDIzLjgwMSAxODIuOCA0NDQuMjAxIDIwMC40QzQ0NC4yMDEgMjAwLjQgNDM2LjA0MiAxODYuNDgyIDQzMi42MDEgMTc5LjZDNDMyLjYwMSAxNzkuNiA0MTMuODAxIDE1OS4yIDQyOC4yMDEgMTY1LjZMNDMzLjAwMSAxNjcuMkM0MzMuMDAxIDE2Ny4yIDQyNC4yMDEgMTU3LjIgNDE2LjIwMSAxNTUuNkM0MDguMjAxIDE1NCA0MTguNjAxIDE0Ny42IDQyNS4wMDEgMTQ5LjZDNDMxLjQwMSAxNTEuNiA0NDcuMDAxIDE1OS4yIDQ0Ny4wMDEgMTU5LjJDNDQ3LjAwMSAxNTkuMiA0NTkuODAxIDE3OCA0NjMuODAxIDE3OC40QzQ2My44MDEgMTc4LjQgNDQzLjgwMSAxNzAuOCA0NDkuODAxIDE3OC44QzQ0OS44MDEgMTc4LjggNDY0LjIwMSAxOTIuOCA0NTcuMDAxIDE5Mi40QzQ1Ny4wMDEgMTkyLjQgNDUxLjAwMSAxOTkuNiA0NTUuODAxIDIwOC40QzQ1NS44MDEgMjA4LjQgNDM3LjM0MiAxOTAuMDA5IDQ1Mi4yMDEgMjE1LjZMNDU5LjAwMSAyMzJDNDU5LjAwMSAyMzIgNDM0LjYwMSAyMDcuMiA0NDUuODAxIDIyOS4yQzQ0NS44MDEgMjI5LjIgNDYzLjAwMSAyNTIuOCA0NjUuMDAxIDI1My4yQzQ2Ny4wMDEgMjUzLjYgNDcxLjQwMSAyNjIuNCA0NzEuNDAxIDI2Mi40TDQ2Ny4wMDEgMjYwLjRMNDcyLjIwMSAyNjkuMkM0NzIuMjAxIDI2OS4yIDQ2MS4wMDEgMjU3LjIgNDY3LjAwMSAyNzAuNEw0NzIuNjAxIDI4NC44QzQ3Mi42MDEgMjg0LjggNDUyLjIwMSAyNjIuOCA0NjUuODAxIDI5Mi40QzQ2NS44MDEgMjkyLjQgNDQ5LjQwMSAyODcuMiA0NTguMjAxIDMwNC40QzQ1OC4yMDEgMzA0LjQgNDU2LjYwMSAzMjAuNDAxIDQ1Ny4wMDEgMzI1LjYwMUM0NTcuNDAxIDMzMC44MDEgNDU4LjYwMSAzNTkuMjAxIDQ1NC4yMDEgMzY3LjIwMUM0NDkuODAxIDM3NS4yMDEgNDYwLjIwMSAzOTQuNDAxIDQ2Mi4yMDEgMzk4LjQwMUM0NjQuMjAxIDQwMi40MDEgNDY3LjgwMSA0MTMuMjAxIDQ1OS4wMDEgNDA0LjAwMUM0NTAuMjAxIDM5NC44MDEgNDU0LjYwMSA0MDAuNDAxIDQ1Ni42MDEgNDA5LjIwMUM0NTguNjAxIDQxOC4wMDEgNDY0LjYwMSA0MzMuNjAxIDQ2My44MDEgNDM5LjIwMUM0NjMuODAxIDQzOS4yMDEgNDYyLjYwMSA0NDAuNDAxIDQ1OS40MDEgNDM2LjgwMUM0NTkuNDAxIDQzNi44MDEgNDQ0LjYwMSA0MTQuMDAxIDQ0Ni4yMDEgNDI4LjQwMUM0NDYuMjAxIDQyOC40MDEgNDQ1LjAwMSA0MzYuNDAxIDQ0MS44MDEgNDQ1LjIwMUM0NDEuODAxIDQ0NS4yMDEgNDM4LjYwMSA0NTYuMDAxIDQzOC42MDEgNDQ3LjIwMUM0MzguNjAxIDQ0Ny4yMDEgNDM1LjQwMSA0MzAuNDAxIDQzMi42MDEgNDM4LjAwMUM0MjkuODAxIDQ0NS42MDEgNDI2LjIwMSA0NTEuNjAxIDQyMy40MDEgNDU0LjAwMUM0MjAuNjAxIDQ1Ni40MDEgNDE1LjQwMSA0MzMuNjAxIDQxNC4yMDEgNDQ0LjAwMUM0MTQuMjAxIDQ0NC4wMDEgNDAyLjIwMSA0MzEuNjAxIDM5Ny40MDEgNDQ4LjAwMUwzODUuODAxIDQ2NC40MDFDMzg1LjgwMSA0NjQuNDAxIDM4NS40MDEgNDUyLjAwMSAzODQuMjAxIDQ1OC4wMDFDMzg0LjIwMSA0NTguMDAxIDM1NC4yMDEgNDY0LjAwMSAzNDMuODAxIDQ1OS42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMzA5LjQwMSAxMDIuOEMzMDkuNDAxIDEwMi44IDI5Ny44MDEgOTQuOCAyOTMuODAxIDk1LjJDMjg5LjgwMSA5NS42IDMyMS40MDEgODYuNCAzNjIuNjAxIDExNEMzNjIuNjAxIDExNCAzNjcuNDAxIDExNi44IDM3MS4wMDEgMTE2LjRDMzcxLjAwMSAxMTYuNCAzNzQuMjAxIDExOC44IDM3MS40MDEgMTIyLjRDMzcxLjQwMSAxMjIuNCAzNjIuNjAxIDEzMiAzNzMuODAxIDE0My4yQzM3My44MDEgMTQzLjIgMzkyLjIwMSAxNTAgMzg2LjYwMSAxNDEuMkMzODYuNjAxIDE0MS4yIDM5Ny40MDEgMTQ1LjIgMzk5LjgwMSAxNDkuMkM0MDIuMjAxIDE1My4yIDQwMS4wMDEgMTQ5LjIgNDAxLjAwMSAxNDkuMkM0MDEuMDAxIDE0OS4yIDM5NC42MDEgMTQyIDM4OC42MDEgMTM2LjhDMzg4LjYwMSAxMzYuOCAzODMuNDAxIDEzNC44IDM4MC42MDEgMTI2LjRDMzc3LjgwMSAxMTggMzc1LjQwMSAxMDggMzc5LjgwMSAxMDQuOEMzNzkuODAxIDEwNC44IDM3NS44MDEgMTA5LjIgMzc2LjYwMSAxMDUuMkMzNzcuNDAxIDEwMS4yIDM4MS4wMDEgOTcuNiAzODIuNjAxIDk3LjJDMzg0LjIwMSA5Ni44IDQwMC42MDEgODEgNDA3LjQwMSA4MC42QzQwNy40MDEgODAuNiAzOTguMjAxIDgyIDM5NS4yMDEgODFDMzkyLjIwMSA4MCAzNjUuNjAxIDY4LjYgMzU5LjYwMSA2Ny40QzM1OS42MDEgNjcuNCAzNDIuODAxIDYwLjggMzU0LjgwMSA2Mi44QzM1NC44MDEgNjIuOCAzOTAuNjAxIDY2LjYgNDA4LjgwMSA3OS44QzQwOC44MDEgNzkuOCA0MDEuNjAxIDcxLjQgMzgzLjIwMSA2NC40QzM4My4yMDEgNjQuNCAzNjEuMDAxIDUxLjggMzI1LjgwMSA1Ni44QzMyNS44MDEgNTYuOCAzMDguMDAxIDYwIDMwMC4yMDEgNjEuOEMzMDAuMjAxIDYxLjggMjk3LjYwMSA2MS4yIDI5Ny4wMDEgNjAuOEMyOTYuNDAxIDYwLjQgMjg0LjYgNTEuNCAyNTcgNTguNEMyNTcgNTguNCAyNDAgNjMgMjMxLjQgNjcuOEMyMzEuNCA2Ny44IDIxNi4yIDY5IDIxMi42IDcyLjJDMjEyLjYgNzIuMiAxOTQgODYuOCAxOTIgODcuNkMxOTAgODguNCAxNzguNiA5NiAxNzcuOCA5Ni40QzE3Ny44IDk2LjQgMjAyLjQgODkuOCAyMDQuOCA4Ny40QzIwNy4yIDg1IDIyNC42IDgyLjQgMjI3IDgzLjhDMjI5LjQgODUuMiAyMzcuOCA4NC42IDIyOC4yIDg1LjJDMjI4LjIgODUuMiAzMDMuODAxIDEwMCAzMDQuNjAxIDEwMkMzMDUuNDAxIDEwNCAzMDkuNDAxIDEwMi44IDMwOS40MDEgMTAyLjh6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjNzIyNicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMzgwLjgwMSA5My42QzM4MC44MDEgOTMuNiAzNzAuNjAxIDg2LjIgMzY4LjYwMSA4Ni4yQzM2Ni42MDEgODYuMiAzNTQuMjAxIDc2IDM1MC4wMDEgNzYuNEMzNDUuODAxIDc2LjggMzMzLjYwMSA2Ni44IDMwNi4yMDEgNzVDMzA2LjIwMSA3NSAzMDUuNjAxIDczIDMwOS4yMDEgNzIuMkMzMDkuMjAxIDcyLjIgMzE1LjYwMSA3MCAzMTYuMDAxIDY5LjRDMzE2LjAwMSA2OS40IDMzNi4yMDEgNjUuMiAzNDMuNDAxIDY4LjhDMzQzLjQwMSA2OC44IDM1Mi42MDEgNzEuNCAzNTguODAxIDc3LjZDMzU4LjgwMSA3Ny42IDM3MC4wMDEgODAuOCAzNzMuMjAxIDc5LjhDMzczLjIwMSA3OS44IDM4Mi4wMDEgODIgMzgyLjQwMSA4My44QzM4Mi40MDEgODMuOCAzODguMjAxIDg2LjggMzg2LjQwMSA4OS40QzM4Ni40MDEgODkuNCAzODYuODAxIDkxIDM4MC44MDEgOTMuNnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2M3MjI2JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00zNjguMzMgOTEuNDkxQzM2OS4xMzcgOTIuMTIzIDM3MC4xNTYgOTIuMjIxIDM3MC43NjEgOTMuMDNDMzcwLjk5NSA5My4zNDQgMzcwLjcwNiA5My42NyAzNzAuMzkxIDkzLjc2N0MzNjkuMzQ4IDk0LjA4NCAzNjguMjkyIDkzLjUxNCAzNjcuMTUgOTQuMTAyQzM2Ni43NDggOTQuMzA5IDM2Ni4xMDYgOTQuMTI3IDM2NS41NTMgOTMuOTc4QzM2My45MjEgOTMuNTM3IDM2Mi4wOTIgOTMuNTEyIDM2MC40MDEgOTQuMkMzNTguNDE2IDkzLjA3MSAzNTYuMDU2IDkzLjY1NSAzNTMuOTc1IDkyLjY1NEMzNTMuOTE3IDkyLjYyNyAzNTMuNjk1IDkyLjk3MyAzNTMuNjIxIDkyLjk0NkMzNTAuNTc1IDkxLjgwMSAzNDYuODMyIDkyLjA4NCAzNDQuNDAxIDg5LjhDMzQxLjk3MyA4OS4zODggMzM5LjYxNiA4OC45MjYgMzM3LjE4OCA4OC4yNDZDMzM1LjM3IDg3LjczNyAzMzMuOTYxIDg2Ljc0OCAzMzIuMzQxIDg1LjkxNkMzMzAuOTY0IDg1LjIwOCAzMjkuNTA3IDg0LjY4NiAzMjcuOTczIDg0LjMxNEMzMjYuMTEgODMuODYyIDMyNC4yNzkgODMuOTc0IDMyMi4zODYgODMuNDU0QzMyMi4yOTMgODMuNDI5IDMyMi4xMDEgODMuNzczIDMyMi4wMTkgODMuNzQ2QzMyMS42OTUgODMuNjM4IDMyMS40MDUgODMuMDU1IDMyMS4yMzQgODMuMTA4QzMxOS41NTMgODMuNjMgMzE4LjA2NSA4Mi42NTggMzE2LjQwMSA4M0MzMTUuMjIzIDgxLjc3NiAzMTMuNDk1IDgyLjAyMSAzMTEuOTQ5IDgxLjU3OUMzMDguOTg1IDgwLjczMSAzMDUuODMxIDgyLjAwMSAzMDIuODAxIDgxQzMwNi45MTQgNzkuMTU4IDMxMS42MDEgODAuMzkgMzE1LjY2MyA3OC4zMjFDMzE3Ljk5MSA3Ny4xMzUgMzIwLjY1MyA3OC4yMzcgMzIzLjIyMyA3Ny40NzdDMzIzLjcxIDc3LjMzMyAzMjQuNDAxIDc3LjEzMSAzMjQuODAxIDc3LjhDMzI0LjkzNSA3Ny42NjUgMzI1LjExNyA3Ny40MjYgMzI1LjE3NSA3Ny40NTRDMzI3LjYyNSA3OC42MTEgMzI5Ljk0IDc5Ljg4NSAzMzIuNDIyIDgwLjk1MUMzMzIuNzYzIDgxLjA5NyAzMzMuMjk1IDgwLjg2NSAzMzMuNTQ3IDgxLjA2N0MzMzUuMDY3IDgyLjI4MyAzMzcuMDEgODIuMTggMzM4LjQwMSA4My40QzM0MC4wOTkgODIuODk4IDM0MS44OTIgODMuMjc4IDM0My42MjEgODIuNjU0QzM0My42OTggODIuNjI3IDM0My45MzIgODIuOTY4IDM0My45NjUgODIuOTQ2QzM0NS4wOTUgODIuMTk4IDM0Ni4yNSA4Mi40NjkgMzQ3LjE0MiA4Mi43NzNDMzQ3LjQ4IDgyLjg4OCAzNDguMTQzIDgzLjEzNSAzNDguNDQ4IDgzLjIwOUMzNDkuNTc0IDgzLjQ4NSAzNTAuNDMgODMuOTY1IDM1MS42MDkgODQuMTQ4QzM1MS43MjMgODQuMTY2IDM1MS45MDggODMuODI2IDM1MS45OCA4My44NTRDMzUzLjEwMyA4NC4yOTIgMzU0LjE0NSA4NC4yMzYgMzU0LjgwMSA4NS40QzM1NC45MzYgODUuMjY1IDM1NS4xMDEgODUuMDI3IDM1NS4xODMgODUuMDU0QzM1Ni4yMSA4NS4zOTIgMzU2Ljg1OSA4Ni4xNDcgMzU3Ljk2IDg2LjM4OEMzNTguNDQ1IDg2LjQ5NCAzNTkuMDU3IDg3LjEyIDM1OS42MzMgODcuMjk2QzM2Mi4wMjUgODguMDI3IDM2My44NjggODkuNTU2IDM2Ni4wNjIgOTAuNDUxQzM2Ni44MjEgOTAuNzYxIDM2Ny42OTcgOTAuOTk1IDM2OC4zMyA5MS40OTF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjNzIyNicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjkxLjY5NiA3Ny4yNjFDMjg5LjE3OCA3NS41MzYgMjg2LjgxIDc0LjQzIDI4NC4zNjggNzIuNjQ0QzI4NC4xODcgNzIuNTExIDI4My44MjcgNzIuNjgxIDI4My42MjUgNzIuNTU5QzI4Mi42MTggNzEuOTUgMjgxLjczIDcxLjM2OSAyODAuNzQ4IDcwLjY3M0MyODAuMjA5IDcwLjI5MSAyNzkuMzg4IDcwLjMwMiAyNzguODggNzAuMDQ0QzI3Ni4zMzYgNjguNzUyIDI3My43MDcgNjguMTk0IDI3MS4yIDY3QzI3MS44ODIgNjYuMzYyIDI3My4wMDQgNjYuNjA2IDI3My42IDY1LjhDMjczLjc5NSA2Ni4wOCAyNzQuMDMzIDY2LjM2NCAyNzQuMzg2IDY2LjE3M0MyNzYuMDY0IDY1LjI2OSAyNzcuOTE0IDY1LjExNiAyNzkuNTkgNjUuMjA2QzI4MS4yOTQgNjUuMjk4IDI4My4wMTQgNjUuNjAzIDI4NC43ODkgNjUuODc1QzI4NS4wOTYgNjUuOTIyIDI4NS4yOTUgNjYuNDQ1IDI4NS42MTggNjYuNTQyQzI4Ny44NDYgNjcuMjA1IDI5MC4yMzUgNjYuNjggMjkyLjM1NCA2Ny41MThDMjkzLjk0NSA2OC4xNDcgMjk1LjUxNSA2OC45NyAyOTYuNzU0IDcwLjI0NUMyOTcuMDA2IDcwLjUwNSAyOTYuNjgxIDcwLjgwNiAyOTYuNDAxIDcxQzI5Ni43ODkgNzAuODkxIDI5Ny4wNjIgNzEuMDk3IDI5Ny4xNzMgNzEuNDFDMjk3LjI1NyA3MS42NDkgMjk3LjI1NyA3MS45NTEgMjk3LjE3MyA3Mi4xOUMyOTcuMDYxIDcyLjUwMiAyOTYuNzgyIDcyLjYwMyAyOTYuNDA4IDcyLjY1NEMyOTUuMDAxIDcyLjg0NCAyOTYuNzczIDcxLjQ2NCAyOTYuMDczIDcxLjkxMkMyOTQuOCA3Mi43MjYgMjk1LjU0NiA3NC4xMzIgMjk0LjgwMSA3NS40QzI5NC41MjEgNzUuMjA2IDI5NC4yOTEgNzQuOTg4IDI5NC40MDEgNzQuNkMyOTQuNjM1IDc1LjEyMiAyOTQuMDMzIDc1LjQxMiAyOTMuODY1IDc1LjcyOEMyOTMuNDggNzYuNDUzIDI5Mi41ODEgNzcuODY4IDI5MS42OTYgNzcuMjYxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjYzcyMjYnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI1OS4xOTggODQuNjA5QzI1Ni4wNDQgODMuODE1IDI1Mi45OTQgODMuOTMgMjQ5Ljk3OCA4Mi42NTRDMjQ5LjkxMSA4Mi42MjYgMjQ5LjY4OCA4Mi45NzMgMjQ5LjYyNCA4Mi45NDZDMjQ4LjI1OCA4Mi4zNTIgMjQ3LjM0IDgxLjM4NiAyNDYuMjY0IDgwLjM0QzI0NS4zNTEgNzkuNDUyIDI0My42OTMgNzkuODM5IDI0Mi40MTkgNzkuMzUyQzI0Mi4wOTUgNzkuMjI4IDI0MS44OTIgNzguNzE2IDI0MS41OTEgNzguNjc3QzI0MC4zNzIgNzguNTIgMjM5LjQ0NSA3Ny41NzEgMjM4LjQgNzdDMjQwLjczNiA3Ni4yMDUgMjQzLjE0NyA3Ni4yMzYgMjQ1LjYwOSA3NS44NTJDMjQ1LjcyMiA3NS44MzQgMjQ1Ljg2NyA3Ni4xNTUgMjQ2IDc2LjE1NUMyNDYuMTM2IDc2LjE1NSAyNDYuMjY2IDc1LjkzNCAyNDYuNCA3NS44QzI0Ni41OTUgNzYuMDggMjQ2Ljg5NyA3Ni40MDYgMjQ3LjE1NCA3Ni4xNTJDMjQ3LjcwMiA3NS42MTIgMjQ4LjI1OCA3NS44MDIgMjQ4Ljc5OCA3NS44NDJDMjQ4Ljk0MiA3NS44NTIgMjQ5LjA2NyA3Ni4xNTUgMjQ5LjIgNzYuMTU1QzI0OS4zMzYgNzYuMTU1IDI0OS40NjcgNzUuODQ0IDI0OS42IDc1Ljg0NEMyNDkuNzM2IDc1Ljg0NSAyNDkuODY3IDc2LjE1NSAyNTAgNzYuMTU1QzI1MC4xMzYgNzYuMTU1IDI1MC4yNjYgNzUuOTM0IDI1MC40IDc1LjhDMjUxLjA5MiA3Ni41ODIgMjUxLjk3NyA3Ni4wMjggMjUyLjc5OSA3Ni4yMDdDMjUzLjgzNyA3Ni40MzQgMjU0LjEwNCA3Ny41ODIgMjU1LjE3OCA3Ny44OEMyNTkuODkzIDc5LjE4NCAyNjQuMDMgODEuMzI5IDI2OC4zOTMgODMuNDE2QzI2OC43IDgzLjU2MyAyNjguOTEgODMuODExIDI2OC44IDg0LjJDMjY5LjA2NyA4NC4yIDI2OS4zOCA4NC4xMTIgMjY5LjU3IDg0LjI0NEMyNzAuNjI4IDg0Ljk3NiAyNzEuNjY5IDg1LjUyNCAyNzIuMzY2IDg2LjYyMkMyNzIuNTgyIDg2Ljk2MSAyNzIuMjUzIDg3LjM2OCAyNzIuMDIgODcuMzE2QzI2Ny41OTEgODYuMzIxIDI2My41ODUgODUuNzEzIDI1OS4xOTggODQuNjA5eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjYzcyMjYnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI0NS4zMzggMTI4LjgyMUMyNDMuNzQ2IDEyNy42MDIgMjQzLjE2MiAxMjUuNTcxIDI0Mi4wMzQgMTIzLjc3OUMyNDEuODIgMTIzLjQzOSAyNDIuMDk0IDEyMy4xMjUgMjQyLjQxMSAxMjMuMDM2QzI0Mi45NzEgMTIyLjg3NyAyNDMuNTE0IDEyMy4zNTUgMjQzLjkyMyAxMjMuNTU3QzI0NS42NjggMTI0LjQxOSAyNDcuMjAzIDEyNS42NjEgMjQ5LjIgMTI1LjhDMjUxLjE5IDEyOC4wMzQgMjU1LjQ1IDEyOC40MTkgMjU1LjQ1NyAxMzEuOEMyNTUuNDU4IDEzMi42NTkgMjU0LjAzIDEzMS43NDEgMjUzLjYgMTMyLjZDMjUxLjE0OSAxMzEuNTk3IDI0OC43NiAxMzEuNyAyNDYuMzggMTMwLjIzM0MyNDUuNzYzIDEyOS44NTIgMjQ2LjA5MyAxMjkuMzk5IDI0NS4zMzggMTI4LjgyMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2M3MjI2JykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMTcuOCA3Ni4yNDRDMjE3LjkzNSA3Ni4yNDUgMjI0Ljk2NiA3Ni40NzggMjI0Ljk0OSA3Ni41OTJDMjI0LjkwNCA3Ni45MDEgMjE3LjE3NCA3Ny45NSAyMTYuODEgNzcuNzhDMjE2LjY0NiA3Ny43MDQgMjA5LjEzNCA4MC4xMzQgMjA5IDgwQzIwOS4yNjggNzkuODY1IDIxNy41MzQgNzYuMjQ0IDIxNy44IDc2LjI0NHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMzMuMiA4NkMyMzMuMiA4NiAyMTguNCA4Ny44IDIxNCA4OUMyMDkuNiA5MC4yIDE5MSA5Ny44IDE4OCA5OS44QzE4OCA5OS44IDE3NC42IDEwNS4yIDE1Ny42IDEyNS4yQzE1Ny42IDEyNS4yIDE2NS4yIDEyMS44IDE2Ny40IDExOUMxNjcuNCAxMTkgMTgxIDEwNi40IDE4MC44IDEwOUMxODAuOCAxMDkgMTkzIDEwMC40IDE5Mi40IDEwMi42QzE5Mi40IDEwMi42IDIxNi44IDkxLjQgMjE0LjggOTQuNkMyMTQuOCA5NC42IDIzNi40IDkwIDIzNS40IDkyQzIzNS40IDkyIDI1NC4yIDk2LjQgMjUxLjQgOTYuNkMyNTEuNCA5Ni42IDI0NS42IDk3LjggMjUyIDEwMS40QzI1MiAxMDEuNCAyNDguNiAxMDUuOCAyNDMuMiAxMDEuOEMyMzcuOCA5Ny44IDI0MC44IDEwMCAyMzUuOCAxMDFDMjM1LjggMTAxIDIzMy4yIDEwMS44IDIyOC42IDk3LjhDMjI4LjYgOTcuOCAyMjMgOTMuMiAyMTQuMiA5Ni44QzIxNC4yIDk2LjggMTgzLjYgMTA5LjQgMTgxLjYgMTEwQzE4MS42IDExMCAxNzggMTEyLjggMTc1LjYgMTE2LjRDMTc1LjYgMTE2LjQgMTY5LjggMTIwLjggMTY2LjggMTIyLjJDMTY2LjggMTIyLjIgMTU0IDEzMy44IDE1Mi44IDEzNS4yQzE1Mi44IDEzNS4yIDE0OS40IDE0MC40IDE0OC42IDE0MC44QzE0OC42IDE0MC44IDE1NSAxMzcgMTU3IDEzNUMxNTcgMTM1IDE3MSAxMjUgMTc2LjQgMTI0LjJDMTc2LjQgMTI0LjIgMTgwLjggMTIxLjIgMTgxLjYgMTE5LjhDMTgxLjYgMTE5LjggMTk2IDExMC42IDIwMC4yIDExMC42QzIwMC4yIDExMC42IDIwOS40IDExNS44IDIxMS44IDEwOC44QzIxMS44IDEwOC44IDIxNy42IDEwNyAyMjMuMiAxMDguMkMyMjMuMiAxMDguMiAyMjYuNCAxMDUuNiAyMjUuNiAxMDMuNEMyMjUuNiAxMDMuNCAyMjcuMiAxMDEuNiAyMjguMiAxMDUuNEMyMjguMiAxMDUuNCAyMzEuNiAxMDkgMjM2LjQgMTA3QzIzNi40IDEwNyAyNDAuNCAxMDYuOCAyMzguNCAxMDkuMkMyMzguNCAxMDkuMiAyMzQgMTEzIDIyMi4yIDExMy4yQzIyMi4yIDExMy4yIDIwOS44IDExMy44IDE5My40IDEyMS40QzE5My40IDEyMS40IDE2My42IDEzMS44IDE1NC40IDE0Mi4yQzE1NC40IDE0Mi4yIDE0OCAxNTEgMTQyLjYgMTUyLjJDMTQyLjYgMTUyLjIgMTM2LjggMTUzIDEzMC44IDE2MC40QzEzMC44IDE2MC40IDE0MC42IDE1NC42IDE0OS42IDE1NC42QzE0OS42IDE1NC42IDE1My42IDE1Mi4yIDE0OS44IDE1NS44QzE0OS44IDE1NS44IDE0Ni4yIDE2My40IDE0Ny44IDE2OC44QzE0Ny44IDE2OC44IDE0Ny4yIDE3NCAxNDYuNCAxNzUuNkMxNDYuNCAxNzUuNiAxMzguNiAxODguNCAxMzguNiAxOTAuOEMxMzguNiAxOTMuMiAxMzkuOCAyMDMgMTQwLjIgMjAzLjZDMTQwLjYgMjA0LjIgMTM5LjIgMjAyIDE0MyAyMDQuNEMxNDYuOCAyMDYuOCAxNDkuNiAyMDguNCAxNTAuNCAyMTEuMkMxNTEuMiAyMTQgMTQ4LjQgMjA1LjggMTQ4LjIgMjA0QzE0OCAyMDIuMiAxNDMuOCAxOTUgMTQ0LjYgMTkyLjZDMTQ0LjYgMTkyLjYgMTQ1LjYgMTkzLjYgMTQ2LjQgMTk1QzE0Ni40IDE5NSAxNDUuOCAxOTQuNCAxNDYuNCAxOTAuOEMxNDYuNCAxOTAuOCAxNDcuMiAxODUuNiAxNDguNiAxODIuNEMxNTAgMTc5LjIgMTUyIDE3NS40IDE1Mi40IDE3NC42QzE1Mi44IDE3My44IDE1Mi44IDE2OCAxNTQuMiAxNzAuNkwxNTcuNiAxNzMuMkMxNTcuNiAxNzMuMiAxNTQuOCAxNzAuNiAxNTcgMTY4LjRDMTU3IDE2OC40IDE1NiAxNjIuOCAxNTcuOCAxNjAuMkMxNTcuOCAxNjAuMiAxNjQuOCAxNTEuOCAxNjYuNCAxNTAuOEMxNjggMTQ5LjggMTY2LjYgMTUwLjIgMTY2LjYgMTUwLjJDMTY2LjYgMTUwLjIgMTcyLjYgMTQ2IDE2Ni44IDE0Ny42QzE2Ni44IDE0Ny42IDE2Mi44IDE0OS4yIDE1OS44IDE0OS4yQzE1OS44IDE0OS4yIDE1Mi4yIDE1MS4yIDE1Ni4yIDE0N0MxNjAuMiAxNDIuOCAxNzAuMiAxMzcuNCAxNzQgMTM3LjZMMTc0LjggMTM5LjJMMTg2IDEzNi44TDE4NC44IDEzNy42QzE4NC44IDEzNy42IDE4NC42IDEzNy40IDE4OC44IDEzN0MxOTMgMTM2LjYgMTk4LjggMTM4IDIwMC4yIDEzNi4yQzIwMS42IDEzNC40IDIwNSAxMzMuNCAyMDQuNiAxMzQuOEMyMDQuMiAxMzYuMiAyMDQgMTM4LjIgMjA0IDEzOC4yQzIwNCAxMzguMiAyMDkgMTMyLjQgMjA4LjQgMTM0LjZDMjA3LjggMTM2LjggMTk5LjYgMTQyIDE5OC4yIDE0OC4yTDIwOC42IDE0MEwyMTIuMiAxMzdDMjEyLjIgMTM3IDIxNS44IDEzOS4yIDIxNiAxMzcuNkMyMTYuMiAxMzYgMjIwLjggMTMwLjIgMjIyIDEzMC40QzIyMy4yIDEzMC42IDIyNS4yIDEyNy44IDIyNSAxMzAuNEMyMjQuOCAxMzMgMjMyLjQgMTM4LjQgMjMyLjQgMTM4LjRDMjMyLjQgMTM4LjQgMjM1LjYgMTM2LjYgMjM3IDEzOEMyMzguNCAxMzkuNCAyNDIuNiAxMTguMiAyNDIuNiAxMTguMkwyNjcuNiAxMDcuNkwzMTEuMjAxIDEwNC4yTDI5NC4yMDEgOTcuNEwyMzMuMiA4NnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI1MS40IDI4NUMyNTEuNCAyODUgMjM2LjQgMjY4LjIgMjI4IDI2NS42QzIyOCAyNjUuNiAyMTQuNiAyNTguOCAxOTAgMjY2LjYnKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIyNC44IDI2NC4yQzIyNC44IDI2NC4yIDE5OS42IDI1Ni4yIDE4NC4yIDI2MC40QzE4NC4yIDI2MC40IDE2NS44IDI2Mi40IDE1Ny40IDI3Ni4yJykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nc3Ryb2tlOiM0YzAwMDA7IHN0cm9rZS13aWR0aDoyJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMjEuMiAyNjNDMjIxLjIgMjYzIDIwNC4yIDI1NS44IDE4OS40IDI1My42QzE4OS40IDI1My42IDE3Mi44IDI1MSAxNTYuMiAyNTguMkMxNTYuMiAyNTguMiAxNDQgMjY0LjIgMTM4LjYgMjc0LjQnKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjInKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIyMi4yIDI2My40QzIyMi4yIDI2My40IDIwNi44IDI1Mi40IDIwNS44IDI1MUMyMDUuOCAyNTEgMTk4LjggMjQwIDE4NS44IDIzOS42QzE4NS44IDIzOS42IDE2NC40IDI0MC40IDE0Ny4yIDI0OC40JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjIwLjg5NSAyNTQuNDA3QzIyMi40MzcgMjU1Ljg3IDI0OS40IDI4NC44IDI0OS40IDI4NC44QzI4NC42IDMyMS40MDEgMjU2LjYgMjg3LjIgMjU2LjYgMjg3LjJDMjQ5IDI4Mi40IDIzOS44IDI2My42IDIzOS44IDI2My42QzIzOC42IDI2MC44IDI1My44IDI3MC44IDI1My44IDI3MC44QzI1Ny44IDI3MS42IDI3MS40IDI5MC44IDI3MS40IDI5MC44QzI2NC42IDI4OC40IDI2OS40IDI5NS42IDI2OS40IDI5NS42QzI3Mi4yIDI5Ny42IDI5Mi42MDEgMzEzLjIwMSAyOTIuNjAxIDMxMy4yMDFDMjk2LjIwMSAzMTcuMjAxIDMwMC4yMDEgMzE4LjgwMSAzMDAuMjAxIDMxOC44MDFDMzE0LjIwMSAzMTMuNjAxIDMwNy44MDEgMzI2LjgwMSAzMDcuODAxIDMyNi44MDFDMzEwLjIwMSAzMzMuNjAxIDMxNS44MDEgMzIyLjAwMSAzMTUuODAxIDMyMi4wMDFDMzI3LjAwMSAzMDUuMiAzMTAuNjAxIDMwNy42MDEgMzEwLjYwMSAzMDcuNjAxQzI4MC42IDMxMC40MDEgMjczLjggMjk0LjQgMjczLjggMjk0LjRDMjcxLjQgMjkyIDI4MC4yIDI5NC40IDI4MC4yIDI5NC40QzI4OC42MDEgMjk2LjQgMjczIDI4MiAyNzMgMjgyQzI3NS40IDI4MiAyODQuNiAyODguOCAyODQuNiAyODguOEMyOTUuMDAxIDI5OCAyOTcuMDAxIDI5NiAyOTcuMDAxIDI5NkMzMTUuMDAxIDI4Ny4yIDMyNS40MDEgMjk0LjggMzI1LjQwMSAyOTQuOEMzMjcuNDAxIDI5Ni40IDMyMS44MDEgMzAzLjIgMzIzLjQwMSAzMDguNDAxQzMyNS4wMDEgMzEzLjYwMSAzMjkuODAxIDMyNi4wMDEgMzI5LjgwMSAzMjYuMDAxQzMyNy40MDEgMzI3LjYwMSAzMjcuODAxIDMzOC40MDEgMzI3LjgwMSAzMzguNDAxQzM0NC42MDEgMzYxLjYwMSAzMzUuMDAxIDM1OS42MDEgMzM1LjAwMSAzNTkuNjAxQzMxOS40MDEgMzU5LjIwMSAzMzQuMjAxIDM2Ni44MDEgMzM0LjIwMSAzNjYuODAxQzMzNy40MDEgMzY4LjgwMSAzNDYuMjAxIDM3Ni4wMDEgMzQ2LjIwMSAzNzYuMDAxQzM0My40MDEgMzc0LjgwMSAzNDEuODAxIDM4MC4wMDEgMzQxLjgwMSAzODAuMDAxQzM0Ni42MDEgMzg0LjAwMSAzNDMuODAxIDM4OC44MDEgMzQzLjgwMSAzODguODAxQzMzNy44MDEgMzkwLjAwMSAzMzYuNjAxIDM5NC4wMDEgMzM2LjYwMSAzOTQuMDAxQzM0My40MDEgNDAyLjAwMSAzMzMuNDAxIDQwMi40MDEgMzMzLjQwMSA0MDIuNDAxQzMzNy4wMDEgNDA2LjgwMSAzMzIuMjAxIDQxOC44MDEgMzMyLjIwMSA0MTguODAxQzMyNy40MDEgNDE4LjgwMSAzMjEuMDAxIDQyNC40MDEgMzIxLjAwMSA0MjQuNDAxQzMyMy40MDEgNDI5LjIwMSAzMTMuMDAxIDQzNC44MDEgMzEzLjAwMSA0MzQuODAxQzMwNC42MDEgNDM2LjQwMSAzMDcuNDAxIDQ0My4yMDEgMzA3LjQwMSA0NDMuMjAxQzI5OS40MDEgNDQ5LjIwMSAyOTcuMDAxIDQ2NS4yMDEgMjk3LjAwMSA0NjUuMjAxQzI5Ni4yMDEgNDc1LjYwMSAyOTMuODAxIDQ3OC44MDEgMjk5LjAwMSA0NzYuODAxQzMwNC4yMDEgNDc0LjgwMSAzMDMuNDAxIDQ2Mi40MDEgMzAzLjQwMSA0NjIuNDAxQzI5OC42MDEgNDQ2LjgwMSAzNDEuNDAxIDQzMC44MDEgMzQxLjQwMSA0MzAuODAxQzM0NS40MDEgNDI5LjIwMSAzNDYuMjAxIDQyNC4wMDEgMzQ2LjIwMSA0MjQuMDAxQzM0OC4yMDEgNDI0LjQwMSAzNTcuMDAxIDQzMi4wMDEgMzU3LjAwMSA0MzIuMDAxQzM2NC42MDEgNDQzLjIwMSAzNjUuMDAxIDQzNC4wMDEgMzY1LjAwMSA0MzQuMDAxQzM2Ni4yMDEgNDMwLjQwMSAzNjQuNjAxIDQyNC40MDEgMzY0LjYwMSA0MjQuNDAxQzM3MC42MDEgNDAyLjgwMSAzNTYuNjAxIDM5Ni40MDEgMzU2LjYwMSAzOTYuNDAxQzM0Ni42MDEgMzYyLjgwMSAzNjAuNjAxIDM3MS4yMDEgMzYwLjYwMSAzNzEuMjAxQzM2My40MDEgMzc2LjgwMSAzNzQuMjAxIDM4Mi4wMDEgMzc0LjIwMSAzODIuMDAxTDM3Ny44MDEgMzc5LjYwMUMzNzYuMjAxIDM3NC44MDEgMzg0LjYwMSAzNjguODAxIDM4NC42MDEgMzY4LjgwMUMzODcuNDAxIDM3NS4yMDEgMzkzLjQwMSAzNjcuMjAxIDM5My40MDEgMzY3LjIwMUMzOTcuMDAxIDM0Mi44MDEgNDA5LjQwMSAzNTcuMjAxIDQwOS40MDEgMzU3LjIwMUM0MTMuNDAxIDM1OC40MDEgNDE0LjYwMSAzNTEuNjAxIDQxNC42MDEgMzUxLjYwMUM0MTguMjAxIDM0MS4yMDEgNDE0LjYwMSAzMjcuNjAxIDQxNC42MDEgMzI3LjYwMUM0MTguMjAxIDMyNy4yMDEgNDI3LjgwMSAzMzMuMjAxIDQyNy44MDEgMzMzLjIwMUM0MzAuNjAxIDMyOS42MDEgNDIxLjQwMSAzMTIuODAxIDQyNS40MDEgMzE1LjIwMUM0MjkuNDAxIDMxNy42MDEgNDMzLjgwMSAzMTkuMjAxIDQzMy44MDEgMzE5LjIwMUM0MzQuNjAxIDMxNy4yMDEgNDI0LjYwMSAzMDQuODAxIDQyNC42MDEgMzA0LjgwMUM0MjAuMjAxIDMwMiA0MTUuMDAxIDI4MS42IDQxNS4wMDEgMjgxLjZDNDIyLjIwMSAyODUuMiA0MTIuMjAxIDI3MCA0MTIuMjAxIDI3MEM0MTIuMjAxIDI2Ni44IDQxOC4yMDEgMjU1LjYgNDE4LjIwMSAyNTUuNkM0MTcuNDAxIDI0OC44IDQxOC4yMDEgMjQ5LjIgNDE4LjIwMSAyNDkuMkM0MjEuMDAxIDI1MC40IDQyOS4wMDEgMjUyIDQyMi4yMDEgMjQ1LjZDNDE1LjQwMSAyMzkuMiA0MjMuMDAxIDIzNC40IDQyMy4wMDEgMjM0LjRDNDI3LjQwMSAyMzEuNiA0MTMuODAxIDIzMiA0MTMuODAxIDIzMkM0MDguNjAxIDIyNy42IDQwOS4wMDEgMjIzLjYgNDA5LjAwMSAyMjMuNkM0MTcuMDAxIDIyNS42IDQwMi42MDEgMjExLjIgNDAwLjIwMSAyMDcuNkMzOTcuODAxIDIwNCA0MDcuNDAxIDE5OC44IDQwNy40MDEgMTk4LjhDNDIwLjYwMSAxOTUuMiA0MDkuMDAxIDE5MiA0MDkuMDAxIDE5MkMzODkuNDAxIDE5Mi40IDQwMC4yMDEgMTgxLjYgNDAwLjIwMSAxODEuNkM0MDYuMjAxIDE4MiA0MDQuNjAxIDE3OS42IDQwNC42MDEgMTc5LjZDMzk5LjQwMSAxNzguNCAzODkuODAxIDE3MiAzODkuODAxIDE3MkMzODUuODAxIDE2OC40IDM4OS40MDEgMTY5LjIgMzg5LjQwMSAxNjkuMkM0MDYuMjAxIDE3MC40IDM3Ny40MDEgMTU5LjIgMzc3LjQwMSAxNTkuMkMzODUuNDAxIDE1OS4yIDM2Ny40MDEgMTQ4LjggMzY3LjQwMSAxNDguOEMzNjUuNDAxIDE0Ny4yIDM2Mi4yMDEgMTM5LjYgMzYyLjIwMSAxMzkuNkMzNTYuMjAxIDEzNC40IDM1MS40MDEgMTI3LjYgMzUxLjQwMSAxMjcuNkMzNTEuMDAxIDEyMy4yIDM0Ni4yMDEgMTE4LjQgMzQ2LjIwMSAxMTguNEMzMzQuNjAxIDEwNC44IDMyOS4wMDEgMTA1LjIgMzI5LjAwMSAxMDUuMkMzMTQuMjAxIDEwMS42IDMwOS4wMDEgMTAyLjQgMzA5LjAwMSAxMDIuNEwyNTYuMiAxMDYuOEMyMjkuOCAxMTkuNiAyMzcuNiAxNDAuNiAyMzcuNiAxNDAuNkMyNDQgMTQ5IDI1My4yIDE0NS4yIDI1My4yIDE0NS4yQzI1Ny44IDEzOSAyNjkuNCAxNDEuMiAyNjkuNCAxNDEuMkMyODkuODAxIDE0NC40IDI4Ny4yMDEgMTQwLjggMjg3LjIwMSAxNDAuOEMyODQuODAxIDEzNi4yIDI2OC42IDEzMCAyNjguNCAxMjkuNEMyNjguMiAxMjguOCAyNTkuNCAxMjUuNCAyNTkuNCAxMjUuNEMyNTYuNCAxMjQuMiAyNTIgMTE1IDI1MiAxMTVDMjQ4LjggMTExLjYgMjY0LjYgMTE3LjQgMjY0LjYgMTE3LjRDMjYzLjQgMTE4LjQgMjcwLjggMTIyLjQgMjcwLjggMTIyLjRDMjg4LjIwMSAxMjEuNCAyOTguODAxIDEzMi4yIDI5OC44MDEgMTMyLjJDMzA5LjYwMSAxNDguOCAzMDkuODAxIDE0MC42IDMwOS44MDEgMTQwLjZDMzEyLjYwMSAxMzEuMiAzMDAuODAxIDExMCAzMDAuODAxIDExMEMzMDEuMjAxIDEwOCAzMDkuNDAxIDExNC42IDMwOS40MDEgMTE0LjZDMzEwLjgwMSAxMTIuNiAzMTEuNjAxIDExOC40IDMxMS42MDEgMTE4LjRDMzExLjgwMSAxMjAuOCAzMTUuNjAxIDEyOC44IDMxNS42MDEgMTI4LjhDMzE4LjQwMSAxNDEuOCAzMjIuMDAxIDEzNC40IDMyMi4wMDEgMTM0LjRMMzI2LjYwMSAxNDMuOEMzMjguMDAxIDE0Ni40IDMyMi4wMDEgMTU0IDMyMi4wMDEgMTU0QzMyMS44MDEgMTU2LjggMzIyLjYwMSAxNTYuNiAzMTcuMDAxIDE2NC4yQzMxMS40MDEgMTcxLjggMzE0LjgwMSAxNzYuMiAzMTQuODAxIDE3Ni4yQzMxMy40MDEgMTgyLjggMzIyLjIwMSAxODIuNCAzMjIuMjAxIDE4Mi40QzMyNC44MDEgMTg0LjYgMzI4LjIwMSAxODQuNiAzMjguMjAxIDE4NC42QzMzMC4wMDEgMTg2LjYgMzMyLjQwMSAxODYgMzMyLjQwMSAxODZDMzM0LjAwMSAxODIuMiAzNDAuMjAxIDE4NC4yIDM0MC4yMDEgMTg0LjJDMzQxLjYwMSAxODEuOCAzNDkuODAxIDE4MS40IDM0OS44MDEgMTgxLjRDMzUwLjgwMSAxNzguOCAzNTEuMjAxIDE3Ny4yIDM1NC42MDEgMTc2LjZDMzU4LjAwMSAxNzYgMzMzLjQwMSAxMzMgMzMzLjQwMSAxMzNDMzM5LjgwMSAxMzIuMiAzMzEuNjAxIDExOS44IDMzMS42MDEgMTE5LjhDMzI5LjQwMSAxMTMuMiAzNDAuODAxIDEyNy44IDM0My4wMDEgMTI5LjJDMzQ1LjIwMSAxMzAuNiAzNDYuMjAxIDEzMi44IDM0NC42MDEgMTMyLjZDMzQzLjAwMSAxMzIuNCAzNDEuMjAxIDEzNC42IDM0Mi42MDEgMTM0LjhDMzQ0LjAwMSAxMzUgMzU3LjAwMSAxNTAgMzYwLjQwMSAxNjAuMkMzNjMuODAxIDE3MC40IDM2OS44MDEgMTc0LjQgMzc2LjAwMSAxODAuNEMzODIuMjAxIDE4Ni40IDM4MS40MDEgMjEwLjYgMzgxLjQwMSAyMTAuNkMzODEuMDAxIDIxOS40IDM4Ny4wMDEgMjMwIDM4Ny4wMDEgMjMwQzM4OS4wMDEgMjMzLjggMzg0LjgwMSAyNTIgMzg0LjgwMSAyNTJDMzgyLjgwMSAyNTQuMiAzODQuMjAxIDI1NSAzODQuMjAxIDI1NUMzODUuMjAxIDI1Ni4yIDM5Mi4wMDEgMjY5LjQgMzkyLjAwMSAyNjkuNEMzOTAuMjAxIDI2OS4yIDM5My44MDEgMjcyLjggMzkzLjgwMSAyNzIuOEMzOTkuMDAxIDI3OC44IDM5Mi42MDEgMjc1LjggMzkyLjYwMSAyNzUuOEMzODYuNjAxIDI3NC4yIDM5My42MDEgMjg0IDM5My42MDEgMjg0QzM5NC44MDEgMjg1LjggMzg1LjgwMSAyODEuMiAzODUuODAxIDI4MS4yQzM3Ni42MDEgMjgwLjYgMzg4LjIwMSAyODcuOCAzODguMjAxIDI4Ny44QzM5Ni44MDEgMjk1IDM4NS40MDEgMjkwLjYgMzg1LjQwMSAyOTAuNkMzODAuODAxIDI4OC44IDM4NC4wMDEgMjk1LjYgMzg0LjAwMSAyOTUuNkMzODcuMjAxIDI5Ny4yIDQwNC40MDEgMzA0LjIgNDA0LjQwMSAzMDQuMkM0MDQuODAxIDMwOC4wMDEgNDAxLjgwMSAzMTMuMDAxIDQwMS44MDEgMzEzLjAwMUM0MDIuMjAxIDMxNy4wMDEgNDAwLjAwMSAzMjAuNDAxIDQwMC4wMDEgMzIwLjQwMUMzOTguODAxIDMyOC42MDEgMzk4LjIwMSAzMjkuNDAxIDM5OC4yMDEgMzI5LjQwMUMzOTQuMDAxIDMyOS42MDEgMzg2LjYwMSAzNDMuNDAxIDM4Ni42MDEgMzQzLjQwMUMzODQuODAxIDM0Ni4wMDEgMzc0LjYwMSAzNTguMDAxIDM3NC42MDEgMzU4LjAwMUMzNzIuNjAxIDM2NS4wMDEgMzU0LjYwMSAzNTcuODAxIDM1NC42MDEgMzU3LjgwMUMzNDguMDAxIDM2MS4yMDEgMzUwLjAwMSAzNTcuODAxIDM1MC4wMDEgMzU3LjgwMUMzNDkuNjAxIDM1NS42MDEgMzU0LjQwMSAzNDkuNjAxIDM1NC40MDEgMzQ5LjYwMUMzNjEuNDAxIDM0Ny4wMDEgMzU4LjgwMSAzMzYuMjAxIDM1OC44MDEgMzM2LjIwMUMzNjIuODAxIDMzNC44MDEgMzUxLjYwMSAzMzIuMDAxIDM1MS44MDEgMzMwLjgwMUMzNTIuMDAxIDMyOS42MDEgMzU3LjgwMSAzMjguMjAxIDM1Ny44MDEgMzI4LjIwMUMzNjUuODAxIDMyNi4yMDEgMzYxLjQwMSAzMjMuODAxIDM2MS40MDEgMzIzLjgwMUMzNjAuODAxIDMxOS44MDEgMzYzLjgwMSAzMTQuMjAxIDM2My44MDEgMzE0LjIwMUMzNzUuNDAxIDMxMy40MDEgMzYzLjgwMSAyOTcuMiAzNjMuODAxIDI5Ny4yQzM1My4wMDEgMjg5LjYgMzUyLjAwMSAyODMuOCAzNTIuMDAxIDI4My44QzM2NC42MDEgMjc1LjYgMzU2LjQwMSAyNjMuMiAzNTYuNjAxIDI1OS42QzM1Ni44MDEgMjU2IDM1OC4wMDEgMjM0LjQgMzU4LjAwMSAyMzQuNEMzNTYuMDAxIDIyOC4yIDM1My4wMDEgMjE0LjYgMzUzLjAwMSAyMTQuNkMzNTUuMjAxIDIwOS40IDM2Mi42MDEgMTk2LjggMzYyLjYwMSAxOTYuOEMzNjUuNDAxIDE5Mi42IDM3NC4yMDEgMTg3LjggMzcyLjAwMSAxODQuOEMzNjkuODAxIDE4MS44IDM2Mi4wMDEgMTgzLjYgMzYyLjAwMSAxODMuNkMzNTQuMjAxIDE4Mi4yIDM1NC44MDEgMTg3LjQgMzU0LjgwMSAxODcuNEMzNTMuMjAxIDE4OC40IDM1Mi40MDEgMTkzLjQgMzUyLjQwMSAxOTMuNEMzNTEuNjggMjAxLjMzMyAzNDIuODAxIDIwNy42IDM0Mi44MDEgMjA3LjZDMzMxLjYwMSAyMTMuOCAzNDAuODAxIDIxNy44IDM0MC44MDEgMjE3LjhDMzQ2LjgwMSAyMjQuNCAzMzcuMDAxIDIyNC42IDMzNy4wMDEgMjI0LjZDMzI2LjAwMSAyMjIuOCAzMzQuMjAxIDIzMyAzMzQuMjAxIDIzM0MzNDUuMDAxIDI0NS44IDM0Mi4wMDEgMjQ4LjYgMzQyLjAwMSAyNDguNkMzMzEuODAxIDI0OS42IDM0NC40MDEgMjU4LjggMzQ0LjQwMSAyNTguOEMzNDQuNDAxIDI1OC44IDM0My42MDEgMjU2LjggMzQzLjgwMSAyNTguNkMzNDQuMDAxIDI2MC40IDM0Ny4wMDEgMjY0LjYgMzQ3LjgwMSAyNjYuNkMzNDguNjAxIDI2OC42IDM0NC42MDEgMjY4LjggMzQ0LjYwMSAyNjguOEMzNDUuMjAxIDI3OC40IDMyOS44MDEgMjc0LjIgMzI5LjgwMSAyNzQuMkMzMjkuODAxIDI3NC4yIDMyOS44MDEgMjc0LjIgMzI4LjIwMSAyNzQuNEMzMjYuNjAxIDI3NC42IDMxNS40MDEgMjczLjggMzA5LjYwMSAyNzEuNkMzMDMuODAxIDI2OS40IDI5Ny4wMDEgMjY5LjQgMjk3LjAwMSAyNjkuNEMyOTcuMDAxIDI2OS40IDI5My4wMDEgMjcxLjIgMjg1LjQgMjcxQzI3Ny44IDI3MC44IDI2OS44IDI3My42IDI2OS44IDI3My42QzI2NS40IDI3My4yIDI3NCAyNjguOCAyNzQuMiAyNjlDMjc0LjQgMjY5LjIgMjgwIDI2My42IDI3MiAyNjQuMkMyNTAuMjAzIDI2NS44MzUgMjM5LjQgMjU1LjYgMjM5LjQgMjU1LjZDMjM3LjQgMjU0LjIgMjM0LjggMjUxLjQgMjM0LjggMjUxLjRDMjI0LjggMjQ5LjQgMjM2LjIgMjYzLjggMjM2LjIgMjYzLjhDMjM3LjQgMjY1LjIgMjM2IDI2Ni4yIDIzNiAyNjYuMkMyMzUuMiAyNjQuNiAyMjcuNCAyNTkuMiAyMjcuNCAyNTkuMkMyMjQuNTg5IDI1OC4yMjcgMjIzLjIyNiAyNTYuODkzIDIyMC44OTUgMjU0LjQwN3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjNGMwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xOTcgMjQyLjhDMTk3IDI0Mi44IDIwOC42IDI0OC40IDIxMS4yIDI1MS4yQzIxMy44IDI1NCAyMjcuOCAyNjUuNCAyMjcuOCAyNjUuNEMyMjcuOCAyNjUuNCAyMjIuNCAyNjMuNCAyMTkuOCAyNjEuNkMyMTcuMiAyNTkuOCAyMDYuNCAyNTEuNiAyMDYuNCAyNTEuNkMyMDYuNCAyNTEuNiAyMDIuNiAyNDUuNiAxOTcgMjQyLjh6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzk5Y2MzMicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTM4Ljk5MSAyMTEuNjAzQzEzOS4zMjggMjExLjQ1NSAxMzguODA0IDIwOC43NDMgMTM4LjYgMjA4LjJDMTM3LjU3OCAyMDUuNDc0IDEyOC42IDIwNCAxMjguNiAyMDRDMTI4LjM3MyAyMDUuMzY1IDEyOC4zMTggMjA2Ljk2MSAxMjguNDI0IDIwOC41OTlDMTI4LjQyNCAyMDguNTk5IDEzMy4yOTIgMjE0LjExOCAxMzguOTkxIDIxMS42MDN6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzY1OTkwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTM4Ljk5MSAyMTEuNDAzQzEzOC41NDIgMjExLjU2MSAxMzguOTc2IDIwOC42NjkgMTM4LjggMjA4LjJDMTM3Ljc3OCAyMDUuNDc0IDEyOC42IDIwMy45IDEyOC42IDIwMy45QzEyOC4zNzMgMjA1LjI2NSAxMjguMzE4IDIwNi44NjEgMTI4LjQyNCAyMDguNDk5QzEyOC40MjQgMjA4LjQ5OSAxMzIuNjkyIDIxMy42MTggMTM4Ljk5MSAyMTEuNDAzeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEzNC42IDIxMS41NDZDMTMzLjk3NSAyMTEuNTQ2IDEzMy40NjkgMjEwLjQwNiAxMzMuNDY5IDIwOUMxMzMuNDY5IDIwNy41OTUgMTMzLjk3NSAyMDYuNDU1IDEzNC42IDIwNi40NTVDMTM1LjIyNSAyMDYuNDU1IDEzNS43MzIgMjA3LjU5NSAxMzUuNzMyIDIwOUMxMzUuNzMyIDIxMC40MDYgMTM1LjIyNSAyMTEuNTQ2IDEzNC42IDIxMS41NDZ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTM0LjYgMjA5eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTg5IDMwOS42MDFDODkgMzA5LjYwMSA4My40IDMxOS42MDEgMTA4LjIgMzEzLjYwMUMxMDguMiAzMTMuNjAxIDEyMi4yIDMxMi40MDEgMTI0LjYgMzEwLjAwMUMxMjUuOCAzMTAuODAxIDEzNC4xNjYgMzEzLjczNCAxMzcgMzE0LjQwMUMxNDMuOCAzMTYuMDAxIDE1Mi4yIDMwNiAxNTIuMiAzMDZDMTUyLjIgMzA2IDE1Ni44IDI5NS41IDE1OS42IDI5NS41QzE2Mi40IDI5NS41IDE1OS4yIDI5Ny4xIDE1OS4yIDI5Ny4xQzE1OS4yIDI5Ny4xIDE1Mi42IDMwNy4yMDEgMTUzIDMwOC44MDFDMTUzIDMwOC44MDEgMTQ3LjggMzI4LjgwMSAxMzEuOCAzMjkuNjAxQzEzMS44IDMyOS42MDEgMTE1LjY1IDMzMC41NTEgMTE3IDMzNi40MDFDMTE3IDMzNi40MDEgMTI1LjggMzM0LjAwMSAxMjguMiAzMzYuNDAxQzEyOC4yIDMzNi40MDEgMTM5IDMzNi4wMDEgMTMxIDM0Mi40MDFMMTI0LjIgMzU0LjAwMUMxMjQuMiAzNTQuMDAxIDEyNC4zNCAzNTcuOTE5IDExNC4yIDM1NC40MDFDMTA0LjQgMzUxLjAwMSA5NC4xIDMzOC4xMDEgOTQuMSAzMzguMTAxQzk0LjEgMzM4LjEwMSA3OC4xNSAzMjMuNTUxIDg5IDMwOS42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2U1OTk5OScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNODcuOCAzMTMuNjAxQzg3LjggMzEzLjYwMSA4NS44IDMyMy4yMDEgMTIyLjYgMzEyLjgwMUMxMjIuNiAzMTIuODAxIDEyNyAzMTIuODAxIDEyOS40IDMxMy42MDFDMTMxLjggMzE0LjQwMSAxNDMuOCAzMTcuMjAxIDE0NS44IDMxNi4wMDFDMTQ1LjggMzE2LjAwMSAxMzguNiAzMjkuNjAxIDEyNyAzMjguMDAxQzEyNyAzMjguMDAxIDExMy44IDMyOS42MDEgMTE0LjIgMzM0LjQwMUMxMTQuMiAzMzQuNDAxIDExOC4yIDM0MS42MDEgMTIzIDM0NC4wMDFDMTIzIDM0NC4wMDEgMTI1LjggMzQ2LjQwMSAxMjUuNCAzNDkuNjAxQzEyNSAzNTIuODAxIDEyMi4yIDM1NC40MDEgMTIwLjIgMzU1LjIwMUMxMTguMiAzNTYuMDAxIDExNSAzNTIuODAxIDExMy40IDM1Mi44MDFDMTExLjggMzUyLjgwMSAxMDMuNCAzNDYuNDAxIDk5IDM0MS42MDFDOTQuNiAzMzYuODAxIDg2LjIgMzI0LjgwMSA4Ni42IDMyMi4wMDFDODcgMzE5LjIwMSA4Ny44IDMxMy42MDEgODcuOCAzMTMuNjAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNiMjY1NjUnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTkxIDMzMS4wNTFDOTMuNiAzMzUuMDAxIDk2LjggMzM5LjIwMSA5OSAzNDEuNjAxQzEwMy40IDM0Ni40MDEgMTExLjggMzUyLjgwMSAxMTMuNCAzNTIuODAxQzExNSAzNTIuODAxIDExOC4yIDM1Ni4wMDEgMTIwLjIgMzU1LjIwMUMxMjIuMiAzNTQuNDAxIDEyNSAzNTIuODAxIDEyNS40IDM0OS42MDFDMTI1LjggMzQ2LjQwMSAxMjMgMzQ0LjAwMSAxMjMgMzQ0LjAwMUMxMTkuOTM0IDM0Mi40NjggMTE3LjE5NCAzMzguOTc2IDExNS42MTUgMzM2LjY1M0MxMTUuNjE1IDMzNi42NTMgMTE1LjggMzM5LjIwMSAxMTAuNiAzMzguNDAxQzEwNS40IDMzNy42MDEgMTAwLjIgMzM0LjgwMSA5OC42IDMzMS42MDFDOTcgMzI4LjQwMSA5NC42IDMyNi4wMDEgOTYuMiAzMjkuNjAxQzk3LjggMzMzLjIwMSAxMDAuMiAzMzYuODAxIDEwMS44IDMzNy4yMDFDMTAzLjQgMzM3LjYwMSAxMDMgMzM4LjgwMSAxMDAuNiAzMzguNDAxQzk4LjIgMzM4LjAwMSA5NS40IDMzNy42MDEgOTEgMzMyLjQwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjOTkyNjAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J004OC40IDMxMC4wMDFDODguNCAzMTAuMDAxIDkwLjIgMjk2LjQgOTEuNCAyOTIuNEM5MS40IDI5Mi40IDkwLjYgMjg1LjYgOTMgMjgxLjRDOTUuNCAyNzcuMiA5Ny40IDI3MSAxMDAuNCAyNjUuNkMxMDMuNCAyNjAuMiAxMDMuNiAyNTYuMiAxMDcuNiAyNTQuNkMxMTEuNiAyNTMgMTE3LjYgMjQ0LjQgMTIwLjQgMjQzLjRDMTIzLjIgMjQyLjQgMTIzIDI0My4yIDEyMyAyNDMuMkMxMjMgMjQzLjIgMTI5LjggMjI4LjQgMTQzLjQgMjMyLjRDMTQzLjQgMjMyLjQgMTI3LjIgMjI5LjYgMTQzIDIyMC4yQzE0MyAyMjAuMiAxMzguMiAyMjEuMyAxNDEuNSAyMTQuM0MxNDMuNzAxIDIwOS42MzIgMTQzLjIgMjE2LjQgMTMyLjIgMjI4LjJDMTMyLjIgMjI4LjIgMTI3LjIgMjM2LjggMTIyIDIzOS44QzExNi44IDI0Mi44IDEwNC44IDI0OS44IDEwMy42IDI1My42QzEwMi40IDI1Ny40IDk5LjIgMjYzLjIgOTcuMiAyNjQuOEM5NS4yIDI2Ni40IDkyLjQgMjcwLjYgOTIgMjc0QzkyIDI3NCA5MC44IDI3OCA4OS40IDI3OS4yQzg4IDI4MC40IDg3LjggMjgzLjYgODcuOCAyODUuNkM4Ny44IDI4Ny42IDg1LjggMjkwLjQgODYgMjkyLjhDODYgMjkyLjggODYuOCAzMTEuODAxIDg2LjQgMzEzLjgwMUw4OC40IDMxMC4wMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNzkuOCAzMTQuNjAxQzc5LjggMzE0LjYwMSA3Ny44IDMxMy4yMDEgNzMuNCAzMTkuMjAxQzczLjQgMzE5LjIwMSA4MC43IDM1Mi4yMDEgODAuNyAzNTMuNjAxQzgwLjcgMzUzLjYwMSA4MS44IDM1MS41MDEgODAuNSAzNDQuMzAxQzc5LjIgMzM3LjEwMSA3OC4zIDMyNC40MDEgNzguMyAzMjQuNDAxTDc5LjggMzE0LjYwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjOTkyNjAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xMDEuNCAyNTRDMTAxLjQgMjU0IDgzLjggMjU3LjIgODQuMiAyODYuNEw4My40IDMxMS4yMDFDODMuNCAzMTEuMjAxIDgyLjIgMjg1LjYgODEgMjg0Qzc5LjggMjgyLjQgODMuOCAyNzEuMiA4MC42IDI3Ny4yQzgwLjYgMjc3LjIgNjYuNiAyOTEuMiA3NC42IDMxMi40MDFDNzQuNiAzMTIuNDAxIDc2LjEgMzE1LjcwMSA3My4xIDMxMS4xMDFDNzMuMSAzMTEuMTAxIDY4LjUgMjk4LjUgNjkuNiAyOTIuMUM2OS42IDI5Mi4xIDY5LjggMjg5LjkgNzEuNyAyODcuMUM3MS43IDI4Ny4xIDgwLjMgMjc1LjQgODMgMjczLjFDODMgMjczLjEgODQuOCAyNTguNyAxMDAuMiAyNTMuNUMxMDAuMiAyNTMuNSAxMDUuOSAyNTEuMiAxMDEuNCAyNTR6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjQwLjggMTg3LjhDMjQxLjQ2IDE4Ny40NDYgMjQxLjQ1MSAxODYuNDc2IDI0Mi4wMzEgMTg2LjMwM0MyNDMuMTggMTg1Ljk1OSAyNDMuMzQ0IDE4NC44OTIgMjQzLjg2MiAxODQuMTA4QzI0NC43MzUgMTgyLjc4OSAyNDQuOTI4IDE4MS4yNTYgMjQ1LjUxIDE3OS43NjVDMjQ1Ljc4MiAxNzkuMDY1IDI0NS44MDkgMTc4LjExIDI0NS40OTYgMTc3LjQ1QzI0NC4zMjIgMTc0Ljk2OSAyNDMuNjIgMTcyLjUyIDI0Mi4xNzggMTcwLjA5NEMyNDEuOTEgMTY5LjY0NCAyNDEuNjQ4IDE2OC44NSAyNDEuNDQ3IDE2OC4yNTJDMjQwLjk4NCAxNjYuODY4IDIzOS43MjcgMTY1Ljg3NyAyMzguODY3IDE2NC41NTdDMjM4LjU3OSAxNjQuMTE2IDIzOS4xMDQgMTYzLjE5MSAyMzguMzg4IDE2My4xMDdDMjM3LjQ5MSAxNjMuMDAyIDIzNi4wNDIgMTYyLjQyMiAyMzUuODA5IDE2My40NDhDMjM1LjIyMSAxNjYuMDM1IDIzNi4yMzIgMTY4LjU1OCAyMzcuMiAxNzFDMjM2LjQxOCAxNzEuNjkyIDIzNi43NTIgMTcyLjYxMyAyMzYuOTA0IDE3My4zOEMyMzcuNjE0IDE3Ni45ODYgMjM2LjQxNiAxODAuMzM4IDIzNS42NTUgMTgzLjgxMkMyMzUuNjMyIDE4My45MTYgMjM1Ljk3NCAxODQuMTE0IDIzNS45NDYgMTg0LjE3NkMyMzQuNzI0IDE4Ni44NjIgMjMzLjI3MiAxODkuMzA3IDIzMS40NTMgMTkxLjY4OEMyMzAuNjk1IDE5Mi42OCAyMjkuODIzIDE5My41OTYgMjI5LjMyNiAxOTQuNjU5QzIyOC45NTggMTk1LjQ0NiAyMjguNTUgMTk2LjQxMiAyMjguOCAxOTcuNEMyMjUuMzY1IDIwMC4xOCAyMjMuMTE1IDIwNC4wMjUgMjIwLjUwNCAyMDcuODcxQzIyMC4wNDIgMjA4LjU1MSAyMjAuMzMzIDIwOS43NiAyMjAuODg0IDIxMC4wMjlDMjIxLjY5NyAyMTAuNDI3IDIyMi42NTMgMjA5LjQwMyAyMjMuMTIzIDIwOC41NTdDMjIzLjUxMiAyMDcuODU5IDIyMy44NjUgMjA3LjIwOSAyMjQuMzU2IDIwNi41NjZDMjI0LjQ4OSAyMDYuMzkxIDIyNC4zMSAyMDUuOTcyIDIyNC40NDUgMjA1Ljg1MUMyMjcuMDc4IDIwMy41MDQgMjI4Ljc0NyAyMDAuNTY4IDIzMS4yIDE5OC4yQzIzMy4xNSAxOTcuODcxIDIzNC42ODcgMTk2Ljg3MyAyMzYuNDM1IDE5NS44NkMyMzYuNzQzIDE5NS42ODEgMjM3LjI2NyAxOTUuOTMgMjM3LjU1NyAxOTUuNzM1QzIzOS4zMSAxOTQuNTU4IDIzOS4zMDggMTkyLjUyMiAyMzkuNDE0IDE5MC42MTJDMjM5LjQ2NCAxODkuNzI4IDIzOS42NiAxODguNDExIDI0MC44IDE4Ny44eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIzMS45NTkgMTgzLjMzNEMyMzIuMDgzIDE4My4yNTcgMjMxLjkyOCAxODIuODM0IDIzMi4wMzcgMTgyLjYxOEMyMzIuMTk5IDE4Mi4yOTQgMjMyLjYwMiAxODIuMTA2IDIzMi43NjQgMTgxLjc4MkMyMzIuODczIDE4MS41NjYgMjMyLjcxIDE4MS4xODYgMjMyLjg0NiAxODEuMDQ0QzIzNS4xNzkgMTc4LjU5NyAyMzUuNDM2IDE3NS41NzMgMjM0LjQgMTcyLjZDMjM1LjQyNCAxNzEuOTggMjM1LjQ4NSAxNzAuNzE4IDIzNS4wNiAxNjkuODcxQzIzNC4yMDcgMTY4LjE3MSAyMzQuMDE0IDE2Ni4yNDUgMjMzLjAzOSAxNjQuNzAyQzIzMi4yMzcgMTYzLjQzMyAyMzAuNjU5IDE2Mi4xODkgMjI5LjI4OCAxNjMuNDkyQzIyOC44NjcgMTYzLjg5MiAyMjguNTQ2IDE2NC42NzkgMjI4LjgyNCAxNjUuMzkxQzIyOC44ODggMTY1LjU1NCAyMjkuMTczIDE2NS43IDIyOS4xNDYgMTY1Ljc4MkMyMjkuMDM5IDE2Ni4xMDYgMjI4LjQ5MyAxNjYuMzMgMjI4LjQ4NyAxNjYuNjAyQzIyOC40NTcgMTY4LjA5OCAyMjcuNTAzIDE2OS42MDkgMjI4LjEzMyAxNzAuOTM4QzIyOC45MDUgMTcyLjU2NyAyMjkuNzI0IDE3NC40MjQgMjMwLjQgMTc2LjJDMjI5LjE2NiAxNzguMzE2IDIzMC4xOTkgMTgwLjc2NSAyMjguNDQ2IDE4Mi42NDJDMjI4LjMxIDE4Mi43ODggMjI4LjMxOSAxODMuMTc0IDIyOC40NDEgMTgzLjM3NkMyMjguNzMzIDE4My44NjIgMjI5LjEzOSAxODQuMjY4IDIyOS42MjUgMTg0LjU2QzIyOS44MjcgMTg0LjY4MSAyMzAuMTc1IDE4NC42ODMgMjMwLjM3NSAxODQuNTU5QzIzMC45NTMgMTg0LjE5NyAyMzEuMzUxIDE4My43MSAyMzEuOTU5IDE4My4zMzR6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjk0Ljc3MSAxNzMuMDIzQzI5Ni4xNiAxNzQuODE1IDI5Ni40NSAxNzcuNjEgMjk0LjQwMSAxNzlDMjk0Ljk1MSAxODIuMzA5IDI5OC4zMDIgMTgwLjMzIDMwMC40MDEgMTc5LjhDMzAwLjI5MiAxNzkuNDEyIDMwMC41MTkgMTc5LjA2OCAzMDAuODAyIDE3OS4wNjNDMzAxLjg1OSAxNzkuMDQ4IDMwMi41MzkgMTc4LjAxNiAzMDMuNjAxIDE3OC4yQzMwNC4wMzUgMTc2LjY0MyAzMDUuNjczIDE3NS45NDEgMzA2LjMxNyAxNzQuNTYxQzMwOC4wNDMgMTcwLjg2NiAzMDcuNDUyIDE2Ni41OTMgMzA0Ljg2OCAxNjMuMzQ3QzMwNC42NjYgMTYzLjA5MyAzMDQuODgzIDE2Mi41NzYgMzA0Ljc1OSAxNjIuMjE0QzMwNC4wMDMgMTYwLjAwMyAzMDEuOTM1IDE1OS42ODggMzAwLjAwMSAxNTlDMjk4LjgyNCAxNTUuMTI1IDI5OC4xNjMgMTUxLjA5NCAyOTYuNDAxIDE0Ny40QzI5NC43ODcgMTQ3LjE1IDI5NC4wODkgMTQ1LjQxMSAyOTIuNzUyIDE0NC42OTFDMjkxLjQxOSAxNDMuOTcyIDI5MC44NTEgMTQ1LjU1MSAyOTAuODkyIDE0Ni41OTdDMjkwLjg5OSAxNDYuODAyIDI5MS4zNTEgMTQ3LjAyNiAyOTEuMTgxIDE0Ny4zOTFDMjkxLjEwNSAxNDcuNTU1IDI5MC44NDUgMTQ3LjY2NiAyOTAuODQ1IDE0Ny44QzI5MC44NDYgMTQ3LjkzNSAyOTEuMDY3IDE0OC4wNjYgMjkxLjIwMSAxNDguMkMyOTAuMjgzIDE0OS4wMiAyODguODYgMTQ5LjQ5NyAyODguNTY1IDE1MC42NDJDMjg3LjYxMSAxNTQuMzUyIDI5MC4xODQgMTU3LjQ3NyAyOTEuODUyIDE2MC42NzhDMjkyLjQ0MyAxNjEuODEzIDI5MS43MDcgMTYzLjA4NCAyOTAuOTQ3IDE2NC4yOTJDMjkwLjUwOSAxNjQuOTg3IDI5MC42MTcgMTY2LjExNCAyOTAuODkzIDE2Ni45N0MyOTEuNjQ1IDE2OS4zMDEgMjkzLjIzNiAxNzEuMDQgMjk0Ljc3MSAxNzMuMDIzeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI1Ny42MTEgMTkxLjQwOUMyNTYuMTI0IDE5My4yNiAyNTIuNzEyIDE5NS44MjkgMjU1LjYyOSAxOTcuNzU3QzI1NS44MjMgMTk3Ljg4NiAyNTYuMTkzIDE5Ny44OSAyNTYuMzY2IDE5Ny43NTZDMjU4LjM4NyAxOTYuMTkxIDI2MC4zOSAxOTUuMjg4IDI2Mi44MjYgMTk0LjcwNkMyNjIuOTUgMTk0LjY3NyAyNjMuMjI0IDE5NS4xNDQgMjYzLjU5MyAxOTQuOTgzQzI2NS4yMDYgMTk0LjI4IDI2Ny4yMTYgMTk0LjMzOCAyNjguNCAxOTNDMjcyLjE2NyAxOTMuMjI0IDI3NS43MzIgMTkyLjEwOCAyNzkuMTIzIDE5MC44QzI4MC4yODQgMTkwLjM1MiAyODEuNTU0IDE4OS43OTMgMjgyLjc1NSAxODkuMjkxQzI4NC4xMzEgMTg4LjcxNSAyODUuMzM1IDE4Ny43ODcgMjg2LjQ0NyAxODYuNjQ2QzI4Ni41OCAxODYuNTEgMjg2LjkzNCAxODYuNiAyODcuMjAxIDE4Ni42QzI4Ny4xNjEgMTg1LjczNyAyODguMTIzIDE4NS42MSAyODguMzcgMTg0Ljk4OEMyODguNDYyIDE4NC43NTYgMjg4LjMxMiAxODQuMzYgMjg4LjQ0NSAxODQuMjU4QzI5MC41ODMgMTgyLjYyOCAyOTEuNTAzIDE4MC42MSAyOTAuMzM0IDE3OC4yMzNDMjkwLjA0OSAxNzcuNjU1IDI4OS44IDE3Ny4wMzcgMjg5LjIzNCAxNzYuNTYxQzI4OC4xNDkgMTc1LjY1IDI4Ny4wNDcgMTc2LjUwNCAyODYgMTc2LjJDMjg1Ljg0MSAxNzYuODI4IDI4NS4xMTIgMTc2LjY1NiAyODQuNzI2IDE3Ni44NTRDMjgzLjg2NyAxNzcuMjkzIDI4Mi41MzQgMTc2LjcwOCAyODEuNjc1IDE3Ny4xNDZDMjgwLjMxMyAxNzcuODQxIDI3OS4wNzIgMTc4LjAxIDI3Ny42NSAxNzguMzg3QzI3Ny4zMzggMTc4LjQ2OSAyNzYuNTYgMTc4LjM3MyAyNzYuNCAxNzlDMjc2LjI2NiAxNzguODY2IDI3Ni4xMTggMTc4LjYzMiAyNzYuMDEyIDE3OC42NTRDMjc0LjEwNCAxNzkuMDUgMjcyLjg0NCAxNzkuMjY0IDI3MS41NDMgMTgwLjk1NkMyNzEuNDQgMTgxLjA4OSAyNzAuOTk4IDE4MC45MSAyNzAuODM5IDE4MS4wNDVDMjY5Ljg4MiAxODEuODUzIDI2OS40NzcgMTgzLjA4NyAyNjguMzc2IDE4My43NTlDMjY4LjE3NSAxODMuODgyIDI2Ny44MjMgMTgzLjcxNCAyNjcuNjI5IDE4My44NDNDMjY2Ljk4MyAxODQuMjc0IDI2Ni42MTYgMTg0LjkxNSAyNjUuOTc0IDE4NS4zNjJDMjY1LjY0NSAxODUuNTkxIDI2NS4yNDUgMTg1LjI2NiAyNjUuMjc3IDE4NS4wMUMyNjUuNTIyIDE4My4wNjMgMjY2LjE3NSAxODEuMjc2IDI2NS42IDE3OS40QzI2Ny42NzcgMTc2Ljg4IDI3MC4xOTQgMTc0LjkzMSAyNzIgMTcyLjJDMjcyLjAxNSAxNzAuMDM0IDI3Mi43MDcgMTY3Ljg4OCAyNzIuNTk0IDE2NS44MTFDMjcyLjU4NCAxNjUuNjE4IDI3Mi4yOTYgMTY0Ljg4NSAyNzIuMTcgMTY0LjUzOEMyNzEuODU4IDE2My42ODQgMjcyLjc2NCAxNjIuNjE4IDI3MS45MiAxNjEuODk0QzI3MC41MTYgMTYwLjY5MSAyNjkuMjI0IDE2MS41NjcgMjY4LjQgMTYzQzI2Ni41NjIgMTYzLjM5IDI2NC40OTYgMTY0LjA4MyAyNjIuOTE4IDE2Mi44NDlDMjYxLjkxMSAxNjIuMDYyIDI2MS4zMzMgMTYxLjE1NiAyNjAuNTM0IDE2MC4xQzI1OS41NDkgMTU4Ljc5OCAyNTkuODg0IDE1Ny4zNjIgMjU5Ljk1NCAxNTUuNzk4QzI1OS45NiAxNTUuNjcgMjU5LjY0NSAxNTUuNTM0IDI1OS42NDUgMTU1LjRDMjU5LjY0NiAxNTUuMjY1IDI1OS44NjYgMTU1LjEzNCAyNjAgMTU1QzI1OS4yOTQgMTU0LjM3NCAyNTkuMDE5IDE1My4zMTYgMjU4IDE1M0MyNTguMzA1IDE1MS45MDggMjU3LjYyOSAxNTEuMDI0IDI1Ni43NTggMTUwLjcyMkMyNTQuNzYzIDE1MC4wMzEgMjUzLjA4NiAxNTEuOTQzIDI1MS4xOTQgMTUyLjAxNkMyNTAuNjggMTUyLjAzNSAyNTAuMjEzIDE1MC45OTcgMjQ5LjU2NCAxNTAuNjcyQzI0OS4xMzIgMTUwLjQ1NiAyNDguNDI4IDE1MC40MjMgMjQ4LjA2NiAxNTAuNjg5QzI0Ny4zNzggMTUxLjE5MyAyNDYuNzg5IDE1MS4zMDcgMjQ2LjAzMSAxNTEuNTEyQzI0NC40MTQgMTUxLjk0OCAyNDMuMTM2IDE1My4wNDIgMjQxLjY1NiAxNTMuODk3QzI0MC4xNzEgMTU0Ljc1NCAyMzkuMjE2IDE1Ni4xOTEgMjM4LjEzNiAxNTcuNTExQzIzNy4xOTUgMTU4LjY2MyAyMzcuMDU5IDE2MS4wNzcgMjM4LjQ3OSAxNjEuNTc3QzI0MC4zMjIgMTYyLjIyNyAyNDEuNjI2IDE1OS41MjQgMjQzLjU5MiAxNTkuODVDMjQzLjkwNCAxNTkuOTAxIDI0NC4xMSAxNjAuMjEyIDI0NCAxNjAuNkMyNDQuMzg5IDE2MC43MDkgMjQ0LjYwNyAxNjAuNDggMjQ0LjggMTYwLjJDMjQ1LjY1OCAxNjEuMjE5IDI0Ni44MjIgMTYxLjU1NiAyNDcuNzYgMTYyLjQyOUMyNDguNzMgMTYzLjMzMyAyNTAuNDc2IDE2Mi45MTUgMjUxLjQ5MSAxNjMuOTEyQzI1My4wMiAxNjUuNDE0IDI1Mi40NjEgMTY4LjA5NSAyNTQuNCAxNjkuNEMyNTMuODE0IDE3MC43MTMgMjUzLjIwNyAxNzEuOTkgMjUyLjg3MiAxNzMuNDE3QzI1Mi41OSAxNzQuNjIzIDI1My41ODQgMTc1LjgyIDI1NC43OTUgMTc1LjcyOUMyNTYuMDUzIDE3NS42MzUgMjU2LjMxNSAxNzQuODc2IDI1Ni44IDE3My44QzI1Ny4wNjcgMTc0LjA2NyAyNTcuNTM2IDE3NC4zNjQgMjU3LjQ5NSAxNzQuNThDMjU3LjAzOCAxNzYuOTY3IDI1Ni4wMTEgMTc4Ljk2IDI1NS41NTMgMTgxLjM5MUMyNTUuNDk0IDE4MS43MDggMjU1LjE4OSAxODEuOTEgMjU0LjggMTgxLjhDMjU0LjMzMiAxODUuOTQ5IDI1MC4yOCAxODguMzQzIDI0Ny43MzUgMTkxLjUwOEMyNDcuMzMyIDE5Mi4wMSAyNDcuMzI4IDE5My4yNTkgMjQ3LjczNyAxOTMuNjYyQzI0OS4xNCAxOTUuMDQ5IDI1MS4xIDE5My41MDMgMjUyLjggMTkzQzI1My4wMTMgMTkxLjc5NCAyNTMuODcyIDE5MC44NTIgMjU1LjIwNCAxOTAuOTA4QzI1NS40NiAxOTAuOTE4IDI1NS42OTUgMTkwLjM3NiAyNTYuMDE5IDE5MC4yNDZDMjU2LjM2NyAxOTAuMTA4IDI1Ni44NjkgMTkwLjMzMiAyNTcuMTU1IDE5MC4xMzRDMjU4Ljg4NCAxODguOTM5IDI2MC4yOTIgMTg3LjgzMyAyNjIuMDMgMTg2LjY0NEMyNjIuMjIyIDE4Ni41MTMgMjYyLjU2NiAxODYuNjcyIDI2Mi43ODIgMTg2LjU2NEMyNjMuMTA3IDE4Ni40MDIgMjYzLjI5NCAxODYuMDE1IDI2My42MTcgMTg1LjgzQzI2My45NjUgMTg1LjYzIDI2NC4yMDcgMTg1LjkyIDI2NC40IDE4Ni4yQzI2My43NTQgMTg2LjU0OSAyNjMuNzUgMTg3LjUwNiAyNjMuMTY4IDE4Ny43MDhDMjYyLjM5MyAxODcuOTc2IDI2MS44MzIgMTg4LjQ4OSAyNjEuMTU4IDE4OC45MzZDMjYwLjg2NiAxODkuMTI5IDI2MC4yMDcgMTg4Ljg4MSAyNjAuMTAzIDE4OS4wNkMyNTkuNTA1IDE5MC4wODggMjU4LjMyMSAxOTAuNTI2IDI1Ny42MTEgMTkxLjQwOXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMDIuMiAxNDJDMjAyLjIgMTQyIDE5Mi45NjIgMTM5LjEyOCAxODEuOCAxNjQuOEMxODEuOCAxNjQuOCAxNzkuNCAxNzAgMTc3IDE3MkMxNzQuNiAxNzQgMTYzLjQgMTc3LjYgMTYxLjQgMTgxLjZMMTUxIDE5Ny42QzE1MSAxOTcuNiAxNjUuOCAxODEuNiAxNjkgMTc5LjJDMTY5IDE3OS4yIDE3NyAxNzAuOCAxNzMuOCAxNzcuNkMxNzMuOCAxNzcuNiAxNTkuOCAxODguNCAxNjEgMTk3LjZDMTYxIDE5Ny42IDE1NS40IDIxMiAxNTQuNiAyMTRDMTU0LjYgMjE0IDE3MC42IDE4MiAxNzMgMTgwLjhDMTc1LjQgMTc5LjYgMTc2LjYgMTc5LjYgMTc1LjQgMTgzLjJDMTc0LjIgMTg2LjggMTczLjggMjAzLjIgMTcxIDIwNS4yQzE3MSAyMDUuMiAxNzkgMTg0LjggMTc4LjIgMTgxLjZDMTc4LjIgMTgxLjYgMTgxLjQgMTc4IDE4My44IDE4My4yTDE4Mi42IDE5OS4yTDE4NyAyMTEuMkMxODcgMjExLjIgMTg0LjYgMjAwIDE4Ni4yIDE4NC40QzE4Ni4yIDE4NC40IDE4NC4yIDE3NCAxODguMiAxNzkuNkMxOTIuMiAxODUuMiAyMDEuOCAxOTEuMiAyMDEuOCAxOTZDMjAxLjggMTk2IDE5Ni42IDE3OC40IDE4Ny40IDE3My42TDE4My40IDE3OS42TDE4Mi4yIDE3Ny42QzE4Mi4yIDE3Ny42IDE3OC42IDE3Ni44IDE4MyAxNzBDMTg3LjQgMTYzLjIgMTg3IDE2Mi40IDE4NyAxNjIuNEMxODcgMTYyLjQgMTkzLjQgMTY5LjYgMTk1IDE2OS42QzE5NSAxNjkuNiAyMDguMiAxNjIgMjA5LjQgMTg2LjRDMjA5LjQgMTg2LjQgMjE2LjIgMTcyIDIwNyAxNjUuMkMyMDcgMTY1LjIgMTkyLjIgMTYzLjIgMTkzLjQgMTU4TDIwMC42IDE0NS42QzIwNC4yIDE0MC40IDIwMi42IDE0My4yIDIwMi42IDE0My4yeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE4Mi4yIDE1OC40QzE4Mi4yIDE1OC40IDE2OS40IDE1OC40IDE2Ni4yIDE2My42TDE1OSAxNzMuMkMxNTkgMTczLjIgMTc2LjIgMTYzLjIgMTgwLjIgMTYyQzE4NC4yIDE2MC44IDE4Mi4yIDE1OC40IDE4Mi4yIDE1OC40eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE0Mi4yIDE2NC44QzE0Mi4yIDE2NC44IDE0MC4yIDE2NiAxMzkuOCAxNjguOEMxMzkuNCAxNzEuNiAxMzcgMTcyIDEzNy44IDE3NC44QzEzOC42IDE3Ny42IDE0MC42IDE4MCAxNDAuNiAxNzZDMTQwLjYgMTcyIDE0Mi4yIDE3MCAxNDMgMTY4LjhDMTQzLjggMTY3LjYgMTQ1LjQgMTYzLjIgMTQyLjIgMTY0Ljh6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTMzLjQgMjI2QzEzMy40IDIyNiAxMjUgMjIyIDEyMS44IDIxOC40QzExOC42IDIxNC44IDExOS4wNTIgMjE5Ljk2NiAxMTQuMiAyMTkuNkMxMDguMzUzIDIxOS4xNTkgMTA5LjQgMjAzLjIgMTA5LjQgMjAzLjJMMTA1LjQgMjEwLjhDMTA1LjQgMjEwLjggMTA0LjIgMjI1LjIgMTEyLjIgMjIyLjhDMTE2LjEwNyAyMjEuNjI4IDExNy40IDIyMy4yIDExNS44IDIyNEMxMTQuMiAyMjQuOCAxMjEuNCAyMjUuMiAxMTguNiAyMjYuOEMxMTUuOCAyMjguNCAxMzAuMiAyMjMuMiAxMjcuOCAyMzMuNkwxMzMuNCAyMjZ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTIwLjggMjQwLjRDMTIwLjggMjQwLjQgMTA1LjQgMjQ0LjggMTAxLjggMjM1LjJDMTAxLjggMjM1LjIgOTcgMjM3LjYgOTkuMiAyNDAuNkMxMDEuNCAyNDMuNiAxMDIuNiAyNDQgMTAyLjYgMjQ0QzEwMi42IDI0NCAxMDggMjQ1LjIgMTA3LjQgMjQ2QzEwNi44IDI0Ni44IDEwNC40IDI1MC4yIDEwNC40IDI1MC4yQzEwNC40IDI1MC4yIDExNC42IDI0NC4yIDEyMC44IDI0MC40eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmYnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTM0OS4yMDEgMzE4LjYwMUMzNDguNzc0IDMyMC43MzUgMzQ3LjEwMyAzMjEuNTM2IDM0NS4yMDEgMzIyLjIwMUMzNDMuMjg0IDMyMS4yNDMgMzQwLjY4NiAzMTguMTM3IDMzOC44MDEgMzIwLjIwMUMzMzguMzI3IDMxOS43MjEgMzM3LjU0OCAzMTkuNjYxIDMzNy4yMDQgMzE4Ljk5OUMzMzYuNzM5IDMxOC4xMDEgMzM3LjAxMSAzMTcuMDU1IDMzNi42NjkgMzE2LjI1N0MzMzYuMTI0IDMxNC45ODUgMzM1LjQxNSAzMTMuNjE5IDMzNS42MDEgMzEyLjIwMUMzMzcuNDA3IDMxMS40ODkgMzM4LjAwMiAzMDkuNTgzIDMzNy41MjggMzA3LjgyQzMzNy40NTkgMzA3LjU2MyAzMzcuMDMgMzA3LjM2NiAzMzcuMjMgMzA3LjAxN0MzMzcuNDE2IDMwNi42OTQgMzM3LjczNCAzMDYuNDY3IDMzOC4wMDEgMzA2LjJDMzM3Ljg2NiAzMDYuMzM1IDMzNy43MjEgMzA2LjU2OCAzMzcuNjEgMzA2LjU0OEMzMzcgMzA2LjQ0MiAzMzcuMTI0IDMwNS44MDUgMzM3LjI1NCAzMDUuNDE4QzMzNy44MzkgMzAzLjY3MiAzMzkuODUzIDMwMy40MDggMzQxLjIwMSAzMDQuNkMzNDEuNDU3IDMwNC4wMzUgMzQxLjk2NiAzMDQuMjI5IDM0Mi40MDEgMzA0LjJDMzQyLjM1MSAzMDMuNjIxIDM0Mi43NTkgMzAzLjA5NCAzNDIuOTU3IDMwMi42NzRDMzQzLjQ3NSAzMDEuNTc2IDM0NS4xMDQgMzAyLjY4MiAzNDUuOTAxIDMwMi4wN0MzNDYuOTc3IDMwMS4yNDUgMzQ4LjA0IDMwMC41NDYgMzQ5LjExOCAzMDEuMTQ5QzM1MC45MjcgMzAyLjE2MiAzNTIuNjM2IDMwMy4zNzQgMzUzLjgzNSAzMDUuMTE1QzM1NC40MSAzMDUuOTQ5IDM1NC42NSAzMDcuMjMgMzU0LjU5MiAzMDguMTg4QzM1NC41NTQgMzA4LjgzNSAzNTMuMTczIDMwOC40ODMgMzUyLjgzIDMwOS40MTJDMzUyLjE4NSAzMTEuMTYgMzU0LjAxNiAzMTEuNjc5IDM1NC43NzIgMzEzLjAxN0MzNTQuOTcgMzEzLjM2NiAzNTQuNzA2IDMxMy42NyAzNTQuMzkxIDMxMy43NjhDMzUzLjk4IDMxMy44OTYgMzUzLjE5NiAzMTMuNzA3IDM1My4zMzQgMzE0LjE2QzM1NC4zMDYgMzE3LjM1MyAzNTEuNTUgMzE4LjAzMSAzNDkuMjAxIDMxOC42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZicpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMzM5LjYgMzM4LjIwMUMzMzkuNTkzIDMzNi40NjMgMzM3Ljk5MiAzMzQuNzA3IDMzOS4yMDEgMzMzLjAwMUMzMzkuMzM2IDMzMy4xMzUgMzM5LjQ2NyAzMzMuMzU2IDMzOS42MDEgMzMzLjM1NkMzMzkuNzM2IDMzMy4zNTYgMzM5Ljg2NyAzMzMuMTM1IDM0MC4wMDEgMzMzLjAwMUMzNDEuNDk2IDMzNS4yMTcgMzQ1LjE0OCAzMzYuMTQ1IDM0NS4wMDYgMzM4Ljk5MUMzNDQuOTg0IDMzOS40MzggMzQzLjg5NyAzNDAuMzU2IDM0NC44MDEgMzQxLjAwMUMzNDIuOTg4IDM0Mi4zNDkgMzQyLjkzMyAzNDQuNzE5IDM0Mi4wMDEgMzQ2LjYwMUMzNDAuNzYzIDM0Ni4zMTUgMzM5LjU1MSAzNDUuOTUyIDMzOC40MDEgMzQ1LjQwMUMzMzguNzUzIDM0My45MTUgMzM4LjYzNiAzNDIuMjMxIDMzOS40NTYgMzQwLjkxMUMzMzkuODkgMzQwLjIxMyAzMzkuNjAzIDMzOS4xMzQgMzM5LjYgMzM4LjIwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNzMuNCAzMjkuMjAxQzE3My40IDMyOS4yMDEgMTU2LjU0MiAzMzkuMzM3IDE3MC42IDMyNC4wMDFDMTc5LjQgMzE0LjQwMSAxODkuNCAzMDguODAxIDE4OS40IDMwOC44MDFDMTg5LjQgMzA4LjgwMSAxOTkuOCAzMDQuNCAyMDMuNCAzMDMuMkMyMDcgMzAyIDIyMi4yIDI5Ni44IDIyNS40IDI5Ni40QzIyOC42IDI5NiAyMzguMiAyOTIgMjQ1IDI5NkMyNTEuOCAzMDAgMjU5LjggMzA0LjQgMjU5LjggMzA0LjRDMjU5LjggMzA0LjQgMjQzLjQgMjk2IDIzOS44IDI5OC40QzIzNi4yIDMwMC44IDIyOSAzMDAuNCAyMjMgMzAzLjZDMjIzIDMwMy42IDIwOC4yIDMwOC4wMDEgMjA1IDMxMC4wMDFDMjAxLjggMzEyLjAwMSAxOTEuNCAzMjMuNjAxIDE4OS44IDMyMi44MDFDMTg4LjIgMzIyLjAwMSAxOTAuMiAzMjEuNjAxIDE5MS40IDMxOC44MDFDMTkyLjYgMzE2LjAwMSAxOTAuNiAzMTQuNDAxIDE4Mi42IDMyMC44MDFDMTc0LjYgMzI3LjIwMSAxNzMuNCAzMjkuMjAxIDE3My40IDMyOS4yMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTgwLjgwNSAzMjMuMjM0QzE4MC44MDUgMzIzLjIzNCAxODIuMjE1IDMxMC4xOTQgMTkwLjY5MyAzMTEuODU5QzE5MC42OTMgMzExLjg1OSAxOTguOTE5IDMwNy42ODkgMjAxLjY0MSAzMDUuNzIxQzIwMS42NDEgMzA1LjcyMSAyMDkuNzggMzA0LjAxOSAyMTEuMDkgMzAzLjQwMkMyMjkuNTY5IDI5NC43MDIgMjQ0LjI4OCAyOTkuMjIxIDI0NC44MzUgMjk4LjEwMUMyNDUuMzgxIDI5Ni45ODIgMjY1LjAwNiAzMDQuMDk5IDI2OC42MTUgMzA4LjE4NUMyNjkuMDA2IDMwOC42MjggMjU4LjM4NCAzMDIuNTg4IDI0OC42ODYgMzAwLjY5N0MyNDAuNDEzIDI5OS4wODMgMjE4LjgxMSAzMDAuOTQ0IDIwNy45MDUgMzA2LjQ4QzIwNC45MzIgMzA3Ljk4OSAxOTUuOTg3IDMxMy43NzMgMTkzLjQ1NiAzMTMuNjYyQzE5MC45MjUgMzEzLjU1IDE4MC44MDUgMzIzLjIzNCAxODAuODA1IDMyMy4yMzR6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTc3IDM0OC44MDFDMTc3IDM0OC44MDEgMTYxLjggMzQ2LjQwMSAxNzguNiAzNDQuODAxQzE3OC42IDM0NC44MDEgMTk2LjYgMzQyLjgwMSAyMDAuNiAzMzcuNjAxQzIwMC42IDMzNy42MDEgMjE0LjIgMzI4LjQwMSAyMTcgMzI4LjAwMUMyMTkuOCAzMjcuNjAxIDI0OS44IDMyMC40MDEgMjUwLjIgMzE4LjAwMUMyNTAuNiAzMTUuNjAxIDI1Ni4yIDMxNS42MDEgMjU3LjggMzE2LjQwMUMyNTkuNCAzMTcuMjAxIDI1OC42IDMxOC40MDEgMjU1LjggMzE5LjIwMUMyNTMgMzIwLjAwMSAyMjEuOCAzMzYuNDAxIDIxNS40IDMzNy42MDFDMjA5IDMzOC44MDEgMTk3LjQgMzQ2LjQwMSAxOTIuNiAzNDcuNjAxQzE4Ny44IDM0OC44MDEgMTc3IDM0OC44MDEgMTc3IDM0OC44MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTk2LjUyIDM0MS40MDNDMTk2LjUyIDM0MS40MDMgMTg3LjkzOCAzNDAuNTc0IDE5Ni41MzkgMzM5Ljc1NUMxOTYuNTM5IDMzOS43NTUgMjA1LjM1NSAzMzYuMzMxIDIwNy40MDMgMzMzLjY2OEMyMDcuNDAzIDMzMy42NjggMjE0LjM2NyAzMjguOTU3IDIxNS44IDMyOC43NTNDMjE3LjIzNCAzMjguNTQ4IDIzMS4xOTQgMzI0Ljg2MSAyMzEuMzk5IDMyMy42MzNDMjMxLjYwNCAzMjIuNDA0IDI2NS42NyAzMDkuODIzIDI3MC4wOSAzMTMuMDEzQzI3My4wMDEgMzE1LjExNCAyNjMuMSAzMTMuNDM3IDI1My40NjYgMzE3Ljg0N0MyNTIuMTExIDMxOC40NjcgMjE4LjI1OCAzMzMuMDU0IDIxNC45ODEgMzMzLjY2OEMyMTEuNzA0IDMzNC4yODMgMjA1Ljc2NSAzMzguMTc0IDIwMy4zMDcgMzM4Ljc4OEMyMDAuODUgMzM5LjQwMyAxOTYuNTIgMzQxLjQwMyAxOTYuNTIgMzQxLjQwM3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xODguNiAzNDMuNjAxQzE4OC42IDM0My42MDEgMTkzLjggMzQzLjIwMSAxOTIuNiAzNDQuODAxQzE5MS40IDM0Ni40MDEgMTg5IDM0NS42MDEgMTg5IDM0NS42MDFMMTg4LjYgMzQzLjYwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xODEuNCAzNDUuMjAxQzE4MS40IDM0NS4yMDEgMTg2LjYgMzQ0LjgwMSAxODUuNCAzNDYuNDAxQzE4NC4yIDM0OC4wMDEgMTgxLjggMzQ3LjIwMSAxODEuOCAzNDcuMjAxTDE4MS40IDM0NS4yMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTcxIDM0Ni44MDFDMTcxIDM0Ni44MDEgMTc2LjIgMzQ2LjQwMSAxNzUgMzQ4LjAwMUMxNzMuOCAzNDkuNjAxIDE3MS40IDM0OC44MDEgMTcxLjQgMzQ4LjgwMUwxNzEgMzQ2LjgwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNjMuNCAzNDcuNjAxQzE2My40IDM0Ny42MDEgMTY4LjYgMzQ3LjIwMSAxNjcuNCAzNDguODAxQzE2Ni4yIDM1MC40MDEgMTYzLjggMzQ5LjYwMSAxNjMuOCAzNDkuNjAxTDE2My40IDM0Ny42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjAxLjggMzA4LjAwMUMyMDEuOCAzMDguMDAxIDIwNi4yIDMwOC4wMDEgMjA1IDMwOS42MDFDMjAzLjggMzExLjIwMSAyMDAuNiAzMTAuODAxIDIwMC42IDMxMC44MDFMMjAxLjggMzA4LjAwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xOTEuOCAzMTMuNjAxQzE5MS44IDMxMy42MDEgMTk4LjMwNiAzMTEuNDYgMTk1LjggMzE0LjgwMUMxOTQuNiAzMTYuNDAxIDE5Mi4yIDMxNS42MDEgMTkyLjIgMzE1LjYwMUwxOTEuOCAzMTMuNjAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE4MC42IDMxOC40MDFDMTgwLjYgMzE4LjQwMSAxODUuOCAzMTguMDAxIDE4NC42IDMxOS42MDFDMTgzLjQgMzIxLjIwMSAxODEgMzIwLjQwMSAxODEgMzIwLjQwMUwxODAuNiAzMTguNDAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE3MyAzMjQuNDAxQzE3MyAzMjQuNDAxIDE3OC4yIDMyNC4wMDEgMTc3IDMyNS42MDFDMTc1LjggMzI3LjIwMSAxNzMuNCAzMjYuNDAxIDE3My40IDMyNi40MDFMMTczIDMyNC40MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTY2LjIgMzI5LjIwMUMxNjYuMiAzMjkuMjAxIDE3MS40IDMyOC44MDEgMTcwLjIgMzMwLjQwMUMxNjkgMzMyLjAwMSAxNjYuNiAzMzEuMjAxIDE2Ni42IDMzMS4yMDFMMTY2LjIgMzI5LjIwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMDUuMjgyIDMzNS41OThDMjA1LjI4MiAzMzUuNTk4IDIxMi4yMDMgMzM1LjA2NiAyMTAuNjA2IDMzNy4xOTVDMjA5LjAwOSAzMzkuMzI1IDIwNS44MTQgMzM4LjI2IDIwNS44MTQgMzM4LjI2TDIwNS4yODIgMzM1LjU5OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMTUuNjgyIDMzMC43OThDMjE1LjY4MiAzMzAuNzk4IDIyMi42MDMgMzMwLjI2NiAyMjEuMDA2IDMzMi4zOTVDMjE5LjQwOSAzMzQuNTI1IDIxNi4yMTQgMzMzLjQ2IDIxNi4yMTQgMzMzLjQ2TDIxNS42ODIgMzMwLjc5OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMjYuNDgyIDMyNi4zOThDMjI2LjQ4MiAzMjYuMzk4IDIzMy40MDMgMzI1Ljg2NiAyMzEuODA2IDMyNy45OTVDMjMwLjIwOSAzMzAuMTI1IDIyNy4wMTQgMzI5LjA2IDIyNy4wMTQgMzI5LjA2TDIyNi40ODIgMzI2LjM5OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMzYuODgyIDMyMS41OThDMjM2Ljg4MiAzMjEuNTk4IDI0My44MDMgMzIxLjA2NiAyNDIuMjA2IDMyMy4xOTVDMjQwLjYwOSAzMjUuMzI1IDIzNy40MTQgMzI0LjI2IDIzNy40MTQgMzI0LjI2TDIzNi44ODIgMzIxLjU5OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMDkuMjgyIDMwMy41OThDMjA5LjI4MiAzMDMuNTk4IDIxNi4yMDMgMzAzLjA2NiAyMTQuNjA2IDMwNS4xOTVDMjEzLjAwOSAzMDcuMzI1IDIwOS4wMTQgMzA3LjA2IDIwOS4wMTQgMzA3LjA2TDIwOS4yODIgMzAzLjU5OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMTkuMjgyIDMwMC4zOThDMjE5LjI4MiAzMDAuMzk4IDIyNi4yMDMgMjk5Ljg2NiAyMjQuNjA2IDMwMS45OTVDMjIzLjAwOSAzMDQuMTI1IDIxOC42MTQgMzAzLjg2IDIxOC42MTQgMzAzLjg2TDIxOS4yODIgMzAwLjM5OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xOTYuNiAzNDAuNDAxQzE5Ni42IDM0MC40MDEgMjAxLjggMzQwLjAwMSAyMDAuNiAzNDEuNjAxQzE5OS40IDM0My4yMDEgMTk3IDM0Mi40MDEgMTk3IDM0Mi40MDFMMTk2LjYgMzQwLjQwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjOTkyNjAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xMjMuNCAyNDEuMkMxMjMuNCAyNDEuMiAxMTkgMjUwIDExOC42IDI1My4yQzExOC42IDI1My4yIDExOS40IDI0NC40IDEyMC42IDI0Mi40QzEyMS44IDI0MC40IDEyMy40IDI0MS4yIDEyMy40IDI0MS4yeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICM5OTI2MDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEwNSAyNTUuMkMxMDUgMjU1LjIgMTAxLjggMjY5LjYgMTAyLjIgMjcyLjRDMTAyLjIgMjcyLjQgMTAxIDI2MC44IDEwMS40IDI1OS42QzEwMS44IDI1OC40IDEwNSAyNTUuMiAxMDUgMjU1LjJ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTI1LjggMTgwLjZMMTI1LjYgMTgzLjhMMTIzLjQgMTg0QzEyMy40IDE4NCAxMzcuNiAxOTYuNiAxMzguMiAyMDQuMkMxMzguMiAyMDQuMiAxMzkgMTk2IDEyNS44IDE4MC42eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEyOS43ODQgMTgxLjg2NUMxMjkuMzUzIDE4MS40NDkgMTI5LjU3MiAxODAuNzA0IDEyOS4xNjQgMTgwLjQ0NEMxMjguMzU1IDE3OS45MjggMTMwLjQ2MiAxNzkuODcxIDEzMC4yMzQgMTc5LjE1NUMxMjkuODUxIDE3Ny45NDkgMTMwLjAzOCAxNzcuOTI4IDEyOS45MTYgMTc2LjY1MkMxMjkuODU5IDE3Ni4wNTQgMTMwLjQ0NyAxNzQuNTE0IDEzMC44MzIgMTc0LjA3NEMxMzIuMjc4IDE3Mi40MjIgMTMwLjk1NCAxNjkuNDkgMTMyLjU5NCAxNjcuOTM5QzEzMi44OTggMTY3LjY1IDEzMy4yNzQgMTY3LjA5OCAxMzMuNTU5IDE2Ni42OEMxMzQuMjE4IDE2NS43MTcgMTM1LjQwMiAxNjUuMjI5IDEzNi4zNTIgMTY0LjQwMUMxMzYuNjcgMTY0LjEyNSAxMzYuNDY5IDE2My4yOTggMTM3LjAzOCAxNjMuMzlDMTM3Ljc1MiAxNjMuNTA1IDEzOC45OTMgMTYzLjM3NSAxMzguOTQ4IDE2NC4yMTZDMTM4LjgzNSAxNjYuMzM2IDEzNy41MDYgMTY4LjA1NiAxMzYuMjI2IDE2OS43MjRDMTM2LjY3NyAxNzAuNDI4IDEzNi4yMTkgMTcxLjA2MyAxMzUuOTM1IDE3MS42MkMxMzQuNiAxNzQuMjQgMTM0Ljc4OSAxNzcuMDgxIDEzNC42MTUgMTc5LjkyMUMxMzQuNjEgMTgwLjAwNiAxMzQuMzAzIDE4MC4wODQgMTM0LjMxMSAxODAuMTM3QzEzNC42NjQgMTgyLjQ3MiAxMzUuMjQ4IDE4NC42NzEgMTM2LjEyNyAxODYuOUMxMzYuNDkzIDE4Ny44MyAxMzYuOTY0IDE4OC43MjUgMTM3LjExNCAxODkuNjUyQzEzNy4yMjUgMTkwLjMzOCAxMzcuMzI4IDE5MS4xNzEgMTM2LjkyIDE5MS44NzZDMTM4Ljk1NSAxOTQuNzY2IDEzNy42NDYgMTk3LjQxNyAxMzguODE1IDIwMC45NDhDMTM5LjAyMiAyMDEuNTczIDE0MC43MTQgMjAzLjQ4NyAxNDAuMjUxIDIwMy4zMjZDMTM3LjczOCAyMDIuNDU1IDEzNy42MjYgMjAyLjA1NyAxMzcuNDQ5IDIwMS4zMDRDMTM3LjMwMyAyMDAuNjgxIDEzNi45NzMgMTk5LjMwNCAxMzYuNzM2IDE5OC43MDJDMTM2LjY3MiAxOTguNTM4IDEzNi41MDEgMTk2LjY1NCAxMzYuNDIzIDE5Ni41MzJDMTM0LjkxIDE5NC4xNSAxMzYuMjY4IDE5NC4zMjYgMTM0Ljg5OCAxOTEuOTY4QzEzMy40NyAxOTEuMjg4IDEzMi41MDQgMTkwLjE4NCAxMzEuMzgxIDE4OS4wMjJDMTMxLjE4MyAxODguODE4IDEzMi4zMjYgMTg4LjA5NCAxMzIuMTQ1IDE4Ny44ODFDMTMxLjA1MyAxODYuNTkyIDEyOS45IDE4NS44MjUgMTMwLjIzNiAxODQuMzMyQzEzMC4zOTEgMTgzLjY0MiAxMzAuNTI4IDE4Mi41ODUgMTI5Ljc4NCAxODEuODY1eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEyNi4yIDE4My42QzEyNi4yIDE4My42IDEyNi42IDE5MC40IDEyOSAxOTJDMTMxLjQgMTkzLjYgMTMwLjIgMTkyLjggMTI3IDE5MS42QzEyMy44IDE5MC40IDEyNSAxODkuNiAxMjUgMTg5LjZDMTI1IDE4OS42IDEyMi4yIDE5MCAxMjQuNiAxOTJDMTI3IDE5NCAxMzAuNiAxOTYuNCAxMjkgMTk2LjRDMTI3LjQgMTk2LjQgMTE5LjggMTkyLjQgMTE5LjggMTg5LjZDMTE5LjggMTg2LjggMTE4LjggMTgyLjcgMTE4LjggMTgyLjdDMTE4LjggMTgyLjcgMTE5LjkgMTgxLjkgMTI0LjcgMTgyQzEyNC43IDE4MiAxMjYuMSAxODIuNyAxMjYuMiAxODMuNnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTI1LjQgMjAyLjJDMTI1LjQgMjAyLjIgMTE2Ljg4IDE5OS40MDkgOTguNCAyMDIuOEM5OC40IDIwMi44IDEwNy40MzEgMjAwLjcyMiAxMjYuMiAyMDNDMTM2LjUgMjA0LjI1IDEyNS40IDIwMi4yIDEyNS40IDIwMi4yeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xMjcuNDk4IDIwMi4xMjlDMTI3LjQ5OCAyMDIuMTI5IDExOS4yNTIgMTk4LjYxMSAxMDAuNTQ3IDIwMC4zOTJDMTAwLjU0NyAyMDAuMzkyIDEwOS43MjUgMTk5LjEwMyAxMjguMjI2IDIwMi45OTVDMTM4LjM4IDIwNS4xMzEgMTI3LjQ5OCAyMDIuMTI5IDEyNy40OTggMjAyLjEyOXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTI5LjI4NiAyMDIuMjIyQzEyOS4yODYgMjAyLjIyMiAxMjEuMzI0IDE5OC4xMDEgMTAyLjUzOSAxOTguNDg2QzEwMi41MzkgMTk4LjQ4NiAxMTEuNzg3IDE5Ny44ODIgMTI5Ljk0OCAyMDMuMTRDMTM5LjkxNCAyMDYuMDI1IDEyOS4yODYgMjAyLjIyMiAxMjkuMjg2IDIwMi4yMjJ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTEzMC41NTYgMjAyLjQ0NUMxMzAuNTU2IDIwMi40NDUgMTIzLjczMiAxOTguMTM4IDEwNi44NTggMTk3LjA0QzEwNi44NTggMTk3LjA0IDExNS4xOTcgMTk3LjIxIDEzMS4wNzggMjAzLjMxOUMxMzkuNzk0IDIwNi42NzIgMTMwLjU1NiAyMDIuNDQ1IDEzMC41NTYgMjAyLjQ0NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjQ1Ljg0IDIxMi45NjFDMjQ1Ljg0IDIxMi45NjEgMjQ0LjkxIDIxMy42MDUgMjQ1LjEyNCAyMTIuNDI0QzI0NS4zMzkgMjExLjI0MyAyNzMuNTQ3IDE5OC4wNzMgMjc3LjE2MSAxOTguMzIzQzI3Ny4xNjEgMTk4LjMyMyAyNDYuOTEzIDIxMS41MjkgMjQ1Ljg0IDIxMi45NjF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI0Mi40NDYgMjEzLjZDMjQyLjQ0NiAyMTMuNiAyNDEuNTcgMjE0LjMxNSAyNDEuNjkxIDIxMy4xMjFDMjQxLjgxMiAyMTEuOTI3IDI2OC44OTkgMTk2LjU4MiAyNzIuNTIxIDE5Ni41NDhDMjcyLjUyMSAxOTYuNTQ4IDI0My40MDQgMjEyLjA4OSAyNDIuNDQ2IDIxMy42eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMzkuMTYgMjE0Ljk3NUMyMzkuMTYgMjE0Ljk3NSAyMzguMzMyIDIxNS43NDcgMjM4LjM3NCAyMTQuNTQ3QzIzOC40MTYgMjEzLjM0OCAyNTguMjMzIDE5Ny44NTEgMjY4LjA0NSAxOTUuOTc3QzI2OC4wNDUgMTk1Ljk3NyAyNTAuMDE1IDIwNC4xMDQgMjM5LjE2IDIxNC45NzV6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIzNi4yODQgMjE2LjgzOEMyMzYuMjg0IDIxNi44MzggMjM1LjUzOSAyMTcuNTMyIDIzNS41NzcgMjE2LjQ1M0MyMzUuNjE1IDIxNS4zNzMgMjUzLjQ0OSAyMDEuNDI2IDI2Mi4yOCAxOTkuNzRDMjYyLjI4IDE5OS43NCAyNDYuMDU0IDIwNy4wNTQgMjM2LjI4NCAyMTYuODM4eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIwNC42IDM2NC44MDFDMjA0LjYgMzY0LjgwMSAxODkuNCAzNjIuNDAxIDIwNi4yIDM2MC44MDFDMjA2LjIgMzYwLjgwMSAyMjQuMiAzNTguODAxIDIyOC4yIDM1My42MDFDMjI4LjIgMzUzLjYwMSAyNDEuOCAzNDQuNDAxIDI0NC42IDM0NC4wMDFDMjQ3LjQgMzQzLjYwMSAyNjMuOCAzNDAuMDAxIDI2NC4yIDMzNy42MDFDMjY0LjYgMzM1LjIwMSAyNzAuNiAzMzIuODAxIDI3Mi4yIDMzMy42MDFDMjczLjggMzM0LjQwMSAyNzMuOCAzNDMuNjAxIDI3MSAzNDQuNDAxQzI2OC4yIDM0NS4yMDEgMjQ5LjQgMzUyLjQwMSAyNDMgMzUzLjYwMUMyMzYuNiAzNTQuODAxIDIyNSAzNjIuNDAxIDIyMC4yIDM2My42MDFDMjE1LjQgMzY0LjgwMSAyMDQuNiAzNjQuODAxIDIwNC42IDM2NC44MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjc3LjYgMzI3LjQwMUMyNzcuNiAzMjcuNDAxIDI3NC42IDMyOS4wMDEgMjczLjQgMzMxLjYwMUMyNzMuNCAzMzEuNjAxIDI2NyAzNDIuMjAxIDI1Mi44IDM0NS40MDFDMjUyLjggMzQ1LjQwMSAyMjkuOCAzNTQuNDAxIDIyMiAzNTYuNDAxQzIyMiAzNTYuNDAxIDIwOC42IDM2MS40MDEgMjAxLjIgMzYwLjYwMUMyMDEuMiAzNjAuNjAxIDE5NC4yIDM2MC44MDEgMjAwLjQgMzYyLjQwMUMyMDAuNCAzNjIuNDAxIDIyMC42IDM2MC40MDEgMjI0IDM1OC42MDFDMjI0IDM1OC42MDEgMjM5LjYgMzUzLjQwMSAyNDIuNiAzNTAuODAxQzI0NS42IDM0OC4yMDEgMjYzLjggMzQzLjIwMSAyNjYgMzQxLjIwMUMyNjguMiAzMzkuMjAxIDI3OCAzMzAuODAxIDI3Ny42IDMyNy40MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjE4Ljg4MiAzNTguOTExQzIxOC44ODIgMzU4LjkxMSAyMjQuMTExIDM1OC42ODUgMjIyLjk1OCAzNjAuMjM0QzIyMS44MDUgMzYxLjc4NCAyMTkuMzU3IDM2MC45MSAyMTkuMzU3IDM2MC45MUwyMTguODgyIDM1OC45MTF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjExLjY4IDM2MC4yNjNDMjExLjY4IDM2MC4yNjMgMjE2LjkwOCAzNjAuMDM3IDIxNS43NTYgMzYxLjU4NkMyMTQuNjAzIDM2My4xMzYgMjEyLjE1NSAzNjIuMjYzIDIxMi4xNTUgMzYyLjI2M0wyMTEuNjggMzYwLjI2M3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMDEuMjUxIDM2MS41MTFDMjAxLjI1MSAzNjEuNTExIDIwNi40OCAzNjEuMjg0IDIwNS4zMjcgMzYyLjgzNEMyMDQuMTc0IDM2NC4zODMgMjAxLjcyNiAzNjMuNTEgMjAxLjcyNiAzNjMuNTFMMjAxLjI1MSAzNjEuNTExeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE5My42MTcgMzYyLjA1NUMxOTMuNjE3IDM2Mi4wNTUgMTk4Ljg0NiAzNjEuODI5IDE5Ny42OTMgMzYzLjM3OEMxOTYuNTQgMzY0LjkyOCAxOTQuMDkyIDM2NC4wNTQgMTk0LjA5MiAzNjQuMDU0TDE5My42MTcgMzYyLjA1NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMzUuNDE1IDM1MS41MTNDMjM1LjQxNSAzNTEuNTEzIDI0Mi4zNzUgMzUxLjIxMiAyNDAuODQgMzUzLjI3NEMyMzkuMzA2IDM1NS4zMzYgMjM2LjA0NyAzNTQuMTc0IDIzNi4wNDcgMzU0LjE3NEwyMzUuNDE1IDM1MS41MTN6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjQ1LjczIDM0Ny4wODhDMjQ1LjczIDM0Ny4wODggMjUxLjY4OSAzNDMuNzg3IDI1MS4xNTUgMzQ4Ljg0OUMyNTAuODg1IDM1MS40MDUgMjQ2LjM2MiAzNDkuNzQ5IDI0Ni4zNjIgMzQ5Ljc0OUwyNDUuNzMgMzQ3LjA4OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNTQuODYyIDM0NC4yNzRDMjU0Ljg2MiAzNDQuMjc0IDI2Mi4wMjEgMzQwLjU3MyAyNjAuMjg3IDM0Ni4wMzVDMjU5LjUwOSAzNDguNDg1IDI1NS40OTMgMzQ2LjkzNSAyNTUuNDkzIDM0Ni45MzVMMjU0Ljg2MiAzNDQuMjc0eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI2NC4zNzYgMzM5LjQ0OUMyNjQuMzc2IDMzOS40NDkgMjY4LjczNSAzMzQuNTQ4IDI2OS44MDEgMzQxLjIxQzI3MC4yMDcgMzQzLjc0OCAyNjUuMDA4IDM0Mi4xMSAyNjUuMDA4IDM0Mi4xMUwyNjQuMzc2IDMzOS40NDl6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjI2LjgzNCAzNTUuOTk3QzIyNi44MzQgMzU1Ljk5NyAyMzIuMDYyIDM1NS43NyAyMzAuOTEgMzU3LjMyQzIyOS43NTcgMzU4Ljg2OSAyMjcuMzA4IDM1Ny45OTYgMjI3LjMwOCAzNTcuOTk2TDIyNi44MzQgMzU1Ljk5N3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjYyLjQzNCAyMzQuNjAzQzI2Mi40MzQgMjM0LjYwMyAyNjEuNzA4IDIzNS4yNjggMjYxLjcwNyAyMzQuMTk3QzI2MS43MDcgMjMzLjEyNyAyNzkuMTkxIDIxOS44NjMgMjg4LjAzNCAyMTguNDc5QzI4OC4wMzQgMjE4LjQ3OSAyNzEuOTM1IDIyNS4yMDggMjYyLjQzNCAyMzQuNjAzeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTI2NS40IDI5OC40QzI2NS40IDI5OC40IDI4Ny40MDEgMzIwLjgwMSAyOTYuNjAxIDMyNC40MDFDMjk2LjYwMSAzMjQuNDAxIDMwNS44MDEgMzM1LjYwMSAzMDEuODAxIDM2MS42MDFDMzAxLjgwMSAzNjEuNjAxIDI5OC42MDEgMzY5LjIwMSAyOTUuNDAxIDM0OC40MDFDMjk1LjQwMSAzNDguNDAxIDI5OC42MDEgMzIzLjIwMSAyODcuNDAxIDMzOS4yMDFDMjg3LjQwMSAzMzkuMjAxIDI3OSAzMjkuMzAxIDI4NS40IDMyOS42MDFDMjg1LjQgMzI5LjYwMSAyODguNjAxIDMzMS42MDEgMjg5LjAwMSAzMzAuMDAxQzI4OS40MDEgMzI4LjQwMSAyODEuNCAzMTQuODAxIDI2NC4yIDMwMC40QzI0NyAyODYgMjY1LjQgMjk4LjQgMjY1LjQgMjk4LjR6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIwNyAzMzcuMjAxQzIwNyAzMzcuMjAxIDIwNi44IDMzNS40MDEgMjA4LjYgMzM2LjIwMUMyMTAuNCAzMzcuMDAxIDMwNC42MDEgMzQzLjIwMSAzMzYuMjAxIDM2Ny4yMDFDMzM2LjIwMSAzNjcuMjAxIDI5MS4wMDEgMzQ0LjAwMSAyMDcgMzM3LjIwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjE3LjQgMzMyLjgwMUMyMTcuNCAzMzIuODAxIDIxNy4yIDMzMS4wMDEgMjE5IDMzMS44MDFDMjIwLjggMzMyLjYwMSAzNTcuNDAxIDMzMS42MDEgMzgxLjAwMSAzNjQuMDAxQzM4MS4wMDEgMzY0LjAwMSAzNTkuMDAxIDMzOC44MDEgMjE3LjQgMzMyLjgwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjI5IDMyOC44MDFDMjI5IDMyOC44MDEgMjI4LjggMzI3LjAwMSAyMzAuNiAzMjcuODAxQzIzMi40IDMyOC42MDEgNDA1LjgwMSAzMTUuNjAxIDQyOS40MDEgMzQ4LjAwMUM0MjkuNDAxIDM0OC4wMDEgNDE5LjgwMSAzMjIuNDAxIDIyOSAzMjguODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMzkgMzI0LjAwMUMyMzkgMzI0LjAwMSAyMzguOCAzMjIuMjAxIDI0MC42IDMyMy4wMDFDMjQyLjQgMzIzLjgwMSAzNjQuNjAxIDI4NS4yIDM4OC4yMDEgMzE3LjYwMUMzODguMjAxIDMxNy42MDEgMzc0LjgwMSAyOTMgMjM5IDMyNC4wMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE4MSAzNDYuODAxQzE4MSAzNDYuODAxIDE4MC44IDM0NS4wMDEgMTgyLjYgMzQ1LjgwMUMxODQuNCAzNDYuNjAxIDIwMi4yIDM0OC44MDEgMjA0LjIgMzg3LjYwMUMyMDQuMiAzODcuNjAxIDE5NyAzNDUuNjAxIDE4MSAzNDYuODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNzIuMiAzNDguNDAxQzE3Mi4yIDM0OC40MDEgMTcyIDM0Ni42MDEgMTczLjggMzQ3LjQwMUMxNzUuNiAzNDguMjAxIDE4OS44IDM0My42MDEgMTg3IDM4Mi40MDFDMTg3IDM4Mi40MDEgMTg4LjIgMzQ3LjIwMSAxNzIuMiAzNDguNDAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNjQuMiAzNDguODAxQzE2NC4yIDM0OC44MDEgMTY0IDM0Ny4wMDEgMTY1LjggMzQ3LjgwMUMxNjcuNiAzNDguNjAxIDE4MyAzNDkuMjAxIDE3MC42IDM3MS42MDFDMTcwLjYgMzcxLjYwMSAxODAuMiAzNDcuNjAxIDE2NC4yIDM0OC44MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIxMS41MjYgMzA0LjQ2NUMyMTEuNTI2IDMwNC40NjUgMjExLjA4MiAzMDYuNDY0IDIxMi42MzEgMzA1LjI0N0MyMjguNjk5IDI5Mi42MjIgMjYxLjE0MSAyMzMuNzIgMzE2LjgyNiAyMjguMDg2QzMxNi44MjYgMjI4LjA4NiAyNzguNTE4IDIxNS45NzYgMjExLjUyNiAzMDQuNDY1eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMjIuNzI2IDMwMi42NjVDMjIyLjcyNiAzMDIuNjY1IDIyMS4zNjMgMzAxLjQ3MiAyMjMuMjMxIDMwMC44NDdDMjI1LjA5OSAzMDAuMjIyIDMzNy41NDEgMjI3LjcyIDM3Ni44MjYgMjM1LjY4NkMzNzYuODI2IDIzNS42ODYgMzQ5LjcxOSAyMjguMTc2IDIyMi43MjYgMzAyLjY2NXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjAxLjg4NSAzMDguNzY3QzIwMS44ODUgMzA4Ljc2NyAyMDEuMzc2IDMxMC4zNjYgMjAzLjA4NyAzMDkuMzlDMjEyLjA2MiAzMDQuMjcgMjE1LjY3NyAyNDcuMDU5IDI1OS4yNTQgMjQ1LjgwNEMyNTkuMjU0IDI0NS44MDQgMjI2Ljg0MyAyMzEuMDkgMjAxLjg4NSAzMDguNzY3eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xODEuOTYyIDMxOS43OTNDMTgxLjk2MiAzMTkuNzkzIDE4MC44ODUgMzIxLjA3OSAxODIuODM4IDMyMC44MjVDMTkzLjA4NCAzMTkuNDkzIDIxNC40ODkgMjc4LjIyMiAyNTguOTI4IDI4My4zMDFDMjU4LjkyOCAyODMuMzAxIDIyNi45NjIgMjY4Ljk1NSAxODEuOTYyIDMxOS43OTN6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE5My4yIDMxMy42NjdDMTkzLjIgMzEzLjY2NyAxOTIuMzg5IDMxNS4xMzYgMTk0LjI1OCAzMTQuNTExQzIwNC4wNTcgMzExLjIzNyAyMTcuMTQxIDI2Ni42MjUgMjYxLjcyOSAyNjMuMDc4QzI2MS43MjkgMjYzLjA3OCAyMjcuNjAzIDI1NS4xMzUgMTkzLjIgMzEzLjY2N3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTc0LjkyMiAzMjQuOTEyQzE3NC45MjIgMzI0LjkxMiAxNzQuMDQ5IDMyNS45NTQgMTc1LjYzMSAzMjUuNzQ4QzE4My45MyAzMjQuNjY5IDIwMS4yNjggMjkxLjI0IDIzNy4yNjQgMjk1LjM1NEMyMzcuMjY0IDI5NS4zNTQgMjExLjM3MSAyODMuNzM0IDE3NC45MjIgMzI0LjkxMnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTY3LjMyMyAzMzAuODIxQzE2Ny4zMjMgMzMwLjgyMSAxNjYuMzE4IDMzMS44NjYgMTY3LjkwOSAzMzEuNzQ4QzE3Mi4wNzcgMzMxLjQzOSAyMDIuNzE1IDI5OC4zNiAyMjEuMTgzIDMxMy44NjJDMjIxLjE4MyAzMTMuODYyIDIwOS4xNjggMjk1LjEzOSAxNjcuMzIzIDMzMC44MjF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIzNi44NTUgMjk4Ljg5OEMyMzYuODU1IDI5OC44OTggMjM1LjY1NCAyOTcuNTQzIDIzNy41ODYgMjk3LjE1OEMyMzkuNTE4IDI5Ni43NzQgMzYwLjIyMSAyMzkuMDYxIDM5OC4xODQgMjUxLjkyN0MzOTguMTg0IDI1MS45MjcgMzcyLjI0MyAyNDEuMDUzIDIzNi44NTUgMjk4Ljg5OHonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjAzLjQgMzYzLjIwMUMyMDMuNCAzNjMuMjAxIDIwMy4yIDM2MS40MDEgMjA1IDM2Mi4yMDFDMjA2LjggMzYzLjAwMSAyMjIuMiAzNjMuNjAxIDIwOS44IDM4Ni4wMDFDMjA5LjggMzg2LjAwMSAyMTkuNCAzNjIuMDAxIDIwMy40IDM2My4yMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIxMy44IDM2MS42MDFDMjEzLjggMzYxLjYwMSAyMTMuNiAzNTkuODAxIDIxNS40IDM2MC42MDFDMjE3LjIgMzYxLjQwMSAyMzUgMzYzLjYwMSAyMzcgNDAyLjQwMUMyMzcgNDAyLjQwMSAyMjkuOCAzNjAuNDAxIDIxMy44IDM2MS42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIyMC42IDM2MC4wMDFDMjIwLjYgMzYwLjAwMSAyMjAuNCAzNTguMjAxIDIyMi4yIDM1OS4wMDFDMjI0IDM1OS44MDEgMjQ4LjYgMzYzLjIwMSAyNzIuMiAzOTUuNjAxQzI3Mi4yIDM5NS42MDEgMjM2LjYgMzU4LjgwMSAyMjAuNiAzNjAuMDAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMjguMjI1IDM1Ny45NzJDMjI4LjIyNSAzNTcuOTcyIDIyNy43ODggMzU2LjIxNCAyMjkuNjc4IDM1Ni43NjhDMjMxLjU2OCAzNTcuMzIyIDI1Mi4wMDIgMzU1LjQyMyAyOTAuMDk5IDM4OS41OTlDMjkwLjA5OSAzODkuNTk5IDI0My45MjQgMzU0LjY1NiAyMjguMjI1IDM1Ny45NzJ6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIzOC42MjUgMzUzLjU3MkMyMzguNjI1IDM1My41NzIgMjM4LjE4OCAzNTEuODE0IDI0MC4wNzggMzUyLjM2OEMyNDEuOTY4IDM1Mi45MjIgMjc2LjgwMiAzNTcuNDIzIDMyOC40OTkgMzkyLjM5OUMzMjguNDk5IDM5Mi4zOTkgMjU0LjMyNCAzNTAuMjU2IDIzOC42MjUgMzUzLjU3MnonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMScpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTk4LjIgMzQyLjAwMUMxOTguMiAzNDIuMDAxIDE5OCAzNDAuMjAxIDE5OS44IDM0MS4wMDFDMjAxLjYgMzQxLjgwMSAyNTUgMzQ0LjQwMSAyODUuNCAzNzEuMjAxQzI4NS40IDM3MS4yMDEgMjUwLjQ5OSAzNDYuNDI2IDE5OC4yIDM0Mi4wMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE4OC4yIDM0Ni4wMDFDMTg4LjIgMzQ2LjAwMSAxODggMzQ0LjIwMSAxODkuOCAzNDUuMDAxQzE5MS42IDM0NS44MDEgMjE2LjIgMzQ5LjIwMSAyMzkuOCAzODEuNjAxQzIzOS44IDM4MS42MDEgMjA0LjIgMzQ0LjgwMSAxODguMiAzNDYuMDAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNDkuNTAzIDM0OC45NjJDMjQ5LjUwMyAzNDguOTYyIDI0OC45MzggMzQ3LjI0MSAyNTAuODY0IDM0Ny42NTVDMjUyLjc5IDM0OC4wNjggMjg3Ljg2IDM1MC4wMDQgMzQxLjk4MSAzODEuMDk4QzM0MS45ODEgMzgxLjA5OCAyNjQuMzE3IDM0Ni43MDQgMjQ5LjUwMyAzNDguOTYyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNTcuOTAzIDM0Ni41NjJDMjU3LjkwMyAzNDYuNTYyIDI1Ny4zMzggMzQ0Ljg0MSAyNTkuMjY0IDM0NS4yNTVDMjYxLjE5IDM0NS42NjggMjk2LjI2IDM0Ny42MDQgMzUwLjM4MSAzNzguNjk4QzM1MC4zODEgMzc4LjY5OCAyNzMuMzE3IDM0My45MDQgMjU3LjkwMyAzNDYuNTYyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNjcuNTAzIDM0MS41NjJDMjY3LjUwMyAzNDEuNTYyIDI2Ni45MzggMzM5Ljg0MSAyNjguODY0IDM0MC4yNTVDMjcwLjc5IDM0MC42NjggMzEzLjg2IDM0NS4wMDQgNDAzLjU4MiAzNzkuMjk4QzQwMy41ODIgMzc5LjI5OCAyODIuOTE3IDMzOC45MDQgMjY3LjUwMyAzNDEuNTYyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE1Ni4yIDM0OC40MDFDMTU2LjIgMzQ4LjQwMSAxNjEuNCAzNDguMDAxIDE2MC4yIDM0OS42MDFDMTU5IDM1MS4yMDEgMTU2LjYgMzUwLjQwMSAxNTYuNiAzNTAuNDAxTDE1Ni4yIDM0OC40MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogIzAwMDAwMCcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTg3IDM2Mi40MDFDMTg3IDM2Mi40MDEgMTkyLjIgMzYyLjAwMSAxOTEgMzYzLjYwMUMxODkuOCAzNjUuMjAxIDE4Ny40IDM2NC40MDEgMTg3LjQgMzY0LjQwMUwxODcgMzYyLjQwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNzguMiAzNjIuMDAxQzE3OC4yIDM2Mi4wMDEgMTgzLjQgMzYxLjYwMSAxODIuMiAzNjMuMjAxQzE4MSAzNjQuODAxIDE3OC42IDM2NC4wMDEgMTc4LjYgMzY0LjAwMUwxNzguMiAzNjIuMDAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTgyLjgzMSAzNTAuMTgyQzgyLjgzMSAzNTAuMTgyIDg3Ljg3NiAzNTEuNTA1IDg2LjIxOCAzNTIuNjI0Qzg0LjU2MSAzNTMuNzQ0IDgyLjU1NCAzNTIuMjAyIDgyLjU1NCAzNTIuMjAyTDgyLjgzMSAzNTAuMTgyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTg0LjgzMSAzNDAuNTgyQzg0LjgzMSAzNDAuNTgyIDg5Ljg3NiAzNDEuOTA1IDg4LjIxOCAzNDMuMDI0Qzg2LjU2MSAzNDQuMTQ0IDg0LjU1NCAzNDIuNjAyIDg0LjU1NCAzNDIuNjAyTDg0LjgzMSAzNDAuNTgyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTc3LjYzMSAzMzYuMTgyQzc3LjYzMSAzMzYuMTgyIDgyLjY3NiAzMzcuNTA1IDgxLjAxOCAzMzguNjI0Qzc5LjM2MSAzMzkuNzQ0IDc3LjM1NCAzMzguMjAyIDc3LjM1NCAzMzguMjAyTDc3LjYzMSAzMzYuMTgyeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE1Ny40IDQxMS4yMDFDMTU3LjQgNDExLjIwMSAxNTUuOCA0MTEuMjAxIDE1MS44IDQxMy4yMDFDMTQ5LjggNDEzLjIwMSAxMzguNiA0MTYuODAxIDEzMyA0MjYuODAxQzEzMyA0MjYuODAxIDE0NS40IDQxNy4yMDEgMTU3LjQgNDExLjIwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yNDUuMTE2IDUwMy44NDdDMjQ1LjI1NyA1MDQuMTA1IDI0NS4zMTIgNTA0LjUyNSAyNDUuNjA0IDUwNC41NDJDMjQ2LjI2MiA1MDQuNTgyIDI0Ny40OTUgNTA0Ljg4MyAyNDcuMzcgNTA0LjI0N0MyNDYuNTIyIDQ5OS45NDEgMjQ1LjY0OCA0OTUuMDA0IDI0MS41MTUgNDkzLjE5N0MyNDAuODc2IDQ5Mi45MTggMjM5LjQzNCA0OTMuMzMxIDIzOS4zNiA0OTQuMjE1QzIzOS4yMzMgNDk1LjczOSAyMzkuMTE2IDQ5Ny4wODggMjM5LjQyNSA0OTguNTU0QzIzOS43MjUgNDk5Ljk3NSAyNDEuODgzIDQ5OS45ODUgMjQyLjggNDk4LjYwMUMyNDMuNzM2IDUwMC4yNzMgMjQ0LjE2OCA1MDIuMTE2IDI0NS4xMTYgNTAzLjg0N3onKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMzQuMDM4IDUwOC41ODFDMjM0Ljc4NiA1MDkuOTk0IDIzNC42NTkgNTExLjg1MyAyMzYuMDc0IDUxMi40MTZDMjM2LjgxNCA1MTIuNzEgMjM4LjY2NCA1MTEuNzM1IDIzOC4yNDYgNTEwLjY2MUMyMzcuNDQ0IDUwOC42IDIzNy4wNTYgNTA2LjM2MSAyMzUuNjY3IDUwNC41NUMyMzUuNDY3IDUwNC4yODggMjM1LjcwNyA1MDMuNzU1IDIzNS41NDcgNTAzLjQyN0MyMzQuOTUzIDUwMi4yMDcgMjMzLjgwOCA1MDEuNDcyIDIzMi40IDUwMS44MDFDMjMxLjI4NSA1MDQuMDA0IDIzMi40MzMgNTA2LjEzMyAyMzMuOTU1IDUwNy44NDJDMjM0LjA5MSA1MDcuOTk0IDIzMy45MjUgNTA4LjM3IDIzNC4wMzggNTA4LjU4MXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xOTQuNDM2IDUwMy4zOTFDMTk0LjMyOCA1MDMuMDE0IDE5NC4yOSA1MDIuNTUxIDE5NC40NTUgNTAyLjIzQzE5NC45ODYgNTAxLjE5NyAxOTUuNzc5IDUwMC4wNzUgMTk1LjQ0MiA0OTkuMDUzQzE5NS4wOTQgNDk3Ljk5NyAxOTMuOTc4IDQ5OC4xNzkgMTkzLjMyOCA0OTguNzQ4QzE5Mi4xOTMgNDk5Ljc0MiAxOTIuMTQ0IDUwMS41NjggMTkxLjQ1MyA1MDIuOTI3QzE5MS4yNTcgNTAzLjMxMyAxOTEuMzA4IDUwMy44ODYgMTkwLjg2NyA1MDQuMjc3QzE5MC4zOTMgNTA0LjY5OCAxODkuOTUzIDUwNi4yMjIgMTkwLjA0OSA1MDYuNzkzQzE5MC4xMDIgNTA3LjEwNiAxODkuOTE5IDUxNy4wMTQgMTkwLjE0MSA1MTYuNzUxQzE5MC43NiA1MTYuMDE4IDE5My44MSA1MDYuMjg0IDE5My44NzkgNTA1LjM5MkMxOTMuOTM2IDUwNC42NjEgMTk0LjY2OCA1MDQuMTk2IDE5NC40MzYgNTAzLjM5MXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNjguNzk4IDQ5Ni41OTlDMTcxLjQzMiA0OTQuMSAxNzQuMjIyIDQ5MS4xMzkgMTczLjc4IDQ4Ny40MjdDMTczLjY2NCA0ODYuNDUxIDE3MS44ODkgNDg2Ljk3OCAxNzEuNzAyIDQ4Ny44MjRDMTcwLjkgNDkxLjQ0OSAxNjguODYxIDQ5NC4xMSAxNjYuMjkzIDQ5Ni41MDJDMTY0LjA5NyA0OTguNTQ5IDE2Mi4yMzUgNTA0Ljg5MyAxNjIgNTA1LjQwMUMxNjUuNjk3IDUwMC4xNDUgMTY3Ljk1NCA0OTcuMzk5IDE2OC43OTggNDk2LjU5OXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNTUuMjI0IDQ5MC42MzVDMTU1Ljc0NyA0OTAuMjY1IDE1NS40NDUgNDg5Ljc3NCAxNTUuNjYyIDQ4OS40NDJDMTU2LjYxNSA0ODcuOTg0IDE1Ny45MTYgNDg2LjczOCAxNTcuOTM0IDQ4NUMxNTcuOTM3IDQ4NC43MjMgMTU3LjU1OSA0ODQuNDE0IDE1Ny4yMjQgNDg0LjYzOEMxNTYuOTQ3IDQ4NC44MjIgMTU2LjYwNSA0ODQuOTUyIDE1Ni40OTcgNDg1LjA4MkMxNTQuNDY3IDQ4Ny41MzEgMTUzLjA2NyA0OTAuMjAyIDE1MS42MjQgNDkzLjAxNEMxNTEuNDQxIDQ5My4zNzEgMTUwLjI5NyA0OTcuODYyIDE1MC42MSA0OTcuOTczQzE1MC44NDkgNDk4LjA1OCAxNTIuNTY5IDQ5My44NzcgMTUyLjc3OSA0OTMuNzYzQzE1NC4wNDIgNDkzLjA3NyAxNTQuMDU0IDQ5MS40NjIgMTU1LjIyNCA0OTAuNjM1eicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE3MS45NTcgNTEwLjE3OUMxNzIuNDAxIDUwOS4zMSAxNzMuOTc3IDUwOC4xMDggMTczLjg2NCA1MDcuMjE5QzE3My43NDYgNTA2LjI5MSAxNzQuMjE0IDUwNC44NDggMTczLjMwMiA1MDUuNTM2QzE3Mi4wNDUgNTA2LjQ4NCAxNjguNTk2IDUwNy44MzMgMTY4LjMyNiA1MTMuNjQxQzE2OC4zIDUxNC4yMTIgMTcxLjI3NCA1MTEuNTE5IDE3MS45NTcgNTEwLjE3OXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xODYuNCA0OTMuMDAxQzE4Ni44IDQ5Mi4zMzMgMTg3LjUwOCA0OTIuODA2IDE4Ny45NjcgNDkyLjU0M0MxODguNjE1IDQ5Mi4xNzEgMTg5LjIyNiA0OTEuNjEzIDE4OS41MTggNDkwLjk2NEMxOTAuNDg4IDQ4OC44MTUgMTkyLjI1NyA0ODYuOTk1IDE5Mi40IDQ4NC42MDFDMTkwLjkwOSA0ODMuMTk2IDE5MC4yMyA0ODUuMjM2IDE4OS42IDQ4Ni4yMDFDMTg4LjI3NyA0ODQuNTU0IDE4Ny4yNzggNDg2LjQyOCAxODUuOTc4IDQ4Ni45NDdDMTg1LjkwOCA0ODYuOTc1IDE4NS42OTUgNDg2LjYyOCAxODUuNjIgNDg2LjY1NUMxODQuNDQzIDQ4Ny4wOTUgMTgzLjc2MyA0ODguMTc2IDE4Mi43NjUgNDg4Ljk1N0MxODIuNTk0IDQ4OS4wOTEgMTgyLjE4OSA0ODguOTExIDE4Mi4wNDIgNDg5LjA0N0MxODEuMzkgNDg5LjY1IDE4MC40MTcgNDg5Ljk3NSAxODAuMTM3IDQ5MC42NTdDMTc5LjAyNyA0OTMuMzY0IDE3NS44ODcgNDk1LjQ1OSAxNzQgNTAzLjAwMUMxNzQuMzgxIDUwMy45MSAxNzguNTEyIDQ5Ni4zNTkgMTc4Ljk5OSA0OTUuNjYxQzE3OS44MzUgNDk0LjQ2NSAxNzkuOTUzIDQ5Ny4zMjIgMTgxLjIyOSA0OTYuNjU2QzE4MS4yOCA0OTYuNjI5IDE4MS40NjYgNDk2Ljg2NyAxODEuNiA0OTcuMDAxQzE4MS43OTQgNDk2LjcyMSAxODIuMDEyIDQ5Ni40OTIgMTgyLjQgNDk2LjYwMUMxODIuNCA0OTYuMjAxIDE4Mi4yNjYgNDk1LjY0NSAxODIuNDY3IDQ5NS40ODZDMTgzLjcwNCA0OTQuNTA5IDE4My42MiA0OTMuNDQxIDE4NC40IDQ5Mi4yMDFDMTg0Ljg1OCA0OTIuOTkgMTg1LjkxOSA0OTIuMjcxIDE4Ni40IDQ5My4wMDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMjQ2LjIgNTQ3LjQwMUMyNDYuMiA1NDcuNDAxIDI1My42IDUyNy4wMDEgMjQ5LjIgNTE1LjgwMUMyNDkuMiA1MTUuODAxIDI2MC42IDUzNy40MDEgMjU2IDU0OC42MDFDMjU2IDU0OC42MDEgMjU1LjYgNTM4LjIwMSAyNTEuNiA1MzMuMjAxQzI1MS42IDUzMy4yMDEgMjQ3LjYgNTQ2LjAwMSAyNDYuMiA1NDcuNDAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIzMS40IDU0NC44MDFDMjMxLjQgNTQ0LjgwMSAyMzYuOCA1MzYuMDAxIDIyOC44IDUxNy42MDFDMjI4LjggNTE3LjYwMSAyMjggNTM4LjAwMSAyMjEuMiA1NDkuMDAxQzIyMS4yIDU0OS4wMDEgMjM1LjQgNTI4LjgwMSAyMzEuNCA1NDQuODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIyMS40IDU0Mi44MDFDMjIxLjQgNTQyLjgwMSAyMjEuMiA1MjIuODAxIDIyMS42IDUxOS44MDFDMjIxLjYgNTE5LjgwMSAyMTcuOCA1MzYuNDAxIDIwNy42IDU0Ni4wMDFDMjA3LjYgNTQ2LjAwMSAyMjIgNTM0LjAwMSAyMjEuNCA1NDIuODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTIxMS44IDUxMC44MDFDMjExLjggNTEwLjgwMSAyMTcuOCA1MjQuNDAxIDIwNy44IDU0Mi44MDFDMjA3LjggNTQyLjgwMSAyMTQuMiA1MzAuNjAxIDIwOS40IDUyMy42MDFDMjA5LjQgNTIzLjYwMSAyMTIgNTIwLjIwMSAyMTEuOCA1MTAuODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE5Mi42IDU0Mi40MDFDMTkyLjYgNTQyLjQwMSAxOTEuNiA1MjYuODAxIDE5My40IDUyNC42MDFDMTkzLjQgNTI0LjYwMSAxOTMuNiA1MTguMjAxIDE5My4yIDUxNy4yMDFDMTkzLjIgNTE3LjIwMSAxOTcuMiA1MTEuMDAxIDE5Ny40IDUxOC40MDFDMTk3LjQgNTE4LjQwMSAxOTguOCA1MjYuMjAxIDIwMS42IDUzMC44MDFDMjAxLjYgNTMwLjgwMSAyMDUuMiA1MzYuMjAxIDIwNSA1NDIuNjAxQzIwNSA1NDIuNjAxIDE5NSA1MTIuNDAxIDE5Mi42IDU0Mi40MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTg5IDUxNC44MDFDMTg5IDUxNC44MDEgMTgyLjQgNTI1LjYwMSAxODAuNiA1NDQuNjAxQzE4MC42IDU0NC42MDEgMTc5LjIgNTM4LjQwMSAxODMgNTI0LjAwMUMxODMgNTI0LjAwMSAxODcuMiA1MDguNjAxIDE4OSA1MTQuODAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE2Ny4yIDUzNC42MDFDMTY3LjIgNTM0LjYwMSAxNzIuMiA1MjkuMjAxIDE3My42IDUyNC4yMDFDMTczLjYgNTI0LjIwMSAxNzcuMiA1MDguNDAxIDE3MC44IDUxNy4wMDFDMTcwLjggNTE3LjAwMSAxNzEgNTI1LjAwMSAxNjIuOCA1MzIuNDAxQzE2Mi44IDUzMi40MDEgMTY3LjYgNTMwLjAwMSAxNjcuMiA1MzQuNjAxeicpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J2ZpbGw6ICNjY2NjY2MnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE2MS40IDUyOS42MDFDMTYxLjQgNTI5LjYwMSAxNjQuOCA1MTIuMjAxIDE2NS42IDUxMS40MDFDMTY1LjYgNTExLjQwMSAxNjcuNCA1MDguMDAxIDE2NC42IDUxMS4yMDFDMTY0LjYgNTExLjIwMSAxNTUuOCA1MzAuNDAxIDE1MS44IDUzNy4wMDFDMTUxLjggNTM3LjAwMSAxNTkuOCA1MjcuODAxIDE2MS40IDUyOS42MDF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNMTU1LjYgNTEzLjAwMUMxNTUuNiA1MTMuMDAxIDE2Ny4yIDQ5MC42MDEgMTQ1LjQgNTE2LjQwMUMxNDUuNCA1MTYuNDAxIDE1Ni40IDUwNi42MDEgMTU1LjYgNTEzLjAwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNDAuMiA0OTguNDAxQzE0MC4yIDQ5OC40MDEgMTQ1IDQ3OS42MDEgMTQ3LjYgNDc5LjgwMUMxNDcuNiA0NzkuODAxIDE1NS44IDQ3MC44MDEgMTQ5LjIgNDgxLjQwMUMxNDkuMiA0ODEuNDAxIDE0My4yIDQ5MS4wMDEgMTQzLjggNTAwLjgwMUMxNDMuOCA1MDAuODAxIDE0My4yIDQ5MS4yMDEgMTQwLjIgNDk4LjQwMXonKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50KGcsIHN0eWxlPSdmaWxsOiAjY2NjY2NjJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J000NzAuNSA0ODdDNDcwLjUgNDg3IDQ1OC41IDQ3NyA0NTYgNDczLjVDNDU2IDQ3My41IDQ2OS41IDQ5MiA0NjkuNSA0OTlDNDY5LjUgNDk5IDQ3MiA0OTEuNSA0NzAuNSA0ODd6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNDc2IDQ2NUM0NzYgNDY1IDQ1NSA0NTAgNDUxLjUgNDQyLjVDNDUxLjUgNDQyLjUgNDc4IDQ3MiA0NzggNDc2LjVDNDc4IDQ3Ni41IDQ3OC41IDQ2Ny41IDQ3NiA0NjV6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNDkzIDMxMUM0OTMgMzExIDQ4MSAzMDMgNDc5LjUgMzA1QzQ3OS41IDMwNSA0OTAgMzExLjUgNDkyLjUgMzIwQzQ5Mi41IDMyMCA0OTEgMzExIDQ5MyAzMTF6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nZmlsbDogI2NjY2NjYycpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwYXRoLCBkPSdNNTAxLjUgMzkxLjVMNDg0IDM3OS41QzQ4NCAzNzkuNSA1MDMgMzk2LjUgNTAzLjUgNDAwLjVMNTAxLjUgMzkxLjV6JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nc3Ryb2tlOiMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTExMC43NSAzNjlMMTMyLjc1IDM3My43NScpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTojMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00xNjEgNTMxQzE2MSA1MzEgMTYwLjUgNTI3LjUgMTUxLjUgNTM4JykKK1NBWC5lbmRFbGVtZW50KHBhdGgpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudChnKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudChnLCBzdHlsZT0nc3Ryb2tlOiMwMDAwMDAnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocGF0aCwgZD0nTTE2Ni41IDUzNkMxNjYuNSA1MzYgMTY4LjUgNTI5LjUgMTYyIDUzNCcpCitTQVguZW5kRWxlbWVudChwYXRoKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnQoZykKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnQoZywgc3R5bGU9J3N0cm9rZTojMDAwMDAwJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHBhdGgsIGQ9J00yMjAuNSA1NDQuNUMyMjAuNSA1NDQuNSAyMjIgNTMzLjUgMjEwLjUgNTQ2LjUnKQorU0FYLmVuZEVsZW1lbnQocGF0aCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50KGcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHN2ZykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmczLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC9zdmczLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYzZGZmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3N2ZzMuc2F4MgpAQCAtMCwwICsxLDI0MDcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKHN2ZywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNzcuLi4uJywgMTQ5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDkpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J004MS4uLi4nLCAxNDkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0OSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEwOC4uLicsIDE1MykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTA1Li4uJywgMTU3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDkpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMDEuLi4nLCAxNTcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0OSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTkwLi4uLicsIDE1MCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNODMuLi4uJywgMTQ5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDkpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J004MC4uLi4nLCAxNTEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0OSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTkxLi4uLicsIDE0NCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNzEuLi4uJywgMTA1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDkpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J003Mi4uLi4nLCAxNTApCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0OSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTcyLi4uLicsIDE0NSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDI5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNzAuLi4uJywgMzUyMykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDI5KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNDk5Li4uJywgMTQ1OCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNODQuLi4uJywgNTk4KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00zMzMuLi4nLCA3MzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTMzNC4uLicsIDc1NykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMzM2Li4uJywgNzYwKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00zMzcuLi4nLCA3NjEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTMzOC4uLicsIDc2MikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMzQwLi4uJywgNzYwKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00zNDEuLi4nLCA3NjApCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTM0Mi4uLicsIDc2MCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMzQzLi4uJywgNzI1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00zNDUuLi4nLCA3NjIpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTg0Li4uLicsIDYzNykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTI1Li4uJywgMjIxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNjUuLi4nLCAyNzMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE0NS4uLicsIDQzMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTc4Li4uJywgMTM5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xODguLi4nLCAxMzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIwMS4uLicsIDEzOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTc4Li4uJywgMTMxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNzkuLi4nLCAxMzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE2NS4uLicsIDkxMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTcwLi4uJywgNTAxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xOTIuLi4nLCAyNjIpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE5MC4uLicsIDIwOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTk0Li4uJywgNDc1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMjkpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xOTAuLi4nLCA0MDUpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE5MS4uLicsIDIxOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjcxLi4uJywgMzI3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMzApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMjguLi4nLCA5OCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTgwLi4uJywgMTM3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xODUuLi4nLCAxNTIpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE5MC4uLicsIDE1MikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTk3Li4uJywgMTU0KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMDMuLi4nLCAxNTQpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIxMC4uLicsIDEzOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nc3Ryby4uLicsIDMwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTgxLi4uJywgMTMyKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMzApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMTUuLi4nLCAxNDIpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIzMy4uLicsIDIxMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nc3Ryby4uLicsIDMwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjQ3Li4uJywgNTApCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAzMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI1My4uLicsIDU2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNzQuLi4nLCAxNzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE4OC4uLicsIDIxOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTExLi4uJywgMjIxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMzIuLi4nLCAyMDgpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEzMy4uLicsIDMzNCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTc3Li4uJywgMTgzKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNDAuLi4nLCAxNjEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE0Ny4uLicsIDE2MCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTU0Li4uJywgMTU4KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNjEuLi4nLCAxNTgpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEyNS4uLicsIDE4MikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTkwLi4uJywgMjQ3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNDMuLi4nLCAzNjEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIwOC4uLicsIDM5MykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjA4Li4uJywgMzkzKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMDkuLi4nLCAzOTMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIxMC4uLicsIDM5MykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjQ0Li4uJywgMzAxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yOTAuLi4nLCAxNTUpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI5NC4uLicsIDMwOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjQ3Li4uJywgMTkzKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNDMuLi4nLCAyMDApCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI1NS4uLicsIDc3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNDUuLi4nLCAxOTEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE0MS4uLicsIDQxMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTQwLi4uJywgNDg2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNDguLi4nLCA0OTQpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE0OC4uLicsIDQ4NCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTQ4Li4uJywgNDk1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNDAuLi4nLCA0ODYpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEzNy4uLicsIDExOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTIwLi4uJywgMTE1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMjguLi4nLCAxMzIpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIxNC4uLicsIDE2MTkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTQwOS4uLicsIDM4OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNDY0Li4uJywgMjcxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J000NjMuLi4nLCAyODkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTQ2My4uLicsIDI4NykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNDYyLi4uJywgMjgwKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J000NjIuLi4nLCAyODkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTQ2Mi4uLicsIDI1MCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjUwLi4uJywgNzA5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00zODkuLi4nLCA5MSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNDM2Li4uJywgMTI1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J000OTIuLi4nLCA5OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMzA0Li4uJywgMTIzKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J000OTQuLi4nLCAxMTEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTM0My4uLicsIDI0NDEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTMwOS4uLicsIDEyMDEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTM4MC4uLicsIDQyOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMzY4Li4uJywgMTU5OCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjkxLi4uJywgOTI5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNTkuLi4nLCAxMDA2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNDUuLi4nLCAzODMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIxNy4uLicsIDE4MSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjMzLi4uJywgMjQyNSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nc3Ryby4uLicsIDMwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjUxLi4uJywgNzQpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAzMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIyNC4uLicsIDg0KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMzApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMjEuLi4nLCAxMTIpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAzMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIyMi4uLicsIDExNCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjIwLi4uJywgNjk5MykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTk3Li4uJywgMTg1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMzguLi4nLCAxOTMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEzOC4uLicsIDE5NykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTM0Li4uJywgMTk1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMzQuLi4nLCAxMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNODkgLi4uJywgNTcwKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J004Ny4uLi4nLCA0OTEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTkxIC4uLicsIDQ5NykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNODguLi4uJywgNjI2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J003OS4uLi4nLCAxODMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEwMS4uLicsIDM1OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjQwLi4uJywgMTIyMykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjMxLi4uJywgODE2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yOTQuLi4nLCA5MDIpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI1Ny4uLicsIDMyODEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIwMi4uLicsIDgzNykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTgyLi4uJywgMTI3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNDIuLi4nLCAxNzcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEzMy4uLicsIDI4OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTIwLi4uJywgMjE1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00zNDkuLi4nLCAxMDQ3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00zMzkuLi4nLCA0NDQpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE3My4uLicsIDUwMykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTgwLi4uJywgNDQ1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNzcuLi4nLCAzNzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE5Ni4uLicsIDQzOCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTg4Li4uJywgMTA5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xODEuLi4nLCAxMTMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE3MS4uLicsIDEwNSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTYzLi4uJywgMTEzKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMDEuLi4nLCAxMTEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE5MS4uLicsIDExNCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTgwLi4uJywgMTA5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNzMuLi4nLCAxMDUpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE2Ni4uLicsIDExMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjA1Li4uJywgMTI3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMTUuLi4nLCAxMjcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIyNi4uLicsIDEyNykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjM2Li4uJywgMTI3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMDkuLi4nLCAxMjcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIxOS4uLicsIDEyNykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTk2Li4uJywgMTA5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMjMuLi4nLCAxMTcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEwNS4uLicsIDExMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTI1Li4uJywgMTAxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMjkuLi4nLCAxMjQ2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMjYuLi4nLCAzMTEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEyNS4uLicsIDEyNSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTI3Li4uJywgMTYwKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xMjkuLi4nLCAxNjApCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTEzMC4uLicsIDE1OCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjQ1Li4uJywgMTU3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNDIuLi4nLCAxNTQpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIzOS4uLicsIDE1OCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjM2Li4uJywgMTU3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMDQuLi4nLCAzODcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI3Ny4uLicsIDM3OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjE4Li4uJywgMTI3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMTEuLi4nLCAxMjYpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIwMS4uLicsIDEyNikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTkzLi4uJywgMTI4KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMzUuLi4nLCAxMjgpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI0NS4uLicsIDEyNikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjU0Li4uJywgMTI5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNjQuLi4nLCAxMjYpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIyNi4uLicsIDEyNikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjYyLi4uJywgMTYxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNjUuLi4nLCAzNjMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIwNy4uLicsIDE0MykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjE3Li4uJywgMTQ3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMjkuLi4nLCAxNDMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIzOS4uLicsIDEzNykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTgxLi4uJywgMTMzKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNzIuLi4nLCAxMzUpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE2NC4uLicsIDEzNykKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjExLi4uJywgMTYwKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMjIuLi4nLCAxNjApCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIwMS4uLicsIDE1OCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTgxLi4uJywgMTYxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xOTMuLi4nLCAxNTUpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE3NC4uLicsIDE1OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTY3Li4uJywgMTYwKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMzYuLi4nLCAxNjEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIwMy4uLicsIDEzOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjEzLi4uJywgMTM1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMjAuLi4nLCAxMzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIyOC4uLicsIDE2MSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjM4Li4uJywgMTYxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xOTguLi4nLCAxMzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE4OC4uLicsIDEzOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDQ3KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjQ5Li4uJywgMTU5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgNDcpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNTcuLi4nLCAxNTkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCA0NykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI2Ny4uLicsIDE1OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTU2Li4uJywgMTExKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xODcuLi4nLCAxMDUpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE3OC4uLicsIDExMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNODIuLi4uJywgMTIxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J004NC4uLi4nLCAxMjEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTc3Li4uLicsIDEyMSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTU3Li4uJywgMTM3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yNDUuLi4nLCAzNDkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIzNC4uLicsIDM0NikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTk0Li4uJywgNDQ1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNjguLi4nLCAyNDcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE1NS4uLicsIDM5NikKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTcxLi4uJywgMjA2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xODYuLi4nLCA4MDMpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTI0Ni4uLicsIDE3OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMjMxLi4uJywgMTM5KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00yMjEuLi4nLCAxMzkpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIxMS4uLicsIDEzOSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTkyLi4uJywgMjYxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xODkuLi4nLCAxMzEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTE2Ny4uLicsIDE4MSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTYxLi4uJywgMTgzKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNTUuLi4nLCA5OSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTQwLi4uJywgMTgxKQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J000NzAuLi4nLCAxMDEpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J2ZpbGwuLi4nLCAxMykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTQ3Ni4uLicsIDk3KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdmaWxsLi4uJywgMTMpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J000OTMuLi4nLCA5MSkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nZmlsbC4uLicsIDEzKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNNTAxLi4uJywgNjcpCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAxNCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTExMC4uLicsIDI1KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLnN0YXJ0RWxlbWVudE5zKGcsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHN0eWxlPSdzdHJvLi4uJywgMTQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGQ9J00xNjEuLi4nLCAzOCkKK1NBWC5lbmRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5lbmRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBzdHlsZT0nc3Ryby4uLicsIDE0KQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBkPSdNMTY2Li4uJywgNDApCitTQVguZW5kRWxlbWVudE5zKHBhdGgsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguZW5kRWxlbWVudE5zKGcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAsIDIpCitTQVguc3RhcnRFbGVtZW50TnMoZywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgc3R5bGU9J3N0cm8uLi4nLCAxNCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocGF0aCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgZD0nTTIyMC4uLicsIDQ2KQorU0FYLmVuZEVsZW1lbnROcyhwYXRoLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgLCAyKQorU0FYLmVuZEVsZW1lbnROcyhnLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKHN2ZywgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC90aXRsZS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC90aXRsZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIzZmUwNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8dGl0bGU+bXkgdGl0bGU8L3RpdGxlPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdGl0bGUueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBkMmJlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5yZGUKQEAgLTAsMCArMSwzIEBACiswIDEgdGl0bGUgMCAwCisxIDMgI3RleHQgMCAxIG15IHRpdGxlCiswIDE1IHRpdGxlIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdGl0bGUueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBkMmJlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5yZHIKQEAgLTAsMCArMSwzIEBACiswIDEgdGl0bGUgMCAwCisxIDMgI3RleHQgMCAxIG15IHRpdGxlCiswIDE1IHRpdGxlIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdGl0bGUueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFmNzFlOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5zYXgKQEAgLTAsMCArMSw2IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnQodGl0bGUpCitTQVguY2hhcmFjdGVycyhteSB0aXRsZSwgOCkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdGl0bGUueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZhNGZhOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RpdGxlLnhtbC5zYXgyCkBAIC0wLDAgKzEsNiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhteSB0aXRsZSwgOCkKK1NBWC5lbmRFbGVtZW50TnModGl0bGUsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdHN0YmxhbmtzLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU2MTg1OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxhIHRlc3Q9InBhc3NlZCI+Y29udGVudDwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdHN0YmxhbmtzLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QyZTVmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwucmRlCkBAIC0wLDAgKzEsMyBAQAorMCAxIGEgMCAwCisxIDMgI3RleHQgMCAxIGNvbnRlbnQKKzAgMTUgYSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdHN0YmxhbmtzLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QyZTVmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwucmRyCkBAIC0wLDAgKzEsMyBAQAorMCAxIGEgMCAwCisxIDMgI3RleHQgMCAxIGNvbnRlbnQKKzAgMTUgYSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdHN0YmxhbmtzLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFmN2I4YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwuc2F4CkBAIC0wLDAgKzEsNiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGEsIHRlc3Q9J3Bhc3NlZCcpCitTQVguY2hhcmFjdGVycyhjb250ZW50LCA3KQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC90c3RibGFua3MueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC90c3RibGFua3MueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU1NjNhNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3RzdGJsYW5rcy54bWwuc2F4MgpAQCAtMCwwICsxLDYgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGEsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHRlc3Q9J3Bhc3MuLi4nLCA2KQorU0FYLmNoYXJhY3RlcnMoY29udGVudCwgNykKK1NBWC5lbmRFbGVtZW50TnMoYSwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJlYm9tLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2YmVib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNTQ2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJlYm9tLnhtbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJlYm9tLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJlYm9tLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY5MzM4YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2YmVib20ueG1sLnJkZQpAQCAtMCwwICsxLDQgQEAKKzAgOCAjY29tbWVudCAwIDEgIFRoaXMgZmlsZSBpcyBlbmNvZGVkIGluIFVURi0xNkJFIAorMCAxIHJlcG9zaXRvcnkgMCAwCisxIDEgbmFtZXNwYWNlIDEgMAorMCAxNSByZXBvc2l0b3J5IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZiZWJvbS54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZiZWJvbS54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2OTMzOGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJlYm9tLnhtbC5yZHIKQEAgLTAsMCArMSw0IEBACiswIDggI2NvbW1lbnQgMCAxICBUaGlzIGZpbGUgaXMgZW5jb2RlZCBpbiBVVEYtMTZCRSAKKzAgMSByZXBvc2l0b3J5IDAgMAorMSAxIG5hbWVzcGFjZSAxIDAKKzAgMTUgcmVwb3NpdG9yeSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2YmVib20ueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2YmVib20ueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Yjc0YTZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZiZWJvbS54bWwuc2F4CkBAIC0wLDAgKzEsOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggVGhpcyBmaWxlIGlzIGVuY29kZWQgaW4gVVRGLTE2QkUgKQorU0FYLnN0YXJ0RWxlbWVudChyZXBvc2l0b3J5LCByZXBvc2l0cm95X2lkPSd0ZXN0JykKK1NBWC5zdGFydEVsZW1lbnQobmFtZXNwYWNlLCBuYW1lPSd0ZXN0JykKK1NBWC5lbmRFbGVtZW50KG5hbWVzcGFjZSkKK1NBWC5lbmRFbGVtZW50KHJlcG9zaXRvcnkpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZiZWJvbS54bWwuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2YmVib20ueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMyNjg5MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2YmVib20ueG1sLnNheDIKQEAgLTAsMCArMSw4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5jb21tZW50KCBUaGlzIGZpbGUgaXMgZW5jb2RlZCBpbiBVVEYtMTZCRSApCitTQVguc3RhcnRFbGVtZW50TnMocmVwb3NpdG9yeSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgcmVwb3NpdHJveV9pZD0ndGVzdC4uLicsIDQpCitTQVguc3RhcnRFbGVtZW50TnMobmFtZXNwYWNlLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBuYW1lPSd0ZXN0Li4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnMobmFtZXNwYWNlLCBOVUxMLCBOVUxMKQorU0FYLmVuZEVsZW1lbnROcyhyZXBvc2l0b3J5LCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2Ym9tLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2Ym9tLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZWEyOTZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZib20ueG1sCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2Ym9tLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJvbS54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmYjg0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJvbS54bWwucmRlCkBAIC0wLDAgKzEsMyBAQAorMCAxIHJlcG9zaXRvcnkgMCAwCisxIDEgbmFtZXNwYWNlIDEgMAorMCAxNSByZXBvc2l0b3J5IDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZib20ueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2Ym9tLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZiODRjNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2Ym9tLnhtbC5yZHIKQEAgLTAsMCArMSwzIEBACiswIDEgcmVwb3NpdG9yeSAwIDAKKzEgMSBuYW1lc3BhY2UgMSAwCiswIDE1IHJlcG9zaXRvcnkgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJvbS54bWwuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZib20ueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDkzODZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZib20ueG1sLnNheApAQCAtMCwwICsxLDcgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudChyZXBvc2l0b3J5LCByZXBvc2l0cm95X2lkPSd0ZXN0JykKK1NBWC5zdGFydEVsZW1lbnQobmFtZXNwYWNlLCBuYW1lPSd0ZXN0JykKK1NBWC5lbmRFbGVtZW50KG5hbWVzcGFjZSkKK1NBWC5lbmRFbGVtZW50KHJlcG9zaXRvcnkpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZib20ueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmJvbS54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjJkYjE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZib20ueG1sLnNheDIKQEAgLTAsMCArMSw3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhyZXBvc2l0b3J5LCBOVUxMLCBOVUxMLCAwLCAxLCAwLCByZXBvc2l0cm95X2lkPSd0ZXN0Li4uJywgNCkKK1NBWC5zdGFydEVsZW1lbnROcyhuYW1lc3BhY2UsIE5VTEwsIE5VTEwsIDAsIDEsIDAsIG5hbWU9J3Rlc3QuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyhuYW1lc3BhY2UsIE5VTEwsIE5VTEwpCitTQVguZW5kRWxlbWVudE5zKHJlcG9zaXRvcnksIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZsZWJvbS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmxlYm9tLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzM2NDBjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZsZWJvbS54bWwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZsZWJvbS54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZsZWJvbS54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyYTkxZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmxlYm9tLnhtbC5yZGUKQEAgLTAsMCArMSw0IEBACiswIDggI2NvbW1lbnQgMCAxICBUaGlzIGZpbGUgaXMgZW5jb2RlZCBpbiBVVEYtMTZMRSAKKzAgMSByZXBvc2l0b3J5IDAgMAorMSAxIG5hbWVzcGFjZSAxIDAKKzAgMTUgcmVwb3NpdG9yeSAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2bGVib20ueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2bGVib20ueG1sLnJkcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmE5MWU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmMTZsZWJvbS54bWwucmRyCkBAIC0wLDAgKzEsNCBAQAorMCA4ICNjb21tZW50IDAgMSAgVGhpcyBmaWxlIGlzIGVuY29kZWQgaW4gVVRGLTE2TEUgCiswIDEgcmVwb3NpdG9yeSAwIDAKKzEgMSBuYW1lc3BhY2UgMSAwCiswIDE1IHJlcG9zaXRvcnkgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmxlYm9tLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmxlYm9tLnhtbC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5OTYzMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2bGVib20ueG1sLnNheApAQCAtMCwwICsxLDggQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmNvbW1lbnQoIFRoaXMgZmlsZSBpcyBlbmNvZGVkIGluIFVURi0xNkxFICkKK1NBWC5zdGFydEVsZW1lbnQocmVwb3NpdG9yeSwgcmVwb3NpdHJveV9pZD0ndGVzdCcpCitTQVguc3RhcnRFbGVtZW50KG5hbWVzcGFjZSwgbmFtZT0ndGVzdCcpCitTQVguZW5kRWxlbWVudChuYW1lc3BhY2UpCitTQVguZW5kRWxlbWVudChyZXBvc2l0b3J5KQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0ZjE2bGVib20ueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmxlYm9tLnhtbC5zYXgyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNjIzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGYxNmxlYm9tLnhtbC5zYXgyCkBAIC0wLDAgKzEsOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguY29tbWVudCggVGhpcyBmaWxlIGlzIGVuY29kZWQgaW4gVVRGLTE2TEUgKQorU0FYLnN0YXJ0RWxlbWVudE5zKHJlcG9zaXRvcnksIE5VTEwsIE5VTEwsIDAsIDEsIDAsIHJlcG9zaXRyb3lfaWQ9J3Rlc3QuLi4nLCA0KQorU0FYLnN0YXJ0RWxlbWVudE5zKG5hbWVzcGFjZSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgbmFtZT0ndGVzdC4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKG5hbWVzcGFjZSwgTlVMTCwgTlVMTCkKK1NBWC5lbmRFbGVtZW50TnMocmVwb3NpdG9yeSwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGY4Ym9tLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0Zjhib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ZTUxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGY4Ym9tLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvby8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGY4Ym9tLnhtbC5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGY4Ym9tLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVhZDIxMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0Zjhib20ueG1sLnJkZQpAQCAtMCwwICsxIEBACiswIDEgZm9vIDEgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmOGJvbS54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmOGJvbS54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1YWQyMTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGY4Ym9tLnhtbC5yZHIKQEAgLTAsMCArMSBAQAorMCAxIGZvbyAxIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0Zjhib20ueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3V0Zjhib20ueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTJlYjk0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmOGJvbS54bWwuc2F4CkBAIC0wLDAgKzEsNSBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGZvbykKK1NBWC5lbmRFbGVtZW50KGZvbykKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC91dGY4Ym9tLnhtbC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmOGJvbS54bWwuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjdmMjBmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdXRmOGJvbS54bWwuc2F4MgpAQCAtMCwwICsxLDUgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLnN0YXJ0RWxlbWVudE5zKGZvbywgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMoZm9vLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkLzEyNzc3Mi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC8xMjc3NzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZTEyOGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC8xMjc3NzIueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYSBTWVNURU0gImR0ZHMvMTI3NzcyLmR0ZCI+Cis8YT4KKyAgPGIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhsaW5rOmhyZWY9Imh0dHA6Ly9mYWtldXJsLm5ldCI+YiB0ZXh0PC9iPgorPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvMTI3NzcyLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC8xMjc3NzIueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvMTI3NzcyLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvUkVDLXhtbC0xOTk4MDIxMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMxZTk2MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sCkBAIC0wLDAgKzEsNDE1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzcGVjIFNZU1RFTSAiZHRkcy9zcGVjLmR0ZCIgWworPCEtLSBMQVNUIFRPVUNIRUQgQlk6IFRpbSBCcmF5LCA4IEZlYnJ1YXJ5IDE5OTcgLS0+PCEtLSBUaGUgd29yZHMgJ0ZJTkFMIEVESVQnIGluIGNvbW1lbnRzIG1hcmsgcGxhY2VzIHdoZXJlIGNoYW5nZXMKK25lZWQgdG8gYmUgbWFkZSBhZnRlciBhcHByb3ZhbCBvZiB0aGUgZG9jdW1lbnQgYnkgdGhlIEVSQiwgYmVmb3JlCitwdWJsaWNhdGlvbi4gIC0tPjwhRU5USVRZIFhNTC52ZXJzaW9uICIxLjAiPgorPCFFTlRJVFkgZG9jLmRhdGUgIjEwIEZlYnJ1YXJ5IDE5OTgiPgorPCFFTlRJVFkgaXNvNi5kb2MuZGF0ZSAiMTk5ODAyMTAiPgorPCFFTlRJVFkgdzNjLmRvYy5kYXRlICIwMi1GZWItMTk5OCI+Cis8IUVOVElUWSBkcmFmdC5kYXkgIjEwIj4KKzwhRU5USVRZIGRyYWZ0Lm1vbnRoICJGZWJydWFyeSI+Cis8IUVOVElUWSBkcmFmdC55ZWFyICIxOTk4Ij4KKzwhRU5USVRZIFdlYlNHTUwgIldlYlNHTUwgQWRhcHRhdGlvbnMgQW5uZXggdG8gSVNPIDg4NzkiPgorPCFFTlRJVFkgbHQgIjwiPgorPCFFTlRJVFkgZ3QgIj4iPgorPCFFTlRJVFkgeG1scGlvICInJmx0Oz94bWwnIj4KKzwhRU5USVRZIHBpYyAiJz8+JyI+Cis8IUVOVElUWSBiciAiXG4iPgorPCFFTlRJVFkgY2VsbGJhY2sgIiNjMGQ5YzAiPgorPCFFTlRJVFkgbWRhc2ggIi0tIj4KKzwhLS0gJiN4MjAxNCwgYnV0IG5zZ21scyBkb2Vzbid0IGdyb2sgaGV4IC0tPjwhRU5USVRZIGNvbSAiLS0iPgorPCFFTlRJVFkgY29tbyAiLS0iPgorPCFFTlRJVFkgY29tYyAiLS0iPgorPCFFTlRJVFkgaGNybyAiJmFtcDsjeCI+Cis8IS0tIDwhRU5USVRZIG5ic3AgIqAiPiAtLT48IUVOVElUWSBuYnNwICImIzE2MDsiPgorPCFFTlRJVFkgbWFnaWNlbnRzICI8Y29kZT5hbXA8L2NvZGU+LAorPGNvZGU+bHQ8L2NvZGU+LAorPGNvZGU+Z3Q8L2NvZGU+LAorPGNvZGU+YXBvczwvY29kZT4sCis8Y29kZT5xdW90PC9jb2RlPiI+Cis8IS0tIGF1ZGllbmNlIGFuZCBkaXN0cmlidXRpb24gc3RhdHVzOiAgZm9yIHVzZSBhdCBwdWJsaWNhdGlvbiB0aW1lIC0tPjwhRU5USVRZIGRvYy5hdWRpZW5jZSAicHVibGljIHJldmlldyBhbmQgZGlzY3Vzc2lvbiI+Cis8IUVOVElUWSBkb2MuZGlzdHJpYnV0aW9uICJtYXkgYmUgZGlzdHJpYnV0ZWQgZnJlZWx5LCBhcyBsb25nIGFzCithbGwgdGV4dCBhbmQgbGVnYWwgbm90aWNlcyByZW1haW4gaW50YWN0Ij4KK10+Cis8IS0tIGZvciBQYW5vcmFtYSAqLS0+Cis8P1ZFUkJBVElNICJlZyIgPz4KKzxzcGVjPgorPGhlYWRlcj4KKzx0aXRsZT5FeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSAoWE1MKSAxLjA8L3RpdGxlPgorPHZlcnNpb24vPgorPHczYy1kZXNpZ25hdGlvbj5SRUMteG1sLSZpc282LmRvYy5kYXRlOzwvdzNjLWRlc2lnbmF0aW9uPgorPHczYy1kb2N0eXBlPlczQyBSZWNvbW1lbmRhdGlvbjwvdzNjLWRvY3R5cGU+Cis8cHViZGF0ZT48ZGF5PiZkcmFmdC5kYXk7PC9kYXk+PG1vbnRoPiZkcmFmdC5tb250aDs8L21vbnRoPjx5ZWFyPiZkcmFmdC55ZWFyOzwveWVhcj48L3B1YmRhdGU+CisKKzxwdWJsb2M+Cis8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOzwvbG9jPgorPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnhtbCI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnhtbDwvbG9jPgorPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7Lmh0bWwiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5odG1sPC9sb2M+Cis8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsucGRmIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsucGRmPC9sb2M+Cis8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsucHMiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wczwvbG9jPgorPC9wdWJsb2M+Cis8bGF0ZXN0bG9jPgorPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWw8L2xvYz4KKzwvbGF0ZXN0bG9jPgorPHByZXZsb2NzPgorPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9QUi14bWwtOTcxMjA4Ij4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1BSLXhtbC05NzEyMDg8L2xvYz4KKzwhLS0KKzxsb2MgIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NjExMTQnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk2MTExNDwvbG9jPgorPGxvYyAgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLWxhbmctOTcwMzMxJz4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC1sYW5nLTk3MDMzMTwvbG9jPgorPGxvYyAgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLWxhbmctOTcwNjMwJz4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC1sYW5nLTk3MDYzMDwvbG9jPgorPGxvYyAgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk3MDgwNyc+CitodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTcwODA3PC9sb2M+Cis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTcxMTE3Jz4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NzExMTc8L2xvYz4tLT4KKzwvcHJldmxvY3M+Cis8YXV0aGxpc3Q+Cis8YXV0aG9yPjxuYW1lPlRpbSBCcmF5PC9uYW1lPgorPGFmZmlsaWF0aW9uPlRleHR1YWxpdHkgYW5kIE5ldHNjYXBlPC9hZmZpbGlhdGlvbj4KKzxlbWFpbCBocmVmPSJtYWlsdG86dGJyYXlAdGV4dHVhbGl0eS5jb20iPnRicmF5QHRleHR1YWxpdHkuY29tPC9lbWFpbD48L2F1dGhvcj4KKzxhdXRob3I+PG5hbWU+SmVhbiBQYW9saTwvbmFtZT4KKzxhZmZpbGlhdGlvbj5NaWNyb3NvZnQ8L2FmZmlsaWF0aW9uPgorPGVtYWlsIGhyZWY9Im1haWx0bzpqZWFucGFAbWljcm9zb2Z0LmNvbSI+amVhbnBhQG1pY3Jvc29mdC5jb208L2VtYWlsPjwvYXV0aG9yPgorPGF1dGhvcj48bmFtZT5DLiBNLiBTcGVyYmVyZy1NY1F1ZWVuPC9uYW1lPgorPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgb2YgSWxsaW5vaXMgYXQgQ2hpY2FnbzwvYWZmaWxpYXRpb24+Cis8ZW1haWwgaHJlZj0ibWFpbHRvOmNtc21jcUB1aWMuZWR1Ij5jbXNtY3FAdWljLmVkdTwvZW1haWw+PC9hdXRob3I+Cis8L2F1dGhsaXN0PgorPGFic3RyYWN0PgorPHA+VGhlIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIChYTUwpIGlzIGEgc3Vic2V0IG9mCitTR01MIHRoYXQgaXMgY29tcGxldGVseSBkZXNjcmliZWQgaW4gdGhpcyBkb2N1bWVudC4gSXRzIGdvYWwgaXMgdG8KK2VuYWJsZSBnZW5lcmljIFNHTUwgdG8gYmUgc2VydmVkLCByZWNlaXZlZCwgYW5kIHByb2Nlc3NlZCBvbiB0aGUgV2ViCitpbiB0aGUgd2F5IHRoYXQgaXMgbm93IHBvc3NpYmxlIHdpdGggSFRNTC4gWE1MIGhhcyBiZWVuIGRlc2lnbmVkIGZvcgorZWFzZSBvZiBpbXBsZW1lbnRhdGlvbiBhbmQgZm9yIGludGVyb3BlcmFiaWxpdHkgd2l0aCBib3RoIFNHTUwgYW5kCitIVE1MLjwvcD4KKzwvYWJzdHJhY3Q+Cis8c3RhdHVzPgorPHA+VGhpcyBkb2N1bWVudCBoYXMgYmVlbiByZXZpZXdlZCBieSBXM0MgTWVtYmVycyBhbmQKK290aGVyIGludGVyZXN0ZWQgcGFydGllcyBhbmQgaGFzIGJlZW4gZW5kb3JzZWQgYnkgdGhlCitEaXJlY3RvciBhcyBhIFczQyBSZWNvbW1lbmRhdGlvbi4gSXQgaXMgYSBzdGFibGUKK2RvY3VtZW50IGFuZCBtYXkgYmUgdXNlZCBhcyByZWZlcmVuY2UgbWF0ZXJpYWwgb3IgY2l0ZWQKK2FzIGEgbm9ybWF0aXZlIHJlZmVyZW5jZSBmcm9tIGFub3RoZXIgZG9jdW1lbnQuIFczQydzCityb2xlIGluIG1ha2luZyB0aGUgUmVjb21tZW5kYXRpb24gaXMgdG8gZHJhdyBhdHRlbnRpb24KK3RvIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCB0byBwcm9tb3RlIGl0cyB3aWRlc3ByZWFkCitkZXBsb3ltZW50LiBUaGlzIGVuaGFuY2VzIHRoZSBmdW5jdGlvbmFsaXR5IGFuZAoraW50ZXJvcGVyYWJpbGl0eSBvZiB0aGUgV2ViLjwvcD4KKzxwPgorVGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgYSBzeW50YXggY3JlYXRlZCBieSBzdWJzZXR0aW5nIGFuIGV4aXN0aW5nLAord2lkZWx5IHVzZWQgaW50ZXJuYXRpb25hbCB0ZXh0IHByb2Nlc3Npbmcgc3RhbmRhcmQgKFN0YW5kYXJkCitHZW5lcmFsaXplZCBNYXJrdXAgTGFuZ3VhZ2UsIElTTyA4ODc5OjE5ODYoRSkgYXMgYW1lbmRlZCBhbmQKK2NvcnJlY3RlZCkgZm9yIHVzZSBvbiB0aGUgV29ybGQgV2lkZSBXZWIuICBJdCBpcyBhIHByb2R1Y3Qgb2YgdGhlIFczQworWE1MIEFjdGl2aXR5LCBkZXRhaWxzIG9mIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1hNTCI+aHR0cDovL3d3dy53My5vcmcvWE1MPC9sb2M+LiAgQSBsaXN0IG9mCitjdXJyZW50IFczQyBSZWNvbW1lbmRhdGlvbnMgYW5kIG90aGVyIHRlY2huaWNhbCBkb2N1bWVudHMgY2FuIGJlIGZvdW5kCithdCA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSIj5odHRwOi8vd3d3LnczLm9yZy9UUjwvbG9jPi4KKzwvcD4KKzxwPlRoaXMgc3BlY2lmaWNhdGlvbiB1c2VzIHRoZSB0ZXJtIFVSSSwgd2hpY2ggaXMgZGVmaW5lZCBieSA8YmlicmVmIHJlZj0iQmVybmVycy1MZWUiLz4sIGEgd29yayBpbiBwcm9ncmVzcyBleHBlY3RlZCB0byB1cGRhdGUgPGJpYnJlZiByZWY9IlJGQzE3MzgiLz4gYW5kIDxiaWJyZWYgcmVmPSJSRkMxODA4Ii8+LiAKKzwvcD4KKzxwPlRoZSBsaXN0IG9mIGtub3duIGVycm9ycyBpbiB0aGlzIHNwZWNpZmljYXRpb24gaXMgCithdmFpbGFibGUgYXQgCis8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1hNTC94bWwtMTk5ODAyMTAtZXJyYXRhIj5odHRwOi8vd3d3LnczLm9yZy9YTUwveG1sLTE5OTgwMjEwLWVycmF0YTwvbG9jPi48L3A+Cis8cD5QbGVhc2UgcmVwb3J0IGVycm9ycyBpbiB0aGlzIGRvY3VtZW50IHRvIAorPGxvYyBocmVmPSJtYWlsdG86eG1sLWVkaXRvckB3My5vcmciPnhtbC1lZGl0b3JAdzMub3JnPC9sb2M+LgorPC9wPgorPC9zdGF0dXM+CisKKworPHB1YnN0bXQ+Cis8cD5DaGljYWdvLCBWYW5jb3V2ZXIsIE1vdW50YWluIFZpZXcsIGV0IGFsLjoKK1dvcmxkLVdpZGUgV2ViIENvbnNvcnRpdW0sIFhNTCBXb3JraW5nIEdyb3VwLCAxOTk2LCAxOTk3LjwvcD4KKzwvcHVic3RtdD4KKzxzb3VyY2VkZXNjPgorPHA+Q3JlYXRlZCBpbiBlbGVjdHJvbmljIGZvcm0uPC9wPgorPC9zb3VyY2VkZXNjPgorPGxhbmd1c2FnZT4KKzxsYW5ndWFnZSBpZD0iRU4iPkVuZ2xpc2g8L2xhbmd1YWdlPgorPGxhbmd1YWdlIGlkPSJlYm5mIj5FeHRlbmRlZCBCYWNrdXMtTmF1ciBGb3JtIChmb3JtYWwgZ3JhbW1hcik8L2xhbmd1YWdlPgorPC9sYW5ndXNhZ2U+Cis8cmV2aXNpb25kZXNjPgorPHNsaXN0PgorPHNpdGVtPjE5OTctMTItMDMgOiBDTVNNY1EgOiB5ZXQgZnVydGhlciBjaGFuZ2VzPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEyLTAyIDogVEIgOiBmdXJ0aGVyIGNoYW5nZXMgKHNlZSBUQiB0byBYTUwgV0csCisyIERlY2VtYmVyIDE5OTcpPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEyLTAyIDogQ01TTWNRIDogZGVhbCB3aXRoIGFzIG1hbnkgY29ycmVjdGlvbnMgYW5kCitjb21tZW50cyBmcm9tIHRoZSBwcm9vZnJlYWRlcnMgYXMgcG9zc2libGU6CitlbnRpZnkgaGFyZC1jb2RlZCBkb2N1bWVudCBkYXRlIGluIHB1YmRhdGUgZWxlbWVudCwKK2NoYW5nZSBleHBhbnNpb24gb2YgZW50aXR5IFdlYlNHTUwsCit1cGRhdGUgc3RhdHVzIGRlc2NyaXB0aW9uIGFzIHBlciBEYW4gQ29ubm9sbHkgKGFtIG5vdCBzdXJlCithYm91dCByZWZlcm5lY2UgdG8gQmVybmVycy1MZWUgZXQgYWwuKSwKK2FkZCAnVGhlJyB0byBhYnN0cmFjdCBhcyBwZXIgV0cgZGVjaXNpb24sCittb3ZlIFJlbGF0aW9uc2hpcCB0byBFeGlzdGluZyBTdGFuZGFyZHMgdG8gYmFjayBtYXR0ZXIgYW5kCitjb21iaW5lIHdpdGggUmVmZXJlbmNlcywKK3JlLW9yZGVyIGJhY2sgbWF0dGVyIHNvIG5vcm1hdGl2ZSBhcHBlbmRpY2VzIGNvbWUgZmlyc3QsCityZS10YWcgYmFjayBtYXR0ZXIgc28gaW5mb3JtYXRpdmUgYXBwZW5kaWNlcyBhcmUgdGFnZ2VkIGluZm9ybWRpdjEsCityZW1vdmUgWFhYIFhYWCBmcm9tIGxpc3Qgb2YgJ25vcm1hdGl2ZScgc3BlY3MgaW4gcHJvc2UsCittb3ZlIHNvbWUgcmVmZXJlbmNlcyBmcm9tIE90aGVyIFJlZmVyZW5jZXMgdG8gTm9ybWF0aXZlIFJlZmVyZW5jZXMsCithZGQgUkZDIDE3MzgsIDE4MDgsIGFuZCAyMTQxIHRvIE90aGVyIFJlZmVyZW5jZXMgKHRoZXkgYXJlIG5vdAorbm9ybWF0aXZlIHNpbmNlIHdlIGRvIG5vdCByZXF1aXJlIHRoZSBwcm9jZXNzb3IgdG8gZW5mb3JjZSBhbnkgCitydWxlcyBiYXNlZCBvbiB0aGVtKSwKK2FkZCByZWZlcmVuY2UgdG8gJ0ZpZWxkaW5nIGRyYWZ0JyAoQmVybmVycy1MZWUgZXQgYWwuKSwKK21vdmUgbm90YXRpb24gc2VjdGlvbiB0byBlbmQgb2YgYm9keSwKK2Ryb3AgVVJJY2hhciBub24tdGVybWluYWwgYW5kIHVzZSBTa2lwTGl0IGluc3RlYWQsCitsb3NlIHN0cmF5IHJlZmVyZW5jZSB0byBkZWZ1bmN0IG5vbnRlcm1pbmFsICdtYXJrdXBkZWNscycsCittb3ZlIHJlZmVyZW5jZSB0byBBaG8gZXQgYWwuIGludG8gYXBwZW5kaXggKFRpbSdzIHJpZ2h0KSwKK2FkZCBwcm9zZSBub3RlIHNheWluZyB0aGF0IGhhc2ggbWFya3MgYW5kIGZyYWdtZW50IGlkZW50aWZpZXJzIGFyZQorTk9UIHBhcnQgb2YgdGhlIFVSSSBmb3JtYWxseSBzcGVha2luZywgYW5kIGFyZSBOT1QgbGVnYWwgaW4gCitzeXN0ZW0gaWRlbnRpZmllcnMgKHByb2Nlc3NvciAnbWF5JyBzaWduYWwgYW4gZXJyb3IpLgorV29yayB0aHJvdWdoOgorVGltIEJyYXkgcmVhY3RpbmcgdG8gSmFtZXMgQ2xhcmssCitUaW0gQnJheSBvbiBoaXMgb3duLAorRXZlIE1hbGVyLAorCitOT1QgRE9ORSBZRVQ6CitjaGFuZ2UgYmluYXJ5IC8gdGV4dCB0byB1bnBhcnNlZCAvIHBhcnNlZC4KK2hhbmRsZSBKYW1lcydzIHN1Z2dlc3Rpb24gYWJvdXQgJmx0OyBpbiBhdHRyaXVidGUgdmFsdWVzCit1cHBlcmNhc2UgaGV4IGNoYXJhY3RlcnMsCituYW1lY2hhciBsaXN0LAorPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEyLTAxIDogSkIgOiBhZGQgc29tZSBjb2x1bW4td2lkdGggcGFyYW1ldGVyczwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMSA6IENNU01jUSA6IGJlZ2luIHJvdW5kIG9mIGNoYW5nZXMgdG8gaW5jb3Jwb3JhdGUKK3JlY2VudCBXRyBkZWNpc2lvbnMgYW5kIG90aGVyIGNvcnJlY3Rpb25zOgorYmluZGluZyBzb3VyY2VzIG9mIGNoYXJhY3RlciBlbmNvZGluZyBpbmZvICgyNyBBdWcgLyAzIFNlcHQpLAorY29ycmVjdCB3b3JkaW5nIG9mIEZhdXN0IHF1b3RhdGlvbiAocmVzdG9yZSBkcm9wcGVkIGxpbmUpLAorZHJvcCBTREQgZnJvbSBFbmNvZGluZ0RlY2wsCitjaGFuZ2UgdGV4dCBhdCB2ZXJzaW9uIG51bWJlciAxLjAsCitkcm9wIG1pc2xlYWRpbmcgKHdyb25nISkgc2VudGVuY2UgYWJvdXQgaWdub3JhYmxlcyBhbmQgZXh0ZW5kZXJzLAorbW9kaWZ5IGRlZmluaXRpb24gb2YgUENEYXRhIHRvIG1ha2UgYmFyIG9uIG1zYyBncmFtbWF0aWNhbCwKK2NoYW5nZSBncmFtbWFyJ3MgaGFuZGxpbmcgb2YgaW50ZXJuYWwgc3Vic2V0IChkcm9wIG5vbi10ZXJtaW5hbCBtYXJrdXBkZWNscyksCitjaGFuZ2UgZGVmaW5pdGlvbiBvZiBpbmNsdWRlU2VjdCB0byBhbGxvdyBjb25kaXRpb25hbCBzZWN0aW9ucywKK2FkZCBpbnRlZ3JhbC1kZWNsYXJhdGlvbiBjb25zdHJhaW50IG9uIGludGVybmFsIHN1YnNldCwKK2Ryb3AgbWlzbGVhZGluZyAvIGRhbmdlcm91cyBzZW50ZW5jZSBhYm91dCByZWxhdGlvbnNoaXAgb2YKK2VudGl0aWVzIHdpdGggc3lzdGVtIHN0b3JhZ2Ugb2JqZWN0cywKK2NoYW5nZSB0YWJsZSBib2R5IHRhZyB0byBodGJvZHkgYXMgcGVyIEVNIGNoYW5nZSB0byBEVEQsCithZGQgcnVsZSBhYm91dCBzcGFjZSBub3JtYWxpemF0aW9uIGluIHB1YmxpYyBpZGVudGlmaWVycywKK2FkZCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gZ2VuZXJhdGUgb3VyIG5hbWUtc3BhY2UgcnVsZXMgZnJvbSAKK1VuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlIChuZWVkcyBmdXJ0aGVyIHdvcmshKS4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMC0wOCA6IFRCIDogUmVtb3ZlZCAlLWNvbnN0cnVjdHMgYWdhaW4sIG5ldyBydWxlcworZm9yIFBFIGFwcGVhcmFuY2UuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEwLTAxIDogVEIgOiBDYXNlLXNlbnNpdGl2ZSBtYXJrdXA7IGNsZWFuZWQgdXAKK2VsZW1lbnQtdHlwZSBkZWZzLCBsb3RzYSBsaXR0bGUgZWRpdHMgZm9yIHN0eWxlPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTA5LTI1IDogVEIgOiBDaGFuZ2UgdG8gZWxtJ3MgbmV3IERURCwgd2l0aAorc3Vic3RhbnRpYWwgZGV0YWlsIGNsZWFudXAgYXMgYSBzaWRlLWVmZmVjdDwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNy0yNCA6IENNU01jUSA6IGNvcnJlY3QgZXJyb3IgKGxvc3QgKikgaW4gZGVmaW5pdGlvbiAKK29mIGlnbm9yZVNlY3RDb250ZW50cyAodGhhbmtzIHRvIE1ha290byBNdXJhdGEpPC9zaXRlbT4KKzxzaXRlbT5BbGxvdyBhbGwgZW1wdHkgZWxlbWVudHMgdG8gaGF2ZSBlbmQtdGFncywgY29uc2lzdGVudCB3aXRoCitTR01MIFRDIChhcyBwZXIgSkpDKS48L3NpdGVtPgorPHNpdGVtPjE5OTctMDctMjMgOiBDTVNNY1EgOiBwcmUtZW1wdGl2ZSBzdHJpa2Ugb24gcGVuZGluZyBjb3JyZWN0aW9uczoKK2ludHJvZHVjZSB0aGUgdGVybSAnZW1wdHktZWxlbWVudCB0YWcnLCBub3RlIHRoYXQgYWxsIGVtcHR5IGVsZW1lbnRzCittYXkgdXNlIGl0LCBhbmQgZWxlbWVudHMgZGVjbGFyZWQgRU1QVFkgbXVzdCB1c2UgaXQuCitBZGQgV0ZDIHJlcXVpcmluZyBlbmNvZGluZyBkZWNsIHRvIGNvbWUgZmlyc3QgaW4gYW4gZW50aXR5LgorUmVkZWZpbmUgbm90YXRpb25zIHRvIHBvaW50IHRvIFBJcyBhcyB3ZWxsIGFzIGJpbmFyeSBlbnRpdGllcy4KK0NoYW5nZSBhdXRvZGV0ZWN0aW9uIHRhYmxlIGJ5IHJlbW92aW5nIGJ5dGVzIDMgYW5kIDQgZnJvbSAKK2V4YW1wbGVzIHdpdGggQnl0ZSBPcmRlciBNYXJrLgorQWRkIGNvbnRlbnQgbW9kZWwgYXMgYSB0ZXJtIGFuZCBjbGFyaWZ5IHRoYXQgaXQgYXBwbGllcyB0byBib3RoCittaXhlZCBhbmQgZWxlbWVudCBjb250ZW50LgorPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTA2LTMwIDogQ01TTWNRIDogY2hhbmdlIGRhdGUsIHNvbWUgY29zbWV0aWMgY2hhbmdlcywKK2NoYW5nZXMgdG8gcHJvZHVjdGlvbnMgZm9yIGNob2ljZSwgc2VxLCBNaXhlZCwgTm90YXRpb25UeXBlLAorRW51bWVyYXRpb24uICBGb2xsb3cgSmFtZXMgQ2xhcmsncyBzdWdnZXN0aW9uIGFuZCBwcm9oaWJpdCAKK2NvbmRpdGlvbmFsIHNlY3Rpb25zIGluIGludGVybmFsIHN1YnNldC4gIFRPIERPOiAgc2ltcGxpZnkKK3Byb2R1Y3Rpb24gZm9yIGlnbm9yZWQgc2VjdGlvbnMgYXMgYSByZXN1bHQsIHNpbmNlIHdlIGRvbid0IAorbmVlZCB0byB3b3JyeSBhYm91dCBwYXJzZXJzIHdoaWNoIGRvbid0IGV4cGFuZCBQRXJlZnMgZmluZGluZworYSBjb25kaXRpb25hbCBzZWN0aW9uLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0yOSA6IFRCIDogdmFyaW91cyBlZGl0czwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0yOSA6IENNU01jUSA6IGZ1cnRoZXIgY2hhbmdlczoKK1N1cHByZXNzIG9sZCBGSU5BTCBFRElUIGNvbW1lbnRzIGFuZCBzb21lIGRlYWQgbWF0ZXJpYWwuCitSZXZpc2Ugb2NjdXJyZW5jZXMgb2YgJSBpbiBncmFtbWFyIHRvIGV4cGxvaXQgSGVucnkgVGhvbXBzb24ncyBwdW4sCitlc3BlY2lhbGx5IG1hcmt1cGRlY2wgYW5kIGF0dGRlZi4KK1JlbW92ZSBSTUQgcmVxdWlyZW1lbnQgcmVsYXRpbmcgdG8gZWxlbWVudCBjb250ZW50ICg/KS4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0yOCA6IENNU01jUSA6IFZhcmlvdXMgY2hhbmdlcyBmb3IgMSBKdWx5IGRyYWZ0OgorQWRkIHRleHQgZm9yIGRyYWNvbmlhbiBlcnJvciBoYW5kbGluZyAoaW50cm9kdWNlCit0aGUgdGVybSBGYXRhbCBFcnJvcikuCitSRSBkZWxldGEgZXN0IChjaGFuZ2luZyB3b3JkaW5nIGZyb20gCitvcmlnaW5hbCBhbm5vdW5jZW1lbnQgdG8gcmVzdHJpY3QgdGhlIHJlcXVpcmVtZW50IHRvIHZhbGlkYXRpbmcKK3BhcnNlcnMpLgorVGFnIGRlZmluaXRpb24gb2YgdmFsaWRhdGluZyBwcm9jZXNzb3IgYW5kIGxpbmsgdG8gaXQuCitBZGQgY29sb24gYXMgbmFtZSBjaGFyYWN0ZXIuCitDaGFuZ2UgZGVmIG9mICVvcGVyYXRvci4KK0NoYW5nZSBzdGFuZGFyZCBkZWZpbml0aW9ucyBvZiBsdCwgZ3QsIGFtcC4KK1N0cmlwIGxlYWRpbmcgemVyb3MgZnJvbSAjeDAwbm4gZm9ybXMuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTA0LTAyIDogQ01TTWNRIDogZmluYWwgY29ycmVjdGlvbnMgb2YgZWRpdG9yaWFsIGVycm9ycworZm91bmQgaW4gbGFzdCBuaWdodCdzIHByb29mcmVhZGluZy4gIFJldmVyc2UgY291cnNlIG9uY2UgbW9yZSBvbgord2VsbC1mb3JtZWQ6ICAgV2Vic3RlcidzIFNlY29uZCBoeXBoZW5hdGVzIGl0LCBhbmQgdGhhdCdzIGVub3VnaAorZm9yIG1lLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNC0wMSA6IENNU01jUSA6IGNvcnJlY3Rpb25zIGZyb20gSkpDLCBFTSwgSFQsIGFuZCBzZWxmPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTMxIDogVGltIEJyYXkgOiBtYW55IGNoYW5nZXM8L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjkgOiBDTVNNY1EgOiBzb21lIEhlbnJ5IFRob21wc29uIChvbiBlbnRpdHkgaGFuZGxpbmcpLAorc29tZSBDaGFybGVzIEdvbGRmYXJiLCBzb21lIEVSQiBkZWNpc2lvbnMgKFBFIGhhbmRsaW5nIGluIG1pc2NlbGxhbmVvdXMKK2RlY2xhcmF0aW9ucy4gIENoYW5nZWQgSWRlbnQgZWxlbWVudCB0byBhY2NlcHQgZGVmIGF0dHJpYnV0ZS4KK0FsbG93IG5vcm1hbGl6YXRpb24gb2YgVW5pY29kZSBjaGFyYWN0ZXJzLiAgbW92ZSBkZWYgb2Ygc3lzdGVtbGl0ZXJhbAoraW50byBzZWN0aW9uIG9uIGxpdGVyYWxzLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yOCA6IENNU01jUSA6IG1ha2UgYXMgbWFueSBjb3JyZWN0aW9ucyBhcyBwb3NzaWJsZSwgZnJvbQorVGVycnkgQWxsZW4sIE5vcmJlcnQgTWlrdWxhLCBKYW1lcyBDbGFyaywgSm9uIEJvc2FrLCBIZW5yeSBUaG9tcHNvbiwKK1BhdWwgR3Jvc3NvLCBhbmQgc2VsZi4gIEFtb25nIG90aGVyIHRoaW5nczogIGdpdmUgaW4gb24gIndlbGwgZm9ybWVkIgorKFRlcnJ5IGlzIHJpZ2h0KSwgdGVudGF0aXZlbHkgcmVuYW1lIFF1b3RlZENEYXRhIGFzIEF0dFZhbHVlCithbmQgTGl0ZXJhbCBhcyBFbnRpdHlWYWx1ZSB0byBiZSBtb3JlIGluZm9ybWF0aXZlLCBzaW5jZSBhdHRyaWJ1dGUKK3ZhbHVlcyBhcmUgdGhlIDxlbXBoPm9ubHk8L2VtcGg+IHBsYWNlIFF1b3RlZENEYXRhIHdhcyB1c2VkLCBhbmQKK3ZpY2UgdmVyc2EgZm9yIGVudGl0eSB0ZXh0IGFuZCBMaXRlcmFsLiAoSSdkIGNhbGwgaXQgRW50aXR5IFRleHQsIAorYnV0IDg4NzkgdXNlcyB0aGF0IG5hbWUgZm9yIGJvdGggaW50ZXJuYWwgYW5kIGV4dGVybmFsIGVudGl0aWVzLik8L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjYgOiBDTVNNY1EgOiByZXN5bmNoIHRoZSB0d28gZm9ya3Mgb2YgdGhpcyBkcmFmdCwgcmVhcHBseQorbXkgY2hhbmdlcyBkYXRlZCAwMy0yMCBhbmQgMDMtMjEuICBOb3JtYWxpemUgb2xkICdtYXkgbm90JyB0byAnbXVzdCBub3QnCitleGNlcHQgaW4gdGhlIG9uZSBjYXNlIHdoZXJlIGl0IG1lYW50ICdtYXkgb3IgbWF5IG5vdCcuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTIxIDogVEIgOiBtYXNzaXZlIGNoYW5nZXMgb24gcGxhbmUgZmxpZ2h0IGZyb20gQ2hpY2FnbwordG8gVmFuY291dmVyPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTIxIDogQ01TTWNRIDogY29ycmVjdCBhcyBtYW55IHJlcG9ydGVkIGVycm9ycyBhcyBwb3NzaWJsZS4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yMCA6IENNU01jUSA6IGNvcnJlY3QgdHlwb3MgbGlzdGVkIGluIENNU01jUSBoYW5kIGNvcHkgb2Ygc3BlYy48L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjAgOiBDTVNNY1EgOiBjb3NtZXRpYyBjaGFuZ2VzIHByZXBhcmF0b3J5IHRvIHJldmlzaW9uIGZvcgorV1dXIGNvbmZlcmVuY2UgQXByaWwgMTk5NzogIHJlc3RvcmUgc29tZSBvZiB0aGUgaW50ZXJuYWwgZW50aXR5IAorcmVmZXJlbmNlcyAoZS5nLiB0byBkb2NkYXRlLCBldGMuKSwgY2hhbmdlIGNoYXJhY3RlciB4QTAgdG8gJmFtcDtuYnNwOworYW5kIGRlZmluZSBuYnNwIGFzICZhbXA7IzE2MDssIGFuZCByZWZpbGwgYSBsb3Qgb2YgcGFyYWdyYXBocyBmb3IKK2xlZ2liaWxpdHkuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTExLTEyIDogQ01TTWNRIDogcmV2aXNlIHVzaW5nIFRpbSdzIGVkaXRzOgorQWRkIGxpc3QgdHlwZSBvZiBOVU1CRVJFRCBhbmQgY2hhbmdlIG1vc3QgbGlzdHMgZWl0aGVyIHRvCitCVUxMRVRTIG9yIHRvIE5VTUJFUkVELgorU3VwcHJlc3MgUXVvdGVkTmFtZXMsIE5hbWVzIChub3QgdXNlZCkuCitDb3JyZWN0IHRyaXZpYWwtZ3JhbW1hciBkb2MgdHlwZSBkZWNsLgorUmVuYW1lICdtYXJrZWQgc2VjdGlvbicgYXMgJ0NEQVRBIHNlY3Rpb24nIHBhc3NpbS4KK0Fsc28gZWRpdHMgZnJvbSBKYW1lcyBDbGFyazoKK0RlZmluZSB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgZnJvbSB3aGljaCBbXmFiY10gc3VidHJhY3RzLgorQ2hhcnJlZiBzaG91bGQgdXNlIGp1c3QgWzAtOV0gbm90IERpZ2l0LgorTG9jYXRpb24gaW5mbyBuZWVkcyBjbGVhbmVyIHRyZWF0bWVudDogIHJlbW92ZT8gIChFUkIKK3F1ZXN0aW9uKS4KK09uZSBleGFtcGxlIG9mIGEgUEkgaGFzIHdyb25nIHBpYy4KK0NsYXJpZnkgZGlzY3Vzc2lvbiBvZiBlbmNvZGluZyBuYW1lcy4KK0VuY29kaW5nIGZhaWx1cmUgc2hvdWxkIGxlYWQgdG8gdW5zcGVjaWZpZWQgcmVzdWx0czsgZG9uJ3QKK3ByZXNjcmliZSBlcnJvciByZWNvdmVyeS4KK0Rvbid0IHJlcXVpcmUgZXhwb3N1cmUgb2YgZW50aXR5IGJvdW5kYXJpZXMuCitJZ25vcmUgd2hpdGUgc3BhY2UgaW4gZWxlbWVudCBjb250ZW50LgorUmVzZXJ2ZSBlbnRpdHkgbmFtZXMgb2YgdGhlIGZvcm0gdS1OTk5OLgorQ2xhcmlmeSByZWxhdGl2ZSBVUkxzLgorQW5kIHNvbWUgb2YgbXkgb3duOgorQ29ycmVjdCBwcm9kdWN0aW9ucyBmb3IgY29udGVudCBtb2RlbDogIG1vZGVsIGNhbm5vdAorY29uc2lzdCBvZiBhIG5hbWUsIHNvICJlbGVtZW50cyA6Oj0gY3AiIGlzIG5vIGdvb2QuCis8L3NpdGVtPgorPHNpdGVtPjE5OTYtMTEtMTEgOiBDTVNNY1EgOiByZXZpc2UgZm9yIHN0eWxlLgorQWRkIG5ldyByaHMgdG8gZW50aXR5IGRlY2xhcmF0aW9uLCBmb3IgcGFyYW1ldGVyIGVudGl0aWVzLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMS0xMCA6IENNU01jUSA6IHJldmlzZSBmb3Igc3R5bGUuCitGaXggLyBjb21wbGV0ZSBzZWN0aW9uIG9uIG5hbWVzLCBjaGFyYWN0ZXJzLgorQWRkIHNlY3Rpb25zIG9uIHBhcmFtZXRlciBlbnRpdGllcywgY29uZGl0aW9uYWwgc2VjdGlvbnMuCitTdGlsbCB0byBkbzogIEFkZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gZGV0ZXJtaW5pc3RpYyBjb250ZW50IG1vZGVscy4KK0ZpbmlzaCBzdHlsaXN0aWMgcmV2aXNpb24uPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTMxIDogVEIgOiBBZGQgRW50aXR5IEhhbmRsaW5nIHNlY3Rpb248L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMzAgOiBUQiA6IENsZWFuIHVwIHRlcm0gJmFtcDsgdGVybWRlZi4gIFNsaXAgaW4KK0VSQiBkZWNpc2lvbiByZSBFTVBUWS48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMjggOiBUQiA6IENoYW5nZSBEVEQuICBJbXBsZW1lbnQgc29tZSBvZiBNaWNoYWVsJ3MKK3N1Z2dlc3Rpb25zLiAgQ2hhbmdlIGNvbW1lbnRzIGJhY2sgdG8gLy8uICBJbnRyb2R1Y2UgbGFuZ3VhZ2UgZm9yCitYTUwgbmFtZXNwYWNlIHJlc2VydmF0aW9uLiAgQWRkIHNlY3Rpb24gb24gd2hpdGUtc3BhY2UgaGFuZGxpbmcuCitMb3RzIG1vcmUgY2xlYW51cC48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMjQgOiBDTVNNY1EgOiBxdWljayB0d2Vha3MsIGltcGxlbWVudCBzb21lIEVSQgorZGVjaXNpb25zLiAgQ2hhcmFjdGVycyBhcmUgbm90IGludGVnZXJzLiAgQ29tbWVudHMgYXJlIC8qICovIG5vdCAvLy4KK0FkZCBiaWJsaW9ncmFwaGljIHJlZnMgdG8gMTA2NDYsIEh5VGltZSwgVW5pY29kZS4KK1JlbmFtZSBvbGQgQ2RhdGEgYXMgTXNEYXRhIHNpbmNlIGl0J3MgPGVtcGg+b25seTwvZW1waD4gc2VlbgoraW4gbWFya2VkIHNlY3Rpb25zLiAgQ2FsbCB0aGVtIGF0dHJpYnV0ZS12YWx1ZSBwYWlycyBub3QKK25hbWUtdmFsdWUgcGFpcnMsIGV4Y2VwdCBvbmNlLiAgSW50ZXJuYWwgc3Vic2V0IGlzIG9wdGlvbmFsLCBuZWVkcworJz8nLiAgSW1wbGllZCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzaWduYWxlZCB0byB0aGUgYXBwLCBub3QKK2hhdmUgdmFsdWVzIHN1cHBsaWVkIGJ5IHByb2Nlc3Nvci48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMTYgOiBUQiA6IHRyYWNrIGRvd24gJmFtcDsgZXhjaXNlIGFsbCBEU0QgcmVmZXJlbmNlczsKK2ludHJvZHVjZSBzb21lIEVCTkYgZm9yIGVudGl0eSBkZWNsYXJhdGlvbnMuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLT8/IDogVEIgOiBjb25zaXN0ZW5jeSBjaGVjaywgZml4IHVwIHNjcmFwcyBzbwordGhleSBhbGwgcGFyc2UsIGdldCBmb3JtYXR0ZXIgd29ya2luZywgY29ycmVjdCBhIGZldyBwcm9kdWN0aW9ucy48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMTAvMTEgOiBDTVNNY1EgOiB2YXJpb3VzIG1haW50ZW5hbmNlLCBzdHlsaXN0aWMsIGFuZAorb3JnYW5pemF0aW9uYWwgY2hhbmdlczoKK1JlcGxhY2UgYSBmZXcgbGl0ZXJhbHMgd2l0aCB4bWxwaW8gYW5kCitwaWMgZW50aXRpZXMsIHRvIG1ha2UgdGhlbSBjb25zaXN0ZW50IGFuZCBlbnN1cmUgd2UgY2FuIGNoYW5nZSBwaWMKK3JlbGlhYmx5IHdoZW4gdGhlIEVSQiB2b3Rlcy4KK0Ryb3AgcGFyYWdyYXBoIG9uIHJlY29nbml6ZXJzIGZyb20gbm90YXRpb24gc2VjdGlvbi4KK0FkZCBtYXRjaCwgZXhhY3QgbWF0Y2ggdG8gdGVybWlub2xvZ3kuCitNb3ZlIG9sZCAyLjIgWE1MIFByb2Nlc3NvcnMgYW5kIEFwcHMgaW50byBpbnRyby4KK01lbnRpb24gY29tbWVudHMsIFBJcywgYW5kIG1hcmtlZCBzZWN0aW9ucyBpbiBkaXNjdXNzaW9uIG9mCitkZWxpbWl0ZXIgZXNjYXBpbmcuCitTdHJlYW1saW5lIGRpc2N1c3Npb24gb2YgZG9jdHlwZSBkZWNsIHN5bnRheC4KK0Ryb3Agb2xkIHNlY3Rpb24gb2YgJ1BJIHN5bnRheCcgZm9yIGRvY3R5cGUgZGVjbCwgYW5kIGFkZAorc2VjdGlvbiBvbiBwYXJ0aWFsLURURCBzdW1tYXJ5IFBJcyB0byBlbmQgb2YgTG9naWNhbCBTdHJ1Y3R1cmVzCitzZWN0aW9uLgorUmV2aXNlIERTRCBzeW50YXggc2VjdGlvbiB0byB1c2UgVGltJ3Mgc3Vic2V0LWluLWEtUEkKK21lY2hhbmlzbS48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMTAgOiBUQiA6IGVsaW1pbmF0ZSBuYW1lIHJlY29nbml6ZXJzIChhbmQgbW9yZT8pPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTA5IDogQ01TTWNRIDogcmV2aXNlIGZvciBzdHlsZSwgY29uc2lzdGVuY3kgdGhyb3VnaCAyLjMKKyhDaGFyYWN0ZXJzKTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wOSA6IENNU01jUSA6IHJlLXVuaXRlIGV2ZXJ5dGhpbmcgZm9yIGNvbnZlbmllbmNlLAorYXQgbGVhc3QgdGVtcG9yYXJpbHksIGFuZCByZXZpc2UgcXVpY2tseTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wOCA6IFRCIDogZmlyc3QgbWFqb3IgaG9tb2dlbml6YXRpb24gcGFzczwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wOCA6IFRCIDogdHVybiAiY3VycmVudCIgYXR0cmlidXRlIG9uIGRpdiB0eXBlIGludG8gCitDREFUQTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wMiA6IFRCIDogcmVtb3VsZCBpbnRvIHNrZWxldG9uICsgZW50aXRpZXM8L3NpdGVtPgorPHNpdGVtPjE5OTYtMDktMzAgOiBDTVNNY1EgOiBhZGQgYSBmZXcgbW9yZSBzZWN0aW9ucyBwcmlvciB0byBleGNoYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggVGltLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0wOS0yMCA6IENNU01jUSA6IGZpbmlzaCB0cmFuc2NyaWJpbmcgbm90ZXMuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTA5LTE5IDogQ01TTWNRIDogYmVnaW4gdHJhbnNjcmliaW5nIG5vdGVzIGZvciBkcmFmdC48L3NpdGVtPgorPHNpdGVtPjE5OTYtMDktMTMgOiBDTVNNY1EgOiBtYWRlIG91dGxpbmUgZnJvbSBub3RlcyBvZiAwOS0wNiwKK2RvIHNvbWUgaG91c2VrZWVwaW5nPC9zaXRlbT4KKzwvc2xpc3Q+Cis8L3JldmlzaW9uZGVzYz4KKzwvaGVhZGVyPgorPGJvZHk+IAorPGRpdjEgaWQ9InNlYy1pbnRybyI+Cis8aGVhZD5JbnRyb2R1Y3Rpb248L2hlYWQ+Cis8cD5FeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSwgYWJicmV2aWF0ZWQgWE1MLCBkZXNjcmliZXMgYSBjbGFzcyBvZgorZGF0YSBvYmplY3RzIGNhbGxlZCA8dGVybXJlZiBkZWY9ImR0LXhtbC1kb2MiPlhNTCBkb2N1bWVudHM8L3Rlcm1yZWY+IGFuZAorcGFydGlhbGx5IGRlc2NyaWJlcyB0aGUgYmVoYXZpb3Igb2YgCitjb21wdXRlciBwcm9ncmFtcyB3aGljaCBwcm9jZXNzIHRoZW0uIFhNTCBpcyBhbiBhcHBsaWNhdGlvbiBwcm9maWxlIG9yCityZXN0cmljdGVkIGZvcm0gb2YgU0dNTCwgdGhlIFN0YW5kYXJkIEdlbmVyYWxpemVkIE1hcmt1cCAKK0xhbmd1YWdlIDxiaWJyZWYgcmVmPSJJU084ODc5Ii8+LgorQnkgY29uc3RydWN0aW9uLCBYTUwgZG9jdW1lbnRzIAorYXJlIGNvbmZvcm1pbmcgU0dNTCBkb2N1bWVudHMuCis8L3A+Cis8cD5YTUwgZG9jdW1lbnRzIGFyZSBtYWRlIHVwIG9mIHN0b3JhZ2UgdW5pdHMgY2FsbGVkIDx0ZXJtcmVmIGRlZj0iZHQtZW50aXR5Ij5lbnRpdGllczwvdGVybXJlZj4sIHdoaWNoIGNvbnRhaW4gZWl0aGVyIHBhcnNlZAorb3IgdW5wYXJzZWQgZGF0YS4KK1BhcnNlZCBkYXRhIGlzIG1hZGUgdXAgb2YgPHRlcm1yZWYgZGVmPSJkdC1jaGFyYWN0ZXIiPmNoYXJhY3RlcnM8L3Rlcm1yZWY+LAorc29tZSAKK29mIHdoaWNoIGZvcm0gPHRlcm1yZWYgZGVmPSJkdC1jaGFyZGF0YSI+Y2hhcmFjdGVyIGRhdGE8L3Rlcm1yZWY+LCAKK2FuZCBzb21lIG9mIHdoaWNoIGZvcm0gPHRlcm1yZWYgZGVmPSJkdC1tYXJrdXAiPm1hcmt1cDwvdGVybXJlZj4uCitNYXJrdXAgZW5jb2RlcyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBkb2N1bWVudCdzIHN0b3JhZ2UgbGF5b3V0IGFuZAorbG9naWNhbCBzdHJ1Y3R1cmUuIFhNTCBwcm92aWRlcyBhIG1lY2hhbmlzbSB0byBpbXBvc2UgY29uc3RyYWludHMgb24KK3RoZSBzdG9yYWdlIGxheW91dCBhbmQgbG9naWNhbCBzdHJ1Y3R1cmUuPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LXhtbC1wcm9jIiB0ZXJtPSJYTUwgUHJvY2Vzc29yIj5BIHNvZnR3YXJlIG1vZHVsZQorY2FsbGVkIGFuIDx0ZXJtPlhNTCBwcm9jZXNzb3I8L3Rlcm0+IGlzIHVzZWQgdG8gcmVhZCBYTUwgZG9jdW1lbnRzCithbmQgcHJvdmlkZSBhY2Nlc3MgdG8gdGhlaXIgY29udGVudCBhbmQgc3RydWN0dXJlLjwvdGVybWRlZj4gPHRlcm1kZWYgaWQ9ImR0LWFwcCIgdGVybT0iQXBwbGljYXRpb24iPkl0IGlzIGFzc3VtZWQgdGhhdCBhbiBYTUwgcHJvY2Vzc29yIGlzCitkb2luZyBpdHMgd29yayBvbiBiZWhhbGYgb2YgYW5vdGhlciBtb2R1bGUsIGNhbGxlZCB0aGUKKzx0ZXJtPmFwcGxpY2F0aW9uPC90ZXJtPi48L3Rlcm1kZWY+IFRoaXMgc3BlY2lmaWNhdGlvbiBkZXNjcmliZXMgdGhlCityZXF1aXJlZCBiZWhhdmlvciBvZiBhbiBYTUwgcHJvY2Vzc29yIGluIHRlcm1zIG9mIGhvdyBpdCBtdXN0IHJlYWQgWE1MCitkYXRhIGFuZCB0aGUgaW5mb3JtYXRpb24gaXQgbXVzdCBwcm92aWRlIHRvIHRoZSBhcHBsaWNhdGlvbi48L3A+CisgCis8ZGl2MiBpZD0ic2VjLW9yaWdpbi1nb2FscyI+Cis8aGVhZD5PcmlnaW4gYW5kIEdvYWxzPC9oZWFkPgorPHA+WE1MIHdhcyBkZXZlbG9wZWQgYnkgYW4gWE1MIFdvcmtpbmcgR3JvdXAgKG9yaWdpbmFsbHkga25vd24gYXMgdGhlCitTR01MIEVkaXRvcmlhbCBSZXZpZXcgQm9hcmQpIGZvcm1lZCB1bmRlciB0aGUgYXVzcGljZXMgb2YgdGhlIFdvcmxkCitXaWRlIFdlYiBDb25zb3J0aXVtIChXM0MpIGluIDE5OTYuCitJdCB3YXMgY2hhaXJlZCBieSBKb24gQm9zYWsgb2YgU3VuCitNaWNyb3N5c3RlbXMgd2l0aCB0aGUgYWN0aXZlIHBhcnRpY2lwYXRpb24gb2YgYW4gWE1MIFNwZWNpYWwKK0ludGVyZXN0IEdyb3VwIChwcmV2aW91c2x5IGtub3duIGFzIHRoZSBTR01MIFdvcmtpbmcgR3JvdXApIGFsc28KK29yZ2FuaXplZCBieSB0aGUgVzNDLiBUaGUgbWVtYmVyc2hpcCBvZiB0aGUgWE1MIFdvcmtpbmcgR3JvdXAgaXMgZ2l2ZW4KK2luIGFuIGFwcGVuZGl4LiBEYW4gQ29ubm9sbHkgc2VydmVkIGFzIHRoZSBXRydzIGNvbnRhY3Qgd2l0aCB0aGUgVzNDLgorPC9wPgorPHA+VGhlIGRlc2lnbiBnb2FscyBmb3IgWE1MIGFyZTo8b2xpc3Q+Cis8aXRlbT48cD5YTUwgc2hhbGwgYmUgc3RyYWlnaHRmb3J3YXJkbHkgdXNhYmxlIG92ZXIgdGhlCitJbnRlcm5ldC48L3A+PC9pdGVtPgorPGl0ZW0+PHA+WE1MIHNoYWxsIHN1cHBvcnQgYSB3aWRlIHZhcmlldHkgb2YgYXBwbGljYXRpb25zLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5YTUwgc2hhbGwgYmUgY29tcGF0aWJsZSB3aXRoIFNHTUwuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPkl0IHNoYWxsIGJlIGVhc3kgdG8gd3JpdGUgcHJvZ3JhbXMgd2hpY2ggcHJvY2VzcyBYTUwKK2RvY3VtZW50cy48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VGhlIG51bWJlciBvZiBvcHRpb25hbCBmZWF0dXJlcyBpbiBYTUwgaXMgdG8gYmUga2VwdCB0byB0aGUKK2Fic29sdXRlIG1pbmltdW0sIGlkZWFsbHkgemVyby48L3A+PC9pdGVtPgorPGl0ZW0+PHA+WE1MIGRvY3VtZW50cyBzaG91bGQgYmUgaHVtYW4tbGVnaWJsZSBhbmQgcmVhc29uYWJseQorY2xlYXIuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRoZSBYTUwgZGVzaWduIHNob3VsZCBiZSBwcmVwYXJlZCBxdWlja2x5LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgZGVzaWduIG9mIFhNTCBzaGFsbCBiZSBmb3JtYWwgYW5kIGNvbmNpc2UuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlhNTCBkb2N1bWVudHMgc2hhbGwgYmUgZWFzeSB0byBjcmVhdGUuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRlcnNlbmVzcyBpbiBYTUwgbWFya3VwIGlzIG9mIG1pbmltYWwgaW1wb3J0YW5jZS48L3A+PC9pdGVtPjwvb2xpc3Q+Cis8L3A+Cis8cD5UaGlzIHNwZWNpZmljYXRpb24sIAordG9nZXRoZXIgd2l0aCBhc3NvY2lhdGVkIHN0YW5kYXJkcworKFVuaWNvZGUgYW5kIElTTy9JRUMgMTA2NDYgZm9yIGNoYXJhY3RlcnMsCitJbnRlcm5ldCBSRkMgMTc2NiBmb3IgbGFuZ3VhZ2UgaWRlbnRpZmljYXRpb24gdGFncywgCitJU08gNjM5IGZvciBsYW5ndWFnZSBuYW1lIGNvZGVzLCBhbmQgCitJU08gMzE2NiBmb3IgY291bnRyeSBuYW1lIGNvZGVzKSwKK3Byb3ZpZGVzIGFsbCB0aGUgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IHRvIHVuZGVyc3RhbmQgCitYTUwgVmVyc2lvbiAmWE1MLnZlcnNpb247CithbmQgY29uc3RydWN0IGNvbXB1dGVyIHByb2dyYW1zIHRvIHByb2Nlc3MgaXQuPC9wPgorPHA+VGhpcyB2ZXJzaW9uIG9mIHRoZSBYTUwgc3BlY2lmaWNhdGlvbgorPCEtLSBpcyBmb3IgJmRvYy5hdWRpZW5jZTsuLS0+CismZG9jLmRpc3RyaWJ1dGlvbjsuPC9wPgorCis8L2RpdjI+CisgCisKKworIAorPGRpdjIgaWQ9InNlYy10ZXJtaW5vbG9neSI+Cis8aGVhZD5UZXJtaW5vbG9neTwvaGVhZD4KKyAKKzxwPlRoZSB0ZXJtaW5vbG9neSB1c2VkIHRvIGRlc2NyaWJlIFhNTCBkb2N1bWVudHMgaXMgZGVmaW5lZCBpbiB0aGUgYm9keSBvZgordGhpcyBzcGVjaWZpY2F0aW9uLgorVGhlIHRlcm1zIGRlZmluZWQgaW4gdGhlIGZvbGxvd2luZyBsaXN0IGFyZSB1c2VkIGluIGJ1aWxkaW5nIHRob3NlCitkZWZpbml0aW9ucyBhbmQgaW4gZGVzY3JpYmluZyB0aGUgYWN0aW9ucyBvZiBhbiBYTUwgcHJvY2Vzc29yOgorPGdsaXN0PgorPGdpdGVtPgorPGxhYmVsPm1heTwvbGFiZWw+Cis8ZGVmPjxwPjx0ZXJtZGVmIGlkPSJkdC1tYXkiIHRlcm09Ik1heSI+Q29uZm9ybWluZyBkb2N1bWVudHMgYW5kIFhNTAorcHJvY2Vzc29ycyBhcmUgcGVybWl0dGVkIHRvIGJ1dCBuZWVkIG5vdCBiZWhhdmUgYXMKK2Rlc2NyaWJlZC48L3Rlcm1kZWY+PC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD5tdXN0PC9sYWJlbD4KKzxkZWY+PHA+Q29uZm9ybWluZyBkb2N1bWVudHMgYW5kIFhNTCBwcm9jZXNzb3JzIAorYXJlIHJlcXVpcmVkIHRvIGJlaGF2ZSBhcyBkZXNjcmliZWQ7IG90aGVyd2lzZSB0aGV5IGFyZSBpbiBlcnJvci4KKzwhLS0gZG8gTk9UIGNoYW5nZSB0aGlzISB0aGlzIGlzIHdoYXQgZGVmaW5lcyBhIHZpb2xhdGlvbiBvZgorYSAnbXVzdCcgY2xhdXNlIGFzICdhbiBlcnJvcicuIC1NU00gLS0+Cis8L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmVycm9yPC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LWVycm9yIiB0ZXJtPSJFcnJvciI+QSB2aW9sYXRpb24gb2YgdGhlIHJ1bGVzIG9mIHRoaXMKK3NwZWNpZmljYXRpb247IHJlc3VsdHMgYXJlCit1bmRlZmluZWQuICBDb25mb3JtaW5nIHNvZnR3YXJlIG1heSBkZXRlY3QgYW5kIHJlcG9ydCBhbiBlcnJvciBhbmQgbWF5CityZWNvdmVyIGZyb20gaXQuPC90ZXJtZGVmPjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+ZmF0YWwgZXJyb3I8L2xhYmVsPgorPGRlZj48cD48dGVybWRlZiBpZD0iZHQtZmF0YWwiIHRlcm09IkZhdGFsIEVycm9yIj5BbiBlcnJvcgord2hpY2ggYSBjb25mb3JtaW5nIDx0ZXJtcmVmIGRlZj0iZHQteG1sLXByb2MiPlhNTCBwcm9jZXNzb3I8L3Rlcm1yZWY+CittdXN0IGRldGVjdCBhbmQgcmVwb3J0IHRvIHRoZSBhcHBsaWNhdGlvbi4KK0FmdGVyIGVuY291bnRlcmluZyBhIGZhdGFsIGVycm9yLCB0aGUKK3Byb2Nlc3NvciBtYXkgY29udGludWUKK3Byb2Nlc3NpbmcgdGhlIGRhdGEgdG8gc2VhcmNoIGZvciBmdXJ0aGVyIGVycm9ycyBhbmQgbWF5IHJlcG9ydCBzdWNoCitlcnJvcnMgdG8gdGhlIGFwcGxpY2F0aW9uLiAgSW4gb3JkZXIgdG8gc3VwcG9ydCBjb3JyZWN0aW9uIG9mIGVycm9ycywKK3RoZSBwcm9jZXNzb3IgbWF5IG1ha2UgdW5wcm9jZXNzZWQgZGF0YSBmcm9tIHRoZSBkb2N1bWVudCAod2l0aAoraW50ZXJtaW5nbGVkIGNoYXJhY3RlciBkYXRhIGFuZCBtYXJrdXApIGF2YWlsYWJsZSB0byB0aGUgYXBwbGljYXRpb24uCitPbmNlIGEgZmF0YWwgZXJyb3IgaXMgZGV0ZWN0ZWQsIGhvd2V2ZXIsIHRoZSBwcm9jZXNzb3IgbXVzdCBub3QKK2NvbnRpbnVlIG5vcm1hbCBwcm9jZXNzaW5nIChpLmUuLCBpdCBtdXN0IG5vdAorY29udGludWUgdG8gcGFzcyBjaGFyYWN0ZXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRvY3VtZW50J3MKK2xvZ2ljYWwgc3RydWN0dXJlIHRvIHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUgbm9ybWFsIHdheSkuCis8L3Rlcm1kZWY+PC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD5hdCB1c2VyIG9wdGlvbjwvbGFiZWw+Cis8ZGVmPjxwPkNvbmZvcm1pbmcgc29mdHdhcmUgbWF5IG9yIG11c3QgKGRlcGVuZGluZyBvbiB0aGUgbW9kYWwgdmVyYiBpbiB0aGUKK3NlbnRlbmNlKSBiZWhhdmUgYXMgZGVzY3JpYmVkOyBpZiBpdCBkb2VzLCBpdCBtdXN0Citwcm92aWRlIHVzZXJzIGEgbWVhbnMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGJlaGF2aW9yCitkZXNjcmliZWQuPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD52YWxpZGl0eSBjb25zdHJhaW50PC9sYWJlbD4KKzxkZWY+PHA+QSBydWxlIHdoaWNoIGFwcGxpZXMgdG8gYWxsIAorPHRlcm1yZWYgZGVmPSJkdC12YWxpZCI+dmFsaWQ8L3Rlcm1yZWY+IFhNTCBkb2N1bWVudHMuCitWaW9sYXRpb25zIG9mIHZhbGlkaXR5IGNvbnN0cmFpbnRzIGFyZSBlcnJvcnM7IHRoZXkgbXVzdCwgYXQgdXNlciBvcHRpb24sIAorYmUgcmVwb3J0ZWQgYnkgCis8dGVybXJlZiBkZWY9ImR0LXZhbGlkYXRpbmciPnZhbGlkYXRpbmcgWE1MIHByb2Nlc3NvcnM8L3Rlcm1yZWY+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+d2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnQ8L2xhYmVsPgorPGRlZj48cD5BIHJ1bGUgd2hpY2ggYXBwbGllcyB0byBhbGwgPHRlcm1yZWYgZGVmPSJkdC13ZWxsZm9ybWVkIj53ZWxsLWZvcm1lZDwvdGVybXJlZj4gWE1MIGRvY3VtZW50cy4KK1Zpb2xhdGlvbnMgb2Ygd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnRzIGFyZSAKKzx0ZXJtcmVmIGRlZj0iZHQtZmF0YWwiPmZhdGFsIGVycm9yczwvdGVybXJlZj4uPC9wPjwvZGVmPgorPC9naXRlbT4KKworPGdpdGVtPgorPGxhYmVsPm1hdGNoPC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LW1hdGNoIiB0ZXJtPSJtYXRjaCI+KE9mIHN0cmluZ3Mgb3IgbmFtZXM6KSAKK1R3byBzdHJpbmdzIG9yIG5hbWVzIGJlaW5nIGNvbXBhcmVkIG11c3QgYmUgaWRlbnRpY2FsLgorQ2hhcmFjdGVycyB3aXRoIG11bHRpcGxlIHBvc3NpYmxlIHJlcHJlc2VudGF0aW9ucyBpbiBJU08vSUVDIDEwNjQ2IChlLmcuCitjaGFyYWN0ZXJzIHdpdGggCitib3RoIHByZWNvbXBvc2VkIGFuZCBiYXNlK2RpYWNyaXRpYyBmb3JtcykgbWF0Y2ggb25seSBpZiB0aGV5IGhhdmUgdGhlCitzYW1lIHJlcHJlc2VudGF0aW9uIGluIGJvdGggc3RyaW5ncy4KK0F0IHVzZXIgb3B0aW9uLCBwcm9jZXNzb3JzIG1heSBub3JtYWxpemUgc3VjaCBjaGFyYWN0ZXJzIHRvCitzb21lIGNhbm9uaWNhbCBmb3JtLgorTm8gY2FzZSBmb2xkaW5nIGlzIHBlcmZvcm1lZC4gCisoT2Ygc3RyaW5ncyBhbmQgcnVsZXMgaW4gdGhlIGdyYW1tYXI6KSAgCitBIHN0cmluZyBtYXRjaGVzIGEgZ3JhbW1hdGljYWwgcHJvZHVjdGlvbiBpZiBpdCBiZWxvbmdzIHRvIHRoZQorbGFuZ3VhZ2UgZ2VuZXJhdGVkIGJ5IHRoYXQgcHJvZHVjdGlvbi4KKyhPZiBjb250ZW50IGFuZCBjb250ZW50IG1vZGVsczopCitBbiBlbGVtZW50IG1hdGNoZXMgaXRzIGRlY2xhcmF0aW9uIHdoZW4gaXQgY29uZm9ybXMKK2luIHRoZSBmYXNoaW9uIGRlc2NyaWJlZCBpbiB0aGUgY29uc3RyYWludAorPHNwZWNyZWYgcmVmPSJlbGVtZW50dmFsaWQiLz4uCis8L3Rlcm1kZWY+Cis8L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmZvciBjb21wYXRpYmlsaXR5PC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LWNvbXBhdCIgdGVybT0iRm9yIENvbXBhdGliaWxpdHkiPkEgZmVhdHVyZSBvZgorWE1MIGluY2x1ZGVkIHNvbGVseSB0byBlbnN1cmUgdGhhdCBYTUwgcmVtYWlucyBjb21wYXRpYmxlIHdpdGggU0dNTC4KKzwvdGVybWRlZj48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmZvciBpbnRlcm9wZXJhYmlsaXR5PC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LWludGVyb3AiIHRlcm09IkZvciBpbnRlcm9wZXJhYmlsaXR5Ij5BCitub24tYmluZGluZyByZWNvbW1lbmRhdGlvbiBpbmNsdWRlZCB0byBpbmNyZWFzZSB0aGUgY2hhbmNlcyB0aGF0IFhNTAorZG9jdW1lbnRzIGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIGV4aXN0aW5nIGluc3RhbGxlZCBiYXNlIG9mIFNHTUwKK3Byb2Nlc3NvcnMgd2hpY2ggcHJlZGF0ZSB0aGUKKyZXZWJTR01MOy48L3Rlcm1kZWY+PC9wPjwvZGVmPgorPC9naXRlbT4KKzwvZ2xpc3Q+Cis8L3A+Cis8L2RpdjI+CisKKyAKKzwvZGl2MT4KKzwhLS0gJkRvY3M7IC0tPgorIAorPGRpdjEgaWQ9InNlYy1kb2N1bWVudHMiPgorPGhlYWQ+RG9jdW1lbnRzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LXhtbC1kb2MiIHRlcm09IlhNTCBEb2N1bWVudCI+CitBIGRhdGEgb2JqZWN0IGlzIGFuCis8dGVybT5YTUwgZG9jdW1lbnQ8L3Rlcm0+IGlmIGl0IGlzCis8dGVybXJlZiBkZWY9ImR0LXdlbGxmb3JtZWQiPndlbGwtZm9ybWVkPC90ZXJtcmVmPiwgYXMKK2RlZmluZWQgaW4gdGhpcyBzcGVjaWZpY2F0aW9uLgorQSB3ZWxsLWZvcm1lZCBYTUwgZG9jdW1lbnQgbWF5IGluIGFkZGl0aW9uIGJlCis8dGVybXJlZiBkZWY9ImR0LXZhbGlkIj52YWxpZDwvdGVybXJlZj4gaWYgaXQgbWVldHMgY2VydGFpbiBmdXJ0aGVyIAorY29uc3RyYWludHMuPC90ZXJtZGVmPjwvcD4KKyAKKzxwPkVhY2ggWE1MIGRvY3VtZW50IGhhcyBib3RoIGEgbG9naWNhbCBhbmQgYSBwaHlzaWNhbCBzdHJ1Y3R1cmUuCitQaHlzaWNhbGx5LCB0aGUgZG9jdW1lbnQgaXMgY29tcG9zZWQgb2YgdW5pdHMgY2FsbGVkIDx0ZXJtcmVmIGRlZj0iZHQtZW50aXR5Ij5lbnRpdGllczwvdGVybXJlZj4uICBBbiBlbnRpdHkgbWF5IDx0ZXJtcmVmIGRlZj0iZHQtZW50cmVmIj5yZWZlcjwvdGVybXJlZj4gdG8gb3RoZXIgZW50aXRpZXMgdG8gY2F1c2UgdGhlaXIKK2luY2x1c2lvbiBpbiB0aGUgZG9jdW1lbnQuIEEgZG9jdW1lbnQgYmVnaW5zIGluIGEgInJvb3QiICBvciA8dGVybXJlZiBkZWY9ImR0LWRvY2VudCI+ZG9jdW1lbnQgZW50aXR5PC90ZXJtcmVmPi4KK0xvZ2ljYWxseSwgdGhlIGRvY3VtZW50IGlzIGNvbXBvc2VkIG9mIGRlY2xhcmF0aW9ucywgZWxlbWVudHMsIAorY29tbWVudHMsCitjaGFyYWN0ZXIgcmVmZXJlbmNlcywgYW5kCitwcm9jZXNzaW5nCitpbnN0cnVjdGlvbnMsIGFsbCBvZiB3aGljaCBhcmUgaW5kaWNhdGVkIGluIHRoZSBkb2N1bWVudCBieSBleHBsaWNpdAorbWFya3VwLgorVGhlIGxvZ2ljYWwgYW5kIHBoeXNpY2FsIHN0cnVjdHVyZXMgbXVzdCBuZXN0IHByb3Blcmx5LCBhcyBkZXNjcmliZWQgIAoraW4gPHNwZWNyZWYgcmVmPSJ3Zi1lbnRpdGllcyIvPi4KKzwvcD4KKyAKKzxkaXYyIGlkPSJzZWMtd2VsbC1mb3JtZWQiPgorPGhlYWQ+V2VsbC1Gb3JtZWQgWE1MIERvY3VtZW50czwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC13ZWxsZm9ybWVkIiB0ZXJtPSJXZWxsLUZvcm1lZCI+CitBIHRleHR1YWwgb2JqZWN0IGlzIAorYSB3ZWxsLWZvcm1lZCBYTUwgZG9jdW1lbnQgaWY6PC90ZXJtZGVmPgorPG9saXN0PgorPGl0ZW0+PHA+VGFrZW4gYXMgYSB3aG9sZSwgaXQKK21hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZCA8bnQgZGVmPSJOVC1kb2N1bWVudCI+ZG9jdW1lbnQ8L250Pi48L3A+PC9pdGVtPgorPGl0ZW0+PHA+SXQKK21lZXRzIGFsbCB0aGUgd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnRzIGdpdmVuIGluIHRoaXMgc3BlY2lmaWNhdGlvbi48L3A+Cis8L2l0ZW0+Cis8aXRlbT48cD5FYWNoIG9mIHRoZSA8dGVybXJlZiBkZWY9ImR0LXBhcnNlZGVudCI+cGFyc2VkIGVudGl0aWVzPC90ZXJtcmVmPiAKK3doaWNoIGlzIHJlZmVyZW5jZWQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB3aXRoaW4gdGhlIGRvY3VtZW50IGlzCis8dGl0bGVyZWYgaHJlZj0id2YtZW50aXRpZXMiPndlbGwtZm9ybWVkPC90aXRsZXJlZj4uPC9wPjwvaXRlbT4KKzwvb2xpc3Q+PC9wPgorPHA+Cis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9ImRvY3VtZW50Ij4KKzxoZWFkPkRvY3VtZW50PC9oZWFkPgorPHByb2QgaWQ9Ik5ULWRvY3VtZW50Ij48bGhzPmRvY3VtZW50PC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULXByb2xvZyI+cHJvbG9nPC9udD4gCis8bnQgZGVmPSJOVC1lbGVtZW50Ij5lbGVtZW50PC9udD4gCis8bnQgZGVmPSJOVC1NaXNjIj5NaXNjPC9udD4qPC9yaHM+PC9wcm9kPgorPC9zY3JhcD4KKzwvcD4KKzxwPk1hdGNoaW5nIHRoZSA8bnQgZGVmPSJOVC1kb2N1bWVudCI+ZG9jdW1lbnQ8L250PiBwcm9kdWN0aW9uIAoraW1wbGllcyB0aGF0OgorPG9saXN0PgorPGl0ZW0+PHA+SXQgY29udGFpbnMgb25lIG9yIG1vcmUKKzx0ZXJtcmVmIGRlZj0iZHQtZWxlbWVudCI+ZWxlbWVudHM8L3Rlcm1yZWY+LjwvcD4KKzwvaXRlbT4KKzwhLS0qIE4uQi4gc29tZSByZWFkZXJzIChub3RhYmx5IEpDKSBmaW5kIHRoZSBmb2xsb3dpbmcKK3BhcmFncmFwaCBhd2t3YXJkIGFuZCByZWR1bmRhbnQuICBJIGFncmVlIGl0J3MgbG9naWNhbGx5IHJlZHVuZGFudDoKK2l0ICpzYXlzKiBpdCBpcyBzdW1tYXJpemluZyB0aGUgbG9naWNhbCBpbXBsaWNhdGlvbnMgb2YKK21hdGNoaW5nIHRoZSBncmFtbWFyLCBhbmQgdGhhdCBtZWFucyBieSBkZWZpbml0aW9uIGl0J3MKK2xvZ2ljYWxseSByZWR1bmRhbnQuICBJIGRvbid0IHRoaW5rIGl0J3MgcmhldG9yaWNhbGx5CityZWR1bmRhbnQgb3IgdW5uZWNlc3NhcnksIHRob3VnaCwgc28gSSdtIGtlZXBpbmcgaXQuICBJdAorY291bGQgaG93ZXZlciB1c2Ugc29tZSByZWNhc3Rpbmcgd2hlbiB0aGUgZWRpdG9ycyBhcmUgZmVlbGluZworc3Ryb25nZXIuIC1NU00gKi0tPgorPGl0ZW0+PHA+PHRlcm1kZWYgaWQ9ImR0LXJvb3QiIHRlcm09IlJvb3QgRWxlbWVudCI+VGhlcmUgaXMgIGV4YWN0bHkKK29uZSBlbGVtZW50LCBjYWxsZWQgdGhlIDx0ZXJtPnJvb3Q8L3Rlcm0+LCBvciBkb2N1bWVudCBlbGVtZW50LCAgbm8KK3BhcnQgb2Ygd2hpY2ggYXBwZWFycyBpbiB0aGUgPHRlcm1yZWYgZGVmPSJkdC1jb250ZW50Ij5jb250ZW50PC90ZXJtcmVmPiBvZiBhbnkgb3RoZXIgZWxlbWVudC48L3Rlcm1kZWY+CitGb3IgYWxsIG90aGVyIGVsZW1lbnRzLCBpZiB0aGUgc3RhcnQtdGFnIGlzIGluIHRoZSBjb250ZW50IG9mIGFub3RoZXIKK2VsZW1lbnQsIHRoZSBlbmQtdGFnIGlzIGluIHRoZSBjb250ZW50IG9mIHRoZSBzYW1lIGVsZW1lbnQuICBNb3JlCitzaW1wbHkgc3RhdGVkLCB0aGUgZWxlbWVudHMsIGRlbGltaXRlZCBieSBzdGFydC0gYW5kIGVuZC10YWdzLCBuZXN0Citwcm9wZXJseSB3aXRoaW4gZWFjaCBvdGhlci4KKzwvcD48L2l0ZW0+Cis8L29saXN0PgorPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LXBhcmVudGNoaWxkIiB0ZXJtPSJQYXJlbnQvQ2hpbGQiPkFzIGEgY29uc2VxdWVuY2UgCitvZiB0aGlzLAorZm9yIGVhY2ggbm9uLXJvb3QgZWxlbWVudAorPGNvZGU+QzwvY29kZT4gaW4gdGhlIGRvY3VtZW50LCB0aGVyZSBpcyBvbmUgb3RoZXIgZWxlbWVudCA8Y29kZT5QPC9jb2RlPgoraW4gdGhlIGRvY3VtZW50IHN1Y2ggdGhhdCAKKzxjb2RlPkM8L2NvZGU+IGlzIGluIHRoZSBjb250ZW50IG9mIDxjb2RlPlA8L2NvZGU+LCBidXQgaXMgbm90IGluCit0aGUgY29udGVudCBvZiBhbnkgb3RoZXIgZWxlbWVudCB0aGF0IGlzIGluIHRoZSBjb250ZW50IG9mCis8Y29kZT5QPC9jb2RlPi4gIAorPGNvZGU+UDwvY29kZT4gaXMgcmVmZXJyZWQgdG8gYXMgdGhlCis8dGVybT5wYXJlbnQ8L3Rlcm0+IG9mIDxjb2RlPkM8L2NvZGU+LCBhbmQgPGNvZGU+QzwvY29kZT4gYXMgYQorPHRlcm0+Y2hpbGQ8L3Rlcm0+IG9mIDxjb2RlPlA8L2NvZGU+LjwvdGVybWRlZj48L3A+PC9kaXYyPgorIAorPGRpdjIgaWQ9ImNoYXJzZXRzIj4KKzxoZWFkPkNoYXJhY3RlcnM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtdGV4dCIgdGVybT0iVGV4dCI+QSBwYXJzZWQgZW50aXR5IGNvbnRhaW5zCis8dGVybT50ZXh0PC90ZXJtPiwgYSBzZXF1ZW5jZSBvZiAKKzx0ZXJtcmVmIGRlZj0iZHQtY2hhcmFjdGVyIj5jaGFyYWN0ZXJzPC90ZXJtcmVmPiwgCit3aGljaCBtYXkgcmVwcmVzZW50IG1hcmt1cCBvciBjaGFyYWN0ZXIgZGF0YS48L3Rlcm1kZWY+IAorPHRlcm1kZWYgaWQ9ImR0LWNoYXJhY3RlciIgdGVybT0iQ2hhcmFjdGVyIj5BIDx0ZXJtPmNoYXJhY3RlcjwvdGVybT4gCitpcyBhbiBhdG9taWMgdW5pdCBvZiB0ZXh0IGFzIHNwZWNpZmllZCBieQorSVNPL0lFQyAxMDY0NiA8YmlicmVmIHJlZj0iSVNPMTA2NDYiLz4uCitMZWdhbCBjaGFyYWN0ZXJzIGFyZSB0YWIsIGNhcnJpYWdlIHJldHVybiwgbGluZSBmZWVkLCBhbmQgdGhlIGxlZ2FsCitncmFwaGljIGNoYXJhY3RlcnMgb2YgVW5pY29kZSBhbmQgSVNPL0lFQyAxMDY0Ni4KK1RoZSB1c2Ugb2YgImNvbXBhdGliaWxpdHkgY2hhcmFjdGVycyIsIGFzIGRlZmluZWQgaW4gc2VjdGlvbiA2LjgKK29mIDxiaWJyZWYgcmVmPSJVbmljb2RlIi8+LCBpcyBkaXNjb3VyYWdlZC4KKzwvdGVybWRlZj4gCis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9ImNoYXIzMiI+Cis8aGVhZD5DaGFyYWN0ZXIgUmFuZ2U8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjQiIHBjdzQ9IjE3LjUiIHBjdzU9IjExIj4KKzxwcm9kIGlkPSJOVC1DaGFyIj48bGhzPkNoYXI8L2xocz4gCis8cmhzPiN4OSB8ICN4QSB8ICN4RCB8IFsjeDIwLSN4RDdGRl0gfCBbI3hFMDAwLSN4RkZGRF0gCit8IFsjeDEwMDAwLSN4MTBGRkZGXTwvcmhzPiAKKzxjb20+YW55IFVuaWNvZGUgY2hhcmFjdGVyLCBleGNsdWRpbmcgdGhlCitzdXJyb2dhdGUgYmxvY2tzLCBGRkZFLCBhbmQgRkZGRi48L2NvbT4gPC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC9wPgorCis8cD5UaGUgbWVjaGFuaXNtIGZvciBlbmNvZGluZyBjaGFyYWN0ZXIgY29kZSBwb2ludHMgaW50byBiaXQgcGF0dGVybnMgbWF5Cit2YXJ5IGZyb20gZW50aXR5IHRvIGVudGl0eS4gQWxsIFhNTCBwcm9jZXNzb3JzIG11c3QgYWNjZXB0IHRoZSBVVEYtOAorYW5kIFVURi0xNiBlbmNvZGluZ3Mgb2YgMTA2NDY7IHRoZSBtZWNoYW5pc21zIGZvciBzaWduYWxpbmcgd2hpY2ggb2YKK3RoZSB0d28gaXMgaW4gdXNlLCBvciBmb3IgYnJpbmdpbmcgb3RoZXIgZW5jb2RpbmdzIGludG8gcGxheSwgYXJlCitkaXNjdXNzZWQgbGF0ZXIsIGluIDxzcGVjcmVmIHJlZj0iY2hhcmVuY29kaW5nIi8+LgorPC9wPgorPCEtLQorPHA+UmVnYXJkbGVzcyBvZiB0aGUgc3BlY2lmaWMgZW5jb2RpbmcgdXNlZCwgYW55IGNoYXJhY3RlciBpbiB0aGUgSVNPL0lFQworMTA2NDYgY2hhcmFjdGVyIHNldCBtYXkgYmUgcmVmZXJyZWQgdG8gYnkgdGhlIGRlY2ltYWwgb3IgaGV4YWRlY2ltYWwKK2VxdWl2YWxlbnQgb2YgaXRzIAorVUNTLTQgY29kZSB2YWx1ZS4KKzwvcD4tLT4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSJzZWMtY29tbW9uLXN5biI+Cis8aGVhZD5Db21tb24gU3ludGFjdGljIENvbnN0cnVjdHM8L2hlYWQ+CisgCis8cD5UaGlzIHNlY3Rpb24gZGVmaW5lcyBzb21lIHN5bWJvbHMgdXNlZCB3aWRlbHkgaW4gdGhlIGdyYW1tYXIuPC9wPgorPHA+PG50IGRlZj0iTlQtUyI+UzwvbnQ+ICh3aGl0ZSBzcGFjZSkgY29uc2lzdHMgb2Ygb25lIG9yIG1vcmUgc3BhY2UgKCN4MjApCitjaGFyYWN0ZXJzLCBjYXJyaWFnZSByZXR1cm5zLCBsaW5lIGZlZWRzLCBvciB0YWJzLgorCis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9IndoaXRlIj4KKzxoZWFkPldoaXRlIFNwYWNlPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI0IiBwY3c0PSIxNy41IiBwY3c1PSIxMSI+Cis8cHJvZCBpZD0iTlQtUyI+PGxocz5TPC9saHM+Cis8cmhzPigjeDIwIHwgI3g5IHwgI3hEIHwgI3hBKSs8L3Jocz4KKzwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD48L3A+Cis8cD5DaGFyYWN0ZXJzIGFyZSBjbGFzc2lmaWVkIGZvciBjb252ZW5pZW5jZSBhcyBsZXR0ZXJzLCBkaWdpdHMsIG9yIG90aGVyCitjaGFyYWN0ZXJzLiAgTGV0dGVycyBjb25zaXN0IG9mIGFuIGFscGhhYmV0aWMgb3Igc3lsbGFiaWMgCitiYXNlIGNoYXJhY3RlciBwb3NzaWJseQorZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY29tYmluaW5nIGNoYXJhY3RlcnMsIG9yIG9mIGFuIGlkZW9ncmFwaGljCitjaGFyYWN0ZXIuICAKK0Z1bGwgZGVmaW5pdGlvbnMgb2YgdGhlIHNwZWNpZmljIGNoYXJhY3RlcnMgaW4gZWFjaCBjbGFzcworYXJlIGdpdmVuIGluIDxzcGVjcmVmIHJlZj0iQ2hhckNsYXNzZXMiLz4uPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LW5hbWUiIHRlcm09Ik5hbWUiPkEgPHRlcm0+TmFtZTwvdGVybT4gaXMgYSB0b2tlbgorYmVnaW5uaW5nIHdpdGggYSBsZXR0ZXIgb3Igb25lIG9mIGEgZmV3IHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMsIGFuZCBjb250aW51aW5nCit3aXRoIGxldHRlcnMsIGRpZ2l0cywgaHlwaGVucywgdW5kZXJzY29yZXMsIGNvbG9ucywgb3IgZnVsbCBzdG9wcywgdG9nZXRoZXIKK2tub3duIGFzIG5hbWUgY2hhcmFjdGVycy48L3Rlcm1kZWY+CitOYW1lcyBiZWdpbm5pbmcgd2l0aCB0aGUgc3RyaW5nICI8Y29kZT54bWw8L2NvZGU+Iiwgb3IgYW55IHN0cmluZword2hpY2ggd291bGQgbWF0Y2ggPGNvZGU+KCgnWCd8J3gnKSAoJ00nfCdtJykgKCdMJ3wnbCcpKTwvY29kZT4sIGFyZQorcmVzZXJ2ZWQgZm9yIHN0YW5kYXJkaXphdGlvbiBpbiB0aGlzIG9yIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzCitzcGVjaWZpY2F0aW9uLgorPC9wPgorPG5vdGU+Cis8cD5UaGUgY29sb24gY2hhcmFjdGVyIHdpdGhpbiBYTUwgbmFtZXMgaXMgcmVzZXJ2ZWQgZm9yIGV4cGVyaW1lbnRhdGlvbiB3aXRoCituYW1lIHNwYWNlcy4gIAorSXRzIG1lYW5pbmcgaXMgZXhwZWN0ZWQgdG8gYmUKK3N0YW5kYXJkaXplZCBhdCBzb21lIGZ1dHVyZSBwb2ludCwgYXQgd2hpY2ggcG9pbnQgdGhvc2UgZG9jdW1lbnRzIAordXNpbmcgdGhlIGNvbG9uIGZvciBleHBlcmltZW50YWwgcHVycG9zZXMgbWF5IG5lZWQgdG8gYmUgdXBkYXRlZC4KKyhUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBhbnkgbmFtZS1zcGFjZSBtZWNoYW5pc20KK2Fkb3B0ZWQgZm9yIFhNTCB3aWxsIGluIGZhY3QgdXNlIHRoZSBjb2xvbiBhcyBhIG5hbWUtc3BhY2UgZGVsaW1pdGVyLikKK0luIHByYWN0aWNlLCB0aGlzIG1lYW5zIHRoYXQgYXV0aG9ycyBzaG91bGQgbm90IHVzZSB0aGUgY29sb24gaW4gWE1MCituYW1lcyBleGNlcHQgYXMgcGFydCBvZiBuYW1lLXNwYWNlIGV4cGVyaW1lbnRzLCBidXQgdGhhdCBYTUwgcHJvY2Vzc29ycworc2hvdWxkIGFjY2VwdCB0aGUgY29sb24gYXMgYSBuYW1lIGNoYXJhY3Rlci48L3A+Cis8L25vdGU+Cis8cD5BbgorPG50IGRlZj0iTlQtTm10b2tlbiI+Tm10b2tlbjwvbnQ+IChuYW1lIHRva2VuKSBpcyBhbnkgbWl4dHVyZSBvZgorbmFtZSBjaGFyYWN0ZXJzLgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+TmFtZXMgYW5kIFRva2VuczwvaGVhZD4KKzxwcm9kIGlkPSJOVC1OYW1lQ2hhciI+PGxocz5OYW1lQ2hhcjwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1MZXR0ZXIiPkxldHRlcjwvbnQ+IAorfCA8bnQgZGVmPSJOVC1EaWdpdCI+RGlnaXQ8L250PiAKK3wgJy4nIHwgJy0nIHwgJ18nIHwgJzonCit8IDxudCBkZWY9Ik5ULUNvbWJpbmluZ0NoYXIiPkNvbWJpbmluZ0NoYXI8L250PiAKK3wgPG50IGRlZj0iTlQtRXh0ZW5kZXIiPkV4dGVuZGVyPC9udD48L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1OYW1lIj48bGhzPk5hbWU8L2xocz4KKzxyaHM+KDxudCBkZWY9Ik5ULUxldHRlciI+TGV0dGVyPC9udD4gfCAnXycgfCAnOicpCisoPG50IGRlZj0iTlQtTmFtZUNoYXIiPk5hbWVDaGFyPC9udD4pKjwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1OYW1lcyI+PGxocz5OYW1lczwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gCisoPG50IGRlZj0iTlQtUyI+UzwvbnQ+IDxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PikqPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9Ik5ULU5tdG9rZW4iPjxsaHM+Tm10b2tlbjwvbGhzPgorPHJocz4oPG50IGRlZj0iTlQtTmFtZUNoYXIiPk5hbWVDaGFyPC9udD4pKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1ObXRva2VucyI+PGxocz5ObXRva2VuczwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1ObXRva2VuIj5ObXRva2VuPC9udD4gKDxudCBkZWY9Ik5ULVMiPlM8L250PiA8bnQgZGVmPSJOVC1ObXRva2VuIj5ObXRva2VuPC9udD4pKjwvcmhzPjwvcHJvZD4KKzwvc2NyYXA+Cis8L3A+Cis8cD5MaXRlcmFsIGRhdGEgaXMgYW55IHF1b3RlZCBzdHJpbmcgbm90IGNvbnRhaW5pbmcKK3RoZSBxdW90YXRpb24gbWFyayB1c2VkIGFzIGEgZGVsaW1pdGVyIGZvciB0aGF0IHN0cmluZy4KK0xpdGVyYWxzIGFyZSB1c2VkCitmb3Igc3BlY2lmeWluZyB0aGUgY29udGVudCBvZiBpbnRlcm5hbCBlbnRpdGllcworKDxudCBkZWY9Ik5ULUVudGl0eVZhbHVlIj5FbnRpdHlWYWx1ZTwvbnQ+KSwKK3RoZSB2YWx1ZXMgb2YgYXR0cmlidXRlcyAoPG50IGRlZj0iTlQtQXR0VmFsdWUiPkF0dFZhbHVlPC9udD4pLCAKK2FuZCBleHRlcm5hbCBpZGVudGlmaWVycyAKKyg8bnQgZGVmPSJOVC1TeXN0ZW1MaXRlcmFsIj5TeXN0ZW1MaXRlcmFsPC9udD4pLiAgCitOb3RlIHRoYXQgYSA8bnQgZGVmPSJOVC1TeXN0ZW1MaXRlcmFsIj5TeXN0ZW1MaXRlcmFsPC9udD4KK2NhbiBiZSBwYXJzZWQgd2l0aG91dCBzY2FubmluZyBmb3IgbWFya3VwLgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+TGl0ZXJhbHM8L2hlYWQ+Cis8cHJvZCBpZD0iTlQtRW50aXR5VmFsdWUiPjxsaHM+RW50aXR5VmFsdWU8L2xocz4KKzxyaHM+JyInIAorKFteJSZhbXA7Il0gCit8IDxudCBkZWY9Ik5ULVBFUmVmZXJlbmNlIj5QRVJlZmVyZW5jZTwvbnQ+IAorfCA8bnQgZGVmPSJOVC1SZWZlcmVuY2UiPlJlZmVyZW5jZTwvbnQ+KSoKKyciJyAKKzwvcmhzPgorPHJocz58Jm5ic3A7IAorIiciIAorKFteJSZhbXA7J10gCit8IDxudCBkZWY9Ik5ULVBFUmVmZXJlbmNlIj5QRVJlZmVyZW5jZTwvbnQ+IAorfCA8bnQgZGVmPSJOVC1SZWZlcmVuY2UiPlJlZmVyZW5jZTwvbnQ+KSogCisiJyI8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1BdHRWYWx1ZSI+PGxocz5BdHRWYWx1ZTwvbGhzPgorPHJocz4nIicgCisoW14mbHQ7JmFtcDsiXSAKK3wgPG50IGRlZj0iTlQtUmVmZXJlbmNlIj5SZWZlcmVuY2U8L250PikqIAorJyInIAorPC9yaHM+Cis8cmhzPnwmbmJzcDsgCisiJyIgCisoW14mbHQ7JmFtcDsnXSAKK3wgPG50IGRlZj0iTlQtUmVmZXJlbmNlIj5SZWZlcmVuY2U8L250PikqIAorIiciPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtU3lzdGVtTGl0ZXJhbCI+PGxocz5TeXN0ZW1MaXRlcmFsPC9saHM+Cis8cmhzPignIicgW14iXSogJyInKSB8Jm5ic3A7KCInIiBbXiddKiAiJyIpCis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1QdWJpZExpdGVyYWwiPjxsaHM+UHViaWRMaXRlcmFsPC9saHM+Cis8cmhzPiciJyA8bnQgZGVmPSJOVC1QdWJpZENoYXIiPlB1YmlkQ2hhcjwvbnQ+KiAKKyciJyAKK3wgIiciICg8bnQgZGVmPSJOVC1QdWJpZENoYXIiPlB1YmlkQ2hhcjwvbnQ+IC0gIiciKSogIiciPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtUHViaWRDaGFyIj48bGhzPlB1YmlkQ2hhcjwvbGhzPgorPHJocz4jeDIwIHwgI3hEIHwgI3hBIAorfCZuYnNwO1thLXpBLVowLTldCit8Jm5ic3A7Wy0nKCkrLC4vOj0/OyEqI0AkXyVdPC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorPC9wPgorCis8L2RpdjI+CisKKzxkaXYyIGlkPSJzeW50YXgiPgorPGhlYWQ+Q2hhcmFjdGVyIERhdGEgYW5kIE1hcmt1cDwvaGVhZD4KKyAKKzxwPjx0ZXJtcmVmIGRlZj0iZHQtdGV4dCI+VGV4dDwvdGVybXJlZj4gY29uc2lzdHMgb2YgaW50ZXJtaW5nbGVkIAorPHRlcm1yZWYgZGVmPSJkdC1jaGFyZGF0YSI+Y2hhcmFjdGVyCitkYXRhPC90ZXJtcmVmPiBhbmQgbWFya3VwLgorPHRlcm1kZWYgaWQ9ImR0LW1hcmt1cCIgdGVybT0iTWFya3VwIj48dGVybT5NYXJrdXA8L3Rlcm0+IHRha2VzIHRoZSBmb3JtIG9mCis8dGVybXJlZiBkZWY9ImR0LXN0YWciPnN0YXJ0LXRhZ3M8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1ldGFnIj5lbmQtdGFnczwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWVtcHR5Ij5lbXB0eS1lbGVtZW50IHRhZ3M8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1lbnRyZWYiPmVudGl0eSByZWZlcmVuY2VzPC90ZXJtcmVmPiwKKzx0ZXJtcmVmIGRlZj0iZHQtY2hhcnJlZiI+Y2hhcmFjdGVyIHJlZmVyZW5jZXM8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1jb21tZW50Ij5jb21tZW50czwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWNkc2VjdGlvbiI+Q0RBVEEgc2VjdGlvbjwvdGVybXJlZj4gZGVsaW1pdGVycywKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jdHlwZSI+ZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbnM8L3Rlcm1yZWY+LCBhbmQKKzx0ZXJtcmVmIGRlZj0iZHQtcGkiPnByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zPC90ZXJtcmVmPi4KKzwvdGVybWRlZj4KKzwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1jaGFyZGF0YSIgdGVybT0iQ2hhcmFjdGVyIERhdGEiPkFsbCB0ZXh0IHRoYXQgaXMgbm90IG1hcmt1cAorY29uc3RpdHV0ZXMgdGhlIDx0ZXJtPmNoYXJhY3RlciBkYXRhPC90ZXJtPiBvZgordGhlIGRvY3VtZW50LjwvdGVybWRlZj48L3A+Cis8cD5UaGUgYW1wZXJzYW5kIGNoYXJhY3RlciAoJmFtcDspIGFuZCB0aGUgbGVmdCBhbmdsZSBicmFja2V0ICgmbHQ7KQorbWF5IGFwcGVhciBpbiB0aGVpciBsaXRlcmFsIGZvcm0gPGVtcGg+b25seTwvZW1waD4gd2hlbiB1c2VkIGFzIG1hcmt1cAorZGVsaW1pdGVycywgb3Igd2l0aGluIGEgPHRlcm1yZWYgZGVmPSJkdC1jb21tZW50Ij5jb21tZW50PC90ZXJtcmVmPiwgYQorPHRlcm1yZWYgZGVmPSJkdC1waSI+cHJvY2Vzc2luZyBpbnN0cnVjdGlvbjwvdGVybXJlZj4sIAorb3IgYSA8dGVybXJlZiBkZWY9ImR0LWNkc2VjdGlvbiI+Q0RBVEEgc2VjdGlvbjwvdGVybXJlZj4uICAKKworVGhleSBhcmUgYWxzbyBsZWdhbCB3aXRoaW4gdGhlIDx0ZXJtcmVmIGRlZj0iZHQtbGl0ZW50dmFsIj5saXRlcmFsIGVudGl0eQordmFsdWU8L3Rlcm1yZWY+IG9mIGFuIGludGVybmFsIGVudGl0eSBkZWNsYXJhdGlvbjsgc2VlCis8c3BlY3JlZiByZWY9IndmLWVudGl0aWVzIi8+LgorPCEtLSBGSU5BTCBFRElUOiAgcmVzdG9yZSBpbnRlcm5hbCBlbnRpdHkgZGVjbCBvciBsZWF2ZSBpdCBvdXQuIC0tPgorSWYgdGhleSBhcmUgbmVlZGVkIGVsc2V3aGVyZSwKK3RoZXkgbXVzdCBiZSA8dGVybXJlZiBkZWY9ImR0LWVzY2FwZSI+ZXNjYXBlZDwvdGVybXJlZj4KK3VzaW5nIGVpdGhlciA8dGVybXJlZiBkZWY9ImR0LWNoYXJyZWYiPm51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L3Rlcm1yZWY+CitvciB0aGUgc3RyaW5ncworIjxjb2RlPiZhbXA7YW1wOzwvY29kZT4iIGFuZCAiPGNvZGU+JmFtcDtsdDs8L2NvZGU+IiByZXNwZWN0aXZlbHkuIAorVGhlIHJpZ2h0IGFuZ2xlCiticmFja2V0ICgmZ3Q7KSBtYXkgYmUgcmVwcmVzZW50ZWQgdXNpbmcgdGhlIHN0cmluZworIjxjb2RlPiZhbXA7Z3Q7PC9jb2RlPiIsIGFuZCBtdXN0LCA8dGVybXJlZiBkZWY9ImR0LWNvbXBhdCI+Zm9yCitjb21wYXRpYmlsaXR5PC90ZXJtcmVmPiwgCitiZSBlc2NhcGVkIHVzaW5nCisiPGNvZGU+JmFtcDtndDs8L2NvZGU+IiBvciBhIGNoYXJhY3RlciByZWZlcmVuY2UgCit3aGVuIGl0IGFwcGVhcnMgaW4gdGhlIHN0cmluZworIjxjb2RlPl1dJmd0OzwvY29kZT4iCitpbiBjb250ZW50LCAKK3doZW4gdGhhdCBzdHJpbmcgaXMgbm90IG1hcmtpbmcgdGhlIGVuZCBvZiAKK2EgPHRlcm1yZWYgZGVmPSJkdC1jZHNlY3Rpb24iPkNEQVRBIHNlY3Rpb248L3Rlcm1yZWY+LiAKKzwvcD4KKzxwPgorSW4gdGhlIGNvbnRlbnQgb2YgZWxlbWVudHMsIGNoYXJhY3RlciBkYXRhIAoraXMgYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGRvZXMKK25vdCBjb250YWluIHRoZSBzdGFydC1kZWxpbWl0ZXIgb2YgYW55IG1hcmt1cC4gIAorSW4gYSBDREFUQSBzZWN0aW9uLCBjaGFyYWN0ZXIgZGF0YQoraXMgYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIG5vdCBpbmNsdWRpbmcgdGhlIENEQVRBLXNlY3Rpb24tY2xvc2UKK2RlbGltaXRlciwgIjxjb2RlPl1dJmd0OzwvY29kZT4iLjwvcD4KKzxwPgorVG8gYWxsb3cgYXR0cmlidXRlIHZhbHVlcyB0byBjb250YWluIGJvdGggc2luZ2xlIGFuZCBkb3VibGUgcXVvdGVzLCB0aGUKK2Fwb3N0cm9waGUgb3Igc2luZ2xlLXF1b3RlIGNoYXJhY3RlciAoJykgbWF5IGJlIHJlcHJlc2VudGVkIGFzCisiPGNvZGU+JmFtcDthcG9zOzwvY29kZT4iLCBhbmQgdGhlIGRvdWJsZS1xdW90ZSBjaGFyYWN0ZXIgKCIpIGFzCisiPGNvZGU+JmFtcDtxdW90OzwvY29kZT4iLgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+Q2hhcmFjdGVyIERhdGE8L2hlYWQ+Cis8cHJvZCBpZD0iTlQtQ2hhckRhdGEiPgorPGxocz5DaGFyRGF0YTwvbGhzPgorPHJocz5bXiZsdDsmYW1wO10qIC0gKFteJmx0OyZhbXA7XSogJ11dJmd0OycgW14mbHQ7JmFtcDtdKik8L3Jocz4KKzwvcHJvZD4KKzwvc2NyYXA+Cis8L3A+Cis8L2RpdjI+CisgCis8ZGl2MiBpZD0ic2VjLWNvbW1lbnRzIj4KKzxoZWFkPkNvbW1lbnRzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWNvbW1lbnQiIHRlcm09IkNvbW1lbnQiPjx0ZXJtPkNvbW1lbnRzPC90ZXJtPiBtYXkgCithcHBlYXIgYW55d2hlcmUgaW4gYSBkb2N1bWVudCBvdXRzaWRlIG90aGVyIAorPHRlcm1yZWYgZGVmPSJkdC1tYXJrdXAiPm1hcmt1cDwvdGVybXJlZj47IGluIGFkZGl0aW9uLAordGhleSBtYXkgYXBwZWFyIHdpdGhpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbgorYXQgcGxhY2VzIGFsbG93ZWQgYnkgdGhlIGdyYW1tYXIuCitUaGV5IGFyZSBub3QgcGFydCBvZiB0aGUgZG9jdW1lbnQncyA8dGVybXJlZiBkZWY9ImR0LWNoYXJkYXRhIj5jaGFyYWN0ZXIKK2RhdGE8L3Rlcm1yZWY+OyBhbiBYTUwKK3Byb2Nlc3NvciBtYXksIGJ1dCBuZWVkIG5vdCwgbWFrZSBpdCBwb3NzaWJsZSBmb3IgYW4gYXBwbGljYXRpb24gdG8KK3JldHJpZXZlIHRoZSB0ZXh0IG9mIGNvbW1lbnRzLgorPHRlcm1yZWYgZGVmPSJkdC1jb21wYXQiPkZvciBjb21wYXRpYmlsaXR5PC90ZXJtcmVmPiwgdGhlIHN0cmluZworIjxjb2RlPi0tPC9jb2RlPiIgKGRvdWJsZS1oeXBoZW4pIG11c3Qgbm90IG9jY3VyIHdpdGhpbgorY29tbWVudHMuCis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5Db21tZW50czwvaGVhZD4KKzxwcm9kIGlkPSJOVC1Db21tZW50Ij48bGhzPkNvbW1lbnQ8L2xocz4KKzxyaHM+JyZsdDshLS0nCisoKDxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiAtICctJykgCit8ICgnLScgKDxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiAtICctJykpKSogCisnLS0mZ3Q7JzwvcmhzPgorPC9wcm9kPgorPC9zY3JhcD4KKzwvdGVybWRlZj48L3A+Cis8cD5BbiBleGFtcGxlIG9mIGEgY29tbWVudDoKKzxlZz4mbHQ7ISZjb21vOyBkZWNsYXJhdGlvbnMgZm9yICZsdDtoZWFkJmd0OyAmYW1wOyAmbHQ7Ym9keSZndDsgJmNvbWM7Jmd0OzwvZWc+Cis8L3A+Cis8L2RpdjI+CisgCis8ZGl2MiBpZD0ic2VjLXBpIj4KKzxoZWFkPlByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb25zPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LXBpIiB0ZXJtPSJQcm9jZXNzaW5nIGluc3RydWN0aW9uIj48dGVybT5Qcm9jZXNzaW5nCitpbnN0cnVjdGlvbnM8L3Rlcm0+IChQSXMpIGFsbG93IGRvY3VtZW50cyB0byBjb250YWluIGluc3RydWN0aW9ucworZm9yIGFwcGxpY2F0aW9ucy4KKyAKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPlByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb25zPC9oZWFkPgorPHByb2QgaWQ9Ik5ULVBJIj48bGhzPlBJPC9saHM+Cis8cmhzPicmbHQ7PycgPG50IGRlZj0iTlQtUElUYXJnZXQiPlBJVGFyZ2V0PC9udD4gCisoPG50IGRlZj0iTlQtUyI+UzwvbnQ+IAorKDxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiogLSAKKyg8bnQgZGVmPSJOVC1DaGFyIj5DaGFyPC9udD4qICZwaWM7IDxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiopKSk/CismcGljOzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1QSVRhcmdldCI+PGxocz5QSVRhcmdldDwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gLSAKKygoJ1gnIHwgJ3gnKSAoJ00nIHwgJ20nKSAoJ0wnIHwgJ2wnKSk8L3Jocz4KKzwvcHJvZD4KKzwvc2NyYXA+PC90ZXJtZGVmPgorUElzIGFyZSBub3QgcGFydCBvZiB0aGUgZG9jdW1lbnQncyA8dGVybXJlZiBkZWY9ImR0LWNoYXJkYXRhIj5jaGFyYWN0ZXIKK2RhdGE8L3Rlcm1yZWY+LCBidXQgbXVzdCBiZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgYXBwbGljYXRpb24uIFRoZQorUEkgYmVnaW5zIHdpdGggYSB0YXJnZXQgKDxudCBkZWY9Ik5ULVBJVGFyZ2V0Ij5QSVRhcmdldDwvbnQ+KSB1c2VkCit0byBpZGVudGlmeSB0aGUgYXBwbGljYXRpb24gdG8gd2hpY2ggdGhlIGluc3RydWN0aW9uIGlzIGRpcmVjdGVkLiAgCitUaGUgdGFyZ2V0IG5hbWVzICI8Y29kZT5YTUw8L2NvZGU+IiwgIjxjb2RlPnhtbDwvY29kZT4iLCBhbmQgc28gb24gYXJlCityZXNlcnZlZCBmb3Igc3RhbmRhcmRpemF0aW9uIGluIHRoaXMgb3IgZnV0dXJlIHZlcnNpb25zIG9mIHRoaXMKK3NwZWNpZmljYXRpb24uCitUaGUgCitYTUwgPHRlcm1yZWYgZGVmPSJkdC1ub3RhdGlvbiI+Tm90YXRpb248L3Rlcm1yZWY+IG1lY2hhbmlzbQorbWF5IGJlIHVzZWQgZm9yCitmb3JtYWwgZGVjbGFyYXRpb24gb2YgUEkgdGFyZ2V0cy4KKzwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSJzZWMtY2RhdGEtc2VjdCI+Cis8aGVhZD5DREFUQSBTZWN0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1jZHNlY3Rpb24iIHRlcm09IkNEQVRBIFNlY3Rpb24iPjx0ZXJtPkNEQVRBIHNlY3Rpb25zPC90ZXJtPgorbWF5IG9jY3VyIAorYW55d2hlcmUgY2hhcmFjdGVyIGRhdGEgbWF5IG9jY3VyOyB0aGV5IGFyZQordXNlZCB0byBlc2NhcGUgYmxvY2tzIG9mIHRleHQgY29udGFpbmluZyBjaGFyYWN0ZXJzIHdoaWNoIHdvdWxkCitvdGhlcndpc2UgYmUgcmVjb2duaXplZCBhcyBtYXJrdXAuICBDREFUQSBzZWN0aW9ucyBiZWdpbiB3aXRoIHRoZQorc3RyaW5nICI8Y29kZT4mbHQ7IVtDREFUQVs8L2NvZGU+IiBhbmQgZW5kIHdpdGggdGhlIHN0cmluZworIjxjb2RlPl1dJmd0OzwvY29kZT4iOgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+Q0RBVEEgU2VjdGlvbnM8L2hlYWQ+Cis8cHJvZCBpZD0iTlQtQ0RTZWN0Ij48bGhzPkNEU2VjdDwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1DRFN0YXJ0Ij5DRFN0YXJ0PC9udD4gCis8bnQgZGVmPSJOVC1DRGF0YSI+Q0RhdGE8L250PiAKKzxudCBkZWY9Ik5ULUNERW5kIj5DREVuZDwvbnQ+PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9Ik5ULUNEU3RhcnQiPjxsaHM+Q0RTdGFydDwvbGhzPgorPHJocz4nJmx0OyFbQ0RBVEFbJzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9Ik5ULUNEYXRhIj48bGhzPkNEYXRhPC9saHM+Cis8cmhzPig8bnQgZGVmPSJOVC1DaGFyIj5DaGFyPC9udD4qIC0gCisoPG50IGRlZj0iTlQtQ2hhciI+Q2hhcjwvbnQ+KiAnXV0mZ3Q7JyA8bnQgZGVmPSJOVC1DaGFyIj5DaGFyPC9udD4qKSkKKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9Ik5ULUNERW5kIj48bGhzPkNERW5kPC9saHM+Cis8cmhzPiddXSZndDsnPC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorCitXaXRoaW4gYSBDREFUQSBzZWN0aW9uLCBvbmx5IHRoZSA8bnQgZGVmPSJOVC1DREVuZCI+Q0RFbmQ8L250PiBzdHJpbmcgaXMKK3JlY29nbml6ZWQgYXMgbWFya3VwLCBzbyB0aGF0IGxlZnQgYW5nbGUgYnJhY2tldHMgYW5kIGFtcGVyc2FuZHMgbWF5IG9jY3VyIGluCit0aGVpciBsaXRlcmFsIGZvcm07IHRoZXkgbmVlZCBub3QgKGFuZCBjYW5ub3QpIGJlIGVzY2FwZWQgdXNpbmcKKyI8Y29kZT4mYW1wO2x0OzwvY29kZT4iIGFuZCAiPGNvZGU+JmFtcDthbXA7PC9jb2RlPiIuICBDREFUQSBzZWN0aW9ucworY2Fubm90IG5lc3QuPC90ZXJtZGVmPgorPC9wPgorCis8cD5BbiBleGFtcGxlIG9mIGEgQ0RBVEEgc2VjdGlvbiwgaW4gd2hpY2ggIjxjb2RlPiZsdDtncmVldGluZyZndDs8L2NvZGU+IiBhbmQgCisiPGNvZGU+Jmx0Oy9ncmVldGluZyZndDs8L2NvZGU+IgorYXJlIHJlY29nbml6ZWQgYXMgPHRlcm1yZWYgZGVmPSJkdC1jaGFyZGF0YSI+Y2hhcmFjdGVyIGRhdGE8L3Rlcm1yZWY+LCBub3QKKzx0ZXJtcmVmIGRlZj0iZHQtbWFya3VwIj5tYXJrdXA8L3Rlcm1yZWY+OgorPGVnPiZsdDshW0NEQVRBWyZsdDtncmVldGluZyZndDtIZWxsbywgd29ybGQhJmx0Oy9ncmVldGluZyZndDtdXSZndDs8L2VnPgorPC9wPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9InNlYy1wcm9sb2ctZHRkIj4KKzxoZWFkPlByb2xvZyBhbmQgRG9jdW1lbnQgVHlwZSBEZWNsYXJhdGlvbjwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC14bWxkZWNsIiB0ZXJtPSJYTUwgRGVjbGFyYXRpb24iPlhNTCBkb2N1bWVudHMgCittYXksIGFuZCBzaG91bGQsIAorYmVnaW4gd2l0aCBhbiA8dGVybT5YTUwgZGVjbGFyYXRpb248L3Rlcm0+IHdoaWNoIHNwZWNpZmllcwordGhlIHZlcnNpb24gb2YKK1hNTCBiZWluZyB1c2VkLjwvdGVybWRlZj4KK0ZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGlzIGEgY29tcGxldGUgWE1MIGRvY3VtZW50LCA8dGVybXJlZiBkZWY9ImR0LXdlbGxmb3JtZWQiPndlbGwtZm9ybWVkPC90ZXJtcmVmPiBidXQgbm90Cis8dGVybXJlZiBkZWY9ImR0LXZhbGlkIj52YWxpZDwvdGVybXJlZj46Cis8ZWc+PCFbQ0RBVEFbPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+CitdXT48L2VnPgorYW5kIHNvIGlzIHRoaXM6Cis8ZWc+PCFbQ0RBVEFbPGdyZWV0aW5nPkhlbGxvLCB3b3JsZCE8L2dyZWV0aW5nPgorXV0+PC9lZz4KKzwvcD4KKworPHA+VGhlIHZlcnNpb24gbnVtYmVyICI8Y29kZT4xLjA8L2NvZGU+IiBzaG91bGQgYmUgdXNlZCB0byBpbmRpY2F0ZQorY29uZm9ybWFuY2UgdG8gdGhpcyB2ZXJzaW9uIG9mIHRoaXMgc3BlY2lmaWNhdGlvbjsgaXQgaXMgYW4gZXJyb3IKK2ZvciBhIGRvY3VtZW50IHRvIHVzZSB0aGUgdmFsdWUgIjxjb2RlPjEuMDwvY29kZT4iIAoraWYgaXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGlzIHZlcnNpb24gb2YgdGhpcyBzcGVjaWZpY2F0aW9uLgorSXQgaXMgdGhlIGludGVudAorb2YgdGhlIFhNTCB3b3JraW5nIGdyb3VwIHRvIGdpdmUgbGF0ZXIgdmVyc2lvbnMgb2YgdGhpcyBzcGVjaWZpY2F0aW9uCitudW1iZXJzIG90aGVyIHRoYW4gIjxjb2RlPjEuMDwvY29kZT4iLCBidXQgdGhpcyBpbnRlbnQgZG9lcyBub3QKK2luZGljYXRlIGEKK2NvbW1pdG1lbnQgdG8gcHJvZHVjZSBhbnkgZnV0dXJlIHZlcnNpb25zIG9mIFhNTCwgbm9yIGlmIGFueSBhcmUgcHJvZHVjZWQsIHRvCit1c2UgYW55IHBhcnRpY3VsYXIgbnVtYmVyaW5nIHNjaGVtZS4KK1NpbmNlIGZ1dHVyZSB2ZXJzaW9ucyBhcmUgbm90IHJ1bGVkIG91dCwgdGhpcyBjb25zdHJ1Y3QgaXMgcHJvdmlkZWQgCithcyBhIG1lYW5zIHRvIGFsbG93IHRoZSBwb3NzaWJpbGl0eSBvZiBhdXRvbWF0aWMgdmVyc2lvbiByZWNvZ25pdGlvbiwgc2hvdWxkCitpdCBiZWNvbWUgbmVjZXNzYXJ5LgorUHJvY2Vzc29ycyBtYXkgc2lnbmFsIGFuIGVycm9yIGlmIHRoZXkgcmVjZWl2ZSBkb2N1bWVudHMgbGFiZWxlZCB3aXRoIAordmVyc2lvbnMgdGhleSBkbyBub3Qgc3VwcG9ydC4gCis8L3A+Cis8cD5UaGUgZnVuY3Rpb24gb2YgdGhlIG1hcmt1cCBpbiBhbiBYTUwgZG9jdW1lbnQgaXMgdG8gZGVzY3JpYmUgaXRzCitzdG9yYWdlIGFuZCBsb2dpY2FsIHN0cnVjdHVyZSBhbmQgdG8gYXNzb2NpYXRlIGF0dHJpYnV0ZS12YWx1ZSBwYWlycword2l0aCBpdHMgbG9naWNhbCBzdHJ1Y3R1cmVzLiAgWE1MIHByb3ZpZGVzIGEgbWVjaGFuaXNtLCB0aGUgPHRlcm1yZWYgZGVmPSJkdC1kb2N0eXBlIj5kb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uPC90ZXJtcmVmPiwgdG8gZGVmaW5lCitjb25zdHJhaW50cyBvbiB0aGUgbG9naWNhbCBzdHJ1Y3R1cmUgYW5kIHRvIHN1cHBvcnQgdGhlIHVzZSBvZgorcHJlZGVmaW5lZCBzdG9yYWdlIHVuaXRzLgorCis8dGVybWRlZiBpZD0iZHQtdmFsaWQiIHRlcm09IlZhbGlkaXR5Ij5BbiBYTUwgZG9jdW1lbnQgaXMgCis8dGVybT52YWxpZDwvdGVybT4gaWYgaXQgaGFzIGFuIGFzc29jaWF0ZWQgZG9jdW1lbnQgdHlwZQorZGVjbGFyYXRpb24gYW5kIGlmIHRoZSBkb2N1bWVudAorY29tcGxpZXMgd2l0aCB0aGUgY29uc3RyYWludHMgZXhwcmVzc2VkIGluIGl0LjwvdGVybWRlZj48L3A+Cis8cD5UaGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBtdXN0IGFwcGVhciBiZWZvcmUKK3RoZSBmaXJzdCA8dGVybXJlZiBkZWY9ImR0LWVsZW1lbnQiPmVsZW1lbnQ8L3Rlcm1yZWY+IGluIHRoZSBkb2N1bWVudC4KKzxzY3JhcCBsYW5nPSJlYm5mIiBpZD0ieG1sZG9jIj4KKzxoZWFkPlByb2xvZzwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNiIgcGN3ND0iMTcuNSIgcGN3NT0iOSI+Cis8cHJvZCBpZD0iTlQtcHJvbG9nIj48bGhzPnByb2xvZzwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1YTUxEZWNsIj5YTUxEZWNsPC9udD4/IAorPG50IGRlZj0iTlQtTWlzYyI+TWlzYzwvbnQ+KiAKKyg8bnQgZGVmPSJOVC1kb2N0eXBlZGVjbCI+ZG9jdHlwZWRlY2w8L250PiAKKzxudCBkZWY9Ik5ULU1pc2MiPk1pc2M8L250PiopPzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1YTUxEZWNsIj48bGhzPlhNTERlY2w8L2xocz4KKzxyaHM+JnhtbHBpbzsgCis8bnQgZGVmPSJOVC1WZXJzaW9uSW5mbyI+VmVyc2lvbkluZm88L250PiAKKzxudCBkZWY9Ik5ULUVuY29kaW5nRGVjbCI+RW5jb2RpbmdEZWNsPC9udD4/IAorPG50IGRlZj0iTlQtU0REZWNsIj5TRERlY2w8L250Pj8gCis8bnQgZGVmPSJOVC1TIj5TPC9udD4/IAorJnBpYzs8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1WZXJzaW9uSW5mbyI+PGxocz5WZXJzaW9uSW5mbzwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1TIj5TPC9udD4gJ3ZlcnNpb24nIDxudCBkZWY9Ik5ULUVxIj5FcTwvbnQ+IAorKCcgPG50IGRlZj0iTlQtVmVyc2lvbk51bSI+VmVyc2lvbk51bTwvbnQ+ICcgCit8ICIgPG50IGRlZj0iTlQtVmVyc2lvbk51bSI+VmVyc2lvbk51bTwvbnQ+ICIpPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtRXEiPjxsaHM+RXE8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAnPScgPG50IGRlZj0iTlQtUyI+UzwvbnQ+PzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1WZXJzaW9uTnVtIj4KKzxsaHM+VmVyc2lvbk51bTwvbGhzPgorPHJocz4oW2EtekEtWjAtOV8uOl0gfCAnLScpKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9Ik5ULU1pc2MiPjxsaHM+TWlzYzwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1Db21tZW50Ij5Db21tZW50PC9udD4gfCA8bnQgZGVmPSJOVC1QSSI+UEk8L250PiB8IAorPG50IGRlZj0iTlQtUyI+UzwvbnQ+PC9yaHM+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPjwvcD4KKworPHA+PHRlcm1kZWYgaWQ9ImR0LWRvY3R5cGUiIHRlcm09IkRvY3VtZW50IFR5cGUgRGVjbGFyYXRpb24iPlRoZSBYTUwKKzx0ZXJtPmRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb248L3Rlcm0+IAorY29udGFpbnMgb3IgcG9pbnRzIHRvIAorPHRlcm1yZWYgZGVmPSJkdC1tYXJrdXBkZWNsIj5tYXJrdXAgZGVjbGFyYXRpb25zPC90ZXJtcmVmPiAKK3RoYXQgcHJvdmlkZSBhIGdyYW1tYXIgZm9yIGEKK2NsYXNzIG9mIGRvY3VtZW50cy4gIAorVGhpcyBncmFtbWFyIGlzIGtub3duIGFzIGEgZG9jdW1lbnQgdHlwZSBkZWZpbml0aW9uLAorb3IgPHRlcm0+RFREPC90ZXJtPi4gIAorVGhlIGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24gY2FuIHBvaW50IHRvIGFuIGV4dGVybmFsIHN1YnNldCAoYQorc3BlY2lhbCBraW5kIG9mIAorPHRlcm1yZWYgZGVmPSJkdC1leHRlbnQiPmV4dGVybmFsIGVudGl0eTwvdGVybXJlZj4pIGNvbnRhaW5pbmcgbWFya3VwCitkZWNsYXJhdGlvbnMsIG9yIGNhbiAKK2NvbnRhaW4gdGhlIG1hcmt1cCBkZWNsYXJhdGlvbnMgZGlyZWN0bHkgaW4gYW4gaW50ZXJuYWwgc3Vic2V0LCBvciBjYW4gZG8KK2JvdGguICAgCitUaGUgRFREIGZvciBhIGRvY3VtZW50IGNvbnNpc3RzIG9mIGJvdGggc3Vic2V0cyB0YWtlbgordG9nZXRoZXIuPC90ZXJtZGVmPgorPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LW1hcmt1cGRlY2wiIHRlcm09Im1hcmt1cCBkZWNsYXJhdGlvbiI+CitBIDx0ZXJtPm1hcmt1cCBkZWNsYXJhdGlvbjwvdGVybT4gaXMgCithbiA8dGVybXJlZiBkZWY9ImR0LWVsZGVjbCI+ZWxlbWVudCB0eXBlIGRlY2xhcmF0aW9uPC90ZXJtcmVmPiwgCithbiA8dGVybXJlZiBkZWY9ImR0LWF0dGRlY2wiPmF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uPC90ZXJtcmVmPiwgCithbiA8dGVybXJlZiBkZWY9ImR0LWVudGRlY2wiPmVudGl0eSBkZWNsYXJhdGlvbjwvdGVybXJlZj4sIG9yCithIDx0ZXJtcmVmIGRlZj0iZHQtbm90ZGVjbCI+bm90YXRpb24gZGVjbGFyYXRpb248L3Rlcm1yZWY+LgorPC90ZXJtZGVmPgorVGhlc2UgZGVjbGFyYXRpb25zIG1heSBiZSBjb250YWluZWQgaW4gd2hvbGUgb3IgaW4gcGFydAord2l0aGluIDx0ZXJtcmVmIGRlZj0iZHQtUEUiPnBhcmFtZXRlciBlbnRpdGllczwvdGVybXJlZj4sCithcyBkZXNjcmliZWQgaW4gdGhlIHdlbGwtZm9ybWVkbmVzcyBhbmQgdmFsaWRpdHkgY29uc3RyYWludHMgYmVsb3cuCitGb3IgZnVsbGVyIGluZm9ybWF0aW9uLCBzZWUKKzxzcGVjcmVmIHJlZj0ic2VjLXBoeXNpY2FsLXN0cnVjdCIvPi48L3A+Cis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9ImR0ZCI+Cis8aGVhZD5Eb2N1bWVudCBUeXBlIERlZmluaXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjYiIHBjdzQ9IjE3LjUiIHBjdzU9IjkiPgorPHByb2QgaWQ9Ik5ULWRvY3R5cGVkZWNsIj48bGhzPmRvY3R5cGVkZWNsPC9saHM+Cis8cmhzPicmbHQ7IURPQ1RZUEUnIDxudCBkZWY9Ik5ULVMiPlM8L250PiAKKzxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiAoPG50IGRlZj0iTlQtUyI+UzwvbnQ+IAorPG50IGRlZj0iTlQtRXh0ZXJuYWxJRCI+RXh0ZXJuYWxJRDwvbnQ+KT8gCis8bnQgZGVmPSJOVC1TIj5TPC9udD4/ICgnWycgCisoPG50IGRlZj0iTlQtbWFya3VwZGVjbCI+bWFya3VwZGVjbDwvbnQ+IAorfCA8bnQgZGVmPSJOVC1QRVJlZmVyZW5jZSI+UEVSZWZlcmVuY2U8L250PiAKK3wgPG50IGRlZj0iTlQtUyI+UzwvbnQ+KSoKKyddJyAKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8pPyAnJmd0Oyc8L3Jocz4KKzx2YyBkZWY9InZjLXJvb3R0eXBlIi8+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtbWFya3VwZGVjbCI+PGxocz5tYXJrdXBkZWNsPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULWVsZW1lbnRkZWNsIj5lbGVtZW50ZGVjbDwvbnQ+IAorfCA8bnQgZGVmPSJOVC1BdHRsaXN0RGVjbCI+QXR0bGlzdERlY2w8L250PiAKK3wgPG50IGRlZj0iTlQtRW50aXR5RGVjbCI+RW50aXR5RGVjbDwvbnQ+IAorfCA8bnQgZGVmPSJOVC1Ob3RhdGlvbkRlY2wiPk5vdGF0aW9uRGVjbDwvbnQ+IAorfCA8bnQgZGVmPSJOVC1QSSI+UEk8L250PiAKK3wgPG50IGRlZj0iTlQtQ29tbWVudCI+Q29tbWVudDwvbnQ+Cis8L3Jocz4KKzx2YyBkZWY9InZjLVBFaW5NYXJrdXBEZWNsIi8+Cis8d2ZjIGRlZj0id2ZjLVBFaW5JbnRlcm5hbFN1YnNldCIvPgorPC9wcm9kPgorCis8L3Byb2Rncm91cD4KKzwvc2NyYXA+CisKKzxwPlRoZSBtYXJrdXAgZGVjbGFyYXRpb25zIG1heSBiZSBtYWRlIHVwIGluIHdob2xlIG9yIGluIHBhcnQgb2YKK3RoZSA8dGVybXJlZiBkZWY9ImR0LXJlcGx0ZXh0Ij5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBvZiAKKzx0ZXJtcmVmIGRlZj0iZHQtUEUiPnBhcmFtZXRlciBlbnRpdGllczwvdGVybXJlZj4uCitUaGUgcHJvZHVjdGlvbnMgbGF0ZXIgaW4gdGhpcyBzcGVjaWZpY2F0aW9uIGZvcgoraW5kaXZpZHVhbCBub250ZXJtaW5hbHMgKDxudCBkZWY9Ik5ULWVsZW1lbnRkZWNsIj5lbGVtZW50ZGVjbDwvbnQ+LAorPG50IGRlZj0iTlQtQXR0bGlzdERlY2wiPkF0dGxpc3REZWNsPC9udD4sIGFuZCBzbyBvbikgZGVzY3JpYmUgCit0aGUgZGVjbGFyYXRpb25zIDxlbXBoPmFmdGVyPC9lbXBoPiBhbGwgdGhlIHBhcmFtZXRlciBlbnRpdGllcyBoYXZlIGJlZW4gCis8dGVybXJlZiBkZWY9ImR0LWluY2x1ZGUiPmluY2x1ZGVkPC90ZXJtcmVmPi48L3A+CisKKzx2Y25vdGUgaWQ9InZjLXJvb3R0eXBlIj4KKzxoZWFkPlJvb3QgRWxlbWVudCBUeXBlPC9oZWFkPgorPHA+CitUaGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IGluIHRoZSBkb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uIG11c3QKK21hdGNoIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIDx0ZXJtcmVmIGRlZj0iZHQtcm9vdCI+cm9vdCBlbGVtZW50PC90ZXJtcmVmPi4KKzwvcD4KKzwvdmNub3RlPgorCis8dmNub3RlIGlkPSJ2Yy1QRWluTWFya3VwRGVjbCI+Cis8aGVhZD5Qcm9wZXIgRGVjbGFyYXRpb24vUEUgTmVzdGluZzwvaGVhZD4KKzxwPlBhcmFtZXRlci1lbnRpdHkgCis8dGVybXJlZiBkZWY9ImR0LXJlcGx0ZXh0Ij5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZAord2l0aCBtYXJrdXAgZGVjbGFyYXRpb25zLiAKK1RoYXQgaXMgdG8gc2F5LCBpZiBlaXRoZXIgdGhlIGZpcnN0IGNoYXJhY3Rlcgorb3IgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbWFya3VwCitkZWNsYXJhdGlvbiAoPG50IGRlZj0iTlQtbWFya3VwZGVjbCI+bWFya3VwZGVjbDwvbnQ+IGFib3ZlKQoraXMgY29udGFpbmVkIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciBhIAorPHRlcm1yZWYgZGVmPSJkdC1QRVJlZiI+cGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2U8L3Rlcm1yZWY+LAorYm90aCBtdXN0IGJlIGNvbnRhaW5lZCBpbiB0aGUgc2FtZSByZXBsYWNlbWVudCB0ZXh0LjwvcD4KKzwvdmNub3RlPgorPHdmY25vdGUgaWQ9IndmYy1QRWluSW50ZXJuYWxTdWJzZXQiPgorPGhlYWQ+UEVzIGluIEludGVybmFsIFN1YnNldDwvaGVhZD4KKzxwPkluIHRoZSBpbnRlcm5hbCBEVEQgc3Vic2V0LCAKKzx0ZXJtcmVmIGRlZj0iZHQtUEVSZWYiPnBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlczwvdGVybXJlZj4KK2NhbiBvY2N1ciBvbmx5IHdoZXJlIG1hcmt1cCBkZWNsYXJhdGlvbnMgY2FuIG9jY3VyLCBub3QKK3dpdGhpbiBtYXJrdXAgZGVjbGFyYXRpb25zLiAgKFRoaXMgZG9lcyBub3QgYXBwbHkgdG8KK3JlZmVyZW5jZXMgdGhhdCBvY2N1ciBpbgorZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIG9yIHRvIHRoZSBleHRlcm5hbCBzdWJzZXQuKQorPC9wPgorPC93ZmNub3RlPgorPHA+CitMaWtlIHRoZSBpbnRlcm5hbCBzdWJzZXQsIHRoZSBleHRlcm5hbCBzdWJzZXQgYW5kIAorYW55IGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdGllcyByZWZlcnJlZCB0byBpbiB0aGUgRFREIAorbXVzdCBjb25zaXN0IG9mIGEgc2VyaWVzIG9mIGNvbXBsZXRlIG1hcmt1cCBkZWNsYXJhdGlvbnMgb2YgdGhlIHR5cGVzIAorYWxsb3dlZCBieSB0aGUgbm9uLXRlcm1pbmFsIHN5bWJvbAorPG50IGRlZj0iTlQtbWFya3VwZGVjbCI+bWFya3VwZGVjbDwvbnQ+LCBpbnRlcnNwZXJzZWQgd2l0aCB3aGl0ZSBzcGFjZQorb3IgPHRlcm1yZWYgZGVmPSJkdC1QRVJlZiI+cGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzPC90ZXJtcmVmPi4KK0hvd2V2ZXIsIHBvcnRpb25zIG9mIHRoZSBjb250ZW50cworb2YgdGhlIAorZXh0ZXJuYWwgc3Vic2V0IG9yIG9mIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdGllcyBtYXkgY29uZGl0aW9uYWxseSBiZSBpZ25vcmVkCitieSB1c2luZyAKK3RoZSA8dGVybXJlZiBkZWY9ImR0LWNvbmQtc2VjdGlvbiI+Y29uZGl0aW9uYWwgc2VjdGlvbjwvdGVybXJlZj4KK2NvbnN0cnVjdDsgdGhpcyBpcyBub3QgYWxsb3dlZCBpbiB0aGUgaW50ZXJuYWwgc3Vic2V0LgorCis8c2NyYXAgaWQ9ImV4dC1TdWJzZXQiPgorPGhlYWQ+RXh0ZXJuYWwgU3Vic2V0PC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNy41IiBwY3c1PSI5Ij4KKzxwcm9kIGlkPSJOVC1leHRTdWJzZXQiPjxsaHM+ZXh0U3Vic2V0PC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULVRleHREZWNsIj5UZXh0RGVjbDwvbnQ+PworPG50IGRlZj0iTlQtZXh0U3Vic2V0RGVjbCI+ZXh0U3Vic2V0RGVjbDwvbnQ+PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9Ik5ULWV4dFN1YnNldERlY2wiPjxsaHM+ZXh0U3Vic2V0RGVjbDwvbGhzPgorPHJocz4oCis8bnQgZGVmPSJOVC1tYXJrdXBkZWNsIj5tYXJrdXBkZWNsPC9udD4gCit8IDxudCBkZWY9Ik5ULWNvbmRpdGlvbmFsU2VjdCI+Y29uZGl0aW9uYWxTZWN0PC9udD4gCit8IDxudCBkZWY9Ik5ULVBFUmVmZXJlbmNlIj5QRVJlZmVyZW5jZTwvbnQ+IAorfCA8bnQgZGVmPSJOVC1TIj5TPC9udD4KKykqPC9yaHM+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+PC9wPgorPHA+VGhlIGV4dGVybmFsIHN1YnNldCBhbmQgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIGFsc28gZGlmZmVyIAorZnJvbSB0aGUgaW50ZXJuYWwgc3Vic2V0IGluIHRoYXQgaW4gdGhlbSwKKzx0ZXJtcmVmIGRlZj0iZHQtUEVSZWYiPnBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlczwvdGVybXJlZj4KK2FyZSBwZXJtaXR0ZWQgPGVtcGg+d2l0aGluPC9lbXBoPiBtYXJrdXAgZGVjbGFyYXRpb25zLAorbm90IG9ubHkgPGVtcGg+YmV0d2VlbjwvZW1waD4gbWFya3VwIGRlY2xhcmF0aW9ucy48L3A+Cis8cD5BbiBleGFtcGxlIG9mIGFuIFhNTCBkb2N1bWVudCB3aXRoIGEgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbjoKKzxlZz48IVtDREFUQVs8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBncmVldGluZyBTWVNURU0gImhlbGxvLmR0ZCI+Cis8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+CitdXT48L2VnPgorVGhlIDx0ZXJtcmVmIGRlZj0iZHQtc3lzaWQiPnN5c3RlbSBpZGVudGlmaWVyPC90ZXJtcmVmPiAKKyI8Y29kZT5oZWxsby5kdGQ8L2NvZGU+IiBnaXZlcyB0aGUgVVJJIG9mIGEgRFREIGZvciB0aGUgZG9jdW1lbnQuPC9wPgorPHA+VGhlIGRlY2xhcmF0aW9ucyBjYW4gYWxzbyBiZSBnaXZlbiBsb2NhbGx5LCBhcyBpbiB0aGlzIAorZXhhbXBsZToKKzxlZz48IVtDREFUQVs8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBncmVldGluZyBbCisgIDwhRUxFTUVOVCBncmVldGluZyAoI1BDREFUQSk+CitdPgorPGdyZWV0aW5nPkhlbGxvLCB3b3JsZCE8L2dyZWV0aW5nPgorXV0+PC9lZz4KK0lmIGJvdGggdGhlIGV4dGVybmFsIGFuZCBpbnRlcm5hbCBzdWJzZXRzIGFyZSB1c2VkLCB0aGUgCitpbnRlcm5hbCBzdWJzZXQgaXMgY29uc2lkZXJlZCB0byBvY2N1ciBiZWZvcmUgdGhlIGV4dGVybmFsIHN1YnNldC4KKzwhLS0gJ2lzIGNvbnNpZGVyZWQgdG8nPyBib28uIHdoYXp6YXQgbWVhbj8gLS0+CitUaGlzIGhhcyB0aGUgZWZmZWN0IHRoYXQgZW50aXR5IGFuZCBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnMgaW4gdGhlCitpbnRlcm5hbCBzdWJzZXQgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGhvc2UgaW4gdGhlIGV4dGVybmFsIHN1YnNldC4KKzwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSJzZWMtcm1kIj4KKzxoZWFkPlN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb248L2hlYWQ+Cis8cD5NYXJrdXAgZGVjbGFyYXRpb25zIGNhbiBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50LAorYXMgcGFzc2VkIGZyb20gYW4gPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MIHByb2Nlc3NvcjwvdGVybXJlZj4gCit0byBhbiBhcHBsaWNhdGlvbjsgZXhhbXBsZXMgYXJlIGF0dHJpYnV0ZSBkZWZhdWx0cyBhbmQgZW50aXR5CitkZWNsYXJhdGlvbnMuCitUaGUgc3RhbmRhbG9uZSBkb2N1bWVudCBkZWNsYXJhdGlvbiwKK3doaWNoIG1heSBhcHBlYXIgYXMgYSBjb21wb25lbnQgb2YgdGhlIFhNTCBkZWNsYXJhdGlvbiwgc2lnbmFscword2hldGhlciBvciBub3QgdGhlcmUgYXJlIHN1Y2ggZGVjbGFyYXRpb25zIHdoaWNoIGFwcGVhciBleHRlcm5hbCB0byAKK3RoZSA8dGVybXJlZiBkZWY9ImR0LWRvY2VudCI+ZG9jdW1lbnQgZW50aXR5PC90ZXJtcmVmPi4KKzxzY3JhcCBsYW5nPSJlYm5mIiBpZD0iZnVsbGR0ZCI+Cis8aGVhZD5TdGFuZGFsb25lIERvY3VtZW50IERlY2xhcmF0aW9uPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI0IiBwY3c0PSIxOS41IiBwY3c1PSI5Ij4KKzxwcm9kIGlkPSJOVC1TRERlY2wiPjxsaHM+U0REZWNsPC9saHM+Cis8cmhzPgorPG50IGRlZj0iTlQtUyI+UzwvbnQ+IAorJ3N0YW5kYWxvbmUnIDxudCBkZWY9Ik5ULUVxIj5FcTwvbnQ+IAorKCgiJyIgKCd5ZXMnIHwgJ25vJykgIiciKSB8ICgnIicgKCd5ZXMnIHwgJ25vJykgJyInKSkKKzwvcmhzPgorPHZjIGRlZj0idmMtY2hlY2stcm1kIi8+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPjwvcD4KKzxwPgorSW4gYSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uLCB0aGUgdmFsdWUgIjxjb2RlPnllczwvY29kZT4iIGluZGljYXRlcwordGhhdCB0aGVyZSAKK2FyZSBubyBtYXJrdXAgZGVjbGFyYXRpb25zIGV4dGVybmFsIHRvIHRoZSA8dGVybXJlZiBkZWY9ImR0LWRvY2VudCI+ZG9jdW1lbnQKK2VudGl0eTwvdGVybXJlZj4gKGVpdGhlciBpbiB0aGUgRFREIGV4dGVybmFsIHN1YnNldCwgb3IgaW4gYW4KK2V4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlZCBmcm9tIHRoZSBpbnRlcm5hbCBzdWJzZXQpCit3aGljaCBhZmZlY3QgdGhlIGluZm9ybWF0aW9uIHBhc3NlZCBmcm9tIHRoZSBYTUwgcHJvY2Vzc29yIHRvCit0aGUgYXBwbGljYXRpb24uICAKK1RoZSB2YWx1ZSAiPGNvZGU+bm88L2NvZGU+IiBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBhcmUgb3IgbWF5IGJlIHN1Y2gKK2V4dGVybmFsIG1hcmt1cCBkZWNsYXJhdGlvbnMuCitOb3RlIHRoYXQgdGhlIHN0YW5kYWxvbmUgZG9jdW1lbnQgZGVjbGFyYXRpb24gb25seSAKK2Rlbm90ZXMgdGhlIHByZXNlbmNlIG9mIGV4dGVybmFsIDxlbXBoPmRlY2xhcmF0aW9uczwvZW1waD47IHRoZSBwcmVzZW5jZSwgaW4gYQorZG9jdW1lbnQsIG9mIAorcmVmZXJlbmNlcyB0byBleHRlcm5hbCA8ZW1waD5lbnRpdGllczwvZW1waD4sIHdoZW4gdGhvc2UgZW50aXRpZXMgYXJlCitpbnRlcm5hbGx5IGRlY2xhcmVkLCAKK2RvZXMgbm90IGNoYW5nZSBpdHMgc3RhbmRhbG9uZSBzdGF0dXMuPC9wPgorPHA+SWYgdGhlcmUgYXJlIG5vIGV4dGVybmFsIG1hcmt1cCBkZWNsYXJhdGlvbnMsIHRoZSBzdGFuZGFsb25lIGRvY3VtZW50CitkZWNsYXJhdGlvbiBoYXMgbm8gbWVhbmluZy4gCitJZiB0aGVyZSBhcmUgZXh0ZXJuYWwgbWFya3VwIGRlY2xhcmF0aW9ucyBidXQgdGhlcmUgaXMgbm8gc3RhbmRhbG9uZQorZG9jdW1lbnQgZGVjbGFyYXRpb24sIHRoZSB2YWx1ZSAiPGNvZGU+bm88L2NvZGU+IiBpcyBhc3N1bWVkLjwvcD4KKzxwPkFueSBYTUwgZG9jdW1lbnQgZm9yIHdoaWNoIDxjb2RlPnN0YW5kYWxvbmU9Im5vIjwvY29kZT4gaG9sZHMgY2FuIAorYmUgY29udmVydGVkIGFsZ29yaXRobWljYWxseSB0byBhIHN0YW5kYWxvbmUgZG9jdW1lbnQsIAord2hpY2ggbWF5IGJlIGRlc2lyYWJsZSBmb3Igc29tZSBuZXR3b3JrIGRlbGl2ZXJ5IGFwcGxpY2F0aW9ucy48L3A+Cis8dmNub3RlIGlkPSJ2Yy1jaGVjay1ybWQiPgorPGhlYWQ+U3RhbmRhbG9uZSBEb2N1bWVudCBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwPlRoZSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uIG11c3QgaGF2ZQordGhlIHZhbHVlICI8Y29kZT5ubzwvY29kZT4iIGlmIGFueSBleHRlcm5hbCBtYXJrdXAgZGVjbGFyYXRpb25zCitjb250YWluIGRlY2xhcmF0aW9ucyBvZjo8L3A+PHVsaXN0PgorPGl0ZW0+PHA+YXR0cmlidXRlcyB3aXRoIDx0ZXJtcmVmIGRlZj0iZHQtZGVmYXVsdCI+ZGVmYXVsdDwvdGVybXJlZj4gdmFsdWVzLCBpZgorZWxlbWVudHMgdG8gd2hpY2gKK3RoZXNlIGF0dHJpYnV0ZXMgYXBwbHkgYXBwZWFyIGluIHRoZSBkb2N1bWVudCB3aXRob3V0CitzcGVjaWZpY2F0aW9ucyBvZiB2YWx1ZXMgZm9yIHRoZXNlIGF0dHJpYnV0ZXMsIG9yPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmVudGl0aWVzIChvdGhlciB0aGFuICZtYWdpY2VudHM7KSwgCitpZiA8dGVybXJlZiBkZWY9ImR0LWVudHJlZiI+cmVmZXJlbmNlczwvdGVybXJlZj4gdG8gdGhvc2UKK2VudGl0aWVzIGFwcGVhciBpbiB0aGUgZG9jdW1lbnQsIG9yPC9wPgorPC9pdGVtPgorPGl0ZW0+PHA+YXR0cmlidXRlcyB3aXRoIHZhbHVlcyBzdWJqZWN0IHRvCis8dGl0bGVyZWYgaHJlZj0iQVZOb3JtYWxpemUiPm5vcm1hbGl6YXRpb248L3RpdGxlcmVmPiwgd2hlcmUgdGhlCithdHRyaWJ1dGUgYXBwZWFycyBpbiB0aGUgZG9jdW1lbnQgd2l0aCBhIHZhbHVlIHdoaWNoIHdpbGwKK2NoYW5nZSBhcyBhIHJlc3VsdCBvZiBub3JtYWxpemF0aW9uLCBvcjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+ZWxlbWVudCB0eXBlcyB3aXRoIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWNvbnRlbnQiPmVsZW1lbnQgY29udGVudDwvdGVybXJlZj4sIAoraWYgd2hpdGUgc3BhY2Ugb2NjdXJzCitkaXJlY3RseSB3aXRoaW4gYW55IGluc3RhbmNlIG9mIHRob3NlIHR5cGVzLgorPC9wPjwvaXRlbT4KKzwvdWxpc3Q+CisKKzwvdmNub3RlPgorPHA+QW4gZXhhbXBsZSBYTUwgZGVjbGFyYXRpb24gd2l0aCBhIHN0YW5kYWxvbmUgZG9jdW1lbnQgZGVjbGFyYXRpb246PGVnPiZsdDs/eG1sIHZlcnNpb249IiZYTUwudmVyc2lvbjsiIHN0YW5kYWxvbmU9J3llcyc/Jmd0OzwvZWc+PC9wPgorPC9kaXYyPgorPGRpdjIgaWQ9InNlYy13aGl0ZS1zcGFjZSI+Cis8aGVhZD5XaGl0ZSBTcGFjZSBIYW5kbGluZzwvaGVhZD4KKworPHA+SW4gZWRpdGluZyBYTUwgZG9jdW1lbnRzLCBpdCBpcyBvZnRlbiBjb252ZW5pZW50IHRvIHVzZSAid2hpdGUgc3BhY2UiCisoc3BhY2VzLCB0YWJzLCBhbmQgYmxhbmsgbGluZXMsIGRlbm90ZWQgYnkgdGhlIG5vbnRlcm1pbmFsIAorPG50IGRlZj0iTlQtUyI+UzwvbnQ+IGluIHRoaXMgc3BlY2lmaWNhdGlvbikgdG8KK3NldCBhcGFydCB0aGUgbWFya3VwIGZvciBncmVhdGVyIHJlYWRhYmlsaXR5LiAgU3VjaCB3aGl0ZSBzcGFjZSBpcyB0eXBpY2FsbHkKK25vdCBpbnRlbmRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBkZWxpdmVyZWQgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQuCitPbiB0aGUgb3RoZXIgaGFuZCwgInNpZ25pZmljYW50IiB3aGl0ZSBzcGFjZSB0aGF0IHNob3VsZCBiZSBwcmVzZXJ2ZWQgaW4gdGhlCitkZWxpdmVyZWQgdmVyc2lvbiBpcyBjb21tb24sIGZvciBleGFtcGxlIGluIHBvZXRyeSBhbmQKK3NvdXJjZSBjb2RlLjwvcD4KKzxwPkFuIDx0ZXJtcmVmIGRlZj0iZHQteG1sLXByb2MiPlhNTCBwcm9jZXNzb3I8L3Rlcm1yZWY+IAorbXVzdCBhbHdheXMgcGFzcyBhbGwgY2hhcmFjdGVycyBpbiBhIGRvY3VtZW50IHRoYXQgYXJlIG5vdAorbWFya3VwIHRocm91Z2ggdG8gdGhlIGFwcGxpY2F0aW9uLiAgIEEgPHRlcm1yZWYgZGVmPSJkdC12YWxpZGF0aW5nIj4KK3ZhbGlkYXRpbmcgWE1MIHByb2Nlc3NvcjwvdGVybXJlZj4gbXVzdCBhbHNvIGluZm9ybSB0aGUgYXBwbGljYXRpb24KK3doaWNoICBvZiB0aGVzZSBjaGFyYWN0ZXJzIGNvbnN0aXR1dGUgd2hpdGUgc3BhY2UgYXBwZWFyaW5nCitpbiA8dGVybXJlZiBkZWY9ImR0LWVsZW1jb250ZW50Ij5lbGVtZW50IGNvbnRlbnQ8L3Rlcm1yZWY+LgorPC9wPgorPHA+QSBzcGVjaWFsIDx0ZXJtcmVmIGRlZj0iZHQtYXR0ciI+YXR0cmlidXRlPC90ZXJtcmVmPiAKK25hbWVkIDxrdz54bWw6c3BhY2U8L2t3PiBtYXkgYmUgYXR0YWNoZWQgdG8gYW4gZWxlbWVudAordG8gc2lnbmFsIGFuIGludGVudGlvbiB0aGF0IGluIHRoYXQgZWxlbWVudCwKK3doaXRlIHNwYWNlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgYnkgYXBwbGljYXRpb25zLgorSW4gdmFsaWQgZG9jdW1lbnRzLCB0aGlzIGF0dHJpYnV0ZSwgbGlrZSBhbnkgb3RoZXIsIG11c3QgYmUgCis8dGVybXJlZiBkZWY9ImR0LWF0dGRlY2wiPmRlY2xhcmVkPC90ZXJtcmVmPiBpZiBpdCBpcyB1c2VkLgorV2hlbiBkZWNsYXJlZCwgaXQgbXVzdCBiZSBnaXZlbiBhcyBhbiAKKzx0ZXJtcmVmIGRlZj0iZHQtZW51bWVyYXRlZCI+ZW51bWVyYXRlZCB0eXBlPC90ZXJtcmVmPiB3aG9zZSBvbmx5Citwb3NzaWJsZSB2YWx1ZXMgYXJlICI8Y29kZT5kZWZhdWx0PC9jb2RlPiIgYW5kICI8Y29kZT5wcmVzZXJ2ZTwvY29kZT4iLgorRm9yIGV4YW1wbGU6PGVnPjwhW0NEQVRBWyAgICA8IUFUVExJU1QgcG9lbSAgIHhtbDpzcGFjZSAoZGVmYXVsdHxwcmVzZXJ2ZSkgJ3ByZXNlcnZlJz5dXT48L2VnPjwvcD4KKzxwPlRoZSB2YWx1ZSAiPGNvZGU+ZGVmYXVsdDwvY29kZT4iIHNpZ25hbHMgdGhhdCBhcHBsaWNhdGlvbnMnCitkZWZhdWx0IHdoaXRlLXNwYWNlIHByb2Nlc3NpbmcgbW9kZXMgYXJlIGFjY2VwdGFibGUgZm9yIHRoaXMgZWxlbWVudDsgdGhlCit2YWx1ZSAiPGNvZGU+cHJlc2VydmU8L2NvZGU+IiBpbmRpY2F0ZXMgdGhlIGludGVudCB0aGF0IGFwcGxpY2F0aW9ucyBwcmVzZXJ2ZQorYWxsIHRoZSB3aGl0ZSBzcGFjZS4KK1RoaXMgZGVjbGFyZWQgaW50ZW50IGlzIGNvbnNpZGVyZWQgdG8gYXBwbHkgdG8gYWxsIGVsZW1lbnRzIHdpdGhpbiB0aGUgY29udGVudAorb2YgdGhlIGVsZW1lbnQgd2hlcmUgaXQgaXMgc3BlY2lmaWVkLCB1bmxlc3Mgb3ZlcnJpZGVuIHdpdGggYW5vdGhlciBpbnN0YW5jZQorb2YgdGhlIDxrdz54bWw6c3BhY2U8L2t3PiBhdHRyaWJ1dGUuCis8L3A+Cis8cD5UaGUgPHRlcm1yZWYgZGVmPSJkdC1yb290Ij5yb290IGVsZW1lbnQ8L3Rlcm1yZWY+IG9mIGFueSBkb2N1bWVudAoraXMgY29uc2lkZXJlZCB0byBoYXZlIHNpZ25hbGVkIG5vIGludGVudGlvbnMgYXMgcmVnYXJkcyBhcHBsaWNhdGlvbiBzcGFjZQoraGFuZGxpbmcsIHVubGVzcyBpdCBwcm92aWRlcyBhIHZhbHVlIGZvciAKK3RoaXMgYXR0cmlidXRlIG9yIHRoZSBhdHRyaWJ1dGUgaXMgZGVjbGFyZWQgd2l0aCBhIGRlZmF1bHQgdmFsdWUuCis8L3A+CisKKzwvZGl2Mj4KKzxkaXYyIGlkPSJzZWMtbGluZS1lbmRzIj4KKzxoZWFkPkVuZC1vZi1MaW5lIEhhbmRsaW5nPC9oZWFkPgorPHA+WE1MIDx0ZXJtcmVmIGRlZj0iZHQtcGFyc2VkZW50Ij5wYXJzZWQgZW50aXRpZXM8L3Rlcm1yZWY+IGFyZSBvZnRlbiBzdG9yZWQgaW4KK2NvbXB1dGVyIGZpbGVzIHdoaWNoLCBmb3IgZWRpdGluZyBjb252ZW5pZW5jZSwgYXJlIG9yZ2FuaXplZCBpbnRvIGxpbmVzLgorVGhlc2UgbGluZXMgYXJlIHR5cGljYWxseSBzZXBhcmF0ZWQgYnkgc29tZSBjb21iaW5hdGlvbiBvZiB0aGUgY2hhcmFjdGVycworY2FycmlhZ2UtcmV0dXJuICgjeEQpIGFuZCBsaW5lLWZlZWQgKCN4QSkuPC9wPgorPHA+VG8gc2ltcGxpZnkgdGhlIHRhc2tzIG9mIDx0ZXJtcmVmIGRlZj0iZHQtYXBwIj5hcHBsaWNhdGlvbnM8L3Rlcm1yZWY+LAord2hlcmV2ZXIgYW4gZXh0ZXJuYWwgcGFyc2VkIGVudGl0eSBvciB0aGUgbGl0ZXJhbCBlbnRpdHkgdmFsdWUKK29mIGFuIGludGVybmFsIHBhcnNlZCBlbnRpdHkgY29udGFpbnMgZWl0aGVyIHRoZSBsaXRlcmFsIAordHdvLWNoYXJhY3RlciBzZXF1ZW5jZSAiI3hEI3hBIiBvciBhIHN0YW5kYWxvbmUgbGl0ZXJhbAorI3hELCBhbiA8dGVybXJlZiBkZWY9ImR0LXhtbC1wcm9jIj5YTUwgcHJvY2Vzc29yPC90ZXJtcmVmPiBtdXN0IAorcGFzcyB0byB0aGUgYXBwbGljYXRpb24gdGhlIHNpbmdsZSBjaGFyYWN0ZXIgI3hBLgorKFRoaXMgYmVoYXZpb3IgY2FuIAorY29udmVuaWVudGx5IGJlIHByb2R1Y2VkIGJ5IG5vcm1hbGl6aW5nIGFsbCAKK2xpbmUgYnJlYWtzIHRvICN4QSBvbiBpbnB1dCwgYmVmb3JlIHBhcnNpbmcuKQorPC9wPgorPC9kaXYyPgorPGRpdjIgaWQ9InNlYy1sYW5nLXRhZyI+Cis8aGVhZD5MYW5ndWFnZSBJZGVudGlmaWNhdGlvbjwvaGVhZD4KKzxwPkluIGRvY3VtZW50IHByb2Nlc3NpbmcsIGl0IGlzIG9mdGVuIHVzZWZ1bCB0bworaWRlbnRpZnkgdGhlIG5hdHVyYWwgb3IgZm9ybWFsIGxhbmd1YWdlIAoraW4gd2hpY2ggdGhlIGNvbnRlbnQgaXMgCit3cml0dGVuLgorQSBzcGVjaWFsIDx0ZXJtcmVmIGRlZj0iZHQtYXR0ciI+YXR0cmlidXRlPC90ZXJtcmVmPiBuYW1lZAorPGt3PnhtbDpsYW5nPC9rdz4gbWF5IGJlIGluc2VydGVkIGluCitkb2N1bWVudHMgdG8gc3BlY2lmeSB0aGUgCitsYW5ndWFnZSB1c2VkIGluIHRoZSBjb250ZW50cyBhbmQgYXR0cmlidXRlIHZhbHVlcyAKK29mIGFueSBlbGVtZW50IGluIGFuIFhNTCBkb2N1bWVudC4KK0luIHZhbGlkIGRvY3VtZW50cywgdGhpcyBhdHRyaWJ1dGUsIGxpa2UgYW55IG90aGVyLCBtdXN0IGJlIAorPHRlcm1yZWYgZGVmPSJkdC1hdHRkZWNsIj5kZWNsYXJlZDwvdGVybXJlZj4gaWYgaXQgaXMgdXNlZC4KK1RoZSB2YWx1ZXMgb2YgdGhlIGF0dHJpYnV0ZSBhcmUgbGFuZ3VhZ2UgaWRlbnRpZmllcnMgYXMgZGVmaW5lZAorYnkgPGJpYnJlZiByZWY9IlJGQzE3NjYiLz4sICJUYWdzIGZvciB0aGUgSWRlbnRpZmljYXRpb24gb2YgTGFuZ3VhZ2VzIjoKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPkxhbmd1YWdlIElkZW50aWZpY2F0aW9uPC9oZWFkPgorPHByb2QgaWQ9Ik5ULUxhbmd1YWdlSUQiPjxsaHM+TGFuZ3VhZ2VJRDwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1MYW5nY29kZSI+TGFuZ2NvZGU8L250PiAKKygnLScgPG50IGRlZj0iTlQtU3ViY29kZSI+U3ViY29kZTwvbnQ+KSo8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0iTlQtTGFuZ2NvZGUiPjxsaHM+TGFuZ2NvZGU8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtSVNPNjM5Q29kZSI+SVNPNjM5Q29kZTwvbnQ+IHwgCis8bnQgZGVmPSJOVC1JYW5hQ29kZSI+SWFuYUNvZGU8L250PiB8IAorPG50IGRlZj0iTlQtVXNlckNvZGUiPlVzZXJDb2RlPC9udD48L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1JU082MzlDb2RlIj48bGhzPklTTzYzOUNvZGU8L2xocz4KKzxyaHM+KFthLXpdIHwgW0EtWl0pIChbYS16XSB8IFtBLVpdKTwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1JYW5hQ29kZSI+PGxocz5JYW5hQ29kZTwvbGhzPgorPHJocz4oJ2knIHwgJ0knKSAnLScgKFthLXpdIHwgW0EtWl0pKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1Vc2VyQ29kZSI+PGxocz5Vc2VyQ29kZTwvbGhzPgorPHJocz4oJ3gnIHwgJ1gnKSAnLScgKFthLXpdIHwgW0EtWl0pKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1TdWJjb2RlIj48bGhzPlN1YmNvZGU8L2xocz4KKzxyaHM+KFthLXpdIHwgW0EtWl0pKzwvcmhzPjwvcHJvZD4KKzwvc2NyYXA+CitUaGUgPG50IGRlZj0iTlQtTGFuZ2NvZGUiPkxhbmdjb2RlPC9udD4gbWF5IGJlIGFueSBvZiB0aGUgZm9sbG93aW5nOgorPHVsaXN0PgorPGl0ZW0+PHA+YSB0d28tbGV0dGVyIGxhbmd1YWdlIGNvZGUgYXMgZGVmaW5lZCBieSAKKzxiaWJyZWYgcmVmPSJJU082MzkiLz4sICJDb2RlcworZm9yIHRoZSByZXByZXNlbnRhdGlvbiBvZiBuYW1lcyBvZiBsYW5ndWFnZXMiPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmEgbGFuZ3VhZ2UgaWRlbnRpZmllciByZWdpc3RlcmVkIHdpdGggdGhlIEludGVybmV0CitBc3NpZ25lZCBOdW1iZXJzIEF1dGhvcml0eSA8YmlicmVmIHJlZj0iSUFOQSIvPjsgdGhlc2UgYmVnaW4gd2l0aCB0aGUgCitwcmVmaXggIjxjb2RlPmktPC9jb2RlPiIgKG9yICI8Y29kZT5JLTwvY29kZT4iKTwvcD48L2l0ZW0+Cis8aXRlbT48cD5hIGxhbmd1YWdlIGlkZW50aWZpZXIgYXNzaWduZWQgYnkgdGhlIHVzZXIsIG9yIGFncmVlZCBvbgorYmV0d2VlbiBwYXJ0aWVzIGluIHByaXZhdGUgdXNlOyB0aGVzZSBtdXN0IGJlZ2luIHdpdGggdGhlCitwcmVmaXggIjxjb2RlPngtPC9jb2RlPiIgb3IgIjxjb2RlPlgtPC9jb2RlPiIgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhleSBkbyBub3QgY29uZmxpY3QgCit3aXRoIG5hbWVzIGxhdGVyIHN0YW5kYXJkaXplZCBvciByZWdpc3RlcmVkIHdpdGggSUFOQTwvcD48L2l0ZW0+Cis8L3VsaXN0PjwvcD4KKzxwPlRoZXJlIG1heSBiZSBhbnkgbnVtYmVyIG9mIDxudCBkZWY9Ik5ULVN1YmNvZGUiPlN1YmNvZGU8L250PiBzZWdtZW50czsgaWYKK3RoZSBmaXJzdCAKK3N1YmNvZGUgc2VnbWVudCBleGlzdHMgYW5kIHRoZSBTdWJjb2RlIGNvbnNpc3RzIG9mIHR3byAKK2xldHRlcnMsIHRoZW4gaXQgbXVzdCBiZSBhIGNvdW50cnkgY29kZSBmcm9tIAorPGJpYnJlZiByZWY9IklTTzMxNjYiLz4sICJDb2RlcyAKK2ZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgbmFtZXMgb2YgY291bnRyaWVzLiIKK0lmIHRoZSBmaXJzdCAKK3N1YmNvZGUgY29uc2lzdHMgb2YgbW9yZSB0aGFuIHR3byBsZXR0ZXJzLCBpdCBtdXN0IGJlCithIHN1YmNvZGUgZm9yIHRoZSBsYW5ndWFnZSBpbiBxdWVzdGlvbiByZWdpc3RlcmVkIHdpdGggSUFOQSwKK3VubGVzcyB0aGUgPG50IGRlZj0iTlQtTGFuZ2NvZGUiPkxhbmdjb2RlPC9udD4gYmVnaW5zIHdpdGggdGhlIHByZWZpeCAKKyI8Y29kZT54LTwvY29kZT4iIG9yCisiPGNvZGU+WC08L2NvZGU+Ii4gPC9wPgorPHA+SXQgaXMgY3VzdG9tYXJ5IHRvIGdpdmUgdGhlIGxhbmd1YWdlIGNvZGUgaW4gbG93ZXIgY2FzZSwgYW5kCit0aGUgY291bnRyeSBjb2RlIChpZiBhbnkpIGluIHVwcGVyIGNhc2UuCitOb3RlIHRoYXQgdGhlc2UgdmFsdWVzLCB1bmxpa2Ugb3RoZXIgbmFtZXMgaW4gWE1MIGRvY3VtZW50cywKK2FyZSBjYXNlIGluc2Vuc2l0aXZlLjwvcD4KKzxwPkZvciBleGFtcGxlOgorPGVnPjwhW0NEQVRBWzxwIHhtbDpsYW5nPSJlbiI+VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy48L3A+Cis8cCB4bWw6bGFuZz0iZW4tR0IiPldoYXQgY29sb3VyIGlzIGl0PzwvcD4KKzxwIHhtbDpsYW5nPSJlbi1VUyI+V2hhdCBjb2xvciBpcyBpdD88L3A+Cis8c3Agd2hvPSJGYXVzdCIgZGVzYz0nbGVpc2UnIHhtbDpsYW5nPSJkZSI+CisgIDxsPkhhYmUgbnVuLCBhY2ghIFBoaWxvc29waGllLDwvbD4KKyAgPGw+SnVyaXN0ZXJlaSwgdW5kIE1lZGl6aW48L2w+CisgIDxsPnVuZCBsZWlkZXIgYXVjaCBUaGVvbG9naWU8L2w+CisgIDxsPmR1cmNoYXVzIHN0dWRpZXJ0IG1pdCBoZWnfZW0gQmVt/Ggnbi48L2w+CisgIDwvc3A+XV0+PC9lZz48L3A+Cis8IS0tPHA+VGhlIHhtbDpsYW5nIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYXBwbHkgYm90aCB0byB0aGUgY29udGVudHMgb2YgYW4KK2VsZW1lbnQgYW5kIAorKHVubGVzcyBvdGhlcndpc2UgdmlhIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlcykgdG8gdGhlCit2YWx1ZXMgb2YgYWxsIG9mIGl0cyBhdHRyaWJ1dGVzIHdpdGggZnJlZS10ZXh0IChDREFUQSkgdmFsdWVzLiAgLS0+Cis8cD5UaGUgaW50ZW50IGRlY2xhcmVkIHdpdGggPGt3PnhtbDpsYW5nPC9rdz4gaXMgY29uc2lkZXJlZCB0byBhcHBseSB0bworYWxsIGF0dHJpYnV0ZXMgYW5kIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgd2hlcmUgaXQgaXMgc3BlY2lmaWVkLAordW5sZXNzIG92ZXJyaWRkZW4gd2l0aCBhbiBpbnN0YW5jZSBvZiA8a3c+eG1sOmxhbmc8L2t3Pgorb24gYW5vdGhlciBlbGVtZW50IHdpdGhpbiB0aGF0IGNvbnRlbnQuPC9wPgorPCEtLQorSWYgbm8KK3ZhbHVlIGlzIHNwZWNpZmllZCBmb3IgeG1sOmxhbmcgb24gYW4gZWxlbWVudCwgYW5kIG5vIGRlZmF1bHQgdmFsdWUgaXMKK2RlZmluZWQgZm9yIGl0IGluIHRoZSBEVEQsIHRoZW4gdGhlIHhtbDpsYW5nIGF0dHJpYnV0ZSBvZiBhbnkgZWxlbWVudAordGFrZXMgdGhlIHNhbWUgdmFsdWUgaXQgaGFzIGluIHRoZSBwYXJlbnQgZWxlbWVudCwgaWYgYW55LiAgVGhlIHR3bwordGVjaG5pY2FsIHRlcm1zIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBib3RoIGhhdmUgdGhlIHNhbWUgZWZmZWN0aXZlCit2YWx1ZSBmb3IgeG1sOmxhbmc6CisKKyAgPHAgeG1sOmxhbmc9ImVuIj5IZXJlIHRoZSBrZXl3b3JkcyBhcmUKKyAgPHRlcm0geG1sOmxhbmc9ImVuIj5zaGlmdDwvdGVybT4gYW5kCisgIDx0ZXJtPnJlZHVjZTwvdGVybT4uIC4uLjwvcD4KKworVGhlIGFwcGxpY2F0aW9uLCBub3QgdGhlIFhNTCBwcm9jZXNzb3IsIGlzIHJlc3BvbnNpYmxlIGZvciB0aGlzICcKK2luaGVyaXRhbmNlJyBvZiBhdHRyaWJ1dGUgdmFsdWVzLgorLS0+Cis8cD5BIHNpbXBsZSBkZWNsYXJhdGlvbiBmb3IgPGt3PnhtbDpsYW5nPC9rdz4gbWlnaHQgdGFrZQordGhlIGZvcm0KKzxlZz54bWw6bGFuZyAgTk1UT0tFTiAgI0lNUExJRUQ8L2VnPgorYnV0IHNwZWNpZmljIGRlZmF1bHQgdmFsdWVzIG1heSBhbHNvIGJlIGdpdmVuLCBpZiBhcHByb3ByaWF0ZS4gIEluIGEKK2NvbGxlY3Rpb24gb2YgRnJlbmNoIHBvZW1zIGZvciBFbmdsaXNoIHN0dWRlbnRzLCB3aXRoIGdsb3NzZXMgYW5kCitub3RlcyBpbiBFbmdsaXNoLCB0aGUgeG1sOmxhbmcgYXR0cmlidXRlIG1pZ2h0IGJlIGRlY2xhcmVkIHRoaXMgd2F5OgorPGVnPjwhW0NEQVRBWyAgICA8IUFUVExJU1QgcG9lbSAgIHhtbDpsYW5nIE5NVE9LRU4gJ2ZyJz4KKyAgICA8IUFUVExJU1QgZ2xvc3MgIHhtbDpsYW5nIE5NVE9LRU4gJ2VuJz4KKyAgICA8IUFUVExJU1Qgbm90ZSAgIHhtbDpsYW5nIE5NVE9LRU4gJ2VuJz5dXT48L2VnPgorPC9wPgorCis8L2RpdjI+Cis8L2RpdjE+Cis8IS0tICZFbGVtZW50czsgLS0+CisgCis8ZGl2MSBpZD0ic2VjLWxvZ2ljYWwtc3RydWN0Ij4KKzxoZWFkPkxvZ2ljYWwgU3RydWN0dXJlczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbGVtZW50IiB0ZXJtPSJFbGVtZW50Ij5FYWNoIDx0ZXJtcmVmIGRlZj0iZHQteG1sLWRvYyI+WE1MIGRvY3VtZW50PC90ZXJtcmVmPiBjb250YWlucyBvbmUgb3IgbW9yZQorPHRlcm0+ZWxlbWVudHM8L3Rlcm0+LCB0aGUgYm91bmRhcmllcyBvZiB3aGljaCBhcmUgCitlaXRoZXIgZGVsaW1pdGVkIGJ5IDx0ZXJtcmVmIGRlZj0iZHQtc3RhZyI+c3RhcnQtdGFnczwvdGVybXJlZj4gCithbmQgPHRlcm1yZWYgZGVmPSJkdC1ldGFnIj5lbmQtdGFnczwvdGVybXJlZj4sIG9yLCBmb3IgPHRlcm1yZWYgZGVmPSJkdC1lbXB0eSI+ZW1wdHk8L3Rlcm1yZWY+IGVsZW1lbnRzLCBieSBhbiA8dGVybXJlZiBkZWY9ImR0LWVldGFnIj5lbXB0eS1lbGVtZW50IHRhZzwvdGVybXJlZj4uIEVhY2ggZWxlbWVudCBoYXMgYSB0eXBlLAoraWRlbnRpZmllZCBieSBuYW1lLCBzb21ldGltZXMgY2FsbGVkIGl0cyAiZ2VuZXJpYworaWRlbnRpZmllciIgKEdJKSwgYW5kIG1heSBoYXZlIGEgc2V0IG9mCithdHRyaWJ1dGUgc3BlY2lmaWNhdGlvbnMuPC90ZXJtZGVmPiAgRWFjaCBhdHRyaWJ1dGUgc3BlY2lmaWNhdGlvbiAKK2hhcyBhIDx0ZXJtcmVmIGRlZj0iZHQtYXR0cm5hbWUiPm5hbWU8L3Rlcm1yZWY+IGFuZCBhIDx0ZXJtcmVmIGRlZj0iZHQtYXR0cnZhbCI+dmFsdWU8L3Rlcm1yZWY+LgorPC9wPgorPHNjcmFwIGxhbmc9ImVibmYiPjxoZWFkPkVsZW1lbnQ8L2hlYWQ+Cis8cHJvZCBpZD0iTlQtZWxlbWVudCI+PGxocz5lbGVtZW50PC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULUVtcHR5RWxlbVRhZyI+RW1wdHlFbGVtVGFnPC9udD48L3Jocz4KKzxyaHM+fCA8bnQgZGVmPSJOVC1TVGFnIj5TVGFnPC9udD4gPG50IGRlZj0iTlQtY29udGVudCI+Y29udGVudDwvbnQ+IAorPG50IGRlZj0iTlQtRVRhZyI+RVRhZzwvbnQ+PC9yaHM+Cis8d2ZjIGRlZj0iR0lNYXRjaCIvPgorPHZjIGRlZj0iZWxlbWVudHZhbGlkIi8+Cis8L3Byb2Q+Cis8L3NjcmFwPgorPHA+VGhpcyBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IGNvbnN0cmFpbiB0aGUgc2VtYW50aWNzLCB1c2UsIG9yIChiZXlvbmQKK3N5bnRheCkgbmFtZXMgb2YgdGhlIGVsZW1lbnQgdHlwZXMgYW5kIGF0dHJpYnV0ZXMsIGV4Y2VwdCB0aGF0IG5hbWVzCitiZWdpbm5pbmcgd2l0aCBhIG1hdGNoIHRvIDxjb2RlPigoJ1gnfCd4JykoJ00nfCdtJykoJ0wnfCdsJykpPC9jb2RlPgorYXJlIHJlc2VydmVkIGZvciBzdGFuZGFyZGl6YXRpb24gaW4gdGhpcyBvciBmdXR1cmUgdmVyc2lvbnMgb2YgdGhpcworc3BlY2lmaWNhdGlvbi4KKzwvcD4KKzx3ZmNub3RlIGlkPSJHSU1hdGNoIj4KKzxoZWFkPkVsZW1lbnQgVHlwZSBNYXRjaDwvaGVhZD4KKzxwPgorVGhlIDxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiBpbiBhbiBlbGVtZW50J3MgZW5kLXRhZyBtdXN0IG1hdGNoIAordGhlIGVsZW1lbnQgdHlwZSBpbgordGhlIHN0YXJ0LXRhZy4KKzwvcD4KKzwvd2Zjbm90ZT4KKzx2Y25vdGUgaWQ9ImVsZW1lbnR2YWxpZCI+Cis8aGVhZD5FbGVtZW50IFZhbGlkPC9oZWFkPgorPHA+QW4gZWxlbWVudCBpcwordmFsaWQgaWYKK3RoZXJlIGlzIGEgZGVjbGFyYXRpb24gbWF0Y2hpbmcgCis8bnQgZGVmPSJOVC1lbGVtZW50ZGVjbCI+ZWxlbWVudGRlY2w8L250PiB3aGVyZSB0aGUKKzxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiBtYXRjaGVzIHRoZSBlbGVtZW50IHR5cGUsIGFuZAorb25lIG9mIHRoZSBmb2xsb3dpbmcgaG9sZHM6PC9wPgorPG9saXN0PgorPGl0ZW0+PHA+VGhlIGRlY2xhcmF0aW9uIG1hdGNoZXMgPGt3PkVNUFRZPC9rdz4gYW5kIHRoZSBlbGVtZW50IGhhcyBubyAKKzx0ZXJtcmVmIGRlZj0iZHQtY29udGVudCI+Y29udGVudDwvdGVybXJlZj4uPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRoZSBkZWNsYXJhdGlvbiBtYXRjaGVzIDxudCBkZWY9Ik5ULWNoaWxkcmVuIj5jaGlsZHJlbjwvbnQ+IGFuZAordGhlIHNlcXVlbmNlIG9mIAorPHRlcm1yZWYgZGVmPSJkdC1wYXJlbnRjaGlsZCI+Y2hpbGQgZWxlbWVudHM8L3Rlcm1yZWY+CitiZWxvbmdzIHRvIHRoZSBsYW5ndWFnZSBnZW5lcmF0ZWQgYnkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbgordGhlIGNvbnRlbnQgbW9kZWwsIHdpdGggb3B0aW9uYWwgd2hpdGUgc3BhY2UgKGNoYXJhY3RlcnMgCittYXRjaGluZyB0aGUgbm9udGVybWluYWwgPG50IGRlZj0iTlQtUyI+UzwvbnQ+KSBiZXR3ZWVuIGVhY2ggcGFpcgorb2YgY2hpbGQgZWxlbWVudHMuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRoZSBkZWNsYXJhdGlvbiBtYXRjaGVzIDxudCBkZWY9Ik5ULU1peGVkIj5NaXhlZDwvbnQ+IGFuZCAKK3RoZSBjb250ZW50IGNvbnNpc3RzIG9mIDx0ZXJtcmVmIGRlZj0iZHQtY2hhcmRhdGEiPmNoYXJhY3RlciAKK2RhdGE8L3Rlcm1yZWY+IGFuZCA8dGVybXJlZiBkZWY9ImR0LXBhcmVudGNoaWxkIj5jaGlsZCBlbGVtZW50czwvdGVybXJlZj4KK3dob3NlIHR5cGVzIG1hdGNoIG5hbWVzIGluIHRoZSBjb250ZW50IG1vZGVsLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgZGVjbGFyYXRpb24gbWF0Y2hlcyA8a3c+QU5ZPC9rdz4sIGFuZCB0aGUgdHlwZXMKK29mIGFueSA8dGVybXJlZiBkZWY9ImR0LXBhcmVudGNoaWxkIj5jaGlsZCBlbGVtZW50czwvdGVybXJlZj4gaGF2ZQorYmVlbiBkZWNsYXJlZC48L3A+PC9pdGVtPgorPC9vbGlzdD4KKzwvdmNub3RlPgorCis8ZGl2MiBpZD0ic2VjLXN0YXJ0dGFncyI+Cis8aGVhZD5TdGFydC1UYWdzLCBFbmQtVGFncywgYW5kIEVtcHR5LUVsZW1lbnQgVGFnczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1zdGFnIiB0ZXJtPSJTdGFydC1UYWciPlRoZSBiZWdpbm5pbmcgb2YgZXZlcnkKK25vbi1lbXB0eSBYTUwgZWxlbWVudCBpcyBtYXJrZWQgYnkgYSA8dGVybT5zdGFydC10YWc8L3Rlcm0+LgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+U3RhcnQtdGFnPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNSIgcGN3NT0iMTEuNSI+Cis8cHJvZCBpZD0iTlQtU1RhZyI+PGxocz5TVGFnPC9saHM+Cis8cmhzPicmbHQ7JyA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gCisoPG50IGRlZj0iTlQtUyI+UzwvbnQ+IDxudCBkZWY9Ik5ULUF0dHJpYnV0ZSI+QXR0cmlidXRlPC9udD4pKiAKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8gJyZndDsnPC9yaHM+Cis8d2ZjIGRlZj0idW5pcWF0dHNwZWMiLz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1BdHRyaWJ1dGUiPjxsaHM+QXR0cmlidXRlPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiA8bnQgZGVmPSJOVC1FcSI+RXE8L250PiAKKzxudCBkZWY9Ik5ULUF0dFZhbHVlIj5BdHRWYWx1ZTwvbnQ+PC9yaHM+Cis8dmMgZGVmPSJWYWx1ZVR5cGUiLz4KKzx3ZmMgZGVmPSJOb0V4dGVybmFsUmVmcyIvPgorPHdmYyBkZWY9IkNsZWFuQXR0clZhbHMiLz48L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+CitUaGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IGluCit0aGUgc3RhcnQtIGFuZCBlbmQtdGFncyBnaXZlcyB0aGUgCitlbGVtZW50J3MgPHRlcm0+dHlwZTwvdGVybT4uPC90ZXJtZGVmPgorPHRlcm1kZWYgaWQ9ImR0LWF0dHIiIHRlcm09IkF0dHJpYnV0ZSI+CitUaGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+LTxudCBkZWY9Ik5ULUF0dFZhbHVlIj5BdHRWYWx1ZTwvbnQ+IHBhaXJzIGFyZQorcmVmZXJyZWQgdG8gYXMgCit0aGUgPHRlcm0+YXR0cmlidXRlIHNwZWNpZmljYXRpb25zPC90ZXJtPiBvZiB0aGUgZWxlbWVudDwvdGVybWRlZj4sCis8dGVybWRlZiBpZD0iZHQtYXR0cm5hbWUiIHRlcm09IkF0dHJpYnV0ZSBOYW1lIj53aXRoIHRoZSAKKzxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiBpbiBlYWNoIHBhaXIKK3JlZmVycmVkIHRvIGFzIHRoZSA8dGVybT5hdHRyaWJ1dGUgbmFtZTwvdGVybT48L3Rlcm1kZWY+IGFuZAorPHRlcm1kZWYgaWQ9ImR0LWF0dHJ2YWwiIHRlcm09IkF0dHJpYnV0ZSBWYWx1ZSI+dGhlIGNvbnRlbnQgb2YgdGhlCis8bnQgZGVmPSJOVC1BdHRWYWx1ZSI+QXR0VmFsdWU8L250PiAodGhlIHRleHQgYmV0d2VlbiB0aGUKKzxjb2RlPic8L2NvZGU+IG9yIDxjb2RlPiI8L2NvZGU+IGRlbGltaXRlcnMpCithcyB0aGUgPHRlcm0+YXR0cmlidXRlIHZhbHVlPC90ZXJtPi48L3Rlcm1kZWY+Cis8L3A+Cis8d2Zjbm90ZSBpZD0idW5pcWF0dHNwZWMiPgorPGhlYWQ+VW5pcXVlIEF0dCBTcGVjPC9oZWFkPgorPHA+CitObyBhdHRyaWJ1dGUgbmFtZSBtYXkgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIHN0YXJ0LXRhZworb3IgZW1wdHktZWxlbWVudCB0YWcuCis8L3A+Cis8L3dmY25vdGU+Cis8dmNub3RlIGlkPSJWYWx1ZVR5cGUiPgorPGhlYWQ+QXR0cmlidXRlIFZhbHVlIFR5cGU8L2hlYWQ+Cis8cD4KK1RoZSBhdHRyaWJ1dGUgbXVzdCBoYXZlIGJlZW4gZGVjbGFyZWQ7IHRoZSB2YWx1ZSBtdXN0IGJlIG9mIHRoZSB0eXBlIAorZGVjbGFyZWQgZm9yIGl0LgorKEZvciBhdHRyaWJ1dGUgdHlwZXMsIHNlZSA8c3BlY3JlZiByZWY9ImF0dGRlY2xzIi8+LikKKzwvcD4KKzwvdmNub3RlPgorPHdmY25vdGUgaWQ9Ik5vRXh0ZXJuYWxSZWZzIj4KKzxoZWFkPk5vIEV4dGVybmFsIEVudGl0eSBSZWZlcmVuY2VzPC9oZWFkPgorPHA+CitBdHRyaWJ1dGUgdmFsdWVzIGNhbm5vdCBjb250YWluIGRpcmVjdCBvciBpbmRpcmVjdCBlbnRpdHkgcmVmZXJlbmNlcyAKK3RvIGV4dGVybmFsIGVudGl0aWVzLgorPC9wPgorPC93ZmNub3RlPgorPHdmY25vdGUgaWQ9IkNsZWFuQXR0clZhbHMiPgorPGhlYWQ+Tm8gPGNvZGU+Jmx0OzwvY29kZT4gaW4gQXR0cmlidXRlIFZhbHVlczwvaGVhZD4KKzxwPlRoZSA8dGVybXJlZiBkZWY9ImR0LXJlcGx0ZXh0Ij5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBvZiBhbnkgZW50aXR5CityZWZlcnJlZCB0byBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluIGFuIGF0dHJpYnV0ZQordmFsdWUgKG90aGVyIHRoYW4gIjxjb2RlPiZhbXA7bHQ7PC9jb2RlPiIpIG11c3Qgbm90IGNvbnRhaW4KK2EgPGNvZGU+Jmx0OzwvY29kZT4uCis8L3A+PC93ZmNub3RlPgorPHA+QW4gZXhhbXBsZSBvZiBhIHN0YXJ0LXRhZzoKKzxlZz4mbHQ7dGVybWRlZiBpZD0iZHQtZG9nIiB0ZXJtPSJkb2ciJmd0OzwvZWc+PC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWV0YWciIHRlcm09IkVuZCBUYWciPlRoZSBlbmQgb2YgZXZlcnkgZWxlbWVudCAKK3RoYXQgYmVnaW5zIHdpdGggYSBzdGFydC10YWcgbXVzdAorYmUgbWFya2VkIGJ5IGFuIDx0ZXJtPmVuZC10YWc8L3Rlcm0+Citjb250YWluaW5nIGEgbmFtZSB0aGF0IGVjaG9lcyB0aGUgZWxlbWVudCdzIHR5cGUgYXMgZ2l2ZW4gaW4gdGhlCitzdGFydC10YWc6Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5FbmQtdGFnPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNSIgcGN3NT0iMTEuNSI+Cis8cHJvZCBpZD0iTlQtRVRhZyI+PGxocz5FVGFnPC9saHM+Cis8cmhzPicmbHQ7LycgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IAorPG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAnJmd0Oyc8L3Jocz48L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cis8L3Rlcm1kZWY+PC9wPgorPHA+QW4gZXhhbXBsZSBvZiBhbiBlbmQtdGFnOjxlZz4mbHQ7L3Rlcm1kZWYmZ3Q7PC9lZz48L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtY29udGVudCIgdGVybT0iQ29udGVudCI+VGhlIAorPHRlcm1yZWYgZGVmPSJkdC10ZXh0Ij50ZXh0PC90ZXJtcmVmPiBiZXR3ZWVuIHRoZSBzdGFydC10YWcgYW5kCitlbmQtdGFnIGlzIGNhbGxlZCB0aGUgZWxlbWVudCdzCis8dGVybT5jb250ZW50PC90ZXJtPjoKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPkNvbnRlbnQgb2YgRWxlbWVudHM8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjYiIHBjdzQ9IjE1IiBwY3c1PSIxMS41Ij4KKzxwcm9kIGlkPSJOVC1jb250ZW50Ij48bGhzPmNvbnRlbnQ8L2xocz4KKzxyaHM+KDxudCBkZWY9Ik5ULWVsZW1lbnQiPmVsZW1lbnQ8L250PiB8IDxudCBkZWY9Ik5ULUNoYXJEYXRhIj5DaGFyRGF0YTwvbnQ+IAorfCA8bnQgZGVmPSJOVC1SZWZlcmVuY2UiPlJlZmVyZW5jZTwvbnQ+IHwgPG50IGRlZj0iTlQtQ0RTZWN0Ij5DRFNlY3Q8L250PiAKK3wgPG50IGRlZj0iTlQtUEkiPlBJPC9udD4gfCA8bnQgZGVmPSJOVC1Db21tZW50Ij5Db21tZW50PC9udD4pKjwvcmhzPgorPC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC90ZXJtZGVmPjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbXB0eSIgdGVybT0iRW1wdHkiPklmIGFuIGVsZW1lbnQgaXMgPHRlcm0+ZW1wdHk8L3Rlcm0+LAoraXQgbXVzdCBiZSByZXByZXNlbnRlZCBlaXRoZXIgYnkgYSBzdGFydC10YWcgaW1tZWRpYXRlbHkgZm9sbG93ZWQKK2J5IGFuIGVuZC10YWcgb3IgYnkgYW4gZW1wdHktZWxlbWVudCB0YWcuPC90ZXJtZGVmPgorPHRlcm1kZWYgaWQ9ImR0LWVldGFnIiB0ZXJtPSJlbXB0eS1lbGVtZW50IHRhZyI+QW4gCis8dGVybT5lbXB0eS1lbGVtZW50IHRhZzwvdGVybT4gdGFrZXMgYSBzcGVjaWFsIGZvcm06Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5UYWdzIGZvciBFbXB0eSBFbGVtZW50czwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNiIgcGN3ND0iMTUiIHBjdzU9IjExLjUiPgorPHByb2QgaWQ9Ik5ULUVtcHR5RWxlbVRhZyI+PGxocz5FbXB0eUVsZW1UYWc8L2xocz4KKzxyaHM+JyZsdDsnIDxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiAoPG50IGRlZj0iTlQtUyI+UzwvbnQ+IAorPG50IGRlZj0iTlQtQXR0cmlidXRlIj5BdHRyaWJ1dGU8L250PikqIDxudCBkZWY9Ik5ULVMiPlM8L250Pj8gCisnLyZndDsnPC9yaHM+Cis8d2ZjIGRlZj0idW5pcWF0dHNwZWMiLz4KKzwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvdGVybWRlZj48L3A+Cis8cD5FbXB0eS1lbGVtZW50IHRhZ3MgbWF5IGJlIHVzZWQgZm9yIGFueSBlbGVtZW50IHdoaWNoIGhhcyBubworY29udGVudCwgd2hldGhlciBvciBub3QgaXQgaXMgZGVjbGFyZWQgdXNpbmcgdGhlIGtleXdvcmQKKzxrdz5FTVBUWTwva3c+LgorPHRlcm1yZWYgZGVmPSJkdC1pbnRlcm9wIj5Gb3IgaW50ZXJvcGVyYWJpbGl0eTwvdGVybXJlZj4sIHRoZSBlbXB0eS1lbGVtZW50Cit0YWcgbXVzdCBiZSB1c2VkLCBhbmQgY2FuIG9ubHkgYmUgdXNlZCwgZm9yIGVsZW1lbnRzIHdoaWNoIGFyZQorPHRlcm1yZWYgZGVmPSJkdC1lbGRlY2wiPmRlY2xhcmVkPC90ZXJtcmVmPiA8a3c+RU1QVFk8L2t3Pi48L3A+Cis8cD5FeGFtcGxlcyBvZiBlbXB0eSBlbGVtZW50czoKKzxlZz4mbHQ7SU1HIGFsaWduPSJsZWZ0IgorIHNyYz0iaHR0cDovL3d3dy53My5vcmcvSWNvbnMvV1dXL3czY19ob21lIiAvJmd0OworJmx0O2JyJmd0OyZsdDsvYnImZ3Q7CismbHQ7YnIvJmd0OzwvZWc+PC9wPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9ImVsZW1kZWNscyI+Cis8aGVhZD5FbGVtZW50IFR5cGUgRGVjbGFyYXRpb25zPC9oZWFkPgorIAorPHA+VGhlIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWVudCI+ZWxlbWVudDwvdGVybXJlZj4gc3RydWN0dXJlIG9mIGFuCis8dGVybXJlZiBkZWY9ImR0LXhtbC1kb2MiPlhNTCBkb2N1bWVudDwvdGVybXJlZj4gbWF5LCBmb3IgCis8dGVybXJlZiBkZWY9ImR0LXZhbGlkIj52YWxpZGF0aW9uPC90ZXJtcmVmPiBwdXJwb3NlcywgCitiZSBjb25zdHJhaW5lZAordXNpbmcgZWxlbWVudCB0eXBlIGFuZCBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnMuCitBbiBlbGVtZW50IHR5cGUgZGVjbGFyYXRpb24gY29uc3RyYWlucyB0aGUgZWxlbWVudCdzCis8dGVybXJlZiBkZWY9ImR0LWNvbnRlbnQiPmNvbnRlbnQ8L3Rlcm1yZWY+LgorPC9wPgorCis8cD5FbGVtZW50IHR5cGUgZGVjbGFyYXRpb25zIG9mdGVuIGNvbnN0cmFpbiB3aGljaCBlbGVtZW50IHR5cGVzIGNhbgorYXBwZWFyIGFzIDx0ZXJtcmVmIGRlZj0iZHQtcGFyZW50Y2hpbGQiPmNoaWxkcmVuPC90ZXJtcmVmPiBvZiB0aGUgZWxlbWVudC4KK0F0IHVzZXIgb3B0aW9uLCBhbiBYTUwgcHJvY2Vzc29yIG1heSBpc3N1ZSBhIHdhcm5pbmcKK3doZW4gYSBkZWNsYXJhdGlvbiBtZW50aW9ucyBhbiBlbGVtZW50IHR5cGUgZm9yIHdoaWNoIG5vIGRlY2xhcmF0aW9uCitpcyBwcm92aWRlZCwgYnV0IHRoaXMgaXMgbm90IGFuIGVycm9yLjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbGRlY2wiIHRlcm09IkVsZW1lbnQgVHlwZSBkZWNsYXJhdGlvbiI+QW4gPHRlcm0+ZWxlbWVudAordHlwZSBkZWNsYXJhdGlvbjwvdGVybT4gdGFrZXMgdGhlIGZvcm06Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5FbGVtZW50IFR5cGUgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjUuNSIgcGN3ND0iMTgiIHBjdzU9IjkiPgorPHByb2QgaWQ9Ik5ULWVsZW1lbnRkZWNsIj48bGhzPmVsZW1lbnRkZWNsPC9saHM+Cis8cmhzPicmbHQ7IUVMRU1FTlQnIDxudCBkZWY9Ik5ULVMiPlM8L250PiAKKzxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiAKKzxudCBkZWY9Ik5ULVMiPlM8L250PiAKKzxudCBkZWY9Ik5ULWNvbnRlbnRzcGVjIj5jb250ZW50c3BlYzwvbnQ+Cis8bnQgZGVmPSJOVC1TIj5TPC9udD4/ICcmZ3Q7JzwvcmhzPgorPHZjIGRlZj0iRURVbmlxdWUiLz48L3Byb2Q+Cis8cHJvZCBpZD0iTlQtY29udGVudHNwZWMiPjxsaHM+Y29udGVudHNwZWM8L2xocz4KKzxyaHM+J0VNUFRZJyAKK3wgJ0FOWScgCit8IDxudCBkZWY9Ik5ULU1peGVkIj5NaXhlZDwvbnQ+IAorfCA8bnQgZGVmPSJOVC1jaGlsZHJlbiI+Y2hpbGRyZW48L250PgorPC9yaHM+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cit3aGVyZSB0aGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IGdpdmVzIHRoZSBlbGVtZW50IHR5cGUgCitiZWluZyBkZWNsYXJlZC48L3Rlcm1kZWY+Cis8L3A+CisKKzx2Y25vdGUgaWQ9IkVEVW5pcXVlIj4KKzxoZWFkPlVuaXF1ZSBFbGVtZW50IFR5cGUgRGVjbGFyYXRpb248L2hlYWQ+Cis8cD4KK05vIGVsZW1lbnQgdHlwZSBtYXkgYmUgZGVjbGFyZWQgbW9yZSB0aGFuIG9uY2UuCis8L3A+Cis8L3Zjbm90ZT4KKworPHA+RXhhbXBsZXMgb2YgZWxlbWVudCB0eXBlIGRlY2xhcmF0aW9uczoKKzxlZz4mbHQ7IUVMRU1FTlQgYnIgRU1QVFkmZ3Q7CismbHQ7IUVMRU1FTlQgcCAoI1BDREFUQXxlbXBoKSogJmd0OworJmx0OyFFTEVNRU5UICVuYW1lLnBhcmE7ICVjb250ZW50LnBhcmE7ICZndDsKKyZsdDshRUxFTUVOVCBjb250YWluZXIgQU5ZJmd0OzwvZWc+PC9wPgorIAorPGRpdjMgaWQ9InNlYy1lbGVtZW50LWNvbnRlbnQiPgorPGhlYWQ+RWxlbWVudCBDb250ZW50PC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWVsZW1jb250ZW50IiB0ZXJtPSJFbGVtZW50IGNvbnRlbnQiPkFuIGVsZW1lbnQgPHRlcm1yZWYgZGVmPSJkdC1zdGFnIj50eXBlPC90ZXJtcmVmPiBoYXMKKzx0ZXJtPmVsZW1lbnQgY29udGVudDwvdGVybT4gd2hlbiBlbGVtZW50cyBvZiB0aGF0Cit0eXBlIG11c3QgY29udGFpbiBvbmx5IDx0ZXJtcmVmIGRlZj0iZHQtcGFyZW50Y2hpbGQiPmNoaWxkPC90ZXJtcmVmPiAKK2VsZW1lbnRzIChubyBjaGFyYWN0ZXIgZGF0YSksIG9wdGlvbmFsbHkgc2VwYXJhdGVkIGJ5IAord2hpdGUgc3BhY2UgKGNoYXJhY3RlcnMgbWF0Y2hpbmcgdGhlIG5vbnRlcm1pbmFsIAorPG50IGRlZj0iTlQtUyI+UzwvbnQ+KS4KKzwvdGVybWRlZj4KK0luIHRoaXMgY2FzZSwgdGhlCitjb25zdHJhaW50IGluY2x1ZGVzIGEgY29udGVudCBtb2RlbCwgYSBzaW1wbGUgZ3JhbW1hciBnb3Zlcm5pbmcKK3RoZSBhbGxvd2VkIHR5cGVzIG9mIHRoZSBjaGlsZAorZWxlbWVudHMgYW5kIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZSBhbGxvd2VkIHRvIGFwcGVhci4gIAorVGhlIGdyYW1tYXIgaXMgYnVpbHQgb24KK2NvbnRlbnQgcGFydGljbGVzICg8bnQgZGVmPSJOVC1jcCI+Y3A8L250PnMpLCB3aGljaCBjb25zaXN0IG9mIG5hbWVzLCAKK2Nob2ljZSBsaXN0cyBvZiBjb250ZW50IHBhcnRpY2xlcywgb3IKK3NlcXVlbmNlIGxpc3RzIG9mIGNvbnRlbnQgcGFydGljbGVzOgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+RWxlbWVudC1jb250ZW50IE1vZGVsczwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNS41IiBwY3c0PSIxNiIgcGN3NT0iMTEiPgorPHByb2QgaWQ9Ik5ULWNoaWxkcmVuIj48bGhzPmNoaWxkcmVuPC9saHM+Cis8cmhzPig8bnQgZGVmPSJOVC1jaG9pY2UiPmNob2ljZTwvbnQ+IAorfCA8bnQgZGVmPSJOVC1zZXEiPnNlcTwvbnQ+KSAKKygnPycgfCAnKicgfCAnKycpPzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1jcCI+PGxocz5jcDwvbGhzPgorPHJocz4oPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IAorfCA8bnQgZGVmPSJOVC1jaG9pY2UiPmNob2ljZTwvbnQ+IAorfCA8bnQgZGVmPSJOVC1zZXEiPnNlcTwvbnQ+KSAKKygnPycgfCAnKicgfCAnKycpPzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1jaG9pY2UiPjxsaHM+Y2hvaWNlPC9saHM+Cis8cmhzPicoJyA8bnQgZGVmPSJOVC1TIj5TPC9udD4/IGNwIAorKCA8bnQgZGVmPSJOVC1TIj5TPC9udD4/ICd8JyA8bnQgZGVmPSJOVC1TIj5TPC9udD4/IDxudCBkZWY9Ik5ULWNwIj5jcDwvbnQ+ICkqCis8bnQgZGVmPSJOVC1TIj5TPC9udD4/ICcpJzwvcmhzPgorPHZjIGRlZj0idmMtUEVpbkdyb3VwIi8+PC9wcm9kPgorPHByb2QgaWQ9Ik5ULXNlcSI+PGxocz5zZXE8L2xocz4KKzxyaHM+JygnIDxudCBkZWY9Ik5ULVMiPlM8L250Pj8gY3AgCisoIDxudCBkZWY9Ik5ULVMiPlM8L250Pj8gJywnIDxudCBkZWY9Ik5ULVMiPlM8L250Pj8gPG50IGRlZj0iTlQtY3AiPmNwPC9udD4gKSoKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8gJyknPC9yaHM+Cis8dmMgZGVmPSJ2Yy1QRWluR3JvdXAiLz48L3Byb2Q+CisKKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KK3doZXJlIGVhY2ggPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IGlzIHRoZSB0eXBlIG9mIGFuIGVsZW1lbnQgd2hpY2ggbWF5CithcHBlYXIgYXMgYSA8dGVybXJlZiBkZWY9ImR0LXBhcmVudGNoaWxkIj5jaGlsZDwvdGVybXJlZj4uICAKK0FueSBjb250ZW50CitwYXJ0aWNsZSBpbiBhIGNob2ljZSBsaXN0IG1heSBhcHBlYXIgaW4gdGhlIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWNvbnRlbnQiPmVsZW1lbnQgY29udGVudDwvdGVybXJlZj4gYXQgdGhlIGxvY2F0aW9uIHdoZXJlCit0aGUgY2hvaWNlIGxpc3QgYXBwZWFycyBpbiB0aGUgZ3JhbW1hcjsKK2NvbnRlbnQgcGFydGljbGVzIG9jY3VycmluZyBpbiBhIHNlcXVlbmNlIGxpc3QgbXVzdCBlYWNoCithcHBlYXIgaW4gdGhlIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWNvbnRlbnQiPmVsZW1lbnQgY29udGVudDwvdGVybXJlZj4gaW4gdGhlCitvcmRlciBnaXZlbiBpbiB0aGUgbGlzdC4gIAorVGhlIG9wdGlvbmFsIGNoYXJhY3RlciBmb2xsb3dpbmcgYSBuYW1lIG9yIGxpc3QgZ292ZXJucword2hldGhlciB0aGUgZWxlbWVudCBvciB0aGUgY29udGVudCBwYXJ0aWNsZXMgaW4gdGhlIGxpc3QgbWF5IG9jY3VyIG9uZQorb3IgbW9yZSAoPGNvZGU+KzwvY29kZT4pLCB6ZXJvIG9yIG1vcmUgKDxjb2RlPio8L2NvZGU+KSwgb3IgemVybyBvciAKK29uZSB0aW1lcyAoPGNvZGU+PzwvY29kZT4pLiAgCitUaGUgYWJzZW5jZSBvZiBzdWNoIGFuIG9wZXJhdG9yIG1lYW5zIHRoYXQgdGhlIGVsZW1lbnQgb3IgY29udGVudCBwYXJ0aWNsZQorbXVzdCBhcHBlYXIgZXhhY3RseSBvbmNlLgorVGhpcyBzeW50YXgKK2FuZCBtZWFuaW5nIGFyZSBpZGVudGljYWwgdG8gdGhvc2UgdXNlZCBpbiB0aGUgcHJvZHVjdGlvbnMgaW4gdGhpcworc3BlY2lmaWNhdGlvbi48L3A+Cis8cD4KK1RoZSBjb250ZW50IG9mIGFuIGVsZW1lbnQgbWF0Y2hlcyBhIGNvbnRlbnQgbW9kZWwgaWYgYW5kIG9ubHkgaWYgaXQgaXMKK3Bvc3NpYmxlIHRvIHRyYWNlIG91dCBhIHBhdGggdGhyb3VnaCB0aGUgY29udGVudCBtb2RlbCwgb2JleWluZyB0aGUKK3NlcXVlbmNlLCBjaG9pY2UsIGFuZCByZXBldGl0aW9uIG9wZXJhdG9ycyBhbmQgbWF0Y2hpbmcgZWFjaCBlbGVtZW50IGluCit0aGUgY29udGVudCBhZ2FpbnN0IGFuIGVsZW1lbnQgdHlwZSBpbiB0aGUgY29udGVudCBtb2RlbC4gIDx0ZXJtcmVmIGRlZj0iZHQtY29tcGF0Ij5Gb3IgY29tcGF0aWJpbGl0eTwvdGVybXJlZj4sIGl0IGlzIGFuIGVycm9yCitpZiBhbiBlbGVtZW50IGluIHRoZSBkb2N1bWVudCBjYW4KK21hdGNoIG1vcmUgdGhhbiBvbmUgb2NjdXJyZW5jZSBvZiBhbiBlbGVtZW50IHR5cGUgaW4gdGhlIGNvbnRlbnQgbW9kZWwuCitGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxzcGVjcmVmIHJlZj0iZGV0ZXJtaW5pc20iLz4uCis8IS0tIGFwcGVuZGl4IDxzcGVjcmVmIHJlZj0iZGV0ZXJtaW5pc20iLz4uIC0tPgorPCEtLSBhcHBlbmRpeCBvbiBkZXRlcm1pbmlzdGljIGNvbnRlbnQgbW9kZWxzLiAtLT4KKzwvcD4KKzx2Y25vdGUgaWQ9InZjLVBFaW5Hcm91cCI+Cis8aGVhZD5Qcm9wZXIgR3JvdXAvUEUgTmVzdGluZzwvaGVhZD4KKzxwPlBhcmFtZXRlci1lbnRpdHkgCis8dGVybXJlZiBkZWY9ImR0LXJlcGx0ZXh0Ij5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZAord2l0aCBwYXJlbnRoZXRpemVkIGdyb3Vwcy4KK1RoYXQgaXMgdG8gc2F5LCBpZiBlaXRoZXIgb2YgdGhlIG9wZW5pbmcgb3IgY2xvc2luZyBwYXJlbnRoZXNlcworaW4gYSA8bnQgZGVmPSJOVC1jaG9pY2UiPmNob2ljZTwvbnQ+LCA8bnQgZGVmPSJOVC1zZXEiPnNlcTwvbnQ+LCBvcgorPG50IGRlZj0iTlQtTWl4ZWQiPk1peGVkPC9udD4gY29uc3RydWN0IAoraXMgY29udGFpbmVkIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciBhIAorPHRlcm1yZWYgZGVmPSJkdC1QRVJlZiI+cGFyYW1ldGVyIGVudGl0eTwvdGVybXJlZj4sCitib3RoIG11c3QgYmUgY29udGFpbmVkIGluIHRoZSBzYW1lIHJlcGxhY2VtZW50IHRleHQuPC9wPgorPHA+PHRlcm1yZWYgZGVmPSJkdC1pbnRlcm9wIj5Gb3IgaW50ZXJvcGVyYWJpbGl0eTwvdGVybXJlZj4sIAoraWYgYSBwYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZSBhcHBlYXJzIGluIGEgCis8bnQgZGVmPSJOVC1jaG9pY2UiPmNob2ljZTwvbnQ+LCA8bnQgZGVmPSJOVC1zZXEiPnNlcTwvbnQ+LCBvcgorPG50IGRlZj0iTlQtTWl4ZWQiPk1peGVkPC9udD4gY29uc3RydWN0LCBpdHMgcmVwbGFjZW1lbnQgdGV4dAorc2hvdWxkIG5vdCBiZSBlbXB0eSwgYW5kIAorbmVpdGhlciB0aGUgZmlyc3Qgbm9yIGxhc3Qgbm9uLWJsYW5rCitjaGFyYWN0ZXIgb2YgdGhlIHJlcGxhY2VtZW50IHRleHQgc2hvdWxkIGJlIGEgY29ubmVjdG9yIAorKDxjb2RlPnw8L2NvZGU+IG9yIDxjb2RlPiw8L2NvZGU+KS4KKzwvcD4KKzwvdmNub3RlPgorPHA+RXhhbXBsZXMgb2YgZWxlbWVudC1jb250ZW50IG1vZGVsczoKKzxlZz4mbHQ7IUVMRU1FTlQgc3BlYyAoZnJvbnQsIGJvZHksIGJhY2s/KSZndDsKKyZsdDshRUxFTUVOVCBkaXYxIChoZWFkLCAocCB8IGxpc3QgfCBub3RlKSosIGRpdjIqKSZndDsKKyZsdDshRUxFTUVOVCBkaWN0aW9uYXJ5LWJvZHkgKCVkaXYubWl4OyB8ICVkaWN0Lm1peDspKiZndDs8L2VnPjwvcD4KKzwvZGl2Mz4KKworPGRpdjMgaWQ9InNlYy1taXhlZC1jb250ZW50Ij4KKzxoZWFkPk1peGVkIENvbnRlbnQ8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtbWl4ZWQiIHRlcm09Ik1peGVkIENvbnRlbnQiPkFuIGVsZW1lbnQgCis8dGVybXJlZiBkZWY9ImR0LXN0YWciPnR5cGU8L3Rlcm1yZWY+IGhhcyAKKzx0ZXJtPm1peGVkIGNvbnRlbnQ8L3Rlcm0+IHdoZW4gZWxlbWVudHMgb2YgdGhhdCB0eXBlIG1heSBjb250YWluCitjaGFyYWN0ZXIgZGF0YSwgb3B0aW9uYWxseSBpbnRlcnNwZXJzZWQgd2l0aAorPHRlcm1yZWYgZGVmPSJkdC1wYXJlbnRjaGlsZCI+Y2hpbGQ8L3Rlcm1yZWY+IGVsZW1lbnRzLjwvdGVybWRlZj4KK0luIHRoaXMgY2FzZSwgdGhlIHR5cGVzIG9mIHRoZSBjaGlsZCBlbGVtZW50cworbWF5IGJlIGNvbnN0cmFpbmVkLCBidXQgbm90IHRoZWlyIG9yZGVyIG9yIHRoZWlyIG51bWJlciBvZiBvY2N1cnJlbmNlczoKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPk1peGVkLWNvbnRlbnQgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjUuNSIgcGN3ND0iMTYiIHBjdzU9IjExIj4KKzxwcm9kIGlkPSJOVC1NaXhlZCI+PGxocz5NaXhlZDwvbGhzPgorPHJocz4nKCcgPG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAKKycjUENEQVRBJworKDxudCBkZWY9Ik5ULVMiPlM8L250Pj8gCisnfCcgCis8bnQgZGVmPSJOVC1TIj5TPC9udD4/IAorPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+KSogCis8bnQgZGVmPSJOVC1TIj5TPC9udD4/IAorJykqJyA8L3Jocz4KKzxyaHM+fCAnKCcgPG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAnI1BDREFUQScgPG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAnKScKKzwvcmhzPjx2YyBkZWY9InZjLVBFaW5Hcm91cCIvPgorPHZjIGRlZj0idmMtTWl4ZWRDaGlsZHJlblVuaXF1ZSIvPgorPC9wcm9kPgorCis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cit3aGVyZSB0aGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+cyBnaXZlIHRoZSB0eXBlcyBvZiBlbGVtZW50cwordGhhdCBtYXkgYXBwZWFyIGFzIGNoaWxkcmVuLgorPC9wPgorPHZjbm90ZSBpZD0idmMtTWl4ZWRDaGlsZHJlblVuaXF1ZSI+Cis8aGVhZD5ObyBEdXBsaWNhdGUgVHlwZXM8L2hlYWQ+Cis8cD5UaGUgc2FtZSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiBhIHNpbmdsZSBtaXhlZC1jb250ZW50CitkZWNsYXJhdGlvbi4KKzwvcD48L3Zjbm90ZT4KKzxwPkV4YW1wbGVzIG9mIG1peGVkIGNvbnRlbnQgZGVjbGFyYXRpb25zOgorPGVnPiZsdDshRUxFTUVOVCBwICgjUENEQVRBfGF8dWx8YnxpfGVtKSomZ3Q7CismbHQ7IUVMRU1FTlQgcCAoI1BDREFUQSB8ICVmb250OyB8ICVwaHJhc2U7IHwgJXNwZWNpYWw7IHwgJWZvcm07KSogJmd0OworJmx0OyFFTEVNRU5UIGIgKCNQQ0RBVEEpJmd0OzwvZWc+PC9wPgorPC9kaXYzPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9ImF0dGRlY2xzIj4KKzxoZWFkPkF0dHJpYnV0ZS1MaXN0IERlY2xhcmF0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtcmVmIGRlZj0iZHQtYXR0ciI+QXR0cmlidXRlczwvdGVybXJlZj4gYXJlIHVzZWQgdG8gYXNzb2NpYXRlCituYW1lLXZhbHVlIHBhaXJzIHdpdGggPHRlcm1yZWYgZGVmPSJkdC1lbGVtZW50Ij5lbGVtZW50czwvdGVybXJlZj4uCitBdHRyaWJ1dGUgc3BlY2lmaWNhdGlvbnMgbWF5IGFwcGVhciBvbmx5IHdpdGhpbiA8dGVybXJlZiBkZWY9ImR0LXN0YWciPnN0YXJ0LXRhZ3M8L3Rlcm1yZWY+CithbmQgPHRlcm1yZWYgZGVmPSJkdC1lZXRhZyI+ZW1wdHktZWxlbWVudCB0YWdzPC90ZXJtcmVmPjsgCit0aHVzLCB0aGUgcHJvZHVjdGlvbnMgdXNlZCB0bworcmVjb2duaXplIHRoZW0gYXBwZWFyIGluIDxzcGVjcmVmIHJlZj0ic2VjLXN0YXJ0dGFncyIvPi4gIAorQXR0cmlidXRlLWxpc3QKK2RlY2xhcmF0aW9ucyBtYXkgYmUgdXNlZDoKKzx1bGlzdD4KKzxpdGVtPjxwPlRvIGRlZmluZSB0aGUgc2V0IG9mIGF0dHJpYnV0ZXMgcGVydGFpbmluZyB0byBhIGdpdmVuCitlbGVtZW50IHR5cGUuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRvIGVzdGFibGlzaCB0eXBlIGNvbnN0cmFpbnRzIGZvciB0aGVzZQorYXR0cmlidXRlcy48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VG8gcHJvdmlkZSA8dGVybXJlZiBkZWY9ImR0LWRlZmF1bHQiPmRlZmF1bHQgdmFsdWVzPC90ZXJtcmVmPgorZm9yIGF0dHJpYnV0ZXMuPC9wPjwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtYXR0ZGVjbCIgdGVybT0iQXR0cmlidXRlLUxpc3QgRGVjbGFyYXRpb24iPgorPHRlcm0+QXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb25zPC90ZXJtPiBzcGVjaWZ5IHRoZSBuYW1lLCBkYXRhIHR5cGUsIGFuZCBkZWZhdWx0Cit2YWx1ZSAoaWYgYW55KSBvZiBlYWNoIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBlbGVtZW50IHR5cGU6Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5BdHRyaWJ1dGUtbGlzdCBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwcm9kIGlkPSJOVC1BdHRsaXN0RGVjbCI+PGxocz5BdHRsaXN0RGVjbDwvbGhzPgorPHJocz4nJmx0OyFBVFRMSVNUJyA8bnQgZGVmPSJOVC1TIj5TPC9udD4gCis8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gCis8bnQgZGVmPSJOVC1BdHREZWYiPkF0dERlZjwvbnQ+KgorPG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAnJmd0Oyc8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1BdHREZWYiPjxsaHM+QXR0RGVmPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULVMiPlM8L250PiA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gCis8bnQgZGVmPSJOVC1TIj5TPC9udD4gPG50IGRlZj0iTlQtQXR0VHlwZSI+QXR0VHlwZTwvbnQ+IAorPG50IGRlZj0iTlQtUyI+UzwvbnQ+IDxudCBkZWY9Ik5ULURlZmF1bHREZWNsIj5EZWZhdWx0RGVjbDwvbnQ+PC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorVGhlIDxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiBpbiB0aGUKKzxudCBkZWY9Ik5ULUF0dGxpc3REZWNsIj5BdHRsaXN0RGVjbDwvbnQ+IHJ1bGUgaXMgdGhlIHR5cGUgb2YgYW4gZWxlbWVudC4gIEF0Cit1c2VyIG9wdGlvbiwgYW4gWE1MIHByb2Nlc3NvciBtYXkgaXNzdWUgYSB3YXJuaW5nIGlmIGF0dHJpYnV0ZXMgYXJlCitkZWNsYXJlZCBmb3IgYW4gZWxlbWVudCB0eXBlIG5vdCBpdHNlbGYgZGVjbGFyZWQsIGJ1dCB0aGlzIGlzIG5vdCBhbgorZXJyb3IuICBUaGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IGluIHRoZSAKKzxudCBkZWY9Ik5ULUF0dERlZiI+QXR0RGVmPC9udD4gcnVsZSBpcwordGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS48L3Rlcm1kZWY+PC9wPgorPHA+CitXaGVuIG1vcmUgdGhhbiBvbmUgPG50IGRlZj0iTlQtQXR0bGlzdERlY2wiPkF0dGxpc3REZWNsPC9udD4gaXMgcHJvdmlkZWQgZm9yIGEKK2dpdmVuIGVsZW1lbnQgdHlwZSwgdGhlIGNvbnRlbnRzIG9mIGFsbCB0aG9zZSBwcm92aWRlZCBhcmUgbWVyZ2VkLiAgV2hlbgorbW9yZSB0aGFuIG9uZSBkZWZpbml0aW9uIGlzIHByb3ZpZGVkIGZvciB0aGUgc2FtZSBhdHRyaWJ1dGUgb2YgYQorZ2l2ZW4gZWxlbWVudCB0eXBlLCB0aGUgZmlyc3QgZGVjbGFyYXRpb24gaXMgYmluZGluZyBhbmQgbGF0ZXIKK2RlY2xhcmF0aW9ucyBhcmUgaWdub3JlZC4gIAorPHRlcm1yZWYgZGVmPSJkdC1pbnRlcm9wIj5Gb3IgaW50ZXJvcGVyYWJpbGl0eSw8L3Rlcm1yZWY+IHdyaXRlcnMgb2YgRFREcworbWF5IGNob29zZSB0byBwcm92aWRlIGF0IG1vc3Qgb25lIGF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uCitmb3IgYSBnaXZlbiBlbGVtZW50IHR5cGUsIGF0IG1vc3Qgb25lIGF0dHJpYnV0ZSBkZWZpbml0aW9uCitmb3IgYSBnaXZlbiBhdHRyaWJ1dGUgbmFtZSwgYW5kIGF0IGxlYXN0IG9uZSBhdHRyaWJ1dGUgZGVmaW5pdGlvbgoraW4gZWFjaCBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbi4KK0ZvciBpbnRlcm9wZXJhYmlsaXR5LCBhbiBYTUwgcHJvY2Vzc29yIG1heSBhdCB1c2VyIG9wdGlvbgoraXNzdWUgYSB3YXJuaW5nIHdoZW4gbW9yZSB0aGFuIG9uZSBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbiBpcworcHJvdmlkZWQgZm9yIGEgZ2l2ZW4gZWxlbWVudCB0eXBlLCBvciBtb3JlIHRoYW4gb25lIGF0dHJpYnV0ZSBkZWZpbml0aW9uCitpcyBwcm92aWRlZCAKK2ZvciBhIGdpdmVuIGF0dHJpYnV0ZSwgYnV0IHRoaXMgaXMgbm90IGFuIGVycm9yLgorPC9wPgorCis8ZGl2MyBpZD0ic2VjLWF0dHJpYnV0ZS10eXBlcyI+Cis8aGVhZD5BdHRyaWJ1dGUgVHlwZXM8L2hlYWQ+CisgCis8cD5YTUwgYXR0cmlidXRlIHR5cGVzIGFyZSBvZiB0aHJlZSBraW5kczogIGEgc3RyaW5nIHR5cGUsIGEKK3NldCBvZiB0b2tlbml6ZWQgdHlwZXMsIGFuZCBlbnVtZXJhdGVkIHR5cGVzLiAgVGhlIHN0cmluZyB0eXBlIG1heSB0YWtlCithbnkgbGl0ZXJhbCBzdHJpbmcgYXMgYSB2YWx1ZTsgdGhlIHRva2VuaXplZCB0eXBlcyBoYXZlIHZhcnlpbmcgbGV4aWNhbAorYW5kIHNlbWFudGljIGNvbnN0cmFpbnRzLCBhcyBub3RlZDoKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPkF0dHJpYnV0ZSBUeXBlczwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3ND0iMTQiIHBjdzU9IjExLjUiPgorPHByb2QgaWQ9Ik5ULUF0dFR5cGUiPjxsaHM+QXR0VHlwZTwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1TdHJpbmdUeXBlIj5TdHJpbmdUeXBlPC9udD4gCit8IDxudCBkZWY9Ik5ULVRva2VuaXplZFR5cGUiPlRva2VuaXplZFR5cGU8L250PiAKK3wgPG50IGRlZj0iTlQtRW51bWVyYXRlZFR5cGUiPkVudW1lcmF0ZWRUeXBlPC9udD4KKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9Ik5ULVN0cmluZ1R5cGUiPjxsaHM+U3RyaW5nVHlwZTwvbGhzPgorPHJocz4nQ0RBVEEnPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtVG9rZW5pemVkVHlwZSI+PGxocz5Ub2tlbml6ZWRUeXBlPC9saHM+Cis8cmhzPidJRCc8L3Jocz4KKzx2YyBkZWY9ImlkIi8+Cis8dmMgZGVmPSJvbmUtaWQtcGVyLWVsIi8+Cis8dmMgZGVmPSJpZC1kZWZhdWx0Ii8+Cis8cmhzPnwgJ0lEUkVGJzwvcmhzPgorPHZjIGRlZj0iaWRyZWYiLz4KKzxyaHM+fCAnSURSRUZTJzwvcmhzPgorPHZjIGRlZj0iaWRyZWYiLz4KKzxyaHM+fCAnRU5USVRZJzwvcmhzPgorPHZjIGRlZj0iZW50bmFtZSIvPgorPHJocz58ICdFTlRJVElFUyc8L3Jocz4KKzx2YyBkZWY9ImVudG5hbWUiLz4KKzxyaHM+fCAnTk1UT0tFTic8L3Jocz4KKzx2YyBkZWY9Im5tdG9rIi8+Cis8cmhzPnwgJ05NVE9LRU5TJzwvcmhzPgorPHZjIGRlZj0ibm10b2siLz48L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cis8L3A+Cis8dmNub3RlIGlkPSJpZCI+Cis8aGVhZD5JRDwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHR5cGUgPGt3PklEPC9rdz4gbXVzdCBtYXRjaCB0aGUgCis8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gcHJvZHVjdGlvbi4gIAorQSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbgorYW4gWE1MIGRvY3VtZW50IGFzIGEgdmFsdWUgb2YgdGhpcyB0eXBlOyBpLmUuLCBJRCB2YWx1ZXMgbXVzdCB1bmlxdWVseQoraWRlbnRpZnkgdGhlIGVsZW1lbnRzIHdoaWNoIGJlYXIgdGhlbS4gICAKKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0ib25lLWlkLXBlci1lbCI+Cis8aGVhZD5PbmUgSUQgcGVyIEVsZW1lbnQgVHlwZTwvaGVhZD4KKzxwPk5vIGVsZW1lbnQgdHlwZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIElEIGF0dHJpYnV0ZSBzcGVjaWZpZWQuPC9wPgorPC92Y25vdGU+Cis8dmNub3RlIGlkPSJpZC1kZWZhdWx0Ij4KKzxoZWFkPklEIEF0dHJpYnV0ZSBEZWZhdWx0PC9oZWFkPgorPHA+QW4gSUQgYXR0cmlidXRlIG11c3QgaGF2ZSBhIGRlY2xhcmVkIGRlZmF1bHQgb2YgPGt3PiNJTVBMSUVEPC9rdz4gb3IKKzxrdz4jUkVRVUlSRUQ8L2t3Pi48L3A+Cis8L3Zjbm90ZT4KKzx2Y25vdGUgaWQ9ImlkcmVmIj4KKzxoZWFkPklEUkVGPC9oZWFkPgorPHA+CitWYWx1ZXMgb2YgdHlwZSA8a3c+SURSRUY8L2t3PiBtdXN0IG1hdGNoCit0aGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IHByb2R1Y3Rpb24sIGFuZAordmFsdWVzIG9mIHR5cGUgPGt3PklEUkVGUzwva3c+IG11c3QgbWF0Y2gKKzxudCBkZWY9Ik5ULU5hbWVzIj5OYW1lczwvbnQ+OyAKK2VhY2ggPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IG11c3QgbWF0Y2ggdGhlIHZhbHVlIG9mIGFuIElEIGF0dHJpYnV0ZSBvbiAKK3NvbWUgZWxlbWVudCBpbiB0aGUgWE1MIGRvY3VtZW50OyBpLmUuIDxrdz5JRFJFRjwva3c+IHZhbHVlcyBtdXN0IAorbWF0Y2ggdGhlIHZhbHVlIG9mIHNvbWUgSUQgYXR0cmlidXRlLiAKKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0iZW50bmFtZSI+Cis8aGVhZD5FbnRpdHkgTmFtZTwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHR5cGUgPGt3PkVOVElUWTwva3c+IAorbXVzdCBtYXRjaCB0aGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IHByb2R1Y3Rpb24sCit2YWx1ZXMgb2YgdHlwZSA8a3c+RU5USVRJRVM8L2t3PiBtdXN0IG1hdGNoCis8bnQgZGVmPSJOVC1OYW1lcyI+TmFtZXM8L250PjsKK2VhY2ggPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IG11c3QgCittYXRjaCB0aGUKK25hbWUgb2YgYW4gPHRlcm1yZWYgZGVmPSJkdC11bnBhcnNlZCI+dW5wYXJzZWQgZW50aXR5PC90ZXJtcmVmPiBkZWNsYXJlZCBpbiB0aGUKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jdHlwZSI+RFREPC90ZXJtcmVmPi4KKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0ibm10b2siPgorPGhlYWQ+TmFtZSBUb2tlbjwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHR5cGUgPGt3Pk5NVE9LRU48L2t3PiBtdXN0IG1hdGNoIHRoZQorPG50IGRlZj0iTlQtTm10b2tlbiI+Tm10b2tlbjwvbnQ+IHByb2R1Y3Rpb247Cit2YWx1ZXMgb2YgdHlwZSA8a3c+Tk1UT0tFTlM8L2t3PiBtdXN0IAorbWF0Y2ggPHRlcm1yZWYgZGVmPSJOVC1ObXRva2VucyI+Tm10b2tlbnM8L3Rlcm1yZWY+LgorPC9wPgorPC92Y25vdGU+Cis8IS0tIHdoeT8KKzxwPlRoZSBYTUwgcHJvY2Vzc29yIG11c3Qgbm9ybWFsaXplIGF0dHJpYnV0ZSB2YWx1ZXMgYmVmb3JlCitwYXNzaW5nIHRoZW0gdG8gdGhlIGFwcGxpY2F0aW9uLCBhcyBkZXNjcmliZWQgaW4gCis8c3BlY3JlZiByZWY9IkFWTm9ybWFsaXplIi8+LjwvcD4tLT4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbnVtZXJhdGVkIiB0ZXJtPSJFbnVtZXJhdGVkIEF0dHJpYnV0ZSBWYWx1ZXMiPjx0ZXJtPkVudW1lcmF0ZWQgYXR0cmlidXRlczwvdGVybT4gY2FuIHRha2Ugb25lIAorb2YgYSBsaXN0IG9mIHZhbHVlcyBwcm92aWRlZCBpbiB0aGUgZGVjbGFyYXRpb248L3Rlcm1kZWY+LiBUaGVyZSBhcmUgdHdvCitraW5kcyBvZiBlbnVtZXJhdGVkIHR5cGVzOgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+RW51bWVyYXRlZCBBdHRyaWJ1dGUgVHlwZXM8L2hlYWQ+Cis8cHJvZCBpZD0iTlQtRW51bWVyYXRlZFR5cGUiPjxsaHM+RW51bWVyYXRlZFR5cGU8L2xocz4gCis8cmhzPjxudCBkZWY9Ik5ULU5vdGF0aW9uVHlwZSI+Tm90YXRpb25UeXBlPC9udD4gCit8IDxudCBkZWY9Ik5ULUVudW1lcmF0aW9uIj5FbnVtZXJhdGlvbjwvbnQ+Cis8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0iTlQtTm90YXRpb25UeXBlIj48bGhzPk5vdGF0aW9uVHlwZTwvbGhzPiAKKzxyaHM+J05PVEFUSU9OJyAKKzxudCBkZWY9Ik5ULVMiPlM8L250PiAKKycoJyAKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8gIAorPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IAorKDxudCBkZWY9Ik5ULVMiPlM8L250Pj8gJ3wnIDxudCBkZWY9Ik5ULVMiPlM8L250Pj8gIAorPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+KSoKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8gJyknCis8L3Jocz4KKzx2YyBkZWY9Im5vdGF0biIvPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1FbnVtZXJhdGlvbiI+PGxocz5FbnVtZXJhdGlvbjwvbGhzPiAKKzxyaHM+JygnIDxudCBkZWY9Ik5ULVMiPlM8L250Pj8KKzxudCBkZWY9Ik5ULU5tdG9rZW4iPk5tdG9rZW48L250PiAKKyg8bnQgZGVmPSJOVC1TIj5TPC9udD4/ICd8JyAKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8gIAorPG50IGRlZj0iTlQtTm10b2tlbiI+Tm10b2tlbjwvbnQ+KSogCis8bnQgZGVmPSJOVC1TIj5TPC9udD4/IAorJyknPC9yaHM+IAorPHZjIGRlZj0iZW51bSIvPjwvcHJvZD4KKzwvc2NyYXA+CitBIDxrdz5OT1RBVElPTjwva3c+IGF0dHJpYnV0ZSBpZGVudGlmaWVzIGEgCis8dGVybXJlZiBkZWY9ImR0LW5vdGF0aW9uIj5ub3RhdGlvbjwvdGVybXJlZj4sIGRlY2xhcmVkIGluIHRoZSAKK0RURCB3aXRoIGFzc29jaWF0ZWQgc3lzdGVtIGFuZC9vciBwdWJsaWMgaWRlbnRpZmllcnMsIHRvCitiZSB1c2VkIGluIGludGVycHJldGluZyB0aGUgZWxlbWVudCB0byB3aGljaCB0aGUgYXR0cmlidXRlCitpcyBhdHRhY2hlZC4KKzwvcD4KKworPHZjbm90ZSBpZD0ibm90YXRuIj4KKzxoZWFkPk5vdGF0aW9uIEF0dHJpYnV0ZXM8L2hlYWQ+Cis8cD4KK1ZhbHVlcyBvZiB0aGlzIHR5cGUgbXVzdCBtYXRjaAorb25lIG9mIHRoZSA8dGl0bGVyZWYgaHJlZj0iTm90YXRpb25zIj5ub3RhdGlvbjwvdGl0bGVyZWY+IG5hbWVzIGluY2x1ZGVkIGluCit0aGUgZGVjbGFyYXRpb247IGFsbCBub3RhdGlvbiBuYW1lcyBpbiB0aGUgZGVjbGFyYXRpb24gbXVzdAorYmUgZGVjbGFyZWQuCis8L3A+Cis8L3Zjbm90ZT4KKzx2Y25vdGUgaWQ9ImVudW0iPgorPGhlYWQ+RW51bWVyYXRpb248L2hlYWQ+Cis8cD4KK1ZhbHVlcyBvZiB0aGlzIHR5cGUKK211c3QgbWF0Y2ggb25lIG9mIHRoZSA8bnQgZGVmPSJOVC1ObXRva2VuIj5ObXRva2VuPC9udD4gdG9rZW5zIGluIHRoZQorZGVjbGFyYXRpb24uIAorPC9wPgorPC92Y25vdGU+Cis8cD48dGVybXJlZiBkZWY9ImR0LWludGVyb3AiPkZvciBpbnRlcm9wZXJhYmlsaXR5LDwvdGVybXJlZj4gdGhlIHNhbWUKKzxudCBkZWY9Ik5ULU5tdG9rZW4iPk5tdG9rZW48L250PiBzaG91bGQgbm90IG9jY3VyIG1vcmUgdGhhbiBvbmNlIGluIHRoZQorZW51bWVyYXRlZCBhdHRyaWJ1dGUgdHlwZXMgb2YgYSBzaW5nbGUgZWxlbWVudCB0eXBlLgorPC9wPgorPC9kaXYzPgorCis8ZGl2MyBpZD0ic2VjLWF0dHItZGVmYXVsdHMiPgorPGhlYWQ+QXR0cmlidXRlIERlZmF1bHRzPC9oZWFkPgorIAorPHA+QW4gPHRlcm1yZWYgZGVmPSJkdC1hdHRkZWNsIj5hdHRyaWJ1dGUgZGVjbGFyYXRpb248L3Rlcm1yZWY+IHByb3ZpZGVzCitpbmZvcm1hdGlvbiBvbiB3aGV0aGVyCit0aGUgYXR0cmlidXRlJ3MgcHJlc2VuY2UgaXMgcmVxdWlyZWQsIGFuZCBpZiBub3QsIGhvdyBhbiBYTUwgcHJvY2Vzc29yIHNob3VsZAorcmVhY3QgaWYgYSBkZWNsYXJlZCBhdHRyaWJ1dGUgaXMgYWJzZW50IGluIGEgZG9jdW1lbnQuCis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5BdHRyaWJ1dGUgRGVmYXVsdHM8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzQ9IjE0IiBwY3c1PSIxMS41Ij4KKzxwcm9kIGlkPSJOVC1EZWZhdWx0RGVjbCI+PGxocz5EZWZhdWx0RGVjbDwvbGhzPgorPHJocz4nI1JFUVVJUkVEJyAKK3wmbmJzcDsnI0lNUExJRUQnIDwvcmhzPgorPHJocz58ICgoJyNGSVhFRCcgUyk/IDxudCBkZWY9Ik5ULUF0dFZhbHVlIj5BdHRWYWx1ZTwvbnQ+KTwvcmhzPgorPHZjIGRlZj0iUmVxdWlyZWRBdHRyIi8+Cis8dmMgZGVmPSJkZWZhdHRydmFsaWQiLz4KKzx3ZmMgZGVmPSJDbGVhbkF0dHJWYWxzIi8+Cis8dmMgZGVmPSJGaXhlZEF0dHIiLz4KKzwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKworPC9wPgorPHA+SW4gYW4gYXR0cmlidXRlIGRlY2xhcmF0aW9uLCA8a3c+I1JFUVVJUkVEPC9rdz4gbWVhbnMgdGhhdCB0aGUKK2F0dHJpYnV0ZSBtdXN0IGFsd2F5cyBiZSBwcm92aWRlZCwgPGt3PiNJTVBMSUVEPC9rdz4gdGhhdCBubyBkZWZhdWx0IAordmFsdWUgaXMgcHJvdmlkZWQuCis8IS0tIG5vdCBhbnkgbW9yZSEhCis8a3c+I0lNUExJRUQ8L2t3PiBtZWFucyB0aGF0IGlmIHRoZSBhdHRyaWJ1dGUgaXMgb21pdHRlZAorZnJvbSBhbiBlbGVtZW50IG9mIHRoaXMgdHlwZSwKK3RoZSBYTUwgcHJvY2Vzc29yIG11c3QgaW5mb3JtIHRoZSBhcHBsaWNhdGlvbgordGhhdCBubyB2YWx1ZSB3YXMgc3BlY2lmaWVkOyBubyBjb25zdHJhaW50IGlzIHBsYWNlZCBvbiB0aGUgYmVoYXZpb3IKK29mIHRoZSBhcHBsaWNhdGlvbi4gLS0+Cis8dGVybWRlZiBpZD0iZHQtZGVmYXVsdCIgdGVybT0iQXR0cmlidXRlIERlZmF1bHQiPklmIHRoZSAKK2RlY2xhcmF0aW9uCitpcyBuZWl0aGVyIDxrdz4jUkVRVUlSRUQ8L2t3PiBub3IgPGt3PiNJTVBMSUVEPC9rdz4sIHRoZW4gdGhlCis8bnQgZGVmPSJOVC1BdHRWYWx1ZSI+QXR0VmFsdWU8L250PiB2YWx1ZSBjb250YWlucyB0aGUgZGVjbGFyZWQKKzx0ZXJtPmRlZmF1bHQ8L3Rlcm0+IHZhbHVlOyB0aGUgPGt3PiNGSVhFRDwva3c+IGtleXdvcmQgc3RhdGVzIHRoYXQKK3RoZSBhdHRyaWJ1dGUgbXVzdCBhbHdheXMgaGF2ZSB0aGUgZGVmYXVsdCB2YWx1ZS4KK0lmIGEgZGVmYXVsdCB2YWx1ZQoraXMgZGVjbGFyZWQsIHdoZW4gYW4gWE1MIHByb2Nlc3NvciBlbmNvdW50ZXJzIGFuIG9taXR0ZWQgYXR0cmlidXRlLCBpdAoraXMgdG8gYmVoYXZlIGFzIHRob3VnaCB0aGUgYXR0cmlidXRlIHdlcmUgcHJlc2VudCB3aXRoIAordGhlIGRlY2xhcmVkIGRlZmF1bHQgdmFsdWUuPC90ZXJtZGVmPjwvcD4KKzx2Y25vdGUgaWQ9IlJlcXVpcmVkQXR0ciI+Cis8aGVhZD5SZXF1aXJlZCBBdHRyaWJ1dGU8L2hlYWQ+Cis8cD5JZiB0aGUgZGVmYXVsdCBkZWNsYXJhdGlvbiBpcyB0aGUga2V5d29yZCA8a3c+I1JFUVVJUkVEPC9rdz4sIHRoZW4KK3RoZSBhdHRyaWJ1dGUgbXVzdCBiZSBzcGVjaWZpZWQgZm9yCithbGwgZWxlbWVudHMgb2YgdGhlIHR5cGUgaW4gdGhlIGF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uLgorPC9wPjwvdmNub3RlPgorPHZjbm90ZSBpZD0iZGVmYXR0cnZhbGlkIj4KKzxoZWFkPkF0dHJpYnV0ZSBEZWZhdWx0IExlZ2FsPC9oZWFkPgorPHA+CitUaGUgZGVjbGFyZWQKK2RlZmF1bHQgdmFsdWUgbXVzdCBtZWV0IHRoZSBsZXhpY2FsIGNvbnN0cmFpbnRzIG9mIHRoZSBkZWNsYXJlZCBhdHRyaWJ1dGUgdHlwZS4KKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0iRml4ZWRBdHRyIj4KKzxoZWFkPkZpeGVkIEF0dHJpYnV0ZSBEZWZhdWx0PC9oZWFkPgorPHA+SWYgYW4gYXR0cmlidXRlIGhhcyBhIGRlZmF1bHQgdmFsdWUgZGVjbGFyZWQgd2l0aCB0aGUgCis8a3c+I0ZJWEVEPC9rdz4ga2V5d29yZCwgaW5zdGFuY2VzIG9mIHRoYXQgYXR0cmlidXRlIG11c3QKK21hdGNoIHRoZSBkZWZhdWx0IHZhbHVlLgorPC9wPjwvdmNub3RlPgorCis8cD5FeGFtcGxlcyBvZiBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnM6Cis8ZWc+Jmx0OyFBVFRMSVNUIHRlcm1kZWYKKyAgICAgICAgICBpZCAgICAgIElEICAgICAgI1JFUVVJUkVECisgICAgICAgICAgbmFtZSAgICBDREFUQSAgICNJTVBMSUVEJmd0OworJmx0OyFBVFRMSVNUIGxpc3QKKyAgICAgICAgICB0eXBlICAgIChidWxsZXRzfG9yZGVyZWR8Z2xvc3NhcnkpICAib3JkZXJlZCImZ3Q7CismbHQ7IUFUVExJU1QgZm9ybQorICAgICAgICAgIG1ldGhvZCAgQ0RBVEEgICAjRklYRUQgIlBPU1QiJmd0OzwvZWc+PC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9IkFWTm9ybWFsaXplIj4KKzxoZWFkPkF0dHJpYnV0ZS1WYWx1ZSBOb3JtYWxpemF0aW9uPC9oZWFkPgorPHA+QmVmb3JlIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgaXMgcGFzc2VkIHRvIHRoZSBhcHBsaWNhdGlvbgorb3IgY2hlY2tlZCBmb3IgdmFsaWRpdHksIHRoZQorWE1MIHByb2Nlc3NvciBtdXN0IG5vcm1hbGl6ZSBpdCBhcyBmb2xsb3dzOgorPHVsaXN0PgorPGl0ZW0+PHA+YSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGlzIHByb2Nlc3NlZCBieSBhcHBlbmRpbmcgdGhlIHJlZmVyZW5jZWQgICAgCitjaGFyYWN0ZXIgdG8gdGhlIGF0dHJpYnV0ZSB2YWx1ZTwvcD48L2l0ZW0+Cis8aXRlbT48cD5hbiBlbnRpdHkgcmVmZXJlbmNlIGlzIHByb2Nlc3NlZCBieSByZWN1cnNpdmVseSBwcm9jZXNzaW5nIHRoZQorcmVwbGFjZW1lbnQgdGV4dCBvZiB0aGUgZW50aXR5PC9wPjwvaXRlbT4KKzxpdGVtPjxwPmEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgKCN4MjAsICN4RCwgI3hBLCAjeDkpIGlzIHByb2Nlc3NlZCBieQorYXBwZW5kaW5nICN4MjAgdG8gdGhlIG5vcm1hbGl6ZWQgdmFsdWUsIGV4Y2VwdCB0aGF0IG9ubHkgYSBzaW5nbGUgI3gyMAoraXMgYXBwZW5kZWQgZm9yIGEgIiN4RCN4QSIgc2VxdWVuY2UgdGhhdCBpcyBwYXJ0IG9mIGFuIGV4dGVybmFsCitwYXJzZWQgZW50aXR5IG9yIHRoZSBsaXRlcmFsIGVudGl0eSB2YWx1ZSBvZiBhbiBpbnRlcm5hbCBwYXJzZWQKK2VudGl0eTwvcD48L2l0ZW0+Cis8aXRlbT48cD5vdGhlciBjaGFyYWN0ZXJzIGFyZSBwcm9jZXNzZWQgYnkgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIG5vcm1hbGl6ZWQKK3ZhbHVlPC9wPgorPC9pdGVtPjwvdWxpc3Q+Cis8L3A+Cis8cD5JZiB0aGUgZGVjbGFyZWQgdmFsdWUgaXMgbm90IENEQVRBLCB0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIG11c3QKK2Z1cnRoZXIgcHJvY2VzcyB0aGUgbm9ybWFsaXplZCBhdHRyaWJ1dGUgdmFsdWUgYnkgZGlzY2FyZGluZyBhbnkKK2xlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXJzLCBhbmQgYnkgcmVwbGFjaW5nCitzZXF1ZW5jZXMgb2Ygc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMgYnkgYSBzaW5nbGUgc3BhY2UgKCN4MjApCitjaGFyYWN0ZXIuPC9wPgorPHA+CitBbGwgYXR0cmlidXRlcyBmb3Igd2hpY2ggbm8gZGVjbGFyYXRpb24gaGFzIGJlZW4gcmVhZCBzaG91bGQgYmUgdHJlYXRlZAorYnkgYSBub24tdmFsaWRhdGluZyBwYXJzZXIgYXMgaWYgZGVjbGFyZWQKKzxrdz5DREFUQTwva3c+LgorPC9wPgorPC9kaXYzPgorPC9kaXYyPgorPGRpdjIgaWQ9InNlYy1jb25kaXRpb24tc2VjdCI+Cis8aGVhZD5Db25kaXRpb25hbCBTZWN0aW9uczwvaGVhZD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1jb25kLXNlY3Rpb24iIHRlcm09ImNvbmRpdGlvbmFsIHNlY3Rpb24iPgorPHRlcm0+Q29uZGl0aW9uYWwgc2VjdGlvbnM8L3Rlcm0+IGFyZSBwb3J0aW9ucyBvZiB0aGUKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jdHlwZSI+ZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBleHRlcm5hbCBzdWJzZXQ8L3Rlcm1yZWY+Cit3aGljaCBhcmUgCitpbmNsdWRlZCBpbiwgb3IgZXhjbHVkZWQgZnJvbSwgdGhlIGxvZ2ljYWwgc3RydWN0dXJlIG9mIHRoZSBEVEQgYmFzZWQgb24KK3RoZSBrZXl3b3JkIHdoaWNoIGdvdmVybnMgdGhlbS48L3Rlcm1kZWY+Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5Db25kaXRpb25hbCBTZWN0aW9uPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI5IiBwY3c0PSIxNC41Ij4KKzxwcm9kIGlkPSJOVC1jb25kaXRpb25hbFNlY3QiPjxsaHM+Y29uZGl0aW9uYWxTZWN0PC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULWluY2x1ZGVTZWN0Ij5pbmNsdWRlU2VjdDwvbnQ+Cit8IDxudCBkZWY9Ik5ULWlnbm9yZVNlY3QiPmlnbm9yZVNlY3Q8L250PgorPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtaW5jbHVkZVNlY3QiPjxsaHM+aW5jbHVkZVNlY3Q8L2xocz4KKzxyaHM+JyZsdDshWycgUz8gJ0lOQ0xVREUnIFM/ICdbJyAKKworPG50IGRlZj0iTlQtZXh0U3Vic2V0RGVjbCI+ZXh0U3Vic2V0RGVjbDwvbnQ+CisnXV0mZ3Q7JworPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtaWdub3JlU2VjdCI+PGxocz5pZ25vcmVTZWN0PC9saHM+Cis8cmhzPicmbHQ7IVsnIFM/ICdJR05PUkUnIFM/ICdbJyAKKzxudCBkZWY9Ik5ULWlnbm9yZVNlY3RDb250ZW50cyI+aWdub3JlU2VjdENvbnRlbnRzPC9udD4qCisnXV0mZ3Q7JzwvcmhzPgorPC9wcm9kPgorCis8cHJvZCBpZD0iTlQtaWdub3JlU2VjdENvbnRlbnRzIj48bGhzPmlnbm9yZVNlY3RDb250ZW50czwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1JZ25vcmUiPklnbm9yZTwvbnQ+CisoJyZsdDshWycgPG50IGRlZj0iTlQtaWdub3JlU2VjdENvbnRlbnRzIj5pZ25vcmVTZWN0Q29udGVudHM8L250PiAnXV0mZ3Q7JyAKKzxudCBkZWY9Ik5ULUlnbm9yZSI+SWdub3JlPC9udD4pKjwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1JZ25vcmUiPjxsaHM+SWdub3JlPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiogLSAKKyg8bnQgZGVmPSJOVC1DaGFyIj5DaGFyPC9udD4qICgnJmx0OyFbJyB8ICddXSZndDsnKSAKKzxudCBkZWY9Ik5ULUNoYXIiPkNoYXI8L250PiopCis8L3Jocz48L3Byb2Q+CisKKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvcD4KKzxwPkxpa2UgdGhlIGludGVybmFsIGFuZCBleHRlcm5hbCBEVEQgc3Vic2V0cywgYSBjb25kaXRpb25hbCBzZWN0aW9uCittYXkgY29udGFpbiBvbmUgb3IgbW9yZSBjb21wbGV0ZSBkZWNsYXJhdGlvbnMsCitjb21tZW50cywgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMsIAorb3IgbmVzdGVkIGNvbmRpdGlvbmFsIHNlY3Rpb25zLCBpbnRlcm1pbmdsZWQgd2l0aCB3aGl0ZSBzcGFjZS4KKzwvcD4KKzxwPklmIHRoZSBrZXl3b3JkIG9mIHRoZQorY29uZGl0aW9uYWwgc2VjdGlvbiBpcyA8a3c+SU5DTFVERTwva3c+LCB0aGVuIHRoZSBjb250ZW50cyBvZiB0aGUgY29uZGl0aW9uYWwKK3NlY3Rpb24gYXJlIHBhcnQgb2YgdGhlIERURC4KK0lmIHRoZSBrZXl3b3JkIG9mIHRoZSBjb25kaXRpb25hbAorc2VjdGlvbiBpcyA8a3c+SUdOT1JFPC9rdz4sIHRoZW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBjb25kaXRpb25hbCBzZWN0aW9uIGFyZQorbm90IGxvZ2ljYWxseSBwYXJ0IG9mIHRoZSBEVEQuCitOb3RlIHRoYXQgZm9yIHJlbGlhYmxlIHBhcnNpbmcsIHRoZSBjb250ZW50cyBvZiBldmVuIGlnbm9yZWQKK2NvbmRpdGlvbmFsIHNlY3Rpb25zIG11c3QgYmUgcmVhZCBpbiBvcmRlciB0bworZGV0ZWN0IG5lc3RlZCBjb25kaXRpb25hbCBzZWN0aW9ucyBhbmQgZW5zdXJlIHRoYXQgdGhlIGVuZCBvZiB0aGUKK291dGVybW9zdCAoaWdub3JlZCkgY29uZGl0aW9uYWwgc2VjdGlvbiBpcyBwcm9wZXJseSBkZXRlY3RlZC4KK0lmIGEgY29uZGl0aW9uYWwgc2VjdGlvbiB3aXRoIGEKK2tleXdvcmQgb2YgPGt3PklOQ0xVREU8L2t3PiBvY2N1cnMgd2l0aGluIGEgbGFyZ2VyIGNvbmRpdGlvbmFsCitzZWN0aW9uIHdpdGggYSBrZXl3b3JkIG9mIDxrdz5JR05PUkU8L2t3PiwgYm90aCB0aGUgb3V0ZXIgYW5kIHRoZQoraW5uZXIgY29uZGl0aW9uYWwgc2VjdGlvbnMgYXJlIGlnbm9yZWQuPC9wPgorPHA+SWYgdGhlIGtleXdvcmQgb2YgdGhlIGNvbmRpdGlvbmFsIHNlY3Rpb24gaXMgYSAKK3BhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlLCB0aGUgcGFyYW1ldGVyIGVudGl0eSBtdXN0IGJlIHJlcGxhY2VkIGJ5IGl0cworY29udGVudCBiZWZvcmUgdGhlIHByb2Nlc3NvciBkZWNpZGVzIHdoZXRoZXIgdG8KK2luY2x1ZGUgb3IgaWdub3JlIHRoZSBjb25kaXRpb25hbCBzZWN0aW9uLjwvcD4KKzxwPkFuIGV4YW1wbGU6Cis8ZWc+Jmx0OyFFTlRJVFkgJSBkcmFmdCAnSU5DTFVERScgJmd0OworJmx0OyFFTlRJVFkgJSBmaW5hbCAnSUdOT1JFJyAmZ3Q7CisgCismbHQ7IVslZHJhZnQ7WworJmx0OyFFTEVNRU5UIGJvb2sgKGNvbW1lbnRzKiwgdGl0bGUsIGJvZHksIHN1cHBsZW1lbnRzPykmZ3Q7CitdXSZndDsKKyZsdDshWyVmaW5hbDtbCismbHQ7IUVMRU1FTlQgYm9vayAodGl0bGUsIGJvZHksIHN1cHBsZW1lbnRzPykmZ3Q7CitdXSZndDsKKzwvZWc+Cis8L3A+Cis8L2RpdjI+CisKKworPCEtLSAKKzxkaXYyIGlkPSdzZWMtcGFzcy10by1hcHAnPgorPGhlYWQ+WE1MIFByb2Nlc3NvciBUcmVhdG1lbnQgb2YgTG9naWNhbCBTdHJ1Y3R1cmU8L2hlYWQ+Cis8cD5XaGVuIGFuIFhNTCBwcm9jZXNzb3IgZW5jb3VudGVycyBhIHN0YXJ0LXRhZywgaXQgbXVzdCBtYWtlCithdCBsZWFzdCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGF2YWlsYWJsZSB0byB0aGUgYXBwbGljYXRpb246Cis8dWxpc3Q+Cis8aXRlbT4KKzxwPnRoZSBlbGVtZW50IHR5cGUncyBnZW5lcmljIGlkZW50aWZpZXI8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPnRoZSBuYW1lcyBvZiBhdHRyaWJ1dGVzIGtub3duIHRvIGFwcGx5IHRvIHRoaXMgZWxlbWVudCB0eXBlCisodmFsaWRhdGluZyBwcm9jZXNzb3JzIG11c3QgbWFrZSBhdmFpbGFibGUgbmFtZXMgb2YgYWxsIGF0dHJpYnV0ZXMKK2RlY2xhcmVkIGZvciB0aGUgZWxlbWVudCB0eXBlOyBub24tdmFsaWRhdGluZyBwcm9jZXNzb3JzIG11c3QKK21ha2UgYXZhaWxhYmxlIGF0IGxlYXN0IHRoZSBuYW1lcyBvZiB0aGUgYXR0cmlidXRlcyBmb3Igd2hpY2gKK3ZhbHVlcyBhcmUgc3BlY2lmaWVkLgorPC9wPgorPC9pdGVtPgorPC91bGlzdD4KKzwvcD4KKzwvZGl2Mj4KKy0tPiAKKworPC9kaXYxPgorPCEtLSAmRW50aXRpZXM7IC0tPgorIAorPGRpdjEgaWQ9InNlYy1waHlzaWNhbC1zdHJ1Y3QiPgorPGhlYWQ+UGh5c2ljYWwgU3RydWN0dXJlczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbnRpdHkiIHRlcm09IkVudGl0eSI+QW4gWE1MIGRvY3VtZW50IG1heSBjb25zaXN0CitvZiBvbmUgb3IgbWFueSBzdG9yYWdlIHVuaXRzLiAgIFRoZXNlIGFyZSBjYWxsZWQKKzx0ZXJtPmVudGl0aWVzPC90ZXJtPjsgdGhleSBhbGwgaGF2ZSA8dGVybT5jb250ZW50PC90ZXJtPiBhbmQgYXJlIGFsbAorKGV4Y2VwdCBmb3IgdGhlIGRvY3VtZW50IGVudGl0eSwgc2VlIGJlbG93LCBhbmQgCit0aGUgPHRlcm1yZWYgZGVmPSJkdC1kb2N0eXBlIj5leHRlcm5hbCBEVEQgc3Vic2V0PC90ZXJtcmVmPikgCitpZGVudGlmaWVkIGJ5IDx0ZXJtPm5hbWU8L3Rlcm0+LgorPC90ZXJtZGVmPgorRWFjaCBYTUwgZG9jdW1lbnQgaGFzIG9uZSBlbnRpdHkKK2NhbGxlZCB0aGUgPHRlcm1yZWYgZGVmPSJkdC1kb2NlbnQiPmRvY3VtZW50IGVudGl0eTwvdGVybXJlZj4sIHdoaWNoIHNlcnZlcworYXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MCitwcm9jZXNzb3I8L3Rlcm1yZWY+IGFuZCBtYXkgY29udGFpbiB0aGUgd2hvbGUgZG9jdW1lbnQuPC9wPgorPHA+RW50aXRpZXMgbWF5IGJlIGVpdGhlciBwYXJzZWQgb3IgdW5wYXJzZWQuCis8dGVybWRlZiBpZD0iZHQtcGFyc2VkZW50IiB0ZXJtPSJUZXh0IEVudGl0eSI+QSA8dGVybT5wYXJzZWQgZW50aXR5J3M8L3Rlcm0+Citjb250ZW50cyBhcmUgcmVmZXJyZWQgdG8gYXMgaXRzIAorPHRlcm1yZWYgZGVmPSJkdC1yZXBsdGV4dCI+cmVwbGFjZW1lbnQgdGV4dDwvdGVybXJlZj47Cit0aGlzIDx0ZXJtcmVmIGRlZj0iZHQtdGV4dCI+dGV4dDwvdGVybXJlZj4gaXMgY29uc2lkZXJlZCBhbgoraW50ZWdyYWwgcGFydCBvZiB0aGUgZG9jdW1lbnQuPC90ZXJtZGVmPjwvcD4KKworPHA+PHRlcm1kZWYgaWQ9ImR0LXVucGFyc2VkIiB0ZXJtPSJVbnBhcnNlZCBFbnRpdHkiPkFuIAorPHRlcm0+dW5wYXJzZWQgZW50aXR5PC90ZXJtPiAKK2lzIGEgcmVzb3VyY2Ugd2hvc2UgY29udGVudHMgbWF5IG9yIG1heSBub3QgYmUKKzx0ZXJtcmVmIGRlZj0iZHQtdGV4dCI+dGV4dDwvdGVybXJlZj4sIGFuZCBpZiB0ZXh0LCBtYXkgbm90IGJlIFhNTC4KK0VhY2ggdW5wYXJzZWQgZW50aXR5CitoYXMgYW4gYXNzb2NpYXRlZCA8dGVybXJlZiBkZWY9ImR0LW5vdGF0aW9uIj5ub3RhdGlvbjwvdGVybXJlZj4sIGlkZW50aWZpZWQgYnkgbmFtZS4KK0JleW9uZCBhIHJlcXVpcmVtZW50Cit0aGF0IGFuIFhNTCBwcm9jZXNzb3IgbWFrZSB0aGUgaWRlbnRpZmllcnMgZm9yIHRoZSBlbnRpdHkgYW5kIAorbm90YXRpb24gYXZhaWxhYmxlIHRvIHRoZSBhcHBsaWNhdGlvbiwKK1hNTCBwbGFjZXMgbm8gY29uc3RyYWludHMgb24gdGhlIGNvbnRlbnRzIG9mIHVucGFyc2VkIGVudGl0aWVzLjwvdGVybWRlZj4gCis8L3A+Cis8cD4KK1BhcnNlZCBlbnRpdGllcyBhcmUgaW52b2tlZCBieSBuYW1lIHVzaW5nIGVudGl0eSByZWZlcmVuY2VzOwordW5wYXJzZWQgZW50aXRpZXMgYnkgbmFtZSwgZ2l2ZW4gaW4gdGhlIHZhbHVlIG9mIDxrdz5FTlRJVFk8L2t3Pgorb3IgPGt3PkVOVElUSUVTPC9rdz4KK2F0dHJpYnV0ZXMuPC9wPgorPHA+PHRlcm1kZWYgaWQ9Imdlbi1lbnRpdHkiIHRlcm09ImdlbmVyYWwgZW50aXR5Ij48dGVybT5HZW5lcmFsIGVudGl0aWVzPC90ZXJtPgorYXJlIGVudGl0aWVzIGZvciB1c2Ugd2l0aGluIHRoZSBkb2N1bWVudCBjb250ZW50LgorSW4gdGhpcyBzcGVjaWZpY2F0aW9uLCBnZW5lcmFsIGVudGl0aWVzIGFyZSBzb21ldGltZXMgcmVmZXJyZWQgCit0byB3aXRoIHRoZSB1bnF1YWxpZmllZCB0ZXJtIDxlbXBoPmVudGl0eTwvZW1waD4gd2hlbiB0aGlzIGxlYWRzCit0byBubyBhbWJpZ3VpdHkuPC90ZXJtZGVmPiAKKzx0ZXJtZGVmIGlkPSJkdC1QRSIgdGVybT0iUGFyYW1ldGVyIGVudGl0eSI+UGFyYW1ldGVyIGVudGl0aWVzIAorYXJlIHBhcnNlZCBlbnRpdGllcyBmb3IgdXNlIHdpdGhpbiB0aGUgRFRELjwvdGVybWRlZj4KK1RoZXNlIHR3byB0eXBlcyBvZiBlbnRpdGllcyB1c2UgZGlmZmVyZW50IGZvcm1zIG9mIHJlZmVyZW5jZSBhbmQKK2FyZSByZWNvZ25pemVkIGluIGRpZmZlcmVudCBjb250ZXh0cy4KK0Z1cnRoZXJtb3JlLCB0aGV5IG9jY3VweSBkaWZmZXJlbnQgbmFtZXNwYWNlczsgYSBwYXJhbWV0ZXIgZW50aXR5IGFuZAorYSBnZW5lcmFsIGVudGl0eSB3aXRoIHRoZSBzYW1lIG5hbWUgYXJlIHR3byBkaXN0aW5jdCBlbnRpdGllcy4KKzwvcD4KKworPGRpdjIgaWQ9InNlYy1yZWZlcmVuY2VzIj4KKzxoZWFkPkNoYXJhY3RlciBhbmQgRW50aXR5IFJlZmVyZW5jZXM8L2hlYWQ+Cis8cD48dGVybWRlZiBpZD0iZHQtY2hhcnJlZiIgdGVybT0iQ2hhcmFjdGVyIFJlZmVyZW5jZSI+CitBIDx0ZXJtPmNoYXJhY3RlciByZWZlcmVuY2U8L3Rlcm0+IHJlZmVycyB0byBhIHNwZWNpZmljIGNoYXJhY3RlciBpbiB0aGUKK0lTTy9JRUMgMTA2NDYgY2hhcmFjdGVyIHNldCwgZm9yIGV4YW1wbGUgb25lIG5vdCBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20KK2F2YWlsYWJsZSBpbnB1dCBkZXZpY2VzLgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+Q2hhcmFjdGVyIFJlZmVyZW5jZTwvaGVhZD4KKzxwcm9kIGlkPSJOVC1DaGFyUmVmIj48bGhzPkNoYXJSZWY8L2xocz4KKzxyaHM+JyZhbXA7IycgWzAtOV0rICc7JyA8L3Jocz4KKzxyaHM+fCAnJmhjcm87JyBbMC05YS1mQS1GXSsgJzsnPC9yaHM+Cis8d2ZjIGRlZj0id2YtTGVnYWxjaGFyIi8+Cis8L3Byb2Q+Cis8L3NjcmFwPgorPHdmY25vdGUgaWQ9IndmLUxlZ2FsY2hhciI+Cis8aGVhZD5MZWdhbCBDaGFyYWN0ZXI8L2hlYWQ+Cis8cD5DaGFyYWN0ZXJzIHJlZmVycmVkIHRvIHVzaW5nIGNoYXJhY3RlciByZWZlcmVuY2VzIG11c3QKK21hdGNoIHRoZSBwcm9kdWN0aW9uIGZvcgorPHRlcm1yZWYgZGVmPSJOVC1DaGFyIj5DaGFyPC90ZXJtcmVmPi48L3A+Cis8L3dmY25vdGU+CitJZiB0aGUgY2hhcmFjdGVyIHJlZmVyZW5jZSBiZWdpbnMgd2l0aCAiPGNvZGU+JmFtcDsjeDwvY29kZT4iLCB0aGUgZGlnaXRzIGFuZAorbGV0dGVycyB1cCB0byB0aGUgdGVybWluYXRpbmcgPGNvZGU+OzwvY29kZT4gcHJvdmlkZSBhIGhleGFkZWNpbWFsCityZXByZXNlbnRhdGlvbiBvZiB0aGUgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCBpbiBJU08vSUVDIDEwNjQ2LgorSWYgaXQgYmVnaW5zIGp1c3Qgd2l0aCAiPGNvZGU+JmFtcDsjPC9jb2RlPiIsIHRoZSBkaWdpdHMgdXAgdG8gdGhlIHRlcm1pbmF0aW5nCis8Y29kZT47PC9jb2RlPiBwcm92aWRlIGEgZGVjaW1hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY2hhcmFjdGVyJ3MgCitjb2RlIHBvaW50LgorPC90ZXJtZGVmPgorPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWVudHJlZiIgdGVybT0iRW50aXR5IFJlZmVyZW5jZSI+QW4gPHRlcm0+ZW50aXR5CityZWZlcmVuY2U8L3Rlcm0+IHJlZmVycyB0byB0aGUgY29udGVudCBvZiBhIG5hbWVkIGVudGl0eS48L3Rlcm1kZWY+Cis8dGVybWRlZiBpZD0iZHQtR0VSZWYiIHRlcm09IkdlbmVyYWwgRW50aXR5IFJlZmVyZW5jZSI+UmVmZXJlbmNlcyB0byAKK3BhcnNlZCBnZW5lcmFsIGVudGl0aWVzCit1c2UgYW1wZXJzYW5kICg8Y29kZT4mYW1wOzwvY29kZT4pIGFuZCBzZW1pY29sb24gKDxjb2RlPjs8L2NvZGU+KSBhcworZGVsaW1pdGVycy48L3Rlcm1kZWY+Cis8dGVybWRlZiBpZD0iZHQtUEVSZWYiIHRlcm09IlBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlIj4KKzx0ZXJtPlBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlczwvdGVybT4gdXNlIHBlcmNlbnQtc2lnbiAoPGNvZGU+JTwvY29kZT4pIGFuZAorc2VtaWNvbG9uIAorKDxjb2RlPjs8L2NvZGU+KSBhcyBkZWxpbWl0ZXJzLjwvdGVybWRlZj4KKzwvcD4KKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPkVudGl0eSBSZWZlcmVuY2U8L2hlYWQ+Cis8cHJvZCBpZD0iTlQtUmVmZXJlbmNlIj48bGhzPlJlZmVyZW5jZTwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1FbnRpdHlSZWYiPkVudGl0eVJlZjwvbnQ+IAorfCA8bnQgZGVmPSJOVC1DaGFyUmVmIj5DaGFyUmVmPC9udD48L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0iTlQtRW50aXR5UmVmIj48bGhzPkVudGl0eVJlZjwvbGhzPgorPHJocz4nJmFtcDsnIDxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiAnOyc8L3Jocz4KKzx3ZmMgZGVmPSJ3Zi1lbnRkZWNsYXJlZCIvPgorPHZjIGRlZj0idmMtZW50ZGVjbGFyZWQiLz4KKzx3ZmMgZGVmPSJ0ZXh0ZW50Ii8+Cis8d2ZjIGRlZj0ibm9yZWN1cnNpb24iLz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1QRVJlZmVyZW5jZSI+PGxocz5QRVJlZmVyZW5jZTwvbGhzPgorPHJocz4nJScgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+ICc7JzwvcmhzPgorPHZjIGRlZj0idmMtZW50ZGVjbGFyZWQiLz4KKzx3ZmMgZGVmPSJub3JlY3Vyc2lvbiIvPgorPHdmYyBkZWY9ImluZHRkIi8+Cis8L3Byb2Q+Cis8L3NjcmFwPgorCis8d2Zjbm90ZSBpZD0id2YtZW50ZGVjbGFyZWQiPgorPGhlYWQ+RW50aXR5IERlY2xhcmVkPC9oZWFkPgorPHA+SW4gYSBkb2N1bWVudCB3aXRob3V0IGFueSBEVEQsIGEgZG9jdW1lbnQgd2l0aCBvbmx5IGFuIGludGVybmFsCitEVEQgc3Vic2V0IHdoaWNoIGNvbnRhaW5zIG5vIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlcywgb3IgYSBkb2N1bWVudCB3aXRoCisiPGNvZGU+c3RhbmRhbG9uZT0neWVzJzwvY29kZT4iLCAKK3RoZSA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gZ2l2ZW4gaW4gdGhlIGVudGl0eSByZWZlcmVuY2UgbXVzdCAKKzx0ZXJtcmVmIGRlZj0iZHQtbWF0Y2giPm1hdGNoPC90ZXJtcmVmPiB0aGF0IGluIGFuIAorPHRpdGxlcmVmIGhyZWY9InNlYy1lbnRpdHktZGVjbCI+ZW50aXR5IGRlY2xhcmF0aW9uPC90aXRsZXJlZj4sIGV4Y2VwdCB0aGF0Cit3ZWxsLWZvcm1lZCBkb2N1bWVudHMgbmVlZCBub3QgZGVjbGFyZSAKK2FueSBvZiB0aGUgZm9sbG93aW5nIGVudGl0aWVzOiAmbWFnaWNlbnRzOy4gIAorVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdC4KK1NpbWlsYXJseSwgdGhlIGRlY2xhcmF0aW9uIG9mIGEgZ2VuZXJhbCBlbnRpdHkgbXVzdCBwcmVjZWRlIGFueQorcmVmZXJlbmNlIHRvIGl0IHdoaWNoIGFwcGVhcnMgaW4gYSBkZWZhdWx0IHZhbHVlIGluIGFuIGF0dHJpYnV0ZS1saXN0CitkZWNsYXJhdGlvbi48L3A+Cis8cD5Ob3RlIHRoYXQgaWYgZW50aXRpZXMgYXJlIGRlY2xhcmVkIGluIHRoZSBleHRlcm5hbCBzdWJzZXQgb3IgaW4gCitleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMsIGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yIGlzIAorPHRpdGxlcmVmIGhyZWY9ImluY2x1ZGUtaWYtdmFsaWQiPm5vdCBvYmxpZ2F0ZWQgdG88L3RpdGxlcmVmPiByZWFkCithbmQgcHJvY2VzcyB0aGVpciBkZWNsYXJhdGlvbnM7IGZvciBzdWNoIGRvY3VtZW50cywgdGhlIHJ1bGUgdGhhdAorYW4gZW50aXR5IG11c3QgYmUgZGVjbGFyZWQgaXMgYSB3ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludCBvbmx5CitpZiA8dGl0bGVyZWYgaHJlZj0ic2VjLXJtZCI+c3RhbmRhbG9uZT0neWVzJzwvdGl0bGVyZWY+LjwvcD4KKzwvd2Zjbm90ZT4KKzx2Y25vdGUgaWQ9InZjLWVudGRlY2xhcmVkIj4KKzxoZWFkPkVudGl0eSBEZWNsYXJlZDwvaGVhZD4KKzxwPkluIGEgZG9jdW1lbnQgd2l0aCBhbiBleHRlcm5hbCBzdWJzZXQgb3IgZXh0ZXJuYWwgcGFyYW1ldGVyCitlbnRpdGllcyB3aXRoICI8Y29kZT5zdGFuZGFsb25lPSdubyc8L2NvZGU+IiwKK3RoZSA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gZ2l2ZW4gaW4gdGhlIGVudGl0eSByZWZlcmVuY2UgbXVzdCA8dGVybXJlZiBkZWY9ImR0LW1hdGNoIj5tYXRjaDwvdGVybXJlZj4gdGhhdCBpbiBhbiAKKzx0aXRsZXJlZiBocmVmPSJzZWMtZW50aXR5LWRlY2wiPmVudGl0eSBkZWNsYXJhdGlvbjwvdGl0bGVyZWY+LgorRm9yIGludGVyb3BlcmFiaWxpdHksIHZhbGlkIGRvY3VtZW50cyBzaG91bGQgZGVjbGFyZSB0aGUgZW50aXRpZXMgCismbWFnaWNlbnRzOywgaW4gdGhlIGZvcm0KK3NwZWNpZmllZCBpbiA8c3BlY3JlZiByZWY9InNlYy1wcmVkZWZpbmVkLWVudCIvPi4KK1RoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBwcmVjZWRlIGFueSByZWZlcmVuY2UgdG8gaXQuCitTaW1pbGFybHksIHRoZSBkZWNsYXJhdGlvbiBvZiBhIGdlbmVyYWwgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkKK3JlZmVyZW5jZSB0byBpdCB3aGljaCBhcHBlYXJzIGluIGEgZGVmYXVsdCB2YWx1ZSBpbiBhbiBhdHRyaWJ1dGUtbGlzdAorZGVjbGFyYXRpb24uPC9wPgorPC92Y25vdGU+Cis8IS0tIEZJTkFMIEVESVQ6ICBpcyB0aGlzIGR1cGxpY2F0aW9uIHRvbyBjbHVtc3k/IC0tPgorPHdmY25vdGUgaWQ9InRleHRlbnQiPgorPGhlYWQ+UGFyc2VkIEVudGl0eTwvaGVhZD4KKzxwPgorQW4gZW50aXR5IHJlZmVyZW5jZSBtdXN0IG5vdCBjb250YWluIHRoZSBuYW1lIG9mIGFuIDx0ZXJtcmVmIGRlZj0iZHQtdW5wYXJzZWQiPnVucGFyc2VkIGVudGl0eTwvdGVybXJlZj4uIFVucGFyc2VkIGVudGl0aWVzIG1heSBiZSByZWZlcnJlZAordG8gb25seSBpbiA8dGVybXJlZiBkZWY9ImR0LWF0dHJ2YWwiPmF0dHJpYnV0ZSB2YWx1ZXM8L3Rlcm1yZWY+IGRlY2xhcmVkIHRvCitiZSBvZiB0eXBlIDxrdz5FTlRJVFk8L2t3PiBvciA8a3c+RU5USVRJRVM8L2t3Pi4KKzwvcD4KKzwvd2Zjbm90ZT4KKzx3ZmNub3RlIGlkPSJub3JlY3Vyc2lvbiI+Cis8aGVhZD5ObyBSZWN1cnNpb248L2hlYWQ+Cis8cD4KK0EgcGFyc2VkIGVudGl0eSBtdXN0IG5vdCBjb250YWluIGEgcmVjdXJzaXZlIHJlZmVyZW5jZSB0byBpdHNlbGYsCitlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4KKzwvcD4KKzwvd2Zjbm90ZT4KKzx3ZmNub3RlIGlkPSJpbmR0ZCI+Cis8aGVhZD5JbiBEVEQ8L2hlYWQ+Cis8cD4KK1BhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBtYXkgb25seSBhcHBlYXIgaW4gdGhlIAorPHRlcm1yZWYgZGVmPSJkdC1kb2N0eXBlIj5EVEQ8L3Rlcm1yZWY+LgorPC9wPgorPC93ZmNub3RlPgorPHA+RXhhbXBsZXMgb2YgY2hhcmFjdGVyIGFuZCBlbnRpdHkgcmVmZXJlbmNlczoKKzxlZz5UeXBlICZsdDtrZXkmZ3Q7bGVzcy10aGFuJmx0Oy9rZXkmZ3Q7ICgmaGNybzszQzspIHRvIHNhdmUgb3B0aW9ucy4KK1RoaXMgZG9jdW1lbnQgd2FzIHByZXBhcmVkIG9uICZhbXA7ZG9jZGF0ZTsgYW5kCitpcyBjbGFzc2lmaWVkICZhbXA7c2VjdXJpdHktbGV2ZWw7LjwvZWc+PC9wPgorPHA+RXhhbXBsZSBvZiBhIHBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlOgorPGVnPjwhW0NEQVRBWzwhLS0gZGVjbGFyZSB0aGUgcGFyYW1ldGVyIGVudGl0eSAiSVNPTGF0MiIuLi4gLS0+Cis8IUVOVElUWSAlIElTT0xhdDIKKyAgICAgICAgIFNZU1RFTSAiaHR0cDovL3d3dy54bWwuY29tL2lzby9pc29sYXQyLXhtbC5lbnRpdGllcyIgPgorPCEtLSAuLi4gbm93IHJlZmVyZW5jZSBpdC4gLS0+CislSVNPTGF0MjtdXT48L2VnPjwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSJzZWMtZW50aXR5LWRlY2wiPgorPGhlYWQ+RW50aXR5IERlY2xhcmF0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbnRkZWNsIiB0ZXJtPSJlbnRpdHkgZGVjbGFyYXRpb24iPgorRW50aXRpZXMgYXJlIGRlY2xhcmVkIHRodXM6Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5FbnRpdHkgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjUiIHBjdzQ9IjE4LjUiPgorPHByb2QgaWQ9Ik5ULUVudGl0eURlY2wiPjxsaHM+RW50aXR5RGVjbDwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1HRURlY2wiPkdFRGVjbDwvbnQ+PCEtLTwvcmhzPjxjb20+R2VuZXJhbCBlbnRpdGllczwvY29tPgorPHJocz4tLT4gfCA8bnQgZGVmPSJOVC1QRURlY2wiPlBFRGVjbDwvbnQ+PC9yaHM+Cis8IS0tPGNvbT5QYXJhbWV0ZXIgZW50aXRpZXM8L2NvbT4tLT4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1HRURlY2wiPjxsaHM+R0VEZWNsPC9saHM+Cis8cmhzPicmbHQ7IUVOVElUWScgPG50IGRlZj0iTlQtUyI+UzwvbnQ+IDxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiAKKzxudCBkZWY9Ik5ULVMiPlM8L250PiA8bnQgZGVmPSJOVC1FbnRpdHlEZWYiPkVudGl0eURlZjwvbnQ+IAorPG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAnJmd0Oyc8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1QRURlY2wiPjxsaHM+UEVEZWNsPC9saHM+Cis8cmhzPicmbHQ7IUVOVElUWScgPG50IGRlZj0iTlQtUyI+UzwvbnQ+ICclJyA8bnQgZGVmPSJOVC1TIj5TPC9udD4gCis8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gPG50IGRlZj0iTlQtUyI+UzwvbnQ+IAorPG50IGRlZj0iTlQtUEVEZWYiPlBFRGVmPC9udD4gPG50IGRlZj0iTlQtUyI+UzwvbnQ+PyAnJmd0Oyc8L3Jocz4KKzwhLS08Y29tPlBhcmFtZXRlciBlbnRpdGllczwvY29tPi0tPgorPC9wcm9kPgorPHByb2QgaWQ9Ik5ULUVudGl0eURlZiI+PGxocz5FbnRpdHlEZWY8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtRW50aXR5VmFsdWUiPkVudGl0eVZhbHVlPC9udD4KKzwhLS08L3Jocz4KKzxyaHM+LS0+fCAoPG50IGRlZj0iTlQtRXh0ZXJuYWxJRCI+RXh0ZXJuYWxJRDwvbnQ+IAorPG50IGRlZj0iTlQtTkRhdGFEZWNsIj5ORGF0YURlY2w8L250Pj8pPC9yaHM+Cis8IS0tIDxudCBkZWY9J05ULUV4dGVybmFsRGVmJz5FeHRlcm5hbERlZjwvbnQ+PC9yaHM+IC0tPgorPC9wcm9kPgorPCEtLSBGSU5BTCBFRElUOiB3aGF0IGhhcHBlbmVkIHRvIFdGcyBoZXJlPyAtLT4KKzxwcm9kIGlkPSJOVC1QRURlZiI+PGxocz5QRURlZjwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1FbnRpdHlWYWx1ZSI+RW50aXR5VmFsdWU8L250PiAKK3wgPG50IGRlZj0iTlQtRXh0ZXJuYWxJRCI+RXh0ZXJuYWxJRDwvbnQ+PC9yaHM+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorVGhlIDxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PiBpZGVudGlmaWVzIHRoZSBlbnRpdHkgaW4gYW4KKzx0ZXJtcmVmIGRlZj0iZHQtZW50cmVmIj5lbnRpdHkgcmVmZXJlbmNlPC90ZXJtcmVmPiBvciwgaW4gdGhlIGNhc2Ugb2YgYW4KK3VucGFyc2VkIGVudGl0eSwgaW4gdGhlIHZhbHVlIG9mIGFuIDxrdz5FTlRJVFk8L2t3PiBvciA8a3c+RU5USVRJRVM8L2t3PgorYXR0cmlidXRlLgorSWYgdGhlIHNhbWUgZW50aXR5IGlzIGRlY2xhcmVkIG1vcmUgdGhhbiBvbmNlLCB0aGUgZmlyc3QgZGVjbGFyYXRpb24KK2VuY291bnRlcmVkIGlzIGJpbmRpbmc7IGF0IHVzZXIgb3B0aW9uLCBhbiBYTUwgcHJvY2Vzc29yIG1heSBpc3N1ZSBhCit3YXJuaW5nIGlmIGVudGl0aWVzIGFyZSBkZWNsYXJlZCBtdWx0aXBsZSB0aW1lcy48L3Rlcm1kZWY+Cis8L3A+CisKKzxkaXYzIGlkPSJzZWMtaW50ZXJuYWwtZW50Ij4KKzxoZWFkPkludGVybmFsIEVudGl0aWVzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWludGVybmVudCIgdGVybT0iSW50ZXJuYWwgRW50aXR5IFJlcGxhY2VtZW50IFRleHQiPklmIAordGhlIGVudGl0eSBkZWZpbml0aW9uIGlzIGFuIAorPG50IGRlZj0iTlQtRW50aXR5VmFsdWUiPkVudGl0eVZhbHVlPC9udD4sICAKK3RoZSBkZWZpbmVkIGVudGl0eSBpcyBjYWxsZWQgYW4gPHRlcm0+aW50ZXJuYWwgZW50aXR5PC90ZXJtPi4gIAorVGhlcmUgaXMgbm8gc2VwYXJhdGUgcGh5c2ljYWwKK3N0b3JhZ2Ugb2JqZWN0LCBhbmQgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSBpcyBnaXZlbiBpbiB0aGUKK2RlY2xhcmF0aW9uLiA8L3Rlcm1kZWY+CitOb3RlIHRoYXQgc29tZSBwcm9jZXNzaW5nIG9mIGVudGl0eSBhbmQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgaW4gdGhlCis8dGVybXJlZiBkZWY9ImR0LWxpdGVudHZhbCI+bGl0ZXJhbCBlbnRpdHkgdmFsdWU8L3Rlcm1yZWY+IG1heSBiZSByZXF1aXJlZCB0bworcHJvZHVjZSB0aGUgY29ycmVjdCA8dGVybXJlZiBkZWY9ImR0LXJlcGx0ZXh0Ij5yZXBsYWNlbWVudCAKK3RleHQ8L3Rlcm1yZWY+OiBzZWUgPHNwZWNyZWYgcmVmPSJpbnRlcm4tcmVwbGFjZW1lbnQiLz4uCis8L3A+Cis8cD5BbiBpbnRlcm5hbCBlbnRpdHkgaXMgYSA8dGVybXJlZiBkZWY9ImR0LXBhcnNlZGVudCI+cGFyc2VkCitlbnRpdHk8L3Rlcm1yZWY+LjwvcD4KKzxwPkV4YW1wbGUgb2YgYW4gaW50ZXJuYWwgZW50aXR5IGRlY2xhcmF0aW9uOgorPGVnPiZsdDshRU5USVRZIFB1Yi1TdGF0dXMgIlRoaXMgaXMgYSBwcmUtcmVsZWFzZSBvZiB0aGUKKyBzcGVjaWZpY2F0aW9uLiImZ3Q7PC9lZz48L3A+Cis8L2RpdjM+CisgCis8ZGl2MyBpZD0ic2VjLWV4dGVybmFsLWVudCI+Cis8aGVhZD5FeHRlcm5hbCBFbnRpdGllczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1leHRlbnQiIHRlcm09IkV4dGVybmFsIEVudGl0eSI+SWYgdGhlIGVudGl0eSBpcyBub3QKK2ludGVybmFsLCBpdCBpcyBhbiA8dGVybT5leHRlcm5hbAorZW50aXR5PC90ZXJtPiwgZGVjbGFyZWQgYXMgZm9sbG93czoKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPkV4dGVybmFsIEVudGl0eSBEZWNsYXJhdGlvbjwvaGVhZD4KKzwhLS0KKzxwcm9kIGlkPSdOVC1FeHRlcm5hbERlZic+PGxocz5FeHRlcm5hbERlZjwvbGhzPgorPHJocz48L3Byb2Q+IC0tPgorPHByb2QgaWQ9Ik5ULUV4dGVybmFsSUQiPjxsaHM+RXh0ZXJuYWxJRDwvbGhzPgorPHJocz4nU1lTVEVNJyA8bnQgZGVmPSJOVC1TIj5TPC9udD4gCis8bnQgZGVmPSJOVC1TeXN0ZW1MaXRlcmFsIj5TeXN0ZW1MaXRlcmFsPC9udD48L3Jocz4KKzxyaHM+fCAnUFVCTElDJyA8bnQgZGVmPSJOVC1TIj5TPC9udD4gCis8bnQgZGVmPSJOVC1QdWJpZExpdGVyYWwiPlB1YmlkTGl0ZXJhbDwvbnQ+IAorPG50IGRlZj0iTlQtUyI+UzwvbnQ+IAorPG50IGRlZj0iTlQtU3lzdGVtTGl0ZXJhbCI+U3lzdGVtTGl0ZXJhbDwvbnQ+Cis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1ORGF0YURlY2wiPjxsaHM+TkRhdGFEZWNsPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULVMiPlM8L250PiAnTkRBVEEnIDxudCBkZWY9Ik5ULVMiPlM8L250PiAKKzxudCBkZWY9Ik5ULU5hbWUiPk5hbWU8L250PjwvcmhzPgorPHZjIGRlZj0ibm90LWRlY2xhcmVkIi8+PC9wcm9kPgorPC9zY3JhcD4KK0lmIHRoZSA8bnQgZGVmPSJOVC1ORGF0YURlY2wiPk5EYXRhRGVjbDwvbnQ+IGlzIHByZXNlbnQsIHRoaXMgaXMgYQorZ2VuZXJhbCA8dGVybXJlZiBkZWY9ImR0LXVucGFyc2VkIj51bnBhcnNlZAorZW50aXR5PC90ZXJtcmVmPjsgb3RoZXJ3aXNlIGl0IGlzIGEgcGFyc2VkIGVudGl0eS48L3Rlcm1kZWY+PC9wPgorPHZjbm90ZSBpZD0ibm90LWRlY2xhcmVkIj4KKzxoZWFkPk5vdGF0aW9uIERlY2xhcmVkPC9oZWFkPgorPHA+CitUaGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IG11c3QgbWF0Y2ggdGhlIGRlY2xhcmVkIG5hbWUgb2YgYQorPHRlcm1yZWYgZGVmPSJkdC1ub3RhdGlvbiI+bm90YXRpb248L3Rlcm1yZWY+LgorPC9wPgorPC92Y25vdGU+Cis8cD48dGVybWRlZiBpZD0iZHQtc3lzaWQiIHRlcm09IlN5c3RlbSBJZGVudGlmaWVyIj5UaGUKKzxudCBkZWY9Ik5ULVN5c3RlbUxpdGVyYWwiPlN5c3RlbUxpdGVyYWw8L250PiAKK2lzIGNhbGxlZCB0aGUgZW50aXR5J3MgPHRlcm0+c3lzdGVtIGlkZW50aWZpZXI8L3Rlcm0+LiBJdCBpcyBhIFVSSSwKK3doaWNoIG1heSBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBlbnRpdHkuPC90ZXJtZGVmPgorTm90ZSB0aGF0IHRoZSBoYXNoIG1hcmsgKDxjb2RlPiM8L2NvZGU+KSBhbmQgZnJhZ21lbnQgaWRlbnRpZmllciAKK2ZyZXF1ZW50bHkgdXNlZCB3aXRoIFVSSXMgYXJlIG5vdCwgZm9ybWFsbHksIHBhcnQgb2YgdGhlIFVSSSBpdHNlbGY7IAorYW4gWE1MIHByb2Nlc3NvciBtYXkgc2lnbmFsIGFuIGVycm9yIGlmIGEgZnJhZ21lbnQgaWRlbnRpZmllciBpcyAKK2dpdmVuIGFzIHBhcnQgb2YgYSBzeXN0ZW0gaWRlbnRpZmllci4KK1VubGVzcyBvdGhlcndpc2UgcHJvdmlkZWQgYnkgaW5mb3JtYXRpb24gb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhpcworc3BlY2lmaWNhdGlvbiAoZS5nLiBhIHNwZWNpYWwgWE1MIGVsZW1lbnQgdHlwZSBkZWZpbmVkIGJ5IGEgcGFydGljdWxhcgorRFRELCBvciBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gZGVmaW5lZCBieSBhIHBhcnRpY3VsYXIgYXBwbGljYXRpb24KK3NwZWNpZmljYXRpb24pLCByZWxhdGl2ZSBVUklzIGFyZSByZWxhdGl2ZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlCityZXNvdXJjZSB3aXRoaW4gd2hpY2ggdGhlIGVudGl0eSBkZWNsYXJhdGlvbiBvY2N1cnMuCitBIFVSSSBtaWdodCB0aHVzIGJlIHJlbGF0aXZlIHRvIHRoZSAKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jZW50Ij5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LCB0byB0aGUgZW50aXR5Citjb250YWluaW5nIHRoZSA8dGVybXJlZiBkZWY9ImR0LWRvY3R5cGUiPmV4dGVybmFsIERURCBzdWJzZXQ8L3Rlcm1yZWY+LCAKK29yIHRvIHNvbWUgb3RoZXIgPHRlcm1yZWYgZGVmPSJkdC1leHRlbnQiPmV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHk8L3Rlcm1yZWY+LgorPC9wPgorPHA+QW4gWE1MIHByb2Nlc3NvciBzaG91bGQgaGFuZGxlIGEgbm9uLUFTQ0lJIGNoYXJhY3RlciBpbiBhIFVSSSBieQorcmVwcmVzZW50aW5nIHRoZSBjaGFyYWN0ZXIgaW4gVVRGLTggYXMgb25lIG9yIG1vcmUgYnl0ZXMsIGFuZCB0aGVuIAorZXNjYXBpbmcgdGhlc2UgYnl0ZXMgd2l0aCB0aGUgVVJJIGVzY2FwaW5nIG1lY2hhbmlzbSAoaS5lLiwgYnkKK2NvbnZlcnRpbmcgZWFjaCBieXRlIHRvICVISCwgd2hlcmUgSEggaXMgdGhlIGhleGFkZWNpbWFsIG5vdGF0aW9uIG9mIHRoZQorYnl0ZSB2YWx1ZSkuPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LXB1YmlkIiB0ZXJtPSJQdWJsaWMgaWRlbnRpZmllciI+CitJbiBhZGRpdGlvbiB0byBhIHN5c3RlbSBpZGVudGlmaWVyLCBhbiBleHRlcm5hbCBpZGVudGlmaWVyIG1heQoraW5jbHVkZSBhIDx0ZXJtPnB1YmxpYyBpZGVudGlmaWVyPC90ZXJtPi48L3Rlcm1kZWY+ICAKK0FuIFhNTCBwcm9jZXNzb3IgYXR0ZW1wdGluZyB0byByZXRyaWV2ZSB0aGUgZW50aXR5J3MgY29udGVudCBtYXkgdXNlIHRoZSBwdWJsaWMKK2lkZW50aWZpZXIgdG8gdHJ5IHRvIGdlbmVyYXRlIGFuIGFsdGVybmF0aXZlIFVSSS4gIElmIHRoZSBwcm9jZXNzb3IKK2lzIHVuYWJsZSB0byBkbyBzbywgaXQgbXVzdCB1c2UgdGhlIFVSSSBzcGVjaWZpZWQgaW4gdGhlIHN5c3RlbQorbGl0ZXJhbC4gIEJlZm9yZSBhIG1hdGNoIGlzIGF0dGVtcHRlZCwgYWxsIHN0cmluZ3MKK29mIHdoaXRlIHNwYWNlIGluIHRoZSBwdWJsaWMgaWRlbnRpZmllciBtdXN0IGJlIG5vcm1hbGl6ZWQgdG8gc2luZ2xlIHNwYWNlIGNoYXJhY3RlcnMgKCN4MjApLAorYW5kIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlIG11c3QgYmUgcmVtb3ZlZC48L3A+Cis8cD5FeGFtcGxlcyBvZiBleHRlcm5hbCBlbnRpdHkgZGVjbGFyYXRpb25zOgorPGVnPiZsdDshRU5USVRZIG9wZW4taGF0Y2gKKyAgICAgICAgIFNZU1RFTSAiaHR0cDovL3d3dy50ZXh0dWFsaXR5LmNvbS9ib2lsZXJwbGF0ZS9PcGVuSGF0Y2gueG1sIiZndDsKKyZsdDshRU5USVRZIG9wZW4taGF0Y2gKKyAgICAgICAgIFBVQkxJQyAiLS8vVGV4dHVhbGl0eS8vVEVYVCBTdGFuZGFyZCBvcGVuLWhhdGNoIGJvaWxlcnBsYXRlLy9FTiIKKyAgICAgICAgICJodHRwOi8vd3d3LnRleHR1YWxpdHkuY29tL2JvaWxlcnBsYXRlL09wZW5IYXRjaC54bWwiJmd0OworJmx0OyFFTlRJVFkgaGF0Y2gtcGljCisgICAgICAgICBTWVNURU0gIi4uL2dyYWZpeC9PcGVuSGF0Y2guZ2lmIgorICAgICAgICAgTkRBVEEgZ2lmICZndDs8L2VnPjwvcD4KKzwvZGl2Mz4KKyAKKzwvZGl2Mj4KKworPGRpdjIgaWQ9IlRleHRFbnRpdGllcyI+Cis8aGVhZD5QYXJzZWQgRW50aXRpZXM8L2hlYWQ+Cis8ZGl2MyBpZD0ic2VjLVRleHREZWNsIj4KKzxoZWFkPlRoZSBUZXh0IERlY2xhcmF0aW9uPC9oZWFkPgorPHA+RXh0ZXJuYWwgcGFyc2VkIGVudGl0aWVzIG1heSBlYWNoIGJlZ2luIHdpdGggYSA8dGVybT50ZXh0CitkZWNsYXJhdGlvbjwvdGVybT4uIAorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+VGV4dCBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3ND0iMTIuNSIgcGN3NT0iMTMiPgorPHByb2QgaWQ9Ik5ULVRleHREZWNsIj48bGhzPlRleHREZWNsPC9saHM+Cis8cmhzPiZ4bWxwaW87IAorPG50IGRlZj0iTlQtVmVyc2lvbkluZm8iPlZlcnNpb25JbmZvPC9udD4/Cis8bnQgZGVmPSJOVC1FbmNvZGluZ0RlY2wiPkVuY29kaW5nRGVjbDwvbnQ+Cis8bnQgZGVmPSJOVC1TIj5TPC9udD4/ICZwaWM7PC9yaHM+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cis8L3A+Cis8cD5UaGUgdGV4dCBkZWNsYXJhdGlvbiBtdXN0IGJlIHByb3ZpZGVkIGxpdGVyYWxseSwgbm90CitieSByZWZlcmVuY2UgdG8gYSBwYXJzZWQgZW50aXR5LgorTm8gdGV4dCBkZWNsYXJhdGlvbiBtYXkgYXBwZWFyIGF0IGFueSBwb3NpdGlvbiBvdGhlciB0aGFuIHRoZSBiZWdpbm5pbmcgb2YKK2FuIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkuPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9IndmLWVudGl0aWVzIj4KKzxoZWFkPldlbGwtRm9ybWVkIFBhcnNlZCBFbnRpdGllczwvaGVhZD4KKzxwPlRoZSBkb2N1bWVudCBlbnRpdHkgaXMgd2VsbC1mb3JtZWQgaWYgaXQgbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkCis8bnQgZGVmPSJOVC1kb2N1bWVudCI+ZG9jdW1lbnQ8L250Pi4KK0FuIGV4dGVybmFsIGdlbmVyYWwgCitwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZAorPG50IGRlZj0iTlQtZXh0UGFyc2VkRW50Ij5leHRQYXJzZWRFbnQ8L250Pi4KK0FuIGV4dGVybmFsIHBhcmFtZXRlcgorZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZAorPG50IGRlZj0iTlQtZXh0UEUiPmV4dFBFPC9udD4uCis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5XZWxsLUZvcm1lZCBFeHRlcm5hbCBQYXJzZWQgRW50aXR5PC9oZWFkPgorPHByb2QgaWQ9Ik5ULWV4dFBhcnNlZEVudCI+PGxocz5leHRQYXJzZWRFbnQ8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtVGV4dERlY2wiPlRleHREZWNsPC9udD4/IAorPG50IGRlZj0iTlQtY29udGVudCI+Y29udGVudDwvbnQ+PC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtZXh0UEUiPjxsaHM+ZXh0UEU8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtVGV4dERlY2wiPlRleHREZWNsPC9udD4/IAorPG50IGRlZj0iTlQtZXh0U3Vic2V0RGVjbCI+ZXh0U3Vic2V0RGVjbDwvbnQ+PC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorQW4gaW50ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0cyByZXBsYWNlbWVudCB0ZXh0IAorbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkCis8bnQgZGVmPSJOVC1jb250ZW50Ij5jb250ZW50PC9udD4uCitBbGwgaW50ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIGFyZSB3ZWxsLWZvcm1lZCBieSBkZWZpbml0aW9uLgorPC9wPgorPHA+QSBjb25zZXF1ZW5jZSBvZiB3ZWxsLWZvcm1lZG5lc3MgaW4gZW50aXRpZXMgaXMgdGhhdCB0aGUgbG9naWNhbCAKK2FuZCBwaHlzaWNhbCBzdHJ1Y3R1cmVzIGluIGFuIFhNTCBkb2N1bWVudCBhcmUgcHJvcGVybHkgbmVzdGVkOyBubyAKKzx0ZXJtcmVmIGRlZj0iZHQtc3RhZyI+c3RhcnQtdGFnPC90ZXJtcmVmPiwKKzx0ZXJtcmVmIGRlZj0iZHQtZXRhZyI+ZW5kLXRhZzwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWVtcHR5Ij5lbXB0eS1lbGVtZW50IHRhZzwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWVsZW1lbnQiPmVsZW1lbnQ8L3Rlcm1yZWY+LCAKKzx0ZXJtcmVmIGRlZj0iZHQtY29tbWVudCI+Y29tbWVudDwvdGVybXJlZj4sIAorPHRlcm1yZWYgZGVmPSJkdC1waSI+cHJvY2Vzc2luZyBpbnN0cnVjdGlvbjwvdGVybXJlZj4sIAorPHRlcm1yZWYgZGVmPSJkdC1jaGFycmVmIj5jaGFyYWN0ZXIKK3JlZmVyZW5jZTwvdGVybXJlZj4sIG9yCis8dGVybXJlZiBkZWY9ImR0LWVudHJlZiI+ZW50aXR5IHJlZmVyZW5jZTwvdGVybXJlZj4gCitjYW4gYmVnaW4gaW4gb25lIGVudGl0eSBhbmQgZW5kIGluIGFub3RoZXIuPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9ImNoYXJlbmNvZGluZyI+Cis8aGVhZD5DaGFyYWN0ZXIgRW5jb2RpbmcgaW4gRW50aXRpZXM8L2hlYWQ+CisgCis8cD5FYWNoIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkgaW4gYW4gWE1MIGRvY3VtZW50IG1heSB1c2UgYSBkaWZmZXJlbnQKK2VuY29kaW5nIGZvciBpdHMgY2hhcmFjdGVycy4gQWxsIFhNTCBwcm9jZXNzb3JzIG11c3QgYmUgYWJsZSB0byByZWFkCitlbnRpdGllcyBpbiBlaXRoZXIgVVRGLTggb3IgVVRGLTE2LiAKKworPC9wPgorPHA+RW50aXRpZXMgZW5jb2RlZCBpbiBVVEYtMTYgbXVzdAorYmVnaW4gd2l0aCB0aGUgQnl0ZSBPcmRlciBNYXJrIGRlc2NyaWJlZCBieSBJU08vSUVDIDEwNjQ2IEFubmV4IEUgYW5kCitVbmljb2RlIEFwcGVuZGl4IEIgKHRoZSBaRVJPIFdJRFRIIE5PLUJSRUFLIFNQQUNFIGNoYXJhY3RlciwgI3hGRUZGKS4KK1RoaXMgaXMgYW4gZW5jb2Rpbmcgc2lnbmF0dXJlLCBub3QgcGFydCBvZiBlaXRoZXIgdGhlIG1hcmt1cCBvciB0aGUKK2NoYXJhY3RlciBkYXRhIG9mIHRoZSBYTUwgZG9jdW1lbnQuCitYTUwgcHJvY2Vzc29ycyBtdXN0IGJlIGFibGUgdG8gdXNlIHRoaXMgY2hhcmFjdGVyIHRvCitkaWZmZXJlbnRpYXRlIGJldHdlZW4gVVRGLTggYW5kIFVURi0xNiBlbmNvZGVkIGRvY3VtZW50cy48L3A+Cis8cD5BbHRob3VnaCBhbiBYTUwgcHJvY2Vzc29yIGlzIHJlcXVpcmVkIHRvIHJlYWQgb25seSBlbnRpdGllcyBpbgordGhlIFVURi04IGFuZCBVVEYtMTYgZW5jb2RpbmdzLCBpdCBpcyByZWNvZ25pemVkIHRoYXQgb3RoZXIgZW5jb2RpbmdzIGFyZQordXNlZCBhcm91bmQgdGhlIHdvcmxkLCBhbmQgaXQgbWF5IGJlIGRlc2lyZWQgZm9yIFhNTCBwcm9jZXNzb3JzCit0byByZWFkIGVudGl0aWVzIHRoYXQgdXNlIHRoZW0uCitQYXJzZWQgZW50aXRpZXMgd2hpY2ggYXJlIHN0b3JlZCBpbiBhbiBlbmNvZGluZyBvdGhlciB0aGFuCitVVEYtOCBvciBVVEYtMTYgbXVzdCBiZWdpbiB3aXRoIGEgPHRpdGxlcmVmIGhyZWY9IlRleHREZWNsIj50ZXh0CitkZWNsYXJhdGlvbjwvdGl0bGVyZWY+IGNvbnRhaW5pbmcgYW4gZW5jb2RpbmcgZGVjbGFyYXRpb246Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5FbmNvZGluZyBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwcm9kIGlkPSJOVC1FbmNvZGluZ0RlY2wiPjxsaHM+RW5jb2RpbmdEZWNsPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULVMiPlM8L250PgorJ2VuY29kaW5nJyA8bnQgZGVmPSJOVC1FcSI+RXE8L250PiAKKygnIicgPG50IGRlZj0iTlQtRW5jTmFtZSI+RW5jTmFtZTwvbnQ+ICciJyB8IAorIiciIDxudCBkZWY9Ik5ULUVuY05hbWUiPkVuY05hbWU8L250PiAiJyIgKQorPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtRW5jTmFtZSI+PGxocz5FbmNOYW1lPC9saHM+Cis8cmhzPltBLVphLXpdIChbQS1aYS16MC05Ll9dIHwgJy0nKSo8L3Jocz4KKzxjb20+RW5jb2RpbmcgbmFtZSBjb250YWlucyBvbmx5IExhdGluIGNoYXJhY3RlcnM8L2NvbT4KKzwvcHJvZD4KKzwvc2NyYXA+CitJbiB0aGUgPHRlcm1yZWYgZGVmPSJkdC1kb2NlbnQiPmRvY3VtZW50IGVudGl0eTwvdGVybXJlZj4sIHRoZSBlbmNvZGluZworZGVjbGFyYXRpb24gaXMgcGFydCBvZiB0aGUgPHRlcm1yZWYgZGVmPSJkdC14bWxkZWNsIj5YTUwgZGVjbGFyYXRpb248L3Rlcm1yZWY+LgorVGhlIDxudCBkZWY9Ik5ULUVuY05hbWUiPkVuY05hbWU8L250PiBpcyB0aGUgbmFtZSBvZiB0aGUgZW5jb2RpbmcgdXNlZC4KKzwvcD4KKzwhLS0gRklOQUwgRURJVDogIGNoZWNrIG5hbWUgb2YgSUFOQSBhbmQgY2hhcnNldCBuYW1lcyAtLT4KKzxwPkluIGFuIGVuY29kaW5nIGRlY2xhcmF0aW9uLCB0aGUgdmFsdWVzCisiPGNvZGU+VVRGLTg8L2NvZGU+IiwKKyI8Y29kZT5VVEYtMTY8L2NvZGU+IiwKKyI8Y29kZT5JU08tMTA2NDYtVUNTLTI8L2NvZGU+IiwgYW5kCisiPGNvZGU+SVNPLTEwNjQ2LVVDUy00PC9jb2RlPiIgc2hvdWxkIGJlIAordXNlZCBmb3IgdGhlIHZhcmlvdXMgZW5jb2RpbmdzIGFuZCB0cmFuc2Zvcm1hdGlvbnMgb2YgVW5pY29kZSAvCitJU08vSUVDIDEwNjQ2LCB0aGUgdmFsdWVzCisiPGNvZGU+SVNPLTg4NTktMTwvY29kZT4iLAorIjxjb2RlPklTTy04ODU5LTI8L2NvZGU+IiwgLi4uCisiPGNvZGU+SVNPLTg4NTktOTwvY29kZT4iIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgcGFydHMgb2YgSVNPIDg4NTksIGFuZAordGhlIHZhbHVlcworIjxjb2RlPklTTy0yMDIyLUpQPC9jb2RlPiIsCisiPGNvZGU+U2hpZnRfSklTPC9jb2RlPiIsIGFuZAorIjxjb2RlPkVVQy1KUDwvY29kZT4iCitzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHZhcmlvdXMgZW5jb2RlZCBmb3JtcyBvZiBKSVMgWC0wMjA4LTE5OTcuICBYTUwKK3Byb2Nlc3NvcnMgbWF5IHJlY29nbml6ZSBvdGhlciBlbmNvZGluZ3M7IGl0IGlzIHJlY29tbWVuZGVkIHRoYXQKK2NoYXJhY3RlciBlbmNvZGluZ3MgcmVnaXN0ZXJlZCAoYXMgPGVtcGg+Y2hhcnNldDwvZW1waD5zKSAKK3dpdGggdGhlIEludGVybmV0IEFzc2lnbmVkIE51bWJlcnMKK0F1dGhvcml0eSA8YmlicmVmIHJlZj0iSUFOQSIvPiwgb3RoZXIgdGhhbiB0aG9zZSBqdXN0IGxpc3RlZCwgc2hvdWxkIGJlCityZWZlcnJlZCB0bwordXNpbmcgdGhlaXIgcmVnaXN0ZXJlZCBuYW1lcy4KK05vdGUgdGhhdCB0aGVzZSByZWdpc3RlcmVkIG5hbWVzIGFyZSBkZWZpbmVkIHRvIGJlIAorY2FzZS1pbnNlbnNpdGl2ZSwgc28gcHJvY2Vzc29ycyB3aXNoaW5nIHRvIG1hdGNoIGFnYWluc3QgdGhlbSAKK3Nob3VsZCBkbyBzbyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUKK3dheS48L3A+Cis8cD5JbiB0aGUgYWJzZW5jZSBvZiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBhbiBleHRlcm5hbAordHJhbnNwb3J0IHByb3RvY29sIChlLmcuIEhUVFAgb3IgTUlNRSksIAoraXQgaXMgYW4gPHRlcm1yZWYgZGVmPSJkdC1lcnJvciI+ZXJyb3I8L3Rlcm1yZWY+IGZvciBhbiBlbnRpdHkgaW5jbHVkaW5nCithbiBlbmNvZGluZyBkZWNsYXJhdGlvbiB0byBiZSBwcmVzZW50ZWQgdG8gdGhlIFhNTCBwcm9jZXNzb3IgCitpbiBhbiBlbmNvZGluZyBvdGhlciB0aGFuIHRoYXQgbmFtZWQgaW4gdGhlIGRlY2xhcmF0aW9uLCAKK2ZvciBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbiB0byBvY2N1ciBvdGhlciB0aGFuIGF0IHRoZSBiZWdpbm5pbmcgCitvZiBhbiBleHRlcm5hbCBlbnRpdHksIG9yIGZvcgorYW4gZW50aXR5IHdoaWNoIGJlZ2lucyB3aXRoIG5laXRoZXIgYSBCeXRlIE9yZGVyIE1hcmsgbm9yIGFuIGVuY29kaW5nCitkZWNsYXJhdGlvbiB0byB1c2UgYW4gZW5jb2Rpbmcgb3RoZXIgdGhhbiBVVEYtOC4KK05vdGUgdGhhdCBzaW5jZSBBU0NJSQoraXMgYSBzdWJzZXQgb2YgVVRGLTgsIG9yZGluYXJ5IEFTQ0lJIGVudGl0aWVzIGRvIG5vdCBzdHJpY3RseSBuZWVkCithbiBlbmNvZGluZyBkZWNsYXJhdGlvbi48L3A+CisKKzxwPkl0IGlzIGEgPHRlcm1yZWYgZGVmPSJkdC1mYXRhbCI+ZmF0YWwgZXJyb3I8L3Rlcm1yZWY+IHdoZW4gYW4gWE1MIHByb2Nlc3NvcgorZW5jb3VudGVycyBhbiBlbnRpdHkgd2l0aCBhbiBlbmNvZGluZyB0aGF0IGl0IGlzIHVuYWJsZSB0byBwcm9jZXNzLjwvcD4KKzxwPkV4YW1wbGVzIG9mIGVuY29kaW5nIGRlY2xhcmF0aW9uczoKKzxlZz4mbHQ7P3htbCBlbmNvZGluZz0nVVRGLTgnPyZndDsKKyZsdDs/eG1sIGVuY29kaW5nPSdFVUMtSlAnPyZndDs8L2VnPjwvcD4KKzwvZGl2Mz4KKzwvZGl2Mj4KKzxkaXYyIGlkPSJlbnRwcm9jIj4KKzxoZWFkPlhNTCBQcm9jZXNzb3IgVHJlYXRtZW50IG9mIEVudGl0aWVzIGFuZCBSZWZlcmVuY2VzPC9oZWFkPgorPHA+VGhlIHRhYmxlIGJlbG93IHN1bW1hcml6ZXMgdGhlIGNvbnRleHRzIGluIHdoaWNoIGNoYXJhY3RlciByZWZlcmVuY2VzLAorZW50aXR5IHJlZmVyZW5jZXMsIGFuZCBpbnZvY2F0aW9ucyBvZiB1bnBhcnNlZCBlbnRpdGllcyBtaWdodCBhcHBlYXIgYW5kIHRoZQorcmVxdWlyZWQgYmVoYXZpb3Igb2YgYW4gPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MIHByb2Nlc3NvcjwvdGVybXJlZj4gaW4KK2VhY2ggY2FzZS4gIAorVGhlIGxhYmVscyBpbiB0aGUgbGVmdG1vc3QgY29sdW1uIGRlc2NyaWJlIHRoZSByZWNvZ25pdGlvbiBjb250ZXh0OgorPGdsaXN0PgorPGdpdGVtPjxsYWJlbD5SZWZlcmVuY2UgaW4gQ29udGVudDwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgcmVmZXJlbmNlCithbnl3aGVyZSBhZnRlciB0aGUgPHRlcm1yZWYgZGVmPSJkdC1zdGFnIj5zdGFydC10YWc8L3Rlcm1yZWY+IGFuZAorYmVmb3JlIHRoZSA8dGVybXJlZiBkZWY9ImR0LWV0YWciPmVuZC10YWc8L3Rlcm1yZWY+IG9mIGFuIGVsZW1lbnQ7IGNvcnJlc3BvbmRzCit0byB0aGUgbm9udGVybWluYWwgPG50IGRlZj0iTlQtY29udGVudCI+Y29udGVudDwvbnQ+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+UmVmZXJlbmNlIGluIEF0dHJpYnV0ZSBWYWx1ZTwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgcmVmZXJlbmNlIHdpdGhpbiBlaXRoZXIgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBpbiBhIAorPHRlcm1yZWYgZGVmPSJkdC1zdGFnIj5zdGFydC10YWc8L3Rlcm1yZWY+LCBvciBhIGRlZmF1bHQKK3ZhbHVlIGluIGFuIDx0ZXJtcmVmIGRlZj0iZHQtYXR0ZGVjbCI+YXR0cmlidXRlIGRlY2xhcmF0aW9uPC90ZXJtcmVmPjsKK2NvcnJlc3BvbmRzIHRvIHRoZSBub250ZXJtaW5hbAorPG50IGRlZj0iTlQtQXR0VmFsdWUiPkF0dFZhbHVlPC9udD4uPC9wPjwvZGVmPjwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+T2NjdXJzIGFzIEF0dHJpYnV0ZSBWYWx1ZTwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+LCBub3QgYSByZWZlcmVuY2UsIGFwcGVhcmluZyBlaXRoZXIgYXMKK3RoZSB2YWx1ZSBvZiBhbiAKK2F0dHJpYnV0ZSB3aGljaCBoYXMgYmVlbiBkZWNsYXJlZCBhcyB0eXBlIDxrdz5FTlRJVFk8L2t3Piwgb3IgYXMgb25lIG9mCit0aGUgc3BhY2Utc2VwYXJhdGVkIHRva2VucyBpbiB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIHdoaWNoIGhhcyBiZWVuCitkZWNsYXJlZCBhcyB0eXBlIDxrdz5FTlRJVElFUzwva3c+LjwvcD4KKzwvZGVmPjwvZ2l0ZW0+Cis8Z2l0ZW0+PGxhYmVsPlJlZmVyZW5jZSBpbiBFbnRpdHkgVmFsdWU8L2xhYmVsPgorPGRlZj48cD5hcyBhIHJlZmVyZW5jZQord2l0aGluIGEgcGFyYW1ldGVyIG9yIGludGVybmFsIGVudGl0eSdzIAorPHRlcm1yZWYgZGVmPSJkdC1saXRlbnR2YWwiPmxpdGVyYWwgZW50aXR5IHZhbHVlPC90ZXJtcmVmPiBpbgordGhlIGVudGl0eSdzIGRlY2xhcmF0aW9uOyBjb3JyZXNwb25kcyB0byB0aGUgbm9udGVybWluYWwgCis8bnQgZGVmPSJOVC1FbnRpdHlWYWx1ZSI+RW50aXR5VmFsdWU8L250Pi48L3A+PC9kZWY+PC9naXRlbT4KKzxnaXRlbT48bGFiZWw+UmVmZXJlbmNlIGluIERURDwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgcmVmZXJlbmNlIHdpdGhpbiBlaXRoZXIgdGhlIGludGVybmFsIG9yIGV4dGVybmFsIHN1YnNldHMgb2YgdGhlIAorPHRlcm1yZWYgZGVmPSJkdC1kb2N0eXBlIj5EVEQ8L3Rlcm1yZWY+LCBidXQgb3V0c2lkZQorb2YgYW4gPG50IGRlZj0iTlQtRW50aXR5VmFsdWUiPkVudGl0eVZhbHVlPC9udD4gb3IKKzxudCBkZWY9Ik5ULUF0dFZhbHVlIj5BdHRWYWx1ZTwvbnQ+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8L2dsaXN0PjwvcD4KKzxodGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iNyIgYWxpZ249ImNlbnRlciI+Cis8aHRib2R5PgorPHRyPjx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7IiByb3dzcGFuPSIyIiBjb2xzcGFuPSIxIi8+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJib3R0b20iIGNvbHNwYW49IjQiPkVudGl0eSBUeXBlPC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7IiByb3dzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj5DaGFyYWN0ZXI8L3RkPgorPC90cj4KKzx0ciBhbGlnbj0iY2VudGVyIiB2YWxpZ249ImJvdHRvbSI+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+UGFyYW1ldGVyPC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij5JbnRlcm5hbAorR2VuZXJhbDwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+RXh0ZXJuYWwgUGFyc2VkCitHZW5lcmFsPC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij5VbnBhcnNlZDwvdGQ+Cis8L3RyPgorPHRyIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj4KKworPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiIGFsaWduPSJyaWdodCI+UmVmZXJlbmNlCitpbiBDb250ZW50PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0ibm90LXJlY29nbml6ZWQiPk5vdCByZWNvZ25pemVkPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiPjx0aXRsZXJlZiBocmVmPSJpbmNsdWRlZCI+SW5jbHVkZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9ImluY2x1ZGUtaWYtdmFsaWQiPkluY2x1ZGVkIGlmIHZhbGlkYXRpbmc8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9ImZvcmJpZGRlbiI+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiPjx0aXRsZXJlZiBocmVmPSJpbmNsdWRlZCI+SW5jbHVkZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8L3RyPgorPHRyIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7IiBhbGlnbj0icmlnaHQiPlJlZmVyZW5jZQoraW4gQXR0cmlidXRlIFZhbHVlPC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0ibm90LXJlY29nbml6ZWQiPk5vdCByZWNvZ25pemVkPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiPjx0aXRsZXJlZiBocmVmPSJpbmxpdGVyYWwiPkluY2x1ZGVkIGluIGxpdGVyYWw8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9ImZvcmJpZGRlbiI+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiPjx0aXRsZXJlZiBocmVmPSJmb3JiaWRkZW4iPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0iaW5jbHVkZWQiPkluY2x1ZGVkPC90aXRsZXJlZj48L3RkPgorPC90cj4KKzx0ciBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyIgYWxpZ249InJpZ2h0Ij5PY2N1cnMgYXMKK0F0dHJpYnV0ZSBWYWx1ZTwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9Im5vdC1yZWNvZ25pemVkIj5Ob3QgcmVjb2duaXplZDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0ibm90LXJlY29nbml6ZWQiPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0ibm90LXJlY29nbml6ZWQiPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0ibm90aWZ5Ij5Ob3RpZnk8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9Im5vdCByZWNvZ25pemVkIj5Ob3QgcmVjb2duaXplZDwvdGl0bGVyZWY+PC90ZD4KKzwvdHI+Cis8dHIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiIGFsaWduPSJyaWdodCI+UmVmZXJlbmNlCitpbiBFbnRpdHlWYWx1ZTwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9ImlubGl0ZXJhbCI+SW5jbHVkZWQgaW4gbGl0ZXJhbDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0iYnlwYXNzIj5CeXBhc3NlZDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0iYnlwYXNzIj5CeXBhc3NlZDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0iZm9yYmlkZGVuIj5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9ImluY2x1ZGVkIj5JbmNsdWRlZDwvdGl0bGVyZWY+PC90ZD4KKzwvdHI+Cis8dHIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiIGFsaWduPSJyaWdodCI+UmVmZXJlbmNlCitpbiBEVEQ8L3RkPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiPjx0aXRsZXJlZiBocmVmPSJhcy1QRSI+SW5jbHVkZWQgYXMgUEU8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9ImZvcmJpZGRlbiI+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9IiZjZWxsYmFjazsiPjx0aXRsZXJlZiBocmVmPSJmb3JiaWRkZW4iPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPSImY2VsbGJhY2s7Ij48dGl0bGVyZWYgaHJlZj0iZm9yYmlkZGVuIj5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0iJmNlbGxiYWNrOyI+PHRpdGxlcmVmIGhyZWY9ImZvcmJpZGRlbiI+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPC90cj4KKzwvaHRib2R5PgorPC9odGFibGU+Cis8ZGl2MyBpZD0ibm90LXJlY29nbml6ZWQiPgorPGhlYWQ+Tm90IFJlY29nbml6ZWQ8L2hlYWQ+Cis8cD5PdXRzaWRlIHRoZSBEVEQsIHRoZSA8Y29kZT4lPC9jb2RlPiBjaGFyYWN0ZXIgaGFzIG5vCitzcGVjaWFsIHNpZ25pZmljYW5jZTsgdGh1cywgd2hhdCB3b3VsZCBiZSBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMgaW4gdGhlCitEVEQgYXJlIG5vdCByZWNvZ25pemVkIGFzIG1hcmt1cCBpbiA8bnQgZGVmPSJOVC1jb250ZW50Ij5jb250ZW50PC9udD4uCitTaW1pbGFybHksIHRoZSBuYW1lcyBvZiB1bnBhcnNlZCBlbnRpdGllcyBhcmUgbm90IHJlY29nbml6ZWQgZXhjZXB0Cit3aGVuIHRoZXkgYXBwZWFyIGluIHRoZSB2YWx1ZSBvZiBhbiBhcHByb3ByaWF0ZWx5IGRlY2xhcmVkIGF0dHJpYnV0ZS4KKzwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSJpbmNsdWRlZCI+Cis8aGVhZD5JbmNsdWRlZDwvaGVhZD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1pbmNsdWRlIiB0ZXJtPSJJbmNsdWRlIj5BbiBlbnRpdHkgaXMgCis8dGVybT5pbmNsdWRlZDwvdGVybT4gd2hlbiBpdHMgCis8dGVybXJlZiBkZWY9ImR0LXJlcGx0ZXh0Ij5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBpcyByZXRyaWV2ZWQgCithbmQgcHJvY2Vzc2VkLCBpbiBwbGFjZSBvZiB0aGUgcmVmZXJlbmNlIGl0c2VsZiwKK2FzIHRob3VnaCBpdCB3ZXJlIHBhcnQgb2YgdGhlIGRvY3VtZW50IGF0IHRoZSBsb2NhdGlvbiB0aGUKK3JlZmVyZW5jZSB3YXMgcmVjb2duaXplZC4KK1RoZSByZXBsYWNlbWVudCB0ZXh0IG1heSBjb250YWluIGJvdGggCis8dGVybXJlZiBkZWY9ImR0LWNoYXJkYXRhIj5jaGFyYWN0ZXIgZGF0YTwvdGVybXJlZj4KK2FuZCAoZXhjZXB0IGZvciBwYXJhbWV0ZXIgZW50aXRpZXMpIDx0ZXJtcmVmIGRlZj0iZHQtbWFya3VwIj5tYXJrdXA8L3Rlcm1yZWY+LAord2hpY2ggbXVzdCBiZSByZWNvZ25pemVkIGluCit0aGUgdXN1YWwgd2F5LCBleGNlcHQgdGhhdCB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiBlbnRpdGllcyB1c2VkIHRvIGVzY2FwZQorbWFya3VwIGRlbGltaXRlcnMgKHRoZSBlbnRpdGllcyAmbWFnaWNlbnRzOykgaXMgYWx3YXlzIHRyZWF0ZWQgYXMKK2RhdGEuICAoVGhlIHN0cmluZyAiPGNvZGU+QVQmYW1wO2FtcDtUOzwvY29kZT4iIGV4cGFuZHMgdG8KKyI8Y29kZT5BVCZhbXA7VDs8L2NvZGU+IiBhbmQgdGhlIHJlbWFpbmluZyBhbXBlcnNhbmQgaXMgbm90IHJlY29nbml6ZWQKK2FzIGFuIGVudGl0eS1yZWZlcmVuY2UgZGVsaW1pdGVyLikgCitBIGNoYXJhY3RlciByZWZlcmVuY2UgaXMgPHRlcm0+aW5jbHVkZWQ8L3Rlcm0+IHdoZW4gdGhlIGluZGljYXRlZAorY2hhcmFjdGVyIGlzIHByb2Nlc3NlZCBpbiBwbGFjZSBvZiB0aGUgcmVmZXJlbmNlIGl0c2VsZi4KKzwvdGVybWRlZj48L3A+Cis8L2RpdjM+Cis8ZGl2MyBpZD0iaW5jbHVkZS1pZi12YWxpZCI+Cis8aGVhZD5JbmNsdWRlZCBJZiBWYWxpZGF0aW5nPC9oZWFkPgorPHA+V2hlbiBhbiBYTUwgcHJvY2Vzc29yIHJlY29nbml6ZXMgYSByZWZlcmVuY2UgdG8gYSBwYXJzZWQgZW50aXR5LCBpbiBvcmRlcgordG8gPHRlcm1yZWYgZGVmPSJkdC12YWxpZCI+dmFsaWRhdGU8L3Rlcm1yZWY+Cit0aGUgZG9jdW1lbnQsIHRoZSBwcm9jZXNzb3IgbXVzdCAKKzx0ZXJtcmVmIGRlZj0iZHQtaW5jbHVkZSI+aW5jbHVkZTwvdGVybXJlZj4gaXRzCityZXBsYWNlbWVudCB0ZXh0LgorSWYgdGhlIGVudGl0eSBpcyBleHRlcm5hbCwgYW5kIHRoZSBwcm9jZXNzb3IgaXMgbm90CithdHRlbXB0aW5nIHRvIHZhbGlkYXRlIHRoZSBYTUwgZG9jdW1lbnQsIHRoZQorcHJvY2Vzc29yIDx0ZXJtcmVmIGRlZj0iZHQtbWF5Ij5tYXk8L3Rlcm1yZWY+LCBidXQgbmVlZCBub3QsIAoraW5jbHVkZSB0aGUgZW50aXR5J3MgcmVwbGFjZW1lbnQgdGV4dC4KK0lmIGEgbm9uLXZhbGlkYXRpbmcgcGFyc2VyIGRvZXMgbm90IGluY2x1ZGUgdGhlIHJlcGxhY2VtZW50IHRleHQsCitpdCBtdXN0IGluZm9ybSB0aGUgYXBwbGljYXRpb24gdGhhdCBpdCByZWNvZ25pemVkLCBidXQgZGlkIG5vdAorcmVhZCwgdGhlIGVudGl0eS48L3A+Cis8cD5UaGlzIHJ1bGUgaXMgYmFzZWQgb24gdGhlIHJlY29nbml0aW9uIHRoYXQgdGhlIGF1dG9tYXRpYyBpbmNsdXNpb24KK3Byb3ZpZGVkIGJ5IHRoZSBTR01MIGFuZCBYTUwgZW50aXR5IG1lY2hhbmlzbSwgcHJpbWFyaWx5IGRlc2lnbmVkCit0byBzdXBwb3J0IG1vZHVsYXJpdHkgaW4gYXV0aG9yaW5nLCBpcyBub3QgbmVjZXNzYXJpbHkgCithcHByb3ByaWF0ZSBmb3Igb3RoZXIgYXBwbGljYXRpb25zLCBpbiBwYXJ0aWN1bGFyIGRvY3VtZW50IGJyb3dzaW5nLgorQnJvd3NlcnMsIGZvciBleGFtcGxlLCB3aGVuIGVuY291bnRlcmluZyBhbiBleHRlcm5hbCBwYXJzZWQgZW50aXR5IHJlZmVyZW5jZSwKK21pZ2h0IGNob29zZSB0byBwcm92aWRlIGEgdmlzdWFsIGluZGljYXRpb24gb2YgdGhlIGVudGl0eSdzCitwcmVzZW5jZSBhbmQgcmV0cmlldmUgaXQgZm9yIGRpc3BsYXkgb25seSBvbiBkZW1hbmQuCis8L3A+Cis8L2RpdjM+Cis8ZGl2MyBpZD0iZm9yYmlkZGVuIj4KKzxoZWFkPkZvcmJpZGRlbjwvaGVhZD4KKzxwPlRoZSBmb2xsb3dpbmcgYXJlIGZvcmJpZGRlbiwgYW5kIGNvbnN0aXR1dGUKKzx0ZXJtcmVmIGRlZj0iZHQtZmF0YWwiPmZhdGFsPC90ZXJtcmVmPiBlcnJvcnM6Cis8dWxpc3Q+Cis8aXRlbT48cD50aGUgYXBwZWFyYW5jZSBvZiBhIHJlZmVyZW5jZSB0byBhbgorPHRlcm1yZWYgZGVmPSJkdC11bnBhcnNlZCI+dW5wYXJzZWQgZW50aXR5PC90ZXJtcmVmPi4KKzwvcD48L2l0ZW0+Cis8aXRlbT48cD50aGUgYXBwZWFyYW5jZSBvZiBhbnkgY2hhcmFjdGVyIG9yIGdlbmVyYWwtZW50aXR5IHJlZmVyZW5jZSBpbiB0aGUKK0RURCBleGNlcHQgd2l0aGluIGFuIDxudCBkZWY9Ik5ULUVudGl0eVZhbHVlIj5FbnRpdHlWYWx1ZTwvbnQ+IG9yIAorPG50IGRlZj0iTlQtQXR0VmFsdWUiPkF0dFZhbHVlPC9udD4uPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmEgcmVmZXJlbmNlIHRvIGFuIGV4dGVybmFsIGVudGl0eSBpbiBhbiBhdHRyaWJ1dGUgdmFsdWUuPC9wPgorPC9pdGVtPgorPC91bGlzdD4KKzwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSJpbmxpdGVyYWwiPgorPGhlYWQ+SW5jbHVkZWQgaW4gTGl0ZXJhbDwvaGVhZD4KKzxwPldoZW4gYW4gPHRlcm1yZWYgZGVmPSJkdC1lbnRyZWYiPmVudGl0eSByZWZlcmVuY2U8L3Rlcm1yZWY+IGFwcGVhcnMgaW4gYW4KK2F0dHJpYnV0ZSB2YWx1ZSwgb3IgYSBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZSBhcHBlYXJzIGluIGEgbGl0ZXJhbCBlbnRpdHkKK3ZhbHVlLCBpdHMgPHRlcm1yZWYgZGVmPSJkdC1yZXBsdGV4dCI+cmVwbGFjZW1lbnQgdGV4dDwvdGVybXJlZj4gaXMKK3Byb2Nlc3NlZCBpbiBwbGFjZSBvZiB0aGUgcmVmZXJlbmNlIGl0c2VsZiBhcyB0aG91Z2ggaXQKK3dlcmUgcGFydCBvZiB0aGUgZG9jdW1lbnQgYXQgdGhlIGxvY2F0aW9uIHRoZSByZWZlcmVuY2Ugd2FzIHJlY29nbml6ZWQsCitleGNlcHQgdGhhdCBhIHNpbmdsZSBvciBkb3VibGUgcXVvdGUgY2hhcmFjdGVyIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0CitpcyBhbHdheXMgdHJlYXRlZCBhcyBhIG5vcm1hbCBkYXRhIGNoYXJhY3RlciBhbmQgd2lsbCBub3QgdGVybWluYXRlIHRoZQorbGl0ZXJhbC4gCitGb3IgZXhhbXBsZSwgdGhpcyBpcyB3ZWxsLWZvcm1lZDoKKzxlZz48IVtDREFUQVs8IUVOVElUWSAlIFlOICciWWVzIicgPgorPCFFTlRJVFkgV2hhdEhlU2FpZCAiSGUgc2FpZCAmWU47IiA+XV0+PC9lZz4KK3doaWxlIHRoaXMgaXMgbm90OgorPGVnPiZsdDshRU5USVRZIEVuZEF0dHIgIjI3JyIgJmd0OworJmx0O2VsZW1lbnQgYXR0cmlidXRlPSdhLSZhbXA7RW5kQXR0cjsmZ3Q7PC9lZz4KKzwvcD48L2RpdjM+Cis8ZGl2MyBpZD0ibm90aWZ5Ij4KKzxoZWFkPk5vdGlmeTwvaGVhZD4KKzxwPldoZW4gdGhlIG5hbWUgb2YgYW4gPHRlcm1yZWYgZGVmPSJkdC11bnBhcnNlZCI+dW5wYXJzZWQKK2VudGl0eTwvdGVybXJlZj4gYXBwZWFycyBhcyBhIHRva2VuIGluIHRoZQordmFsdWUgb2YgYW4gYXR0cmlidXRlIG9mIGRlY2xhcmVkIHR5cGUgPGt3PkVOVElUWTwva3c+IG9yIDxrdz5FTlRJVElFUzwva3c+LAorYSB2YWxpZGF0aW5nIHByb2Nlc3NvciBtdXN0IGluZm9ybSB0aGUKK2FwcGxpY2F0aW9uIG9mIHRoZSA8dGVybXJlZiBkZWY9ImR0LXN5c2lkIj5zeXN0ZW08L3Rlcm1yZWY+IAorYW5kIDx0ZXJtcmVmIGRlZj0iZHQtcHViaWQiPnB1YmxpYzwvdGVybXJlZj4gKGlmIGFueSkKK2lkZW50aWZpZXJzIGZvciBib3RoIHRoZSBlbnRpdHkgYW5kIGl0cyBhc3NvY2lhdGVkCis8dGVybXJlZiBkZWY9ImR0LW5vdGF0aW9uIj5ub3RhdGlvbjwvdGVybXJlZj4uPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9ImJ5cGFzcyI+Cis8aGVhZD5CeXBhc3NlZDwvaGVhZD4KKzxwPldoZW4gYSBnZW5lcmFsIGVudGl0eSByZWZlcmVuY2UgYXBwZWFycyBpbiB0aGUKKzxudCBkZWY9Ik5ULUVudGl0eVZhbHVlIj5FbnRpdHlWYWx1ZTwvbnQ+IGluIGFuIGVudGl0eSBkZWNsYXJhdGlvbiwKK2l0IGlzIGJ5cGFzc2VkIGFuZCBsZWZ0IGFzIGlzLjwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSJhcy1QRSI+Cis8aGVhZD5JbmNsdWRlZCBhcyBQRTwvaGVhZD4KKzxwPkp1c3QgYXMgd2l0aCBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMsIHBhcmFtZXRlciBlbnRpdGllcworbmVlZCBvbmx5IGJlIDx0aXRsZXJlZiBocmVmPSJpbmNsdWRlLWlmLXZhbGlkIj5pbmNsdWRlZCBpZgordmFsaWRhdGluZzwvdGl0bGVyZWY+LiAKK1doZW4gYSBwYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZSBpcyByZWNvZ25pemVkIGluIHRoZSBEVEQKK2FuZCBpbmNsdWRlZCwgaXRzIAorPHRlcm1yZWYgZGVmPSJkdC1yZXBsdGV4dCI+cmVwbGFjZW1lbnQKK3RleHQ8L3Rlcm1yZWY+IGlzIGVubGFyZ2VkIGJ5IHRoZSBhdHRhY2htZW50IG9mIG9uZSBsZWFkaW5nIGFuZCBvbmUgZm9sbG93aW5nCitzcGFjZSAoI3gyMCkgY2hhcmFjdGVyOyB0aGUgaW50ZW50IGlzIHRvIGNvbnN0cmFpbiB0aGUgcmVwbGFjZW1lbnQKK3RleHQgb2YgcGFyYW1ldGVyIAorZW50aXRpZXMgdG8gY29udGFpbiBhbiBpbnRlZ3JhbCBudW1iZXIgb2YgZ3JhbW1hdGljYWwgdG9rZW5zIGluIHRoZSBEVEQuCis8L3A+Cis8L2RpdjM+CisKKzwvZGl2Mj4KKzxkaXYyIGlkPSJpbnRlcm4tcmVwbGFjZW1lbnQiPgorPGhlYWQ+Q29uc3RydWN0aW9uIG9mIEludGVybmFsIEVudGl0eSBSZXBsYWNlbWVudCBUZXh0PC9oZWFkPgorPHA+SW4gZGlzY3Vzc2luZyB0aGUgdHJlYXRtZW50CitvZiBpbnRlcm5hbCBlbnRpdGllcywgaXQgaXMgIAordXNlZnVsIHRvIGRpc3Rpbmd1aXNoIHR3byBmb3JtcyBvZiB0aGUgZW50aXR5J3MgdmFsdWUuCis8dGVybWRlZiBpZD0iZHQtbGl0ZW50dmFsIiB0ZXJtPSJMaXRlcmFsIEVudGl0eSBWYWx1ZSI+VGhlIDx0ZXJtPmxpdGVyYWwKK2VudGl0eSB2YWx1ZTwvdGVybT4gaXMgdGhlIHF1b3RlZCBzdHJpbmcgYWN0dWFsbHkKK3ByZXNlbnQgaW4gdGhlIGVudGl0eSBkZWNsYXJhdGlvbiwgY29ycmVzcG9uZGluZyB0byB0aGUKK25vbi10ZXJtaW5hbCA8bnQgZGVmPSJOVC1FbnRpdHlWYWx1ZSI+RW50aXR5VmFsdWU8L250Pi48L3Rlcm1kZWY+Cis8dGVybWRlZiBpZD0iZHQtcmVwbHRleHQiIHRlcm09IlJlcGxhY2VtZW50IFRleHQiPlRoZSA8dGVybT5yZXBsYWNlbWVudAordGV4dDwvdGVybT4gaXMgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSwgYWZ0ZXIKK3JlcGxhY2VtZW50IG9mIGNoYXJhY3RlciByZWZlcmVuY2VzIGFuZCBwYXJhbWV0ZXItZW50aXR5CityZWZlcmVuY2VzLgorPC90ZXJtZGVmPjwvcD4KKworPHA+VGhlIGxpdGVyYWwgZW50aXR5IHZhbHVlIAorYXMgZ2l2ZW4gaW4gYW4gaW50ZXJuYWwgZW50aXR5IGRlY2xhcmF0aW9uCisoPG50IGRlZj0iTlQtRW50aXR5VmFsdWUiPkVudGl0eVZhbHVlPC9udD4pIG1heSBjb250YWluIGNoYXJhY3RlciwKK3BhcmFtZXRlci1lbnRpdHksIGFuZCBnZW5lcmFsLWVudGl0eSByZWZlcmVuY2VzLgorU3VjaCByZWZlcmVuY2VzIG11c3QgYmUgY29udGFpbmVkIGVudGlyZWx5IHdpdGhpbiB0aGUKK2xpdGVyYWwgZW50aXR5IHZhbHVlLgorVGhlIGFjdHVhbCByZXBsYWNlbWVudCB0ZXh0IHRoYXQgaXMgCis8dGVybXJlZiBkZWY9ImR0LWluY2x1ZGUiPmluY2x1ZGVkPC90ZXJtcmVmPiBhcyBkZXNjcmliZWQgYWJvdmUKK211c3QgY29udGFpbiB0aGUgPGVtcGg+cmVwbGFjZW1lbnQgdGV4dDwvZW1waD4gb2YgYW55IAorcGFyYW1ldGVyIGVudGl0aWVzIHJlZmVycmVkIHRvLCBhbmQgbXVzdCBjb250YWluIHRoZSBjaGFyYWN0ZXIKK3JlZmVycmVkIHRvLCBpbiBwbGFjZSBvZiBhbnkgY2hhcmFjdGVyIHJlZmVyZW5jZXMgaW4gdGhlCitsaXRlcmFsIGVudGl0eSB2YWx1ZTsgaG93ZXZlciwKK2dlbmVyYWwtZW50aXR5IHJlZmVyZW5jZXMgbXVzdCBiZSBsZWZ0IGFzLWlzLCB1bmV4cGFuZGVkLgorRm9yIGV4YW1wbGUsIGdpdmVuIHRoZSBmb2xsb3dpbmcgZGVjbGFyYXRpb25zOgorCis8ZWc+PCFbQ0RBVEFbPCFFTlRJVFkgJSBwdWIgICAgIiYjeGM5O2RpdGlvbnMgR2FsbGltYXJkIiA+Cis8IUVOVElUWSAgIHJpZ2h0cyAiQWxsIHJpZ2h0cyByZXNlcnZlZCIgPgorPCFFTlRJVFkgICBib29rICAgIkxhIFBlc3RlOiBBbGJlcnQgQ2FtdXMsIAorJiN4QTk7IDE5NDcgJXB1YjsuICZyaWdodHM7IiA+XV0+PC9lZz4KK3RoZW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIHRoZSBlbnRpdHkgIjxjb2RlPmJvb2s8L2NvZGU+IiBpczoKKzxlZz5MYSBQZXN0ZTogQWxiZXJ0IENhbXVzLCAKK6kgMTk0NyDJZGl0aW9ucyBHYWxsaW1hcmQuICZhbXA7cmlnaHRzOzwvZWc+CitUaGUgZ2VuZXJhbC1lbnRpdHkgcmVmZXJlbmNlICI8Y29kZT4mYW1wO3JpZ2h0czs8L2NvZGU+IiB3b3VsZCBiZSBleHBhbmRlZAorc2hvdWxkIHRoZSByZWZlcmVuY2UgIjxjb2RlPiZhbXA7Ym9vazs8L2NvZGU+IiBhcHBlYXIgaW4gdGhlIGRvY3VtZW50J3MKK2NvbnRlbnQgb3IgYW4gYXR0cmlidXRlIHZhbHVlLjwvcD4KKzxwPlRoZXNlIHNpbXBsZSBydWxlcyBtYXkgaGF2ZSBjb21wbGV4IGludGVyYWN0aW9uczsgZm9yIGEgZGV0YWlsZWQKK2Rpc2N1c3Npb24gb2YgYSBkaWZmaWN1bHQgZXhhbXBsZSwgc2VlCis8c3BlY3JlZiByZWY9InNlYy1lbnRleHBhbmQiLz4uCis8L3A+CisKKzwvZGl2Mj4KKzxkaXYyIGlkPSJzZWMtcHJlZGVmaW5lZC1lbnQiPgorPGhlYWQ+UHJlZGVmaW5lZCBFbnRpdGllczwvaGVhZD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lc2NhcGUiIHRlcm09ImVzY2FwZSI+RW50aXR5IGFuZCBjaGFyYWN0ZXIKK3JlZmVyZW5jZXMgY2FuIGJvdGggYmUgdXNlZCB0byA8dGVybT5lc2NhcGU8L3Rlcm0+IHRoZSBsZWZ0IGFuZ2xlIGJyYWNrZXQsCithbXBlcnNhbmQsIGFuZCBvdGhlciBkZWxpbWl0ZXJzLiAgIEEgc2V0IG9mIGdlbmVyYWwgZW50aXRpZXMKKygmbWFnaWNlbnRzOykgaXMgc3BlY2lmaWVkIGZvciB0aGlzIHB1cnBvc2UuCitOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIG1heSBhbHNvIGJlIHVzZWQ7IHRoZXkgYXJlCitleHBhbmRlZCBpbW1lZGlhdGVseSB3aGVuIHJlY29nbml6ZWQgYW5kIG11c3QgYmUgdHJlYXRlZCBhcworY2hhcmFjdGVyIGRhdGEsIHNvIHRoZSBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzCisiPGNvZGU+JmFtcDsjNjA7PC9jb2RlPiIgYW5kICI8Y29kZT4mYW1wOyMzODs8L2NvZGU+IiBtYXkgYmUgdXNlZCB0byAKK2VzY2FwZSA8Y29kZT4mbHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDs8L2NvZGU+IHdoZW4gdGhleSBvY2N1cgoraW4gY2hhcmFjdGVyIGRhdGEuPC90ZXJtZGVmPjwvcD4KKzxwPkFsbCBYTUwgcHJvY2Vzc29ycyBtdXN0IHJlY29nbml6ZSB0aGVzZSBlbnRpdGllcyB3aGV0aGVyIHRoZXkKK2FyZSBkZWNsYXJlZCBvciBub3QuICAKKzx0ZXJtcmVmIGRlZj0iZHQtaW50ZXJvcCI+Rm9yIGludGVyb3BlcmFiaWxpdHk8L3Rlcm1yZWY+LAordmFsaWQgWE1MIGRvY3VtZW50cyBzaG91bGQgZGVjbGFyZSB0aGVzZQorZW50aXRpZXMsIGxpa2UgYW55IG90aGVycywgYmVmb3JlIHVzaW5nIHRoZW0uCitJZiB0aGUgZW50aXRpZXMgaW4gcXVlc3Rpb24gYXJlIGRlY2xhcmVkLCB0aGV5IG11c3QgYmUgZGVjbGFyZWQKK2FzIGludGVybmFsIGVudGl0aWVzIHdob3NlIHJlcGxhY2VtZW50IHRleHQgaXMgdGhlIHNpbmdsZQorY2hhcmFjdGVyIGJlaW5nIGVzY2FwZWQgb3IgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlIHRvCit0aGF0IGNoYXJhY3RlciwgYXMgc2hvd24gYmVsb3cuCis8ZWc+PCFbQ0RBVEFbPCFFTlRJVFkgbHQgICAgICImIzM4OyM2MDsiPiAKKzwhRU5USVRZIGd0ICAgICAiJiM2MjsiPiAKKzwhRU5USVRZIGFtcCAgICAiJiMzODsjMzg7Ij4gCis8IUVOVElUWSBhcG9zICAgIiYjMzk7Ij4gCis8IUVOVElUWSBxdW90ICAgIiYjMzQ7Ij4gCitdXT48L2VnPgorTm90ZSB0aGF0IHRoZSA8Y29kZT4mbHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDs8L2NvZGU+IGNoYXJhY3RlcnMKK2luIHRoZSBkZWNsYXJhdGlvbnMgb2YgIjxjb2RlPmx0PC9jb2RlPiIgYW5kICI8Y29kZT5hbXA8L2NvZGU+IgorYXJlIGRvdWJseSBlc2NhcGVkIHRvIG1lZXQgdGhlIHJlcXVpcmVtZW50IHRoYXQgZW50aXR5IHJlcGxhY2VtZW50CitiZSB3ZWxsLWZvcm1lZC4KKzwvcD4KKzwvZGl2Mj4KKworPGRpdjIgaWQ9Ik5vdGF0aW9ucyI+Cis8aGVhZD5Ob3RhdGlvbiBEZWNsYXJhdGlvbnM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtbm90YXRpb24iIHRlcm09Ik5vdGF0aW9uIj48dGVybT5Ob3RhdGlvbnM8L3Rlcm0+IGlkZW50aWZ5IGJ5CituYW1lIHRoZSBmb3JtYXQgb2YgPHRlcm1yZWYgZGVmPSJkdC1leHRlbnQiPnVucGFyc2VkCitlbnRpdGllczwvdGVybXJlZj4sIHRoZQorZm9ybWF0IG9mIGVsZW1lbnRzIHdoaWNoIGJlYXIgYSBub3RhdGlvbiBhdHRyaWJ1dGUsIAorb3IgdGhlIGFwcGxpY2F0aW9uIHRvIHdoaWNoICAKK2EgPHRlcm1yZWYgZGVmPSJkdC1waSI+cHJvY2Vzc2luZyBpbnN0cnVjdGlvbjwvdGVybXJlZj4gaXMKK2FkZHJlc3NlZC48L3Rlcm1kZWY+PC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LW5vdGRlY2wiIHRlcm09Ik5vdGF0aW9uIERlY2xhcmF0aW9uIj4KKzx0ZXJtPk5vdGF0aW9uIGRlY2xhcmF0aW9uczwvdGVybT4KK3Byb3ZpZGUgYSBuYW1lIGZvciB0aGUgbm90YXRpb24sIGZvciB1c2UgaW4KK2VudGl0eSBhbmQgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb25zIGFuZCBpbiBhdHRyaWJ1dGUgc3BlY2lmaWNhdGlvbnMsCithbmQgYW4gZXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIG5vdGF0aW9uIHdoaWNoIG1heSBhbGxvdyBhbiBYTUwKK3Byb2Nlc3NvciBvciBpdHMgY2xpZW50IGFwcGxpY2F0aW9uIHRvIGxvY2F0ZSBhIGhlbHBlciBhcHBsaWNhdGlvbgorY2FwYWJsZSBvZiBwcm9jZXNzaW5nIGRhdGEgaW4gdGhlIGdpdmVuIG5vdGF0aW9uLgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+Tm90YXRpb24gRGVjbGFyYXRpb25zPC9oZWFkPgorPHByb2QgaWQ9Ik5ULU5vdGF0aW9uRGVjbCI+PGxocz5Ob3RhdGlvbkRlY2w8L2xocz4KKzxyaHM+JyZsdDshTk9UQVRJT04nIDxudCBkZWY9Ik5ULVMiPlM8L250PiA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gCis8bnQgZGVmPSJOVC1TIj5TPC9udD4gCisoPG50IGRlZj0iTlQtRXh0ZXJuYWxJRCI+RXh0ZXJuYWxJRDwvbnQ+IHwgCis8bnQgZGVmPSJOVC1QdWJsaWNJRCI+UHVibGljSUQ8L250PikKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8gJyZndDsnPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9Ik5ULVB1YmxpY0lEIj48bGhzPlB1YmxpY0lEPC9saHM+Cis8cmhzPidQVUJMSUMnIDxudCBkZWY9Ik5ULVMiPlM8L250PiAKKzxudCBkZWY9Ik5ULVB1YmlkTGl0ZXJhbCI+UHViaWRMaXRlcmFsPC9udD4gCis8L3Jocz48L3Byb2Q+Cis8L3NjcmFwPgorPC90ZXJtZGVmPjwvcD4KKzxwPlhNTCBwcm9jZXNzb3JzIG11c3QgcHJvdmlkZSBhcHBsaWNhdGlvbnMgd2l0aCB0aGUgbmFtZSBhbmQgZXh0ZXJuYWwKK2lkZW50aWZpZXIocykgb2YgYW55IG5vdGF0aW9uIGRlY2xhcmVkIGFuZCByZWZlcnJlZCB0byBpbiBhbiBhdHRyaWJ1dGUKK3ZhbHVlLCBhdHRyaWJ1dGUgZGVmaW5pdGlvbiwgb3IgZW50aXR5IGRlY2xhcmF0aW9uLiAgVGhleSBtYXkKK2FkZGl0aW9uYWxseSByZXNvbHZlIHRoZSBleHRlcm5hbCBpZGVudGlmaWVyIGludG8gdGhlCis8dGVybXJlZiBkZWY9ImR0LXN5c2lkIj5zeXN0ZW0gaWRlbnRpZmllcjwvdGVybXJlZj4sCitmaWxlIG5hbWUsIG9yIG90aGVyIGluZm9ybWF0aW9uIG5lZWRlZCB0byBhbGxvdyB0aGUKK2FwcGxpY2F0aW9uIHRvIGNhbGwgYSBwcm9jZXNzb3IgZm9yIGRhdGEgaW4gdGhlIG5vdGF0aW9uIGRlc2NyaWJlZC4gIChJdAoraXMgbm90IGFuIGVycm9yLCBob3dldmVyLCBmb3IgWE1MIGRvY3VtZW50cyB0byBkZWNsYXJlIGFuZCByZWZlciB0bworbm90YXRpb25zIGZvciB3aGljaCBub3RhdGlvbi1zcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgb24KK3RoZSBzeXN0ZW0gd2hlcmUgdGhlIFhNTCBwcm9jZXNzb3Igb3IgYXBwbGljYXRpb24gaXMgcnVubmluZy4pPC9wPgorPC9kaXYyPgorCisgCis8ZGl2MiBpZD0ic2VjLWRvYy1lbnRpdHkiPgorPGhlYWQ+RG9jdW1lbnQgRW50aXR5PC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWRvY2VudCIgdGVybT0iRG9jdW1lbnQgRW50aXR5Ij5UaGUgPHRlcm0+ZG9jdW1lbnQKK2VudGl0eTwvdGVybT4gc2VydmVzIGFzIHRoZSByb290IG9mIHRoZSBlbnRpdHkKK3RyZWUgYW5kIGEgc3RhcnRpbmctcG9pbnQgZm9yIGFuIDx0ZXJtcmVmIGRlZj0iZHQteG1sLXByb2MiPlhNTAorcHJvY2Vzc29yPC90ZXJtcmVmPi48L3Rlcm1kZWY+CitUaGlzIHNwZWNpZmljYXRpb24gZG9lcworbm90IHNwZWNpZnkgaG93IHRoZSBkb2N1bWVudCBlbnRpdHkgaXMgdG8gYmUgbG9jYXRlZCBieSBhbiBYTUwKK3Byb2Nlc3NvcjsgdW5saWtlIG90aGVyIGVudGl0aWVzLCB0aGUgZG9jdW1lbnQgZW50aXR5IGhhcyBubyBuYW1lIGFuZCBtaWdodAord2VsbCBhcHBlYXIgb24gYSBwcm9jZXNzb3IgaW5wdXQgc3RyZWFtIAord2l0aG91dCBhbnkgaWRlbnRpZmljYXRpb24gYXQgYWxsLjwvcD4KKzwvZGl2Mj4KKworCis8L2RpdjE+Cis8IS0tICZDb25mb3JtYW5jZTsgLS0+CisgCis8ZGl2MSBpZD0ic2VjLWNvbmZvcm1hbmNlIj4KKzxoZWFkPkNvbmZvcm1hbmNlPC9oZWFkPgorIAorPGRpdjIgaWQ9InByb2MtdHlwZXMiPgorPGhlYWQ+VmFsaWRhdGluZyBhbmQgTm9uLVZhbGlkYXRpbmcgUHJvY2Vzc29yczwvaGVhZD4KKzxwPkNvbmZvcm1pbmcgPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MIHByb2Nlc3NvcnM8L3Rlcm1yZWY+IGZhbGwgaW50byB0d28KK2NsYXNzZXM6IHZhbGlkYXRpbmcgYW5kIG5vbi12YWxpZGF0aW5nLjwvcD4KKzxwPlZhbGlkYXRpbmcgYW5kIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvcnMgYWxpa2UgbXVzdCByZXBvcnQKK3Zpb2xhdGlvbnMgb2YgdGhpcyBzcGVjaWZpY2F0aW9uJ3Mgd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnRzCitpbiB0aGUgY29udGVudCBvZiB0aGUKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jZW50Ij5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+IGFuZCBhbnkgCitvdGhlciA8dGVybXJlZiBkZWY9ImR0LXBhcnNlZGVudCI+cGFyc2VkIGVudGl0aWVzPC90ZXJtcmVmPiB0aGF0IAordGhleSByZWFkLjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC12YWxpZGF0aW5nIiB0ZXJtPSJWYWxpZGF0aW5nIFByb2Nlc3NvciI+Cis8dGVybT5WYWxpZGF0aW5nIHByb2Nlc3NvcnM8L3Rlcm0+IG11c3QgcmVwb3J0Cit2aW9sYXRpb25zIG9mIHRoZSBjb25zdHJhaW50cyBleHByZXNzZWQgYnkgdGhlIGRlY2xhcmF0aW9ucyBpbiB0aGUKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jdHlwZSI+RFREPC90ZXJtcmVmPiwgYW5kCitmYWlsdXJlcyB0byBmdWxmaWxsIHRoZSB2YWxpZGl0eSBjb25zdHJhaW50cyBnaXZlbgoraW4gdGhpcyBzcGVjaWZpY2F0aW9uLgorPC90ZXJtZGVmPgorVG8gYWNjb21wbGlzaCB0aGlzLCB2YWxpZGF0aW5nIFhNTCBwcm9jZXNzb3JzIG11c3QgcmVhZCBhbmQgcHJvY2VzcyB0aGUgZW50aXJlCitEVEQgYW5kIGFsbCBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMgcmVmZXJlbmNlZCBpbiB0aGUgZG9jdW1lbnQuCis8L3A+Cis8cD5Ob24tdmFsaWRhdGluZyBwcm9jZXNzb3JzIGFyZSByZXF1aXJlZCB0byBjaGVjayBvbmx5IHRoZSAKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jZW50Ij5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LCBpbmNsdWRpbmcKK3RoZSBlbnRpcmUgaW50ZXJuYWwgRFREIHN1YnNldCwgZm9yIHdlbGwtZm9ybWVkbmVzcy4KKzx0ZXJtZGVmIGlkPSJkdC11c2UtbWRlY2wiIHRlcm09IlByb2Nlc3MgRGVjbGFyYXRpb25zIj4KK1doaWxlIHRoZXkgYXJlIG5vdCByZXF1aXJlZCB0byBjaGVjayB0aGUgZG9jdW1lbnQgZm9yIHZhbGlkaXR5LAordGhleSBhcmUgcmVxdWlyZWQgdG8gCis8dGVybT5wcm9jZXNzPC90ZXJtPiBhbGwgdGhlIGRlY2xhcmF0aW9ucyB0aGV5IHJlYWQgaW4gdGhlCitpbnRlcm5hbCBEVEQgc3Vic2V0IGFuZCBpbiBhbnkgcGFyYW1ldGVyIGVudGl0eSB0aGF0IHRoZXkKK3JlYWQsIHVwIHRvIHRoZSBmaXJzdCByZWZlcmVuY2UKK3RvIGEgcGFyYW1ldGVyIGVudGl0eSB0aGF0IHRoZXkgZG8gPGVtcGg+bm90PC9lbXBoPiByZWFkOyB0aGF0IGlzIHRvIAorc2F5LCB0aGV5IG11c3QKK3VzZSB0aGUgaW5mb3JtYXRpb24gaW4gdGhvc2UgZGVjbGFyYXRpb25zIHRvCis8dGl0bGVyZWYgaHJlZj0iQVZOb3JtYWxpemUiPm5vcm1hbGl6ZTwvdGl0bGVyZWY+IGF0dHJpYnV0ZSB2YWx1ZXMsCis8dGl0bGVyZWYgaHJlZj0iaW5jbHVkZWQiPmluY2x1ZGU8L3RpdGxlcmVmPiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiAKK2ludGVybmFsIGVudGl0aWVzLCBhbmQgc3VwcGx5IAorPHRpdGxlcmVmIGhyZWY9InNlYy1hdHRyLWRlZmF1bHRzIj5kZWZhdWx0IGF0dHJpYnV0ZSB2YWx1ZXM8L3RpdGxlcmVmPi4KKzwvdGVybWRlZj4KK1RoZXkgbXVzdCBub3QgPHRlcm1yZWYgZGVmPSJkdC11c2UtbWRlY2wiPnByb2Nlc3M8L3Rlcm1yZWY+Cis8dGVybXJlZiBkZWY9ImR0LWVudGRlY2wiPmVudGl0eSBkZWNsYXJhdGlvbnM8L3Rlcm1yZWY+IG9yIAorPHRlcm1yZWYgZGVmPSJkdC1hdHRkZWNsIj5hdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnM8L3Rlcm1yZWY+IAorZW5jb3VudGVyZWQgYWZ0ZXIgYSByZWZlcmVuY2UgdG8gYSBwYXJhbWV0ZXIgZW50aXR5IHRoYXQgaXMgbm90CityZWFkLCBzaW5jZSB0aGUgZW50aXR5IG1heSBoYXZlIGNvbnRhaW5lZCBvdmVycmlkaW5nIGRlY2xhcmF0aW9ucy4KKzwvcD4KKzwvZGl2Mj4KKzxkaXYyIGlkPSJzYWZlLWJlaGF2aW9yIj4KKzxoZWFkPlVzaW5nIFhNTCBQcm9jZXNzb3JzPC9oZWFkPgorPHA+VGhlIGJlaGF2aW9yIG9mIGEgdmFsaWRhdGluZyBYTUwgcHJvY2Vzc29yIGlzIGhpZ2hseSBwcmVkaWN0YWJsZTsgaXQKK211c3QgcmVhZCBldmVyeSBwaWVjZSBvZiBhIGRvY3VtZW50IGFuZCByZXBvcnQgYWxsIHdlbGwtZm9ybWVkbmVzcyBhbmQKK3ZhbGlkaXR5IHZpb2xhdGlvbnMuCitMZXNzIGlzIHJlcXVpcmVkIG9mIGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yOyBpdCBuZWVkIG5vdCByZWFkIGFueQorcGFydCBvZiB0aGUgZG9jdW1lbnQgb3RoZXIgdGhhbiB0aGUgZG9jdW1lbnQgZW50aXR5LgorVGhpcyBoYXMgdHdvIGVmZmVjdHMgdGhhdCBtYXkgYmUgaW1wb3J0YW50IHRvIHVzZXJzIG9mIFhNTCBwcm9jZXNzb3JzOgorPHVsaXN0PgorPGl0ZW0+PHA+Q2VydGFpbiB3ZWxsLWZvcm1lZG5lc3MgZXJyb3JzLCBzcGVjaWZpY2FsbHkgdGhvc2UgdGhhdCByZXF1aXJlCityZWFkaW5nIGV4dGVybmFsIGVudGl0aWVzLCBtYXkgbm90IGJlIGRldGVjdGVkIGJ5IGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yLgorRXhhbXBsZXMgaW5jbHVkZSB0aGUgY29uc3RyYWludHMgZW50aXRsZWQgCis8dGl0bGVyZWYgaHJlZj0id2YtZW50ZGVjbGFyZWQiPkVudGl0eSBEZWNsYXJlZDwvdGl0bGVyZWY+LCAKKzx0aXRsZXJlZiBocmVmPSJ3Zi10ZXh0ZW50Ij5QYXJzZWQgRW50aXR5PC90aXRsZXJlZj4sIGFuZAorPHRpdGxlcmVmIGhyZWY9IndmLW5vcmVjdXJzaW9uIj5ObyBSZWN1cnNpb248L3RpdGxlcmVmPiwgYXMgd2VsbAorYXMgc29tZSBvZiB0aGUgY2FzZXMgZGVzY3JpYmVkIGFzCis8dGl0bGVyZWYgaHJlZj0iZm9yYmlkZGVuIj5mb3JiaWRkZW48L3RpdGxlcmVmPiBpbiAKKzxzcGVjcmVmIHJlZj0iZW50cHJvYyIvPi48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VGhlIGluZm9ybWF0aW9uIHBhc3NlZCBmcm9tIHRoZSBwcm9jZXNzb3IgdG8gdGhlIGFwcGxpY2F0aW9uIG1heQordmFyeSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHByb2Nlc3NvciByZWFkcworcGFyYW1ldGVyIGFuZCBleHRlcm5hbCBlbnRpdGllcy4KK0ZvciBleGFtcGxlLCBhIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvciBtYXkgbm90IAorPHRpdGxlcmVmIGhyZWY9IkFWTm9ybWFsaXplIj5ub3JtYWxpemU8L3RpdGxlcmVmPiBhdHRyaWJ1dGUgdmFsdWVzLAorPHRpdGxlcmVmIGhyZWY9ImluY2x1ZGVkIj5pbmNsdWRlPC90aXRsZXJlZj4gdGhlIHJlcGxhY2VtZW50IHRleHQgb2YgCitpbnRlcm5hbCBlbnRpdGllcywgb3Igc3VwcGx5IAorPHRpdGxlcmVmIGhyZWY9InNlYy1hdHRyLWRlZmF1bHRzIj5kZWZhdWx0IGF0dHJpYnV0ZSB2YWx1ZXM8L3RpdGxlcmVmPiwKK3doZXJlIGRvaW5nIHNvIGRlcGVuZHMgb24gaGF2aW5nIHJlYWQgZGVjbGFyYXRpb25zIGluIAorZXh0ZXJuYWwgb3IgcGFyYW1ldGVyIGVudGl0aWVzLjwvcD48L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPHA+Rm9yIG1heGltdW0gcmVsaWFiaWxpdHkgaW4gaW50ZXJvcGVyYXRpbmcgYmV0d2VlbiBkaWZmZXJlbnQgWE1MCitwcm9jZXNzb3JzLCBhcHBsaWNhdGlvbnMgd2hpY2ggdXNlIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvcnMgc2hvdWxkIG5vdCAKK3JlbHkgb24gYW55IGJlaGF2aW9ycyBub3QgcmVxdWlyZWQgb2Ygc3VjaCBwcm9jZXNzb3JzLgorQXBwbGljYXRpb25zIHdoaWNoIHJlcXVpcmUgZmFjaWxpdGllcyBzdWNoIGFzIHRoZSB1c2Ugb2YgZGVmYXVsdAorYXR0cmlidXRlcyBvciBpbnRlcm5hbCBlbnRpdGllcyB3aGljaCBhcmUgZGVjbGFyZWQgaW4gZXh0ZXJuYWwKK2VudGl0aWVzIHNob3VsZCB1c2UgdmFsaWRhdGluZyBYTUwgcHJvY2Vzc29ycy48L3A+Cis8L2RpdjI+Cis8L2RpdjE+CisKKzxkaXYxIGlkPSJzZWMtbm90YXRpb24iPgorPGhlYWQ+Tm90YXRpb248L2hlYWQ+CisgCis8cD5UaGUgZm9ybWFsIGdyYW1tYXIgb2YgWE1MIGlzIGdpdmVuIGluIHRoaXMgc3BlY2lmaWNhdGlvbiB1c2luZyBhIHNpbXBsZQorRXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybSAoRUJORikgbm90YXRpb24uICBFYWNoIHJ1bGUgaW4gdGhlIGdyYW1tYXIgZGVmaW5lcworb25lIHN5bWJvbCwgaW4gdGhlIGZvcm0KKzxlZz5zeW1ib2wgOjo9IGV4cHJlc3Npb248L2VnPjwvcD4KKzxwPlN5bWJvbHMgYXJlIHdyaXR0ZW4gd2l0aCBhbiBpbml0aWFsIGNhcGl0YWwgbGV0dGVyIGlmIHRoZXkgYXJlCitkZWZpbmVkIGJ5IGEgcmVndWxhciBleHByZXNzaW9uLCBvciB3aXRoIGFuIGluaXRpYWwgbG93ZXIgY2FzZSBsZXR0ZXIgCitvdGhlcndpc2UuCitMaXRlcmFsIHN0cmluZ3MgYXJlIHF1b3RlZC4KKworPC9wPgorCis8cD5XaXRoaW4gdGhlIGV4cHJlc3Npb24gb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiBhIHJ1bGUsIHRoZSBmb2xsb3dpbmcKK2V4cHJlc3Npb25zIGFyZSB1c2VkIHRvIG1hdGNoIHN0cmluZ3Mgb2Ygb25lIG9yIG1vcmUgY2hhcmFjdGVyczoKKzxnbGlzdD4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT4jeE48L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+d2hlcmUgPGNvZGU+TjwvY29kZT4gaXMgYSBoZXhhZGVjaW1hbCBpbnRlZ2VyLCB0aGUKK2V4cHJlc3Npb24gbWF0Y2hlcyB0aGUgY2hhcmFjdGVyIGluIElTTy9JRUMgMTA2NDYgd2hvc2UgY2Fub25pY2FsCisoVUNTLTQpIAorY29kZSB2YWx1ZSwgd2hlbiBpbnRlcnByZXRlZCBhcyBhbiB1bnNpZ25lZCBiaW5hcnkgbnVtYmVyLCBoYXMKK3RoZSB2YWx1ZSBpbmRpY2F0ZWQuICBUaGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MgaW4gdGhlCis8Y29kZT4jeE48L2NvZGU+IGZvcm0gaXMgaW5zaWduaWZpY2FudDsgdGhlIG51bWJlciBvZiBsZWFkaW5nCit6ZXJvcyBpbiB0aGUgY29ycmVzcG9uZGluZyBjb2RlIHZhbHVlIAoraXMgZ292ZXJuZWQgYnkgdGhlIGNoYXJhY3RlcgorZW5jb2RpbmcgaW4gdXNlIGFuZCBpcyBub3Qgc2lnbmlmaWNhbnQgZm9yIFhNTC48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPlthLXpBLVpdPC9jb2RlPiwgPGNvZGU+WyN4Ti0jeE5dPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYW55IDx0ZXJtcmVmIGRlZj0iZHQtY2hhcmFjdGVyIj5jaGFyYWN0ZXI8L3Rlcm1yZWY+IAord2l0aCBhIHZhbHVlIGluIHRoZSByYW5nZShzKSBpbmRpY2F0ZWQgKGluY2x1c2l2ZSkuPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5bXmEtel08L2NvZGU+LCA8Y29kZT5bXiN4Ti0jeE5dPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYW55IDx0ZXJtcmVmIGRlZj0iZHQtY2hhcmFjdGVyIj5jaGFyYWN0ZXI8L3Rlcm1yZWY+IAord2l0aCBhIHZhbHVlIDxlbXBoPm91dHNpZGU8L2VtcGg+IHRoZQorcmFuZ2UgaW5kaWNhdGVkLjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+W15hYmNdPC9jb2RlPiwgPGNvZGU+W14jeE4jeE4jeE5dPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYW55IDx0ZXJtcmVmIGRlZj0iZHQtY2hhcmFjdGVyIj5jaGFyYWN0ZXI8L3Rlcm1yZWY+Cit3aXRoIGEgdmFsdWUgbm90IGFtb25nIHRoZSBjaGFyYWN0ZXJzIGdpdmVuLjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+InN0cmluZyI8L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyBhIGxpdGVyYWwgc3RyaW5nIDx0ZXJtcmVmIGRlZj0iZHQtbWF0Y2giPm1hdGNoaW5nPC90ZXJtcmVmPgordGhhdCBnaXZlbiBpbnNpZGUgdGhlIGRvdWJsZSBxdW90ZXMuPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT4nc3RyaW5nJzwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIGEgbGl0ZXJhbCBzdHJpbmcgPHRlcm1yZWYgZGVmPSJkdC1tYXRjaCI+bWF0Y2hpbmc8L3Rlcm1yZWY+Cit0aGF0IGdpdmVuIGluc2lkZSB0aGUgc2luZ2xlIHF1b3Rlcy48L3A+PC9kZWY+Cis8L2dpdGVtPgorPC9nbGlzdD4KK1RoZXNlIHN5bWJvbHMgbWF5IGJlIGNvbWJpbmVkIHRvIG1hdGNoIG1vcmUgY29tcGxleCBwYXR0ZXJucyBhcyBmb2xsb3dzLAord2hlcmUgPGNvZGU+QTwvY29kZT4gYW5kIDxjb2RlPkI8L2NvZGU+IHJlcHJlc2VudCBzaW1wbGUgZXhwcmVzc2lvbnM6Cis8Z2xpc3Q+Cis8Z2l0ZW0+Cis8bGFiZWw+KDxjb2RlPmV4cHJlc3Npb248L2NvZGU+KTwvbGFiZWw+Cis8ZGVmPjxwPjxjb2RlPmV4cHJlc3Npb248L2NvZGU+IGlzIHRyZWF0ZWQgYXMgYSB1bml0IAorYW5kIG1heSBiZSBjb21iaW5lZCBhcyBkZXNjcmliZWQgaW4gdGhpcyBsaXN0LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+QT88L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyA8Y29kZT5BPC9jb2RlPiBvciBub3RoaW5nOyBvcHRpb25hbCA8Y29kZT5BPC9jb2RlPi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPkEgQjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIDxjb2RlPkE8L2NvZGU+IGZvbGxvd2VkIGJ5IDxjb2RlPkI8L2NvZGU+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+QSB8IEI8L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyA8Y29kZT5BPC9jb2RlPiBvciA8Y29kZT5CPC9jb2RlPiBidXQgbm90IGJvdGguPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5BIC0gQjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBtYXRjaGVzIDxjb2RlPkE8L2NvZGU+IGJ1dCBkb2VzIG5vdCBtYXRjaAorPGNvZGU+QjwvY29kZT4uCis8L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPkErPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgb25lIG9yIG1vcmUgb2NjdXJyZW5jZXMgb2YgPGNvZGU+QTwvY29kZT4uPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5BKjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIHplcm8gb3IgbW9yZSBvY2N1cnJlbmNlcyBvZiA8Y29kZT5BPC9jb2RlPi48L3A+PC9kZWY+Cis8L2dpdGVtPgorCis8L2dsaXN0PgorT3RoZXIgbm90YXRpb25zIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb25zIGFyZToKKzxnbGlzdD4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT4vKiAuLi4gKi88L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+Y29tbWVudC48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPlsgd2ZjOiAuLi4gXTwvY29kZT48L2xhYmVsPgorPGRlZj48cD53ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludDsgdGhpcyBpZGVudGlmaWVzIGJ5IG5hbWUgYSAKK2NvbnN0cmFpbnQgb24gCis8dGVybXJlZiBkZWY9ImR0LXdlbGxmb3JtZWQiPndlbGwtZm9ybWVkPC90ZXJtcmVmPiBkb2N1bWVudHMKK2Fzc29jaWF0ZWQgd2l0aCBhIHByb2R1Y3Rpb24uPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5bIHZjOiAuLi4gXTwvY29kZT48L2xhYmVsPgorPGRlZj48cD52YWxpZGl0eSBjb25zdHJhaW50OyB0aGlzIGlkZW50aWZpZXMgYnkgbmFtZSBhIGNvbnN0cmFpbnQgb24KKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkPC90ZXJtcmVmPiBkb2N1bWVudHMgYXNzb2NpYXRlZCB3aXRoCithIHByb2R1Y3Rpb24uPC9wPjwvZGVmPgorPC9naXRlbT4KKzwvZ2xpc3Q+Cis8L3A+PC9kaXYxPgorCis8L2JvZHk+Cis8YmFjaz4KKzwhLS0gJlNHTUw7IC0tPgorIAorCis8IS0tICZCaWJsaW87IC0tPgorPGRpdjEgaWQ9InNlYy1iaWJsaW9ncmFwaHkiPgorCis8aGVhZD5SZWZlcmVuY2VzPC9oZWFkPgorPGRpdjIgaWQ9InNlYy1leGlzdGluZy1zdGRzIj4KKzxoZWFkPk5vcm1hdGl2ZSBSZWZlcmVuY2VzPC9oZWFkPgorCis8Ymxpc3Q+Cis8YmlibCBpZD0iSUFOQSIga2V5PSJJQU5BIj4KKyhJbnRlcm5ldCBBc3NpZ25lZCBOdW1iZXJzIEF1dGhvcml0eSkgPGVtcGg+T2ZmaWNpYWwgTmFtZXMgZm9yIAorQ2hhcmFjdGVyIFNldHM8L2VtcGg+LAorZWQuIEtlbGQgU2ltb25zZW4gZXQgYWwuCitTZWUgPGxvYyBocmVmPSJmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9pYW5hL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzIj5mdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9pYW5hL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzPC9sb2M+LgorPC9iaWJsPgorCis8YmlibCBpZD0iUkZDMTc2NiIga2V5PSJJRVRGIFJGQyAxNzY2Ij4KK0lFVEYgKEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2UpLgorPGVtcGg+UkZDIDE3NjY6ICBUYWdzIGZvciB0aGUgSWRlbnRpZmljYXRpb24gb2YgTGFuZ3VhZ2VzPC9lbXBoPiwKK2VkLiBILiBBbHZlc3RyYW5kLgorMTk5NS4KKzwvYmlibD4KKworPGJpYmwgaWQ9IklTTzYzOSIga2V5PSJJU08gNjM5Ij4KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTyA2Mzk6MTk4OCAoRSkuCitDb2RlIGZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgbmFtZXMgb2YgbGFuZ3VhZ2VzLjwvZW1waD4KK1tHZW5ldmFdOiAgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yCitTdGFuZGFyZGl6YXRpb24sIDE5ODguPC9iaWJsPgorCis8YmlibCBpZD0iSVNPMzE2NiIga2V5PSJJU08gMzE2NiI+CisoSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbikuCis8ZW1waD5JU08gMzE2Ni0xOjE5OTcgKEUpLgorQ29kZXMgZm9yIHRoZSByZXByZXNlbnRhdGlvbiBvZiBuYW1lcyBvZiBjb3VudHJpZXMgYW5kIHRoZWlyIHN1YmRpdmlzaW9ucyAKKyZtZGFzaDsgUGFydCAxOiBDb3VudHJ5IGNvZGVzPC9lbXBoPgorW0dlbmV2YV06ICBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IKK1N0YW5kYXJkaXphdGlvbiwgMTk5Ny48L2JpYmw+CisKKzxiaWJsIGlkPSJJU08xMDY0NiIga2V5PSJJU08vSUVDIDEwNjQ2Ij5JU08KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTy9JRUMgMTA2NDYtMTk5MyAoRSkuICBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5ICZtZGFzaDsgVW5pdmVyc2FsCitNdWx0aXBsZS1PY3RldCBDb2RlZCBDaGFyYWN0ZXIgU2V0IChVQ1MpICZtZGFzaDsgUGFydCAxOgorQXJjaGl0ZWN0dXJlIGFuZCBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUuPC9lbXBoPgorW0dlbmV2YV06ICBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IKK1N0YW5kYXJkaXphdGlvbiwgMTk5MyAocGx1cyBhbWVuZG1lbnRzIEFNIDEgdGhyb3VnaCBBTSA3KS4KKzwvYmlibD4KKworPGJpYmwgaWQ9IlVuaWNvZGUiIGtleT0iVW5pY29kZSI+VGhlIFVuaWNvZGUgQ29uc29ydGl1bS4KKzxlbXBoPlRoZSBVbmljb2RlIFN0YW5kYXJkLCBWZXJzaW9uIDIuMC48L2VtcGg+CitSZWFkaW5nLCBNYXNzLjogIEFkZGlzb24tV2VzbGV5IERldmVsb3BlcnMgUHJlc3MsIDE5OTYuPC9iaWJsPgorCis8L2JsaXN0PgorCis8L2RpdjI+CisKKzxkaXYyPjxoZWFkPk90aGVyIFJlZmVyZW5jZXM8L2hlYWQ+IAorCis8Ymxpc3Q+CisKKzxiaWJsIGlkPSJBaG8iIGtleT0iQWhvL1VsbG1hbiI+QWhvLCBBbGZyZWQgVi4sIAorUmF2aSBTZXRoaSwgYW5kIEplZmZyZXkgRC4gVWxsbWFuLgorPGVtcGg+Q29tcGlsZXJzOiAgUHJpbmNpcGxlcywgVGVjaG5pcXVlcywgYW5kIFRvb2xzPC9lbXBoPi4KK1JlYWRpbmc6ICBBZGRpc29uLVdlc2xleSwgMTk4NiwgcnB0LiBjb3JyLiAxOTg4LjwvYmlibD4KKworPGJpYmwgaWQ9IkJlcm5lcnMtTGVlIiB4bWwtbGluaz0ic2ltcGxlIiBrZXk9IkJlcm5lcnMtTGVlIGV0IGFsLiI+CitCZXJuZXJzLUxlZSwgVC4sIFIuIEZpZWxkaW5nLCBhbmQgTC4gTWFzaW50ZXIuCis8ZW1waD5Vbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIChVUkkpOiAgR2VuZXJpYyBTeW50YXggYW5kCitTZW1hbnRpY3M8L2VtcGg+LgorMTk5Ny4KKyhXb3JrIGluIHByb2dyZXNzOyBzZWUgdXBkYXRlcyB0byBSRkMxNzM4Lik8L2JpYmw+CisKKzxiaWJsIGlkPSJBQksiIGtleT0iQnL8Z2dlbWFubi1LbGVpbiI+QnL8Z2dlbWFubi1LbGVpbiwgQW5uZS4KKzxlbXBoPlJlZ3VsYXIgRXhwcmVzc2lvbnMgaW50byBGaW5pdGUgQXV0b21hdGE8L2VtcGg+LgorRXh0ZW5kZWQgYWJzdHJhY3QgaW4gSS4gU2ltb24sIEhyc2cuLCBMQVRJTiAxOTkyLCAKK1MuIDk3LTk4LiBTcHJpbmdlci1WZXJsYWcsIEJlcmxpbiAxOTkyLiAKK0Z1bGwgVmVyc2lvbiBpbiBUaGVvcmV0aWNhbCBDb21wdXRlciBTY2llbmNlIDEyMDogMTk3LTIxMywgMTk5My4KKworPC9iaWJsPgorCis8YmlibCBpZD0iQUJLRFciIGtleT0iQnL8Z2dlbWFubi1LbGVpbiBhbmQgV29vZCI+QnL8Z2dlbWFubi1LbGVpbiwgQW5uZSwKK2FuZCBEZXJpY2sgV29vZC4KKzxlbXBoPkRldGVybWluaXN0aWMgUmVndWxhciBMYW5ndWFnZXM8L2VtcGg+LgorVW5pdmVyc2l05HQgRnJlaWJ1cmcsIEluc3RpdHV0IGb8ciBJbmZvcm1hdGlrLAorQmVyaWNodCAzOCwgT2t0b2JlciAxOTkxLgorPC9iaWJsPgorCis8YmlibCBpZD0iQ2xhcmsiIGtleT0iQ2xhcmsiPkphbWVzIENsYXJrLgorQ29tcGFyaXNvbiBvZiBTR01MIGFuZCBYTUwuIFNlZQorPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9OT1RFLXNnbWwteG1sLTk3MTIxNSI+aHR0cDovL3d3dy53My5vcmcvVFIvTk9URS1zZ21sLXhtbC05NzEyMTU8L2xvYz4uCis8L2JpYmw+Cis8YmlibCBpZD0iUkZDMTczOCIgeG1sLWxpbms9InNpbXBsZSIga2V5PSJJRVRGIFJGQzE3MzgiPgorSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSkuCis8ZW1waD5SRkMgMTczODogIFVuaWZvcm0gUmVzb3VyY2UgTG9jYXRvcnMgKFVSTCk8L2VtcGg+LCAKK2VkLiBULiBCZXJuZXJzLUxlZSwgTC4gTWFzaW50ZXIsIE0uIE1jQ2FoaWxsLgorMTk5NC4KKzwvYmlibD4KKworPGJpYmwgaWQ9IlJGQzE4MDgiIHhtbC1saW5rPSJzaW1wbGUiIGtleT0iSUVURiBSRkMxODA4Ij4KK0lFVEYgKEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2UpLgorPGVtcGg+UkZDIDE4MDg6ICBSZWxhdGl2ZSBVbmlmb3JtIFJlc291cmNlIExvY2F0b3JzPC9lbXBoPiwgCitlZC4gUi4gRmllbGRpbmcuCisxOTk1LgorPC9iaWJsPgorCis8YmlibCBpZD0iUkZDMjE0MSIgeG1sLWxpbms9InNpbXBsZSIga2V5PSJJRVRGIFJGQzIxNDEiPgorSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSkuCis8ZW1waD5SRkMgMjE0MTogIFVSTiBTeW50YXg8L2VtcGg+LCAKK2VkLiBSLiBNb2F0cy4KKzE5OTcuCis8L2JpYmw+CisKKzxiaWJsIGlkPSJJU084ODc5IiBrZXk9IklTTyA4ODc5Ij5JU08KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTyA4ODc5OjE5ODYoRSkuICBJbmZvcm1hdGlvbiBwcm9jZXNzaW5nICZtZGFzaDsgVGV4dCBhbmQgT2ZmaWNlCitTeXN0ZW1zICZtZGFzaDsgU3RhbmRhcmQgR2VuZXJhbGl6ZWQgTWFya3VwIExhbmd1YWdlIChTR01MKS48L2VtcGg+ICBGaXJzdAorZWRpdGlvbiAmbWRhc2g7IDE5ODYtMTAtMTUuICBbR2VuZXZhXTogIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvcgorU3RhbmRhcmRpemF0aW9uLCAxOTg2LgorPC9iaWJsPgorCisKKzxiaWJsIGlkPSJJU08xMDc0NCIga2V5PSJJU08vSUVDIDEwNzQ0Ij5JU08KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTy9JRUMgMTA3NDQtMTk5MiAoRSkuICBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5ICZtZGFzaDsKK0h5cGVybWVkaWEvVGltZS1iYXNlZCBTdHJ1Y3R1cmluZyBMYW5ndWFnZSAoSHlUaW1lKS4KKzwvZW1waD4KK1tHZW5ldmFdOiAgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yCitTdGFuZGFyZGl6YXRpb24sIDE5OTIuCis8ZW1waD5FeHRlbmRlZCBGYWNpbGl0aWVzIEFubmV4ZS48L2VtcGg+CitbR2VuZXZhXTogIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvcgorU3RhbmRhcmRpemF0aW9uLCAxOTk2LiAKKzwvYmlibD4KKworCisKKzwvYmxpc3Q+Cis8L2RpdjI+Cis8L2RpdjE+Cis8ZGl2MSBpZD0iQ2hhckNsYXNzZXMiPgorPGhlYWQ+Q2hhcmFjdGVyIENsYXNzZXM8L2hlYWQ+Cis8cD5Gb2xsb3dpbmcgdGhlIGNoYXJhY3RlcmlzdGljcyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIHN0YW5kYXJkLAorY2hhcmFjdGVycyBhcmUgY2xhc3NlZCBhcyBiYXNlIGNoYXJhY3RlcnMgKGFtb25nIG90aGVycywgdGhlc2UKK2NvbnRhaW4gdGhlIGFscGhhYmV0aWMgY2hhcmFjdGVycyBvZiB0aGUgTGF0aW4gYWxwaGFiZXQsIHdpdGhvdXQKK2RpYWNyaXRpY3MpLCBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQgY29tYmluaW5nIGNoYXJhY3RlcnMgKGFtb25nCitvdGhlcnMsIHRoaXMgY2xhc3MgY29udGFpbnMgbW9zdCBkaWFjcml0aWNzKTsgdGhlc2UgY2xhc3NlcyBjb21iaW5lCit0byBmb3JtIHRoZSBjbGFzcyBvZiBsZXR0ZXJzLiAgRGlnaXRzIGFuZCBleHRlbmRlcnMgYXJlCithbHNvIGRpc3Rpbmd1aXNoZWQuCis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9IkNIQVJBQ1RFUlMiPgorPGhlYWQ+Q2hhcmFjdGVyczwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mz0iMyIgcGN3ND0iMTUiPgorPHByb2QgaWQ9Ik5ULUxldHRlciI+PGxocz5MZXR0ZXI8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtQmFzZUNoYXIiPkJhc2VDaGFyPC9udD4gCit8IDxudCBkZWY9Ik5ULUlkZW9ncmFwaGljIj5JZGVvZ3JhcGhpYzwvbnQ+PC9yaHM+IDwvcHJvZD4KKzxwcm9kIGlkPSJOVC1CYXNlQ2hhciI+PGxocz5CYXNlQ2hhcjwvbGhzPgorPHJocz5bI3gwMDQxLSN4MDA1QV0KK3wmbmJzcDtbI3gwMDYxLSN4MDA3QV0KK3wmbmJzcDtbI3gwMEMwLSN4MDBENl0KK3wmbmJzcDtbI3gwMEQ4LSN4MDBGNl0KK3wmbmJzcDtbI3gwMEY4LSN4MDBGRl0KK3wmbmJzcDtbI3gwMTAwLSN4MDEzMV0KK3wmbmJzcDtbI3gwMTM0LSN4MDEzRV0KK3wmbmJzcDtbI3gwMTQxLSN4MDE0OF0KK3wmbmJzcDtbI3gwMTRBLSN4MDE3RV0KK3wmbmJzcDtbI3gwMTgwLSN4MDFDM10KK3wmbmJzcDtbI3gwMUNELSN4MDFGMF0KK3wmbmJzcDtbI3gwMUY0LSN4MDFGNV0KK3wmbmJzcDtbI3gwMUZBLSN4MDIxN10KK3wmbmJzcDtbI3gwMjUwLSN4MDJBOF0KK3wmbmJzcDtbI3gwMkJCLSN4MDJDMV0KK3wmbmJzcDsjeDAzODYKK3wmbmJzcDtbI3gwMzg4LSN4MDM4QV0KK3wmbmJzcDsjeDAzOEMKK3wmbmJzcDtbI3gwMzhFLSN4MDNBMV0KK3wmbmJzcDtbI3gwM0EzLSN4MDNDRV0KK3wmbmJzcDtbI3gwM0QwLSN4MDNENl0KK3wmbmJzcDsjeDAzREEKK3wmbmJzcDsjeDAzREMKK3wmbmJzcDsjeDAzREUKK3wmbmJzcDsjeDAzRTAKK3wmbmJzcDtbI3gwM0UyLSN4MDNGM10KK3wmbmJzcDtbI3gwNDAxLSN4MDQwQ10KK3wmbmJzcDtbI3gwNDBFLSN4MDQ0Rl0KK3wmbmJzcDtbI3gwNDUxLSN4MDQ1Q10KK3wmbmJzcDtbI3gwNDVFLSN4MDQ4MV0KK3wmbmJzcDtbI3gwNDkwLSN4MDRDNF0KK3wmbmJzcDtbI3gwNEM3LSN4MDRDOF0KK3wmbmJzcDtbI3gwNENCLSN4MDRDQ10KK3wmbmJzcDtbI3gwNEQwLSN4MDRFQl0KK3wmbmJzcDtbI3gwNEVFLSN4MDRGNV0KK3wmbmJzcDtbI3gwNEY4LSN4MDRGOV0KK3wmbmJzcDtbI3gwNTMxLSN4MDU1Nl0KK3wmbmJzcDsjeDA1NTkKK3wmbmJzcDtbI3gwNTYxLSN4MDU4Nl0KK3wmbmJzcDtbI3gwNUQwLSN4MDVFQV0KK3wmbmJzcDtbI3gwNUYwLSN4MDVGMl0KK3wmbmJzcDtbI3gwNjIxLSN4MDYzQV0KK3wmbmJzcDtbI3gwNjQxLSN4MDY0QV0KK3wmbmJzcDtbI3gwNjcxLSN4MDZCN10KK3wmbmJzcDtbI3gwNkJBLSN4MDZCRV0KK3wmbmJzcDtbI3gwNkMwLSN4MDZDRV0KK3wmbmJzcDtbI3gwNkQwLSN4MDZEM10KK3wmbmJzcDsjeDA2RDUKK3wmbmJzcDtbI3gwNkU1LSN4MDZFNl0KK3wmbmJzcDtbI3gwOTA1LSN4MDkzOV0KK3wmbmJzcDsjeDA5M0QKK3wmbmJzcDtbI3gwOTU4LSN4MDk2MV0KK3wmbmJzcDtbI3gwOTg1LSN4MDk4Q10KK3wmbmJzcDtbI3gwOThGLSN4MDk5MF0KK3wmbmJzcDtbI3gwOTkzLSN4MDlBOF0KK3wmbmJzcDtbI3gwOUFBLSN4MDlCMF0KK3wmbmJzcDsjeDA5QjIKK3wmbmJzcDtbI3gwOUI2LSN4MDlCOV0KK3wmbmJzcDtbI3gwOURDLSN4MDlERF0KK3wmbmJzcDtbI3gwOURGLSN4MDlFMV0KK3wmbmJzcDtbI3gwOUYwLSN4MDlGMV0KK3wmbmJzcDtbI3gwQTA1LSN4MEEwQV0KK3wmbmJzcDtbI3gwQTBGLSN4MEExMF0KK3wmbmJzcDtbI3gwQTEzLSN4MEEyOF0KK3wmbmJzcDtbI3gwQTJBLSN4MEEzMF0KK3wmbmJzcDtbI3gwQTMyLSN4MEEzM10KK3wmbmJzcDtbI3gwQTM1LSN4MEEzNl0KK3wmbmJzcDtbI3gwQTM4LSN4MEEzOV0KK3wmbmJzcDtbI3gwQTU5LSN4MEE1Q10KK3wmbmJzcDsjeDBBNUUKK3wmbmJzcDtbI3gwQTcyLSN4MEE3NF0KK3wmbmJzcDtbI3gwQTg1LSN4MEE4Ql0KK3wmbmJzcDsjeDBBOEQKK3wmbmJzcDtbI3gwQThGLSN4MEE5MV0KK3wmbmJzcDtbI3gwQTkzLSN4MEFBOF0KK3wmbmJzcDtbI3gwQUFBLSN4MEFCMF0KK3wmbmJzcDtbI3gwQUIyLSN4MEFCM10KK3wmbmJzcDtbI3gwQUI1LSN4MEFCOV0KK3wmbmJzcDsjeDBBQkQKK3wmbmJzcDsjeDBBRTAKK3wmbmJzcDtbI3gwQjA1LSN4MEIwQ10KK3wmbmJzcDtbI3gwQjBGLSN4MEIxMF0KK3wmbmJzcDtbI3gwQjEzLSN4MEIyOF0KK3wmbmJzcDtbI3gwQjJBLSN4MEIzMF0KK3wmbmJzcDtbI3gwQjMyLSN4MEIzM10KK3wmbmJzcDtbI3gwQjM2LSN4MEIzOV0KK3wmbmJzcDsjeDBCM0QKK3wmbmJzcDtbI3gwQjVDLSN4MEI1RF0KK3wmbmJzcDtbI3gwQjVGLSN4MEI2MV0KK3wmbmJzcDtbI3gwQjg1LSN4MEI4QV0KK3wmbmJzcDtbI3gwQjhFLSN4MEI5MF0KK3wmbmJzcDtbI3gwQjkyLSN4MEI5NV0KK3wmbmJzcDtbI3gwQjk5LSN4MEI5QV0KK3wmbmJzcDsjeDBCOUMKK3wmbmJzcDtbI3gwQjlFLSN4MEI5Rl0KK3wmbmJzcDtbI3gwQkEzLSN4MEJBNF0KK3wmbmJzcDtbI3gwQkE4LSN4MEJBQV0KK3wmbmJzcDtbI3gwQkFFLSN4MEJCNV0KK3wmbmJzcDtbI3gwQkI3LSN4MEJCOV0KK3wmbmJzcDtbI3gwQzA1LSN4MEMwQ10KK3wmbmJzcDtbI3gwQzBFLSN4MEMxMF0KK3wmbmJzcDtbI3gwQzEyLSN4MEMyOF0KK3wmbmJzcDtbI3gwQzJBLSN4MEMzM10KK3wmbmJzcDtbI3gwQzM1LSN4MEMzOV0KK3wmbmJzcDtbI3gwQzYwLSN4MEM2MV0KK3wmbmJzcDtbI3gwQzg1LSN4MEM4Q10KK3wmbmJzcDtbI3gwQzhFLSN4MEM5MF0KK3wmbmJzcDtbI3gwQzkyLSN4MENBOF0KK3wmbmJzcDtbI3gwQ0FBLSN4MENCM10KK3wmbmJzcDtbI3gwQ0I1LSN4MENCOV0KK3wmbmJzcDsjeDBDREUKK3wmbmJzcDtbI3gwQ0UwLSN4MENFMV0KK3wmbmJzcDtbI3gwRDA1LSN4MEQwQ10KK3wmbmJzcDtbI3gwRDBFLSN4MEQxMF0KK3wmbmJzcDtbI3gwRDEyLSN4MEQyOF0KK3wmbmJzcDtbI3gwRDJBLSN4MEQzOV0KK3wmbmJzcDtbI3gwRDYwLSN4MEQ2MV0KK3wmbmJzcDtbI3gwRTAxLSN4MEUyRV0KK3wmbmJzcDsjeDBFMzAKK3wmbmJzcDtbI3gwRTMyLSN4MEUzM10KK3wmbmJzcDtbI3gwRTQwLSN4MEU0NV0KK3wmbmJzcDtbI3gwRTgxLSN4MEU4Ml0KK3wmbmJzcDsjeDBFODQKK3wmbmJzcDtbI3gwRTg3LSN4MEU4OF0KK3wmbmJzcDsjeDBFOEEKK3wmbmJzcDsjeDBFOEQKK3wmbmJzcDtbI3gwRTk0LSN4MEU5N10KK3wmbmJzcDtbI3gwRTk5LSN4MEU5Rl0KK3wmbmJzcDtbI3gwRUExLSN4MEVBM10KK3wmbmJzcDsjeDBFQTUKK3wmbmJzcDsjeDBFQTcKK3wmbmJzcDtbI3gwRUFBLSN4MEVBQl0KK3wmbmJzcDtbI3gwRUFELSN4MEVBRV0KK3wmbmJzcDsjeDBFQjAKK3wmbmJzcDtbI3gwRUIyLSN4MEVCM10KK3wmbmJzcDsjeDBFQkQKK3wmbmJzcDtbI3gwRUMwLSN4MEVDNF0KK3wmbmJzcDtbI3gwRjQwLSN4MEY0N10KK3wmbmJzcDtbI3gwRjQ5LSN4MEY2OV0KK3wmbmJzcDtbI3gxMEEwLSN4MTBDNV0KK3wmbmJzcDtbI3gxMEQwLSN4MTBGNl0KK3wmbmJzcDsjeDExMDAKK3wmbmJzcDtbI3gxMTAyLSN4MTEwM10KK3wmbmJzcDtbI3gxMTA1LSN4MTEwN10KK3wmbmJzcDsjeDExMDkKK3wmbmJzcDtbI3gxMTBCLSN4MTEwQ10KK3wmbmJzcDtbI3gxMTBFLSN4MTExMl0KK3wmbmJzcDsjeDExM0MKK3wmbmJzcDsjeDExM0UKK3wmbmJzcDsjeDExNDAKK3wmbmJzcDsjeDExNEMKK3wmbmJzcDsjeDExNEUKK3wmbmJzcDsjeDExNTAKK3wmbmJzcDtbI3gxMTU0LSN4MTE1NV0KK3wmbmJzcDsjeDExNTkKK3wmbmJzcDtbI3gxMTVGLSN4MTE2MV0KK3wmbmJzcDsjeDExNjMKK3wmbmJzcDsjeDExNjUKK3wmbmJzcDsjeDExNjcKK3wmbmJzcDsjeDExNjkKK3wmbmJzcDtbI3gxMTZELSN4MTE2RV0KK3wmbmJzcDtbI3gxMTcyLSN4MTE3M10KK3wmbmJzcDsjeDExNzUKK3wmbmJzcDsjeDExOUUKK3wmbmJzcDsjeDExQTgKK3wmbmJzcDsjeDExQUIKK3wmbmJzcDtbI3gxMUFFLSN4MTFBRl0KK3wmbmJzcDtbI3gxMUI3LSN4MTFCOF0KK3wmbmJzcDsjeDExQkEKK3wmbmJzcDtbI3gxMUJDLSN4MTFDMl0KK3wmbmJzcDsjeDExRUIKK3wmbmJzcDsjeDExRjAKK3wmbmJzcDsjeDExRjkKK3wmbmJzcDtbI3gxRTAwLSN4MUU5Ql0KK3wmbmJzcDtbI3gxRUEwLSN4MUVGOV0KK3wmbmJzcDtbI3gxRjAwLSN4MUYxNV0KK3wmbmJzcDtbI3gxRjE4LSN4MUYxRF0KK3wmbmJzcDtbI3gxRjIwLSN4MUY0NV0KK3wmbmJzcDtbI3gxRjQ4LSN4MUY0RF0KK3wmbmJzcDtbI3gxRjUwLSN4MUY1N10KK3wmbmJzcDsjeDFGNTkKK3wmbmJzcDsjeDFGNUIKK3wmbmJzcDsjeDFGNUQKK3wmbmJzcDtbI3gxRjVGLSN4MUY3RF0KK3wmbmJzcDtbI3gxRjgwLSN4MUZCNF0KK3wmbmJzcDtbI3gxRkI2LSN4MUZCQ10KK3wmbmJzcDsjeDFGQkUKK3wmbmJzcDtbI3gxRkMyLSN4MUZDNF0KK3wmbmJzcDtbI3gxRkM2LSN4MUZDQ10KK3wmbmJzcDtbI3gxRkQwLSN4MUZEM10KK3wmbmJzcDtbI3gxRkQ2LSN4MUZEQl0KK3wmbmJzcDtbI3gxRkUwLSN4MUZFQ10KK3wmbmJzcDtbI3gxRkYyLSN4MUZGNF0KK3wmbmJzcDtbI3gxRkY2LSN4MUZGQ10KK3wmbmJzcDsjeDIxMjYKK3wmbmJzcDtbI3gyMTJBLSN4MjEyQl0KK3wmbmJzcDsjeDIxMkUKK3wmbmJzcDtbI3gyMTgwLSN4MjE4Ml0KK3wmbmJzcDtbI3gzMDQxLSN4MzA5NF0KK3wmbmJzcDtbI3gzMEExLSN4MzBGQV0KK3wmbmJzcDtbI3gzMTA1LSN4MzEyQ10KK3wmbmJzcDtbI3hBQzAwLSN4RDdBM10KKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1JZGVvZ3JhcGhpYyI+PGxocz5JZGVvZ3JhcGhpYzwvbGhzPgorPHJocz5bI3g0RTAwLSN4OUZBNV0KK3wmbmJzcDsjeDMwMDcKK3wmbmJzcDtbI3gzMDIxLSN4MzAyOV0KKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1Db21iaW5pbmdDaGFyIj48bGhzPkNvbWJpbmluZ0NoYXI8L2xocz4KKzxyaHM+WyN4MDMwMC0jeDAzNDVdCit8Jm5ic3A7WyN4MDM2MC0jeDAzNjFdCit8Jm5ic3A7WyN4MDQ4My0jeDA0ODZdCit8Jm5ic3A7WyN4MDU5MS0jeDA1QTFdCit8Jm5ic3A7WyN4MDVBMy0jeDA1QjldCit8Jm5ic3A7WyN4MDVCQi0jeDA1QkRdCit8Jm5ic3A7I3gwNUJGCit8Jm5ic3A7WyN4MDVDMS0jeDA1QzJdCit8Jm5ic3A7I3gwNUM0Cit8Jm5ic3A7WyN4MDY0Qi0jeDA2NTJdCit8Jm5ic3A7I3gwNjcwCit8Jm5ic3A7WyN4MDZENi0jeDA2RENdCit8Jm5ic3A7WyN4MDZERC0jeDA2REZdCit8Jm5ic3A7WyN4MDZFMC0jeDA2RTRdCit8Jm5ic3A7WyN4MDZFNy0jeDA2RThdCit8Jm5ic3A7WyN4MDZFQS0jeDA2RURdCit8Jm5ic3A7WyN4MDkwMS0jeDA5MDNdCit8Jm5ic3A7I3gwOTNDCit8Jm5ic3A7WyN4MDkzRS0jeDA5NENdCit8Jm5ic3A7I3gwOTRECit8Jm5ic3A7WyN4MDk1MS0jeDA5NTRdCit8Jm5ic3A7WyN4MDk2Mi0jeDA5NjNdCit8Jm5ic3A7WyN4MDk4MS0jeDA5ODNdCit8Jm5ic3A7I3gwOUJDCit8Jm5ic3A7I3gwOUJFCit8Jm5ic3A7I3gwOUJGCit8Jm5ic3A7WyN4MDlDMC0jeDA5QzRdCit8Jm5ic3A7WyN4MDlDNy0jeDA5QzhdCit8Jm5ic3A7WyN4MDlDQi0jeDA5Q0RdCit8Jm5ic3A7I3gwOUQ3Cit8Jm5ic3A7WyN4MDlFMi0jeDA5RTNdCit8Jm5ic3A7I3gwQTAyCit8Jm5ic3A7I3gwQTNDCit8Jm5ic3A7I3gwQTNFCit8Jm5ic3A7I3gwQTNGCit8Jm5ic3A7WyN4MEE0MC0jeDBBNDJdCit8Jm5ic3A7WyN4MEE0Ny0jeDBBNDhdCit8Jm5ic3A7WyN4MEE0Qi0jeDBBNERdCit8Jm5ic3A7WyN4MEE3MC0jeDBBNzFdCit8Jm5ic3A7WyN4MEE4MS0jeDBBODNdCit8Jm5ic3A7I3gwQUJDCit8Jm5ic3A7WyN4MEFCRS0jeDBBQzVdCit8Jm5ic3A7WyN4MEFDNy0jeDBBQzldCit8Jm5ic3A7WyN4MEFDQi0jeDBBQ0RdCit8Jm5ic3A7WyN4MEIwMS0jeDBCMDNdCit8Jm5ic3A7I3gwQjNDCit8Jm5ic3A7WyN4MEIzRS0jeDBCNDNdCit8Jm5ic3A7WyN4MEI0Ny0jeDBCNDhdCit8Jm5ic3A7WyN4MEI0Qi0jeDBCNERdCit8Jm5ic3A7WyN4MEI1Ni0jeDBCNTddCit8Jm5ic3A7WyN4MEI4Mi0jeDBCODNdCit8Jm5ic3A7WyN4MEJCRS0jeDBCQzJdCit8Jm5ic3A7WyN4MEJDNi0jeDBCQzhdCit8Jm5ic3A7WyN4MEJDQS0jeDBCQ0RdCit8Jm5ic3A7I3gwQkQ3Cit8Jm5ic3A7WyN4MEMwMS0jeDBDMDNdCit8Jm5ic3A7WyN4MEMzRS0jeDBDNDRdCit8Jm5ic3A7WyN4MEM0Ni0jeDBDNDhdCit8Jm5ic3A7WyN4MEM0QS0jeDBDNERdCit8Jm5ic3A7WyN4MEM1NS0jeDBDNTZdCit8Jm5ic3A7WyN4MEM4Mi0jeDBDODNdCit8Jm5ic3A7WyN4MENCRS0jeDBDQzRdCit8Jm5ic3A7WyN4MENDNi0jeDBDQzhdCit8Jm5ic3A7WyN4MENDQS0jeDBDQ0RdCit8Jm5ic3A7WyN4MENENS0jeDBDRDZdCit8Jm5ic3A7WyN4MEQwMi0jeDBEMDNdCit8Jm5ic3A7WyN4MEQzRS0jeDBENDNdCit8Jm5ic3A7WyN4MEQ0Ni0jeDBENDhdCit8Jm5ic3A7WyN4MEQ0QS0jeDBENERdCit8Jm5ic3A7I3gwRDU3Cit8Jm5ic3A7I3gwRTMxCit8Jm5ic3A7WyN4MEUzNC0jeDBFM0FdCit8Jm5ic3A7WyN4MEU0Ny0jeDBFNEVdCit8Jm5ic3A7I3gwRUIxCit8Jm5ic3A7WyN4MEVCNC0jeDBFQjldCit8Jm5ic3A7WyN4MEVCQi0jeDBFQkNdCit8Jm5ic3A7WyN4MEVDOC0jeDBFQ0RdCit8Jm5ic3A7WyN4MEYxOC0jeDBGMTldCit8Jm5ic3A7I3gwRjM1Cit8Jm5ic3A7I3gwRjM3Cit8Jm5ic3A7I3gwRjM5Cit8Jm5ic3A7I3gwRjNFCit8Jm5ic3A7I3gwRjNGCit8Jm5ic3A7WyN4MEY3MS0jeDBGODRdCit8Jm5ic3A7WyN4MEY4Ni0jeDBGOEJdCit8Jm5ic3A7WyN4MEY5MC0jeDBGOTVdCit8Jm5ic3A7I3gwRjk3Cit8Jm5ic3A7WyN4MEY5OS0jeDBGQURdCit8Jm5ic3A7WyN4MEZCMS0jeDBGQjddCit8Jm5ic3A7I3gwRkI5Cit8Jm5ic3A7WyN4MjBEMC0jeDIwRENdCit8Jm5ic3A7I3gyMEUxCit8Jm5ic3A7WyN4MzAyQS0jeDMwMkZdCit8Jm5ic3A7I3gzMDk5Cit8Jm5ic3A7I3gzMDlBCis8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0iTlQtRGlnaXQiPjxsaHM+RGlnaXQ8L2xocz4KKzxyaHM+WyN4MDAzMC0jeDAwMzldCit8Jm5ic3A7WyN4MDY2MC0jeDA2NjldCit8Jm5ic3A7WyN4MDZGMC0jeDA2RjldCit8Jm5ic3A7WyN4MDk2Ni0jeDA5NkZdCit8Jm5ic3A7WyN4MDlFNi0jeDA5RUZdCit8Jm5ic3A7WyN4MEE2Ni0jeDBBNkZdCit8Jm5ic3A7WyN4MEFFNi0jeDBBRUZdCit8Jm5ic3A7WyN4MEI2Ni0jeDBCNkZdCit8Jm5ic3A7WyN4MEJFNy0jeDBCRUZdCit8Jm5ic3A7WyN4MEM2Ni0jeDBDNkZdCit8Jm5ic3A7WyN4MENFNi0jeDBDRUZdCit8Jm5ic3A7WyN4MEQ2Ni0jeDBENkZdCit8Jm5ic3A7WyN4MEU1MC0jeDBFNTldCit8Jm5ic3A7WyN4MEVEMC0jeDBFRDldCit8Jm5ic3A7WyN4MEYyMC0jeDBGMjldCis8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0iTlQtRXh0ZW5kZXIiPjxsaHM+RXh0ZW5kZXI8L2xocz4KKzxyaHM+I3gwMEI3Cit8Jm5ic3A7I3gwMkQwCit8Jm5ic3A7I3gwMkQxCit8Jm5ic3A7I3gwMzg3Cit8Jm5ic3A7I3gwNjQwCit8Jm5ic3A7I3gwRTQ2Cit8Jm5ic3A7I3gwRUM2Cit8Jm5ic3A7I3gzMDA1Cit8Jm5ic3A7WyN4MzAzMS0jeDMwMzVdCit8Jm5ic3A7WyN4MzA5RC0jeDMwOUVdCit8Jm5ic3A7WyN4MzBGQy0jeDMwRkVdCis8L3Jocz48L3Byb2Q+CisKKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvcD4KKzxwPlRoZSBjaGFyYWN0ZXIgY2xhc3NlcyBkZWZpbmVkIGhlcmUgY2FuIGJlIGRlcml2ZWQgZnJvbSB0aGUKK1VuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlIGFzIGZvbGxvd3M6Cis8dWxpc3Q+Cis8aXRlbT4KKzxwPk5hbWUgc3RhcnQgY2hhcmFjdGVycyBtdXN0IGhhdmUgb25lIG9mIHRoZSBjYXRlZ29yaWVzIExsLCBMdSwKK0xvLCBMdCwgTmwuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5OYW1lIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBOYW1lLXN0YXJ0IGNoYXJhY3RlcnMgCittdXN0IGhhdmUgb25lIG9mIHRoZSBjYXRlZ29yaWVzIE1jLCBNZSwgTW4sIExtLCBvciBOZC48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgaW4gdGhlIGNvbXBhdGliaWxpdHkgYXJlYSAoaS5lLiB3aXRoIGNoYXJhY3RlciBjb2RlCitncmVhdGVyIHRoYW4gI3hGOTAwIGFuZCBsZXNzIHRoYW4gI3hGRkZFKSBhcmUgbm90IGFsbG93ZWQgaW4gWE1MCituYW1lcy48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgd2hpY2ggaGF2ZSBhIGZvbnQgb3IgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIChpLmUuIHRob3NlCit3aXRoIGEgImNvbXBhdGliaWxpdHkgZm9ybWF0dGluZyB0YWciIGluIGZpZWxkIDUgb2YgdGhlIGRhdGFiYXNlIC0tCittYXJrZWQgYnkgZmllbGQgNSBiZWdpbm5pbmcgd2l0aCBhICImbHQ7IikgYXJlIG5vdCBhbGxvd2VkLjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+VGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGFyZSB0cmVhdGVkIGFzIG5hbWUtc3RhcnQgY2hhcmFjdGVycworcmF0aGVyIHRoYW4gbmFtZSBjaGFyYWN0ZXJzLCBiZWNhdXNlIHRoZSBwcm9wZXJ0eSBmaWxlIGNsYXNzaWZpZXMKK3RoZW0gYXMgQWxwaGFiZXRpYzogIFsjeDAyQkItI3gwMkMxXSwgI3gwNTU5LCAjeDA2RTUsICN4MDZFNi48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgI3gyMERELSN4MjBFMCBhcmUgZXhjbHVkZWQgKGluIGFjY29yZGFuY2Ugd2l0aCAKK1VuaWNvZGUsIHNlY3Rpb24gNS4xNCkuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5DaGFyYWN0ZXIgI3gwMEI3IGlzIGNsYXNzaWZpZWQgYXMgYW4gZXh0ZW5kZXIsIGJlY2F1c2UgdGhlCitwcm9wZXJ0eSBsaXN0IHNvIGlkZW50aWZpZXMgaXQuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5DaGFyYWN0ZXIgI3gwMzg3IGlzIGFkZGVkIGFzIGEgbmFtZSBjaGFyYWN0ZXIsIGJlY2F1c2UgI3gwMEI3CitpcyBpdHMgY2Fub25pY2FsIGVxdWl2YWxlbnQuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5DaGFyYWN0ZXJzICc6JyBhbmQgJ18nIGFyZSBhbGxvd2VkIGFzIG5hbWUtc3RhcnQgY2hhcmFjdGVycy48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgJy0nIGFuZCAnLicgYXJlIGFsbG93ZWQgYXMgbmFtZSBjaGFyYWN0ZXJzLjwvcD4KKzwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8L2RpdjE+Cis8aW5mb3JtLWRpdjEgaWQ9InNlYy14bWwtYW5kLXNnbWwiPgorPGhlYWQ+WE1MIGFuZCBTR01MPC9oZWFkPgorIAorPHA+WE1MIGlzIGRlc2lnbmVkIHRvIGJlIGEgc3Vic2V0IG9mIFNHTUwsIGluIHRoYXQgZXZlcnkKKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkPC90ZXJtcmVmPiBYTUwgZG9jdW1lbnQgc2hvdWxkIGFsc28gYmUgYQorY29uZm9ybWFudCBTR01MIGRvY3VtZW50LgorRm9yIGEgZGV0YWlsZWQgY29tcGFyaXNvbiBvZiB0aGUgYWRkaXRpb25hbCByZXN0cmljdGlvbnMgdGhhdCBYTUwgcGxhY2VzIG9uCitkb2N1bWVudHMgYmV5b25kIHRob3NlIG9mIFNHTUwsIHNlZSA8YmlicmVmIHJlZj0iQ2xhcmsiLz4uCis8L3A+Cis8L2luZm9ybS1kaXYxPgorPGluZm9ybS1kaXYxIGlkPSJzZWMtZW50ZXhwYW5kIj4KKzxoZWFkPkV4cGFuc2lvbiBvZiBFbnRpdHkgYW5kIENoYXJhY3RlciBSZWZlcmVuY2VzPC9oZWFkPgorPHA+VGhpcyBhcHBlbmRpeCBjb250YWlucyBzb21lIGV4YW1wbGVzIGlsbHVzdHJhdGluZyB0aGUKK3NlcXVlbmNlIG9mIGVudGl0eS0gYW5kIGNoYXJhY3Rlci1yZWZlcmVuY2UgcmVjb2duaXRpb24gYW5kCitleHBhbnNpb24sIGFzIHNwZWNpZmllZCBpbiA8c3BlY3JlZiByZWY9ImVudHByb2MiLz4uPC9wPgorPHA+CitJZiB0aGUgRFREIGNvbnRhaW5zIHRoZSBkZWNsYXJhdGlvbiAKKzxlZz48IVtDREFUQVs8IUVOVElUWSBleGFtcGxlICI8cD5BbiBhbXBlcnNhbmQgKCYjMzg7IzM4OykgbWF5IGJlIGVzY2FwZWQKK251bWVyaWNhbGx5ICgmIzM4OyMzODsjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKygmYW1wO2FtcDspLjwvcD4iID4KK11dPjwvZWc+Cit0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIHdpbGwgcmVjb2duaXplIHRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlcyAKK3doZW4gaXQgcGFyc2VzIHRoZSBlbnRpdHkgZGVjbGFyYXRpb24sIGFuZCByZXNvbHZlIHRoZW0gYmVmb3JlIAorc3RvcmluZyB0aGUgZm9sbG93aW5nIHN0cmluZyBhcyB0aGUKK3ZhbHVlIG9mIHRoZSBlbnRpdHkgIjxjb2RlPmV4YW1wbGU8L2NvZGU+IjoKKzxlZz48IVtDREFUQVs8cD5BbiBhbXBlcnNhbmQgKCYjMzg7KSBtYXkgYmUgZXNjYXBlZAorbnVtZXJpY2FsbHkgKCYjMzg7IzM4Oykgb3Igd2l0aCBhIGdlbmVyYWwgZW50aXR5CisoJmFtcDthbXA7KS48L3A+CitdXT48L2VnPgorQSByZWZlcmVuY2UgaW4gdGhlIGRvY3VtZW50IHRvICI8Y29kZT4mYW1wO2V4YW1wbGU7PC9jb2RlPiIgCit3aWxsIGNhdXNlIHRoZSB0ZXh0IHRvIGJlIHJlcGFyc2VkLCBhdCB3aGljaCB0aW1lIHRoZSAKK3N0YXJ0LSBhbmQgZW5kLXRhZ3Mgb2YgdGhlICI8Y29kZT5wPC9jb2RlPiIgZWxlbWVudCB3aWxsIGJlIHJlY29nbml6ZWQgCithbmQgdGhlIHRocmVlIHJlZmVyZW5jZXMgd2lsbCBiZSByZWNvZ25pemVkIGFuZCBleHBhbmRlZCwgCityZXN1bHRpbmcgaW4gYSAiPGNvZGU+cDwvY29kZT4iIGVsZW1lbnQgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnQKKyhhbGwgZGF0YSwgbm8gZGVsaW1pdGVycyBvciBtYXJrdXApOgorPGVnPjwhW0NEQVRBW0FuIGFtcGVyc2FuZCAoJikgbWF5IGJlIGVzY2FwZWQKK251bWVyaWNhbGx5ICgmIzM4Oykgb3Igd2l0aCBhIGdlbmVyYWwgZW50aXR5CisoJmFtcDspLgorXV0+PC9lZz4KKzwvcD4KKzxwPkEgbW9yZSBjb21wbGV4IGV4YW1wbGUgd2lsbCBpbGx1c3RyYXRlIHRoZSBydWxlcyBhbmQgdGhlaXIKK2VmZmVjdHMgZnVsbHkuICBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIHRoZSBsaW5lIG51bWJlcnMgYXJlCitzb2xlbHkgZm9yIHJlZmVyZW5jZS4KKzxlZz48IVtDREFUQVsxIDw/eG1sIHZlcnNpb249JzEuMCc/PgorMiA8IURPQ1RZUEUgdGVzdCBbCiszIDwhRUxFTUVOVCB0ZXN0ICgjUENEQVRBKSA+Cis0IDwhRU5USVRZICUgeHggJyYjMzc7eno7Jz4KKzUgPCFFTlRJVFkgJSB6eiAnJiM2MDshRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID4nID4KKzYgJXh4OworNyBdPgorOCA8dGVzdD5UaGlzIHNhbXBsZSBzaG93cyBhICZ0cmlja3k7IG1ldGhvZC48L3Rlc3Q+CitdXT48L2VnPgorVGhpcyBwcm9kdWNlcyB0aGUgZm9sbG93aW5nOgorPHVsaXN0IHNwYWNpbmc9ImNvbXBhY3QiPgorPGl0ZW0+PHA+aW4gbGluZSA0LCB0aGUgcmVmZXJlbmNlIHRvIGNoYXJhY3RlciAzNyBpcyBleHBhbmRlZCBpbW1lZGlhdGVseSwKK2FuZCB0aGUgcGFyYW1ldGVyIGVudGl0eSAiPGNvZGU+eHg8L2NvZGU+IiBpcyBzdG9yZWQgaW4gdGhlIHN5bWJvbAordGFibGUgd2l0aCB0aGUgdmFsdWUgIjxjb2RlPiV6ejs8L2NvZGU+Ii4gIFNpbmNlIHRoZSByZXBsYWNlbWVudCB0ZXh0CitpcyBub3QgcmVzY2FubmVkLCB0aGUgcmVmZXJlbmNlIHRvIHBhcmFtZXRlciBlbnRpdHkgIjxjb2RlPnp6PC9jb2RlPiIKK2lzIG5vdCByZWNvZ25pemVkLiAgKEFuZCBpdCB3b3VsZCBiZSBhbiBlcnJvciBpZiBpdCB3ZXJlLCBzaW5jZQorIjxjb2RlPnp6PC9jb2RlPiIgaXMgbm90IHlldCBkZWNsYXJlZC4pPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmluIGxpbmUgNSwgdGhlIGNoYXJhY3RlciByZWZlcmVuY2UgIjxjb2RlPiZhbXA7IzYwOzwvY29kZT4iIGlzCitleHBhbmRlZCBpbW1lZGlhdGVseSBhbmQgdGhlIHBhcmFtZXRlciBlbnRpdHkgIjxjb2RlPnp6PC9jb2RlPiIgaXMKK3N0b3JlZCB3aXRoIHRoZSByZXBsYWNlbWVudCB0ZXh0IAorIjxjb2RlPiZsdDshRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiICZndDs8L2NvZGU+IiwKK3doaWNoIGlzIGEgd2VsbC1mb3JtZWQgZW50aXR5IGRlY2xhcmF0aW9uLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5pbiBsaW5lIDYsIHRoZSByZWZlcmVuY2UgdG8gIjxjb2RlPnh4PC9jb2RlPiIgaXMgcmVjb2duaXplZCwKK2FuZCB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiAiPGNvZGU+eHg8L2NvZGU+IiAobmFtZWx5IAorIjxjb2RlPiV6ejs8L2NvZGU+IikgaXMgcGFyc2VkLiAgVGhlIHJlZmVyZW5jZSB0byAiPGNvZGU+eno8L2NvZGU+IgoraXMgcmVjb2duaXplZCBpbiBpdHMgdHVybiwgYW5kIGl0cyByZXBsYWNlbWVudCB0ZXh0IAorKCI8Y29kZT4mbHQ7IUVOVElUWSB0cmlja3kgImVycm9yLXByb25lIiAmZ3Q7PC9jb2RlPiIpIGlzIHBhcnNlZC4KK1RoZSBnZW5lcmFsIGVudGl0eSAiPGNvZGU+dHJpY2t5PC9jb2RlPiIgaGFzIG5vdyBiZWVuCitkZWNsYXJlZCwgd2l0aCB0aGUgcmVwbGFjZW1lbnQgdGV4dCAiPGNvZGU+ZXJyb3ItcHJvbmU8L2NvZGU+Ii48L3A+PC9pdGVtPgorPGl0ZW0+PHA+CitpbiBsaW5lIDgsIHRoZSByZWZlcmVuY2UgdG8gdGhlIGdlbmVyYWwgZW50aXR5ICI8Y29kZT50cmlja3k8L2NvZGU+IiBpcworcmVjb2duaXplZCwgYW5kIGl0IGlzIGV4cGFuZGVkLCBzbyB0aGUgZnVsbCBjb250ZW50IG9mIHRoZQorIjxjb2RlPnRlc3Q8L2NvZGU+IiBlbGVtZW50IGlzIHRoZSBzZWxmLWRlc2NyaWJpbmcgKGFuZCB1bmdyYW1tYXRpY2FsKSBzdHJpbmcKKzxlbXBoPlRoaXMgc2FtcGxlIHNob3dzIGEgZXJyb3ItcHJvbmUgbWV0aG9kLjwvZW1waD4KKzwvcD48L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPC9pbmZvcm0tZGl2MT4gCis8aW5mb3JtLWRpdjEgaWQ9ImRldGVybWluaXNtIj4KKzxoZWFkPkRldGVybWluaXN0aWMgQ29udGVudCBNb2RlbHM8L2hlYWQ+Cis8cD48dGVybXJlZiBkZWY9ImR0LWNvbXBhdCI+Rm9yIGNvbXBhdGliaWxpdHk8L3Rlcm1yZWY+LCBpdCBpcworcmVxdWlyZWQKK3RoYXQgY29udGVudCBtb2RlbHMgaW4gZWxlbWVudCB0eXBlIGRlY2xhcmF0aW9ucyBiZSBkZXRlcm1pbmlzdGljLiAgCis8L3A+Cis8IS0tIEZJTkFMIEVESVQ6ICBXZWJTR01MIGFsbG93cyBhbWJpZ3VpdHk/IC0tPgorPHA+U0dNTAorcmVxdWlyZXMgZGV0ZXJtaW5pc3RpYyBjb250ZW50IG1vZGVscyAoaXQgY2FsbHMgdGhlbQorInVuYW1iaWd1b3VzIik7IFhNTCBwcm9jZXNzb3JzIGJ1aWx0IHVzaW5nIFNHTUwgc3lzdGVtcyBtYXkKK2ZsYWcgbm9uLWRldGVybWluaXN0aWMgY29udGVudCBtb2RlbHMgYXMgZXJyb3JzLjwvcD4KKzxwPkZvciBleGFtcGxlLCB0aGUgY29udGVudCBtb2RlbCA8Y29kZT4oKGIsIGMpIHwgKGIsIGQpKTwvY29kZT4gaXMKK25vbi1kZXRlcm1pbmlzdGljLCBiZWNhdXNlIGdpdmVuIGFuIGluaXRpYWwgPGNvZGU+YjwvY29kZT4gdGhlIHBhcnNlcgorY2Fubm90IGtub3cgd2hpY2ggPGNvZGU+YjwvY29kZT4gaW4gdGhlIG1vZGVsIGlzIGJlaW5nIG1hdGNoZWQgd2l0aG91dAorbG9va2luZyBhaGVhZCB0byBzZWUgd2hpY2ggZWxlbWVudCBmb2xsb3dzIHRoZSA8Y29kZT5iPC9jb2RlPi4KK0luIHRoaXMgY2FzZSwgdGhlIHR3byByZWZlcmVuY2VzIHRvCis8Y29kZT5iPC9jb2RlPiBjYW4gYmUgY29sbGFwc2VkIAoraW50byBhIHNpbmdsZSByZWZlcmVuY2UsIG1ha2luZyB0aGUgbW9kZWwgcmVhZAorPGNvZGU+KGIsIChjIHwgZCkpPC9jb2RlPi4gIEFuIGluaXRpYWwgPGNvZGU+YjwvY29kZT4gbm93IGNsZWFybHkKK21hdGNoZXMgb25seSBhIHNpbmdsZSBuYW1lIGluIHRoZSBjb250ZW50IG1vZGVsLiAgVGhlIHBhcnNlciBkb2Vzbid0CituZWVkIHRvIGxvb2sgYWhlYWQgdG8gc2VlIHdoYXQgZm9sbG93czsgZWl0aGVyIDxjb2RlPmM8L2NvZGU+IG9yCis8Y29kZT5kPC9jb2RlPiB3b3VsZCBiZSBhY2NlcHRlZC48L3A+Cis8cD5Nb3JlIGZvcm1hbGx5OiAgYSBmaW5pdGUgc3RhdGUgYXV0b21hdG9uIG1heSBiZSBjb25zdHJ1Y3RlZCBmcm9tIHRoZQorY29udGVudCBtb2RlbCB1c2luZyB0aGUgc3RhbmRhcmQgYWxnb3JpdGhtcywgZS5nLiBhbGdvcml0aG0gMy41IAoraW4gc2VjdGlvbiAzLjkKK29mIEFobywgU2V0aGksIGFuZCBVbGxtYW4gPGJpYnJlZiByZWY9IkFobyIvPi4KK0luIG1hbnkgc3VjaCBhbGdvcml0aG1zLCBhIGZvbGxvdyBzZXQgaXMgY29uc3RydWN0ZWQgZm9yIGVhY2ggCitwb3NpdGlvbiBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uIChpLmUuLCBlYWNoIGxlYWYgCitub2RlIGluIHRoZSAKK3N5bnRheCB0cmVlIGZvciB0aGUgcmVndWxhciBleHByZXNzaW9uKTsKK2lmIGFueSBwb3NpdGlvbiBoYXMgYSBmb2xsb3cgc2V0IGluIHdoaWNoIAorbW9yZSB0aGFuIG9uZSBmb2xsb3dpbmcgcG9zaXRpb24gaXMgCitsYWJlbGVkIHdpdGggdGhlIHNhbWUgZWxlbWVudCB0eXBlIG5hbWUsIAordGhlbiB0aGUgY29udGVudCBtb2RlbCBpcyBpbiBlcnJvcgorYW5kIG1heSBiZSByZXBvcnRlZCBhcyBhbiBlcnJvci4KKzwvcD4KKzxwPkFsZ29yaXRobXMgZXhpc3Qgd2hpY2ggYWxsb3cgbWFueSBidXQgbm90IGFsbCBub24tZGV0ZXJtaW5pc3RpYworY29udGVudCBtb2RlbHMgdG8gYmUgcmVkdWNlZCBhdXRvbWF0aWNhbGx5IHRvIGVxdWl2YWxlbnQgZGV0ZXJtaW5pc3RpYworbW9kZWxzOyBzZWUgQnL8Z2dlbWFubi1LbGVpbiAxOTkxIDxiaWJyZWYgcmVmPSJBQksiLz4uPC9wPgorPC9pbmZvcm0tZGl2MT4KKzxpbmZvcm0tZGl2MSBpZD0ic2VjLWd1ZXNzaW5nIj4KKzxoZWFkPkF1dG9kZXRlY3Rpb24gb2YgQ2hhcmFjdGVyIEVuY29kaW5nczwvaGVhZD4KKzxwPlRoZSBYTUwgZW5jb2RpbmcgZGVjbGFyYXRpb24gZnVuY3Rpb25zIGFzIGFuIGludGVybmFsIGxhYmVsIG9uIGVhY2gKK2VudGl0eSwgaW5kaWNhdGluZyB3aGljaCBjaGFyYWN0ZXIgZW5jb2RpbmcgaXMgaW4gdXNlLiAgQmVmb3JlIGFuIFhNTAorcHJvY2Vzc29yIGNhbiByZWFkIHRoZSBpbnRlcm5hbCBsYWJlbCwgaG93ZXZlciwgaXQgYXBwYXJlbnRseSBoYXMgdG8KK2tub3cgd2hhdCBjaGFyYWN0ZXIgZW5jb2RpbmcgaXMgaW4gdXNlJm1kYXNoO3doaWNoIGlzIHdoYXQgdGhlIGludGVybmFsIGxhYmVsCitpcyB0cnlpbmcgdG8gaW5kaWNhdGUuICBJbiB0aGUgZ2VuZXJhbCBjYXNlLCB0aGlzIGlzIGEgaG9wZWxlc3MKK3NpdHVhdGlvbi4gSXQgaXMgbm90IGVudGlyZWx5IGhvcGVsZXNzIGluIFhNTCwgaG93ZXZlciwgYmVjYXVzZSBYTUwKK2xpbWl0cyB0aGUgZ2VuZXJhbCBjYXNlIGluIHR3byB3YXlzOiAgZWFjaCBpbXBsZW1lbnRhdGlvbiBpcyBhc3N1bWVkCit0byBzdXBwb3J0IG9ubHkgYSAgZmluaXRlIHNldCBvZiBjaGFyYWN0ZXIgZW5jb2RpbmdzLCBhbmQgdGhlIFhNTAorZW5jb2RpbmcgZGVjbGFyYXRpb24gaXMgcmVzdHJpY3RlZCBpbiBwb3NpdGlvbiBhbmQgY29udGVudCBpbiBvcmRlciB0bworbWFrZSBpdCBmZWFzaWJsZSB0byBhdXRvZGV0ZWN0IHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgaW4gdXNlIGluIGVhY2gKK2VudGl0eSBpbiBub3JtYWwgY2FzZXMuICBBbHNvLCBpbiBtYW55IGNhc2VzIG90aGVyIHNvdXJjZXMgb2YgaW5mb3JtYXRpb24KK2FyZSBhdmFpbGFibGUgaW4gYWRkaXRpb24gdG8gdGhlIFhNTCBkYXRhIHN0cmVhbSBpdHNlbGYuICAKK1R3byBjYXNlcyBtYXkgYmUgZGlzdGluZ3Vpc2hlZCwgCitkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgWE1MIGVudGl0eSBpcyBwcmVzZW50ZWQgdG8gdGhlCitwcm9jZXNzb3Igd2l0aG91dCwgb3Igd2l0aCwgYW55IGFjY29tcGFueWluZworKGV4dGVybmFsKSBpbmZvcm1hdGlvbi4gIFdlIGNvbnNpZGVyIHRoZSBmaXJzdCBjYXNlIGZpcnN0LgorPC9wPgorPHA+CitCZWNhdXNlIGVhY2ggWE1MIGVudGl0eSBub3QgaW4gVVRGLTggb3IgVVRGLTE2IGZvcm1hdCA8ZW1waD5tdXN0PC9lbXBoPgorYmVnaW4gd2l0aCBhbiBYTUwgZW5jb2RpbmcgZGVjbGFyYXRpb24sIGluIHdoaWNoIHRoZSBmaXJzdCAgY2hhcmFjdGVycworbXVzdCBiZSAnPGNvZGU+Jmx0Oz94bWw8L2NvZGU+JywgYW55IGNvbmZvcm1pbmcgcHJvY2Vzc29yIGNhbiBkZXRlY3QsCithZnRlciB0d28gdG8gZm91ciBvY3RldHMgb2YgaW5wdXQsIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgY2FzZXMgYXBwbHkuIAorSW4gcmVhZGluZyB0aGlzIGxpc3QsIGl0IG1heSBoZWxwIHRvIGtub3cgdGhhdCBpbiBVQ1MtNCwgJyZsdDsnIGlzCisiPGNvZGU+I3gwMDAwMDAzQzwvY29kZT4iIGFuZCAnPycgaXMgIjxjb2RlPiN4MDAwMDAwM0Y8L2NvZGU+IiwgYW5kIHRoZSBCeXRlCitPcmRlciBNYXJrIHJlcXVpcmVkIG9mIFVURi0xNiBkYXRhIHN0cmVhbXMgaXMgIjxjb2RlPiN4RkVGRjwvY29kZT4iLjwvcD4KKzxwPgorPHVsaXN0PgorPGl0ZW0+Cis8cD48Y29kZT4wMCAwMCAwMCAzQzwvY29kZT46IFVDUy00LCBiaWctZW5kaWFuIG1hY2hpbmUgKDEyMzQgb3JkZXIpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4zQyAwMCAwMCAwMDwvY29kZT46IFVDUy00LCBsaXR0bGUtZW5kaWFuIG1hY2hpbmUgKDQzMjEgb3JkZXIpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4wMCAwMCAzQyAwMDwvY29kZT46IFVDUy00LCB1bnVzdWFsIG9jdGV0IG9yZGVyICgyMTQzKTwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+PGNvZGU+MDAgM0MgMDAgMDA8L2NvZGU+OiBVQ1MtNCwgdW51c3VhbCBvY3RldCBvcmRlciAoMzQxMik8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPkZFIEZGPC9jb2RlPjogVVRGLTE2LCBiaWctZW5kaWFuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT5GRiBGRTwvY29kZT46IFVURi0xNiwgbGl0dGxlLWVuZGlhbjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+PGNvZGU+MDAgM0MgMDAgM0Y8L2NvZGU+OiBVVEYtMTYsIGJpZy1lbmRpYW4sIG5vIEJ5dGUgT3JkZXIgTWFyaworKGFuZCB0aHVzLCBzdHJpY3RseSBzcGVha2luZywgaW4gZXJyb3IpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4zQyAwMCAzRiAwMDwvY29kZT46IFVURi0xNiwgbGl0dGxlLWVuZGlhbiwgbm8gQnl0ZSBPcmRlciBNYXJrCisoYW5kIHRodXMsIHN0cmljdGx5IHNwZWFraW5nLCBpbiBlcnJvcik8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPjNDIDNGIDc4IDZEPC9jb2RlPjogVVRGLTgsIElTTyA2NDYsIEFTQ0lJLCBzb21lIHBhcnQgb2YgSVNPIDg4NTksIAorU2hpZnQtSklTLCBFVUMsIG9yIGFueSBvdGhlciA3LWJpdCwgOC1iaXQsIG9yIG1peGVkLXdpZHRoIGVuY29kaW5nCit3aGljaCBlbnN1cmVzIHRoYXQgdGhlIGNoYXJhY3RlcnMgb2YgQVNDSUkgaGF2ZSB0aGVpciBub3JtYWwgcG9zaXRpb25zLAord2lkdGgsCithbmQgdmFsdWVzOyB0aGUgYWN0dWFsIGVuY29kaW5nIGRlY2xhcmF0aW9uIG11c3QgYmUgcmVhZCB0byAKK2RldGVjdCB3aGljaCBvZiB0aGVzZSBhcHBsaWVzLCBidXQgc2luY2UgYWxsIG9mIHRoZXNlIGVuY29kaW5ncwordXNlIHRoZSBzYW1lIGJpdCBwYXR0ZXJucyBmb3IgdGhlIEFTQ0lJIGNoYXJhY3RlcnMsIHRoZSBlbmNvZGluZyAKK2RlY2xhcmF0aW9uIGl0c2VsZiBtYXkgYmUgcmVhZCByZWxpYWJseQorPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT40QyA2RiBBNyA5NDwvY29kZT46IEVCQ0RJQyAoaW4gc29tZSBmbGF2b3I7IHRoZSBmdWxsCitlbmNvZGluZyBkZWNsYXJhdGlvbiBtdXN0IGJlIHJlYWQgdG8gdGVsbCB3aGljaCBjb2RlIHBhZ2UgaXMgaW4gCit1c2UpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5vdGhlcjogVVRGLTggd2l0aG91dCBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbiwgb3IgZWxzZSAKK3RoZSBkYXRhIHN0cmVhbSBpcyBjb3JydXB0LCBmcmFnbWVudGFyeSwgb3IgZW5jbG9zZWQgaW4KK2Egd3JhcHBlciBvZiBzb21lIGtpbmQ8L3A+Cis8L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPHA+CitUaGlzIGxldmVsIG9mIGF1dG9kZXRlY3Rpb24gaXMgZW5vdWdoIHRvIHJlYWQgdGhlIFhNTCBlbmNvZGluZworZGVjbGFyYXRpb24gYW5kIHBhcnNlIHRoZSBjaGFyYWN0ZXItZW5jb2RpbmcgaWRlbnRpZmllciwgd2hpY2ggaXMKK3N0aWxsIG5lY2Vzc2FyeSB0byBkaXN0aW5ndWlzaCB0aGUgaW5kaXZpZHVhbCBtZW1iZXJzIG9mIGVhY2ggZmFtaWx5CitvZiBlbmNvZGluZ3MgKGUuZy4gdG8gdGVsbCAgVVRGLTggZnJvbSA4ODU5LCBhbmQgdGhlIHBhcnRzIG9mIDg4NTkKK2Zyb20gZWFjaCBvdGhlciwgb3IgdG8gZGlzdGluZ3Vpc2ggdGhlIHNwZWNpZmljIEVCQ0RJQyBjb2RlIHBhZ2UgaW4KK3VzZSwgYW5kIHNvIG9uKS4KKzwvcD4KKzxwPgorQmVjYXVzZSB0aGUgY29udGVudHMgb2YgdGhlIGVuY29kaW5nIGRlY2xhcmF0aW9uIGFyZSByZXN0cmljdGVkIHRvCitBU0NJSSBjaGFyYWN0ZXJzLCBhIHByb2Nlc3NvciBjYW4gcmVsaWFibHkgcmVhZCB0aGUgZW50aXJlIGVuY29kaW5nCitkZWNsYXJhdGlvbiBhcyBzb29uIGFzIGl0IGhhcyBkZXRlY3RlZCB3aGljaCBmYW1pbHkgb2YgZW5jb2RpbmdzIGlzIGluCit1c2UuICBTaW5jZSBpbiBwcmFjdGljZSwgYWxsIHdpZGVseSB1c2VkIGNoYXJhY3RlciBlbmNvZGluZ3MgZmFsbCBpbnRvCitvbmUgb2YgdGhlIGNhdGVnb3JpZXMgYWJvdmUsIHRoZSBYTUwgZW5jb2RpbmcgZGVjbGFyYXRpb24gYWxsb3dzCityZWFzb25hYmx5IHJlbGlhYmxlIGluLWJhbmQgbGFiZWxpbmcgb2YgY2hhcmFjdGVyIGVuY29kaW5ncywgZXZlbiB3aGVuCitleHRlcm5hbCBzb3VyY2VzIG9mIGluZm9ybWF0aW9uIGF0IHRoZSBvcGVyYXRpbmctc3lzdGVtIG9yCit0cmFuc3BvcnQtcHJvdG9jb2wgbGV2ZWwgYXJlIHVucmVsaWFibGUuCis8L3A+Cis8cD4KK09uY2UgdGhlIHByb2Nlc3NvciBoYXMgZGV0ZWN0ZWQgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBpbiB1c2UsIGl0IGNhbgorYWN0IGFwcHJvcHJpYXRlbHksIHdoZXRoZXIgYnkgaW52b2tpbmcgYSBzZXBhcmF0ZSBpbnB1dCByb3V0aW5lIGZvcgorZWFjaCBjYXNlLCBvciBieSBjYWxsaW5nIHRoZSBwcm9wZXIgY29udmVyc2lvbiBmdW5jdGlvbiBvbiBlYWNoCitjaGFyYWN0ZXIgb2YgaW5wdXQuIAorPC9wPgorPHA+CitMaWtlIGFueSBzZWxmLWxhYmVsaW5nIHN5c3RlbSwgdGhlIFhNTCBlbmNvZGluZyBkZWNsYXJhdGlvbiB3aWxsIG5vdAord29yayBpZiBhbnkgc29mdHdhcmUgY2hhbmdlcyB0aGUgZW50aXR5J3MgY2hhcmFjdGVyIHNldCBvciBlbmNvZGluZword2l0aG91dCB1cGRhdGluZyB0aGUgZW5jb2RpbmcgZGVjbGFyYXRpb24uICBJbXBsZW1lbnRvcnMgb2YKK2NoYXJhY3Rlci1lbmNvZGluZyByb3V0aW5lcyBzaG91bGQgYmUgY2FyZWZ1bCB0byBlbnN1cmUgdGhlIGFjY3VyYWN5CitvZiB0aGUgaW50ZXJuYWwgYW5kIGV4dGVybmFsIGluZm9ybWF0aW9uIHVzZWQgdG8gbGFiZWwgdGhlIGVudGl0eS4KKzwvcD4KKzxwPlRoZSBzZWNvbmQgcG9zc2libGUgY2FzZSBvY2N1cnMgd2hlbiB0aGUgWE1MIGVudGl0eSBpcyBhY2NvbXBhbmllZAorYnkgZW5jb2RpbmcgaW5mb3JtYXRpb24sIGFzIGluIHNvbWUgZmlsZSBzeXN0ZW1zIGFuZCBzb21lIG5ldHdvcmsKK3Byb3RvY29scy4KK1doZW4gbXVsdGlwbGUgc291cmNlcyBvZiBpbmZvcm1hdGlvbiBhcmUgYXZhaWxhYmxlLAorCit0aGVpciByZWxhdGl2ZQorcHJpb3JpdHkgYW5kIHRoZSBwcmVmZXJyZWQgbWV0aG9kIG9mIGhhbmRsaW5nIGNvbmZsaWN0IHNob3VsZCBiZQorc3BlY2lmaWVkIGFzIHBhcnQgb2YgdGhlIGhpZ2hlci1sZXZlbCBwcm90b2NvbCB1c2VkIHRvIGRlbGl2ZXIgWE1MLgorUnVsZXMgZm9yIHRoZSByZWxhdGl2ZSBwcmlvcml0eSBvZiB0aGUgaW50ZXJuYWwgbGFiZWwgYW5kIHRoZQorTUlNRS10eXBlIGxhYmVsIGluIGFuIGV4dGVybmFsIGhlYWRlciwgZm9yIGV4YW1wbGUsIHNob3VsZCBiZSBwYXJ0IG9mIHRoZQorUkZDIGRvY3VtZW50IGRlZmluaW5nIHRoZSB0ZXh0L3htbCBhbmQgYXBwbGljYXRpb24veG1sIE1JTUUgdHlwZXMuIEluCit0aGUgaW50ZXJlc3RzIG9mIGludGVyb3BlcmFiaWxpdHksIGhvd2V2ZXIsIHRoZSBmb2xsb3dpbmcgcnVsZXMKK2FyZSByZWNvbW1lbmRlZC4KKzx1bGlzdD4KKzxpdGVtPjxwPklmIGFuIFhNTCBlbnRpdHkgaXMgaW4gYSBmaWxlLCB0aGUgQnl0ZS1PcmRlciBNYXJrCithbmQgZW5jb2RpbmctZGVjbGFyYXRpb24gUEkgYXJlIHVzZWQgKGlmIHByZXNlbnQpIHRvIGRldGVybWluZSB0aGUKK2NoYXJhY3RlciBlbmNvZGluZy4gIEFsbCBvdGhlciBoZXVyaXN0aWNzIGFuZCBzb3VyY2VzIG9mIGluZm9ybWF0aW9uCithcmUgc29sZWx5IGZvciBlcnJvciByZWNvdmVyeS4KKzwvcD48L2l0ZW0+Cis8aXRlbT48cD5JZiBhbiBYTUwgZW50aXR5IGlzIGRlbGl2ZXJlZCB3aXRoIGEKK01JTUUgdHlwZSBvZiB0ZXh0L3htbCwgdGhlbiB0aGUgPGNvZGU+Y2hhcnNldDwvY29kZT4gcGFyYW1ldGVyCitvbiB0aGUgTUlNRSB0eXBlIGRldGVybWluZXMgdGhlCitjaGFyYWN0ZXIgZW5jb2RpbmcgbWV0aG9kOyBhbGwgb3RoZXIgaGV1cmlzdGljcyBhbmQgc291cmNlcyBvZgoraW5mb3JtYXRpb24gYXJlIHNvbGVseSBmb3IgZXJyb3IgcmVjb3ZlcnkuCis8L3A+PC9pdGVtPgorPGl0ZW0+PHA+SWYgYW4gWE1MIGVudGl0eSBpcyBkZWxpdmVyZWQgCit3aXRoIGEKK01JTUUgdHlwZSBvZiBhcHBsaWNhdGlvbi94bWwsIHRoZW4gdGhlIEJ5dGUtT3JkZXIgTWFyayBhbmQKK2VuY29kaW5nLWRlY2xhcmF0aW9uIFBJIGFyZSB1c2VkIChpZiBwcmVzZW50KSB0byBkZXRlcm1pbmUgdGhlCitjaGFyYWN0ZXIgZW5jb2RpbmcuICBBbGwgb3RoZXIgaGV1cmlzdGljcyBhbmQgc291cmNlcyBvZgoraW5mb3JtYXRpb24gYXJlIHNvbGVseSBmb3IgZXJyb3IgcmVjb3ZlcnkuCis8L3A+PC9pdGVtPgorPC91bGlzdD4KK1RoZXNlIHJ1bGVzIGFwcGx5IG9ubHkgaW4gdGhlIGFic2VuY2Ugb2YgcHJvdG9jb2wtbGV2ZWwgZG9jdW1lbnRhdGlvbjsKK2luIHBhcnRpY3VsYXIsIHdoZW4gdGhlIE1JTUUgdHlwZXMgdGV4dC94bWwgYW5kIGFwcGxpY2F0aW9uL3htbCBhcmUKK2RlZmluZWQsIHRoZSByZWNvbW1lbmRhdGlvbnMgb2YgdGhlIHJlbGV2YW50IFJGQyB3aWxsIHN1cGVyc2VkZQordGhlc2UgcnVsZXMuCis8L3A+CisKKzwvaW5mb3JtLWRpdjE+CisKKzxpbmZvcm0tZGl2MSBpZD0ic2VjLXhtbC13ZyI+Cis8aGVhZD5XM0MgWE1MIFdvcmtpbmcgR3JvdXA8L2hlYWQ+CisgCis8cD5UaGlzIHNwZWNpZmljYXRpb24gd2FzIHByZXBhcmVkIGFuZCBhcHByb3ZlZCBmb3IgcHVibGljYXRpb24gYnkgdGhlCitXM0MgWE1MIFdvcmtpbmcgR3JvdXAgKFdHKS4gIFdHIGFwcHJvdmFsIG9mIHRoaXMgc3BlY2lmaWNhdGlvbiBkb2VzCitub3QgbmVjZXNzYXJpbHkgaW1wbHkgdGhhdCBhbGwgV0cgbWVtYmVycyB2b3RlZCBmb3IgaXRzIGFwcHJvdmFsLiAgCitUaGUgY3VycmVudCBhbmQgZm9ybWVyIG1lbWJlcnMgb2YgdGhlIFhNTCBXRyBhcmU6PC9wPgorIAorPG9yZ2xpc3Q+Cis8bWVtYmVyPjxuYW1lPkpvbiBCb3NhaywgU3VuPC9uYW1lPjxyb2xlPkNoYWlyPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5KYW1lcyBDbGFyazwvbmFtZT48cm9sZT5UZWNobmljYWwgTGVhZDwvcm9sZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+VGltIEJyYXksIFRleHR1YWxpdHkgYW5kIE5ldHNjYXBlPC9uYW1lPjxyb2xlPlhNTCBDby1lZGl0b3I8L3JvbGU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkplYW4gUGFvbGksIE1pY3Jvc29mdDwvbmFtZT48cm9sZT5YTUwgQ28tZWRpdG9yPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5DLiBNLiBTcGVyYmVyZy1NY1F1ZWVuLCBVLiBvZiBJbGwuPC9uYW1lPjxyb2xlPlhNTAorQ28tZWRpdG9yPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5EYW4gQ29ubm9sbHksIFczQzwvbmFtZT48cm9sZT5XM0MgTGlhaXNvbjwvcm9sZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+UGF1bGEgQW5nZXJzdGVpbiwgVGV4Y2VsPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5TdGV2ZSBEZVJvc2UsIElOU088L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkRhdmUgSG9sbGFuZGVyLCBIUDwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+RWxpb3QgS2ltYmVyLCBJU09HRU48L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkV2ZSBNYWxlciwgQXJib3JUZXh0PC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5Ub20gTWFnbGllcnksIE5DU0E8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPk11cnJheSBNYWxvbmV5LCBNdXptbyBhbmQgR3JpZjwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+TWFrb3RvIE11cmF0YSwgRnVqaSBYZXJveCBJbmZvcm1hdGlvbiBTeXN0ZW1zPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5Kb2VsIE5hdmEsIEFkb2JlPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5Db25sZXRoIE8nQ29ubmVsbCwgVmlnbmV0dGU8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPlBldGVyIFNoYXJwZSwgU29mdFF1YWQ8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkpvaG4gVGlndWUsIERhdGFDaGFubmVsPC9uYW1lPjwvbWVtYmVyPgorPC9vcmdsaXN0PgorCis8L2luZm9ybS1kaXYxPgorPC9iYWNrPgorPC9zcGVjPgorPCEtLSBLZWVwIHRoaXMgY29tbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlCitMb2NhbCB2YXJpYWJsZXM6Cittb2RlOiBzZ21sCitzZ21sLWRlZmF1bHQtZHRkLWZpbGU6In4vc2dtbC9zcGVjLmNlZCIKK3NnbWwtb21pdHRhZzp0CitzZ21sLXNob3J0dGFnOnQKK0VuZDoKKy0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvUkVDLXhtbC0xOTk4MDIxMC54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvUkVDLXhtbC0xOTk4MDIxMC54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL1VURjE2RW50aXR5LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL1VURjE2RW50aXR5LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2NiYmEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvVVRGMTZFbnRpdHkueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZm9vIFsKKzwhRUxFTUVOVCBmb28gKHJvb3QpKj4KKzwhRUxFTUVOVCByb290IEVNUFRZPgorPCFFTlRJVFkgdXRmMTZiIFNZU1RFTSAiZHRkcy91dGYxNmIuZW50Ij4KKzwhRU5USVRZIHV0ZjE2bCBTWVNURU0gImR0ZHMvdXRmMTZsLmVudCI+CitdPgorPGZvbz4gJnV0ZjE2YjsgJnV0ZjE2bDsgPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9VVEYxNkVudGl0eS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvVVRGMTZFbnRpdHkueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvVVRGMTZFbnRpdHkueG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvZGlhLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2RpYS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFlMzI1MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2RpYS54bWwKQEAgLTAsMCArMSwxMzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRpYTpkaWFncmFtIFsKKzwhRUxFTUVOVCBkaWE6ZGlhZ3JhbSAoZGlhOmRpYWdyYW1kYXRhICwgZGlhOmxheWVyKik+Cis8IUFUVExJU1QgZGlhOmRpYWdyYW0geG1sbnM6ZGlhIENEQVRBICNGSVhFRCAiaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvIj4KKzwhRUxFTUVOVCBkaWE6ZGlhZ3JhbWRhdGEgKGRpYTphdHRyaWJ1dGUpKj4KKzwhRUxFTUVOVCBkaWE6bGF5ZXIgKGRpYTpvYmplY3QgfCBkaWE6Z3JvdXApKj4KKzwhQVRUTElTVCBkaWE6bGF5ZXIgZGlhOm5hbWUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIGRpYTpsYXllciBkaWE6dmlzaWJsZSAodHJ1ZSB8IGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgZGlhOm9iamVjdCAoZGlhOmF0dHJpYnV0ZSogLCBkaWE6Y29ubmVjdGlvbnM/KT4KKzwhQVRUTElTVCBkaWE6b2JqZWN0IGRpYTp0eXBlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBkaWE6b2JqZWN0IGRpYTp2ZXJzaW9uIE5NVE9LRU4gI1JFUVVJUkVEPgorPCFBVFRMSVNUIGRpYTpvYmplY3QgZGlhOmlkIElEICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBkaWE6Y29ubmVjdGlvbnMgKGRpYTpjb25uZWN0aW9uKSo+Cis8IUVMRU1FTlQgZGlhOmNvbm5lY3Rpb24gRU1QVFk+Cis8IUFUVExJU1QgZGlhOmNvbm5lY3Rpb24gZGlhOmhhbmRsZSBOTVRPS0VOICNSRVFVSVJFRD4KKzwhQVRUTElTVCBkaWE6Y29ubmVjdGlvbiBkaWE6dG8gSURSRUYgI1JFUVVJUkVEPgorPCFBVFRMSVNUIGRpYTpjb25uZWN0aW9uIGRpYTpjb25uZWN0aW9uIE5NVE9LRU4gI1JFUVVJUkVEPgorPCFFTEVNRU5UIGRpYTpncm91cCAoZGlhOm9iamVjdCB8IGRpYTpncm91cCkqPgorPCFFTEVNRU5UIGRpYTphdHRyaWJ1dGUgKGRpYTpjb21wb3NpdGUgfCBkaWE6aW50IHwgZGlhOmVudW0gfCBkaWE6cmVhbCB8IGRpYTpib29sZWFuIHwgZGlhOmNvbG9yIHwgZGlhOnBvaW50IHwgZGlhOnJlY3RhbmdsZSB8IGRpYTpzdHJpbmcgfCBkaWE6Zm9udCkqPgorPCFBVFRMSVNUIGRpYTphdHRyaWJ1dGUgZGlhOm5hbWUgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIGRpYTpjb21wb3NpdGUgKGRpYTphdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBkaWE6Y29tcG9zaXRlIGRpYTp0eXBlIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGRpYTppbnQgRU1QVFk+Cis8IUFUVExJU1QgZGlhOmludCBkaWE6dmFsIE5NVE9LRU4gI1JFUVVJUkVEPgorPCFFTEVNRU5UIGRpYTplbnVtIEVNUFRZPgorPCFBVFRMSVNUIGRpYTplbnVtIGRpYTp2YWwgTk1UT0tFTiAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgZGlhOnJlYWwgRU1QVFk+Cis8IUFUVExJU1QgZGlhOnJlYWwgZGlhOnZhbCBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgZGlhOmJvb2xlYW4gRU1QVFk+Cis8IUFUVExJU1QgZGlhOmJvb2xlYW4gZGlhOnZhbCAodHJ1ZSB8IGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgZGlhOmNvbG9yIEVNUFRZPgorPCFBVFRMSVNUIGRpYTpjb2xvciBkaWE6dmFsIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBkaWE6cG9pbnQgRU1QVFk+Cis8IUFUVExJU1QgZGlhOnBvaW50IGRpYTp2YWwgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIGRpYTpyZWN0YW5nbGUgRU1QVFk+Cis8IUFUVExJU1QgZGlhOnJlY3RhbmdsZSBkaWE6dmFsIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBkaWE6c3RyaW5nIEVNUFRZPgorPCFBVFRMSVNUIGRpYTpzdHJpbmcgZGlhOnZhbCBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBkaWE6Zm9udCBFTVBUWT4KKzwhQVRUTElTVCBkaWE6Zm9udCBkaWE6bmFtZSBDREFUQSAjUkVRVUlSRUQ+CitdPgorPGRpYTpkaWFncmFtIHhtbG5zOmRpYT0iaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvIj4KKyAgPGRpYTpkaWFncmFtZGF0YT4KKyAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iYmFja2dyb3VuZCI+CisgICAgICA8ZGlhOmNvbG9yIGRpYTp2YWw9IiNmZmZmZmYiLz4KKyAgICA8L2RpYTphdHRyaWJ1dGU+CisgIDwvZGlhOmRpYWdyYW1kYXRhPgorICA8ZGlhOmxheWVyIGRpYTpuYW1lPSJCYWNrZ3JvdW5kIiBkaWE6dmlzaWJsZT0idHJ1ZSI+CisgICAgPGRpYTpvYmplY3QgZGlhOnR5cGU9IlN0YW5kYXJkIC0gTGluZSIgZGlhOnZlcnNpb249IjAiIGRpYTppZD0iTzAiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IGRpYTp2YWw9IjEuOTUsNi44NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIGRpYTp2YWw9IjEuOSw2Ljg7MTEsOC41NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImNvbm5fZW5kcG9pbnRzIj4KKyAgICAgICAgPGRpYTpwb2ludCBkaWE6dmFsPSIxLjk1LDYuODUiLz4KKyAgICAgICAgPGRpYTpwb2ludCBkaWE6dmFsPSIxMC45NSw4LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJsaW5lX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciBkaWE6dmFsPSIjMDAwMDAwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0ibGluZV93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCBkaWE6dmFsPSIwLjEiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJsaW5lX3N0eWxlIj4KKyAgICAgICAgPGRpYTplbnVtIGRpYTp2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJzdGFydF9hcnJvdyI+CisgICAgICAgIDxkaWE6ZW51bSBkaWE6dmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iZW5kX2Fycm93Ij4KKyAgICAgICAgPGRpYTplbnVtIGRpYTp2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6Y29ubmVjdGlvbnM+CisgICAgICAgIDxkaWE6Y29ubmVjdGlvbiBkaWE6aGFuZGxlPSIxIiBkaWE6dG89Ik8yIiBkaWE6Y29ubmVjdGlvbj0iMyIvPgorICAgICAgPC9kaWE6Y29ubmVjdGlvbnM+CisgICAgPC9kaWE6b2JqZWN0PgorICAgIDxkaWE6b2JqZWN0IGRpYTp0eXBlPSJTdGFuZGFyZCAtIFRleHQiIGRpYTp2ZXJzaW9uPSIwIiBkaWE6aWQ9Ik8xIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJvYmpfcG9zIj4KKyAgICAgICAgPGRpYTpwb2ludCBkaWE6dmFsPSI0LjgsNC43NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIGRpYTp2YWw9IjIuNTc5LDMuOTYzNTk7Ny4wMjEsNC45NjM1OSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9InRleHQiPgorICAgICAgICA8ZGlhOmNvbXBvc2l0ZSBkaWE6dHlwZT0idGV4dCI+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9InN0cmluZyI+CisgICAgICAgICAgICA8ZGlhOnN0cmluZyBkaWE6dmFsPSJzZGZzZGZnIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJmb250Ij4KKyAgICAgICAgICAgIDxkaWE6Zm9udCBkaWE6bmFtZT0iQ291cmllciIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iaGVpZ2h0Ij4KKyAgICAgICAgICAgIDxkaWE6cmVhbCBkaWE6dmFsPSIxIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJwb3MiPgorICAgICAgICAgICAgPGRpYTpwb2ludCBkaWE6dmFsPSI0LjgsNC43NSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iY29sb3IiPgorICAgICAgICAgICAgPGRpYTpjb2xvciBkaWE6dmFsPSIjMDAwMDAwIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJhbGlnbm1lbnQiPgorICAgICAgICAgICAgPGRpYTplbnVtIGRpYTp2YWw9IjEiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgIDwvZGlhOmNvbXBvc2l0ZT4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICA8L2RpYTpvYmplY3Q+CisgICAgPGRpYTpvYmplY3QgZGlhOnR5cGU9IlN0YW5kYXJkIC0gQm94IiBkaWE6dmVyc2lvbj0iMCIgZGlhOmlkPSJPMiI+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgZGlhOnZhbD0iMTAuOTUsNy41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0ib2JqX2JiIj4KKyAgICAgICAgPGRpYTpyZWN0YW5nbGUgZGlhOnZhbD0iMTAuOSw3LjQ1OzEzLjA1LDkuNTUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJlbGVtX2Nvcm5lciI+CisgICAgICAgIDxkaWE6cG9pbnQgZGlhOnZhbD0iMTAuOTUsNy41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iZWxlbV93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCBkaWE6dmFsPSIyLjA1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iZWxlbV9oZWlnaHQiPgorICAgICAgICA8ZGlhOnJlYWwgZGlhOnZhbD0iMiIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImJvcmRlcl93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCBkaWE6dmFsPSIwLjEiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJib3JkZXJfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIGRpYTp2YWw9IiMwMDAwMDAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJpbm5lcl9jb2xvciI+CisgICAgICAgIDxkaWE6Y29sb3IgZGlhOnZhbD0iI2ZmZmZmZiIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImxpbmVfc3R5bGUiPgorICAgICAgICA8ZGlhOmVudW0gZGlhOnZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgIDwvZGlhOm9iamVjdD4KKyAgPC9kaWE6bGF5ZXI+Cis8L2RpYTpkaWFncmFtPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvZGlhLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9kaWEueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvZGlhLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2lkMS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pZDEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMGI5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pZDEueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChzcmMgfCBkZXN0KSo+Cis8IUVMRU1FTlQgc3JjIEVNUFRZPgorPCFFTEVNRU5UIGRlc3QgRU1QVFk+Cis8IUFUVExJU1Qgc3JjIHJlZiBJRFJFRiAjSU1QTElFRD4KKzwhQVRUTElTVCBkZXN0IGlkIElEICNJTVBMSUVEPgorXT4KKzxkb2M+CisgIDxzcmMgcmVmPSJmb28iLz4KKyAgPGRlc3QgaWQ9ImZvbyIvPgorICA8c3JjIHJlZj0iZm9vIi8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2lkMS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaWQxLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2lkMS54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pZDIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaWQyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2VmNGE2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaWQyLnhtbApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoc3JjIHwgZGVzdCkqPgorPCFFTEVNRU5UIHNyYyBFTVBUWT4KKzwhRUxFTUVOVCBkZXN0IEVNUFRZPgorPCFBVFRMSVNUIHNyYyByZWYgSURSRUYgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVzdCBpZCBJRCAjSU1QTElFRD4KKzwhRU5USVRZIGRlc3QgIjxkZXN0IGlkPSdmb28nLz4iPgorXT4KKzxkb2M+CisgIDxzcmMgcmVmPSJmb28iLz4KKyAgJmRlc3Q7CisgIDxzcmMgcmVmPSJmb28iLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaWQyLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pZDIueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaWQyLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2lkMy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pZDMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMzYwM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pZDMueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChzcmMgfCBkZXN0KSo+Cis8IUVMRU1FTlQgc3JjIEVNUFRZPgorPCFFTEVNRU5UIGRlc3QgRU1QVFk+Cis8IUFUVExJU1Qgc3JjIHJlZiBJRFJFRiAjSU1QTElFRD4KKzwhQVRUTElTVCBkZXN0IGlkIElEICNJTVBMSUVEPgorPCFFTlRJVFkgZGVzdCBTWVNURU0gImR0ZHMvZGVzdGZvby5lbnQiPgorXT4KKzxkb2M+CisgIDxzcmMgcmVmPSJmb28iLz4KKyAgJmRlc3Q7CisgIDxzcmMgcmVmPSJmb28iLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaWQzLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pZDMueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaWQzLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2luZGV4LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2luZGV4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzRmYTRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvaW5kZXgueG1sCkBAIC0wLDAgKzEsODA4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJpc28tODg1OS0xIj8+Cis8IURPQ1RZUEUgTmV3c01MIFBVQkxJQyAidXJuOm5ld3NtbDppcHRjLm9yZzoyMDAwMTAwNjpOZXdzTUx2MS4wOjEiICJkdGRzL05ld3NNTHYxLjAuZHRkIiBbCis8IUVOVElUWSAlIG5pdGYgU1lTVEVNICJkdGRzL25pdGYtMi01LmR0ZCI+Cis8IS0tCisJTmV3cyBJbmR1c3RyeSBUZXh0IEZvcm1hdAorCURvY3VtZW50IFR5cGUgRGVmaW5pdGlvbiAtIFZlcnNpb24gMi41CisJaHR0cDovL3d3dy5uaXRmLm9yZy8KKworCUNvcHlyaWdodCAoYykgMjAwMC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKwlJbnRlcm5hdGlvbmFsIFByZXNzIFRlbGVjb21tdW5pY2F0aW9ucyBDb3VuY2lsCisJaHR0cDovL3d3dy5pcHRjLm9yZworCQkKKwlMYXN0IGNoYW5nZWQ6IDkgQXVndXN0IDIwMDAgIHdiL2tyL2FrCisJCisJRm9yIHRoZSBsaXN0IG9mIG1vZGlmaWNhdGlvbnMgZnJvbSBwcmV2aW91cyByZWxlYXNlcywgc2VlOgorCQlodHRwOi8vd3d3Lm5pdGYub3JnL3JlY2VudC1tb2RpZmljYXRpb25zLmh0bWwgCisKKwlGb3IgdGhlIGxpc3Qgb2YgcHJvcG9zZWQgbW9kaWZpY2F0aW9ucywgc2VlOgorCQlodHRwOi8vd3d3Lm5pdGYub3JnL3Byb3Bvc2VkLWNoYW5nZXMuaHRtbCAKKy0tPjwhRU5USVRZICUgZW5yaWNoZWQtdGV4dCAiCisJI1BDREFUQQorCXwgY2hyb24KKwl8IGNvcHlyaXRlCisJfCBldmVudAorCXwgZnVuY3Rpb24KKwl8IGxvY2F0aW9uCisJfCBtb25leQorCXwgbnVtCisJfCBvYmplY3QudGl0bGUKKwl8IG9yZworCXwgcGVyc29uCisJfCBwb3N0YWRkcgorCXwgdmlydGxvYworCXwgYQorCXwgYnIKKwl8IGVtCisJfCBsYW5nCisJfCBwcm9ub3VuY2UKKwl8IHEKKwkiPgorPCFFTlRJVFkgJSBibG9jay5oZWFkICJkYXRlbGluZT8sIGNvcHlyaXRlPywgYWJzdHJhY3Q/Ij4KKzwhRU5USVRZICUgYmxvY2suY29udGVudCAicCB8IGhsMiB8IHRhYmxlIHwgbWVkaWEgfCBvbCB8IHVsIHwgZGwgfCBicSB8IGZuIHwgbm90ZSB8IHByZSB8IGhyIj4KKzwhRU5USVRZICUgYmxvY2suZW5kICJkYXRhc291cmNlPyI+Cis8IUVOVElUWSAlIGdsb2JhbC1hdHRyaWJ1dGVzICIKKwlpZCAJSUQgCQkJCQkJI0lNUExJRUQKKwkiPgorPCFFTlRJVFkgJSBjb21tb24tYXR0cmlidXRlcyAiCisJJWdsb2JhbC1hdHRyaWJ1dGVzOworCWNsYXNzIAlOTVRPS0VOUyAJCQkJCSNJTVBMSUVECisJc3R5bGUgCUNEQVRBIAkJCQkJCSNJTVBMSUVECisJbGFuZyAJTk1UT0tFTiAJCQkJCSNJTVBMSUVECisJZGlyIAkobHRyIHwgcnRsKSAJCQkJCSNJTVBMSUVECisJIj4KKzwhRU5USVRZICUgY2VsbC5hbGlnbiAiCisJYWxpZ24gCShsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCBqdXN0aWZ5IHwgY2hhcikgCSNJTVBMSUVECisJY2hhciAJQ0RBVEEgCQkJCQkJI0lNUExJRUQKKwljaGFyb2ZmIENEQVRBIAkJCQkJCSNJTVBMSUVECisJIj4KKzwhRU5USVRZICUgY2VsbC52YWxpZ24gIgorCXZhbGlnbiAJKHRvcCB8IG1pZGRsZSB8IGJvdHRvbSB8IGJhc2VsaW5lKSAJCSNJTVBMSUVECisJIj4KKzwhRU5USVRZICUgdXJsLmxpbmsgIgorCW1kIAlDREFUQSAJCQkJCQkjSU1QTElFRAorCSI+Cis8IUVOVElUWSAlIGJvb2xlYW4gIih0cnVlIHwgZmFsc2UpIj4KKzwhRUxFTUVOVCBuaXRmIChoZWFkICwgYm9keSk+Cis8IUFUVExJU1Qgbml0ZiBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBuaXRmIHVubyBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBuaXRmIHZlcnNpb24gQ0RBVEEgI0ZJWEVEICItLy9JUFRDLU5BQS8vRFREIE5JVEYtWE1MIDIuMS8vRU4iPgorPCFBVFRMSVNUIG5pdGYgY2hhbmdlLmRhdGUgQ0RBVEEgI0ZJWEVEICI0IEp1bHkgMjAwMCI+Cis8IUFUVExJU1Qgbml0ZiBjaGFuZ2UudGltZSBDREFUQSAjRklYRUQgIjE5MDAiPgorPCFBVFRMSVNUIG5pdGYgYmFzZWxhbmcgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1Qgbml0ZiBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhRUxFTUVOVCBoZWFkICh0aXRsZT8gLCBtZXRhKiAsIHRvYmplY3Q/ICwgaWltPyAsIGRvY2RhdGE/ICwgcHViZGF0YSogLCByZXZpc2lvbi1oaXN0b3J5Kik+Cis8IUFUVExJU1QgaGVhZCBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGl0bGUgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGl0bGUgdHlwZSAobWFpbiB8IHN1YnRpdGxlIHwgcGFydHRpdGxlIHwgYWx0ZXJuYXRlIHwgYWJicmV2IHwgb3RoZXIpICNJTVBMSUVEPgorPCFFTEVNRU5UIG1ldGEgRU1QVFk+Cis8IUFUVExJU1QgbWV0YSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBtZXRhIGh0dHAtZXF1aXYgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBtZXRhIG5hbWUgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBtZXRhIGNvbnRlbnQgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIHRvYmplY3QgKHRvYmplY3QucHJvcGVydHkqICwgdG9iamVjdC5zdWJqZWN0Kik+Cis8IUFUVExJU1QgdG9iamVjdCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCB0b2JqZWN0IHRvYmplY3QudHlwZSBDREFUQSAibmV3cyI+Cis8IUVMRU1FTlQgdG9iamVjdC5wcm9wZXJ0eSBFTVBUWT4KKzwhQVRUTElTVCB0b2JqZWN0LnByb3BlcnR5IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHRvYmplY3QucHJvcGVydHkgdG9iamVjdC5wcm9wZXJ0eS50eXBlIENEQVRBICJjdXJyZW50Ij4KKzwhRUxFTUVOVCB0b2JqZWN0LnN1YmplY3QgRU1QVFk+Cis8IUFUVExJU1QgdG9iamVjdC5zdWJqZWN0IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHRvYmplY3Quc3ViamVjdCB0b2JqZWN0LnN1YmplY3QuaXByIENEQVRBICJJUFRDIj4KKzwhQVRUTElTVCB0b2JqZWN0LnN1YmplY3QgdG9iamVjdC5zdWJqZWN0LnJlZm51bSBOTVRPS0VOICNSRVFVSVJFRD4KKzwhQVRUTElTVCB0b2JqZWN0LnN1YmplY3QgdG9iamVjdC5zdWJqZWN0LmNvZGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdG9iamVjdC5zdWJqZWN0IHRvYmplY3Quc3ViamVjdC50eXBlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRvYmplY3Quc3ViamVjdCB0b2JqZWN0LnN1YmplY3QubWF0dGVyIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRvYmplY3Quc3ViamVjdCB0b2JqZWN0LnN1YmplY3QuZGV0YWlsIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGlpbSAoZHMpKj4KKzwhQVRUTElTVCBpaW0gaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgaWltIHZlciBOTVRPS0VOICNJTVBMSUVEPgorPCFFTEVNRU5UIGRzIEVNUFRZPgorPCFBVFRMSVNUIGRzIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGRzIG51bSBOTVRPS0VOICNSRVFVSVJFRD4KKzwhQVRUTElTVCBkcyB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBkb2NkYXRhIChjb3JyZWN0aW9uIHwgZXZsb2MgfCBkb2MtaWQgfCBkZWwtbGlzdCB8IHVyZ2VuY3kgfCBmaXh0dXJlIHwgZGF0ZS5pc3N1ZSB8IGRhdGUucmVsZWFzZSB8IGRhdGUuZXhwaXJlIHwgZG9jLXNjb3BlIHwgc2VyaWVzIHwgZWQtbXNnIHwgZHUta2V5IHwgZG9jLmNvcHlyaWdodCB8IGRvYy5yaWdodHMgfCBrZXktbGlzdCkqPgorPCFBVFRMSVNUIGRvY2RhdGEgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgY29ycmVjdGlvbiBFTVBUWT4KKzwhQVRUTElTVCBjb3JyZWN0aW9uIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGNvcnJlY3Rpb24gaW5mbyBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBjb3JyZWN0aW9uIGlkLXN0cmluZyBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBjb3JyZWN0aW9uIHJlZy1zcmMgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZXZsb2MgRU1QVFk+Cis8IUFUVExJU1QgZXZsb2MgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXZsb2MgaXNvLWNjIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGV2bG9jIHN0YXRlLXByb3YgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXZsb2MgY291bnR5LWRpc3QgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXZsb2MgY2l0eSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBkb2MtaWQgRU1QVFk+Cis8IUFUVExJU1QgZG9jLWlkIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy1pZCByZWdzcmMgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZG9jLWlkIGlkLXN0cmluZyBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBkZWwtbGlzdCAoZnJvbS1zcmMpKj4KKzwhQVRUTElTVCBkZWwtbGlzdCBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBmcm9tLXNyYyBFTVBUWT4KKzwhQVRUTElTVCBmcm9tLXNyYyBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBmcm9tLXNyYyBzcmMtbmFtZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBmcm9tLXNyYyBsZXZlbC1udW1iZXIgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgdXJnZW5jeSBFTVBUWT4KKzwhQVRUTElTVCB1cmdlbmN5IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHVyZ2VuY3kgZWQtdXJnIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUVMRU1FTlQgZml4dHVyZSBFTVBUWT4KKzwhQVRUTElTVCBmaXh0dXJlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGZpeHR1cmUgZml4LWlkIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGRhdGUuaXNzdWUgRU1QVFk+Cis8IUFUVExJU1QgZGF0ZS5pc3N1ZSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBkYXRlLmlzc3VlIG5vcm0gQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZGF0ZS5yZWxlYXNlIEVNUFRZPgorPCFBVFRMSVNUIGRhdGUucmVsZWFzZSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBkYXRlLnJlbGVhc2Ugbm9ybSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBkYXRlLmV4cGlyZSBFTVBUWT4KKzwhQVRUTElTVCBkYXRlLmV4cGlyZSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBkYXRlLmV4cGlyZSBub3JtIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGRvYy1zY29wZSBFTVBUWT4KKzwhQVRUTElTVCBkb2Mtc2NvcGUgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgZG9jLXNjb3BlIHNjb3BlIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIHNlcmllcyBFTVBUWT4KKzwhQVRUTElTVCBzZXJpZXMgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1Qgc2VyaWVzIHNlcmllcy5uYW1lIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHNlcmllcyBzZXJpZXMucGFydCBOTVRPS0VOICIwIj4KKzwhQVRUTElTVCBzZXJpZXMgc2VyaWVzLnRvdGFscGFydCBOTVRPS0VOICIwIj4KKzwhRUxFTUVOVCBlZC1tc2cgRU1QVFk+Cis8IUFUVExJU1QgZWQtbXNnIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGVkLW1zZyBtc2ctdHlwZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBlZC1tc2cgaW5mbyBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBkdS1rZXkgRU1QVFk+Cis8IUFUVExJU1QgZHUta2V5IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGR1LWtleSBnZW5lcmF0aW9uIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgZHUta2V5IHBhcnQgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBkdS1rZXkgdmVyc2lvbiBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGR1LWtleSBrZXkgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZG9jLmNvcHlyaWdodCBFTVBUWT4KKzwhQVRUTElTVCBkb2MuY29weXJpZ2h0IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy5jb3B5cmlnaHQgeWVhciBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy5jb3B5cmlnaHQgaG9sZGVyIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGRvYy5yaWdodHMgRU1QVFk+Cis8IUFUVExJU1QgZG9jLnJpZ2h0cyBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBkb2MucmlnaHRzIG93bmVyIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy5yaWdodHMgc3RhcnRkYXRlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy5yaWdodHMgZW5kZGF0ZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBkb2MucmlnaHRzIGFnZW50IENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy5yaWdodHMgZ2VvZ3JhcGh5IENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy5yaWdodHMgbG9jYXRpb24tY29kZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBkb2MucmlnaHRzIGNvZGUtc291cmNlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGRvYy5yaWdodHMgdHlwZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBkb2MucmlnaHRzIGxpbWl0YXRpb25zIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGtleS1saXN0IChrZXl3b3JkKSo+Cis8IUFUVExJU1Qga2V5LWxpc3QgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQga2V5d29yZCBFTVBUWT4KKzwhQVRUTElTVCBrZXl3b3JkIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGtleXdvcmQga2V5IENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIHB1YmRhdGEgRU1QVFk+Cis8IUFUVExJU1QgcHViZGF0YSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBwdWJkYXRhIHR5cGUgKHByaW50IHwgYXVkaW8gfCB2aWRlbyB8IHdlYiB8IGFwcGxpYW5jZSB8IG90aGVyKSAjSU1QTElFRD4KKzwhQVRUTElTVCBwdWJkYXRhIGl0ZW0tbGVuZ3RoIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHB1YmRhdGEgdW5pdC1vZi1tZWFzdXJlICh3b3JkIHwgY2hhcmFjdGVyIHwgYnl0ZSB8IGluY2ggfCBwaWNhIHwgY20gfCBob3VyIHwgbWludXRlIHwgc2Vjb25kIHwgb3RoZXIpICNJTVBMSUVEPgorPCFBVFRMSVNUIHB1YmRhdGEgZGF0ZS5wdWJsaWNhdGlvbiBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBwdWJkYXRhIG5hbWUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHViZGF0YSBpc3NuIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHB1YmRhdGEgdm9sdW1lIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHB1YmRhdGEgbnVtYmVyIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHB1YmRhdGEgaXNzdWUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHViZGF0YSBlZGl0aW9uLm5hbWUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHViZGF0YSBlZGl0aW9uLmFyZWEgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHViZGF0YSBwb3NpdGlvbi5zZWN0aW9uIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHB1YmRhdGEgcG9zaXRpb24uc2VxdWVuY2UgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHViZGF0YSBleC1yZWYgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmV2aXNpb24taGlzdG9yeSBFTVBUWT4KKzwhQVRUTElTVCByZXZpc2lvbi1oaXN0b3J5IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHJldmlzaW9uLWhpc3RvcnkgbmFtZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCByZXZpc2lvbi1oaXN0b3J5IGZ1bmN0aW9uICh3cml0ZXItYXV0aG9yIHwgZWRpdG9yIHwgcHJvZHVjZXIgfCBhcmNoaXZpc3QgfCB2aWRlb2dyYXBoZXIgfCBncmFwaGljLWFydGlzdCB8IHBob3RvZ3JhcGhlciB8IHN0YXRpc3RpY2lhbiB8IG90aGVyKSAjSU1QTElFRD4KKzwhQVRUTElTVCByZXZpc2lvbi1oaXN0b3J5IG5vcm0gQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcmV2aXNpb24taGlzdG9yeSBjb21tZW50IENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGJvZHkgKGJvZHkuaGVhZD8gLCBib2R5LmNvbnRlbnQqICwgYm9keS5lbmQ/KT4KKzwhQVRUTElTVCBib2R5IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGJvZHkgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgYm9keSBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBib2R5IGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBib2R5IGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhQVRUTElTVCBib2R5IGJhY2tncm91bmQgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgYm9keS5oZWFkIChoZWRsaW5lPyAsIG5vdGUqICwgcmlnaHRzPyAsIGJ5bGluZSogLCBkaXN0cmlidXRvcj8gLCBkYXRlbGluZSogLCBhYnN0cmFjdD8gLCBzZXJpZXM/KT4KKzwhQVRUTElTVCBib2R5LmhlYWQgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgaGVkbGluZSAoaGwxICwgaGwyKik+Cis8IUFUVExJU1QgaGVkbGluZSBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBobDEgKCNQQ0RBVEEgfCBjaHJvbiB8IGNvcHlyaXRlIHwgZXZlbnQgfCBmdW5jdGlvbiB8IGxvY2F0aW9uIHwgbW9uZXkgfCBudW0gfCBvYmplY3QudGl0bGUgfCBvcmcgfCBwZXJzb24gfCBwb3N0YWRkciB8IHZpcnRsb2MgfCBhIHwgYnIgfCBlbSB8IGxhbmcgfCBwcm9ub3VuY2UgfCBxKSo+Cis8IUFUVExJU1QgaGwxIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGhsMSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBobDEgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgaGwxIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBobDEgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFFTEVNRU5UIGhsMiAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEpKj4KKzwhQVRUTElTVCBobDIgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgaGwyIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIGhsMiBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBobDIgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGhsMiBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUVMRU1FTlQgbm90ZSAoYm9keS5jb250ZW50KSs+Cis8IUFUVExJU1Qgbm90ZSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBub3RlIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIG5vdGUgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1Qgbm90ZSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1Qgbm90ZSBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUFUVExJU1Qgbm90ZSBub3RlY2xhc3MgKGNweXJ0IHwgZW5kIHwgaGQgfCBlZGl0b3Jzbm90ZSB8IHRyYWRlbWsgfCB1bmRlZikgI0lNUExJRUQ+Cis8IUFUVExJU1Qgbm90ZSB0eXBlIChzdGQgfCBwYSB8IG5wYSkgInN0ZCI+Cis8IUFUVExJU1Qgbm90ZSBzcmMgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1Qgbm90ZSBtZCBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCByaWdodHMgKCNQQ0RBVEEgfCByaWdodHMub3duZXIgfCByaWdodHMuc3RhcnRkYXRlIHwgcmlnaHRzLmVuZGRhdGUgfCByaWdodHMuYWdlbnQgfCByaWdodHMuZ2VvZ3JhcGh5IHwgcmlnaHRzLnR5cGUgfCByaWdodHMubGltaXRhdGlvbnMpKj4KKzwhQVRUTElTVCByaWdodHMgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmlnaHRzLm93bmVyICgjUENEQVRBKT4KKzwhQVRUTElTVCByaWdodHMub3duZXIgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgcmlnaHRzLm93bmVyIGNvbnRhY3QgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmlnaHRzLnN0YXJ0ZGF0ZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmlnaHRzLnN0YXJ0ZGF0ZSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCByaWdodHMuc3RhcnRkYXRlIG5vcm0gQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmlnaHRzLmVuZGRhdGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHJpZ2h0cy5lbmRkYXRlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHJpZ2h0cy5lbmRkYXRlIG5vcm0gQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmlnaHRzLmFnZW50ICgjUENEQVRBKT4KKzwhQVRUTElTVCByaWdodHMuYWdlbnQgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgcmlnaHRzLmFnZW50IGNvbnRhY3QgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmlnaHRzLmdlb2dyYXBoeSAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmlnaHRzLmdlb2dyYXBoeSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCByaWdodHMuZ2VvZ3JhcGh5IGxvY2F0aW9uLWNvZGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcmlnaHRzLmdlb2dyYXBoeSBjb2RlLXNvdXJjZSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCByaWdodHMudHlwZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmlnaHRzLnR5cGUgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmlnaHRzLmxpbWl0YXRpb25zICgjUENEQVRBKT4KKzwhQVRUTElTVCByaWdodHMubGltaXRhdGlvbnMgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgYnlsaW5lICgjUENEQVRBIHwgcGVyc29uIHwgYnl0dGwgfCBsb2NhdGlvbiB8IHZpcnRsb2MpKj4KKzwhQVRUTElTVCBieWxpbmUgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgYnl0dGwgKCNQQ0RBVEEgfCBvcmcpKj4KKzwhQVRUTElTVCBieXR0bCBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBkaXN0cmlidXRvciAoI1BDREFUQSB8IG9yZykqPgorPCFBVFRMSVNUIGRpc3RyaWJ1dG9yIGlkIElEICNJTVBMSUVEPgorPCFFTEVNRU5UIGRhdGVsaW5lICgjUENEQVRBIHwgbG9jYXRpb24gfCBzdG9yeS5kYXRlKSo+Cis8IUFUVExJU1QgZGF0ZWxpbmUgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGF0ZWxpbmUgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGF0ZWxpbmUgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGF0ZWxpbmUgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGRhdGVsaW5lIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhRUxFTUVOVCBzdG9yeS5kYXRlICgjUENEQVRBKT4KKzwhQVRUTElTVCBzdG9yeS5kYXRlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHN0b3J5LmRhdGUgbm9ybSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBhYnN0cmFjdCAocCB8IGhsMiB8IHRhYmxlIHwgbWVkaWEgfCBvbCB8IHVsIHwgZGwgfCBicSB8IGZuIHwgbm90ZSB8IHByZSB8IGhyKSs+Cis8IUFUVExJU1QgYWJzdHJhY3QgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgY29weXJpdGUgKCNQQ0RBVEEgfCBjb3B5cml0ZS55ZWFyIHwgY29weXJpdGUuaG9sZGVyKSo+Cis8IUFUVExJU1QgY29weXJpdGUgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgY29weXJpdGUueWVhciAoI1BDREFUQSk+Cis8IUFUVExJU1QgY29weXJpdGUueWVhciBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBjb3B5cml0ZS5ob2xkZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGNvcHlyaXRlLmhvbGRlciBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBib2R5LmNvbnRlbnQgKGJsb2NrIHwgcCB8IGhsMiB8IHRhYmxlIHwgbWVkaWEgfCBvbCB8IHVsIHwgZGwgfCBicSB8IGZuIHwgbm90ZSB8IHByZSB8IGhyKSo+Cis8IUFUVExJU1QgYm9keS5jb250ZW50IGlkIElEICNJTVBMSUVEPgorPCFFTEVNRU5UIGJsb2NrICgoZGF0ZWxpbmU/ICwgY29weXJpdGU/ICwgYWJzdHJhY3Q/KT8gLCAocCB8IGhsMiB8IHRhYmxlIHwgbWVkaWEgfCBvbCB8IHVsIHwgZGwgfCBicSB8IGZuIHwgbm90ZSB8IHByZSB8IGhyKSogLCBkYXRhc291cmNlPyk+Cis8IUFUVExJU1QgYmxvY2sgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgYmxvY2sgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgYmxvY2sgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgYmxvY2sgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGJsb2NrIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhRUxFTUVOVCBwICgjUENEQVRBIHwgY2hyb24gfCBjb3B5cml0ZSB8IGV2ZW50IHwgZnVuY3Rpb24gfCBsb2NhdGlvbiB8IG1vbmV5IHwgbnVtIHwgb2JqZWN0LnRpdGxlIHwgb3JnIHwgcGVyc29uIHwgcG9zdGFkZHIgfCB2aXJ0bG9jIHwgYSB8IGJyIHwgZW0gfCBsYW5nIHwgcHJvbm91bmNlIHwgcSkqPgorPCFBVFRMSVNUIHAgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgcCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBwIHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHAgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIHAgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIHAgbGVkZSAodHJ1ZSB8IGZhbHNlKSAjSU1QTElFRD4KKzwhQVRUTElTVCBwIHN1bW1hcnkgKHRydWUgfCBmYWxzZSkgI0lNUExJRUQ+Cis8IUFUVExJU1QgcCBvcHRpb25hbC10ZXh0ICh0cnVlIHwgZmFsc2UpICNJTVBMSUVEPgorPCFFTEVNRU5UIHRhYmxlIChjYXB0aW9uPyAsIChjb2wqIHwgY29sZ3JvdXAqKSAsIHRoZWFkPyAsIHRmb290PyAsIHRib2R5Kyk+Cis8IUFUVExJU1QgdGFibGUgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGFibGUgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGFibGUgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGFibGUgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhYmxlIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhQVRUTElTVCB0YWJsZSB0YWJsZXR5cGUgRU5USVRZICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhYmxlIGFsaWduIChsZWZ0IHwgY2VudGVyIHwgcmlnaHQpICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhYmxlIHdpZHRoIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhYmxlIGNvbHMgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCB0YWJsZSBib3JkZXIgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGFibGUgZnJhbWUgKHZvaWQgfCBhYm92ZSB8IGJlbG93IHwgaHNpZGVzIHwgbGhzIHwgcmhzIHwgdnNpZGVzIHwgYm94IHwgYm9yZGVyKSAjSU1QTElFRD4KKzwhQVRUTElTVCB0YWJsZSBydWxlcyAobm9uZSB8IGJhc2ljIHwgcm93cyB8IGNvbHMgfCBhbGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhYmxlIGNlbGxzcGFjaW5nIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhYmxlIGNlbGxwYWRkaW5nIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhYmxlIHRhYmxlLmZtdCBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0YWJsZSB0YWJsZS5kb21haW4gQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGFibGUgdGFibGUuaW5zdCBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBtZWRpYSAobWVkaWEtbWV0YWRhdGEqICwgbWVkaWEtcmVmZXJlbmNlICwgbWVkaWEtb2JqZWN0PyAsIG1lZGlhLWNhcHRpb24qICwgbWVkaWEtcHJvZHVjZXI/KT4KKzwhQVRUTElTVCBtZWRpYSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYSBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhIG1lZGlhLXR5cGUgKHRleHQgfCBhdWRpbyB8IGltYWdlIHwgdmlkZW8gfCBkYXRhIHwgYXBwbGljYXRpb24gfCBvdGhlcikgI1JFUVVJUkVEPgorPCFFTEVNRU5UIG1lZGlhLXJlZmVyZW5jZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1yZWZlcmVuY2Ugc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1yZWZlcmVuY2UgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZSBkYXRhLWxvY2F0aW9uIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBtZWRpYS1yZWZlcmVuY2UgbmFtZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1yZWZlcmVuY2Ugc291cmNlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZSBtaW1lLXR5cGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZSBjb2RpbmcgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIHRpbWUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIHRpbWUtdW5pdC1vZi1tZWFzdXJlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZSBvdXRjdWUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIHNvdXJjZS1jcmVkaXQgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIGNvcHlyaWdodCBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1yZWZlcmVuY2UgYWx0ZXJuYXRlLXRleHQgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIGhlaWdodCBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZSB3aWR0aCBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZSB1bml0cyAocGl4ZWxzKSAicGl4ZWxzIj4KKzwhQVRUTElTVCBtZWRpYS1yZWZlcmVuY2UgaW1hZ2VtYXAgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcmVmZXJlbmNlIG5vZmxvdyAobm9mbG93KSAjSU1QTElFRD4KKzwhRUxFTUVOVCBtZWRpYS1tZXRhZGF0YSBFTVBUWT4KKzwhQVRUTElTVCBtZWRpYS1tZXRhZGF0YSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1tZXRhZGF0YSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1tZXRhZGF0YSBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1tZXRhZGF0YSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtbWV0YWRhdGEgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLW1ldGFkYXRhIG5hbWUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIG1lZGlhLW1ldGFkYXRhIHZhbHVlIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIG1lZGlhLW9iamVjdCAoI1BDREFUQSk+Cis8IUFUVExJU1QgbWVkaWEtb2JqZWN0IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLW9iamVjdCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1vYmplY3Qgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtb2JqZWN0IGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1vYmplY3QgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLW9iamVjdCBlbmNvZGluZyBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgbWVkaWEtY2FwdGlvbiAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEgfCBwIHwgaGwyIHwgdGFibGUgfCBtZWRpYSB8IG9sIHwgdWwgfCBkbCB8IGJxIHwgZm4gfCBub3RlIHwgcHJlIHwgaHIpKj4KKzwhQVRUTElTVCBtZWRpYS1jYXB0aW9uIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIG1lZGlhLWNhcHRpb24gY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtY2FwdGlvbiBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1jYXB0aW9uIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1jYXB0aW9uIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhRUxFTUVOVCBtZWRpYS1wcm9kdWNlciAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEpKj4KKzwhQVRUTElTVCBtZWRpYS1wcm9kdWNlciBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1wcm9kdWNlciBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1wcm9kdWNlciBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBtZWRpYS1wcm9kdWNlciBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgbWVkaWEtcHJvZHVjZXIgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFFTEVNRU5UIG9sIChsaSkrPgorPCFBVFRMSVNUIG9sIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIG9sIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIG9sIHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIG9sIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBvbCBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUFUVExJU1Qgb2wgY29udGludWUgKGNvbnRpbnVlKSAjSU1QTElFRD4KKzwhQVRUTElTVCBvbCBzZXFudW0gTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBvbCBjb21wYWN0IChjb21wYWN0KSAjSU1QTElFRD4KKzwhRUxFTUVOVCB1bCAobGkpKz4KKzwhQVRUTElTVCB1bCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCB1bCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCB1bCBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB1bCBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgdWwgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIHVsIHdyYXAgKHZlcnQgfCBob3JpeiB8IG5vbmUpICJub25lIj4KKzwhQVRUTElTVCB1bCBwbGFpbiAocGxhaW4pICNJTVBMSUVEPgorPCFBVFRMSVNUIHVsIGRpbmdiYXQgRU5USVRZICNJTVBMSUVEPgorPCFBVFRMSVNUIHVsIHNyYyBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB1bCBtZCBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB1bCBjb21wYWN0IChjb21wYWN0KSAjSU1QTElFRD4KKzwhRUxFTUVOVCBsaSAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEgfCBwIHwgaGwyIHwgdGFibGUgfCBtZWRpYSB8IG9sIHwgdWwgfCBkbCB8IGJxIHwgZm4gfCBub3RlIHwgcHJlIHwgaHIpKj4KKzwhQVRUTElTVCBsaSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBsaSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBsaSBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBsaSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgbGkgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIGxpIGRpbmdiYXQgRU5USVRZICNJTVBMSUVEPgorPCFBVFRMSVNUIGxpIHNyYyBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBsaSBtZCBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBsaSBza2lwIE5NVE9LRU4gIjAiPgorPCFFTEVNRU5UIGRsIChkdCB8IGRkKSs+Cis8IUFUVExJU1QgZGwgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGwgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGwgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGwgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGRsIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhRUxFTUVOVCBkdCAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEpKj4KKzwhQVRUTElTVCBkdCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBkdCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBkdCBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBkdCBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgZHQgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFFTEVNRU5UIGRkIChibG9jaykqPgorPCFBVFRMSVNUIGRkIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGRkIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIGRkIHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGRkIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBkZCBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUVMRU1FTlQgYnEgKGJsb2NrKyAsIGNyZWRpdD8pKj4KKzwhQVRUTElTVCBicSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBicSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBicSBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBicSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgYnEgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIGJxIG5vd3JhcCAobm93cmFwKSAjSU1QTElFRD4KKzwhQVRUTElTVCBicSBxdW90ZS1zb3VyY2UgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgY3JlZGl0ICgjUENEQVRBIHwgY2hyb24gfCBjb3B5cml0ZSB8IGV2ZW50IHwgZnVuY3Rpb24gfCBsb2NhdGlvbiB8IG1vbmV5IHwgbnVtIHwgb2JqZWN0LnRpdGxlIHwgb3JnIHwgcGVyc29uIHwgcG9zdGFkZHIgfCB2aXJ0bG9jIHwgYSB8IGJyIHwgZW0gfCBsYW5nIHwgcHJvbm91bmNlIHwgcSkqPgorPCFBVFRMSVNUIGNyZWRpdCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBjcmVkaXQgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgY3JlZGl0IHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGNyZWRpdCBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgY3JlZGl0IGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhRUxFTUVOVCBmbiAoYm9keS5jb250ZW50KSs+Cis8IUFUVExJU1QgZm4gaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgZm4gY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgZm4gc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZm4gbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGZuIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhRUxFTUVOVCBwcmUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHByZSBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBociBFTVBUWT4KKzwhQVRUTElTVCBociBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBociBzcmMgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZGF0YXNvdXJjZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGF0YXNvdXJjZSBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBjYXB0aW9uICgjUENEQVRBIHwgY2hyb24gfCBjb3B5cml0ZSB8IGV2ZW50IHwgZnVuY3Rpb24gfCBsb2NhdGlvbiB8IG1vbmV5IHwgbnVtIHwgb2JqZWN0LnRpdGxlIHwgb3JnIHwgcGVyc29uIHwgcG9zdGFkZHIgfCB2aXJ0bG9jIHwgYSB8IGJyIHwgZW0gfCBsYW5nIHwgcHJvbm91bmNlIHwgcSB8IHAgfCBobDIgfCB0YWJsZSB8IG1lZGlhIHwgb2wgfCB1bCB8IGRsIHwgYnEgfCBmbiB8IG5vdGUgfCBwcmUgfCBocikqPgorPCFBVFRMSVNUIGNhcHRpb24gaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgY2FwdGlvbiBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBjYXB0aW9uIHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGNhcHRpb24gbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIGNhcHRpb24gZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIGNhcHRpb24gYWxpZ24gKHRvcCB8IGJvdHRvbSB8IGxlZnQgfCByaWdodCkgI0lNUExJRUQ+Cis8IUVMRU1FTlQgY29sIEVNUFRZPgorPCFBVFRMSVNUIGNvbCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBjb2wgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sIHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGNvbCBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhQVRUTElTVCBjb2wgc3BhbiBOTVRPS0VOICIxIj4KKzwhQVRUTElTVCBjb2wgd2lkdGggQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sIGFsaWduIChsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCBqdXN0aWZ5IHwgY2hhcikgI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sIGNoYXIgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sIGNoYXJvZmYgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sIHZhbGlnbiAodG9wIHwgbWlkZGxlIHwgYm90dG9tIHwgYmFzZWxpbmUpICNJTVBMSUVEPgorPCFFTEVNRU5UIGNvbGdyb3VwIChjb2wpKz4KKzwhQVRUTElTVCBjb2xncm91cCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBjb2xncm91cCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBjb2xncm91cCBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBjb2xncm91cCBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sZ3JvdXAgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIGNvbGdyb3VwIGFsaWduIChsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCBqdXN0aWZ5IHwgY2hhcikgI0lNUExJRUQ+Cis8IUFUVExJU1QgY29sZ3JvdXAgY2hhciBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBjb2xncm91cCBjaGFyb2ZmIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGNvbGdyb3VwIHZhbGlnbiAodG9wIHwgbWlkZGxlIHwgYm90dG9tIHwgYmFzZWxpbmUpICNJTVBMSUVEPgorPCFFTEVNRU5UIHRoZWFkICh0cikrPgorPCFBVFRMSVNUIHRoZWFkIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHRoZWFkIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIHRoZWFkIHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRoZWFkIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCB0aGVhZCBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGhlYWQgYWxpZ24gKGxlZnQgfCBjZW50ZXIgfCByaWdodCB8IGp1c3RpZnkgfCBjaGFyKSAjSU1QTElFRD4KKzwhQVRUTElTVCB0aGVhZCBjaGFyIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRoZWFkIGNoYXJvZmYgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGhlYWQgdmFsaWduICh0b3AgfCBtaWRkbGUgfCBib3R0b20gfCBiYXNlbGluZSkgI0lNUExJRUQ+Cis8IUVMRU1FTlQgdGJvZHkgKHRyKSs+Cis8IUFUVExJU1QgdGJvZHkgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGJvZHkgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGJvZHkgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGJvZHkgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIHRib2R5IGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhQVRUTElTVCB0Ym9keSBhbGlnbiAobGVmdCB8IGNlbnRlciB8IHJpZ2h0IHwganVzdGlmeSB8IGNoYXIpICNJTVBMSUVEPgorPCFBVFRMSVNUIHRib2R5IGNoYXIgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGJvZHkgY2hhcm9mZiBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0Ym9keSB2YWxpZ24gKHRvcCB8IG1pZGRsZSB8IGJvdHRvbSB8IGJhc2VsaW5lKSAjSU1QTElFRD4KKzwhRUxFTUVOVCB0Zm9vdCAodHIpKz4KKzwhQVRUTElTVCB0Zm9vdCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCB0Zm9vdCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCB0Zm9vdCBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0Zm9vdCBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgdGZvb3QgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIHRmb290IGFsaWduIChsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCBqdXN0aWZ5IHwgY2hhcikgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGZvb3QgY2hhciBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0Zm9vdCBjaGFyb2ZmIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRmb290IHZhbGlnbiAodG9wIHwgbWlkZGxlIHwgYm90dG9tIHwgYmFzZWxpbmUpICNJTVBMSUVEPgorPCFFTEVNRU5UIHRyICh0aCB8IHRkKSs+Cis8IUFUVExJU1QgdHIgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgdHIgY2xhc3MgTk1UT0tFTlMgI0lNUExJRUQ+Cis8IUFUVExJU1QgdHIgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdHIgbGFuZyBOTVRPS0VOICNJTVBMSUVEPgorPCFBVFRMSVNUIHRyIGRpciAobHRyIHwgcnRsKSAjSU1QTElFRD4KKzwhQVRUTElTVCB0ciBhbGlnbiAobGVmdCB8IGNlbnRlciB8IHJpZ2h0IHwganVzdGlmeSB8IGNoYXIpICNJTVBMSUVEPgorPCFBVFRMSVNUIHRyIGNoYXIgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdHIgY2hhcm9mZiBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0ciB2YWxpZ24gKHRvcCB8IG1pZGRsZSB8IGJvdHRvbSB8IGJhc2VsaW5lKSAjSU1QTElFRD4KKzwhRUxFTUVOVCB0aCAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEgfCBwIHwgaGwyIHwgdGFibGUgfCBtZWRpYSB8IG9sIHwgdWwgfCBkbCB8IGJxIHwgZm4gfCBub3RlIHwgcHJlIHwgaHIpKj4KKzwhQVRUTElTVCB0aCBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCB0aCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCB0aCBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0aCBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgdGggZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIHRoIGF4aXMgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGggYXhlcyBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0aCBub3dyYXAgKG5vd3JhcCkgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGggcm93c3BhbiBOTVRPS0VOICIxIj4KKzwhQVRUTElTVCB0aCBjb2xzcGFuIE5NVE9LRU4gIjEiPgorPCFBVFRMSVNUIHRoIGFsaWduIChsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCBqdXN0aWZ5IHwgY2hhcikgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGggY2hhciBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0aCBjaGFyb2ZmIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRoIHZhbGlnbiAodG9wIHwgbWlkZGxlIHwgYm90dG9tIHwgYmFzZWxpbmUpICNJTVBMSUVEPgorPCFFTEVNRU5UIHRkICgjUENEQVRBIHwgY2hyb24gfCBjb3B5cml0ZSB8IGV2ZW50IHwgZnVuY3Rpb24gfCBsb2NhdGlvbiB8IG1vbmV5IHwgbnVtIHwgb2JqZWN0LnRpdGxlIHwgb3JnIHwgcGVyc29uIHwgcG9zdGFkZHIgfCB2aXJ0bG9jIHwgYSB8IGJyIHwgZW0gfCBsYW5nIHwgcHJvbm91bmNlIHwgcSB8IHAgfCBobDIgfCB0YWJsZSB8IG1lZGlhIHwgb2wgfCB1bCB8IGRsIHwgYnEgfCBmbiB8IG5vdGUgfCBwcmUgfCBocikqPgorPCFBVFRMSVNUIHRkIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHRkIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIHRkIHN0eWxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRkIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCB0ZCBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGQgYXhpcyBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCB0ZCBheGVzIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRkIG5vd3JhcCAobm93cmFwKSAjSU1QTElFRD4KKzwhQVRUTElTVCB0ZCByb3dzcGFuIE5NVE9LRU4gIjEiPgorPCFBVFRMSVNUIHRkIGNvbHNwYW4gTk1UT0tFTiAiMSI+Cis8IUFUVExJU1QgdGQgYWxpZ24gKGxlZnQgfCBjZW50ZXIgfCByaWdodCB8IGp1c3RpZnkgfCBjaGFyKSAjSU1QTElFRD4KKzwhQVRUTElTVCB0ZCBjaGFyIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHRkIGNoYXJvZmYgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgdGQgdmFsaWduICh0b3AgfCBtaWRkbGUgfCBib3R0b20gfCBiYXNlbGluZSkgI0lNUExJRUQ+Cis8IUVMRU1FTlQgY2hyb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGNocm9uIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGNocm9uIG5vcm0gQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZXZlbnQgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPgorPCFBVFRMSVNUIGV2ZW50IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGV2ZW50IHN0YXJ0LWRhdGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXZlbnQgZW5kLWRhdGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXZlbnQgaWRzcmMgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIGV2ZW50IHZhbHVlIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBmdW5jdGlvbiAoI1BDREFUQSB8IGFsdC1jb2RlKSo+Cis8IUFUVExJU1QgZnVuY3Rpb24gaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgZnVuY3Rpb24gaWRzcmMgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIGZ1bmN0aW9uIHZhbHVlIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBsb2NhdGlvbiAoI1BDREFUQSB8IHN1YmxvY2F0aW9uIHwgY2l0eSB8IHN0YXRlIHwgcmVnaW9uIHwgY291bnRyeSB8IGFsdC1jb2RlKSo+Cis8IUFUVExJU1QgbG9jYXRpb24gaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgbG9jYXRpb24gbG9jYXRpb24tY29kZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBsb2NhdGlvbiBjb2RlLXNvdXJjZSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBzdWJsb2NhdGlvbiAoI1BDREFUQSB8IGFsdC1jb2RlKSo+Cis8IUFUVExJU1Qgc3VibG9jYXRpb24gaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1Qgc3VibG9jYXRpb24gbG9jYXRpb24tY29kZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBzdWJsb2NhdGlvbiBjb2RlLXNvdXJjZSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBjaXR5ICgjUENEQVRBIHwgYWx0LWNvZGUpKj4KKzwhQVRUTElTVCBjaXR5IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGNpdHkgY2l0eS1jb2RlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGNpdHkgY29kZS1zb3VyY2UgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgc3RhdGUgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPgorPCFBVFRMSVNUIHN0YXRlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHN0YXRlIHN0YXRlLWNvZGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1Qgc3RhdGUgY29kZS1zb3VyY2UgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcmVnaW9uICgjUENEQVRBIHwgYWx0LWNvZGUpKj4KKzwhQVRUTElTVCByZWdpb24gaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgcmVnaW9uIHJlZ2lvbi1jb2RlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIHJlZ2lvbiBjb2RlLXNvdXJjZSBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBjb3VudHJ5ICgjUENEQVRBIHwgYWx0LWNvZGUpKj4KKzwhQVRUTElTVCBjb3VudHJ5IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGNvdW50cnkgaXNvLWNjIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIG1vbmV5ICgjUENEQVRBKT4KKzwhQVRUTElTVCBtb25leSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBtb25leSB1bml0IENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIG1vbmV5IGRhdGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgbnVtICgjUENEQVRBIHwgZnJhYyB8IHN1YiB8IHN1cCkqPgorPCFBVFRMSVNUIG51bSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBudW0gdW5pdHMgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbnVtIGRlY2ltYWwtY2ggQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbnVtIHRob3VzYW5kcy1jaCBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBmcmFjIChudW1lciAsIGZyYWMtc2VwPyAsIGRlbm9tKT4KKzwhQVRUTElTVCBmcmFjIGlkIElEICNJTVBMSUVEPgorPCFFTEVNRU5UIG51bWVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBudW1lciBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBmcmFjLXNlcCAoI1BDREFUQSk+Cis8IUFUVExJU1QgZnJhYy1zZXAgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZGVub20gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRlbm9tIGlkIElEICNJTVBMSUVEPgorPCFFTEVNRU5UIHN1YiAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc3ViIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHN1YiBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBzdWIgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1Qgc3ViIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBzdWIgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFFTEVNRU5UIHN1cCAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc3VwIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHN1cCBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBzdXAgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1Qgc3VwIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBzdXAgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFFTEVNRU5UIG9iamVjdC50aXRsZSAoI1BDREFUQSB8IGFsdC1jb2RlKSo+Cis8IUFUVExJU1Qgb2JqZWN0LnRpdGxlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIG9iamVjdC50aXRsZSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBvYmplY3QudGl0bGUgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1Qgb2JqZWN0LnRpdGxlIGxhbmcgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBvYmplY3QudGl0bGUgZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFBVFRMSVNUIG9iamVjdC50aXRsZSBpZHNyYyBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1Qgb2JqZWN0LnRpdGxlIHZhbHVlIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBvcmcgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPgorPCFBVFRMSVNUIG9yZyBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBvcmcgaWRzcmMgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIG9yZyB2YWx1ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgYWx0LWNvZGUgRU1QVFk+Cis8IUFUVExJU1QgYWx0LWNvZGUgaWQgSUQgI0lNUExJRUQ+Cis8IUFUVExJU1QgYWx0LWNvZGUgaWRzcmMgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIGFsdC1jb2RlIHZhbHVlIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBwZXJzb24gKCNQQ0RBVEEgfCBuYW1lLmdpdmVuIHwgbmFtZS5mYW1pbHkgfCBmdW5jdGlvbiB8IGFsdC1jb2RlKSo+Cis8IUFUVExJU1QgcGVyc29uIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHBlcnNvbiBpZHNyYyBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgcGVyc29uIHZhbHVlIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBuYW1lLmdpdmVuICgjUENEQVRBKT4KKzwhQVRUTElTVCBuYW1lLmdpdmVuIGlkIElEICNJTVBMSUVEPgorPCFFTEVNRU5UIG5hbWUuZmFtaWx5ICgjUENEQVRBKT4KKzwhQVRUTElTVCBuYW1lLmZhbWlseSBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBwb3N0YWRkciAoYWRkcmVzc2VlICwgZGVsaXZlcnkucG9pbnQ/ICwgKHBvc3Rjb2RlIHwgZGVsaXZlcnkub2ZmaWNlIHwgcmVnaW9uIHwgY291bnRyeSkqKT4KKzwhQVRUTElTVCBwb3N0YWRkciBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCB2aXJ0bG9jICgjUENEQVRBIHwgYWx0LWNvZGUpKj4KKzwhQVRUTElTVCB2aXJ0bG9jIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHZpcnRsb2MgaWRzcmMgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIHZpcnRsb2MgdmFsdWUgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIGEgKCNQQ0RBVEEgfCBjaHJvbiB8IGNvcHlyaXRlIHwgZXZlbnQgfCBmdW5jdGlvbiB8IGxvY2F0aW9uIHwgbW9uZXkgfCBudW0gfCBvYmplY3QudGl0bGUgfCBvcmcgfCBwZXJzb24gfCBwb3N0YWRkciB8IHZpcnRsb2MgfCBhIHwgYnIgfCBlbSB8IGxhbmcgfCBwcm9ub3VuY2UgfCBxKSo+Cis8IUFUVExJU1QgYSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBhIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIGEgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgYSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgYSBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUFUVExJU1QgYSBocmVmIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGEgbmFtZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBhIG1kIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGEgcmVsIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgYSByZXYgTk1UT0tFTiAjSU1QTElFRD4KKzwhQVRUTElTVCBhIHRpdGxlIENEQVRBICNJTVBMSUVEPgorPCFBVFRMSVNUIGEgbWV0aG9kcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhRUxFTUVOVCBiciBFTVBUWT4KKzwhQVRUTElTVCBiciBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBlbSAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEpKj4KKzwhQVRUTElTVCBlbSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBlbSBjbGFzcyBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCBlbSBzdHlsZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBlbSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgZW0gZGlyIChsdHIgfCBydGwpICNJTVBMSUVEPgorPCFFTEVNRU5UIGxhbmcgKCNQQ0RBVEEgfCBjaHJvbiB8IGNvcHlyaXRlIHwgZXZlbnQgfCBmdW5jdGlvbiB8IGxvY2F0aW9uIHwgbW9uZXkgfCBudW0gfCBvYmplY3QudGl0bGUgfCBvcmcgfCBwZXJzb24gfCBwb3N0YWRkciB8IHZpcnRsb2MgfCBhIHwgYnIgfCBlbSB8IGxhbmcgfCBwcm9ub3VuY2UgfCBxKSo+Cis8IUFUVExJU1QgbGFuZyBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBsYW5nIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIGxhbmcgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgbGFuZyBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgbGFuZyBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcHJvbm91bmNlICgjUENEQVRBIHwgY2hyb24gfCBjb3B5cml0ZSB8IGV2ZW50IHwgZnVuY3Rpb24gfCBsb2NhdGlvbiB8IG1vbmV5IHwgbnVtIHwgb2JqZWN0LnRpdGxlIHwgb3JnIHwgcGVyc29uIHwgcG9zdGFkZHIgfCB2aXJ0bG9jIHwgYSB8IGJyIHwgZW0gfCBsYW5nIHwgcHJvbm91bmNlIHwgcSkqPgorPCFBVFRMSVNUIHByb25vdW5jZSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBwcm9ub3VuY2UgZ3VpZGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHJvbm91bmNlIHBob25ldGljIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIHEgKCNQQ0RBVEEgfCBjaHJvbiB8IGNvcHlyaXRlIHwgZXZlbnQgfCBmdW5jdGlvbiB8IGxvY2F0aW9uIHwgbW9uZXkgfCBudW0gfCBvYmplY3QudGl0bGUgfCBvcmcgfCBwZXJzb24gfCBwb3N0YWRkciB8IHZpcnRsb2MgfCBhIHwgYnIgfCBlbSB8IGxhbmcgfCBwcm9ub3VuY2UgfCBxKSo+Cis8IUFUVExJU1QgcSBpZCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBxIGNsYXNzIE5NVE9LRU5TICNJTVBMSUVEPgorPCFBVFRMSVNUIHEgc3R5bGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgcSBsYW5nIE5NVE9LRU4gI0lNUExJRUQ+Cis8IUFUVExJU1QgcSBkaXIgKGx0ciB8IHJ0bCkgI0lNUExJRUQ+Cis8IUFUVExJU1QgcSBxdW90ZS1zb3VyY2UgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgYWRkcmVzc2VlIChwZXJzb24gLCBmdW5jdGlvbj8gLCBjYXJlLm9mPyk+Cis8IUFUVExJU1QgYWRkcmVzc2VlIGlkIElEICNJTVBMSUVEPgorPCFFTEVNRU5UIGNhcmUub2YgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGNhcmUub2YgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZGVsaXZlcnkucG9pbnQgKCNQQ0RBVEEgfCBicikqPgorPCFBVFRMSVNUIGRlbGl2ZXJ5LnBvaW50IGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGRlbGl2ZXJ5LnBvaW50IHBvaW50LWNvZGUgQ0RBVEEgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVsaXZlcnkucG9pbnQgY29kZS1zb3VyY2UgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgcG9zdGNvZGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHBvc3Rjb2RlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHBvc3Rjb2RlIGNvZGUtc291cmNlIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGRlbGl2ZXJ5Lm9mZmljZSAoI1BDREFUQSB8IGJyKSo+Cis8IUFUVExJU1QgZGVsaXZlcnkub2ZmaWNlIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIGRlbGl2ZXJ5Lm9mZmljZSBvZmZpY2UtY29kZSBDREFUQSAjSU1QTElFRD4KKzwhQVRUTElTVCBkZWxpdmVyeS5vZmZpY2UgY29kZS1zb3VyY2UgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgYm9keS5lbmQgKHRhZ2xpbmU/ICwgYmlibGlvZ3JhcGh5Pyk+Cis8IUFUVExJU1QgYm9keS5lbmQgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgdGFnbGluZSAoI1BDREFUQSB8IGNocm9uIHwgY29weXJpdGUgfCBldmVudCB8IGZ1bmN0aW9uIHwgbG9jYXRpb24gfCBtb25leSB8IG51bSB8IG9iamVjdC50aXRsZSB8IG9yZyB8IHBlcnNvbiB8IHBvc3RhZGRyIHwgdmlydGxvYyB8IGEgfCBiciB8IGVtIHwgbGFuZyB8IHByb25vdW5jZSB8IHEpKj4KKzwhQVRUTElTVCB0YWdsaW5lIGlkIElEICNJTVBMSUVEPgorPCFBVFRMSVNUIHRhZ2xpbmUgdHlwZSAoc3RkIHwgcGEgfCBucGEpICJzdGQiPgorPCFFTEVNRU5UIGJpYmxpb2dyYXBoeSAoI1BDREFUQSk+Cis8IUFUVExJU1QgYmlibGlvZ3JhcGh5IGlkIElEICNJTVBMSUVEPgorXT4KKzxOZXdzTUw+CisgIDxDYXRhbG9nIEhyZWY9Imh0dHA6Ly93d3cuYWZwLmNvbS9kdGQvQUZQQ2F0YWxvZy54bWwiLz4KKyAgPE5ld3NFbnZlbG9wZT4KKyAgICA8RGF0ZUFuZFRpbWU+MjAwMTEwMjJUMTU0NTA4WjwvRGF0ZUFuZFRpbWU+CisgIDwvTmV3c0VudmVsb3BlPgorICA8TmV3c0l0ZW0+CisgICAgPElkZW50aWZpY2F0aW9uPgorICAgICAgPE5ld3NJZGVudGlmaWVyPgorICAgICAgICA8UHJvdmlkZXJJZD5hZnAuY29tPC9Qcm92aWRlcklkPgorICAgICAgICA8RGF0ZUlkPjIwMDExMDIyPC9EYXRlSWQ+CisgICAgICAgIDxOZXdzSXRlbUlkPm1tZC0tZGV1dHNjaC0tam91cm5hbC0tc3BvPC9OZXdzSXRlbUlkPgorICAgICAgICA8UmV2aXNpb25JZCBQcmV2aW91c1JldmlzaW9uPSIwIiBVcGRhdGU9Ik4iPjE8L1JldmlzaW9uSWQ+CisgICAgICAgIDxQdWJsaWNJZGVudGlmaWVyPnVybjpOZXdzTUw6YWZwLmNvbToyMDAxMTAyMjptbWQtLWRldXRzY2gtLWpvdXJuYWwtLXNwbzoxPC9QdWJsaWNJZGVudGlmaWVyPgorICAgICAgPC9OZXdzSWRlbnRpZmllcj4KKyAgICAgIDxOYW1lTGFiZWw+SElOVEVSR1JVTkQ8L05hbWVMYWJlbD4KKyAgICA8L0lkZW50aWZpY2F0aW9uPgorICAgIDxOZXdzTWFuYWdlbWVudD4KKyAgICAgIDxOZXdzSXRlbVR5cGUgRm9ybWFsTmFtZT0iTmV3cyIvPgorICAgICAgPEZpcnN0Q3JlYXRlZD4yMDAxMTAyMlQxNTQ1MDhaPC9GaXJzdENyZWF0ZWQ+CisgICAgICA8VGhpc1JldmlzaW9uQ3JlYXRlZD4yMDAxMTAyMlQxNTQ1MDhaPC9UaGlzUmV2aXNpb25DcmVhdGVkPgorICAgICAgPFN0YXR1cyBGb3JtYWxOYW1lPSJVc2FibGUiLz4KKyAgICA8L05ld3NNYW5hZ2VtZW50PgorICAgIDxOZXdzQ29tcG9uZW50PgorICAgICAgPEFkbWluaXN0cmF0aXZlTWV0YWRhdGE+CisgICAgICAgIDxQcm92aWRlcj4KKyAgICAgICAgICA8UGFydHkgRm9ybWFsTmFtZT0iQUZQIi8+CisgICAgICAgIDwvUHJvdmlkZXI+CisgICAgICA8L0FkbWluaXN0cmF0aXZlTWV0YWRhdGE+CisgICAgICA8RGVzY3JpcHRpdmVNZXRhZGF0YT4KKyAgICAgICAgPExhbmd1YWdlIEZvcm1hbE5hbWU9ImRlIi8+IAorICAgICAgPC9EZXNjcmlwdGl2ZU1ldGFkYXRhPgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPkJlcmxpbmVyIFNQRCBm/GhydCBHZXNwcuRjaGUgbWl0IEZEUCB1bmQgR3L8bmVuPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIyMTU0NDUwLnNxODBicDloLnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPklORk9HUkFGSUs6IERhcyBCZXJsaW5lciBXYWhsZXJnZWJuaXM8L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjIxMTMwMzIucmVtbzAwbTcueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgICAgPE5ld3NMaW5lcz4KKyAgICAgICAgICA8SGVhZExpbmU+U2Nod2llcmlnZSBLb2FsaXRpb25zdmVyaGFuZGx1bmdlbiBpbiBCZXJsaW48L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjIxMjQzMTQuOWh2MmtvemsueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgICAgPE5ld3NMaW5lcz4KKyAgICAgICAgICA8SGVhZExpbmU+RGllIExpZWJsaW5nc2ZhcmJlbiBkZXMgS2FuemxlcnMgc2luZCBSb3QgR2VsYiBHcvxuPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIyMTM0NTQxLmNtbWFvaW03LnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPklORk9HUkFGSUs6IFdlbiB35GhsdCBXb3dlcmVpdD88L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjIxMjI1NDUuaGwzejJhczYueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgICAgPE5ld3NMaW5lcz4KKyAgICAgICAgICA8SGVhZExpbmU+Q0RVIGlzdCBhdWNoIGluIGtvbW11bmFsZW4gUmF0aOR1c2VybiBkZXIgVmVybGllcmVyPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIyMTIwMjA1LmI4c3lrZnZ1LnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPkd1dGVzIEFic2NobmVpZGVuIGRlciBQRFMgaGF0IHZlcnNjaGllZGVuZSBHcvxuZGU8L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjIxMzQxNTkuYWd2bmUwNDgueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgICAgPE5ld3NMaW5lcz4KKyAgICAgICAgICA8SGVhZExpbmU+QW5zIFJlZ2llcmVuIGhhdCBzaWNoIEtsYXVzIFdvd2VyZWl0IGdld/ZobnQ8L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjExNjEwMzEuMW9xN3F5dWIueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgICAgPE5ld3NMaW5lcz4KKyAgICAgICAgICA8SGVhZExpbmU+U3RlZmZlbCBicmFjaHRlIENEVSBuaWNodCBhdWYgRXJmb2xnc2t1cnM8L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjExNjUwMDcua3Q5cW9nOW0ueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgICAgPE5ld3NMaW5lcz4KKyAgICAgICAgICA8SGVhZExpbmU+U2lieWxsIEtsb3R6OiBWb2xsYmx1dHBvbGl0aWtlcmluIG1pdCAiQmVybGluZXIgU2NobmF1emUiPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIxMTg0NjU4LmxjdGV2ZXN0LnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPk1pdCBHeXNpIG11c3Mgd2VpdGVyIGdlcmVjaG5ldCB3ZXJkZW48L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjExODA0NDEuNnRwdmd4MHkueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgICAgPE5ld3NMaW5lcz4KKyAgICAgICAgICA8SGVhZExpbmU+UmV4cm9kdCAtIGRhcyBTdGVoYXVmbeRubmNoZW4gZGVyIEJlcmxpbmVyIEZEUDwvSGVhZExpbmU+CisgICAgICAgIDwvTmV3c0xpbmVzPgorICAgICAgICA8TmV3c0l0ZW1SZWYgTmV3c0l0ZW09IjAxMTAyMTE2NTU1OC5ndWpyejU5bS54bWwiLz4KKyAgICAgIDwvTmV3c0NvbXBvbmVudD4KKyAgICA8L05ld3NDb21wb25lbnQ+CisgIDwvTmV3c0l0ZW0+Cis8L05ld3NNTD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL2luZGV4LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pbmRleC54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9pbmRleC54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9taXhlZF9ucy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9taXhlZF9ucy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhhZWRiOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL21peGVkX25zLnhtbApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBhIFsKKzwhRUxFTUVOVCBhICgjUENEQVRBIHwgYiB8IHM6YikqPgorPCFBVFRMSVNUIGEgeG1sbnM6cyBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBiIEVNUFRZPgorPCFBVFRMSVNUIGIgeG1sbnM6cyBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCBzOmIgRU1QVFk+Cis8IUFUVExJU1QgczpiIHhtbG5zOnMgQ0RBVEEgI0lNUExJRUQ+CitdPgorPGEgeG1sbnM6cz0iaHR0cDovL3NvbWUudGVzdC5ucy9hIj4KKyAgU29tZSB0ZXh0LgorCTxiLz4KKyAgU29tZSB0ZXh0LgorCTxzOmIvPgorICBTb21lIHRleHQuCis8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9taXhlZF9ucy54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbWl4ZWRfbnMueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbWl4ZWRfbnMueG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbm90ZXMueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbm90ZXMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYjNhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9ub3Rlcy54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCFET0NUWVBFIG5vdGVzIFNZU1RFTSAiZHRkcy9ub3Rlcy5kdGQiPgorPHBmeDpub3RlcyB4bWxuczpwZng9Imh0dHA6Ly9uYW1lc3BhY2UvdXJpL2hlcmUiPjxub3RlLz48cGZ4Om5vdGUvPjwvcGZ4Om5vdGVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbm90ZXMueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL25vdGVzLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL25vdGVzLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL25zLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL25zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGFkZTg2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbnMueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYTpvdXRlciBbCis8IUVMRU1FTlQgYTpvdXRlciBFTVBUWT4KKzwhQVRUTElTVCBhOm91dGVyIHhtbG5zOmEgQ0RBVEEgI0ZJWEVEICJ1cm46bmFtZXNwYWNlIj4KKzwhQVRUTElTVCBhOm91dGVyIHhtbG5zOmIgQ0RBVEEgI0ZJWEVEICJ1cm46bmFtZXNwYWNlYiI+CitdPgorPGE6b3V0ZXIgeG1sbnM6YT0idXJuOm5hbWVzcGFjZSIgeG1sbnM6Yj0idXJuOm5hbWVzcGFjZWIiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL25zLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9ucy54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9ucy54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9uczIueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbnMyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGMzMGE4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbnMyLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBhOm91dGVyIFsKKzwhRUxFTUVOVCBhOm91dGVyIChhOmlubmVyKT4KKzwhQVRUTElTVCBhOm91dGVyIHhtbG5zOmEgQ0RBVEEgI0ZJWEVEICJ1cm46bmFtZXNwYWNlIj4KKzwhRUxFTUVOVCBhOmlubmVyIEVNUFRZPgorPCFBVFRMSVNUIGE6aW5uZXIgeG1sbnM6YSBDREFUQSAjRklYRUQgInVybjpuYW1lc3BhY2UiPgorPCFBVFRMSVNUIGE6aW5uZXIgYXR0ciBDREFUQSAjRklYRUQgInllcyI+CitdPgorPGE6b3V0ZXIgeG1sbnM6YT0idXJuOm5hbWVzcGFjZSI+CisgIDxhOmlubmVyLz4KKzwvYTpvdXRlcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL25zMi54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvbnMyLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL25zMi54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9vYmplZG5hdmthLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL29iamVkbmF2a2EueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwZmZkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9vYmplZG5hdmthLnhtbApAQCAtMCwwICsxLDM5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIG9iamVkbmF2a2EgU1lTVEVNICJkdGRzL29iamVkbmF2a2EuZHRkIj4KKzxvYmplZG5hdmthPgorICAgIDxBZERvcnXEjWVuaT4KKyAgICAgICAgPEptw6lubz5KYW4gTm92w6FrPC9KbcOpbm8+CisgICAgICAgIDxVbGljZT5CxJtsZWhyYWRza8OhIDE0NzwvVWxpY2U+CisgICAgICAgIDxNxJtzdG8+UHJhaGEgMjwvTcSbc3RvPgorICAgICAgICA8UFPEjD4xMjAwMDwvUFPEjD4KKyAgICA8L0FkRG9ydcSNZW5pPgorICAgIDxBZMOaxI10b3ZhY8OtPgorICAgICAgICA8Sm3DqW5vPlBldHJhIE5vdsOha292w6E8L0ptw6lubz4KKyAgICAgICAgPFVsaWNlPkFuZ2xpY2vDoSAxNTwvVWxpY2U+CisgICAgICAgIDxNxJtzdG8+UHJhaGEgMjwvTcSbc3RvPgorICAgICAgICA8UFPEjD4xMjAwMDwvUFPEjD4KKyAgICA8L0Fkw5rEjXRvdmFjw60+CisgICAgPFpwxa9zb2JEb3ByYXZ5PkRQRDwvWnDFr3NvYkRvcHJhdnk+CisgICAgPFpwxa9zb2JQbGF0Ynk+ZG9iw61ya2E8L1pwxa9zb2JQbGF0Ynk+CisgICAgPERhdHVtUMWZaWpldMOtPjIwMDQtMTEtMTQ8L0RhdHVtUMWZaWpldMOtPgorICAgIDxEYXR1bURvcnXEjWVuw60+MjAwNC0xMS0xOTwvRGF0dW1Eb3J1xI1lbsOtPgorICAgIDxPYnNhaE9iamVkbsOhdmt5PgorICAgICAgICA8WmJvxb7DrT4KKyAgICAgICAgICAgIDxLw7NkPjJONy01MTY8L0vDs2Q+CisgICAgICAgICAgICA8TsOhemV2PlNla2HEjWthIG5hIHRyw6F2dTwvTsOhemV2PgorICAgICAgICAgICAgPFBvxI1ldCBqZWRub3RrYT0ia3MiPjE8L1BvxI1ldD4KKyAgICAgICAgICAgIDxDZW5hPjI5OTk8L0NlbmE+CisgICAgICAgICAgICA8UG9waXM+aHR0cDovL2V4YW1wbGUub3JnL3Nla2Fja2EuaHRtbDwvUG9waXM+CisgICAgICAgIDwvWmJvxb7DrT4KKyAgICAgICAgPFpib8W+w60+CisgICAgICAgICAgICA8S8OzZD5RM1ktMTE2PC9Lw7NkPgorICAgICAgICAgICAgPE7DoXpldj5UcmF2bsOtIHNlbWVubzwvTsOhemV2PgorICAgICAgICAgICAgPFBvxI1ldCBqZWRub3RrYT0ia2ciPjIuNTwvUG/EjWV0PgorICAgICAgICAgICAgPENlbmE+MTI3LjUwPC9DZW5hPgorICAgICAgICA8L1pib8W+w60+CisgICAgPC9PYnNhaE9iamVkbsOhdmt5PgorICAgIDxLb21lbnTDocWZPgorICAgICAgICA8xZjDoWRrYT5PIGRvZMOhdmt1IG3DoW0gesOhamVtIHBvdXplIHYgcMWZw61wYWTEmywgxb5lIHNlIGplZG7DoSBvIHRyw6F2dSB2IG9kcsWvZMSbIGtvbm9ww60uPC/FmMOhZGthPgorICAgICAgICA8xZjDoWRrYT5Ew6FsZSBqc2VtIHNlIGNodMSbbCB6ZXB0YXQsIHpkYSBqZSBkb3ByYXZhIHpkYXJtYS48L8WYw6Fka2E+CisgICAgPC9Lb21lbnTDocWZPgorPC9vYmplZG5hdmthPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvb2JqZWRuYXZrYS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvb2JqZWRuYXZrYS54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9vYmplZG5hdmthLnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Jzcy54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9yc3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MmZiODAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9yc3MueG1sCkBAIC0wLDAgKzEsMTY5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgcnNzIFsKKzwhLS0KKworICBSaWNoIFNpdGUgU3VtbWFyeSAoUlNTKSAwLjkxIG9mZmljaWFsIERURCwgcHJvcG9zZWQuCisgIAorICBSU1MgaXMgYW4gWE1MIHZvY2FidWxhcnkgZm9yIGRlc2NyaWJpbmcKKyAgbWV0YWRhdGEgYWJvdXQgd2Vic2l0ZXMsIGFuZCBlbmFibGluZyB0aGUgZGlzcGxheSBvZgorICAiY2hhbm5lbHMiIG9uIHRoZSAiTXkgTmV0c2NhcGUiIHdlYnNpdGUuCisgIAorICBSU1MgSW5mbyBjYW4gYmUgZm91bmQgYXQgaHR0cDovL215Lm5ldHNjYXBlLmNvbS9wdWJsaXNoLworICBYTUwgSW5mbyBjYW4gYmUgZm91bmQgYXQgaHR0cDovL3d3dy53My5vcmcvWE1MLyAKKyAgCisgIGNvcHlyaWdodCBOZXRzY2FwZSBDb21tdW5pY2F0aW9ucywgMTk5OQorCisgIERhbiBMaWJieSAtIGRhbmRhQG5ldHNjYXBlLmNvbQorICAKKyAgQmFzZWQgb24gUlNTIERURCBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkKKyAgTGFycyBNYXJpdXMgR2Fyc2hvbCAtIGxhcnNnYUBpZmkudWlvLm5vLgorICAKKy0tPjwhRUxFTUVOVCByc3MgKGNoYW5uZWwpPgorPCFBVFRMSVNUIHJzcyB2ZXJzaW9uIENEQVRBICNSRVFVSVJFRD4KKzwhLS0gbXVzdCBiZSAiMC45MSI+IC0tPjwhRUxFTUVOVCBjaGFubmVsICh0aXRsZSB8IGRlc2NyaXB0aW9uIHwgbGluayB8IGxhbmd1YWdlIHwgaXRlbSsgfCByYXRpbmcgfCBpbWFnZSB8IHRleHRpbnB1dCB8IGNvcHlyaWdodCB8IHB1YkRhdGUgfCBsYXN0QnVpbGREYXRlIHwgZG9jcyB8IG1hbmFnaW5nRWRpdG9yIHwgd2ViTWFzdGVyIHwgc2tpcEhvdXJzIHwgc2tpcERheXMpKj4KKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgZGVzY3JpcHRpb24gKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGxpbmsgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGltYWdlICh0aXRsZSB8IHVybCB8IGxpbmsgfCB3aWR0aCB8IGhlaWdodCB8IGRlc2NyaXB0aW9uKSo+Cis8IUVMRU1FTlQgdXJsICgjUENEQVRBKT4KKzwhRUxFTUVOVCBpdGVtICh0aXRsZSB8IGxpbmsgfCBkZXNjcmlwdGlvbikqPgorPCFFTEVNRU5UIHRleHRpbnB1dCAodGl0bGUgfCBkZXNjcmlwdGlvbiB8IG5hbWUgfCBsaW5rKSo+Cis8IUVMRU1FTlQgbmFtZSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgcmF0aW5nICgjUENEQVRBKT4KKzwhRUxFTUVOVCBsYW5ndWFnZSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgd2lkdGggKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGhlaWdodCAoI1BDREFUQSk+Cis8IUVMRU1FTlQgY29weXJpZ2h0ICgjUENEQVRBKT4KKzwhRUxFTUVOVCBwdWJEYXRlICgjUENEQVRBKT4KKzwhRUxFTUVOVCBsYXN0QnVpbGREYXRlICgjUENEQVRBKT4KKzwhRUxFTUVOVCBkb2NzICgjUENEQVRBKT4KKzwhRUxFTUVOVCBtYW5hZ2luZ0VkaXRvciAoI1BDREFUQSk+Cis8IUVMRU1FTlQgd2ViTWFzdGVyICgjUENEQVRBKT4KKzwhRUxFTUVOVCBob3VyICgjUENEQVRBKT4KKzwhRUxFTUVOVCBkYXkgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIHNraXBIb3VycyAoaG91cikrPgorPCFFTEVNRU5UIHNraXBEYXlzIChkYXkpKz4KKzwhLS0KKyAgICAgQ29waWVkIGZyb20gSFRNTCAzLjIgRFRELCB3aXRoIG1vZGlmaWNhdGlvbnMgKHJlbW92ZWQgQ0RBVEEpCisgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sMzIuaHRtbCNkdGQKKyAgICAgPT09PT09PT09PT09PT09IEJFR0lOID09PT09PT09PT09PT09PT09PT0KKy0tPjwhLS0gCisgICAgIENoYXJhY3RlciBFbnRpdGllcyBmb3IgSVNPIExhdGluLTEKKyAgICAgCisgICAgIChDKSBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uIDE5ODYKKyAgICAgUGVybWlzc2lvbiB0byBjb3B5IGluIGFueSBmb3JtIGlzIGdyYW50ZWQgZm9yIHVzZSB3aXRoCisgICAgIGNvbmZvcm1pbmcgU0dNTCBzeXN0ZW1zIGFuZCBhcHBsaWNhdGlvbnMgYXMgZGVmaW5lZCBpbgorICAgICBJU08gODg3OSwgcHJvdmlkZWQgdGhpcyBub3RpY2UgaXMgaW5jbHVkZWQgaW4gYWxsIGNvcGllcy4KKyAgICAgVGhpcyBoYXMgYmVlbiBleHRlbmRlZCBmb3IgdXNlIHdpdGggSFRNTCB0byBjb3ZlciB0aGUgZnVsbAorICAgICBzZXQgb2YgY29kZXMgaW4gdGhlIHJhbmdlIDE2MC0yNTUgZGVjaW1hbC4KKy0tPjwhLS0gQ2hhcmFjdGVyIGVudGl0eSBzZXQuIFR5cGljYWwgaW52b2NhdGlvbjoKKyAgICAgPCFFTlRJVFkgJSBJU09sYXQxIFBVQkxJQworICAgICAgICJJU08gODg3OS0xOTg2Ly9FTlRJVElFUyBBZGRlZCBMYXRpbiAxLy9FTi8vSFRNTCI+CisgICAgICVJU09sYXQxOworLS0+PCFFTlRJVFkgbmJzcCAiJiMxNjA7Ij4KKzwhLS0gbm8tYnJlYWsgc3BhY2UgLS0+PCFFTlRJVFkgaWV4Y2wgIiYjMTYxOyI+Cis8IS0tIGludmVydGVkIGV4Y2xhbWF0aW9uIG1hcmsgLS0+PCFFTlRJVFkgY2VudCAiJiMxNjI7Ij4KKzwhLS0gY2VudCBzaWduIC0tPjwhRU5USVRZIHBvdW5kICImIzE2MzsiPgorPCEtLSBwb3VuZCBzdGVybGluZyBzaWduIC0tPjwhRU5USVRZIGN1cnJlbiAiJiMxNjQ7Ij4KKzwhLS0gZ2VuZXJhbCBjdXJyZW5jeSBzaWduIC0tPjwhRU5USVRZIHllbiAiJiMxNjU7Ij4KKzwhLS0geWVuIHNpZ24gLS0+PCFFTlRJVFkgYnJ2YmFyICImIzE2NjsiPgorPCEtLSBicm9rZW4gKHZlcnRpY2FsKSBiYXIgLS0+PCFFTlRJVFkgc2VjdCAiJiMxNjc7Ij4KKzwhLS0gc2VjdGlvbiBzaWduIC0tPjwhRU5USVRZIHVtbCAiJiMxNjg7Ij4KKzwhLS0gdW1sYXV0IChkaWVyZXNpcykgLS0+PCFFTlRJVFkgY29weSAiJiMxNjk7Ij4KKzwhLS0gY29weXJpZ2h0IHNpZ24gLS0+PCFFTlRJVFkgb3JkZiAiJiMxNzA7Ij4KKzwhLS0gb3JkaW5hbCBpbmRpY2F0b3IsIGZlbWluaW5lIC0tPjwhRU5USVRZIGxhcXVvICImIzE3MTsiPgorPCEtLSBhbmdsZSBxdW90YXRpb24gbWFyaywgbGVmdCAtLT48IUVOVElUWSBub3QgIiYjMTcyOyI+Cis8IS0tIG5vdCBzaWduIC0tPjwhRU5USVRZIHNoeSAiJiMxNzM7Ij4KKzwhLS0gc29mdCBoeXBoZW4gLS0+PCFFTlRJVFkgcmVnICImIzE3NDsiPgorPCEtLSByZWdpc3RlcmVkIHNpZ24gLS0+PCFFTlRJVFkgbWFjciAiJiMxNzU7Ij4KKzwhLS0gbWFjcm9uIC0tPjwhRU5USVRZIGRlZyAiJiMxNzY7Ij4KKzwhLS0gZGVncmVlIHNpZ24gLS0+PCFFTlRJVFkgcGx1c21uICImIzE3NzsiPgorPCEtLSBwbHVzLW9yLW1pbnVzIHNpZ24gLS0+PCFFTlRJVFkgc3VwMiAiJiMxNzg7Ij4KKzwhLS0gc3VwZXJzY3JpcHQgdHdvIC0tPjwhRU5USVRZIHN1cDMgIiYjMTc5OyI+Cis8IS0tIHN1cGVyc2NyaXB0IHRocmVlIC0tPjwhRU5USVRZIGFjdXRlICImIzE4MDsiPgorPCEtLSBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgbWljcm8gIiYjMTgxOyI+Cis8IS0tIG1pY3JvIHNpZ24gLS0+PCFFTlRJVFkgcGFyYSAiJiMxODI7Ij4KKzwhLS0gcGlsY3JvdyAocGFyYWdyYXBoIHNpZ24pIC0tPjwhRU5USVRZIG1pZGRvdCAiJiMxODM7Ij4KKzwhLS0gbWlkZGxlIGRvdCAtLT48IUVOVElUWSBjZWRpbCAiJiMxODQ7Ij4KKzwhLS0gY2VkaWxsYSAtLT48IUVOVElUWSBzdXAxICImIzE4NTsiPgorPCEtLSBzdXBlcnNjcmlwdCBvbmUgLS0+PCFFTlRJVFkgb3JkbSAiJiMxODY7Ij4KKzwhLS0gb3JkaW5hbCBpbmRpY2F0b3IsIG1hc2N1bGluZSAtLT48IUVOVElUWSByYXF1byAiJiMxODc7Ij4KKzwhLS0gYW5nbGUgcXVvdGF0aW9uIG1hcmssIHJpZ2h0IC0tPjwhRU5USVRZIGZyYWMxNCAiJiMxODg7Ij4KKzwhLS0gZnJhY3Rpb24gb25lLXF1YXJ0ZXIgLS0+PCFFTlRJVFkgZnJhYzEyICImIzE4OTsiPgorPCEtLSBmcmFjdGlvbiBvbmUtaGFsZiAtLT48IUVOVElUWSBmcmFjMzQgIiYjMTkwOyI+Cis8IS0tIGZyYWN0aW9uIHRocmVlLXF1YXJ0ZXJzIC0tPjwhRU5USVRZIGlxdWVzdCAiJiMxOTE7Ij4KKzwhLS0gaW52ZXJ0ZWQgcXVlc3Rpb24gbWFyayAtLT48IUVOVElUWSBBZ3JhdmUgIiYjMTkyOyI+Cis8IS0tIGNhcGl0YWwgQSwgZ3JhdmUgYWNjZW50IC0tPjwhRU5USVRZIEFhY3V0ZSAiJiMxOTM7Ij4KKzwhLS0gY2FwaXRhbCBBLCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgQWNpcmMgIiYjMTk0OyI+Cis8IS0tIGNhcGl0YWwgQSwgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgQXRpbGRlICImIzE5NTsiPgorPCEtLSBjYXBpdGFsIEEsIHRpbGRlIC0tPjwhRU5USVRZIEF1bWwgIiYjMTk2OyI+Cis8IS0tIGNhcGl0YWwgQSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgQXJpbmcgIiYjMTk3OyI+Cis8IS0tIGNhcGl0YWwgQSwgcmluZyAtLT48IUVOVElUWSBBRWxpZyAiJiMxOTg7Ij4KKzwhLS0gY2FwaXRhbCBBRSBkaXBodGhvbmcgKGxpZ2F0dXJlKSAtLT48IUVOVElUWSBDY2VkaWwgIiYjMTk5OyI+Cis8IS0tIGNhcGl0YWwgQywgY2VkaWxsYSAtLT48IUVOVElUWSBFZ3JhdmUgIiYjMjAwOyI+Cis8IS0tIGNhcGl0YWwgRSwgZ3JhdmUgYWNjZW50IC0tPjwhRU5USVRZIEVhY3V0ZSAiJiMyMDE7Ij4KKzwhLS0gY2FwaXRhbCBFLCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgRWNpcmMgIiYjMjAyOyI+Cis8IS0tIGNhcGl0YWwgRSwgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgRXVtbCAiJiMyMDM7Ij4KKzwhLS0gY2FwaXRhbCBFLCBkaWVyZXNpcyBvciB1bWxhdXQgbWFyayAtLT48IUVOVElUWSBJZ3JhdmUgIiYjMjA0OyI+Cis8IS0tIGNhcGl0YWwgSSwgZ3JhdmUgYWNjZW50IC0tPjwhRU5USVRZIElhY3V0ZSAiJiMyMDU7Ij4KKzwhLS0gY2FwaXRhbCBJLCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgSWNpcmMgIiYjMjA2OyI+Cis8IS0tIGNhcGl0YWwgSSwgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgSXVtbCAiJiMyMDc7Ij4KKzwhLS0gY2FwaXRhbCBJLCBkaWVyZXNpcyBvciB1bWxhdXQgbWFyayAtLT48IUVOVElUWSBFVEggIiYjMjA4OyI+Cis8IS0tIGNhcGl0YWwgRXRoLCBJY2VsYW5kaWMgLS0+PCFFTlRJVFkgTnRpbGRlICImIzIwOTsiPgorPCEtLSBjYXBpdGFsIE4sIHRpbGRlIC0tPjwhRU5USVRZIE9ncmF2ZSAiJiMyMTA7Ij4KKzwhLS0gY2FwaXRhbCBPLCBncmF2ZSBhY2NlbnQgLS0+PCFFTlRJVFkgT2FjdXRlICImIzIxMTsiPgorPCEtLSBjYXBpdGFsIE8sIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSBPY2lyYyAiJiMyMTI7Ij4KKzwhLS0gY2FwaXRhbCBPLCBjaXJjdW1mbGV4IGFjY2VudCAtLT48IUVOVElUWSBPdGlsZGUgIiYjMjEzOyI+Cis8IS0tIGNhcGl0YWwgTywgdGlsZGUgLS0+PCFFTlRJVFkgT3VtbCAiJiMyMTQ7Ij4KKzwhLS0gY2FwaXRhbCBPLCBkaWVyZXNpcyBvciB1bWxhdXQgbWFyayAtLT48IUVOVElUWSB0aW1lcyAiJiMyMTU7Ij4KKzwhLS0gbXVsdGlwbHkgc2lnbiAtLT48IUVOVElUWSBPc2xhc2ggIiYjMjE2OyI+Cis8IS0tIGNhcGl0YWwgTywgc2xhc2ggLS0+PCFFTlRJVFkgVWdyYXZlICImIzIxNzsiPgorPCEtLSBjYXBpdGFsIFUsIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBVYWN1dGUgIiYjMjE4OyI+Cis8IS0tIGNhcGl0YWwgVSwgYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIFVjaXJjICImIzIxOTsiPgorPCEtLSBjYXBpdGFsIFUsIGNpcmN1bWZsZXggYWNjZW50IC0tPjwhRU5USVRZIFV1bWwgIiYjMjIwOyI+Cis8IS0tIGNhcGl0YWwgVSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgWWFjdXRlICImIzIyMTsiPgorPCEtLSBjYXBpdGFsIFksIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSBUSE9STiAiJiMyMjI7Ij4KKzwhLS0gY2FwaXRhbCBUSE9STiwgSWNlbGFuZGljIC0tPjwhRU5USVRZIHN6bGlnICImIzIyMzsiPgorPCEtLSBzbWFsbCBzaGFycCBzLCBHZXJtYW4gKHN6IGxpZ2F0dXJlKSAtLT48IUVOVElUWSBhZ3JhdmUgIiYjMjI0OyI+Cis8IS0tIHNtYWxsIGEsIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBhYWN1dGUgIiYjMjI1OyI+Cis8IS0tIHNtYWxsIGEsIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSBhY2lyYyAiJiMyMjY7Ij4KKzwhLS0gc21hbGwgYSwgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgYXRpbGRlICImIzIyNzsiPgorPCEtLSBzbWFsbCBhLCB0aWxkZSAtLT48IUVOVElUWSBhdW1sICImIzIyODsiPgorPCEtLSBzbWFsbCBhLCBkaWVyZXNpcyBvciB1bWxhdXQgbWFyayAtLT48IUVOVElUWSBhcmluZyAiJiMyMjk7Ij4KKzwhLS0gc21hbGwgYSwgcmluZyAtLT48IUVOVElUWSBhZWxpZyAiJiMyMzA7Ij4KKzwhLS0gc21hbGwgYWUgZGlwaHRob25nIChsaWdhdHVyZSkgLS0+PCFFTlRJVFkgY2NlZGlsICImIzIzMTsiPgorPCEtLSBzbWFsbCBjLCBjZWRpbGxhIC0tPjwhRU5USVRZIGVncmF2ZSAiJiMyMzI7Ij4KKzwhLS0gc21hbGwgZSwgZ3JhdmUgYWNjZW50IC0tPjwhRU5USVRZIGVhY3V0ZSAiJiMyMzM7Ij4KKzwhLS0gc21hbGwgZSwgYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIGVjaXJjICImIzIzNDsiPgorPCEtLSBzbWFsbCBlLCBjaXJjdW1mbGV4IGFjY2VudCAtLT48IUVOVElUWSBldW1sICImIzIzNTsiPgorPCEtLSBzbWFsbCBlLCBkaWVyZXNpcyBvciB1bWxhdXQgbWFyayAtLT48IUVOVElUWSBpZ3JhdmUgIiYjMjM2OyI+Cis8IS0tIHNtYWxsIGksIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBpYWN1dGUgIiYjMjM3OyI+Cis8IS0tIHNtYWxsIGksIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSBpY2lyYyAiJiMyMzg7Ij4KKzwhLS0gc21hbGwgaSwgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgaXVtbCAiJiMyMzk7Ij4KKzwhLS0gc21hbGwgaSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgZXRoICImIzI0MDsiPgorPCEtLSBzbWFsbCBldGgsIEljZWxhbmRpYyAtLT48IUVOVElUWSBudGlsZGUgIiYjMjQxOyI+Cis8IS0tIHNtYWxsIG4sIHRpbGRlIC0tPjwhRU5USVRZIG9ncmF2ZSAiJiMyNDI7Ij4KKzwhLS0gc21hbGwgbywgZ3JhdmUgYWNjZW50IC0tPjwhRU5USVRZIG9hY3V0ZSAiJiMyNDM7Ij4KKzwhLS0gc21hbGwgbywgYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIG9jaXJjICImIzI0NDsiPgorPCEtLSBzbWFsbCBvLCBjaXJjdW1mbGV4IGFjY2VudCAtLT48IUVOVElUWSBvdGlsZGUgIiYjMjQ1OyI+Cis8IS0tIHNtYWxsIG8sIHRpbGRlIC0tPjwhRU5USVRZIG91bWwgIiYjMjQ2OyI+Cis8IS0tIHNtYWxsIG8sIGRpZXJlc2lzIG9yIHVtbGF1dCBtYXJrIC0tPjwhRU5USVRZIGRpdmlkZSAiJiMyNDc7Ij4KKzwhLS0gZGl2aWRlIHNpZ24gLS0+PCFFTlRJVFkgb3NsYXNoICImIzI0ODsiPgorPCEtLSBzbWFsbCBvLCBzbGFzaCAtLT48IUVOVElUWSB1Z3JhdmUgIiYjMjQ5OyI+Cis8IS0tIHNtYWxsIHUsIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSB1YWN1dGUgIiYjMjUwOyI+Cis8IS0tIHNtYWxsIHUsIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSB1Y2lyYyAiJiMyNTE7Ij4KKzwhLS0gc21hbGwgdSwgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgdXVtbCAiJiMyNTI7Ij4KKzwhLS0gc21hbGwgdSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgeWFjdXRlICImIzI1MzsiPgorPCEtLSBzbWFsbCB5LCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgdGhvcm4gIiYjMjU0OyI+Cis8IS0tIHNtYWxsIHRob3JuLCBJY2VsYW5kaWMgLS0+PCFFTlRJVFkgeXVtbCAiJiMyNTU7Ij4KKzwhLS0gc21hbGwgeSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCEtLQorICAgICBDb3BpZWQgZnJvbSBIVE1MIDMuMiBEVEQsIHdpdGggbW9kaWZpY2F0aW9ucyAocmVtb3ZlZCBDREFUQSkKKyAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWwzMi5odG1sI2R0ZAorICAgICA9PT09PT09PT09PT09PT09PSBFTkQgPT09PT09PT09PT09PT09PT09PQorLS0+XT4KKzxyc3M+Cis8Y2hhbm5lbD4KKzxpbWFnZS8+Cis8dGl0bGU+UFA8L3RpdGxlPgorPC9jaGFubmVsPgorPC9yc3M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9yc3MueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Jzcy54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYzdjOWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC9yc3MueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC92YWxpZC9yc3MueG1sOjE3NzogZWxlbWVudCByc3M6IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudCByc3MgZG9lcyBub3QgY2FycnkgYXR0cmlidXRlIHZlcnNpb24KKzwvcnNzPgorICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDEwLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3QxMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYwZjJmOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3QxMC54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4KKzwhRE9DVFlQRSByb290IFsKKzwhRUxFTUVOVCByb290IChjb250MSAsIChjb250MSAsIGNvbnQyPykrKT4KKzwhRUxFTUVOVCBjb250MSBFTVBUWT4KKzwhRUxFTUVOVCBjb250MiBFTVBUWT4KK10+Cis8cm9vdD4KKyAgPGNvbnQxLz4KKyAgPGNvbnQxLz4KKyAgPGNvbnQxLz4KKyAgPGNvbnQxLz4KKzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3QxMC54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDEwLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3QxMC54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90MTEueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDExLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODcxNzg3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDExLnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHJvb3QgU1lTVEVNICJkdGRzL2V4dGVybmFsLmVudCI+Cis8cm9vdD4mcGVJbkNkYXRhOzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3QxMS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDExLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3QxMS54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90NC5kdGQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90NC5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0LmR0ZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDQuZHRkLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0LmR0ZC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNhMzI1OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0LmR0ZC5lcnIKQEAgLTAsMCArMSw2IEBACisuL3Rlc3QvdmFsaWQvdDQuZHRkOjE6IHBhcnNlciBlcnJvciA6IFN0YXJ0VGFnOiBpbnZhbGlkIGVsZW1lbnQgbmFtZQorPCFFTlRJVFkgJSBwZXJjZW50ICImI3gyNTsiPgorIF4KKy4vdGVzdC92YWxpZC90NC5kdGQ6MTogcGFyc2VyIGVycm9yIDogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudAorPCFFTlRJVFkgJSBwZXJjZW50ICImI3gyNTsiPgorIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTk4Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgcm9vdCBTWVNURU0gInQ0LmR0ZCI+Cis8cm9vdD4mYWJjOzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90NC54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90NC54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90NGEuZHRkIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDRhLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDRhLmR0ZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDRhLmR0ZC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90NGEuZHRkLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGNkZDVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDRhLmR0ZC5lcnIKQEAgLTAsMCArMSw2IEBACisuL3Rlc3QvdmFsaWQvdDRhLmR0ZDoxOiBwYXJzZXIgZXJyb3IgOiBTdGFydFRhZzogaW52YWxpZCBlbGVtZW50IG5hbWUKKzwhRU5USVRZICUgcGVyY2VudCAiJiN4MjU7Ij4KKyBeCisuL3Rlc3QvdmFsaWQvdDRhLmR0ZDoxOiBwYXJzZXIgZXJyb3IgOiBFeHRyYSBjb250ZW50IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Cis8IUVOVElUWSAlIHBlcmNlbnQgIiYjeDI1OyI+CisgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDRhLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdlODBmNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0YS54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSByb290IFNZU1RFTSAidDRhLmR0ZCI+Cis8cm9vdD4mYWJjOzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0YS54bWwuZXJyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDRhLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q0YS54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90Ni5kdGQgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90Ni5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q2LmR0ZApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDYuZHRkLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q2LmR0ZC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU4NGQ2OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q2LmR0ZC5lcnIKQEAgLTAsMCArMSw2IEBACisuL3Rlc3QvdmFsaWQvdDYuZHRkOjE6IHBhcnNlciBlcnJvciA6IFN0YXJ0VGFnOiBpbnZhbGlkIGVsZW1lbnQgbmFtZQorPCFFTlRJVFkgJSB4ZGVmICJkZWYiPgorIF4KKy4vdGVzdC92YWxpZC90Ni5kdGQ6MTogcGFyc2VyIGVycm9yIDogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudAorPCFFTlRJVFkgJSB4ZGVmICJkZWYiPgorIF4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q2LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q2LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2YyZDI1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDYueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgcm9vdCBTWVNURU0gInQ2LmR0ZCI+Cis8cm9vdD4mYWJjOzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q2LnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90Ni54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90Ni54bWwuZXJyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q4LnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDgueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q4LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FlN2JiNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q4LnhtbC5lcnIKQEAgLTAsMCArMSwxOCBAQAorRW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IGludGVybmFsIGVycm9yCisgJWRlZnJvb3Q7IAorICAgICAgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKyZsdDshRUxFTUVOVCByb290IChtaWRkbGUpID4KK14KK0VudGl0eTogbGluZSAxOiBwYXJzZXIgZXJyb3IgOiBET0NUWVBFIGltcHJvcGVybHkgdGVybWluYXRlZAorICVkZWZyb290OyAKKyAgICAgICAgICBeCitFbnRpdHk6IGxpbmUgMTogCismbHQ7IUVMRU1FTlQgcm9vdCAobWlkZGxlKSA+CiteCitFbnRpdHk6IGxpbmUgMTogcGFyc2VyIGVycm9yIDogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kCisgJWRlZnJvb3Q7IAorICAgICAgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKyZsdDshRUxFTUVOVCByb290IChtaWRkbGUpID4KKyBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OGEueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDhhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDhhLnhtbApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDhhLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OGEueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWU3YmI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDhhLnhtbC5lcnIKQEAgLTAsMCArMSwxOCBAQAorRW50aXR5OiBsaW5lIDE6IHBhcnNlciBlcnJvciA6IGludGVybmFsIGVycm9yCisgJWRlZnJvb3Q7IAorICAgICAgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKyZsdDshRUxFTUVOVCByb290IChtaWRkbGUpID4KK14KK0VudGl0eTogbGluZSAxOiBwYXJzZXIgZXJyb3IgOiBET0NUWVBFIGltcHJvcGVybHkgdGVybWluYXRlZAorICVkZWZyb290OyAKKyAgICAgICAgICBeCitFbnRpdHk6IGxpbmUgMTogCismbHQ7IUVMRU1FTlQgcm9vdCAobWlkZGxlKSA+CiteCitFbnRpdHk6IGxpbmUgMTogcGFyc2VyIGVycm9yIDogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kCisgJWRlZnJvb3Q7IAorICAgICAgICAgIF4KK0VudGl0eTogbGluZSAxOiAKKyZsdDshRUxFTUVOVCByb290IChtaWRkbGUpID4KKyBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk1MGIxNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q5LnhtbApAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSByb290IFsKKzwhRU5USVRZICUgZGVmdGVzdCAiJiM2MDshRUxFTUVOVCB0ZXN0ICgjUENEQVRBKSA+Ij4KKzwhRU5USVRZICUgZGVmbWlkZGxlICImIzYwOyFFTEVNRU5UIG1pZGRsZSAodGVzdCkgPiI+Cis8IUVOVElUWSAlIGRlZnJvb3QgIiYjNjA7IUVMRU1FTlQgcm9vdCAobWlkZGxlKSA+Ij4KKzwhRUxFTUVOVCByb290IChtaWRkbGUpPgorPCFFTEVNRU5UIG1pZGRsZSAodGVzdCk+Cis8IUVMRU1FTlQgdGVzdCAoI1BDREFUQSk+CitdPgorPHJvb3Q+PG1pZGRsZT48dGVzdD5zYW1wbGU8L3Rlc3Q+PC9taWRkbGU+PC9yb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQvdDkueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q5LnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q5LnhtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q5YS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OWEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NTBiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OWEueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHJvb3QgWworPCFFTlRJVFkgJSBkZWZ0ZXN0ICImIzYwOyFFTEVNRU5UIHRlc3QgKCNQQ0RBVEEpID4iPgorPCFFTlRJVFkgJSBkZWZtaWRkbGUgIiYjNjA7IUVMRU1FTlQgbWlkZGxlICh0ZXN0KSA+Ij4KKzwhRU5USVRZICUgZGVmcm9vdCAiJiM2MDshRUxFTUVOVCByb290IChtaWRkbGUpID4iPgorPCFFTEVNRU5UIHJvb3QgKG1pZGRsZSk+Cis8IUVMRU1FTlQgbWlkZGxlICh0ZXN0KT4KKzwhRUxFTUVOVCB0ZXN0ICgjUENEQVRBKT4KK10+Cis8cm9vdD48bWlkZGxlPjx0ZXN0PnNhbXBsZTwvdGVzdD48L21pZGRsZT48L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OWEueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3Q5YS54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC90OWEueG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQveGh0bWwxLnhodG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQveGh0bWwxLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNzIwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC94aHRtbDEueGh0bWwKQEAgLTAsMCArMSwxNDUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJkdGRzL3hodG1sMS1zdHJpY3QuZHRkIj4KKzw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iVzNDLVBSLmNzcyIgdHlwZT0idGV4dC9jc3MiPz4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj4KKzxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgorPHRpdGxlPlhIVE1MIDEuMDogVGhlIEV4dGVuc2libGUgSHlwZXJUZXh0IE1hcmt1cAorTGFuZ3VhZ2U8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJXM0MtUFIuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitzcGFuLnRlcm0geyBmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiByZ2IoMCwgMCwgMTkyKSB9Citjb2RlIHsKKwljb2xvcjogZ3JlZW47CisJZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKwlmb250LXdlaWdodDogYm9sZDsKK30KKworY29kZS5ncmVlbm1vbm8geworCWNvbG9yOiBncmVlbjsKKwlmb250LWZhbWlseTogbW9ub3NwYWNlOworCWZvbnQtd2VpZ2h0OiBib2xkOworfQorLmdvb2QgeworCWJvcmRlcjogc29saWQgZ3JlZW47CisJYm9yZGVyLXdpZHRoOiAycHg7CisJY29sb3I6IGdyZWVuOworCWZvbnQtd2VpZ2h0OiBib2xkOworCW1hcmdpbi1yaWdodDogNSU7CisJbWFyZ2luLWxlZnQ6IDA7Cit9CisuYmFkICB7CisJYm9yZGVyOiBzb2xpZCByZWQ7CisJYm9yZGVyLXdpZHRoOiAycHg7CisJbWFyZ2luLWxlZnQ6IDA7CisJbWFyZ2luLXJpZ2h0OiA1JTsKKwljb2xvcjogcmdiKDE5MiwgMTAxLCAxMDEpOworfQorCitpbWcgeworCWNvbG9yOiB3aGl0ZTsKKwlib3JkZXI6IG5vbmU7Cit9CisKK2Rpdi5uYXZiYXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KK2Rpdi5jb250ZW50cyB7CisJYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNCwyMDQsMjU1KTsKKwlwYWRkaW5nOiAwLjVlbTsKKwlib3JkZXI6IG5vbmU7CisJbWFyZ2luLXJpZ2h0OiA1JTsKK30KKy50b2NsaW5lIHsgbGlzdC1zdHlsZTogbm9uZTsgfQordGFibGUuZXhjZXB0aW9ucyB7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDE1Myk7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9Im5hdmJhciI+CisgIDxhIGhyZWY9IiN0b2MiPnRhYmxlIG9mIGNvbnRlbnRzPC9hPiAKKyAgPGhyIC8+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImhlYWQiPjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLyI+PGltZyBjbGFzcz0iaGVhZCIgc3JjPSJ3M2NfaG9tZS5naWYiIGFsdD0iVzNDIiAvPjwvYT48L3A+CisKKzxoMSBjbGFzcz0iaGVhZCI+PGEgbmFtZT0idGl0bGUiIGlkPSJ0aXRsZSI+WEhUTUw8L2E+PHN1cD4mI3gyMTIyOzwvc3VwPiAxLjA6CitUaGUgRXh0ZW5zaWJsZSBIeXBlclRleHQgTWFya3VwIExhbmd1YWdlPC9oMT4KKworPGgyPkEgUmVmb3JtdWxhdGlvbiBvZiBIVE1MIDQuMCBpbiBYTUwgMS4wPC9oMj4KKworPGgzPlczQyBQcm9wb3NlZCBSZWNvbW1lbmRhdGlvbiAxMCBEZWNlbWJlciAxOTk5PC9oMz4KKworPGRsPgorPGR0PlRoaXMgdmVyc2lvbjo8L2R0PgorCis8ZGQ+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi14aHRtbDEtMTk5OTEyMTAiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi14aHRtbDEtMTk5OTEyMTA8L2E+IDxiciAvPgorKDxhIGhyZWY9InhodG1sMS5wcyI+UG9zdHNjcmlwdCB2ZXJzaW9uPC9hPiwKKzxhIGhyZWY9InhodG1sMS5wZGYiPlBERiB2ZXJzaW9uPC9hPiwKKzxhIGhyZWY9InhodG1sMS56aXAiPlpJUCBhcmNoaXZlPC9hPiwgb3IKKzxhIGhyZWY9InhodG1sMS50Z3oiPkd6aXAnZCBUQVIgYXJjaGl2ZTwvYT4pCis8L2RkPgorCis8ZHQ+TGF0ZXN0IHZlcnNpb246PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMSI+CitodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDE8L2E+PC9kZD4KKworPGR0PlByZXZpb3VzIHZlcnNpb25zOjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1dELXhodG1sMS0xOTk5MTEyNCI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1dELXhodG1sMS0xOTk5MTEyNDwvYT48L2RkPgorPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFIteGh0bWwxLTE5OTkwODI0Ij4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFIteGh0bWwxLTE5OTkwODI0PC9hPjwvZGQ+CisKKzxkdD5BdXRob3JzOjwvZHQ+CisKKzxkZD5TZWUgPGEgaHJlZj0iI2Fja3MiPmFja25vd2xlZGdlbWVudHM8L2E+LjwvZGQ+Cis8L2RsPgorCis8cCBjbGFzcz0iY29weXJpZ2h0Ij48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2lwci1ub3RpY2UjQ29weXJpZ2h0Ij4KK0NvcHlyaWdodDwvYT4gJmNvcHk7IDE5OTkgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvIj5XM0M8L2E+PHN1cD4mcmVnOzwvc3VwPgorKDxhIGhyZWY9Imh0dHA6Ly93d3cubGNzLm1pdC5lZHUvIj5NSVQ8L2E+LCA8YSBocmVmPSJodHRwOi8vd3d3LmlucmlhLmZyLyI+SU5SSUE8L2E+LCA8YSBocmVmPSJodHRwOi8vd3d3LmtlaW8uYWMuanAvIj5LZWlvPC9hPiksIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIDxhYmJyIHRpdGxlPSJXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtIj5XM0M8L2FiYnI+IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvaXByLW5vdGljZSNMZWdhbF9EaXNjbGFpbWVyIj4KK2xpYWJpbGl0eTwvYT4sIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvaXByLW5vdGljZSNXM0NfVHJhZGVtYXJrcyI+Cit0cmFkZW1hcms8L2E+LCA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1kb2N1bWVudHMiPmRvY3VtZW50Cit1c2U8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1zb2Z0d2FyZSI+c29mdHdhcmUKK2xpY2Vuc2luZzwvYT4gcnVsZXMgYXBwbHkuPC9wPgorPGhyIC8+Cis8L2Rpdj4KKworPGgyIGNsYXNzPSJub3RvYyI+QWJzdHJhY3Q8L2gyPgorCis8cD5UaGlzIHNwZWNpZmljYXRpb24gZGVmaW5lcyA8YWJiciB0aXRsZT0iRXh0ZW5zaWJsZSBIeXBlcnRleHQgTWFya3VwIExhbmd1YWdlIj5YSFRNTDwvYWJicj4gMS4wLCBhIHJlZm9ybXVsYXRpb24gb2YgSFRNTAorNC4wIGFzIGFuIFhNTCAxLjAgYXBwbGljYXRpb24sIGFuZCB0aHJlZSA8YWJiciB0aXRsZT0iRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uIj5EVERzPC9hYmJyPiBjb3JyZXNwb25kaW5nIHRvCit0aGUgb25lcyBkZWZpbmVkIGJ5IEhUTUwgNC4wLiBUaGUgc2VtYW50aWNzIG9mIHRoZSBlbGVtZW50cyBhbmQKK3RoZWlyIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgaW4gdGhlIFczQyBSZWNvbW1lbmRhdGlvbiBmb3IgSFRNTAorNC4wLiBUaGVzZSBzZW1hbnRpY3MgcHJvdmlkZSB0aGUgZm91bmRhdGlvbiBmb3IgZnV0dXJlCitleHRlbnNpYmlsaXR5IG9mIFhIVE1MLiBDb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgSFRNTCB1c2VyCithZ2VudHMgaXMgcG9zc2libGUgYnkgZm9sbG93aW5nIGEgc21hbGwgc2V0IG9mIGd1aWRlbGluZXMuPC9wPgorCis8aDI+U3RhdHVzIG9mIHRoaXMgZG9jdW1lbnQ8L2gyPgorCis8cD48ZW0+VGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgc3RhdHVzIG9mIHRoaXMgZG9jdW1lbnQgYXQgdGhlIHRpbWUKK29mIGl0cyBwdWJsaWNhdGlvbi4gT3RoZXIgZG9jdW1lbnRzIG1heSBzdXBlcnNlZGUgdGhpcyBkb2N1bWVudC4gVGhlCitsYXRlc3Qgc3RhdHVzIG9mIHRoaXMgZG9jdW1lbnQgc2VyaWVzIGlzIG1haW50YWluZWQgYXQgdGhlIFczQy48L2VtPjwvcD4KKworPHA+VGhpcyBzcGVjaWZpY2F0aW9uIGlzIGEgUHJvcG9zZWQgUmVjb21tZW5kYXRpb24gb2YgdGhlIEhUTUwgV29ya2luZyBHcm91cC4gSXQgaXMgCithIHJldmlzaW9uIG9mIHRoZSBQcm9wb3NlZCBSZWNvbW1lbmRhdGlvbiBkYXRlZCA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1BSLXhodG1sMS0xOTk5MDgyNC8iPjI0IEF1Z3VzdAorMTk5OTwvYT4gaW5jb3Jwb3JhdGluZyBjaGFuZ2VzIGFzIGEgcmVzdWx0IG9mIGNvbW1lbnRzIGZyb20gdGhlIFByb3Bvc2VkCitSZWNvbW1lbmRhdGlvbiByZXZpZXcsIGFuZCAKK2NvbW1lbnRzIGFuZCBmdXJ0aGVyIGRlbGliZXJhdGlvbnMgb2YgdGhlIFczQyBIVE1MIFdvcmtpbmcgR3JvdXAuIEEgCis8YSBocmVmPSJ4aHRtbDEtZGlmZi0xOTk5MTIxMC5odG1sIj5kaWZmLW1hcmtlZCB2ZXJzaW9uPC9hPiBmcm9tIHRoZSBwcmV2aW91cworcHJvcG9zZWQgcmVjb21tZW5kYXRpb24gaXMgYXZhaWxhYmxlIGZvciBjb21wYXJpc29uIHB1cnBvc2VzLjwvcD4KKworPHA+T24gMTAgRGVjZW1iZXIgMTk5OSwgdGhpcyBkb2N1bWVudCBlbnRlcnMgYQorPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9Qcm9jZXNzLyNSZWNzUFIiPgorUHJvcG9zZWQgUmVjb21tZW5kYXRpb248L2E+IHJldmlldyBwZXJpb2QuIEZyb20gdGhhdCBkYXRlIHVudGlsIDggSmFudWFyeQorMjAwMCwKK1czQyBBZHZpc29yeSBDb21taXR0ZWUgcmVwcmVzZW50YXRpdmVzIGFyZSBlbmNvdXJhZ2VkCit0byByZXZpZXcgdGhpcyBzcGVjaWZpY2F0aW9uIGFuZCByZXR1cm4gY29tbWVudHMgaW4gdGhlaXIgY29tcGxldGVkCitiYWxsb3RzIHRvIHczYy1odG1sLXJldmlld0B3My5vcmcuIFBsZWFzZSBzZW5kIGFueSBjb21tZW50cyBvZiBhCitjb25maWRlbnRpYWwgbmF0dXJlIGluIHNlcGFyYXRlIGVtYWlsIHRvIHczdC1odG1sQHczLm9yZywgd2hpY2ggaXMKK3Zpc2libGUgdG8gdGhlIFRlYW0gb25seS48L3A+CisKKzxwPk5vIHNvb25lciB0aGFuIDE0IGRheXMgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgcmV2aWV3IHBlcmlvZCwgdGhlCitEaXJlY3RvciB3aWxsIGFubm91bmNlIHRoZSBkb2N1bWVudCdzIGRpc3Bvc2l0aW9uOiBpdCBtYXkgYmVjb21lIGEgVzNDCitSZWNvbW1lbmRhdGlvbiAocG9zc2libHkgd2l0aCBtaW5vciBjaGFuZ2VzKSwgaXQgbWF5IHJldmVydCB0byBXb3JraW5nCitEcmFmdCBzdGF0dXMsIG9yIGl0IG1heSBiZSBkcm9wcGVkIGFzIGEgVzNDIHdvcmsgaXRlbS48L3A+CisKKzxwPlB1YmxpY2F0aW9uIGFzIGEgUHJvcG9zZWQgUmVjb21tZW5kYXRpb24gZG9lcyBub3QgaW1wbHkgZW5kb3JzZW1lbnQKK2J5IHRoZSBXM0MgbWVtYmVyc2hpcC4gIFRoaXMgaXMgc3RpbGwgYSBkcmFmdCBkb2N1bWVudCBhbmQgbWF5IGJlCit1cGRhdGVkLCByZXBsYWNlZCBvciBvYnNvbGV0ZWQgYnkgb3RoZXIgZG9jdW1lbnRzIGF0IGFueSB0aW1lLiBJdCBpcworaW5hcHByb3ByaWF0ZSB0byBjaXRlIFczQyBQcm9wb3NlZCBSZWNvbW1lbmRhdGlvbiBhcyBvdGhlciB0aGFuICJ3b3JrCitpbiBwcm9ncmVzcy4iPC9wPgorCis8cD5UaGlzIGRvY3VtZW50IGhhcyBiZWVuIHByb2R1Y2VkIGFzIHBhcnQgb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL01hcmtVcC8iPlczQyBIVE1MIEFjdGl2aXR5PC9hPi4gVGhlIGdvYWxzIG9mCit0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvTWFya1VwL0dyb3VwLyI+SFRNTCBXb3JraW5nCitHcm91cDwvYT4gPGk+KDxhIGhyZWY9Imh0dHA6Ly9jZ2kudzMub3JnL01lbWJlckFjY2Vzcy8iPm1lbWJlcnMKK29ubHk8L2E+KTwvaT4gYXJlIGRpc2N1c3NlZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvTWFya1VwL0dyb3VwL0hUTUxjaGFydGVyIj5IVE1MIFdvcmtpbmcgR3JvdXAKK2NoYXJ0ZXI8L2E+IDxpPig8YSBocmVmPSJodHRwOi8vY2dpLnczLm9yZy9NZW1iZXJBY2Nlc3MvIj5tZW1iZXJzCitvbmx5PC9hPik8L2k+LjwvcD4KKworPHA+QSBsaXN0IG9mIGN1cnJlbnQgVzNDIFJlY29tbWVuZGF0aW9ucyBhbmQgb3RoZXIgdGVjaG5pY2FsIGRvY3VtZW50cworY2FuIGJlIGZvdW5kIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSIj5odHRwOi8vd3d3LnczLm9yZy9UUjwvYT4uPC9wPgorCis8cD5QdWJsaWMgZGlzY3Vzc2lvbiBvbiA8YWJiciB0aXRsZT0iSHlwZXJUZXh0IE1hcmt1cCBMYW5ndWFnZSI+SFRNTDwvYWJicj4gZmVhdHVyZXMgdGFrZXMgcGxhY2Ugb24gdGhlIG1haWxpbmcgbGlzdCA8YSBocmVmPSJtYWlsdG86d3d3LWh0bWxAdzMub3JnIj4gd3d3LWh0bWxAdzMub3JnPC9hPiAoPGEgaHJlZj0iaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWh0bWwvIj5hcmNoaXZlPC9hPikuIFRoZSBXM0MKK3N0YWZmIGNvbnRhY3QgZm9yIHdvcmsgb24gSFRNTCBpcyA8YSBocmVmPSJtYWlsdG86ZHNyQHczLm9yZyI+RGF2ZQorUmFnZ2V0dDwvYT4uPC9wPgorCis8cD5QbGVhc2UgcmVwb3J0IGVycm9ycyBpbiB0aGlzIGRvY3VtZW50IHRvIDxhIGhyZWY9Im1haWx0bzp3d3ctaHRtbC1lZGl0b3JAdzMub3JnIj53d3ctaHRtbC1lZGl0b3JAdzMub3JnPC9hPi48L3A+CisKKzxwPlRoZSBsaXN0IG9mIGtub3duIGVycm9ycyBpbiB0aGlzIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMTIvUFIteGh0bWwxLTE5OTkxMjEwLWVycmF0YSI+aHR0cDovL3d3dy53My5vcmcvMTk5OS8xMi9QUi14aHRtbDEtMTk5OTEyMTAtZXJyYXRhPC9hPi48L3A+CisKKzxoMiBjbGFzcz0ibm90b2MiPjxhIGlkPSJ0b2MiIG5hbWU9InRvYyI+Q29udGVudHM8L2E+PC9oMj4KKworPGRpdiBjbGFzcz0iY29udGVudHMiPgorPHVsIGNsYXNzPSJ0b2MiPgorPGxpIGNsYXNzPSJ0b2NsaW5lIj4xLiA8YSBocmVmPSIjeGh0bWwiPldoYXQgaXMgWEhUTUw/PC9hPiAKKworPHVsIGNsYXNzPSJ0b2MiPgorPGxpIGNsYXNzPSJ0b2NsaW5lIj4xLjEgPGEgaHJlZj0iI2h0bWw0Ij5XaGF0IGlzIEhUTUwgNC4wPzwvYT48L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjEuMiA8YSBocmVmPSIjeG1sIj5XaGF0IGlzIFhNTD88L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj4xLjMgPGEgaHJlZj0iI3doeSI+V2h5IHRoZSBuZWVkIGZvciBYSFRNTD88L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjIuIDxhIGhyZWY9IiNkZWZzIj5EZWZpbml0aW9uczwvYT4gCisKKzx1bCBjbGFzcz0idG9jIj4KKzxsaSBjbGFzcz0idG9jbGluZSI+Mi4xIDxhIGhyZWY9IiN0ZXJtcyI+VGVybWlub2xvZ3k8L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj4yLjIgPGEgaHJlZj0iI2dlbmVyYWwiPkdlbmVyYWwgVGVybXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjMuIDxhIGhyZWY9IiNub3JtYXRpdmUiPk5vcm1hdGl2ZSBEZWZpbml0aW9uIG9mIFhIVE1MIDEuMDwvYT4KKworCis8dWwgY2xhc3M9InRvYyI+Cis8bGkgY2xhc3M9InRvY2xpbmUiPjMuMSA8YSBocmVmPSIjZG9jY29uZiI+RG9jdW1lbnQgQ29uZm9ybWFuY2U8L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj4zLjIgPGEgaHJlZj0iI3VhY29uZiI+VXNlciBBZ2VudCBDb25mb3JtYW5jZTwvYT48L2xpPgorPC91bD4KKzwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+NC4gPGEgaHJlZj0iI2RpZmZzIj5EaWZmZXJlbmNlcyB3aXRoIEhUTUwgNC4wPC9hPiAKKworPC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj41LiA8YSBocmVmPSIjaXNzdWVzIj5Db21wYXRpYmlsaXR5IElzc3VlczwvYT4gCisKKzx1bCBjbGFzcz0idG9jIj4KKzxsaSBjbGFzcz0idG9jbGluZSI+NS4xIDxhIGhyZWY9IiNtZWRpYSI+SW50ZXJuZXQgTWVkaWEgVHlwZXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjYuIDxhIGhyZWY9IiNmdXR1cmUiPkZ1dHVyZSBEaXJlY3Rpb25zPC9hPiAKKworPHVsIGNsYXNzPSJ0b2MiPgorPGxpIGNsYXNzPSJ0b2NsaW5lIj42LjEgPGEgaHJlZj0iI21vZHMiPk1vZHVsYXJpemluZyBIVE1MPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+Ni4yIDxhIGhyZWY9IiNleHRlbnNpb25zIj5TdWJzZXRzIGFuZCBFeHRlbnNpYmlsaXR5PC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+Ni4zIDxhIGhyZWY9IiNwcm9maWxlcyI+RG9jdW1lbnQgUHJvZmlsZXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjxhIGhyZWY9IiNkdGRzIj5BcHBlbmRpeCBBLiBEVERzPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+PGEgaHJlZj0iI3Byb2hpYml0aW9ucyI+QXBwZW5kaXggQi4gRWxlbWVudAorUHJvaGliaXRpb25zPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+PGEgaHJlZj0iI2d1aWRlbGluZXMiPkFwcGVuZGl4IEMuIEhUTUwgQ29tcGF0aWJpbGl0eSBHdWlkZWxpbmVzPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+PGEgaHJlZj0iI2Fja3MiPkFwcGVuZGl4IEQuIEFja25vd2xlZGdlbWVudHM8L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj48YSBocmVmPSIjcmVmcyI+QXBwZW5kaXggRS4gUmVmZXJlbmNlczwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9InhodG1sIiBpZD0ieGh0bWwiPjEuIFdoYXQgaXMgWEhUTUw/PC9hPjwvaDE+CisKKzxwPlhIVE1MIGlzIGEgZmFtaWx5IG9mIGN1cnJlbnQgYW5kIGZ1dHVyZSBkb2N1bWVudCB0eXBlcyBhbmQgbW9kdWxlcyB0aGF0CityZXByb2R1Y2UsIHN1YnNldCwgYW5kIGV4dGVuZCBIVE1MIDQuMCA8YSBocmVmPSIjcmVmLWh0bWw0Ij5bSFRNTF08L2E+LiBYSFRNTCBmYW1pbHkgZG9jdW1lbnQgdHlwZXMgYXJlIDxhYmJyIHRpdGxlPSJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI+WE1MPC9hYmJyPiBiYXNlZCwKK2FuZCB1bHRpbWF0ZWx5IGFyZSBkZXNpZ25lZCB0byB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggWE1MLWJhc2VkIHVzZXIgYWdlbnRzLgorVGhlIGRldGFpbHMgb2YgdGhpcyBmYW1pbHkgYW5kIGl0cyBldm9sdXRpb24gYXJlCitkaXNjdXNzZWQgaW4gbW9yZSBkZXRhaWwgaW4gdGhlIHNlY3Rpb24gb24gPGEgaHJlZj0iI2Z1dHVyZSI+RnV0dXJlCitEaXJlY3Rpb25zPC9hPi4gPC9wPgorCis8cD5YSFRNTCAxLjAgKHRoaXMgc3BlY2lmaWNhdGlvbikgaXMgdGhlIGZpcnN0IGRvY3VtZW50IHR5cGUgaW4gdGhlIFhIVE1MCitmYW1pbHkuIEl0IGlzIGEgcmVmb3JtdWxhdGlvbiBvZiB0aGUgdGhyZWUgSFRNTCA0LjAgZG9jdW1lbnQgdHlwZXMgYXMKK2FwcGxpY2F0aW9ucyBvZiBYTUwgMS4wIDxhIGhyZWY9IiNyZWYteG1sIj4gW1hNTF08L2E+LiBJdCBpcyBpbnRlbmRlZAordG8gYmUgdXNlZCBhcyBhIGxhbmd1YWdlIGZvciBjb250ZW50IHRoYXQgaXMgYm90aCBYTUwtY29uZm9ybWluZyBhbmQsIGlmIHNvbWUKK3NpbXBsZSA8YSBocmVmPSIjZ3VpZGVsaW5lcyI+Z3VpZGVsaW5lczwvYT4gYXJlIGZvbGxvd2VkLCAKK29wZXJhdGVzIGluIEhUTUwgNC4wIGNvbmZvcm1pbmcgdXNlciBhZ2VudHMuIERldmVsb3BlcnMgd2hvIG1pZ3JhdGUKK3RoZWlyIGNvbnRlbnQgdG8gWEhUTUwgMS4wIHdpbGwgcmVhbGl6ZSB0aGUgZm9sbG93aW5nIGJlbmVmaXRzOjwvcD4KKworPHVsPgorPGxpPlhIVE1MIGRvY3VtZW50cyBhcmUgWE1MIGNvbmZvcm1pbmcuIEFzIHN1Y2gsIHRoZXkgYXJlIHJlYWRpbHkgdmlld2VkLAorZWRpdGVkLCBhbmQgdmFsaWRhdGVkIHdpdGggc3RhbmRhcmQgWE1MIHRvb2xzLjwvbGk+Cis8bGk+WEhUTUwgZG9jdW1lbnRzIGNhbiBiZSB3cml0dGVuIHRvCit0byBvcGVyYXRlIGFzIHdlbGwgb3IgYmV0dGVyIHRoYW4gdGhleSBkaWQgYmVmb3JlIGluIGV4aXN0aW5nCitIVE1MIDQuMC1jb25mb3JtaW5nIHVzZXIgYWdlbnRzIGFzIHdlbGwgYXMgaW4gbmV3LCBYSFRNTCAxLjAgY29uZm9ybWluZyB1c2VyCithZ2VudHMuPC9saT4KKzxsaT5YSFRNTCBkb2N1bWVudHMgY2FuIHV0aWxpemUgYXBwbGljYXRpb25zIChlLmcuIHNjcmlwdHMgYW5kIGFwcGxldHMpIHRoYXQgcmVseQordXBvbiBlaXRoZXIgdGhlIEhUTUwgRG9jdW1lbnQgT2JqZWN0IE1vZGVsIG9yIHRoZSBYTUwgRG9jdW1lbnQgT2JqZWN0IE1vZGVsIDxhIGhyZWY9IiNyZWYtZG9tIj5bRE9NXTwvYT4uPC9saT4KKzxsaT5BcyB0aGUgWEhUTUwgZmFtaWx5IGV2b2x2ZXMsIGRvY3VtZW50cyBjb25mb3JtaW5nIHRvIFhIVE1MIDEuMCB3aWxsIGJlIG1vcmUKK2xpa2VseSB0byBpbnRlcm9wZXJhdGUgd2l0aGluIGFuZCBhbW9uZyB2YXJpb3VzIFhIVE1MIGVudmlyb25tZW50cy48L2xpPgorPC91bD4KKworPHA+VGhlIFhIVE1MIGZhbWlseSBpcyB0aGUgbmV4dCBzdGVwIGluIHRoZSBldm9sdXRpb24gb2YgdGhlIEludGVybmV0LiBCeQorbWlncmF0aW5nIHRvIFhIVE1MIHRvZGF5LCBjb250ZW50IGRldmVsb3BlcnMgY2FuIGVudGVyIHRoZSBYTUwgd29ybGQgd2l0aCBhbGwKK29mIGl0cyBhdHRlbmRhbnQgYmVuZWZpdHMsIHdoaWxlIHN0aWxsIHJlbWFpbmluZyBjb25maWRlbnQgaW4gdGhlaXIKK2NvbnRlbnQncyBiYWNrd2FyZCBhbmQgZnV0dXJlIGNvbXBhdGliaWxpdHkuPC9wPgorCis8aDI+PGEgbmFtZT0iaHRtbDQiIGlkPSJodG1sNCI+MS4xIFdoYXQgaXMgSFRNTCA0LjA/PC9hPjwvaDI+CisKKzxwPkhUTUwgNC4wIDxhIGhyZWY9IiNyZWYtaHRtbDQiPltIVE1MXTwvYT4gaXMgYW4gPGFiYnIgdGl0bGU9IlN0YW5kYXJkIEdlbmVyYWxpemVkIE1hcmt1cCBMYW5ndWFnZSI+U0dNTDwvYWJicj4gKFN0YW5kYXJkCitHZW5lcmFsaXplZCBNYXJrdXAgTGFuZ3VhZ2UpIGFwcGxpY2F0aW9uIGNvbmZvcm1pbmcgdG8KK0ludGVybmF0aW9uYWwgU3RhbmRhcmQgPGFiYnIgdGl0bGU9Ik9yZ2FuaXphdGlvbiBmb3IgSW50ZXJuYXRpb25hbCBTdGFuZGFyZGl6YXRpb24iPklTTzwvYWJicj4gODg3OSwgYW5kIGlzIHdpZGVseSByZWdhcmRlZCBhcyB0aGUKK3N0YW5kYXJkIHB1Ymxpc2hpbmcgbGFuZ3VhZ2Ugb2YgdGhlIFdvcmxkIFdpZGUgV2ViLjwvcD4KKworPHA+U0dNTCBpcyBhIGxhbmd1YWdlIGZvciBkZXNjcmliaW5nIG1hcmt1cCBsYW5ndWFnZXMsCitwYXJ0aWN1bGFybHkgdGhvc2UgdXNlZCBpbiBlbGVjdHJvbmljIGRvY3VtZW50IGV4Y2hhbmdlLCBkb2N1bWVudAorbWFuYWdlbWVudCwgYW5kIGRvY3VtZW50IHB1Ymxpc2hpbmcuIEhUTUwgaXMgYW4gZXhhbXBsZSBvZiBhCitsYW5ndWFnZSBkZWZpbmVkIGluIFNHTUwuPC9wPgorCis8cD5TR01MIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgbWlkZGxlIDE5ODAncyBhbmQgaGFzIHJlbWFpbmVkCitxdWl0ZSBzdGFibGUuIE11Y2ggb2YgdGhpcyBzdGFiaWxpdHkgc3RlbXMgZnJvbSB0aGUgZmFjdCB0aGF0IHRoZQorbGFuZ3VhZ2UgaXMgYm90aCBmZWF0dXJlLXJpY2ggYW5kIGZsZXhpYmxlLiBUaGlzIGZsZXhpYmlsaXR5LAoraG93ZXZlciwgY29tZXMgYXQgYSBwcmljZSwgYW5kIHRoYXQgcHJpY2UgaXMgYSBsZXZlbCBvZgorY29tcGxleGl0eSB0aGF0IGhhcyBpbmhpYml0ZWQgaXRzIGFkb3B0aW9uIGluIGEgZGl2ZXJzaXR5IG9mCitlbnZpcm9ubWVudHMsIGluY2x1ZGluZyB0aGUgV29ybGQgV2lkZSBXZWIuPC9wPgorCis8cD5IVE1MLCBhcyBvcmlnaW5hbGx5IGNvbmNlaXZlZCwgd2FzIHRvIGJlIGEgbGFuZ3VhZ2UgZm9yIHRoZQorZXhjaGFuZ2Ugb2Ygc2NpZW50aWZpYyBhbmQgb3RoZXIgdGVjaG5pY2FsIGRvY3VtZW50cywgc3VpdGFibGUKK2ZvciB1c2UgYnkgbm9uLWRvY3VtZW50IHNwZWNpYWxpc3RzLiBIVE1MIGFkZHJlc3NlZCB0aGUgcHJvYmxlbQorb2YgU0dNTCBjb21wbGV4aXR5IGJ5IHNwZWNpZnlpbmcgYSBzbWFsbCBzZXQgb2Ygc3RydWN0dXJhbCBhbmQKK3NlbWFudGljIHRhZ3Mgc3VpdGFibGUgZm9yIGF1dGhvcmluZyByZWxhdGl2ZWx5IHNpbXBsZSBkb2N1bWVudHMuCitJbiBhZGRpdGlvbiB0byBzaW1wbGlmeWluZyB0aGUgZG9jdW1lbnQgc3RydWN0dXJlLCBIVE1MIGFkZGVkCitzdXBwb3J0IGZvciBoeXBlcnRleHQuIE11bHRpbWVkaWEgY2FwYWJpbGl0aWVzIHdlcmUgYWRkZWQKK2xhdGVyLjwvcD4KKworPHA+SW4gYSByZW1hcmthYmx5IHNob3J0IHNwYWNlIG9mIHRpbWUsIEhUTUwgYmVjYW1lIHdpbGRseQorcG9wdWxhciBhbmQgcmFwaWRseSBvdXRncmV3IGl0cyBvcmlnaW5hbCBwdXJwb3NlLiBTaW5jZSBIVE1MJ3MKK2luY2VwdGlvbiwgdGhlcmUgaGFzIGJlZW4gcmFwaWQgaW52ZW50aW9uIG9mIG5ldyBlbGVtZW50cyBmb3IgdXNlCit3aXRoaW4gSFRNTCAoYXMgYSBzdGFuZGFyZCkgYW5kIGZvciBhZGFwdGluZyBIVE1MIHRvIHZlcnRpY2FsLAoraGlnaGx5IHNwZWNpYWxpemVkLCBtYXJrZXRzLiBUaGlzIHBsZXRob3JhIG9mIG5ldyBlbGVtZW50cyBoYXMKK2xlZCB0byBjb21wYXRpYmlsaXR5IHByb2JsZW1zIGZvciBkb2N1bWVudHMgYWNyb3NzIGRpZmZlcmVudAorcGxhdGZvcm1zLjwvcD4KKworPHA+QXMgdGhlIGhldGVyb2dlbmVpdHkgb2YgYm90aCBzb2Z0d2FyZSBhbmQgcGxhdGZvcm1zIHJhcGlkbHkKK3Byb2xpZmVyYXRlLCBpdCBpcyBjbGVhciB0aGF0IHRoZSBzdWl0YWJpbGl0eSBvZiAnY2xhc3NpYycgSFRNTAorNC4wIGZvciB1c2Ugb24gdGhlc2UgcGxhdGZvcm1zIGlzIHNvbWV3aGF0IGxpbWl0ZWQuPC9wPgorCis8aDI+PGEgbmFtZT0ieG1sIiBpZD0ieG1sIj4xLjIgV2hhdCBpcyBYTUw/PC9hPjwvaDI+CisKKzxwPlhNTDxzdXA+JiN4MjEyMjs8L3N1cD4gaXMgdGhlIHNob3J0aGFuZCBmb3IgRXh0ZW5zaWJsZSBNYXJrdXAKK0xhbmd1YWdlLCBhbmQgaXMgYW4gYWNyb255bSBvZiBFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSA8YSBocmVmPSIjcmVmLXhtbCI+W1hNTF08L2E+LjwvcD4KKworPHA+WE1MIHdhcyBjb25jZWl2ZWQgYXMgYSBtZWFucyBvZiByZWdhaW5pbmcgdGhlIHBvd2VyIGFuZAorZmxleGliaWxpdHkgb2YgU0dNTCB3aXRob3V0IG1vc3Qgb2YgaXRzIGNvbXBsZXhpdHkuIEFsdGhvdWdoIGEKK3Jlc3RyaWN0ZWQgZm9ybSBvZiBTR01MLCBYTUwgbm9uZXRoZWxlc3MgcHJlc2VydmVzIG1vc3Qgb2YgU0dNTCdzCitwb3dlciBhbmQgcmljaG5lc3MsIGFuZCB5ZXQgc3RpbGwgcmV0YWlucyBhbGwgb2YgU0dNTCdzIGNvbW1vbmx5Cit1c2VkIGZlYXR1cmVzLjwvcD4KKworPHA+V2hpbGUgcmV0YWluaW5nIHRoZXNlIGJlbmVmaWNpYWwgZmVhdHVyZXMsIFhNTCByZW1vdmVzIG1hbnkgb2YKK3RoZSBtb3JlIGNvbXBsZXggZmVhdHVyZXMgb2YgU0dNTCB0aGF0IG1ha2UgdGhlIGF1dGhvcmluZyBhbmQKK2Rlc2lnbiBvZiBzdWl0YWJsZSBzb2Z0d2FyZSBib3RoIGRpZmZpY3VsdCBhbmQgY29zdGx5LjwvcD4KKworPGgyPjxhIG5hbWU9IndoeSIgaWQ9IndoeSI+MS4zIFdoeSB0aGUgbmVlZCBmb3IgWEhUTUw/PC9hPjwvaDI+CisKKzxwPlRoZSBiZW5lZml0cyBvZiBtaWdyYXRpbmcgdG8gWEhUTUwgMS4wIGFyZSBkZXNjcmliZWQgYWJvdmUuIFNvbWUgb2YgdGhlCitiZW5lZml0cyBvZiBtaWdyYXRpbmcgdG8gWEhUTUwgaW4gZ2VuZXJhbCBhcmU6PC9wPgorCis8dWw+Cis8bGk+RG9jdW1lbnQgZGV2ZWxvcGVycyBhbmQgdXNlciBhZ2VudCBkZXNpZ25lcnMgYXJlIGNvbnN0YW50bHkKK2Rpc2NvdmVyaW5nIG5ldyB3YXlzIHRvIGV4cHJlc3MgdGhlaXIgaWRlYXMgdGhyb3VnaCBuZXcgbWFya3VwLiBJbiBYTUwsIGl0IGlzCityZWxhdGl2ZWx5IGVhc3kgdG8gaW50cm9kdWNlIG5ldyBlbGVtZW50cyBvciBhZGRpdGlvbmFsIGVsZW1lbnQKK2F0dHJpYnV0ZXMuICBUaGUgWEhUTUwgZmFtaWx5IGlzIGRlc2lnbmVkIHRvIGFjY29tbW9kYXRlIHRoZXNlIGV4dGVuc2lvbnMKK3Rocm91Z2ggWEhUTUwgbW9kdWxlcyBhbmQgdGVjaG5pcXVlcyBmb3IgZGV2ZWxvcGluZyBuZXcgWEhUTUwtY29uZm9ybWluZworbW9kdWxlcyAoZGVzY3JpYmVkIGluIHRoZSBmb3J0aGNvbWluZyBYSFRNTCBNb2R1bGFyaXphdGlvbiBzcGVjaWZpY2F0aW9uKS4KK1RoZXNlIG1vZHVsZXMgd2lsbCBwZXJtaXQgdGhlIGNvbWJpbmF0aW9uIG9mIGV4aXN0aW5nIGFuZAorbmV3IGZlYXR1cmUgc2V0cyB3aGVuIGRldmVsb3BpbmcgY29udGVudCBhbmQgd2hlbiBkZXNpZ25pbmcgbmV3IHVzZXIKK2FnZW50cy48L2xpPgorCis8bGk+QWx0ZXJuYXRlIHdheXMgb2YgYWNjZXNzaW5nIHRoZSBJbnRlcm5ldCBhcmUgY29uc3RhbnRseSBiZWluZworaW50cm9kdWNlZC4gIFNvbWUgZXN0aW1hdGVzIGluZGljYXRlIHRoYXQgYnkgdGhlIHllYXIgMjAwMiwgNzUlIG9mCitJbnRlcm5ldCBkb2N1bWVudCB2aWV3aW5nIHdpbGwgYmUgY2FycmllZCBvdXQgb24gdGhlc2UgYWx0ZXJuYXRlCitwbGF0Zm9ybXMuICBUaGUgWEhUTUwgZmFtaWx5IGlzIGRlc2lnbmVkIHdpdGggZ2VuZXJhbCB1c2VyIGFnZW50CitpbnRlcm9wZXJhYmlsaXR5IGluIG1pbmQuIFRocm91Z2ggYSBuZXcgdXNlciBhZ2VudCBhbmQgZG9jdW1lbnQgcHJvZmlsaW5nCittZWNoYW5pc20sIHNlcnZlcnMsIHByb3hpZXMsIGFuZCB1c2VyIGFnZW50cyB3aWxsIGJlIGFibGUgdG8gcGVyZm9ybQorYmVzdCBlZmZvcnQgY29udGVudCB0cmFuc2Zvcm1hdGlvbi4gVWx0aW1hdGVseSwgaXQgd2lsbCBiZSBwb3NzaWJsZSB0bworZGV2ZWxvcCBYSFRNTC1jb25mb3JtaW5nIGNvbnRlbnQgdGhhdCBpcyB1c2FibGUgYnkgYW55IFhIVE1MLWNvbmZvcm1pbmcKK3VzZXIgYWdlbnQuPC9saT4KKworPC91bD4KKzwhLS1PZGRQYWdlLS0+Cis8aDE+PGEgbmFtZT0iZGVmcyIgaWQ9ImRlZnMiPjIuIERlZmluaXRpb25zPC9hPjwvaDE+CisKKzxoMj48YSBuYW1lPSJ0ZXJtcyIgaWQ9InRlcm1zIj4yLjEgVGVybWlub2xvZ3k8L2E+PC9oMj4KKworPHA+VGhlIGZvbGxvd2luZyB0ZXJtcyBhcmUgdXNlZCBpbiB0aGlzIHNwZWNpZmljYXRpb24uIFRoZXNlCit0ZXJtcyBleHRlbmQgdGhlIGRlZmluaXRpb25zIGluIDxhIGhyZWY9IiNyZWYtcmZjMjExOSI+CitbUkZDMjExOV08L2E+IGluIHdheXMgYmFzZWQgdXBvbiBzaW1pbGFyIGRlZmluaXRpb25zIGluIElTTy88YWJiciB0aXRsZT0iSW50ZXJuYXRpb25hbCBFbGVjdHJvLXRlY2huaWNhbCBDb21taXNzaW9uIj5JRUM8L2FiYnI+Cis5OTQ1LTE6MTk5MCA8YSBocmVmPSIjcmVmLXBvc2l4Ij5bUE9TSVguMV08L2E+OjwvcD4KKworPGRsPgorPGR0PkltcGxlbWVudGF0aW9uLWRlZmluZWQ8L2R0PgorCis8ZGQ+QSB2YWx1ZSBvciBiZWhhdmlvciBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHdoZW4gaXQgaXMgbGVmdAordG8gdGhlIGltcGxlbWVudGF0aW9uIHRvIGRlZmluZSBbYW5kIGRvY3VtZW50XSB0aGUgY29ycmVzcG9uZGluZworcmVxdWlyZW1lbnRzIGZvciBjb3JyZWN0IGRvY3VtZW50IGNvbnN0cnVjdGlvbi48L2RkPgorCis8ZHQ+TWF5PC9kdD4KKworPGRkPldpdGggcmVzcGVjdCB0byBpbXBsZW1lbnRhdGlvbnMsIHRoZSB3b3JkICJtYXkiIGlzIHRvIGJlCitpbnRlcnByZXRlZCBhcyBhbiBvcHRpb25hbCBmZWF0dXJlIHRoYXQgaXMgbm90IHJlcXVpcmVkIGluIHRoaXMKK3NwZWNpZmljYXRpb24gYnV0IGNhbiBiZSBwcm92aWRlZC4gV2l0aCByZXNwZWN0IHRvIDxhIGhyZWY9IiNkb2Njb25mIj5Eb2N1bWVudCBDb25mb3JtYW5jZTwvYT4sIHRoZSB3b3JkICJtYXkiIG1lYW5zIHRoYXQKK3RoZSBvcHRpb25hbCBmZWF0dXJlIG11c3Qgbm90IGJlIHVzZWQuIFRoZSB0ZXJtICJvcHRpb25hbCIgaGFzCit0aGUgc2FtZSBkZWZpbml0aW9uIGFzICJtYXkiLjwvZGQ+CisKKzxkdD5NdXN0PC9kdD4KKworPGRkPkluIHRoaXMgc3BlY2lmaWNhdGlvbiwgdGhlIHdvcmQgIm11c3QiIGlzIHRvIGJlIGludGVycHJldGVkCithcyBhIG1hbmRhdG9yeSByZXF1aXJlbWVudCBvbiB0aGUgaW1wbGVtZW50YXRpb24gb3Igb24gU3RyaWN0bHkKK0NvbmZvcm1pbmcgWEhUTUwgRG9jdW1lbnRzLCBkZXBlbmRpbmcgdXBvbiB0aGUgY29udGV4dC4gVGhlIHRlcm0KKyJzaGFsbCIgaGFzIHRoZSBzYW1lIGRlZmluaXRpb24gYXMgIm11c3QiLjwvZGQ+CisKKzxkdD5SZXNlcnZlZDwvZHQ+CisKKzxkZD5BIHZhbHVlIG9yIGJlaGF2aW9yIGlzIHVuc3BlY2lmaWVkLCBidXQgaXQgaXMgbm90IGFsbG93ZWQgdG8KK2JlIHVzZWQgYnkgQ29uZm9ybWluZyBEb2N1bWVudHMgbm9yIHRvIGJlIHN1cHBvcnRlZCBieSBhCitDb25mb3JtaW5nIFVzZXIgQWdlbnRzLjwvZGQ+CisKKzxkdD5TaG91bGQ8L2R0PgorCis8ZGQ+V2l0aCByZXNwZWN0IHRvIGltcGxlbWVudGF0aW9ucywgdGhlIHdvcmQgInNob3VsZCIgaXMgdG8gYmUKK2ludGVycHJldGVkIGFzIGFuIGltcGxlbWVudGF0aW9uIHJlY29tbWVuZGF0aW9uLCBidXQgbm90IGEKK3JlcXVpcmVtZW50LiBXaXRoIHJlc3BlY3QgdG8gZG9jdW1lbnRzLCB0aGUgd29yZCAic2hvdWxkIiBpcyB0bworYmUgaW50ZXJwcmV0ZWQgYXMgcmVjb21tZW5kZWQgcHJvZ3JhbW1pbmcgcHJhY3RpY2UgZm9yIGRvY3VtZW50cworYW5kIGEgcmVxdWlyZW1lbnQgZm9yIFN0cmljdGx5IENvbmZvcm1pbmcgWEhUTUwgRG9jdW1lbnRzLjwvZGQ+CisKKzxkdD5TdXBwb3J0ZWQ8L2R0PgorCis8ZGQ+Q2VydGFpbiBmYWNpbGl0aWVzIGluIHRoaXMgc3BlY2lmaWNhdGlvbiBhcmUgb3B0aW9uYWwuIElmIGEKK2ZhY2lsaXR5IGlzIHN1cHBvcnRlZCwgaXQgYmVoYXZlcyBhcyBzcGVjaWZpZWQgYnkgdGhpcworc3BlY2lmaWNhdGlvbi48L2RkPgorCis8ZHQ+VW5zcGVjaWZpZWQ8L2R0PgorCis8ZGQ+V2hlbiBhIHZhbHVlIG9yIGJlaGF2aW9yIGlzIHVuc3BlY2lmaWVkLCB0aGUgc3BlY2lmaWNhdGlvbgorZGVmaW5lcyBubyBwb3J0YWJpbGl0eSByZXF1aXJlbWVudHMgZm9yIGEgZmFjaWxpdHkgb24gYW4KK2ltcGxlbWVudGF0aW9uIGV2ZW4gd2hlbiBmYWNlZCB3aXRoIGEgZG9jdW1lbnQgdGhhdCB1c2VzIHRoZQorZmFjaWxpdHkuIEEgZG9jdW1lbnQgdGhhdCByZXF1aXJlcyBzcGVjaWZpYyBiZWhhdmlvciBpbiBzdWNoIGFuCitpbnN0YW5jZSwgcmF0aGVyIHRoYW4gdG9sZXJhdGluZyBhbnkgYmVoYXZpb3Igd2hlbiB1c2luZyB0aGF0CitmYWNpbGl0eSwgaXMgbm90IGEgU3RyaWN0bHkgQ29uZm9ybWluZyBYSFRNTCBEb2N1bWVudC48L2RkPgorPC9kbD4KKworPGgyPjxhIG5hbWU9ImdlbmVyYWwiIGlkPSJnZW5lcmFsIj4yLjIgR2VuZXJhbCBUZXJtczwvYT48L2gyPgorCis8ZGw+Cis8ZHQ+QXR0cmlidXRlPC9kdD4KKworPGRkPkFuIGF0dHJpYnV0ZSBpcyBhIHBhcmFtZXRlciB0byBhbiBlbGVtZW50IGRlY2xhcmVkIGluIHRoZQorRFRELiBBbiBhdHRyaWJ1dGUncyB0eXBlIGFuZCB2YWx1ZSByYW5nZSwgaW5jbHVkaW5nIGEgcG9zc2libGUKK2RlZmF1bHQgdmFsdWUsIGFyZSBkZWZpbmVkIGluIHRoZSBEVEQuPC9kZD4KKworPGR0PkRURDwvZHQ+CisKKzxkZD5BIERURCwgb3IgZG9jdW1lbnQgdHlwZSBkZWZpbml0aW9uLCBpcyBhIGNvbGxlY3Rpb24gb2YgWE1MCitkZWNsYXJhdGlvbnMgdGhhdCwgYXMgYSBjb2xsZWN0aW9uLCBkZWZpbmVzIHRoZSBsZWdhbCBzdHJ1Y3R1cmUsCis8c3BhbiBjbGFzcz0idGVybSI+ZWxlbWVudHM8L3NwYW4+LCBhbmQgPHNwYW4gY2xhc3M9InRlcm0iPgorYXR0cmlidXRlczwvc3Bhbj4gdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB1c2UgaW4gYSBkb2N1bWVudCB0aGF0Citjb21wbGllcyB0byB0aGUgRFRELjwvZGQ+CisKKzxkdD5Eb2N1bWVudDwvZHQ+CisKKzxkZD5BIGRvY3VtZW50IGlzIGEgc3RyZWFtIG9mIGRhdGEgdGhhdCwgYWZ0ZXIgYmVpbmcgY29tYmluZWQKK3dpdGggYW55IG90aGVyIHN0cmVhbXMgaXQgcmVmZXJlbmNlcywgaXMgc3RydWN0dXJlZCBzdWNoIHRoYXQgaXQKK2hvbGRzIGluZm9ybWF0aW9uIGNvbnRhaW5lZCB3aXRoaW4gPHNwYW4gY2xhc3M9InRlcm0iPgorZWxlbWVudHM8L3NwYW4+IHRoYXQgYXJlIG9yZ2FuaXplZCBhcyBkZWZpbmVkIGluIHRoZSBhc3NvY2lhdGVkCis8c3BhbiBjbGFzcz0idGVybSI+RFREPC9zcGFuPi4gU2VlIDxhIGhyZWY9IiNkb2Njb25mIj5Eb2N1bWVudAorQ29uZm9ybWFuY2U8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uLjwvZGQ+CisKKzxkdD5FbGVtZW50PC9kdD4KKworPGRkPkFuIGVsZW1lbnQgaXMgYSBkb2N1bWVudCBzdHJ1Y3R1cmluZyB1bml0IGRlY2xhcmVkIGluIHRoZQorPHNwYW4gY2xhc3M9InRlcm0iPkRURDwvc3Bhbj4uIFRoZSBlbGVtZW50J3MgY29udGVudCBtb2RlbCBpcworZGVmaW5lZCBpbiB0aGUgPHNwYW4gY2xhc3M9InRlcm0iPkRURDwvc3Bhbj4sIGFuZCBhZGRpdGlvbmFsCitzZW1hbnRpY3MgbWF5IGJlIGRlZmluZWQgaW4gdGhlIHByb3NlIGRlc2NyaXB0aW9uIG9mIHRoZQorZWxlbWVudC48L2RkPgorCis8ZHQ+PGEgbmFtZT0iZmFjaWxpdGllcyIgaWQ9ImZhY2lsaXRpZXMiPkZhY2lsaXRpZXM8L2E+PC9kdD4KKworPGRkPkZ1bmN0aW9uYWxpdHkgaW5jbHVkZXMgPHNwYW4gY2xhc3M9InRlcm0iPmVsZW1lbnRzPC9zcGFuPiwKKzxzcGFuIGNsYXNzPSJ0ZXJtIj5hdHRyaWJ1dGVzPC9zcGFuPiwgYW5kIHRoZSBzZW1hbnRpY3MKK2Fzc29jaWF0ZWQgd2l0aCB0aG9zZSA8c3BhbiBjbGFzcz0idGVybSI+ZWxlbWVudHM8L3NwYW4+IGFuZAorPHNwYW4gY2xhc3M9InRlcm0iPmF0dHJpYnV0ZXM8L3NwYW4+LiBBbiBpbXBsZW1lbnRhdGlvbgorc3VwcG9ydGluZyB0aGF0IGZ1bmN0aW9uYWxpdHkgaXMgc2FpZCB0byBwcm92aWRlIHRoZSBuZWNlc3NhcnkKK2ZhY2lsaXRpZXMuPC9kZD4KKworPGR0PkltcGxlbWVudGF0aW9uPC9kdD4KKworPGRkPkFuIGltcGxlbWVudGF0aW9uIGlzIGEgc3lzdGVtIHRoYXQgcHJvdmlkZXMgY29sbGVjdGlvbiBvZgorPHNwYW4gY2xhc3M9InRlcm0iPmZhY2lsaXRpZXM8L3NwYW4+IGFuZCBzZXJ2aWNlcyB0aGF0IHN1cHBvcnRzCit0aGlzIHNwZWNpZmljYXRpb24uIFNlZSA8YSBocmVmPSIjdWFjb25mIj5Vc2VyIEFnZW50CitDb25mb3JtYW5jZTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9kZD4KKworPGR0PlBhcnNpbmc8L2R0PgorCis8ZGQ+UGFyc2luZyBpcyB0aGUgYWN0IHdoZXJlYnkgYSA8c3BhbiBjbGFzcz0idGVybSI+Citkb2N1bWVudDwvc3Bhbj4gaXMgc2Nhbm5lZCwgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgd2l0aGluCit0aGUgPHNwYW4gY2xhc3M9InRlcm0iPmRvY3VtZW50PC9zcGFuPiBpcyBmaWx0ZXJlZCBpbnRvIHRoZQorY29udGV4dCBvZiB0aGUgPHNwYW4gY2xhc3M9InRlcm0iPmVsZW1lbnRzPC9zcGFuPiBpbiB3aGljaCB0aGUKK2luZm9ybWF0aW9uIGlzIHN0cnVjdHVyZWQuPC9kZD4KKworPGR0PlJlbmRlcmluZzwvZHQ+CisKKzxkZD5SZW5kZXJpbmcgaXMgdGhlIGFjdCB3aGVyZWJ5IHRoZSBpbmZvcm1hdGlvbiBpbiBhIDxzcGFuIGNsYXNzPSJ0ZXJtIj5kb2N1bWVudDwvc3Bhbj4gaXMgcHJlc2VudGVkLiBUaGlzIHByZXNlbnRhdGlvbiBpcworZG9uZSBpbiB0aGUgZm9ybSBtb3N0IGFwcHJvcHJpYXRlIHRvIHRoZSBlbnZpcm9ubWVudCAoZS5nLgorYXVyYWxseSwgdmlzdWFsbHksIGluIHByaW50KS48L2RkPgorCis8ZHQ+VXNlciBBZ2VudDwvZHQ+CisKKzxkZD5BIHVzZXIgYWdlbnQgaXMgYW4gPHNwYW4gY2xhc3M9InRlcm0iPmltcGxlbWVudGF0aW9uPC9zcGFuPgordGhhdCByZXRyaWV2ZXMgYW5kIHByb2Nlc3NlcyBYSFRNTCBkb2N1bWVudHMuIFNlZSA8YSBocmVmPSIjdWFjb25mIj5Vc2VyIEFnZW50IENvbmZvcm1hbmNlPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L2RkPgorCis8ZHQ+VmFsaWRhdGlvbjwvZHQ+CisKKzxkZD5WYWxpZGF0aW9uIGlzIGEgcHJvY2VzcyB3aGVyZWJ5IDxzcGFuIGNsYXNzPSJ0ZXJtIj4KK2RvY3VtZW50czwvc3Bhbj4gYXJlIHZlcmlmaWVkIGFnYWluc3QgdGhlIGFzc29jaWF0ZWQgPHNwYW4gY2xhc3M9InRlcm0iPkRURDwvc3Bhbj4sIGVuc3VyaW5nIHRoYXQgdGhlIHN0cnVjdHVyZSwgdXNlIG9mIDxzcGFuIGNsYXNzPSJ0ZXJtIj5lbGVtZW50czwvc3Bhbj4sIGFuZCB1c2Ugb2YgPHNwYW4gY2xhc3M9InRlcm0iPgorYXR0cmlidXRlczwvc3Bhbj4gYXJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZGVmaW5pdGlvbnMgaW4gdGhlCis8c3BhbiBjbGFzcz0idGVybSI+RFREPC9zcGFuPi48L2RkPgorCis8ZHQ+PGEgbmFtZT0id2VsbGZvcm1lZCIgaWQ9IndlbGxmb3JtZWQiPldlbGwtZm9ybWVkPC9hPjwvZHQ+CisKKzxkZD5BIDxzcGFuIGNsYXNzPSJ0ZXJtIj5kb2N1bWVudDwvc3Bhbj4gaXMgd2VsbC1mb3JtZWQgd2hlbiBpdAoraXMgc3RydWN0dXJlZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIGRlZmluZWQgaW4gPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNzZWMtd2VsbC1mb3JtZWQiPlNlY3Rpb24gMi4xPC9hPiBvZgordGhlIFhNTCAxLjAgUmVjb21tZW5kYXRpb24gPGEgaHJlZj0iI3JlZi14bWwiPltYTUxdPC9hPi4KK0Jhc2ljYWxseSwgdGhpcyBkZWZpbml0aW9uIHN0YXRlcyB0aGF0IGVsZW1lbnRzLCBkZWxpbWl0ZWQgYnkKK3RoZWlyIHN0YXJ0IGFuZCBlbmQgdGFncywgYXJlIG5lc3RlZCBwcm9wZXJseSB3aXRoaW4gb25lCithbm90aGVyLjwvZGQ+Cis8L2RsPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9Im5vcm1hdGl2ZSIgaWQ9Im5vcm1hdGl2ZSI+My4gTm9ybWF0aXZlIERlZmluaXRpb24gb2YKK1hIVE1MIDEuMDwvYT48L2gxPgorCis8aDI+PGEgbmFtZT0iZG9jY29uZiIgaWQ9ImRvY2NvbmYiPjMuMSBEb2N1bWVudAorQ29uZm9ybWFuY2U8L2E+PC9oMj4KKworPHA+VGhpcyB2ZXJzaW9uIG9mIFhIVE1MIHByb3ZpZGVzIGEgZGVmaW5pdGlvbiBvZiBzdHJpY3RseQorY29uZm9ybWluZyBYSFRNTCBkb2N1bWVudHMsIHdoaWNoIGFyZSByZXN0cmljdGVkIHRvIHRhZ3MgYW5kCithdHRyaWJ1dGVzIGZyb20gdGhlIFhIVE1MIG5hbWVzcGFjZS4gU2VlIDxhIGhyZWY9IiN3ZWxsLWZvcm1lZCI+U2VjdGlvbiAzLjEuMjwvYT4gZm9yIGluZm9ybWF0aW9uIG9uIHVzaW5nIFhIVE1MCit3aXRoIG90aGVyIG5hbWVzcGFjZXMsIGZvciBpbnN0YW5jZSwgdG8gaW5jbHVkZSBtZXRhZGF0YQorZXhwcmVzc2VkIGluIDxhYmJyIHRpdGxlPSJSZXNvdXJjZSBEZXNjcmlwdGlvbiBGb3JtYXQiPlJERjwvYWJicj4gd2l0aGluIFhIVE1MIGRvY3VtZW50cy48L3A+CisKKzxoMz48YSBuYW1lPSJzdHJpY3QiIGlkPSJzdHJpY3QiPjMuMS4xIFN0cmljdGx5IENvbmZvcm1pbmcKK0RvY3VtZW50czwvYT48L2gzPgorCis8cD5BIFN0cmljdGx5IENvbmZvcm1pbmcgWEhUTUwgRG9jdW1lbnQgaXMgYSBkb2N1bWVudCB0aGF0CityZXF1aXJlcyBvbmx5IHRoZSBmYWNpbGl0aWVzIGRlc2NyaWJlZCBhcyBtYW5kYXRvcnkgaW4gdGhpcworc3BlY2lmaWNhdGlvbi4gU3VjaCBhIGRvY3VtZW50IG11c3QgbWVldCBhbGwgb2YgdGhlIGZvbGxvd2luZworY3JpdGVyaWE6PC9wPgorCis8b2w+Cis8bGk+Cis8cD5JdCBtdXN0IHZhbGlkYXRlIGFnYWluc3Qgb25lIG9mIHRoZSB0aHJlZSBEVERzIGZvdW5kIGluIDxhIGhyZWY9IiNkdGRzIj5BcHBlbmRpeCYjeEEwO0E8L2E+LjwvcD4KKzwvbGk+CisKKzxsaT4KKzxwPlRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50IG11c3QgYmUgPGNvZGU+CismbHQ7aHRtbCZndDs8L2NvZGU+LjwvcD4KKzwvbGk+CisKKzxsaT4KKzxwPlRoZSByb290IGVsZW1lbnQgb2YgdGhlIGRvY3VtZW50IG11c3QgZGVzaWduYXRlIHRoZSBYSFRNTAorbmFtZXNwYWNlIHVzaW5nIHRoZSA8Y29kZT54bWxuczwvY29kZT4gYXR0cmlidXRlIDxhIGhyZWY9IiNyZWYteG1sbnMiPltYTUxOQU1FU108L2E+LiBUaGUgbmFtZXNwYWNlIGZvciBYSFRNTCBpcworZGVmaW5lZCB0byBiZSAKKzxjb2RlPmh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWw8L2NvZGU+LjwvcD4KKzwvbGk+CisKKzxsaT4KKzxwPlRoZXJlIG11c3QgYmUgYSBET0NUWVBFIGRlY2xhcmF0aW9uIGluIHRoZSBkb2N1bWVudCBwcmlvciB0bwordGhlIHJvb3QgZWxlbWVudC4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIGluY2x1ZGVkIGluCit0aGUgRE9DVFlQRSBkZWNsYXJhdGlvbiBtdXN0IHJlZmVyZW5jZSBvbmUgb2YgdGhlIHRocmVlIERURHMKK2ZvdW5kIGluIDxhIGhyZWY9IiNkdGRzIj5BcHBlbmRpeCYjeEEwO0E8L2E+IHVzaW5nIHRoZSByZXNwZWN0aXZlCitGb3JtYWwgUHVibGljIElkZW50aWZpZXIuIFRoZSBzeXN0ZW0gaWRlbnRpZmllciBtYXkgYmUgY2hhbmdlZCB0byByZWZsZWN0Citsb2NhbCBzeXN0ZW0gY29udmVudGlvbnMuPC9wPgorCis8cHJlPgorJmx0OyFET0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1BSLXhodG1sMS0xOTk5MTIxMC9EVEQveGh0bWwxLXN0cmljdC5kdGQmZ3Q7CisKKyZsdDshRE9DVFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi14aHRtbDEtMTk5OTEyMTAvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkJmd0OworCismbHQ7IURPQ1RZUEUgaHRtbCAKKyAgICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIgorICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi14aHRtbDEtMTk5OTEyMTAvRFREL3hodG1sMS1mcmFtZXNldC5kdGQmZ3Q7Cis8L3ByZT4KKzwvbGk+Cis8L29sPgorCis8cD5IZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSBtaW5pbWFsIFhIVE1MIGRvY3VtZW50LjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cHJlPgorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPyZndDsKKyZsdDshRE9DVFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1BSLXhodG1sMS0xOTk5MTIxMC9EVEQveGh0bWwxLXN0cmljdC5kdGQiJmd0OworJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iJmd0OworICAmbHQ7aGVhZCZndDsKKyAgICAmbHQ7dGl0bGUmZ3Q7VmlydHVhbCBMaWJyYXJ5Jmx0Oy90aXRsZSZndDsKKyAgJmx0Oy9oZWFkJmd0OworICAmbHQ7Ym9keSZndDsKKyAgICAmbHQ7cCZndDtNb3ZlZCB0byAmbHQ7YSBocmVmPSJodHRwOi8vdmxpYi5vcmcvIiZndDt2bGliLm9yZyZsdDsvYSZndDsuJmx0Oy9wJmd0OworICAmbHQ7L2JvZHkmZ3Q7CismbHQ7L2h0bWwmZ3Q7PC9wcmU+Cis8L2Rpdj4KKworPHA+Tm90ZSB0aGF0IGluIHRoaXMgZXhhbXBsZSwgdGhlIFhNTCBkZWNsYXJhdGlvbiBpcyBpbmNsdWRlZC4gQW4gWE1MCitkZWNsYXJhdGlvbiBsaWtlIHRoZSBvbmUgYWJvdmUgaXMKK25vdCByZXF1aXJlZCBpbiBhbGwgWE1MIGRvY3VtZW50cy4gWEhUTUwgZG9jdW1lbnQgYXV0aG9ycyBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byB1c2UgWE1MIGRlY2xhcmF0aW9ucyBpbiBhbGwgdGhlaXIgZG9jdW1lbnRzLiBTdWNoIGEgZGVjbGFyYXRpb24gaXMgcmVxdWlyZWQKK3doZW4gdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgZG9jdW1lbnQgaXMgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCBVVEYtOCBvcgorVVRGLTE2LjwvcD4KKworPGgzPjxhIG5hbWU9IndlbGwtZm9ybWVkIiBpZD0id2VsbC1mb3JtZWQiPjMuMS4yIFVzaW5nIFhIVE1MIHdpdGgKK290aGVyIG5hbWVzcGFjZXM8L2E+PC9oMz4KKworPHA+VGhlIFhIVE1MIG5hbWVzcGFjZSBtYXkgYmUgdXNlZCB3aXRoIG90aGVyIFhNTCBuYW1lc3BhY2VzCithcyBwZXIgPGEgaHJlZj0iI3JlZi14bWxucyI+W1hNTE5BTUVTXTwvYT4sIGFsdGhvdWdoIHN1Y2gKK2RvY3VtZW50cyBhcmUgbm90IHN0cmljdGx5IGNvbmZvcm1pbmcgWEhUTUwgMS4wIGRvY3VtZW50cyBhcworZGVmaW5lZCBhYm92ZS4gRnV0dXJlIHdvcmsgYnkgVzNDIHdpbGwgYWRkcmVzcyB3YXlzIHRvIHNwZWNpZnkKK2NvbmZvcm1hbmNlIGZvciBkb2N1bWVudHMgaW52b2x2aW5nIG11bHRpcGxlIG5hbWVzcGFjZXMuPC9wPgorCis8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgdGhlIHdheSBpbiB3aGljaCBYSFRNTCAxLjAgY291bGQKK2JlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgTWF0aE1MIFJlY29tbWVuZGF0aW9uOjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cHJlPgorJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iJmd0OworICAmbHQ7aGVhZCZndDsKKyAgICAmbHQ7dGl0bGUmZ3Q7QSBNYXRoIEV4YW1wbGUmbHQ7L3RpdGxlJmd0OworICAmbHQ7L2hlYWQmZ3Q7CisgICZsdDtib2R5Jmd0OworICAgICZsdDtwJmd0O1RoZSBmb2xsb3dpbmcgaXMgTWF0aE1MIG1hcmt1cDombHQ7L3AmZ3Q7CisgICAgJmx0O21hdGggeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiJmd0OworICAgICAgJmx0O2FwcGx5Jmd0OyAmbHQ7bG9nLyZndDsKKyAgICAgICAgJmx0O2xvZ2Jhc2UmZ3Q7CisgICAgICAgICAgJmx0O2NuJmd0OyAzICZsdDsvY24mZ3Q7CisgICAgICAgICZsdDsvbG9nYmFzZSZndDsKKyAgICAgICAgJmx0O2NpJmd0OyB4ICZsdDsvY2kmZ3Q7CisgICAgICAmbHQ7L2FwcGx5Jmd0OworICAgICZsdDsvbWF0aCZndDsKKyAgJmx0Oy9ib2R5Jmd0OworJmx0Oy9odG1sJmd0OworPC9wcmU+Cis8L2Rpdj4KKworPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIHRoZSB3YXkgaW4gd2hpY2ggWEhUTUwgMS4wIG1hcmt1cAorY291bGQgYmUgaW5jb3Jwb3JhdGVkIGludG8gYW5vdGhlciBYTUwgbmFtZXNwYWNlOjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cHJlPgorJmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPyZndDsKKyZsdDshLS0gaW5pdGlhbGx5LCB0aGUgZGVmYXVsdCBuYW1lc3BhY2UgaXMgImJvb2tzIiAtLSZndDsKKyZsdDtib29rIHhtbG5zPSd1cm46bG9jLmdvdjpib29rcycKKyAgICB4bWxuczppc2JuPSd1cm46SVNCTjowLTM5NS0zNjM0MS02JyB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIiZndDsKKyAgJmx0O3RpdGxlJmd0O0NoZWFwZXIgYnkgdGhlIERvemVuJmx0Oy90aXRsZSZndDsKKyAgJmx0O2lzYm46bnVtYmVyJmd0OzE1Njg0OTEzNzkmbHQ7L2lzYm46bnVtYmVyJmd0OworICAmbHQ7bm90ZXMmZ3Q7CisgICAgJmx0OyEtLSBtYWtlIEhUTUwgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIGZvciBhIGh5cGVydGV4dCBjb21tZW50YXJ5IC0tJmd0OworICAgICZsdDtwIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyZndDsKKyAgICAgICAgVGhpcyBpcyBhbHNvIGF2YWlsYWJsZSAmbHQ7YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy8iJmd0O29ubGluZSZsdDsvYSZndDsuCisgICAgJmx0Oy9wJmd0OworICAmbHQ7L25vdGVzJmd0OworJmx0Oy9ib29rJmd0OworPC9wcmU+Cis8L2Rpdj4KKworPGgyPjxhIG5hbWU9InVhY29uZiIgaWQ9InVhY29uZiI+My4yIFVzZXIgQWdlbnQKK0NvbmZvcm1hbmNlPC9hPjwvaDI+CisKKzxwPkEgY29uZm9ybWluZyB1c2VyIGFnZW50IG11c3QgbWVldCBhbGwgb2YgdGhlIGZvbGxvd2luZworY3JpdGVyaWE6PC9wPgorCis8b2w+Cis8bGk+SW4gb3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBYTUwgMS4wIFJlY29tbWVuZGF0aW9uIDxhIGhyZWY9IiNyZWYteG1sIj5bWE1MXTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgcGFyc2UgYW5kIGV2YWx1YXRlCithbiBYSFRNTCBkb2N1bWVudCBmb3Igd2VsbC1mb3JtZWRuZXNzLiBJZiB0aGUgdXNlciBhZ2VudCBjbGFpbXMKK3RvIGJlIGEgdmFsaWRhdGluZyB1c2VyIGFnZW50LCBpdCBtdXN0IGFsc28gdmFsaWRhdGUgZG9jdW1lbnRzCithZ2FpbnN0IHRoZWlyIHJlZmVyZW5jZWQgRFREcyBhY2NvcmRpbmcgdG8gPGEgaHJlZj0iI3JlZi14bWwiPgorW1hNTF08L2E+LjwvbGk+CisKKzxsaT5XaGVuIHRoZSB1c2VyIGFnZW50IGNsYWltcyB0byBzdXBwb3J0IDxhIGhyZWY9IiNmYWNpbGl0aWVzIj4KK2ZhY2lsaXRpZXM8L2E+IGRlZmluZWQgd2l0aGluIHRoaXMgc3BlY2lmaWNhdGlvbiBvciByZXF1aXJlZCBieQordGhpcyBzcGVjaWZpY2F0aW9uIHRocm91Z2ggbm9ybWF0aXZlIHJlZmVyZW5jZSwgaXQgbXVzdCBkbyBzbyBpbgord2F5cyBjb25zaXN0ZW50IHdpdGggdGhlIGZhY2lsaXRpZXMnIGRlZmluaXRpb24uPC9saT4KKworPGxpPldoZW4gYSB1c2VyIGFnZW50IHByb2Nlc3NlcyBhbiBYSFRNTCBkb2N1bWVudCBhcyBnZW5lcmljIFhNTCwKK2l0IHNoYWxsIG9ubHkgcmVjb2duaXplIGF0dHJpYnV0ZXMgb2YgdHlwZQorPGNvZGU+SUQ8L2NvZGU+IChlLmcuIHRoZSA8Y29kZT5pZDwvY29kZT4gYXR0cmlidXRlIG9uIG1vc3QgWEhUTUwgZWxlbWVudHMpCithcyBmcmFnbWVudCBpZGVudGlmaWVycy48L2xpPgorCis8bGk+SWYgYSB1c2VyIGFnZW50IGVuY291bnRlcnMgYW4gZWxlbWVudCBpdCBkb2VzIG5vdCByZWNvZ25pemUsCitpdCBtdXN0IHJlbmRlciB0aGUgZWxlbWVudCdzIGNvbnRlbnQuPC9saT4KKworPGxpPklmIGEgdXNlciBhZ2VudCBlbmNvdW50ZXJzIGFuIGF0dHJpYnV0ZSBpdCBkb2VzIG5vdAorcmVjb2duaXplLCBpdCBtdXN0IGlnbm9yZSB0aGUgZW50aXJlIGF0dHJpYnV0ZSBzcGVjaWZpY2F0aW9uCisoaS5lLiwgdGhlIGF0dHJpYnV0ZSBhbmQgaXRzIHZhbHVlKS48L2xpPgorCis8bGk+SWYgYSB1c2VyIGFnZW50IGVuY291bnRlcnMgYW4gYXR0cmlidXRlIHZhbHVlIGl0IGRvZXNuJ3QKK3JlY29nbml6ZSwgaXQgbXVzdCB1c2UgdGhlIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlLjwvbGk+CisKKzxsaT5JZiBpdCBlbmNvdW50ZXJzIGFuIGVudGl0eSByZWZlcmVuY2UgKG90aGVyIHRoYW4gb25lCitvZiB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcykgZm9yIHdoaWNoIHRoZSBVc2VyIEFnZW50IGhhcyAKK3Byb2Nlc3NlZCBubyBkZWNsYXJhdGlvbiAod2hpY2ggY291bGQgaGFwcGVuIGlmIHRoZSBkZWNsYXJhdGlvbgoraXMgaW4gdGhlIGV4dGVybmFsIHN1YnNldCB3aGljaCB0aGUgVXNlciBBZ2VudCBoYXNuJ3QgcmVhZCksIHRoZSBlbnRpdHkgCityZWZlcmVuY2Ugc2hvdWxkIGJlIHJlbmRlcmVkIGFzIHRoZSBjaGFyYWN0ZXJzIChzdGFydGluZword2l0aCB0aGUgYW1wZXJzYW5kIGFuZCBlbmRpbmcgd2l0aCB0aGUgc2VtaS1jb2xvbikgdGhhdAorbWFrZSB1cCB0aGUgZW50aXR5IHJlZmVyZW5jZS48L2xpPgorCis8bGk+V2hlbiByZW5kZXJpbmcgY29udGVudCwgVXNlciBBZ2VudHMgdGhhdCBlbmNvdW50ZXIgCitjaGFyYWN0ZXJzIG9yIGNoYXJhY3RlciBlbnRpdHkgcmVmZXJlbmNlcyB0aGF0IGFyZSByZWNvZ25pemVkIGJ1dCBub3QgcmVuZGVyYWJsZSBzaG91bGQgZGlzcGxheSB0aGUgZG9jdW1lbnQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGlzIG9idmlvdXMgdG8gdGhlIHVzZXIgdGhhdCBub3JtYWwgcmVuZGVyaW5nIGhhcyBub3QgdGFrZW4gcGxhY2UuPC9saT4KKworPGxpPgorVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIFtYTUxdIGFzIHdoaXRlc3BhY2UgY2hhcmFjdGVyczoKKworPHVsPgorPGxpPlNwYWNlICgmYW1wOyN4MDAyMDspPC9saT4KKzxsaT5UYWIgKCZhbXA7I3gwMDA5Oyk8L2xpPgorPGxpPkNhcnJpYWdlIHJldHVybiAoJmFtcDsjeDAwMEQ7KTwvbGk+Cis8bGk+TGluZSBmZWVkICgmYW1wOyN4MDAwQTspPC9saT4KKzwvdWw+CisKKzxwPgorVGhlIFhNTCBwcm9jZXNzb3Igbm9ybWFsaXplcyBkaWZmZXJlbnQgc3lzdGVtJ3MgbGluZSBlbmQgY29kZXMgaW50byBvbmUKK3NpbmdsZSBsaW5lLWZlZWQgY2hhcmFjdGVyLCB0aGF0IGlzIHBhc3NlZCB1cCB0byB0aGUgYXBwbGljYXRpb24uIFRoZSBYSFRNTAordXNlciBhZ2VudCBpbiBhZGRpdGlvbiwgbXVzdCB0cmVhdCB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgYXMgd2hpdGVzcGFjZToKKzwvcD4KKworPHVsPgorPGxpPkZvcm0gZmVlZCAoJmFtcDsjeDAwMEM7KTwvbGk+Cis8bGk+WmVyby13aWR0aCBzcGFjZSAoJmFtcDsjeDIwMEI7KTwvbGk+Cis8L3VsPgorCis8cD4KK0luIGVsZW1lbnRzIHdoZXJlIHRoZSAneG1sOnNwYWNlJyBhdHRyaWJ1dGUgaXMgc2V0IHRvICdwcmVzZXJ2ZScsIHRoZSB1c2VyCithZ2VudCBtdXN0IGxlYXZlIGFsbCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW50YWN0ICh3aXRoIHRoZSBleGNlcHRpb24gb2YKK2xlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycywgd2hpY2ggc2hvdWxkIGJlIHJlbW92ZWQpLgorT3RoZXJ3aXNlLCB3aGl0ZXNwYWNlCitpcyBoYW5kbGVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHJ1bGVzOgorPC9wPgorCis8dWw+Cis8bGk+CitBbGwgd2hpdGVzcGFjZSBzdXJyb3VuZGluZyBibG9jayBlbGVtZW50cyBzaG91bGQgYmUgcmVtb3ZlZC4KKzwvbGk+Cis8bGk+CitDb21tZW50cyBhcmUgcmVtb3ZlZCBlbnRpcmVseSBhbmQgZG8gbm90IGFmZmVjdCB3aGl0ZXNwYWNlIGhhbmRsaW5nLiBPbmUKK3doaXRlc3BhY2UgY2hhcmFjdGVyIG9uIGVpdGhlciBzaWRlIG9mIGEgY29tbWVudCBpcyB0cmVhdGVkIGFzIHR3byB3aGl0ZQorc3BhY2UgY2hhcmFjdGVycy4KKzwvbGk+Cis8bGk+CitMZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGluc2lkZSBhIGJsb2NrIGVsZW1lbnQgbXVzdCBiZSByZW1vdmVkLgorPC9saT4KKzxsaT5MaW5lIGZlZWQgY2hhcmFjdGVycyB3aXRoaW4gYSBibG9jayBlbGVtZW50IG11c3QgYmUgY29udmVydGVkIGludG8gYQorc3BhY2UgKGV4Y2VwdCB3aGVuIHRoZSAneG1sOnNwYWNlJyBhdHRyaWJ1dGUgaXMgc2V0IHRvICdwcmVzZXJ2ZScpLgorPC9saT4KKzxsaT4KK0Egc2VxdWVuY2Ugb2Ygd2hpdGUgc3BhY2UgY2hhcmFjdGVycyBtdXN0IGJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgc3BhY2UKK2NoYXJhY3RlciAoZXhjZXB0IHdoZW4gdGhlICd4bWw6c3BhY2UnIGF0dHJpYnV0ZSBpcyBzZXQgdG8gJ3ByZXNlcnZlJykuCis8L2xpPgorPGxpPgorV2l0aCByZWdhcmQgdG8gcmVuZGl0aW9uLAordGhlIFVzZXIgQWdlbnQgc2hvdWxkIHJlbmRlciB0aGUgY29udGVudCBpbiBhCittYW5uZXIgYXBwcm9wcmlhdGUgdG8gdGhlIGxhbmd1YWdlIGluIHdoaWNoIHRoZSBjb250ZW50IGlzIHdyaXR0ZW4uCitJbiBsYW5ndWFnZXMgd2hvc2UgcHJpbWFyeSBzY3JpcHQgaXMgTGF0aW5hdGUsIHRoZSBBU0NJSSBzcGFjZQorY2hhcmFjdGVyIGlzIHR5cGljYWxseSB1c2VkIHRvIGVuY29kZSBib3RoIGdyYW1tYXRpY2FsIHdvcmQgYm91bmRhcmllcyBhbmQKK3R5cG9ncmFwaGljIHdoaXRlc3BhY2U7IGluIGxhbmd1YWdlcyB3aG9zZSBzY3JpcHQgaXMgcmVsYXRlZCB0byBOYWdhcmkKKyhlLmcuLCBTYW5za3JpdCwgVGhhaSwgZXRjLiksIGdyYW1tYXRpY2FsIGJvdW5kYXJpZXMgbWF5IGJlIGVuY29kZWQgdXNpbmcKK3RoZSBaVyAnc3BhY2UnIGNoYXJhY3RlciwgYnV0IHdpbGwgbm90IHR5cGljYWxseSBiZSByZXByZXNlbnRlZCBieQordHlwb2dyYXBoaWMgd2hpdGVzcGFjZSBpbiByZW5kZXJlZCBvdXRwdXQ7IGxhbmd1YWdlcyB1c2luZyBBcmFiaWZvcm0gc2NyaXB0cworbWF5IGVuY29kZSB0eXBvZ3JhcGhpYyB3aGl0ZXNwYWNlIHVzaW5nIGEgc3BhY2UgY2hhcmFjdGVyLCBidXQgbWF5IGFsc28gdXNlCit0aGUgWlcgc3BhY2UgY2hhcmFjdGVyIHRvIGRlbGltaXQgJ2ludGVybmFsJyBncmFtbWF0aWNhbCBib3VuZGFyaWVzICh3aGF0Citsb29rIGxpa2Ugd29yZHMgaW4gQXJhYmljIHRvIGFuIEVuZ2xpc2ggZXllIGZyZXF1ZW50bHkgZW5jb2RlIHNldmVyYWwgd29yZHMsCitlLmcuICdraXRBYnVodW0nID0gJ2tpdEFidS1odW0nID0gJ2Jvb2sgdGhlbScgPT0gdGhlaXIgYm9vayk7IGFuZCBsYW5ndWFnZXMKK2luIHRoZSBDaGluZXNlIHNjcmlwdCB0cmFkaXRpb24gdHlwaWNhbGx5IG5laXRoZXIgZW5jb2RlIHN1Y2ggZGVsaW1pdGVycyBub3IKK3VzZSB0eXBvZ3JhcGhpYyB3aGl0ZXNwYWNlIGluIHRoaXMgd2F5LiAKKzwvbGk+Cis8L3VsPgorCis8cD5XaGl0ZXNwYWNlIGluIGF0dHJpYnV0ZSB2YWx1ZXMgaXMgcHJvY2Vzc2VkIGFjY29yZGluZyB0byA8YSBocmVmPSIjcmVmLXhtbCI+W1hNTF08L2E+LjwvcD4KKzwvbGk+Cis8L29sPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9ImRpZmZzIiBpZD0iZGlmZnMiPjQuIERpZmZlcmVuY2VzIHdpdGggSFRNTAorNC4wPC9hPjwvaDE+CisKKzxwPkR1ZSB0byB0aGUgZmFjdCB0aGF0IFhIVE1MIGlzIGFuIFhNTCBhcHBsaWNhdGlvbiwgY2VydGFpbgorcHJhY3RpY2VzIHRoYXQgd2VyZSBwZXJmZWN0bHkgbGVnYWwgaW4gU0dNTC1iYXNlZCBIVE1MIDQuMCA8YSBocmVmPSIjcmVmLWh0bWw0Ij5bSFRNTF08L2E+IG11c3QgYmUgY2hhbmdlZC48L3A+CisKKzxoMj48YSBuYW1lPSJoLTQuMSIgaWQ9ImgtNC4xIj40LjEgRG9jdW1lbnRzIG11c3QgYmUKK3dlbGwtZm9ybWVkPC9hPjwvaDI+CisKKzxwPjxhIGhyZWY9IiN3ZWxsZm9ybWVkIj5XZWxsLWZvcm1lZG5lc3M8L2E+IGlzIGEgbmV3IGNvbmNlcHQKK2ludHJvZHVjZWQgYnkgPGEgaHJlZj0iI3JlZi14bWwiPltYTUxdPC9hPi4gRXNzZW50aWFsbHkgdGhpcworbWVhbnMgdGhhdCBhbGwgZWxlbWVudHMgbXVzdCBlaXRoZXIgaGF2ZSBjbG9zaW5nIHRhZ3Mgb3IgYmUKK3dyaXR0ZW4gaW4gYSBzcGVjaWFsIGZvcm0gKGFzIGRlc2NyaWJlZCBiZWxvdyksIGFuZCB0aGF0IGFsbCB0aGUKK2VsZW1lbnRzIG11c3QgbmVzdC48L3A+CisKKzxwPkFsdGhvdWdoIG92ZXJsYXBwaW5nIGlzIGlsbGVnYWwgaW4gU0dNTCwgaXQgd2FzIHdpZGVseQordG9sZXJhdGVkIGluIGV4aXN0aW5nIGJyb3dzZXJzLjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cD48c3Ryb25nPjxlbT5DT1JSRUNUOiBuZXN0ZWQgZWxlbWVudHMuPC9lbT48L3N0cm9uZz48L3A+CisKKzxwPiZsdDtwJmd0O2hlcmUgaXMgYW4gZW1waGFzaXplZAorJmx0O2VtJmd0O3BhcmFncmFwaCZsdDsvZW0mZ3Q7LiZsdDsvcCZndDs8L3A+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iYmFkIj4KKzxwPjxzdHJvbmc+PGVtPklOQ09SUkVDVDogb3ZlcmxhcHBpbmcgZWxlbWVudHM8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O3AmZ3Q7aGVyZSBpcyBhbiBlbXBoYXNpemVkCismbHQ7ZW0mZ3Q7cGFyYWdyYXBoLiZsdDsvcCZndDsmbHQ7L2VtJmd0OzwvcD4KKzwvZGl2PgorCis8aDI+PGEgbmFtZT0iaC00LjIiIGlkPSJoLTQuMiI+NC4yIEVsZW1lbnQgYW5kIGF0dHJpYnV0ZQorbmFtZXMgbXVzdCBiZSBpbiBsb3dlciBjYXNlPC9hPjwvaDI+CisKKzxwPlhIVE1MIGRvY3VtZW50cyBtdXN0IHVzZSBsb3dlciBjYXNlIGZvciBhbGwgSFRNTCBlbGVtZW50IGFuZAorYXR0cmlidXRlIG5hbWVzLiBUaGlzIGRpZmZlcmVuY2UgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgWE1MIGlzCitjYXNlLXNlbnNpdGl2ZSBlLmcuICZsdDtsaSZndDsgYW5kICZsdDtMSSZndDsgYXJlIGRpZmZlcmVudAordGFncy48L3A+CisKKzxoMj48YSBuYW1lPSJoLTQuMyIgaWQ9ImgtNC4zIj40LjMgRm9yIG5vbi1lbXB0eSBlbGVtZW50cywKK2VuZCB0YWdzIGFyZSByZXF1aXJlZDwvYT48L2gyPgorCis8cD5JbiBTR01MLWJhc2VkIEhUTUwgNC4wIGNlcnRhaW4gZWxlbWVudHMgd2VyZSBwZXJtaXR0ZWQgdG8gb21pdAordGhlIGVuZCB0YWc7IHdpdGggdGhlIGVsZW1lbnRzIHRoYXQgZm9sbG93ZWQgaW1wbHlpbmcgY2xvc3VyZS4KK1RoaXMgb21pc3Npb24gaXMgbm90IHBlcm1pdHRlZCBpbiBYTUwtYmFzZWQgWEhUTUwuIEFsbCBlbGVtZW50cworb3RoZXIgdGhhbiB0aG9zZSBkZWNsYXJlZCBpbiB0aGUgRFREIGFzIDxjb2RlPkVNUFRZPC9jb2RlPiBtdXN0CitoYXZlIGFuIGVuZCB0YWcuPC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwPjxzdHJvbmc+PGVtPkNPUlJFQ1Q6IHRlcm1pbmF0ZWQgZWxlbWVudHM8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O3AmZ3Q7aGVyZSBpcyBhIHBhcmFncmFwaC4mbHQ7L3AmZ3Q7Jmx0O3AmZ3Q7aGVyZSBpcworYW5vdGhlciBwYXJhZ3JhcGguJmx0Oy9wJmd0OzwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJiYWQiPgorPHA+PHN0cm9uZz48ZW0+SU5DT1JSRUNUOiB1bnRlcm1pbmF0ZWQgZWxlbWVudHM8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O3AmZ3Q7aGVyZSBpcyBhIHBhcmFncmFwaC4mbHQ7cCZndDtoZXJlIGlzIGFub3RoZXIKK3BhcmFncmFwaC48L3A+Cis8L2Rpdj4KKworPGgyPjxhIG5hbWU9ImgtNC40IiBpZD0iaC00LjQiPjQuNCBBdHRyaWJ1dGUgdmFsdWVzIG11c3QKK2Fsd2F5cyBiZSBxdW90ZWQ8L2E+PC9oMj4KKworPHA+QWxsIGF0dHJpYnV0ZSB2YWx1ZXMgbXVzdCBiZSBxdW90ZWQsIGV2ZW4gdGhvc2Ugd2hpY2ggYXBwZWFyCit0byBiZSBudW1lcmljLjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cD48c3Ryb25nPjxlbT5DT1JSRUNUOiBxdW90ZWQgYXR0cmlidXRlIHZhbHVlczwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7dGFibGUgcm93cz0iMyImZ3Q7PC9wPgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImJhZCI+Cis8cD48c3Ryb25nPjxlbT5JTkNPUlJFQ1Q6IHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZXM8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O3RhYmxlIHJvd3M9MyZndDs8L3A+Cis8L2Rpdj4KKworPGgyPjxhIG5hbWU9ImgtNC41IiBpZD0iaC00LjUiPjQuNSBBdHRyaWJ1dGUKK01pbmltaXphdGlvbjwvYT48L2gyPgorCis8cD5YTUwgZG9lcyBub3Qgc3VwcG9ydCBhdHRyaWJ1dGUgbWluaW1pemF0aW9uLiBBdHRyaWJ1dGUtdmFsdWUKK3BhaXJzIG11c3QgYmUgd3JpdHRlbiBpbiBmdWxsLiBBdHRyaWJ1dGUgbmFtZXMgc3VjaCBhcyA8Y29kZT4KK2NvbXBhY3Q8L2NvZGU+IGFuZCA8Y29kZT5jaGVja2VkPC9jb2RlPiBjYW5ub3Qgb2NjdXIgaW4gZWxlbWVudHMKK3dpdGhvdXQgdGhlaXIgdmFsdWUgYmVpbmcgc3BlY2lmaWVkLjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cD48c3Ryb25nPjxlbT5DT1JSRUNUOiB1bm1pbmltaXplZCBhdHRyaWJ1dGVzPC9lbT48L3N0cm9uZz48L3A+CisKKzxwPiZsdDtkbCBjb21wYWN0PSJjb21wYWN0IiZndDs8L3A+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iYmFkIj4KKzxwPjxzdHJvbmc+PGVtPklOQ09SUkVDVDogbWluaW1pemVkIGF0dHJpYnV0ZXM8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O2RsIGNvbXBhY3QmZ3Q7PC9wPgorPC9kaXY+CisKKzxoMj48YSBuYW1lPSJoLTQuNiIgaWQ9ImgtNC42Ij40LjYgRW1wdHkgRWxlbWVudHM8L2E+PC9oMj4KKworPHA+RW1wdHkgZWxlbWVudHMgbXVzdCBlaXRoZXIgaGF2ZSBhbiBlbmQgdGFnIG9yIHRoZSBzdGFydCB0YWcgbXVzdCBlbmQgd2l0aCA8Y29kZT4vJmd0OzwvY29kZT4uIEZvciBpbnN0YW5jZSwKKzxjb2RlPiZsdDtici8mZ3Q7PC9jb2RlPiBvciA8Y29kZT4mbHQ7aHImZ3Q7Jmx0Oy9ociZndDs8L2NvZGU+LiBTZWUgPGEgaHJlZj0iI2d1aWRlbGluZXMiPkhUTUwgQ29tcGF0aWJpbGl0eSBHdWlkZWxpbmVzPC9hPiBmb3IgaW5mb3JtYXRpb24gb24gd2F5cyB0bworZW5zdXJlIHRoaXMgaXMgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIEhUTUwgNC4wIHVzZXIgYWdlbnRzLjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cD48c3Ryb25nPjxlbT5DT1JSRUNUOiB0ZXJtaW5hdGVkIGVtcHR5IHRhZ3M8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O2JyLyZndDsmbHQ7aHIvJmd0OzwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJiYWQiPgorPHA+PHN0cm9uZz48ZW0+SU5DT1JSRUNUOiB1bnRlcm1pbmF0ZWQgZW1wdHkgdGFnczwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7YnImZ3Q7Jmx0O2hyJmd0OzwvcD4KKzwvZGl2PgorCis8aDI+PGEgbmFtZT0iaC00LjciIGlkPSJoLTQuNyI+NC43IFdoaXRlc3BhY2UgaGFuZGxpbmcgaW4KK2F0dHJpYnV0ZSB2YWx1ZXM8L2E+PC9oMj4KKworPHA+SW4gYXR0cmlidXRlIHZhbHVlcywgdXNlciBhZ2VudHMgd2lsbCBzdHJpcCBsZWFkaW5nIGFuZAordHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tIGF0dHJpYnV0ZSB2YWx1ZXMgYW5kIG1hcCBzZXF1ZW5jZXMKK29mIG9uZSBvciBtb3JlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyAoaW5jbHVkaW5nIGxpbmUgYnJlYWtzKSB0bworYSBzaW5nbGUgaW50ZXItd29yZCBzcGFjZSAoYW4gQVNDSUkgc3BhY2UgY2hhcmFjdGVyIGZvciB3ZXN0ZXJuCitzY3JpcHRzKS4gU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjQVZOb3JtYWxpemUiPgorU2VjdGlvbiAzLjMuMzwvYT4gb2YgPGEgaHJlZj0iI3JlZi14bWwiPltYTUxdPC9hPi48L3A+CisKKzxoMj48YSBuYW1lPSJoLTQuOCIgaWQ9ImgtNC44Ij40LjggU2NyaXB0IGFuZCBTdHlsZQorZWxlbWVudHM8L2E+PC9oMj4KKworPHA+SW4gWEhUTUwsIHRoZSBzY3JpcHQgYW5kIHN0eWxlIGVsZW1lbnRzIGFyZSBkZWNsYXJlZCBhcyBoYXZpbmcKKzxjb2RlPiNQQ0RBVEE8L2NvZGU+IGNvbnRlbnQuIEFzIGEgcmVzdWx0LCA8Y29kZT4mbHQ7PC9jb2RlPiBhbmQKKzxjb2RlPiZhbXA7PC9jb2RlPiB3aWxsIGJlIHRyZWF0ZWQgYXMgdGhlIHN0YXJ0IG9mIG1hcmt1cCwgYW5kCitlbnRpdGllcyBzdWNoIGFzIDxjb2RlPiZhbXA7bHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDthbXA7PC9jb2RlPgord2lsbCBiZSByZWNvZ25pemVkIGFzIGVudGl0eSByZWZlcmVuY2VzIGJ5IHRoZSBYTUwgcHJvY2Vzc29yIHRvCis8Y29kZT4mbHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDs8L2NvZGU+IHJlc3BlY3RpdmVseS4gV3JhcHBpbmcKK3RoZSBjb250ZW50IG9mIHRoZSBzY3JpcHQgb3Igc3R5bGUgZWxlbWVudCB3aXRoaW4gYSA8Y29kZT4KK0NEQVRBPC9jb2RlPiBtYXJrZWQgc2VjdGlvbiBhdm9pZHMgdGhlIGV4cGFuc2lvbiBvZiB0aGVzZQorZW50aXRpZXMuPC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwcmU+CismbHQ7c2NyaXB0Jmd0OworICZsdDshW0NEQVRBWworIC4uLiB1bmVzY2FwZWQgc2NyaXB0IGNvbnRlbnQgLi4uCisgXV0mZ3Q7CisgJmx0Oy9zY3JpcHQmZ3Q7Cis8L3ByZT4KKzwvZGl2PgorCis8cD48Y29kZT5DREFUQTwvY29kZT4gc2VjdGlvbnMgYXJlIHJlY29nbml6ZWQgYnkgdGhlIFhNTAorcHJvY2Vzc29yIGFuZCBhcHBlYXIgYXMgbm9kZXMgaW4gdGhlIERvY3VtZW50IE9iamVjdCBNb2RlbCwgc2VlCis8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtRE9NLUxldmVsLTEvbGV2ZWwtb25lLWNvcmUuaHRtbCNJRC1FMDY3RDU5NyI+CitTZWN0aW9uIDEuMzwvYT4gb2YgdGhlIERPTSBMZXZlbCAxIFJlY29tbWVuZGF0aW9uIDxhIGhyZWY9IiNyZWYtZG9tIj5bRE9NXTwvYT4uPC9wPgorCis8cD5BbiBhbHRlcm5hdGl2ZSBpcyB0byB1c2UgZXh0ZXJuYWwgc2NyaXB0IGFuZCBzdHlsZQorZG9jdW1lbnRzLjwvcD4KKworPGgyPjxhIG5hbWU9ImgtNC45IiBpZD0iaC00LjkiPjQuOSBTR01MIGV4Y2x1c2lvbnM8L2E+PC9oMj4KKworPHA+U0dNTCBnaXZlcyB0aGUgd3JpdGVyIG9mIGEgRFREIHRoZSBhYmlsaXR5IHRvIGV4Y2x1ZGUgc3BlY2lmaWMKK2VsZW1lbnRzIGZyb20gYmVpbmcgY29udGFpbmVkIHdpdGhpbiBhbiBlbGVtZW50LiBTdWNoCitwcm9oaWJpdGlvbnMgKGNhbGxlZCAiZXhjbHVzaW9ucyIpIGFyZSBub3QgcG9zc2libGUgaW4gWE1MLjwvcD4KKworPHA+Rm9yIGV4YW1wbGUsIHRoZSBIVE1MIDQuMCBTdHJpY3QgRFREIGZvcmJpZHMgdGhlIG5lc3Rpbmcgb2YgYW4KKyc8Y29kZT5hPC9jb2RlPicgZWxlbWVudCB3aXRoaW4gYW5vdGhlciAnPGNvZGU+YTwvY29kZT4nIGVsZW1lbnQKK3RvIGFueSBkZXNjZW5kYW50IGRlcHRoLiBJdCBpcyBub3QgcG9zc2libGUgdG8gc3BlbGwgb3V0IHN1Y2gKK3Byb2hpYml0aW9ucyBpbiBYTUwuIEV2ZW4gdGhvdWdoIHRoZXNlIHByb2hpYml0aW9ucyBjYW5ub3QgYmUKK2RlZmluZWQgaW4gdGhlIERURCwgY2VydGFpbiBlbGVtZW50cyBzaG91bGQgbm90IGJlIG5lc3RlZC4gQQorc3VtbWFyeSBvZiBzdWNoIGVsZW1lbnRzIGFuZCB0aGUgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGJlCituZXN0ZWQgaW4gdGhlbSBpcyBmb3VuZCBpbiB0aGUgbm9ybWF0aXZlIDxhIGhyZWY9IiNwcm9oaWJpdGlvbnMiPgorQXBwZW5kaXgmI3hBMDtCPC9hPi48L3A+CisKKzxoMj48YSBuYW1lPSJoLTQuMTAiIGlkPSJoLTQuMTAiPjQuMTAgVGhlIGVsZW1lbnRzIHdpdGggJ2lkJyBhbmQgJ25hbWUnCithdHRyaWJ1dGVzPC9hPjwvaDI+CisKKzxwPkhUTUwgNC4wIGRlZmluZWQgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBmb3IgdGhlIGVsZW1lbnRzCis8Y29kZT5hPC9jb2RlPiwKKzxjb2RlPmFwcGxldDwvY29kZT4sIDxjb2RlPmZyYW1lPC9jb2RlPiwKKzxjb2RlPmlmcmFtZTwvY29kZT4sIDxjb2RlPmltZzwvY29kZT4sIGFuZCA8Y29kZT5tYXA8L2NvZGU+LgorSFRNTCA0LjAgYWxzbyBpbnRyb2R1Y2VkCit0aGUgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZS4gQm90aCBvZiB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBkZXNpZ25lZCB0byBiZQordXNlZCBhcyBmcmFnbWVudCBpZGVudGlmaWVycy48L3A+Cis8cD5JbiBYTUwsIGZyYWdtZW50IGlkZW50aWZpZXJzIGFyZSBvZiB0eXBlIDxjb2RlPklEPC9jb2RlPiwgYW5kCit0aGVyZSBjYW4gb25seSBiZSBhIHNpbmdsZSBhdHRyaWJ1dGUgb2YgdHlwZSA8Y29kZT5JRDwvY29kZT4gcGVyIGVsZW1lbnQuCitUaGVyZWZvcmUsIGluIFhIVE1MIDEuMCB0aGUgPGNvZGU+aWQ8L2NvZGU+CithdHRyaWJ1dGUgaXMgZGVmaW5lZCB0byBiZSBvZiB0eXBlIDxjb2RlPklEPC9jb2RlPi4gSW4gb3JkZXIgdG8KK2Vuc3VyZSB0aGF0IFhIVE1MIDEuMCBkb2N1bWVudHMgYXJlIHdlbGwtc3RydWN0dXJlZCBYTUwgZG9jdW1lbnRzLCBYSFRNTCAxLjAKK2RvY3VtZW50cyBNVVNUIHVzZSB0aGUgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZSB3aGVuIGRlZmluaW5nIGZyYWdtZW50CitpZGVudGlmaWVycywgZXZlbiBvbiBlbGVtZW50cyB0aGF0IGhpc3RvcmljYWxseSBoYXZlIGFsc28gaGFkIGEKKzxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4KK1NlZSB0aGUgPGEgaHJlZj0iI2d1aWRlbGluZXMiPkhUTUwgQ29tcGF0aWJpbGl0eQorR3VpZGVsaW5lczwvYT4gZm9yIGluZm9ybWF0aW9uIG9uIGVuc3VyaW5nIHN1Y2ggYW5jaG9ycyBhcmUgYmFja3dhcmRzCitjb21wYXRpYmxlIHdoZW4gc2VydmluZyBYSFRNTCBkb2N1bWVudHMgYXMgbWVkaWEgdHlwZSA8Y29kZT50ZXh0L2h0bWw8L2NvZGU+LgorPC9wPgorPHA+Tm90ZSB0aGF0IGluIFhIVE1MIDEuMCwgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGVzZQorZWxlbWVudHMgaXMgZm9ybWFsbHkgZGVwcmVjYXRlZCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhCitzdWJzZXF1ZW50IHZlcnNpb24gb2YgWEhUTUwuPC9wPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9Imlzc3VlcyIgaWQ9Imlzc3VlcyI+NS4gQ29tcGF0aWJpbGl0eSBJc3N1ZXM8L2E+PC9oMT4KKworPHA+QWx0aG91Z2ggdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgZm9yIFhIVE1MIDEuMCBkb2N1bWVudHMgdG8gYmUKK2NvbXBhdGlibGUgd2l0aCBleGlzdGluZyB1c2VyIGFnZW50cywgaW4gcHJhY3RpY2UgdGhpcyBpcyBlYXN5IHRvCithY2NvbXBsaXNoLiBHdWlkZWxpbmVzIGZvciBjcmVhdGluZyBjb21wYXRpYmxlIGRvY3VtZW50cyBjYW4gYmUKK2ZvdW5kIGluIDxhIGhyZWY9IiNndWlkZWxpbmVzIj5BcHBlbmRpeCYjeEEwO0M8L2E+LjwvcD4KKworPGgyPjxhIG5hbWU9Im1lZGlhIiBpZD0ibWVkaWEiPjUuMSBJbnRlcm5ldCBNZWRpYSBUeXBlPC9hPjwvaDI+Cis8cD5BcyBvZiB0aGUgcHVibGljYXRpb24gb2YgdGhpcyByZWNvbW1lbmRhdGlvbiwgdGhlIGdlbmVyYWwKK3JlY29tbWVuZGVkIE1JTUUgbGFiZWxpbmcgZm9yIFhNTC1iYXNlZCBhcHBsaWNhdGlvbnMKK2hhcyB5ZXQgdG8gYmUgcmVzb2x2ZWQuPC9wPgorCis8cD5Ib3dldmVyLCBYSFRNTCBEb2N1bWVudHMgd2hpY2ggZm9sbG93IHRoZSBndWlkZWxpbmVzIHNldCBmb3J0aAoraW4gPGEgaHJlZj0iI2d1aWRlbGluZXMiPkFwcGVuZGl4IEM8L2E+LCAiSFRNTCBDb21wYXRpYmlsaXR5IEd1aWRlbGluZXMiIG1heSBiZQorbGFiZWxlZCB3aXRoIHRoZSBJbnRlcm5ldCBNZWRpYSBUeXBlICJ0ZXh0L2h0bWwiLCBhcyB0aGV5CithcmUgY29tcGF0aWJsZSB3aXRoIG1vc3QgSFRNTCBicm93c2Vycy4gVGhpcyBkb2N1bWVudAorbWFrZXMgbm8gcmVjb21tZW5kYXRpb24gYWJvdXQgTUlNRSBsYWJlbGluZyBvZiBvdGhlcgorWEhUTUwgZG9jdW1lbnRzLjwvcD4KKworPCEtLU9kZFBhZ2UtLT4KKzxoMT48YSBuYW1lPSJmdXR1cmUiIGlkPSJmdXR1cmUiPjYuIEZ1dHVyZSBEaXJlY3Rpb25zPC9hPjwvaDE+CisKKzxwPlhIVE1MIDEuMCBwcm92aWRlcyB0aGUgYmFzaXMgZm9yIGEgZmFtaWx5IG9mIGRvY3VtZW50IHR5cGVzCit0aGF0IHdpbGwgZXh0ZW5kIGFuZCBzdWJzZXQgWEhUTUwsIGluIG9yZGVyIHRvIHN1cHBvcnQgYSB3aWRlCityYW5nZSBvZiBuZXcgZGV2aWNlcyBhbmQgYXBwbGljYXRpb25zLCBieSBkZWZpbmluZyBtb2R1bGVzIGFuZAorc3BlY2lmeWluZyBhIG1lY2hhbmlzbSBmb3IgY29tYmluaW5nIHRoZXNlIG1vZHVsZXMuIFRoaXMKK21lY2hhbmlzbSB3aWxsIGVuYWJsZSB0aGUgZXh0ZW5zaW9uIGFuZCBzdWItc2V0dGluZyBvZiBYSFRNTCAxLjAKK2luIGEgdW5pZm9ybSB3YXkgdGhyb3VnaCB0aGUgZGVmaW5pdGlvbiBvZiBuZXcgbW9kdWxlcy48L3A+CisKKzxoMj48YSBuYW1lPSJtb2RzIiBpZD0ibW9kcyI+Ni4xIE1vZHVsYXJpemluZyBIVE1MPC9hPjwvaDI+CisKKzxwPkFzIHRoZSB1c2Ugb2YgWEhUTUwgbW92ZXMgZnJvbSB0aGUgdHJhZGl0aW9uYWwgZGVza3RvcCB1c2VyCithZ2VudHMgdG8gb3RoZXIgcGxhdGZvcm1zLCBpdCBpcyBjbGVhciB0aGF0IG5vdCBhbGwgb2YgdGhlIFhIVE1MCitlbGVtZW50cyB3aWxsIGJlIHJlcXVpcmVkIG9uIGFsbCBwbGF0Zm9ybXMuIEZvciBleGFtcGxlIGEgaGFuZAoraGVsZCBkZXZpY2Ugb3IgYSBjZWxsLXBob25lIG1heSBvbmx5IHN1cHBvcnQgYSBzdWJzZXQgb2YgWEhUTUwKK2VsZW1lbnRzLjwvcD4KKworPHA+VGhlIHByb2Nlc3Mgb2YgbW9kdWxhcml6YXRpb24gYnJlYWtzIFhIVE1MIHVwIGludG8gYSBzZXJpZXMgb2YKK3NtYWxsZXIgZWxlbWVudCBzZXRzLiBUaGVzZSBlbGVtZW50cyBjYW4gdGhlbiBiZSByZWNvbWJpbmVkIHRvCittZWV0IHRoZSBuZWVkcyBvZiBkaWZmZXJlbnQgY29tbXVuaXRpZXMuPC9wPgorCis8cD5UaGVzZSBtb2R1bGVzIHdpbGwgYmUgZGVmaW5lZCBpbiBhIGxhdGVyIFczQyBkb2N1bWVudC48L3A+CisKKzxoMj48YSBuYW1lPSJleHRlbnNpb25zIiBpZD0iZXh0ZW5zaW9ucyI+Ni4yIFN1YnNldHMgYW5kCitFeHRlbnNpYmlsaXR5PC9hPjwvaDI+CisKKzxwPk1vZHVsYXJpemF0aW9uIGJyaW5ncyB3aXRoIGl0IHNldmVyYWwgYWR2YW50YWdlczo8L3A+CisKKzx1bD4KKzxsaT4KKzxwPkl0IHByb3ZpZGVzIGEgZm9ybWFsIG1lY2hhbmlzbSBmb3Igc3ViLXNldHRpbmcgWEhUTUwuPC9wPgorPC9saT4KKworPGxpPgorPHA+SXQgcHJvdmlkZXMgYSBmb3JtYWwgbWVjaGFuaXNtIGZvciBleHRlbmRpbmcgWEhUTUwuPC9wPgorPC9saT4KKworPGxpPgorPHA+SXQgc2ltcGxpZmllcyB0aGUgdHJhbnNmb3JtYXRpb24gYmV0d2VlbiBkb2N1bWVudCB0eXBlcy48L3A+Cis8L2xpPgorCis8bGk+Cis8cD5JdCBwcm9tb3RlcyB0aGUgcmV1c2Ugb2YgbW9kdWxlcyBpbiBuZXcgZG9jdW1lbnQgdHlwZXMuPC9wPgorPC9saT4KKzwvdWw+CisKKzxoMj48YSBuYW1lPSJwcm9maWxlcyIgaWQ9InByb2ZpbGVzIj42LjMgRG9jdW1lbnQKK1Byb2ZpbGVzPC9hPjwvaDI+CisKKzxwPkEgZG9jdW1lbnQgcHJvZmlsZSBzcGVjaWZpZXMgdGhlIHN5bnRheCBhbmQgc2VtYW50aWNzIG9mIGEgc2V0CitvZiBkb2N1bWVudHMuIENvbmZvcm1hbmNlIHRvIGEgZG9jdW1lbnQgcHJvZmlsZSBwcm92aWRlcyBhIGJhc2lzCitmb3IgaW50ZXJvcGVyYWJpbGl0eSBndWFyYW50ZWVzLiBUaGUgZG9jdW1lbnQgcHJvZmlsZSBzcGVjaWZpZXMKK3RoZSBmYWNpbGl0aWVzIHJlcXVpcmVkIHRvIHByb2Nlc3MgZG9jdW1lbnRzIG9mIHRoYXQgdHlwZSwgZS5nLgord2hpY2ggaW1hZ2UgZm9ybWF0cyBjYW4gYmUgdXNlZCwgbGV2ZWxzIG9mIHNjcmlwdGluZywgc3R5bGUgc2hlZXQKK3N1cHBvcnQsIGFuZCBzbyBvbi48L3A+CisKKzxwPkZvciBwcm9kdWN0IGRlc2lnbmVycyB0aGlzIGVuYWJsZXMgdmFyaW91cyBncm91cHMgdG8gZGVmaW5lCit0aGVpciBvd24gc3RhbmRhcmQgcHJvZmlsZS48L3A+CisKKzxwPkZvciBhdXRob3JzIHRoaXMgd2lsbCBvYnZpYXRlIHRoZSBuZWVkIHRvIHdyaXRlIHNldmVyYWwKK2RpZmZlcmVudCB2ZXJzaW9ucyBvZiBkb2N1bWVudHMgZm9yIGRpZmZlcmVudCBjbGllbnRzLjwvcD4KKworPHA+Rm9yIHNwZWNpYWwgZ3JvdXBzIHN1Y2ggYXMgY2hlbWlzdHMsIG1lZGljYWwgZG9jdG9ycywgb3IKK21hdGhlbWF0aWNpYW5zIHRoaXMgYWxsb3dzIGEgc3BlY2lhbCBwcm9maWxlIHRvIGJlIGJ1aWx0IHVzaW5nCitzdGFuZGFyZCBIVE1MIGVsZW1lbnRzIHBsdXMgYSBncm91cCBvZiBlbGVtZW50cyBnZWFyZWQgdG8gdGhlCitzcGVjaWFsaXN0J3MgbmVlZHMuPC9wPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9ImFwcGVuZGljZXMiIGlkPSJhcHBlbmRpY2VzIj48L2E+Cis8YSBuYW1lPSJkdGRzIiBpZD0iZHRkcyI+QXBwZW5kaXggQS4gRFREczwvYT48L2gxPgorCis8cD48Yj5UaGlzIGFwcGVuZGl4IGlzIG5vcm1hdGl2ZS48L2I+PC9wPgorCis8cD5UaGVzZSBEVERzIGFuZCBlbnRpdHkgc2V0cyBmb3JtIGEgbm9ybWF0aXZlIHBhcnQgb2YgdGhpcworc3BlY2lmaWNhdGlvbi4gVGhlIGNvbXBsZXRlIHNldCBvZiBEVEQgZmlsZXMgdG9nZXRoZXIgd2l0aCBhbiBYTUwKK2RlY2xhcmF0aW9uIGFuZCBTR01MIE9wZW4gQ2F0YWxvZyBpcyBpbmNsdWRlZCBpbiB0aGUgPGEgaHJlZj0ieGh0bWwxLnppcCI+emlwIGZpbGU8L2E+IGZvciB0aGlzIHNwZWNpZmljYXRpb24uPC9wPgorCis8aDI+PGEgbmFtZT0iaC1BMSIgaWQ9ImgtQTEiPkEuMSBEb2N1bWVudCBUeXBlCitEZWZpbml0aW9uczwvYT48L2gyPgorCis8cD5UaGVzZSBEVERzIGFwcHJveGltYXRlIHRoZSBIVE1MIDQuMCBEVERzLiBJdCBpcyBsaWtlbHkgdGhhdAord2hlbiB0aGUgRFREcyBhcmUgbW9kdWxhcml6ZWQsIGEgbWV0aG9kIG9mIERURCBjb25zdHJ1Y3Rpb24gd2lsbAorYmUgZW1wbG95ZWQgdGhhdCBjb3JyZXNwb25kcyBtb3JlIGNsb3NlbHkgdG8gSFRNTCA0LjAuPC9wPgorCis8dWw+Cis8bGk+Cis8cD48YSBocmVmPSJEVEQveGh0bWwxLXN0cmljdC5kdGQiIHR5cGU9InRleHQvcGxhaW4iPgorWEhUTUwtMS4wLVN0cmljdDwvYT48L3A+Cis8L2xpPgorCis8bGk+Cis8cD48YSBocmVmPSJEVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiIHR5cGU9InRleHQvcGxhaW4iPgorWEhUTUwtMS4wLVRyYW5zaXRpb25hbDwvYT48L3A+Cis8L2xpPgorCis8bGk+Cis8cD48YSBocmVmPSJEVEQveGh0bWwxLWZyYW1lc2V0LmR0ZCIgdHlwZT0idGV4dC9wbGFpbiI+CitYSFRNTC0xLjAtRnJhbWVzZXQ8L2E+PC9wPgorPC9saT4KKzwvdWw+CisKKzxoMj48YSBuYW1lPSJoLUEyIiBpZD0iaC1BMiI+QS4yIEVudGl0eSBTZXRzPC9hPjwvaDI+CisKKzxwPlRoZSBYSFRNTCBlbnRpdHkgc2V0cyBhcmUgdGhlIHNhbWUgYXMgZm9yIEhUTUwgNC4wLCBidXQgaGF2ZQorYmVlbiBtb2RpZmllZCB0byBiZSB2YWxpZCBYTUwgMS4wIGVudGl0eSBkZWNsYXJhdGlvbnMuIE5vdGUgdGhlCitlbnRpdHkgZm9yIHRoZSBFdXJvIGN1cnJlbmN5IHNpZ24gKDxjb2RlPiZhbXA7ZXVybzs8L2NvZGU+IG9yCis8Y29kZT4mYW1wOyM4MzY0OzwvY29kZT4gb3IgPGNvZGU+JmFtcDsjeDIwQUM7PC9jb2RlPikgaXMgZGVmaW5lZAorYXMgcGFydCBvZiB0aGUgc3BlY2lhbCBjaGFyYWN0ZXJzLjwvcD4KKworPHVsPgorPGxpPgorPHA+PGEgaHJlZj0iRFREL3hodG1sLWxhdDEuZW50Ij5MYXRpbi0xIGNoYXJhY3RlcnM8L2E+PC9wPgorPC9saT4KKworPGxpPgorPHA+PGEgaHJlZj0iRFREL3hodG1sLXNwZWNpYWwuZW50Ij5TcGVjaWFsIGNoYXJhY3RlcnM8L2E+PC9wPgorPC9saT4KKworPGxpPgorPHA+PGEgaHJlZj0iRFREL3hodG1sLXN5bWJvbC5lbnQiPlN5bWJvbHM8L2E+PC9wPgorPC9saT4KKzwvdWw+CisKKzwhLS1PZGRQYWdlLS0+Cis8aDE+PGEgbmFtZT0icHJvaGliaXRpb25zIiBpZD0icHJvaGliaXRpb25zIj5BcHBlbmRpeCBCLiBFbGVtZW50CitQcm9oaWJpdGlvbnM8L2E+PC9oMT4KKworPHA+PGI+VGhpcyBhcHBlbmRpeCBpcyBub3JtYXRpdmUuPC9iPjwvcD4KKworPHA+VGhlIGZvbGxvd2luZyBlbGVtZW50cyBoYXZlIHByb2hpYml0aW9ucyBvbiB3aGljaCBlbGVtZW50cwordGhleSBjYW4gY29udGFpbiAoc2VlIDxhIGhyZWY9IiNoLTQuOSI+U2VjdGlvbiA0Ljk8L2E+KS4gVGhpcworcHJvaGliaXRpb24gYXBwbGllcyB0byBhbGwgZGVwdGhzIG9mIG5lc3RpbmcsIGkuZS4gaXQgY29udGFpbnMKK2FsbCB0aGUgZGVzY2VuZGFudCBlbGVtZW50cy48L3A+CisKKzxkbD48ZHQ+PGNvZGUgY2xhc3M9InRhZyI+YTwvY29kZT48L2R0PgorPGRkPgorY2Fubm90IGNvbnRhaW4gb3RoZXIgPGNvZGU+YTwvY29kZT4gZWxlbWVudHMuPC9kZD4KKzxkdD48Y29kZSBjbGFzcz0idGFnIj5wcmU8L2NvZGU+PC9kdD4KKzxkZD5jYW5ub3QgY29udGFpbiB0aGUgPGNvZGU+aW1nPC9jb2RlPiwgPGNvZGU+b2JqZWN0PC9jb2RlPiwKKzxjb2RlPmJpZzwvY29kZT4sIDxjb2RlPnNtYWxsPC9jb2RlPiwgPGNvZGU+c3ViPC9jb2RlPiwgb3IgPGNvZGU+CitzdXA8L2NvZGU+IGVsZW1lbnRzLjwvZGQ+CisKKzxkdD48Y29kZSBjbGFzcz0idGFnIj5idXR0b248L2NvZGU+PC9kdD4KKzxkZD5jYW5ub3QgY29udGFpbiB0aGUgPGNvZGU+aW5wdXQ8L2NvZGU+LCA8Y29kZT5zZWxlY3Q8L2NvZGU+LAorPGNvZGU+dGV4dGFyZWE8L2NvZGU+LCA8Y29kZT5sYWJlbDwvY29kZT4sIDxjb2RlPmJ1dHRvbjwvY29kZT4sCis8Y29kZT5mb3JtPC9jb2RlPiwgPGNvZGU+ZmllbGRzZXQ8L2NvZGU+LCA8Y29kZT5pZnJhbWU8L2NvZGU+IG9yCis8Y29kZT5pc2luZGV4PC9jb2RlPiBlbGVtZW50cy48L2RkPgorPGR0Pjxjb2RlIGNsYXNzPSJ0YWciPmxhYmVsPC9jb2RlPjwvZHQ+Cis8ZGQ+Y2Fubm90IGNvbnRhaW4gb3RoZXIgPGNvZGUgY2xhc3M9InRhZyI+bGFiZWw8L2NvZGU+IGVsZW1lbnRzLjwvZGQ+Cis8ZHQ+PGNvZGUgY2xhc3M9InRhZyI+Zm9ybTwvY29kZT48L2R0PgorPGRkPmNhbm5vdCBjb250YWluIG90aGVyIDxjb2RlPmZvcm08L2NvZGU+IGVsZW1lbnRzLjwvZGQ+Cis8L2RsPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9Imd1aWRlbGluZXMiIGlkPSJndWlkZWxpbmVzIj5BcHBlbmRpeCBDLgorSFRNTCBDb21wYXRpYmlsaXR5IEd1aWRlbGluZXM8L2E+PC9oMT4KKworPHA+PGI+VGhpcyBhcHBlbmRpeCBpcyBpbmZvcm1hdGl2ZS48L2I+PC9wPgorCis8cD5UaGlzIGFwcGVuZGl4IHN1bW1hcml6ZXMgZGVzaWduIGd1aWRlbGluZXMgZm9yIGF1dGhvcnMgd2hvCit3aXNoIHRoZWlyIFhIVE1MIGRvY3VtZW50cyB0byByZW5kZXIgb24gZXhpc3RpbmcgSFRNTCB1c2VyCithZ2VudHMuPC9wPgorCis8aDI+Qy4xIFByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb25zPC9oMj4KKzxwPkJlIGF3YXJlIHRoYXQgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMgYXJlIHJlbmRlcmVkIG9uIHNvbWUKK3VzZXIgYWdlbnRzLiBIb3dldmVyLCBhbHNvIG5vdGUgdGhhdCB3aGVuIHRoZSBYTUwgZGVjbGFyYXRpb24gaXMgbm90IGluY2x1ZGVkCitpbiBhIGRvY3VtZW50LCB0aGUgZG9jdW1lbnQgY2FuIG9ubHkgdXNlIHRoZSBkZWZhdWx0IGNoYXJhY3RlciBlbmNvZGluZ3MgVVRGLTgKK29yIFVURi0xNi48L3A+CisKKzxoMj5DLjIgRW1wdHkgRWxlbWVudHM8L2gyPgorPHA+SW5jbHVkZSBhIHNwYWNlIGJlZm9yZSB0aGUgdHJhaWxpbmcgPGNvZGU+LzwvY29kZT4gYW5kIDxjb2RlPgorJmd0OzwvY29kZT4gb2YgZW1wdHkgZWxlbWVudHMsIGUuZy4gPGNvZGUgY2xhc3M9ImdyZWVubW9ubyI+CismbHQ7YnImI3hBMDsvJmd0OzwvY29kZT4sIDxjb2RlIGNsYXNzPSJncmVlbm1vbm8iPgorJmx0O2hyJiN4QTA7LyZndDs8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iZ3JlZW5tb25vIj4mbHQ7aW1nCitzcmM9ImthcmVuLmpwZyIgYWx0PSJLYXJlbiImI3hBMDsvJmd0OzwvY29kZT4uIEFsc28sIHVzZSB0aGUKK21pbmltaXplZCB0YWcgc3ludGF4IGZvciBlbXB0eSBlbGVtZW50cywgZS5nLiA8Y29kZSBjbGFzcz0iZ3JlZW5tb25vIj4mbHQ7YnIgLyZndDs8L2NvZGU+LCBhcyB0aGUgYWx0ZXJuYXRpdmUgc3ludGF4IDxjb2RlIGNsYXNzPSJncmVlbm1vbm8iPiZsdDticiZndDsmbHQ7L2JyJmd0OzwvY29kZT4gYWxsb3dlZCBieSBYTUwKK2dpdmVzIHVuY2VydGFpbiByZXN1bHRzIGluIG1hbnkgZXhpc3RpbmcgdXNlciBhZ2VudHMuPC9wPgorCis8aDI+Qy4zIEVsZW1lbnQgTWluaW1pemF0aW9uIGFuZCBFbXB0eSBFbGVtZW50IENvbnRlbnQ8L2gyPgorPHA+R2l2ZW4gYW4gZW1wdHkgaW5zdGFuY2Ugb2YgYW4gZWxlbWVudCB3aG9zZSBjb250ZW50IG1vZGVsIGlzCitub3QgPGNvZGU+RU1QVFk8L2NvZGU+IChmb3IgZXhhbXBsZSwgYW4gZW1wdHkgdGl0bGUgb3IgcGFyYWdyYXBoKQorZG8gbm90IHVzZSB0aGUgbWluaW1pemVkIGZvcm0gKGUuZy4gdXNlIDxjb2RlIGNsYXNzPSJncmVlbm1vbm8iPgorJmx0O3AmZ3Q7ICZsdDsvcCZndDs8L2NvZGU+IGFuZCBub3QgPGNvZGUgY2xhc3M9ImdyZWVubW9ubyI+CismbHQ7cCYjeEEwOy8mZ3Q7PC9jb2RlPikuPC9wPgorCis8aDI+Qy40IEVtYmVkZGVkIFN0eWxlIFNoZWV0cyBhbmQgU2NyaXB0czwvaDI+Cis8cD5Vc2UgZXh0ZXJuYWwgc3R5bGUgc2hlZXRzIGlmIHlvdXIgc3R5bGUgc2hlZXQgdXNlcyA8Y29kZT4KKyZsdDs8L2NvZGU+IG9yIDxjb2RlPiZhbXA7PC9jb2RlPiBvciA8Y29kZT5dXSZndDs8L2NvZGU+IG9yIDxjb2RlPi0tPC9jb2RlPi4gVXNlCitleHRlcm5hbCBzY3JpcHRzIGlmIHlvdXIgc2NyaXB0IHVzZXMgPGNvZGU+Jmx0OzwvY29kZT4gb3IgPGNvZGU+CismYW1wOzwvY29kZT4gb3IgPGNvZGU+XV0mZ3Q7PC9jb2RlPiBvciA8Y29kZT4tLTwvY29kZT4uIE5vdGUgdGhhdCBYTUwgcGFyc2VycworYXJlIHBlcm1pdHRlZCB0byBzaWxlbnRseSByZW1vdmUgdGhlIGNvbnRlbnRzIG9mIGNvbW1lbnRzLiBUaGVyZWZvcmUsIHRoZSBoaXN0b3JpY2FsCitwcmFjdGljZSBvZiAiaGlkaW5nIiBzY3JpcHRzIGFuZCBzdHlsZSBzaGVldHMgd2l0aGluIGNvbW1lbnRzIHRvIG1ha2UgdGhlCitkb2N1bWVudHMgYmFja3dhcmQgY29tcGF0aWJsZSBpcyBsaWtlbHkgdG8gbm90IHdvcmsgYXMgZXhwZWN0ZWQgaW4gWE1MLWJhc2VkCitpbXBsZW1lbnRhdGlvbnMuPC9wPgorCis8aDI+Qy41IExpbmUgQnJlYWtzIHdpdGhpbiBBdHRyaWJ1dGUgVmFsdWVzPC9oMj4KKzxwPkF2b2lkIGxpbmUgYnJlYWtzIGFuZCBtdWx0aXBsZSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgd2l0aGluCithdHRyaWJ1dGUgdmFsdWVzLiBUaGVzZSBhcmUgaGFuZGxlZCBpbmNvbnNpc3RlbnRseSBieSB1c2VyCithZ2VudHMuPC9wPgorCis8aDI+Qy42IElzaW5kZXg8L2gyPgorPHA+RG9uJ3QgaW5jbHVkZSBtb3JlIHRoYW4gb25lIDxjb2RlPmlzaW5kZXg8L2NvZGU+IGVsZW1lbnQgaW4KK3RoZSBkb2N1bWVudCA8Y29kZT5oZWFkPC9jb2RlPi4gVGhlIDxjb2RlPmlzaW5kZXg8L2NvZGU+IGVsZW1lbnQKK2lzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50LjwvcD4KKworPGgyPkMuNyBUaGUgPGNvZGU+bGFuZzwvY29kZT4gYW5kIDxjb2RlPnhtbDpsYW5nPC9jb2RlPiBBdHRyaWJ1dGVzPC9oMj4KKzxwPlVzZSBib3RoIHRoZSA8Y29kZT5sYW5nPC9jb2RlPiBhbmQgPGNvZGU+eG1sOmxhbmc8L2NvZGU+CithdHRyaWJ1dGVzIHdoZW4gc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgYW4gZWxlbWVudC4gVGhlIHZhbHVlCitvZiB0aGUgPGNvZGU+eG1sOmxhbmc8L2NvZGU+IGF0dHJpYnV0ZSB0YWtlcyBwcmVjZWRlbmNlLjwvcD4KKworPGgyPkMuOCBGcmFnbWVudCBJZGVudGlmaWVyczwvaDI+Cis8cD5JbiBYTUwsIDxhYmJyIHRpdGxlPSJVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIj5VUklzPC9hYmJyPiBbPGEgaHJlZj0iI3JlZi1yZmMyMzk2Ij5SRkMyMzk2PC9hPl0gdGhhdCBlbmQgd2l0aCBmcmFnbWVudCBpZGVudGlmaWVycyBvZiB0aGUgZm9ybQorPGNvZGU+IiNmb28iPC9jb2RlPiBkbyBub3QgcmVmZXIgdG8gZWxlbWVudHMgd2l0aCBhbiBhdHRyaWJ1dGUKKzxjb2RlPm5hbWU9ImZvbyI8L2NvZGU+OyByYXRoZXIsIHRoZXkgcmVmZXIgdG8gZWxlbWVudHMgd2l0aCBhbgorYXR0cmlidXRlIGRlZmluZWQgdG8gYmUgb2YgdHlwZSA8Y29kZT5JRDwvY29kZT4sIGUuZy4sIHRoZSA8Y29kZT4KK2lkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gSFRNTCA0LjAuIE1hbnkgZXhpc3RpbmcgSFRNTCBjbGllbnRzIGRvbid0CitzdXBwb3J0IHRoZSB1c2Ugb2YgPGNvZGU+SUQ8L2NvZGU+LXR5cGUgYXR0cmlidXRlcyBpbiB0aGlzIHdheSwKK3NvIGlkZW50aWNhbCB2YWx1ZXMgbWF5IGJlIHN1cHBsaWVkIGZvciBib3RoIG9mIHRoZXNlIGF0dHJpYnV0ZXMgdG8gZW5zdXJlCittYXhpbXVtIGZvcndhcmQgYW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKGUuZy4sIDxjb2RlIGNsYXNzPSJncmVlbm1vbm8iPiZsdDthIGlkPSJmb28iIG5hbWU9ImZvbyImZ3Q7Li4uJmx0Oy9hJmd0OzwvY29kZT4pLjwvcD4KKworPHA+RnVydGhlciwgc2luY2UgdGhlIHNldCBvZgorbGVnYWwgdmFsdWVzIGZvciBhdHRyaWJ1dGVzIG9mIHR5cGUgPGNvZGU+SUQ8L2NvZGU+IGlzIG11Y2ggc21hbGxlciB0aGFuCitmb3IgdGhvc2Ugb2YgdHlwZSA8Y29kZT5DREFUQTwvY29kZT4sIHRoZSB0eXBlIG9mIHRoZSA8Y29kZT5uYW1lPC9jb2RlPgorYXR0cmlidXRlIGhhcyBiZWVuIGNoYW5nZWQgdG8gPGNvZGU+Tk1UT0tFTjwvY29kZT4uIFRoaXMgYXR0cmlidXRlIGlzIAorY29uc3RyYWluZWQgc3VjaCB0aGF0IGl0IGNhbiBvbmx5IGhhdmUgdGhlIHNhbWUgdmFsdWVzIGFzIHR5cGUKKzxjb2RlPklEPC9jb2RlPiwgb3IgYXMgdGhlIDxjb2RlPk5hbWU8L2NvZGU+IHByb2R1Y3Rpb24gaW4gWE1MIDEuMCBTZWN0aW9uCisyLjUsIHByb2R1Y3Rpb24gNS4gVW5mb3J0dW5hdGVseSwgdGhpcyBjb25zdHJhaW50IGNhbm5vdCBiZSBleHByZXNzZWQgaW4gdGhlCitYSFRNTCAxLjAgRFREcy4gIEJlY2F1c2Ugb2YgdGhpcyBjaGFuZ2UsIGNhcmUgbXVzdCBiZSB0YWtlbiB3aGVuCitjb252ZXJ0aW5nIGV4aXN0aW5nIEhUTUwgZG9jdW1lbnRzLiBUaGUgdmFsdWVzIG9mIHRoZXNlIGF0dHJpYnV0ZXMKK211c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZG9jdW1lbnQsIHZhbGlkLCBhbmQgYW55IHJlZmVyZW5jZXMgdG8gdGhlc2UgCitmcmFnbWVudCBpZGVudGlmaWVycyAoYm90aAoraW50ZXJuYWwgYW5kIGV4dGVybmFsKSBtdXN0IGJlIHVwZGF0ZWQgc2hvdWxkIHRoZSB2YWx1ZXMgYmUgY2hhbmdlZCBkdXJpbmcKK2NvbnZlcnNpb24uPC9wPgorPHA+RmluYWxseSwgbm90ZSB0aGF0IFhIVE1MIDEuMCBoYXMgZGVwcmVjYXRlZCB0aGUKKzxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgPGNvZGU+YTwvY29kZT4sIDxjb2RlPmFwcGxldDwvY29kZT4sIDxjb2RlPmZyYW1lPC9jb2RlPiwgPGNvZGU+aWZyYW1lPC9jb2RlPiwgPGNvZGU+aW1nPC9jb2RlPiwgYW5kIDxjb2RlPm1hcDwvY29kZT4KK2VsZW1lbnRzLCBhbmQgaXQgd2lsbCBiZQorcmVtb3ZlZCBmcm9tIFhIVE1MIGluIHN1YnNlcXVlbnQgdmVyc2lvbnMuPC9wPgorCis8aDI+Qy45IENoYXJhY3RlciBFbmNvZGluZzwvaDI+Cis8cD5UbyBzcGVjaWZ5IGEgY2hhcmFjdGVyIGVuY29kaW5nIGluIHRoZSBkb2N1bWVudCwgdXNlIGJvdGggdGhlCitlbmNvZGluZyBhdHRyaWJ1dGUgc3BlY2lmaWNhdGlvbiBvbiB0aGUgeG1sIGRlY2xhcmF0aW9uIChlLmcuCis8Y29kZSBjbGFzcz0iZ3JlZW5tb25vIj4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiCitlbmNvZGluZz0iRVVDLUpQIj8mZ3Q7PC9jb2RlPikgYW5kIGEgbWV0YSBodHRwLWVxdWl2IHN0YXRlbWVudAorKGUuZy4gPGNvZGUgY2xhc3M9ImdyZWVubW9ubyI+Jmx0O21ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIgorY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PSJFVUMtSlAiJyYjeEEwOy8mZ3Q7PC9jb2RlPikuIFRoZQordmFsdWUgb2YgdGhlIGVuY29kaW5nIGF0dHJpYnV0ZSBvZiB0aGUgeG1sIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24KK3Rha2VzIHByZWNlZGVuY2UuPC9wPgorCis8aDI+Qy4xMCBCb29sZWFuIEF0dHJpYnV0ZXM8L2gyPgorPHA+U29tZSBIVE1MIHVzZXIgYWdlbnRzIGFyZSB1bmFibGUgdG8gaW50ZXJwcmV0IGJvb2xlYW4KK2F0dHJpYnV0ZXMgd2hlbiB0aGVzZSBhcHBlYXIgaW4gdGhlaXIgZnVsbCAobm9uLW1pbmltaXplZCkgZm9ybSwKK2FzIHJlcXVpcmVkIGJ5IFhNTCAxLjAuIE5vdGUgdGhpcyBwcm9ibGVtIGRvZXNuJ3QgZWZmZWN0IHVzZXIKK2FnZW50cyBjb21wbGlhbnQgd2l0aCBIVE1MIDQuMC4gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZQoraW52b2x2ZWQ6IDxjb2RlPmNvbXBhY3Q8L2NvZGU+LCA8Y29kZT5ub3dyYXA8L2NvZGU+LCA8Y29kZT4KK2lzbWFwPC9jb2RlPiwgPGNvZGU+ZGVjbGFyZTwvY29kZT4sIDxjb2RlPm5vc2hhZGU8L2NvZGU+LCA8Y29kZT4KK2NoZWNrZWQ8L2NvZGU+LCA8Y29kZT5kaXNhYmxlZDwvY29kZT4sIDxjb2RlPnJlYWRvbmx5PC9jb2RlPiwKKzxjb2RlPm11bHRpcGxlPC9jb2RlPiwgPGNvZGU+c2VsZWN0ZWQ8L2NvZGU+LCA8Y29kZT4KK25vcmVzaXplPC9jb2RlPiwgPGNvZGU+ZGVmZXI8L2NvZGU+LjwvcD4KKworPGgyPkMuMTEgRG9jdW1lbnQgT2JqZWN0IE1vZGVsIGFuZCBYSFRNTDwvaDI+Cis8cD4KK1RoZSBEb2N1bWVudCBPYmplY3QgTW9kZWwgbGV2ZWwgMSBSZWNvbW1lbmRhdGlvbiBbPGEgaHJlZj0iI3JlZi1kb20iPkRPTTwvYT5dCitkZWZpbmVzIGRvY3VtZW50IG9iamVjdCBtb2RlbCBpbnRlcmZhY2VzIGZvciBYTUwgYW5kIEhUTUwgNC4wLiBUaGUgSFRNTCA0LjAKK2RvY3VtZW50IG9iamVjdCBtb2RlbCBzcGVjaWZpZXMgdGhhdCBIVE1MIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZSBuYW1lcyBhcmUKK3JldHVybmVkIGluIHVwcGVyLWNhc2UuIFRoZSBYTUwgZG9jdW1lbnQgb2JqZWN0IG1vZGVsIHNwZWNpZmllcyB0aGF0IAorZWxlbWVudCBhbmQgYXR0cmlidXRlIG5hbWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgY2FzZSB0aGV5IGFyZSBzcGVjaWZpZWQuIEluCitYSFRNTCAxLjAsIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQgaW4gbG93ZXItY2FzZS4gVGhpcyBhcHBhcmVudCBkaWZmZXJlbmNlIGNhbiBiZQorYWRkcmVzc2VkIGluIHR3byB3YXlzOgorPC9wPgorPG9sPgorPGxpPkFwcGxpY2F0aW9ucyB0aGF0IGFjY2VzcyBYSFRNTCBkb2N1bWVudHMgc2VydmVkIGFzIEludGVybmV0IG1lZGlhIHR5cGUKKzxjb2RlPnRleHQvaHRtbDwvY29kZT4KK3ZpYSB0aGUgPGFiYnIgdGl0bGU9IkRvY3VtZW50IE9iamVjdCBNb2RlbCI+RE9NPC9hYmJyPiBjYW4gdXNlIHRoZSBIVE1MIERPTSwKK2FuZCBjYW4gcmVseSB1cG9uIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZSBuYW1lcyBiZWluZyByZXR1cm5lZCBpbgordXBwZXItY2FzZSBmcm9tIHRob3NlIGludGVyZmFjZXMuPC9saT4KKzxsaT5BcHBsaWNhdGlvbnMgdGhhdCBhY2Nlc3MgWEhUTUwgZG9jdW1lbnRzIHNlcnZlZCBhcyBJbnRlcm5ldCBtZWRpYSB0eXBlcworPGNvZGU+dGV4dC94bWw8L2NvZGU+IG9yIDxjb2RlPmFwcGxpY2F0aW9uL3htbDwvY29kZT4KK2NhbiBhbHNvIHVzZSB0aGUgWE1MIERPTS4gRWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMgd2lsbCBiZSByZXR1cm5lZCBpbiBsb3dlci1jYXNlLgorQWxzbywgc29tZSBYSFRNTCBlbGVtZW50cyBtYXkgb3IgbWF5Citub3QgYXBwZWFyCitpbiB0aGUgb2JqZWN0IHRyZWUgYmVjYXVzZSB0aGV5IGFyZSBvcHRpb25hbCBpbiB0aGUgY29udGVudCBtb2RlbAorKGUuZy4gdGhlIDxjb2RlPnRib2R5PC9jb2RlPiBlbGVtZW50IHdpdGhpbgorPGNvZGU+dGFibGU8L2NvZGU+KS4gIFRoaXMgb2NjdXJzIGJlY2F1c2UgaW4gSFRNTCA0LjAgc29tZSBlbGVtZW50cyB3ZXJlCitwZXJtaXR0ZWQgdG8gYmUgbWluaW1pemVkIHN1Y2ggdGhhdCB0aGVpciBzdGFydCBhbmQgZW5kIHRhZ3MgYXJlIGJvdGggb21pdHRlZAorKGFuIFNHTUwgZmVhdHVyZSkuCitUaGlzIGlzIG5vdCBwb3NzaWJsZSBpbiBYTUwuIFJhdGhlciB0aGFuIHJlcXVpcmUgZG9jdW1lbnQgYXV0aG9ycyB0byBpbnNlcnQKK2V4dHJhbmVvdXMgZWxlbWVudHMsIFhIVE1MIGhhcyBtYWRlIHRoZSBlbGVtZW50cyBvcHRpb25hbC4gCitBcHBsaWNhdGlvbnMgbmVlZCB0byBhZGFwdCB0byB0aGlzCithY2NvcmRpbmdseS48L2xpPgorPC9vbD4KKworPGgyPkMuMTIgVXNpbmcgQW1wZXJzYW5kcyBpbiBBdHRyaWJ1dGUgVmFsdWVzPC9oMj4KKzxwPgorV2hlbiBhbiBhdHRyaWJ1dGUgdmFsdWUgY29udGFpbnMgYW4gYW1wZXJzYW5kLCBpdCBtdXN0IGJlIGV4cHJlc3NlZCBhcyBhIGNoYXJhY3RlcgorZW50aXR5IHJlZmVyZW5jZQorKGUuZy4gIjxjb2RlPiZhbXA7YW1wOzwvY29kZT4iKS4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlCis8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUKK29mIHRoZSA8Y29kZT5hPC9jb2RlPiBlbGVtZW50IHJlZmVycyB0byBhCitDR0kgc2NyaXB0IHRoYXQgdGFrZXMgcGFyYW1ldGVycywgaXQgbXVzdCBiZSBleHByZXNzZWQgYXMKKzxjb2RlPmh0dHA6Ly9teS5zaXRlLmRvbS9jZ2ktYmluL215c2NyaXB0LnBsP2NsYXNzPWd1ZXN0JmFtcDthbXA7bmFtZT11c2VyPC9jb2RlPgorcmF0aGVyIHRoYW4gYXMKKzxjb2RlPmh0dHA6Ly9teS5zaXRlLmRvbS9jZ2ktYmluL215c2NyaXB0LnBsP2NsYXNzPWd1ZXN0JmFtcDtuYW1lPXVzZXI8L2NvZGU+LgorPC9wPgorCis8aDI+Qy4xMyBDYXNjYWRpbmcgU3R5bGUgU2hlZXRzIChDU1MpIGFuZCBYSFRNTDwvaDI+CisKKzxwPlRoZSBDYXNjYWRpbmcgU3R5bGUgU2hlZXRzIGxldmVsIDIgUmVjb21tZW5kYXRpb24gWzxhIGhyZWY9IiNyZWYtY3NzMiI+Q1NTMjwvYT5dIGRlZmluZXMgc3R5bGUKK3Byb3BlcnRpZXMgd2hpY2ggYXJlIGFwcGxpZWQgdG8gdGhlIHBhcnNlIHRyZWUgb2YgdGhlIEhUTUwgb3IgWE1MCitkb2N1bWVudC4gIERpZmZlcmVuY2VzIGluIHBhcnNpbmcgd2lsbCBwcm9kdWNlIGRpZmZlcmVudCB2aXN1YWwgb3IKK2F1cmFsIHJlc3VsdHMsIGRlcGVuZGluZyBvbiB0aGUgc2VsZWN0b3JzIHVzZWQuIFRoZSBmb2xsb3dpbmcgaGludHMKK3dpbGwgcmVkdWNlIHRoaXMgZWZmZWN0IGZvciBkb2N1bWVudHMgd2hpY2ggYXJlIHNlcnZlZCB3aXRob3V0Cittb2RpZmljYXRpb24gYXMgYm90aCBtZWRpYSB0eXBlczo8L3A+CisKKzxvbD4KKzxsaT4KK0NTUyBzdHlsZSBzaGVldHMgZm9yIFhIVE1MIHNob3VsZCB1c2UgbG93ZXIgY2FzZSBlbGVtZW50IGFuZAorYXR0cmlidXRlIG5hbWVzLjwvbGk+CisKKworPGxpPkluIHRhYmxlcywgdGhlIHRib2R5IGVsZW1lbnQgd2lsbCBiZSBpbmZlcnJlZCBieSB0aGUgcGFyc2VyIG9mIGFuCitIVE1MIHVzZXIgYWdlbnQsIGJ1dCBub3QgYnkgdGhlIHBhcnNlciBvZiBhbiBYTUwgdXNlciBhZ2VudC4gVGhlcmVmb3JlCit5b3Ugc2hvdWxkIGFsd2F5cyBleHBsaWNpdGVseSBhZGQgYSB0Ym9keSBlbGVtZW50IGlmIGl0IGlzIHJlZmVycmVkIHRvCitpbiBhIENTUyBzZWxlY3Rvci48L2xpPgorCis8bGk+V2l0aGluIHRoZSBYSFRNTCBuYW1lIHNwYWNlLCB1c2VyIGFnZW50cyBhcmUgZXhwZWN0ZWQgdG8KK3JlY29nbml6ZSB0aGUgImlkIiBhdHRyaWJ1dGUgYXMgYW4gYXR0cmlidXRlIG9mIHR5cGUgSUQuCitUaGVyZWZvcmUsIHN0eWxlIHNoZWV0cyBzaG91bGQgYmUgYWJsZSB0byBjb250aW51ZSB1c2luZyB0aGUKK3Nob3J0aGFuZCAiIyIgc2VsZWN0b3Igc3ludGF4IGV2ZW4gaWYgdGhlIHVzZXIgYWdlbnQgZG9lcyBub3QgcmVhZAordGhlIERURC48L2xpPgorCis8bGk+V2l0aGluIHRoZSBYSFRNTCBuYW1lIHNwYWNlLCB1c2VyIGFnZW50cyBhcmUgZXhwZWN0ZWQgdG8KK3JlY29nbml6ZSB0aGUgImNsYXNzIiBhdHRyaWJ1dGUuIFRoZXJlZm9yZSwgc3R5bGUgc2hlZXRzIHNob3VsZCBiZQorYWJsZSB0byBjb250aW51ZSB1c2luZyB0aGUgc2hvcnRoYW5kICIuIiBzZWxlY3RvciBzeW50YXguPC9saT4KKworPGxpPgorQ1NTIGRlZmluZXMgZGlmZmVyZW50IGNvbmZvcm1hbmNlIHJ1bGVzIGZvciBIVE1MIGFuZCBYTUwgZG9jdW1lbnRzOworYmUgYXdhcmUgdGhhdCB0aGUgSFRNTCBydWxlcyBhcHBseSB0byBYSFRNTCBkb2N1bWVudHMgZGVsaXZlcmVkIGFzCitIVE1MIGFuZCB0aGUgWE1MIHJ1bGVzIGFwcGx5IHRvIFhIVE1MIGRvY3VtZW50cyBkZWxpdmVyZWQgYXMgWE1MLjwvbGk+Cis8L29sPgorPCEtLU9kZFBhZ2UtLT4KKzxoMT48YSBuYW1lPSJhY2tzIiBpZD0iYWNrcyI+QXBwZW5kaXggRC4KK0Fja25vd2xlZGdlbWVudHM8L2E+PC9oMT4KKworPHA+PGI+VGhpcyBhcHBlbmRpeCBpcyBpbmZvcm1hdGl2ZS48L2I+PC9wPgorCis8cD5UaGlzIHNwZWNpZmljYXRpb24gd2FzIHdyaXR0ZW4gd2l0aCB0aGUgcGFydGljaXBhdGlvbiBvZiB0aGUKK21lbWJlcnMgb2YgdGhlIFczQyBIVE1MIHdvcmtpbmcgZ3JvdXA6PC9wPgorCis8ZGw+Cis8ZGQ+U3RldmVuIFBlbWJlcnRvbiwgQ1dJIChIVE1MIFdvcmtpbmcgR3JvdXAgQ2hhaXIpPGJyIC8+CitNdXJyYXkgQWx0aGVpbSwgU3VuIE1pY3Jvc3lzdGVtczxiciAvPgorRGFuaWVsIEF1c3RpbiwgQ05FVDogVGhlIENvbXB1dGVyIE5ldHdvcms8YnIgLz4KK0ZyYW5rIEJvdW1waHJleSwgSFRNTCBXcml0ZXJzIEd1aWxkPGJyIC8+CitKb2huIEJ1cmdlciwgTWl0cmU8YnIgLz4KK0FuZHJldyBXLiBEb25vaG8sIElCTTxiciAvPgorU2FtIERvb2xleSwgSUJNPGJyIC8+CitLbGF1cyBIb2ZyaWNodGVyLCBHTUQ8YnIgLz4KK1BoaWxpcHAgSG9zY2hrYSwgVzNDPGJyIC8+CitNYXNheWFzdSBJc2hpa2F3YSwgVzNDPGJyIC8+CitXYXJuZXIgdGVuIEthdGUsIFBoaWxpcHMgRWxlY3Ryb25pY3M8YnIgLz4KK1BldGVyIEtpbmcsIFBob25lLmNvbTxiciAvPgorUGF1bGEgS2xhbnRlLCBKZXRGb3JtPGJyIC8+CitTaGluJ2ljaGkgTWF0c3VpLCBXM0MvUGFuYXNvbmljPGJyIC8+CitTaGFuZSBNY0NhcnJvbiwgQXBwbGllZCBUZXN0aW5nIGFuZCBUZWNobm9sb2d5IChUaGUgT3BlbiBHcm91cCB0aHJvdWdoIEF1Z3VzdAorMTk5OSk8YnIgLz4KK0FubiBOYXZhcnJvLCBIVE1MIFdyaXRlcnMgR3VpbGQ8YnIgLz4KK1phY2ggTmllcywgUXVhcms8YnIgLz4KK0RhdmUgUmFnZ2V0dCwgVzNDL0hQIChXM0MgbGVhZCBmb3IgSFRNTCk8YnIgLz4KK1BhdHJpY2sgU2NobWl0eiwgTWljcm9zb2Z0PGJyIC8+CitTZWJhc3RpYW4gU2Nobml0emVuYmF1bWVyLCBTdGFjayBPdmVyZmxvdzxiciAvPgorQ2hyaXMgV2lsc29uLCBNaWNyb3NvZnQ8YnIgLz4KK1RlZCBXdWdvZnNraSwgR2F0ZXdheSAyMDAwPGJyIC8+CitEYW4gWmlnbW9uZCwgV2ViVFYgTmV0d29ya3M8L2RkPgorPC9kbD4KKworPCEtLU9kZFBhZ2UtLT4KKzxoMT48YSBuYW1lPSJyZWZzIiBpZD0icmVmcyI+QXBwZW5kaXggRS4gUmVmZXJlbmNlczwvYT48L2gxPgorCis8cD48Yj5UaGlzIGFwcGVuZGl4IGlzIGluZm9ybWF0aXZlLjwvYj48L3A+CisKKzxkbD4KKworPGR0PjxhIG5hbWU9InJlZi1jc3MyIiBpZD0icmVmLWNzczIiPjxiPltDU1MyXTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1DU1MyIj4iQ2FzY2FkaW5nIFN0eWxlIFNoZWV0cywgbGV2ZWwgMiAoQ1NTMikgU3BlY2lmaWNhdGlvbiI8L2E+LCBCLgorQm9zLCBILiBXLiBMaWUsIEMuIExpbGxleSwgSS4gSmFjb2JzLCAxMiBNYXkgMTk5OC48YnIgLz4KK0F2YWlsYWJsZSBhdDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLUNTUzIiPgoraHR0cDovL3d3dy53My5vcmcvVFIvUkVDLUNTUzI8L2E+PC9kZD4KKworPGR0PjxhIG5hbWU9InJlZi1kb20iIGlkPSJyZWYtZG9tIj48Yj5bRE9NXTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1ET00tTGV2ZWwtMSI+IkRvY3VtZW50IE9iamVjdCBNb2RlbCAoRE9NKSBMZXZlbCAxIFNwZWNpZmljYXRpb24iPC9hPiwgTGF1cmVuCitXb29kIDxpPmV0IGFsLjwvaT4sIDEgT2N0b2JlciAxOTk4LjxiciAvPgorQXZhaWxhYmxlIGF0OiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtRE9NLUxldmVsLTEiPgoraHR0cDovL3d3dy53My5vcmcvVFIvUkVDLURPTS1MZXZlbC0xPC9hPjwvZGQ+CisKKzxkdD48YSBuYW1lPSJyZWYtaHRtbDQiIGlkPSJyZWYtaHRtbDQiPjxiPltIVE1MXTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFItaHRtbDQwLTE5OTkwODI0Ij4iSFRNTCA0LjAxIFNwZWNpZmljYXRpb24iPC9hPiwgRC4gUmFnZ2V0dCwgQS4gTGUmI3hBMDtIb3JzLCBJLgorSmFjb2JzLCAyNCBBdWd1c3QgMTk5OS48YnIgLz4KK0F2YWlsYWJsZSBhdDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi1odG1sNDAtMTk5OTA4MjQiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi1odG1sNDAtMTk5OTA4MjQ8L2E+PC9kZD4KKworPGR0PjxhIG5hbWU9InJlZi1wb3NpeCIgaWQ9InJlZi1wb3NpeCI+PGI+W1BPU0lYLjFdPC9iPjwvYT48L2R0PgorCis8ZGQ+IklTTy9JRUMgOTk0NS0xOjE5OTAgSW5mb3JtYXRpb24gVGVjaG5vbG9neSAtIFBvcnRhYmxlCitPcGVyYXRpbmcgU3lzdGVtIEludGVyZmFjZSAoUE9TSVgpIC0gUGFydCAxOiBTeXN0ZW0gQXBwbGljYXRpb24KK1Byb2dyYW0gSW50ZXJmYWNlIChBUEkpIFtDIExhbmd1YWdlXSIsIEluc3RpdHV0ZSBvZiBFbGVjdHJpY2FsCithbmQgRWxlY3Ryb25pY3MgRW5naW5lZXJzLCBJbmMsIDE5OTAuPC9kZD4KKworPGR0PjxhIG5hbWU9InJlZi1yZmMyMDQ2IiBpZD0icmVmLXJmYzIwNDYiPjxiPgorW1JGQzIwNDZdPC9iPjwvYT48L2R0PgorCis8ZGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjA0Ni50eHQiPiJSRkMyMDQ2OiBNdWx0aXB1cnBvc2UgSW50ZXJuZXQgTWFpbCBFeHRlbnNpb25zIChNSU1FKSBQYXJ0CitUd286IE1lZGlhIFR5cGVzIjwvYT4sIE4uIEZyZWVkIGFuZCBOLiBCb3JlbnN0ZWluLCBOb3ZlbWJlcgorMTk5Ni48YnIgLz4KK0F2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMDQ2LnR4dCI+CitodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMDQ2LnR4dDwvYT4uIE5vdGUgdGhhdCB0aGlzIFJGQworb2Jzb2xldGVzIFJGQzE1MjEsIFJGQzE1MjIsIGFuZCBSRkMxNTkwLjwvZGQ+CisKKzxkdD48YSBuYW1lPSJyZWYtcmZjMjExOSIgaWQ9InJlZi1yZmMyMTE5Ij48Yj4KK1tSRkMyMTE5XTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIxMTkudHh0Ij4iUkZDMjExOTogS2V5IHdvcmRzIGZvciB1c2UgaW4gUkZDcyB0byBJbmRpY2F0ZSBSZXF1aXJlbWVudAorTGV2ZWxzIjwvYT4sIFMuIEJyYWRuZXIsIE1hcmNoIDE5OTcuPGJyIC8+CitBdmFpbGFibGUgYXQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIxMTkudHh0Ij4KK2h0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIxMTkudHh0PC9hPjwvZGQ+CisKKzxkdD48YSBuYW1lPSJyZWYtcmZjMjM3NiIgaWQ9InJlZi1yZmMyMzc2Ij48Yj4KK1tSRkMyMzc2XTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIzNzYudHh0Ij4iUkZDMjM3NjogWE1MIE1lZGlhIFR5cGVzIjwvYT4sIEUuIFdoaXRlaGVhZCwgTS4gTXVyYXRhLCBKdWx5CisxOTk4LjxiciAvPgorQXZhaWxhYmxlIGF0OiA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzc2LnR4dCI+CitodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzc2LnR4dDwvYT48L2RkPgorCis8ZHQ+PGEgbmFtZT0icmVmLXJmYzIzOTYiIGlkPSJyZWYtcmZjMjM5NiI+PGI+CitbUkZDMjM5Nl08L2I+PC9hPjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCI+IlJGQzIzOTY6IFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcnMgKFVSSSk6IEdlbmVyaWMKK1N5bnRheCI8L2E+LCBULiBCZXJuZXJzLUxlZSwgUi4gRmllbGRpbmcsIEwuIE1hc2ludGVyLCBBdWd1c3QKKzE5OTguPGJyIC8+CitUaGlzIGRvY3VtZW50IHVwZGF0ZXMgUkZDMTczOCBhbmQgUkZDMTgwOC48YnIgLz4KK0F2YWlsYWJsZSBhdDogPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQiPgoraHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQ8L2E+PC9kZD4KKworPGR0PjxhIG5hbWU9InJlZi14bWwiIGlkPSJyZWYteG1sIj48Yj5bWE1MXTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwiPiJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSAoWE1MKSAxLjAgU3BlY2lmaWNhdGlvbiI8L2E+LCBULgorQnJheSwgSi4gUGFvbGksIEMuIE0uIFNwZXJiZXJnLU1jUXVlZW4sIDEwIEZlYnJ1YXJ5IDE5OTguPGJyIC8+CitBdmFpbGFibGUgYXQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwiPgoraHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbDwvYT48L2RkPgorCis8ZHQ+PGEgbmFtZT0icmVmLXhtbG5zIiBpZD0icmVmLXhtbG5zIj48Yj5bWE1MTkFNRVNdPC9iPjwvYT48L2R0PgorCis8ZGQ+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcyI+Ik5hbWVzcGFjZXMgaW4gWE1MIjwvYT4sIFQuIEJyYXksIEQuIEhvbGxhbmRlciwgQS4gTGF5bWFuLCAxNAorSmFudWFyeSAxOTk5LjxiciAvPgorWE1MIG5hbWVzcGFjZXMgcHJvdmlkZSBhIHNpbXBsZSBtZXRob2QgZm9yIHF1YWxpZnlpbmcgbmFtZXMgdXNlZAoraW4gWE1MIGRvY3VtZW50cyBieSBhc3NvY2lhdGluZyB0aGVtIHdpdGggbmFtZXNwYWNlcyBpZGVudGlmaWVkCitieSBVUkkuPGJyIC8+CitBdmFpbGFibGUgYXQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMiPgoraHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lczwvYT48L2RkPgorCis8L2RsPgorPHA+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvV0FJL1dDQUcxQUFBLUNvbmZvcm1hbmNlIiB0aXRsZT0iRXhwbGFuYXRpb24gb2YgTGV2ZWwgVHJpcGxlLUEgQ29uZm9ybWFuY2UiPgorPGltZyBoZWlnaHQ9IjMyIiB3aWR0aD0iODgiIHNyYz0id2NhZzFBQUEuZ2lmIiBhbHQ9IkxldmVsIFRyaXBsZS1BIGNvbmZvcm1hbmNlIGljb24sIFczQy1XQUkgV2ViIENvbnRlbnQgQWNjZXNzaWJpbGl0eSBHdWlkZWxpbmVzIDEuMCIgLz48L2E+PC9wPgorPGRpdiBjbGFzcz0ibmF2YmFyIj4KKyAgPGhyIC8+CisgIDxhIGhyZWY9IiN0b2MiPnRhYmxlIG9mIGNvbnRlbnRzPC9hPiAKKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQveGh0bWwxLnhodG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3hodG1sMS54aHRtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3hodG1sMS54aHRtbC5lcnIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3hsaW5rLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3hsaW5rLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjM1YTBmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvdmFsaWQveGxpbmsueG1sCkBAIC0wLDAgKzEsNTI1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCFET0NUWVBFIHNwZWMgUFVCTElDICItLy9XM0MvL0RURCBTcGVjaWZpY2F0aW9uOjoxOTk5MDIwNS8vRU4iICJkdGRzL3htbHNwZWMuZHRkIiBbCis8IUVOVElUWSBkb2MtdHlwZSAiV0QiPgorPCFFTlRJVFkgaXNvNi5kb2MuZGF0ZSAiMjktTWF5LTE5OTkiPgorXT4KKzwhLS1BcmJvclRleHQsIEluYy4sIDE5ODgtMTk5OCwgdi40MDAyLS0+Cis8P1B1YiBVRFQgX2Jvb2ttYXJrIF90YXJnZXQ/PgorPD9QdWIgSW5jPz4KKzw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iZmlsZTovLy9DfC9Qcm9ncmFtJTIwRmlsZXMvU29mdFF1YWQvWE1ldGFMJTIwMS9kaXNwbGF5L3htbHNwZWMuY3NzIgordHlwZT0idGV4dC9jc3MiPz4KKzxzcGVjPgorCis8IS0tIExhc3QgZWRpdGVkOiAyNyBNYXkgMTk5OSBieSBiZW50IC0tPgorPGhlYWRlcj48P1B1YiBEdGw/PgorCTx0aXRsZT5YTUwgTGlua2luZyBMYW5ndWFnZSAoWExpbmspPC90aXRsZT4KKwk8dmVyc2lvbj5WZXJzaW9uIDEuMDwvdmVyc2lvbj4KKwk8dzNjLWRlc2lnbmF0aW9uPjwhLS0gJmRvYy10eXBlOy0maXNvNi5kb2MuZGF0ZTsgLS0+IFdELXhsaW5rLTE5OTkwNTI3PC93M2MtZGVzaWduYXRpb24+CisJPHczYy1kb2N0eXBlPldvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0gV29ya2luZyBEcmFmdDwvdzNjLWRvY3R5cGU+CisJPHB1YmRhdGU+PGRheT4yOTwvZGF5Pjxtb250aD5NYXk8L21vbnRoPjx5ZWFyPjE5OTk8L3llYXI+PC9wdWJkYXRlPgorCTxub3RpY2U+CisJPHA+VGhpcyBkcmFmdCBpcyBmb3IgcHVibGljIGRpc2N1c3Npb24uPC9wPgorCTwvbm90aWNlPgorCTxwdWJsb2M+PGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvR3JvdXAvMTk5OS8wNS9XRC14bGluay1jdXJyZW50Ij5odHRwOi8vd3d3LnczLm9yZy9YTUwvR3JvdXAvMTk5OS8wNS9XRC14bGluay1jdXJyZW50PC9sb2M+PC9wdWJsb2M+CisJPHByZXZsb2NzPgorCTwhLS1DaGVjazogd2FzIGl0IGFjdHVhbGx5IEF1Z3VzdD8tLT4KKwk8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1hNTC9Hcm91cC8xOTk5LzA1L1dELXhsaW5rLTE5OTkwNTI3Ij5odHRwOi8vd3d3LnczLm9yZy9YTUwvR3JvdXAvMTk5OS8wNS9XRC14bGluay0xOTk5MDUyNzwvbG9jPgorCTxsb2MgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvWE1ML0dyb3VwLzE5OTkvMDUvV0QteGxpbmstMTk5OTA1MDUiPmh0dHA6Ly93d3cudzMub3JnL1hNTC9Hcm91cC8xOTk5LzA1L1dELXhsaW5rLTE5OTkwNTA1PC9sb2M+CisJPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1dELXhsaW5rLTE5OTgwMzAzIj5odHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1dELXhsaW5rLTE5OTgwMzAzPC9sb2M+CisJPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGluay05NzA2MzAiPmh0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC1saW5rLTk3MDYzMDwvbG9jPjwvcHJldmxvY3M+CisKKwk8YXV0aGxpc3Q+CisJCTwhLS1VcGRhdGVkIGF1dGhvciBocmVmcyAgZG9yY2hhcmQtLT4KKwkJPCEtLSBVcGRhdGUgU3RldmUncyBlbWFpbCAtIGJlbnQgLS0+IAorCQk8YXV0aG9yPgorCQkJPG5hbWU+U3RldmUgRGVSb3NlPC9uYW1lPgorCQkJPGFmZmlsaWF0aW9uPkluc28gQ29ycC4gYW5kIEJyb3duIFVuaXZlcnNpdHk8L2FmZmlsaWF0aW9uPgorCQkJPGVtYWlsIGhyZWY9Im1haWx0bzpTdGV2ZW5fRGVSb3NlQEJyb3duLmVkdSI+U3RldmVuX0RlUm9zZUBCcm93bi5lZHU8L2VtYWlsPgorCQk8L2F1dGhvcj4KKwkJPGF1dGhvcj4KKwkJCTxuYW1lPkRhdmlkIE9yY2hhcmQ8L25hbWU+CisJCQk8YWZmaWxpYXRpb24+SUJNIENvcnAuPC9hZmZpbGlhdGlvbj4KKwkJCTxlbWFpbCBocmVmPSJtYWlsdG86ZG9yY2hhcmRAY2EuaWJtLmNvbSI+ZG9yY2hhcmRAY2EuaWJtLmNvbTwvZW1haWw+CisJCTwvYXV0aG9yPgorCQk8YXV0aG9yPgorCQkJPG5hbWU+QmVuIFRyYWZmb3JkPC9uYW1lPgorCQkJPGFmZmlsaWF0aW9uPkludml0ZWQgRXhwZXJ0PC9hZmZpbGlhdGlvbj4KKwkJCTxlbWFpbCBocmVmPSJtYWlsdG86YmVudEBleGVtcGxhcnkubmV0Ij5iZW50QGV4ZW1wbGFyeS5uZXQ8L2VtYWlsPgorCQk8L2F1dGhvcj4KKwkJPCEtLSBJIHN1Z2dlc3Qgd2UgbW92ZSBFdmUgYW5kIFRpbSBkb3duIHRvIHRoZSBBY2tub3dsZWRnZW1lbnRzIHNlY3Rpb24uIFdlCisJCWFsc28gb3VnaHQgdG8gYWRkIEdhYmUgQmVnZWQtRG92IHRoZXJlLCBhcyB3ZWxsLiBiZW50CisJCWhvdyBzaGFsbCB3ZSBjaXRlIFRpbT8gc2pkIFdoYXQgYWJvdXQgd2l0aCBhbiBBY2tub3dsZWRnbWVudHMgc2VjdGlvbj8KKwkJLWVsbSA8QVVUSE9SPiA8TkFNRT5UaW0gQnJheTwvTkFNRT4gPEFGRklMSUFUSU9OPlRleHR1YWxpdHk8L0FGRklMSUFUSU9OPgorCQk8RU1BSUw+dGJyYXlAdGV4dHVhbGl0eS5jb208L0VNQUlMPiA8L0FVVEhPUj4tLT4KKwk8L2F1dGhsaXN0PgorCisJPHN0YXR1cz4KKwkJPHA+VGhpcyBpcyBhIFczQyBXb3JraW5nIERyYWZ0IGZvciByZXZpZXcgYnkgVzNDIG1lbWJlcnMgYW5kIG90aGVyIGludGVyZXN0ZWQgcGFydGllcy4gSXQgaXMgYSBkcmFmdCBkb2N1bWVudCBhbmQgbWF5IGJlIHVwZGF0ZWQsIHJlcGxhY2VkLCBvciBvYnNvbGV0ZWQgYnkgb3RoZXIgZG9jdW1lbnRzIGF0IGFueSB0aW1lLiBJdCBpcyBpbmFwcHJvcHJpYXRlIHRvIHVzZSBXM0MgV29ya2luZyBEcmFmdHMgYXMgcmVmZXJlbmNlIG1hdGVyaWFsIG9yIHRvIGNpdGUgdGhlbSBhcyBvdGhlciB0aGFuICJ3b3JrIGluIHByb2dyZXNzIi4gQSBsaXN0IG9mIGN1cnJlbnQgVzNDIHdvcmtpbmcgZHJhZnRzIGNhbiBiZSBmb3VuZCBhdCA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSIj5odHRwOi8vd3d3LnczLm9yZy9UUjwvbG9jPi48L3A+CisJCTxwPjxlbXBoPk5vdGU6PC9lbXBoPiBTaW5jZSB3b3JraW5nIGRyYWZ0cyBhcmUgc3ViamVjdCB0byBmcmVxdWVudCBjaGFuZ2UsIHlvdSBhcmUgYWR2aXNlZCB0byByZWZlcmVuY2UgdGhlIGFib3ZlIFVSSSwgcmF0aGVyIHRoYW4gdGhlIFVSSXMgZm9yIHdvcmtpbmcgZHJhZnRzIHRoZW1zZWx2ZXMuIFNvbWUgb2YgdGhlIHdvcmsgcmVtYWluaW5nIGlzIGRlc2NyaWJlZCBpbiA8c3BlY3JlZiByZWY9InVuZmluaXNoZWQiLz4uIDwvcD4KKwkJPHA+VGhpcyB3b3JrIGlzIHBhcnQgb2YgdGhlIFczQyBYTUwgQWN0aXZpdHkgKGZvciBjdXJyZW50IHN0YXR1cywgc2VlIDxsb2MgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvTWFya1VwL1NHTUwvQWN0aXZpdHkiPmh0dHA6Ly93d3cudzMub3JnL1hNTC9BY3Rpdml0eSAJCSAgPC9sb2M+KS4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBYUG9pbnRlciBsYW5ndWFnZSB3aGljaCBpcyBleHBlY3RlZCB0byBiZSB1c2VkIHdpdGggWExpbmssIHNlZSA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL01hcmtVcC9TR01ML0FjdGl2aXR5Ij5odHRwOi8vd3d3LnczLm9yZy9UUi9XRC14cHRyPC9sb2M+LgorCQk8L3A+CisJCTxwPlNlZSA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL05PVEUteGxpbmstcHJpbmNpcGxlcyI+aHR0cDovL3d3dy53My5vcmcvVFIvTk9URS14bGluay1wcmluY2lwbGVzIDwvbG9jPiBmb3IgYWRkaXRpb25hbCBiYWNrZ3JvdW5kIG9uIHRoZSBkZXNpZ24gcHJpbmNpcGxlcyBpbmZvcm1pbmcgWExpbmsuPC9wPgorCQk8cD5BbHNvIHNlZSA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL05PVEUteGxpbmstcmVxLyI+aHR0cDovL3d3dy53My5vcmcvVFIvTk9URS14bGluay1yZXEvPC9sb2M+IGZvciB0aGUgWExpbmsgcmVxdWlyZW1lbnRzIHRoYXQgdGhpcyBkb2N1bWVudCBhdHRlbXB0cyB0byBzYXRpc2Z5LjwvcD4KKwk8L3N0YXR1cz4KKworCTxhYnN0cmFjdD4KKwkJPCEtLSBlZGl0ZWQgdGhlIGFic3RyYWN0IGZvciBmdXJ0aGVyIGNsYXJpdHkgLSBiZW50IC0tPgorCQk8cD5UaGlzIHNwZWNpZmljYXRpb24gZGVmaW5lcyBjb25zdHJ1Y3RzIHRoYXQgbWF5IGJlIGluc2VydGVkIGludG8gWE1MIERURHMsIHNjaGVtYXMgYW5kIGRvY3VtZW50IGluc3RhbmNlcyB0byBkZXNjcmliZSBsaW5rcyBiZXR3ZWVuIG9iamVjdHMuIEl0IHVzZXMgWE1MIHN5bnRheCB0byBjcmVhdGUgc3RydWN0dXJlcyB0aGF0IGNhbiBkZXNjcmliZSB0aGUgc2ltcGxlIHVuaWRpcmVjdGlvbmFsIGh5cGVybGlua3Mgb2YgdG9kYXkncyBIVE1MIGFzIHdlbGwgYXMgbW9yZSBzb3BoaXN0aWNhdGVkIGxpbmtzLjwvcD4KKwk8L2Fic3RyYWN0PgorCisJPHB1YnN0bXQ+CisJCTxwPkJ1cmxpbmd0b24sIFNlZWtvbmssIGV0IGFsLjogV29ybGQtV2lkZSBXZWIgQ29uc29ydGl1bSwgWE1MIFdvcmtpbmcgR3JvdXAsIDE5OTguPC9wPgorCTwvcHVic3RtdD4KKworCTxzb3VyY2VkZXNjPgorCQk8cD5DcmVhdGVkIGluIGVsZWN0cm9uaWMgZm9ybS48L3A+CisJPC9zb3VyY2VkZXNjPgorCisJPGxhbmd1c2FnZT4KKwkJPGxhbmd1YWdlIGlkPSJlbiI+RW5nbGlzaDwvbGFuZ3VhZ2U+CisJCTxsYW5ndWFnZSBpZD0iZWJuZiI+RXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybSAoZm9ybWFsIGdyYW1tYXIpPC9sYW5ndWFnZT4KKwk8L2xhbmd1c2FnZT4KKworCTxyZXZpc2lvbmRlc2M+CisJCTxzbGlzdD4KKwkJCTxzaXRlbT4xOTk3LTAxLTE1IDogU2tlbGV0b24gZHJhZnQgYnkgVEI8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTctMDEtMjQgOiBGbGVzaGVkIG91dCBieSBzamQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTctMDQtMDggOiBTdWJzdGFudGl2ZSBkcmFmdDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5Ny0wNi0zMCA6IFB1YmxpYyBkcmFmdDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5Ny0wOC0wMSA6IFB1YmxpYyBkcmFmdDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5Ny0wOC0wNSA6IFByb3NlL29yZ2FuaXphdGlvbiB3b3JrIGJ5IHNqZDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5Ny0xMC0xNDogQ29uZm9ybWFuY2UgYW5kIGRlc2lnbiBwcmluY2lwbGVzOyBhIGJpdCBvZiBjbGVhbnVwIGJ5IGVsbTwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5Ny0xMS0wNzogVXBkYXRlIGZvciBlZGl0b3JpYWwgaXNzdWVzIHBlciBpc3N1ZXMgZG9jLCBieSBzamQuPC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk3LTEyLTAxOiBVcGRhdGUgZm9yIGVkaXRvcmlhbCBpc3N1ZXMgcGVyIGlzc3VlcyBkb2MgaW4gcHJlcGFyYXRpb24gZm9yIEYyRiBtZWV0aW5nLCBieSBzamQuPC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk4LTAxLTEzOiBFZGl0b3JpYWwgY2xlYW51cCwgYWRkaXRpb24gb2YgbmV3IGRlc2lnbiBwcmluY2lwbGVzLCBieSBlbG0uPC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk4LTAyLTI3OiBTcGxpdHRpbmcgb3V0IG9mIFhMaW5rIGFuZCBYUG9pbnRlciwgYnkgZWxtLjwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OC0wMy0wMzogTW92ZWQgbW9zdCBvZiB0aGUgWFBvaW50ZXIgbG9jYXRvciBzdHVmZiBoZXJlLiBlbG08L3NpdGVtPgorCQkJPHNpdGVtPjE5OTktMDQtMjQ6IEVkaXRvcmlhbCByZXdyaXRlcyB0byByZXByZXNlbnQgbmV3IGlkZWFzIG9uIFhMaW5rLCBlc3BlY2lhbGx5IHRoZSBpbmNsdXNpb24gb2YgYXJjcy4gYmVudDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OS0wNS0wNTogUHJvc2Uvb3JnYW5pemF0aW9uIHdvcmsgYnkgZG9yY2hhcmQuIE1vdmVkIG11Y2ggb2YgdGhlIHNlbWFudGljcyBzZWN0aW9uIGFyb3VuZCwgZnJvbTogbG9jYXRvcnMsIGxpbmsgc2VtYW50aWNzLCByZW1vdGUgcmVzb3VyY2Ugc2VtYW50aWNzLCBsb2NhbCByZXNvdXJjZSBzZW1hbnRpY3M7IHRvOiByZXNvdXJjZSBzZW1hbnRpY3MsIGxvY2F0b3JzLCBiZWhhdmlvciBzZW1hbnRpY3MsIGxpbmsgc2VtYW50aWNzLCBhcmMgc2VtYW50aWNzPC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk5LTA1LTEyOiBQcm9zZS9vcmdhbml6YXRpb24gd29yay4gUmUtb3JnYW5pemVkIHNvbWUgb2YgdGhlIHNlY3Rpb25zLCByZW1vdmVkIFhNTCBjb25zdHJ1Y3RzIGZyb20gdGhlIGRvY3VtZW50LCBhZGRlZCBkZXNjcmlwdGl2ZSBwcm9zZSwgZWRpdGVkIGRvY3VtZW50IHRleHQgZm9yIGNsYXJpdHkuIFJld3JvdGUgdGhlIGxpbmsgcmVjb2duaXRpb24gc2VjdGlvbi4gYmVudDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OS0wNS0xNzogRnVydGhlciBwcm9zZSB3b3JrLiBBZGRlZCBub24tbm9ybWF0aXZlIGV4YW1wbGVzLiBDbGFyaWZpZWQgYXJjcy4gYmVudDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OS0wNS0yMzogRWRpdGVkIGZvciBncmFtbWFyIGFuZCBjbGFyaXR5LiBiZW50PC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk5LTA1LTI3OiBGaW5hbCBvbmNlLW92ZXIgYmVmb3JlIHNlbmRpbmcgdG8gZ3JvdXAuIEZpeGVkIHNqZCdzIGVtYWlsIGFkZHJlc3MuIGJlbnQ8L3NpdGVtPgorCQk8L3NsaXN0PgorCTwvcmV2aXNpb25kZXNjPgorPC9oZWFkZXI+CisKKzxib2R5PgorCTxkaXYxPjw/UHViIER0bD8+CisJCTxoZWFkPkludHJvZHVjdGlvbjwvaGVhZD4KKwkJPHA+VGhpcyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgY29uc3RydWN0cyB0aGF0IG1heSBiZSBpbnNlcnRlZCBpbnRvIFhNTCBEVERzLCBzY2hlbWFzLCBhbmQgZG9jdW1lbnQgaW5zdGFuY2VzIHRvIGRlc2NyaWJlIGxpbmtzIGJldHdlZW4gb2JqZWN0cy4gQSA8dGVybXJlZiBkZWY9ImR0LWxpbmsiPmxpbms8L3Rlcm1yZWY+LCBhcyB0aGUgdGVybSBpcyB1c2VkIGhlcmUsIGlzIGFuIGV4cGxpY2l0IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBvciBtb3JlIGRhdGEgb2JqZWN0cyBvciBwb3J0aW9ucyBvZiBkYXRhIG9iamVjdHMuIFRoaXMgc3BlY2lmaWNhdGlvbiBpcyBjb25jZXJuZWQgd2l0aCB0aGUgc3ludGF4IHVzZWQgdG8gYXNzZXJ0IGxpbmsgZXhpc3RlbmNlIGFuZCBkZXNjcmliZSBsaW5rIGNoYXJhY3RlcmlzdGljcy4gSW1wbGljaXQgKHVuYXNzZXJ0ZWQpIHJlbGF0aW9uc2hpcHMsIGZvciBleGFtcGxlIHRoYXQgb2Ygb25lIHdvcmQgdG8gdGhlIG5leHQgb3IgdGhhdCBvZiBhIHdvcmQgaW4gYSB0ZXh0IHRvIGl0cyBlbnRyeSBpbiBhbiBvbi1saW5lIGRpY3Rpb25hcnkgYXJlIG9idmlvdXNseSBpbXBvcnRhbnQsIGJ1dCBvdXRzaWRlIGl0cyBzY29wZS48L3A+CisJCTxwPkxpbmtzIGFyZSBhc3NlcnRlZCBieSA8eHRlcm1yZWYgaHJlZj0iV0QteG1sLWxhbmcuaHRtbCNkdC1lbGVtZW50Ij5lbGVtZW50cyA8L3h0ZXJtcmVmPiBjb250YWluZWQgaW4gPHh0ZXJtcmVmIGhyZWY9IldELXhtbC1sYW5nLmh0bWwjZHQteG1sLWRvYyI+WE1MIGRvY3VtZW50IGluc3RhbmNlczwveHRlcm1yZWY+LiBUaGUgc2ltcGxlc3QgY2FzZSBpcyB2ZXJ5IGxpa2UgYW4gSFRNTCA8Y29kZT5BPC9jb2RlPiBsaW5rLCBhbmQgaGFzIHRoZXNlIGNoYXJhY3RlcmlzdGljczoKKwkJCTx1bGlzdD4KKwkJCQk8aXRlbT48cD5UaGUgbGluayBpcyBleHByZXNzZWQgYXQgb25lIG9mIGl0cyBlbmRzIChzaW1pbGFyIHRvIHRoZSA8Y29kZT5BPC9jb2RlPiBlbGVtZW50IGluIHNvbWUgZG9jdW1lbnQpPC9wPjwvaXRlbT4KKwkJCQk8aXRlbT48cD5Vc2VycyBjYW4gb25seSBpbml0aWF0ZSB0cmF2ZWwgZnJvbSB0aGF0IGVuZCB0byB0aGUgb3RoZXI8L3A+PC9pdGVtPgorCQkJCTxpdGVtPjxwPlRoZSBsaW5rJ3MgZWZmZWN0IG9uIHdpbmRvd3MsIGZyYW1lcywgZ28tYmFjayBsaXN0cywgc3R5bGVzaGVldHMgaW4gdXNlLCBhbmQgc28gb24gaXMgbWFpbmx5IGRldGVybWluZWQgYnkgYnJvd3NlcnMsIG5vdCBieSB0aGUgbGluayBpdHNlbGYuIEZvciBleGFtcGxlLCB0cmF2ZXJhbCBvZiA8Y29kZT5BPC9jb2RlPiBsaW5rcyBub3JtYWxseSByZXBsYWNlcyB0aGUgY3VycmVudCB2aWV3LCBwZXJoYXBzIHdpdGggYSB1c2VyIG9wdGlvbiB0byBvcGVuIGEgbmV3IHdpbmRvdy48L3A+PC9pdGVtPgorCQkJCTxpdGVtPjxwPlRoZSBsaW5rIGdvZXMgdG8gb25seSBvbmUgZGVzdGluYXRpb24gKGFsdGhvdWdoIGEgc2VydmVyIG1heSBoYXZlIGdyZWF0IGZyZWVkb20gaW4gZmluZGluZyBvciBkeW5hbWljYWxseSBjcmVhdGluZyB0aGF0IGRlc3RpbmF0aW9uKS48L3A+PC9pdGVtPgorCQkJPC91bGlzdD4KKwkJPC9wPgorCQk8cD5XaGlsZSB0aGlzIHNldCBvZiBjaGFyYWN0ZXJpc3RpY3MgaXMgYWxyZWFkeSB2ZXJ5IHBvd2VyZnVsIGFuZCBvYnZpb3VzbHkgaGFzIHByb3ZlbiBpdHNlbGYgaGlnaGx5IHVzZWZ1bCBhbmQgZWZmZWN0aXZlLCBlYWNoIG9mIHRoZXNlIGFzc3VtcHRpb25zIGFsc28gbGltaXRzIHRoZSByYW5nZSBvZiBoeXBlcnRleHQgZnVuY3Rpb25hbGl0eS4gVGhlIGxpbmtpbmcgbW9kZWwgZGVmaW5lZCBoZXJlIHByb3ZpZGVzIHdheXMgdG8gY3JlYXRlIGxpbmtzIHRoYXQgZ28gYmV5b25kIGVhY2ggb2YgdGhlc2Ugc3BlY2lmaWMgY2hhcmFjdGVyaXN0aWNzLCB0aHVzIHByb3ZpZGluZyBmZWF0dXJlcyBwcmV2aW91c2x5IGF2YWlsYWJsZSBtb3N0bHkgaW4gZGVkaWNhdGVkIGh5cGVybWVkaWEgc3lzdGVtcy4KKwkJPC9wPgorCis8ZGl2Mj4KKwk8aGVhZD5PcmlnaW4gYW5kIEdvYWxzPC9oZWFkPgorCTxwPkZvbGxvd2luZyBpcyBhIHN1bW1hcnkgb2YgdGhlIGRlc2lnbiBwcmluY2lwbGVzIGdvdmVybmluZyBYTGluazoKKwkJPG9saXN0PgorCQkJPGl0ZW0+PHA+WExpbmsgbXVzdCBiZSBzdHJhaWdodGZvcndhcmRseSB1c2FibGUgb3ZlciB0aGUgSW50ZXJuZXQuIDwvcD48L2l0ZW0+CisJCQk8aXRlbT48cD5YTGluayBtdXN0IGJlIHVzYWJsZSBieSBhIHdpZGUgdmFyaWV0eSBvZiBsaW5rIHVzYWdlIGRvbWFpbnMgYW5kIGNsYXNzZXMgb2YgbGlua2luZyBhcHBsaWNhdGlvbiBzb2Z0d2FyZS48L3A+PC9pdGVtPgorCQkJPGl0ZW0+PHA+WExpbmsgbXVzdCBzdXBwb3J0IEhUTUwgNC4wIGxpbmtpbmcgY29uc3RydWN0cy48L3A+PC9pdGVtPgorCQkJPGl0ZW0+PHA+VGhlIFhMaW5rIGV4cHJlc3Npb24gbGFuZ3VhZ2UgbXVzdCBiZSBYTUwuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlRoZSBYTGluayBkZXNpZ24gbXVzdCBiZSBmb3JtYWwsIGNvbmNpc2UsIGFuZCBpbGx1c3RyYXRpdmUuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlhMaW5rcyBtdXN0IGJlIGh1bWFuLXJlYWRhYmxlIGFuZCBodW1hbi13cml0YWJsZS48L3A+PC9pdGVtPgorCQkJPGl0ZW0+PHA+WExpbmtzIG1heSByZXNpZGUgd2l0aGluIG9yIG91dHNpZGUgdGhlIGRvY3VtZW50cyBpbiB3aGljaCB0aGUKKwkJCXBhcnRpY2lwYXRpbmcgcmVzb3VyY2VzIHJlc2lkZS4gPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlhMaW5rIG11c3QgcmVwcmVzZW50IHRoZSBhYnN0cmFjdCBzdHJ1Y3R1cmUgYW5kIHNpZ25pZmljYW5jZSBvZiBsaW5rcy48L3A+PC9pdGVtPgorCQkJPGl0ZW0+PHA+WExpbmsgbXVzdCBiZSBmZWFzaWJsZSB0byBpbXBsZW1lbnQuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlhMaW5rIG11c3QgYmUgaW5mb3JtZWQgYnkga25vd2xlZGdlIG9mIGVzdGFibGlzaGVkIGh5cGVybWVkaWEgc3lzdGVtcyBhbmQgc3RhbmRhcmRzLjwvcD48L2l0ZW0+CisJCTwvb2xpc3Q+CisJPC9wPgorPC9kaXYyPgorPCEtLUNoYW5nZWQgdGhlIGxpc3Qgb2YgcmVxdWlyZW1lbnRzIHRvIHJlZmxlY3QgY3VycmVudCBYTGluayByZXF1aXJlbWVudHMKK2RvY3VtZW50LiBiZW50LS0+CisKKzxkaXYyPgorCTxoZWFkPlJlbGF0aW9uc2hpcCB0byBFeGlzdGluZyBTdGFuZGFyZHM8L2hlYWQ+CisJPHA+VGhyZWUgc3RhbmRhcmRzIGhhdmUgYmVlbiBlc3BlY2lhbGx5IGluZmx1ZW50aWFsOgorCQk8dWxpc3Q+CisJCQk8aXRlbT48cD48ZW1waD5IVE1MOjwvZW1waD4gRGVmaW5lcyBzZXZlcmFsIFNHTUwgZWxlbWVudCB0eXBlcyB0aGF0IHJlcHJlc2VudCBsaW5rcy48L3A+PC9pdGVtPgorCQkJPGl0ZW0+PHA+PGVtcGg+SHlUaW1lOjwvZW1waD4gRGVmaW5lcyBpbmxpbmUgYW5kIG91dC1vZi1saW5lIGxpbmsgc3RydWN0dXJlcyBhbmQgc29tZSBzZW1hbnRpYyBmZWF0dXJlcywgaW5jbHVkaW5nIHRyYXZlcnNhbCBjb250cm9sIGFuZCBwcmVzZW50YXRpb24gb2Ygb2JqZWN0cy4gPCEtLUNoYW5nZWQgZnJvbSAicGxhY2VtZW50IG9mIG9iamVjdHMgaW50byBhIGRpc3BsYXkgb3Igb3RoZXIgc3BhY2UiIC1lbG0tLT4KKwkJCTwvcD48L2l0ZW0+CisJCQk8aXRlbT48cD48ZW1waD5UZXh0IEVuY29kaW5nIEluaXRpYXRpdmUgR3VpZGVsaW5lcyAoVEVJIFAzKTo8L2VtcGg+IFByb3ZpZGVzIHN0cnVjdHVyZXMgZm9yIGNyZWF0aW5nIGxpbmtzLCBhZ2dyZWdhdGUgb2JqZWN0cywgYW5kIGxpbmsgY29sbGVjdGlvbnMgb3V0IG9mIHRoZW0uPC9wPjwvaXRlbT4KKwkJPC91bGlzdD4KKwk8L3A+CisJPHA+TWFueSBvdGhlciBsaW5raW5nIHN5c3RlbXMgaGF2ZSBhbHNvIGluZm9ybWVkIHRoaXMgZGVzaWduLCBlc3BlY2lhbGx5IERleHRlciwgRlJFU1MsIE1pY3JvQ29zbSwgYW5kIEludGVyTWVkaWEuPC9wPgorPC9kaXYyPgorCis8ZGl2Mj4KKwk8aGVhZD5UZXJtaW5vbG9neTwvaGVhZD4KKwk8cD5UaGUgZm9sbG93aW5nIGJhc2ljIHRlcm1zIGFwcGx5IGluIHRoaXMgZG9jdW1lbnQuIDwhLS08SU1HCisJU1JDPSJsb2NhbDovLy4vbGlua2RpYWcuZ2lmIj4oZmlndXJlIHRvIGJlIGluc2VydGVkKS0tPgorCQk8Z2xpc3Q+CisJCQk8Z2l0ZW0+CisJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LWFyYyIgdGVybT0iQXJjIj5hcmM8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCTxkZWY+PHA+QSBzeW1ib2xpYyByZXByZXNlbnRhdGlvbiBvZiB0cmF2ZXJzYWwgYmVoYXZpb3IgaW4gbGlua3MsIGVzcGVjaWFsbHkgdGhlIGRpcmVjdGlvbiwgY29udGV4dCBhbmQgdGltaW5nIG9mIHRyYXZlcnNhbC48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtZWx0cmVlIiB0ZXJtPSJFbGVtZW50IFRyZWUiPmVsZW1lbnQgdHJlZTwvdGVybWRlZj48L2xhYmVsPgorCQkJCTxkZWY+PHA+QSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVsZXZhbnQgc3RydWN0dXJlIHNwZWNpZmllZCBieSB0aGUgdGFncyBhbmQgYXR0cmlidXRlcyBpbiBhbiBYTUwgZG9jdW1lbnQsIGJhc2VkIG9uICJncm92ZXMiIGFzIGRlZmluZWQgaW4gdGhlIElTTyBEU1NTTCBzdGFuZGFyZC4gPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LWlubGluZSIgdGVybT0iSW4tTGluZSBMaW5rIj5pbmxpbmUgbGluazwvdGVybWRlZj48L2xhYmVsPgorCQkJCTxkZWY+PHA+QWJzdHJhY3RseSwgYSA8dGVybXJlZiBkZWY9ImR0LWxpbmsiPmxpbms8L3Rlcm1yZWY+IHdoaWNoIHNlcnZlcyBhcyBvbmUgb2YgaXRzIG93biA8dGVybXJlZiBkZWY9ImR0LXJlc291cmNlIj5yZXNvdXJjZXM8L3Rlcm1yZWY+LiBDb25jcmV0ZWx5LCBhIGxpbmsgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhlIDx0ZXJtcmVmIGRlZj0iZHQtbGlua2VsIj5saW5raW5nCWVsZW1lbnQ8L3Rlcm1yZWY+IHNlcnZlcyBhcyBhIDx0ZXJtcmVmIGRlZj0iZHQtcGFydGljaXAtcmVzb3VyY2UiPnBhcnRpY2lwYXRpbmcgcmVzb3VyY2U8L3Rlcm1yZWY+LgorCQkJCUhUTUwgPGNvZGU+QTwvY29kZT4sIEh5VGltZSA8Y29kZT5jbGluazwvY29kZT4sIGFuZCBURUkJPGNvZGU+WFJFRjwvY29kZT4KKwkJCQlhcmUgYWxsIGlubGluZSBsaW5rcy48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtbGluayIgdGVybT0iTGluayI+bGluazwvdGVybWRlZj48L2xhYmVsPgorCQkJCTxkZWY+PHA+QW4gZXhwbGljaXQgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIG9yIG1vcmUgZGF0YSBvYmplY3RzIG9yIHBvcnRpb25zIG9mIGRhdGEgb2JqZWN0cy48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtbGlua2VsIiB0ZXJtPSJMaW5raW5nIEVsZW1lbnQiPmxpbmtpbmcgZWxlbWVudCA8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkFuIDx4dGVybXJlZiBocmVmPSJXRC14bWwtbGFuZy5odG1sI2R0LWVsZW1lbnQiPmVsZW1lbnQ8L3h0ZXJtcmVmPiB0aGF0IGFzc2VydHMgdGhlIGV4aXN0ZW5jZSBhbmQgZGVzY3JpYmVzIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSA8dGVybXJlZiBkZWY9ImR0LWxpbmsiPiBsaW5rPC90ZXJtcmVmPi48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtbG9jYWwtcmVzb3VyY2UiIHRlcm09IkxvY2FsIFJlc291cmNlIj5sb2NhbCByZXNvdXJjZTwvdGVybWRlZj48L2xhYmVsPgorCQkJCTxkZWY+PHA+VGhlIGNvbnRlbnQgb2YgYW4gPHRlcm1yZWYgZGVmPSJkdC1pbmxpbmUiPmlubGluZTwvdGVybXJlZj5saW5raW5nIGVsZW1lbnQuIE5vdGUgdGhhdCB0aGUgY29udGVudCBvZiB0aGUgbGlua2luZyBlbGVtZW50IGNvdWxkIGJlIGV4cGxpY2l0bHkgcG9pbnRlZCB0byBieSBtZWFucyBvZiBhIHJlZ3VsYXIgPHRlcm1yZWYgZGVmPSJkdC1sb2NhdG9yIj5sb2NhdG9yPC90ZXJtcmVmPiBpbiB0aGUgc2FtZSBsaW5raW5nIGVsZW1lbnQsIGluIHdoaWNoIGNhc2UgdGhlIHJlc291cmNlIGlzIGNvbnNpZGVyZWQgPHRlcm1yZWYgZGVmPSJkdC1yZW1vdGUtcmVzb3VyY2UiPiByZW1vdGU8L3Rlcm1yZWY+LCBub3QgbG9jYWwuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LWxvY2F0b3IiIHRlcm09IkxvY2F0b3IiPmxvY2F0b3I8L3Rlcm1kZWY+IDwvbGFiZWw+CisJCQkJPGRlZj48cD5EYXRhLCBwcm92aWRlZCBhcyBwYXJ0IG9mIGEgbGluaywgd2hpY2ggaWRlbnRpZmllcyBhCisJCQkJPHRlcm1yZWYgZGVmPSJkdC1yZXNvdXJjZSI+cmVzb3VyY2U8L3Rlcm1yZWY+LjwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1tdWx0aWRpciIgdGVybT0iTXVsdGktRGlyZWN0aW9uYWwgTGluayI+bXVsdGlkaXJlY3Rpb25hbCBsaW5rPC90ZXJtZGVmPjwvbGFiZWw+CisJCQkJPGRlZj48cD5BIDx0ZXJtcmVmIGRlZj0iZHQtbGluayI+bGluazwvdGVybXJlZj4gd2hvc2UgPHRlcm1yZWYgZGVmPSJkdC10cmF2ZXJzYWwiPiB0cmF2ZXJzYWw8L3Rlcm1yZWY+IGNhbiBiZSBpbml0aWF0ZWQgZnJvbSBtb3JlIHRoYW4gb25lIG9mIGl0cyA8dGVybXJlZiBkZWY9ImR0LXBhcnRpY2lwLXJlc291cmNlIj4gcGFydGljaXBhdGluZyByZXNvdXJjZXM8L3Rlcm1yZWY+LiBOb3RlIHRoYXQgYmVpbmcgYWJsZSB0byAiZ28gYmFjayIgYWZ0ZXIgZm9sbG93aW5nIGEgb25lLWRpcmVjdGlvbmFsIGxpbmsgZG9lcyBub3QgbWFrZSB0aGUgbGluayBtdWx0aWRpcmVjdGlvbmFsLjwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1vdXRvZmxpbmUiIHRlcm09Ik91dC1vZi1saW5lIExpbmsiPm91dC1vZi1saW5lIGxpbms8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkEgPHRlcm1yZWYgZGVmPSJkdC1saW5rIj5saW5rPC90ZXJtcmVmPiB3aG9zZSBjb250ZW50IGRvZXMgbm90IHNlcnZlIGFzIG9uZSBvZiB0aGUgbGluaydzIDx0ZXJtcmVmIGRlZj0iZHQtcGFydGljaXAtcmVzb3VyY2UiPnBhcnRpY2lwYXRpbmcgcmVzb3VyY2VzIDwvdGVybXJlZj4uIFN1Y2ggbGlua3MgCQkJCQkJcHJlc3VwcG9zZSBhIG5vdGlvbiBsaWtlIDx0ZXJtcmVmIGRlZj0iZHQteGxnIj5leHRlbmRlZCBsaW5rIGdyb3VwczwvdGVybXJlZj4sIHdoaWNoIGluc3RydWN0IGFwcGxpY2F0aW9uIHNvZnR3YXJlIHdoZXJlIHRvIGxvb2sgZm9yIGxpbmtzLiBPdXQtb2YtbGluZSBsaW5rcyBhcmUgZ2VuZXJhbGx5IHJlcXVpcmVkIGZvciBzdXBwb3J0aW5nIG11bHRpZGlyZWN0aW9uYWwgPHRlcm1yZWYgZGVmPSJkdC10cmF2ZXJzYWwiPnRyYXZlcnNhbDwvdGVybXJlZj4gYW5kIGZvciBhbGxvd2luZyByZWFkLW9ubHkgcmVzb3VyY2VzIHRvIGhhdmUgb3V0Z29pbmcgbGlua3MuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LXBhcnNlZHEiIHRlcm09IlBhcnNlZCI+cGFyc2VkPC90ZXJtZGVmPjwvbGFiZWw+IDxkZWY+PHA+SW4gdGhlIGNvbnRleHQgb2YgbGluayBiZWhhdmlvciwgYSBwYXJzZWQgbGluayBpcyBhbnkgbGluawkJCXdob3NlIGNvbnRlbnQgaXMgdHJhbnNjbHVkZWQgaW50byB0aGUgZG9jdW1lbnQgd2hlcmUgdGhlIGxpbmsgb3JpZ2luYXRlZC4gVGhlCXVzZSBvZiB0aGUgdGVybSAicGFyc2VkIiBkaXJlY3RseSByZWZlcnMgdG8gdGhlIGNvbmNlcHQgaW4gWE1MIG9mIGEKKwkJCQlwYXJzZWQgZW50aXR5LjwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1wYXJ0aWNpcC1yZXNvdXJjZSIgdGVybT0iUGFydGljaXBhdGluZyBSZXNvdXJjZSI+IHBhcnRpY2lwYXRpbmcgcmVzb3VyY2U8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkEgPHRlcm1yZWYgZGVmPSJkdC1yZXNvdXJjZSI+cmVzb3VyY2U8L3Rlcm1yZWY+IHRoYXQgYmVsb25ncyB0byBhIGxpbmsuIEFsbCByZXNvdXJjZXMgYXJlIHBvdGVudGlhbCBjb250cmlidXRvcnMgdG8gYSBsaW5rOyBwYXJ0aWNpcGF0aW5nCXJlc291cmNlcyBhcmUgdGhlIGFjdHVhbCBjb250cmlidXRvcnMgdG8gYSBwYXJ0aWN1bGFyIGxpbmsuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LXJlbW90ZS1yZXNvdXJjZSIgdGVybT0iUmVtb3RlIFJlc291cmNlIj5yZW1vdGUgcmVzb3VyY2U8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkFueSBwYXJ0aWNpcGF0aW5nIHJlc291cmNlIG9mIGEgbGluayB0aGF0IGlzIHBvaW50ZWQgdG8gd2l0aCBhIGxvY2F0b3IuIDwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1yZXNvdXJjZSIgdGVybT0iUmVzb3VyY2UiPnJlc291cmNlPC90ZXJtZGVmPjwvbGFiZWw+CisJCQkJPGRlZj48cD5JbiB0aGUgYWJzdHJhY3Qgc2Vuc2UsIGFuIGFkZHJlc3NhYmxlIHVuaXQgb2YgaW5mb3JtYXRpb24gb3Igc2VydmljZSB0aGF0IGlzIHBhcnRpY2lwYXRpbmcgaW4gYSA8dGVybXJlZiBkZWY9ImR0LWxpbmsiPmxpbms8L3Rlcm1yZWY+LiBFeGFtcGxlcyBpbmNsdWRlIGZpbGVzLCBpbWFnZXMsIGRvY3VtZW50cywgcHJvZ3JhbXMsIGFuZCBxdWVyeSByZXN1bHRzLiBDb25jcmV0ZWx5LCBhbnl0aGluZyByZWFjaGFibGUgYnkgdGhlIHVzZSBvZiBhIDx0ZXJtcmVmIGRlZj0iZHQtbG9jYXRvciI+bG9jYXRvcjwvdGVybXJlZj4gaW4gc29tZSA8dGVybXJlZiBkZWY9ImR0LWxpbmtlbCI+bGlua2luZwllbGVtZW50PC90ZXJtcmVmPi4gTm90ZSB0aGF0IHRoaXMgdGVybSBhbmQgaXRzIGRlZmluaXRpb24gYXJlIHRha2VuIGZyb20gdGhlIGJhc2ljIHNwZWNpZmljYXRpb25zIGdvdmVybmluZyB0aGUgV29ybGQgV2lkZSBXZWIuIDwhLS1Kb2VsIG5vdGVzOiBuZWVkIGxpbmsgaGVyZS4gYmVudCBhc2tzOiBBIGxpbms/LS0+CisJCQkJIDwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1zdWJyZXNvdXJjZSIgdGVybT0ic3ViLVJlc291cmNlIj5zdWItcmVzb3VyY2U8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkEgcG9ydGlvbiBvZiBhIHJlc291cmNlLCBwb2ludGVkIHRvIGFzIHRoZSBwcmVjaXNlCWRlc3RpbmF0aW9uIG9mIGEgbGluay4gQXMgb25lIGV4YW1wbGUsIGEgbGluayBtaWdodCBzcGVjaWZ5IHRoYXQgYW4gZW50aXJlCWRvY3VtZW50IGJlIHJldHJpZXZlZCBhbmQgZGlzcGxheWVkLCBidXQgdGhhdCBzb21lIHNwZWNpZmljIHBhcnQocykgb2YgaXQgaXMgdGhlIHNwZWNpZmljIGxpbmtlZCBkYXRhLCB0byBiZSB0cmVhdGVkIGluIGFuIGFwcGxpY2F0aW9uLWFwcHJvcHJpYXRlIG1hbm5lciBzdWNoIGFzIGluZGljYXRpb24gYnkgaGlnaGxpZ2h0aW5nLCBzY3JvbGxpbmcsIGV0Yy48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtdHJhdmVyc2FsIiB0ZXJtPSJUcmF2ZXJzYWwiPnRyYXZlcnNhbDwvdGVybWRlZj48L2xhYmVsPgorCQkJCTxkZWY+PHA+VGhlIGFjdGlvbiBvZiB1c2luZyBhIDx0ZXJtcmVmIGRlZj0iZHQtbGluayI+bGluazwvdGVybXJlZj47IHRoYXQgaXMsIG9mIGFjY2Vzc2luZyBhIDx0ZXJtcmVmIGRlZj0iZHQtcmVzb3VyY2UiPnJlc291cmNlPC90ZXJtcmVmPi4gVHJhdmVyc2FsIG1heSBiZSBpbml0aWF0ZWQgYnkgYSB1c2VyIGFjdGlvbiAoZm9yIGV4YW1wbGUsIGNsaWNraW5nIG9uIHRoZSBkaXNwbGF5ZWQgY29udGVudCBvZiBhIDx0ZXJtcmVmIGRlZj0iZHQtbGlua2VsIj5saW5raW5nIGVsZW1lbnQ8L3Rlcm1yZWY+KSBvciBvY2N1ciB1bmRlciBwcm9ncmFtIGNvbnRyb2wuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJPC9nbGlzdD4KKwk8L3A+Cis8L2RpdjI+CisKKzxkaXYyPgorCTxoZWFkPk5vdGF0aW9uPC9oZWFkPgorCTxwPlRoZSBmb3JtYWwgZ3JhbW1hciBmb3IgPHRlcm1yZWYgZGVmPSJkdC1sb2NhdG9yIj5sb2NhdG9yczwvdGVybXJlZj4gaXMgZ2l2ZW4gdXNpbmcgYSBzaW1wbGUgRXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybSAoRUJORikgbG9jYXRpb24sIGFzIGRlc2NyaWJlZCBpbiA8eHNwZWNyZWYgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNzZWMtbm90YXRpb24iPnRoZSBYTUwgc3BlY2lmaWNhdGlvbjwveHNwZWNyZWY+LjwvcD4KKwk8IS0tIGZpeGVkIGxpbmsgdG8gWE1MIHNwZWMgLSBiZW50IC0tPgorPC9kaXYyPgorPC9kaXYxPgorCis8ZGl2MSBpZD0iYWRkcmVzc2luZyI+PD9QdWIgRHRsPz4KKwk8aGVhZD5Mb2NhdG9yIFN5bnRheDwvaGVhZD4KKwk8cD5UaGUgbG9jYXRvciBmb3IgYSA8dGVybXJlZiBkZWY9ImR0LXJlc291cmNlIj5yZXNvdXJjZTwvdGVybXJlZj4gaXMgdHlwaWNhbGx5IHByb3ZpZGVkIGJ5IG1lYW5zIG9mIGEgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyLCBvciBVUkkuIFhQb2ludGVycyBjYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBVUkkgc3RydWN0dXJlLCBhcyBmcmFnbWVudCBpZGVudGlmaWVycywgdG8gc3BlY2lmeSBhIG1vcmUgcHJlY2lzZSBzdWItcmVzb3VyY2UuIDwvcD4KKwk8IS0tIFJlbW92ZWQgdGhlIGRpc2N1c3Npb24gb2YgcXVlcmllcyBmcm9tIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIGR1ZSB0byBjb250ZW50aW9uIHdpdGhpbiB0aGUgV0cuIGJlbnQgLS0+CisJPHA+QSBsb2NhdG9yIGdlbmVyYWxseSBjb250YWlucyBhIFVSSSwgYXMgZGVzY3JpYmVkIGluIElFVEYgUkZDcyA8YmlicmVmIHJlZj0icmZjMTczOCIvPiBhbmQgPGJpYnJlZiByZWY9InJmYzE4MDgiLz4uIEFzIHRoZXNlIFJGQ3Mgc3RhdGUsIHRoZSBVUkkgbWF5IGluY2x1ZGUgYSB0cmFpbGluZyA8ZW1waD5xdWVyeTwvZW1waD4gKG1hcmtlZCBieSBhIGxlYWRpbmcgIjxjb2RlPj88L2NvZGU+IiksIGFuZCBiZSBmb2xsb3dlZCBieSBhICI8Y29kZT4jPC9jb2RlPiIgYW5kIGEgPGVtcGg+ZnJhZ21lbnQgaWRlbnRpZmllcjwvZW1waD4sIHdpdGggdGhlIHF1ZXJ5IGludGVycHJldGVkIGJ5IHRoZSBob3N0IHByb3ZpZGluZyB0aGUgaW5kaWNhdGVkIHJlc291cmNlLCBhbmQgdGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyIGRlcGVuZGVudCBvbiB0aGUgZGF0YSB0eXBlIG9mIHRoZSBpbmRpY2F0ZWQgcmVzb3VyY2UuPC9wPgorCTwhLS1JcyB0aGVyZSBzb21lIHJlc3RyaWN0aW9uIG9uIFVSTnMgaGF2aW5nIHF1ZXJpZXMgYW5kL29yIGZyYWdtZW50IGlkZW50aWZpZXJzPyAgU2luY2UgdGhlc2UgUkZDcyBkb24ndCBtZW50aW9uIFVSSXMgZXhwbGljaXRseSwgc2hvdWxkIHRoZSB3b3JkaW5nIGhlcmUgbGVhZCBmcm9tIFVSTHMgdG8gVVJJcyBtb3JlIGV4cGxpY2l0bHk/IC1lbG0tLT4KKwk8cD5JbiBvcmRlciB0byBsb2NhdGUgWE1MIGRvY3VtZW50cyBhbmQgcG9ydGlvbnMgb2YgZG9jdW1lbnRzLCBhIGxvY2F0b3IgdmFsdWUgbWF5IGNvbnRhaW4gZWl0aGVyIGEgPHh0ZXJtcmVmIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0FkZHJlc3NpbmcvcmZjMTczOC50eHQiPiBVUkk8L3h0ZXJtcmVmPiBvciBhIGZyYWdtZW50IGlkZW50aWZpZXIsIG9yIGJvdGguIEFueSBmcmFnbWVudCBpZGVudGlmaWVyIGZvciBwb2ludGluZyBpbnRvIFhNTCBtdXN0IGJlIGFuIDx4dGVybXJlZiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14cHRyI2R0LXhwb2ludGVyIj4gWFBvaW50ZXI8L3h0ZXJtcmVmPi48L3A+CisJPHA+U3BlY2lhbCBzeW50YXggbWF5IGJlIHVzZWQgdG8gcmVxdWVzdCB0aGUgdXNlIG9mIHBhcnRpY3VsYXIgcHJvY2Vzc2luZyBtb2RlbHMgaW4gYWNjZXNzaW5nIHRoZSBsb2NhdG9yJ3MgcmVzb3VyY2UuIFRoaXMgaXMgZGVzaWduZWQgdG8gcmVmbGVjdCB0aGUgcmVhbGl0aWVzIG9mIG5ldHdvcmsgb3BlcmF0aW9uLCB3aGVyZSBpdCBtYXkgb3IgbWF5IG5vdCBiZSBkZXNpcmFibGUgdG8gZXhlcmNpc2UgZmluZSBjb250cm9sIG92ZXIgdGhlIGRpc3RyaWJ1dGlvbiBvZiB3b3JrIGJldHdlZW4gbG9jYWwgYW5kIHJlbW90ZSBwcm9jZXNzb3JzLiAKKwkJPHNjcmFwIGlkPSJsb2NhdG9yIiBsYW5nPSJlYm5mIj4KKwkJCTxoZWFkPkxvY2F0b3I8L2hlYWQ+CisJCQk8cHJvZCBpZD0ibnQtbG9jYXRvciI+CisJCQkJPGxocz5Mb2NhdG9yPC9saHM+CisJCQkJPHJocz48bnQgZGVmPSJudC11cmkiPlVSSTwvbnQ+PC9yaHM+CisJCQkJPHJocz58IDxudCBkZWY9Im50LWNvbm5lY3RvciI+Q29ubmVjdG9yPC9udD4gKDx4bnQgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvV0QteHB0ciI+WFBvaW50ZXI8L3hudD4gfCA8eG50IGhyZWY9IldELXhtbC1sYW5nLmh0bWwjTlQtTmFtZSI+TmFtZTwveG50Pik8L3Jocz4KKwkJCQk8cmhzPnwgPG50IGRlZj0ibnQtdXJpIj5VUkk8L250PiA8bnQgZGVmPSJudC1jb25uZWN0b3IiPkNvbm5lY3RvcjwvbnQ+ICg8eG50IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXhwdHIiPlhQb2ludGVyPC94bnQ+IHwgPHhudCBocmVmPSJXRC14bWwtbGFuZy5odG1sI05ULU5hbWUiPk5hbWU8L3hudD4pPC9yaHM+CisJCQk8L3Byb2Q+CisJCQk8cHJvZCBpZD0ibnQtY29ubmVjdG9yIj4KKwkJCQk8bGhzPkNvbm5lY3RvcjwvbGhzPjxyaHM+JyMnIHwgJ3wnPC9yaHM+CisJCQk8L3Byb2Q+CisJCQk8cHJvZCBpZD0ibnQtdXJpIj4KKwkJCQk8bGhzPlVSSTwvbGhzPjxyaHM+PHhudCBocmVmPSJXRC14bWwtbGFuZy5odG1sI05ULVVSTGNoYXIiPlVSSWNoYXIqPC94bnQ+PC9yaHM+CisJCQk8L3Byb2Q+CisJCTwvc2NyYXA+CisJPC9wPgorCTxwPjx0ZXJtZGVmIGlkPSJkdC1kZXNpZ25hdGVkIiB0ZXJtPSJEZXNpZ25hdGVkIFJlc291cmNlIj5JbiB0aGlzIGRpc2N1c3Npb24sIHRoZSB0ZXJtIDx0ZXJtPmRlc2lnbmF0ZWQgcmVzb3VyY2U8L3Rlcm0+IHJlZmVycyB0byB0aGUgcmVzb3VyY2Ugd2hpY2ggYW4gZW50aXJlIGxvY2F0b3Igc2VydmVzIHRvIGxvY2F0ZS48L3Rlcm1kZWY+IFRoZSBmb2xsb3dpbmcgcnVsZXMgYXBwbHk6CisJCTx1bGlzdD4KKwkJCTxpdGVtPgorCQkJCTxwPjx0ZXJtZGVmIGlkPSJkdC1jb250YWluaW5nLXJlc291cmNlIiB0ZXJtPSJDb250YWluaW5nIFJlc291cmNlIj4JCSAgVGhlIFVSSSwgaWYgcHJvdmlkZWQsIGxvY2F0ZXMgYSByZXNvdXJjZSBjYWxsZWQgdGhlIDx0ZXJtPmNvbnRhaW5pbmcgcmVzb3VyY2U8L3Rlcm0+LjwvdGVybWRlZj48L3A+CisJCQk8L2l0ZW0+CisJCQk8aXRlbT4KKwkJCQk8cD5JZiB0aGUgVVJJIGlzIG5vdCBwcm92aWRlZCwgdGhlIGNvbnRhaW5pbmcgcmVzb3VyY2UgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIGxpbmtpbmcgZWxlbWVudCBpcyBjb250YWluZWQuIAorCQkJCTwvcD48L2l0ZW0+CisJCQk8aXRlbT4KKwkJCQk8cD48dGVybWRlZiBpZD0iZHQtc3ViLXJlc291cmNlIiB0ZXJtPSJTdWItUmVzb3VyY2UiPklmIGFuIFhQb2ludGVyCQkJCSAgaXMgcHJvdmlkZWQsIHRoZSBkZXNpZ25hdGVkIHJlc291cmNlIGlzIGEgPHRlcm0+c3ViLXJlc291cmNlPC90ZXJtPgorCQkJCW9mIHRoZSBjb250YWluaW5nIHJlc291cmNlOyBvdGhlcndpc2UgdGhlIGRlc2lnbmF0ZWQgcmVzb3VyY2UgaXMgdGhlCisJCQkJY29udGFpbmluZyByZXNvdXJjZS48L3Rlcm1kZWY+PC9wPgorCQkJPC9pdGVtPgorCQkJPCEtLUlzIHRoaXMgbm93IGluY29ycmVjdCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgc3dpdGNoIGZyb20gaGVyZSgpIHRvIG9yaWdpbigpPyAtZWxtIAorCQkJT3ksIHllcywgaSB0aGluayBzby4gaXQgd2lsbCByZXF1aXJlIHNvbWUgZnVuIHdvcmRpbmcsIHRob3VnaCwgc28gaSBoYXZlbid0IGZpeGVkIGl0IHlldCBoZXJlIC1zamQtLT4KKwkJCTxpdGVtPgorCQkJCTxwPklmIHRoZSA8bnQgZGVmPSJudC1jb25uZWN0b3IiPkNvbm5lY3RvcjwvbnQ+IGlzIGZvbGxvd2VkIGRpcmVjdGx5IGJ5IGEgPHhudCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI05ULU5hbWUiPk5hbWU8L3hudD4sIHRoZSA8eG50IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjTlQtTmFtZSI+TmFtZTwveG50PiBpcyBzaG9ydGhhbmQgZm9yIHRoZSBYUG9pbnRlciI8Y29kZT5pZChOYW1lKTwvY29kZT4iOyB0aGF0IGlzLCB0aGUgc3ViLXJlc291cmNlIGlzIHRoZSBlbGVtZW50IGluIHRoZSBjb250YWluaW5nIHJlc291cmNlIHRoYXQgaGFzIGFuIFhNTCA8eHRlcm1yZWYgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNzZWMtYXR0cnR5cGVzIj5JRCBhdHRyaWJ1dGU8L3h0ZXJtcmVmPiB3aG9zZSB2YWx1ZSA8eHRlcm1yZWYgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNkdC1tYXRjaCI+bWF0Y2hlczwveHRlcm1yZWY+IHRoZSAJCQkJICA8eG50IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjTlQtTmFtZSI+TmFtZTwveG50Pi4gVGhpcyBzaG9ydGhhbmQgaXMgdG8gZW5jb3VyYWdlIHVzZSBvZiB0aGUgcm9idXN0IDxjb2RlPmlkPC9jb2RlPiBhZGRyZXNzaW5nIG1vZGUuPC9wPgorCQkJPC9pdGVtPgorCQkJPCEtLSBmaXhlZCBsaW5rcyB0byB0aGUgWE1MIHJlY29tbWVuZGF0aW9uIC0gYmVudCAtLT4KKwkJCTxpdGVtPgorCQkJCTxwPklmIHRoZSBjb25uZWN0b3IgaXMgIjxjb2RlPiM8L2NvZGU+IiwgdGhpcyBzaWduYWxzIGFuIGludGVudCB0aGF0IHRoZSBjb250YWluaW5nIHJlc291cmNlIGlzIHRvIGJlIGZldGNoZWQgYXMgYSB3aG9sZSBmcm9tIHRoZSBob3N0IHRoYXQgcHJvdmlkZXMgaXQsIGFuZCB0aGF0IHRoZSBYUG9pbnRlciBwcm9jZXNzaW5nIHRvIGV4dHJhY3QgdGhlIHN1Yi1yZXNvdXJjZQorCQkJCWlzIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUgY2xpZW50LCB0aGF0IGlzIHRvIHNheSBvbiB0aGUgc2FtZSBzeXN0ZW0gd2hlcmUgdGhlIGxpbmtpbmcgZWxlbWVudCBpcyByZWNvZ25pemVkIGFuZCBwcm9jZXNzZWQuPC9wPgorCQkJPC9pdGVtPgorCQkJPGl0ZW0+CisJCQkJPHA+SWYgdGhlIGNvbm5lY3RvciBpcyAiPGNvZGU+fDwvY29kZT4iLCBubyBpbnRlbnQgaXMgc2lnbmFsZWQgYXMgdG8gd2hhdCBwcm9jZXNzaW5nIG1vZGVsIGlzIHRvIGJlIHVzZWQgdG8gZ28gYWJvdXQgYWNjZXNzaW5nIHRoZSBkZXNpZ25hdGVkIHJlc291cmNlLjwvcD4KKwkJCTwvaXRlbT4KKwkJPC91bGlzdD4KKwk8L3A+CisJPHA+Tm90ZSB0aGF0IHRoZSBkZWZpbml0aW9uIG9mIGEgVVJJIGluY2x1ZGVzIGFuIG9wdGlvbmFsIHF1ZXJ5IGNvbXBvbmVudC4gPC9wPgorCTxwPkluIHRoZSBjYXNlIHdoZXJlIHRoZSBVUkkgY29udGFpbnMgYSBxdWVyeSAodG8gYmUgaW50ZXJwcmV0ZWQgYnkgdGhlIHNlcnZlciksIGluZm9ybWF0aW9uIHByb3ZpZGVycyBhbmQgYXV0aG9ycyBvZiBzZXJ2ZXIgc29mdHdhcmUgYXJlIHVyZ2VkIHRvIHVzZSBxdWVyaWVzIGFzIGZvbGxvd3M6IAorCQk8c2NyYXAgaWQ9InF1ZXJ5c3ludGF4IiBsYW5nPSJlYm5mIj4KKwkJCTxoZWFkPlF1ZXJ5PC9oZWFkPgorCQkJPHByb2QgaWQ9Im50LXF1ZXJ5Ij4KKwkJCQk8bGhzPlF1ZXJ5PC9saHM+PHJocz4nWE1MLVhQVFI9JyAoPHhudCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14cHRyIj4gWFBvaW50ZXI8L3hudD4gfCA8eG50IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjTlQtTmFtZSI+TmFtZTwveG50Pik8L3Jocz4KKwkJCTwvcHJvZD4KKwkJPC9zY3JhcD4KKwk8L3A+CisJPCEtLSBmaXhlZCBsaW5rIHRvIFhNTCByZWNvbW1lbmRhdGlvbiAtIGJlbnQgLS0+Cis8L2RpdjE+CisKKzxkaXYxPjw/UHViIER0bD8+CisJPGhlYWQ+TGluayBSZWNvZ25pdGlvbjwvaGVhZD4KKwk8cD5UaGUgZXhpc3RlbmNlIG9mIGEgPHRlcm1yZWYgZGVmPSJkdC1saW5rIj5saW5rPC90ZXJtcmVmPiBpcyBhc3NlcnRlZCBieSBhIDx0ZXJtcmVmIGRlZj0iZHQtbGlua2VsIj5saW5raW5nIGVsZW1lbnQ8L3Rlcm1yZWY+LiBMaW5raW5nIGVsZW1lbnRzIG11c3QgYmUgcmVjb2duaXplZCByZWxpYWJseSBieSBhcHBsaWNhdGlvbiBzb2Z0d2FyZSBpbiBvcmRlciB0byBwcm92aWRlIGFwcHJvcHJpYXRlIGRpc3BsYXkgYW5kIGJlaGF2aW9yLiBUaGVyZSBhcmUgc2V2ZXJhbCB3YXlzIGxpbmsgcmVjb2duaXRpb24gY291bGQgYmUgYWNjb21wbGlzaGVkOiBmb3IgZXhhbXBsZSwgcmVzZXJ2aW5nIGVsZW1lbnQgdHlwZSBuYW1lcywgcmVzZXJ2aW5nIGF0dHJpYnV0ZXMgbmFtZXMsIGxlYXZpbmcgdGhlIG1hdHRlciBvZiByZWNvZ25pdGlvbiBlbnRpcmVseSB1cCB0byBzdHlsZXNoZWV0cyBhbmQgYXBwbGljYXRpb24gc29mdHdhcmUsIG9yIHVzaW5nIHRoZSBYTGluayA8eHRlcm1yZWYgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy8iPm5hbWVzcGFjZTwveHRlcm1yZWY+IHRvIHNwZWNpZnkgZWxlbWVudCBuYW1lcyBhbmQgYXR0cmlidXRlIG5hbWVzIHRoYXQgd291bGQgYmUgcmVjb2duaXplZCBieSBuYW1lc3BhY2UgYW5kIFhMaW5rLWF3YXJlIHByb2Nlc3NvcnMuIFVzaW5nIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZSBuYW1lcyB3aXRoaW4gdGhlIFhMaW5rIG5hbWVzcGFjZSBwcm92aWRlcyBhIGJhbGFuY2UgYmV0d2VlbiBnaXZpbmcgdXNlcnMgY29udHJvbCBvZiB0aGVpciBvd24gbWFya3VwIGxhbmd1YWdlIGRlc2lnbiBhbmQga2VlcGluZyB0aGUgaWRlbnRpZmljYXRpb24gb2YgbGlua2luZyBlbGVtZW50cyBzaW1wbGUgYW5kIHVuYW1iaWd1b3VzLjwvcD4KKwk8cD5UaGUgdHdvIGFwcHJvYWNoZXMgdG8gaWRlbnRpZnlpbmcgbGlua2luZyBlbGVtZW50cyBhcmUgcmVsYXRpdmVseSBzaW1wbGUgdG8gaW1wbGVtZW50LiBGb3IgZXhhbXBsZSwgaGVyZSdzIGhvdyB0aGUgSFRNTCA8Y29kZT5BPC9jb2RlPiBlbGVtZW50IHdvdWxkIGJlIGRlY2xhcmVkIHVzaW5nIGF0dHJpYnV0ZXMgd2l0aGluIHRoZSBYTGluayBuYW1lc3BhY2UsIGFuZCB0aGVuIGhvdyBhbiBlbGVtZW50IHdpdGhpbiB0aGUgWExpbmsgbmFtZXNwYWNlIG1pZ2h0IGRvIHRoZSBzYW1lOgorCQk8ZWc+Jmx0O0EgeGxpbms6dHlwZT0ic2ltcGxlIiB4bGluazpocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi93ZC14bGluay8iCit4bGluazp0aXRsZT0iVGhlIFhsaW5rIFdvcmtpbmcgRHJhZnQiJmd0O1RoZSBYTGluayBXb3JraW5nIERyYWZ0LiZsdDsvQSZndDs8L2VnPgorCQk8ZWc+Jmx0O3hsaW5rOnNpbXBsZSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi93ZC14bGluay8iCit0aXRsZT0iVGhlIFhMaW5rIFdvcmtpbmcgRHJhZnQiJmd0O1RoZSBYTGluayBXb3JraW5nIERyYWZ0Jmx0Oy94bGluazpzaW1wbGUmZ3Q7PC9lZz4KKwlBbnkgYXJiaXRyYXJ5IGVsZW1lbnQgY2FuIGJlIG1hZGUgaW50byBhbiBYTGluayBieSB1c2luZyB0aGUgPGNvZGU+eGxpbms6dHlwZTwvY29kZT4gYXR0cmlidXRlLiBBbmQsIG9mIGNvdXJzZSwgdGhlIGV4cGxpY2l0IFhMaW5rIGVsZW1lbnRzIG1heSBiZSB1c2VkLCBhcyB3ZWxsLiBUaGlzIGRvY3VtZW50IHdpbGwgZ28gb24gdG8gZGVzY3JpYmUgdGhlIGxpbmtpbmcgYXR0cmlidXRlcyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggbGlua2luZyBlbGVtZW50cy4gSXQgbWF5IGJlIGFzc3VtZWQgYnkgdGhlIHJlYWRlciB0aGF0IHRoZXNlIGF0dHJpYnV0ZXMgd291bGQgcmVxdWlyZSB0aGUgPGNvZGU+eGxpbms8L2NvZGU+IG5hbWVzcGFjZSBwcmVmaXggaWYgdGhleSBleGlzdGVkIHdpdGhpbiBhbiBhcmJpdHJhcnkgZWxlbWVudCwgb3IgdGhhdCB0aGV5IG1heSBiZSB1c2VkIGRpcmVjdGx5IGlmIHRoZXkgZXhpc3Qgd2l0aGluIGFuIGV4cGxpY2l0IFhsaW5rIGVsZW1lbnQuPC9wPgorCQk8IS0tIGhlYXZpbHkgbW9kaWZpZWQgdGhpcyBzZWN0aW9uIHRvIGFjY29tb2RhdGUgbmFtZXNwYWNlLWF3YXJlIGxpbmsgcmVjb2duaXRpb24gLSBiZW50IC0tPgorPC9kaXYxPgorCis8IS0tIFJld3JvdGUgdGhpcyBlbnRpcmUgc2VjdGlvbi4gLSBiZW50IC0tPgorPGRpdjE+CisJPGhlYWQ+TGlua2luZyBBdHRyaWJ1dGVzPC9oZWFkPgorCTxwPlhMaW5rIGhhcyBzZXZlcmFsIGF0dHJpYnV0ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB2YXJpZXR5IG9mIGxpbmtzIGl0IG1heSByZXByZXNlbnQuIFRoZXNlIGF0dHJpYnV0ZXMgZGVmaW5lIGZvdXIgbWFpbiBjb25jZXB0czogbG9jYXRvcnMsIGFyY3MsIGJlaGF2aW9ycywgYW5kIHNlbWFudGljcy4gPGVtcGg+TG9jYXRvcnM8L2VtcGg+IGRlZmluZSB3aGVyZSB0aGUgYWN0dWFsIHJlc291cmNlIGlzIGxvY2F0ZWQuIDxlbXBoPkFyY3M8L2VtcGg+IGRlZmluZSB0aGUgdHJhdmVyc2FsIG9mIGxpbmtzLiBXaGVyZSBkb2VzIHRoZSBsaW5rIGNvbWUgZnJvbT8gV2hlcmUgZG9lcyBpdCBnbyB0bz8gQWxsIHRoaXMgaW5mb3JtYXRpb24gY2FuIGJlIHN0b3JlZCBpbiB0aGUgYXJjIGF0dHJpYnV0ZXMuIDxlbXBoPkJlaGF2aW9yczwvZW1waD4gZGVmaW5lIGhvdyB0aGUgbGluayBpcyBhY3RpdmF0ZWQsIGFuZCB3aGF0IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgZG8gd2l0aCB0aGUgcmVzb3VyY2UgYmVpbmcgbGlua2VkIHRvLiA8ZW1waD5TZW1hbnRpY3M8L2VtcGg+IGRlZmluZSB1c2VmdWwgaW5mb3JtYXRpb24gdGhhdCB0aGUgYXBwbGljYXRpb24gbWF5IHVzZSwgYW5kIGVuYWJsZXMgdGhlIGxpbmsgZm9yIHN1Y2ggc3BlY2FsaXplZCB0YXJnZXRzIGFzIGNvbnN0cmljdGVkIGRldmljZXMgYW5kIGFjY2Vzc2liaWxpdHkgc29mdHdhcmUuPC9wPgorCQorCTxkaXYyIGlkPSJsaW5rLWxvY2F0b3JzIj4KKwkJPGhlYWQ+TG9jYXRvciBBdHRyaWJ1dGVzPC9oZWFkPgorCQk8cD5UaGUgb25seSBsb2NhdG9yIGF0dHJpYnV0ZSBhdCB0aGlzIHRpbWUgaXMgPGNvZGU+aHJlZjwvY29kZT4uIFRoaXMgYXR0cmlidXRlIG11c3QgY29udGFpbiBlaXRoZXIgYSBzdHJpbmcgaW4gdGhlIGZvcm0gb2YgYSBVUkkgdGhhdCBkZWZpbmVzIHRoZSByZW1vdGUgcmVzb3VyY2UgYmVpbmcgbGlua2VkIHRvLCBhIHN0cmluZyBjb250YWluaW5nIGEgZnJhZ21lbnQgaWRlbnRpZmllciB0aGF0IGxpbmtzIHRvIGEgbG9jYWwgcmVzb3VyY2UsIG9yIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBVUkkgd2l0aCBhIGZyYWdtZW50IGlkZW50aWZpZXIgY29uY2FjZW5hdGVkIG9udG8gaXQuPC9wPgorCTwvZGl2Mj4KKworCTxkaXYyIGlkPSJsaW5rLWFyY3MiPgorCQk8aGVhZD5BcmMgQXR0cmlidXRlczwvaGVhZD4KKwkJPHA+QXJjcyBjb250YWluIHR3byBhdHRyaWJ1dGVzLCA8Y29kZT5mcm9tPC9jb2RlPiBhbmQgPGNvZGU+dG88L2NvZGU+LiBUaGUgPGNvZGU+ZnJvbTwvY29kZT4gYXR0cmlidXRlIG1heSBjb250YWluIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGNvbnRlbnQgb2YgYSA8Y29kZT5yb2xlPC9jb2RlPiBhdHRyaWJ1dGUgZnJvbSB0aGUgcmVzb3VyY2UgYmVpbmcgbGlua2VkIGZyb20uIFRoZSBwdXJwb3NlIG9mIHRoZSA8Y29kZT5mcm9tPC9jb2RlPiBhdHRyaWJ1dGUgaXMgdG8gZGVmaW5lIHdoZXJlIHRoaXMgbGluayBpcyBiZWluZyBhY3R1YXRlZCBmcm9tLjwvcD4KKwkJPHA+VGhlIDxjb2RlPnRvPC9jb2RlPiBhdHRyaWJ1dGUgbWF5IGNvbnRhaW4gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgY29udGVudCBvZiBhIDxjb2RlPnJvbGU8L2NvZGU+IGF0dHJpYnV0ZSBmcm9tIHRoZSByZXNvdXJjZSBiZWluZyBsaW5rZWQgdG8uIFRoZSBwdXJwb3NlIG9mIHRoZSA8Y29kZT50bzwvY29kZT4gYXR0cmlidXRlIGlzIHRvIGRlZmluZSB3aGVyZSB0aGlzIGxpbmsgdHJhdmVyc2VzIHRvLjwvcD4KKwkJPHA+VGhlIGFwcGxpY2F0aW9uIG1heSB1c2UgdGhpcyBpbmZvcm1hdGlvbiBpbiBhIG51bWJlciBvZiB3YXlzLCBlc3BlY2lhbGx5IGluIGEgY29tcGxleCBoeXBlcnRleHQgc3lzdGVtLCBidXQgaXQgaXMgbWFpbmx5IHVzZWZ1bCBpbiBwcm92aWRpbmcgY29udGV4dCBmb3IgYXBwbGljYXRpb24gYmVoYXZpb3IuPC9wPgorCQk8IS0tIEknbSBhdCBhIGxvc3MgYXMgdG8gaG93IHRvIGRlc2NyaWJlIGFyY3MgbW9yZSBjbGVhcmx5IHRoYW4gdGhpcy4gSSBkb24ndCB3YW50IHRvIGRldm9sdmUgaW50byBkaXNjdXNzaW9ucyBvZiBkaXJlY3RlZCBncmFwaHMgYW5kIG4tYXJ5IGxpbmtzLiAtYmVudCAtLT4KKwk8L2RpdjI+CisKKwk8ZGl2MiBpZD0ibGluay1iZWhhdmlvcnMiPgorCQk8aGVhZD5CZWhhdmlvciBBdHRyaWJ1dGVzPC9oZWFkPgorCQk8cD5UaGVyZSBhcmUgdHdvIGF0dHJpYnV0ZXMgYXNzb2NpYXRlZCB3aXRoIGJlaGF2aW9yOiA8Y29kZT5zaG93PC9jb2RlPiBhbmQgPGNvZGU+YWN0dWF0ZTwvY29kZT4uIFRoZSA8Y29kZT5zaG93PC9jb2RlPiBhdHRyaWJ1dGUgZGVmaW5lcyBob3cgdGhlIHJlbW90ZSByZXNvdXJjZSBpcyB0byBiZSByZXZlYWxlZCB0byB0aGUgdXNlci4gSXQgaGFzIHRocmVlIG9wdGlvbnM6IDxjb2RlPm5ldzwvY29kZT4sIDxjb2RlPnBhcnNlZDwvY29kZT4sIGFuZCA8Y29kZT5yZXBsYWNlPC9jb2RlPi4gVGhlIDxjb2RlPm5ldzwvY29kZT4gb3B0aW9uIGluZGljYXRlcyB0aGF0IHRoZSByZW1vdGUgcmVzb3VyY2Ugc2hvdWxkIGJlIHNob3duIGluIGEgbmV3IHdpbmRvdyAob3Igb3RoZXIgZGV2aWNlIGNvbnRleHQpIHdpdGhvdXQgcmVwbGFjaW5nIHRoZSBwcmV2aW91cyBjb250ZW50LiBUaGUgPGNvZGU+cGFyc2VkPC9jb2RlPiBvcHRpb24sIHJlbGF0aW5nIGRpcmVjdGx5IHRvIHRoZSBYTUwgY29uY2VwdCBvZiBhIHBhcnNlZCBlbnRpdHksIGluZGljYXRlcyB0aGF0IHRoZSBjb250ZW50IHNob3VsZCBiZSBpbnRlZ3JhdGVkIGludG8gdGhlIGRvY3VtZW50IGZyb20gd2hpY2ggdGhlIGxpbmsgd2FzIGFjdHVhdGVkLiBUaGUgPGNvZGU+cmVwbGFjZTwvY29kZT4gb3B0aW9uIGlzIHRoZSBvbmUgbW9zdCBjb21tb25seSBzZWVuIG9uIHRoZSBXb3JsZCBXaWRlIFdlYiwgd2hlcmUgdGhlIGRvY3VtZW50IGJlaW5nIGxpbmtlZCBmcm9tIGlzIGVudGlyZWx5IHJlcGxhY2VkIGJ5IHRoZSBvYmplY3QgYmVpbmcgbGlua2VkIHRvLjwvcD4KKwkJPHA+VGhlIDxjb2RlPmFjdHVhdGU8L2NvZGU+IGF0dHJpYnV0ZSBkZWZpbmVzIGhvdyB0aGUgbGluayBpcyBpbml0aWF0ZWQuIEl0IGhhcyB0d28gb3B0aW9uczogPGNvZGU+dXNlcjwvY29kZT4gYW5kIDxjb2RlPmF1dG88L2NvZGU+LiBUaGUgPGNvZGU+dXNlcjwvY29kZT4gb3B0aW9uIGluZGljYXRlcyB0aGF0IHRoZSBsaW5rIG11c3QgYmUgaW5pdGlhdGVkIGJ5IHNvbWUgc29ydCBvZiBodW1hbi1pbml0aWF0ZWQgc2VsZWN0aW9uLCBzdWNoIGFzIGNsaWNraW5nIG9uIGFuIEhUTUwgYW5jaG9yLiBUaGUgPGNvZGU+YXV0bzwvY29kZT4gb3B0aW9uIGluZGljYXRlcyB0aGF0IHRoZSBsaW5rIGlzIGF1dG9tYXRpY2FsbHkgaW5pdGlhdGVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGRlZW1zIHRoYXQgdGhlIHVzZXIgaGFzIHJlYWNoZWQgdGhlIGxpbmsuIEl0IHRoZW4gZm9sbG93cyB0aGUgYmVoYXZpb3Igc2V0IG91dCBpbiB0aGUgPGNvZGU+c2hvdzwvY29kZT4gb3B0aW9uLjwvcD4KKwkJPCEtLSBTb21ldGhpbmcgc2hvdWxkIGJlIHB1dCBoZXJlIGluIHRlcm1zIG9mIGFuIGV4YW1wbGUuIElkZWE6ICJBIiBsaW5rIHZlcnN1cyBhdXRvbWF0aWNhbGx5IHVwZGF0aW5nIGVuY3ljbG9wZWRpYS4gLWJlbnQgLS0+CisJPC9kaXYyPgorCisJPGRpdjIgaWQ9Imxpbmstc2VtYW50aWNzIj4KKwkJPGhlYWQ+U2VtYW50aWMgQXR0cmlidXRlczwvaGVhZD4KKwkJPHA+VGhlcmUgYXJlIHR3byBhdHRyaWJ1dGVzIGFzc29jaWF0ZWQgd2l0aCBzZW1hbnRpY3MsIDxjb2RlPnJvbGU8L2NvZGU+IGFuZCA8Y29kZT50aXRsZTwvY29kZT4uIFRoZSA8Y29kZT5yb2xlPC9jb2RlPiBhdHRyaWJ1dGUgaXMgYSBnZW5lcmljIHN0cmluZyB1c2VkIHRvIGRlc2NyaWJlIHRoZSBmdW5jdGlvbiBvZiB0aGUgbGluaydzIGNvbnRlbnQuIEZvciBleGFtcGxlLCBhIHBvZW0gbWlnaHQgaGF2ZSBhIGxpbmsgd2l0aCBhIDxjb2RlPnJvbGU9InN0YW56YSI8L2NvZGU+LiBUaGUgPGNvZGU+cm9sZTwvY29kZT4gaXMgYWxzbyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgZm9yIHRoZSA8Y29kZT5mcm9tPC9jb2RlPiBhbmQgPGNvZGU+dG88L2NvZGU+IGF0dHJpYnV0ZXMgb2YgYXJjcy48L3A+CisJCTxwPlRoZSA8Y29kZT50aXRsZTwvY29kZT4gYXR0cmlidXRlIGlzIGRlc2lnbmVkIHRvIHByb3ZpZGUgaHVtYW4tcmVhZGFibGUgdGV4dCBkZXNjcmliaW5nIHRoZSBsaW5rLiBJdCBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGhvc2Ugd2hvIGhhdmUgdGV4dC1iYXNlZCBhcHBsaWNhdGlvbnMsIHdoZXRoZXIgdGhhdCBiZSBkdWUgdG8gYSBjb25zdHJpY3RlZCBkZXZpY2UgdGhhdCBjYW5ub3QgZGlzcGxheSB0aGUgbGluaydzIGNvbnRlbnQsIG9yIGlmIGl0J3MgYmVpbmcgcmVhZCBieSBhbiBhcHBsaWNhdGlvbiB0byBhIHZpc3VhbGx5LWltcGFpcmVkIHVzZXIsIG9yIGlmIGl0J3MgYmVpbmcgdXNlZCB0byBjcmVhdGUgYSB0YWJsZSBvZiBsaW5rcy4gVGhlIDxjb2RlPnRpdGxlPC9jb2RlPiBhdHRyaWJ1dGUgY29udGFpbnMgYSBzaW1wbGUsIGRlc2NyaXB0aXZlIHN0cmluZy48L3A+CisJPC9kaXYyPgorPC9kaXYxPgorCis8ZGl2MSBpZD0ibGlua2luZy1lbGVtZW50cyI+CisJPGhlYWQ+TGlua2luZyBFbGVtZW50czwvaGVhZD4KKwk8cD5UaGVyZSBhcmUgc2V2ZXJhbCBraW5kcyBvZiBsaW5raW5nIGVsZW1lbnRzIGluIFhMaW5rOiA8Y29kZT5zaW1wbGU8L2NvZGU+IGxpbmtzLCA8Y29kZT5sb2NhdG9yczwvY29kZT4sIDxjb2RlPmFyY3M8L2NvZGU+LCBhbmQgPGNvZGU+ZXh0ZW5kZWQ8L2NvZGU+IGxpbmtzLiBUaGVzZSBlbGVtZW50cyBtYXkgYmUgaW5zdGFudGlhdGVkIHZpYSBlbGVtZW50IGRlY2xhcmF0aW9ucyBmcm9tIHRoZSBYTGluayBuYW1lc3BhY2UsIG9yIHRoZXkgbWF5IGJlIGluc3RhbnRpYXRlZCB2aWEgYXR0cmlidXRlIGRlY2xhcmF0aW9ucyBmcm9tIHRoZSBYTGluayBuYW1lc3BhY2UuIEJvdGgga2luZHMgb2YgaW5zdGFudGlhdGlvbiBhcmUgZGVzY3JpYmVkIGluIHRoZSBkZWZpbml0aW9uIG9mIGVhY2ggbGlua2luZyBlbGVtZW50LjwvcD4KKwk8cD5UaGUgPGNvZGU+c2ltcGxlPC9jb2RlPiBsaW5rIGlzIHVzZWQgdG8gZGVjbGFyZSBhIGxpbmsgdGhhdCBhcHByb3hpbWF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIEhUTUwgPGNvZGU+QTwvY29kZT4gZWxlbWVudC4gSXQgaGFzLCBob3dldmVyLCBhIGZldyBhZGRlZCBmZWF0dXJlcyB0byBpbmNyZWFzZSBpdHMgdmFsdWUsIGluY2x1ZGluZyB0aGUgcG90ZW50aWFsIGRlY2xhcmF0aW9uIG9mIHNlbWFudGljcyBhbmQgYmVoYXZpb3IuIFRoZSA8Y29kZT5sb2NhdG9yPC9jb2RlPiBlbGVtZW50cyBhcmUgdXNlZCB0byBkZWZpbmUgdGhlIHJlc291cmNlIGJlaW5nIGxpbmtlZCB0by4gU29tZSBsaW5rcyBtYXkgY29udGFpbiBtdWx0aXBsZSBsb2NhdG9ycywgcmVwcmVzZW50aW5nIGEgY2hvaWNlIG9mIHBvdGVudGlhbCBsaW5rcyB0byBiZSB0cmF2ZXJzZWQuIFRoZSA8Y29kZT5hcmNzPC9jb2RlPiBhcmUgdXNlZCB0byBkZWZpbmUgdGhlIHRyYXZlcnNhbCBzZW1hbnRpY3Mgb2YgdGhlIGxpbmsuIEZpbmFsbHksIGFuIDxjb2RlPmV4dGVuZGVkPC9jb2RlPiBsaW5raW5nIGVsZW1lbnQgZGlmZmVycyBmcm9tIGEgc2ltcGxlIGxpbmsgaW4gdGhhdCBpdCBjYW4gY29ubmVjdCBhbnkgbnVtYmVyIG9mIHJlc291cmNlcywgbm90IGp1c3Qgb25lIGxvY2FsIHJlc291cmNlIChvcHRpb25hbGx5KSBhbmQgb25lIHJlbW90ZSByZXNvdXJjZSwgYW5kIGluIHRoYXQgZXh0ZW5kZWQgbGlua3MgYXJlIG1vcmUgb2Z0ZW4gb3V0LW9mLWxpbmUgdGhhbiBzaW1wbGUgbGlua3MuPC9wPgorCis8ZGl2MiBpZD0ic2ltcGxlLWxpbmtzIj4KKwk8aGVhZD5TaW1wbGUgTGlua3M8L2hlYWQ+CisJPHAgaWQ9ImR0LXNpbXBsZWxpbmsiPjx0ZXJtZGVmIGlkPSJkdC1zaW1wbGVsaW5lIiB0ZXJtPSJTaW1wbGUgTGluayI+PHRlcm0+U2ltcGxlIGxpbmtzPC90ZXJtPiBjYW4gYmUgdXNlZCBmb3IgcHVycG9zZXMgdGhhdCBhcHByb3hpbWF0ZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhIGJhc2ljIEhUTUwgPGNvZGU+QTwvY29kZT4gbGluaywgYnV0IHRoZXkgY2FuIGFsc28gc3VwcG9ydCBhIGxpbWl0ZWQgYW1vdW50IG9mIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eS4gU2ltcGxlIGxpbmtzIGhhdmUgb25seSBvbmUgbG9jYXRvciBhbmQgdGh1cywgZm9yIGNvbnZlbmllbmNlLCBjb21iaW5lIHRoZSBmdW5jdGlvbnMgb2YgYSBsaW5raW5nIGVsZW1lbnQgYW5kIGEgbG9jYXRvciBpbnRvIGEgc2luZ2xlIGVsZW1lbnQuPC90ZXJtZGVmPiBBcyBhIHJlc3VsdCBvZiB0aGlzIGNvbWJpbmF0aW9uLCB0aGUgc2ltcGxlIGxpbmtpbmcgZWxlbWVudCBvZmZlcnMgYm90aCBhIGxvY2F0b3IgYXR0cmlidXRlIGFuZCBhbGwgdGhlIGJlaGF2aW9yIGFuZCBzZW1hbnRpYyBhdHRyaWJ1dGVzLjwvcD4KKwk8cD5UaGUgZm9sbG93aW5nIGFyZSB0d28gZXhhbXBsZXMgb2YgbGlua2luZyBlbGVtZW50cywgZWFjaCBzaG93aW5nIGFsbCB0aGUgcG9zc2libGUgYXR0cmlidXRlcyB0aGF0IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggYSBzaW1wbGUgbGluay4gSGVyZSBpcyB0aGUgZXhwbGljaXQgWExpbmsgc2ltcGxlIGxpbmtpbmcgZWxlbWVudC4KKwk8ZWc+Jmx0OyFFTEVNRU5UIHhsaW5rOnNpbXBsZSBBTlkmZ3Q7CismbHQ7IUFUVExJU1QgeGxpbms6c2xpbmsKKyAgICBocmVmICAgICAgICAgICBDREFUQSAgICAJCQkJI1JFUVVJUkVECisgICAgcm9sZSAgICAgICAgICAgQ0RBVEEgICAgCQkJCSNJTVBMSUVECisgICAgdGl0bGUgICAgICAgICAgQ0RBVEEgICAgCQkJCSNJTVBMSUVECisgICAgc2hvdyAgICAgICAgICAgKG5ld3xwYXJzZWR8cmVwbGFjZSkgIAkicmVwbGFjZSIKKyAgICBhY3R1YXRlICAgICAgICAodXNlcnxhdXRvKSAJCQkJInVzZXIiCismZ3Q7PC9lZz4KKwlBbmQgaGVyZSBpcyBob3cgdG8gbWFrZSBhbiBhcmJpdHJhcnkgZWxlbWVudCBpbnRvIGEgc2ltcGxlIGxpbmsuCisJPGVnPiZsdDshRUxFTUVOVCB4bGluazpzaW1wbGUgQU5ZJmd0OworJmx0OyFBVFRMSVNUIGZvbworCXhsaW5rOnR5cGUgICAgIChzaW1wbGV8ZXh0ZW5kZWR8bG9jYXRvcnxhcmMpICNGSVhFRCAic2ltcGxlIgkJCisgICAgeGxpbms6aHJlZiAgICAgQ0RBVEEgICAgCQkJCSNSRVFVSVJFRAorICAgIHhsaW5rOnJvbGUgICAgIENEQVRBICAgIAkJCQkjSU1QTElFRAorICAgIHhsaW5rOnRpdGxlICAgIENEQVRBICAgIAkJCQkjSU1QTElFRAorICAgIHhsaW5rOnNob3cgICAgIChuZXd8cGFyc2VkfHJlcGxhY2UpICAJInJlcGxhY2UiCisgICAgeGxpbms6YWN0dWF0ZSAgKHVzZXJ8YXV0bykgCQkJCSJ1c2VyIgorJmd0OzwvZWc+CisJSGVyZSBpcyBob3cgdGhlIGZpcnN0IGV4YW1wbGUgbWlnaHQgbG9vayBpbiBhIGRvY3VtZW50OgorPGVnPiZsdDt4bGluazpzaW1wbGUgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvd2QteGxpbmsiIHJvbGU9IndvcmtpbmcgZHJhZnQiIAorCXRpdGxlPSJUaGUgWExpbmsgV29ya2luZyBEcmFmdCIgc2hvdz0icmVwbGFjZSIgYWN0dWF0ZT0idXNlciImZ3Q7CitUaGUgWExpbmsgV29ya2luZyBEcmFmdC4mbHQ7L3hsaW5rOnNpbXBsZSZndDs8L2VnPgorPGVnPiZsdDtmb28geGxpbms6aHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvd2QteGxpbmsiIHhsaW5rOnJvbGU9IndvcmtpbmcgZHJhZnQiCisJeGxpbms6dGl0bGU9IlRoZSBYTGluayBXb3JraW5nIERyYWZ0IiB4bGluazpzaG93PSJuZXciIHhsaW5rOmFjdHVhdGU9InVzZXIiJmd0OworVGhlIFhMaW5rIFdvcmtpbmcgRHJhZnQuJmx0Oy9mb28mZ3Q7PC9lZz4KKwlBbHRlcm5hdGVseSwgYSBzaW1wbGUgbGluayBjb3VsZCBiZSBhcyB0ZXJzZSBhcyB0aGlzOgorPGVnPiZsdDtmb28geGxpbms6aHJlZj0iI3N0YW56YTEiJmd0O1RoZSBGaXJzdCBTdGFuemEuJmx0Oy9mb28mZ3Q7PC9lZz4KKwk8L3A+CisJPHA+CisJVGhlcmUgYXJlIG5vIGNvbnN0cmFpbnRzIG9uIHRoZSBjb250ZW50cyBvZiBhIHNpbXBsZSBsaW5raW5nIGVsZW1lbnQuIEluCisJdGhlIHNhbXBsZSBkZWNsYXJhdGlvbiBhYm92ZSwgaXQgaXMgZ2l2ZW4gYSBjb250ZW50IG1vZGVsIG9mIDxjb2RlPkFOWTwvY29kZT4KKwl0byBpbGx1c3RyYXRlIHRoYXQgYW55IGNvbnRlbnQgbW9kZWwgb3IgZGVjbGFyZWQgY29udGVudCBpcyBhY2NlcHRhYmxlLiBJbgorCWEgdmFsaWQgZG9jdW1lbnQsIGV2ZXJ5IGVsZW1lbnQgdGhhdCBpcyBzaWduaWZpY2FudCB0byBYTGluayBtdXN0IHN0aWxsIGNvbmZvcm0KKwl0byB0aGUgY29uc3RyYWludHMgZXhwcmVzc2VkIGluIGl0cyBnb3Zlcm5pbmcgRFRELjwvcD4KKwk8cD5Ob3RlIHRoYXQgaXQgaXMgbWVhbmluZ2Z1bCB0byBoYXZlIGFuIG91dC1vZi1saW5lIHNpbXBsZSBsaW5rLCBhbHRob3VnaAorCXN1Y2ggbGlua3MgYXJlIHVuY29tbW9uLiBUaGV5IGFyZSBjYWxsZWQgIm9uZS1lbmRlZCIgYW5kIGFyZSB0eXBpY2FsbHkgdXNlZAorCXRvIGFzc29jaWF0ZSBkaXNjcmV0ZSBzZW1hbnRpYyBwcm9wZXJ0aWVzIHdpdGggbG9jYXRpb25zLiBUaGUgcHJvcGVydGllcyBtaWdodAorCWJlIGV4cHJlc3NlZCBieSBhdHRyaWJ1dGVzIG9uIHRoZSBsaW5rLCB0aGUgbGluaydzIGVsZW1lbnQgdHlwZSBuYW1lLCBvciBpbgorCXNvbWUgb3RoZXIgd2F5LCBhbmQgYXJlIG5vdCBjb25zaWRlcmVkIGZ1bGwtZmxlZGdlZCByZXNvdXJjZXMgb2YgdGhlIGxpbmsuCisJTW9zdCBvdXQtb2YtbGluZSBsaW5rcyBhcmUgZXh0ZW5kZWQgbGlua3MsIGFzIHRoZXNlIGhhdmUgYSBmYXIgd2lkZXIgcmFuZ2UKKwlvZiB1c2VzLjwvcD4KKzwvZGl2Mj4KKworPGRpdjIgaWQ9ImV4dGVuZGVkLWxpbmsiPgorPGhlYWQ+RXh0ZW5kZWQgTGlua3M8L2hlYWQ+CisJPHA+PHRlcm1kZWYgaWQ9ImR0LWV4dGVuZGVkbGluayIgdGVybT0iRXh0ZW5kZWQgTGluayI+QW4gPHRlcm0+ZXh0ZW5kZWQgbGluazwvdGVybT4gZGlmZmVycyBmcm9tIGEgc2ltcGxlIGxpbmsgaW4gdGhhdCBpdCBjYW4gY29ubmVjdCBhbnkgbnVtYmVyIG9mIHJlc291cmNlcywgbm90IGp1c3Qgb25lIGxvY2FsIHJlc291cmNlIChvcHRpb25hbGx5KSBhbmQgb25lIHJlbW90ZSByZXNvdXJjZSwgYW5kIGluIHRoYXQgZXh0ZW5kZWQgbGlua3MgYXJlIG1vcmUgb2Z0ZW4gb3V0LW9mLWxpbmUgdGhhbiBzaW1wbGUgbGlua3MuPC90ZXJtZGVmPjwvcD4KKwk8cD5UaGVzZSBhZGRpdGlvbmFsIGNhcGFiaWxpdGllcyBvZiBleHRlbmRlZCBsaW5rcyBhcmUgcmVxdWlyZWQgZm9yOiAgCisJCTx1bGlzdD4KKwkJCTxpdGVtPgorCQkJCTxwPkVuYWJsaW5nIG91dGdvaW5nIGxpbmtzIGluIGRvY3VtZW50cyB0aGF0IGNhbm5vdCBiZSBtb2RpZmllZCB0byBhZGQgYW4gaW5saW5lIGxpbms8L3A+CisJCQk8L2l0ZW0+CisJCQk8aXRlbT4KKwkJCQk8cD5DcmVhdGluZyBsaW5rcyB0byBhbmQgZnJvbSByZXNvdXJjZXMgaW4gZm9ybWF0cyB3aXRoIG5vIG5hdGl2ZSBzdXBwb3J0IGZvciBlbWJlZGRlZCBsaW5rcyAoc3VjaCBhcyBtb3N0IG11bHRpbWVkaWEgZm9ybWF0cyk8L3A+CisJCQk8L2l0ZW0+CisJCQk8aXRlbT4KKwkJCQk8cD5BcHBseWluZyBhbmQgZmlsdGVyaW5nIHNldHMgb2YgcmVsZXZhbnQgbGlua3Mgb24gZGVtYW5kPC9wPgorCQkJPC9pdGVtPgorCQkJPGl0ZW0+PHA+RW5hYmxpbmcgb3RoZXIgYWR2YW5jZWQgaHlwZXJtZWRpYSBjYXBhYmlsaXRpZXM8L3A+PC9pdGVtPgorCQk8L3VsaXN0PgorCTwvcD4KKwk8cD5BcHBsaWNhdGlvbiBzb2Z0d2FyZSBtaWdodCBiZSBleHBlY3RlZCB0byBwcm92aWRlIHRyYXZlcnNhbCBhbW9uZyBhbGwgb2YgYSBsaW5rJ3MgcGFydGljaXBhdGluZyByZXNvdXJjZXMgKHN1YmplY3QgdG8gc2VtYW50aWMgY29uc3RyYWludHMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhpcyBzcGVjaWZpY2F0aW9uKSBhbmQgdG8gc2lnbmFsIHRoZSBmYWN0IHRoYXQgYSBnaXZlbiByZXNvdXJjZSBvciBzdWItcmVzb3VyY2UgcGFydGljaXBhdGVzIGluIG9uZSBvciBtb3JlIGxpbmtzIHdoZW4gaXQgaXMgZGlzcGxheWVkIChldmVuIHRob3VnaCB0aGVyZSBpcyBubyBtYXJrdXAgYXQgZXhhY3RseSB0aGF0IHBvaW50IHRvIHNpZ25hbCBpdCkuPC9wPgorCTxwPkEgbGlua2luZyBlbGVtZW50IGZvciBhbiBleHRlbmRlZCBsaW5rIGNvbnRhaW5zIGEgc2VyaWVzIG9mIDx4dGVybXJlZiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLyNkdC1wYXJlbnRjaGlsZCI+Y2hpbGQgZWxlbWVudHM8L3h0ZXJtcmVmPiB0aGF0IHNlcnZlIGFzIGxvY2F0b3JzIGFuZCBhcmNzLiBCZWNhdXNlIGFuIGV4dGVuZGVkIGxpbmsgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSByZW1vdGUgcmVzb3VyY2UsIGl0IHNlcGFyYXRlcyBvdXQgbGlua2luZyBpdHNlbGYgZnJvbSB0aGUgbWVjaGFuaXNtcyB1c2VkIHRvIGxvY2F0ZSBlYWNoIHJlc291cmNlICh3aGVyZWFzIGEgc2ltcGxlIGxpbmsgY29tYmluZXMgdGhlIHR3bykuPC9wPgorCTxwPlRoZSA8Y29kZT54bGluazp0eXBlPC9jb2RlPiBhdHRyaWJ1dGUgdmFsdWUgZm9yIGFuIGV4dGVuZGVkIGxpbmsgbXVzdCBiZSA8Y29kZT4gZXh0ZW5kZWQ8L2NvZGU+LCBpZiB0aGUgbGluayBpcyBiZWluZyBpbnN0YW50aWF0ZWQgb24gYW4gYXJiaXRyYXJ5IGVsZW1lbnQuIE5vdGUgdGhhdCBleHRlbmRlZCBsaW5rcyBpbnRyb2R1Y2UgdmFyaWFudHMgb2YgdGhlIDxjb2RlPnNob3c8L2NvZGU+IGFuZCA8Y29kZT5hY3R1YXRlPC9jb2RlPiBiZWhhdmlvciBhdHRyaWJ1dGVzLiBUaGVzZSBhdHRyaWJ1dGVzLCB0aGUgPGNvZGU+c2hvd2RlZmF1bHQ8L2NvZGU+IGFuZCA8Y29kZT5hY3R1YXRlZGVmYXVsdDwvY29kZT4gZGVmaW5lIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHRoZWlyIGNvdW50ZXJwYXJ0cy4gSG93ZXZlciwgaW4gdGhpcyBjYXNlLCB0aGV5IGFyZSBjb25zaWRlcmVkIHRvIGRlZmluZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgYWxsIHRoZSBsaW5raW5nIGVsZW1lbnRzIHRoYXQgdGhleSBjb250YWluLjwvcD4KKwk8cD5Ib3dldmVyLCB3aGVuIGEgbGlua2luZyBlbGVtZW50IHdpdGhpbiBhbiBleHRlbmRlZCBsaW5rIGhhcyBhIDxjb2RlPnNob3c8L2NvZGU+IG9yIDxjb2RlPmFjdHVhdGU8L2NvZGU+IGF0dHJpYnV0ZSBvZiBpdHMgb3duLCB0aGF0IGF0dHJpYnV0ZSBvdmVycmlkZXMgdGhlIGRlZmF1bHRzIHNldCBvbiB0aGUgZXh0ZW5kZWQgbGlua2luZyBlbGVtZW50LjwvcD4KKwk8cD5UaGUgZXh0ZW5kZWQgbGlua2luZyBlbGVtZW50IGl0c2VsZiByZXRhaW5zIHRob3NlIGF0dHJpYnV0ZXMgcmVsZXZhbnQgdG8gdGhlIGxpbmsgYXMgYSB3aG9sZSwgYW5kIHRvIGl0cyBsb2NhbCByZXNvdXJjZSBpZiBhbnkuIEZvbGxvd2luZyBhcmUgdHdvIHNhbXBsZSBkZWNsYXJhdGlvbiBmb3IgYW4gZXh0ZW5kZWQgbGluay4gVGhlIGZpcnN0IGlzIGFuIGV4YW1wbGUgb2YgdGhlIGV4cGxpY2l0IFhMaW5rIGV4dGVuZGVkIGxpbms6CisJCis8ZWc+Jmx0OyFFTEVNRU5UIHhsaW5rOmV4dGVuZGVkICgoeGxpbms6YXJjIHwgeGxpbms6bG9jYXRvcikqKSZndDsKKyZsdDshQVRUTElTVCB4bGluazpleHRlbmRlZAorCXJvbGUgICAgICAgICAgIENEQVRBICAgIAkJCQkjSU1QTElFRAorCXRpdGxlICAgICAgICAgIENEQVRBICAgIAkJCQkjSU1QTElFRAorCXNob3dkZWZhdWx0ICAgIChuZXd8cGFyc2VkfHJlcGxhY2UpICAgIAkjSU1QTElFRCAKKyAgICBhY3R1YXRlZGVmYXVsdCAodXNlcnxhdXRvKSAJCQkJI0lNUExJRUQgJmd0OzwvZWc+CisKKwlUaGUgc2Vjb25kIGlzIGFuIGV4YW1wbGUgb2YgYW4gYXJiaXRyYXJ5IGVsZW1lbnQgYmVpbmcgdXNlZCBhbiBleHRlbmRlZCBsaW5rOgorCis8ZWc+Jmx0OyFFTEVNRU5UIGZvbyAoKHhsaW5rOmFyYyB8IHhsaW5rOmxvY2F0b3IpKikmZ3Q7CismbHQ7IUFUVExJU1QgZm9vCisJeGxpbms6dHlwZSAgICAgCShzaW1wbGV8ZXh0ZW5kZWR8bG9jYXRvcnxhcmMpIAkjRklYRUQgImV4dGVuZGVkIgorCXhsaW5rOnJvbGUgICAgICAgICAgIENEQVRBICAgIAkJCQkJI0lNUExJRUQKKwl4bGluazp0aXRsZSAgICAgICAgICBDREFUQSAgICAJCQkJCSNJTVBMSUVECisJeGxpbms6c2hvd2RlZmF1bHQgICAgKG5ld3xwYXJzZWR8cmVwbGFjZSkgICAgCSNJTVBMSUVEIAorICAgIHhsaW5rOmFjdHVhdGVkZWZhdWx0ICh1c2VyfGF1dG8pIAkJCQkjSU1QTElFRCAmZ3Q7PC9lZz4KKworCVRoZSBmb2xsb3dpbmcgdHdvIGV4YW1wbGVzIGRlbW9uc3RyYXRlIGhvdyBlYWNoIG9mIHRoZSBhYm92ZSBtaWdodCBhcHBlYXIgd2l0aGluIGEgZG9jdW1lbnQgaW5zdGFuY2UuIE5vdGUgdGhhdCB0aGUgY29udGVudCBvZiB0aGVzZSBleGFtcGxlcyB3b3VsZCBiZSBvdGhlciBlbGVtZW50cy4gRm9yIGJyZXZpdHkncyBzYWtlLCB0aGV5J3ZlIGJlZW4gbGVmdCBibGFuay4gVGhlIGZpcnN0IGV4YW1wbGUgc2hvd3MgaG93IHRoZSBsaW5rIG1pZ2h0IGFwcGVhciwgdXNpbmcgYW4gZXhwbGljaXQgWExpbmsgZXh0ZW5kZWQgbGluazoKKworPGVnPiZsdDt4bGluazpleHRlbmRlZCByb2xlPSJhZGRyZXNzIGJvb2siIHRpdGxlPSJCZW4ncyBBZGRyZXNzIEJvb2siIHNob3dkZWZhdWx0PSJyZXBsYWNlIiBhY3R1YXRlZGVmYXVsdD0idXNlciImZ3Q7IC4uLiAmbHQ7L3hsaW5rOmV4dGVuZGVkJmd0OzwvZWc+CisKKwlBbmQgdGhlIHNlY29uZCBzaG93cyBob3cgdGhlIGxpbmsgbWlnaHQgYXBwZWFyLCB1c2luZyBhbiBhcmJpdHJhcnkgZWxlbWVudDoKKworPGVnPiZsdDtmb28geGxpbms6dHlwZT0iZXh0ZW5kZWQiIHhsaW5rOnJvbGU9ImFkZHJlc3MgYm9vayIgeGxpbms6dGl0bGU9IkJlbidzIEFkZHJlc3MgQm9vayIgeGxpbms6c2hvd2RlZmF1bHQ9InJlcGxhY2UiIHhsaW5rOmFjdHVhdGVkZWZhdWx0PSJ1c2VyIiZndDsgLi4uICZsdDsvZm9vJmd0OzwvZWc+CisJPC9wPgorCis8L2RpdjI+CisKKzxkaXYyIGlkPSJ4bGluay1hcmNzIj4KKwk8aGVhZD5BcmMgRWxlbWVudHM8L2hlYWQ+CisJPHA+PHRlcm1kZWYgaWQ9ImR0LWFyYyIgdGVybT0iQXJjIj5BbiA8dGVybT5hcmM8L3Rlcm0+IGlzIGNvbnRhaW5lZCB3aXRoaW4gYW4gZXh0ZW5kZWQgbGluayBmb3IgdGhlIHB1cnBvc2Ugb2YgZGVmaW5pbmcgdHJhdmVyc2FsIGJlaGF2aW9yLjwvdGVybWRlZj4gTW9yZSB0aGFuIG9uZSBhcmMgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCBhIGxpbmsuIE90aGVyd2lzZSwgYXJjIGVsZW1lbnRzIGZ1bmN0aW9uIGV4YWN0bHkgYXMgdGhlIGFyYyBhdHRyaWJ1dGVzIG1pZ2h0IGxlYWQgb24gdG8gZXhwZWN0LjwvcD4KKwk8IS0tIE1vcmUgaGVyZT8gLWJlbnQgLS0+Cis8L2RpdjI+CisKKzwvZGl2MT4KKzxkaXYxPgorPGhlYWQ+Q29uZm9ybWFuY2U8L2hlYWQ+Cis8cD5BbiBlbGVtZW50IGNvbmZvcm1zIHRvIFhMaW5rIGlmOiAgPG9saXN0PgorPGl0ZW0+PHA+VGhlIGVsZW1lbnQgaGFzIGFuIDxjb2RlPnhtbDpsaW5rPC9jb2RlPiBhdHRyaWJ1dGUgd2hvc2UgdmFsdWUgaXMKK29uZSBvZiB0aGUgYXR0cmlidXRlIHZhbHVlcyBwcmVzY3JpYmVkIGJ5IHRoaXMgc3BlY2lmaWNhdGlvbiwgYW5kPC9wPjwvaXRlbT4KKzxpdGVtPjxwPnRoZSBlbGVtZW50IGFuZCBhbGwgb2YgaXRzIGF0dHJpYnV0ZXMgYW5kIGNvbnRlbnQgYWRoZXJlIHRvIHRoZQorc3ludGFjdGljCityZXF1aXJlbWVudHMgaW1wb3NlZCBieSB0aGUgY2hvc2VuIDxjb2RlPnhtbDpsaW5rPC9jb2RlPiBhdHRyaWJ1dGUgdmFsdWUsCithcyBwcmVzY3JpYmVkIGluIHRoaXMgc3BlY2lmaWNhdGlvbi48L3A+PC9pdGVtPgorPC9vbGlzdD48L3A+Cis8cD5Ob3RlIHRoYXQgY29uZm9ybWFuY2UgaXMgYXNzZXNzZWQgYXQgdGhlIGxldmVsIG9mIGluZGl2aWR1YWwgZWxlbWVudHMsCityYXRoZXIgdGhhbiB3aG9sZSBYTUwgZG9jdW1lbnRzLCBiZWNhdXNlIFhMaW5rIGFuZCBub24tWExpbmsgbGlua2luZyBtZWNoYW5pc21zCittYXkgYmUgdXNlZCBzaWRlIGJ5IHNpZGUgaW4gYW55IG9uZSBkb2N1bWVudC48L3A+Cis8cD5BbiBhcHBsaWNhdGlvbiBjb25mb3JtcyB0byBYTGluayBpZiBpdCBpbnRlcnByZXRzIFhMaW5rLWNvbmZvcm1pbmcgZWxlbWVudHMKK2FjY29yZGluZyB0byBhbGwgcmVxdWlyZWQgc2VtYW50aWNzIHByZXNjcmliZWQgYnkgdGhpcyBzcGVjaWZpY2F0aW9uIGFuZCwKK2ZvciBhbnkgb3B0aW9uYWwgc2VtYW50aWNzIGl0IGNob29zZXMgdG8gc3VwcG9ydCwgc3VwcG9ydHMgdGhlbSBpbiB0aGUgd2F5CitwcmVzY3JpYmVkLiA8IS0tSWYvd2hlbiB3ZSBzcGxpdCBvdXQgdGhlIFhMaW5rZnVuY3Rpb25hbGl0eQorKGUuZy4gaW5saW5lIGxpbmtzIGFuZCBvdXQtb2YtbGluZSBsaW5rcyksIHRoZQorY29uZm9ybWFuY2UgbGFuZ3VhZ2Ugd2lsbCBoYXZlIHRvIGFkZHJlc3MgdGhlIGRpZmZlcmVudAorbGV2ZWxzIG9mIHN1cHBvcnQuIC1lbG0tLT4gPC9wPgorPC9kaXYxPgorPC9ib2R5PjxiYWNrPgorPGRpdjEgaWQ9InVuZmluaXNoZWQiPgorPGhlYWQ+VW5maW5pc2hlZCBXb3JrPC9oZWFkPgorPGRpdjI+Cis8aGVhZD5TdHJ1Y3R1cmVkIFRpdGxlczwvaGVhZD4KKzxwPlRoZSBzaW1wbGUgdGl0bGUgbWVjaGFuaXNtIGRlc2NyaWJlZCBpbiB0aGlzIGRyYWZ0IGlzIGluc3VmZmljaWVudCB0byBjb3BlCit3aXRoIGludGVybmF0aW9uYWxpemF0aW9uIG9yIHRoZSB1c2Ugb2YgbXVsdGltZWRpYSBpbiBsaW5rIHRpdGxlcy4gQSBmdXR1cmUKK3ZlcnNpb24gd2lsbCBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciB0aGUgdXNlIG9mIHN0cnVjdHVyZWQgbGluayB0aXRsZXMuPC9wPgorPC9kaXYyPgorPC9kaXYxPgorPGRpdjE+Cis8aGVhZD5SZWZlcmVuY2VzPC9oZWFkPgorPGJsaXN0PgorPGJpYmwgaWQ9InhwdHIiIGtleT0iWFBUUiI+RXZlIE1hbGVyIGFuZCBTdGV2ZSBEZVJvc2UsIGVkaXRvcnMuIDx0aXRsZXJlZj4KK1hNTCBQb2ludGVyIExhbmd1YWdlIChYUG9pbnRlcikgVjEuMDwvdGl0bGVyZWY+LiBBcmJvclRleHQsIEluc28sIGFuZCBCcm93bgorVW5pdmVyc2l0eS4gQnVybGluZ3RvbiwgU2Vla29uaywgZXQgYWwuOiBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAxOTk4LgorKFNlZSA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXhwdHIiPmh0dHA6Ly93d3cudzMub3JnL1RSL1dELXhwdHIKKyA8L2xvYz4uKTwvYmlibD4KKzxiaWJsIGlkPSJpc28xMDc0NCIga2V5PSJJU08vSUVDIDEwNzQ0Ij5JU08gKEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvcgorU3RhbmRhcmRpemF0aW9uKS4gPHRpdGxlcmVmPklTTy9JRUMgMTA3NDQtMTk5MiAoRSkuIEluZm9ybWF0aW9uIHRlY2hub2xvZ3kKKy0gSHlwZXJtZWRpYS9UaW1lLWJhc2VkIFN0cnVjdHVyaW5nIExhbmd1YWdlIChIeVRpbWUpLjwvdGl0bGVyZWY+IFtHZW5ldmFdOgorSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiwgMTk5Mi4gPHRpdGxlcmVmPkV4dGVuZGVkCitGYWNpbGl0aWVzCitBbm5leC48L3RpdGxlcmVmPiBbR2VuZXZhXTogSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiwKKzE5OTYuIChTZWUgIDxsb2MgaHJlZj0iaHR0cDovL3d3dy5vcm5sLmdvdi9zZ21sL3dnOC9oeXRpbWUvaHRtbC9pczEwNzQ0ci5odG1sIj5odHRwOi8vd3d3Lm9ybmwuZ28KK3Yvc2dtbC93ZzgvaHl0aW1lL2h0bWwvaXMxMDc0NHIuaHRtbCA8L2xvYz4gPCEtLXAgbS1yIHNheXMgdGhpcyBsaW5rIGlzCiticm9rZW4uIGVsbSAtLT4gKS48L2JpYmw+Cis8YmlibCBpZD0icmZjMTczOCIga2V5PSJJRVRGIFJGQyAxNzM4Ij5JRVRGIChJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrCitGb3JjZSkuIDx0aXRsZXJlZj4KK1JGQyAxNzM4OiBVbmlmb3JtIFJlc291cmNlIExvY2F0b3JzPC90aXRsZXJlZj4uIDE5OTEuIChTZWUgIDxsb2MgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQWRkcmVzc2luZy9yZmMxNzM4LnR4dCI+CitodHRwOi8vd3d3LnczLm9yZy9BZGRyZXNzaW5nL3JmYzE3MzgudHh0PC9sb2M+KS48L2JpYmw+Cis8YmlibCBpZD0icmZjMTgwOCIga2V5PSJJRVRGIFJGQyAxODA4Ij5JRVRGIChJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrCitGb3JjZSkuIDx0aXRsZXJlZj4KK1JGQyAxODA4OiBSZWxhdGl2ZSBVbmlmb3JtIFJlc291cmNlIExvY2F0b3JzPC90aXRsZXJlZj4uIDE5OTUuIChTZWUgIDxsb2MgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQWRkcmVzc2luZy9yZmMxODA4LnR4dCI+aHR0cDovL3d3dy53My5vcmcvQWRkcmVzc2luZy9yZmMKKzE4MDgudHh0IDwvbG9jPikuPC9iaWJsPgorPGJpYmwgaWQ9InRlaSIga2V5PSJURUkiPkMuIE0uIFNwZXJiZXJnLU1jUXVlZW4gYW5kIExvdSBCdXJuYXJkLCBlZGl0b3JzLgorPHRpdGxlcmVmPgorR3VpZGVsaW5lcyBmb3IgRWxlY3Ryb25pYyBUZXh0IEVuY29kaW5nIGFuZCBJbnRlcmNoYW5nZTwvdGl0bGVyZWY+LiBBc3NvY2lhdGlvbgorZm9yIENvbXB1dGVycyBhbmQgdGhlIEh1bWFuaXRpZXMgKEFDSCksIEFzc29jaWF0aW9uIGZvciBDb21wdXRhdGlvbmFsCitMaW5ndWlzdGljcworKEFDTCksIGFuZCBBc3NvY2lhdGlvbiBmb3IgTGl0ZXJhcnkgYW5kIExpbmd1aXN0aWMgQ29tcHV0aW5nIChBTExDKS4gQ2hpY2FnbywKK094Zm9yZDogVGV4dCBFbmNvZGluZyBJbml0aWF0aXZlLCAxOTk0LiA8IS0tIGFkZCBjaXRlIHRvIERPTSB3b3JrIC0tPiA8L2JpYmw+Cis8YmlibCBpZD0iY2h1bSIga2V5PSJDSFVNIj5dU3RldmVuIEouIERlUm9zZSBhbmQgRGF2aWQgRy4gRHVyYW5kLiAxOTk1LiAiVGhlCitURUkgSHlwZXJ0ZXh0IEd1aWRlbGluZXMuIiBJbiA8dGl0bGVyZWY+Q29tcHV0aW5nIGFuZCB0aGUgSHVtYW5pdGllcworPC90aXRsZXJlZj4yOSgzKS4KK1JlcHJpbnRlZCBpbiA8dGl0bGVyZWY+VGV4dCBFbmNvZGluZyBJbml0aWF0aXZlOiBCYWNrZ3JvdW5kIGFuZAorQ29udGV4dDwvdGl0bGVyZWY+LAorZWQuIE5hbmN5IElkZSBhbmQgSmVhbiByb25pcyA8IS0tIGZpeCB0aGlzIG5hbWUgLS0+LCBJU0JOIDAtNzkyMy0zNzA0LTIuIDwvYmlibD4KKzwvYmxpc3Q+PC9kaXYxPgorPC9iYWNrPjwvc3BlYz4KKzw/UHViICowMDAwMDUyNTc1Pz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3ZhbGlkL3hsaW5rLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC94bGluay54bWwuZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4Yzg0YmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC92YWxpZC94bGluay54bWwuZXJyCkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L3ZhbGlkL3hsaW5rLnhtbDo0NTA6IGVsZW1lbnQgdGVybWRlZjogdmFsaWRpdHkgZXJyb3IgOiBJRCBkdC1hcmMgYWxyZWFkeSBkZWZpbmVkCisJPHA+PHRlcm1kZWYgaWQ9ImR0LWFyYyIgdGVybT0iQXJjIj5BbiA8dGVybT5hcmM8L3Rlcm0+IGlzIGNvbnRhaW5lZCB3aXRoaW4gYW4gZQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisuL3Rlc3QvdmFsaWQveGxpbmsueG1sOjUzMDogZWxlbWVudCB0ZXJtcmVmOiB2YWxpZGl0eSBlcnJvciA6IElEUkVGIGF0dHJpYnV0ZSBkZWYgcmVmZXJlbmNlcyBhbiB1bmtub3duIElEICJkdC14bGciCisKK14KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3dhcC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93YXAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NGI0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93YXAueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHdtbCBQVUJMSUMgIi0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4iICJodHRwOi8vZGFyay53YXBpdC5jb20vdnN3YXAvdGVzdHMvd2FwL0RURC93bWwxMS5kdGQiPgorPCEtLSAoQykgMTk5OSwgMjAwMCBXQVAgRm9ydW0gTHRkLiAgQWxsIHJpZ2h0cyByZXNlcnZlZCAtLT4KKzx3bWw+Cis8Y2FyZCBpZD0iY2FyZDEiPgorPG9uZXZlbnQgdHlwZT0ib25lbnRlcmZvcndhcmQiPgorPGdvIGhyZWY9Ii92c3dhcC9ydW4vcmVzdWx0LmVtbCI+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0idmFyIiB2YWx1ZT0iJHRlc3QiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ2IiB2YWx1ZT0iZGFyayIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InRzIiB2YWx1ZT0iMDAwMyIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InRwIiB2YWx1ZT0id21sL3N0YXRlL3ZhcmlhYmxlcy9wYXJzaW5nLzEiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ0aSIgdmFsdWU9IjEiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJleHBlY3RlZCIgdmFsdWU9InZhcjpwYXNzIi8+Cis8L2dvPgorPC9vbmV2ZW50PgorPHA+SWYgYXV0b21hdGljIHRlc3RpbmcgZmFpbGVkLCBzZWxlY3QgPGFuY2hvcj5GYWlsZWQ8Z28gaHJlZj0iL3Zzd2FwL3J1bi9yZXN1bHQuZW1sIj4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJTVUJNSVQiIHZhbHVlPSJObyIvPjxwb3N0ZmllbGQgbmFtZT0idiIgdmFsdWU9ImRhcmsiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ0cyIgdmFsdWU9IjAwMDMiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ0cCIgdmFsdWU9IndtbC9zdGF0ZS92YXJpYWJsZXMvcGFyc2luZy8xIi8+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0idGkiIHZhbHVlPSIxIi8+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0iZXhwZWN0ZWQiIHZhbHVlPSJ2YXI6cGFzcyIvPjwvZ28+PC9hbmNob3I+LjwvcD4KKzwvY2FyZD4KKworPC93bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93YXAueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dhcC54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4NjczODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93YXAueG1sLnJkZQpAQCAtMCwwICsxLDcwIEBACiswIDEwIHdtbCAwIDAKKzAgOCAjY29tbWVudCAwIDEgIChDKSAxOTk5LCAyMDAwIFdBUCBGb3J1bSBMdGQuICBBbGwgcmlnaHRzIHJlc2VydmVkIAorMCAxIHdtbCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisxIDEgY2FyZCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCisyIDEgb25ldmVudCAwIDAKKzMgMTQgI3RleHQgMCAxIAorCiszIDEgZ28gMCAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgcG9zdGZpZWxkIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIHBvc3RmaWVsZCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBwb3N0ZmllbGQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgcG9zdGZpZWxkIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIHBvc3RmaWVsZCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBwb3N0ZmllbGQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKworMyAxNSBnbyAwIDAKKzMgMTQgI3RleHQgMCAxIAorCisyIDE1IG9uZXZlbnQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworMiAxIHAgMCAwCiszIDMgI3RleHQgMCAxIElmIGF1dG9tYXRpYyB0ZXN0aW5nIGZhaWxlZCwgc2VsZWN0IAorMyAxIGFuY2hvciAwIDAKKzQgMyAjdGV4dCAwIDEgRmFpbGVkCis0IDEgZ28gMCAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis1IDEgcG9zdGZpZWxkIDEgMAorNSAxIHBvc3RmaWVsZCAxIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzUgMSBwb3N0ZmllbGQgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis1IDEgcG9zdGZpZWxkIDEgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNSAxIHBvc3RmaWVsZCAxIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzUgMSBwb3N0ZmllbGQgMSAwCis0IDE1IGdvIDAgMAorMyAxNSBhbmNob3IgMCAwCiszIDMgI3RleHQgMCAxIC4KKzIgMTUgcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCisxIDE1IGNhcmQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworCiswIDE1IHdtbCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3dhcC54bWwucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2FwLnhtbC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjg2NzM4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dhcC54bWwucmRyCkBAIC0wLDAgKzEsNzAgQEAKKzAgMTAgd21sIDAgMAorMCA4ICNjb21tZW50IDAgMSAgKEMpIDE5OTksIDIwMDAgV0FQIEZvcnVtIEx0ZC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQgCiswIDEgd21sIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKzEgMSBjYXJkIDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzIgMSBvbmV2ZW50IDAgMAorMyAxNCAjdGV4dCAwIDEgCisKKzMgMSBnbyAwIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBwb3N0ZmllbGQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgcG9zdGZpZWxkIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIHBvc3RmaWVsZCAxIDAKKzQgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzQgMSBwb3N0ZmllbGQgMSAwCis0IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis0IDEgcG9zdGZpZWxkIDEgMAorNCAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNCAxIHBvc3RmaWVsZCAxIDAKKzQgMTQgI3RleHQgMCAxIAorCiszIDE1IGdvIDAgMAorMyAxNCAjdGV4dCAwIDEgCisKKzIgMTUgb25ldmVudCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCisyIDEgcCAwIDAKKzMgMyAjdGV4dCAwIDEgSWYgYXV0b21hdGljIHRlc3RpbmcgZmFpbGVkLCBzZWxlY3QgCiszIDEgYW5jaG9yIDAgMAorNCAzICN0ZXh0IDAgMSBGYWlsZWQKKzQgMSBnbyAwIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzUgMSBwb3N0ZmllbGQgMSAwCis1IDEgcG9zdGZpZWxkIDEgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNSAxIHBvc3RmaWVsZCAxIDAKKzUgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzUgMSBwb3N0ZmllbGQgMSAwCis1IDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCis1IDEgcG9zdGZpZWxkIDEgMAorNSAxNCAjdGV4dCAwIDEgCisgICAgICAgIAorNSAxIHBvc3RmaWVsZCAxIDAKKzQgMTUgZ28gMCAwCiszIDE1IGFuY2hvciAwIDAKKzMgMyAjdGV4dCAwIDEgLgorMiAxNSBwIDAgMAorMiAxNCAjdGV4dCAwIDEgCisKKzEgMTUgY2FyZCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisKKzAgMTUgd21sIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2FwLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93YXAueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTg5ZTcwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2FwLnhtbC5zYXgKQEAgLTAsMCArMSw4NiBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQod21sLCAtLy9XQVBGT1JVTS8vRFREIFdNTCAxLjEvL0VOLCBodHRwOi8vZGFyay53YXBpdC5jb20vdnN3YXAvdGVzdHMvd2FwL0RURC93bWwxMS5kdGQpCitTQVguZXh0ZXJuYWxTdWJzZXQod21sLCAtLy9XQVBGT1JVTS8vRFREIFdNTCAxLjEvL0VOLCBodHRwOi8vZGFyay53YXBpdC5jb20vdnN3YXAvdGVzdHMvd2FwL0RURC93bWwxMS5kdGQpCitTQVguY29tbWVudCggKEMpIDE5OTksIDIwMDAgV0FQIEZvcnVtIEx0ZC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQgKQorU0FYLnN0YXJ0RWxlbWVudCh3bWwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoY2FyZCwgaWQ9J2NhcmQxJykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudChvbmV2ZW50LCB0eXBlPSdvbmVudGVyZm9yd2FyZCcpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5zdGFydEVsZW1lbnQoZ28sIGhyZWY9Jy92c3dhcC9ydW4vcmVzdWx0LmVtbCcpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChwb3N0ZmllbGQsIG5hbWU9J3ZhcicsIHZhbHVlPSckdGVzdCcpCitTQVguZW5kRWxlbWVudChwb3N0ZmllbGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChwb3N0ZmllbGQsIG5hbWU9J3YnLCB2YWx1ZT0nZGFyaycpCitTQVguZW5kRWxlbWVudChwb3N0ZmllbGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChwb3N0ZmllbGQsIG5hbWU9J3RzJywgdmFsdWU9JzAwMDMnKQorU0FYLmVuZEVsZW1lbnQocG9zdGZpZWxkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQocG9zdGZpZWxkLCBuYW1lPSd0cCcsIHZhbHVlPSd3bWwvc3RhdGUvdmFyaWFibGVzL3BhcnNpbmcvMScpCitTQVguZW5kRWxlbWVudChwb3N0ZmllbGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChwb3N0ZmllbGQsIG5hbWU9J3RpJywgdmFsdWU9JzEnKQorU0FYLmVuZEVsZW1lbnQocG9zdGZpZWxkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQocG9zdGZpZWxkLCBuYW1lPSdleHBlY3RlZCcsIHZhbHVlPSd2YXI6cGFzcycpCitTQVguZW5kRWxlbWVudChwb3N0ZmllbGQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KGdvKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChvbmV2ZW50KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhJZiBhdXRvbWF0aWMgdGVzdGluZyBmYWlsZWQsIHMsIDM2KQorU0FYLnN0YXJ0RWxlbWVudChhbmNob3IpCitTQVguY2hhcmFjdGVycyhGYWlsZWQsIDYpCitTQVguc3RhcnRFbGVtZW50KGdvLCBocmVmPScvdnN3YXAvcnVuL3Jlc3VsdC5lbWwnKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQocG9zdGZpZWxkLCBuYW1lPSdTVUJNSVQnLCB2YWx1ZT0nTm8nKQorU0FYLmVuZEVsZW1lbnQocG9zdGZpZWxkKQorU0FYLnN0YXJ0RWxlbWVudChwb3N0ZmllbGQsIG5hbWU9J3YnLCB2YWx1ZT0nZGFyaycpCitTQVguZW5kRWxlbWVudChwb3N0ZmllbGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChwb3N0ZmllbGQsIG5hbWU9J3RzJywgdmFsdWU9JzAwMDMnKQorU0FYLmVuZEVsZW1lbnQocG9zdGZpZWxkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQocG9zdGZpZWxkLCBuYW1lPSd0cCcsIHZhbHVlPSd3bWwvc3RhdGUvdmFyaWFibGVzL3BhcnNpbmcvMScpCitTQVguZW5kRWxlbWVudChwb3N0ZmllbGQpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChwb3N0ZmllbGQsIG5hbWU9J3RpJywgdmFsdWU9JzEnKQorU0FYLmVuZEVsZW1lbnQocG9zdGZpZWxkKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnQocG9zdGZpZWxkLCBuYW1lPSdleHBlY3RlZCcsIHZhbHVlPSd2YXI6cGFzcycpCitTQVguZW5kRWxlbWVudChwb3N0ZmllbGQpCitTQVguZW5kRWxlbWVudChnbykKK1NBWC5lbmRFbGVtZW50KGFuY2hvcikKK1NBWC5jaGFyYWN0ZXJzKC4sIDEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChjYXJkKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5lbmRFbGVtZW50KHdtbCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93YXAueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93YXAueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ0MGIyNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dhcC54bWwuc2F4MgpAQCAtMCwwICsxLDg3IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldCh3bWwsIC0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4sIGh0dHA6Ly9kYXJrLndhcGl0LmNvbS92c3dhcC90ZXN0cy93YXAvRFREL3dtbDExLmR0ZCkKK1NBWC5leHRlcm5hbFN1YnNldCh3bWwsIC0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4sIGh0dHA6Ly9kYXJrLndhcGl0LmNvbS92c3dhcC90ZXN0cy93YXAvRFREL3dtbDExLmR0ZCkKK1NBWC5jb21tZW50KCAoQykgMTk5OSwgMjAwMCBXQVAgRm9ydW0gTHRkLiAgQWxsIHJpZ2h0cyByZXNlcnZlZCApCitTQVguc3RhcnRFbGVtZW50TnMod21sLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50TnMoY2FyZCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgaWQ9J2NhcmQuLi4nLCA1KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50TnMob25ldmVudCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgdHlwZT0nb25lbi4uLicsIDE0KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguc3RhcnRFbGVtZW50TnMoZ28sIE5VTEwsIE5VTEwsIDAsIDEsIDAsIGhyZWY9Jy92c3cuLi4nLCAyMSkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocG9zdGZpZWxkLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBuYW1lPSd2YXIiLi4uJywgMywgdmFsdWU9JyR0ZXMuLi4nLCA1KQorU0FYLmVuZEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvc3RmaWVsZCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbmFtZT0ndiIgdi4uLicsIDEsIHZhbHVlPSdkYXJrLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnMocG9zdGZpZWxkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG5hbWU9J3RzIiAuLi4nLCAyLCB2YWx1ZT0nMDAwMy4uLicsIDQpCitTQVguZW5kRWxlbWVudE5zKHBvc3RmaWVsZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocG9zdGZpZWxkLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBuYW1lPSd0cCIgLi4uJywgMiwgdmFsdWU9J3dtbC8uLi4nLCAyOSkKK1NBWC5lbmRFbGVtZW50TnMocG9zdGZpZWxkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG5hbWU9J3RpIiAuLi4nLCAyLCB2YWx1ZT0nMSIvPi4uLicsIDEpCitTQVguZW5kRWxlbWVudE5zKHBvc3RmaWVsZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICAgICAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMocG9zdGZpZWxkLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBuYW1lPSdleHBlLi4uJywgOCwgdmFsdWU9J3ZhcjouLi4nLCA4KQorU0FYLmVuZEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoZ28sIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMob25ldmVudCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhJZiBhdXRvbWF0aWMgdGVzdGluZyBmYWlsZWQsIHMsIDM2KQorU0FYLnN0YXJ0RWxlbWVudE5zKGFuY2hvciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEZhaWxlZCwgNikKK1NBWC5zdGFydEVsZW1lbnROcyhnbywgTlVMTCwgTlVMTCwgMCwgMSwgMCwgaHJlZj0nL3Zzdy4uLicsIDIxKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG5hbWU9J1NVQk0uLi4nLCA2LCB2YWx1ZT0nTm8iLy4uLicsIDIpCitTQVguZW5kRWxlbWVudE5zKHBvc3RmaWVsZCwgTlVMTCwgTlVMTCkKK1NBWC5zdGFydEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG5hbWU9J3YiCit2Li4uJywgMSwgdmFsdWU9J2RhcmsuLi4nLCA0KQorU0FYLmVuZEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvc3RmaWVsZCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbmFtZT0ndHMiIC4uLicsIDIsIHZhbHVlPScwMDAzLi4uJywgNCkKK1NBWC5lbmRFbGVtZW50TnMocG9zdGZpZWxkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG5hbWU9J3RwIiAuLi4nLCAyLCB2YWx1ZT0nd21sLy4uLicsIDI5KQorU0FYLmVuZEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKHBvc3RmaWVsZCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgbmFtZT0ndGkiIC4uLicsIDIsIHZhbHVlPScxIi8+Li4uJywgMSkKK1NBWC5lbmRFbGVtZW50TnMocG9zdGZpZWxkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICAgICAgICwgOSkKK1NBWC5zdGFydEVsZW1lbnROcyhwb3N0ZmllbGQsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIG5hbWU9J2V4cGUuLi4nLCA4LCB2YWx1ZT0ndmFyOi4uLicsIDgpCitTQVguZW5kRWxlbWVudE5zKHBvc3RmaWVsZCwgTlVMTCwgTlVMTCkKK1NBWC5lbmRFbGVtZW50TnMoZ28sIE5VTEwsIE5VTEwpCitTQVguZW5kRWxlbWVudE5zKGFuY2hvciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKC4sIDEpCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoY2FyZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguZW5kRWxlbWVudE5zKHdtbCwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93aW5ibGFua3MueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2luYmxhbmtzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDQ0YWEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2luYmxhbmtzLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGE+CisgICAgPEI+CisgICAgICAgIDxDLz4gICAKKzwvQj4KKzwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3dpbmJsYW5rcy54bWwucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2luYmxhbmtzLnhtbC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY2YTVkMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dpbmJsYW5rcy54bWwucmRlCkBAIC0wLDAgKzEsMTMgQEAKKzAgMSBhIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgICAgCisxIDEgQiAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgICAgICAKKzIgMSBDIDEgMAorMiAxNCAjdGV4dCAwIDEgICAgCisKKzEgMTUgQiAwIDAKKzEgMTQgI3RleHQgMCAxIAorCiswIDE1IGEgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93aW5ibGFua3MueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dpbmJsYW5rcy54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNmE1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93aW5ibGFua3MueG1sLnJkcgpAQCAtMCwwICsxLDEzIEBACiswIDEgYSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAgIAorMSAxIEIgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAgICAgCisyIDEgQyAxIDAKKzIgMTQgI3RleHQgMCAxICAgIAorCisxIDE1IEIgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBhIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2luYmxhbmtzLnhtbC5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93aW5ibGFua3MueG1sLnNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmUzOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQvd2luYmxhbmtzLnhtbC5zYXgKQEAgLTAsMCArMSwxOCBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguc3RhcnRFbGVtZW50KGEpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KEIpCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudChDKQorU0FYLmVuZEVsZW1lbnQoQykKK1NBWC5jaGFyYWN0ZXJzKCAgICwgMykKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoQikKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93aW5ibGFua3MueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93aW5ibGFua3MueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU5ZDY5MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dpbmJsYW5rcy54bWwuc2F4MgpAQCAtMCwwICsxLDE4IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5zdGFydEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKEIsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAgICAgLCA5KQorU0FYLnN0YXJ0RWxlbWVudE5zKEMsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZW5kRWxlbWVudE5zKEMsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggICAsIDMpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMoQiwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorLCAxKQorU0FYLmVuZEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3dtbC54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhOTY1NjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHdtbCBQVUJMSUMgIi0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4iICJodHRwOi8vd3d3LndhcGZvcnVtLm9yZy9EVEQvd21sXzEuMS54bWwiPgorPHdtbD4KKyAgPGNhcmQgaWQ9ImNhcmQxIiB0aXRsZT0iUnVicmlxdWVzIDc1MDA4Ij4KKwk8cD4KKwkJPGEgaHJlZj0icnVibWVudS5hc3A/Q1A9NzUwMDgmYW1wO1JCPTAxIj5DaW4mI3hFOTttYTwvYT48YnIvPgorCTwvcD4KKworPC9jYXJkPgorPC93bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dtbC54bWwucmRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiYjI4ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnJkZQpAQCAtMCwwICsxLDI0IEBACiswIDEwIHdtbCAwIDAKKzAgMSB3bWwgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgY2FyZCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCQorMiAxIHAgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKwkJCiszIDEgYSAwIDAKKzQgMyAjdGV4dCAwIDEgQ2luw6ltYQorMyAxNSBhIDAgMAorMyAxIGJyIDEgMAorMyAxNCAjdGV4dCAwIDEgCisJCisyIDE1IHAgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworCisxIDE1IGNhcmQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSB3bWwgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dtbC54bWwucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiYjI4ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnJkcgpAQCAtMCwwICsxLDI0IEBACiswIDEwIHdtbCAwIDAKKzAgMSB3bWwgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgY2FyZCAwIDAKKzIgMTQgI3RleHQgMCAxIAorCQorMiAxIHAgMCAwCiszIDE0ICN0ZXh0IDAgMSAKKwkJCiszIDEgYSAwIDAKKzQgMyAjdGV4dCAwIDEgQ2luw6ltYQorMyAxNSBhIDAgMAorMyAxIGJyIDEgMAorMyAxNCAjdGV4dCAwIDEgCisJCisyIDE1IHAgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKworCisxIDE1IGNhcmQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSB3bWwgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dtbC54bWwuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2OTU5YmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnNheApAQCAtMCwwICsxLDMxIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldCh3bWwsIC0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4sIGh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCkKK1NBWC5leHRlcm5hbFN1YnNldCh3bWwsIC0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4sIGh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCkKK1NBWC5zdGFydEVsZW1lbnQod21sKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoY2FyZCwgaWQ9J2NhcmQxJywgdGl0bGU9J1J1YnJpcXVlcyA3NTAwOCcpCitTQVguY2hhcmFjdGVycygKKwksIDIpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKwkJLCAzKQorU0FYLnN0YXJ0RWxlbWVudChhLCBocmVmPSdydWJtZW51LmFzcD9DUD03NTAwOCYjMzg7UkI9MDEnKQorU0FYLmNoYXJhY3RlcnMoQ2luLCAzKQorU0FYLmNoYXJhY3RlcnMow6ksIDIpCitTQVguY2hhcmFjdGVycyhtYSwgMikKK1NBWC5lbmRFbGVtZW50KGEpCitTQVguc3RhcnRFbGVtZW50KGJyKQorU0FYLmVuZEVsZW1lbnQoYnIpCitTQVguY2hhcmFjdGVycygKKwksIDIpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisKKywgMikKK1NBWC5lbmRFbGVtZW50KGNhcmQpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50KHdtbCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC93bWwueG1sLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM4NjE0OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3dtbC54bWwuc2F4MgpAQCAtMCwwICsxLDMxIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldCh3bWwsIC0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4sIGh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCkKK1NBWC5leHRlcm5hbFN1YnNldCh3bWwsIC0vL1dBUEZPUlVNLy9EVEQgV01MIDEuMS8vRU4sIGh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC93bWxfMS4xLnhtbCkKK1NBWC5zdGFydEVsZW1lbnROcyh3bWwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGNhcmQsIE5VTEwsIE5VTEwsIDAsIDIsIDAsIGlkPSdjYXJkLi4uJywgNSwgdGl0bGU9J1J1YnIuLi4nLCAxNSkKK1NBWC5jaGFyYWN0ZXJzKAorCSwgMikKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisJCSwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBocmVmPSdydWJtLi4uJywgMzApCitTQVguY2hhcmFjdGVycyhDaW4sIDMpCitTQVguY2hhcmFjdGVycyjDqSwgMikKK1NBWC5jaGFyYWN0ZXJzKG1hLCAyKQorU0FYLmVuZEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMKQorU0FYLnN0YXJ0RWxlbWVudE5zKGJyLCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmVuZEVsZW1lbnROcyhiciwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCSwgMikKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguZW5kRWxlbWVudE5zKGNhcmQsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKywgMSkKK1NBWC5lbmRFbGVtZW50TnMod21sLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzA2YTk1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWwxCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8IS0tIDMuMS4xIDMvIC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICA8aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgLz4KKyAgICA8dGl0bGU+VmlydHVhbCBMaWJyYXJ5PC90aXRsZT4KKyAgPC9oZWFkPgorICA8IS0tIDQuOCAtLT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAuLi4gdW5lc2NhcGVkIHNjcmlwdCAmbHQ7IGNvbnRlbnQgLi4uCisgIDwvc2NyaXB0PgorICA8Ym9keT4KKyAgICA8cD5Nb3ZlZCB0byA8YSBocmVmPSJodHRwOi8vZXhhbXBsZS5vcmcvIj5leGFtcGxlLm9yZzwvYT4uPC9wPgorICA8L2JvZHk+CisgIDwhLS0gQzIgLS0+CisgIDxpbWcgc3JjPSJmb28uZ2lmIiBhbHQ9ImZvbyIgLz4KKyAgPCEtLSBDMyAtLT4KKyAgPHA+PC9wPgorICA8IS0tIEM3IC0tPgorICA8cCBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj5jb3Vjb3U8L3A+CisgIDxwIHhtbDpsYW5nPSJmciIgbGFuZz0iZnIiPnNhbHV0PC9wPgorICA8IS0tIEM4IC0tPgorICA8cCBuYW1lPSJmcmFnaWQiIGlkPSJmcmFnaWQiPnRlc3Q8L3A+CisgIDwhLS0gNC41IC0tPgorICA8ZGwgY29tcGFjdD0iY29tcGFjdCI+CisgIDxkdD5JbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmNlPC9kdD4KKyAgPGRkPkFuIG9yZ2FuaXphdGlvbiB3aGljaCBlc3RhYmxpc2hlcyB0ZWNobmljYWwgc3RhbmRhcmRzIGZvciB0aGUgSW50ZXJuZXQ8L2RkPgorICA8L2RsPgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94aHRtbDEucmRlIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWwxLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDJjYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWwxLnJkZQpAQCAtMCwwICsxLDk1IEBACiswIDEwIGh0bWwgMCAwCiswIDggI2NvbW1lbnQgMCAxICAzLjEuMSAzLyAKKzAgMSBodG1sIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGhlYWQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgICAKKzIgMSB0aXRsZSAwIDAKKzMgMyAjdGV4dCAwIDEgVmlydHVhbCBMaWJyYXJ5CisyIDE1IHRpdGxlIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBoZWFkIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSA4ICNjb21tZW50IDAgMSAgNC44IAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIHNjcmlwdCAwIDAKKzIgMyAjdGV4dCAwIDEgCisgIC4uLiB1bmVzY2FwZWQgc2NyaXB0IDwgY29udGVudCAuLi4KKyAgCisxIDE1IHNjcmlwdCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBib2R5IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgcCAwIDAKKzMgMyAjdGV4dCAwIDEgTW92ZWQgdG8gCiszIDEgYSAwIDAKKzQgMyAjdGV4dCAwIDEgZXhhbXBsZS5vcmcKKzMgMTUgYSAwIDAKKzMgMyAjdGV4dCAwIDEgLgorMiAxNSBwIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBib2R5IDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSA4ICNjb21tZW50IDAgMSAgQzIgCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgaW1nIDEgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSA4ICNjb21tZW50IDAgMSAgQzMgCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgcCAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgOCAjY29tbWVudCAwIDEgIEM3IAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIHAgMCAwCisyIDMgI3RleHQgMCAxIGNvdWNvdQorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIHAgMCAwCisyIDMgI3RleHQgMCAxIHNhbHV0CisxIDE1IHAgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDggI2NvbW1lbnQgMCAxICBDOCAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSB0ZXN0CisxIDE1IHAgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDggI2NvbW1lbnQgMCAxICA0LjUgCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgZGwgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgZHQgMCAwCiszIDMgI3RleHQgMCAxIEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2UKKzIgMTUgZHQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisyIDEgZGQgMCAwCiszIDMgI3RleHQgMCAxIEFuIG9yZ2FuaXphdGlvbiB3aGljaCBlc3RhYmxpc2hlcyB0ZWNobmljYWwgc3RhbmRhcmRzIGZvciB0aGUgSW50ZXJuZXQKKzIgMTUgZGQgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGRsIDAgMAorMSAxNCAjdGV4dCAwIDEgCisKKworMCAxNSBodG1sIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWwxLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sMS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQyY2MyNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sMS5yZHIKQEAgLTAsMCArMSw5NSBAQAorMCAxMCBodG1sIDAgMAorMCA4ICNjb21tZW50IDAgMSAgMy4xLjEgMy8gCiswIDEgaHRtbCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBoZWFkIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgICAgCisyIDEgdGl0bGUgMCAwCiszIDMgI3RleHQgMCAxIFZpcnR1YWwgTGlicmFyeQorMiAxNSB0aXRsZSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgaGVhZCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgOCAjY29tbWVudCAwIDEgIDQuOCAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBzY3JpcHQgMCAwCisyIDMgI3RleHQgMCAxIAorICAuLi4gdW5lc2NhcGVkIHNjcmlwdCA8IGNvbnRlbnQgLi4uCisgIAorMSAxNSBzY3JpcHQgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgYm9keSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIHAgMCAwCiszIDMgI3RleHQgMCAxIE1vdmVkIHRvIAorMyAxIGEgMCAwCis0IDMgI3RleHQgMCAxIGV4YW1wbGUub3JnCiszIDE1IGEgMCAwCiszIDMgI3RleHQgMCAxIC4KKzIgMTUgcCAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAKKzEgMTUgYm9keSAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgOCAjY29tbWVudCAwIDEgIEMyIAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGltZyAxIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgOCAjY29tbWVudCAwIDEgIEMzIAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIHAgMSAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDggI2NvbW1lbnQgMCAxICBDNyAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSBjb3Vjb3UKKzEgMTUgcCAwIDAKKzEgMTQgI3RleHQgMCAxIAorICAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSBzYWx1dAorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSA4ICNjb21tZW50IDAgMSAgQzggCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgcCAwIDAKKzIgMyAjdGV4dCAwIDEgdGVzdAorMSAxNSBwIDAgMAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSA4ICNjb21tZW50IDAgMSAgNC41IAorMSAxNCAjdGV4dCAwIDEgCisgIAorMSAxIGRsIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIGR0IDAgMAorMyAzICN0ZXh0IDAgMSBJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmNlCisyIDE1IGR0IDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMiAxIGRkIDAgMAorMyAzICN0ZXh0IDAgMSBBbiBvcmdhbml6YXRpb24gd2hpY2ggZXN0YWJsaXNoZXMgdGVjaG5pY2FsIHN0YW5kYXJkcyBmb3IgdGhlIEludGVybmV0CisyIDE1IGRkIDAgMAorMiAxNCAjdGV4dCAwIDEgCisgIAorMSAxNSBkbCAwIDAKKzEgMTQgI3RleHQgMCAxIAorCisKKzAgMTUgaHRtbCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sMS5zYXggYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94aHRtbDEuc2F4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNGZhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94aHRtbDEuc2F4CkBAIC0wLDAgKzEsMTAzIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChodG1sLCAtLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCkKK1NBWC5leHRlcm5hbFN1YnNldChodG1sLCAtLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCkKK1NBWC5jb21tZW50KCAzLjEuMSAzLyApCitTQVguc3RhcnRFbGVtZW50KGh0bWwsIHhtbDpsYW5nPSdlbicsIGxhbmc9J2VuJykKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGhlYWQpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoVmlydHVhbCBMaWJyYXJ5LCAxNSkKK1NBWC5lbmRFbGVtZW50KHRpdGxlKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGhlYWQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIDQuOCApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChzY3JpcHQsIHR5cGU9J3RleHQvamF2YXNjcmlwdCcpCitTQVguY2hhcmFjdGVycygKKyAgLi4uIHVuZXNjYXBlZCBzY3JpcHQgLCAyNCkKK1NBWC5jaGFyYWN0ZXJzKDwsIDEpCitTQVguY2hhcmFjdGVycyggY29udGVudCAuLi4KKyAgLCAxNSkKK1NBWC5lbmRFbGVtZW50KHNjcmlwdCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGJvZHkpCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhNb3ZlZCB0byAsIDkpCitTQVguc3RhcnRFbGVtZW50KGEsIGhyZWY9J2h0dHA6Ly9leGFtcGxlLm9yZy8nKQorU0FYLmNoYXJhY3RlcnMoZXhhbXBsZS5vcmcsIDExKQorU0FYLmVuZEVsZW1lbnQoYSkKK1NBWC5jaGFyYWN0ZXJzKC4sIDEpCitTQVguZW5kRWxlbWVudChwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50KGJvZHkpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIEMyICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGltZywgc3JjPSdmb28uZ2lmJywgYWx0PSdmb28nKQorU0FYLmVuZEVsZW1lbnQoaW1nKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5jb21tZW50KCBDMyApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChwKQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguY29tbWVudCggQzcgKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQocCwgbGFuZz0nZnInKQorU0FYLmNoYXJhY3RlcnMoY291Y291LCA2KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHAsIHhtbDpsYW5nPSdmcicpCitTQVguY2hhcmFjdGVycyhzYWx1dCwgNSkKK1NBWC5lbmRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIEM4ICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KHAsIG5hbWU9J2ZyYWdpZCcpCitTQVguY2hhcmFjdGVycyh0ZXN0LCA0KQorU0FYLmVuZEVsZW1lbnQocCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguY29tbWVudCggNC41ICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50KGRsLCBjb21wYWN0PScnKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnQoZHQpCitTQVguY2hhcmFjdGVycyhJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmMsIDMxKQorU0FYLmVuZEVsZW1lbnQoZHQpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChkZCkKK1NBWC5jaGFyYWN0ZXJzKEFuIG9yZ2FuaXphdGlvbiB3aGljaCBlc3RhYmxpcywgNzApCitTQVguZW5kRWxlbWVudChkZCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChkbCkKK1NBWC5jaGFyYWN0ZXJzKAorCissIDIpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sMS5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWwxLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5NTJjOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sMS5zYXgyCkBAIC0wLDAgKzEsMTA0IEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldChodG1sLCAtLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCkKK1NBWC5leHRlcm5hbFN1YnNldChodG1sLCAtLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiwgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCkKK1NBWC5jb21tZW50KCAzLjEuMSAzLyApCitTQVguc3RhcnRFbGVtZW50TnMoaHRtbCwgTlVMTCwgTlVMTCwgMCwgMiwgMCwgeG1sOmxhbmc9J2VuIiAuLi4nLCAyLCBsYW5nPSdlbiI+Li4uJywgMikKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMoaGVhZCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKAorICAgICwgNSkKK1NBWC5zdGFydEVsZW1lbnROcyh0aXRsZSwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKFZpcnR1YWwgTGlicmFyeSwgMTUpCitTQVguZW5kRWxlbWVudE5zKHRpdGxlLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoaGVhZCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguY29tbWVudCggNC44ICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMoc2NyaXB0LCBOVUxMLCBOVUxMLCAwLCAxLCAwLCB0eXBlPSd0ZXh0Li4uJywgMTUpCitTQVguY2hhcmFjdGVycygKKyAgLi4uIHVuZXNjYXBlZCBzY3JpcHQgLCAyNCkKK1NBWC5jaGFyYWN0ZXJzKDwsIDEpCitTQVguY2hhcmFjdGVycyggY29udGVudCAuLi4KKyAgLCAxNSkKK1NBWC5lbmRFbGVtZW50TnMoc2NyaXB0LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhib2R5LCBOVUxMLCBOVUxMLCAwLCAwLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudE5zKHAsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycyhNb3ZlZCB0byAsIDkpCitTQVguc3RhcnRFbGVtZW50TnMoYSwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgaHJlZj0naHR0cC4uLicsIDE5KQorU0FYLmNoYXJhY3RlcnMoZXhhbXBsZS5vcmcsIDExKQorU0FYLmVuZEVsZW1lbnROcyhhLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoLiwgMSkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudE5zKGJvZHksIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIEMyICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMoaW1nLCBOVUxMLCBOVUxMLCAwLCAyLCAwLCBzcmM9J2Zvby4uLi4nLCA3LCBhbHQ9J2ZvbyIuLi4nLCAzKQorU0FYLmVuZEVsZW1lbnROcyhpbWcsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIEMzICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguY29tbWVudCggQzcgKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMLCAwLCAxLCAwLCBsYW5nPSdmciI+Li4uJywgMikKK1NBWC5jaGFyYWN0ZXJzKGNvdWNvdSwgNikKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgeG1sOmxhbmc9J2ZyIj4uLi4nLCAyKQorU0FYLmNoYXJhY3RlcnMoc2FsdXQsIDUpCitTQVguZW5kRWxlbWVudE5zKHAsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmNvbW1lbnQoIEM4ICkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgbmFtZT0nZnJhZy4uLicsIDYpCitTQVguY2hhcmFjdGVycyh0ZXN0LCA0KQorU0FYLmVuZEVsZW1lbnROcyhwLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5jb21tZW50KCA0LjUgKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhkbCwgTlVMTCwgTlVMTCwgMCwgMSwgMCwgY29tcGFjdD0nIj4KKyAuLi4nLCAwKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhkdCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yYywgMzEpCitTQVguZW5kRWxlbWVudE5zKGR0LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5zdGFydEVsZW1lbnROcyhkZCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEFuIG9yZ2FuaXphdGlvbiB3aGljaCBlc3RhYmxpcywgNzApCitTQVguZW5kRWxlbWVudE5zKGRkLCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCisgICwgMykKK1NBWC5lbmRFbGVtZW50TnMoZGwsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKworLCAyKQorU0FYLmVuZEVsZW1lbnROcyhodG1sLCBOVUxMLCBOVUxMKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2U2MzRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWxjb21wCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgIDxib2R5PgorICAgIDxoMT48YWJicj5hPC9hYmJyPiBiPC9oMT4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWxjb21wLnJkZSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5yZGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc1MTdiNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5yZGUKQEAgLTAsMCArMSwxOSBAQAorMCAxMCBodG1sIDAgMAorMCAxIGh0bWwgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgYm9keSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGgxIDAgMAorMyAxIGFiYnIgMCAwCis0IDMgI3RleHQgMCAxIGEKKzMgMTUgYWJiciAwIDAKKzMgMyAjdGV4dCAwIDEgIGIKKzIgMTUgaDEgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGJvZHkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBodG1sIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWxjb21wLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc1MTdiNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5yZHIKQEAgLTAsMCArMSwxOSBAQAorMCAxMCBodG1sIDAgMAorMCAxIGh0bWwgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDEgYm9keSAwIDAKKzIgMTQgI3RleHQgMCAxIAorICAgIAorMiAxIGgxIDAgMAorMyAxIGFiYnIgMCAwCis0IDMgI3RleHQgMCAxIGEKKzMgMTUgYWJiciAwIDAKKzMgMyAjdGV4dCAwIDEgIGIKKzIgMTUgaDEgMCAwCisyIDE0ICN0ZXh0IDAgMSAKKyAgCisxIDE1IGJvZHkgMCAwCisxIDE0ICN0ZXh0IDAgMSAKKworMCAxNSBodG1sIDAgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWxjb21wLnNheCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdhMGQ2OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5zYXgKQEAgLTAsMCArMSwyMyBAQAorU0FYLnNldERvY3VtZW50TG9jYXRvcigpCitTQVguc3RhcnREb2N1bWVudCgpCitTQVguaW50ZXJuYWxTdWJzZXQoaHRtbCwgLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4sIGh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQpCitTQVguZXh0ZXJuYWxTdWJzZXQoaHRtbCwgLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4sIGh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQpCitTQVguc3RhcnRFbGVtZW50KGh0bWwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudChib2R5KQorU0FYLmNoYXJhY3RlcnMoCisgICAgLCA1KQorU0FYLnN0YXJ0RWxlbWVudChoMSkKK1NBWC5zdGFydEVsZW1lbnQoYWJicikKK1NBWC5jaGFyYWN0ZXJzKGEsIDEpCitTQVguZW5kRWxlbWVudChhYmJyKQorU0FYLmNoYXJhY3RlcnMoIGIsIDIpCitTQVguZW5kRWxlbWVudChoMSkKK1NBWC5jaGFyYWN0ZXJzKAorICAsIDMpCitTQVguZW5kRWxlbWVudChib2R5KQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudChodG1sKQorU0FYLmVuZERvY3VtZW50KCkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5zYXgyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveGh0bWxjb21wLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg1Yjc3MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3hodG1sY29tcC5zYXgyCkBAIC0wLDAgKzEsMjMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KGh0bWwsIC0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOLCBodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkKQorU0FYLmV4dGVybmFsU3Vic2V0KGh0bWwsIC0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOLCBodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkKQorU0FYLnN0YXJ0RWxlbWVudE5zKGh0bWwsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLnN0YXJ0RWxlbWVudE5zKGJvZHksIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguY2hhcmFjdGVycygKKyAgICAsIDUpCitTQVguc3RhcnRFbGVtZW50TnMoaDEsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguc3RhcnRFbGVtZW50TnMoYWJiciwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKGEsIDEpCitTQVguZW5kRWxlbWVudE5zKGFiYnIsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycyggYiwgMikKK1NBWC5lbmRFbGVtZW50TnMoaDEsIE5VTEwsIE5VTEwpCitTQVguY2hhcmFjdGVycygKKyAgLCAzKQorU0FYLmVuZEVsZW1lbnROcyhib2R5LCBOVUxMLCBOVUxMKQorU0FYLmNoYXJhY3RlcnMoCissIDEpCitTQVguZW5kRWxlbWVudE5zKGh0bWwsIE5VTEwsIE5VTEwpCitTQVguZW5kRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMSBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMyZjU2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDEKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB0ZXN0IFsKKzwhRU5USVRZIGV4YW1wbGUgIjxwPkFuIGFtcGVyc2FuZCAoJiMzODsjMzg7KSBtYXkgYmUgZXNjYXBlZAorIG51bWVyaWNhbGx5ICgmIzM4OyMzODsjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKyAgKCZhbXA7YW1wOykuPC9wPiI+CitdPgorPHRlc3Q+JmV4YW1wbGU7PC90ZXN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMS5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWwxLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2Q2MTU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMS5yZGUKQEAgLTAsMCArMSw4IEBACiswIDEwIHRlc3QgMCAwCiswIDEgdGVzdCAwIDAKKzEgMSBwIDAgMAorMiAzICN0ZXh0IDAgMSBBbiBhbXBlcnNhbmQgKCYpIG1heSBiZSBlc2NhcGVkCisgbnVtZXJpY2FsbHkgKCYjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKyAgKCZhbXA7KS4KKzEgMTUgcCAwIDAKKzAgMTUgdGVzdCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDEucmRyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMS5yZHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM5Yjk0MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDEucmRyCkBAIC0wLDAgKzEsNCBAQAorMCAxMCB0ZXN0IDAgMAorMCAxIHRlc3QgMCAwCisxIDUgZXhhbXBsZSAwIDAKKzAgMTUgdGVzdCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDEuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMS5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNmODgxYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDEuc2F4CkBAIC0wLDAgKzEsMjMgQEAKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHRlc3QsICwgKQorU0FYLmVudGl0eURlY2woZXhhbXBsZSwgMSwgKG51bGwpLCAobnVsbCksIDxwPkFuIGFtcGVyc2FuZCAoJiMzODspIG1heSBiZSBlc2NhcGVkCisgbnVtZXJpY2FsbHkgKCYjMzg7IzM4Oykgb3Igd2l0aCBhIGdlbmVyYWwgZW50aXR5CisgICgmYW1wO2FtcDspLjwvcD4pCitTQVguZ2V0RW50aXR5KGV4YW1wbGUpCitTQVguZXh0ZXJuYWxTdWJzZXQodGVzdCwgLCApCitTQVguc3RhcnRFbGVtZW50KHRlc3QpCitTQVguZ2V0RW50aXR5KGV4YW1wbGUpCitTQVguc3RhcnRFbGVtZW50KHApCitTQVguY2hhcmFjdGVycyhBbiBhbXBlcnNhbmQgKCwgMTQpCitTQVguY2hhcmFjdGVycygmLCAxKQorU0FYLmNoYXJhY3RlcnMoKSBtYXkgYmUgZXNjYXBlZAorIG51bWVyaWNhbGx5ICwgMzEpCitTQVguY2hhcmFjdGVycygmLCAxKQorU0FYLmNoYXJhY3RlcnMoIzM4Oykgb3Igd2l0aCBhIGdlbmVyYWwgZW50aXR5LCAzNCkKK1NBWC5jaGFyYWN0ZXJzKCYsIDEpCitTQVguY2hhcmFjdGVycyhhbXA7KS4sIDYpCitTQVguZW5kRWxlbWVudChwKQorU0FYLnJlZmVyZW5jZShleGFtcGxlKQorU0FYLmVuZEVsZW1lbnQodGVzdCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWwxLnNheDIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWwxLnNheDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyMjBmMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDEuc2F4MgpAQCAtMCwwICsxLDIzIEBACitTQVguc2V0RG9jdW1lbnRMb2NhdG9yKCkKK1NBWC5zdGFydERvY3VtZW50KCkKK1NBWC5pbnRlcm5hbFN1YnNldCh0ZXN0LCAsICkKK1NBWC5lbnRpdHlEZWNsKGV4YW1wbGUsIDEsIChudWxsKSwgKG51bGwpLCA8cD5BbiBhbXBlcnNhbmQgKCYjMzg7KSBtYXkgYmUgZXNjYXBlZAorIG51bWVyaWNhbGx5ICgmIzM4OyMzODspIG9yIHdpdGggYSBnZW5lcmFsIGVudGl0eQorICAoJmFtcDthbXA7KS48L3A+KQorU0FYLmdldEVudGl0eShleGFtcGxlKQorU0FYLmV4dGVybmFsU3Vic2V0KHRlc3QsICwgKQorU0FYLnN0YXJ0RWxlbWVudE5zKHRlc3QsIE5VTEwsIE5VTEwsIDAsIDAsIDApCitTQVguZ2V0RW50aXR5KGV4YW1wbGUpCitTQVguc3RhcnRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCwgMCwgMCwgMCkKK1NBWC5jaGFyYWN0ZXJzKEFuIGFtcGVyc2FuZCAoLCAxNCkKK1NBWC5jaGFyYWN0ZXJzKCYsIDEpCitTQVguY2hhcmFjdGVycygpIG1heSBiZSBlc2NhcGVkCisgbnVtZXJpY2FsbHkgLCAzMSkKK1NBWC5jaGFyYWN0ZXJzKCYsIDEpCitTQVguY2hhcmFjdGVycygjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHksIDM0KQorU0FYLmNoYXJhY3RlcnMoJiwgMSkKK1NBWC5jaGFyYWN0ZXJzKGFtcDspLiwgNikKK1NBWC5lbmRFbGVtZW50TnMocCwgTlVMTCwgTlVMTCkKK1NBWC5yZWZlcmVuY2UoZXhhbXBsZSkKK1NBWC5lbmRFbGVtZW50TnModGVzdCwgTlVMTCwgTlVMTCkKK1NBWC5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWwyIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjZiMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMgpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHRlc3QgWworPCFFTEVNRU5UIHRlc3QgKCNQQ0RBVEEpPgorPCFFTlRJVFkgJSB4eCAiJiMzNzt6ejsiPgorPCFFTlRJVFkgJSB6eiAnJiM2MDshRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID4nPgorPCFFTlRJVFkgdHJpY2t5ICJlcnJvci1wcm9uZSI+CitdPgorPHRlc3Q+VGhpcyBzYW1wbGUgc2hvd3MgYSAmdHJpY2t5OyBtZXRob2QuPC90ZXN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMi5yZGUgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWwyLnJkZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmRmMjE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMi5yZGUKQEAgLTAsMCArMSw0IEBACiswIDEwIHRlc3QgMCAwCiswIDEgdGVzdCAwIDAKKzEgMyAjdGV4dCAwIDEgVGhpcyBzYW1wbGUgc2hvd3MgYSBlcnJvci1wcm9uZSBtZXRob2QuCiswIDE1IHRlc3QgMCAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWwyLnJkciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDIucmRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZGNlMmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWwyLnJkcgpAQCAtMCwwICsxLDYgQEAKKzAgMTAgdGVzdCAwIDAKKzAgMSB0ZXN0IDAgMAorMSAzICN0ZXh0IDAgMSBUaGlzIHNhbXBsZSBzaG93cyBhIAorMSA1IHRyaWNreSAwIDAKKzEgMyAjdGV4dCAwIDEgIG1ldGhvZC4KKzAgMTUgdGVzdCAwIDAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDIuc2F4IGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMi5zYXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQxYWNjZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDIuc2F4CkBAIC0wLDAgKzEsMTggQEAKK3htbFNBWFVzZXJQYXJzZUZpbGUgcmV0dXJuZWQgZXJyb3IgMjcKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHRlc3QsICwgKQorU0FYLmVsZW1lbnREZWNsKHRlc3QsIDMsIC4uLikKK1NBWC5lbnRpdHlEZWNsKHh4LCA0LCAobnVsbCksIChudWxsKSwgJXp6OykKK1NBWC5nZXRQYXJhbWV0ZXJFbnRpdHkoeHgpCitTQVguZW50aXR5RGVjbCh6eiwgNCwgKG51bGwpLCAobnVsbCksIDwhRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID4pCitTQVguZ2V0UGFyYW1ldGVyRW50aXR5KHp6KQorU0FYLmdldFBhcmFtZXRlckVudGl0eSh4eCkKK1NBWC5lcnJvcjogUEVSZWZlcmVuY2U6ICV4eDsgbm90IGZvdW5kCitTQVguY2hhcmFjdGVycyhUaGlzIHNhbXBsZSBzaG93cyBhICwgMjApCitTQVguZ2V0RW50aXR5KHRyaWNreSkKK1NBWC5lcnJvcjogRW50aXR5ICd0cmlja3knIG5vdCBkZWZpbmVkCitTQVgucmVmZXJlbmNlKHRyaWNreSkKK1NBWC5jaGFyYWN0ZXJzKCBtZXRob2QuLCA4KQorU0FYLmVuZERvY3VtZW50KCkKK3htbFNBWFVzZXJQYXJzZUZpbGUgcmV0dXJuZWQgZXJyb3IgMjcKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDIuc2F4MiBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbDIuc2F4MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDFhY2NkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1sMi5zYXgyCkBAIC0wLDAgKzEsMTggQEAKK3htbFNBWFVzZXJQYXJzZUZpbGUgcmV0dXJuZWQgZXJyb3IgMjcKK1NBWC5zZXREb2N1bWVudExvY2F0b3IoKQorU0FYLnN0YXJ0RG9jdW1lbnQoKQorU0FYLmludGVybmFsU3Vic2V0KHRlc3QsICwgKQorU0FYLmVsZW1lbnREZWNsKHRlc3QsIDMsIC4uLikKK1NBWC5lbnRpdHlEZWNsKHh4LCA0LCAobnVsbCksIChudWxsKSwgJXp6OykKK1NBWC5nZXRQYXJhbWV0ZXJFbnRpdHkoeHgpCitTQVguZW50aXR5RGVjbCh6eiwgNCwgKG51bGwpLCAobnVsbCksIDwhRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID4pCitTQVguZ2V0UGFyYW1ldGVyRW50aXR5KHp6KQorU0FYLmdldFBhcmFtZXRlckVudGl0eSh4eCkKK1NBWC5lcnJvcjogUEVSZWZlcmVuY2U6ICV4eDsgbm90IGZvdW5kCitTQVguY2hhcmFjdGVycyhUaGlzIHNhbXBsZSBzaG93cyBhICwgMjApCitTQVguZ2V0RW50aXR5KHRyaWNreSkKK1NBWC5lcnJvcjogRW50aXR5ICd0cmlja3knIG5vdCBkZWZpbmVkCitTQVgucmVmZXJlbmNlKHRyaWNreSkKK1NBWC5jaGFyYWN0ZXJzKCBtZXRob2QuLCA4KQorU0FYLmVuZERvY3VtZW50KCkKK3htbFNBWFVzZXJQYXJzZUZpbGUgcmV0dXJuZWQgZXJyb3IgMjcKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX2VycjEueG1sIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfZXJyMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU0N2FmZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX2VycjEueG1sCkBAIC0wLDAgKzEsMiBAQAorT2JqZWN0IGlzIGEgTm9kZSBTZXQgOgorU2V0IGNvbnRhaW5zIDAgbm9kZXM6CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF9lcnIxLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF9lcnIxLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWVmZWI0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX2VycjEueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC94bWxpZC9pZF9lcnIxLnhtbDoxOiB2YWxpZGl0eSBlcnJvciA6IHhtbDppZCA6IGF0dHJpYnV0ZSB2YWx1ZSAwYmFyIGlzIG5vdCBhbiBOQ05hbWUKKzxmb28geG1sOmlkPSIwYmFyIi8+CisgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF9lcnIyLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX2VycjIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZWU4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF9lcnIyLnhtbApAQCAtMCwwICsxLDYgQEAKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBmb28KKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1iYXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX2VycjIueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX2VycjIueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTk3NGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfZXJyMi54bWwuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L3htbGlkL2lkX2VycjIueG1sOjM6IHZhbGlkaXR5IGVycm9yIDogeG1sOmlkIDogYXR0cmlidXRlIHR5cGUgc2hvdWxkIGJlIElECis8IUFUVExJU1QgZm9vIHhtbDppZCBDREFUQSAjSU1QTElFRD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfdHN0MS54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2VlODk2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfdHN0MS54bWwKQEAgLTAsMCArMSw2IEBACitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgZm9vCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9YmFyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QxLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QxLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDEueG1sLmVycgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfdHN0Mi54bWwgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2VlODk2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfdHN0Mi54bWwKQEAgLTAsMCArMSw2IEBACitPYmplY3QgaXMgYSBOb2RlIFNldCA6CitTZXQgY29udGFpbnMgMSBub2RlczoKKzEgIEVMRU1FTlQgZm9vCisgICAgQVRUUklCVVRFIGlkCisgICAgICBURVhUCisgICAgICAgIGNvbnRlbnQ9YmFyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QyLnhtbC5lcnIgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QyLnhtbC5lcnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkwZDQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDIueG1sLmVycgpAQCAtMCwwICsxLDMgQEAKKy4vdGVzdC94bWxpZC9pZF90c3QyLnhtbDoxOiBuYW1lc3BhY2UgZXJyb3IgOiBOYW1lc3BhY2UgcHJlZml4IG4gb24gZm9vIGlzIG5vdCBkZWZpbmVkCis8bjpmb28geG1sOmlkPSJiYXIiLz4KKyAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QzLnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZjgyMjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3QzLnhtbApAQCAtMCwwICsxLDYgQEAKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBvOm8KKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1iYXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDMueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDMueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWEzZTFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfdHN0My54bWwuZXJyCkBAIC0wLDAgKzEsNiBAQAorLi90ZXN0L3htbGlkL2lkX3RzdDMueG1sOjE6IG5hbWVzcGFjZSBlcnJvciA6IEZhaWxlZCB0byBwYXJzZSBRTmFtZSAnZjpvOicKKzxmOm86byB4bWw6aWQ9ImJhciIvPgorICAgIF4KKy4vdGVzdC94bWxpZC9pZF90c3QzLnhtbDoxOiBuYW1lc3BhY2UgZXJyb3IgOiBOYW1lc3BhY2UgcHJlZml4IGYgb24gbzpvIGlzIG5vdCBkZWZpbmVkCis8ZjpvOm8geG1sOmlkPSJiYXIiLz4KKyAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3Q0LnhtbCBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZWU4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Jlc3VsdC94bWxpZC9pZF90c3Q0LnhtbApAQCAtMCwwICsxLDYgQEAKK09iamVjdCBpcyBhIE5vZGUgU2V0IDoKK1NldCBjb250YWlucyAxIG5vZGVzOgorMSAgRUxFTUVOVCBmb28KKyAgICBBVFRSSUJVVEUgaWQKKyAgICAgIFRFWFQKKyAgICAgICAgY29udGVudD1iYXIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDQueG1sLmVyciBiL2xpYnhtbDItMi43LjcvcmVzdWx0L3htbGlkL2lkX3RzdDQueG1sLmVycgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmM3OGM4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy9yZXN1bHQveG1saWQvaWRfdHN0NC54bWwuZXJyCkBAIC0wLDAgKzEsMyBAQAorLi90ZXN0L3htbGlkL2lkX3RzdDQueG1sOjM6IGVsZW1lbnQgZXJyOiB2YWxpZGl0eSBlcnJvciA6IElEIGJhciBhbHJlYWR5IGRlZmluZWQKKzxlcnIgeG1sOmlkPSJiYXIiLz4KKyAgICAgICAgICAgICAgICAgXgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy9ydW5zdWl0ZS5jIGIvbGlieG1sMi0yLjcuNy9ydW5zdWl0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NTQ1ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3J1bnN1aXRlLmMKQEAgLTAsMCArMSwxMTg0IEBACisvKgorICogcnVuc3VpdGUuYzogQyBwcm9ncmFtIHRvIHJ1biBsaWJ4bWwyIGFnYWludHMgcHVibGlzaGVkIHRlc3RzdWl0ZXMgCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjaWZkZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgImxpYnhtbC5oIgorI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKworI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWFkZXIuaD4KKworI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aEludGVybmFscy5oPgorCisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzdHlwZXMuaD4KKworI2RlZmluZSBMT0dGSUxFICJydW5zdWl0ZS5sb2ciCitzdGF0aWMgRklMRSAqbG9nZmlsZSA9IE5VTEw7CitzdGF0aWMgaW50IHZlcmJvc2UgPSAwOworCisKKworI2lmIGRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQorCisjZGVmaW5lIHZzbnByaW50ZiBfdnNucHJpbnRmCisKKyNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCisKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlGaWxlIG5hbWUgYW5kIHBhdGggdXRpbGl0aWVzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludCBjaGVja1Rlc3RGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgc3RydWN0IHN0YXQgYnVmOworCisgICAgaWYgKHN0YXQoZmlsZW5hbWUsICZidWYpID09IC0xKQorICAgICAgICByZXR1cm4oMCk7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKyAgICBpZiAoIShidWYuc3RfbW9kZSAmIF9TX0lGUkVHKSkKKyAgICAgICAgcmV0dXJuKDApOworI2Vsc2UKKyAgICBpZiAoIVNfSVNSRUcoYnVmLnN0X21vZGUpKQorICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKworICAgIHJldHVybigxKTsKK30KKworc3RhdGljIHhtbENoYXIgKmNvbXBvc2VEaXIoY29uc3QgeG1sQ2hhciAqZGlyLCBjb25zdCB4bWxDaGFyICpwYXRoKSB7CisgICAgY2hhciBidWZbNTAwXTsKKworICAgIGlmIChkaXIgPT0gTlVMTCkgcmV0dXJuKHhtbFN0cmR1cChwYXRoKSk7CisgICAgaWYgKHBhdGggPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisgICAgc25wcmludGYoYnVmLCA1MDAsICIlcy8lcyIsIChjb25zdCBjaGFyICopIGRpciwgKGNvbnN0IGNoYXIgKikgcGF0aCk7CisgICAgcmV0dXJuKHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBidWYpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJTGlieG1sMiBzcGVjaWZpYyByb3V0aW5lcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQgbmJfdGVzdHMgPSAwOworc3RhdGljIGludCBuYl9lcnJvcnMgPSAwOworc3RhdGljIGludCBuYl9pbnRlcm5hbHMgPSAwOworc3RhdGljIGludCBuYl9zY2hlbWF0YXMgPSAwOworc3RhdGljIGludCBuYl91bmltcGxlbWVudGVkID0gMDsKK3N0YXRpYyBpbnQgbmJfbGVha3MgPSAwOworc3RhdGljIGludCBleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9IDA7CisKK3N0YXRpYyBpbnQKK2ZhdGFsRXJyb3Iodm9pZCkgeworICAgIGZwcmludGYoc3RkZXJyLCAiRXhpdHRpbmcgdGVzdHMgb24gZmF0YWwgZXJyb3JcbiIpOworICAgIGV4aXQoMSk7Cit9CisKKy8qCisgKiB0aGF0J3MgbmVlZGVkIHRvIGltcGxlbWVudCA8cmVzb3VyY2U+CisgKi8KKyNkZWZpbmUgTUFYX0VOVElUSUVTIDIwCitzdGF0aWMgY2hhciAqdGVzdEVudGl0aWVzTmFtZVtNQVhfRU5USVRJRVNdOworc3RhdGljIGNoYXIgKnRlc3RFbnRpdGllc1ZhbHVlW01BWF9FTlRJVElFU107CitzdGF0aWMgaW50IG5iX2VudGl0aWVzID0gMDsKK3N0YXRpYyB2b2lkIHJlc2V0RW50aXRpZXModm9pZCkgeworICAgIGludCBpOworCisgICAgZm9yIChpID0gMDtpIDwgbmJfZW50aXRpZXM7aSsrKSB7CisgICAgICAgIGlmICh0ZXN0RW50aXRpZXNOYW1lW2ldICE9IE5VTEwpCisJICAgIHhtbEZyZWUodGVzdEVudGl0aWVzTmFtZVtpXSk7CisgICAgICAgIGlmICh0ZXN0RW50aXRpZXNWYWx1ZVtpXSAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHRlc3RFbnRpdGllc1ZhbHVlW2ldKTsKKyAgICB9CisgICAgbmJfZW50aXRpZXMgPSAwOworfQorc3RhdGljIGludCBhZGRFbnRpdHkoY2hhciAqbmFtZSwgY2hhciAqY29udGVudCkgeworICAgIGlmIChuYl9lbnRpdGllcyA+PSBNQVhfRU5USVRJRVMpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIlRvbyBtYW55IGVudGl0aWVzIGRlZmluZWRcbiIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIHRlc3RFbnRpdGllc05hbWVbbmJfZW50aXRpZXNdID0gbmFtZTsKKyAgICB0ZXN0RW50aXRpZXNWYWx1ZVtuYl9lbnRpdGllc10gPSBjb250ZW50OworICAgIG5iX2VudGl0aWVzKys7CisgICAgcmV0dXJuKDApOworfQorCisvKgorICogV2UgbmVlZCB0byB0cmFwIGNhbGxzIHRvIHRoZSByZXNvbHZlciB0byBub3QgYWNjb3VudCBtZW1vcnkgZm9yIHRoZSBjYXRhbG9nCisgKiB3aGljaCBpcyBzaGFyZWQgdG8gdGhlIGN1cnJlbnQgcnVubmluZyB0ZXN0LiBXZSBhbHNvIGRvbid0IHdhbnQgdG8gaGF2ZQorICogbmV0d29yayBkb3dubG9hZHMgbW9kaWZ5aW5nIHRlc3RzLgorICovCitzdGF0aWMgeG1sUGFyc2VySW5wdXRQdHIgCit0ZXN0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICpJRCwKKwkJCSB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXQ7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwO2kgPCBuYl9lbnRpdGllcztpKyspIHsKKyAgICAgICAgaWYgKCFzdHJjbXAodGVzdEVudGl0aWVzTmFtZVtpXSwgVVJMKSkgeworCSAgICByZXQgPSB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbShjdHh0LAorCSAgICAgICAgICAgICAgICAoY29uc3QgeG1sQ2hhciAqKSB0ZXN0RW50aXRpZXNWYWx1ZVtpXSk7CisJICAgIGlmIChyZXQgIT0gTlVMTCkgeworCSAgICAgICAgcmV0LT5maWxlbmFtZSA9IChjb25zdCBjaGFyICopCisJCSAgICAgICAgICAgICAgICB4bWxTdHJkdXAoKHhtbENoYXIgKil0ZXN0RW50aXRpZXNOYW1lW2ldKTsKKwkgICAgfQorCSAgICByZXR1cm4ocmV0KTsKKwl9CisgICAgfQorICAgIGlmIChjaGVja1Rlc3RGaWxlKFVSTCkpIHsKKwlyZXQgPSB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyKFVSTCwgSUQsIGN0eHQpOworICAgIH0gZWxzZSB7CisJaW50IG1lbXVzZWQgPSB4bWxNZW1Vc2VkKCk7CisJcmV0ID0geG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcihVUkwsIElELCBjdHh0KTsKKwlleHRyYU1lbW9yeUZyb21SZXNvbHZlciArPSB4bWxNZW1Vc2VkKCkgLSBtZW11c2VkOworICAgIH0KKyNpZiAwCisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGZpbmQgcmVzb3VyY2UgJXNcbiIsIFVSTCk7CisgICAgfQorI2VuZGlmCisgICAgICAKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoKKyAqIFRyYXBwaW5nIHRoZSBlcnJvciBtZXNzYWdlcyBhdCB0aGUgZ2VuZXJpYyBsZXZlbCB0byBncmFiIHRoZSBlcXVpdmFsZW50IG9mCisgKiBzdGRlcnIgbWVzc2FnZXMgb24gQ0xJIHRvb2xzLgorICovCitzdGF0aWMgY2hhciB0ZXN0RXJyb3JzWzMyNzY5XTsKK3N0YXRpYyBpbnQgdGVzdEVycm9yc1NpemUgPSAwOworCitzdGF0aWMgdm9pZCB0ZXN0X2xvZyhjb25zdCBjaGFyICptc2csIC4uLikgeworICAgIHZhX2xpc3QgYXJnczsKKyAgICBpZiAobG9nZmlsZSAhPSBOVUxMKSB7CisgICAgICAgIGZwcmludGYobG9nZmlsZSwgIlxuLS0tLS0tLS0tLS0tXG4iKTsKKwl2YV9zdGFydChhcmdzLCBtc2cpOworCXZmcHJpbnRmKGxvZ2ZpbGUsIG1zZywgYXJncyk7CisJdmFfZW5kKGFyZ3MpOworCWZwcmludGYobG9nZmlsZSwgIiVzIiwgdGVzdEVycm9ycyk7CisJdGVzdEVycm9yc1NpemUgPSAwOyB0ZXN0RXJyb3JzWzBdID0gMDsKKyAgICB9CisgICAgaWYgKHZlcmJvc2UpIHsKKwl2YV9zdGFydChhcmdzLCBtc2cpOworCXZmcHJpbnRmKHN0ZGVyciwgbXNnLCBhcmdzKTsKKwl2YV9lbmQoYXJncyk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAordGVzdEVycm9ySGFuZGxlcih2b2lkICpjdHggIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKSB7CisgICAgdmFfbGlzdCBhcmdzOworICAgIGludCByZXM7CisKKyAgICBpZiAodGVzdEVycm9yc1NpemUgPj0gMzI3NjgpCisgICAgICAgIHJldHVybjsKKyAgICB2YV9zdGFydChhcmdzLCBtc2cpOworICAgIHJlcyA9IHZzbnByaW50ZigmdGVzdEVycm9yc1t0ZXN0RXJyb3JzU2l6ZV0sCisgICAgICAgICAgICAgICAgICAgIDMyNzY4IC0gdGVzdEVycm9yc1NpemUsCisJCSAgICBtc2csIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKKyAgICBpZiAodGVzdEVycm9yc1NpemUgKyByZXMgPj0gMzI3NjgpIHsKKyAgICAgICAgLyogYnVmZmVyIGlzIGZ1bGwgKi8KKwl0ZXN0RXJyb3JzU2l6ZSA9IDMyNzY4OworCXRlc3RFcnJvcnNbdGVzdEVycm9yc1NpemVdID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RXJyb3JzU2l6ZSArPSByZXM7CisgICAgfQorICAgIHRlc3RFcnJvcnNbdGVzdEVycm9yc1NpemVdID0gMDsKK30KKworc3RhdGljIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0WFBhdGg7CisKK3N0YXRpYyB2b2lkCitpbml0aWFsaXplTGlieG1sMih2b2lkKSB7CisgICAgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPSAwOworICAgIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCgwKTsKKworICAgIHhtbE1lbVNldHVwKHhtbE1lbUZyZWUsIHhtbE1lbU1hbGxvYywgeG1sTWVtUmVhbGxvYywgeG1sTWVtb3J5U3RyZHVwKTsKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIodGVzdEV4dGVybmFsRW50aXR5TG9hZGVyKTsKKyAgICBjdHh0WFBhdGggPSB4bWxYUGF0aE5ld0NvbnRleHQoTlVMTCk7CisgICAgLyoKKyAgICAqIERlYWN0aXZhdGUgdGhlIGNhY2hlIGlmIGNyZWF0ZWQ7IG90aGVyd2lzZSB3ZSBoYXZlIHRvIGNyZWF0ZS9mcmVlIGl0CisgICAgKiBmb3IgZXZlcnkgdGVzdCwgc2luY2UgaXQgd2lsbCBjb25mdXNlIHRoZSBtZW1vcnkgbGVhayBkZXRlY3Rpb24uCisgICAgKiBOb3RlIHRoYXQgbm9ybWFsbHkgdGhpcyBuZWVkIG5vdCBiZSBkb25lLCBzaW5jZSB0aGUgY2FjaGUgaXMgbm90CisgICAgKiBjcmVhdGVkIHVudGlsIHNldCBleHBsaWNpdGVseSB3aXRoIHhtbFhQYXRoQ29udGV4dFNldENhY2hlKCk7CisgICAgKiBidXQgZm9yIHRlc3QgcHVycG9zZXMgaXQgaXMgc29tZXRpbWVzIHVzZWZ1bGwgdG8gYWN0aXZhdGUgdGhlCisgICAgKiBjYWNoZSBieSBkZWZhdWx0IGZvciB0aGUgd2hvbGUgbGlicmFyeS4KKyAgICAqLworICAgIGlmIChjdHh0WFBhdGgtPmNhY2hlICE9IE5VTEwpCisJeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUoY3R4dFhQYXRoLCAwLCAtMSwgMCk7CisgICAgLyogdXNlZCBhcyBkZWZhdWx0IG5hbmVtc3BhY2UgaW4geHN0YyB0ZXN0cyAqLworICAgIHhtbFhQYXRoUmVnaXN0ZXJOcyhjdHh0WFBhdGgsIEJBRF9DQVNUICJ0cyIsIEJBRF9DQVNUICJUZXN0U3VpdGUiKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyTnMoY3R4dFhQYXRoLCBCQURfQ0FTVCAieGxpbmsiLAorICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIpOworICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoTlVMTCwgdGVzdEVycm9ySGFuZGxlcik7CisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIHhtbFNjaGVtYUluaXRUeXBlcygpOworICAgIHhtbFJlbGF4TkdJbml0VHlwZXMoKTsKKyNlbmRpZgorfQorCitzdGF0aWMgeG1sTm9kZVB0cgorZ2V0TmV4dCh4bWxOb2RlUHRyIGN1ciwgY29uc3QgY2hhciAqeHBhdGgpIHsKKyAgICB4bWxOb2RlUHRyIHJldCA9IE5VTEw7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzOworICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcDsKKworICAgIGlmICgoY3VyID09IE5VTEwpICB8fCAoY3VyLT5kb2MgPT0gTlVMTCkgfHwgKHhwYXRoID09IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3R4dFhQYXRoLT5kb2MgPSBjdXItPmRvYzsKKyAgICBjdHh0WFBhdGgtPm5vZGUgPSBjdXI7CisgICAgY29tcCA9IHhtbFhQYXRoQ29tcGlsZShCQURfQ0FTVCB4cGF0aCk7CisgICAgaWYgKGNvbXAgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBjb21waWxlICVzXG4iLCB4cGF0aCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXMgPSB4bWxYUGF0aENvbXBpbGVkRXZhbChjb21wLCBjdHh0WFBhdGgpOworICAgIHhtbFhQYXRoRnJlZUNvbXBFeHByKGNvbXApOworICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGlmICgocmVzLT50eXBlID09IFhQQVRIX05PREVTRVQpICYmCisgICAgICAgIChyZXMtPm5vZGVzZXR2YWwgIT0gTlVMTCkgJiYKKwkocmVzLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPiAwKSAmJgorCShyZXMtPm5vZGVzZXR2YWwtPm5vZGVUYWIgIT0gTlVMTCkpCisJcmV0ID0gcmVzLT5ub2Rlc2V0dmFsLT5ub2RlVGFiWzBdOworICAgIHhtbFhQYXRoRnJlZU9iamVjdChyZXMpOworICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgeG1sQ2hhciAqCitnZXRTdHJpbmcoeG1sTm9kZVB0ciBjdXIsIGNvbnN0IGNoYXIgKnhwYXRoKSB7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXM7CisgICAgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wOworCisgICAgaWYgKChjdXIgPT0gTlVMTCkgIHx8IChjdXItPmRvYyA9PSBOVUxMKSB8fCAoeHBhdGggPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBjdHh0WFBhdGgtPmRvYyA9IGN1ci0+ZG9jOworICAgIGN0eHRYUGF0aC0+bm9kZSA9IGN1cjsKKyAgICBjb21wID0geG1sWFBhdGhDb21waWxlKEJBRF9DQVNUIHhwYXRoKTsKKyAgICBpZiAoY29tcCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGNvbXBpbGUgJXNcbiIsIHhwYXRoKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJlcyA9IHhtbFhQYXRoQ29tcGlsZWRFdmFsKGNvbXAsIGN0eHRYUGF0aCk7CisgICAgeG1sWFBhdGhGcmVlQ29tcEV4cHIoY29tcCk7CisgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlcy0+dHlwZSA9PSBYUEFUSF9TVFJJTkcpIHsKKyAgICAgICAgcmV0ID0gcmVzLT5zdHJpbmd2YWw7CisJcmVzLT5zdHJpbmd2YWwgPSBOVUxMOworICAgIH0KKyAgICB4bWxYUGF0aEZyZWVPYmplY3QocmVzKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJVGVzdCB0ZXN0L3hzZHRlc3QveHNkdGVzdHN1aXRlLnhtbAkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludAoreHNkSW5jb3JlY3RUZXN0Q2FzZSh4bWxOb2RlUHRyIGN1cikgeworICAgIHhtbE5vZGVQdHIgdGVzdDsKKyAgICB4bWxCdWZmZXJQdHIgYnVmOworICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIHBjdHh0OworICAgIHhtbFJlbGF4TkdQdHIgcm5nID0gTlVMTDsKKyAgICBpbnQgcmV0ID0gMCwgbWVtdDsKKworICAgIGN1ciA9IGdldE5leHQoY3VyLCAiLi9pbmNvcnJlY3RbMV0iKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKworICAgIHRlc3QgPSBnZXROZXh0KGN1ciwgIi4vKiIpOworICAgIGlmICh0ZXN0ID09IE5VTEwpIHsKKyAgICAgICAgdGVzdF9sb2coIkZhaWxlZCB0byBmaW5kIHRlc3QgaW4gY29ycmVjdCBsaW5lICVsZFxuIiwKKwkgICAgICAgIHhtbEdldExpbmVObyhjdXIpKTsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKworICAgIG1lbXQgPSB4bWxNZW1Vc2VkKCk7CisgICAgZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPSAwOworICAgIC8qCisgICAgICogZHVtcCB0aGUgc2NoZW1hcyB0byBhIGJ1ZmZlciwgdGhlbiByZXBhcnNlIGl0IGFuZCBjb21waWxlIHRoZSBzY2hlbWFzCisgICAgICovCisgICAgYnVmID0geG1sQnVmZmVyQ3JlYXRlKCk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeSAhXG4iKTsKKwlmYXRhbEVycm9yKCk7CisgICAgfQorICAgIHhtbE5vZGVEdW1wKGJ1ZiwgdGVzdC0+ZG9jLCB0ZXN0LCAwLCAwKTsKKyAgICBwY3R4dCA9IHhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KChjb25zdCBjaGFyICopYnVmLT5jb250ZW50LCBidWYtPnVzZSk7CisgICAgeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyhwY3R4dCwKKyAgICAgICAgICh4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMpIHRlc3RFcnJvckhhbmRsZXIsCisgICAgICAgICAoeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMpIHRlc3RFcnJvckhhbmRsZXIsCisJIHBjdHh0KTsKKyAgICBybmcgPSB4bWxSZWxheE5HUGFyc2UocGN0eHQpOworICAgIHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dChwY3R4dCk7CisgICAgaWYgKHJuZyAhPSBOVUxMKSB7CisJdGVzdF9sb2coIkZhaWxlZCB0byBkZXRlY3QgaW5jb3JlY3QgUk5HIGxpbmUgJWxkXG4iLAorCQkgICAgeG1sR2V0TGluZU5vKHRlc3QpKTsKKyAgICAgICAgcmV0ID0gMTsKKwlnb3RvIGRvbmU7CisgICAgfQorCitkb25lOgorICAgIGlmIChidWYgIT0gTlVMTCkKKwl4bWxCdWZmZXJGcmVlKGJ1Zik7CisgICAgaWYgKHJuZyAhPSBOVUxMKQorICAgICAgICB4bWxSZWxheE5HRnJlZShybmcpOworICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgaWYgKChtZW10IDwgeG1sTWVtVXNlZCgpKSAmJiAoZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPT0gMCkpIHsKKwl0ZXN0X2xvZygiVmFsaWRhdGlvbiBvZiB0ZXN0cyBzdGFydGluZyBsaW5lICVsZCBsZWFrZWQgJWRcbiIsCisJCXhtbEdldExpbmVObyhjdXIpLCB4bWxNZW1Vc2VkKCkgLSBtZW10KTsKKwluYl9sZWFrcysrOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHZvaWQKK2luc3RhbGxSZXNvdXJjZXMoeG1sTm9kZVB0ciB0c3QsIGNvbnN0IHhtbENoYXIgKmJhc2UpIHsKKyAgICB4bWxOb2RlUHRyIHRlc3Q7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxDaGFyICpuYW1lLCAqY29udGVudCwgKnJlczsKKworICAgIGJ1ZiA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnkgIVxuIik7CisJZmF0YWxFcnJvcigpOworICAgIH0KKyAgICB4bWxOb2RlRHVtcChidWYsIHRzdC0+ZG9jLCB0c3QsIDAsIDApOworCisgICAgd2hpbGUgKHRzdCAhPSBOVUxMKSB7CisJdGVzdCA9IGdldE5leHQodHN0LCAiLi8qIik7CisJaWYgKHRlc3QgIT0gTlVMTCkgeworCSAgICB4bWxCdWZmZXJFbXB0eShidWYpOworCSAgICB4bWxOb2RlRHVtcChidWYsIHRlc3QtPmRvYywgdGVzdCwgMCwgMCk7CisJICAgIG5hbWUgPSBnZXRTdHJpbmcodHN0LCAic3RyaW5nKEBuYW1lKSIpOworCSAgICBjb250ZW50ID0geG1sU3RyZHVwKGJ1Zi0+Y29udGVudCk7CisJICAgIGlmICgobmFtZSAhPSBOVUxMKSAmJiAoY29udGVudCAhPSBOVUxMKSkgeworCSAgICAgICAgcmVzID0gY29tcG9zZURpcihiYXNlLCBuYW1lKTsKKwkJeG1sRnJlZShuYW1lKTsKKwkgICAgICAgIGFkZEVudGl0eSgoY2hhciAqKSByZXMsIChjaGFyICopIGNvbnRlbnQpOworCSAgICB9IGVsc2UgeworCSAgICAgICAgaWYgKG5hbWUgIT0gTlVMTCkgeG1sRnJlZShuYW1lKTsKKwkgICAgICAgIGlmIChjb250ZW50ICE9IE5VTEwpIHhtbEZyZWUoY29udGVudCk7CisJICAgIH0KKwl9CisJdHN0ID0gZ2V0TmV4dCh0c3QsICJmb2xsb3dpbmctc2libGluZzo6cmVzb3VyY2VbMV0iKTsKKyAgICB9CisgICAgaWYgKGJ1ZiAhPSBOVUxMKQorCXhtbEJ1ZmZlckZyZWUoYnVmKTsKK30KKworc3RhdGljIHZvaWQKK2luc3RhbGxEaXJzKHhtbE5vZGVQdHIgdHN0LCBjb25zdCB4bWxDaGFyICpiYXNlKSB7CisgICAgeG1sTm9kZVB0ciB0ZXN0OworICAgIHhtbENoYXIgKm5hbWUsICpyZXM7CisKKyAgICBuYW1lID0gZ2V0U3RyaW5nKHRzdCwgInN0cmluZyhAbmFtZSkiKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgcmVzID0gY29tcG9zZURpcihiYXNlLCBuYW1lKTsKKyAgICB4bWxGcmVlKG5hbWUpOworICAgIGlmIChyZXMgPT0gTlVMTCkgeworCXJldHVybjsKKyAgICB9CisgICAgLyogTm93IHByb2Nlc3MgcmVzb3VyY2VzIGFuZCBzdWJkaXIgcmVjdXJzaXZlbHkgKi8KKyAgICB0ZXN0ID0gZ2V0TmV4dCh0c3QsICIuL3Jlc291cmNlWzFdIik7CisgICAgaWYgKHRlc3QgIT0gTlVMTCkgeworICAgICAgICBpbnN0YWxsUmVzb3VyY2VzKHRlc3QsIHJlcyk7CisgICAgfQorICAgIHRlc3QgPSBnZXROZXh0KHRzdCwgIi4vZGlyWzFdIik7CisgICAgd2hpbGUgKHRlc3QgIT0gTlVMTCkgeworICAgICAgICBpbnN0YWxsRGlycyh0ZXN0LCByZXMpOworCXRlc3QgPSBnZXROZXh0KHRlc3QsICJmb2xsb3dpbmctc2libGluZzo6ZGlyWzFdIik7CisgICAgfQorICAgIHhtbEZyZWUocmVzKTsKK30KKworc3RhdGljIGludCAKK3hzZFRlc3RDYXNlKHhtbE5vZGVQdHIgdHN0KSB7CisgICAgeG1sTm9kZVB0ciB0ZXN0LCB0bXAsIGN1cjsKKyAgICB4bWxCdWZmZXJQdHIgYnVmOworICAgIHhtbERvY1B0ciBkb2MgPSBOVUxMOworICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIHBjdHh0OworICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dDsKKyAgICB4bWxSZWxheE5HUHRyIHJuZyA9IE5VTEw7CisgICAgaW50IHJldCA9IDAsIG1lbSwgbWVtdDsKKyAgICB4bWxDaGFyICpkdGQ7CisKKyAgICByZXNldEVudGl0aWVzKCk7CisgICAgdGVzdEVycm9yc1NpemUgPSAwOyB0ZXN0RXJyb3JzWzBdID0gMDsKKworICAgIHRtcCA9IGdldE5leHQodHN0LCAiLi9kaXJbMV0iKTsKKyAgICBpZiAodG1wICE9IE5VTEwpIHsKKyAgICAgICAgaW5zdGFsbERpcnModG1wLCBOVUxMKTsKKyAgICB9CisgICAgdG1wID0gZ2V0TmV4dCh0c3QsICIuL3Jlc291cmNlWzFdIik7CisgICAgaWYgKHRtcCAhPSBOVUxMKSB7CisgICAgICAgIGluc3RhbGxSZXNvdXJjZXModG1wLCBOVUxMKTsKKyAgICB9CisKKyAgICBjdXIgPSBnZXROZXh0KHRzdCwgIi4vY29ycmVjdFsxXSIpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4oeHNkSW5jb3JlY3RUZXN0Q2FzZSh0c3QpKTsKKyAgICB9CisgICAgCisgICAgdGVzdCA9IGdldE5leHQoY3VyLCAiLi8qIik7CisgICAgaWYgKHRlc3QgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBmaW5kIHRlc3QgaW4gY29ycmVjdCBsaW5lICVsZFxuIiwKKwkgICAgICAgIHhtbEdldExpbmVObyhjdXIpKTsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKworICAgIG1lbXQgPSB4bWxNZW1Vc2VkKCk7CisgICAgZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPSAwOworICAgIC8qCisgICAgICogZHVtcCB0aGUgc2NoZW1hcyB0byBhIGJ1ZmZlciwgdGhlbiByZXBhcnNlIGl0IGFuZCBjb21waWxlIHRoZSBzY2hlbWFzCisgICAgICovCisgICAgYnVmID0geG1sQnVmZmVyQ3JlYXRlKCk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeSAhXG4iKTsKKwlmYXRhbEVycm9yKCk7CisgICAgfQorICAgIHhtbE5vZGVEdW1wKGJ1ZiwgdGVzdC0+ZG9jLCB0ZXN0LCAwLCAwKTsKKyAgICBwY3R4dCA9IHhtbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KChjb25zdCBjaGFyICopYnVmLT5jb250ZW50LCBidWYtPnVzZSk7CisgICAgeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyhwY3R4dCwKKyAgICAgICAgICh4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMpIHRlc3RFcnJvckhhbmRsZXIsCisgICAgICAgICAoeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMpIHRlc3RFcnJvckhhbmRsZXIsCisJIHBjdHh0KTsKKyAgICBybmcgPSB4bWxSZWxheE5HUGFyc2UocGN0eHQpOworICAgIHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dChwY3R4dCk7CisgICAgaWYgKGV4dHJhTWVtb3J5RnJvbVJlc29sdmVyKQorICAgICAgICBtZW10ID0gMDsKKworICAgIGlmIChybmcgPT0gTlVMTCkgeworICAgICAgICB0ZXN0X2xvZygiRmFpbGVkIHRvIHBhcnNlIFJOR3Rlc3QgbGluZSAlbGRcbiIsCisJICAgICAgICB4bWxHZXRMaW5lTm8odGVzdCkpOworCW5iX2Vycm9ycysrOworICAgICAgICByZXQgPSAxOworCWdvdG8gZG9uZTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBub3cgc2NhbiBhbGwgdGhlIHNpYmxpbmdzIG9mIGNvcnJlY3QgdG8gcHJvY2VzcyB0aGUgPHZhbGlkPiB0ZXN0cworICAgICAqLworICAgIHRtcCA9IGdldE5leHQoY3VyLCAiZm9sbG93aW5nLXNpYmxpbmc6OnZhbGlkWzFdIik7CisgICAgd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJZHRkID0geG1sR2V0UHJvcCh0bXAsIEJBRF9DQVNUICJkdGQiKTsKKwl0ZXN0ID0gZ2V0TmV4dCh0bXAsICIuLyoiKTsKKwlpZiAodGVzdCA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGZpbmQgdGVzdCBpbiA8dmFsaWQ+IGxpbmUgJWxkXG4iLAorCQkgICAgeG1sR2V0TGluZU5vKHRtcCkpOworCSAgICAKKwl9IGVsc2UgeworCSAgICB4bWxCdWZmZXJFbXB0eShidWYpOworCSAgICBpZiAoZHRkICE9IE5VTEwpCisJCXhtbEJ1ZmZlckFkZChidWYsIGR0ZCwgLTEpOworCSAgICB4bWxOb2RlRHVtcChidWYsIHRlc3QtPmRvYywgdGVzdCwgMCwgMCk7CisKKwkgICAgLyoKKwkgICAgICogV2UgYXJlIHJlYWR5IHRvIHJ1biB0aGUgdGVzdAorCSAgICAgKi8KKwkgICAgbWVtID0geG1sTWVtVXNlZCgpOworCSAgICBleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9IDA7CisgICAgICAgICAgICBkb2MgPSB4bWxSZWFkTWVtb3J5KChjb25zdCBjaGFyICopYnVmLT5jb250ZW50LCBidWYtPnVzZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAidGVzdCIsIE5VTEwsIDApOworCSAgICBpZiAoZG9jID09IE5VTEwpIHsKKwkJdGVzdF9sb2coIkZhaWxlZCB0byBwYXJzZSB2YWxpZCBpbnN0YW5jZSBsaW5lICVsZFxuIiwKKwkJCXhtbEdldExpbmVObyh0bXApKTsKKwkJbmJfZXJyb3JzKys7CisJICAgIH0gZWxzZSB7CisJCW5iX3Rlc3RzKys7CisJICAgICAgICBjdHh0ID0geG1sUmVsYXhOR05ld1ZhbGlkQ3R4dChybmcpOworCQl4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoY3R4dCwKKwkJICAgICAoeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorCQkgICAgICh4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKwkJICAgICBjdHh0KTsKKwkJcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRG9jKGN0eHQsIGRvYyk7CisJCXhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KGN0eHQpOworCQlpZiAocmV0ID4gMCkgeworCQkgICAgdGVzdF9sb2coIkZhaWxlZCB0byB2YWxpZGF0ZSB2YWxpZCBpbnN0YW5jZSBsaW5lICVsZFxuIiwKKwkJCQl4bWxHZXRMaW5lTm8odG1wKSk7CisJCSAgICBuYl9lcnJvcnMrKzsKKwkJfSBlbHNlIGlmIChyZXQgPCAwKSB7CisJCSAgICB0ZXN0X2xvZygiSW50ZXJuYWwgZXJyb3IgdmFsaWRhdGluZyBpbnN0YW5jZSBsaW5lICVsZFxuIiwKKwkJCSAgICB4bWxHZXRMaW5lTm8odG1wKSk7CisJCSAgICBuYl9lcnJvcnMrKzsKKwkJfQorCQl4bWxGcmVlRG9jKGRvYyk7CisJICAgIH0KKwkgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKwkgICAgaWYgKChtZW0gIT0geG1sTWVtVXNlZCgpKSAmJiAoZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPT0gMCkpIHsKKwkgICAgICAgIHRlc3RfbG9nKCJWYWxpZGF0aW9uIG9mIGluc3RhbmNlIGxpbmUgJWxkIGxlYWtlZCAlZFxuIiwKKwkJICAgICAgICB4bWxHZXRMaW5lTm8odG1wKSwgeG1sTWVtVXNlZCgpIC0gbWVtKTsKKwkJeG1sTWVtb3J5RHVtcCgpOworCSAgICAgICAgbmJfbGVha3MrKzsKKwkgICAgfQorCX0KKwlpZiAoZHRkICE9IE5VTEwpCisJICAgIHhtbEZyZWUoZHRkKTsKKwl0bXAgPSBnZXROZXh0KHRtcCwgImZvbGxvd2luZy1zaWJsaW5nOjp2YWxpZFsxXSIpOworICAgIH0KKyAgICAvKgorICAgICAqIG5vdyBzY2FuIGFsbCB0aGUgc2libGluZ3Mgb2YgY29ycmVjdCB0byBwcm9jZXNzIHRoZSA8aW52YWxpZD4gdGVzdHMKKyAgICAgKi8KKyAgICB0bXAgPSBnZXROZXh0KGN1ciwgImZvbGxvd2luZy1zaWJsaW5nOjppbnZhbGlkWzFdIik7CisgICAgd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJdGVzdCA9IGdldE5leHQodG1wLCAiLi8qIik7CisJaWYgKHRlc3QgPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBmaW5kIHRlc3QgaW4gPGludmFsaWQ+IGxpbmUgJWxkXG4iLAorCQkgICAgeG1sR2V0TGluZU5vKHRtcCkpOworCSAgICAKKwl9IGVsc2UgeworCSAgICB4bWxCdWZmZXJFbXB0eShidWYpOworCSAgICB4bWxOb2RlRHVtcChidWYsIHRlc3QtPmRvYywgdGVzdCwgMCwgMCk7CisKKwkgICAgLyoKKwkgICAgICogV2UgYXJlIHJlYWR5IHRvIHJ1biB0aGUgdGVzdAorCSAgICAgKi8KKwkgICAgbWVtID0geG1sTWVtVXNlZCgpOworCSAgICBleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9IDA7CisgICAgICAgICAgICBkb2MgPSB4bWxSZWFkTWVtb3J5KChjb25zdCBjaGFyICopYnVmLT5jb250ZW50LCBidWYtPnVzZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAidGVzdCIsIE5VTEwsIDApOworCSAgICBpZiAoZG9jID09IE5VTEwpIHsKKwkJdGVzdF9sb2coIkZhaWxlZCB0byBwYXJzZSB2YWxpZCBpbnN0YW5jZSBsaW5lICVsZFxuIiwKKwkJCXhtbEdldExpbmVObyh0bXApKTsKKwkJbmJfZXJyb3JzKys7CisJICAgIH0gZWxzZSB7CisJCW5iX3Rlc3RzKys7CisJICAgICAgICBjdHh0ID0geG1sUmVsYXhOR05ld1ZhbGlkQ3R4dChybmcpOworCQl4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoY3R4dCwKKwkJICAgICAoeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorCQkgICAgICh4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKwkJICAgICBjdHh0KTsKKwkJcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRG9jKGN0eHQsIGRvYyk7CisJCXhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KGN0eHQpOworCQlpZiAocmV0ID09IDApIHsKKwkJICAgIHRlc3RfbG9nKCJGYWlsZWQgdG8gZGV0ZWN0IGludmFsaWQgaW5zdGFuY2UgbGluZSAlbGRcbiIsCisJCQkJeG1sR2V0TGluZU5vKHRtcCkpOworCQkgICAgbmJfZXJyb3JzKys7CisJCX0gZWxzZSBpZiAocmV0IDwgMCkgeworCQkgICAgdGVzdF9sb2coIkludGVybmFsIGVycm9yIHZhbGlkYXRpbmcgaW5zdGFuY2UgbGluZSAlbGRcbiIsCisJCQkgICAgeG1sR2V0TGluZU5vKHRtcCkpOworCQkgICAgbmJfZXJyb3JzKys7CisJCX0KKwkJeG1sRnJlZURvYyhkb2MpOworCSAgICB9CisJICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisJICAgIGlmICgobWVtICE9IHhtbE1lbVVzZWQoKSkgJiYgKGV4dHJhTWVtb3J5RnJvbVJlc29sdmVyID09IDApKSB7CisJICAgICAgICB0ZXN0X2xvZygiVmFsaWRhdGlvbiBvZiBpbnN0YW5jZSBsaW5lICVsZCBsZWFrZWQgJWRcbiIsCisJCSAgICAgICAgeG1sR2V0TGluZU5vKHRtcCksIHhtbE1lbVVzZWQoKSAtIG1lbSk7CisJCXhtbE1lbW9yeUR1bXAoKTsKKwkgICAgICAgIG5iX2xlYWtzKys7CisJICAgIH0KKwl9CisJdG1wID0gZ2V0TmV4dCh0bXAsICJmb2xsb3dpbmctc2libGluZzo6aW52YWxpZFsxXSIpOworICAgIH0KKworZG9uZToKKyAgICBpZiAoYnVmICE9IE5VTEwpCisJeG1sQnVmZmVyRnJlZShidWYpOworICAgIGlmIChybmcgIT0gTlVMTCkKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWUocm5nKTsKKyAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIGlmICgobWVtdCAhPSB4bWxNZW1Vc2VkKCkpICYmIChtZW10ICE9IDApKSB7CisJdGVzdF9sb2coIlZhbGlkYXRpb24gb2YgdGVzdHMgc3RhcnRpbmcgbGluZSAlbGQgbGVha2VkICVkXG4iLAorCQl4bWxHZXRMaW5lTm8oY3VyKSwgeG1sTWVtVXNlZCgpIC0gbWVtdCk7CisJbmJfbGVha3MrKzsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyBpbnQgCit4c2RUZXN0U3VpdGUoeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpZiAodmVyYm9zZSkgeworCXhtbENoYXIgKmRvYyA9IGdldFN0cmluZyhjdXIsICJzdHJpbmcoZG9jdW1lbnRhdGlvbikiKTsKKworCWlmIChkb2MgIT0gTlVMTCkgeworCSAgICBwcmludGYoIlN1aXRlICVzXG4iLCBkb2MpOworCSAgICB4bWxGcmVlKGRvYyk7CisJfQorICAgIH0KKyAgICBjdXIgPSBnZXROZXh0KGN1ciwgIi4vdGVzdENhc2VbMV0iKTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgeHNkVGVzdENhc2UoY3VyKTsKKwljdXIgPSBnZXROZXh0KGN1ciwgImZvbGxvd2luZy1zaWJsaW5nOjp0ZXN0Q2FzZVsxXSIpOworICAgIH0KKyAgICAgICAgCisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgaW50IAoreHNkVGVzdCh2b2lkKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICBjb25zdCBjaGFyICpmaWxlbmFtZSA9ICJ0ZXN0L3hzZHRlc3QveHNkdGVzdHN1aXRlLnhtbCI7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBkb2MgPSB4bWxSZWFkRmlsZShmaWxlbmFtZSwgTlVMTCwgWE1MX1BBUlNFX05PRU5UKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcGFyc2UgJXNcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBwcmludGYoIiMjIFhNTCBTY2hlbWFzIGRhdGF0eXBlcyB0ZXN0IHN1aXRlIGZyb20gSmFtZXMgQ2xhcmtcbiIpOworCisgICAgY3VyID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoIXhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgInRlc3RTdWl0ZSIpKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuZXhwZWN0ZWQgZm9ybWF0ICVzXG4iLCBmaWxlbmFtZSk7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKworICAgIGN1ciA9IGdldE5leHQoY3VyLCAiLi90ZXN0U3VpdGVbMV0iKTsKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoIXhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgInRlc3RTdWl0ZSIpKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuZXhwZWN0ZWQgZm9ybWF0ICVzXG4iLCBmaWxlbmFtZSk7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgeHNkVGVzdFN1aXRlKGN1cik7CisJY3VyID0gZ2V0TmV4dChjdXIsICJmb2xsb3dpbmctc2libGluZzo6dGVzdFN1aXRlWzFdIik7CisgICAgfQorCitkb25lOgorICAgIGlmIChkb2MgIT0gTlVMTCkKKwl4bWxGcmVlRG9jKGRvYyk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyBpbnQgCitybmdUZXN0U3VpdGUoeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpZiAodmVyYm9zZSkgeworCXhtbENoYXIgKmRvYyA9IGdldFN0cmluZyhjdXIsICJzdHJpbmcoZG9jdW1lbnRhdGlvbikiKTsKKworCWlmIChkb2MgIT0gTlVMTCkgeworCSAgICBwcmludGYoIlN1aXRlICVzXG4iLCBkb2MpOworCSAgICB4bWxGcmVlKGRvYyk7CisJfSBlbHNlIHsKKwkgICAgZG9jID0gZ2V0U3RyaW5nKGN1ciwgInN0cmluZyhzZWN0aW9uKSIpOworCSAgICBpZiAoZG9jICE9IE5VTEwpIHsKKwkJcHJpbnRmKCJTZWN0aW9uICVzXG4iLCBkb2MpOworCQl4bWxGcmVlKGRvYyk7CisJICAgIH0KKwl9CisgICAgfQorICAgIGN1ciA9IGdldE5leHQoY3VyLCAiLi90ZXN0U3VpdGVbMV0iKTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgeHNkVGVzdFN1aXRlKGN1cik7CisJY3VyID0gZ2V0TmV4dChjdXIsICJmb2xsb3dpbmctc2libGluZzo6dGVzdFN1aXRlWzFdIik7CisgICAgfQorICAgICAgICAKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQgCitybmdUZXN0MSh2b2lkKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICBjb25zdCBjaGFyICpmaWxlbmFtZSA9ICJ0ZXN0L3JlbGF4bmcvT0FTSVMvc3BlY3Rlc3QueG1sIjsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBYTUxfUEFSU0VfTk9FTlQpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBwYXJzZSAlc1xuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorICAgIHByaW50ZigiIyMgUmVsYXggTkcgdGVzdCBzdWl0ZSBmcm9tIEphbWVzIENsYXJrXG4iKTsKKworICAgIGN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKCF4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJ0ZXN0U3VpdGUiKSkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmV4cGVjdGVkIGZvcm1hdCAlc1xuIiwgZmlsZW5hbWUpOworCXJldCA9IC0xOworCWdvdG8gZG9uZTsKKyAgICB9CisKKyAgICBjdXIgPSBnZXROZXh0KGN1ciwgIi4vdGVzdFN1aXRlWzFdIik7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKCF4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJ0ZXN0U3VpdGUiKSkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmV4cGVjdGVkIGZvcm1hdCAlc1xuIiwgZmlsZW5hbWUpOworCXJldCA9IC0xOworCWdvdG8gZG9uZTsKKyAgICB9CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIHJuZ1Rlc3RTdWl0ZShjdXIpOworCWN1ciA9IGdldE5leHQoY3VyLCAiZm9sbG93aW5nLXNpYmxpbmc6OnRlc3RTdWl0ZVsxXSIpOworICAgIH0KKworZG9uZToKKyAgICBpZiAoZG9jICE9IE5VTEwpCisJeG1sRnJlZURvYyhkb2MpOworICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50IAorcm5nVGVzdDIodm9pZCkgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgY29uc3QgY2hhciAqZmlsZW5hbWUgPSAidGVzdC9yZWxheG5nL3Rlc3RzdWl0ZS54bWwiOworICAgIGludCByZXQgPSAwOworCisgICAgZG9jID0geG1sUmVhZEZpbGUoZmlsZW5hbWUsIE5VTEwsIFhNTF9QQVJTRV9OT0VOVCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlICVzXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcHJpbnRmKCIjIyBSZWxheCBORyB0ZXN0IHN1aXRlIGZvciBsaWJ4bWwyXG4iKTsKKworICAgIGN1ciA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKCF4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJ0ZXN0U3VpdGUiKSkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmV4cGVjdGVkIGZvcm1hdCAlc1xuIiwgZmlsZW5hbWUpOworCXJldCA9IC0xOworCWdvdG8gZG9uZTsKKyAgICB9CisKKyAgICBjdXIgPSBnZXROZXh0KGN1ciwgIi4vdGVzdFN1aXRlWzFdIik7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKCF4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJ0ZXN0U3VpdGUiKSkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmV4cGVjdGVkIGZvcm1hdCAlc1xuIiwgZmlsZW5hbWUpOworCXJldCA9IC0xOworCWdvdG8gZG9uZTsKKyAgICB9CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIHhzZFRlc3RTdWl0ZShjdXIpOworCWN1ciA9IGdldE5leHQoY3VyLCAiZm9sbG93aW5nLXNpYmxpbmc6OnRlc3RTdWl0ZVsxXSIpOworICAgIH0KKworZG9uZToKKyAgICBpZiAoZG9jICE9IE5VTEwpCisJeG1sRnJlZURvYyhkb2MpOworICAgIHJldHVybihyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlTY2hlbWFzIHRlc3Qgc3VpdGVzIGZyb20gVzNDL05JU1QvTVMvU3VuCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK3hzdGNUZXN0SW5zdGFuY2UoeG1sTm9kZVB0ciBjdXIsIHhtbFNjaGVtYVB0ciBzY2hlbWFzLAorICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpzcGF0aCwgY29uc3QgY2hhciAqYmFzZSkgeworICAgIHhtbENoYXIgKmhyZWYgPSBOVUxMOworICAgIHhtbENoYXIgKnBhdGggPSBOVUxMOworICAgIHhtbENoYXIgKnZhbGlkaXR5ID0gTlVMTDsKKyAgICB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCA9IE5VTEw7CisgICAgeG1sRG9jUHRyIGRvYyA9IE5VTEw7CisgICAgaW50IHJldCA9IDAsIG1lbTsKKworICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgdGVzdEVycm9yc1NpemUgPSAwOyB0ZXN0RXJyb3JzWzBdID0gMDsKKyAgICBtZW0gPSB4bWxNZW1Vc2VkKCk7CisgICAgaHJlZiA9IGdldFN0cmluZyhjdXIsCisgICAgICAgICAgICAgICAgICAgICAic3RyaW5nKHRzOmluc3RhbmNlRG9jdW1lbnQvQHhsaW5rOmhyZWYpIik7CisgICAgaWYgKChocmVmID09IE5VTEwpIHx8IChocmVmWzBdID09IDApKSB7CisJdGVzdF9sb2coInRlc3RHcm91cCBsaW5lICVsZCBtaXNzZXMgaHJlZiBmb3Igc2NoZW1hRG9jdW1lbnRcbiIsCisJCSAgICB4bWxHZXRMaW5lTm8oY3VyKSk7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKyAgICBwYXRoID0geG1sQnVpbGRVUkkoaHJlZiwgQkFEX0NBU1QgYmFzZSk7CisgICAgaWYgKHBhdGggPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLAorCSAgICAgICAgIkZhaWxlZCB0byBidWlsZCBwYXRoIHRvIHNjaGVtYXMgdGVzdEdyb3VwIGxpbmUgJWxkIDogJXNcbiIsCisJCXhtbEdldExpbmVObyhjdXIpLCBocmVmKTsKKwlyZXQgPSAtMTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIGlmIChjaGVja1Rlc3RGaWxlKChjb25zdCBjaGFyICopIHBhdGgpIDw9IDApIHsKKwl0ZXN0X2xvZygic2NoZW1hcyBmb3IgdGVzdEdyb3VwIGxpbmUgJWxkIGlzIG1pc3Npbmc6ICVzXG4iLAorCQl4bWxHZXRMaW5lTm8oY3VyKSwgcGF0aCk7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKyAgICB2YWxpZGl0eSA9IGdldFN0cmluZyhjdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZyh0czpleHBlY3RlZC9AdmFsaWRpdHkpIik7CisgICAgaWYgKHZhbGlkaXR5ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJpbnN0YW5jZURvY3VtZW50IGxpbmUgJWxkIG1pc3NlcyBleHBlY3RlZCB2YWxpZGl0eVxuIiwKKwkgICAgICAgIHhtbEdldExpbmVObyhjdXIpKTsKKwlyZXQgPSAtMTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIG5iX3Rlc3RzKys7CisgICAgZG9jID0geG1sUmVhZEZpbGUoKGNvbnN0IGNoYXIgKikgcGF0aCwgTlVMTCwgWE1MX1BBUlNFX05PRU5UKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJpbnN0YW5jZSAlcyBmYWlscyB0byBwYXJzZVxuIiwgcGF0aCk7CisJcmV0ID0gLTE7CisJbmJfZXJyb3JzKys7CisJZ290byBkb25lOworICAgIH0KKworICAgIGN0eHQgPSB4bWxTY2hlbWFOZXdWYWxpZEN0eHQoc2NoZW1hcyk7CisgICAgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMoY3R4dCwKKyAgICAgICAgICh4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKyAgICAgICAgICh4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorCSBjdHh0KTsKKyAgICByZXQgPSB4bWxTY2hlbWFWYWxpZGF0ZURvYyhjdHh0LCBkb2MpOworCisgICAgaWYgKHhtbFN0ckVxdWFsKHZhbGlkaXR5LCBCQURfQ0FTVCAidmFsaWQiKSkgeworCWlmIChyZXQgPiAwKSB7CisJICAgIHRlc3RfbG9nKCJ2YWxpZCBpbnN0YW5jZSAlcyBmYWlsZWQgdG8gdmFsaWRhdGUgYWdhaW5zdCAlc1xuIiwKKwkJCXBhdGgsIHNwYXRoKTsKKwkgICAgbmJfZXJyb3JzKys7CisJfSBlbHNlIGlmIChyZXQgPCAwKSB7CisJICAgIHRlc3RfbG9nKCJ2YWxpZCBpbnN0YW5jZSAlcyBnb3QgaW50ZXJuYWwgZXJyb3IgdmFsaWRhdGluZyAlc1xuIiwKKwkJCXBhdGgsIHNwYXRoKTsKKwkgICAgbmJfaW50ZXJuYWxzKys7CisJICAgIG5iX2Vycm9ycysrOworCX0KKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKHZhbGlkaXR5LCBCQURfQ0FTVCAiaW52YWxpZCIpKSB7CisJaWYgKHJldCA9PSAwKSB7CisJICAgIHRlc3RfbG9nKCJGYWlsZWQgdG8gZGV0ZWN0IGludmFsaWQgaW5zdGFuY2UgJXMgYWdhaW5zdCAlc1xuIiwKKwkJCXBhdGgsIHNwYXRoKTsKKwkgICAgbmJfZXJyb3JzKys7CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RfbG9nKCJpbnN0YW5jZURvY3VtZW50IGxpbmUgJWxkIGhhcyB1bmV4cGVjdGVkIHZhbGlkaXR5IHZhbHVlJXNcbiIsCisJICAgICAgICB4bWxHZXRMaW5lTm8oY3VyKSwgdmFsaWRpdHkpOworCXJldCA9IC0xOworCWdvdG8gZG9uZTsKKyAgICB9CisKK2RvbmU6CisgICAgaWYgKGhyZWYgIT0gTlVMTCkgeG1sRnJlZShocmVmKTsKKyAgICBpZiAocGF0aCAhPSBOVUxMKSB4bWxGcmVlKHBhdGgpOworICAgIGlmICh2YWxpZGl0eSAhPSBOVUxMKSB4bWxGcmVlKHZhbGlkaXR5KTsKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0KGN0eHQpOworICAgIGlmIChkb2MgIT0gTlVMTCkgeG1sRnJlZURvYyhkb2MpOworICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgaWYgKG1lbSAhPSB4bWxNZW1Vc2VkKCkpIHsKKwl0ZXN0X2xvZygiVmFsaWRhdGlvbiBvZiB0ZXN0cyBzdGFydGluZyBsaW5lICVsZCBsZWFrZWQgJWRcbiIsCisJCXhtbEdldExpbmVObyhjdXIpLCB4bWxNZW1Vc2VkKCkgLSBtZW0pOworCW5iX2xlYWtzKys7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50Cit4c3RjVGVzdEdyb3VwKHhtbE5vZGVQdHIgY3VyLCBjb25zdCBjaGFyICpiYXNlKSB7CisgICAgeG1sQ2hhciAqaHJlZiA9IE5VTEw7CisgICAgeG1sQ2hhciAqcGF0aCA9IE5VTEw7CisgICAgeG1sQ2hhciAqdmFsaWRpdHkgPSBOVUxMOworICAgIHhtbFNjaGVtYVB0ciBzY2hlbWFzID0gTlVMTDsKKyAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sTm9kZVB0ciBpbnN0YW5jZTsKKyAgICBpbnQgcmV0ID0gMCwgbWVtOworCisgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICB0ZXN0RXJyb3JzU2l6ZSA9IDA7IHRlc3RFcnJvcnNbMF0gPSAwOworICAgIG1lbSA9IHhtbE1lbVVzZWQoKTsKKyAgICBocmVmID0gZ2V0U3RyaW5nKGN1ciwKKyAgICAgICAgICAgICAgICAgICAgICJzdHJpbmcodHM6c2NoZW1hVGVzdC90czpzY2hlbWFEb2N1bWVudC9AeGxpbms6aHJlZikiKTsKKyAgICBpZiAoKGhyZWYgPT0gTlVMTCkgfHwgKGhyZWZbMF0gPT0gMCkpIHsKKyAgICAgICAgdGVzdF9sb2coInRlc3RHcm91cCBsaW5lICVsZCBtaXNzZXMgaHJlZiBmb3Igc2NoZW1hRG9jdW1lbnRcbiIsCisJCSAgICB4bWxHZXRMaW5lTm8oY3VyKSk7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKyAgICBwYXRoID0geG1sQnVpbGRVUkkoaHJlZiwgQkFEX0NBU1QgYmFzZSk7CisgICAgaWYgKHBhdGggPT0gTlVMTCkgeworCXRlc3RfbG9nKCJGYWlsZWQgdG8gYnVpbGQgcGF0aCB0byBzY2hlbWFzIHRlc3RHcm91cCBsaW5lICVsZCA6ICVzXG4iLAorCQl4bWxHZXRMaW5lTm8oY3VyKSwgaHJlZik7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKyAgICBpZiAoY2hlY2tUZXN0RmlsZSgoY29uc3QgY2hhciAqKSBwYXRoKSA8PSAwKSB7CisJdGVzdF9sb2coInNjaGVtYXMgZm9yIHRlc3RHcm91cCBsaW5lICVsZCBpcyBtaXNzaW5nOiAlc1xuIiwKKwkJeG1sR2V0TGluZU5vKGN1ciksIHBhdGgpOworCXJldCA9IC0xOworCWdvdG8gZG9uZTsKKyAgICB9CisgICAgdmFsaWRpdHkgPSBnZXRTdHJpbmcoY3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmcodHM6c2NoZW1hVGVzdC90czpleHBlY3RlZC9AdmFsaWRpdHkpIik7CisgICAgaWYgKHZhbGlkaXR5ID09IE5VTEwpIHsKKyAgICAgICAgdGVzdF9sb2coInRlc3RHcm91cCBsaW5lICVsZCBtaXNzZXMgZXhwZWN0ZWQgdmFsaWRpdHlcbiIsCisJICAgICAgICB4bWxHZXRMaW5lTm8oY3VyKSk7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKyAgICBuYl90ZXN0cysrOworICAgIGlmICh4bWxTdHJFcXVhbCh2YWxpZGl0eSwgQkFEX0NBU1QgInZhbGlkIikpIHsKKyAgICAgICAgbmJfc2NoZW1hdGFzKys7CisJY3R4dCA9IHhtbFNjaGVtYU5ld1BhcnNlckN0eHQoKGNvbnN0IGNoYXIgKikgcGF0aCk7CisJeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzKGN0eHQsCisJICAgICAoeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMpIHRlc3RFcnJvckhhbmRsZXIsCisJICAgICAoeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKwkgICAgIGN0eHQpOworCXNjaGVtYXMgPSB4bWxTY2hlbWFQYXJzZShjdHh0KTsKKwl4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlpZiAoc2NoZW1hcyA9PSBOVUxMKSB7CisJICAgIHRlc3RfbG9nKCJ2YWxpZCBzY2hlbWFzICVzIGZhaWxlZCB0byBwYXJzZVxuIiwKKwkJCXBhdGgpOworCSAgICByZXQgPSAxOworCSAgICBuYl9lcnJvcnMrKzsKKwl9CisJaWYgKChyZXQgPT0gMCkgJiYgKHN0cnN0cih0ZXN0RXJyb3JzLCAibmltcGxlbWVudGVkIikgIT0gTlVMTCkpIHsKKwkgICAgdGVzdF9sb2coInZhbGlkIHNjaGVtYXMgJXMgaGl0IGFuIHVuaW1wbGVtZW50ZWQgYmxvY2tcbiIsCisJCQlwYXRoKTsKKwkgICAgcmV0ID0gMTsKKwkgICAgbmJfdW5pbXBsZW1lbnRlZCsrOworCSAgICBuYl9lcnJvcnMrKzsKKwl9CisJaW5zdGFuY2UgPSBnZXROZXh0KGN1ciwgIi4vdHM6aW5zdGFuY2VUZXN0WzFdIik7CisJd2hpbGUgKGluc3RhbmNlICE9IE5VTEwpIHsKKwkgICAgaWYgKHNjaGVtYXMgIT0gTlVMTCkgeworCQl4c3RjVGVzdEluc3RhbmNlKGluc3RhbmNlLCBzY2hlbWFzLCBwYXRoLCBiYXNlKTsJCQorCSAgICB9IGVsc2UgeworCQkvKgorCQkqIFdlJ2xsIGF1dG9tYXRpY2FsbHkgbWFyayB0aGUgaW5zdGFuY2VzIGFzIGZhaWxlZAorCQkqIGlmIHRoZSBzY2hlbWEgd2FzIGJyb2tlbi4KKwkJKi8KKwkJbmJfZXJyb3JzKys7CisJICAgIH0KKwkgICAgaW5zdGFuY2UgPSBnZXROZXh0KGluc3RhbmNlLAorCQkiZm9sbG93aW5nLXNpYmxpbmc6OnRzOmluc3RhbmNlVGVzdFsxXSIpOworCX0KKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKHZhbGlkaXR5LCBCQURfQ0FTVCAiaW52YWxpZCIpKSB7CisgICAgICAgIG5iX3NjaGVtYXRhcysrOworCWN0eHQgPSB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0KChjb25zdCBjaGFyICopIHBhdGgpOworCXhtbFNjaGVtYVNldFBhcnNlckVycm9ycyhjdHh0LAorCSAgICAgKHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorCSAgICAgKHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMpIHRlc3RFcnJvckhhbmRsZXIsCisJICAgICBjdHh0KTsKKwlzY2hlbWFzID0geG1sU2NoZW1hUGFyc2UoY3R4dCk7CisJeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJaWYgKHNjaGVtYXMgIT0gTlVMTCkgeworCSAgICB0ZXN0X2xvZygiRmFpbGVkIHRvIGRldGVjdCBlcnJvciBpbiBzY2hlbWFzICVzXG4iLAorCQkJcGF0aCk7CisJICAgIG5iX2Vycm9ycysrOworCSAgICByZXQgPSAxOworCX0KKwlpZiAoKHJldCA9PSAwKSAmJiAoc3Ryc3RyKHRlc3RFcnJvcnMsICJuaW1wbGVtZW50ZWQiKSAhPSBOVUxMKSkgeworCSAgICBuYl91bmltcGxlbWVudGVkKys7CisJICAgIHRlc3RfbG9nKCJpbnZhbGlkIHNjaGVtYXMgJXMgaGl0IGFuIHVuaW1wbGVtZW50ZWQgYmxvY2tcbiIsCisJCQlwYXRoKTsKKwkgICAgcmV0ID0gMTsKKwkgICAgbmJfZXJyb3JzKys7CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RfbG9nKCJ0ZXN0R3JvdXAgbGluZSAlbGQgbWlzc2VzIHVuZXhwZWN0ZWQgdmFsaWRpdHkgdmFsdWUlc1xuIiwKKwkgICAgICAgIHhtbEdldExpbmVObyhjdXIpLCB2YWxpZGl0eSk7CisJcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKworZG9uZToKKyAgICBpZiAoaHJlZiAhPSBOVUxMKSB4bWxGcmVlKGhyZWYpOworICAgIGlmIChwYXRoICE9IE5VTEwpIHhtbEZyZWUocGF0aCk7CisgICAgaWYgKHZhbGlkaXR5ICE9IE5VTEwpIHhtbEZyZWUodmFsaWRpdHkpOworICAgIGlmIChzY2hlbWFzICE9IE5VTEwpIHhtbFNjaGVtYUZyZWUoc2NoZW1hcyk7CisgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICBpZiAoKG1lbSAhPSB4bWxNZW1Vc2VkKCkpICYmIChleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9PSAwKSkgeworCXRlc3RfbG9nKCJQcm9jZXNzaW5nIHRlc3QgbGluZSAlbGQgJXMgbGVha2VkICVkXG4iLAorCQl4bWxHZXRMaW5lTm8oY3VyKSwgcGF0aCwgeG1sTWVtVXNlZCgpIC0gbWVtKTsKKwluYl9sZWFrcysrOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIGludAoreHN0Y01ldGFkYXRhKGNvbnN0IGNoYXIgKm1ldGFkYXRhLCBjb25zdCBjaGFyICpiYXNlKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxDaGFyICpjb250cmlidXRvcjsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIGludCByZXQgPSAwOworCisgICAgZG9jID0geG1sUmVhZEZpbGUobWV0YWRhdGEsIE5VTEwsIFhNTF9QQVJTRV9OT0VOVCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlICVzXG4iLCBtZXRhZGF0YSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBjdXIgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworICAgIGlmICgoY3VyID09IE5VTEwpIHx8ICgheG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAidGVzdFNldCIpKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuZXhwZWN0ZWQgZm9ybWF0ICVzXG4iLCBtZXRhZGF0YSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgY29udHJpYnV0b3IgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgImNvbnRyaWJ1dG9yIik7CisgICAgaWYgKGNvbnRyaWJ1dG9yID09IE5VTEwpIHsKKyAgICAgICAgY29udHJpYnV0b3IgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIlVua25vd24iKTsKKyAgICB9CisgICAgbmFtZSA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAibmFtZSIpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKyAgICAgICAgbmFtZSA9IHhtbFN0cmR1cChCQURfQ0FTVCAiVW5rbm93biIpOworICAgIH0KKyAgICBwcmludGYoIiMjICVzIHRlc3Qgc3VpdGUgZm9yIFNjaGVtYXMgdmVyc2lvbiAlc1xuIiwgY29udHJpYnV0b3IsIG5hbWUpOworICAgIHhtbEZyZWUoY29udHJpYnV0b3IpOworICAgIHhtbEZyZWUobmFtZSk7CisKKyAgICBjdXIgPSBnZXROZXh0KGN1ciwgIi4vdHM6dGVzdEdyb3VwWzFdIik7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKCF4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJ0ZXN0R3JvdXAiKSkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmV4cGVjdGVkIGZvcm1hdCAlc1xuIiwgbWV0YWRhdGEpOworCXJldCA9IC0xOworCWdvdG8gZG9uZTsKKyAgICB9CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIHhzdGNUZXN0R3JvdXAoY3VyLCBiYXNlKTsKKwljdXIgPSBnZXROZXh0KGN1ciwgImZvbGxvd2luZy1zaWJsaW5nOjp0czp0ZXN0R3JvdXBbMV0iKTsKKyAgICB9CisKK2RvbmU6CisgICAgeG1sRnJlZURvYyhkb2MpOworICAgIHJldHVybihyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlUaGUgZHJpdmVyIGZvciB0aGUgdGVzdHMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitpbnQKK21haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGludCByZXQgPSAwOworICAgIGludCBvbGRfZXJyb3JzLCBvbGRfdGVzdHMsIG9sZF9sZWFrczsKKworICAgIGxvZ2ZpbGUgPSBmb3BlbihMT0dGSUxFLCAidyIpOworICAgIGlmIChsb2dmaWxlID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsCisJICAgICAgICAiQ291bGQgbm90IG9wZW4gdGhlIGxvZyBmaWxlLCBydW5uaW5nIGluIHZlcmJvc2UgbW9kZVxuIik7CisJdmVyYm9zZSA9IDE7CisgICAgfQorICAgIGluaXRpYWxpemVMaWJ4bWwyKCk7CisKKyAgICBpZiAoKGFyZ2MgPj0gMikgJiYgKCFzdHJjbXAoYXJndlsxXSwgIi12IikpKQorICAgICAgICB2ZXJib3NlID0gMTsKKworCisgICAgb2xkX2Vycm9ycyA9IG5iX2Vycm9yczsKKyAgICBvbGRfdGVzdHMgPSBuYl90ZXN0czsKKyAgICBvbGRfbGVha3MgPSBuYl9sZWFrczsKKyAgICB4c2RUZXN0KCk7CisgICAgaWYgKChuYl9lcnJvcnMgPT0gb2xkX2Vycm9ycykgJiYgKG5iX2xlYWtzID09IG9sZF9sZWFrcykpCisJcHJpbnRmKCJSYW4gJWQgdGVzdHMsIG5vIGVycm9yc1xuIiwgbmJfdGVzdHMgLSBvbGRfdGVzdHMpOworICAgIGVsc2UKKwlwcmludGYoIlJhbiAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMgLSBvbGRfdGVzdHMsCisJICAgICAgIG5iX2Vycm9ycyAtIG9sZF9lcnJvcnMsCisJICAgICAgIG5iX2xlYWtzIC0gb2xkX2xlYWtzKTsKKyAgICBvbGRfZXJyb3JzID0gbmJfZXJyb3JzOworICAgIG9sZF90ZXN0cyA9IG5iX3Rlc3RzOworICAgIG9sZF9sZWFrcyA9IG5iX2xlYWtzOworICAgIHJuZ1Rlc3QxKCk7CisgICAgaWYgKChuYl9lcnJvcnMgPT0gb2xkX2Vycm9ycykgJiYgKG5iX2xlYWtzID09IG9sZF9sZWFrcykpCisJcHJpbnRmKCJSYW4gJWQgdGVzdHMsIG5vIGVycm9yc1xuIiwgbmJfdGVzdHMgLSBvbGRfdGVzdHMpOworICAgIGVsc2UKKwlwcmludGYoIlJhbiAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMgLSBvbGRfdGVzdHMsCisJICAgICAgIG5iX2Vycm9ycyAtIG9sZF9lcnJvcnMsCisJICAgICAgIG5iX2xlYWtzIC0gb2xkX2xlYWtzKTsKKyAgICBvbGRfZXJyb3JzID0gbmJfZXJyb3JzOworICAgIG9sZF90ZXN0cyA9IG5iX3Rlc3RzOworICAgIG9sZF9sZWFrcyA9IG5iX2xlYWtzOworICAgIHJuZ1Rlc3QyKCk7CisgICAgaWYgKChuYl9lcnJvcnMgPT0gb2xkX2Vycm9ycykgJiYgKG5iX2xlYWtzID09IG9sZF9sZWFrcykpCisJcHJpbnRmKCJSYW4gJWQgdGVzdHMsIG5vIGVycm9yc1xuIiwgbmJfdGVzdHMgLSBvbGRfdGVzdHMpOworICAgIGVsc2UKKwlwcmludGYoIlJhbiAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMgLSBvbGRfdGVzdHMsCisJICAgICAgIG5iX2Vycm9ycyAtIG9sZF9lcnJvcnMsCisJICAgICAgIG5iX2xlYWtzIC0gb2xkX2xlYWtzKTsKKyAgICBvbGRfZXJyb3JzID0gbmJfZXJyb3JzOworICAgIG9sZF90ZXN0cyA9IG5iX3Rlc3RzOworICAgIG9sZF9sZWFrcyA9IG5iX2xlYWtzOworICAgIG5iX2ludGVybmFscyA9IDA7CisgICAgbmJfc2NoZW1hdGFzID0gMDsKKyAgICB4c3RjTWV0YWRhdGEoInhzdGMvVGVzdHMvTWV0YWRhdGEvTklTVFhNTFNjaGVtYURhdGF0eXBlcy50ZXN0U2V0IiwKKwkJICJ4c3RjL1Rlc3RzL01ldGFkYXRhLyIpOworICAgIGlmICgobmJfZXJyb3JzID09IG9sZF9lcnJvcnMpICYmIChuYl9sZWFrcyA9PSBvbGRfbGVha3MpKQorCXByaW50ZigiUmFuICVkIHRlc3RzICglZCBzY2hlbWF0YSksIG5vIGVycm9yc1xuIiwKKwkgICAgICAgbmJfdGVzdHMgLSBvbGRfdGVzdHMsIG5iX3NjaGVtYXRhcyk7CisgICAgZWxzZQorCXByaW50ZigiUmFuICVkIHRlc3RzICglZCBzY2hlbWF0YSksICVkIGVycm9ycyAoJWQgaW50ZXJuYWxzKSwgJWQgbGVha3NcbiIsCisJICAgICAgIG5iX3Rlc3RzIC0gb2xkX3Rlc3RzLAorCSAgICAgICBuYl9zY2hlbWF0YXMsCisJICAgICAgIG5iX2Vycm9ycyAtIG9sZF9lcnJvcnMsCisJICAgICAgIG5iX2ludGVybmFscywKKwkgICAgICAgbmJfbGVha3MgLSBvbGRfbGVha3MpOworICAgIG9sZF9lcnJvcnMgPSBuYl9lcnJvcnM7CisgICAgb2xkX3Rlc3RzID0gbmJfdGVzdHM7CisgICAgb2xkX2xlYWtzID0gbmJfbGVha3M7CisgICAgbmJfaW50ZXJuYWxzID0gMDsKKyAgICBuYl9zY2hlbWF0YXMgPSAwOworICAgIHhzdGNNZXRhZGF0YSgieHN0Yy9UZXN0cy9NZXRhZGF0YS9TdW5YTUxTY2hlbWExLTAtMjAwMjAxMTYudGVzdFNldCIsCisJCSAieHN0Yy9UZXN0cy8iKTsKKyAgICBpZiAoKG5iX2Vycm9ycyA9PSBvbGRfZXJyb3JzKSAmJiAobmJfbGVha3MgPT0gb2xkX2xlYWtzKSkKKwlwcmludGYoIlJhbiAlZCB0ZXN0cyAoJWQgc2NoZW1hdGEpLCBubyBlcnJvcnNcbiIsCisJICAgICAgIG5iX3Rlc3RzIC0gb2xkX3Rlc3RzLCBuYl9zY2hlbWF0YXMpOworICAgIGVsc2UKKwlwcmludGYoIlJhbiAlZCB0ZXN0cyAoJWQgc2NoZW1hdGEpLCAlZCBlcnJvcnMgKCVkIGludGVybmFscyksICVkIGxlYWtzXG4iLAorCSAgICAgICBuYl90ZXN0cyAtIG9sZF90ZXN0cywKKwkgICAgICAgbmJfc2NoZW1hdGFzLAorCSAgICAgICBuYl9lcnJvcnMgLSBvbGRfZXJyb3JzLAorCSAgICAgICBuYl9pbnRlcm5hbHMsCisJICAgICAgIG5iX2xlYWtzIC0gb2xkX2xlYWtzKTsKKyAgICBvbGRfZXJyb3JzID0gbmJfZXJyb3JzOworICAgIG9sZF90ZXN0cyA9IG5iX3Rlc3RzOworICAgIG9sZF9sZWFrcyA9IG5iX2xlYWtzOworICAgIG5iX2ludGVybmFscyA9IDA7CisgICAgbmJfc2NoZW1hdGFzID0gMDsKKyAgICB4c3RjTWV0YWRhdGEoInhzdGMvVGVzdHMvTWV0YWRhdGEvTVNYTUxTY2hlbWExLTAtMjAwMjAxMTYudGVzdFNldCIsCisJCSAieHN0Yy9UZXN0cy8iKTsKKyAgICBpZiAoKG5iX2Vycm9ycyA9PSBvbGRfZXJyb3JzKSAmJiAobmJfbGVha3MgPT0gb2xkX2xlYWtzKSkKKwlwcmludGYoIlJhbiAlZCB0ZXN0cyAoJWQgc2NoZW1hdGEpLCBubyBlcnJvcnNcbiIsCisJICAgICAgIG5iX3Rlc3RzIC0gb2xkX3Rlc3RzLCBuYl9zY2hlbWF0YXMpOworICAgIGVsc2UKKwlwcmludGYoIlJhbiAlZCB0ZXN0cyAoJWQgc2NoZW1hdGEpLCAlZCBlcnJvcnMgKCVkIGludGVybmFscyksICVkIGxlYWtzXG4iLAorCSAgICAgICBuYl90ZXN0cyAtIG9sZF90ZXN0cywKKwkgICAgICAgbmJfc2NoZW1hdGFzLAorCSAgICAgICBuYl9lcnJvcnMgLSBvbGRfZXJyb3JzLAorCSAgICAgICBuYl9pbnRlcm5hbHMsCisJICAgICAgIG5iX2xlYWtzIC0gb2xkX2xlYWtzKTsKKworICAgIGlmICgobmJfZXJyb3JzID09IDApICYmIChuYl9sZWFrcyA9PSAwKSkgeworICAgICAgICByZXQgPSAwOworCXByaW50ZigiVG90YWwgJWQgdGVzdHMsIG5vIGVycm9yc1xuIiwKKwkgICAgICAgbmJfdGVzdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IDE7CisJcHJpbnRmKCJUb3RhbCAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMsIG5iX2Vycm9ycywgbmJfbGVha3MpOworICAgIH0KKyAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eHRYUGF0aCk7CisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIHhtbE1lbW9yeUR1bXAoKTsKKworICAgIGlmIChsb2dmaWxlICE9IE5VTEwpCisgICAgICAgIGZjbG9zZShsb2dmaWxlKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbHNlIC8qICFTQ0hFTUFTICovCitpbnQKK21haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGZwcmludGYoc3RkZXJyLCAicnVuc3VpdGUgcmVxdWlyZXMgc3VwcG9ydCBmb3Igc2NoZW1hcyBhbmQgeHBhdGggaW4gbGlieG1sMlxuIik7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcnVudGVzdC5jIGIvbGlieG1sMi0yLjcuNy9ydW50ZXN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5MjVjMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcnVudGVzdC5jCkBAIC0wLDAgKzEsNDQ3MSBAQAorLyoKKyAqIHJ1bnRlc3QuYzogQyBwcm9ncmFtIHRvIHJ1biBsaWJ4bWwyIHJlZ3Jlc3Npb24gdGVzdHMgd2l0aG91dAorICogICAgICAgICAgICByZXF1aXJpbmcgbWFrZSBvciBQeXRob24sIGFuZCByZWR1Y2luZyBwbGF0Zm9ybSBkZXBlbmRhbmNpZXMKKyAqICAgICAgICAgICAgdG8gYSBzdHJpY3QgbWluaW11bS4KKyAqCisgKiBUbyBjb21waWxlIG9uIFVuaXhlczoKKyAqIGNjIC1vIHJ1bnRlc3QgYHhtbDItY29uZmlnIC0tY2ZsYWdzYCBydW50ZXN0LmMgYHhtbDItY29uZmlnIC0tbGlic2AgLWxwdGhyZWFkCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjaWZkZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgImxpYnhtbC5oIgorI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKworI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWFkZXIuaD4KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwveGluY2x1ZGUuaD4KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGguaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaD4KKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3hwb2ludGVyLmg+CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9yZWxheG5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHNjaGVtYXMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg+CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwvcGF0dGVybi5oPgorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfQzE0Tl9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL2MxNG4uaD4KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9IVE1McGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUx0cmVlLmg+CisKKy8qCisgKiBwc2V1ZG8gZmxhZyBmb3IgdGhlIHVuaWZpY2F0aW9uIG9mIEhUTUwgYW5kIFhNTCB0ZXN0cworICovCisjZGVmaW5lIFhNTF9QQVJTRV9IVE1MIDEgPDwgMjQKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVEhSRUFEX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC90aHJlYWRzLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9jYXRhbG9nLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjZW5kaWYKKworLyoKKyAqIE9fQklOQVJZIGlzIGp1c3QgZm9yIFdpbmRvd3MgY29tcGF0aWJpbGl0eSAtIGlmIGl0IGlzbid0IGRlZmluZWQKKyAqIG9uIHRoaXMgc3lzdGVtLCBhdm9pZCBhbnkgY29tcGlsYXRpb24gZXJyb3IKKyAqLworI2lmZGVmCU9fQklOQVJZCisjZGVmaW5lIFJEX0ZMQUdTCU9fUkRPTkxZIHwgT19CSU5BUlkKKyNlbHNlCisjZGVmaW5lCVJEX0ZMQUdTCU9fUkRPTkxZCisjZW5kaWYKKwordHlwZWRlZiBpbnQgKCpmdW5jdGVzdCkgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3IsIGludCBvcHRpb25zKTsKKwordHlwZWRlZiBzdHJ1Y3QgdGVzdERlc2MgdGVzdERlc2M7Cit0eXBlZGVmIHRlc3REZXNjICp0ZXN0RGVzY1B0cjsKK3N0cnVjdCB0ZXN0RGVzYyB7CisgICAgY29uc3QgY2hhciAqZGVzYzsgLyogZGVzY3JpcHRvbiBvZiB0aGUgdGVzdCAqLworICAgIGZ1bmN0ZXN0ICAgIGZ1bmM7IC8qIGZ1bmN0aW9uIGltcGxlbWVudGluZyB0aGUgdGVzdCAqLworICAgIGNvbnN0IGNoYXIgKmluOyAgIC8qIGdsb2IgdG8gcGF0aCBmb3IgaW5wdXQgZmlsZXMgKi8KKyAgICBjb25zdCBjaGFyICpvdXQ7ICAvKiBvdXRwdXQgZGlyZWN0b3J5ICovCisgICAgY29uc3QgY2hhciAqc3VmZml4Oy8qIHN1ZmZpeCBmb3Igb3V0cHV0IGZpbGVzICovCisgICAgY29uc3QgY2hhciAqZXJyOyAgLyogc3VmZml4IGZvciBlcnJvciBvdXRwdXQgZmlsZXMgKi8KKyAgICBpbnQgICAgIG9wdGlvbnM7ICAvKiBwYXJzZXIgb3B0aW9ucyBmb3IgdGhlIHRlc3QgKi8KK307CisKK3N0YXRpYyBpbnQgY2hlY2tUZXN0RmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSk7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKworI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxpby5oPgorCit0eXBlZGVmIHN0cnVjdAoreworICAgICAgc2l6ZV90IGdsX3BhdGhjOyAgICAvKiBDb3VudCBvZiBwYXRocyBtYXRjaGVkIHNvIGZhciAgKi8KKyAgICAgIGNoYXIgKipnbF9wYXRodjsgICAgLyogTGlzdCBvZiBtYXRjaGVkIHBhdGhuYW1lcy4gICovCisgICAgICBzaXplX3QgZ2xfb2ZmczsgICAgIC8qIFNsb3RzIHRvIHJlc2VydmUgaW4gJ2dsX3BhdGh2Jy4gICovCit9IGdsb2JfdDsKKworI2RlZmluZSBHTE9CX0RPT0ZGUyAwCitzdGF0aWMgaW50IGdsb2IoY29uc3QgY2hhciAqcGF0dGVybiwgaW50IGZsYWdzLAorICAgICAgICAgICAgICAgIGludCBlcnJmdW5jKGNvbnN0IGNoYXIgKmVwYXRoLCBpbnQgZWVycm5vKSwKKyAgICAgICAgICAgICAgICBnbG9iX3QgKnBnbG9iKSB7CisgICAgZ2xvYl90ICpyZXQ7CisgICAgV0lOMzJfRklORF9EQVRBIEZpbmRGaWxlRGF0YTsKKyAgICBIQU5ETEUgaEZpbmQ7CisgICAgdW5zaWduZWQgaW50IG5iX3BhdGhzID0gMDsKKyAgICBjaGFyIGRpcmVjdG9yeVs1MDBdOworICAgIGludCBsZW47CisKKyAgICBpZiAoKHBhdHRlcm4gPT0gTlVMTCkgfHwgKHBnbG9iID09IE5VTEwpKSByZXR1cm4oLTEpOworCisgICAgc3RybmNweShkaXJlY3RvcnksIHBhdHRlcm4sIDQ5OSk7CisgICAgZm9yIChsZW4gPSBzdHJsZW4oZGlyZWN0b3J5KTtsZW4gPj0gMDtsZW4tLSkgeworICAgICAgICBpZiAoZGlyZWN0b3J5W2xlbl0gPT0gJy8nKSB7CisJICAgIGxlbisrOworCSAgICBkaXJlY3RvcnlbbGVuXSA9IDA7CisJICAgIGJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKGxlbiA8PSAwKQorICAgICAgICBsZW4gPSAwOworCisKKyAgICByZXQgPSBwZ2xvYjsKKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoZ2xvYl90KSk7CisKKyAgICBoRmluZCA9IEZpbmRGaXJzdEZpbGVBKHBhdHRlcm4sICZGaW5kRmlsZURhdGEpOworICAgIGlmIChoRmluZCA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuKDApOworICAgIG5iX3BhdGhzID0gMjA7CisgICAgcmV0LT5nbF9wYXRodiA9IChjaGFyICoqKSBtYWxsb2MobmJfcGF0aHMgKiBzaXplb2YoY2hhciAqKSk7CisgICAgaWYgKHJldC0+Z2xfcGF0aHYgPT0gTlVMTCkgeworCUZpbmRDbG9zZShoRmluZCk7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorICAgIHN0cm5jcHkoZGlyZWN0b3J5ICsgbGVuLCBGaW5kRmlsZURhdGEuY0ZpbGVOYW1lLCA0OTkgLSBsZW4pOworICAgIHJldC0+Z2xfcGF0aHZbcmV0LT5nbF9wYXRoY10gPSBzdHJkdXAoZGlyZWN0b3J5KTsKKyAgICBpZiAocmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9PSBOVUxMKQorICAgICAgICBnb3RvIGRvbmU7CisgICAgcmV0LT5nbF9wYXRoYysrOworICAgIHdoaWxlKEZpbmROZXh0RmlsZUEoaEZpbmQsICZGaW5kRmlsZURhdGEpKSB7CisgICAgICAgIGlmIChGaW5kRmlsZURhdGEuY0ZpbGVOYW1lWzBdID09ICcuJykKKwkgICAgY29udGludWU7CisgICAgICAgIGlmIChyZXQtPmdsX3BhdGhjICsgMiA+IG5iX3BhdGhzKSB7CisgICAgICAgICAgICBjaGFyICoqdG1wID0gcmVhbGxvYyhyZXQtPmdsX3BhdGh2LCBuYl9wYXRocyAqIDIgKiBzaXplb2YoY2hhciAqKSk7CisgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXQtPmdsX3BhdGh2ID0gdG1wOworICAgICAgICAgICAgbmJfcGF0aHMgKj0gMjsKKwl9CisJc3RybmNweShkaXJlY3RvcnkgKyBsZW4sIEZpbmRGaWxlRGF0YS5jRmlsZU5hbWUsIDQ5OSAtIGxlbik7CisJcmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9IHN0cmR1cChkaXJlY3RvcnkpOworICAgICAgICBpZiAocmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9PSBOVUxMKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHJldC0+Z2xfcGF0aGMrKzsKKyAgICB9CisgICAgcmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9IE5VTEw7CisKK2RvbmU6CisgICAgRmluZENsb3NlKGhGaW5kKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKworCitzdGF0aWMgdm9pZCBnbG9iZnJlZShnbG9iX3QgKnBnbG9iKSB7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaWYgKHBnbG9iID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaSA9IDA7aSA8IHBnbG9iLT5nbF9wYXRoYztpKyspIHsKKyAgICAgICAgIGlmIChwZ2xvYi0+Z2xfcGF0aHZbaV0gIT0gTlVMTCkKKyAgICAgICAgICAgICBmcmVlKHBnbG9iLT5nbF9wYXRodltpXSk7CisgICAgfQorfQorI2RlZmluZSB2c25wcmludGYgX3ZzbnByaW50ZgorI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKKyNlbHNlCisjaW5jbHVkZSA8Z2xvYi5oPgorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUxpYnhtbDIgc3BlY2lmaWMgcm91dGluZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50IG5iX3Rlc3RzID0gMDsKK3N0YXRpYyBpbnQgbmJfZXJyb3JzID0gMDsKK3N0YXRpYyBpbnQgbmJfbGVha3MgPSAwOworc3RhdGljIGludCBleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9IDA7CisKK3N0YXRpYyBpbnQKK2ZhdGFsRXJyb3Iodm9pZCkgeworICAgIGZwcmludGYoc3RkZXJyLCAiRXhpdHRpbmcgdGVzdHMgb24gZmF0YWwgZXJyb3JcbiIpOworICAgIGV4aXQoMSk7Cit9CisKKy8qCisgKiBXZSBuZWVkIHRvIHRyYXAgY2FsbHMgdG8gdGhlIHJlc29sdmVyIHRvIG5vdCBhY2NvdW50IG1lbW9yeSBmb3IgdGhlIGNhdGFsb2cKKyAqIHdoaWNoIGlzIHNoYXJlZCB0byB0aGUgY3VycmVudCBydW5uaW5nIHRlc3QuIFdlIGFsc28gZG9uJ3Qgd2FudCB0byBoYXZlCisgKiBuZXR3b3JrIGRvd25sb2FkcyBtb2RpZnlpbmcgdGVzdHMuCisgKi8KK3N0YXRpYyB4bWxQYXJzZXJJbnB1dFB0cgordGVzdEV4dGVybmFsRW50aXR5TG9hZGVyKGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqSUQsCisJCQkgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgcmV0OworCisgICAgaWYgKGNoZWNrVGVzdEZpbGUoVVJMKSkgeworCXJldCA9IHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoVVJMLCBJRCwgY3R4dCk7CisgICAgfSBlbHNlIHsKKwlpbnQgbWVtdXNlZCA9IHhtbE1lbVVzZWQoKTsKKwlyZXQgPSB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyKFVSTCwgSUQsIGN0eHQpOworCWV4dHJhTWVtb3J5RnJvbVJlc29sdmVyICs9IHhtbE1lbVVzZWQoKSAtIG1lbXVzZWQ7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qCisgKiBUcmFwcGluZyB0aGUgZXJyb3IgbWVzc2FnZXMgYXQgdGhlIGdlbmVyaWMgbGV2ZWwgdG8gZ3JhYiB0aGUgZXF1aXZhbGVudCBvZgorICogc3RkZXJyIG1lc3NhZ2VzIG9uIENMSSB0b29scy4KKyAqLworc3RhdGljIGNoYXIgdGVzdEVycm9yc1szMjc2OV07CitzdGF0aWMgaW50IHRlc3RFcnJvcnNTaXplID0gMDsKKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3Rlc3RFcnJvckhhbmRsZXIodm9pZCAqY3R4ICBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICptc2csIC4uLikgeworICAgIHZhX2xpc3QgYXJnczsKKyAgICBpbnQgcmVzOworCisgICAgaWYgKHRlc3RFcnJvcnNTaXplID49IDMyNzY4KQorICAgICAgICByZXR1cm47CisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICByZXMgPSB2c25wcmludGYoJnRlc3RFcnJvcnNbdGVzdEVycm9yc1NpemVdLAorICAgICAgICAgICAgICAgICAgICAzMjc2OCAtIHRlc3RFcnJvcnNTaXplLAorCQkgICAgbXNnLCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7CisgICAgaWYgKHRlc3RFcnJvcnNTaXplICsgcmVzID49IDMyNzY4KSB7CisgICAgICAgIC8qIGJ1ZmZlciBpcyBmdWxsICovCisJdGVzdEVycm9yc1NpemUgPSAzMjc2ODsKKwl0ZXN0RXJyb3JzW3Rlc3RFcnJvcnNTaXplXSA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEVycm9yc1NpemUgKz0gcmVzOworICAgIH0KKyAgICB0ZXN0RXJyb3JzW3Rlc3RFcnJvcnNTaXplXSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIFhNTENERUNMCitjaGFubmVsKHZvaWQgKmN0eCAgQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pIHsKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgaW50IHJlczsKKworICAgIGlmICh0ZXN0RXJyb3JzU2l6ZSA+PSAzMjc2OCkKKyAgICAgICAgcmV0dXJuOworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgcmVzID0gdnNucHJpbnRmKCZ0ZXN0RXJyb3JzW3Rlc3RFcnJvcnNTaXplXSwKKyAgICAgICAgICAgICAgICAgICAgMzI3NjggLSB0ZXN0RXJyb3JzU2l6ZSwKKwkJICAgIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworICAgIGlmICh0ZXN0RXJyb3JzU2l6ZSArIHJlcyA+PSAzMjc2OCkgeworICAgICAgICAvKiBidWZmZXIgaXMgZnVsbCAqLworCXRlc3RFcnJvcnNTaXplID0gMzI3Njg7CisJdGVzdEVycm9yc1t0ZXN0RXJyb3JzU2l6ZV0gPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RFcnJvcnNTaXplICs9IHJlczsKKyAgICB9CisgICAgdGVzdEVycm9yc1t0ZXN0RXJyb3JzU2l6ZV0gPSAwOworfQorCisvKioKKyAqIHhtbFBhcnNlclByaW50RmlsZUNvbnRleHQ6CisgKiBAaW5wdXQ6ICBhbiB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dAorICoKKyAqIERpc3BsYXlzIGN1cnJlbnQgY29udGV4dCB3aXRoaW4gdGhlIGlucHV0IGNvbnRlbnQgZm9yIGVycm9yIHRyYWNraW5nCisgKi8KKworc3RhdGljIHZvaWQKK3htbFBhcnNlclByaW50RmlsZUNvbnRleHRJbnRlcm5hbCh4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCAsCisJCXhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbmwsIHZvaWQgKmRhdGEgKSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyLCAqYmFzZTsKKyAgICB1bnNpZ25lZCBpbnQgbiwgY29sOwkvKiBHQ0Mgd2FybnMgaWYgc2lnbmVkLCBiZWNhdXNlIGNvbXBhcmVkIHdpdGggc2l6ZW9mKCkgKi8KKyAgICB4bWxDaGFyICBjb250ZW50WzgxXTsgLyogc3BhY2UgZm9yIDgwIGNoYXJzICsgbGluZSB0ZXJtaW5hdG9yICovCisgICAgeG1sQ2hhciAqY3RudDsKKworICAgIGlmIChpbnB1dCA9PSBOVUxMKSByZXR1cm47CisgICAgY3VyID0gaW5wdXQtPmN1cjsKKyAgICBiYXNlID0gaW5wdXQtPmJhc2U7CisgICAgLyogc2tpcCBiYWNrd2FyZHMgb3ZlciBhbnkgZW5kLW9mLWxpbmVzICovCisgICAgd2hpbGUgKChjdXIgPiBiYXNlKSAmJiAoKCooY3VyKSA9PSAnXG4nKSB8fCAoKihjdXIpID09ICdccicpKSkgeworCWN1ci0tOworICAgIH0KKyAgICBuID0gMDsKKyAgICAvKiBzZWFyY2ggYmFja3dhcmRzIGZvciBiZWdpbm5pbmctb2YtbGluZSAodG8gbWF4IGJ1ZmYgc2l6ZSkgKi8KKyAgICB3aGlsZSAoKG4rKyA8IChzaXplb2YoY29udGVudCktMSkpICYmIChjdXIgPiBiYXNlKSAmJgorICAgKCooY3VyKSAhPSAnXG4nKSAmJiAoKihjdXIpICE9ICdccicpKQorICAgICAgICBjdXItLTsKKyAgICBpZiAoKCooY3VyKSA9PSAnXG4nKSB8fCAoKihjdXIpID09ICdccicpKSBjdXIrKzsKKyAgICAvKiBjYWxjdWxhdGUgdGhlIGVycm9yIHBvc2l0aW9uIGluIHRlcm1zIG9mIHRoZSBjdXJyZW50IHBvc2l0aW9uICovCisgICAgY29sID0gaW5wdXQtPmN1ciAtIGN1cjsKKyAgICAvKiBzZWFyY2ggZm9yd2FyZCBmb3IgZW5kLW9mLWxpbmUgKHRvIG1heCBidWZmIHNpemUpICovCisgICAgbiA9IDA7CisgICAgY3RudCA9IGNvbnRlbnQ7CisgICAgLyogY29weSBzZWxlY3RlZCB0ZXh0IHRvIG91ciBidWZmZXIgKi8KKyAgICB3aGlsZSAoKCpjdXIgIT0gMCkgJiYgKCooY3VyKSAhPSAnXG4nKSAmJgorICAgKCooY3VyKSAhPSAnXHInKSAmJiAobiA8IHNpemVvZihjb250ZW50KS0xKSkgeworCQkqY3RudCsrID0gKmN1cisrOworCW4rKzsKKyAgICB9CisgICAgKmN0bnQgPSAwOworICAgIC8qIHByaW50IG91dCB0aGUgc2VsZWN0ZWQgdGV4dCAqLworICAgIGNoYW5sKGRhdGEgLCIlc1xuIiwgY29udGVudCk7CisgICAgLyogY3JlYXRlIGJsYW5rIGxpbmUgd2l0aCBwcm9ibGVtIHBvaW50ZXIgKi8KKyAgICBuID0gMDsKKyAgICBjdG50ID0gY29udGVudDsKKyAgICAvKiAobGVhdmUgYnVmZmVyIHNwYWNlIGZvciBwb2ludGVyICsgbGluZSB0ZXJtaW5hdG9yKSAqLworICAgIHdoaWxlICgobjxjb2wpICYmIChuKysgPCBzaXplb2YoY29udGVudCktMikgJiYgKCpjdG50ICE9IDApKSB7CisJaWYgKCooY3RudCkgIT0gJ1x0JykKKwkgICAgKihjdG50KSA9ICcgJzsKKwljdG50Kys7CisgICAgfQorICAgICpjdG50KysgPSAnXic7CisgICAgKmN0bnQgPSAwOworICAgIGNoYW5sKGRhdGEgLCIlc1xuIiwgY29udGVudCk7Cit9CisKK3N0YXRpYyB2b2lkCit0ZXN0U3RydWN0dXJlZEVycm9ySGFuZGxlcih2b2lkICpjdHggIEFUVFJJQlVURV9VTlVTRUQsIHhtbEVycm9yUHRyIGVycikgeworICAgIGNoYXIgKmZpbGUgPSBOVUxMOworICAgIGludCBsaW5lID0gMDsKKyAgICBpbnQgY29kZSA9IC0xOworICAgIGludCBkb21haW47CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqc3RyOworICAgIGNvbnN0IHhtbENoYXIgKm5hbWUgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICB4bWxFcnJvckxldmVsIGxldmVsOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0ID0gTlVMTDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBjdXIgPSBOVUxMOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9IE5VTEw7CisKKyAgICBpZiAoZXJyID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIGZpbGUgPSBlcnItPmZpbGU7CisgICAgbGluZSA9IGVyci0+bGluZTsKKyAgICBjb2RlID0gZXJyLT5jb2RlOworICAgIGRvbWFpbiA9IGVyci0+ZG9tYWluOworICAgIGxldmVsID0gZXJyLT5sZXZlbDsKKyAgICBub2RlID0gZXJyLT5ub2RlOworICAgIGlmICgoZG9tYWluID09IFhNTF9GUk9NX1BBUlNFUikgfHwgKGRvbWFpbiA9PSBYTUxfRlJPTV9IVE1MKSB8fAorICAgICAgICAoZG9tYWluID09IFhNTF9GUk9NX0RURCkgfHwgKGRvbWFpbiA9PSBYTUxfRlJPTV9OQU1FU1BBQ0UpIHx8CisJKGRvbWFpbiA9PSBYTUxfRlJPTV9JTykgfHwgKGRvbWFpbiA9PSBYTUxfRlJPTV9WQUxJRCkpIHsKKwljdHh0ID0gZXJyLT5jdHh0OworICAgIH0KKyAgICBzdHIgPSBlcnItPm1lc3NhZ2U7CisKKyAgICBpZiAoY29kZSA9PSBYTUxfRVJSX09LKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoKG5vZGUgIT0gTlVMTCkgJiYgKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkpCisgICAgICAgIG5hbWUgPSBub2RlLT5uYW1lOworCisgICAgLyoKKyAgICAgKiBNYWludGFpbiB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBsZWdhY3kgZXJyb3IgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGlucHV0ID0gY3R4dC0+aW5wdXQ7CisgICAgICAgIGlmICgoaW5wdXQgIT0gTlVMTCkgJiYgKGlucHV0LT5maWxlbmFtZSA9PSBOVUxMKSAmJgorICAgICAgICAgICAgKGN0eHQtPmlucHV0TnIgPiAxKSkgeworICAgICAgICAgICAgY3VyID0gaW5wdXQ7CisgICAgICAgICAgICBpbnB1dCA9IGN0eHQtPmlucHV0VGFiW2N0eHQtPmlucHV0TnIgLSAyXTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5wdXQgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKGlucHV0LT5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICBjaGFubmVsKGRhdGEsICIlczolZDogIiwgaW5wdXQtPmZpbGVuYW1lLCBpbnB1dC0+bGluZSk7CisgICAgICAgICAgICBlbHNlIGlmICgobGluZSAhPSAwKSAmJiAoZG9tYWluID09IFhNTF9GUk9NX1BBUlNFUikpCisgICAgICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiRW50aXR5OiBsaW5lICVkOiAiLCBpbnB1dC0+bGluZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZmlsZSAhPSBOVUxMKQorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiJXM6JWQ6ICIsIGZpbGUsIGxpbmUpOworICAgICAgICBlbHNlIGlmICgobGluZSAhPSAwKSAmJiAoZG9tYWluID09IFhNTF9GUk9NX1BBUlNFUikpCisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJFbnRpdHk6IGxpbmUgJWQ6ICIsIGxpbmUpOworICAgIH0KKyAgICBpZiAobmFtZSAhPSBOVUxMKSB7CisgICAgICAgIGNoYW5uZWwoZGF0YSwgImVsZW1lbnQgJXM6ICIsIG5hbWUpOworICAgIH0KKyAgICBpZiAoY29kZSA9PSBYTUxfRVJSX09LKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoIChkb21haW4pIHsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9QQVJTRVI6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJwYXJzZXIgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9OQU1FU1BBQ0U6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJuYW1lc3BhY2UgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9EVEQ6CisgICAgICAgIGNhc2UgWE1MX0ZST01fVkFMSUQ6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJ2YWxpZGl0eSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0hUTUw6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJIVE1MIHBhcnNlciAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX01FTU9SWToKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIm1lbW9yeSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX09VVFBVVDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIm91dHB1dCAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0lPOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiSS9PICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fWElOQ0xVREU6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJYSW5jbHVkZSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1hQQVRIOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiWFBhdGggIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9YUE9JTlRFUjoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgInBhcnNlciAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1JFR0VYUDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgInJlZ2V4cCAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX01PRFVMRToKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIm1vZHVsZSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1NDSEVNQVNWOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiU2NoZW1hcyB2YWxpZGl0eSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1NDSEVNQVNQOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiU2NoZW1hcyBwYXJzZXIgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9SRUxBWE5HUDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIlJlbGF4LU5HIHBhcnNlciAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1JFTEFYTkdWOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiUmVsYXgtTkcgdmFsaWRpdHkgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9DQVRBTE9HOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiQ2F0YWxvZyAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0MxNE46CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJDMTROICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fWFNMVDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIlhTTFQgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoY29kZSA9PSBYTUxfRVJSX09LKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoIChsZXZlbCkgeworICAgICAgICBjYXNlIFhNTF9FUlJfTk9ORToKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIjogIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX1dBUk5JTkc6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJ3YXJuaW5nIDogIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VSUk9SOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiZXJyb3IgOiAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfRkFUQUw6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJlcnJvciA6ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChjb2RlID09IFhNTF9FUlJfT0spCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoc3RyICE9IE5VTEwpIHsKKyAgICAgICAgaW50IGxlbjsKKwlsZW4gPSB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKilzdHIpOworCWlmICgobGVuID4gMCkgJiYgKHN0cltsZW4gLSAxXSAhPSAnXG4nKSkKKwkgICAgY2hhbm5lbChkYXRhLCAiJXNcbiIsIHN0cik7CisJZWxzZQorCSAgICBjaGFubmVsKGRhdGEsICIlcyIsIHN0cik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2hhbm5lbChkYXRhLCAiJXNcbiIsICJvdXQgb2YgbWVtb3J5IGVycm9yIik7CisgICAgfQorICAgIGlmIChjb2RlID09IFhNTF9FUlJfT0spCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dEludGVybmFsKGlucHV0LCBjaGFubmVsLCBkYXRhKTsKKyAgICAgICAgaWYgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoY3VyLT5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICBjaGFubmVsKGRhdGEsICIlczolZDogXG4iLCBjdXItPmZpbGVuYW1lLCBjdXItPmxpbmUpOworICAgICAgICAgICAgZWxzZSBpZiAoKGxpbmUgIT0gMCkgJiYgKGRvbWFpbiA9PSBYTUxfRlJPTV9QQVJTRVIpKQorICAgICAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIkVudGl0eTogbGluZSAlZDogXG4iLCBjdXItPmxpbmUpOworICAgICAgICAgICAgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dEludGVybmFsKGN1ciwgY2hhbm5lbCwgZGF0YSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKChkb21haW4gPT0gWE1MX0ZST01fWFBBVEgpICYmIChlcnItPnN0cjEgIT0gTlVMTCkgJiYKKyAgICAgICAgKGVyci0+aW50MSA8IDEwMCkgJiYKKwkoZXJyLT5pbnQxIDwgeG1sU3RybGVuKChjb25zdCB4bWxDaGFyICopZXJyLT5zdHIxKSkpIHsKKwl4bWxDaGFyIGJ1ZlsxNTBdOworCWludCBpOworCisJY2hhbm5lbChkYXRhLCAiJXNcbiIsIGVyci0+c3RyMSk7CisJZm9yIChpPTA7aSA8IGVyci0+aW50MTtpKyspCisJICAgICBidWZbaV0gPSAnICc7CisJYnVmW2krK10gPSAnXic7CisJYnVmW2ldID0gMDsKKwljaGFubmVsKGRhdGEsICIlc1xuIiwgYnVmKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitpbml0aWFsaXplTGlieG1sMih2b2lkKSB7CisgICAgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPSAwOworICAgIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCgwKTsKKworICAgIHhtbE1lbVNldHVwKHhtbE1lbUZyZWUsIHhtbE1lbU1hbGxvYywgeG1sTWVtUmVhbGxvYywgeG1sTWVtb3J5U3RyZHVwKTsKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIodGVzdEV4dGVybmFsRW50aXR5TG9hZGVyKTsKKyAgICB4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKE5VTEwsIHRlc3RTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyKTsKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisgICAgeG1sU2NoZW1hSW5pdFR5cGVzKCk7CisgICAgeG1sUmVsYXhOR0luaXRUeXBlcygpOworI2VuZGlmCit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJRmlsZSBuYW1lIGFuZCBwYXRoIHV0aWxpdGllcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBjb25zdCBjaGFyICpiYXNlRmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICBjb25zdCBjaGFyICpjdXI7CisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBjdXIgPSAmZmlsZW5hbWVbc3RybGVuKGZpbGVuYW1lKV07CisgICAgd2hpbGUgKChjdXIgPiBmaWxlbmFtZSkgJiYgKCpjdXIgIT0gJy8nKSkKKyAgICAgICAgY3VyLS07CisgICAgaWYgKCpjdXIgPT0gJy8nKQorICAgICAgICByZXR1cm4oY3VyICsgMSk7CisgICAgcmV0dXJuKGN1cik7Cit9CisKK3N0YXRpYyBjaGFyICpyZXN1bHRGaWxlbmFtZShjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN1ZmZpeCkgeworICAgIGNvbnN0IGNoYXIgKmJhc2U7CisgICAgY2hhciByZXNbNTAwXTsKKyAgICBjaGFyIHN1ZmZpeGJ1ZmZbNTAwXTsKKworLyoqKioqKioqKioqKioKKyAgICBpZiAoKGZpbGVuYW1lWzBdID09ICd0JykgJiYgKGZpbGVuYW1lWzFdID09ICdlJykgJiYKKyAgICAgICAgKGZpbGVuYW1lWzJdID09ICdzJykgJiYgKGZpbGVuYW1lWzNdID09ICd0JykgJiYKKwkoZmlsZW5hbWVbNF0gPT0gJy8nKSkKKwlmaWxlbmFtZSA9ICZmaWxlbmFtZVs1XTsKKyAqKioqKioqKioqKioqLworCisgICAgYmFzZSA9IGJhc2VGaWxlbmFtZShmaWxlbmFtZSk7CisgICAgaWYgKHN1ZmZpeCA9PSBOVUxMKQorICAgICAgICBzdWZmaXggPSAiLnRtcCI7CisgICAgaWYgKG91dCA9PSBOVUxMKQorICAgICAgICBvdXQgPSAiIjsKKworICAgIHN0cm5jcHkoc3VmZml4YnVmZixzdWZmaXgsNDk5KTsKKyNpZmRlZiBWTVMKKyAgICBpZihzdHJzdHIoYmFzZSwiLiIpICYmIHN1ZmZpeGJ1ZmZbMF09PScuJykKKyAgICAgIHN1ZmZpeGJ1ZmZbMF09J18nOworI2VuZGlmCisKKyAgICBzbnByaW50ZihyZXMsIDQ5OSwgIiVzJXMlcyIsIG91dCwgYmFzZSwgc3VmZml4YnVmZik7CisgICAgcmVzWzQ5OV0gPSAwOworICAgIHJldHVybihzdHJkdXAocmVzKSk7Cit9CisKK3N0YXRpYyBpbnQgY2hlY2tUZXN0RmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIHN0cnVjdCBzdGF0IGJ1ZjsKKworICAgIGlmIChzdGF0KGZpbGVuYW1lLCAmYnVmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuKDApOworCisjaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pCisgICAgaWYgKCEoYnVmLnN0X21vZGUgJiBfU19JRlJFRykpCisgICAgICAgIHJldHVybigwKTsKKyNlbHNlCisgICAgaWYgKCFTX0lTUkVHKGJ1Zi5zdF9tb2RlKSkKKyAgICAgICAgcmV0dXJuKDApOworI2VuZGlmCisKKyAgICByZXR1cm4oMSk7Cit9CisKK3N0YXRpYyBpbnQgY29tcGFyZUZpbGVzKGNvbnN0IGNoYXIgKnIxLCBjb25zdCBjaGFyICpyMikgeworICAgIGludCByZXMxLCByZXMyOworICAgIGludCBmZDEsIGZkMjsKKyAgICBjaGFyIGJ5dGVzMVs0MDk2XTsKKyAgICBjaGFyIGJ5dGVzMls0MDk2XTsKKworICAgIGZkMSA9IG9wZW4ocjEsIFJEX0ZMQUdTKTsKKyAgICBpZiAoZmQxIDwgMCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBmZDIgPSBvcGVuKHIyLCBSRF9GTEFHUyk7CisgICAgaWYgKGZkMiA8IDApIHsKKyAgICAgICAgY2xvc2UoZmQxKTsKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgcmVzMSA9IHJlYWQoZmQxLCBieXRlczEsIDQwOTYpOworICAgICAgICByZXMyID0gcmVhZChmZDIsIGJ5dGVzMiwgNDA5Nik7CisJaWYgKChyZXMxICE9IHJlczIpIHx8IChyZXMxIDwgMCkpIHsKKwkgICAgY2xvc2UoZmQxKTsKKwkgICAgY2xvc2UoZmQyKTsKKwkgICAgcmV0dXJuKDEpOworCX0KKwlpZiAocmVzMSA9PSAwKQorCSAgICBicmVhazsKKwlpZiAobWVtY21wKGJ5dGVzMSwgYnl0ZXMyLCByZXMxKSAhPSAwKSB7CisJICAgIGNsb3NlKGZkMSk7CisJICAgIGNsb3NlKGZkMik7CisJICAgIHJldHVybigxKTsKKwl9CisgICAgfQorICAgIGNsb3NlKGZkMSk7CisgICAgY2xvc2UoZmQyKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQgY29tcGFyZUZpbGVNZW0oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm1lbSwgaW50IHNpemUpIHsKKyAgICBpbnQgcmVzOworICAgIGludCBmZDsKKyAgICBjaGFyIGJ5dGVzWzQwOTZdOworICAgIGludCBpZHggPSAwOworICAgIHN0cnVjdCBzdGF0IGluZm87CisKKyAgICBpZiAoc3RhdChmaWxlbmFtZSwgJmluZm8pIDwgMCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChpbmZvLnN0X3NpemUgIT0gc2l6ZSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBmZCA9IG9wZW4oZmlsZW5hbWUsIFJEX0ZMQUdTKTsKKyAgICBpZiAoZmQgPCAwKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHdoaWxlIChpZHggPCBzaXplKSB7CisgICAgICAgIHJlcyA9IHJlYWQoZmQsIGJ5dGVzLCA0MDk2KTsKKwlpZiAocmVzIDw9IDApCisJICAgIGJyZWFrOworCWlmIChyZXMgKyBpZHggPiBzaXplKQorCSAgICBicmVhazsKKwlpZiAobWVtY21wKGJ5dGVzLCAmbWVtW2lkeF0sIHJlcykgIT0gMCkgeworCSAgICBpbnQgaXg7CisJICAgIGZvciAoaXg9MDsgaXg8cmVzOyBpeCsrKQorCQlpZiAoYnl0ZXNbaXhdICE9IG1lbVtpZHgraXhdKQorCQkJYnJlYWs7CisJICAgIGZwcmludGYoc3RkZXJyLCJDb21wYXJlIGVycm9yIGF0IHBvc2l0aW9uICVkXG4iLCBpZHgraXgpOworCSAgICBjbG9zZShmZCk7CisJICAgIHJldHVybigxKTsKKwl9CisJaWR4ICs9IHJlczsKKyAgICB9CisgICAgY2xvc2UoZmQpOworICAgIHJldHVybihpZHggIT0gc2l6ZSk7Cit9CisKK3N0YXRpYyBpbnQgbG9hZE1lbShjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqKm1lbSwgaW50ICpzaXplKSB7CisgICAgaW50IGZkLCByZXM7CisgICAgc3RydWN0IHN0YXQgaW5mbzsKKyAgICBjaGFyICpiYXNlOworICAgIGludCBzaXogPSAwOworICAgIGlmIChzdGF0KGZpbGVuYW1lLCAmaW5mbykgPCAwKQorCXJldHVybigtMSk7CisgICAgYmFzZSA9IG1hbGxvYyhpbmZvLnN0X3NpemUgKyAxKTsKKyAgICBpZiAoYmFzZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKChmZCA9IG9wZW4oZmlsZW5hbWUsIFJEX0ZMQUdTKSkgPCAwKSB7CisgICAgICAgIGZyZWUoYmFzZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgd2hpbGUgKChyZXMgPSByZWFkKGZkLCAmYmFzZVtzaXpdLCBpbmZvLnN0X3NpemUgLSBzaXopKSA+IDApIHsKKyAgICAgICAgc2l6ICs9IHJlczsKKyAgICB9CisgICAgY2xvc2UoZmQpOworI2lmICFkZWZpbmVkKF9XSU4zMikKKyAgICBpZiAoc2l6ICE9IGluZm8uc3Rfc2l6ZSkgeworICAgICAgICBmcmVlKGJhc2UpOworCXJldHVybigtMSk7CisgICAgfQorI2VuZGlmCisgICAgYmFzZVtzaXpdID0gMDsKKyAgICAqbWVtID0gYmFzZTsKKyAgICAqc2l6ZSA9IHNpejsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQgdW5sb2FkTWVtKGNvbnN0IGNoYXIgKm1lbSkgeworICAgIGZyZWUoKGNoYXIgKiltZW0pOworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJVGVzdHMgaW1wbGVtZW50YXRpb25zCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVBhcnNlIHRvIFNBWCBiYXNlZCB0ZXN0cwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBGSUxFICpTQVhkZWJ1ZyA9IE5VTEw7CisKKy8qCisgKiBlbXB0eSBTQVggYmxvY2sKKyAqLworc3RhdGljIHhtbFNBWEhhbmRsZXIgZW1wdHlTQVhIYW5kbGVyU3RydWN0ID0geworICAgIE5VTEwsIC8qIGludGVybmFsU3Vic2V0ICovCisgICAgTlVMTCwgLyogaXNTdGFuZGFsb25lICovCisgICAgTlVMTCwgLyogaGFzSW50ZXJuYWxTdWJzZXQgKi8KKyAgICBOVUxMLCAvKiBoYXNFeHRlcm5hbFN1YnNldCAqLworICAgIE5VTEwsIC8qIHJlc29sdmVFbnRpdHkgKi8KKyAgICBOVUxMLCAvKiBnZXRFbnRpdHkgKi8KKyAgICBOVUxMLCAvKiBlbnRpdHlEZWNsICovCisgICAgTlVMTCwgLyogbm90YXRpb25EZWNsICovCisgICAgTlVMTCwgLyogYXR0cmlidXRlRGVjbCAqLworICAgIE5VTEwsIC8qIGVsZW1lbnREZWNsICovCisgICAgTlVMTCwgLyogdW5wYXJzZWRFbnRpdHlEZWNsICovCisgICAgTlVMTCwgLyogc2V0RG9jdW1lbnRMb2NhdG9yICovCisgICAgTlVMTCwgLyogc3RhcnREb2N1bWVudCAqLworICAgIE5VTEwsIC8qIGVuZERvY3VtZW50ICovCisgICAgTlVMTCwgLyogc3RhcnRFbGVtZW50ICovCisgICAgTlVMTCwgLyogZW5kRWxlbWVudCAqLworICAgIE5VTEwsIC8qIHJlZmVyZW5jZSAqLworICAgIE5VTEwsIC8qIGNoYXJhY3RlcnMgKi8KKyAgICBOVUxMLCAvKiBpZ25vcmFibGVXaGl0ZXNwYWNlICovCisgICAgTlVMTCwgLyogcHJvY2Vzc2luZ0luc3RydWN0aW9uICovCisgICAgTlVMTCwgLyogY29tbWVudCAqLworICAgIE5VTEwsIC8qIHhtbFBhcnNlcldhcm5pbmcgKi8KKyAgICBOVUxMLCAvKiB4bWxQYXJzZXJFcnJvciAqLworICAgIE5VTEwsIC8qIHhtbFBhcnNlckVycm9yICovCisgICAgTlVMTCwgLyogZ2V0UGFyYW1ldGVyRW50aXR5ICovCisgICAgTlVMTCwgLyogY2RhdGFCbG9jazsgKi8KKyAgICBOVUxMLCAvKiBleHRlcm5hbFN1YnNldDsgKi8KKyAgICAxLAorICAgIE5VTEwsCisgICAgTlVMTCwgLyogc3RhcnRFbGVtZW50TnMgKi8KKyAgICBOVUxMLCAvKiBlbmRFbGVtZW50TnMgKi8KKyAgICBOVUxMICAvKiB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jICovCit9OworCitzdGF0aWMgeG1sU0FYSGFuZGxlclB0ciBlbXB0eVNBWEhhbmRsZXIgPSAmZW1wdHlTQVhIYW5kbGVyU3RydWN0Oworc3RhdGljIGludCBjYWxsYmFja3MgPSAwOworc3RhdGljIGludCBxdWlldCA9IDA7CisKKy8qKgorICogaXNTdGFuZGFsb25lRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIElzIHRoaXMgZG9jdW1lbnQgdGFnZ2VkIHN0YW5kYWxvbmUgPworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlCisgKi8KK3N0YXRpYyBpbnQKK2lzU3RhbmRhbG9uZURlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm4oMCk7CisgICAgZnByaW50ZihTQVhkZWJ1ZywgIlNBWC5pc1N0YW5kYWxvbmUoKVxuIik7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGhhc0ludGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworc3RhdGljIGludAoraGFzSW50ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuKDApOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguaGFzSW50ZXJuYWxTdWJzZXQoKVxuIik7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGhhc0V4dGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworc3RhdGljIGludAoraGFzRXh0ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuKDApOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguaGFzRXh0ZXJuYWxTdWJzZXQoKVxuIik7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGludGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0CisgKi8KK3N0YXRpYyB2b2lkCitpbnRlcm5hbFN1YnNldERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguaW50ZXJuYWxTdWJzZXQoJXMsIiwgbmFtZSk7CisgICAgaWYgKEV4dGVybmFsSUQgPT0gTlVMTCkKKwlmcHJpbnRmKFNBWGRlYnVnLCAiICwiKTsKKyAgICBlbHNlCisJZnByaW50ZihTQVhkZWJ1ZywgIiAlcywiLCBFeHRlcm5hbElEKTsKKyAgICBpZiAoU3lzdGVtSUQgPT0gTlVMTCkKKwlmcHJpbnRmKFNBWGRlYnVnLCAiIClcbiIpOworICAgIGVsc2UKKwlmcHJpbnRmKFNBWGRlYnVnLCAiICVzKVxuIiwgU3lzdGVtSUQpOworfQorCisvKioKKyAqIGV4dGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0CisgKi8KK3N0YXRpYyB2b2lkCitleHRlcm5hbFN1YnNldERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZXh0ZXJuYWxTdWJzZXQoJXMsIiwgbmFtZSk7CisgICAgaWYgKEV4dGVybmFsSUQgPT0gTlVMTCkKKwlmcHJpbnRmKFNBWGRlYnVnLCAiICwiKTsKKyAgICBlbHNlCisJZnByaW50ZihTQVhkZWJ1ZywgIiAlcywiLCBFeHRlcm5hbElEKTsKKyAgICBpZiAoU3lzdGVtSUQgPT0gTlVMTCkKKwlmcHJpbnRmKFNBWGRlYnVnLCAiIClcbiIpOworICAgIGVsc2UKKwlmcHJpbnRmKFNBWGRlYnVnLCAiICVzKVxuIiwgU3lzdGVtSUQpOworfQorCisvKioKKyAqIHJlc29sdmVFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqCisgKiBTcGVjaWFsIGVudGl0eSByZXNvbHZlciwgYmV0dGVyIGxlZnQgdG8gdGhlIHBhcnNlciwgaXQgaGFzCisgKiBtb3JlIGNvbnRleHQgdGhhbiB0aGUgYXBwbGljYXRpb24gbGF5ZXIuCisgKiBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgaXMgdG8gTk9UIHJlc29sdmUgdGhlIGVudGl0aWVzLCBpbiB0aGF0IGNhc2UKKyAqIHRoZSBFTlRJVFlfUkVGIG5vZGVzIGFyZSBidWlsdCBpbiB0aGUgc3RydWN0dXJlIChhbmQgdGhlIHBhcmFtZXRlcgorICogdmFsdWVzKS4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxQYXJzZXJJbnB1dFB0ciBpZiBpbmxpbmVkIG9yIE5VTEwgZm9yIERPTSBiZWhhdmlvdXIuCisgKi8KK3N0YXRpYyB4bWxQYXJzZXJJbnB1dFB0cgorcmVzb2x2ZUVudGl0eURlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybihOVUxMKTsKKyAgICAvKiB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OyAqLworCisKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLnJlc29sdmVFbnRpdHkoIik7CisgICAgaWYgKHB1YmxpY0lkICE9IE5VTEwpCisJZnByaW50ZihTQVhkZWJ1ZywgIiVzIiwgKGNoYXIgKilwdWJsaWNJZCk7CisgICAgZWxzZQorCWZwcmludGYoU0FYZGVidWcsICIgIik7CisgICAgaWYgKHN5c3RlbUlkICE9IE5VTEwpCisJZnByaW50ZihTQVhkZWJ1ZywgIiwgJXMpXG4iLCAoY2hhciAqKXN5c3RlbUlkKTsKKyAgICBlbHNlCisJZnByaW50ZihTQVhkZWJ1ZywgIiwgKVxuIik7CisvKioqKioqKioqCisgICAgaWYgKHN5c3RlbUlkICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuKHhtbE5ld0lucHV0RnJvbUZpbGUoY3R4dCwgKGNoYXIgKikgc3lzdGVtSWQpKTsKKyAgICB9CisgKioqKioqKioqLworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiBnZXRFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogVGhlIGVudGl0eSBuYW1lCisgKgorICogR2V0IGFuIGVudGl0eSBieSBuYW1lCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIgaWYgaW5saW5lZCBvciBOVUxMIGZvciBET00gYmVoYXZpb3VyLgorICovCitzdGF0aWMgeG1sRW50aXR5UHRyCitnZXRFbnRpdHlEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuKE5VTEwpOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZ2V0RW50aXR5KCVzKVxuIiwgbmFtZSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIGdldFBhcmFtZXRlckVudGl0eURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiBUaGUgZW50aXR5IG5hbWUKKyAqCisgKiBHZXQgYSBwYXJhbWV0ZXIgZW50aXR5IGJ5IG5hbWUKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxQYXJzZXJJbnB1dFB0cgorICovCitzdGF0aWMgeG1sRW50aXR5UHRyCitnZXRQYXJhbWV0ZXJFbnRpdHlEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuKE5VTEwpOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZ2V0UGFyYW1ldGVyRW50aXR5KCVzKVxuIiwgbmFtZSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCisKKy8qKgorICogZW50aXR5RGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGVudGl0eSBuYW1lCisgKiBAdHlwZTogIHRoZSBlbnRpdHkgdHlwZQorICogQHB1YmxpY0lkOiBUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBzeXN0ZW1JZDogVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5CisgKiBAY29udGVudDogdGhlIGVudGl0eSB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS4KKyAqCisgKiBBbiBlbnRpdHkgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQKKyAqLworc3RhdGljIHZvaWQKK2VudGl0eURlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IHR5cGUsCisgICAgICAgICAgY29uc3QgeG1sQ2hhciAqcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkLCB4bWxDaGFyICpjb250ZW50KQoreworY29uc3QgeG1sQ2hhciAqbnVsbHN0ciA9IEJBRF9DQVNUICIobnVsbCkiOworICAgIC8qIG5vdCBhbGwgbGlicmFyaWVzIGhhbmRsZSBwcmludGluZyBudWxsIHBvaW50ZXJzIG5pY2VseSAqLworICAgIGlmIChwdWJsaWNJZCA9PSBOVUxMKQorICAgICAgICBwdWJsaWNJZCA9IG51bGxzdHI7CisgICAgaWYgKHN5c3RlbUlkID09IE5VTEwpCisgICAgICAgIHN5c3RlbUlkID0gbnVsbHN0cjsKKyAgICBpZiAoY29udGVudCA9PSBOVUxMKQorICAgICAgICBjb250ZW50ID0gKHhtbENoYXIgKiludWxsc3RyOworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgZnByaW50ZihTQVhkZWJ1ZywgIlNBWC5lbnRpdHlEZWNsKCVzLCAlZCwgJXMsICVzLCAlcylcbiIsCisgICAgICAgICAgICBuYW1lLCB0eXBlLCBwdWJsaWNJZCwgc3lzdGVtSWQsIGNvbnRlbnQpOworfQorCisvKioKKyAqIGF0dHJpYnV0ZURlY2xEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBhdHRyaWJ1dGUgbmFtZQorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUKKyAqCisgKiBBbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQKKyAqLworc3RhdGljIHZvaWQKK2F0dHJpYnV0ZURlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqIGVsZW0sCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGludCB0eXBlLCBpbnQgZGVmLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBkZWZhdWx0VmFsdWUsIHhtbEVudW1lcmF0aW9uUHRyIHRyZWUpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorICAgICAgICByZXR1cm47CisgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PSBOVUxMKQorICAgICAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLmF0dHJpYnV0ZURlY2woJXMsICVzLCAlZCwgJWQsIE5VTEwsIC4uLilcbiIsCisgICAgICAgICAgICAgICAgZWxlbSwgbmFtZSwgdHlwZSwgZGVmKTsKKyAgICBlbHNlCisgICAgICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguYXR0cmlidXRlRGVjbCglcywgJXMsICVkLCAlZCwgJXMsIC4uLilcbiIsCisgICAgICAgICAgICAgICAgZWxlbSwgbmFtZSwgdHlwZSwgZGVmLCBkZWZhdWx0VmFsdWUpOworICAgIHhtbEZyZWVFbnVtZXJhdGlvbih0cmVlKTsKK30KKworLyoqCisgKiBlbGVtZW50RGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGVsZW1lbnQgbmFtZQorICogQHR5cGU6ICB0aGUgZWxlbWVudCB0eXBlCisgKiBAY29udGVudDogdGhlIGVsZW1lbnQgdmFsdWUgKHdpdGhvdXQgcHJvY2Vzc2luZykuCisgKgorICogQW4gZWxlbWVudCBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZAorICovCitzdGF0aWMgdm9pZAorZWxlbWVudERlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IHR5cGUsCisJICAgIHhtbEVsZW1lbnRDb250ZW50UHRyIGNvbnRlbnQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZWxlbWVudERlY2woJXMsICVkLCAuLi4pXG4iLAorICAgICAgICAgICAgbmFtZSwgdHlwZSk7Cit9CisKKy8qKgorICogbm90YXRpb25EZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbgorICogQHB1YmxpY0lkOiBUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBzeXN0ZW1JZDogVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5CisgKgorICogV2hhdCB0byBkbyB3aGVuIGEgbm90YXRpb24gZGVjbGFyYXRpb24gaGFzIGJlZW4gcGFyc2VkLgorICovCitzdGF0aWMgdm9pZAorbm90YXRpb25EZWNsRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLm5vdGF0aW9uRGVjbCglcywgJXMsICVzKVxuIiwKKyAgICAgICAgICAgIChjaGFyICopIG5hbWUsIChjaGFyICopIHB1YmxpY0lkLCAoY2hhciAqKSBzeXN0ZW1JZCk7Cit9CisKKy8qKgorICogdW5wYXJzZWRFbnRpdHlEZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBlbnRpdHkKKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICogQG5vdGF0aW9uTmFtZTogdGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uCisgKgorICogV2hhdCB0byBkbyB3aGVuIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBpcyBwYXJzZWQKKyAqLworc3RhdGljIHZvaWQKK3VucGFyc2VkRW50aXR5RGVjbERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQsCisJCSAgIGNvbnN0IHhtbENoYXIgKm5vdGF0aW9uTmFtZSkKK3sKK2NvbnN0IHhtbENoYXIgKm51bGxzdHIgPSBCQURfQ0FTVCAiKG51bGwpIjsKKworICAgIGlmIChwdWJsaWNJZCA9PSBOVUxMKQorICAgICAgICBwdWJsaWNJZCA9IG51bGxzdHI7CisgICAgaWYgKHN5c3RlbUlkID09IE5VTEwpCisgICAgICAgIHN5c3RlbUlkID0gbnVsbHN0cjsKKyAgICBpZiAobm90YXRpb25OYW1lID09IE5VTEwpCisgICAgICAgIG5vdGF0aW9uTmFtZSA9IG51bGxzdHI7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLnVucGFyc2VkRW50aXR5RGVjbCglcywgJXMsICVzLCAlcylcbiIsCisgICAgICAgICAgICAoY2hhciAqKSBuYW1lLCAoY2hhciAqKSBwdWJsaWNJZCwgKGNoYXIgKikgc3lzdGVtSWQsCisJICAgIChjaGFyICopIG5vdGF0aW9uTmFtZSk7Cit9CisKKy8qKgorICogc2V0RG9jdW1lbnRMb2NhdG9yRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGxvYzogQSBTQVggTG9jYXRvcgorICoKKyAqIFJlY2VpdmUgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXQgc3RhcnR1cCwgYWN0dWFsbHkgeG1sRGVmYXVsdFNBWExvY2F0b3IKKyAqIEV2ZXJ5dGhpbmcgaXMgYXZhaWxhYmxlIG9uIHRoZSBjb250ZXh0LCBzbyB0aGlzIGlzIHVzZWxlc3MgaW4gb3VyIGNhc2UuCisgKi8KK3N0YXRpYyB2b2lkCitzZXREb2N1bWVudExvY2F0b3JEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgeG1sU0FYTG9jYXRvclB0ciBsb2MgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguc2V0RG9jdW1lbnRMb2NhdG9yKClcbiIpOworfQorCisvKioKKyAqIHN0YXJ0RG9jdW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogY2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IHN0YXJ0IGJlaW5nIHByb2Nlc3NlZC4KKyAqLworc3RhdGljIHZvaWQKK3N0YXJ0RG9jdW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguc3RhcnREb2N1bWVudCgpXG4iKTsKK30KKworLyoqCisgKiBlbmREb2N1bWVudERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBjYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkLgorICovCitzdGF0aWMgdm9pZAorZW5kRG9jdW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZW5kRG9jdW1lbnQoKVxuIik7Cit9CisKKy8qKgorICogc3RhcnRFbGVtZW50RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICBUaGUgZWxlbWVudCBuYW1lCisgKgorICogY2FsbGVkIHdoZW4gYW4gb3BlbmluZyB0YWcgaGFzIGJlZW4gcHJvY2Vzc2VkLgorICovCitzdGF0aWMgdm9pZAorc3RhcnRFbGVtZW50RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKiphdHRzKQoreworICAgIGludCBpOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLnN0YXJ0RWxlbWVudCglcyIsIChjaGFyICopIG5hbWUpOworICAgIGlmIChhdHRzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDsoYXR0c1tpXSAhPSBOVUxMKTtpKyspIHsKKwkgICAgZnByaW50ZihTQVhkZWJ1ZywgIiwgJXM9JyIsIGF0dHNbaSsrXSk7CisJICAgIGlmIChhdHRzW2ldICE9IE5VTEwpCisJICAgICAgICBmcHJpbnRmKFNBWGRlYnVnLCAiJXMnIiwgYXR0c1tpXSk7CisJfQorICAgIH0KKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiKVxuIik7Cit9CisKKy8qKgorICogZW5kRWxlbWVudERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLworc3RhdGljIHZvaWQKK2VuZEVsZW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZW5kRWxlbWVudCglcylcbiIsIChjaGFyICopIG5hbWUpOworfQorCisvKioKKyAqIGNoYXJhY3RlcnNEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAY2g6ICBhIHhtbENoYXIgc3RyaW5nCisgKiBAbGVuOiB0aGUgbnVtYmVyIG9mIHhtbENoYXIKKyAqCisgKiByZWNlaXZpbmcgc29tZSBjaGFycyBmcm9tIHRoZSBwYXJzZXIuCisgKiBRdWVzdGlvbjogaG93IG11Y2ggYXQgYSB0aW1lID8/PworICovCitzdGF0aWMgdm9pZAorY2hhcmFjdGVyc0RlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpjaCwgaW50IGxlbikKK3sKKyAgICBjaGFyIG91dHB1dFs0MF07CisgICAgaW50IGk7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZvciAoaSA9IDA7KGk8bGVuKSAmJiAoaSA8IDMwKTtpKyspCisJb3V0cHV0W2ldID0gY2hbaV07CisgICAgb3V0cHV0W2ldID0gMDsKKworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguY2hhcmFjdGVycyglcywgJWQpXG4iLCBvdXRwdXQsIGxlbik7Cit9CisKKy8qKgorICogcmVmZXJlbmNlRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICBUaGUgZW50aXR5IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiBhbiBlbnRpdHkgcmVmZXJlbmNlIGlzIGRldGVjdGVkLgorICovCitzdGF0aWMgdm9pZAorcmVmZXJlbmNlRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLnJlZmVyZW5jZSglcylcbiIsIG5hbWUpOworfQorCisvKioKKyAqIGlnbm9yYWJsZVdoaXRlc3BhY2VEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAY2g6ICBhIHhtbENoYXIgc3RyaW5nCisgKiBAc3RhcnQ6IHRoZSBmaXJzdCBjaGFyIGluIHRoZSBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIHJlY2VpdmluZyBzb21lIGlnbm9yYWJsZSB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBwYXJzZXIuCisgKiBRdWVzdGlvbjogaG93IG11Y2ggYXQgYSB0aW1lID8/PworICovCitzdGF0aWMgdm9pZAoraWdub3JhYmxlV2hpdGVzcGFjZURlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpjaCwgaW50IGxlbikKK3sKKyAgICBjaGFyIG91dHB1dFs0MF07CisgICAgaW50IGk7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZvciAoaSA9IDA7KGk8bGVuKSAmJiAoaSA8IDMwKTtpKyspCisJb3V0cHV0W2ldID0gY2hbaV07CisgICAgb3V0cHV0W2ldID0gMDsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoJXMsICVkKVxuIiwgb3V0cHV0LCBsZW4pOworfQorCisvKioKKyAqIHByb2Nlc3NpbmdJbnN0cnVjdGlvbkRlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEB0YXJnZXQ6ICB0aGUgdGFyZ2V0IG5hbWUKKyAqIEBkYXRhOiB0aGUgUEkgZGF0YSdzCisgKiBAbGVuOiB0aGUgbnVtYmVyIG9mIHhtbENoYXIKKyAqCisgKiBBIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaGFzIGJlZW4gcGFyc2VkLgorICovCitzdGF0aWMgdm9pZAorcHJvY2Vzc2luZ0luc3RydWN0aW9uRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpkYXRhKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgaWYgKGRhdGEgIT0gTlVMTCkKKwlmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLnByb2Nlc3NpbmdJbnN0cnVjdGlvbiglcywgJXMpXG4iLAorCQkoY2hhciAqKSB0YXJnZXQsIChjaGFyICopIGRhdGEpOworICAgIGVsc2UKKwlmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLnByb2Nlc3NpbmdJbnN0cnVjdGlvbiglcywgTlVMTClcbiIsCisJCShjaGFyICopIHRhcmdldCk7Cit9CisKKy8qKgorICogY2RhdGFCbG9ja0RlYnVnOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQHZhbHVlOiAgVGhlIHBjZGF0YSBjb250ZW50CisgKiBAbGVuOiAgdGhlIGJsb2NrIGxlbmd0aAorICoKKyAqIGNhbGxlZCB3aGVuIGEgcGNkYXRhIGJsb2NrIGhhcyBiZWVuIHBhcnNlZAorICovCitzdGF0aWMgdm9pZAorY2RhdGFCbG9ja0RlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICp2YWx1ZSwgaW50IGxlbikKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVgucGNkYXRhKCUuMjBzLCAlZClcbiIsCisJICAgIChjaGFyICopIHZhbHVlLCBsZW4pOworfQorCisvKioKKyAqIGNvbW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAdmFsdWU6ICB0aGUgY29tbWVudCBjb250ZW50CisgKgorICogQSBjb21tZW50IGhhcyBiZWVuIHBhcnNlZC4KKyAqLworc3RhdGljIHZvaWQKK2NvbW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqdmFsdWUpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLmNvbW1lbnQoJXMpXG4iLCB2YWx1ZSk7Cit9CisKKy8qKgorICogd2FybmluZ0RlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3dhcm5pbmdEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICB2YV9zdGFydChhcmdzLCBtc2cpOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVgud2FybmluZzogIik7CisgICAgdmZwcmludGYoU0FYZGVidWcsIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworfQorCisvKioKKyAqIGVycm9yRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG1zZzogIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKgorICogRGlzcGxheSBhbmQgZm9ybWF0IGEgZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK2Vycm9yRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLmVycm9yOiAiKTsKKyAgICB2ZnByaW50ZihTQVhkZWJ1ZywgbXNnLCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7Cit9CisKKy8qKgorICogZmF0YWxFcnJvckRlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIGZhdGFsRXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK2ZhdGFsRXJyb3JEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICB2YV9zdGFydChhcmdzLCBtc2cpOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZmF0YWxFcnJvcjogIik7CisgICAgdmZwcmludGYoU0FYZGVidWcsIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworfQorCitzdGF0aWMgeG1sU0FYSGFuZGxlciBkZWJ1Z1NBWEhhbmRsZXJTdHJ1Y3QgPSB7CisgICAgaW50ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICBpc1N0YW5kYWxvbmVEZWJ1ZywKKyAgICBoYXNJbnRlcm5hbFN1YnNldERlYnVnLAorICAgIGhhc0V4dGVybmFsU3Vic2V0RGVidWcsCisgICAgcmVzb2x2ZUVudGl0eURlYnVnLAorICAgIGdldEVudGl0eURlYnVnLAorICAgIGVudGl0eURlY2xEZWJ1ZywKKyAgICBub3RhdGlvbkRlY2xEZWJ1ZywKKyAgICBhdHRyaWJ1dGVEZWNsRGVidWcsCisgICAgZWxlbWVudERlY2xEZWJ1ZywKKyAgICB1bnBhcnNlZEVudGl0eURlY2xEZWJ1ZywKKyAgICBzZXREb2N1bWVudExvY2F0b3JEZWJ1ZywKKyAgICBzdGFydERvY3VtZW50RGVidWcsCisgICAgZW5kRG9jdW1lbnREZWJ1ZywKKyAgICBzdGFydEVsZW1lbnREZWJ1ZywKKyAgICBlbmRFbGVtZW50RGVidWcsCisgICAgcmVmZXJlbmNlRGVidWcsCisgICAgY2hhcmFjdGVyc0RlYnVnLAorICAgIGlnbm9yYWJsZVdoaXRlc3BhY2VEZWJ1ZywKKyAgICBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25EZWJ1ZywKKyAgICBjb21tZW50RGVidWcsCisgICAgd2FybmluZ0RlYnVnLAorICAgIGVycm9yRGVidWcsCisgICAgZmF0YWxFcnJvckRlYnVnLAorICAgIGdldFBhcmFtZXRlckVudGl0eURlYnVnLAorICAgIGNkYXRhQmxvY2tEZWJ1ZywKKyAgICBleHRlcm5hbFN1YnNldERlYnVnLAorICAgIDEsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTAorfTsKKworc3RhdGljIHhtbFNBWEhhbmRsZXJQdHIgZGVidWdTQVhIYW5kbGVyID0gJmRlYnVnU0FYSGFuZGxlclN0cnVjdDsKKworLyoKKyAqIFNBWDIgc3BlY2lmaWMgY2FsbGJhY2tzCisgKi8KKy8qKgorICogc3RhcnRFbGVtZW50TnNEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzdGFydEVsZW1lbnROc0RlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpsb2NhbG5hbWUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqVVJJLAorCQkgICAgaW50IG5iX25hbWVzcGFjZXMsCisJCSAgICBjb25zdCB4bWxDaGFyICoqbmFtZXNwYWNlcywKKwkJICAgIGludCBuYl9hdHRyaWJ1dGVzLAorCQkgICAgaW50IG5iX2RlZmF1bHRlZCwKKwkJICAgIGNvbnN0IHhtbENoYXIgKiphdHRyaWJ1dGVzKQoreworICAgIGludCBpOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLnN0YXJ0RWxlbWVudE5zKCVzIiwgKGNoYXIgKikgbG9jYWxuYW1lKTsKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisJZnByaW50ZihTQVhkZWJ1ZywgIiwgTlVMTCIpOworICAgIGVsc2UKKwlmcHJpbnRmKFNBWGRlYnVnLCAiLCAlcyIsIChjaGFyICopIHByZWZpeCk7CisgICAgaWYgKFVSSSA9PSBOVUxMKQorCWZwcmludGYoU0FYZGVidWcsICIsIE5VTEwiKTsKKyAgICBlbHNlCisJZnByaW50ZihTQVhkZWJ1ZywgIiwgJyVzJyIsIChjaGFyICopIFVSSSk7CisgICAgZnByaW50ZihTQVhkZWJ1ZywgIiwgJWQiLCBuYl9uYW1lc3BhY2VzKTsKKworICAgIGlmIChuYW1lc3BhY2VzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDtpIDwgbmJfbmFtZXNwYWNlcyAqIDI7aSsrKSB7CisJICAgIGZwcmludGYoU0FYZGVidWcsICIsIHhtbG5zIik7CisJICAgIGlmIChuYW1lc3BhY2VzW2ldICE9IE5VTEwpCisJICAgICAgICBmcHJpbnRmKFNBWGRlYnVnLCAiOiVzIiwgbmFtZXNwYWNlc1tpXSk7CisJICAgIGkrKzsKKwkgICAgZnByaW50ZihTQVhkZWJ1ZywgIj0nJXMnIiwgbmFtZXNwYWNlc1tpXSk7CisJfQorICAgIH0KKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiLCAlZCwgJWQiLCBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0ZWQpOworICAgIGlmIChhdHRyaWJ1dGVzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDtpIDwgbmJfYXR0cmlidXRlcyAqIDU7aSArPSA1KSB7CisJICAgIGlmIChhdHRyaWJ1dGVzW2kgKyAxXSAhPSBOVUxMKQorCQlmcHJpbnRmKFNBWGRlYnVnLCAiLCAlczolcz0nIiwgYXR0cmlidXRlc1tpICsgMV0sIGF0dHJpYnV0ZXNbaV0pOworCSAgICBlbHNlCisJCWZwcmludGYoU0FYZGVidWcsICIsICVzPSciLCBhdHRyaWJ1dGVzW2ldKTsKKwkgICAgZnByaW50ZihTQVhkZWJ1ZywgIiUuNHMuLi4nLCAlZCIsIGF0dHJpYnV0ZXNbaSArIDNdLAorCQkgICAgKGludCkoYXR0cmlidXRlc1tpICsgNF0gLSBhdHRyaWJ1dGVzW2kgKyAzXSkpOworCX0KKyAgICB9CisgICAgZnByaW50ZihTQVhkZWJ1ZywgIilcbiIpOworfQorCisvKioKKyAqIGVuZEVsZW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiB0aGUgZW5kIG9mIGFuIGVsZW1lbnQgaGFzIGJlZW4gZGV0ZWN0ZWQuCisgKi8KK3N0YXRpYyB2b2lkCitlbmRFbGVtZW50TnNEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmxvY2FsbmFtZSwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKlVSSSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoU0FYZGVidWcsICJTQVguZW5kRWxlbWVudE5zKCVzIiwgKGNoYXIgKikgbG9jYWxuYW1lKTsKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisJZnByaW50ZihTQVhkZWJ1ZywgIiwgTlVMTCIpOworICAgIGVsc2UKKwlmcHJpbnRmKFNBWGRlYnVnLCAiLCAlcyIsIChjaGFyICopIHByZWZpeCk7CisgICAgaWYgKFVSSSA9PSBOVUxMKQorCWZwcmludGYoU0FYZGVidWcsICIsIE5VTEwpXG4iKTsKKyAgICBlbHNlCisJZnByaW50ZihTQVhkZWJ1ZywgIiwgJyVzJylcbiIsIChjaGFyICopIFVSSSk7Cit9CisKK3N0YXRpYyB4bWxTQVhIYW5kbGVyIGRlYnVnU0FYMkhhbmRsZXJTdHJ1Y3QgPSB7CisgICAgaW50ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICBpc1N0YW5kYWxvbmVEZWJ1ZywKKyAgICBoYXNJbnRlcm5hbFN1YnNldERlYnVnLAorICAgIGhhc0V4dGVybmFsU3Vic2V0RGVidWcsCisgICAgcmVzb2x2ZUVudGl0eURlYnVnLAorICAgIGdldEVudGl0eURlYnVnLAorICAgIGVudGl0eURlY2xEZWJ1ZywKKyAgICBub3RhdGlvbkRlY2xEZWJ1ZywKKyAgICBhdHRyaWJ1dGVEZWNsRGVidWcsCisgICAgZWxlbWVudERlY2xEZWJ1ZywKKyAgICB1bnBhcnNlZEVudGl0eURlY2xEZWJ1ZywKKyAgICBzZXREb2N1bWVudExvY2F0b3JEZWJ1ZywKKyAgICBzdGFydERvY3VtZW50RGVidWcsCisgICAgZW5kRG9jdW1lbnREZWJ1ZywKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgcmVmZXJlbmNlRGVidWcsCisgICAgY2hhcmFjdGVyc0RlYnVnLAorICAgIGlnbm9yYWJsZVdoaXRlc3BhY2VEZWJ1ZywKKyAgICBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25EZWJ1ZywKKyAgICBjb21tZW50RGVidWcsCisgICAgd2FybmluZ0RlYnVnLAorICAgIGVycm9yRGVidWcsCisgICAgZmF0YWxFcnJvckRlYnVnLAorICAgIGdldFBhcmFtZXRlckVudGl0eURlYnVnLAorICAgIGNkYXRhQmxvY2tEZWJ1ZywKKyAgICBleHRlcm5hbFN1YnNldERlYnVnLAorICAgIFhNTF9TQVgyX01BR0lDLAorICAgIE5VTEwsCisgICAgc3RhcnRFbGVtZW50TnNEZWJ1ZywKKyAgICBlbmRFbGVtZW50TnNEZWJ1ZywKKyAgICBOVUxMCit9OworCitzdGF0aWMgeG1sU0FYSGFuZGxlclB0ciBkZWJ1Z1NBWDJIYW5kbGVyID0gJmRlYnVnU0FYMkhhbmRsZXJTdHJ1Y3Q7CisKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisvKioKKyAqIGh0bWxzdGFydEVsZW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitodG1sc3RhcnRFbGVtZW50RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKiphdHRzKQoreworICAgIGludCBpOworCisgICAgZnByaW50ZihTQVhkZWJ1ZywgIlNBWC5zdGFydEVsZW1lbnQoJXMiLCAoY2hhciAqKSBuYW1lKTsKKyAgICBpZiAoYXR0cyAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaSA9IDA7KGF0dHNbaV0gIT0gTlVMTCk7aSsrKSB7CisJICAgIGZwcmludGYoU0FYZGVidWcsICIsICVzIiwgYXR0c1tpKytdKTsKKwkgICAgaWYgKGF0dHNbaV0gIT0gTlVMTCkgeworCQl1bnNpZ25lZCBjaGFyIG91dHB1dFs0MF07CisJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmF0dCA9IGF0dHNbaV07CisJCWludCBvdXRsZW4sIGF0dGxlbjsKKwkgICAgICAgIGZwcmludGYoU0FYZGVidWcsICI9JyIpOworCQl3aGlsZSAoKGF0dGxlbiA9IHN0cmxlbigoY2hhciopYXR0KSkgPiAwKSB7CisJCSAgICBvdXRsZW4gPSBzaXplb2Ygb3V0cHV0IC0gMTsKKwkJICAgIGh0bWxFbmNvZGVFbnRpdGllcyhvdXRwdXQsICZvdXRsZW4sIGF0dCwgJmF0dGxlbiwgJ1wnJyk7CisJCSAgICBvdXRwdXRbb3V0bGVuXSA9IDA7CisJCSAgICBmcHJpbnRmKFNBWGRlYnVnLCAiJXMiLCAoY2hhciAqKSBvdXRwdXQpOworCQkgICAgYXR0ICs9IGF0dGxlbjsKKwkJfQorCQlmcHJpbnRmKFNBWGRlYnVnLCAiJyIpOworCSAgICB9CisJfQorICAgIH0KKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiKVxuIik7Cit9CisKKy8qKgorICogaHRtbGNoYXJhY3RlcnNEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAY2g6ICBhIHhtbENoYXIgc3RyaW5nCisgKiBAbGVuOiB0aGUgbnVtYmVyIG9mIHhtbENoYXIKKyAqCisgKiByZWNlaXZpbmcgc29tZSBjaGFycyBmcm9tIHRoZSBwYXJzZXIuCisgKiBRdWVzdGlvbjogaG93IG11Y2ggYXQgYSB0aW1lID8/PworICovCitzdGF0aWMgdm9pZAoraHRtbGNoYXJhY3RlcnNEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqY2gsIGludCBsZW4pCit7CisgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbNDBdOworICAgIGludCBpbmxlbiA9IGxlbiwgb3V0bGVuID0gMzA7CisKKyAgICBodG1sRW5jb2RlRW50aXRpZXMob3V0cHV0LCAmb3V0bGVuLCBjaCwgJmlubGVuLCAwKTsKKyAgICBvdXRwdXRbb3V0bGVuXSA9IDA7CisKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLmNoYXJhY3RlcnMoJXMsICVkKVxuIiwgb3V0cHV0LCBsZW4pOworfQorCisvKioKKyAqIGh0bWxjZGF0YURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIHJlY2VpdmluZyBzb21lIGNkYXRhIGNoYXJzIGZyb20gdGhlIHBhcnNlci4KKyAqIFF1ZXN0aW9uOiBob3cgbXVjaCBhdCBhIHRpbWUgPz8/CisgKi8KK3N0YXRpYyB2b2lkCitodG1sY2RhdGFEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqY2gsIGludCBsZW4pCit7CisgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbNDBdOworICAgIGludCBpbmxlbiA9IGxlbiwgb3V0bGVuID0gMzA7CisKKyAgICBodG1sRW5jb2RlRW50aXRpZXMob3V0cHV0LCAmb3V0bGVuLCBjaCwgJmlubGVuLCAwKTsKKyAgICBvdXRwdXRbb3V0bGVuXSA9IDA7CisKKyAgICBmcHJpbnRmKFNBWGRlYnVnLCAiU0FYLmNkYXRhKCVzLCAlZClcbiIsIG91dHB1dCwgbGVuKTsKK30KKworc3RhdGljIHhtbFNBWEhhbmRsZXIgZGVidWdIVE1MU0FYSGFuZGxlclN0cnVjdCA9IHsKKyAgICBpbnRlcm5hbFN1YnNldERlYnVnLAorICAgIGlzU3RhbmRhbG9uZURlYnVnLAorICAgIGhhc0ludGVybmFsU3Vic2V0RGVidWcsCisgICAgaGFzRXh0ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICByZXNvbHZlRW50aXR5RGVidWcsCisgICAgZ2V0RW50aXR5RGVidWcsCisgICAgZW50aXR5RGVjbERlYnVnLAorICAgIG5vdGF0aW9uRGVjbERlYnVnLAorICAgIGF0dHJpYnV0ZURlY2xEZWJ1ZywKKyAgICBlbGVtZW50RGVjbERlYnVnLAorICAgIHVucGFyc2VkRW50aXR5RGVjbERlYnVnLAorICAgIHNldERvY3VtZW50TG9jYXRvckRlYnVnLAorICAgIHN0YXJ0RG9jdW1lbnREZWJ1ZywKKyAgICBlbmREb2N1bWVudERlYnVnLAorICAgIGh0bWxzdGFydEVsZW1lbnREZWJ1ZywKKyAgICBlbmRFbGVtZW50RGVidWcsCisgICAgcmVmZXJlbmNlRGVidWcsCisgICAgaHRtbGNoYXJhY3RlcnNEZWJ1ZywKKyAgICBpZ25vcmFibGVXaGl0ZXNwYWNlRGVidWcsCisgICAgcHJvY2Vzc2luZ0luc3RydWN0aW9uRGVidWcsCisgICAgY29tbWVudERlYnVnLAorICAgIHdhcm5pbmdEZWJ1ZywKKyAgICBlcnJvckRlYnVnLAorICAgIGZhdGFsRXJyb3JEZWJ1ZywKKyAgICBnZXRQYXJhbWV0ZXJFbnRpdHlEZWJ1ZywKKyAgICBodG1sY2RhdGFEZWJ1ZywKKyAgICBleHRlcm5hbFN1YnNldERlYnVnLAorICAgIDEsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTAorfTsKKworc3RhdGljIHhtbFNBWEhhbmRsZXJQdHIgZGVidWdIVE1MU0FYSGFuZGxlciA9ICZkZWJ1Z0hUTUxTQVhIYW5kbGVyU3RydWN0OworI2VuZGlmIC8qIExJQlhNTF9IVE1MX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKy8qKgorICogc2F4UGFyc2VUZXN0OgorICogQGZpbGVuYW1lOiB0aGUgZmlsZSB0byBwYXJzZQorICogQHJlc3VsdDogdGhlIGZpbGUgd2l0aCBleHBlY3RlZCByZXN1bHQKKyAqIEBlcnI6IHRoZSBmaWxlIHdpdGggZXJyb3IgbWVzc2FnZXMKKyAqCisgKiBQYXJzZSBhIGZpbGUgdXNpbmcgdGhlIFNBWCBBUEkgYW5kIGNoZWNrIGZvciBlcnJvcnMuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorc2F4UGFyc2VUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICBpbnQgcmV0OworICAgIGNoYXIgKnRlbXA7CisKKyAgICBuYl90ZXN0cysrOworICAgIHRlbXAgPSByZXN1bHRGaWxlbmFtZShmaWxlbmFtZSwgIiIsICIucmVzIik7CisgICAgaWYgKHRlbXAgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICBmYXRhbEVycm9yKCk7CisgICAgfQorICAgIFNBWGRlYnVnID0gZm9wZW4odGVtcCwgIndiIik7CisgICAgaWYgKFNBWGRlYnVnID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gd3JpdGUgdG8gJXNcbiIsIHRlbXApOworCWZyZWUodGVtcCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICAvKiBmb3IgU0FYIHdlIHJlYWxseSB3YW50IHRoZSBjYWxsYmFja3MgdGhvdWdoIHRoZSBjb250ZXh0IGhhbmRsZXJzICovCisgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhOVUxMLCBOVUxMKTsKKyAgICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jKE5VTEwsIHRlc3RFcnJvckhhbmRsZXIpOworCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0hUTUwpIHsKKwlodG1sU0FYUGFyc2VGaWxlKGZpbGVuYW1lLCBOVUxMLCBlbXB0eVNBWEhhbmRsZXIsIE5VTEwpOworCXJldCA9IDA7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICByZXQgPSB4bWxTQVhVc2VyUGFyc2VGaWxlKGVtcHR5U0FYSGFuZGxlciwgTlVMTCwgZmlsZW5hbWUpOworICAgIGlmIChyZXQgPT0gWE1MX1dBUl9VTkRFQ0xBUkVEX0VOVElUWSkgeworICAgICAgICBmcHJpbnRmKFNBWGRlYnVnLCAieG1sU0FYVXNlclBhcnNlRmlsZSByZXR1cm5lZCBlcnJvciAlZFxuIiwgcmV0KTsKKyAgICAgICAgcmV0ID0gMDsKKyAgICB9CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlICVzXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKDEpOworICAgIH0KKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfSFRNTCkgeworCWh0bWxTQVhQYXJzZUZpbGUoZmlsZW5hbWUsIE5VTEwsIGRlYnVnSFRNTFNBWEhhbmRsZXIsIE5VTEwpOworCXJldCA9IDA7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9TQVgxKSB7CisJcmV0ID0geG1sU0FYVXNlclBhcnNlRmlsZShkZWJ1Z1NBWEhhbmRsZXIsIE5VTEwsIGZpbGVuYW1lKTsKKyAgICB9IGVsc2UgeworCXJldCA9IHhtbFNBWFVzZXJQYXJzZUZpbGUoZGVidWdTQVgySGFuZGxlciwgTlVMTCwgZmlsZW5hbWUpOworICAgIH0KKyAgICBpZiAocmV0ID09IFhNTF9XQVJfVU5ERUNMQVJFRF9FTlRJVFkpIHsKKyAgICAgICAgZnByaW50ZihTQVhkZWJ1ZywgInhtbFNBWFVzZXJQYXJzZUZpbGUgcmV0dXJuZWQgZXJyb3IgJWRcbiIsIHJldCk7CisgICAgICAgIHJldCA9IDA7CisgICAgfQorICAgIGZjbG9zZShTQVhkZWJ1Zyk7CisgICAgaWYgKGNvbXBhcmVGaWxlcyh0ZW1wLCByZXN1bHQpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiR290IGEgZGlmZmVyZW5jZSBmb3IgJXNcbiIsIGZpbGVuYW1lKTsKKyAgICAgICAgcmV0ID0gMTsKKyAgICB9CisgICAgaWYgKHRlbXAgIT0gTlVMTCkgeworICAgICAgICB1bmxpbmsodGVtcCk7CisgICAgICAgIGZyZWUodGVtcCk7CisgICAgfQorCisgICAgLyogc3dpdGNoIGJhY2sgdG8gc3RydWN0dXJlZCBlcnJvciBoYW5kbGluZyAqLworICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoTlVMTCwgTlVMTCk7CisgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhOVUxMLCB0ZXN0U3RydWN0dXJlZEVycm9ySGFuZGxlcik7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlQYXJzZSB0byB0cmVlIGJhc2VkIHRlc3RzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKgorICogb2xkUGFyc2VUZXN0OgorICogQGZpbGVuYW1lOiB0aGUgZmlsZSB0byBwYXJzZQorICogQHJlc3VsdDogdGhlIGZpbGUgd2l0aCBleHBlY3RlZCByZXN1bHQKKyAqIEBlcnI6IHRoZSBmaWxlIHdpdGggZXJyb3IgbWVzc2FnZXM6IHVudXNlZAorICoKKyAqIFBhcnNlIGEgZmlsZSB1c2luZyB0aGUgb2xkIHhtbFBhcnNlRmlsZSBBUEksIHRoZW4gc2VyaWFsaXplIGJhY2sKKyAqIHJlcGFyc2UgdGhlIHJlc3VsdCBhbmQgc2VyaWFsaXplIGFnYWluLCB0aGVuIGNoZWNrIGZvciBkZXZpYXRpb24KKyAqIGluIHNlcmlhbGl6YXRpb24uCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorb2xkUGFyc2VUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisJICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICBjaGFyICp0ZW1wOworICAgIGludCByZXMgPSAwOworCisgICAgbmJfdGVzdHMrKzsKKyAgICAvKgorICAgICAqIGJhc2Ugb2YgdGhlIHRlc3QsIHBhcnNlIHdpdGggdGhlIG9sZCBBUEkKKyAgICAgKi8KKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgZG9jID0geG1sUGFyc2VGaWxlKGZpbGVuYW1lKTsKKyNlbHNlCisgICAgZG9jID0geG1sUmVhZEZpbGUoZmlsZW5hbWUsIE5VTEwsIDApOworI2VuZGlmCisgICAgaWYgKGRvYyA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMSk7CisgICAgdGVtcCA9IHJlc3VsdEZpbGVuYW1lKGZpbGVuYW1lLCAiIiwgIi5yZXMiKTsKKyAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgIGZhdGFsRXJyb3IoKTsKKyAgICB9CisgICAgeG1sU2F2ZUZpbGUodGVtcCwgZG9jKTsKKyAgICBpZiAoY29tcGFyZUZpbGVzKHRlbXAsIHJlc3VsdCkpIHsKKyAgICAgICAgcmVzID0gMTsKKyAgICB9CisgICAgeG1sRnJlZURvYyhkb2MpOworCisgICAgLyoKKyAgICAgKiBQYXJzZSB0aGUgc2F2ZWQgcmVzdWx0IHRvIG1ha2Ugc3VyZSB0aGUgcm91bmQgdHJpcCBpcyBva2F5CisgICAgICovCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGRvYyA9IHhtbFBhcnNlRmlsZSh0ZW1wKTsKKyNlbHNlCisgICAgZG9jID0geG1sUmVhZEZpbGUodGVtcCwgTlVMTCwgMCk7CisjZW5kaWYKKyAgICBpZiAoZG9jID09IE5VTEwpCisgICAgICAgIHJldHVybigxKTsKKyAgICB4bWxTYXZlRmlsZSh0ZW1wLCBkb2MpOworICAgIGlmIChjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KSkgeworICAgICAgICByZXMgPSAxOworICAgIH0KKyAgICB4bWxGcmVlRG9jKGRvYyk7CisKKyAgICBpZiAodGVtcCAhPSBOVUxMKSB7CisgICAgICAgIHVubGluayh0ZW1wKTsKKyAgICAgICAgZnJlZSh0ZW1wKTsKKyAgICB9CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECisvKioKKyAqIHB1c2hQYXJzZVRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlczogdW51c2VkCisgKgorICogUGFyc2UgYSBmaWxlIHVzaW5nIHRoZSBQdXNoIEFQSSwgdGhlbiBzZXJpYWxpemUgYmFjaworICogdG8gY2hlY2sgZm9yIGNvbnRlbnQuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorcHVzaFBhcnNlVGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqcmVzdWx0LAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVyciBBVFRSSUJVVEVfVU5VU0VELAorCSAgICAgaW50IG9wdGlvbnMpIHsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICBjb25zdCBjaGFyICpiYXNlOworICAgIGludCBzaXplLCByZXM7CisgICAgaW50IGN1ciA9IDA7CisKKyAgICBuYl90ZXN0cysrOworICAgIC8qCisgICAgICogbG9hZCB0aGUgZG9jdW1lbnQgaW4gbWVtb3J5IGFuZCB3b3JrIGZyb20gdGhlcmUuCisgICAgICovCisgICAgaWYgKGxvYWRNZW0oZmlsZW5hbWUsICZiYXNlLCAmc2l6ZSkgIT0gMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBsb2FkICVzXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfSFRNTCkKKwljdHh0ID0gaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KE5VTEwsIE5VTEwsIGJhc2UgKyBjdXIsIDQsIGZpbGVuYW1lLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgZWxzZQorI2VuZGlmCisgICAgY3R4dCA9IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KE5VTEwsIE5VTEwsIGJhc2UgKyBjdXIsIDQsIGZpbGVuYW1lKTsKKyAgICB4bWxDdHh0VXNlT3B0aW9ucyhjdHh0LCBvcHRpb25zKTsKKyAgICBjdXIgKz0gNDsKKyAgICB3aGlsZSAoY3VyIDwgc2l6ZSkgeworICAgICAgICBpZiAoY3VyICsgMTAyNCA+PSBzaXplKSB7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorCSAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9IVE1MKQorCQlodG1sUGFyc2VDaHVuayhjdHh0LCBiYXNlICsgY3VyLCBzaXplIC0gY3VyLCAxKTsKKwkgICAgZWxzZQorI2VuZGlmCisJICAgIHhtbFBhcnNlQ2h1bmsoY3R4dCwgYmFzZSArIGN1ciwgc2l6ZSAtIGN1ciwgMSk7CisJICAgIGJyZWFrOworCX0gZWxzZSB7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorCSAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9IVE1MKQorCQlodG1sUGFyc2VDaHVuayhjdHh0LCBiYXNlICsgY3VyLCAxMDI0LCAwKTsKKwkgICAgZWxzZQorI2VuZGlmCisJICAgIHhtbFBhcnNlQ2h1bmsoY3R4dCwgYmFzZSArIGN1ciwgMTAyNCwgMCk7CisJICAgIGN1ciArPSAxMDI0OworCX0KKyAgICB9CisgICAgZG9jID0gY3R4dC0+bXlEb2M7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX0hUTUwpCisgICAgICAgIHJlcyA9IDE7CisgICAgZWxzZQorI2VuZGlmCisgICAgcmVzID0gY3R4dC0+d2VsbEZvcm1lZDsKKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICBmcmVlKChjaGFyICopYmFzZSk7CisgICAgaWYgKCFyZXMpIHsKKwl4bWxGcmVlRG9jKGRvYyk7CisJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcGFyc2UgJXNcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfSFRNTCkKKwlodG1sRG9jRHVtcE1lbW9yeShkb2MsICh4bWxDaGFyICoqKSAmYmFzZSwgJnNpemUpOworICAgIGVsc2UKKyNlbmRpZgorICAgIHhtbERvY0R1bXBNZW1vcnkoZG9jLCAoeG1sQ2hhciAqKikgJmJhc2UsICZzaXplKTsKKyAgICB4bWxGcmVlRG9jKGRvYyk7CisgICAgcmVzID0gY29tcGFyZUZpbGVNZW0ocmVzdWx0LCBiYXNlLCBzaXplKTsKKyAgICBpZiAoKGJhc2UgPT0gTlVMTCkgfHwgKHJlcyAhPSAwKSkgeworCWlmIChiYXNlICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKGNoYXIgKiliYXNlKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorICAgIHhtbEZyZWUoKGNoYXIgKiliYXNlKTsKKyAgICBpZiAoZXJyICE9IE5VTEwpIHsKKwlyZXMgPSBjb21wYXJlRmlsZU1lbShlcnIsIHRlc3RFcnJvcnMsIHRlc3RFcnJvcnNTaXplKTsKKwlpZiAocmVzICE9IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciBmb3IgJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSk7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYKKworLyoqCisgKiBtZW1QYXJzZVRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlczogdW51c2VkCisgKgorICogUGFyc2UgYSBmaWxlIHVzaW5nIHRoZSBvbGQgeG1sUmVhZE1lbW9yeSBBUEksIHRoZW4gc2VyaWFsaXplIGJhY2sKKyAqIHJlcGFyc2UgdGhlIHJlc3VsdCBhbmQgc2VyaWFsaXplIGFnYWluLCB0aGVuIGNoZWNrIGZvciBkZXZpYXRpb24KKyAqIGluIHNlcmlhbGl6YXRpb24uCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorbWVtUGFyc2VUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisJICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICBjb25zdCBjaGFyICpiYXNlOworICAgIGludCBzaXplLCByZXM7CisKKyAgICBuYl90ZXN0cysrOworICAgIC8qCisgICAgICogbG9hZCBhbmQgcGFyc2UgdGhlIG1lbW9yeQorICAgICAqLworICAgIGlmIChsb2FkTWVtKGZpbGVuYW1lLCAmYmFzZSwgJnNpemUpICE9IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gbG9hZCAlc1xuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgZG9jID0geG1sUmVhZE1lbW9yeShiYXNlLCBzaXplLCBmaWxlbmFtZSwgTlVMTCwgMCk7CisgICAgdW5sb2FkTWVtKGJhc2UpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4oMSk7CisgICAgfQorICAgIHhtbERvY0R1bXBNZW1vcnkoZG9jLCAoeG1sQ2hhciAqKikgJmJhc2UsICZzaXplKTsKKyAgICB4bWxGcmVlRG9jKGRvYyk7CisgICAgcmVzID0gY29tcGFyZUZpbGVNZW0ocmVzdWx0LCBiYXNlLCBzaXplKTsKKyAgICBpZiAoKGJhc2UgPT0gTlVMTCkgfHwgKHJlcyAhPSAwKSkgeworCWlmIChiYXNlICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKGNoYXIgKiliYXNlKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorICAgIHhtbEZyZWUoKGNoYXIgKiliYXNlKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogbm9lbnRQYXJzZVRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlczogdW51c2VkCisgKgorICogUGFyc2UgYSBmaWxlIHdpdGggZW50aXR5IHJlc29sdXRpb24sIHRoZW4gc2VyaWFsaXplIGJhY2sKKyAqIHJlcGFyc2UgdGhlIHJlc3VsdCBhbmQgc2VyaWFsaXplIGFnYWluLCB0aGVuIGNoZWNrIGZvciBkZXZpYXRpb24KKyAqIGluIHNlcmlhbGl6YXRpb24uCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorbm9lbnRQYXJzZVRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnJlc3VsdCwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVyciAgQVRUUklCVVRFX1VOVVNFRCwKKwkgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIGNoYXIgKnRlbXA7CisgICAgaW50IHJlcyA9IDA7CisKKyAgICBuYl90ZXN0cysrOworICAgIC8qCisgICAgICogYmFzZSBvZiB0aGUgdGVzdCwgcGFyc2Ugd2l0aCB0aGUgb2xkIEFQSQorICAgICAqLworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKyAgICBpZiAoZG9jID09IE5VTEwpCisgICAgICAgIHJldHVybigxKTsKKyAgICB0ZW1wID0gcmVzdWx0RmlsZW5hbWUoZmlsZW5hbWUsICIiLCAiLnJlcyIpOworICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgZmF0YWxFcnJvcigpOworICAgIH0KKyAgICB4bWxTYXZlRmlsZSh0ZW1wLCBkb2MpOworICAgIGlmIChjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KSkgeworICAgICAgICByZXMgPSAxOworICAgIH0KKyAgICB4bWxGcmVlRG9jKGRvYyk7CisKKyAgICAvKgorICAgICAqIFBhcnNlIHRoZSBzYXZlZCByZXN1bHQgdG8gbWFrZSBzdXJlIHRoZSByb3VuZCB0cmlwIGlzIG9rYXkKKyAgICAgKi8KKyAgICBkb2MgPSB4bWxSZWFkRmlsZShmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisgICAgaWYgKGRvYyA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMSk7CisgICAgeG1sU2F2ZUZpbGUodGVtcCwgZG9jKTsKKyAgICBpZiAoY29tcGFyZUZpbGVzKHRlbXAsIHJlc3VsdCkpIHsKKyAgICAgICAgcmVzID0gMTsKKyAgICB9CisgICAgeG1sRnJlZURvYyhkb2MpOworCisgICAgaWYgKHRlbXAgIT0gTlVMTCkgeworICAgICAgICB1bmxpbmsodGVtcCk7CisgICAgICAgIGZyZWUodGVtcCk7CisgICAgfQorICAgIHJldHVybihyZXMpOworfQorCisvKioKKyAqIGVyclBhcnNlVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzCisgKgorICogUGFyc2UgYSBmaWxlIHVzaW5nIHRoZSB4bWxSZWFkRmlsZSBBUEkgYW5kIGNoZWNrIGZvciBlcnJvcnMuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorZXJyUGFyc2VUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsIGNvbnN0IGNoYXIgKmVyciwKKyAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgY29uc3QgY2hhciAqYmFzZSA9IE5VTEw7CisgICAgaW50IHNpemUsIHJlcyA9IDA7CisKKyAgICBuYl90ZXN0cysrOworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9IVE1MKSB7CisgICAgICAgIGRvYyA9IGh0bWxSZWFkRmlsZShmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisgICAgfSBlbHNlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX1hJTkNMVURFKSB7CisJZG9jID0geG1sUmVhZEZpbGUoZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMpOworCXhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzKGRvYywgb3B0aW9ucyk7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisJeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPSAxOworCWRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKyAgICB9CisgICAgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPSAwOworICAgIGlmIChyZXN1bHQpIHsKKwlpZiAoZG9jID09IE5VTEwpIHsKKwkgICAgYmFzZSA9ICIiOworCSAgICBzaXplID0gMDsKKwl9IGVsc2UgeworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKwkgICAgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfSFRNTCkgeworCQlodG1sRG9jRHVtcE1lbW9yeShkb2MsICh4bWxDaGFyICoqKSAmYmFzZSwgJnNpemUpOworCSAgICB9IGVsc2UKKyNlbmRpZgorCSAgICB4bWxEb2NEdW1wTWVtb3J5KGRvYywgKHhtbENoYXIgKiopICZiYXNlLCAmc2l6ZSk7CisJfQorCXJlcyA9IGNvbXBhcmVGaWxlTWVtKHJlc3VsdCwgYmFzZSwgc2l6ZSk7CisgICAgfQorICAgIGlmIChkb2MgIT0gTlVMTCkgeworCWlmIChiYXNlICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKGNoYXIgKiliYXNlKTsKKwl4bWxGcmVlRG9jKGRvYyk7CisgICAgfQorICAgIGlmIChyZXMgIT0gMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJlc3VsdCBmb3IgJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKGVyciAhPSBOVUxMKSB7CisJcmVzID0gY29tcGFyZUZpbGVNZW0oZXJyLCB0ZXN0RXJyb3JzLCB0ZXN0RXJyb3JzU2l6ZSk7CisJaWYgKHJlcyAhPSAwKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9IGVsc2UgaWYgKG9wdGlvbnMgJiBYTUxfUEFSU0VfRFREVkFMSUQpIHsKKyAgICAgICAgaWYgKHRlc3RFcnJvcnNTaXplICE9IDApCisJICAgIGZwcmludGYoc3RkZXJyLCAiVmFsaWRhdGlvbiBmb3IgJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSk7CisgICAgfQorCisgICAgcmV0dXJuKDApOworfQorCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlSZWFkZXIgYmFzZWQgdGVzdHMJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHZvaWQgcHJvY2Vzc05vZGUoRklMRSAqb3V0LCB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsICp2YWx1ZTsKKyAgICBpbnQgdHlwZSwgZW1wdHk7CisKKyAgICB0eXBlID0geG1sVGV4dFJlYWRlck5vZGVUeXBlKHJlYWRlcik7CisgICAgZW1wdHkgPSB4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQocmVhZGVyKTsKKworICAgIG5hbWUgPSB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lKHJlYWRlcik7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkKKwluYW1lID0gQkFEX0NBU1QgIi0tIjsKKworICAgIHZhbHVlID0geG1sVGV4dFJlYWRlckNvbnN0VmFsdWUocmVhZGVyKTsKKworCisgICAgZnByaW50ZihvdXQsICIlZCAlZCAlcyAlZCAlZCIsCisJICAgIHhtbFRleHRSZWFkZXJEZXB0aChyZWFkZXIpLAorCSAgICB0eXBlLAorCSAgICBuYW1lLAorCSAgICBlbXB0eSwKKwkgICAgeG1sVGV4dFJlYWRlckhhc1ZhbHVlKHJlYWRlcikpOworICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorCWZwcmludGYob3V0LCAiXG4iKTsKKyAgICBlbHNlIHsKKwlmcHJpbnRmKG91dCwgIiAlc1xuIiwgdmFsdWUpOworICAgIH0KK30KK3N0YXRpYyBpbnQKK3N0cmVhbVByb2Nlc3NUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsIGNvbnN0IGNoYXIgKmVyciwKKyAgICAgICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCBjb25zdCBjaGFyICpybmcpIHsKKyAgICBpbnQgcmV0OworICAgIGNoYXIgKnRlbXAgPSBOVUxMOworICAgIEZJTEUgKnQgPSBOVUxMOworCisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgbmJfdGVzdHMrKzsKKyAgICBpZiAocmVzdWx0ICE9IE5VTEwpIHsKKwl0ZW1wID0gcmVzdWx0RmlsZW5hbWUoZmlsZW5hbWUsICIiLCAiLnJlcyIpOworCWlmICh0ZW1wID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5XG4iKTsKKwkgICAgZmF0YWxFcnJvcigpOworCX0KKwl0ID0gZm9wZW4odGVtcCwgIndiIik7CisJaWYgKHQgPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbid0IG9wZW4gdGVtcCBmaWxlICVzXG4iLCB0ZW1wKTsKKwkgICAgZnJlZSh0ZW1wKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICBpZiAocm5nICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlKHJlYWRlciwgcm5nKTsKKwlpZiAocmV0IDwgMCkgeworCSAgICB0ZXN0RXJyb3JIYW5kbGVyKE5VTEwsICJSZWxheC1ORyBzY2hlbWEgJXMgZmFpbGVkIHRvIGNvbXBpbGVcbiIsCisJICAgICAgICAgICAgICAgICAgICAgcm5nKTsKKwkgICAgZmNsb3NlKHQpOworICAgICAgICAgICAgaWYgKHRlbXAgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHVubGluayh0ZW1wKTsKKyAgICAgICAgICAgICAgICBmcmVlKHRlbXApOworICAgICAgICAgICAgfQorCSAgICByZXR1cm4oMCk7CisJfQorICAgIH0KKyNlbmRpZgorICAgIHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlID0gMTsKKyAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgIHdoaWxlIChyZXQgPT0gMSkgeworCWlmICgodCAhPSBOVUxMKSAmJiAocm5nID09IE5VTEwpKQorCSAgICBwcm9jZXNzTm9kZSh0LCByZWFkZXIpOworICAgICAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgIH0KKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgdGVzdEVycm9ySGFuZGxlcihOVUxMLCAiJXMgOiBmYWlsZWQgdG8gcGFyc2VcbiIsIGZpbGVuYW1lKTsKKyAgICB9CisgICAgaWYgKHJuZyAhPSBOVUxMKSB7CisgICAgICAgIGlmICh4bWxUZXh0UmVhZGVySXNWYWxpZChyZWFkZXIpICE9IDEpIHsKKwkgICAgdGVzdEVycm9ySGFuZGxlcihOVUxMLCAiJXMgZmFpbHMgdG8gdmFsaWRhdGVcbiIsIGZpbGVuYW1lKTsKKwl9IGVsc2UgeworCSAgICB0ZXN0RXJyb3JIYW5kbGVyKE5VTEwsICIlcyB2YWxpZGF0ZXNcbiIsIGZpbGVuYW1lKTsKKwl9CisgICAgfQorICAgIHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlID0gMDsKKyAgICBpZiAodCAhPSBOVUxMKSB7CisgICAgICAgIGZjbG9zZSh0KTsKKwlyZXQgPSBjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KTsKKyAgICAgICAgaWYgKHRlbXAgIT0gTlVMTCkgeworICAgICAgICAgICAgdW5saW5rKHRlbXApOworICAgICAgICAgICAgZnJlZSh0ZW1wKTsKKyAgICAgICAgfQorCWlmIChyZXQpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9CisgICAgaWYgKGVyciAhPSBOVUxMKSB7CisJcmV0ID0gY29tcGFyZUZpbGVNZW0oZXJyLCB0ZXN0RXJyb3JzLCB0ZXN0RXJyb3JzU2l6ZSk7CisJaWYgKHJldCAhPSAwKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworCSAgICBwcmludGYoIiVzIiwgdGVzdEVycm9ycyk7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiBzdHJlYW1QYXJzZVRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcworICoKKyAqIFBhcnNlIGEgZmlsZSB1c2luZyB0aGUgcmVhZGVyIEFQSSBhbmQgY2hlY2sgZm9yIGVycm9ycy4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCBhbiBlcnJvciBjb2RlIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50CitzdHJlYW1QYXJzZVRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnJlc3VsdCwgY29uc3QgY2hhciAqZXJyLAorICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgaW50IHJldDsKKworICAgIHJlYWRlciA9IHhtbFJlYWRlckZvckZpbGUoZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMpOworICAgIHJldCA9IHN0cmVhbVByb2Nlc3NUZXN0KGZpbGVuYW1lLCByZXN1bHQsIGVyciwgcmVhZGVyLCBOVUxMKTsKKyAgICB4bWxGcmVlVGV4dFJlYWRlcihyZWFkZXIpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHdhbGtlclBhcnNlVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzCisgKgorICogUGFyc2UgYSBmaWxlIHVzaW5nIHRoZSB3YWxrZXIsIGkuZS4gYSByZWFkZXIgYnVpbHQgZnJvbSBhIGF0cmVlLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3dhbGtlclBhcnNlVGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqcmVzdWx0LCBjb25zdCBjaGFyICplcnIsCisgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOworICAgIGludCByZXQ7CisKKyAgICBkb2MgPSB4bWxSZWFkRmlsZShmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlICVzXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcmVhZGVyID0geG1sUmVhZGVyV2Fsa2VyKGRvYyk7CisgICAgcmV0ID0gc3RyZWFtUHJvY2Vzc1Rlc3QoZmlsZW5hbWUsIHJlc3VsdCwgZXJyLCByZWFkZXIsIE5VTEwpOworICAgIHhtbEZyZWVUZXh0UmVhZGVyKHJlYWRlcik7CisgICAgeG1sRnJlZURvYyhkb2MpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHN0cmVhbU1lbVBhcnNlVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzCisgKgorICogUGFyc2UgYSBmaWxlIHVzaW5nIHRoZSByZWFkZXIgQVBJIGZyb20gbWVtb3J5IGFuZCBjaGVjayBmb3IgZXJyb3JzLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3N0cmVhbU1lbVBhcnNlVGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqcmVzdWx0LCBjb25zdCBjaGFyICplcnIsCisgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsKKyAgICBpbnQgcmV0OworICAgIGNvbnN0IGNoYXIgKmJhc2U7CisgICAgaW50IHNpemU7CisKKyAgICAvKgorICAgICAqIGxvYWQgYW5kIHBhcnNlIHRoZSBtZW1vcnkKKyAgICAgKi8KKyAgICBpZiAobG9hZE1lbShmaWxlbmFtZSwgJmJhc2UsICZzaXplKSAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGxvYWQgJXNcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICByZWFkZXIgPSB4bWxSZWFkZXJGb3JNZW1vcnkoYmFzZSwgc2l6ZSwgZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMpOworICAgIHJldCA9IHN0cmVhbVByb2Nlc3NUZXN0KGZpbGVuYW1lLCByZXN1bHQsIGVyciwgcmVhZGVyLCBOVUxMKTsKKyAgICBmcmVlKChjaGFyICopYmFzZSk7CisgICAgeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJWFBhdGggYW5kIFhQb2ludGVyIGJhc2VkIHRlc3RzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIEZJTEUgKnhwYXRoT3V0cHV0Oworc3RhdGljIHhtbERvY1B0ciB4cGF0aERvY3VtZW50OworCitzdGF0aWMgdm9pZAordGVzdFhQYXRoKGNvbnN0IGNoYXIgKnN0ciwgaW50IHhwdHIsIGludCBleHByKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzOworICAgIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0OworCisgICAgbmJfdGVzdHMrKzsKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisgICAgaWYgKHhwdHIpIHsKKwljdHh0ID0geG1sWFB0ck5ld0NvbnRleHQoeHBhdGhEb2N1bWVudCwgTlVMTCwgTlVMTCk7CisJcmVzID0geG1sWFB0ckV2YWwoQkFEX0NBU1Qgc3RyLCBjdHh0KTsKKyAgICB9IGVsc2UgeworI2VuZGlmCisJY3R4dCA9IHhtbFhQYXRoTmV3Q29udGV4dCh4cGF0aERvY3VtZW50KTsKKwljdHh0LT5ub2RlID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoeHBhdGhEb2N1bWVudCk7CisJaWYgKGV4cHIpCisJICAgIHJlcyA9IHhtbFhQYXRoRXZhbEV4cHJlc3Npb24oQkFEX0NBU1Qgc3RyLCBjdHh0KTsKKwllbHNlIHsKKwkgICAgLyogcmVzID0geG1sWFBhdGhFdmFsKEJBRF9DQVNUIHN0ciwgY3R4dCk7ICovCisJICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcDsKKworCSAgICBjb21wID0geG1sWFBhdGhDb21waWxlKEJBRF9DQVNUIHN0cik7CisJICAgIGlmIChjb21wICE9IE5VTEwpIHsKKwkJcmVzID0geG1sWFBhdGhDb21waWxlZEV2YWwoY29tcCwgY3R4dCk7CisJCXhtbFhQYXRoRnJlZUNvbXBFeHByKGNvbXApOworCSAgICB9IGVsc2UKKwkJcmVzID0gTlVMTDsKKwl9CisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorICAgIH0KKyNlbmRpZgorICAgIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0KHhwYXRoT3V0cHV0LCByZXMsIDApOworICAgIHhtbFhQYXRoRnJlZU9iamVjdChyZXMpOworICAgIHhtbFhQYXRoRnJlZUNvbnRleHQoY3R4dCk7Cit9CisKKy8qKgorICogeHBhdGhFeHByVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzCisgKgorICogUGFyc2UgYSBmaWxlIGNvbnRhaW5pbmcgWFBhdGggc3RhbmRhbG9uZSBleHByZXNzaW9ucyBhbmQgZXZhbHVhdGUgdGhlbQorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3hwYXRoQ29tbW9uVGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqcmVzdWx0LAorICAgICAgICAgICAgICAgIGludCB4cHRyLCBpbnQgZXhwcikgeworICAgIEZJTEUgKmlucHV0OworICAgIGNoYXIgZXhwcmVzc2lvbls1MDAwXTsKKyAgICBpbnQgbGVuLCByZXQgPSAwOworICAgIGNoYXIgKnRlbXA7CisKKyAgICB0ZW1wID0gcmVzdWx0RmlsZW5hbWUoZmlsZW5hbWUsICIiLCAiLnJlcyIpOworICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgZmF0YWxFcnJvcigpOworICAgIH0KKyAgICB4cGF0aE91dHB1dCA9IGZvcGVuKHRlbXAsICJ3YiIpOworICAgIGlmICh4cGF0aE91dHB1dCA9PSBOVUxMKSB7CisJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gb3BlbiBvdXRwdXQgZmlsZSAlc1xuIiwgdGVtcCk7CisgICAgICAgIGZyZWUodGVtcCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBpbnB1dCA9IGZvcGVuKGZpbGVuYW1lLCAicmIiKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iLCBmaWxlbmFtZSk7CisgICAgICAgIGZyZWUodGVtcCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgd2hpbGUgKGZnZXRzKGV4cHJlc3Npb24sIDQ1MDAsIGlucHV0KSAhPSBOVUxMKSB7CisJbGVuID0gc3RybGVuKGV4cHJlc3Npb24pOworCWxlbi0tOworCXdoaWxlICgobGVuID49IDApICYmCisJICAgICAgICgoZXhwcmVzc2lvbltsZW5dID09ICdcbicpIHx8IChleHByZXNzaW9uW2xlbl0gPT0gJ1x0JykgfHwKKwkJKGV4cHJlc3Npb25bbGVuXSA9PSAnXHInKSB8fCAoZXhwcmVzc2lvbltsZW5dID09ICcgJykpKSBsZW4tLTsKKwlleHByZXNzaW9uW2xlbiArIDFdID0gMDsKKwlpZiAobGVuID49IDApIHsKKwkgICAgZnByaW50Zih4cGF0aE91dHB1dCwKKwkgICAgICAgICAgICAiXG49PT09PT09PT09PT09PT09PT09PT09PT1cbkV4cHJlc3Npb246ICVzXG4iLAorCQkgICAgZXhwcmVzc2lvbikgOworCSAgICB0ZXN0WFBhdGgoZXhwcmVzc2lvbiwgeHB0ciwgZXhwcik7CisJfQorICAgIH0KKworICAgIGZjbG9zZShpbnB1dCk7CisgICAgZmNsb3NlKHhwYXRoT3V0cHV0KTsKKyAgICBpZiAocmVzdWx0ICE9IE5VTEwpIHsKKwlyZXQgPSBjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KTsKKwlpZiAocmV0KSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWRcbiIsIGZpbGVuYW1lKTsKKwl9CisgICAgfQorCisgICAgaWYgKHRlbXAgIT0gTlVMTCkgeworICAgICAgICB1bmxpbmsodGVtcCk7CisgICAgICAgIGZyZWUodGVtcCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhwYXRoRXhwclRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcworICoKKyAqIFBhcnNlIGEgZmlsZSBjb250YWluaW5nIFhQYXRoIHN0YW5kYWxvbmUgZXhwcmVzc2lvbnMgYW5kIGV2YWx1YXRlIHRoZW0KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCBhbiBlcnJvciBjb2RlIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4cGF0aEV4cHJUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpyZXN1bHQsCisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVyciBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKHhwYXRoQ29tbW9uVGVzdChmaWxlbmFtZSwgcmVzdWx0LCAwLCAxKSk7Cit9CisKKy8qKgorICogeHBhdGhEb2NUZXN0OgorICogQGZpbGVuYW1lOiB0aGUgZmlsZSB0byBwYXJzZQorICogQHJlc3VsdDogdGhlIGZpbGUgd2l0aCBleHBlY3RlZCByZXN1bHQKKyAqIEBlcnI6IHRoZSBmaWxlIHdpdGggZXJyb3IgbWVzc2FnZXMKKyAqCisgKiBQYXJzZSBhIGZpbGUgY29udGFpbmluZyBYUGF0aCBleHByZXNzaW9ucyBhbmQgZXZhbHVhdGUgdGhlbSBhZ2FpbnN0CisgKiBhIHNldCBvZiBjb3JyZXNwb25kaW5nIGRvY3VtZW50cy4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCBhbiBlcnJvciBjb2RlIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4cGF0aERvY1Rlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWwgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICplcnIgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworCisgICAgY2hhciBwYXR0ZXJuWzUwMF07CisgICAgY2hhciByZXN1bHRbNTAwXTsKKyAgICBnbG9iX3QgZ2xvYmJ1ZjsKKyAgICBzaXplX3QgaTsKKyAgICBpbnQgcmV0ID0gMCwgcmVzOworCisgICAgeHBhdGhEb2N1bWVudCA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHwgWE1MX1BBUlNFX0RUREFUVFIgfCBYTUxfUEFSU0VfTk9FTlQpOworICAgIGlmICh4cGF0aERvY3VtZW50ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gbG9hZCAlc1xuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgc25wcmludGYocGF0dGVybiwgNDk5LCAiLi90ZXN0L1hQYXRoL3Rlc3RzLyVzKiIsIGJhc2VGaWxlbmFtZShmaWxlbmFtZSkpOworICAgIHBhdHRlcm5bNDk5XSA9IDA7CisgICAgZ2xvYmJ1Zi5nbF9vZmZzID0gMDsKKyAgICBnbG9iKHBhdHRlcm4sIEdMT0JfRE9PRkZTLCBOVUxMLCAmZ2xvYmJ1Zik7CisgICAgZm9yIChpID0gMDtpIDwgZ2xvYmJ1Zi5nbF9wYXRoYztpKyspIHsKKyAgICAgICAgc25wcmludGYocmVzdWx0LCA0OTksICJyZXN1bHQvWFBhdGgvdGVzdHMvJXMiLAorCSAgICAgICAgIGJhc2VGaWxlbmFtZShnbG9iYnVmLmdsX3BhdGh2W2ldKSk7CisJcmVzID0geHBhdGhDb21tb25UZXN0KGdsb2JidWYuZ2xfcGF0aHZbaV0sICZyZXN1bHRbMF0sIDAsIDApOworCWlmIChyZXMgIT0gMCkKKwkgICAgcmV0ID0gcmVzOworICAgIH0KKyAgICBnbG9iZnJlZSgmZ2xvYmJ1Zik7CisKKyAgICB4bWxGcmVlRG9jKHhwYXRoRG9jdW1lbnQpOworICAgIHJldHVybihyZXQpOworfQorCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorLyoqCisgKiB4cHRyRG9jVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzCisgKgorICogUGFyc2UgYSBmaWxlIGNvbnRhaW5pbmcgWFBhdGggZXhwcmVzc2lvbnMgYW5kIGV2YWx1YXRlIHRoZW0gYWdhaW5zdAorICogYSBzZXQgb2YgY29ycmVzcG9uZGluZyBkb2N1bWVudHMuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreHB0ckRvY1Rlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworCisgICAgY2hhciBwYXR0ZXJuWzUwMF07CisgICAgY2hhciByZXN1bHRbNTAwXTsKKyAgICBnbG9iX3QgZ2xvYmJ1ZjsKKyAgICBzaXplX3QgaTsKKyAgICBpbnQgcmV0ID0gMCwgcmVzOworCisgICAgeHBhdGhEb2N1bWVudCA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHwgWE1MX1BBUlNFX0RUREFUVFIgfCBYTUxfUEFSU0VfTk9FTlQpOworICAgIGlmICh4cGF0aERvY3VtZW50ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gbG9hZCAlc1xuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgc25wcmludGYocGF0dGVybiwgNDk5LCAiLi90ZXN0L1hQYXRoL3hwdHIvJXMqIiwgYmFzZUZpbGVuYW1lKGZpbGVuYW1lKSk7CisgICAgcGF0dGVybls0OTldID0gMDsKKyAgICBnbG9iYnVmLmdsX29mZnMgPSAwOworICAgIGdsb2IocGF0dGVybiwgR0xPQl9ET09GRlMsIE5VTEwsICZnbG9iYnVmKTsKKyAgICBmb3IgKGkgPSAwO2kgPCBnbG9iYnVmLmdsX3BhdGhjO2krKykgeworICAgICAgICBzbnByaW50ZihyZXN1bHQsIDQ5OSwgInJlc3VsdC9YUGF0aC94cHRyLyVzIiwKKwkgICAgICAgICBiYXNlRmlsZW5hbWUoZ2xvYmJ1Zi5nbF9wYXRodltpXSkpOworCXJlcyA9IHhwYXRoQ29tbW9uVGVzdChnbG9iYnVmLmdsX3BhdGh2W2ldLCAmcmVzdWx0WzBdLCAxLCAwKTsKKwlpZiAocmVzICE9IDApCisJICAgIHJldCA9IHJlczsKKyAgICB9CisgICAgZ2xvYmZyZWUoJmdsb2JidWYpOworCisgICAgeG1sRnJlZURvYyh4cGF0aERvY3VtZW50KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfWFBUUl9FTkFCTEVEICovCisKKy8qKgorICogeG1saWREb2NUZXN0OgorICogQGZpbGVuYW1lOiB0aGUgZmlsZSB0byBwYXJzZQorICogQHJlc3VsdDogdGhlIGZpbGUgd2l0aCBleHBlY3RlZCByZXN1bHQKKyAqIEBlcnI6IHRoZSBmaWxlIHdpdGggZXJyb3IgbWVzc2FnZXMKKyAqCisgKiBQYXJzZSBhIGZpbGUgY29udGFpbmluZyB4bWw6aWQgYW5kIGNoZWNrIGZvciBlcnJvcnMgYW5kIHZlcmlmeQorICogdGhhdCBYUGF0aCBxdWVyaWVzIHdpbGwgd29yayBvbiB0aGVtIGFzIGV4cGVjdGVkLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbGlkRG9jVGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyLAorICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisKKyAgICBpbnQgcmVzID0gMDsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBjaGFyICp0ZW1wOworCisgICAgeHBhdGhEb2N1bWVudCA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHwgWE1MX1BBUlNFX0RUREFUVFIgfCBYTUxfUEFSU0VfTk9FTlQpOworICAgIGlmICh4cGF0aERvY3VtZW50ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gbG9hZCAlc1xuIiwgZmlsZW5hbWUpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgdGVtcCA9IHJlc3VsdEZpbGVuYW1lKGZpbGVuYW1lLCAiIiwgIi5yZXMiKTsKKyAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiT3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgIGZhdGFsRXJyb3IoKTsKKyAgICB9CisgICAgeHBhdGhPdXRwdXQgPSBmb3Blbih0ZW1wLCAid2IiKTsKKyAgICBpZiAoeHBhdGhPdXRwdXQgPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gb3V0cHV0IGZpbGUgJXNcbiIsIHRlbXApOworICAgICAgICB4bWxGcmVlRG9jKHhwYXRoRG9jdW1lbnQpOworICAgICAgICBmcmVlKHRlbXApOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgdGVzdFhQYXRoKCJpZCgnYmFyJykiLCAwLCAwKTsKKworICAgIGZjbG9zZSh4cGF0aE91dHB1dCk7CisgICAgaWYgKHJlc3VsdCAhPSBOVUxMKSB7CisJcmV0ID0gY29tcGFyZUZpbGVzKHRlbXAsIHJlc3VsdCk7CisJaWYgKHJldCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIlJlc3VsdCBmb3IgJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSk7CisJICAgIHJlcyA9IDE7CisJfQorICAgIH0KKworICAgIGlmICh0ZW1wICE9IE5VTEwpIHsKKyAgICAgICAgdW5saW5rKHRlbXApOworICAgICAgICBmcmVlKHRlbXApOworICAgIH0KKyAgICB4bWxGcmVlRG9jKHhwYXRoRG9jdW1lbnQpOworCisgICAgaWYgKGVyciAhPSBOVUxMKSB7CisJcmV0ID0gY29tcGFyZUZpbGVNZW0oZXJyLCB0ZXN0RXJyb3JzLCB0ZXN0RXJyb3JzU2l6ZSk7CisJaWYgKHJldCAhPSAwKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgZm9yICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUpOworCSAgICByZXMgPSAxOworCX0KKyAgICB9CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKyNlbmRpZiAvKiBMSUJYTUxfREVCVUdfRU5BQkxFRCAqLworI2VuZGlmIC8qIFhQQVRIICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJVVJJIGJhc2VkIHRlc3RzCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB2b2lkCitoYW5kbGVVUkkoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpiYXNlLCBGSUxFICpvKSB7CisgICAgaW50IHJldDsKKyAgICB4bWxVUklQdHIgdXJpOworICAgIHhtbENoYXIgKnJlcyA9IE5VTEw7CisKKyAgICB1cmkgPSB4bWxDcmVhdGVVUkkoKTsKKworICAgIGlmIChiYXNlID09IE5VTEwpIHsKKwlyZXQgPSB4bWxQYXJzZVVSSVJlZmVyZW5jZSh1cmksIHN0cik7CisJaWYgKHJldCAhPSAwKQorCSAgICBmcHJpbnRmKG8sICIlcyA6IGVycm9yICVkXG4iLCBzdHIsIHJldCk7CisJZWxzZSB7CisJICAgIHhtbE5vcm1hbGl6ZVVSSVBhdGgodXJpLT5wYXRoKTsKKwkgICAgeG1sUHJpbnRVUkkobywgdXJpKTsKKwkgICAgZnByaW50ZihvLCAiXG4iKTsKKwl9CisgICAgfSBlbHNlIHsKKwlyZXMgPSB4bWxCdWlsZFVSSSgoeG1sQ2hhciAqKXN0ciwgKHhtbENoYXIgKikgYmFzZSk7CisJaWYgKHJlcyAhPSBOVUxMKSB7CisJICAgIGZwcmludGYobywgIiVzXG4iLCAoY2hhciAqKSByZXMpOworCX0KKwllbHNlCisJICAgIGZwcmludGYobywgIjo6RVJST1I6OlxuIik7CisgICAgfQorICAgIGlmIChyZXMgIT0gTlVMTCkKKwl4bWxGcmVlKHJlcyk7CisgICAgeG1sRnJlZVVSSSh1cmkpOworfQorCisvKioKKyAqIHVyaUNvbW1vblRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcworICoKKyAqIFBhcnNlIGEgZmlsZSBjb250YWluaW5nIFVSSSBhbmQgY2hlY2sgZm9yIGVycm9ycworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3VyaUNvbW1vblRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWx0LAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVyciwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpiYXNlKSB7CisgICAgY2hhciAqdGVtcDsKKyAgICBGSUxFICpvLCAqZjsKKyAgICBjaGFyIHN0clsxMDI0XTsKKyAgICBpbnQgcmVzID0gMCwgaSwgcmV0OworCisgICAgdGVtcCA9IHJlc3VsdEZpbGVuYW1lKGZpbGVuYW1lLCAiIiwgIi5yZXMiKTsKKyAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiT3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgIGZhdGFsRXJyb3IoKTsKKyAgICB9CisgICAgbyA9IGZvcGVuKHRlbXAsICJ3YiIpOworICAgIGlmIChvID09IE5VTEwpIHsKKwlmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBvcGVuIG91dHB1dCBmaWxlICVzXG4iLCB0ZW1wKTsKKyAgICAgICAgZnJlZSh0ZW1wKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBmID0gZm9wZW4oZmlsZW5hbWUsICJyYiIpOworICAgIGlmIChmID09IE5VTEwpIHsKKwlmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBvcGVuIGlucHV0IGZpbGUgJXNcbiIsIGZpbGVuYW1lKTsKKwlmY2xvc2Uobyk7CisgICAgICAgIGlmICh0ZW1wICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHVubGluayh0ZW1wKTsKKyAgICAgICAgICAgIGZyZWUodGVtcCk7CisgICAgICAgIH0KKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIHdoaWxlICgxKSB7CisJLyoKKwkgKiByZWFkIG9uZSBsaW5lIGluIHN0cmluZyBidWZmZXIuCisJICovCisJaWYgKGZnZXRzICgmc3RyWzBdLCBzaXplb2YgKHN0cikgLSAxLCBmKSA9PSBOVUxMKQorCSAgIGJyZWFrOworCisJLyoKKwkgKiByZW1vdmUgdGhlIGVuZGluZyBzcGFjZXMKKwkgKi8KKwlpID0gc3RybGVuKHN0cik7CisJd2hpbGUgKChpID4gMCkgJiYKKwkgICAgICAgKChzdHJbaSAtIDFdID09ICdcbicpIHx8IChzdHJbaSAtIDFdID09ICdccicpIHx8CisJCShzdHJbaSAtIDFdID09ICcgJykgfHwgKHN0cltpIC0gMV0gPT0gJ1x0JykpKSB7CisJICAgIGktLTsKKwkgICAgc3RyW2ldID0gMDsKKwl9CisJbmJfdGVzdHMrKzsKKwloYW5kbGVVUkkoc3RyLCBiYXNlLCBvKTsKKyAgICB9CisKKyAgICBmY2xvc2UoZik7CisgICAgZmNsb3NlKG8pOworCisgICAgaWYgKHJlc3VsdCAhPSBOVUxMKSB7CisJcmV0ID0gY29tcGFyZUZpbGVzKHRlbXAsIHJlc3VsdCk7CisJaWYgKHJldCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIlJlc3VsdCBmb3IgJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSk7CisJICAgIHJlcyA9IDE7CisJfQorICAgIH0KKyAgICBpZiAoZXJyICE9IE5VTEwpIHsKKwlyZXQgPSBjb21wYXJlRmlsZU1lbShlcnIsIHRlc3RFcnJvcnMsIHRlc3RFcnJvcnNTaXplKTsKKwlpZiAocmV0ICE9IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciBmb3IgJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSk7CisJICAgIHJlcyA9IDE7CisJfQorICAgIH0KKworICAgIGlmICh0ZW1wICE9IE5VTEwpIHsKKyAgICAgICAgdW5saW5rKHRlbXApOworICAgICAgICBmcmVlKHRlbXApOworICAgIH0KKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqCisgKiB1cmlQYXJzZVRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcworICoKKyAqIFBhcnNlIGEgZmlsZSBjb250YWluaW5nIFVSSSBhbmQgY2hlY2sgZm9yIGVycm9ycworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3VyaVBhcnNlVGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyLAorICAgICAgICAgICAgIGludCBvcHRpb25zIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4odXJpQ29tbW9uVGVzdChmaWxlbmFtZSwgcmVzdWx0LCBlcnIsIE5VTEwpKTsKK30KKworLyoqCisgKiB1cmlCYXNlVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzCisgKgorICogUGFyc2UgYSBmaWxlIGNvbnRhaW5pbmcgVVJJLCBjb21wb3NlIHRoZW0gYWdhaW5zdCBhIGZpeGVkIGJhc2UgYW5kCisgKiBjaGVjayBmb3IgZXJyb3JzCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAordXJpQmFzZVRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWx0LAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVyciwKKyAgICAgICAgICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKHVyaUNvbW1vblRlc3QoZmlsZW5hbWUsIHJlc3VsdCwgZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vZm9vLmNvbS9wYXRoL3RvL2luZGV4Lmh0bWw/b3JpZyNoZWxwIikpOworfQorCitzdGF0aWMgaW50IHVyaXBfc3VjY2VzcyA9IDE7CitzdGF0aWMgaW50IHVyaXBfY3VycmVudCA9IDA7CitzdGF0aWMgY29uc3QgY2hhciAqdXJpcF90ZXN0VVJMc1tdID0geworICAgICJ1cmlwOi8vZXhhbXBsZS5jb20vYSBiLmh0bWwiLAorICAgICJ1cmlwOi8vZXhhbXBsZS5jb20vYSUyMGIuaHRtbCIsCisgICAgImZpbGU6Ly8vcGF0aC90by9hIGIuaHRtbCIsCisgICAgImZpbGU6Ly8vcGF0aC90by9hJTIwYi5odG1sIiwKKyAgICAiL3BhdGgvdG8vYSBiLmh0bWwiLAorICAgICIvcGF0aC90by9hJTIwYi5odG1sIiwKKyAgICAidXJpcDovL2V4YW1wbGUuY29tL3Lpc3Vt6S5odG1sIiwKKyAgICAidXJpcDovL2V4YW1wbGUuY29tL3Rlc3Q/YT0xJmI9MiUyNjMmYz00I2ZvbyIsCisgICAgTlVMTAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1cmlwX3JjdnNVUkxzW10gPSB7CisgICAgLyogaXQgaXMgYW4gVVJJIHRoZSBzdHJpbmdzIG11c3QgYmUgZXNjYXBlZCAqLworICAgICJ1cmlwOi8vZXhhbXBsZS5jb20vYSUyMGIuaHRtbCIsCisgICAgLyogY2hlY2sgdGhhdCAlIGVzY2FwaW5nIGlzIG5vdCBicm9rZW4gKi8KKyAgICAidXJpcDovL2V4YW1wbGUuY29tL2ElMjBiLmh0bWwiLAorICAgIC8qIGl0J3MgYW4gVVJJIHBhdGggdGhlIHN0cmluZ3MgbXVzdCBiZSBlc2NhcGVkICovCisgICAgImZpbGU6Ly8vcGF0aC90by9hJTIwYi5odG1sIiwKKyAgICAvKiBjaGVjayB0aGF0ICUgZXNjYXBpbmcgaXMgbm90IGJyb2tlbiAqLworICAgICJmaWxlOi8vL3BhdGgvdG8vYSUyMGIuaHRtbCIsCisgICAgLyogdGhpcyBpcyBub3QgYW4gVVJJLCB0aGlzIGlzIGEgcGF0aCwgc28gdGhpcyBzaG91bGQgbm90IGJlIGVzY2FwZWQgKi8KKyAgICAiL3BhdGgvdG8vYSBiLmh0bWwiLAorICAgIC8qIGNoZWNrIHRoYXQgcGF0aHMgd2l0aCAlIGFyZSBub3QgYnJva2VuICovCisgICAgIi9wYXRoL3RvL2ElMjBiLmh0bWwiLAorICAgIC8qIG91dCBvZiBjb250ZXh0IHRoZSBlbmNvZGluZyBjYW4ndCBiZSBndWVzc2VkIGJ5dGUgYnkgYnl0ZSBjb252ZXJzaW9uICovCisgICAgInVyaXA6Ly9leGFtcGxlLmNvbS9yJUU5c3VtJUU5Lmh0bWwiLAorICAgIC8qIHZlcmlmeSB3ZSBkb24ndCBkZXN0cm95IFVSSXMgZXNwZWNpYWxseSB0aGUgcXVlcnkgcGFydCAqLworICAgICJ1cmlwOi8vZXhhbXBsZS5jb20vdGVzdD9hPTEmYj0yJTI2MyZjPTQjZm9vIiwKKyAgICBOVUxMCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVyaXBfcmVzID0gIjxsaXN0Lz4iOworc3RhdGljIGNvbnN0IGNoYXIgKnVyaXBfY3VyID0gTlVMTDsKK3N0YXRpYyBpbnQgdXJpcF9ybGVuOworCisvKioKKyAqIHVyaXBNYXRjaDoKKyAqIEBVUkk6IGFuIFVSSSB0byB0ZXN0CisgKgorICogQ2hlY2sgZm9yIGFuIHVyaXA6IHF1ZXJ5CisgKgorICogUmV0dXJucyAxIGlmIHllcyBhbmQgMCBpZiBhbm90aGVyIElucHV0IG1vZHVsZSBzaG91bGQgYmUgdXNlZAorICovCitzdGF0aWMgaW50Cit1cmlwTWF0Y2goY29uc3QgY2hhciAqIFVSSSkgeworICAgIGlmICgoVVJJID09IE5VTEwpIHx8ICghc3RyY21wKFVSSSwgImZpbGU6Ly8vZXRjL3htbC9jYXRhbG9nIikpKQorICAgICAgICByZXR1cm4oMCk7CisgICAgLyogVmVyaWZ5IHdlIHJlY2VpdmVkIHRoZSBlc2NhcGVkIFVSTCAqLworICAgIGlmIChzdHJjbXAodXJpcF9yY3ZzVVJMc1t1cmlwX2N1cnJlbnRdLCBVUkkpKQorCXVyaXBfc3VjY2VzcyA9IDA7CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHVyaXBPcGVuOgorICogQFVSSTogYW4gVVJJIHRvIHRlc3QKKyAqCisgKiBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSB1cmlwOiBxdWVyeSBoYW5kbGVyLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGx5CisgKiB0aGUgdXJpcF9jdXJyZW50IHBvaW50ZXIuLi4KKyAqCisgKiBSZXR1cm5zIGFuIElucHV0IGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkICoKK3VyaXBPcGVuKGNvbnN0IGNoYXIgKiBVUkkpIHsKKyAgICBpZiAoKFVSSSA9PSBOVUxMKSB8fCAoIXN0cmNtcChVUkksICJmaWxlOi8vL2V0Yy94bWwvY2F0YWxvZyIpKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIC8qIFZlcmlmeSB3ZSByZWNlaXZlZCB0aGUgZXNjYXBlZCBVUkwgKi8KKyAgICBpZiAoc3RyY21wKHVyaXBfcmN2c1VSTHNbdXJpcF9jdXJyZW50XSwgVVJJKSkKKwl1cmlwX3N1Y2Nlc3MgPSAwOworICAgIHVyaXBfY3VyID0gdXJpcF9yZXM7CisgICAgdXJpcF9ybGVuID0gc3RybGVuKHVyaXBfcmVzKTsKKyAgICByZXR1cm4oKHZvaWQgKikgdXJpcF9jdXIpOworfQorCisvKioKKyAqIHVyaXBDbG9zZToKKyAqIEBjb250ZXh0OiB0aGUgcmVhZCBjb250ZXh0CisgKgorICogQ2xvc2UgdGhlIHVyaXA6IHF1ZXJ5IGhhbmRsZXIKKyAqCisgKiBSZXR1cm5zIDAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit1cmlwQ2xvc2Uodm9pZCAqIGNvbnRleHQpIHsKKyAgICBpZiAoY29udGV4dCA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIHVyaXBfY3VyID0gTlVMTDsKKyAgICB1cmlwX3JsZW4gPSAwOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB1cmlwUmVhZDoKKyAqIEBjb250ZXh0OiB0aGUgcmVhZCBjb250ZXh0CisgKiBAYnVmZmVyOiB3aGVyZSB0byBzdG9yZSBkYXRhCisgKiBAbGVuOiBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZAorICoKKyAqIEltcGxlbWVudCBhbiB1cmlwOiBxdWVyeSByZWFkLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAordXJpcFJlYWQodm9pZCAqIGNvbnRleHQsIGNoYXIgKiBidWZmZXIsIGludCBsZW4pIHsKKyAgIGNvbnN0IGNoYXIgKnB0ciA9IChjb25zdCBjaGFyICopIGNvbnRleHQ7CisKKyAgIGlmICgoY29udGV4dCA9PSBOVUxMKSB8fCAoYnVmZmVyID09IE5VTEwpIHx8IChsZW4gPCAwKSkKKyAgICAgICByZXR1cm4oLTEpOworCisgICBpZiAobGVuID4gdXJpcF9ybGVuKSBsZW4gPSB1cmlwX3JsZW47CisgICBtZW1jcHkoYnVmZmVyLCBwdHIsIGxlbik7CisgICB1cmlwX3JsZW4gLT0gbGVuOworICAgcmV0dXJuKGxlbik7Cit9CisKK3N0YXRpYyBpbnQKK3VyaXBfY2hlY2tVUkwoY29uc3QgY2hhciAqVVJMKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKFVSTCwgTlVMTCwgMCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHhtbEZyZWVEb2MoZG9jKTsKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogdXJpUGF0aFRlc3Q6CisgKiBAZmlsZW5hbWU6IGlnbm9yZWQKKyAqIEByZXN1bHQ6IGlnbm9yZWQKKyAqIEBlcnI6IGlnbm9yZWQKKyAqCisgKiBSdW4gYSBzZXQgb2YgdGVzdHMgdG8gY2hlY2sgaG93IFBhdGggYW5kIFVSSSBhcmUgaGFuZGxlZCBiZWZvcmUKKyAqIGJlaW5nIHBhc3NlZCB0byB0aGUgSS9PIGxheWVyCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAordXJpUGF0aFRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHQgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICplcnIgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaW50IHBhcnNlZDsKKyAgICBpbnQgZmFpbHVyZXMgPSAwOworCisgICAgLyoKKyAgICAgKiByZWdpc3RlciB0aGUgbmV3IEkvTyBoYW5kbGVycworICAgICAqLworICAgIGlmICh4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzKHVyaXBNYXRjaCwgdXJpcE9wZW4sIHVyaXBSZWFkLCB1cmlwQ2xvc2UpIDwgMCkKKyAgICB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIHJlZ2lzdGVyIEhUVFAgaGFuZGxlclxuIik7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBmb3IgKHVyaXBfY3VycmVudCA9IDA7dXJpcF90ZXN0VVJMc1t1cmlwX2N1cnJlbnRdICE9IE5VTEw7dXJpcF9jdXJyZW50KyspIHsKKyAgICAgICAgdXJpcF9zdWNjZXNzID0gMTsKKyAgICAgICAgcGFyc2VkID0gdXJpcF9jaGVja1VSTCh1cmlwX3Rlc3RVUkxzW3VyaXBfY3VycmVudF0pOworCWlmICh1cmlwX3N1Y2Nlc3MgIT0gMSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0aGUgVVJMIHBhc3NpbmcgdGVzdCBmb3IgJXMiLAorCSAgICAgICAgICAgIHVyaXBfdGVzdFVSTHNbdXJpcF9jdXJyZW50XSk7CisJICAgIGZhaWx1cmVzKys7CisJfSBlbHNlIGlmIChwYXJzZWQgIT0gMSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0aGUgcGFyc2luZyB0ZXN0IGZvciAlcyIsCisJICAgICAgICAgICAgdXJpcF90ZXN0VVJMc1t1cmlwX2N1cnJlbnRdKTsKKwkgICAgZmFpbHVyZXMrKzsKKwl9CisJbmJfdGVzdHMrKzsKKyAgICB9CisKKyAgICB4bWxQb3BJbnB1dENhbGxiYWNrcygpOworICAgIHJldHVybihmYWlsdXJlcyk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJU2NoZW1hcyB0ZXN0cwkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludAorc2NoZW1hc09uZVRlc3QoY29uc3QgY2hhciAqc2NoLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHQsCisJICAgICAgIGNvbnN0IGNoYXIgKmVyciwKKwkgICAgICAgaW50IG9wdGlvbnMsCisJICAgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWFzKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dDsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgdmFsaWRSZXN1bHQgPSAwOworICAgIGNoYXIgKnRlbXA7CisgICAgRklMRSAqc2NoZW1hc091dHB1dDsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gcGFyc2UgaW5zdGFuY2UgJXMgZm9yICVzXG4iLCBmaWxlbmFtZSwgc2NoKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIHRlbXAgPSByZXN1bHRGaWxlbmFtZShyZXN1bHQsICIiLCAiLnJlcyIpOworICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgZmF0YWxFcnJvcigpOworICAgIH0KKyAgICBzY2hlbWFzT3V0cHV0ID0gZm9wZW4odGVtcCwgIndiIik7CisgICAgaWYgKHNjaGVtYXNPdXRwdXQgPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gb3V0cHV0IGZpbGUgJXNcbiIsIHRlbXApOworCXhtbEZyZWVEb2MoZG9jKTsKKyAgICAgICAgZnJlZSh0ZW1wKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIGN0eHQgPSB4bWxTY2hlbWFOZXdWYWxpZEN0eHQoc2NoZW1hcyk7CisgICAgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMoY3R4dCwKKyAgICAgICAgICh4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKyAgICAgICAgICh4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorCSBjdHh0KTsKKyAgICB2YWxpZFJlc3VsdCA9IHhtbFNjaGVtYVZhbGlkYXRlRG9jKGN0eHQsIGRvYyk7CisgICAgaWYgKHZhbGlkUmVzdWx0ID09IDApIHsKKwlmcHJpbnRmKHNjaGVtYXNPdXRwdXQsICIlcyB2YWxpZGF0ZXNcbiIsIGZpbGVuYW1lKTsKKyAgICB9IGVsc2UgaWYgKHZhbGlkUmVzdWx0ID4gMCkgeworCWZwcmludGYoc2NoZW1hc091dHB1dCwgIiVzIGZhaWxzIHRvIHZhbGlkYXRlXG4iLCBmaWxlbmFtZSk7CisgICAgfSBlbHNlIHsKKwlmcHJpbnRmKHNjaGVtYXNPdXRwdXQsICIlcyB2YWxpZGF0aW9uIGdlbmVyYXRlZCBhbiBpbnRlcm5hbCBlcnJvclxuIiwKKwkgICAgICAgZmlsZW5hbWUpOworICAgIH0KKyAgICBmY2xvc2Uoc2NoZW1hc091dHB1dCk7CisgICAgaWYgKHJlc3VsdCkgeworCWlmIChjb21wYXJlRmlsZXModGVtcCwgcmVzdWx0KSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIlJlc3VsdCBmb3IgJXMgb24gJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSwgc2NoKTsKKwkgICAgcmV0ID0gMTsKKwl9CisgICAgfQorICAgIGlmICh0ZW1wICE9IE5VTEwpIHsKKyAgICAgICAgdW5saW5rKHRlbXApOworICAgICAgICBmcmVlKHRlbXApOworICAgIH0KKworICAgIGlmICgodmFsaWRSZXN1bHQgIT0gMCkgJiYgKGVyciAhPSBOVUxMKSkgeworCWlmIChjb21wYXJlRmlsZU1lbShlcnIsIHRlc3RFcnJvcnMsIHRlc3RFcnJvcnNTaXplKSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIGZvciAlcyBvbiAlcyBmYWlsZWRcbiIsIGZpbGVuYW1lLCBzY2gpOworCSAgICByZXQgPSAxOworCX0KKyAgICB9CisKKyAgICB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0KGN0eHQpOworICAgIHhtbEZyZWVEb2MoZG9jKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKy8qKgorICogc2NoZW1hc1Rlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBzY2hlbWFzIGZpbGUKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzCisgKgorICogUGFyc2UgYSBmaWxlIGNvbnRhaW5pbmcgVVJJLCBjb21wb3NlIHRoZW0gYWdhaW5zdCBhIGZpeGVkIGJhc2UgYW5kCisgKiBjaGVjayBmb3IgZXJyb3JzCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorc2NoZW1hc1Rlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyciBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICBjb25zdCBjaGFyICpiYXNlID0gYmFzZUZpbGVuYW1lKGZpbGVuYW1lKTsKKyAgICBjb25zdCBjaGFyICpiYXNlMjsKKyAgICBjb25zdCBjaGFyICppbnN0YW5jZTsKKyAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sU2NoZW1hUHRyIHNjaGVtYXM7CisgICAgaW50IHJlcyA9IDAsIGxlbiwgcmV0OworICAgIGNoYXIgcGF0dGVybls1MDBdOworICAgIGNoYXIgcHJlZml4WzUwMF07CisgICAgY2hhciByZXN1bHRbNTAwXTsKKyAgICBjaGFyIGVycls1MDBdOworICAgIGdsb2JfdCBnbG9iYnVmOworICAgIHNpemVfdCBpOworICAgIGNoYXIgY291bnQgPSAwOworCisgICAgLyogZmlyc3QgY29tcGlsZSB0aGUgc2NoZW1hcyBpZiBwb3NzaWJsZSAqLworICAgIGN0eHQgPSB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0KGZpbGVuYW1lKTsKKyAgICB4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMoY3R4dCwKKyAgICAgICAgICh4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKyAgICAgICAgICh4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorCSBjdHh0KTsKKyAgICBzY2hlbWFzID0geG1sU2NoZW1hUGFyc2UoY3R4dCk7CisgICAgeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoY3R4dCk7CisKKyAgICAvKgorICAgICAqIG1vc3Qgb2YgdGhlIG1lc3MgaXMgYWJvdXQgdGhlIG91dHB1dCBmaWxlbmFtZXMgZ2VuZXJhdGVkIGJ5IHRoZSBNYWtlZmlsZQorICAgICAqLworICAgIGxlbiA9IHN0cmxlbihiYXNlKTsKKyAgICBpZiAoKGxlbiA+IDQ5OSkgfHwgKGxlbiA8IDUpKSB7CisgICAgICAgIHhtbFNjaGVtYUZyZWUoc2NoZW1hcyk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgbGVuIC09IDQ7IC8qIHJlbW92ZSB0cmFpbGluZyAueHNkICovCisgICAgaWYgKGJhc2VbbGVuIC0gMl0gPT0gJ18nKSB7CisgICAgICAgIGxlbiAtPSAyOyAvKiByZW1vdmUgc3VidGVzdCBudW1iZXIgKi8KKyAgICB9CisgICAgaWYgKGJhc2VbbGVuIC0gMl0gPT0gJ18nKSB7CisgICAgICAgIGxlbiAtPSAyOyAvKiByZW1vdmUgc3VidGVzdCBudW1iZXIgKi8KKyAgICB9CisgICAgbWVtY3B5KHByZWZpeCwgYmFzZSwgbGVuKTsKKyAgICBwcmVmaXhbbGVuXSA9IDA7CisKKyAgICBzbnByaW50ZihwYXR0ZXJuLCA0OTksICIuL3Rlc3Qvc2NoZW1hcy8lc18/LnhtbCIsIHByZWZpeCk7CisgICAgcGF0dGVybls0OTldID0gMDsKKworICAgIGlmIChiYXNlW2xlbl0gPT0gJ18nKSB7CisgICAgICAgIGxlbiArPSAyOworCW1lbWNweShwcmVmaXgsIGJhc2UsIGxlbik7CisJcHJlZml4W2xlbl0gPSAwOworICAgIH0KKworICAgIGdsb2JidWYuZ2xfb2ZmcyA9IDA7CisgICAgZ2xvYihwYXR0ZXJuLCBHTE9CX0RPT0ZGUywgTlVMTCwgJmdsb2JidWYpOworICAgIGZvciAoaSA9IDA7aSA8IGdsb2JidWYuZ2xfcGF0aGM7aSsrKSB7CisgICAgICAgIHRlc3RFcnJvcnNTaXplID0gMDsKKwl0ZXN0RXJyb3JzWzBdID0gMDsKKyAgICAgICAgaW5zdGFuY2UgPSBnbG9iYnVmLmdsX3BhdGh2W2ldOworCWJhc2UyID0gYmFzZUZpbGVuYW1lKGluc3RhbmNlKTsKKwlsZW4gPSBzdHJsZW4oYmFzZTIpOworCWlmICgobGVuID4gNikgJiYgKGJhc2UyW2xlbiAtIDZdID09ICdfJykpIHsKKwkgICAgY291bnQgPSBiYXNlMltsZW4gLSA1XTsKKwkgICAgc25wcmludGYocmVzdWx0LCA0OTksICJyZXN1bHQvc2NoZW1hcy8lc18lYyIsCisJCSAgICAgcHJlZml4LCBjb3VudCk7CisJICAgIHJlc3VsdFs0OTldID0gMDsKKwkgICAgc25wcmludGYoZXJyLCA0OTksICJyZXN1bHQvc2NoZW1hcy8lc18lYy5lcnIiLAorCQkgICAgIHByZWZpeCwgY291bnQpOworCSAgICBlcnJbNDk5XSA9IDA7CisJfSBlbHNlIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJkb24ndCBrbm93IGhvdyB0byBwcm9jZXNzICVzXG4iLCBpbnN0YW5jZSk7CisJICAgIGNvbnRpbnVlOworCX0KKwlpZiAoc2NoZW1hcyA9PSBOVUxMKSB7CisJfSBlbHNlIHsKKwkgICAgbmJfdGVzdHMrKzsKKwkgICAgcmV0ID0gc2NoZW1hc09uZVRlc3QoZmlsZW5hbWUsIGluc3RhbmNlLCByZXN1bHQsIGVyciwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucywgc2NoZW1hcyk7CisJICAgIGlmIChyZXQgIT0gMCkKKwkJcmVzID0gcmV0OworCX0KKyAgICB9CisgICAgZ2xvYmZyZWUoJmdsb2JidWYpOworICAgIHhtbFNjaGVtYUZyZWUoc2NoZW1hcyk7CisKKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVNjaGVtYXMgdGVzdHMJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQKK3JuZ09uZVRlc3QoY29uc3QgY2hhciAqc2NoLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHQsCisJICAgICAgIGNvbnN0IGNoYXIgKmVyciwKKwkgICAgICAgaW50IG9wdGlvbnMsCisJICAgICAgIHhtbFJlbGF4TkdQdHIgc2NoZW1hcykgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0OworICAgIGludCByZXQgPSAwOworICAgIGNoYXIgKnRlbXA7CisgICAgRklMRSAqc2NoZW1hc091dHB1dDsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gcGFyc2UgaW5zdGFuY2UgJXMgZm9yICVzXG4iLCBmaWxlbmFtZSwgc2NoKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIHRlbXAgPSByZXN1bHRGaWxlbmFtZShyZXN1bHQsICIiLCAiLnJlcyIpOworICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgZmF0YWxFcnJvcigpOworICAgIH0KKyAgICBzY2hlbWFzT3V0cHV0ID0gZm9wZW4odGVtcCwgIndiIik7CisgICAgaWYgKHNjaGVtYXNPdXRwdXQgPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gb3V0cHV0IGZpbGUgJXNcbiIsIHRlbXApOworCXhtbEZyZWVEb2MoZG9jKTsKKyAgICAgICAgZnJlZSh0ZW1wKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIGN0eHQgPSB4bWxSZWxheE5HTmV3VmFsaWRDdHh0KHNjaGVtYXMpOworICAgIHhtbFJlbGF4TkdTZXRWYWxpZEVycm9ycyhjdHh0LAorICAgICAgICAgKHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKyAgICAgICAgICh4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYykgdGVzdEVycm9ySGFuZGxlciwKKwkgY3R4dCk7CisgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRG9jKGN0eHQsIGRvYyk7CisgICAgaWYgKHJldCA9PSAwKSB7CisJdGVzdEVycm9ySGFuZGxlcihOVUxMLCAiJXMgdmFsaWRhdGVzXG4iLCBmaWxlbmFtZSk7CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisJdGVzdEVycm9ySGFuZGxlcihOVUxMLCAiJXMgZmFpbHMgdG8gdmFsaWRhdGVcbiIsIGZpbGVuYW1lKTsKKyAgICB9IGVsc2UgeworCXRlc3RFcnJvckhhbmRsZXIoTlVMTCwgIiVzIHZhbGlkYXRpb24gZ2VuZXJhdGVkIGFuIGludGVybmFsIGVycm9yXG4iLAorCSAgICAgICBmaWxlbmFtZSk7CisgICAgfQorICAgIGZjbG9zZShzY2hlbWFzT3V0cHV0KTsKKyAgICByZXQgPSAwOworICAgIGlmIChyZXN1bHQpIHsKKwlpZiAoY29tcGFyZUZpbGVzKHRlbXAsIHJlc3VsdCkpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJSZXN1bHQgZm9yICVzIG9uICVzIGZhaWxlZFxuIiwgZmlsZW5hbWUsIHNjaCk7CisJICAgIHJldCA9IDE7CisJfQorICAgIH0KKyAgICBpZiAodGVtcCAhPSBOVUxMKSB7CisgICAgICAgIHVubGluayh0ZW1wKTsKKyAgICAgICAgZnJlZSh0ZW1wKTsKKyAgICB9CisKKyAgICBpZiAoZXJyICE9IE5VTEwpIHsKKwlpZiAoY29tcGFyZUZpbGVNZW0oZXJyLCB0ZXN0RXJyb3JzLCB0ZXN0RXJyb3JzU2l6ZSkpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciBmb3IgJXMgb24gJXMgZmFpbGVkXG4iLCBmaWxlbmFtZSwgc2NoKTsKKwkgICAgcmV0ID0gMTsKKwkgICAgcHJpbnRmKCIlcyIsIHRlc3RFcnJvcnMpOworCX0KKyAgICB9CisKKworICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KGN0eHQpOworICAgIHhtbEZyZWVEb2MoZG9jKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKy8qKgorICogcm5nVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIHNjaGVtYXMgZmlsZQorICogQHJlc3VsdDogdGhlIGZpbGUgd2l0aCBleHBlY3RlZCByZXN1bHQKKyAqIEBlcnI6IHRoZSBmaWxlIHdpdGggZXJyb3IgbWVzc2FnZXMKKyAqCisgKiBQYXJzZSBhbiBSTkcgc2NoZW1hcyBhbmQgdGhlbiBhcHBseSBpdCB0byB0aGUgcmVsYXRlZCAueG1sCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorcm5nVGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlc3VsIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICBjb25zdCBjaGFyICplcnJyIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgIGNvbnN0IGNoYXIgKmJhc2UgPSBiYXNlRmlsZW5hbWUoZmlsZW5hbWUpOworICAgIGNvbnN0IGNoYXIgKmJhc2UyOworICAgIGNvbnN0IGNoYXIgKmluc3RhbmNlOworICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUmVsYXhOR1B0ciBzY2hlbWFzOworICAgIGludCByZXMgPSAwLCBsZW4sIHJldCA9IDA7CisgICAgY2hhciBwYXR0ZXJuWzUwMF07CisgICAgY2hhciBwcmVmaXhbNTAwXTsKKyAgICBjaGFyIHJlc3VsdFs1MDBdOworICAgIGNoYXIgZXJyWzUwMF07CisgICAgZ2xvYl90IGdsb2JidWY7CisgICAgc2l6ZV90IGk7CisgICAgY2hhciBjb3VudCA9IDA7CisKKyAgICAvKiBmaXJzdCBjb21waWxlIHRoZSBzY2hlbWFzIGlmIHBvc3NpYmxlICovCisgICAgY3R4dCA9IHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0KGZpbGVuYW1lKTsKKyAgICB4bWxSZWxheE5HU2V0UGFyc2VyRXJyb3JzKGN0eHQsCisgICAgICAgICAoeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorICAgICAgICAgKHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jKSB0ZXN0RXJyb3JIYW5kbGVyLAorCSBjdHh0KTsKKyAgICBzY2hlbWFzID0geG1sUmVsYXhOR1BhcnNlKGN0eHQpOworICAgIHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKworICAgIC8qCisgICAgICogbW9zdCBvZiB0aGUgbWVzcyBpcyBhYm91dCB0aGUgb3V0cHV0IGZpbGVuYW1lcyBnZW5lcmF0ZWQgYnkgdGhlIE1ha2VmaWxlCisgICAgICovCisgICAgbGVuID0gc3RybGVuKGJhc2UpOworICAgIGlmICgobGVuID4gNDk5KSB8fCAobGVuIDwgNSkpIHsKKyAgICAgICAgeG1sUmVsYXhOR0ZyZWUoc2NoZW1hcyk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgbGVuIC09IDQ7IC8qIHJlbW92ZSB0cmFpbGluZyAucm5nICovCisgICAgbWVtY3B5KHByZWZpeCwgYmFzZSwgbGVuKTsKKyAgICBwcmVmaXhbbGVuXSA9IDA7CisKKyAgICBzbnByaW50ZihwYXR0ZXJuLCA0OTksICIuL3Rlc3QvcmVsYXhuZy8lc18/LnhtbCIsIHByZWZpeCk7CisgICAgcGF0dGVybls0OTldID0gMDsKKworICAgIGdsb2JidWYuZ2xfb2ZmcyA9IDA7CisgICAgZ2xvYihwYXR0ZXJuLCBHTE9CX0RPT0ZGUywgTlVMTCwgJmdsb2JidWYpOworICAgIGZvciAoaSA9IDA7aSA8IGdsb2JidWYuZ2xfcGF0aGM7aSsrKSB7CisgICAgICAgIHRlc3RFcnJvcnNTaXplID0gMDsKKwl0ZXN0RXJyb3JzWzBdID0gMDsKKyAgICAgICAgaW5zdGFuY2UgPSBnbG9iYnVmLmdsX3BhdGh2W2ldOworCWJhc2UyID0gYmFzZUZpbGVuYW1lKGluc3RhbmNlKTsKKwlsZW4gPSBzdHJsZW4oYmFzZTIpOworCWlmICgobGVuID4gNikgJiYgKGJhc2UyW2xlbiAtIDZdID09ICdfJykpIHsKKwkgICAgY291bnQgPSBiYXNlMltsZW4gLSA1XTsKKwkgICAgc25wcmludGYocmVzdWx0LCA0OTksICJyZXN1bHQvcmVsYXhuZy8lc18lYyIsCisJCSAgICAgcHJlZml4LCBjb3VudCk7CisJICAgIHJlc3VsdFs0OTldID0gMDsKKwkgICAgc25wcmludGYoZXJyLCA0OTksICJyZXN1bHQvcmVsYXhuZy8lc18lYy5lcnIiLAorCQkgICAgIHByZWZpeCwgY291bnQpOworCSAgICBlcnJbNDk5XSA9IDA7CisJfSBlbHNlIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJkb24ndCBrbm93IGhvdyB0byBwcm9jZXNzICVzXG4iLCBpbnN0YW5jZSk7CisJICAgIGNvbnRpbnVlOworCX0KKwlpZiAoc2NoZW1hcyA9PSBOVUxMKSB7CisJfSBlbHNlIHsKKwkgICAgbmJfdGVzdHMrKzsKKwkgICAgcmV0ID0gcm5nT25lVGVzdChmaWxlbmFtZSwgaW5zdGFuY2UsIHJlc3VsdCwgZXJyLAorCSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLCBzY2hlbWFzKTsKKwkgICAgaWYgKHJlcyAhPSAwKQorCQlyZXQgPSByZXM7CisJfQorICAgIH0KKyAgICBnbG9iZnJlZSgmZ2xvYmJ1Zik7CisgICAgeG1sUmVsYXhOR0ZyZWUoc2NoZW1hcyk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorLyoqCisgKiBybmdTdHJlYW1UZXN0OgorICogQGZpbGVuYW1lOiB0aGUgc2NoZW1hcyBmaWxlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcworICoKKyAqIFBhcnNlIGEgc2V0IG9mIGZpbGVzIHdpdGggc3RyZWFtaW5nLCBhcHBseWluZyBhbiBSTkcgc2NoZW1hcworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3JuZ1N0cmVhbVRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyciBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICBjb25zdCBjaGFyICpiYXNlID0gYmFzZUZpbGVuYW1lKGZpbGVuYW1lKTsKKyAgICBjb25zdCBjaGFyICpiYXNlMjsKKyAgICBjb25zdCBjaGFyICppbnN0YW5jZTsKKyAgICBpbnQgcmVzID0gMCwgbGVuLCByZXQ7CisgICAgY2hhciBwYXR0ZXJuWzUwMF07CisgICAgY2hhciBwcmVmaXhbNTAwXTsKKyAgICBjaGFyIHJlc3VsdFs1MDBdOworICAgIGNoYXIgZXJyWzUwMF07CisgICAgZ2xvYl90IGdsb2JidWY7CisgICAgc2l6ZV90IGk7CisgICAgY2hhciBjb3VudCA9IDA7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgaW50IGRpc2FibGVfZXJyID0gMDsKKworICAgIC8qCisgICAgICogbW9zdCBvZiB0aGUgbWVzcyBpcyBhYm91dCB0aGUgb3V0cHV0IGZpbGVuYW1lcyBnZW5lcmF0ZWQgYnkgdGhlIE1ha2VmaWxlCisgICAgICovCisgICAgbGVuID0gc3RybGVuKGJhc2UpOworICAgIGlmICgobGVuID4gNDk5KSB8fCAobGVuIDwgNSkpIHsKKwlmcHJpbnRmKHN0ZGVyciwgImxlbihiYXNlKSA9PSAlZCAhXG4iLCBsZW4pOworCXJldHVybigtMSk7CisgICAgfQorICAgIGxlbiAtPSA0OyAvKiByZW1vdmUgdHJhaWxpbmcgLnJuZyAqLworICAgIG1lbWNweShwcmVmaXgsIGJhc2UsIGxlbik7CisgICAgcHJlZml4W2xlbl0gPSAwOworCisgICAgLyoKKyAgICAgKiBzdHJpY3RseSB1bmlmeWluZyB0aGUgZXJyb3IgbWVzc2FnZXMgaXMgbmVhcmx5IGltcG9zc2libGUgdGhpcworICAgICAqIGhhY2sgaXMgYWxzbyBkb25lIGluIHRoZSBNYWtlZmlsZQorICAgICAqLworICAgIGlmICgoIXN0cmNtcChwcmVmaXgsICJ0dXRvcjEwXzEiKSkgfHwgKCFzdHJjbXAocHJlZml4LCAidHV0b3IxMF8yIikpIHx8CisgICAgICAgICghc3RyY21wKHByZWZpeCwgInR1dG9yM18yIikpIHx8ICghc3RyY21wKHByZWZpeCwgIjMwNzM3NyIpKSB8fAorICAgICAgICAoIXN0cmNtcChwcmVmaXgsICJ0dXRvcjhfMiIpKSkKKwlkaXNhYmxlX2VyciA9IDE7CisKKyAgICBzbnByaW50ZihwYXR0ZXJuLCA0OTksICIuL3Rlc3QvcmVsYXhuZy8lc18/LnhtbCIsIHByZWZpeCk7CisgICAgcGF0dGVybls0OTldID0gMDsKKworICAgIGdsb2JidWYuZ2xfb2ZmcyA9IDA7CisgICAgZ2xvYihwYXR0ZXJuLCBHTE9CX0RPT0ZGUywgTlVMTCwgJmdsb2JidWYpOworICAgIGZvciAoaSA9IDA7aSA8IGdsb2JidWYuZ2xfcGF0aGM7aSsrKSB7CisgICAgICAgIHRlc3RFcnJvcnNTaXplID0gMDsKKwl0ZXN0RXJyb3JzWzBdID0gMDsKKyAgICAgICAgaW5zdGFuY2UgPSBnbG9iYnVmLmdsX3BhdGh2W2ldOworCWJhc2UyID0gYmFzZUZpbGVuYW1lKGluc3RhbmNlKTsKKwlsZW4gPSBzdHJsZW4oYmFzZTIpOworCWlmICgobGVuID4gNikgJiYgKGJhc2UyW2xlbiAtIDZdID09ICdfJykpIHsKKwkgICAgY291bnQgPSBiYXNlMltsZW4gLSA1XTsKKwkgICAgc25wcmludGYocmVzdWx0LCA0OTksICJyZXN1bHQvcmVsYXhuZy8lc18lYyIsCisJCSAgICAgcHJlZml4LCBjb3VudCk7CisJICAgIHJlc3VsdFs0OTldID0gMDsKKwkgICAgc25wcmludGYoZXJyLCA0OTksICJyZXN1bHQvcmVsYXhuZy8lc18lYy5lcnIiLAorCQkgICAgIHByZWZpeCwgY291bnQpOworCSAgICBlcnJbNDk5XSA9IDA7CisJfSBlbHNlIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJkb24ndCBrbm93IGhvdyB0byBwcm9jZXNzICVzXG4iLCBpbnN0YW5jZSk7CisJICAgIGNvbnRpbnVlOworCX0KKwlyZWFkZXIgPSB4bWxSZWFkZXJGb3JGaWxlKGluc3RhbmNlLCBOVUxMLCBvcHRpb25zKTsKKwlpZiAocmVhZGVyID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gYnVpbGQgcmVkZXIgZm9yICVzXG4iLCBpbnN0YW5jZSk7CisJfQorCWlmIChkaXNhYmxlX2VyciA9PSAxKQorCSAgICByZXQgPSBzdHJlYW1Qcm9jZXNzVGVzdChpbnN0YW5jZSwgcmVzdWx0LCBOVUxMLCByZWFkZXIsIGZpbGVuYW1lKTsKKwllbHNlCisJICAgIHJldCA9IHN0cmVhbVByb2Nlc3NUZXN0KGluc3RhbmNlLCByZXN1bHQsIGVyciwgcmVhZGVyLCBmaWxlbmFtZSk7CisJeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKwlpZiAocmV0ICE9IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJpbnN0YW5jZSAlcyBmYWlsZWRcbiIsIGluc3RhbmNlKTsKKwkgICAgcmVzID0gcmV0OworCX0KKyAgICB9CisgICAgZ2xvYmZyZWUoJmdsb2JidWYpOworCisgICAgcmV0dXJuKHJlcyk7Cit9CisjZW5kaWYgLyogUkVBREVSICovCisKKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVBhdHRlcm5zIHRlc3RzCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBwYXR0ZXJuTm9kZShGSUxFICpvdXQsIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0dGVybiwgeG1sUGF0dGVyblB0ciBwYXR0ZXJuYywKKwkJCXhtbFN0cmVhbUN0eHRQdHIgcGF0c3RyZWFtKSB7CisgICAgeG1sQ2hhciAqcGF0aCA9IE5VTEw7CisgICAgaW50IG1hdGNoID0gLTE7CisgICAgaW50IHR5cGUsIGVtcHR5OworCisgICAgdHlwZSA9IHhtbFRleHRSZWFkZXJOb2RlVHlwZShyZWFkZXIpOworICAgIGVtcHR5ID0geG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50KHJlYWRlcik7CisKKyAgICBpZiAodHlwZSA9PSBYTUxfUkVBREVSX1RZUEVfRUxFTUVOVCkgeworCS8qIGRvIHRoZSBjaGVjayBvbmx5IG9uIGVsZW1lbnQgc3RhcnQgKi8KKwltYXRjaCA9IHhtbFBhdHRlcm5NYXRjaChwYXR0ZXJuYywgeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlKHJlYWRlcikpOworCisJaWYgKG1hdGNoKSB7CisJICAgIHBhdGggPSB4bWxHZXROb2RlUGF0aCh4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUocmVhZGVyKSk7CisJICAgIGZwcmludGYob3V0LCAiTm9kZSAlcyBtYXRjaGVzIHBhdHRlcm4gJXNcbiIsIHBhdGgsIHBhdHRlcm4pOworCX0KKyAgICB9CisgICAgaWYgKHBhdHN0cmVhbSAhPSBOVUxMKSB7CisJaW50IHJldDsKKworCWlmICh0eXBlID09IFhNTF9SRUFERVJfVFlQRV9FTEVNRU5UKSB7CisJICAgIHJldCA9IHhtbFN0cmVhbVB1c2gocGF0c3RyZWFtLAorCQkJCXhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZShyZWFkZXIpLAorCQkJCXhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaShyZWFkZXIpKTsKKwkgICAgaWYgKHJldCA8IDApIHsKKwkJZnByaW50ZihvdXQsICJ4bWxTdHJlYW1QdXNoKCkgZmFpbHVyZVxuIik7CisJCXhtbEZyZWVTdHJlYW1DdHh0KHBhdHN0cmVhbSk7CisJCXBhdHN0cmVhbSA9IE5VTEw7CisJICAgIH0gZWxzZSBpZiAocmV0ICE9IG1hdGNoKSB7CisJCWlmIChwYXRoID09IE5VTEwpIHsKKwkJICAgIHBhdGggPSB4bWxHZXROb2RlUGF0aCgKKwkJCQkgICB4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUocmVhZGVyKSk7CisJCX0KKwkJZnByaW50ZihvdXQsCisJCQkieG1sUGF0dGVybk1hdGNoIGFuZCB4bWxTdHJlYW1QdXNoIGRpc2FncmVlXG4iKTsKKwkJZnByaW50ZihvdXQsCisJCQkiICBwYXR0ZXJuICVzIG5vZGUgJXNcbiIsCisJCQlwYXR0ZXJuLCBwYXRoKTsKKwkgICAgfQorCisKKwl9CisJaWYgKCh0eXBlID09IFhNTF9SRUFERVJfVFlQRV9FTkRfRUxFTUVOVCkgfHwKKwkgICAgKCh0eXBlID09IFhNTF9SRUFERVJfVFlQRV9FTEVNRU5UKSAmJiAoZW1wdHkpKSkgeworCSAgICByZXQgPSB4bWxTdHJlYW1Qb3AocGF0c3RyZWFtKTsKKwkgICAgaWYgKHJldCA8IDApIHsKKwkJZnByaW50ZihvdXQsICJ4bWxTdHJlYW1Qb3AoKSBmYWlsdXJlXG4iKTsKKwkJeG1sRnJlZVN0cmVhbUN0eHQocGF0c3RyZWFtKTsKKwkJcGF0c3RyZWFtID0gTlVMTDsKKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKHBhdGggIT0gTlVMTCkKKwl4bWxGcmVlKHBhdGgpOworfQorCisvKioKKyAqIHBhdHRlcm5UZXN0OgorICogQGZpbGVuYW1lOiB0aGUgc2NoZW1hcyBmaWxlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcworICoKKyAqIFBhcnNlIGEgc2V0IG9mIGZpbGVzIHdpdGggc3RyZWFtaW5nLCBhcHBseWluZyBhbiBSTkcgc2NoZW1hcworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3BhdHRlcm5UZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWwgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVyciBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICB4bWxQYXR0ZXJuUHRyIHBhdHRlcm5jID0gTlVMTDsKKyAgICB4bWxTdHJlYW1DdHh0UHRyIHBhdHN0cmVhbSA9IE5VTEw7CisgICAgRklMRSAqbywgKmY7CisgICAgY2hhciBzdHJbMTAyNF07CisgICAgY2hhciB4bWxbNTAwXTsKKyAgICBjaGFyIHJlc3VsdFs1MDBdOworICAgIGludCBsZW4sIGk7CisgICAgaW50IHJldCA9IDAsIHJlczsKKyAgICBjaGFyICp0ZW1wOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOworICAgIHhtbERvY1B0ciBkb2M7CisKKyAgICBsZW4gPSBzdHJsZW4oZmlsZW5hbWUpOworICAgIGxlbiAtPSA0OworICAgIG1lbWNweSh4bWwsIGZpbGVuYW1lLCBsZW4pOworICAgIHhtbFtsZW5dID0gMDsKKyAgICBzbnByaW50ZihyZXN1bHQsIDQ5OSwgInJlc3VsdC9wYXR0ZXJuLyVzIiwgYmFzZUZpbGVuYW1lKHhtbCkpOworICAgIHJlc3VsdFs0OTldID0gMDsKKyAgICBtZW1jcHkoeG1sICsgbGVuLCAiLnhtbCIsIDUpOworCisgICAgaWYgKCFjaGVja1Rlc3RGaWxlKHhtbCkpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIk1pc3NpbmcgeG1sIGZpbGUgJXNcbiIsIHhtbCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKCFjaGVja1Rlc3RGaWxlKHJlc3VsdCkpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIk1pc3NpbmcgcmVzdWx0IGZpbGUgJXNcbiIsIHJlc3VsdCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgZiA9IGZvcGVuKGZpbGVuYW1lLCAicmIiKTsKKyAgICBpZiAoZiA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIG9wZW4gJXNcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB0ZW1wID0gcmVzdWx0RmlsZW5hbWUoZmlsZW5hbWUsICIiLCAiLnJlcyIpOworICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgZmF0YWxFcnJvcigpOworICAgIH0KKyAgICBvID0gZm9wZW4odGVtcCwgIndiIik7CisgICAgaWYgKG8gPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gb3V0cHV0IGZpbGUgJXNcbiIsIHRlbXApOworCWZjbG9zZShmKTsKKyAgICAgICAgZnJlZSh0ZW1wKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB3aGlsZSAoMSkgeworCS8qCisJICogcmVhZCBvbmUgbGluZSBpbiBzdHJpbmcgYnVmZmVyLgorCSAqLworCWlmIChmZ2V0cyAoJnN0clswXSwgc2l6ZW9mIChzdHIpIC0gMSwgZikgPT0gTlVMTCkKKwkgICBicmVhazsKKworCS8qCisJICogcmVtb3ZlIHRoZSBlbmRpbmcgc3BhY2VzCisJICovCisJaSA9IHN0cmxlbihzdHIpOworCXdoaWxlICgoaSA+IDApICYmCisJICAgICAgICgoc3RyW2kgLSAxXSA9PSAnXG4nKSB8fCAoc3RyW2kgLSAxXSA9PSAnXHInKSB8fAorCQkoc3RyW2kgLSAxXSA9PSAnICcpIHx8IChzdHJbaSAtIDFdID09ICdcdCcpKSkgeworCSAgICBpLS07CisJICAgIHN0cltpXSA9IDA7CisJfQorCWRvYyA9IHhtbFJlYWRGaWxlKHhtbCwgTlVMTCwgb3B0aW9ucyk7CisJaWYgKGRvYyA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlICVzXG4iLCB4bWwpOworCSAgICByZXQgPSAxOworCX0gZWxzZSB7CisJICAgIHhtbE5vZGVQdHIgcm9vdDsKKwkgICAgY29uc3QgeG1sQ2hhciAqbmFtZXNwYWNlc1syMl07CisJICAgIGludCBqOworCSAgICB4bWxOc1B0ciBuczsKKworCSAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKwkgICAgZm9yIChucyA9IHJvb3QtPm5zRGVmLCBqID0gMDtucyAhPSBOVUxMICYmIGogPCAyMDtucz1ucy0+bmV4dCkgeworCQluYW1lc3BhY2VzW2orK10gPSBucy0+aHJlZjsKKwkJbmFtZXNwYWNlc1tqKytdID0gbnMtPnByZWZpeDsKKwkgICAgfQorCSAgICBuYW1lc3BhY2VzW2orK10gPSBOVUxMOworCSAgICBuYW1lc3BhY2VzW2pdID0gTlVMTDsKKworCSAgICBwYXR0ZXJuYyA9IHhtbFBhdHRlcm5jb21waWxlKChjb25zdCB4bWxDaGFyICopIHN0ciwgZG9jLT5kaWN0LAorCQkJCQkgMCwgJm5hbWVzcGFjZXNbMF0pOworCSAgICBpZiAocGF0dGVybmMgPT0gTlVMTCkgeworCQl0ZXN0RXJyb3JIYW5kbGVyKE5VTEwsCisJCQkiUGF0dGVybiAlcyBmYWlsZWQgdG8gY29tcGlsZVxuIiwgc3RyKTsKKwkJeG1sRnJlZURvYyhkb2MpOworCQlyZXQgPSAxOworCQljb250aW51ZTsKKwkgICAgfQorCSAgICBwYXRzdHJlYW0gPSB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dChwYXR0ZXJuYyk7CisJICAgIGlmIChwYXRzdHJlYW0gIT0gTlVMTCkgeworCQlyZXQgPSB4bWxTdHJlYW1QdXNoKHBhdHN0cmVhbSwgTlVMTCwgTlVMTCk7CisJCWlmIChyZXQgPCAwKSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgInhtbFN0cmVhbVB1c2goKSBmYWlsdXJlXG4iKTsKKwkJICAgIHhtbEZyZWVTdHJlYW1DdHh0KHBhdHN0cmVhbSk7CisJCSAgICBwYXRzdHJlYW0gPSBOVUxMOworCQl9CisJICAgIH0KKwkgICAgbmJfdGVzdHMrKzsKKworCSAgICByZWFkZXIgPSB4bWxSZWFkZXJXYWxrZXIoZG9jKTsKKwkgICAgcmVzID0geG1sVGV4dFJlYWRlclJlYWQocmVhZGVyKTsKKwkgICAgd2hpbGUgKHJlcyA9PSAxKSB7CisJCXBhdHRlcm5Ob2RlKG8sIHJlYWRlciwgc3RyLCBwYXR0ZXJuYywgcGF0c3RyZWFtKTsKKwkJcmVzID0geG1sVGV4dFJlYWRlclJlYWQocmVhZGVyKTsKKwkgICAgfQorCSAgICBpZiAocmVzICE9IDApIHsKKwkJZnByaW50ZihvLCAiJXMgOiBmYWlsZWQgdG8gcGFyc2VcbiIsIGZpbGVuYW1lKTsKKwkgICAgfQorCSAgICB4bWxGcmVlVGV4dFJlYWRlcihyZWFkZXIpOworCSAgICB4bWxGcmVlRG9jKGRvYyk7CisJICAgIHhtbEZyZWVTdHJlYW1DdHh0KHBhdHN0cmVhbSk7CisJICAgIHBhdHN0cmVhbSA9IE5VTEw7CisJICAgIHhtbEZyZWVQYXR0ZXJuKHBhdHRlcm5jKTsKKworCX0KKyAgICB9CisKKyAgICBmY2xvc2UoZik7CisgICAgZmNsb3NlKG8pOworCisgICAgcmV0ID0gY29tcGFyZUZpbGVzKHRlbXAsIHJlc3VsdCk7CisgICAgaWYgKHJldCkgeworCWZwcmludGYoc3RkZXJyLCAiUmVzdWx0IGZvciAlcyBmYWlsZWRcbiIsIGZpbGVuYW1lKTsKKwlyZXQgPSAxOworICAgIH0KKyAgICBpZiAodGVtcCAhPSBOVUxMKSB7CisgICAgICAgIHVubGluayh0ZW1wKTsKKyAgICAgICAgZnJlZSh0ZW1wKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogUkVBREVSICovCisjZW5kaWYgLyogUEFUVEVSTiAqLworI2lmZGVmIExJQlhNTF9DMTROX0VOQUJMRUQKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlDYW5vbmljYWxpemF0aW9uIHRlc3RzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgorbG9hZF94cGF0aF9leHByICh4bWxEb2NQdHIgcGFyZW50X2RvYywgY29uc3QgY2hhciogZmlsZW5hbWUpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB4cGF0aDsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbENoYXIgKmV4cHI7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgeG1sTnNQdHIgbnM7CisKKyAgICAvKgorICAgICAqIGxvYWQgWFBhdGggZXhwciBhcyBhIGZpbGUKKyAgICAgKi8KKyAgICB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlID0gWE1MX0RFVEVDVF9JRFMgfCBYTUxfQ09NUExFVEVfQVRUUlM7CisgICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKTsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBYTUxfUEFSU0VfRFREQVRUUiB8IFhNTF9QQVJTRV9OT0VOVCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisJZnByaW50ZihzdGRlcnIsICJFcnJvcjogdW5hYmxlIHRvIHBhcnNlIGZpbGUgXCIlc1wiXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQ2hlY2sgdGhlIGRvY3VtZW50IGlzIG9mIHRoZSByaWdodCBraW5kCisgICAgICovCisgICAgaWYoeG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKSA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJFcnJvcjogZW1wdHkgZG9jdW1lbnQgZm9yIGZpbGUgXCIlc1wiXG4iLCBmaWxlbmFtZSk7CisJeG1sRnJlZURvYyhkb2MpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBub2RlID0gZG9jLT5jaGlsZHJlbjsKKyAgICB3aGlsZShub2RlICE9IE5VTEwgJiYgIXhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIChjb25zdCB4bWxDaGFyICopIlhQYXRoIikpIHsKKwlub2RlID0gbm9kZS0+bmV4dDsKKyAgICB9CisKKyAgICBpZihub2RlID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiBYUGF0aCBlbGVtZW50IGV4cGVjdGVkIGluIHRoZSBmaWxlICBcIiVzXCJcbiIsIGZpbGVuYW1lKTsKKwl4bWxGcmVlRG9jKGRvYyk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGV4cHIgPSB4bWxOb2RlR2V0Q29udGVudChub2RlKTsKKyAgICBpZihleHByID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiBYUGF0aCBjb250ZW50IGVsZW1lbnQgaXMgTlVMTCBcIiVzXCJcbiIsIGZpbGVuYW1lKTsKKwl4bWxGcmVlRG9jKGRvYyk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGN0eCA9IHhtbFhQYXRoTmV3Q29udGV4dChwYXJlbnRfZG9jKTsKKyAgICBpZihjdHggPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IHVuYWJsZSB0byBjcmVhdGUgbmV3IGNvbnRleHRcbiIpOworICAgICAgICB4bWxGcmVlKGV4cHIpOworICAgICAgICB4bWxGcmVlRG9jKGRvYyk7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlZ2lzdGVyIG5hbWVzcGFjZXMKKyAgICAgKi8KKyAgICBucyA9IG5vZGUtPm5zRGVmOworICAgIHdoaWxlKG5zICE9IE5VTEwpIHsKKwlpZih4bWxYUGF0aFJlZ2lzdGVyTnMoY3R4LCBucy0+cHJlZml4LCBucy0+aHJlZikgIT0gMCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IHVuYWJsZSB0byByZWdpc3RlciBOUyB3aXRoIHByZWZpeD1cIiVzXCIgYW5kIGhyZWY9XCIlc1wiXG4iLCBucy0+cHJlZml4LCBucy0+aHJlZik7CisgICAgeG1sRnJlZShleHByKTsKKwkgICAgeG1sWFBhdGhGcmVlQ29udGV4dChjdHgpOworCSAgICB4bWxGcmVlRG9jKGRvYyk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbnMgPSBucy0+bmV4dDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEV2YWx1YXRlIHhwYXRoCisgICAgICovCisgICAgeHBhdGggPSB4bWxYUGF0aEV2YWxFeHByZXNzaW9uKGV4cHIsIGN0eCk7CisgICAgaWYoeHBhdGggPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IHVuYWJsZSB0byBldmFsdWF0ZSB4cGF0aCBleHByZXNzaW9uXG4iKTsKK3htbEZyZWUoZXhwcik7CisgICAgICAgIHhtbFhQYXRoRnJlZUNvbnRleHQoY3R4KTsKKyAgICAgICAgeG1sRnJlZURvYyhkb2MpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyogcHJpbnRfeHBhdGhfbm9kZXMoeHBhdGgtPm5vZGVzZXR2YWwpOyAqLworCisgICAgeG1sRnJlZShleHByKTsKKyAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eCk7CisgICAgeG1sRnJlZURvYyhkb2MpOworICAgIHJldHVybih4cGF0aCk7Cit9CisKKy8qCisgKiBNYWNybyB1c2VkIHRvIGdyb3cgdGhlIGN1cnJlbnQgYnVmZmVyLgorICovCisjZGVmaW5lIHh4eF9ncm93QnVmZmVyUmVlbnRyYW50KCkgewkJCQkJCVwKKyAgICBidWZmZXJfc2l6ZSAqPSAyOwkJCQkJCQlcCisgICAgYnVmZmVyID0gKHhtbENoYXIgKiopCQkJCQkJXAorCXhtbFJlYWxsb2MoYnVmZmVyLCBidWZmZXJfc2l6ZSAqIHNpemVvZih4bWxDaGFyKikpOwlcCisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CQkJCQkJXAorCXBlcnJvcigicmVhbGxvYyBmYWlsZWQiKTsJCQkJCVwKKwlyZXR1cm4oTlVMTCk7CQkJCQkJCVwKKyAgICB9CQkJCQkJCQkJXAorfQorCitzdGF0aWMgeG1sQ2hhciAqKgorcGFyc2VfbGlzdCh4bWxDaGFyICpzdHIpIHsKKyAgICB4bWxDaGFyICoqYnVmZmVyOworICAgIHhtbENoYXIgKipvdXQgPSBOVUxMOworICAgIGludCBidWZmZXJfc2l6ZSA9IDA7CisgICAgaW50IGxlbjsKKworICAgIGlmKHN0ciA9PSBOVUxMKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGxlbiA9IHhtbFN0cmxlbihzdHIpOworICAgIGlmKChzdHJbMF0gPT0gJ1wnJykgJiYgKHN0cltsZW4gLSAxXSA9PSAnXCcnKSkgeworCXN0cltsZW4gLSAxXSA9ICdcMCc7CisJc3RyKys7CisgICAgfQorICAgIC8qCisgICAgICogYWxsb2NhdGUgYW4gdHJhbnNsYXRpb24gYnVmZmVyLgorICAgICAqLworICAgIGJ1ZmZlcl9zaXplID0gMTAwMDsKKyAgICBidWZmZXIgPSAoeG1sQ2hhciAqKikgeG1sTWFsbG9jKGJ1ZmZlcl9zaXplICogc2l6ZW9mKHhtbENoYXIqKSk7CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisJcGVycm9yKCJtYWxsb2MgZmFpbGVkIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBvdXQgPSBidWZmZXI7CisKKyAgICB3aGlsZSgqc3RyICE9ICdcMCcpIHsKKwlpZiAob3V0IC0gYnVmZmVyID4gYnVmZmVyX3NpemUgLSAxMCkgeworCSAgICBpbnQgaW5keCA9IG91dCAtIGJ1ZmZlcjsKKworCSAgICB4eHhfZ3Jvd0J1ZmZlclJlZW50cmFudCgpOworCSAgICBvdXQgPSAmYnVmZmVyW2luZHhdOworCX0KKwkoKm91dCsrKSA9IHN0cjsKKwl3aGlsZSgqc3RyICE9ICcsJyAmJiAqc3RyICE9ICdcMCcpICsrc3RyOworCWlmKCpzdHIgPT0gJywnKSAqKHN0cisrKSA9ICdcMCc7CisgICAgfQorICAgICgqb3V0KSA9IE5VTEw7CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworc3RhdGljIGludAorYzE0blJ1blRlc3QoY29uc3QgY2hhciogeG1sX2ZpbGVuYW1lLCBpbnQgd2l0aF9jb21tZW50cywgaW50IG1vZGUsCisJICAgIGNvbnN0IGNoYXIqIHhwYXRoX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpuc19maWxlbmFtZSwKKwkgICAgY29uc3QgY2hhciogcmVzdWx0X2ZpbGUpIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHhwYXRoID0gTlVMTDsKKyAgICB4bWxDaGFyICpyZXN1bHQgPSBOVUxMOworICAgIGludCByZXQ7CisgICAgeG1sQ2hhciAqKmluY2x1c2l2ZV9uYW1lc3BhY2VzID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpuc2xpc3QgPSBOVUxMOworICAgIGludCBuc3NpemU7CisKKworICAgIC8qCisgICAgICogYnVpbGQgYW4gWE1MIHRyZWUgZnJvbSBhIHRoZSBmaWxlOyB3ZSBuZWVkIHRvIGFkZCBkZWZhdWx0CisgICAgICogYXR0cmlidXRlcyBhbmQgcmVzb2x2ZSBhbGwgY2hhcmFjdGVyIGFuZCBlbnRpdGllcyByZWZlcmVuY2VzCisgICAgICovCisgICAgeG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZSA9IFhNTF9ERVRFQ1RfSURTIHwgWE1MX0NPTVBMRVRFX0FUVFJTOworICAgIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQoMSk7CisKKyAgICBkb2MgPSB4bWxSZWFkRmlsZSh4bWxfZmlsZW5hbWUsIE5VTEwsIFhNTF9QQVJTRV9EVERBVFRSIHwgWE1MX1BBUlNFX05PRU5UKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiB1bmFibGUgdG8gcGFyc2UgZmlsZSBcIiVzXCJcbiIsIHhtbF9maWxlbmFtZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENoZWNrIHRoZSBkb2N1bWVudCBpcyBvZiB0aGUgcmlnaHQga2luZAorICAgICAqLworICAgIGlmKHhtbERvY0dldFJvb3RFbGVtZW50KGRvYykgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IGVtcHR5IGRvY3VtZW50IGZvciBmaWxlIFwiJXNcIlxuIiwgeG1sX2ZpbGVuYW1lKTsKKwl4bWxGcmVlRG9jKGRvYyk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGxvYWQgeHBhdGggZmlsZSBpZiBzcGVjaWZpZWQKKyAgICAgKi8KKyAgICBpZih4cGF0aF9maWxlbmFtZSkgeworCXhwYXRoID0gbG9hZF94cGF0aF9leHByKGRvYywgeHBhdGhfZmlsZW5hbWUpOworCWlmKHhwYXRoID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiB1bmFibGUgdG8gZXZhbHVhdGUgeHBhdGggZXhwcmVzc2lvblxuIik7CisJICAgIHhtbEZyZWVEb2MoZG9jKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorCisgICAgaWYgKG5zX2ZpbGVuYW1lICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGxvYWRNZW0obnNfZmlsZW5hbWUsICZuc2xpc3QsICZuc3NpemUpKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCJFcnJvcjogdW5hYmxlIHRvIGV2YWx1YXRlIHhwYXRoIGV4cHJlc3Npb25cbiIpOworCSAgICBpZih4cGF0aCAhPSBOVUxMKSB4bWxYUGF0aEZyZWVPYmplY3QoeHBhdGgpOworCSAgICB4bWxGcmVlRG9jKGRvYyk7CisJICAgIHJldHVybigtMSk7CisJfQorICAgICAgICBpbmNsdXNpdmVfbmFtZXNwYWNlcyA9IHBhcnNlX2xpc3QoKHhtbENoYXIgKikgbnNsaXN0KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENhbm9uaWNhbCBmb3JtCisgICAgICovCisgICAgLyogZnByaW50ZihzdGRlcnIsIkZpbGUgXCIlc1wiIGxvYWRlZDogc3RhcnQgY2Fub25pemF0aW9uXG4iLCB4bWxfZmlsZW5hbWUpOyAqLworICAgIHJldCA9IHhtbEMxNE5Eb2NEdW1wTWVtb3J5KGRvYywKKwkgICAgKHhwYXRoKSA/IHhwYXRoLT5ub2Rlc2V0dmFsIDogTlVMTCwKKwkgICAgbW9kZSwgaW5jbHVzaXZlX25hbWVzcGFjZXMsCisJICAgIHdpdGhfY29tbWVudHMsICZyZXN1bHQpOworICAgIGlmIChyZXQgPj0gMCkgeworCWlmKHJlc3VsdCAhPSBOVUxMKSB7CisJICAgIGlmIChjb21wYXJlRmlsZU1lbShyZXN1bHRfZmlsZSwgKGNvbnN0IGNoYXIgKikgcmVzdWx0LCByZXQpKSB7CisJCWZwcmludGYoc3RkZXJyLCAiUmVzdWx0IG1pc21hdGNoIGZvciAlc1xuIiwgeG1sX2ZpbGVuYW1lKTsKKwkJZnByaW50ZihzdGRlcnIsICJSRVNVTFQ6XG4lc1xuIiwgKGNvbnN0IGNoYXIqKXJlc3VsdCk7CisJICAgICAgICByZXQgPSAtMTsKKwkgICAgfQorCX0KKyAgICB9IGVsc2UgeworCWZwcmludGYoc3RkZXJyLCJFcnJvcjogZmFpbGVkIHRvIGNhbm9uaWNhbGl6ZSBYTUwgZmlsZSBcIiVzXCIgKHJldD0lZClcbiIsIHhtbF9maWxlbmFtZSwgcmV0KTsKKwlyZXQgPSAtMTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENsZWFudXAKKyAgICAgKi8KKyAgICBpZiAocmVzdWx0ICE9IE5VTEwpIHhtbEZyZWUocmVzdWx0KTsKKyAgICBpZih4cGF0aCAhPSBOVUxMKSB4bWxYUGF0aEZyZWVPYmplY3QoeHBhdGgpOworICAgIGlmIChpbmNsdXNpdmVfbmFtZXNwYWNlcyAhPSBOVUxMKSB4bWxGcmVlKGluY2x1c2l2ZV9uYW1lc3BhY2VzKTsKKyAgICBpZiAobnNsaXN0ICE9IE5VTEwpIGZyZWUoKGNoYXIgKikgbnNsaXN0KTsKKyAgICB4bWxGcmVlRG9jKGRvYyk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIGludAorYzE0bkNvbW1vblRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCB3aXRoX2NvbW1lbnRzLCBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN1YmRpcikgeworICAgIGNoYXIgYnVmWzUwMF07CisgICAgY2hhciBwcmVmaXhbNTAwXTsKKyAgICBjb25zdCBjaGFyICpiYXNlOworICAgIGludCBsZW47CisgICAgY2hhciAqcmVzdWx0ID0gTlVMTDsKKyAgICBjaGFyICp4cGF0aCA9IE5VTEw7CisgICAgY2hhciAqbnMgPSBOVUxMOworICAgIGludCByZXQgPSAwOworCisgICAgYmFzZSA9IGJhc2VGaWxlbmFtZShmaWxlbmFtZSk7CisgICAgbGVuID0gc3RybGVuKGJhc2UpOworICAgIGxlbiAtPSA0OworICAgIG1lbWNweShwcmVmaXgsIGJhc2UsIGxlbik7CisgICAgcHJlZml4W2xlbl0gPSAwOworCisgICAgc25wcmludGYoYnVmLCA0OTksICJyZXN1bHQvYzE0bi8lcy8lcyIsIHN1YmRpcixwcmVmaXgpOworICAgIGlmICghY2hlY2tUZXN0RmlsZShidWYpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWlzc2luZyByZXN1bHQgZmlsZSAlcyIsIGJ1Zik7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcmVzdWx0ID0gc3RyZHVwKGJ1Zik7CisgICAgc25wcmludGYoYnVmLCA0OTksICJ0ZXN0L2MxNG4vJXMvJXMueHBhdGgiLCBzdWJkaXIscHJlZml4KTsKKyAgICBpZiAoY2hlY2tUZXN0RmlsZShidWYpKSB7CisJeHBhdGggPSBzdHJkdXAoYnVmKTsKKyAgICB9CisgICAgc25wcmludGYoYnVmLCA0OTksICJ0ZXN0L2MxNG4vJXMvJXMubnMiLCBzdWJkaXIscHJlZml4KTsKKyAgICBpZiAoY2hlY2tUZXN0RmlsZShidWYpKSB7CisJbnMgPSBzdHJkdXAoYnVmKTsKKyAgICB9CisKKyAgICBuYl90ZXN0cysrOworICAgIGlmIChjMTRuUnVuVGVzdChmaWxlbmFtZSwgd2l0aF9jb21tZW50cywgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgeHBhdGgsIG5zLCByZXN1bHQpIDwgMCkKKyAgICAgICAgcmV0ID0gMTsKKworICAgIGlmIChyZXN1bHQgIT0gTlVMTCkgZnJlZShyZXN1bHQpOworICAgIGlmICh4cGF0aCAhPSBOVUxMKSBmcmVlKHhwYXRoKTsKKyAgICBpZiAobnMgIT0gTlVMTCkgZnJlZShucyk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyBpbnQKK2MxNG5XaXRoQ29tbWVudFRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlc3VsIEFUVFJJQlVURV9VTlVTRUQsCisJCSAgICBjb25zdCBjaGFyICplcnIgQVRUUklCVVRFX1VOVVNFRCwKKwkJICAgIGludCBvcHRpb25zIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oYzE0bkNvbW1vblRlc3QoZmlsZW5hbWUsIDEsIFhNTF9DMTROXzFfMCwgIndpdGgtY29tbWVudHMiKSk7Cit9CitzdGF0aWMgaW50CitjMTRuV2l0aG91dENvbW1lbnRUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bCBBVFRSSUJVVEVfVU5VU0VELAorCQkgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisJCSAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKGMxNG5Db21tb25UZXN0KGZpbGVuYW1lLCAwLCBYTUxfQzE0Tl8xXzAsICJ3aXRob3V0LWNvbW1lbnRzIikpOworfQorc3RhdGljIGludAorYzE0bkV4Y1dpdGhvdXRDb21tZW50VGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWwgQVRUUklCVVRFX1VOVVNFRCwKKwkJICAgIGNvbnN0IGNoYXIgKmVyciBBVFRSSUJVVEVfVU5VU0VELAorCQkgICAgaW50IG9wdGlvbnMgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihjMTRuQ29tbW9uVGVzdChmaWxlbmFtZSwgMCwgWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCwgImV4Yy13aXRob3V0LWNvbW1lbnRzIikpOworfQorc3RhdGljIGludAorYzE0bjExV2l0aG91dENvbW1lbnRUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bCBBVFRSSUJVVEVfVU5VU0VELAorCQkgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisJCSAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKGMxNG5Db21tb25UZXN0KGZpbGVuYW1lLCAwLCBYTUxfQzE0Tl8xXzEsICIxLTEtd2l0aG91dC1jb21tZW50cyIpKTsKK30KKyNlbmRpZgorI2lmIGRlZmluZWQoTElCWE1MX1RIUkVBRF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpICYmIGRlZmluZWQgKExJQlhNTF9TQVgxX0VOQUJMRUQpCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJQ2F0YWxvZyBhbmQgdGhyZWFkcyB0ZXN0CQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogbW9zdGx5IGEgY3V0IGFuZCBwYXN0ZSBmcm9tIHRlc3RUaHJlYWRzLmMKKyAqLworI2RlZmluZQlNQVhfQVJHQwkyMAorCitzdGF0aWMgY29uc3QgY2hhciAqY2F0YWxvZyA9ICJ0ZXN0L3RocmVhZHMvY29tcGxleC54bWwiOworc3RhdGljIGNvbnN0IGNoYXIgKnRlc3RmaWxlc1tdID0geworICAgICJ0ZXN0L3RocmVhZHMvYWJjLnhtbCIsCisgICAgInRlc3QvdGhyZWFkcy9hY2IueG1sIiwKKyAgICAidGVzdC90aHJlYWRzL2JhYy54bWwiLAorICAgICJ0ZXN0L3RocmVhZHMvYmNhLnhtbCIsCisgICAgInRlc3QvdGhyZWFkcy9jYWIueG1sIiwKKyAgICAidGVzdC90aHJlYWRzL2NiYS54bWwiLAorICAgICJ0ZXN0L3RocmVhZHMvaW52YWxpZC54bWwiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKk9rYXkgPSAiT0siOworc3RhdGljIGNvbnN0IGNoYXIgKkZhaWxlZCA9ICJGYWlsZWQiOworCisjaWZuZGVmIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZQorI2Vycm9yIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSBpcyBub3QgYSBtYWNybworI2VuZGlmCisjaWZuZGVmIHhtbEdlbmVyaWNFcnJvckNvbnRleHQKKyNlcnJvciB4bWxHZW5lcmljRXJyb3JDb250ZXh0IGlzIG5vdCBhIG1hY3JvCisjZW5kaWYKKworc3RhdGljIHZvaWQgKgordGhyZWFkX3NwZWNpZmljX2RhdGEodm9pZCAqcHJpdmF0ZV9kYXRhKQoreworICAgIHhtbERvY1B0ciBteURvYzsKKyAgICBjb25zdCBjaGFyICpmaWxlbmFtZSA9IChjb25zdCBjaGFyICopIHByaXZhdGVfZGF0YTsKKyAgICBpbnQgb2theSA9IDE7CisKKyAgICBpZiAoIXN0cmNtcChmaWxlbmFtZSwgInRlc3QvdGhyZWFkcy9pbnZhbGlkLnhtbCIpKSB7CisgICAgICAgIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvckNvbnRleHQgPSBzdGRvdXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlID0gMTsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yQ29udGV4dCA9IHN0ZGVycjsKKyAgICB9CisgICAgbXlEb2MgPSB4bWxQYXJzZUZpbGUoZmlsZW5hbWUpOworICAgIGlmIChteURvYykgeworICAgICAgICB4bWxGcmVlRG9jKG15RG9jKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludGYoInBhcnNlIGZhaWxlZFxuIik7CisgICAgICAgIG9rYXkgPSAwOworICAgIH0KKyAgICBpZiAoIXN0cmNtcChmaWxlbmFtZSwgInRlc3QvdGhyZWFkcy9pbnZhbGlkLnhtbCIpKSB7CisgICAgICAgIGlmICh4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgIT0gMCkgeworICAgICAgICAgICAgcHJpbnRmKCJWYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIG92ZXJyaWRlIGZhaWxlZFxuIik7CisgICAgICAgICAgICBva2F5ID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCAhPSBzdGRvdXQpIHsKKyAgICAgICAgICAgIHByaW50ZigieG1sR2VuZXJpY0Vycm9yQ29udGV4dCBvdmVycmlkZSBmYWlsZWRcbiIpOworICAgICAgICAgICAgb2theSA9IDA7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlICE9IDEpIHsKKyAgICAgICAgICAgIHByaW50ZigiVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSBvdmVycmlkZSBmYWlsZWRcbiIpOworICAgICAgICAgICAgb2theSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHhtbEdlbmVyaWNFcnJvckNvbnRleHQgIT0gc3RkZXJyKSB7CisgICAgICAgICAgICBwcmludGYoInhtbEdlbmVyaWNFcnJvckNvbnRleHQgb3ZlcnJpZGUgZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIG9rYXkgPSAwOworICAgICAgICB9CisgICAgfQorICAgIGlmIChva2F5ID09IDApCisgICAgICAgIHJldHVybiAoKHZvaWQgKikgRmFpbGVkKTsKKyAgICByZXR1cm4gKCh2b2lkICopIE9rYXkpOworfQorCisjaWYgZGVmaW5lZChsaW51eCkgfHwgZGVmaW5lZChfX3N1bikgfHwgZGVmaW5lZChfX0FQUExFX0NDX18pCisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisKK3N0YXRpYyBwdGhyZWFkX3QgdGlkW01BWF9BUkdDXTsKKworc3RhdGljIGludAordGVzdFRocmVhZCh2b2lkKQoreworICAgIHVuc2lnbmVkIGludCBpLCByZXBlYXQ7CisgICAgdW5zaWduZWQgaW50IG51bV90aHJlYWRzID0gc2l6ZW9mKHRlc3RmaWxlcykgLyBzaXplb2YodGVzdGZpbGVzWzBdKTsKKyAgICB2b2lkICpyZXN1bHRzW01BWF9BUkdDXTsKKyAgICBpbnQgcmV0OworICAgIGludCByZXMgPSAwOworCisgICAgeG1sSW5pdFBhcnNlcigpOworCisgICAgZm9yIChyZXBlYXQgPSAwOyByZXBlYXQgPCA1MDA7IHJlcGVhdCsrKSB7CisgICAgICAgIHhtbExvYWRDYXRhbG9nKGNhdGFsb2cpOworICAgICAgICBuYl90ZXN0cysrOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHRzW2ldID0gTlVMTDsKKyAgICAgICAgICAgIHRpZFtpXSA9IChwdGhyZWFkX3QpIC0gMTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisgICAgICAgICAgICByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGlkW2ldLCAwLCB0aHJlYWRfc3BlY2lmaWNfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIHRlc3RmaWxlc1tpXSk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInB0aHJlYWRfY3JlYXRlIGZhaWxlZFxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3RocmVhZHM7IGkrKykgeworICAgICAgICAgICAgcmV0ID0gcHRocmVhZF9qb2luKHRpZFtpXSwgJnJlc3VsdHNbaV0pOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJwdGhyZWFkX2pvaW4gZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeG1sQ2F0YWxvZ0NsZWFudXAoKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspCisgICAgICAgICAgICBpZiAocmVzdWx0c1tpXSAhPSAodm9pZCAqKSBPa2F5KSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJUaHJlYWQgJWQgaGFuZGxpbmcgJXMgZmFpbGVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgaSwgdGVzdGZpbGVzW2ldKTsKKyAgICAgICAgICAgICAgICByZXMgPSAxOworICAgICAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKHJlcyk7Cit9CisKKyNlbGlmIGRlZmluZWQgV0lOMzIKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNkZWZpbmUgVEVTVF9SRVBFQVRfQ09VTlQgNTAwCisKK3N0YXRpYyBIQU5ETEUgdGlkW01BWF9BUkdDXTsKKworc3RhdGljIERXT1JEIFdJTkFQSQord2luMzJfdGhyZWFkX3NwZWNpZmljX2RhdGEodm9pZCAqcHJpdmF0ZV9kYXRhKQoreworICAgIHJldHVybigoRFdPUkQpIHRocmVhZF9zcGVjaWZpY19kYXRhKHByaXZhdGVfZGF0YSkpOworfQorCitzdGF0aWMgaW50Cit0ZXN0VGhyZWFkKHZvaWQpCit7CisgICAgdW5zaWduZWQgaW50IGksIHJlcGVhdDsKKyAgICB1bnNpZ25lZCBpbnQgbnVtX3RocmVhZHMgPSBzaXplb2YodGVzdGZpbGVzKSAvIHNpemVvZih0ZXN0ZmlsZXNbMF0pOworICAgIERXT1JEIHJlc3VsdHNbTUFYX0FSR0NdOworICAgIEJPT0wgcmV0OworICAgIGludCByZXMgPSAwOworCisgICAgeG1sSW5pdFBhcnNlcigpOworICAgIGZvciAocmVwZWF0ID0gMDsgcmVwZWF0IDwgVEVTVF9SRVBFQVRfQ09VTlQ7IHJlcGVhdCsrKSB7CisgICAgICAgIHhtbExvYWRDYXRhbG9nKGNhdGFsb2cpOworICAgICAgICBuYl90ZXN0cysrOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHRzW2ldID0gMDsKKyAgICAgICAgICAgIHRpZFtpXSA9IChIQU5ETEUpIC0gMTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisgICAgICAgICAgICBEV09SRCB1c2VsZXNzOworCisgICAgICAgICAgICB0aWRbaV0gPSBDcmVhdGVUaHJlYWQoTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW4zMl90aHJlYWRfc3BlY2lmaWNfZGF0YSwKKwkJCQkgICh2b2lkICopIHRlc3RmaWxlc1tpXSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXNlbGVzcyk7CisgICAgICAgICAgICBpZiAodGlkW2ldID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNyZWF0ZVRocmVhZCBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybigxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKG51bV90aHJlYWRzLCB0aWQsIFRSVUUsIElORklOSVRFKSA9PQorICAgICAgICAgICAgV0FJVF9GQUlMRUQpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiV2FpdEZvck11bHRpcGxlT2JqZWN0cyBmYWlsZWRcbiIpOworCSAgICByZXR1cm4oMSk7CisJfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisgICAgICAgICAgICByZXQgPSBHZXRFeGl0Q29kZVRocmVhZCh0aWRbaV0sICZyZXN1bHRzW2ldKTsKKyAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiR2V0RXhpdENvZGVUaHJlYWQgZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4oMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDbG9zZUhhbmRsZSh0aWRbaV0pOworICAgICAgICB9CisKKyAgICAgICAgeG1sQ2F0YWxvZ0NsZWFudXAoKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHRzW2ldICE9IChEV09SRCkgT2theSkgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVGhyZWFkICVkIGhhbmRsaW5nICVzIGZhaWxlZFxuIiwKKwkJICAgICAgICBpLCB0ZXN0ZmlsZXNbaV0pOworCSAgICAgICAgcmVzID0gMTsKKwkgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIChyZXMpOworfQorCisjZWxpZiBkZWZpbmVkIF9fQkVPU19fCisjaW5jbHVkZSA8T1MuaD4KKworc3RhdGljIHRocmVhZF9pZCB0aWRbTUFYX0FSR0NdOworCitzdGF0aWMgaW50Cit0ZXN0VGhyZWFkKHZvaWQpCit7CisgICAgdW5zaWduZWQgaW50IGksIHJlcGVhdDsKKyAgICB1bnNpZ25lZCBpbnQgbnVtX3RocmVhZHMgPSBzaXplb2YodGVzdGZpbGVzKSAvIHNpemVvZih0ZXN0ZmlsZXNbMF0pOworICAgIHZvaWQgKnJlc3VsdHNbTUFYX0FSR0NdOworICAgIHN0YXR1c190IHJldDsKKyAgICBpbnQgcmVzID0gMDsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKyAgICBmb3IgKHJlcGVhdCA9IDA7IHJlcGVhdCA8IDUwMDsgcmVwZWF0KyspIHsKKyAgICAgICAgeG1sTG9hZENhdGFsb2coY2F0YWxvZyk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHRzW2ldID0gTlVMTDsKKyAgICAgICAgICAgIHRpZFtpXSA9ICh0aHJlYWRfaWQpIC0gMTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3RocmVhZHM7IGkrKykgeworICAgICAgICAgICAgdGlkW2ldID0KKyAgICAgICAgICAgICAgICBzcGF3bl90aHJlYWQodGhyZWFkX3NwZWNpZmljX2RhdGEsICJ4bWxUZXN0VGhyZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQl9OT1JNQUxfUFJJT1JJVFksICh2b2lkICopIHRlc3RmaWxlc1tpXSk7CisgICAgICAgICAgICBpZiAodGlkW2ldIDwgQl9PSykgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYmVvc190aHJlYWRfY3JlYXRlIGZhaWxlZFxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50ZigiYmVvc190aHJlYWRfY3JlYXRlICVkIC0+ICVkXG4iLCBpLCB0aWRbaV0pOworICAgICAgICB9CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisgICAgICAgICAgICByZXQgPSB3YWl0X2Zvcl90aHJlYWQodGlkW2ldLCAmcmVzdWx0c1tpXSk7CisgICAgICAgICAgICBwcmludGYoImJlb3NfdGhyZWFkX3dhaXQgJWQgLT4gJWRcbiIsIGksIHJldCk7CisgICAgICAgICAgICBpZiAocmV0ICE9IEJfT0spIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJlb3NfdGhyZWFkX3dhaXQgZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeG1sQ2F0YWxvZ0NsZWFudXAoKTsKKyAgICAgICAgcmV0ID0gQl9PSzsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspCisgICAgICAgICAgICBpZiAocmVzdWx0c1tpXSAhPSAodm9pZCAqKSBPa2F5KSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJUaHJlYWQgJWQgaGFuZGxpbmcgJXMgZmFpbGVkXG4iLCBpLCB0ZXN0ZmlsZXNbaV0pOworICAgICAgICAgICAgICAgIHJldCA9IEJfRVJST1I7CisgICAgICAgICAgICB9CisgICAgfQorICAgIGlmIChyZXQgIT0gQl9PSykKKyAgICAgICAgcmV0dXJuKDEpOworICAgIHJldHVybiAoMCk7Cit9CisjZWxzZQorc3RhdGljIGludAordGVzdFRocmVhZCh2b2lkKQoreworICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgIlNwZWNpZmljIHBsYXRmb3JtIHRocmVhZCBzdXBwb3J0IG5vdCBkZXRlY3RlZFxuIik7CisgICAgcmV0dXJuICgtMSk7Cit9CisjZW5kaWYKK3N0YXRpYyBpbnQKK3RocmVhZHNUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lIEFUVFJJQlVURV9VTlVTRUQsCisJICAgIGNvbnN0IGNoYXIgKnJlc3VsIEFUVFJJQlVURV9VTlVTRUQsCisJICAgIGNvbnN0IGNoYXIgKmVyciBBVFRSSUJVVEVfVU5VU0VELAorCSAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKHRlc3RUaHJlYWQoKSk7Cit9CisjZW5kaWYKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlUZXN0cyBEZXNjcmlwdGlvbnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMKK3Rlc3REZXNjIHRlc3REZXNjcmlwdGlvbnNbXSA9IHsKKyAgICB7ICJYTUwgcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgb2xkUGFyc2VUZXN0LCAiLi90ZXN0LyoiLCAicmVzdWx0LyIsICIiLCBOVUxMLAorICAgICAgMCB9LAorICAgIHsgIlhNTCByZWdyZXNzaW9uIHRlc3RzIG9uIG1lbW9yeSIgLAorICAgICAgbWVtUGFyc2VUZXN0LCAiLi90ZXN0LyoiLCAicmVzdWx0LyIsICIiLCBOVUxMLAorICAgICAgMCB9LAorICAgIHsgIlhNTCBlbnRpdHkgc3Vic3QgcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgbm9lbnRQYXJzZVRlc3QsICIuL3Rlc3QvKiIsICJyZXN1bHQvbm9lbnQvIiwgIiIsIE5VTEwsCisgICAgICBYTUxfUEFSU0VfTk9FTlQgfSwKKyAgICB7ICJYTUwgTmFtZXNwYWNlcyByZWdyZXNzaW9uIHRlc3RzIiwKKyAgICAgIGVyclBhcnNlVGVzdCwgIi4vdGVzdC9uYW1lc3BhY2VzLyoiLCAicmVzdWx0L25hbWVzcGFjZXMvIiwgIiIsICIuZXJyIiwKKyAgICAgIDAgfSwKKyAgICB7ICJFcnJvciBjYXNlcyByZWdyZXNzaW9uIHRlc3RzIiwKKyAgICAgIGVyclBhcnNlVGVzdCwgIi4vdGVzdC9lcnJvcnMvKi54bWwiLCAicmVzdWx0L2Vycm9ycy8iLCAiIiwgIi5lcnIiLAorICAgICAgMCB9LAorI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorICAgIHsgIkVycm9yIGNhc2VzIHN0cmVhbSByZWdyZXNzaW9uIHRlc3RzIiwKKyAgICAgIHN0cmVhbVBhcnNlVGVzdCwgIi4vdGVzdC9lcnJvcnMvKi54bWwiLCAicmVzdWx0L2Vycm9ycy8iLCBOVUxMLCAiLnN0ciIsCisgICAgICAwIH0sCisgICAgeyAiUmVhZGVyIHJlZ3Jlc3Npb24gdGVzdHMiLAorICAgICAgc3RyZWFtUGFyc2VUZXN0LCAiLi90ZXN0LyoiLCAicmVzdWx0LyIsICIucmRyIiwgTlVMTCwKKyAgICAgIDAgfSwKKyAgICB7ICJSZWFkZXIgZW50aXRpZXMgc3Vic3RpdHV0aW9uIHJlZ3Jlc3Npb24gdGVzdHMiLAorICAgICAgc3RyZWFtUGFyc2VUZXN0LCAiLi90ZXN0LyoiLCAicmVzdWx0LyIsICIucmRlIiwgTlVMTCwKKyAgICAgIFhNTF9QQVJTRV9OT0VOVCB9LAorICAgIHsgIlJlYWRlciBvbiBtZW1vcnkgcmVncmVzc2lvbiB0ZXN0cyIsCisgICAgICBzdHJlYW1NZW1QYXJzZVRlc3QsICIuL3Rlc3QvKiIsICJyZXN1bHQvIiwgIi5yZHIiLCBOVUxMLAorICAgICAgMCB9LAorICAgIHsgIldhbGtlciByZWdyZXNzaW9uIHRlc3RzIiwKKyAgICAgIHdhbGtlclBhcnNlVGVzdCwgIi4vdGVzdC8qIiwgInJlc3VsdC8iLCAiLnJkciIsIE5VTEwsCisgICAgICAwIH0sCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgeyAiU0FYMSBjYWxsYmFja3MgcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgc2F4UGFyc2VUZXN0LCAiLi90ZXN0LyoiLCAicmVzdWx0LyIsICIuc2F4IiwgTlVMTCwKKyAgICAgIFhNTF9QQVJTRV9TQVgxIH0sCisgICAgeyAiU0FYMiBjYWxsYmFja3MgcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgc2F4UGFyc2VUZXN0LCAiLi90ZXN0LyoiLCAicmVzdWx0LyIsICIuc2F4MiIsIE5VTEwsCisgICAgICAwIH0sCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECisgICAgeyAiWE1MIHB1c2ggcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgcHVzaFBhcnNlVGVzdCwgIi4vdGVzdC8qIiwgInJlc3VsdC8iLCAiIiwgTlVMTCwKKyAgICAgIDAgfSwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICB7ICJIVE1MIHJlZ3Jlc3Npb24gdGVzdHMiICwKKyAgICAgIGVyclBhcnNlVGVzdCwgIi4vdGVzdC9IVE1MLyoiLCAicmVzdWx0L0hUTUwvIiwgIiIsICIuZXJyIiwKKyAgICAgIFhNTF9QQVJTRV9IVE1MIH0sCisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAorICAgIHsgIlB1c2ggSFRNTCByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBwdXNoUGFyc2VUZXN0LCAiLi90ZXN0L0hUTUwvKiIsICJyZXN1bHQvSFRNTC8iLCAiIiwgIi5lcnIiLAorICAgICAgWE1MX1BBUlNFX0hUTUwgfSwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICB7ICJIVE1MIFNBWCByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBzYXhQYXJzZVRlc3QsICIuL3Rlc3QvSFRNTC8qIiwgInJlc3VsdC9IVE1MLyIsICIuc2F4IiwgTlVMTCwKKyAgICAgIFhNTF9QQVJTRV9IVE1MIH0sCisjZW5kaWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgeyAiVmFsaWQgZG9jdW1lbnRzIHJlZ3Jlc3Npb24gdGVzdHMiICwKKyAgICAgIGVyclBhcnNlVGVzdCwgIi4vdGVzdC9WQ00vKiIsIE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICBYTUxfUEFSU0VfRFREVkFMSUQgfSwKKyAgICB7ICJWYWxpZGl0eSBjaGVja2luZyByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBlcnJQYXJzZVRlc3QsICIuL3Rlc3QvVkMvKiIsICJyZXN1bHQvVkMvIiwgTlVMTCwgIiIsCisgICAgICBYTUxfUEFSU0VfRFREVkFMSUQgfSwKKyAgICB7ICJHZW5lcmFsIGRvY3VtZW50cyB2YWxpZCByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBlcnJQYXJzZVRlc3QsICIuL3Rlc3QvdmFsaWQvKiIsICJyZXN1bHQvdmFsaWQvIiwgIiIsICIuZXJyIiwKKyAgICAgIFhNTF9QQVJTRV9EVERWQUxJRCB9LAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICB7ICJYSW5jbHVkZSByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBlcnJQYXJzZVRlc3QsICIuL3Rlc3QvWEluY2x1ZGUvZG9jcy8qIiwgInJlc3VsdC9YSW5jbHVkZS8iLCAiIiwgTlVMTCwKKyAgICAgIC8qIElnbm9yZSBlcnJvcnMgYXQgdGhpcyBwb2ludCAiLmVyciIsICovCisgICAgICBYTUxfUEFSU0VfWElOQ0xVREUgfSwKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKyAgICB7ICJYSW5jbHVkZSB4bWxSZWFkZXIgcmVncmVzc2lvbiB0ZXN0cyIsCisgICAgICBzdHJlYW1QYXJzZVRlc3QsICIuL3Rlc3QvWEluY2x1ZGUvZG9jcy8qIiwgInJlc3VsdC9YSW5jbHVkZS8iLCAiLnJkciIsCisgICAgICAvKiBJZ25vcmUgZXJyb3JzIGF0IHRoaXMgcG9pbnQgIi5lcnIiLCAqLworICAgICAgTlVMTCwgWE1MX1BBUlNFX1hJTkNMVURFIH0sCisjZW5kaWYKKyAgICB7ICJYSW5jbHVkZSByZWdyZXNzaW9uIHRlc3RzIHN0cmlwcGluZyBpbmNsdWRlIG5vZGVzIiAsCisgICAgICBlcnJQYXJzZVRlc3QsICIuL3Rlc3QvWEluY2x1ZGUvZG9jcy8qIiwgInJlc3VsdC9YSW5jbHVkZS8iLCAiIiwgTlVMTCwKKyAgICAgIC8qIElnbm9yZSBlcnJvcnMgYXQgdGhpcyBwb2ludCAiLmVyciIsICovCisgICAgICBYTUxfUEFSU0VfWElOQ0xVREUgfCBYTUxfUEFSU0VfTk9YSU5DTk9ERSB9LAorI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorICAgIHsgIlhJbmNsdWRlIHhtbFJlYWRlciByZWdyZXNzaW9uIHRlc3RzIHN0cmlwcGluZyBpbmNsdWRlIG5vZGVzIiwKKyAgICAgIHN0cmVhbVBhcnNlVGVzdCwgIi4vdGVzdC9YSW5jbHVkZS9kb2NzLyoiLCAicmVzdWx0L1hJbmNsdWRlLyIsICIucmRyIiwKKyAgICAgIC8qIElnbm9yZSBlcnJvcnMgYXQgdGhpcyBwb2ludCAiLmVyciIsICovCisgICAgICBOVUxMLCBYTUxfUEFSU0VfWElOQ0xVREUgfCBYTUxfUEFSU0VfTk9YSU5DTk9ERSB9LAorI2VuZGlmCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisgICAgeyAiWFBhdGggZXhwcmVzc2lvbnMgcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgeHBhdGhFeHByVGVzdCwgIi4vdGVzdC9YUGF0aC9leHByLyoiLCAicmVzdWx0L1hQYXRoL2V4cHIvIiwgIiIsIE5VTEwsCisgICAgICAwIH0sCisgICAgeyAiWFBhdGggZG9jdW1lbnQgcXVlcmllcyByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICB4cGF0aERvY1Rlc3QsICIuL3Rlc3QvWFBhdGgvZG9jcy8qIiwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgIDAgfSwKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisgICAgeyAiWFBvaW50ZXIgZG9jdW1lbnQgcXVlcmllcyByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICB4cHRyRG9jVGVzdCwgIi4vdGVzdC9YUGF0aC9kb2NzLyoiLCBOVUxMLCBOVUxMLCBOVUxMLAorICAgICAgMCB9LAorI2VuZGlmCisgICAgeyAieG1sOmlkIHJlZ3Jlc3Npb24gdGVzdHMiICwKKyAgICAgIHhtbGlkRG9jVGVzdCwgIi4vdGVzdC94bWxpZC8qIiwgInJlc3VsdC94bWxpZC8iLCAiIiwgIi5lcnIiLAorICAgICAgMCB9LAorI2VuZGlmCisjZW5kaWYKKyAgICB7ICJVUkkgcGFyc2luZyB0ZXN0cyIgLAorICAgICAgdXJpUGFyc2VUZXN0LCAiLi90ZXN0L1VSSS8qLnVyaSIsICJyZXN1bHQvVVJJLyIsICIiLCBOVUxMLAorICAgICAgMCB9LAorICAgIHsgIlVSSSBiYXNlIGNvbXBvc2l0aW9uIHRlc3RzIiAsCisgICAgICB1cmlCYXNlVGVzdCwgIi4vdGVzdC9VUkkvKi5kYXRhIiwgInJlc3VsdC9VUkkvIiwgIiIsIE5VTEwsCisgICAgICAwIH0sCisgICAgeyAiUGF0aCBVUkkgY29udmVyc2lvbiB0ZXN0cyIgLAorICAgICAgdXJpUGF0aFRlc3QsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICAwIH0sCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIHsgIlNjaGVtYXMgcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgc2NoZW1hc1Rlc3QsICIuL3Rlc3Qvc2NoZW1hcy8qXyoueHNkIiwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgIDAgfSwKKyAgICB7ICJSZWxheC1ORyByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBybmdUZXN0LCAiLi90ZXN0L3JlbGF4bmcvKi5ybmciLCBOVUxMLCBOVUxMLCBOVUxMLAorICAgICAgWE1MX1BBUlNFX0RUREFUVFIgfCBYTUxfUEFSU0VfTk9FTlQgfSwKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKyAgICB7ICJSZWxheC1ORyBzdHJlYW1pbmcgcmVncmVzc2lvbiB0ZXN0cyIgLAorICAgICAgcm5nU3RyZWFtVGVzdCwgIi4vdGVzdC9yZWxheG5nLyoucm5nIiwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgIFhNTF9QQVJTRV9EVERBVFRSIHwgWE1MX1BBUlNFX05PRU5UIH0sCisjZW5kaWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKyAgICB7ICJQYXR0ZXJuIHJlZ3Jlc3Npb24gdGVzdHMiICwKKyAgICAgIHBhdHRlcm5UZXN0LCAiLi90ZXN0L3BhdHRlcm4vKi5wYXQiLCAicmVzdWx0L3BhdHRlcm4vIiwgTlVMTCwgTlVMTCwKKyAgICAgIDAgfSwKKyNlbmRpZgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0MxNE5fRU5BQkxFRAorICAgIHsgIkMxNE4gd2l0aCBjb21tZW50cyByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBjMTRuV2l0aENvbW1lbnRUZXN0LCAiLi90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy8qLnhtbCIsIE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICAwIH0sCisgICAgeyAiQzE0TiB3aXRob3V0IGNvbW1lbnRzIHJlZ3Jlc3Npb24gdGVzdHMiICwKKyAgICAgIGMxNG5XaXRob3V0Q29tbWVudFRlc3QsICIuL3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzLyoueG1sIiwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgIDAgfSwKKyAgICB7ICJDMTROIGV4Y2x1c2l2ZSB3aXRob3V0IGNvbW1lbnRzIHJlZ3Jlc3Npb24gdGVzdHMiICwKKyAgICAgIGMxNG5FeGNXaXRob3V0Q29tbWVudFRlc3QsICIuL3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy8qLnhtbCIsIE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICAwIH0sCisgICAgeyAiQzE0TiAxLjEgd2l0aG91dCBjb21tZW50cyByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICBjMTRuMTFXaXRob3V0Q29tbWVudFRlc3QsICIuL3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy8qLnhtbCIsIE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICAwIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKExJQlhNTF9USFJFQURfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisgICAgeyAiQ2F0YWxvZyBhbmQgVGhyZWFkcyByZWdyZXNzaW9uIHRlc3RzIiAsCisgICAgICB0aHJlYWRzVGVzdCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgIDAgfSwKKyNlbmRpZgorICAgIHtOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAwfQorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJVGhlIG1haW4gY29kZSBkcml2aW5nIHRoZSB0ZXN0cwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK2xhdW5jaFRlc3RzKHRlc3REZXNjUHRyIHRzdCkgeworICAgIGludCByZXMgPSAwLCBlcnIgPSAwOworICAgIHNpemVfdCBpOworICAgIGNoYXIgKnJlc3VsdDsKKyAgICBjaGFyICplcnJvcjsKKyAgICBpbnQgbWVtOworCisgICAgaWYgKHRzdCA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmICh0c3QtPmluICE9IE5VTEwpIHsKKwlnbG9iX3QgZ2xvYmJ1ZjsKKworCWdsb2JidWYuZ2xfb2ZmcyA9IDA7CisJZ2xvYih0c3QtPmluLCBHTE9CX0RPT0ZGUywgTlVMTCwgJmdsb2JidWYpOworCWZvciAoaSA9IDA7aSA8IGdsb2JidWYuZ2xfcGF0aGM7aSsrKSB7CisJICAgIGlmICghY2hlY2tUZXN0RmlsZShnbG9iYnVmLmdsX3BhdGh2W2ldKSkKKwkgICAgICAgIGNvbnRpbnVlOworCSAgICBpZiAodHN0LT5zdWZmaXggIT0gTlVMTCkgeworCQlyZXN1bHQgPSByZXN1bHRGaWxlbmFtZShnbG9iYnVmLmdsX3BhdGh2W2ldLCB0c3QtPm91dCwKKwkJCQkJdHN0LT5zdWZmaXgpOworCQlpZiAocmVzdWx0ID09IE5VTEwpIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiT3V0IG9mIG1lbW9yeSAhXG4iKTsKKwkJICAgIGZhdGFsRXJyb3IoKTsKKwkJfQorCSAgICB9IGVsc2UgeworCSAgICAgICAgcmVzdWx0ID0gTlVMTDsKKwkgICAgfQorCSAgICBpZiAodHN0LT5lcnIgIT0gTlVMTCkgeworCQllcnJvciA9IHJlc3VsdEZpbGVuYW1lKGdsb2JidWYuZ2xfcGF0aHZbaV0sIHRzdC0+b3V0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICB0c3QtPmVycik7CisJCWlmIChlcnJvciA9PSBOVUxMKSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgIk91dCBvZiBtZW1vcnkgIVxuIik7CisJCSAgICBmYXRhbEVycm9yKCk7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGVycm9yID0gTlVMTDsKKwkgICAgfQorCSAgICBpZiAoKHJlc3VsdCkgJiYoIWNoZWNrVGVzdEZpbGUocmVzdWx0KSkpIHsKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWlzc2luZyByZXN1bHQgZmlsZSAlc1xuIiwgcmVzdWx0KTsKKwkgICAgfSBlbHNlIGlmICgoZXJyb3IpICYmKCFjaGVja1Rlc3RGaWxlKGVycm9yKSkpIHsKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWlzc2luZyBlcnJvciBmaWxlICVzXG4iLCBlcnJvcik7CisJICAgIH0gZWxzZSB7CisJCW1lbSA9IHhtbE1lbVVzZWQoKTsKKwkJZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPSAwOworCQl0ZXN0RXJyb3JzU2l6ZSA9IDA7CisJCXRlc3RFcnJvcnNbMF0gPSAwOworCQlyZXMgPSB0c3QtPmZ1bmMoZ2xvYmJ1Zi5nbF9wYXRodltpXSwgcmVzdWx0LCBlcnJvciwKKwkJICAgICAgICAgICAgICAgIHRzdC0+b3B0aW9ucyB8IFhNTF9QQVJTRV9DT01QQUNUKTsKKwkJeG1sUmVzZXRMYXN0RXJyb3IoKTsKKwkJaWYgKHJlcyAhPSAwKSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZpbGUgJXMgZ2VuZXJhdGVkIGFuIGVycm9yXG4iLAorCQkgICAgICAgICAgICBnbG9iYnVmLmdsX3BhdGh2W2ldKTsKKwkJICAgIG5iX2Vycm9ycysrOworCQkgICAgZXJyKys7CisJCX0KKwkJZWxzZSBpZiAoeG1sTWVtVXNlZCgpICE9IG1lbSkgeworCQkgICAgaWYgKCh4bWxNZW1Vc2VkKCkgIT0gbWVtKSAmJgorCQkgICAgICAgIChleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9PSAwKSkgeworCQkJZnByaW50ZihzdGRlcnIsICJGaWxlICVzIGxlYWtlZCAlZCBieXRlc1xuIiwKKwkJCQlnbG9iYnVmLmdsX3BhdGh2W2ldLCB4bWxNZW1Vc2VkKCkgLSBtZW0pOworCQkJbmJfbGVha3MrKzsKKwkJCWVycisrOworCQkgICAgfQorCQl9CisJCXRlc3RFcnJvcnNTaXplID0gMDsKKwkgICAgfQorCSAgICBpZiAocmVzdWx0KQorCQlmcmVlKHJlc3VsdCk7CisJICAgIGlmIChlcnJvcikKKwkJZnJlZShlcnJvcik7CisJfQorCWdsb2JmcmVlKCZnbG9iYnVmKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RXJyb3JzU2l6ZSA9IDA7CisJdGVzdEVycm9yc1swXSA9IDA7CisJZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPSAwOworICAgICAgICByZXMgPSB0c3QtPmZ1bmMoTlVMTCwgTlVMTCwgTlVMTCwgdHN0LT5vcHRpb25zKTsKKwlpZiAocmVzICE9IDApIHsKKwkgICAgbmJfZXJyb3JzKys7CisJICAgIGVycisrOworCX0KKyAgICB9CisgICAgcmV0dXJuKGVycik7Cit9CisKK3N0YXRpYyBpbnQgdmVyYm9zZSA9IDA7CitzdGF0aWMgaW50IHRlc3RzX3F1aWV0ID0gMDsKKworc3RhdGljIGludAorcnVudGVzdChpbnQgaSkgeworICAgIGludCByZXQgPSAwLCByZXM7CisgICAgaW50IG9sZF9lcnJvcnMsIG9sZF90ZXN0cywgb2xkX2xlYWtzOworCisgICAgb2xkX2Vycm9ycyA9IG5iX2Vycm9yczsKKyAgICBvbGRfdGVzdHMgPSBuYl90ZXN0czsKKyAgICBvbGRfbGVha3MgPSBuYl9sZWFrczsKKyAgICBpZiAoKHRlc3RzX3F1aWV0ID09IDApICYmICh0ZXN0RGVzY3JpcHRpb25zW2ldLmRlc2MgIT0gTlVMTCkpCisJcHJpbnRmKCIjIyAlc1xuIiwgdGVzdERlc2NyaXB0aW9uc1tpXS5kZXNjKTsKKyAgICByZXMgPSBsYXVuY2hUZXN0cygmdGVzdERlc2NyaXB0aW9uc1tpXSk7CisgICAgaWYgKHJlcyAhPSAwKQorCXJldCsrOworICAgIGlmICh2ZXJib3NlKSB7CisJaWYgKChuYl9lcnJvcnMgPT0gb2xkX2Vycm9ycykgJiYgKG5iX2xlYWtzID09IG9sZF9sZWFrcykpCisJICAgIHByaW50ZigiUmFuICVkIHRlc3RzLCBubyBlcnJvcnNcbiIsIG5iX3Rlc3RzIC0gb2xkX3Rlc3RzKTsKKwllbHNlCisJICAgIHByaW50ZigiUmFuICVkIHRlc3RzLCAlZCBlcnJvcnMsICVkIGxlYWtzXG4iLAorCQkgICBuYl90ZXN0cyAtIG9sZF90ZXN0cywKKwkJICAgbmJfZXJyb3JzIC0gb2xkX2Vycm9ycywKKwkJICAgbmJfbGVha3MgLSBvbGRfbGVha3MpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworaW50CittYWluKGludCBhcmdjIEFUVFJJQlVURV9VTlVTRUQsIGNoYXIgKiphcmd2IEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpbnQgaSwgYSwgcmV0ID0gMDsKKyAgICBpbnQgc3Vic2V0ID0gMDsKKworICAgIGluaXRpYWxpemVMaWJ4bWwyKCk7CisKKyAgICBmb3IgKGEgPSAxOyBhIDwgYXJnYzthKyspIHsKKyAgICAgICAgaWYgKCFzdHJjbXAoYXJndlthXSwgIi12IikpCisJICAgIHZlcmJvc2UgPSAxOworICAgICAgICBlbHNlIGlmICghc3RyY21wKGFyZ3ZbYV0sICItcXVpZXQiKSkKKwkgICAgdGVzdHNfcXVpZXQgPSAxOworCWVsc2UgeworCSAgICBmb3IgKGkgPSAwOyB0ZXN0RGVzY3JpcHRpb25zW2ldLmZ1bmMgIT0gTlVMTDsgaSsrKSB7CisJICAgICAgICBpZiAoc3Ryc3RyKHRlc3REZXNjcmlwdGlvbnNbaV0uZGVzYywgYXJndlthXSkpIHsKKwkJICAgIHJldCArPSBydW50ZXN0KGkpOworCQkgICAgc3Vic2V0Kys7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKHN1YnNldCA9PSAwKSB7CisJZm9yIChpID0gMDsgdGVzdERlc2NyaXB0aW9uc1tpXS5mdW5jICE9IE5VTEw7IGkrKykgeworCSAgICByZXQgKz0gcnVudGVzdChpKTsKKwl9CisgICAgfQorICAgIGlmICgobmJfZXJyb3JzID09IDApICYmIChuYl9sZWFrcyA9PSAwKSkgeworICAgICAgICByZXQgPSAwOworCXByaW50ZigiVG90YWwgJWQgdGVzdHMsIG5vIGVycm9yc1xuIiwKKwkgICAgICAgbmJfdGVzdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IDE7CisJcHJpbnRmKCJUb3RhbCAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMsIG5iX2Vycm9ycywgbmJfbGVha3MpOworICAgIH0KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNlbHNlIC8qICEgTElCWE1MX09VVFBVVF9FTkFCTEVEICovCitpbnQKK21haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGZwcmludGYoc3RkZXJyLCAicnVudGVzdCByZXF1aXJlcyBvdXRwdXQgdG8gYmUgZW5hYmxlZCBpbiBsaWJ4bWwyXG4iKTsKKyAgICByZXR1cm4oMSk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvcnVueG1sY29uZi5jIGIvbGlieG1sMi0yLjcuNy9ydW54bWxjb25mLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhiMGNlNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvcnVueG1sY29uZi5jCkBAIC0wLDAgKzEsNjE3IEBACisvKgorICogcnVuc3VpdGUuYzogQyBwcm9ncmFtIHRvIHJ1biBsaWJ4bWwyIGFnYWludHMgcHVibGlzaGVkIHRlc3RzdWl0ZXMKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNpZmRlZiBIQVZFX0NPTkZJR19ICisjaW5jbHVkZSAibGlieG1sLmgiCisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisKKyNpZiAhZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKworI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHJlYWRlci5oPgorCisjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CisKKyNkZWZpbmUgTE9HRklMRSAicnVueG1sY29uZi5sb2ciCitzdGF0aWMgRklMRSAqbG9nZmlsZSA9IE5VTEw7CitzdGF0aWMgaW50IHZlcmJvc2UgPSAwOworCisjZGVmaW5lIE5CX0VYUEVDVEVEX0VSUk9SUyAxNQorCisjaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pCisKKyNkZWZpbmUgdnNucHJpbnRmIF92c25wcmludGYKKworI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKKworI2VuZGlmCisKK2NvbnN0IGNoYXIgKnNraXBwZWRfdGVzdHNbXSA9IHsKKy8qIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1YmxpYy14bWwtdGVzdHN1aXRlLzIwMDhKdWwvMDAwMC5odG1sICovCisgICAgInJtdC1uczEwLTAzNSIsCisgICAgTlVMTAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJRmlsZSBuYW1lIGFuZCBwYXRoIHV0aWxpdGllcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQgY2hlY2tUZXN0RmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIHN0cnVjdCBzdGF0IGJ1ZjsKKworICAgIGlmIChzdGF0KGZpbGVuYW1lLCAmYnVmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuKDApOworCisjaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pCisgICAgaWYgKCEoYnVmLnN0X21vZGUgJiBfU19JRlJFRykpCisgICAgICAgIHJldHVybigwKTsKKyNlbHNlCisgICAgaWYgKCFTX0lTUkVHKGJ1Zi5zdF9tb2RlKSkKKyAgICAgICAgcmV0dXJuKDApOworI2VuZGlmCisKKyAgICByZXR1cm4oMSk7Cit9CisKK3N0YXRpYyB4bWxDaGFyICpjb21wb3NlRGlyKGNvbnN0IHhtbENoYXIgKmRpciwgY29uc3QgeG1sQ2hhciAqcGF0aCkgeworICAgIGNoYXIgYnVmWzUwMF07CisKKyAgICBpZiAoZGlyID09IE5VTEwpIHJldHVybih4bWxTdHJkdXAocGF0aCkpOworICAgIGlmIChwYXRoID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHNucHJpbnRmKGJ1ZiwgNTAwLCAiJXMvJXMiLCAoY29uc3QgY2hhciAqKSBkaXIsIChjb25zdCBjaGFyICopIHBhdGgpOworICAgIHJldHVybih4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgYnVmKSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUxpYnhtbDIgc3BlY2lmaWMgcm91dGluZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50IG5iX3NraXBwZWQgPSAwOworc3RhdGljIGludCBuYl90ZXN0cyA9IDA7CitzdGF0aWMgaW50IG5iX2Vycm9ycyA9IDA7CitzdGF0aWMgaW50IG5iX2xlYWtzID0gMDsKKworLyoKKyAqIFdlIG5lZWQgdG8gdHJhcCBjYWxscyB0byB0aGUgcmVzb2x2ZXIgdG8gbm90IGFjY291bnQgbWVtb3J5IGZvciB0aGUgY2F0YWxvZworICogYW5kIG5vdCByZWx5IG9uIGFueSBleHRlcm5hbCByZXNvdXJjZXMuCisgKi8KK3N0YXRpYyB4bWxQYXJzZXJJbnB1dFB0cgordGVzdEV4dGVybmFsRW50aXR5TG9hZGVyKGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqSUQgQVRUUklCVVRFX1VOVVNFRCwKKwkJCSB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXQ7CisKKyAgICByZXQgPSB4bWxOZXdJbnB1dEZyb21GaWxlKGN0eHQsIChjb25zdCBjaGFyICopIFVSTCk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoKKyAqIFRyYXBwaW5nIHRoZSBlcnJvciBtZXNzYWdlcyBhdCB0aGUgZ2VuZXJpYyBsZXZlbCB0byBncmFiIHRoZSBlcXVpdmFsZW50IG9mCisgKiBzdGRlcnIgbWVzc2FnZXMgb24gQ0xJIHRvb2xzLgorICovCitzdGF0aWMgY2hhciB0ZXN0RXJyb3JzWzMyNzY5XTsKK3N0YXRpYyBpbnQgdGVzdEVycm9yc1NpemUgPSAwOworc3RhdGljIGludCBuYkVycm9yID0gMDsKK3N0YXRpYyBpbnQgbmJGYXRhbCA9IDA7CisKK3N0YXRpYyB2b2lkIHRlc3RfbG9nKGNvbnN0IGNoYXIgKm1zZywgLi4uKSB7CisgICAgdmFfbGlzdCBhcmdzOworICAgIGlmIChsb2dmaWxlICE9IE5VTEwpIHsKKyAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiXG4tLS0tLS0tLS0tLS1cbiIpOworCXZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisJdmZwcmludGYobG9nZmlsZSwgbXNnLCBhcmdzKTsKKwl2YV9lbmQoYXJncyk7CisJZnByaW50Zihsb2dmaWxlLCAiJXMiLCB0ZXN0RXJyb3JzKTsKKwl0ZXN0RXJyb3JzU2l6ZSA9IDA7IHRlc3RFcnJvcnNbMF0gPSAwOworICAgIH0KKyAgICBpZiAodmVyYm9zZSkgeworCXZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisJdmZwcmludGYoc3RkZXJyLCBtc2csIGFyZ3MpOworCXZhX2VuZChhcmdzKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit0ZXN0RXJyb3JIYW5kbGVyKHZvaWQgKnVzZXJEYXRhIEFUVFJJQlVURV9VTlVTRUQsIHhtbEVycm9yUHRyIGVycm9yKSB7CisgICAgaW50IHJlczsKKworICAgIGlmICh0ZXN0RXJyb3JzU2l6ZSA+PSAzMjc2OCkKKyAgICAgICAgcmV0dXJuOworICAgIHJlcyA9IHNucHJpbnRmKCZ0ZXN0RXJyb3JzW3Rlc3RFcnJvcnNTaXplXSwKKyAgICAgICAgICAgICAgICAgICAgMzI3NjggLSB0ZXN0RXJyb3JzU2l6ZSwKKwkJICAgIiVzOiVkOiAlc1xuIiwgKGVycm9yLT5maWxlID8gZXJyb3ItPmZpbGUgOiAiZW50aXR5IiksCisJCSAgIGVycm9yLT5saW5lLCBlcnJvci0+bWVzc2FnZSk7CisgICAgaWYgKGVycm9yLT5sZXZlbCA9PSBYTUxfRVJSX0ZBVEFMKQorICAgICAgICBuYkZhdGFsKys7CisgICAgZWxzZSBpZiAoZXJyb3ItPmxldmVsID09IFhNTF9FUlJfRVJST1IpCisgICAgICAgIG5iRXJyb3IrKzsKKyAgICBpZiAodGVzdEVycm9yc1NpemUgKyByZXMgPj0gMzI3NjgpIHsKKyAgICAgICAgLyogYnVmZmVyIGlzIGZ1bGwgKi8KKwl0ZXN0RXJyb3JzU2l6ZSA9IDMyNzY4OworCXRlc3RFcnJvcnNbdGVzdEVycm9yc1NpemVdID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RXJyb3JzU2l6ZSArPSByZXM7CisgICAgfQorICAgIHRlc3RFcnJvcnNbdGVzdEVycm9yc1NpemVdID0gMDsKK30KKworc3RhdGljIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0WFBhdGg7CisKK3N0YXRpYyB2b2lkCitpbml0aWFsaXplTGlieG1sMih2b2lkKSB7CisgICAgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPSAwOworICAgIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCgwKTsKKworICAgIHhtbE1lbVNldHVwKHhtbE1lbUZyZWUsIHhtbE1lbU1hbGxvYywgeG1sTWVtUmVhbGxvYywgeG1sTWVtb3J5U3RyZHVwKTsKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgeG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIodGVzdEV4dGVybmFsRW50aXR5TG9hZGVyKTsKKyAgICBjdHh0WFBhdGggPSB4bWxYUGF0aE5ld0NvbnRleHQoTlVMTCk7CisgICAgLyoKKyAgICAqIERlYWN0aXZhdGUgdGhlIGNhY2hlIGlmIGNyZWF0ZWQ7IG90aGVyd2lzZSB3ZSBoYXZlIHRvIGNyZWF0ZS9mcmVlIGl0CisgICAgKiBmb3IgZXZlcnkgdGVzdCwgc2luY2UgaXQgd2lsbCBjb25mdXNlIHRoZSBtZW1vcnkgbGVhayBkZXRlY3Rpb24uCisgICAgKiBOb3RlIHRoYXQgbm9ybWFsbHkgdGhpcyBuZWVkIG5vdCBiZSBkb25lLCBzaW5jZSB0aGUgY2FjaGUgaXMgbm90CisgICAgKiBjcmVhdGVkIHVudGlsIHNldCBleHBsaWNpdGVseSB3aXRoIHhtbFhQYXRoQ29udGV4dFNldENhY2hlKCk7CisgICAgKiBidXQgZm9yIHRlc3QgcHVycG9zZXMgaXQgaXMgc29tZXRpbWVzIHVzZWZ1bGwgdG8gYWN0aXZhdGUgdGhlCisgICAgKiBjYWNoZSBieSBkZWZhdWx0IGZvciB0aGUgd2hvbGUgbGlicmFyeS4KKyAgICAqLworICAgIGlmIChjdHh0WFBhdGgtPmNhY2hlICE9IE5VTEwpCisJeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGUoY3R4dFhQYXRoLCAwLCAtMSwgMCk7CisgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhOVUxMLCB0ZXN0RXJyb3JIYW5kbGVyKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUnVuIHRoZSB4bWxjb25mIHRlc3QgaWYgZm91bmQJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50Cit4bWxjb25mVGVzdEludmFsaWQoY29uc3QgY2hhciAqaWQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgb3B0aW9ucykgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworICAgIGludCByZXQgPSAxOworCisgICAgY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHRlc3RfbG9nKCJ0ZXN0ICVzIDogJXMgb3V0IG9mIG1lbW9yeVxuIiwKKwkgICAgICAgICBpZCwgZmlsZW5hbWUpOworICAgICAgICByZXR1cm4oMCk7CisgICAgfQorICAgIGRvYyA9IHhtbEN0eHRSZWFkRmlsZShjdHh0LCBmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIHRlc3RfbG9nKCJ0ZXN0ICVzIDogJXMgaW52YWxpZCBkb2N1bWVudCB0dXJuZWQgbm90IHdlbGwtZm9ybWVkIHRvb1xuIiwKKwkgICAgICAgICBpZCwgZmlsZW5hbWUpOworICAgIH0gZWxzZSB7CisgICAgLyogaW52YWxpZGl0eSBzaG91bGQgYmUgcmVwb3J0ZWQgYm90aCBpbiB0aGUgY29udGV4dCBhbmQgaW4gdGhlIGRvY3VtZW50ICovCisgICAgICAgIGlmICgoY3R4dC0+dmFsaWQgIT0gMCkgfHwgKGRvYy0+cHJvcGVydGllcyAmIFhNTF9ET0NfRFREVkFMSUQpKSB7CisJICAgIHRlc3RfbG9nKCJ0ZXN0ICVzIDogJXMgZmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGRvY3VtZW50XG4iLAorCQkgICAgIGlkLCBmaWxlbmFtZSk7CisJICAgIG5iX2Vycm9ycysrOworCSAgICByZXQgPSAwOworCX0KKwl4bWxGcmVlRG9jKGRvYyk7CisgICAgfQorICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50Cit4bWxjb25mVGVzdFZhbGlkKGNvbnN0IGNoYXIgKmlkLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IG9wdGlvbnMpIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICBpbnQgcmV0ID0gMTsKKworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICB0ZXN0X2xvZygidGVzdCAlcyA6ICVzIG91dCBvZiBtZW1vcnlcbiIsCisJICAgICAgICAgaWQsIGZpbGVuYW1lKTsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKyAgICBkb2MgPSB4bWxDdHh0UmVhZEZpbGUoY3R4dCwgZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICB0ZXN0X2xvZygidGVzdCAlcyA6ICVzIGZhaWxlZCB0byBwYXJzZSBhIHZhbGlkIGRvY3VtZW50XG4iLAorCSAgICAgICAgIGlkLCBmaWxlbmFtZSk7CisgICAgICAgIG5iX2Vycm9ycysrOworCXJldCA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAvKiB2YWxpZGl0eSBzaG91bGQgYmUgcmVwb3J0ZWQgYm90aCBpbiB0aGUgY29udGV4dCBhbmQgaW4gdGhlIGRvY3VtZW50ICovCisgICAgICAgIGlmICgoY3R4dC0+dmFsaWQgPT0gMCkgfHwgKChkb2MtPnByb3BlcnRpZXMgJiBYTUxfRE9DX0RURFZBTElEKSA9PSAwKSkgeworCSAgICB0ZXN0X2xvZygidGVzdCAlcyA6ICVzIGZhaWxlZCB0byB2YWxpZGF0ZSBhIHZhbGlkIGRvY3VtZW50XG4iLAorCQkgICAgIGlkLCBmaWxlbmFtZSk7CisJICAgIG5iX2Vycm9ycysrOworCSAgICByZXQgPSAwOworCX0KKwl4bWxGcmVlRG9jKGRvYyk7CisgICAgfQorICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50Cit4bWxjb25mVGVzdE5vdE5TV0YoY29uc3QgY2hhciAqaWQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgb3B0aW9ucykgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgaW50IHJldCA9IDE7CisKKyAgICAvKgorICAgICAqIEluIGNhc2Ugb2YgTmFtZXNwYWNlIGVycm9ycywgbGlieG1sMiB3aWxsIHN0aWxsIHBhcnNlIHRoZSBkb2N1bWVudAorICAgICAqIGJ1dCBsb2cgYSBOYW1lc2FwY2UgZXJyb3IuCisgICAgICovCisgICAgZG9jID0geG1sUmVhZEZpbGUoZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICB0ZXN0X2xvZygidGVzdCAlcyA6ICVzIGZhaWxlZCB0byBwYXJzZSB0aGUgWE1MXG4iLAorCSAgICAgICAgIGlkLCBmaWxlbmFtZSk7CisgICAgICAgIG5iX2Vycm9ycysrOworCXJldCA9IDA7CisgICAgfSBlbHNlIHsKKwlpZiAoKHhtbExhc3RFcnJvci5jb2RlID09IFhNTF9FUlJfT0spIHx8CisJICAgICh4bWxMYXN0RXJyb3IuZG9tYWluICE9IFhNTF9GUk9NX05BTUVTUEFDRSkpIHsKKwkgICAgdGVzdF9sb2coInRlc3QgJXMgOiAlcyBmYWlsZWQgdG8gZGV0ZWN0IG5hbWVzcGFjZSBlcnJvclxuIiwKKwkJICAgICBpZCwgZmlsZW5hbWUpOworCSAgICBuYl9lcnJvcnMrKzsKKwkgICAgcmV0ID0gMDsKKwl9CisJeG1sRnJlZURvYyhkb2MpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIGludAoreG1sY29uZlRlc3ROb3RXRihjb25zdCBjaGFyICppZCwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBvcHRpb25zKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICBpbnQgcmV0ID0gMTsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKyAgICBpZiAoZG9jICE9IE5VTEwpIHsKKyAgICAgICAgdGVzdF9sb2coInRlc3QgJXMgOiAlcyBmYWlsZWQgdG8gZGV0ZWN0IG5vdCB3ZWxsIGZvcm1lZG5lc3NcbiIsCisJICAgICAgICAgaWQsIGZpbGVuYW1lKTsKKyAgICAgICAgbmJfZXJyb3JzKys7CisJeG1sRnJlZURvYyhkb2MpOworCXJldCA9IDA7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50Cit4bWxjb25mVGVzdEl0ZW0oeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpbnQgcmV0ID0gLTE7CisgICAgeG1sQ2hhciAqdHlwZSA9IE5VTEw7CisgICAgeG1sQ2hhciAqZmlsZW5hbWUgPSBOVUxMOworICAgIHhtbENoYXIgKnVyaSA9IE5VTEw7CisgICAgeG1sQ2hhciAqYmFzZSA9IE5VTEw7CisgICAgeG1sQ2hhciAqaWQgPSBOVUxMOworICAgIHhtbENoYXIgKnJlYyA9IE5VTEw7CisgICAgeG1sQ2hhciAqdmVyc2lvbiA9IE5VTEw7CisgICAgeG1sQ2hhciAqZW50aXRpZXMgPSBOVUxMOworICAgIHhtbENoYXIgKmVkaXRpb24gPSBOVUxMOworICAgIGludCBvcHRpb25zID0gMDsKKyAgICBpbnQgbnN0ZXN0ID0gMDsKKyAgICBpbnQgbWVtLCBmaW5hbDsKKyAgICBpbnQgaTsKKworICAgIHRlc3RFcnJvcnNTaXplID0gMDsgdGVzdEVycm9yc1swXSA9IDA7CisgICAgbmJFcnJvciA9IDA7CisgICAgbmJGYXRhbCA9IDA7CisgICAgaWQgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgIklEIik7CisgICAgaWYgKGlkID09IE5VTEwpIHsKKyAgICAgICAgdGVzdF9sb2coInRlc3QgbWlzc2luZyBJRCwgbGluZSAlbGRcbiIsIHhtbEdldExpbmVObyhjdXIpKTsKKwlnb3RvIGVycm9yOworICAgIH0KKyAgICBmb3IgKGkgPSAwO3NraXBwZWRfdGVzdHNbaV0gIT0gTlVMTDtpKyspIHsKKyAgICAgICAgaWYgKCFzdHJjbXAoc2tpcHBlZF90ZXN0c1tpXSwgKGNoYXIgKikgaWQpKSB7CisJICAgIHRlc3RfbG9nKCJTa2lwcGluZyB0ZXN0ICVzIGZyb20gc2tpcHBlZCBsaXN0XG4iLCAoY2hhciAqKSBpZCk7CisJICAgIHJldCA9IDA7CisJICAgIG5iX3NraXBwZWQrKzsKKwkgICAgZ290byBlcnJvcjsKKwl9CisgICAgfQorICAgIHR5cGUgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgIlRZUEUiKTsKKyAgICBpZiAodHlwZSA9PSBOVUxMKSB7CisgICAgICAgIHRlc3RfbG9nKCJ0ZXN0ICVzIG1pc3NpbmcgVFlQRVxuIiwgKGNoYXIgKikgaWQpOworCWdvdG8gZXJyb3I7CisgICAgfQorICAgIHVyaSA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAiVVJJIik7CisgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisgICAgICAgIHRlc3RfbG9nKCJ0ZXN0ICVzIG1pc3NpbmcgVVJJXG4iLCAoY2hhciAqKSBpZCk7CisJZ290byBlcnJvcjsKKyAgICB9CisgICAgYmFzZSA9IHhtbE5vZGVHZXRCYXNlKGRvYywgY3VyKTsKKyAgICBmaWxlbmFtZSA9IGNvbXBvc2VEaXIoYmFzZSwgdXJpKTsKKyAgICBpZiAoIWNoZWNrVGVzdEZpbGUoKGNoYXIgKikgZmlsZW5hbWUpKSB7CisgICAgICAgIHRlc3RfbG9nKCJ0ZXN0ICVzIG1pc3NpbmcgZmlsZSAlcyBcbiIsIGlkLAorCSAgICAgICAgIChmaWxlbmFtZSA/IChjaGFyICopZmlsZW5hbWUgOiAiTlVMTCIpKTsKKwlnb3RvIGVycm9yOworICAgIH0KKworICAgIHZlcnNpb24gPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgIlZFUlNJT04iKTsKKworICAgIGVudGl0aWVzID0geG1sR2V0UHJvcChjdXIsIEJBRF9DQVNUICJFTlRJVElFUyIpOworICAgIGlmICgheG1sU3RyRXF1YWwoZW50aXRpZXMsIEJBRF9DQVNUICJub25lIikpIHsKKyAgICAgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfRFRETE9BRDsKKyAgICAgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9FTlQ7CisgICAgfQorICAgIHJlYyA9IHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAiUkVDT01NRU5EQVRJT04iKTsKKyAgICBpZiAoKHJlYyA9PSBOVUxMKSB8fAorICAgICAgICAoeG1sU3RyRXF1YWwocmVjLCBCQURfQ0FTVCAiWE1MMS4wIikpIHx8CisJKHhtbFN0ckVxdWFsKHJlYywgQkFEX0NBU1QgIlhNTDEuMC1lcnJhdGEyZSIpKSB8fAorCSh4bWxTdHJFcXVhbChyZWMsIEJBRF9DQVNUICJYTUwxLjAtZXJyYXRhM2UiKSkgfHwKKwkoeG1sU3RyRXF1YWwocmVjLCBCQURfQ0FTVCAiWE1MMS4wLWVycmF0YTRlIikpKSB7CisJaWYgKCh2ZXJzaW9uICE9IE5VTEwpICYmICgheG1sU3RyRXF1YWwodmVyc2lvbiwgQkFEX0NBU1QgIjEuMCIpKSkgeworCSAgICB0ZXN0X2xvZygiU2tpcHBpbmcgdGVzdCAlcyBmb3IgJXNcbiIsIChjaGFyICopIGlkLAorCSAgICAgICAgICAgICAoY2hhciAqKSB2ZXJzaW9uKTsKKwkgICAgcmV0ID0gMDsKKwkgICAgbmJfc2tpcHBlZCsrOworCSAgICBnb3RvIGVycm9yOworCX0KKwlyZXQgPSAxOworICAgIH0gZWxzZSBpZiAoKHhtbFN0ckVxdWFsKHJlYywgQkFEX0NBU1QgIk5TMS4wIikpIHx8CisJICAgICAgICh4bWxTdHJFcXVhbChyZWMsIEJBRF9DQVNUICJOUzEuMC1lcnJhdGExZSIpKSkgeworCXJldCA9IDE7CisJbnN0ZXN0ID0gMTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0X2xvZygiU2tpcHBpbmcgdGVzdCAlcyBmb3IgUkVDICVzXG4iLCAoY2hhciAqKSBpZCwgKGNoYXIgKikgcmVjKTsKKwlyZXQgPSAwOworCW5iX3NraXBwZWQrKzsKKwlnb3RvIGVycm9yOworICAgIH0KKyAgICBlZGl0aW9uID0geG1sR2V0UHJvcChjdXIsIEJBRF9DQVNUICJFRElUSU9OIik7CisgICAgaWYgKChlZGl0aW9uICE9IE5VTEwpICYmICh4bWxTdHJjaHIoZWRpdGlvbiwgJzUnKSA9PSBOVUxMKSkgeworICAgICAgICAvKiB0ZXN0IGxpbWl0ZWQgdG8gYWxsIHZlcnNpb25zIGJlZm9yZSA1dGggKi8KKwlvcHRpb25zIHw9IFhNTF9QQVJTRV9PTEQxMDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlc2V0IGVycm9ycyBhbmQgY2hlY2sgbWVtb3J5IHVzYWdlIGJlZm9yZSB0aGUgdGVzdAorICAgICAqLworICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgdGVzdEVycm9yc1NpemUgPSAwOyB0ZXN0RXJyb3JzWzBdID0gMDsKKyAgICBtZW0gPSB4bWxNZW1Vc2VkKCk7CisKKyAgICBpZiAoeG1sU3RyRXF1YWwodHlwZSwgQkFEX0NBU1QgIm5vdC13ZiIpKSB7CisgICAgICAgIGlmIChuc3Rlc3QgPT0gMCkKKwkgICAgeG1sY29uZlRlc3ROb3RXRigoY2hhciAqKSBpZCwgKGNoYXIgKikgZmlsZW5hbWUsIG9wdGlvbnMpOworICAgICAgICBlbHNlIAorCSAgICB4bWxjb25mVGVzdE5vdE5TV0YoKGNoYXIgKikgaWQsIChjaGFyICopIGZpbGVuYW1lLCBvcHRpb25zKTsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKHR5cGUsIEJBRF9DQVNUICJ2YWxpZCIpKSB7CisgICAgICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX0RURFZBTElEOworCXhtbGNvbmZUZXN0VmFsaWQoKGNoYXIgKikgaWQsIChjaGFyICopIGZpbGVuYW1lLCBvcHRpb25zKTsKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKHR5cGUsIEJBRF9DQVNUICJpbnZhbGlkIikpIHsKKyAgICAgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfRFREVkFMSUQ7CisJeG1sY29uZlRlc3RJbnZhbGlkKChjaGFyICopIGlkLCAoY2hhciAqKSBmaWxlbmFtZSwgb3B0aW9ucyk7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbCh0eXBlLCBCQURfQ0FTVCAiZXJyb3IiKSkgeworICAgICAgICB0ZXN0X2xvZygiU2tpcHBpbmcgZXJyb3IgdGVzdCAlcyBcbiIsIChjaGFyICopIGlkKTsKKwlyZXQgPSAwOworCW5iX3NraXBwZWQrKzsKKwlnb3RvIGVycm9yOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RfbG9nKCJ0ZXN0ICVzIHVua25vd24gVFlQRSB2YWx1ZSAlc1xuIiwgKGNoYXIgKikgaWQsIChjaGFyICopdHlwZSk7CisJcmV0ID0gLTE7CisJZ290byBlcnJvcjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlc2V0IGVycm9ycyBhbmQgY2hlY2sgbWVtb3J5IHVzYWdlIGFmdGVyIHRoZSB0ZXN0CisgICAgICovCisgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICBmaW5hbCA9IHhtbE1lbVVzZWQoKTsKKyAgICBpZiAoZmluYWwgPiBtZW0pIHsKKyAgICAgICAgdGVzdF9sb2coInRlc3QgJXMgOiAlcyBsZWFrZWQgJWQgYnl0ZXNcbiIsCisJICAgICAgICAgaWQsIGZpbGVuYW1lLCBmaW5hbCAtIG1lbSk7CisgICAgICAgIG5iX2xlYWtzKys7CisJeG1sTWVtRGlzcGxheUxhc3QobG9nZmlsZSwgZmluYWwgLSBtZW0pOworICAgIH0KKyAgICBuYl90ZXN0cysrOworCitlcnJvcjoKKyAgICBpZiAodHlwZSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHR5cGUpOworICAgIGlmIChlbnRpdGllcyAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGVudGl0aWVzKTsKKyAgICBpZiAoZWRpdGlvbiAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGVkaXRpb24pOworICAgIGlmICh2ZXJzaW9uICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUodmVyc2lvbik7CisgICAgaWYgKGZpbGVuYW1lICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoZmlsZW5hbWUpOworICAgIGlmICh1cmkgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZSh1cmkpOworICAgIGlmIChiYXNlICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoYmFzZSk7CisgICAgaWYgKGlkICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoaWQpOworICAgIGlmIChyZWMgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShyZWMpOworICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50Cit4bWxjb25mVGVzdENhc2VzKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyLCBpbnQgbGV2ZWwpIHsKKyAgICB4bWxDaGFyICpwcm9maWxlOworICAgIGludCByZXQgPSAwOworICAgIGludCB0ZXN0cyA9IDA7CisgICAgaW50IG91dHB1dCA9IDA7CisKKyAgICBpZiAobGV2ZWwgPT0gMSkgeworCXByb2ZpbGUgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgIlBST0ZJTEUiKTsKKwlpZiAocHJvZmlsZSAhPSBOVUxMKSB7CisJICAgIG91dHB1dCA9IDE7CisJICAgIGxldmVsKys7CisJICAgIHByaW50ZigiVGVzdCBjYXNlczogJXNcbiIsIChjaGFyICopIHByb2ZpbGUpOworCSAgICB4bWxGcmVlKHByb2ZpbGUpOworCX0KKyAgICB9CisgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgLyogbG9vayBvbmx5IGF0IGVsZW1lbnRzIHdlIGlnbm9yZSBldmVyeXRoaW5nIGVsc2UgKi8KKyAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJURVNUQ0FTRVMiKSkgeworCSAgICAgICAgcmV0ICs9IHhtbGNvbmZUZXN0Q2FzZXMoZG9jLCBjdXIsIGxldmVsKTsKKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJURVNUIikpIHsKKwkgICAgICAgIGlmICh4bWxjb25mVGVzdEl0ZW0oZG9jLCBjdXIpID49IDApCisJCSAgICByZXQrKzsKKwkJdGVzdHMrKzsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5oYW5kbGVkIGVsZW1lbnQgJXNcbiIsIChjaGFyICopY3VyLT5uYW1lKTsKKwkgICAgfQorCX0KKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBpZiAob3V0cHV0ID09IDEpIHsKKwlpZiAodGVzdHMgPiAwKQorCSAgICBwcmludGYoIlRlc3QgY2FzZXM6ICVkIHRlc3RzXG4iLCB0ZXN0cyk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50Cit4bWxjb25mVGVzdFN1aXRlKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgeG1sQ2hhciAqcHJvZmlsZTsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIHByb2ZpbGUgPSB4bWxHZXRQcm9wKGN1ciwgQkFEX0NBU1QgIlBST0ZJTEUiKTsKKyAgICBpZiAocHJvZmlsZSAhPSBOVUxMKSB7CisgICAgICAgIHByaW50ZigiVGVzdCBzdWl0ZTogJXNcbiIsIChjaGFyICopIHByb2ZpbGUpOworCXhtbEZyZWUocHJvZmlsZSk7CisgICAgfSBlbHNlCisgICAgICAgIHByaW50ZigiVGVzdCBzdWl0ZVxuIik7CisgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgLyogbG9vayBvbmx5IGF0IGVsZW1lbnRzIHdlIGlnbm9yZSBldmVyeXRoaW5nIGVsc2UgKi8KKyAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJURVNUQ0FTRVMiKSkgeworCSAgICAgICAgcmV0ICs9IHhtbGNvbmZUZXN0Q2FzZXMoZG9jLCBjdXIsIDEpOworCSAgICB9IGVsc2UgeworCSAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmhhbmRsZWQgZWxlbWVudCAlc1xuIiwgKGNoYXIgKiljdXItPm5hbWUpOworCSAgICB9CisJfQorICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgdm9pZAoreG1sY29uZkluZm8odm9pZCkgeworICAgIGZwcmludGYoc3RkZXJyLCAiICB5b3UgbmVlZCB0byBmZXRjaCBhbmQgZXh0cmFjdCB0aGVcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICBsYXRlc3QgWE1MIENvbmZvcm1hbmNlIFRlc3QgU3VpdGVzXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgaHR0cDovL3d3dy53My5vcmcvWE1ML1Rlc3QveG1sdHMyMDA4MDIwNS50YXIuZ3pcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICBzZWUgaHR0cDovL3d3dy53My5vcmcvWE1ML1Rlc3QvIGZvciBpbmZvcm1hdGlvbnNcbiIpOworfQorCitzdGF0aWMgaW50Cit4bWxjb25mVGVzdCh2b2lkKSB7CisgICAgY29uc3QgY2hhciAqY29uZnhtbCA9ICJ4bWxjb25mL3htbGNvbmYueG1sIjsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKCFjaGVja1Rlc3RGaWxlKGNvbmZ4bWwpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgaXMgbWlzc2luZyBcbiIsIGNvbmZ4bWwpOworCXhtbGNvbmZJbmZvKCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgZG9jID0geG1sUmVhZEZpbGUoY29uZnhtbCwgTlVMTCwgWE1MX1BBUlNFX05PRU5UKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBpcyBjb3JydXB0ZWQgXG4iLCBjb25meG1sKTsKKwl4bWxjb25mSW5mbygpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgY3VyID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoIXhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgIlRFU1RTVUlURSIpKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuZXhwZWN0ZWQgZm9ybWF0ICVzXG4iLCBjb25meG1sKTsKKwl4bWxjb25mSW5mbygpOworCXJldCA9IC0xOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IHhtbGNvbmZUZXN0U3VpdGUoZG9jLCBjdXIpOworICAgIH0KKyAgICB4bWxGcmVlRG9jKGRvYyk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVRoZSBkcml2ZXIgZm9yIHRoZSB0ZXN0cwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2ludAorbWFpbihpbnQgYXJnYyBBVFRSSUJVVEVfVU5VU0VELCBjaGFyICoqYXJndiBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaW50IHJldCA9IDA7CisgICAgaW50IG9sZF9lcnJvcnMsIG9sZF90ZXN0cywgb2xkX2xlYWtzOworCisgICAgbG9nZmlsZSA9IGZvcGVuKExPR0ZJTEUsICJ3Iik7CisgICAgaWYgKGxvZ2ZpbGUgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKwkgICAgICAgICJDb3VsZCBub3Qgb3BlbiB0aGUgbG9nIGZpbGUsIHJ1bm5pbmcgaW4gdmVyYm9zZSBtb2RlXG4iKTsKKwl2ZXJib3NlID0gMTsKKyAgICB9CisgICAgaW5pdGlhbGl6ZUxpYnhtbDIoKTsKKworICAgIGlmICgoYXJnYyA+PSAyKSAmJiAoIXN0cmNtcChhcmd2WzFdLCAiLXYiKSkpCisgICAgICAgIHZlcmJvc2UgPSAxOworCisKKyAgICBvbGRfZXJyb3JzID0gbmJfZXJyb3JzOworICAgIG9sZF90ZXN0cyA9IG5iX3Rlc3RzOworICAgIG9sZF9sZWFrcyA9IG5iX2xlYWtzOworICAgIHhtbGNvbmZUZXN0KCk7CisgICAgaWYgKChuYl9lcnJvcnMgPT0gb2xkX2Vycm9ycykgJiYgKG5iX2xlYWtzID09IG9sZF9sZWFrcykpCisJcHJpbnRmKCJSYW4gJWQgdGVzdHMsIG5vIGVycm9yc1xuIiwgbmJfdGVzdHMgLSBvbGRfdGVzdHMpOworICAgIGVsc2UKKwlwcmludGYoIlJhbiAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMgLSBvbGRfdGVzdHMsCisJICAgICAgIG5iX2Vycm9ycyAtIG9sZF9lcnJvcnMsCisJICAgICAgIG5iX2xlYWtzIC0gb2xkX2xlYWtzKTsKKyAgICBpZiAoKG5iX2Vycm9ycyA9PSAwKSAmJiAobmJfbGVha3MgPT0gMCkpIHsKKyAgICAgICAgcmV0ID0gMDsKKwlwcmludGYoIlRvdGFsICVkIHRlc3RzLCBubyBlcnJvcnNcbiIsCisJICAgICAgIG5iX3Rlc3RzKTsKKyAgICB9IGVsc2UgeworCXJldCA9IDE7CisJcHJpbnRmKCJUb3RhbCAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMsIG5iX2Vycm9ycywgbmJfbGVha3MpOworCXByaW50ZigiU2VlICVzIGZvciBkZXRhaWxlZCBvdXRwdXRcbiIsIExPR0ZJTEUpOworCWlmICgobmJfbGVha3MgPT0gMCkgJiYgKG5iX2Vycm9ycyA9PSBOQl9FWFBFQ1RFRF9FUlJPUlMpKSB7CisJICAgIHByaW50ZigiJWQgZXJyb3JzIHdlcmUgZXhwZWN0ZWRcbiIsIG5iX2Vycm9ycyk7CisJICAgIHJldCA9IDA7CisJfQorICAgIH0KKyAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eHRYUGF0aCk7CisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIHhtbE1lbW9yeUR1bXAoKTsKKworICAgIGlmIChsb2dmaWxlICE9IE5VTEwpCisgICAgICAgIGZjbG9zZShsb2dmaWxlKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2Vsc2UgLyogISBMSUJYTUxfWFBBVEhfRU5BQkxFRCAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgZnByaW50ZihzdGRlcnIsICIlcyBuZWVkIFhQYXRoIHN1cHBvcnRcbiIsIGFyZ3ZbMF0pOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3NjaGVtYXRyb24uYyBiL2xpYnhtbDItMi43Ljcvc2NoZW1hdHJvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NzA5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3NjaGVtYXRyb24uYwpAQCAtMCwwICsxLDE3ODUgQEAKKy8qCisgKiBzY2hlbWF0cm9uLmMgOiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2NoZW1hdHJvbiBzY2hlbWEgdmFsaWRpdHkgY2hlY2tpbmcKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsIFZlaWxsYXJkIDxkYW5pZWxAdmVpbGxhcmQuY29tPgorICovCisKKy8qCisgKiBUT0RPOgorICogKyBkb3VibGUgY2hlY2sgdGhlIHNlbWFudGljLCBlc3BlY2lhbGx5CisgKiAgICAgICAgLSBtdWx0aXBsZSBydWxlcyBhcHBseWluZyBpbiBhIHNpbmdsZSBwYXR0ZXJuL25vZGUKKyAqICAgICAgICAtIHRoZSBzZW1hbnRpYyBvZiBsaWJ4bWwyIHBhdHRlcm5zIHZzLiBYU0xUIHByb2R1Y3Rpb24gcmVmZXJlbmNlZAorICogICAgICAgICAgYnkgdGhlIHNwZWMuCisgKiArIGV4cG9ydCBvZiByZXN1bHRzIGluIFNWUkwKKyAqICsgZnVsbCBwYXJzaW5nIGFuZCBjb3ZlcmFnZSBvZiB0aGUgc3BlYywgY29uZm9ybWFuY2Ugb2YgdGhlIGlucHV0IHRvIHRoZQorICogICBzcGVjCisgKiArIGRpdmVyZ2VuY2VzIGJldHdlZW4gdGhlIGRyYWZ0IGFuZCB0aGUgSVNPIHByb3Bvc2VkIHN0YW5kYXJkIDotKAorICogKyBob29rIGFuZCB0ZXN0IGluY2x1ZGUKKyAqICsgdHJ5IGFuZCBjb21wYXJlIHdpdGggdGhlIFhTTFQgdmVyc2lvbgorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVECisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhdHRlcm4uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvc2NoZW1hdHJvbi5oPgorCisjZGVmaW5lIFNDSEVNQVRST05fUEFSU0VfT1BUSU9OUyBYTUxfUEFSU0VfTk9FTlQKKworI2RlZmluZSBTQ1RfT0xEX05TIEJBRF9DQVNUICJodHRwOi8vd3d3LmFzY2MubmV0L3htbC9zY2hlbWF0cm9uIgorCisjZGVmaW5lIFhNTF9TQ0hFTUFUUk9OX05TIEJBRF9DQVNUICJodHRwOi8vcHVybC5vY2xjLm9yZy9kc2RsL3NjaGVtYXRyb24iCisKKworc3RhdGljIGNvbnN0IHhtbENoYXIgKnhtbFNjaGVtYXRyb25OcyA9IFhNTF9TQ0hFTUFUUk9OX05TOworc3RhdGljIGNvbnN0IHhtbENoYXIgKnhtbE9sZFNjaGVtYXRyb25OcyA9IFNDVF9PTERfTlM7CisKKyNkZWZpbmUgSVNfU0NIRU1BVFJPTihub2RlLCBlbGVtKQkJCQkJXAorICAgKChub2RlICE9IE5VTEwpICYmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUgKSAmJgkJXAorICAgIChub2RlLT5ucyAhPSBOVUxMKSAmJgkJCQkJCVwKKyAgICAoeG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgKGNvbnN0IHhtbENoYXIgKikgZWxlbSkpICYmCQlcCisgICAgKCh4bWxTdHJFcXVhbChub2RlLT5ucy0+aHJlZiwgeG1sU2NoZW1hdHJvbk5zKSkgfHwJCQlcCisgICAgICh4bWxTdHJFcXVhbChub2RlLT5ucy0+aHJlZiwgeG1sT2xkU2NoZW1hdHJvbk5zKSkpKQorCisjZGVmaW5lIE5FWFRfU0NIRU1BVFJPTihub2RlKQkJCQkJCVwKKyAgIHdoaWxlIChub2RlICE9IE5VTEwpIHsJCQkJCQlcCisgICAgICAgaWYgKChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUgKSAmJiAobm9kZS0+bnMgIT0gTlVMTCkgJiYgCVwKKyAgICAgICAgICAgKCh4bWxTdHJFcXVhbChub2RlLT5ucy0+aHJlZiwgeG1sU2NoZW1hdHJvbk5zKSkgfHwJCVwKKwkgICAgKHhtbFN0ckVxdWFsKG5vZGUtPm5zLT5ocmVmLCB4bWxPbGRTY2hlbWF0cm9uTnMpKSkpCQlcCisJICAgYnJlYWs7CQkJCQkJCVwKKyAgICAgICBub2RlID0gbm9kZS0+bmV4dDsJCQkJCQlcCisgICB9CisKKy8qKgorICogVE9ETzoKKyAqCisgKiBtYWNybyB0byBmbGFnIHVuaW1wbGVtZW50ZWQgYmxvY2tzCisgKi8KKyNkZWZpbmUgVE9ETyAJCQkJCQkJCVwKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwJCQkJXAorCSAgICAiVW5pbXBsZW1lbnRlZCBibG9jayBhdCAlczolZFxuIiwJCQkJXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfU0NIRU1BVFJPTl9BU1NFUlQ9MSwKKyAgICBYTUxfU0NIRU1BVFJPTl9SRVBPUlQ9MgorfSB4bWxTY2hlbWF0cm9uVGVzdFR5cGU7CisKKy8qKgorICogX3htbFNjaGVtYXRyb25UZXN0OgorICoKKyAqIEEgU2NoZW1hdHJvbnMgdGVzdCwgZWl0aGVyIGFuIGFzc2VydCBvciBhIHJlcG9ydAorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hdHJvblRlc3QgeG1sU2NoZW1hdHJvblRlc3Q7Cit0eXBlZGVmIHhtbFNjaGVtYXRyb25UZXN0ICp4bWxTY2hlbWF0cm9uVGVzdFB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hdHJvblRlc3QgeworICAgIHhtbFNjaGVtYXRyb25UZXN0UHRyIG5leHQ7CS8qIHRoZSBuZXh0IHRlc3QgaW4gdGhlIGxpc3QgKi8KKyAgICB4bWxTY2hlbWF0cm9uVGVzdFR5cGUgdHlwZTsJLyogdGhlIHRlc3QgdHlwZSAqLworICAgIHhtbE5vZGVQdHIgbm9kZTsJCS8qIHRoZSBub2RlIGluIHRoZSB0cmVlICovCisgICAgeG1sQ2hhciAqdGVzdDsJCS8qIHRoZSBleHByZXNzaW9uIHRvIHRlc3QgKi8KKyAgICB4bWxYUGF0aENvbXBFeHByUHRyIGNvbXA7CS8qIHRoZSBjb21waWxlZCBleHByZXNzaW9uICovCisgICAgeG1sQ2hhciAqcmVwb3J0OwkJLyogdGhlIG1lc3NhZ2UgdG8gcmVwb3J0ICovCit9OworCisvKioKKyAqIF94bWxTY2hlbWF0cm9uUnVsZToKKyAqCisgKiBBIFNjaGVtYXRyb25zIHJ1bGUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYXRyb25SdWxlIHhtbFNjaGVtYXRyb25SdWxlOwordHlwZWRlZiB4bWxTY2hlbWF0cm9uUnVsZSAqeG1sU2NoZW1hdHJvblJ1bGVQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYXRyb25SdWxlIHsKKyAgICB4bWxTY2hlbWF0cm9uUnVsZVB0ciBuZXh0OwkvKiB0aGUgbmV4dCBydWxlIGluIHRoZSBsaXN0ICovCisgICAgeG1sU2NoZW1hdHJvblJ1bGVQdHIgcGF0bmV4dDsvKiB0aGUgbmV4dCBydWxlIGluIHRoZSBwYXR0ZXJuIGxpc3QgKi8KKyAgICB4bWxOb2RlUHRyIG5vZGU7CQkvKiB0aGUgbm9kZSBpbiB0aGUgdHJlZSAqLworICAgIHhtbENoYXIgKmNvbnRleHQ7CQkvKiB0aGUgY29udGV4dCBldmFsdWF0aW9uIHJ1bGUgKi8KKyAgICB4bWxTY2hlbWF0cm9uVGVzdFB0ciB0ZXN0czsJLyogdGhlIGxpc3Qgb2YgdGVzdHMgKi8KKyAgICB4bWxQYXR0ZXJuUHRyIHBhdHRlcm47CS8qIHRoZSBjb21waWxlZCBwYXR0ZXJuIGFzc29jaWF0ZWQgKi8KKyAgICB4bWxDaGFyICpyZXBvcnQ7CQkvKiB0aGUgbWVzc2FnZSB0byByZXBvcnQgKi8KK307CisKKy8qKgorICogX3htbFNjaGVtYXRyb25QYXR0ZXJuOgorICoKKyAqIEEgU2NoZW1hdHJvbnMgcGF0dGVybgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hdHJvblBhdHRlcm4geG1sU2NoZW1hdHJvblBhdHRlcm47Cit0eXBlZGVmIHhtbFNjaGVtYXRyb25QYXR0ZXJuICp4bWxTY2hlbWF0cm9uUGF0dGVyblB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hdHJvblBhdHRlcm4geworICAgIHhtbFNjaGVtYXRyb25QYXR0ZXJuUHRyIG5leHQ7LyogdGhlIG5leHQgcGF0dGVybiBpbiB0aGUgbGlzdCAqLworICAgIHhtbFNjaGVtYXRyb25SdWxlUHRyIHJ1bGVzOwkvKiB0aGUgbGlzdCBvZiBydWxlcyAqLworICAgIHhtbENoYXIgKm5hbWU7CQkvKiB0aGUgbmFtZSBvZiB0aGUgcGF0dGVybiAqLworfTsKKworLyoqCisgKiBfeG1sU2NoZW1hdHJvbjoKKyAqCisgKiBBIFNjaGVtYXRyb25zIGRlZmluaXRpb24KKyAqLworc3RydWN0IF94bWxTY2hlbWF0cm9uIHsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOwkvKiBzY2hlbWEgbmFtZSAqLworICAgIGludCBwcmVzZXJ2ZTsJCS8qIHdhcyB0aGUgZG9jdW1lbnQgcGFzc2VkIGJ5IHRoZSB1c2VyICovCisgICAgeG1sRG9jUHRyIGRvYzsJCS8qIHBvaW50ZXIgdG8gdGhlIHBhcnNlZCBkb2N1bWVudCAqLworICAgIGludCBmbGFnczsJCQkvKiBzcGVjaWZpYyB0byB0aGlzIHNjaGVtYXRyb24gKi8KKworICAgIHZvaWQgKl9wcml2YXRlOwkJLyogdW51c2VkIGJ5IHRoZSBsaWJyYXJ5ICovCisgICAgeG1sRGljdFB0ciBkaWN0OwkJLyogdGhlIGRpY3Rpb25uYXJ5IHVzZWQgaW50ZXJuYWxseSAqLworCisgICAgY29uc3QgeG1sQ2hhciAqdGl0bGU7CS8qIHRoZSB0aXRsZSBpZiBhbnkgKi8KKworICAgIGludCBuYk5zOwkJCS8qIHRoZSBudW1iZXIgb2YgbmFtZXNwYWNlcyAqLworCisgICAgaW50IG5iUGF0dGVybjsJCS8qIHRoZSBudW1iZXIgb2YgcGF0dGVybnMgKi8KKyAgICB4bWxTY2hlbWF0cm9uUGF0dGVyblB0ciBwYXR0ZXJuczsvKiB0aGUgcGF0dGVybnMgZm91bmQgKi8KKyAgICB4bWxTY2hlbWF0cm9uUnVsZVB0ciBydWxlczsJLyogdGhlIHJ1bGVzIGdhdGhlcmVkICovCisgICAgaW50IG5iTmFtZXNwYWNlczsJCS8qIG51bWJlciBvZiBuYW1lc3BhY2VzIGluIHRoZSBhcnJheSAqLworICAgIGludCBtYXhOYW1lc3BhY2VzOwkJLyogc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBjb25zdCB4bWxDaGFyICoqbmFtZXNwYWNlczsJLyogdGhlIGFycmF5IG9mIG5hbWVzcGFjZXMgKi8KK307CisKKy8qKgorICogeG1sU2NoZW1hdHJvblZhbGlkQ3R4dDoKKyAqCisgKiBBIFNjaGVtYXRyb25zIHZhbGlkYXRpb24gY29udGV4dAorICovCitzdHJ1Y3QgX3htbFNjaGVtYXRyb25WYWxpZEN0eHQgeworICAgIGludCB0eXBlOworICAgIGludCBmbGFnczsJCQkvKiBhbiBvciBvZiB4bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zICovCisKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisgICAgaW50IG5iZXJyb3JzOworICAgIGludCBlcnI7CisKKyAgICB4bWxTY2hlbWF0cm9uUHRyIHNjaGVtYTsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgeGN0eHQ7CisKKyAgICBGSUxFICpvdXRwdXRGaWxlOwkJLyogaWYgdXNpbmcgWE1MX1NDSEVNQVRST05fT1VUX0ZJTEUgKi8KKyAgICB4bWxCdWZmZXJQdHIgb3V0cHV0QnVmZmVyOwkvKiBpZiB1c2luZyBYTUxfU0NIRU1BVFJPTl9PVVRfQlVGRkVSICovCisgICAgeG1sT3V0cHV0V3JpdGVDYWxsYmFjayBpb3dyaXRlOyAvKiBpZiB1c2luZyBYTUxfU0NIRU1BVFJPTl9PVVRfSU8gKi8KKyAgICB4bWxPdXRwdXRDbG9zZUNhbGxiYWNrICBpb2Nsb3NlOworICAgIHZvaWQgKmlvY3R4OworCisgICAgLyogZXJyb3IgcmVwb3J0aW5nIGRhdGEgKi8KKyAgICB2b2lkICp1c2VyRGF0YTsgICAgICAgICAgICAgICAgICAgICAgLyogdXNlciBzcGVjaWZpYyBkYXRhIGJsb2NrICovCisgICAgeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jIGVycm9yOy8qIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIGVycm9ycyAqLworICAgIHhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm5pbmc7LyogY2FsbGJhY2sgaW4gY2FzZSBvZiB3YXJuaW5nICovCisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3I7ICAgICAgIC8qIHRoZSBzdHJ1Y3R1cmVkIGZ1bmN0aW9uICovCit9OworCitzdHJ1Y3QgX3htbFNjaGVtYXRyb25QYXJzZXJDdHh0IHsKKyAgICBpbnQgdHlwZTsKKyAgICBjb25zdCB4bWxDaGFyICpVUkw7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICBpbnQgcHJlc2VydmU7ICAgICAgICAgICAgICAgLyogV2hldGhlciB0aGUgZG9jIHNob3VsZCBiZSBmcmVlZCAgKi8KKyAgICBjb25zdCBjaGFyICpidWZmZXI7CisgICAgaW50IHNpemU7CisKKyAgICB4bWxEaWN0UHRyIGRpY3Q7ICAgICAgICAgICAgLyogZGljdGlvbm5hcnkgZm9yIGludGVybmVkIHN0cmluZyBuYW1lcyAqLworCisgICAgaW50IG5iZXJyb3JzOworICAgIGludCBlcnI7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIHhjdHh0OwkvKiB0aGUgWFBhdGggY29udGV4dCB1c2VkIGZvciBjb21waWxhdGlvbiAqLworICAgIHhtbFNjaGVtYXRyb25QdHIgc2NoZW1hOworCisgICAgaW50IG5iTmFtZXNwYWNlczsJCS8qIG51bWJlciBvZiBuYW1lc3BhY2VzIGluIHRoZSBhcnJheSAqLworICAgIGludCBtYXhOYW1lc3BhY2VzOwkJLyogc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBjb25zdCB4bWxDaGFyICoqbmFtZXNwYWNlczsJLyogdGhlIGFycmF5IG9mIG5hbWVzcGFjZXMgKi8KKworICAgIGludCBuYkluY2x1ZGVzOwkJLyogbnVtYmVyIG9mIGluY2x1ZGVzIGluIHRoZSBhcnJheSAqLworICAgIGludCBtYXhJbmNsdWRlczsJCS8qIHNpemUgb2YgdGhlIGFycmF5ICovCisgICAgeG1sTm9kZVB0ciAqaW5jbHVkZXM7CS8qIHRoZSBhcnJheSBvZiBpbmNsdWRlcyAqLworCisgICAgLyogZXJyb3IgcmVwb3J0aW5nIGRhdGEgKi8KKyAgICB2b2lkICp1c2VyRGF0YTsgICAgICAgICAgICAgICAgICAgICAgLyogdXNlciBzcGVjaWZpYyBkYXRhIGJsb2NrICovCisgICAgeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jIGVycm9yOy8qIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIGVycm9ycyAqLworICAgIHhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm5pbmc7LyogY2FsbGJhY2sgaW4gY2FzZSBvZiB3YXJuaW5nICovCisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3I7ICAgICAgIC8qIHRoZSBzdHJ1Y3R1cmVkIGZ1bmN0aW9uICovCit9OworCisjZGVmaW5lIFhNTF9TVFJPTl9DVFhUX1BBUlNFUiAxCisjZGVmaW5lIFhNTF9TVFJPTl9DVFhUX1ZBTElEQVRPUiAyCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlFcnJvciByZXBvcnRpbmcJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeToKKyAqIEBub2RlOiBhIGNvbnRleHQgbm9kZQorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWF0cm9uUEVyck1lbW9yeSh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXh0cmEsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICBpZiAoY3R4dCAhPSBOVUxMKQorICAgICAgICBjdHh0LT5uYmVycm9ycysrOworICAgIF9feG1sU2ltcGxlRXJyb3IoWE1MX0ZST01fU0NIRU1BU1AsIFhNTF9FUlJfTk9fTUVNT1JZLCBub2RlLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgZXh0cmEpOworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25QRXJyOgorICogQGN0eHQ6IHRoZSBwYXJzaW5nIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgY29udGV4dCBub2RlCisgKiBAZXJyb3I6IHRoZSBlcnJvciBjb2RlCisgKiBAbXNnOiB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6IGV4dHJhIGRhdGEKKyAqIEBzdHIyOiBleHRyYSBkYXRhCisgKiAKKyAqIEhhbmRsZSBhIHBhcnNlciBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hdHJvblBFcnIoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQoreworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzY2hhbm5lbCA9IE5VTEw7CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGN0eHQtPm5iZXJyb3JzKys7CisgICAgICAgIGNoYW5uZWwgPSBjdHh0LT5lcnJvcjsKKyAgICAgICAgZGF0YSA9IGN0eHQtPnVzZXJEYXRhOworCXNjaGFubmVsID0gY3R4dC0+c2Vycm9yOworICAgIH0KKyAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsIGNoYW5uZWwsIGRhdGEsIGN0eHQsIG5vZGUsIFhNTF9GUk9NX1NDSEVNQVNQLAorICAgICAgICAgICAgICAgICAgICBlcnJvciwgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMiwgTlVMTCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLCBzdHIxLCBzdHIyKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWF0cm9uVlR5cGVFcnJNZW1vcnk6CisgKiBAbm9kZTogYSBjb250ZXh0IG5vZGUKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGNvbmRpdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hdHJvblZFcnJNZW1vcnkoeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXh0cmEsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGN0eHQtPm5iZXJyb3JzKys7CisgICAgICAgIGN0eHQtPmVyciA9IFhNTF9TQ0hFTUFWX0lOVEVSTkFMOworICAgIH0KKyAgICBfX3htbFNpbXBsZUVycm9yKFhNTF9GUk9NX1NDSEVNQVNWLCBYTUxfRVJSX05PX01FTU9SWSwgbm9kZSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgIGV4dHJhKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUGFyc2luZyBhbmQgY29tcGlsYXRpb24gb2YgdGhlIFNjaGVtYXRyb250cm9ucwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFNjaGVtYXRyb25BZGRUZXN0OgorICogQGN0eHQ6IHRoZSBzY2hlbWEgcGFyc2luZyBjb250ZXh0CisgKiBAdHlwZTogIHRoZSB0eXBlIG9mIHRlc3QKKyAqIEBydWxlOiAgdGhlIHBhcmVudCBydWxlCisgKiBAbm9kZTogIHRoZSBub2RlIGhvc3RpbmcgdGhlIHRlc3QKKyAqIEB0ZXN0OiB0aGUgYXNzb2NpYXRlZCB0ZXN0CisgKiBAcmVwb3J0OiB0aGUgYXNzb2NpYXRlZCByZXBvcnQgc3RyaW5nCisgKgorICogQWRkIGEgdGVzdCB0byBhIHNjaGVtYXRyb24KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcG9pbnRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYXRyb25UZXN0UHRyCit4bWxTY2hlbWF0cm9uQWRkVGVzdCh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hdHJvblRlc3RUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWF0cm9uUnVsZVB0ciBydWxlLAorICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlLCB4bWxDaGFyICp0ZXN0LCB4bWxDaGFyICpyZXBvcnQpCit7CisgICAgeG1sU2NoZW1hdHJvblRlc3RQdHIgcmV0OworICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAocnVsZSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSB8fAorICAgICAgICAodGVzdCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgLyoKKyAgICAgKiB0cnkgZmlyc3QgdG8gY29tcGlsZSB0aGUgdGVzdCBleHByZXNzaW9uCisgICAgICovCisgICAgY29tcCA9IHhtbFhQYXRoQ3R4dENvbXBpbGUoY3R4dC0+eGN0eHQsIHRlc3QpOworICAgIGlmIChjb21wID09IE5VTEwpIHsKKwl4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBub2RlLAorCSAgICBYTUxfU0NIRU1BUF9OT1JPT1QsCisJICAgICJGYWlsZWQgdG8gY29tcGlsZSB0ZXN0IGV4cHJlc3Npb24gJXMiLAorCSAgICB0ZXN0LCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgcmV0ID0gKHhtbFNjaGVtYXRyb25UZXN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYXRyb25UZXN0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25QRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIHNjaGVtYSB0ZXN0Iiwgbm9kZSk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWF0cm9uVGVzdCkpOworICAgIHJldC0+dHlwZSA9IHR5cGU7CisgICAgcmV0LT5ub2RlID0gbm9kZTsKKyAgICByZXQtPnRlc3QgPSB0ZXN0OworICAgIHJldC0+Y29tcCA9IGNvbXA7CisgICAgcmV0LT5yZXBvcnQgPSByZXBvcnQ7CisgICAgcmV0LT5uZXh0ID0gTlVMTDsKKyAgICBpZiAocnVsZS0+dGVzdHMgPT0gTlVMTCkgeworCXJ1bGUtPnRlc3RzID0gcmV0OworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25UZXN0UHRyIHByZXYgPSBydWxlLT50ZXN0czsKKworCXdoaWxlIChwcmV2LT5uZXh0ICE9IE5VTEwpCisJICAgICBwcmV2ID0gcHJldi0+bmV4dDsKKyAgICAgICAgcHJldi0+bmV4dCA9IHJldDsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25GcmVlVGVzdHM6CisgKiBAdGVzdHM6ICBhIGxpc3Qgb2YgdGVzdHMKKyAqCisgKiBGcmVlIGEgbGlzdCBvZiB0ZXN0cy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYXRyb25GcmVlVGVzdHMoeG1sU2NoZW1hdHJvblRlc3RQdHIgdGVzdHMpIHsKKyAgICB4bWxTY2hlbWF0cm9uVGVzdFB0ciBuZXh0OworCisgICAgd2hpbGUgKHRlc3RzICE9IE5VTEwpIHsKKyAgICAgICAgbmV4dCA9IHRlc3RzLT5uZXh0OworCWlmICh0ZXN0cy0+dGVzdCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHRlc3RzLT50ZXN0KTsKKwlpZiAodGVzdHMtPmNvbXAgIT0gTlVMTCkKKwkgICAgeG1sWFBhdGhGcmVlQ29tcEV4cHIodGVzdHMtPmNvbXApOworCWlmICh0ZXN0cy0+cmVwb3J0ICE9IE5VTEwpCisJICAgIHhtbEZyZWUodGVzdHMtPnJlcG9ydCk7CisJeG1sRnJlZSh0ZXN0cyk7CisJdGVzdHMgPSBuZXh0OworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWF0cm9uQWRkUnVsZToKKyAqIEBjdHh0OiB0aGUgc2NoZW1hIHBhcnNpbmcgY29udGV4dAorICogQHNjaGVtYTogIGEgc2NoZW1hIHN0cnVjdHVyZQorICogQG5vZGU6ICB0aGUgbm9kZSBob3N0aW5nIHRoZSBydWxlCisgKiBAY29udGV4dDogdGhlIGFzc29jaWF0ZWQgY29udGV4dCBzdHJpbmcKKyAqIEByZXBvcnQ6IHRoZSBhc3NvY2lhdGVkIHJlcG9ydCBzdHJpbmcKKyAqCisgKiBBZGQgYSBydWxlIHRvIGEgc2NoZW1hdHJvbgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwb2ludGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sU2NoZW1hdHJvblJ1bGVQdHIKK3htbFNjaGVtYXRyb25BZGRSdWxlKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFNjaGVtYXRyb25QdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hdHJvblBhdHRlcm5QdHIgcGF0LCB4bWxOb2RlUHRyIG5vZGUsCisJCSAgICAgeG1sQ2hhciAqY29udGV4dCwgeG1sQ2hhciAqcmVwb3J0KQoreworICAgIHhtbFNjaGVtYXRyb25SdWxlUHRyIHJldDsKKyAgICB4bWxQYXR0ZXJuUHRyIHBhdHRlcm47CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSB8fAorICAgICAgICAoY29udGV4dCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgLyoKKyAgICAgKiBUcnkgZmlyc3QgdG8gY29tcGlsZSB0aGUgcGF0dGVybgorICAgICAqLworICAgIHBhdHRlcm4gPSB4bWxQYXR0ZXJuY29tcGlsZShjb250ZXh0LCBjdHh0LT5kaWN0LCBYTUxfUEFUVEVSTl9YUEFUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+bmFtZXNwYWNlcyk7CisgICAgaWYgKHBhdHRlcm4gPT0gTlVMTCkgeworCXhtbFNjaGVtYXRyb25QRXJyKGN0eHQsIG5vZGUsCisJICAgIFhNTF9TQ0hFTUFQX05PUk9PVCwKKwkgICAgIkZhaWxlZCB0byBjb21waWxlIGNvbnRleHQgZXhwcmVzc2lvbiAlcyIsCisJICAgIGNvbnRleHQsIE5VTEwpOworICAgIH0KKworICAgIHJldCA9ICh4bWxTY2hlbWF0cm9uUnVsZVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWF0cm9uUnVsZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBzY2hlbWEgcnVsZSIsIG5vZGUpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hdHJvblJ1bGUpKTsKKyAgICByZXQtPm5vZGUgPSBub2RlOworICAgIHJldC0+Y29udGV4dCA9IGNvbnRleHQ7CisgICAgcmV0LT5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICByZXQtPnJlcG9ydCA9IHJlcG9ydDsKKyAgICByZXQtPm5leHQgPSBOVUxMOworICAgIGlmIChzY2hlbWEtPnJ1bGVzID09IE5VTEwpIHsKKwlzY2hlbWEtPnJ1bGVzID0gcmV0OworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25SdWxlUHRyIHByZXYgPSBzY2hlbWEtPnJ1bGVzOworCisJd2hpbGUgKHByZXYtPm5leHQgIT0gTlVMTCkKKwkgICAgIHByZXYgPSBwcmV2LT5uZXh0OworICAgICAgICBwcmV2LT5uZXh0ID0gcmV0OworICAgIH0KKyAgICByZXQtPnBhdG5leHQgPSBOVUxMOworICAgIGlmIChwYXQtPnJ1bGVzID09IE5VTEwpIHsKKwlwYXQtPnJ1bGVzID0gcmV0OworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25SdWxlUHRyIHByZXYgPSBwYXQtPnJ1bGVzOworCisJd2hpbGUgKHByZXYtPnBhdG5leHQgIT0gTlVMTCkKKwkgICAgIHByZXYgPSBwcmV2LT5wYXRuZXh0OworICAgICAgICBwcmV2LT5wYXRuZXh0ID0gcmV0OworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvbkZyZWVSdWxlczoKKyAqIEBydWxlczogIGEgbGlzdCBvZiBydWxlcworICoKKyAqIEZyZWUgYSBsaXN0IG9mIHJ1bGVzLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hdHJvbkZyZWVSdWxlcyh4bWxTY2hlbWF0cm9uUnVsZVB0ciBydWxlcykgeworICAgIHhtbFNjaGVtYXRyb25SdWxlUHRyIG5leHQ7CisKKyAgICB3aGlsZSAocnVsZXMgIT0gTlVMTCkgeworICAgICAgICBuZXh0ID0gcnVsZXMtPm5leHQ7CisJaWYgKHJ1bGVzLT50ZXN0cykKKwkgICAgeG1sU2NoZW1hdHJvbkZyZWVUZXN0cyhydWxlcy0+dGVzdHMpOworCWlmIChydWxlcy0+Y29udGV4dCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHJ1bGVzLT5jb250ZXh0KTsKKwlpZiAocnVsZXMtPnBhdHRlcm4pCisJICAgIHhtbEZyZWVQYXR0ZXJuKHJ1bGVzLT5wYXR0ZXJuKTsKKwlpZiAocnVsZXMtPnJlcG9ydCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHJ1bGVzLT5yZXBvcnQpOworCXhtbEZyZWUocnVsZXMpOworCXJ1bGVzID0gbmV4dDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvbkFkZFBhdHRlcm46CisgKiBAY3R4dDogdGhlIHNjaGVtYSBwYXJzaW5nIGNvbnRleHQKKyAqIEBzY2hlbWE6ICBhIHNjaGVtYSBzdHJ1Y3R1cmUKKyAqIEBub2RlOiAgdGhlIG5vZGUgaG9zdGluZyB0aGUgcGF0dGVybgorICogQGlkOiB0aGUgaWQgb3IgbmFtZSBvZiB0aGUgcGF0dGVybgorICoKKyAqIEFkZCBhIHBhdHRlcm4gdG8gYSBzY2hlbWF0cm9uCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBvaW50ZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxTY2hlbWF0cm9uUGF0dGVyblB0cgoreG1sU2NoZW1hdHJvbkFkZFBhdHRlcm4oeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYXRyb25QdHIgc2NoZW1hLCB4bWxOb2RlUHRyIG5vZGUsIHhtbENoYXIgKm5hbWUpCit7CisgICAgeG1sU2NoZW1hdHJvblBhdHRlcm5QdHIgcmV0OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkgfHwgKG5hbWUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIHJldCA9ICh4bWxTY2hlbWF0cm9uUGF0dGVyblB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWF0cm9uUGF0dGVybikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBzY2hlbWEgcGF0dGVybiIsIG5vZGUpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hdHJvblBhdHRlcm4pKTsKKyAgICByZXQtPm5hbWUgPSBuYW1lOworICAgIHJldC0+bmV4dCA9IE5VTEw7CisgICAgaWYgKHNjaGVtYS0+cGF0dGVybnMgPT0gTlVMTCkgeworCXNjaGVtYS0+cGF0dGVybnMgPSByZXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sU2NoZW1hdHJvblBhdHRlcm5QdHIgcHJldiA9IHNjaGVtYS0+cGF0dGVybnM7CisKKwl3aGlsZSAocHJldi0+bmV4dCAhPSBOVUxMKQorCSAgICAgcHJldiA9IHByZXYtPm5leHQ7CisgICAgICAgIHByZXYtPm5leHQgPSByZXQ7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWF0cm9uRnJlZVBhdHRlcm5zOgorICogQHBhdHRlcm5zOiAgYSBsaXN0IG9mIHBhdHRlcm5zCisgKgorICogRnJlZSBhIGxpc3Qgb2YgcGF0dGVybnMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWF0cm9uRnJlZVBhdHRlcm5zKHhtbFNjaGVtYXRyb25QYXR0ZXJuUHRyIHBhdHRlcm5zKSB7CisgICAgeG1sU2NoZW1hdHJvblBhdHRlcm5QdHIgbmV4dDsKKworICAgIHdoaWxlIChwYXR0ZXJucyAhPSBOVUxMKSB7CisgICAgICAgIG5leHQgPSBwYXR0ZXJucy0+bmV4dDsKKwlpZiAocGF0dGVybnMtPm5hbWUgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShwYXR0ZXJucy0+bmFtZSk7CisJeG1sRnJlZShwYXR0ZXJucyk7CisJcGF0dGVybnMgPSBuZXh0OworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWF0cm9uTmV3U2NoZW1hdHJvbjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogQWxsb2NhdGUgYSBuZXcgU2NoZW1hdHJvbiBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYXRyb25QdHIKK3htbFNjaGVtYXRyb25OZXdTY2hlbWF0cm9uKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sU2NoZW1hdHJvblB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sU2NoZW1hdHJvblB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWF0cm9uKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25QRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIHNjaGVtYSIsIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hdHJvbikpOworICAgIHJldC0+ZGljdCA9IGN0eHQtPmRpY3Q7CisgICAgeG1sRGljdFJlZmVyZW5jZShyZXQtPmRpY3QpOworCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25GcmVlOgorICogQHNjaGVtYTogIGEgc2NoZW1hIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBTY2hlbWF0cm9uIHN0cnVjdHVyZS4KKyAqLwordm9pZAoreG1sU2NoZW1hdHJvbkZyZWUoeG1sU2NoZW1hdHJvblB0ciBzY2hlbWEpCit7CisgICAgaWYgKHNjaGVtYSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoKHNjaGVtYS0+ZG9jICE9IE5VTEwpICYmICghKHNjaGVtYS0+cHJlc2VydmUpKSkKKyAgICAgICAgeG1sRnJlZURvYyhzY2hlbWEtPmRvYyk7CisKKyAgICBpZiAoc2NoZW1hLT5uYW1lc3BhY2VzICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoKGNoYXIgKiopIHNjaGVtYS0+bmFtZXNwYWNlcyk7CisgICAgCisgICAgeG1sU2NoZW1hdHJvbkZyZWVSdWxlcyhzY2hlbWEtPnJ1bGVzKTsKKyAgICB4bWxTY2hlbWF0cm9uRnJlZVBhdHRlcm5zKHNjaGVtYS0+cGF0dGVybnMpOworICAgIHhtbERpY3RGcmVlKHNjaGVtYS0+ZGljdCk7CisgICAgeG1sRnJlZShzY2hlbWEpOworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25OZXdQYXJzZXJDdHh0OgorICogQFVSTDogIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hCisgKgorICogQ3JlYXRlIGFuIFhNTCBTY2hlbWF0cm9ucyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IGZpbGUvcmVzb3VyY2UgZXhwZWN0ZWQKKyAqIHRvIGNvbnRhaW4gYW4gWE1MIFNjaGVtYXRyb25zIGZpbGUuCisgKgorICogUmV0dXJucyB0aGUgcGFyc2VyIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyCit4bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dChjb25zdCBjaGFyICpVUkwpCit7CisgICAgeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgcmV0OworCisgICAgaWYgKFVSTCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0KKyAgICAgICAgKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyKQorICAgICAgICB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25QRXJyTWVtb3J5KE5VTEwsICJhbGxvY2F0aW5nIHNjaGVtYSBwYXJzZXIgY29udGV4dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hdHJvblBhcnNlckN0eHQpKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfU1RST05fQ1RYVF9QQVJTRVI7CisgICAgcmV0LT5kaWN0ID0geG1sRGljdENyZWF0ZSgpOworICAgIHJldC0+VVJMID0geG1sRGljdExvb2t1cChyZXQtPmRpY3QsIChjb25zdCB4bWxDaGFyICopIFVSTCwgLTEpOworICAgIHJldC0+aW5jbHVkZXMgPSBOVUxMOworICAgIHJldC0+eGN0eHQgPSB4bWxYUGF0aE5ld0NvbnRleHQoTlVMTCk7CisgICAgaWYgKHJldC0+eGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBzY2hlbWEgcGFyc2VyIFhQYXRoIGNvbnRleHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKwl4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQocmV0KTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgcmV0LT54Y3R4dC0+ZmxhZ3MgPSBYTUxfWFBBVEhfQ0hFQ0tOUzsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQ6CisgKiBAYnVmZmVyOiAgYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheSBjb250YWluaW5nIHRoZSBzY2hlbWFzCisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICoKKyAqIENyZWF0ZSBhbiBYTUwgU2NoZW1hdHJvbnMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBtZW1vcnkgYnVmZmVyIGV4cGVjdGVkCisgKiB0byBjb250YWluIGFuIFhNTCBTY2hlbWF0cm9ucyBmaWxlLgorICoKKyAqIFJldHVybnMgdGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cgoreG1sU2NoZW1hdHJvbk5ld01lbVBhcnNlckN0eHQoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSkKK3sKKyAgICB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciByZXQ7CisKKyAgICBpZiAoKGJ1ZmZlciA9PSBOVUxMKSB8fCAoc2l6ZSA8PSAwKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHJldCA9CisgICAgICAgICh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cikKKyAgICAgICAgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBzY2hlbWEgcGFyc2VyIGNvbnRleHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0KSk7CisgICAgcmV0LT5idWZmZXIgPSBidWZmZXI7CisgICAgcmV0LT5zaXplID0gc2l6ZTsKKyAgICByZXQtPmRpY3QgPSB4bWxEaWN0Q3JlYXRlKCk7CisgICAgcmV0LT54Y3R4dCA9IHhtbFhQYXRoTmV3Q29udGV4dChOVUxMKTsKKyAgICBpZiAocmV0LT54Y3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25QRXJyTWVtb3J5KE5VTEwsICJhbGxvY2F0aW5nIHNjaGVtYSBwYXJzZXIgWFBhdGggY29udGV4dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCXhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dChyZXQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQ6CisgKiBAZG9jOiAgYSBwcmVwYXJzZWQgZG9jdW1lbnQgdHJlZQorICoKKyAqIENyZWF0ZSBhbiBYTUwgU2NoZW1hdHJvbnMgcGFyc2UgY29udGV4dCBmb3IgdGhhdCBkb2N1bWVudC4KKyAqIE5CLiBUaGUgZG9jdW1lbnQgbWF5IGJlIG1vZGlmaWVkIGR1cmluZyB0aGUgcGFyc2luZyBwcm9jZXNzLgorICoKKyAqIFJldHVybnMgdGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0cgoreG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQoeG1sRG9jUHRyIGRvYykKK3sKKyAgICB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciByZXQ7CisKKyAgICBpZiAoZG9jID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICByZXQgPQorICAgICAgICAoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIpCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hdHJvblBhcnNlckN0eHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sU2NoZW1hdHJvblBFcnJNZW1vcnkoTlVMTCwgImFsbG9jYXRpbmcgc2NoZW1hIHBhcnNlciBjb250ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dCkpOworICAgIHJldC0+ZG9jID0gZG9jOworICAgIHJldC0+ZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKyAgICAvKiBUaGUgYXBwbGljYXRpb24gaGFzIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgZG9jdW1lbnQgKi8KKyAgICByZXQtPnByZXNlcnZlID0gMTsKKyAgICByZXQtPnhjdHh0ID0geG1sWFBhdGhOZXdDb250ZXh0KGRvYyk7CisgICAgaWYgKHJldC0+eGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBzY2hlbWEgcGFyc2VyIFhQYXRoIGNvbnRleHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKwl4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQocmV0KTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0OgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKgorICogRnJlZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICovCit2b2lkCit4bWxTY2hlbWF0cm9uRnJlZVBhcnNlckN0eHQoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGN0eHQtPmRvYyAhPSBOVUxMICYmICFjdHh0LT5wcmVzZXJ2ZSkKKyAgICAgICAgeG1sRnJlZURvYyhjdHh0LT5kb2MpOworICAgIGlmIChjdHh0LT54Y3R4dCAhPSBOVUxMKSB7CisgICAgICAgIHhtbFhQYXRoRnJlZUNvbnRleHQoY3R4dC0+eGN0eHQpOworICAgIH0KKyAgICBpZiAoY3R4dC0+bmFtZXNwYWNlcyAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKChjaGFyICoqKSBjdHh0LT5uYW1lc3BhY2VzKTsKKyAgICB4bWxEaWN0RnJlZShjdHh0LT5kaWN0KTsKKyAgICB4bWxGcmVlKGN0eHQpOworfQorCisjaWYgMAorLyoqCisgKiB4bWxTY2hlbWF0cm9uUHVzaEluY2x1ZGU6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBkb2M6ICB0aGUgaW5jbHVkZWQgZG9jdW1lbnQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBpbmNsdWRlIG5vZGUKKyAqCisgKiBBZGQgYW4gaW5jbHVkZWQgZG9jdW1lbnQKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYXRyb25QdXNoSW5jbHVkZSh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIpCit7CisgICAgaWYgKGN0eHQtPmluY2x1ZGVzID09IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+bWF4SW5jbHVkZXMgPSAxMDsKKyAgICAgICAgY3R4dC0+aW5jbHVkZXMgPSAoeG1sTm9kZVB0ciAqKQorCSAgICB4bWxNYWxsb2MoY3R4dC0+bWF4SW5jbHVkZXMgKiAyICogc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKwlpZiAoY3R4dC0+aW5jbHVkZXMgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBwYXJzZXIgaW5jbHVkZXMiLAorCQkJCSAgICBOVUxMKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICAgICAgY3R4dC0+bmJJbmNsdWRlcyA9IDA7CisgICAgfSBlbHNlIGlmIChjdHh0LT5uYkluY2x1ZGVzICsgMiA+PSBjdHh0LT5tYXhJbmNsdWRlcykgeworICAgICAgICB4bWxOb2RlUHRyICp0bXA7CisKKwl0bXAgPSAoeG1sTm9kZVB0ciAqKQorCSAgICB4bWxSZWFsbG9jKGN0eHQtPmluY2x1ZGVzLCBjdHh0LT5tYXhJbmNsdWRlcyAqIDQgKgorCSAgICAgICAgICAgICAgIHNpemVvZih4bWxOb2RlUHRyKSk7CisJaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYXRyb25QRXJyTWVtb3J5KE5VTEwsICJhbGxvY2F0aW5nIHBhcnNlciBpbmNsdWRlcyIsCisJCQkJICAgIE5VTEwpOworCSAgICByZXR1cm47CisJfQorICAgICAgICBjdHh0LT5pbmNsdWRlcyA9IHRtcDsKKwljdHh0LT5tYXhJbmNsdWRlcyAqPSAyOworICAgIH0KKyAgICBjdHh0LT5pbmNsdWRlc1syICogY3R4dC0+bmJJbmNsdWRlc10gPSBjdXI7CisgICAgY3R4dC0+aW5jbHVkZXNbMiAqIGN0eHQtPm5iSW5jbHVkZXMgKyAxXSA9ICh4bWxOb2RlUHRyKSBkb2M7CisgICAgY3R4dC0+bmJJbmNsdWRlcysrOworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25Qb3BJbmNsdWRlOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKgorICogUG9wIGFuIGluY2x1ZGUgbGV2ZWwuIFRoZSBpbmNsdWRlZCBkb2N1bWVudCBpcyBiZWluZyBmcmVlZAorICoKKyAqIFJldHVybnMgdGhlIG5vZGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBpbmNsdWRlIG9yIE5VTEwgaWYgdGhlCisgKiAgICAgICAgIGluY2x1ZGUgbGlzdCB3YXMgZW1wdHkuCisgKi8KK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxTY2hlbWF0cm9uUG9wSW5jbHVkZSh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sTm9kZVB0ciByZXQ7CisKKyAgICBpZiAoY3R4dC0+bmJJbmNsdWRlcyA8PSAwKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgY3R4dC0+bmJJbmNsdWRlcy0tOworICAgIGRvYyA9ICh4bWxEb2NQdHIpIGN0eHQtPmluY2x1ZGVzWzIgKiBjdHh0LT5uYkluY2x1ZGVzICsgMV07CisgICAgcmV0ID0gY3R4dC0+aW5jbHVkZXNbMiAqIGN0eHQtPm5iSW5jbHVkZXNdOworICAgIHhtbEZyZWVEb2MoZG9jKTsKKyAgICBpZiAocmV0ICE9IE5VTEwpCisJcmV0ID0gcmV0LT5uZXh0OworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHhtbFNjaGVtYXRyb25Qb3BJbmNsdWRlKGN0eHQpKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbFNjaGVtYXRyb25BZGROYW1lc3BhY2U6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBwcmVmaXg6ICB0aGUgbmFtZXNwYWNlIHByZWZpeAorICogQG5zOiAgdGhlIG5hbWVzcGFjZSBuYW1lCisgKgorICogQWRkIGEgbmFtZXNwYWNlIGRlZmluaXRpb24gaW4gdGhlIGNvbnRleHQKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYXRyb25BZGROYW1lc3BhY2UoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4LCBjb25zdCB4bWxDaGFyICpucykKK3sKKyAgICBpZiAoY3R4dC0+bmFtZXNwYWNlcyA9PSBOVUxMKSB7CisgICAgICAgIGN0eHQtPm1heE5hbWVzcGFjZXMgPSAxMDsKKyAgICAgICAgY3R4dC0+bmFtZXNwYWNlcyA9IChjb25zdCB4bWxDaGFyICoqKQorCSAgICB4bWxNYWxsb2MoY3R4dC0+bWF4TmFtZXNwYWNlcyAqIDIgKiBzaXplb2YoY29uc3QgeG1sQ2hhciAqKSk7CisJaWYgKGN0eHQtPm5hbWVzcGFjZXMgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWF0cm9uUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBwYXJzZXIgbmFtZXNwYWNlcyIsCisJCQkJICAgIE5VTEwpOworCSAgICByZXR1cm47CisJfQorICAgICAgICBjdHh0LT5uYk5hbWVzcGFjZXMgPSAwOworICAgIH0gZWxzZSBpZiAoY3R4dC0+bmJOYW1lc3BhY2VzICsgMiA+PSBjdHh0LT5tYXhOYW1lc3BhY2VzKSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIgKip0bXA7CisKKwl0bXAgPSAoY29uc3QgeG1sQ2hhciAqKikKKwkgICAgeG1sUmVhbGxvYygoeG1sQ2hhciAqKikgY3R4dC0+bmFtZXNwYWNlcywgY3R4dC0+bWF4TmFtZXNwYWNlcyAqIDQgKgorCSAgICAgICAgICAgICAgIHNpemVvZihjb25zdCB4bWxDaGFyICopKTsKKwlpZiAodG1wID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hdHJvblBFcnJNZW1vcnkoTlVMTCwgImFsbG9jYXRpbmcgcGFyc2VyIG5hbWVzcGFjZXMiLAorCQkJCSAgICBOVUxMKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICAgICAgY3R4dC0+bmFtZXNwYWNlcyA9IHRtcDsKKwljdHh0LT5tYXhOYW1lc3BhY2VzICo9IDI7CisgICAgfQorICAgIGN0eHQtPm5hbWVzcGFjZXNbMiAqIGN0eHQtPm5iTmFtZXNwYWNlc10gPSAKKyAgICAgICAgeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBucywgLTEpOworICAgIGN0eHQtPm5hbWVzcGFjZXNbMiAqIGN0eHQtPm5iTmFtZXNwYWNlcyArIDFdID0gCisgICAgICAgIHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgcHJlZml4LCAtMSk7CisgICAgY3R4dC0+bmJOYW1lc3BhY2VzKys7CisgICAgY3R4dC0+bmFtZXNwYWNlc1syICogY3R4dC0+bmJOYW1lc3BhY2VzXSA9IE5VTEw7CisgICAgY3R4dC0+bmFtZXNwYWNlc1syICogY3R4dC0+bmJOYW1lc3BhY2VzICsgMV0gPSBOVUxMOworCit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvblBhcnNlUnVsZToKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAcnVsZTogIHRoZSBydWxlIG5vZGUKKyAqCisgKiBwYXJzZSBhIHJ1bGUgZWxlbWVudAorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hdHJvblBhcnNlUnVsZSh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWF0cm9uUGF0dGVyblB0ciBwYXR0ZXJuLAorCQkgICAgICAgeG1sTm9kZVB0ciBydWxlKQoreworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGludCBuYkNoZWNrcyA9IDA7CisgICAgeG1sQ2hhciAqdGVzdDsKKyAgICB4bWxDaGFyICpjb250ZXh0OworICAgIHhtbENoYXIgKnJlcG9ydDsKKyAgICB4bWxTY2hlbWF0cm9uUnVsZVB0ciBydWxlcHRyOworICAgIHhtbFNjaGVtYXRyb25UZXN0UHRyIHRlc3RwdHI7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHJ1bGUgPT0gTlVMTCkpIHJldHVybjsKKworICAgIGNvbnRleHQgPSB4bWxHZXROb05zUHJvcChydWxlLCBCQURfQ0FTVCAiY29udGV4dCIpOworICAgIGlmIChjb250ZXh0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBydWxlLAorCSAgICBYTUxfU0NIRU1BUF9OT1JPT1QsCisJICAgICJydWxlIGhhcyBubyBjb250ZXh0IGF0dHJpYnV0ZSIsCisJICAgIE5VTEwsIE5VTEwpOworCXJldHVybjsKKyAgICB9IGVsc2UgaWYgKGNvbnRleHRbMF0gPT0gMCkgeworCXhtbFNjaGVtYXRyb25QRXJyKGN0eHQsIHJ1bGUsCisJICAgIFhNTF9TQ0hFTUFQX05PUk9PVCwKKwkgICAgInJ1bGUgaGFzIGFuIGVtcHR5IGNvbnRleHQgYXR0cmlidXRlIiwKKwkgICAgTlVMTCwgTlVMTCk7CisJeG1sRnJlZShjb250ZXh0KTsKKwlyZXR1cm47CisgICAgfSBlbHNlIHsKKwlydWxlcHRyID0geG1sU2NoZW1hdHJvbkFkZFJ1bGUoY3R4dCwgY3R4dC0+c2NoZW1hLCBwYXR0ZXJuLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLCBjb250ZXh0LCBOVUxMKTsKKwlpZiAocnVsZXB0ciA9PSBOVUxMKSB7CisJICAgIHhtbEZyZWUoY29udGV4dCk7CisJICAgIHJldHVybjsKKwl9CisgICAgfQorCisgICAgY3VyID0gcnVsZS0+Y2hpbGRyZW47CisgICAgTkVYVF9TQ0hFTUFUUk9OKGN1cik7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJaWYgKElTX1NDSEVNQVRST04oY3VyLCAiYXNzZXJ0IikpIHsKKwkgICAgbmJDaGVja3MrKzsKKwkgICAgdGVzdCA9IHhtbEdldE5vTnNQcm9wKGN1ciwgQkFEX0NBU1QgInRlc3QiKTsKKwkgICAgaWYgKHRlc3QgPT0gTlVMTCkgeworCQl4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBjdXIsCisJCSAgICBYTUxfU0NIRU1BUF9OT1JPT1QsCisJCSAgICAiYXNzZXJ0IGhhcyBubyB0ZXN0IGF0dHJpYnV0ZSIsCisJCSAgICBOVUxMLCBOVUxMKTsKKwkgICAgfSBlbHNlIGlmICh0ZXN0WzBdID09IDApIHsKKwkJeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgY3VyLAorCQkgICAgWE1MX1NDSEVNQVBfTk9ST09ULAorCQkgICAgImFzc2VydCBoYXMgYW4gZW1wdHkgdGVzdCBhdHRyaWJ1dGUiLAorCQkgICAgTlVMTCwgTlVMTCk7CisJCXhtbEZyZWUodGVzdCk7CisJICAgIH0gZWxzZSB7CisJCS8qIFRPRE8gd2lsbCBuZWVkIGR5bmFtaWMgcHJvY2Vzc2luZyBpbnN0ZWFkICovCisJCXJlcG9ydCA9IHhtbE5vZGVHZXRDb250ZW50KGN1cik7CisKKwkJdGVzdHB0ciA9IHhtbFNjaGVtYXRyb25BZGRUZXN0KGN0eHQsIFhNTF9TQ0hFTUFUUk9OX0FTU0VSVCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVwdHIsIGN1ciwgdGVzdCwgcmVwb3J0KTsKKwkJaWYgKHRlc3RwdHIgPT0gTlVMTCkKKwkJICAgIHhtbEZyZWUodGVzdCk7CisJICAgIH0KKwl9IGVsc2UgaWYgKElTX1NDSEVNQVRST04oY3VyLCAicmVwb3J0IikpIHsKKwkgICAgbmJDaGVja3MrKzsKKwkgICAgdGVzdCA9IHhtbEdldE5vTnNQcm9wKGN1ciwgQkFEX0NBU1QgInRlc3QiKTsKKwkgICAgaWYgKHRlc3QgPT0gTlVMTCkgeworCQl4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBjdXIsCisJCSAgICBYTUxfU0NIRU1BUF9OT1JPT1QsCisJCSAgICAiYXNzZXJ0IGhhcyBubyB0ZXN0IGF0dHJpYnV0ZSIsCisJCSAgICBOVUxMLCBOVUxMKTsKKwkgICAgfSBlbHNlIGlmICh0ZXN0WzBdID09IDApIHsKKwkJeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgY3VyLAorCQkgICAgWE1MX1NDSEVNQVBfTk9ST09ULAorCQkgICAgImFzc2VydCBoYXMgYW4gZW1wdHkgdGVzdCBhdHRyaWJ1dGUiLAorCQkgICAgTlVMTCwgTlVMTCk7CisJCXhtbEZyZWUodGVzdCk7CisJICAgIH0gZWxzZSB7CisJCS8qIFRPRE8gd2lsbCBuZWVkIGR5bmFtaWMgcHJvY2Vzc2luZyBpbnN0ZWFkICovCisJCXJlcG9ydCA9IHhtbE5vZGVHZXRDb250ZW50KGN1cik7CisKKwkJdGVzdHB0ciA9IHhtbFNjaGVtYXRyb25BZGRUZXN0KGN0eHQsIFhNTF9TQ0hFTUFUUk9OX1JFUE9SVCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVwdHIsIGN1ciwgdGVzdCwgcmVwb3J0KTsKKwkJaWYgKHRlc3RwdHIgPT0gTlVMTCkKKwkJICAgIHhtbEZyZWUodGVzdCk7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICB4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBjdXIsCisJCVhNTF9TQ0hFTUFQX05PUk9PVCwKKwkJIkV4cGVjdGluZyBhbiBhc3NlcnQgb3IgYSByZXBvcnQgZWxlbWVudCBpbnN0ZWFkIG9mICVzIiwKKwkJY3VyLT5uYW1lLCBOVUxMKTsKKwl9CisJY3VyID0gY3VyLT5uZXh0OworCU5FWFRfU0NIRU1BVFJPTihjdXIpOworICAgIH0KKyAgICBpZiAobmJDaGVja3MgPT0gMCkgeworCXhtbFNjaGVtYXRyb25QRXJyKGN0eHQsIHJ1bGUsCisJICAgIFhNTF9TQ0hFTUFQX05PUk9PVCwKKwkgICAgInJ1bGUgaGFzIG5vIGFzc2VydCBub3IgcmVwb3J0IGVsZW1lbnQiLCBOVUxMLCBOVUxMKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvblBhcnNlUGF0dGVybjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAcGF0OiAgdGhlIHBhdHRlcm4gbm9kZQorICoKKyAqIHBhcnNlIGEgcGF0dGVybiBlbGVtZW50CisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWF0cm9uUGFyc2VQYXR0ZXJuKHhtbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgcGF0KQoreworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIHhtbFNjaGVtYXRyb25QYXR0ZXJuUHRyIHBhdHRlcm47CisgICAgaW50IG5iUnVsZXMgPSAwOworICAgIHhtbENoYXIgKmlkOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChwYXQgPT0gTlVMTCkpIHJldHVybjsKKworICAgIGlkID0geG1sR2V0Tm9Oc1Byb3AocGF0LCBCQURfQ0FTVCAiaWQiKTsKKyAgICBpZiAoaWQgPT0gTlVMTCkgeworCWlkID0geG1sR2V0Tm9Oc1Byb3AocGF0LCBCQURfQ0FTVCAibmFtZSIpOworICAgIH0KKyAgICBwYXR0ZXJuID0geG1sU2NoZW1hdHJvbkFkZFBhdHRlcm4oY3R4dCwgY3R4dC0+c2NoZW1hLCBwYXQsIGlkKTsKKyAgICBpZiAocGF0dGVybiA9PSBOVUxMKSB7CisJaWYgKGlkICE9IE5VTEwpCisJICAgIHhtbEZyZWUoaWQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGN1ciA9IHBhdC0+Y2hpbGRyZW47CisgICAgTkVYVF9TQ0hFTUFUUk9OKGN1cik7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJaWYgKElTX1NDSEVNQVRST04oY3VyLCAicnVsZSIpKSB7CisJICAgIHhtbFNjaGVtYXRyb25QYXJzZVJ1bGUoY3R4dCwgcGF0dGVybiwgY3VyKTsKKwkgICAgbmJSdWxlcysrOworCX0gZWxzZSB7CisJICAgIHhtbFNjaGVtYXRyb25QRXJyKGN0eHQsIGN1ciwKKwkJWE1MX1NDSEVNQVBfTk9ST09ULAorCQkiRXhwZWN0aW5nIGEgcnVsZSBlbGVtZW50IGluc3RlYWQgb2YgJXMiLCBjdXItPm5hbWUsIE5VTEwpOworCX0KKwljdXIgPSBjdXItPm5leHQ7CisJTkVYVF9TQ0hFTUFUUk9OKGN1cik7CisgICAgfQorICAgIGlmIChuYlJ1bGVzID09IDApIHsKKwl4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBwYXQsCisJICAgIFhNTF9TQ0hFTUFQX05PUk9PVCwKKwkgICAgIlBhdHRlcm4gaGFzIG5vIHJ1bGUgZWxlbWVudCIsIE5VTEwsIE5VTEwpOworICAgIH0KK30KKworI2lmIDAKKy8qKgorICogeG1sU2NoZW1hdHJvbkxvYWRJbmNsdWRlOgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBjdXI6ICB0aGUgaW5jbHVkZSBlbGVtZW50CisgKgorICogTG9hZCB0aGUgaW5jbHVkZSBkb2N1bWVudCwgUHVzaCB0aGUgY3VycmVudCBwb2ludGVyCisgKgorICogUmV0dXJucyB0aGUgdXBkYXRlZCBub2RlIHBvaW50ZXIKKyAqLworc3RhdGljIHhtbE5vZGVQdHIKK3htbFNjaGVtYXRyb25Mb2FkSW5jbHVkZSh4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cikKK3sKKyAgICB4bWxOb2RlUHRyIHJldCA9IE5VTEw7CisgICAgeG1sRG9jUHRyIGRvYyA9IE5VTEw7CisgICAgeG1sQ2hhciAqaHJlZiA9IE5VTEw7CisgICAgeG1sQ2hhciAqYmFzZSA9IE5VTEw7CisgICAgeG1sQ2hhciAqVVJJID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3VyID09IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICBocmVmID0geG1sR2V0Tm9Oc1Byb3AoY3VyLCBCQURfQ0FTVCAiaHJlZiIpOworICAgIGlmIChocmVmID09IE5VTEwpIHsKKwl4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBjdXIsCisJICAgIFhNTF9TQ0hFTUFQX05PUk9PVCwKKwkgICAgIkluY2x1ZGUgaGFzIG5vIGhyZWYgYXR0cmlidXRlIiwgTlVMTCwgTlVMTCk7CisJcmV0dXJuKGN1ci0+bmV4dCk7CisgICAgfQorCisgICAgLyogZG8gdGhlIFVSSSBiYXNlIGNvbXBvc2l0aW9uLCBsb2FkIGFuZCBmaW5kIHRoZSByb290ICovCisgICAgYmFzZSA9IHhtbE5vZGVHZXRCYXNlKGN1ci0+ZG9jLCBjdXIpOworICAgIFVSSSA9IHhtbEJ1aWxkVVJJKGhyZWYsIGJhc2UpOworICAgIGRvYyA9IHhtbFJlYWRGaWxlKChjb25zdCBjaGFyICopIFVSSSwgTlVMTCwgU0NIRU1BVFJPTl9QQVJTRV9PUFRJT05TKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKwl4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBjdXIsCisJCSAgICAgIFhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FELAorCQkgICAgICAiY291bGQgbm90IGxvYWQgaW5jbHVkZSAnJXMnLlxuIiwKKwkJICAgICAgVVJJLCBOVUxMKTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIHJldCA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgY3VyLAorCQkgICAgICBYTUxfU0NIRU1BUF9GQUlMRURfTE9BRCwKKwkJICAgICAgImNvdWxkIG5vdCBmaW5kIHJvb3QgZnJvbSBpbmNsdWRlICclcycuXG4iLAorCQkgICAgICBVUkksIE5VTEwpOworCWdvdG8gZG9uZTsKKyAgICB9CisKKyAgICAvKiBTdWNjZXNzLCBwdXNoIHRoZSBpbmNsdWRlIGZvciByb2xsYmFjayBvbiBleGl0ICovCisgICAgeG1sU2NoZW1hdHJvblB1c2hJbmNsdWRlKGN0eHQsIGRvYywgY3VyKTsKKworZG9uZToKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgaWYgKGRvYyAhPSBOVUxMKQorCSAgICB4bWxGcmVlRG9jKGRvYyk7CisgICAgfQorICAgIHhtbEZyZWUoaHJlZik7CisgICAgaWYgKGJhc2UgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShiYXNlKTsKKyAgICBpZiAoVVJJICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoVVJJKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbFNjaGVtYXRyb25QYXJzZToKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogcGFyc2UgYSBzY2hlbWEgZGVmaW5pdGlvbiByZXNvdXJjZSBhbmQgYnVpbGQgYW4gaW50ZXJuYWwKKyAqIFhNTCBTaGVtYSBzdHJ1dHVyZSB3aGljaCBjYW4gYmUgdXNlZCB0byB2YWxpZGF0ZSBpbnN0YW5jZXMuCisgKgorICogUmV0dXJucyB0aGUgaW50ZXJuYWwgWE1MIFNjaGVtYXRyb24gc3RydWN0dXJlIGJ1aWx0IGZyb20gdGhlIHJlc291cmNlIG9yCisgKiAgICAgICAgIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxTY2hlbWF0cm9uUHRyCit4bWxTY2hlbWF0cm9uUGFyc2UoeG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxTY2hlbWF0cm9uUHRyIHJldCA9IE5VTEw7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxOb2RlUHRyIHJvb3QsIGN1cjsKKyAgICBpbnQgcHJlc2VydmUgPSAwOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIGN0eHQtPm5iZXJyb3JzID0gMDsKKworICAgIC8qCisgICAgICogRmlyc3Qgc3RlcCBpcyB0byBwYXJzZSB0aGUgaW5wdXQgZG9jdW1lbnQgaW50byBhbiBET00vSW5mb3NldAorICAgICAqLworICAgIGlmIChjdHh0LT5VUkwgIT0gTlVMTCkgeworICAgICAgICBkb2MgPSB4bWxSZWFkRmlsZSgoY29uc3QgY2hhciAqKSBjdHh0LT5VUkwsIE5VTEwsCisJICAgICAgICAgICAgICAgICAgU0NIRU1BVFJPTl9QQVJTRV9PUFRJT05TKTsKKyAgICAgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYXRyb25QRXJyKGN0eHQsIE5VTEwsCisJCQkgIFhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FELAorICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sU2NoZW1hdHJvblBhcnNlOiBjb3VsZCBub3QgbG9hZCAnJXMnLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+VVJMLCBOVUxMKTsKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIH0KKwljdHh0LT5wcmVzZXJ2ZSA9IDA7CisgICAgfSBlbHNlIGlmIChjdHh0LT5idWZmZXIgIT0gTlVMTCkgeworICAgICAgICBkb2MgPSB4bWxSZWFkTWVtb3J5KGN0eHQtPmJ1ZmZlciwgY3R4dC0+c2l6ZSwgTlVMTCwgTlVMTCwKKwkgICAgICAgICAgICAgICAgICAgIFNDSEVNQVRST05fUEFSU0VfT1BUSU9OUyk7CisgICAgICAgIGlmIChkb2MgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWF0cm9uUEVycihjdHh0LCBOVUxMLAorCQkJICBYTUxfU0NIRU1BUF9GQUlMRURfUEFSU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxTY2hlbWF0cm9uUGFyc2U6IGNvdWxkIG5vdCBwYXJzZS5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgfQorICAgICAgICBkb2MtPlVSTCA9IHhtbFN0cmR1cChCQURfQ0FTVCAiaW5fbWVtb3J5X2J1ZmZlciIpOworICAgICAgICBjdHh0LT5VUkwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIEJBRF9DQVNUICJpbl9tZW1vcnlfYnVmZmVyIiwgLTEpOworCWN0eHQtPnByZXNlcnZlID0gMDsKKyAgICB9IGVsc2UgaWYgKGN0eHQtPmRvYyAhPSBOVUxMKSB7CisgICAgICAgIGRvYyA9IGN0eHQtPmRvYzsKKwlwcmVzZXJ2ZSA9IDE7CisJY3R4dC0+cHJlc2VydmUgPSAxOworICAgIH0gZWxzZSB7CisJeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgTlVMTCwKKwkJICAgICAgWE1MX1NDSEVNQVBfTk9USElOR19UT19QQVJTRSwKKwkJICAgICAgInhtbFNjaGVtYXRyb25QYXJzZTogY291bGQgbm90IHBhcnNlLlxuIiwKKwkJICAgICAgTlVMTCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUaGVuIGV4dHJhY3QgdGhlIHJvb3QgYW5kIFNjaGVtYXRyb24gcGFyc2UgaXQKKyAgICAgKi8KKyAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAocm9vdCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgKHhtbE5vZGVQdHIpIGRvYywKKwkJICAgICAgWE1MX1NDSEVNQVBfTk9ST09ULAorCQkgICAgICAiVGhlIHNjaGVtYSBoYXMgbm8gZG9jdW1lbnQgZWxlbWVudC5cbiIsIE5VTEwsIE5VTEwpOworCWlmICghcHJlc2VydmUpIHsKKwkgICAgeG1sRnJlZURvYyhkb2MpOworCX0KKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoIUlTX1NDSEVNQVRST04ocm9vdCwgInNjaGVtYSIpKSB7CisJeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgcm9vdCwKKwkgICAgWE1MX1NDSEVNQVBfTk9ST09ULAorCSAgICAiVGhlIFhNTCBkb2N1bWVudCAnJXMnIGlzIG5vdCBhIFhNTCBzY2hlbWF0cm9uIGRvY3VtZW50IiwKKwkgICAgY3R4dC0+VVJMLCBOVUxMKTsKKwlnb3RvIGV4aXQ7CisgICAgfQorICAgIHJldCA9IHhtbFNjaGVtYXRyb25OZXdTY2hlbWF0cm9uKGN0eHQpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgZ290byBleGl0OworICAgIGN0eHQtPnNjaGVtYSA9IHJldDsKKworICAgIC8qCisgICAgICogc2NhbiB0aGUgc2NoZW1hIGVsZW1lbnRzCisgICAgICovCisgICAgY3VyID0gcm9vdC0+Y2hpbGRyZW47CisgICAgTkVYVF9TQ0hFTUFUUk9OKGN1cik7CisgICAgaWYgKElTX1NDSEVNQVRST04oY3VyLCAidGl0bGUiKSkgeworICAgICAgICB4bWxDaGFyICp0aXRsZSA9IHhtbE5vZGVHZXRDb250ZW50KGN1cik7CisJaWYgKHRpdGxlICE9IE5VTEwpIHsKKwkgICAgcmV0LT50aXRsZSA9IHhtbERpY3RMb29rdXAocmV0LT5kaWN0LCB0aXRsZSwgLTEpOworCSAgICB4bWxGcmVlKHRpdGxlKTsKKwl9CisJY3VyID0gY3VyLT5uZXh0OworCU5FWFRfU0NIRU1BVFJPTihjdXIpOworICAgIH0KKyAgICB3aGlsZSAoSVNfU0NIRU1BVFJPTihjdXIsICJucyIpKSB7CisgICAgICAgIHhtbENoYXIgKnByZWZpeCA9IHhtbEdldE5vTnNQcm9wKGN1ciwgQkFEX0NBU1QgInByZWZpeCIpOworICAgICAgICB4bWxDaGFyICp1cmkgPSB4bWxHZXROb05zUHJvcChjdXIsIEJBRF9DQVNUICJ1cmkiKTsKKwlpZiAoKHVyaSA9PSBOVUxMKSB8fCAodXJpWzBdID09IDApKSB7CisJICAgIHhtbFNjaGVtYXRyb25QRXJyKGN0eHQsIGN1ciwKKwkJWE1MX1NDSEVNQVBfTk9ST09ULAorCQkibnMgZWxlbWVudCBoYXMgbm8gdXJpIiwgTlVMTCwgTlVMTCk7CisJfQorCWlmICgocHJlZml4ID09IE5VTEwpIHx8IChwcmVmaXhbMF0gPT0gMCkpIHsKKwkgICAgeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgY3VyLAorCQlYTUxfU0NIRU1BUF9OT1JPT1QsCisJCSJucyBlbGVtZW50IGhhcyBubyBwcmVmaXgiLCBOVUxMLCBOVUxMKTsKKwl9CisJaWYgKChwcmVmaXgpICYmICh1cmkpKSB7CisJICAgIHhtbFhQYXRoUmVnaXN0ZXJOcyhjdHh0LT54Y3R4dCwgcHJlZml4LCB1cmkpOworCSAgICB4bWxTY2hlbWF0cm9uQWRkTmFtZXNwYWNlKGN0eHQsIHByZWZpeCwgdXJpKTsKKwkgICAgcmV0LT5uYk5zKys7CisJfQorCWlmICh1cmkpCisJICAgIHhtbEZyZWUodXJpKTsKKwlpZiAocHJlZml4KQorCSAgICB4bWxGcmVlKHByZWZpeCk7CisJY3VyID0gY3VyLT5uZXh0OworCU5FWFRfU0NIRU1BVFJPTihjdXIpOworICAgIH0KKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoSVNfU0NIRU1BVFJPTihjdXIsICJwYXR0ZXJuIikpIHsKKwkgICAgeG1sU2NoZW1hdHJvblBhcnNlUGF0dGVybihjdHh0LCBjdXIpOworCSAgICByZXQtPm5iUGF0dGVybisrOworCX0gZWxzZSB7CisJICAgIHhtbFNjaGVtYXRyb25QRXJyKGN0eHQsIGN1ciwKKwkJWE1MX1NDSEVNQVBfTk9ST09ULAorCQkiRXhwZWN0aW5nIGEgcGF0dGVybiBlbGVtZW50IGluc3RlYWQgb2YgJXMiLCBjdXItPm5hbWUsIE5VTEwpOworCX0KKwljdXIgPSBjdXItPm5leHQ7CisJTkVYVF9TQ0hFTUFUUk9OKGN1cik7CisgICAgfQorICAgIGlmIChyZXQtPm5iUGF0dGVybiA9PSAwKSB7CisJeG1sU2NoZW1hdHJvblBFcnIoY3R4dCwgcm9vdCwKKwkgICAgWE1MX1NDSEVNQVBfTk9ST09ULAorCSAgICAiVGhlIHNjaGVtYXRyb24gZG9jdW1lbnQgJyVzJyBoYXMgbm8gcGF0dGVybiIsCisJICAgIGN0eHQtPlVSTCwgTlVMTCk7CisJZ290byBleGl0OworICAgIH0KKyAgICAvKiB0aGUgb3JpZ2luYWwgZG9jdW1lbnQgbXVzdCBiZSBrZXB0IGZvciByZXBvcnRpbmcgKi8KKyAgICByZXQtPmRvYyA9IGRvYzsKKyAgICBpZiAocHJlc2VydmUpIHsKKwkgICAgcmV0LT5wcmVzZXJ2ZSA9IDE7CisgICAgfQorICAgIHByZXNlcnZlID0gMTsKKworZXhpdDoKKyAgICBpZiAoIXByZXNlcnZlKSB7CisJeG1sRnJlZURvYyhkb2MpOworICAgIH0KKyAgICBpZiAocmV0ICE9IE5VTEwpIHsKKwlpZiAoY3R4dC0+bmJlcnJvcnMgIT0gMCkgeworCSAgICB4bWxTY2hlbWF0cm9uRnJlZShyZXQpOworCSAgICByZXQgPSBOVUxMOworCX0gZWxzZSB7CisJICAgIHJldC0+bmFtZXNwYWNlcyA9IGN0eHQtPm5hbWVzcGFjZXM7CisJICAgIHJldC0+bmJOYW1lc3BhY2VzID0gY3R4dC0+bmJOYW1lc3BhY2VzOworCSAgICBjdHh0LT5uYW1lc3BhY2VzID0gTlVMTDsKKwl9CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJU2NoZW1hdHJvbnRyb24gUmVwb3J0cyBoYW5kbGVyCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHhtbE5vZGVQdHIKK3htbFNjaGVtYXRyb25HZXROb2RlKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgY3VyLCBjb25zdCB4bWxDaGFyICp4cGF0aCkgeworICAgIHhtbE5vZGVQdHIgbm9kZSA9IE5VTEw7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdXIgPT0gTlVMTCkgfHwgKHhwYXRoID09IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICBjdHh0LT54Y3R4dC0+ZG9jID0gY3VyLT5kb2M7CisgICAgY3R4dC0+eGN0eHQtPm5vZGUgPSBjdXI7CisgICAgcmV0ID0geG1sWFBhdGhFdmFsKHhwYXRoLCBjdHh0LT54Y3R4dCk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICBpZiAoKHJldC0+dHlwZSA9PSBYUEFUSF9OT0RFU0VUKSAmJgorICAgICAgICAocmV0LT5ub2Rlc2V0dmFsICE9IE5VTEwpICYmIChyZXQtPm5vZGVzZXR2YWwtPm5vZGVOciA+IDApKQorCW5vZGUgPSByZXQtPm5vZGVzZXR2YWwtPm5vZGVUYWJbMF07CisKKyAgICB4bWxYUGF0aEZyZWVPYmplY3QocmV0KTsKKyAgICByZXR1cm4obm9kZSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvblJlcG9ydE91dHB1dDoKKyAqIEBjdHh0OiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAY3VyOiB0aGUgY3VycmVudCBub2RlIHRlc3RlZAorICogQG1zZzogdGhlIG1lc3NhZ2Ugb3V0cHV0CisgKgorICogT3V0cHV0IHBhcnQgb2YgdGhlIHJlcG9ydCB0byB3aGF0ZXZlciBjaGFubmVsIHRoZSB1c2VyIHNlbGVjdGVkCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWF0cm9uUmVwb3J0T3V0cHV0KHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGN1ciBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2cpIHsKKyAgICAvKiBUT0RPICovCisgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIG1zZyk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvbkZvcm1hdFJlcG9ydDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQHRlc3Q6IHRoZSB0ZXN0IG5vZGUKKyAqIEBjdXI6IHRoZSBjdXJyZW50IG5vZGUgdGVzdGVkCisgKgorICogQnVpbGQgdGhlIHN0cmluZyBiZWluZyByZXBvcnRlZCB0byB0aGUgdXNlci4KKyAqCisgKiBSZXR1cm5zIGEgcmVwb3J0IHN0cmluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgbmVlZHMKKyAqICAgICAgICAgdG8gYmUgZGVhbGxvY2F0ZWQgYnkgdGVoIGNhbGxlcgorICovCitzdGF0aWMgeG1sQ2hhciAqCit4bWxTY2hlbWF0cm9uRm9ybWF0UmVwb3J0KHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwgCisJCQkgIHhtbE5vZGVQdHIgdGVzdCwgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY2hpbGQsIG5vZGU7CisKKyAgICBpZiAoKHRlc3QgPT0gTlVMTCkgfHwgKGN1ciA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKHJldCk7CisKKyAgICBjaGlsZCA9IHRlc3QtPmNoaWxkcmVuOworICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisgICAgICAgIGlmICgoY2hpbGQtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKwkgICAgKGNoaWxkLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKQorCSAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBjaGlsZC0+Y29udGVudCk7CisJZWxzZSBpZiAoSVNfU0NIRU1BVFJPTihjaGlsZCwgIm5hbWUiKSkgeworCSAgICB4bWxDaGFyICpwYXRoOworCisJICAgIHBhdGggPSB4bWxHZXROb05zUHJvcChjaGlsZCwgQkFEX0NBU1QgInBhdGgiKTsKKworICAgICAgICAgICAgbm9kZSA9IGN1cjsKKwkgICAgaWYgKHBhdGggIT0gTlVMTCkgeworCSAgICAgICAgbm9kZSA9IHhtbFNjaGVtYXRyb25HZXROb2RlKGN0eHQsIGN1ciwgcGF0aCk7CisJCWlmIChub2RlID09IE5VTEwpCisJCSAgICBub2RlID0gY3VyOworCQl4bWxGcmVlKHBhdGgpOworCSAgICB9CisKKwkgICAgaWYgKChub2RlLT5ucyA9PSBOVUxMKSB8fCAobm9kZS0+bnMtPnByZWZpeCA9PSBOVUxMKSkgCisJICAgICAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBub2RlLT5uYW1lKTsKKwkgICAgZWxzZSB7CisJICAgICAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBub2RlLT5ucy0+cHJlZml4KTsKKwkgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUICI6Iik7CisJICAgICAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBub2RlLT5uYW1lKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJICAgIGNvbnRpbnVlOworCX0KKworCS8qCisJICogcmVtb3ZlIHN1cGVyZmx1b3VzIFxuCisJICovCisJaWYgKHJldCAhPSBOVUxMKSB7CisJICAgIGludCBsZW4gPSB4bWxTdHJsZW4ocmV0KTsKKwkgICAgeG1sQ2hhciBjOworCisJICAgIGlmIChsZW4gPiAwKSB7CisJCWMgPSByZXRbbGVuIC0gMV07CisJCWlmICgoYyA9PSAnICcpIHx8IChjID09ICdcbicpIHx8IChjID09ICdccicpIHx8IChjID09ICdcdCcpKSB7CisJCSAgICB3aGlsZSAoKGMgPT0gJyAnKSB8fCAoYyA9PSAnXG4nKSB8fAorCQkgICAgICAgICAgIChjID09ICdccicpIHx8IChjID09ICdcdCcpKSB7CisJCQlsZW4tLTsKKwkJCWlmIChsZW4gPT0gMCkKKwkJCSAgICBicmVhazsKKwkJCWMgPSByZXRbbGVuIC0gMV07CisJCSAgICB9CisJCSAgICByZXRbbGVuXSA9ICcgJzsKKwkJICAgIHJldFtsZW4gKyAxXSA9IDA7CisJCX0KKwkgICAgfQorCX0KKworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWF0cm9uUmVwb3J0U3VjY2VzczoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQHRlc3Q6IHRoZSBjb21waWxlZCB0ZXN0CisgKiBAY3VyOiB0aGUgY3VycmVudCBub2RlIHRlc3RlZAorICogQHN1Y2Nlc3M6IGJvb2xlYW4gdmFsdWUgZm9yIHRoZSByZXN1bHQKKyAqCisgKiBjYWxsZWQgZnJvbSB0aGUgdmFsaWRhdGlvbiBlbmdpbmUgd2hlbiBhbiBhc3NlcnQgb3IgcmVwb3J0IHRlc3QgaGF2ZQorICogYmVlbiBkb25lLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hdHJvblJlcG9ydFN1Y2Nlc3MoeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciBjdHh0LCAKKwkJICAgeG1sU2NoZW1hdHJvblRlc3RQdHIgdGVzdCwgeG1sTm9kZVB0ciBjdXIsIHhtbFNjaGVtYXRyb25QYXR0ZXJuUHRyIHBhdHRlcm4sIGludCBzdWNjZXNzKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdXIgPT0gTlVMTCkgfHwgKHRlc3QgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKyAgICAvKiBpZiBxdWlldCBhbmQgbm90IFNWUkwgcmVwb3J0IG9ubHkgZmFpbHVyZXMgKi8KKyAgICBpZiAoKGN0eHQtPmZsYWdzICYgWE1MX1NDSEVNQVRST05fT1VUX1FVSUVUKSAmJgorICAgICAgICAoKGN0eHQtPmZsYWdzICYgWE1MX1NDSEVNQVRST05fT1VUX1hNTCkgPT0gMCkgJiYKKwkodGVzdC0+dHlwZSA9PSBYTUxfU0NIRU1BVFJPTl9SRVBPUlQpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGN0eHQtPmZsYWdzICYgWE1MX1NDSEVNQVRST05fT1VUX1hNTCkgeworICAgICAgICBUT0RPCisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sQ2hhciAqcGF0aDsKKwljaGFyIG1zZ1sxMDAwXTsKKwlsb25nIGxpbmU7CisJY29uc3QgeG1sQ2hhciAqcmVwb3J0ID0gTlVMTDsKKworICAgICAgICBpZiAoKCh0ZXN0LT50eXBlID09IFhNTF9TQ0hFTUFUUk9OX1JFUE9SVCkgJiAoIXN1Y2Nlc3MpKSB8fAorCSAgICAoKHRlc3QtPnR5cGUgPT0gWE1MX1NDSEVNQVRST05fQVNTRVJUKSAmIChzdWNjZXNzKSkpCisJICAgIHJldHVybjsKKwlsaW5lID0geG1sR2V0TGluZU5vKGN1cik7CisJcGF0aCA9IHhtbEdldE5vZGVQYXRoKGN1cik7CisJaWYgKHBhdGggPT0gTlVMTCkKKwkgICAgcGF0aCA9ICh4bWxDaGFyICopIGN1ci0+bmFtZTsKKyNpZiAwCisJaWYgKCh0ZXN0LT5yZXBvcnQgIT0gTlVMTCkgJiYgKHRlc3QtPnJlcG9ydFswXSAhPSAwKSkKKwkgICAgcmVwb3J0ID0gdGVzdC0+cmVwb3J0OworI2VuZGlmCisJaWYgKHRlc3QtPm5vZGUgIT0gTlVMTCkKKyAgICAgICAgICAgIHJlcG9ydCA9IHhtbFNjaGVtYXRyb25Gb3JtYXRSZXBvcnQoY3R4dCwgdGVzdC0+bm9kZSwgY3VyKTsKKwlpZiAocmVwb3J0ID09IE5VTEwpIHsKKwkgICAgaWYgKHRlc3QtPnR5cGUgPT0gWE1MX1NDSEVNQVRST05fQVNTRVJUKSB7CisgICAgICAgICAgICByZXBvcnQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgIm5vZGUgZmFpbGVkIGFzc2VydCIpOworCSAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVwb3J0ID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopICJub2RlIGZhaWxlZCByZXBvcnQiKTsKKwkgICAgfQorCSAgICB9CisJICAgIHNucHJpbnRmKG1zZywgOTk5LCAiJXMgbGluZSAlbGQ6ICVzXG4iLCAoY29uc3QgY2hhciAqKSBwYXRoLAorCQkgICAgIGxpbmUsIChjb25zdCBjaGFyICopIHJlcG9ydCk7CisKKyAgICBpZiAoY3R4dC0+ZmxhZ3MgJiBYTUxfU0NIRU1BVFJPTl9PVVRfRVJST1IpIHsKKyAgICAgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzY2hhbm5lbCA9IE5VTEw7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgICAgIHZvaWQgKmRhdGEgPSBOVUxMOworCisgICAgICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChjdHh0LT5zZXJyb3IgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICBzY2hhbm5lbCA9IGN0eHQtPnNlcnJvcjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjaGFubmVsID0gY3R4dC0+ZXJyb3I7CisgICAgICAgICAgICBkYXRhID0gY3R4dC0+dXNlckRhdGE7CisJfQorCisgICAgICAgIF9feG1sUmFpc2VFcnJvcihzY2hhbm5lbCwgY2hhbm5lbCwgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGN1ciwgWE1MX0ZST01fU0NIRU1BVFJPTlYsCisgICAgICAgICAgICAgICAgICAgICAgICAodGVzdC0+dHlwZSA9PSBYTUxfU0NIRU1BVFJPTl9BU1NFUlQpP1hNTF9TQ0hFTUFUUk9OVl9BU1NFUlQ6WE1MX1NDSEVNQVRST05WX1JFUE9SVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfRVJST1IsIE5VTEwsIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAocGF0dGVybiA9PSBOVUxMKT9OVUxMOigoY29uc3QgY2hhciAqKSBwYXR0ZXJuLT5uYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSByZXBvcnQsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBtc2cpOworICAgIH0gZWxzZSB7CisJeG1sU2NoZW1hdHJvblJlcG9ydE91dHB1dChjdHh0LCBjdXIsICZtc2dbMF0pOworICAgIH0KKworICAgIHhtbEZyZWUoKGNoYXIgKikgcmVwb3J0KTsKKworCWlmICgocGF0aCAhPSBOVUxMKSAmJiAocGF0aCAhPSAoeG1sQ2hhciAqKSBjdXItPm5hbWUpKQorCSAgICB4bWxGcmVlKHBhdGgpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWF0cm9uUmVwb3J0UGF0dGVybjoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQHBhdHRlcm46IHRoZSBjdXJyZW50IHBhdHRlcm4KKyAqCisgKiBjYWxsZWQgZnJvbSB0aGUgdmFsaWRhdGlvbiBlbmdpbmUgd2hlbiBzdGFydGluZyB0byBjaGVjayBhIHBhdHRlcm4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYXRyb25SZXBvcnRQYXR0ZXJuKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwgCisJCQkgICB4bWxTY2hlbWF0cm9uUGF0dGVyblB0ciBwYXR0ZXJuKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChwYXR0ZXJuID09IE5VTEwpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKChjdHh0LT5mbGFncyAmIFhNTF9TQ0hFTUFUUk9OX09VVF9RVUlFVCkgfHwgKGN0eHQtPmZsYWdzICYgWE1MX1NDSEVNQVRST05fT1VUX0VSUk9SKSkgLyogRXJyb3IgZ2l2ZXMgcGF0dGVybiBuYW1lIGFzIHBhcnQgb2YgZXJyb3IgKi8KKyAgICAgICAgcmV0dXJuOworICAgIGlmIChjdHh0LT5mbGFncyAmIFhNTF9TQ0hFTUFUUk9OX09VVF9YTUwpIHsKKyAgICAgICAgVE9ETworICAgIH0gZWxzZSB7CisJY2hhciBtc2dbMTAwMF07CisKKwlpZiAocGF0dGVybi0+bmFtZSA9PSBOVUxMKQorCSAgICByZXR1cm47CisJc25wcmludGYobXNnLCA5OTksICJQYXR0ZXJuOiAlc1xuIiwgKGNvbnN0IGNoYXIgKikgcGF0dGVybi0+bmFtZSk7CisJeG1sU2NoZW1hdHJvblJlcG9ydE91dHB1dChjdHh0LCBOVUxMLCAmbXNnWzBdKTsKKyAgICB9Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJVmFsaWRhdGlvbiBhZ2FpbnN0IGEgU2NoZW1hdHJvbnRyb24JCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnM6CisgKiBAY3R4dDogIGEgU2NoZW1hdHJvbiB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzZXJyb3I6ICB0aGUgc3RydWN0dXJlZCBlcnJvciBmdW5jdGlvbgorICogQGN0eDogdGhlIGZ1bmN0aW9ucyBjb250ZXh0CisgKgorICogU2V0IHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGNhbGxiYWNrCisgKi8KK3ZvaWQKK3htbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMoeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNlcnJvciwgdm9pZCAqY3R4KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdHh0LT5zZXJyb3IgPSBzZXJyb3I7CisgICAgY3R4dC0+ZXJyb3IgPSBOVUxMOworICAgIGN0eHQtPndhcm5pbmcgPSBOVUxMOworICAgIGN0eHQtPnVzZXJEYXRhID0gY3R4OworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQ6CisgKiBAc2NoZW1hOiAgYSBwcmVjb21waWxlZCBYTUwgU2NoZW1hdHJvbnMKKyAqIEBvcHRpb25zOiBhIHNldCBvZiB4bWxTY2hlbWF0cm9uVmFsaWRPcHRpb25zCisgKgorICogQ3JlYXRlIGFuIFhNTCBTY2hlbWF0cm9ucyB2YWxpZGF0aW9uIGNvbnRleHQgYmFzZWQgb24gdGhlIGdpdmVuIHNjaGVtYS4KKyAqCisgKiBSZXR1cm5zIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIKK3htbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQoeG1sU2NoZW1hdHJvblB0ciBzY2hlbWEsIGludCBvcHRpb25zKQoreworICAgIGludCBpOworICAgIHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hdHJvblZhbGlkQ3R4dCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWF0cm9uVkVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyB2YWxpZGF0aW9uIGNvbnRleHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYXRyb25WYWxpZEN0eHQpKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfU1RST05fQ1RYVF9WQUxJREFUT1I7CisgICAgcmV0LT5zY2hlbWEgPSBzY2hlbWE7CisgICAgcmV0LT54Y3R4dCA9IHhtbFhQYXRoTmV3Q29udGV4dChOVUxMKTsKKyAgICByZXQtPmZsYWdzID0gb3B0aW9uczsKKyAgICBpZiAocmV0LT54Y3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYXRyb25QRXJyTWVtb3J5KE5VTEwsICJhbGxvY2F0aW5nIHNjaGVtYSBwYXJzZXIgWFBhdGggY29udGV4dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCXhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0KHJldCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGZvciAoaSA9IDA7aSA8IHNjaGVtYS0+bmJOYW1lc3BhY2VzO2krKykgeworICAgICAgICBpZiAoKHNjaGVtYS0+bmFtZXNwYWNlc1syICogaV0gPT0gTlVMTCkgfHwKKyAgICAgICAgICAgIChzY2hlbWEtPm5hbWVzcGFjZXNbMiAqIGkgKyAxXSA9PSBOVUxMKSkKKwkgICAgYnJlYWs7CisJeG1sWFBhdGhSZWdpc3Rlck5zKHJldC0+eGN0eHQsIHNjaGVtYS0+bmFtZXNwYWNlc1syICogaSArIDFdLAorCSAgICAgICAgICAgICAgICAgICBzY2hlbWEtPm5hbWVzcGFjZXNbMiAqIGldKTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0OgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIEZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKi8KK3ZvaWQKK3htbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0KHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGN0eHQtPnhjdHh0ICE9IE5VTEwpCisgICAgICAgIHhtbFhQYXRoRnJlZUNvbnRleHQoY3R4dC0+eGN0eHQpOworICAgIGlmIChjdHh0LT5kaWN0ICE9IE5VTEwpCisgICAgICAgIHhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxTY2hlbWF0cm9uTmV4dE5vZGUoeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJLyoKKwkgKiBEbyBub3QgZGVzY2VuZCBvbiBlbnRpdGllcyBkZWNsYXJhdGlvbnMKKwkgKi8KKwlpZiAoY3VyLT5jaGlsZHJlbi0+dHlwZSAhPSBYTUxfRU5USVRZX0RFQ0wpIHsKKwkgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKwkgICAgLyoKKwkgICAgICogU2tpcCBEVERzCisJICAgICAqLworCSAgICBpZiAoY3VyLT50eXBlICE9IFhNTF9EVERfTk9ERSkKKwkJcmV0dXJuKGN1cik7CisJfQorICAgIH0KKworICAgIHdoaWxlIChjdXItPm5leHQgIT0gTlVMTCkgeworCWN1ciA9IGN1ci0+bmV4dDsKKwlpZiAoKGN1ci0+dHlwZSAhPSBYTUxfRU5USVRZX0RFQ0wpICYmCisJICAgIChjdXItPnR5cGUgIT0gWE1MX0RURF9OT0RFKSkKKwkgICAgcmV0dXJuKGN1cik7CisgICAgfQorICAgIAorICAgIGRvIHsKKwljdXIgPSBjdXItPnBhcmVudDsKKwlpZiAoY3VyID09IE5VTEwpIGJyZWFrOworCWlmIChjdXItPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHJldHVybihOVUxMKTsKKwlpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCSAgICByZXR1cm4oY3VyKTsKKwl9CisgICAgfSB3aGlsZSAoY3VyICE9IE5VTEwpOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbFNjaGVtYXRyb25SdW5UZXN0OgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHRlc3Q6ICB0aGUgY3VycmVudCB0ZXN0CisgKiBAaW5zdGFuY2U6ICB0aGUgZG9jdW1lbnQgaW5zdGFjZSB0cmVlIAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIGluc3RhbmNlCisgKgorICogVmFsaWRhdGUgYSBydWxlIGFnYWluc3QgYSB0cmVlIGluc3RhbmNlIGF0IGEgZ2l2ZW4gcG9zaXRpb24KKyAqCisgKiBSZXR1cm5zIDEgaW4gY2FzZSBvZiBzdWNjZXNzLCAwIGlmIGVycm9yIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYXRyb25SdW5UZXN0KHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgeG1sU2NoZW1hdHJvblRlc3RQdHIgdGVzdCwgeG1sRG9jUHRyIGluc3RhbmNlLCB4bWxOb2RlUHRyIGN1ciwgeG1sU2NoZW1hdHJvblBhdHRlcm5QdHIgcGF0dGVybikKK3sKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisgICAgaW50IGZhaWxlZDsKKworICAgIGZhaWxlZCA9IDA7CisgICAgY3R4dC0+eGN0eHQtPmRvYyA9IGluc3RhbmNlOworICAgIGN0eHQtPnhjdHh0LT5ub2RlID0gY3VyOworICAgIHJldCA9IHhtbFhQYXRoQ29tcGlsZWRFdmFsKHRlc3QtPmNvbXAsIGN0eHQtPnhjdHh0KTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwlmYWlsZWQgPSAxOworICAgIH0gZWxzZSB7CisgICAgICAgIHN3aXRjaCAocmV0LT50eXBlKSB7CisJICAgIGNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCSAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisJCWlmICgocmV0LT5ub2Rlc2V0dmFsID09IE5VTEwpIHx8CisJCSAgICAocmV0LT5ub2Rlc2V0dmFsLT5ub2RlTnIgPT0gMCkpCisJCSAgICBmYWlsZWQgPSAxOworCQlicmVhazsKKwkgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCQlmYWlsZWQgPSAhcmV0LT5ib29sdmFsOworCQlicmVhazsKKwkgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisJCWlmICgoeG1sWFBhdGhJc05hTihyZXQtPmZsb2F0dmFsKSkgfHwKKwkJICAgIChyZXQtPmZsb2F0dmFsID09IDAuMCkpCisJCSAgICBmYWlsZWQgPSAxOworCQlicmVhazsKKwkgICAgY2FzZSBYUEFUSF9TVFJJTkc6CisJCWlmICgocmV0LT5zdHJpbmd2YWwgPT0gTlVMTCkgfHwKKwkJICAgIChyZXQtPnN0cmluZ3ZhbFswXSA9PSAwKSkKKwkJICAgIGZhaWxlZCA9IDE7CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKwkgICAgY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgY2FzZSBYUEFUSF9SQU5HRToKKwkgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKwkgICAgY2FzZSBYUEFUSF9VU0VSUzoKKwkJZmFpbGVkID0gMTsKKwkJYnJlYWs7CisJfQorCXhtbFhQYXRoRnJlZU9iamVjdChyZXQpOworICAgIH0KKyAgICBpZiAoKGZhaWxlZCkgJiYgKHRlc3QtPnR5cGUgPT0gWE1MX1NDSEVNQVRST05fQVNTRVJUKSkKKyAgICAgICAgY3R4dC0+bmJlcnJvcnMrKzsKKyAgICBlbHNlIGlmICgoIWZhaWxlZCkgJiYgKHRlc3QtPnR5cGUgPT0gWE1MX1NDSEVNQVRST05fUkVQT1JUKSkKKyAgICAgICAgY3R4dC0+bmJlcnJvcnMrKzsKKworICAgIHhtbFNjaGVtYXRyb25SZXBvcnRTdWNjZXNzKGN0eHQsIHRlc3QsIGN1ciwgcGF0dGVybiwgIWZhaWxlZCk7CisKKyAgICByZXR1cm4oIWZhaWxlZCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQGluc3RhbmNlOiAgdGhlIGRvY3VtZW50IGluc3RhY2UgdHJlZSAKKyAqCisgKiBWYWxpZGF0ZSBhIHRyZWUgaW5zdGFuY2UgYWdhaW5zdCB0aGUgc2NoZW1hdHJvbgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3IKKyAqICAgICAgICAgYW5kIGFuIGVycm9yIGNvdW50IG90aGVyd2lzZS4KKyAqLworaW50Cit4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MoeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgaW5zdGFuY2UpCit7CisgICAgeG1sTm9kZVB0ciBjdXIsIHJvb3Q7CisgICAgeG1sU2NoZW1hdHJvblBhdHRlcm5QdHIgcGF0dGVybjsKKyAgICB4bWxTY2hlbWF0cm9uUnVsZVB0ciBydWxlOworICAgIHhtbFNjaGVtYXRyb25UZXN0UHRyIHRlc3Q7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPnNjaGVtYSA9PSBOVUxMKSB8fAorICAgICAgICAoY3R4dC0+c2NoZW1hLT5ydWxlcyA9PSBOVUxMKSB8fCAoaW5zdGFuY2UgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgY3R4dC0+bmJlcnJvcnMgPSAwOworICAgIHJvb3QgPSB4bWxEb2NHZXRSb290RWxlbWVudChpbnN0YW5jZSk7CisgICAgaWYgKHJvb3QgPT0gTlVMTCkgeworICAgICAgICBUT0RPCisJY3R4dC0+bmJlcnJvcnMrKzsKKwlyZXR1cm4oMSk7CisgICAgfQorICAgIGlmICgoY3R4dC0+ZmxhZ3MgJiBYTUxfU0NIRU1BVFJPTl9PVVRfUVVJRVQpIHx8CisgICAgICAgIChjdHh0LT5mbGFncyA9PSAwKSkgeworCS8qCisJICogd2UgYXJlIGp1c3QgdHJ5aW5nIHRvIGFzc2VydCB0aGUgdmFsaWRpdHkgb2YgdGhlIGRvY3VtZW50LAorCSAqIHNwZWVkIHByaW1lcyBvdmVyIHRoZSBvdXRwdXQsIHJ1biBpbiBhIHNpbmdsZSBwYXNzCisJICovCisJY3VyID0gcm9vdDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgcnVsZSA9IGN0eHQtPnNjaGVtYS0+cnVsZXM7CisJICAgIHdoaWxlIChydWxlICE9IE5VTEwpIHsKKwkJaWYgKHhtbFBhdHRlcm5NYXRjaChydWxlLT5wYXR0ZXJuLCBjdXIpID09IDEpIHsKKwkJICAgIHRlc3QgPSBydWxlLT50ZXN0czsKKwkJICAgIHdoaWxlICh0ZXN0ICE9IE5VTEwpIHsKKwkJCXhtbFNjaGVtYXRyb25SdW5UZXN0KGN0eHQsIHRlc3QsIGluc3RhbmNlLCBjdXIsICh4bWxTY2hlbWF0cm9uUGF0dGVyblB0cilydWxlLT5wYXR0ZXJuKTsKKwkJCXRlc3QgPSB0ZXN0LT5uZXh0OworCQkgICAgfQorCQl9CisJCXJ1bGUgPSBydWxlLT5uZXh0OworCSAgICB9CisJICAgIAorCSAgICBjdXIgPSB4bWxTY2hlbWF0cm9uTmV4dE5vZGUoY3VyKTsKKwl9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyoKKwkgKiBQcm9jZXNzIGFsbCBjb250ZXh0cyBvbmUgYXQgYSB0aW1lCisJICovCisJcGF0dGVybiA9IGN0eHQtPnNjaGVtYS0+cGF0dGVybnM7CisJCisJd2hpbGUgKHBhdHRlcm4gIT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWF0cm9uUmVwb3J0UGF0dGVybihjdHh0LCBwYXR0ZXJuKTsKKworCSAgICAvKgorCSAgICAgKiBUT0RPIGNvbnZlcnQgdGhlIHBhdHRlcm4gcnVsZSB0byBhIGRpcmVjdCBYUGF0aCBhbmQKKwkgICAgICogY29tcHV0ZSBkaXJlY3RseSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwYXR0ZXJuIG1hdGNoaW5nCisJICAgICAqIG92ZXIgdGhlIGZ1bGwgZG9jdW1lbnQuLi4gCisJICAgICAqIENoZWNrIHRoZSBleGFjdCBzZW1hbnRpYworCSAgICAgKi8KKwkgICAgY3VyID0gcm9vdDsKKwkgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCXJ1bGUgPSBwYXR0ZXJuLT5ydWxlczsKKwkJd2hpbGUgKHJ1bGUgIT0gTlVMTCkgeworCQkgICAgaWYgKHhtbFBhdHRlcm5NYXRjaChydWxlLT5wYXR0ZXJuLCBjdXIpID09IDEpIHsKKwkJCXRlc3QgPSBydWxlLT50ZXN0czsKKwkJCXdoaWxlICh0ZXN0ICE9IE5VTEwpIHsKKwkJCSAgICB4bWxTY2hlbWF0cm9uUnVuVGVzdChjdHh0LCB0ZXN0LCBpbnN0YW5jZSwgY3VyLCBwYXR0ZXJuKTsKKwkJCSAgICB0ZXN0ID0gdGVzdC0+bmV4dDsKKwkJCX0KKwkJICAgIH0KKwkJICAgIHJ1bGUgPSBydWxlLT5wYXRuZXh0OworCQl9CisJCQorCQljdXIgPSB4bWxTY2hlbWF0cm9uTmV4dE5vZGUoY3VyKTsKKwkgICAgfQorCSAgICBwYXR0ZXJuID0gcGF0dGVybi0+bmV4dDsKKwl9CisgICAgfQorICAgIHJldHVybihjdHh0LT5uYmVycm9ycyk7Cit9CisKKyNpZmRlZiBTVEFOREFMT05FCitpbnQKK21haW4odm9pZCkKK3sKKyAgICBpbnQgcmV0OworICAgIHhtbERvY1B0ciBpbnN0YW5jZTsKKyAgICB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBwY3R4dDsKKyAgICB4bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyIHZjdHh0OworICAgIHhtbFNjaGVtYXRyb25QdHIgc2NoZW1hID0gTlVMTDsKKworICAgIHBjdHh0ID0geG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQoInRzdC5zY3QiKTsKKyAgICBpZiAocGN0eHQgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBidWlsZCBzY2hlbWF0cm9uIHBhcnNlclxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2NoZW1hID0geG1sU2NoZW1hdHJvblBhcnNlKHBjdHh0KTsKKwlpZiAoc2NoZW1hID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gY29tcGlsZSBzY2hlbWF0cm9uXG4iKTsKKwl9CisJeG1sU2NoZW1hdHJvbkZyZWVQYXJzZXJDdHh0KHBjdHh0KTsKKyAgICB9CisgICAgaW5zdGFuY2UgPSB4bWxSZWFkRmlsZSgidHN0LnNjdCIsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUEFSU0VfTk9FTlQgfCBYTUxfUEFSU0VfTk9DREFUQSk7CisgICAgaWYgKGluc3RhbmNlID09IE5VTEwpIHsKKwlmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBwYXJzZSBpbnN0YW5jZVxuIik7CisgICAgfQorICAgIGlmICgoc2NoZW1hICE9IE5VTEwpICYmIChpbnN0YW5jZSAhPSBOVUxMKSkgeworICAgICAgICB2Y3R4dCA9IHhtbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQoc2NoZW1hKTsKKwlpZiAodmN0eHQgPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBidWlsZCBzY2hlbWF0cm9uIHZhbGlkYXRvclxuIik7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jKHZjdHh0LCBpbnN0YW5jZSk7CisJICAgIHhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0KHZjdHh0KTsKKwl9CisgICAgfQorICAgIHhtbFNjaGVtYXRyb25GcmVlKHNjaGVtYSk7CisgICAgeG1sRnJlZURvYyhpbnN0YW5jZSk7CisKKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisgICAgcmV0dXJuICgwKTsKK30KKyNlbmRpZgorI2RlZmluZSBib3R0b21fc2NoZW1hdHJvbgorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC81Mzg2Ny5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvNTM4NjcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzI3OTk5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvNTM4NjcuaHRtbApAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9Eb3duLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9Eb3duLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJlY2EyMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML0Rvd24uaHRtbApAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGhpcyBzZXJ2aWNlIGlzIHRlbXBvcmFyeSBkb3duPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiI+Cis8aDEgYWxpZ249ImNlbnRlciI+U29ycnksIHRoaXMgc2VydmljZSBpcyB0ZW1wb3JhcnkgZG93bjwvaDE+CitXZSBhcmUgZG9pbmcgb3VyIGJlc3QgdG8gZ2V0IGl0IGJhY2sgb24tbGluZSwKKworPHA+VGhlIFczQyBzeXN0ZW0gYWRtaW5pc3RyYXRvcnM8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9hdHRyZW50cy5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvYXR0cmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDg2ZWMwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvYXR0cmVudHMuaHRtbApAQCAtMCwwICsxLDUgQEAKKzxodG1sPg0KKzxib2R5IGJnY29sb3I9IiNGRkZGRkYiPg0KKyAgICAgICAgICAgICAgICA8YSBocmVmPSImIzEwOTsmIzk3OyYjMTA1OyYjMTA4OyYjMTE2OyYjMTExOyYjNTg7JiMxMDc7JiM5NzsmIzExNjsmIzEwNDsmIzEwMTsmIzExNDsmIzEwNTsmIzExMDsmIzEwMTsmIzY0OyYjOTk7JiM5ODsmIzEwMjsmIzk3OyYjMTEwOyYjOTk7JiM0NjsmIzExMTsmIzExNDsmIzEwMzsmIzQ0OyYjMTE5OyYjMTAxOyYjOTg7JiMxMTU7JiMxMDU7JiMxMTY7JiMxMDE7JiM2NDsmIzk4OyYjMTA1OyYjMTE1OyYjNDY7JiMxMDA7JiMxMTE7JiM5OTsmIzQ2OyYjMTAzOyYjMTExOyYjMTE4OyYjNjM7JiMxMTU7JiMxMTc7JiM5ODsmIzEwNjsmIzEwMTsmIzk5OyYjMTE2OyYjNjE7JiM4MzsmIzExMTsmIzExNzsmIzExNjsmIzEwNDsmIzMyOyYjODM7JiM5NzsmIzExMDsmIzMyOyYjNzA7JiMxMTQ7JiM5NzsmIzExMDsmIzk5OyYjMTA1OyYjMTE1OyYjOTk7JiMxMTE7JiMzMjsmIzY2OyYjNzM7JiM4MzsmIzMyOyYjODM7JiMxMDE7JiMxMDk7JiMxMDU7JiMxMTA7JiM5NzsmIzExNDsmIzMyOyYjNDU7JiMzMjsmIzc5OyYjOTk7JiMxMTY7JiMxMTE7JiM5ODsmIzEwMTsmIzExNDsmIzMyOyYjNDk7JiM1NDsmIzExNjsmIzEwNDsiPjwvYT48YnI+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9hdXRvY2xvc2UuaHRtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2F1dG9jbG9zZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMjNiYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9hdXRvY2xvc2UuaHRtbApAQCAtMCwwICsxIEBACis8aHI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9hdXRvY2xvc2UyLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9hdXRvY2xvc2UyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQwMDgyYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2F1dG9jbG9zZTIuaHRtbApAQCAtMCwwICsxIEBACis8cD50b3RvCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9hdXRvY2xvc2UzLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9hdXRvY2xvc2UzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM3YTQ1YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2F1dG9jbG9zZTMuaHRtbApAQCAtMCwwICsxLDMgQEAKKzx1bD4KKzxsaT5pdGVtIDEKKzxsaT5pdGVtIDIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2NmXzEyOC5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvY2ZfMTI4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNkMTE4YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2NmXzEyOC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvc3RyaWN0LmR0ZCI+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmdub21lLXhtbCBwdXNoIG1vZGUgYnVnPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8dGFibGUgYm9yZGVyPSI0Ij4KKyAgPHRyPgorICAgIDx0ZCBiZ2NvbG9yPSJ3aGl0ZSI+CisJRm9vMQorCTx0YWJsZSBib3JkZXI9IjQiPgorCSAgPHRyPgorCSAgICA8dGQ+Rm9vMjxwPjxwPjwvdGQ+PC90cj48L3RhYmxlPgorICAgIDwvdGQ+CisgICAgPHRkIGJnY29sb3I9ImJsdWUiPkZvbzM8L3RkPgorICAgPC90cj4KKyAgPC90YWJsZT4KKyAgPC9ib2R5PgorPC9odG1sPiAgCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9kb2MyLmh0bSBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2RvYzIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNmYyODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9kb2MyLmh0bQpAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDAxNilodHRwOi8vaW50cmFuZXQvIC0tPgorPCEtLSBCRUdJTiBOYXZpc2NvcGUgSmF2YXNjcmlwdCAtLT48SFRNTD48SEVBRD48VElUTEU+V2VsY29tZSB0byBDb3Blcm5pYy5jb208L1RJVExFPgorPFNDUklQVCBsYW5ndWFnZT1qYXZhc2NyaXB0PgorICAgICAgICAgIE5TX0FjdHVhbE9wZW49d2luZG93Lm9wZW47CisgICAgICAgICAgZnVuY3Rpb24gTlNfTnVsbFdpbmRvdygpe3RoaXMud2luZG93O30KKyAgICAgICAgICBmdW5jdGlvbiBOU19OZXdPcGVuKHVybCxuYW0sYXRyKXtyZXR1cm4obmV3IE5TX051bGxXaW5kb3coKSk7fQorICAgICAgICAgIHdpbmRvdy5vcGVuPU5TX05ld09wZW47Cis8L1NDUklQVD4KKzwhLS0gRU5EIE5hdmlzY29wZSBKYXZhc2NyaXB0IC0tPjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+PCEtLSBzYXZlZCBmcm9tIHVybD0oMDAyNylodHRwOi8vd3d3LmFnZW50cy10ZWNoLmNvbS8gLS0+Cis8TUVUQSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSIgaHR0cC1lcXVpdj1Db250ZW50LVR5cGU+Cis8TUVUQSAKK2NvbnRlbnQ9IkNvcGVybmljLmNvbSBJbmMuIGRldmVsb3BzIGlubm92YXRpdmUgYWdlbnQgdGVjaG5vbG9neSBzb2x1dGlvbnMgdG8gZWZmaWNpZW50bHkgYWNjZXNzIGFuZCBtYW5hZ2UgdGhlIG92ZXJ3aGVsbWluZyBxdWFudGl0eSBvZiBpbmZvcm1hdGlvbiBhdmFpbGFibGUgb24gdGhlIEludGVybmV0IGFuZCBpbnRyYW5ldHMuIiAKK25hbWU9REVTQ1JJUFRJT04+Cis8TUVUQSAKK2NvbnRlbnQ9YWdlbnQsdGVjaG5vbG9neSxpbnRyYW5ldCxleHRyYW5ldCxtYW5hZ2VtZW50LGZpbHRlcmluZyxyYW5raW5nLHNvbHV0aW9uLHNlcnZpY2UsaW50ZWxsaWdlbnQsaW50ZWxsaWdlbmNlLGNsaWVudCxzZXJ2ZXIsYXJjaGl0ZWN0dXJlLGRldmVsb3BlcixkZXZlbG9wbWVudCxpbmZvcm1hdGlvbix0ZWxlY29tbXVuaWNhdGlvbixhbm5vdW5jZW1lbnQscHJlc3MscHJvZHVjdCxwcm9maWxlLGNvbnRhY3QsbXVsdGktYWdlbnQsbWV0YS1zZWFyY2gsbWV0YXNlYXJjaCxtdWx0aS10aHJlYWQsbW9iaWxlLHdpcmVsZXNzLHNob3BwaW5nLHJvYm90LFBDUyxDb3Blcm5pYyxlbmdpbmUsdG9vbGtpdCxDREssRURLIAorbmFtZT1LRVlXT1JEUz4KKzxNRVRBIGNvbnRlbnQ9Ik1TSFRNTCA1LjAwLjMxMDMuMTAwMCIgbmFtZT1HRU5FUkFUT1I+PC9IRUFEPjxGUkFNRVNFVCAKK2JvcmRlcj1mYWxzZSBjb2xzPTE3MiwqIGZyYW1lQm9yZGVyPTAgZnJhbWVTcGFjaW5nPTA+PEZSQU1FIG1hcmdpbkhlaWdodD0wIAorbWFyZ2luV2lkdGg9MCBuYW1lPWxlZnQgbm9SZXNpemUgc2Nyb2xsaW5nPW5vIHNyYz0iZG9jMl9maWxlcy9zaWRlLmh0bSIgCit0YXJnZXQ9InJ0b3AiPjxGUkFNRVNFVCByb3dzPTQzLCo+PEZSQU1FIG1hcmdpbkhlaWdodD0wIG1hcmdpbldpZHRoPTAgbmFtZT1ydG9wIAorbm9SZXNpemUgc2Nyb2xsaW5nPW5vIHNyYz0iZG9jMl9maWxlcy90b3AuaHRtIiB0YXJnZXQ9InJib3R0b20iPjxGUkFNRSAKK25hbWU9cmJvdHRvbSBub1Jlc2l6ZSBzcmM9ImRvYzJfZmlsZXMvY29udGVudHMuaHRtIiAKK3RhcmdldD0iX3RvcCI+PC9GUkFNRVNFVD48Tk9GUkFNRVM+CisKKyAgPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAwMDA4MCIgdmxpbms9IiMwMDAwODAiIGFsaW5rPSIjMDAwMDgwIgorICB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIG1hcmdpbmhlaWdodD0iMCIgbWFyZ2lud2lkdGg9IjAiPgorICA8cD5UaGlzIHBhZ2UgdXNlcyBmcmFtZXMsIGJ1dCB5b3VyIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IHRoZW0uPC9wPgorICA8L2JvZHk+CisgIDwvTk9GUkFNRVM+PC9GUkFNRVNFVD48L0hUTUw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9kb2MzLmh0bSBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2RvYzMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhMjg5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9kb2MzLmh0bQpAQCAtMCwwICsxLDg1MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4NCis8IS0tIHNhdmVkIGZyb20gdXJsPSgwMDI1KWh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8gLS0+DQorPCEtLSBCRUdJTiBOYXZpc2NvcGUgSmF2YXNjcmlwdCAtLT48SFRNTD48SEVBRD48VElUTEU+QlA2LmNvbSAjMSBvbmxpbmUgcmVzb3VyY2UgZm9yIHRoZSBCUDYgTW9iby4uLi48L1RJVExFPg0KKzxTQ1JJUFQgbGFuZ3VhZ2U9amF2YXNjcmlwdD4NCisgICAgICAgICAgTlNfQWN0dWFsT3Blbj13aW5kb3cub3BlbjsNCisgICAgICAgICAgZnVuY3Rpb24gTlNfTnVsbFdpbmRvdygpe3RoaXMud2luZG93O30NCisgICAgICAgICAgZnVuY3Rpb24gTlNfTmV3T3Blbih1cmwsbmFtLGF0cil7cmV0dXJuKG5ldyBOU19OdWxsV2luZG93KCkpO30NCisgICAgICAgICAgd2luZG93Lm9wZW49TlNfTmV3T3BlbjsNCis8L1NDUklQVD4NCis8IS0tIEVORCBOYXZpc2NvcGUgSmF2YXNjcmlwdCAtLT48IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yLy9FTiI+PCEtLWxhc3QgbW9kaWZpZWQgb24gVHVlc2RheSwgRmVicnVhcnkgMjIsIDIwMDAgMTE6NDcgUE0gLS0+DQorPE1FVEEgY29udGVudD10ZXh0L2h0bWw7Q0hBUlNFVD1pc28tODg1OS0xIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlPg0KKzxNRVRBIGNvbnRlbnQ9VGltIG5hbWU9QXV0aG9yPg0KKzxTVFlMRSB0eXBlPXRleHQvY3NzPkEubmF2IHsNCisJQ09MT1I6ICMwMDMzOTk7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KK30NCitBLm5hdjpob3ZlciB7DQorCUNPTE9SOiAjMzM2NmNjOyBURVhULURFQ09SQVRJT046IHVuZGVybGluZQ0KK30NCis8L1NUWUxFPg0KKw0KKzxTQ1JJUFQgbGFuZ3VhZ2U9SmF2YVNjcmlwdD4KKzwhLS0gSWRlYSBieTogIE5pYyBXb2xmZSAoTmljQFRpbWVsYXBzZVByb2R1Y3Rpb25zLmNvbSkgLS0+Cis8IS0tIFdlYiBVUkw6ICBodHRwOi8vZmluZWxpbmUueHMubXcgLS0+CisKKzwhLS0gVGhpcyBzY3JpcHQgYW5kIG1hbnkgbW9yZSBhcmUgYXZhaWxhYmxlIGZyZWUgb25saW5lIGF0IC0tPgorPCEtLSBUaGUgSmF2YVNjcmlwdCBTb3VyY2UhISBodHRwOi8vamF2YXNjcmlwdC5pbnRlcm5ldC5jb20gLS0+CisKKzwhLS0gQmVnaW4KK2Z1bmN0aW9uIHBvcFVwKFVSTCkgeworZGF5ID0gbmV3IERhdGUoKTsKK2lkID0gZGF5LmdldFRpbWUoKTsKK2V2YWwoInBhZ2UiICsgaWQgKyAiID0gd2luZG93Lm9wZW4oVVJMLCAnIiArIGlkICsgIicsICd0b29sYmFycz0wLCBzY3JvbGxiYXJzPTAsIGxvY2F0aW9uPTAsIHN0YXR1c2JhcnM9MCwgbWVudWJhcnM9MCwgcmVzaXphYmxlPTAsIHdpZHRoPTE0NSwgaGVpZ2h0PTI1MCcpOyIpOworfQorLy8gRW5kIC0tPgorPC9TQ1JJUFQ+DQorDQorPE1FVEEgY29udGVudD0iTVNIVE1MIDUuMDAuMzEwMy4xMDAwIiBuYW1lPUdFTkVSQVRPUj48L0hFQUQ+DQorPEJPRFkgYUxpbms9cmVkIGJnQ29sb3I9YmxhY2sgbGluaz1yZWQgdGV4dD13aGl0ZSB2TGluaz1yZWQ+DQorPFA+DQorPERJViBhbGlnbj1jZW50ZXI+DQorPFRBQkxFIGJvcmRlcj0wIGNlbGxQYWRkaW5nPTAgY2VsbFNwYWNpbmc9MCB3aWR0aD0iODAlIj4NCisgIDxUQk9EWT4NCisgIDxUUj4NCisgICAgPFREIHZBbGlnbj10b3Agd2lkdGg9MzE+PEEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyI+PElNRyANCisgICAgICBhbGlnbj1ib3R0b20gYm9yZGVyPTAgaGVpZ2h0PTc0IHNyYz0iZG9jM19maWxlcy9sb2dvLmdpZiIgDQord2lkdGg9MjUyPjwvQT48L1REPg0KKyAgICA8VEQgYWxpZ249bGVmdCBiZ0NvbG9yPSMwMDAwMDA+PElNRyBoZWlnaHQ9MTUgc3JjPSJkb2MzX2ZpbGVzL3NwYWNlci5naWYiIA0KKyAgICAgIHdpZHRoPTE1PjwhLS0gU1RBUlQgR0FNRVNRVUFELk5FVCBJRlJBTUUgUklDSCBNRURJQSBDT0RFIC0tPiA8IS0tIKkgMjAwMCBHYW1lU3F1YWQubmV0IEFsbCBSaWdodHMgUmVzZXJ2ZWQuIC0tPjxJRlJBTUUgYm9yZGVyPTAgDQorICAgICAgZnJhbWVCb3JkZXI9bm8gaGVpZ2h0PTYwIG1hcmdpbkhlaWdodD0wIG1hcmdpbldpZHRoPTAgc2Nyb2xsaW5nPW5vIA0KKyAgICAgIHNyYz0iZG9jM19maWxlcy9hZGN5Y2xlLmh0bSIgDQorICAgICAgd2lkdGg9NDY4PgorPGEgaHJlZj0iaHR0cDovL2Fkcy5nYW1lc3F1YWQubmV0L2FkZGNsaWNrLmV4ZS9hZGNsaWNrLmNnaT9SRUdJT049Z2FtZXx0ZWNofGVudCZpZD0xIiB0YXJnZXQ9Il90b3AiPjxpbWcgc3JjPSJodHRwOi8vYWRzLmdhbWVzcXVhZC5uZXQvYWRkY2xpY2suZXhlL2FkY3ljbGUuY2dpP2dyb3VwPTUyJm1lZGlhPTEmaWQ9MSIgd2lkdGg9NDY4IGhlaWdodD02MCBib3JkZXI9MCBBTFQ9IkdTTiBST1MgQWQiPjwvYT4KKzwvSUZSQU1FPjwhLS0gRU5EIEdBTUVTUVVBRC5ORVQgSUZSQU1FIFJJQ0ggTUVESUEgQ09ERSAtLT48QlI+PElNRyANCisgICAgICBoZWlnaHQ9MTUgc3JjPSJkb2MzX2ZpbGVzL3NwYWNlci5naWYiIHdpZHRoPTQwMD4gPC9URD48L1RSPg0KKyAgPFRSPg0KKyAgICA8VEQgYmdDb2xvcj0jMDAzMzk5IGNvbFNwYW49Mj4NCisgICAgICA8UCBhbGlnbj1yaWdodD48SU1HIGFsaWduPXJpZ2h0IGJvcmRlcj0wIGhlaWdodD0xOCBoc3BhY2U9MCANCisgICAgICBzcmM9ImRvYzNfZmlsZXMvdHJjb3JuZXIuZ2lmIiB3aWR0aD0yMD48SU1HIGFsaWduPWxlZnQgYm9yZGVyPTAgaGVpZ2h0PTE4IA0KKyAgICAgIGhzcGFjZT0wIHNyYz0iZG9jM19maWxlcy90bGNvcm5lci5naWYiIHdpZHRoPTIwPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICBzaXplPTI+TW9uZGF5LCBKdWx5IDMxc3QsIDIwMDA8L0ZPTlQ+IDwvUD48L1REPjwvVFI+DQorICA8VFI+DQorICAgIDxURCBjb2xTcGFuPTI+DQorICAgICAgPFRBQkxFIGJnQ29sb3I9IzAwMzM5OSBib3JkZXI9MCBjZWxsUGFkZGluZz0wIGNlbGxTcGFjaW5nPTQgDQorICAgICAgICB3aWR0aD0iMTAwJSI+PFRCT0RZPg0KKyAgICAgICAgPFRSPg0KKyAgICAgICAgICA8VEQgYmdDb2xvcj0jNjY2NjY2IHdpZHRoPSIxMDAlIj4NCisgICAgICAgICAgICA8Q0VOVEVSPg0KKyAgICAgICAgICAgIDxQPg0KKyAgICAgICAgICAgIDxUQUJMRSBiZ0NvbG9yPWJsYWNrIGJvcmRlcj0wIGNlbGxQYWRkaW5nPTAgY2VsbFNwYWNpbmc9MSANCisgICAgICAgICAgICB3aWR0aD0iMTAwJSI+DQorICAgICAgICAgICAgICA8VEJPRFk+DQorICAgICAgICAgICAgICA8VFI+DQorICAgICAgICAgICAgICAgIDxURCBiYWNrZ3JvdW5kPWRvYzNfZmlsZXMvaHNjYW4uZ2lmIGJnQ29sb3I9IzY2NjY2NiANCisgICAgICAgICAgICAgICAgICB3aWR0aD0iMTAwJSI+PElNRyBoZWlnaHQ9MSBzcmM9ImRvYzNfZmlsZXMvc3BhY2VyLmdpZiIgDQorICAgICAgICAgICAgICAgICAgd2lkdGg9NzM4PjxCUj4NCisgICAgICAgICAgICAgICAgICA8Q0VOVEVSPg0KKyAgICAgICAgICAgICAgICAgIDxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0yIGNlbGxTcGFjaW5nPTAgd2lkdGg9IjkxJSI+DQorICAgICAgICAgICAgICAgICAgICA8VEJPRFk+DQorICAgICAgICAgICAgICAgICAgICA8VFI+DQorICAgICAgICAgICAgICAgICAgICAgIDxURCB2QWxpZ249dG9wIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxQIGFsaWduPWNlbnRlcj48QSANCisgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvc3BlY3MucGh0bWwiPjxJTUcgDQorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ249Ym90dG9tIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iQWJpdCBCUDYgTW90aGVyYm9hcmQgc3BlY2lmaWNhdGlvbiBhbmQgaW5mb3JtYXRpb24uIiANCisgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9MCBoZWlnaHQ9NDUgc3JjPSJkb2MzX2ZpbGVzL2JwNmljb24uZ2lmIiANCisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD03MD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9zcGVjcy5waHRtbCI+PEZPTlQgDQorICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9d2hpdGUgZmFjZT1WZXJkYW5hIHNpemU9MT5CUDYgU3BlY3M8L0ZPTlQ+PC9BPiANCisgICAgICAgICAgICAgICAgICAgICAgPC9QPjwvVEQ+DQorICAgICAgICAgICAgICAgICAgICAgIDxURCB2QWxpZ249dG9wIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxQIGFsaWduPWNlbnRlcj48QSANCisgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvYnhjb29sLnBodG1sIj48SU1HIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPWJvdHRvbSANCisgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IkhvdyB0byBjb29sIHRoZSBCWCBDaGlwc2V0IG9uIHlvdXIgQlA2LiIgYm9yZGVyPTAgDQorICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PTQ1IHNyYz0iZG9jM19maWxlcy9ieGNvb2wuZ2lmIiB3aWR0aD03MD48L0E+PEZPTlQgDQorICAgICAgICAgICAgICAgICAgICAgICAgZmFjZT1WZXJkYW5hIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PEZPTlQgDQorICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9d2hpdGUgZmFjZT1WZXJkYW5hIHNpemU9MT5CWCBDb29saW5nPC9GT05UPjwvQT4gDQorICAgICAgICAgICAgICAgICAgICAgICAgPC9QPjwvVEQ+DQorICAgICAgICAgICAgICAgICAgICAgIDxURCB2QWxpZ249dG9wIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxQIGFsaWduPWNlbnRlcj48QSANCisgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY29udGVzdC5waHRtbCI+PElNRyANCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1ib3R0b20gDQorICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJUaGUgVTt0aW1hdGUgR2FtaW5nIENvbnRlc3QgLSBDb21pbmcgU29vbiEiIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj0wIGhlaWdodD00NSBzcmM9ImRvYzNfZmlsZXMvdWdtY29udGVzdC5naWYiIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPTcwPjwvQT48Rk9OVCBmYWNlPVZlcmRhbmEgc2l6ZT0xPjxCUj48L0ZPTlQ+PEEgDQorICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NvbnRlc3QucGh0bWwiPjxGT05UIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXdoaXRlIGZhY2U9VmVyZGFuYSBzaXplPTE+VUdNIENvbnRlc3Q8L0ZPTlQ+PC9BPiANCisgICAgICAgICAgICAgICAgICAgICAgICA8L1A+PC9URD4NCisgICAgICAgICAgICAgICAgICAgICAgPFREIHZBbGlnbj10b3Agd2lkdGg9IjE1JSI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPFAgYWxpZ249Y2VudGVyPjxBIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PElNRyANCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1ib3R0b20gDQorICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJDb29saW5nICZhbXA7IEhlYXRzaW5rIHJldmlldyBmb3IgdGhlIEJQNi4iIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj0wIGhlaWdodD00NSBzcmM9ImRvYzNfZmlsZXMvYWxwaGEuZ2lmIiANCisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD03MD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PEZPTlQgDQorICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9d2hpdGUgZmFjZT1WZXJkYW5hIHNpemU9MT5IZWF0c2lua3M8L0ZPTlQ+PC9BPiANCisgICAgICAgICAgICAgICAgICAgICAgPC9QPjwvVEQ+DQorICAgICAgICAgICAgICAgICAgICAgIDxURCB2QWxpZ249dG9wIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxQIGFsaWduPWNlbnRlcj48QSANCisgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvMTAxLnBodG1sIj48SU1HIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPWJvdHRvbSANCisgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IkJQNiAxMDEgLSBDbGFzcyBpcyBub3cgaW4gc2Vzc2lvbi4gV2VsY29tZSBuZXdiaWVzISIgDQorICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyPTAgaGVpZ2h0PTQ1IHNyYz0iZG9jM19maWxlcy9icDYxMDEuZ2lmIiANCisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD03MD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8xMDEucGh0bWwiPjxGT05UIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXdoaXRlIGZhY2U9VmVyZGFuYSBzaXplPTE+QlA2IDEwMTwvRk9OVD48L0E+IA0KKyAgICAgICAgICAgICAgICAgICAgICA8L1A+PC9URD4NCisgICAgICAgICAgICAgICAgICAgICAgPFREIHZBbGlnbj10b3Agd2lkdGg9IjE1JSI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPFAgYWxpZ249Y2VudGVyPjxBIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC93aW4ya19pbnN0YWxsLnBodG1sIj48SU1HIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPWJvdHRvbSANCisgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9Ikluc3RhbGwgZ3VpZGUgZm9yIGluc3RhbGxpbmcgV2luZG93cyAyMDAwIG9uIHRoZSBCUDYgIiANCisgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9MCBoZWlnaHQ9NDUgc3JjPSJkb2MzX2ZpbGVzL3dpbjJraHQuZ2lmIiANCisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD03MD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC93aW4ya19pbnN0YWxsLnBodG1sIj48Rk9OVCANCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj13aGl0ZSBmYWNlPVZlcmRhbmEgc2l6ZT0xPldpbjJrIEluc3RhbGw8L0ZPTlQ+PC9BPiANCisgICAgICAgICAgICAgICAgICAgICAgICA8L1A+PC9URD4NCisgICAgICAgICAgICAgICAgICAgICAgPFREIHZBbGlnbj10b3Agd2lkdGg9IjE1JSI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPFAgYWxpZ249Y2VudGVyPjxBIGhyZWY9Imh0dHA6Ly93d3cuZ2VudHVzLmNvbS8iPjxJTUcgDQorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ249Ym90dG9tIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVGFraW5nIGEgZmlyc3QgbG9vayBhdCB0aGUgQWJpdCBMaW51eCByZWxlYXNlIGNhbGxlZCAiIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj0wIGhlaWdodD00NSBzcmM9ImRvYzNfZmlsZXMvZ2VudHVzYm94LmdpZiIgDQorICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9NzAgR2VudHVzPy4/PjwvQT48QlI+PEEgDQorICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5nZW50dXMuY29tLyI+PEZPTlQgY29sb3I9d2hpdGUgDQorICAgICAgICAgICAgICAgICAgICAgICAgZmFjZT1WZXJkYW5hIHNpemU9MT5HZW50dXM8L0ZPTlQ+PC9BPiANCisgICAgICAgICAgICAgICAgICA8L1A+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT48L0NFTlRFUj48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvQ0VOVEVSPjwvUD48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+DQorPFRBQkxFIGJnQ29sb3I9IzAwMzM5OSBib3JkZXI9MCBjZWxsU3BhY2luZz02IHdpZHRoPSI4MCUiPg0KKyAgPFRCT0RZPg0KKyAgPFRSPg0KKyAgICA8VEQgYmdDb2xvcj1ibGFjayB2QWxpZ249dG9wIHdpZHRoPSIxMCUiPg0KKyAgICAgIDxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0zIGNlbGxTcGFjaW5nPTAgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgPFRSPg0KKyAgICAgICAgICA8VEQgd2lkdGg9IjEwMCUiPjxJTUcgaGVpZ2h0PTEgc3JjPSJkb2MzX2ZpbGVzL3NwYWNlci5naWYiIA0KKyAgICAgICAgICAgIHdpZHRoPTExMT48QlI+PEI+PEZPTlQgY29sb3I9eWVsbG93IGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTI+UkVWSUVXUzwvRk9OVD48L0I+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9Mj48QlI+DQorICAgICAgICAgICAgPEhSIGFsaWduPWNlbnRlcj4NCisgICAgICAgICAgICA8L0ZPTlQ+PEEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2JwNnJldmlld3MucGh0bWwiPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPXdoaXRlIGZhY2U9VmVyZGFuYSBzaXplPTE+QlA2IFJldmlld3M8L0ZPTlQ+PC9BPjxGT05UIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+PEJSPjwvRk9OVD48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaDJvLnBodG1sIj48Rk9OVCBjb2xvcj13aGl0ZSANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPkJQNiBXYXRlcmNvb2xpbmc8L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTE+PEJSPjwvRk9OVD48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvYnhjb29sLnBodG1sIj48Rk9OVCBjb2xvcj13aGl0ZSANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPkJYIENoaXBzZXQgQ29vbGluZzwvRk9OVD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIA0KKyAgICAgICAgICAgIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9iZW5jaG1hcmsucGh0bWwiPjxGT05UIGNvbG9yPXdoaXRlIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+QmVuY2htYXJrczwvRk9OVD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIA0KKyAgICAgICAgICAgIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9icDZmc2IucGh0bWwiPjxGT05UIGNvbG9yPXdoaXRlIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+QlA2RlNCIFV0aWxpdHk8L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTE+PEJSPjwvRk9OVD48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvcG93ZXJsZWFwLnBodG1sIj48Rk9OVCBjb2xvcj13aGl0ZSANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPlBvd2VyTGVhcCBORU8gUzM3MDwvRk9OVD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIA0KKyAgICAgICAgICAgIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9zZXRpLnBodG1sIj48Rk9OVCBjb2xvcj13aGl0ZSANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPlNFVEkgb24gdGhlIEJQNjwvRk9OVD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIA0KKyAgICAgICAgICAgIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9vcmJzLnBodG1sIj48Rk9OVCBjb2xvcj13aGl0ZSANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPkdvbGRlbiBPcmJzIEk8L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTE+PEJSPjwvRk9OVD48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvb3Jicy9vcmJzMi5waHRtbCI+PEZPTlQgY29sb3I9d2hpdGUgDQorICAgICAgICAgICAgZmFjZT1WZXJkYW5hIHNpemU9MT5Hb2xkZW4gT3JicyBJSTwvRk9OVD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIA0KKyAgICAgICAgICAgIHNpemU9MT48QlI+PC9GT05UPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9RNmZpeC5waHRtbCI+PEZPTlQgY29sb3I9d2hpdGUgDQorICAgICAgICAgICAgZmFjZT1WZXJkYW5hIHNpemU9MT5WVFQgU29sdXRpb248L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTE+PEJSPjxCUj48L0ZPTlQ+PEI+PEZPTlQgY29sb3I9eWVsbG93IGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTI+TkFWSUdBVEU8L0ZPTlQ+PC9CPjxGT05UIGNvbG9yPXllbGxvdyBmYWNlPVZlcmRhbmEgc2l6ZT0yPiANCisgICAgICAgICAgICA8SFIgYWxpZ249Y2VudGVyPg0KKyAgICAgICAgICAgIDwvRk9OVD48QSBocmVmPSJodHRwOi8vd3d3LmJwNi5jb20vIj48Rk9OVCBjb2xvcj13aGl0ZSBmYWNlPVZlcmRhbmEgDQorICAgICAgICAgICAgc2l6ZT0xPk5ld3M8L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSBzaXplPTE+PEJSPjwvRk9OVD48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY2hhdC5waHRtbCI+PEZPTlQgY29sb3I9d2hpdGUgDQorICAgICAgICAgICAgZmFjZT1WZXJkYW5hIHNpemU9MT5PbmxpbmUgVGV4dCBDaGF0PC9GT05UPjwvQT48Rk9OVCBmYWNlPVZlcmRhbmEgDQorICAgICAgICAgICAgc2l6ZT0xPjxCUj48L0ZPTlQ+PEEgaHJlZj0iamF2YXNjcmlwdDpwb3BVcCgnY2hhdF9wb3B1cC5odG0nKSI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9d2hpdGUgZmFjZT1WZXJkYW5hIHNpemU9MT5Wb2ljZSBDaGF0PC9GT05UPjwvQT48QlI+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovLzIxNi4yNDcuMjIwLjE5Mi9Gb3J1bSI+PEZPTlQgY29sb3I9d2hpdGUgZmFjZT1WZXJkYW5hIA0KKyAgICAgICAgICAgIHNpemU9MT5NZXNzYWdlYm9hcmQ8L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTE+PEJSPjwvRk9OVD48QSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY29vbGluZyI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9d2hpdGUgZmFjZT1WZXJkYW5hIHNpemU9MT5UZW1wLiBDb252ZXJ0ZXI8L0ZPTlQ+PC9BPjxGT05UIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+PEJSPjwvRk9OVD48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvdWMucGh0bWwiPjxGT05UIGNvbG9yPXdoaXRlIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+UGljdHVyZSBHYWxsZXJ5PC9GT05UPjwvQT48Rk9OVCBmYWNlPVZlcmRhbmEgDQorICAgICAgICAgICAgc2l6ZT0xPjxCUj48L0ZPTlQ+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2Jpb3MucGh0bWwiPjxGT05UIGNvbG9yPXdoaXRlIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+TGF0ZXN0IEJJT1M8L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTE+PEJSPjwvRk9OVD48QSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvZmlsZXMvIj48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj13aGl0ZSBmYWNlPVZlcmRhbmEgc2l6ZT0xPkRyaXZlcnMgJmFtcDsgRmlsZXM8L0ZPTlQ+PC9BPjxGT05UIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+PEJSPjwvRk9OVD48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvdWMucGh0bWwiPjxGT05UIGNvbG9yPXdoaXRlIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+VUdNIG9mIHRoZSB3ZWVrPC9GT05UPjwvQT48Rk9OVCBmYWNlPVZlcmRhbmEgDQorICAgICAgICAgICAgc2l6ZT0xPjxCUj48L0ZPTlQ+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NvbnRlc3QucGh0bWwiPjxGT05UIGNvbG9yPXdoaXRlIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+QlA2IENvbnRlc3Q8L0ZPTlQ+PC9BPjxGT05UIGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTE+PEJSPjxCUj48L0ZPTlQ+PEI+PEZPTlQgY29sb3I9eWVsbG93IGZhY2U9VmVyZGFuYSANCisgICAgICAgICAgICBzaXplPTI+T1RIRVIgU1RVRkY8L0ZPTlQ+PC9CPjxGT05UIGNvbG9yPXllbGxvdyBmYWNlPVZlcmRhbmEgc2l6ZT0yPiANCisNCisgICAgICAgICAgICA8SFIgYWxpZ249Y2VudGVyPg0KKyAgICAgICAgICAgIDwvRk9OVD48QSBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvd2hvaXMucGh0bWwiPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPXdoaXRlIGZhY2U9VmVyZGFuYSBzaXplPTE+V2hvIGlzIFRpbT88L0ZPTlQ+PC9BPjxGT05UIA0KKyAgICAgICAgICAgIGZhY2U9VmVyZGFuYSBzaXplPTE+PEJSPjwvRk9OVD48QSBocmVmPSJtYWlsdG86dGltQGJwNi5jb20iPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPXdoaXRlIGZhY2U9VmVyZGFuYSBzaXplPTE+Q29udGFjdCBCUDYuY29tPC9GT05UPjwvQT48Rk9OVCANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPjxCUj48L0ZPTlQ+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L3VjLnBodG1sIj48Rk9OVCBjb2xvcj13aGl0ZSANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPkFmZmlsaWF0ZXMgU2VjdGlvbjwvRk9OVD48L0E+PEZPTlQgZmFjZT1WZXJkYW5hIA0KKyAgICAgICAgICAgIHNpemU9MT48QlI+PC9GT05UPjxBIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9d2hpdGUgZmFjZT1WZXJkYW5hIHNpemU9MT5TcG9uc29ycyBTZWN0aW9uIDxCUj48L0ZPTlQ+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2xpbmtzLnBodG1sIj48Rk9OVCBjb2xvcj13aGl0ZSANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0xPkxpbmtzPEJSPjxCUj48L0ZPTlQ+PC9BPjxCPjxGT05UIGNvbG9yPXllbGxvdyANCisgICAgICAgICAgICBmYWNlPVZlcmRhbmEgc2l6ZT0yPlBDIFNQRUNJQUxTPC9GT05UPjwvQj48Rk9OVCBjb2xvcj15ZWxsb3cgDQorICAgICAgICAgICAgZmFjZT1WZXJkYW5hIHNpemU9Mj4gDQorICAgICAgICAgICAgPEhSIGFsaWduPWNlbnRlcj4NCisgICAgICAgICAgICA8L0ZPTlQ+PEEgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L3NwZWNpYWxzLnBodG1sIj48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj13aGl0ZSBmYWNlPVZlcmRhbmEgc2l6ZT0xPlZlbmRvciANCisgICAgICAgICAgICBTcGVjaWFsczxCUj48QlI+PC9GT05UPjwvQT48QlI+PC9GT05UPjwvQT48Qj48Rk9OVCBjb2xvcj15ZWxsb3cgDQorICAgICAgICAgICAgZmFjZT1WZXJkYW5hIHNpemU9Mj5QaWMgb2YgdGhlIGRheTwvRk9OVD48L0I+DQorICAgICAgICAgICAgPEhSPg0KKyAgICAgICAgICAgICANCisgICAgICAgICAgICA8Q0VOVEVSPg0KKyAgICAgICAgICAgIDxQIGFsaWduPWNlbnRlcj48Rk9OVCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhIiBzaXplPTE+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NnaS1iaW4vc2NobGFiby9wb3RkLnBsIj48SU1HIA0KKyAgICAgICAgICAgIGFsdD0iTm8gcGljdHVyZSBpcyBhdmFpbGFibGUgZm9yIHRvZGF5LiIgYm9yZGVyPTAgDQorICAgICAgICAgICAgc3JjPSJkb2MzX2ZpbGVzL3BvdGRfbmFfMTEweDgzLmdpZiI+PC9BPiA8L0ZPTlQ+PC9QPjwvQ0VOVEVSPjxCUj4NCisgICAgICAgICAgICA8Q0VOVEVSPjwvQ0VOVEVSPjxCUj48IS0tPEEgSFJFRj0iY29kZTpqYXZhc2NyaXB0OklEX0ZUUFdlYlZpZXcuSW52b2tlSGVscCgpIj48Rk9OVCBTSVpFPSIxIiBDT0xPUj0id2hpdGUiIEZBQ0U9IlZlcmRhbmEiPkZUUCBIZWxwPC9GT05UPjwvQT4tLT48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvVEQ+DQorICAgIDxURCBiZ0NvbG9yPXdoaXRlIHZBbGlnbj10b3Agd2lkdGg9IjgwJSI+PElNRyBoZWlnaHQ9MSANCisgICAgICBzcmM9ImRvYzNfZmlsZXMvc3BhY2VyLmdpZiIgd2lkdGg9NDkwPjxCUj4NCisgICAgICA8Q0VOVEVSPg0KKyAgICAgIDxQPg0KKyAgICAgIDxUQUJMRSBiZ0NvbG9yPXdoaXRlIGJvcmRlcj0wIGNlbGxQYWRkaW5nPTEwIGNlbGxTcGFjaW5nPTAgaGVpZ2h0PSIxMDAlIiANCisgICAgICB3aWR0aD0iMTAwJSI+DQorICAgICAgICA8VEJPRFk+DQorICAgICAgICA8VFI+DQorICAgICAgICAgIDxURCBiZ0NvbG9yPXdoaXRlIHZBbGlnbj10b3Agd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgICAgIDxDRU5URVI+PEEgaHJlZj0iaHR0cDovL3d3dy5lbmNvdW50ZXIyMDAxLmNvbS8iIHRhcmdldD1fYmxhbms+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBoZWlnaHQ9NjAgc3JjPSJkb2MzX2ZpbGVzL2Jhbm5lcjIuZ2lmIiB3aWR0aD00Njg+PC9BPiANCisgICAgICAgICAgICA8L0NFTlRFUj48QlI+PEEgbmFtZT1uZXdzX3RvcD48L0E+PEZPTlQgY29sb3I9IzAwMzM2NiANCisgICAgICAgICAgICBmYWNlPXZlcmRhbmEsYXJpYWwgc2l6ZT0yPjxCPkhlYWRsaW5lczwvQj48L0ZPTlQ+PEJSPjxGT05UIA0KKyAgICAgICAgICAgIGZhY2U9YXJpYWwgc2l6ZT0xPjxBIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjUwMTI5NTYsNzg5MjQsIj5DaGF0IA0KKyAgICAgICAgICAgIHdpdGggQUJJVCAtIDg6MDlQTSBQRFQ8L0E+PC9GT05UPjxCUj48Rk9OVCBmYWNlPWFyaWFsIHNpemU9MT48QSANCisgICAgICAgICAgICBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NzY2ODM3LDI2MzQ0LCI+Rml4ZWQgDQorICAgICAgICAgICAgd2FsbHBhcGVyIC0gMTE6NDdQTSBQRFQ8L0E+PC9GT05UPjxCUj48Rk9OVCBmYWNlPWFyaWFsIHNpemU9MT48QSANCisgICAgICAgICAgICBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NzYyODQxLDI1ODY1LCI+U2V0aSANCisgICAgICAgICAgICB1cGRhdGUgLSAxMDo0MFBNIFBEVDwvQT48L0ZPTlQ+PEJSPjxGT05UIGZhY2U9YXJpYWwgc2l6ZT0xPjxBIA0KKyAgICAgICAgICAgIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjQ3MzIyMzUsNDU1MDIsIj5KdWRnZSANCisgICAgICAgICAgICBnaXZlcyBOYXBzdGVyIHRoZSBCb290ISEgLSAyOjEwUE0gUERUPC9BPjwvRk9OVD48QlI+PEZPTlQgZmFjZT1hcmlhbCANCisgICAgICAgICAgICBzaXplPTE+PEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9pbmRleC5waHRtbCNuZXdzaXRlbTk2NDcxMzI4OSw4MzY3NSwiPlJhbSANCisgICAgICAgICAgICBTaW5rcy4uIG1vcmUgY29vbGluZyBmb3Igc21hbGwgcGxhY2VzLiAtIDg6NTRBTSANCisgICAgICAgICAgICBQRFQ8L0E+PC9GT05UPjxCUj48Rk9OVCBmYWNlPWFyaWFsIHNpemU9MT48QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NjcxNTg5LDc4MzEsIj5pcyANCisgICAgICAgICAgICBpdCBbSF1hcmQ/IC0gOToxOVBNIFBEVDwvQT48L0ZPTlQ+PEJSPjxGT05UIGZhY2U9YXJpYWwgc2l6ZT0xPjxBIA0KKyAgICAgICAgICAgIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjQ2NDQwNDcsNjAyMTgsIj5XaUxkIA0KKyAgICAgICAgICAgIENhU2UhISAtIDE6NDBQTSBQRFQ8L0E+PC9GT05UPjxCUj48Rk9OVCBmYWNlPWFyaWFsIHNpemU9MT48QSANCisgICAgICAgICAgICBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NjMxMTEwLDg0MTIyLCI+V2hhdCANCisgICAgICAgICAgICB0aGUgaGVjayBpcyBhIFBlbHRpZXI/IT8hIC0gMTA6MDVBTSBQRFQ8L0E+PC9GT05UPjxCUj48Rk9OVCANCisgICAgICAgICAgICBmYWNlPWFyaWFsIHNpemU9MT48QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2luZGV4LnBodG1sI25ld3NpdGVtOTY0NTg3ODMzLDc0NTczLCI+SEVMTE8gDQorICAgICAgICAgICAgRVZFUllPTkUhISEgLSAxMDowM1BNIFBEVDwvQT48L0ZPTlQ+PEJSPjxGT05UIGZhY2U9YXJpYWwgc2l6ZT0xPjxBIA0KKyAgICAgICAgICAgIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW5kZXgucGh0bWwjbmV3c2l0ZW05NjQ0Mjk1NzcsMTMzNzUsIj5CUDYgDQorICAgICAgICAgICAgUTMgc2VydmVyIHVwIGFuZCBydW5uaW5nLi4gLSAyOjA2QU0gUERUPC9BPjwvRk9OVD48QlI+PEJSPjwhLS0gTlAgdjMuNy41IC0tPjxBIA0KKyAgICAgICAgICAgIG5hbWU9bmV3c2l0ZW05NjUwMTI5NTYsNzg5MjQsPjwvQT4NCisgICAgICAgICAgICA8VEFCTEUgYmdDb2xvcj0jMDAzMzk5IHdpZHRoPSIxMDAlIj4NCisgICAgICAgICAgICAgIDxUQk9EWT4NCisgICAgICAgICAgICAgIDxUUj4NCisgICAgICAgICAgICAgICAgPFREPjxGT05UIGNvbG9yPSNmZmZmZmYgZmFjZT1WZXJkYW5hLGFyaWFsIHNpemU9Mj48Qj5TdW5kYXksIA0KKyAgICAgICAgICAgICAgICAgIEp1bHkgMzAsIDIwMDA8L0I+PC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PEJSPjwhLS08aHIgbm9zaGFkZSB3aWR0aD0xMDAlPi0tPjxCPjxVPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPSMwMDMzNjYgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5DaGF0IHdpdGggDQorICAgICAgICAgICAgQUJJVDwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgDQorICAgICAgICAgICAgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpIb2xvZGVja0BicDYuY29tIj5Ib2xvZGVjazI8L0E+IEAgODowOVBNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2NTAxMjk1Niw3ODkyNCwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4wIGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPkkmIzgyMTc7bSBzbGFja2luZyBhIGxpdHRsZS4gQWxsIGdhbWUgbm8gDQorICAgICAgICAgICAgd29yayBtYWtlcyBIb2xvZGVjazIgYSBoYXBweSBib3kgOi0pPEJSPjxCUj5XYWxscGFwZXIgdXBkYXRlOiBJIGdvdCANCisgICAgICAgICAgICBvZmYgbXkgbGF6eSBhc3MgYW5kIHJlZGlkIHRoZSAxMjgweDEwMjQgd2FsbCBwYXBlciwgbm93IGl0IGhhcyB0aGUgMiANCisgICAgICAgICAgICBjZWxlcm9ucy48QlI+PEJSPjxCPjxBIGhyZWY9Imh0dHA6Ly9mdWxsb24zZC5jb20vY2hhdC9hYml0LyIgDQorICAgICAgICAgICAgdGFyZ2V0PTNkPkZ1bGxvbjNkIGhhZCBhIGxpdmUgY2hhdCB3aXRoIHRoYXQgRXJpYyBndXkgZnJvbSBBYml0LiANCisgICAgICAgICAgICA8L0E+PC9CPlN1Ym1pdHRlZCBieTogTUpTPEJSPjxCUj5IZXJlJiM4MjE3O3MgYSBsaXR0bGUgY2xpcDo8QlI+W0ZhbGNvbl0gDQorICAgICAgICAgICAgQlA2LTI/PzxCUj5bRXJpY0JvZWluZ10gV2UgYWxyZWFkeSBoYXZlIGEgbWljcm8gQVRYIGR1YWwgZmxpcC1jaGlwIA0KKyAgICAgICAgICAgIGJvYXJkPEJSPltFcmljQm9laW5nXSBidXQgaXQncyBPRU0gb25seTxCUj5bRXJpY0JvZWluZ10gdGhlIGZ1bGwgQVRYIA0KKyAgICAgICAgICAgIHZlcnNpb24gc2hvdWxkIGJlIG91dCBTZXB0ZW1iZXJpc2g8QlI+PC9GT05UPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgbmFtZT1uZXdzaXRlbTk2NDc2NjgzNywyNjM0NCw+PC9BPg0KKyAgICAgICAgICAgIDxUQUJMRSBiZ0NvbG9yPSMwMDMzOTkgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgICAgICAgPFRSPg0KKyAgICAgICAgICAgICAgICA8VEQ+PEZPTlQgY29sb3I9I2ZmZmZmZiBmYWNlPVZlcmRhbmEsYXJpYWwgc2l6ZT0yPjxCPlRodXJzZGF5LCANCisgICAgICAgICAgICAgICAgICBKdWx5IDI3LCAyMDAwPC9CPjwvRk9OVD48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjxCUj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Qj48VT48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj0jMDAzMzY2IGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+Rml4ZWQgDQorICAgICAgICAgICAgd2FsbHBhcGVyPC9GT05UPjwvVT48L0I+PEJSPjxGT05UIGNvbG9yPSMwMDY2Y2MgZmFjZT1BcmlhbCANCisgICAgICAgICAgICBzaXplPTE+PFNNQUxMPlBvc3RlZCBieSA8QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvQT4gQCAxMTo0N1BNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2NDc2NjgzNywyNjM0NCwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj41IGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPjxCPkdldCB0aGVtIG5vdyEhPC9CPjxCUj5UaGlzIGlzIGEgDQorICAgICAgICAgICAgZml4ZWQgYnA2IHdhbGxwYXBlci4gSW4gYWxsIHRoZSBwb3B1bGFyIGZsYXZvcnMsIGVyci4uLiANCisgICAgICAgICAgICByZXNvbHV0aW9ucy48QlI+PElNRyBoZWlnaHQ9MTgwIHNyYz0iZG9jM19maWxlcy8zLTgwMC5qcGciIA0KKyAgICAgICAgICAgIHdpZHRoPTI0MD48QlI+SXQncyBzdGlsbCB0aGUgSW50ZWxzIEluc2lkZSBvbmUgd2l0aCBhIHNwZWxsaW5nIA0KKyAgICAgICAgICAgIGNoYW5nZTsgZnJvbSAiTW90aGJvYXJkIiB0byAiTW90aGVyYm9hcmQiPEJSPjxCUj5UaGFua3MgdG8gTWF0dCBmb3IgDQorICAgICAgICAgICAgcG9pbnRpbmcgdGhhdCBvdXQgdG8gbWUuPEJSPkkgd291bGQgYWxzbyBsaWtlIHRvIHRoYW5rIEtldmluIGZvciANCisgICAgICAgICAgICBob3N0aW5nIG15IGxhc3QgYmF0Y2ggYW5kIFJhZHUgZm9yIHRoZSBwcmV2aW91cyAiRFVFTCIvIkRVQUwiIA0KKyAgICAgICAgICAgIGVycm9yLjxCUj5BbmQgMSBtb3JlIHBlcnNvbiwgVEhBTksgWU9VIFRJTSBmb3IgbGV0dGluZyBtZSBib3Jyb3cgDQorICAgICAgICAgICAgeW91ciBzZXJ2ZXIgc3BhY2UgOy0pPEJSPjxCUj5JZiB5b3UgbmVlZCBhIHdlaXJkIHJlc29sdXRpb24sIGZlZWwgDQorICAgICAgICAgICAgZnJlZSB0byA8QSBocmVmPSJtYWlsdG86SG9sb2RlY2syQGhvbWUuY29tIj5lLW1haWw8L0E+IG1lIHJlcXVlc3RpbmcgDQorICAgICAgICAgICAgZm9yIG9uZS48QlI+SWYgeW91IGhhdmUgaWRlYXMgb3IgbW9yZSBlcnJvcnMgdG8gcG9pbnQgb3V0LCA8QSANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86SG9sb2RlY2syQGhvbWUuY29tIj5tYWlsdG86SG9sb2RlY2syQGhvbWUuY29tPC9BPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgaHJlZj0iZG9jM19maWxlcy8zLTgwMC5qcGciIHRhcmdldD04MDA+ODAweDYwMCA8L0E+PEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuYnA2LmNvbS9waWNzL2hvbG9kZWNrMi93YWxscGFwZXIvMy0xMDI0LmpwZyIgDQorICAgICAgICAgICAgdGFyZ2V0PTgwMD4xMDI0eDc2OCA8L0E+PEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuYnA2LmNvbS9waWNzL2hvbG9kZWNrMi93YWxscGFwZXIvMy0xMTUyLmpwZyIgDQorICAgICAgICAgICAgdGFyZ2V0PTgwMD4xMTUyeDg2NCA8L0E+PEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuYnA2LmNvbS9waWNzL2hvbG9kZWNrMi93YWxscGFwZXIvMy0xMjgweDEwMjQuanBnIiANCisgICAgICAgICAgICB0YXJnZXQ9ODAwPjEyODB4MTAyNCA8L0E+PEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuYnA2LmNvbS9waWNzL2hvbG9kZWNrMi93YWxscGFwZXIvMy0xNjAwLmpwZyIgDQorICAgICAgICAgICAgdGFyZ2V0PTgwMD4xNjAweDEyMDAgPC9BPjxCUj4NCisgICAgICAgICAgICA8UD5FbmpveSA6LSk8QlI+DQorICAgICAgICAgICAgPFA+PEEgaHJlZj0ibWFpbHRvOkhvbG9kZWNrMkBob21lLmNvbSI+SG9sb2RlY2syLDwvQT48QlI+W0hdYXJkIGF0IA0KKyAgICAgICAgICAgIHdvcmsgb24gdGhlIEJyYW5kIFNwYW5raW5nIE5ldyBXYWxscGFwZXIuPEJSPjwvRk9OVD48QlI+PEJSPjxBIA0KKyAgICAgICAgICAgIG5hbWU9bmV3c2l0ZW05NjQ3NjI4NDEsMjU4NjUsPjwvQT48Qj48VT48Rk9OVCBjb2xvcj0jMDAzMzY2IA0KKyAgICAgICAgICAgIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+U2V0aSB1cGRhdGU8L0ZPTlQ+PC9VPjwvQj48QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9IzAwNjZjYyBmYWNlPUFyaWFsIHNpemU9MT48U01BTEw+UG9zdGVkIGJ5IDxBIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86SG9sb2RlY2tAYnA2LmNvbSI+SG9sb2RlY2syPC9BPiBAIDEwOjQwUE0gDQorICAgICAgICAgICAgUERUPC9TTUFMTD4mbmJzcDsgPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTY0NzYyODQxLDI1ODY1LC5odG1sIj48SU1HIA0KKyAgICAgICAgICAgIGJvcmRlcj0wIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjUgY29tbWVudHM8L0E+IA0KKyAgICAgICAgICAgICZuYnNwO3wmbmJzcDs8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L0E+PC9GT05UPiA8QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9YmxhY2sgZmFjZT1BcmlhbCBzaXplPTI+PElNRyBoZWlnaHQ9NTQgDQorICAgICAgICAgICAgc3JjPSJkb2MzX2ZpbGVzL3NldGl1cGRhdGUuanBnIiB3aWR0aD00MDA+PEJSPllvdSBsaWtlIHRoZSANCisgICAgICAgICAgICBwaWM/PEJSPjxCUj5CcDYgVXNlciBHcm91cCBVcGRhdGU6PEJSPkNvbXBsZXRlZCA2MTUzMSANCisgICAgICAgICAgICB1bml0cyEhPEJSPjxCPiMxNjggb24gVG9wIDIwMCBBbGwgR3JvdXBzPC9CPiAoR29pbmcgdG8gcGFzcyBDTFJDIGluIA0KKyAgICAgICAgICAgIGEgZmV3IGRheXMpPEJSPjxCPiM3NCBvbiBUb3AgMjAwIFRlYW1zPC9CPiAoR2FpbmluZyBmYXN0IG9uIA0KKyAgICAgICAgICAgIFN0YXJmbGVldCk8QlI+PEJSPldlIGFyZSBmbHlpbmcgdGhvdWdoIGF0IHRoZSBzcGVlZCBvZiBsaWdodCAobWF5IGJlIA0KKyAgICAgICAgICAgIGEgbGl0dGxlIHNsb3dlcikuPEJSPkdvb2Qgam9iIGV2ZXJ5b25lISE8QlI+PEJSPkNoZWNrIHRoaXMgcGFnZSBhdCANCisgICAgICAgICAgICBsZWFzdCBvbmNlIGEgZGF5IGZvciBuZXcgc3R1ZmYgOi0pPEJSPjwvRk9OVD48QlI+PEJSPjxBIA0KKyAgICAgICAgICAgIG5hbWU9bmV3c2l0ZW05NjQ3MzIyMzUsNDU1MDIsPjwvQT48Qj48VT48Rk9OVCBjb2xvcj0jMDAzMzY2IA0KKyAgICAgICAgICAgIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+SnVkZ2UgZ2l2ZXMgTmFwc3RlciB0aGUgDQorICAgICAgICAgICAgQm9vdCEhPC9GT05UPjwvVT48L0I+PEJSPjxGT05UIGNvbG9yPSMwMDY2Y2MgZmFjZT1BcmlhbCANCisgICAgICAgICAgICBzaXplPTE+PFNNQUxMPlBvc3RlZCBieSA8QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvQT4gQCAyOjEwUE0gDQorICAgICAgICAgICAgUERUPC9TTUFMTD4mbmJzcDsgPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTY0NzMyMjM1LDQ1NTAyLC5odG1sIj48SU1HIA0KKyAgICAgICAgICAgIGJvcmRlcj0wIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjAgY29tbWVudHM8L0E+IA0KKyAgICAgICAgICAgICZuYnNwO3wmbmJzcDs8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L0E+PC9GT05UPiA8QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9YmxhY2sgZmFjZT1BcmlhbCBzaXplPTI+R29vZCBhZnRlcm5vb24gZm9yIGV2ZXJ5b25lIGxpdmluZyBpbiANCisgICAgICAgICAgICBFU1QuIEkgd2FzIGdvaW5nIHRvIHBvc3QgdG9kYXkgbW9ybmluZyBidXQgSSBkaWRuJ3QuIEhlcmUncyBteSANCisgICAgICAgICAgICBzdG9yeTo8QlI+SSB3b2tlIHVwIGFuZCB0aG91Z2h0IGFib3V0IHBvc3Rpbmcgc29tZXRoaW5nIGJ1dCBJIA0KKyAgICAgICAgICAgIGRlY2lkZWQgdG8gd2F4IG15IGNhciBiZWZvcmUgdGhlIHN1biBjYW1lIHVwIChkcmF3IHlvdXIgb3duIA0KKyAgICAgICAgICAgIGNvbmNsdXNpb25zKSwgd2F4IG9uLCB3YXggb2ZmLCB3YXggb24sLi4uLCBkaWQgdGhhdCBmb3IgYWJvdXQgYW4gDQorICAgICAgICAgICAgaG91ci4gVGhlbiBJIHNhdyB0aGUgc3VuIHJpc2UgKEFhYWhoIEknbSBtZWx0aW5nLi4uIG5vdCkuIEkgc2F0IGluIA0KKyAgICAgICAgICAgIGZyb250IG9mIG15IGNvbXAgYW5kIHN0YXJ0ZWQgdG8gc2VhcmNoIGZvciBnb29kIG5ld3MgdG8gcG9zdC4gU2F3IA0KKyAgICAgICAgICAgIHRoYXQgYSBzdG9vcGlkIGp1ZGdlIHRlbXBvcmFsbHkgc2h1dHMgZG93biBuYXBzdGVyLiBHb2VzIHRvIHJvb20gYW5kIA0KKyAgICAgICAgICAgIGNyeS4gYW5kIG5vdyBJJ20gaGVyZSA6LSk8QlI+PEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cubXNuYmMuY29tL25ld3MvNDM3NTMyLmFzcCIgDQorICAgICAgICAgICAgdGFyZ2V0PSJKdWRnZSB2cyBOYXBzdGVyIj5KdWRnZSBzaHV0cyBOYXBzdGVyIGRvd24NCisgICAgICAgICAgICA8UD48SU1HIGhlaWdodD0xNDMgc3JjPSJkb2MzX2ZpbGVzLzY2OTkxNS5qcGciIA0KKyAgICAgICAgICAgIHdpZHRoPTIwMD48L0E+PEJSPkNoZWNrIG91dCB0aGUgR29vZnkgZ3V5IGluIHRoZSBzdWl0PEJSPkhlJ3MgU2VhbiANCisgICAgICAgICAgICBGYW5uaW5nLCBmb3VuZGVyIG9mIE5hcHN0ZXIuPEJSPjxCUj5Hb3QgbmV3cz8/IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpIb2xvZGVjazJAaG9tZS5jb20iPm1haWx0bzpIb2xvZGVjazJAaG9tZS5jb208L0E+PEJSPjwvRk9OVD48QlI+PEJSPjxBIA0KKyAgICAgICAgICAgIG5hbWU9bmV3c2l0ZW05NjQ3MTMyODksODM2NzUsPjwvQT48Qj48VT48Rk9OVCBjb2xvcj0jMDAzMzY2IA0KKyAgICAgICAgICAgIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+UmFtIFNpbmtzLi4gbW9yZSBjb29saW5nIGZvciBzbWFsbCANCisgICAgICAgICAgICBwbGFjZXMuPC9GT05UPjwvVT48L0I+PEJSPjxGT05UIGNvbG9yPSMwMDY2Y2MgZmFjZT1BcmlhbCANCisgICAgICAgICAgICBzaXplPTE+PFNNQUxMPlBvc3RlZCBieSA8QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0ibWFpbHRvOnRpbUBicDYuY29tIj50aW08L0E+IEAgODo1NEFNIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2NDcxMzI4OSw4MzY3NSwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4wIGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPk5lZWQgc29tZSBjb29saW5nIGZvciB5b3VyIFZpZGVvY2FyZCANCisgICAgICAgICAgICBtZW1vcnkgdG8gZ2V0IGEgbGl0dGxlIGV4dHJhIG92ZXJjbG9ja2FiaWxpdHkgYW5kIEZQUz8gPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5vdmVyY2xvY2tlcnNoaWRlb3V0LmNvbS9SYW1TaW5rcy5odG1sIiANCisgICAgICAgICAgICB0YXJnZXQ9X0JMQU5LPk92ZXJjbG9ja2VycyBIaWVkb3V0IFJhbSBTaW5rczwvQT4gVGhleSBqdXN0IG5vdGlmaWVkIA0KKyAgICAgICAgICAgIG1lIG9mIHRoZWlyIG5ldyBkZXNpZ24uPEJSPjxJTUcgYm9yZGVyPTEgDQorICAgICAgICAgICAgc3JjPSJkb2MzX2ZpbGVzL3JhbXNpbmsuanBnIj48L0ZPTlQ+PEJSPjxCUj48QSANCisgICAgICAgICAgICBuYW1lPW5ld3NpdGVtOTY0NjcxNTg5LDc4MzEsPjwvQT4NCisgICAgICAgICAgICA8VEFCTEUgYmdDb2xvcj0jMDAzMzk5IHdpZHRoPSIxMDAlIj4NCisgICAgICAgICAgICAgIDxUQk9EWT4NCisgICAgICAgICAgICAgIDxUUj4NCisgICAgICAgICAgICAgICAgPFREPjxGT05UIGNvbG9yPSNmZmZmZmYgZmFjZT1WZXJkYW5hLGFyaWFsIA0KKyAgICAgICAgICAgICAgICAgIHNpemU9Mj48Qj5XZWRuZXNkYXksIEp1bHkgMjYsIA0KKyAgICAgICAgICAgIDIwMDA8L0I+PC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PEJSPjwhLS08aHIgbm9zaGFkZSB3aWR0aD0xMDAlPi0tPjxCPjxVPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPSMwMDMzNjYgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5pcyBpdCANCisgICAgICAgICAgICBbSF1hcmQ/PC9GT05UPjwvVT48L0I+PEJSPjxGT05UIGNvbG9yPSMwMDY2Y2MgZmFjZT1BcmlhbCANCisgICAgICAgICAgICBzaXplPTE+PFNNQUxMPlBvc3RlZCBieSA8QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvQT4gQCA5OjE5UE0gDQorICAgICAgICAgICAgUERUPC9TTUFMTD4mbmJzcDsgPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTY0NjcxNTg5LDc4MzEsLmh0bWwiPjxJTUcgDQorICAgICAgICAgICAgYm9yZGVyPTAgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MCBjb21tZW50czwvQT4gDQorICAgICAgICAgICAgJm5ic3A7fCZuYnNwOzxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvQT48L0ZPTlQ+IDxCUj48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj1ibGFjayBmYWNlPUFyaWFsIHNpemU9Mj5CaWcgaGVhdHNpbmtzIGFyZSBnb29kLCB2ZXJ5IGdvb2QuIFRoZSANCisgICAgICAgICAgICBiaWdnZXIgdGhlIGJldHRlci48QlI+WW91IGNhbiBuZXZlciBjYW4gaGF2ZSBhIHRvbyBiaWcgb2YgaGVhdHNpbmsgDQorICAgICAgICAgICAgb24gYSBzbWFsbCBjaGlwIChDUFUsIEdQVSwgQ0hJUFNFVCwgZXRjKTxCUj48QlI+PElNRyBoZWlnaHQ9MTczIA0KKyAgICAgICAgICAgIHNyYz0iZG9jM19maWxlcy92b29kb29zaWRlMi5qcGciIHdpZHRoPTIzMD48QlI+TXkgb3ZlcmNsb2NrZWQgDQorICAgICAgICAgICAgVm9vZG9vMyAyMDAwIHdpdGggYSBCSUcgbW9mbyBoZWF0c2luayBvbiB0b3AuPEJSPlBlbHRpZXIgYW5kIA0KKyAgICAgICAgICAgIHdhdGVyY29vbGluZyBuZXh0IHVwIDotKTxCUj4oaWYgeW91IHByeSBvZmYgdGhlIGhlYXRzaW5rIHlvdSB2b2lkIA0KKyAgICAgICAgICAgIHRoZSB3YXJyYW50eSApPEJSPjxCUj5pdCB3YXMgb3JpZ2luYWxseSBwb3N0ZWQgb24gPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5oYXJkb2NwLmNvbS8iPltIXWFyZE9DUCA8L0E+PEJSPkkmIzgyMTc7bSBub3Qgb25seSBhIA0KKyAgICAgICAgICAgIEJQNmVyIGJ1dCBhbHNvIGEgW0hdYXJkT0NQZXI8QlI+PC9GT05UPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgbmFtZT1uZXdzaXRlbTk2NDY0NDA0Nyw2MDIxOCw+PC9BPjxCPjxVPjxGT05UIGNvbG9yPSMwMDMzNjYgDQorICAgICAgICAgICAgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5XaUxkIENhU2UhITwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpIb2xvZGVja0BicDYuY29tIj5Ib2xvZGVjazI8L0E+IEAgMTo0MFBNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2NDY0NDA0Nyw2MDIxOCwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj44IGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPk5vdyB0aGlzIHBlcnNvbiByZWFsbHkga25vd3MgaG93IHRvIA0KKyAgICAgICAgICAgIGtlZXAgaGlzIGNhc2UgY29vbCEhPEJSPkFkZGluIGFuIDE4IiBGYW4hISBXT1chITxCUj48QlI+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5lbnZhZG9yLmNvbS9QaG90b3MvUFZDSUkvIiB0YXJnZXQ9X2JsYW5rPjxJTUcgDQorICAgICAgICAgICAgc3JjPSJkb2MzX2ZpbGVzL1ROX09wZW5lZFVwMS5qcGciPjwvQT48QlI+Q2xpY2sgdG8gZ28gdG8gaGlzIA0KKyAgICAgICAgICAgIHNpdGUuPEJSPjwvRk9OVD48QlI+PEJSPjxBIA0KKyAgICAgICAgICAgIG5hbWU9bmV3c2l0ZW05NjQ2MzExMTAsODQxMjIsPjwvQT48Qj48VT48Rk9OVCBjb2xvcj0jMDAzMzY2IA0KKyAgICAgICAgICAgIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+V2hhdCB0aGUgaGVjayBpcyBhIA0KKyAgICAgICAgICAgIFBlbHRpZXI/IT8hPC9GT05UPjwvVT48L0I+PEJSPjxGT05UIGNvbG9yPSMwMDY2Y2MgZmFjZT1BcmlhbCANCisgICAgICAgICAgICBzaXplPTE+PFNNQUxMPlBvc3RlZCBieSA8QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0ibWFpbHRvOkhvbG9kZWNrQGJwNi5jb20iPkhvbG9kZWNrMjwvQT4gQCAxMDowNUFNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2NDYzMTExMCw4NDEyMiwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj42IGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPlRoaXMgaXMgZm9yIGFsbCB5b3UgcGVvcGxlIHdobyB3YW50ZWQgDQorICAgICAgICAgICAgdG8ga25vdyB3aGF0IGEgcGVsdGllciBpcy48QlI+PEJSPlRoZSBxdWVzdCBmbyB0aGUgUGVyZmVjdCANCisgICAgICAgICAgICBQZWx0aWVyPEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cudHdlYWttYXguY29tL2h0bWwvcGVsdGllci9wZWx0aWVyLTEuY2ZtIiANCisgICAgICAgICAgICB0YXJnZXQ9X2JsYW5rPjxJTUcgc3JjPSJkb2MzX2ZpbGVzL3BlbHRpZXIuanBnIj48L0E+IDxCUj5UaGFua3MgdG8gDQorICAgICAgICAgICAgPEEgaHJlZj0iaHR0cDovL3d3dy50d2Vha21heC5jb20vIiB0YXJnZXQ9X2JsYW5rPlR3ZWFrTWF4LmNvbTwvQT4gDQorICAgICAgICAgICAgPEJSPjxCUj5Ob3RlOiBUb2RheSBtb3JuaW5nIHdoZW4gSSB3b2tlIHVwIEkgc2F3IG15IHdob2xlIHNjcmVlbiANCisgICAgICAgICAgICBjbHV0dGVyZWQgd2l0aCBhIGJ1bmNoIG9mIElNcyEhIEkgbGl2ZSBpbiB0aGUgVVNBIG9uIEVTVC4gSWYgeW91IA0KKyAgICAgICAgICAgIGxpdmUgc29tZXdoZXJlIGVsc2UgcGxlYXNlIGNoZWNrIHRoZSB0aW1lIGluIG15IGFyZWEuIGZvciBleGFtcGxlOiANCisgICAgICAgICAgICBJZiB5b3UgbGl2ZSBpbiBFdXJvcGUgYW5kIElNIG1lIGluIHRoZSBtb3JuaW5nIHlvdXIgdGltZSBJIHdvdWxkIGJlIA0KKyAgICAgICAgICAgIHNsZWVwaW5nIGl0IHdvdWxkIGJlIGxpa2UgNCBpbiB0aGUgbW9ybmluZyBoZXJlLiBKdXN0IHRvIGxldCB5b3UgDQorICAgICAgICAgICAga25vdyA8SU1HIHNyYz0iZG9jM19maWxlcy9zbWlsZS5naWYiPjxCUj5JJ20gbm90IGFuZ3J5IGF0IGFueW9uZS4uLiANCisgICAgICAgICAgICBnb29kIHRoaW5nIEkgaGF2ZSBhIGxvbmcgZnVzZSA8SU1HIA0KKyAgICAgICAgICAgIHNyYz0iZG9jM19maWxlcy90b25ndWUuZ2lmIj48QlI+PC9GT05UPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgbmFtZT1uZXdzaXRlbTk2NDU4NzgzMyw3NDU3Myw+PC9BPg0KKyAgICAgICAgICAgIDxUQUJMRSBiZ0NvbG9yPSMwMDMzOTkgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgICAgICAgPFRSPg0KKyAgICAgICAgICAgICAgICA8VEQ+PEZPTlQgY29sb3I9I2ZmZmZmZiBmYWNlPVZlcmRhbmEsYXJpYWwgc2l6ZT0yPjxCPlR1ZXNkYXksIA0KKyAgICAgICAgICAgICAgICAgIEp1bHkgMjUsIDIwMDA8L0I+PC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PEJSPjwhLS08aHIgbm9zaGFkZSB3aWR0aD0xMDAlPi0tPjxCPjxVPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPSMwMDMzNjYgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5IRUxMTyANCisgICAgICAgICAgICBFVkVSWU9ORSEhITwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgDQorICAgICAgICAgICAgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpIb2xvZGVja0BicDYuY29tIj5Ib2xvZGVjazI8L0E+IEAgMTA6MDNQTSANCisgICAgICAgICAgICBQRFQ8L1NNQUxMPiZuYnNwOyA8QlI+PEZPTlQgY29sb3I9YmxhY2sgZmFjZT1BcmlhbCBzaXplPTI+SGVsbG8gDQorICAgICAgICAgICAgZXZlcnlvbmUsIFdvb2hvbyEhIEknbSBvbiEhPEJSPldobyBpcyB0aGlzIEhvbG9kZWNrMiBwZXJzb24gDQorICAgICAgICAgICAgYW55d2F5cz8hPyEgUmVhZCBvbiA6LSk8QlI+SSYjODIxNzttIGEgcmVndWxhciBvbiB0aGUgYnA2IG1lc3NhZ2Vib2FyZCwgDQorICAgICAgICAgICAgdHJ5aW5nIHRvIGhlbHAgcGVvcGxlIG91dCB3aXRoIHRoZWlyIHByb2JsZW1zLjxCUj5JJiM4MjE3O20gdGhlIA0KKyAgICAgICAgICAgIHNlbGYtcHJvY2xhaW1lZCBicDYgY29vbGluZyBleHBlcnQsIElmIHlvdSBoYXZlIGEgY29vbGluZyBpZGVhLCBJJiM4MjE3O3ZlIA0KKyAgICAgICAgICAgIHByb2JhYmx5IGFscmVhZHkgZG9uZSBpdCBhbmQgY2FuIG9mZmVyIHNvbWUgaW5jaXRlLjxCUj5NeSBjb21wdXRlciANCisgICAgICAgICAgICBpcyBhbHdheXMgb24gc28geW91IGNhbiBjb250YWN0IG1lIHdoZW5ldmVyLi4uIHByb2JsZW0gaXMsIEknbSBub3QgDQorICAgICAgICAgICAgYWx3YXlzIGluIGZyb250IG9mIGl0LiBJJ2xsIHRyeSB0byB1cGRhdGUgdGhpcyBwYWdlIGFuZCBrZWVwIA0KKyAgICAgICAgICAgIGV2ZXJ5b25lIGhhcHB5IDotKTxCUj5BbnkgUXVlc3Rpb25zIG9yIGNvbW1lbnRzLCB5b3UgY2FuIGVpdGhlciANCisgICAgICAgICAgICBjb250YWN0IG1lIG9yIHBvc3QgaXQgb24gdGhlIG1lc3NhZ2Vib2FyZC48QlI+PEJSPldheXMgdG8gY29udGFjdCANCisgICAgICAgICAgICBtZS48QlI+RS1tYWlsOiA8QSANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86SG9sb2RlY2syQGhvbWUuY29tIj5Ib2xvZGVjazJAaG9tZS5jb208L0E+IChBbGwgRS1tYWlscyANCisgICAgICAgICAgICB3aWxsIGJlIGFuc3dlcmVkIGluIDI0IGhvdXJzIG9yIGxlc3MsIEkgZ3VhcmFudGVlIGl0Lik8QlI+V2hlbiB5b3UgDQorICAgICAgICAgICAgd3JpdGUgbWUgYW4gZS1tYWlsIHBsZWFzZSBwdXQgaW4gdGhlIHN1YmplY3QgbGluZSAiQlA2IiB0aGVuIHRoZSANCisgICAgICAgICAgICByZXN0IG9mIHlvdXIgc3ViamVjdCBzbyBteSBlLW1haWwgcHJvZ3JhbSBjYW4gc29ydCBpdCwgdGhhbmtzPEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuYW9sLmNvbS9haW0iPkFJTTogPC9BPkhvbG9kZWNrMiAoaW5zdGFudCByZXNwb25zZSANCisgICAgICAgICAgICBpZiBJJiM4MjE3O20gaW4gZnJvbnQgb2YgbXkgY29tcCBhbmQgbm90IHRyeWluZyB0byBmcmFnIHNvbWVvbmUpPEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cuaWNxLmNvbS9kb3dubG9hZCI+SUNROiA8L0E+ODI2NDAyMTggKHJhcmVseSANCisgICAgICAgICAgICBvbik8QlI+PEJSPlAuUy4gSWYgc29tZW9uZSBuYW1lZCAmIzgyMjA7RGlnaXRhbCBWb3J0ZXgmIzgyMjE7IG9uIGVpdGhlciBRdWFrZSAzIA0KKyAgICAgICAgICAgIG9yIDIgZnJhZ3MgeW91LCBpdCYjODIxNztzIHByb2JhYmx5IG1lLiA7LSk8QlI+PC9GT05UPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgbmFtZT1uZXdzaXRlbTk2NDQyOTU3NywxMzM3NSw+PC9BPg0KKyAgICAgICAgICAgIDxUQUJMRSBiZ0NvbG9yPSMwMDMzOTkgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgICAgICAgPFRSPg0KKyAgICAgICAgICAgICAgICA8VEQ+PEZPTlQgY29sb3I9I2ZmZmZmZiBmYWNlPVZlcmRhbmEsYXJpYWwgc2l6ZT0yPjxCPk1vbmRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAyNCwgMjAwMDwvQj48L0ZPTlQ+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT48QlI+PCEtLTxociBub3NoYWRlIHdpZHRoPTEwMCU+LS0+PEI+PFU+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9IzAwMzM2NiBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0yPkJQNiBRMyBzZXJ2ZXIgdXAgYW5kIA0KKyAgICAgICAgICAgIHJ1bm5pbmcuLjwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgDQorICAgICAgICAgICAgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzp0aW1AYnA2LmNvbSI+dGltPC9BPiBAIDI6MDZBTSBQRFQ8L1NNQUxMPiZuYnNwOyA8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ0Mjk1NzcsMTMzNzUsLmh0bWwiPjxJTUcgDQorICAgICAgICAgICAgYm9yZGVyPTAgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MyBjb21tZW50czwvQT4gDQorICAgICAgICAgICAgJm5ic3A7fCZuYnNwOzxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvQT48L0ZPTlQ+IDxCUj48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj1ibGFjayBmYWNlPUFyaWFsIHNpemU9Mj5TZXR1cCBhIFEzIHNlcnZlciBmb3IgYW55b25lIHdhbnRpbmcgDQorICAgICAgICAgICAgdG8gcHJhY3RpY2UgaW4gcHJlcGFyYXRpb24gZm9yIFF1YWtlY29uLi4gQ29ubmVjdCB0byBicDYuZHluZG5zLm9yZyANCisgICAgICAgICAgICBkZWZhdWx0IHBvcnQuIChTRVJWRVI6IEJQNiBzeXN0ZW0sIDI1NiBNQiByYW0sIGNlbGVyb24gNjAwIG9uIGEgVDMgDQorICAgICAgICAgICAgY29ubmVjdGlvbikuLi4gV2lsbCBiZSBtb3ZlZCB0byBhbm90aGVyIEJQNiBzZXJ2ZXIgZXZlbnR1YWxseS4gVGhpcyANCisgICAgICAgICAgICBpcyBvbmx5IGEgdGVtcG9yYXJ5IHRlc3Qgb2YgdGhlIHN5c3RlbSBhbmQgbmV0IGNvbm5lY3Rpb24uIDxCUj4oQlRXLSANCisgICAgICAgICAgICB0aGVyZSBhcmUgYSBmZXcgYm90J3MgcnVubmluZyBhcm91bmQgaW4gdGhlcmUuLik8L0ZPTlQ+PEJSPjxCUj48QSANCisgICAgICAgICAgICBuYW1lPW5ld3NpdGVtOTY0NDI1MTg0LDk1ODEyLD48L0E+PEI+PFU+PEZPTlQgY29sb3I9IzAwMzM2NiANCisgICAgICAgICAgICBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0yPkJJT1MgU2F2aW9yIHRvIHRoZSANCisgICAgICAgICAgICByZXNjdWUuLi4uPC9GT05UPjwvVT48L0I+PEJSPjxGT05UIGNvbG9yPSMwMDY2Y2MgZmFjZT1BcmlhbCANCisgICAgICAgICAgICBzaXplPTE+PFNNQUxMPlBvc3RlZCBieSA8QSBjbGFzcz1uYXYgDQorICAgICAgICAgICAgaHJlZj0ibWFpbHRvOnRpbUBicDYuY29tIj50aW08L0E+IEAgMTI6NTNBTSBQRFQ8L1NNQUxMPiZuYnNwOyA8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvbmV3cy85NjQ0MjUxODQsOTU4MTIsLmh0bWwiPjxJTUcgDQorICAgICAgICAgICAgYm9yZGVyPTAgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MiBjb21tZW50czwvQT4gDQorICAgICAgICAgICAgJm5ic3A7fCZuYnNwOzxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC8jbmV3c190b3AiPnRvcDwvQT48L0ZPTlQ+IDxCUj48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj1ibGFjayBmYWNlPUFyaWFsIHNpemU9Mj5EbyB5b3Ugc3dlYXQgZHVyaW5nIHRoZSBCSU9TIGZsYXNoaW5nIA0KKyAgICAgICAgICAgIHByb2NlZHVyZSBvbiB5b3VyIEJQNiBtb2JvPyBJZiBzbyB0aGVuIHRoaXMgbGl0dGxlIGdhZGdldCBtYXliZSANCisgICAgICAgICAgICB3b3J0aCBhIGZpcnN0IGxvb2suIEl0J3MgY2FsbGVkIHRoZSAiPEI+UkQxIEJJT1MgU2F2aW9yPC9CPiIgYW5kIGl0IA0KKyAgICAgICAgICAgIHBsdWdzIGluIGJldHdlZW4geW91ciBCSU9TIFJPTSBhbmQgdGhlIEJJT1MgUk9NIHNvY2tldCBvbiB5b3VyIG1vYm8uIA0KKyAgICAgICAgICAgIFRoaXMgZGV2aWNlIHdpbGwgYmFja3VwIHlvdXIgQklPUyBhbmQgYW5kIGFsbG93IHlvdSB0byByZWNvdmVyIHlvdXIgDQorICAgICAgICAgICAgQklPUyBpbiB0aGUgZXZlbnQgdGhhdCB5b3VyIGZsYXNoaW5nIHNlc3Npb24gZ29lcyB3cm9uZy4gSW4gdGhlIA0KKyAgICAgICAgICAgIGV2ZW50IG9mIGEgYmFkIGZsYXNoLCBqdXN0IGZsaXAgYSBzd2l0Y2ggb24gdGhlIFJESSBhbmQgYm9vdCB1cCB5b3VyIA0KKyAgICAgICAgICAgIHN5c3RlbSwgYW5kIGZsYXNoIGFnYWluLiBUaGlzIGlzIGFsc28gZ29vZCBhcyBhIGZhaWxzYWZlIGluIGNhc2UgeW91IA0KKyAgICAgICAgICAgIGRvbid0IGJlbGlldmUgaW4gVmlydXMgUHJvdGVjdGluZyB5b3VyIGNvbXB1dGVyLiAoVGhhbmtzIHRvIEZyZWQgZm9yIA0KKyAgICAgICAgICAgIGxpbmspPEJSPjxBIGhyZWY9Imh0dHA6Ly93d3cuaW9zcy5jb20udHcvZWcvcmQxL1JEMWluZm8wMDA0LlBERiIgDQorICAgICAgICAgICAgdGFyZ2V0PV9ORVc+TWFudWZhY3R1cmVycyBCcm9jaHVyZTwvQT4gKFBERiBGb3JtYXQpPEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly8xOTIuMjE2LjE4NS4xMC9td2F2ZS9kb2MvQTA2OTUwLmh0bWwiIA0KKyAgICAgICAgICAgIHRhcmdldD0nX0JMQU5LIic+QW5vdGhlciBpbmZvIHBhZ2U8L0E+PEJSPjxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly8xOTIuMjE2LjE4NS4xMC9td2F2ZS9Qcm9kTUItQUMtTVcuaG14P1VJRD0mYW1wO0NJRD0mYW1wO3VwZGVwdHM9TUImYW1wO0ROQU1FPSUzQ2IlM0VNb3RoZXJib2FyZHMlM0MlMkZiJTNFJmFtcDtCYWNrPVByb2RNQi1BQy1NVy5obXg/IiANCisgICAgICAgICAgICB0YXJnZXQ9X0JMQU5LPkF2YWlsYWJsZSBmb3IgYWJvdXQgJDIwPC9BPjxCUj48QlI+PElNRyANCisgICAgICAgICAgICBzcmM9ImRvYzNfZmlsZXMvcmQxLmpwZyI+PC9GT05UPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgbmFtZT1uZXdzaXRlbTk2Mzg3NTg1MywxMjczMSw+PC9BPg0KKyAgICAgICAgICAgIDxUQUJMRSBiZ0NvbG9yPSMwMDMzOTkgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgICAgICAgPFRSPg0KKyAgICAgICAgICAgICAgICA8VEQ+PEZPTlQgY29sb3I9I2ZmZmZmZiBmYWNlPVZlcmRhbmEsYXJpYWwgc2l6ZT0yPjxCPk1vbmRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAxNywgMjAwMDwvQj48L0ZPTlQ+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT48QlI+PCEtLTxociBub3NoYWRlIHdpZHRoPTEwMCU+LS0+PEI+PFU+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9IzAwMzM2NiBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0yPkhvdyBUbyANCisgICAgICAgICAgICBPdmVyY2xvY2s8L0ZPTlQ+PC9VPjwvQj48QlI+PEZPTlQgY29sb3I9IzAwNjZjYyBmYWNlPUFyaWFsIA0KKyAgICAgICAgICAgIHNpemU9MT48U01BTEw+UG9zdGVkIGJ5IDxBIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86a2lsbHpAaTgyaHEuY29tIj5EYXJlRGV2aWw8L0E+IEAgNDoxN1BNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2Mzg3NTg1MywxMjczMSwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4zIGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPkZvciB0aG9zZSBvZiB5b3Ugd2hvIGFyZSBuZXcgdG8gDQorICAgICAgICAgICAgb3ZlcmNsb2NraW5nLCB0aGlzIGd1aWRlIHdpbGwgZXhwbGFpbiB0byB5b3UgaG93IHRvIG92ZXJjbG9jaywgYW5kIA0KKyAgICAgICAgICAgIHdoYXQgc29tZSBvZiB0aGUgdGVybXMgYXJlLiBMaWtlICdGU0InICh3aGF0IHRoZSBoZWNrIGlzIHRoYXQhPyANCisgICAgICAgICAgICA6MCkpPEJSPjxCUj48QSBocmVmPSJodHRwOi8vbmV0a2lsbHMucWdsLm9yZy9hX29jX2NvbXAuc2h0bWwiIA0KKyAgICAgICAgICAgIHRhcmdldD1fYmxhbms+SG93IFRvIE92ZXJjbG9jazwvQT4gPC9GT05UPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgbmFtZT1uZXdzaXRlbTk2Mzg3NTQ4NSwyMzM1Myw+PC9BPjxCPjxVPjxGT05UIGNvbG9yPSMwMDMzNjYgDQorICAgICAgICAgICAgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5UaGUgQ2FyZGNvb2xlciANCisgICAgICAgICAgICBYVDwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgDQorICAgICAgICAgICAgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPkRhcmVEZXZpbDwvQT4gQCA0OjExUE0gDQorICAgICAgICAgICAgUERUPC9TTUFMTD4mbmJzcDsgPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTYzODc1NDg1LDIzMzUzLC5odG1sIj48SU1HIA0KKyAgICAgICAgICAgIGJvcmRlcj0wIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjEgY29tbWVudHM8L0E+IA0KKyAgICAgICAgICAgICZuYnNwO3wmbmJzcDs8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L0E+PC9GT05UPiA8QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9YmxhY2sgZmFjZT1BcmlhbCBzaXplPTI+V293ISBJIGFtIGltcHJlc3NlZCEgTmV2ZXJtaW5kIGtlZXBpbmcgDQorICAgICAgICAgICAgdGhlIENQVSdzIGNvb2wuLi4gS2VlcCB5b3VyIHdob2xlIGJvYXJkIGNvb2whPEJSPjxCUj48ST5FdmVuIGlmIHlvdXIgDQorICAgICAgICAgICAgbm90IG92ZXJjbG9ja2luZyB5b3VyIHN5c3RlbSAob3IgcGxhbm5pbmcgb24gaXQpLCB0aGlzIHVuaXQgd2lsbCANCisgICAgICAgICAgICBwcm92aWRlIHN5c3RlbSBzdGFiaWxpdHkgYW5kIGxvbmdldml0eS4gV2hhdCB3b3VsZCBoYXBwZW4gb25lIGRheSBvZiANCisgICAgICAgICAgICB5b3VyIEdlRm9yY2Ugb3IgQ1BVIGZhbiB3ZW50IGRlYWQ/IFlvdSBjYW4gYWxzbyB0aGluayBvZiB0aGlzIA0KKyAgICAgICAgICAgIGNvb2xpbmcgdW5pdCBhcyBhIGJhY2t1cCB0byBlc3NlbnRpYWwgY29vbGluZyBmYW5zIGluIHlvdXIgDQorICAgICAgICAgICAgc3lzdGVtLjwvST48QlI+PEJSPkNoZWNrIHRoaXMgb3V0ITxCUj48QlI+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5icm9rZW5waXhlbC5jb20vYXJ0aWNsZXMvY29vbGVyWFQvY2FyZGNvb2xlclhUXzEuc2h0bWwiIA0KKyAgICAgICAgICAgIHRhcmdldD1fYmxhbms+aHR0cDovL3d3dy5icm9rZW5waXhlbC5jb20vYXJ0aWNsZXMvY29vbGVyWFQvY2FyZGNvb2xlclhUXzEuc2h0bWw8L0E+IA0KKyAgICAgICAgICAgIDwvRk9OVD48QlI+PEJSPjxBIG5hbWU9bmV3c2l0ZW05NjM4NTk5ODIsODg5ODIsPjwvQT48Qj48VT48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj0jMDAzMzY2IGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+J05lcmQgDQorICAgICAgICAgICAgSW5zaWRlJzwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgDQorICAgICAgICAgICAgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPkRhcmVEZXZpbDwvQT4gQCAxMTo1M0FNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2Mzg1OTk4Miw4ODk4MiwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4xIGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPldlIGFsbCBuZWVkIHRvIGhhdmUgc29tZSBmdW4gDQorICAgICAgICAgICAgc29tZXRpbWVzISBDaGVjayBvdXQgdGhpcyBsaXR0bGUgd2ViIHNpdGUgdGhhdCBzZWxscyAnbmVyZCcgY2xvdGhpbmcgDQorICAgICAgICAgICAgOykgKEkgbGlrZSB0aGUgYmlicyBpbiB0aGUgSnVuaW9yIEhhY2tlcnogc2VjdGlvbikgOi3ePEJSPjxCUj4NCisgICAgICAgICAgICA8RElWIGFsaWduPWNlbnRlcj48QSBocmVmPSJodHRwOi8vd3d3Lm5lcmRnZWFyLmNvbS8iIA0KKyAgICAgICAgICAgIHRhcmdldD1fYmxhbms+PElNRyBib3JkZXI9MCANCisgICAgICAgICAgICBzcmM9ImRvYzNfZmlsZXMvbmVyZGluc2lkZS5naWYiPjwvQT48L0RJVj48L0ZPTlQ+PEJSPjxCUj48QSANCisgICAgICAgICAgICBuYW1lPW5ld3NpdGVtOTYzODE5Nzk2LDk2ODgsPjwvQT48Qj48VT48Rk9OVCBjb2xvcj0jMDAzMzY2IA0KKyAgICAgICAgICAgIGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+RHVhbCBQU1UgV2lyaW5nIGRpYWdyYW0uLi4gKHByZXZpZXcgdG8gDQorICAgICAgICAgICAgUGFydCAxIFdhdGVyY29vbGluZyBQcm9qZWN0KTwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIA0KKyAgICAgICAgICAgIGZhY2U9QXJpYWwgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzp0aW1AYnA2LmNvbSI+dGltPC9BPiBAIDEyOjQzQU0gUERUPC9TTUFMTD4mbmJzcDsgPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTYzODE5Nzk2LDk2ODgsLmh0bWwiPjxJTUcgDQorICAgICAgICAgICAgYm9yZGVyPTAgc3JjPSJkb2MzX2ZpbGVzL2NvbW1lbnRzLmdpZiI+MTEgY29tbWVudHM8L0E+IA0KKyAgICAgICAgICAgICZuYnNwO3wmbmJzcDs8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L0E+PC9GT05UPiA8QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9YmxhY2sgZmFjZT1BcmlhbCBzaXplPTI+V2hlbiBpcyBjb21lcyB0byBvdmVyY2xvY2tpbmcgeW91ciANCisgICAgICAgICAgICBzeXN0ZW0sIGNvb2xpbmcgcGxheXMgYSBiaWcgcm9sZS4gUG93ZXJpbmcgYWxsIG9mIHRob3NlIGZhbnMgaW4geW91ciANCisgICAgICAgICAgICBzeXN0ZW0gY2FuIGNhdXNlIHF1aXRlIGEgc3RyYWluIG9uIHlvdXIgUFNVIChQb3dlciBTdXBwbHkgVW5pdCkuIA0KKyAgICAgICAgICAgIERlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIHBlcmlwaGVyYWxzIGluIHlvdXIgc3lzdGVtLCBhZGRpbmcgYSBtb3JlIA0KKyAgICAgICAgICAgIHBvd2VyZnVsbCBQU1Ugb3IgYWRkaW5nIGEgc2Vjb25kIFBTVSBtYXkgYmUgbmVjY2VzYXJ5LiBGb3IgDQorICAgICAgICAgICAgd2F0ZXJjb29saW5nIGFuZCB1c2luZyBwZWx0aWVycywgZGVkaWNhdGluZyBhIHNlY29uZCBQU1UgdG8gcG93ZXIgDQorICAgICAgICAgICAgdGhlIFBlbHRpZXJzIChURUMncykgaXMgYSBnb29kIGlkZWEuIEhlcmUgSSBoYXZlIGNvbWUgdXAgd2l0aCAyIA0KKyAgICAgICAgICAgIGRpYWdyYW1zIG9uIGhvdyBJIHdpcmVkIGR1YWwgMzAwIHdhdHQgQVRYIHBvd2VyIHN1cHBseSB1bml0cyBmb3IgdGhlIA0KKyAgICAgICAgICAgIEJsaXp6YXJkIEJQNiB3YXRlcmNvb2xpbmcgcHJvamVjdC4gQ29uc2lkZXIgdGhpcyBwYXJ0IG9mIFN0ZXAgMS4gDQorICAgICAgICAgICAgTW9yZSB3aWxsIGZvbGxvdyB0aGlzIHdlZWsuIEJUVy4uIGhhY2tpbmcgdXAgeW91ciBQU1UncyBpcyB2ZXJ5IA0KKyAgICAgICAgICAgIGRhbmdlcm91cyBhbmQgaXMgbm90IHJlY29tbWVuZGVkIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuIA0KKyAgICAgICAgICAgIDxCUj48QlI+VmlldyBEaWFncmFtIDEgPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2ltYWdlcy93aXJpbmcuanBnIiANCisgICAgICAgICAgICB0YXJnZXQ9X0JMQU5LPmhlcmU8L0E+LjxCUj5WaWV3IERpYWdyYW0gMiA8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvaW1hZ2VzL3BzdTIuZ2lmIiANCisgICAgICAgICAgICB0YXJnZXQ9X0JMQU5LPmhlcmU8L0E+LjxCUj48QlI+SSB1c2VkIFRhcC1JbiBTcXVlZXplIENvbm5lY3RvcnMgYW5kIA0KKyAgICAgICAgICAgIDIyIGd1YWdlIHdpcmUgdG8gY29ubmVjdCB0aGUgd2lyZXMuIFlvdSBjYW4gZ2V0IHRoZW0gYXQgUmFkaW8gU2hhY2sgDQorICAgICAgICAgICAgUGFydCMgNjQtMzA1MyBvciA8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vd3d3LnJhZGlvc2hhY2suY29tL1Byb2R1Y3RDYXRhbG9nL1Byb2R1Y3REZXRhaWwvSW5kZXgvMSwyMDk4LCwwMC5odG1sP1NLVVN0cmluZzE9NjQmYW1wO1NLVVN0cmluZzI9MzA1MyIgDQorICAgICAgICAgICAgdGFyZ2V0PV9ibGFuaz5jbGljayBoZXJlPC9BPi48L0ZPTlQ+PEJSPjxCUj48QSANCisgICAgICAgICAgICBuYW1lPW5ld3NpdGVtOTYzNzY2NjU1LDc4NTExLD48L0E+DQorICAgICAgICAgICAgPFRBQkxFIGJnQ29sb3I9IzAwMzM5OSB3aWR0aD0iMTAwJSI+DQorICAgICAgICAgICAgICA8VEJPRFk+DQorICAgICAgICAgICAgICA8VFI+DQorICAgICAgICAgICAgICAgIDxURD48Rk9OVCBjb2xvcj0jZmZmZmZmIGZhY2U9VmVyZGFuYSxhcmlhbCBzaXplPTI+PEI+U3VuZGF5LCANCisgICAgICAgICAgICAgICAgICBKdWx5IDE2LCAyMDAwPC9CPjwvRk9OVD48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjxCUj48IS0tPGhyIG5vc2hhZGUgd2lkdGg9MTAwJT4tLT48Qj48VT48Rk9OVCANCisgICAgICAgICAgICBjb2xvcj0jMDAzMzY2IGZhY2U9IlZlcmRhbmEsIEFyaWFsIiBzaXplPTI+UkFNIE92ZXJjbG9ja2luZz8gDQorICAgICAgICAgICAgSG1tbW1tLjwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgDQorICAgICAgICAgICAgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPkRhcmVEZXZpbDwvQT4gQCA5OjU3QU0gDQorICAgICAgICAgICAgUERUPC9TTUFMTD4mbmJzcDsgPEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L25ld3MvOTYzNzY2NjU1LDc4NTExLC5odG1sIj48SU1HIA0KKyAgICAgICAgICAgIGJvcmRlcj0wIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjMgY29tbWVudHM8L0E+IA0KKyAgICAgICAgICAgICZuYnNwO3wmbmJzcDs8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L0E+PC9GT05UPiA8QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9YmxhY2sgZmFjZT1BcmlhbCBzaXplPTI+SSBrbm93IHdlJ3JlIHByZXR0eSBiaWcgb3ZlcmNsb2NrZXJzIA0KKyAgICAgICAgICAgIGhlcmUgYXQgQlA2LkNvbSBzbywgdGhpcyBpcyBhIHBvc3Qgb2YgY2hvaWNlIDstKSBJJ3ZlIHNlZW4gdGhlIA0KKyAgICAgICAgICAgIHF1ZXN0aW9uIGluIHRoZSBtZXNzYWdlIGJvYXJkcywgJ3doeSBjYW4ndCBJIG92ZXJjbG9jayBhbnkgaGlnaGVyPycgDQorICAgICAgICAgICAgV2VsbCwgaXQncyBub3QgYWx3YXlzIHRoZSBDUFUgdGhhdCdzIGhvbGRpbmcgeW91IGJhY2suLi4gTWFueSBvdGhlciANCisgICAgICAgICAgICB0aGluZ3MgbmVlZCB0byBiZSB0YWtlbiBjYXJlIG9mIHRvIG92ZXJjbG9jayBzdWNoIGFzIHlvdXIgUENJIA0KKyAgICAgICAgICAgIGRldmljZXMgKGNhbiB0aGV5IGhhbmRsZSB0aGUgaGlnaGVyIGJ1cyBzcGVlZCksIHRoZSBhY3R1YWwgQ1BVLCBhbmQgDQorICAgICAgICAgICAgeW91ciBSQU0uIEknbSBub3Qgc2F5aW5nIHRoYXQgdGhhdCBhIGhpZ2ggcXVhbGl0eSBzdGljayBvZiBzaWxpY29uIA0KKyAgICAgICAgICAgIHdpbGwgZW5hYmxlIHlvdSB0byBvdmVyY2xvY2sgeW91ciAzNjZNSHogdG8gMSBHSFogKEkgd2lzaCEpLCBidXQsIGl0IA0KKyAgICAgICAgICAgIHdpbGwgY2VydGFpbmx5IGhlbHAgPSk8QlI+PEJSPkV4dHJlbWUgT3ZlcmNsb2NraW5nIGhhcyB0ZXN0ZWQgDQorICAgICAgICAgICAgKG92ZXJjbG9ja2VkKSBQQzEzMyBSQU0gdG8gdGhlcmUgZnVsbCBwb3RlbnRpYWwuIEhlcmUncyBhIHF1b3RlIEkgDQorICAgICAgICAgICAgZm91bmQgYW5kIHRoZSBsaW5rOjxCUj48QlI+PEk+V2VsbCwgdGhlIGd1eXMgYXQgRXh0cmVtZSBPdmVyY2xvY2tpbmcgDQorICAgICAgICAgICAgaGF2ZSBiZWVuIGhhcmQgYXQgd29yayBhZ2FpbiB3aXRoIHRoZWlyIGxhdGVzdCByZXZpZXcuIFRoaXMgdGltZSANCisgICAgICAgICAgICB0aGV5IGhhdmUgcHV0IHNldmVuIDEyOE1CIFBDMTMzIG1lbW9yeSBtb2R1bGVzIHRocm91Z2ggdGhlIHRvcnR1cmUgDQorICAgICAgICAgICAgdGVzdHMgdG8gZGV0ZXJtaW5lIHRoZWlyIG1heGltdW0gb3ZlcmNsb2NraW5nIHBvdGVudGlhbC4gV2hpY2ggb25lJ3MgDQorICAgICAgICAgICAgY2FtZSBvdXQgb24gdG9wPyBSZWFkIHRoZSByZXZpZXcgdG8gZmluZCBvdXQuLi4uPC9JPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5leHRyZW1lb3ZlcmNsb2NraW5nLmNvbS9yZXZpZXdzL21lbW9yeS9yYW1fcm91bmR1cF8xLmh0bWwiIA0KKyAgICAgICAgICAgIHRhcmdldD1fYmxhbms+Q29va2VkIFJBTS4uLiBZdW1taWU8L0E+PEJSPjxCUj5UaGUgDQorICAgICAgICAgICAg0NAuPC9GT05UPjxCUj48QlI+PEEgbmFtZT1uZXdzaXRlbTk2Mzc2NDIzNiw3NjcyMCw+PC9BPjxCPjxVPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPSMwMDMzNjYgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5DUFUgDQorICAgICAgICAgICAgR3VpZGU8L0ZPTlQ+PC9VPjwvQj48QlI+PEZPTlQgY29sb3I9IzAwNjZjYyBmYWNlPUFyaWFsIA0KKyAgICAgICAgICAgIHNpemU9MT48U01BTEw+UG9zdGVkIGJ5IDxBIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86a2lsbHpAaTgyaHEuY29tIj5EYXJlRGV2aWw8L0E+IEAgOToxN0FNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2Mzc2NDIzNiw3NjcyMCwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4wIGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPkEgZm9sbG93IHVwIG9uIHRoZSAnV2Vla2x5IENQVSANCisgICAgICAgICAgICBQcmljZXMnLCB0aGlzIGd1aWRlIHdpbGwgaGVscCB5b3UgZGV0ZXJtaW5lIHdoaWNoIGNwdSBpcyBiZXN0IGZvciANCisgICAgICAgICAgICB5b3UgKGFuZCB5b3VyIGJvYXJkIDstKSkuIFNlbnQgdG8gbWUgYnkgU3Bhbmt5LCBoZXJlJ3MgdGhlIA0KKyAgICAgICAgICAgIGxpbms6PEJSPjxCUj4NCisgICAgICAgICAgICA8TEk+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dzYudG9tc2hhcmR3YXJlLmNvbS9ob3d0by8wMHEyLzAwMDQxMi9pbmRleC5odG1sIiANCisgICAgICAgICAgICB0YXJnZXQ9X2JsYW5rPmh0dHA6Ly93d3c2LnRvbXNoYXJkd2FyZS5jb20vaG93dG8vMDBxMi8wMDA0MTIvaW5kZXguaHRtbDwvQT48L0ZPTlQ+PEJSPjxCUj48QSANCisgICAgICAgICAgICBuYW1lPW5ld3NpdGVtOTYzNjg1NzQ5LDI4MjkwLD48L0E+DQorICAgICAgICAgICAgPFRBQkxFIGJnQ29sb3I9IzAwMzM5OSB3aWR0aD0iMTAwJSI+DQorICAgICAgICAgICAgICA8VEJPRFk+DQorICAgICAgICAgICAgICA8VFI+DQorICAgICAgICAgICAgICAgIDxURD48Rk9OVCBjb2xvcj0jZmZmZmZmIGZhY2U9VmVyZGFuYSxhcmlhbCBzaXplPTI+PEI+U2F0dXJkYXksIA0KKyAgICAgICAgICAgICAgICAgIEp1bHkgMTUsIDIwMDA8L0I+PC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PEJSPjwhLS08aHIgbm9zaGFkZSB3aWR0aD0xMDAlPi0tPjxCPjxVPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPSMwMDMzNjYgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5XZWVrbHkgQ1BVIA0KKyAgICAgICAgICAgIFByaWNlczwvRk9OVD48L1U+PC9CPjxCUj48Rk9OVCBjb2xvcj0jMDA2NmNjIGZhY2U9QXJpYWwgDQorICAgICAgICAgICAgc2l6ZT0xPjxTTUFMTD5Qb3N0ZWQgYnkgPEEgY2xhc3M9bmF2IA0KKyAgICAgICAgICAgIGhyZWY9Im1haWx0bzpraWxsekBpODJocS5jb20iPkRhcmVEZXZpbDwvQT4gQCAxMToyOUFNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2MzY4NTc0OSwyODI5MCwuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4yIGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPldvdywgZm91bmQgdGhpcyB2ZXJ5IHVzZWZ1bCEgV2FudGluZyANCisgICAgICAgICAgICB0byBidXkgYSBuZXcgQ1BVPyBDaGVjayBvdXQgdGhpcyBkZXRhaWxlZCBwcmljZSBsaXN0ITxCUj48QlI+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5zaGFya3lleHRyZW1lLmNvbS9oYXJkd2FyZS93ZWVrbHlfY3B1LyIgDQorICAgICAgICAgICAgdGFyZ2V0PV9ibGFuaz5DbGljayBIZXJlLjwvQT4gPEJSPjxCUj5UaGFua3MgU2hhcmt5IA0KKyAgICAgICAgICAgIEV4dHJlbWUhPC9GT05UPjxCUj48QlI+PEEgDQorICAgICAgICAgICAgbmFtZT1uZXdzaXRlbTk2MzY3OTg4MSwzNTI3Nyw+PC9BPjxCPjxVPjxGT05UIGNvbG9yPSMwMDMzNjYgDQorICAgICAgICAgICAgZmFjZT0iVmVyZGFuYSwgQXJpYWwiIHNpemU9Mj5GYXN0IFdhbGxwYXBlcnM8L0ZPTlQ+PC9VPjwvQj48QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9IzAwNjZjYyBmYWNlPUFyaWFsIHNpemU9MT48U01BTEw+UG9zdGVkIGJ5IDxBIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86a2lsbHpAaTgyaHEuY29tIj5EYXJlRGV2aWw8L0E+IEAgOTo1MUFNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2MzY3OTg4MSwzNTI3NywuaHRtbCI+PElNRyANCisgICAgICAgICAgICBib3JkZXI9MCBzcmM9ImRvYzNfZmlsZXMvY29tbWVudHMuZ2lmIj4wIGNvbW1lbnRzPC9BPiANCisgICAgICAgICAgICAmbmJzcDt8Jm5ic3A7PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0LyNuZXdzX3RvcCI+dG9wPC9BPjwvRk9OVD4gPEJSPjxGT05UIA0KKyAgICAgICAgICAgIGNvbG9yPWJsYWNrIGZhY2U9QXJpYWwgc2l6ZT0yPkZBU1QtTUh6IGhhcyByZWxlYXNlZCBzb21lIHdhbGxwYXBlcnMhIA0KKyAgICAgICAgICAgIDxBIGhyZWY9Imh0dHA6Ly82NC4yOS4xOC4xMTEvd2FsbHBhcGVyL2luZGV4Lmh0bWwiIA0KKyAgICAgICAgICAgIHRhcmdldD1fYmxhbms+Q2xpY2sgaGVyZTwvQT4gdG8gdmlldyB0aGVtLiBUaGV5IGNvbWUgaW4gc2l6ZXMgDQorICAgICAgICAgICAgODAweDYwMCAxMDI0eDc2OCBhbmQgMTE1Mng4NjQuIElmIHlvdSBoYXZlIHlvdXIgZGVza3RvcCBzZXQgYXQgYSANCisgICAgICAgICAgICBsYXJnZXIgc2l6ZSwganVzdCB1c2UgdGhlICdzdHJldGNoJyBmdW5jdGlvbiBpbiBkZXNrdG9wIHByb3BlcnRpZXMgDQorICAgICAgICAgICAgaW5zdGVhZCBvZiAnY2VudGVyJy4gV29ya3MgZ3JlYXQuPEJSPjxCUj5JbiBvdGhlciBuZXdzLCB3ZSB3YW50IHRvIA0KKyAgICAgICAgICAgIGZpbm5pc2ggb2ZmIGFsbCB0aGUgc2VjdGlvbnMgYXQgQlA2LkNvbSBzbywgdG8gc3RhcnQsIHdlJ3JlIGdvaW5nIHRvIA0KKyAgICAgICAgICAgIHdvcmsgb24gdGhlIDxBIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC91Yy5waHRtbCIgDQorICAgICAgICAgICAgdGFyZ2V0PV9ibGFuaz5QaWN0dXJlIEdhbGxlcnk8L0E+LiBUbyBoZWxwIHVzIG91dCwgeW91IGNhbiBzZW5kIGluIA0KKyAgICAgICAgICAgIGFsbCB5b3VyIGNvb2wsIHdpZXJkLCBjcmF6eSBwaWNzIHRoYXQgeW91IG1heSBoYXZlIHRvOiA8QSANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86dGhlZGFyZWRldmlsQGJwNi5jb20iPnRoZWRhcmVkZXZpbEBicDYuY29tPC9BPi4gKFRoZSANCisgICAgICAgICAgICB0b3BpYyBiZWluZyBjb21wdXRlcnMsIGR1aCEgOjApIEFuZCBuby4uLiBJIGRvbid0IHdhbnQgdG8gcmVjaWV2ZSANCisgICAgICAgICAgICBhbnkgcG9ybm8gcGljY2llcyBpbiBteSBtYWlsYm94ISBJIGhhdmUgZW5vdWdoIG9mIHRob3NlISkgS2lkZGluZyANCisgICAgICAgICAgICBndXlzLjxCUj48QlI+T2theSwgdGhhdCdzIGFsbCBmb3Igbm93LjxCUj48QlI+VGhlIA0KKyAgICAgICAgICAgINDQLjwvRk9OVD48QlI+PEJSPjxBIG5hbWU9bmV3c2l0ZW05NjM2MTk1MDUsMzc2NCw+PC9BPg0KKyAgICAgICAgICAgIDxUQUJMRSBiZ0NvbG9yPSMwMDMzOTkgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgICAgICAgPFRSPg0KKyAgICAgICAgICAgICAgICA8VEQ+PEZPTlQgY29sb3I9I2ZmZmZmZiBmYWNlPVZlcmRhbmEsYXJpYWwgc2l6ZT0yPjxCPkZyaWRheSwgDQorICAgICAgICAgICAgICAgICAgSnVseSAxNCwgMjAwMDwvQj48L0ZPTlQ+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT48QlI+PCEtLTxociBub3NoYWRlIHdpZHRoPTEwMCU+LS0+PEI+PFU+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9IzAwMzM2NiBmYWNlPSJWZXJkYW5hLCBBcmlhbCIgc2l6ZT0yPkhleSANCisgICAgICAgICAgICBUaGVyZSE8L0ZPTlQ+PC9VPjwvQj48QlI+PEZPTlQgY29sb3I9IzAwNjZjYyBmYWNlPUFyaWFsIA0KKyAgICAgICAgICAgIHNpemU9MT48U01BTEw+UG9zdGVkIGJ5IDxBIGNsYXNzPW5hdiANCisgICAgICAgICAgICBocmVmPSJtYWlsdG86a2lsbHpAaTgyaHEuY29tIj5EYXJlRGV2aWw8L0E+IEAgNTowNVBNIA0KKyAgICAgICAgICAgIFBEVDwvU01BTEw+Jm5ic3A7IDxBIA0KKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9icDYuZ2FtZXNxdWFkLm5ldC9uZXdzLzk2MzYxOTUwNSwzNzY0LC5odG1sIj48SU1HIA0KKyAgICAgICAgICAgIGJvcmRlcj0wIHNyYz0iZG9jM19maWxlcy9jb21tZW50cy5naWYiPjcgY29tbWVudHM8L0E+IA0KKyAgICAgICAgICAgICZuYnNwO3wmbmJzcDs8QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvI25ld3NfdG9wIj50b3A8L0E+PC9GT05UPiA8QlI+PEZPTlQgDQorICAgICAgICAgICAgY29sb3I9YmxhY2sgZmFjZT1BcmlhbCBzaXplPTI+SGV5IGd1eXMsIGp1c3Qgd2FudGVkIHRvIGludHJvZHVjZSANCisgICAgICAgICAgICBteXNlbGYsIHNvbWUgb2YgeW91IG1heSBoYXZlIGFscmVhZHkgbWV0IG1lIG9uIHRoZSBCUDYuY29tIGJvYXJkLiANCisgICAgICAgICAgICBJJ2xsIGJlIHBvc3RpbmcgdXAgbmV3cyBmcm9tIHRpbWUgdG8gdGltZSBub3cgc28sIGlmIHlvdSdkIGxpa2UsIHlvdSANCisgICAgICAgICAgICBtYXkgc2VuZCBtZSBzb21lIG5ld3MgdG8gYmUgcG9zdGVkIGlmIHlvdSBmaW5kIGFueSAoIHdlIGRvbid0IHdhbnQgDQorICAgICAgICAgICAgdG8gZmxvb2QgVGltIDstKSApLjxCUj48QlI+TXkgZS1tYWlsIGFkZHJlc3MgaXMgPEEgDQorICAgICAgICAgICAgaHJlZj0ibWFpbHRvOmtpbGx6QGk4MmhxLmNvbSI+a2lsbHpAaTgyaHEuY29tPC9BPjxCUj48QlI+Q2lhbyBmb3IgDQorICAgICAgICAgICAgbm93LjxCUj48QlI+VGhlINDQLjwvRk9OVD48QlI+PEJSPg0KKyAgICAgICAgICAgIDxDRU5URVI+PElGUkFNRSBmcmFtZUJvcmRlcj0wIGhlaWdodD02MCBtYXJnaW5IZWlnaHQ9MCBtYXJnaW5XaWR0aD0wIA0KKyAgICAgICAgICAgIG5vUmVzaXplIHNjcm9sbGluZz1ubyBzcmM9ImRvYzNfZmlsZXMvYWRfaWZyYW1lLmh0bSIgDQorICAgICAgICAgICAgd2lkdGg9NDY4PjxhIGhyZWY9Imh0dHA6Ly9hZHMuYWRmbGlnaHQuY29tL2dvX3N0YXRpYy5hc3A/YXNpZD03NzA4IiB0YXJnZXQ9Il90b3AiPjxpbWcgd2lkdGg9NDY4IGhlaWdodD02MCBib3JkZXI9MCBhbHQ9IkFkdmVydGlzZW1lbnQiIHNyYz0iaHR0cDovL2Fkcy5hZGZsaWdodC5jb20vYWRfc3RhdGljLmFzcD9waWQ9MjA5NyZzaWQ9MTg4MSZhc2lkPTc3MDgiPjwvYT48L0lGUkFNRT48L0NFTlRFUj48L0xJPjwvRk9OVD48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvQ0VOVEVSPjwvUD48L1REPg0KKyAgICA8VEQgYmdDb2xvcj1zaWx2ZXIgdkFsaWduPXRvcCB3aWR0aD0iMTAlIj4NCisgICAgICA8Q0VOVEVSPg0KKyAgICAgIDxQPg0KKyAgICAgIDxUQUJMRSBiZ0NvbG9yPXNpbHZlciBib3JkZXI9MCBjZWxsUGFkZGluZz0wIGNlbGxTcGFjaW5nPTAgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgPFRSPg0KKyAgICAgICAgICA8VEQgQ09MU1RBUlQ9IjEiPg0KKyAgICAgICAgICAgIDxDRU5URVI+PCEtLQk8Rk9STSBBQ1RJT049Ii9jZ2ktYmluL3N1YnNjcmliZS5wbCIgTUVUSE9EPSJQT1NUIiBFTkNUWVBFPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiPg0KKwkJCQkJCTxJTUcgU1JDPSIvaW1hZ2VzL3NwYWNlci5naWYiIFdJRFRIPSIxMTEiIEhFSUdIVD0iMSI+PEJSPg0KKwkJCQkJCTxQPjxCPjxGT05UIFNJWkU9IjIiIENPTE9SPSIjMDAwMDY2IiBGQUNFPSJWZXJkYW5hIj5OZXdzbGV0dGVyPC9GT05UPjwvQj48Rk9OVCBTSVpFPSIxIiBGQUNFPSJWZXJkYW5hIj48QlI+DQorCQkJCQkJPElOUFVUIFRZUEU9IlRFWFQiIE5BTUU9ImVtYWlsIiBTSVpFPSIxMCIgVkFMVUU9InVyQGVtYWlsLmNvbSI+PEJSPg0KKwkJCQkJCTxJTlBVVCBUWVBFPSJISURERU4iIE5BTUU9InN1YnNjcmliZSIgU0laRT0iLTEiIFZBTFVFPSJzdWJzY3JpYmUiPjxJTlBVVCBUWVBFPSJJTUFHRSIgU1JDPSIvaW1hZ2VzL3N1YnNjcmliZS5naWYiIFdJRFRIPSI4MCINCisJCQkJCQlIRUlHSFQ9IjI3IiBBTElHTj0iQk9UVE9NIiBCT1JERVI9IjAiPjwvRk9OVD4NCisJCQkJCQk8L0ZPUk0+IC0tPg0KKyAgICAgICAgICAgIDxGT1JNIA0KKyAgICAgICAgICAgIGFjdGlvbj1odHRwOi8vYnA2LmdhbWVzcXVhZC5uZXQvY2dpLWJpbi9uZXdzL3ZpZXduZXdzLmNnaT9lbWFpbGxpc3QgDQorICAgICAgICAgICAgbWV0aG9kPXBvc3Q+PElNRyBoZWlnaHQ9MSBzcmM9ImRvYzNfZmlsZXMvc3BhY2VyLmdpZiIgDQorICAgICAgICAgICAgd2lkdGg9MTExPjxCUj48Rk9OVCBzaXplPTE+TmV3c2xldHRlcjxCUj48SU5QVVQgbmFtZT1ucGVtYWlsIHNpemU9MTMgDQorICAgICAgICAgICAgdmFsdWU9ImUtbWFpbCBhZGRyLiI+PEJSPjxJTlBVVCBuYW1lPW5wc3Vic2NyaWJlIHN0eWxlPSJCQUNLR1JPVU5ELUNPTE9SOiAjMDAwMDAwOyBDT0xPUjogI2ZmZmZmZjsgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IEZPTlQtU0laRTogeHgtc21hbGw7IEZPTlQtV0VJR0hUOiBib2xkIiB0eXBlPXN1Ym1pdCB2YWx1ZT1TdWJzY3JpYmU+PEJSPjwhLS0gPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ibnB1bnN1YnNjcmliZSIgdmFsdWU9IlVuc3Vic2NyaWJlIiBzdHlsZT0iZm9udC1zaXplOiB4eC1zbWFsbDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogI2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsiPiAtLT48L0ZPTlQ+PC9GT1JNPjxGT05UIA0KKyAgICAgICAgICAgIHNpemU9MT4NCisgICAgICAgICAgICA8Rk9STSANCisgICAgICAgICAgICBhY3Rpb249aHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NnaS1iaW4vbmV3cy92aWV3bmV3cy5jZ2k/c2VhcmNoIA0KKyAgICAgICAgICAgIG1ldGhvZD1wb3N0PlNlYXJjaCBuZXdzPEJSPjxJTlBVVCBuYW1lPXNlYXJjaHN0cmluZyBzaXplPTEzPjxCUj48SU5QVVQgbmFtZT1zdWJtaXQgc3R5bGU9IkJBQ0tHUk9VTkQtQ09MT1I6ICMwMDAwMDA7IENPTE9SOiAjZmZmZmZmOyBGT05ULUZBTUlMWTogVmVyZGFuYTsgRk9OVC1TSVpFOiB4eC1zbWFsbDsgRk9OVC1XRUlHSFQ6IGJvbGQiIHR5cGU9c3VibWl0IHZhbHVlPVN1Ym1pdD48QlI+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2JwNi5nYW1lc3F1YWQubmV0L2NnaS1iaW4vbmV3cy92aWV3bmV3cy5jZ2k/bmV3c2FsbCI+TmV3cyANCisgICAgICAgICAgICBhcmNoaXZlPC9BPjwvRk9OVD4gPC9GT1JNPjwvQ0VOVEVSPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PCEtLQkJCQk8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIiBCR0NPTE9SPSJzaWx2ZXIiPg0KKwkJCQkJPFRSPg0KKwkJCQkJCTxURCBXSURUSD0iMTAwJSI+DQorCQkJCQkJCTxQIEFMSUdOPSJDRU5URVIiPjxBIEhSRUY9Imh0dHA6Ly93d3cuZnJlZTU2ay5jb20iIHRhcmdldD0iX2JsYW5rIj48SU1HIFNSQz0iL2ltYWdlcy9mcmVlNTZrLmdpZiIgV0lEVEg9IjEwMCIgSEVJR0hUPSI0OSINCisJCQkJCQkJQUxJR049IkJPVFRPTSIgQk9SREVSPSIwIj48L0E+DQorCQkJCQkJPC9URD4NCisJCQkJCTwvVFI+DQorCQkJCTwvVEFCTEU+IA0KKy0tPg0KKyAgICAgIDxUQUJMRSBiZ0NvbG9yPXNpbHZlciBib3JkZXI9MCBjZWxsUGFkZGluZz0wIGNlbGxTcGFjaW5nPTAgd2lkdGg9IjEwMCUiPg0KKyAgICAgICAgPFRCT0RZPg0KKyAgICAgICAgPFRSPg0KKyAgICAgICAgICA8VEQgYWxpZ249bWlkZGxlIHdpZHRoPSIxMDAlIj48IS0tIEJFR0lOIEdvVG8uY29tIFNlYXJjaCBCb3ggLS0+DQorICAgICAgICAgICAgPFNDUklQVCBsYW5ndWFnZT1qYXZhc2NyaXB0IHR5cGU9dGV4dC9qYXZhc2NyaXB0Pg0KKwkJCQkJCQk8IS0tDQorCQkJCQkJCWlmICgocGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNpb24pID49IDMpDQorCQkJCQkJCSYmIChuYXZpZ2F0b3IuYXBwTmFtZSAhPSAiTmV0c2NhcGUiKSkgew0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiPElGUkFNRSBtYXJnaW5oZWlnaHQ9MCBmcmFtZWJvcmRlcj0wICIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgibWFyZ2lud2lkdGg9MCBzY3JvbGxpbmc9bm8gd2lkdGg9MTAwIGhlaWdodCIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiPTkwICIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiU1JDPWh0dHA6Ly93d3cuZ290by5jb20vZC9zc24vZHluY29uc29sZS8/dCIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgieXBlPWh0bWwmc2l6ZT0xMDB4OTAmdXJsPWh0dHA6Ly93d3cuZ290by5jbyIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgibS9kL3NlYXJjaC9zc24vJnRhcmdldD1fYmxhbmsmUGFydG5lcj1TU044MCIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiNDJERjg0Nzg5NTczNzc+PC9JRlJBTUU+Iik7DQorCQkJCQkJCX0gZWxzZSBpZiAoKHBhcnNlSW50KG5hdmlnYXRvci5hcHBWZXJzaW9uKSA+IDMpDQorCQkJCQkJCSYmIChuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTmV0c2NhcGUiKSkgew0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiPFNDUklQVCBsYW5ndWFnZT1qYXZhc2NyaXB0IHR5cGU9dGV4dC9qYXZhcyIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiY3JpcHQgIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJTUkM9aHR0cDovL3d3dy5nb3RvLmNvbS9kL3Nzbi9keW5jb25zb2xlLz90Iik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJ5cGU9anMmc2l6ZT0xMDB4OTAmdXJsPWh0dHA6Ly93d3cuZ290by5jb20vIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJkL3NlYXJjaC9zc24vJnRhcmdldD1fYmxhbmsmUGFydG5lcj1TU044MDQyIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJERjg0Nzg5NTczNzc+PC9TQyIpOw0KKwkJCQkJCQlkb2N1bWVudC53cml0ZSgiUklQVD4iKTsNCisJCQkJCQkJfSBlbHNlIHsNCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoIjxBIFRBUkdFVD1fYmxhbmsgIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJIUkVGPWh0dHA6Ly93d3cuZ290by5jb20vZC9zZWFyY2gvc3NuLz9mcm9tIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJHSUY9dHJ1ZT4iKTsNCisJCQkJCQkJZG9jdW1lbnQud3JpdGUoIjxJTUcgaXNtYXAgIik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJTUkM9aHR0cDovL3d3dy5nb3RvLmNvbS9kL3Nzbi9keW5jb25zb2xlLz90Iik7DQorCQkJCQkJCWRvY3VtZW50LndyaXRlKCJ5cGU9Z2lmJnNpemU9MTAweDkwPjwvQT4iKTsNCisJCQkJCQkJfQ0KKwkJCQkJCQkvLyAtLT4NCisJCQkJCQkJPC9TQ1JJUFQ+DQorICAgICAgICAgICAgPEI+PE5PU0NSSVBUPjwvQj48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vd3d3LmdvdG8uY29tL2Qvc2VhcmNoL3Nzbi8/ZnJvbUdJRj10cnVlIiANCisgICAgICAgICAgICB0YXJnZXQ9X2JsYW5rPjxJTUcgYWxpZ249Ym90dG9tIGJvcmRlcj0wIGhlaWdodD05MCBpc01hcCANCisgICAgICAgICAgICBzcmM9ImRvYzNfZmlsZXMvMTAweDkwLmdpZiIgd2lkdGg9MTAwPjwvQT48Qj48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vd3d3LmdvdG8uY29tL2Qvc2VhcmNoL3Nzbi8/ZnJvbUdJRj10cnVlIiB0YXJnZXQ9X2JsYW5rPiANCisgICAgICAgICAgICA8L0E+PC9BPjwvQj48Qj48L05PU0NSSVBUPjwvQj48Qj48IS0tIEVORCBHb1RvLmNvbSBTZWFyY2ggQm94IC0tPjwvQj48IS0tIFByaWNld2F0Y2ggU2VhcmNoIEJveCAtLT4NCisgICAgICAgICAgICA8Rk9STSBhY3Rpb249aHR0cDovL3d3dy5wcmljZXdhdGNoLmNvbS9zZWFyY2gvc2VhcmNoLmFzcCBtZXRob2Q9Z2V0IA0KKyAgICAgICAgICAgIHRhcmdldD1fQmxhbms+DQorICAgICAgICAgICAgPENFTlRFUj4NCisgICAgICAgICAgICA8UD48Qj48Rk9OVCBjb2xvcj13aGl0ZSBmYWNlPSJBUklBTCwgSEVMVkVUSUNBIiBzaXplPTE+UEMgUHJpY2UgDQorICAgICAgICAgICAgU2VhcmNoPEJSPjwvRk9OVD48L0I+PElOUFVUIG1heExlbmd0aD0zMCBuYW1lPWNyaXRlcmlhIHNpemU9MTA+PEJSPjxJTlBVVCBuYW1lPXN1Ym1pdCBzdHlsZT0iQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsgQ09MT1I6ICNmZmZmZmY7IEZPTlQtRkFNSUxZOiBWZXJkYW5hOyBGT05ULVNJWkU6IHh4LXNtYWxsOyBGT05ULVdFSUdIVDogYm9sZCIgdHlwZT1zdWJtaXQgdmFsdWU9U2VhcmNoPiANCisgICAgICAgICAgICA8L0ZPUk0+PCEtLSBQcmljZXdhdGNoIFNlYXJjaCBCb3ggLS0+PEEgDQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3d3dy5wdWljb3JwLmNvbS9icDZzcGVjaWFscy5odG0iIHRhcmdldD1fQkxBTks+PElNRyANCisgICAgICAgICAgICBzcmM9ImRvYzNfZmlsZXMvcHVpYnA2LmdpZiI+PC9BPjxCUj48QlI+PEJSPjxCUj48QSANCisgICAgICAgICAgICBocmVmPSJodHRwOi8vc3RvcmUueWFob28uY29tL2R1bmFtaXMtc2l0ZS9tYXh0b3IuaHRtbCIgDQorICAgICAgICAgICAgdGFyZ2V0PV9CTEFOSz48SU1HIA0KKyAgICAgICAgICAgIGFsdD0iQlA2LmNvbSBTcGVjaWFsIC0gRW50ZXIgQ09ERTogQlA2LWhkIGluIHRoZSBvcmRlciAobm90ZXMpIHRvIHJlY2VpdmUgYSBkaXNjb3VudCIgDQorICAgICAgICAgICAgc3JjPSJkb2MzX2ZpbGVzL2hkNS5naWYiPjxGT05UIHNpemU9MT48QlI+QlA2LkNPTSANCisgICAgICAgICAgICBTcGVjaWFsPEJSPkNvZGU6QlA2LWhkPC9GT05UPjwvQT4gPC9QPjwvQ0VOVEVSPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+DQorICAgICAgPFRBQkxFIGJnQ29sb3I9c2lsdmVyIGJvcmRlcj0wIGNlbGxQYWRkaW5nPTAgY2VsbFNwYWNpbmc9MCBoZWlnaHQ9IjEwMCUiIA0KKyAgICAgIHdpZHRoPSIxMDAlIj4NCisgICAgICAgIDxUQk9EWT4NCisgICAgICAgIDxUUj4NCisgICAgICAgICAgPFREIA0KK3dpZHRoPSIxMDAlIj4mbmJzcDs8L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvUD48L0NFTlRFUj48L1RSPjwvVEJPRFk+PC9UQUJMRT48IS0tCTwvVEFCTEU+LS0+DQorPENFTlRFUj48L0NFTlRFUj48L1REPjwvVFI+PFRSPjxURCBDT0xTUEFOPSIzIiBWQUxJR049IlRPUCIgDQorSEVJR0hUPSI3MCI+Jm5ic3A7PC9URD4gPC9UUj48L1RBQkxFPg0KKzxUQUJMRSBib3JkZXI9MCB3aWR0aD03ODA+DQorICA8VEJPRFk+DQorICA8VFI+DQorICAgIDxURCB3aWR0aD03ODA+DQorICAgICAgPFAgYWxpZ249Y2VudGVyPjxGT05UIGNvbG9yPSM5OTk5OTkgZmFjZT12ZXJkYW5hLGFyaWFsIHNpemU9MT5Db3B5cmlnaHQgDQorICAgICAgqTE5OTktMjAwMCBCUDYuY29tLCBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj5Hb3QgbmV3cz8gU2VuZCBpdCB0byA8L0ZPTlQ+PEEgDQorICAgICAgaHJlZj0ibWFpbHRvOnRpbUBicDYuY29tIj48Rk9OVCBjb2xvcj13aGl0ZSBmYWNlPVZlcmRhbmEgDQorICAgICAgc2l6ZT0xPlRpbTwvRk9OVD48L0E+IDwvUD48L1REPjwvVFI+PCEtLQk8VFI+CQk8VEQgV0lEVEg9Ijc4MCI+CQkJPFAgQUxJR049IkNFTlRFUiI+PEZPTlQgU0laRT0iMSIgQ09MT1I9IiM5OTk5OTkiIEZBQ0U9IlZlcmRhbmEsYXJpYWwiPlNpdGUgZGVzaWduIGJ5IFRpbSBCcmlua2xleTwvRk9OVD4JCTwvVEQ+CTwvVFI+IC0tPjwvVEJPRFk+PC9UQUJMRT48L0RJVj4NCis8U0NSSVBUPiB3aW5kb3cub3Blbj1OU19BY3R1YWxPcGVuOyA8L1NDUklQVD4NCis8L0JPRFk+PC9IVE1MPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2VudGl0aWVzLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9lbnRpdGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YWViMTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9lbnRpdGllcy5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHAgdHN0PSJhJmFtcDtiIiB0c3QyPSJhJmIiIHRzdDM9ImEgJiBiIj4KK2EmYW1wO2IKK2EmYgorYSAmIGIKKzwvcD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2VudGl0aWVzMi5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvZW50aXRpZXMyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNjYzdiMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2VudGl0aWVzMi5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+Cis8Ym9keT4KKzxmb3JtPgorICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idGVzdCIgdmFsdWU9IiZzY2Fyb247Ij4KKzwvZm9ybT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9mcDQwLmh0bSBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2ZwNDAuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MGI4MWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9mcDQwLmh0bQpAQCAtMCwwICsxLDE2NiBAQAorPCFkb2N0eXBlIGh0bWwgcHVibGljICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+CisKKzxoZWFkPgorPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNaWNyb3NvZnQgRnJvbnRQYWdlIDQuMCI+Cis8dGl0bGU+UkVBRE1FIC0gTWljcm9zb2Z0IEZyb250UGFnZSAyMDAwIFNlcnZlciBFeHRlbnNpb25zPC90aXRsZT4KKzxtZXRhIG5hbWU9Ik1pY3Jvc29mdCBUaGVtZSIgY29udGVudD0ibm9uZSI+Cis8L2hlYWQ+CisKKzxib2R5PgorPGZvbnQgZmFjZT0iVmVyZGFuYSI+Cis8aDE+PGEgbmFtZT0idG9wIj5NaWNyb3NvZnQgRnJvbnRQYWdlIDIwMDAgU2VydmVyIEV4dGVuc2lvbnMsIFVOSVg8L2E+PC9oMT4KKworPGZvbnQgc2l6ZT0iMiI+PGk+qSBDb3B5cmlnaHQgTWljcm9zb2Z0IENvcnBvcmF0aW9uLCAxOTk5Jm5ic3A7PC9pPjwvZm9udD4KKworCis8cD5UaGUgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb25zIGFyZSBhIHNldCBvZiBwcm9ncmFtcyBvbiB0aGUgV2ViIHNlcnZlciB0aGF0IHN1cHBvcnQ6IAorCis8dWw+CisgIDxsaT5BdXRob3JpbmcgRnJvbnRQYWdlIHdlYnM8L2xpPgorICA8bGk+QWRtaW5pc3RlcmluZyBGcm9udFBhZ2Ugd2ViczwvbGk+CisgIDxsaT5Ccm93c2UtdGltZSBGcm9udFBhZ2Ugd2ViIGZ1bmN0aW9uYWxpdHk8L2xpPgorPC91bD4KKworCis8aDI+Q29udGVudHMmbmJzcDs8L2gyPgorCis8YSBocmVmPSIjcmVsbm90ZXMiPlJlbGVhc2UgTm90ZXM8L2E+PGJyPgorPGEgaHJlZj0iI21vcmVpbmZvIj5SZXNvdXJjZXMgZm9yIE1vcmUgSW5mb3JtYXRpb248L2E+Cis8cD4mbmJzcDs8L3A+Cis8aHI+Cis8aDI+PGEgbmFtZT0icmVsbm90ZXMiPlJlbGVhc2UgTm90ZXM8L2E+PC9oMj4KKworPHA+VGhpcyBzZWN0aW9uIHByb3ZpZGVzIGNvbXBsZW1lbnRhcnkgb3IgbGF0ZS1icmVha2luZyAKK2luZm9ybWF0aW9uIHRvIHN1cHBsZW1lbnQgdGhlIE1pY3Jvc29mdCBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMgZG9jdW1lbnRhdGlvbi48L3A+CisKKzxwPjxhIGhyZWY9IiNhcGFjaGUiPkFwYWNoZSAxLjMuNCBTdXBwb3J0PC9hPjxicj4KKzxhIGhyZWY9IiN1cGdyYWRpbmciPlVwZ3JhZGluZyBmcm9tIHByZXZpb3VzIHZlcnNpb24gb2YgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb25zPC9hPjxicj4KKzxhIGhyZWY9IiNleGVjdXRhYmxlcyI+VXBsb2FkaW5nIGZpbGVzIGludG8gZXhlY3V0YWJsZSBmb2xkZXJzPC9hPjwvcD4KKworCis8cCBhbGlnbj0icmlnaHQiPjxmb250IHNpemU9IjEiPjxhIGhyZWY9IiN0b3AiPlRvcCBvZiBQYWdlPC9hPjwvZm9udD48L3A+CisKKworPGgzPjxhIG5hbWU9ImFwYWNoZSI+QXBhY2hlIDEuMy40IFN1cHBvcnQ8L2E+PC9oMz4KKworPHA+WW91IG5lZWQgdG8gdGFrZSBzb21lIHNwZWNpYWwgc3RlcHMgdG8gcnVuIHRoZSBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMgd2l0aCBBcGFjaGUgMS4zLjQuCitGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMgZXhwZWN0IHRvIGZpbmQgYWxsIHJlc291cmNlIGRpcmVjdGl2ZXMgaW4gdGhlIG1haW4gc2VydmVyIAorY29uZmlndXJhdGlvbiBmaWxlLCB1c3VhbGx5IGh0dHAuY29uZi4gVG8gcHJldmVudCB0aGUgc2VydmVyIGV4dGVuc2lvbnMgZnJvbSB1c2luZyBhbnkgc2Vjb25kYXJ5Citjb25maWd1cmF0aW9uIGZpbGVzIChhY2Nlc3MuY29uZiwgc3JtLmNvbmYpLCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lcyB0byBodHRwLmNvbmY6PC9wPgorCisKKzwvZm9udD4KKzxibG9ja3F1b3RlPgorICA8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CitSZXNvdXJjZUNvbmZpZyAvZGV2L251bGwmbmJzcDs8YnI+CitBY2Nlc3NDb25maWcgL2Rldi9udWxsPC9mb250PgorPC9ibG9ja3F1b3RlPgorPGZvbnQgZmFjZT0iVmVyZGFuYSI+CisKKworPHA+SWYgeW91IGhhdmUgc29tZSBzZXR0aW5ncyBzdG9yZWQgaW4gc2Vjb25kYXJ5IGNvbmZpZ3VyYXRpb24gZmlsZXMsIG1vdmUgdGhlbSB0byBodHRwLmNvbmYuPC9wPgorCis8cD5Zb3UgbXVzdCBzdG9wIGFuZCByZXN0YXJ0IHRoZSB3ZWIgc2VydmVyIGZvciB5b3VyIGNoYW5nZXMgdG8gaHR0cC5jb25mIHRvIHRha2UgZWZmZWN0LjwvcD4KKworCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI3JlbG5vdGVzIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKworPGgzPjxhIG5hbWU9InVwZ3JhZGluZyI+VXBncmFkaW5nIGZyb20gcHJldmlvdXMgdmVyc2lvbiBvZiBGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnM8L2E+PC9oMz4KKworPHA+Q3VzdG9tIGVudHJpZXMgaW4gZnJvbnRwYWdlLmNuZiBhcmUgbm90IG1pZ3JhdGVkIHRvIEZyb250UGFnZSAyMDAwLjwvcD4KKworPHA+V2hlbiB5b3UgaW5zdGFsbCBGcm9udFBhZ2UgMjAwMCBTZXJ2ZXIgRXh0ZW5zaW9ucywgYSBuZXcgZnJvbnRwYWdlLmNuZiBmaWxlIGlzIGNyZWF0ZWQgaW4gdGhlIC91c3IvbG9jYWwvZnJvbnRwYWdlL3ZlcnNpb240LjAgZGlyZWN0b3J5LiAKK0FueSBjdXN0b20gc2V0dGluZ3Mgc3RvcmVkIGluIGEgcHJldmlvdXMtdmVyc2lvbiBmcm9udHBhZ2UuY25mIGFyZSBub3QgdXNlZC4gSG93ZXZlciwgeW91IGNhbiBjb3B5IAoreW91ciBjdXN0b20gc2V0dGluZ3MgZnJvbSB0aGUgcHJldmlvdXMtdmVyc2lvbiBmcm9udHBhZ2UuY25mIGZpbGUgYWZ0ZXIgeW91IGluc3RhbGwgdGhlIEZyb250UGFnZSAyMDAwIFNlcnZlciBFeHRlbnNpb25zLjwvcD4KKworPHA+RG8gbm90IG92ZXJ3cml0ZSB0aGUgRnJvbnRQYWdlIDIwMDAgZnJvbnRwYWdlLmNuZiBmaWxlIHdpdGggYSBmcm9udHBhZ2UuY25mIGZpbGUgZnJvbSBhbiAKK2VhcmxpZXIgdmVyc2lvbiBvZiB0aGUgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb25zLjwvcD4KKworCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI3JlbG5vdGVzIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKworPGgzPjxhIG5hbWU9ImV4ZWN1dGFibGVzIj5VcGxvYWRpbmcgZmlsZXMgaW50byBleGVjdXRhYmxlIGZvbGRlcnM8L2E+PC9oMz4KKworCis8cD5BZnRlciB1cGdyYWRpbmcgdG8gRnJvbnRQYWdlIDIwMDAsIEZyb250UGFnZSBhdXRob3JzIHdpbGwgbm90IGJlIGFibGUgdG8gdXBsb2FkIGZpbGVzIGludG8KK2V4ZWN1dGFibGUgZm9sZGVycy4gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIHRoZSBkZWZhdWx0IHNldHRpbmcgb24gRnJvbnRQYWdlIDIwMDAgd2VicyBkb2VzIG5vdCAKK2FsbG93IGF1dGhvcnMgdG8gdXBsb2FkIGV4ZWN1dGFibGUgZmlsZXMgaW50byBleGVjdXRhYmxlIGZvbGRlcnMgaW4gYSBGcm9udFBhZ2Ugd2ViLiBUaGlzIAorc2V0dGluZyBwcm90ZWN0cyBzZXJ2ZXJzIHNvIHRoYXQgYXV0aG9ycyBkbyBub3QgaW5hZHZlcnRlbnRseSB1cGxvYWQgYSBwcm9ncmFtIGNvbnRhaW5pbmcgYSBidWcgCitvciBhIHZpcnVzLjwvcD4gCisKKzxwPlRvIGFsbG93IEZyb250UGFnZSBhdXRob3JzIHRvIHVwbG9hZCBleGVjdXRhYmxlcywgc2V0IHRoZSBOb0V4ZWN1dGFibGVDZ2lVcGxvYWQgY29uZmlndXJhdGlvbiAKK3ZhcmlhYmxlIHRvIHplcm8gKDApLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb24gY29uZmlndXJhdGlvbiB2YXJpYWJsZXMsIAorc2VlIHRoZSBGcm9udFBhZ2UgMjAwMCBTZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQgYXQgPGEgaHJlZj0iaHR0cDovL29mZmljZXVwZGF0ZS5taWNyb3NvZnQuY29tL2Zyb250cGFnZS93cHAvc2Vyay8iPmh0dHA6Ly9vZmZpY2V1cGRhdGUubWljcm9zb2Z0LmNvbS9mcm9udHBhZ2Uvd3BwL3NlcmsvPC9hPi48L3A+CisKKworCis8cCBhbGlnbj0icmlnaHQiPjxmb250IHNpemU9IjEiPjxhIGhyZWY9IiNyZWxub3RlcyI+VG9wIG9mIFNlY3Rpb248L2E+PC9mb250PjwvcD4KKworCisKKzxocj4KKworCisKKzxoMj48YSBuYW1lPSJtb3JlaW5mbyI+UmVzb3VyY2VzIGZvciBNb3JlIEluZm9ybWF0aW9uPC9hPjwvaDI+CisKKzxwPlRoaXMgc2VjdGlvbiBsaXN0cyBzb3VyY2VzIG9mIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlCitGcm9udFBhZ2UgU2VydmVyIEV4dGVuc2lvbnMuPC9wPgorCis8cD48YSBocmVmPSIjc2VyayI+U2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0PC9hPjxicj4KKzxhIGhyZWY9IiNzZXJrdXBkYXRlIj5TZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQgVXBkYXRlPC9hPjxicj4KKzxhIGhyZWY9IiNrYiI+S25vd2xlZGdlIEJhc2U8L2E+PC9wPgorCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI3RvcCI+VG9wIG9mIFBhZ2U8L2E+PC9mb250PjwvcD4KKworCis8aDM+PGEgbmFtZT0ic2VyayI+U2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0PC9hPjwvaDM+CisKKzxwPlRoZSBGcm9udFBhZ2UgMjAwMCBTZXJ2ZXIgRXh0ZW5zaW9ucyBpbmNsdWRlIGEgZnVsbCBzZXQgb2YgZG9jdW1lbnRhdGlvbjogdGhlIFNlcnZlcgorRXh0ZW5zaW9ucyBSZXNvdXJjZSBLaXQuIFRoaXMgaXMgYW4gSFRNTCBkb2N1bWVudCBpbnN0YWxsZWQgb24gdGhlIHNlcnZlciBtYWNoaW5lIChieQorZGVmYXVsdCkgaW4gL3Vzci9sb2NhbC9mcm9udHBhZ2UvdmVyc2lvbjQuMC9zZXJrLiBUbyB2aWV3IHRoZSBTZXJ2ZXIgRXh0ZW5zaW9ucyBSZXNvdXJjZQorS2l0LCBvcGVuIC91c3IvbG9jYWwvZnJvbnRwYWdlL3ZlcnNpb240LjAvc2Vyay9kZWZhdWx0Lmh0bSBpbiB5b3VyIFdlYiBicm93c2VyLjwvcD4KKworPHA+VGhlIFNlcnZlciBFeHRlbnNpb25zIFJlc291cmNlIEtpdCBjb250YWlucyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBpbnN0YWxsaW5nIGFuZAorYWRtaW5pc3RlcmluZyB0aGUgRnJvbnRQYWdlIFNlcnZlciBFeHRlbnNpb25zIGFsb25nIHdpdGggYW4gb3ZlcnZpZXcgb2YgdGhlIFNlcnZlcgorRXh0ZW5zaW9ucywgYSBkZXRhaWxlZCBkaXNjdXNzaW9uIG9mIFNlcnZlciBFeHRlbnNpb25zIHNlY3VyaXR5IG9uIFVOSVggYW5kIFdpbmRvd3MsCit0cm91Ymxlc2hvb3RpbmcgaW5mb3JtYXRpb24sIGFuZCBhIGZ1bGwgc2V0IG9mIGFwcGVuZGl4ZXMuPC9wPgorCis8cCBhbGlnbj0icmlnaHQiPjxmb250IHNpemU9IjEiPjxhIGhyZWY9IiNtb3JlaW5mbyI+VG9wIG9mIFNlY3Rpb248L2E+PC9mb250PjwvcD4KKworCis8aDM+PGEgbmFtZT0ic2Vya3VwZGF0ZSI+U2VydmVyIEV4dGVuc2lvbnMgUmVzb3VyY2UgS2l0IFVwZGF0ZTwvYT48L2gzPgorCis8cD5Gb3IgdXBkYXRlZCBpbmZvcm1hdGlvbiBhYm91dCBpbnN0YWxsaW5nLCBzZXR0aW5nIHVwLCBhbmQgYWRtaW5pc3RyYXRpbmcgdGhlIEZyb250UGFnZSBTZXJ2ZXIgCitFeHRlbnNpb25zLCBzZWUgdGhlIFNlcnZlciBFeHRlbnNpb25zIFJlc291cmNlIEtpdCBVcGRhdGUgYXQ6IDxhIGhyZWY9Imh0dHA6Ly9vZmZpY2V1cGRhdGUubWljcm9zb2Z0LmNvbS9mcm9udHBhZ2Uvd3BwL3NlcmsvIj5odHRwOi8vb2ZmaWNldXBkYXRlLm1pY3Jvc29mdC5jb20vZnJvbnRwYWdlL3dwcC9zZXJrLzwvYT4uPC9wPgorCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI21vcmVpbmZvIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKzxoMz48YSBuYW1lPSJrYiI+TWljcm9zb2Z0IEtub3dsZWRnZSBCYXNlPC9hPjwvaDM+CisKKzxwPkZvciBmdXJ0aGVyIHRlY2huaWNhbCBpbmZvcm1hdGlvbiBvbiBGcm9udFBhZ2UsIHBsZWFzZSBjb25zdWx0IFN1cHBvcnQgT25saW5lLiBVc2UgU3VwcG9ydAorT25saW5lIHRvIGVhc2lseSBzZWFyY2ggTWljcm9zb2Z0IFByb2R1Y3QgU3VwcG9ydCBTZXJ2aWNlcycgY29sbGVjdGlvbiBvZiByZXNvdXJjZXMgaW5jbHVkaW5nIAordGVjaG5pY2FsIGFydGljbGVzIGZyb20gTWljcm9zb2Z0J3MgZXh0ZW5zaXZlIEtub3dsZWRnZSBCYXNlLCBGQVFzLCAmIHRyb3VibGVzaG9vdGVycyB0byBmaW5kIAorZmFzdCwgYWNjdXJhdGUgYW5zd2Vycy4gWW91IGNhbiBhbHNvIGN1c3RvbWl6ZSB0aGUgc2l0ZSB0byBjb250cm9sIHlvdXIgc2VhcmNoIHVzaW5nIGVpdGhlciAKK2tleXdvcmRzIG9yIHRoZSBzaXRlJ3MgbmF0dXJhbCBsYW5ndWFnZSBzZWFyY2ggZW5naW5lLCB3aGljaCB1c2VzIG5vcm1hbCBldmVyeWRheSBsYW5ndWFnZSBmb3IgCithbnN3ZXJpbmcgaW5xdWlyaWVzLCBzbyB5b3UgY2FuIHdyaXRlIHlvdXIgcXVlc3Rpb24gaW4geW91ciBvd24gd29yZHMuIFRvIGJlZ2luLCBnbyB0bworPGEgaHJlZj0iaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9zdXBwb3J0LyI+aHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9zdXBwb3J0LzwvYT4uPC9wPiAgCisKKzxwIGFsaWduPSJyaWdodCI+PGZvbnQgc2l6ZT0iMSI+PGEgaHJlZj0iI21vcmVpbmZvIj5Ub3Agb2YgU2VjdGlvbjwvYT48L2ZvbnQ+PC9wPgorCisKKzxwPiZuYnNwOzwvcD4gIAorCis8L2ZvbnQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9saWNsb3NlLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9saWNsb3NlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM2NDAzNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2xpY2xvc2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT48L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8dWw+Cis8bGk+Rmlyc3QgaXRlbQorPGxpPlNlY29uZCBpdGVtLCBjbG9zZXMgdGhlIGZpcnN0IG9uZQorPC91bD4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvbHQuaHRtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2x0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJmNmQ5NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML2x0Lmh0bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJSb290IDxyb290QGFvbC5jb20+Ij4KKzwvaGVhZD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3ByZS5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcHJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGUxYTY2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3ByZS5odG1sCkBAIC0wLDAgKzEsNSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwcmU+PGEgaHJlZj0idG90byI+PC9hPjxpbWcgc3JjPSJ0aXRpIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3B5dGhvbi5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcHl0aG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFhNjM5NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3B5dGhvbi5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCIgPgorPD94bWwtc3R5bGVzaGVldCBocmVmPSIuL2Nzcy9odDJodG1sLmNzcyIgdHlwZT0idGV4dC9jc3MiPz4KKzxodG1sPgorPCEtLSBUSElTIFBBR0UgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQuICBETyBOT1QgRURJVC4gLS0+Cis8aGVhZD4KKzx0aXRsZT5QeXRob24gUHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcmVnMS5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcmVnMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZGQwMDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9yZWcxLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5SZWdyZXNzaW9uIHRlc3QgMTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5SZWdyZXNzaW9uIHRlc3QgMTwvaDE+Cis8cD4KK09rIGZpbGUgbm8gcHJvYmxlbQorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcmVnMi5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcmVnMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNDVjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9yZWcyLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5SZWdyZXNzaW9uIHRlc3QgMjwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5SZWdyZXNzaW9uIHRlc3QgMjwvaDE+Cis8cD4KK0F1dG9jbG9zZSBvZiB0YWcgUAorPHA+CitPayBmaWxlIG5vIHByb2JsZW0KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3JlZzMuaHRtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3JlZzMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTQ0ODNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcmVnMy5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+UmVncmVzc2lvbiB0ZXN0IDM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8aDE+UmVncmVzc2lvbiB0ZXN0IDM8L2gxPgorPHA+CitBdXRvY2xvc2Ugb2YgdGFnIFAKKzxocj4KKzxwPgorT2sgZmlsZSBubyBwcm9ibGVtCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9yZWc0Lmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9yZWc0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QwNGNhMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3JlZzQuaHRtbApAQCAtMCwwICsxLDEyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlJlZ3Jlc3Npb24gdGVzdCA0PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlJlZ3Jlc3Npb24gdGVzdCA0PC9oMT4KKzxwPgorV3JvbmcgY2xvc2Ugb2YgdGFnIFAKKzxocj4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3JlcGVhdC5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvcmVwZWF0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZkNmY5NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3JlcGVhdC5odG1sCkBAIC0wLDAgKzEgQEAKKzx0ZD48dGQ+PCEtLSA8YT48Yj4gLS0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9zY3JpcHQuaHRtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3NjcmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5N2IwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9zY3JpcHQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxIVE1MPgorPEhFQUQ+PFRJVExFPlNjcmlwdCB0ZXN0czwvVElUTEU+PC9IRUFEPgorPEJPRFk+Cis8U0NSSVBUIGxhbmd1YWdlPWphdmFzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5vcGVuPG1heCkgOworPC9TQ1JJUFQ+Cis8SU5QVVQgT05DTElDSz0iaWYod2luZG93Lm9wZW48bWF4KTsiPgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvc2NyaXB0Mi5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvc2NyaXB0Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDZhODMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC9zY3JpcHQyLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisJPGhlYWQ+CisJCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgorPHRpdGxlPlRlc3QgUGFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InBvcnRhbCI+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisJZG9jdW1lbi53cml0ZSgiUMWZw61sacWhIMW+bHXFpW91xI1rw70ga8WvxYggw7pwxJtsIMSPw6FiZWxrc8OpIMOzZHkiKTsKKzwvc2NyaXB0PgorCTxwPgorCVDFmcOtbGnFoSDFvmx1xaVvdcSNa8O9IGvFr8WIIMO6cMSbbCDEj8OhYmVsa3PDqSDDs2R5OworCTwvcD4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC90ZXN0Mi5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvdGVzdDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGZkNDRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvdGVzdDIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+IAorPEhUTUw+PEhFQUQ+IDxUSVRMRT5MaW51eCBUb2RheTwvVElUTEU+PC9IRUFEPgorPGJvZHkgYmdjb2xvcj0iV2hpdGUiIGxpbms9IkJsdWUiIHRleHQ9IkJsYWNrIiBWTElOSz0iQmxhY2siIEFMSU5LPSJSZWQiPgorCis8Y2VudGVyPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExTUEFDSU5HPSIwIiBDRUxMUEFERElORz0iMCI+CisgICAgICAgIDxUUiBCR0NPTE9SPSIjRkZGRkZGIj4KKyAgICAgICAgICAgICAgICA8VEQgSEVJR0hUPSI5MCI+Cis8YSBocmVmPSJodHRwOi8vbGludXh0b2RheS5jb20vY2dpLWJpbi9jbGljay5wbD9hZG51bT00OSI+PGltZyBzcmM9Ii9waWNzL2Rvb3JfbGludXguZ2lmIiBib3JkZXI9IjAiIHdpZHRoPSI0NjgiIGhlaWdodD0iNjAiIGFsdD0iQXRpcGEgTGludXggc29sdXRpb25zLiBZb3VyIHJlbGlhYmxlIGNsdXN0ZXIsIHNlcnZlciwgYW5kIHdvcmtzdGF0aW9uIHNvbHV0aW9uLiBXaW4gYSBGcmVlIENlbGVyb24gTGludXggV29ya3N0YXRpb24hIj48L0E+CisKKyAgICAgICAgICAgICAgICA8L1REPgorICAgIDxURD48SU1HIFNSQz0iL3BpY3MvbHQuZ2lmIiBWU1BBQ0U9NSBhbHQ9IkxpbnV4IFRvZGF5IExvZ28iPjxicj48Zm9udCBzaXplPSItMSI+PGEgaHJlZj0iaHR0cDovL2xpbnV4LmNvbSI+bGludXguY29tPC9hPiBwYXJ0bmVyPC9mb250PjxwPjwvVEQ+CisKKyAgICAgICAgPC9UUj4KKzwvVEFCTEU+Cis8Zm9udCBzaXplPSIyIiBmYWNlPSJIZWx2ZXRpY2EiPgorWyA8YSBocmVmPSJodHRwOi8vbGludXh0b2RheS5jb20vIj5oZWFkbGluZXM8L0E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9mZWF0dXJlcy5saW51eHRvZGF5LmNvbS8iPmZlYXR1cmVzPC9BPiB8Cis8YSBocmVmPSJodHRwOi8vY29tbWVyY2lhbC5saW51eHRvZGF5LmNvbS8iPmNvbW1lcmNpYWw8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9zZWN1cml0eS5saW51eHRvZGF5LmNvbS8iPnNlY3VyaXR5PC9hPiB8Cis8YSBocmVmPSJodHRwOi8vam9icy5saW51eHRvZGF5LmNvbS8iPmpvYnM8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS92b2x0LyI+dm9sdDwvYT4gfCAKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS9jb250cmliLnBsIj5jb250cmlidXRlL3N1Ym1pdDwvYT4gfAorPGEgaHJlZj0iaHR0cDovL2xpbnV4dG9kYXkuY29tL2FkdmVydGlzZS8iPmFkdmVydGlzZTwvQT4gfAorPGEgaHJlZj0iaHR0cDovL2xpbnV4dG9kYXkuY29tL3NlYXJjaC5odG1sIj5zZWFyY2g8L0E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS9kaWdlc3RzLyI+c2l0ZSBkaWdlc3RzPC9BPiB8Cis8YSBocmVmPSJodHRwOi8vbGludXh0b2RheS5jb20vbWFpbC1saXN0cyI+bWFpbGluZyBsaXN0czwvQT4gfAorPGEgaHJlZj0iaHR0cDovL2xpbnV4dG9kYXkuY29tL2Fib3V0LyI+YWJvdXQgdXM8L2E+IHwKKzxhIGhyZWY9Imh0dHA6Ly9saW51eHRvZGF5LmNvbS9saW5rdXMuaHRtbCI+bGluayB1czwvQT4gXTwvZm9udD4KKzwvY2VudGVyPgorPFA+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC90ZXN0My5odG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvdGVzdDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjFmMTkwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L0hUTUwvdGVzdDMuaHRtbApAQCAtMCwwICsxLDM0IEBACis8aHRtbD4NCis8aGVhZD4NCis8YmFzZSB0YXJnZXQ9Y29udGVudHM+DQorPC9oZWFkPg0KKzxhIG5hbWU9UHJvYmxlbURvbWFpbi5QYWNrYWdlPjxoMj5Db21wb25lbnQgUGFja2FnZSBkaWFncmFtIFByb2JsZW1Eb21haW48L2gyPg0KKzwvYT48cD48aHI+PC9wPg0KKzxkbD4NCis8ZHQ+PGI+U3RlcmVvdHlwZSA8L2I+cHJvYmxlbSBkb21haW48L2R0Pg0KKzxkdD48Yj5BbGlhcyA8L2I+UHJvYmxlbSBEb21haW48L2R0Pg0KKzxkdD48Yj5Ob3RlIDwvYj48ZGQ+VGhlIFByb2JsZW0gRG9tYWluIHBhY2thZ2UgaXMgdGhlIG1vZGVsIGJlaGluZCB0aGUgSHVtYW4gDQorPGRkPkludGVyZmFjZSwgdGhhdHMgc3RvcmVzIGFuZCBtYW5pcHVsYXRlcyB0aGUgRmFtaWx5IFRyZWUuDQorPC9kbD4NCis8cD48aHI+PC9wPg0KKzxkbD4NCisNCis8ZHQ+PGg0PkNsYXNzIDxhIGhyZWY9SHVtYW5JbnRlcmZhY2UuRmFtaWx5RnJhbWUuaHRtbCNIdW1hbkludGVyZmFjZS5GYW1pbHlGcmFtZT5IdW1hbkludGVyZmFjZS5GYW1pbHlGcmFtZTwvYT48L2g0PjwvZHQ+DQorPGR0PjxoND5DbGFzcyA8YSBocmVmPVByb2JsZW1Eb21haW4uQmlydGguaHRtbCNQcm9ibGVtRG9tYWluLkJpcnRoPlByb2JsZW1Eb21haW4uQmlydGg8L2E+PC9oND48L2R0Pg0KKzxkdD48aDQ+Q2xhc3MgPGEgaHJlZj1Qcm9ibGVtRG9tYWluLkRlYXRoLmh0bWwjUHJvYmxlbURvbWFpbi5EZWF0aD5Qcm9ibGVtRG9tYWluLkRlYXRoPC9hPjwvaDQ+PC9kdD4NCis8ZHQ+PGg0PkNsYXNzIDxhIGhyZWY9UHJvYmxlbURvbWFpbi5EaXZvcmNlLmh0bWwjUHJvYmxlbURvbWFpbi5EaXZvcmNlPlByb2JsZW1Eb21haW4uRGl2b3JjZTwvYT48L2g0PjwvZHQ+DQorPGR0PjxoND5DbGFzcyA8YSBocmVmPVByb2JsZW1Eb21haW4uRmFtaWx5Lmh0bWwjUHJvYmxlbURvbWFpbi5GYW1pbHk+UHJvYmxlbURvbWFpbi5GYW1pbHk8L2E+PC9oND48L2R0Pg0KKzxkdD48aDQ+Q2xhc3MgPGEgaHJlZj1Qcm9ibGVtRG9tYWluLkluZGl2aWR1YWwuaHRtbCNQcm9ibGVtRG9tYWluLkluZGl2aWR1YWw+UHJvYmxlbURvbWFpbi5JbmRpdmlkdWFsPC9hPjwvaDQ+PC9kdD4NCis8ZHQ+PGg0PkNsYXNzIDxhIGhyZWY9UHJvYmxlbURvbWFpbi5MaWZlRXZlbnQuaHRtbCNQcm9ibGVtRG9tYWluLkxpZmVFdmVudD5Qcm9ibGVtRG9tYWluLkxpZmVFdmVudDwvYT48L2g0PjwvZHQ+DQorPGR0PjxoND5DbGFzcyA8YSBocmVmPVByb2JsZW1Eb21haW4uTWFycmlhZ2UuaHRtbCNQcm9ibGVtRG9tYWluLk1hcnJpYWdlPlByb2JsZW1Eb21haW4uTWFycmlhZ2U8L2E+PC9oND48L2R0Pg0KKzxkdD48aDQ+Q2xhc3MgPGEgaHJlZj1Qcm9ibGVtRG9tYWluLk5vdGUuaHRtbCNQcm9ibGVtRG9tYWluLk5vdGU+UHJvYmxlbURvbWFpbi5Ob3RlPC9hPjwvaDQ+PC9kdD4NCis8L2RsPg0KKw0KKzxoND48Yj5MaW5rczwvaDQ+PC9iPg0KKzx1bD48bGk+PGI+TGluayB0byA8L2I+PGEgaHJlZj1IdW1hbkludGVyZmFjZS5QYWNrYWdlLmh0bWwjSHVtYW5JbnRlcmZhY2UuUGFja2FnZT5IdW1hbkludGVyZmFjZTwvYT48L2xpPjwvdWw+DQorPGRpcj48L2Rpcj4NCis8dWw+PGxpPjxiPkxpbmsgdG8gPC9iPjxhIGhyZWY9RGF0YU1hbmFnZW1lbnQuRmxhdEZpbGUuUGFja2FnZS5odG1sI0RhdGFNYW5hZ2VtZW50LkZsYXRGaWxlLlBhY2thZ2U+RGF0YU1hbmFnZW1lbnQuRmxhdEZpbGU8L2E+PC9saT48L3VsPg0KKzxkaXI+PC9kaXI+DQorPHVsPjxsaT48Yj5MaW5rIHRvIDwvYj48YSBocmVmPURhdGFNYW5hZ2VtZW50LlBhY2thZ2UuaHRtbCNEYXRhTWFuYWdlbWVudC5QYWNrYWdlPkRhdGFNYW5hZ2VtZW50PC9hPjwvbGk+PC91bD4NCis8ZGlyPjwvZGlyPg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC91dGY4YnVnLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC91dGY4YnVnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNjZmFjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3V0ZjhidWcuaHRtbApAQCAtMCwwICsxLDE4MiBAQAorCis8aHRtbD4KKworPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyIgLz4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorPGxpbmsgaHJlZj0iQ1NTLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4KKzxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iZmF2aWNvbi5pY28iPgorPHRpdGxlPti02YfZitixINio2YTYp9qvPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+CisKKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBpZD0iTWFpblRCTCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKwk8dHI+CisJCTx0ZCBjbGFzcz0iSGVhZGVyMSI+CisJCTx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGhlaWdodD0iMTAwJSI+CisJCQk8dHI+CisJCQkJPHRkPgorCQkJCTxpbWcgYm9yZGVyPSIwIiBzcmM9IlNoZWxsL1NoYWhpci5TaGFoaWRTYWxlczEucG5nIiB3aWR0aD0iNDQyIiBoZWlnaHQ9IjExMCI+PC90ZD4KKwkJCQk8dGQ+Jm5ic3A7PC90ZD4KKwkJCTwvdHI+CisJCTwvdGFibGU+CisJCTwvdGQ+CisJPC90cj4KKwk8dHI+CisJCTx0ZCBoZWlnaHQ9IjI4Ij4KKwkJCTxkaXYgaWQ9IlNpZGVCYXIxIj4KKwkJCQk8dGFibGUgd2lkdGg9IjEwMCUiPgorCQkJCTx0cj4KKwkJCQk8dGQ+CisJCQkJIDxzcGFuIGNsYXNzPSJJdGVtIj4KKzxhIGhyZWY9IkluZGV4LmFzcCIgPgor2K7Yp9mG2YcgPC9hPjwvc3Bhbj4gPHNwYW4gY2xhc3M9Ikl0ZW0iPgorPGEgaHJlZj0iQ29udGFjdC5hc3AiID4KK9iq2YXYp9izINio2Kcg2YXZhiA8L2E+PC9zcGFuPiA8c3BhbiBjbGFzcz0iSXRlbSI+Cis8YSBocmVmPSJBcmNoaXZlLmFzcCIgPgor2KLYsdi02YrZiCA8L2E+PC9zcGFuPiA8c3BhbiBjbGFzcz0iSXRlbSI+Cis8YSBocmVmPSJTZWFyY2guYXNwIiA+CivYrNiz2KrYrNmIINiv2LEg2LPYp9uM2KogPC9hPjwvc3Bhbj4gPHNwYW4gY2xhc3M9Ikl0ZW0iPgorPGEgaHJlZj0iaHR0cDovL3NoYWhpcmJsb2cuY29tL2RldGFpbC5hc3A/aWQ9MzAiID4KK9iv2LHYqNin2LHZhyDZhdmGIDwvYT48L3NwYW4+IDxzcGFuIGNsYXNzPSJJdGVtIj4KKzxhIGhyZWY9IlJTUzIuYXNwIiA+CisKKzxpbWcgc3JjPSJzaG93aW1hZ2UuYXNweD9wYXRoPUZpbGVzX1VwbG9hZFwxOTIucG5nJndpZHRoPSU+IiBib3JkZXI9IjAiIC8+CitSU1MgPC9hPjwvc3Bhbj4gPHNwYW4gY2xhc3M9Ikl0ZW0iPgorPGEgaHJlZj0iIiA+CisgPC9hPjwvc3Bhbj4KKwkJCQk8L3RkPgorCQkJCTx0ZCBhbGlnbj0ibGVmdCI+CisJCQkJPGRpdiBpZD0iRGF0ZVRpbWUiPgorCQkJCTxwIGFsaWduPSJsZWZ0Ij4KKwkJCQkmIzE2MTA7JiMxNzA1OyYjMTU4ODsmIzE2MDY7JiMxNTc2OyYjMTYwNzsmIzE1NDg7Jm5ic3A7MTUmbmJzcDsmIzE1NzU7JiMxNTg1OyYjMTU4MzsmIzE2MTA7JiMxNTc2OyYjMTYwNzsmIzE1ODg7JiMxNTc4OyZuYnNwOzEzODcmbmJzcDsgCisJCQkJLSZuYnNwOyZuYnNwOyAKKwkJCQk8c3BhbiBkaXI9Imx0ciI+U3VuZGF5LCBNYXkgMDQsIDIwMDg8L3NwYW4+CisJCQkJPC9kaXY+CisJCQkJPC90ZD4KKwkJCQk8L3RyPgorCQkJCTwvdGFibGU+CisJCQk8L2Rpdj4KKwkJPC90ZD4KKwk8L3RyPgorCTx0cj4KKwkJPHRkIHZhbGlnbj0idG9wIj4KKwkJPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgaWQ9IkNvbnRlbnQiPgorCQkJPHRyPgorCQkJCTx0ZCBjbGFzcz0iUmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0icGFkZGluZy1yaWdodDogNjBweCI+CisJCQkJCTx0YWJsZSB3aWR0aD0iMTAwJSI+CisJCQkJCQk8dHI+CisJCQkJCQkJPHRkIHZhbGlnbj0idG9wIj4KKwkJCQkJCQkJCis8c2NyaXB0PgordmFyIHRncyA9IG5ldyBBcnJheSggJ2RpdicsJ3RkJywndHInLCdhJyk7Cit2YXIgc3pzID0gbmV3IEFycmF5KCAnN3B0JywnOHB0JywnOXB0JywnMTBwdCcsJzExcHQnLCcxMnB0JywnMTNwdCcgKTsKK3ZhciBzdGFydFN6ID0gMTsKKworZnVuY3Rpb24gQ2hhbmdlU2l6ZSggdHJndCxzeiApIHsKKwlpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKSByZXR1cm4KKwl2YXIgZCA9IGRvY3VtZW50LGNFbCA9IG51bGwsaSxqLGNUYWdzOworCQorCWlmICggISggY0VsID0gZC5nZXRFbGVtZW50QnlJZCggdHJndCApICkgKSBjRWwgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0cmd0IClbIDAgXTsKKworCWNFbC5zdHlsZS5mb250U2l6ZSA9IHN6OworCisJZm9yICggaSA9IDAgOyBpIDwgdGdzLmxlbmd0aCA7IGkrKyApIHsKKwkJY1RhZ3MgPSBjRWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRnc1sgaSBdICk7CisJCWZvciAoIGogPSAwIDsgaiA8IGNUYWdzLmxlbmd0aCA7IGorKyApIGNUYWdzWyBqIF0uc3R5bGUuZm9udFNpemUgPSBzejsgLy9zenNbIHN6IF07CisJfQorfQorPC9zY3JpcHQ+CisKKzx0YWJsZSB3aWR0aD0iMTAwJSIgaWQ9Ik5ld3NEZXRhaWwiPgorCTx0cj4KKwkJPHRkIHZhbGlnbj0idG9wIj4KKwkJPGRpdiBjbGFzcz0iTmV3c19JbmZvIj4KKwkJCSYjMTU3ODsmIzE1NzU7JiMxNTg1OyYjMTYxMDsmIzE1ODI7ICYjMTU4MzsmIzE1ODU7JiMxNTgwOzogPGZvbnQgY29sb3I9IiMwMDAwMDAiPiYjMTY3MDsmIzE2MDc7JiMxNTc1OyYjMTU4NTsmIzE1ODg7JiMxNjA2OyYjMTU3NjsmIzE2MDc7JiMxNTQ4OyZuYnNwOzI5Jm5ic3A7JiMxNTc1OyYjMTU4NzsmIzE2MDE7JiMxNjA2OyYjMTU4MzsmbmJzcDsxMzg2IAorCQkJLSBXZWRuZXNkYXksIE1hcmNoIDE5LCAyMDA4PC9mb250PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKKwkJCSYjMTYwNjsmIzE2MDg7JiMxNjEwOyYjMTU4NzsmIzE2MDY7JiMxNTgzOyYjMTYwNzs6IDxmb250IGNvbG9yPSIjMDAwMDAwIj48L2ZvbnQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IAorCQkJJiMxNTgzOyYjMTYwMTsmIzE1OTM7JiMxNTc1OyYjMTU3ODsgJiMxNjA1OyYjMTU4ODsmIzE1NzU7JiMxNjA3OyYjMTU4MzsmIzE2MDc7OiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+MjY4ODwvZm9udD4gCisJCQkmIzE1NzY7JiMxNTc1OyYjMTU4NTsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJiMxNjAzOyYjMTU4Mzs6IDxmb250IGNvbG9yPSIjMDAwMDAwIj4zNDE8L2ZvbnQ+CisJCTwvZGl2PgorCQk8YnI+CisJCTwhLS0KKwkJPGRpdj4mIzE1NzU7JiMxNjA2OyYjMTU4MzsmIzE1NzU7JiMxNTg2OyYjMTYwNzsgJiMxNjAxOyYjMTYwODsmIzE2MDY7JiMxNTc4OzombmJzcDsKKwkJPGEgaHJlZj0iamF2YXNjcmlwdDpDaGFuZ2VTaXplKCdOZXdzQm9keScsJzdwdCcpIj48Zm9udCBzaXplPSIxIj4mIzE3MDU7JiMxNjA4OyYjMTY3MDsmIzE3MDU7PC9mb250PjwvYT4mbmJzcDsKKwkJPGEgaHJlZj0iamF2YXNjcmlwdDpDaGFuZ2VTaXplKCdOZXdzQm9keScsJzEwcHQnKSI+PGZvbnQgc2l6ZT0iMiI+JiMxNjA1OyYjMTU5MzsmIzE2MDU7JiMxNjA4OyYjMTYwNDsmIzE3NDA7PC9mb250PjwvYT4mbmJzcDsKKwkJPGEgaHJlZj0iamF2YXNjcmlwdDpDaGFuZ2VTaXplKCdOZXdzQm9keScsJzEzcHQnKSI+PGZvbnQgc2l6ZT0iMyI+JiMxNTc2OyYjMTU4NjsmIzE1ODU7JiMxNzExOzwvZm9udD48L2E+Jm5ic3A7CisJCTwvZGl2Pi0tPgorCQkKKworCQk8ZGl2IGNsYXNzPSJUaXRyMSI+CisJCQkgPC9kaXY+CisJCTxicj4KKwkJPGRpdiBpZD0iTmV3c0JvZHkiPgorCQkJCisJCQk8ZGl2IGNsYXNzPSJJbWFnZSI+CisJCQkJCisJCQkJPGEgaHJlZj0ic2hvd2ltYWdlLmFzcHg/cGF0aD1GaWxlc19VcGxvYWRcMzAyLkpQRyZXaWR0aD0iIHJlbD0ibGlnaHRib3giIHRpdGxlPSLYtNmH2YrYsSDYqNmE2KfaryI+CisJCQkJPGltZyBzcmM9InNob3dpbWFnZS5hc3B4P3BhdGg9RmlsZXNfVXBsb2FkXDMwMi5KUEcmV2lkdGg9MjIwIiBhbGlnbj0ibGVmdCIgYm9yZGVyPSIxIiAvPgorCQkJCTwvYT48L2Rpdj4KKwkJCTxTVFJPTkc+PEZPTlQgc2l6ZT00PjxGT05UIGNvbG9yPSMwMDAwZmY+2LnaqdizPC9GT05UPiA8Rk9OVCBjb2xvcj0jMDAwMGZmPtmF2K3YtdmI2YQg2YfZhtixINuM2qnbjCDYp9iyINmH2YXaqdin2LHYp9mGINin2LPYqi4g2LHZiNuMINii2YYg2qnZhNuM2qkg2qnZhtivLjwvRk9OVD48L0ZPTlQ+PC9TVFJPTkc+PFMxPiAgPC9kaXY+CisJCTxicj4KKwkJPGRpdiBhbGlnbj0ibGVmdCI+CisJCQk8YSBocmVmPSJwcmludGZyaWVuZGx5LmFzcD9pZD0zNDEiPgorCQkJPGltZyBzcmM9InNoZWxsL1ByaW50RnJpZW5kbHkucG5nIiBib3JkZXI9IjAiPjwvYT4KKwkJCTxhIGhyZWY9IiMiIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdTZW5kTmV3cy5hc3A/UGFnZUlEPTM0MScsJ215V2luJywndG9vbGJhcj1ubyxkaXJlY3Rvcmllcz1ubyxsb2NhdGlvbj1ubyxzdGF0dXM9bm8sbWVudWJhcj1ubyxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9bm8sd2lkdGg9NTAwLCBoZWlnaHQ9MjAwJyk7IHJldHVybiBmYWxzZSI+CisJCQk8aW1nIGJvcmRlcj0iMCIgc3JjPSJTaGVsbC9TZW5kVG9GcmllbmRzLmpwZyIgd2lkdGg9IjE0MCIgaGVpZ2h0PSIzMCI+CisJCQk8L2E+CisJCTwvZGl2PgorCQk8YnI+CisJCTwvdGQ+CisJPC90cj4KKwk8dHI+CisJCTx0ZD4gPGJyIC8+CisJCTxocj48ZGl2CisJCWlkPUNvbW1lbnRzPjx1bD48Yj4mIzE2MDY7JiMxNTkyOyYjMTU4NTsmIzE1NzU7JiMxNTc4OworCQkmIzE3MDU7JiMxNTc1OyYjMTU4NTsmIzE1NzY7JiMxNTg1OyYjMTU3NTsmIzE2MDY7OjwvYj48YnI+PGxpPjxmb250CisJCWNvbG9yPSdibHVlJz7Yrdin2KzbjCDYrNmB2LHYs9mI2YY6PC9mb250Pjxicj48Zm9udCBzaXplPScxJz40LzUvMjAwOCAtCisJCTc6MDg6MDAgUE08L2ZvbnQ+PGJyPtio2Kcg2K/YsdmI2K8g2KjZhyDYtNmF2KcuLi4mbmJzcDvYqNiv2YjZhiDZh9uM2oYg2q/ZiNmG2Ycg2LfZhtiyCisJCdmIINiv2LPYqtqp2KfYsduMINiq2YjYs9i3INit2KfYrNuMINiv2KfbjNuMINmG2YLZhCDYtNiv2Ycg2KfYs9iqINin24zZhiDZh9inINqp2Ycg2K/YsSDYqNuM2KfZhiDYrNiv24wKKwkJ2KfbjNmG2YLYr9ixINi32YbYp9iyINmH2LPYqtmG2K8g2YjYp9uMINio2Ycg2LHZiNiy24wg2qnZhyDYqNiu2YjYp9mH2YbYryDYt9mG2LIg2KjZhtmI24zYs9mG2K8uINio2KjbjNmGCisJCdi02YfbjNixINis2KfZhiDahtmHINqp2LPYp9mG24wg2LPYsSDYrNmI2KfZhtin2YYg2YXYpyDYsdinINio2Kcg2KfYtdmE2KfYrdin2KogOCDYs9in2YQg2q/ZiNmECisJCdmF2KfZhNuM2K/ZhtivLi4g2KfbjNmGINmH2Kcg2LHYpyDYqNiu2YjYp9mG24zYryA6Ojo6Oigo2K/YqNmK2LHZg9mEINmF2KzZhdi5INin2LPZhNin2YXZiiDYqNin2YbZiNin2YYKKwkJ2q/ZgdiqOiDYqNmHINmG2LjYsSDZhdmKJnp3bmo72LHYs9ivINii2YLYp9mKINiu2KfYqtmF2Yog2YLYtdivINmB2KfYtdmE2Ycg2q/YsdmB2KrZhiDYp9iyINiq2YbYr9ix2YjZh9inCisJCdix2Kcg2YbYr9in2LHYryDZiCDYqtinINin2YrZhiDYsdmI2YbYryDYp9iv2KfZhdmHINiv2KfYsdivINmF2Kcg2KjYpyDYqtmG2K/YsdmI2YfYpyDYr9ixINmK2YMg2KfYptiq2YTYp9mBCisJCdi02LHZg9iqINmG2YXZiiZ6d25qO9mD2YbZitmFLiDYqNmHINqv2LLYp9ix2LQg2K7YqNix2Ybar9in2LEg2LPZitin2LPZiiDYrtio2LHar9iy2KfYsdmKINmB2KfYsdiz2IwKKwkJ2YHYp9i32YXZhyDZg9ix2YjYqNmKINiv2KjZitix2YPZhCDZhdis2YXYuSDYp9iz2YTYp9mF2Yog2KjYp9mG2YjYp9mGINi52LXYsSDYp9mF2LHZiNiyINi02YbYqNmHINiv2LEg2KzZhdi5CisJCdiu2KjYsdmG2q/Yp9ix2KfZhiDYsdiz2KfZhtmHJnp3bmo72YfYp9mKINqv2LHZiNmH2Yog2LHZiNmG2K8g2KjYsdqv2LLYp9ix2Yog2KfZhtiq2K7Yp9io2KfYqiDZh9i02KrZhdmK2YYKKwkJ2K/ZiNix2Ycg2YXYrNmE2LMg2LTZiNix2KfZiiDYp9iz2YTYp9mF2Yog2LHYpyDYqtit2YTZitmEINmD2LHYry4g2YjZiiDYttmF2YYg2KjYsdi02YXYsdiv2YYg2YXYsdiy2KjZhtiv2Yog2K7ZiNivCisJCdio2Kcg2KzYsdio2KfZhiDYqtmG2K/YsdmI2Yog2KfYtdmE2KfYrSDYt9mE2Kgg2KfZgdiy2YjYrzog2KfZitmGINmF2Kcg2YbZitiz2KrZitmFINmD2Ycg2KjYpyDYs9iq2KfYryDYp9im2KrZhNin2YEKKwkJ2KfYtdmE2KfYrSDYt9mE2KjYp9mGINin2K7YqtmE2KfZgSDYr9in2LHZitmFINin2YXYpyDYp9mG2K3Ytdin2LHar9ix2Yog2KjYsdiu2Yog2KfYsiDar9ix2YjZhyZ6d25qO9mH2KcKKwkJ2KzYsdmK2KfZhiDYp9i12YTYp9it2KfYqiDYsdinINiv2obYp9ixINin2LIg2YfZhSZ6d25qO9qv2LPYs9iq2q/ZiiDZg9ix2K8uINiv2KfZiNi32YTYqCDZh9i02KrZhdmK2YYg2K/ZiNix2YcKKwkJ2KfZhtiq2K7Yp9io2KfYqiDZhdis2YTYsyDYtNmI2LHYp9mKINin2LPZhNin2YXZiiDYr9ix2KjYp9ix2Ycg2KrYtNmD2YrZhCDYs9iq2KfYryDZhdix2K/ZhdmKINin2LXZhNin2K3Yp9iqINiu2KfYt9ixCisJCdmG2LTYp9mGINmD2LHYrzog2KLZgtin2Yog2K7Yp9iq2YXZiiDYqNmHINiq2YjYtdmK2YcmenduajvZh9inINmIINmG2LjYsdin2Kog2K/ZiNiz2KrYp9mG2LTYp9mGINiq2YjYrNmH2YoKKwkJ2YbYr9in2LHZhtivINmIINin2q/YsSDYp9mK2YYg2KfZhdmD2KfZhiDZiNis2YjYryDYr9in2LTYqiDZg9mHINmH2YXZhyDYrNix2YrYp9mG2KfYqiDYp9i12YTYp9itINi32YTYqCDYstmK2LEKKwkJ2YrZgyDYudmG2YjYp9mGINmB2LnYp9mE2YrYqiDZg9mG2YbYryDYrdiq2YXYpyDYp9iyINii2YYg2KfYs9iq2YLYqNin2YQg2YXZiiZ6d25qO9mD2LHYr9mK2YUg2KfZhdinINio2YcKKwkJ2YbYuNixINmG2YXZiiZ6d25qO9ix2LPYryDZg9mHINii2YLYp9mKINiu2KfYqtmF2Yog2KjYrtmI2KfZh9ivINin2LIg2KrZhtiv2LHZiNmH2Kcg2YHYp9i12YTZhyDYqNqv2YrYsdivINmICisJCdiq2Kcg2KfZitmGINix2YjZhtivINin2K/Yp9mF2Ycg2K/Yp9i02KrZhyDYqNin2LTYryDZhdinINio2Kcg2KrZhtiv2LHZiNmH2Kcg2K/YsSDZitmDINin2KbYqtmE2KfZgSDYtNix2YPYqgorCQnZhtmF2YomenduajvZg9mG2YrZhS4g2YjZiiDYr9ixINmF2YjYsdivINi02LHZg9iqINiq2LTZg9mEINmF2KrYqNmI2Lkg2K7ZiNivINiv2LEg2YXYsdit2YTZhyDYqNi52K/ZigorCQnYp9mG2KrYrtin2KjYp9iqINmF2KzZhNizINqv2YHYqjog2KjYsdiu2Yog2KfYsiDZg9in2YbYr9mK2K/Yp9mH2KfZiiDZhtiy2K/ZitmDINio2Ycg2YXYpyDYqNmHINmF2LHYrdmE2Ycg2K/ZiNmFCisJCdin2YbYqtiu2KfYqNin2Kog2LHYp9mHINmK2KfZgdiq2YcmenduajvYp9mG2K8g2Ygg2YXYpyDYqNinINiq2YXYp9mFINiq2YjYp9mGINiv2LEg2KfZitmGINmF2LHYrdmE2Ycg2KfYsgorCQnYotmG2YfYpyDYr9mB2KfYuSDYrtmI2KfZh9mK2YUg2YPYsdivLiDZg9ix2YjYqNmKINiq2KfZg9mK2K8g2YPYsdivOiDar9ix2YjZh9mKINin2YbYrdi12KfYsdqv2LEg2KjYpworCQnYp9mC2K/Yp9mF2KfYqiDYutmK2LHYudmC2YTYp9mG2Yog2Ygg2KrZhtiv2LHZiNmKJnp3bmo72YfYp9mKINiu2YjYryDYp9iq2YjYqNmI2LMg2KfYtdmE2KfYrdin2Kog2LHYpyDYr9ixINiv2LHZhworCQnYs9ix2Ybar9mI2YYg2YPYsdiv2YbYrykpKSkg2YTYt9mB2Kcg2b7bjNiv2Kcg2qnZhtuM2K8g2b7Ysdiq2YLYp9mEINmB2LHZiNi0INix2KcuLi4uLi7ZiNin2YLYudinINin24zZhgorCQnZh9inINmF24wg2K7ZiNin2YfZhtivINiv2YjYqNin2LHZhyDZiNin2LHYryDZhdis2YTYsyDZiCDYr9mI2YTYqiDYtNmI2YbYry4uLi4u2KfZiNmI2YjZiNmI2YjZiNmI2YjZiNmI2YjZiNmI2YgKKwkJ2YTYp9mE2KfZhNin2YTYp9mE2KfZhNinLi4uLi4uLi7ZhtmHISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEg2KfZhNio2KrZhyDYp9uM2YYKKwkJ2YXYrNmF2Lkg2KjYp9mG2YjYp9mGINio24zYtNiq2LEg2KjZhyDYs9mB2LHZhyDZh9in24wg2YbYsNixINmIINiz2KjYstuMINm+2KfaqSDaqdix2K/ZhiDZh9in24wg2K7ZiNmG2YcKKwkJ2YXYp9mF2KfZhiDYqNiy2LHaryDZiCDYrtin2YTZhyDYstmG2qkg2KjYp9iy24wg2YfYp9uMINi52LXYsSDZgtin2KzYp9ix24zZhyDZiCDZhdis2YTYsyDZvtinINiq2K7YqtuMINmICisJCdit2YbYpyDYqNmG2K/ZiNmGINi52LHZiNizINi02KjYp9mH2Kog2K/Yp9ix2K8uINmF2YfZhtiv2LMg2KzYp9mGINqv2YjbjNinINmF2Kcg2KfYsiDYr9iz2Kog2KfbjNmGIC4uLi7ZiAorCQnYuduM2KfZhNi0INio2KfbjNivINio2LHZiNuM2YUg2q/ZiNi02Ycg2YfZhdin2YYg2KfYqNiv2KfYsdiu2KfZhtmHINmIINi02KfYutmE2KfZhSDZiCDahtin24zbjAorCQnYr9uM2LTZhNmF2YcuLi4u2LTZhdinINiq2LTYsduM2YEg2YbZhduMINii2YjYsduM2K/YnzwvbGk+PGJyPjxicj48bGk+PGZvbnQgY29sb3I9J2JsdWUnPtiz24zYp9mI2LQ6PC9mb250Pjxicj48Zm9udCBzaXplPScxJz40LzMvMjAwOCAtIDk6Mjg6MDAgUE08L2ZvbnQ+PGJyPtmF2LHYryDZh9iy2KfYsSDahtmH2LHZhyDZhdix2K8g2YfYstin2LEg2obZh9ix2Ycg2qnbjNiz2KrYn9i02K7YtduM2KrbjCDYs9in2K7YqtmHINmIINm+2LHYr9in2K7YqtmHINmF2YfYsdin2YYg2YXYr9uM2LHbjNiMINm+24zZhdin2YYg2YLYp9iz2YUg2K7Yp9mG24wg2Ygg2K/bjNqv2LEg2YbZiNuM2LPZhtiv2q/Yp9mG2J8g2KrZhtmH2Kcg2YfYr9mB2LQg2KLZhtiz2Kog2qnZhyDahtmG2K8g2LHZiNiyINiq2LnYt9uM2YTYp9iq2Iwg2YXYp9ix2Kcg2LPYsdqv2YUg2qnZhtivINmIINiv24zar9ixINmH24zahtifINmF2LHYryDZh9iy2KfYsSDahtmH2LHZhyDbjNqpINi32YbYsiDYp9iz2Kog24zaqSDYt9mG2LIg2KrZhNiu2Iwg2KjYsdiv2KfYtNiq24wg2YjYp9mC2LnbjCDYp9iyINis2KfZhdi52Ycg2KfbjNix2KfZhtuMLiDZhdmGINis2YjYp9mG2YUg2b7YsyDYr9ix2K/Yoti02YbYp9uMINis2YjYp9mG2KfZhtmFINmIINiu2YjYryDYsdinINio2Kcg2K7ZiNivINmIINiv24zar9ixINis2YjYp9mG2KfZhiDYt9ix2YEg2YXbjCDaqdmG2YUg2KjYs9uM2KfYsSDYp9mG2K8g2KzZiNin2YbYp9mG24wg2qnZhyDZhdi12K/Yp9mCINmF2LHYryDZh9iy2KfYsSDahtmH2LHZhyDZh9iz2KrZhtivINis2YjYp9mG2KfZhtuMINiz2YjYr9inINiy2K/ZhyDbjNinINio2Ycg2YLZiNmEINiu2YjYryDZhdiz2LnZiNivICZxdW90O9is2Ygg2q/bjNixJnF1b3Q7INqp2Ycg2YfYsSDYqNinINmF2K3YtdmI2YTbjCDaqdmH2YbZhyDYsdinINio2Kcg2KrYudix24zZgduMINis2K/bjNivINio2Ycg2KLZhtmH2Kcg2KfYsdin2KbZhyDaqdmG2YbYryDahtmG2KfZhiDYqNinINiq2YXYp9mFINmIINis2YjYryDZhduMINm+2LDbjNix2YbYryDaqdmHINqv2YjbjNuMINix2KfZhyDZgdin2KbZgiDYotmF2K/ZhiDYqNixINiq2YXYp9mFINmF2LTaqdmE2KfYqti02KfZhiDYsdinINuM2KfZgdiq2Ycg2KfZhtivINmIINmF24wg2K7YsdmG2K/YjCDYrtmI2KfZhyDYp9uM2YYg2KrYrdmB2Ycg2KrYptmI2LHbjCDYqNixINqv2LHZgdiq2Ycg2KfYsiDYqtmB2qnYsdin2Kog2K7YtNqpINmIINmB2LPbjNmE24wg2q/YsdmI2YfbjCDYqNin2LTYryDbjNinINmF2K/ZhCDZhdmE24zYrNqpINmI2KfYsSDZhNio2KfYs9uMINiv2LEg2b7YtNiqINmI24zYqtix24zZhiDZgdix2YjYtNqv2KfZhy4g2YXZh9mFINmG24zYs9iqINqG2Ycg2KjYp9i02K8hINmF2YfZhSDZhtuM2LPYqiDYr9mE24zZhCDYp9mG2KrYrtin2KjYtCDahtmHINio2KfYtNivISDZhdmH2YUg2YbbjNiz2Kog2YbYqtuM2KzZhyDYp9uM2YYg2KfZhtiq2K7Yp9ioINqG24zYs9iqISDYqtmG2YfYpyDZhdmH2YUg2KfYs9iqINqp2Ycg2YXbjCDar9mI24zZhtivINin2LIg2KfbjNmGINi32LHZgSDYqNmB2LHZhdin2KbbjNivIdit2KfZhCDYp9uM2YYg2KjZgdix2YXYp9im24zYryDahtmHINmF2LnZhtin24zbjCDYr9in2LHYryDYqNin2LIg2YfZhSDZhdmH2YUg2YbbjNiz2KohISEg2YjYp9uMINio2LEg2YXYpyDaqdmHINmG2Ycg2K7ZiNivINix2Kcg2YXbjCDYtNmG2KfYs9uM2YUg2Ygg2YbZhyDYr9ixINis2YfYqiDYtNmG2KfYrtiqINiu2YjbjNi0INmC2K/ZhSDZhduMINqv2LDYp9ix24zZhS4g2YjYp9uMINio2LEg2YXYpyDaqdmHINiv24zar9ixINit2KrbjCDZhtiv2KfbjCDYr9ix2YjZhiDYrtmI24zYtCDYsdinINmG2YXbjCDYqtmI2KfZhtuM2YUg2KjYtNmG2YjbjNmFLiDZiNin24wg2KjYsSDZhdinINqp2Ycg2YbZhduMINiv2KfZhtuM2YUg2obZhyDZhduMINiu2YjYp9mH24zZhSDZiCDZh9ixINio2KfYsSDaqdmHINqG24zYstuMINmF24wg2K7ZiNin2YfbjNmFINmIINiv2LEg2YXYs9uM2LEg2YjYtdin2YQg2b7YpyDZhduMINqv2LDYp9ix24zZhSDYqNmHINmF24zYp9mG2Ycg2LHYp9mHINmG2LHYs9uM2K/ZhyDahtmG2KfZhiDZhdis2LDZiNioINiy2LHZgiDZiCDYqNix2YIg2LHYp9mH2YfYp9uMINiv24zar9ixINmF24wg2LTZiNuM2YUg2qnZhyDZhdio2K/YpyDZiCDZhdmC2LXYryDYsdinINuM2qnYrNinINmB2LHYp9mF2YjYtCDZhduMINqp2YbbjNmFLiDZiNin24wg2KjYsSDZhdinINqp2Ycg2YbZhduMINiq2YjYp9mG24zZhSDYr9ixINio2LHYp9io2LEg2YfYsSDYotmG2obZhyDYr9ixINmF2YLYp9io2YQg2KfZhtiz2KfZhtuM2Kog2YXYpyDYp9uM2LPYqtin2K/ZhyAmcXVvdDvZhtmHJnF1b3Q72Kjar9mI24zbjNmFLiDYr9ix2LPYqiDYp9iz2Kog2qnZhyDZhdinINis2YjYp9mG2KfZhiDYqNmHINiq2YbZh9in24zbjCDZhdmC2LXYsSDZhtuM2LPYqtuM2YUg2KfZhdinINqG2YjZhiDYtNix2YjYuSDYqtmC2LXbjNix24zZhSDZvtizINmF24wg2KrZiNin2YbbjNmFINin2LIg2KfYqNiq2K/YpyDZhdin2YbYuSDZhdi02qnZhCDZh9mFINio2KfYtNuM2YUuINio2Kcg2KfYrdiq2LHYp9mFINiz24zYp9mI2LQ8YnI+CismbmJzcDs8YnI+Cis8Zm9udCBjb2xvcj0iIzgwMDAwMCI+2KjYs9uM2KfYsSDYstuM2KjYpyDYs9uM2KfZiNi0INis2KfZhi4g2K/YsdmI2K8g2KjYsSDYqtmILiDYtNmH24zYsTwvZm9udD48L2xpPjxicj48YnI+PGxpPjxmb250IGNvbG9yPSdibHVlJz7Yp9it2LPYp9mGIF9fINiu2Lcg2LPZiNmFOjwvZm9udD48YnI+PGZvbnQgc2l6ZT0nMSc+NC8zLzIwMDggLSA4OjIxOjAwIFBNPC9mb250Pjxicj7YqNinINiz2YTYp9mFINmIINin2K/Yp9uMINin2K3Yqtix2KfZhSDZiNqp2LPYqCDYp9is2KfYstmHINin2LIg2LTZh9uM2LEg2LnYstuM2LIgLiDYp9iyINi52YXYp9ivINis2KfZhiDYudiy24zYstmFINio2K7Yp9i32LEg2LLYrdmF2KrbjCDaqdmHINqp2LTbjNiv2YbYryDZiCDYp9i32YTYp9i52KfYqiDYrtmI2KjbjCDaqdmHINiv2KfYr9mG2K8g2Iwg2KjZhyDYs9mH2YUg2K7ZiNiv2YUg2KrYtNqp2LEg2YXbjCDaqdmG2YUgLiDYqNinINqp2YXYp9mEINi02LHZhdmG2K/ar9uMINin2LIg2KfbjNmG2qnZhyAmcXVvdDvYqNiv2YjZhiDZh9mF2KfZh9mG2q/bjCZxdW90OyDZiCAmcXVvdDsg2KfYrNin2LLZhyDYp9uMINmC2KjZhNuMINi02YXYpyZxdW90OyDZiCAmcXVvdDvYqNiz2LHYudiqJnF1b3Q7INiMINmF2LnYr9mI2K8g2KfYtNiq2KjYp9mH2KfYqiDYqtin24zZvtuMINix2Kcg2qnZhyDYqNinINiq2YjYrNmHINio2Ycg2K3YrNmFINmF2LfZhNioINiMINin2YXYsduMINqp2KfZhdmE2Kcg2KfYrNiq2YbYp9ioINmG2KfZvtiw24zYsSDYp9iz2Kog2Iwg2LPYuduMINqp2LHYr9mFINqp2Ycg2KfYtdmE2KfYrSDaqdmG2YUg2Iwg2KfYsiDYtNmF2Kcg2b7ZiNiy2LQg2YXbjCDYrtmI2KfZh9mFIC4g2KfZhNio2KrZhyDYudmF2KfYryDYrNin2YYg2LnYstuM2LLZhSDYjCDYqNivINmG24zYs9iqINio2K/Yp9mG24zYryDaqdmHINiv2LEg2YXbjNiy2KfZhiDYp9i02KrYqNin2Ycg2K/YsSDYqtin24zZviDZh9ix2q/YsiDYqNmHINm+2KfbjCDYqNmG2K/ZhyDZhtiu2YjYp9mH24zYryDYsdiz24zYryAhINi02KfZh9ivINin2K/Yudin24wg2K3ZgtuM2LHYjCDYtNmH24zYsSDZiCDYrdiz24zZhiDYrNin2YYg2LnYstuM2LLZhSDZh9iz2KrZhtivINqp2Ycg2K7YqNix2K/Yp9ix2YbYryDaqdmHINqG2q/ZiNmG2Ycg2KjZhtiv2Ycg2K/YsSDbjNqpINmB2YLYsdmHINi52YXZhNuM2KfYqiDYqtin24zZviDYjCDYr9mIINi12YHYrdmHINin24wg2qnYp9mF2YQg2LHYpyDYrNinINin2YbYr9in2K7YqtmFICEhISDaqdin2YHbjCDYp9iz2Kog2KjZvtix2LPbjNivINiMINiv2LEg2YbZh9in24zYqiDYtdiv2KfZgtiqINiMINio2LEg2KfbjNmGINix2qnZiNix2K8g2KjbjCDZhti424zYsSDZiCDYqtin2LHbjNiu24wg2LTZh9in2K/YqiDYrtmI2KfZh9mG2K8g2K/Yp9ivICEg2KjYp9iyINmH2YUg2KfYsiDYstit2YXYp9iqINi52YXYp9ivINis2KfZhiDZiCDZhtuM2LIg2LPZiNin2YTYp9iqINiu2YjYqCDYrdiz24zZhiDYrNin2YYg2KrYtNqp2LEg2YXbjCDaqdmG2YUg2qnZhyDYp9mGINmI2LnYr9mHINin24wg2YXZgtin2YTZhyDYp9uMINi524zYr9in2YbZhyDYp9uMINmF2YHYtdmEINi02YfbjNixINix2Kcg2K/YsSDYqNin2LHZhyDYp9uMINiy2YbYr9mHINuM2KfYryDZhdix2K3ZiNmFINmF2LXYr9mCINiMINiv2LEg2YjYs9i5INiu2YjYryDYqNis2KfbjCDYp9mI2LHYr9mG2K8gLiDYttmF2YYg2KfZhtqp2Ycg2YfbjNqG2qnYr9in2YUg2KfYsiDYr9mI2LPYqtin2YbYjCDYp9uM2YYg2LLYrdmF2Kog2KfYsdiy2LTZhdmG2K8g2LnZhdin2K8g2KzYp9mGINix2Kcg2K/ZhNuM2YQg2KfZhiDZhtiu2YjYp9mH2YbYryDYr9in2YbYs9iqINqp2Ycg2LTZh9uM2LHYudiy24zYsiDYqNi52K8g2KfYsiDYqNin2LLar9i02Kog2KfYsiDZhdiz2KfZgdix2Kog2Iwg2LPYsSDZgdix2LXYqiDZiNi52K/ZhyDYp9uMINiu2YjYryDYsdinINi52YXZhCDZhtqp2YbZhtivIC4g2YXYtNiq2KfZgtin2YbZhyDYp9mF2Kcg2YbZhyDYudis2YjZhNin2YbZhyDYjCDZhdmG2KrYuNixINmF2YLYp9mE2Ycg2KfbjCDYtNmH24zYsSDZh9mFINiu2YjYp9mH24zZhSDZhdin2YbYry4g2KjYpyDYp9it2KrYsdin2YUgOiDYp9it2LPYp9mGPGJyPgorJm5ic3A7PGJyPgorPGZvbnQgY29sb3I9IiM4MDAwMDAiPtin2K3Ys9in2YYg2KzYp9mG2Iwg2YXZhiDZgdqp2LEg2qnYsdiv2YUg2YLYttuM2Ycg2LTYp9mF2YQg2YXYsdmI2LEg2LLZhdin2YYg2LTYr9mHINin2LPYqi4g2KrYpyDYp9mF2LHZiNiyINqp2Ycg2YbYsdiz24zYr9mHINin2YUg2K/Ys9iqINio2Ycg2KfbjNmGINm+2LHZiNqY2Ycg2KjYstmG2YUuINin2q/YsSDYudi02YIg2KjZhyDYrdmB2Lgg2KfYsdiq2KjYp9i3INio2Kcg2LTZhdinINmH2Kcg2YbYqNmI2K8g2KrYpyDYsdmI2LIgMjUg2KfZvtix24zZhCDYqNmHINiu2YjYr9mFINmF2LHYrti124wg2YXbjCDYr9in2K/ZhS4g2K/YsSDYp9uM2YYg2LPZgdixINiu2K/YpyDZhduMINiv2KfZhtivINqG2YbYryDZh9iy2KfYsSDZhdin24zZhCDYr9ixIDMg2YLYp9ix2Ycg2LHYpyDZvtuM2YXZiNiv2Ycg2KfZhS4g2KfYsiDZvtmI2LPYqiDaqdmE2YHYqiDYrtmI2K/ZhSDYr9ixINi52KzYqNmFINqp2Ycg2obYt9mI2LHbjCDYqtmI2YbYs9iq2YUg2KfYrtio2KfYsSDYsdinINiv2YbYqNin2YQg2qnZhtmFINmIINqG2YbYryDZhdmC2KfZhNmHINqp2YjYqtin2Ycg2KjZhtmI24zYs9mFLiDar9ix2YHYqtin2LHbjCDYstuM2KfYryDYqNmI2K8uINi02YfbjNixPC9mb250PjwvbGk+PGJyPjxicj48bGk+PGZvbnQgY29sb3I9J2JsdWUnPti52YXYp9ivINuy27Qg2LPYp9mE2Ycg2KfYsiDYp9i12YHZh9in2YY6PC9mb250Pjxicj48Zm9udCBzaXplPScxJz40LzMvMjAwOCAtIDc6MTQ6MDAgUE08L2ZvbnQ+PGJyPti02YfZitixINis2KfZhiDYp9qv2LEg2LfZiNmE2KfZhtuMINi02K8g2KjYqNiu2LTZitivINqG2KfYsdmHINin24wg2YbYqNmI2K8g2KfYrdiz2KfZhiDYrNin2YYg2KfYsiDaqdmF2qkg2LTZhdinINmG2YrYsiDYr9ixINmI2YrYsdin2YrYtCDYp9mK2YYg2YXYt9mE2Kgg2YXYqti02qnYsdmFINin2YXZitiv2YjYp9ix2YUg2K3Ys9mK2YYg2LnYstuM2LIg2YbZitiyINix2KfYttuMINio2KfYtNivPGJyPgorJm5ic3A7PGJyPgorPGZvbnQgY29sb3I9IiM4MDAwMDAiPtmF2YXZhtmI2YYg2KfYsiDYstit2YXYqtuMINqp2Ycg2qnYtNuM2K/bjCDYudmF2KfYryDYrNin2YYuINi02YfbjNixPC9mb250PjwvbGk+PGJyPjxicj48bGk+PGZvbnQgY29sb3I9J2JsdWUnPtit2LPbjNmGOjwvZm9udD48YnI+PGZvbnQgc2l6ZT0nMSc+NC8zLzIwMDggLSA3OjA0OjAwIFBNPC9mb250Pjxicj7Ys9mE2KfZhSDYotmC2Kcg2LTZh9uM2LEg2KjYpyDYp9is2KfYstmHINi02YXYpyDYrtmI2KfYs9iq2YUg2KfYsiDYudmF2KfYryDYudiy24zYsiDZiNmH2YXahtmG24zZhiDYs9ix2YjYsSDYqNiy2LHar9mI2KfYsSDYotmC2KfYp9it2LPYp9mGINiq2LTaqdixINqp2YbZhSDZiNio2Ycg2KLZgtinINi52YXYp9iv2Kjar9mI24zZhSDYr9iz2KrYqiDYr9ix2K8g2YbaqdmG2Ycg2KjYp9io2Kog2LLYrdmF2KrYqiDZiNmB2YjZgiDYp9mE2LnYp9iv2Ycg2LnYp9mE24wg2KjZiNivLtmC2LPZhdiq24wg2qnZhyDZhtmI2LTYqtuM2K8iINiu2YjYryDYr9qp2KrYsSDZhdi12K/ZgiDYr9ixINiq2YLYsduM2LHYp9iq2LTYp9mGINio2Ycg2KfYtNiq2KjYp9mHINio2YjYr9mGINiq2LXZhduM2YXYtNin2YYg2YXYqNmG24wg2KjYsSDYp9iz2KrYudmB2KfYoSDYp9mC2LHYp9ixINmF24wg2qnZhtmG2K8i2YjYp9mC2LnYpyDYrNin2YTYqCDZiNit2KfaqduMINin2LIg2LHZiNitINio2YTZhtivINiv2qnYqtixINmF2LXYr9mCINmH2LPYqiAu2KjYp9in24zZhtqp2Ycg2LPZiNin2YTYp9iqINiu2LHYryDZiNix24zYsiDYstuM2KfYryDZh9iz2Kog2KfZhdinINin2LIg2KfbjNmG2qnZhyDYqNmHINiz2YjYp9mE2KfYqiDYudmF2K/ZhyDZhdmGINio2Kcg2KrZiNis2Ycg2KjZhyDaqdiq2KfYqCDYr9qp2KrYsSDZhdi12K/ZgiDZvtin2LPYriDYr9in2K/bjNivINio2KfYstmH2YUg2KrYtNqp2LEg2YXbjNqp2YbZhSAu2YXbjNiu2YjYp9iz2KrZhSDYp9uM2YYg2b7Yp9iz2K4g2LHYpyDYqNix2KfbjCDZhtmI24zYs9mG2K/ZhyDZhdmC2KfZhNmHINix2KzYp9mG24zZiNiyIGNvcHkmcGFzdGUgPGJyPgor2qnZhtmFINqv2YHYqtmFINi02KfbjNivINmH2LHahtmG2K8g2KjZhyDYp9it2KrZhdin2YQg2LbYuduM2YEg2KjYsdin24wg2LPYp9uM2Kog2K/ZiNiz2Kog2K/Yp9i02KrZhtuMINii2YLYpyDYtNmH24zYsSDZhdi02qnZhNuMINm+24zYtAor2KLbjNivLtiu2YjYp9iz2KrZhSDYqNinINit2LDZgSDZhtin2YUg2KLZgtinINi02YfbjNixINmI2LTZhdinINin2LIg2qnYp9mF2YbYqiDYp9uM2Ybaqdin2LEg2LHYpyDYqNqp2YbZhSDYp9it2KrZhdin2YQg2K/Yp9iv2YUg2LHYp9i224wKK9mG2KjYp9i024zYryAu2KjZhtin2KjYsdin24zZhiDZgdi52YTYpyDYudmE24zYsdi62YUg2YXbjNmEINmB2LHYp9mI2KfZhiDYp9iyINin24zZhtqp2KfYsSDYtdix2YEg2YbYuNixINqp2LHYr9mFIC7YqNmH2LHYrdin2YQg2KjYp9iy2YfZhQor2YXZhdmG2YjZhiDZiNmF2KrYtNqp2LEgIDwvbGk+PGJyPjxicj48bGk+PGZvbnQgY29sb3I9J2JsdWUnPtit2KfYrNuMINis2YHYsdiz2YjZhjo8L2ZvbnQ+PGJyPjxmb250CitzaXplPScxJz40LzMvMjAwOCAtIDY6MDY6MDAgUE0gRk9PITwvZm9udD48YnI+2KjYpyDYr9ix2YjYryDYp9iyINmC2K/bjNmFINqv2YHYqtmHINin2YbYryDaqdmHINuM2qkg2qnZhNmF2Ycg2YfZhSDYp9iyINmF2KfYr9ixINi52LHZiNizINio2LTZhtmI24zYry4g2KjZhtin2KjYsdin24zZhiDYqNmHINin2YHYp9i22KfYqiDYp9iu24zYsSDaqdi02YjYsSDYr9mI2LPYqiDZiCDYqNix2KfYr9ixINmIINiz2YjYs9uM2KfZhNuM2LPYqiDahtuM2YYg2LnYstuM2LIg2Ygg2KzYp9mGINis2KfZhtin2YYg2qnZhdmI2YbbjNiz2Kog2LnZhtin24zYqiDYqNmB2LHZhdin24zbjNivOiDYsdin2K/bjNmIINmB2LHYr9inOiDYr9mK2b7ZhNmF2KfYqiDZh9inINiv2LEg2YjZitmGINqv2YHYqtmHINin2YbYrzog2qnZhyDahtmK2YbYjCDYp9iyINmF2K7Yp9mE2YHYp9mGINiq2LTYr9mK2K8g2KrYrdix2YrZhSDZh9in24wg2KfZitix2KfZhiDYr9ixINi02YjYsdin24wg2KfZhdmK2YbYqtiMINin2LfZhNin2LnYp9iqINiu2YjYryDYr9ix2KjYp9ix2Ycg2KfYsdiq2KjYp9i3INio2LHZhtin2YXZhyDZh9iz2KrZhyDYp9uMINiq2YfYsdin2YYg2KjYpyDYqtmE2KfYtCDYqNix2KfbjCDYr9iz2KrZitin2KjbjCDYs9mE2KfYrSDYp9iq2YXbjCDYsdinINiv2LEg2KfYrtiq2YrYp9ixINii2pjYp9mG2LMg2KjZitmGINin2YTZhdmE2YTbjCDYp9mG2LHamNuMINin2KrZhduMINmC2LHYp9ixINiv2KfYr9mHINin2LPYqi4g2KfZhNi52KzYqCEhISEhISDYp9mG2KrYrtin2KggOtio2Kcg2YjYrNmI2K8g2KfbjNmG2qnZhyDahtuM2YYg2KjZhyDYtNiv2Kog2KjYpyDYqtit2LHbjNmF2YfYp9uMINi02YjYsdin24wg2KfZhdmG24zYqiDYs9in2LLZhdin2YYg2YXZhNmEINi52YTbjNmHINin24zYsdin2YYg2YXYrtin2YTZgdiqINmF24wg2qnYsdiv2Iwg2KfYt9mE2KfYudin2KrbjCDYr9ixINix2KfYqNi32Ycg2KjYpyDZgdi52KfZhNuM2KrZh9in24wg2YfYs9iq2Ycg2KfbjCDYp9uM2LHYp9mGINiv2LEg2KfYrtiq24zYp9ixINmF2YLYp9mF2KfYqiDYotqY2KfZhtizINio24zZhiDYp9mE2YXZhNmE24wg2KfZhtix2pjbjCDYp9iq2YXbjCDZgtix2KfYsSDYr9in2K/ZhyDaqdmHINio2LEg2KfYs9in2LMg2KLZhiDYp9uM2LHYp9mGINiv2LEg2KrZhNin2LQg2KjYsdin24wg2K/Ys9iqINuM2KfYqNuMINio2Ycg2LPZhNin2K0g2YfYp9uMINin2KrZhduMINin2LPYqi4g2KjZhyDar9iy2KfYsdi0INiu2KjYsdmG2q/Yp9ixINiz2LHZiNuM2LMg2KjbjNmGINin2YTZhdmE2YQg2K7YqNix2q/Ystin2LHbjCDYp9mG2KrYrtin2Kgg2KjZhyDZhtmC2YQg2KfYsiDZgdin2qnYsyDZhtuM2YjYstib2KzYp9mGINio2YjZhNiq2YjZhiDYjNmG2YXYp9uM2YbYr9uAINm+24zYtNuM2YYg2KfbjNin2YTYp9iqINmF2KrYrdiv24Ag2KfZhdix24zaqdinINiv2LEg2LPYp9iy2YXYp9mGINmF2YTZhNiM2K/YsSDYp9uM2YYg2KjYp9ix2Ycg2q/ZgdiqOiDYp9mC2K/Yp9mFINin24zZhtqG2YbbjNmG24wg2KfYsiDYs9mI24wg2obbjNmGINio2Ycg2K/ZhNuM2YQg2LHZiNin2KjYtyDZhti42KfZhduMINqp2Ycg2YXbjNin2YYg2K/ZiCDaqdi02YjYsSBb2KfbjNix2KfZhiDZiCDahtuM2YZdINio2LHZgtix2KfYsSDYp9iz2KrYjCDYqNiz24zYp9ixINmC2KfYqNmEINiq2YjYrNmHINin2LPYqi4g2K7YqNix2Ybar9in2LEg2KfZhtiq2K7Yp9ioINmF24wg2KfZgdiy2KfbjNiv2Jsg2K/YsSDYrdin2YTbjCDahtuM2YYg2KjZhyDYp9uM2YYg2KfZgtiv2KfZhSDYr9iz2Kog2LLYr9mHINin2LPYqiDaqdmHINmH2YXaqdin2LHbjCDZh9in24wg2KrYrNin2LHbjCDZiCDZhti42KfZhduMINin24zYsdin2YYg2KjYpyDYp9uM2YYg2qnYtNmI2LEg2KjYt9mI2LEg2KjbjCDYs9in2KjZgtmHINin24wg2KfZgdiy2KfbjNi0INuM2KfZgdiq2Ycg2KfYs9iqLiDbjNinINio2KfYqCDYp9mE2K3ZiNin2KbYrCEhISEhINix2KfYr9uM2Ygg2LLZhdin2YbZhzog2obbjNmGINio2Kcg2YjYrNmI2K8g2YXYrtin2YTZgdiqINio2Kcg2KrYrdix24zZhSZ6d25qO9mH2KfbjCDYtNiv24zYryDYtNmI2LHYp9uMINin2YXZhtuM2Kog2LnZhNuM2Ycg2KrZh9ix2KfZhtiMINin2LfZhNin2LnYp9iq24wg2K/Ysdio2KfYsdmHINiq2YTYp9i0Jnp3bmo72YfYp9uMINiq2YfYsdin2YYg2KjYsdin24wg2LPYp9iu2Kog2KrYs9mE24zYrdin2Kog2YfYs9iq2YcmenduajvYp9uMINio2Ycg2KLamNin2YbYsyDYqNuM2YYmenduajvYp9mE2YXZhNmE24wg2KfZhtix2pjbjCDYp9iq2YXbjCDYp9ix2KfYptmHINqp2LHYr9mHINin2LPYqi4g2KLYs9mI2LTbjNiq2K/Zvtix2LMg2KjYpyDYp9i52YTYp9mFINin24zZhiDYrtio2LEg2KjZhyDZhtmC2YQg2KfYsiDahtmG2K8g2K/bjNm+2YTZhdin2Kog2KLYtNmG2Kcg2KjYpyDZvtix2YjZhtiv2Ycg2YfYs9iq2YcmenduajvYp9uMINin24zYsdin2YYg2YbZiNi02KrYjCDZvtqp2YYg2KjZhyDZh9mF2LHYp9mHINmF2LPaqdmIINmH2YXZiNin2LHZhyDYqNixINiz2LEg2LHYp9mHINi02YjYsdin24wg2KfZhdmG24zYqiDZiCDYp9mF2LHbjNqp2Kcg2KjYsdin24wg2KfYudmF2KfZhCDZhdis2KfYstin2Kog2YfYp9uMINiz2K7YqiDYqtixINi52YTbjNmHINiq2YfYsdin2YYg2KjZhyDYr9mE24zZhCDZhdmC2KfZiNmF2Kog2YfYs9iq2Ycg2KfbjCDYp9uM2YYg2qnYtNmI2LEg2KjZhyDYtdmI2LHYqiDbjNqpINmF2KfZhti5INi52YXZhCDaqdix2K/ZhyZ6d25qO9in2YbYry4g2KfbjNmGINqv2LLYp9ix2LQg2YXbjCDYp9mB2LLYp9uM2K/YjCDYqti12YXbjNmFINqG24zZhiDYqNix2KfbjCDYp9ix2KfYptmHINin2LfZhNin2LnYp9iq24wg2KzZh9iqINin2LPYqtmB2KfYr9mHINiv2LEg2KrYrdmC24zZgtin2Kog2KLamNin2YbYsyDYp9mG2LHamNuMINin2KrZhduMINiv2LHYqNin2LHZhyDYqNix2YbYp9mF2Ycg2KrYs9mE24zYrdin2Kog2YfYs9iq2YcmenduajvYp9uMINin24zYsdin2YbYjCDar9mI24zYp9uMINin2YHYstin24zYtCDZhtin2LHYttin24zYqtuMINio24zZhiZ6d25qO9in2YTZhdmE2YTbjCDYr9ix2KjYp9ix2Ycg2KjYsdmG2KfZhdmHINmH2LPYqtmHJnp3bmo72KfbjCDYrNmF2YfZiNix24wg2KfYs9mE2KfZhduMINin2LPYqiDaqdmHINit2KrbjCDYqtmE2KfYtCDYqNix2KfbjCDYs9in2K7YqiDahtmG24zZhiDYqtiz2YTbjNit2KfYqtuMINix2Kcg2YbbjNiyINiq2qnYsNuM2Kgg2YXbjCZ6d25qO9qp2YbYry4g2KjYsSDYp9iz2KfYsyDYp9uM2YYg2q/Ystin2LHYtNiMINiv2Ygg2K/bjNm+2YTZhdin2Kog2KjZhNmG2K/Zvtin24zZhyDaqdmHINin2LHYqtio2KfYtyDZhtiy2K/bjNqp24wg2KjYpyDYotqY2KfZhtizINio24zZhiZ6d25qO9in2YTZhdmE2YTbjCDYp9mG2LHamNuMINin2KrZhduMINiv2KfYsdmG2K8g2KfbjNmGINin2YLYr9in2YUg2obbjNmGINix2Kcg2KjYsdmF2YTYpyDaqdix2K/ZhyZ6d25qO9in2YbYry4g2KLamNin2YbYsyDYqNuM2YYmenduajvYp9mE2YXZhNmE24wg2KfZhtix2pjbjCDYp9iq2YXbjCDYp9iyINin2LjZh9in2LEg2YbYuNixINiv2LEg2KfbjNmGINio2KfYsdmHINiu2YjYr9iv2KfYsduMINqp2LHYr9mHINin2LPYqi4g2KfZhNi52KzYqC4g2YXZhiDZhdin2YXZiNixINmIINmF2LnYsNmI2LEuLtit2KfZhNinINin2LIg2b7Yr9ixINi52LHZiNizINqG2YbYryDaqdmE2YXZhyDYqNi02YbZiNuM2K86INiz2K7Zhtqv2YjbjCDYotqY2KfZhtizINio24zZhiDYp9mE2YXZhNmE24wg2KfZhtix2pjbjCDYp9iq2YXbjCDYp9iv2LnYp9uMINio2LHYrtuMINin2LIg2LHYs9in2YbZhyDZh9in24wg2LrYsdio24wg2LHYpyDYr9ix2KjYp9ix2Ycg2KfbjNmGINqp2Ycg2obbjNmGINin2LfZhNin2LnYp9iq24wg2LHYpyDYr9ix2KjYp9ix2Ycg2KjYsdmG2KfZhdmHINmH2LPYqtmHINin24wg2KfbjNix2KfZhiDYr9ixINin2K7YqtuM2KfYsSDYotqY2KfZhtizINmC2LHYp9ixINiv2KfYr9mHINin2LPYqiDYjCDYqtqp2LDbjNioINqp2LHYryAuINmF2YTbjNiz2Kcg2YHZhNmF24zZhtqvINiv2LEg2q/ZgdiqINmIINqv2Ygg2KjYpyDYrtio2LHZhtqv2KfYsSDZiNin2K3YryDZhdix2qnYstuMINiu2KjYsSDYqtin2qnbjNivINqp2LHYryA6INii2pjYp9mG2LMg2KjbjNmGINin2YTZhdmE2YTbjCDYp9mG2LHamNuMINin2KrZhduMINmH2LHar9iyINiv2LHYqNin2LHZhyDYp9i32YTYp9i52KfYqiDZhdit2LHZhdin2YbZhyDYr9ix24zYp9mB2KrbjCDYp9iyINqp2LTZiNix2YfYpyDYp9i42YfYp9ixINmG2LjYsSDZhtmF24wg2qnZhtivIC4g2YjbjCDar9mB2Ko6INmH2YUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9IVE1ML3dpcmVkLmh0bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC93aXJlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMDBkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvSFRNTC93aXJlZC5odG1sCkBAIC0wLDAgKzEsNTE2IEBACis8IS0tIFZpZ25ldHRlIFN0b3J5U2VydmVyIDQgRnJpIE9jdCAxNSAxMTozNzoxMiAxOTk5IC0tPgorPGh0bWw+PGhlYWQ+PHRpdGxlPlRvcCBTdG9yaWVzIE5ld3MgZnJvbSBXaXJlZCBOZXdzPC90aXRsZT48L2hlYWQ+PGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzMzMzM5OSIgdmxpbms9IiM2NjAwNjYiIGFsaW5rPSIjNjY2Njk5Ij4KKworPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjYwMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKyAgPHRyPgorICAgIDx0ZCB2YWxpZ249InRvcCIgYWxpZ249IkxFRlQiPjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjQ2OCIgSEVJR0hUPSI2MCIgQkdDT0xPUj0iI0ZGRkZGRiI+PEZPUk0gTUVUSE9EPUdFVCBBQ1RJT049Imh0dHA6Ly9uc2Fkcy5ob3R3aXJlZC5jb20vZXZlbnQubmcvVHlwZT1jbGljayZQcm9maWxlSUQ9OTY4OCZSdW5JRD0xNDA3NCZBZElEPTIyNTg0Jkdyb3VwSUQ9MSZGYW1pbHlJRD0yNjg0JlRhZ1ZhbHVlcz04LjI1LjE1Ni4xNTkuMTY2LjE3MS4xNzIuMTc0LjE3OS4xODAuMTgxLjE4Mi4xODMuMTk2LjE5Ny4xOTkuMjA4LjM4OS40MTIuNDM2LjIwNDEuNjc1MC43ODQ1Ni43OTYzMC44MTg4MCZhbXA7UmVkaXJlY3Q9aHR0cDovL3d3dy5zcHJpbmdzdHJlZXQuY29tL2FhL2NpdHlzZWFyY2guaHRtIiBpZD1mb3JtMSBuYW1lPWZvcm0xPg0KKzxUUj48VEQgQkdDT0xPUj0iIzMzMDA5OSI+PElOUFVUIE5BTUU9ImNpdHkiIFRZUEU9InRleHQiIFNJWkU9IjciIE1BWExFTkdUSD0iMjAiIFZBTFVFPSJTZWF0dGxlIj48L1REPg0KKzxURCBST1dTUEFOPTIgQUxJR049TEVGVCBCR0NPTE9SPUZGRkZGRj48SU5QVVQgVFlQRT0iSU1BR0UiIFNSQz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vYWR2ZXJ0aXNpbmcvYmxpcHZlcnRzL2FsbGFwYXJ0bWVudHMvOTkwNjI1anBhX3NzdGhvbWUuZ2lmIiBXSURUSD0iMzc1IiBIRUlHSFQ9IjYwIiBCT1JERVI9IjAiIFZBTFVFPSJzZWFyY2giIEhTUEFDRT0wIGFsdD0iU2VhcmNoIG92ZXIgNiwwMDAsMDAwIEFwdHMgd2l0aCBTcHJpbmdTdHJlZXQiPjwvVEQ+PC9UUj4NCis8VFI+PFREIEJHQ09MT1I9IiMzMzAwOTkiPg0KKzxTRUxFQ1QgTkFNRT0ic3RhdGUiPg0KKzxPUFRJT04gVkFMVUU9IldBIiBTRUxFQ1RFRD5XQQ0KKzxPUFRJT04gVkFMVUU9IkFMIj5BTDwvT1BUSU9OPjxPUFRJT04gVkFMVUU9IkFLIj5BSzwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkFaIj5BWjwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkFSIj5BUjwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkNBIj5DQTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkNPIj5DTzwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkNUIj5DVDwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkRFIj5ERTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkRDIj5EQzwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkZMIj5GTDwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkdBIj5HQTwvT1BUSU9OPjxPUFRJT04gVkFMVUU9IkhJIj5ISTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IklEIj5JRDwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IklMIj5JTDwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IklOIj5JTjwvT1BUSU9OPjxPUFRJT04gVkFMVUU9IklBIj5JQTwvT1BUSU9OPjxPUFRJT04gVkFMVUU9IktTIj5LUzwvT1BUSU9OPjxPUFRJT04gVkFMVUU9IktZIj5LWTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IkxBIj5MQTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik1FIj5NRTwvT1BUSU9OPjxPUFRJT04gVkFMVUU9Ik1EIj5NRDwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik1BIj5NQTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik1JIj5NSTwvT1BUSU9OPjxPUFRJT04gVkFMVUU9Ik1OIj5NTjwvT1BUSU9OPjxPUFRJT04gVkFMVUU9Ik1TIj5NUzwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik1PIj5NTzwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik1UIj5NVDwvT1BUSU9OPjxPUFRJT04gVkFMVUU9Ik5FIj5ORTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik5WIj5OVjwvT1BUSU9OPjxPUFRJT04gVkFMVUU9Ik5IIj5OSDwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik5KIj5OSjwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik5NIj5OTTwvT1BUSU9OPjxPUFRJT04gVkFMVUU9Ik5ZIj5OWTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik5DIj5OQzwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik5EIj5ORDwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik9IIj5PSDwvT1BUSU9OPjxPUFRJT04gVkFMVUU9Ik9LIj5PSzwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9Ik9SIj5PUjwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IlBBIj5QQTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IlBSIj5QUjwvT1BUSU9OPjxPUFRJT04gVkFMVUU9IlJJIj5SSTwvT1BUSU9OPg0KKzxPUFRJT04gVkFMVUU9IlNDIj5TQzwvT1BUSU9OPiANCis8T1BUSU9OIFZBTFVFPSJTRCI+U0Q8L09QVElPTj48T1BUSU9OIFZBTFVFPSJUTiI+VE48L09QVElPTj48T1BUSU9OIFZBTFVFPSJUWCI+VFg8L09QVElPTj4NCis8T1BUSU9OIFZBTFVFPSJVVCI+VVQ8L09QVElPTj4NCis8T1BUSU9OIFZBTFVFPSJWVCI+VlQ8L09QVElPTj4NCis8T1BUSU9OIFZBTFVFPSJWQSI+VkE8L09QVElPTj4NCis8T1BUSU9OIFZBTFVFPSJXQSI+V0E8L09QVElPTj4NCis8T1BUSU9OIFZBTFVFPSJXViI+V1Y8L09QVElPTj4NCis8T1BUSU9OIFZBTFVFPSJXSSI+V0k8L09QVElPTj4NCis8T1BUSU9OIFZBTFVFPSJXWSI+V1k8L09QVElPTj4NCis8L1NFTEVDVD48SU5QVVQgVFlQRT0iaGlkZGVuIiBOQU1FPSJzb3VyY2UiIFZBTFVFPSIyaGI4YmhjMDU5Ij4NCis8L1REPjwvVFI+PC9GT1JNPg0KKzwvVEFCTEU+PC90ZD4KKyAgICA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJSSUdIVCI+PGEgaHJlZj0iaHR0cDovL25zYWRzLmhvdHdpcmVkLmNvbS9ldmVudC5uZy9UeXBlPWNsaWNrJlByb2ZpbGVJRD01NTk3JlJ1bklEPTE3MTY3JkFkSUQ9MjI1ODgmR3JvdXBJRD0xJkZhbWlseUlEPTMyMjgmVGFnVmFsdWVzPTguMjUuMTU5LjE3MS4xNzIuMTc0LjE3OS4xODAuMTgxLjE4Mi4xODMuMTk2LjE5Ny4xOTkuMjA4LjI0MS4zODkuNDEyLjQzNi4yMDM1LjY3NDkuNjc1MC43MDM2Ny43ODQ1Ni43OTYzMC44MTg4MCZhbXA7UmVkaXJlY3Q9aHR0cDolMkYlMkZ3d3cuaHAuY29tJTJGZ28lMkZvcmlnaW5hbCUyMCIgVEFSR0VUPSJfdG9wIj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vYWR2ZXJ0aXNpbmcvYmxpcHZlcnRzL2hwX2NvbG9yaW5ramV0L2hwXzk3MGNfMTIweDYwXzYuZ2lmIiBCT1JERVI9MSBoZWlnaHQ9NjAgd2lkdGg9MTIwIGFsdD0iVHJ1ZSB0byB0aGUgT3JpZ2luYWwiPjwvYT48L3RkPgorICA8L3RyPgorPC90YWJsZT4KKworPCEtLSBXSVJFRCBORVdTIGhlYWRlciAtLT4KKzwhLS0gQ01EX0hPU1QgPSBzY29vcC5ob3R3aXJlZC5jb20gLS0+CisKKzxhIG5hbWU9IiMiPjwvYT4KKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI2MDAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CisKKyAgPHRyPjx0ZD48L3RkPjx0ZCBjb2xzcGFuPSIyIj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgaGVpZ2h0PSI1IiB3aWR0aD0iNDQ3IiBhbHQ9IiI+PC90ZD4KKzwvdHI+IAorCisgPHRyPiAKKyAgICAgIDx0ZCB2YWxpZ249IkJPVFRPTSIgYWxpZ249IlJJR0hUIiBjbGFzcz0id2lyZWQiIGJnY29sb3I9IiNGRkZGRkYiPjxhIGhyZWY9Ii9uZXdzLzAsMTI4NywsMDAuaHRtbCI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3dpcmVkXzAwMDAwMC5naWYiIHdpZHRoPSIxNTMiIGhlaWdodD0iMzAiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CisgICAgICA8dGQgYmdjb2xvcj0iI0ZGMDAwMCIgdmFsaWduPSJCT1RUT00iIGFsaWduPSJMRUZUIiB3aWR0aD0iOTciPjxhIGhyZWY9Ii9uZXdzLzAsMTI4NywsMDAuaHRtbCI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL25ld3NfZmZmZmZmLmdpZiIgd2lkdGg9IjEwMyIgaGVpZ2h0PSIzMCIgYm9yZGVyPSIwIj48L2E+PC90ZD4KKworCis8dGQgYmdjb2xvcj0iI0ZGMDAwMCIgYWxpZ249ImxlZnQiIHZhbGlnbj0iY2VudGVyIj48bm9icj48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgd2lkdGg9IjM0NCIgaGVpZ2h0PSIxIj48YnI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPiZuYnNwOyZuYnNwOyZuYnNwOzxiPnVwZGF0ZWQgMTA6MTUgYS5tLiZuYnNwOyZuYnNwOzE1Lk9jdC45OS5QRFQ8L2I+PC9mb250Pjwvbm9icj48L3RkPgorCisKKyAgICAgICAgPC90cj4KKyAgICA8dHI+IAorICAgICAgPHRkIHZhbGlnbj0iTUlERExFIiBhbGlnbj0iUklHSFQiIGJnY29sb3I9IiNGRkZGRkYiPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiB3aWR0aD0xIGhlaWdodD0iMzAiPjwvdGQ+CisgICAgICAKKyAgICAgIDx0ZCBjb2xzcGFuPSIyIiBiZ2NvbG9yPSIjOTk5OTk5Ij4KKworICAgICAgIDxUQUJMRSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iNSI+Cis8Zm9ybSBuYW1lPSJSZWRpcmVjdFNlYXJjaCIgYWN0aW9uPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3NlYXJjaCI+CisgICAgICAgICAgICAgICAgPHRyPiAgCisgICAgICAgICAgICA8dGQ+IAorPGZvbnQgZmFjZT0iY291cmllciIgc2l6ZT0iMSI+PGlucHV0IHR5cGU9IlRFWFQiIG5hbWU9InF1ZXJ5IiBzaXplPSIyMCIgdmFsdWU9IiI+PC9mb250PgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkPgorPHNlbGVjdCBuYW1lPSJ1cmwiPgorCisgIDxvcHRpb24gdmFsdWU9Imh0dHA6Ly9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/QWN0aW9uPUZpbHRlclNlYXJjaCZGaWx0ZXI9ZG9jc19maWx0ZXIuaHRzJlJlc3VsdFRlbXBsYXRlPXZpZ25ldHRlLmh0cyZDb2xsZWN0aW9uPXZpZ25ldHRlJlF1ZXJ5TW9kZT1JbnRlcm5ldCZRdWVyeT0iIHNlbGVjdGVkPldpcmVkIE5ld3M8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9BY3Rpb249RmlsdGVyU2VhcmNoJkZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9d2VibW9ua2V5Lmh0cyZDb2xsZWN0aW9uPXdlYm1vbmtleSZRdWVyeU1vZGU9SW50ZXJuZXQmUXVlcnk9Ij5XZWJtb25rZXk8L29wdGlvbj4KKyA8b3B0aW9uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP2NvbGxlY3Rpb249d2VibW9ua2V5X2d1aWRlcyZBY3Rpb249RmlsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9d2VibW9ua2V5X2d1aWRlcy5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5PSI+V2VibW9ua2V5IEd1aWRlczwvb3B0aW9uPgorIDxvcHRpb24gdmFsdWU9Imh0dHA6Ly9zZWFyY2guaG90d2lyZWQuY29tL3NlYXJjaDk3L3M5Ny52dHM/Y29sbGVjdGlvbj1ob3R3aXJlZCZBY3Rpb249RmlsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9aG90d2lyZWRfYXJjaGl2ZS5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5PSI+SG90V2lyZWQgQXJjaGl2ZXM8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9BY3Rpb249RmlsdGVyU2VhcmNoJkZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9bWFnYXppbmUuaHRzJkNvbGxlY3Rpb249bWFnYXppbmUmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5PSI+V2lyZWQgTWFnYXppbmU8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3NlYXJjaC5ob3R3aXJlZC5jb20vc2VhcmNoOTcvczk3LnZ0cz9BY3Rpb249RmlsdGVyU2VhcmNoJkZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9YW5pbWF0aW9uLmh0cyZDb2xsZWN0aW9uPWFuaW1hdGlvbiZRdWVyeU1vZGU9SW50ZXJuZXQmUXVlcnk9Ij5BbmltYXRpb24gRXhwcmVzczwvb3B0aW9uPiAKKyA8b3B0aW9uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP2NvbGxlY3Rpb249c3VjayZBY3Rpb249RmlsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9c3Vjay5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5PSI+U3Vjay5jb208L29wdGlvbj4KKyA8b3B0aW9uIHZhbHVlPSJodHRwOi8vc2VhcmNoLmhvdHdpcmVkLmNvbS9zZWFyY2g5Ny9zOTcudnRzP2NvbGxlY3Rpb249dWJlcl9ob3R3aXJlZCZBY3Rpb249RmlsdGVyU2VhcmNoJmZpbHRlcj1kb2NzX2ZpbHRlci5odHMmUmVzdWx0VGVtcGxhdGU9dWJlcl9ob3R3aXJlZC5odHMmUXVlcnlNb2RlPUludGVybmV0JlF1ZXJ5PSI+QWxsIG9mIEhvdFdpcmVkPC9vcHRpb24+CisgPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ob3Rib3QuY29tLz9TTT1NQyZEVj0wJkxHPWFueSZSRD1SRyZEQz0xMCZERT0yJl92PTImT1BzPU1EUlRQJk1UPSI+VGhlIFdlYiAtPiBIb3RCb3Q8L29wdGlvbj4KKzwvc2VsZWN0PgorCisKKworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZD4gCisgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJTVUJNSVQiIG5hbWU9IlNVQk1JVCIgdmFsdWU9IlNFQVJDSCI+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisgIDwvZm9ybT4gICAgICAgIAorICAgICAgIDwvVEFCTEU+CisgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKzwhLS0gCis8VFI+Cis8dGQ+PC90ZD4KKzxURCB2YWxpZ249IlRPUCIgYWxpZ249IkxFRlQiIGNvbHNwYW49IjMiIGJnY29sb3I9IiNGMEYwRjAiPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9MSB3aWR0aD0xNSBhbHQ9IiI+PGJyPgorPGk+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0iMiI+U3BvbnNvcmVkIGJ5PGEgaHJlZj0iIyI+U3VuIE1pY3Jvc3lzdGVtcy48L2E+IFdlJ3JlIHRoZSBkb3QgaW4gLmNvbTwvZm9udD48L2k+PGk+PC9pPjwvVEQ+Cis8L1RSPgorLS0+Cis8L3RhYmxlPgorPCEtLSBlbmQgV0lSRUQgTkVXUyBoZWFkZXIgLS0+CisKKzwhLS0gYmVnaW4gdXBwZXIgbGVmdCBzaWRlIE5hdmlnYXRpb24gLS0+CisKKzx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249IkxFRlQiIGJnY29sb3I9IiNGRkZGRkYiPgorICA8dHI+IAorICAgIDx0ZCBiZ2NvbG9yPSIjRkYwMDAwIj48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iI0ZGRkZGRiI+IAorICAgICAgPGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYiIHdpZHRoPTE0NyBoZWlnaHQ9MSBib3JkZXI9MD48YnI+PGI+U0VDVElPTlM8L2I+PC9mb250PjwvdGQ+CisgIDwvdHI+CisKKzx0cj48dGQgYmdjb2xvcj0iI0NDRkZDQyI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9Ii9uZXdzL2J1c2luZXNzLzAsMTM2NywsMDAuaHRtbCI+QnVzaW5lc3M8L2E+PC9mb250PjwvdGQ+PC90cj48dHI+PHRkIGJnY29sb3I9IiM5OUZGOTkiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSIvbmV3cy9jdWx0dXJlLzAsMTI4NCwsMDAuaHRtbCI+Q3VsdHVyZTwvYT48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI0NDRkZDQyI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9Ii9uZXdzL3RlY2hub2xvZ3kvMCwxMjgyLCwwMC5odG1sIj5UZWNobm9sb2d5PC9hPjwvZm9udD48L3RkPjwvdHI+PHRyPjx0ZCBiZ2NvbG9yPSIjOTlGRjk5Ij48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iL25ld3MvcG9saXRpY3MvMCwxMjgzLCwwMC5odG1sIj5Qb2xpdGljczwvYT48L2ZvbnQ+PC90ZD48L3RyPjx0cj4KKzx0ZCBiZ2NvbG9yPSIjRkYwMDAwIj48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iI0ZGRkZGRiI+Cis8Yj5XSVJFIFNFUlZJQ0UgTkVXUzwvYj48L2ZvbnQ+PC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjOTlGRjk5Ij48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iL25ld3MvbmV3cy9yZXV0ZXJzLyI+VG9wIEhlYWRsaW5lczwvYT48L2ZvbnQ+PC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjQ0NGRkNDIj48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iL25ld3MvbmV3cy9yZXV0ZXJzL3Nwb3J0cy8iPlNwb3J0czwvYT48L2ZvbnQ+PC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZCBiZ2NvbG9yPSIjOTlGRjk5Ij48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iL25ld3MvbmV3cy9yZXV0ZXJzL2J1c2luZXNzLyI+RmluYW5jZTwvYT48L2ZvbnQ+PC90ZD4KKzwvdHI+Cis8IS0tIEVuZCB1cHBlciBsZWZ0IG5hdiAtLT48IS0tIEJlZ2luIGxvd2VyIExlZnQgTmF2IC0tPgorICAgIDx0cj4gCisgICAgPHRkIGJnY29sb3I9IiNGRjAwMDAiPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj4gCisgICAgICA8Yj48Zm9udCBzaXplPSIxIj5GUkVFIERFTElWRVJZPC9mb250PjwvYj48L2ZvbnQ+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4gCisgICAgPHRkIGJnY29sb3I9IiM5OUZGOTkiPgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPTAgPgorCQk8dHI+PHRkIGJnY29sb3I9IiM5OUZGOTkiPgorCQkgPGZvcm0gYWN0aW9uPSJodHRwOi8vci5ob3R3aXJlZC5jb20vci9od193bV9yX25hdl9ud3NsdHIvaHR0cDovL3BlcmwuaG90d2lyZWQuY29tL21hc3NtYWlsL2NnaVBhcnNlci5jZ2kiIG1ldGhvZD0iZ2V0IiB0YXJnZXQ9Il90b3AiPgorCisgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3VjY2Vzc19wYWdlIiB2YWx1ZT0iaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vZW1haWwvc2lnbnVwL3dpcmVkbmV3cy1hc2NpaS5odG1sIj4KKyAKKzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhaWx1cmVfcGFnZSIgdmFsdWU9Imh0dHA6Ly93d3cuaG90d2lyZWQuY29tL2VtYWlsL3NpZ251cC93aXJlZG5ld3MtYXNjaWkuaHRtbCI+CisgCis8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMSVNUIiAgIHZhbHVlPSJ3bl9hc2NpaSI+Cis8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTT1VSQ0UiIHZhbHVlPSJvdGhlciI+CisgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQUNUSU9OIiB2YWx1ZT0ic3Vic2NyaWJlIj4KKyAKKzxpbnB1dCB0eXBlPSJURVhUIiBuYW1lPSJmcm9tIiAgc2l6ZT0iMTAiIHZhbHVlPSJlbnRlciBlbWFpbCI+Jm5ic3A7Cis8L3RkPiAKKwkJPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOTlGRjk5Ij4KKwkJPGlucHV0IHR5cGU9IlNVQk1JVCIgbmFtZT0iU1VCTUlUIiB2YWx1ZT0iR08iPiAKKworICA8L3RkPgorCTwvdHI+ICAgIDwvZm9ybT4KKzwvdGFibGU+PC90ZD4KKyAgPC90cj4KKyAgPHRyPiAKKyAgICA8dGQgYmdjb2xvcj0iI0ZGMDAwMCI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPiAKKyAgICAgIDxiPjxmb250IHNpemU9IjEiPlNUT0NLUzwvZm9udD48L2I+PC9mb250PjwvdGQ+CisgIDwvdHI+CisgIDx0cj4gCisgICAgPHRkIGJnY29sb3I9IiM5OUZGOTkiPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPkdldCBRdW90ZTo8L2ZvbnQ+PC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZCBiZ2NvbG9yPSIjOTlGRjk5IiBtYXJnaW53aWR0aD0wIG1hcmdpbmhlaWdodD0wPjxmb3JtIG1ldGhvZD1nZXQgYWN0aW9uPSJodHRwOi8vci53aXJlZC5jb20vci8xMDAyMC9odHRwOi8vc3RvY2tzLndpcmVkLmNvbS9zdG9ja3NfcXVvdGVzLmFzcCI+PGlucHV0IHR5cGU9IlRFWFQiIG5hbWU9IlN5bWJvbCIgc2l6ZT0iMTIiPiZuYnNwOzxpbnB1dCB0eXBlPSJTVUJNSVQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkdPIj48L2Zvcm0+PC90ZD4KKyAgPC90cj4KKzwhLS0gQkVHSU4gQlVUVE9OIEFEUyAtLT4KKyAgCisgPHRyPjx0ZCBiZ2NvbG9yPSIjQ0NGRkNDIj4KKzxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5GaW5hbmNpYWwgU2VydmljZXM8L2ZvbnQ+PGJyPgorPGNlbnRlcj4KKzxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9MyB3aWR0aD01IGFsdD0iIj48QlI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL2J1dHRvbl9hZHNfbmV3czEwLmdpZiIgd2lkdGg9IjE0MyIgaGVpZ2h0PSI1NiIgYm9yZGVyPSIwIiBBTFQ9IiIgVVNFTUFQPSIjYnV0dG9ucyIgaHNwYWNlPTAgdnNwYWNlPTA+Cis8L2NlbnRlcj4KKworPE1BUCBOQU1FPSJidXR0b25zIj4KKyAgICAgICAgPEFSRUEgU0hBUEU9IlJFQ1QiIEFMVD0iRGF0ZWsiIENPT1JEUz0iMCwwLDY5LDI0IiBIUkVGPSJodHRwOi8vci53aXJlZC5jb20vci8xNjQ5L2h0dHA6Ly9hZHMxNi5mb2NhbGluay5jb20vU21hcnRCYW5uZXIvcGFnZS8xMjY2LjYzMSI+CisgICAgICAgIDxBUkVBIFNIQVBFPSJSRUNUIiBBTFQ9IldpcmVkIEluZGV4IEZ1bmQiIENPT1JEUz0iNzMsMCwxNDIsMjQiIEhSRUY9Imh0dHA6Ly9yLndpcmVkLmNvbS9yLzIyNy9odHRwOi8vd3d3LmdmZnVuZHMuY29tL3dpcmVkIj4KKyAgICAgICAgPEFSRUEgU0hBUEU9IlJFQ1QiIEFMVD0iaW50ZXJuZXQuY29tIEluZGV4IEZ1bmQiIENPT1JEUz0iNzMsMzEsMTQyLDU1IiBIUkVGPSJodHRwOi8vci53aXJlZC5jb20vci8yOTgvaHR0cDovL3d3dy5nZmZ1bmRzLmNvbS9pc2RleC8iPgorICAgICAgICA8QVJFQSBTSEFQRT0iUkVDVCIgQUxUPSJHZXRTbWFydCdzIE1vcnRnYWdlRmluZGVyIiBDT09SRFM9IjAsMzEsNjksNTUiIEhSRUY9Imh0dHA6Ly9yLndpcmVkLmNvbS9yLzI5NC9odHRwOi8vd3d3LmdldHNtYXJ0aW5jLmNvbS9tb3J0Z2FnZS9Ib21lQmFubmVyP0JBTk5FUk5BTUU9d3d3LmdldHNtYXJ0aW5jLmNvbS9td2lyZWQwMDFtNjA3NXgyNSI+PC9NQVA+CisgICAgICAgIDwvdGQ+CisgIDwvdHI+IDwhLS0gRU5EIEJVVFRPTiBBRFMgLS0+CisgIAorICA8dHI+IAorICAgIDx0ZCBiZ2NvbG9yPSIjOTlGRjk5Ij48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0iaHR0cDovL3JlZGlyZWN0LndpcmVkLmNvbS9yZWRpci81MS9odHRwOi8vc3RvY2tzLndpcmVkLmNvbS8iPlRvZGF5J3MgU3VtbWFyeTwvYT48L2ZvbnQ+PC90ZD4KKyAgPC90cj4KKyAgPHRyPiAKKyAgICA8dGQgYmdjb2xvcj0iI0NDRkZDQyI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9Imh0dHA6Ly9yLndpcmVkLmNvbS9yL2hiX2Zpbl9yX3duX3RvcC9odHRwOi8vc3RvY2tzLndpcmVkLmNvbS9zdG9ja3NfaW5kZXhlc19kZXRhaWwuYXNwP1N5bWJvbD0kV0lSRUQiPldpcmVkIEluZGV4PC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly9yZWRpcmVjdC53aXJlZC5jb20vcmVkaXIvNTIvaHR0cDovL3N0b2Nrcy53aXJlZC5jb20vc3RvY2tzX2luZGV4ZXMuYXNwICI+QWxsIEluZGV4ZXM8L2E+PC9mb250PjwvdGQ+CisgIDwvdHI+CisgIDx0cj4gCisgICAgPHRkIGJnY29sb3I9IiM5OUZGOTkiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzUzL2h0dHA6Ly9zdG9ja3Mud2lyZWQuY29tL3N0b2Nrc19wb3J0Zm9saW9zLmFzcCI+UG9ydGZvbGlvczwvYT48L2ZvbnQ+PC90ZD4KKyAgPC90cj4KKworPCEtLSBCRUdJTiBCJk4gc3BvdCAtLT4KKworPHRyPiAKKyA8dGQgYmdjb2xvcj0iI0ZGMDAwMCI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPjxiPkZJTkQgQSBCT09LPC9iPjwvZm9udD48L3RkPgorPC90cj4KKzx0cj48dGQgYmdjb2xvcj0iI0NDRkZDQyI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9MCB3aWR0aD0xNDU+CisgICAgICAgICAgICAgICAgPHRyPjx0ZCBiZ2NvbG9yPSIjQ0NGRkNDIj4KKyAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249Imh0dHA6Ly9yLndpcmVkLmNvbS9yL3duX25hdl9jX2JuL2h0dHA6Ly9iYXJuZXNhbmRub2JsZS5iZmFzdC5jb20vYm9va2xpbmsvY2xpY2siPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic291cmNlaWQiIHZhbHVlPSIzODM0NzEiPgorPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImNhdGVnb3J5aWQiIHZhbHVlPSJjYXRlZ29yeWRyb3Bkb3duIj4KKyAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj4KKyAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9IlN1YmplY3RzIiBzaXplPTQ+Cis8b3B0aW9uIHZhbHVlPSIzMDEiPkJ1c2luZXNzIFRvcCAyMAorPG9wdGlvbiB2YWx1ZT0iNTAwIj5Db21wdXRlcnMKKzxvcHRpb24gdmFsdWU9IjUwMyI+Q29tcHV0ZXIgR2FtZXMKKzxvcHRpb24gdmFsdWU9IjE2MDQiPkN1cnJlbnQgQWZmYWlycworPG9wdGlvbiB2YWx1ZT0iNTExIj5DeWJlcmN1bHR1cmUKKzxvcHRpb24gdmFsdWU9IjUxMCI+SW50ZXJuZXQvV2ViCis8b3B0aW9uIHZhbHVlPSIzMDMiPkludmVzdGluZworPG9wdGlvbiB2YWx1ZT0iMTYwNiI+TGF3Cis8b3B0aW9uIHZhbHVlPSI1MTMiPk11bHRpbWVkaWEKKworPG9wdGlvbiB2YWx1ZT0iMTYwNSI+TmV3c21ha2VycworPG9wdGlvbiB2YWx1ZT0iMTYwNyI+UG9saXRpY3MvR292dC4KKworIDxvcHRpb24gdmFsdWU9IjMxNSI+IFdlYiBCdXNpbmVzcworICA8b3B0aW9uIHZhbHVlPSIyODAwIj4gQmFyZ2FpbiBCb29rcworICAgICAgICAgICAgICAgICAgICAgICAgCis8b3B0aW9uIHZhbHVlPSI0Ij5PdGhlciAKKworCisKKyAKKworIDwvc2VsZWN0PjwvZm9udD48L3RkPjwvdHI+CisgPHRyIGFsaWduPWxlZnQgdmFsaWduPXRvcD4KKyAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiNDQ0ZGQ0MiPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR08iPgorCis8SU1HIFNSQz0iaHR0cDovL2Jhcm5lc2FuZG5vYmxlLmJmYXN0LmNvbS9ib29rbGluay9zZXJ2ZT9zb3VyY2VpZD0zODM0NzEmaXNfc2VhcmNoPVkiIGJvcmRlcj0wIGFsaWduPXRvcD4KKzwhLS0KKzxJTUcgU1JDPSJodHRwOi8vd3d3LndpcmVkLmNvbS9wYXJ0bmVyL2JuL3RyYWNraW5naW1nL290X3duX25hdl9jX2JuLmdpZiIgYm9yZGVyPTAgd2lkdGg9MSBoZWlnaHQ9MSBhbGlnbj10b3A+CistLT4KKzwvdGQ+CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgPHRyIGFsaWduPWxlZnQgdmFsaWduPXRvcD4KKyAKKyAgICAgICAgPHRkIGFsaWduPWxlZnQgdmFsaWduPXRvcCBjb2xzcGFuPSIyIiByb3dzcGFuPSIxIiBiZ2NvbG9yPSIjQ0NGRkNDIj4KKzxwPgorICAgICAgICA8Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCAiIGNvbG9yPSIjMDAwMDAwIj5Qb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9yLndpcmVkLmNvbS9yL3duX25hdl9jX2JuL2h0dHA6Ly9iYXJuZXNhbmRub2JsZS5iZmFzdC5jb20vYm9va2xpbmsvY2xpY2s/c291cmNlaWQ9MzgzNDcxIj5iYXJuZXNhbmRub2JsZS5jb208L2E+CisgPC9mb250PgorPGJyIGNsZWFyPWFsbD4KKworCis8L3RkPgorICAgICAgICA8L3RyPiAgPC9mb3JtPgorICAgICAgICA8L3RhYmxlPgorCis8L3RkPjwvdHI+CisgPCEtLSBFTkQgQiZOIHNwb3QgLS0+ICAgCisgIAorPCEtLSBCRUdJTiBNQUdBWklORSBTUE9UIC0tPgorCisgPHRyPiAKKyAgICA8dGQgYmdjb2xvcj0iIzAwMDAwMCI+PGZvbnQgY29sb3I9IiNGRkZGRkYiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPjxiPldJUkVEIAorICAgICAgTUFHQVpJTkUgPC9iPjwvZm9udD48L3RkPgorICA8L3RyPgorPHRyPiAKKzx0ZCBiZ2NvbG9yPSIjRkZGRjk5IiBhbGlnbj0iQ0VOVEVSIj4KKzxmb250IGZhY2U9InZlcmRhbmEsIGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPgorPGI+Cis8YnI+CisKKzxhIGhyZWY9Imh0dHA6Ly93d3cud2lyZWQuY29tL3dpcmVkLyI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3dpcmVkY292ZXIuZ2lmIiB3aWR0aD0iOTEiIGhlaWdodD0iMTA5IiBib3JkZXI9IjAiIGFsdD0iV2lyZWQgTWFnYXppbmUiPjwvYT48YnI+PC9iPgorCitJc3N1ZSA3LjExCis8L2ZvbnQ+Cis8L3RkPgorPC90cj4KKworPHRyPiAKKzx0ZCBiZ2NvbG9yPSIjRkZGRjk5IiBhbGlnbj0iY2VudGVyIj4KKzxmb250IGZhY2U9InZlcmRhbmEsIGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPiAKKworPGEgaHJlZj0iaHR0cDovL3d3dy53aXJlZC5jb20vd2lyZWQvc3Vic2NyaWJlL3NwZWNpYWwvNzlXTiI+U3Vic2NyaWJlIHRvIFdpcmVkLjxicj5TcGVjaWFsIG9mZmVyITwvYT4KKworCis8L2ZvbnQ+Cis8L3RkPgorPC90cj4KKzwhLS0gRU5EIE1BR0FaSU5FIFNQT1QgLS0+CisKKyAgPHRyPgorICAgIDx0ZCBiZ2NvbG9yPSIjMDAwMDAwIj4gCisgICAgPGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPjxiPkhPVFdJUkVEPC9iPjwvZm9udD48L3RkPgorICA8L3RyPgorICA8dHI+IAorICAgIDx0ZCBiZ2NvbG9yPSIjRkZGRjk5Ij4gPGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPgorPGEgaHJlZj0iaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vIj5Gcm9udGRvb3I8L2E+PGJyPgorPGEgaHJlZj0iaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vd2VibW9ua2V5LyI+V2VibW9ua2V5PC9hPjxicj4KKzxhIGhyZWY9Imh0dHA6Ly93d3cuaG90d2lyZWQuY29tL3dlYm1vbmtleS9ndWlkZXMvaW5kZXguaHRtbCI+V2VibW9ua2V5IEd1aWRlczwvYT48YnI+Cis8YSBocmVmPSJodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS9yZ2IvIj5SR0IgR2FsbGVyeTwvYT48YnI+Cis8YSBocmVmPSJodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS9hbmltYXRpb24vIj5BbmltYXRpb24gRXhwcmVzczwvYT48YnI+Cis8YSBocmVmPSJodHRwOi8vZ28uc3Vjay5jb20vc3Vfd25mZCI+U3Vjay5jb208L2E+PGJyPgorPC9mb250PjwvdGQ+CisgIDwvdHI+CisgIAorICAgIDx0cj4KKyAgICA8dGQgYmdjb2xvcj0iIzAwMDAwMCI+IAorICAgIDxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj48Yj5IT1RCT1Q8L2I+PC9mb250PjwvdGQ+CisgIDwvdHI+CisgIDx0cj4gCisgICAgPHRkIGJnY29sb3I9IiNGRkZGOTkiPiA8Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+Cis8YSBocmVmPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzU0L2h0dHA6Ly93d3cuaG90Ym90LmNvbS8iPlNlYXJjaDwvYT48YnI+Cis8YSBocmVmPSJodHRwOi8vc2hvcC5ob3Rib3QuY29tLyI+U2hvcHBpbmc8L2E+PGJyPgorPC9mb250PjwvdGQ+CisgIDwvdHI+CisgIAorICA8dHI+PHRkPgorICA8YnI+CisgIDxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9IjEiPgorICA8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPSIxIj4KKyAgV2lyZWQgTmV3cyA8YSBocmVmPSIvbmV3cy93aG8vMCwxMzYyLCwwMC5odG1sIj5zdGFmZjwvYT48YnI+PGJyPgorCisgIDwhLS0gV2lyZWQgTmV3cyBpcyA8YSBocmVmPSJodHRwOi8vd3d3LndpcmVkLmNvbS9uZXdzL2pvYnMuaHRtbCI+aGlyaW5nPC9hPjxicj48YnI+IC0tPgorCisgIDxiPjxhIGhyZWY9Ii9uZXdzL2ZlZWRiYWNrLzAsMTM2NCwsMDAuaHRtbCI+Q29udGFjdCB1czwvYT48L2I+PC9mb250PgorCisgIAorICA8YnI+PGJyPgorICAKKyAgPGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0iMSI+V2lyZWQgTmV3cyAgZGVsaXZlcmVkPGJyPmJ5IDxhIGhyZWY9Ii9uZXdzL3BhbG1waWxvdC8wLDEzNjUsLDAwLmh0bWwiPlBhbG1QaWxvdDwvYT4sPGJyPjxhIGhyZWY9Imh0dHA6Ly93d3cuaG90d2lyZWQuY29tL2VtYWlsL3NpZ251cC93bl9vdXRsb29rLmh0bWwiPk91dGxvb2sgIEV4cHJlc3M8L2E+LDxicj48YSBocmVmPSJodHRwOi8vcmVkaXJlY3Qud2lyZWQuY29tL3JlZGlyLzU1L2h0dHA6Ly9mb3JtLm5ldHNjYXBlLmNvbS9pYmQvaHRtbC9pYmRfZnJhbWVzZXQuaHRtbCI+SW4tQm94IERpcmVjdDwvYT4sPGJyPgorb3IgPGEgaHJlZj0iL25ld3MvcG9pbnRjYXN0LzAsMTM2NiwsMDAuaHRtbCI+UG9pbnRDYXN0PC9hPjwvZm9udD48YnI+CisKKzwhLS0gVFJBQ0tJTkcgLS0+Cis8aW1nIHNyYz0iaHR0cDovL3d3dy53aXJlZC5jb20vc3BlY2lhbC9tb2R4L25ld3MuZ2lmIiBoZWlnaHQ9MSB3aWR0aD0xIGFsdD0iIj4KKzwvdGQ+CisgIDwvdHI+CisKKzwvdGFibGU+CisKKzwhLS0gZW5kIGxvd2VyIGxlZnQgc2lkZSBOYXZpZ2F0aW9uIC0tPgorPCEtLSBDT05URU5UIFRBQkxFIC0tPgorCis8VEFCTEUgYm9yZGVyPSIwIiB3aWR0aD0iNDQ3IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcmNvbG9yPSIjNjZGRjAwIj4KKyA8VFI+CisgIDxURCB2YWxpZ249IlRPUCIgYWxpZ249IkxFRlQiIHJvd3NwYW49IjIiPgorICAgPGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYiIGhlaWdodD0xIHdpZHRoPTE1IGFsdD0iIj48QlI+CisgIDwvVEQ+CisgIDxURCBjb2xzcGFuPSIzIiB2YWxpZ249IlRPUCIgYWxpZ249IkxFRlQiPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9NyB3aWR0aD00MzIgYWx0PSIiPjxCUj4KKworCis8IS0tIFNRTCBxdWVyeSBmb3IgUGFja2FnZSBoZXJlIC0tPgorCis8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTI+PGI+PGk+Tm9tYWQncyBMYW5kPC9pPjwvYj48L2ZvbnQ+PGJyPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9waXgxNTUuZ2lmIiBoZWlnaHQ9MTAgd2lkdGg9MTU1IGFsdD0iIj48YnI+PCEtLSBJQkRfU1VCSkVDVDogSG9tZWxlc3MsIGJ1dCBJRCdkLCBpbiBTZWF0dGxlIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9NT48Yj48YSBocmVmPSIvbmV3cy9wb2xpdGljcy8wLDEyODMsMzE5MTEsMDAuaHRtbCI+SG9tZWxlc3MsIGJ1dCBJRCdkLCBpbiBTZWF0dGxlPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9MSBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0jRkYwMDAwPjg6MTUgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTI+VGhlIGNpdHkgY291bmNpbCBhcHByb3ZlcyBhIHBsYW4gdG8gdHJhY2sgdGhlIGhvbWVsZXNzIGJ5IGEgbnVtYmVyaW5nIHN5c3RlbSwgc2F5aW5nIGl0J2xsIGltcHJvdmUgc2VydmljZXMuIFRoZSBpbXBsaWNhdGlvbnMgd29ycnkgcHJpdmFjeSBhZHZvY2F0ZXMsIG5hdHVyYWxseS4gQnkgQ3JhaWcgQmlja25lbGwuPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTE+PGk+PGEgaHJlZj0iL25ld3MvcG9saXRpY3MvMCwxMjgzLCwwMC5odG1sIj5pbiZuYnNwO1BvbGl0aWNzPC9hPjwvaT48L2ZvbnQ+PGJyPjx0YWJsZSBiZ2NvbG9yPSIjRjBGMEYwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgd2lkdGg9IjE0NyIgYWxpZ249IlJJR0hUIj4KKyA8IS0tIENvbW1lbnRhcnkgRnJhZyBCZWdpbiAtLT4KKyAgICAgICAgPFRSPgorICAgICAgICAgIDxURCBiZ2NvbG9yPSIjMDAwMDAwIj4mbmJzcDs8L1REPgorICAgICAgICAgIDxURCBiZ2NvbG9yPSIjMDAwMDAwIj48Zm9udCBzaXplPSIxIiBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iI0ZGRkZGRiI+PGI+SElUUyAmYW1wOyBNSVNDLjwvYj48L2ZvbnQ+PC9URD4KKyAgICAgICAgPC9UUj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDxURD4mbmJzcDs8L1REPgorICAgICAgICAgIDx0ZD48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgaGVpZ2h0PTUgd2lkdGg9NSBhbHQ9IiI+PGJyPgorCisJCTxmb250IHNpemU9MiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2NvbW1lbnRhcnlTZWN0aW9uLzAsMTI5MiwzMTY2NCwwMC5odG1sIj5DYWxlbmRhciBvZiBFLVZlbnRzPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9MiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPTEgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPk9uZ29pbmcgZ29pbmdzLW9uLiA8L2ZvbnQ+PGJyPjxicj48Zm9udCBzaXplPTIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Yj48YSBocmVmPSIvbmV3cy9jb21tZW50YXJ5U2VjdGlvbi8wLDEyOTIsMzE5MjYsMDAuaHRtbCI+UmFudHMgJiBSYXZlczwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPTIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0xIGZhY2U9IkFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5SZWFkZXJzIG9uIEFwcGxlJ3MgRzQgLi4uIEFPTCdzIHBhc3N3b3JkcyAuLi4gTVMgdnMuIExpbnV4LjwvZm9udD48YnI+PGJyPiAgPC90ZD4KKyAgICAgICAgPC90cj4KKzwhLS0gQ29tbWVudGFyeSBGcmFnIEVuZCAtLT4KKzx0cj4gCis8dGQgYWxpZ249ImxlZnQiIGJnY29sb3I9IiMwMDAwMDAiPiZuYnNwOzwvdGQ+IAorPHRkIGJnY29sb3I9IiMwMDAwMDAiPjxmb250IHNpemU9IjEiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjRkZGRkZGIj48Yj5DVVJSRU5UIEhPTy1IQTwvYj48L2ZvbnQ+PC90ZD4KKzwvdHI+CisKKzx0cj4gCis8dGQ+Jm5ic3A7PC90ZD4KKzx0ZD4KKzxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9NSB3aWR0aD01IGFsdD0iIj4KKzxicj4KKworPGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MvbXAzLzAsMTI4NSwsMDAuaHRtbCI+TVAzIFJvY2tzIHRoZSBXZWI8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxmb250IHNpemU9MSBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+RG93bmxvYWQgdGhlIHNvdW5kLiAgPGJyPjxpPlNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vci5ob3R3aXJlZC5jb20vci93bl9mZF9tcDNfcl9tc2NtX3R4dC9odHRwOi8vd2ViZmFybS5tZWRpYXBsZXguY29tL2NsaWNrX3RocnVfcmVxdWVzdC8xNjQtMTM2MWItMTA1MiIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+TXVzaWNtYWtlcjwvZm9udD48L2E+PC9pPjwvZm9udD48YnI+PGJyPiAKKworPGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3Mvd2lyZWxlc3MvMCwxMzgyLCwwMC5odG1sIj5UaGUgV2lyZWxlc3MgV29ybGQ8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxmb250IHNpemU9MSBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+TmV0d29ya2luZyBnZXRzIHVucGx1Z2dlZC4gIDxicj48aT5TcG9uc29yZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5lcmljc3Nvbi5zZS9nZXQvaW50ZXJuZXQvZGVmYXVsdC5zaHRtbCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+RXJpY3Nzb248L2ZvbnQ+PC9hPjwvaT48L2ZvbnQ+PGJyPjxicj4gCisKKzxmb250IHNpemU9MiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2RpZ2l3b29kLzAsMTQxMiwsMDAuaHRtbCI+RGlnaXRhbCBIb2xseXdvb2Q8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxmb250IHNpemU9MSBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+VGhlIGJ1enogb2YgdGVjaC48L2ZvbnQ+PGJyPjxicj4gCisKKzxmb250IHNpemU9MiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2lwby8wLDEzNTAsLDAwLmh0bWwiPklQTyBPdXRsb29rPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9MiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPTEgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkRlYWxzIGluIHRoZSBwaXBlbGluZS4gIDxicj48aT5TcG9uc29yZWQgYnkgPGEgaHJlZj0iaHR0cDovL3IuaG90d2lyZWQuY29tL3Ivd25faXBvX3Jfc3VuX3R4dC9odHRwOi8vc3VuLmNvbS9hZHMvc21pL2JyYW5kL2hvdHdpcmVkLmh0bWwiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGZvbnQgY29sb3I9IiMwMDAwMDAiPlN1bjwvZm9udD48L2E+PC9pPjwvZm9udD48YnI+PGJyPiAKKworPGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MvZWJpei8wLDEyNzIsLDAwLmh0bWwiPkUtQml6PC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9MiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPTEgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkJ1c2luZXNzIHVudXN1YWwuICA8YnI+PGk+U3BvbnNvcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9yLndpcmVkLmNvbS9yL3duX2ZkX3JfZWJpel9pYm1fdHh0L2h0dHA6Ly93d3cuaWJtLmNvbSIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+SUJNPC9mb250PjwvYT48L2k+PC9mb250Pjxicj48YnI+IAorCis8Zm9udCBzaXplPTIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Yj48YSBocmVmPSIvbmV3cy9tZWR0ZWNoLzAsMTI4NiwsMDAuaHRtbCI+TWVkLVRlY2ggQ2VudGVyPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9MiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPTEgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkZyb20gdGhlIGJsZWVkaW5nIGVkZ2UuPGJyPjxpPlNwb25zb3JlZCBieSBXZWJNRDwvaT48L2ZvbnQ+PGJyPjxicj4gCisKKzxmb250IHNpemU9MiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2xpbnV4LzAsMTQxMSwsMDAuaHRtbCI+VGhlIExpbnV4IEVmZmVjdDwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPTIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0xIGZhY2U9IkFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5Ob3QganVzdCBmb3IgZ2Vla3MuPC9mb250Pjxicj48YnI+IDxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9NyB3aWR0aD01IGFsdD0iIj48YnI+CisKKzxmb250IHNpemU9MiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxiPjxhIGhyZWY9Ii9uZXdzL2V4ZWMvMCwxMzcwLCwwMC5odG1sIj5FeGVjdXRpdmUgU3VtbWFyeTwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPTEgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkNFT3MsIENPT3MsIENJT3MgdW5pdGUuICA8YnI+PGk+U3BvbnNvcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9yLndpcmVkLmNvbS9yL3duX2V4ZWNfcl92aWduL2h0dHA6Ly93d3cudmlnbmV0dGUuY29tLyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+VmlnbmV0dGU8L2E+PC9pPjwvZm9udD48YnI+PGJyPiAKKworPGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3Mvc2Nob29sLzAsMTM4MywsMDAuaHRtbCI+TWFraW5nIHRoZSBHcmFkZTwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPTIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0xIGZhY2U9IkFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj5SZWFkaW5nLCB3cml0aW5nLCBhbmQgUk9NLiAgPGJyPjxpPlNwb25zb3JlZCBieSA8YSBocmVmPSJodHRwOi8vci5ob3R3aXJlZC5jb20vci93bl9zY2hfcl9uYXZfdW9wL2h0dHA6Ly9hZHMyNS5mb2NhbGluay5jb20vU21hcnRCYW5uZXIvcGFnZT8xMjYzMC41MyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+VSBvZiBQaG9lbml4PC9mb250PjwvYT48L2k+PC9mb250Pjxicj48YnI+IAorCis8Zm9udCBzaXplPTIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Yj48YSBocmVmPSIvbmV3cy9pbmZvc3RydWN0dXJlLzAsMTM3NywsMDAuaHRtbCI+SW5mb3N0cnVjdHVyZTwvYT48L2I+PC9mb250Pjxicj48Zm9udCBzaXplPTEgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPkFuIElTL0lUIHJlc291cmNlIDxicj48aT5TcG9uc29yZWQgYnkgPGEgaHJlZj0iaHR0cDovL3Iud2lyZWQuY29tL3Ivd25faXNfcl9zc2VjL2h0dHA6Ly9hZC5kb3VibGVjbGljay5uZXQvY2xrOzY1MzE2MzszNTk5NTcxO3M/aHR0cDovL3d3dy5zcHJpbnRiaXouY29tL3MKK2VydmxldC9hcHBzZXJ2bGV0P2Zyb209L3dpcmVkL3NwcmludC8mdGVtcGxhdGU9L3NlY3VyaXR5L3NlY3VyaXR5Lmh0bWwmU0lURT0KK3dpcmVkLmNvbSZCQU5ORVI9U3ByaW50IiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxmb250IGNvbG9yPSIjMDAwMDAwIj5TcHJpbnQ8L2E+PC9pPjwvZm9udDwvZm9udD48YnI+PGJyPiAKKworPGZvbnQgc2l6ZT0yIGZhY2U9IkFyaWFsLEhlbHZldGljYSwgc2Fucy1zZXJpZiI+PGI+PGEgaHJlZj0iL25ld3MveTJrLzAsMTM2MCwsMDAuaHRtbCI+WTJLIFdhdGNoPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IHNpemU9MiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPTEgZmFjZT0iQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgY29sb3I9IiMwMDAwMDAiPlRpY2suLi4gVGljay4uLiBUaWNrLi4uPC9mb250Pjxicj48YnI+IAorCis8Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTI+PGI+PGk+PGEgaHJlZj0iL25ld3Mvc3BlY2lhbF9yZXBvcnRzLzEsMTI5MywsMDAuaHRtbCI+TW9yZSBIb28tSGE8L2E+PC9pPjwvYj48L2ZvbnQ+PGJyPiZuYnNwOzxicj4KKworPC90ZD4KKzwvdHI+Cis8IS0tIHN0YXJ0IG9mIEdlbiBOZXdzIC0tPgorICAgICAgICAgICAgICAgIDx0cj4gCisgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzAwMDAwMCI+Jm5ic3A7PC90ZD4KKyAgICAgICAgICA8dGQgYmdjb2xvcj0iIzAwMDAwMCI+PGZvbnQgc2l6ZT0iMSIgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgY29sb3I9IiNGRkZGRkYiPjxiPk1FQU5XSElMRS4uLjwvYj48L2ZvbnQ+PC90ZD4KKyAgICAgICAgPC90cj4KKworICAgICAgICA8dHI+IAorICAgICAgICAgIDx0ZD4mbmJzcDs8L3RkPgorICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9zcGFjZXIuZ2lmIiBoZWlnaHQ9NSB3aWR0aD01IGFsdD0iIj48YnI+CisKKworPCEtLSAzMTk0MiAtLT4KKzxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIj48Yj5G/GhyZXIgRnVyb3I8L2I+PC9mb250Pjxicj48Zm9udCBzaXplPSIxIiBmYWNlPSJBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCI+PHA+DQorQ29udHJ1Y3Rpb24gd29ya2VycyBpbiBCZXJsaW4gb3BlbmVkIGFuIG9sZCB3b3VuZCBpbiB0aGUgR2VybWFuIHBzeWNoZSB0aGlzIHdlZWsgd2hlbiB0aGV5IGFjY2lkZW50YWxseSBzdHVtYmxlZCBhY3Jvc3MgQWRvbGYgSGl0bGVyJ3MgYnVua2VyIHdoaWxlIGV4Y2F2YXRpbmcgbmVhciB0aGUgQnJhbmRlbmJ1cmcgR2F0ZS4gVGhlIGJ1bmtlciwganVzdCBzb3V0aCBvZiB0aGUgR2F0ZSwgd2FzIHdoZXJlIEhpdGxlciBhbmQgaGlzIGNsb3Nlc3QgYXNzb2NpYXRlcyBiYXJyaWNhZGVkIHRoZW1zZWx2ZXMgYXMgdGhlIFJlZCBBcm15IGFwcHJvYWNoZWQgQmVybGluIGluIHRoZSB3YW5pbmcgZGF5cyBvZiBXb3JsZCBXYXIgSUkuIEl0IGlzIGFsc28gd2hlcmUgdGhlIEb8aHJlciBhbmQgaGlzIGJyaWRlLCBFdmEgQnJhdW4sIGNvbW1pdHRlZCBzdWljaWRlIHJhdGhlciB0aGFuIGZhbGwgaW50byB0aGUgaGFuZHMgb2YgdGhlIFJ1c3NpYW5zLiBBbHRob3VnaCB0aGUgYnVua2VyJ3MgbG9jYXRpb24gaGFzIG5ldmVyIGJlZW4gYSBteXN0ZXJ5LCBpdCBoYXMgYmVlbiBzZWFsZWQgb2ZmIHNpbmNlIHRoZSBlbmQgb2YgdGhlIHdhciB0byBrZWVwIG5lby1OYXppcyBmcm9tIHR1cm5pbmcgaXQgaW50byBhIHNocmluZS4NCis8YnI+PGxpPk1vcmUgZnJvbSA8YQ0KK2hyZWY9Imh0dHA6Ly93d3cubHljb3MuY29tL25ld3MvZmxhc2gvaGl0bGVyYnVua2VyLmh0bWw/dj13bjEwMTUmbHB2PTEiPkx5Y29zPC9hPjwvZm9udD48YnI+PGJyPgorIDwvdGQ+CisgICAgICAgIDwvdHI+Cis8IS0tIGVuZCBvZiBHZW4gTmV3cyAtLT4KKzwvdGFibGU+CisKKworPGZvbnQgc2l6ZT0iMSI+Jm5ic3A7PGJyPjwvZm9udD4KKworPGJyPgorCis8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTI+PGI+PGk+T3RoZXIgVG9wIFN0b3JpZXM8L2k+PC9iPjwvZm9udD48YnI+Cis8aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvcGl4MTU1LmdpZiIgaGVpZ2h0PTEwIHdpZHRoPTE1NSBhbHQ9IiI+PGJyPgorCis8IS0tIFNRTCBxdWVyeSBoZXJlIC0tPgorPCEtLSBJQkRfU1VCSkVDVDpXYWxsIFN0cmVldCBLZWVwcyBSZWVsaW5nIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9Mz48Yj48YSBocmVmPSIvbmV3cy9yZXV0ZXJzLzAsMTM0OSwzMTkzNCwwMC5odG1sIj5XYWxsIFN0cmVldCBLZWVwcyBSZWVsaW5nPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPSNmZjAwMDAgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjEwOjE1IGEubS48L2ZvbnQ+Jm5ic3A7PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0yPlRoZSBEb3cgYW5kIE5hc2RhcSBzdWZmZXIgc2l6ZWFibGUgbG9zc2VzIGR1cmluZyB0aGUgZmlyc3QgaGFsZiBvZiBGcmlkYXkgdHJhZGluZy4gV2h5PyBXaG9sZXNhbGUgcHJpY2VzIGFyZSB0aGUgaGlnaGVzdCB0aGlzIGRlY2FkZSwgYW5kIEdyZWVuc3BhbiBpcyBjb25jZXJuZWQgYWJvdXQgc3RvY2sgcHJpY2VzLjwvZm9udD48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjxpPjxhIGhyZWY9Ii9uZXdzL3JldXRlcnMvMCwxMzQ5LCwwMC5odG1sIj5pbiZuYnNwO1JldXRlcnM8L2E+PC9pPjwvZm9udD48YnI+PGJyPjwhLS0gSUJEX1NVQkpFQ1Q6VGhlIE1hcmtldCdzIE1hZG5lc3MgLS0+PGZvbnQgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0zPjxiPjxhIGhyZWY9Ii9uZXdzL3JldXRlcnMvMCwxMzQ5LDMxOTM1LDAwLmh0bWwiPlRoZSBNYXJrZXQncyBNYWRuZXNzPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPSNmZjAwMDAgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjk6MTAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTI+VGhlIGJ1bGxzIGFuZCB0aGUgYmVhcnMgYXJlIGluIHRoZSBtaWRzdCBvZiBhIEJhdHRsZSBSb3lhbGUsIGFuZCBhbGwgdGhpcyB0dXJidWxlbmNlIGlzIG5vdCBhIGhlYWx0aHkgdGhpbmcuIFNvIHNheSB0aGUgZXhwZXJ0cy48L2ZvbnQ+PGJyPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9MT48aT48YSBocmVmPSIvbmV3cy9yZXV0ZXJzLzAsMTM0OSwsMDAuaHRtbCI+aW4mbmJzcDtSZXV0ZXJzPC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48IS0tIElCRF9TVUJKRUNUOidXYW50IGEgTG9hbj8gV2hhdCdzIFlvdXIgUmFjZT8nIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9Mz48Yj48YSBocmVmPSIvbmV3cy9wb2xpdGljcy8wLDEyODMsMzE1MzMsMDAuaHRtbCI+J1dhbnQgYSBMb2FuPyBXaGF0J3MgWW91ciBSYWNlPyc8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9I2ZmMDAwMCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTE+MzowMCBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9Mj5UaGUgRmVkZXJhbCBSZXNlcnZlIGlzIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYmFua2luZyByZWd1bGF0aW9ucyB0byBsZXQgYmFua3MgY29sbGVjdCBkYXRhIG9uIHRoZSByYWNlLCBzZXgsIHJlbGlnaW9uLCBhbmQgbmF0aW9uYWwgb3JpZ2luIG9mIHRoZWlyIGN1c3RvbWVycy4gQnkgRGVjbGFuIE1jQ3VsbGFnaC4gPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTE+PGk+PGEgaHJlZj0iL25ld3MvcG9saXRpY3MvMCwxMjgzLCwwMC5odG1sIj5pbiZuYnNwO1BvbGl0aWNzPC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48IS0tIElCRF9TVUJKRUNUOk11c2ljIFJlZ3M6IEEgQmFnZnVsIG9mIE5vaXNlIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9Mz48Yj48YSBocmVmPSIvbmV3cy9idXNpbmVzcy8wLDEzNjcsMzE4MzIsMDAuaHRtbCI+TXVzaWMgUmVnczogQSBCYWdmdWwgb2YgTm9pc2U8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9I2ZmMDAwMCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTE+MzowMCBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9Mj5UaGUgc3RydWdnbGUgdG8gY29tZSB1cCB3aXRoIGEgZGlnaXRhbCBtdXNpYyBzdGFuZGFyZCB0aGF0IHdvdWxkIG1pbmltaXplIGRvd25sb2FkIHBpcmFjeSBpcyBwdXNoaW5nIHJpZ2h0IHVwIGFnYWluc3QgdGhlIGhvbGlkYXkgZ2lmdC1naXZpbmcgc2Vhc29uLiBCeSBKZW5uaWZlciBTdWxsaXZhbi48L2ZvbnQ+PGJyPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9MT48aT48YSBocmVmPSIvbmV3cy9idXNpbmVzcy8wLDEzNjcsLDAwLmh0bWwiPmluJm5ic3A7QnVzaW5lc3M8L2E+PC9pPjwvZm9udD48YnI+PGJyPjwhLS0gSUJEX1NVQkpFQ1Q6Q2FuJ3QgQmVhdCAnRW0/IEdyZWVuICdFbSAtLT48Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTM+PGI+PGEgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8wLDEyODIsMzE5MjcsMDAuaHRtbCI+Q2FuJ3QgQmVhdCAnRW0/IEdyZWVuICdFbTwvYT48L2I+PC9mb250Pjxicj48Zm9udCBjb2xvcj0jZmYwMDAwIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9MT4zOjAwIGEubS48L2ZvbnQ+Jm5ic3A7PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0yPkhpZ2gtdGVjaCBjb21wYW5pZXMgYXJlIG5vdG9yaW91c2x5IGVudmlyb25tZW50YWxseSB1bmZyaWVuZGx5LCBhbmQgYSBncm93aW5nIG51bWJlciBvZiAiR3JlZW5pZXMiIGFyZSB0cnlpbmcgdG8gY2hhbmdlIHRoaW5ncyBmcm9tIHRoZSBpbnNpZGUgLi4uIHdpdGggdmFyeWluZyByZXN1bHRzLiBCeSBDaHJpcyBHYWl0aGVyLjwvZm9udD48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjxpPjxhIGhyZWY9Ii9uZXdzL3RlY2hub2xvZ3kvMCwxMjgyLCwwMC5odG1sIj5pbiZuYnNwO1RlY2hub2xvZ3k8L2E+PC9pPjwvZm9udD48YnI+PGJyPjwhLS0gSUJEX1NVQkpFQ1Q6WTJLIENsb3VkIE92ZXIgTVMgT2ZmaWNlIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9Mz48Yj48YSBocmVmPSIvbmV3cy9idXNpbmVzcy8wLDEzNjcsMzE5MzIsMDAuaHRtbCI+WTJLIENsb3VkIE92ZXIgTVMgT2ZmaWNlPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPSNmZjAwMDAgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTI+V2luZG93cyBOVCBzYWxlcyByZW1haW4gc3Ryb25nLCBidXQgY29ycG9yYXRlIGNsaWVudHMgYXJlIHdhcnkgb2YgdXBncmFkaW5nIHRvIE1TIE9mZmljZSAyMDAwLiBBbmFseXN0cyBzYXkgdGhhdCBtZWFucyBzdHJvbmcsIGJ1dCBub3Qgc3R1bm5pbmcsIE1pY3Jvc29mdCBlYXJuaW5ncy4gPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTE+PGk+PGEgaHJlZj0iL25ld3MvYnVzaW5lc3MvMCwxMzY3LCwwMC5odG1sIj5pbiZuYnNwO0J1c2luZXNzPC9hPjwvaT48L2ZvbnQ+PGJyPjxicj48Zm9udCBjb2xvcj0jRkYwMDAwIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9MT5NZWQtVGVjaDwvZm9udD48YnI+PCEtLSBJQkRfU1VCSkVDVDpCaW9jaGlwcyBmb3IgQ3VzdG9tIENoZW1vIC0tPjxmb250IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIHNpemU9Mz48Yj48YSBocmVmPSIvbmV3cy90ZWNobm9sb2d5LzAsMTI4MiwzMTkxNCwwMC5odG1sIj5CaW9jaGlwcyBmb3IgQ3VzdG9tIENoZW1vPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPSNmZjAwMDAgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTI+RGlmZmVyZW50IGNhbmNlciBwYXRpZW50cyBuZWVkIGRpZmZlcmVudCBtZWRpY2luZSwgYnV0IGRvY3RvcnMgY2FuIHJhcmVseSBkZXRlcm1pbmUgdGhlIGJlc3QgbWF0Y2guIE5ldyBiaW9jaGlwIHRlY2hub2xvZ3kgcHJvbWlzZXMgY2hlbW90aGVyYXB5IHRhaWxvcmVkIHRvIGEgdHVtb3IncyBnZW5ldGljIG1ha2UtdXAuIEJ5IEtyaXN0ZW4gUGhpbGlwa29za2kuPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTE+PGk+PGEgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8wLDEyODIsLDAwLmh0bWwiPmluJm5ic3A7VGVjaG5vbG9neTwvYT48L2k+PC9mb250Pjxicj48YnI+PCEtLSBJQkRfU1VCSkVDVDpIaWdoIFN0YWtlcyBpbiBQcmljZWxpbmUgU3VpdCAtLT48Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTM+PGI+PGEgaHJlZj0iL25ld3MvYnVzaW5lc3MvMCwxMzY3LDMxOTE2LDAwLmh0bWwiPkhpZ2ggU3Rha2VzIGluIFByaWNlbGluZSBTdWl0PC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGNvbG9yPSNmZjAwMDAgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjM6MDAgYS5tLjwvZm9udD4mbmJzcDs8Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTI+SXQncyBub3QganVzdCBhbm90aGVyIHJvdW5kIG9mIFJlZG1vbmQtYmFzaGluZy4gQSBQcmljZWxpbmUuY29tIGxhd3N1aXQgYWdhaW5zdCBNaWNyb3NvZnQncyBFeHBlZGlhLmNvbSBtYXkgaGF2ZSBhIGJpZyBpbXBhY3Qgb24gaG93IE5ldCBjb21wYW5pZXMgcHJvdGVjdCB0aGVpciBidXNpbmVzcyBtb2RlbHMuIEJ5IEpvYW5uYSBHbGFzbmVyLjwvZm9udD48YnI+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgc2l6ZT0xPjxpPjxhIGhyZWY9Ii9uZXdzL2J1c2luZXNzLzAsMTM2NywsMDAuaHRtbCI+aW4mbmJzcDtCdXNpbmVzczwvYT48L2k+PC9mb250Pjxicj48YnI+PCEtLSBJQkRfU1VCSkVDVDpCaW9kaXZlcnNpdHkgTWVyZ2VzIE9ubGluZSAtLT48Zm9udCBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTM+PGI+PGEgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8wLDEyODIsMzE5MTgsMDAuaHRtbCI+QmlvZGl2ZXJzaXR5IE1lcmdlcyBPbmxpbmU8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgY29sb3I9I2ZmMDAwMCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgR2VuZXZhLCBzYW5zLXNlcmlmIiBzaXplPTE+MzowMCBhLm0uPC9mb250PiZuYnNwOzxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9Mj5UaGUgZmFyLWZsdW5nIGRhdGFiYXNlcyBvbiBnbG9iYWwgYmlvZGl2ZXJzaXR5IGdldCB0b2dldGhlciB0byBmb3JtIG9uZSBtb25zdGVyIGRhdGFiYXNlLiBTb29uIHRoZSByZWQtZXllZCB0cmVlIGZyb2cgd2lsbCBiZSBleWVpbmcgdGhvc2UgU3dlZGlzaCBsaW5nb25iZXJyaWVzLiBGcm9tIHRoZSBFbnZpcm9ubWVudCBOZXdzIFNlcnZpY2UuPC9mb250Pjxicj48Zm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBzaXplPTE+PGk+PGEgaHJlZj0iL25ld3MvdGVjaG5vbG9neS8wLDEyODIsLDAwLmh0bWwiPmluJm5ic3A7VGVjaG5vbG9neTwvYT48L2k+PC9mb250Pjxicj48YnI+PCEtLSBTUUwgYWJvdmUgLS0+CisKKworICAgICAgICAKKzwhLS0tLS0tVFJBREVTLS0tLS0tLS0tPgorPGJyPgorPGZvbnQgZmFjZT0gIlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9Mj48Yj48aT5FbHNld2hlcmUgVG9kYXk8L2k+PC9iPjwvZm9udD48YnI+Cis8aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvcGl4MTU1LmdpZiIgaGVpZ2h0PTEwIHdpZHRoPTE1NSBhbHQ9IiI+PGJyPgorCis8IS0tIFNRTCBxdWVyeSBoZXJlIC0tPgorPGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0zPjxiPjxhIGhyZWY9Imh0dHA6Ly93d3cudGhlc3RhbmRhcmQuY29tL2FydGljbGVzL2Rpc3BsYXkvMCwxNDQ5LDY5NzUsMDAuaHRtbD9ob21lLnRmIj5GQ0M6IEhhbmRzLU9mZiBvbiBCcm9hZGJhbmQ8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgZmFjZT0iZ2VuZXZhLCBhcmlhbCIgc2l6ZT0yPjxjaXRlPlRoZSBJbmR1c3RyeSBTdGFuZGFyZDwvY2l0ZT48L2ZvbnQ+PGJyPjxicj48Zm9udCBmYWNlPSJoZWx2ZXRpY2EsIGFyaWFsIiBzaXplPTM+PGI+PGEgaHJlZj0iaHR0cDovL25ld3MubHljb3MuY29tL3N0b3JpZXMvVG9wTmV3cy8xOTk5MTAxNFJUTkVXUy1BUk1TLVRSRUFUWS5hc3AiPldoaXRlIEhvdXNlIExhc2hlcyBPdXQgb24gVHJlYXR5PC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9Mj5MeWNvczwvZm9udD48YnI+PGJyPjxmb250IGZhY2U9ImhlbHZldGljYSwgYXJpYWwiIHNpemU9Mz48Yj48YSBocmVmPSJodHRwOi8vd3d3LnBhdGhmaW5kZXIuY29tL3RpbWUvbWFnYXppbmUvYXJ0aWNsZXMvMCwzMjY2LDMyMjA3LDAwLmh0bWwiPlN0ZXZlIEpvYnMgYXQgNDQ8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgZmFjZT0iZ2VuZXZhLCBhcmlhbCIgc2l6ZT0yPjxjaXRlPlRpbWU8L2NpdGU+PC9mb250Pjxicj48YnI+PGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0zPjxiPjxhIGhyZWY9Imh0dHA6Ly93d3cuemRuZXQuY29tL3pkbm4vc3Rvcmllcy9uZXdzLzAsNDU4NiwyMzUzNjA4LDAwLmh0bWwiPkNvbXB1dGVycyBNYXkgUnVuIG9uIEdhczwvYT48L2I+PC9mb250Pjxicj48Zm9udCBmYWNlPSJnZW5ldmEsIGFyaWFsIiBzaXplPTI+WkROTjwvZm9udD48YnI+PGJyPjxmb250IGZhY2U9ImhlbHZldGljYSwgYXJpYWwiIHNpemU9Mz48Yj48YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tL2xpYnJhcnkvdGVjaC85OS8xMC9iaXp0ZWNoL2FydGljbGVzLzE0ZnJlZS5odG1sIj5NdWNoIElzIEZyZWUgaW4gdGhlIFdpcmVkIFdvcmxkPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9Mj48Y2l0ZT5UaGUgTmV3IFlvcmsgVGltZXM8L2NpdGU+IChSZWdpc3RyYXRpb24gUmVxdWlyZWQpPC9mb250Pjxicj48YnI+PGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0zPjxiPjxhIGhyZWY9Imh0dHA6Ly93d3cudXNhdG9kYXkuY29tL2xpZmUvY3liZXIvbmIvbmI0Lmh0bSI+TWVsaXNzYTogSSdtIEJhYWFhY2s8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgZmFjZT0iZ2VuZXZhLCBhcmlhbCIgc2l6ZT0yPjxjaXRlPlVTQSBUb2RheTwvY2l0ZT48L2ZvbnQ+PGJyPjxicj48Zm9udCBmYWNlPSJoZWx2ZXRpY2EsIGFyaWFsIiBzaXplPTM+PGI+PGEgaHJlZj0iaHR0cDovL3d3dy5tc25iYy5jb20vbmV3cy8zMjI5MjYuYXNwIj5Eb21haW4gT3duZXJzIFN1cnJlbmRlciBQcml2YWN5PC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9Mj5NU05CQzwvZm9udD48YnI+PGJyPjxmb250IGZhY2U9ImhlbHZldGljYSwgYXJpYWwiIHNpemU9Mz48Yj48YSBocmVmPSJodHRwOi8vd3d3Lndhc2hpbmd0b25wb3N0LmNvbS93cC1zcnYvYnVzaW5lc3MvbG9uZ3Rlcm0vdGVjaC90ZWNodGh1cnNkYXkvZG93bmxvYWQvZG93bmxvYWQuaHRtIj5EaXZpZGluZyB0byBDb25xdWVyIGluIFZDIEdhbWU8L2E+PC9iPjwvZm9udD48YnI+PGZvbnQgZmFjZT0iZ2VuZXZhLCBhcmlhbCIgc2l6ZT0yPjxjaXRlPlRoZSBXYXNoaW5ndG9uIFBvc3Q8L2NpdGU+PC9mb250Pjxicj48YnI+PGZvbnQgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCIgc2l6ZT0zPjxiPjxhIGhyZWY9Imh0dHA6Ly93d3cuc2Fsb24uY29tL3RlY2gvYm9va3MvMTk5OS8xMC8xNC9yZWRoYXRfYm9vay9pbmRleC5odG1sIj5UaGUgUmVkIEhhdCBEaWFyaWVzPC9hPjwvYj48L2ZvbnQ+PGJyPjxmb250IGZhY2U9ImdlbmV2YSwgYXJpYWwiIHNpemU9Mj5TYWxvbjwvZm9udD48YnI+PGJyPjxmb250IGZhY2U9ImhlbHZldGljYSwgYXJpYWwiIHNpemU9Mz48Yj48YSBocmVmPSJodHRwOi8vbmV3cy5iYmMuY28udWsvaGkvZW5nbGlzaC9zY2kvdGVjaC9uZXdzaWRfNDczMDAwLzQ3Mzg1Ni5zdG0iPlNjcmVlbnNhdmVyIHRvIFByZWRpY3QgQ2xpbWF0ZTwvYT48L2I+PC9mb250Pjxicj48Zm9udCBmYWNlPSJnZW5ldmEsIGFyaWFsIiBzaXplPTI+QkJDIE5ld3M8L2ZvbnQ+PGJyPjxicj48IS0tIFNRTCBhYm92ZSAtLT4KKworCisKKzwhLS0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLS0+CisgCisgICA8L1REPgorICA8L1RSPgorCisgIDxUUj4KKyAgIDxURCB2YWxpZ249IlRPUCIgYWxpZ249IkxFRlQiPgorCisgICAgPGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3NwYWNlci5naWYiIGhlaWdodD0xIHdpZHRoPTI4MCBhbHQ9IiI+PEJSPgorCQorICAgIDwhLS0gRk9PVEVSIC0tPgorCis8YnI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMud2lyZWQuY29tL25ld3MvaW1hZ2VzL3BpeDE1NS5naWYiIGhlaWdodD0xMCB3aWR0aD0xNTUgYm9yZGVyPTAgdXNlbWFwPSIjbmF2c3RyaXAubWFwIiBhbHQ9IiI+Cis8YnI+CisKKzxpbWcgc3JjPSJodHRwOi8vc3RhdGljLndpcmVkLmNvbS9uZXdzL2ltYWdlcy9uYXZzdHJpcF9vZmYuZ2lmIiBoZWlnaHQ9MTcgd2lkdGg9MTI2IHVzZW1hcD0iI25hdnN0cmlwLm1hcCIgYm9yZGVyPTAgYWx0PSIiPjxicj48YnI+CisKKzxwPjxmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBHZW5ldmEsIHNhbnMtc2VyaWYiIHNpemU9MT4KKzxhIGhyZWY9Imh0dHA6Ly93d3cud2lyZWQuY29tL25ld3MvZmVlZGJhY2suaHRtbCI+U2VuZCB1cyBmZWVkYmFjazwvYT4KKyZuYnNwO3wmbmJzcDsKKzxhIGhyZWY9Imh0dHA6Ly93d3cuaG90d2lyZWQuY29tL2pvYnMvIj5Xb3JrIGF0IFdpcmVkIERpZ2l0YWw8L2E+CismbmJzcDt8Jm5ic3A7Cis8YSBocmVmPSJodHRwOi8vaG9tZS53aXJlZC5jb20vYWR2ZXJ0aXNpbmcvIj5BZHZlcnRpc2Ugd2l0aCB1czwvYT4KKzxicj4KKzxhIGhyZWY9Imh0dHA6Ly9ob21lLndpcmVkLmNvbS8iPkFib3V0IFdpcmVkIERpZ2l0YWw8L2E+CismbmJzcDt8Jm5ic3A7Cis8YSBocmVmPSJodHRwOi8vd3d3LndpcmVkLmNvbS9ob21lL2RpZ2l0YWwvcHJpdmFjeS8iPk91ciBQcml2YWN5IFBvbGljeTwvYT48L2ZvbnQ+CisKKworPHA+PGZvbnQgZmFjZT0iVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSIgc2l6ZT0xPjxhIGhyZWY9Imh0dHA6Ly93d3cud2lyZWQuY29tL2hvbWUvY29weXJpZ2h0Lmh0bWwiPkNvcHlyaWdodDwvYT4gJmNvcHk7IDE5OTQtOTkgV2lyZWQgRGlnaXRhbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9mb250PgorCis8YnI+Cis8IS0tIFRSQUNLSU5HIC0tPgorPGltZyBzcmM9Imh0dHA6Ly93d3cud2lyZWQuY29tL3NwZWNpYWwvbW9keC9uZXdzLmdpZiIgaGVpZ2h0PTEgd2lkdGg9MSBhbHQ9IiI+CisKKzxNQVAgTkFNRT0ibmF2c3RyaXAubWFwIj4KKzxBUkVBIFNIQVBFPXJlY3QgQ09PUkRTPSIwLDAsMTQsMTYiIEhSRUY9Ii9uZXdzIj4KKzxBUkVBIFNIQVBFPXJlY3QgQ09PUkRTPSIxNSwwIDMxLDE2IiBIUkVGPSIvbmV3cy9idXNpbmVzcy8iPgorPEFSRUEgU0hBUEU9cmVjdCBDT09SRFM9IjMyLDAsNDgsMTYiIEhSRUY9Ii9uZXdzL2N1bHR1cmUvIj4KKzxBUkVBIFNIQVBFPXJlY3QgQ09PUkRTPSI0OSwwLDY1LDE2IiBIUkVGPSIvbmV3cy90ZWNobm9sb2d5LyI+Cis8QVJFQSBTSEFQRT1yZWN0IENPT1JEUz0iNjYsMCw4MywxNiIgSFJFRj0iL25ld3MvcG9saXRpY3MvIj4KKzwvTUFQPgorIDwvVEQ+CisgICA8VEQgdmFsaWduPSJUT1AiIGFsaWduPSJMRUZUIj4KKyAgICA8aW1nIHNyYz0iaHR0cDovL3N0YXRpYy53aXJlZC5jb20vbmV3cy9pbWFnZXMvc3BhY2VyLmdpZiIgaGVpZ2h0PTEgd2lkdGg9NSBhbHQ9IiI+CisgICA8L1REPgorICAgPFREIHZhbGlnbj0iVE9QIiBhbGlnbj0iTEVGVCI+CisgICA8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKworCis8YnI+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvNHJlY3RzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvNHJlY3RzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iOGQxYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy80cmVjdHMueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8ZGVzYz5Gb3VyIHNlcGFyYXRlIHJlY3RhbmdsZXMNCisgIDwvZGVzYz4NCisgICAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjYwIi8+DQorICAgIDxyZWN0IHdpZHRoPSIzMCIgaGVpZ2h0PSI3MCIvPg0KKyAgICA8cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iODAiLz4NCisgICAgPHJlY3Qgd2lkdGg9IjUwIiBoZWlnaHQ9IjkwIi8+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9hLXZhbGlkLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvYS12YWxpZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjMzYjc4YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvYS12YWxpZC54bWwKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPlRoaXMgdmFsaWQgc3ZnIGRvY3VtZW50IGRyYXdzIGEgdHJpYW5nbGUgd2hpY2ggaXMgYSBoeXBlcmxpbmsNCisgIDwvZGVzYz4NCisgIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnIj4NCisgICAgPHAgZD0iTSAwIDAgTCAyMDAgMCBMIDEwMCAyMDAgWiIvPg0KKyAgPC9hPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvYS13Zi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2Etd2YueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc1NmU5YzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2Etd2YueG1sCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIg0KKyB4bWxucyA9ICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCc+DQorICA8ZGVzYz5UaGlzIHdlbGwgZm9ybWVkIHN2ZyBkb2N1bWVudCBkcmF3cyBhIHRyaWFuZ2xlIHdoaWNoIGlzIGEgaHlwZXJsaW5rDQorICA8L2Rlc2M+DQorICA8YSB4bWw6bGluaz0ic2ltcGxlIiBzaG93PSJyZXBsYWNlIiBhY3R1YXRlPSJ1c2VyIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZyI+DQorICAgIDxwIGQ9Ik0gMCAwIEwgMjAwIDAgTCAxMDAgMjAwIFoiLz4NCisgIDwvYT4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2Jpa2UueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9iaWtlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTZiOTk2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9iaWtlLnhtbApAQCAtMCwwICsxLDQxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPCEtLURPQ1RZUEUgc3ZnIFNZU1RFTSAic3ZnLTE5OTkwNDEyLmR0ZCItLT4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDx0aXRsZT5Lb25hIExhdmFkb21lIG1vdW50YWluIGJpa2UNCisgIDwvdGl0bGU+DQorICA8ZGVzYz5UaGlzIHBpY3R1cmUgc2hvd3MgYSBtb3VudGFpbiBiaWtlLCBhIGh1bWFuLXByb3BlbGxlZCwgDQorICBtdWx0aS10ZXJyYWluIHZlaGljbGUuIFdoaWxlIGl0IGNhbiBiZSBzdWNjZXNmdWxseSB1c2VkIG9uIG1vb3JsYW5kLCANCisgIGZvcmVzdCwgcm9hZHMsIGFuZCBsYXJnZSBoaWxscyBpdCBpcyBub3QgYWN0dWFsbHkgc3VpdGFibGUgZm9yIGdvaW5nIA0KKyAgdXAgbW91bnRhaW5zLg0KKyAgPC9kZXNjPg0KKyAgPGcgaWQ9ImJpa2UiPg0KKyAgICA8ZGVmcz4NCisgICAgIDxzeW1ib2wgaWQ9InNwb2tlIj48ZGVzYz4xNC8xMiBnYXVnZSBkb3VibGUgYnV0dGVkIHNwb2tlPC9kZXNjPg0KKyAgICAgPCEtLSB0aGUgcGF0aCBkYXRhIGdvZXMgaGVyZSAtLT48L3N5bWJvbD4NCisgICAgIA0KKyAgICAgPHN5bWJvbCBpZD0iaHViIj48ZGVzYz5ibGFjayBhbm9kaXNlZCBsb3cgdG9yc2lvbiBodWI8L2Rlc2M+DQorICAgICA8IS0tdGhlIHBhdGggZGF0YSBnb2VzIGhlcmUgLS0+PC9zeW1ib2w+DQorICAgICANCisgICAgIDxzeW1ib2wgaWQ9InJpbSI+PGRlc2M+dHdpbiB3YWxsLCBleWVsZXR0ZWQgcmltPC9kZXNjPg0KKyAgICAgPCEtLSB0aGUgcGF0aCBkYXRhIGdvZXMgaGVyZS0tPjwvc3ltYm9sPg0KKyAgICAgDQorICAgICA8c3ltYm9sIGlkPSJjb2dzIj48ZGVzYz44IHNwZWVkLCB3aWRlIHJhdGlvIGdlYXJpbmc8L2Rlc2M+DQorICAgICA8IS0tdGhlIHBhdGggZGF0YSBnb2VzIGhlcmUgLS0+PC9zeW1ib2w+DQorICAgICANCisgICAgIDxzeW1ib2wgaWQ9ImxhY2luZyI+PGRlc2M+ZG91YmxlIGNyb3NzIGxhY2luZyBvZiAzMiBzcG9rZXM8L2Rlc2M+DQorICAgICA8L3N5bWJvbD4NCisgICAgPC9kZWZzPg0KKyAgICA8IS0tIHRoZSBvdmVyYWxsIGJpa2UgZHJhd2luZyBnb2VzIGhlcmUgLS0+DQorICAgIDxnIGlkPSJmcm9udHdoZWVsIj4NCisgICAgPHRpdGxlPkZyb250IHdoZWVsPC90aXRsZT4NCisgICAgPGRlc2M+VGhlIGZyb250IHdoZWVsIHByb3ZpZGVzIGdyaXAsIHN0ZWVyaW5nIGFuZCBzb21lIHNob2NrIGFic29ycHRpb248L2Rlc2M+DQorICAgIDx1c2UgaHJlZj0iaWQobGFjaW5nKSIgc3R5bGU9InJvdGF0aW9uOiAyMGRlZzsgZmlsbGNvbG9yOiBibGFjayIvPg0KKyAgICA8L2c+DQorICAgIDxnIGlkPSJiYWNrd2hlZWwiPg0KKyAgICA8L2c+DQorICAgIDxnIGlkPSJmcmFtZSI+PCEtLSBhbmQgc28gb24gLS0+DQorICAgIDwvZz4NCisgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2NpcmNsZS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2NpcmNsZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRlNzBlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvY2lyY2xlLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8ZGVzYz5UaGlzIGlzIGEgYmx1ZSBjaXJjbGUgd2l0aCBhIHJlZCBvdXRsaW5lDQorICA8L2Rlc2M+DQorICA8Zz4NCisgICAgPGNpcmNsZSBzdHlsZT0iZmlsbDogYmx1ZTsgc3Ryb2tlOiByZWQiIA0KKyAgICAgIGN4PSIyMDAiIGN5PSIyMDAiIHI9IjEwMCIvPg0KKyAgPC9nPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZGVmcy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2RlZnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBiZjVmMjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2RlZnMueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlZnM+DQorICAgIDxyZWN0IGlkPSJUZW1wbGF0ZU9iamVjdDAxIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjM3LjM0Ii8+DQorICAgIDxsaW5lYXJncmFkaWVudCBpZD0iR3JhZGllbnQwMSI+DQorICAgICAgPGdyYWRpZW50c3RvcCBvZmZzZXQ9IjMwJSIgY29sb3I9IiMzOUYiLz4NCisgICAgPC9saW5lYXJncmFkaWVudD4NCisgIDwvZGVmcz4NCisgIDxkZXNjPkRlZmluaW5nIHRoaW5ncyBmb3IgbGF0ZXIgdXNlDQorICA8L2Rlc2M+DQorICA8IS0tIFNWRyBlbGVtZW50cyBpbiBoZXJlIHdvdWxkIHJlZmVyZW5jZS91c2UgDQorICAgICAgIHRoZSBlbGVtZW50cyBkZWZpbmVkIGluIHRoZSA8ZGVmcz4gLS0+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9kZXNjLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZGVzYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODc4MzhkYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZGVzYy54bWwKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgU1lTVEVNICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorPGc+DQorICA8dGl0bGU+DQorICAgIENvbXBhbnkgc2FsZXMgYnkgcmVnaW9uDQorICA8L3RpdGxlPg0KKyAgPGRlc2M+DQorICAgIFRoaXMgaXMgYSBiYXIgY2hhcnQgd2hpY2ggc2hvd3MgDQorICAgIGNvbXBhbnkgc2FsZXMgYnkgcmVnaW9uLg0KKyAgPC9kZXNjPg0KKyAgPCEtLSBCYXIgY2hhcnQgZGVmaW5lZCBhcyB2ZWN0b3IgZGF0YSAtLT4NCis8L2c+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9lbGxpcHNlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZWxsaXBzZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjA5N2VmNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZWxsaXBzZS54bWwKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPlRoaXMgaXMgYW4gZWxsaXBzZSwgYXhpcyBhbGlnbmVkIGFuZCBjZW50ZXJlZCBvbiB0aGUgb3JpZ2luDQorICA8L2Rlc2M+DQorICA8Zz4NCisgICAgPGVsbGlwc2UgbWFqb3I9Ijg1IiBtaW5vcj0iNDUiLz4NCisgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2Zsb3dlcjIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9mbG93ZXIyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMDA2NGM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9mbG93ZXIyLnhtbApAQCAtMCwwICsxLDQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4Ij4NCisgIDxkZXNjPlRoaXMgc2FtcGxlIFNWRyBmaWxlIGRyYXdzIGEgZmxvd2VyPC9kZXNjPg0KKyAgPGcgc3R5bGU9InRyYW5zZm9ybTogbWF0cml4KDEgMCAwIC0xIC0yNS44OCA3OTguNjApOw0KKyAgICAgc3Ryb2tlOiAjMDAwOyBzdHJva2Utd2lkdGg6IDEiID4NCisgICA8cGF0aCBzdHlsZT0iZmlsbDogIzFBNTQ2NiIgZCA9ICJtIDI0Mi4zMyA2ODQuMTkNCisgICAgICAgICAgQyAzNDYuNDQgNzU3LjQ4IDI3MS40NSA2NDcuMzggMjEzLjE3IDY0MS4zNw0KKyAgICAgICAgICBDIDI3MS40NSA2NDcuMzggMzgzLjQzIDU3NS4yMSAyNTYuNzEgNjEzLjMwDQorICAgICAgICAgIEMgMzgzLjQzIDU3NS4yMSAyNTEuMDQgNTY1LjkwIDIwNS4yMyA2MDkuNjgNCisgICAgICAgICAgQyAyNTEuMDQgNTY1LjkwIDI2NS4xMyA0MzIuODggMjEwLjcxIDU1Ny45NQ0KKyAgICAgICAgICBDIDI2NS4xMyA0MzIuODggMTc1LjA0IDUzMS4zNyAxNzUuNjcgNTk2LjI2DQorICAgICAgICAgIEMgMTc1LjA0IDUzMS4zNyA4MC42MyAgNDM3LjY3IDEzOC45NiA1NTkuODINCisgICAgICAgICAgQyAgODAuNjMgNDM3LjY3IDEwMC42NyA1NjkuODAgMTQ2Ljc1IDYxMS4yMA0KKyAgICAgICAgICBDIDEwMC42NyA1NjkuODAgLTMxLjE0IDU4NS45OCA5NS40OSAgNjE3LjQ5DQorICAgICAgICAgIEMgLTMxLjE0IDU4NS45OCA4My45NCAgNjUyLjI1IDE0MC4yNCA2NDMuMjYNCisgICAgICAgICAgQyA4My45NCAgNjUyLjI1IDEzLjk4ICA3NjYuMTIgMTEzLjA0IDY4Ny41NQ0KKyAgICAgICAgICBDIDEzLjk4ICA3NjYuMTIgMTM3LjQ1IDcxNi42MyAxNjEuMDUgNjY4LjMwDQorICAgICAgICAgIEMgMTM3LjQ1IDcxNi42MyAxODIuMDIgODQyLjQ1IDE3OC4zOSA3MTcuMjMNCisgICAgICAgICAgQyAxODIuMDIgODQyLjQ1IDIyMC45MCA3MTQuNDYgMTkzLjUxIDY2Ny40Ng0KKyAgICAgICAgICBDIDIyMC45MCA3MTQuNDYgMzQ2LjQ0IDc1Ny40OCAyNDIuMzMgNjg0LjE5IHoiIC8+DQorICAgPHBhdGggc3R5bGU9ImZpbGw6ICMzNEFBQ0QiIGQgPSAiTSAyMzUuMzMgNjkxLjE5DQorICAgICAgICAgIEMgMzM5LjQ0IDc2NC40OCAyNjQuNDUgNjU0LjM4IDIwNi4xNyA2NDguMzcNCisgICAgICAgICAgQyAyNjQuNDUgNjU0LjM4IDM3Ni40MyA1ODIuMjEgMjQ5LjcxIDYyMC4zMA0KKyAgICAgICAgICBDIDM3Ni40MyA1ODIuMjEgMjQ0LjA0IDU3Mi45MCAxOTguMjMgNjE2LjY4DQorICAgICAgICAgIEMgMjQ0LjA0IDU3Mi45MCAyNTguMTMgNDM5Ljg4IDIwMy43MSA1NjQuOTUNCisgICAgICAgICAgQyAyNTguMTMgNDM5Ljg4IDE2OC4wNCA1MzguMzcgMTY4LjY3IDYwMy4yNg0KKyAgICAgICAgICBDIDE2OC4wNCA1MzguMzcgNzMuNjMgIDQ0NC42NyAxMzEuOTYgNTY2LjgyDQorICAgICAgICAgIEMgNzMuNjMgIDQ0NC42NyA5My42NyAgNTc2LjgwIDEzOS43NSA2MTguMjANCisgICAgICAgICAgQyA5My42NyAgNTc2LjgwIC0zOC4xNCA1OTIuOTggIDg4LjQ5IDYyNC40OQ0KKyAgICAgICAgICBDIC0zOC4xNCA1OTIuOTggNzYuOTQgIDY1OS4yNSAxMzMuMjQgNjUwLjI2DQorICAgICAgICAgIEMgNzYuOTQgIDY1OS4yNSA2Ljk4ICAgNzczLjEyIDEwNi4wNCA2OTQuNTUNCisgICAgICAgICAgQyA2Ljk4ICAgNzczLjEyIDEzMC40NSA3MjMuNjMgMTU0LjA1IDY3NS4zMA0KKyAgICAgICAgICBDIDEzMC40NSA3MjMuNjMgMTc1LjAyIDg0OS40NSAxNzEuMzkgNzI0LjIzDQorICAgICAgICAgIEMgMTc1LjAyIDg0OS40NSAyMTMuOTAgNzIxLjQ2IDE4Ni41MSA2NzQuNDYNCisgICAgICAgICAgQyAyMTMuOTAgNzIxLjQ2IDMzOS40NCA3NjQuNDggMjM1LjMzIDY5MS4xOSB6IiAvPg0KKyAgIDxwYXRoIHN0eWxlPSJmaWxsOiAjRjg4MUJGIiBkID0gIk0gMTk5LjQ0IDYzNC40Mw0KKyAgICAgICAgICBDIDE5OS40NCA2MjIuMTYgMTg5LjE5IDYxMi4yMSAxNzYuNTQgNjEyLjIxDQorICAgICAgICAgIEMgMTYzLjg5IDYxMi4yMSAxNTMuNjMgNjIyLjE2IDE1My42MyA2MzQuNDMNCisgICAgICAgICAgQyAxNTMuNjMgNjQ2LjcxIDE2My44OSA2NTYuNjYgMTc2LjU0IDY1Ni42Ng0KKyAgICAgICAgICBDIDE4OS4xOSA2NTYuNjYgMTk5LjQ0IDY0Ni43MSAxOTkuNDQgNjM0LjQzIHoiLz4NCisgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2dyYWRpZW50LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZ3JhZGllbnQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyOGQ1ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2dyYWRpZW50LnhtbApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPkdyYWRpZW50IGV4YW1wbGUNCisgIDwvZGVzYz4NCisgIDxnPg0KKyAgICA8ZGVmcz4NCisgICAgICA8bGluZWFyZ3JhZGllbnQgaWQ9Ik15R3JhZGllbnQiPg0KKyAgICAgICAgPCEtLSBEZWZpbmUgbGluZWFyIGdyYWRpZW50IGhlcmUgLS0+DQorICAgICAgICA8Z3JhZGllbnRzdG9wIG9mZnNldD0iMCUiIGNvbG9yPSIjRjYwIi8+DQorICAgICAgICA8Z3JhZGllbnRzdG9wIG9mZnNldD0iNzAlIiBjb2xvcj0iI0ZGNiIvPg0KKyAgICAgIDwvbGluZWFyZ3JhZGllbnQ+DQorICAgIDwvZGVmcz4NCisgICAgPHJlY3Qgc3R5bGU9ImZpbGw6IHVybCgjTXlHcmFkaWVudCkiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNS44Ii8+DQorICA8L2c+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9ncm91cDAxLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZ3JvdXAwMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTA2YTIyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZ3JvdXAwMS54bWwKQEAgLTAsMCArMSwxNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPlR3byBncm91cHMsIGVhY2ggb2YgdHdvIHJlY3RhbmdsZXMNCisgIDwvZGVzYz4NCisgIDxnIHN0eWxlPSJmaWxsY29sb3I6cmVkIj4NCisgICAgPHJlY3QgeD0iMTAwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiAvPg0KKyAgICA8cmVjdCB4PSIzMDAiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIC8+DQorICA8L2c+DQorICA8ZyBzdHlsZT0iZmlsbGNvbG9yOmJsdWUiPg0KKyAgICA8cmVjdCB4PSIxMDAiIHk9IjMwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIC8+DQorICAgIDxyZWN0IHg9IjMwMCIgeT0iMzAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgLz4NCisgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2dyb3VwMDIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9ncm91cDAyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wODI0NzRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9ncm91cDAyLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlc2M+VHdvIG5hbWVkIGdyb3Vwcw0KKyAgPC9kZXNjPg0KKyAgPGcgaWQ9Ik9CSkVDVDEiPg0KKyAgICA8cmVjdCB4PSIxMDAiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIC8+DQorICA8L2c+DQorICA8ZyBpZD0iT0JKRUNUMiI+DQorICAgIDxjaXJjbGUgY3g9IjE1MCIgY3k9IjMwMCIgcj0iMjUiIC8+DQorICA8L2c+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9ncm91cDAzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZ3JvdXAwMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWQyNWU5MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvZ3JvdXAwMy54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPkdyb3VwcyBjYW4gbmVzdA0KKyAgPC9kZXNjPg0KKyAgPGc+DQorICAgICA8Zz4NCisgICAgICAgPGc+DQorICAgICAgIDwvZz4NCisgICAgIDwvZz4NCisgICA8L2c+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9pbWFnZS12YWxpZC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2ltYWdlLXZhbGlkLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMjBlOGQyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9pbWFnZS12YWxpZC54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPlRoaXMgZ3JhcGhpYyBsaW5rcyB0byBhbiBleHRlcm5hbCBpbWFnZQ0KKyAgPC9kZXNjPg0KKyAgPGltYWdlIHg9IjIwMCIgeT0iMjAwIiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4IiANCisgIGhyZWY9Im15aW1hZ2UucG5nIj4NCisgICAgPHRpdGxlPk15IGltYWdlPC90aXRsZT4NCisgIDwvaW1hZ2U+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9pbWFnZS13Zi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2ltYWdlLXdmLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZDEzYjMzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9pbWFnZS13Zi54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIg0KKyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQnPg0KKyAgPGRlc2M+VGhpcyBsaW5rcyB0byBhbiBleHRlcm5hbCBpbWFnZQ0KKyAgPC9kZXNjPg0KKyAgPGltYWdlIHg9IjIwMCIgeT0iMjAwIiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Ig0KKyAgIHhtbDpsaW5rID0gJ3NpbXBsZScgc2hvdyA9ICdlbWJlZCcgYWN0dWF0ZSA9ICdhdXRvJw0KKyAgaHJlZj0ibXlpbWFnZS5wbmciPg0KKyAgICA8dGl0bGU+TXkgaW1hZ2U8L3RpdGxlPg0KKyAgPC9pbWFnZT4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2xpbi1ncmFkaWVudC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL2xpbi1ncmFkaWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGFjZTJiNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvbGluLWdyYWRpZW50LnhtbApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlc2M+TGluZWFyIGdyYWRpZW50IGV4YW1wbGUNCisgIDwvZGVzYz4NCisgIDxnPg0KKyAgICA8ZGVmcz4NCisgICAgICA8bGluZWFyZ3JhZGllbnQgaWQ9Ik15R3JhZGllbnQiPg0KKyAgICAgICAgPGdyYWRpZW50c3RvcCBvZmZzZXQ9IjAlIiBjb2xvcj0iI0Y2MCIvPg0KKyAgICAgICAgPGdyYWRpZW50c3RvcCBvZmZzZXQ9IjcwJSIgY29sb3I9IiNGRjYiLz4NCisgICAgICA8L2xpbmVhcmdyYWRpZW50Pg0KKyAgICA8L2RlZnM+DQorICAgIDxyZWN0IHN0eWxlPSJmaWxsOiB1cmwoI015R3JhZGllbnQpIiB3aWR0aD0iMjAiIGhlaWdodD0iMTUuOCIvPg0KKyAgPC9nPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvbWFya2VyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvbWFya2VyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MjcxNmEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9tYXJrZXIueG1sCkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8ZGVmcz4NCisgICAgPHN5bWJvbCBpZD0iVHJpYW5nbGUiIG1pbi14PSIwIiBtaW4teT0iMCIgbWF4LXg9IjEwMCIgDQorICAgICAgbWF4LXk9IjEwMCIgcmVmLXg9IjAiIHJlZi15PSI1MCI+DQorICAgICAgPHBhdGggZD0iTSAwIDAgTCAwIDEwMCBMIDEwMCA1MCB6Ii8+DQorICAgICA8L3N5bWJvbD4NCisgICA8L2RlZnM+DQorICA8ZGVzYz5BbiBkb3VibGUtaGVhZGVkIGFycm93IGV4YW1wbGUgdXNpbmcgbWFya2Vycw0KKyAgPC9kZXNjPg0KKyAgPHBhdGggZD0iTTAgMCI+DQorICAgIDwhLS0gUGxhY2UgYW4gYXJyb3doZWFkIHJvdGF0ZWQgMTgwIGRlZ3JlZXMgYXQgdGhlIA0KKyAgICAgICAgIGJlZ2lubmluZyBvZiB0aGUgcGF0aCAtLT4NCisgICAgPG1hcmtlciBocmVmPSIjVHJpYW5nbGUiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiANCisgICAgICAgICAgc3R5bGU9InRleHQtdHJhbnNmb3JtOiByb3RhdGUoMTgwKSIvPg0KKyAgICA8ZGF0YSBkPSJNIDIwMDAgMjAwMCIvPg0KKw0KKyAgICA8IS0tIFR1cm4gb2ZmIG1hcmtlcnMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgcGF0aCAtLT4NCisgICAgPG1hcmtlciBocmVmPSIiLz4NCisgICAgPGRhdGEgZD0iTCA0MDAwIDIwMDAgTCA0MDAwIDQwMDAiLz4NCisNCisgICAgPCEtLSBQbGFjZSBhbiBhcnJvd2hlYWQgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aC0tPg0KKyAgICA8bWFya2VyIGhyZWY9IiNUcmlhbmdsZSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiLz4NCisgICAgPGRhdGEgZD0iTCA2MDAwIDQwMDAiLz4NCisgIDwvcGF0aD4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL21hc2sueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9tYXNrLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mODFhY2ExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9tYXNrLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlc2M+RXhhbXBsZSBvZiB1c2luZyBhIG1hc2sNCisgIDwvZGVzYz4NCisgIDxnPg0KKyAgICA8ZGVmcz4NCisgICAgICA8aW1hZ2UgaWQ9Ik15TWFzayIgaHJlZj0idHJhbnNwLnBuZyI+PC9pbWFnZT4NCisgICAgPC9kZWZzPg0KKyAgICA8cmVjdCBzdHlsZT0ibWFzazogdXJsKCNNeU1hc2spIiB3aWR0aD0iMTIuNSIgaGVpZ2h0PSIzMCIgLz4NCisgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL21hdGhzd2l0Y2gueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9tYXRoc3dpdGNoLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZDI4ZjMzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9tYXRoc3dpdGNoLnhtbApAQCAtMCwwICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/Pg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iDQorIHhtbG5zID0gJ2h0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkJz4NCisgIDxkZXNjPlRoaXMgZXhhbXBsZSB1c2VzIHRoZSBzd2l0Y2ggZWxlbWVudCB0byBwcm92aWRlIGEgDQorICBmYWxsYmFjayBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gb2YgYW4gZXF1YXRpb24sIGlmIA0KKyAgTWF0aE1MIGlzIG5vdCBzdXBwb3J0ZWQuDQorICA8L2Rlc2M+DQorICA8IS0tIFRoZSA8c3dpdGNoPiBlbGVtZW50IHdpbGwgcHJvY2VzcyB0aGUgZmlyc3QgY2hpbGQgZWxlbWVudA0KKyAgICAgICB3aG9zZSB0ZXN0aW5nIGF0dHJpYnV0ZXMgZXZhbHVhdGUgdG8gdHJ1ZS4tLT4NCisgIDxzd2l0Y2g+DQorDQorICAgIDwhLS0gUHJvY2VzcyB0aGUgTWF0aE1MIGlmIHRoZSBzeXN0ZW0tcmVxdWlyZWQgYXR0cmlidXRlDQorICAgICAgICAgZXZhbHVhdGVzIHRvIHRydWUgKGkuZS4sIHRoZSB1c2VyIGFnZW50IHN1cHBvcnRzIE1hdGhNTA0KKyAgICAgICAgIGVtYmVkZGVkIHdpdGhpbiBTVkcpLiAtLT4NCisgICAgPGZvcmVpZ25vYmplY3QgDQorICAgICAgIHN5c3RlbS1yZXF1aXJlZD0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLU1hdGhNTC0xOTk4MDQwNyIgDQorICAgICAgIHdpZHRoPSIxMDAiIGhlaWdodD0iNTAiPg0KKyAgICAgIDwhLS0gTWF0aE1MIGNvbnRlbnQgZ29lcyBoZXJlIC0tPg0KKyAgICA8L2ZvcmVpZ25vYmplY3Q+DQorDQorICAgIDwhLS0gRWxzZSwgcHJvY2VzcyB0aGUgZm9sbG93aW5nIGFsdGVybmF0ZSBTVkcuDQorICAgICAgICAgTm90ZSB0aGF0IHRoZXJlIGFyZSBubyB0ZXN0aW5nIGF0dHJpYnV0ZXMgb24gdGhlIDxnPiBlbGVtZW50Lg0KKyAgICAgICAgIElmIG5vIHRlc3RpbmcgYXR0cmlidXRlcyBhcmUgcHJvdmlkZWQsIGl0IGlzIGFzIGlmIHRoZXJlDQorICAgICAgICAgd2VyZSB0ZXN0aW5nIGF0dHJpYnV0ZXMgYW5kIHRoZXkgZXZhbHVhdGVkIHRvIHRydWUuLS0+DQorICAgIDxnPg0KKyAgICAgIDwhLS0gRHJhdyBhIHJlZCByZWN0YW5nbGUgd2l0aCBhIHRleHQgc3RyaW5nIG9uIHRvcC4gLS0+DQorICAgICAgPHJlY3Qgc3R5bGU9ImZpbGw6IHJlZCIvPg0KKyAgICAgIDx0ZXh0PkZvcm11bGEgZ29lcyBoZXJlPC90ZXh0Pg0KKyAgICA8L2c+DQorDQorICA8L3N3aXRjaD4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3BhcmVudG5zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcGFyZW50bnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhNDEwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3BhcmVudG5zLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8QUJDIHhtbG5zPSJodHRwOi8vcGFyZW50Lm5hbWUuc3BhY2UiDQorICAgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjAiPg0KKyAgPCEtLSBkb2N1bWVudCBpbiB0aGUgcGFyZW50IG5hbWVzcGFjZSAtLT4NCisgIDxzdmc6c3ZnIHdpZHRoPSI0MCUiIGhlaWdodD0iNDAlIj4NCisgICAgIDxzdmc6cmVjdGFuZ2xlIHdpZHRoPSI0My42IiBoZWlnaHQ9IjMxLjUiLz4NCisgICAgIDwhLS0gc3ZnIGdyYXBoaWMgY29udGludWVzIC0tPg0KKyAgIDwvc3ZnOnN2Zz4NCisgICA8IS0tIGRvY3VtZW50IGluIHBhcmVudCBuYW1lc3BhY2UgY29udGludWVzIC0tPg0KKzwvQUJDPg0KKw0KKw0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcGF0aDAxLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcGF0aDAxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTkwYjZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9wYXRoMDEueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIg0KKyB4bWxucyA9ICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCc+DQorPHBhdGggZD0iTSAxMDAgMTAwIEwgMTQwIDEwMCBMIDEyMCAxNDAgeiIvPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcGF0aDAyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcGF0aDAyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOTFhYTYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9wYXRoMDIueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8cGF0aCBkPSJNIDEwMCAxMDAiPg0KKyAgICA8ZGF0YSBkPSJMIDE0MCAxMDAiLz4NCisgICAgPGRhdGEgZD0iTCAxMjAgMTQwIi8+DQorICAgIDxkYXRhIGQ9InoiLz4NCisgIDwvcGF0aD4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3BhdHRlcm5maWxsLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcGF0dGVybmZpbGwueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5MmY0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3BhdHRlcm5maWxsLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlZnM+DQorICAgIDxzeW1ib2wgaWQ9ImZvdXJzdGFyIj4NCisgICAgICA8IS0tIERlZmluZSB0aGUgcGF0dGVybiB1c2luZyBzdGFuZGFyZCBncmFwaGljcyBlbGVtZW50cw0KKyAgICAgICAgICAgc3VjaCBhcyBwYXRocywgaW1hZ2VzLCB0ZXh0IGFuZCBzaGFwZXMgLS0+DQorICAgIDwvc3ltYm9sPg0KKyAgPC9kZWZzPg0KKyAgPGVsbGlwc2Ugc3R5bGU9ImZpbGw6IHVybCgjZm91cnN0YXIpIiBtYWpvcj0iNDAiIG1pbm9yPSIyNyIgLz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3BvbHlsaW5lLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcG9seWxpbmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU2ZjdiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3BvbHlsaW5lLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8ZGVzYz5BIHNhbXBsZSBwb2x5bGluZSwgYW5kIGVxdWl2YWxlbnQgcGF0aA0KKyAgPC9kZXNjPg0KKyAgPHBvbHlsaW5lIHZlcnRzPSIyMCwyMCA1MCwxMDAgMjAwLDgwIDcwLDMwMCIvPg0KKyAgPHBhdGggZD0iTTIwLDIwIEw1MCwxMDAgTDIwMCw4MCBMNzAsMzAwIi8+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9wcml2YXRlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcHJpdmF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzYwMTM2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcHJpdmF0ZS54bWwKQEAgLTAsMCArMSwxOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIg0KKyB4bWxucyA9ICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCc+DQorICA8ZGVmcz4NCisgICAgPHByaXZhdGUgeG1sbnM6bXlhcHA9Imh0dHA6Ly9teWNvbXBhbnkvbWFwYXBwIiA+DQorICAgICAgPG15YXBwOnBpZWNoYXJ0IHRpdGxlPSJTYWxlcyBieSBSZWdpb24iPg0KKyAgICAgICAgPG15YXBwOnBpZWNlIGxhYmVsPSJOb3J0aGVybiBSZWdpb24iIHZhbHVlPSIxLjIzIi8+DQorICAgICAgICA8bXlhcHA6cGllY2UgbGFiZWw9IkVhc3Rlcm4gUmVnaW9uIiB2YWx1ZT0iMi41MyIvPg0KKyAgICAgICAgPG15YXBwOnBpZWNlIGxhYmVsPSJTb3V0aGVybiBSZWdpb24iIHZhbHVlPSIzLjg5Ii8+DQorICAgICAgICA8bXlhcHA6cGllY2UgbGFiZWw9Ildlc3Rlcm4gUmVnaW9uIiB2YWx1ZT0iMi4wNCIvPg0KKyAgICAgICAgPCEtLSBPdGhlciBwcml2YXRlIGRhdGEgZ29lcyBoZXJlIC0tPg0KKyAgICAgIDwvbXlhcHA6cGllY2hhcnQ+DQorICAgIDwvcHJpdmF0ZT4NCisgIDwvZGVmcz4NCisgICAgPGRlc2M+VGhpcyBjaGFydCBpbmNsdWRlcyBwcml2YXRlIGRhdGEgaW4gYW5vdGhlciBuYW1lc3BhY2UNCisgIDwvZGVzYz4NCisgIDwhLS0gSW4gaGVyZSB3b3VsZCBiZSB0aGUgYWN0dWFsIGdyYXBoaWNzIGVsZW1lbnRzIHdoaWNoDQorICAgICAgIGRyYXcgdGhlIHBpZSBjaGFydCAtLT4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3JhZC1ncmFkaWVudC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3JhZC1ncmFkaWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWFkNzY4MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcmFkLWdyYWRpZW50LnhtbApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlc2M+UmFkaWFsIGdyYWRpZW50IGV4YW1wbGUgd2l0aCB0aHJlZSBncmFkaWVudCBzdG9wcw0KKyAgPC9kZXNjPg0KKyAgPGc+DQorICAgIDxkZWZzPg0KKyAgICAgIDxyYWRpYWxncmFkaWVudCBpZD0iTXlHcmFkaWVudCI+DQorICAgICAgICAgPGdyYWRpZW50c3RvcCBvZmZzZXQ9IjAlIiBjb2xvcj0id2hpdGUiLz4NCisgICAgICAgICA8Z3JhZGllbnRzdG9wIG9mZnNldD0iNTAlIiBjb2xvcj0icmVkIi8+DQorICAgICAgICAgPGdyYWRpZW50c3RvcCBvZmZzZXQ9IjEwMCUiIGNvbG9yPSJibGFjayIvPg0KKyAgICAgIDwvcmFkaWFsZ3JhZGllbnQ+DQorICAgIDwvZGVmcz4NCisgICAgPGNpcmNsZSBzdHlsZT0iZmlsbDogdXJsKCNNeUdyYWRpZW50KSIgcj0iNDIiLz4NCisgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3JlY3RhbmdsZS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3JlY3RhbmdsZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTZjZGVlYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcmVjdGFuZ2xlLnhtbApAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlc2M+VGhpcyBpcyBhIHJlY3RhbmdsZQ0KKyAgPC9kZXNjPg0KKyAgPGc+DQorICAgIDxyZWN0IHg9IjIwIiB5PSIzMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIvPg0KKyAgPC9nPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcmljaGRlc2MueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9yaWNoZGVzYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2NmOGM4ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvcmljaGRlc2MueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiIgDQorIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorICAgPGRlc2MgeG1sbnM6bXlkb2M9Imh0dHA6Ly9mb28ub3JnL215ZG9jIj4NCisgICAgICA8bXlkb2M6dGl0bGU+VGhpcyBpcyBhbiBleGFtcGxlIFNWRyBmaWxlPC9teWRvYzp0aXRsZT4NCisgICAgICA8bXlkb2M6cGFyYT5UaGUgZ2xvYmFsIGRlc2NyaXB0aW9uIHVzZXMgbWFya3VwIGZyb20gdGhlIA0KKyAgICAgICAgPG15ZG9jOmVtcGg+bXlkb2M8L215ZG9jOmVtcGg+IG5hbWVzcGFjZS48L215ZG9jOnBhcmE+DQorICAgPC9kZXNjPg0KKyAgIDxnPg0KKyAgIDwhLS0gdGhlIHBpY3R1cmUgZ29lcyBoZXJlIC0tPg0KKyAgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3NjcmlwdC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3NjcmlwdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjAwMzY1ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvc2NyaXB0LnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlZnM+DQorICAgIDxzY3JpcHQ+PCFbQ0RBVEFbDQorICAgICAgLyogQmVlcCBvbiBtb3VzZWNsaWNrICovDQorICAgICAgTW91c2VDbGlja0hhbmRsZXIoKSB7IGJlZXAoKTsgfQ0KKyAgICAgXV0+DQorICAgIDwvc2NyaXB0Pg0KKyAgPC9kZWZzPg0KKyAgPGNpcmNsZSBvbmNsaWNrPSJNb3VzZUNsaWNrSGFuZGxlcigpIiByPSI4NSIvPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvc3RydWN0dXJlMDEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9zdHJ1Y3R1cmUwMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGVjOTE0MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvc3RydWN0dXJlMDEueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+DQorPHBhcmVudCB4bWxucz0iaHR0cDovL3NvbWVwbGFjZS5vcmciDQorICAgICAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKyAgIDwhLS0gcGFyZW50IHN0dWZmIGhlcmUgLS0+DQorICAgPHN2Zzpzdmcgd2lkdGg9IjVjbSIgaGVpZ2h0PSI4Y20iPg0KKyAgICAgIDxzdmc6ZWxsaXBzZSBtYWpvcj0iMjAwIiBtaW5vcj0iMTMwIiAvPg0KKyAgIDwvc3ZnOnN2Zz4NCisgICA8IS0tIC4uLiAtLT4NCis8L3BhcmVudD4NCisNCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3N0eWxlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvc3R5bGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhMTUwNDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3N0eWxlLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlZnM+DQorICAgIDxzdHlsZT48IVtDREFUQVsNCisgICAgICAuVGl0bGVUZXh0IHsgZm9udC1zaXplOiAxNjsgZm9udC1mYW1pbHk6IEhlbHZldGljYSB9IF1dPg0KKyAgICA8L3N0eWxlPg0KKyAgPC9kZWZzPg0KKyAgPHRleHQgY2xhc3M9IlRpdGxlVGV4dCI+SGVyZSBpcyBteSB0aXRsZTwvdGV4dD4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3N3aXRjaC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3N3aXRjaC54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTg5NTVjOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvc3dpdGNoLnhtbApAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/Pg0KKzxzbWlsPg0KKyAgPGJvZHk+DQorICAgIDwhLS0gVGhlIFNNSUwgPHN3aXRjaD4gZWxlbWVudCB3aWxsIHByb2Nlc3MgdGhlDQorICAgICAgICAgZmlyc3QgY2hpbGQgZWxlbWVudCB3aGljaCB0ZXN0cyB0cnVlIGFuZCBza2lwDQorICAgICAgICAgcGFzdCBhbGwgb3RoZXJzLiAtLT4NCisgICAgPHN3aXRjaD4NCisNCisgICAgICA8IS0tIFRoZSBzeXN0ZW0tcmVxdWlyZWQgYXR0cmlidXRlIHRlc3RzIHRvIHNlZSBpZg0KKyAgICAgICAgICAgdGhlIHVzZXIgYWdlbnQgc3VwcG9ydHMgU1ZHLiBJZiB0cnVlLCB0aGVuDQorICAgICAgICAgICByZW5kZXIgdGhlIGZpbGUgZHJhd2luZy5zdmcuIC0tPg0KKyAgICAgIDxyZWYgc3lzdGVtLXJlcXVpcmVkPSJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCIgDQorICAgICAgICAgICB0eXBlPSJpbWFnZS9zdmciIHNyYz0iZHJhd2luZy5zdmciIC8+DQorDQorICAgICAgPCEtLSBFbHNlLCByZW5kZXIgdGhlIGFsdGVybmF0ZSBpbWFnZS4gLS0+DQorICAgICAgPGltZyBzcmM9ImFsdGVybmF0ZV9pbWFnZS5qcGciIC8+DQorICAgIDwvc3dpdGNoPg0KKyAgPC9ib2R5Pg0KKzwvc21pbD4NCisNCisNCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3N5bWJvbC11c2UueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9zeW1ib2wtdXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44M2JjNDU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy9zeW1ib2wtdXNlLnhtbApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlZnM+DQorICAgIDxzeW1ib2wgaWQ9IlRlbXBsYXRlT2JqZWN0MDEiPg0KKyAgICAgIDwhLS0gc3ltYm9sIGRlZmluaXRpb24gaGVyZSAtLT4NCisgICAgPC9zeW1ib2w+DQorICA8L2RlZnM+DQorDQorICA8ZGVzYz5FeGFtcGxlcyBvZiBpbmxpbmUgYW5kIHJlZmVyZW5jZWQgY29udGVudA0KKyAgPC9kZXNjPg0KKyAgDQorICA8IS0tIDxnPiB3aXRoIGlubGluZSBjb250ZW50IC0tPg0KKyAgPGc+DQorICAgIDwhLS0gSW5saW5lIGNvbnRlbnQgZ29lcyBoZXJlIC0tPg0KKyAgPC9nPg0KKw0KKyAgPCEtLSByZWZlcmVuY2VkIGNvbnRlbnQgLS0+DQorICA8dXNlIGhyZWY9IiNUZW1wbGF0ZU9iamVjdDAxIiAvPg0KKw0KKyAgPCEtLSA8Zz4gd2l0aCBib3RoIHJlZmVyZW5jZWQgYW5kIGlubGluZSBjb250ZW50IC0tPg0KKyAgPGc+DQorICAgIDx1c2UgaHJlZj0iI1RlbXBsYXRlT2JqZWN0MDEiIC8+DQorICAgIDwhLS0gSW5saW5lIGNvbnRlbnQgZ29lcyBoZXJlIC0tPg0KKyAgPC9nPg0KKw0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGVtcGxhdGUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90ZW1wbGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGE5ZmVlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGVtcGxhdGUueG1sCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiINCisgeG1sbnMgPSAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQnPg0KKyAgPGRlc2M+VGhpcyB3ZWxsIGZvcm1lZCBzdmcgZG9jdW1lbnQgY29udGFpbnMgYSBoeXBlcmxpbmsNCisgIDwvZGVzYz4NCisgIDxhIHhtbDpsaW5rPSJzaW1wbGUiIHNob3c9InJlcGxhY2UiIGFjdHVhdGU9InVzZXIiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnIj4NCisgICAgPHAgZD0iTSAwIDAgTCAyMDAgMCBMIDEwMCAyMDAgWiIvPg0KKyAgPC9hPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGV4dDAxLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGV4dDAxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOTViYWZiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90ZXh0MDEueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8ZGVmcz4NCisgICAgPHRleHQgaWQ9IlRleHRUb1VzZSI+WFlaPC90ZXh0Pg0KKyAgPC9kZWZzPg0KKyAgPHRleHQ+QUJDPC90ZXh0Pg0KKyAgPHRleHQ+DQorICAgIDxzcmMgaHJlZj0iI1RleHRUb1VzZSIvPg0KKyAgPC90ZXh0Pg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGV4dDAyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGV4dDAyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Yjk1MjkyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90ZXh0MDIueG1sCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiINCisgeG1sbnMgPSAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQnPg0KKyAgPGRlZnM+DQorICAgIDx0ZXh0ZmxvdyBpZD0iVEYxIj4NCisgICAgICA8dCBocmVmPSIjVDEiLz4NCisgICAgICA8dCBocmVmPSIjVDMiLz4NCisgICAgPC90ZXh0Zmxvdz4NCisgICAgPHRleHRmbG93IGlkPSJURjIiPg0KKyAgICAgIDx0IGhyZWY9IiNUMiIvPg0KKyAgICAgIDx0IGhyZWY9IiNUNCIvPg0KKyAgICA8L3RleHRmbG93Pg0KKyAgPC9kZWZzPg0KKyAgPHRleHQgeD0iMTAwIiB5PSIxMDAiIGlkPSJUMSI+PHRmIGhyZWY9IiNURjEiPjEyMzwvdGY+PC90ZXh0Pg0KKyAgPHRleHQgeD0iMTAwIiB5PSIyMDAiIGlkPSJUMiI+PHRmIGhyZWY9IiNURjIiPkFCQzwvdGY+PC90ZXh0Pg0KKyAgPHRleHQgeD0iMTUwIiB5PSIxMDAiIGlkPSJUMyI+PHRmIGhyZWY9IiNURjEiPjQ1NjwvdGY+PC90ZXh0Pg0KKyAgPHRleHQgeD0iMTUwIiB5PSIyMDAiIGlkPSJUNCI+PHRmIGhyZWY9IiNURjIiPkRFRjwvdGY+PC90ZXh0Pjwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGV4dDAzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdGV4dDAzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYWU5YWYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90ZXh0MDMueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIg0KKyB4bWxucyA9ICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCc+DQorICA8dGV4dGZsb3cgaWQ9IlRGMSI+DQorICAgIDx0ZXh0IHg9IjEwMCIgeT0iMTAwIj4xMjM8L3RleHQ+DQorICAgIDx0ZXh0PjQ1NjwvdGV4dD4NCisgIDwvdGV4dGZsb3c+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90b2FwMDEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90b2FwMDEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyZTE2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3RvYXAwMS54bWwKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPlNpbXBsZSB0ZXh0IG9uIGEgcGF0aA0KKyAgPC9kZXNjPg0KKyAgPHBhdGggaWQ9Ik15UGF0aCIgc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbiINCisgICAgICAgIGQ9Ik0gMTAwIDEwMCBDIDEyNSAxMjUgMTc1IDEyNSAyMDAgMTAwIiAvPg0KKyAgPHRleHQ+PHRleHRwYXRoIGhyZWY9IiNNeVBhdGgiLz5UZXh0IG9uIHBhdGg8L3RleHQ+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90b2FwMDIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90b2FwMDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4OTgwOTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3RvYXAwMi54bWwKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZWZzPg0KKyAgICA8c3ltYm9sIGlkPSJUcmlhbmdsZTEiIA0KKyAgICAgICBtaW4teD0iMCIgbWluLXk9IjAiIG1heC14PSIzMDAiIG1heC15PSIyMDAiPg0KKyAgICAgIDxwYXRoIGQ9Ik0gNTAgMCBMICA1MCAyMDAgTCAyNTAgMCB6Ii8+DQorICAgIDwvc3ltYm9sPg0KKyAgICA8c3ltYm9sIGlkPSJUcmlhbmdsZTIiIA0KKyAgICAgICAgIG1pbi14PSIwIiBtaW4teT0iMCIgbWF4LXg9IjMwMCIgbWF4LXk9IjIwMCI+DQorICAgICAgPHBhdGggZD0iTSA1MCAwIEwgMjUwIDIwMCBMIDI1MCAwIHoiLz4NCisgICAgPC9zeW1ib2w+DQorICA8L2RlZnM+DQorICANCisgIDxkZXNjPkdlbmVyYWwgZ3JhcGhpY3Mgb24gYSBwYXRoDQorICA8L2Rlc2M+DQorICANCisgIDx0ZXh0Pg0KKyAgICA8dGV4dHBhdGggaHJlZj0iI015UGF0aCIvPg0KKyAgICA8dXNlIGhyZWY9IiNUcmlhbmdsZTEiLz4NCisgICAgPHVzZSBocmVmPSIjVHJpYW5nbGUyIi8+DQorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMSIvPg0KKyAgICA8dXNlIGhyZWY9IiNUcmlhbmdsZTIiLz4NCisgICAgPHVzZSBocmVmPSIjVHJpYW5nbGUxIi8+DQorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMiIvPg0KKyAgICA8dXNlIGhyZWY9IiNUcmlhbmdsZTEiLz4NCisgICAgPHVzZSBocmVmPSIjVHJpYW5nbGUyIi8+DQorICAgIDx1c2UgaHJlZj0iI1RyaWFuZ2xlMSIvPg0KKyAgICA8dXNlIGhyZWY9IiNUcmlhbmdsZTIiLz4NCisgIDwvdGV4dD4NCisNCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3RyYW5zZm9ybS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3RyYW5zZm9ybS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTMwNzVlZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdHJhbnNmb3JtLnhtbApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+DQorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIgDQorICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iPg0KKyAgPGRlc2M+RGVtb25zdHJhdGlvbiBvZiBjb29yZGluYXRlIHRyYW5zZm9ybXMNCisgIDwvZGVzYz4NCisgIDwhLS0gVGhlIGZvbGxvd2luZyB0d28gdGV4dCBlbGVtZW50cyB3aWxsIGJvdGggZHJhdyB3aXRoIGEgDQorICAgICAgICBmb250IGhlaWdodCBvZiAxMiBwaXhlbHMgLS0+DQorICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTIiPlRoaXMgcHJpbnRzIDEyIHBpeGVscyBoaWdoLjwvdGV4dD4NCisgICA8dGV4dCBzdHlsZT0iZm9udC1zaXplOiAxMnB4Ij5UaGlzIHByaW50cyAxMiBwaXhlbHMgaGlnaC48L3RleHQ+DQorDQorICAgPCEtLSBOb3cgc2NhbGUgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGJ5IDIuIC0tPg0KKyAgIDxnIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlKDIpIj4NCisNCisgICAgICA8IS0tIFRoZSBmb2xsb3dpbmcgdGV4dCB3aWxsIGFjdHVhbGx5IGRyYXcgMjQgcGl4ZWxzIGhpZ2gNCisgICAgICAgICAgIGJlY2F1c2UgZWFjaCB1bml0IGluIHRoZSBuZXcgY29vcmRpbmF0ZSBzeXN0ZW0gZXF1YWxzDQorICAgICAgICAgICAyIHVuaXRzIGluIHRoZSBwcmV2aW91cyBjb29yZGluYXRlIHN5c3RlbS4gLS0+DQorICAgICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTIiPlRoaXMgcHJpbnRzIDI0IHBpeGVscyBoaWdoLjwvdGV4dD4NCisNCisgICAgICA8IS0tIFRoZSBmb2xsb3dpbmcgdGV4dCB3aWxsIGFjdHVhbGx5IHN0aWxsIGRyYXcgMTIgcGl4ZWxzIGhpZ2gNCisgICAgICAgICAgIGJlY2F1c2UgdGhlIENTUyB1bml0IHNwZWNpZmllciBoYXMgYmVlbiBwcm92aWRlZC4gLS0+DQorICAgICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTJweCI+VGhpcyBwcmludHMgMTIgcGl4ZWxzIGhpZ2guPC90ZXh0Pg0KKw0KKyAgIDwvZz4NCisNCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3RyaXZpYWwueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90cml2aWFsLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNjEyMmJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90cml2aWFsLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiINCisgeG1sbnMgPSAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQnPg0KKyA8IS0tIEluc2VydCBkcmF3aW5nIGVsZW1lbnRzIGhlcmUgLS0+DQorPC9zdmc+DQorDQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90d2luLWdyYWRpZW50cy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3R3aW4tZ3JhZGllbnRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MjEzZjFiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy90d2luLWdyYWRpZW50cy54bWwKQEAgLTAsMCArMSwxOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSI0aW4iIGhlaWdodD0iM2luIj4NCisgIDxkZXNjPkdyYWRpZW50cyBhcHBseSB0byBsZWFmIG5vZGVzDQorICA8L2Rlc2M+DQorICA8Zz4NCisgICAgPGRlZnM+DQorICAgICAgPGxpbmVhcmdyYWRpZW50IGlkPSJNeUdyYWRpZW50Ij4NCisgICAgICAgIDxncmFkaWVudHN0b3Agb2Zmc2V0PSIwJSIgY29sb3I9IiNGNjAiLz4NCisgICAgICAgIDxncmFkaWVudHN0b3Agb2Zmc2V0PSI3MCUiIGNvbG9yPSIjRkY2Ii8+DQorICAgICAgPC9saW5lYXJncmFkaWVudD4NCisgICAgPC9kZWZzPg0KKyAgICA8ZyBzdHlsZT0iZmlsbDogdXJsKCNNeUdyYWRpZW50KSI+DQorICAgICAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE1LjgiLz4NCisgICAgICA8cmVjdCB3aWR0aD0iMzUiIGhlaWdodD0iOCIvPg0KKyAgIDwvZz4NCisgIDwvZz4NCis8L3N2Zz4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3YtdGVtcGxhdGUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy92LXRlbXBsYXRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kODY0M2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy92LXRlbXBsYXRlLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8ZGVzYz4NCisgIDwvZGVzYz4NCisgIDxnPg0KKyAgPC9nPg0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9TVkcvdmlld3BvcnQtbmVzdC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3ZpZXdwb3J0LW5lc3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk4MWE3YWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3ZpZXdwb3J0LW5lc3QueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIiANCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+DQorPHN2ZyB3aWR0aD0iNGluIiBoZWlnaHQ9IjNpbiI+DQorICA8ZGVzYz5UaGlzIFNWRyBkcmF3aW5nIGVtYmVkcyBhbm90aGVyIG9uZSwNCisgICAgdGh1cyBlc3RhYmxpc2hpbmcgYSBuZXcgdmlld3BvcnQNCisgIDwvZGVzYz4NCisgIDwhLS0gVGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgZXN0YWJsaXNoaW5nIGEgbmV3IHZpZXdwb3J0DQorICAgICAgIGFuZCByZW5kZXJzIFNWRyBkcmF3aW5nIEIgaW50byB0aGF0IHZpZXdwb3J0IC0tPg0KKyAgPHN2ZyBzdHlsZT0ibGVmdDogMjUlOyB0b3A6IDI1JSIgd2lkdGg9IjUwJSIgaGVpZ2h0PSI1MCUiPg0KKyAgICAgPCEtLSBkcmF3aW5nIEIgZ29lcyBoZXJlIC0tPg0KKyAgPC9zdmc+DQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy92aWV3cG9ydC10cmFuc2Zvcm0ueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy92aWV3cG9ydC10cmFuc2Zvcm0ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUyNDM0YmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3ZpZXdwb3J0LXRyYW5zZm9ybS54bWwKQEAgLTAsMCArMSw0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgQXByaWwgMTk5OS8vRU4iIA0KKyAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkIj4NCis8c3ZnIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSIzb29weCI+DQorICA8ZGVzYz5UcmFuc2Zvcm1hdGlvbiB3aXRoIGVzdGFibGlzaG1lbnQgb2YgYSBuZXcgdmlld3BvcnQNCisgIDwvZGVzYz4NCisgIDwhLS0gVGhlIGZvbGxvd2luZyB0d28gdGV4dCBlbGVtZW50cyB3aWxsIGJvdGggZHJhdyB3aXRoIGEgDQorICAgICAgICBmb250IGhlaWdodCBvZiAxMiBwaXhlbHMgLS0+DQorICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTIiPlRoaXMgcHJpbnRzIDEyIHBpeGVscyBoaWdoLjwvdGV4dD4NCisgICA8dGV4dCBzdHlsZT0iZm9udC1zaXplOiAxMnB4Ij5UaGlzIHByaW50cyAxMiBwaXhlbHMgaGlnaC48L3RleHQ+DQorDQorICAgPCEtLSBOb3cgc2NhbGUgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGJ5IDIuIC0tPg0KKyAgIDxnIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlKDIpIj4NCisNCisgICAgICA8IS0tIFRoZSBmb2xsb3dpbmcgdGV4dCB3aWxsIGFjdHVhbGx5IGRyYXcgMjQgcGl4ZWxzIGhpZ2gNCisgICAgICAgICAgIGJlY2F1c2UgZWFjaCB1bml0IGluIHRoZSBuZXcgY29vcmRpbmF0ZSBzeXN0ZW0gZXF1YWxzDQorICAgICAgICAgICAyIHVuaXRzIGluIHRoZSBwcmV2aW91cyBjb29yZGluYXRlIHN5c3RlbS4gLS0+DQorICAgICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTIiPlRoaXMgcHJpbnRzIDI0IHBpeGVscyBoaWdoLjwvdGV4dD4NCisNCisgICAgICA8IS0tIFRoZSBmb2xsb3dpbmcgdGV4dCB3aWxsIGFjdHVhbGx5IHN0aWxsIGRyYXcgMTIgcGl4ZWxzIGhpZ2gNCisgICAgICAgICAgIGJlY2F1c2UgdGhlIENTUyB1bml0IHNwZWNpZmllciBoYXMgYmVlbiBwcm92aWRlZC4gLS0+DQorICAgICAgPHRleHQgc3R5bGU9ImZvbnQtc2l6ZTogMTJweCI+VGhpcyBwcmludHMgMTIgcGl4ZWxzIGhpZ2guPC90ZXh0Pg0KKyAgIDwvZz4NCisNCisgICA8IS0tIFRoaXMgdGltZSwgc2NhbGUgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGJ5IDMuIC0tPg0KKyAgIDxnIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlKDMpIj4NCisNCisgICAgICA8IS0tIEVzdGFibGlzaCBhIG5ldyB2aWV3cG9ydCBhbmQgdGh1cyBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YNCisgICAgICAgICAgIHNvbWUgQ1NTIHVuaXQgc3BlY2lmaWVycy4gLS0+DQorICAgICAgPHN2ZyBzdHlsZT0ibGVmdDowOyB0b3A6MDsgcmlnaHQ6MTAwOyBib3R0b206MTAwIiANCisgICAgICAgICAgIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPg0KKw0KKyAgICAgICAgIDwhLS0gVGhlIGZvbGxvd2luZyB0d28gdGV4dCBlbGVtZW50cyB3aWxsIGJvdGggZHJhdyB3aXRoIGEgDQorICAgICAgICAgICAgICBmb250IGhlaWdodCBvZiAzNiBzY3JlZW4gcGl4ZWxzLiBUaGUgZmlyc3QgdGV4dCBlbGVtZW50DQorICAgICAgICAgICAgICBkZWZpbmVzIGl0cyBoZWlnaHQgaW4gdXNlciBjb29yZGluYXRlcywgd2hpY2ggaGF2ZSBiZWVuDQorICAgICAgICAgICAgICBzY2FsZWQgYnkgMy4gVGhlIHNlY29uZCB0ZXh0IGVsZW1lbnQgZGVmaW5lcyBpdHMgaGVpZ2h0DQorICAgICAgICAgICAgICBpbiBDU1MgcHggdW5pdHMsIHdoaWNoIGhhdmUgYmVlbiByZWRlZmluZWQgdG8gYmUgdGhyZWUgdGltZXMNCisgICAgICAgICAgICAgIGFzIGJpZyBhcyBzY3JlZW4gcGl4ZWxzIGR1ZSB0aGUgPHN2Zz4gZWxlbWVudCBlc3RhYmxpc2hpbmcNCisgICAgICAgICAgICAgIGEgbmV3IHZpZXdwb3J0LiAtLT4NCisgICAgICAgICA8dGV4dCBzdHlsZT0iZm9udC1zaXplOiAxMiI+VGhpcyBwcmludHMgMzYgcGl4ZWxzIGhpZ2guPC90ZXh0Pg0KKyAgICAgICAgIDx0ZXh0IHN0eWxlPSJmb250LXNpemU6IDEycHgiPlRoaXMgcHJpbnRzIDM2IHBpeGVscyBoaWdoLjwvdGV4dD4NCisNCisgICAgICA8L3N2Zz4NCisgICA8L2c+DQorDQorPC9zdmc+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy92aWV3cG9ydC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3ZpZXdwb3J0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOTIzZmFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy92aWV3cG9ydC54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz4NCis8cGFyZW50IHhtbG5zPSJodHRwOi8vc29tZS51cmwiPg0KKyAgIA0KKyAgIDwhLS0gU1ZHIGdyYXBoaWMgLS0+DQorICAgPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQnDQorICAgICAgd2lkdGg9IjEwMHB4IiBoZWlnaHQ9IjIwMHB4Ij4NCisgICAgICA8cGF0aCBkPSJNMTAwLDEwMCBRMjAwLDQwMCwzMDAsMTAwIi8+DQorICAgICAgPCEtLSByZXN0IG9mIFNWRyBncmFwaGljIHdvdWxkIGdvIGhlcmUgLS0+DQorICAgPC9zdmc+ICAgDQorICAgDQorPC9wYXJlbnQ+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy93Zi10ZW1wbGF0ZS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvU1ZHL3dmLXRlbXBsYXRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMWNhZDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1NWRy93Zi10ZW1wbGF0ZS54bWwKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/Pg0KKzxzdmcgd2lkdGg9IjRpbiIgaGVpZ2h0PSIzaW4iDQorIHhtbG5zID0gJ2h0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy9zdmctMTk5OTA0MTIuZHRkJz4NCisgIDxkZXNjPg0KKyAgPC9kZXNjPg0KKw0KKzwvc3ZnPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9VUkkvc21pdGgudXJpIGIvbGlieG1sMi0yLjcuNy90ZXN0L1VSSS9zbWl0aC51cmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNjNmM4NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9VUkkvc21pdGgudXJpCkBAIC0wLDAgKzEsMTUgQEAKKy9mb28vLi4vYmFyCitmb28vLi4vYmFyCisuL2Zvby8uLi9iYXIKK2Zvby8uLy4uL2JhcgorZm9vL2Jhci8uLi8uLy4uL2JhegorZm9vLy4uCitmb28vYmFyLy4uCisuL2ZvbworLi8uL2ZvbworLi4vLi9mb28uLworLi4vLi9mb28vLgorL2ZvbworLi4vZm9vCisuLi8uLi9mb28KKy4uLy4uLy4uL2ZvbwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1VSSS91cmkuZGF0YSBiL2xpYnhtbDItMi43LjcvdGVzdC9VUkkvdXJpLmRhdGEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk2ZWE1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9VUkkvdXJpLmRhdGEKQEAgLTAsMCArMSwxOCBAQAorCisuCitiYXIKK2JhciNiYXoKK2Jhcj9iYXoKK2Jhcj9iYXojYmF6MgorI2JhegorP2JhegorP2JheiNiYXoyCisuLi91cC5hLm5vdGNoLmh0bWwjd293CisuLi91cC5hLm5vdGNoLmh0bWw/d293CisuLi91cC5hLm5vdGNoLmh0bWw/d293I3dvdzIKKy9yb290LmNnaSNPSworL3Jvb3QuY2dpP09LCisvcm9vdC5jZ2k/T0sjT0syCitodHRwOi8vZWxzZXdoZXJlLmNvbS8jZGVlcAoraHR0cDovL2Vsc2V3aGVyZS5jb20vP2RlZXAKK2h0dHA6Ly9lbHNld2hlcmUuY29tLz9kZWVwI2RlZXAyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvQXR0cmlidXRlRGVmYXVsdExlZ2FsIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0F0dHJpYnV0ZURlZmF1bHRMZWdhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzFlYjIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0F0dHJpYnV0ZURlZmF1bHRMZWdhbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoI1BDREFUQSk+Cis8IUFUVExJU1QgZG9jIEF0IE5NVE9LRU4gIiQkJCI+Cis8IUFUVExJU1QgZG9jIE9rIE5NVE9LRU4gIjFhYmNfMiI+Cis8IUFUVExJU1QgZG9jIGJhZCBJRFJFRiAiMWFiY18yIj4KKzwhQVRUTElTVCBkb2Mgb2syIElEUkVGICJhYmNfMiI+Cis8IUFUVExJU1QgZG9jIGJhZDIgSURSRUZTICJhYmM6MSAxYWJjXzIiPgorPCFBVFRMSVNUIGRvYyBvazMgSURSRUZTICJhYmM6MSBhMWJjXzIiPgorXT4KKzxkb2MgdmFsPSJ2MSIvPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvQXR0cmlidXRlTm10b2tlbnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvQXR0cmlidXRlTm10b2tlbnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcxMGRlNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9BdHRyaWJ1dGVObXRva2VucwpAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSB0ZXN0IFsKKwk8IUVMRU1FTlQgdGVzdCBFTVBUWT4KKwk8IUFUVExJU1QgdGVzdCBhdHRyMSBOTVRPS0VOUyAjSU1QTElFRD4KK10+Cis8IS0tIFNob3VsZCBiZSBpbnZhbGlkIGR1ZSB0byBodHRwOi8vd3d3LnczLm9yZy9YTUwveG1sLVYxMC0yZS1lcnJhdGEjRTIwIC0tPgorPHRlc3QgYXR0cjE9IiBhJiN4OTtiICIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0R1cGxpY2F0ZVR5cGUgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRHVwbGljYXRlVHlwZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjI4ODA0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0R1cGxpY2F0ZVR5cGUKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBhIFsKKzwhRUxFTUVOVCBhICgjUENEQVRBIHwgYiB8IGMgfCBkIHwgYykqPgorXT4KKzxhPiB2aW9sYXRlcyBbIFZDOiBObyBEdXBsaWNhdGUgVHlwZXMgXSA8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRWxlbWVudFZhbGlkIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjk3Y2U2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZApAQCAtMCwwICsxLDMgQEAKKzwhRE9DVFlQRSBkb2MgWworXT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRWxlbWVudFZhbGlkMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzJhMGY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDIKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKHApKj4KK10+Cis8ZG9jPjxwLz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQy9FbGVtZW50VmFsaWQzIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdjYmFiNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9FbGVtZW50VmFsaWQzCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIEVNUFRZPgorXT4KKzxkb2M+T29wcywgdGhpcyBlbGVtZW50IHdhcyBkZWNsYXJlZCBFTVBUWTwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRWxlbWVudFZhbGlkNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmRmNTVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDQKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEgfCBhIHwgYikqPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYyAoI1BDREFUQSk+CitdPgorPGRvYz4gVGhpcyA8Yj5zZWVtczwvYj4gT2sgPGEvPiBidXQgdGhpcyA8Yz53YXMgbm90IGRlY2xhcmVkPC9jPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDUgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRWxlbWVudFZhbGlkNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2VmM2M0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDUKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEgLCBiKiAsIGMrKT4KKzwhRUxFTUVOVCBhIEVNUFRZPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorXT4KKzxkb2M+PGEvPjxiPiBidXQgdGhpczwvYj48Yz53YXMgbm90IGRlY2xhcmVkPC9jPjxiPnNlZW1zPC9iPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDYgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRWxlbWVudFZhbGlkNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmY3MjFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDYKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEgLCBiPyAsIGMrKT8+Cis8IUVMRU1FTlQgYSBFTVBUWT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KKzwhRUxFTUVOVCBjICgjUENEQVRBKT4KK10+Cis8ZG9jPjxhLz48Yj5sYWNrcyBjPC9iPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRWxlbWVudFZhbGlkNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODgxMTVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDcKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKChhIHwgYikqICwgYyssIGEsIGI/LCBjLCBhPyk+Cis8IUVMRU1FTlQgYSBFTVBUWT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KKzwhRUxFTUVOVCBjICgjUENEQVRBKT4KK10+Cis8ZG9jPjxhLz48Yi8+PGEvPjxjLz48Yy8+PGEvPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDggYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRWxlbWVudFZhbGlkOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmQyMDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VsZW1lbnRWYWxpZDgKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKChhLCBiKXwgKGEsIGMpKT4KKzwhRUxFTUVOVCBhIEVNUFRZPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorXT4KKzxkb2M+PGEvPjxjPiBkb2MgaXMgbm9uLWRldGVybWluaXN0aWMgPC9jPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VudW1lcmF0aW9uIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL0VudW1lcmF0aW9uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNjM5NjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvRW51bWVyYXRpb24KQEAgLTAsMCArMSw1IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRvYyB2YWwgKHYxIHwgdjIgfCB2MykgI0lNUExJRUQ+CitdPgorPGRvYyB2YWw9InY0Ij48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQy9OUzEgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvTlMxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzQ0NjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvTlMxCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBuczpkb2MgWworPCFFTEVNRU5UIG5zOmRvYyAoI1BDREFUQSB8IG5zOmEgfCBuczpiKSo+Cis8IUFUVExJU1QgbnM6ZG9jCisgICAgICAgICAgbnM6YXR0ciAgQ0RBVEEgI1JFUVVJUkVECisgICAgICAgICAgeG1sbnM6bnMgQ0RBVEEgI0lNUExJRUQ+Cis8IUVMRU1FTlQgbnM6YSBFTVBUWT4KKzwhRUxFTUVOVCBuczpiICgjUENEQVRBKT4KK10+Cis8bnM6ZG9jIG5zOmF0dHI9InZhbCIgeG1sbnM6bnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC8iPgorICAgPG5zOmEvPgorICAgPG5zOmI+Zmlyc3QgbGluZTwvbnM6Yj4KKyAgIDxuczpiPnNlY29uZCBsaW5lPC9uczpiPgorPC9uczpkb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvTlMyIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL05TMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzQ4ZDFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL05TMgpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEgfCBuczphIHwgbnM6YikqPgorPCFBVFRMSVNUIGRvYworICAgICAgICAgIGF0dHIgIENEQVRBICNSRVFVSVJFRAorICAgICAgICAgIHhtbG5zOm5zIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+CitdPgorPG5zOmRvYyBuczphdHRyPSJ2YWwiIHhtbG5zOm5zPSJodHRwOi8vd3d3LmV4YW1wbGUub3JnL3Rlc3QvIj4KKyAgIDxuczphLz4KKyAgIDxuczpiPmZpcnN0IGxpbmU8L25zOmI+CisgICA8bnM6Yj5zZWNvbmQgbGluZTwvbnM6Yj4KKzwvbnM6ZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL05TMyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9OUzMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUzYjBjYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9OUzMKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiID8+Cis8IURPQ1RZUEUgZm9vIFsKKzwhRUxFTUVOVCBmb28gRU1QVFk+Cis8IUFUVExJU1QgZm9vCisgICAgeG1sbnMgQ0RBVEEgI0ZJWEVEICJodHRwOi8vZXhhbXBsZS5jb20vZm9vbyIKKyAgICB4bWxuczpmb28gQ0RBVEEgI1JFUVVJUkVECisgICAgZm9vOmluZm8gQ0RBVEEgI0lNUExJRUQ+CitdPgorPGZvbyB4bWxucz0iaHR0cDovL2V4YW1wbGUuY29tL2ZvbyIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5jb20vZm8iIGZvbzppbmZvPSJ0b3RvIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvT25lSUQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvT25lSUQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTljYmMwYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9PbmVJRApAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoI1BDREFUQSk+Cis8IUFUVExJU1QgZG9jIHZhbCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBkb2MgaWQgSUQgI0lNUExJRUQ+CitdPgorPGRvYyB2YWw9InYxIj48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQy9PbmVJRDIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvT25lSUQyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmYTlkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvT25lSUQyCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGRvYyBbCis8IUFUVExJU1QgZG9jIHZhbCBJRCAjSU1QTElFRD4KKzwhQVRUTElTVCBkb2MgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgZG9jICgjUENEQVRBKT4KK10+Cis8ZG9jIHZhbD0idjEiPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL09uZUlEMyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9PbmVJRDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY5NjczNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9PbmVJRDMKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgZG9jIFNZU1RFTSAiZHRkcy9kb2MuZHRkIiBbCis8IUFUVExJU1QgZG9jIGlkIElEICNJTVBMSUVEPgorXT4KKzxkb2MgdmFsPSJ2MSI+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvUEVOZXN0aW5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1BFTmVzdGluZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzMzMmFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1BFTmVzdGluZwpAQCAtMCwwICsxLDIgQEAKKzwhRU5USVRZICUgcGUxICJFTVBUWT4gPCFFTEVNRU5UIGUyIEVNUFRZPiI+IAorPCFFTEVNRU5UIGUxICVwZTE7IApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1BFTmVzdGluZzIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvUEVOZXN0aW5nMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2IwY2NhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1BFTmVzdGluZzIKQEAgLTAsMCArMSwzIEBACis8IUVOVElUWSAlIHAxICIoQXxCIj4KKzwhRU5USVRZICUgcDIgInxDfEQpIj4KKzwhRUxFTUVOVCBYICVwMTslcDI7PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24gYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvVW5pcXVlRWxlbWVudFR5cGVEZWNsYXJhdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjQ2ZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24KQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBhIFNZU1RFTSAiZHRkcy9hLmR0ZCIgWworPCFFTEVNRU5UIGEgKCNQQ0RBVEEgfCBiIHwgYykqPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorXT4KKzxhPiB2aW9sYXRlcyBbIFZDOiBVbmlxdWUgRWxlbWVudCBUeXBlIERlY2xhcmF0aW9uIF0gPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24yIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL1VuaXF1ZUVsZW1lbnRUeXBlRGVjbGFyYXRpb24yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MDVmOGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvVW5pcXVlRWxlbWVudFR5cGVEZWNsYXJhdGlvbjIKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBhIFsKKzwhRUxFTUVOVCBhICgjUENEQVRBIHwgYiB8IGMpKj4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KKzwhRUxFTUVOVCBjICgjUENEQVRBKT4KKzwhRUxFTUVOVCBhICgjUENEQVRBIHwgYiB8IGMpKj4KK10+Cis8YT4gdmlvbGF0ZXMgWyBWQzogVW5pcXVlIEVsZW1lbnQgVHlwZSBEZWNsYXJhdGlvbiBdIDwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQy9kdGRzL2EuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDL2R0ZHMvYS5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg1NzFhNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQy9kdGRzL2EuZHRkCkBAIC0wLDAgKzEsMiBAQAorPCFFTEVNRU5UIGEgKCNQQ0RBVEEgfCBiIHwgYykqPgorPCFBVFRMSVNUIGRvYyBpZCBJRCAjSU1QTElFRD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQy9kdGRzL2RvYy5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvZHRkcy9kb2MuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZjhiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkMvZHRkcy9kb2MuZHRkCkBAIC0wLDAgKzEsMiBAQAorPCFFTEVNRU5UIGRvYyAoI1BDREFUQSk+Cis8IUFUVExJU1QgZG9jIHZhbCBJRCAjSU1QTElFRD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vMjEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS8yMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhjODcxMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vMjEueG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhLCAoYiB8IGMpKiwgZCopPyA+Cis8IUVMRU1FTlQgYSBFTVBUWT4KKzwhRUxFTUVOVCBiIEVNUFRZPgorPCFFTEVNRU5UIGMgRU1QVFk+Cis8IUVMRU1FTlQgZCBFTVBUWT4KK10+Cis8ZG9jPjxhLz48ZC8+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL0F0dHJpYnV0ZU5tdG9rZW5zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vQXR0cmlidXRlTm10b2tlbnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NWY4MTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL0F0dHJpYnV0ZU5tdG9rZW5zLnhtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgZG9jIFsKKwk8IUVMRU1FTlQgZG9jIChub3JtKyk+CisJPCFFTEVNRU5UIG5vcm0gRU1QVFk+CisJPCFBVFRMSVNUIG5vcm0gYXR0ciBOTVRPS0VOUyAjSU1QTElFRD4KK10+Cis8ZG9jPgorCTxub3JtIGF0dHIgPSAnIGZvbyBiYXIKKycvPgorCTxub3JtIGF0dHIgPSAnZm9vYmFyCisKKycvPgorCTxub3JtIGF0dHIgPSAnZm9vCSAJYmFyCScvPgorCTxub3JtIGF0dHIgPSAnIGZvbyAmI3gyMDtiYXInLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTdmNjc5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MS54bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgRU1QVFk+CitdPgorPGRvYy8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5M2E0MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjEwLnhtbApAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSkqID4KKzwhRUxFTUVOVCBhIEVNUFRZPgorXT4KKzxkb2M+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzEzMzUyMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjExLnhtbApAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSkqID4KKzwhRUxFTUVOVCBhIEVNUFRZPgorXT4KKzxkb2M+PGEvPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZWQzZDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxMi54bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEpKiA+Cis8IUVMRU1FTlQgYSBFTVBUWT4KK10+Cis8ZG9jPgorPGEvPgorPGEvPgorPGEvPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVmNDM1MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjEzLnhtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSkrID4KKzwhRUxFTUVOVCBhIEVNUFRZPgorXT4KKzxkb2M+Cis8YS8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE0LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTcwZjlmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTQueG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhKSsgPgorPCFFTEVNRU5UIGEgRU1QVFk+CitdPgorPGRvYz4KKzxhLz4KKzxhLz4KKzxhLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3OGUzZTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxNS54bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKChhIHwgYiB8IGMpKikgPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiBFTVBUWT4KKzwhRUxFTUVOVCBjIEVNUFRZPgorXT4KKzxkb2M+Cis8Yi8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE2LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE2LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjc2MzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTYueG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhIHwgYik+Cis8IUVMRU1FTlQgYSBFTVBUWT4KKzwhRUxFTUVOVCBiIEVNUFRZPgorXT4KKzxkb2M+Cis8Yi8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE3LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE3LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzljOGMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTcueG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhPyB8IGI/KSA+Cis8IUVMRU1FTlQgYSBFTVBUWT4KKzwhRUxFTUVOVCBiIEVNUFRZPgorPCFFTEVNRU5UIGMgRU1QVFk+CitdPgorPGRvYz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE4LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2NjNDQwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MTgueG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhPyB8IGI/KSA+Cis8IUVMRU1FTlQgYSBFTVBUWT4KKzwhRUxFTUVOVCBiIEVNUFRZPgorPCFFTEVNRU5UIGMgRU1QVFk+CitdPgorPGRvYz48Yi8+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxOS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YxOS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdhYWNmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjE5LnhtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYT8gfCBiKykgPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiBFTVBUWT4KKzwhRUxFTUVOVCBjIEVNUFRZPgorXT4KKzxkb2M+PGIvPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92Mi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWM2M2FmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92Mi54bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEpPgorXT4KKzxkb2M+dGV4dDwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MjAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MjAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YjA1MjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YyMC54bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgoYSB8IGIpKiwgYywgYikgPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiBFTVBUWT4KKzwhRUxFTUVOVCBjIEVNUFRZPgorXT4KKzxkb2M+Cis8Yy8+Cis8Yi8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjIxLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjIxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzhkOTIzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MjEueG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgoYSB8IGIpKywgYykgPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiBFTVBUWT4KKzwhRUxFTUVOVCBjIEVNUFRZPgorXT4KKzxkb2M+PGEvPjxiLz48Yy8+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YyMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YyMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAzNzZmNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjIyLnhtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEsIGIsIGMsIGIsIGMsIGQpID4KKzwhRUxFTUVOVCBhIEVNUFRZPgorPCFFTEVNRU5UIGIgRU1QVFk+Cis8IUVMRU1FTlQgYyBFTVBUWT4KKzwhRUxFTUVOVCBkIEVNUFRZPgorPCFFTlRJVFkgYyAiPGMvPiI+Cis8IUVOVElUWSBiYyAiPGIvPiZjOyI+CitdPgorPGRvYz4KKzxhLz4KKyZiYzsKKyZiYzsKKzxkLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MjMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MjMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZWRjZmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YyMy54bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhPywgKGIsIGM/KT8sIGQpPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiBFTVBUWT4KKzwhRUxFTUVOVCBjIEVNUFRZPgorPCFFTEVNRU5UIGQgRU1QVFk+CitdPgorPGRvYz4KKzxkLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MjQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92MjQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MzY3YzQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YyNC54bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhPywgKGIsIGM/LCBkPyk/LCAoZSB8IGYgfCBnKSosIChoKyB8IGkgfCBqKykpPgorPCFFTEVNRU5UIGEgRU1QVFk+Cis8IUVMRU1FTlQgYiBFTVBUWT4KKzwhRUxFTUVOVCBjIEVNUFRZPgorPCFFTEVNRU5UIGQgRU1QVFk+Cis8IUVMRU1FTlQgZSBFTVBUWT4KKzwhRUxFTUVOVCBmIEVNUFRZPgorPCFFTEVNRU5UIGcgRU1QVFk+Cis8IUVMRU1FTlQgaCBFTVBUWT4KKzwhRUxFTUVOVCBpIEVNUFRZPgorPCFFTEVNRU5UIGogRU1QVFk+CitdPgorPGRvYz4KKzxpLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92My54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3YzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjU1NTg5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92My54bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEpPgorXT4KKzxkb2M+Cis8P3BpIHZhbHVlPz4KK3RleHQKKzwhLS0gYW5kIGNvbW1lbnRzIC0tPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3Y0LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NmFmZTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3Y0LnhtbApAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSk+Cis8IUVMRU1FTlQgYSBFTVBUWT4KK10+Cis8ZG9jPjxhLz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92NS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdmZjViYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjUueG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhKT4KKzwhRUxFTUVOVCBhIEVNUFRZPgorXT4KKzxkb2M+Cis8YS8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjYueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92Ni54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNmYTRiOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9WQ00vdjYueG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChhLCBiKT4KKzwhRUxFTUVOVCBhIEVNUFRZPgorPCFFTEVNRU5UIGIgRU1QVFk+CitdPgorPGRvYz4KKzxhLz4KKzxiLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92Ny54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3Y3LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDBjNDgwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92Ny54bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEgfCBiKT4KKzwhRUxFTUVOVCBhIEVNUFRZPgorPCFFTEVNRU5UIGIgRU1QVFk+CitdPgorPGRvYz4KKzxhLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92OC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3Y4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjFhMWRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92OC54bWwKQEAgLTAsMCArMSw1IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEpPyA+Cis8IUVMRU1FTlQgYSBFTVBUWT4KK10+Cis8ZG9jPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92OS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvVkNNL3Y5LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzYzOWVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1ZDTS92OS54bWwKQEAgLTAsMCArMSw1IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEpPyA+Cis8IUVMRU1FTlQgYSBFTVBUWT4KK10+Cis8ZG9jPjxhLz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRWxlbVR5cGVNYXRjaCBiL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRWxlbVR5cGVNYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWEyZGYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9FbGVtVHlwZU1hdGNoCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8YT4gdmlvbGF0ZXMgWyBXRkM6IEVsZW1lbnQgVHlwZSBNYXRjaCBdIDwvYj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRW50aXR5RGVjbGFyZWQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzNDI3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8YT4gJnVua25vd247IHZpb2xhdGVzIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSA8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkMiBiL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRW50aXR5RGVjbGFyZWQyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ZDE2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkMgpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGEgWworPCFFTlRJVFkgZSAiYW4gZW50aXR5Ij4KK10+Cis8YT4gJnVua25vd247IHZpb2xhdGVzIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSA8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkMyBiL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRW50aXR5RGVjbGFyZWQzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NzA5ODAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkMwpAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8IURPQ1RZUEUgYSBTWVNURU0gImEuZHRkIj4KKzxhPiAmdW5rbm93bjsgdmlvbGF0ZXMgWyBXRkM6IEVudGl0eSBEZWNsYXJlZCBdIDwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRW50aXR5RGVjbGFyZWQ0IGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9FbnRpdHlEZWNsYXJlZDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUzNTRhYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRW50aXR5RGVjbGFyZWQ0CkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYSBbCisldW5rbm93bjsKKzwhRU5USVRZICUgdW5rbm93biAiPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPiI+CitdPgorPGE+IHZpb2xhdGVzIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSA8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkNSBiL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvRW50aXR5RGVjbGFyZWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMjUzNzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0VudGl0eURlY2xhcmVkNQpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8IURPQ1RZUEUgYSBTWVNURU0gImEuZHRkIiBbCisldW5rbm93bjsKKzwhRU5USVRZICUgdW5rbm93biAiPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPiI+CitdPgorPGE+IHZpb2xhdGVzIFsgV0ZDOiBFbnRpdHkgRGVjbGFyZWQgXSA8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL0xlZ2FsQ2hhcmFjdGVyIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9MZWdhbENoYXJhY3RlcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2ZmMzg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9MZWdhbENoYXJhY3RlcgpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGE+ICYjNTsgdmlvbGF0ZXMgWyBXRkM6IExlZ2FsIENoYXJhY3RlciBdIDwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvTm9FeHRlcm5hbEVudGl0eVJlZiBiL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvTm9FeHRlcm5hbEVudGl0eVJlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2NkMTkyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9Ob0V4dGVybmFsRW50aXR5UmVmCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYSBbCis8IUVOVElUWSBleHQgU1lTVEVNICJleHQuZW50Ij4KK10+Cis8YSBhdHQ9Indyb25nICZleHQ7IHJlZiI+IHZpb2xhdGVzIFsgV0ZDOiBObyBFeHRlcm5hbCBFbnRpdHkgUmVmZXJlbmNlcyBdIDwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvTm9MdEluQXR0VmFsdWUgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL05vTHRJbkF0dFZhbHVlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNDU5ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL05vTHRJbkF0dFZhbHVlCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYSBbCis8IUVOVElUWSBleHQgIm5vIDwgd29ya2llIj4KK10+Cis8YSBhdHQ9Indyb25nICZleHQ7IHJlZiI+IHZpb2xhdGVzIFsgV0ZDOiBObyA8IGluIEF0dHJpYnV0ZSBWYWx1ZXMgXSA8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL05vUmVjdXJzaW9uIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9Ob1JlY3Vyc2lvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzBiODk3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9Ob1JlY3Vyc2lvbgpAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVOVElUWSBhICImYjsiPgorPCFFTlRJVFkgYiAiJmM7Ij4KKzwhRU5USVRZIGMgIiZhOyI+CitdPgorPGRvYz4gJmE7IHZpb2xhdGVzIFsgV0ZDOiBObyBSZWN1cnNpb24gXSA8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9XRkMvUEVpbnRzdWJzZXQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL1BFaW50c3Vic2V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxZWEzMzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL1BFaW50c3Vic2V0CkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYSBbCis8IUVOVElUWSAlIHBjZGF0YSAiKCNQQ0RBVEEpIj4KKzwhRUxFTUVOVCBlICVwY2RhdGE+CitdPgorPGE+IHZpb2xhdGVzIFsgV0ZDOiBQRXMgaW4gSW50ZXJuYWwgU3Vic2V0IF0gPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9VbmlxdWVBdHRTcGVjIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9VbmlxdWVBdHRTcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNzRmZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL1VuaXF1ZUF0dFNwZWMKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxhIGF0dD0iT2siIGF0dDI9Ik9rIiBhdHQ9IkJhZCI+IHZpb2xhdGVzIFsgV0ZDOiBVbmlxdWUgQXR0IFNwZWMgXSA8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvV0ZDL1VuaXF1ZUF0dFNwZWMyIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9VbmlxdWVBdHRTcGVjMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDUxMWYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1dGQy9VbmlxdWVBdHRTcGVjMgpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGE+IDxiIGF0dD0iT2siIGF0dDI9Ik9rIiBhdHQ9IkJhZCIvPiB2aW9sYXRlcyBbIFdGQzogVW5pcXVlIEF0dCBTcGVjIF0gPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3MvZG9jaWRzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL2RvY2lkcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc5MTYyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL2RvY2lkcy54bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGJvb2sgWworPCFFTEVNRU5UIGJvb2sgKGRvYyopPgorPCFFTEVNRU5UIGRvYyAoaXNpZCopPgorPCFFTEVNRU5UIGlzaWQgRU1QVFk+Cis8IUFUVExJU1QgaXNpZCBteWlkIElEICNJTVBMSUVEPgorXT4KKzxib29rPgorPGRvYz4KKzxpc2lkIG15aWQ9Im1pbmUiLz4KKzxpc2lkIG15aWQ9ImR1cCIvPgorPC9kb2M+Cis8IS0tIGluY2x1ZGluZyBhbm90aGVyIFhNTCBkb2N1bWVudCB3aXRoIElEcyAtLT4KKzx4aW5jbHVkZTppbmNsdWRlIHhtbG5zOnhpbmNsdWRlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIgorCQkgaHJlZj0iLi4vZW50cy9pZHMueG1sIi8+Cis8L2Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZG9jcy9mYWxsYmFjay54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZG9jcy9mYWxsYmFjay54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgwMjIyZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL2ZhbGxiYWNrLnhtbApAQCAtMCwwICsxLDYgQEAKKzx4IHhtbG5zOnhpbmNsdWRlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIj4KKyAgIDwhLS0gU2ltcGxlIHRlc3Qgb2YgYSBmYWxsYmFjayBvbiB1bmF2YWlsYmxlIFVSSSAtLT4KKyAgIDx4aW5jbHVkZTppbmNsdWRlIGhyZWY9InNvbWV0aGluZy54bWwiPgorICAgICA8eGluY2x1ZGU6ZmFsbGJhY2s+PHdhcm5pbmc+SW5jbHVzaW9uIGZhaWxlZDwvd2FybmluZz48L3hpbmNsdWRlOmZhbGxiYWNrPgorICAgPC94aW5jbHVkZTppbmNsdWRlPgorPC94PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3MvZmFsbGJhY2syLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL2ZhbGxiYWNrMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFjNzFmOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL2ZhbGxiYWNrMi54bWwKQEAgLTAsMCArMSwxMCBAQAorPGE+CisgICAgICAgIDx4aTppbmNsdWRlIGhyZWY9ImIueG1sIiB4bWxuczp4aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSI+CisgICAgICAgICAgICAgICAgPHhpOmZhbGxiYWNrPlRoZXJlIGlzIG5vIGIueG1sIC4uLiA8L3hpOmZhbGxiYWNrPgorICAgICAgICA8L3hpOmluY2x1ZGU+CisgICAgICAgIDx4aTppbmNsdWRlIGhyZWY9ImMueG1sIiB4bWxuczp4aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSI+CisgICAgICAgICAgICAgICAgPHhpOmZhbGxiYWNrPlRoZXJlIGlzIG5vIGMueG1sIC4uLiA8L3hpOmZhbGxiYWNrPgorICAgICAgICA8L3hpOmluY2x1ZGU+CisgCis8L2E+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL2luY2x1ZGUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3MvaW5jbHVkZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2YWMyMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL2luY2x1ZGUueG1sCkBAIC0wLDAgKzEsNCBAQAorPHggeG1sbnM6eGluY2x1ZGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWEluY2x1ZGUiPgorICAgPCEtLSBTaW1wbGUgdGVzdCBvZiBpbmNsdWRpbmcgYW5vdGhlciBYTUwgZG9jdW1lbnQgLS0+CisgICA8eGluY2x1ZGU6aW5jbHVkZSBocmVmPSIuLi9lbnRzL3NvbWV0aGluZy54bWwiLz4KKzwveD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL25vZGVzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL25vZGVzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGNjYWI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3Mvbm9kZXMueG1sCkBAIC0wLDAgKzEsNCBAQAorPHggeG1sbnM6eGluY2x1ZGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWEluY2x1ZGUiPgorICAgPCEtLSBTaW1wbGUgdGVzdCBvZiBpbmNsdWRpbmcgYSBzZXQgb2Ygbm9kZXMgZnJvbSBhbiBYTUwgZG9jdW1lbnQgLS0+CisgICA8eGluY2x1ZGU6aW5jbHVkZSBocmVmPSIuLi9lbnRzL3NvbWV0aGluZy54bWwjeHBvaW50ZXIoLy9wKSIvPgorPC94PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3Mvbm9kZXMyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL25vZGVzMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJmOGNmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL25vZGVzMi54bWwKQEAgLTAsMCArMSw0IEBACis8eCB4bWxuczp4aW5jbHVkZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMy9YSW5jbHVkZSI+CisgICA8IS0tIFNpbXBsZSB0ZXN0IG9mIGluY2x1ZGluZyBhIHNldCBvZiBub2RlcyBmcm9tIGFuIFhNTCBkb2N1bWVudCAtLT4KKyAgIDx4aW5jbHVkZTppbmNsdWRlIGhyZWY9Ii4uL2VudHMvc29tZXRoaW5nLnhtbCIgeHBvaW50ZXI9Inhwb2ludGVyKC8vcCkiLz4KKzwveD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL25vZGVzMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZG9jcy9ub2RlczMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NWM1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZG9jcy9ub2RlczMueG1sCkBAIC0wLDAgKzEsNCBAQAorPHggeG1sbnM6eGluY2x1ZGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGUiPgorICAgPCEtLSBTaW1wbGUgdGVzdCBvZiBpbmNsdWRpbmcgYSBzZXQgb2Ygbm9kZXMgZnJvbSBhbiBYTUwgZG9jdW1lbnQgLS0+CisgICA8eGluY2x1ZGU6aW5jbHVkZSBocmVmPSIuLi9lbnRzL3NvbWV0aGluZy54bWwjeHBvaW50ZXIoLy9wKSIvPgorPC94PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3MvcmVjdXJzaXZlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL3JlY3Vyc2l2ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkyODVhYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL3JlY3Vyc2l2ZS54bWwKQEAgLTAsMCArMSwzIEBACis8dGhpcz48eGluYzppbmNsdWRlIGhyZWY9Ii4uL2VudHMvc3ViLWluYy5lbnQiIHBhcnNlPSJ4bWwiIAorICAgICAgICAgeG1sbnM6eGluYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSIvPjwvdGhpcz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3MvdHN0ZW5jb2RpbmcueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2RvY3MvdHN0ZW5jb2RpbmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMzA5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZG9jcy90c3RlbmNvZGluZy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eCB4bWxuczp4aW5jbHVkZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSI+CisgICA8IS0tIFNpbXBsZSB0ZXN0IG9mIGluY2x1ZGluZyBhbm90aGVyIHRleHQgZG9jdW1lbnQgLS0+CisgICA8eGluY2x1ZGU6aW5jbHVkZSBocmVmPSIuLi9lbnRzL2lzb2xhdGluLnR4dCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiIHBhcnNlPSJ0ZXh0Ii8+Cis8L3g+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZG9jcy90eHRpbmNsdWRlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9kb2NzL3R4dGluY2x1ZGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxYWY2YTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZG9jcy90eHRpbmNsdWRlLnhtbApAQCAtMCwwICsxLDQgQEAKKzx4IHhtbG5zOnhpbmNsdWRlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIj4KKyAgIDwhLS0gU2ltcGxlIHRlc3Qgb2YgaW5jbHVkaW5nIGFub3RoZXIgdGV4dCBkb2N1bWVudCAtLT4KKyAgIDx4aW5jbHVkZTppbmNsdWRlIGhyZWY9Ii4uL2VudHMvc29tZXRoaW5nLnR4dCIgcGFyc2U9InRleHQiLz4KKzwveD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9lbnRzL2lkcy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9pZHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxOTMyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9pZHMueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoaXNpZCopPgorPCFFTEVNRU5UIGlzaWQgRU1QVFk+Cis8IUFUVExJU1QgaXNpZCBteWlkIElEICNJTVBMSUVEPgorXT4KKzxkb2M+Cis8aXNpZCBteWlkPSJkdXAiLz4KKzxpc2lkIG15aWQ9ImZvbyIvPgorPGlzaWQgbXlpZD0iYmFyIi8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9lbnRzL2luYy50eHQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9pbmMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1Y2RkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9pbmMudHh0CkBAIC0wLDAgKzEgQEAKK2lzIGEgdGVzdApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2VudHMvaXNvbGF0aW4udHh0IGIvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2VudHMvaXNvbGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZGJmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9pc29sYXRpbi50eHQKQEAgLTAsMCArMSBAQAordGVzdCB3aXRoIGFjY2VudHMgaW4gSVNPLTg4NTktMTogwCDBIOkg6ApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2VudHMvc29tZXRoaW5nLnR4dCBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9lbnRzL3NvbWV0aGluZy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhjMjFiNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9lbnRzL3NvbWV0aGluZy50eHQKQEAgLTAsMCArMSBAQAordGhpcyBpcyBzb21lIHRleHQgaW4gQVNDSUkKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YSW5jbHVkZS9lbnRzL3NvbWV0aGluZy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9zb21ldGhpbmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliYmE2ODMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9zb21ldGhpbmcueG1sCkBAIC0wLDAgKzEsNSBAQAorPGRvYz4KKzxwPnNvbWV0aGluZzwvcD4KKzxwPnJlYWxseTwvcD4KKzxwPnNpbXBsZTwvcD4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2VudHMvc3ViLWluYy5lbnQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWEluY2x1ZGUvZW50cy9zdWItaW5jLmVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzI2YzlkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hJbmNsdWRlL2VudHMvc3ViLWluYy5lbnQKQEAgLTAsMCArMSwyIEBACis8c3ViLWluYz48eGluYzppbmNsdWRlIGhyZWY9ImluYy50eHQiIHBhcnNlPSJ0ZXh0IiAKKyAgICAgICAgIHhtbG5zOnhpbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWEluY2x1ZGUiLz48L3N1Yi1pbmM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9jaGFwdGVycyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL2NoYXB0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OGY2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9jaGFwdGVycwpAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxFWEFNUExFIHByb3AxPSJnbm9tZSBpcyBncmVhdCIgcHJvcDI9IiZhbXA7IGxpbnV4IHRvbyI+CisgIDxoZWFkPgorICAgPHRpdGxlPldlbGNvbWUgdG8gR25vbWU8L3RpdGxlPgorICA8L2hlYWQ+CisgIDxjaGFwdGVyIGlkPSJjaGFwdGVyMSI+CisgICA8dGl0bGU+VGhlIExpbnV4IGFkdmVudHVyZTwvdGl0bGU+CisgICA8cD5ibGEgYmxhIGJsYSAuLi48L3A+CisgICA8aW1hZ2UgaHJlZj0ibGludXMuZ2lmIi8+CisgICA8cD4uLi48L3A+CisgIDwvY2hhcHRlcj4KKyAgPGNoYXB0ZXIgaWQ9ImNoYXB0ZXIyIj4KKyAgIDx0aXRsZT5DaGFwdGVyIDI8L3RpdGxlPgorICAgPHA+dGhpcyBpcyBjaGFwdGVyIDIgLi4uPC9wPgorICA8L2NoYXB0ZXI+CisgIDxjaGFwdGVyIGlkPSJjaGFwdGVyMyI+CisgICA8dGl0bGU+Q2hhcHRlciAzPC90aXRsZT4KKyAgIDxwPnRoaXMgaXMgY2hhcHRlciAzIC4uLjwvcD4KKyAgPC9jaGFwdGVyPgorICA8Y2hhcHRlciBpZD0iY2hhcHRlcjQiPgorICAgPHRpdGxlPkNoYXB0ZXIgNDwvdGl0bGU+CisgICA8cD50aGlzIGlzIGNoYXB0ZXIgNCAuLi48L3A+CisgIDwvY2hhcHRlcj4KKyAgPGNoYXB0ZXIgaWQ9ImNoYXB0ZXI1Ij4KKyAgIDx0aXRsZT5DaGFwdGVyIDU8L3RpdGxlPgorICAgPHA+dGhpcyBpcyBjaGFwdGVyIDUgLi4uPC9wPgorICA8L2NoYXB0ZXI+Cis8L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9pZCBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL2lkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiNjY1OWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9pZApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxFWEFNUExFIGlkPSJyb290IiBwcm9wMT0iZ25vbWUgaXMgZ3JlYXQiIHByb3AyPSImYW1wOyBsaW51eCB0b28iPgorICA8aGVhZCBpZD0iaGVhZCI+CisgICA8dGl0bGU+V2VsY29tZSB0byBHbm9tZTwvdGl0bGU+CisgIDwvaGVhZD4KKyAgPGNoYXB0ZXIgaWQ9ImNoYXB0ZXIxIj4KKyAgIDx0aXRsZT5UaGUgTGludXggYWR2ZW50dXJlPC90aXRsZT4KKyAgIDxwPmJsYSBibGEgYmxhIC4uLjwvcD4KKyAgIDxpbWFnZSBocmVmPSJsaW51cy5naWYiLz4KKyAgIDxwPi4uLjwvcD4KKyAgPC9jaGFwdGVyPgorICA8Y2hhcHRlciBpZD0iY2hhcHRlcjIiPgorICAgPHRpdGxlPkNoYXB0ZXIgMjwvdGl0bGU+CisgICA8cD50aGlzIGlzIGNoYXB0ZXIgMiAuLi48L3A+CisgIDwvY2hhcHRlcj4KKyAgPGNoYXB0ZXIgaWQ9ImNoYXB0ZXIzIj4KKyAgIDx0aXRsZT5DaGFwdGVyIDM8L3RpdGxlPgorICAgPHA+dGhpcyBpcyBjaGFwdGVyIDMgLi4uPC9wPgorICA8L2NoYXB0ZXI+CisgIDxjaGFwdGVyIGlkPSJjaGFwdGVyNCI+CisgICA8dGl0bGU+Q2hhcHRlciA0PC90aXRsZT4KKyAgIDxwPnRoaXMgaXMgY2hhcHRlciA0IC4uLjwvcD4KKyAgPC9jaGFwdGVyPgorICA8Y2hhcHRlciBpZD0iY2hhcHRlcjUiPgorICAgPHRpdGxlPkNoYXB0ZXIgNTwvdGl0bGU+CisgICA8cD50aGlzIGlzIGNoYXB0ZXIgNSAuLi48L3A+CisgIDwvY2hhcHRlcj4KKzwvRVhBTVBMRT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL2xhbmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9sYW5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZmUxZDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9sYW5nCkBAIC0wLDAgKzEsMTMgQEAKKzxkb2M+CisgIDx4PjE8L3g+CisgIDxiIHhtbDpsYW5nPSJlbiI+CisgICAgPHg+ZW48L3g+CisgICAgPHg+MzwveD4KKyAgPC9iPgorICA8eD40PC94PgorICA8cGFyYSB4bWw6bGFuZz0iZW4iLz4KKyAgPGRpdiB4bWw6bGFuZz0iZW4iPjxwYXJhLz48L2Rpdj4KKyAgPHBhcmEgeG1sOmxhbmc9IkVOIi8+CisgIDxwYXJhIHhtbDpsYW5nPSJlbi11cyIvPgorICA8cGFyYSB4bWw6bGFuZz0iRU4tVVMiLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2RvY3MvbWl4ZWQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9taXhlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjQ1N2JjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2RvY3MvbWl4ZWQKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cm9vdD4KKyAgPHMgcD0icm9vdCIvPgorICA8cDE+CisgICAgPHMgcD0icDEiLz4KKyAgPC9wMT4KKyAgPHAyPgorICAgIDxzIHA9InAyIi8+CisgIDwvcDI+Cis8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9ub2RlcyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL25vZGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4NjNkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy9ub2RlcwpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHJvb3Q+PGZvbz50eHQ8IS0taGVsbG8tLT48IVtDREFUQVtkYXRhXV0+PD90YXJnZXQgZGF0YT8+PGJhcj50eHQ8IS0taGVsbG8tLT48IVtDREFUQVtkYXRhXV0+PD90YXJnZXQgZGF0YT8+PC9iYXI+PC9mb28+PC9yb290PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL3NpbXBsZSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL3NpbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTY2NWEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2RvY3Mvc2ltcGxlCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEVYQU1QTEUgcHJvcDE9Imdub21lIGlzIGdyZWF0IiBwcm9wMj0iJmFtcDsgbGludXggdG9vIj4KKyAgPGhlYWQ+CisgICA8dGl0bGU+V2VsY29tZSB0byBHbm9tZTwvdGl0bGU+CisgIDwvaGVhZD4KKyAgPGNoYXB0ZXI+CisgICA8dGl0bGU+VGhlIExpbnV4IGFkdmVudHVyZTwvdGl0bGU+CisgICA8cD5ibGEgYmxhIGJsYSAuLi48L3A+CisgICA8aW1hZ2UgaHJlZj0ibGludXMuZ2lmIi8+CisgICA8cD4uLi48L3A+CisgIDwvY2hhcHRlcj4KKzwvRVhBTVBMRT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL3N0ciBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL3N0cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDdlNTRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2RvY3Mvc3RyCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Y2hhcHRlcj4KKyAgPHA+YSBzaW1wbGUgdGVzdDwvcD4KKyAgPHA+bXVsdGlwbGUgdGVzdHM8L3A+CisgIDxwPmEgZGlmZjxlbT5pPC9lbT5jdWx0IG9uZTwvcD4KKyAgPHA+PHA+YSBzcGFuPC9wPm48cD5pbmcgb25lPC9wPjwvcD4KKyAgPHA+PHA+YW5kIGFuIHVuYmFsPC9wPjxlbXB0eS8+YW5jZWQgdGVzdDwvcD4KKyAgPHA+Zm9yIGVtcHR5IHN0cmluZyA8c2VxPjEyMzwvc2VxPjwvcD4KKzwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL3VzcjEgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy91c3IxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0Yzc1MjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy91c3IxCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEJPRFk+Cis8REVDTEFSQUNJT04gaW1wb3J0YWRvcj0iMTIzNDU2Nzg5IiBmZWNoYT0iMDgvMDkvMjAwMCIKK21vbnRvX2ZhY3R1cmE9IjEwMC4wOSI+Cis8SVRFTSBtb250bz0iNTAuMTIiIGRpdmlzYT0iRE9MIj4KKzxTVUZJSk8gY29kaWdvPSJOTDM0IiB2YWxvcj0ibmVncm8iLz4KKzxTVUZJSk8gY29kaWdvPSJBUzM0IiB2YWxvcj0iZ3JhbmRlIi8+Cis8L0lURU0+Cis8L0RFQ0xBUkFDSU9OPgorPEZJUk1BPk48L0ZJUk1BPgorPC9CT0RZPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy92aWQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZG9jcy92aWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RiNzQzNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9kb2NzL3ZpZApAQCAtMCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBpZGRlbW8gWworPCFFTEVNRU5UIGlkZGVtbyAoaGVhZD8sIChjaGFwdGVyKSopPgorPCFBVFRMSVNUIGlkZGVtbyBpZCBJRCAjSU1QTElFRD4KKzwhRUxFTUVOVCBoZWFkICh0aXRsZT8sIChwKSopPgorPCFBVFRMSVNUIGhlYWQgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgY2hhcHRlciAodGl0bGU/LCAocCB8IGltYWdlKSopPgorPCFBVFRMSVNUIGNoYXB0ZXIgaWQgSUQgI0lNUExJRUQ+Cis8IUVMRU1FTlQgaW1hZ2UgRU1QVFk+Cis8IUFUVExJU1QgaW1hZ2UgaHJlZiBDREFUQSAjSU1QTElFRD4KKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgcCAoI1BDREFUQSk+CitdPgorCis8aWRkZW1vPgorICA8aGVhZD4KKyAgIDx0aXRsZT5XZWxjb21lIHRvIEdub21lPC90aXRsZT4KKyAgPC9oZWFkPgorICA8Y2hhcHRlciBpZD0iY2hhcHRlcjEiPgorICAgPHRpdGxlPlRoZSBMaW51eCBhZHZlbnR1cmU8L3RpdGxlPgorICAgPHA+YmxhIGJsYSBibGEgLi4uPC9wPgorICAgPGltYWdlIGhyZWY9ImxpbnVzLmdpZiIvPgorICAgPHA+Li4uPC9wPgorICAgPHA+dGhpcmQgcDwvcD4KKyAgIDxwPmZvdXJ0aCBwPC9wPgorICA8L2NoYXB0ZXI+CisgIDxjaGFwdGVyIGlkPSJjaGFwdGVyMiI+CisgICA8dGl0bGU+Q2hhcHRlciAyPC90aXRsZT4KKyAgIDxwPnRoaXMgaXMgY2hhcHRlciAyIC4uLjwvcD4KKyAgPC9jaGFwdGVyPgorICA8Y2hhcHRlciBpZD0iY2hhcHRlcjMiPgorICAgPHRpdGxlPkNoYXB0ZXIgMzwvdGl0bGU+CisgICA8cD50aGlzIGlzIGNoYXB0ZXIgMyAuLi48L3A+CisgIDwvY2hhcHRlcj4KKyAgPGNoYXB0ZXIgaWQ9ImNoYXB0ZXI0Ij4KKyAgIDx0aXRsZT5DaGFwdGVyIDQ8L3RpdGxlPgorICAgPHA+dGhpcyBpcyBjaGFwdGVyIDQgLi4uPC9wPgorICA8L2NoYXB0ZXI+CisgIDxjaGFwdGVyIGlkPSJjaGFwdGVyNSI+CisgICA8dGl0bGU+Q2hhcHRlciA1PC90aXRsZT4KKyAgIDxwPnRoaXMgaXMgY2hhcHRlciA1IC4uLjwvcD4KKyAgPC9jaGFwdGVyPgorPC9pZGRlbW8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZXhwci9iYXNlIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2V4cHIvYmFzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWFlZDRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2V4cHIvYmFzZQpAQCAtMCwwICsxLDUgQEAKKzEKKzErMgorMiozCisxKzIqMys0CisoMSsyKSooMys0KQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2V4cHIvY29tcGFyZSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL2NvbXBhcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ1MmVhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL2NvbXBhcmUKQEAgLTAsMCArMSw0NiBAQAorMDwwCiswPD0wCiswPjAKKzA+PTAKKzA8MQorMDw9MQorMD4xCiswPj0xCisxPDAKKzE8PTAKKzE+MAorMT49MAorMTwxCisxPD0xCisxPjEKKzE+PTEKKycwJzwxCisnMCc8PTEKKycwJz4xCisnMCc+PTEKKzA8JzEuMicKKzA8PScxLjInCiswPicxLjInCiswPj0nMS4yJworMDwnLTAuMicKKzA8PSctMC4yJworMD4nLTAuMicKKzA+PSctMC4yJworZmFsc2UoKTwxCitmYWxzZSgpPD0xCiswPnRydWUoKQorMD49dHJ1ZSgpCisnYScgPiAnYScKKydhJyA+ICdiJworJ2InID4gJ2EnCisnYScgPCAnYScKKydhJyA8ICdiJworJ2InIDwgJ2EnCisnYScgPj0gJ2EnCisnYScgPj0gJ2InCisnYicgPj0gJ2EnCisnYScgPD0gJ2EnCisnYScgPD0gJ2InCisnYicgPD0gJ2EnCisnYScgPiAnMC4wJworJ2EnIDwgJzAuMCcKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL2VxdWFsaXR5IGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2V4cHIvZXF1YWxpdHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk4MjE3MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL2VxdWFsaXR5CkBAIC0wLDAgKzEsMjYgQEAKKzE9MQorMSE9MQorMT0wCisxIT0wCit0cnVlKCk9dHJ1ZSgpCit0cnVlKCkhPXRydWUoKQordHJ1ZSgpPWZhbHNlKCkKK2ZhbHNlKCkhPXRydWUoKQorJ3Rlc3QnPSd0ZXN0JworJ3Rlc3QnIT0ndGVzdCcKKyd0ZXN0Mic9J3Rlc3QnCisndGVzdDInIT0ndGVzdCcKK2ZhbHNlKCk9MAorZmFsc2UoKSE9MAorZmFsc2UoKT0xCitmYWxzZSgpIT0xCiswPXRydWUoKQorMCE9dHJ1ZSgpCisxPXRydWUoKQorMSE9dHJ1ZSgpCit0cnVlKCk9J3Rlc3QnCitmYWxzZSgpPSd0ZXN0JworJ3Rlc3QnIT10cnVlKCkKKyd0ZXN0JyE9ZmFsc2UoKQorJ2EnPTAuMAorJ2EnIT0wLjAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL2Zsb2F0cyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL2Zsb2F0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmMxMGQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL2V4cHIvZmxvYXRzCkBAIC0wLDAgKzEsNjEgQEAKKzEKKzEyMworMS4yMworMC4xMjMKKzQuCisuNAorMS4yM2UzCisxLjIzZS0zCisxIGRpdiAwCistMSBkaXYgMAorMCBkaXYgMAorMSBkaXYgLTAKKygxIGRpdiAwKSA+IDAKKygxIGRpdiAwKSA8IDAKKygtMSBkaXYgMCkgPiAwCisoLTEgZGl2IDApIDwgMAorKDAgZGl2IDApID4gMAorKDAgZGl2IDApIDwgMAorKDEgZGl2IC0wKSA+IDAKKygxIGRpdiAtMCkgPCAwCiswIGRpdiAwID0gMCBkaXYgMAorMCBkaXYgMCAhPSAwIGRpdiAwCiswIGRpdiAwID4gMCBkaXYgMAorMCBkaXYgMCA8IDAgZGl2IDAKKzAgZGl2IDAgPj0gMCBkaXYgMAorMCBkaXYgMCA8PSAwIGRpdiAwCisxIGRpdiAwID0gLTEgZGl2IDAKKzEgZGl2IDAgIT0gLTEgZGl2IDAKKzEgZGl2IDAgPiAtMSBkaXYgMAorMSBkaXYgMCA8IC0xIGRpdiAwCisxIGRpdiAwID49IC0xIGRpdiAwCisxIGRpdiAwIDw9IC0xIGRpdiAwCisxIGRpdiAwID0gMSBkaXYgMAorMSBkaXYgMCAhPSAxIGRpdiAwCisxIGRpdiAwID4gMSBkaXYgMAorMSBkaXYgMCA8IDEgZGl2IDAKKzEgZGl2IDAgPj0gLTEgZGl2IDAKKzEgZGl2IDAgPD0gLTEgZGl2IDAKKy0yIGRpdiAwID0gLTEgZGl2IDAKKzEgZGl2IGZsb29yKDAuMSkKKzEgZGl2IGZsb29yKC0wLjEpCisxIGRpdiBmbG9vcigtMCkKKzEgZGl2IGZsb29yKDApCisxIGRpdiBjZWlsaW5nKDAuMSkKKzEgZGl2IGNlaWxpbmcoLTAuMSkKKzEgZGl2IGNlaWxpbmcoLTApCisxIGRpdiBjZWlsaW5nKDApCisxIGRpdiByb3VuZCgwLjEpCisxIGRpdiByb3VuZCgtMC4xKQorMSBkaXYgcm91bmQoLTApCisxIGRpdiByb3VuZCgwKQorMSBkaXYgbnVtYmVyKCdmJykKK251bWJlcignZicpIGRpdiAxCisxIGRpdiAoMSBkaXYgMCkKKygxIGRpdiAwKSBkaXYgMQorLSgxIGRpdiAwKSBkaXYgMQorNSBtb2QgMgorNSBtb2QgLTIKKy01IG1vZCAyCistNSBtb2QgLTIKKzggbW9kIDMgPSAyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZXhwci9mdW5jdGlvbnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZXhwci9mdW5jdGlvbnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE2OGIxOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL2Z1bmN0aW9ucwpAQCAtMCwwICsxLDI1IEBACit0cnVlKCkKK2ZhbHNlKCkKK251bWJlcigiMS41IikKK251bWJlcignYWJjJykKKy1udW1iZXIoJ2FiYycpCitmbG9vcigwLjEpCitmbG9vcigtMC4xKQorZmxvb3IoLTApCitmbG9vcigwKQorZmxvb3IoNS4yKQorZmxvb3IoLTUuMikKK2NlaWxpbmcoMC4xKQorY2VpbGluZygtMC4xKQorY2VpbGluZygtMCkKK2NlaWxpbmcoMCkKK2NlaWxpbmcoNS4yKQorY2VpbGluZygtNS4yKQorcm91bmQoMC4xKQorcm91bmQoNS4yKQorcm91bmQoNS41KQorcm91bmQoNS42KQorcm91bmQoLTAuMSkKK3JvdW5kKC01LjIpCityb3VuZCgtNS41KQorcm91bmQoLTUuNikKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC9leHByL3N0cmluZ3MgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZXhwci9zdHJpbmdzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0OWNhMTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvZXhwci9zdHJpbmdzCkBAIC0wLDAgKzEsMzQgQEAKK3N0cmluZyg1KQorc3RyaW5nKDAuNSkKK3N0cmluZygtMC41KQorc3RyaW5nKHRydWUoKSkKK3N0cmluZyhmYWxzZSgpKQorY29uY2F0KCJ0aXRpIiwidG90byIpCitjb25jYXQoInRpdGkiLCJ0b3RvIiwidGF0YSIpCitjb25jYXQoInRpdGkiLCd0b3RvJykKK2NvbmNhdCgidGl0aSIsJ3RvdG8nLCJ0YXRhIiwibGFzdCIpCitzdGFydHMtd2l0aCgidGl0aXRvdG8iLCJ0aXRpIikKK3N0YXJ0cy13aXRoKCJ0aXRpdG90byIsInRvIikKK2NvbnRhaW5zKCJ0aXRpdG90b3RhdGEiLCJ0aXRpIikKK2NvbnRhaW5zKCJ0aXRpdG90b3RhdGEiLCJ0b3RvIikKK2NvbnRhaW5zKCJ0aXRpdG90b3RhdGEiLCJ0YXRhIikKK2NvbnRhaW5zKCJ0aXRpdG90b3RhdGEiLCJ0aXRhIikKK3N1YnN0cmluZygiMTIzNDUiLDIsMykKK3N1YnN0cmluZygiMTIzNDUiLDIpCitzdWJzdHJpbmcoIjEyMzQ1IiwtNCkKK3N1YnN0cmluZygiMTIzNDUiLDMuNCkKK3N1YnN0cmluZygiMTIzNDUiLDMuNikKK3N1YnN0cmluZygiMTIzNDUiLDEuNSwyLjYpCitzdWJzdHJpbmcoIjEyMzQ1IiwyLjIsMi4yKQorc3Vic3RyaW5nKCIxMjM0NSIsMCwzKQorc3Vic3RyaW5nKCIxMjM0NSIsLTgsMTApCitzdWJzdHJpbmcoIjEyMzQ1Iiw0LC0xMCkKK3N1YnN0cmluZygiMTIzNDUiLDAgZGl2IDAsIDMpCitzdWJzdHJpbmcoIjEyMzQ1IiwxLCAwIGRpdiAwKQorc3Vic3RyaW5nKCIxMjM0NSIsMSBkaXYgMCwgMykKK3N1YnN0cmluZygiMTIzNDUiLDMsLTEgZGl2IDApCitzdWJzdHJpbmcoIjEyMzQ1IiwtNDIsIDEgZGl2IDApCitzdWJzdHJpbmcoIjEyMzQ1IiwtMSBkaXYgMCwgMSBkaXYgMCkKK3N1YnN0cmluZygiMTIzNDUiLC0xIGRpdiAwLDUpCitzdHJpbmctbGVuZ3RoKCIiKQorc3RyaW5nLWxlbmd0aCgidGl0aSIpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvY2hhcHRlcnNiYXNlIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL2NoYXB0ZXJzYmFzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWE1M2I3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL2NoYXB0ZXJzYmFzZQpAQCAtMCwwICsxLDkgQEAKKy9jaGlsZDo6RVhBTVBMRQorL2NoaWxkOjoqCisvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQKKy9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6KgorL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpoZWFkL2NoaWxkOjp0aXRsZQorL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpoZWFkL2NoaWxkOjp0aXRsZS9jaGlsZDo6dGV4dCgpCisvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQvbm9kZSgpCisvZGVzY2VuZGFudDo6dGl0bGUKKy9kZXNjZW5kYW50OjpwL2FuY2VzdG9yOjpjaGFwdGVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvY2hhcHRlcnNwcmVmb2wgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvY2hhcHRlcnNwcmVmb2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGYxZTY1YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy9jaGFwdGVyc3ByZWZvbApAQCAtMCwwICsxLDggQEAKKy9mb2xsb3dpbmc6OioKKy9wcmVjZWRpbmc6OioKKy9jaGlsZDo6RVhBTVBMRS9wcmVjZWRpbmc6OioKKy9jaGlsZDo6RVhBTVBMRS9mb2xsb3dpbmc6OioKKy9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6Y2hhcHRlclszXS9wcmVjZWRpbmc6OioKKy9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6Y2hhcHRlclszXS9mb2xsb3dpbmc6OioKKy9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6Y2hhcHRlclsxXS9pbWFnZS9wcmVjZWRpbmc6OioKKy9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6Y2hhcHRlclsxXS9pbWFnZS9mb2xsb3dpbmc6OioKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy9pZHNpbXBsZSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy9pZHNpbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODQxYWU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL2lkc2ltcGxlCkBAIC0wLDAgKzEsMyBAQAorLy8qW0BpZD0icm9vdCJdCisvLypbQGlkPSJjaGFwdGVyMiJdCisvLypbQGlkPSJjaGFwdGVyNSJdCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvbGFuZ3NpbXBsZSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy9sYW5nc2ltcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MWEzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvbGFuZ3NpbXBsZQpAQCAtMCwwICsxLDUgQEAKKy8vKltsYW5nKCdlbicpXQorLy8qW2xhbmcoJ2VuLXVzJyldCisvLypbbGFuZygnZW4tZ2InKV0KKy8vKltsYW5nKCdmcicpXQorLy8qW2xhbmcoJycpXQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL21peGVkcGF0IGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL21peGVkcGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMTJmNmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvbWl4ZWRwYXQKQEAgLTAsMCArMSw3IEBACitzCitzfHAxL3MKK3N8L3Jvb3QvcDEvcworL3Jvb3QvcDEvc3xzCisvL3MKKy8vc3xwMQorcDF8Ly9zCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvbm9kZXNwYXQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvbm9kZXNwYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE1N2EzZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy9ub2Rlc3BhdApAQCAtMCwwICsxLDUgQEAKKy8uCisvLy4KKy9yb290Ly8uCisvLy4vLy4vLi8uLy8uCisvcm9vdC8vLi8uLy9iYXIvLy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvc2ltcGxlYWJiciBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy9zaW1wbGVhYmJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZTQ3NmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvc2ltcGxlYWJicgpAQCAtMCwwICsxLDEwIEBACisvRVhBTVBMRQorL0VYQU1QTEUvaGVhZAorL0VYQU1QTEUvY2hhcHRlclsxXQorLy9wCisvL2NoYXB0ZXIvaW1hZ2UKKy8vcC90ZXh0KCkKKy8vcC90ZXh0KClbcG9zaXRpb24oKT0xXQorLy9wL3RleHQoKVtwb3NpdGlvbigpPWxhc3QoKV0KKygvL3AvdGV4dCgpKVtwb3NpdGlvbigpPTFdCisoLy9wL3RleHQoKSlbcG9zaXRpb24oKT1sYXN0KCldCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvc2ltcGxlYmFzZSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy9zaW1wbGViYXNlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNDIwM2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvc2ltcGxlYmFzZQpAQCAtMCwwICsxLDkgQEAKKy9jaGlsZDo6KgorL2NoaWxkOjpFWEFNUExFCisvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQKKy9jaGlsZDo6RVhBTVBMRS9jaGlsZDo6KgorL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpoZWFkL2NoaWxkOjp0aXRsZQorL2NoaWxkOjpFWEFNUExFL2NoaWxkOjpoZWFkL2NoaWxkOjp0aXRsZS9jaGlsZDo6dGV4dCgpCisvY2hpbGQ6OkVYQU1QTEUvY2hpbGQ6OmhlYWQvbm9kZSgpCisvZGVzY2VuZGFudDo6dGl0bGUKKy9kZXNjZW5kYW50OjpwL2FuY2VzdG9yOjpjaGFwdGVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgvdGVzdHMvdXNyMWNoZWNrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL3VzcjFjaGVjawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzhkMDAzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL3VzcjFjaGVjawpAQCAtMCwwICsxIEBACisvL0lURU1bMV0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy92aWRiYXNlIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3Rlc3RzL3ZpZGJhc2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNkNzlhYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC90ZXN0cy92aWRiYXNlCkBAIC0wLDAgKzEsNSBAQAoraWQoJ2NoYXB0ZXIxJykKK2lkKCdjaGFwdGVyMycpCitpZCgnY2hhcHRlcjEnKS9wCitpZCgnY2hhcHRlcjEnKS8vcAoraWQoJ2NoYXB0ZXIxJykvcFsxXQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3hwdHIvY2hhcHRlcnNjaGlsZHNlcSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL2NoYXB0ZXJzY2hpbGRzZXEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I1MmY1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL2NoYXB0ZXJzY2hpbGRzZXEKQEAgLTAsMCArMSw4IEBACisvMS8yLzMKK2VsZW1lbnQoLzEvMi8zKQorZWxlbWVudChmb28pZWxlbWVudCgvMS8yLzMpCitlbGVtZW50KC8xLzIvMyllbGVtZW50KGZvbykKK2NoYXB0ZXIxLzMKK2VsZW1lbnQoY2hhcHRlcjEvMykKK2VsZW1lbnQoZm9vKWVsZW1lbnQoY2hhcHRlcjEvMykKK2VsZW1lbnQoY2hhcHRlcjEvMyllbGVtZW50KGZvbykKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL2NoYXB0ZXJzcGFydHMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9jaGFwdGVyc3BhcnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhZGM0N2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9jaGFwdGVyc3BhcnRzCkBAIC0wLDAgKzEsNiBAQAoreHBvaW50ZXIoLy9jaGFwaXRyZVsyXSkKK3hwb2ludGVyKC8vY2hhcHRlclsyXSkgCit4cG9pbnRlcigvL2NoYXBpdHJlWzJdKXhwb2ludGVyKC8vY2hhcHRlclsyXSkgCit4cG9pbnRlcihpZCgiY2hhcHRlcjEiKSkKK3hwb2ludGVyKC8vKltAaWQ9ImNoYXB0ZXIxIl0pCit4cG9pbnRlcihpZCgiY2hhcHRlcjEiKSl4cG9pbnRlcigvLypbQGlkPSJjaGFwdGVyMSJdKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3hwdHIvY2hhcHRlcnNyYW5nZSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL2NoYXB0ZXJzcmFuZ2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ3YTU1YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL2NoYXB0ZXJzcmFuZ2UKQEAgLTAsMCArMSw0IEBACit4cG9pbnRlcigvL2NoYXB0ZXJbcG9zaXRpb24oKSA9IDJdL3JhbmdlLXRvKGZvbGxvd2luZzo6Y2hhcHRlclsxXSkpCit4cG9pbnRlcigvL2NoYXB0ZXJbcG9zaXRpb24oKSA8PSAyXS9yYW5nZS10byhmb2xsb3dpbmc6OmNoYXB0ZXJbMV0pKQoreHBvaW50ZXIoLy9jaGFwdGVyW3Bvc2l0aW9uKCkgPSBsYXN0KCldL3JhbmdlLXRvKGZvbGxvd2luZzo6Y2hhcHRlclsxXSkpCit4cG9pbnRlcigvL2NoYXB0ZXJbcG9zaXRpb24oKSA9IDNdL3JhbmdlLXRvKC8uLy9jaGFwdGVyW3Bvc2l0aW9uKCkgPSAxXSkpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9zdHJwb2ludCBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL3N0cnBvaW50Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MTZlZjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9zdHJwb2ludApAQCAtMCwwICsxLDkgQEAKK3hwb2ludGVyKHN0YXJ0LXBvaW50KHN0cmluZy1yYW5nZSgvL3AsJ211bHRpcGxlJykpKQoreHBvaW50ZXIoZW5kLXBvaW50KHN0cmluZy1yYW5nZSgvL3AsJ211bHRpcGxlJykpKQoreHBvaW50ZXIoc3RhcnQtcG9pbnQoc3RyaW5nLXJhbmdlKC8vcCwndGVzdCcpKSkKK3hwb2ludGVyKGVuZC1wb2ludChzdHJpbmctcmFuZ2UoLy9wLCd0ZXN0JykpKQoreHBvaW50ZXIoc3RhcnQtcG9pbnQoc3RyaW5nLXJhbmdlKC8vKiwnbXVsdGlwbGUnLDEsMCkpKQoreHBvaW50ZXIoZW5kLXBvaW50KHN0cmluZy1yYW5nZSgvLyosJ211bHRpcGxlJywxLDApKSkKK3hwb2ludGVyKHN0YXJ0LXBvaW50KHN0cmluZy1yYW5nZSgvLyosJ211bHRpcGxlJywxLDEpKSkKK3hwb2ludGVyKGVuZC1wb2ludChzdHJpbmctcmFuZ2UoLy8qLCdtdWx0aXBsZScsMSwxKSkpCit4cG9pbnRlcihzdGFydC1wb2ludChzdHJpbmctcmFuZ2UoLy9wLCd0ZXN0JykpWzFdKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3hwdHIvc3RycmFuZ2UgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9zdHJyYW5nZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjMxOTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3hwdHIvc3RycmFuZ2UKQEAgLTAsMCArMSw2IEBACit4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAnc2ltcGxlJykpCit4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAndGVzdCcpKQoreHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vcCwgJ2RpZmZpY3VsdCcpKQoreHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vcCwgJ3NwYW5uaW5nJykpCit4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAndW5iYWxhbmNlZCcpKQoreHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vc2VxLCAnJykpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9zdHJyYW5nZTIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9zdHJyYW5nZTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEzMzU0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL3N0cnJhbmdlMgpAQCAtMCwwICsxLDMgQEAKK3hwb2ludGVyKHN0cmluZy1yYW5nZSgvL3AsICd0ZXN0JywgMikpCit4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAndGVzdCcsIDIsIDIpKQoreHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vcCwgJ2RpZmZpY3VsdCcsIDEsIDApKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3hwdHIvc3RycmFuZ2UzIGIvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3hwdHIvc3RycmFuZ2UzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYTU2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci9zdHJyYW5nZTMKQEAgLTAsMCArMSw0IEBACit4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy9wLCAndGVzdCcsIDEsIDApKQoreHBvaW50ZXIoc3RyaW5nLXJhbmdlKC8vKiwgJ3Rlc3QnLCAxLCAwKSkKK3hwb2ludGVyKHN0cmluZy1yYW5nZSgvL3AsICd0ZXN0JywgMSwgMClbMl0pCit4cG9pbnRlcihzdHJpbmctcmFuZ2UoLy8qLCAndGVzdCcsIDEsIDApWzJdKQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L1hQYXRoL3hwdHIvdmlkYmFzZSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL3ZpZGJhc2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE0NjM4MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL3ZpZGJhc2UKQEAgLTAsMCArMSwyIEBACit4cG9pbnRlcihpZCgnY2hhcHRlcjEnKS9wKQoreHBvaW50ZXIoaWQoJ2NoYXB0ZXIxJykvcFsxXS9yYW5nZS10byhmb2xsb3dpbmctc2libGluZzo6cFsyXSkpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci92aWRjaGlsZHNlcSBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL3ZpZGNoaWxkc2VxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlMjA1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci92aWRjaGlsZHNlcQpAQCAtMCwwICsxLDQgQEAKKy8xLzIvMworZWxlbWVudCgvMS8yLzMpCitjaGFwdGVyMS8zCitlbGVtZW50KGNoYXB0ZXIxLzMpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci92aWRwYXJ0cyBiL2xpYnhtbDItMi43LjcvdGVzdC9YUGF0aC94cHRyL3ZpZHBhcnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhZmJiZGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvWFBhdGgveHB0ci92aWRwYXJ0cwpAQCAtMCwwICsxLDMgQEAKK3hwb2ludGVyKGlkKCJjaGFwdGVyMSIpKQoreHBvaW50ZXIoLy8qW0BpZD0iY2hhcHRlcjEiXSkKK3hwb2ludGVyKGlkKCJjaGFwdGVyMSIpKXhwb2ludGVyKC8vKltAaWQ9ImNoYXB0ZXIxIl0pCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0MSBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHQxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwOWU1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0MQpAQCAtMCwwICsxLDIgQEAKKzxkb2MgYXR0cj0idG8gbm9ybWFsaXplCit3aXRoIGEgICAgc3BhY2UiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9hdHQxMCBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHQxMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzE0ZGM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDEwCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAodHN0Kik+Cis8IUVMRU1FTlQgdHN0ICgjUENEQVRBKT4KKzwhQVRUTElTVCB0c3QgYSBOTVRPS0VOUyAjSU1QTElFRD4KKzwhQVRUTElTVCB0c3QgYiBDREFUQSAjSU1QTElFRD4KKzwhRU5USVRZIGQgIiYjeEQ7Ij4KKzwhRU5USVRZIGEgIiYjeEE7Ij4KKzwhRU5USVRZIGRhICImI3hEOyYjeEE7Ij4KK10+Cis8ZG9jPgorPHRzdCBhPSIKKworeHl6IiBiPSIKKworeHl6Ii8+Cis8dHN0IGE9IiZkOyZkO0EmYTsmI3gyMDsmYTtCJmRhOyIgYj0iJmQ7JmQ7QSZhOyYjeDIwOyZhO0ImZGE7Ii8+Cis8dHN0IGE9IiYjeGQ7JiN4ZDtBJiN4YTsmI3hhO0ImI3hkOyYjeGE7IiBiPSImI3hkOyYjeGQ7QSYjeGE7JiN4YTtCJiN4ZDsmI3hhOyIvPgorPHRzdCBhPSImIzMyO3gmIzMyOyYjMzI7eSYjMzI7IiBiPSImIzMyO3gmIzMyOyYjMzI7eSYjMzI7Ii8+Cis8dHN0IGE9IiBhIGIgIiBiPSIgYSBiICIvPgorPHRzdCBhPSIgIGEgIGIgICIgYj0iICBhICBiICAiLz4KKzwvZG9jPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0MTEgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0MTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJmYWFmMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHQxMQpAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnIHN0YW5kYWxvbmU9J3llcyc/PgorPCFET0NUWVBFIGF0dHJpYnV0ZXMgWworPCFFTEVNRU5UIGF0dHJpYnV0ZXMgRU1QVFk+Cis8IUFUVExJU1QgYXR0cmlidXRlcworICAgbm10b2tlbiAgICBOTVRPS0VOICAgICNJTVBMSUVECisgICBubXRva2VucyAgIE5NVE9LRU5TICAgI0lNUExJRUQ+Cis8IUVOVElUWSBlbnQgIiBlbnRpdHkmcmVjdXJzaXZlOyAiPgorPCFFTlRJVFkgcmVjdXJzaXZlICJyZWZlcmVuY2UiPgorXT4KKzxhdHRyaWJ1dGVzCisgIG5tdG9rZW4gPSAgIiAmZW50OyAgICZlbnQ7ICZlbnQ7ICIKKyAgbm10b2tlbnMgPSAiIFRlc3QmI3gwZDsmI3gwYTsgICAgIHRoaXMmI3gyMDsgbm9ybWFsaXphdGlvbiAiCisvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjMwZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0MwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTc2ZmVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDMKQEAgLTAsMCArMSBAQAorPHNlbGVjdCBvbmNsaWNrPSJhYWFhJiMxMDsgICAgICBiYmJiJiMxNjA7Ij5mJiMxNjA7b288L3NlbGVjdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9hdHQ0IGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU4YmJjYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHQ0CkBAIC0wLDAgKzEsOTI2NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8IS0tIGVkaXRlZCB3aXRoIFhNTCBTcHkgdjQuNCBVIChodHRwOi8vd3d3LnhtbHNweS5jb20pIGJ5IFNsYXZhIChHSVZDKSAtLT4NCis8ZWxlY3Ryb3htbCBtb2RpZmllZD0iMjAwMjEyMTZUMDcyNzI2Ij4NCisJPGRhdGEgZnJvbT0iMjAwMjEwMzFUMjIiIHRvPSIyMDAyMTEzMFQyMiI+DQorCQk8c2VsZWN0Pg0KKwkJCTxkZXZpY2Ugc2VyaWFsbnVtYj0iRTAwMDAzNTYyIj4NCisJCQkJPHBhciBtZW1pbmQ9IjExMzQwMCIgaD0iM2RjMWE4ZGUiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFjMzIiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjcwNzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjdlODUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImQzMGIiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImZkMTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMjc4YzYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIzYmMzNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjNkODU2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNWE4NjciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjViNjc2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjczMjI3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjhkODBiIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI5M2E4NCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI5OGVkNCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYTFiNzciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImFhODE1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYjdiMDciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYmE1MzciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYmNmNjciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iY2NjODciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjUzIi8+DQorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iNTMiLz4NCisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxYzllOGYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjU1Ii8+DQorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iNTUiLz4NCisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSI1NSIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjE2OTM2NjAwIiBoPSIzZGMxYThkZSI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjE5Ni40Ii8+DQorCQkJCQk8dmFsIG89ImUwOCIgdj0iMTk5LjUiLz4NCisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iMjAwLjgiLz4NCisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMjAxLjgiLz4NCisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMTk5LjkiLz4NCisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iMTk3LjkiLz4NCisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMTkzLjIiLz4NCisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMTk3LjYiLz4NCisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iMTk1LjYiLz4NCisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iMTkyLjciLz4NCisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMTk1LjMiLz4NCisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iMTk1LjQiLz4NCisJCQkJCTx2YWwgbz0iYThiNiIgdj0iMTk1LjYiLz4NCisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMTk3LjMiLz4NCisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iMjIyLjYiLz4NCisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMjIwLjkiLz4NCisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMjIyLjgiLz4NCisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89ImZkMTciIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMjIxLjQiLz4NCisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjIyMi4yIi8+DQorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIyMjIuNSIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMjIwLjUiLz4NCisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjIyMC44Ii8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIyMjAiLz4NCisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjIyMS4yIi8+DQorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIyMjAuMyIvPg0KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iMjIxLjEiLz4NCisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjIyMC42Ii8+DQorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSIyMjAuOSIvPg0KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMjE5LjIiLz4NCisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjIxOS4zIi8+DQorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSIyMjAuNSIvPg0KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMjIwLjciLz4NCisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjIyMC4xIi8+DQorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSIyMjAuNCIvPg0KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMjIwLjEiLz4NCisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjIyMC4xIi8+DQorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSIyMjAuNyIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMjIwLjciLz4NCisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjIyMC41Ii8+DQorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjIyMiIvPg0KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iMjIxLjgiLz4NCisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjIyMC42Ii8+DQorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjIyMC44Ii8+DQorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSIyMTguOSIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMjIwIi8+DQorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iMjE4LjgiLz4NCisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSIyZTk0NiIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjIxOS45Ii8+DQorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSIyMjAuNSIvPg0KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iMjE5LjciLz4NCisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjIyMC44Ii8+DQorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSIyMjAuNiIvPg0KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iMjE5Ii8+DQorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSIyMjAuMyIvPg0KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iMjE5LjMiLz4NCisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iMjIwLjkiLz4NCisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjIyMC4xIi8+DQorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjIyMS40Ii8+DQorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSIyMjAuMiIvPg0KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMjE3LjYiLz4NCisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjIxOC40Ii8+DQorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSIyMTguMSIvPg0KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iMjE4LjciLz4NCisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjIxOS45Ii8+DQorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSIyMTguNyIvPg0KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSIyMjAuNyIvPg0KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iMjIyLjciLz4NCisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iMjIwLjUiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjIxOC45Ii8+DQorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIyMTkuMyIvPg0KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iMjE5LjYiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjIxOS4zIi8+DQorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIyMTkuNyIvPg0KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iMjIwLjQiLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjIyMC41Ii8+DQorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIyMjEuOCIvPg0KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iMjIyLjUiLz4NCisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjIyNC41Ii8+DQorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIyMjMuNiIvPg0KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjIyMi4zIi8+DQorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIyMjIuNiIvPg0KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iMjIwLjgiLz4NCisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjIyMC44Ii8+DQorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIyMjAuMiIvPg0KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMjIwLjIiLz4NCisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjIxOS4zIi8+DQorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIyMTkuOCIvPg0KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMjE5Ii8+DQorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIyMTguNyIvPg0KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMjIwLjciLz4NCisJCQkJCTx2YWwgbz0iNmViZDYiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iMjIxLjgiLz4NCisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjIyMi44Ii8+DQorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSIyMjMuOCIvPg0KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iMjIzLjQiLz4NCisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjIyMi4xIi8+DQorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSIyMjEiLz4NCisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjIxOS41Ii8+DQorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIyMTkuOSIvPg0KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iMjIwLjgiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjIyMC44Ii8+DQorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIyMTcuOSIvPg0KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iMjE5Ii8+DQorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIyMTguNiIvPg0KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iMjE5LjQiLz4NCisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjIxOS43Ii8+DQorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjIyMy4xIi8+DQorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIyMjIiLz4NCisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjIyNC4yIi8+DQorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjIyMC40Ii8+DQorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjIxOS42Ii8+DQorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSIyMTkuMiIvPg0KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iMjE5Ii8+DQorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIyMTguNSIvPg0KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iMjE5LjMiLz4NCisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjIxOS40Ii8+DQorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIyMjEiLz4NCisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjIyMC43Ii8+DQorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iMjI1LjIiLz4NCisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjIyNSIvPg0KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iMjIyLjYiLz4NCisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjIyMy42Ii8+DQorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIyMjQuMSIvPg0KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iMjIzLjIiLz4NCisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjE4MCIvPg0KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iMTk1LjkiLz4NCisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjE5MCIvPg0KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMTIyLjMiLz4NCisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjM1NC42Ii8+DQorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSIzMzMuMiIvPg0KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iMzIzLjMiLz4NCisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjI3OC4xIi8+DQorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSIyODYuMiIvPg0KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iMjkyLjMiLz4NCisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjIxLjQiLz4NCisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjI3My43Ii8+DQorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSIyNzIuOSIvPg0KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iMjg1LjQiLz4NCisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjI4LjUiLz4NCisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjY4LjQiLz4NCisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjE0Ny4xIi8+DQorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSI5NS43Ii8+DQorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSI4OS42Ii8+DQorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSI4OC4zIi8+DQorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSI5Mi40Ii8+DQorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIxNDkuNyIvPg0KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMTQ4LjciLz4NCisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjEyNy43Ii8+DQorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSIxOTguMiIvPg0KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iMTg3LjIiLz4NCisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjE4Mi4xIi8+DQorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSIxOTUuOCIvPg0KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iMjAzLjgiLz4NCisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjEyNC41Ii8+DQorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIxNTkuMiIvPg0KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iMjMwLjYiLz4NCisJCQkJCTx2YWwgbz0iYmRkODEiIHY9Ijc5LjgiLz4NCisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjUxLjMiLz4NCisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjIyLjUiLz4NCisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjMyMy43Ii8+DQorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIzNDEuNiIvPg0KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNDYuNCIvPg0KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iNzEuOSIvPg0KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iNzEuOSIvPg0KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iNjMuNCIvPg0KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iNzYuNCIvPg0KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNTguNCIvPg0KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iOTIiLz4NCisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9Ijc5LjYiLz4NCisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjYzLjEiLz4NCisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjUxLjMiLz4NCisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjgxLjciLz4NCisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjIwNS4zIi8+DQorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSI5Ni4xIi8+DQorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSI5NS43Ii8+DQorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSI5Ni43Ii8+DQorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSI5Mi44Ii8+DQorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSI5MS40Ii8+DQorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSI4Ni4xIi8+DQorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIyNzAiLz4NCisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjI3MC40Ii8+DQorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSIyOTYuNyIvPg0KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iMzA2LjgiLz4NCisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjMzMS43Ii8+DQorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSIxMy43Ii8+DQorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSI0Ni40Ii8+DQorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSIyNjIuMSIvPg0KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMTY2LjIiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjE0My42Ii8+DQorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIxMjcuMiIvPg0KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMTMyLjciLz4NCisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjEyOC4zIi8+DQorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIxNTUuNiIvPg0KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMTcwLjgiLz4NCisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjE3Ni4xIi8+DQorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxNzYuOCIvPg0KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMTY4LjgiLz4NCisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjE3Mi4yIi8+DQorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSIxODUuMiIvPg0KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iMTk2LjMiLz4NCisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjE3OC41Ii8+DQorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIxOTMuNyIvPg0KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMTc2LjIiLz4NCisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjE5Ni43Ii8+DQorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSIyMDIuMiIvPg0KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iOTkuOSIvPg0KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iMTMwLjIiLz4NCisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjEzMi45Ii8+DQorCQkJCQk8dmFsIG89ImViOGFlIiB2PSIxMjEuNyIvPg0KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iMTAwLjkiLz4NCisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjE5Mi45Ii8+DQorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSIxNTMuNyIvPg0KKwkJCQkJPHZhbCBvPSJlZjBlZiIgdj0iMTcwLjQiLz4NCisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjE1NS4yIi8+DQorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSIxNjcuMyIvPg0KKwkJCQkJPHZhbCBvPSJmMWIyMCIgdj0iMTY1LjUiLz4NCisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjE4NC4zIi8+DQorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIxNTkuMiIvPg0KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMTYzLjQiLz4NCisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjE2My41Ii8+DQorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIxNjAuOCIvPg0KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMTY1Ii8+DQorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIxNTYuNCIvPg0KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMTYzLjgiLz4NCisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjE2Mi45Ii8+DQorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxNTQuOSIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTU3LjEiLz4NCisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjE5Ny4yIi8+DQorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSIyMDMuOCIvPg0KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMjEyLjUiLz4NCisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjE4NS40Ii8+DQorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSIxODcuMiIvPg0KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjE2MiIvPg0KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjE0OS4zIi8+DQorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMTM2LjgiLz4NCisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIxNDUuOSIvPg0KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjE2NC4xIi8+DQorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMTU4LjIiLz4NCisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSIxNjMiLz4NCisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxNjEuNiIvPg0KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjE2OC45Ii8+DQorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iMTY4LjUiLz4NCisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIxNjUuMSIvPg0KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjE2OC4yIi8+DQorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMTYzLjkiLz4NCisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIxNDcuNSIvPg0KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjE2MyIvPg0KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjE2Ni4zIi8+DQorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMTc3LjQiLz4NCisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxNzkuNyIvPg0KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjE2MSIvPg0KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjE3NC40Ii8+DQorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iMjAzLjYiLz4NCisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSIxNTguMyIvPg0KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjE3Mi45Ii8+DQorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iMTcyLjciLz4NCisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIxNjguNCIvPg0KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjEzOCIvPg0KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjEzNS44Ii8+DQorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTU3LjgiLz4NCisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIxNjAuNiIvPg0KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjE3NS43Ii8+DQorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMTg0LjEiLz4NCisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSIxODguNiIvPg0KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjE3MCIvPg0KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjE3My42Ii8+DQorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMTY3Ii8+DQorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iMTcyLjYiLz4NCisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIxNjQuNiIvPg0KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjE2Ni44Ii8+DQorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMTUxLjkiLz4NCisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIxNTguNiIvPg0KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjE3MC44Ii8+DQorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMTg1LjQiLz4NCisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIxNjAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjE4OC42Ii8+DQorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMjA3LjciLz4NCisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSIyMTQuNiIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjIxMy43Ii8+DQorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMjE4LjQiLz4NCisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSIyMTAuNSIvPg0KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjE3OC44Ii8+DQorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iMTYyLjYiLz4NCisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIxNTYuNCIvPg0KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjE1My41Ii8+DQorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMTQzLjkiLz4NCisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIxNjAuOCIvPg0KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjE1My40Ii8+DQorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMTYzLjYiLz4NCisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIxNjguMiIvPg0KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjE2OS4zIi8+DQorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMTM5LjEiLz4NCisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIxNDIuNCIvPg0KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjEyMi4xIi8+DQorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMTI1LjUiLz4NCisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIxMTAuNyIvPg0KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjExMC42Ii8+DQorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMTkwLjIiLz4NCisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSI5OS42Ii8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMjA5LjQiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSI3Ni4yIi8+DQorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iNjEuNSIvPg0KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjQ0LjUiLz4NCisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSI0NC4yIi8+DQorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iNjAuNCIvPg0KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjY0LjYiLz4NCisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSI2Ny4zIi8+DQorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMzQxLjIiLz4NCisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIxMTUuOCIvPg0KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjExNy4zIi8+DQorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMjUyLjQiLz4NCisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIyNjEuOCIvPg0KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjMxMy4zIi8+DQorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMzExLjMiLz4NCisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIyOTIiLz4NCisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSI1Ny42Ii8+DQorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMTUxLjYiLz4NCisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSI5Mi43Ii8+DQorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iOTMuNCIvPg0KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjEwMC4zIi8+DQorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iOTcuNCIvPg0KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjE4NCIvPg0KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjI4OS4xIi8+DQorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMjc0LjIiLz4NCisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIzOS44Ii8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iNi41Ii8+DQorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMzU1LjkiLz4NCisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSIxOS40Ii8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iNDQuMiIvPg0KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjYxLjQiLz4NCisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSI1NS41Ii8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iNjAuMiIvPg0KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjcxLjciLz4NCisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSI2Ni4zIi8+DQorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iNjEuNSIvPg0KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjM4LjUiLz4NCisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIxNy4zIi8+DQorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMzUuNiIvPg0KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjQ0LjkiLz4NCisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSI3MS40Ii8+DQorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMTY2LjEiLz4NCisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIxMjUiLz4NCisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIxNzYiLz4NCisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIxOTUuMyIvPg0KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9Ijk5LjEiLz4NCisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSI5MCIvPg0KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjI3My45Ii8+DQorCQkJCQk8dmFsIG89IjE2Njk4MiIgdj0iMzQ0LjciLz4NCisJCQkJCTx2YWwgbz0iMTY3Nzg2IiB2PSIzMDcuMiIvPg0KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjI3MS44Ii8+DQorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMjc4LjgiLz4NCisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIyOTEuNSIvPg0KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjUyLjkiLz4NCisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSI3Ni42Ii8+DQorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iODcuNiIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjE3MC4xIi8+DQorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMTc0LjIiLz4NCisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIxNzUuNiIvPg0KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjE4Ni43Ii8+DQorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMTgzLjIiLz4NCisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIxODEuNyIvPg0KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjE3My42Ii8+DQorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMTcwLjciLz4NCisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIxNjUuNCIvPg0KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjE2My44Ii8+DQorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMTYxLjciLz4NCisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSIxNjUuNCIvPg0KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjE3MC45Ii8+DQorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMTczLjUiLz4NCisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSIxODcuOSIvPg0KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjIwMS44Ii8+DQorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iMjA1LjkiLz4NCisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSIyMDQuNiIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjIwNC4xIi8+DQorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iMjA4LjIiLz4NCisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSIyMDQuNCIvPg0KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjE5My41Ii8+DQorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iMTg2LjQiLz4NCisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIxOTIuNCIvPg0KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjE5NC4zIi8+DQorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iMTg0LjQiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSIxODQuMSIvPg0KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjE4NS42Ii8+DQorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iMTk0LjkiLz4NCisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSIxOTIuMSIvPg0KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjE5Mi4xIi8+DQorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iMTkwLjYiLz4NCisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSIxODUuNCIvPg0KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjE3MC45Ii8+DQorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iMTg3LjQiLz4NCisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSIxOTEuMSIvPg0KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjE5MS4xIi8+DQorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iMTk3LjEiLz4NCisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSIxOTUuOSIvPg0KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjE4OS44Ii8+DQorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iMjAxLjkiLz4NCisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSIyMDIuMiIvPg0KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjIwNC40Ii8+DQorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iMTk2LjMiLz4NCisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSIxODIuNiIvPg0KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjE2Mi42Ii8+DQorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMTg3LjIiLz4NCisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSIxODcuMyIvPg0KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjE3OS43Ii8+DQorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMTgxLjciLz4NCisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSIxODguMyIvPg0KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjE4Ni4yIi8+DQorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMTgzLjUiLz4NCisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSIxODIuMiIvPg0KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjE3Ni41Ii8+DQorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMTc1LjYiLz4NCisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIxNzguNSIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjIyMy44Ii8+DQorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMjI4LjEiLz4NCisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSIyMjkuNyIvPg0KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjIxNi4xIi8+DQorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iMjI2LjQiLz4NCisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIyNDkuNiIvPg0KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjI0NS44Ii8+DQorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iMjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIyNTEuMSIvPg0KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjI1Mi41Ii8+DQorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iMjU5LjQiLz4NCisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSIyNTQuOCIvPg0KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjIxOC43Ii8+DQorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMjI4LjMiLz4NCisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIyMjcuMyIvPg0KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjIxNC4yIi8+DQorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMjE4LjciLz4NCisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSIyMTciLz4NCisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSIyMzEuNyIvPg0KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjIzMC42Ii8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNTIiLz4NCisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSIzNDAuMyIvPg0KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjE4LjUiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIzNTcuNSIvPg0KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjM0NC43Ii8+DQorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iMzM4LjQiLz4NCisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSIyOC40Ii8+DQorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMjEuOCIvPg0KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjEwLjQiLz4NCisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSIzNDMuOSIvPg0KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjM0Mi44Ii8+DQorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iMzU4LjIiLz4NCisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSIzNTMuNSIvPg0KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjM1My40Ii8+DQorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMS40Ii8+DQorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iNi40Ii8+DQorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMTAuNSIvPg0KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjM1MC43Ii8+DQorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iMzUwLjgiLz4NCisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSIzNTcuNiIvPg0KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjE4MS4xIi8+DQorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iMTg0LjgiLz4NCisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIxOTIuNiIvPg0KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjE5My4xIi8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMTk0LjciLz4NCisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIxOTAuOCIvPg0KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjE5NSIvPg0KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjE5NS44Ii8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMTk1LjMiLz4NCisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIxOTguMSIvPg0KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9IjE5OC40Ii8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMTk5LjUiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIyMDAuMiIvPg0KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjIwMi4zIi8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMjAwLjciLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIyMDMuNSIvPg0KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjIwNC42Ii8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iMTg4LjQiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSIxOTMuOSIvPg0KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjE4NC40Ii8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iMTkwLjUiLz4NCisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIxODguOSIvPg0KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9IjE5Mi4yIi8+DQorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iMTg1LjYiLz4NCisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIxODYuNiIvPg0KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9IjE4Mi44Ii8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMTg3LjYiLz4NCisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSIxODYuOSIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9IjE2OC4yIi8+DQorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMTY0LjIiLz4NCisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxNTQuMyIvPg0KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9IjEzNC4zIi8+DQorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTU0LjIiLz4NCisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSIxODIuMiIvPg0KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9IjE4OC4zIi8+DQorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMTc2Ii8+DQorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iMjA2LjQiLz4NCisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIyMTYuNSIvPg0KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjIxMS41Ii8+DQorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iMjEwLjgiLz4NCisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIyMTEuMiIvPg0KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjE5Mi40Ii8+DQorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iMTg1LjEiLz4NCisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIxNzYuNiIvPg0KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjE3MS41Ii8+DQorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMTI5LjUiLz4NCisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIxNzMuNCIvPg0KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjE1Ny4yIi8+DQorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMTYxLjIiLz4NCisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSIxNjMuNSIvPg0KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjE3Ni44Ii8+DQorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMTY2LjgiLz4NCisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIxNjEuNSIvPg0KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjE1OS4zIi8+DQorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMTc3LjYiLz4NCisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSIxODMuMiIvPg0KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjE4NS40Ii8+DQorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iMTgyLjYiLz4NCisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIxODkuMyIvPg0KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjE3My4yIi8+DQorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMTc5LjQiLz4NCisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSIxOTMuNSIvPg0KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjIwMi42Ii8+DQorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iMTk3LjgiLz4NCisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSIxODYuOSIvPg0KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjE4OC4zIi8+DQorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iMTc4LjciLz4NCisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSIxNjAuMiIvPg0KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjE2OC4zIi8+DQorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iMTg0Ii8+DQorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMTkxLjEiLz4NCisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIxNzcuMyIvPg0KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjE4Mi45Ii8+DQorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMTg1LjQiLz4NCisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSIxNzYuMyIvPg0KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjE3MC4xIi8+DQorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMTY5LjMiLz4NCisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIxNTkuOCIvPg0KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjE5MC45Ii8+DQorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iMTczLjkiLz4NCisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSIxNzUuNSIvPg0KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjE4Ny41Ii8+DQorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iMTg4LjUiLz4NCisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIxNjAiLz4NCisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIxNzUuNSIvPg0KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjE5Mi40Ii8+DQorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iMjAwLjgiLz4NCisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIxMTYuOSIvPg0KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjE2Ni4zIi8+DQorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iMTYyLjgiLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxMzAuNCIvPg0KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjEyMiIvPg0KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjE5My41Ii8+DQorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iMTgzLjkiLz4NCisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSIxNTcuMyIvPg0KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjE0Mi43Ii8+DQorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMTQ1LjkiLz4NCisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSIxODIuMiIvPg0KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjE4Mi43Ii8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMTczLjMiLz4NCisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSIxODguNiIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjE3OS40Ii8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMTY5LjgiLz4NCisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIxNjQuMyIvPg0KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjE3MC4yIi8+DQorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMTc4LjgiLz4NCisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIxNTgiLz4NCisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIxNjEuNiIvPg0KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjE3NS44Ii8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMTY5LjkiLz4NCisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSIxODUuMyIvPg0KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjE5MS42Ii8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMTc2LjgiLz4NCisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSIxNjcuNyIvPg0KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjE1NC4xIi8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMTY3Ii8+DQorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMTgwIi8+DQorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMTY2LjkiLz4NCisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIxNDYuOSIvPg0KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjE1NS40Ii8+DQorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMTU3LjYiLz4NCisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIxODkuOSIvPg0KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjE4Ny40Ii8+DQorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMTg2LjkiLz4NCisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIxNzkuNSIvPg0KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjEzOS42Ii8+DQorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMTYxLjgiLz4NCisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIxNzIiLz4NCisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSIxODkuNSIvPg0KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjE4Ny4zIi8+DQorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iMTg4LjIiLz4NCisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSIxODYuMSIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjE5OC4xIi8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMTkzLjMiLz4NCisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSIxOTUuNiIvPg0KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjE5OC4zIi8+DQorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMTgwLjUiLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIxODAiLz4NCisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSIxNjEuNiIvPg0KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjE2NS44Ii8+DQorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMTY1LjYiLz4NCisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIxNjAuNCIvPg0KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjE0Ny4yIi8+DQorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iMTk2LjkiLz4NCisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSIxOTUuNyIvPg0KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjE4Ni45Ii8+DQorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iMTc4LjMiLz4NCisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIxNzcuNiIvPg0KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjE3MiIvPg0KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjE1Ni41Ii8+DQorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iMTU0LjMiLz4NCisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIxNTciLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIxNzkuNSIvPg0KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjE2NiIvPg0KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjE3Mi4zIi8+DQorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iMTk2LjQiLz4NCisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxNzkuNSIvPg0KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjE5NS43Ii8+DQorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iMjAyLjciLz4NCisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSIyMDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjIwNC4xIi8+DQorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iMTk5LjkiLz4NCisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSIxODYuMyIvPg0KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjE3NS42Ii8+DQorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iMTcwLjEiLz4NCisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIxNTkuMiIvPg0KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjE1Ni40Ii8+DQorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iMTM3LjciLz4NCisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIxNDYiLz4NCisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIxMzkuNiIvPg0KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjE0My4yIi8+DQorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iMTM3LjciLz4NCisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxNzcuOSIvPg0KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjE4Ni45Ii8+DQorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iMTg0LjUiLz4NCisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSIxODguMiIvPg0KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjE5MS4xIi8+DQorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iMTQ2LjciLz4NCisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIxNjEuNCIvPg0KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjE4OC43Ii8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iMTA2OTUwMDAiIGg9IjNkYzFhOGRlIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZTA4IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjQ2NDUiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjMyMTllIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjVhODY3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjczMjI3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjllMzM2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZThlN2YiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTFiZTJmIiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTJlNTc1IiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNzIwNDciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNzRhNzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFjOTA3ZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFjYmFiMSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjE5MDI2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSI1MC4xIi8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iNDkuOSIvPg0KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjQ5LjkiLz4NCisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iNTAuMSIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjUwLjEiLz4NCisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSI1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjUwIi8+DQorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSI0OS45Ii8+DQorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iNTAiLz4NCisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSI1MCIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9Ijg2MTIiIGg9IjNkYzFhOGRlIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMjUuMDciLz4NCisJCQkJCTx2YWwgbz0iZTA4IiB2PSIyNC4wNjciLz4NCisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iMjMuNDM4Ii8+DQorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjIzLjI0NSIvPg0KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSIyMi43ODQiLz4NCisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iMjIuNzQ2Ii8+DQorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjI2LjI5NyIvPg0KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSIyOC44NzgiLz4NCisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iMzQuNDUxIi8+DQorCQkJCQk8dmFsIG89IjdlODUiIHY9IjQwLjAxNyIvPg0KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSI0MC41NzIiLz4NCisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iMzguNjgyIi8+DQorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjM1Ljg2OSIvPg0KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSIzNC4xMiIvPg0KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwLjAzOCIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iMC4wMzgiLz4NCisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iMC4wMzMiLz4NCisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAuMDMzIi8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIwLjAzNCIvPg0KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iMC4wMzMiLz4NCisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwLjAzNCIvPg0KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMC4wMzMiLz4NCisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIwLjAzOCIvPg0KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9IjAuMDM5Ii8+DQorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjAuMDM4Ii8+DQorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMC4wMzgiLz4NCisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIwLjAzNCIvPg0KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjAuMDQiLz4NCisJCQkJCTx2YWwgbz0iNWE4NjciIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI1ZWViOCIgdj0iMC4wMzkiLz4NCisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjAuMDM5Ii8+DQorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSIwLjAzMyIvPg0KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMC4wMzMiLz4NCisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIwLjA0Ii8+DQorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIwLjAzNCIvPg0KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjAuMDM3Ii8+DQorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAuMDM2Ii8+DQorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iMC4wMzYiLz4NCisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSIwLjAzNCIvPg0KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iMC4wMzQiLz4NCisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAuMDM0Ii8+DQorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iMC4wMzciLz4NCisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iMC4wMzUiLz4NCisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwLjAzNiIvPg0KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iMzYuMTE3Ii8+DQorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSIxNy42MTMiLz4NCisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjguMzU3Ii8+DQorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSI1Ljk1NyIvPg0KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iNy4xMzQiLz4NCisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjguNjQ2Ii8+DQorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSI2LjQyOSIvPg0KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iMTAuMjM1Ii8+DQorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIxNC4wMjciLz4NCisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjMuNTQ5Ii8+DQorCQkJCQk8dmFsIG89ImFhODE1IiB2PSIzLjgiLz4NCisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjYuMDkzIi8+DQorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSI1LjIwNCIvPg0KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iNy41MjYiLz4NCisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjExLjM5Ii8+DQorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIwLjk1NCIvPg0KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iNS43NzMiLz4NCisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjIxLjAxOSIvPg0KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMjIuNjM2Ii8+DQorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIxOS4zMTYiLz4NCisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjEuMjY1Ii8+DQorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSIzLjEzIi8+DQorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSI2LjA5MSIvPg0KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iNy4yNzMiLz4NCisJCQkJCTx2YWwgbz0iYjdiMDciIHY9IjkuMzczIi8+DQorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSI3LjcxMSIvPg0KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iOC4xODMiLz4NCisJCQkJCTx2YWwgbz0iYmE1MzciIHY9IjkuODQzIi8+DQorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSI1LjI1MSIvPg0KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMi42NDYiLz4NCisJCQkJCTx2YWwgbz0iYmNmNjciIHY9IjcuMTc1Ii8+DQorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIxOS42OTciLz4NCisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjQuNzAzIi8+DQorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSI1LjAxNyIvPg0KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iNS4wMjgiLz4NCisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjQuNDA2Ii8+DQorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI1LjE2NCIvPg0KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMTAuOTUxIi8+DQorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI1LjA5NiIvPg0KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMTAuMDMyIi8+DQorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI0LjA4NCIvPg0KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNS4yMjMiLz4NCisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjYuNjIyIi8+DQorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIyLjU3MSIvPg0KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMy43NjYiLz4NCisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjIuOTI1Ii8+DQorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI0LjIzOSIvPg0KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMi40NDIiLz4NCisJCQkJCTx2YWwgbz0iY2NjODciIHY9IjEwLjY1MyIvPg0KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMTUuMDQ1Ii8+DQorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSIxMC40OTciLz4NCisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9IjE0LjI0MyIvPg0KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iMTEuMzE4Ii8+DQorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSI3LjI2Ii8+DQorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIzLjI3OCIvPg0KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMTIuNzY4Ii8+DQorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSI4Ljg2MyIvPg0KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iOC40MjMiLz4NCisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjcuNTAzIi8+DQorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSI3LjgwMyIvPg0KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTAuOTEiLz4NCisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjUuNzQzIi8+DQorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIyLjA4MiIvPg0KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iNy43NTEiLz4NCisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjE2Ljc4NSIvPg0KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMTguNDY3Ii8+DQorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIxOC44MDEiLz4NCisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjE2LjAwOCIvPg0KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMTMuNjI5Ii8+DQorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxNC40NzkiLz4NCisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjE0LjkyNyIvPg0KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMTQuMzQ5Ii8+DQorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIxNS41MDIiLz4NCisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjIwLjA3Ii8+DQorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIyMC4wMTEiLz4NCisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjE2LjM1NyIvPg0KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iMTcuMDMiLz4NCisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjExLjkwMSIvPg0KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iMTAuMTM4Ii8+DQorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSI4LjczMSIvPg0KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMTQuMzU3Ii8+DQorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSI0Ljg2Ii8+DQorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI0LjE0OSIvPg0KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iNi4wMTkiLz4NCisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjE0LjYzNSIvPg0KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iOS45ODkiLz4NCisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjExLjk2Ii8+DQorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIxNS40MjIiLz4NCisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjIyLjc0MiIvPg0KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMjIuNDI4Ii8+DQorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIyNC4xMSIvPg0KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iMjMuMDc2Ii8+DQorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIyMy4yNDEiLz4NCisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjI0LjAxOCIvPg0KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMjUuOTg5Ii8+DQorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIyNC43NDgiLz4NCisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjI1LjMyMyIvPg0KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMjMuMTIyIi8+DQorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIxOS40MDMiLz4NCisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjE5LjI4Ii8+DQorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxNi4xMiIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTYuMjI4Ii8+DQorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSIxNi42NTQiLz4NCisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjE0LjIiLz4NCisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9IjE0LjA1NCIvPg0KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iOS41NTciLz4NCisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjkuMDcyIi8+DQorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iOC4zMzMiLz4NCisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSI5Ljc3MSIvPg0KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjE0LjMzNyIvPg0KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjE2LjA0OSIvPg0KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjE5LjkxMSIvPg0KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjIzLjIzOCIvPg0KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjIzLjIxMyIvPg0KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjI1LjE3OSIvPg0KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjIxLjU5MSIvPg0KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjE5LjY2NSIvPg0KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjIxLjA3OSIvPg0KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjIxLjEwOSIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjIyLjM2MyIvPg0KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjI1LjE3MiIvPg0KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjIzLjIyMyIvPg0KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjIwLjkxMiIvPg0KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjIyLjAxNyIvPg0KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjE4LjcyOSIvPg0KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9IjE2Ljc2MSIvPg0KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjEzLjE0NSIvPg0KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjEzLjkxMiIvPg0KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjguNzEyIi8+DQorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iOC4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSI4LjE5NSIvPg0KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjguMzAxIi8+DQorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTAuMTExIi8+DQorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMTQuMjEzIi8+DQorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTUuNjE3Ii8+DQorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTkuMDk1Ii8+DQorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMjMuOTg2Ii8+DQorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMjAuOTE5Ii8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMjYuMDYiLz4NCisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSIyMS40OTMiLz4NCisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIyMS4wMDYiLz4NCisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSIyMi4xNDQiLz4NCisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIxOS4xMjQiLz4NCisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIwLjAxOSIvPg0KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjAuMDIxIi8+DQorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMC4wMjEiLz4NCisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIwLjAxOCIvPg0KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjAuMDE1Ii8+DQorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMC4wMTYiLz4NCisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIwLjAxMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjAuMDEiLz4NCisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSIwLjAxMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjAuMDEiLz4NCisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIwLjAxIi8+DQorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMC4wMSIvPg0KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjAuMDA5Ii8+DQorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iMC4wMDYiLz4NCisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIwLjAwOSIvPg0KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9IjAuMDExIi8+DQorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMC4wMTciLz4NCisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIwLjAxMiIvPg0KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9IjAuMDE5Ii8+DQorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMC4wMTQiLz4NCisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIwLjAxNSIvPg0KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9IjAuMDE1Ii8+DQorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMC4yNzkiLz4NCisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwLjA5NiIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAuMTQxIi8+DQorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMC4yMDciLz4NCisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwLjIxOCIvPg0KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAuMjEzIi8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMC4yMTQiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwLjA3NSIvPg0KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAuMDUiLz4NCisJCQkJCTx2YWwgbz0iMTNiODY1IiB2PSIwLjAzNCIvPg0KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAuNDQ5Ii8+DQorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMC4yMTciLz4NCisJCQkJCTx2YWwgbz0iMTNlMjllIiB2PSIwLjE2NyIvPg0KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAuMTU4Ii8+DQorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMC4yMzIiLz4NCisJCQkJCTx2YWwgbz0iMTQwY2NmIiB2PSIwLjMzOSIvPg0KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAuMjEyIi8+DQorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMC4wNDQiLz4NCisJCQkJCTx2YWwgbz0iMTQzNmZmIiB2PSIwLjAzMyIvPg0KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAuMDI1Ii8+DQorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMC4wMjMiLz4NCisJCQkJCTx2YWwgbz0iMTQ2MTMwIiB2PSIwLjA1OCIvPg0KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAuMTQ1Ii8+DQorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMC4wNjQiLz4NCisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwLjA4Ii8+DQorCQkJCQk8dmFsIG89IjE0OTk2NSIgdj0iMC4wNjciLz4NCisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwLjExMSIvPg0KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAuMDUiLz4NCisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwLjIzOSIvPg0KKwkJCQkJPHZhbCBvPSIxNGQxYTQiIHY9IjAuMjA2Ii8+DQorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMC4xNjMiLz4NCisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwLjA2MyIvPg0KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAuMDI3Ii8+DQorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMC4wNzciLz4NCisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwLjE1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAuMTgxIi8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMC4xNDkiLz4NCisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwLjE1NyIvPg0KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAuMTY2Ii8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMC4yMTYiLz4NCisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwLjMwNiIvPg0KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAuMTY4Ii8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMC4xNDUiLz4NCisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwLjI1MiIvPg0KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAuMjEzIi8+DQorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMC4xOSIvPg0KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAuMTExIi8+DQorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMC4xMTQiLz4NCisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAuMTE1Ii8+DQorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMC4zMDIiLz4NCisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwLjAzIi8+DQorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMC4wNiIvPg0KKwkJCQkJPHZhbCBvPSIxNjIzMjYiIHY9IjAuMDQ4Ii8+DQorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMC4wNjkiLz4NCisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwLjA2MyIvPg0KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAuMDI5Ii8+DQorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMC4xMDUiLz4NCisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwLjA5NiIvPg0KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAuMTQyIi8+DQorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMC4xMDEiLz4NCisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwLjA5MiIvPg0KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAuMDcxIi8+DQorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMC4wNjciLz4NCisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwLjE3Ii8+DQorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMC4yMTIiLz4NCisJCQkJCTx2YWwgbz0iMTZkOWY2IiB2PSIwLjA4OSIvPg0KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAuNjA3Ii8+DQorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMC42NzUiLz4NCisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIwLjcyMyIvPg0KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAuNDc3Ii8+DQorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMC40NzciLz4NCisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIwLjQ5MSIvPg0KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAuNDk2Ii8+DQorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMC41NzkiLz4NCisJCQkJCTx2YWwgbz0iMTc1ODg3IiB2PSIwLjYyIi8+DQorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMzUuNzE2Ii8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMzMuOTczIi8+DQorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMzUuMjk1Ii8+DQorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMzIuNDI5Ii8+DQorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMjguNDMzIi8+DQorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iMjkuMjQiLz4NCisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIzMC45NDMiLz4NCisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSIyOC4wNSIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjI3Ljc5MiIvPg0KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjI4LjEwMiIvPg0KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9IjI1LjUzNCIvPg0KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjI1LjAyMSIvPg0KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjMwLjA0NiIvPg0KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9IjMyLjc3MiIvPg0KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjM4LjE4NiIvPg0KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjY0LjM0Ii8+DQorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iNjMuNTgyIi8+DQorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iNjAuODk1Ii8+DQorCQkJCQk8dmFsIG89IjE4NjNjMCIgdj0iNTcuMTY3Ii8+DQorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iNTkuNDM2Ii8+DQorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iNTYuNjU1Ii8+DQorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iNjAuNTk3Ii8+DQorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iNTYuODM2Ii8+DQorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iMzcuNTgxIi8+DQorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iNDAuMSIvPg0KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9IjM4LjIxNCIvPg0KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjMyLjE3NSIvPg0KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjMwLjY2MiIvPg0KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjI2LjkzMyIvPg0KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjIxLjI2OSIvPg0KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjIxLjY0NiIvPg0KKwkJCQkJPHZhbCBvPSIxOTI4OTYiIHY9IjIxLjI0NCIvPg0KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjIwLjg1NSIvPg0KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjE5LjU4OCIvPg0KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjIwLjgwOSIvPg0KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjI1LjY0Ii8+DQorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMjkuMTY2Ii8+DQorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iMzEuMjM2Ii8+DQorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iMjguNDI0Ii8+DQorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMzIuNzE3Ii8+DQorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iMzIuMjMxIi8+DQorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iMjkuODE2Ii8+DQorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iMjkuMjE5Ii8+DQorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMjkuODYxIi8+DQorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iMjkuMDkzIi8+DQorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iMjkuMDA0Ii8+DQorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMTAuNDQ1Ii8+DQorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iMTguMTU4Ii8+DQorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iMjMuNzEzIi8+DQorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iMjUuODQiLz4NCisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSIxMy42OTIiLz4NCisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIxNS42MTkiLz4NCisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIyMi4yMzUiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSIyMC41MzMiLz4NCisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIxNC44MDYiLz4NCisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIxNy43ODYiLz4NCisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIxOC4yMDUiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIxNC44NiIvPg0KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjExLjMxNyIvPg0KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjYuNDAzIi8+DQorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMTMuMzg5Ii8+DQorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMTguMDk0Ii8+DQorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iMTYuNjg4Ii8+DQorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMTYuMjUxIi8+DQorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iMTcuOTAyIi8+DQorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iMTYuODY0Ii8+DQorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iMTYuMDc2Ii8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNC4zMyIvPg0KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjQuMzMiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIyMS4yMjEiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIyMC44NiIvPg0KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjIyLjkwMyIvPg0KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjIyLjY3MiIvPg0KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjM0LjcxMSIvPg0KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjMzLjc5MiIvPg0KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjMyLjcxNyIvPg0KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjMzLjA0Ii8+DQorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iMzQuMDQ3Ii8+DQorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iMzYuNTM2Ii8+DQorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iMzYuNjczIi8+DQorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iMzYuNzUyIi8+DQorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMzcuOTMyIi8+DQorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iMzcuODU3Ii8+DQorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMzcuMDI5Ii8+DQorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMzIuODQ0Ii8+DQorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iMzEuOTE3Ii8+DQorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iMzEuMzYzIi8+DQorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iMTUuMzQ5Ii8+DQorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iMTcuNjIzIi8+DQorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iMTcuNjU4Ii8+DQorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iMTYuNTk3Ii8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMTcuNjIxIi8+DQorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iMTguMDE3Ii8+DQorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iMzIuMzM3Ii8+DQorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMzcuMTEzIi8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMzYuODk2Ii8+DQorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iMzcuNjQ2Ii8+DQorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMzcuNDY1Ii8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMzUuOTYiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIzNC4yMTciLz4NCisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSIzMS40NzIiLz4NCisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSIyNy45MTMiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIyNy43NyIvPg0KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9IjI3LjA5MiIvPg0KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjkuNjUiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSI4Ljk4OSIvPg0KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjguODcxIi8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iMTEuNTI1Ii8+DQorCQkJCQk8dmFsIG89IjFlYjRlNiIgdj0iMTEuMzEyIi8+DQorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTMuMTQ1Ii8+DQorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iMTIuODY2Ii8+DQorCQkJCQk8dmFsIG89IjFlZGYxNiIgdj0iMTMuNTAzIi8+DQorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMTIuOTc3Ii8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMTIuODUzIi8+DQorCQkJCQk8dmFsIG89IjFmMDk0NiIgdj0iMTIuMzIyIi8+DQorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iMTEuMjQ0Ii8+DQorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMTEuMzU3Ii8+DQorCQkJCQk8dmFsIG89IjFmMzM3NiIgdj0iMTMuOTA5Ii8+DQorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMjAuNzc4Ii8+DQorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTcuMzg0Ii8+DQorCQkJCQk8dmFsIG89IjFmNWRhNyIgdj0iMTcuODgyIi8+DQorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iMTcuNzc5Ii8+DQorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMTUuNjI4Ii8+DQorCQkJCQk8dmFsIG89IjFmODdkNiIgdj0iMTguNzE4Ii8+DQorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iMTkuNjg3Ii8+DQorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iMTUuODU2Ii8+DQorCQkJCQk8dmFsIG89IjFmYjIwNCIgdj0iMTQuMjM1Ii8+DQorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iMTQuMTIxIi8+DQorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iMTAuNDE3Ii8+DQorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iMTAuMTkyIi8+DQorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iMTAuMjQ3Ii8+DQorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMTIuNDA5Ii8+DQorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMTguNzgyIi8+DQorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iMTcuNzA5Ii8+DQorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMjQuNDY4Ii8+DQorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMjcuODk1Ii8+DQorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMzEuMTM1Ii8+DQorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iMjguMDczIi8+DQorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMjYuNzgxIi8+DQorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMjcuOTU1Ii8+DQorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMzEuODM0Ii8+DQorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMzAuNjg0Ii8+DQorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMzMuMjM5Ii8+DQorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iMzEuNTkyIi8+DQorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iMjcuMDUxIi8+DQorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iMjYuODkxIi8+DQorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iMjIuODM0Ii8+DQorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMjEuMSIvPg0KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjIwLjcyMyIvPg0KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjIwLjQxMiIvPg0KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjE3LjE3OCIvPg0KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjE0Ljg0NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjE0LjQwNCIvPg0KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjEzLjg5NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjE0LjI5MSIvPg0KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjE4LjM3NiIvPg0KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjIyLjY4MiIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjI5LjA1NiIvPg0KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjMwLjk4NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjMxLjI0NCIvPg0KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjMwLjUwMSIvPg0KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjMwLjc1NyIvPg0KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjI5Ljc2NiIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjI5LjY4NiIvPg0KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjMwLjQ3Ii8+DQorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMzEuMDYiLz4NCisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSIyOC45NTgiLz4NCisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSIyOC40NzQiLz4NCisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSIyNy43NTMiLz4NCisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIyNi42NzYiLz4NCisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIyNC4wNyIvPg0KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjE4Ljg4OSIvPg0KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjE3LjU1NiIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjE2LjQzNCIvPg0KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjE4LjQ3Ii8+DQorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iOS44MzciLz4NCisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSI5LjczIi8+DQorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMTIuNjcyIi8+DQorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMTcuMjkiLz4NCisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSIxNy4xNjEiLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIxOS4zODgiLz4NCisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIyMi43OTIiLz4NCisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSIyNS45NzMiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIyOC4zMDUiLz4NCisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIyOC40NzUiLz4NCisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSIyMy41MzEiLz4NCisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSIyMi42MiIvPg0KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjIyLjEzIi8+DQorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMjcuMTU5Ii8+DQorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMjcuNzA1Ii8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMjkuNzk2Ii8+DQorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMjcuMzQxIi8+DQorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMjUuODg3Ii8+DQorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMjUuODQyIi8+DQorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMjMuMjY2Ii8+DQorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMjEuNjY0Ii8+DQorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMTkuNDM3Ii8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMTUuOTEyIi8+DQorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iMTYuMDM3Ii8+DQorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iMTUuNjc0Ii8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMTMuNzA1Ii8+DQorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iMTQuMzMxIi8+DQorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTUuNzgxIi8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMTguMTk2Ii8+DQorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMjIuMTE1Ii8+DQorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMjYuMDY2Ii8+DQorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMzQuODEzIi8+DQorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMzUuOTE0Ii8+DQorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMzYuNzc1Ii8+DQorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iMzQuMjc3Ii8+DQorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iMzIuMDU2Ii8+DQorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMzMuMDAxIi8+DQorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iMzEuNjg3Ii8+DQorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMzYuODU0Ii8+DQorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMzAuNDI4Ii8+DQorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iMjguMjQ2Ii8+DQorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iMjguOTg0Ii8+DQorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iMjcuMTc2Ii8+DQorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iMjYuNDU1Ii8+DQorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iMjEuODkxIi8+DQorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iMjAuMDczIi8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMTcuMDgzIi8+DQorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iMTcuOTIxIi8+DQorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMTcuOTcyIi8+DQorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMTYuMSIvPg0KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjE3LjMyNCIvPg0KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9IjIwLjk3Ii8+DQorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMjEuMjY5Ii8+DQorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMjUuMDQxIi8+DQorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMzEuMjciLz4NCisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIzMy43MTIiLz4NCisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSI4Mi43NDQiLz4NCisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSI0Ni43NDYiLz4NCisJCQkJCTx2YWwgbz0iMjVhMGM3IiB2PSIyMi45MDMiLz4NCisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIzMS4zNDMiLz4NCisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIzMC40MzgiLz4NCisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSIyOC44ODMiLz4NCisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIzMC43OTQiLz4NCisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIzMS4wMTEiLz4NCisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIyOC4wOTgiLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIyNy4xNzciLz4NCisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIyNC45NDEiLz4NCisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIyMi44MzQiLz4NCisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIyMy4yMDkiLz4NCisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxNy41NiIvPg0KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjE3LjU1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjE4Ljc2MSIvPg0KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjIwLjY5OCIvPg0KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjE5LjM3MiIvPg0KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjE4LjY0NCIvPg0KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjE4Ljc5MiIvPg0KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjE4Ljk1MSIvPg0KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjE4LjkwNyIvPg0KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjIzLjQwOSIvPg0KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjIzLjUxMSIvPg0KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjI2Ljk0MSIvPg0KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjI0LjAwOCIvPg0KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjIzLjE0NyIvPg0KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjIzLjkzNSIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjI0Ii8+DQorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iMjIuODg4Ii8+DQorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iMjYuMjQ2Ii8+DQorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iMjUuOTA5Ii8+DQorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iMjUuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iMjQuNzI1Ii8+DQorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iMjMuNzU1Ii8+DQorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMTguODM5Ii8+DQorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMTUuMzYyIi8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iODYwOCIgaD0iM2RjMWE4ZGUiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImUwOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdlODUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQzMGIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZkMTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTBiMjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTE5MzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjc4YzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWE4NjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNmViZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNmY5ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzQwMzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzRlNDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODA1MWEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODEzMmEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODJmNGEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODNkNWEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTFiNzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTYxYzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTdlMDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYWVlNjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjdiMDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYmE1MzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYmMxNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYmNmNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzE1YjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iY2NjODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZGYzZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZThlN2YiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmZjMmMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMGE0ZWQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMGY5NGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjRiYzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY3Nzg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTdjOTBmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5MzZhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5YzM0ZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5ZWQ5MCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTk2MzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQ5YmE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWRjNWQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWRmMDA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWUxYTM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWU0NDY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWU2ZTk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjE5MDI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjFlNDg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjI4ZDQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjJiNzc2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjMwYmQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjMzNjFiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjUxNDI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjAiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSI4NjA0IiBoPSIzZGMxYThkZSI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjIxLjA0MyIvPg0KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjIwLjA1MSIvPg0KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIxOS44MTgiLz4NCisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iMTkuNTU0Ii8+DQorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjE4Ljk1MSIvPg0KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIxOC44NTMiLz4NCisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iMjIuMzk4Ii8+DQorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjI0LjQ5MiIvPg0KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIyOS4yMDYiLz4NCisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iMzUuMDYzIi8+DQorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjM1LjA3Ii8+DQorCQkJCQk8dmFsIG89IjlhYTUiIHY9IjMzLjU4NSIvPg0KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIzMC43NyIvPg0KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSIyOS4xNDEiLz4NCisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iMC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iMC4wNiIvPg0KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSIwLjA1OSIvPg0KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwLjA2Ii8+DQorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMC4wNjMiLz4NCisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMC4wNjYiLz4NCisJCQkJCTx2YWwgbz0iMTUxODEiIHY9IjAuMDciLz4NCisJCQkJCTx2YWwgbz0iMTVmODUiIHY9IjAuMDY0Ii8+DQorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIwLjA2NSIvPg0KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iMC4wNjQiLz4NCisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjAuMDYzIi8+DQorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iMC4wNjYiLz4NCisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjAuMDY3Ii8+DQorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSIwLjA2NiIvPg0KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iMC4wNjIiLz4NCisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSIwLjA2MyIvPg0KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iMC4wNjYiLz4NCisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjAuMDY2Ii8+DQorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSIwLjA2NiIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iMC4wNjQiLz4NCisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjAuMDYzIi8+DQorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSIwLjA2MSIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iMC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjAuMDYzIi8+DQorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSIwLjA2NiIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMC4wNjciLz4NCisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIwLjA2MyIvPg0KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iMC4wNjIiLz4NCisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIwLjA1OCIvPg0KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iMC4wNjYiLz4NCisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjAuMDY0Ii8+DQorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIwLjA2NiIvPg0KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iMC4wNjMiLz4NCisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIwLjA2MyIvPg0KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iMC4wNjQiLz4NCisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjAuMDY0Ii8+DQorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMC4wNTkiLz4NCisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjAuMDYzIi8+DQorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMC4wNTkiLz4NCisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMC4wNjgiLz4NCisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjAuMDY1Ii8+DQorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSIwLjA2NiIvPg0KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iMC4wNjUiLz4NCisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjAuMDY2Ii8+DQorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iMC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMC4wNTgiLz4NCisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAuMDU2Ii8+DQorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSIwLjA1NyIvPg0KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMC4wNTYiLz4NCisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAuMDU3Ii8+DQorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSIwLjA1NSIvPg0KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMC4wNTciLz4NCisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAuMDU3Ii8+DQorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSIwLjA1NyIvPg0KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMC4wNTgiLz4NCisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iMC4wNjUiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjAuMDY3Ii8+DQorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIwLjA2NSIvPg0KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iMC4wNjUiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjAuMDY1Ii8+DQorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iMC4wNjMiLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjAuMDYzIi8+DQorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIwLjA2Ii8+DQorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIwLjA2Ii8+DQorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSIwLjA1NiIvPg0KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMC4wNTgiLz4NCisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIwLjA2MSIvPg0KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iMC4wNTciLz4NCisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjAuMDU3Ii8+DQorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwLjA1OSIvPg0KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iMC4wNTkiLz4NCisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iMC4wNjMiLz4NCisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjAuMDYyIi8+DQorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iMC4wNjUiLz4NCisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjAuMDY1Ii8+DQorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iMC4wNjUiLz4NCisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9IjAuMDY2Ii8+DQorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMC4wNjMiLz4NCisJCQkJCTx2YWwgbz0iNmViZDYiIHY9IjAuMDU5Ii8+DQorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIwLjA2MSIvPg0KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iMC4wNjIiLz4NCisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjAuMDU5Ii8+DQorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIwLjA1OCIvPg0KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMC4wNTYiLz4NCisJCQkJCTx2YWwgbz0iNzQwMzciIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIwLjA2MSIvPg0KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMC4wNTgiLz4NCisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAuMDU4Ii8+DQorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwLjA1OCIvPg0KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iMC4wNTgiLz4NCisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAuMDU4Ii8+DQorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwLjA2Ii8+DQorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iMC4wNjIiLz4NCisJCQkJCTx2YWwgbz0iN2NjY2YiIHY9IjAuMDY0Ii8+DQorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIwLjA2NSIvPg0KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iMC4wNjUiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MGEiIHY9IjAuMDY3Ii8+DQorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIwLjA2NyIvPg0KKwkJCQkJPHZhbCBvPSI4MTMyYSIgdj0iMC4wNjYiLz4NCisJCQkJCTx2YWwgbz0iODIxM2EiIHY9IjAuMDY2Ii8+DQorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIwLjA2NyIvPg0KKwkJCQkJPHZhbCBvPSI4M2Q1YSIgdj0iMC4wNjIiLz4NCisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjAuMDU5Ii8+DQorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwLjA1OSIvPg0KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iMC4wNTciLz4NCisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIwLjA2Ii8+DQorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIwLjA1OSIvPg0KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMC4wNTkiLz4NCisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjAuMDU4Ii8+DQorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIwLjA1OCIvPg0KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMC4wNTkiLz4NCisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjAuMDYiLz4NCisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMC4wNiIvPg0KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iMC4wNjMiLz4NCisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjAuMDY3Ii8+DQorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iMC4wNjQiLz4NCisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjAuMDY1Ii8+DQorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iMC4wNjIiLz4NCisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjAuMDY1Ii8+DQorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iMC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIwLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iMC4wNjIiLz4NCisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjAuMDYzIi8+DQorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIwLjA2MyIvPg0KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iMC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9IjAuMDYxIi8+DQorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIzMC4yMiIvPg0KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iMTYuMDU0Ii8+DQorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSIxMC4yMiIvPg0KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iMy44MzkiLz4NCisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjMuMzAxIi8+DQorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSI0LjE5Ii8+DQorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIyLjAwMiIvPg0KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iNC45MTEiLz4NCisJCQkJCTx2YWwgbz0iYThjMDAiIHY9IjcuODk3Ii8+DQorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIyLjkzNCIvPg0KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMS40ODciLz4NCisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjIuMTk2Ii8+DQorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIxLjY3OSIvPg0KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iNS45ODQiLz4NCisJCQkJCTx2YWwgbz0iYWUwNTUiIHY9IjEwLjY2MSIvPg0KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMy42NTMiLz4NCisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjcuMjUyIi8+DQorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIxOS43MDgiLz4NCisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjIxLjEyOCIvPg0KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMTguMzU4Ii8+DQorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIzLjQ1NiIvPg0KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iNC45MTYiLz4NCisJCQkJCTx2YWwgbz0iYjVlZTciIHY9IjcuMzM3Ii8+DQorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSI3LjIwNSIvPg0KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iOS4xOTEiLz4NCisJCQkJCTx2YWwgbz0iYjg5MTciIHY9IjguMDI3Ii8+DQorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSI3LjY4OCIvPg0KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iOC42NjciLz4NCisJCQkJCTx2YWwgbz0iYmIzNDciIHY9IjcuNzM0Ii8+DQorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSI1LjE0OCIvPg0KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iNS4wODEiLz4NCisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjE4LjQzMyIvPg0KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNC42NzYiLz4NCisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjMuOTciLz4NCisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjIuMjQ3Ii8+DQorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIyLjUxOSIvPg0KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNC43ODQiLz4NCisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjEwLjQwNiIvPg0KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iNS44NjMiLz4NCisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjkuNjY4Ii8+DQorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSI1LjE5NCIvPg0KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNS4zNSIvPg0KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iNy43NDUiLz4NCisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjMuNjUxIi8+DQorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSI0LjIzNiIvPg0KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMy4yODEiLz4NCisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjUuNjU3Ii8+DQorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSIyLjI0OSIvPg0KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTIuMDA0Ii8+DQorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSIxNS44MzMiLz4NCisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjExLjk4MSIvPg0KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMTUuMTQ1Ii8+DQorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIxMi4zODYiLz4NCisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjguNTMiLz4NCisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjEuNDc0Ii8+DQorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSI3LjQ0MSIvPg0KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNC4yNjIiLz4NCisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjMuODA1Ii8+DQorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSIzLjc1MiIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iNS41MzgiLz4NCisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjkuNTI0Ii8+DQorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSIxLjk4OCIvPg0KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iNC4xNTkiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjkuNjIxIi8+DQorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIxNy43MDQiLz4NCisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjE5LjE3MSIvPg0KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMTkuMjUyIi8+DQorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIxNC45NjEiLz4NCisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjEyLjgxNiIvPg0KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMTMuMTEzIi8+DQorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxMy40MzUiLz4NCisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjEzLjI4MyIvPg0KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iMTMuOTg5Ii8+DQorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSIxOC4wOTgiLz4NCisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9IjE3Ljc0MiIvPg0KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iMTUuMjI5Ii8+DQorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIxNS4yNjMiLz4NCisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjExLjk2OCIvPg0KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iOS44OTMiLz4NCisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjcuOTk3Ii8+DQorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIxMy44ODgiLz4NCisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjYuMzM2Ii8+DQorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI1LjYzNCIvPg0KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iNy4zNjkiLz4NCisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjE0LjI3NiIvPg0KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iOS42NzQiLz4NCisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjEyLjgxIi8+DQorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIxNC45ODUiLz4NCisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjIxLjUzMSIvPg0KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iMjEuMDM4Ii8+DQorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIyMi45MDgiLz4NCisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjIwLjg5MSIvPg0KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMjIuMjM0Ii8+DQorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIyMi41MTciLz4NCisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjI0LjE3MiIvPg0KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMjMuMDA4Ii8+DQorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIyMy40NzUiLz4NCisJCQkJCTx2YWwgbz0iZjdkOTEiIHY9IjIyLjA1OSIvPg0KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMTguNjcxIi8+DQorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIxOC40NDciLz4NCisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjE1Ljg2MiIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTYuMzgiLz4NCisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9IjE1LjE2NSIvPg0KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iMTIuMzM1Ii8+DQorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSIxMi4yODMiLz4NCisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9IjguOTQxIi8+DQorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSI4LjgzNyIvPg0KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjguNzkzIi8+DQorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iMTAuMDQzIi8+DQorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMTMuOTMyIi8+DQorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMTUuOTc0Ii8+DQorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iMTkuMTY3Ii8+DQorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMjIuMjM3Ii8+DQorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iMjEuNTMzIi8+DQorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMjMuMzA5Ii8+DQorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iMjAuMzMzIi8+DQorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iMTguNTU2Ii8+DQorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iMjAuMTYzIi8+DQorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iMTkuOTc4Ii8+DQorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMjEuMTU1Ii8+DQorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMjMuOTY0Ii8+DQorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iMjEuODc0Ii8+DQorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMTkuNTkxIi8+DQorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMjAuMjM0Ii8+DQorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iMTcuMzIiLz4NCisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIxNi41NTYiLz4NCisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIxMy4yMTciLz4NCisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSIxMi4yNzEiLz4NCisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSI4Ljk2NyIvPg0KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjguMzE5Ii8+DQorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iOC4zNTciLz4NCisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSI4LjQ5Ii8+DQorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTAuNDU4Ii8+DQorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMTMuOTk4Ii8+DQorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTUuNDYxIi8+DQorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTguMzMxIi8+DQorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMjIuMjg0Ii8+DQorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMTkuMTUxIi8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMjMuNDY0Ii8+DQorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iMjAuMjExIi8+DQorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iMTkuODMiLz4NCisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSIyMC44Ii8+DQorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iMTguMDQyIi8+DQorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMC4wMTgiLz4NCisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIwLjAyIi8+DQorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMC4wMiIvPg0KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjAuMDE3Ii8+DQorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMC4wMTUiLz4NCisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIwLjAxNCIvPg0KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjAuMDExIi8+DQorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iMC4wMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjc2MDAiIHY9IjAuMDA5Ii8+DQorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iMC4wMDgiLz4NCisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIwLjAwOCIvPg0KKwkJCQkJPHZhbCBvPSIxMjlmMjUiIHY9IjAuMDA4Ii8+DQorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMC4wMDciLz4NCisJCQkJCTx2YWwgbz0iMTJiYjQ1IiB2PSIwLjAwNyIvPg0KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjAuMDEiLz4NCisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIwLjAxMSIvPg0KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjAuMDE2Ii8+DQorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iMC4wMTMiLz4NCisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIwLjAxOSIvPg0KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjAuMDE0Ii8+DQorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iMC4wMTUiLz4NCisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIwLjAxNSIvPg0KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAuMjY5Ii8+DQorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMC4xMjQiLz4NCisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwLjE2Ii8+DQorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMC4yMjciLz4NCisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwLjI0MyIvPg0KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAuMjM2Ii8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMC4yMzkiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwLjA3NCIvPg0KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAuMDg2Ii8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMC4wMzEiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwLjQxMiIvPg0KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAuMTk5Ii8+DQorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMC4xNSIvPg0KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAuMTQiLz4NCisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwLjIxOCIvPg0KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAuMzA5Ii8+DQorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMC4yMDYiLz4NCisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwLjAzMiIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAuMDY1Ii8+DQorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMC4wNTQiLz4NCisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAuMDI1Ii8+DQorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMC4wOSIvPg0KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAuMDMiLz4NCisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwLjAzOCIvPg0KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAuMDI2Ii8+DQorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwLjA4NiIvPg0KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAuMjUxIi8+DQorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMC4yMjUiLz4NCisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIwLjE5MyIvPg0KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAuMTAzIi8+DQorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMC4wNDQiLz4NCisJCQkJCTx2YWwgbz0iMTUwOWU1IiB2PSIwLjAyMyIvPg0KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAuMDY4Ii8+DQorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMC4xNTciLz4NCisJCQkJCTx2YWwgbz0iMTUzNDE1IiB2PSIwLjEwNSIvPg0KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAuMDk3Ii8+DQorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMC4xMjciLz4NCisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwLjE4OSIvPg0KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAuMjgxIi8+DQorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMC4xNjIiLz4NCisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwLjE1Ii8+DQorCQkJCQk8dmFsIG89IjE1OTY4NiIgdj0iMC4yNDYiLz4NCisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwLjIxMSIvPg0KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAuMTg4Ii8+DQorCQkJCQk8dmFsIG89IjE1YzBiNiIgdj0iMC4xMDUiLz4NCisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwLjA5MiIvPg0KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAuMDk5Ii8+DQorCQkJCQk8dmFsIG89IjE1ZWFlNiIgdj0iMC4xMTIiLz4NCisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwLjI5Ii8+DQorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMC4wNiIvPg0KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMC4wNzIiLz4NCisJCQkJCTx2YWwgbz0iMTYzMTM3IiB2PSIwLjA2NCIvPg0KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAuMTAxIi8+DQorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMC4wNDUiLz4NCisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwLjAzNSIvPg0KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAuMDU3Ii8+DQorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMC4wNyIvPg0KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjE2OTNhNiIgdj0iMC4wMjkiLz4NCisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwLjAyNiIvPg0KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAuMDc1Ii8+DQorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMC4xNzgiLz4NCisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwLjIyMSIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMC41NzgiLz4NCisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwLjYzMyIvPg0KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAuNjc4Ii8+DQorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMC40NTYiLz4NCisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwLjQ2MSIvPg0KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAuNDc1Ii8+DQorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMC40ODciLz4NCisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwLjU2NSIvPg0KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAuNTk3Ii8+DQorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMzQuMzcyIi8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMzMuMDU2Ii8+DQorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMzQuMTk4Ii8+DQorCQkJCQk8dmFsIG89IjE3OTBjNSIgdj0iMzEuMTQ4Ii8+DQorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMjYuNzM0Ii8+DQorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iMjYuODgzIi8+DQorCQkJCQk8dmFsIG89IjE3YmFmZCIgdj0iMjguMDQ2Ii8+DQorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMjUuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMjQuODI2Ii8+DQorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iMjUuMTI5Ii8+DQorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMjIuOTc5Ii8+DQorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMjIuOTY4Ii8+DQorCQkJCQk8dmFsIG89IjE4MGY1ZiIgdj0iMjguMDQiLz4NCisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIzMC42MDgiLz4NCisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSIzNS4xNTYiLz4NCisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSI2MS4wNzkiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSI2MS4xMTgiLz4NCisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSI1OC4yMTQiLz4NCisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSI1NC4xNDkiLz4NCisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSI1Ni4xNDEiLz4NCisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSI1My43NTciLz4NCisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSI1Ny4xODgiLz4NCisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSI1My41OTYiLz4NCisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIzNi4yNjkiLz4NCisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSIzNi42MjYiLz4NCisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSIzNS4xMDIiLz4NCisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSIyOS44NTUiLz4NCisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSIyOC4zMDciLz4NCisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSIyNS4zNjQiLz4NCisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSIxOS45OTYiLz4NCisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSIxOS43NDgiLz4NCisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSIxOS4zNDUiLz4NCisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSIxOC44NzMiLz4NCisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIxOC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxOTUyYzYiIHY9IjIwLjAzMiIvPg0KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjI1LjEzNyIvPg0KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9IjI3LjUwOCIvPg0KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjI5LjQ0OSIvPg0KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjI3LjM3MiIvPg0KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9IjMwLjU2MiIvPg0KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjI5Ljk2MyIvPg0KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjI4LjMzNiIvPg0KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9IjI4LjEwMiIvPg0KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9IjI4Ljg2NCIvPg0KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjI4LjI3OCIvPg0KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjI4LjM5OSIvPg0KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjExLjAxNiIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjE0LjE1NSIvPg0KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9IjE5LjEzMiIvPg0KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjIwLjI4Ii8+DQorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iMTEuMjgiLz4NCisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIxMi4yNSIvPg0KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjE2LjU2MSIvPg0KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjE1LjE1Ii8+DQorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iOS45NTMiLz4NCisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSIxMi43MzIiLz4NCisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIxMi45NTgiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSI5LjY4NSIvPg0KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjYuODA1Ii8+DQorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iNC41NTkiLz4NCisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSIxMC42MzIiLz4NCisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSIxNC42NCIvPg0KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjE0LjE4MiIvPg0KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9IjEzLjcxNyIvPg0KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjE1LjA3MSIvPg0KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjEzLjIzNiIvPg0KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9IjEyLjc0NiIvPg0KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjMuOTk5Ii8+DQorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iMi4xODYiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIxNi41ODUiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIxNC4zNzgiLz4NCisJCQkJCTx2YWwgbz0iMWNhY2EyIiB2PSIxNi4wNDEiLz4NCisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIxNS43OTkiLz4NCisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSIyOS4yNSIvPg0KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjI3LjYyMSIvPg0KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjI1LjQ1MyIvPg0KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9IjI0LjM2OSIvPg0KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjI1LjM0OCIvPg0KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjI4LjY4NyIvPg0KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9IjI4LjM3MyIvPg0KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjI4LjgwMSIvPg0KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjMwLjA0NSIvPg0KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjMwLjY0NCIvPg0KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjMwLjM1NCIvPg0KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjI0LjkzMyIvPg0KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjIzLjgxMyIvPg0KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjIzLjgxOCIvPg0KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9IjE1LjE1MyIvPg0KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjE2LjY5Ii8+DQorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iMTYuMzg1Ii8+DQorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iMTUuNjQzIi8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMTYuMjY5Ii8+DQorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iMTYuNjg5Ii8+DQorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iMjcuODk3Ii8+DQorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMzEuNDQ5Ii8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iMzEuMjMyIi8+DQorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iMzIuMDAxIi8+DQorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMzEuOTk5Ii8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iMzAuNjY5Ii8+DQorCQkJCQk8dmFsIG89IjFlMzY1OSIgdj0iMjkuMTg1Ii8+DQorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMjcuMTk5Ii8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iMjMuNzk4Ii8+DQorCQkJCQk8dmFsIG89IjFlNjA4NiIgdj0iMjMuNTY2Ii8+DQorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMjMuMDM1Ii8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iOC41NzMiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSI3LjkxMyIvPg0KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjcuODUxIi8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iOS44NDUiLz4NCisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIxMC4xNzciLz4NCisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSIxMS43MzIiLz4NCisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSIxMS41NTQiLz4NCisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIxMi4wNjciLz4NCisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIxMS43MjUiLz4NCisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSIxMS40NjUiLz4NCisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSIxMC44NTEiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxMC45MjgiLz4NCisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSIxMC45ODQiLz4NCisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxMy42MjYiLz4NCisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIxOS4zOTkiLz4NCisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSIxNi4zMjYiLz4NCisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSIxNS44NDgiLz4NCisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxNS43ODUiLz4NCisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSIxNC4zMTkiLz4NCisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSIxNS43NyIvPg0KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9IjE2LjI5NSIvPg0KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjEzLjM4MiIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjExLjc1MiIvPg0KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9IjExLjY5NCIvPg0KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjkuMjQiLz4NCisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSI4Ljk2OSIvPg0KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjkuNDIiLz4NCisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSIxMS4yOTkiLz4NCisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIxOC4wNiIvPg0KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjE1Ljk4OSIvPg0KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjIzLjM2MyIvPg0KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjI2LjA3MSIvPg0KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjI5LjI4MyIvPg0KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjI1Ljg1NiIvPg0KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjI1LjIzNSIvPg0KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjI2LjQwNSIvPg0KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjMwLjA3NiIvPg0KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjI4LjQzMyIvPg0KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjMwLjI3MSIvPg0KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjI4LjU1NyIvPg0KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjI0LjU0MiIvPg0KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjIzLjk2MiIvPg0KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjIxLjI0MiIvPg0KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9IjE5LjYzMyIvPg0KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjE4LjAwOSIvPg0KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjE3Ljc5OCIvPg0KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9IjE1LjMwNCIvPg0KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjEzLjQ1MyIvPg0KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjEzLjA1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjEyLjg3MiIvPg0KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjEzLjU0NCIvPg0KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjE3LjI1Ii8+DQorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iMjEuMDQ2Ii8+DQorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMjUuODMyIi8+DQorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMjcuNzkxIi8+DQorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iMjguMDU0Ii8+DQorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMjcuNjMiLz4NCisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSIyOC40NTciLz4NCisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSIyNy43MjUiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTU3IiB2PSIyNy45MjIiLz4NCisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIyOC4yNSIvPg0KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9IjI3LjUzOSIvPg0KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjI2LjI1MSIvPg0KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjI1Ljk0NyIvPg0KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9IjI0LjY3MSIvPg0KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjI0LjM4MyIvPg0KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjIyLjc0MiIvPg0KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjE3Ljc0MiIvPg0KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9IjE2LjExNyIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjE0LjU0OCIvPg0KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjE4LjQxOCIvPg0KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjEwLjE0NyIvPg0KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjEwLjY0OCIvPg0KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9IjEzLjA2MiIvPg0KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjE3LjA4MiIvPg0KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjE1LjcyMyIvPg0KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9IjE3LjYyNyIvPg0KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjIxLjA4MyIvPg0KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjI0LjI5MyIvPg0KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjI2LjgyMyIvPg0KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9IjI3LjA0Ii8+DQorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMjIuMDkxIi8+DQorCQkJCQk8dmFsIG89IjIyZmRjNyIgdj0iMjEuNTE0Ii8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMjAuOTIyIi8+DQorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iMjUuMDYxIi8+DQorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMjUuOTU5Ii8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMjcuNjQ0Ii8+DQorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMjUuNTc4Ii8+DQorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMjQuMTk5Ii8+DQorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMjMuODMiLz4NCisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIyMi43MTkiLz4NCisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIyMC45NTIiLz4NCisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxOC4zODIiLz4NCisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSIxNC45MjgiLz4NCisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSIxNC44NTkiLz4NCisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxNC4wODEiLz4NCisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxMy4zMDkiLz4NCisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSIxMy43MjYiLz4NCisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxNS4wNzEiLz4NCisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSIxNy4wNjQiLz4NCisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSIyMC42MTIiLz4NCisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIyNC44OTEiLz4NCisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIzMi45NDIiLz4NCisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSIzNC4yNDciLz4NCisJCQkJCTx2YWwgbz0iMjQzMzI1IiB2PSIzNC43ODciLz4NCisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIzMS4xNzYiLz4NCisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSIyOS44MDYiLz4NCisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSIzMC41NjkiLz4NCisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIyOS4xNzUiLz4NCisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSIzNC45MjEiLz4NCisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIyOC43NjciLz4NCisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIyNS43OTciLz4NCisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSIyNi4xNjEiLz4NCisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIyNC43NjkiLz4NCisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSIyNC4wNTMiLz4NCisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSIyMC4yOCIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjE4LjIyIi8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMTUuMzQ1Ii8+DQorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iMTUuOTUzIi8+DQorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMTUuODg0Ii8+DQorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iMTUuMDU0Ii8+DQorCQkJCQk8dmFsIG89IjI1MzA0NyIgdj0iMTYuMDE0Ii8+DQorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTkuNTc0Ii8+DQorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iMjAuMDY1Ii8+DQorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMjMuOTM2Ii8+DQorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMjkuMjc0Ii8+DQorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMzEuNjkxIi8+DQorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iNzUuMTU0Ii8+DQorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iNDEuNDU4Ii8+DQorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMjEuMjIxIi8+DQorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iMjkuNDE3Ii8+DQorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iMjguNTk3Ii8+DQorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iMjcuMjU2Ii8+DQorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iMjguOTI1Ii8+DQorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iMjkuMzgiLz4NCisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIyNi41NTkiLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIyNS4yMzQiLz4NCisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSIyMy4zMTIiLz4NCisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIyMS4zMTciLz4NCisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIyMC43NjEiLz4NCisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxNi4zNiIvPg0KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjE1LjY1NyIvPg0KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjE2LjYxOCIvPg0KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjE3Ljg4OCIvPg0KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjE2Ljg2MSIvPg0KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjE2LjYxNyIvPg0KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjE3LjQyOCIvPg0KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjE4LjIyNSIvPg0KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjE4LjQxNSIvPg0KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjIyLjEyNiIvPg0KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjIyLjEyNiIvPg0KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjI1Ljc4MiIvPg0KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjIyLjc3NCIvPg0KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjIyLjc3NCIvPg0KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjIyLjkwOSIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjIzLjEzOSIvPg0KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjIxLjU1MyIvPg0KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjIzLjUzOSIvPg0KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjIzLjEzOSIvPg0KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjIyLjczNSIvPg0KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjIyLjMzNSIvPg0KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjIzLjIwNSIvPg0KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjE4LjIzOCIvPg0KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9IjE0LjEzNiIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9Ijk4MTIiIGg9IjNkYzFhOGRlIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMTE0LjA4MSIvPg0KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjExNy4xOSIvPg0KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIxMTguOTY0Ii8+DQorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjEyMC41NjQiLz4NCisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMTE4Ljc0NyIvPg0KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIxMTYuNTI5Ii8+DQorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjEwOS4zODQiLz4NCisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMTIxLjM1NiIvPg0KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIxMTkuMDE0Ii8+DQorCQkJCQk8dmFsIG89IjdlODUiIHY9IjExNi4yMjYiLz4NCisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMTIwLjE3NSIvPg0KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIxMjAuOTQ5Ii8+DQorCQkJCQk8dmFsIG89ImE4YjYiIHY9IjEyNC4yIi8+DQorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjEyNC4wNDMiLz4NCisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iMTE3Ljc2MSIvPg0KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSIxMTguMDkyIi8+DQorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjExOC4zNTQiLz4NCisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMTE4LjYzMyIvPg0KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIxMTguNDk0Ii8+DQorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSIxMjEuMjQzIi8+DQorCQkJCQk8dmFsIG89IjExOTM3IiB2PSIxMjIuMjc4Ii8+DQorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIxMTkuNjg5Ii8+DQorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSIxMjEuMTY1Ii8+DQorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSIxMjUuNjg4Ii8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIxMjcuNTE3Ii8+DQorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSIxMTkuNTA4Ii8+DQorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIxMjEuMjciLz4NCisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9IjEyMS4yNjIiLz4NCisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9IjEyMC41OTUiLz4NCisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjExOC43MjUiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjEyNi45MTMiLz4NCisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjEyNS45ODQiLz4NCisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjEyNC45NzEiLz4NCisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjEyMS43MjIiLz4NCisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjEyMi4yMzMiLz4NCisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjEyMi44MzYiLz4NCisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjEyNC4xMjUiLz4NCisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjEyNS4xMDUiLz4NCisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjEyNS4yNjYiLz4NCisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjEyNS4zODEiLz4NCisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjEyMy42ODgiLz4NCisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjExOS40MzciLz4NCisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjExOS4xNjciLz4NCisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjEyMC4zMzQiLz4NCisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjExOS44MzciLz4NCisJCQkJCTx2YWwgbz0iMjc4YzYiIHY9IjEyMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9IjEyMi4wNzQiLz4NCisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9IjEyNS41NDIiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDEiIHY9IjEyNS42MzgiLz4NCisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjExNy4zOTgiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjExOC44MDciLz4NCisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9IjExOS42NDQiLz4NCisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjExOS42NzQiLz4NCisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjExNy41NDkiLz4NCisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjExMy4yMjkiLz4NCisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9IjEyNS4xNTMiLz4NCisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9IjEyNC42OTEiLz4NCisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9IjEyMy41NTYiLz4NCisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9IjEyMy4yMzEiLz4NCisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9IjEyMy40MDQiLz4NCisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9IjEyMy45MzIiLz4NCisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9IjEyMy4zMjgiLz4NCisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9IjEyMi42NDEiLz4NCisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjEyMS41NDQiLz4NCisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjExOC4yMDkiLz4NCisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjExOC42NzUiLz4NCisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjExOC4zMjUiLz4NCisJCQkJCTx2YWwgbz0iM2FlMjciIHY9IjEyMS44OTMiLz4NCisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9IjEyMC43MTEiLz4NCisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjExOS44NTQiLz4NCisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjEyMC4xNjUiLz4NCisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjEyMi45OTYiLz4NCisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9IjEyNi41NTciLz4NCisJCQkJCTx2YWwgbz0iNDAyODUiIHY9IjEyNC4wNjEiLz4NCisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9IjEyNC44NzQiLz4NCisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9IjEyNS4yNDQiLz4NCisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9IjEyNS4wODMiLz4NCisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9IjEyMy4xODIiLz4NCisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjExOS4zMTEiLz4NCisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9IjEyMi41MjQiLz4NCisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9IjEyMS4xNzMiLz4NCisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjExOC42OTYiLz4NCisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjExNy41NTkiLz4NCisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjExOC45NDciLz4NCisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjExOC43OTciLz4NCisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjExNy4wNDgiLz4NCisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjExNi4xODIiLz4NCisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjExOS4xMDEiLz4NCisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjExOS4xNTIiLz4NCisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjExNi44MTQiLz4NCisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjExOC45NDMiLz4NCisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjEyMC44NDQiLz4NCisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjExOS4xMDkiLz4NCisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjEyMC44MDIiLz4NCisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9IjEyMy4wOTUiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9IjEyNS45MjIiLz4NCisJCQkJCTx2YWwgbz0iNTU0MDYiIHY9IjEyMi4wODIiLz4NCisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9IjEyMy4wMDEiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9IjEyMy4wMzMiLz4NCisJCQkJCTx2YWwgbz0iNTdlMzYiIHY9IjEyMi45NzIiLz4NCisJCQkJCTx2YWwgbz0iNThjNDYiIHY9IjEyMC43MTciLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9IjEyMS41OTkiLz4NCisJCQkJCTx2YWwgbz0iNWE4NjciIHY9IjEyMC45NzciLz4NCisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjExOS4wMzgiLz4NCisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjExNS43OTgiLz4NCisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjExOS45MTMiLz4NCisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9IjEyMC4yODQiLz4NCisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9IjExOS40NTEiLz4NCisJCQkJCTx2YWwgbz0iNWZjYzYiIHY9IjExOC4zMjUiLz4NCisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjExNy4xMTEiLz4NCisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjExNy4yNjMiLz4NCisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjEyMC4xNDciLz4NCisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjExNy41MzQiLz4NCisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjExOC45MDIiLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjEyMC4wOTkiLz4NCisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjEyMS40MzQiLz4NCisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjEyMS45ODYiLz4NCisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjEyMC42ODMiLz4NCisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjEyMi44NjEiLz4NCisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9IjExOS4zNSIvPg0KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iMTIwLjg0NSIvPg0KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iMTIyLjExOSIvPg0KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMTIyLjUwNiIvPg0KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iMTIxLjQ2MiIvPg0KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMTE4LjkwOSIvPg0KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMTE2LjM3MiIvPg0KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iMTIxLjMxMSIvPg0KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iMTE5LjQxMiIvPg0KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMTE4LjI4MSIvPg0KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iMTE4LjE0OCIvPg0KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMTE3LjgxMSIvPg0KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMTIxLjY5NCIvPg0KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iMTIwLjc1NSIvPg0KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMTE4LjY1MSIvPg0KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMTE4LjA4Ii8+DQorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIxMTguMjgyIi8+DQorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIxMTMuOTExIi8+DQorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIxMTYuOTQxIi8+DQorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIxMTkuNTA4Ii8+DQorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSIxMTkuMDcxIi8+DQorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSIxMjEuMTQ2Ii8+DQorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSIxMjEuMzM2Ii8+DQorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIxMjIuMDk1Ii8+DQorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSIxMjEuNzg1Ii8+DQorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSIxMjQuMDY1Ii8+DQorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIxMjUuNDU1Ii8+DQorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIxMjYuMDExIi8+DQorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIxMjUuMDE4Ii8+DQorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIxMjIuNzQxIi8+DQorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIxMjAuMjYiLz4NCisJCQkJCTx2YWwgbz0iODRiNmEiIHY9IjExOC44NTYiLz4NCisJCQkJCTx2YWwgbz0iODU5N2EiIHY9IjExOC44MTciLz4NCisJCQkJCTx2YWwgbz0iODY3OGIiIHY9IjExNy44MDciLz4NCisJCQkJCTx2YWwgbz0iODc1OWIiIHY9IjExNy40NDQiLz4NCisJCQkJCTx2YWwgbz0iODgzYWMiIHY9IjExOS45NjciLz4NCisJCQkJCTx2YWwgbz0iODkxYmIiIHY9IjEyMS4xNDEiLz4NCisJCQkJCTx2YWwgbz0iODlmY2EiIHY9IjEyMC4yNTkiLz4NCisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjExOC41NTgiLz4NCisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjExOC44MTIiLz4NCisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjExOC42MzMiLz4NCisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjExOC45NDgiLz4NCisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjExNy4zMTUiLz4NCisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjExOC4xNDYiLz4NCisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjEyMC4xMjEiLz4NCisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjEyMC41NjEiLz4NCisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjExOC42MzgiLz4NCisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjEyMi44NDQiLz4NCisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjEyNS4xNTMiLz4NCisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjEyMy40NjMiLz4NCisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9IjEyMi43OTMiLz4NCisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9IjEyMy4wOTMiLz4NCisJCQkJCTx2YWwgbz0iOTcyYjQiIHY9IjEyMi41MzUiLz4NCisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9IjEyMC4xODkiLz4NCisJCQkJCTx2YWwgbz0iOThlZDQiIHY9IjEyMy4wOTciLz4NCisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjExOS4zMzYiLz4NCisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjExOC41Ii8+DQorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIxMTUuNzQzIi8+DQorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIxMTkuNzIyIi8+DQorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIxMjAuMjIyIi8+DQorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIxMTguOTE4Ii8+DQorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIxMTcuNTUxIi8+DQorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIxMTYuNjQ5Ii8+DQorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIxMTYuNTIiLz4NCisJCQkJCTx2YWwgbz0iYTFiNzciIHY9IjExNi43MDMiLz4NCisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9IjExOC44MDYiLz4NCisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjExOC40NjEiLz4NCisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjExOS41OTMiLz4NCisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjExOS43OCIvPg0KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iMTE5Ljk3MyIvPg0KKwkJCQkJPHZhbCBvPSJhNmZkNiIgdj0iMTIwLjc2MSIvPg0KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iMTIyLjc4MiIvPg0KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iMTI1LjQ0NCIvPg0KKwkJCQkJPHZhbCBvPSJhOWEwNSIgdj0iMTE4LjI1NSIvPg0KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMTE5LjMwMiIvPg0KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iMTIwLjE0OSIvPg0KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iMTE5LjY3OCIvPg0KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iMTE3LjEzOCIvPg0KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTE0LjY4MSIvPg0KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMTIwLjg1MSIvPg0KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iMTE5LjA5OSIvPg0KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMTE2LjYwOSIvPg0KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMTE2LjcyOSIvPg0KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMTE4LjA0NSIvPg0KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMTE1LjQ3NyIvPg0KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMTE1Ljg5MSIvPg0KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iMTE0LjI0Ii8+DQorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSIxMjIuNzk0Ii8+DQorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSIxMTkuMDAyIi8+DQorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSIxMTguNzAxIi8+DQorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSIxMTkuNjAyIi8+DQorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSIxMjAuOTYzIi8+DQorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSIxMTkuOTI0Ii8+DQorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIxMjAuNjI4Ii8+DQorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSIxMjMuMTIyIi8+DQorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIxMTguNjgzIi8+DQorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSIxMTguMzAxIi8+DQorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIxMTguODgyIi8+DQorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSIxMjAuMTg3Ii8+DQorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIxMTkuNTc2Ii8+DQorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSIxMTguMjQzIi8+DQorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIxMTUuNjkyIi8+DQorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSIxMTcuNTYiLz4NCisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjExNi4wNTciLz4NCisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjExNy40MTEiLz4NCisJCQkJCTx2YWwgbz0iYzZhMTYiIHY9IjExNy40ODYiLz4NCisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjExNi43NDUiLz4NCisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjExOC4yNjUiLz4NCisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjExOC4yMDIiLz4NCisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjExOC4wMDQiLz4NCisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjExNy4yNTUiLz4NCisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9IjEyMi43MSIvPg0KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTE4LjczNiIvPg0KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMTE2LjczNCIvPg0KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMTE4LjMzOSIvPg0KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMTE4LjY2Ii8+DQorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIxMTkuNzAzIi8+DQorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSIxMjEuNTM2Ii8+DQorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIxMjMuNDE5Ii8+DQorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSIxMjYuMTg2Ii8+DQorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSIxMTkuMzEiLz4NCisJCQkJCTx2YWwgbz0iZDRiMTUiIHY9IjEyMC41OCIvPg0KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iMTIwLjg1NyIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMTE5LjU4MiIvPg0KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTE3LjQyNiIvPg0KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iMTI0LjM0OSIvPg0KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMTIyLjQzNSIvPg0KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iMTIwLjY5MiIvPg0KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iMTE3LjIzMyIvPg0KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMTE2Ljg2MiIvPg0KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMTE2LjcyOCIvPg0KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iMTE4LjIxMiIvPg0KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMTE3Ljg1NyIvPg0KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMTE3LjE3NiIvPg0KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iMTE3LjI3MSIvPg0KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iMTE2Ljc5NiIvPg0KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iMTE3LjM2MSIvPg0KKwkJCQkJPHZhbCBvPSJlMmMwNCIgdj0iMTE5Ljc2OSIvPg0KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iMTIxLjA1Ii8+DQorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIxMjAuOTIxIi8+DQorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIxMjIuNDk3Ii8+DQorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIxMjAuNjc3Ii8+DQorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIxMjIuNjciLz4NCisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9IjEyMy43NzgiLz4NCisJCQkJCTx2YWwgbz0iZThlN2YiIHY9IjExNi42NTUiLz4NCisJCQkJCTx2YWwgbz0iZTljOGUiIHY9IjExOC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjExOC4zNzIiLz4NCisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjExNy41MjciLz4NCisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjExMy41MTgiLz4NCisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9IjEyMy40OTYiLz4NCisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjEyMC42MTEiLz4NCisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjExOC43MDQiLz4NCisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjExNS42NTEiLz4NCisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjExNy40ODciLz4NCisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjExNy4xODYiLz4NCisJCQkJCTx2YWwgbz0iZjI5MzAiIHY9IjEyMS4xMTQiLz4NCisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9IjExNy42MTEiLz4NCisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9IjExNy44OTIiLz4NCisJCQkJCTx2YWwgbz0iZjUzNjEiIHY9IjExNy43MTgiLz4NCisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9IjExNy41ODQiLz4NCisJCQkJCTx2YWwgbz0iZjZmODAiIHY9IjExNy4zOCIvPg0KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMTE5LjIyMiIvPg0KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMTIxLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iMTIwLjIyMSIvPg0KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMTE4LjM3OSIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTE4LjIzOCIvPg0KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iMTIzLjAzNyIvPg0KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iMTIzLjAwNyIvPg0KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMTI2LjI5NCIvPg0KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iMTIzLjY4MiIvPg0KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iMTIzLjU5MSIvPg0KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjEyMi45MTgiLz4NCisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSIxMjEuMzg3Ii8+DQorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMTE3LjU4NiIvPg0KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjExNy43MTYiLz4NCisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIxMTkuMTkxIi8+DQorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMTE3LjM1NSIvPg0KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjExNy44NjIiLz4NCisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxMTcuNTMxIi8+DQorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iMTE5Ljg4NiIvPg0KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjExOS40MjYiLz4NCisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIxMTguNzIiLz4NCisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSIxMTkuMDA0Ii8+DQorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMTE4LjcyNSIvPg0KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjExNi4xOTYiLz4NCisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIxMTguMTExIi8+DQorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMTE5LjAwMSIvPg0KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjEyMC45NjMiLz4NCisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIxMjEuMzQiLz4NCisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIxMTkuMTUxIi8+DQorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iMTIwLjc5NyIvPg0KKwkJCQkJPHZhbCBvPSIxMTIzODgiIHY9IjEyMy41MTkiLz4NCisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSIxMjIuMzY2Ii8+DQorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iMTIzLjM4MSIvPg0KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjEyMy4yOTYiLz4NCisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIxMjMuMDQ3Ii8+DQorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTIwLjg3NCIvPg0KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjExOC4wMTciLz4NCisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIxMTguMzg4Ii8+DQorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTE3Ljc1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjExOS43NjEiLz4NCisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIxMjEuNTQ3Ii8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMTIyLjAyOCIvPg0KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjEyMi4xOTUiLz4NCisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIxMjEuNzgzIi8+DQorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMTIwLjU4MSIvPg0KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjEyMS42ODUiLz4NCisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIxMjAuOTcyIi8+DQorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iMTE2LjgzNiIvPg0KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjExNy42MzMiLz4NCisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIxMTguODMiLz4NCisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIxMjAuNzQ2Ii8+DQorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMTIyLjU0MSIvPg0KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjEyMC4yNDkiLz4NCisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIxMjIuNzA4Ii8+DQorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMTI0LjUzOCIvPg0KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjEyNS4yODkiLz4NCisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIxMjUuMzI1Ii8+DQorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMTI1LjQ5Ii8+DQorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMTI0LjY3MiIvPg0KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjEyMi44MTMiLz4NCisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIxMjEuNTczIi8+DQorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMTIwLjcxOSIvPg0KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjExOS43MDYiLz4NCisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIxMTYuOTM1Ii8+DQorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMTE3LjI1NSIvPg0KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjExOC4zNjUiLz4NCisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIxMTkuODI5Ii8+DQorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMTE5LjYwNyIvPg0KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjEzNDdlNSIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAuMTA2Ii8+DQorCQkJCQk8dmFsIG89IjEzNzIxNCIgdj0iMC4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjEzOWM0NCIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjEzYzY3ZSIgdj0iMC4xMDEiLz4NCisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwLjEwNCIvPg0KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAuMTA2Ii8+DQorCQkJCQk8dmFsIG89IjEzZjBhZSIgdj0iMC4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwLjEwNCIvPg0KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAuMTAyIi8+DQorCQkJCQk8dmFsIG89IjE0MWFkZiIgdj0iMC4xMDQiLz4NCisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE0NDUwZiIgdj0iMC4xMDciLz4NCisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjE0NmY0MCIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNDdkNDQiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxNGE3NzUiIHY9IjAuMTA2Ii8+DQorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMC4xMDciLz4NCisJCQkJCTx2YWwgbz0iMTRkZmI2IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAuMTEiLz4NCisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwLjExMiIvPg0KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAuMTEyIi8+DQorCQkJCQk8dmFsIG89IjE1MTdmZiIgdj0iMC4xMTUiLz4NCisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjE1NDIyNSIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNTUwMzUiIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMC4xMDciLz4NCisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwLjEwNCIvPg0KKwkJCQkJPHZhbCBvPSIxNTdhNjUiIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMC4xMDciLz4NCisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwLjEwNiIvPg0KKwkJCQkJPHZhbCBvPSIxNWE0OTUiIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwLjEwOSIvPg0KKwkJCQkJPHZhbCBvPSIxNWNlYzYiIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxNWY4ZjUiIHY9IjAuMTA0Ii8+DQorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAuMTExIi8+DQorCQkJCQk8dmFsIG89IjE2M2Y0NiIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMC4xMTIiLz4NCisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwLjExMSIvPg0KKwkJCQkJPHZhbCBvPSIxNjc3ODYiIHY9IjAuMTEyIi8+DQorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMC4xMTMiLz4NCisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwLjExMyIvPg0KKwkJCQkJPHZhbCBvPSIxNmExYjUiIHY9IjAuMTEyIi8+DQorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMC4xMTEiLz4NCisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwLjEwOSIvPg0KKwkJCQkJPHZhbCBvPSIxNmNiZTYiIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMC4xMTEiLz4NCisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAuMTExIi8+DQorCQkJCQk8dmFsIG89IjE3MTIzNiIgdj0iMC4xMTIiLz4NCisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwLjExMiIvPg0KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAuMTExIi8+DQorCQkJCQk8dmFsIG89IjE3M2M2NyIgdj0iMC4xMTEiLz4NCisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIxMTguMzUxIi8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMTE5Ljc2MyIvPg0KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjEyMC44NzIiLz4NCisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSIxMjEuNDQzIi8+DQorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMTI0LjU4NyIvPg0KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjEyNy4xMTkiLz4NCisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIxMjguODg3Ii8+DQorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMTI3LjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjEyNy4xIi8+DQorCQkJCQk8dmFsIG89IjE3ZTUyZiIgdj0iMTI3LjM1Ii8+DQorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMTI2LjU1MiIvPg0KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjEyNC43MSIvPg0KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjEyNC4wNzciLz4NCisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIxMjUuMDk5Ii8+DQorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iMTI1LjAyNSIvPg0KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjEyMy45NTQiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSIxMjMuNjQxIi8+DQorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iMTI0LjMwOCIvPg0KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjEyNi4yMDEiLz4NCisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSIxMjUuNDI2Ii8+DQorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iMTI1LjA0NSIvPg0KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9IjEyNC44NjgiLz4NCisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSIxMjMuODU0Ii8+DQorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iMTE3LjE3NyIvPg0KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9IjEyMC45ODUiLz4NCisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSIxMjEuNjg5Ii8+DQorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iMTIxLjUxNCIvPg0KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9IjEyMy43NiIvPg0KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9IjEyNS44NDgiLz4NCisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSIxMjMuMTYyIi8+DQorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iMTI0Ljg3Ii8+DQorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMTI2LjQ1NyIvPg0KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjEyNi41NjUiLz4NCisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIxMjUuODIxIi8+DQorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iMTIzLjY1NCIvPg0KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjEyMC45ODUiLz4NCisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSIxMjEuMDE5Ii8+DQorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iMTIwLjc3MSIvPg0KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjEyMC4xMzkiLz4NCisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSIxMjAuMDY3Ii8+DQorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iMTIyLjQ1OSIvPg0KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjEyMS42MDMiLz4NCisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSIxMjAuODU2Ii8+DQorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMTIwLjg4MiIvPg0KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjEyMC4wNDkiLz4NCisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSIxMTkuOTAzIi8+DQorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMTE2LjAxMiIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjExOS4yODMiLz4NCisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSIxMjAuMzAzIi8+DQorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iMTIxLjcyOCIvPg0KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjEyMS41MTYiLz4NCisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIxMjIuODQ5Ii8+DQorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iMTI2LjA5MyIvPg0KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjEyNi43MjUiLz4NCisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIxMjQuODgzIi8+DQorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iMTI1LjkzMSIvPg0KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjEyNi4wOTYiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIxMjQuOTA2Ii8+DQorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iMTIzLjY1NCIvPg0KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjEyMS40OTMiLz4NCisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSIxMjMuODk3Ii8+DQorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMTIzLjc1NiIvPg0KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjEyMi4zNjkiLz4NCisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSIxMjEuOTM0Ii8+DQorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iMTIyLjMwNiIvPg0KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjEyNC4wNDEiLz4NCisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSIxMjMuNjk4Ii8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTIwLjAyOSIvPg0KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjEyMC4wMzMiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIxMTkuMzE0Ii8+DQorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMTIwLjQ3OSIvPg0KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjEyMS45MSIvPg0KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjEyMi40ODUiLz4NCisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSIxMTguNTY0Ii8+DQorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iMTE5LjM2NyIvPg0KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjEyMC44MDgiLz4NCisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSIxMjMuMTA1Ii8+DQorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iMTI1LjAyMSIvPg0KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjEyMy4yNzQiLz4NCisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSIxMjMuOTIiLz4NCisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSIxMjMuODc2Ii8+DQorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMTIyLjg4MyIvPg0KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjEyMi4wNzIiLz4NCisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIxMjEuNTQ0Ii8+DQorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMTIzLjI3Ii8+DQorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iMTIzLjUxMyIvPg0KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjEyMi42MDQiLz4NCisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSIxMjEuMjgxIi8+DQorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iMTIxLjcxNiIvPg0KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjEyMi43MTQiLz4NCisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSIxMjMuMTI5Ii8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMTIzLjQzMSIvPg0KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9IjEyMi45ODciLz4NCisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSIxMTkuMjYyIi8+DQorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMTE4LjA4NyIvPg0KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjExNi41MzIiLz4NCisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIxMTguNjE4Ii8+DQorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMTE5LjcwNiIvPg0KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjEyMC44OTkiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIxMjAuNzE4Ii8+DQorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMTIxLjYyNCIvPg0KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjExNy45MjUiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIxMjAuOTI4Ii8+DQorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMTIyLjM0Ii8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iMTIyLjk3MiIvPg0KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9IjEyMy4wNSIvPg0KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9IjEyMi40NCIvPg0KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjEyMC43MzUiLz4NCisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIxMjAuNzExIi8+DQorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTIzLjY4OCIvPg0KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjEyMi44NTMiLz4NCisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIxMjIuNzU0Ii8+DQorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMTIyLjk3NSIvPg0KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjEyMy40OSIvPg0KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjEyMy4yNzgiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxMjEuNzc2Ii8+DQorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMTIxLjQ1OCIvPg0KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjEyMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIxMTYuODMyIi8+DQorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTE5Ljk0OCIvPg0KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjEyMC4wMjIiLz4NCisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxMjAuODg0Ii8+DQorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMTE5LjYxOCIvPg0KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjEyMi44MTEiLz4NCisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIxMjMuOTk3Ii8+DQorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iMTI2LjY1NCIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjEyNS41NzQiLz4NCisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIxMjYuNDk1Ii8+DQorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iMTI2LjAyMSIvPg0KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjEyNS41MjEiLz4NCisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIxMjMuMTA0Ii8+DQorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMTIxLjA3MyIvPg0KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjExNy45OTciLz4NCisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIxMTkuMzc2Ii8+DQorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMTE5LjMwMiIvPg0KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjEyMC4yNCIvPg0KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjEyMC40OTciLz4NCisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSIxMjMuMjc2Ii8+DQorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMTIxLjI4NyIvPg0KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjEyMC40OTIiLz4NCisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSIxMTkuNjQzIi8+DQorCQkJCQk8dmFsIG89IjIwODRmNiIgdj0iMTE3LjYyNiIvPg0KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9IjEyMS45Ii8+DQorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iMTIwLjg2MSIvPg0KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjEyMC40OTMiLz4NCisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSIxMjEuNTI2Ii8+DQorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iMTE5LjQ2Ii8+DQorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMTIwLjI4NCIvPg0KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjEyMS43MTMiLz4NCisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSIxMjQuMjAzIi8+DQorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iMTI2LjU4NyIvPg0KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjEyNC42MjciLz4NCisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSIxMjQuNTI2Ii8+DQorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iMTIzLjgyMSIvPg0KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9IjEyMi4zNTciLz4NCisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSIxMTguNjQyIi8+DQorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iMTE2LjY1MSIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9IjEyMi40MzkiLz4NCisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIxMjAuMjMyIi8+DQorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iMTE5LjMyMiIvPg0KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9IjEyMC4yMzYiLz4NCisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSIxMjAuMzQ2Ii8+DQorCQkJCQk8dmFsIG89IjIxYWM0NiIgdj0iMTE5LjE0OCIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9IjExOC45MDciLz4NCisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSIxMTcuODc0Ii8+DQorCQkJCQk8dmFsIG89IjIxZDY3NyIgdj0iMTIyLjU4NCIvPg0KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjEyMC4yNTIiLz4NCisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSIxMjAuNDY5Ii8+DQorCQkJCQk8dmFsIG89IjIyMDBhNiIgdj0iMTIxLjMwMyIvPg0KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9IjEyMi4xODMiLz4NCisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSIxMTguNzQ3Ii8+DQorCQkJCQk8dmFsIG89IjIyMmFkNyIgdj0iMTIwLjgxIi8+DQorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iMTIzLjkzNyIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjEyNi42ODciLz4NCisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIxMTkuNTUzIi8+DQorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iMTE5Ljc1NyIvPg0KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjExOS43NTMiLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxMTcuNTU3Ii8+DQorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMTE2LjI2MiIvPg0KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjEyMi40NjkiLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIxMTkuNzY1Ii8+DQorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMTE5Ljc4Ii8+DQorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iMTE5LjAwNiIvPg0KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9IjExOC42OTYiLz4NCisJCQkJCTx2YWwgbz0iMjJlMWE2IiB2PSIxMTkuMDE4Ii8+DQorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iMTIwLjc2NSIvPg0KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9IjEyMC40MSIvPg0KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9IjExOS42MDgiLz4NCisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSIxMTkuMjY4Ii8+DQorCQkJCQk8dmFsIG89IjIzMjdmNiIgdj0iMTE4LjIyMSIvPg0KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9IjExOS4yMzQiLz4NCisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSIxMTguMTk5Ii8+DQorCQkJCQk8dmFsIG89IjIzNTIyNiIgdj0iMTE5LjUyNCIvPg0KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjEyMC43NiIvPg0KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjExOC40NDYiLz4NCisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIxMTkuODYiLz4NCisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxMjEuNDU4Ii8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMTIwLjkzNyIvPg0KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjEyMi4zNTMiLz4NCisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxMjMuMDg1Ii8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMTIzLjE0NSIvPg0KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjEyMi4yNzciLz4NCisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxMjEuMTUzIi8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMTE5LjMxIi8+DQorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iMTIwLjYxNiIvPg0KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjExOC40ODIiLz4NCisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIxMTcuNzg5Ii8+DQorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMTE4LjE3OCIvPg0KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjExOC42NSIvPg0KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjExOS44OTMiLz4NCisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSIxMTkuMTcyIi8+DQorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMTE4Ljg4Ii8+DQorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iMTE4LjAzIi8+DQorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMTE1LjIiLz4NCisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIxMTguMDkxIi8+DQorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iMTE5LjYwMSIvPg0KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9IjEyMC44NDQiLz4NCisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSIxMjAuMDk0Ii8+DQorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iMTIzLjg1MSIvPg0KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9IjEyMy40OTkiLz4NCisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSIxMjQuODA2Ii8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iMTI0LjI3Ii8+DQorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iMTI0Ljk4NSIvPg0KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjEyNS4wMiIvPg0KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjEyMy40ODMiLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIxMjIuNDM2Ii8+DQorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTIwLjA0MSIvPg0KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjExOS40OTYiLz4NCisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIxMTkuMzYyIi8+DQorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMTE3Ljc2NyIvPg0KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjExOC42MTYiLz4NCisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSIxMTcuMjc0Ii8+DQorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iMTE4Ljk3NSIvPg0KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjExOS43OSIvPg0KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjExOS4zMzEiLz4NCisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIxMTkuMTk0Ii8+DQorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iMTE4LjYzNyIvPg0KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjEyMC41MzUiLz4NCisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIxMTkuOCIvPg0KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjEyMC40MDMiLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIxMjEuMDU0Ii8+DQorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMTE5LjQxMyIvPg0KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjEyMC4zOCIvPg0KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9IjEyMy4yMDMiLz4NCisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSIxMjEuMTQzIi8+DQorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iMTIyLjk3NiIvPg0KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9IjEyMy42OTciLz4NCisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSIxMjQuNDc2Ii8+DQorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iMTIzLjU5MiIvPg0KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9IjEyMy4xNzciLz4NCisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSIxMjEuODUzIi8+DQorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iMTIxLjI5OCIvPg0KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjEyMC41OTMiLz4NCisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSIxMTguNzYzIi8+DQorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iMTE4LjI3OCIvPg0KKwkJCQkJPHZhbCBvPSIyNmQ2MmIiIHY9IjExOC41OTYiLz4NCisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSIxMTkuOTg0Ii8+DQorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iMTE5LjUyMyIvPg0KKwkJCQkJPHZhbCBvPSIyNzAwNTciIHY9IjExOS41NzQiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSIxMTkuMDEzIi8+DQorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iMTE5LjcyMiIvPg0KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9IjEyMC44NzUiLz4NCisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSIxMjAuNjY4Ii8+DQorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iMTIxLjQ1MSIvPg0KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9IjEyMS44MzgiLz4NCisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIxMTkuMDUzIi8+DQorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMTIxLjAzIi8+DQorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMTIzLjU0NCIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9Ijk4MDgiIGg9IjNkYzFhOGRlIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJlMDgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjM4MzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjYyNjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhjOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI2YzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImUwZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExOTM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI4NmQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJiMTA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNkODU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjRiOTU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjRlMzg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjUwZGQwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjUzN2U3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU2MjE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU4YzQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjVhODY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjViNjc2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjVlMGE5IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjYzNTA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjcwN2Y2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc1YzU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc4NjgwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdiMGFmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdkYWRmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjkyYzZhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijk1Njk0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijk4MGM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjliOTA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjljNzE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjllMzM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImExYjc3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImEyOTg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImFhODE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImFkMjQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI4OTE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImJjZjY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImM1YzA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQxMmQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQ2NzM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQ5Zjc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImRjOWE4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImViOGFlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImYwZDEwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwMzQ2YyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwNWU5ZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExNWJiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjExZGE0NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyODMwNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyYWQzNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODAxNGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4NDdhMSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4NzFjZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4OWMwMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhN2ExNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZGZlMTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZWZiMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjI1NjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZmE0MDEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZmNlMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMGNiNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMGY1ODEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTFmYTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTQ5ZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTc0MDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjFjYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ3MDEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjcxMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyM2MyYTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNDc5NzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNGNkYmMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1OTJiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1YmNlNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSIwIi8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iOTgwNCIgaD0iM2RjMWE4ZGUiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSIxMTMuNzY4Ii8+DQorCQkJCQk8dmFsIG89ImUwOCIgdj0iMTE3LjEzMSIvPg0KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSIxMTguNzk0Ii8+DQorCQkJCQk8dmFsIG89IjJhM2MiIHY9IjEyMC4zNjIiLz4NCisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iMTE4LjUwNCIvPg0KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSIxMTYuMjc1Ii8+DQorCQkJCQk8dmFsIG89IjU0NTUiIHY9IjEwOS4yNTgiLz4NCisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iMTIxLjEyNyIvPg0KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSIxMTguODQ5Ii8+DQorCQkJCQk8dmFsIG89IjdlODUiIHY9IjExNi4wOTMiLz4NCisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iMTIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSIxMjAuODQiLz4NCisJCQkJCTx2YWwgbz0iYThiNiIgdj0iMTI0LjA0NSIvPg0KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSIxMjQuMDQyIi8+DQorCQkJCQk8dmFsIG89ImM0ZDciIHY9IjExNy43MTMiLz4NCisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iMTE4LjA0OCIvPg0KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSIxMTguMDUxIi8+DQorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjExOC4yNTkiLz4NCisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iMTE4LjA1NCIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iMTIwLjg0NCIvPg0KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iMTIxLjkyNSIvPg0KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iMTE5LjM1MyIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iMTIwLjg2NyIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iMTI1LjQ4Ii8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSIxMjcuNDM0Ii8+DQorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSIxMTkuMDY5Ii8+DQorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSIxMjAuOTA0Ii8+DQorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSIxMjAuOTc0Ii8+DQorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSIxMjAuMjUiLz4NCisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9IjExOC4yOTEiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9IjEyNi41NzMiLz4NCisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9IjEyNS42MzciLz4NCisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9IjEyNC42NjgiLz4NCisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9IjEyMS4zOTMiLz4NCisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9IjEyMS45OTgiLz4NCisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9IjEyMi41NTUiLz4NCisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9IjEyMy45NDEiLz4NCisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9IjEyNC43NDYiLz4NCisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9IjEyNS4wODUiLz4NCisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9IjEyNS4xNDMiLz4NCisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9IjEyMy4zMTUiLz4NCisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjExOS4wMjYiLz4NCisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9IjExOC42ODMiLz4NCisJCQkJCTx2YWwgbz0iMjVjYTciIHY9IjExOS44MTUiLz4NCisJCQkJCTx2YWwgbz0iMjZhYjciIHY9IjExOS4yNSIvPg0KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMTE5LjY3OCIvPg0KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iMTIxLjcwOCIvPg0KKwkJCQkJPHZhbCBvPSIyOTRlNiIgdj0iMTI1LjE4MiIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iMTI1LjIxNyIvPg0KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iMTE3LjEyIi8+DQorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSIxMTguNDg5Ii8+DQorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSIxMTkuMzM4Ii8+DQorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIxMTkuMzkyIi8+DQorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIxMTcuMjc3Ii8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIxMTIuOTY3Ii8+DQorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSIxMjQuNzc1Ii8+DQorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSIxMjQuNDA5Ii8+DQorCQkJCQk8dmFsIG89IjMyMTllIiB2PSIxMjMuMjY4Ii8+DQorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSIxMjIuOTU2Ii8+DQorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSIxMjMuMDMyIi8+DQorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSIxMjMuNTU1Ii8+DQorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSIxMjMuMDA0Ii8+DQorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSIxMjIuMTI1Ii8+DQorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSIxMjEuMDc4Ii8+DQorCQkJCQk8dmFsIG89IjM4NDBlIiB2PSIxMTcuNzAxIi8+DQorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSIxMTguMTAxIi8+DQorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSIxMTcuNzcxIi8+DQorCQkJCQk8dmFsIG89IjNhZTI3IiB2PSIxMjEuMzkzIi8+DQorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSIxMjAuMTYiLz4NCisJCQkJCTx2YWwgbz0iM2NhNDciIHY9IjExOS4zODciLz4NCisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9IjExOS44ODciLz4NCisJCQkJCTx2YWwgbz0iM2U2NjciIHY9IjEyMi42NCIvPg0KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iMTI1Ljk1NCIvPg0KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iMTIzLjUxIi8+DQorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSIxMjQuMzI4Ii8+DQorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSIxMjQuNjM5Ii8+DQorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSIxMjQuNDQ4Ii8+DQorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSIxMjIuNDM0Ii8+DQorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIxMTguNjIzIi8+DQorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSIxMjIuMTY5Ii8+DQorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSIxMjAuOTc5Ii8+DQorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSIxMTguMzU4Ii8+DQorCQkJCQk8dmFsIG89IjQ4ZjBlIiB2PSIxMTcuMjcxIi8+DQorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSIxMTguNjgiLz4NCisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjExOC41NjIiLz4NCisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjExNi44NDIiLz4NCisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjExNS45MTMiLz4NCisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjExOC44OTQiLz4NCisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjExOC41OSIvPg0KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMTE2LjI5MyIvPg0KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMTE4LjI5OSIvPg0KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMTIwLjIzMyIvPg0KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMTE4LjQ5NSIvPg0KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMTIwLjQwNiIvPg0KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iMTIyLjY0NCIvPg0KKwkJCQkJPHZhbCBvPSI1NDYwMCIgdj0iMTI1LjUyOCIvPg0KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iMTIxLjc0NiIvPg0KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iMTIyLjY0MiIvPg0KKwkJCQkJPHZhbCBvPSI1NzAyNiIgdj0iMTIyLjU4MSIvPg0KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iMTIyLjYyMyIvPg0KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iMTIwLjQzMSIvPg0KKwkJCQkJPHZhbCBvPSI1OWE3MCIgdj0iMTIxLjMyOSIvPg0KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iMTIwLjY1MSIvPg0KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iMTE4Ljg3NiIvPg0KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMTE1LjY2MSIvPg0KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMTE5LjgzNSIvPg0KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iMTIwLjM0Ii8+DQorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSIxMTkuNDM5Ii8+DQorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSIxMTguMjQ1Ii8+DQorCQkJCQk8dmFsIG89IjYwYWQ3IiB2PSIxMTcuMDA0Ii8+DQorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSIxMTcuMTY1Ii8+DQorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSIxMTkuOTUiLz4NCisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjExNy4xNDkiLz4NCisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjExOC41NDEiLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9IjExOS44MjIiLz4NCisJCQkJCTx2YWwgbz0iNjVmMzciIHY9IjEyMS4wMTMiLz4NCisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9IjEyMS41NzciLz4NCisJCQkJCTx2YWwgbz0iNjdiNTciIHY9IjEyMC4yODkiLz4NCisJCQkJCTx2YWwgbz0iNjg5NjciIHY9IjEyMi42MiIvPg0KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iMTE5LjA5MyIvPg0KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iMTIwLjQ5MyIvPg0KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iMTIxLjkxOSIvPg0KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iMTIyLjIxOCIvPg0KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iMTIxLjAyMiIvPg0KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iMTE4LjQzMyIvPg0KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMTE1Ljk3OCIvPg0KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iMTIwLjk3MSIvPg0KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iMTE5LjIzNCIvPg0KKwkJCQkJPHZhbCBvPSI3MTYwNyIgdj0iMTE4LjAxNSIvPg0KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iMTE3LjkyMiIvPg0KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iMTE3LjU2NiIvPg0KKwkJCQkJPHZhbCBvPSI3NDAzNyIgdj0iMTIxLjQ2OSIvPg0KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iMTIwLjUxNCIvPg0KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMTE4LjQ4NSIvPg0KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMTE3Ljg4OSIvPg0KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMTE3Ljk0NiIvPg0KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iMTEzLjYxMSIvPg0KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMTE2LjU4MyIvPg0KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMTE5LjMwNiIvPg0KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iMTE4LjgwMiIvPg0KKwkJCQkJPHZhbCBvPSI3YmViZiIgdj0iMTIwLjc5OSIvPg0KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iMTIwLjg1NyIvPg0KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iMTIxLjU5NCIvPg0KKwkJCQkJPHZhbCBvPSI3ZThmYSIgdj0iMTIxLjQyMSIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iMTIzLjc0Ii8+DQorCQkJCQk8dmFsIG89IjgwNTFhIiB2PSIxMjUuMTg5Ii8+DQorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSIxMjUuNjczIi8+DQorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSIxMjQuNzc3Ii8+DQorCQkJCQk8dmFsIG89IjgyZjRhIiB2PSIxMjIuNDMyIi8+DQorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSIxMjAuMDExIi8+DQorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIxMTguNjIyIi8+DQorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSIxMTguNTU5Ii8+DQorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIxMTcuNTI0Ii8+DQorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIxMTcuMjU3Ii8+DQorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSIxMTkuOTA5Ii8+DQorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSIxMjAuOTIxIi8+DQorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSIxMTkuOTYiLz4NCisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9IjExOC40ODEiLz4NCisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9IjExOC42MDUiLz4NCisJCQkJCTx2YWwgbz0iOGM5ZmMiIHY9IjExOC4yODIiLz4NCisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9IjExOC42NjMiLz4NCisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9IjExNy4wMDkiLz4NCisJCQkJCTx2YWwgbz0iOGY0MmEiIHY9IjExNy43NjYiLz4NCisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9IjExOS43MjIiLz4NCisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9IjEyMC4yOTkiLz4NCisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjExOC4zNjYiLz4NCisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9IjEyMi41MjkiLz4NCisJCQkJCTx2YWwgbz0iOTNhODQiIHY9IjEyNC44MzMiLz4NCisJCQkJCTx2YWwgbz0iOTQ4ODUiIHY9IjEyMy4wNiIvPg0KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iMTIyLjM5NiIvPg0KKwkJCQkJPHZhbCBvPSI5NjRhNSIgdj0iMTIyLjc5MiIvPg0KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iMTIyLjIzMiIvPg0KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iMTE5Ljc5Ii8+DQorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSIxMjIuODYiLz4NCisJCQkJCTx2YWwgbz0iOTljZTUiIHY9IjExOS4wMTIiLz4NCisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9IjExOC4zMjEiLz4NCisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9IjExNS40NTYiLz4NCisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9IjExOS4zNzQiLz4NCisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9IjEyMC4zNDQiLz4NCisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9IjExOS4yNTQiLz4NCisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9IjExNy44MyIvPg0KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iMTE3LjAwMSIvPg0KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMTE2Ljc4MiIvPg0KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iMTE2LjgwMyIvPg0KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iMTE4Ljc1Ii8+DQorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSIxMTguMzU4Ii8+DQorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSIxMTkuNDkzIi8+DQorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSIxMTkuNjk4Ii8+DQorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSIxMTkuOTA4Ii8+DQorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSIxMjAuNjc1Ii8+DQorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSIxMjIuNzU0Ii8+DQorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSIxMjUuMzg1Ii8+DQorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIxMTguMjE0Ii8+DQorCQkJCQk8dmFsIG89ImFhODE1IiB2PSIxMTkuMzI5Ii8+DQorCQkJCQk8dmFsIG89ImFiNjI1IiB2PSIxMjAuMTEiLz4NCisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9IjExOS42ODkiLz4NCisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjExNy4xMiIvPg0KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTE0LjcyOSIvPg0KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMTIwLjg3MSIvPg0KKwkJCQkJPHZhbCBvPSJhZmM3NSIgdj0iMTE5LjE3NyIvPg0KKwkJCQkJPHZhbCBvPSJiMGE4NSIgdj0iMTE2LjY5OSIvPg0KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMTE2Ljc2OCIvPg0KKwkJCQkJPHZhbCBvPSJiMzRiNiIgdj0iMTE4LjA3NSIvPg0KKwkJCQkJPHZhbCBvPSJiNDJjNiIgdj0iMTE1LjU3MSIvPg0KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMTE1Ljg2NyIvPg0KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iMTE0LjMwOSIvPg0KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iMTIyLjc4NyIvPg0KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iMTE4LjkwNCIvPg0KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iMTE4LjUzMSIvPg0KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iMTE5LjQzOCIvPg0KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iMTIwLjkwOCIvPg0KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iMTE5Ljg0NCIvPg0KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iMTIwLjU3NSIvPg0KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iMTIzLjIxMiIvPg0KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iMTE4LjcxMiIvPg0KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iMTE4LjMxNiIvPg0KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMTE4Ljg1OSIvPg0KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iMTIwLjA5MiIvPg0KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iMTE5LjUzMiIvPg0KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iMTE4LjE3OSIvPg0KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iMTE1LjczMSIvPg0KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iMTE3LjY3MSIvPg0KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMTE2LjA0NiIvPg0KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iMTE3LjQxNiIvPg0KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iMTE3LjU3OCIvPg0KKwkJCQkJPHZhbCBvPSJjNzgyNiIgdj0iMTE2Ljc1OCIvPg0KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMTE4LjMxOSIvPg0KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMTE4LjM1NSIvPg0KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMTE4LjEzNiIvPg0KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iMTE3LjIyNSIvPg0KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iMTIyLjY1OSIvPg0KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTE4LjU0NyIvPg0KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMTE2LjYzNSIvPg0KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMTE4LjEwNSIvPg0KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMTE4LjUwMyIvPg0KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iMTE5LjU0NyIvPg0KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMTIxLjQiLz4NCisJCQkJCTx2YWwgbz0iZDIwZTciIHY9IjEyMy4zOTYiLz4NCisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9IjEyNi4wNjgiLz4NCisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjExOS4zMyIvPg0KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iMTIwLjUyNCIvPg0KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iMTIwLjc0MiIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMTE5LjU0OCIvPg0KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTE3LjM1OCIvPg0KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iMTI0LjI2NyIvPg0KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iMTIyLjM4OCIvPg0KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iMTIwLjc3NCIvPg0KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iMTE3LjM0NSIvPg0KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMTE2LjY5OCIvPg0KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMTE2Ljc5OCIvPg0KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iMTE4LjIxOSIvPg0KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMTE3Ljg3OSIvPg0KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMTE3LjI4NyIvPg0KKwkJCQkJPHZhbCBvPSJlMDFkNyIgdj0iMTE3LjQyIi8+DQorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSIxMTYuNzk4Ii8+DQorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIxMTcuMTg0Ii8+DQorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSIxMTkuNjY1Ii8+DQorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSIxMjEuMDMzIi8+DQorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSIxMjAuODM5Ii8+DQorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSIxMjIuNDU2Ii8+DQorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSIxMjAuNTM0Ii8+DQorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSIxMjIuNzY2Ii8+DQorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSIxMjMuNzM1Ii8+DQorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIxMTYuNjU0Ii8+DQorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSIxMTguMTExIi8+DQorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSIxMTguNDQxIi8+DQorCQkJCQk8dmFsIG89ImViOGFlIiB2PSIxMTcuNDYzIi8+DQorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIxMTMuNTQ5Ii8+DQorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSIxMjMuNTk2Ii8+DQorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSIxMjAuNzA5Ii8+DQorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSIxMTguOTQiLz4NCisJCQkJCTx2YWwgbz0iZWZmMDEiIHY9IjExNi4wMDIiLz4NCisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9IjExNy43NDEiLz4NCisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9IjExNy40OSIvPg0KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iMTIxLjQzMyIvPg0KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iMTE3LjczNSIvPg0KKwkJCQkJPHZhbCBvPSJmNDU1MSIgdj0iMTE4LjE2NSIvPg0KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iMTE3LjgzOSIvPg0KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iMTE3LjY4NSIvPg0KKwkJCQkJPHZhbCBvPSJmNmY4MCIgdj0iMTE3LjUxOCIvPg0KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iMTE5LjM4NSIvPg0KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iMTIxLjIwMiIvPg0KKwkJCQkJPHZhbCBvPSJmOTliMSIgdj0iMTIwLjI1NCIvPg0KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iMTE4LjMzNiIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iMTE4LjI2NyIvPg0KKwkJCQkJPHZhbCBvPSJmYzNlMCIgdj0iMTIzLjA4OCIvPg0KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iMTIzLjE4MyIvPg0KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iMTI2LjM3NyIvPg0KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iMTIzLjc3MiIvPg0KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iMTIzLjYzNCIvPg0KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjEyMy4wMDgiLz4NCisJCQkJCTx2YWwgbz0iMTAxODRjIiB2PSIxMjEuMzgyIi8+DQorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iMTE3LjY5NiIvPg0KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9IjExNy45MDEiLz4NCisJCQkJCTx2YWwgbz0iMTA0MjdiIiB2PSIxMTkuNDA0Ii8+DQorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMTE3LjY0NiIvPg0KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjExOC4xNDciLz4NCisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxMTcuODAyIi8+DQorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iMTIwLjE1MSIvPg0KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjExOS43MzMiLz4NCisJCQkJCTx2YWwgbz0iMTA5NmRlIiB2PSIxMTkuMDk2Ii8+DQorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iMTE5LjI5MSIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9IjExOC45NzMiLz4NCisJCQkJCTx2YWwgbz0iMTBjMTBkIiB2PSIxMTYuMzM2Ii8+DQorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iMTE4LjE3MSIvPg0KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9IjExOS4wODIiLz4NCisJCQkJCTx2YWwgbz0iMTBlYjY2IiB2PSIxMjAuOTUzIi8+DQorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iMTIxLjQxIi8+DQorCQkJCQk8dmFsIG89IjExMDc1ZSIgdj0iMTE5LjA4OCIvPg0KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9IjEyMC45NDEiLz4NCisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSIxMjMuNjk5Ii8+DQorCQkJCQk8dmFsIG89IjExMzE4NyIgdj0iMTIyLjQ4Ii8+DQorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iMTIzLjM3OCIvPg0KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjEyMy4zMTIiLz4NCisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIxMjMuMjE3Ii8+DQorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iMTIwLjk2MSIvPg0KKwkJCQkJPHZhbCBvPSIxMTc3ZDYiIHY9IjExOC4wNzYiLz4NCisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSIxMTguNTczIi8+DQorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iMTE3Ljk3OCIvPg0KKwkJCQkJPHZhbCBvPSIxMWEyMDgiIHY9IjEyMC4wMTkiLz4NCisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSIxMjEuNjYyIi8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iMTIyLjI2OCIvPg0KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjEyMi4zMTciLz4NCisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSIxMjEuOTM0Ii8+DQorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iMTIwLjc3NiIvPg0KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjEyMS44ODkiLz4NCisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSIxMjEuMDY0Ii8+DQorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iMTE2LjgyNCIvPg0KKwkJCQkJPHZhbCBvPSIxMjIxOTYiIHY9IjExNy41NTYiLz4NCisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSIxMTguNzg0Ii8+DQorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iMTIwLjc3Ii8+DQorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMTIyLjU2NSIvPg0KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjEyMC4yNjMiLz4NCisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIxMjIuNzI5Ii8+DQorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iMTI0LjU2MSIvPg0KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9IjEyNS4yMzciLz4NCisJCQkJCTx2YWwgbz0iMTI5MTE1IiB2PSIxMjUuMzQ0Ii8+DQorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iMTI1LjQ5MiIvPg0KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9IjEyNC42NyIvPg0KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjEyMi44MTkiLz4NCisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIxMjEuNzEzIi8+DQorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMTIwLjg4MyIvPg0KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjExOS44NSIvPg0KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjExNy4xNzYiLz4NCisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIxMTcuNDQ3Ii8+DQorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMTE4LjY3OSIvPg0KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjEyMC4wMTYiLz4NCisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIxMTkuOTU5Ii8+DQorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwLjEwOSIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1ZjQiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMC4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwLjEwNiIvPg0KKwkJCQkJPHZhbCBvPSIxMzgwMjQiIHY9IjAuMTA2Ii8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwLjEwOSIvPg0KKwkJCQkJPHZhbCBvPSIxM2FhNTQiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwLjEwMSIvPg0KKwkJCQkJPHZhbCBvPSIxM2Q0OGUiIHY9IjAuMTA0Ii8+DQorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMC4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwLjEwNiIvPg0KKwkJCQkJPHZhbCBvPSIxM2ZlYmYiIHY9IjAuMTA0Ii8+DQorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMC4xMDIiLz4NCisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwLjEwNCIvPg0KKwkJCQkJPHZhbCBvPSIxNDI4ZWYiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMC4xMDciLz4NCisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxNDUzMWYiIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTQ4YjU3IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMC4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMTRiNTg0IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE0YzM5NyIgdj0iMC4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjE0ZWRjNSIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNGZiZDUiIHY9IjAuMTEyIi8+DQorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMC4xMTIiLz4NCisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwLjExNSIvPg0KKwkJCQkJPHZhbCBvPSIxNTI2MDUiIHY9IjAuMTA3Ii8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTU1ZTQ1IiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAuMTA0Ii8+DQorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMC4xMDciLz4NCisJCQkJCTx2YWwgbz0iMTU4ODc1IiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAuMTA2Ii8+DQorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMC4xMDciLz4NCisJCQkJCTx2YWwgbz0iMTViMmE2IiB2PSIwLjEwOCIvPg0KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAuMTA5Ii8+DQorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTVkY2Q1IiB2PSIwLjEwOSIvPg0KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMC4xMDQiLz4NCisJCQkJCTx2YWwgbz0iMTYwNzA2IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE2MTUxNyIgdj0iMC4xMDkiLz4NCisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMC4xMTEiLz4NCisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwLjEwOSIvPg0KKwkJCQkJPHZhbCBvPSIxNjRkNTciIHY9IjAuMTEiLz4NCisJCQkJCTx2YWwgbz0iMTY1YjY3IiB2PSIwLjExMiIvPg0KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAuMTExIi8+DQorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMC4xMTIiLz4NCisJCQkJCTx2YWwgbz0iMTY4NTk2IiB2PSIwLjExMiIvPg0KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAuMTEzIi8+DQorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMC4xMTIiLz4NCisJCQkJCTx2YWwgbz0iMTZhZmM2IiB2PSIwLjExIi8+DQorCQkJCQk8dmFsIG89IjE2YmRkNSIgdj0iMC4xMDgiLz4NCisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwLjEwNyIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAuMTEyIi8+DQorCQkJCQk8dmFsIG89IjE2ZTgwNyIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNmY2MTYiIHY9IjAuMTEiLz4NCisJCQkJCTx2YWwgbz0iMTcwNDI5IiB2PSIwLjExMSIvPg0KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAuMTEyIi8+DQorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMC4xMTIiLz4NCisJCQkJCTx2YWwgbz0iMTcyZTU3IiB2PSIwLjExMSIvPg0KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAuMTExIi8+DQorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMC4xMSIvPg0KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAuMTA4Ii8+DQorCQkJCQk8dmFsIG89IjE3NjY5NCIgdj0iMTE3Ljg0Ii8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMTE5LjE5OSIvPg0KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjEyMC4yMjYiLz4NCisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSIxMjAuOTI0Ii8+DQorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iMTI0LjAzOCIvPg0KKwkJCQkJPHZhbCBvPSIxN2FjZTQiIHY9IjEyNi43NDciLz4NCisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSIxMjguMzY0Ii8+DQorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iMTI2LjU1Ii8+DQorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iMTI2LjUyMiIvPg0KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9IjEyNi44OTMiLz4NCisJCQkJCTx2YWwgbz0iMTdmMzNmIiB2PSIxMjYuMTE0Ii8+DQorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iMTI0LjIxOSIvPg0KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9IjEyMy42OTEiLz4NCisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSIxMjQuNzIzIi8+DQorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iMTI0LjY2NyIvPg0KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9IjEyMy42NjYiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSIxMjMuMzM3Ii8+DQorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iMTI0LjA0MiIvPg0KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9IjEyNS45MiIvPg0KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9IjEyNS4xNDQiLz4NCisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSIxMjQuNzY5Ii8+DQorCQkJCQk8dmFsIG89IjE4OGRlZiIgdj0iMTI0LjU0OSIvPg0KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9IjEyMy40ODMiLz4NCisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIxMTYuNjMiLz4NCisJCQkJCTx2YWwgbz0iMThjNjFjIiB2PSIxMjAuNDYxIi8+DQorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iMTIxLjIyOCIvPg0KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9IjEyMS4xNTQiLz4NCisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSIxMjMuNDA5Ii8+DQorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iMTI1LjQwMyIvPg0KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9IjEyMi43MTYiLz4NCisJCQkJCTx2YWwgbz0iMTkxYTg2IiB2PSIxMjQuMzg1Ii8+DQorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iMTI2LjA0NiIvPg0KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9IjEyNi4xNjYiLz4NCisJCQkJCTx2YWwgbz0iMTk0NGI3IiB2PSIxMjUuMjYiLz4NCisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSIxMjMuMjkiLz4NCisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSIxMjAuNDk5Ii8+DQorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iMTIwLjcwNSIvPg0KKwkJCQkJPHZhbCBvPSIxOTdjZjgiIHY9IjEyMC40OTIiLz4NCisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSIxMTkuOTk2Ii8+DQorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iMTIwLjI2NSIvPg0KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9IjEyMi4yMzIiLz4NCisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSIxMjEuNDkiLz4NCisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSIxMjAuNzA0Ii8+DQorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iMTIwLjYxNCIvPg0KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjExOS44MzkiLz4NCisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSIxMTkuNjg1Ii8+DQorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iMTE1LjU5MyIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9IjExOC44NiIvPg0KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9IjExOS45NyIvPg0KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9IjEyMS4zNjkiLz4NCisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSIxMjEuMDk2Ii8+DQorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iMTIyLjQ1MSIvPg0KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9IjEyNS43NjUiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSIxMjYuMzAyIi8+DQorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iMTI0LjQ5NSIvPg0KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9IjEyNS42NTkiLz4NCisJCQkJCTx2YWwgbz0iMWE4ODI2IiB2PSIxMjUuNzczIi8+DQorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iMTI0LjQ2NCIvPg0KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9IjEyMy4xNjciLz4NCisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSIxMjEuMTM3Ii8+DQorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iMTIzLjY3NyIvPg0KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9IjEyMy41NjkiLz4NCisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSIxMjIuMjU0Ii8+DQorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iMTIxLjc5NCIvPg0KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9IjEyMi4wODgiLz4NCisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSIxMjMuODciLz4NCisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSIxMjMuNTU2Ii8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTE5LjY4MiIvPg0KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjExOS42NzYiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIxMTguODIxIi8+DQorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMTE5LjgzNiIvPg0KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjEyMS4xOTIiLz4NCisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIxMjEuNjg1Ii8+DQorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMTE3Ljg3NCIvPg0KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjExOC43NjIiLz4NCisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSIxMjAuMjYzIi8+DQorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iMTIyLjQ2OCIvPg0KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjEyNC41MzYiLz4NCisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSIxMjIuNTk4Ii8+DQorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iMTIzLjIiLz4NCisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSIxMjMuMjE4Ii8+DQorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iMTIyLjIwMiIvPg0KKwkJCQkJPHZhbCBvPSIxZDQ3NDUiIHY9IjEyMS40MjQiLz4NCisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIxMjAuODg4Ii8+DQorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iMTIyLjc0MyIvPg0KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9IjEyMy4wNzgiLz4NCisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSIxMjIuMjM3Ii8+DQorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iMTIwLjg1OCIvPg0KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9IjEyMS4yMzEiLz4NCisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSIxMjIuMTg1Ii8+DQorCQkJCQk8dmFsIG89IjFkYjdjNyIgdj0iMTIyLjY0OCIvPg0KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9IjEyMi45OTIiLz4NCisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSIxMjIuNDgyIi8+DQorCQkJCQk8dmFsIG89IjFkZTFmNSIgdj0iMTE4LjcwNyIvPg0KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9IjExNy4zNjciLz4NCisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSIxMTUuNzE0Ii8+DQorCQkJCQk8dmFsIG89IjFlMGMyNiIgdj0iMTE3Ljc0Ii8+DQorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iMTE5LjA0OCIvPg0KKwkJCQkJPHZhbCBvPSIxZTI4NDciIHY9IjEyMC4xNzkiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSIxMTkuOTQ5Ii8+DQorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iMTIwLjkwNiIvPg0KKwkJCQkJPHZhbCBvPSIxZTUyODEiIHY9IjExNy4yNTEiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSIxMjAuMTE4Ii8+DQorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iMTIxLjUyMSIvPg0KKwkJCQkJPHZhbCBvPSIxZTdjYTYiIHY9IjEyMi4xODgiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSIxMjIuMjEyIi8+DQorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iMTIxLjUzMSIvPg0KKwkJCQkJPHZhbCBvPSIxZWE2ZDUiIHY9IjExOS45ODEiLz4NCisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSIxMTkuOTc3Ii8+DQorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iMTIyLjkzOSIvPg0KKwkJCQkJPHZhbCBvPSIxZWQxMDYiIHY9IjEyMi4yODkiLz4NCisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSIxMjIuMDUiLz4NCisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSIxMjIuMjcxIi8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iMTIyLjg1NiIvPg0KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9IjEyMi42MTEiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSIxMjEuMTQ4Ii8+DQorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iMTIwLjg2NCIvPg0KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9IjExOS42MDkiLz4NCisJCQkJCTx2YWwgbz0iMWY0MTg3IiB2PSIxMTYuMTAxIi8+DQorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iMTE5LjE2NSIvPg0KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9IjExOS4yODciLz4NCisJCQkJCTx2YWwgbz0iMWY2YmI2IiB2PSIxMjAuMjA4Ii8+DQorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iMTE4Ljc3NSIvPg0KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9IjEyMi4yMjIiLz4NCisJCQkJCTx2YWwgbz0iMWY5NWU3IiB2PSIxMjMuMjg4Ii8+DQorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iMTI2LjAyNiIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9IjEyNC44MjgiLz4NCisJCQkJCTx2YWwgbz0iMWZjMDE2IiB2PSIxMjUuNzY5Ii8+DQorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iMTI1LjIxOCIvPg0KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9IjEyNC43OTUiLz4NCisJCQkJCTx2YWwgbz0iMWZlYTQ1IiB2PSIxMjIuMzkzIi8+DQorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMTIwLjUyMyIvPg0KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjExNy4zMTkiLz4NCisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSIxMTguNzcyIi8+DQorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iMTE4LjgwOCIvPg0KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9IjExOS42ODYiLz4NCisJCQkJCTx2YWwgbz0iMjAzZWE1IiB2PSIxMTkuOTkiLz4NCisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSIxMjIuNzA4Ii8+DQorCQkJCQk8dmFsIG89IjIwNWFjNiIgdj0iMTIwLjc2MiIvPg0KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9IjExOS45MiIvPg0KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjExOS4xMjkiLz4NCisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIxMTcuMDkxIi8+DQorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iMTIxLjIxOSIvPg0KKwkJCQkJPHZhbCBvPSIyMGExMTYiIHY9IjEyMC4yOCIvPg0KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9IjExOS42OSIvPg0KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9IjEyMC42NzciLz4NCisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSIxMTguNzU2Ii8+DQorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iMTE5LjYwOCIvPg0KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9IjEyMS4wNTkiLz4NCisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSIxMjMuNTczIi8+DQorCQkJCQk8dmFsIG89IjIxMDM4NiIgdj0iMTI1Ljk3NiIvPg0KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9IjEyMy45MjYiLz4NCisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSIxMjMuODg4Ii8+DQorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iMTIzLjA4Ii8+DQorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iMTIxLjY5Ii8+DQorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iMTE3LjkxNiIvPg0KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9IjExNi4wMTQiLz4NCisJCQkJCTx2YWwgbz0iMjE2NWY2IiB2PSIxMjEuOTM1Ii8+DQorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMTE5LjY3NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9IjExOC44Ii8+DQorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iMTE5LjY0OSIvPg0KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjExOS43MTUiLz4NCisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSIxMTguNjIyIi8+DQorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMTE4LjQ1OSIvPg0KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjExNy4zMzkiLz4NCisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSIxMjIuMDk1Ii8+DQorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iMTE5LjU1NiIvPg0KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjExOS43NjEiLz4NCisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSIxMjAuNTMiLz4NCisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSIxMjEuNDI4Ii8+DQorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMTE4LjAwMyIvPg0KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjEyMC4yMjgiLz4NCisJCQkJCTx2YWwgbz0iMjIzOGU3IiB2PSIxMjMuMzMiLz4NCisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSIxMjUuODYxIi8+DQorCQkJCQk8dmFsIG89IjIyNTUwNSIgdj0iMTE4Ljc4OCIvPg0KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9IjExOS4xMDYiLz4NCisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSIxMTkuMTE2Ii8+DQorCQkJCQk8dmFsIG89IjIyN2YzNSIgdj0iMTE2LjkwOCIvPg0KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9IjExNS42NDIiLz4NCisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSIxMjIuMDEzIi8+DQorCQkJCQk8dmFsIG89IjIyYTk2NSIgdj0iMTE5LjIzNCIvPg0KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9IjExOS4zMSIvPg0KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjExOC41NjYiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIxMTguMjQzIi8+DQorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMTE4LjU3OSIvPg0KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9IjEyMC4yODgiLz4NCisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSIxMTkuOTk2Ii8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iMTE5LjI0OSIvPg0KKwkJCQkJPHZhbCBvPSIyMzE5ZTYiIHY9IjExOC44NjYiLz4NCisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSIxMTcuNzQxIi8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMTE4LjU0MyIvPg0KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjExNy41MzgiLz4NCisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSIxMTguNzA5Ii8+DQorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iMTE5Ljk0Ii8+DQorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iMTE3LjY2OCIvPg0KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9IjExOS4xNTkiLz4NCisJCQkJCTx2YWwgbz0iMjM4YTY2IiB2PSIxMjAuNzcxIi8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iMTIwLjIzNCIvPg0KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9IjEyMS42MjQiLz4NCisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSIxMjIuMjcyIi8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMTIyLjQyMiIvPg0KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9IjEyMS42ODciLz4NCisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxMjAuMzYxIi8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iMTE4Ljc1MSIvPg0KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9IjEyMC4wMjgiLz4NCisJCQkJCTx2YWwgbz0iMjQwOGY2IiB2PSIxMTcuOTc0Ii8+DQorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iMTE3LjMwNSIvPg0KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9IjExNy43MSIvPg0KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjExOC4xOTMiLz4NCisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSIxMTkuNTQyIi8+DQorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iMTE4Ljc0MSIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9IjExOC4yOTUiLz4NCisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSIxMTcuNTM0Ii8+DQorCQkJCQk8dmFsIG89IjI0ODc4NiIgdj0iMTE0LjQ3MiIvPg0KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9IjExNy4zNTciLz4NCisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSIxMTguODUxIi8+DQorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iMTIwLjEzNyIvPg0KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9IjExOS4zNDkiLz4NCisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSIxMjMuMjI2Ii8+DQorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iMTIyLjkyMSIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9IjEyNC4yNzMiLz4NCisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSIxMjMuNTE1Ii8+DQorCQkJCQk8dmFsIG89IjI1MDYxNiIgdj0iMTI0LjE4MiIvPg0KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9IjEyNC4yNyIvPg0KKwkJCQkJPHZhbCBvPSIyNTIyMzYiIHY9IjEyMi44MjciLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIxMjEuODAxIi8+DQorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTE5LjUxNCIvPg0KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjExOC45MjIiLz4NCisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIxMTguODYiLz4NCisJCQkJCTx2YWwgbz0iMjU2ODg3IiB2PSIxMTcuMjY0Ii8+DQorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iMTE4LjAyMiIvPg0KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9IjExNi44MTkiLz4NCisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSIxMTguMzg0Ii8+DQorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iMTE5LjI3NiIvPg0KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjExOC44MSIvPg0KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjExOC42NzYiLz4NCisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSIxMTguMTA4Ii8+DQorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iMTE5LjYyNSIvPg0KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9IjExOS4wNDIiLz4NCisJCQkJCTx2YWwgbz0iMjVmNTI3IiB2PSIxMTkuNjM4Ii8+DQorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iMTIwLjM1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjExOC43MjgiLz4NCisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSIxMTkuNzc3Ii8+DQorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iMTIyLjYyMSIvPg0KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjEyMC40OTQiLz4NCisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSIxMjIuMzM1Ii8+DQorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iMTIzLjAwMSIvPg0KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9IjEyMy44MjciLz4NCisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSIxMjIuOTM5Ii8+DQorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iMTIyLjM5OCIvPg0KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9IjEyMS4yMTIiLz4NCisJCQkJCTx2YWwgbz0iMjY5ZGU2IiB2PSIxMjAuODQ0Ii8+DQorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iMTIwLjA1NCIvPg0KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjExOC4yOTciLz4NCisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIxMTcuNzk1Ii8+DQorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iMTE3Ljk5NiIvPg0KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjExOS4yODciLz4NCisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIxMTguODE1Ii8+DQorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iMTE4Ljk1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjExOC40NDkiLz4NCisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxMTkuMTU3Ii8+DQorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iMTIwLjEyNCIvPg0KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9IjExOS44NTgiLz4NCisJCQkJCTx2YWwgbz0iMjc0NmE4IiB2PSIxMjAuNjY4Ii8+DQorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iMTIxLjA2NyIvPg0KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9IjExOC4yNjUiLz4NCisJCQkJCTx2YWwgbz0iMjc3MGQ4IiB2PSIxMjAuMzA4Ii8+DQorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iMTIyLjg1MSIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjQ0MDYwMCIgaD0iM2RjMWE4ZGUiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSItMTI3NSIvPg0KKwkJCQkJPHZhbCBvPSJlMDgiIHY9Ii0xNDgyIi8+DQorCQkJCQk8dmFsIG89IjFjMzIiIHY9Ii0xNTYyIi8+DQorCQkJCQk8dmFsIG89IjJhM2MiIHY9Ii0xNjQzIi8+DQorCQkJCQk8dmFsIG89IjM4MzUiIHY9Ii0xNDQ2Ii8+DQorCQkJCQk8dmFsIG89IjQ2NDUiIHY9Ii0xMjc2Ii8+DQorCQkJCQk8dmFsIG89IjU0NTUiIHY9Ii0xMDQ5Ii8+DQorCQkJCQk8dmFsIG89IjYyNjUiIHY9Ii0xNjk0Ii8+DQorCQkJCQk8dmFsIG89IjcwNzUiIHY9Ii0xNzYwIi8+DQorCQkJCQk8dmFsIG89IjdlODUiIHY9Ii0xNjYyIi8+DQorCQkJCQk8dmFsIG89IjhjOTYiIHY9Ii0yMDY3Ii8+DQorCQkJCQk8dmFsIG89IjlhYTUiIHY9Ii0xOTkyIi8+DQorCQkJCQk8dmFsIG89ImE4YjYiIHY9Ii0xOTI4Ii8+DQorCQkJCQk8dmFsIG89ImI2YzUiIHY9Ii0yMDE4Ii8+DQorCQkJCQk8dmFsIG89ImM0ZDciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89ImQzMGIiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89ImUwZjYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89ImVmMDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMTE5MzciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMjQwODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjRlOTkiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjI1Y2E3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIyNmFiNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMjc4YzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmNkMjUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjJkYjM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjMwNTY2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzMTM3NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMzIxOWUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjMyZjk2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzM2RhNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMzRiYjYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjM1OWRlIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzNjdkNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMzc1ZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2EwMTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iM2FlMjciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iM2U2NjciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjQ1NmU2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0NjRmNSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNDgwZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGFiNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGQ1NzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGUzODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNGZmYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTI5ZDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNThjNDYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWM0ODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWQyOTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNjBhZDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjI2ZjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjM1MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjQzMTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNjUxMjciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjY1ZjM3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2NmQ0NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNjdiNTciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjY4OTY3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2OTc4MiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNmE1ODYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjZiMzk1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2YzFhNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNmNmYjUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjZkZGM2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2ZWJkNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjczMjI3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNzVjNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzc4NzMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2EyOWYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iODA1MWEiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iODJmNGEiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4Njc4YiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iODkxYmIiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4YmJlYiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4ZTYxYSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI5MTA0YSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOTFlNWEiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI5YjkwNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOWM3MTYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjlkNTI2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5ZTMzNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOWYxNDUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjlmZjU2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSJhMGQ2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iLTE4NDUiLz4NCisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9Ii02MzEiLz4NCisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9IjE1NjQiLz4NCisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9Ii02NiIvPg0KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iLTM5MyIvPg0KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iLTY5MSIvPg0KKwkJCQkJPHZhbCBvPSJhNmZkNiIgdj0iLTg4MyIvPg0KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iLTE1NzUiLz4NCisJCQkJCTx2YWwgbz0iYThjMDAiIHY9Ii0yMjA5Ii8+DQorCQkJCQk8dmFsIG89ImE5YTA1IiB2PSIxMDkiLz4NCisJCQkJCTx2YWwgbz0iYWE4MTUiIHY9Ii00MjAiLz4NCisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9Ii04NTkiLz4NCisJCQkJCTx2YWwgbz0iYWM0MzUiIHY9Ii02MjgiLz4NCisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjUxNiIvPg0KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iMTgzOSIvPg0KKwkJCQkJPHZhbCBvPSJhZWU2NSIgdj0iMjkzIi8+DQorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSIxMTg1Ii8+DQorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIzOTQ2Ii8+DQorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSI0MjMwIi8+DQorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSIzNjg5Ii8+DQorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSIyNDgiLz4NCisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9IjQzMCIvPg0KKwkJCQkJPHZhbCBvPSJiNWVlNyIgdj0iMTAyNiIvPg0KKwkJCQkJPHZhbCBvPSJiNmNmNiIgdj0iLTUyNiIvPg0KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iLTI1OCIvPg0KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iLTY1Ii8+DQorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSItNDg5Ii8+DQorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSItODQyIi8+DQorCQkJCQk8dmFsIG89ImJiMzQ3IiB2PSIxMDgyIi8+DQorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIzMTAiLz4NCisJCQkJCTx2YWwgbz0iYmNmNjciIHY9Ii0xMTEyIi8+DQorCQkJCQk8dmFsIG89ImJkZDgxIiB2PSIzNjMyIi8+DQorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI1MTMiLz4NCisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjIxNCIvPg0KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iLTI5MiIvPg0KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iLTEyNyIvPg0KKwkJCQkJPHZhbCBvPSJjMjNjNiIgdj0iNDk1Ii8+DQorCQkJCQk8dmFsIG89ImMzMWQ1IiB2PSIxODE1Ii8+DQorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSI4MTgiLz4NCisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9IjE1MzkiLz4NCisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjY4MCIvPg0KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNzEyIi8+DQorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSIxMjgwIi8+DQorCQkJCQk8dmFsIG89ImM4NjM2IiB2PSIzOTciLz4NCisJCQkJCTx2YWwgbz0iYzk0NDYiIHY9IjQ5MyIvPg0KKwkJCQkJPHZhbCBvPSJjYTI1NiIgdj0iMjUwIi8+DQorCQkJCQk8dmFsIG89ImNiMDY2IiB2PSI3ODUiLz4NCisJCQkJCTx2YWwgbz0iY2JlNzYiIHY9Ii0yMDEiLz4NCisJCQkJCTx2YWwgbz0iY2NjODciIHY9IjIxNTYiLz4NCisJCQkJCTx2YWwgbz0iY2RhOTYiIHY9IjI5MzciLz4NCisJCQkJCTx2YWwgbz0iY2U4YTgiIHY9IjIxMDciLz4NCisJCQkJCTx2YWwgbz0iY2Y2YjciIHY9IjI4MjQiLz4NCisJCQkJCTx2YWwgbz0iZDA0YzgiIHY9IjIyNjkiLz4NCisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjE0NDEiLz4NCisJCQkJCTx2YWwgbz0iZDIwZTciIHY9Ii0yOTciLz4NCisJCQkJCTx2YWwgbz0iZDJmMDIiIHY9Ii0yMjgwIi8+DQorCQkJCQk8dmFsIG89ImQzZDA1IiB2PSItMTE4OSIvPg0KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iLTk2NCIvPg0KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iLTQ0MiIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMjYxIi8+DQorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIxMzA5Ii8+DQorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSItODQ5Ii8+DQorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIxNzgiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9IjExMTEiLz4NCisJCQkJCTx2YWwgbz0iZGFkODciIHY9IjI3NTAiLz4NCisJCQkJCTx2YWwgbz0iZGJiOTciIHY9IjI3NjkiLz4NCisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9IjI5NzMiLz4NCisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9IjEzMjciLz4NCisJCQkJCTx2YWwgbz0iZGU1YzYiIHY9IjQ1NCIvPg0KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iMTk5Ii8+DQorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSIxNjciLz4NCisJCQkJCTx2YWwgbz0iZTBmZTUiIHY9IjU1NiIvPg0KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iNDE2Ii8+DQorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSItMzcwIi8+DQorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSItMTE1NCIvPg0KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iOTMiLz4NCisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9Ii04NDMiLz4NCisJCQkJCTx2YWwgbz0iZTY0NDQiIHY9IjE3MSIvPg0KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iLTY0NiIvPg0KKwkJCQkJPHZhbCBvPSJlODA2ZiIgdj0iLTcyMyIvPg0KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iMjY2NSIvPg0KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iODM3Ii8+DQorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSI2OTgiLz4NCisJCQkJCTx2YWwgbz0iZWI4YWUiIHY9IjEwOTciLz4NCisJCQkJCTx2YWwgbz0iZWM2YmYiIHY9IjI2NDkiLz4NCisJCQkJCTx2YWwgbz0iZWQ0Y2UiIHY9Ii00OTUiLz4NCisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9IjExNjUiLz4NCisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjU0MiIvPg0KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iMTg3MSIvPg0KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iOTc5Ii8+DQorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIxMjEwIi8+DQorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSItMzU2Ii8+DQorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIxNjU0Ii8+DQorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIxMzY4Ii8+DQorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIxNDYyIi8+DQorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIxNjEyIi8+DQorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIxMzA5Ii8+DQorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIxODg2Ii8+DQorCQkJCQk8dmFsIG89ImY4YmExIiB2PSIxMTM2Ii8+DQorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSIxMTY5Ii8+DQorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSIxNDAzIi8+DQorCQkJCQk8dmFsIG89ImZiNWQxIiB2PSIxMzE2Ii8+DQorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSItMTA0MSIvPg0KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iLTExOTAiLz4NCisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9Ii0xNjA5Ii8+DQorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSItMTk5Ii8+DQorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSItMjUyIi8+DQorCQkJCQk8dmFsIG89IjEwMGEzYiIgdj0iNTg1Ii8+DQorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iMTA2OSIvPg0KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjE5NzMiLz4NCisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIxODMxIi8+DQorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iMTEyNyIvPg0KKwkJCQkJPHZhbCBvPSIxMDUwOGQiIHY9IjE3NjciLz4NCisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSIxMzQzIi8+DQorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iMTU2NCIvPg0KKwkJCQkJPHZhbCBvPSIxMDdhYmQiIHY9Ijg0OSIvPg0KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9IjgwNSIvPg0KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9IjEwOTMiLz4NCisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSI4ODAiLz4NCisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSIxMjU0Ii8+DQorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iMjY2NCIvPg0KKwkJCQkJPHZhbCBvPSIxMGNmMWUiIHY9IjEzNjgiLz4NCisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSIxMDA5Ii8+DQorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMjA4Ii8+DQorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iMjIiLz4NCisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSIxMTQyIi8+DQorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iMjg2Ii8+DQorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iLTExNjgiLz4NCisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSI3MTIiLz4NCisJCQkJCTx2YWwgbz0iMTEzZmIwIiB2PSIyMjciLz4NCisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSIyMzYiLz4NCisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSIzNzIiLz4NCisJCQkJCTx2YWwgbz0iMTE2OWM2IiB2PSIxNDQxIi8+DQorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iMjAxNSIvPg0KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9IjEyMTEiLz4NCisJCQkJCTx2YWwgbz0iMTE5M2Y3IiB2PSIxMjg0Ii8+DQorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iMzY5Ii8+DQorCQkJCQk8dmFsIG89IjExYjAxNyIgdj0iLTMxMCIvPg0KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9Ii04MDIiLz4NCisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSI3ODEiLz4NCisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSI0OTEiLz4NCisJCQkJCTx2YWwgbz0iMTFlODU3IiB2PSIxMDIzIi8+DQorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iNTE2Ii8+DQorCQkJCQk8dmFsIG89IjEyMDU3OCIgdj0iMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSIyIi8+DQorCQkJCQk8dmFsIG89IjEyMmZhNiIgdj0iMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyNTlkNSIgdj0iMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSItMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9Ii0xIi8+DQorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iLTEiLz4NCisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSItMSIvPg0KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9Ii0xIi8+DQorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMmM5NTQiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSIxIi8+DQorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iMiIvPg0KKwkJCQkJPHZhbCBvPSIxMmYzODYiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSIxIi8+DQorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iMSIvPg0KKwkJCQkJPHZhbCBvPSIxMzFkYjciIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSIxIi8+DQorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY3Nzg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9IjIyNzQiLz4NCisJCQkJCTx2YWwgbz0iMTc3NGEzIiB2PSIxNzc1Ii8+DQorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iMTE1MyIvPg0KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9Ijc2OSIvPg0KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9Ii04NDYiLz4NCisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSItMjM2MiIvPg0KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9Ii0yOTYxIi8+DQorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iLTI1MTkiLz4NCisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSItMjQ0NyIvPg0KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9Ii0yODY1Ii8+DQorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iLTIyNzYiLz4NCisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSItMTI1MCIvPg0KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9Ii03MTYiLz4NCisJCQkJCTx2YWwgbz0iMTgxZDZlIiB2PSItMTQ4OSIvPg0KKwkJCQkJPHZhbCBvPSIxODJiN2YiIHY9Ii0yMDA0Ii8+DQorCQkJCQk8dmFsIG89IjE4Mzk4ZiIgdj0iLTEwNTUiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSItOTc4Ii8+DQorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iLTEyNjkiLz4NCisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSItMzE3MCIvPg0KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9Ii0yNjY4Ii8+DQorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iLTI1NDAiLz4NCisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSItMjM3NyIvPg0KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9Ii0xMTI2Ii8+DQorCQkJCQk8dmFsIG89IjE4YjgwZCIgdj0iMTIxOSIvPg0KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9Ii0xMDYxIi8+DQorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iLTE1MTkiLz4NCisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSItMTI4NCIvPg0KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9Ii0xOTAyIi8+DQorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iLTE2MjMiLz4NCisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSItNzc4Ii8+DQorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iLTE3MzAiLz4NCisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSItMTc0NSIvPg0KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9Ii0xODcyIi8+DQorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iLTEyMDciLz4NCisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSItMjExIi8+DQorCQkJCQk8dmFsIG89IjE5NjBkNyIgdj0iMTYxOSIvPg0KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9Ii03NjQiLz4NCisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSItODI3Ii8+DQorCQkJCQk8dmFsIG89IjE5OGIwZiIgdj0iNDAiLz4NCisJCQkJCTx2YWwgbz0iMTk5OTFmIiB2PSItMTk5Ii8+DQorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iLTk2NyIvPg0KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9Ii02ODAiLz4NCisJCQkJCTx2YWwgbz0iMTlkMTVlIiB2PSItMzg1Ii8+DQorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iLTI0MSIvPg0KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9IjM3MSIvPg0KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9IjQ3MSIvPg0KKwkJCQkJPHZhbCBvPSIxOWZiOGUiIHY9IjYxIi8+DQorCQkJCQk8dmFsIG89IjFhMDlhMCIgdj0iLTI0NDAiLz4NCisJCQkJCTx2YWwgbz0iMWExN2FlIiB2PSItMzQ0NyIvPg0KKwkJCQkJPHZhbCBvPSIxYTI1YmUiIHY9Ii0zODYyIi8+DQorCQkJCQk8dmFsIG89IjFhMzNjZCIgdj0iLTE2NTciLz4NCisJCQkJCTx2YWwgbz0iMWE0MWRkIiB2PSItMjI3MyIvPg0KKwkJCQkJPHZhbCBvPSIxYTRmZWQiIHY9Ii00MTMyIi8+DQorCQkJCQk8dmFsIG89IjFhNWUwOCIgdj0iLTM3MzUiLz4NCisJCQkJCTx2YWwgbz0iMWE2YzA1IiB2PSItMjY1NSIvPg0KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9Ii0zMjg2Ii8+DQorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iLTMzNzciLz4NCisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSItMjcwNyIvPg0KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9Ii0xOTgwIi8+DQorCQkJCQk8dmFsIG89IjFhYjI1NSIgdj0iLTc5NyIvPg0KKwkJCQkJPHZhbCBvPSIxYWMwNjUiIHY9Ii0yMDQ2Ii8+DQorCQkJCQk8dmFsIG89IjFhY2U3NSIgdj0iLTI3OTMiLz4NCisJCQkJCTx2YWwgbz0iMWFkYzg3IiB2PSItMTkzOSIvPg0KKwkJCQkJPHZhbCBvPSIxYWVhOTYiIHY9Ii0yMDkyIi8+DQorCQkJCQk8dmFsIG89IjFhZjhhNyIgdj0iLTIyMTEiLz4NCisJCQkJCTx2YWwgbz0iMWIwNmI3IiB2PSItMjY3OSIvPg0KKwkJCQkJPHZhbCBvPSIxYjE0YzYiIHY9Ii0yNTMwIi8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNDUzIi8+DQorCQkJCQk8dmFsIG89IjFjODI3MCIgdj0iLTE1NyIvPg0KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjExNDMiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSItMTQ2Ii8+DQorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iLTEwMDIiLz4NCisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSItMTQwMiIvPg0KKwkJCQkJPHZhbCBvPSIxY2M4YzEiIHY9IjI5NDkiLz4NCisJCQkJCTx2YWwgbz0iMWNkNmQwIiB2PSIyMjI5Ii8+DQorCQkJCQk8dmFsIG89IjFjZTRkZSIgdj0iMTAyMiIvPg0KKwkJCQkJPHZhbCBvPSIxY2YyZjAiIHY9Ii0xNjI4Ii8+DQorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iLTE4MzUiLz4NCisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSItMjExIi8+DQorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iLTc2NyIvPg0KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9Ii03OTIiLz4NCisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSIxNzMiLz4NCisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI3NzYiLz4NCisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIxMjQ5Ii8+DQorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iLTk1NyIvPg0KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9Ii05MTEiLz4NCisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSItMjQzIi8+DQorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iLTY1Ii8+DQorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iLTMwOCIvPg0KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9Ii04MTEiLz4NCisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSItODA2Ii8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iLTk1MiIvPg0KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9Ii03MTYiLz4NCisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSItMTYxOCIvPg0KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9Ii0xOTEwIi8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iLTE4MDkiLz4NCisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSItMjIyNCIvPg0KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9Ii0yMjcyIi8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iLTIzMTciLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSItMjI4MyIvPg0KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9Ii0yMzM0Ii8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iLTE4NjAiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSItMjEzOSIvPg0KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9Ii0yMjA2Ii8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iLTI5NiIvPg0KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9Ii00NDkiLz4NCisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSItMTQyIi8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iLTQyMiIvPg0KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9Ii0zNjUiLz4NCisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSItNTgxIi8+DQorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iLTI2MyIvPg0KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9Ii0zMjUiLz4NCisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSItMTQyIi8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iLTM1NSIvPg0KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9Ii0zMTAiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSI0OTYiLz4NCisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSI2NjAiLz4NCisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxMjQ2Ii8+DQorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMjg4OSIvPg0KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjE1MzIiLz4NCisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSItMTQzIi8+DQorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iLTUxOCIvPg0KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjIyNSIvPg0KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9Ii0xNjY3Ii8+DQorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iLTIzMzAiLz4NCisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSItMTcyNyIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9Ii0xNDg5Ii8+DQorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iLTE1MTUiLz4NCisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSItNDc2Ii8+DQorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iLTE5MyIvPg0KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjEyOCIvPg0KKwkJCQkJPHZhbCBvPSIxZmY4NTUiIHY9IjM3NiIvPg0KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9IjI4NzIiLz4NCisJCQkJCTx2YWwgbz0iMjAxNDc1IiB2PSI0MDgiLz4NCisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSIxOTIzIi8+DQorCQkJCQk8dmFsIG89IjIwMzA5NSIgdj0iMTgzMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9IjE3OTgiLz4NCisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSIzMzQiLz4NCisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSIxMjYwIi8+DQorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iMTgxNSIvPg0KKwkJCQkJPHZhbCBvPSIyMDc2ZTYiIHY9IjIyNzIiLz4NCisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSIyNjIiLz4NCisJCQkJCTx2YWwgbz0iMjA5MzA2IiB2PSItMzg3Ii8+DQorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iLTYxMyIvPg0KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9Ii0yNTEiLz4NCisJCQkJCTx2YWwgbz0iMjBiZDM3IiB2PSItODg1Ii8+DQorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iNTUxIi8+DQorCQkJCQk8dmFsIG89IjIwZDk1NyIgdj0iNDgiLz4NCisJCQkJCTx2YWwgbz0iMjBlNzY3IiB2PSItOTgyIi8+DQorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iLTE2MTIiLz4NCisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSItMTEyNSIvPg0KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9Ii0zODEiLz4NCisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSItNDQxIi8+DQorCQkJCQk8dmFsIG89IjIxMmRiNSIgdj0iNzEiLz4NCisJCQkJCTx2YWwgbz0iMjEzYmM1IiB2PSIxMDIwIi8+DQorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iNzYwIi8+DQorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iLTMxOSIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9Ii0xMTQ0Ii8+DQorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iMzAyIi8+DQorCQkJCQk8dmFsIG89IjIxODIxNyIgdj0iLTMxOSIvPg0KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9Ii01ODIiLz4NCisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSI0MDgiLz4NCisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSIxMDMxIi8+DQorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iMTEzOSIvPg0KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjIwODIiLz4NCisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSItMTIwMiIvPg0KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjYyMiIvPg0KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjQ1NiIvPg0KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9Ii03MzYiLz4NCisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSItODE4Ii8+DQorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMTY4NCIvPg0KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjMwNyIvPg0KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9Ii04MDEiLz4NCisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSItMTI1NiIvPg0KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjMzMDgiLz4NCisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSI1MDYiLz4NCisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSI2MzkiLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxOTYzIi8+DQorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMjg2NyIvPg0KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9Ii04MzEiLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSItMjcwIi8+DQorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjIwMTAiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIzNDA4Ii8+DQorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMzE5MCIvPg0KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9Ii0xODciLz4NCisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSItMjI1Ii8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iNTMxIi8+DQorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iLTgyMyIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjYyIi8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iMTA3OSIvPg0KKwkJCQkJPHZhbCBvPSIyMzQ0MTYiIHY9IjE1NDciLz4NCisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSI5MDAiLz4NCisJCQkJCTx2YWwgbz0iMjM2MDM3IiB2PSIxMTIiLz4NCisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSIxNzgwIi8+DQorCQkJCQk8dmFsIG89IjIzN2M1NyIgdj0iMTQwNyIvPg0KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9IjI5OCIvPg0KKwkJCQkJPHZhbCBvPSIyMzk4ODEiIHY9IjU2NSIvPg0KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9Ii0zMTEiLz4NCisJCQkJCTx2YWwgbz0iMjNiNDk1IiB2PSItNjU3Ii8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iMTY4Ii8+DQorCQkJCQk8dmFsIG89IjIzZDBiNSIgdj0iNjQ3Ii8+DQorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iMTQyNyIvPg0KKwkJCQkJPHZhbCBvPSIyM2VjZDUiIHY9IjgyOSIvPg0KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9Ii01Ii8+DQorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iMTE5NyIvPg0KKwkJCQkJPHZhbCBvPSIyNDE3MDYiIHY9IjM3NTEiLz4NCisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSIyOTkxIi8+DQorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iMjgwMSIvPg0KKwkJCQkJPHZhbCBvPSIyNDQxMzciIHY9Ii0xMTg4Ii8+DQorCQkJCQk8dmFsIG89IjI0NGY0NiIgdj0iLTgyOCIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9Ii03OTkiLz4NCisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSI1NyIvPg0KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9IjQ2MDEiLz4NCisJCQkJCTx2YWwgbz0iMjQ5NTdlIiB2PSIxOTExIi8+DQorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iNzk5Ii8+DQorCQkJCQk8dmFsIG89IjI0YjE5YyIgdj0iLTk3MiIvPg0KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9Ii03MDgiLz4NCisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSItNzkwIi8+DQorCQkJCQk8dmFsIG89IjI0ZGJjZCIgdj0iLTQ5MCIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9Ii0xMzE2Ii8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iLTgyNSIvPg0KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9Ii0xMDEyIi8+DQorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iLTExNzgiLz4NCisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSItMzUiLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iMTM1MiIvPg0KKwkJCQkJPHZhbCBvPSIyNTRjNjciIHY9IjEwNTkiLz4NCisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSIxMjkwIi8+DQorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iMjA3OSIvPg0KKwkJCQkJPHZhbCBvPSIyNTc2OTciIHY9IjM2MTgiLz4NCisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSItNDY4NCIvPg0KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9Ii0yNDcwIi8+DQorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iLTU1NiIvPg0KKwkJCQkJPHZhbCBvPSIyNWFlZDciIHY9IjE4OSIvPg0KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9IjI2MCIvPg0KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9IjgxNiIvPg0KKwkJCQkJPHZhbCBvPSIyNWQ5MDciIHY9IjI0ODkiLz4NCisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSIyNzMyIi8+DQorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iMjIzNCIvPg0KKwkJCQkJPHZhbCBvPSIyNjAzMzgiIHY9IjU3Ii8+DQorCQkJCQk8dmFsIG89IjI2MTE0OSIgdj0iMTIxOSIvPg0KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9IjYzMiIvPg0KKwkJCQkJPHZhbCBvPSIyNjJkNjgiIHY9Ii0xMzYwIi8+DQorCQkJCQk8dmFsIG89IjI2M2I4MyIgdj0iMzgiLz4NCisJCQkJCTx2YWwgbz0iMjY0OTg2IiB2PSItOTgwIi8+DQorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iLTE1MDEiLz4NCisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSItMjExOSIvPg0KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9Ii0xNjE4Ii8+DQorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iLTEzMTQiLz4NCisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSItNDMyIi8+DQorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iMzA5Ii8+DQorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iNjg1Ii8+DQorCQkJCQk8dmFsIG89IjI2YmEwNiIgdj0iMTY5MiIvPg0KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9IjE4OTkiLz4NCisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSIzNjIyIi8+DQorCQkJCQk8dmFsIG89IjI2ZTQzNiIgdj0iMjcwOSIvPg0KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9IjMwMzciLz4NCisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSIyODk4Ii8+DQorCQkJCQk8dmFsIG89IjI3MGU2NyIgdj0iMzI1MSIvPg0KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9IjE4NiIvPg0KKwkJCQkJPHZhbCBvPSIyNzJhODciIHY9Ii02MzYiLz4NCisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSItNDIxIi8+DQorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iLTcyOSIvPg0KKwkJCQkJPHZhbCBvPSIyNzU0YjkiIHY9Ii05NzgiLz4NCisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSIyNjcwIi8+DQorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iMTI1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNzdlZTciIHY9Ii00OTYiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSI0MjQ2MDAiIGg9IjNkYzFhOGRlIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iLTQzMTMiLz4NCisJCQkJCTx2YWwgbz0iZTA4IiB2PSItNDE2MyIvPg0KKwkJCQkJPHZhbCBvPSIxYzMyIiB2PSItNDEwMiIvPg0KKwkJCQkJPHZhbCBvPSIyYTNjIiB2PSItNDA5MSIvPg0KKwkJCQkJPHZhbCBvPSIzODM1IiB2PSItMzk4MiIvPg0KKwkJCQkJPHZhbCBvPSI0NjQ1IiB2PSItMzkzNCIvPg0KKwkJCQkJPHZhbCBvPSI1NDU1IiB2PSItNDQzOSIvPg0KKwkJCQkJPHZhbCBvPSI2MjY1IiB2PSItNTMyMyIvPg0KKwkJCQkJPHZhbCBvPSI3MDc1IiB2PSItNjI5OCIvPg0KKwkJCQkJPHZhbCBvPSI3ZTg1IiB2PSItNzMzMiIvPg0KKwkJCQkJPHZhbCBvPSI4Yzk2IiB2PSItNzU0MSIvPg0KKwkJCQkJPHZhbCBvPSI5YWE1IiB2PSItNzI0OCIvPg0KKwkJCQkJPHZhbCBvPSJhOGI2IiB2PSItNjg2OSIvPg0KKwkJCQkJPHZhbCBvPSJiNmM1IiB2PSItNjQ1NCIvPg0KKwkJCQkJPHZhbCBvPSJjNGQ3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSJkMzBiIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSJlMGY2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSJlZjA2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyNyIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMTE5MzciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjEyNzQ2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIxMzU1NiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMTQzNjYiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjE1MTgxIiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSIxNWY4NSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMTZkOTUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjE3YmE0IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxODliNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMTk3YzQiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjFhNWQ1IiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSIxYjNlNiIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iMWMxZjYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjFkMDA1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxZGUxNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMWVjMjUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjFmYTM2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyMDg0NSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iMjE2NTYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjIyNDY1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3NiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMjQwODYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjI0ZTk5IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIyNWNhNyIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMjZhYjciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjI3OGM2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMmJmMTUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjJjZDI1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyZGIzNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjJmNzU1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzMDU2NiIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iMzEzNzUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjMyMTllIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzMmY5NiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMzNkYTYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjM0YmI2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzNTlkZSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMzY3ZDYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjM3NWU2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMzkyMWUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjNhMDE2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzZDg1NiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iM2U2NjciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjNmNDgxIiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI0MDI4NSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iNDEwOTUiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjQxZWE1IiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI0MmNiNSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iNDNhYzUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjQ0OGQ1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0NTZlNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNDY0ZjUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjQ4MGZmIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNDlkMWQiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjRhYjQ2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNGM3NjkiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjRkNTc3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNGYxOTYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjRmZmE2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNTFiYzYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjUyOWQ2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjVhODY3IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNWM0ODciIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjVkMjk2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNjE4ZTciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjYyNmY3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNjQzMTciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjY1MTI3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2NWYzNyIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNjZkNDYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjY3YjU3IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI2ODk2NyIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNjk3ODIiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjZhNTg2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI2YjM5NSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNmMxYTYiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjZjZmI1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI2ZGRjNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNmViZDYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNzE2MDciIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjcyNDE3IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI3MzIyNyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNzQwMzciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNzZhNjMiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijc3ODczIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNzk0OGYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjdhMjlmIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iODEzMmEiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iODNkNWEiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4NTk3YSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iODY3OGIiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4ODNhYyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iODkxYmIiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89Ijg5ZmNhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4YWRkYSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOGJiZWIiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4ZDgwYiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOGU2MWEiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5MDIzYSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOTEwNGEiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjkxZTVhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iOTNhODQiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iOThlZDQiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI5YWFmNSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOWI5MDYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjljNzE2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5ZDUyNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOWUzMzYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjlmMTQ1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5ZmY1NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iYTBkNjUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89ImExYjc3IiB2PSItNjQ2MCIvPg0KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iLTM1NDYiLz4NCisJCQkJCTx2YWwgbz0iYTM3OTUiIHY9Ii05ODYiLz4NCisJCQkJCTx2YWwgbz0iYTQ1YTciIHY9IjY5NyIvPg0KKwkJCQkJPHZhbCBvPSJhNTNiNiIgdj0iNzc2Ii8+DQorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSI5MjUiLz4NCisJCQkJCTx2YWwgbz0iYTZmZDYiIHY9IjEyNSIvPg0KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iNDU2Ii8+DQorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSI5MDMiLz4NCisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjI3OCIvPg0KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMjciLz4NCisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjQzIi8+DQorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIxNzMiLz4NCisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9Ijk0NyIvPg0KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iNzI4Ii8+DQorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSItNDUyIi8+DQorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSItMTE3Ii8+DQorCQkJCQk8dmFsIG89ImIwYTg1IiB2PSIyMyIvPg0KKwkJCQkJPHZhbCBvPSJiMjZhNiIgdj0iMTgyIi8+DQorCQkJCQk8dmFsIG89ImIzNGI2IiB2PSItMTUyIi8+DQorCQkJCQk8dmFsIG89ImI0MmM2IiB2PSItNDIzIi8+DQorCQkJCQk8dmFsIG89ImI1MGQ2IiB2PSItNzA1Ii8+DQorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSItNzkwIi8+DQorCQkJCQk8dmFsIG89ImI2Y2Y2IiB2PSItMTU3NSIvPg0KKwkJCQkJPHZhbCBvPSJiN2IwNyIgdj0iLTIwMjciLz4NCisJCQkJCTx2YWwgbz0iYjg5MTciIHY9Ii0xNzU3Ii8+DQorCQkJCQk8dmFsIG89ImI5NzI4IiB2PSItMTcyMiIvPg0KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iLTE5MDEiLz4NCisJCQkJCTx2YWwgbz0iYmIzNDciIHY9Ii03NDEiLz4NCisJCQkJCTx2YWwgbz0iYmMxNTciIHY9Ii04MTIiLz4NCisJCQkJCTx2YWwgbz0iYmNmNjciIHY9Ii04OTEiLz4NCisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjY1MiIvPg0KKwkJCQkJPHZhbCBvPSJiZWI4NiIgdj0iNDExIi8+DQorCQkJCQk8dmFsIG89ImJmOTk1IiB2PSI1MTYiLz4NCisJCQkJCTx2YWwgbz0iYzA3YTYiIHY9IjM5OCIvPg0KKwkJCQkJPHZhbCBvPSJjMTViNSIgdj0iMzgyIi8+DQorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI0NzAiLz4NCisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjU5MSIvPg0KKwkJCQkJPHZhbCBvPSJjM2ZlNiIgdj0iMjY3Ii8+DQorCQkJCQk8dmFsIG89ImM0ZGY1IiB2PSI3NzAiLz4NCisJCQkJCTx2YWwgbz0iYzVjMDYiIHY9IjE2NCIvPg0KKwkJCQkJPHZhbCBvPSJjNmExNiIgdj0iNDM4Ii8+DQorCQkJCQk8dmFsIG89ImM3ODI2IiB2PSItNDMiLz4NCisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjcyIi8+DQorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSIyNDkiLz4NCisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjIwMSIvPg0KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iMTE1Ii8+DQorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSItNDI1Ii8+DQorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSItMjI5Ii8+DQorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSItMjg0Ii8+DQorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSItMjQ3Ii8+DQorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSItMTM1Ii8+DQorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSItNTQiLz4NCisJCQkJCTx2YWwgbz0iZDEyZDciIHY9Ijk2Ii8+DQorCQkJCQk8dmFsIG89ImQyMGU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImQyZjAyIiB2PSIxNiIvPg0KKwkJCQkJPHZhbCBvPSJkM2QwNSIgdj0iNTk4Ii8+DQorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSI3MjEiLz4NCisJCQkJCTx2YWwgbz0iZDU5MjYiIHY9IjgxOCIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMTA2NyIvPg0KKwkJCQkJPHZhbCBvPSJkNzU0NiIgdj0iMTI0NSIvPg0KKwkJCQkJPHZhbCBvPSJkODM1NSIgdj0iLTExNyIvPg0KKwkJCQkJPHZhbCBvPSJkOTE2NiIgdj0iLTcyMSIvPg0KKwkJCQkJPHZhbCBvPSJkOWY3NSIgdj0iLTE1MDQiLz4NCisJCQkJCTx2YWwgbz0iZGFkODciIHY9Ii0yMDg0Ii8+DQorCQkJCQk8dmFsIG89ImRiYjk3IiB2PSItMjU1NCIvPg0KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iLTIzNDUiLz4NCisJCQkJCTx2YWwgbz0iZGQ3YjciIHY9Ii0yOTIwIi8+DQorCQkJCQk8dmFsIG89ImRlNWM2IiB2PSItMjcxMiIvPg0KKwkJCQkJPHZhbCBvPSJkZjNkNyIgdj0iLTI4NTgiLz4NCisJCQkJCTx2YWwgbz0iZTAxZDciIHY9Ii0yOTI4Ii8+DQorCQkJCQk8dmFsIG89ImUwZmU1IiB2PSItMjgwMyIvPg0KKwkJCQkJPHZhbCBvPSJlMWRmNSIgdj0iLTMwMzIiLz4NCisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9Ii00MDE3Ii8+DQorCQkJCQk8dmFsIG89ImUzYTE0IiB2PSItMzkxOCIvPg0KKwkJCQkJPHZhbCBvPSJlNDgyNCIgdj0iLTM0MTIiLz4NCisJCQkJCTx2YWwgbz0iZTU2MzQiIHY9Ii0zNDQxIi8+DQorCQkJCQk8dmFsIG89ImU2NDQ0IiB2PSItMjU2MSIvPg0KKwkJCQkJPHZhbCBvPSJlNzI1NSIgdj0iLTIxMzkiLz4NCisJCQkJCTx2YWwgbz0iZTgwNmYiIHY9Ii0xNzY1Ii8+DQorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSItNDY1Ii8+DQorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSItNzAyIi8+DQorCQkJCQk8dmFsIG89ImVhYTlmIiB2PSItNjQ3Ii8+DQorCQkJCQk8dmFsIG89ImViOGFlIiB2PSItNjc2Ii8+DQorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSItNTA5Ii8+DQorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSItMjE1MCIvPg0KKwkJCQkJPHZhbCBvPSJlZTJkZiIgdj0iLTIzNTUiLz4NCisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9Ii0zMTcxIi8+DQorCQkJCQk8dmFsIG89ImVmZjAxIiB2PSItNDAzMSIvPg0KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iLTQzMzgiLz4NCisJCQkJCTx2YWwgbz0iZjFiMjAiIHY9Ii00NjUxIi8+DQorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSItNDY2OCIvPg0KKwkJCQkJPHZhbCBvPSJmMzc0MCIgdj0iLTQzNDYiLz4NCisJCQkJCTx2YWwgbz0iZjQ1NTEiIHY9Ii00NTcxIi8+DQorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSItNDkyOSIvPg0KKwkJCQkJPHZhbCBvPSJmNjE3MiIgdj0iLTQ2MDciLz4NCisJCQkJCTx2YWwgbz0iZjZmODAiIHY9Ii00ODY2Ii8+DQorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSItNDMwOCIvPg0KKwkJCQkJPHZhbCBvPSJmOGJhMSIgdj0iLTM4OTciLz4NCisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9Ii0zNzg0Ii8+DQorCQkJCQk8dmFsIG89ImZhN2MwIiB2PSItMjk4OCIvPg0KKwkJCQkJPHZhbCBvPSJmYjVkMSIgdj0iLTMwOTkiLz4NCisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9Ii0zMzM1Ii8+DQorCQkJCQk8dmFsIG89ImZkMWZiIiB2PSItMjY4NiIvPg0KKwkJCQkJPHZhbCBvPSJmZTAwYiIgdj0iLTI1MjIiLz4NCisJCQkJCTx2YWwgbz0iZmVlMWMiIHY9Ii0yMDc0Ii8+DQorCQkJCQk8dmFsIG89ImZmYzJjIiB2PSItMTk4OSIvPg0KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9Ii0xNzg4Ii8+DQorCQkJCQk8dmFsIG89IjEwMTg0YyIgdj0iLTE3OTUiLz4NCisJCQkJCTx2YWwgbz0iMTAyNjViIiB2PSItMjA3NSIvPg0KKwkJCQkJPHZhbCBvPSIxMDM0NmMiIHY9Ii0yNjk4Ii8+DQorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iLTM5MzIiLz4NCisJCQkJCTx2YWwgbz0iMTA1MDhkIiB2PSItNDQwNiIvPg0KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9Ii00MzY2Ii8+DQorCQkJCQk8dmFsIG89IjEwNmNhZCIgdj0iLTQ2OTIiLz4NCisJCQkJCTx2YWwgbz0iMTA3YWJkIiB2PSItNDMwMiIvPg0KKwkJCQkJPHZhbCBvPSIxMDg4Y2QiIHY9Ii0zOTI3Ii8+DQorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iLTQxMDEiLz4NCisJCQkJCTx2YWwgbz0iMTBhNGVkIiB2PSItNDE4NyIvPg0KKwkJCQkJPHZhbCBvPSIxMGIyZmUiIHY9Ii00MzQyIi8+DQorCQkJCQk8dmFsIG89IjEwYzEwZCIgdj0iLTQxNjIiLz4NCisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSItNDQ1NiIvPg0KKwkJCQkJPHZhbCBvPSIxMGRkMmUiIHY9Ii00MTMyIi8+DQorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iLTQ0OTkiLz4NCisJCQkJCTx2YWwgbz0iMTBmOTRlIiB2PSItMzg4MiIvPg0KKwkJCQkJPHZhbCBvPSIxMTA3NWUiIHY9Ii0zMjk1Ii8+DQorCQkJCQk8dmFsIG89IjExMTU2ZCIgdj0iLTI4NjMiLz4NCisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSItMjY2OCIvPg0KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9Ii0xNzc4Ii8+DQorCQkJCQk8dmFsIG89IjExM2ZiMCIgdj0iLTE4MTAiLz4NCisJCQkJCTx2YWwgbz0iMTE0ZGE2IiB2PSItMTgyOSIvPg0KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9Ii0xODAwIi8+DQorCQkJCQk8dmFsIG89IjExNjljNiIgdj0iLTE1OTUiLz4NCisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSItMjA1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMTg1ZTgiIHY9Ii0yOTYxIi8+DQorCQkJCQk8dmFsIG89IjExOTNmNyIgdj0iLTM2MjciLz4NCisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSItNDgzMCIvPg0KKwkJCQkJPHZhbCBvPSIxMWIwMTciIHY9Ii00Mjk2Ii8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iLTUyNTciLz4NCisJCQkJCTx2YWwgbz0iMTFjYzM3IiB2PSItNDQwOCIvPg0KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9Ii00MzI2Ii8+DQorCQkJCQk8dmFsIG89IjExZTg1NyIgdj0iLTQ0MjAiLz4NCisJCQkJCTx2YWwgbz0iMTFmNjY3IiB2PSItMzk1MCIvPg0KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9Ii00Ii8+DQorCQkJCQk8dmFsIG89IjEyMTM4NiIgdj0iLTQiLz4NCisJCQkJCTx2YWwgbz0iMTIyMTk2IiB2PSItNCIvPg0KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9Ii0zIi8+DQorCQkJCQk8dmFsIG89IjEyM2RiNSIgdj0iLTMiLz4NCisJCQkJCTx2YWwgbz0iMTI0YmM1IiB2PSItMyIvPg0KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9Ii0yIi8+DQorCQkJCQk8dmFsIG89IjEyNjdlNCIgdj0iLTIiLz4NCisJCQkJCTx2YWwgbz0iMTI3NjAwIiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMjgzMDUiIHY9Ii0yIi8+DQorCQkJCQk8dmFsIG89IjEyOTExNSIgdj0iLTIiLz4NCisJCQkJCTx2YWwgbz0iMTI5ZjI1IiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMmFkMzUiIHY9Ii0yIi8+DQorCQkJCQk8dmFsIG89IjEyYmI0NSIgdj0iLTEiLz4NCisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMmQ3NjYiIHY9Ii0yIi8+DQorCQkJCQk8dmFsIG89IjEyZTU3NSIgdj0iLTMiLz4NCisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMzAxOTYiIHY9Ii00Ii8+DQorCQkJCQk8dmFsIG89IjEzMGZhNiIgdj0iLTMiLz4NCisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSItMyIvPg0KKwkJCQkJPHZhbCBvPSIxMzJiYzUiIHY9Ii0zIi8+DQorCQkJCQk8dmFsIG89IjEzMzlkNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzQ3ZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM1NWY0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzNjQwNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzcyMTQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM4MDI0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzOGUzMyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzljNDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNhYTU0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzYjg2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2M2N2UiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNkNDhlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZTI5ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2YwYWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNmZWJmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MGNjZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDFhZGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQyOGVmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MzZmZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDQ1MGYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ1MzFmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0NjEzMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDZmNDAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ3ZDQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0OGI1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDk5NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRhNzc1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0YjU4NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGMzOTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRkMWE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZGZiNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGVkYzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRmYmQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MDllNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTE3ZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTUyNjA1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MzQxNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTQyMjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU1MDM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1NWU0NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTZjNTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU3YTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ODg3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTk2ODYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVhNDk1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1YjJhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWMwYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVjZWM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ZGNkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWVhZTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVmOGY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MDcwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjE1MTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYyMzI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MzEzNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjNmNDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY0ZDU3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2NWI2NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjY5ODIiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY3Nzg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ODU5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjkzYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZhMWI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2YWZjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmJkZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZjYmU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ZDlmNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmU4MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZmNjE2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MDQyOSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzEyMzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTcyMDQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MmU1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzNjNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc0YTc3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3NTg4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzY2OTQiIHY9Ii02ODY4Ii8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iLTY3OTAiLz4NCisJCQkJCTx2YWwgbz0iMTc4MmIzIiB2PSItNzI1MiIvPg0KKwkJCQkJPHZhbCBvPSIxNzkwYzUiIHY9Ii02NzM0Ii8+DQorCQkJCQk8dmFsIG89IjE3OWVkNCIgdj0iLTYwMzAiLz4NCisJCQkJCTx2YWwgbz0iMTdhY2U0IiB2PSItNTg5MiIvPg0KKwkJCQkJPHZhbCBvPSIxN2JhZmQiIHY9Ii02MDY2Ii8+DQorCQkJCQk8dmFsIG89IjE3YzkwZiIgdj0iLTU0ODYiLz4NCisJCQkJCTx2YWwgbz0iMTdkNzFlIiB2PSItNTQ0NCIvPg0KKwkJCQkJPHZhbCBvPSIxN2U1MmYiIHY9Ii01MzM5Ii8+DQorCQkJCQk8dmFsIG89IjE3ZjMzZiIgdj0iLTQ5ODMiLz4NCisJCQkJCTx2YWwgbz0iMTgwMTRmIiB2PSItNTE5MCIvPg0KKwkJCQkJPHZhbCBvPSIxODBmNWYiIHY9Ii02MzEzIi8+DQorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iLTY4MzkiLz4NCisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSItNzg1MyIvPg0KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9Ii0xMzUwNyIvPg0KKwkJCQkJPHZhbCBvPSIxODQ3YTEiIHY9Ii0xMzM4MSIvPg0KKwkJCQkJPHZhbCBvPSIxODU1YWYiIHY9Ii0xMjc3OCIvPg0KKwkJCQkJPHZhbCBvPSIxODYzYzAiIHY9Ii0xMTg5MCIvPg0KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9Ii0xMjMzOCIvPg0KKwkJCQkJPHZhbCBvPSIxODdmZTAiIHY9Ii0xMTc3NCIvPg0KKwkJCQkJPHZhbCBvPSIxODhkZWYiIHY9Ii0xMjY0OSIvPg0KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9Ii0xMTg0OSIvPg0KKwkJCQkJPHZhbCBvPSIxOGI4MGQiIHY9Ii03NDcxIi8+DQorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iLTgxMjYiLz4NCisJCQkJCTx2YWwgbz0iMThkNDJjIiB2PSItNzY5NiIvPg0KKwkJCQkJPHZhbCBvPSIxOGUyM2IiIHY9Ii02NTM4Ii8+DQorCQkJCQk8dmFsIG89IjE4ZjA0YiIgdj0iLTYxNzUiLz4NCisJCQkJCTx2YWwgbz0iMThmZTVlIiB2PSItNTY2NCIvPg0KKwkJCQkJPHZhbCBvPSIxOTBjNzYiIHY9Ii00NDgwIi8+DQorCQkJCQk8dmFsIG89IjE5MWE4NiIgdj0iLTQzMDAiLz4NCisJCQkJCTx2YWwgbz0iMTkyODk2IiB2PSItNDI2MyIvPg0KKwkJCQkJPHZhbCBvPSIxOTM2YTYiIHY9Ii00MTE5Ii8+DQorCQkJCQk8dmFsIG89IjE5NDRiNyIgdj0iLTQxMDMiLz4NCisJCQkJCTx2YWwgbz0iMTk1MmM2IiB2PSItNDUxMSIvPg0KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9Ii01MTM1Ii8+DQorCQkJCQk8dmFsIG89IjE5NmVlNiIgdj0iLTYwMzgiLz4NCisJCQkJCTx2YWwgbz0iMTk3Y2Y4IiB2PSItNjM5MiIvPg0KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9Ii01ODk5Ii8+DQorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iLTY2OTAiLz4NCisJCQkJCTx2YWwgbz0iMTliNTQxIiB2PSItNjYwMyIvPg0KKwkJCQkJPHZhbCBvPSIxOWMzNGQiIHY9Ii02MTU5Ii8+DQorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iLTYxMjgiLz4NCisJCQkJCTx2YWwgbz0iMTlkZjgwIiB2PSItNjIyMCIvPg0KKwkJCQkJPHZhbCBvPSIxOWVkOTAiIHY9Ii02MDQ3Ii8+DQorCQkJCQk8dmFsIG89IjE5ZWViZSIgdj0iLTYwMDkiLz4NCisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSItMjI5NSIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9Ii0yNTQzIi8+DQorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iLTMwODUiLz4NCisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSItMzI2OSIvPg0KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9Ii0yMjY3Ii8+DQorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iLTIxNTkiLz4NCisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSItMTUzMiIvPg0KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9Ii0xNjc1Ii8+DQorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iLTk2MCIvPg0KKwkJCQkJPHZhbCBvPSIxYTdhMTUiIHY9Ii0xMTIyIi8+DQorCQkJCQk8dmFsIG89IjFhODgyNiIgdj0iLTEwNjEiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjM3IiB2PSItNTA1Ii8+DQorCQkJCQk8dmFsIG89IjFhYTQ0NSIgdj0iLTUzNiIvPg0KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9Ii05OTEiLz4NCisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSItMTgxOCIvPg0KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9Ii0yNTc0Ii8+DQorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iLTI4NDQiLz4NCisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSItMjYwOCIvPg0KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9Ii0yOTI4Ii8+DQorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iLTIxMTIiLz4NCisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSItMjA3NCIvPg0KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjM1NCIvPg0KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9IjQzOCIvPg0KKwkJCQkJPHZhbCBvPSIxYzkwN2UiIHY9IjM0MDgiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSIzMjY5Ii8+DQorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iMzY1NSIvPg0KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9IjM1MjEiLz4NCisJCQkJCTx2YWwgbz0iMWNjOGMxIiB2PSI1NDMxIi8+DQorCQkJCQk8dmFsIG89IjFjZDZkMCIgdj0iNTU2MCIvPg0KKwkJCQkJPHZhbCBvPSIxY2U0ZGUiIHY9IjU2NjAiLz4NCisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSI1NjIzIi8+DQorCQkJCQk8dmFsIG89IjFkMDEwOSIgdj0iNTg5NiIvPg0KKwkJCQkJPHZhbCBvPSIxZDBmMDYiIHY9IjY2NTYiLz4NCisJCQkJCTx2YWwgbz0iMWQxZDE1IiB2PSI2NjQ3Ii8+DQorCQkJCQk8dmFsIG89IjFkMmIyNSIgdj0iNjczMyIvPg0KKwkJCQkJPHZhbCBvPSIxZDM5MzUiIHY9IjY5MTQiLz4NCisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI2ODczIi8+DQorCQkJCQk8dmFsIG89IjFkNTU1NSIgdj0iNjY5MSIvPg0KKwkJCQkJPHZhbCBvPSIxZDYzNjYiIHY9IjU4MTQiLz4NCisJCQkJCTx2YWwgbz0iMWQ3MTc1IiB2PSI1NjE3Ii8+DQorCQkJCQk8dmFsIG89IjFkN2Y4NiIgdj0iNTYwOCIvPg0KKwkJCQkJPHZhbCBvPSIxZDhkOTUiIHY9Ii0zMjMwIi8+DQorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iLTM2NTYiLz4NCisJCQkJCTx2YWwgbz0iMWRhOWI2IiB2PSItMzYyMCIvPg0KKwkJCQkJPHZhbCBvPSIxZGI3YzciIHY9Ii0zNDQ5Ii8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iLTM2MDEiLz4NCisJCQkJCTx2YWwgbz0iMWRkM2U2IiB2PSItMzczNSIvPg0KKwkJCQkJPHZhbCBvPSIxZGUxZjUiIHY9Ii01OTk2Ii8+DQorCQkJCQk8dmFsIG89IjFkZjAwNiIgdj0iLTY3MTgiLz4NCisJCQkJCTx2YWwgbz0iMWRmZTE2IiB2PSItNjU4MyIvPg0KKwkJCQkJPHZhbCBvPSIxZTBjMjYiIHY9Ii02NzY3Ii8+DQorCQkJCQk8dmFsIG89IjFlMWEzNiIgdj0iLTY4MDAiLz4NCisJCQkJCTx2YWwgbz0iMWUyODQ3IiB2PSItNjUyNSIvPg0KKwkJCQkJPHZhbCBvPSIxZTM2NTkiIHY9Ii02MTcwIi8+DQorCQkJCQk8dmFsIG89IjFlNDQ2NyIgdj0iLTU2NzYiLz4NCisJCQkJCTx2YWwgbz0iMWU1MjgxIiB2PSItNDkxMSIvPg0KKwkJCQkJPHZhbCBvPSIxZTYwODYiIHY9Ii00OTExIi8+DQorCQkJCQk8dmFsIG89IjFlNmU5NiIgdj0iLTQ4MDEiLz4NCisJCQkJCTx2YWwgbz0iMWU3Y2E2IiB2PSItMTk4MiIvPg0KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9Ii0xODEwIi8+DQorCQkJCQk8dmFsIG89IjFlOThjNiIgdj0iLTE4MzQiLz4NCisJCQkJCTx2YWwgbz0iMWVhNmQ1IiB2PSItMjI1NiIvPg0KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9Ii0yMzI1Ii8+DQorCQkJCQk8dmFsIG89IjFlYzJmNiIgdj0iLTI2ODQiLz4NCisJCQkJCTx2YWwgbz0iMWVkMTA2IiB2PSItMjY3NSIvPg0KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9Ii0yNzc4Ii8+DQorCQkJCQk8dmFsIG89IjFlZWQyNiIgdj0iLTI2ODgiLz4NCisJCQkJCTx2YWwgbz0iMWVmYjM2IiB2PSItMjY1MCIvPg0KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9Ii0yNTU3Ii8+DQorCQkJCQk8dmFsIG89IjFmMTc1NiIgdj0iLTIzNTUiLz4NCisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSItMjMxOCIvPg0KKwkJCQkJPHZhbCBvPSIxZjMzNzYiIHY9Ii0yNTgyIi8+DQorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iLTI4MTEiLz4NCisJCQkJCTx2YWwgbz0iMWY0Zjk2IiB2PSItMzE4MiIvPg0KKwkJCQkJPHZhbCBvPSIxZjVkYTciIHY9Ii0zNTc4Ii8+DQorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iLTM1NDQiLz4NCisJCQkJCTx2YWwgbz0iMWY3OWM3IiB2PSItMzE0OCIvPg0KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9Ii0zMzQ1Ii8+DQorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iLTMxMzciLz4NCisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSItMjgwOSIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9Ii0yNTAxIi8+DQorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iLTI0OTMiLz4NCisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSItMjE1NyIvPg0KKwkJCQkJPHZhbCBvPSIxZmRjMzUiIHY9Ii0yMTM3Ii8+DQorCQkJCQk8dmFsIG89IjFmZWE0NSIgdj0iLTIxNTUiLz4NCisJCQkJCTx2YWwgbz0iMWZmODU1IiB2PSItMjQ5OCIvPg0KKwkJCQkJPHZhbCBvPSIyMDA2NjUiIHY9Ii0yMzY4Ii8+DQorCQkJCQk8dmFsIG89IjIwMTQ3NSIgdj0iLTM1MTMiLz4NCisJCQkJCTx2YWwgbz0iMjAyMjg2IiB2PSItNDU2NiIvPg0KKwkJCQkJPHZhbCBvPSIyMDMwOTUiIHY9Ii01MzQ1Ii8+DQorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iLTYwNTciLz4NCisJCQkJCTx2YWwgbz0iMjA0Y2I2IiB2PSItNTc5OSIvPg0KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9Ii01MzQxIi8+DQorCQkJCQk8dmFsIG89IjIwNjhkNiIgdj0iLTUzOTUiLz4NCisJCQkJCTx2YWwgbz0iMjA3NmU2IiB2PSItNTk3OSIvPg0KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9Ii02MDkwIi8+DQorCQkJCQk8dmFsIG89IjIwOTMwNiIgdj0iLTY3NzgiLz4NCisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSItNjM3OCIvPg0KKwkJCQkJPHZhbCBvPSIyMGFmMjYiIHY9Ii01NDczIi8+DQorCQkJCQk8dmFsIG89IjIwYmQzNyIgdj0iLTUzODIiLz4NCisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSItNDYwOCIvPg0KKwkJCQkJPHZhbCBvPSIyMGQ5NTciIHY9Ii00MzE2Ii8+DQorCQkJCQk8dmFsIG89IjIwZTc2NyIgdj0iLTQwNTUiLz4NCisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSItMzg2NyIvPg0KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9Ii0zNDgyIi8+DQorCQkJCQk8dmFsIG89IjIxMTE5NCIgdj0iLTMxMTYiLz4NCisJCQkJCTx2YWwgbz0iMjExZmE1IiB2PSItMzAxMCIvPg0KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9Ii0yOTQ0Ii8+DQorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iLTI4MTkiLz4NCisJCQkJCTx2YWwgbz0iMjE0OWQ2IiB2PSItMzY0NCIvPg0KKwkJCQkJPHZhbCBvPSIyMTU3ZTUiIHY9Ii00NDk5Ii8+DQorCQkJCQk8dmFsIG89IjIxNjVmNiIgdj0iLTU3OTUiLz4NCisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSItNjE5OCIvPg0KKwkJCQkJPHZhbCBvPSIyMTgyMTciIHY9Ii02MTc0Ii8+DQorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iLTYxMDIiLz4NCisJCQkJCTx2YWwgbz0iMjE5ZTM5IiB2PSItNjIxOCIvPg0KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9Ii01ODk4Ii8+DQorCQkJCQk8dmFsIG89IjIxYmE1NyIgdj0iLTU5ODYiLz4NCisJCQkJCTx2YWwgbz0iMjFjODY3IiB2PSItNTYzMyIvPg0KKwkJCQkJPHZhbCBvPSIyMWQ2NzciIHY9Ii02MjEwIi8+DQorCQkJCQk8dmFsIG89IjIxZTQ4NyIgdj0iLTU3ODMiLz4NCisJCQkJCTx2YWwgbz0iMjFmMjk2IiB2PSItNTcyNiIvPg0KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9Ii01NTM5Ii8+DQorCQkJCQk8dmFsIG89IjIyMGViNyIgdj0iLTU0MDgiLz4NCisJCQkJCTx2YWwgbz0iMjIxY2M2IiB2PSItNDYwOCIvPg0KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9Ii0zODc2Ii8+DQorCQkJCQk8dmFsIG89IjIyMzhlNyIgdj0iLTM2MTgiLz4NCisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSItMzI5MiIvPg0KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9Ii0xNjg1Ii8+DQorCQkJCQk8dmFsIG89IjIyNjMxNSIgdj0iLTIwNzIiLz4NCisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSItMjA1MCIvPg0KKwkJCQkJPHZhbCBvPSIyMjdmMzUiIHY9Ii0xNjcwIi8+DQorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iLTE3OTIiLz4NCisJCQkJCTx2YWwgbz0iMjI5YjU0IiB2PSItMzQ4NSIvPg0KKwkJCQkJPHZhbCBvPSIyMmE5NjUiIHY9Ii0zOTExIi8+DQorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iLTQ1NzgiLz4NCisJCQkJCTx2YWwgbz0iMjJjNTg2IiB2PSItNDc4OCIvPg0KKwkJCQkJPHZhbCBvPSIyMmQzOTciIHY9Ii00NDU5Ii8+DQorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iLTQ2OTMiLz4NCisJCQkJCTx2YWwgbz0iMjJlZmI2IiB2PSItNDgzMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmZkYzciIHY9Ii00NjUyIi8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iLTQ0NTIiLz4NCisJCQkJCTx2YWwgbz0iMjMxOWU2IiB2PSItNTM5NCIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9Ii01NTM4Ii8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iLTU4NjYiLz4NCisJCQkJCTx2YWwgbz0iMjM0NDE2IiB2PSItNTIyNSIvPg0KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9Ii01MTYyIi8+DQorCQkJCQk8dmFsIG89IjIzNjAzNyIgdj0iLTUyNTAiLz4NCisJCQkJCTx2YWwgbz0iMjM2ZTQ2IiB2PSItNDM4NCIvPg0KKwkJCQkJPHZhbCBvPSIyMzdjNTciIHY9Ii00MjE4Ii8+DQorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iLTQwMTYiLz4NCisJCQkJCTx2YWwgbz0iMjM5ODgxIiB2PSItMzIyMiIvPg0KKwkJCQkJPHZhbCBvPSIyM2E2ODUiIHY9Ii0zMzExIi8+DQorCQkJCQk8dmFsIG89IjIzYjQ5NSIgdj0iLTMxODMiLz4NCisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSItMjk3NCIvPg0KKwkJCQkJPHZhbCBvPSIyM2QwYjUiIHY9Ii0yOTQ1Ii8+DQorCQkJCQk8dmFsIG89IjIzZGVjNCIgdj0iLTI5MzMiLz4NCisJCQkJCTx2YWwgbz0iMjNlY2Q1IiB2PSItMzU3MCIvPg0KKwkJCQkJPHZhbCBvPSIyM2ZhZTQiIHY9Ii00NTQ1Ii8+DQorCQkJCQk8dmFsIG89IjI0MDhmNiIgdj0iLTUxMTkiLz4NCisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSItNTczNyIvPg0KKwkJCQkJPHZhbCBvPSIyNDI1MTgiIHY9Ii02NTE1Ii8+DQorCQkJCQk8dmFsIG89IjI0MzMyNSIgdj0iLTY3NzYiLz4NCisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSItNjc1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9Ii02MzYxIi8+DQorCQkJCQk8dmFsIG89IjI0NmI2NiIgdj0iLTY1NDYiLz4NCisJCQkJCTx2YWwgbz0iMjQ3OTc2IiB2PSItNjI3MyIvPg0KKwkJCQkJPHZhbCBvPSIyNDg3ODYiIHY9Ii01NDAyIi8+DQorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iLTU3OTciLz4NCisJCQkJCTx2YWwgbz0iMjRhMzhmIiB2PSItNTY0NyIvPg0KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9Ii01NzQ3Ii8+DQorCQkJCQk8dmFsIG89IjI0YmZhYyIgdj0iLTU0NDMiLz4NCisJCQkJCTx2YWwgbz0iMjRjZGJjIiB2PSItNTQ0NSIvPg0KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9Ii00NTU3Ii8+DQorCQkJCQk8dmFsIG89IjI0ZTllNSIgdj0iLTQwMTkiLz4NCisJCQkJCTx2YWwgbz0iMjRmODA4IiB2PSItMzQ4NCIvPg0KKwkJCQkJPHZhbCBvPSIyNTA2MTYiIHY9Ii0zNjE2Ii8+DQorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iLTM1NTkiLz4NCisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSItMzQwOCIvPg0KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9Ii0zNjA5Ii8+DQorCQkJCQk8dmFsIG89IjI1M2U1NiIgdj0iLTQwMjAiLz4NCisJCQkJCTx2YWwgbz0iMjU0YzY3IiB2PSItNDE4MiIvPg0KKwkJCQkJPHZhbCBvPSIyNTVhNzYiIHY9Ii00OTk3Ii8+DQorCQkJCQk8dmFsIG89IjI1Njg4NyIgdj0iLTU4MTAiLz4NCisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSItNTU5NSIvPg0KKwkJCQkJPHZhbCBvPSIyNTg0YTgiIHY9Ii0xNTIyNCIvPg0KKwkJCQkJPHZhbCBvPSIyNTkyYjYiIHY9Ii04Njk1Ii8+DQorCQkJCQk8dmFsIG89IjI1YTBjNyIgdj0iLTQ1NzUiLz4NCisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSItNjMxMyIvPg0KKwkJCQkJPHZhbCBvPSIyNWJjZTciIHY9Ii02MTA0Ii8+DQorCQkJCQk8dmFsIG89IjI1Y2FmOCIgdj0iLTU3NTAiLz4NCisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSItNTc2NCIvPg0KKwkJCQkJPHZhbCBvPSIyNWU3MTgiIHY9Ii01NjQ5Ii8+DQorCQkJCQk8dmFsIG89IjI1ZjUyNyIgdj0iLTUyNDkiLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSItNTU2MiIvPg0KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9Ii00ODc1Ii8+DQorCQkJCQk8dmFsIG89IjI2MWY1OSIgdj0iLTQ2MTkiLz4NCisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSItNDYxMSIvPg0KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9Ii0zNjE5Ii8+DQorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iLTM0NjciLz4NCisJCQkJCTx2YWwgbz0iMjY1Nzk1IiB2PSItMzU2NCIvPg0KKwkJCQkJPHZhbCBvPSIyNjY1YTYiIHY9Ii0zNjcyIi8+DQorCQkJCQk8dmFsIG89IjI2NzNiNSIgdj0iLTM2MTQiLz4NCisJCQkJCTx2YWwgbz0iMjY4MWM2IiB2PSItMzYyMSIvPg0KKwkJCQkJPHZhbCBvPSIyNjhmZDUiIHY9Ii0zODY4Ii8+DQorCQkJCQk8dmFsIG89IjI2OWRlNiIgdj0iLTM5NjkiLz4NCisJCQkJCTx2YWwgbz0iMjZhYmY2IiB2PSItMzg4NiIvPg0KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9Ii00MzgxIi8+DQorCQkJCQk8dmFsIG89IjI2YzgxNyIgdj0iLTQyNzEiLz4NCisJCQkJCTx2YWwgbz0iMjZkNjJiIiB2PSItMzk2NyIvPg0KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9Ii00MDAyIi8+DQorCQkJCQk8dmFsIG89IjI2ZjI0NyIgdj0iLTM1NjIiLz4NCisJCQkJCTx2YWwgbz0iMjcwMDU3IiB2PSItMzg3NCIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9Ii0zNTYxIi8+DQorCQkJCQk8dmFsIG89IjI3MWM3NyIgdj0iLTQ2OTAiLz4NCisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSItNTE5NiIvPg0KKwkJCQkJPHZhbCBvPSIyNzM4OTciIHY9Ii01MjExIi8+DQorCQkJCQk8dmFsIG89IjI3NDZhOCIgdj0iLTUwMzciLz4NCisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSItNDk2MyIvPg0KKwkJCQkJPHZhbCBvPSIyNzYyYzciIHY9Ii00MDQ4Ii8+DQorCQkJCQk8dmFsIG89IjI3NzBkOCIgdj0iLTM3MDgiLz4NCisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSItMzIxNSIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjQzODIwMCIgaD0iM2RjMWE4ZGUiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSItMTEwMyIvPg0KKwkJCQkJPHZhbCBvPSJlMDgiIHY9Ii0xMjg2Ii8+DQorCQkJCQk8dmFsIG89IjFjMzIiIHY9Ii0xMzUxIi8+DQorCQkJCQk8dmFsIG89IjJhM2MiIHY9Ii0xNDI3Ii8+DQorCQkJCQk8dmFsIG89IjM4MzUiIHY9Ii0xMjQ2Ii8+DQorCQkJCQk8dmFsIG89IjQ2NDUiIHY9Ii0xMTAxIi8+DQorCQkJCQk8dmFsIG89IjU0NTUiIHY9Ii05MDkiLz4NCisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iLTE0NzIiLz4NCisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iLTE1MjMiLz4NCisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iLTE0MzUiLz4NCisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iLTE3ODQiLz4NCisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iLTE3NTciLz4NCisJCQkJCTx2YWwgbz0iYThiNiIgdj0iLTE2ODIiLz4NCisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iLTE3NDUiLz4NCisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJmZDE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEwYjI3IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIxMTkzNyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMTI3NDYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjEzNTU2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2NiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMTUxODEiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjE1Zjg1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5NSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMTdiYTQiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjE4OWI1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIxOTdjNCIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZDUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjFiM2U2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIxYzFmNiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMWQwMDUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjFkZTE1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIxZWMyNSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMWZhMzYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjIwODQ1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1NiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMjI0NjUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjIzMjc2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIyNDA4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMjVjYTciIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyODZkNiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMjk0ZTYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjJhMzAxIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIyYjEwNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyYmYxNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmU5NDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMmY3NTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIzODQwZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIzOTIxZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIzYWUyNyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iM2JjMzYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjNjYTQ3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjNkODU2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSIzZTY2NyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iM2Y0ODEiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjQwMjg1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI0MTA5NSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNDFlYTUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjQyY2I1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI0M2FjNSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNDQ4ZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0OGYwZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0OWQxZCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0Yjk1NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0Yzc2OSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0ZTM4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0ZjE5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1MGRkMCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1MWJjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1MzdlNyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNTQ2MDAiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjU1NDA2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI1NjIxNSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNTcwMjYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjU3ZTM2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI1OGM0NiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNTlhNzAiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjVhODY3IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI1YjY3NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1YzQ4NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI1ZTBhOSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNWVlYjgiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjVmY2M2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI2MGFkNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI2MThlNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI2MzUwNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI2NDMxNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNjVmMzciIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNjg5NjciIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjZmOWU2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI3MDdmNiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNzE2MDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzI0MTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzMyMjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iNzQwMzciIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijc0ZTQ3IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI3NWM1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3NmE2MyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3ODY4MCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3OTQ4ZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI3YjBhZiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iN2JlYmYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjdjY2NmIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI3ZGFkZiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iN2U4ZmEiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjdmNzBhIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI4MDUxYSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iODEzMmEiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjgyMTNhIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI4MmY0YSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iODNkNWEiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijg0YjZhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg1OTdhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg3NTliIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89Ijg4M2FjIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI4OTFiYiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iODlmY2EiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjhhZGRhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhiYmViIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhjOWZjIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhkODBiIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjhmNDJhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjkwMjNhIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSI5MmM2YSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iOTNhODQiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijk0ODg1IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI5NTY5NCIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iOTY0YTUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijk3MmI0IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI5ODBjNSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iOThlZDQiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijk5Y2U1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjlhYWY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjliOTA2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjllMzM2IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89ImExYjc3IiB2PSItMTU5MCIvPg0KKwkJCQkJPHZhbCBvPSJhMjk4NiIgdj0iLTUwMCIvPg0KKwkJCQkJPHZhbCBvPSJhMzc5NSIgdj0iMTM3OSIvPg0KKwkJCQkJPHZhbCBvPSJhNDVhNyIgdj0iLTQ1Ii8+DQorCQkJCQk8dmFsIG89ImE1M2I2IiB2PSItMzQ2Ii8+DQorCQkJCQk8dmFsIG89ImE2MWM3IiB2PSItNTgwIi8+DQorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSItNzUyIi8+DQorCQkJCQk8dmFsIG89ImE3ZTAwIiB2PSItMTM2NyIvPg0KKwkJCQkJPHZhbCBvPSJhOGMwMCIgdj0iLTE5MDYiLz4NCisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjEwMSIvPg0KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iLTM2NiIvPg0KKwkJCQkJPHZhbCBvPSJhYjYyNSIgdj0iLTc0MCIvPg0KKwkJCQkJPHZhbCBvPSJhYzQzNSIgdj0iLTU1MCIvPg0KKwkJCQkJPHZhbCBvPSJhZDI0NSIgdj0iNDMyIi8+DQorCQkJCQk8dmFsIG89ImFlMDU1IiB2PSIxNTk1Ii8+DQorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSIyNzUiLz4NCisJCQkJCTx2YWwgbz0iYWZjNzUiIHY9IjEwMTkiLz4NCisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjM0NDQiLz4NCisJCQkJCTx2YWwgbz0iYjI2YTYiIHY9IjM2MjkiLz4NCisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9IjMyMDMiLz4NCisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9IjIxNSIvPg0KKwkJCQkJPHZhbCBvPSJiNTBkNiIgdj0iMzgwIi8+DQorCQkJCQk8dmFsIG89ImI1ZWU3IiB2PSI4OTAiLz4NCisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9Ii00NDYiLz4NCisJCQkJCTx2YWwgbz0iYjdiMDciIHY9Ii0yMDAiLz4NCisJCQkJCTx2YWwgbz0iYjg5MTciIHY9Ii00NCIvPg0KKwkJCQkJPHZhbCBvPSJiOTcyOCIgdj0iLTQyNCIvPg0KKwkJCQkJPHZhbCBvPSJiYTUzNyIgdj0iLTcxOCIvPg0KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iOTQ2Ii8+DQorCQkJCQk8dmFsIG89ImJjMTU3IiB2PSIyNzYiLz4NCisJCQkJCTx2YWwgbz0iYmNmNjciIHY9Ii05NDQiLz4NCisJCQkJCTx2YWwgbz0iYmRkODEiIHY9IjMxMjkiLz4NCisJCQkJCTx2YWwgbz0iYmViODYiIHY9IjQ1MyIvPg0KKwkJCQkJPHZhbCBvPSJiZjk5NSIgdj0iMTk0Ii8+DQorCQkJCQk8dmFsIG89ImMwN2E2IiB2PSItMjQ2Ii8+DQorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSItMTIyIi8+DQorCQkJCQk8dmFsIG89ImMyM2M2IiB2PSI0MzAiLz4NCisJCQkJCTx2YWwgbz0iYzMxZDUiIHY9IjE1ODIiLz4NCisJCQkJCTx2YWwgbz0iYzNmZTYiIHY9IjcyMCIvPg0KKwkJCQkJPHZhbCBvPSJjNGRmNSIgdj0iMTMzMyIvPg0KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iNTg4Ii8+DQorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI2NDIiLz4NCisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9IjEwOTYiLz4NCisJCQkJCTx2YWwgbz0iYzg2MzYiIHY9IjMxMyIvPg0KKwkJCQkJPHZhbCBvPSJjOTQ0NiIgdj0iMzc0Ii8+DQorCQkJCQk8dmFsIG89ImNhMjU2IiB2PSIyMDQiLz4NCisJCQkJCTx2YWwgbz0iY2IwNjYiIHY9IjY5MiIvPg0KKwkJCQkJPHZhbCBvPSJjYmU3NiIgdj0iLTE5NiIvPg0KKwkJCQkJPHZhbCBvPSJjY2M4NyIgdj0iMTg4OCIvPg0KKwkJCQkJPHZhbCBvPSJjZGE5NiIgdj0iMjUwMiIvPg0KKwkJCQkJPHZhbCBvPSJjZThhOCIgdj0iMTg0MCIvPg0KKwkJCQkJPHZhbCBvPSJjZjZiNyIgdj0iMjQzNyIvPg0KKwkJCQkJPHZhbCBvPSJkMDRjOCIgdj0iMTkzMCIvPg0KKwkJCQkJPHZhbCBvPSJkMTJkNyIgdj0iMTIxOSIvPg0KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iLTI1MCIvPg0KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iLTE5NzEiLz4NCisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9Ii0xMDI5Ii8+DQorCQkJCQk8dmFsIG89ImQ0YjE1IiB2PSItMTA3MiIvPg0KKwkJCQkJPHZhbCBvPSJkNTkyNiIgdj0iLTM4OCIvPg0KKwkJCQkJPHZhbCBvPSJkNjczNSIgdj0iMjI5Ii8+DQorCQkJCQk8dmFsIG89ImQ3NTQ2IiB2PSIxMTMxIi8+DQorCQkJCQk8dmFsIG89ImQ4MzU1IiB2PSItNzI2Ii8+DQorCQkJCQk8dmFsIG89ImQ5MTY2IiB2PSIxNjYiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9Ijk2NSIvPg0KKwkJCQkJPHZhbCBvPSJkYWQ4NyIgdj0iMjM0MSIvPg0KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iMjM1NCIvPg0KKwkJCQkJPHZhbCBvPSJkYzlhOCIgdj0iMjU2NSIvPg0KKwkJCQkJPHZhbCBvPSJkZDdiNyIgdj0iMTEzNiIvPg0KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iMzY3Ii8+DQorCQkJCQk8dmFsIG89ImRmM2Q3IiB2PSIxNzMiLz4NCisJCQkJCTx2YWwgbz0iZTAxZDciIHY9IjE1NiIvPg0KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iNDYwIi8+DQorCQkJCQk8dmFsIG89ImUxZGY1IiB2PSIzNTgiLz4NCisJCQkJCTx2YWwgbz0iZTJjMDQiIHY9Ii0zMDgiLz4NCisJCQkJCTx2YWwgbz0iZTNhMTQiIHY9Ii0xMDA2Ii8+DQorCQkJCQk8dmFsIG89ImU0ODI0IiB2PSI5MyIvPg0KKwkJCQkJPHZhbCBvPSJlNTYzNCIgdj0iLTcyMyIvPg0KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iMTQ3Ii8+DQorCQkJCQk8dmFsIG89ImU3MjU1IiB2PSItNTUxIi8+DQorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSItNjI2Ii8+DQorCQkJCQk8dmFsIG89ImU4ZTdmIiB2PSIyMzE2Ii8+DQorCQkJCQk8dmFsIG89ImU5YzhlIiB2PSI3MTQiLz4NCisJCQkJCTx2YWwgbz0iZWFhOWYiIHY9IjYwMCIvPg0KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iOTUzIi8+DQorCQkJCQk8dmFsIG89ImVjNmJmIiB2PSIyMjY3Ii8+DQorCQkJCQk8dmFsIG89ImVkNGNlIiB2PSItNDAzIi8+DQorCQkJCQk8dmFsIG89ImVlMmRmIiB2PSI5OTkiLz4NCisJCQkJCTx2YWwgbz0iZWYwZWYiIHY9IjQ3NSIvPg0KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iMTY2MyIvPg0KKwkJCQkJPHZhbCBvPSJmMGQxMCIgdj0iODI5Ii8+DQorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSIxMDU1Ii8+DQorCQkJCQk8dmFsIG89ImYyOTMwIiB2PSItMzE0Ii8+DQorCQkJCQk8dmFsIG89ImYzNzQwIiB2PSIxNDMxIi8+DQorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSIxMjAxIi8+DQorCQkJCQk8dmFsIG89ImY1MzYxIiB2PSIxMjgwIi8+DQorCQkJCQk8dmFsIG89ImY2MTcyIiB2PSIxNDMxIi8+DQorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSIxMTQ1Ii8+DQorCQkJCQk8dmFsIG89ImY3ZDkxIiB2PSIxNjM1Ii8+DQorCQkJCQk8dmFsIG89ImY4YmExIiB2PSI5NTciLz4NCisJCQkJCTx2YWwgbz0iZjk5YjEiIHY9IjEwMTkiLz4NCisJCQkJCTx2YWwgbz0iZmE3YzAiIHY9IjEyMTkiLz4NCisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9IjExNDMiLz4NCisJCQkJCTx2YWwgbz0iZmMzZTAiIHY9Ii04OTMiLz4NCisJCQkJCTx2YWwgbz0iZmQxZmIiIHY9Ii0xMDE5Ii8+DQorCQkJCQk8dmFsIG89ImZlMDBiIiB2PSItMTM4OSIvPg0KKwkJCQkJPHZhbCBvPSJmZWUxYyIgdj0iLTE4MiIvPg0KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iLTIyMCIvPg0KKwkJCQkJPHZhbCBvPSIxMDBhM2IiIHY9IjUwMiIvPg0KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9Ijk0MCIvPg0KKwkJCQkJPHZhbCBvPSIxMDI2NWIiIHY9IjE3MTkiLz4NCisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSIxNTkyIi8+DQorCQkJCQk8dmFsIG89IjEwNDI3YiIgdj0iOTYwIi8+DQorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iMTUzNyIvPg0KKwkJCQkJPHZhbCBvPSIxMDVlOWQiIHY9IjExNzciLz4NCisJCQkJCTx2YWwgbz0iMTA2Y2FkIiB2PSIxMzM3Ii8+DQorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iNzM3Ii8+DQorCQkJCQk8dmFsIG89IjEwODhjZCIgdj0iNzIzIi8+DQorCQkJCQk8dmFsIG89IjEwOTZkZSIgdj0iOTE3Ii8+DQorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iNzk0Ii8+DQorCQkJCQk8dmFsIG89IjEwYjJmZSIgdj0iMTA3NSIvPg0KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9IjIzMjgiLz4NCisJCQkJCTx2YWwgbz0iMTBjZjFlIiB2PSIxMTkyIi8+DQorCQkJCQk8dmFsIG89IjEwZGQyZSIgdj0iODY3Ii8+DQorCQkJCQk8dmFsIG89IjEwZWI2NiIgdj0iMTg0Ii8+DQorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iMTIiLz4NCisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSI5NzgiLz4NCisJCQkJCTx2YWwgbz0iMTExNTZkIiB2PSIyNTYiLz4NCisJCQkJCTx2YWwgbz0iMTEyMzg4IiB2PSItMTAwNyIvPg0KKwkJCQkJPHZhbCBvPSIxMTMxODciIHY9IjYxNCIvPg0KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9IjIwNSIvPg0KKwkJCQkJPHZhbCBvPSIxMTRkYTYiIHY9IjE5NSIvPg0KKwkJCQkJPHZhbCBvPSIxMTViYjYiIHY9IjMxNiIvPg0KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9IjEyNDEiLz4NCisJCQkJCTx2YWwgbz0iMTE3N2Q2IiB2PSIxNzQ4Ii8+DQorCQkJCQk8dmFsIG89IjExODVlOCIgdj0iMTA0NiIvPg0KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9IjEwOTkiLz4NCisJCQkJCTx2YWwgbz0iMTFhMjA4IiB2PSIzMDkiLz4NCisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSItMjAyIi8+DQorCQkJCQk8dmFsIG89IjExYmUyZiIgdj0iLTcyMiIvPg0KKwkJCQkJPHZhbCBvPSIxMWNjMzciIHY9IjY4MCIvPg0KKwkJCQkJPHZhbCBvPSIxMWRhNDciIHY9IjQ0MCIvPg0KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9Ijg3MCIvPg0KKwkJCQkJPHZhbCBvPSIxMWY2NjciIHY9IjQ3NSIvPg0KKwkJCQkJPHZhbCBvPSIxMjA1NzgiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTIxMzg2IiB2PSIxIi8+DQorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iMiIvPg0KKwkJCQkJPHZhbCBvPSIxMjJmYTYiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTIzZGI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMjU5ZDUiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTI2N2U0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iLTEiLz4NCisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSItMSIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9Ii0xIi8+DQorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iLTEiLz4NCisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSItMSIvPg0KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTJjOTU0IiB2PSIxIi8+DQorCQkJCQk8dmFsIG89IjEyZDc2NiIgdj0iMSIvPg0KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTJmMzg2IiB2PSIxIi8+DQorCQkJCQk8dmFsIG89IjEzMDE5NiIgdj0iMSIvPg0KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9IjEiLz4NCisJCQkJCTx2YWwgbz0iMTMxZGI3IiB2PSIxIi8+DQorCQkJCQk8dmFsIG89IjEzMmJjNSIgdj0iMSIvPg0KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSIxOTU5Ii8+DQorCQkJCQk8dmFsIG89IjE3NzRhMyIgdj0iMTUwNiIvPg0KKwkJCQkJPHZhbCBvPSIxNzgyYjMiIHY9IjEwMjciLz4NCisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSI2NzciLz4NCisJCQkJCTx2YWwgbz0iMTc5ZWQ0IiB2PSItNzU5Ii8+DQorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iLTIwNDIiLz4NCisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSItMjU1NCIvPg0KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9Ii0yMTc4Ii8+DQorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iLTIxMjYiLz4NCisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSItMjQ4NCIvPg0KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9Ii0xOTgwIi8+DQorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iLTEwNzIiLz4NCisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSItNTI0Ii8+DQorCQkJCQk8dmFsIG89IjE4MWQ2ZSIgdj0iLTEzNjYiLz4NCisJCQkJCTx2YWwgbz0iMTgyYjdmIiB2PSItMTc1MyIvPg0KKwkJCQkJPHZhbCBvPSIxODM5OGYiIHY9Ii04OTMiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSItODQ1Ii8+DQorCQkJCQk8dmFsIG89IjE4NTVhZiIgdj0iLTExNDgiLz4NCisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSItMjcxMCIvPg0KKwkJCQkJPHZhbCBvPSIxODcxY2YiIHY9Ii0yMjk3Ii8+DQorCQkJCQk8dmFsIG89IjE4N2ZlMCIgdj0iLTIyMDgiLz4NCisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSItMjAzNyIvPg0KKwkJCQkJPHZhbCBvPSIxODljMDAiIHY9Ii05OTciLz4NCisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSIxMDQ4Ii8+DQorCQkJCQk8dmFsIG89IjE4YzYxYyIgdj0iLTk1NSIvPg0KKwkJCQkJPHZhbCBvPSIxOGQ0MmMiIHY9Ii0xMzM0Ii8+DQorCQkJCQk8dmFsIG89IjE4ZTIzYiIgdj0iLTExMjEiLz4NCisJCQkJCTx2YWwgbz0iMThmMDRiIiB2PSItMTYyNSIvPg0KKwkJCQkJPHZhbCBvPSIxOGZlNWUiIHY9Ii0xNDE5Ii8+DQorCQkJCQk8dmFsIG89IjE5MGM3NiIgdj0iLTY3MSIvPg0KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9Ii0xNTAxIi8+DQorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iLTE1MTEiLz4NCisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSItMTYxOCIvPg0KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9Ii0xMDM3Ii8+DQorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iLTE5MiIvPg0KKwkJCQkJPHZhbCBvPSIxOTYwZDciIHY9IjEzOTciLz4NCisJCQkJCTx2YWwgbz0iMTk2ZWU2IiB2PSItNjI3Ii8+DQorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iLTcxMSIvPg0KKwkJCQkJPHZhbCBvPSIxOThiMGYiIHY9IjIwIi8+DQorCQkJCQk8dmFsIG89IjE5OTkxZiIgdj0iLTEzMCIvPg0KKwkJCQkJPHZhbCBvPSIxOWI1NDEiIHY9Ii04NDMiLz4NCisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSItNjQyIi8+DQorCQkJCQk8dmFsIG89IjE5ZDE1ZSIgdj0iLTMyMCIvPg0KKwkJCQkJPHZhbCBvPSIxOWRmODAiIHY9Ii0yMTAiLz4NCisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSIyOTUiLz4NCisJCQkJCTx2YWwgbz0iMTllZWJlIiB2PSI0MTciLz4NCisJCQkJCTx2YWwgbz0iMTlmYjhlIiB2PSIzNyIvPg0KKwkJCQkJPHZhbCBvPSIxYTA5YTAiIHY9Ii0yMTA1Ii8+DQorCQkJCQk8dmFsIG89IjFhMTdhZSIgdj0iLTI5ODAiLz4NCisJCQkJCTx2YWwgbz0iMWEyNWJlIiB2PSItMzMyOSIvPg0KKwkJCQkJPHZhbCBvPSIxYTMzY2QiIHY9Ii0xNDMwIi8+DQorCQkJCQk8dmFsIG89IjFhNDFkZCIgdj0iLTE5ODYiLz4NCisJCQkJCTx2YWwgbz0iMWE0ZmVkIiB2PSItMzU3MCIvPg0KKwkJCQkJPHZhbCBvPSIxYTVlMDgiIHY9Ii0zMjMwIi8+DQorCQkJCQk8dmFsIG89IjFhNmMwNSIgdj0iLTIyODgiLz4NCisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSItMjg0NiIvPg0KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9Ii0yOTQ2Ii8+DQorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iLTIzNDIiLz4NCisJCQkJCTx2YWwgbz0iMWFhNDQ1IiB2PSItMTcxOSIvPg0KKwkJCQkJPHZhbCBvPSIxYWIyNTUiIHY9Ii02NjgiLz4NCisJCQkJCTx2YWwgbz0iMWFjMDY1IiB2PSItMTc2MSIvPg0KKwkJCQkJPHZhbCBvPSIxYWNlNzUiIHY9Ii0yNDEzIi8+DQorCQkJCQk8dmFsIG89IjFhZGM4NyIgdj0iLTE3MjciLz4NCisJCQkJCTx2YWwgbz0iMWFlYTk2IiB2PSItMTgzMiIvPg0KKwkJCQkJPHZhbCBvPSIxYWY4YTciIHY9Ii0xODg5Ii8+DQorCQkJCQk8dmFsIG89IjFiMDZiNyIgdj0iLTIzNDYiLz4NCisJCQkJCTx2YWwgbz0iMWIxNGM2IiB2PSItMjE3NiIvPg0KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjM3NCIvPg0KKwkJCQkJPHZhbCBvPSIxYzgyNzAiIHY9Ii0xMzIiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSI5OTMiLz4NCisJCQkJCTx2YWwgbz0iMWM5ZThmIiB2PSItMTUwIi8+DQorCQkJCQk8dmFsIG89IjFjYWNhMiIgdj0iLTg0MyIvPg0KKwkJCQkJPHZhbCBvPSIxY2JhYjEiIHY9Ii0xMTk2Ii8+DQorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iMjU3NyIvPg0KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjE1ODIiLz4NCisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSI5MDkiLz4NCisJCQkJCTx2YWwgbz0iMWNmMmYwIiB2PSItMTQwNSIvPg0KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9Ii0xNTk3Ii8+DQorCQkJCQk8dmFsIG89IjFkMGYwNiIgdj0iLTE4NiIvPg0KKwkJCQkJPHZhbCBvPSIxZDFkMTUiIHY9Ii02NTgiLz4NCisJCQkJCTx2YWwgbz0iMWQyYjI1IiB2PSItNjc5Ii8+DQorCQkJCQk8dmFsIG89IjFkMzkzNSIgdj0iODkiLz4NCisJCQkJCTx2YWwgbz0iMWQ0NzQ1IiB2PSI2ODAiLz4NCisJCQkJCTx2YWwgbz0iMWQ1NTU1IiB2PSIxMDk1Ii8+DQorCQkJCQk8dmFsIG89IjFkNjM2NiIgdj0iLTgzMiIvPg0KKwkJCQkJPHZhbCBvPSIxZDcxNzUiIHY9Ii03ODUiLz4NCisJCQkJCTx2YWwgbz0iMWQ3Zjg2IiB2PSItMjI4Ii8+DQorCQkJCQk8dmFsIG89IjFkOGQ5NSIgdj0iLTQwIi8+DQorCQkJCQk8dmFsIG89IjFkOWJhNiIgdj0iLTI4MCIvPg0KKwkJCQkJPHZhbCBvPSIxZGE5YjYiIHY9Ii02OTciLz4NCisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSItNjk3Ii8+DQorCQkJCQk8dmFsIG89IjFkYzVkNSIgdj0iLTgxMSIvPg0KKwkJCQkJPHZhbCBvPSIxZGQzZTYiIHY9Ii02MjkiLz4NCisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSItMTQwOCIvPg0KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9Ii0xNjY2Ii8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iLTE1NzQiLz4NCisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSItMTkyOCIvPg0KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9Ii0xOTcwIi8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iLTIwMTciLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSItMTk4NCIvPg0KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9Ii0yMDA3Ii8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iLTE2MTEiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSItMTg1MSIvPg0KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9Ii0xOTA4Ii8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iLTI1MSIvPg0KKwkJCQkJPHZhbCBvPSIxZThhYjUiIHY9Ii0zODYiLz4NCisJCQkJCTx2YWwgbz0iMWU5OGM2IiB2PSItMTIxIi8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iLTM2NSIvPg0KKwkJCQkJPHZhbCBvPSIxZWI0ZTYiIHY9Ii0zMTMiLz4NCisJCQkJCTx2YWwgbz0iMWVjMmY2IiB2PSItNTA2Ii8+DQorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iLTIzMiIvPg0KKwkJCQkJPHZhbCBvPSIxZWRmMTYiIHY9Ii0yODgiLz4NCisJCQkJCTx2YWwgbz0iMWVlZDI2IiB2PSItMTIxIi8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iLTMxMCIvPg0KKwkJCQkJPHZhbCBvPSIxZjA5NDYiIHY9Ii0yNDUiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzU2IiB2PSI0MzkiLz4NCisJCQkJCTx2YWwgbz0iMWYyNTY2IiB2PSI2MDkiLz4NCisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSIxMDc4Ii8+DQorCQkJCQk8dmFsIG89IjFmNDE4NyIgdj0iMjQ5MSIvPg0KKwkJCQkJPHZhbCBvPSIxZjRmOTYiIHY9IjEzMjciLz4NCisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSItMTE1Ii8+DQorCQkJCQk8dmFsIG89IjFmNmJiNiIgdj0iLTQ0MiIvPg0KKwkJCQkJPHZhbCBvPSIxZjc5YzciIHY9IjIwMyIvPg0KKwkJCQkJPHZhbCBvPSIxZjg3ZDYiIHY9Ii0xNDM5Ii8+DQorCQkJCQk8dmFsIG89IjFmOTVlNyIgdj0iLTIwMTkiLz4NCisJCQkJCTx2YWwgbz0iMWZhNDAxIiB2PSItMTQ5MSIvPg0KKwkJCQkJPHZhbCBvPSIxZmIyMDQiIHY9Ii0xMjg1Ii8+DQorCQkJCQk8dmFsIG89IjFmYzAxNiIgdj0iLTEzMDkiLz4NCisJCQkJCTx2YWwgbz0iMWZjZTI1IiB2PSItNDA5Ii8+DQorCQkJCQk8dmFsIG89IjFmZGMzNSIgdj0iLTE2MiIvPg0KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9IjkwIi8+DQorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iMzE5Ii8+DQorCQkJCQk8dmFsIG89IjIwMDY2NSIgdj0iMjQ4MyIvPg0KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9IjM1NyIvPg0KKwkJCQkJPHZhbCBvPSIyMDIyODYiIHY9IjE2ODEiLz4NCisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSIxNTcyIi8+DQorCQkJCQk8dmFsIG89IjIwM2VhNSIgdj0iMTU3NSIvPg0KKwkJCQkJPHZhbCBvPSIyMDRjYjYiIHY9IjMwMiIvPg0KKwkJCQkJPHZhbCBvPSIyMDVhYzYiIHY9IjEwNzYiLz4NCisJCQkJCTx2YWwgbz0iMjA2OGQ2IiB2PSIxNTU1Ii8+DQorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iMTk3MSIvPg0KKwkJCQkJPHZhbCBvPSIyMDg0ZjYiIHY9IjIzOSIvPg0KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9Ii0zNTEiLz4NCisJCQkJCTx2YWwgbz0iMjBhMTE2IiB2PSItNTI3Ii8+DQorCQkJCQk8dmFsIG89IjIwYWYyNiIgdj0iLTIxNSIvPg0KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9Ii03ODIiLz4NCisJCQkJCTx2YWwgbz0iMjBjYjQ2IiB2PSI0NTIiLz4NCisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSI2MCIvPg0KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9Ii04NDgiLz4NCisJCQkJCTx2YWwgbz0iMjBmNTgxIiB2PSItMTM4MyIvPg0KKwkJCQkJPHZhbCBvPSIyMTAzODYiIHY9Ii05ODkiLz4NCisJCQkJCTx2YWwgbz0iMjExMTk0IiB2PSItMzI1Ii8+DQorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iLTM4MiIvPg0KKwkJCQkJPHZhbCBvPSIyMTJkYjUiIHY9IjYwIi8+DQorCQkJCQk8dmFsIG89IjIxM2JjNSIgdj0iODg0Ii8+DQorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iNjU5Ii8+DQorCQkJCQk8dmFsIG89IjIxNTdlNSIgdj0iLTI2NCIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9Ii05OTAiLz4NCisJCQkJCTx2YWwgbz0iMjE3NDA2IiB2PSIyODkiLz4NCisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSItMjkyIi8+DQorCQkJCQk8dmFsIG89IjIxOTAyNiIgdj0iLTU0MiIvPg0KKwkJCQkJPHZhbCBvPSIyMTllMzkiIHY9IjM2NiIvPg0KKwkJCQkJPHZhbCBvPSIyMWFjNDYiIHY9IjkwOSIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9Ijk5MiIvPg0KKwkJCQkJPHZhbCBvPSIyMWM4NjciIHY9IjE4MDgiLz4NCisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSItMTA0OSIvPg0KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9IjU0MyIvPg0KKwkJCQkJPHZhbCBvPSIyMWYyOTYiIHY9IjM3NyIvPg0KKwkJCQkJPHZhbCBvPSIyMjAwYTYiIHY9Ii02MTkiLz4NCisJCQkJCTx2YWwgbz0iMjIwZWI3IiB2PSItNzEyIi8+DQorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iMTQ1OSIvPg0KKwkJCQkJPHZhbCBvPSIyMjJhZDciIHY9IjI1NyIvPg0KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9Ii02OTYiLz4NCisJCQkJCTx2YWwgbz0iMjI0NzAxIiB2PSItMTA4NSIvPg0KKwkJCQkJPHZhbCBvPSIyMjU1MDUiIHY9IjI4NzMiLz4NCisJCQkJCTx2YWwgbz0iMjI2MzE1IiB2PSI0MjEiLz4NCisJCQkJCTx2YWwgbz0iMjI3MTI1IiB2PSI1NTciLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSIxNjk2Ii8+DQorCQkJCQk8dmFsIG89IjIyOGQ0NSIgdj0iMjQ4MCIvPg0KKwkJCQkJPHZhbCBvPSIyMjliNTQiIHY9Ii03MDciLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSItMjM3Ii8+DQorCQkJCQk8dmFsIG89IjIyYjc3NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIyMmM1ODYiIHY9IjE3MzAiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSIyOTkwIi8+DQorCQkJCQk8dmFsIG89IjIyZTFhNiIgdj0iMjc0NiIvPg0KKwkJCQkJPHZhbCBvPSIyMmVmYjYiIHY9Ii0xNzQiLz4NCisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSItMTk0Ii8+DQorCQkJCQk8dmFsIG89IjIzMGJkNyIgdj0iNDg1Ii8+DQorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iLTcyOSIvPg0KKwkJCQkJPHZhbCBvPSIyMzI3ZjYiIHY9IjcwIi8+DQorCQkJCQk8dmFsIG89IjIzMzYxYiIgdj0iOTA3Ii8+DQorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iMTI5NyIvPg0KKwkJCQkJPHZhbCBvPSIyMzUyMjYiIHY9Ijc3NiIvPg0KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9IjEyMyIvPg0KKwkJCQkJPHZhbCBvPSIyMzZlNDYiIHY9IjE1NTciLz4NCisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSIxMjA4Ii8+DQorCQkJCQk8dmFsIG89IjIzOGE2NiIgdj0iMjUzIi8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iNTA4Ii8+DQorCQkJCQk8dmFsIG89IjIzYTY4NSIgdj0iLTI3NCIvPg0KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9Ii01NzEiLz4NCisJCQkJCTx2YWwgbz0iMjNjMmE0IiB2PSIxNDYiLz4NCisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSI1NjciLz4NCisJCQkJCTx2YWwgbz0iMjNkZWM0IiB2PSIxMjIyIi8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iNzMzIi8+DQorCQkJCQk8dmFsIG89IjIzZmFlNCIgdj0iOCIvPg0KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9IjEwNDEiLz4NCisJCQkJCTx2YWwgbz0iMjQxNzA2IiB2PSIzMjIyIi8+DQorCQkJCQk8dmFsIG89IjI0MjUxOCIgdj0iMjU3NiIvPg0KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9IjI0MjIiLz4NCisJCQkJCTx2YWwgbz0iMjQ0MTM3IiB2PSItMTAzNiIvPg0KKwkJCQkJPHZhbCBvPSIyNDRmNDYiIHY9Ii03NDYiLz4NCisJCQkJCTx2YWwgbz0iMjQ2YjY2IiB2PSItNjYxIi8+DQorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iNDUiLz4NCisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSIzOTgzIi8+DQorCQkJCQk8dmFsIG89IjI0OTU3ZSIgdj0iMTY5NCIvPg0KKwkJCQkJPHZhbCBvPSIyNGEzOGYiIHY9IjcwOSIvPg0KKwkJCQkJPHZhbCBvPSIyNGIxOWMiIHY9Ii04NDQiLz4NCisJCQkJCTx2YWwgbz0iMjRiZmFjIiB2PSItNjA1Ii8+DQorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iLTY2MSIvPg0KKwkJCQkJPHZhbCBvPSIyNGRiY2QiIHY9Ii00MzYiLz4NCisJCQkJCTx2YWwgbz0iMjRlOWU1IiB2PSItMTE1NSIvPg0KKwkJCQkJPHZhbCBvPSIyNGY4MDgiIHY9Ii03MTYiLz4NCisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSItODc3Ii8+DQorCQkJCQk8dmFsIG89IjI1MTQyNiIgdj0iLTEwMjQiLz4NCisJCQkJCTx2YWwgbz0iMjUyMjM2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIyNTMwNDciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMjUzZTU2IiB2PSIxMTg1Ii8+DQorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iODg0Ii8+DQorCQkJCQk8dmFsIG89IjI1NWE3NiIgdj0iMTEwMyIvPg0KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9IjE3ODkiLz4NCisJCQkJCTx2YWwgbz0iMjU3Njk3IiB2PSIzMTMyIi8+DQorCQkJCQk8dmFsIG89IjI1ODRhOCIgdj0iLTQwMzIiLz4NCisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSItMjExNCIvPg0KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9Ii00OTgiLz4NCisJCQkJCTx2YWwgbz0iMjVhZWQ3IiB2PSIxNzQiLz4NCisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSIyMTAiLz4NCisJCQkJCTx2YWwgbz0iMjVjYWY4IiB2PSI3MTAiLz4NCisJCQkJCTx2YWwgbz0iMjVkOTA3IiB2PSIyMTI3Ii8+DQorCQkJCQk8dmFsIG89IjI1ZTcxOCIgdj0iMjM4NiIvPg0KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9IjE5MTYiLz4NCisJCQkJCTx2YWwgbz0iMjYwMzM4IiB2PSI1MyIvPg0KKwkJCQkJPHZhbCBvPSIyNjExNDkiIHY9IjEwNzAiLz4NCisJCQkJCTx2YWwgbz0iMjYxZjU5IiB2PSI1NjQiLz4NCisJCQkJCTx2YWwgbz0iMjYyZDY4IiB2PSItMTE4MSIvPg0KKwkJCQkJPHZhbCBvPSIyNjNiODMiIHY9IjM0Ii8+DQorCQkJCQk8dmFsIG89IjI2NDk4NiIgdj0iLTg0NyIvPg0KKwkJCQkJPHZhbCBvPSIyNjU3OTUiIHY9Ii0xMzE4Ii8+DQorCQkJCQk8dmFsIG89IjI2NjVhNiIgdj0iLTE4NDIiLz4NCisJCQkJCTx2YWwgbz0iMjY3M2I1IiB2PSItMTQwNCIvPg0KKwkJCQkJPHZhbCBvPSIyNjgxYzYiIHY9Ii0xMTI5Ii8+DQorCQkJCQk8dmFsIG89IjI2OGZkNSIgdj0iLTM3MiIvPg0KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9IjI2OSIvPg0KKwkJCQkJPHZhbCBvPSIyNmFiZjYiIHY9IjU3MiIvPg0KKwkJCQkJPHZhbCBvPSIyNmJhMDYiIHY9IjE0MTMiLz4NCisJCQkJCTx2YWwgbz0iMjZjODE3IiB2PSIxNTg2Ii8+DQorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iMzE2MSIvPg0KKwkJCQkJPHZhbCBvPSIyNmU0MzYiIHY9IjIzNDciLz4NCisJCQkJCTx2YWwgbz0iMjZmMjQ3IiB2PSIyNjI3Ii8+DQorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iMjUwMiIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNjciIHY9IjI4MTgiLz4NCisJCQkJCTx2YWwgbz0iMjcxYzc3IiB2PSIxNTgiLz4NCisJCQkJCTx2YWwgbz0iMjcyYTg3IiB2PSItNTQ1Ii8+DQorCQkJCQk8dmFsIG89IjI3Mzg5NyIgdj0iLTM3MCIvPg0KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9Ii02MjQiLz4NCisJCQkJCTx2YWwgbz0iMjc1NGI5IiB2PSItODQ3Ii8+DQorCQkJCQk8dmFsIG89IjI3NjJjNyIgdj0iMjMxNSIvPg0KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9IjEwOTkiLz4NCisJCQkJCTx2YWwgbz0iMjc3ZWU3IiB2PSItNDE3Ii8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iNDIyMjAwIiBoPSIzZGMxYThkZSI+DQorCQkJCQk8dmFsIG89IjAiIHY9Ii00MzA3Ii8+DQorCQkJCQk8dmFsIG89ImUwOCIgdj0iLTQxNjkiLz4NCisJCQkJCTx2YWwgbz0iMWMzMiIgdj0iLTQwOTYiLz4NCisJCQkJCTx2YWwgbz0iMmEzYyIgdj0iLTQwODciLz4NCisJCQkJCTx2YWwgbz0iMzgzNSIgdj0iLTM5NjMiLz4NCisJCQkJCTx2YWwgbz0iNDY0NSIgdj0iLTM5NjkiLz4NCisJCQkJCTx2YWwgbz0iNTQ1NSIgdj0iLTQ0MTEiLz4NCisJCQkJCTx2YWwgbz0iNjI2NSIgdj0iLTUzNTgiLz4NCisJCQkJCTx2YWwgbz0iNzA3NSIgdj0iLTYzMTciLz4NCisJCQkJCTx2YWwgbz0iN2U4NSIgdj0iLTcyOTgiLz4NCisJCQkJCTx2YWwgbz0iOGM5NiIgdj0iLTc1MTkiLz4NCisJCQkJCTx2YWwgbz0iOWFhNSIgdj0iLTczNTEiLz4NCisJCQkJCTx2YWwgbz0iYThiNiIgdj0iLTY4OTAiLz4NCisJCQkJCTx2YWwgbz0iYjZjNSIgdj0iLTY0NjUiLz4NCisJCQkJCTx2YWwgbz0iYzRkNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iZDMwYiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iZTBmNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iZWYwNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iZmQxNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMTBiMjciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjExOTM3IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxMjc0NiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMTM1NTYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjE0MzY2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxNTE4MSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iMTVmODUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjE2ZDk1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxN2JhNCIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMTg5YjUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjE5N2M0IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxYTVkNSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iMWIzZTYiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjFjMWY2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxZDAwNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMWRlMTUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjFlYzI1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIxZmEzNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMjA4NDUiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjIxNjU2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyMjQ2NSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMjMyNzYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjI0MDg2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5OSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMjVjYTciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjI2YWI3IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyNzhjNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMjg2ZDYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjI5NGU2IiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iMmIxMDUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjJiZjE1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyY2QyNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMmRiMzUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjJlOTQ2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIyZjc1NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iMzA1NjYiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjMxMzc1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzMjE5ZSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMzJmOTYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjMzZGE2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzNGJiNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMzU5ZGUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjM2N2Q2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzNzVlNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iMzg0MGUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjM5MjFlIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSIzYTAxNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iM2FlMjciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjNiYzM2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzY2E0NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iM2Q4NTYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjNlNjY3IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSIzZjQ4MSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iNDAyODUiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjQxMDk1IiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI0MWVhNSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iNDJjYjUiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjQzYWM1IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI0NDhkNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNDU2ZTYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjQ2NGY1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0ODBmZiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNDhmMGUiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89IjQ5ZDFkIiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI0YWI0NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNGI5NTUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjRjNzY5IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI0ZDU3NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNGUzODciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjRmMTk2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI0ZmZhNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNTBkZDAiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjUxYmM2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1MjlkNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNTM3ZTciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjU0NjAwIiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI1NTQwNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNTYyMTUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjU3MDI2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI1N2UzNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNThjNDYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjU5YTcwIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI1YTg2NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNWI2NzYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjVjNDg3IiB2PSItNiIvPg0KKwkJCQkJPHZhbCBvPSI1ZDI5NiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNWUwYTkiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjVlZWI4IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI1ZmNjNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNjBhZDciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjYxOGU3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2MjZmNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNjM1MDciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjY0MzE3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2NTEyNyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNjVmMzciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjY2ZDQ2IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI2N2I1NyIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNjg5NjciIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjY5NzgyIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI2YTU4NiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNmIzOTUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjZjMWE2IiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI2Y2ZiNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNmRkYzYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjZlYmQ2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI2ZjllNiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iNzA3ZjYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjcxNjA3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3MjQxNyIgdj0iLTYiLz4NCisJCQkJCTx2YWwgbz0iNzMyMjciIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijc0MDM3IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3NGU0NyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNzVjNTciIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijc2YTYzIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3Nzg3MyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iNzg2ODAiIHY9Ii02Ii8+DQorCQkJCQk8dmFsIG89Ijc5NDhmIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI3YTI5ZiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iN2IwYWYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjdiZWJmIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI3Y2NjZiIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iN2RhZGYiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjdlOGZhIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcwYSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iODA1MWEiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjgxMzJhIiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI4MjEzYSIgdj0iLTkiLz4NCisJCQkJCTx2YWwgbz0iODJmNGEiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89IjgzZDVhIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI4NGI2YSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iODU5N2EiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijg2NzhiIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4NzU5YiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iODgzYWMiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89Ijg5MWJiIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI4OWZjYSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOGFkZGEiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjhiYmViIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4YzlmYyIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOGQ4MGIiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjhlNjFhIiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI4ZjQyYSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOTAyM2EiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjkxMDRhIiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI5MWU1YSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOTJjNmEiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89IjkzYTg0IiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI5NDg4NSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iOTU2OTQiIHY9Ii05Ii8+DQorCQkJCQk8dmFsIG89Ijk2NGE1IiB2PSItOSIvPg0KKwkJCQkJPHZhbCBvPSI5NzJiNCIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iOTgwYzUiIHY9Ii04Ii8+DQorCQkJCQk8dmFsIG89Ijk4ZWQ0IiB2PSItOCIvPg0KKwkJCQkJPHZhbCBvPSI5OWNlNSIgdj0iLTgiLz4NCisJCQkJCTx2YWwgbz0iOWFhZjUiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjliOTA2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5YzcxNiIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOWQ1MjYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89IjllMzM2IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSI5ZjE0NSIgdj0iLTciLz4NCisJCQkJCTx2YWwgbz0iOWZmNTYiIHY9Ii03Ii8+DQorCQkJCQk8dmFsIG89ImEwZDY1IiB2PSItNyIvPg0KKwkJCQkJPHZhbCBvPSJhMWI3NyIgdj0iLTYzMjQiLz4NCisJCQkJCTx2YWwgbz0iYTI5ODYiIHY9Ii0zNTE2Ii8+DQorCQkJCQk8dmFsIG89ImEzNzk1IiB2PSItOTYzIi8+DQorCQkJCQk8dmFsIG89ImE0NWE3IiB2PSI2NDQiLz4NCisJCQkJCTx2YWwgbz0iYTUzYjYiIHY9IjcwMCIvPg0KKwkJCQkJPHZhbCBvPSJhNjFjNyIgdj0iOTQyIi8+DQorCQkJCQk8dmFsIG89ImE2ZmQ2IiB2PSI5OSIvPg0KKwkJCQkJPHZhbCBvPSJhN2UwMCIgdj0iNDY0Ii8+DQorCQkJCQk8dmFsIG89ImE4YzAwIiB2PSI5MTIiLz4NCisJCQkJCTx2YWwgbz0iYTlhMDUiIHY9IjI4OSIvPg0KKwkJCQkJPHZhbCBvPSJhYTgxNSIgdj0iMzIiLz4NCisJCQkJCTx2YWwgbz0iYWI2MjUiIHY9IjQ2Ii8+DQorCQkJCQk8dmFsIG89ImFjNDM1IiB2PSIyMDAiLz4NCisJCQkJCTx2YWwgbz0iYWQyNDUiIHY9IjkyMSIvPg0KKwkJCQkJPHZhbCBvPSJhZTA1NSIgdj0iNzQ0Ii8+DQorCQkJCQk8dmFsIG89ImFlZTY1IiB2PSItNTYxIi8+DQorCQkJCQk8dmFsIG89ImFmYzc1IiB2PSItNjgiLz4NCisJCQkJCTx2YWwgbz0iYjBhODUiIHY9IjMxIi8+DQorCQkJCQk8dmFsIG89ImIyNmE2IiB2PSIxNDIiLz4NCisJCQkJCTx2YWwgbz0iYjM0YjYiIHY9Ii0xMjMiLz4NCisJCQkJCTx2YWwgbz0iYjQyYzYiIHY9Ii00NTEiLz4NCisJCQkJCTx2YWwgbz0iYjUwZDYiIHY9Ii03MjkiLz4NCisJCQkJCTx2YWwgbz0iYjVlZTciIHY9Ii03MTIiLz4NCisJCQkJCTx2YWwgbz0iYjZjZjYiIHY9Ii0xNTg0Ii8+DQorCQkJCQk8dmFsIG89ImI3YjA3IiB2PSItMTk4MyIvPg0KKwkJCQkJPHZhbCBvPSJiODkxNyIgdj0iLTE3NTMiLz4NCisJCQkJCTx2YWwgbz0iYjk3MjgiIHY9Ii0xNzU4Ii8+DQorCQkJCQk8dmFsIG89ImJhNTM3IiB2PSItMTg5MSIvPg0KKwkJCQkJPHZhbCBvPSJiYjM0NyIgdj0iLTgyNyIvPg0KKwkJCQkJPHZhbCBvPSJiYzE1NyIgdj0iLTg4MiIvPg0KKwkJCQkJPHZhbCBvPSJiY2Y2NyIgdj0iLTg5OSIvPg0KKwkJCQkJPHZhbCBvPSJiZGQ4MSIgdj0iNjQ0Ii8+DQorCQkJCQk8dmFsIG89ImJlYjg2IiB2PSI0MTciLz4NCisJCQkJCTx2YWwgbz0iYmY5OTUiIHY9IjUyNCIvPg0KKwkJCQkJPHZhbCBvPSJjMDdhNiIgdj0iNDAwIi8+DQorCQkJCQk8dmFsIG89ImMxNWI1IiB2PSIzNzIiLz4NCisJCQkJCTx2YWwgbz0iYzIzYzYiIHY9IjQ4NCIvPg0KKwkJCQkJPHZhbCBvPSJjMzFkNSIgdj0iNTkxIi8+DQorCQkJCQk8dmFsIG89ImMzZmU2IiB2PSIzMzYiLz4NCisJCQkJCTx2YWwgbz0iYzRkZjUiIHY9Ijc0MSIvPg0KKwkJCQkJPHZhbCBvPSJjNWMwNiIgdj0iMTE0Ii8+DQorCQkJCQk8dmFsIG89ImM2YTE2IiB2PSI1MDciLz4NCisJCQkJCTx2YWwgbz0iYzc4MjYiIHY9Ii01MSIvPg0KKwkJCQkJPHZhbCBvPSJjODYzNiIgdj0iMTM2Ii8+DQorCQkJCQk8dmFsIG89ImM5NDQ2IiB2PSIzMzQiLz4NCisJCQkJCTx2YWwgbz0iY2EyNTYiIHY9IjIzNSIvPg0KKwkJCQkJPHZhbCBvPSJjYjA2NiIgdj0iMTE2Ii8+DQorCQkJCQk8dmFsIG89ImNiZTc2IiB2PSItNDE3Ii8+DQorCQkJCQk8dmFsIG89ImNjYzg3IiB2PSItMjMyIi8+DQorCQkJCQk8dmFsIG89ImNkYTk2IiB2PSItMTg0Ii8+DQorCQkJCQk8dmFsIG89ImNlOGE4IiB2PSItMjE5Ii8+DQorCQkJCQk8dmFsIG89ImNmNmI3IiB2PSItMTM0Ii8+DQorCQkJCQk8dmFsIG89ImQwNGM4IiB2PSItNTEiLz4NCisJCQkJCTx2YWwgbz0iZDEyZDciIHY9IjE0MyIvPg0KKwkJCQkJPHZhbCBvPSJkMjBlNyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSJkMmYwMiIgdj0iMTEiLz4NCisJCQkJCTx2YWwgbz0iZDNkMDUiIHY9IjYwMCIvPg0KKwkJCQkJPHZhbCBvPSJkNGIxNSIgdj0iNjQ0Ii8+DQorCQkJCQk8dmFsIG89ImQ1OTI2IiB2PSI4MzYiLz4NCisJCQkJCTx2YWwgbz0iZDY3MzUiIHY9IjEwNjgiLz4NCisJCQkJCTx2YWwgbz0iZDc1NDYiIHY9IjEyMTMiLz4NCisJCQkJCTx2YWwgbz0iZDgzNTUiIHY9Ii0xMzUiLz4NCisJCQkJCTx2YWwgbz0iZDkxNjYiIHY9Ii03NTUiLz4NCisJCQkJCTx2YWwgbz0iZDlmNzUiIHY9Ii0xNDk4Ii8+DQorCQkJCQk8dmFsIG89ImRhZDg3IiB2PSItMjAxMSIvPg0KKwkJCQkJPHZhbCBvPSJkYmI5NyIgdj0iLTI1NjEiLz4NCisJCQkJCTx2YWwgbz0iZGM5YTgiIHY9Ii0yMzM4Ii8+DQorCQkJCQk8dmFsIG89ImRkN2I3IiB2PSItMjg5NSIvPg0KKwkJCQkJPHZhbCBvPSJkZTVjNiIgdj0iLTI3ODAiLz4NCisJCQkJCTx2YWwgbz0iZGYzZDciIHY9Ii0yOTEyIi8+DQorCQkJCQk8dmFsIG89ImUwMWQ3IiB2PSItMjkxMyIvPg0KKwkJCQkJPHZhbCBvPSJlMGZlNSIgdj0iLTI4MzIiLz4NCisJCQkJCTx2YWwgbz0iZTFkZjUiIHY9Ii0zMDE4Ii8+DQorCQkJCQk8dmFsIG89ImUyYzA0IiB2PSItNDA5OSIvPg0KKwkJCQkJPHZhbCBvPSJlM2ExNCIgdj0iLTM5NzkiLz4NCisJCQkJCTx2YWwgbz0iZTQ4MjQiIHY9Ii0zMzcwIi8+DQorCQkJCQk8dmFsIG89ImU1NjM0IiB2PSItMzQyOCIvPg0KKwkJCQkJPHZhbCBvPSJlNjQ0NCIgdj0iLTI1NTEiLz4NCisJCQkJCTx2YWwgbz0iZTcyNTUiIHY9Ii0yMTg5Ii8+DQorCQkJCQk8dmFsIG89ImU4MDZmIiB2PSItMTc1NyIvPg0KKwkJCQkJPHZhbCBvPSJlOGU3ZiIgdj0iLTQ3NyIvPg0KKwkJCQkJPHZhbCBvPSJlOWM4ZSIgdj0iLTcwOSIvPg0KKwkJCQkJPHZhbCBvPSJlYWE5ZiIgdj0iLTY1MyIvPg0KKwkJCQkJPHZhbCBvPSJlYjhhZSIgdj0iLTY1MyIvPg0KKwkJCQkJPHZhbCBvPSJlYzZiZiIgdj0iLTQ2OCIvPg0KKwkJCQkJPHZhbCBvPSJlZDRjZSIgdj0iLTIxMTIiLz4NCisJCQkJCTx2YWwgbz0iZWUyZGYiIHY9Ii0yMjM5Ii8+DQorCQkJCQk8dmFsIG89ImVmMGVmIiB2PSItMzE5OCIvPg0KKwkJCQkJPHZhbCBvPSJlZmYwMSIgdj0iLTQwODciLz4NCisJCQkJCTx2YWwgbz0iZjBkMTAiIHY9Ii00MzA4Ii8+DQorCQkJCQk8dmFsIG89ImYxYjIwIiB2PSItNDU1MCIvPg0KKwkJCQkJPHZhbCBvPSJmMjkzMCIgdj0iLTQ2MjgiLz4NCisJCQkJCTx2YWwgbz0iZjM3NDAiIHY9Ii00MzAxIi8+DQorCQkJCQk8dmFsIG89ImY0NTUxIiB2PSItNDYwOCIvPg0KKwkJCQkJPHZhbCBvPSJmNTM2MSIgdj0iLTQ4NTciLz4NCisJCQkJCTx2YWwgbz0iZjYxNzIiIHY9Ii00NjEzIi8+DQorCQkJCQk8dmFsIG89ImY2ZjgwIiB2PSItNDgxOCIvPg0KKwkJCQkJPHZhbCBvPSJmN2Q5MSIgdj0iLTQyNDQiLz4NCisJCQkJCTx2YWwgbz0iZjhiYTEiIHY9Ii0zOTE1Ii8+DQorCQkJCQk8dmFsIG89ImY5OWIxIiB2PSItMzgwNSIvPg0KKwkJCQkJPHZhbCBvPSJmYTdjMCIgdj0iLTMwMjUiLz4NCisJCQkJCTx2YWwgbz0iZmI1ZDEiIHY9Ii0zMDM0Ii8+DQorCQkJCQk8dmFsIG89ImZjM2UwIiB2PSItMzI5NSIvPg0KKwkJCQkJPHZhbCBvPSJmZDFmYiIgdj0iLTI2ODAiLz4NCisJCQkJCTx2YWwgbz0iZmUwMGIiIHY9Ii0yNTMwIi8+DQorCQkJCQk8dmFsIG89ImZlZTFjIiB2PSItMjA4MyIvPg0KKwkJCQkJPHZhbCBvPSJmZmMyYyIgdj0iLTE5ODIiLz4NCisJCQkJCTx2YWwgbz0iMTAwYTNiIiB2PSItMTc5MCIvPg0KKwkJCQkJPHZhbCBvPSIxMDE4NGMiIHY9Ii0xNzkxIi8+DQorCQkJCQk8dmFsIG89IjEwMjY1YiIgdj0iLTIwNzciLz4NCisJCQkJCTx2YWwgbz0iMTAzNDZjIiB2PSItMjcyNCIvPg0KKwkJCQkJPHZhbCBvPSIxMDQyN2IiIHY9Ii00MDE2Ii8+DQorCQkJCQk8dmFsIG89IjEwNTA4ZCIgdj0iLTQzMjAiLz4NCisJCQkJCTx2YWwgbz0iMTA1ZTlkIiB2PSItNDMzOSIvPg0KKwkJCQkJPHZhbCBvPSIxMDZjYWQiIHY9Ii00NzI1Ii8+DQorCQkJCQk8dmFsIG89IjEwN2FiZCIgdj0iLTQzMzgiLz4NCisJCQkJCTx2YWwgbz0iMTA4OGNkIiB2PSItMzkwNiIvPg0KKwkJCQkJPHZhbCBvPSIxMDk2ZGUiIHY9Ii00MTE5Ii8+DQorCQkJCQk8dmFsIG89IjEwYTRlZCIgdj0iLTQzMjIiLz4NCisJCQkJCTx2YWwgbz0iMTBiMmZlIiB2PSItNDM0NSIvPg0KKwkJCQkJPHZhbCBvPSIxMGMxMGQiIHY9Ii00MTY5Ii8+DQorCQkJCQk8dmFsIG89IjEwY2YxZSIgdj0iLTQzNTQiLz4NCisJCQkJCTx2YWwgbz0iMTBkZDJlIiB2PSItNDE2MCIvPg0KKwkJCQkJPHZhbCBvPSIxMGViNjYiIHY9Ii00NDUzIi8+DQorCQkJCQk8dmFsIG89IjEwZjk0ZSIgdj0iLTM4OTUiLz4NCisJCQkJCTx2YWwgbz0iMTEwNzVlIiB2PSItMzI4MSIvPg0KKwkJCQkJPHZhbCBvPSIxMTE1NmQiIHY9Ii0yODY2Ii8+DQorCQkJCQk8dmFsIG89IjExMjM4OCIgdj0iLTI2NjMiLz4NCisJCQkJCTx2YWwgbz0iMTEzMTg3IiB2PSItMTc5NCIvPg0KKwkJCQkJPHZhbCBvPSIxMTNmYjAiIHY9Ii0xNzk3Ii8+DQorCQkJCQk8dmFsIG89IjExNGRhNiIgdj0iLTE4MjMiLz4NCisJCQkJCTx2YWwgbz0iMTE1YmI2IiB2PSItMTc4MiIvPg0KKwkJCQkJPHZhbCBvPSIxMTY5YzYiIHY9Ii0xNTg1Ii8+DQorCQkJCQk8dmFsIG89IjExNzdkNiIgdj0iLTIwODIiLz4NCisJCQkJCTx2YWwgbz0iMTE4NWU4IiB2PSItMjg4NSIvPg0KKwkJCQkJPHZhbCBvPSIxMTkzZjciIHY9Ii0zNTU4Ii8+DQorCQkJCQk8dmFsIG89IjExYTIwOCIgdj0iLTQ4MzgiLz4NCisJCQkJCTx2YWwgbz0iMTFiMDE3IiB2PSItNDMyMiIvPg0KKwkJCQkJPHZhbCBvPSIxMWJlMmYiIHY9Ii01MzkzIi8+DQorCQkJCQk8dmFsIG89IjExY2MzNyIgdj0iLTQ0NTYiLz4NCisJCQkJCTx2YWwgbz0iMTFkYTQ3IiB2PSItNDI3OSIvPg0KKwkJCQkJPHZhbCBvPSIxMWU4NTciIHY9Ii00MzU0Ii8+DQorCQkJCQk8dmFsIG89IjExZjY2NyIgdj0iLTM5MDAiLz4NCisJCQkJCTx2YWwgbz0iMTIwNTc4IiB2PSItNCIvPg0KKwkJCQkJPHZhbCBvPSIxMjEzODYiIHY9Ii00Ii8+DQorCQkJCQk8dmFsIG89IjEyMjE5NiIgdj0iLTQiLz4NCisJCQkJCTx2YWwgbz0iMTIyZmE2IiB2PSItMyIvPg0KKwkJCQkJPHZhbCBvPSIxMjNkYjUiIHY9Ii0zIi8+DQorCQkJCQk8dmFsIG89IjEyNGJjNSIgdj0iLTMiLz4NCisJCQkJCTx2YWwgbz0iMTI1OWQ1IiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMjY3ZTQiIHY9Ii0yIi8+DQorCQkJCQk8dmFsIG89IjEyNzYwMCIgdj0iLTIiLz4NCisJCQkJCTx2YWwgbz0iMTI4MzA1IiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMTUiIHY9Ii0yIi8+DQorCQkJCQk8dmFsIG89IjEyOWYyNSIgdj0iLTIiLz4NCisJCQkJCTx2YWwgbz0iMTJhZDM1IiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMmJiNDUiIHY9Ii0xIi8+DQorCQkJCQk8dmFsIG89IjEyYzk1NCIgdj0iLTIiLz4NCisJCQkJCTx2YWwgbz0iMTJkNzY2IiB2PSItMiIvPg0KKwkJCQkJPHZhbCBvPSIxMmU1NzUiIHY9Ii0zIi8+DQorCQkJCQk8dmFsIG89IjEyZjM4NiIgdj0iLTIiLz4NCisJCQkJCTx2YWwgbz0iMTMwMTk2IiB2PSItNCIvPg0KKwkJCQkJPHZhbCBvPSIxMzBmYTYiIHY9Ii0zIi8+DQorCQkJCQk8dmFsIG89IjEzMWRiNyIgdj0iLTMiLz4NCisJCQkJCTx2YWwgbz0iMTMyYmM1IiB2PSItMyIvPg0KKwkJCQkJPHZhbCBvPSIxMzM5ZDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM0N2U1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzNTVmNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzY0MDQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM3MjE0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzODAyNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxMzhlMzMiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTM5YzQ0IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzYWE1NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2I4NjUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNjNjdlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZDQ4ZSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxM2UyOWUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTNmMGFlIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjEzZmViZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDBjY2YiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQxYWRmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0MjhlZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDM2ZmYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ0NTBmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0NTMxZiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDYxMzAiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ2ZjQwIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0N2Q0NCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNDhiNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTQ5OTY1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0YTc3NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGI1ODQiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRjMzk3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZDFhNCIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNGRmYjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTRlZGM1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE0ZmJkNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTA5ZTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTUxN2ZmIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1MjYwNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTM0MTUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU0MjI1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1NTAzNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTVlNDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU2YzU1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1N2E2NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNTg4NzUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTU5Njg2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1YTQ5NSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWIyYTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVjMGI2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1Y2VjNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNWRjZDUiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTVlYWU2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE1ZjhmNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjA3MDYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYxNTE3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2MjMyNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjMxMzciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTYzZjQ2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2NGQ1NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjViNjciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY2OTgyIiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2Nzc4NiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNjg1OTYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTY5M2E2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2YTFiNSIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmFmYzYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZiZGQ1IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2Y2JlNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNmQ5ZjYiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTZlODA3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE2ZjYxNiIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzA0MjkiIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTcxMjM2IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3MjA0NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzJlNTciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTczYzY3IiB2PSIwIi8+DQorCQkJCQk8dmFsIG89IjE3NGE3NyIgdj0iMCIvPg0KKwkJCQkJPHZhbCBvPSIxNzU4ODciIHY9IjAiLz4NCisJCQkJCTx2YWwgbz0iMTc2Njk0IiB2PSItNjg0NCIvPg0KKwkJCQkJPHZhbCBvPSIxNzc0YTMiIHY9Ii02ODQ4Ii8+DQorCQkJCQk8dmFsIG89IjE3ODJiMyIgdj0iLTcyNzYiLz4NCisJCQkJCTx2YWwgbz0iMTc5MGM1IiB2PSItNjcxOCIvPg0KKwkJCQkJPHZhbCBvPSIxNzllZDQiIHY9Ii02MDQ0Ii8+DQorCQkJCQk8dmFsIG89IjE3YWNlNCIgdj0iLTU4NzkiLz4NCisJCQkJCTx2YWwgbz0iMTdiYWZkIiB2PSItNjA2NyIvPg0KKwkJCQkJPHZhbCBvPSIxN2M5MGYiIHY9Ii01NDg0Ii8+DQorCQkJCQk8dmFsIG89IjE3ZDcxZSIgdj0iLTU0MzciLz4NCisJCQkJCTx2YWwgbz0iMTdlNTJmIiB2PSItNTM0MiIvPg0KKwkJCQkJPHZhbCBvPSIxN2YzM2YiIHY9Ii00OTgxIi8+DQorCQkJCQk8dmFsIG89IjE4MDE0ZiIgdj0iLTUxOTMiLz4NCisJCQkJCTx2YWwgbz0iMTgwZjVmIiB2PSItNjMyMSIvPg0KKwkJCQkJPHZhbCBvPSIxODFkNmUiIHY9Ii02OTIzIi8+DQorCQkJCQk8dmFsIG89IjE4MmI3ZiIgdj0iLTc4ODkiLz4NCisJCQkJCTx2YWwgbz0iMTgzOThmIiB2PSItMTM0NjQiLz4NCisJCQkJCTx2YWwgbz0iMTg0N2ExIiB2PSItMTMzNTQiLz4NCisJCQkJCTx2YWwgbz0iMTg1NWFmIiB2PSItMTI4MTMiLz4NCisJCQkJCTx2YWwgbz0iMTg2M2MwIiB2PSItMTE5OTYiLz4NCisJCQkJCTx2YWwgbz0iMTg3MWNmIiB2PSItMTI0MzYiLz4NCisJCQkJCTx2YWwgbz0iMTg3ZmUwIiB2PSItMTE2NTgiLz4NCisJCQkJCTx2YWwgbz0iMTg4ZGVmIiB2PSItMTI1MDgiLz4NCisJCQkJCTx2YWwgbz0iMTg5YzAwIiB2PSItMTE5NjUiLz4NCisJCQkJCTx2YWwgbz0iMThiODBkIiB2PSItNzU2NyIvPg0KKwkJCQkJPHZhbCBvPSIxOGM2MWMiIHY9Ii04MTAwIi8+DQorCQkJCQk8dmFsIG89IjE4ZDQyYyIgdj0iLTc2NzYiLz4NCisJCQkJCTx2YWwgbz0iMThlMjNiIiB2PSItNjU2NSIvPg0KKwkJCQkJPHZhbCBvPSIxOGYwNGIiIHY9Ii02MTY3Ii8+DQorCQkJCQk8dmFsIG89IjE4ZmU1ZSIgdj0iLTU2NjAiLz4NCisJCQkJCTx2YWwgbz0iMTkwYzc2IiB2PSItNDQ3NSIvPg0KKwkJCQkJPHZhbCBvPSIxOTFhODYiIHY9Ii00MzA2Ii8+DQorCQkJCQk8dmFsIG89IjE5Mjg5NiIgdj0iLTQyNTIiLz4NCisJCQkJCTx2YWwgbz0iMTkzNmE2IiB2PSItNDEyNSIvPg0KKwkJCQkJPHZhbCBvPSIxOTQ0YjciIHY9Ii00MTI1Ii8+DQorCQkJCQk8dmFsIG89IjE5NTJjNiIgdj0iLTQ0OTgiLz4NCisJCQkJCTx2YWwgbz0iMTk2MGQ3IiB2PSItNTEzNyIvPg0KKwkJCQkJPHZhbCBvPSIxOTZlZTYiIHY9Ii01OTY3Ii8+DQorCQkJCQk8dmFsIG89IjE5N2NmOCIgdj0iLTYzNTQiLz4NCisJCQkJCTx2YWwgbz0iMTk4YjBmIiB2PSItNTk2NSIvPg0KKwkJCQkJPHZhbCBvPSIxOTk5MWYiIHY9Ii02NjE1Ii8+DQorCQkJCQk8dmFsIG89IjE5YjU0MSIgdj0iLTY2MTkiLz4NCisJCQkJCTx2YWwgbz0iMTljMzRkIiB2PSItNjE5OSIvPg0KKwkJCQkJPHZhbCBvPSIxOWQxNWUiIHY9Ii02MjM1Ii8+DQorCQkJCQk8dmFsIG89IjE5ZGY4MCIgdj0iLTYzMTMiLz4NCisJCQkJCTx2YWwgbz0iMTllZDkwIiB2PSItNjA3OSIvPg0KKwkJCQkJPHZhbCBvPSIxOWVlYmUiIHY9Ii02MDc1Ii8+DQorCQkJCQk8dmFsIG89IjE5ZmI4ZSIgdj0iLTIzOTAiLz4NCisJCQkJCTx2YWwgbz0iMWEwOWEwIiB2PSItMjYwMCIvPg0KKwkJCQkJPHZhbCBvPSIxYTE3YWUiIHY9Ii0zMDUxIi8+DQorCQkJCQk8dmFsIG89IjFhMjViZSIgdj0iLTMzMzgiLz4NCisJCQkJCTx2YWwgbz0iMWEzM2NkIiB2PSItMjIzOCIvPg0KKwkJCQkJPHZhbCBvPSIxYTQxZGQiIHY9Ii0yMTM3Ii8+DQorCQkJCQk8dmFsIG89IjFhNGZlZCIgdj0iLTE1NDYiLz4NCisJCQkJCTx2YWwgbz0iMWE1ZTA4IiB2PSItMTY3MCIvPg0KKwkJCQkJPHZhbCBvPSIxYTZjMDUiIHY9Ii05NjkiLz4NCisJCQkJCTx2YWwgbz0iMWE3YTE1IiB2PSItMTEyMyIvPg0KKwkJCQkJPHZhbCBvPSIxYTg4MjYiIHY9Ii0xMDcyIi8+DQorCQkJCQk8dmFsIG89IjFhOTYzNyIgdj0iLTQ4MSIvPg0KKwkJCQkJPHZhbCBvPSIxYWE0NDUiIHY9Ii01MzciLz4NCisJCQkJCTx2YWwgbz0iMWFiMjU1IiB2PSItOTk1Ii8+DQorCQkJCQk8dmFsIG89IjFhYzA2NSIgdj0iLTE4MTkiLz4NCisJCQkJCTx2YWwgbz0iMWFjZTc1IiB2PSItMjYzNiIvPg0KKwkJCQkJPHZhbCBvPSIxYWRjODciIHY9Ii0yOTIwIi8+DQorCQkJCQk8dmFsIG89IjFhZWE5NiIgdj0iLTI1OTQiLz4NCisJCQkJCTx2YWwgbz0iMWFmOGE3IiB2PSItMjg5OCIvPg0KKwkJCQkJPHZhbCBvPSIxYjA2YjciIHY9Ii0yMTczIi8+DQorCQkJCQk8dmFsIG89IjFiMTRjNiIgdj0iLTIwOTIiLz4NCisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIzMTEiLz4NCisJCQkJCTx2YWwgbz0iMWM4MjcwIiB2PSIzOTkiLz4NCisJCQkJCTx2YWwgbz0iMWM5MDdlIiB2PSIzNDg2Ii8+DQorCQkJCQk8dmFsIG89IjFjOWU4ZiIgdj0iMzM1NyIvPg0KKwkJCQkJPHZhbCBvPSIxY2FjYTIiIHY9IjM2NzAiLz4NCisJCQkJCTx2YWwgbz0iMWNiYWIxIiB2PSIzNTgwIi8+DQorCQkJCQk8dmFsIG89IjFjYzhjMSIgdj0iNTM5OCIvPg0KKwkJCQkJPHZhbCBvPSIxY2Q2ZDAiIHY9IjU0NzgiLz4NCisJCQkJCTx2YWwgbz0iMWNlNGRlIiB2PSI1NjE4Ii8+DQorCQkJCQk8dmFsIG89IjFjZjJmMCIgdj0iNTY1OSIvPg0KKwkJCQkJPHZhbCBvPSIxZDAxMDkiIHY9IjU5MjMiLz4NCisJCQkJCTx2YWwgbz0iMWQwZjA2IiB2PSI2NjUxIi8+DQorCQkJCQk8dmFsIG89IjFkMWQxNSIgdj0iNjY1NCIvPg0KKwkJCQkJPHZhbCBvPSIxZDJiMjUiIHY9IjY3MTMiLz4NCisJCQkJCTx2YWwgbz0iMWQzOTM1IiB2PSI2ODg1Ii8+DQorCQkJCQk8dmFsIG89IjFkNDc0NSIgdj0iNjg5MyIvPg0KKwkJCQkJPHZhbCBvPSIxZDU1NTUiIHY9IjY3MDUiLz4NCisJCQkJCTx2YWwgbz0iMWQ2MzY2IiB2PSI1ODUzIi8+DQorCQkJCQk8dmFsIG89IjFkNzE3NSIgdj0iNTU0NSIvPg0KKwkJCQkJPHZhbCBvPSIxZDdmODYiIHY9IjU1ODkiLz4NCisJCQkJCTx2YWwgbz0iMWQ4ZDk1IiB2PSItMzIxOSIvPg0KKwkJCQkJPHZhbCBvPSIxZDliYTYiIHY9Ii0zNjIwIi8+DQorCQkJCQk8dmFsIG89IjFkYTliNiIgdj0iLTM2MjMiLz4NCisJCQkJCTx2YWwgbz0iMWRiN2M3IiB2PSItMzQ3MiIvPg0KKwkJCQkJPHZhbCBvPSIxZGM1ZDUiIHY9Ii0zNjMwIi8+DQorCQkJCQk8dmFsIG89IjFkZDNlNiIgdj0iLTM3MjMiLz4NCisJCQkJCTx2YWwgbz0iMWRlMWY1IiB2PSItNjAzMyIvPg0KKwkJCQkJPHZhbCBvPSIxZGYwMDYiIHY9Ii02NzUyIi8+DQorCQkJCQk8dmFsIG89IjFkZmUxNiIgdj0iLTY2NDciLz4NCisJCQkJCTx2YWwgbz0iMWUwYzI2IiB2PSItNjc3OCIvPg0KKwkJCQkJPHZhbCBvPSIxZTFhMzYiIHY9Ii02Nzk0Ii8+DQorCQkJCQk8dmFsIG89IjFlMjg0NyIgdj0iLTY1OTMiLz4NCisJCQkJCTx2YWwgbz0iMWUzNjU5IiB2PSItNjEzNiIvPg0KKwkJCQkJPHZhbCBvPSIxZTQ0NjciIHY9Ii01NjUzIi8+DQorCQkJCQk8dmFsIG89IjFlNTI4MSIgdj0iLTQ5MTAiLz4NCisJCQkJCTx2YWwgbz0iMWU2MDg2IiB2PSItNDkwOCIvPg0KKwkJCQkJPHZhbCBvPSIxZTZlOTYiIHY9Ii00ODAzIi8+DQorCQkJCQk8dmFsIG89IjFlN2NhNiIgdj0iLTE5NzAiLz4NCisJCQkJCTx2YWwgbz0iMWU4YWI1IiB2PSItMTgyMCIvPg0KKwkJCQkJPHZhbCBvPSIxZTk4YzYiIHY9Ii0xODIxIi8+DQorCQkJCQk8dmFsIG89IjFlYTZkNSIgdj0iLTIyNzEiLz4NCisJCQkJCTx2YWwgbz0iMWViNGU2IiB2PSItMjMzMiIvPg0KKwkJCQkJPHZhbCBvPSIxZWMyZjYiIHY9Ii0yNjQ2Ii8+DQorCQkJCQk8dmFsIG89IjFlZDEwNiIgdj0iLTI2NDQiLz4NCisJCQkJCTx2YWwgbz0iMWVkZjE2IiB2PSItMjc0OSIvPg0KKwkJCQkJPHZhbCBvPSIxZWVkMjYiIHY9Ii0yNzI4Ii8+DQorCQkJCQk8dmFsIG89IjFlZmIzNiIgdj0iLTI1ODciLz4NCisJCQkJCTx2YWwgbz0iMWYwOTQ2IiB2PSItMjU0OCIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NTYiIHY9Ii0yMzc3Ii8+DQorCQkJCQk8dmFsIG89IjFmMjU2NiIgdj0iLTIzMzkiLz4NCisJCQkJCTx2YWwgbz0iMWYzMzc2IiB2PSItMjU2NiIvPg0KKwkJCQkJPHZhbCBvPSIxZjQxODciIHY9Ii0yNzg0Ii8+DQorCQkJCQk8dmFsIG89IjFmNGY5NiIgdj0iLTMxOTEiLz4NCisJCQkJCTx2YWwgbz0iMWY1ZGE3IiB2PSItMzU4MSIvPg0KKwkJCQkJPHZhbCBvPSIxZjZiYjYiIHY9Ii0zNTkxIi8+DQorCQkJCQk8dmFsIG89IjFmNzljNyIgdj0iLTMxMjQiLz4NCisJCQkJCTx2YWwgbz0iMWY4N2Q2IiB2PSItMzMzNyIvPg0KKwkJCQkJPHZhbCBvPSIxZjk1ZTciIHY9Ii0zMTQyIi8+DQorCQkJCQk8dmFsIG89IjFmYTQwMSIgdj0iLTI4MDYiLz4NCisJCQkJCTx2YWwgbz0iMWZiMjA0IiB2PSItMjQ4MCIvPg0KKwkJCQkJPHZhbCBvPSIxZmMwMTYiIHY9Ii0yNDk3Ii8+DQorCQkJCQk8dmFsIG89IjFmY2UyNSIgdj0iLTIxNzEiLz4NCisJCQkJCTx2YWwgbz0iMWZkYzM1IiB2PSItMjEzMyIvPg0KKwkJCQkJPHZhbCBvPSIxZmVhNDUiIHY9Ii0yMTU5Ii8+DQorCQkJCQk8dmFsIG89IjFmZjg1NSIgdj0iLTI1MDAiLz4NCisJCQkJCTx2YWwgbz0iMjAwNjY1IiB2PSItMjM5NSIvPg0KKwkJCQkJPHZhbCBvPSIyMDE0NzUiIHY9Ii0zNDY5Ii8+DQorCQkJCQk8dmFsIG89IjIwMjI4NiIgdj0iLTQ1MTIiLz4NCisJCQkJCTx2YWwgbz0iMjAzMDk1IiB2PSItNTM1NSIvPg0KKwkJCQkJPHZhbCBvPSIyMDNlYTUiIHY9Ii01OTE1Ii8+DQorCQkJCQk8dmFsIG89IjIwNGNiNiIgdj0iLTU3NzEiLz4NCisJCQkJCTx2YWwgbz0iMjA1YWM2IiB2PSItNTI4NyIvPg0KKwkJCQkJPHZhbCBvPSIyMDY4ZDYiIHY9Ii01Mzg2Ii8+DQorCQkJCQk8dmFsIG89IjIwNzZlNiIgdj0iLTU5NzYiLz4NCisJCQkJCTx2YWwgbz0iMjA4NGY2IiB2PSItNjEwMCIvPg0KKwkJCQkJPHZhbCBvPSIyMDkzMDYiIHY9Ii02NzQyIi8+DQorCQkJCQk8dmFsIG89IjIwYTExNiIgdj0iLTYzMTIiLz4NCisJCQkJCTx2YWwgbz0iMjBhZjI2IiB2PSItNTUzMyIvPg0KKwkJCQkJPHZhbCBvPSIyMGJkMzciIHY9Ii01NDU1Ii8+DQorCQkJCQk8dmFsIG89IjIwY2I0NiIgdj0iLTQ2MzAiLz4NCisJCQkJCTx2YWwgbz0iMjBkOTU3IiB2PSItNDM0OCIvPg0KKwkJCQkJPHZhbCBvPSIyMGU3NjciIHY9Ii00MDQ2Ii8+DQorCQkJCQk8dmFsIG89IjIwZjU4MSIgdj0iLTM4NTUiLz4NCisJCQkJCTx2YWwgbz0iMjEwMzg2IiB2PSItMzUxOSIvPg0KKwkJCQkJPHZhbCBvPSIyMTExOTQiIHY9Ii0zMTMxIi8+DQorCQkJCQk8dmFsIG89IjIxMWZhNSIgdj0iLTMwMTQiLz4NCisJCQkJCTx2YWwgbz0iMjEyZGI1IiB2PSItMjkwNCIvPg0KKwkJCQkJPHZhbCBvPSIyMTNiYzUiIHY9Ii0yODI2Ii8+DQorCQkJCQk8dmFsIG89IjIxNDlkNiIgdj0iLTM2ODAiLz4NCisJCQkJCTx2YWwgbz0iMjE1N2U1IiB2PSItNDUwNyIvPg0KKwkJCQkJPHZhbCBvPSIyMTY1ZjYiIHY9Ii01ODQ0Ii8+DQorCQkJCQk8dmFsIG89IjIxNzQwNiIgdj0iLTYxOTUiLz4NCisJCQkJCTx2YWwgbz0iMjE4MjE3IiB2PSItNjE2NSIvPg0KKwkJCQkJPHZhbCBvPSIyMTkwMjYiIHY9Ii02MTQyIi8+DQorCQkJCQk8dmFsIG89IjIxOWUzOSIgdj0iLTYyMjMiLz4NCisJCQkJCTx2YWwgbz0iMjFhYzQ2IiB2PSItNTkzOCIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNTciIHY9Ii01OTI2Ii8+DQorCQkJCQk8dmFsIG89IjIxYzg2NyIgdj0iLTU1NTciLz4NCisJCQkJCTx2YWwgbz0iMjFkNjc3IiB2PSItNjI0MCIvPg0KKwkJCQkJPHZhbCBvPSIyMWU0ODciIHY9Ii01NzUwIi8+DQorCQkJCQk8dmFsIG89IjIxZjI5NiIgdj0iLTU3NzIiLz4NCisJCQkJCTx2YWwgbz0iMjIwMGE2IiB2PSItNTQ2OCIvPg0KKwkJCQkJPHZhbCBvPSIyMjBlYjciIHY9Ii01MzkzIi8+DQorCQkJCQk8dmFsIG89IjIyMWNjNiIgdj0iLTQ1NDMiLz4NCisJCQkJCTx2YWwgbz0iMjIyYWQ3IiB2PSItMzg3NiIvPg0KKwkJCQkJPHZhbCBvPSIyMjM4ZTciIHY9Ii0zNjIyIi8+DQorCQkJCQk8dmFsIG89IjIyNDcwMSIgdj0iLTMyOTIiLz4NCisJCQkJCTx2YWwgbz0iMjI1NTA1IiB2PSItMTY4MSIvPg0KKwkJCQkJPHZhbCBvPSIyMjYzMTUiIHY9Ii0yMDgyIi8+DQorCQkJCQk8dmFsIG89IjIyNzEyNSIgdj0iLTIwNDMiLz4NCisJCQkJCTx2YWwgbz0iMjI3ZjM1IiB2PSItMTY3NSIvPg0KKwkJCQkJPHZhbCBvPSIyMjhkNDUiIHY9Ii0xNzg1Ii8+DQorCQkJCQk8dmFsIG89IjIyOWI1NCIgdj0iLTM0OTQiLz4NCisJCQkJCTx2YWwgbz0iMjJhOTY1IiB2PSItNDA4MCIvPg0KKwkJCQkJPHZhbCBvPSIyMmI3NzYiIHY9Ii00NDU0Ii8+DQorCQkJCQk8dmFsIG89IjIyYzU4NiIgdj0iLTQ4MTYiLz4NCisJCQkJCTx2YWwgbz0iMjJkMzk3IiB2PSItNDQwNSIvPg0KKwkJCQkJPHZhbCBvPSIyMmUxYTYiIHY9Ii00NjIwIi8+DQorCQkJCQk8dmFsIG89IjIyZWZiNiIgdj0iLTQ4MjAiLz4NCisJCQkJCTx2YWwgbz0iMjJmZGM3IiB2PSItNDY0MyIvPg0KKwkJCQkJPHZhbCBvPSIyMzBiZDciIHY9Ii00NDM1Ii8+DQorCQkJCQk8dmFsIG89IjIzMTllNiIgdj0iLTUzOTciLz4NCisJCQkJCTx2YWwgbz0iMjMyN2Y2IiB2PSItNTU1OCIvPg0KKwkJCQkJPHZhbCBvPSIyMzM2MWIiIHY9Ii01ODgzIi8+DQorCQkJCQk8dmFsIG89IjIzNDQxNiIgdj0iLTUyMDciLz4NCisJCQkJCTx2YWwgbz0iMjM1MjI2IiB2PSItNTIwMyIvPg0KKwkJCQkJPHZhbCBvPSIyMzYwMzciIHY9Ii01MjUzIi8+DQorCQkJCQk8dmFsIG89IjIzNmU0NiIgdj0iLTQzNDIiLz4NCisJCQkJCTx2YWwgbz0iMjM3YzU3IiB2PSItNDE5NCIvPg0KKwkJCQkJPHZhbCBvPSIyMzhhNjYiIHY9Ii0zOTkxIi8+DQorCQkJCQk8dmFsIG89IjIzOTg4MSIgdj0iLTMxOTUiLz4NCisJCQkJCTx2YWwgbz0iMjNhNjg1IiB2PSItMzMyOCIvPg0KKwkJCQkJPHZhbCBvPSIyM2I0OTUiIHY9Ii0zMTkxIi8+DQorCQkJCQk8dmFsIG89IjIzYzJhNCIgdj0iLTI5NjYiLz4NCisJCQkJCTx2YWwgbz0iMjNkMGI1IiB2PSItMjk1OSIvPg0KKwkJCQkJPHZhbCBvPSIyM2RlYzQiIHY9Ii0yOTE2Ii8+DQorCQkJCQk8dmFsIG89IjIzZWNkNSIgdj0iLTM2MjAiLz4NCisJCQkJCTx2YWwgbz0iMjNmYWU0IiB2PSItNDU2MiIvPg0KKwkJCQkJPHZhbCBvPSIyNDA4ZjYiIHY9Ii01MDEzIi8+DQorCQkJCQk8dmFsIG89IjI0MTcwNiIgdj0iLTU3OTMiLz4NCisJCQkJCTx2YWwgbz0iMjQyNTE4IiB2PSItNjYwNSIvPg0KKwkJCQkJPHZhbCBvPSIyNDMzMjUiIHY9Ii02Nzg3Ii8+DQorCQkJCQk8dmFsIG89IjI0NDEzNyIgdj0iLTY3MzIiLz4NCisJCQkJCTx2YWwgbz0iMjQ0ZjQ2IiB2PSItNjQzNSIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNjYiIHY9Ii02NDE1Ii8+DQorCQkJCQk8dmFsIG89IjI0Nzk3NiIgdj0iLTYyNjEiLz4NCisJCQkJCTx2YWwgbz0iMjQ4Nzg2IiB2PSItNTM3MSIvPg0KKwkJCQkJPHZhbCBvPSIyNDk1N2UiIHY9Ii01NzAzIi8+DQorCQkJCQk8dmFsIG89IjI0YTM4ZiIgdj0iLTU2NjgiLz4NCisJCQkJCTx2YWwgbz0iMjRiMTljIiB2PSItNTgxMCIvPg0KKwkJCQkJPHZhbCBvPSIyNGJmYWMiIHY9Ii01NDk1Ii8+DQorCQkJCQk8dmFsIG89IjI0Y2RiYyIgdj0iLTUzNjgiLz4NCisJCQkJCTx2YWwgbz0iMjRkYmNkIiB2PSItNDUzOSIvPg0KKwkJCQkJPHZhbCBvPSIyNGU5ZTUiIHY9Ii00MDAzIi8+DQorCQkJCQk8dmFsIG89IjI0ZjgwOCIgdj0iLTM0ODciLz4NCisJCQkJCTx2YWwgbz0iMjUwNjE2IiB2PSItMzU5NyIvPg0KKwkJCQkJPHZhbCBvPSIyNTE0MjYiIHY9Ii0zNTc1Ii8+DQorCQkJCQk8dmFsIG89IjI1MjIzNiIgdj0iLTM0MjIiLz4NCisJCQkJCTx2YWwgbz0iMjUzMDQ3IiB2PSItMzYxMCIvPg0KKwkJCQkJPHZhbCBvPSIyNTNlNTYiIHY9Ii00MDY5Ii8+DQorCQkJCQk8dmFsIG89IjI1NGM2NyIgdj0iLTQyMDkiLz4NCisJCQkJCTx2YWwgbz0iMjU1YTc2IiB2PSItNDk3NyIvPg0KKwkJCQkJPHZhbCBvPSIyNTY4ODciIHY9Ii01ODQ1Ii8+DQorCQkJCQk8dmFsIG89IjI1NzY5NyIgdj0iLTU2NjIiLz4NCisJCQkJCTx2YWwgbz0iMjU4NGE4IiB2PSItMTUxNTUiLz4NCisJCQkJCTx2YWwgbz0iMjU5MmI2IiB2PSItODYyMSIvPg0KKwkJCQkJPHZhbCBvPSIyNWEwYzciIHY9Ii00NjA5Ii8+DQorCQkJCQk8dmFsIG89IjI1YWVkNyIgdj0iLTYzMjkiLz4NCisJCQkJCTx2YWwgbz0iMjViY2U3IiB2PSItNjEyMCIvPg0KKwkJCQkJPHZhbCBvPSIyNWNhZjgiIHY9Ii01ODE5Ii8+DQorCQkJCQk8dmFsIG89IjI1ZDkwNyIgdj0iLTU4MDAiLz4NCisJCQkJCTx2YWwgbz0iMjVlNzE4IiB2PSItNTYyNyIvPg0KKwkJCQkJPHZhbCBvPSIyNWY1MjciIHY9Ii01MzE4Ii8+DQorCQkJCQk8dmFsIG89IjI2MDMzOCIgdj0iLTU1NDMiLz4NCisJCQkJCTx2YWwgbz0iMjYxMTQ5IiB2PSItNDkxNiIvPg0KKwkJCQkJPHZhbCBvPSIyNjFmNTkiIHY9Ii00NTg5Ii8+DQorCQkJCQk8dmFsIG89IjI2MmQ2OCIgdj0iLTQ2NzAiLz4NCisJCQkJCTx2YWwgbz0iMjYzYjgzIiB2PSItMzY5NCIvPg0KKwkJCQkJPHZhbCBvPSIyNjQ5ODYiIHY9Ii0zNDkxIi8+DQorCQkJCQk8dmFsIG89IjI2NTc5NSIgdj0iLTM1ODIiLz4NCisJCQkJCTx2YWwgbz0iMjY2NWE2IiB2PSItMzY4MyIvPg0KKwkJCQkJPHZhbCBvPSIyNjczYjUiIHY9Ii0zNjA4Ii8+DQorCQkJCQk8dmFsIG89IjI2ODFjNiIgdj0iLTM2ODEiLz4NCisJCQkJCTx2YWwgbz0iMjY4ZmQ1IiB2PSItMzg1MCIvPg0KKwkJCQkJPHZhbCBvPSIyNjlkZTYiIHY9Ii0zOTIzIi8+DQorCQkJCQk8dmFsIG89IjI2YWJmNiIgdj0iLTM5NTUiLz4NCisJCQkJCTx2YWwgbz0iMjZiYTA2IiB2PSItNDQ2NyIvPg0KKwkJCQkJPHZhbCBvPSIyNmM4MTciIHY9Ii00MjU3Ii8+DQorCQkJCQk8dmFsIG89IjI2ZDYyYiIgdj0iLTM5MTUiLz4NCisJCQkJCTx2YWwgbz0iMjZlNDM2IiB2PSItMzg5NyIvPg0KKwkJCQkJPHZhbCBvPSIyNmYyNDciIHY9Ii0zNTMxIi8+DQorCQkJCQk8dmFsIG89IjI3MDA1NyIgdj0iLTM3OTgiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTY3IiB2PSItMzYyOCIvPg0KKwkJCQkJPHZhbCBvPSIyNzFjNzciIHY9Ii00NTQwIi8+DQorCQkJCQk8dmFsIG89IjI3MmE4NyIgdj0iLTUxNzEiLz4NCisJCQkJCTx2YWwgbz0iMjczODk3IiB2PSItNTAzOCIvPg0KKwkJCQkJPHZhbCBvPSIyNzQ2YTgiIHY9Ii01MDI4Ii8+DQorCQkJCQk8dmFsIG89IjI3NTRiOSIgdj0iLTUwMjkiLz4NCisJCQkJCTx2YWwgbz0iMjc2MmM3IiB2PSItMzk5MyIvPg0KKwkJCQkJPHZhbCBvPSIyNzcwZDgiIHY9Ii0zNTUxIi8+DQorCQkJCQk8dmFsIG89IjI3N2VlNyIgdj0iLTMyMDYiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSI2NzQ2MDEiIGg9IjNkYzFhN2UwIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMjIxMjM6MTM3Ojg4Ojc2OjEwMzo2OTo4OTo2MDQ3OjY1NzE6MjEzNDo2NDE0OjIyMjM6MjcyNy4yMzE6MTQzNS42NzU6NS45Nzk6MC4wNjc6MDo0MTcxOjQxMDM5OjI5MDUyOjQyMTA0OjEyMjE4OjI0NzIxOjEzNTA0Ojg5NzU6MTExNTM6Mjk5MDo4NjY1Ojk3NTk6MTE3NDIiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSI2NzM4MDEiIGg9IjNkYzFhN2UwIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMDowOjA6MDowOjA6MDoyNDcyOjIyNTA1OjI1MTYwOjE2NDI1OjMwMDEyOjIzNTE0LjIyOToxMTY3NS4zNjI6OS4yNzI6MC40MTY6MDo2NDkxOjMyMjE6Mjg2Nzo0MjA0OjIyODIyOjMwNDc6NjI2MzoxNTM0Mjo5Nzg1OjMyNDI0OjIzMzQ2OjIxNTc4OjIzNTA4Ii8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iNjczNDAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjcyODk4OjE5MToxODg6MTc2OjE3ODoxNzQ6MTgxOjEwNDQxOjE0MDc5OjEzNjA6NDY2Njc6NzQxMzE6ODA5OTYuMTM6NTAzMjQuMzI2OjMyLjE4ODowLjAzODowOjQ0MDI3OjIwMDI4OToxMDkyMTY6NTI0NjE6MTI5NTE6NzU4OTY6NjkxOTY6MTA0ODUyOjExNzAzNjo5NjkwMzoxMjA3MTQ6MTI0MzA4Ojk2MjA3Ii8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iNjczMDAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjA6MDowOjA6MDowOjA6MzQ3NjozMjI2OjU1OTc6NDg1MzowOjA6MDowLjAwMTowLjEzNzowOjA6MDowOjA6NTA3MzU6NTkyMDU6MDowOjA6MDowOjA6MCIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjI2Mjc0NjAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjEzMDU6OjI4Njk6OjQ0ODI6OjYwNjY6OjczOTY6Ojg1NzM6OjEwMjYyOjoxMTkyMjo6MTM3NzM6OjE1NDkyOjoxNzUyMjo6MTk1NDQ6OjIxNDUyOjoyMjA3MDo6MjIwNzU6OjIyMDgwOjoyMjA4NDo6MjIwODU6OjIyMDkwOjoyMjA5Nzo6MjIxMDM6OjIyMTA5OjoyMjExNjo6MDo6Njo6MTM6OjIwOjoyNzo6MzI6OjM0Ojo0MTo6NDg6OjU0Ojo2MTo6Njg6Ojc1Ojo4Mjo6ODk6Ojk2OjoxMDM6OjExMDo6MTEwOjoxMTE6OjExNjo6MTE5OjoxMjM6OjEyOSIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6NTo6NTo6Nzo6MTE6OjEyOjoxMjo6MTc6OjI0OjozMDo6Mzc6OjQ0Ojo1MTo6NTg6OjY1Ojo2OTo6NzE6OjcxOjo3MTo6NzM6Ojc1Ojo3Njo6NzY6OjgxOjowOjo2OjoxMzo6MjA6OjI3OjozNDo6NDA6OjQ0Ojo1MDo6Ojo1MTo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTE6OjUxOjo1MTo6NTQ6OjYwOjo2Mzo6Njk6OjAiLz4NCisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjY6OjEzOjoyMDo6Mjc6OjM0OjozODo6NDQ6OjQ2Ojo0Njo6NDc6OjUyOjo1ODo6NjU6OjY2Ojo2Njo6Njc6OjY5Ojo2OTo6NzA6Ojc2Ojo4Mzo6ODk6Ojk2OjowOjo1OjoxMjo6MTk6OjI1OjozMDo6MzE6OjM1OjozNzo6Mzc6OjM3OjozNzo6Mzg6OjQ0Ojo0NTo6NDU6OjQ1Ojo0NTo6NDU6OjQ1Ojo0ODo6NTE6OjU2Ojo2Mjo6MCIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iNjo6MTQ6OjIxOjoyODo6MzU6OjQyOjo0Nzo6NTA6OjUwOjo1MDo6NTI6OjU5Ojo2NTo6Njk6OjcyOjo3NDo6NzU6Ojc1Ojo3NTo6NzU6Ojc4Ojo3OTo6ODI6OjA6Ojc6OjE0OjoyMTo6Mjg6OjM0OjozODo6NDQ6OjQ1Ojo0NTo6NDk6OjU2Ojo2Mzo6NzA6Ojc2Ojo4MDo6ODM1OjoxNjc1OjoyMDM4OjoyMDM5OjoyODU2OjozMTU4OjozNjA3Ojo0NDMxOjowIi8+DQorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSI2Mjk6Ojc5Nzo6MTQ1Njo6MjM4Mjo6MjQ3Njo6MjQ3Nzo6MjgyMTo6MjgyMTo6MjgyMTo6OjoyODIxOjoyODIxOjoyODU2OjoyODY1OjoyODY1OjozMDQ5OjozMjIzOjozMjY3OjozNTMyOjo0MzA0Ojo1MTQ3Ojo1MTQ3Ojo1NDQ5OjowOjoxMDE6OjEwMjo6MjUyOjo1OTI6OjYwNTo6NjA1Ojo2MDU6OjYwNTo6NjEyOjo2MTI6OjYxMjo6NjEyOjo2MTI6OjYxMjo6NjEyOjo2Nzk6Ojc2Nzo6NzY3Ojo3Njc6Ojc2Nzo6NzY3Ojo3Njc6OjkxMDo6MDo6MTE1OCIvPg0KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iMjI4OTo6MjcwMTo6MzA3Njo6MzA3Njo6MzM4NTo6MzkwNDo6MzkwNDo6MzkwNDo6MzkwNDo6MzkwNDo6MzkwNDo6MzkwNDo6MzkwNDo6MzkwNDo6MzkwNDo6MzkxMTo6NDAyMzo6NDU5OTo6NTIzNzo6NTQ5NDo6NTc4MDo6NjA3Mjo6MDo6NjIyOjo2MjI6OjYyMjo6NjIyOjo2MjI6OjcxNjo6ODE5Ojo4MTk6OjgxOTo6ODE5Ojo4MTk6OjgxOTo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjo4NzA6Ojg3MDo6ODcwOjoxMDI0OjowOjoxMTI3Ii8+DQorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIxOTU0OjoyMTczOjoyMzc3OjoyMzc3OjoyMzc3OjoyMzc3OjoyMzc3OjoyMzc3OjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzgxOjoyMzg0OjoyNDAwOjoyNDAwOjowOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjE2Mzo6MTYzOjoxNjM6OjE2Mzo6MjA0OjozMzA6Ojc1MTo6MTQwMDo6MTQzMzo6MTQzMzo6MTQzMzo6MTQzNS4xOjoxNDM1LjE6OjE0MzUuMTo6MTQzNS4xOjoxNDM1LjE6OjE0MzUuMTQ0OjoxNDM1LjM3NTo6MTQzNS4zODE6OjA6OjEuMTc5Ii8+DQorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMi40ODY6OjMuODY5Ojo1LjI3ODo6NS44MDk6OjUuODExOjo1LjgxMTo6NS44MTE6OjUuODQzOjo1Ljk2Nzo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2ODo6NS45Njg6OjUuOTY4Ojo1Ljk2OTo6NS45Njk6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDAxOjowLjAxNDo6MC4wMzI6OjAuMDQ6OjAuMDQ2OjowLjA0OTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTo6MC4wNTM6OjA6OjAuMDA1Ii8+DQorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDU6OjAuMDA1OjowLjAwNTo6MC4wMDk6OjAuMDA5OjowLjAwOTo6MC4wMDk6OjAuMDA5OjowLjAwOTo6MC4wMTQ6OjA6OjAuMDA0OjowLjAyOjowLjAzMTo6MC4wNDI6OjAuMDQ0OjowLjA0NDo6MC4wNDQ6OjAuMDQ0OjowLjA0NDo6MC4wNDQ6OjAuMDQ0OjowLjA0Nzo6MC4wNTo6MC4wNTE6OjAuMDU0OjowLjA1NDo6MC4wNTQ6OjA6OjA6OjA6OjA6OjE3NTo6MTg3ODo6MDo6MjMwMyIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjUwMTY6Ojc4ODk6OjEwODI1OjoxMjc4NTo6MTM0Mjg6OjE0NTY4OjoxNjI4MTo6MTc4NzA6OjE4NzU3OjoxOTY3Mzo6MjIzMTQ6OjI1MzE3OjoyODAxNzo6MzA2MTE6OjMyNTcxOjo6OjMzMDc4OjozMzU3MDo6MzQ4NjU6OjM2MTI0OjozNzY3MDo6Mzk5MDg6OjA6Ojk3ODo6MjU0MDo6NDIzNjo6NTk5Mjo6Njc3Mzo6NjgxODo6NjkxNTo6NzY0Mzo6ODUxMDo6ODYxODo6Ojo5MzU0OjoxMDMzNDo6MTA4NTc6OjExMTkwOjoxMTM4Nzo6MTEzODc6OjEyODE4OjoxNTU0Nzo6MTkwMTE6OjIxMDc3OjoyMjYxMDo6MjU2ODI6OjA6OjI2ODI6OjU3NTc6OjkwOTQiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIxMjQzOTo6MTQ4MTA6OjE2NDI2OjoxODE3Mjo6MjA0NjI6OjIyODUxOjoyNDk1Nzo6MjY5MTI6OjI5MjAwOjozMTc4OSIvPg0KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9IjgxOTc6OjgyNjQ6OjgzNjU6OjgzNjU6Ojg5OTY6Ojk5OTY6OjEwNTcwOjoxMDU3MDo6MTA1NzA6OjEwODA3OjowOjozODg6Ojc3Njo6MTY1NTo6MjM3NDo6MjM5MTo6MjM5MTo6MjQyOTo6MzMzMjo6MzY3Nzo6Mzc2ODo6Mzg1MTo6NDI5NDo6NDkzMDo6NTg0Nzo6NjYyNTo6Nzg1Mjo6OTQ5Mjo6MTEzMjg6OjEzMzc2OjoxNTYyMDo6MTc5NDY6OjIwMTcwOjoyMjQ2OTo6MDo6MTk3OTo6NDE3OTo6NDgxNzo6NTMwMjo6NTYxMjo6NTgwMjo6NjA3NTo6Njc4Nzo6NzE3Mjo6NzQ4OTo6NzY2ODo6Nzg2Nzo6ODE4NCIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjgyNzA6OjgyNzA6OjgyNzA6OjgyNzA6OjgyNzA6OjgyNzk6Ojg0MjU6Ojg3NjY6OjkyNjE6OjExMzc5OjowOjo5Njc6OjIyMzI6OjMyMjQ6OjM1ODQ6OjM3MDg6OjM3NDI6OjQxOTI6OjQzNzM6OjQzNzk6OjQzNzk6OjQzNzk6OjQzNzk6OjQzNzk6OjQzNzk6OjQ0Njg6OjQ4MTY6OjUxMTE6OjU1MzM6OjYzOTM6OjY3NDA6OjczOTQ6OjczOTQ6Ojc5ODg6OjA6OjE0Nzk6OjI0MDc6OjI5MDc6OjMzNDE6OjMzNDc6OjMzNDc6OjM1MjI6OjQ1MjE6OjQ3MDI6OjUxMDQ6OjUzOTk6OjY1MTE6OjY1MTEiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSI2NTExOjo2NTExOjo3NTU0Ojo4MDQ2Ojo4MDQ2Ojo4MDg0Ojo4NzgxOjo5NDM3Ojo5NDM3OjoxMDAzNDo6MDo6MjU4OjoyNTg6OjI1ODo6MjU4OjoyNTg6OjMwMzo6NTQxOjoxMDk3OjoxMTIyOjoxMTIyOjoxMTIyOjoxMTIyOjoxMzk3OjoxNDI5OjoyMDUyOjoyNjM4OjoyNjM4OjoyNjM4OjoyNjM4OjoyNjM4OjoyNzc5OjoyNzc5OjoyNzc5OjowOjoyMTE6OjcxNjo6OTkzOjo5OTM6Ojk5Mzo6OTkzOjoxMDU4OjoxMDYwOjoxMDYwOjoxMDYwOjoxMDYwOjoxMTIzOjoxNjQwIi8+DQorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMzI4MDo6Mzk1Mjo6Mzk2Mjo6Mzk2Mjo6Mzk2Mjo6NDI5Nzo6NTU4Njo6Njk5ODo6Nzk1Njo6MDo6NDkyOjoxNTcwOjoyNjgzOjozNTg1OjozNjE1OjozNjE4OjozNjU5OjozNjU5OjozNjU5OjozNjU5OjozOTczOjo2NzY3Ojo4NjQ0Ojo4NzE3Ojo4NzE4Ojo4NzE4Ojo4NzE4Ojo4NzE4Ojo4NzE4Ojo4NzE4Ojo4ODk4Ojo4ODk4Ojo5MjA1OjowOjo1MDI6OjE4MjU6OjM3MjI6OjU3NTg6OjcyMzc6OjgxNTk6OjgyMjY6OjgyMjY6OjgyMjY6OjgyMjY6OjgyMjY6OjgyMjY6OjgyMjY6OjgyMjYiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSI4MjI2Ojo4MjQwOjo4NTA0Ojo4OTgwOjo5NDY2OjoxMDMwODo6MTA2NjY6OjEwNjY2OjoxMDczOSIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjI2MjczODAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6NjgwOjoxNzUzOjoyNDM2OjoyNDM5OjoyNDcxOjoyNDcyOjoyNDcyOjowIi8+DQorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSIyNzM6OjMwNDo6MzA0OjozMDQ6OjM5Mjo6MTQ2Nzo6MTk2MTo6MjczNTo6NDUxMTo6OjoxMjExNDo6MTYzMzc6OjE4MjUyOjoxODQ1Mjo6MTkwNTE6OjIwNzI0OjoyMTExNTo6MjE2MTE6OjIxNjE2OjoyMTYxNjo6MjE2NDc6OjIyNDYwOjoyMjUwNTo6MDo6MTQyODo6MTc4Njo6MTgyMTo6MTgyMTo6MjEwMDo6MzExNjo6NDYwNjo6NTcwMDo6NjI2Mzo6NzIzMjo6ODMyMTo6OTIwMjo6OTcwNjo6MTAxMDk6OjEwNTY3OjoxMTgyNzo6MTIzNTY6OjE0ODE4OjoxNzQxNjo6MjAxODY6OjIyNjI4OjoyNDQ2Nzo6MjUxNjA6OjA6OjE2Ii8+DQorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSIxNjo6MTY6OjE4Ojo3NjE6OjIzMTc6OjIzNDU6OjMwMzE6OjUwMTA6Ojc2ODE6OjEwNzE5OjoxMzQ5MTo6MTQwNzk6OjE0NTQxOjoxNDc4ODo6MTUwMjg6OjE1NTUxOjoxNjE4Mjo6MTYxODI6OjE2MzI3OjoxNjM1MTo6MTYzOTQ6OjE2NDI0OjowOjoxMjU0OjoyNTIxOjozMzA0Ojo0MjE0Ojo2MTg5Ojo4NTQyOjo4ODg0Ojo5NzE0OjoxMDkwNzo6MTI0NDc6OjEzNjA0OjoxNDQwNzo6MTQ5Mjg6OjE2ODU1OjoxODMyMzo6MjAwMTY6OjIyMzA2OjoyMzk1Mjo6MjU1MTE6OjI2NzAwOjoyNzg1ODo6Mjk1MTI6OjMwMDEyOjowOjowIi8+DQorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIxNDo6MTQ6OjE2Ojo4NDg6OjI1MTI6OjQxMTQ6OjU1NTY6OjcwNzA6Ojc5Njc6Ojk0MjQ6OjEwODEyOjoxMTcyMjo6MTI4Mjk6OjEzOTUwOjoxNTAzMzo6MTcwOTU6OjE5NDIzOjoyMDY3MDo6MjExMjk6OjIxODI4OjoyMjYwODo6MjM0NDQ6OjA6OjEwMjQ6OjE1MDg6OjE3ODY6OjE5ODU6OjI5NTE6OjQ5MDA6OjY1ODk6OjgwNTM6Ojg4NDk6Ojg5Mjk6Ojg5Mjk6Ojg5Mjk6Ojk1MDI6OjEwMzgwOjoxMTIwMDo6MTE2NjkuNDM6OjExNjcwLjcxNDo6MTE2NzEuNTAxOjoxMTY3My4yMzY6OjExNjc0LjMyNDo6MTE2NzQuNjE2OjoxMTY3NC44ODc6OjExNjc1LjM0NTo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjA6OjA6OjA6OjA6OjAuNjMyOjoxLjU3OjoyLjc4Nzo6NC4zODk6OjUuMzUzOjo2LjY3Njo6Ny44MjU6OjguNDczOjo5LjA1OTo6OS4wNzo6OS4wODM6OjkuMTEzOjo5LjE0OTo6OS4xODY6OjkuMjIyOjo5LjI1NDo6OS4yNjM6OjkuMjY3OjowOjowLjA1NDo6MC4wNzg6OjAuMDk0OjowLjExMzo6MC4xNDk6OjAuMjo6MC4yMjk6OjAuMjM0OjowLjI0MTo6MC4yNDQ6OjAuMjQ1OjowLjI0NTo6MC4yNDU6OjAuMjQ1OjowLjI0NTo6MC4yNDY6OjAuMjc2OjowLjMwOTo6MC4zNDg6OjAuMzgzOjowLjQwODo6MC40MTU6OjAuNDE2OjowOjowLjAyMiIvPg0KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjAuMDMxOjowLjAzMjo6MC4wMzM6OjAuMDQ1OjowLjA3Njo6MC4xOjowLjEyMTo6MC4xNjE6OjAuMTk3OjowLjIyNzo6MC4yNTI6OjAuMjU3OjowLjI2NDo6MC4yNzU6OjAuMjk1OjowLjMxNTo6MC4zMjI6OjAuMzI5OjowLjMzMjo6MC4zNDg6OjAuMzU3OjowLjM1Nzo6MDo6MDo6MDo6MDo6MDo6MDo6MC4wMTU6OjAuMDUxOjowLjA2Mjo6MC4wNjg6OjAuMDc5OjowLjA5MTo6MC4wOTQ6OjAuMDk0OjowLjA5Nzo6MC4xMDg6OjAuMTI1OjowLjE2MTo6MTQyNTo6MzU2Mzo6NTA4Nzo6NjA4MTo6NjQ5MTo6NjQ5MTo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjA6OjA6OjA6OjA6OjM6OjQ6OjE3OjoxNzo6MTc6OjE3Ojo4Mzo6ODM6OjgzOjo4Mzo6ODM6Ojo6MjgxNTo6MzIyMTo6MzIyMTo6MzIyMTo6MzIyMTo6MzIyMTo6MDo6MDo6MDo6MDo6MDo6MDo6NTAzOjoyMTI0OjoyMTI0OjoyMTM1OjoyMTg3Ojo6OjIyMjA6OjIyMjA6OjIyMjA6OjIyMjA6OjIyMzE6OjI4NTc6OjI4Njc6OjI4Njc6OjI4Njc6OjI4Njc6OjI4Njc6OjI4Njc6OjA6OjA6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIwOjowOjowOjowOjo1Ojo1Ojo1Ojo1Ojo1Ojo1Ii8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTQxMzk6OjE0MjE4OjoxNDUzODo6MTY0Njc6OjE2NDkzOjoxNjQ5Mzo6MTc5MTM6OjIwMzg4OjoyMjUwMzo6MjI4MjI6OjA6OjI0Mjo6MjQyOjoyNDI6OjI0Mjo6NDczOjoxNjE0OjoyNzgzOjoyNzgzOjoyNzg1OjozMDQzOjozMDQ2OjozMDQ2OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjozMDQ3OjowOjowOjowOjoxMDE6OjEwMTo6MTAxOjoxNTU6OjE1NTo6MTU1OjoxNTU6OjE1NTo6MTU4OjoxNTg6OjE1OCIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjMwMzo6Njg5OjoxMjY3OjozMjkxOjo1MzYyOjo1OTY0Ojo1OTY0Ojo2MjA1Ojo2MjYzOjo2MjYzOjowOjo2Nzo6Nzg6Ojc4Ojo3ODo6OTY6OjI3OTo6MTI1Nzo6MjE2OTo6MzM4Mjo6NTYyODo6NzY5Mjo6OTE0NDo6OTgwMDo6MTE0MTA6OjEzMTkzOjoxMzc3MDo6MTQ1MDA6OjE0NTAyOjoxNDUyNjo6MTQ1Mjg6OjE0NjkzOjoxNTMzNzo6MTUzNDI6OjA6OjA6OjEyODo6MTI4OjoxMjg6OjYzMTo6MTk2MDo6MjgzNDo6Mjg0Nzo6Mjk5NDo6MzQ0NTo6MzQ0NTo6MzQ0NTo6NDAxMCIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjUzMDQ6OjY4MDI6OjcxODg6OjczMDQ6Ojc3Nzc6OjgxMTk6OjgxMTk6OjgyMzg6Ojk3MzE6Ojk3ODU6OjA6OjMyMDI6OjUxMzc6OjU1OTM6OjYzMDQ6Ojg1Nzc6OjEyMzIyOjoxMjU2MTo6MTI1NjE6OjEzOTYwOjoxNjUzMzo6MjAxMjc6OjIyODQxOjoyMjg2Mzo6MjMxMDY6OjIzMjQ3OjoyMzI0Nzo6MjQ5ODc6OjI2NDAyOjoyNzU5MDo6MjgwNzU6OjI5MjYzOjozMTQzODo6MzIzMjU6OjA6OjE3MTo6MTcxOjoyMDA6OjM0NDo6MTQ3Njo6MjQyNTo6MzM4Nzo6NDE0NTo6NTg3NTo6OTIxMDo6MTIyOTE6OjE1MTQ0OjoxNTE0NCIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjE1MTQ0OjoxNTE0NDo6MTcyNjc6OjIxODY0OjoyMzIzMjo6MjMzNDY6OjIzMzQ2OjoyMzM0Njo6MjMzNDY6OjA6Ojg2Ojo4Njo6ODY6Ojg2OjoxODg6OjcwOTo6MTMzMzo6MjUxMTo6NDMxMzo6NzU5Mzo6MTA0MzQ6OjEwNDM0OjoxMDQ0Mzo6MTA2MjI6OjEwODEwOjoxMTI5Mzo6MTIzMDI6OjE0ODU5OjoxNzQ3Njo6MTk1NjU6OjE5NzQyOjoyMTAzNTo6MjEyMzQ6OjA6OjEzOjoxMzo6MTM6OjEzOjoxMzo6MTM6OjIxNjo6OTI5OjoyMDU4OjozNzAwOjo1Njk4Ojo4NzgyOjoxMTY5ODo6MTQ2NjMiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSIxNzc2Nzo6MTg1NDY6OjE5MTU1OjoxOTE1NTo6MTkxNTU6OjE5MTU1OjoyMDczMDo6MjMwMTY6OjIzNTA4Ii8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iMjYyNzM0MDEiIGg9IjNkYzFhN2UwIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMDo6NDE3Nzo6ODM0ODo6MTI0MjE6OjE2NDY2OjoyMDM4OTo6MjQ1NTA6OjI5NjM4OjozNTM5MDo6NDIzMjk6OjQ5NjA4Ojo1Njk4Mjo6NjQxMTk6OjcwODE5Ojo3MjgyNDo6NzI4MzE6OjcyODM4Ojo3Mjg0NTo6NzI4NTE6OjcyODU5Ojo3Mjg2Njo6NzI4NzM6OjcyODgxOjo3Mjg4OTo6MDo6ODo6MTY6OjI0OjozMjo6NDA6OjQ4Ojo1Njo6NjU6OjczOjo4MTo6ODk6Ojk3OjoxMDU6OjExNDo6MTIyOjoxMzE6OjEzODo6MTQ1OjoxNTI6OjE2MDo6MTY3OjoxNzU6OjE4MyIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6ODo6MTY6OjIzOjozMTo6Mzk6OjQ3Ojo1NTo6NjM6OjcxOjo3OTo6ODc6Ojk2OjoxMDQ6OjExMjo6MTIwOjoxMjg6OjEzNTo6MTQyOjoxNTA6OjE1Nzo6MTY1OjoxNzI6OjE4MDo6MDo6ODo6MTc6OjI1OjozNDo6NDM6OjUxOjo1ODo6NjY6Ojo6Nzk6Ojg1Ojo5Mjo6OTg6OjEwNTo6MTExOjoxMTc6OjEyNDo6MTMxOjoxMzg6OjE0NTo6MTUzOjoxNjA6OjE2ODo6MCIvPg0KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iODo6MTY6OjI1OjozMzo6NDE6OjQ5Ojo1Njo6NjQ6OjcwOjo3Nzo6ODQ6OjkxOjo5ODo6MTA1OjoxMTE6OjExODo6MTI1OjoxMzI6OjEzOTo6MTQ3OjoxNTQ6OjE2Mjo6MTcwOjowOjo3OjoxNjo6MjQ6OjMyOjo0MDo6NDg6OjU1Ojo2Mzo6Njk6Ojc2Ojo4Mjo6ODk6Ojk2OjoxMDM6OjEwOTo6MTE2OjoxMjI6OjEyODo6MTM1OjoxNDM6OjE1MDo6MTU4OjoxNjY6OjAiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9Ijg6OjE3OjoyNTo6MzQ6OjQzOjo1MTo6NTg6OjY2Ojo3Mzo6ODA6Ojg3Ojo5NDo6MTAxOjoxMDg6OjExNTo6MTIyOjoxMjk6OjEzNTo6MTQyOjoxNTA6OjE1Nzo6MTY1OjoxNzI6OjA6Ojg6OjE3OjoyNTo6MzQ6OjQyOjo1MDo6NTg6OjY1Ojo3Mjo6Nzg6Ojg1Ojo5Mjo6MTAwOjoxMDc6OjExNDo6MjU5NTo6NzkxMzo6MTAyOTQ6OjEwNDM5OjoxMDQzOTo6MTA0Mzk6OjEwNDQxOjoxMDQ0MTo6MCIvPg0KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iMjo6NDo6OTo6OTo6OTo6OTo6Njk6OjE4MTo6MjM2Ojo6OjMyNzo6NDYxOjo3MjA6OjEzOTM6OjIyMTU6OjMwNTk6OjQ1OTM6OjYzNDI6OjgwNDE6Ojk5NDQ6OjExNTYxOjoxMjMxNDo6MTMxNjY6OjA6OjQ3Ojo0Nzo6NDc6OjQ3Ojo0Nzo6NDc6OjQ3Ojo0Nzo6NDg6OjU5Ojo4Nzo6MTI3OjoxMzQ6OjEzNTo6MTQyOjoxODI6OjUzNzo6NzY5OjoxMDAwOjoxMTU2OjoxMjA4OjoxMjMwOjoxMjY0OjowOjowIi8+DQorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSIwOjowOjowOjowOjo1ODo6NDY0OjoxMjE0OjoyODY2Ojo1MTk1Ojo3NjQ0OjoxMDE4OTo6MTMxMDg6OjE1OTAyOjoxODc3Mzo6MjE1NTc6OjI0MzQ1OjoyODI3MTo6MzIyNjc6OjM2MDEyOjozOTM2MDo6NDIzNTI6OjQ0NzgyOjowOjoxMjE1OjoxODc5OjoyNTgxOjozMjMyOjozNzMwOjo0NjI3Ojo2ODQ1Ojo5NDI2OjoxMzIxMzo6MTc0NjA6OjIxODEyOjoyNjQwODo6MzA4Nzg6OjM1MzQ2Ojo0MDA2MTo6NDQ3NzY6OjQ5MTQ1Ojo1MzUwMTo6NTc1NzU6OjYxNDI5Ojo2NDk2ODo6NjgwMjk6OjcxMTU0OjowOjoyNTQxIi8+DQorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI0NzU3Ojo2NzQ5Ojo4NzA3OjoxMDQ0Njo6MTIyOTY6OjE0ODE3OjoxODAyMTo6MjIxOTI6OjI0NzEwOjoyOTIwOTo6MzM3OTk6OjM4MDAwOjo0MjE5OTo6NDYzNzU6OjUwNjgxOjo1NTA2Mjo6NTkzODc6OjYzNjg2Ojo2Nzk3MTo6NzE4ODM6Ojc1Mzc4Ojo3ODI3NDo6MDo6MTk2NTo6Mzc4NTo6NTU4OTo6NzQwODo6OTA0Mjo6MTA3MzU6OjEzMTQzOjoxNjI1NDo6MjA0NzM6OjI1MjEwOjoyOTg5ODo6MzQ5ODk6OjM5MjY1Ojo0MzU0Nzo6NDc2NTk6OjUwMjk4LjgxNjo6NTAzMDIuNzMzOjo1MDMwNi43Mjk6OjUwMzEwLjMyNjo6NTAzMTMuNzgzOjo1MDMxNy4wNjI6OjUwMzIwLjAxNjo6NTAzMjIuMjc3OjowOjoxLjk4NiIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjMuNzQ2Ojo1LjQyNzo6Ny4xMTY6OjguNjQ5OjoxMC4yMjU6OjEyLjM3Nzo6MTQuOTcyOjoxOC4xNTU6OjIxLjUxOTo6MjQuMDc5OjoyNi43ODk6OjI5Ljg3Mjo6MzIuMDM4OjozMi4wNzU6OjMyLjA5Mzo6MzIuMTE6OjMyLjEzMjo6MzIuMTQ5OjozMi4xNjM6OjMyLjE3Mzo6MzIuMTgxOjozMi4xODM6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDAxOjowLjAwNTo6MC4wMDg6OjAuMDEyOjowLjAxNDo6MC4wMTQ6OjAuMDE0OjowLjAxNDo6MC4wMTc6OjAuMDIzOjowLjAyNjo6MC4wMjk6OjAuMDMyOjowLjAzNTo6MC4wMzg6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowLjAwNDo6MC4wMTM6OjAuMDIzOjowLjAzNTo6MC4wMzk6OjAuMDQ6OjAuMDQ6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDExOjowLjA2NDo6MC4xODQ6OjAuMjk5OjowLjQwMzo6MC40OTE6OjAuNTg3OjowLjY4NDo6MC43Nzc6OjAuODgyOjo0NjQ5OjoxMTM2OTo6MTgzODQ6OjI1NTM5OjozMjA5ODo6MzgxODk6OjA6OjU2MzEiLz4NCisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSIxMTEzNDo6MTY1ODA6OjIxODE5OjoyNjkzNDo6MzI0NDk6OjM5MDExOjo0NjE2NDo6NTczMjk6OjcwNTM1Ojo4MzU5Mjo6OTYxMTI6OjEwNzkzNDo6MTE5ODM2OjoxMzE4MzY6OjE0MzkzMjo6OjoxNTk5NzI6OjE2NzgzODo6MTc1NzU5OjoxODI5NDA6OjE4OTI2MTo6MTk1MjYwOjowOjo0MzYxOjo4NjM3OjoxMjg0NDo6MTcwMjY6OjIxMjkyOjoyNjE4NTo6MzE1MTQ6OjM3NjI5Ojo0NDE0Nzo6NTAyOTU6Ojo6NjI5NzI6OjY5MTQyOjo3NTQ5MDo6ODE4NzE6Ojg4NDExOjo5MjYzNDo6OTUyNjM6Ojk4MTM2OjoxMDE0OTM6OjEwNDMzODo6MTA2MjY0OjoxMDgwODY6OjA6OjExMTg6OjIxMjU6OjMxNjMiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIzOTcyOjo0NDI0Ojo1MTE3Ojo2NjcwOjo4NjgyOjoxMTI3Mzo6MTQwMzY6OjE2ODAwOjoxOTU4NTo6MjE2ODciLz4NCisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MTI5NTE6OjEyOTUxOjoxMjk1MTo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MjA5Nzo6NTY1ODo6OTMwNzo6MTI4Mzc6OjE2NDM3OjoyMDA3Mjo6MjQ4NTU6OjMxMTIwOjozNzgxMzo6NDQ2MzU6OjUxNTA5Ojo1ODIyNDo6NjQ1MTk6OjcwNDYwOjowOjo0OTEyOjo5Nzc5OjoxMjQ2ODo6MTQzNzc6OjE2MTk2OjoxODA5ODo6MjAzNTc6OjIyOTE2OjoyNTU3Mjo6MjgzMzM6OjMxMDQ4OjozMzY3Mzo6MzYyNjgiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSIzODc2OTo6NDExOTc6OjQzNjE3Ojo0NjIyMjo6NDkzMDc6OjUyNjk0Ojo1NjIyOTo6NTk1ODY6OjYyNzkwOjo2NjE0Nzo6MDo6MjU2Mzo6NTAxMDo6NzM3Nzo6OTU0Nzo6MTE2NjI6OjEzOTcwOjoxNjcyMjo6MTk4MjA6OjIzNjY4OjoyODQ1NTo6MzQwNzk6OjM5Nzk5Ojo0NTE0ODo6NTA1ODk6OjU2NDQ4Ojo2MjY3NDo6NjkwODQ6Ojc1NTg0Ojo4MTYyOTo6ODcwMDc6OjkyMTkwOjo5NjY2NDo6MTAwOTUzOjowOjozNjg2Ojo2OTgxOjoxMDEwOTo6MTMxNDk6OjE2MDM5OjoxOTE2ODo6MjMxNjQ6OjI4MjYzOjozNDIzODo6NDA0NzM6OjQ2NTkwOjo1MjgyMTo6NTg4NjgiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSI2NDgxMDo6NzA2Mjg6Ojc3MDI2Ojo4MzE2MDo6ODkwMjc6Ojk0NjczOjoxMDAxNTU6OjEwNTM4Mzo6MTA5NjkxOjoxMTM1NTk6OjA6OjE5OTY6OjM4NzY6OjU5NDk6Ojc5NDU6Ojk2NzM6OjExNTgzOjoxNTE5Nzo6MTkzNTU6OjIzOTU5OjoyODY4OTo6MzMyMjk6OjM3OTgxOjo0Mjc0NTo6NDc0NzA6OjUyNjU2Ojo1ODIyODo6NjM3Njg6OjY5MzUzOjo3NDYzNDo6Nzk4NzI6Ojg0Njk5Ojo4ODk2Njo6OTMwOTA6OjA6OjMyNzI6OjY1MTk6Ojk2NDY6OjEyNjY1OjoxNTUyOTo6MTg3ODU6OjIyNzY3OjoyNzM2MTo6MzMwMjY6OjM5MTk3Ojo0NTYzNDo6NTIyMzE6OjU4Njg4Ii8+DQorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iNzE2MjM6Ojc3ODk3Ojo4MzY2MTo6ODg5MTk6Ojk0NTA5OjoxMDAyMjY6OjEwNjAwNDo6MTExNTE3OjoxMTY0OTc6OjA6OjM1MDQ6OjcxNDc6OjEwNzYwOjoxNDM0MTo6MTc4MjM6OjIxNTYxOjoyNTg0NTo6MzAzODE6OjM1ODIxOjo0MTUyOTo6NDgwMjY6OjU3MzEwOjo2NDg5ODo6NzA5MjQ6Ojc3MTk1Ojo4MzEzNTo6ODkxMDU6Ojk0OTAwOjoxMDAzMjE6OjEwNTY5ODo6MTExMDUzOjoxMTU3Mjc6OjEyMDMwOTo6MDo6MzYxMDo6NzEyNzo6MTA3Nzg6OjE0NDIxOjoxODAxNTo6MjE3MTI6OjI1NTY0OjoyOTQ1NDo6MzM1OTg6OjM3OTQ2Ojo0MjEwMDo6NDYwNTQ6OjQ5ODI0Ojo1MzUwMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjU3MDk5Ojo2MTM4NTo6NjYyMjE6OjcxMzUyOjo3NjM4Mjo6ODEzNjg6Ojg1ODI4Ojo4OTY3Nzo6OTMwMzYiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSIyNjI3MzAwMSIgaD0iM2RjMWE3ZTAiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+DQorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjo6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjEwOjo1MjE6OjEwMDk6OjE5MTQ6OjIzMjk6OjI4MDQ6OjAiLz4NCisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9IjEwNzA6OjEyMDU6OjEyNDI6OjEzNjE6OjE4NzM6OjI2ODg6OjI4ODg6OjI5Njg6OjMwMTM6Ojo6MzA5Mzo6MzE2NTo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MzIyNjo6MDo6NTA0Ojo5NzU6OjE0MjA6OjE3NzY6OjIzMDU6OjI3OTY6OjMyMTI6OjQwMDI6OjQyNTQ6OjQzNzM6OjQ0OTQ6OjQ1NDk6OjQ3NTM6OjQ5NTA6OjUwODc6OjU0NTM6OjU0NTM6OjU0NTM6OjU0NTM6OjU0NTQ6OjU0NzM6OjU1MDk6OjU1ODE6OjA6OjU4MSIvPg0KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iMTIzMTo6MTkyNzo6Mjc2MDo6MzkwMjo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6NDg1Mzo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAuMDE3OjowLjAzMTo6MC4wNDg6OjAuMDY1OjowLjA4NTo6MC4xMDU6OjAuMTE0OjowLjExNjo6MC4xMTY6OjAuMTE2OjowLjExNjo6MC4xMTY6OjAuMTE3OjowLjEyOjowLjEyMzo6MC4xMjg6OjAuMTM1OjowLjEzNTo6MC4xMzU6OjAuMTM1OjowLjEzNTo6MC4xMzU6OjAuMTM2OjowOjowLjAxNiIvPg0KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjAuMDM2OjowLjA1NDo6MC4wNzQ6OjAuMDk2OjowLjExOTo6MC4xMzc6OjAuMTUyOjowLjE2NTo6MC4xNzg6OjAuMTk6OjAuMjA0OjowLjIxNjo6MC4yMjg6OjAuMjM3OjowLjI0OTo6MC4yNTY6OjAuMjU2OjowLjI1Njo6MC4yNTY6OjAuMjU2OjowLjI1Njo6MC4yNTc6OjA6OjAuMDEyOjowLjAxODo6MC4wMjo6MC4wMjE6OjAuMDI1OjowLjAzMjo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowLjAzNzo6MC4wMzc6OjAuMDM3OjowOjowOjowOjowOjowOjowOjowOjowIi8+DQorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjo6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iOTIwODo6OTQ5MDo6MTI1Nzk6OjE2NjMzOjoyMDE2NDo6MjM4ODI6OjI4MzM0OjozMzcxMzo6MzkyMjA6OjQ0OTA5OjowOjo2NTQyOjoxMzE4MDo6MTk4NTU6OjI2NTk0OjozMzQzMjo6NDAyODA6OjQ2Nzc3Ojo1MjUyNDo6NTc4NzU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6NTkyMDU6OjU5MjA1Ojo1OTIwNTo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+DQorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSIxMzE0NjAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjI3MDM3MCIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjEzMTM4MDEiIGg9IjNkYzFhN2UwIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMzA2NjkzIi8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iMTMxMzQwMSIgaD0iM2RjMWE3ZTAiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSIxNTc2MTExIi8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iMTMxMzAwMSIgaD0iM2RjMWE3ZTAiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSIxMjcwOTgiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSI1MjUxNDYwMSIgaD0iM2RjMWE3ZTAiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjoxMzA1OjoyODY5Ojo0NDgyOjo2MDY2Ojo3Mzk2Ojo4NTczOjoxMDI2Mjo6MTE5MjI6OjEzNzczOjoxNTQ5Mjo6MTc1MjI6OjE5NTQ0OjoyMTQ1Mjo6MjIwNzA6OjIyMDc1OjoyMjA4MDo6MjIwODQ6OjIyMDg1OjoyMjA5MDo6MjIwOTc6OjIyMTAzOjoyMjEwOTo6MjIxMTY6OjIyMTIzOjoyMjEyOTo6MjIxMzY6OjIyMTQzOjoyMjE1MDo6MjIxNTY6OjIyMTU4OjoyMjE2Njo6MjIxNzM6OjIyMTgwOjoyMjE4Njo6MjIxOTM6OjIyMjAwOjoyMjIwNzo6MjIyMTQ6OjIyMjIxOjoyMjIyODo6MjIyMzU6OjIyMjM1OjoyMjIzNjo6MjIyNDE6OjIyMjQ0OjoyMjI0Nzo6MjIyNTQiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjIyMjYxOjoyMjI2Nzo6MjIyNjc6OjIyMjY5OjoyMjI3Mzo6MjIyNzQ6OjIyMjc0OjoyMjI4MDo6MjIyODc6OjIyMjk0OjoyMjMwMTo6MjIzMDg6OjIyMzE1OjoyMjMyMjo6MjIzMjk6OjIyMzMzOjoyMjMzNTo6MjIzMzU6OjIyMzM1OjoyMjMzNjo6MjIzMzg6OjIyMzM5OjoyMjMzOTo6MjIzNDQ6OjIyMzUxOjoyMjM1ODo6MjIzNjU6OjIyMzcyOjoyMjM3OTo6MjIzODY6OjIyMzkxOjoyMjM5NTo6MjI0MDI6Ojo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA0OjoyMjQwNDo6MjI0MDQ6OjIyNDA3OjoyMjQxMzo6MjI0MTY6OjIyNDIyOjoyMjQyOSIvPg0KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iMjI0MzY6OjIyNDQzOjoyMjQ1MDo6MjI0NTc6OjIyNDY0OjoyMjQ2ODo6MjI0NzU6OjIyNDc3OjoyMjQ3Nzo6MjI0Nzg6OjIyNDgzOjoyMjQ4OTo6MjI0OTU6OjIyNDk3OjoyMjQ5Nzo6MjI0OTg6OjIyNDk5OjoyMjQ5OTo6MjI1MDA6OjIyNTA3OjoyMjUxMzo6MjI1MjA6OjIyNTI2OjoyMjUzMzo6MjI1Mzg6OjIyNTQ1OjoyMjU1Mjo6MjI1NTk6OjIyNTY0OjoyMjU2NDo6MjI1Njk6OjIyNTcxOjoyMjU3Mjo6MjI1NzI6OjIyNTcyOjoyMjU3Mzo6MjI1Nzk6OjIyNTgwOjoyMjU4MDo6MjI1ODA6OjIyNTgwOjoyMjU4MDo6MjI1ODA6OjIyNTgzOjoyMjU4NTo6MjI1OTA6OjIyNTk2OjoyMjYwMyIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMjI2MTA6OjIyNjE3OjoyMjYyNDo6MjI2MzI6OjIyNjM5OjoyMjY0NTo6MjI2NTA6OjIyNjUzOjoyMjY1Mzo6MjI2NTM6OjIyNjU1OjoyMjY2Mjo6MjI2Njk6OjIyNjcyOjoyMjY3NTo6MjI2Nzc6OjIyNjc4OjoyMjY3ODo6MjI2Nzg6OjIyNjc4OjoyMjY4Mjo6MjI2ODM6OjIyNjg2OjoyMjY5Mzo6MjI3MDE6OjIyNzA4OjoyMjcxNTo6MjI3MjI6OjIyNzI4OjoyMjczMjo6MjI3Mzg6OjIyNzQwOjoyMjc0MDo6MjI3NDQ6OjIyNzUxOjoyMjc1ODo6MjI3NjU6OjIyNzcwOjoyMjc3NTo6MjM1Mjk6OjI0MzcwOjoyNDczMzo6MjQ3MzQ6OjI1NTUxOjoyNTg1Mzo6MjYzMDE6OjI3MTI2OjoyODc0MiIvPg0KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iMjkzNzI6OjI5NTQwOjozMDE5OTo6MzExMjU6OjMxMjE4OjozMTIxOTo6MzE1NjQ6OjMxNTY0OjozMTU2NDo6OjozMTU2NDo6MzE1NjQ6OjMxNTk5OjozMTYwNzo6MzE2MDc6OjMxNzkyOjozMTk2NTo6MzIwMTA6OjMyMjc0OjozMzA0Nzo6MzM4OTA6OjMzODkwOjozNDE5Mzo6MzUzMTY6OjM1NDE3OjozNTQxODo6MzU1Njk6OjM1OTA5OjozNTkyMTo6MzU5MjE6OjM1OTIxOjozNTkyMTo6MzU5Mjg6OjM1OTI4OjozNTkyODo6MzU5Mjg6OjM1OTI4OjozNTkyODo6MzU5Mjg6OjM1OTk1OjozNjA4Mzo6MzYwODM6OjM2MDgzOjozNjA4Mzo6MzYwODM6OjM2MDgzOjozNjIyNjo6Mzc0NTA6OjM4NjA5Ii8+DQorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSIzOTc0MDo6NDAxNTE6OjQwNTI3Ojo0MDUyNzo6NDA4MzY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM1Njo6NDEzNTY6OjQxMzU2Ojo0MTM2Mzo6NDE0NzY6OjQyMDUxOjo0MjY5MDo6NDI5NDY6OjQzMjMxOjo0MzUyNDo6NDM4NjU6OjQ0NDg4Ojo0NDQ4ODo6NDQ0ODg6OjQ0NDg4Ojo0NDQ4ODo6NDQ1ODI6OjQ0Njg1Ojo0NDY4NTo6NDQ2ODU6OjQ0Njg1Ojo0NDY4NTo6NDQ2ODU6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDczNjo6NDQ3MzY6OjQ0NzM2Ojo0NDg5MDo6NDYwODk6OjQ3MjE2Ii8+DQorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI0ODA0Mzo6NDgyNjI6OjQ4NDY2Ojo0ODQ2Njo6NDg0NjY6OjQ4NDY2Ojo0ODQ2Njo6NDg0NjY6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzE6OjQ4NDcxOjo0ODQ3MTo6NDg0NzQ6OjQ4NDkxOjo0ODQ5MTo6NDg4MTY6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDg5ODA6OjQ4OTgwOjo0ODk4MDo6NDkwMjI6OjQ5MTQ3Ojo0OTU2OTo6NTAyMTg6OjUwMjUxOjo1MDI1MTo6NTAyNTE6OjUwMjUyLjkxOjo1MDI1Mi45MTo6NTAyNTIuOTE6OjUwMjUyLjkxOjo1MDI1Mi45MTo6NTAyNTIuOTU0Ojo1MDI1My4xODU6OjUwMjUzLjE5Mjo6NTAyNTMuNDg3Ojo1MDI1NC42NjciLz4NCisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSI1MDI1NS45NzM6OjUwMjU3LjM1Njo6NTAyNTguNzY1Ojo1MDI1OS4yOTY6OjUwMjU5LjI5OTo6NTAyNTkuMjk5Ojo1MDI1OS4yOTk6OjUwMjU5LjMzMjo6NTAyNTkuNDU1Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Njo6NTAyNTkuNDU2Ojo1MDI1OS40NTY6OjUwMjU5LjQ1Nzo6NTAyNTkuNDU4Ojo1MDI1OS40NTg6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njc6OjUwMjU5LjQ2Nzo6NTAyNTkuNDY3Ojo1MDI1OS40Njk6OjUwMjU5LjQ4Mjo6NTAyNTkuNTo6NTAyNTkuNTA3Ojo1MDI1OS41MTM6OjUwMjU5LjUxNjo6NTAyNTkuNTE3Ojo1MDI1OS41MTc6OjUwMjU5LjUxNzo6NTAyNTkuNTE3Ojo1MDI1OS41MTc6OjUwMjU5LjUxNzo6NTAyNTkuNTIxOjo1MDI1OS41MzU6OjUwMjU5LjU0Ii8+DQorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iNTAyNTkuNTQ6OjUwMjU5LjU0Ojo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0MTo6NTAyNTkuNTQxOjo1MDI1OS41NDE6OjUwMjU5LjU0Njo6NTAyNTkuNTQ2Ojo1MDI1OS41NDY6OjUwMjU5LjU0Njo6NTAyNTkuNTQ3Ojo1MDI1OS41NDc6OjUwMjU5LjU1Mjo6NTAyNTkuNTU3Ojo1MDI1OS41NjE6OjUwMjU5LjU3Nzo6NTAyNTkuNTg4Ojo1MDI1OS42Ojo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwMTo6NTAyNTkuNjAxOjo1MDI1OS42MDE6OjUwMjU5LjYwNDo6NTAyNTkuNjA4Ojo1MDI1OS42MDk6OjUwMjU5LjYxMjo6NTAyNTkuNjEyOjo1MDI1OS42MTI6OjUwMjU4Ojo1MDI1ODo6NTAyNTg6OjUwMjU4Ojo1MDQzNDo6NTIxMzc6OjU0NDMxOjo1NjczNCIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjU5NDQ3Ojo2MjMyMTo6NjUyNTc6OjY3MjE3Ojo2Nzg2MDo6NjkwMDA6OjcwNzEzOjo3MjMwMjo6NzMxODk6Ojc0MTA2Ojo3Njc0Njo6Nzk3NTA6OjgyNDQ5Ojo4NTA0Mzo6ODcwMDM6Ojo6ODc1MTA6Ojg4MDAyOjo4OTI5Nzo6OTA1NTY6OjkyMTAyOjo5NDM0MDo6OTU0NzA6Ojk2NDQ5Ojo5ODAxMTo6OTk3MDc6OjEwMTQ2Mzo6MTAyMjQ0OjoxMDIyODk6OjEwMjM4Njo6MTAzMTE1OjoxMDM5ODM6OjEwNDA5MTo6OjoxMDQ4MjY6OjEwNTgwNjo6MTA2MzMwOjoxMDY2NjI6OjEwNjg1OTo6MTA2ODU5OjoxMDgyOTA6OjExMTAxOTo6MTE0NDgzOjoxMTY1NDk6OjExODA4Mzo6MTIxMTU0OjoxMjQ1MjQ6OjEyNzIwNzo6MTMwMjgyOjoxMzM2MTkiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSIxMzY5NjM6OjEzOTMzNTo6MTQwOTUxOjoxNDI2OTg6OjE0NDk4ODo6MTQ3Mzc3OjoxNDk0ODM6OjE1MTQzODo6MTUzNzI2OjoxNTYzMTUiLz4NCisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIxNzQ4Mjk6OjE3NDg5Njo6MTc0OTk2OjoxNzQ5OTY6OjE3NTYyNzo6MTc2NjI4OjoxNzcyMDE6OjE3NzIwMTo6MTc3MjAxOjoxNzc0Mzk6OjE3ODg0OTo6MTc5MjM4OjoxNzk2MjY6OjE4MDUwNTo6MTgxMjI0OjoxODEyNDE6OjE4MTI0MTo6MTgxMjc5OjoxODIxODM6OjE4MjUyODo6MTgyNjE5OjoxODI3MDE6OjE4MzE0NDo6MTgzNzgwOjoxODQ2OTc6OjE4NTQ3NTo6MTg2NzAyOjoxODgzNDI6OjE5MDE3OTo6MTkyMjI2OjoxOTQ0NzA6OjE5Njc5Njo6MTk5MDIwOjoyMDEzMTk6OjIwMzU3MTo6MjA1NTUwOjoyMDc3NTE6OjIwODM4OTo6MjA4ODczOjoyMDkxODQ6OjIwOTM3Mzo6MjA5NjQ2OjoyMTAzNTg6OjIxMDc0NDo6MjExMDYxOjoyMTEyNDA6OjIxMTQzOTo6MjExNzU2Ii8+DQorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iMjExODQzOjoyMTE4NDM6OjIxMTg0Mzo6MjExODQzOjoyMTE4NDM6OjIxMTg1Mjo6MjExOTk4OjoyMTIzMzk6OjIxMjgzMzo6MjE0OTUxOjoyMTcwNzc6OjIxODA0NTo6MjE5MzA5OjoyMjAzMDI6OjIyMDY2Mjo6MjIwNzg2OjoyMjA4MTk6OjIyMTI2OTo6MjIxNDUxOjoyMjE0NTg6OjIyMTQ1ODo6MjIxNDU4OjoyMjE0NTg6OjIyMTQ1ODo6MjIxNDU4OjoyMjE1NDc6OjIyMTg5NTo6MjIyMTg5OjoyMjI2MTE6OjIyMzQ3MTo6MjIzODE4OjoyMjQ0NzI6OjIyNDQ3Mzo6MjI1MDY2OjoyMjYwNTQ6OjIyNzUzMzo6MjI4NDYxOjoyMjg5NjI6OjIyOTM5Njo6MjI5NDAxOjoyMjk0MDE6OjIyOTU3Nzo6MjMwNTc2OjoyMzA3NTg6OjIzMTE1OTo6MjMxNDU0OjoyMzI1NjY6OjIzMjU2NiIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjIzMjU2Njo6MjMyNTY2OjoyMzM2MDk6OjIzNDEwMTo6MjM0MTAxOjoyMzQxMzk6OjIzNDgzNjo6MjM1NDkyOjoyMzU0OTI6OjIzNjA4OTo6MjM3MjA4OjoyMzc0Njc6OjIzNzQ2Nzo6MjM3NDY3OjoyMzc0Njc6OjIzNzQ2Nzo6MjM3NTExOjoyMzc3NDk6OjIzODMwNjo6MjM4MzMxOjoyMzgzMzE6OjIzODMzMTo6MjM4MzMxOjoyMzg2MDY6OjIzODYzNzo6MjM5MjYwOjoyMzk4NDY6OjIzOTg0Njo6MjM5ODQ2OjoyMzk4NDY6OjIzOTg0Nzo6MjM5OTg4OjoyMzk5ODg6OjIzOTk4ODo6MjQwMjAwOjoyNDA0MTE6OjI0MDkxNjo6MjQxMTkzOjoyNDExOTQ6OjI0MTE5NDo6MjQxMTk0OjoyNDEyNjA6OjI0MTI2Mjo6MjQxMjYyOjoyNDEyNjI6OjI0MTI2Mjo6MjQxMzI1OjoyNDE4NDIiLz4NCisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIyNDM0ODI6OjI0NDE1NDo6MjQ0MTY0OjoyNDQxNjQ6OjI0NDE2NDo6MjQ0NDk5OjoyNDU3ODg6OjI0NzIwMDo6MjQ4MTU3OjoyNDg4NjY6OjI0OTM1ODo6MjUwNDM2OjoyNTE1NDk6OjI1MjQ1Mjo6MjUyNDgyOjoyNTI0ODQ6OjI1MjUyNjo6MjUyNTI2OjoyNTI1MjY6OjI1MjUyNjo6MjUyODQwOjoyNTU2MzQ6OjI1NzUxMTo6MjU3NTg0OjoyNTc1ODU6OjI1NzU4NTo6MjU3NTg1OjoyNTc1ODU6OjI1NzU4NTo6MjU3NTg1OjoyNTc3NjY6OjI1Nzc2Njo6MjU4MDczOjoyNTg2Mjg6OjI1OTEzMDo6MjYwNDU0OjoyNjIzNTA6OjI2NDM4Nzo6MjY1ODY1OjoyNjY3ODc6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0OjoyNjY4NTQ6OjI2Njg1NDo6MjY2ODU0Ii8+DQorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMjY2ODU0OjoyNjY4Njg6OjI2NzEzMjo6MjY3NjA5OjoyNjgwOTU6OjI2ODkzNjo6MjY5Mjk0OjoyNjkyOTQ6OjI2OTM2NyIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjUyNTEzODAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjAiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6OjA6Ojo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6NjgwOjoxNzUzOjoyNDM2OjoyNDM5OjoyNDcxOjoyNDcyOjoyNDcyOjoyNDcyIi8+DQorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSIyNzQ1OjoyNzc2OjoyNzc2OjoyNzc2OjoyODY0OjozOTM5Ojo0NDM0Ojo1MjA3Ojo2OTgzOjo6OjE0NTg3OjoxODgwOTo6MjA3MjQ6OjIwOTI0OjoyMTUyMzo6MjMxOTY6OjIzNTg3OjoyNDA4NDo6MjQwODg6OjI0MDg4OjoyNDExOTo6MjQ5MzM6OjI0OTc4OjoyNDk3ODo6MjY0MDY6OjI2NzY0OjoyNjc5OTo6MjY3OTk6OjI3MDc5OjoyODA5NDo6Mjk1ODQ6OjMwNjc4OjozMTI0Mjo6MzIyMTE6OjMzMzAxOjozNDE4MTo6MzQ2ODU6OjM1MDg4OjozNTU0Njo6MzY4MDY6OjM3MzM2OjozOTc5ODo6NDIzOTY6OjQ1MTY2Ojo0NzYwODo6NDk0NDc6OjUwMTM5Ojo1MDEzOTo6NTAxNTUiLz4NCisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjUwMTU1Ojo1MDE1Njo6NTAxNTg6OjUwOTAxOjo1MjQ1Nzo6NTI0ODY6OjUzMTcxOjo1NTE1MTo6NTc4MjE6OjYwODYwOjo2MzYzMjo6NjQyMjA6OjY0NjgyOjo2NDkyOTo6NjUxNjk6OjY1NjkyOjo2NjMyNDo6NjYzMjQ6OjY2NDY5Ojo2NjQ5Mjo6NjY1MzU6OjY2NTY1Ojo2NjU2NTo6Njc4MjA6OjY5MDg3Ojo2OTg2OTo6NzA3ODA6OjcyNzU1Ojo3NTEwNzo6NzU0NDk6Ojc2Mjc5Ojo3NzQ3Mzo6NzkwMTM6OjgwMTcxOjo4MDk3Mzo6ODE0OTQ6OjgzNDIxOjo4NDg4OTo6ODY1ODI6Ojg4ODcyOjo5MDUxODo6OTIwNzc6OjkzMjY2Ojo5NDQyNDo6OTYwNzk6Ojk2NTc5Ojo5NjU3OTo6OTY1NzkiLz4NCisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9Ijk2NTk0Ojo5NjU5NDo6OTY1OTY6Ojk3NDI4Ojo5OTA5Mjo6MTAwNjk0OjoxMDIxMzY6OjEwMzY1MTo6MTA0NTQ3OjoxMDYwMDQ6OjEwNzM5Mjo6MTA4MzAyOjoxMDk0MTA6OjExMDUzMDo6MTExNjEzOjoxMTM2NzY6OjExNjAwNTo6MTE3MjUxOjoxMTc3MTE6OjExODQwOTo6MTE5MTg4OjoxMjAwMjQ6OjEyMDA5Mzo6MTIxMTE4OjoxMjE2MDI6OjEyMTg4MDo6MTIyMDc5OjoxMjMwNDQ6OjEyNDk5NDo6MTI2NjgzOjoxMjgxNDg6OjEyODk0NTo6MTI5MDI1OjoxMjkwMjU6OjEyOTAyNTo6MTI5NTk3OjoxMzA0NzU6OjEzMTI5NTo6MTMxNzY0LjMwMzo6MTMxNzY1LjU4ODo6MTMxNzY2LjM3NTo6MTMxNzY4LjExOjoxMzE3NjkuMTk4OjoxMzE3NjkuNDk6OjEzMTc2OS43NjE6OjEzMTc3MC4yMTk6OjEzMTc3MC4yMzY6OjEzMTc3MC4yMzYiLz4NCisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIxMzE3NzAuMjM2OjoxMzE3NzAuMjM2OjoxMzE3NzAuMjM2OjoxMzE3NzAuMjM2OjoxMzE3NzAuODY4OjoxMzE3NzEuODA2OjoxMzE3NzMuMDIzOjoxMzE3NzQuNjI1OjoxMzE3NzUuNTg5OjoxMzE3NzYuOTEyOjoxMzE3NzguMDYyOjoxMzE3NzguNzA5OjoxMzE3NzkuMjk1OjoxMzE3NzkuMzA2OjoxMzE3NzkuMzE5OjoxMzE3NzkuMzQ5OjoxMzE3NzkuMzg2OjoxMzE3NzkuNDIzOjoxMzE3NzkuNDU4OjoxMzE3NzkuNDk6OjEzMTc3OS40OTk6OjEzMTc3OS41MDM6OjEzMTc3OS41MDk6OjEzMTc3OS41NjQ6OjEzMTc3OS41ODc6OjEzMTc3OS42MDQ6OjEzMTc3OS42MjM6OjEzMTc3OS42NTk6OjEzMTc3OS43MDk6OjEzMTc3OS43Mzg6OjEzMTc3OS43NDQ6OjEzMTc3OS43NTI6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTU6OjEzMTc3OS43NTY6OjEzMTc3OS43ODY6OjEzMTc3OS44MTk6OjEzMTc3OS44NTg6OjEzMTc3OS44OTM6OjEzMTc3OS45MTg6OjEzMTc3OS45MjY6OjEzMTc3OS45MjY6OjEzMTc3OS45MjY6OjEzMTc3OS45NDkiLz4NCisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIxMzE3NzkuOTU4OjoxMzE3NzkuOTU5OjoxMzE3NzkuOTY6OjEzMTc3OS45NzI6OjEzMTc4MC4wMDM6OjEzMTc4MC4wMjc6OjEzMTc4MC4wNDk6OjEzMTc4MC4wODk6OjEzMTc4MC4xMjU6OjEzMTc4MC4xNTU6OjEzMTc4MC4xNzk6OjEzMTc4MC4xODQ6OjEzMTc4MC4xOTE6OjEzMTc4MC4yMDI6OjEzMTc4MC4yMjI6OjEzMTc4MC4yNDM6OjEzMTc4MC4yNTE6OjEzMTc4MC4yNTg6OjEzMTc4MC4yNjE6OjEzMTc4MC4yNzc6OjEzMTc4MC4yODU6OjEzMTc4MC4yODU6OjEzMTc4MC4yODg6OjEzMTc4MC4yODg6OjEzMTc4MC4yODg6OjEzMTc4MC4yODg6OjEzMTc4MC4yODg6OjEzMTc4MC4yODk6OjEzMTc4MC4zMDM6OjEzMTc4MC4zNDo6MTMxNzgwLjM1OjoxMzE3ODAuMzU2OjoxMzE3ODAuMzY4OjoxMzE3ODAuMzgxOjoxMzE3ODAuMzg0OjoxMzE3ODAuMzg0OjoxMzE3ODAuMzg2OjoxMzE3ODAuMzk4OjoxMzE3ODAuNDE1OjoxMzE3ODAuNDUxOjoxMzMyMDU6OjEzNTM0Mzo6MTM2ODY2OjoxMzc4NjE6OjEzODI3Mjo6MTM4MjcyOjoxMzgyNzI6OjEzODI3MiIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjEzODI3Mjo6MTM4MjcyOjoxMzgyNzI6OjEzODI3Mjo6MTM4Mjc1OjoxMzgyNzc6OjEzODI5MDo6MTM4MjkwOjoxMzgyOTA6OjEzODI5MDo6MTM4MzU1OjoxMzgzNTU6OjEzODM1NTo6MTM4MzU1OjoxMzgzNTU6Ojo6MTQxMDg4OjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxNDkzOjoxNDE0OTM6OjE0MTQ5Mzo6MTQxOTk3OjoxNDM2MTg6OjE0MzYxODo6MTQzNjI5OjoxNDM2ODE6Ojo6MTQzNzE0OjoxNDM3MTQ6OjE0MzcxNDo6MTQzNzE0OjoxNDM3MjU6OjE0NDM1MTo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyIi8+DQorCQkJCQk8dmFsIG89IjFhOTY0MCIgdj0iMTQ0MzYyOjoxNDQzNjI6OjE0NDM2Mjo6MTQ0MzYyOjoxNDQzNjg6OjE0NDM2ODo6MTQ0MzY4OjoxNDQzNjg6OjE0NDM2ODo6MTQ0MzY4Ii8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iMTYyNzA3OjoxNjI3ODY6OjE2MzEwNzo6MTY1MDM1OjoxNjUwNjI6OjE2NTA2Mjo6MTY2NDgxOjoxNjg5NTY6OjE3MTA3Mjo6MTcxMzkxOjoxNzEzOTE6OjE3MTYzNDo6MTcxNjM0OjoxNzE2MzQ6OjE3MTYzNDo6MTcxODY1OjoxNzMwMDY6OjE3NDE3NTo6MTc0MTc1OjoxNzQxNzc6OjE3NDQzNTo6MTc0NDM4OjoxNzQ0Mzg6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ0Mzk6OjE3NDQzOTo6MTc0NDM5OjoxNzQ1NDA6OjE3NDU0MDo6MTc0NTQwOjoxNzQ1OTQ6OjE3NDU5NDo6MTc0NTk0OjoxNzQ1OTQ6OjE3NDU5NDo6MTc0NTk4OjoxNzQ1OTg6OjE3NDU5OCIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjE3NDc0Mjo6MTc1MTI5OjoxNzU3MDY6OjE3NzczMTo6MTc5ODAzOjoxODA0MDU6OjE4MDQwNTo6MTgwNjQ2OjoxODA3MDQ6OjE4MDcwNDo6MTgwNzA0OjoxODA3NzE6OjE4MDc4Mjo6MTgwNzgyOjoxODA3ODI6OjE4MDgwMTo6MTgwOTgzOjoxODE5NjE6OjE4Mjg3Mzo6MTg0MDg2OjoxODYzMzI6OjE4ODM5Njo6MTg5ODQ4OjoxOTA1MDQ6OjE5MjExNDo6MTkzODk3OjoxOTQ0NzQ6OjE5NTIwNDo6MTk1MjA2OjoxOTUyMzA6OjE5NTIzMjo6MTk1Mzk3OjoxOTYwNDE6OjE5NjA0Njo6MTk2MDQ2OjoxOTYwNDY6OjE5NjE3NTo6MTk2MTc1OjoxOTYxNzU6OjE5NjY3ODo6MTk4MDA3OjoxOTg4ODE6OjE5ODg5NTo6MTk5MDQzOjoxOTk0OTQ6OjE5OTQ5NDo6MTk5NDk0OjoyMDAwNTgiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSIyMDEzNTM6OjIwMjg1MTo6MjAzMjM3OjoyMDMzNTM6OjIwMzgyNTo6MjA0MTY3OjoyMDQxNjc6OjIwNDI4Njo6MjA1Nzc4OjoyMDU4MzM6OjIwNTgzMzo6MjA5MDM2OjoyMTA5NzA6OjIxMTQyNjo6MjEyMTM4OjoyMTQ0MTA6OjIxODE1Njo6MjE4Mzk1OjoyMTgzOTU6OjIxOTc5NTo6MjIyMzY4OjoyMjU5NjM6OjIyODY3Njo6MjI4Njk4OjoyMjg5NDE6OjIyOTA4Mjo6MjI5MDgyOjoyMzA4MjI6OjIzMjIzNzo6MjMzNDI1OjoyMzM5MTA6OjIzNTA5ODo6MjM3MjczOjoyMzgxNjA6OjIzODI1OTo6MjM4NDMxOjoyMzg0MzE6OjIzODQ2MDo6MjM4NjA0OjoyMzk3MzU6OjI0MDY4NTo6MjQxNjQ4OjoyNDI0MDY6OjI0NDEzNzo6MjQ3NDcxOjoyNTA1NTE6OjI1MzQwNDo6MjUzNDA0Ii8+DQorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iMjUzNDA0OjoyNTM0MDQ6OjI1NTUyNzo6MjYwMTI0OjoyNjE0OTI6OjI2MTYwNjo6MjYxNjA2OjoyNjE2MDY6OjI2MTYwNjo6MjYxNjA2OjoyNjE2OTI6OjI2MTY5Mjo6MjYxNjkyOjoyNjE2OTI6OjI2MTc5NDo6MjYyMzE1OjoyNjI5Mzk6OjI2NDExODo6MjY1OTIxOjoyNjkyMDA6OjI3MjA0MTo6MjcyMDQxOjoyNzIwNDk6OjI3MjIyOTo6MjcyNDE3OjoyNzI5MDA6OjI3MzkwOTo6Mjc2NDY2OjoyNzkwODQ6OjI4MTE3Mzo6MjgxMzQ5OjoyODI2NDI6OjI4Mjg0MTo6MjgzMTg1OjoyODMxOTg6OjI4MzE5ODo6MjgzMTk4OjoyODMxOTg6OjI4MzE5ODo6MjgzMTk4OjoyODM0MDI6OjI4NDExNDo6Mjg1MjQ0OjoyODY4ODY6OjI4ODg4NDo6MjkxOTY4OjoyOTQ4ODQ6OjI5Nzg0OSIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjMwMDk1NDo6MzAxNzMzOjozMDIzNDE6OjMwMjM0MTo6MzAyMzQxOjozMDIzNDE6OjMwMzkxNTo6MzA2MjAxOjozMDY2OTMiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSI1MjUxMzQwMSIgaD0iM2RjMWE3ZTAiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSIwOjo0MTc3Ojo4MzQ4OjoxMjQyMTo6MTY0NjY6OjIwMzg5OjoyNDU1MDo6Mjk2Mzg6OjM1MzkwOjo0MjMyOTo6NDk2MDg6OjU2OTgyOjo2NDExOTo6NzA4MTk6OjcyODI0Ojo3MjgzMTo6NzI4Mzg6OjcyODQ1Ojo3Mjg1MTo6NzI4NTk6OjcyODY2Ojo3Mjg3Mzo6NzI4ODE6OjcyODg5Ojo3Mjg5ODo6NzI5MDY6OjcyOTE0Ojo3MjkyMjo6NzI5MzE6OjcyOTM4Ojo3Mjk0Njo6NzI5NTU6OjcyOTYzOjo3Mjk3Mjo6NzI5Nzk6OjcyOTg3Ojo3Mjk5NTo6NzMwMDQ6OjczMDEyOjo3MzAyMTo6NzMwMjk6OjczMDM3Ojo3MzA0NTo6NzMwNTI6OjczMDYwOjo3MzA2Nzo6NzMwNzQ6OjczMDgzIi8+DQorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSI3MzA5Mjo6NzMxMDA6OjczMTA4Ojo3MzExNjo6NzMxMjQ6OjczMTMxOjo3MzEzOTo6NzMxNDc6OjczMTU1Ojo3MzE2NDo6NzMxNzI6OjczMTgwOjo3MzE4OTo6NzMxOTc6OjczMjA1Ojo3MzIxMzo6NzMyMjE6OjczMjI4Ojo3MzIzNTo6NzMyNDI6OjczMjUwOjo3MzI1ODo6NzMyNjU6OjczMjczOjo3MzI4MTo6NzMyOTA6OjczMjk4Ojo3MzMwNzo6NzMzMTY6OjczMzI0Ojo3MzMzMzo6NzMzNDE6OjczMzQ5Ojo6OjczMzYyOjo3MzM2ODo6NzMzNzQ6OjczMzgxOjo3MzM4Nzo6NzMzOTQ6OjczNDAwOjo3MzQwNzo6NzM0MTQ6OjczNDIxOjo3MzQyODo6NzM0MzY6OjczNDQzOjo3MzQ1MTo6NzM0NTkiLz4NCisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9IjczNDY3Ojo3MzQ3Njo6NzM0ODQ6OjczNDkyOjo3MzUwMTo6NzM1MDg6OjczNTE2Ojo3MzUyMzo6NzM1Mjk6OjczNTM2Ojo3MzU0Mzo6NzM1NTA6OjczNTU3Ojo3MzU2NDo6NzM1NzE6OjczNTc4Ojo3MzU4NTo6NzM1OTI6OjczNTk5Ojo3MzYwNzo6NzM2MTQ6OjczNjIyOjo3MzYzMDo6NzM2Mzk6OjczNjQ3Ojo3MzY1NTo6NzM2NjM6OjczNjcyOjo3MzY4MDo6NzM2ODc6OjczNjk0Ojo3MzcwMjo6NzM3MDk6OjczNzE1Ojo3MzcyMTo6NzM3Mjg6OjczNzM1Ojo3Mzc0Mjo6NzM3NDg6OjczNzU1Ojo3Mzc2Mjo6NzM3Njk6OjczNzc2Ojo3Mzc4Mzo6NzM3OTE6OjczNzk4Ojo3MzgwNjo6NzM4MTQiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9IjczODIzOjo3MzgzMTo6NzM4NDA6OjczODQ5Ojo3Mzg1ODo6NzM4NjY6OjczODc0Ojo3Mzg4MTo6NzM4ODg6OjczODk1Ojo3MzkwMjo6NzM5MDk6OjczOTE3Ojo3MzkyNDo6NzM5MzE6OjczOTM4Ojo3Mzk0NTo6NzM5NTI6OjczOTU5Ojo3Mzk2Njo6NzM5NzM6OjczOTgwOjo3Mzk4ODo6NzM5OTY6Ojc0MDA1Ojo3NDAxNDo6NzQwMjI6Ojc0MDMxOjo3NDAzOTo6NzQwNDc6Ojc0MDU1Ojo3NDA2Mjo6NzQwNjk6Ojc0MDc2Ojo3NDA4NDo6NzQwOTE6Ojc0MDk4Ojo3NDEwNTo6NzQxMTI6Ojc2NTkzOjo4MTkxMjo6ODQyOTM6Ojg0NDM4Ojo4NDQzODo6ODQ0Mzg6Ojg0NDM5Ojo4NDQ0MDo6ODQ0NDAiLz4NCisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9Ijg0NDQyOjo4NDQ0NTo6ODQ0NTA6Ojg0NDUwOjo4NDQ1MDo6ODQ0NTA6Ojg0NTEwOjo4NDYyMjo6ODQ2Nzc6Ojo6ODQ3Njg6Ojg0OTAyOjo4NTE2MTo6ODU4MzQ6Ojg2NjU2Ojo4NzUwMDo6ODkwMzQ6OjkwNzgzOjo5MjQ4Mjo6OTQzODY6Ojk2MDAzOjo5Njc1Njo6OTc2MDg6Ojk4NTIwOjo5ODU2ODo6OTg1Njg6Ojk4NTY4Ojo5ODU2ODo6OTg1Njg6Ojk4NTY4Ojo5ODU2OTo6OTg1Njk6Ojk4NTcwOjo5ODU4MTo6OTg2MDk6Ojk4NjQ5Ojo5ODY1Njo6OTg2NTc6Ojk4NjY0Ojo5ODcwNDo6OTkwNTk6Ojk5MjkxOjo5OTUyMjo6OTk2Nzk6Ojk5NzMwOjo5OTc1Mjo6OTk3ODY6Ojk5ODgyOjo5OTg4MiIvPg0KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iOTk4ODI6Ojk5ODgyOjo5OTg4Mjo6OTk4ODI6Ojk5OTQwOjoxMDAzNDY6OjEwMTA5Njo6MTAyNzQ5OjoxMDUwNzg6OjEwNzUyNzo6MTEwMDcyOjoxMTI5OTE6OjExNTc4Njo6MTE4NjU2OjoxMjE0NDE6OjEyNDIyODo6MTI4MTU0OjoxMzIxNDk6OjEzNTg5NTo6MTM5MjQzOjoxNDIyMzU6OjE0NDY2NTo6MTQ2NTUwOjoxNDc3NjY6OjE0ODQzMDo6MTQ5MTMyOjoxNDk3ODM6OjE1MDI4MTo6MTUxMTc4OjoxNTMzOTY6OjE1NTk3Nzo6MTU5NzY0OjoxNjQwMTE6OjE2ODM2Mzo6MTcyOTU5OjoxNzc0Mjk6OjE4MTg5Nzo6MTg2NjEyOjoxOTEzMjg6OjE5NTY5Nzo6MjAwMDU0OjoyMDQxMjc6OjIwNzk4MTo6MjExNTIwOjoyMTQ1ODE6OjIxNzcwNTo6MjIwNjgyOjoyMjMyMjQiLz4NCisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9IjIyNTQ0MDo6MjI3NDMxOjoyMjkzODk6OjIzMTEyODo6MjMyOTc5OjoyMzU1MDE6OjIzODcwNTo6MjQyODc3OjoyNDUzOTU6OjI0OTg5NDo6MjU0NDg0OjoyNTg2ODU6OjI2Mjg4NDo6MjY3MDU5OjoyNzEzNjU6OjI3NTc0Nzo6MjgwMDcyOjoyODQzNzE6OjI4ODY1Njo6MjkyNTY3OjoyOTYwNjI6OjI5ODk1ODo6MzAxNjc4OjozMDM2NDM6OjMwNTQ2NDo6MzA3MjY4OjozMDkwODc6OjMxMDcyMTo6MzEyNDE0OjozMTQ4MjM6OjMxNzkzMzo6MzIyMTUzOjozMjY4ODk6OjMzMTU3Nzo6MzM2NjY4OjozNDA5NDQ6OjM0NTIyNzo6MzQ5MzM4OjoxNTE5NzguNjk3OjoxNTE5ODIuNjE0OjoxNTE5ODYuNjE6OjE1MTk5MC4yMDc6OjE1MTk5My42NjU6OjE1MTk5Ni45NDM6OjE1MTk5OS44OTc6OjE1MjAwMi4xNTg6OjE1MjAwNC4yMDc6OjE1MjAwNi4xOTQiLz4NCisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIxNTIwMDcuOTU0OjoxNTIwMDkuNjM1OjoxNTIwMTEuMzI0OjoxNTIwMTIuODU3OjoxNTIwMTQuNDMzOjoxNTIwMTYuNTg2OjoxNTIwMTkuMTgxOjoxNTIwMjIuMzY1OjoxNTIwMjUuNzI4OjoxNTIwMjguMjg4OjoxNTIwMzAuOTk4OjoxNTIwMzQuMDgxOjoxNTIwMzYuMjQ3OjoxNTIwMzYuMjg0OjoxNTIwMzYuMzAyOjoxNTIwMzYuMzE5OjoxNTIwMzYuMzQxOjoxNTIwMzYuMzU5OjoxNTIwMzYuMzcyOjoxNTIwMzYuMzgzOjoxNTIwMzYuMzk6OjE1MjAzNi4zOTM6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTg6OjE1MjAzNi4zOTk6OjE1MjAzNi40MDQ6OjE1MjAzNi40MDc6OjE1MjAzNi40MTI6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTQ6OjE1MjAzNi40MTc6OjE1MjAzNi40MjI6OjE1MjAzNi40MjU6OjE1MjAzNi40Mjg6OjE1MjAzNi40MzI6OjE1MjAzNi40MzU6OjE1MjAzNi40Mzc6OjE1MjAzNi40Mzc6OjE1MjAzNi40MzciLz4NCisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSIxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDM3OjoxNTIwMzYuNDQxOjoxNTIwMzYuNDU6OjE1MjAzNi40Njo6MTUyMDM2LjQ3Mjo6MTUyMDM2LjQ3Njo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ3ODo6MTUyMDM2LjQ4OTo6MTUyMDM2LjU0Mzo6MTUyMDM2LjY2Mzo6MTUyMDM2Ljc3ODo6MTUyMDM2Ljg4Mzo6MTUyMDM2Ljk3MTo6MTUyMDM3LjA2Njo6MTUyMDM3LjE2NDo6MTUyMDM3LjI1Nzo6MTUyMDM3LjM2MTo6MzU2Njg1OjozNjM0MDU6OjM3MDQyMDo6Mzc3NTc1OjozODQxMzQ6OjM5MDIyNTo6Mzk2MDY0Ojo0MDE2OTYiLz4NCisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSI0MDcxOTg6OjQxMjY0NDo6NDE3ODgzOjo0MjI5OTg6OjQyODUxMzo6NDM1MDc1Ojo0NDIyMjk6OjQ1MzM5NTo6NDY2NjAxOjo0Nzk2NTg6OjQ5MjE3Nzo6NTA0MDAwOjo1MTU5MDE6OjUyNzkwMTo6NTM5OTk3Ojo6OjU1NjAzNjo6NTYzOTAzOjo1NzE4MjM6OjU3OTAwNTo6NTg1MzI2Ojo1OTEzMjU6OjU5NjM1NDo6NjAwNzE1Ojo2MDQ5OTI6OjYwOTE5OTo6NjEzMzgxOjo2MTc2NDY6OjYyMjUzOTo6NjI3ODY4Ojo2MzM5ODM6OjY0MDUwMjo6NjQ2NjUwOjo6OjY1OTMyODo6NjY1NDk4Ojo2NzE4NDU6OjY3ODIyNzo6Njg0NzY2Ojo2ODg5OTA6OjY5MTYxOTo6Njk0NDkyOjo2OTc4NDk6OjcwMDY5NDo6NzAyNjIwOjo3MDQ0NDI6OjcwNTU3Mjo6NzA2NjkxOjo3MDc2OTc6OjcwODczNiIvPg0KKwkJCQkJPHZhbCBvPSIxYTk2NDAiIHY9IjcwOTU0NTo6NzA5OTk3Ojo3MTA2OTA6OjcxMjI0Mzo6NzE0MjU1Ojo3MTY4NDc6OjcxOTYwOTo6NzIyMzczOjo3MjUxNTg6OjcyNzI2MSIvPg0KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9Ijc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzA5ODg6Ojc3MDk4ODo6NzcwOTg4Ojo3NzMwODY6Ojc3NjY0Nzo6NzgwMjk2Ojo3ODM4MjY6Ojc4NzQyNjo6NzkxMDYxOjo3OTU4NDQ6OjgwMjEwOTo6ODA4ODAxOjo4MTU2MjQ6OjgyMjQ5ODo6ODI5MjEzOjo4MzU1MDg6Ojg0MTQ0OTo6ODQ2ODg2Ojo4NTE3OTg6Ojg1NjY2NTo6ODU5MzU0Ojo4NjEyNjM6Ojg2MzA4Mzo6ODY0OTg1Ojo4NjcyNDU6Ojg2OTgwMzo6ODcyNDYwOjo4NzUyMjE6Ojg3NzkzNzo6ODgwNTYxOjo4ODMxNTYiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSI4ODU2NTc6Ojg4ODA4NTo6ODkwNTA1Ojo4OTMxMTA6Ojg5NjE5NDo6ODk5NTgxOjo5MDMxMTY6OjkwNjQ3Mzo6OTA5Njc3Ojo5MTMwMzQ6OjkxNjA4Mjo6OTE4NjQ2Ojo5MjEwOTM6OjkyMzQ2MDo6OTI1NjMwOjo5Mjc3NDQ6OjkzMDA1Mzo6OTMyODA2Ojo5MzU5MDQ6OjkzOTc1Mzo6OTQ0NTQwOjo5NTAxNjM6Ojk1NTg4NDo6OTYxMjMzOjo5NjY2NzM6Ojk3MjUzMzo6OTc4NzU4Ojo5ODUxNjg6Ojk5MTY2ODo6OTk3NzEzOjoxMDAzMDkxOjoxMDA4Mjc0OjoxMDEyNzQ5OjoxMDE3MDM4OjoxMDIwOTM3OjoxMDI0NjI0OjoxMDI3OTE5OjoxMDMxMDQ3OjoxMDM0MDg3OjoxMDM2OTc2OjoxMDQwMTA2OjoxMDQ0MTAyOjoxMDQ5MjAxOjoxMDU1MTc3OjoxMDYxNDExOjoxMDY3NTI4OjoxMDczNzU5OjoxMDc5ODA2Ii8+DQorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iMTA4NTc0ODo6MTA5MTU2Njo6MTA5Nzk2NDo6MTEwNDA5ODo6MTEwOTk2NTo6MTExNTYxMTo6MTEyMTA5Mzo6MTEyNjMyMTo6MTEzMDYzMDo6MTEzNDQ5Nzo6MTEzNzk3Mzo6MTEzOTk3MDo6MTE0MTg0OTo6MTE0MzkyMzo6MTE0NTkxODo6MTE0NzY0Nzo6MTE0OTU1Nzo6MTE1MzE3MTo6MTE1NzMyOTo6MTE2MTkzNDo6MTE2NjY2NDo6MTE3MTIwNDo6MTE3NTk1Nzo6MTE4MDcyMTo6MTE4NTQ0Njo6MTE5MDYzMjo6MTE5NjIwNDo6MTIwMTc0Mzo6MTIwNzMyODo6MTIxMjYwODo6MTIxNzg0Nzo6MTIyMjY3NDo6MTIyNjk0Mjo6MTIzMTA2Njo6MTIzNDg3ODo6MTIzODE1MTo6MTI0MTM5ODo6MTI0NDUyNTo6MTI0NzU0NDo6MTI1MDQwODo6MTI1MzY2Mzo6MTI1NzY0NTo6MTI2MjIzOTo6MTI2NzkwNTo6MTI3NDA3NTo6MTI4MDUxMjo6MTI4NzEwOTo6MTI5MzU2NiIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9IjEzMDY1MDE6OjEzMTI3NzU6OjEzMTg1Mzk6OjEzMjM3OTg6OjEzMjkzODc6OjEzMzUxMDU6OjEzNDA4ODM6OjEzNDYzOTY6OjEzNTEzNzY6OjEzNTU1OTQ6OjEzNTkwOTk6OjEzNjI3NDI6OjEzNjYzNTU6OjEzNjk5MzY6OjEzNzM0MTg6OjEzNzcxNTY6OjEzODE0NDA6OjEzODU5NzY6OjEzOTE0MTY6OjEzOTcxMjQ6OjE0MDM2MjI6OjE0MTI5MDU6OjE0MjA0OTQ6OjE0MjY1MTk6OjE0MzI3OTE6OjE0Mzg3MzE6OjE0NDQ3MDA6OjE0NTA0OTU6OjE0NTU5MTY6OjE0NjEyOTM6OjE0NjY2NDg6OjE0NzEzMjM6OjE0NzU5MDQ6OjE0Nzk5MDM6OjE0ODM1MTQ6OjE0ODcwMzA6OjE0OTA2ODI6OjE0OTQzMjQ6OjE0OTc5MTg6OjE1MDE2MTU6OjE1MDU0Njg6OjE1MDkzNTg6OjE1MTM1MDM6OjE1MTc4NTA6OjE1MjIwMDQ6OjE1MjU5NTc6OjE1Mjk3Mjg6OjE1MzM0MDMiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSIxNTM3MDAzOjoxNTQxMjg5OjoxNTQ2MTI0OjoxNTUxMjU2OjoxNTU2Mjg2OjoxNTYxMjcyOjoxNTY1NzMxOjoxNTY5NTgxOjoxNTcyOTQwIi8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iNTI1MTMwMDEiIGg9IjNkYzFhN2UwIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MCIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iMDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6MDo6OjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+DQorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowIi8+DQorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSIwOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjowOjoxMDo6NTIxOjoxMDA5OjoxOTE0OjoyMzI5OjoyODA0OjozNDc2Ii8+DQorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSI0NTQ2Ojo0NjgyOjo0NzE5Ojo0ODM4Ojo1MzUwOjo2MTY1Ojo2MzY1Ojo2NDQ1Ojo2NDkwOjo6OjY1NzE6OjY2NDM6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjY3MDQ6OjcyMDg6Ojc2Nzk6OjgxMjQ6Ojg0ODA6OjkwMTA6Ojk1MDE6Ojk5MTg6OjEwNzA4OjoxMDk2MDo6MTEwNzk6OjExMjAwOjoxMTI1NTo6MTE0NTk6OjExNjU2OjoxMTc5Mzo6MTIxNTk6OjEyMTU5OjoxMjE1OTo6MTIxNTk6OjEyMTYwOjoxMjE3OTo6MTIyMTU6OjEyMjg3OjoxMjMwMjo6MTI4ODQiLz4NCisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9IjEzNTMzOjoxNDIzMDo6MTUwNjI6OjE2MjA0OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTYiLz4NCisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9IjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyIi8+DQorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTI6OjE3MTU3LjQ5Mjo6MTcxNTcuNDkyOjoxNzE1Ny40OTM6OjE3MTU3LjUxMTo6MTcxNTcuNTI1OjoxNzE1Ny41NDI6OjE3MTU3LjU1ODo6MTcxNTcuNTc5OjoxNzE1Ny41OTk6OjE3MTU3LjYwODo6MTcxNTcuNjExOjoxNzE1Ny42MTI6OjE3MTU3LjYxMjo6MTcxNTcuNjEyOjoxNzE1Ny42MTI6OjE3MTU3LjYxMzo6MTcxNTcuNjE2OjoxNzE1Ny42MTg6OjE3MTU3LjYyMzo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzE6OjE3MTU3LjYzMTo6MTcxNTcuNjMxOjoxNzE1Ny42MzI6OjE3MTU3LjY0OSIvPg0KKwkJCQkJPHZhbCBvPSIxNTM0MjAiIHY9IjE3MTU3LjY2OTo6MTcxNTcuNjg2OjoxNzE1Ny43MDY6OjE3MTU3LjcyODo6MTcxNTcuNzUyOjoxNzE1Ny43NzE6OjE3MTU3Ljc4Njo6MTcxNTcuNzk5OjoxNzE1Ny44MTI6OjE3MTU3LjgyNDo6MTcxNTcuODM4OjoxNzE1Ny44NTo6MTcxNTcuODYxOjoxNzE1Ny44NzE6OjE3MTU3Ljg4Mzo6MTcxNTcuODk6OjE3MTU3Ljg5OjoxNzE1Ny44OTo6MTcxNTcuODk6OjE3MTU3Ljg5OjoxNzE1Ny44OTo6MTcxNTcuODkxOjoxNzE1Ny44OTk6OjE3MTU3LjkxMTo6MTcxNTcuOTE4OjoxNzE1Ny45Mjo6MTcxNTcuOTIxOjoxNzE1Ny45MjU6OjE3MTU3LjkzMjo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU3LjkzNzo6MTcxNTcuOTM3OjoxNzE1Ny45Mzc6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1NiIvPg0KKwkJCQkJPHZhbCBvPSIxN2Q3MjAiIHY9IjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6Ojo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ojo6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2Ii8+DQorCQkJCQk8dmFsIG89IjFhOTY0MCIgdj0iMTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTY6OjE3MTU2OjoxNzE1Njo6MTcxNTYiLz4NCisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIyNjM2Njo6MjY2NDg6OjI5NzM3OjozMzc5MDo6MzczMjA6OjQxMDM4Ojo0NTQ5MTo6NTA4NzA6OjU2Mzc4Ojo2MjA2Njo6Njc4OTI6Ojc0NDM1Ojo4MTA3Mzo6ODc3NDg6Ojk0NDg3OjoxMDEzMjU6OjEwODE3Mzo6MTE0NjcxOjoxMjA0MTc6OjEyNTc2ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4Ii8+DQorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iMTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTgiLz4NCisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4Ii8+DQorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5ODo6MTI3MDk4OjoxMjcwOTg6OjEyNzA5OCIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjM0NjAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjYwOTQ1NjQ6OjYwOTU4Njk6OjYwOTc0MzM6OjYwOTkwNDY6OjYxMDA2MzA6OjYxMDE5NjA6OjYxMDMxMzc6OjYxMDQ4MjY6OjYxMDY0ODc6OjYxMDgzMzg6OjYxMTAwNTc6OjYxMTIwODc6OjYxMTQxMDg6OjYxMTYwMTc6OjYxMTY2MzU6OjYxMTY2NDA6OjYxMTY2NDU6OjYxMTY2NDg6OjYxMTY2NDk6OjYxMTY2NTQ6OjYxMTY2NjE6OjYxMTY2Njc6OjYxMTY2NzQ6OjYxMTY2ODE6OjYxMTY2ODg6OjYxMTY2OTQ6OjYxMTY3MDE6OjYxMTY3MDg6OjYxMTY3MTU6OjYxMTY3MjE6OjYxMTY3MjM6OjYxMTY3MzA6OjYxMTY3Mzg6OjYxMTY3NDU6OjYxMTY3NTE6OjYxMTY3NTc6OjYxMTY3NjQ6OjYxMTY3NzE6OjYxMTY3Nzk6OjYxMTY3ODY6OjYxMTY3OTM6OjYxMTY3OTk6OjYxMTY4MDA6OjYxMTY4MDA6OjYxMTY4MDU6OjYxMTY4MDg6OjYxMTY4MTI6OjYxMTY4MTkiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjYxMTY4MjY6OjYxMTY4MzI6OjYxMTY4MzI6OjYxMTY4MzQ6OjYxMTY4Mzg6OjYxMTY4Mzk6OjYxMTY4Mzk6OjYxMTY4NDU6OjYxMTY4NTI6OjYxMTY4NTk6OjYxMTY4NjY6OjYxMTY4NzM6OjYxMTY4ODA6OjYxMTY4ODc6OjYxMTY4OTM6OjYxMTY4OTg6OjYxMTY4OTk6OjYxMTY4OTk6OjYxMTY4OTk6OjYxMTY5MDE6OjYxMTY5MDI6OjYxMTY5MDQ6OjYxMTY5MDU6OjYxMTY5MTA6OjYxMTY5MTc6OjYxMTY5MjQ6OjYxMTY5MzE6OjYxMTY5Mzg6OjYxMTY5NDU6OjYxMTY5NTI6OjYxMTY5NTc6OjYxMTY5NjE6OjYxMTY5Njg6Ojo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3MDo6NjExNjk3Mjo6NjExNjk3ODo6NjExNjk4MDo6NjExNjk4Nzo6NjExNjk5NCIvPg0KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iNjExNzAwMTo6NjExNzAwODo6NjExNzAxNTo6NjExNzAyMjo6NjExNzAyOTo6NjExNzAzMzo6NjExNzAzOTo6NjExNzA0Mjo6NjExNzA0Mjo6NjExNzA0NDo6NjExNzA0OTo6NjExNzA1NDo6NjExNzA2MTo6NjExNzA2Mjo6NjExNzA2Mjo6NjExNzA2Mzo6NjExNzA2NTo6NjExNzA2NTo6NjExNzA2Njo6NjExNzA3Mjo6NjExNzA3ODo6NjExNzA4NDo6NjExNzA5MTo6NjExNzA5ODo6NjExNzEwMzo6NjExNzExMDo6NjExNzExNzo6NjExNzEyNDo6NjExNzEyOTo6NjExNzEyOTo6NjExNzEzNDo6NjExNzEzNjo6NjExNzEzNzo6NjExNzEzNzo6NjExNzEzNzo6NjExNzEzODo6NjExNzE0NDo6NjExNzE0NTo6NjExNzE0NTo6NjExNzE0NTo6NjExNzE0NTo6NjExNzE0NTo6NjExNzE0NTo6NjExNzE0ODo6NjExNzE1MDo6NjExNzE1NDo6NjExNzE2MDo6NjExNzE2NyIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iNjExNzE3NDo6NjExNzE4MTo6NjExNzE4OTo6NjExNzE5Njo6NjExNzIwMzo6NjExNzIxMDo6NjExNzIxNjo6NjExNzIxOTo6NjExNzIyMDo6NjExNzIyMDo6NjExNzIyMjo6NjExNzIyODo6NjExNzIzNTo6NjExNzIzOTo6NjExNzI0MTo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0NDo6NjExNzI0Nzo6NjExNzI0ODo6NjExNzI1Mjo6NjExNzI1OTo6NjExNzI2Njo6NjExNzI3Mzo6NjExNzI4MDo6NjExNzI4Nzo6NjExNzI5Mzo6NjExNzI5Nzo6NjExNzMwMzo6NjExNzMwNDo6NjExNzMwNTo6NjExNzMwOTo6NjExNzMxNjo6NjExNzMyMzo6NjExNzMzMDo6NjExNzMzNjo6NjExNzM0MDo6NjExODA5NTo6NjExODkzNjo6NjExOTI5OTo6NjExOTMwMDo6NjEyMDExNzo6NjEyMDQxOTo6NjEyMDg2Nzo6NjEyMTY5Mjo6NjEyMzMwOCIvPg0KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iNjEyMzkzODo6NjEyNDEwNjo6NjEyNDc2NTo6NjEyNTY5MTo6NjEyNTc4NDo6NjEyNTc4NTo6NjEyNjEyOTo6NjEyNjEyOTo6NjEyNjEyOTo6Ojo2MTI2MTI5Ojo2MTI2MTI5Ojo2MTI2MTY0Ojo2MTI2MTczOjo2MTI2MTczOjo2MTI2MzU4Ojo2MTI2NTMxOjo2MTI2NTc2Ojo2MTI2ODQwOjo2MTI3NjEyOjo2MTI4NDU1Ojo2MTI4NDU1Ojo2MTI4NzU3Ojo2MTI5ODgwOjo2MTI5OTgxOjo2MTI5OTgzOjo2MTMwMTMzOjo2MTMwNDczOjo2MTMwNDg1Ojo2MTMwNDg1Ojo2MTMwNDg1Ojo2MTMwNDg1Ojo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNDkzOjo2MTMwNTYxOjo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNjQ5Ojo2MTMwNzkyOjo2MTMyMDE2Ojo2MTMzMTc1Ii8+DQorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSI2MTM0MzA2Ojo2MTM0NzE3Ojo2MTM1MDkzOjo2MTM1MDkzOjo2MTM1NDAyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTIyOjo2MTM1OTI5Ojo2MTM2MDQxOjo2MTM2NjE3Ojo2MTM3MjU2Ojo2MTM3NTEyOjo2MTM3Nzk3Ojo2MTM4MDg5Ojo2MTM4NDMxOjo2MTM5MDUzOjo2MTM5MDUzOjo2MTM5MDUzOjo2MTM5MDUzOjo2MTM5MDUzOjo2MTM5MTQ3Ojo2MTM5MjUxOjo2MTM5MjUxOjo2MTM5MjUxOjo2MTM5MjUxOjo2MTM5MjUxOjo2MTM5MjUxOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5MzAyOjo2MTM5NDU2Ojo2MTQwNjU1Ojo2MTQxNzgyIi8+DQorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSI2MTQyNjA5Ojo2MTQyODI4Ojo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDMyOjo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM2Ojo2MTQzMDM5Ojo2MTQzMDU2Ojo2MTQzMDU2Ojo2MTQzMzgyOjo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTQ1Ojo2MTQzNTg3Ojo2MTQzNzEzOjo2MTQ0MTM1Ojo2MTQ0NzgzOjo2MTQ0ODE2Ojo2MTQ0ODE2Ojo2MTQ0ODE2OjoxNDQ4MTguMjo6MTQ0ODE4LjI6OjE0NDgxOC4yOjoxNDQ4MTguMjo6MTQ0ODE4LjI6OjE0NDgxOC4yNDM6OjE0NDgxOC40NzQ6OjE0NDgxOC40ODo6MTQ0ODE4Ljc3NTo6MTQ0ODE5Ljk1NSIvPg0KKwkJCQkJPHZhbCBvPSIxMjkxMjAiIHY9IjE0NDgyMS4yNjE6OjE0NDgyMi42NDQ6OjE0NDgyNC4wNTM6OjE0NDgyNC41ODQ6OjE0NDgyNC41ODc6OjE0NDgyNC41ODc6OjE0NDgyNC41ODc6OjE0NDgyNC42Mjo6MTQ0ODI0Ljc0NDo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc0Njo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1NTo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Njo6MTQ0ODI0Ljc1Nzo6MTQ0ODI0Ljc3OjoxNDQ4MjQuNzg4OjoxNDQ4MjQuNzk2OjoxNDQ4MjQuODAyOjoxNDQ4MjQuODA1OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA2OjoxNDQ4MjQuODA5OjoxNDQ4MjQuODIzOjoxNDQ4MjQuODI4Ii8+DQorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMTQ0ODI0LjgyODo6MTQ0ODI0LjgyODo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgyOTo6MTQ0ODI0LjgzNDo6MTQ0ODI0LjgzNDo6MTQ0ODI0LjgzNDo6MTQ0ODI0LjgzNDo6MTQ0ODI0LjgzNTo6MTQ0ODI0LjgzNTo6MTQ0ODI0Ljg0OjoxNDQ4MjQuODQ1OjoxNDQ4MjQuODQ5OjoxNDQ4MjQuODY1OjoxNDQ4MjQuODc2OjoxNDQ4MjQuODg4OjoxNDQ4MjQuODg5OjoxNDQ4MjQuODg5OjoxNDQ4MjQuODg5OjoxNDQ4MjQuODg5OjoxNDQ4MjQuODg5OjoxNDQ4MjQuODg5OjoxNDQ4MjQuODg5OjoxNDQ4MjQuODkyOjoxNDQ4MjQuODk2OjoxNDQ4MjQuODk3OjoxNDQ4MjQuOTo6MTQ0ODI0Ljk6OjE0NDgyNC45Ojo2MTQ0ODI0Ojo2MTQ0ODI0Ojo2MTQ0ODI0Ojo2MTQ0ODI0Ojo2MTQ1MDAwOjo2MTQ2NzAyOjo2MTQ4OTk1Ojo2MTUxMjk4Ii8+DQorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iNjE1NDAxMTo6NjE1Njg4NTo6NjE1OTgyMTo6NjE2MTc4MTo6NjE2MjQyNDo6NjE2MzU2NTo6NjE2NTI3ODo6NjE2Njg2ODo6NjE2Nzc1NTo6NjE2ODY3MTo6NjE3MTMxMjo6NjE3NDMxNTo6NjE3NzAxNDo6NjE3OTYwOTo6NjE4MTU2ODo6Ojo2MTgyMDc2Ojo2MTgyNTY3Ojo2MTgzODYzOjo2MTg1MTIyOjo2MTg2NjY4Ojo2MTg4OTA2Ojo2MTkwMDM3Ojo2MTkxMDE2Ojo2MTkyNTc3Ojo2MTk0Mjc0Ojo2MTk2MDI5Ojo2MTk2ODEwOjo2MTk2ODU1Ojo2MTk2OTUyOjo2MTk3NjgxOjo2MTk4NTQ4Ojo2MTk4NjU3Ojo6OjYxOTkzOTI6OjYyMDAzNzI6OjYyMDA4OTU6OjYyMDEyMjg6OjYyMDE0MjU6OjYyMDE0MjU6OjYyMDI4NTY6OjYyMDU1ODU6OjYyMDkwNDg6OjYyMTExMTU6OjYyMTI2NDg6OjYyMTU3MjA6OjYyMTkwOTA6OjYyMjE3NzM6OjYyMjQ4NDg6OjYyMjgxODUiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSI2MjMxNTMwOjo2MjMzOTAxOjo2MjM1NTE3Ojo2MjM3MjY0Ojo2MjM5NTU0Ojo2MjQxOTQzOjo2MjQ0MDQ5Ojo2MjQ2MDAzOjo2MjQ4MjkxOjo2MjUwODgwIi8+DQorCQkJCQk8dmFsIG89IjFjNzQ2MCIgdj0iNjI2OTM5Mzo6NjI2OTQ2MDo6NjI2OTU2MTo6NjI2OTU2MTo6NjI3MDE5Mzo6NjI3MTE5Mzo6NjI3MTc2Njo6NjI3MTc2Njo6NjI3MTc2Njo6NjI3MjAwMzo6NjI3MzQxNDo6NjI3MzgwMjo6NjI3NDE5MDo6NjI3NTA3MDo6NjI3NTc4ODo6NjI3NTgwNTo6NjI3NTgwNTo6NjI3NTg0NDo6NjI3Njc0Nzo6NjI3NzA5Mzo6NjI3NzE4NDo6NjI3NzI2Nzo6NjI3NzcxMDo6NjI3ODM0Njo6NjI3OTI2Mjo6NjI4MDA0MTo6NjI4MTI2ODo6NjI4MjkwODo6NjI4NDc0NDo6NjI4Njc5Mjo6NjI4OTAzNjo6NjI5MTM2Mjo6NjI5MzU4Njo6NjI5NTg4NDo6NjI5ODEzNjo6NjMwMDExNTo6NjMwMjMxNjo6NjMwMjk1NDo6NjMwMzQzOTo6NjMwMzc0OTo6NjMwMzkzODo6NjMwNDIxMjo6NjMwNDkyNDo6NjMwNTMwOTo6NjMwNTYyNjo6NjMwNTgwNDo6NjMwNjAwNDo6NjMwNjMyMSIvPg0KKwkJCQkJPHZhbCBvPSIxZjE3NjAiIHY9IjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MDc6OjYzMDY0MTc6OjYzMDY1NjI6OjYzMDY5MDQ6OjYzMDczOTk6OjYzMDk1MTc6OjYzMTE2NDM6OjYzMTI2MTE6OjYzMTM4NzU6OjYzMTQ4Njg6OjYzMTUyMjg6OjYzMTUzNTI6OjYzMTUzODU6OjYzMTU4MzU6OjYzMTYwMTY6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYwMjM6OjYzMTYxMTM6OjYzMTY0NjA6OjYzMTY3NTU6OjYzMTcxNzc6OjYzMTgwMzY6OjYzMTgzODM6OjYzMTkwMzg6OjYzMTkwMzg6OjYzMTk2MzI6OjYzMjA2MjA6OjYzMjIwOTk6OjYzMjMwMjc6OjYzMjM1Mjg6OjYzMjM5NjI6OjYzMjM5Njc6OjYzMjM5Njc6OjYzMjQxNDM6OjYzMjUxNDE6OjYzMjUzMjI6OjYzMjU3MjQ6OjYzMjYwMjA6OjYzMjcxMzI6OjYzMjcxMzIiLz4NCisJCQkJCTx2YWwgbz0iMjFiYTYwIiB2PSI2MzI3MTMyOjo2MzI3MTMyOjo2MzI4MTc0Ojo2MzI4NjY3Ojo2MzI4NjY3Ojo2MzI4NzA1Ojo2MzI5NDAyOjo2MzMwMDU4Ojo2MzMwMDU4Ojo2MzMwNjU1Ojo2MzMxNzc0Ojo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDMzOjo2MzMyMDc4Ojo2MzMyMzE2Ojo2MzMyODcyOjo2MzMyODk3Ojo2MzMyODk3Ojo2MzMyODk3Ojo2MzMyODk3Ojo2MzMzMTczOjo2MzMzMjA0Ojo2MzMzODI3Ojo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NDEzOjo2MzM0NTU0Ojo2MzM0NTU0Ojo2MzM0NTU0Ojo2MzM0NzY1Ojo2MzM0OTc3Ojo2MzM1NDgxOjo2MzM1NzU5Ojo2MzM1NzU5Ojo2MzM1NzU5Ojo2MzM1NzU5Ojo2MzM1ODI0Ojo2MzM1ODI2Ojo2MzM1ODI2Ojo2MzM1ODI2Ojo2MzM1ODI2Ojo2MzM1ODg5Ojo2MzM2NDA3Ii8+DQorCQkJCQk8dmFsIG89IjI0NmI3MCIgdj0iNjMzODA0Nzo6NjMzODcxOTo6NjMzODcyOTo6NjMzODcyOTo6NjMzODcyOTo6NjMzOTA2NTo6NjM0MDM1NDo6NjM0MTc2Njo6NjM0MjcyMzo6NjM0MzQzMjo6NjM0MzkyNDo6NjM0NTAwMjo6NjM0NjExNTo6NjM0NzAxODo6NjM0NzA0ODo6NjM0NzA1MDo6NjM0NzA5MTo6NjM0NzA5MTo6NjM0NzA5MTo6NjM0NzA5MTo6NjM0NzQwNjo6NjM1MDIwMDo6NjM1MjA3Nzo6NjM1MjE1MDo6NjM1MjE1MDo6NjM1MjE1MDo6NjM1MjE1MDo6NjM1MjE1MDo6NjM1MjE1MDo6NjM1MjE1MDo6NjM1MjMzMTo6NjM1MjMzMTo6NjM1MjYzODo6NjM1MzE5Mzo6NjM1MzY5NTo6NjM1NTAxOTo6NjM1NjkxNTo6NjM1ODk1Mjo6NjM2MDQzMDo6NjM2MTM1Mjo6NjM2MTQyMDo6NjM2MTQyMDo6NjM2MTQyMDo6NjM2MTQyMDo6NjM2MTQyMDo6NjM2MTQyMDo6NjM2MTQyMDo6NjM2MTQyMCIvPg0KKwkJCQkJPHZhbCBvPSIyNzBlNzAiIHY9IjYzNjE0MjA6OjYzNjE0MzQ6OjYzNjE2OTg6OjYzNjIxNzQ6OjYzNjI2NjA6OjYzNjM1MDI6OjYzNjM4NjA6OjYzNjM4NjA6OjYzNjM5MzMiLz4NCisJCQkJPC9wYXI+DQorCQkJCTxwYXIgbWVtaW5kPSIzMzgwMSIgaD0iM2RjMWE3ZTAiPg0KKwkJCQkJPHZhbCBvPSIwIiB2PSI4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyIi8+DQorCQkJCQk8dmFsIG89IjJhMzAwIiB2PSI4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjIiLz4NCisJCQkJCTx2YWwgbz0iNTU0MTAiIHY9Ijg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjIiLz4NCisJCQkJCTx2YWwgbz0iN2Y3MTAiIHY9Ijg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE3OTQyMjo6ODgxNzk0MjI6Ojg4MTc5NDIyOjo4ODE4MDEwMjo6ODgxODExNzY6Ojg4MTgxODU5Ojo4ODE4MTg2MTo6ODgxODE4OTQ6Ojg4MTgxODk2Ojo4ODE4MTg5Njo6ODgxODE4OTYiLz4NCisJCQkJCTx2YWwgbz0iYTlhMTAiIHY9Ijg4MTgyMTY5Ojo4ODE4MjIwMDo6ODgxODIyMDA6Ojg4MTgyMjAwOjo4ODE4MjI4ODo6ODgxODMzNjM6Ojg4MTgzODU3Ojo4ODE4NDYzMTo6ODgxODY0MDc6Ojo6ODgxOTQwMTA6Ojg4MTk4MjMzOjo4ODIwMDE0ODo6ODgyMDAzNDg6Ojg4MjAwOTQ3Ojo4ODIwMjYyMDo6ODgyMDMwMTE6Ojg4MjAzNTA3Ojo4ODIwMzUxMjo6ODgyMDM1MTI6Ojg4MjAzNTQzOjo4ODIwNDM1Njo6ODgyMDQ0MDE6Ojg4MjA0NDAxOjo4ODIwNTgzMDo6ODgyMDYxODg6Ojg4MjA2MjIyOjo4ODIwNjIyMjo6ODgyMDY1MDI6Ojg4MjA3NTE3Ojo4ODIwOTAwODo6ODgyMTAxMDI6Ojg4MjEwNjY2Ojo4ODIxMTYzNTo6ODgyMTI3MjQ6Ojg4MjEzNjA0Ojo4ODIxNDEwODo6ODgyMTQ1MTI6Ojg4MjE0OTY5Ojo4ODIxNjIyOTo6ODgyMTY3NTk6Ojg4MjE5MjIxOjo4ODIyMTgxODo6ODgyMjQ1ODk6Ojg4MjI3MDMxOjo4ODIyODg3MDo6ODgyMjk1NjM6Ojg4MjI5NTYzOjo4ODIyOTU4MCIvPg0KKwkJCQkJPHZhbCBvPSJkNGIyMCIgdj0iODgyMjk1ODA6Ojg4MjI5NTgwOjo4ODIyOTU4Mjo6ODgyMzAzMjU6Ojg4MjMxODgxOjo4ODIzMTkxMDo6ODgyMzI1OTU6Ojg4MjM0NTc0Ojo4ODIzNzI0NTo6ODgyNDAyODM6Ojg4MjQzMDU2Ojo4ODI0MzY0Mzo6ODgyNDQxMDU6Ojg4MjQ0MzUyOjo4ODI0NDU5Mzo6ODgyNDUxMTU6Ojg4MjQ1NzQ2Ojo4ODI0NTc0Njo6ODgyNDU4OTE6Ojg4MjQ1OTE1Ojo4ODI0NTk1OTo6ODgyNDU5ODg6Ojg4MjQ1OTg5Ojo4ODI0NzI0NDo6ODgyNDg1MTA6Ojg4MjQ5MjkzOjo4ODI1MDIwMzo6ODgyNTIxNzg6Ojg4MjU0NTMxOjo4ODI1NDg3NDo6ODgyNTU3MDQ6Ojg4MjU2ODk4Ojo4ODI1ODQzODo6ODgyNTk1OTU6Ojg4MjYwMzk4Ojo4ODI2MDkxOTo6ODgyNjI4NDU6Ojg4MjY0MzE0Ojo4ODI2NjAwNjo6ODgyNjgyOTc6Ojg4MjY5OTQyOjo4ODI3MTUwMjo6ODgyNzI2OTA6Ojg4MjczODQ5Ojo4ODI3NTUwMzo6ODgyNzYwMDM6Ojg4Mjc2MDAzOjo4ODI3NjAwMyIvPg0KKwkJCQkJPHZhbCBvPSJmZWUyMCIgdj0iODgyNzYwMTc6Ojg4Mjc2MDE3Ojo4ODI3NjAxOTo6ODgyNzY4NTE6Ojg4Mjc4NTE1Ojo4ODI4MDExODo6ODgyODE1NjA6Ojg4MjgzMDc0Ojo4ODI4Mzk3MTo6ODgyODU0Mjg6Ojg4Mjg2ODE1Ojo4ODI4NzcyNjo6ODgyODg4MzM6Ojg4Mjg5OTUzOjo4ODI5MTAzNzo6ODgyOTMwOTk6Ojg4Mjk1NDI3Ojo4ODI5NjY3NDo6ODgyOTcxMzM6Ojg4Mjk3ODMyOjo4ODI5ODYxMjo6ODgyOTk0NDc6Ojg4Mjk5NTE3Ojo4ODMwMDU0MTo6ODgzMDEwMjU6Ojg4MzAxMzA0Ojo4ODMwMTUwMzo6ODgzMDI0Njg6Ojg4MzA0NDE3Ojo4ODMwNjEwNjo6ODgzMDc1NzE6Ojg4MzA4MzY4Ojo4ODMwODQ0ODo6ODgzMDg0NDg6Ojg4MzA4NDQ4Ojo4ODMwOTAyMTo6ODgzMDk4OTk6Ojg4MzEwNzE5OjoxMTExODguMDE2OjoxMTExODkuMzo6MTExMTkwLjA4ODo6MTExMTkxLjgyMzo6MTExMTkyLjkxOjoxMTExOTMuMjAyOjoxMTExOTMuNDczOjoxMTExOTMuOTMxOjoxMTExOTMuOTQ4OjoxMTExOTMuOTQ4Ii8+DQorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iMTExMTkzLjk0ODo6MTExMTkzLjk0ODo6MTExMTkzLjk0ODo6MTExMTkzLjk0ODo6MTExMTk0LjU4OjoxMTExOTUuNTE5OjoxMTExOTYuNzM1OjoxMTExOTguMzM4OjoxMTExOTkuMzAyOjoxMTEyMDAuNjI1OjoxMTEyMDEuNzc1OjoxMTEyMDIuNDIyOjoxMTEyMDMuMDA4OjoxMTEyMDMuMDI6OjExMTIwMy4wMzI6OjExMTIwMy4wNjI6OjExMTIwMy4wOTg6OjExMTIwMy4xMzU6OjExMTIwMy4xNzE6OjExMTIwMy4yMDM6OjExMTIwMy4yMTI6OjExMTIwMy4yMTY6OjExMTIwMy4yMjE6OjExMTIwMy4yNzY6OjExMTIwMy4yOTk6OjExMTIwMy4zMTY6OjExMTIwMy4zMzU6OjExMTIwMy4zNzE6OjExMTIwMy40MjI6OjExMTIwMy40NTI6OjExMTIwMy40NTc6OjExMTIwMy40NjQ6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njg6OjExMTIwMy40Njk6OjExMTIwMy41OjoxMTEyMDMuNTMyOjoxMTEyMDMuNTcxOjoxMTEyMDMuNjA2OjoxMTEyMDMuNjMyOjoxMTEyMDMuNjM5OjoxMTEyMDMuNjM5OjoxMTEyMDMuNjM5OjoxMTEyMDMuNjYxIi8+DQorCQkJCQk8dmFsIG89IjE1MzQyMCIgdj0iMTExMjAzLjY3MTo6MTExMjAzLjY3MTo6MTExMjAzLjY3Mjo6MTExMjAzLjY4NDo6MTExMjAzLjcxNTo6MTExMjAzLjczOTo6MTExMjAzLjc2MTo6MTExMjAzLjgwMTo6MTExMjAzLjgzNzo6MTExMjAzLjg2Nzo6MTExMjAzLjg5MTo6MTExMjAzLjg5Nzo6MTExMjAzLjkwNDo6MTExMjAzLjkxNTo6MTExMjAzLjkzNTo6MTExMjAzLjk1NTo6MTExMjAzLjk2Mjo6MTExMjAzLjk2OTo6MTExMjAzLjk3Mjo6MTExMjAzLjk4ODo6MTExMjAzLjk5Nzo6MTExMjAzLjk5Nzo6MTExMjA0OjoxMTEyMDQuMDAxOjoxMTEyMDQuMDAxOjoxMTEyMDQuMDAxOjoxMTEyMDQuMDAxOjoxMTEyMDQuMDAxOjoxMTEyMDQuMDE2OjoxMTEyMDQuMDUyOjoxMTEyMDQuMDYzOjoxMTEyMDQuMDc6OjExMTIwNC4wODE6OjExMTIwNC4wOTM6OjExMTIwNC4wOTc6OjExMTIwNC4wOTc6OjExMTIwNC4wOTk6OjExMTIwNC4xMTo6MTExMjA0LjEyODo6MTExMjA0LjE2NDo6ODgzMTI2Mjg6Ojg4MzE0NzY3Ojo4ODMxNjI5MDo6ODgzMTcyODQ6Ojg4MzE3Njk0Ojo4ODMxNzY5NDo6ODgzMTc2OTQ6Ojg4MzE3Njk0Ii8+DQorCQkJCQk8dmFsIG89IjE3ZDcyMCIgdj0iODgzMTc2OTQ6Ojg4MzE3Njk0Ojo4ODMxNzY5NDo6ODgzMTc2OTQ6Ojg4MzE3Njk4Ojo4ODMxNzcwMDo6ODgzMTc3MTM6Ojg4MzE3NzEzOjo4ODMxNzcxMzo6ODgzMTc3MTM6Ojg4MzE3Nzc4Ojo4ODMxNzc3ODo6ODgzMTc3Nzg6Ojg4MzE3Nzc4Ojo4ODMxNzc3ODo6Ojo4ODMyMDUxMTo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMDkxNzo6ODgzMjA5MTc6Ojg4MzIwOTE3Ojo4ODMyMTQyMDo6ODgzMjMwNDI6Ojg4MzIzMDQyOjo4ODMyMzA1Mzo6ODgzMjMxMDU6Ojo6ODgzMjMxMzc6Ojg4MzIzMTM3Ojo4ODMyMzEzNzo6ODgzMjMxMzc6Ojg4MzIzMTQ4Ojo4ODMyMzc3NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3ODUiLz4NCisJCQkJCTx2YWwgbz0iMWE5NjQwIiB2PSI4ODMyMzc4NTo6ODgzMjM3ODU6Ojg4MzIzNzg1Ojo4ODMyMzc4NTo6ODgzMjM3OTA6Ojg4MzIzNzkwOjo4ODMyMzc5MDo6ODgzMjM3OTA6Ojg4MzIzNzkwOjo4ODMyMzc5MCIvPg0KKwkJCQkJPHZhbCBvPSIxYzc0NjAiIHY9Ijg4MzQyMTMwOjo4ODM0MjIwOTo6ODgzNDI1Mjk6Ojg4MzQ0NDU4Ojo4ODM0NDQ4NTo6ODgzNDQ0ODU6Ojg4MzQ1OTA1Ojo4ODM0ODM3OTo6ODgzNTA0OTQ6Ojg4MzUwODEzOjo4ODM1MDgxMzo6ODgzNTEwNTY6Ojg4MzUxMDU2Ojo4ODM1MTA1Njo6ODgzNTEwNTY6Ojg4MzUxMjg3Ojo4ODM1MjQyODo6ODgzNTM1OTg6Ojg4MzUzNTk4Ojo4ODM1MzYwMTo6ODgzNTM4NTk6Ojg4MzUzODYyOjo4ODM1Mzg2Mjo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzg2Mzo6ODgzNTM4NjM6Ojg4MzUzODYzOjo4ODM1Mzk2NTo6ODgzNTM5NjU6Ojg4MzUzOTY1Ojo4ODM1NDAxODo6ODgzNTQwMTg6Ojg4MzU0MDE4Ojo4ODM1NDAxODo6ODgzNTQwMTg6Ojg4MzU0MDIxOjo4ODM1NDAyMTo6ODgzNTQwMjEiLz4NCisJCQkJCTx2YWwgbz0iMWYxNzYwIiB2PSI4ODM1NDE2Njo6ODgzNTQ1NTI6Ojg4MzU1MTMwOjo4ODM1NzE1NDo6ODgzNTkyMjY6Ojg4MzU5ODI4Ojo4ODM1OTgyODo6ODgzNjAwNjg6Ojg4MzYwMTI2Ojo4ODM2MDEyNjo6ODgzNjAxMjY6Ojg4MzYwMTk0Ojo4ODM2MDIwNTo6ODgzNjAyMDU6Ojg4MzYwMjA1Ojo4ODM2MDIyMzo6ODgzNjA0MDY6Ojg4MzYxMzg1Ojo4ODM2MjI5Nzo6ODgzNjM1MTE6Ojg4MzY1NzU3Ojo4ODM2NzgyMTo6ODgzNjkyNzM6Ojg4MzY5OTI5Ojo4ODM3MTUzODo6ODgzNzMzMjI6Ojg4MzczODk5Ojo4ODM3NDYyOTo6ODgzNzQ2MzE6Ojg4Mzc0NjU1Ojo4ODM3NDY1Nzo6ODgzNzQ4MjI6Ojg4Mzc1NDY2Ojo4ODM3NTQ3MTo6ODgzNzU0NzE6Ojg4Mzc1NDcxOjo4ODM3NTU5OTo6ODgzNzU1OTk6Ojg4Mzc1NTk5Ojo4ODM3NjEwMjo6ODgzNzc0MzI6Ojg4Mzc4MzA2Ojo4ODM3ODMxOTo6ODgzNzg0Njc6Ojg4Mzc4OTE3Ojo4ODM3ODkxNzo6ODgzNzg5MTg6Ojg4Mzc5NDgyIi8+DQorCQkJCQk8dmFsIG89IjIxYmE2MCIgdj0iODgzODA3Nzc6Ojg4MzgyMjc1Ojo4ODM4MjY2MTo6ODgzODI3Nzc6Ojg4MzgzMjUwOjo4ODM4MzU5Mjo6ODgzODM1OTI6Ojg4MzgzNzExOjo4ODM4NTIwMzo6ODgzODUyNTc6Ojg4Mzg1MjU3Ojo4ODM4ODQ1OTo6ODgzOTAzOTQ6Ojg4MzkwODUwOjo4ODM5MTU2MTo6ODgzOTM4MzQ6Ojg4Mzk3NTc5Ojo4ODM5NzgxOTo6ODgzOTc4MTk6Ojg4Mzk5MjE4Ojo4ODQwMTc5Mjo6ODg0MDUzODY6Ojg4NDA4MTAwOjo4ODQwODEyMjo6ODg0MDgzNjU6Ojg4NDA4NTA1Ojo4ODQwODUwNTo6ODg0MTAyNDY6Ojg4NDExNjYwOjo4ODQxMjg0OTo6ODg0MTMzMzM6Ojg4NDE0NTIxOjo4ODQxNjY5Njo6ODg0MTc1ODM6Ojg4NDE3NjgzOjo4ODQxNzg1NDo6ODg0MTc4NTQ6Ojg4NDE3ODgzOjo4ODQxODAyNzo6ODg0MTkxNTk6Ojg4NDIwMTA4Ojo4ODQyMTA3MTo6ODg0MjE4Mjg6Ojg4NDIzNTU5Ojo4ODQyNjg5NDo6ODg0Mjk5NzU6Ojg4NDMyODI4Ojo4ODQzMjgyOCIvPg0KKwkJCQkJPHZhbCBvPSIyNDZiNzAiIHY9Ijg4NDMyODI4Ojo4ODQzMjgyODo6ODg0MzQ5NTE6Ojg4NDM5NTQ4Ojo4ODQ0MDkxNjo6ODg0NDEwMzA6Ojg4NDQxMDMwOjo4ODQ0MTAzMDo6ODg0NDEwMzA6Ojg4NDQxMDMwOjo4ODQ0MTExNjo6ODg0NDExMTY6Ojg4NDQxMTE2Ojo4ODQ0MTExNjo6ODg0NDEyMTg6Ojg4NDQxNzM5Ojo4ODQ0MjM2Mzo6ODg0NDM1NDI6Ojg4NDQ1MzQ0Ojo4ODQ0ODYyNDo6ODg0NTE0NjQ6Ojg4NDUxNDY0Ojo4ODQ1MTQ3Mzo6ODg0NTE2NTI6Ojg4NDUxODQwOjo4ODQ1MjMyMzo6ODg0NTMzMzI6Ojg4NDU1ODg5Ojo4ODQ1ODUwNzo6ODg0NjA1OTU6Ojg4NDYwNzcyOjo4ODQ2MjA2NTo6ODg0NjIyNjQ6Ojg4NDYyNjA4Ojo4ODQ2MjYyMjo6ODg0NjI2MjI6Ojg4NDYyNjIyOjo4ODQ2MjYyMjo6ODg0NjI2MjI6Ojg4NDYyNjIyOjo4ODQ2MjgyNjo6ODg0NjM1Mzg6Ojg4NDY0NjY3Ojo4ODQ2NjMxMDo6ODg0NjgzMDk6Ojg4NDcxMzkzOjo4ODQ3NDMwODo6ODg0NzcyNzQiLz4NCisJCQkJCTx2YWwgbz0iMjcwZTcwIiB2PSI4ODQ4MDM3ODo6ODg0ODExNTc6Ojg4NDgxNzY2Ojo4ODQ4MTc2Njo6ODg0ODE3NjY6Ojg4NDgxNzY2Ojo4ODQ4MzM0MDo6ODg0ODU2MjY6Ojg4NDg2MTE4Ii8+DQorCQkJCTwvcGFyPg0KKwkJCQk8cGFyIG1lbWluZD0iMzM0MDEiIGg9IjNkYzFhN2UwIj4NCisJCQkJCTx2YWwgbz0iMCIgdj0iOTQzNzc5NTo6OTQ0MTk3Mjo6OTQ0NjE0NDo6OTQ1MDIxNzo6OTQ1NDI2MTo6OTQ1ODE4NDo6OTQ2MjM0Njo6OTQ2NzQzNDo6OTQ3MzE4Njo6OTQ4MDEyNjo6OTQ4NzQwNDo6OTQ5NDc3OTo6OTUwMTkxNjo6OTUwODYxNTo6OTUxMDYyMTo6OTUxMDYyODo6OTUxMDYzNTo6OTUxMDY0Mjo6OTUxMDY0OTo6OTUxMDY1Njo6OTUxMDY2Mzo6OTUxMDY3MTo6OTUxMDY3ODo6OTUxMDY4Nzo6OTUxMDY5NTo6OTUxMDcwMzo6OTUxMDcxMjo6OTUxMDcyMDo6OTUxMDcyODo6OTUxMDczNjo6OTUxMDc0Mzo6OTUxMDc1MTo6OTUxMDc2MDo6OTUxMDc2ODo6OTUxMDc3Njo6OTUxMDc4NDo6OTUxMDc5Mjo6OTUxMDgwMDo6OTUxMDgwOTo6OTUxMDgxNzo6OTUxMDgyNjo6OTUxMDgzMzo6OTUxMDg0MDo6OTUxMDg0Nzo6OTUxMDg1NTo6OTUxMDg2Mzo6OTUxMDg3MTo6OTUxMDg3OSIvPg0KKwkJCQkJPHZhbCBvPSIyYTMwMCIgdj0iOTUxMDg4ODo6OTUxMDg5Njo6OTUxMDkwNDo6OTUxMDkxMjo6OTUxMDkyMDo6OTUxMDkyODo6OTUxMDkzNTo6OTUxMDk0NDo6OTUxMDk1Mjo6OTUxMDk2MDo6OTUxMDk2ODo6OTUxMDk3Njo6OTUxMDk4NDo6OTUxMDk5Mzo6OTUxMTAwMTo6OTUxMTAwOTo6OTUxMTAxNjo6OTUxMTAyMzo6OTUxMTAzMDo6OTUxMTAzODo6OTUxMTA0NTo6OTUxMTA1Mzo6OTUxMTA2MTo6OTUxMTA2OTo6OTUxMTA3ODo6OTUxMTA4Njo6OTUxMTA5NTo6OTUxMTEwMzo6OTUxMTExMjo6OTUxMTEyMTo6OTUxMTEyOTo6OTUxMTEzNzo6OTUxMTE0NDo6Ojo5NTExMTU4Ojo5NTExMTY1Ojo5NTExMTcxOjo5NTExMTc4Ojo5NTExMTg0Ojo5NTExMTkwOjo5NTExMTk3Ojo5NTExMjAzOjo5NTExMjA5Ojo5NTExMjE2Ojo5NTExMjIzOjo5NTExMjMxOjo5NTExMjM5Ojo5NTExMjQ3Ojo5NTExMjU1Ii8+DQorCQkJCQk8dmFsIG89IjU1NDEwIiB2PSI5NTExMjY0Ojo5NTExMjcyOjo5NTExMjgwOjo5NTExMjg5Ojo5NTExMjk3Ojo5NTExMzA1Ojo5NTExMzEzOjo5NTExMzIwOjo5NTExMzI3Ojo5NTExMzMzOjo5NTExMzQwOjo5NTExMzQ3Ojo5NTExMzU0Ojo5NTExMzYxOjo5NTExMzY4Ojo5NTExMzc1Ojo5NTExMzgyOjo5NTExMzg5Ojo5NTExMzk3Ojo5NTExNDA0Ojo5NTExNDEyOjo5NTExNDE5Ojo5NTExNDI3Ojo5NTExNDM1Ojo5NTExNDQzOjo5NTExNDUxOjo5NTExNDYwOjo5NTExNDY4Ojo5NTExNDc2Ojo5NTExNDg0Ojo5NTExNDkyOjo5NTExNTAwOjo5NTExNTA2Ojo5NTExNTEzOjo5NTExNTE5Ojo5NTExNTI2Ojo5NTExNTMzOjo5NTExNTM5Ojo5NTExNTQ2Ojo5NTExNTUzOjo5NTExNTU5Ojo5NTExNTY1Ojo5NTExNTcyOjo5NTExNTgwOjo5NTExNTg3Ojo5NTExNTk1Ojo5NTExNjAzOjo5NTExNjExIi8+DQorCQkJCQk8dmFsIG89IjdmNzEwIiB2PSI5NTExNjE5Ojo5NTExNjI4Ojo5NTExNjM3Ojo5NTExNjQ2Ojo5NTExNjU0Ojo5NTExNjYyOjo5NTExNjcwOjo5NTExNjc3Ojo5NTExNjg0Ojo5NTExNjkxOjo5NTExNjk4Ojo5NTExNzA1Ojo5NTExNzEzOjo5NTExNzIwOjo5NTExNzI3Ojo5NTExNzM0Ojo5NTExNzQwOjo5NTExNzQ3Ojo5NTExNzU0Ojo5NTExNzYxOjo5NTExNzY5Ojo5NTExNzc3Ojo5NTExNzg1Ojo5NTExNzk0Ojo5NTExODAzOjo5NTExODExOjo5NTExODIwOjo5NTExODI4Ojo5NTExODM2Ojo5NTExODQ0Ojo5NTExODUyOjo5NTExODU5Ojo5NTExODY2Ojo5NTExODczOjo5NTExODgwOjo5NTExODg4Ojo5NTExODk1Ojo5NTExOTAyOjo5NTExOTA5Ojo5NTE0MzkwOjo5NTE5NzA5Ojo5NTIyMDg5Ojo5NTIyMjM0Ojo5NTIyMjM0Ojo5NTIyMjM0Ojo5NTIyMjM1Ojo5NTIyMjM1Ojo5NTIyMjM1Ii8+DQorCQkJCQk8dmFsIG89ImE5YTEwIiB2PSI5NTIyMjM3Ojo5NTIyMjQwOjo5NTIyMjQ1Ojo5NTIyMjQ1Ojo5NTIyMjQ1Ojo5NTIyMjQ1Ojo5NTIyMzA1Ojo5NTIyNDE3Ojo5NTIyNDcyOjo6Ojk1MjI1NjQ6Ojk1MjI2OTg6Ojk1MjI5NTc6Ojk1MjM2MzA6Ojk1MjQ0NTE6Ojk1MjUyOTY6Ojk1MjY4MzA6Ojk1Mjg1Nzk6Ojk1MzAyNzk6Ojk1MzIxODI6Ojk1MzM3OTk6Ojk1MzQ1NTI6Ojk1MzU0MDQ6Ojk1MzYzMTc6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjQ6Ojk1MzYzNjU6Ojk1MzYzNjU6Ojk1MzYzNjY6Ojk1MzYzNzg6Ojk1MzY0MDU6Ojk1MzY0NDU6Ojk1MzY0NTI6Ojk1MzY0NTQ6Ojk1MzY0NjA6Ojk1MzY1MDE6Ojk1MzY4NTU6Ojk1MzcwODc6Ojk1MzczMTg6Ojk1Mzc0NzQ6Ojk1Mzc1MjU6Ojk1Mzc1NDg6Ojk1Mzc1ODE6Ojk1Mzc2Nzc6Ojk1Mzc2NzgiLz4NCisJCQkJCTx2YWwgbz0iZDRiMjAiIHY9Ijk1Mzc2Nzg6Ojk1Mzc2Nzg6Ojk1Mzc2Nzg6Ojk1Mzc2Nzg6Ojk1Mzc3MzY6Ojk1MzgxNDM6Ojk1Mzg4OTM6Ojk1NDA1NDY6Ojk1NDI4NzU6Ojk1NDUzMjQ6Ojk1NDc4Njk6Ojk1NTA3ODg6Ojk1NTM1ODI6Ojk1NTY0NTM6Ojk1NTkyMzc6Ojk1NjIwMjU6Ojk1NjU5NTE6Ojk1Njk5NDc6Ojk1NzM2OTI6Ojk1NzcwNDA6Ojk1ODAwMzI6Ojk1ODI0NjI6Ojk1ODQzNDc6Ojk1ODU1NjI6Ojk1ODYyMjY6Ojk1ODY5Mjg6Ojk1ODc1Nzk6Ojk1ODgwNzc6Ojk1ODg5NzQ6Ojk1OTExOTI6Ojk1OTM3NzM6Ojk1OTc1NjA6Ojk2MDE4MDg6Ojk2MDYxNjA6Ojk2MTA3NTY6Ojk2MTUyMjY6Ojk2MTk2OTQ6Ojk2MjQ0MDk6Ojk2MjkxMjQ6Ojk2MzM0OTM6Ojk2Mzc4NDk6Ojk2NDE5MjI6Ojk2NDU3NzY6Ojk2NDkzMTY6Ojk2NTIzNzg6Ojk2NTU1MDI6Ojk2NTg0Nzk6Ojk2NjEwMjEiLz4NCisJCQkJCTx2YWwgbz0iZmVlMjAiIHY9Ijk2NjMyMzc6Ojk2NjUyMjg6Ojk2NjcxODc6Ojk2Njg5MjU6Ojk2NzA3NzY6Ojk2NzMyOTc6Ojk2NzY1MDI6Ojk2ODA2NzM6Ojk2ODMxOTE6Ojk2ODc2OTA6Ojk2OTIyNzk6Ojk2OTY0ODE6Ojk3MDA2Nzk6Ojk3MDQ4NTU6Ojk3MDkxNjE6Ojk3MTM1NDI6Ojk3MTc4Njc6Ojk3MjIxNjc6Ojk3MjY0NTE6Ojk3MzAzNjM6Ojk3MzM4NTk6Ojk3MzY3NTQ6Ojk3Mzk0NzU6Ojk3NDE0NDA6Ojk3NDMyNjA6Ojk3NDUwNjQ6Ojk3NDY4ODM6Ojk3NDg1MTc6Ojk3NTAyMTA6Ojk3NTI2MTk6Ojk3NTU3MzA6Ojk3NTk5NDk6Ojk3NjQ2ODY6Ojk3NjkzNzQ6Ojk3NzQ0NjU6Ojk3Nzg3NDE6Ojk3ODMwMjM6Ojk3ODcxMzU6Ojg5Nzc1LjEyMzo6ODk3NzkuMDQ6Ojg5NzgzLjAzNjo6ODk3ODYuNjMzOjo4OTc5MC4wOTE6Ojg5NzkzLjM2OTo6ODk3OTYuMzI0Ojo4OTc5OC41ODU6Ojg5ODAwLjYzNTo6ODk4MDIuNjIxIi8+DQorCQkJCQk8dmFsIG89IjEyOTEyMCIgdj0iODk4MDQuMzgxOjo4OTgwNi4wNjM6Ojg5ODA3Ljc1Mjo6ODk4MDkuMjg0Ojo4OTgxMC44Njo6ODk4MTMuMDEyOjo4OTgxNS42MDc6Ojg5ODE4Ljc5Ojo4OTgyMi4xNTQ6Ojg5ODI0LjcxNDo6ODk4MjcuNDI1Ojo4OTgzMC41MDg6Ojg5ODMyLjY3Mzo6ODk4MzIuNzE6Ojg5ODMyLjcyODo6ODk4MzIuNzQ1Ojo4OTgzMi43Njc6Ojg5ODMyLjc4NTo6ODk4MzIuNzk4Ojo4OTgzMi44MDk6Ojg5ODMyLjgxNzo6ODk4MzIuODI6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNTo6ODk4MzIuODI1Ojo4OTgzMi44MjU6Ojg5ODMyLjgyNjo6ODk4MzIuODMxOjo4OTgzMi44MzQ6Ojg5ODMyLjgzODo6ODk4MzIuODQ6Ojg5ODMyLjg0Ojo4OTgzMi44NDo6ODk4MzIuODQ6Ojg5ODMyLjg0Mzo6ODk4MzIuODQ4Ojo4OTgzMi44NTE6Ojg5ODMyLjg1NDo6ODk4MzIuODU4Ojo4OTgzMi44NjE6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQiLz4NCisJCQkJCTx2YWwgbz0iMTUzNDIwIiB2PSI4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44NjQ6Ojg5ODMyLjg2NDo6ODk4MzIuODY0Ojo4OTgzMi44Njg6Ojg5ODMyLjg3Nzo6ODk4MzIuODg3Ojo4OTgzMi44OTk6Ojg5ODMyLjkwMzo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MDQ6Ojg5ODMyLjkwNDo6ODk4MzIuOTA0Ojo4OTgzMi45MTY6Ojg5ODMyLjk3Ojo4OTgzMy4wOTo6ODk4MzMuMjA0Ojo4OTgzMy4zMDk6Ojg5ODMzLjM5Nzo6ODk4MzMuNDkyOjo4OTgzMy41OTo6ODk4MzMuNjgzOjo4OTgzMy43ODg6Ojk3OTQ0ODI6Ojk4MDEyMDE6Ojk4MDgyMTc6Ojk4MTUzNzI6Ojk4MjE5MzA6Ojk4MjgwMjI6Ojk4MzM4NjE6Ojk4Mzk0OTMiLz4NCisJCQkJCTx2YWwgbz0iMTdkNzIwIiB2PSI5ODQ0OTk2Ojo5ODUwNDQxOjo5ODU1NjgxOjo5ODYwNzk1Ojo5ODY2MzExOjo5ODcyODczOjo5ODgwMDI3Ojo5ODkxMTkzOjo5OTA0Mzk4Ojo5OTE3NDU0Ojo5OTI5OTc0Ojo5OTQxNzk2Ojo5OTUzNjk4Ojo5OTY1Njk4Ojo5OTc3Nzk0Ojo6Ojk5OTM4MzQ6OjEwMDAxNzAxOjoxMDAwOTYyMTo6MTAwMTY4MDM6OjEwMDIzMTI0OjoxMDAyOTEyMzo6MTAwMzQxNTE6OjEwMDM4NTEzOjoxMDA0Mjc4OTo6MTAwNDY5OTY6OjEwMDUxMTc4OjoxMDA1NTQ0Mzo6MTAwNjAzMzY6OjEwMDY1NjY1OjoxMDA3MTc4MDo6MTAwNzgyOTk6OjEwMDg0NDQ2Ojo6OjEwMDk3MTIzOjoxMDEwMzI5Mzo6MTAxMDk2NDE6OjEwMTE2MDIzOjoxMDEyMjU2Mjo6MTAxMjY3ODU6OjEwMTI5NDE0OjoxMDEzMjI4ODo6MTAxMzU2NDU6OjEwMTM4NDg5OjoxMDE0MDQxNjo6MTAxNDIyMzg6OjEwMTQzMzY4OjoxMDE0NDQ4Nzo6MTAxNDU0OTQ6OjEwMTQ2NTMyIi8+DQorCQkJCQk8dmFsIG89IjFhOTY0MCIgdj0iMTAxNDczNDE6OjEwMTQ3NzkzOjoxMDE0ODQ4Njo6MTAxNTAwMzk6OjEwMTUyMDUxOjoxMDE1NDY0Mzo6MTAxNTc0MDY6OjEwMTYwMTcwOjoxMDE2Mjk1NTo6MTAxNjUwNTgiLz4NCisJCQkJCTx2YWwgbz0iMWM3NDYwIiB2PSIxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjA4Nzg0OjoxMDIwODc4NDo6MTAyMDg3ODQ6OjEwMjEwODgyOjoxMDIxNDQ0NDo6MTAyMTgwOTM6OjEwMjIxNjIzOjoxMDIyNTIyMzo6MTAyMjg4NTg6OjEwMjMzNjQxOjoxMDIzOTkwNjo6MTAyNDY1OTg6OjEwMjUzNDIwOjoxMDI2MDI5NTo6MTAyNjcwMTA6OjEwMjczMzA1OjoxMDI3OTI0NTo6MTAyODQ2ODI6OjEwMjg5NTk0OjoxMDI5NDQ2MTo6MTAyOTcxNTA6OjEwMjk5MDYwOjoxMDMwMDg3OTo6MTAzMDI3ODE6OjEwMzA1MDQxOjoxMDMwNzYwMDo6MTAzMTAyNTY6OjEwMzEzMDE3OjoxMDMxNTczMjo6MTAzMTgzNTc6OjEwMzIwOTUyIi8+DQorCQkJCQk8dmFsIG89IjFmMTc2MCIgdj0iMTAzMjM0NTM6OjEwMzI1ODgxOjoxMDMyODMwMTo6MTAzMzA5MDY6OjEwMzMzOTkxOjoxMDMzNzM3ODo6MTAzNDA5MTM6OjEwMzQ0MjcwOjoxMDM0NzQ3NDo6MTAzNTA4MzE6OjEwMzUzODgwOjoxMDM1NjQ0Mzo6MTAzNTg4OTA6OjEwMzYxMjU3OjoxMDM2MzQyNzo6MTAzNjU1NDI6OjEwMzY3ODUwOjoxMDM3MDYwMjo6MTAzNzM3MDA6OjEwMzc3NTQ4OjoxMDM4MjMzNTo6MTAzODc5NTk6OjEwMzkzNjc5OjoxMDM5OTAyODo6MTA0MDQ0Njk6OjEwNDEwMzI4OjoxMDQxNjU1NDo6MTA0MjI5NjQ6OjEwNDI5NDY0OjoxMDQzNTUxMDo6MTA0NDA4ODc6OjEwNDQ2MDcwOjoxMDQ1MDU0NDo6MTA0NTQ4MzM6OjEwNDU4NzMyOjoxMDQ2MjQxOTo6MTA0NjU3MTQ6OjEwNDY4ODQyOjoxMDQ3MTg4Mjo6MTA0NzQ3NzI6OjEwNDc3OTAxOjoxMDQ4MTg5Nzo6MTA0ODY5OTc6OjEwNDkyOTczOjoxMDQ5OTIwNzo6MTA1MDUzMjQ6OjEwNTExNTU1OjoxMDUxNzYwMiIvPg0KKwkJCQkJPHZhbCBvPSIyMWJhNjAiIHY9IjEwNTIzNTQ0OjoxMDUyOTM2Mjo6MTA1MzU3NjA6OjEwNTQxODk0OjoxMDU0Nzc2Mjo6MTA1NTM0MDc6OjEwNTU4ODkwOjoxMDU2NDExODo6MTA1Njg0MjY6OjEwNTcyMjk0OjoxMDU3NTc3MTo6MTA1Nzc3Njc6OjEwNTc5NjQ3OjoxMDU4MTcyMDo6MTA1ODM3MTY6OjEwNTg1NDQ0OjoxMDU4NzM1NDo6MTA1OTA5Njg6OjEwNTk1MTI2OjoxMDU5OTczMTo6MTA2MDQ0NjA6OjEwNjA5MDAwOjoxMDYxMzc1Mzo6MTA2MTg1MTY6OjEwNjIzMjQxOjoxMDYyODQyODo6MTA2MzM5OTk6OjEwNjM5NTM5OjoxMDY0NTEyNTo6MTA2NTA0MDU6OjEwNjU1NjQzOjoxMDY2MDQ3MTo6MTA2NjQ3Mzg6OjEwNjY4ODYyOjoxMDY3MjY3NTo6MTA2NzU5NDc6OjEwNjc5MTk1OjoxMDY4MjMyMjo6MTA2ODUzNDA6OjEwNjg4MjA0OjoxMDY5MTQ2MDo6MTA2OTU0NDM6OjEwNzAwMDM3OjoxMDcwNTcwMjo6MTA3MTE4NzM6OjEwNzE4MzA5OjoxMDcyNDkwNzo6MTA3MzEzNjQiLz4NCisJCQkJCTx2YWwgbz0iMjQ2YjcwIiB2PSIxMDc0NDI5ODo6MTA3NTA1NzM6OjEwNzU2MzM2OjoxMDc2MTU5NDo6MTA3NjcxODQ6OjEwNzcyOTAxOjoxMDc3ODY3OTo6MTA3ODQxOTM6OjEwNzg5MTczOjoxMDc5MzM5MTo6MTA3OTY4OTU6OjEwODAwNTM4OjoxMDgwNDE1MTo6MTA4MDc3MzI6OjEwODExMjE0OjoxMDgxNDk1Mjo6MTA4MTkyMzY6OjEwODIzNzcyOjoxMDgyOTIxMjo6MTA4MzQ5MjA6OjEwODQxNDE4OjoxMDg1MDcwMTo6MTA4NTgyODk6OjEwODY0MzE1OjoxMDg3MDU4Njo6MTA4NzY1MjY6OjEwODgyNDk2OjoxMDg4ODI5MTo6MTA4OTM3MTM6OjEwODk5MDkwOjoxMDkwNDQ0NDo6MTA5MDkxMTk6OjEwOTEzNzAwOjoxMDkxNzY5OTo6MTA5MjEzMTA6OjEwOTI0ODI2OjoxMDkyODQ3ODo6MTA5MzIxMjE6OjEwOTM1NzE1OjoxMDkzOTQxMjo6MTA5NDMyNjU6OjEwOTQ3MTU0OjoxMDk1MTI5OTo6MTA5NTU2NDc6OjEwOTU5ODAyOjoxMDk2Mzc1NTo6MTA5Njc1MjY6OjEwOTcxMjAxIi8+DQorCQkJCQk8dmFsIG89IjI3MGU3MCIgdj0iMTA5NzQ4MDE6OjEwOTc5MDg2OjoxMDk4MzkyMjo6MTA5ODkwNTM6OjEwOTk0MDgzOjoxMDk5OTA2OTo6MTEwMDM1Mjk6OjExMDA3Mzc5OjoxMTAxMDczOCIvPg0KKwkJCQk8L3Bhcj4NCisJCQkJPHBhciBtZW1pbmQ9IjMzMDAxIiBoPSIzZGMxYTdlMCI+DQorCQkJCQk8dmFsIG89IjAiIHY9IjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzYiLz4NCisJCQkJCTx2YWwgbz0iMmEzMDAiIHY9IjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6Ojo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3NiIvPg0KKwkJCQkJPHZhbCBvPSI1NTQxMCIgdj0iMzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3NiIvPg0KKwkJCQkJPHZhbCBvPSI3ZjcxMCIgdj0iMzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU3Njo6Mzg2MTI1NzY6OjM4NjEyNTc2OjozODYxMjU4Nzo6Mzg2MTMwOTc6OjM4NjEzNTg1OjozODYxNDQ5MDo6Mzg2MTQ5MDY6OjM4NjE1MzgwOjozODYxNjA1MyIvPg0KKwkJCQkJPHZhbCBvPSJhOWExMCIgdj0iMzg2MTcxMjM6OjM4NjE3MjU4OjozODYxNzI5Njo6Mzg2MTc0MTQ6OjM4NjE3OTI2OjozODYxODc0MTo6Mzg2MTg5NDI6OjM4NjE5MDIxOjozODYxOTA2Njo6OjozODYxOTE0Nzo6Mzg2MTkyMTk6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5MjgxOjozODYxOTI4MTo6Mzg2MTkyODE6OjM4NjE5Nzg2OjozODYyMDI1Nzo6Mzg2MjA3MDI6OjM4NjIxMDU4OjozODYyMTU4Nzo6Mzg2MjIwNzg6OjM4NjIyNDk0OjozODYyMzI4NDo6Mzg2MjM1MzY6OjM4NjIzNjU1OjozODYyMzc3Njo6Mzg2MjM4MzE6OjM4NjI0MDM1OjozODYyNDIzMjo6Mzg2MjQzNjk6OjM4NjI0NzM1OjozODYyNDczNTo6Mzg2MjQ3MzU6OjM4NjI0NzM1OjozODYyNDczNzo6Mzg2MjQ3NTU6OjM4NjI0NzkxOjozODYyNDg2Mzo6Mzg2MjQ4Nzk6OjM4NjI1NDYwIi8+DQorCQkJCQk8dmFsIG89ImQ0YjIwIiB2PSIzODYyNjExMDo6Mzg2MjY4MDc6OjM4NjI3NjM5OjozODYyODc4MTo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyIi8+DQorCQkJCQk8dmFsIG89ImZlZTIwIiB2PSIzODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjM4NjI5NzMyOjozODYyOTczMjo6Mzg2Mjk3MzI6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTg6OjIyOTczNC4zOTgiLz4NCisJCQkJCTx2YWwgbz0iMTI5MTIwIiB2PSIyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk4OjoyMjk3MzQuMzk5OjoyMjk3MzQuNDE3OjoyMjk3MzQuNDMxOjoyMjk3MzQuNDQ4OjoyMjk3MzQuNDY1OjoyMjk3MzQuNDg1OjoyMjk3MzQuNTA1OjoyMjk3MzQuNTE0OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE3OjoyMjk3MzQuNTE4OjoyMjk3MzQuNTIxOjoyMjk3MzQuNTIzOjoyMjk3MzQuNTI4OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM2OjoyMjk3MzQuNTM3OjoyMjk3MzQuNTU0Ii8+DQorCQkJCTwvcGFyPg0KKwkJCTwvZGV2aWNlPg0KKwkJPC9zZWxlY3Q+DQorCTwvZGF0YT4NCis8L2VsZWN0cm94bWw+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDUgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0NQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzA1MTA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDUKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGRvYyBbPCFBVFRMSVNUIG5vcm1JZCBhdHRyIE5NVE9LRU5TICNJTVBMSUVEPl0+Cis8ZG9jPgorICA8IS0tIG5vIG5vcm1hbGl6YXRpb24gLS0+CisgIDxub3JtIGF0dHI9JyAgICcvPgorICA8bm9ybSBhdHRyPScKKyAgZm9vIGJhciAgICcvPgorICA8bm9ybSBhdHRyPScKKworZm9vYmFyJy8+CisgIDxub3JtIGF0dHI9JyBmb28gYmFyCisnLz4KKyAgPG5vcm0gYXR0cj0nZm9vYmFyCisKKycvPgorICA8bm9ybSBhdHRyPScgJmFtcDsgJy8+CisgIDxub3JtIGF0dHI9JworICBmb28mYW1wO2JhciAgICcvPgorICA8bm9ybSBhdHRyPScKKworZm9vYmFyJmFtcDsnLz4KKyAgPG5vcm0gYXR0cj0nJmFtcDtmb28gYmFyCisnLz4KKyAgPG5vcm0gYXR0cj0nZm9vYmFyCisKKyZhbXA7Jy8+CisgIDxub3JtIGF0dHI9JyAmbHQ7ICcvPgorICA8bm9ybSBhdHRyPScKKyAgZm9vJmx0O2JhciAgICcvPgorICA8bm9ybSBhdHRyPScKKworZm9vYmFyJmx0OycvPgorICA8bm9ybSBhdHRyPScmbHQ7Zm9vIGJhcgorJy8+CisgIDxub3JtIGF0dHI9J2Zvb2JhcgorCismbHQ7Jy8+CisgIDxub3JtIGF0dHI9JyAmI3gyMDsmIzEzOyYjeGE7JiM5OyAnLz4KKyAgPCEtLSBub3JtYWxpemF0aW9uIC0tPgorICA8bm9ybUlkIGF0dHI9JyAgICcvPgorICA8bm9ybUlkIGF0dHI9JworICBmb28gYmFyICAgJy8+CisgIDxub3JtSWQgYXR0cj0nCisKK2Zvb2JhcicvPgorICA8bm9ybUlkIGF0dHI9JyBmb28gYmFyCisnLz4KKyAgPG5vcm1JZCBhdHRyPSdmb29iYXIKKworJy8+CisgIDxub3JtSWQgYXR0cj0nICZhbXA7ICcvPgorICA8bm9ybUlkIGF0dHI9JworICBmb28mYW1wO2JhciAgICcvPgorICA8bm9ybUlkIGF0dHI9JworCitmb29iYXImYW1wOycvPgorICA8bm9ybUlkIGF0dHI9JyZhbXA7Zm9vIGJhcgorJy8+CisgIDxub3JtSWQgYXR0cj0nZm9vYmFyCisKKyZhbXA7Jy8+CisgIDxub3JtSWQgYXR0cj0nICZsdDsgJy8+CisgIDxub3JtSWQgYXR0cj0nCisgIGZvbyZsdDtiYXIgICAnLz4KKyAgPG5vcm1JZCBhdHRyPScKKworZm9vYmFyJmx0OycvPgorICA8bm9ybUlkIGF0dHI9JyZsdDtmb28gYmFyCisnLz4KKyAgPG5vcm1JZCBhdHRyPSdmb29iYXIKKworJmx0OycvPgorICA8bm9ybUlkIGF0dHI9JyAmIzEzOyYjeGE7JiM5OyAnLz4gPCEtLSBQQk0gc2VyaWFsaXppbmcgYmFjayAtLT4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDYgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0NgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTUwOGU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDYKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPEludm9pY2UgeG1sbnM6Y2N0cz0idXJuOm9hc2lzOm5hbWVzOnRjOnVibDpDb3JlQ29tcG9uZW50UGFyYW1ldGVyczoxLjA6MC43MCIgeG1sbnM6Y2N0PSJ1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkNvcmVDb21wb25lbnRUeXBlczoxLjA6MC43MCIgeG1sbnM6Y2F0PSJ1cm46b2FzaXM6bmFtZXM6dGM6dWJsOkNvbW1vbkFnZ3JlZ2F0ZVR5cGVzOjEuMDowLjcwIiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOnVibDpJbnZvaWNlOjEuMDowLjcwIj4KKyAgIDxjYXQ6UmVmZXJlbmNlZE9yZGVyPgorICAgICAgPGNhdDpTZWxsZXJzT3JkZXJJRCBzY2hlbWVJRD0icHZhbHVlLT5SZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuc2NoZW1lSUQiIHNjaGVtZUFnZW5jeUlEPSJwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVBZ2VuY3lJRCIgc2NoZW1lVmVyc2lvbklEPSJwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVWZXJzaW9uSUQiIHNjaGVtZUFnZW5jeVNjaGVtZUlEPSJwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVBZ2VuY3lTY2hlbWVJRCIgc2NoZW1lQWdlbmN5U2NoZW1lQWdlbmN5SUQ9InB2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZUFnZW5jeVNjaGVtZUFnZW5jeUlEIiBzY2hlbWVEYXRhVVJJPSJwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5zY2hlbWVEYXRhVVJJIiBzY2hlbWVVUkk9InB2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELnNjaGVtZVVSSSIgVUlEPSJwdmFsdWUtPlJlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5VSUQiIFVJRFJlZj0icHZhbHVlLT5SZWZlcmVuY2VkT3JkZXIuU2VsbGVyc09yZGVySUQuVUlEUmVmIiBVSURSZWZzPSJwdmFsdWUtJmd0O1JlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRC5VSURSZWZzMCIgbGFuZ3VhZ2U9InB2YWx1ZS0+UmVmZXJlbmNlZE9yZGVyLlNlbGxlcnNPcmRlcklELmxhbmd1YWdlIj5wdmFsdWUtJmd0O1JlZmVyZW5jZWRPcmRlci5TZWxsZXJzT3JkZXJJRDwvY2F0OlNlbGxlcnNPcmRlcklEPgorICAgPC9jYXQ6UmVmZXJlbmNlZE9yZGVyPgorPC9JbnZvaWNlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9hdHQ3IGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dDcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2QzMWMzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHQ3CkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSB4IFsKKzwhRUxFTUVOVCB4ICh0ZXN0Kik+Cis8IUVMRU1FTlQgdGVzdCBFTVBUWT4KKzwhQVRUTElTVCB0ZXN0IGF0dCBDREFUQSAiYXR0dmFsdWUiPgorPCFFTlRJVFkgdGVzdC5lbnQgIjx0ZXN0Lz4iPgorXT4KKzx4PgorICAgIDx0ZXN0Lz4KKyAgICAmdGVzdC5lbnQ7Cis8L3g+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0OCBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHQ4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYjZmNTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0OApAQCAtMCwwICsxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+PGlubzpyZXNwb25zZSB4bWxuczppbm89Imh0dHA6Ly9uYW1lc3BhY2VzLnNvZnR3YXJlYWcuY29tL3RhbWluby9yZXNwb25zZTIiIHhtbG5zOnhxbD0iaHR0cDovL21ldGFsYWIudW5jLmVkdS94cWwvIiBpbm86c2Vzc2lvbmlkPSI1NTYiIGlubzpzZXNzaW9ua2V5PSIxNTkwNDY5Njc3Ij48eHFsOnF1ZXJ5Pi9ic2s6RG9jUGFydFtAZG9jSWQ9JmFwb3M7MjAwNDAzMDgxNTI2MDEzNDUyMzYmYXBvczsgYW5kIEBkb2NQYXJ0Tm89MV08L3hxbDpxdWVyeT48aW5vOm1lc3NhZ2UgaW5vOnJldHVybnZhbHVlPSIwIj48aW5vOm1lc3NhZ2VsaW5lPlhRTCBSZXF1ZXN0IHByb2Nlc3Npbmc8L2lubzptZXNzYWdlbGluZT48L2lubzptZXNzYWdlPjx4cWw6cmVzdWx0Pjxic2s6RG9jUGFydCBkb2NJZD0iMjAwNDAzMDgxNTI2MDEzNDUyMzYiIGRvY1BhcnRObz0iMSIgaW5vOmlkPSIxNTI5MCIgeG1sbnM6YnNrPSJodHRwOi8vd3d3LmhlaXRlYy5uZXQvc2FyYTQvdGFtaW5vL2Jhc2tldCI+PGJzazpGaWxlIG5hbWU9IjQ4OThXUFpFTzJNNjUiIHNpemU9Ijc1MTk1Ij4gPC9ic2s6RmlsZT48L2JzazpEb2NQYXJ0PjwveHFsOnJlc3VsdD48aW5vOm1lc3NhZ2UgaW5vOnJldHVybnZhbHVlPSIwIj48aW5vOm1lc3NhZ2VsaW5lPlhRTCBSZXF1ZXN0IHByb2Nlc3NlZDwvaW5vOm1lc3NhZ2VsaW5lPjwvaW5vOm1lc3NhZ2U+PC9pbm86cmVzcG9uc2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0OSBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHQ5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNmI1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXR0OQpAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFBVFRMSVNUIGRvYyBhMSBOTVRPS0VOUyAiIDEgICAyICAgICAgICI+Cis8IUVMRU1FTlQgZG9jICgjUENEQVRBKT4KK10+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9hdHRyaWIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F0dHJpYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJlMzNmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9hdHRyaWIueG1sCkBAIC0wLDAgKzEgQEAKKzxpdGVtIHRpdGxlPSJJY3JvbnRpYy5jb20gLSBXYXJuaW5nOiBCcmVha2RhbmNpbmcgbWlkZ2V0IHdpdGggdG91cmV0dGUmYXBvcztzIHN5bmRyb21lIG9uLWJvYXJkJiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7IiB1cmw9Imh0dHA6Ly93d3cuaWNyb250aWMuY29tLyIgZmlyc3RfdGltZT0iOTg1MDM0MzM5IiBsYXN0X3RpbWU9Ijk4NTAzNDMzOSIgdmlzaXRzPSIxIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXV0b21hdGEvYSBiL2xpYnhtbDItMi43LjcvdGVzdC9hdXRvbWF0YS9hCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxZjNlOTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXV0b21hdGEvYQpAQCAtMCwwICsxLDE0IEBACisjCisjIHRlc3RzIGp1c3QgImEiCisjCit0IDAgMSBhCitmIDEKKy0tLS0tLS0KK2EKKz0+CithCithCis9PgorPT4KK2IKKz0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXV0b21hdGEvYWJhIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F1dG9tYXRhL2FiYQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTlhODczCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F1dG9tYXRhL2FiYQpAQCAtMCwwICsxLDI2IEBACisjCisjIFRlc3RzIGFbYWJdKgorIwordCAwIDEgYQordCAxIDEgYQordCAxIDEgYgorZiAxCistLS0tLS0tCithCis9PgorYQorYQorPT4KK2EKK2IKK2EKK2IKK2EKK2IKKz0+CitiCis9PgorYQorYworPT4KKz0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXV0b21hdGEvYWJhYSBiL2xpYnhtbDItMi43LjcvdGVzdC9hdXRvbWF0YS9hYmFhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NjJiYTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXV0b21hdGEvYWJhYQpAQCAtMCwwICsxLDQzIEBACisjCisjIFRlc3RzOiBhW2FiXSphezIsM30KKyMKK3QgMCAxIGEKK3QgMSAxIGEKK3QgMSAxIGIKK2MgMSAyIDIgMyBhCitmIDIKKy0tLS0tLS0KK2EKK2EKK2EKKz0+CisjIFBhc3MKK2EKK2IKK2EKK2EKKz0+CisjIFBhc3MKK2EKK2EKK2EKK2EKK2EKK2EKK2EKK2EKK2EKKz0+CisjIFBhc3MKK2EKK2IKK2EKKz0+CisjIEZhaWwKK2EKK2IKK2EKK2EKK2IKKz0+CisjIEZhaWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9hdXRvbWF0YS9hYmJhIGIvbGlieG1sMi0yLjcuNy90ZXN0L2F1dG9tYXRhL2FiYmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZjMDhmMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9hdXRvbWF0YS9hYmJhCkBAIC0wLDAgKzEsMzAgQEAKKyMKKyMgVGVzdHMgYWIqYSB3aXRoIGFuIGVsaW1pbmF0ZWQgZXBzaWxvbiB0cmFuc2l0aW9uCisjCit0IDAgMSBhCit0IDEgMiBiCitlIDEgMgordCAyIDIgYgordCAyIDMgYQorZiAzCistLS0tLS0tCithCithCis9PgorIyBQYXNzCithCitiCitiCithCis9PgorIyBQYXNzCithCitiCis9PgorIyBGYWlsCithCitiCithCitiCis9PgorIyBGYWlsCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYXV0b21hdGEvcG8gYi9saWJ4bWwyLTIuNy43L3Rlc3QvYXV0b21hdGEvcG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkyYjhjOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9hdXRvbWF0YS9wbwpAQCAtMCwwICsxLDE5IEBACisjCisjIHB1cmNoYXNlT3JkZXIKKyMKK3QgMCAxIHNoaXBUbwordCAxIDIgYmlsbFRvCit0IDIgMyBjb21tZW50Cit0IDMgNCBpdGVtcworZSAyIDMKK2YgNAorLS0tLS0tLQorc2hpcFRvCitiaWxsVG8KK2NvbW1lbnQKK2l0ZW1zCis9Pgorc2hpcFRvCitiaWxsVG8KK2l0ZW1zCis9PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2JhZGNvbW1lbnQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2JhZGNvbW1lbnQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NzQxNGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYmFkY29tbWVudC54bWwKQEAgLTAsMCArMSwxOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKworPGZvbz4KKzwhLS0gZGVmPSdOVC1DaGFyJy0tPjwhLS0+Q2hhcjwvbnQ+KiAnXV0mZ3Q7JyA8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKSkKKyddXSZndDsnPC9yaHM+Cis8Y29tPkNEQVRBIHNlY3Rpb25zPC9jb20+Cis8cmhzPnwgJyZsdDshRE9DVFlQRScgCisoPG50IGRlZj0iTlQtQ2hhciI+Q2hhcjwvbnQ+IC0gKCdbJyB8ICddJykpKworKCdbJyAKKzxudCBkZWY9Ik5ULXNpbXBsZURURCI+c2ltcGxlRFREPC9udD4qCisnXScpPyAnJmd0Oyc8L3Jocz4KKzxjb20+ZG9jIHR5cGUgZGVjbGFyYXRpb248L2NvbT4KKzxwcm9kIGlkPSJOVC1zaW1wbGVEVEQiPjxsaHM+c2ltcGxlRFREPC9saHM+Cis8cmhzPicmbHQ7ISZjb21vOycgCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAtIAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogJyZjb21jOycgPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KikpCisnJmNvbWM7Jmd0Oyc8L3Jocz4tLT4KKzwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2JpZ2VudG5hbWUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2JpZ2VudG5hbWUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNmUzMzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYmlnZW50bmFtZS54bWwKQEAgLTAsMCArMSw1IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIHZlcnlfYmlnX2VudGl0eV9uYW1lMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ZlcnlfYmlnX2VudF9uYW1lICciWWVzIicgPgorPCFFTlRJVFkgV2hhdEhlU2FpZCAiSGUgc2FpZCAmdmVyeV9iaWdfZW50aXR5X25hbWUwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfdmVyeV9iaWdfZW50X25hbWU7IiA+CitdPgorPGRvYz4mV2hhdEhlU2FpZDs8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9iaWduYW1lLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9iaWduYW1lLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzMwM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2JpZ25hbWUueG1sCkBAIC0wLDAgKzEgQEAKKzx0aGlzX2lzX2FfdmVyeV9sYXJnZV9uYW1lXzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5X2VuZF9vZl90aGVfdmVyeV9sYXJnZV9uYW1lLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9iaWduYW1lMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYmlnbmFtZTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2N2NkYTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYmlnbmFtZTIueG1sCkBAIC0wLDAgKzEgQEAKKzx0aGlzX2lzX2FfdmVyeV9sYXJnZV9xdWFsaWZpZWRfbmFtZV8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OV9lbmRfb2ZfcHJlZml4OnN0YXJ0X25jX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3RoZV92ZXJ5X2xhcmdlX25hbWUgeG1sbnM6dGhpc19pc19hX3ZlcnlfbGFyZ2VfcXVhbGlmaWVkX25hbWVfMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlfZW5kX29mX3ByZWZpeD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS90ZXN0bnMvIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9kb2MuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZG9jLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNDYwMjM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZG9jLmR0ZApAQCAtMCwwICsxIEBACis8IS0tIEVtcHR5IERURCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZDQ1MGM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0xLnhtbApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKworPD94bWwtc3R5bGVzaGVldCAgIGhyZWY9ImRvYy54c2wiCisgICB0eXBlPSJ0ZXh0L3hzbCIgICA/PgorCis8IURPQ1RZUEUgZG9jIFNZU1RFTSAiZG9jLmR0ZCI+CisKKzxkb2M+SGVsbG8sIHdvcmxkITwhLS0gQ29tbWVudCAxIC0tPjwvZG9jPgorCis8P3BpLXdpdGhvdXQtZGF0YSAgICAgPz4KKworPCEtLSBDb21tZW50IDIgLS0+CisKKzwhLS0gQ29tbWVudCAzIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzRlZWVhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMi54bWwKQEAgLTAsMCArMSwxMSBAQAorPGRvYz4KKyAgIDxjbGVhbj4gICA8L2NsZWFuPgorICAgPGRpcnR5PiAgIEEgICBCICAgPC9kaXJ0eT4KKyAgIDxtaXhlZD4KKyAgICAgIEEKKyAgICAgIDxjbGVhbj4gICA8L2NsZWFuPgorICAgICAgQgorICAgICAgPGRpcnR5PiAgIEEgICBCICAgPC9kaXJ0eT4KKyAgICAgIEMKKyAgIDwvbWl4ZWQ+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3YTE5NTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTMueG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBkb2MgWzwhQVRUTElTVCBlOSBhdHRyIENEQVRBICJkZWZhdWx0Ij5dPgorPGRvYz4KKyAgIDxlMSAgIC8+CisgICA8ZTIgICA+PC9lMj4KKyAgIDxlMyAgICBuYW1lID0gImVsZW0zIiAgIGlkPSJlbGVtMyIgICAgLz4KKyAgIDxlNCAgICBuYW1lPSJlbGVtNCIgICBpZD0iZWxlbTQiICAgID48L2U0PgorICAgPGU1IGE6YXR0cj0ib3V0IiBiOmF0dHI9InNvcnRlZCIgYXR0cjI9ImFsbCIgYXR0cj0iSSdtIgorICAgICAgIHhtbG5zOmI9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIAorICAgICAgIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIgorICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnV2aWMuY2EiLz4KKyAgIDxlNiB4bWxucz0iIiB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgICAgPGU3IHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIj4KKyAgICAgICAgICAgPGU4IHhtbG5zPSIiIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgICAgICAgICAgICAgIDxlOSB4bWxucz0iIiB4bWxuczphPSJodHRwOi8vd3d3LmlldGYub3JnIi8+CisgICAgICAgICAgIDwvZTg+CisgICAgICAgPC9lNz4KKyAgIDwvZTY+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNmYmExMzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQueG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGRvYyBbPCFBVFRMSVNUIG5vcm1JZCBpZCBJRCAjSU1QTElFRD5dPgorPGRvYz4KKyAgIDx0ZXh0PkZpcnN0IGxpbmUmI3gwZDsmIzEwO1NlY29uZCBsaW5lPC90ZXh0PgorICAgPHZhbHVlPiYjeDMyOzwvdmFsdWU+CisgICA8Y29tcHV0ZT48IVtDREFUQVt2YWx1ZT4iMCIgJiYgdmFsdWU8IjEwIiA/InZhbGlkIjoiZXJyb3IiXV0+PC9jb21wdXRlPgorICAgPGNvbXB1dGUgZXhwcj0ndmFsdWU+IjAiICZhbXA7JmFtcDsgdmFsdWUmbHQ7IjEwIiA/InZhbGlkIjoiZXJyb3IiJz52YWxpZDwvY29tcHV0ZT4KKyAgIDxub3JtIGF0dHI9JyAmYXBvczsgICAmI3gyMDsmIzEzOyYjeGE7JiM5OyAgICZhcG9zOyAnLz4KKyAgIDxub3JtSWQgaWQ9JyAmYXBvczsgICAmI3gyMDsmIzEzOyYjeGE7JiM5OyAgICZhcG9zOyAnLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS01LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTJjNTMyMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNS54bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGRvYyBbCis8IUFUVExJU1QgZG9jIGF0dHJFeHRFbnQgRU5USVRZICNJTVBMSUVEPgorPCFFTlRJVFkgZW50MSAiSGVsbG8iPgorPCFFTlRJVFkgZW50MiBTWVNURU0gIndvcmxkLnR4dCI+Cis8IUVOVElUWSBlbnRFeHQgU1lTVEVNICJlYXJ0aC5naWYiIE5EQVRBIGdpZj4KKzwhTk9UQVRJT04gZ2lmIFNZU1RFTSAidmlld2dpZi5leGUiPgorXT4KKzxkb2MgYXR0ckV4dEVudD0iZW50RXh0Ij4KKyAgICZlbnQxOywgJmVudDI7IQorPC9kb2M+CisKKzwhLS0gTGV0IHdvcmxkLnR4dCBjb250YWluICJ3b3JsZCIgKGV4Y2x1ZGluZyB0aGUgcXVvdGVzKSAtLT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxZTIwNzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTYueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGRvYz4mIzE2OTs8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQxMTcxY2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFBVFRMSVNUIGUyIHhtbDpzcGFjZSAoZGVmYXVsdHxwcmVzZXJ2ZSkgJ3ByZXNlcnZlJz4KKzwhQVRUTElTVCBlMyBpZCBJRCAjSU1QTElFRD4KK10+Cis8ZG9jIHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgIDxlMT4KKyAgICAgIDxlMiB4bWxucz0iIj4KKyAgICAgICAgIDxlMyBpZD0iRTMiLz4KKyAgICAgIDwvZTI+CisgICA8L2UxPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODRkZGIwOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNy54cGF0aApAQCAtMCwwICsxLDEwIEBACis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorICAgICgvLy58Ly9AKnwvL25hbWVzcGFjZTo6KikKKyAgICBbCisJc2VsZjo6aWV0ZjplMQorCSAgICBvcgorCShwYXJlbnQ6OmlldGY6ZTEgYW5kIG5vdChzZWxmOjp0ZXh0KCkgb3Igc2VsZjo6ZTIpKQorCSAgICBvcgorCWNvdW50KGlkKCJFMyIpfGFuY2VzdG9yLW9yLXNlbGY6Om5vZGUoKSkgPSBjb3VudChhbmNlc3Rvci1vci1zZWxmOjpub2RlKCkpCisgICAgXQorPC9YUGF0aD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTgueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS04LnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDdmNmM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS04LnhtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgZG9jIFsKKzwhQVRUTElTVCBlMiB4bWw6c3BhY2UgKGRlZmF1bHR8cHJlc2VydmUpICdwcmVzZXJ2ZSc+Cis8IUFUVExJU1QgZTMgaWQgSUQgI0lNUExJRUQ+CitdPgorPGRvYyB4bWxucz0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sOmJhc2U9InNvbWV0aGluZy9lbHNlIj4KKyAgIDxlMT4KKyAgICAgIDxlMiB4bWxucz0iIiB4bWw6aWQ9ImFiYyIgeG1sOmJhc2U9ImJhci8iPgorICAgICAgICAgPGUzIGlkPSJFMyIgeG1sOmJhc2U9ImZvbyIvPgorICAgICAgPC9lMj4KKyAgIDwvZTE+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtOC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtOC54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NGRkYjA4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvZXhhbXBsZS04LnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisgICAgKC8vLnwvL0AqfC8vbmFtZXNwYWNlOjoqKQorICAgIFsKKwlzZWxmOjppZXRmOmUxCisJICAgIG9yCisJKHBhcmVudDo6aWV0ZjplMSBhbmQgbm90KHNlbGY6OnRleHQoKSBvciBzZWxmOjplMikpCisJICAgIG9yCisJY291bnQoaWQoIkUzIil8YW5jZXN0b3Itb3Itc2VsZjo6bm9kZSgpKSA9IGNvdW50KGFuY2VzdG9yLW9yLXNlbGY6Om5vZGUoKSkKKyAgICBdCis8L1hQYXRoPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3dvcmxkLnR4dCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3dvcmxkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNGZlYTA2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMvd29ybGQudHh0CkBAIC0wLDAgKzEgQEAKK3dvcmxkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1jMTRuMTFzcGVjLTEwMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMtMTAyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGI3Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1jMTRuMTFzcGVjLTEwMi54bWwKQEAgLTAsMCArMSwxNiBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1jMTRuMTFzcGVjLTEwMgorCitDaGVjayB0aGF0IGNvcnJlY3QgeG1sOmJhc2UgZml4dXAgaXMgcGVyZm9ybWVkLgorLS0+Cis8IURPQ1RZUEUgZG9jIFsKKyAgPCFBVFRMSVNUIGUyIHhtbDpzcGFjZSAoZGVmYXVsdHxwcmVzZXJ2ZSkgJ3ByZXNlcnZlJz4KKyAgPCFBVFRMSVNUIGUzIGlkIElEICNJTVBMSUVEPgorXT4KKzxkb2MgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL3NvbWV0aGluZy9lbHNlIj4KKyAgICAgPGUxPgorICAgICAgICA8ZTIgeG1sbnM9IiIgeG1sOmlkPSJhYmMiIHhtbDpiYXNlPSIuLi9iYXIvIj4KKyAgICAgICAgICAgPGUzIGlkPSJFMyIgeG1sOmJhc2U9ImZvbyIvPgorICAgICAgICA8L2UyPgorICAgICA8L2UxPgorPC9kb2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1jMTRuMTFzcGVjLTEwMi54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYy0xMDIueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkxOWFjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYy0xMDIueHBhdGgKQEAgLTAsMCArMSw5IEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNjMTRuMTF4bWxiYXNlLWMxNG4xMXNwZWMtMTAyCisKK0NoZWNrIHRoYXQgY29ycmVjdCB4bWw6YmFzZSBmaXh1cCBpcyBwZXJmb3JtZWQuCistLT4KKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKK1tzZWxmOjppZXRmOmUxIG9yIChwYXJlbnQ6OmlldGY6ZTEgYW5kIG5vdChzZWxmOjp0ZXh0KCkgb3Igc2VsZjo6ZTIpKSBvciBjb3VudChpZCgiRTMiKXxhbmNlc3Rvci1vci1zZWxmOjpub2RlKCkpID0gY291bnQoYW5jZXN0b3Itb3Itc2VsZjo6bm9kZSgpKV0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMyLTEwMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLWMxNG4xMXNwZWMyLTEwMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3MWFmZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzItMTAyLnhtbApAQCAtMCwwICsxLDE2IEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNjMTRuMTF4bWxiYXNlLWMxNG4xMXNwZWMyLTEwMgorCitDaGVjayB0aGF0IGNvcnJlY3QgeG1sOmJhc2UgZml4dXAgaXMgcGVyZm9ybWVkLgorLS0+Cis8IURPQ1RZUEUgZG9jIFsKKyAgPCFBVFRMSVNUIGUyIHhtbDpzcGFjZSAoZGVmYXVsdHxwcmVzZXJ2ZSkgJ3ByZXNlcnZlJz4KKyAgPCFBVFRMSVNUIGUzIGlkIElEICNJTVBMSUVEPgorXT4KKzxkb2MgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJzb21ldGhpbmcvZWxzZSI+CisgICAgIDxlMT4KKyAgICAgICAgPGUyIHhtbG5zPSIiIHhtbDppZD0iYWJjIiB4bWw6YmFzZT0iYmFyLyI+CisgICAgICAgICAgIDxlMyBpZD0iRTMiIHhtbDpiYXNlPSJmb28iLz4KKyAgICAgICAgPC9lMj4KKyAgICAgPC9lMT4KKzwvZG9jPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzItMTAyLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1jMTRuMTFzcGVjMi0xMDIueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RhYWQzZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzItMTAyLnhwYXRoCkBAIC0wLDAgKzEsOSBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1jMTRuMTFzcGVjMi0xMDIKKworQ2hlY2sgdGhhdCBjb3JyZWN0IHhtbDpiYXNlIGZpeHVwIGlzIHBlcmZvcm1lZC4KKy0tPgorPFhQYXRoIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciID4KKygvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorW3NlbGY6OmlldGY6ZTEgb3IgKHBhcmVudDo6aWV0ZjplMSBhbmQgbm90KHNlbGY6OnRleHQoKSBvciBzZWxmOjplMikpIG9yIGNvdW50KGlkKCJFMyIpfGFuY2VzdG9yLW9yLXNlbGY6Om5vZGUoKSkgPSBjb3VudChhbmNlc3Rvci1vci1zZWxmOjpub2RlKCkpXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzMtMTAyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzMtMTAyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDZlMWU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1jMTRuMTFzcGVjMy0xMDIueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNjMTRuMTF4bWxiYXNlLWMxNG4xMXNwZWMzLTEwMgorCitDaGVjayB0aGF0IGNvcnJlY3QgeG1sOmJhc2UgZml4dXAgaXMgcGVyZm9ybWVkLgorLS0+Cis8YSB4bWw6YmFzZT0iZm9vL2JhciI+CisgICA8YiB4bWw6YmFzZT0iLi4iPgorICAgIDxjIHhtbDpiYXNlPSIuLiI+CisgICAgIDxkIHhtbDpiYXNlPSJ4Ij4KKyAgICAgPC9kPgorICAgIDwvYz4KKyAgIDwvYj4KKzwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzMtMTAyLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1jMTRuMTFzcGVjMy0xMDIueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ4ZGQ3MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtYzE0bjExc3BlYzMtMTAyLnhwYXRoCkBAIC0wLDAgKzEsOSBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1jMTRuMTFzcGVjMi0xMDIKKworQ2hlY2sgdGhhdCBjb3JyZWN0IHhtbDpiYXNlIGZpeHVwIGlzIHBlcmZvcm1lZC4KKy0tPgorPFhQYXRoIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciID4KKygvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorW3NlbGY6OmEgb3IgYW5jZXN0b3Itb3Itc2VsZjo6ZF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjRhODk5YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0xLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWcyZWQtdGVzdHMvI2MxNG4xMXhtbGJhc2UtcHJvcC0xCisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gd29yayBwcm9wZXJseSB3aGVuIHRoZSAKK3htbDpiYXNlIG9yaWdpbiBhcHBlYXJzIGluIHRoZSBvdXRwdXQgZG9jdW1lbnQgc3Vic2V0IGFuZCBhbHNvIGNoaWxkcmVuIAord2l0aCB4bWw6YmFzZSwgd2hpY2ggZG8gbm90IHJlcXVpcmUgZnVydGhlciBwcm9jZXNzaW5nLCBhcmUgYWxzbyBwcmVzZW50LgorLS0+Cis8aWV0ZjpjMTRuMTFYbWxCYXNlRG9jMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6YmFzZT0iaHR0cDovL3htbGJhc2UuZXhhbXBsZS5vcmcveG1sYmFzZTAvIj4KKyAgICA8aWV0ZjplMSB4bWw6YmFzZT0iL3htbGJhc2UxLyI+CisgICAgICA8aWV0ZjplMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTEvIj4KKyAgICAgICAgPGlldGY6ZTExMSB4bWw6YmFzZT0iL3htbGJhc2UxMTEvIi8+CisgICAgICA8L2lldGY6ZTExPgorICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgPGlldGY6ZTEyMSB4bWw6YmFzZT0iL3htbGJhc2UxMjEvIi8+CisgICAgICA8L2lldGY6ZTEyPgorICAgIDwvaWV0ZjplMT4KKyAgICA8aWV0ZjplMj4KKyAgICAgIDxpZXRmOmUyMSB4bWw6YmFzZT0iL3htbGJhc2UyMS8iLz4KKyAgICA8L2lldGY6ZTI+CisgICAgPGlldGY6ZTM+CisgICAgICA8aWV0ZjplMzEgYXQ9IjMiLz4KKyAgICA8L2lldGY6ZTM+Cis8L2lldGY6YzE0bjExWG1sQmFzZURvYzE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMS54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0xLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE2OGU5OGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMS54cGF0aApAQCAtMCwwICsxLDExIEBACis8IS0tIAoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1wcm9wLTEKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSB3b3JrIHByb3Blcmx5IHdoZW4gdGhlIAoreG1sOmJhc2Ugb3JpZ2luIGFwcGVhcnMgaW4gdGhlIG91dHB1dCBkb2N1bWVudCBzdWJzZXQgYW5kIGFsc28gY2hpbGRyZW4gCit3aXRoIHhtbDpiYXNlLCB3aGljaCBkbyBub3QgcmVxdWlyZSBmdXJ0aGVyIHByb2Nlc3NpbmcsIGFyZSBhbHNvIHByZXNlbnQuCistLT4KKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKK1thbmNlc3Rvci1vci1zZWxmOjppZXRmOmMxNG4xMVhtbEJhc2VEb2MxIGFuZCBub3QoYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMildCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjODUzMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMi54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWcyZWQtdGVzdHMvI2MxNG4xMXhtbGJhc2UtcHJvcC0yCisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gcHJvcGVybHkgYnVpbGQgdGhlIHhtbDpiYXNlIAorYXQgdGhlIGZpcnN0IGxldmVsIChpZXRmOmUxKS4KKy0tPgorPGlldGY6YzE0bjExWG1sQmFzZURvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sOmJhc2U9Imh0dHA6Ly94bWxiYXNlLmV4YW1wbGUub3JnL3htbGJhc2UwLyI+CisgICAgPGlldGY6ZTEgeG1sOmJhc2U9Ii94bWxiYXNlMS8iPgorICAgICAgPGlldGY6ZTExIHhtbDpiYXNlPSIveG1sYmFzZTExLyI+CisgICAgICAgIDxpZXRmOmUxMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTExLyIvPgorICAgICAgPC9pZXRmOmUxMT4KKyAgICAgIDxpZXRmOmUxMiBhdD0iMiI+CisgICAgICAgIDxpZXRmOmUxMjEgeG1sOmJhc2U9Ii94bWxiYXNlMTIxLyIvPgorICAgICAgPC9pZXRmOmUxMj4KKyAgICA8L2lldGY6ZTE+CisgICAgPGlldGY6ZTI+CisgICAgICA8aWV0ZjplMjEgeG1sOmJhc2U9Ii94bWxiYXNlMjEvIi8+CisgICAgPC9pZXRmOmUyPgorICAgIDxpZXRmOmUzPgorICAgICAgPGlldGY6ZTMxIGF0PSIzIi8+CisgICAgPC9pZXRmOmUzPgorPC9pZXRmOmMxNG4xMVhtbEJhc2VEb2MxPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTIueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMi54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZGFiMDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTIueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1wcm9wLTIKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBwcm9wZXJseSBidWlsZCB0aGUgeG1sOmJhc2UgCithdCB0aGUgZmlyc3QgbGV2ZWwgKGlldGY6ZTEpLgorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCitbYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMV0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTljZTczOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0zLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1wcm9wLTMKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBwcm9wZXJseSBidWlsZCB0aGUgeG1sOmJhc2UgCitpZiBvbmUgb2YgaW50ZXJtZWRpYXRlIHRoZSBsZXZlbHMgKGlldGY6ZTEpIGFyZSBhYnNlbnQgZnJvbSB0aGUgZG9jdW1lbnQgCitzdWJzZXQuCistLT4KKzxpZXRmOmMxNG4xMVhtbEJhc2VEb2MxIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciIHhtbDpiYXNlPSJodHRwOi8veG1sYmFzZS5leGFtcGxlLm9yZy94bWxiYXNlMC8iPgorICAgIDxpZXRmOmUxIHhtbDpiYXNlPSIveG1sYmFzZTEvIj4KKyAgICAgIDxpZXRmOmUxMSB4bWw6YmFzZT0iL3htbGJhc2UxMS8iPgorICAgICAgICA8aWV0ZjplMTExIHhtbDpiYXNlPSIveG1sYmFzZTExMS8iLz4KKyAgICAgIDwvaWV0ZjplMTE+CisgICAgICA8aWV0ZjplMTIgYXQ9IjIiPgorICAgICAgICA8aWV0ZjplMTIxIHhtbDpiYXNlPSIveG1sYmFzZTEyMS8iLz4KKyAgICAgIDwvaWV0ZjplMTI+CisgICAgPC9pZXRmOmUxPgorICAgIDxpZXRmOmUyPgorICAgICAgPGlldGY6ZTIxIHhtbDpiYXNlPSIveG1sYmFzZTIxLyIvPgorICAgIDwvaWV0ZjplMj4KKyAgICA8aWV0ZjplMz4KKyAgICAgIDxpZXRmOmUzMSBhdD0iMyIvPgorICAgIDwvaWV0ZjplMz4KKzwvaWV0ZjpjMTRuMTFYbWxCYXNlRG9jMT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0zLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTMueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGU4NzUwOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC0zLnhwYXRoCkBAIC0wLDAgKzEsMTEgQEAKKzwhLS0KK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWcyZWQtdGVzdHMvI2MxNG4xMXhtbGJhc2UtcHJvcC0zCisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gcHJvcGVybHkgYnVpbGQgdGhlIHhtbDpiYXNlIAoraWYgb25lIG9mIGludGVybWVkaWF0ZSB0aGUgbGV2ZWxzIChpZXRmOmUxKSBhcmUgYWJzZW50IGZyb20gdGhlIGRvY3VtZW50IAorc3Vic2V0LgorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikKK1thbmNlc3Rvci1vci1zZWxmOjppZXRmOmUxMV0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTdlNDQzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC00LnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1wcm9wLTQKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBwcm9wZXJseSBidWlsZCB0aGUgeG1sOmJhc2UgCitpZiBzZXZlcmFsIGludGVybWVkaWF0ZSBsZXZlbHMgKGlldGY6ZTEgYW5kIGlldGY6ZTExKSBhcmUgYWJzZW50IGZyb20gCit0aGUgZG9jdW1lbnQgc3Vic2V0LgorLS0+Cis8aWV0ZjpjMTRuMTFYbWxCYXNlRG9jMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6YmFzZT0iaHR0cDovL3htbGJhc2UuZXhhbXBsZS5vcmcveG1sYmFzZTAvIj4KKyAgICA8aWV0ZjplMSB4bWw6YmFzZT0iL3htbGJhc2UxLyI+CisgICAgICA8aWV0ZjplMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTEvIj4KKyAgICAgICAgPGlldGY6ZTExMSB4bWw6YmFzZT0iL3htbGJhc2UxMTEvIi8+CisgICAgICA8L2lldGY6ZTExPgorICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgPGlldGY6ZTEyMSB4bWw6YmFzZT0iL3htbGJhc2UxMjEvIi8+CisgICAgICA8L2lldGY6ZTEyPgorICAgIDwvaWV0ZjplMT4KKyAgICA8aWV0ZjplMj4KKyAgICAgIDxpZXRmOmUyMSB4bWw6YmFzZT0iL3htbGJhc2UyMS8iLz4KKyAgICA8L2lldGY6ZTI+CisgICAgPGlldGY6ZTM+CisgICAgICA8aWV0ZjplMzEgYXQ9IjMiLz4KKyAgICA8L2lldGY6ZTM+Cis8L2lldGY6YzE0bjExWG1sQmFzZURvYzE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC00LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxOGVmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNC54cGF0aApAQCAtMCwwICsxLDExIEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNjMTRuMTF4bWxiYXNlLXByb3AtNAorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIHByb3Blcmx5IGJ1aWxkIHRoZSB4bWw6YmFzZSAKK2lmIHNldmVyYWwgaW50ZXJtZWRpYXRlIGxldmVscyAoaWV0ZjplMSBhbmQgaWV0ZjplMTEpIGFyZSBhYnNlbnQgZnJvbSAKK3RoZSBkb2N1bWVudCBzdWJzZXQuCistLT4KKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKQorW2FuY2VzdG9yLW9yLXNlbGY6OmlldGY6ZTExMV0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjkyYTg5NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC01LnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1wcm9wLTUKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBwcm9wZXJseSBidWlsZCB0aGUgeG1sOmJhc2UgCitpZiBvbmUgaW50ZXJtZWRpYXRlIGxldmVsIChpZXRmOmUyKSB3aXRob3V0IGFueSB4bWw6YmFzZSBhdHRyaWJ1dGUgaXMgYWJzZW50IAorZnJvbSB0aGUgZG9jdW1lbnQgc3Vic2V0LgorLS0+Cis8aWV0ZjpjMTRuMTFYbWxCYXNlRG9jMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIiB4bWw6YmFzZT0iaHR0cDovL3htbGJhc2UuZXhhbXBsZS5vcmcveG1sYmFzZTAvIj4KKyAgICA8aWV0ZjplMSB4bWw6YmFzZT0iL3htbGJhc2UxLyI+CisgICAgICA8aWV0ZjplMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTEvIj4KKyAgICAgICAgPGlldGY6ZTExMSB4bWw6YmFzZT0iL3htbGJhc2UxMTEvIi8+CisgICAgICA8L2lldGY6ZTExPgorICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgPGlldGY6ZTEyMSB4bWw6YmFzZT0iL3htbGJhc2UxMjEvIi8+CisgICAgICA8L2lldGY6ZTEyPgorICAgIDwvaWV0ZjplMT4KKyAgICA8aWV0ZjplMj4KKyAgICAgIDxpZXRmOmUyMSB4bWw6YmFzZT0iL3htbGJhc2UyMS8iLz4KKyAgICA8L2lldGY6ZTI+CisgICAgPGlldGY6ZTM+CisgICAgICA8aWV0ZjplMzEgYXQ9IjMiLz4KKyAgICA8L2lldGY6ZTM+Cis8L2lldGY6YzE0bjExWG1sQmFzZURvYzE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNS54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC01LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwMjA4MDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNS54cGF0aApAQCAtMCwwICsxLDExIEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNjMTRuMTF4bWxiYXNlLXByb3AtNQorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIHByb3Blcmx5IGJ1aWxkIHRoZSB4bWw6YmFzZSAKK2lmIG9uZSBpbnRlcm1lZGlhdGUgbGV2ZWwgKGlldGY6ZTIpIHdpdGhvdXQgYW55IHhtbDpiYXNlIGF0dHJpYnV0ZSBpcyBhYnNlbnQgCitmcm9tIHRoZSBkb2N1bWVudCBzdWJzZXQuCistLT4KKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKQorW2FuY2VzdG9yLW9yLXNlbGY6OmlldGY6ZTIxXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC02LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGJhc2UtcHJvcC02LnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MjgyNGY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTYueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNjMTRuMTF4bWxiYXNlLXByb3AtNgorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIHByb3Blcmx5IGJ1aWxkIHRoZSB4bWw6YmFzZSBpbiAKK29uZSBlbGVtZW50IHRoYXQgb3JpZ2luYWxseSBoYWQgbm8geG1sOmJhc2UgIGF0dHJpYnV0ZS4KKy0tPgorPGlldGY6YzE0bjExWG1sQmFzZURvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sOmJhc2U9Imh0dHA6Ly94bWxiYXNlLmV4YW1wbGUub3JnL3htbGJhc2UwLyI+CisgICAgPGlldGY6ZTEgeG1sOmJhc2U9Ii94bWxiYXNlMS8iPgorICAgICAgPGlldGY6ZTExIHhtbDpiYXNlPSIveG1sYmFzZTExLyI+CisgICAgICAgIDxpZXRmOmUxMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTExLyIvPgorICAgICAgPC9pZXRmOmUxMT4KKyAgICAgIDxpZXRmOmUxMiBhdD0iMiI+CisgICAgICAgIDxpZXRmOmUxMjEgeG1sOmJhc2U9Ii94bWxiYXNlMTIxLyIvPgorICAgICAgPC9pZXRmOmUxMj4KKyAgICA8L2lldGY6ZTE+CisgICAgPGlldGY6ZTI+CisgICAgICA8aWV0ZjplMjEgeG1sOmJhc2U9Ii94bWxiYXNlMjEvIi8+CisgICAgPC9pZXRmOmUyPgorICAgIDxpZXRmOmUzPgorICAgICAgPGlldGY6ZTMxIGF0PSIzIi8+CisgICAgPC9pZXRmOmUzPgorPC9pZXRmOmMxNG4xMVhtbEJhc2VEb2MxPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTYueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNi54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYjkzYzY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTYueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1wcm9wLTYKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBwcm9wZXJseSBidWlsZCB0aGUgeG1sOmJhc2UgaW4gCitvbmUgZWxlbWVudCB0aGF0IG9yaWdpbmFsbHkgaGFkIG5vIHhtbDpiYXNlICBhdHRyaWJ1dGUuCistLT4KKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKQorW2FuY2VzdG9yLW9yLXNlbGY6OmlldGY6ZTNdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTcueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlMTM5MTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWcyZWQtdGVzdHMvI2MxNG4xMXhtbGJhc2UtcHJvcC03CisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gZG8gbm90IHBhc3MgdGhlIHhtbDpiYXNlIAordG8gYW5vdGhlciBlbGVtZW50IHdoZW4gaXQgaXMgbm90IG5lY2Vzc2FyeS4KKy0tPgorPGlldGY6YzE0bjExWG1sQmFzZURvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyIgeG1sOmJhc2U9Imh0dHA6Ly94bWxiYXNlLmV4YW1wbGUub3JnL3htbGJhc2UwLyI+CisgICAgPGlldGY6ZTEgeG1sOmJhc2U9Ii94bWxiYXNlMS8iPgorICAgICAgPGlldGY6ZTExIHhtbDpiYXNlPSIveG1sYmFzZTExLyI+CisgICAgICAgIDxpZXRmOmUxMTEgeG1sOmJhc2U9Ii94bWxiYXNlMTExLyIvPgorICAgICAgPC9pZXRmOmUxMT4KKyAgICAgIDxpZXRmOmUxMiBhdD0iMiI+CisgICAgICAgIDxpZXRmOmUxMjEgeG1sOmJhc2U9Ii94bWxiYXNlMTIxLyIvPgorICAgICAgPC9pZXRmOmUxMj4KKyAgICA8L2lldGY6ZTE+CisgICAgPGlldGY6ZTI+CisgICAgICA8aWV0ZjplMjEgeG1sOmJhc2U9Ii94bWxiYXNlMjEvIi8+CisgICAgPC9pZXRmOmUyPgorICAgIDxpZXRmOmUzPgorICAgICAgPGlldGY6ZTMxIGF0PSIzIi8+CisgICAgPC9pZXRmOmUzPgorPC9pZXRmOmMxNG4xMVhtbEJhc2VEb2MxPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTcueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxiYXNlLXByb3AtNy54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZDM3YWI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sYmFzZS1wcm9wLTcueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jYzE0bjExeG1sYmFzZS1wcm9wLTcKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBkbyBub3QgcGFzcyB0aGUgeG1sOmJhc2UgCit0byBhbm90aGVyIGVsZW1lbnQgd2hlbiBpdCBpcyBub3QgbmVjZXNzYXJ5LgorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCitbYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjpjMTRuMTFYbWxCYXNlRG9jMSBhbmQgbm90KGFuY2VzdG9yLW9yLXNlbGY6OmlldGY6ZTEgb3IgYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMildCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1saWQtcHJvcC0xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGlkLXByb3AtMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E1OGMyYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGlkLXByb3AtMS54bWwKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWcyZWQtdGVzdHMvI1hNTElECisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gaGFuZGxlIHhtbDppZCBhdHRyaWJ1dGVzIAorYXMgZGVmaW5lZCBpbiBbWE1MLUMxNE4xLjFdCistLT4KKzxpZXRmOmMxNG4xMVhtbElkRG9jMSB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgICAgPGlldGY6ZTEgeG1sOmlkPSJJZEludGVyb3AiPgorICAgICAgICA8aWV0ZjplMTE+CisgICAgICAgICAgIDxpZXRmOmUxMTEgLz4KKyAgICAgICAgPC9pZXRmOmUxMT4KKyAgICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMSAvPgorICAgICAgICA8L2lldGY6ZTEyPgorICAgICA8L2lldGY6ZTE+CisgICAgIDxpZXRmOmUyID4KKyAgICAgICAgPGlldGY6ZTIxIC8+CisgICAgIDwvaWV0ZjplMj4gIAorPC9pZXRmOmMxNG4xMVhtbElkRG9jMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxpZC1wcm9wLTEueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxpZC1wcm9wLTEueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGM1NTczYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGlkLXByb3AtMS54cGF0aApAQCAtMCwwICsxLDEwIEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxJRAorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6aWQgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikKK1thbmNlc3Rvci1vci1zZWxmOjppZXRmOmUxXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGlkLXByb3AtMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxpZC1wcm9wLTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNThjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxpZC1wcm9wLTIueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxJRAorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6aWQgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8aWV0ZjpjMTRuMTFYbWxJZERvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgIDxpZXRmOmUxIHhtbDppZD0iSWRJbnRlcm9wIj4KKyAgICAgICAgPGlldGY6ZTExPgorICAgICAgICAgICA8aWV0ZjplMTExIC8+CisgICAgICAgIDwvaWV0ZjplMTE+CisgICAgICAgIDxpZXRmOmUxMiBhdD0iMiI+CisgICAgICAgICAgIDxpZXRmOmUxMjEgLz4KKyAgICAgICAgPC9pZXRmOmUxMj4KKyAgICAgPC9pZXRmOmUxPgorICAgICA8aWV0ZjplMiA+CisgICAgICAgIDxpZXRmOmUyMSAvPgorICAgICA8L2lldGY6ZTI+ICAKKzwvaWV0ZjpjMTRuMTFYbWxJZERvYzE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1saWQtcHJvcC0yLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1saWQtcHJvcC0yLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlZDQ0YjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxpZC1wcm9wLTIueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jWE1MSUQKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBoYW5kbGUgeG1sOmlkIGF0dHJpYnV0ZXMgCithcyBkZWZpbmVkIGluIFtYTUwtQzE0TjEuMV0KKy0tPgorPFhQYXRoIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciID4KKygvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopCitbYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMTEgb3IgYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMTJdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMTFlMzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMS54bWwKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWcyZWQtdGVzdHMvI1hNTExBTkcKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBoYW5kbGUgeG1sOmxhbmcgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8aWV0ZjpjMTRuMTFYbWxsYW5nIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciPgorICAgICA8aWV0ZjplMSB4bWw6bGFuZz0iRU4iPgorICAgICAgICA8aWV0ZjplMTE+CisgICAgICAgICAgIDxpZXRmOmUxMTEgLz4KKyAgICAgICAgPC9pZXRmOmUxMT4KKyAgICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMSAvPgorICAgICAgICA8L2lldGY6ZTEyPgorICAgICA8L2lldGY6ZTE+CisgICAgIDxpZXRmOmUyID4KKyAgICAgICAgPGlldGY6ZTIxIC8+CisgICAgIDwvaWV0ZjplMj4KKzwvaWV0ZjpjMTRuMTFYbWxsYW5nPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0xLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTEueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjI0OTI0ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0xLnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzwhLS0gCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxMQU5HCisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gaGFuZGxlIHhtbDpsYW5nIGF0dHJpYnV0ZXMgCithcyBkZWZpbmVkIGluIFtYTUwtQzE0TjEuMV0KKy0tPgorPFhQYXRoIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciID4KKygvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopCitbYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMV0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTExMWUzMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0yLnhtbApAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jWE1MTEFORworCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6bGFuZyBhdHRyaWJ1dGVzIAorYXMgZGVmaW5lZCBpbiBbWE1MLUMxNE4xLjFdCistLT4KKzxpZXRmOmMxNG4xMVhtbGxhbmcgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgIDxpZXRmOmUxIHhtbDpsYW5nPSJFTiI+CisgICAgICAgIDxpZXRmOmUxMT4KKyAgICAgICAgICAgPGlldGY6ZTExMSAvPgorICAgICAgICA8L2lldGY6ZTExPgorICAgICAgICA8aWV0ZjplMTIgYXQ9IjIiPgorICAgICAgICAgICA8aWV0ZjplMTIxIC8+CisgICAgICAgIDwvaWV0ZjplMTI+CisgICAgIDwvaWV0ZjplMT4KKyAgICAgPGlldGY6ZTIgPgorICAgICAgICA8aWV0ZjplMjEgLz4KKyAgICAgPC9pZXRmOmUyPgorPC9pZXRmOmMxNG4xMVhtbGxhbmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTIueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMi54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYTIxNzU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTIueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPCEtLSAKK2h0dHA6Ly93d3cudzMub3JnL1RSL3htbGRzaWcyZWQtdGVzdHMvI1hNTExBTkcKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBoYW5kbGUgeG1sOmxhbmcgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikKK1thbmNlc3Rvci1vci1zZWxmOjppZXRmOmUyXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTExZTMzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTMueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxMQU5HCisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gaGFuZGxlIHhtbDpsYW5nIGF0dHJpYnV0ZXMgCithcyBkZWZpbmVkIGluIFtYTUwtQzE0TjEuMV0KKy0tPgorPGlldGY6YzE0bjExWG1sbGFuZyB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgICAgPGlldGY6ZTEgeG1sOmxhbmc9IkVOIj4KKyAgICAgICAgPGlldGY6ZTExPgorICAgICAgICAgICA8aWV0ZjplMTExIC8+CisgICAgICAgIDwvaWV0ZjplMTE+CisgICAgICAgIDxpZXRmOmUxMiBhdD0iMiI+CisgICAgICAgICAgIDxpZXRmOmUxMjEgLz4KKyAgICAgICAgPC9pZXRmOmUxMj4KKyAgICAgPC9pZXRmOmUxPgorICAgICA8aWV0ZjplMiA+CisgICAgICAgIDxpZXRmOmUyMSAvPgorICAgICA8L2lldGY6ZTI+Cis8L2lldGY6YzE0bjExWG1sbGFuZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMy54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC0zLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2ZTc3ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtMy54cGF0aApAQCAtMCwwICsxLDEwIEBACis8IS0tIAoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jWE1MTEFORworCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6bGFuZyBhdHRyaWJ1dGVzIAorYXMgZGVmaW5lZCBpbiBbWE1MLUMxNE4xLjFdCistLT4KKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKQorW2FuY2VzdG9yLW9yLXNlbGY6OmlldGY6ZTExXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC00LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC00LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTExZTMzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sbGFuZy1wcm9wLTQueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxMQU5HCisKK0NoZWNrIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIFtYTUwtQzE0TjEuMV0gaGFuZGxlIHhtbDpsYW5nIGF0dHJpYnV0ZXMgCithcyBkZWZpbmVkIGluIFtYTUwtQzE0TjEuMV0KKy0tPgorPGlldGY6YzE0bjExWG1sbGFuZyB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgICAgPGlldGY6ZTEgeG1sOmxhbmc9IkVOIj4KKyAgICAgICAgPGlldGY6ZTExPgorICAgICAgICAgICA8aWV0ZjplMTExIC8+CisgICAgICAgIDwvaWV0ZjplMTE+CisgICAgICAgIDxpZXRmOmUxMiBhdD0iMiI+CisgICAgICAgICAgIDxpZXRmOmUxMjEgLz4KKyAgICAgICAgPC9pZXRmOmUxMj4KKyAgICAgPC9pZXRmOmUxPgorICAgICA8aWV0ZjplMiA+CisgICAgICAgIDxpZXRmOmUyMSAvPgorICAgICA8L2lldGY6ZTI+Cis8L2lldGY6YzE0bjExWG1sbGFuZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtNC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbGxhbmctcHJvcC00LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkYzc2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxsYW5nLXByb3AtNC54cGF0aApAQCAtMCwwICsxLDEwIEBACis8IS0tIAoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jWE1MTEFORworCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6bGFuZyBhdHRyaWJ1dGVzIAorYXMgZGVmaW5lZCBpbiBbWE1MLUMxNE4xLjFdCistLT4KKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKQorW2FuY2VzdG9yLW9yLXNlbGY6OmlldGY6ZTExIG9yIGFuY2VzdG9yLW9yLXNlbGY6OmlldGY6ZTEyXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZGE5ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTEueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxTUEFDRQorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6c3BhY2UgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8aWV0ZjpjMTRuMTFYbWxTcGFjZURvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgIDxpZXRmOmUxIHhtbDpzcGFjZT0idHJ1ZSI+CisgICAgICAgIDxpZXRmOmUxMT4KKyAgICAgICAgICAgPGlldGY6ZTExMSAvPgorICAgICAgICA8L2lldGY6ZTExPgorICAgICAgICA8aWV0ZjplMTIgYXQ9IjIiPgorICAgICAgICAgICA8aWV0ZjplMTIxIC8+CisgICAgICAgIDwvaWV0ZjplMTI+CisgICAgIDwvaWV0ZjplMT4KKyAgICAgPGlldGY6ZTIgPgorICAgICAgICA8aWV0ZjplMjEgLz4KKyAgICAgPC9pZXRmOmUyPgorPC9pZXRmOmMxNG4xMVhtbFNwYWNlRG9jMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTEueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTEueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFkMzczYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMS54cGF0aApAQCAtMCwwICsxLDEwIEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxTUEFDRQorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6c3BhY2UgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikKK1thbmNlc3Rvci1vci1zZWxmOjppZXRmOmUxXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZGE5ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTIueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxTUEFDRQorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6c3BhY2UgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8aWV0ZjpjMTRuMTFYbWxTcGFjZURvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgIDxpZXRmOmUxIHhtbDpzcGFjZT0idHJ1ZSI+CisgICAgICAgIDxpZXRmOmUxMT4KKyAgICAgICAgICAgPGlldGY6ZTExMSAvPgorICAgICAgICA8L2lldGY6ZTExPgorICAgICAgICA8aWV0ZjplMTIgYXQ9IjIiPgorICAgICAgICAgICA8aWV0ZjplMTIxIC8+CisgICAgICAgIDwvaWV0ZjplMTI+CisgICAgIDwvaWV0ZjplMT4KKyAgICAgPGlldGY6ZTIgPgorICAgICAgICA8aWV0ZjplMjEgLz4KKyAgICAgPC9pZXRmOmUyPgorPC9pZXRmOmMxNG4xMVhtbFNwYWNlRG9jMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTIueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTIueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmZiN2Q4NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMi54cGF0aApAQCAtMCwwICsxLDEwIEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxTUEFDRQorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6c3BhY2UgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikKK1thbmNlc3Rvci1vci1zZWxmOjppZXRmOmUyXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZGE5ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTMueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxTUEFDRQorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6c3BhY2UgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8aWV0ZjpjMTRuMTFYbWxTcGFjZURvYzEgeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgeG1sbnM6dzNjPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgIDxpZXRmOmUxIHhtbDpzcGFjZT0idHJ1ZSI+CisgICAgICAgIDxpZXRmOmUxMT4KKyAgICAgICAgICAgPGlldGY6ZTExMSAvPgorICAgICAgICA8L2lldGY6ZTExPgorICAgICAgICA8aWV0ZjplMTIgYXQ9IjIiPgorICAgICAgICAgICA8aWV0ZjplMTIxIC8+CisgICAgICAgIDwvaWV0ZjplMTI+CisgICAgIDwvaWV0ZjplMT4KKyAgICAgPGlldGY6ZTIgPgorICAgICAgICA8aWV0ZjplMjEgLz4KKyAgICAgPC9pZXRmOmUyPgorPC9pZXRmOmMxNG4xMVhtbFNwYWNlRG9jMT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTMueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTMueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2YyN2FlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuLzEtMS13aXRob3V0LWNvbW1lbnRzL3htbHNwYWNlLXByb3AtMy54cGF0aApAQCAtMCwwICsxLDEwIEBACis8IS0tCitodHRwOi8vd3d3LnczLm9yZy9UUi94bWxkc2lnMmVkLXRlc3RzLyNYTUxTUEFDRQorCitDaGVjayB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBbWE1MLUMxNE4xLjFdIGhhbmRsZSB4bWw6c3BhY2UgYXR0cmlidXRlcyAKK2FzIGRlZmluZWQgaW4gW1hNTC1DMTROMS4xXQorLS0+Cis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikKK1thbmNlc3Rvci1vci1zZWxmOjppZXRmOmUxMV0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC00LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmRhOWU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC00LnhtbApAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jWE1MU1BBQ0UKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBoYW5kbGUgeG1sOnNwYWNlIGF0dHJpYnV0ZXMgCithcyBkZWZpbmVkIGluIFtYTUwtQzE0TjEuMV0KKy0tPgorPGlldGY6YzE0bjExWG1sU3BhY2VEb2MxIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciPgorICAgICA8aWV0ZjplMSB4bWw6c3BhY2U9InRydWUiPgorICAgICAgICA8aWV0ZjplMTE+CisgICAgICAgICAgIDxpZXRmOmUxMTEgLz4KKyAgICAgICAgPC9pZXRmOmUxMT4KKyAgICAgICAgPGlldGY6ZTEyIGF0PSIyIj4KKyAgICAgICAgICAgPGlldGY6ZTEyMSAvPgorICAgICAgICA8L2lldGY6ZTEyPgorICAgICA8L2lldGY6ZTE+CisgICAgIDxpZXRmOmUyID4KKyAgICAgICAgPGlldGY6ZTIxIC8+CisgICAgIDwvaWV0ZjplMj4KKzwvaWV0ZjpjMTRuMTFYbWxTcGFjZURvYzE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC00LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vMS0xLXdpdGhvdXQtY29tbWVudHMveG1sc3BhY2UtcHJvcC00LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ5YzQzOTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi8xLTEtd2l0aG91dC1jb21tZW50cy94bWxzcGFjZS1wcm9wLTQueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPCEtLQoraHR0cDovL3d3dy53My5vcmcvVFIveG1sZHNpZzJlZC10ZXN0cy8jWE1MU1BBQ0UKKworQ2hlY2sgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgW1hNTC1DMTROMS4xXSBoYW5kbGUgeG1sOnNwYWNlIGF0dHJpYnV0ZXMgCithcyBkZWZpbmVkIGluIFtYTUwtQzE0TjEuMV0KKy0tPgorPFhQYXRoIHhtbG5zOmlldGY9Imh0dHA6Ly93d3cuaWV0Zi5vcmciID4KKygvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopCitbYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMTEgb3IgYW5jZXN0b3Itb3Itc2VsZjo6aWV0ZjplMTJdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA5LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0YzlkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOS54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOlJvb3QgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbDpsYW5nPSJlbi1pZSI+CisgIDxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIC8+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KKzwvZm9vOlJvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDkueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDkueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE3YjY2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOS54cGF0aApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBldmVyeXRoaW5nIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nCisgICAgXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTAueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEwLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEwLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlYTI3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTAueHBhdGgKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFBhdGggeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKKyAgICBbIAorICAgICAgICAgICAgICA8IS0tIG9ubHkgdGV4dCwgZWxlbWVudHMgb3IgZGlyZWN0bHktdXNlZCBuYW1lc3BhY2Ugbm9kZXMgLS0+CisgICAgICAgICAgICAgIGFuY2VzdG9yLW9yLXNlbGY6OmJhcjpTb21ldGhpbmcgIGFuZAorICAgICAgICAgICAgICAoKG5hbWUoKSAhPSAiYmFyIikgb3IgcGFyZW50OjpiYXI6U29tZXRoaW5nKSAgYW5kCisgICAgICAgICAgICAgICgobmFtZSgpICE9ICJmb28iKSBvciBwYXJlbnQ6OmZvbzpTb21ldGhpbmcpICBhbmQKKyAgICAgICAgICAgICAgKChuYW1lKCkgIT0gImJheiIpIG9yIHBhcmVudDo6YmF6OlNvbWV0aGluZykgIGFuZAorICAgICAgICAgICAgICAoKG5hbWUoKSAhPSAiIikgb3Igc2VsZjo6dGV4dCgpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTExLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTExLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMS54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMS54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2Q2NWUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTExLnhwYXRoCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBvbmx5IHRleHQsIGVsZW1lbnRzIG9yIGRpcmVjdGx5LXVzZWQgbmFtZXNwYWNlIG5vZGVzIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgKHNlbGY6OnRleHQoKSAgb3IKKyAgICAgICAgICAgICAgIChuYW1lc3BhY2UtdXJpKCkgIT0gIiIpICBvcgorICAgICAgICAgICAgICAgKHN0cmluZyhzZWxmOjpub2RlKCkpID0gbmFtZXNwYWNlLXVyaShwYXJlbnQ6Om5vZGUoKSkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEyLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMi54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMi54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDhhZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEyLnhwYXRoCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBvbmx5IHRleHQsIGVsZW1lbnRzLCBvciBkaXJlY3RseS11c2VkIG5hbWVzcGFjZSBub2RlcyBidXQgbm90IGZvbzpTb21ldGhpbmcgLS0+CisgICAgICAgICAgICAgIGFuY2VzdG9yLW9yLXNlbGY6OmJhcjpTb21ldGhpbmcgIGFuZAorICAgICAgICAgICAgICBub3QgKHNlbGY6OmZvbzpTb21ldGhpbmcpICBhbmQKKyAgICAgICAgICAgICAgKHNlbGY6OnRleHQoKSAgb3IKKyAgICAgICAgICAgICAgIChuYW1lc3BhY2UtdXJpKCkgIT0gIiIpICBvcgorICAgICAgICAgICAgICAgKHN0cmluZyhzZWxmOjpub2RlKCkpID0gbmFtZXNwYWNlLXVyaShwYXJlbnQ6Om5vZGUoKSkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEzLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMy54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xMy54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDAxNzBiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTEzLnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBubyBuYW1lc3BhY2Ugbm9kZXM7IEkgYW0gbm90IGluIG15IHBhcmVudCdzIG5hbWVzcGFjZSBheGlzIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgKGNvdW50KHBhcmVudDo6bm9kZSgpL25hbWVzcGFjZTo6KikgICE9CisgICAgICAgICAgICAgICBjb3VudChwYXJlbnQ6Om5vZGUoKS9uYW1lc3BhY2U6OiogfCBzZWxmOjpub2RlKCkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE0LnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNC54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzMyODk0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE0LnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBubyBuYW1lc3BhY2Ugbm9kZXM7IEkgYW0gdGV4dCBvciBoYXZlIG5vbmVtcHR5IG5hbWVzcGFjZSBVUkkgLS0+CisgICAgICAgICAgICAgIGFuY2VzdG9yLW9yLXNlbGY6OmJhcjpTb21ldGhpbmcgIGFuZAorICAgICAgICAgICAgICAoc2VsZjo6dGV4dCgpICBvcgorICAgICAgICAgICAgICAgKG5hbWVzcGFjZS11cmkoKSAhPSAiIikpCisgICAgXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTUueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE1LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE1LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlNjU4OWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTUueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFBhdGggeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKKyAgICBbIAorICAgICAgICAgICAgICA8IS0tIG9ubHkgbmFtZXNwYWNlIG5vZGVzIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgKGNvdW50KHBhcmVudDo6bm9kZSgpL25hbWVzcGFjZTo6KikgID0KKyAgICAgICAgICAgICAgIGNvdW50KHBhcmVudDo6bm9kZSgpL25hbWVzcGFjZTo6KiB8IHNlbGY6Om5vZGUoKSkpCisgICAgXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTYueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE2LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE2LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkY2E1MjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTYueHBhdGgKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gb25seSBkaXJlY3RseS11c2VkIG5hbWVzcGFjZSBub2RlcyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChzdHJpbmcoc2VsZjo6bm9kZSgpKSA9IG5hbWVzcGFjZS11cmkocGFyZW50Ojpub2RlKCkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTcueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE3LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE3LnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNy54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xNy54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGZkZDNmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE3LnhwYXRoCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBubyBuYW1lc3BhY2Ugbm9kZXMgYnV0IHRoZSBkZWZhdWx0IG9uIGFsdGVybmF0ZSBlbGVtZW50cyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChzZWxmOjp0ZXh0KCkgIG9yCisgICAgICAgICAgICAgICAobmFtZXNwYWNlLXVyaSgpICE9ICIiKSAgb3IKKyAgICAgICAgICAgICAgICgobmFtZSgpID0gIiIpICBhbmQKKyAgICAgICAgICAgICAgICAoKGNvdW50KGFuY2VzdG9yLW9yLXNlbGY6Om5vZGUoKSkgbW9kIDIpID0gMSkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTgubnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTgubnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4NmFlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOC5ucwpAQCAtMCwwICsxIEBACisjZGVmYXVsdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTgueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE4LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE4LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxN2I2NmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTgueHBhdGgKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gZXZlcnl0aGluZyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZworICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTkubnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTkubnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4NmFlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOS5ucwpAQCAtMCwwICsxIEBACisjZGVmYXVsdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0xOS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTkueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTkueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE5LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTE5LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlYTI3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMTkueHBhdGgKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFBhdGggeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKKyAgICBbIAorICAgICAgICAgICAgICA8IS0tIG9ubHkgdGV4dCwgZWxlbWVudHMgb3IgZGlyZWN0bHktdXNlZCBuYW1lc3BhY2Ugbm9kZXMgLS0+CisgICAgICAgICAgICAgIGFuY2VzdG9yLW9yLXNlbGY6OmJhcjpTb21ldGhpbmcgIGFuZAorICAgICAgICAgICAgICAoKG5hbWUoKSAhPSAiYmFyIikgb3IgcGFyZW50OjpiYXI6U29tZXRoaW5nKSAgYW5kCisgICAgICAgICAgICAgICgobmFtZSgpICE9ICJmb28iKSBvciBwYXJlbnQ6OmZvbzpTb21ldGhpbmcpICBhbmQKKyAgICAgICAgICAgICAgKChuYW1lKCkgIT0gImJheiIpIG9yIHBhcmVudDo6YmF6OlNvbWV0aGluZykgIGFuZAorICAgICAgICAgICAgICAoKG5hbWUoKSAhPSAiIikgb3Igc2VsZjo6dGV4dCgpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjAubnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjAubnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4NmFlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMC5ucwpAQCAtMCwwICsxIEBACisjZGVmYXVsdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjAueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIwLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIwLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZDY1ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjAueHBhdGgKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFBhdGggeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKKyAgICBbIAorICAgICAgICAgICAgICA8IS0tIG9ubHkgdGV4dCwgZWxlbWVudHMgb3IgZGlyZWN0bHktdXNlZCBuYW1lc3BhY2Ugbm9kZXMgLS0+CisgICAgICAgICAgICAgIGFuY2VzdG9yLW9yLXNlbGY6OmJhcjpTb21ldGhpbmcgIGFuZAorICAgICAgICAgICAgICAoc2VsZjo6dGV4dCgpICBvcgorICAgICAgICAgICAgICAgKG5hbWVzcGFjZS11cmkoKSAhPSAiIikgIG9yCisgICAgICAgICAgICAgICAoc3RyaW5nKHNlbGY6Om5vZGUoKSkgPSBuYW1lc3BhY2UtdXJpKHBhcmVudDo6bm9kZSgpKSkpCisgICAgXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMS5ucyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMS5ucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODg2YWVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIxLm5zCkBAIC0wLDAgKzEgQEAKKyNkZWZhdWx0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIxLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0YzlkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMS54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOlJvb3QgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbDpsYW5nPSJlbi1pZSI+CisgIDxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIC8+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KKzwvZm9vOlJvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjEueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjEueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ4YWU2OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMS54cGF0aApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gb25seSB0ZXh0LCBlbGVtZW50cywgb3IgZGlyZWN0bHktdXNlZCBuYW1lc3BhY2Ugbm9kZXMgYnV0IG5vdCBmb286U29tZXRoaW5nIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgbm90IChzZWxmOjpmb286U29tZXRoaW5nKSAgYW5kCisgICAgICAgICAgICAgIChzZWxmOjp0ZXh0KCkgIG9yCisgICAgICAgICAgICAgICAobmFtZXNwYWNlLXVyaSgpICE9ICIiKSAgb3IKKyAgICAgICAgICAgICAgIChzdHJpbmcoc2VsZjo6bm9kZSgpKSA9IG5hbWVzcGFjZS11cmkocGFyZW50Ojpub2RlKCkpKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIyLm5zIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIyLm5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ODZhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjIubnMKQEAgLTAsMCArMSBAQAorI2RlZmF1bHQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIyLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMi54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMi54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDAxNzBiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIyLnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBubyBuYW1lc3BhY2Ugbm9kZXM7IEkgYW0gbm90IGluIG15IHBhcmVudCdzIG5hbWVzcGFjZSBheGlzIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgKGNvdW50KHBhcmVudDo6bm9kZSgpL25hbWVzcGFjZTo6KikgICE9CisgICAgICAgICAgICAgICBjb3VudChwYXJlbnQ6Om5vZGUoKS9uYW1lc3BhY2U6OiogfCBzZWxmOjpub2RlKCkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjMubnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjMubnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4NmFlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMy5ucwpAQCAtMCwwICsxIEBACisjZGVmYXVsdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjMueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIzLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTIzLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MzI4OTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjMueHBhdGgKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFBhdGggeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKKyAgICBbIAorICAgICAgICAgICAgICA8IS0tIG5vIG5hbWVzcGFjZSBub2RlczsgSSBhbSB0ZXh0IG9yIGhhdmUgbm9uZW1wdHkgbmFtZXNwYWNlIFVSSSAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChzZWxmOjp0ZXh0KCkgIG9yCisgICAgICAgICAgICAgICAobmFtZXNwYWNlLXVyaSgpICE9ICIiKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI0Lm5zIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI0Lm5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ODZhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjQubnMKQEAgLTAsMCArMSBAQAorI2RlZmF1bHQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI0LnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNC54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTY1ODllCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI0LnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBvbmx5IG5hbWVzcGFjZSBub2RlcyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChjb3VudChwYXJlbnQ6Om5vZGUoKS9uYW1lc3BhY2U6OiopICA9CisgICAgICAgICAgICAgICBjb3VudChwYXJlbnQ6Om5vZGUoKS9uYW1lc3BhY2U6OiogfCBzZWxmOjpub2RlKCkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjUubnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjUubnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4NmFlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNS5ucwpAQCAtMCwwICsxIEBACisjZGVmYXVsdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjUueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI1LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI1LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkY2E1MjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjUueHBhdGgKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gb25seSBkaXJlY3RseS11c2VkIG5hbWVzcGFjZSBub2RlcyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChzdHJpbmcoc2VsZjo6bm9kZSgpKSA9IG5hbWVzcGFjZS11cmkocGFyZW50Ojpub2RlKCkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjYubnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjYubnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4NmFlZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNi5ucwpAQCAtMCwwICsxIEBACisjZGVmYXVsdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0yNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjYueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI2LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTI2LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZmRkM2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMjYueHBhdGgKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFBhdGggeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKKyAgICBbIAorICAgICAgICAgICAgICA8IS0tIG5vIG5hbWVzcGFjZSBub2RlcyBidXQgdGhlIGRlZmF1bHQgb24gYWx0ZXJuYXRlIGVsZW1lbnRzIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgKHNlbGY6OnRleHQoKSAgb3IKKyAgICAgICAgICAgICAgIChuYW1lc3BhY2UtdXJpKCkgIT0gIiIpICBvcgorICAgICAgICAgICAgICAgKChuYW1lKCkgPSAiIikgIGFuZAorICAgICAgICAgICAgICAgICgoY291bnQoYW5jZXN0b3Itb3Itc2VsZjo6bm9kZSgpKSBtb2QgMikgPSAxKSkpCisgICAgXQorPC9YUGF0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YzQyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTAueG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBkb2MgWzwhQVRUTElTVCBlOSBhdHRyIENEQVRBICJkZWZhdWx0Ij5dPgorPGRvYyB4bWxuczpmb289Imh0dHA6Ly93d3cuYmFyLm9yZyIgeG1sOmJhc2U9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvMjAwMi8iPgorICAgPGUxICAgLz4KKyAgIDxlMiAgID48L2UyPgorICAgPGUzICAgIG5hbWUgPSAiZWxlbTMiICAgaWQ9ImVsZW0zIiAgICAvPgorICAgPGU0ICAgIG5hbWU9ImVsZW00IiAgIGlkPSJlbGVtNCIgICAgPjwvZTQ+CisgICA8ZTUgYTphdHRyPSJvdXQiIGI6YXR0cj0ic29ydGVkIiBhdHRyMj0iYWxsIiBhdHRyPSJJJ20iCisgICAgICAgeG1sbnM6Yj0iaHR0cDovL3d3dy5pZXRmLm9yZyIKKyAgICAgICB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyIKKyAgICAgICB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnIi8+CisgICA8ZTYgeG1sbnM9IiIgdGVzdD0iLi4vYmF6IiB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgICAgPGU3IHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIj4KKyAgICAgICAgICAgPGU4IHhtbG5zPSIiIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIiBhOmZvbz0iYmFyIj4KKyAgICAgICAgICAgICAgIDxlOSB4bWxucz0iIiB4bWxuczphPSJodHRwOi8vd3d3LmlldGYub3JnIi8+CisgICAgICAgICAgIDwvZTg+CisgICAgICAgPC9lNz4KKyAgIDwvZTY+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMC54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWEwMDcwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0wLnhwYXRoCkBAIC0wLDAgKzEsMyBAQAorPFhQYXRoPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KilbYW5jZXN0b3Itb3Itc2VsZjo6ZTZdIAorPC9YUGF0aD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTEubnMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTEubnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU2NWVmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMS5ucwpAQCAtMCwwICsxIEBACithClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdjNDJkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMS54bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGRvYyBbPCFBVFRMSVNUIGU5IGF0dHIgQ0RBVEEgImRlZmF1bHQiPl0+Cis8ZG9jIHhtbG5zOmZvbz0iaHR0cDovL3d3dy5iYXIub3JnIiB4bWw6YmFzZT0iaHR0cDovL3d3dy5leGFtcGxlLm9yZy8yMDAyLyI+CisgICA8ZTEgICAvPgorICAgPGUyICAgPjwvZTI+CisgICA8ZTMgICAgbmFtZSA9ICJlbGVtMyIgICBpZD0iZWxlbTMiICAgIC8+CisgICA8ZTQgICAgbmFtZT0iZWxlbTQiICAgaWQ9ImVsZW00IiAgICA+PC9lND4KKyAgIDxlNSBhOmF0dHI9Im91dCIgYjphdHRyPSJzb3J0ZWQiIGF0dHIyPSJhbGwiIGF0dHI9IkknbSIKKyAgICAgICB4bWxuczpiPSJodHRwOi8vd3d3LmlldGYub3JnIgorICAgICAgIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIgorICAgICAgIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmciLz4KKyAgIDxlNiB4bWxucz0iIiB0ZXN0PSIuLi9iYXoiIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgICAgICA8ZTcgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciPgorICAgICAgICAgICA8ZTggeG1sbnM9IiIgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciIGE6Zm9vPSJiYXIiPgorICAgICAgICAgICAgICAgPGU5IHhtbG5zPSIiIHhtbG5zOmE9Imh0dHA6Ly93d3cuaWV0Zi5vcmciLz4KKyAgICAgICAgICAgPC9lOD4KKyAgICAgICA8L2U3PgorICAgPC9lNj4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0xLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0xLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhYTAwNzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTEueHBhdGgKQEAgLTAsMCArMSwzIEBACis8WFBhdGg+CisoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKVthbmNlc3Rvci1vci1zZWxmOjplNl0gCis8L1hQYXRoPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL2V4Yy13aXRob3V0LWNvbW1lbnRzL3Rlc3QtMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZDE1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTIueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CisgIDxTaWduZWRJbmZvPgorICAgIDxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPgorICAgIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiLz4KKyAgICA8UmVmZXJlbmNlIFVSST0iI25kaWQ6MTIzNC01Njc4LTA5ODciPgorICAgICAgPFRyYW5zZm9ybXM+CisgICAgICAgIDxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz4KKyAgICAgIDwvVHJhbnNmb3Jtcz4KKyAgICAgIDxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPgorICAgICAgPERpZ2VzdFZhbHVlPnNqMVZYREIyVk1DVTVxbXZhMk90RHcza0tPcz08L0RpZ2VzdFZhbHVlPgorICAgIDwvUmVmZXJlbmNlPgorICA8L1NpZ25lZEluZm8+CisgIDxTaWduYXR1cmVWYWx1ZT4uLi48L1NpZ25hdHVyZVZhbHVlPgorICA8S2V5SW5mbz4KKyAgICA8WDUwOURhdGE+CisgICAgICA8WDUwOUNlcnRpZmljYXRlPi4uLjwvWDUwOUNlcnRpZmljYXRlPgorICAgIDwvWDUwOURhdGE+CisgIDwvS2V5SW5mbz4KKzwvU2lnbmF0dXJlPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0yLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vZXhjLXdpdGhvdXQtY29tbWVudHMvdGVzdC0yLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NzY1MmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi9leGMtd2l0aG91dC1jb21tZW50cy90ZXN0LTIueHBhdGgKQEAgLTAsMCArMSw2IEBACis8WFBhdGggeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPgorKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikKK1sKKyAgICBhbmNlc3Rvci1vci1zZWxmOjpkczpTaWduZWRJbmZvCitdIAorPC9YUGF0aD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2RvYy5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2RvYy5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ2MDIzOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZG9jLmR0ZApAQCAtMCwwICsxIEBACis8IS0tIEVtcHR5IERURCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ0NTBjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS0xLnhtbApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKworPD94bWwtc3R5bGVzaGVldCAgIGhyZWY9ImRvYy54c2wiCisgICB0eXBlPSJ0ZXh0L3hzbCIgICA/PgorCis8IURPQ1RZUEUgZG9jIFNZU1RFTSAiZG9jLmR0ZCI+CisKKzxkb2M+SGVsbG8sIHdvcmxkITwhLS0gQ29tbWVudCAxIC0tPjwvZG9jPgorCis8P3BpLXdpdGhvdXQtZGF0YSAgICAgPz4KKworPCEtLSBDb21tZW50IDIgLS0+CisKKzwhLS0gQ29tbWVudCAzIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ZWVlYTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtMi54bWwKQEAgLTAsMCArMSwxMSBAQAorPGRvYz4KKyAgIDxjbGVhbj4gICA8L2NsZWFuPgorICAgPGRpcnR5PiAgIEEgICBCICAgPC9kaXJ0eT4KKyAgIDxtaXhlZD4KKyAgICAgIEEKKyAgICAgIDxjbGVhbj4gICA8L2NsZWFuPgorICAgICAgQgorICAgICAgPGRpcnR5PiAgIEEgICBCICAgPC9kaXJ0eT4KKyAgICAgIEMKKyAgIDwvbWl4ZWQ+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS0zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS0zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2ExOTUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTMueG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBkb2MgWzwhQVRUTElTVCBlOSBhdHRyIENEQVRBICJkZWZhdWx0Ij5dPgorPGRvYz4KKyAgIDxlMSAgIC8+CisgICA8ZTIgICA+PC9lMj4KKyAgIDxlMyAgICBuYW1lID0gImVsZW0zIiAgIGlkPSJlbGVtMyIgICAgLz4KKyAgIDxlNCAgICBuYW1lPSJlbGVtNCIgICBpZD0iZWxlbTQiICAgID48L2U0PgorICAgPGU1IGE6YXR0cj0ib3V0IiBiOmF0dHI9InNvcnRlZCIgYXR0cjI9ImFsbCIgYXR0cj0iSSdtIgorICAgICAgIHhtbG5zOmI9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIAorICAgICAgIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIgorICAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnV2aWMuY2EiLz4KKyAgIDxlNiB4bWxucz0iIiB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyI+CisgICAgICAgPGU3IHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIj4KKyAgICAgICAgICAgPGU4IHhtbG5zPSIiIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgICAgICAgICAgICAgIDxlOSB4bWxucz0iIiB4bWxuczphPSJodHRwOi8vd3d3LmlldGYub3JnIi8+CisgICAgICAgICAgIDwvZTg+CisgICAgICAgPC9lNz4KKyAgIDwvZTY+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS00LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS00LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmJhMTM4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTQueG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGRvYyBbPCFBVFRMSVNUIG5vcm1JZCBpZCBJRCAjSU1QTElFRD5dPgorPGRvYz4KKyAgIDx0ZXh0PkZpcnN0IGxpbmUmI3gwZDsmIzEwO1NlY29uZCBsaW5lPC90ZXh0PgorICAgPHZhbHVlPiYjeDMyOzwvdmFsdWU+CisgICA8Y29tcHV0ZT48IVtDREFUQVt2YWx1ZT4iMCIgJiYgdmFsdWU8IjEwIiA/InZhbGlkIjoiZXJyb3IiXV0+PC9jb21wdXRlPgorICAgPGNvbXB1dGUgZXhwcj0ndmFsdWU+IjAiICZhbXA7JmFtcDsgdmFsdWUmbHQ7IjEwIiA/InZhbGlkIjoiZXJyb3IiJz52YWxpZDwvY29tcHV0ZT4KKyAgIDxub3JtIGF0dHI9JyAmYXBvczsgICAmI3gyMDsmIzEzOyYjeGE7JiM5OyAgICZhcG9zOyAnLz4KKyAgIDxub3JtSWQgaWQ9JyAmYXBvczsgICAmI3gyMDsmIzEzOyYjeGE7JiM5OyAgICZhcG9zOyAnLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyYzUzMjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNS54bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGRvYyBbCis8IUFUVExJU1QgZG9jIGF0dHJFeHRFbnQgRU5USVRZICNJTVBMSUVEPgorPCFFTlRJVFkgZW50MSAiSGVsbG8iPgorPCFFTlRJVFkgZW50MiBTWVNURU0gIndvcmxkLnR4dCI+Cis8IUVOVElUWSBlbnRFeHQgU1lTVEVNICJlYXJ0aC5naWYiIE5EQVRBIGdpZj4KKzwhTk9UQVRJT04gZ2lmIFNZU1RFTSAidmlld2dpZi5leGUiPgorXT4KKzxkb2MgYXR0ckV4dEVudD0iZW50RXh0Ij4KKyAgICZlbnQxOywgJmVudDI7IQorPC9kb2M+CisKKzwhLS0gTGV0IHdvcmxkLnR4dCBjb250YWluICJ3b3JsZCIgKGV4Y2x1ZGluZyB0aGUgcXVvdGVzKSAtLT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS02LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS02LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWUyMDcxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTYueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGRvYz4mIzE2OTs8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS03LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS03LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTE3MWNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aC1jb21tZW50cy9leGFtcGxlLTcueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFBVFRMSVNUIGUyIHhtbDpzcGFjZSAoZGVmYXVsdHxwcmVzZXJ2ZSkgJ3ByZXNlcnZlJz4KKzwhQVRUTElTVCBlMyBpZCBJRCAjSU1QTElFRD4KK10+Cis8ZG9jIHhtbG5zPSJodHRwOi8vd3d3LmlldGYub3JnIiB4bWxuczp3M2M9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgIDxlMT4KKyAgICAgIDxlMiB4bWxucz0iIj4KKyAgICAgICAgIDxlMyBpZD0iRTMiLz4KKyAgICAgIDwvZTI+CisgICA8L2UxPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNy54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvZXhhbXBsZS03LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZGRiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL2V4YW1wbGUtNy54cGF0aApAQCAtMCwwICsxLDEwIEBACis8WFBhdGggeG1sbnM6aWV0Zj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgPgorICAgICgvLy58Ly9AKnwvL25hbWVzcGFjZTo6KikKKyAgICBbCisJc2VsZjo6aWV0ZjplMQorCSAgICBvcgorCShwYXJlbnQ6OmlldGY6ZTEgYW5kIG5vdChzZWxmOjp0ZXh0KCkgb3Igc2VsZjo6ZTIpKQorCSAgICBvcgorCWNvdW50KGlkKCJFMyIpfGFuY2VzdG9yLW9yLXNlbGY6Om5vZGUoKSkgPSBjb3VudChhbmNlc3Rvci1vci1zZWxmOjpub2RlKCkpCisgICAgXQorPC9YUGF0aD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL3dvcmxkLnR4dCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGgtY29tbWVudHMvd29ybGQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ZmVhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRoLWNvbW1lbnRzL3dvcmxkLnR4dApAQCAtMCwwICsxIEBACit3b3JsZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZG9jLmR0ZCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZG9jLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDYwMjM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9kb2MuZHRkCkBAIC0wLDAgKzEgQEAKKzwhLS0gRW1wdHkgRFREIC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDQ1MGM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTEueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8P3htbC1zdHlsZXNoZWV0ICAgaHJlZj0iZG9jLnhzbCIKKyAgIHR5cGU9InRleHQveHNsIiAgID8+CisKKzwhRE9DVFlQRSBkb2MgU1lTVEVNICJkb2MuZHRkIj4KKworPGRvYz5IZWxsbywgd29ybGQhPCEtLSBDb21tZW50IDEgLS0+PC9kb2M+CisKKzw/cGktd2l0aG91dC1kYXRhICAgICA/PgorCis8IS0tIENvbW1lbnQgMiAtLT4KKworPCEtLSBDb21tZW50IDMgLS0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRlZWVhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS0yLnhtbApAQCAtMCwwICsxLDExIEBACis8ZG9jPgorICAgPGNsZWFuPiAgIDwvY2xlYW4+CisgICA8ZGlydHk+ICAgQSAgIEIgICA8L2RpcnR5PgorICAgPG1peGVkPgorICAgICAgQQorICAgICAgPGNsZWFuPiAgIDwvY2xlYW4+CisgICAgICBCCisgICAgICA8ZGlydHk+ICAgQSAgIEIgICA8L2RpcnR5PgorICAgICAgQworICAgPC9taXhlZD4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3YTE5NTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtMy54bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGRvYyBbPCFBVFRMSVNUIGU5IGF0dHIgQ0RBVEEgImRlZmF1bHQiPl0+Cis8ZG9jPgorICAgPGUxICAgLz4KKyAgIDxlMiAgID48L2UyPgorICAgPGUzICAgIG5hbWUgPSAiZWxlbTMiICAgaWQ9ImVsZW0zIiAgICAvPgorICAgPGU0ICAgIG5hbWU9ImVsZW00IiAgIGlkPSJlbGVtNCIgICAgPjwvZTQ+CisgICA8ZTUgYTphdHRyPSJvdXQiIGI6YXR0cj0ic29ydGVkIiBhdHRyMj0iYWxsIiBhdHRyPSJJJ20iCisgICAgICAgeG1sbnM6Yj0iaHR0cDovL3d3dy5pZXRmLm9yZyIgCisgICAgICAgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciCisgICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudXZpYy5jYSIvPgorICAgPGU2IHhtbG5zPSIiIHhtbG5zOmE9Imh0dHA6Ly93d3cudzMub3JnIj4KKyAgICAgICA8ZTcgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciPgorICAgICAgICAgICA8ZTggeG1sbnM9IiIgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciPgorICAgICAgICAgICAgICAgPGU5IHhtbG5zPSIiIHhtbG5zOmE9Imh0dHA6Ly93d3cuaWV0Zi5vcmciLz4KKyAgICAgICAgICAgPC9lOD4KKyAgICAgICA8L2U3PgorICAgPC9lNj4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYmExMzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNC54bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgZG9jIFs8IUFUVExJU1Qgbm9ybUlkIGlkIElEICNJTVBMSUVEPl0+Cis8ZG9jPgorICAgPHRleHQ+Rmlyc3QgbGluZSYjeDBkOyYjMTA7U2Vjb25kIGxpbmU8L3RleHQ+CisgICA8dmFsdWU+JiN4MzI7PC92YWx1ZT4KKyAgIDxjb21wdXRlPjwhW0NEQVRBW3ZhbHVlPiIwIiAmJiB2YWx1ZTwiMTAiID8idmFsaWQiOiJlcnJvciJdXT48L2NvbXB1dGU+CisgICA8Y29tcHV0ZSBleHByPSd2YWx1ZT4iMCIgJmFtcDsmYW1wOyB2YWx1ZSZsdDsiMTAiID8idmFsaWQiOiJlcnJvciInPnZhbGlkPC9jb21wdXRlPgorICAgPG5vcm0gYXR0cj0nICZhcG9zOyAgICYjeDIwOyYjMTM7JiN4YTsmIzk7ICAgJmFwb3M7ICcvPgorICAgPG5vcm1JZCBpZD0nICZhcG9zOyAgICYjeDIwOyYjMTM7JiN4YTsmIzk7ICAgJmFwb3M7ICcvPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJjNTMyMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS01LnhtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgZG9jIFsKKzwhQVRUTElTVCBkb2MgYXR0ckV4dEVudCBFTlRJVFkgI0lNUExJRUQ+Cis8IUVOVElUWSBlbnQxICJIZWxsbyI+Cis8IUVOVElUWSBlbnQyIFNZU1RFTSAid29ybGQudHh0Ij4KKzwhRU5USVRZIGVudEV4dCBTWVNURU0gImVhcnRoLmdpZiIgTkRBVEEgZ2lmPgorPCFOT1RBVElPTiBnaWYgU1lTVEVNICJ2aWV3Z2lmLmV4ZSI+CitdPgorPGRvYyBhdHRyRXh0RW50PSJlbnRFeHQiPgorICAgJmVudDE7LCAmZW50MjshCis8L2RvYz4KKworPCEtLSBMZXQgd29ybGQudHh0IGNvbnRhaW4gIndvcmxkIiAoZXhjbHVkaW5nIHRoZSBxdW90ZXMpIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTYueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZTIwNzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNi54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8ZG9jPiYjMTY5OzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMTcxY2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL2V4YW1wbGUtNy54bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGRvYyBbCis8IUFUVExJU1QgZTIgeG1sOnNwYWNlIChkZWZhdWx0fHByZXNlcnZlKSAncHJlc2VydmUnPgorPCFBVFRMSVNUIGUzIGlkIElEICNJTVBMSUVEPgorXT4KKzxkb2MgeG1sbnM9Imh0dHA6Ly93d3cuaWV0Zi5vcmciIHhtbG5zOnczYz0iaHR0cDovL3d3dy53My5vcmciPgorICAgPGUxPgorICAgICAgPGUyIHhtbG5zPSIiPgorICAgICAgICAgPGUzIGlkPSJFMyIvPgorICAgICAgPC9lMj4KKyAgIDwvZTE+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS03LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9leGFtcGxlLTcueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRkZGIwOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvZXhhbXBsZS03LnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzxYUGF0aCB4bWxuczppZXRmPSJodHRwOi8vd3d3LmlldGYub3JnIiA+CisgICAgKC8vLnwvL0AqfC8vbmFtZXNwYWNlOjoqKQorICAgIFsKKwlzZWxmOjppZXRmOmUxCisJICAgIG9yCisJKHBhcmVudDo6aWV0ZjplMSBhbmQgbm90KHNlbGY6OnRleHQoKSBvciBzZWxmOjplMikpCisJICAgIG9yCisJY291bnQoaWQoIkUzIil8YW5jZXN0b3Itb3Itc2VsZjo6bm9kZSgpKSA9IGNvdW50KGFuY2VzdG9yLW9yLXNlbGY6Om5vZGUoKSkKKyAgICBdCis8L1hQYXRoPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAwLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAwLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTRjOWQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDAueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpSb290IHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIiB4bWw6bGFuZz0iZW4taWUiPgorICA8YmFyOlNvbWV0aGluZz4KKyAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgIDxiYXI6U29tZXRoaW5nPgorICAgICAgICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgICAgICA8YmF6OlNvbWV0aGluZyAvPgorICAgICAgICAgICA8L2ZvbzpTb21ldGhpbmc+CisgICAgICAgIDwvYmFyOlNvbWV0aGluZz4KKyAgICAgPC9mb286U29tZXRoaW5nPgorICA8L2JhcjpTb21ldGhpbmc+Cis8L2ZvbzpSb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDAueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMC54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTdiNjZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDAueHBhdGgKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gZXZlcnl0aGluZyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZworICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0YzlkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAxLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAxLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDEueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVhMjc5NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAxLnhwYXRoCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBvbmx5IHRleHQsIGVsZW1lbnRzIG9yIGRpcmVjdGx5LXVzZWQgbmFtZXNwYWNlIG5vZGVzIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgKChuYW1lKCkgIT0gImJhciIpIG9yIHBhcmVudDo6YmFyOlNvbWV0aGluZykgIGFuZAorICAgICAgICAgICAgICAoKG5hbWUoKSAhPSAiZm9vIikgb3IgcGFyZW50Ojpmb286U29tZXRoaW5nKSAgYW5kCisgICAgICAgICAgICAgICgobmFtZSgpICE9ICJiYXoiKSBvciBwYXJlbnQ6OmJhejpTb21ldGhpbmcpICBhbmQKKyAgICAgICAgICAgICAgKChuYW1lKCkgIT0gIiIpIG9yIHNlbGY6OnRleHQoKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMi54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOlJvb3QgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbDpsYW5nPSJlbi1pZSI+CisgIDxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIC8+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KKzwvZm9vOlJvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMi54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAyLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZDY1ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMi54cGF0aApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gb25seSB0ZXh0LCBlbGVtZW50cyBvciBkaXJlY3RseS11c2VkIG5hbWVzcGFjZSBub2RlcyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChzZWxmOjp0ZXh0KCkgIG9yCisgICAgICAgICAgICAgICAobmFtZXNwYWNlLXVyaSgpICE9ICIiKSAgb3IKKyAgICAgICAgICAgICAgIChzdHJpbmcoc2VsZjo6bm9kZSgpKSA9IG5hbWVzcGFjZS11cmkocGFyZW50Ojpub2RlKCkpKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMy54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOlJvb3QgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbDpsYW5nPSJlbi1pZSI+CisgIDxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIC8+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KKzwvZm9vOlJvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMy54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTAzLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkOGFlNjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wMy54cGF0aApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gb25seSB0ZXh0LCBlbGVtZW50cywgb3IgZGlyZWN0bHktdXNlZCBuYW1lc3BhY2Ugbm9kZXMgYnV0IG5vdCBmb286U29tZXRoaW5nIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgbm90IChzZWxmOjpmb286U29tZXRoaW5nKSAgYW5kCisgICAgICAgICAgICAgIChzZWxmOjp0ZXh0KCkgIG9yCisgICAgICAgICAgICAgICAobmFtZXNwYWNlLXVyaSgpICE9ICIiKSAgb3IKKyAgICAgICAgICAgICAgIChzdHJpbmcoc2VsZjo6bm9kZSgpKSA9IG5hbWVzcGFjZS11cmkocGFyZW50Ojpub2RlKCkpKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNC54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOlJvb3QgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbDpsYW5nPSJlbi1pZSI+CisgIDxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIC8+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KKzwvZm9vOlJvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA0LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMDE3MGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNC54cGF0aApAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gbm8gbmFtZXNwYWNlIG5vZGVzOyBJIGFtIG5vdCBpbiBteSBwYXJlbnQncyBuYW1lc3BhY2UgYXhpcyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChjb3VudChwYXJlbnQ6Om5vZGUoKS9uYW1lc3BhY2U6OiopICAhPQorICAgICAgICAgICAgICAgY291bnQocGFyZW50Ojpub2RlKCkvbmFtZXNwYWNlOjoqIHwgc2VsZjo6bm9kZSgpKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNS54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOlJvb3QgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbDpsYW5nPSJlbi1pZSI+CisgIDxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIC8+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KKzwvZm9vOlJvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNS54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA1LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MzI4OTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNS54cGF0aApAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gbm8gbmFtZXNwYWNlIG5vZGVzOyBJIGFtIHRleHQgb3IgaGF2ZSBub25lbXB0eSBuYW1lc3BhY2UgVVJJIC0tPgorICAgICAgICAgICAgICBhbmNlc3Rvci1vci1zZWxmOjpiYXI6U29tZXRoaW5nICBhbmQKKyAgICAgICAgICAgICAgKHNlbGY6OnRleHQoKSAgb3IKKyAgICAgICAgICAgICAgIChuYW1lc3BhY2UtdXJpKCkgIT0gIiIpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0YzlkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA2LnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA2LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDYueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU2NTg5ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA2LnhwYXRoCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFhQYXRoIHhtbG5zOmJhcj0iaHR0cDovL2V4YW1wbGUub3JnL2JhciIgeG1sbnM6YmF6PSJodHRwOi8vZXhhbXBsZS5vcmcvYmF6IiB4bWxuczpmb289Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28iIHhtbDpsYW5nPSJlbi1pZSI+CisgICAgKC8vLiB8IC8vQCogfCAvL25hbWVzcGFjZTo6KikgCisgICAgWyAKKyAgICAgICAgICAgICAgPCEtLSBvbmx5IG5hbWVzcGFjZSBub2RlcyAtLT4KKyAgICAgICAgICAgICAgYW5jZXN0b3Itb3Itc2VsZjo6YmFyOlNvbWV0aGluZyAgYW5kCisgICAgICAgICAgICAgIChjb3VudChwYXJlbnQ6Om5vZGUoKS9uYW1lc3BhY2U6OiopICA9CisgICAgICAgICAgICAgICBjb3VudChwYXJlbnQ6Om5vZGUoKS9uYW1lc3BhY2U6OiogfCBzZWxmOjpub2RlKCkpKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wNy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0YzlkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA3LnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Um9vdCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgPGJhcjpTb21ldGhpbmc+CisgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICA8YmFyOlNvbWV0aGluZz4KKyAgICAgICAgICAgPGZvbzpTb21ldGhpbmc+CisgICAgICAgICAgICAgPGJhejpTb21ldGhpbmcgLz4KKyAgICAgICAgICAgPC9mb286U29tZXRoaW5nPgorICAgICAgICA8L2JhcjpTb21ldGhpbmc+CisgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgPC9iYXI6U29tZXRoaW5nPgorPC9mb286Um9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA3LnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDcueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRjYTUyOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA3LnhwYXRoCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8WFBhdGggeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sOmxhbmc9ImVuLWllIj4KKyAgICAoLy8uIHwgLy9AKiB8IC8vbmFtZXNwYWNlOjoqKSAKKyAgICBbIAorICAgICAgICAgICAgICA8IS0tIG9ubHkgZGlyZWN0bHktdXNlZCBuYW1lc3BhY2Ugbm9kZXMgLS0+CisgICAgICAgICAgICAgIGFuY2VzdG9yLW9yLXNlbGY6OmJhcjpTb21ldGhpbmcgIGFuZAorICAgICAgICAgICAgICAoc3RyaW5nKHNlbGY6Om5vZGUoKSkgPSBuYW1lc3BhY2UtdXJpKHBhcmVudDo6bm9kZSgpKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDgueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy9tZXJsaW4tYzE0bi10d28tMDgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNGM5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOC54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOlJvb3QgeG1sbnM6YmFyPSJodHRwOi8vZXhhbXBsZS5vcmcvYmFyIiB4bWxuczpiYXo9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXoiIHhtbG5zOmZvbz0iaHR0cDovL2V4YW1wbGUub3JnL2ZvbyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZy8iIHhtbDpsYW5nPSJlbi1pZSI+CisgIDxiYXI6U29tZXRoaW5nPgorICAgICA8Zm9vOlNvbWV0aGluZz4KKyAgICAgICAgPGJhcjpTb21ldGhpbmc+CisgICAgICAgICAgIDxmb286U29tZXRoaW5nPgorICAgICAgICAgICAgIDxiYXo6U29tZXRoaW5nIC8+CisgICAgICAgICAgIDwvZm9vOlNvbWV0aGluZz4KKyAgICAgICAgPC9iYXI6U29tZXRoaW5nPgorICAgICA8L2ZvbzpTb21ldGhpbmc+CisgIDwvYmFyOlNvbWV0aGluZz4KKzwvZm9vOlJvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOC54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvbWVybGluLWMxNG4tdHdvLTA4LnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZmRkM2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL21lcmxpbi1jMTRuLXR3by0wOC54cGF0aApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxYUGF0aCB4bWxuczpiYXI9Imh0dHA6Ly9leGFtcGxlLm9yZy9iYXIiIHhtbG5zOmJhej0iaHR0cDovL2V4YW1wbGUub3JnL2JheiIgeG1sbnM6Zm9vPSJodHRwOi8vZXhhbXBsZS5vcmcvZm9vIiB4bWw6bGFuZz0iZW4taWUiPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopIAorICAgIFsgCisgICAgICAgICAgICAgIDwhLS0gbm8gbmFtZXNwYWNlIG5vZGVzIGJ1dCB0aGUgZGVmYXVsdCBvbiBhbHRlcm5hdGUgZWxlbWVudHMgLS0+CisgICAgICAgICAgICAgIGFuY2VzdG9yLW9yLXNlbGY6OmJhcjpTb21ldGhpbmcgIGFuZAorICAgICAgICAgICAgICAoc2VsZjo6dGV4dCgpICBvcgorICAgICAgICAgICAgICAgKG5hbWVzcGFjZS11cmkoKSAhPSAiIikgIG9yCisgICAgICAgICAgICAgICAoKG5hbWUoKSA9ICIiKSAgYW5kCisgICAgICAgICAgICAgICAgKChjb3VudChhbmNlc3Rvci1vci1zZWxmOjpub2RlKCkpIG1vZCAyKSA9IDEpKSkKKyAgICBdCis8L1hQYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMWY5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMC54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBlbnZlbG9wZSBbCisgIDwhRU5USVRZIGRzaWcgImh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPgorICA8IUVOVElUWSBjMTRuICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSI+CisgIDwhRU5USVRZIHhwYXRoICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiI+CisgIDwhRU5USVRZIHhzbHQgImh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhzbHQtMTk5OTExMTYiPgorICA8IUFUVExJU1QgTm90YXJpZXMgSWQgSUQgI0lNUExJRUQ+CitdPgorPE9iamVjdCBJZD0ib2JqZWN0LTEiIE1pbWVUeXBlPSJ0ZXh0L3BsYWluIj5JIGFtIHRoZSB0ZXh0LjwvT2JqZWN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTAueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMC54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmNhN2JmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTAueHBhdGgKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZW52ZWxvcGUgWworICA8IUVOVElUWSBkc2lnICJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KKyAgPCFFTlRJVFkgYzE0biAiaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiPgorICA8IUVOVElUWSB4cGF0aCAiaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYiPgorICA8IUVOVElUWSB4c2x0ICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14c2x0LTE5OTkxMTE2Ij4KKyAgPCFBVFRMSVNUIE5vdGFyaWVzIElkIElEICNJTVBMSUVEPgorXT4KKzxYUGF0aD4KKyAgICAoLy8ufC8vQCp8Ly9uYW1lc3BhY2U6OiopCisgICAgWworCXNlbGY6OnRleHQoKQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE1NjYxNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0xLnhtbApAQCAtMCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBlbnZlbG9wZSBbCisgIDwhRU5USVRZIGRzaWcgImh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPgorICA8IUVOVElUWSBjMTRuICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSI+CisgIDwhRU5USVRZIHhwYXRoICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiI+CisgIDwhRU5USVRZIHhzbHQgImh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhzbHQtMTk5OTExMTYiPgorICA8IUFUVExJU1QgTm90YXJpZXMgSWQgSUQgI0lNUExJRUQ+CitdPgorICAgIDxTaWduYXR1cmUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIElkPSJzaWduYXR1cmUiPgorICAgICAgPE9iamVjdCBJZD0ib2JqZWN0LTQiPgorICAgICAgICA8WDUwOURhdGE+CisgICAgICAgICAgPFg1MDlTdWJqZWN0TmFtZT4KKyAgICAgICAgICAgIENOPU1lcmxpbiBIdWdoZXMsTz1CYWx0aW1vcmUgVGVjaG5vbG9naWVzXCwgTHRkLixTVD1EdWJsaW4sQz1JRQorICAgICAgICAgIDwvWDUwOVN1YmplY3ROYW1lPgorICAgICAgICAgIDxYNTA5SXNzdWVyU2VyaWFsPgorICAgICAgICAgICAgPFg1MDlJc3N1ZXJOYW1lPgorICAgICAgICAgICAgICBDTj1UZXN0IERTQSBDQSxPPUJhbHRpbW9yZSBUZWNobm9sb2dpZXNcLCBMdGQuLFNUPUR1YmxpbixDPUlFCisgICAgICAgICAgICA8L1g1MDlJc3N1ZXJOYW1lPgorICAgICAgICAgICAgPFg1MDlTZXJpYWxOdW1iZXI+OTcwODQ5OTM2PC9YNTA5U2VyaWFsTnVtYmVyPgorICAgICAgICAgIDwvWDUwOUlzc3VlclNlcmlhbD4KKyAgICAgICAgICA8WDUwOUNlcnRpZmljYXRlPgorICAgICAgICAgICAgTUlJRE56Q0NBdldnQXdJQkFnSUVPZDMra0RBSkJnY3Foa2pPT0FRRE1Gc3hDekFKQmdOVkJBWVRBa2xGTVE4dworICAgICAgICAgICAgRFFZRFZRUUlFd1pFZFdKc2FXNHhKVEFqQmdOVkJBb1RIRUpoYkhScGJXOXlaU0JVWldOb2JtOXNiMmRwWlhNcworICAgICAgICAgICAgSUV4MFpDNHhGREFTQmdOVkJBTVRDMVJsYzNRZ1JGTkJJRU5CTUI0WERUQXdNVEF3TmpFMk16SXhOVm9YRFRBeAorICAgICAgICAgICAgTVRBd05qRTJNekl4TkZvd1hURUxNQWtHQTFVRUJoTUNTVVV4RHpBTkJnTlZCQWdUQmtSMVlteHBiakVsTUNNRworICAgICAgICAgICAgQTFVRUNoTWNRbUZzZEdsdGIzSmxJRlJsWTJodWIyeHZaMmxsY3l3Z1RIUmtMakVXTUJRR0ExVUVBeE1OVFdWeQorICAgICAgICAgICAgYkdsdUlFaDFaMmhsY3pDQ0FiWXdnZ0VyQmdjcWhrak9PQVFCTUlJQkhnS0JnUURhSmpmRFRyYXdNSGY4TWlVdAorICAgICAgICAgICAgWTU0YjM3aFNtWU5uUjNLcEdUMTB1VTFEcXBwY2p1MDZ1TjBpR2JxZjk0N0Rqa0JDMjVoS25xeWtLMzF4QncwRQorICAgICAgICAgICAgQ1BiWXEvS0M5OGtnaGRmMnhKQ3U2QjhhcUo5NUs5amRWZmxKM1dQN1BReEpuK2ZtTTIzenk2SFlMWFZJQ3BmcQorICAgICAgICAgICAgZXRkTmovVkhDU2haRTNiZEppRTZWb2JTRlFJVkFQUWVjcVMyUGFURHByY1Fua3d4NE1IVFJYaHJBb0dBTXVHQQorICAgICAgICAgICAgbHFlQjFheCt2eU8yK09zdWJqaGw3cEh4THU0N1JJSCsvTTUyRGpFU0E5S01Tcnd6c1l4OHlOUjJXb29CeXJFMAorICAgICAgICAgICAgdDZmdTBWbmNLN1VLOG9sTzR0N3dwdjJ6NEFGUVBSVkNLRndvMHFnbjVhS0lrSUNHTWxyUnk4MWF2YjI3d0djVworICAgICAgICAgICAgb3RoeDNpUFBNdEZYdG9EcUswSkl0YUk5Ujh6YzFtc0ZoTTFHS01ZRGdZUUFBb0dBY3RBOFlHeHJ0bmdnL3pLVgorICAgICAgICAgICAgdnFFT2VmbndtVmlGenRjblBCWVBsSnN2aDZ5S0k0aURtNjhmbnA0TWkzUnJKNmJaQXlnRnJVSVFMeExqVitPSgorICAgICAgICAgICAgdGdKQUV0bzB4QXMrTWVodXExRGtTRkVwUDNvRHpDVE9zck9pUzFEd1FlNG9JYjd6VmsvOWw3YVB0Sk1IVzBMVgorICAgICAgICAgICAgbE1kd1pORk5OSm9xTWNUMlpmQ1ByZnZZdlEyalJ6QkZNQjRHQTFVZEVRUVhNQldCRTIxbGNteHBia0JpWVd4MAorICAgICAgICAgICAgYVcxdmNtVXVhV1V3RGdZRFZSMFBBUUgvQkFRREFnZUFNQk1HQTFVZEl3UU1NQXFBQ0VKWlFHMEt3UmJQTUFrRworICAgICAgICAgICAgQnlxR1NNNDRCQU1ETVFBd0xnSVZBSzRza1dFRllncmdnYUpBOHZZQXdTamcxMitLQWhVQXdIVG83d2Q0dEVOdworICAgICAgICAgICAgOUxBS1BrbFEvNzRmSDE4PQorICAgICAgICAgIDwvWDUwOUNlcnRpZmljYXRlPgorICAgICAgICA8L1g1MDlEYXRhPgorICAgICAgPC9PYmplY3Q+CisgICAgPC9TaWduYXR1cmU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTEueHBhdGggYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMS54cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzExZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTEueHBhdGgKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgZW52ZWxvcGUgWworICA8IUVOVElUWSBkc2lnICJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KKyAgPCFFTlRJVFkgYzE0biAiaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiPgorICA8IUVOVElUWSB4cGF0aCAiaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYiPgorICA8IUVOVElUWSB4c2x0ICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14c2x0LTE5OTkxMTE2Ij4KKyAgPCFBVFRMSVNUIE5vdGFyaWVzIElkIElEICNJTVBMSUVEPgorXT4KKzxYUGF0aCB4bWxuczpkc2lnPSImZHNpZzsiPgorICAgICgvLy58Ly9AKnwvL25hbWVzcGFjZTo6KikKKyAgICBbCisJYW5jZXN0b3Itb3Itc2VsZjo6ZHNpZzpYNTA5RGF0YQorICAgIF0KKzwvWFBhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZkYTQ5ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0yLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPG4wOmxvY2FsIHhtbG5zOm4wPSJmb286Ly9iYXIiIHhtbG5zOm4zPSJmdHA6Ly9leGFtcGxlLm9yZyI+CisgICAgPG4xOmVsZW0yIHhtbG5zOm4xPSJodHRwOi8vZXhhbXBsZS5uZXQiIHhtbDpsYW5nPSJlbiI+CisJPG4zOnN0dWZmIHhtbG5zOm4zPSJmdHA6Ly9leGFtcGxlLm9yZyIvPgorICAgIDwvbjE6ZWxlbTI+Cis8L24wOmxvY2FsPgorCQkgICAgICAKKwkJCSAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0yLnhwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy90ZXN0LTIueHBhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY1M2JjMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0yLnhwYXRoCkBAIC0wLDAgKzEsOCBAQAorCis8WFBhdGggeG1sbnM6bjE9Imh0dHA6Ly9leGFtcGxlLm5ldCIgPgorICAgICgvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopCisgICAgWworCWFuY2VzdG9yLW9yLXNlbGY6Om4xOmVsZW0yCisgICAgXQorPC9YUGF0aD4KKyAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdjNDJkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0zLnhtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgZG9jIFs8IUFUVExJU1QgZTkgYXR0ciBDREFUQSAiZGVmYXVsdCI+XT4KKzxkb2MgeG1sbnM6Zm9vPSJodHRwOi8vd3d3LmJhci5vcmciIHhtbDpiYXNlPSJodHRwOi8vd3d3LmV4YW1wbGUub3JnLzIwMDIvIj4KKyAgIDxlMSAgIC8+CisgICA8ZTIgICA+PC9lMj4KKyAgIDxlMyAgICBuYW1lID0gImVsZW0zIiAgIGlkPSJlbGVtMyIgICAgLz4KKyAgIDxlNCAgICBuYW1lPSJlbGVtNCIgICBpZD0iZWxlbTQiICAgID48L2U0PgorICAgPGU1IGE6YXR0cj0ib3V0IiBiOmF0dHI9InNvcnRlZCIgYXR0cjI9ImFsbCIgYXR0cj0iSSdtIgorICAgICAgIHhtbG5zOmI9Imh0dHA6Ly93d3cuaWV0Zi5vcmciCisgICAgICAgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciCisgICAgICAgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZyIvPgorICAgPGU2IHhtbG5zPSIiIHRlc3Q9Ii4uL2JheiIgeG1sbnM6YT0iaHR0cDovL3d3dy53My5vcmciPgorICAgICAgIDxlNyB4bWxucz0iaHR0cDovL3d3dy5pZXRmLm9yZyI+CisgICAgICAgICAgIDxlOCB4bWxucz0iIiB4bWxuczphPSJodHRwOi8vd3d3LnczLm9yZyIgYTpmb289ImJhciI+CisgICAgICAgICAgICAgICA8ZTkgeG1sbnM9IiIgeG1sbnM6YT0iaHR0cDovL3d3dy5pZXRmLm9yZyIvPgorICAgICAgICAgICA8L2U4PgorICAgICAgIDwvZTc+CisgICA8L2U2PgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMy54cGF0aCBiL2xpYnhtbDItMi43LjcvdGVzdC9jMTRuL3dpdGhvdXQtY29tbWVudHMvdGVzdC0zLnhwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhYTAwNzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3Rlc3QtMy54cGF0aApAQCAtMCwwICsxLDMgQEAKKzxYUGF0aD4KKygvLy4gfCAvL0AqIHwgLy9uYW1lc3BhY2U6OiopW2FuY2VzdG9yLW9yLXNlbGY6OmU2XSAKKzwvWFBhdGg+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy93b3JsZC50eHQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvYzE0bi93aXRob3V0LWNvbW1lbnRzL3dvcmxkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGZlYTA2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2MxNG4vd2l0aG91dC1jb21tZW50cy93b3JsZC50eHQKQEAgLTAsMCArMSBAQAord29ybGQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3MvY2F0YWwuc2NyaXB0IGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL2NhdGFsLnNjcmlwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzY0NGQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL2NhdGFsLnNjcmlwdApAQCAtMCwwICsxLDQgQEAKK3B1YmxpYyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBDQUxTIFRhYmxlIE1vZGVsIFY0LjEvL0VOIgorcHVibGljICItLy9EYXZlbnBvcnQvL0RURCBEb2NCb29rIFYzLjAvL0VOIgorcHVibGljICItLy9PQVNJUy8vRFREIFhNTCBFeGNoYW5nZSBUYWJsZSBNb2RlbCAxOTk5MDMxNS8vRU4iCitwdWJsaWMgIi0vL0RhdmVucG9ydC8vRU5USVRJRVMgRG9jQm9vayBBZGRpdGlvbmFsIEdlbmVyYWwgRW50aXRpZXMgVjMuMC8vRU4iCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3MvY2F0YWwuc2dtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9jYXRhbC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzZmMyYzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3MvY2F0YWwuc2dtbApAQCAtMCwwICsxLDIgQEAKK0NBVEFMT0cgY2F0YWwxLnNnbWwKK0NBVEFMT0cgY2F0YWwyLnNnbWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9jYXRhbDEuc2dtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9jYXRhbDEuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODMxOWNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL2NhdGFsMS5zZ21sCkBAIC0wLDAgKzEgQEAKK0NBVEFMT0cgY2F0YWwzLnNnbWwKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9jYXRhbDIuc2dtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9jYXRhbDIuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjRjZjhjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL2NhdGFsMi5zZ21sCkBAIC0wLDAgKzEsNCBAQAorUFVCTElDICItLy9EYXZlbnBvcnQvL0RURCBEb2NCb29rIFYzLjAvL0VOIiAiZG9jYm9vay5kdGQiCitQVUJMSUMgIi0vL1VTQS1ET0QvL0RURCBUYWJsZSBNb2RlbCA5NTEwMTAvL0VOIiAiY2Fscy10YmwuZHRkIgorUFVCTElDICItLy9EYXZlbnBvcnQvL0VMRU1FTlRTIERvY0Jvb2sgSW5mb3JtYXRpb24gUG9vbCBWMy4wLy9FTiIgImRicG9vbC5tb2QiCitQVUJMSUMgIi0vL0RhdmVucG9ydC8vRUxFTUVOVFMgRG9jQm9vayBEb2N1bWVudCBIaWVyYXJjaHkgVjMuMC8vRU4iICJkYmhpZXIubW9kIlBVQkxJQyAiLS8vRGF2ZW5wb3J0Ly9FTlRJVElFUyBEb2NCb29rIEFkZGl0aW9uYWwgR2VuZXJhbCBFbnRpdGllcyBWMy4wLy9FTiIgImRiZ2VuZW50Lm1vZCIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9jYXRhbDMuc2dtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9jYXRhbDMuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjU0NzI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL2NhdGFsMy5zZ21sCkBAIC0wLDAgKzEsOCBAQAorUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIENBTFMgVGFibGUgTW9kZWwgVjQuMS8vRU4iICJjYWxzdGJseC5kdGQiCitQVUJMSUMgIi0vL09BU0lTLy9EVEQgWE1MIEV4Y2hhbmdlIFRhYmxlIE1vZGVsIDE5OTkwMzE1Ly9FTiIgInNvZXh0Ymx4LmR0ZCIKK1BVQkxJQyAiLS8vT0FTSVMvL0VMRU1FTlRTIERvY0Jvb2sgWE1MIEluZm9ybWF0aW9uIFBvb2wgVjQuMS8vRU4iICJkYnBvb2wubW9kIgorUFVCTElDICItLy9PQVNJUy8vRUxFTUVOVFMgRG9jQm9vayBYTUwgRG9jdW1lbnQgSGllcmFyY2h5IFY0LjEvL0VOIiAiZGJoaWVyLm1vZCJQVUJMSUMgIi0vL09BU0lTLy9FTlRJVElFUyBEb2NCb29rIFhNTCBBZGRpdGlvbmFsIEdlbmVyYWwgRW50aXRpZXMgVjQuMS8vRU4iICJkYmdlbmVudC5tb2QiCitQVUJMSUMgIi0vL09BU0lTLy9FTlRJVElFUyBEb2NCb29rIFhNTCBOb3RhdGlvbnMgVjQuMS8vRU4iICJkYm5vdG4ubW9kIgorUFVCTElDICItLy9PQVNJUy8vRU5USVRJRVMgRG9jQm9vayBYTUwgQ2hhcmFjdGVyIEVudGl0aWVzIFY0LjEvL0VOIiAiZGJjZW50Lm1vZCIKKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3MvZG9jYm9vay5zY3JpcHQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3MvZG9jYm9vay5zY3JpcHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFhMDZiMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9kb2Nib29rLnNjcmlwdApAQCAtMCwwICsxLDUgQEAKK3Jlc29sdmUgdG90byBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RicG9vbHgubW9kCitwdWJsaWMgIi0vL09BU0lTLy9FTlRJVElFUyBEb2NCb29rIFhNTCBDaGFyYWN0ZXIgRW50aXRpZXMgVjQuMS4yLy9FTiIKK3N5c3RlbSB1cm46cHVibGljaWQ6LTpPQVNJUzpEVEQrRG9jQm9vaytYTUwrVjQuMS4yOkVOCitwdWJsaWMgdXJuOnB1YmxpY2lkOi06T0FTSVM6RFREK0RvY0Jvb2srWE1MK1Y0LjEuMjpFTgorcmVzb2x2ZSB0b3RvIHRvdG8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9kb2Nib29rLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGRkMmJmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL2RvY2Jvb2sueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCI+Cis8Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyI+Cis8cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiLz4KKzxwdWJsaWMgcHVibGljSWQ9Ii0vL09BU0lTLy9FTlRJVElFUyBEb2NCb29rIFhNTCBOb3RhdGlvbnMgVjQuMS4yLy9FTiIgdXJpPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2Ribm90bngubW9kIi8+Cis8cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRU5USVRJRVMgRG9jQm9vayBYTUwgQ2hhcmFjdGVyIEVudGl0aWVzIFY0LjEuMi8vRU4iIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYmNlbnR4Lm1vZCIvPgorPHB1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0VMRU1FTlRTIERvY0Jvb2sgWE1MIEluZm9ybWF0aW9uIFBvb2wgVjQuMS4yLy9FTiIgdXJpPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RicG9vbHgubW9kIi8+Cis8cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRUxFTUVOVFMgRG9jQm9vayBYTUwgRG9jdW1lbnQgSGllcmFyY2h5IFY0LjEuMi8vRU4iIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYmhpZXJ4Lm1vZCIvPgorPHB1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0VOVElUSUVTIERvY0Jvb2sgWE1MIEFkZGl0aW9uYWwgR2VuZXJhbCBFbnRpdGllcyBWNC4xLjIvL0VOIiB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZGJnZW5lbnQubW9kIi8+Cis8cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIENBTFMgVGFibGUgTW9kZWwgVjQuMS4yLy9FTiIgdXJpPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2NhbHN0Ymx4LmR0ZCIvPgorPHB1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0RURCBEb2NCb29rIE1hdGhNTCBNb2R1bGUgVjEuMC8vRU4iIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC9tYXRobWwvMS4wL2RibWF0aG1sLmR0ZCIvPgorPG5leHRDYXRhbG9nIGNhdGFsb2c9InN0eWxlc2hlZXQueG1sIi8+Cis8cmV3cml0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2svIiByZXdyaXRlUHJlZml4PSIvdXNyL3NoYXJlL3htbC9kb2Nib29rLyIvPgorPC9jYXRhbG9nPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL3JlZ2lzdHJ5LnNjcmlwdCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9yZWdpc3RyeS5zY3JpcHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJiOTQ0YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9yZWdpc3RyeS5zY3JpcHQKQEAgLTAsMCArMSw0IEBACityZXNvbHZlIHRvdG8gaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYnBvb2x4Lm1vZAorcHVibGljICItLy9PQVNJUy8vRU5USVRJRVMgRG9jQm9vayBYTUwgQ2hhcmFjdGVyIEVudGl0aWVzIFY0LjEuMi8vRU4iCitzeXN0ZW0gaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYnBvb2x4Lm1vZAorc3lzdGVtIHVybjpwdWJsaWNpZDotOk9BU0lTOkRURCtEb2NCb29rK1hNTCtWNC4xLjI6RU4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9yZWdpc3RyeS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3MvcmVnaXN0cnkueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYWNjZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3MvcmVnaXN0cnkueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCI+Cis8Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyI+CisKKzxkZWxlZ2F0ZVB1YmxpYyBwdWJsaWNJZFN0YXJ0U3RyaW5nPSItLy9PQVNJUy8vIgorCQljYXRhbG9nPSJvYXNpcy54bWwiLz4KKzxkZWxlZ2F0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnLyIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJvYXNpcy54bWwiLz4KKzxkZWxlZ2F0ZVVSSSB1cmlTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy8iCisgICAgICAgICAgICAgICAgY2F0YWxvZz0ib2FzaXMueG1sIi8+CisKKzxkZWxlZ2F0ZVB1YmxpYyBwdWJsaWNJZFN0YXJ0U3RyaW5nPSItLy9PQVNJUy8vRFREIFhNTCBDYXRhbG9nIC8vIgorCQljYXRhbG9nPSJkb2Nib29rLnhtbCIvPgorPGRlbGVnYXRlUHVibGljIHB1YmxpY0lkU3RhcnRTdHJpbmc9Ii0vL09BU0lTLy9FTlRJVElFUyBEb2NCb29rIFhNTCIKKwkJY2F0YWxvZz0iZG9jYm9vay54bWwiLz4KKzxkZWxlZ2F0ZVB1YmxpYyBwdWJsaWNJZFN0YXJ0U3RyaW5nPSItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIgorCQljYXRhbG9nPSJkb2Nib29rLnhtbCIvPgorPGRlbGVnYXRlU3lzdGVtIHN5c3RlbUlkU3RhcnRTdHJpbmc9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay8iCisJCWNhdGFsb2c9ImRvY2Jvb2sueG1sIi8+Cis8ZGVsZWdhdGVVUkkgdXJpU3RhcnRTdHJpbmc9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay8iCisJCWNhdGFsb2c9ImRvY2Jvb2sueG1sIi8+CisKKzwvY2F0YWxvZz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9zdHlsZXNoZWV0LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy9zdHlsZXNoZWV0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjYxMWUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL3N0eWxlc2hlZXQueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBjYXRhbG9nCisgIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiIKKyAgICAgICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3JlbGVhc2UvMS4wL2NhdGFsb2cuZHRkIj4KKzxjYXRhbG9nIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6ZW50aXR5OnhtbG5zOnhtbDpjYXRhbG9nIgorICAgICAgICAgcHJlZmVyPSJwdWJsaWMiPgorCis8IS0tIENpcmN1bXZlbnQgcmVsYXRpdmUgVVJJIGluIHNwZWMueHNsIHRoYXQgZG9lc24ndCB3b3JrIG9ubGluZSAtLT4KKzx1cmkgbmFtZT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZXMvdHIueHNsIgorICAgdXJpPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlcy9lbnRpdHkvc3R5bGVzaGVldHMvYmFzZS90ci54c2wiLz4KKzxwdWJsaWMgcHVibGljSWQ9InRvdG8iIHVyaT0iZmlsZTovLy91c3Ivc2hhcmUveG1sL3RvdG8vdG90by5kdGQiLz4KKzwvY2F0YWxvZz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL3doaXRlcy5zY3JpcHQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3Mvd2hpdGVzLnNjcmlwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjRkZDEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NhdGFsb2dzL3doaXRlcy5zY3JpcHQKQEAgLTAsMCArMSw0IEBACitwdWJsaWMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgQ0FMUyBUYWJsZSBNb2RlbCBWNC4xLy9FTiAiCitwdWJsaWMgIi0vL0RhdmVucG9ydC8vRFREICAgRG9jQm9vayBWMy4wLy9FTiIKK3B1YmxpYyAiIC0vL09BU0lTLy9EVEQgWE1MIEV4Y2hhbmdlIFRhYmxlIE1vZGVsIDE5OTkwMzE1Ly9FTiIKK3B1YmxpYyAiLS8vRGF2ZW5wb3J0Ly9FTlRJVElFUwkJRG9jQm9vayBBZGRpdGlvbmFsIEdlbmVyYWwgRW50aXRpZXMgVjMuMC8vRU4iCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3Mvd2hpdGVzLnNnbWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3Mvd2hpdGVzLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAyNjliNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy93aGl0ZXMuc2dtbApAQCAtMCwwICsxLDUgQEAKK1BVQkxJQyAiIC0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgQ0FMUyBUYWJsZSBNb2RlbCBWNC4xLy9FTiIgImNhbHN0Ymx4LmR0ZCIKK1BVQkxJQyAiLS8vT0FTSVMvL0RURCBYTUwgICBFeGNoYW5nZSBUYWJsZSBNb2RlbCAxOTk5MDMxNS8vRU4gIiAic29leHRibHguZHRkIgorUFVCTElDICItLy9EYXZlbnBvcnQvL0RURCBEb2NCb29rICAKKyAgIFYzLjAvL0VOIiAiZG9jYm9vay5kdGQiCitQVUJMSUMgIi0vL0RhdmVucG9ydC8vRU5USVRJRVMgRG9jQm9vayBBZGRpdGlvbmFsIEdlbmVyYWwgRW50aXRpZXMgVjMuMC8vRU4iICJkYmdlbmVudC5tb2QiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3Mvd2hpdGV4LnNjcmlwdCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy93aGl0ZXguc2NyaXB0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0OWNhMjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3Mvd2hpdGV4LnNjcmlwdApAQCAtMCwwICsxLDcgQEAKK3Jlc29sdmUgInRvdG8gICIgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYnBvb2x4Lm1vZAorcHVibGljICItLy9PQVNJUy8vRU5USVRJRVMJRG9jQm9vayBYTUwgQ2hhcmFjdGVyIEVudGl0aWVzIFY0LjEuMi8vRU4iCitwdWJsaWMgIiAtLy9PQVNJUy8vRU5USVRJRVMgRG9jQm9vayBYTUwgQ2hhcmFjdGVyIEVudGl0aWVzIFY0LjEuMi8vRU4iCitwdWJsaWMgIi0vL09BU0lTLy9FTlRJVElFUyBEb2NCb29rIFhNTCBDaGFyYWN0ZXIgRW50aXRpZXMgVjQuMS4yLy9FTiAiCitzeXN0ZW0gdXJuOnB1YmxpY2lkOistOk9BU0lTOkRURCsrK0RvY0Jvb2srWE1MK1Y0LjEuMjpFTisKK3B1YmxpYyB1cm46cHVibGljaWQ6Ky06T0FTSVM6RFREK0RvY0Jvb2srWE1MKysrVjQuMS4yOkVOKworcmVzb2x2ZSAiCXRvdG8JIiB0b3RvCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3Mvd2hpdGV4LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jYXRhbG9ncy93aGl0ZXgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3NDI4ODcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY2F0YWxvZ3Mvd2hpdGV4LnhtbApAQCAtMCwwICsxLDE1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiIgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiPgorPGNhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciPgorPHB1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIiB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIi8+Cis8cHVibGljIHB1YmxpY0lkPSItLy9PQVNJUy8vRU5USVRJRVMgRG9jQm9vayBYTUwgTm90YXRpb25zIFY0LjEuMi8vRU4iIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYm5vdG54Lm1vZCIvPgorPHB1YmxpYyBwdWJsaWNJZD0iIC0vL09BU0lTLy9FTlRJVElFUwlEb2NCb29rICAKKyAgICBYTUwgQ2hhcmFjdGVyIEVudGl0aWVzIFY0LjEuMi8vRU4gIiB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZGJjZW50eC5tb2QiLz4KKzxwdWJsaWMgcHVibGljSWQ9Ii0vL09BU0lTLy9FTEVNRU5UUyBEb2NCb29rIFhNTCBJbmZvcm1hdGlvbiBQb29sIFY0LjEuMi8vRU4iIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kYnBvb2x4Lm1vZCIvPgorPHB1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0VMRU1FTlRTIERvY0Jvb2sgWE1MIERvY3VtZW50IEhpZXJhcmNoeSBWNC4xLjIvL0VOIiB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZGJoaWVyeC5tb2QiLz4KKzxwdWJsaWMgcHVibGljSWQ9Ii0vL09BU0lTLy9FTlRJVElFUyBEb2NCb29rIFhNTCBBZGRpdGlvbmFsIEdlbmVyYWwgRW50aXRpZXMgVjQuMS4yLy9FTiIgdXJpPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RiZ2VuZW50Lm1vZCIvPgorPHB1YmxpYyBwdWJsaWNJZD0iLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBDQUxTIFRhYmxlIE1vZGVsIFY0LjEuMi8vRU4iIHVyaT0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9jYWxzdGJseC5kdGQiLz4KKzxwdWJsaWMgcHVibGljSWQ9Ii0vL09BU0lTLy9EVEQgRG9jQm9vayBNYXRoTUwgTW9kdWxlIFYxLjAvL0VOIiB1cmk9Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvbWF0aG1sLzEuMC9kYm1hdGhtbC5kdGQiLz4KKzxuZXh0Q2F0YWxvZyBjYXRhbG9nPSJzdHlsZXNoZWV0LnhtbCIvPgorPHJld3JpdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rLyIgcmV3cml0ZVByZWZpeD0iL3Vzci9zaGFyZS94bWwvZG9jYm9vay8iLz4KKzwvY2F0YWxvZz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jZGF0YSBiL2xpYnhtbDItMi43LjcvdGVzdC9jZGF0YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDhjNDc0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NkYXRhCkBAIC0wLDAgKzEsMyBAQAorPGRvYz4KKzwhW0NEQVRBWzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz5dXT4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2NkYXRhMiBiL2xpYnhtbDItMi43LjcvdGVzdC9jZGF0YTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRkYjc5MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jZGF0YTIKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGNvbGxlY3Rpb24+CisgIDx0ZXN0PjwhW0NEQVRBWworICAgIDwhW0NEQVRBW2FiY11dXT5dJmd0OzwhW0NEQVRBWworICBdXT48L3Rlc3Q+Cis8L2NvbGxlY3Rpb24+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY29tbWVudC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY29tbWVudC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThjNWVmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jb21tZW50LnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKzwhLS0gZG9jdW1lbnQgc3RhcnQgLS0+Cis8ZW1wdHkvPgorPCEtLSBkb2N1bWVudCBlbmQgLS0+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jb21tZW50Mi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY29tbWVudDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMTIyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY29tbWVudDIueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIGRvY3VtZW50IHN0YXJ0IC0tPgorPGRvYz4KKzxlbXB0eS8+Cis8L2RvYz4KKzwhLS0gZG9jdW1lbnQgZW5kIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2NvbW1lbnQzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jb21tZW50My54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk1ZjY3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jb21tZW50My54bWwKQEAgLTAsMCArMSwxNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhLS0gdGVzdCBvZiB2ZXJ5IHZlcnkgbG9uZyBjb21tZW50cyBhbmQgYnVmZmVyIGxpbWl0cworMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5CiswMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQorMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKy0tPgorPGRvYy8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvY29tbWVudDQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NvbW1lbnQ0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzI4MmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2NvbW1lbnQ0LnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhLS0gdGVzdCBvZiBub24gYXNjaWkgY29tbWVudHMgbGlrZSBs4CBldCB0cuhzIC0tPgorPCEtLeAgYW5vdGhlciBvbmUgLS0+Cis8IS0tIGFub3RoZXIgb25lIOAtLT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2NvbW1lbnQ1LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9jb21tZW50NS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk4Zjk3NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9jb21tZW50NS54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IS0tIHRlc3Qgb2YgaHlwaGVuIGFuZCBsaW5lIGJyZWFrIGhhbmRsaW5nCisgICAgIHNvbWUgdGV4dCAtIGludGVycnVwdGVkIC0KKy0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KKyAgICAgICAgICAgICAgICAgICAgICB0aGlzIHNob3VsZCBzdG9wIGhlcmVeCisKKworLS0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9jb21tZW50Ni54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY29tbWVudDYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNDUwMGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvY29tbWVudDYueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhLS0NCitsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudA0KK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50DQorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQNCitsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudA0KK2xvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50DQorbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQNCitsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudCBsb25nIGNvbW1lbnQgbG9uZyBjb21tZW50IGxvbmcgY29tbWVudA0KKy0tPg0KKzwhRE9DVFlQRSBhIFsgDQorPCFFTEVNRU5UIGEgRU1QVFk+IA0KK10+DQorPGEvPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JmZDRjNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyIgeG1sbnM6Uj0iaHR0cDovL3d3dy5mb28uYmFyL2JveHNjaGVtYSI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOnByb3A+CisgICAgICA8UjpiaWdib3g+CisgICAgICAgIDxSOkJveFR5cGU+Qm94IHR5cGUgQTwvUjpCb3hUeXBlPgorICAgICAgPC9SOmJpZ2JveD4KKyAgICAgIDxSOmF1dGhvcj4KKyAgICAgICAgPFI6TmFtZT5KLkouIERpbmdsZWhlaW1lcnNjaG1pZHQ8L1I6TmFtZT4KKyAgICAgIDwvUjphdXRob3I+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAvMS4xIDIwMCBPSzwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxSOkRpbmdBTGluZy8+CisgICAgICA8UjpSYW5kb20vPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSA0MDMgRm9yYmlkZGVuPC9EOnN0YXR1cz4KKyAgICA8RDpyZXNwb25zZWRlc2NyaXB0aW9uPiBUaGUgdXNlciBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgRGluZ0FMaW5nIHByb3BlcnR5LgorICAgICAgPC9EOnJlc3BvbnNlZGVzY3JpcHRpb24+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2VkZXNjcmlwdGlvbj4gVGhlcmUgaGFzIGJlZW4gYW4gYWNjZXNzIHZpb2xhdGlvbiBlcnJvci4KKyA8L0Q6cmVzcG9uc2VkZXNjcmlwdGlvbj4KKzwvRDptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxMCBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjAwZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjEwCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpvd25lciB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPEQ6aHJlZj5odHRwOi8vd3d3Lmljcy51Y2kuZWR1L35lancvY29udGFjdC5odG1sPC9EOmhyZWY+Cis8L0Q6b3duZXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTEgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFjMjNkNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxMQpAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOnByb3AgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOmxvY2tkaXNjb3Zlcnk+CisgICAgPEQ6YWN0aXZlbG9jaz4KKyAgICAgIDxEOmxvY2t0eXBlPndyaXRlPC9EOmxvY2t0eXBlPgorICAgICAgPEQ6bG9ja3Njb3BlPmV4Y2x1c2l2ZTwvRDpsb2Nrc2NvcGU+CisgICAgICA8RDphZGRsb2Nrcy8+CisgICAgICA8RDpvd25lcj4KKyAgICAgICAgPEQ6aHJlZj4KKwkJaHR0cDovL3d3dy5pY3MudWNpLmVkdS9+ZWp3L2NvbnRhY3QuaHRtbAorCQk8L0Q6aHJlZj4KKyAgICAgIDwvRDpvd25lcj4KKyAgICAgIDxEOnRpbWVvdXQ+U2Vjb25kLTYwNDgwMDwvRDp0aW1lb3V0PgorICAgICAgPEQ6bG9ja3Rva2VuPgorICAgICAgICA8RDpocmVmPgorCSAgIG9wYXF1ZWxvY2t0b2tlbjp4eXoxMjIzOTM0ODEyMzA5MTJhc2RmYTA5czhkZjA5czdkZgorCQk8L0Q6aHJlZj4KKyAgICAgIDwvRDpsb2NrdG9rZW4+CisgICAgPC9EOmFjdGl2ZWxvY2s+CisgIDwvRDpsb2NrZGlzY292ZXJ5PgorPC9EOnByb3A+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhkMDNmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxMgpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6aHJlZiB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj5odHRwOi8vd3d3Lmljcy51Y2kuZWR1L35lancvY29udGFjdC5odG1sPC9EOmhyZWY+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ0YWUzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxMwpAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm11bHRpc3RhdHVzIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpocmVmPgorCSAgIGh0dHA6Ly93ZWJkYXYuc2IuYW9sLmNvbS93b3Jrc3BhY2Uvd2ViZGF2L3Byb3Bvc2FsLmRvYworICAgICAgPC9EOmhyZWY+CisgICAgPEQ6aHJlZj4KKwkgICBodHRwOi8vd2ViZGF2LnNiLmFvbC5jb20vd29ya3NwYWNlL3dlYmRhdi8KKyAgICAgIDwvRDpocmVmPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSAyMDIgQWNjZXB0ZWQ8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOmhyZWY+aHR0cDovL2Zvby5iYXIvYmxhaDwvRDpocmVmPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSA0MDMgRm9yYmlkZGVuPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjE1IGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjE1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4MDgwMmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTUKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpwcm9wIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOkY9Imh0dHA6Ly93d3cuZm9vY29ycC5jb20vUHJvamVjdC8iPgorICA8RDpTb3VyY2U+CisgICAgPEQ6bGluaz4KKyAgICAgIDxGOnByb2pmaWxlcz5Tb3VyY2U8L0Y6cHJvamZpbGVzPgorICAgICAgPEQ6c3JjPmh0dHA6Ly9mb28uYmFyL3Byb2dyYW08L0Q6c3JjPgorICAgICAgPEQ6ZHN0Pmh0dHA6Ly9mb28uYmFyL3NyYy9tYWluLmM8L0Q6ZHN0PgorICAgIDwvRDpsaW5rPgorICAgIDxEOmxpbms+CisgICAgICA8Rjpwcm9qZmlsZXM+TGlicmFyeTwvRjpwcm9qZmlsZXM+CisgICAgICA8RDpzcmM+aHR0cDovL2Zvby5iYXIvcHJvZ3JhbTwvRDpzcmM+CisgICAgICA8RDpkc3Q+aHR0cDovL2Zvby5iYXIvc3JjL21haW4ubGliPC9EOmRzdD4KKyAgICA8L0Q6bGluaz4KKyAgICA8RDpsaW5rPgorICAgICAgPEY6cHJvamZpbGVzPk1ha2VmaWxlPC9GOnByb2pmaWxlcz4KKyAgICAgIDxEOnNyYz5odHRwOi8vZm9vLmJhci9wcm9ncmFtPC9EOnNyYz4KKyAgICAgIDxEOmRzdD5odHRwOi8vZm9vLmJhci9zcmMvbWFrZWZpbGU8L0Q6ZHN0PgorICAgIDwvRDpsaW5rPgorICA8L0Q6U291cmNlPgorPC9EOnByb3A+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTYgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE3ZGMzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxNgpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6cHJvcGZpbmQgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnByb3A+CisgICAgPGxvY2tkaXNjb3ZlcnkvPgorICA8L0Q6cHJvcD4KKzwvRDpwcm9wZmluZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxNyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTM3NjYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjE3CkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPEQ6bXVsdGlzdGF0dXMgeG1sbnM6RD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOnByb3A+CisgICAgICA8RDpsb2NrZGlzY292ZXJ5PgorICAgICAgICA8RDphY3RpdmVsb2NrPgorICAgICAgICAgIDxEOmxvY2t0eXBlPndyaXRlPC9EOmxvY2t0eXBlPgorICAgICAgICAgIDxEOmxvY2tzY29wZT5leGNsdXNpdmU8L0Q6bG9ja3Njb3BlPgorICAgICAgICAgIDxEOmFkZGxvY2tzPgorICAgICAgICAgICAgPEQ6aHJlZj5odHRwOi8vZm9vLmNvbS9kb2MvPC9EOmhyZWY+CisgICAgICAgICAgPC9EOmFkZGxvY2tzPgorICAgICAgICAgIDxEOm93bmVyPkphbmUgU21pdGg8L0Q6b3duZXI+CisgICAgICAgICAgPEQ6dGltZW91dD5JbmZpbml0ZTwvRDp0aW1lb3V0PgorICAgICAgICAgIDxEOmxvY2t0b2tlbj4KKyAgICAgICAgICAgIDxEOmhyZWY+aWFtdXJpOnVuaXF1ZSEhISEhPC9EOmhyZWY+CisgICAgICAgICAgPC9EOmxvY2t0b2tlbj4KKyAgICAgICAgPC9EOmFjdGl2ZWxvY2s+CisgICAgICA8L0Q6bG9ja2Rpc2NvdmVyeT4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUC8xLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjE4IGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjE4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkZTFjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTgKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOnByb3BmaW5kIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpwcm9wPgorICAgIDxzdXBwb3J0ZWRsb2NrLz4KKyAgPC9EOnByb3A+Cis8L0Q6cHJvcGZpbmQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTkgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MTkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUzNWZmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXYxOQpAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm11bHRpc3RhdHVzIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpwcm9wPgorICAgICAgPEQ6c3VwcG9ydGVkbG9jaz4KKyAgICAgICAgPEQ6TG9ja0VudHJ5PgorICAgICAgICAgIDxEOmxvY2t0eXBlPldyaXRlPC9EOmxvY2t0eXBlPgorICAgICAgICAgIDxEOmxvY2tzY29wZT5FeGNsdXNpdmU8L0Q6bG9ja3Njb3BlPgorICAgICAgICA8L0Q6TG9ja0VudHJ5PgorICAgICAgICA8RDpMb2NrRW50cnk+CisgICAgICAgICAgPEQ6bG9ja3R5cGU+V3JpdGU8L0Q6bG9ja3R5cGU+CisgICAgICAgICAgPEQ6bG9ja3Njb3BlPlNoYXJlZDwvRDpsb2Nrc2NvcGU+CisgICAgICAgIDwvRDpMb2NrRW50cnk+CisgICAgICA8L0Q6c3VwcG9ydGVkbG9jaz4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUC8xLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODMxYjRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjIKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8UzptdWx0aXN0YXR1cyB4bWxuczpTPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIiB4bWxuczpSPSJodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLyI+CisgIDxTOnJlc3BvbnNlPgorICAgIDxTOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci88L1M6aHJlZj4KKyAgICA8Uzpwcm9wPgorICAgICAgPFI6YmlnYm94PgorICAgICAgICA8UjpCb3hUeXBlPkJveCB0eXBlIEE8L1I6Qm94VHlwZT4KKyAgICAgIDwvUjpiaWdib3g+CisgICAgICA8UjphdXRob3I+CisgICAgICAgIDxSOk5hbWU+SGFkcmlhbjwvUjpOYW1lPgorICAgICAgPC9SOmF1dGhvcj4KKyAgICA8L1M6cHJvcD4KKyAgICA8UzpzdGF0dXM+SFRUUCAxLjEgMjAwIE9LPC9TOnN0YXR1cz4KKyAgPC9TOnJlc3BvbnNlPgorICA8UzpyZXNwb25zZT4KKyAgICA8UzpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvaW5kZXguaHRtbDwvUzpocmVmPgorICAgIDxTOnByb3A+CisgICAgICA8UjpiaWdib3g+CisgICAgICAgIDxSOkJveFR5cGU+Qm94IHR5cGUgQjwvUjpCb3hUeXBlPgorICAgICAgPC9SOmJpZ2JveD4KKyAgICA8L1M6cHJvcD4KKyAgICA8UzpzdGF0dXM+SFRUUCAxLjEgMjAwIE9LPC9TOnN0YXR1cz4KKyAgPC9TOnJlc3BvbnNlPgorPC9TOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2MwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODZiM2ZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjMKQEAgLTAsMCArMSwxOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDptdWx0aXN0YXR1cyB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIiB4bWxuczpSPSJodHRwOi8vd3d3LmZvby5iYXIvYm94c2NoZW1hLyI+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci88L0Q6aHJlZj4KKyAgICA8RDpwcm9wPgorICAgICAgPFI6YmlnYm94Lz4KKyAgICAgIDxSOmF1dGhvci8+CisgICAgPC9EOnByb3A+CisgICAgPEQ6c3RhdHVzPkhUVFAgMS4xIDIwMCBPSzwvRDpzdGF0dXM+CisgIDwvRDpyZXNwb25zZT4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL2luZGV4Lmh0bWw8L0Q6aHJlZj4KKyAgICA8RDpwcm9wPgorICAgICAgPFI6YmlnYm94Lz4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUCAxLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWI3Y2ViCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjQKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RDpwcm9wZXJ0eXVwZGF0ZSB4bWxuczpEPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIiB4bWxuczpaPSJodHRwOi8vd3d3LnczLmNvbS9zdGFuZGFyZHMvejM5LjUwLyI+CisgIDxEOnNldD4KKyAgICA8RDpwcm9wPgorICAgICAgPFo6YXV0aG9ycz4KKyAgICAgICAgPFo6QXV0aG9yPkppbSBXaGl0ZWhlYWQ8L1o6QXV0aG9yPgorICAgICAgICA8WjpBdXRob3I+Um95IEZpZWxkaW5nPC9aOkF1dGhvcj4KKyAgICAgIDwvWjphdXRob3JzPgorICAgIDwvRDpwcm9wPgorICA8L0Q6c2V0PgorICA8RDpyZW1vdmU+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxaOkNvcHlyaWdodC1Pd25lci8+CisgICAgPC9EOnByb3A+CisgIDwvRDpyZW1vdmU+Cis8L0Q6cHJvcGVydHl1cGRhdGU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2NSBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXY1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZWJhYjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2NQpAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm11bHRpc3RhdHVzIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iIHhtbG5zOlo9Imh0dHA6Ly93d3cudzMuY29tL3N0YW5kYXJkcy96MzkuNTAvIj4KKyAgPEQ6cmVzcG9uc2U+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxaOkF1dGhvcnMvPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSA0MjAgTWV0aG9kIEZhaWx1cmU8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOnByb3A+CisgICAgICA8WjpDb3B5cmlnaHQtT3duZXIvPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQLzEuMSA0MDkgQ29uZmxpY3Q8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+CisgIDxEOnJlc3BvbnNlZGVzY3JpcHRpb24+IENvcHlyaWdodCBPd25lciBjYW4gbm90IGJlIGRlbGV0ZWQgb3IKK2FsdGVyZWQuPC9EOnJlc3BvbnNlZGVzY3JpcHRpb24+Cis8L0Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2NiBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXY2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMGRlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2NgpAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxEOm11bHRpc3RhdHVzIHhtbG5zOkQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8RDpyZXNwb25zZT4KKyAgICA8RDpocmVmPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS91c2VyL3lhcm9uZy9kYXZfZHJhZnRzLworICAgICAgPC9EOmhyZWY+CisgICAgPEQ6cHJvcD4KKyAgICAgIDxEOnJlc291cmNldHlwZT4KKyAgICAgICAgPEQ6Y29sbGVjdGlvbi8+CisgICAgICA8L0Q6cmVzb3VyY2V0eXBlPgorICAgIDwvRDpwcm9wPgorICAgIDxEOnN0YXR1cz5IVFRQIDEuMSAyMDAgT0s8L0Q6c3RhdHVzPgorICA8L0Q6cmVzcG9uc2U+CisgIDxEOnJlc3BvbnNlPgorICAgIDxEOmhyZWY+CisgICAgICBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdXNlci95YXJvbmcvZGF2X2RyYWZ0cy9iYXNlCisgICAgICA8L0Q6aHJlZj4KKyAgICA8RDpwcm9wPgorICAgICAgPEQ6cmVzb3VyY2V0eXBlLz4KKyAgICA8L0Q6cHJvcD4KKyAgICA8RDpzdGF0dXM+SFRUUCAxLjEgMjAwIE9LPC9EOnN0YXR1cz4KKyAgPC9EOnJlc3BvbnNlPgorPC9EOm11bHRpc3RhdHVzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2NwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzRhOTUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjcKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZDptdWx0aXN0YXR1cyB4bWxuczpkPSJodHRwOi8vd3d3LmlldGYub3JnL3N0YW5kYXJkcy9kYXYvIj4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMTwvZDpocmVmPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9yZXNvdXJjZTI8L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgMjAwIE9LPC9kOnN0YXR1cz4KKyAgPC9kOnJlc3BvbnNlPgorICA8ZDpyZXNwb25zZT4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvPC9kOmhyZWY+CisgICAgPGQ6c3RhdHVzPkhUVFAvMS4xIDQyMCBNZXRob2QgRmFpbHVyZTwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKyAgPGQ6cmVzcG9uc2U+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMzwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSA0MTIgUHJlY29uZGl0aW9uIEZhaWxlZDwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKzwvZDptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kYXY4IGIvbGlieG1sMi0yLjcuNy90ZXN0L2RhdjgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y5OWJhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXY4CkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGQ6bXVsdGlzdGF0dXMgeG1sbnM6ZD0iaHR0cDovL3d3dy5pZXRmLm9yZy9zdGFuZGFyZHMvZGF2LyI+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL3Jlc291cmNlMTwvZDpocmVmPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL3Jlc291cmNlMjwvZDpocmVmPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyLzwvZDpocmVmPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL1IyL0QyPC9kOmhyZWY+CisgICAgPGQ6c3RhdHVzPkhUVFAvMS4xIDIwMSBDcmVhdGVkPC9kOnN0YXR1cz4KKyAgPC9kOnJlc3BvbnNlPgorICA8ZDpyZXNwb25zZT4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9vdGhlcmNvbnRhaW5lci9SMi88L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgNDEyIFByZWNvbmRpdGlvbiBGYWlsZWQ8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+Cis8L2Q6bXVsdGlzdGF0dXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2OSBiL2xpYnhtbDItMi43LjcvdGVzdC9kYXY5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlZDYzYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGF2OQpAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkOm11bHRpc3RhdHVzIHhtbG5zOmQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvc3RhbmRhcmRzL2Rhdi8iPgorICA8ZDpyZXNwb25zZT4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvcmVzb3VyY2UxPC9kOmhyZWY+CisgICAgPGQ6aHJlZj5odHRwOi8vd3d3LmZvby5iYXIvY29udGFpbmVyL3Jlc291cmNlMjwvZDpocmVmPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci88L2Q6aHJlZj4KKyAgICA8ZDpocmVmPmh0dHA6Ly93d3cuZm9vLmJhci9jb250YWluZXIvQzIvUjI8L2Q6aHJlZj4KKyAgICA8ZDpzdGF0dXM+SFRUUC8xLjEgMjAxIENyZWF0ZWQ8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL2NvbnRhaW5lci9DMjwvZDpocmVmPgorICAgIDxkOnN0YXR1cz5IVFRQLzEuMSA0MjAgTWV0aG9kIEZhaWx1cmU8L2Q6c3RhdHVzPgorICA8L2Q6cmVzcG9uc2U+CisgIDxkOnJlc3BvbnNlPgorICAgIDxkOmhyZWY+aHR0cDovL3d3dy5mb28uYmFyL290aGVyY29udGFpbmVyL0MyPC9kOmhyZWY+CisgICAgPGQ6c3RhdHVzPkhUVFAvMS4xIDQwOSBDb25mbGljdDwvZDpzdGF0dXM+CisgIDwvZDpyZXNwb25zZT4KKzwvZDptdWx0aXN0YXR1cz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kZWZhdHRyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9kZWZhdHRyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjE2YTUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RlZmF0dHIueG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIEVNUFRZPgorPCFBVFRMSVNUIGRvYworICAgICB4bWxucyBDREFUQSAjRklYRUQgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIj4KK10+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kZWZhdHRyMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGVmYXR0cjIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNTA3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGVmYXR0cjIueG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIEVNUFRZPgorPCFBVFRMSVNUIGRvYworICAgICBkZWZhdHQgICgwfDEpICAgIjAiCisgICAgIHhtbG5zOnRzdCBDREFUQSAjRklYRUQgImh0dHA6Ly9leGFtcGxlLm9yZyIKKyAgICAgdHN0OmF0dCAoMHwxKSAgICIxIj4KK10+Cis8ZG9jIGF0dD0iMSIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2RpYTEgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGlhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDdiZDczCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2RpYTEKQEAgLTAsMCArMSw5OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZGlhOmRpYWdyYW0geG1sbnM6ZGlhPSJodHRwOi8vd3d3Lmx5c2F0b3IubGl1LnNlL35hbGxhL2RpYS8iPgorICA8ZGlhOmRpYWdyYW1kYXRhPgorICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImJhY2tncm91bmQiPgorICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4KKyAgICA8L2RpYTphdHRyaWJ1dGU+CisgIDwvZGlhOmRpYWdyYW1kYXRhPgorICA8ZGlhOmxheWVyIG5hbWU9IkJhY2tncm91bmQiIHZpc2libGU9InRydWUiPgorICAgIDxkaWE6b2JqZWN0IHR5cGU9IlN0YW5kYXJkIC0gTGluZSIgdmVyc2lvbj0iMCIgaWQ9Ik8wIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMS45NSw2Ljg1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjEuOSw2Ljg7MTEsOC41NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iY29ubl9lbmRwb2ludHMiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMS45NSw2Ljg1Ii8+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw4LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjAuMSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9zdHlsZSI+CisgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InN0YXJ0X2Fycm93Ij4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZW5kX2Fycm93Ij4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTpjb25uZWN0aW9ucz4KKyAgICAgICAgPGRpYTpjb25uZWN0aW9uIGhhbmRsZT0iMSIgdG89Ik8yIiBjb25uZWN0aW9uPSIzIi8+CisgICAgICA8L2RpYTpjb25uZWN0aW9ucz4KKyAgICA8L2RpYTpvYmplY3Q+CisgICAgPGRpYTpvYmplY3QgdHlwZT0iU3RhbmRhcmQgLSBUZXh0IiB2ZXJzaW9uPSIwIiBpZD0iTzEiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSI0LjgsNC43NSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX2JiIj4KKyAgICAgICAgPGRpYTpyZWN0YW5nbGUgdmFsPSIyLjU3OSwzLjk2MzU5OzcuMDIxLDQuOTYzNTkiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InRleHQiPgorICAgICAgICA8ZGlhOmNvbXBvc2l0ZSB0eXBlPSJ0ZXh0Ij4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJzdHJpbmciPgorICAgICAgICAgICAgPGRpYTpzdHJpbmcgdmFsPSJzZGZzZGZnIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImZvbnQiPgorICAgICAgICAgICAgPGRpYTpmb250IG5hbWU9IkNvdXJpZXIiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iaGVpZ2h0Ij4KKyAgICAgICAgICAgIDxkaWE6cmVhbCB2YWw9IjEiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0icG9zIj4KKyAgICAgICAgICAgIDxkaWE6cG9pbnQgdmFsPSI0LjgsNC43NSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb2xvciI+CisgICAgICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJhbGlnbm1lbnQiPgorICAgICAgICAgICAgPGRpYTplbnVtIHZhbD0iMSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgPC9kaWE6Y29tcG9zaXRlPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgIDwvZGlhOm9iamVjdD4KKyAgICA8ZGlhOm9iamVjdCB0eXBlPSJTdGFuZGFyZCAtIEJveCIgdmVyc2lvbj0iMCIgaWQ9Ik8yIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IHZhbD0iMTAuOTUsNy41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjEwLjksNy40NTsxMy4wNSw5LjU1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX2Nvcm5lciI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw3LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgdmFsPSIyLjA1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbGVtX2hlaWdodCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjIiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImJvcmRlcl93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjAuMSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYm9yZGVyX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciB2YWw9IiMwMDAwMDAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImlubmVyX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciB2YWw9IiNmZmZmZmYiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImxpbmVfc3R5bGUiPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgPC9kaWE6b2JqZWN0PgorICA8L2RpYTpsYXllcj4KKzwvZGlhOmRpYWdyYW0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZGlhMiBiL2xpYnhtbDItMi43LjcvdGVzdC9kaWEyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwN2JkNzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZGlhMgpAQCAtMCwwICsxLDk5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyI+CisgIDxkaWE6ZGlhZ3JhbWRhdGE+CisgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYmFja2dyb3VuZCI+CisgICAgICA8ZGlhOmNvbG9yIHZhbD0iI2ZmZmZmZiIvPgorICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgPC9kaWE6ZGlhZ3JhbWRhdGE+CisgIDxkaWE6bGF5ZXIgbmFtZT0iQmFja2dyb3VuZCIgdmlzaWJsZT0idHJ1ZSI+CisgICAgPGRpYTpvYmplY3QgdHlwZT0iU3RhbmRhcmQgLSBMaW5lIiB2ZXJzaW9uPSIwIiBpZD0iTzAiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxLjk1LDYuODUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iMS45LDYuODsxMSw4LjU1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJjb25uX2VuZHBvaW50cyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxLjk1LDYuODUiLz4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEwLjk1LDguNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9jb2xvciI+CisgICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX3dpZHRoIj4KKyAgICAgICAgPGRpYTpyZWFsIHZhbD0iMC4xIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJsaW5lX3N0eWxlIj4KKyAgICAgICAgPGRpYTplbnVtIHZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ic3RhcnRfYXJyb3ciPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJlbmRfYXJyb3ciPgorICAgICAgICA8ZGlhOmVudW0gdmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmNvbm5lY3Rpb25zPgorICAgICAgICA8ZGlhOmNvbm5lY3Rpb24gaGFuZGxlPSIxIiB0bz0iTzIiIGNvbm5lY3Rpb249IjMiLz4KKyAgICAgIDwvZGlhOmNvbm5lY3Rpb25zPgorICAgIDwvZGlhOm9iamVjdD4KKyAgICA8ZGlhOm9iamVjdCB0eXBlPSJTdGFuZGFyZCAtIFRleHQiIHZlcnNpb249IjAiIGlkPSJPMSI+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfcG9zIj4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjQuOCw0Ljc1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSB2YWw9IjIuNTc5LDMuOTYzNTk7Ny4wMjEsNC45NjM1OSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0idGV4dCI+CisgICAgICAgIDxkaWE6Y29tcG9zaXRlIHR5cGU9InRleHQiPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9InN0cmluZyI+CisgICAgICAgICAgICA8ZGlhOnN0cmluZyB2YWw9InNkZnNkZmciLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZm9udCI+CisgICAgICAgICAgICA8ZGlhOmZvbnQgbmFtZT0iQ291cmllciIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJoZWlnaHQiPgorICAgICAgICAgICAgPGRpYTpyZWFsIHZhbD0iMSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJwb3MiPgorICAgICAgICAgICAgPGRpYTpwb2ludCB2YWw9IjQuOCw0Ljc1Ii8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImNvbG9yIj4KKyAgICAgICAgICAgIDxkaWE6Y29sb3IgdmFsPSIjMDAwMDAwIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImFsaWdubWVudCI+CisgICAgICAgICAgICA8ZGlhOmVudW0gdmFsPSIxIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICA8L2RpYTpjb21wb3NpdGU+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgPC9kaWE6b2JqZWN0PgorICAgIDxkaWE6b2JqZWN0IHR5cGU9IlN0YW5kYXJkIC0gQm94IiB2ZXJzaW9uPSIwIiBpZD0iTzIiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgdmFsPSIxMC45NSw3LjUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIHZhbD0iMTAuOSw3LjQ1OzEzLjA1LDkuNTUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1fY29ybmVyIj4KKyAgICAgICAgPGRpYTpwb2ludCB2YWw9IjEwLjk1LDcuNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iZWxlbV93aWR0aCI+CisgICAgICAgIDxkaWE6cmVhbCB2YWw9IjIuMDUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIG5hbWU9ImVsZW1faGVpZ2h0Ij4KKyAgICAgICAgPGRpYTpyZWFsIHZhbD0iMiIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iYm9yZGVyX3dpZHRoIj4KKyAgICAgICAgPGRpYTpyZWFsIHZhbD0iMC4xIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBuYW1lPSJib3JkZXJfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iIzAwMDAwMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0iaW5uZXJfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIHZhbD0iI2ZmZmZmZiIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgbmFtZT0ibGluZV9zdHlsZSI+CisgICAgICAgIDxkaWE6ZW51bSB2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICA8L2RpYTpvYmplY3Q+CisgIDwvZGlhOmxheWVyPgorPC9kaWE6ZGlhZ3JhbT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxIGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVjOWRjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgTUVNTyBQVUJMSUMgIi0vL1NHTUxTT1VSQ0UvL0RURCBNRU1PLy9FTiIgCisgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cuc2dtbHNvdXJjZS5jb20vZHRkcy9tZW1vLmR0ZCI+Cis8TUVNTz4KKzwvTUVNTz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxMCBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWU0OWU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDEwCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgoYSB8IGIpKyAsIGMgLCAgZCkqPgorPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGQgKCNQQ0RBVEEpPgorXT4KKzxkb2M+PGI+VGhpczwvYj48Yz4gaXMgYTwvYz48ZD4gdmFsaWQgZG9jdW1lbnQ8L2Q+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkMTEgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkMTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRkNTEyYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxMQpAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoI1BDREFUQSk+Cis8IUFUVExJU1QgZG9jIHZhbCBDREFUQSAjSU1QTElFRD4KK10+Cis8ZG9jIHZhbD0idjEiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxMiBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGZiZjIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDEyCkBAIC0wLDAgKzEsNSBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVOVElUWSBZTiAnIlllcyInID4KKzwhRU5USVRZIFdoYXRIZVNhaWQgIkhlIHNhaWQgJllOOyIgPgorXT4KKzxkb2M+JldoYXRIZVNhaWQ7PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkMTMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkMTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE4ZDAwYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQxMwpAQCAtMCwwICsxLDYgQEAKKzwhLS0gY29tbWVudCBiZWZvcmUgdGhlIERURCAtLT4KKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyBBTlk+CitdPgorPCEtLSBjb21tZW50IGFmdGVyIHRoZSBEVEQgLS0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kdGQyIGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JjYzEwMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQyCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgjUENEQVRBKT4KK10+Cis8ZG9jPlRoaXMgaXMgYSB2YWxpZCBkb2N1bWVudCAhPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkMyBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzZjQ0YTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkMwpAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyBBTlk+CitdPgorPGRvYz5UaGlzIGlzIGEgdmFsaWQgZG9jdW1lbnQgITwvZG9jPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkNCBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NTdiOTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkNApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIEVNUFRZPl0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kdGQ1IGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTMzODg5YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQ1CkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jICgjUENEQVRBIHwgYSB8IGIpKj4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KK10+Cis8ZG9jPjxhPlRoaXM8L2E+IGlzIGEgPGI+dmFsaWQ8L2I+IGRvY3VtZW50PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkNiBiL2xpYnhtbDItMi43LjcvdGVzdC9kdGQ2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ZTYzZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkNgpAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoYSB8IGIpKj4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KK10+Cis8ZG9jPjxhPlRoaXM8L2E+PGI+IGlzIGEgdmFsaWQ8L2I+PGE+IGRvY3VtZW50PC9hPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkNwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTUxYzIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDcKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKGEgLCBiKSo+Cis8IUVMRU1FTlQgYSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+CitdPgorPGRvYz48YT5UaGlzPC9hPjxiPiBpcyBhIHZhbGlkIGRvY3VtZW50PC9iPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDggYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTdhMjkxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDgKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKChhIHwgYikgLCAoYyB8IGQpKSs+Cis8IUVMRU1FTlQgYSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYiAoI1BDREFUQSk+Cis8IUVMRU1FTlQgYyAoI1BDREFUQSk+Cis8IUVMRU1FTlQgZCAoI1BDREFUQSk+CitdPgorPGRvYz48Yj5UaGlzPC9iPjxjPiBpcyBhIHZhbGlkIGRvY3VtZW50PC9jPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDkgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkOQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDRiOGM1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2R0ZDkKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRUxFTUVOVCBkb2MgKChhIHwgYiB8IGMpICwgZCk/PgorPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGMgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGQgKCNQQ0RBVEEpPgorXT4KKzxkb2M+PGI+VGhpczwvYj48ZD4gaXMgYSB2YWxpZCBkb2N1bWVudDwvZD48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9kdGRzL2V2ZS5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkcy9ldmUuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZmM4ODMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZHRkcy9ldmUuZHRkCkBAIC0wLDAgKzEsNCBAQAorPCFFTlRJVFkgJSBsb2NhbC5wLmNsYXNzICAgICAgICAiIj4KKzwhRU5USVRZICUgcC5jbGFzcyAgICAgICAgICAgICAgInAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLnAuY2xhc3M7Ij4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2ViY2RpY181NjYwMTIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2ViY2RpY181NjYwMTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5YjRlN2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZWJjZGljXzU2NjAxMi54bWwKQEAgLTAsMCArMSBAQAorTG+nlJNApYWZoomWlX5/8Uvwf0CFlYOWhImVh35/ycLUYPHx9PF/QG9uJUyjhaKjQIGjo5l+f0rgWn9AYW4lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2VtcHR5Y2RhdGEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VtcHR5Y2RhdGEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjOTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW1wdHljZGF0YS54bWwKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzwhW0NEQVRBW11dPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2VudDEgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTI0NzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDEKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBFWEFNUExFIFNZU1RFTSAiZXhhbXBsZS5kdGQiIFsKKzwhRU5USVRZIHhtbCAiRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UiPgorXT4KKzxFWEFNUExFPgorICAgICZ4bWw7Cis8L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MTAgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc3OGQ4OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQxMApAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCFET0NUWVBFIHJub2RlIFsKKzwhRUxFTUVOVCBybm9kZSAoZik+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorPCFFTEVNRU5UIGYgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGYKKyAgIGF0dDEgQ0RBVEEgI0ZJWEVEICdKJz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCis8IUVOVElUWSBmCisgICAiCisgICA8Zj4KKyAgIGhlbGxvIHdvcmxkCisgICA8L2Y+CisgICAiCis+CitdPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKzxybm9kZT4KKyAgICZmOworPC9ybm9kZT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2VudDExIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNjExYzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MTEKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4KKzwhRE9DVFlQRSBkb2MgWworIDwhRU5USVRZIG5ld2wgIiYjMTM7Ij4KK10+CisKKzxkb2M+Jm5ld2w7PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MTIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ5NTgzMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQxMgpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHJvb3QgWworPCFFTlRJVFkgZm9vICdhYmMnPgorPCFFTlRJVFkgYmFyICdkZWYnPgorXT4KKzxyb290IGF0dHJpYnV0ZT0iJmZvbzsiPgorICAgPGVsZW1lbnQ+JmJhcjs8L2VsZW1lbnQ+Cis8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MTMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50MTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVlYmQ4OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQxMwpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgPz4KKzwhRE9DVFlQRSB0ZXN0IFsKKzwhRU5USVRZIGFtcHByb2JsZW0gJyZhbXA7Jz4KK10+Cis8dCBhPSImYW1wcHJvYmxlbTsiPmE8L3Q+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9lbnQyIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU1ZTJkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQyCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIEVYQU1QTEUgU1lTVEVNICJleGFtcGxlLmR0ZCIgWworPCFFTlRJVFkgeG1sICJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI+Cis8IUVOVElUWSB0aXRsZSBQVUJMSUMgIi0vL01ZLVRJVExFLy9GUiIgInRpdGxlLnhtbCI+Cis8IUVOVElUWSBpbWFnZSBTWVNURU0gImltZy5naWYiIE5EQVRBIEdJRj4KK10+Cis8RVhBTVBMRT4KKyAgJnRpdGxlOworICBUaGlzIHRleHQgaXMgYWJvdXQgWE1MLCB0aGUgJnhtbDsgYW5kIHRoaXMgaXMgYW4gZW1iZWRkZWQgPElNRyBzcmM9ImltYWdlIi8+Cis8L0VYQU1QTEU+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9lbnQzIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk4MDNiOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgRVhBTVBMRSBTWVNURU0gImV4YW1wbGUuZHRkIiBbCis8IUVOVElUWSB4bWwgIkV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIj4KK10+Cis8RVhBTVBMRSBwcm9wMT0iYSZhbXA7YiIgcHJvcDI9IiZ4bWw7Ij4KKyAgVGVzdCBvZiBlbnRpdGllcyBpbiBhdHRyaWJ1dGVzLgorPC9FWEFNUExFPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZW50NCBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NjhiNDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50NApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIEVYQU1QTEUgU1lTVEVNICJleGFtcGxlLmR0ZCIgWworPCFFTlRJVFkgeG1sICJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI+CitdPgorPEVYQU1QTEUgPgorICBUZXN0IG9mICZhbXA7YW1wOyBiZWhhdmlvdXIgYSZhbXA7YiAuCis8L0VYQU1QTEU+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9lbnQ1IGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRiOWVhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQ1CkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RVhBTVBMRT4KKyAgICBUaGlzIGlzIGFuIGludmVydGVkIGV4Y2xhbWF0aW9uIHNpZ24gJiN4QTE7CisgICAgVGhpcyBpcyBhIHNwYWNlICYjMzI7IAorPC9FWEFNUExFPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2VudDYgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50NgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGIyZjEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDYKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIGx0ICAgICAiJiMzODsjNjA7Ij4gCis8IUVOVElUWSBndCAgICAgIiYjNjI7Ij4gCis8IUVOVElUWSBhbXAgICAgIiYjMzg7IzM4OyI+IAorPCFFTlRJVFkgYXBvcyAgICImIzM5OyI+IAorPCFFTlRJVFkgcXVvdCAgICImIzM0OyI+IAorXT4KKzxkb2MvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2VudDcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50NwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWYyMDMwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDcKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgaXRlbSBbCis8IUVOVElUWSAlIHNhbXBsZUVudCAiPCFFTEVNRU5UIGl0ZW0gKHBhcmEpKz4iPgorPCFFTlRJVFkgc2FtcGxlRW50ICJ0aGUgaHlhY2ludGggZ2lybCI+Cislc2FtcGxlRW50OworPCFFTEVNRU5UIHBhcmEgKCNQQ0RBVEEpPgorXT4KKzxpdGVtPjxwYXJhPid0aGV5IGNhbGxlZCBtZSAmc2FtcGxlRW50Oyc8L3BhcmE+PC9pdGVtPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2VudDggYi9saWJ4bWwyLTIuNy43L3Rlc3QvZW50OApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWVjY2YyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDgKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIHRlc3QxICJ0ZXN0IDEiPgorPCFFTlRJVFkgdGVzdDIgInRlc3QgMiI+CitdPgorPGRvYz4KKyAgIDxDb250ZW50PlJldGVuJiMyMzE7JiMyMjc7bzwvQ29udGVudD4KKyAgIDxDb250ZW50PiZsdDsmZ3Q7PC9Db250ZW50PgorICAgPENvbnRlbnQ+JnRlc3QxOyZ0ZXN0Mjs8L0NvbnRlbnQ+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9lbnQ5IGIvbGlieG1sMi0yLjcuNy90ZXN0L2VudDkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRiNjNiYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lbnQ5CkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTlRJVFkgdGVzdDEgIjxhLz4sPGIvPiw8Yy8+LDxkLz4iPgorXT4KKzxkb2M+CisgICA8ZW50PiZ0ZXN0MTs8L2VudD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8cD4gV0UgbmVlZCBsb3Qgb2YgZ2FyYmFnZSBub3cgdG8gdHJpZ2dlciB0aGUgcHJvYmxlbTwvcD4KKyAgIDxwPiBXRSBuZWVkIGxvdCBvZiBnYXJiYWdlIG5vdyB0byB0cmlnZ2VyIHRoZSBwcm9ibGVtPC9wPgorICAgPHA+IFdFIG5lZWQgbG90IG9mIGdhcmJhZ2Ugbm93IHRvIHRyaWdnZXIgdGhlIHByb2JsZW08L3A+CisgICA8ZW50PiZ0ZXN0MTs8L2VudD4KKzwvZG9jPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL2F0dHIxLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvYXR0cjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YmU0NzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL2F0dHIxLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIGZvbz0ib29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9hdHRyMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL2F0dHIyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjMwYzg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9hdHRyMi54bWwKQEAgLTAsMCArMSBAQAorPGZvbyBmb289Ij5vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL2F0dHIzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvYXR0cjMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNTY3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL2F0dHIzLnhtbApAQCAtMCwwICsxLDYgQEAKKzwhRE9DVFlQRSBkb2MgWw0KKzwhRUxFTUVOVCBkb2MgKCNQQ0RBVEEpPg0KKzwhQVRUTElTVCBkb2MgYTEgQ0RBVEEgInYxIj4NCis8IUFUVExJU1QgZG9jIGExIENEQVRBICJ6MSI+DQorXT4NCis8ZG9jPjwvZG9jPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvYXR0cjQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9hdHRyNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTUzYmJjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvYXR0cjQueG1sCkBAIC0wLDAgKzEgQEAKKzxST09UIGF0dHI9IlhZFiIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9jZGF0YS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL2NkYXRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjJiYzA5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9jZGF0YS54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPEE+PCFbQ0RBVEFbQ+FyXV0+PC9BPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9jaGFycmVmMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL2NoYXJyZWYxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTQyM2RmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9jaGFycmVmMS54bWwKQEAgLTAsMCArMSBAQAorPGJsYT4mIzAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDs8L2JsYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvY29tbWVudDEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9jb21tZW50MS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAyYmIxNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvY29tbWVudDEueG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGJvb2sgWworPCFFTEVNRU5UIGJvb2sgQU5ZPgorXT4KKzwhLS0gSWxsZWdhbENoYXIgI3gwZQorIGluIHAwMjogDiAtLT4KKzxib29rLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvY29udGVudDEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9jb250ZW50MS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzI2NDY5NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvY29udGVudDEueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHJvb3QgWworPCFFTEVNRU5UIHJvb3QgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGEgQU5ZPgorPCFFTEVNRU5UIGIgQU5ZPgorPCEtLSogbWlzc2luZyBjbG9zaW5nIGJyYWNrZXQgaW4gY2hvaWNlICotLT4KKzwhRUxFTUVOVCBhRWxlbWVudCAoYSB8YiAqID4KK10+Cis8cm9vdD5BbnkgY29udGVudDwvcm9vdD4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9kdGQxMyBiL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvZHRkMTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc2NThiMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9lcnJvcnMvZHRkMTMKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgZG9jIFsKKzwhRU5USVRZIEVuZEF0dHIgIjI3JyIgPgorXT4KKzxkb2M+Cis8ZWxlbWVudCBhdHRyaWJ1dGU9J2EtJkVuZEF0dHI7PgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL25hbWUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9uYW1lLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmMzNGI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9uYW1lLnhtbApAQCAtMCwwICsxIEBACis8Zm9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9uYW1lMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXJyb3JzL25hbWUyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjM1OTJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2Vycm9ycy9uYW1lMi54bWwKQEAgLTAsMCArMSBAQAorPGZvbyBmb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvZXZlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9ldmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2Y2ExYzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXZlLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IURPQ1RZUEUgc3BlYyBQVUJMSUMgIi0vL3Rlc3RzcGVjLy8iICJkdGRzL2V2ZS5kdGQiIFsKKzwhRU5USVRZIGlzbzYuZG9jLmRhdGUgJzI5LU1heS0xOTk5Jz4KK10+Cis8c3BlYz4KKzwvc3BlYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9leHByL2Jhc2UgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXhwci9iYXNlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiYTExZTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvZXhwci9iYXNlCkBAIC0wLDAgKzEsODYgQEAKKz0+YQorMSBhCisxIGEgfCBhCiswIGIKKz0+YXxiCisxIGEKKzEgYgorMSBhIHwgYgorMCBhezB9CiswIGJ7MH0KKz0+YSB8IGIgfCBhCisxIGEKKzEgYgorMSBhIHwgYgorMSBiIHwgYQorMSBhIHwgYiB8IGIKKzEgYSB8IGIgfCBhCisxIGIgfCBhIHwgYgorPT5hLGEKKzEgYSxhCiswIGEKKzAgYSxhLGEKKz0+YXswLDN9CisxIGF7M30KKzEgYQorMSBhLGEsYQorMSBhezEsM30KKz0+KGF8Yil7MCw0fQorMSBhCisxIGIKKzEgYSxiCisxIGEsYixhLGIKKzAgYixhLGIsYSxiCisxIGIsYXsxLDN9CisxIGF7MSwzfSxiCiswIGF7MSwzfSxiLGEKKzAgYXsxLDR9LGIKKzAgYXswLDV9CisxIChifGEpezAsNH0KKzAgKGJ8YSl7MCw0fSxhCisxIChhLGIpezAsMn0KKzEgKGEsYil7MCwxfSxiCis9PiBhKgorMSBhCisxIGE/CisxIGErCisxIGEqCisxIGF7MH0KKz0+IGErCisxIGEKKzAgYT8KKzEgYSsKKzAgYSoKKzEgYT8sYQorMSBhLGEqCisxIGEqLGEKKzEgYT8sYSosYQorMSBhKixhPyxhCis9PihhfGIpKgorMSBhCisxIGIKKzEgYSxiCisxIGEsYixhLGIKKzEgKGJ8YSl7MCw0fQorMSAoYnxhKXswLDR9LGEKKzEgYSoKKzEgYioKKzEgKGF8YikqCisxIGF7MSwzfQorMSBiLGF7MSwzfQorMSBhezEsM30sYgorMSBhKiwoYXxiKSoKKzEgYSosYnsyLDV9CisxIGEqLChhfGIpKixiezIsNX0KKz0+KGF8YikrLChjfGQpCisxIGErLGMKKzAgYSosYworMSBhLGMKKzEgYSxiKixhKixjCisjIG1vcmUgY29tcGxleAorPT4oYXxiKSwoYXxjKXswLDEwMH0KKzEgYXswLDEwMH0sKGF8YykKKzAgYXswLDEwMX0sKGF8YykKKyMgdGhlIGV4YW1wbGUgZnJvbSBjbXNtY3EgYXQgZXh0cmVtZSBtYXJrdXAgMDUKKz0+KGEsICgoYiwgYywgZCl7MCw1fSwgZXswLDF9KXswLDR9LCBmKQorMSAoYSwgYiwgKGMsIGQsIGIpezIsM30sIGMsIGQsIGUsIGYpCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvaW50c3Vic2V0LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9pbnRzdWJzZXQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwOWRlMTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvaW50c3Vic2V0LnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+Cis8IURPQ1RZUEUgcm9vdCBbCis8IUVMRU1FTlQgcm9vdCAgRU1QVFk+Cis8IS0tICAiIC0tPgorXT4KKzxyb290Lz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9pbnRzdWJzZXQyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9pbnRzdWJzZXQyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWU4NDVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2ludHN1YnNldDIueG1sCkBAIC0wLDAgKzEsMjgyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBrYW5qaWRpYzIgWworCTwhLS0gVmVyc2lvbiAxLjMKKwlUaGlzIGlzIHRoZSBEVEQgb2YgdGhlIFhNTC1mb3JtYXQga2FuamkgZmlsZSBjb21iaW5pbmcgaW5mb3JtYXRpb24gZnJvbQorCXRoZSBLQU5KSURJQyBhbmQgS0FOSkQyMTIgZmlsZXMuIEl0IGlzIGludGVuZGVkIHRvIGJlIGxhcmdlbHkgc2VsZi0KKwlkb2N1bWVudGluZywgd2l0aCBlYWNoIGZpZWxkIGJlaW5nIGFjY29tcGFuaWVkIGJ5IGFuIGV4cGxhbmF0b3J5CisJY29tbWVudC4KKworCVRoZSBmaWxlIGNvdmVycyB0aGUgZm9sbG93aW5nIGthbmppOgorCShhKSB0aGUgNiwzNTUga2FuamkgZnJvbSBKSVMgWCAwMjA4OworCShiKSB0aGUgNSw4MDEga2FuamkgZnJvbSBKSVMgWCAwMjEyOworCShjKSB0aGUgMyw2MjUga2FuamkgZnJvbSBKSVMgWCAwMjEzIGFzIGZvbGxvd3M6CisJCShpKSB0aGUgMiw3NDEga2Fuamkgd2hpY2ggYXJlIGFsc28gaW4gSklTIFggMDIxMiBoYXZlCisJCUpJUyBYIDAyMTMgY29kZS1wb2ludHMgKGt1dGVuKSBhZGRlZCB0byB0aGUgZXhpc3RpbmcgZW50cnk7CisJCShpaSkgdGhlIDg4NCAibmV3IiBrYW5qaSBoYXZlIG5ldyBlbnRyaWVzLgorCisJQXQgdGhlIGVuZCBvZiB0aGUgZXhwbGFuYXRpb24gZm9yIGEgbnVtYmVyIG9mIGZpZWxkcyB0aGVyZSBpcyBhIHRhZworCXdpdGggdGhlIGZvcm1hdCBbTl0uIFRoaXMgaW5kaWNhdGVzIHRoZSBsZWFkaW5nIGxldHRlcihzKSBvZiB0aGUKKwllcXVpdmFsZW50IGZpZWxkIGluIHRoZSBLQU5KSURJQyBhbmQgS0FOSkQyMTIgZmlsZXMuCisKKwlUaGUgS0FOSklESUMgZG9jdW1lbnRhdGlvbiBzaG91bGQgYWxzbyBiZSByZWFkIGZvciBhZGRpdGlvbmFsIAorCWluZm9ybWF0aW9uIGFib3V0IHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgZmlsZS4KKwktLT4KKzwhRUxFTUVOVCBrYW5qaWRpYzIgKGhlYWRlcixjaGFyYWN0ZXIqKT4KKzwhRUxFTUVOVCBoZWFkZXIgKGZpbGVfdmVyc2lvbixkYXRhYmFzZV92ZXJzaW9uLGRhdGVfb2ZfY3JlYXRpb24pPgorPCEtLQorCVRoZSBzaW5nbGUgaGVhZGVyIGVsZW1lbnQgd2lsbCBjb250YWluIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uCisJYWJvdXQgdGhlIHZlcnNpb24gb2YgdGhlIGZpbGUgCisJLS0+Cis8IUVMRU1FTlQgZmlsZV92ZXJzaW9uICgjUENEQVRBKT4KKzwhLS0KKwlUaGlzIGZpZWxkIGRlbm90ZXMgdGhlIHZlcnNpb24gb2Yga2FuamlkaWMyIHN0cnVjdHVyZSwgYXMgbW9yZQorCXRoYW4gb25lIHZlcnNpb24gbWF5IGV4aXN0LgorCS0tPgorPCFFTEVNRU5UIGRhdGFiYXNlX3ZlcnNpb24gKCNQQ0RBVEEpPgorPCEtLQorCVRoZSB2ZXJzaW9uIG9mIHRoZSBmaWxlLCBpbiB0aGUgZm9ybWF0IFlZWVktTk4sIHdoZXJlIE5OIHdpbGwgYmUKKwlhIG51bWJlciBzdGFydGluZyB3aXRoIDAxIGZvciB0aGUgZmlyc3QgdmVyc2lvbiByZWxlYXNlZCBpbiBhCisJY2FsZW5kYXIgeWVhciwgdGhlbiBpbmNyZWFzaW5nIGZvciBlYWNoIHZlcnNpb24gaW4gdGhhdCB5ZWFyLgorCS0tPgorPCFFTEVNRU5UIGRhdGVfb2ZfY3JlYXRpb24gKCNQQ0RBVEEpPgorPCEtLQorCVRoZSBkYXRlIHRoZSBmaWxlIHdhcyBjcmVhdGVkIGluIGludGVybmF0aW9uYWwgZm9ybWF0IChZWVlZLU1NLUREKS4KKwktLT4KKzwhRUxFTUVOVCBjaGFyYWN0ZXIgKGxpdGVyYWwsY29kZXBvaW50LCByYWRpY2FsLCBtaXNjLCBkaWNfbnVtYmVyPywgcXVlcnlfY29kZT8sIHJlYWRpbmdfbWVhbmluZz8sbmFub3JpPykqPgorPCFFTEVNRU5UIGxpdGVyYWwgKCNQQ0RBVEEpPgorPCEtLQorCVRoZSBjaGFyYWN0ZXIgaXRzZWxmIGluIFVURjggY29kaW5nLgorCS0tPgorPCFFTEVNRU5UIGNvZGVwb2ludCAoY3BfdmFsdWUrKT4KKwk8IS0tIAorCVRoZSBjb2RlcG9pbnQgZWxlbWVudCBzdGF0ZXMgdGhlIGNvZGUgb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgdmFyaW91cworCWNoYXJhY3RlciBzZXQgc3RhbmRhcmRzLgorCS0tPgorPCFFTEVNRU5UIGNwX3ZhbHVlICgjUENEQVRBKT4KKwk8IS0tIAorCVRoZSBjcF92YWx1ZSBjb250YWlucyB0aGUgY29kZXBvaW50IG9mIHRoZSBjaGFyYWN0ZXIgaW4gYSBwYXJ0aWN1bGFyCisJc3RhbmRhcmQuIFRoZSBzdGFuZGFyZCB3aWxsIGJlIGlkZW50aWZpZWQgaW4gdGhlIGNwX3R5cGUgYXR0cmlidXRlLgorCS0tPgorPCFBVFRMSVNUIGNwX3ZhbHVlIGNwX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorCTwhLS0gCisJVGhlIGNwX3R5cGUgYXR0cmlidXRlIHN0YXRlcyB0aGUgY29kaW5nIHN0YW5kYXJkIGFwcGx5aW5nIHRvIHRoZQorCWVsZW1lbnQuIFRoZSB2YWx1ZXMgYXNzaWduZWQgc28gZmFyIGFyZToKKwkJamlzMjA4IC0gSklTIFggMDIwOC0xOTk3IC0ga3V0ZW4gY29kaW5nIChubi1ubikKKwkJamlzMjEyIC0gSklTIFggMDIxMi0xOTkwIC0ga3V0ZW4gY29kaW5nIChubi1ubikKKwkJamlzMjEzIC0gSklTIFggMDIxMy0yMDAwIC0ga3V0ZW4gY29kaW5nIChwLW5uLW5uKQorCQl1Y3MgLSBVbmljb2RlIDQuMCAtIGhleCBjb2RpbmcgKDQgb3IgNSBoZXhhZGVjaW1hbCBkaWdpdHMpCisJLS0+Cis8IUVMRU1FTlQgcmFkaWNhbCAocmFkX3ZhbHVlKyk+Cis8IUVMRU1FTlQgcmFkX3ZhbHVlICgjUENEQVRBKT4KKwk8IS0tIAorCVRoZSByYWRpY2FsIG51bWJlciwgaW4gdGhlIHJhbmdlIDEgdG8gMjE0LiBUaGUgcGFydGljdWxhcgorCWNsYXNzaWZpY2F0aW9uIHR5cGUgaXMgc3RhdGVkIGluIHRoZSByYWRfdHlwZSBhdHRyaWJ1dGUuCisJLS0+Cis8IUFUVExJU1QgcmFkX3ZhbHVlIHJhZF90eXBlIENEQVRBICNSRVFVSVJFRD4KKwk8IS0tIAorCVRoZSByYWRfdHlwZSBhdHRyaWJ1dGUgc3RhdGVzIHRoZSB0eXBlIG9mIHJhZGljYWwgY2xhc3NpZmljYXRpb24uCisJCWNsYXNzaWNhbCAtIGFzIHJlY29yZGVkIGluIHRoZSBLYW5nWGkgWmlkaWFuLgorCQluZWxzb24gLSBhcyB1c2VkIGluIHRoZSBOZWxzb24gIk1vZGVybiBKYXBhbmVzZS1FbmdsaXNoIAorCQlDaGFyYWN0ZXIgRGljdGlvbmFyeSIgKGkuZS4gdGhlIENsYXNzaWMsIG5vdCB0aGUgTmV3IE5lbHNvbikuCisJCVRoaXMgd2lsbCBvbmx5IGJlIHVzZWQgd2hlcmUgTmVsc29uIHJlY2xhc3NpZmllZCB0aGUga2FuamkuCisJLS0+Cis8IUVMRU1FTlQgbWlzYyAoZ3JhZGU/LCBzdHJva2VfY291bnQrLCB2YXJpYW50KiwgZnJlcSosIHJhZF9uYW1lKik+Cis8IUVMRU1FTlQgZ3JhZGUgKCNQQ0RBVEEpPgorCTwhLS0gCisJVGhlIEpvdXlvdSBLYW5qaSBncmFkZSBsZXZlbC4gMSB0aHJvdWdoIDYgaW5kaWNhdGUgdGhlIGdyYWRlIGluIHdoaWNoCisJdGhlIGthbmppIGlzIHRhdWdodCBpbiBKYXBhbmVzZSBzY2hvb2xzLiA4IGluZGljYXRlcyBpdCBpcyBvbmUgb2YgdGhlCisJcmVtYWluaW5nIEpvdXlvdSBLYW5qaSB0byBiZSBsZWFybmVkIGluIGp1bmlvciBoaWdoIHNjaG9vbCwgYW5kIDkgCisJaW5kaWNhdGVzIGl0IGlzIGEgSmlubWVpeW91IChmb3IgdXNlIGluIG5hbWVzKSBrYW5qaS4gW0ddCisJLS0+Cis8IUVMRU1FTlQgc3Ryb2tlX2NvdW50ICgjUENEQVRBKT4KKwk8IS0tIAorCVRoZSBzdHJva2UgY291bnQgb2YgdGhlIGthbmppLCBpbmNsdWRpbmcgdGhlIHJhZGljYWwuIElmIG1vcmUgdGhhbiAKKwlvbmUsIHRoZSBmaXJzdCBpcyBjb25zaWRlcmVkIHRoZSBhY2NlcHRlZCBjb3VudCwgd2hpbGUgc3Vic2VxdWVudCBvbmVzIAorCWFyZSBjb21tb24gbWlzY291bnRzLiAoU2VlIEFwcGVuZGl4IEUuIG9mIHRoZSBLQU5KSURJQyBkb2N1bWVudGF0aW9uCisJZm9yIHNvbWUgb2YgdGhlIHJ1bGVzIGFwcGxpZWQgd2hlbiBjb3VudGluZyBzdHJva2VzIGluIHNvbWUgb2YgdGhlIAorCXJhZGljYWxzLikgW1NdCisJLS0+Cis8IUVMRU1FTlQgdmFyaWFudCAoI1BDREFUQSk+CisJPCEtLSAKKwlBIGNyb3NzLXJlZmVyZW5jZSBjb2RlIHRvIGFub3RoZXIga2FuamksIHVzdWFsbHkgcmVnYXJkZWQgYXMgYSB2YXJpYW50LgorCVRoZSB0eXBlIG9mIGNyb3NzLXJlZmVyZW5jZSBpcyBnaXZlbiBpbiB0aGUgdmFyX3R5cGUgYXR0cmlidXRlLgorCS0tPgorPCFBVFRMSVNUIHZhcmlhbnQgdmFyX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorCTwhLS0gCisJVGhlIHZhcl90eXBlIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdmFyaWFudCBjb2RlLiBUaGUgY3VycmVudAorCXZhbHVlcyBhcmU6IAorCQlqaXMyMDggLSBpbiBKSVMgWCAwMjA4IC0ga3V0ZW4gY29kaW5nCisJCWppczIxMiAtIGluIEpJUyBYIDAyMTIgLSBrdXRlbiBjb2RpbmcKKwkJamlzMjEzIC0gaW4gSklTIFggMDIxMyAtIGt1dGVuIGNvZGluZworCQlkZXJvbyAtIERlIFJvbyBudW1iZXIgLSBudW1lcmljCisJCW5qZWNkIC0gSGFscGVybiBOSkVDRCBpbmRleCBudW1iZXIgLSBudW1lcmljCisJCXNfaCAtIFRoZSBLYW5qaSBEaWN0aW9uYXJ5IChTcGFobiAmIEhhZGFtaXR6a3kpIC0gZGVzY3JpcHRvcgorCQluZWxzb24gLSAiQ2xhc3NpYyIgTmVsc29uIC0gbnVtZXJpYworCQlvbmVpbGwgLSBKYXBhbmVzZSBOYW1lcyAoTydOZWlsbCkgLSBudW1lcmljCisJLS0+Cis8IUVMRU1FTlQgZnJlcSAoI1BDREFUQSk+CisJPCEtLSAKKwlBIGZyZXF1ZW5jeS1vZi11c2UgcmFua2luZy4gVGhlIDIsNTAwIG1vc3QtdXNlZCBjaGFyYWN0ZXJzIGhhdmUgYSAKKwlyYW5raW5nOyB0aG9zZSBjaGFyYWN0ZXJzIHRoYXQgbGFjayB0aGlzIGZpZWxkIGFyZSBub3QgcmFua2VkLiBUaGUgCisJZnJlcXVlbmN5IGlzIGEgbnVtYmVyIGZyb20gMSB0byAyLDUwMCB0aGF0IGV4cHJlc3NlcyB0aGUgcmVsYXRpdmUgCisJZnJlcXVlbmN5IG9mIG9jY3VycmVuY2Ugb2YgYSBjaGFyYWN0ZXIgaW4gbW9kZXJuIEphcGFuZXNlLiBUaGlzIGlzCisJYmFzZWQgb24gYSBzdXJ2ZXkgaW4gbmV3c3BhcGVycywgc28gaXQgaXMgYmlhc3NlZCB0b3dhcmRzIGthbmppCisJdXNlZCBpbiBuZXdzcGFwZXIgYXJ0aWNsZXMuIFRoZSBkaXNjcmltaW5hdGlvbiBiZXR3ZWVuIHRoZSBsZXNzCisJZnJlcXVlbnRseSB1c2VkIGthbmppIGlzIG5vdCBzdHJvbmcuCisJLS0+Cis8IUVMRU1FTlQgcmFkX25hbWUgKCNQQ0RBVEEpPgorCTwhLS0gCisJV2hlbiB0aGUga2FuamkgaXMgaXRzZWxmIGEgcmFkaWNhbCBhbmQgaGFzIGEgbmFtZSwgdGhpcyBlbGVtZW50CisJY29udGFpbnMgdGhlIG5hbWUgKGluIGhpcmFnYW5hLikgW1QyXQorCS0tPgorPCFFTEVNRU5UIGRpY19udW1iZXIgKGRpY19yZWYrKT4KKwk8IS0tIAorCVRoaXMgZWxlbWVudCBjb250YWlucyB0aGUgaW5kZXggbnVtYmVycyBhbmQgc2ltaWxhciB1bnN0cnVjdHVyZWQKKwlpbmZvcm1hdGlvbiBzdWNoIGFzIHBhZ2UgbnVtYmVycyBpbiBhIG51bWJlciBvZiBwdWJsaXNoZWQgZGljdGlvbmFyaWVzLAorCWFuZCBpbnN0cnVjdGlvbmFsIGJvb2tzIG9uIGthbmppLgorCS0tPgorPCFFTEVNRU5UIGRpY19yZWYgKCNQQ0RBVEEpPgorCTwhLS0gCisJRWFjaCBkaWNfcmVmIGNvbnRhaW5zIGFuIGluZGV4IG51bWJlci4gVGhlIHBhcnRpY3VsYXIgZGljdGlvbmFyeSwKKwlldGMuIGlzIGRlZmluZWQgYnkgdGhlIGRyX3R5cGUgYXR0cmlidXRlLgorCS0tPgorPCFBVFRMSVNUIGRpY19yZWYgZHJfdHlwZSBDREFUQSAjUkVRVUlSRUQ+CisJPCEtLSAKKwlUaGUgZHJfdHlwZSBkZWZpbmVzIHRoZSBkaWN0aW9uYXJ5IG9yIHJlZmVyZW5jZSBib29rLCBldGMuIHRvIHdoaWNoCisJZGljX3JlZiBlbGVtZW50IGFwcGxpZXMuIFRoZSBpbml0aWFsIGFsbG9jYXRpb24gaXM6CisJICBuZWxzb25fYyAtICJNb2Rlcm4gUmVhZGVyJ3MgSmFwYW5lc2UtRW5nbGlzaCBDaGFyYWN0ZXIgRGljdGlvbmFyeSIsICAKKwkgIAllZGl0ZWQgYnkgQW5kcmV3IE5lbHNvbiAobm93IHB1Ymxpc2hlZCBhcyB0aGUgIkNsYXNzaWMiIAorCSAgCU5lbHNvbikuCisJICBuZWxzb25fbiAtICJUaGUgTmV3IE5lbHNvbiBKYXBhbmVzZS1FbmdsaXNoIENoYXJhY3RlciBEaWN0aW9uYXJ5IiwgCisJICAJZWRpdGVkIGJ5IEpvaG4gSGFpZy4KKwkgIGhhbHBlcm5fbmplY2QgLSAiTmV3IEphcGFuZXNlLUVuZ2xpc2ggQ2hhcmFjdGVyIERpY3Rpb25hcnkiLCAKKwkgIAllZGl0ZWQgYnkgSmFjayBIYWxwZXJuLgorCSAgaGFscGVybl9ra2xkIC0gIkthbmppIExlYXJuZXJzIERpY3Rpb25hcnkiIChLb2RhbnNoYSkgZWRpdGVkIGJ5IAorCSAgCUphY2sgSGFscGVybi4KKwkgIGhlaXNpZyAtICJSZW1lbWJlcmluZyBUaGUgIEthbmppIiAgYnkgIEphbWVzIEhlaXNpZy4KKwkgIGdha2tlbiAtICJBICBOZXcgRGljdGlvbmFyeSBvZiBLYW5qaSBVc2FnZSIgKEdha2tlbikKKwkgIG9uZWlsbF9uYW1lcyAtICJKYXBhbmVzZSBOYW1lcyIsIGJ5IFAuRy4gTydOZWlsbC4gCisJICBvbmVpbGxfa2sgLSAiRXNzZW50aWFsIEthbmppIiBieSBQLkcuIE8nTmVpbGwuCisJICBtb3JvIC0gIkRhaWthbndhaml0ZW4iIGNvbXBpbGVkIGJ5IE1vcm9oYXNoaS4gRm9yIHNvbWUga2FuamkgdHdvCisJICAJYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGFyZSB1c2VkOiBtX3ZvbDogIHRoZSB2b2x1bWUgb2YgdGhlCisJICAJZGljdGlvbmFyeSBpbiB3aGljaCB0aGUga2FuamkgaXMgZm91bmQsIGFuZCBtX3BhZ2U6IHRoZSBwYWdlCisJICAJbnVtYmVyIGluIHRoZSB2b2x1bWUuCisJICBoZW5zaGFsbCAtICJBIEd1aWRlIFRvIFJlbWVtYmVyaW5nIEphcGFuZXNlIENoYXJhY3RlcnMiIGJ5CisJICAJS2VubmV0aCBHLiAgSGVuc2hhbGwuCisJICBzaF9rayAtICJLYW5qaSBhbmQgS2FuYSIgYnkgU3BhaG4gYW5kIEhhZGFtaXR6a3kuCisJICBzYWthZGUgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiBlZGl0ZWQgYnkKKwkgIAlGbG9yZW5jZSBTYWthZGUuCisJICBoZW5zaGFsbDMgLSAiQSBHdWlkZSBUbyBSZWFkaW5nIGFuZCBXcml0aW5nIEphcGFuZXNlIiAzcmQKKwkJZWRpdGlvbiwgZWRpdGVkIGJ5IEhlbnNoYWxsLCBTZWVsZXkgYW5kIERlIEdyb290LgorCSAgdHV0dF9jYXJkcyAtIFR1dHRsZSBLYW5qaSBDYXJkcywgY29tcGlsZWQgYnkgQWxleGFuZGVyIEthc2suCisJICBjcm93bGV5IC0gIlRoZSBLYW5qaSBXYXkgdG8gSmFwYW5lc2UgTGFuZ3VhZ2UgUG93ZXIiIGJ5CisJICAJRGFsZSBDcm93bGV5LgorCSAga2FuamlfaW5fY29udGV4dCAtICJLYW5qaSBpbiBDb250ZXh0IiBieSBOaXNoaWd1Y2hpIGFuZCBLb25vLgorCSAgYnVzeV9wZW9wbGUgLSAiSmFwYW5lc2UgRm9yIEJ1c3kgUGVvcGxlIiB2b2xzIEktSUlJLCBwdWJsaXNoZWQKKwkJYnkgdGhlIEFKTFQuIFRoZSBjb2RlcyBhcmUgdGhlIHZvbHVtZS5jaGFwdGVyLgorCSAga29kYW5zaGFfY29tcGFjdCAtIHRoZSAiS29kYW5zaGEgQ29tcGFjdCBLYW5qaSBHdWlkZSIuCisJLS0+Cis8IUFUVExJU1QgZGljX3JlZiBtX3ZvbCBDREFUQSAjSU1QTElFRD4KKwk8IS0tIAorCVNlZSBhYm92ZSB1bmRlciAibW9ybyIuCisJLS0+Cis8IUFUVExJU1QgZGljX3JlZiBtX3BhZ2UgQ0RBVEEgI0lNUExJRUQ+CisJPCEtLSAKKwlTZWUgYWJvdmUgdW5kZXIgIm1vcm8iLgorCS0tPgorPCFFTEVNRU5UIHF1ZXJ5X2NvZGUgKHFfY29kZSspPgorCTwhLS0gCisJVGhlc2UgY29kZXMgY29udGFpbiBpbmZvcm1hdGlvbiByZWxhdGluZyB0byB0aGUgZ2x5cGgsIGFuZCBjYW4gYmUgdXNlZAorCWZvciBmaW5kaW5nIGEgcmVxdWlyZWQga2FuamkuIFRoZSB0eXBlIG9mIGNvZGUgaXMgZGVmaW5lZCBieSB0aGUKKwlxY190eXBlIGF0dHJpYnV0ZS4KKwktLT4KKzwhRUxFTUVOVCBxX2NvZGUgKCNQQ0RBVEEpPgorCTwhLS0KKwlUaGUgcV9jb2RlIGNvbnRhaW5zIHRoZSBhY3R1YWwgcXVlcnktY29kZSB2YWx1ZSwgYWNjb3JkaW5nIHRvIHRoZQorCXFjX3R5cGUgYXR0cmlidXRlLgorCS0tPgorPCFBVFRMSVNUIHFfY29kZSBxY190eXBlIENEQVRBICNSRVFVSVJFRD4KKwk8IS0tIAorCVRoZSBxX2NvZGUgYXR0cmlidXRlIGRlZmluZXMgdGhlIHR5cGUgb2YgcXVlcnkgY29kZS4gVGhlIGN1cnJlbnQgdmFsdWVzCisJYXJlOgorCSAgc2tpcCAtICBIYWxwZXJuJ3MgU0tJUCAoU3lzdGVtICBvZiAgS2FuamkgIEluZGV4aW5nICBieSAgUGF0dGVybnMpIAorCSAgCWNvZGUuIFRoZSAgZm9ybWF0IGlzIG4tbm4tbm4uICBTZWUgdGhlIEtBTkpJRElDICBkb2N1bWVudGF0aW9uIAorCSAgCWZvciAgYSBkZXNjcmlwdGlvbiBvZiB0aGUgY29kZSBhbmQgcmVzdHJpY3Rpb25zIG9uICB0aGUgCisJICAJY29tbWVyY2lhbCAgdXNlICBvZiB0aGlzIGRhdGEuIFtQXQorCisJICBzaF9kZXNjIC0gdGhlIGRlc2NyaXB0b3IgY29kZXMgZm9yIFRoZSBLYW5qaSBEaWN0aW9uYXJ5IChUdXR0bGUgCisJICAJMTk5NikgYnkgU3BhaG4gYW5kIEhhZGFtaXR6a3kuIFRoZXkgYXJlIGluIHRoZSBmb3JtIG54bm4ubiwgIAorCSAgCWUuZy4gIDNrMTEuMiwgd2hlcmUgdGhlICBrYW5qaSBoYXMgMyBzdHJva2VzIGluIHRoZSAKKwkgIAlpZGVudGlmeWluZyByYWRpY2FsLCBpdCBpcyByYWRpY2FsICJrIiBpbiB0aGUgU0ggCisJICAJY2xhc3NpZmljYXRpb24gc3lzdGVtLCB0aGVyZSBhcmUgMTEgb3RoZXIgc3Ryb2tlcywgYW5kIGl0IGlzIAorCSAgCXRoZSAybmQga2FuamkgaW4gdGhlIDNrMTEgc2VxdWVuY2UuIChJIGFtIHZlcnkgZ3JhdGVmdWwgdG8gCisJICAJTWFyayBTcGFobiBmb3IgcHJvdmlkaW5nIHRoZSBsaXN0IG9mIHRoZXNlIGRlc2NyaXB0b3IgY29kZXMgCisJICAJZm9yIHRoZSBrYW5qaSBpbiB0aGlzIGZpbGUuKSBbSV0KKwkgIGZvdXJfY29ybmVyIC0gdGhlICJGb3VyIENvcm5lciIgY29kZSBmb3IgdGhlIGthbmppLiBUaGlzIGlzIGEgY29kZSAKKwkgIAlpbnZlbnRlZCBieSBXYW5nIENoZW4gaW4gMTkyOC4gU2VlIHRoZSBLQU5KSURJQyBkb2N1bWVudGF0aW9uIAorCSAgCWZvciAgYW4gb3ZlcnZpZXcgb2YgIHRoZSBGb3VyIENvcm5lciBTeXN0ZW0uIFtRXQorCisJICBkZXJvbyAtIHRoZSBjb2RlcyBkZXZlbG9wZWQgYnkgdGhlIGxhdGUgRmF0aGVyIEpvc2VwaCBEZSBSb28sIGFuZCAKKwkgIAlwdWJsaXNoZWQgaW4gIGhpcyBib29rICIyMDAxIEthbmppIiAoQm9qaW5zaGEpLiBGciBEZSBSb28gCisJICAJZ2F2ZSBoaXMgcGVybWlzc2lvbiBmb3IgdGhlc2UgY29kZXMgdG8gYmUgaW5jbHVkZWQuIFtEUl0KKwkgIG1pc2NsYXNzIC0gYSBwb3NzaWJsZSBtaXNjbGFzc2lmaWNhdGlvbiBvZiB0aGUga2FuamkgYWNjb3JkaW5nCisJCXRvIG9uZSBvZiB0aGUgY29kZSB0eXBlcy4gKFNlZSB0aGUgIloiIGNvZGVzIGluIHRoZSBLQU5KSURJQworCQlkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuKQorCSAgCisJLS0+Cis8IUVMRU1FTlQgcmVhZGluZ19tZWFuaW5nIChybWdyb3VwKiwgbmFub3JpKik+CisJPCEtLSAKKwlUaGUgcmVhZGluZ3MgZm9yIHRoZSBrYW5qaSBpbiBzZXZlcmFsIGxhbmd1YWdlcywgYW5kIHRoZSBtZWFuaW5ncywgYWxzbworCWluIHNldmVyYWwgbGFuZ3VhZ2VzLiBUaGUgcmVhZGluZ3MgYW5kIG1lYW5pbmdzIGFyZSBncm91cGVkIHRvIGVuYWJsZQorCXRoZSBoYW5kbGluZyBvZiB0aGUgc2l0dWF0aW9uIHdoZXJlIHRoZSBtZWFuaW5nIGlzIGRpZmZlcmVudGlhdGVkIGJ5IAorCXJlYWRpbmcuIFtUMV0KKwktLT4KKzwhRUxFTUVOVCBuYW5vcmkgKCNQQ0RBVEEpPgorCTwhLS0gCisJSmFwYW5lc2UgcmVhZGluZ3MgdGhhdCBhcmUgbm93IG9ubHkgYXNzb2NpYXRlZCB3aXRoIG5hbWVzLgorCS0tPgorPCFFTEVNRU5UIHJtZ3JvdXAgKHJlYWRpbmcqLCBtZWFuaW5nKik+Cis8IUVMRU1FTlQgcmVhZGluZyAoI1BDREFUQSk+CisJPCEtLSAKKwlUaGUgcmVhZGluZyBlbGVtZW50IGNvbnRhaW5zIHRoZSByZWFkaW5nIG9yIHByb251bmNpYXRpb24KKwlvZiB0aGUga2FuamkuCisJLS0+Cis8IUFUVExJU1QgcmVhZGluZyByX3R5cGUgQ0RBVEEgI1JFUVVJUkVEPgorCTwhLS0gCisJVGhlIHJfdHlwZSBhdHRyaWJ1dGUgZGVmaW5lcyB0aGUgdHlwZSBvZiByZWFkaW5nIGluIHRoZSByZWFkaW5nCisJZWxlbWVudC4gVGhlIGN1cnJlbnQgdmFsdWVzIGFyZToKKwkgIHBpbnlpbiAtIHRoZSBtb2Rlcm4gUGluWWluIHJvbWFuaXphdGlvbiBvZiB0aGUgQ2hpbmVzZSByZWFkaW5nIAorCSAgCW9mIHRoZSBrYW5qaS4gVGhlIHRvbmVzIGFyZSByZXByZXNlbnRlZCBieSBhIGNvbmNsdWRpbmcgCisJICAJZGlnaXQuIFtZXQorCSAga29yZWFuX3IgLSB0aGUgcm9tYW5pemVkIGZvcm0gb2YgdGhlIEtvcmVhbiByZWFkaW5nKHMpIG9mIHRoZSAKKwkgIAlrYW5qaS4gIFRoZSByZWFkaW5ncyBhcmUgaW4gdGhlIChSZXB1YmxpYyBvZiBLb3JlYSkgTWluaXN0cnkgCisJICAJb2YgRWR1Y2F0aW9uIHN0eWxlIG9mIHJvbWFuaXphdGlvbi4gW1ddCisJICBrb3JlYW5faCAtIHRoZSBLb3JlYW4gcmVhZGluZyhzKSBvZiB0aGUga2FuamkgaW4gaGFuZ3VsLgorCSAgamFfb24gLSB0aGUgIm9uIiBKYXBhbmVzZSByZWFkaW5nIG9mIHRoZSBrYW5qaSwgaW4ga2F0YWthbmEuIEEKKwkgIAlzZWNvbmQgYXR0cmlidXRlIHJfc3RhdHVzLCBpZiBwcmVzZW50LCB3aWxsIGluZGljYXRlIHdpdGgKKwkgIAlhIHZhbHVlIG9mICJqeSIgd2hldGhlciB0aGUgcmVhZGluZyBpcyBhcHByb3ZlZCBmb3IgYQorCSAgCSJKb3V5b3Uga2FuamkiLgorCSAgamFfa3VuIC0gdGhlICJrdW4iIEphcGFuZXNlIHJlYWRpbmcgb2YgdGhlIGthbmppLCBpbiBoaXJhZ2FuYS4gCisJICAJV2hlcmUgcmVsZXZhbnQgdGhlIG9rdXJpZ2FuYSBpcyBhbHNvIGluY2x1ZGVkIHNlcGFyYXRlZCBieSBhIAorCSAgCSIuIi4gUmVhZGluZ3MgYXNzb2NpYXRlZCB3aXRoIHByZWZpeGVzIGFuZCBzdWZmaXhlcyBhcmUgCisJICAJbWFya2VkIHdpdGggYSAiLSIuIEEgc2Vjb25kIGF0dHJpYnV0ZSByX3N0YXR1cywgaWYgcHJlc2VudCwgCisJICAJd2lsbCBpbmRpY2F0ZSB3aXRoIGEgdmFsdWUgb2YgImp5IiB3aGV0aGVyIHRoZSByZWFkaW5nIGlzIAorCSAgCWFwcHJvdmVkIGZvciBhICJKb3V5b3Uga2FuamkiLgorCS0tPgorPCFBVFRMSVNUIHJlYWRpbmcgcl9zdGF0dXMgQ0RBVEEgI0lNUExJRUQ+CisJPCEtLSAKKwlTZWUgdW5kZXIgamFfb24gYW5kIGphX2t1biBhYm92ZS4KKwktLT4KKzwhRUxFTUVOVCBtZWFuaW5nICgjUENEQVRBKT4KKwk8IS0tIAorCVRoZSBtZWFuaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUga2FuamkuCisJLS0+Cis8IUFUVExJU1QgbWVhbmluZyBtX2xhbmcgQ0RBVEEgI0lNUExJRUQ+CisJPCEtLSAKKwlUaGUgbV9sYW5nIGF0dHJpYnV0ZSBkZWZpbmVzIHRoZSB0YXJnZXQgbGFuZ3VhZ2Ugb2YgdGhlIG1lYW5pbmcuIEl0IAorCXdpbGwgYmUgY29kZWQgdXNpbmcgdGhlIHR3by1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSBmcm9tIHRoZSBJU08gNjM5IAorCXN0YW5kYXJkLiBXaGVuIGFic2VudCwgdGhlIHZhbHVlICJlbiIgKGkuZS4gRW5nbGlzaCkgaXMgaW1wbGllZC4gW3t9XQorCS0tPgorXSA+Cis8a2FuamlkaWMyPgorPC9rYW5qaWRpYzI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvaXNvbGF0MSBiL2xpYnhtbDItMi43LjcvdGVzdC9pc29sYXQxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNWEwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvaXNvbGF0MQpAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx0cuhzPmzgPC90cuhzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L2lzb2xhdDIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvaXNvbGF0MgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzI5MGI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L2lzb2xhdDIKQEAgLTAsMCArMSwxMDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx0c3Q+CisKKyAgICAgICBUaGUgZm9sbG93aW5nIHRhYmxlIGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXJzICBpbiAgSVNPICA4ODU5CisgICAgICAgTGF0aW4tMSwgIHdoaWNoIGFyZSBwcmludGFibGUgYW5kIHVubGlzdGVkIGluIHRoZSBhc2NpaQorICAgICAgIG1hbnVhbCBwYWdlLgorCisgICAgICAgT2N0ICAgRGVjICAgSGV4ICAgQ2hhciAgIERlc2NyaXB0aW9uCisgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAyNDAgICAxNjAgICBBMCAgICAgICAgICAgTk8tQlJFQUsgU1BBQ0UKKyAgICAgICAyNDEgICAxNjEgICBBMSAgICAgoSAgICAgSU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSworICAgICAgIDI0MiAgIDE2MiAgIEEyICAgICCiICAgICBDRU5UIFNJR04KKyAgICAgICAyNDMgICAxNjMgICBBMyAgICAgoyAgICAgUE9VTkQgU0lHTgorICAgICAgIDI0NCAgIDE2NCAgIEE0ICAgICCkICAgICBDVVJSRU5DWSBTSUdOCisgICAgICAgMjQ1ICAgMTY1ICAgQTUgICAgIKUgICAgIFlFTiBTSUdOCisgICAgICAgMjQ2ICAgMTY2ICAgQTYgICAgIKYgICAgIEJST0tFTiBCQVIKKyAgICAgICAyNDcgICAxNjcgICBBNyAgICAgpyAgICAgU0VDVElPTiBTSUdOCisgICAgICAgMjUwICAgMTY4ICAgQTggICAgIKggICAgIERJQUVSRVNJUworICAgICAgIDI1MSAgIDE2OSAgIEE5ICAgICCpICAgICBDT1BZUklHSFQgU0lHTgorICAgICAgIDI1MiAgIDE3MCAgIEFBICAgICCqICAgICBGRU1JTklORSBPUkRJTkFMIElORElDQVRPUgorICAgICAgIDI1MyAgIDE3MSAgIEFCICAgICCrICAgICBMRUZULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICAgIDI1NCAgIDE3MiAgIEFDICAgICCsICAgICBOT1QgU0lHTgorICAgICAgIDI1NSAgIDE3MyAgIEFEICAgICCtICAgICBTT0ZUIEhZUEhFTgorICAgICAgIDI1NiAgIDE3NCAgIEFFICAgICCuICAgICBSRUdJU1RFUkVEIFNJR04KKyAgICAgICAyNTcgICAxNzUgICBBRiAgICAgryAgICAgTUFDUk9OCisgICAgICAgMjYwICAgMTc2ICAgQjAgICAgILAgICAgIERFR1JFRSBTSUdOCisgICAgICAgMjYxICAgMTc3ICAgQjEgICAgILEgICAgIFBMVVMtTUlOVVMgU0lHTgorICAgICAgIDI2MiAgIDE3OCAgIEIyICAgICCyICAgICBTVVBFUlNDUklQVCBUV08KKyAgICAgICAyNjMgICAxNzkgICBCMyAgICAgsyAgICAgU1VQRVJTQ1JJUFQgVEhSRUUKKyAgICAgICAyNjQgICAxODAgICBCNCAgICAgtCAgICAgQUNVVEUgQUNDRU5UCisgICAgICAgMjY1ICAgMTgxICAgQjUgICAgILUgICAgIE1JQ1JPIFNJR04KKyAgICAgICAyNjYgICAxODIgICBCNiAgICAgtiAgICAgUElMQ1JPVyBTSUdOCisgICAgICAgMjY3ICAgMTgzICAgQjcgICAgILcgICAgIE1JRERMRSBET1QKKyAgICAgICAyNzAgICAxODQgICBCOCAgICAguCAgICAgQ0VESUxMQQorICAgICAgIDI3MSAgIDE4NSAgIEI5ICAgICC5ICAgICBTVVBFUlNDUklQVCBPTkUKKyAgICAgICAyNzIgICAxODYgICBCQSAgICAguiAgICAgTUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SCisgICAgICAgMjczICAgMTg3ICAgQkIgICAgILsgICAgIFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICAgIDI3NCAgIDE4OCAgIEJDICAgICC8ICAgICBWVUxHQVIgRlJBQ1RJT04gT05FIFFVQVJURVIKKyAgICAgICAyNzUgICAxODkgICBCRCAgICAgvSAgICAgVlVMR0FSIEZSQUNUSU9OIE9ORSBIQUxGCisgICAgICAgMjc2ICAgMTkwICAgQkUgICAgIL4gICAgIFZVTEdBUiBGUkFDVElPTiBUSFJFRSBRVUFSVEVSUworICAgICAgIDI3NyAgIDE5MSAgIEJGICAgICC/ICAgICBJTlZFUlRFRCBRVUVTVElPTiBNQVJLCisgICAgICAgMzAwICAgMTkyICAgQzAgICAgIMAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBHUkFWRQorICAgICAgIDMwMSAgIDE5MyAgIEMxICAgICDBICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAgICAzMDIgICAxOTQgICBDMiAgICAgwiAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzMDMgICAxOTUgICBDMyAgICAgwyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFRJTERFCisgICAgICAgMzA0ICAgMTk2ICAgQzQgICAgIMQgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMDUgICAxOTcgICBDNSAgICAgxSAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUKKyAgICAgICAzMDYgICAxOTggICBDNiAgICAgxiAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUKKyAgICAgICAzMDcgICAxOTkgICBDNyAgICAgxyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAgICAzMTAgICAyMDAgICBDOCAgICAgyCAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEdSQVZFCisgICAgICAgMzExICAgMjAxICAgQzkgICAgIMkgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBBQ1VURQorICAgICAgIDMxMiAgIDIwMiAgIENBICAgICDKICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDMxMyAgIDIwMyAgIENCICAgICDLICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTCisgICAgICAgMzE0ICAgMjA0ICAgQ0MgICAgIMwgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgICAgIDMxNSAgIDIwNSAgIENEICAgICDNICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAgICAzMTYgICAyMDYgICBDRSAgICAgziAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzMTcgICAyMDcgICBDRiAgICAgzyAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUworICAgICAgIDMyMCAgIDIwOCAgIEQwICAgICDQICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEgKKyAgICAgICAzMjEgICAyMDkgICBEMSAgICAg0SAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFRJTERFCisgICAgICAgMzIyICAgMjEwICAgRDIgICAgINIgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBHUkFWRQorICAgICAgIDMyMyAgIDIxMSAgIEQzICAgICDTICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAgICAzMjQgICAyMTIgICBENCAgICAg1CAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzMjUgICAyMTMgICBENSAgICAg1SAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFCisgICAgICAgMzI2ICAgMjE0ICAgRDYgICAgINYgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAgICAzMjcgICAyMTUgICBENyAgICAg1yAgICAgTVVMVElQTElDQVRJT04gU0lHTgorICAgICAgIDMzMCAgIDIxNiAgIEQ4ICAgICDYICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFCisgICAgICAgMzMxICAgMjE3ICAgRDkgICAgINkgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRQorICAgICAgIDMzMiAgIDIxOCAgIERBICAgICDaICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEUKKyAgICAgICAzMzMgICAyMTkgICBEQiAgICAg2yAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzMzQgICAyMjAgICBEQyAgICAg3CAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICAgIDMzNSAgIDIyMSAgIEREICAgICDdICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQUNVVEUKKyAgICAgICAzMzYgICAyMjIgICBERSAgICAg3iAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk4KKyAgICAgICAzMzcgICAyMjMgICBERiAgICAg3yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKyAgICAgICAzNDAgICAyMjQgICBFMCAgICAg4CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRQorICAgICAgIDM0MSAgIDIyNSAgIEUxICAgICDhICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgICAgICAgMzQyICAgMjI2ICAgRTIgICAgIOIgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM0MyAgIDIyNyAgIEUzICAgICDjICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFRJTERFCisgICAgICAgMzQ0ICAgMjI4ICAgRTQgICAgIOQgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTCisgICAgICAgMzQ1ICAgMjI5ICAgRTUgICAgIOUgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRQorICAgICAgIDM0NiAgIDIzMCAgIEU2ICAgICDmICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQUUKKyAgICAgICAzNDcgICAyMzEgICBFNyAgICAg5yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBCisgICAgICAgMzUwICAgMjMyICAgRTggICAgIOggICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggR1JBVkUKKyAgICAgICAzNTEgICAyMzMgICBFOSAgICAg6SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBBQ1VURQorICAgICAgIDM1MiAgIDIzNCAgIEVBICAgICDqICAgICBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVgKKyAgICAgICAzNTMgICAyMzUgICBFQiAgICAg6yAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVMKKyAgICAgICAzNTQgICAyMzYgICBFQyAgICAg7CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgICAgIDM1NSAgIDIzNyAgIEVEICAgICDtICAgICBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEFDVVRFCisgICAgICAgMzU2ICAgMjM4ICAgRUUgICAgIO4gICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM1NyAgIDIzOSAgIEVGICAgICDvICAgICBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUworICAgICAgIDM2MCAgIDI0MCAgIEYwICAgICDwICAgICBMQVRJTiBTTUFMTCBMRVRURVIgRVRICisgICAgICAgMzYxICAgMjQxICAgRjEgICAgIPEgICAgIExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggVElMREUKKyAgICAgICAzNjIgICAyNDIgICBGMiAgICAg8iAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBHUkFWRQorICAgICAgIDM2MyAgIDI0MyAgIEYzICAgICDzICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEFDVVRFCisgICAgICAgMzY0ICAgMjQ0ICAgRjQgICAgIPQgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM2NSAgIDI0NSAgIEY1ICAgICD1ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFCisgICAgICAgMzY2ICAgMjQ2ICAgRjYgICAgIPYgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCisgICAgICAgMzY3ICAgMjQ3ICAgRjcgICAgIPcgICAgIERJVklTSU9OIFNJR04KKyAgICAgICAzNzAgICAyNDggICBGOCAgICAg+CAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKKyAgICAgICAzNzEgICAyNDkgICBGOSAgICAg+SAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBHUkFWRQorICAgICAgIDM3MiAgIDI1MCAgIEZBICAgICD6ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgICAgMzczICAgMjUxICAgRkIgICAgIPsgICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWAorICAgICAgIDM3NCAgIDI1MiAgIEZDICAgICD8ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICAgIDM3NSAgIDI1MyAgIEZEICAgICD9ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgICAgMzc2ICAgMjU0ICAgRkUgICAgIP4gICAgIExBVElOIFNNQUxMIExFVFRFUiBUSE9STgorICAgICAgIDM3NyAgIDI1NSAgIEZGICAgICD/ICAgICBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUworCis8L3RzdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9pc29sYXQzIGIvbGlieG1sMi0yLjcuNy90ZXN0L2lzb2xhdDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBmYjNhMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9pc29sYXQzCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J0lTTy04ODU5LTEnPz4KKzxyZWM+Cis8ZWc+PCFbQ0RBVEFbPCFFTlRJVFkgJSBwdWIgICAgIiYjeGM5O2RpdGlvbnMgR2FsbGltYXJkIiA+Cis8IUVOVElUWSAgIHJpZ2h0cyAiQWxsIHJpZ2h0cyByZXNlcnZlZCIgPgorPCFFTlRJVFkgICBib29rICAgIkxhIFBlc3RlOiBBbGJlcnQgQ2FtdXMsIAorJiN4QTk7IDE5NDcgJXB1YjsuICZyaWdodHM7IiA+XV0+PC9lZz4KK3RoZW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIHRoZSBlbnRpdHkgIjxjb2RlPmJvb2s8L2NvZGU+IiBpczoKKzxlZz5MYSBQZXN0ZTogQWxiZXJ0IENhbXVzLCAKKyYjMTY5OyAxOTQ3ICYjMjAxO2RpdGlvbnMgR2FsbGltYXJkLiAmYW1wO3JpZ2h0czs8L2VnPgorPC9yZWM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBiZGQzMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl8wLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIHhtbG5zYmFyPSIxIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI2ZjQzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl8xLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIHhtbG5zOj0iaHR0cDovL2V4YW1wbGUuY29tLyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzEwLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl8xMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YzNjI2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl8xMC54bWwKQEAgLTAsMCArMSBAQAorPHRzdCB4bWxucz0iaHR0cDovL2V4YW1wbGUuY29tLyIgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS8iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl8xMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMTEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkODE5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMTEueG1sCkBAIC0wLDAgKzEgQEAKKzx0c3QgeG1sbnM6YT0iaHR0cDovL2V4YW1wbGUuY29tLyIgeG1sbnM6YT0iaHR0cDovL2V4YW1wbGUuY29tLyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZDUxYjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMi54bWwKQEAgLTAsMCArMSBAQAorPDovPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkNGQ0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfMy54bWwKQEAgLTAsMCArMSBAQAorPDpmb28vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYzI5NGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfNC54bWwKQEAgLTAsMCArMSBAQAorPGY6IHhtbG5zOmY9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl81LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl81LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTQzYzExCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzUueG1sCkBAIC0wLDAgKzEgQEAKKzxmOmE6IHhtbG5zOmY9Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl82LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl82LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2ViM2IyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzYueG1sCkBAIC0wLDAgKzEgQEAKKzxmOmE6YiB4bWxuczpmPSJodHRwOi8vZXhhbXBsZS5jb20vZm9vIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfNy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfNy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJiZTIzNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl83LnhtbApAQCAtMCwwICsxIEBACis8Zjpmb28vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzgueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMjFkYTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9lcnJfOC54bWwKQEAgLTAsMCArMSBAQAorPHRzdCB4bWxuczp4bWw9Imh0dHA6Ly9leGFtcGxlLmNvbS8iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl85LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL2Vycl85LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDc4YzYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvZXJyXzkueG1sCkBAIC0wLDAgKzEsMiBAQAorPHRzdCB4bWxuczphPSJodHRwOi8vZXhhbXBsZS5jb20vIiB4bWxuczpiPSJodHRwOi8vZXhhbXBsZS5jb20vIgorICAgICBhOmVycj0iMSIgYjplcnI9IjIiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL3JlY29uY2lsZS90ZXN0cy10by1jLnhzbCBiL2xpYnhtbDItMi43LjcvdGVzdC9uYW1lc3BhY2VzL3JlY29uY2lsZS90ZXN0cy10by1jLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTBkMWM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvcmVjb25jaWxlL3Rlc3RzLXRvLWMueHNsCkBAIC0wLDAgKzEsMjc1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj4KKwk8eHNsOm91dHB1dCBtZXRob2Q9InRleHQiLz4KKworCTx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgorCQk8eHNsOnRleHQ+PCFbQ0RBVEFbCisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CitdXT4KKzwveHNsOnRleHQ+CisJCTx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzZXJpYWxpemVyIi8+CQkKKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJ0ZXN0cy90ZXN0Ii8+CisJCTx4c2w6dGV4dD4KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7JiN4QTs8L3hzbDp0ZXh0PgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9InRlc3RzL3Rlc3QiIG1vZGU9ImNhbGwiLz4KKwkJPHhzbDp0ZXh0PgorCS8qIHByaW50ZigiZmluaXNoZWQuXG4iKTsgKi8KKwlyZXR1cm4gKDApOworfQorPC94c2w6dGV4dD4KKwk8L3hzbDp0ZW1wbGF0ZT4JCisKKwk8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0ZXN0cy90ZXN0IiBtb2RlPSJjYWxsIj4KKwkJPHhzbDp0ZXh0Pgluc1Rlc3RfPC94c2w6dGV4dD4KKwkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJCTx4c2w6dGV4dD4oKTsmI3hBOzwveHNsOnRleHQ+CisJPC94c2w6dGVtcGxhdGU+CisKKwk8eHNsOnRlbXBsYXRlIG5hbWU9InhtbC10ZXh0Ij4KKwkJPHhzbDpwYXJhbSBuYW1lPSJ0ZXh0Ii8+CisJCTx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJyZXBsYWNlLXN0cmluZyI+CisJCQk8IS0tIFN1YnN0aXR1dGUgIzEwIGZvciAiIC0tPgkgICAgICAgIAkJCQorCSAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9ImZyb20iIHNlbGVjdD0iJyYjMTA7JyIvPgorCSAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRvIiBzZWxlY3Q9IicmcXVvdDsmIzEwOyZxdW90OyciLz4KKwkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0ZXh0Ij4KKwkJCQk8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icmVwbGFjZS1zdHJpbmciPgorCQkJCQk8IS0tIFN1YnN0aXR1dGUgIiBmb3IgXCIgLS0+CisJICAgICAgICAJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJmcm9tIiBzZWxlY3Q9IicmcXVvdDsnIi8+CisJICAgICAgICAJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ0byIgc2VsZWN0PSInXCZxdW90OyciLz4KKwkJCQkJPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiPgorCQkJCQkJPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InJlcGxhY2Utc3RyaW5nIj4KKwkJCQkJCQk8IS0tIFJlbW92ZSB0YWJzLiAtLT4KKwkJCSAgICAgICAgCQk8eHNsOndpdGgtcGFyYW0gbmFtZT0iZnJvbSIgc2VsZWN0PSInJiM5OyciLz4KKwkJCSAgICAgICAgCQk8eHNsOndpdGgtcGFyYW0gbmFtZT0idG8iIHNlbGVjdD0iJyciLz4KKwkJCQkJCQk8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSIkdGV4dCIvPgorCSAgICAJCQkJPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwkJCQkJPC94c2w6d2l0aC1wYXJhbT4KKyAgICAJCQk8L3hzbDpjYWxsLXRlbXBsYXRlPgorCQkJPC94c2w6d2l0aC1wYXJhbT4KKyAgICAJPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKwkJCisJPC94c2w6dGVtcGxhdGU+CisKKwk8eHNsOnRlbXBsYXRlIG1hdGNoPSJkb2MiIG1vZGU9ImRlZmluZSI+CisJCTx4c2w6dGV4dD4JeG1sRG9jUHRyIDwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCQk8eHNsOnRleHQ+OyYjeEE7PC94c2w6dGV4dD4KKwkJPHhzbDp0ZXh0Pgljb25zdCBjaGFyICogPC94c2w6dGV4dD4KKwkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJCTx4c2w6dGV4dD5fc3RyID0gIjwveHNsOnRleHQ+CisJCTx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJ4bWwtdGV4dCI+CisJICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSIuIi8+CisgICAgCTwveHNsOmNhbGwtdGVtcGxhdGU+CQkKKwkJPHhzbDp0ZXh0PiI7JiN4QTs8L3hzbDp0ZXh0PgorCTwveHNsOnRlbXBsYXRlPgorCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZXhwZWN0ZWQiIG1vZGU9ImRlZmluZSI+CisJCTx4c2w6dGV4dD4JY29uc3QgY2hhciAqIDwveHNsOnRleHQ+CQorCQk8eHNsOnRleHQ+ZXhwX3N0ciA9ICI8L3hzbDp0ZXh0PgorCQk8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ieG1sLXRleHQiPgorCSAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRleHQiIHNlbGVjdD0iLiIvPgorICAgIAk8L3hzbDpjYWxsLXRlbXBsYXRlPgkJCisJCTx4c2w6dGV4dD4iOyYjeEE7PC94c2w6dGV4dD4KKwk8L3hzbDp0ZW1wbGF0ZT4KKworCTx4c2w6dGVtcGxhdGUgbWF0Y2g9ImRvYyI+CisJCTx4c2w6dGV4dD4JPC94c2w6dGV4dD4KKwkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJCTx4c2w6dGV4dD4gPSB4bWxSZWFkRG9jKEJBRF9DQVNUIDwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCQk8eHNsOnRleHQ+X3N0ciwgTlVMTCwgTlVMTCwgMCk7JiN4QTs8L3hzbDp0ZXh0PgorCQkJCisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZm9sbG93aW5nLXNpYmxpbmc6OipbMV0iLz4KKworCQk8eHNsOnRleHQ+CXhtbEZyZWVEb2MoPC94c2w6dGV4dD4KKwkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJCTx4c2w6dGV4dD4pOyYjeEE7PC94c2w6dGV4dD4KKwk8L3hzbDp0ZW1wbGF0ZT4KKworCTx4c2w6dGVtcGxhdGUgbWF0Y2g9InhwYXRoIj4KKwk8L3hzbDp0ZW1wbGF0ZT4KKworCTx4c2w6dGVtcGxhdGUgbWF0Y2g9InZhciIgbW9kZT0iZGVmaW5lIj4KKwkJPHhzbDp0ZXh0Pgl4bWxOb2RlUHRyIDwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCQk8eHNsOnRleHQ+OyYjeEE7PC94c2w6dGV4dD4KKwk8L3hzbDp0ZW1wbGF0ZT4KKworCTx4c2w6dGVtcGxhdGUgbWF0Y2g9InZhciI+CisJCTx4c2w6aWYgdGVzdD0ieHBhdGgiPgorCQkJPCEtLSBDcmVhdGUgWFBhdGggY29udGV4dC4gLS0+CisJCQk8eHNsOnRleHQ+CS8qIFNlbGVjdGluZyBub2RlICI8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjx4c2w6dGV4dD4iLiAqLyYjeEE7PC94c2w6dGV4dD4KKwkJCTx4c2w6dGV4dD4JeHAgPSB4bWxYUGF0aE5ld0NvbnRleHQoPC94c2w6dGV4dD4KKwkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ4cGF0aC9AZG9jIi8+CisJCQk8eHNsOnRleHQ+KTsmI3hBOzwveHNsOnRleHQ+CisJCQk8IS0tIFJlZ2lzdGVyIG5hbWVzcGFjZXMuIC0tPgorCQkJPHhzbDpmb3ItZWFjaCBzZWxlY3Q9InhwYXRoL3JlZy1ucyI+CisJCQkJPHhzbDp0ZXh0Pgl4bWxYUGF0aFJlZ2lzdGVyTnMoeHAsIEJBRF9DQVNUICI8L3hzbDp0ZXh0PgorCQkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAcHJlZml4Ii8+CisJCQkJPHhzbDp0ZXh0PiIsIEJBRF9DQVNUICI8L3hzbDp0ZXh0PgorCQkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbnMiLz4KKwkJCQk8eHNsOnRleHQ+Iik7JiN4QTs8L3hzbDp0ZXh0PgorCQkJPC94c2w6Zm9yLWVhY2g+CisJCQk8IS0tIEV2YWx1YXRlLiAtLT4KKwkJCTx4c2w6dGV4dD4JPC94c2w6dGV4dD4KKwkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCQkJPHhzbDp0ZXh0PiA9IG5zU2VsZWN0Tm9kZSh4cCwgIjwveHNsOnRleHQ+CisJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0ieHBhdGgvQHNlbGVjdC1ub2RlIi8+CisJCQk8eHNsOnRleHQ+Iik7JiN4QTs8L3hzbDp0ZXh0PgorCQkJPHhzbDp0ZXh0Pgl4bWxYUGF0aEZyZWVDb250ZXh0KHhwKTsmI3hBOzwveHNsOnRleHQ+CisJCTwveHNsOmlmPgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImZvbGxvd2luZy1zaWJsaW5nOjoqWzFdIi8+CisJPC94c2w6dGVtcGxhdGU+CisKKwk8eHNsOnRlbXBsYXRlIG1hdGNoPSJyZWNvbmNpbGUtbnMiPgorCQk8eHNsOnRleHQ+CS8qIFJlY29uY2lsZSBub2RlICI8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAcmVmIi8+PHhzbDp0ZXh0PiIuICovJiN4QTs8L3hzbDp0ZXh0PgorCQk8eHNsOnRleHQ+CXhtbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzKE5VTEwsIDwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbm9kZSIvPgorCQk8eHNsOnRleHQ+LCAwKTsmI3hBOzwveHNsOnRleHQ+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZm9sbG93aW5nLXNpYmxpbmc6OipbMV0iLz4KKwk8L3hzbDp0ZW1wbGF0ZT4KKworCTx4c2w6dGVtcGxhdGUgbWF0Y2g9InJlbW92ZSI+CisJCTx4c2w6dGV4dD4JeG1sRE9NV3JhcFJlbW92ZU5vZGUoTlVMTCwgPC94c2w6dGV4dD4KKwkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBub2RlIi8+CisJCTx4c2w6dGV4dD4tPmRvYywgPC94c2w6dGV4dD4KKwkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBub2RlIi8+CisJCTx4c2w6dGV4dD4sIDApOyYjeEE7PC94c2w6dGV4dD4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmb2xsb3dpbmctc2libGluZzo6KlsxXSIvPgorCTwveHNsOnRlbXBsYXRlPgorCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iYWRvcHQiPgorCQk8eHNsOnRleHQ+CS8qIEFkb3B0ICI8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbm9kZSIvPjx4c2w6dGV4dD4iLiAqLyYjeEE7PC94c2w6dGV4dD4KKwkJPHhzbDp0ZXh0Pgl4bWxET01XcmFwQWRvcHROb2RlKE5VTEwsIDwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbm9kZSIvPgorCQk8eHNsOnRleHQ+LT5kb2MsIDwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbm9kZSIvPgorCQk8eHNsOnRleHQ+LCA8L3hzbDp0ZXh0PgorCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGRlc3QtZG9jIi8+CisJCTx4c2w6dGV4dD4sIDwveHNsOnRleHQ+CisJCTx4c2w6Y2hvb3NlPgorCQkJPHhzbDp3aGVuIHRlc3Q9IkBkZXN0LXBhcmVudCI+CisJCQkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBkZXN0LXBhcmVudCIvPgorCQkJPC94c2w6d2hlbj4KKwkJCTx4c2w6b3RoZXJ3aXNlPgorCQkJCTx4c2w6dGV4dD5OVUxMPC94c2w6dGV4dD4KKwkJCTwveHNsOm90aGVyd2lzZT4KKwkJPC94c2w6Y2hvb3NlPgkJCisJCTx4c2w6dGV4dD4sIDApOyYjeEE7PC94c2w6dGV4dD4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmb2xsb3dpbmctc2libGluZzo6KlsxXSIvPgorCTwveHNsOnRlbXBsYXRlPgorCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iYXBwZW5kLWNoaWxkIj4KKwkJPHhzbDp0ZXh0Pgl4bWxBZGRDaGlsZCg8L3hzbDp0ZXh0PgorCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHBhcmVudCIvPgorCQk8eHNsOnRleHQ+LCA8L3hzbDp0ZXh0PgorCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGNoaWxkIi8+CisJCTx4c2w6dGV4dD4pOyYjeEE7PC94c2w6dGV4dD4KKwkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmb2xsb3dpbmctc2libGluZzo6KlsxXSIvPgorCTwveHNsOnRlbXBsYXRlPgorCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZXhwZWN0ZWQiPgkJCisJCTx4c2w6dGV4dD4JLyogU2VyaWFsaXplICI8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAZG9jIi8+PHhzbDp0ZXh0PiIuICovJiN4QTs8L3hzbDp0ZXh0PgorCQk8eHNsOnRleHQ+CXJlc3VsdF9zdHIgPSBuc1NlcmlhbGl6ZU5vZGUoeG1sRG9jR2V0Um9vdEVsZW1lbnQoPC94c2w6dGV4dD4KKwkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBkb2MiLz4KKwkJPHhzbDp0ZXh0PikpOyYjeEE7PC94c2w6dGV4dD4KKwkJPHhzbDp0ZXh0PgkvKiBDb21wYXJlIHJlc3VsdC4gKi8KKwlpZiAoISB4bWxTdHJFcXVhbChCQURfQ0FTVCByZXN1bHRfc3RyLCBCQURfQ0FTVCBleHBfc3RyKSkgeworCQlwcmludGYoIkZBSUxFRFxuIik7CisJCXByaW50ZigiJXNcbiIsIChjb25zdCBjaGFyICopIHJlc3VsdF9zdHIpOworCQlwcmludGYoIi0gLSAtXG4iKTsKKwkJcHJpbnRmKCJFeHBlY3RlZDpcbiVzXG4iLCBleHBfc3RyKTsKKwkJcHJpbnRmKCI9ID0gPVxuIik7CisJfQorCXhtbEZyZWUocmVzdWx0X3N0cik7JiN4QTs8L3hzbDp0ZXh0PgorCTwveHNsOnRlbXBsYXRlPgorCisJPCEtLSoqKioqKioqCisJICAgICogVEVTVCAqCisJICAgICoqKioqKioqLS0+CisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdCI+CQkKKwkJPHhzbDp0ZXh0PnZvaWQgbnNUZXN0XzwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCQk8eHNsOnRleHQ+KHZvaWQpIHsKKwl4bWxDaGFyICogcmVzdWx0X3N0cjsKKwl4bWxYUGF0aENvbnRleHRQdHIgeHA7CisJaW50IG1lbW9yeTsmI3hBOzwveHNsOnRleHQ+CisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iKiIgbW9kZT0iZGVmaW5lIi8+CisJCTx4c2w6dGV4dD4KKwltZW1vcnkgPSB4bWxNZW1Vc2VkKCk7CisJeG1sSW5pdFBhcnNlcigpOyYjeEE7JiN4QTs8L3hzbDp0ZXh0PgorCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImNoaWxkOjoqWzFdIi8+CisJCTx4c2w6dGV4dD4KKwl4bWxDbGVhbnVwUGFyc2VyKCk7CisJbWVtb3J5ID0geG1sTWVtVXNlZCgpIC0gbWVtb3J5OworCisJaWYgKG1lbW9yeSAhPSAwKSB7CQkKKwkJcHJpbnRmKCIjIyAnJXMnIE1FTU9SWSBsZWFrOiAlZFxuIiwgIjwveHNsOnRleHQ+CisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCQk8eHNsOnRleHQ+IiwgbWVtb3J5KTsKKyAgICB9CQkKK30KKzwveHNsOnRleHQ+CQorCTwveHNsOnRlbXBsYXRlPgorCisJPHhzbDp0ZW1wbGF0ZSBuYW1lPSJzZXJpYWxpemVyIj4KKwkJPHhzbDp0ZXh0PgorCQkKK3htbENoYXIgKiBuc1NlcmlhbGl6ZU5vZGUoeG1sTm9kZVB0ciBub2RlKSB7CisJeG1sQ2hhciAqIHJldDsKKworCXhtbE91dHB1dEJ1ZmZlclB0ciBidWY7CisJYnVmID0geG1sQWxsb2NPdXRwdXRCdWZmZXIoTlVMTCk7CisJeG1sTm9kZUR1bXBPdXRwdXQoYnVmLCBub2RlLT5kb2MsIG5vZGUsIDAsIDAsIE5VTEwpOworCXhtbE91dHB1dEJ1ZmZlckZsdXNoKGJ1Zik7CisJcmV0ID0gKHhtbENoYXIgKikgYnVmLT5idWZmZXItPmNvbnRlbnQ7CisJYnVmLT5idWZmZXItPmNvbnRlbnQgPSBOVUxMOworCSh2b2lkKSB4bWxPdXRwdXRCdWZmZXJDbG9zZShidWYpOworCXJldHVybiAocmV0KTsKK30KKworeG1sTm9kZVB0ciBuc1NlbGVjdE5vZGUoeG1sWFBhdGhDb250ZXh0UHRyIHhwLCBjb25zdCBjaGFyICogeHBhdGgpIHsKKwl4bWxYUGF0aE9iamVjdFB0ciB4cHJlczsKKwl4bWxOb2RlUHRyIHJldDsJCisJCQorCXhwcmVzID0geG1sWFBhdGhFdmFsKEJBRF9DQVNUIHhwYXRoLCB4cCk7CisJcmV0ID0geHByZXMtPm5vZGVzZXR2YWwtPm5vZGVUYWJbMF07CisJeG1sWFBhdGhGcmVlT2JqZWN0KHhwcmVzKTsKKwlyZXR1cm4gKHJldCk7Cit9CisKKzwveHNsOnRleHQ+CisJPC94c2w6dGVtcGxhdGU+CisKKwk8eHNsOnRlbXBsYXRlIG5hbWU9InJlcGxhY2Utc3RyaW5nIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InRleHQiLz4KKyAgICA8eHNsOnBhcmFtIG5hbWU9ImZyb20iLz4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InRvIi8+CisKKyAgICA8eHNsOmNob29zZT4KKyAgICAgIDx4c2w6d2hlbiB0ZXN0PSJjb250YWlucygkdGV4dCwgJGZyb20pIj4KKworCTx4c2w6dmFyaWFibGUgbmFtZT0iYmVmb3JlIiBzZWxlY3Q9InN1YnN0cmluZy1iZWZvcmUoJHRleHQsICRmcm9tKSIvPgorCTx4c2w6dmFyaWFibGUgbmFtZT0iYWZ0ZXIiIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKCR0ZXh0LCAkZnJvbSkiLz4KKwk8eHNsOnZhcmlhYmxlIG5hbWU9InByZWZpeCIgc2VsZWN0PSJjb25jYXQoJGJlZm9yZSwgJHRvKSIvPgorCisJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRiZWZvcmUiLz4KKwk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHRvIi8+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJyZXBsYWNlLXN0cmluZyI+CisJICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idGV4dCIgc2VsZWN0PSIkYWZ0ZXIiLz4KKwkgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJmcm9tIiBzZWxlY3Q9IiRmcm9tIi8+CisJICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idG8iIHNlbGVjdD0iJHRvIi8+CisJPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgIDwveHNsOndoZW4+IAorICAgICAgPHhzbDpvdGhlcndpc2U+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGV4dCIvPiAgCisgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPiAgICAgICAgICAgIAorIDwveHNsOnRlbXBsYXRlPgorCQkKKwkKKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvbmFtZXNwYWNlcy9yZWNvbmNpbGUvdGVzdHMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvcmVjb25jaWxlL3Rlc3RzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmY4YzU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L25hbWVzcGFjZXMvcmVjb25jaWxlL3Rlc3RzLnhtbApAQCAtMCwwICsxLDI0OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8dGVzdHM+CisJPHRlc3QgbmFtZT0iYWRvcHRfcmVjb25fZGVmYXVsdCI+CisJCQorCQk8ZG9jIG5hbWU9ImRvYzEiPjwhW0NEQVRBWzxwMSB4bWxucz0idXJuOnRlc3Q6QUFBIj48YS8+PC9wMT5dXT48L2RvYz4KKwkJPGRvYyBuYW1lPSJkb2MyIj48IVtDREFUQVs8cDEgeG1sbnM9InVybjp0ZXN0OkJCQiI+PGIvPjwvcDE+XV0+PC9kb2M+CisJCTxkb2MgbmFtZT0iZG9jMyI+PCFbQ0RBVEFbPHAyIHhtbG5zPSJ1cm46dGVzdDpaWloiLz5dXT48L2RvYz4KKwkJPHZhciBuYW1lPSJhIj4KKwkJCTx4cGF0aCBkb2M9ImRvYzEiIHNlbGVjdC1ub2RlPSIvYTpwMS9hOmEiPgorCQkJCTxyZWctbnMgcHJlZml4PSJhIiBucz0idXJuOnRlc3Q6QUFBIi8+CisJCQk8L3hwYXRoPgorCQk8L3Zhcj4KKwkJPHZhciBuYW1lPSJiIiA+CisJCQk8eHBhdGggZG9jPSJkb2MyIiBzZWxlY3Qtbm9kZT0iL2I6cDEvYjpiIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYiIgbnM9InVybjp0ZXN0OkJCQiIvPgkJCQkKKwkJCTwveHBhdGg+CisJCTwvdmFyPgorCQk8dmFyIG5hbWU9InAyIj4KKwkJCTx4cGF0aCBkb2M9ImRvYzMiIHNlbGVjdC1ub2RlPSIvejpwMiI+CisJCQkJPHJlZy1ucyBwcmVmaXg9InoiIG5zPSJ1cm46dGVzdDpaWloiLz4JCQkJCisJCQk8L3hwYXRoPgorCQk8L3Zhcj4KKworCQk8cmVtb3ZlIG5vZGU9ImEiLz4KKwkJPGFkb3B0IGRlc3QtZG9jPSJkb2MzIiBub2RlPSJhIi8+CisJCTxhcHBlbmQtY2hpbGQgcGFyZW50PSJwMiIgY2hpbGQ9ImEiLz4KKworCQk8IS0tIFRoaXMgdGltZSB3aXRob3V0IGEgcHJldmlvdXMgcmVtb3ZpbmcuIC0tPgorCQk8YWRvcHQgZGVzdC1kb2M9ImRvYzMiIG5vZGU9ImIiLz4KKwkJPGFwcGVuZC1jaGlsZCBwYXJlbnQ9InAyIiBjaGlsZD0iYiIvPgorCisJCTxyZWNvbmNpbGUtbnMgbm9kZT0icDIiLz4KKwkJPGV4cGVjdGVkIGRvYz0iZG9jMyI+PCFbQ0RBVEFbPHAyIHhtbG5zPSJ1cm46dGVzdDpaWloiPjxhIHhtbG5zPSJ1cm46dGVzdDpBQUEiLz48YiB4bWxucz0idXJuOnRlc3Q6QkJCIi8+PC9wMj5dXT48L2V4cGVjdGVkPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9ImFkb3B0X3JlY29uIj4JCQorCQk8ZG9jIG5hbWU9ImRvYzEiPjwhW0NEQVRBWzxhOnAxIHhtbG5zOmE9InVybjp0ZXN0OkFBQSI+PGE6YS8+PC9hOnAxPl1dPjwvZG9jPgorCQk8ZG9jIG5hbWU9ImRvYzIiPjwhW0NEQVRBWzxhOnAyIHhtbG5zOmE9InVybjp0ZXN0OkFBQSIvPl1dPjwvZG9jPgorCQk8dmFyIG5hbWU9ImEiPgorCQkJPHhwYXRoIGRvYz0iZG9jMSIgc2VsZWN0LW5vZGU9Ii9hOnAxL2E6YSI+CisJCQkJPHJlZy1ucyBwcmVmaXg9ImEiIG5zPSJ1cm46dGVzdDpBQUEiLz4KKwkJCTwveHBhdGg+CisJCTwvdmFyPgorCQk8dmFyIG5hbWU9InAyIj4KKwkJCTx4cGF0aCBkb2M9ImRvYzIiIHNlbGVjdC1ub2RlPSIvYTpwMiI+CisJCQkJPHJlZy1ucyBwcmVmaXg9ImEiIG5zPSJ1cm46dGVzdDpBQUEiLz4JCQkJCisJCQk8L3hwYXRoPgorCQk8L3Zhcj4KKwkJPGFkb3B0IGRlc3QtZG9jPSJkb2MyIiBub2RlPSJhIi8+CisJCTxhcHBlbmQtY2hpbGQgcGFyZW50PSJwMiIgY2hpbGQ9ImEiLz4KKwkJPHJlY29uY2lsZS1ucyBub2RlPSJhIi8+CisJCTxleHBlY3RlZCBkb2M9ImRvYzIiPjwhW0NEQVRBWzxhOnAyIHhtbG5zOmE9InVybjp0ZXN0OkFBQSI+PGE6YS8+PC9hOnAyPl1dPjwvZXhwZWN0ZWQ+CisJPC90ZXN0PgorCisJPHRlc3QgbmFtZT0iYWRvcHRfcmVjb25fYXR0ciI+CQkKKwkJPGRvYyBuYW1lPSJkb2MxIj48IVtDREFUQVs8cDEgeG1sbnM6Yj0idXJuOnRlc3Q6QkJCIiBiOmF0dHI9Im1hcnZpbiIvPl1dPjwvZG9jPgorCQk8ZG9jIG5hbWU9ImRvYzIiPjwhW0NEQVRBWzxhOnAyIHhtbG5zOmE9InVybjp0ZXN0OkFBQSIvPl1dPjwvZG9jPgorCQk8dmFyIG5hbWU9ImF0dHIiPgorCQkJPHhwYXRoIGRvYz0iZG9jMSIgc2VsZWN0LW5vZGU9Ii9wMS9AYjphdHRyIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYiIgbnM9InVybjp0ZXN0OkJCQiIvPgorCQkJPC94cGF0aD4KKwkJPC92YXI+CisJCTx2YXIgbmFtZT0icDIiPgorCQkJPHhwYXRoIGRvYz0iZG9jMiIgc2VsZWN0LW5vZGU9Ii9hOnAyIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OkFBQSIvPgkJCQkKKwkJCTwveHBhdGg+CisJCTwvdmFyPgorCQk8YWRvcHQgZGVzdC1kb2M9ImRvYzIiIG5vZGU9ImF0dHIiIC8+CisJCTxhcHBlbmQtY2hpbGQgcGFyZW50PSJwMiIgY2hpbGQ9ImF0dHIiLz4KKwkJPHJlY29uY2lsZS1ucyBub2RlPSJwMiIvPgorCQk8ZXhwZWN0ZWQgZG9jPSJkb2MyIj48IVtDREFUQVs8YTpwMiB4bWxuczphPSJ1cm46dGVzdDpBQUEiIHhtbG5zOmI9InVybjp0ZXN0OkJCQiIgYjphdHRyPSJtYXJ2aW4iLz5dXT48L2V4cGVjdGVkPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9ImFkb3B0X3JlY29uX2F0dHJfMiI+CQkKKwkgICAgPCEtLSBIZXJlIHdlIHdpbGwgc3BlY2lmeSBhIGRlc3RpbmF0aW9uLXBhcmVudCBmb3IgYWRvcHRpb24uIC0tPgorCQk8ZG9jIG5hbWU9ImRvYzEiPjwhW0NEQVRBWzxwMSB4bWxuczpiPSJ1cm46dGVzdDpCQkIiIGI6YXR0cj0ibWFydmluIi8+XV0+PC9kb2M+CisJCTxkb2MgbmFtZT0iZG9jMiI+PCFbQ0RBVEFbPGE6cDIgeG1sbnM6YT0idXJuOnRlc3Q6QUFBIi8+XV0+PC9kb2M+CisJCTx2YXIgbmFtZT0iYXR0ciI+CisJCQk8eHBhdGggZG9jPSJkb2MxIiBzZWxlY3Qtbm9kZT0iL3AxL0BiOmF0dHIiPgorCQkJCTxyZWctbnMgcHJlZml4PSJiIiBucz0idXJuOnRlc3Q6QkJCIi8+CisJCQk8L3hwYXRoPgorCQk8L3Zhcj4KKwkJPHZhciBuYW1lPSJwMiI+CisJCQk8eHBhdGggZG9jPSJkb2MyIiBzZWxlY3Qtbm9kZT0iL2E6cDIiPgorCQkJCTxyZWctbnMgcHJlZml4PSJhIiBucz0idXJuOnRlc3Q6QUFBIi8+CQkJCQorCQkJPC94cGF0aD4KKwkJPC92YXI+CQkKKwkJPGFkb3B0IGRlc3QtZG9jPSJkb2MyIiBkZXN0LXBhcmVudD0icDIiIG5vZGU9ImF0dHIiIC8+CQkKKwkJPGFwcGVuZC1jaGlsZCBwYXJlbnQ9InAyIiBjaGlsZD0iYXR0ciIvPgorCQk8cmVjb25jaWxlLW5zIG5vZGU9InAyIi8+CisJCTxleHBlY3RlZCBkb2M9ImRvYzIiPjwhW0NEQVRBWzxhOnAyIHhtbG5zOmE9InVybjp0ZXN0OkFBQSIgeG1sbnM6Yj0idXJuOnRlc3Q6QkJCIiBiOmF0dHI9Im1hcnZpbiIvPl1dPjwvZXhwZWN0ZWQ+CisJPC90ZXN0PgorCisJPHRlc3QgbmFtZT0iYWRvcHRfcmVjb25fYXR0cl8zIj4JCQorCSAgICA8IS0tIENvbmZsaWN0aW5nIG5zLXByZWZpeGVzIGZvciB0aGUgYWRkZWQgYXR0cmlidXRlLiAtLT4KKwkJPGRvYyBuYW1lPSJkb2MxIj48IVtDREFUQVs8cDEgeG1sbnM6YT0idXJuOnRlc3Q6QUFBIiBhOmF0dHI9Im1hcnZpbiIvPl1dPjwvZG9jPgorCQk8ZG9jIG5hbWU9ImRvYzIiPjwhW0NEQVRBWzxhOnAyIHhtbG5zOmE9InVybjp0ZXN0OmFhYSIvPl1dPjwvZG9jPgorCQk8dmFyIG5hbWU9ImF0dHIiPgorCQkJPHhwYXRoIGRvYz0iZG9jMSIgc2VsZWN0LW5vZGU9Ii9wMS9AYTphdHRyIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OkFBQSIvPgorCQkJPC94cGF0aD4KKwkJPC92YXI+CisJCTx2YXIgbmFtZT0icDIiPgorCQkJPHhwYXRoIGRvYz0iZG9jMiIgc2VsZWN0LW5vZGU9Ii9hOnAyIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OmFhYSIvPgorCQkJPC94cGF0aD4KKwkJPC92YXI+CQkKKwkJPGFkb3B0IGRlc3QtZG9jPSJkb2MyIiBub2RlPSJhdHRyIiAvPgorCQk8YXBwZW5kLWNoaWxkIHBhcmVudD0icDIiIGNoaWxkPSJhdHRyIi8+CisJCTxyZWNvbmNpbGUtbnMgbm9kZT0icDIiLz4KKwkJPGV4cGVjdGVkIGRvYz0iZG9jMiI+PCFbQ0RBVEFbPGE6cDIgeG1sbnM6YT0idXJuOnRlc3Q6YWFhIiB4bWxuczphMT0idXJuOnRlc3Q6QUFBIiBhMTphdHRyPSJtYXJ2aW4iLz5dXT48L2V4cGVjdGVkPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9ImFkb3B0X3JlY29uX2F0dHJfNCI+CisJICAgIDwhLS0gUXVhbGlmaWVkIGF0dHJpYnV0ZSBhZGRlZCB0byBkZWZhdWx0IG5hbWVzcGFjZWQgZWxlbS4gLS0+CisJCTxkb2MgbmFtZT0iZG9jMSI+PCFbQ0RBVEFbPHAxIHhtbG5zOmE9InVybjp0ZXN0OkFBQSIgYTphdHRyPSJtYXJ2aW4iLz5dXT48L2RvYz4KKwkJPGRvYyBuYW1lPSJkb2MyIj48IVtDREFUQVs8cDIgeG1sbnM9InVybjp0ZXN0OkFBQSIvPl1dPjwvZG9jPgorCQk8dmFyIG5hbWU9ImF0dHIiPgorCQkJPHhwYXRoIGRvYz0iZG9jMSIgc2VsZWN0LW5vZGU9Ii9wMS9AYTphdHRyIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OkFBQSIvPgorCQkJPC94cGF0aD4KKwkJPC92YXI+CisJCTx2YXIgbmFtZT0icDIiPgorCQkJPHhwYXRoIGRvYz0iZG9jMiIgc2VsZWN0LW5vZGU9Ii9hOnAyIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OkFBQSIvPgorCQkJPC94cGF0aD4KKwkJPC92YXI+CQkKKwkJPGFkb3B0IGRlc3QtZG9jPSJkb2MyIiBub2RlPSJhdHRyIiAvPgorCQk8YXBwZW5kLWNoaWxkIHBhcmVudD0icDIiIGNoaWxkPSJhdHRyIi8+CisJCTxyZWNvbmNpbGUtbnMgbm9kZT0icDIiLz4KKwkJPGV4cGVjdGVkIGRvYz0iZG9jMiI+PCFbQ0RBVEFbPHAyIHhtbG5zPSJ1cm46dGVzdDpBQUEiIHhtbG5zOmE9InVybjp0ZXN0OkFBQSIgYTphdHRyPSJtYXJ2aW4iLz5dXT48L2V4cGVjdGVkPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9ImFkb3B0X3JlY29uX2F0dHJfNSI+CisJCTwhLS0gU2hhZG93ZWQgYW5kIGNvbmZsaWN0aW5nIHByZWZpeC4gZGVzdC1wYXJlbnQgSVMgZ2l2ZW4uIC0tPgorCQk8ZG9jIG5hbWU9ImRvYzEiPjwhW0NEQVRBWzxwMSB4bWxuczphPSJ1cm46dGVzdDpBQUEiIGE6YXR0cj0ibWFydmluIi8+XV0+PC9kb2M+CisJCTxkb2MgbmFtZT0iZG9jMiI+PCFbQ0RBVEFbPHAyIHhtbG5zOmE9InVybjp0ZXN0OkFBQSI+PGE6cDMgeG1sbnM6YT0idXJuOnRlc3Q6WlpaIi8+PC9wMj5dXT48L2RvYz4KKwkJPHZhciBuYW1lPSJhdHRyIj4KKwkJCTx4cGF0aCBkb2M9ImRvYzEiIHNlbGVjdC1ub2RlPSIvcDEvQGE6YXR0ciI+CisJCQkJPHJlZy1ucyBwcmVmaXg9ImEiIG5zPSJ1cm46dGVzdDpBQUEiLz4KKwkJCTwveHBhdGg+CisJCTwvdmFyPgorCQk8dmFyIG5hbWU9InAzIj4KKwkJCTx4cGF0aCBkb2M9ImRvYzIiIHNlbGVjdC1ub2RlPSIvcDIvYTpwMyI+CisJCQkJPHJlZy1ucyBwcmVmaXg9ImEiIG5zPSJ1cm46dGVzdDpaWloiLz4KKwkJCTwveHBhdGg+CisJCTwvdmFyPgkJCisJCTxhZG9wdCBkZXN0LWRvYz0iZG9jMiIgbm9kZT0iYXR0ciIgZGVzdC1wYXJlbnQ9InAzIi8+CisJCTxhcHBlbmQtY2hpbGQgcGFyZW50PSJwMyIgY2hpbGQ9ImF0dHIiLz4KKwkJPCEtLSBOb3RlIHRoYXQgd2UgZG9uJ3QgbmVlZCB0byByZWNvbmNpbGUgaGVyZSwgc2luY2UgZG9uZSBkdXJpbmcKKwkJICAgICBhZG9wdGlvbi4gLS0+CisJCTxleHBlY3RlZCBkb2M9ImRvYzIiPjwhW0NEQVRBWworPHAyIHhtbG5zOmE9InVybjp0ZXN0OkFBQSI+CisJPGE6cDMgeG1sbnM6YT0idXJuOnRlc3Q6WlpaIiB4bWxuczphMT0idXJuOnRlc3Q6QUFBIiBhMTphdHRyPSJtYXJ2aW4iLz4KKzwvcDI+XV0+PC9leHBlY3RlZD4KKwk8L3Rlc3Q+CisKKwk8dGVzdCBuYW1lPSJhZG9wdF9yZWNvbl9hdHRyXzYiPgorCQk8IS0tIFNoYWRvd2VkIGFuZCBjb25mbGljdGluZyBwcmVmaXguIGRlc3QtcGFyZW50IE5PVCBnaXZlbi4gLS0+CisJCTxkb2MgbmFtZT0iZG9jMSI+PCFbQ0RBVEFbPHAxIHhtbG5zOmE9InVybjp0ZXN0OkFBQSIgYTphdHRyPSJtYXJ2aW4iLz5dXT48L2RvYz4KKwkJPGRvYyBuYW1lPSJkb2MyIj48IVtDREFUQVs8cDIgeG1sbnM6YT0idXJuOnRlc3Q6QUFBIj48YTpwMyB4bWxuczphPSJ1cm46dGVzdDpaWloiLz48L3AyPl1dPjwvZG9jPgorCQk8dmFyIG5hbWU9ImF0dHIiPgorCQkJPHhwYXRoIGRvYz0iZG9jMSIgc2VsZWN0LW5vZGU9Ii9wMS9AYTphdHRyIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OkFBQSIvPgorCQkJPC94cGF0aD4KKwkJPC92YXI+CisJCTx2YXIgbmFtZT0icDMiPgorCQkJPHhwYXRoIGRvYz0iZG9jMiIgc2VsZWN0LW5vZGU9Ii9wMi9hOnAzIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OlpaWiIvPgorCQkJPC94cGF0aD4KKwkJPC92YXI+CQkKKwkJPGFkb3B0IGRlc3QtZG9jPSJkb2MyIiBub2RlPSJhdHRyIi8+CisJCTxhcHBlbmQtY2hpbGQgcGFyZW50PSJwMyIgY2hpbGQ9ImF0dHIiLz4KKwkJPHJlY29uY2lsZS1ucyBub2RlPSJwMyIvPgorCQk8ZXhwZWN0ZWQgZG9jPSJkb2MyIj48IVtDREFUQVsKKzxwMiB4bWxuczphPSJ1cm46dGVzdDpBQUEiPgorCTxhOnAzIHhtbG5zOmE9InVybjp0ZXN0OlpaWiIgeG1sbnM6YTE9InVybjp0ZXN0OkFBQSIgYTE6YXR0cj0ibWFydmluIi8+Cis8L3AyPl1dPjwvZXhwZWN0ZWQ+CisJPC90ZXN0PgorCQorCTx0ZXN0IG5hbWU9InNoYWRvd18xIj4KKwkJCisJCTxkb2MgbmFtZT0iZG9jIj48IVtDREFUQVsKKzxmb28geG1sbnM6Zm9vPSJ1cm46dGVzdDptaW5lIj4KKwk8cCB4bWxuczpiYXI9InVybjp0ZXN0Om1pbmUiLz4KKwk8YTE+CisJCTxhMiB4bWxuczpiYXI9InVybjp0ZXN0Ok9USEVSIj4KKwkJCTxmb286YTMvPgorCQk8L2EyPgorCTwvYTE+Cis8L2Zvbz4KK11dPjwvZG9jPgorCQk8dmFyIG5hbWU9ImExIj4KKwkJCTx4cGF0aCBkb2M9ImRvYyIgc2VsZWN0LW5vZGU9Ii9mb28vYTEiLz4KKwkJPC92YXI+CisJCTx2YXIgbmFtZT0icCIgPgorCQkJPHhwYXRoIGRvYz0iZG9jIiBzZWxlY3Qtbm9kZT0iL2Zvby9wIi8+CisJCTwvdmFyPgorCQk8cmVtb3ZlIG5vZGU9ImExIi8+CisJCTxhcHBlbmQtY2hpbGQgcGFyZW50PSJwIiBjaGlsZD0iYTEiLz4KKwkJPHJlY29uY2lsZS1ucyBub2RlPSJhMSIvPgkJCisJCTxleHBlY3RlZCBkb2M9ImRvYyI+PCFbQ0RBVEFbCis8Zm9vIHhtbG5zOmZvbz0idXJuOnRlc3Q6bWluZSI+CisJPHAgeG1sbnM6YmFyPSJ1cm46dGVzdDptaW5lIj4KKwkJPGExPgorCQkJPGEyIHhtbG5zOmJhcj0idXJuOnRlc3Q6T1RIRVIiPgorCQkJCTxmb286YTMvPgorCQkJPC9hMj4KKwkJPC9hMT4KKwk8L3A+Cis8L2Zvbz4KK11dPjwvZXhwZWN0ZWQ+CisJPC90ZXN0PgorCisJPHRlc3QgbmFtZT0ibm9ybV8xIj4KKwkJCisJCTxkb2MgbmFtZT0iZG9jIj48IVtDREFUQVsKKzxmb28+CisJPHAxIHhtbG5zOmE9InVybjp0ZXN0OkEiIHhtbG5zOmI9InVybjp0ZXN0OkIiIHhtbG5zOmM9InVybjp0ZXN0OkMiPgorCQk8YTphPgorCQkJPGI6YiBhOmF0dHI9ImRvbnQiIGM6YXR0cj0icGFuaWMiLz4KKwkJPC9hOmE+CisJPC9wMT4KKwk8cDIvPgorPC9mb28+CitdXT48L2RvYz4KKwkJPHZhciBuYW1lPSJhIj4KKwkJCTx4cGF0aCBkb2M9ImRvYyIgc2VsZWN0LW5vZGU9Ii9mb28vcDEvYTphIj4KKwkJCQk8cmVnLW5zIHByZWZpeD0iYSIgbnM9InVybjp0ZXN0OkEiLz4KKwkJCTwveHBhdGg+CisJCTwvdmFyPgorCQk8dmFyIG5hbWU9InAyIiA+CisJCQk8eHBhdGggZG9jPSJkb2MiIHNlbGVjdC1ub2RlPSIvZm9vL3AyIi8+CisJCTwvdmFyPgorCQk8cmVtb3ZlIG5vZGU9ImEiLz4KKwkJPGFwcGVuZC1jaGlsZCBwYXJlbnQ9InAyIiBjaGlsZD0iYSIvPgorCQk8cmVjb25jaWxlLW5zIG5vZGU9ImEiLz4JCQorCQk8ZXhwZWN0ZWQgZG9jPSJkb2MiPjwhW0NEQVRBWworPGZvbz4KKwk8cDEgeG1sbnM6YT0idXJuOnRlc3Q6QSIgeG1sbnM6Yj0idXJuOnRlc3Q6QiIgeG1sbnM6Yz0idXJuOnRlc3Q6QyIvPgkJCisJPHAyPgorCQk8YTphIHhtbG5zOmE9InVybjp0ZXN0OkEiPgorCQkJPGI6YiB4bWxuczpiPSJ1cm46dGVzdDpCIiB4bWxuczpjPSJ1cm46dGVzdDpDIiBhOmF0dHI9ImRvbnQiIGM6YXR0cj0icGFuaWMiLz4KKwkJPC9hOmE+CisJPC9wMj4KKzwvZm9vPgorXV0+PC9leHBlY3RlZD4KKwk8L3Rlc3Q+Cis8L3Rlc3RzPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25zIGIvbGlieG1sMi0yLjcuNy90ZXN0L25zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YjkyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnMKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyI+CisgIDxkaWE6ZGlhZ3JhbWRhdGEgZGlhOnRlc3RhdHRyPSJ0ZXN0Ii8+Cis8L2RpYTpkaWFncmFtPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25zMiBiL2xpYnhtbDItMi43LjcvdGVzdC9uczIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBhYWY5NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9uczIKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyIKKyAgICAgICAgICAgICBkaWE6dGVzdGF0dHI9InRlc3QiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uczMgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnMzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2YmIyMGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnMzCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZGlhOmRpYWdyYW0gZGlhOnRlc3RhdHRyPSJ0ZXN0IgorICAgICAgICAgICAgIHhtbG5zOmRpYT0iaHR0cDovL3d3dy5seXNhdG9yLmxpdS5zZS9+YWxsYS9kaWEvIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvbnM0IGIvbGlieG1sMi0yLjcuNy90ZXN0L25zNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzZiZjkyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L25zNApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRpYWdyYW0gdGVzdGF0dHI9InRlc3QiIHhtbDpsYW5nPSJlbiIgeG1sOmxpbms9InNpbXBsZSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L25zNSBiL2xpYnhtbDItMi43LjcvdGVzdC9uczUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc1ZDM0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9uczUKQEAgLTAsMCArMSw0IEBACis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zOnJuZz0iaHR0cDovL2V4YW1wbGUub3JnL25zLzEiIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvbnMvMSI+CisgIDxlbXB0eS8+Cis8L2VsZW1lbnQ+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uczYgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnM2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMmE4YjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnM2CkBAIC0wLDAgKzEsNCBAQAorPHJvb3Q+CisgIDxmb28geG1sbnM9Imh0dHA6Ly9hYmMiIC8+CisgIDxiYXIgLz4KKzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9uczcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnM3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMmIzYjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnM3CkBAIC0wLDAgKzEgQEAKKzx4bWw6dGVzdC8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvbnNjbGVhbi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvbnNjbGVhbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI5M2RkYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9uc2NsZWFuLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVTLUFTQ0lJIj8+Cis8YXJ0aWNsZSB4bWxucz0idGFnOmZvb2Zvb2Zvb2Zvb2Zvb2Zvb2Zvb2ZvbyIKKyAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICB4bWxuczpkY3Rlcm1zPSJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvIj4KKzxmb29wOmNvbnRlbnQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCisgIHhtbG5zOmZvb3A9InRhZzpmb29mb29mb29mb29mb29mb29mb29mb28iPgorPC9mb29wOmNvbnRlbnQ+Cis8L2FydGljbGU+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9wM3AgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcDNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZDhmYjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcDNwCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPFJERjpSREYgeG1sbnM6cDNwPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1dELVAzUDEwLXN5bnRheCNwcm9wb3NhbC5EVEQiCisgICAgICAgICB4bWxuczpSREY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXJkZi1zeW50YXgjIj4KKzxQUk9QIHJlYWxtPSJodHRwOi8vd3d3LkNvb2xDYXRhbG9nLmNvbS9jYXRhbG9ndWUvIiAKKyBlbnRpdHk9IkNvb2xDYXRhbG9nIiBhZ3JlZUlEPSI5NGRmMTI5M2EzZTUxOWJiIgorIGFzc3VyYW5jZT0iaHR0cDovL3d3dy5UcnVzdFVzLm9yZyI+CisgIDxVU0VTPgorICA8U1RBVEVNRU5UIHB1cnA9IjIsMyIgcmVjcG50PSIwIiBpZD0iMCIKKyAgIGNvbnNxPSJhIHNpdGUgd2l0aCBjbG90aGVzIHlvdSdkIGFwcHJlY2lhdGUuIj4KKyAgICA8V0lUSD48UFJFRklYIG5hbWU9IlVzZXIuIj4KKyAgICAgPFJFRiBuYW1lPSJOYW1lLkZpcnN0Ii8+CisgICAgIDxSRUYgbmFtZT0iQmRhdGUuWWVhciIgb3B0aW9uYWw9IjEiLz4KKyAgICAgPFJFRiBuYW1lPSJHZW5kZXIiLz4KKyAgICA8L1BSRUZJWD48L1dJVEg+CisgIDwvU1RBVEVNRU5UPgorICA8L1VTRVM+CisgIDxVU0VTPgorICA8U1RBVEVNRU5UIGFjdGlvbj0icmVhZCZhbXA7d3JpdGUiIHB1cnA9IjAiIHJlY3BudD0iMCIgaWQ9IjEiPgorICAgIDxSRUYgbmFtZT0iVXNlci5TaGlwcGluZy4iLz4KKyAgPC9TVEFURU1FTlQ+CisgIDwvVVNFUz4KKyAgPERJU0NMT1NVUkUgZGlzY1VSST0iaHR0cDovL3d3dy5Db29sQ2F0YWxvZy5jb20vUHJpdmFjeVByYWN0aWNlLmh0bWwiIAorICAgYWNjZXNzPSIzIiBvdGhlcj0iMCwxIi8+Cis8L1BST1A+PC9SREY6UkRGPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vY29uai5wYXQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcGF0dGVybi9jb25qLnBhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTgwYTA2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vY29uai5wYXQKQEAgLTAsMCArMSw4IEBACithfGIKK2F8YworYnxjCithfGJ8YworL2F8YgorYnwvYQorYS8vY3xiLy9jCitkfGV8ZnxnfGh8YQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vY29uai54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcGF0dGVybi9jb25qLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWM3NzBlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vY29uai54bWwKQEAgLTAsMCArMSwxMyBAQAorPGE+CisgIDxiPgorICAgIDxjPjxiLz48L2M+CisgICAgPGM+CisgICAgICA8Yi8+CisgICAgICA8Yz48Yi8+PC9jPgorICAgIDwvYz4KKyAgPC9iPgorICA8Yz4KKyAgICAgPGI+CisgICAgIDwvYj4KKyAgPC9jPgorPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vbXVsdGlwbGUucGF0IGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vbXVsdGlwbGUucGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMWVlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcGF0dGVybi9tdWx0aXBsZS5wYXQKQEAgLTAsMCArMSwyNyBAQAorYQorYgorYworYy9hCitjL2IKK2IvYQorYy9iL2EKK2MvL2EKK2MvL2IKK2IvL2EKK2MvL2IvL2EKK2MvYi8vYQorYy8vYi9hCisvYQorL2IKKy9jCisvYy9hCisvYy9iCisvYi9hCisvYy9iL2EKKy9jLy9hCisvYy8vYgorL2IvL2EKKy9jLy9iLy9hCisvYy9iLy9hCisvYy8vYi9hCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9wYXR0ZXJuL211bHRpcGxlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9wYXR0ZXJuL211bHRpcGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmYzMWE1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vbXVsdGlwbGUueG1sCkBAIC0wLDAgKzEsNSBAQAorPGM+Cis8Yj48YS8+PGEvPjwvYj4KKzxjPjxiPjxhLz48YS8+PC9iPjwvYz4KKzxiPjxhLz48YS8+PC9iPgorPC9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vbmFtZXNwYWNlcy5wYXQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcGF0dGVybi9uYW1lc3BhY2VzLnBhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjczYTEwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vbmFtZXNwYWNlcy5wYXQKQEAgLTAsMCArMSwxMCBAQAorLy9hCisvL2E6YQorLy9iCisvL2I6YgorL2EvL2EKKy9hL2EKKy9hL2IKKy9hL2E6YQorL2EvYTpiCisvYS9jOmEKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9wYXR0ZXJuL25hbWVzcGFjZXMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vbmFtZXNwYWNlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWViYjUwZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9wYXR0ZXJuL25hbWVzcGFjZXMueG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxhIHhtbG5zOmE9Imh0dHA6Ly9hIiB4bWxuczpiPSJodHRwOi8vYiIgeG1sbnM6Yz0iaHR0cDovL2EiPgorICA8Yi8+CisgIDxhOmE+CisgICAgPGI6Yi8+CisgIDwvYTphPgorICA8YjpiPgorICAgIDxhPgorICAgICAgPGE6YT4KKwk8YjpiLz4KKyAgICAgIDwvYTphPgorICAgIDwvYT4KKyAgPC9iOmI+CisgIDxhIHhtbG5zPSJodHRwOi8vYSI+CisgICAgPGEgeG1sbnM9IiIvPgorICA8L2E+CisgIDxjOmEvPgorPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vc2ltcGxlLnBhdCBiL2xpYnhtbDItMi43LjcvdGVzdC9wYXR0ZXJuL3NpbXBsZS5wYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIyOThhZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9wYXR0ZXJuL3NpbXBsZS5wYXQKQEAgLTAsMCArMSwxNSBAQAorYQorYgorYgorL2EKKy9iCisvYworYS9iCithL2IvYworLy9hCisvL2IKKy8vYworYS8vYgorYS8vYworYi8vYworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcGF0dGVybi9zaW1wbGUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vc2ltcGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmFjNmMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BhdHRlcm4vc2ltcGxlLnhtbApAQCAtMCwwICsxLDUgQEAKKzxhPgorICA8Yj4KKyAgICA8YyBkPSJhdHRyIj50ZXh0PC9jPgorICA8L2I+Cis8L2E+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcGkueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BpLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGM3ZmYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3BpLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKzw/ZG9jdW1lbnQtc3RhcnQgZG9jPz4KKzxlbXB0eS8+Cis8P2RvY3VtZW50LWVuZCBkb2M/PgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcGkyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9waTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMGQ1MWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcGkyLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPD9kb2N1bWVudC1zdGFydCBkb2M/PgorPGRvYz4KKzxlbXB0eS8+Cis8L2RvYz4KKzw/ZG9jdW1lbnQtZW5kIGRvYz8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmRmMSBiL2xpYnhtbDItMi43LjcvdGVzdC9yZGYxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NGMzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmRmMQpAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxSREY6UkRGIHhtbG5zOlJQTT0iaHR0cDovL3d3dy5ycG0ub3JnLyIgeG1sbnM6UkRGPSJodHRwOi8vd3d3LnczLm9yZy9UUi9XRC1yZGYtc3ludGF4IyI+CisgIDxSREY6RGVzY3JpcHRpb24gSFJFRj0iZnRwOi8vcnVmdXMudzMub3JnL2xpbnV4L3JlZGhhdC9yZWRoYXQtNS4xL2kzODYvUmVkSGF0L1JQTVMvcnBtLTIuNS0yLmkzODYucnBtIj4KKyAgICA8UlBNOk5hbWU+cnBtPC9SUE06TmFtZT4KKyAgICA8UlBNOlZlcnNpb24+Mi41PC9SUE06VmVyc2lvbj4KKyAgICA8UlBNOlJlbGVhc2U+MjwvUlBNOlJlbGVhc2U+CisgICAgPFJQTTpBcmNoPmkzODY8L1JQTTpBcmNoPgorICAgIDxSUE06T3M+TGludXg8L1JQTTpPcz4KKyAgICA8UlBNOkRpc3RyaWJ1dGlvbj5NYW5oYXR0YW4gPC9SUE06RGlzdHJpYnV0aW9uPgorICAgIDxSUE06VmVuZG9yPlJlZCBIYXQgU29mdHdhcmU8L1JQTTpWZW5kb3I+CisgICAgPFJQTTpQYWNrYWdlcj5SZWQgSGF0IFNvZnR3YXJlICZsdDtidWdzQHJlZGhhdC5jb20mZ3Q7PC9SUE06UGFja2FnZXI+CisgICAgPFJQTTpHcm91cD5VdGlsaXRpZXMvU3lzdGVtPC9SUE06R3JvdXA+CisgICAgPFJQTTpTdW1tYXJ5PlJlZCBIYXQgUGFja2FnZSBNYW5hZ2VyPC9SUE06U3VtbWFyeT4KKyAgICA8UlBNOkRlc2NyaXB0aW9uPlJQTSBpcyBhIHBvd2VyZnVsIHBhY2thZ2UgbWFuYWdlciwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYnVpbGQsIGluc3RhbGwsCitxdWVyeSwgdmVyaWZ5LCB1cGRhdGUsIGFuZCB1bmluc3RhbGwgaW5kaXZpZHVhbCBzb2Z0d2FyZSBwYWNrYWdlcy4gQQorcGFja2FnZSBjb25zaXN0cyBvZiBhbiBhcmNoaXZlIG9mIGZpbGVzLCBhbmQgcGFja2FnZSBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nCituYW1lLCB2ZXJzaW9uLCBhbmQgZGVzY3JpcHRpb24uPC9SUE06RGVzY3JpcHRpb24+CisgICAgPFJQTTpDb3B5cmlnaHQ+R1BMPC9SUE06Q29weXJpZ2h0PgorICAgIDxSUE06Q2hhbmdlbG9nPiogU3VuIE1heSAxMCAxOTk4IFByb3NwZWN0b3IgU3lzdGVtICZsdDtidWdzQHJlZGhhdC5jb20mZ3Q7CisgIC0gdHJhbnNsYXRpb25zIG1vZGlmaWVkIGZvciBkZSwgZnIsIHRyCis8L1JQTTpDaGFuZ2Vsb2c+CisgICAgPFJQTTpTb3VyY2VzPnJwbS0yLjUtMi5zcmMucnBtPC9SUE06U291cmNlcz4KKyAgICA8UlBNOlNvdXJjZXNGdHA+ZnRwOi8vZnRwLnJlZGhhdC5jb20vcHViL3JlZGhhdC9yZWRoYXQtNS4xL1NSUE1TPC9SUE06U291cmNlc0Z0cD4KKyAgICA8UlBNOkJ1aWxkRGF0ZT5TdW4gTWF5IDEwIDE0OjUyOjMyIDE5OTg8L1JQTTpCdWlsZERhdGU+CisgICAgPFJQTTpEYXRlPjg5NDgyNjM1MjwvUlBNOkRhdGU+CisgICAgPFJQTTpTaXplPjg1MDU5OTwvUlBNOlNpemU+CisgICAgPFJQTTpCdWlsZEhvc3Q+cG9ya3kucmVkaGF0LmNvbTwvUlBNOkJ1aWxkSG9zdD4KKyAgICA8UlBNOlByb3ZpZGVzPgorICAgICAgPFJERjpCYWc+CisgICAgICAgIDxSUE06UmVzb3VyY2U+cnBtPC9SUE06UmVzb3VyY2U+CisgICAgICA8L1JERjpCYWc+CisgICAgPC9SUE06UHJvdmlkZXM+CisgICAgPFJQTTpSZXF1aXJlcz4KKyAgICAgIDxSREY6QmFnPgorICAgICAgICA8UlBNOlJlc291cmNlPi9iaW4vc2g8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZT5sZC1saW51eC5zby4yPC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+bGliYy5zby42PC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2U+bGliZGIuc28uMjwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlPmxpYnouc28uMTwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlPi9iaW4vYmFzaDwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlPi9iaW4vc2g8L1JQTTpSZXNvdXJjZT4KKyAgICAgIDwvUkRGOkJhZz4KKyAgICA8L1JQTTpSZXF1aXJlcz4KKyAgICA8UlBNOkZpbGVzPi9iaW4vcnBtCisvdXNyL2Jpbi9maW5kLXByb3ZpZGVzCisvdXNyL2Jpbi9maW5kLXJlcXVpcmVzCisvdXNyL2Jpbi9nZW5kaWZmCisvdXNyL2Jpbi9ycG0yY3BpbworL3Vzci9kb2MvcnBtLTIuNQorL3Vzci9kb2MvcnBtLTIuNS9DSEFOR0VTCisvdXNyL2RvYy9ycG0tMi41L1JQTS1QR1AtS0VZCisvdXNyL2RvYy9ycG0tMi41L2J1aWxkcm9vdAorL3Vzci9kb2MvcnBtLTIuNS9kZXBlbmRlbmNpZXMKKy91c3IvZG9jL3JwbS0yLjUvZm9ybWF0CisvdXNyL2RvYy9ycG0tMi41L2dyb3VwcworL3Vzci9kb2MvcnBtLTIuNS9tYWNyb3MKKy91c3IvZG9jL3JwbS0yLjUvcXVlcnlmb3JtYXQKKy91c3IvZG9jL3JwbS0yLjUvcmVsb2NhdGFibGUKKy91c3IvZG9jL3JwbS0yLjUvc2lnbmF0dXJlcworL3Vzci9kb2MvcnBtLTIuNS9zcGVjCisvdXNyL2RvYy9ycG0tMi41L3RyaWdnZXJzCisvdXNyL2xpYi9ycG1wb3B0CisvdXNyL2xpYi9ycG1yYworL3Vzci9tYW4vbWFuOC9ycG0uOAorL3Vzci9tYW4vbWFuOC9ycG0yY3Bpby44CisvdXNyL3NoYXJlL2xvY2FsZS9kZS9MQ19NRVNTQUdFUy9ycG0ubW8KKy91c3Ivc2hhcmUvbG9jYWxlL2ZyL0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zaGFyZS9sb2NhbGUvcHQtYnIvTENfTUVTU0FHRVMvcnBtLm1vCisvdXNyL3NoYXJlL2xvY2FsZS9zdi9MQ19NRVNTQUdFUy9ycG0ubW8KKy91c3Ivc2hhcmUvbG9jYWxlL3RyL0xDX01FU1NBR0VTL3JwbS5tbworL3Vzci9zcmMvcmVkaGF0CisvdXNyL3NyYy9yZWRoYXQvQlVJTEQKKy91c3Ivc3JjL3JlZGhhdC9SUE1TCisvdXNyL3NyYy9yZWRoYXQvUlBNUy9pMzg2CisvdXNyL3NyYy9yZWRoYXQvUlBNUy9ub2FyY2gKKy91c3Ivc3JjL3JlZGhhdC9TT1VSQ0VTCisvdXNyL3NyYy9yZWRoYXQvU1BFQ1MKKy91c3Ivc3JjL3JlZGhhdC9TUlBNUworPC9SUE06RmlsZXM+CisgIDwvUkRGOkRlc2NyaXB0aW9uPgorPC9SREY6UkRGPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JkZjIgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmRmMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTgwMzk5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JkZjIKQEAgLTAsMCArMSwxODk5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxSREY6UkRGIHhtbG5zOlJERj0iaHR0cDovL3d3dy53My5vcmcvVFIvV0QtcmRmLXN5bnRheCMiIHhtbG5zOlJQTT0iaHR0cDovL3d3dy5ycG0ub3JnLyI+CisgIDxSREY6RGVzY3JpcHRpb24gYWJvdXQ9ImZ0cDovL3J1ZnVzLnczLm9yZy9saW51eC9kbGQvNS40L2kzODYvUlBNUy9pMzg2L25jdXJzZXM0LTQuMi0zLmkzODYucnBtIj4KKyAgICA8UlBNOk5hbWU+bmN1cnNlczQ8L1JQTTpOYW1lPgorICAgIDxSUE06VmVyc2lvbj40LjI8L1JQTTpWZXJzaW9uPgorICAgIDxSUE06UmVsZWFzZT4zPC9SUE06UmVsZWFzZT4KKyAgICA8UlBNOkFyY2g+aTM4NjwvUlBNOkFyY2g+CisgICAgPFJQTTpPcz5MaW51eDwvUlBNOk9zPgorICAgIDxSUE06RGlzdHJpYnV0aW9uPkRMRDwvUlBNOkRpc3RyaWJ1dGlvbj4KKyAgICA8UlBNOlZlbmRvcj5kZWxpeCBDb21wdXRlciBHbWJIPC9SUE06VmVuZG9yPgorICAgIDxSUE06UGFja2FnZXI+VGlsbCBCdWJlY2sgJmx0O2J1YmVja0BkZWxpeC5kZSZndDssIE5nbyBUaGFuICZsdDt0aGFuQGRlbGl4LmRlJmd0OzwvUlBNOlBhY2thZ2VyPgorICAgIDxSUE06R3JvdXA+TGlicmFyaWVzPC9SUE06R3JvdXA+CisgICAgPFJQTTpTdW1tYXJ5PkJpYmxpb3RoZWsgenVyIEFuc3RldWVydW5nIHZvbiBUZXJtaW5hbHM8L1JQTTpTdW1tYXJ5PgorICAgIDxSUE06RGVzY3JpcHRpb24+RGllc2UgTGlicmFyeSBzdGVsbHQgZGVtIFByb2dyYW1taWVyZXIgdm9tIFRlcm1pbmFsIHVuYWJoJiMyMjg7bmdpZ2UKK1JvdXRpbmVuIHp1ciBBbnN0ZXVlcnVuZyBJaHJlcyBCaWxkc2NoaXJtcyB6dXIgVmVyZiYjMjUyO2d1bmcsIGRpZQorc3BlemllbGwgb3B0aW1pZXJ0IHNpbmQuCitEaWVzZSBWZXJzaW9uIGlzdCBkaWUgJmFwb3M7bmV3IGN1cnNlcyZhcG9zOyAobmN1cnNlcykgVmFyaWFudGUgdW5kIGlzdCBkZXIKK2FuZXJrYW5udGUgRXJzYXR6IGYmIzI1MjtyIGRpZSBrbGFzc2lzY2hlIEN1cnNlcy1MaWJyYXJ5LCBkaWUgbmljaHQgbWVocgord2VpdGVyZW50d2lja2VsdCB3aXJkLjwvUlBNOkRlc2NyaXB0aW9uPgorICAgIDxSUE06Q29weXJpZ2h0PkdQTDwvUlBNOkNvcHlyaWdodD4KKyAgICA8UlBNOlNvdXJjZXM+bmN1cnNlczQtNC4yLTMuc3JjLnJwbTwvUlBNOlNvdXJjZXM+CisgICAgPFJQTTpCdWlsZERhdGU+VHVlIE1heSAxMiAxOTozMDoyNiAxOTk4PC9SUE06QnVpbGREYXRlPgorICAgIDxSUE06RGF0ZT44OTUwMTU4MjY8L1JQTTpEYXRlPgorICAgIDxSUE06U2l6ZT4xMzczNTEzPC9SUE06U2l6ZT4KKyAgICA8UlBNOkJ1aWxkSG9zdD5lcmRiZWVyZS5kZWxpeC5kZTwvUlBNOkJ1aWxkSG9zdD4KKyAgICA8UlBNOlByb3ZpZGVzPgorICAgICAgPFJERjpCYWc+CisgICAgICAgIDxSUE06UmVzb3VyY2UgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL25jdXJzZXM0LnJkZiI+bmN1cnNlczQ8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbGlicGFuZWwuc28uNC5yZGYiPmxpYnBhbmVsLnNvLjQ8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbGlibmN1cnNlcy5zby40LnJkZiI+bGlibmN1cnNlcy5zby40PC9SUE06UmVzb3VyY2U+CisgICAgICAgIDxSUE06UmVzb3VyY2UgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2xpYm1lbnUuc28uNC5yZGYiPmxpYm1lbnUuc28uNDwvUlBNOlJlc291cmNlPgorICAgICAgICA8UlBNOlJlc291cmNlIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9saWJmb3JtLnNvLjQucmRmIj5saWJmb3JtLnNvLjQ8L1JQTTpSZXNvdXJjZT4KKyAgICAgICAgPFJQTTpSZXNvdXJjZSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvbmN1cnNlcy5yZGYiPm5jdXJzZXM8L1JQTTpSZXNvdXJjZT4KKyAgICAgIDwvUkRGOkJhZz4KKyAgICA8L1JQTTpQcm92aWRlcz4KKyAgICA8UlBNOkZpbGVzPi9saWIvbGlibmN1cnNlcy5zby40CisvbGliL2xpYm5jdXJzZXMuc28uNC4yCisvdXNyL2RvYy9uY3Vyc2VzNC00LjItMworL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMvQU5OT1VOQ0UuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL05FV1MuZ3oKKy91c3IvZG9jL25jdXJzZXM0LTQuMi0zL1JFQURNRS5negorL3Vzci9kb2MvbmN1cnNlczQtNC4yLTMvVE8tRE8uZ3oKKy91c3IvbGliL2xpYmZvcm0uc28uNAorL3Vzci9saWIvbGliZm9ybS5zby40LjIKKy91c3IvbGliL2xpYm1lbnUuc28uNAorL3Vzci9saWIvbGlibWVudS5zby40LjIKKy91c3IvbGliL2xpYnBhbmVsLnNvLjQKKy91c3IvbGliL2xpYnBhbmVsLnNvLjQuMgorL3Vzci9zaGFyZS9uY3Vyc2VzNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGFic2V0L3N0ZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvc3RkY3J0CisvdXNyL3NoYXJlL25jdXJzZXM0L3RhYnNldC92dDEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90YWJzZXQvdnQzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8xLzExNzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMS8xNzMwLWxtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMi8yNjIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMS13bAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8yLzI2MjFBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzIvMjYyMWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby8zLzM4NmF0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzMvM2IxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80MDI1ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80MDI3ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNC80NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzUwNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNS81NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzUvNTYzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby81LzU2MzBETUQtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby82LzYzMC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby82LzYzME1URy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzcvNzMwTVRHLTQxcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby83LzczME1UR3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vNy83MzBNVEdyLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOC84NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvLzkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOS85NTUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vOS85NTUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLU0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTItTS1XCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDEyLVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtTQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1AxNC1NLVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QMTQtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vUC9QNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDgtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL1AvUDktOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LTgtVworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9QL1A5LVcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vWAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9YL1gtaHB0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hMjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYTk4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhNDA4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYStkZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWErdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTE4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTE4LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTI4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzAtcnYtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXMtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS0zMC1zLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTMwLXMtcnYtY3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtMzYtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNDgtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAtZGVjLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLTYwLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtNjAtcy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhYS1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLWRiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXJ2LWN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcnYtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcy1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXMtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYWEtcy1ydi1jdHh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWFhLXVuaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FhczE5MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hYm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FibTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWJtODVoLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FjdDQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hY3Q1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkcmluZm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZGRzOTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRkc3ZpZXdwb2ludAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkZHN2cDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTExNzgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTFhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTMxLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG0zYSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hZG00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FkbTQyLW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWRtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FlcHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWl4dGVybS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWl4dGVybS1tLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWo1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hajgzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FqODMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHQ3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvLWgxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG8taGVhdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvaDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b2hlYXRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zLTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbHRvcy00CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYWx0b3MtNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FsdG9zN3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1iYXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbWJhc3NhZG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1pZ2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbWlnYS1oCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wMjE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wMjE5dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4LTIxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4LTIxOXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleC0yMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDE3NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MTc1LWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FtcGV4MjE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMTl3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW1wZXgyMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDIzMncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbXBleDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5uYXJib3I0MDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2ktY29sb3ItMi1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLWNvbG9yLTMtZW14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW1pbmkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaS5zeXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLnN5cy1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpLnN5c2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpNDNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTc3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDI1LW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4MjUtcmF3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDMwLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpODB4NDMtbW9ubworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2k4MHg1MC1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYW5zaTgweDYwLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2lsLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2lzLW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hbnNpc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fuc2l3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXAtdm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2Fwb2xsb18xNVAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcG9sbG9fMTlMCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBvbGxvX2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS1hZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXNvcm9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZS11dGVybS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlLXZpZGV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdmlkZXgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdmlkZXgzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGUtdm04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlMmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTJlLXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZTgwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hcHBsZUlJYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2FwcGxlSUllCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXBwbGVJSWdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXQzODYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdGFyaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDIzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQyMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTB2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTB2MS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUrbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQxNS1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTUtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE1LXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDE4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjQtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NDQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDQ0MjUtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ0NDI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTA1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTA1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTEwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDUxMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1MzEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTMyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwdjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDEwdjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDE4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMCtubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDIwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMC1ydi1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjAtdy1ydi1uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMF8yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyMF8yLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTQyNS1ubAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU0MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NTYyMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDU2MjAtMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ1NjIwLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUtcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MDUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC0xMDNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjEwLTEwM2stdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYxMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LTEwM2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MTUtMTAzay13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NjE1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtMTAzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYyMC0xMDNrLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ2MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDYzODYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAtNDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXR0NzMwcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F0dDczMHItMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdHQ3MzByLTQxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2YXRhcjArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZhdGFyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dCtzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXJ2LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hdnQtdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXJ2LW5zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2EvYXZ0LXctcnYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9hL2F2dC13LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYS9hd3NjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iLTEyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JhbnRhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2Jhc2ljNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2Jhc2lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmN0NTEwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JjdDUxMGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWFjb24KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmVlaGl2ZTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZWVoaXZlNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JlZWhpdmVJSUltCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmV0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcxLjI1bnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzEuMjVydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmcyLjBudgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMi4wcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYi9iZzMuMTBudgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JnMy4xMHJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmgzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JoNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JpdGdyYXBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYmxpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JvYmNhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9iL2JzZG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2IvYnNkb3MtYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTAwLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDAtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MxMDgtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMTA4LXJ2LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzEwOC13LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvYzMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2MzMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jMzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2EyMjg1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NhZDY4LTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jYWQ2OC0zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2JibGl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2J1bml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2NpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2NpMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzQ1NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzcyMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzcyMS1lc2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZGM3MjFsbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzc1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NkYzc1NgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NnNzkwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NnYzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jZ2MzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2hyb21hdGljcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpODUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdC04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQxMDFlLTEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtbjEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdDEwMWUtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQ1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLTZscGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC04bHBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtY29tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLWVsaXRlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY2l0b2gtcGljYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NpdG9oLXByb3AKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jaXRvaC1wcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvY28zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29oZXJlbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb2xvcl94dGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbG9yc2NhbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbW1vZG9yZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0LWF2dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDgtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LThwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uY2VwdDEwOC13LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25jZXB0MTA4LXc4cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbmNlcHQxMDhydjRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWlzby1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWlzbzg4NTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjUta29pOC1yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1LWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjUtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNWwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczI1bDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnMyNXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjVyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zMjV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczMwLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNDMtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1pc28tbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MC1pc284ODU5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwLWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTAtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MGwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczUwbDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM1MHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNTByLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAtaXNvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWlzby1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWtvaThyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwLWtvaThyLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjAtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MGwxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29uczYwbDEtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvbnM2MHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb25zNjByLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb250ZWwzMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jb3BzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY29wcy0xMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NvcHMxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2NzMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jczEwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jdDgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3Q4NTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3RybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9jL2N4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2MvY3gxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeWIxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vYy9jeWI4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZDEzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2Q4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2Q4MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhZ3JhcGhpeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RhdGFtZWRpYTI1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhcG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kYXRhc3BlZWQ0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkNTAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RkcjMxODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQyMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQzMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWMtdnQ0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWNwcm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWN3cml0ZXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZWx0YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGcyMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kZzIxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNDUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGc0NjAtYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNjA1MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RnNjEzNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsby1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjIwLW04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTY0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE2NDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNjQwLW04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzE3MzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kaWFibG8xNzQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhYmxvMTc0MC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzQ1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWJsbzYzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpYWxvZ3VlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGlhbG9ndWU4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RpZ2lsb2cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9ka3U3MDAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZGt1NzAwMy1kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0xNTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0xNTIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0yNTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0zMDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG0zMDQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtODB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1jaGF0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZG1kMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZHQ4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2RtZHQ4MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kbXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kcDMzNjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kcDgyNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kczQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHM0MC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQtMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQtMTAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQxMDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHQ4MC1zYXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdDgwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9kL2R0YzMwMHMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdGMzODIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2QvZHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kdzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kd2sKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZC9kd2stdnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VjbWErY29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lY21hK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2Vtb3RzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW11CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW52MjMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZW52aXNpb24yMzAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9lcDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0MDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXA0OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2VyZ280MDAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXNwcml0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXNwcml0LWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leDE1NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDYyLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2UvZXhjZWw2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9lL2V4Y2VsNjQtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGNlbDY0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZS9leGVjODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAtMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mMTEwLTE0dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxMTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YxNzIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjE3MjBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZjIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDB2aQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2YyMDB2aS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmFsY28KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mYWxjby1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZmVuaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mZW5peHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9maXh0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZm9ydHVuZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZveAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2YvZnJlZWRvbTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9mL2ZyZWVkb20xMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZi9mcmVlZG9tMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nYXRvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dhdG9yLTUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3ItNTJ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ2F0b3ItdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dpZ2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9nbGFzc3R0eQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvLTIyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dvMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ28xNDB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ28yMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ncmFwaG9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3JhcGhvcy0zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMC0yMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNTQzMC0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzNjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2dzaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3QxMDBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3Q0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d0NDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydStydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUrdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTMzLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS0zMy1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS00NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNDQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtNzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2LWxwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS03Ni13LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LTc2LXdtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1scAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9nL2d1cnUtbmN0eHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vZy9ndXJ1LXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2cvZ3VydS1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oLTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gtMTAwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1icworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS1nCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5LXNtdWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTktdQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOS11cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMTlnCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDE5aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOWtlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gxOXVzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDI5YS1rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEta2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oMjlhLW5rYy1iYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2gyOWEtbmtjLXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaDgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGE4Njc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGE4Njg2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGF6ZWwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZHMyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGVhdGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aC0xOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZWF0aGtpdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hlYXRoa2l0LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9oZnQtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hpcmV6MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaGlyZXoxMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2htb2QxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCthcnJvd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwK2xhYmVscworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwK3BmaythcnJvd3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmsrY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwZmstY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocCtwcmludGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAxMTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyMzgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyMzgyYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5NworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjM5N2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtNDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1iYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1mbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMS1rNDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjEtd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFBCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjFiLWt4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1reC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxYi1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjIxcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMXAtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyMmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0LTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRhLTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTEwcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNGItMTBwLXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjRiLTRwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi00cC1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI0Yi1wCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2LTEyLXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtMTJ4NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtbnMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjYtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyNi14NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjZhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjI2cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyN2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MjdhLXJldgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjYyN2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2MngKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDBhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQwYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0MWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDRhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAyNjQ1YQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwMjY0N2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDI2NDhhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHAzMDBoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDAtd3kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMDkyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHA3MDA5MkEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDcwMDkyYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTgzNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg1NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NTUwYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwOTg3MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocDk4NzIxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBhbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBleAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2hwZXgyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBnZW5lcmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2gvaHBzdWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9ocHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaC9odHgxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTUyMC1ub2VzYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTU1MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MTU1Mi1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9oL2h6MjAwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2kzMTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaTMxNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pMzE2NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2k0MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYmNzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libS1hcGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0tc3lzdGVtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzE2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTMxNjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm0zMTY0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtMzI3eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUwNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MDgxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTA4MS1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNTE1MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTUxNTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm01MTU0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm02MTUzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtNjE1NAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTQtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTYxNTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtODUxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libTg1MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm04NTE0LWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hZWQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGExNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libWFwYTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1hcGE4YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libWFwYThjLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1lZ2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1lZ2EtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2libW1vbm8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1tcGVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtbXBlbC1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm1wYzNyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGMzci1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtcGN4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtdmdhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWJtdmdhLWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pYm14CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaWZtcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ltcy1hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW1zOTUwLWIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbXM5NTAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbmZvdG9uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXJ0ZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRlcnR1YmUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pbnRlcnR1YmUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXh0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaW50ZXh0MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2ludGV4dGlpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXBzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXBzaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9pL2lxMTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXExNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWFuc2ktYXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vaS9pcmlzLWNvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2kvaXJpczQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2oKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vai9qYWl4dGVybS1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2ovamVycQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2svazQ1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2F5cHJvCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2F5cHJvMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tlcm1pdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tlcm1pdC1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2FjcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK2NvbG9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva2xvbmUra29pOGFjcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK3NncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2tsb25lK3Nnci1kdW1iCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Q3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2sva3Q3aXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vay9rdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9rL2t0bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGExMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sYXllcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpbnV4LWMtbmMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1rb2k4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgta29pOHIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9saW51eC1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGludXgtbmljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGlzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc2F0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbGlzYXRlcm0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xpc3diCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL2wvbG4wMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xuMDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2xwcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9sL2x1bmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbC9sdW5hNjhrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tMi1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hY2ludG9zaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hY3Rlcm1pbmFsLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tYXNzY29tcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hc3Njb21wMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21hc3Njb21wMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21kbDExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21lZ2F0ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tZW1ocAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21ncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21nci1saW51eAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21nci1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taWNyb2JlZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pY3JvdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pY3JvdGVybTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS0zYXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lLWZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZS1oYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lMmEtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUyYS12CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZTMxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbWUzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lM2EKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1lM2F4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWltZWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW1laWkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9taW5pdGVsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbC0yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXRlbC0yLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21pbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXgtb2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbWluaXgtb2xkLWFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW0zMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tbTM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21vZDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9kZ3JhcGgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2RncmFwaDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tb2RncmFwaDQ4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbW9uby1lbXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2syMjcxNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL21zazIyN2FtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbS9tc2tlcm1pdDIyNzE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXNrZXJtaXQyMjdhbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9tL210LTcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXQ0NTIwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL20vbXQ3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2kuc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2kuc3lzaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25hbnNpc3lzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmFuc2lzeXNrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25jcjc5MDBpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMGl2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmNyNzkwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25lYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25lYzU1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdocAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld2hwa2V5Ym9hcmQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0yOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMjktZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0yOS1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtMzMtZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy0zMy1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MtNDItZXVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy00Mi1zamlzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy1vbGQtdW5rCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3cy11bmsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMjgtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3MzMS1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czMxLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzMzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXdzNDAtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3M0MC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3czQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbmV3c2NibQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0tYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0tbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25ld3NjYm0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL25leHQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9uZXh0c2hlbGwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ub3J0aHN0YXIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud2U1MDEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253ZTUwMS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwLTUxMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cC01MTcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AtNTE3LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3AyNTEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDI1MS1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTExCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEyLWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTItbworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxMy1hCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTEzLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTQtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxNC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL24vbndwNTE3LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vbi9ud3A1MTgtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9uL253cDUxOC1vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vMzEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vNDExMi1uZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL284NWgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vYWJtODVoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2JsaXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vYzEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29jb25jZXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb2plcnEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRpYm1wYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRwYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbGRzdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vbXJvbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29wdXMzbjErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3JpZ2libXBjMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL29yaWdwYzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vczlMSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vc2Jvcm5lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3Nib3JuZTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vc2Jvcm5lMS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3NleGVjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vdGVrNDExMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9vL290ZWs0MTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL28vb3RlazQxMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vby9vd2wKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDEyLW0tdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3AxMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTQtbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDE0LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wMTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3A4LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOGdsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wOS04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktOC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcDktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjLWNvaGVyZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMtbWluaXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYy12ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjMy1ib2xkCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGMzcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjM3ItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjNjMwMHBsdXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wYzczMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktMjUtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS0zMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS0zMy1tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpLTQzLW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2ktbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaS1tb25vCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNhbnNpMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kyNW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY2Fuc2kzMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTMzbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjYW5zaTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNjb25zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNjb25zb2xlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNpeAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNrZXJtaXQxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3Bja2VybWl0MTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGNwbG90CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQyOHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0MzV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dDQwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BjdnQ0M3cKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wY3Z0NTB3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN2dFhYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGN6MTkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTExMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTEyNTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTU1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNjMxMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BlNzAwMGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wZTcwMDBtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcGlsb3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmludGVyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTItbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xMi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtMTQtbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20xNC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc20yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc200CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc201CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc203CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc204LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wcmlzbThnbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJpc205LTgtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3ByaXNtOS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHJvMzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHMzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tODB4MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tOTB4MjgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tOTZ4NDgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tYmFzaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wc3Rlcm0tZmFzdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3BzeF9hbnNpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDEwMHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjAwdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0MjEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQyNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDI1MHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdDUwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9wL3B0NTA1LTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3AvcHQ1MDUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcC9wdHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3FkY29ucworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3Fkc3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xbngKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xbng0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXVtZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F1bWU1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTAxKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwMXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDEwOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTkrLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5Ky13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5LTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTktdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDExOXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQxMTlwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MTE5cC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzKworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9xL3F2dDIwMy0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3EvcXZ0MjAzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcS9xdnQyMDMtdy1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmJjb21tCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmJjb21tLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JiY29tbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmNhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVidXMzMTgwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yZWdlbnQyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3JlZ2VudDQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50NDArCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3IvcmVnZW50NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydDYyMjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9ydDYyMjEtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9yL3J0cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vci9yeHZ0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Ivcnh2dC1iYXNpYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3MvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3M0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2IzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2JpCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2JvYmNhdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjNDEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2M0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY2Fuc2V0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NvYW5zaQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyZWVuMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3NjcmVlbjMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zY3Jld3BvaW50CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc2NyaHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zaW10ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc29yb2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zb3JvYzEyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3Nvcm9jMTQwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3BpbndyaXRlcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N0NTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0xMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0xNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi0zNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLWNtZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuLWUtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1pbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1uaWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bi1zLWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW4tc3M1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VuMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N1bjIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdW5lCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJiZWUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdXBlcmJlZS14c2IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zdXBlcmJlZWljCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3VwZXJicmFpbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N2ODAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zd3RwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Mvc3luZXJ0ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vcy9zeW5lcnRlazM4MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby9zL3N5c3RlbTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3QxMDYxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDEwNjFmCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdDM3MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90MzgwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Q2NTN4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLTE1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGFiMTMyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YWIxMzItdy1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RhbmRlbTY1MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90YW5kZW02NTMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDE0LXNtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAxNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMTUtc20KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDIzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LTE3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNS0xNy13cworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQwMjUtY3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1LWV4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI1ZXgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MDI3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDAyNy1leAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA1LTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA2YnJsCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMDdicmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTA5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDEwOWJybAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyLTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEyLW5kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTMtMzQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTEzLW5kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDExNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQxMTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVrNDIwNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlazQyMDcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0MjA3LXMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZWs0NDA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGVsZXJheQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RlbGV0ZWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90ZXJtaW5ldAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Rlcm1pbmV0MTIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3Rlcm1pbmV0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGd0ZWxuZXQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTcwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpNzMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk3MzUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTc0NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpODAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0xMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkxNi0yMjAtNworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTIyMC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MTYtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTE2LTgtMTMyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNC04CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdGk5MjQtOHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyNgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI2LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkyOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpOTI4LTgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90aTkzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RpX2Fuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90bjEyMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90bjMwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczE2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHJzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RyczgwSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cnNJSQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzLTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90cy0xcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMxMDAtY3R4dAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3RzMTAwLXNwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHMxcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0NTA1LTIyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5MzMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHkzNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTM3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTQ0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NDQyNG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk0NDI2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTB2MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MTB2MS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjArbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyMC1ydgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjAtcnYtbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctbmwKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDIwLXctcnYtbgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU0MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NDI1LW5sCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTQyNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R0eTU2MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dHk1NjIwLTM0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5NTYyMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHR5ZG1kCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpODAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTA2NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMCsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTItMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MTJiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTEyYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkxMmNjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwLTJwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3QvdHZpOTIwYgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTkyMGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MjUtaGkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MkIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5MkQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYtMnAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTAtcnYtNHAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUtaGIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdC90dmk5NTUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MC0ycAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aTk3MC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby90L3R2aXB0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91bHRpbWEyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdWx0aW1hSUkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdS91bml0ZXJtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5pdGVybTQ5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5peHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3UvdW5rbm93bgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby91L3V0czMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92MjAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3YzMjBuCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdjMyMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92NTQxMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZhcHBsZQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMTAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmMyMDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92YzMwMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjMzAzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDAzYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDA0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MDQtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZjNDE0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MTRoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmM0MTUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92ZW5peAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZlcnNhdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkyMDAtZgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpMjAwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmkzMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTMwMC1vbGQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1MDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aTUwYWRtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk1NQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpNTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdmk2MDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQzYSsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92aWV3cG9pbnQ2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZpZXdwb2ludDkwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmlzYTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdmlzdWFsNjAzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3Yvdml0dHkKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92azEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwM2ErCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnA2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3ZwOTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92cmVtb3RlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnMxMDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92czEwMC14MTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92c2MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dC02MQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ibQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLWJtLW8KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1ib3QtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLW5hbS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtbmF2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtbmF2LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtcy1ib3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC1zLXRvcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXRvcC1zCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdy1hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDAtdy1uYXYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEwMG5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMDItbnNncgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTAyLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDEyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MTMxCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQxMzIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDIwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjAwLWpzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtOAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwLWpzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQyMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MjIwZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMDAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMDAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzAwLXctbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1rMworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzIwLWszMTEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzMjAtdy1uYW0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDMyMG5hbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0MzMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQzNDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NDAwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQyMGYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDQyMHBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ0MjBwY2RvcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUwaAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MTBwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NTEwcGNkb3MKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3YvdnQ1MjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDUyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby92L3Z0NjEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdi92dDYxLjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3dyZW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93cmVudworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3dzaXJpcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5LTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTAwcQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTEyMC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxMjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNTAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC00Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxNjAtdy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kxODUtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MTg1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTE4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMC1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtMjV3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00MnctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS00Mnd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LTQzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtNDN3dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS04MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzI1LXctdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTMyNXctMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNTAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzUwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtMTAxaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLTEwNWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1FUEMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC1uaworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5MzcwLXJ2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdGVrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTM3MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3kzNzAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTAtbWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC0zNnBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtMzZ3cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLTQ4cGMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTUyMC00OHdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy0yNAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLWVwYy13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtZXBjLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k1MjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC0zMTZYCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC00MgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NjAtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLTQzLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k2MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k3NS1tYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTc1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5NzVhcAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5ODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTg1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC10ZWsKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eTk5Z3QtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5OTlndC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3k5OWd0LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UtMzI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZS03NWFwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZS12cAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTIwLTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTEyMC12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxMjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNTAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE1MC13LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLTQyCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00Mi13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE2MC00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtNDMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxNjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTYwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMTg1LTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTE4NS12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UxODUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTMyNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtMjUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTI1dworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQydworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtNDMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LTQzdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzMjUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzI1LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2UzNTAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTM1MC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlMzcwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtMjQKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTM2CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNnBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC0zNncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLTM2d3BjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC00OAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDhwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtNDh3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC00OHdwYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtZXBjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1lcGMtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtcC13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXBjLTI0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTUyMC1wYy12YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U1MjAtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNTIwLXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0yNQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC0yNS13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLTMxNlgKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtNDItdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC00MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U2MC00My13CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTYwLXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNjAtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LW1jCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1LXcKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlNzUtd3ZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTc1YXAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtdmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlODUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U4NS13dmIKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vdy93eXNlOTlndAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LTI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QtMjUtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXZiCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3cvd3lzZTk5Z3QtdworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby93L3d5c2U5OWd0LXd2YgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDEwdGVybQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDE3MDAtbG0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94MTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3gxNzUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDY4aworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3g2OGstaXRlCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveDgyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlbml4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGVyb3gKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94ZXJveC1sbQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94MTcyMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3hlcm94ODIwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveGw4MworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0YWxrCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybStzbAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtK3NsLXR3bQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLTE2Y29sb3IKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS04Yml0CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tYm9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLW5pYworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLW9sZAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXBjb2xvcgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXI1CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0tcjYKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14Zjg2LXYzMgorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtLXhmODYtdjMzCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3gveHRlcm0teGY4Ni12NDAKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94dGVybS14aQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtcworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby94L3h0ZXJtcy1zdW4KKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8veC94d3NoCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3oKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96LTEwMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3otMTAwYncKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MTAwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejEwMGJ3CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejExMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxMTBidworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oxOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjlhLWtjLWJjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1rYy11YworL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3oyOWEtbmtjLWJjCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejI5YS1ua2MtdWMKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MjliCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejMwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM0MAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3ozNDAtbmFtCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejM5LWEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96MzlhCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovejgwMDEKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96ZW4zMAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbjUwCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuODAwMQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aAorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDI5CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovemVuaXRoMzktYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3plbml0aDM5LWFuc2kKKy91c3Ivc2hhcmUvbmN1cnNlczQvdGVybWluZm8vei96dC0xCisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenR4CisvdXNyL3NoYXJlL25jdXJzZXM0L3Rlcm1pbmZvL3ovenR4LTEtYQorL3Vzci9zaGFyZS9uY3Vyc2VzNC90ZXJtaW5mby96L3p0eDExCis8L1JQTTpGaWxlcz4KKyAgPC9SREY6RGVzY3JpcHRpb24+Cis8L1JERjpSREY+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9nb29kLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2dvb2QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwYWExYjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9nb29kLnhtbApAQCAtMCwwICsxLDM0MyBAQAorPCFET0NUWVBFIGZvbyBbCis8IUVOVElUWSBmICJzb21lIGludGVybmFsIGRhdGEiPgorPCFFTlRJVFkgZSAiJmY7JmY7Ij4KKzwhRU5USVRZIGQgIiZlOyZlOyI+CitdPgorPGZvbz4mZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOzwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvZ29vZGF0dHIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvZ29vZGF0dHIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZjcwNzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9nb29kYXR0ci54bWwKQEAgLTAsMCArMSwzNDMgQEAKKzwhRE9DVFlQRSBmb28gWworPCFFTlRJVFkgZiAic29tZSBpbnRlcm5hbCBkYXRhIHJhdGhlciBsYXJnZSB0YWtpbmcgcXVpdGUgc29tZSByb29tIj4KKzwhRU5USVRZIGUgIiZmOyZmOyI+Cis8IUVOVElUWSBkICImZTsmZTsiPgorXT4KKzxmb28gYmFyPSImZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOworJmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7JmQ7CismZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsmZDsKKyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyZkOyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvbG9sMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2wxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTJjOTg1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvbG9sMS54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPCFET0NUWVBFIGJpbGxpb24gWw0KKzwhRUxFTUVOVCBiaWxsaW9uICgjUENEQVRBKT4NCis8IUVOVElUWSBsYXVnaDAgImhhIj4NCis8IUVOVElUWSBsYXVnaDEgIiZsYXVnaDA7JmxhdWdoMDsiPg0KKzwhRU5USVRZIGxhdWdoMiAiJmxhdWdoMTsmbGF1Z2gxOyI+DQorPCFFTlRJVFkgbGF1Z2gzICImbGF1Z2gyOyZsYXVnaDI7Ij4NCis8IUVOVElUWSBsYXVnaDQgIiZsYXVnaDM7JmxhdWdoMzsiPg0KKzwhRU5USVRZIGxhdWdoNSAiJmxhdWdoNDsmbGF1Z2g0OyI+DQorPCFFTlRJVFkgbGF1Z2g2ICImbGF1Z2g1OyZsYXVnaDU7Ij4NCis8IUVOVElUWSBsYXVnaDcgIiZsYXVnaDY7JmxhdWdoNjsiPg0KKzwhRU5USVRZIGxhdWdoOCAiJmxhdWdoNzsmbGF1Z2g3OyI+DQorPCFFTlRJVFkgbGF1Z2g5ICImbGF1Z2g4OyZsYXVnaDg7Ij4NCis8IUVOVElUWSBsYXVnaDEwICImbGF1Z2g5OyZsYXVnaDk7Ij4NCis8IUVOVElUWSBsYXVnaDExDQorIiZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyZsYXVnaDEwOyI+DQorPCFFTlRJVFkgbGF1Z2gxMg0KKyImbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsmbGF1Z2gxMTsiPg0KKzwhRU5USVRZIGxhdWdoMTMNCisiJmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7JmxhdWdoMTI7Ij4NCitdPg0KKzxiaWxsaW9uPiZsYXVnaDEzOzwvYmlsbGlvbj4NCisNCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2wyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwN2RjNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2wyLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8IURPQ1RZUEUgYmlsbGlvbiBbDQorPCFFTEVNRU5UIGJpbGxpb24gKCNQQ0RBVEEpPg0KKzwhRU5USVRZIGxhdWdoMCAiaGEiPg0KKzwhRU5USVRZIGxhdWdoMSAiJmxhdWdoMDsmbGF1Z2gwOyI+DQorPCFFTlRJVFkgbGF1Z2gyICImbGF1Z2gxOyZsYXVnaDE7Ij4NCis8IUVOVElUWSBsYXVnaDMgIiZsYXVnaDI7JmxhdWdoMjsiPg0KKzwhRU5USVRZIGxhdWdoNCAiJmxhdWdoMzsmbGF1Z2gzOyI+DQorPCFFTlRJVFkgbGF1Z2g1ICImbGF1Z2g0OyZsYXVnaDQ7Ij4NCis8IUVOVElUWSBsYXVnaDYgIiZsYXVnaDU7JmxhdWdoNTsiPg0KKzwhRU5USVRZIGxhdWdoNyAiJmxhdWdoNjsmbGF1Z2g2OyI+DQorPCFFTlRJVFkgbGF1Z2g4ICImbGF1Z2g3OyZsYXVnaDc7Ij4NCis8IUVOVElUWSBsYXVnaDkgIiZsYXVnaDg7JmxhdWdoODsiPg0KKzwhRU5USVRZIGxhdWdoMTAgIiZsYXVnaDk7JmxhdWdoOTsiPg0KKzwhRU5USVRZIGxhdWdoMTENCisiJmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7JmxhdWdoMTA7Ij4NCis8IUVOVElUWSBsYXVnaDEyDQorIiZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyZsYXVnaDExOyI+DQorPCFFTlRJVFkgbGF1Z2gxMw0KKyImbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsmbGF1Z2gxMjsiPg0KK10+DQorPGJpbGxpb24gbG9jYXRpb249IiZsYXVnaDEzOyI+dGV4dDwvYmlsbGlvbj4NCisNCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2wzLmR0ZCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDMuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViM2JjMjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2wzLmR0ZApAQCAtMCwwICsxLDIwIEBACis8IUVMRU1FTlQgYmlsbGlvbiAoI1BDREFUQSk+Cis8IUVOVElUWSAlIGxhdWdoMCAiPCEtLSBIYSAhIC0tPiI+Cis8IUVOVElUWSAlIGxhdWdoMSAiJWxhdWdoMDslbGF1Z2gwOyI+Cis8IUVOVElUWSAlIGxhdWdoMiAiJWxhdWdoMTslbGF1Z2gxOyI+Cis8IUVOVElUWSAlIGxhdWdoMyAiJWxhdWdoMjslbGF1Z2gyOyI+Cis8IUVOVElUWSAlIGxhdWdoNCAiJWxhdWdoMzslbGF1Z2gzOyI+Cis8IUVOVElUWSAlIGxhdWdoNSAiJWxhdWdoNDslbGF1Z2g0OyI+Cis8IUVOVElUWSAlIGxhdWdoNiAiJWxhdWdoNTslbGF1Z2g1OyI+Cis8IUVOVElUWSAlIGxhdWdoNyAiJWxhdWdoNjslbGF1Z2g2OyI+Cis8IUVOVElUWSAlIGxhdWdoOCAiJWxhdWdoNzslbGF1Z2g3OyI+Cis8IUVOVElUWSAlIGxhdWdoOSAiJWxhdWdoODslbGF1Z2g4OyI+Cis8IUVOVElUWSAlIGxhdWdoMTAgIiVsYXVnaDk7JWxhdWdoOTsiPgorPCFFTlRJVFkgJSBsYXVnaDExCisiJWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7JWxhdWdoMTA7Ij4KKzwhRU5USVRZICUgbGF1Z2gxMgorIiVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyVsYXVnaDExOyI+Cis8IUVOVElUWSAlIGxhdWdoMTMKKyIlbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjslbGF1Z2gxMjsiPgorJWxhdWdoMTM7CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvbG9sMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNjMjM0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDMueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPCFET0NUWVBFIGJpbGxpb24gU1lTVEVNICJsb2wzLmR0ZCI+DQorDQorPGJpbGxpb24+PC9iaWxsaW9uPg0KKw0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDQucGF0Y2ggYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2w0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MWJlMjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2w0LnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKK0luZGV4OiBwYXJzZXIuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHBhcnNlci5jCShyZXZpc2lvbiAzNzczKQorKysrIHBhcnNlci5jCSh3b3JraW5nIGNvcHkpCitAQCAtMjUwNSw2ICsyNTA1LDExIEBAIHhtbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzKHhtbFBhcnNlckN0eHQKKyAJICAgIGMgPSBDVVJfU0NIQVIoc3RyLCBsKTsKKyAJZWxzZQorIAkgICAgYyA9IDA7CisrICAgICAgICBpZiAoKG5iY2hhcnMgPiA1MDAwMDApICYmCisrCSAgICAoY3R4dC0+aW5zdGF0ZSA9PSBYTUxfUEFSU0VSX0FUVFJJQlVURV9WQUxVRSkpIHsKKysJICAgIHhtbEZhdGFsRXJyKGN0eHQsIFhNTF9FUlJfRU5USVRZX0xPT1AsIE5VTEwpOworKwkgICAgZ290byBpbnRfZXJyb3I7CisrICAgICAgICB9CisgICAgIH0KKyAgICAgYnVmZmVyW25iY2hhcnMrK10gPSAwOworICAgICByZXR1cm4oYnVmZmVyKTsKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvbG9sNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ2ZDllYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDQueG1sCkBAIC0wLDAgKzEsMzYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGJpbGxpb24gWworPCFFTEVNRU5UIGJpbGxpb24gKCNQQ0RBVEEpPgorPCFFTlRJVFkgbGF1Z2gwICJhYWhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhhaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGFoaGhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhaGFoYWhhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiPgorPCFFTlRJVFkgbGF1Z2gxICImbGF1Z2gwOyZsYXVnaDA7Ij4KKzwhRU5USVRZIGxhdWdoMiAiJmxhdWdoMTsmbGF1Z2gxOyI+Cis8IUVOVElUWSBsYXVnaDMgIiZsYXVnaDI7JmxhdWdoMjsiPgorPCFFTlRJVFkgbGF1Z2g0ICImbGF1Z2gzOyZsYXVnaDM7Ij4KKzwhRU5USVRZIGxhdWdoNSAiJmxhdWdoNDsmbGF1Z2g0OyI+Cis8IUVOVElUWSBsYXVnaDYgIiZsYXVnaDU7JmxhdWdoNTsiPgorPCFFTlRJVFkgbGF1Z2g3ICImbGF1Z2g2OyZsYXVnaDY7Ij4KKzwhRU5USVRZIGxhdWdoOCAiJmxhdWdoNzsmbGF1Z2g3OyI+Cis8IUVOVElUWSBsYXVnaDkgIiZsYXVnaDg7JmxhdWdoODsiPgorPCFFTlRJVFkgbGF1Z2gxMCAiJmxhdWdoOTsmbGF1Z2g5OyI+Cis8IUVOVElUWSBsYXVnaDExICImbGF1Z2gxMDsmbGF1Z2gxMDsiPgorPCFFTlRJVFkgbGF1Z2gxMiAiJmxhdWdoMTE7JmxhdWdoMTE7Ij4KKzwhRU5USVRZIGxhdWdoMTMgIiZsYXVnaDEyOyZsYXVnaDEyOyI+Cis8IUVOVElUWSBsYXVnaDE0ICImbGF1Z2gxMzsmbGF1Z2gxMzsiPgorPCFFTlRJVFkgbGF1Z2gxNSAiJmxhdWdoMTQ7JmxhdWdoMTQ7Ij4KKzwhRU5USVRZIGxhdWdoMTYgIiZsYXVnaDE1OyZsYXVnaDE1OyI+Cis8IUVOVElUWSBsYXVnaDE3ICImbGF1Z2gxNjsmbGF1Z2gxNjsiPgorPCFFTlRJVFkgbGF1Z2gxOCAiJmxhdWdoMTc7JmxhdWdoMTc7Ij4KKzwhRU5USVRZIGxhdWdoMTkgIiZsYXVnaDE4OyZsYXVnaDE4OyI+Cis8IUVOVElUWSBsYXVnaDIwICImbGF1Z2gxOTsmbGF1Z2gxOTsiPgorPCFFTlRJVFkgbGF1Z2gyMSAiJmxhdWdoMjA7JmxhdWdoMjA7Ij4KKzwhRU5USVRZIGxhdWdoMjIgIiZsYXVnaDIxOyZsYXVnaDIxOyI+Cis8IUVOVElUWSBsYXVnaDIzICImbGF1Z2gyMjsmbGF1Z2gyMjsiPgorPCFFTlRJVFkgbGF1Z2gyNCAiJmxhdWdoMjM7JmxhdWdoMjM7Ij4KKzwhRU5USVRZIGxhdWdoMjUgIiZsYXVnaDI0OyZsYXVnaDI0OyI+Cis8IUVOVElUWSBsYXVnaDI2ICImbGF1Z2gyNTsmbGF1Z2gyNTsiPgorPCFFTlRJVFkgbGF1Z2gyNyAiJmxhdWdoMjY7JmxhdWdoMjY7Ij4KKzwhRU5USVRZIGxhdWdoMjggIiZsYXVnaDI3OyZsYXVnaDI3OyI+Cis8IUVOVElUWSBsYXVnaDI5ICImbGF1Z2gyODsmbGF1Z2gyODsiPgorPCFFTlRJVFkgbGF1Z2gzMCAiJmxhdWdoMjk7JmxhdWdoMjk7Ij4KK10+Cis8YmlsbGlvbiBsb2NhdGlvbj0iJmxhdWdoMjk7Ij50ZXh0PC9iaWxsaW9uPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvbG9sNS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVjdXJzZS9sb2w1LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmFhNmNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvbG9sNS54bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIHJvb3QgWworICA8IUVOVElUWSBoYSAiSGEgISI+CisgIDwhRU5USVRZIGhhMiAiJmhhOyAmaGE7Ij4KKyAgPCFFTlRJVFkgaGEzICImaGEyOyAmaGEyOyI+CisgIDwhRU5USVRZIGhhNCAiJmhhMzsgJmhhMzsiPgorICA8IUVOVElUWSBoYTUgIiZoYTQ7ICZoYTQ7Ij4KKyAgPCFFTlRJVFkgaGE2ICImaGE1OyAmaGE1OyI+CisgIDwhRU5USVRZIGhhNyAiJmhhNjsgJmhhNjsiPgorICA8IUVOVElUWSBoYTggIiZoYTc7ICZoYTc7Ij4KKyAgPCFFTlRJVFkgaGE5ICImaGE4OyAmaGE4OyI+CisgIDwhRU5USVRZIGhhMTAgIiZoYTk7ICZoYTk7Ij4KKyAgPCFFTlRJVFkgaGExMSAiJmhhMTA7ICZoYTEwOyI+CisgIDwhRU5USVRZIGhhMTIgIiZoYTExOyAmaGExMTsiPgorICA8IUVOVElUWSBoYTEzICImaGExMjsgJmhhMTI7Ij4KKyAgPCFFTlRJVFkgaGExNCAiJmhhMTM7ICZoYTEzOyI+CisgIDwhRU5USVRZIGhhMTUgIiZoYTE0OyAmaGExNDsiPgorICA8IUVOVElUWSBoYTE2ICImaGExNTsgJmhhMTU7Ij4KKyAgPCFFTlRJVFkgaGExNyAiJmhhMTY7ICZoYTE2OyI+CisgIDwhRU5USVRZIGhhMTggIiZoYTE3OyAmaGExNzsiPgorICA8IUVOVElUWSBoYTE5ICImaGExODsgJmhhMTg7Ij4KKyAgPCFFTlRJVFkgaGEyMCAiJmhhMTk7ICZoYTE5OyI+CisgIDwhRU5USVRZIGhhMjEgIiZoYTIwOyAmaGEyMDsiPgorICA8IUVOVElUWSBoYTIyICImaGEyMTsgJmhhMjE7Ij4KKyAgPCFFTlRJVFkgaGEyMyAiJmhhMjI7ICZoYTIyOyI+CisgIDwhRU5USVRZIGhhMjQgIiZoYTIzOyAmaGEyMzsiPgorICA8IUVOVElUWSBoYTI1ICImaGEyNDsgJmhhMjQ7Ij4KKyAgPCFFTlRJVFkgaGEyNiAiJmhhMjU7ICZoYTI1OyI+CisgIDwhRU5USVRZIGhhMjcgIiZoYTI2OyAmaGEyNjsiPgorICA8IUVOVElUWSBoYTI4ICImaGEyNzsgJmhhMjc7Ij4KKyAgPCFFTlRJVFkgaGEyOSAiJmhhMjg7ICZoYTI4OyI+CisgIDwhRU5USVRZIGhhMzAgIiZoYTI5OyAmaGEyOTsiPgorICA8IUVOVElUWSBoYTMxICImaGEzMDsgJmhhMzA7Ij4KKyAgPCFFTlRJVFkgaGEzMiAiJmhhMzE7ICZoYTMxOyI+CisgIDwhRU5USVRZIGhhMzMgIiZoYTMyOyAmaGEzMjsiPgorICA8IUVOVElUWSBoYTM0ICImaGEzMzsgJmhhMzM7Ij4KKyAgPCFFTlRJVFkgaGEzNSAiJmhhMzQ7ICZoYTM0OyI+CisgIDwhRU5USVRZIGhhMzYgIiZoYTM1OyAmaGEzNTsiPgorICA8IUVOVElUWSBoYTM3ICImaGEzNjsgJmhhMzY7Ij4KKyAgPCFFTlRJVFkgaGEzOCAiJmhhMzc7ICZoYTM3OyI+CisgIDwhRU5USVRZIGhhMzkgIiZoYTM4OyAmaGEzODsiPgorICA8IUVOVElUWSBoYTQwICImaGEzOTsgJmhhMzk7Ij4KKyAgPCFFTlRJVFkgaGE0MSAiJmhhNDA7ICZoYTQwOyI+CisgIDwhRU5USVRZIGhhNDIgIiZoYTQxOyAmaGE0MTsiPgorICA8IUVOVElUWSBoYTQzICImaGE0MjsgJmhhNDI7Ij4KKyAgPCFFTlRJVFkgaGE0NCAiJmhhNDM7ICZoYTQzOyI+CisgIDwhRU5USVRZIGhhNDUgIiZoYTQ0OyAmaGE0NDsiPgorICA8IUVOVElUWSBoYTQ2ICImaGE0NTsgJmhhNDU7Ij4KKyAgPCFFTlRJVFkgaGE0NyAiJmhhNDY7ICZoYTQ2OyI+CisgIDwhRU5USVRZIGhhNDggIiZoYTQ3OyAmaGE0NzsiPgorXT4KKzxyb290PiZoYTQ4Ozwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDYueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlY3Vyc2UvbG9sNi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU5ZDU1ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWN1cnNlL2xvbDYueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzwhRE9DVFlQRSBiaWxsaW9uIFsNCis8IUVMRU1FTlQgYmlsbGlvbiAoI1BDREFUQSk+DQorPCFFTlRJVFkgbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDAgImhhIj4NCis8IUVOVElUWSBsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMSAiJmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMDsiPg0KKzwhRU5USVRZIGxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgyICImbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxOyI+DQorPCFFTlRJVFkgbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDMgIiZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDI7Ij4NCis8IUVOVElUWSBsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoNCAiJmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgzOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMzsiPg0KKzwhRU5USVRZIGxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGg1ICImbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDQ7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGg0OyI+DQorPCFFTlRJVFkgbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDYgIiZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoNTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDU7Ij4NCis8IUVOVElUWSBsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoNyAiJmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGg2OyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoNjsiPg0KKzwhRU5USVRZIGxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGg4ICImbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDc7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGg3OyI+DQorPCFFTlRJVFkgbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDkgIiZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoODsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDg7Ij4NCis8IUVOVElUWSBsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTAgIiZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoOTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDk7Ij4NCis8IUVOVElUWSBsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTENCisiJmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMDsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEwOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTA7Ij4NCis8IUVOVElUWSBsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTINCisiJmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMTsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDExOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTE7Ij4NCis8IUVOVElUWSBsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTMNCisiJmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7JmxhdWdoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGgxMjsmbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEyOyZsYXVnaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoMTI7Ij4NCitdPg0KKzxiaWxsaW9uIGxvY2F0aW9uPSImbGF1Z2hoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDEzOyI+dGV4dDwvYmlsbGlvbj4NCisNCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVnZXhwL2JyYW5jaCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvYnJhbmNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNzI4ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVnZXhwL2JyYW5jaApAQCAtMCwwICsxLDE0IEBACis9PmF8YihkfGUoZ3xofGkpfGYpfGMKK2EKK2MKK2JkCitiZgorYmVnCitiZWgKK2JlaQorYgorYmUKK2JpCitmCithYgorYWMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvYnVnMzE2MzM4IGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC9idWczMTYzMzgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThjNzgzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvYnVnMzE2MzM4CkBAIC0wLDAgKzEsMjAgQEAKKz0+KCgoQ3xjKSgoW1xzXSpcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/KXszfSkrW1xzXSopKSsKK0MgNDMzCitDIDQzMyAxMgorQyA0MzMgMTIzCitDIDQzMyAxMjMgNDU2CitDIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyCis9PigoKEN8YykoKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPyl7M30pK1tcc10qKSkrCitDIDQzMworQyA0MzMgMTIKK0MgNDMzIDEyMworQyA0MzMgMTIzIDQ1NgorQyA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMgorPT4oKChDfGMpKChbXHNdK1wtP1swLTldKyhcLlswLTldKyk/W1xzXSosW1xzXSpcLT9bMC05XSsoXC5bMC05XSspPyl7M30pK1tcc10qKSkrCitDIDQzMworQyA0MzMgMTIKK0MgNDMzIDEyMworQyA0MzMgMTIzIDQ1NgorQyA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyIDcyNC42NCw0MzMuMTIgNzE4LjA4LDQzMy4xMiA3MTEuNTIsNDMzLjEyCis9PigoKE18bSkoW1xzXStcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/W1xzXSosW1xzXSpcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/KVtcc10qKXwoKEx8bCkoW1xzXStcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/W1xzXSosW1xzXSpcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/KStbXHNdKil8KChIfGgpKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPykrW1xzXSopfCgoVnx2KShbXHNdK1wtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT8pK1tcc10qKXwoKEN8YykoKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10qLFtcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPyl7M30pK1tcc10qKXwoKFF8cSkoKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10qLFtcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPyl7Mn0pK1tcc10qKXwoKFN8cykoKFtcc10rXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspP1tcc10qLFtcc10qXC0/WzAtOV0rKFwuWzAtOV0rKT8oKGV8RSlcLT9bMC05XSspPyl7Mn0pK1tcc10qKXwoKEF8YSkoW1xzXStcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/W1xzXSosW1xzXSpcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/W1xzXSpcLT9bMC05XSsoXC5bMC05XSspPygoZXxFKVwtP1swLTldKyk/W1xzXStbMC0xXVtcc10rWzAtMV1bXHNdK1wtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT9bXHNdKixbXHNdKlwtP1swLTldKyhcLlswLTldKyk/KChlfEUpXC0/WzAtOV0rKT8pK1tcc10qKXwoKFp8eilbXHNdKikpKgorTSA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMiA3MjQuNjQsNDMzLjEyIDcxOC4wOCw0MzMuMTIgNzExLjUyLDQzMy4xMgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC9idWc0MjA1OTYgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVnZXhwL2J1ZzQyMDU5NgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmYyODVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC9idWc0MjA1OTYKQEAgLTAsMCArMSwxMCBAQAorPT4oXCt8LSkoMFswLTldfDFbMC0xXSkKKyswMQorLTAxCisrMTAKKy0xMAorPT5bKy1dKDBbMC05XXwxWzAtMV0pCisrMDEKKy0wMQorKzEwCistMTAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvY29udGVudCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvY29udGVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDAxYzhiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC9jb250ZW50CkBAIC0wLDAgKzEsMTIgQEAKKz0+KChhfGJ8YylkZWYpCithZGVmCitiZGVmCithZGVmZworYWFlZgorPT4oKGF8YnxjfGR8ZXxmKT8oZ3xofGkpKyhrfGwpKikKK2cKK2dpCitmaWwKK2dpa2wKK2NnaGhoaWlsbAorYWsKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvaGFyZCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvaGFyZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGI0Y2ZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC9oYXJkCkBAIC0wLDAgKzEsMTIgQEAKKz0+KChhfGJ8XHB7TmR9KXsxLDJ9fGFhYXxiYmJiKXsxLDJ9CitiYWIKK2FhY2EKK2FhYWJiYmIKK2EwYgorYWEwYWFhCitiMGFhYQorPT4oXGR7MSwzfVwuKXszfVxkezEsM30KKzEuMi4zLjQKKzEuMjIuMzMzLjQ0CisxLjIuMworMS4uMi4zCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVnZXhwL25jbmFtZSBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvbmNuYW1lCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNDUyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVnZXhwL25jbmFtZQpAQCAtMCwwICsxLDYgQEAKKz0+W1xpLVs6XV1bXGMtWzpdXSoKK2EKK2FiYworYWJjMWQKKzFhYworYTFiOmMKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvcmFuZ2VzIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC9yYW5nZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I3YzIyZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvcmFuZ2VzCkBAIC0wLDAgKzEsMTUgQEAKKz0+YXsyLDN9CithCithYQorYWFhCithYWFhCis9PmJhezIsM31jCitiYWMKK2JhYWMKK2JhYWFjCitiYWFhYWMKKz0+YShifGMpezIsM31kCithYmNkCithY2NjZAorYWJkCithY2NjY2QKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvcmFuZ2VzMiBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWdleHAvcmFuZ2VzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGViODg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC9yYW5nZXMyCkBAIC0wLDAgKzEsMTQgQEAKKz0+KGF8YnswLDN9KXswLDF9CithCithYQorYgorYmIKK2JiYgorYmJiYgorYWIKK2JhCis9PihbMC05XXswLDN9fChbMC05XXswfXxbMC05XXswLDN9KSl7MCwzfQorMAorMDAKKzEyMworYWJjCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVnZXhwL3hwYXRoIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC94cGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmMxOGM0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlZ2V4cC94cGF0aApAQCAtMCwwICsxLDM3IEBACis9PihcLi8vKT8oKChjaGlsZDo6KT8oKFxpXGMqOik/KFxpXGMqfFwqKSkpfFwuKSgvKCgoY2hpbGQ6Oik/KChcaVxjKjopPyhcaVxjKnxcKikpKXxcLikpKihcfChcLi8vKT8oKChjaGlsZDo6KT8oKFxpXGMqOik/KFxpXGMqfFwqKSkpfFwuKSgvKCgoY2hpbGQ6Oik/KChcaVxjKjopPyhcaVxjKnxcKikpKXxcLikpKikqCithCithMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzCisqCithfGIKKy4vL2E6YgorYS9iL2MKK2EvKi9iCithOiovYjoqL2M6KgorY2hpbGQ6OmEvY2hpbGQ6OmI6KgorY2hpbGQ6OmEvY2hpbGQ6OmI6KnxhLyovYnwuLy9hOmIKKzEKKzFhYgorYToxCitAYQorYW5jZXN0b3I6OmEKKyMKKyMgdGhlIHByZXZpb3VzIHJlZ2V4cCBmcm9tIHRoZSBTY2hlbWFzIGZvciBTY2hlbWFzIHdhcyBicm9rZW4KKyMgaGVyZSBpcyB0aGUgZml4ZWQgb25lOgorIyBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3cteG1sLXNjaGVtYS1jb21tZW50cy8yMDAyQXBySnVuLzAwMDUuaHRtbAorIworPT4oXC4vLyk/KCgoY2hpbGQ6Oik/KChbXGktWzpdXVtcYy1bOl1dKjopPyhbXGktWzpdXVtcYy1bOl1dKnxcKikpKXxcLikoLygoKGNoaWxkOjopPygoW1xpLVs6XV1bXGMtWzpdXSo6KT8oW1xpLVs6XV1bXGMtWzpdXSp8XCopKSl8XC4pKSooXHwoXC4vLyk/KCgoY2hpbGQ6Oik/KChbXGktWzpdXVtcYy1bOl1dKjopPyhbXGktWzpdXVtcYy1bOl1dKnxcKikpKXxcLikoLygoKGNoaWxkOjopPygoW1xpLVs6XV1bXGMtWzpdXSo6KT8oW1xpLVs6XV1bXGMtWzpdXSp8XCopKSl8XC4pKSopKgorYQorYTEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMzEyL2IzMTIvYjMxMi9iMworKgorYXxiCisuLy9hOmIKK2EvYi9jCithLyovYgorYToqL2I6Ki9jOioKK2NoaWxkOjphL2NoaWxkOjpiOioKK2NoaWxkOjphL2NoaWxkOjpiOip8YS8qL2J8Li8vYTpiCisxCisxYWIKK2E6MQorQGEKK2FuY2VzdG9yOjphCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDI4MzYucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvMzAyODM2LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGRiMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvMzAyODM2LnJuZwpAQCAtMCwwICsxLDM1IEBACis8ZWxlbWVudCBuYW1lPSJiYXNlIgoreG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGNob2ljZT4KKyAgICA8Z3JvdXA+CisgICAgICA8ZWxlbWVudCBuYW1lPSJkYXRhIj4gCisgICAgICAgIDx2YWx1ZT5maXJzdFZhbHVlPC92YWx1ZT4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxvbmVPck1vcmU+CisgICAgICAgIDxlbGVtZW50IG5hbWU9Im9wdGlvbiI+CisgICAgICAgICAgPGVsZW1lbnQgbmFtZT0idmFsdWUiPgorICAgICAgICAgICAgPHRleHQvPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJsYWJlbCI+CisgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L29uZU9yTW9yZT4KKyAgICA8L2dyb3VwPgorICAgIDxncm91cD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImRhdGEiPiAKKyAgICAgICAgPHZhbHVlPnNlY29uZFZhbHVlPC92YWx1ZT4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxvbmVPck1vcmU+CisgICAgICAgIDxlbGVtZW50IG5hbWU9Im9wdGlvbiI+CisgICAgICAgICAgPGVsZW1lbnQgbmFtZT0idmFsdWUiPgorICAgICAgICAgICAgPHRleHQvPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJsYWJlbCI+CisgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L29uZU9yTW9yZT4gICAgICAgICAgICAKKyAgICA8L2dyb3VwPgorICA8L2Nob2ljZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzMwMjgzNl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzMwMjgzNl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWViMmYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvMzAyODM2XzAueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzxiYXNlPgorICA8ZGF0YT5zZWNvbmRWYWx1ZTwvZGF0YT4gCisgIDxvcHRpb24+CisgICAgPHZhbHVlPmhvdzwvdmFsdWU+CisgICAgPGxhYmVsPnNvbWU8L2xhYmVsPgorICA8L29wdGlvbj4KKyAgPG9wdGlvbj4KKyAgICA8dmFsdWU+dGhpczwvdmFsdWU+CisgICAgPGxhYmVsPm1vcmU8L2xhYmVsPgorICA8L29wdGlvbj4KKzwvYmFzZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzMwNzM3Ny5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzcucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3YTg3YzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzcucm5nCkBAIC0wLDAgKzEsMTQgQEAKKzxlbGVtZW50IG5hbWU9Im51bWJlciIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgIDxhdHRyaWJ1dGUgbmFtZT0idmFsIj4KKyAgICAgIDxsaXN0PgorICAgICAgICAgPG9uZU9yTW9yZT4KKyAgICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+CisgICAgICAgICAgICAgICA8dmFsdWU+MjwvdmFsdWU+CisgICAgICAgICAgICAgICA8dmFsdWU+MzwvdmFsdWU+CisgICAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgIDwvb25lT3JNb3JlPgorICAgICAgPC9saXN0PgorICAgPC9hdHRyaWJ1dGU+CisgICA8dGV4dC8+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzdfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzdfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA2ZDAyYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzMwNzM3N18wLnhtbApAQCAtMCwwICsxIEBACis8bnVtYmVyIHZhbD0iYSAxIGIgMiBjIDMiIC8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzdfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzdfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNiMGQxYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzMwNzM3N18xLnhtbApAQCAtMCwwICsxIEBACis8bnVtYmVyIHZhbD0iMSBhIDIgYiAzIGMiIC8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzdfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy8zMDczNzdfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEwNDFhYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzMwNzM3N18yLnhtbApAQCAtMCwwICsxIEBACis8bnVtYmVyIHZhbD0iMSAyIDMiIC8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy80OTIzMTcucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNDkyMzE3LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDNmMjk0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNDkyMzE3LnJuZwpAQCAtMCwwICsxLDE2IEBACis8ZWxlbWVudCBuYW1lPSJyb290IiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8Y2hvaWNlPgorICAgIDxlbGVtZW50IG5hbWU9ImNoaWxkIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgIDx2YWx1ZT5Gb288L3ZhbHVlPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8IS0tIERlZmluZSBzdHVmZiB0aGF0J3Mgb25seSB2YWxpZCB3aGVuIHR5cGUgaXMgIkZvbyIgLS0+CisgICAgPC9lbGVtZW50PgorICAgIDxlbGVtZW50IG5hbWU9ImNoaWxkIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgIDx2YWx1ZT5CYXI8L3ZhbHVlPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8IS0tIERlZmluZSBzdHVmZiB0aGF0J3Mgb25seSB2YWxpZCB3aGVuIHR5cGUgaXMgIkJhciIgLS0+CisgICAgPC9lbGVtZW50PgorICA8L2Nob2ljZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzQ5MjMxN18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzQ5MjMxN18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWI5ZDgwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNDkyMzE3XzAueG1sCkBAIC0wLDAgKzEsNCBAQAorPHJvb3Q+CisgIDxjaGlsZCB0eXBlPSJGb28iPgorICA8L2NoaWxkPgorPC9yb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNDkyMzE3XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNDkyMzE3XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMjVhYzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy80OTIzMTdfMS54bWwKQEAgLTAsMCArMSw0IEBACis8cm9vdD4KKyAgPGNoaWxkIHR5cGU9IkJhciI+CisgIDwvY2hpbGQ+Cis8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy80OTIzMTdfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy80OTIzMTdfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNiYmM1ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzQ5MjMxN18yLnhtbApAQCAtMCwwICsxLDQgQEAKKzxyb290PgorICA8Y2hpbGQgdHlwZT0iIj4KKyAgPC9jaGlsZD4KKzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzU1ODQ1Mi5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81NTg0NTIucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZmJmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81NTg0NTIucm5nCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGdyYW1tYXIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vY2hvaWNlIgorICAgICAgICAgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHN0YXJ0PiAKKyAgICA8ZWxlbWVudCBuYW1lPSJkb2MiIG5zPSIiPgorICAgICAgPHJlZiBuYW1lPSJlbGVtIi8+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxyZWYgbmFtZT0iZWxlbSIvPgorICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgPHJlZiBuYW1lPSJlbGVtIi8+CisgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICA8L29wdGlvbmFsPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworICA8ZGVmaW5lIG5hbWU9ImVsZW0iPgorICAgIDxlbGVtZW50IG5hbWU9ImVsZW0iIG5zPSIiPgorICAgICAgPHRleHQvPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+Cis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81NTg0NTJfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81NTg0NTJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA0NDBlMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzU1ODQ1Ml8wLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKyAgPGVsZW0vPgorICA8ZWxlbS8+CisgIDxlbGVtLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTU4NDUyXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTU4NDUyXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNTY5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81NTg0NTJfMS54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2M+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzU1ODQ1Ml8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzU1ODQ1Ml8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTI0NjI2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTU4NDUyXzIueG1sCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jPgorICA8ZWxlbS8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzU1ODQ1Ml8zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzU1ODQ1Ml8zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2ViNDY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTU4NDUyXzMueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jPgorICA8ZWxlbS8+CisgIDxlbGVtLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTU4NDUyXzQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTU4NDUyXzQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExZWU3MmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81NTg0NTJfNC54bWwKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2M+CisgIDxlbGVtLz4KKyAgPGVsZW0vPgorICA8ZWxlbS8+CisgIDxlbGVtLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTk1NzkyLWV4dC5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81OTU3OTItZXh0LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODk5MGNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTk1NzkyLWV4dC5ybmcKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxncmFtbWFyIG5zPSIiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxzdGFydD4KKyAgICA8ZWxlbWVudCBuYW1lPSJ0Ij4KKyAgICAgIDxyZWYgbmFtZT0idGNvbnQiLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+CisgIDxkZWZpbmUgbmFtZT0idGNvbnQiPgorICAgIDx0ZXh0Lz4KKyAgPC9kZWZpbmU+Cis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81OTU3OTIucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTk1NzkyLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjJlYjkzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvNTk1NzkyLnJuZwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Z3JhbW1hciBucz0iIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8c3RhcnQ+CisgICAgPGVsZW1lbnQgbmFtZT0icm9vdCI+CisgICAgICA8ZXh0ZXJuYWxSZWYgaHJlZj0iNTk1NzkyLWV4dC5ybmciLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+Cis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81OTU3OTJfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy81OTU3OTJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ2YzU4OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nLzU5NTc5Ml8wLnhtbApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHJvb3Q+CisgIDx0PmZvbzwvdD4KKzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL09BU0lTL3NwZWN0ZXN0LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL09BU0lTL3NwZWN0ZXN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGFmYjJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvT0FTSVMvc3BlY3Rlc3QueG1sCkBAIC0wLDAgKzEsNjg0NSBAQAorPCFET0NUWVBFIHRlc3RTdWl0ZSBbDQorPCFFTlRJVFkgZGlpICI8JiN4RTE0OyYjeEUzNTsvPiI+DQorXT4NCis8dGVzdFN1aXRlPg0KKzxhdXRob3I+SmFtZXMgQ2xhcms8L2F1dGhvcj4NCis8ZW1haWw+ampjQGpjbGFyay5jb208L2VtYWlsPg0KKzxkb2N1bWVudGF0aW9uPkZvciBPY3RvYmVyIDI2IHZlcnNpb24gb2YgdGhlIHNwZWMuPC9kb2N1bWVudGF0aW9uPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8dGVzdFN1aXRlPg0KKzxkb2N1bWVudGF0aW9uPlZhcmlvdXMgcG9zc2libGUgc3ludGF4IGVycm9ycy48L2RvY3VtZW50YXRpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8dGhpc0lzSnVuay8+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKyAgPHN0YXJ0Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8ZGVmaW5lIG5hbWU9ImJhciI+DQorICAgIDx0ZXh0Lz4NCisgIDwvZGVmaW5lPg0KKyAgPHRleHQvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPG5hbWU+Zm9vPC9uYW1lPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxncm91cD4NCisgICAgPG5hbWU+YmFyPC9uYW1lPg0KKyAgPC9ncm91cD4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YW55TmFtZT4NCisgICAgPGV4Y2VwdD4NCisgICAgICA8bmFtZT5mb288L25hbWU+DQorICAgIDwvZXhjZXB0Pg0KKyAgICA8ZXhjZXB0Pg0KKyAgICAgIDxuYW1lPmJhcjwvbmFtZT4NCisgICAgPC9leGNlcHQ+DQorICA8L2FueU5hbWU+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxuc05hbWU+DQorICAgIDxleGNlcHQ+DQorICAgICAgPG5hbWU+Zm9vPC9uYW1lPg0KKyAgICA8L2V4Y2VwdD4NCisgICAgPGV4Y2VwdD4NCisgICAgICA8bmFtZT5iYXI8L25hbWU+DQorICAgIDwvZXhjZXB0Pg0KKyAgPC9uc05hbWU+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPGRhdGEgdHlwZT0idG9rZW4iPg0KKyAgICA8ZXhjZXB0Pg0KKyAgICAgIDx2YWx1ZT5mb288L3ZhbHVlPg0KKyAgICA8L2V4Y2VwdD4NCisgICAgPGV4Y2VwdD4NCisgICAgICA8dmFsdWU+YmFyPC92YWx1ZT4NCisgICAgPC9leGNlcHQ+DQorICA8L2RhdGE+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8ZW1wdHkgbmFtZT0iYmFyIi8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyIgZXh0cmE9ImJhciI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPGVtcHR5Pg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbXB0eT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDx0ZXh0Pg0KKyAgICA8ZW1wdHkvPg0KKyAgPC90ZXh0Pg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPGNob2ljZT4NCisgICAgPHRleHQvPg0KKyAgICA8bm90QWxsb3dlZD4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L25vdEFsbG93ZWQ+DQorICA8L2Nob2ljZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxyZWYgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L3JlZj4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9ImZvbyI+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8Z3JhbW1hcj4NCisgICAgICA8c3RhcnQ+DQorICAgICAgICA8cGFyZW50UmVmIG5hbWU9ImZvbyI+DQorICAgICAgICAgIDxlbXB0eS8+DQorICAgICAgICA8L3BhcmVudFJlZj4NCisgICAgICA8L3N0YXJ0Pg0KKyAgICA8L2dyYW1tYXI+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPGRvY3VtZW50YXRpb24+VGVzdHMgZm9yIG9ic29sZXRlIHN5bnRheDwvZG9jdW1lbnRhdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQgbmFtZT0iZm9vIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIiBnbG9iYWw9InRydWUiPg0KKyAgICA8dGV4dC8+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bm90Pg0KKyAgICA8bmFtZT5mb288L25hbWU+DQorICA8L25vdD4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGRpZmZlcmVuY2U+DQorICAgIDxhbnlOYW1lLz4NCisgICAgPG5hbWU+Zm9vPC9uYW1lPg0KKyAgPC9kaWZmZXJlbmNlPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxkYXRhIHR5cGU9InRva2VuIiBrZXk9ImZvbyIvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPGRhdGEgdHlwZT0idG9rZW4iIGtleVJlZj0iZm9vIi8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8a2V5UmVmIG5hbWU9ImZvbyI+DQorICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICA8L2tleVJlZj4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxrZXkgbmFtZT0iZm9vIj4NCisgICAgPGRhdGEgdHlwZT0idG9rZW4iLz4NCisgIDwva2V5Pg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPGRvY3VtZW50YXRpb24+VGVzdHMgZm9yIG1pc3NpbmcgYXR0cmlidXRlcyBhbmQgY2hpbGQgZWxlbWVudHM8L2RvY3VtZW50YXRpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG5hbWU+Zm9vPC9uYW1lPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGUvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGdyb3VwLz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlLz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxjaG9pY2UvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9wdGlvbmFsLz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDx6ZXJvT3JNb3JlLz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvbmVPck1vcmUvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGxpc3QvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG1peGVkLz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlLz4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGFueU5hbWU+DQorICAgIDxleGNlcHQvPg0KKyAgPC9hbnlOYW1lPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bnNOYW1lIG5zPSIiPg0KKyAgICA8ZXhjZXB0Lz4NCisgIDwvbnNOYW1lPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkYXRhIHR5cGU9InN0cmluZyI+DQorICAgIDxleGNlcHQvPg0KKyAgPC9kYXRhPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGRhdGEvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGRhdGEgdHlwZT0ic3RyaW5nIj4NCisgICAgPHBhcmFtLz4NCisgIDwvZGF0YT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxncmFtbWFyPg0KKyAgICA8c3RhcnQvPg0KKyAgPC9ncmFtbWFyPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJiYXoiLz4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxleHRlcm5hbFJlZi8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUvPg0KKyAgPHN0YXJ0Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGdyYW1tYXI+DQorICAgICAgPHN0YXJ0Pg0KKyAgICAgICAgPHBhcmVudFJlZi8+DQorICAgICAgPC9zdGFydD4NCisgICAgPC9ncmFtbWFyPg0KKyAgPC9zdGFydD4NCisgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxkb2N1bWVudGF0aW9uPkNoZWNraW5nIG9mIG5zIGF0dHJpYnV0ZTwvZG9jdW1lbnRhdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbnM9IiI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5ObyBjaGVja2luZyBvZiBucyBhdHRyaWJ1dGUgaXMgcGVyZm9ybWVkPC9kb2N1bWVudGF0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBucz0iREFWOiI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28geG1sbnM9IkRBVjoiLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGRvY3VtZW50YXRpb24+Tm8gY2hlY2tpbmcgb2YgbnMgYXR0cmlidXRlIGlzIHBlcmZvcm1lZDwvZG9jdW1lbnRhdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbnM9Inh5enp5Ij4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPk5vIGNoZWNraW5nIG9mIG5zIGF0dHJpYnV0ZSBpcyBwZXJmb3JtZWQ8L2RvY3VtZW50YXRpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5zPSJiYWRfc2NoZW1lOi8vIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPGRvY3VtZW50YXRpb24+Q2hlY2tpbmcgb2YgZGF0YXR5cGVMaWJyYXJ5IGF0dHJpYnV0ZTwvZG9jdW1lbnRhdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5WYWx1ZSBvZiBkYXRhdHlwZUxpYnJhcnkgYXR0cmlidXRlIG11c3QgY29uZm9ybSB0byBSRkMgMjM5NjwvZG9jdW1lbnRhdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBkYXRhdHlwZUxpYnJhcnk9ImZvb19iYXI6eHl6enkiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5WYWx1ZSBvZiBkYXRhdHlwZUxpYnJhcnkgYXR0cmlidXRlIG11c3QgY29uZm9ybSB0byBSRkMgMjM5NjwvZG9jdW1lbnRhdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgZGF0YXR5cGVMaWJyYXJ5PSJmb29iYXI6eHl6enkiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGRvY3VtZW50YXRpb24+VmFsdWUgb2YgZGF0YXR5cGVMaWJyYXJ5IGF0dHJpYnV0ZSBtdXN0IGNvbmZvcm0gdG8gUkZDIDIzOTY8L2RvY3VtZW50YXRpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDpvayI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5WYWx1ZSBvZiBkYXRhdHlwZUxpYnJhcnkgYXR0cmlidXRlIG11c3QgY29uZm9ybSB0byBSRkMgMjM5NjwvZG9jdW1lbnRhdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBkYXRhdHlwZUxpYnJhcnk9ImZvbzoiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5WYWx1ZSBvZiBkYXRhdHlwZUxpYnJhcnkgYXR0cmlidXRlIG11c3QgY29uZm9ybSB0byBSRkMgMjM5NjwvZG9jdW1lbnRhdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vJSI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlZhbHVlIG9mIGRhdGF0eXBlTGlicmFyeSBhdHRyaWJ1dGUgbXVzdCBjb25mb3JtIHRvIFJGQyAyMzk2PC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8leHgiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5WYWx1ZSBvZiBkYXRhdHlwZUxpYnJhcnkgYXR0cmlidXRlIG11c3QgY29uZm9ybSB0byBSRkMgMjM5NjwvZG9jdW1lbnRhdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyVBYSI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5WYWx1ZSBvZiBkYXRhdHlwZUxpYnJhcnkgYXR0cmlidXRlIG11c3Qgbm90IGJlIHJlbGF0aXZlPC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIGRhdGF0eXBlTGlicmFyeT0ieHl6enkiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5WYWx1ZSBvZiBkYXRhdHlwZUxpYnJhcnkgYXR0cmlidXRlIG11c3Qgbm90IGJlIHJlbGF0aXZlPC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIGRhdGF0eXBlTGlicmFyeT0ieHl6enkjZm9vOmJhciI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlZhbHVlIG9mIGRhdGF0eXBlTGlicmFyeSBhdHRyaWJ1dGUgbXVzdCBub3QgYmUgcmVsYXRpdmU8L2RvY3VtZW50YXRpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgZGF0YXR5cGVMaWJyYXJ5PSJ4eXp6eT9mb286YmFyIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGRvY3VtZW50YXRpb24+VmFsdWUgb2YgZGF0YXR5cGVMaWJyYXJ5IGF0dHJpYnV0ZSBtdXN0IG5vdCBiZSByZWxhdGl2ZTwvZG9jdW1lbnRhdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBkYXRhdHlwZUxpYnJhcnk9Inh5enp5L2ZvbzpiYXIiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgZGF0YXR5cGVMaWJyYXJ5PSJmb286YmFyIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBkYXRhdHlwZUxpYnJhcnk9IiI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZGF0YSBkYXRhdHlwZUxpYnJhcnk9IiIgdHlwZT0ic3RyaW5nIi8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz54PC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlZhbHVlIG9mIGRhdGF0eXBlTGlicmFyeSBhdHRyaWJ1dGUgbXVzdCBub3QgY29udGFpbiBmcmFnbWVudCBpZGVudGlmaWVyPC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiDQorICAgICAgICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSN4eXp6eSI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlZhbHVlIG9mIGRhdGF0eXBlTGlicmFyeSBhdHRyaWJ1dGUgbXVzdCBub3QgY29udGFpbiBmcmFnbWVudCBpZGVudGlmaWVyPC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiDQorICAgICAgICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSMiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxkb2N1bWVudGF0aW9uPlRlc3RzIGZvciBRTmFtZSBhbmQgTkNOYW1lcyBpbiBzY2hlbWFzPC9kb2N1bWVudGF0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxlbGVtZW50IG5hbWU9IiYjeEUxNDsmI3hFMzU7Ij4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPiZkaWk7PC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iJiN4RTM1OyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSIiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxuYW1lPiYjeEUzNTs8L25hbWU+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZSBuYW1lPSImI3hFMzU7Ii8+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSImI3hFMzU7Ii8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSImI3hFMzU7Ij4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8cmVmIG5hbWU9IiYjeEUxNDsmI3hFMzU7Ii8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSImI3hFMTQ7JiN4RTM1OyI+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSIiLz4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9IiI+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8cmVmIG5hbWU9InggeSIvPg0KKyAgPC9zdGFydD4NCisgIDxkZWZpbmUgbmFtZT0ieCB5Ij4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCisgICAgICAgICB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL3giPg0KKyAgPHN0YXJ0Pg0KKyAgICA8cmVmIG5hbWU9Ing6eSIvPg0KKyAgPC9zdGFydD4NCisgIDxkZWZpbmUgbmFtZT0ieDp5Ij4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCisgICAgICAgICB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL3giDQorICAgICAgICAgbmFtZT0ieDomI3hFMzU7Ij4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiDQorICAgICAgICAgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS94Ig0KKyAgICAgICAgIG5hbWU9Ing6eTp6Ij4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiDQorICAgICAgICAgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS94Ig0KKyAgICAgICAgIG5hbWU9Ing6Ij4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8ZG9jdW1lbnRhdGlvbj5UZXN0cyBmb3IgZWxlbWVudHMgdGhhdCBhbGxvdyBvbmx5IGEgc2luZ2xlIHBhdHRlcm4gY2hpbGQuPC9kb2N1bWVudGF0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbXB0eS8+DQorICA8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPg0KKyAgICA8dGV4dC8+DQorICAgIDxlbXB0eS8+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxhdHRyaWJ1dGU+DQorICAgIDxuYW1lPmJhcjwvbmFtZT4NCisgICAgPHRleHQvPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9hdHRyaWJ1dGU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8ZG9jdW1lbnRhdGlvbj5UZXN0cyBmb3IgZm9yZWlnbiBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgaGFuZGxpbmcuPC9kb2N1bWVudGF0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPHI6ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zOnI9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiByOmE9InZhbCI+DQorICA8cjplbXB0eS8+DQorPC9yOmVsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bmFtZT5mb288ZWc6Y29tbWVudCB4bWxuczplZz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPjwvbmFtZT4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8dmFsdWU+Zm9vPGVnOmNvbW1lbnQgeG1sbnM6ZWc9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz48L3ZhbHVlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxkYXRhIHR5cGU9InN0cmluZyI+PGVnOmNvbW1lbnQgeG1sbnM6ZWc9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz48L2RhdGE+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz5YPC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxlbXB0eT4NCisgICAgPGV4dCB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+DQorICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIi8+DQorICAgIDwvZXh0Pg0KKyAgPC9lbXB0eT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjM8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiB4bWxuczplZz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+DQorICA8ZWc6Y29tbWVudC8+DQorICA8ZWc6Y29tbWVudC8+DQorICA8c3RhcnQ+DQorICAgIDxlZzpjb21tZW50Lz4NCisgICAgPGVsZW1lbnQ+DQorICAgICAgPGVnOmNvbW1lbnQvPg0KKyAgICAgIDxlZzpjb21tZW50Lz4NCisgICAgICA8bmFtZT5mb288L25hbWU+DQorICAgICAgPGVnOmNvbW1lbnQvPg0KKyAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgIDxlZzpjb21tZW50Lz4NCisgICAgICA8ZW1wdHk+DQorICAgICAgICA8ZWc6Y29tbWVudC8+DQorICAgICAgICA8ZWc6Y29tbWVudC8+DQorICAgICAgPC9lbXB0eT4NCisgICAgICA8ZWc6Y29tbWVudC8+DQorICAgICAgPGVnOmNvbW1lbnQvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlZzpjb21tZW50Lz4NCisgIDwvc3RhcnQ+DQorICA8ZWc6Y29tbWVudC8+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz5YPC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgIHhtbG5zOmVnPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIg0KKyAgZWc6Y29tbWVudD0iIj4NCisgIDxzdGFydCBlZzpjb21tZW50PSIiPg0KKyAgICA8ZWxlbWVudCBlZzpjb21tZW50PSIiPg0KKyAgICAgIDxuYW1lIGVnOmNvbW1lbnQ9IiI+Zm9vPC9uYW1lPg0KKyAgICAgIDxkYXRhIGVnOmNvbW1lbnQ9IiIgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgPGVtcHR5IGVnOmNvbW1lbnQ9IiIvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+WDwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8cm5nOmdyYW1tYXIgeG1sbnM6cm5nPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPg0KKyAgPGNvbW1lbnQvPg0KKyAgPGNvbW1lbnQvPg0KKyAgPHJuZzpzdGFydD4NCisgICAgPGNvbW1lbnQvPg0KKyAgICA8cm5nOmVsZW1lbnQ+DQorICAgICAgPGNvbW1lbnQvPg0KKyAgICAgIDxjb21tZW50Lz4NCisgICAgICA8cm5nOm5hbWU+Zm9vPC9ybmc6bmFtZT4NCisgICAgICA8Y29tbWVudC8+DQorICAgICAgPHJuZzpkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgIDxjb21tZW50Lz4NCisgICAgPC9ybmc6ZWxlbWVudD4NCisgICAgPGNvbW1lbnQvPg0KKyAgPC9ybmc6c3RhcnQ+DQorICA8Y29tbWVudC8+DQorPC9ybmc6Z3JhbW1hcj4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+WDwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Mzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8cm5nOmdyYW1tYXIgeG1sbnM6cm5nPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y29tbWVudC8+DQorICA8Y29tbWVudC8+DQorICA8cm5nOnN0YXJ0Pg0KKyAgICA8Y29tbWVudC8+DQorICAgIDxybmc6ZWxlbWVudD4NCisgICAgICA8Y29tbWVudC8+DQorICAgICAgPGNvbW1lbnQvPg0KKyAgICAgIDxybmc6bmFtZT5mb288L3JuZzpuYW1lPg0KKyAgICAgIDxjb21tZW50Lz4NCisgICAgICA8cm5nOmRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgPGNvbW1lbnQvPg0KKyAgICA8L3JuZzplbGVtZW50Pg0KKyAgICA8Y29tbWVudC8+DQorICA8L3JuZzpzdGFydD4NCisgIDxjb21tZW50Lz4NCis8L3JuZzpncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz5YPC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+NDwvc2VjdGlvbj4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjQuMjwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4yPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9IiYjeEE7JiN4RDsmI3gyMDsmI3g5O2ZvbyYjeEE7JiN4RDsmI3gyMDsmI3g5OyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iJiN4QTsmI3hEOyYjeDIwOyYjeDk7YmFyJiN4QTsmI3hEOyYjeDIwOyYjeDk7Ii8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9IiIvPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4yPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDx2YWx1ZSB0eXBlPSImI3hBOyYjeEQ7JiN4MjA7JiN4OTtzdHJpbmcmI3hBOyYjeEQ7JiN4MjA7JiN4OTsiPmJhcjwvdmFsdWU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz5iYXI8L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+YmFyIDwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGRhdGEgdHlwZT0iJiN4QTsmI3hEOyYjeDIwOyYjeDk7c3RyaW5nJiN4QTsmI3hEOyYjeDIwOyYjeDk7Ii8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz5YPC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxuYW1lPiYjeEE7JiN4RDsmI3gyMDsmI3g5O2ZvbyYjeEE7JiN4RDsmI3gyMDsmI3g5OzwvbmFtZT4NCisgIDxhdHRyaWJ1dGU+PG5hbWU+JiN4QTsmI3hEOyYjeDIwOyYjeDk7YmFyJiN4QTsmI3hEOyYjeDIwOyYjeDk7PC9uYW1lPjwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSIiLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0IGNvbWJpbmU9IiYjeEE7JiN4RDsmI3gyMDsmI3g5O2Nob2ljZSYjeEE7JiN4RDsmI3gyMDsmI3g5OyI+DQorICAgIDxyZWYgbmFtZT0iJiN4QTsmI3hEOyYjeDIwOyYjeDk7eCYjeEE7JiN4RDsmI3gyMDsmI3g5OyIvPg0KKyAgPC9zdGFydD4NCisgIDxkZWZpbmUgbmFtZT0ieCI+DQorICAgIDxyZWYgbmFtZT0ieSIvPg0KKyAgPC9kZWZpbmU+DQorICA8ZGVmaW5lIG5hbWU9IiYjeEE7JiN4RDsmI3gyMDsmI3g5O3kmI3hBOyYjeEQ7JiN4MjA7JiN4OTsiPg0KKyAgICA8Z3JhbW1hcj4NCisgICAgICA8c3RhcnQgY29tYmluZT0iJiN4QTsmI3hEOyYjeDIwOyYjeDk7aW50ZXJsZWF2ZSYjeEE7JiN4RDsmI3gyMDsmI3g5OyI+DQorICAgICAgICA8cGFyZW50UmVmIG5hbWU9IiYjeEE7JiN4RDsmI3gyMDsmI3g5O3omI3hBOyYjeEQ7JiN4MjA7JiN4OTsiLz4NCisgICAgICA8L3N0YXJ0Pg0KKyAgICA8L2dyYW1tYXI+DQorICA8L2RlZmluZT4NCisgIDxkZWZpbmUgbmFtZT0ieiI+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjQ8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHZhbHVlIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS90aGlzLWRvZXMtbm90LWV4aXN0Ij5iYXI8L3ZhbHVlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+YmFyPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisJYmFyDQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4gYmFyIDwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz5iYXo8L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz5iYSByPC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj40LjU8L3NlY3Rpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuNTwvc2VjdGlvbj4NCis8ZGlyIG5hbWU9InN1YiI+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvcmVzb3VyY2U+DQorPC9kaXI+DQorPGNvcnJlY3Q+DQorPGV4dGVybmFsUmVmIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCisgICAgICAgICAgICAgeG1sOmJhc2U9InN1Yi95IiBocmVmPSJ4Ii8+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiYXIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjU8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iYmFyIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvcmVzb3VyY2U+DQorPGRpciBuYW1lPSJzdWIxIj4NCis8cmVzb3VyY2UgbmFtZT0ieCI+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJiYXIiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9yZXNvdXJjZT4NCis8ZGlyIG5hbWU9InN1YjMiPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L3Jlc291cmNlPg0KKzwvZGlyPg0KKzwvZGlyPg0KKzxjb3JyZWN0Pg0KKzxncm91cCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIHhtbDpiYXNlPSJzdWIxLyI+DQorICA8Z3JvdXA+DQorICAgIDxncm91cCB4bWw6YmFzZT0ic3ViMiI+DQorICAgICAgPGdyb3VwPg0KKyAgICAgICAgIDxncm91cCB4bWw6YmFzZT0ic3ViMy95Ij4NCisgICAgICAgICAgIDxleHRlcm5hbFJlZiBocmVmPSJ4Ii8+DQorICAgICAgICAgPC9ncm91cD4NCisgICAgICA8L2dyb3VwPg0KKyAgICA8L2dyb3VwPg0KKyAgPC9ncm91cD4NCis8L2dyb3VwPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8YmFyLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC41PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L3Jlc291cmNlPg0KKzxpbmNvcnJlY3Q+DQorPGV4dGVybmFsUmVmIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgaHJlZj0ieCNmb28iLz4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+NC42PC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjY8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvcmVzb3VyY2U+DQorPGNvcnJlY3Q+DQorPGV4dGVybmFsUmVmIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgaHJlZj0ieCIvPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8YmFyLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC42PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L3Jlc291cmNlPg0KKzxjb3JyZWN0Pg0KKzxleHRlcm5hbFJlZiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIGhyZWY9IngiIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC42PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8ZXh0ZXJuYWxSZWYgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBocmVmPSJ4Ii8+DQorPC9yZXNvdXJjZT4NCis8aW5jb3JyZWN0Pg0KKzxleHRlcm5hbFJlZiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIGhyZWY9IngiLz4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjY8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxzdGFydCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvcmVzb3VyY2U+DQorPGluY29ycmVjdD4NCis8ZXh0ZXJuYWxSZWYgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBocmVmPSJ4Ii8+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC42PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8ZXh0ZXJuYWxSZWYgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBocmVmPSJ5Ii8+DQorPC9yZXNvdXJjZT4NCis8cmVzb3VyY2UgbmFtZT0ieSI+DQorPGV4dGVybmFsUmVmIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgaHJlZj0ieCIvPg0KKzwvcmVzb3VyY2U+DQorPGluY29ycmVjdD4NCis8ZXh0ZXJuYWxSZWYgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBocmVmPSJ4Ii8+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC42PC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlNhbWUgdmFsdWUgb2YgaHJlZiBiZWZvcmUgcmVzb2x1dGlvbiwgYnV0IG5vdCBhIGxvb3AuPC9kb2N1bWVudGF0aW9uPg0KKzxkaXIgbmFtZT0ic3ViIj4NCis8cmVzb3VyY2UgbmFtZT0ieCI+DQorPGV4dGVybmFsUmVmIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgaHJlZj0ic3ViL3giLz4NCis8L3Jlc291cmNlPg0KKzxkaXIgbmFtZT0ic3ViIj4NCis8cmVzb3VyY2UgbmFtZT0ieCI+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9yZXNvdXJjZT4NCis8L2Rpcj4NCis8L2Rpcj4NCis8Y29ycmVjdD4NCis8ZXh0ZXJuYWxSZWYgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBocmVmPSJzdWIveCIvPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8YmFyLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjQuNzwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC43PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbmNsdWRlIGhyZWY9IngiLz4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiYXIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9yZXNvdXJjZT4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ieCIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC43PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ieSIvPg0KKzwvZ3JhbW1hcj4NCis8L3Jlc291cmNlPg0KKzxyZXNvdXJjZSBuYW1lPSJ5Ij4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbmNsdWRlIGhyZWY9IngiLz4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiYXIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvcmVzb3VyY2U+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ieCIvPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW5jbHVkZSBocmVmPSJ4Ii8+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ieCIvPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW5jbHVkZSBocmVmPSJ5Ii8+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPHJlc291cmNlIG5hbWU9InkiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW5jbHVkZSBocmVmPSJ4Ii8+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ieCIvPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPGRpciBuYW1lPSJzdWIiPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ic3ViL3giLz4NCis8L2dyYW1tYXI+DQorPC9yZXNvdXJjZT4NCis8ZGlyIG5hbWU9InN1YiI+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9yZXNvdXJjZT4NCis8L2Rpcj4NCis8L2Rpcj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ic3ViL3giLz4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiYXIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZGVmaW5lIG5hbWU9ImZvbyI+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGluY2x1ZGUgaHJlZj0ieCI+DQorICAgIDxzdGFydD4NCisgICAgICA8cmVmIG5hbWU9ImZvbyIvPg0KKyAgICA8L3N0YXJ0Pg0KKyAgPC9pbmNsdWRlPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZGVmaW5lIG5hbWU9ImZvbyI+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbmNsdWRlIGhyZWY9IngiLz4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJmb28iLz4NCisgIDwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+PGZvby8+PC92YWxpZD4NCis8aW52YWxpZD48YmFyLz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC43PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8cmVmIG5hbWU9ImZvbyIvPg0KKyAgPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9yZXNvdXJjZT4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW5jbHVkZSBocmVmPSJ4Ij4NCisgICAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9kZWZpbmU+DQorICA8L2luY2x1ZGU+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuNzwvc2VjdGlvbj4NCis8cmVzb3VyY2UgbmFtZT0ieCI+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJmb28iLz4NCisgIDwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbmNsdWRlIGhyZWY9IngiLz4NCisgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vLz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxiYXIvPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljc8L3NlY3Rpb24+DQorPHJlc291cmNlIG5hbWU9IngiPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZGVmaW5lIG5hbWU9ImZvbyIgY29tYmluZT0iY2hvaWNlIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vMyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJmb28iLz4NCisgIDwvc3RhcnQ+DQorICA8aW5jbHVkZSBocmVmPSJ4Ij4NCisgICAgPGRlZmluZSBuYW1lPSJmb28iIGNvbWJpbmU9ImNob2ljZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZm9vMSI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L2RlZmluZT4NCisgIDwvaW5jbHVkZT4NCisgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vMiI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+PGZvbzEvPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28yLz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28zLz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC43PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJsZXZlbDEucm5nIj4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxpbmNsdWRlIGhyZWY9ImxldmVsMi5ybmciPg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvaW5jbHVkZT4NCis8L2dyYW1tYXI+DQorPC9yZXNvdXJjZT4NCis8cmVzb3VyY2UgbmFtZT0ibGV2ZWwyLnJuZyI+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkZWZpbmUgbmFtZT0iYmFyIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9yZXNvdXJjZT4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPHJlZiBuYW1lPSJmb28iLz4NCis8L3N0YXJ0Pg0KKzxpbmNsdWRlIGhyZWY9ImxldmVsMS5ybmciPg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvaW5jbHVkZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjQuODwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC44PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIG5hbWU9ImZvbyI+DQorICA8YXR0cmlidXRlIG5hbWU9ImJhciIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8ZWc6Zm9vIGVnOmJhcj0ieCIgeG1sbnM6ZWc9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxlZzpmb28geG1sbnM6ZWc9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIGJhcj0ieCIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40Ljg8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgbmFtZT0iZm9vIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8ZWc6Zm9vIHhtbG5zOmVnPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiBlZzpiYXI9IngiLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxlZzpmb28geG1sbnM6ZWc9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIGJhcj0ieCIvPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjQuOTwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC45PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIG5hbWU9ImZvbyI+DQorICA8YXR0cmlidXRlPg0KKyAgICA8bmFtZT5iYXI8L25hbWU+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8ZWc6Zm9vIHhtbG5zOmVnPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiBlZzpiYXI9IngiLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxlZzpmb28geG1sbnM6ZWc9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIGJhcj0ieCIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjY8L3NlY3Rpb24+DQorPHNlY3Rpb24+NC45PC9zZWN0aW9uPg0KKzxyZXNvdXJjZSBuYW1lPSJ4Ij4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L3Jlc291cmNlPg0KKzxjb3JyZWN0Pg0KKzxncm91cCBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiA+DQorPGV4dGVybmFsUmVmIGhyZWY9IngiLz4NCis8L2dyb3VwPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvby8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxncm91cCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGVsZW1lbnQgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPg0KKyAgICA8bmFtZT5mb288L25hbWU+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9ncm91cD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxuYW1lPmZvbzwvbmFtZT4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+PGZvbyB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvby8+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGUgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPg0KKyAgICA8bmFtZT5iYXI8L25hbWU+DQorICAgIDx0ZXh0Lz4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28geG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeDpiYXI9IndoYXRldmVyIi8+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vIGJhcj0id2hhdGV2ZXIiLz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjQuMTA8L3NlY3Rpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTA8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbzpiYXIiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMDwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImVnOmZvbyIgeG1sbnM6ZWc9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEwPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIiB4bWxuczplZz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+DQorICA8YXR0cmlidXRlIG5hbWU9ImVnOmJhciIvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28geG1sbnM6ZXg9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIGV4OmJhcj0ieCIvPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyB4bWxuczpleD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIGV4OmJhcj0ieCIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEwPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0ieG1sOmxhbmciLz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIHhtbDpsYW5nPSJlbiIvPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBsYW5nPSJlbiIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+NC4xMTwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGRpdiBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+DQorICAgIDxkaXY+DQorICAgICAgPHN0YXJ0Pg0KKyAgICAgICAgPHJlZiBuYW1lPSJmb28iLz4NCisgICAgICA8L3N0YXJ0Pg0KKyAgICA8L2Rpdj4NCisgICAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9kZWZpbmU+DQorICA8L2Rpdj4NCisgIDxkaXYvPg0KKzwvZ3JhbW1hcj4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisNCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8cmVmIG5hbWU9ImJhcnMiLz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKw0KKzxkZWZpbmUgbmFtZT0iYmFycyI+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCisgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9kZWZpbmU+DQorDQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+WDwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPlg8YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9vbmVPck1vcmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz5YPC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+WDxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEyPC9zZWN0aW9uPg0KKzxzZWN0aW9uPjQuMTU8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHplcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3plcm9Pck1vcmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPlg8L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz5YPGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTI8L3NlY3Rpb24+DQorPHNlY3Rpb24+NC4xNDwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b3B0aW9uYWw+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L29wdGlvbmFsPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+WDwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPlg8YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bGlzdD4NCisgICAgPHZhbHVlPng8L3ZhbHVlPg0KKyAgICA8dmFsdWU+eTwvdmFsdWU+DQorICAgIDx2YWx1ZT56PC92YWx1ZT4NCisgIDwvbGlzdD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPnggeSB6PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPng8L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8c2VjdGlvbj40LjEzPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxtaXhlZD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvbWl4ZWQ+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PC9mb28+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIvPlg8YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+WDwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEyPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bmFtZT5mb288L25hbWU+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCisgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+WDwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPlg8YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGFueU5hbWU+DQorICAgIDxleGNlcHQ+DQorICAgICAgPG5hbWU+Zm9vPC9uYW1lPg0KKyAgICAgIDxuYW1lPmJhcjwvbmFtZT4NCisgICAgICA8bmFtZT5iYXo8L25hbWU+DQorICAgIDwvZXhjZXB0Pg0KKyAgPC9hbnlOYW1lPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48eHl6enkvPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvby8+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxiYXIvPjwvaW52YWxpZD4NCis8aW52YWxpZD48YmF6Lz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZGF0YSB0eXBlPSJ0b2tlbiI+DQorICAgIDxleGNlcHQ+DQorICAgICAgPHZhbHVlPng8L3ZhbHVlPg0KKyAgICAgIDx2YWx1ZT55PC92YWx1ZT4NCisgICAgICA8dmFsdWU+ejwvdmFsdWU+DQorICAgIDwvZXhjZXB0Pg0KKyAgPC9kYXRhPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+eHl6PC9mb28+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vPng8L2Zvbz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz55PC9mb28+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxmb28+eTwvZm9vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEyPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9IiIvPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJ4Ii8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlPg0KKyAgICA8bmFtZT5iYXI8L25hbWU+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIGJhcj0iIi8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9IngiLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEyPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxncm91cD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZ3JvdXA+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+WDwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPlg8YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIxIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhcjIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyMyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9jaG9pY2U+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+PGZvbz48YmFyMS8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz48YmFyMi8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz48YmFyMy8+PC9mb28+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vLz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyMSI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhcjMiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvaW50ZXJsZWF2ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vPjxiYXIxLz48YmFyMi8+PGJhcjMvPjwvZm9vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+PGJhcjEvPjxiYXIzLz48YmFyMi8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz48YmFyMi8+PGJhcjEvPjxiYXIzLz48L2Zvbz48L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPjxiYXIyLz48YmFyMy8+PGJhcjEvPjwvZm9vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+PGJhcjMvPjxiYXIxLz48YmFyMi8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz48YmFyMy8+PGJhcjIvPjxiYXIxLz48L2Zvbz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28+PGJhcjIvPjxiYXIxLz48L2Zvbz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz48YmFyMS8+PGJhcjMvPjxiYXIyLz48YmFyMS8+PC9mb28+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGdyb3VwPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZ3JvdXA+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+PGZvbz48YmFyLz48L2Zvbz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEyPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvaW50ZXJsZWF2ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vPjxiYXIvPjwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvby8+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGNob2ljZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2Nob2ljZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vPjxiYXIvPjwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvby8+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj40LjEzPC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjEzPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxtaXhlZD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L21peGVkPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+eDxiYXIvPjwvZm9vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+PGJhci8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz48YmFyLz54PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz54PGJhci8+eTwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvby8+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxmb28+PGJhci8+PGJhci8+PC9mb28+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj40LjE0PC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE0PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvcHRpb25hbD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L29wdGlvbmFsPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+PGJhci8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvby8+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vPng8YmFyLz48L2Zvbz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz48YmFyLz48YmFyLz48L2Zvbz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjQuMTU8L3NlY3Rpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTU8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHplcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC96ZXJvT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+PGJhci8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvby8+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vPng8YmFyLz48L2Zvbz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz48YmF6Lz48L2Zvbz48L2ludmFsaWQ+DQorPHZhbGlkPjxmb28+PGJhci8+PGJhci8+PC9mb28+PC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQ+DQorICAgIDxhbnlOYW1lPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8YW55TmFtZS8+DQorICAgICAgPC9leGNlcHQ+DQorICAgIDwvYW55TmFtZT4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudD4NCisgICAgPGFueU5hbWU+DQorICAgICAgPGV4Y2VwdD4NCisgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgIDxhbnlOYW1lLz4NCisgICAgICAgICAgPG5hbWU+Zm9vPC9uYW1lPg0KKyAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9leGNlcHQ+DQorICAgIDwvYW55TmFtZT4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudD4NCisgICAgPG5zTmFtZSBucz0iIj4NCisgICAgICA8ZXhjZXB0Pg0KKyAgICAgICAgPG5zTmFtZSBucz0iIi8+DQorICAgICAgPC9leGNlcHQ+DQorICAgIDwvbnNOYW1lPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50Pg0KKyAgICA8bnNOYW1lIG5zPSIiPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICA8bnNOYW1lIG5zPSIiLz4NCisgICAgICAgICAgPG5hbWU+Zm9vPC9uYW1lPg0KKyAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9leGNlcHQ+DQorICAgIDwvbnNOYW1lPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50Pg0KKyAgICA8bnNOYW1lIG5zPSIiPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8YW55TmFtZS8+DQorICAgICAgPC9leGNlcHQ+DQorICAgIDwvbnNOYW1lPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50Pg0KKyAgICA8bnNOYW1lIG5zPSIiPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICA8YW55TmFtZS8+DQorICAgICAgICAgIDxuYW1lPmZvbzwvbmFtZT4NCisgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZXhjZXB0Pg0KKyAgICA8L25zTmFtZT4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlRlc3RzIHRoYXQgNC4xNiBpcyBiZWZvcmUgNC4yMC48L2RvY3VtZW50YXRpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgIDxhdHRyaWJ1dGU+DQorCTxhbnlOYW1lPg0KKwkgIDxleGNlcHQ+DQorCSAgICA8YW55TmFtZS8+DQorCSAgPC9leGNlcHQ+DQorCTwvYW55TmFtZT4NCisJPHRleHQvPg0KKyAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDxub3RBbGxvd2VkLz4NCisgICAgPC96ZXJvT3JNb3JlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGRvY3VtZW50YXRpb24+VGVzdHMgdGhhdCA0LjE2IGlzIGJlZm9yZSByZW1vdmFsIG9mIHVucmVhY2hhYmxlIGRlZmluaXRpb25zLjwvZG9jdW1lbnRhdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzxkZWZpbmUgbmFtZT0iYmFyIj4NCisgIDxlbGVtZW50Pg0KKyAgICA8YW55TmFtZT4NCisgICAgICA8ZXhjZXB0Pg0KKwk8YW55TmFtZS8+DQorICAgICAgPC9leGNlcHQ+DQorICAgIDwvYW55TmFtZT4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0ieG1sbnMiPg0KKyAgICA8dGV4dC8+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJ4bWxucyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+PHhtbG5zLz48L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5hbWU9IiB4bWxucyI+DQorICAgIDx0ZXh0Lz4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9wdGlvbmFsPg0KKyAgICA8bm90QWxsb3dlZC8+DQorICAgIDxhdHRyaWJ1dGUgbmFtZT0ieG1sbnMiPg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29wdGlvbmFsPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9InhtbG5zIj4NCisgICAgICA8dGV4dC8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5hbWU9InhtbG5zIiBucz0iIj4NCisgICAgPHRleHQvPg0KKyAgPC9hdHRyaWJ1dGU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlPg0KKyAgICA8Y2hvaWNlPg0KKyAgICAgIDxuYW1lIG5zPSIiPnhtbG5zPC9uYW1lPg0KKyAgICAgIDxuYW1lPmZvbzwvbmFtZT4NCisgICAgPC9jaG9pY2U+DQorICAgIDx0ZXh0Lz4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZT4NCisgICAgPG5hbWUgbnM9IiI+eG1sbnM8L25hbWU+DQorICAgIDx0ZXh0Lz4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZT4NCisgICAgPG5hbWU+eG1sbnM8L25hbWU+DQorICAgIDx0ZXh0Lz4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZT4NCisgICAgPG5hbWU+DQorICAgICAgeG1sbnMNCisgICAgPC9uYW1lPg0KKyAgICA8dGV4dC8+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGU+DQorICAgIDxjaG9pY2U+DQorICAgICAgPG5hbWU+Zm9vPC9uYW1lPg0KKyAgICAgIDxuYW1lIG5zPSIiPnhtbG5zPC9uYW1lPg0KKyAgICA8L2Nob2ljZT4NCisgICAgPHRleHQvPg0KKyAgPC9hdHRyaWJ1dGU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8YXR0cmlidXRlPg0KKyAgICAgIDxhbnlOYW1lPg0KKwk8ZXhjZXB0Pg0KKwkgIDxuYW1lPnhtbG5zPC9uYW1lPg0KKwk8L2V4Y2VwdD4NCisgICAgICA8L2FueU5hbWU+DQorICAgICAgPHRleHQvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvb25lT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGF0dHJpYnV0ZT4NCisgICAgICA8bnNOYW1lIG5zPSIiPg0KKwk8ZXhjZXB0Pg0KKwkgIDxuYW1lPnhtbG5zPC9uYW1lPg0KKwk8L2V4Y2VwdD4NCisgICAgICA8L25zTmFtZT4NCisgICAgICA8dGV4dC8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9vbmVPck1vcmU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zIiBuYW1lPSJiYXIiPg0KKyAgICA8dGV4dC8+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMiPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zIi8+PC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGRhdGEgdHlwZT0idG9rZW4iPg0KKyAgICA8cGFyYW0gbmFtZT0ibWluTGVuZ3RoIj4yPC9wYXJhbT4NCisgIDwvZGF0YT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkYXRhIHR5cGU9InRvayIvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHZhbHVlIHR5cGU9InRvayIvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE2PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9wdGlvbmFsPg0KKyAgICA8bm90QWxsb3dlZC8+DQorICAgIDxkYXRhIHR5cGU9InRva2VuIj4NCisgICAgICA8cGFyYW0gbmFtZT0ibWluTGVuZ3RoIj4yPC9wYXJhbT4NCisgICAgPC9kYXRhPg0KKyAgPC9vcHRpb25hbD4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvcHRpb25hbD4NCisgICAgPG5vdEFsbG93ZWQvPg0KKyAgICA8ZGF0YSB0eXBlPSJ0b2siLz4NCisgIDwvb3B0aW9uYWw+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b3B0aW9uYWw+DQorICAgIDxub3RBbGxvd2VkLz4NCisgICAgPHZhbHVlIHR5cGU9InRvayIvPg0KKyAgPC9vcHRpb25hbD4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzxkZWZpbmUgbmFtZT0iZm9vIj4NCisgIDxkYXRhIHR5cGU9InRva2VuIj4NCisgICAgPHBhcmFtIG5hbWU9Im1pbkxlbmd0aCI+MjwvcGFyYW0+DQorICA8L2RhdGE+DQorPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTY8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8ZGVmaW5lIG5hbWU9ImZvbyI+DQorICA8ZGF0YSB0eXBlPSJ0b2siLz4NCis8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNjwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzxkZWZpbmUgbmFtZT0iZm9vIj4NCisgIDx2YWx1ZSB0eXBlPSJ0b2siLz4NCis8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjQuMTc8L3NlY3Rpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTc8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxyZWYgbmFtZT0ieCIvPg0KKzwvc3RhcnQ+DQorPGRlZmluZSBuYW1lPSJ4Ij4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzEiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzxkZWZpbmUgbmFtZT0ieCIgY29tYmluZT0iY2hvaWNlIj4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzxkZWZpbmUgbmFtZT0ieCI+DQorICA8ZWxlbWVudCBuYW1lPSJmb28zIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0IG5hbWU9IngiPg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vMSI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8c3RhcnQgbmFtZT0ieCIgY29tYmluZT0iY2hvaWNlIj4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPHN0YXJ0IG5hbWU9IngiPg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vMyI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPHJlZiBuYW1lPSJ4Ii8+DQorPC9zdGFydD4NCis8ZGVmaW5lIG5hbWU9IngiPg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vMSI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9kZWZpbmU+DQorPGRlZmluZSBuYW1lPSJ4Ij4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE3PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQgbmFtZT0ieCI+DQorICA8ZWxlbWVudCBuYW1lPSJmb28xIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzxzdGFydCBuYW1lPSJ4Ij4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTc8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8cmVmIG5hbWU9IngiLz4NCis8L3N0YXJ0Pg0KKzxkZWZpbmUgbmFtZT0ieCIgY29tYmluZT0iY2hvaWNlIj4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzEiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzxkZWZpbmUgbmFtZT0ieCIgY29tYmluZT0iY2hvaWNlIj4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzxkZWZpbmUgbmFtZT0ieCI+DQorICA8ZWxlbWVudCBuYW1lPSJmb28zIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vMS8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbzIvPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28zLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb280Lz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydCBjb21iaW5lPSJjaG9pY2UiPg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vMSI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8c3RhcnQgY29tYmluZT0iY2hvaWNlIj4NCisgIDxlbGVtZW50IG5hbWU9ImZvbzIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vMyI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vMS8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbzIvPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28zLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb280Lz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPHJlZiBuYW1lPSJ4Ii8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8ZGVmaW5lIG5hbWU9IngiIGNvbWJpbmU9ImNob2ljZSI+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIxIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2RlZmluZT4NCis8ZGVmaW5lIG5hbWU9IngiPg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyMiI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9kZWZpbmU+DQorPGRlZmluZSBuYW1lPSJ4IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4NCisgIDxlbGVtZW50IG5hbWU9ImJhcjMiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE3PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxncmFtbWFyPg0KKzxzdGFydCBuYW1lPSJ4IiBjb21iaW5lPSJjaG9pY2UiPg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyMSI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8c3RhcnQgbmFtZT0ieCI+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIyIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzxzdGFydCBuYW1lPSJ4IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4NCisgIDxlbGVtZW50IG5hbWU9ImJhcjMiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE3PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPHJlZiBuYW1lPSJ4Ii8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8ZGVmaW5lIG5hbWU9IngiIGNvbWJpbmU9ImludGVybGVhdmUiPg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyMSI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9kZWZpbmU+DQorPGRlZmluZSBuYW1lPSJ4IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4NCisgIDxlbGVtZW50IG5hbWU9ImJhcjIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzxkZWZpbmUgbmFtZT0ieCI+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIzIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIxLz48YmFyMi8+PGJhcjMvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhcjEvPjxiYXIzLz48YmFyMi8+PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48YmFyMi8+PGJhcjMvPjxiYXIxLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhcjIvPjxiYXIzLz48YmFyMS8+PGJhcjIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE3PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8Z3JhbW1hcj4NCis8c3RhcnQgY29tYmluZT0iaW50ZXJsZWF2ZSI+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIxIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImJhcjIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPHN0YXJ0IGNvbWJpbmU9ImludGVybGVhdmUiPg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyMyI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyMS8+PGJhcjIvPjxiYXIzLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIxLz48YmFyMy8+PGJhcjIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhcjIvPjxiYXIzLz48YmFyMS8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIyLz48YmFyMy8+PGJhcjEvPjxiYXIyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPHJlZiBuYW1lPSJ4Ii8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8ZGVmaW5lIG5hbWU9IngiPg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyMSI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9kZWZpbmU+DQorPGRlZmluZSBuYW1lPSJ4IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4NCisgIDxlbGVtZW50IG5hbWU9ImJhcjIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKzxkZWZpbmUgbmFtZT0ieCI+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIzIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xNzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4gDQorPGdyYW1tYXI+DQorPHN0YXJ0IG5hbWU9IngiPg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyMSI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8c3RhcnQgbmFtZT0ieCIgY29tYmluZT0iaW50ZXJsZWF2ZSI+DQorICA8ZWxlbWVudCBuYW1lPSJiYXIyIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzxzdGFydCBuYW1lPSJ4Ij4NCisgIDxlbGVtZW50IG5hbWU9ImJhcjMiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+NC4xODwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xODwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5ncmFtbWFyIG11c3QgaGF2ZSBhIHN0YXJ0PC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+ICAgDQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xODwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj40LjE3IGlzIGJlZm9yZSA0LjE4PC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJiYXIiPg0KKyAgICA8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgICAgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisJPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisJICA8ZW1wdHkvPg0KKwk8L2VsZW1lbnQ+DQorICAgICAgPC9kZWZpbmU+DQorICAgIDwvZ3JhbW1hcj4gICANCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE4PC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPjQuMTcgaXMgYmVmb3JlIDQuMTk8L2RvY3VtZW50YXRpb24+DQorPGluY29ycmVjdD4NCis8Y2hvaWNlIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKyAgPGdyb3VwPg0KKyAgICA8bm90QWxsb3dlZC8+DQorICAgIDxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICAgICAgPGRlZmluZSBuYW1lPSJmb28iPg0KKwk8ZWxlbWVudCBuYW1lPSJmb28iPg0KKwkgIDxlbXB0eS8+DQorCTwvZWxlbWVudD4NCisgICAgICA8L2RlZmluZT4NCisgICAgPC9ncmFtbWFyPiAgIA0KKyAgPC9ncm91cD4NCis8L2Nob2ljZT4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE4PC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPmV2ZXJ5IHJlZiBtdXN0IGhhdmUgYSBkZWY8L2RvY3VtZW50YXRpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8cmVmIG5hbWU9ImZvbyIvPg0KKyAgPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xODwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj40LjE3IGlzIGJlZm9yZSA0LjE4PC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8cmVmIG5hbWU9ImJhciIvPg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTg8L3NlY3Rpb24+DQorPGRvY3VtZW50YXRpb24+NC4xNyBpcyBiZWZvcmUgNC4xOTwvZG9jdW1lbnRhdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxjaG9pY2U+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisJPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPGdyb3VwPg0KKyAgICAgICAgPG5vdEFsbG93ZWQvPg0KKyAgICAgICAgPHJlZiBuYW1lPSJmb28iLz4NCisgICAgICA8L2dyb3VwPg0KKyAgICA8L2Nob2ljZT4NCisgIDwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTg8L3NlY3Rpb24+DQorPGRvY3VtZW50YXRpb24+ZXZlcnkgcGFyZW50UmVmIG11c3QgaGF2ZSBhIGRlZjwvZG9jdW1lbnRhdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICAgICAgPHN0YXJ0Pg0KKwk8cGFyZW50UmVmIG5hbWU9ImZvbyIvPg0KKyAgICAgIDwvc3RhcnQ+DQorICAgICAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICAgICAgPGVtcHR5Lz4NCisgICAgICAgIDwvZWxlbWVudD4NCisgICAgICA8L2RlZmluZT4NCisgICAgPC9ncmFtbWFyPg0KKyAgPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xODwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj40LjE3IGlzIGJlZm9yZSA0LjE4PC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJiYXIiPg0KKyAgICA8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgICAgIDxzdGFydD4NCisJPHBhcmVudFJlZiBuYW1lPSJmb28iLz4NCisgICAgICA8L3N0YXJ0Pg0KKyAgICAgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgICAgIDxlbXB0eS8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPC9kZWZpbmU+DQorICAgIDwvZ3JhbW1hcj4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE4PC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPjQuMTcgaXMgYmVmb3JlIDQuMTk8L2RvY3VtZW50YXRpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8Y2hvaWNlPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDxncm91cD4NCisJPG5vdEFsbG93ZWQvPg0KKwk8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKwkgIDxzdGFydD4NCisJICAgIDxwYXJlbnRSZWYgbmFtZT0iZm9vIi8+DQorCSAgPC9zdGFydD4NCisJICA8ZGVmaW5lIG5hbWU9ImZvbyI+DQorCSAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKwkgICAgICA8ZW1wdHkvPg0KKwkgICAgPC9lbGVtZW50Pg0KKwkgIDwvZGVmaW5lPg0KKwk8L2dyYW1tYXI+DQorICAgICAgPC9ncm91cD4NCisgICAgPC9jaG9pY2U+DQorICA8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE4PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJmb28iLz4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9ImZvbyI+DQorICAgIDxjaG9pY2U+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICAgICAgICA8c3RhcnQ+DQorCSAgPHBhcmVudFJlZiBuYW1lPSJmb28iLz4NCisgICAgICAgIDwvc3RhcnQ+DQorICAgICAgPC9ncmFtbWFyPg0KKyAgICA8L2Nob2ljZT4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE4PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxyZWYgbmFtZT0iZm9vIi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgICAgIDxzdGFydD4NCisJPHJlZiBuYW1lPSJmb28iLz4NCisgICAgICA8L3N0YXJ0Pg0KKyAgICAgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisJPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisJICA8ZW1wdHkvPg0KKwk8L2VsZW1lbnQ+DQorICAgICAgPC9kZWZpbmU+DQorICAgIDwvZ3JhbW1hcj4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28vPjwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xODwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8Z3JhbW1hcj4NCisgICAgICA8c3RhcnQ+DQorICAgICAgICA8cmVmIG5hbWU9ImZvbyIvPg0KKyAgICAgIDwvc3RhcnQ+DQorICAgICAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iaW5uZXJGb28iPg0KKyAgICAgICAgICAgPHBhcmVudFJlZiBuYW1lPSJmb28iLz4NCisgICAgICAgIDwvZWxlbWVudD4NCisgICAgICA8L2RlZmluZT4NCisgICAgPC9ncmFtbWFyPg0KKyAgPC9zdGFydD4NCisgIDxkZWZpbmUgbmFtZT0iZm9vIj4NCisgICAgPGVsZW1lbnQgbmFtZT0ib3V0ZXJGb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxpbm5lckZvbz48b3V0ZXJGb28vPjwvaW5uZXJGb28+PC92YWxpZD4NCis8aW52YWxpZD48b3V0ZXJGb28vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj40LjE4PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxyZWYgbmFtZT0iZm9vIi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJmb28iPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJvdXRlckZvbyI+DQorICAgICAgPGdyYW1tYXI+DQorCTxzdGFydD4NCisJICA8cmVmIG5hbWU9ImZvbyIvPg0KKwk8L3N0YXJ0Pg0KKwk8ZGVmaW5lIG5hbWU9ImZvbyI+DQorCSAgPGVsZW1lbnQgbmFtZT0iaW5uZXJGb28iPg0KKwkgICAgIDxlbXB0eS8+DQorCSAgPC9lbGVtZW50Pg0KKwk8L2RlZmluZT4NCisgICAgICA8L2dyYW1tYXI+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxvdXRlckZvbz48aW5uZXJGb28vPjwvb3V0ZXJGb28+PC92YWxpZD4NCis8aW52YWxpZD48aW5uZXJGb28vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+NC4xOTwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xOTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPHJlZiBuYW1lPSJiYXIiLz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9zdGFydD4NCisgIDxkZWZpbmUgbmFtZT0iYmFyIj4NCisgICAgPG9wdGlvbmFsPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgICA8cmVmIG5hbWU9ImJhciIvPg0KKyAgICA8L29wdGlvbmFsPg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTk8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8cmVmIG5hbWU9ImJhciIvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJiYXIiPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgIDxyZWYgbmFtZT0iYmFyIi8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPjxiYXI+PGJhci8+PC9iYXI+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4xOTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9ImJhciI+DQorICAgIDxyZWYgbmFtZT0iYmFyIi8+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vLz48L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjQuMTk8L3NlY3Rpb24+DQorPHNlY3Rpb24+NC4yMDwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5UZXN0cyB0aGF0IHJlY3Vyc2lvbiBkZXRlY3Rpb24gaGFwcGVucyBiZWZvcmUNCitub3JtYWxpemF0aW9uIG9mIG5vdEFsbG93ZWQuPC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGNob2ljZT4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPGdyb3VwPg0KKyAgICAgICAgPG5vdEFsbG93ZWQvPg0KKyAgICAgICAgPHJlZiBuYW1lPSJiYXIiLz4NCisgICAgICA8L2dyb3VwPg0KKyAgICA8L2Nob2ljZT4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9ImJhciI+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8b3B0aW9uYWw+DQorICAgICAgPHJlZiBuYW1lPSJiYXIiLz4NCisgICAgPC9vcHRpb25hbD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+Njwvc2VjdGlvbj4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjYuMTwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4xPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YW55TmFtZS8+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGFueU5hbWU+DQorICAgIDxleGNlcHQ+DQorICAgICAgPG5hbWUgbnM9IiI+Zm9vPC9uYW1lPg0KKyAgICA8L2V4Y2VwdD4NCisgIDwvYW55TmFtZT4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8YmFyLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGFueU5hbWU+DQorICAgIDxleGNlcHQ+DQorICAgICAgPG5zTmFtZSBucz0iIi8+DQorICAgIDwvZXhjZXB0Pg0KKyAgPC9hbnlOYW1lPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvbyB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4xPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bnNOYW1lIG5zPSIiLz4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG5zTmFtZSBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIHhtbG5zPSJIVFRQOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIi8+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjE8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxuc05hbWUgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPg0KKyAgICA8ZXhjZXB0Pg0KKyAgICAgIDxuYW1lIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj5mb288L25hbWU+DQorICAgIDwvZXhjZXB0Pg0KKyAgPC9uc05hbWU+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGZvby8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxiYXIgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG5zTmFtZSBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+DQorICAgIDxleGNlcHQ+DQorICAgICAgPG5hbWUgbnM9IiI+Zm9vPC9uYW1lPg0KKyAgICA8L2V4Y2VwdD4NCisgIDwvbnNOYW1lPg0KKyAgPGVtcHR5Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxiYXIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8YmFyIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjE8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxuYW1lIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj5mb288L25hbWU+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8YmFyIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmciLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4xPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bmFtZSBucz0iIj5mb288L25hbWU+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGZvbyB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8YmFyIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiYXIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjE8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxjaG9pY2U+DQorICAgIDxuYW1lIG5zPSIiPmZvbzwvbmFtZT4NCisgICAgPG5hbWUgbnM9IiI+YmFyPC9uYW1lPg0KKyAgPC9jaG9pY2U+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGJhei8+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8YmFyLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj42LjI8L3NlY3Rpb24+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj42LjIuMTwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjE8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGNob2ljZSB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCisgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9jaG9pY2U+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8YmFyLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiYXovPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8Z3JvdXA+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyMSI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXIyIj4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L2dyb3VwPg0KKyAgICA8Z3JvdXA+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyMSI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXIzIj4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L2dyb3VwPg0KKyAgPC9jaG9pY2U+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyMS8+PGJhcjIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhcjEvPjxiYXIzLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhcjEvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyMi8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhcjMvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIxLz48YmFyMi8+PGJhcjMvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8Z3JvdXA+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIxIj4NCisgICAgICAgIDx0ZXh0Lz4NCisgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhcjIiPg0KKyAgICAgICAgPHRleHQvPg0KKyAgICAgIDwvYXR0cmlidXRlPg0KKyAgICA8L2dyb3VwPg0KKyAgICA8Z3JvdXA+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIxIj4NCisgICAgICAgIDx0ZXh0Lz4NCisgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhcjMiPg0KKyAgICAgICAgPHRleHQvPg0KKyAgICAgIDwvYXR0cmlidXRlPg0KKyAgICA8L2dyb3VwPg0KKyAgPC9jaG9pY2U+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXIxPSJ4IiBiYXIyPSJ4Ii8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbyBiYXIxPSJ4IiBiYXIzPSJ4Ii8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXIxPSJ4Ii8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmFyMj0ieCIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhcjM9IngiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXIxPSJ4IiBiYXIyPSJ4IiBiYXIzPSJ4Ii8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi4xPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxjaG9pY2UgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9lbGVtZW50Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2VsZW1lbnQ+DQorPC9jaG9pY2U+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhei8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48Zm9vLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGJhci8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb2Jhei8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj42LjIuMjwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGdyb3VwPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhei8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXovPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXovPjxiYXIvPjxiYXovPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmF6Lz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGdyb3VwPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgICAgPHRleHQvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiPg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJ4IiBiYXo9IngiLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Z3JvdXA+DQorICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIj4NCisgICAgICA8dGV4dC8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJheiI+DQorICAgICAgPHRleHQvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvZ3JvdXA+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9IngiIGJhej0ieCIvPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvby8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmFyPSJ4Ii8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmF6PSJ4Ii8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi4yPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxncm91cD4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiPg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIj4NCisgICAgICA8dGV4dC8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9ncm91cD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIGJhcj0ieCIgYmF6PSJ4Ii8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXI9IngiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXo9IngiLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGdyb3VwPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgICAgPHRleHQvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJ4Ij48YmF6Lz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhei8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmFyPSJ4Ii8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmF6PSJ4Ij48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjI8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGdyb3VwPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJ4Ij48YmF6Lz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhei8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmFyPSJ4Ii8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmF6PSJ4Ij48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjYuMi4zPC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZW1wdHkvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+IDwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorDQorDQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCis8P3RhcmdldCBkYXRhPz4NCis8P3RhcmdldCBkYXRhPz4NCis8P3RhcmdldCBkYXRhPz4NCis8P3RhcmdldCBkYXRhPz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+eDwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhcj0ieCIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgIDxlbXB0eS8+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vIGJhcj0iIi8+PC92YWxpZD4NCis8dmFsaWQ+PGZvbyBiYXI9IiAiLz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28gYmFyPSJ4Ii8+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxsaXN0Pg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9saXN0Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+IDwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvbz54PC9mb28+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxmb28+PGJhci8+PC9mb28+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxmb28gYmFyPSIiLz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjM8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPg0KKyAgICA8bGlzdD4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2xpc3Q+DQorICA8L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vIGJhcj0iIi8+PC92YWxpZD4NCis8dmFsaWQ+PGZvbyBiYXI9IiAiLz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28gYmFyPSJ4Ii8+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxncm91cD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxjaG9pY2U+DQorICAgICAgPGVtcHR5Lz4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvY2hvaWNlPg0KKyAgPC9ncm91cD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXovPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXovPjxiYXovPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8ZW1wdHkvPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgICAgPHRleHQvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvY2hvaWNlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJ4Ii8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhej0ieCIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+Ni4yLjQ8L3NlY3Rpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi40PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDx0ZXh0Lz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPiA8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPng8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KK3gNCis8P3RhcmdldCBkYXRhPz4NCit5DQorPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNDwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Z3JvdXA+DQorICAgIDx0ZXh0Lz4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCis8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KK3gNCis8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KK3gNCis8P3RhcmdldCBkYXRhPz4NCit5DQorPGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz54PC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi40PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxncm91cD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDx0ZXh0Lz4NCisgIDwvZ3JvdXA+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKzxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz4NCit4DQorPGJhci8+DQorPC9mb28+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKzxiYXIvPg0KK3gNCis8P3RhcmdldCBkYXRhPz4NCit5DQorPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+eDwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjQ8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGludGVybGVhdmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8dGV4dC8+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKzxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQoreA0KKzxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorPGJhci8+DQoreA0KKzw/dGFyZ2V0IGRhdGE/Pg0KK3kNCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz54PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz54PGJhci8+eDwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz54PGJhci8+eDxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNDwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgIDx0ZXh0Lz4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSIiLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vIGJhcj0ieCIvPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28gYmFyPSIgIi8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz54PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj42LjIuNTwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjU8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8Z3JvdXA+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisJPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisJPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvZ3JvdXA+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PGJhci8+PGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48YmFyLz48YmFyLz48YmFyLz48YmFyLz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjxiYXIvPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8YXR0cmlidXRlPg0KKyAgICAgIDxuc05hbWUgbnM9IiIvPg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIHg9IiIvPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28geD0iIiB5PSIiLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vIHg9IiIgeT0iIiB6PSIiLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIHhtbG5zOm5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiBuczp4PSIiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyB4PSIiIHhtbG5zOm5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiBuczp4PSIiLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjU8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGNob2ljZT4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgICAgICA8dGV4dC8+DQorICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICAgIDx0ZXh0Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvY2hvaWNlPg0KKyAgPC9vbmVPck1vcmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9IiI+PGJhci8+PGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vIGJhcj0iIi8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjYuMi42PC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9pbnRlcmxlYXZlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhei8+PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48YmF6Lz48YmFyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhei8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNjwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPGdyb3VwPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhcjEiPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyMiI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9ncm91cD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz48YmF6Lz48YmFyMS8+PGJhcjIvPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+PGJhcjEvPjxiYXovPjxiYXIyLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPjxiYXIxLz48YmFyMi8+PGJhei8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXovPjxiYXIyLz48YmFyMS8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhcjIvPjxiYXIxLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmF6Lz48YmFyMi8+PGJhcjEvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXovPjxiYXIxLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmF6Lz48YmFyMi8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi42PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgICAgPHRleHQvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiPg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9IiIgYmF6PSIiLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXI9IiIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhej0iIi8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi42PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiPg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXo9IiI+PGJhci8+PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXI9IiIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhcj0iIj48YmF6Lz48YmF6Lz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmF6Lz48YmF6Lz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjYuMi43PC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlPg0KKyAgICA8bmFtZSBucz0iIj5iYXI8L25hbWU+DQorICAgIDx2YWx1ZSB0eXBlPSJzdHJpbmciIGRhdGF0eXBlTGlicmFyeT0iIj5iYXo8L3ZhbHVlPg0KKyAgPC9hdHRyaWJ1dGU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9ImJheiIvPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXI9IiBiYXoiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXI9ImIiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXI9IiIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhcj0iICIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXI+YmF6PC9iYXI+PC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi43PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGU+DQorICAgIDxuYW1lIG5zPSIiPmJhcjwvbmFtZT4NCisgICAgPGNob2ljZT4NCisgICAgICA8dmFsdWUgdHlwZT0ic3RyaW5nIiBkYXRhdHlwZUxpYnJhcnk9IiI+YmF6PC92YWx1ZT4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2Nob2ljZT4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJiYXoiLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vIGJhcj0iIi8+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhcj0iIGJheiIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhcj0iYiIvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXI+YmF6PC9iYXI+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+PGJhci8+PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlPg0KKyAgICA8bmFtZSBucz0iIj5iYXI8L25hbWU+DQorICAgIDx2YWx1ZSB0eXBlPSJzdHJpbmciLz4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSIiLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmFyPSIgIi8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmFyPSJ4Ii8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi43PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8bmFtZSBucz0iIj5mb288L25hbWU+DQorICA8Z3JvdXA+DQorICAgIDxlbGVtZW50Pg0KKyAgICAgIDxuYW1lIG5zPSIiPmJhcjwvbmFtZT4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50Pg0KKyAgICAgIDxuYW1lIG5zPSIiPmJhejwvbmFtZT4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhei8+PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCis8YmFyLz4NCis8YmF6Lz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKzxiYXIvPg0KKyYjeEQ7DQorPGJhei8+DQorPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGJhcj48YmFyLz48YmF6Lz48L2Jhcj4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjc8L3NlY3Rpb24+DQorPHNlY3Rpb24+Ni4yLjg8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHZhbHVlIHR5cGU9InN0cmluZyIvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvbz4gPC9mb28+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxmb28+eDwvZm9vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNzwvc2VjdGlvbj4NCis8c2VjdGlvbj42LjIuODwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8dmFsdWUgdHlwZT0ic3RyaW5nIi8+DQorICAgIDxlbXB0eS8+DQorICA8L2Nob2ljZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vLz48L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPiA8L2Zvbz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28+eDwvZm9vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuNzwvc2VjdGlvbj4NCis8c2VjdGlvbj42LjIuODwvc2VjdGlvbj4NCis8c2VjdGlvbj42LjIuMTA8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGxpc3Q+DQorICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICA8L2xpc3Q+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD48Zm9vLz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz4gPC9mb28+PC9pbnZhbGlkPg0KKzx2YWxpZD48Zm9vPng8L2Zvbz48L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPiB4IDwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvbz54IHk8L2Zvbz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjc8L3NlY3Rpb24+DQorPHNlY3Rpb24+Ni4yLjg8L3NlY3Rpb24+DQorPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyA8ZGF0YSB0eXBlPSJzdHJpbmciDQorICAgICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4NCisgICA8cGFyYW0gbmFtZT0ibWluTGVuZ3RoIj4yPC9wYXJhbT4NCisgPC9kYXRhPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+eHg8L2Zvbz48L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPnh4eDwvZm9vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+ICA8L2Zvbz48L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPiAgIDwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvbz54PC9mb28+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxmb28+IDwvZm9vPjwvaW52YWxpZD4NCis8aW52YWxpZD48Zm9vLz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjc8L3NlY3Rpb24+DQorPHNlY3Rpb24+Ni4yLjg8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGNob2ljZT4NCisgICAgPHZhbHVlPng8L3ZhbHVlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvY2hvaWNlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+IHggPC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz54PC9mb28+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vPnk8L2Zvbz48L2ludmFsaWQ+DQorPHZhbGlkPjxmb28+PGJhci8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCis8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28+eDxiYXIvPjwvZm9vPjwvaW52YWxpZD4NCis8aW52YWxpZD48Zm9vLz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz48YmFyLz54PC9mb28+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi43PC9zZWN0aW9uPg0KKzxzZWN0aW9uPjYuMi44PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxjaG9pY2U+DQorICAgIDx2YWx1ZT54PC92YWx1ZT4NCisgICAgPG1peGVkPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9taXhlZD4NCisgIDwvY2hvaWNlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+IHggPC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz54PC9mb28+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vPnk8L2Zvbz48L2ludmFsaWQ+DQorPHZhbGlkPjxmb28+PGJhci8+PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCis8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPng8YmFyLz48L2Zvbz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28vPjwvaW52YWxpZD4NCis8dmFsaWQ+PGZvbz48YmFyLz54PC9mb28+PC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+Ni4yLjg8L3NlY3Rpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi44PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkYXRhIHR5cGU9InN0cmluZyI+DQorICAgIDxleGNlcHQ+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDx2YWx1ZT54PC92YWx1ZT4NCisgICAgICAgIDx2YWx1ZT55PC92YWx1ZT4NCisgICAgICA8L2Nob2ljZT4NCisgICAgPC9leGNlcHQ+DQorICA8L2RhdGE+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz54eXp6eTwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz54PC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+eTwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPiB4PC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi44PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjg8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHZhbHVlLz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi44PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkYXRhIHR5cGU9InN0cmluZyI+DQorICAgIDxleGNlcHQ+DQorICAgICAgPHZhbHVlLz4NCisgICAgPC9leGNlcHQ+DQorICA8L2RhdGE+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+eDwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjYuMi45PC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuOTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZGF0YSB0eXBlPSJzdHJpbmciIGRhdGF0eXBlTGlicmFyeT0iIi8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz54eXp6eTwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQoreA0KKzw/dGFyZ2V0IGRhdGE/Pg0KK3kNCis8P3RhcmdldCBkYXRhPz4NCit6DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz48L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz48YmFyLz48L2Zvbz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyBiYXI9IiIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuOTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8ZGF0YSB0eXBlPSJ0b2tlbiIgZGF0YXR5cGVMaWJyYXJ5PSIiLz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPnh5enp5PC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCit4DQorPD90YXJnZXQgZGF0YT8+DQoreQ0KKzw/dGFyZ2V0IGRhdGE/Pg0KK3oNCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPjwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPjxiYXIvPjwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vIGJhcj0iIi8+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi45PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDx2YWx1ZSB0eXBlPSJzdHJpbmciIGRhdGF0eXBlTGlicmFyeT0iIj54PC92YWx1ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vPng8L2Zvbz48L3ZhbGlkPg0KKzxpbnZhbGlkPjxmb28+eHk8L2Zvbz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz4geDwvZm9vPjwvaW52YWxpZD4NCis8aW52YWxpZD48Zm9vLz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjk8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHZhbHVlIHR5cGU9InN0cmluZyIgZGF0YXR5cGVMaWJyYXJ5PSIiPiB4PC92YWx1ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vPiB4PC9mb28+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vPiB4eTwvZm9vPjwvaW52YWxpZD4NCis8aW52YWxpZD48Zm9vPng8L2Zvbz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvby8+PC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi45PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDx2YWx1ZSB0eXBlPSJ0b2tlbiIgZGF0YXR5cGVMaWJyYXJ5PSIiPng8L3ZhbHVlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+eDwvZm9vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+IHg8L2Zvbz48L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPnggPC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz4mI3hBOyYjeEQ7JiN4OTsmI3gyMDt4JiN4QTsmI3hEOyYjeDk7JiN4MjA7PC9mb28+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vLz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz54eTwvZm9vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuOTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8dmFsdWUgdHlwZT0idG9rZW4iIGRhdGF0eXBlTGlicmFyeT0iIj54IHk8L3ZhbHVlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+eCB5PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz4geCAgIHkgPC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz54JiN4QTsmI3hEOyYjeDk7JiN4MjA7eTwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvbz54eTwvZm9vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuOTwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8dmFsdWUgdHlwZT0idG9rZW4iIGRhdGF0eXBlTGlicmFyeT0iIj4mI3hBOyYjeEQ7JiN4OTsmI3gyMDt4JiN4QTsmI3hEOyYjeDk7JiN4MjA7PC92YWx1ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD48Zm9vPng8L2Zvbz48L3ZhbGlkPg0KKzx2YWxpZD48Zm9vPiB4PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz54IDwvZm9vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+JiN4RDsmI3g5O3gmI3gyMDsmI3hBOzwvZm9vPjwvdmFsaWQ+DQorPGludmFsaWQ+PGZvby8+PC9pbnZhbGlkPg0KKzxpbnZhbGlkPjxmb28+eHk8L2Zvbz48L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjk8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHZhbHVlIHR5cGU9InRva2VuIiBkYXRhdHlwZUxpYnJhcnk9IiI+eCYjeEE7JiN4RDsmI3g5OyYjeDIwO3k8L3ZhbHVlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPjxmb28+eCB5PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz54ICB5PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz4geCB5IDwvZm9vPjwvdmFsaWQ+DQorPHZhbGlkPjxmb28+eCYjeEQ7JiN4OTt5PC9mb28+PC92YWxpZD4NCis8dmFsaWQ+PGZvbz54JiN4MjA7JiN4QTt5PC9mb28+PC92YWxpZD4NCis8aW52YWxpZD48Zm9vLz48L2ludmFsaWQ+DQorPGludmFsaWQ+PGZvbz54eTwvZm9vPjwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuOTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkYXRhIHR5cGU9ImRlY2ltYWwiIGRhdGF0eXBlTGlicmFyeT0iIi8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi45PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHZhbHVlIHR5cGU9ImRlY2ltYWwiIGRhdGF0eXBlTGlicmFyeT0iIi8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjYuMi45PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGRhdGEgdHlwZT0ic3RyaW5nIiBkYXRhdHlwZUxpYnJhcnk9IiI+DQorICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjI8L3BhcmFtPg0KKyAgPC9kYXRhPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuOTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxkYXRhIHR5cGU9InRva2VuIiBkYXRhdHlwZUxpYnJhcnk9IiI+DQorICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjI8L3BhcmFtPg0KKyAgPC9kYXRhPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+Ni4yLjEwPC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMTA8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGxpc3Q+DQorICAgIDx2YWx1ZSB0eXBlPSJzdHJpbmciPng8L3ZhbHVlPg0KKyAgPC9saXN0Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+eDwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+IHggPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPnggeDwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMTA8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGxpc3Q+DQorICAgIDxvbmVPck1vcmU+DQorICAgICAgPHZhbHVlIHR5cGU9InN0cmluZyI+eDwvdmFsdWU+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9saXN0Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+eDwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+IHggeCB4IHggPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz54IHk8L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjEwPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxsaXN0Pg0KKyAgICA8Z3JvdXA+DQorICAgICAgPHZhbHVlIHR5cGU9InN0cmluZyI+eDwvdmFsdWU+DQorICAgICAgPHZhbHVlIHR5cGU9InN0cmluZyI+eTwvdmFsdWU+DQorICAgIDwvZ3JvdXA+DQorICA8L2xpc3Q+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbz54IHk8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPnggIHk8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPiYjeEQ7eCYjeEE7eSYjeDk7PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPng8L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ni4yLjEwPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxsaXN0Pg0KKyAgICA8Z3JvdXA+DQorICAgICAgPGRhdGEgdHlwZT0idG9rZW4iLz4NCisgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICA8L2dyb3VwPg0KKyAgPC9saXN0Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+eCB5PC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz54IHkgejwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj42LjIuMTA8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGxpc3Q+DQorICAgIDx2YWx1ZT54IHk8L3ZhbHVlPg0KKyAgPC9saXN0Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGZvbz54IHk8L2Zvbz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8L3Rlc3RTdWl0ZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjc8L3NlY3Rpb24+DQorPHRlc3RTdWl0ZT4NCis8c2VjdGlvbj43LjE8L3NlY3Rpb24+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4xPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuMTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKyAgICAgICAgICA8ZW1wdHkvPg0KKyAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgICAgPHRleHQvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuMTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmF6Ii8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4xPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmF6Ii8+DQorICAgICAgICA8dGV4dC8+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4yPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8b25lT3JNb3JlPg0KKyAgICAgIDxncm91cD4NCisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJheiIvPg0KKyAgICAgIDwvZ3JvdXA+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4yPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8b25lT3JNb3JlPg0KKyAgICAgIDxncm91cD4NCisgICAgICAgIDxhdHRyaWJ1dGU+DQorICAgICAgICAgIDxhbnlOYW1lLz4NCisgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgICAgPGF0dHJpYnV0ZT4NCisgICAgICAgICAgPGFueU5hbWUvPg0KKyAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9ncm91cD4NCisgICAgPC9vbmVPck1vcmU+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjI8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxvbmVPck1vcmU+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDxncm91cD4NCisgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmF6Ii8+DQorICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiLz4NCisgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICA8L2dyb3VwPg0KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICAgPC9vbmVPck1vcmU+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjI8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxvbmVPck1vcmU+DQorICAgICAgPGludGVybGVhdmU+DQorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiLz4NCisgICAgICA8L2ludGVybGVhdmU+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4yPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8b25lT3JNb3JlPg0KKyAgICAgIDxpbnRlcmxlYXZlPg0KKyAgICAgICAgPGF0dHJpYnV0ZT4NCisgICAgICAgICAgPGFueU5hbWUvPg0KKyAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgICA8YXR0cmlidXRlPg0KKyAgICAgICAgICA8YW55TmFtZS8+DQorICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L2ludGVybGVhdmU+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4yPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8b25lT3JNb3JlPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICA8aW50ZXJsZWF2ZT4NCisgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmF6Ii8+DQorICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiLz4NCisgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICA8L2ludGVybGVhdmU+DQorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L29uZU9yTW9yZT4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuMzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGxpc3Q+DQorICAgICAgPGxpc3Q+DQorICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICAgIDwvbGlzdD4NCisgICAgPC9saXN0Pg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8bGlzdD4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgPGxpc3Q+DQorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICAgICAgICA8L2xpc3Q+DQorICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L2xpc3Q+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxsaXN0Pg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9saXN0Pg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8bGlzdD4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iLz4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICAgIDxlbXB0eS8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvbGlzdD4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuMzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGxpc3Q+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgPC9saXN0Pg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8bGlzdD4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPg0KKyAgICAgICAgICA8ZW1wdHkvPg0KKyAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L2xpc3Q+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxsaXN0Pg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICA8dGV4dC8+DQorICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L2xpc3Q+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxsaXN0Pg0KKyAgICAgIDxpbnRlcmxlYXZlPg0KKyAgICAgICAgPHZhbHVlPng8L3ZhbHVlPg0KKyAgICAgICAgPHZhbHVlPnk8L3ZhbHVlPg0KKyAgICAgIDwvaW50ZXJsZWF2ZT4NCisgICAgPC9saXN0Pg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8bGlzdD4NCisgICAgICA8Y2hvaWNlPg0KKwk8aW50ZXJsZWF2ZT4NCisJICA8dmFsdWU+eDwvdmFsdWU+DQorCSAgPHZhbHVlPnk8L3ZhbHVlPg0KKwk8L2ludGVybGVhdmU+DQorICAgICAgICA8dmFsdWU+ejwvdmFsdWU+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvbGlzdD4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNDwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGRhdGEgdHlwZT0ic3RyaW5nIj4NCisgICAgICA8ZXhjZXB0Pg0KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4NCisgICAgICA8L2V4Y2VwdD4NCisgICAgPC9kYXRhPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS40PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgICAgICA8ZW1wdHkvPg0KKyAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDwvZXhjZXB0Pg0KKyAgICA8L2RhdGE+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+DQorICAgICAgPGV4Y2VwdD4NCisgICAgICAgIDx0ZXh0Lz4NCisgICAgICA8L2V4Y2VwdD4NCisgICAgPC9kYXRhPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS40PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8bGlzdD4NCisgICAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iLz4NCisgICAgICAgIDwvbGlzdD4NCisgICAgICA8L2V4Y2VwdD4NCisgICAgPC9kYXRhPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS40PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8Z3JvdXA+DQorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICAgICAgICA8L2dyb3VwPg0KKyAgICAgIDwvZXhjZXB0Pg0KKyAgICA8L2RhdGE+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+DQorICAgICAgPGV4Y2VwdD4NCisgICAgICAgIDxpbnRlcmxlYXZlPg0KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICAgICAgPC9pbnRlcmxlYXZlPg0KKyAgICAgIDwvZXhjZXB0Pg0KKyAgICA8L2RhdGE+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+DQorICAgICAgPGV4Y2VwdD4NCisgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2V4Y2VwdD4NCisgICAgPC9kYXRhPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS40PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPg0KKyAgICAgIDxleGNlcHQ+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZXhjZXB0Pg0KKyAgICA8L2RhdGE+DQorICA8L2VsZW1lbnQ+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjU8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iZm9vIi8+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjU8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS41PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8Y2hvaWNlPg0KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2Nob2ljZT4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGNob2ljZT4NCisgICAgPHZhbHVlPmZvbzwvdmFsdWU+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9jaG9pY2U+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjU8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDx0ZXh0Lz4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGNob2ljZT4NCisgICAgPHRleHQvPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvY2hvaWNlPg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS41PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8bGlzdD4NCisgICAgPGRhdGEgdHlwZT0idG9rZW4iLz4NCisgIDwvbGlzdD4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGNob2ljZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxsaXN0Pg0KKyAgICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICAgIDwvbGlzdD4NCisgIDwvY2hvaWNlPg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS41PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8Z3JvdXA+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZ3JvdXA+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjU8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxjaG9pY2U+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8Z3JvdXA+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisJPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisJPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvZ3JvdXA+DQorICA8L2Nob2ljZT4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGludGVybGVhdmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvaW50ZXJsZWF2ZT4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGNob2ljZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxpbnRlcmxlYXZlPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L2ludGVybGVhdmU+DQorICA8L2Nob2ljZT4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L29uZU9yTW9yZT4NCis8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjEuNTwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGNob2ljZT4NCisgICAgPG9uZU9yTW9yZT4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKwk8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9vbmVPck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9jaG9pY2U+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjU8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbXB0eS8+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjU8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxjaG9pY2U+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9jaG9pY2U+DQorPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjU8L3NlY3Rpb24+DQorPHNlY3Rpb24+Nzwvc2VjdGlvbj4NCis8c2VjdGlvbj40LjE4PC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlRlc3RzIHRoYXQgY29uc3RyYWludHMgYXJlIHBvc3Qtbm9ybWFsaXphdGlvbjwvZG9jdW1lbnRhdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8Z3JhbW1hcj4NCisgICAgPHN0YXJ0Pg0KKyAgICAgIDx0ZXh0Lz4NCisgICAgPC9zdGFydD4NCisgIDwvZ3JhbW1hcj4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vPnRleHQ8L2Zvbz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS41PC9zZWN0aW9uPg0KKzxzZWN0aW9uPjc8L3NlY3Rpb24+DQorPHNlY3Rpb24+NC4xODwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzx0ZXh0IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIvPg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4xPC9zZWN0aW9uPg0KKzxzZWN0aW9uPjc8L3NlY3Rpb24+DQorPHNlY3Rpb24+NC4yMDwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImZvbyI+DQorICA8b3B0aW9uYWw+DQorICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIj4NCisgICAgICA8Z3JvdXA+DQorICAgICAgICA8bm90QWxsb3dlZC8+DQorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJheiIvPg0KKyAgICAgIDwvZ3JvdXA+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9vcHRpb25hbD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4xPC9zZWN0aW9uPg0KKzxzZWN0aW9uPjc8L3NlY3Rpb24+DQorPHNlY3Rpb24+NC4yMDwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5UaGUgbmVzdGVkIGF0dHJpYnV0ZSBlbGVtZW50IGlzIG5vcm1hbGl6ZWQgb3V0IGJlY2F1c2UNCitvZiB0aGUgbm90IGFsbG93ZWQuPC9kb2N1bWVudGF0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZm9vIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIj4NCisgICAgPGNob2ljZT4NCisgICAgICA8dGV4dC8+DQorICAgICAgPGdyb3VwPg0KKyAgICAgICAgPG5vdEFsbG93ZWQvPg0KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiLz4NCisgICAgICA8L2dyb3VwPg0KKyAgICA8L2Nob2ljZT4NCisgIDwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJiYXoiLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMS4yPC9zZWN0aW9uPg0KKzxzZWN0aW9uPjc8L3NlY3Rpb24+DQorPHNlY3Rpb24+NC4xMjwvc2VjdGlvbj4NCis8ZG9jdW1lbnRhdGlvbj5UaGUgZ3JvdXAgZWxlbWVudCBpcyBub3JtYWxpemVkIG91dC48L2RvY3VtZW50YXRpb24+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJmb28iPg0KKyAgICA8b25lT3JNb3JlPg0KKyAgICAgIDxncm91cD4NCisgICAgICAgIDxhdHRyaWJ1dGU+DQorICAgICAgICAgIDxhbnlOYW1lLz4NCisgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvZ3JvdXA+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyB4eXp6eTE9InZhbDEiIHh5enp5Mj0idmFsMiIvPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjI8L3NlY3Rpb24+DQorPHNlY3Rpb24+Nzwvc2VjdGlvbj4NCis8c2VjdGlvbj40LjIxPC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlRoZSBncm91cCBlbGVtZW50IGlzIG5vcm1hbGl6ZWQgb3V0LjwvZG9jdW1lbnRhdGlvbj4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKzxzdGFydD4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxvbmVPck1vcmU+DQorICAgICAgPGdyb3VwPg0KKyAgICAgICAgPGF0dHJpYnV0ZT4NCisgICAgICAgICAgPGFueU5hbWUvPg0KKyAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZ3JvdXA+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyB4eXp6eTE9InZhbDEiIHh5enp5Mj0idmFsMiIvPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4xLjI8L3NlY3Rpb24+DQorPHNlY3Rpb24+Nzwvc2VjdGlvbj4NCis8c2VjdGlvbj40LjIwPC9zZWN0aW9uPg0KKzxkb2N1bWVudGF0aW9uPlRoZSBhdHRyaWJ1dGUgZWxlbWVudHMgYXJlIGFsbCBub3JtYWxpemVkIG91dC48L2RvY3VtZW50YXRpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJmb28iPg0KKyAgPG9wdGlvbmFsPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImExIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9ImEyIj4NCisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYTMiPg0KKyAgICAgICAgICA8bm90QWxsb3dlZC8+DQorICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29wdGlvbmFsPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjcuMjwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4yPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgICA8Z3JvdXA+DQorICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiIvPg0KKyAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iLz4NCisgICAgICA8L2dyb3VwPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3N0YXJ0Pg0KKzwvZ3JhbW1hcj4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8ZG9jdW1lbnRhdGlvbj5DaGVja3MgdGhhdCBub3JtYWxpemF0aW9uIG9mIG5vdEFsbG93ZWQgaGFwcGVucw0KK2JlZm9yZSBzdHJpbmcgc2VxdWVuY2UgY2hlY2tpbmcuPC9kb2N1bWVudGF0aW9uPg0KKzxzZWN0aW9uPjcuMjwvc2VjdGlvbj4NCis8c2VjdGlvbj40LjIwPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxjaG9pY2UgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorICA8Z3JvdXA+DQorICAgIDxub3RBbGxvd2VkLz4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8Z3JvdXA+DQorCTxkYXRhIHR5cGU9InRva2VuIi8+DQorCTxkYXRhIHR5cGU9InRva2VuIi8+DQorICAgICAgPC9ncm91cD4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9ncm91cD4NCis8L2Nob2ljZT4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+NC4yMDwvc2VjdGlvbj4NCis8c2VjdGlvbj43LjI8L3NlY3Rpb24+DQorPGRvY3VtZW50YXRpb24+bm90QWxsb3dlZCBpbiBhbiBlbGVtZW50IGlzIG5vdCBub3JtYWxpemVkPC9kb2N1bWVudGF0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGNob2ljZT4NCisgICAgPGdyb3VwPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICA8bm90QWxsb3dlZC8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDxkYXRhIHR5cGU9InRva2VuIi8+DQorICAgICAgPGRhdGEgdHlwZT0idG9rZW4iLz4NCisgICAgPC9ncm91cD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2Nob2ljZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxzZWN0aW9uPjcuMzwvc2VjdGlvbj4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorICA8emVyb09yTW9yZT4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4NCisgIDwvemVyb09yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvbmVPck1vcmU+DQorICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vIGJhcj0ieHgiLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgPC9pbnRlcmxlYXZlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b3B0aW9uYWw+DQorICAgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorICA8L29wdGlvbmFsPg0KKyAgPG9wdGlvbmFsPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgPC9vcHRpb25hbD4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4NCisgIDxvbmVPck1vcmU+DQorICAgIDxhdHRyaWJ1dGU+DQorICAgICAgPGFueU5hbWUvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvb25lT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGF0dHJpYnV0ZT4NCisgICAgICA8YW55TmFtZT4NCisJPGV4Y2VwdD4NCisJICA8bmFtZT5iYXo8L25hbWU+DQorCTwvZXhjZXB0Pg0KKyAgICAgIDwvYW55TmFtZT4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIi8+DQorICA8b25lT3JNb3JlPg0KKyAgICA8YXR0cmlidXRlPg0KKyAgICAgIDxhbnlOYW1lPg0KKwk8ZXhjZXB0Pg0KKwkgIDxuYW1lPmJhcjwvbmFtZT4NCisJPC9leGNlcHQ+DQorICAgICAgPC9hbnlOYW1lPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvb25lT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJ2YWwiIHh5enp5PSJhbm90aGVydmFsIi8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9InZhbCIgYmF6PSIiLz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28gYmFyPSJ2YWwiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGZvby8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28geHl6enk9InZhbCIvPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGF0dHJpYnV0ZT4NCisgICAgICA8bnNOYW1lIG5zPSIiLz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4NCisgIDxvbmVPck1vcmU+DQorICAgIDxhdHRyaWJ1dGU+DQorICAgICAgPG5zTmFtZSBucz0iIj4NCisJPGV4Y2VwdD4NCisJICA8bmFtZT5iYXo8L25hbWU+DQorCTwvZXhjZXB0Pg0KKyAgICAgICA8L25zTmFtZT4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGF0dHJpYnV0ZT4NCisgICAgICA8YW55TmFtZS8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9vbmVPck1vcmU+DQorICA8b25lT3JNb3JlPg0KKyAgICA8YXR0cmlidXRlPg0KKyAgICAgIDxuc05hbWUgbnM9IiIvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvb25lT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8YXR0cmlidXRlPg0KKyAgICAgIDxhbnlOYW1lLz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29uZU9yTW9yZT4NCisgIDxvbmVPck1vcmU+DQorICAgIDxhdHRyaWJ1dGU+DQorICAgICAgPGFueU5hbWUvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvb25lT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8YXR0cmlidXRlPg0KKyAgICAgIDxuc05hbWUgbnM9IiIvPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvb25lT3JNb3JlPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGF0dHJpYnV0ZT4NCisgICAgICA8bnNOYW1lIG5zPSIiPg0KKwk8ZXhjZXB0Pg0KKwkgIDxuYW1lPmJhcjwvbmFtZT4NCisJPC9leGNlcHQ+DQorICAgICAgPC9uc05hbWU+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9vbmVPck1vcmU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvbmVPck1vcmU+DQorICAgIDxhdHRyaWJ1dGU+DQorICAgICAgPGFueU5hbWU+DQorCTxleGNlcHQ+DQorCSAgPG5zTmFtZT4NCisJICAgIDxleGNlcHQ+DQorCSAgICAgIDxuYW1lPmZvbzwvbmFtZT4NCisJICAgIDwvZXhjZXB0Pg0KKwkgIDwvbnNOYW1lPg0KKwk8L2V4Y2VwdD4NCisgICAgICA8L2FueU5hbWU+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9vbmVPck1vcmU+DQorICA8YXR0cmlidXRlIG5hbWU9ImZvbyIvPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8YXR0cmlidXRlPg0KKyAgICAgIDxhbnlOYW1lPg0KKwk8ZXhjZXB0Pg0KKwkgIDxuc05hbWU+DQorCSAgICA8ZXhjZXB0Pg0KKwkgICAgICA8bmFtZT5mb288L25hbWU+DQorCSAgICA8L2V4Y2VwdD4NCisJICA8L25zTmFtZT4NCisJPC9leGNlcHQ+DQorICAgICAgPC9hbnlOYW1lPg0KKyAgICA8L2F0dHJpYnV0ZT4NCisgIDwvb25lT3JNb3JlPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGF0dHJpYnV0ZT4NCisgICAgICA8bnNOYW1lLz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvbmVPck1vcmU+DQorICAgIDxhdHRyaWJ1dGU+DQorICAgICAgPGFueU5hbWU+DQorCTxleGNlcHQ+DQorCSAgPG5zTmFtZT4NCisJICAgIDxleGNlcHQ+DQorCSAgICAgIDxuYW1lPmJhcjwvbmFtZT4NCisJICAgIDwvZXhjZXB0Pg0KKwkgIDwvbnNOYW1lPg0KKwk8L2V4Y2VwdD4NCisgICAgICA8L2FueU5hbWU+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9vbmVPck1vcmU+DQorICA8YXR0cmlidXRlIG5hbWU9ImJheiIvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28gYmFyPSJ4eCIgYmF6PSJ5eSIvPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyB4PSJ4eCIgYmF6PSJ5eSIvPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvbyB4bWxuczplZz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIGVnOng9Inh4IiBiYXo9Inl5Ii8+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGF0dHJpYnV0ZT4NCisgICAgICA8bnNOYW1lIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLzEiLz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L29uZU9yTW9yZT4NCisgIDxvbmVPck1vcmU+DQorICAgIDxhdHRyaWJ1dGU+DQorICAgICAgPG5zTmFtZSBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8yIi8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9vbmVPck1vcmU+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyB4bWxuczplZzE9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vMSINCisgICAgIHhtbG5zOmVnMj0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8yIg0KKyAgICAgZWcxOng9Inh4IiBlZzI6eT0ieXkiLz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMzwvc2VjdGlvbj4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgPC9jaG9pY2U+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9Inh4Ii8+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlIG5hbWU9ImJhciIvPg0KKyAgPGNob2ljZT4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXoiLz4NCisgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4NCisgIDwvY2hvaWNlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjM8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8YXR0cmlidXRlPjxhbnlOYW1lLz48dGV4dC8+PC9hdHRyaWJ1dGU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuMzwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhdHRyaWJ1dGU+PG5zTmFtZSBucyA9IiIvPjx0ZXh0Lz48L2F0dHJpYnV0ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny4zPC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGF0dHJpYnV0ZT48Y2hvaWNlPjxuc05hbWUgbnMgPSIiLz48bmFtZT5mb288L25hbWU+PC9jaG9pY2U+PHRleHQvPjwvYXR0cmlidXRlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPHNlY3Rpb24+Ny40PC9zZWN0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9pbnRlcmxlYXZlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxpbnRlcmxlYXZlPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L2ludGVybGVhdmU+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuNDwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGdyb3VwPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorCTxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L2dyb3VwPg0KKyAgPC9pbnRlcmxlYXZlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxncm91cD4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKwk8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgICA8aW50ZXJsZWF2ZT4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorICAgICAgICAgIDxlbXB0eS8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorCTxlbGVtZW50IG5hbWU9ImJhciI+DQorCSAgPGVtcHR5Lz4NCisJPC9lbGVtZW50Pg0KKyAgICAgIDwvaW50ZXJsZWF2ZT4NCisgICAgPC9ncm91cD4NCisgIDwvaW50ZXJsZWF2ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny40PC9zZWN0aW9uPg0KKzxpbmNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGludGVybGVhdmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8b3B0aW9uYWw+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisJPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvb3B0aW9uYWw+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuNDwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQ+DQorICAgICAgPG5zTmFtZSBucz0iIi8+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9pbnRlcmxlYXZlPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50Pg0KKyAgICAgIDxhbnlOYW1lLz4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuNDwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8bm90QWxsb3dlZC8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvaW50ZXJsZWF2ZT4NCis8L2VsZW1lbnQ+DQorPC9pbmNvcnJlY3Q+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHNlY3Rpb24+Ny40PC9zZWN0aW9uPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxpbnRlcmxlYXZlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQ+DQorICAgICAgPGFueU5hbWU+DQorICAgICAgICA8ZXhjZXB0Pg0KKyAgICAgICAgICA8bmFtZT5iYXI8L25hbWU+DQorICAgICAgICA8L2V4Y2VwdD4NCisgICAgICA8L2FueU5hbWU+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9pbnRlcmxlYXZlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhei8+PC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjQ8L3NlY3Rpb24+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGludGVybGVhdmU+DQorICAgIDxjaG9pY2U+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisJPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisJPHRleHQvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9jaG9pY2U+DQorICAgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9pbnRlcmxlYXZlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28+PGJhci8+PGJhei8+PC9mb28+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8c2VjdGlvbj43LjQ8L3NlY3Rpb24+DQorPGluY29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8aW50ZXJsZWF2ZT4NCisgICAgPHRleHQvPg0KKyAgICA8dGV4dC8+DQorICA8L2ludGVybGVhdmU+DQorPC9lbGVtZW50Pg0KKzwvaW5jb3JyZWN0Pg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxzZWN0aW9uPjcuNDwvc2VjdGlvbj4NCis8aW5jb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxtaXhlZD4NCisgICAgPG1peGVkPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC9taXhlZD4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L21peGVkPg0KKzwvZWxlbWVudD4NCis8L2luY29ycmVjdD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPGRvY3VtZW50YXRpb24+UmVncmVzc2lvbnM8L2RvY3VtZW50YXRpb24+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorPHN0YXJ0Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgICAgPGNob2ljZT4NCisgICAgICA8Z3JvdXA+DQorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJhciI+PGVtcHR5Lz48L2F0dHJpYnV0ZT4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImJhejEiPjxlbXB0eS8+PC9lbGVtZW50Pg0KKyAgICAgIDwvZ3JvdXA+DQorICAgICAgPGdyb3VwPg0KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiPjx0ZXh0Lz48L2F0dHJpYnV0ZT4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImJhejIiPjxlbXB0eS8+PC9lbGVtZW50Pg0KKyAgICAgIDwvZ3JvdXA+DQorICAgIDwvY2hvaWNlPg0KKyAgPC9lbGVtZW50Pg0KKzwvc3RhcnQ+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvbyBiYXI9IiAiPjxiYXoxLz48L2Zvbz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxub3RBbGxvd2VkIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIvPg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8L3Rlc3RTdWl0ZT4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWIucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvT3BlbkRvY3VtZW50U3ViLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjFiZTY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvT3BlbkRvY3VtZW50U3ViLnJuZwpAQCAtMCwwICsxLDIyOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KKyAgICBPQVNJUyBPcGVuRG9jdW1lbnQgdjEuMAorICAgIFJlbGF4LU5HIFNjaGVtYQorICAgIAorICAgICoqIEl0J3Mgb25seSBhIHZlcnkgc21hbGwgc3ViLXNldCBvZiB0aGUgc2NoZW1hLCBtZWFudCBmb3IgZGVidWdnaW5nIHRleHQtbm90ZXMtY29uZmlndXJhdGlvbiBlbGVtZW50ICoqCistLT4KKworPGdyYW1tYXIKKyAgICB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgICAgeG1sbnM6YT0iaHR0cDovL3JlbGF4bmcub3JnL25zL2NvbXBhdGliaWxpdHkvYW5ub3RhdGlvbnMvMS4wIgorCisgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiCisKKyAgICB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIKKyAgICB4bWxuczptZXRhPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm1ldGE6MS4wIgorICAgIHhtbG5zOmNvbmZpZz0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpjb25maWc6MS4wIgorICAgIHhtbG5zOnRleHQ9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGV4dDoxLjAiCisgICAgeG1sbnM6dGFibGU9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGFibGU6MS4wIgorICAgIHhtbG5zOmRyYXc9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZHJhd2luZzoxLjAiCisgICAgeG1sbnM6cHJlc2VudGF0aW9uPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnByZXNlbnRhdGlvbjoxLjAiCisgICAgeG1sbnM6ZHIzZD0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkcjNkOjEuMCIKKyAgICB4bWxuczpjaGFydD0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpjaGFydDoxLjAiCisgICAgeG1sbnM6Zm9ybT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpmb3JtOjEuMCIKKyAgICB4bWxuczpzY3JpcHQ9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c2NyaXB0OjEuMCIKKyAgICB4bWxuczpzdHlsZT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdHlsZToxLjAiCisgICAgeG1sbnM6bnVtYmVyPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRhdGFzdHlsZToxLjAiCisgICAgeG1sbnM6YW5pbT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczphbmltYXRpb246MS4wIgorCisgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgorICAgIHhtbG5zOm1hdGg9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiCisgICAgeG1sbnM6eGZvcm1zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAyL3hmb3JtcyIKKworICAgIHhtbG5zOmZvPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnhzbC1mby1jb21wYXRpYmxlOjEuMCIKKyAgICB4bWxuczpzdmc9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c3ZnLWNvbXBhdGlibGU6MS4wIgorICAgIHhtbG5zOnNtaWw9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c21pbC1jb21wYXRpYmxlOjEuMCIKKz4KKzxkZWZpbmUgbmFtZT0ib2ZmaWNlLXByb2Nlc3MtY29udGVudCI+CisgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im9mZmljZTpwcm9jZXNzLWNvbnRlbnQiIGE6ZGVmYXVsdFZhbHVlPSJ0cnVlIj4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYm9vbGVhbiIvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L29wdGlvbmFsPgorPC9kZWZpbmU+Cis8c3RhcnQ+CisgICAgPGNob2ljZT4KKyAgICAgICAgPHJlZiBuYW1lPSJvZmZpY2UtZG9jdW1lbnQtc3R5bGVzIi8+CisgICAgPC9jaG9pY2U+Cis8L3N0YXJ0PgorPGRlZmluZSBuYW1lPSJvZmZpY2UtZG9jdW1lbnQtc3R5bGVzIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJvZmZpY2U6ZG9jdW1lbnQtc3R5bGVzIj4KKyAgICAgICAgPHJlZiBuYW1lPSJvZmZpY2UtZG9jdW1lbnQtY29tbW9uLWF0dHJzIi8+CisgICAgICAgIDxyZWYgbmFtZT0ib2ZmaWNlLXN0eWxlcyIvPgorICAgIDwvZWxlbWVudD4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJvZmZpY2UtZG9jdW1lbnQtY29tbW9uLWF0dHJzIiBjb21iaW5lPSJpbnRlcmxlYXZlIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ib2ZmaWNlOnZlcnNpb24iPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJzdHJpbmciLz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9vcHRpb25hbD4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJvZmZpY2Utc3R5bGVzIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9Im9mZmljZTpzdHlsZXMiPgorICAgICAgICAgICAgPGludGVybGVhdmU+CisgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+CisgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGV4dC1ub3Rlcy1jb25maWd1cmF0aW9uIi8+CisgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPgorICAgICAgICAgICAgPC9pbnRlcmxlYXZlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJ0ZXh0LW5vdGVzLWNvbmZpZ3VyYXRpb24iPgorICAgIDxlbGVtZW50IG5hbWU9InRleHQ6bm90ZXMtY29uZmlndXJhdGlvbiI+CisgICAgICAgIDxyZWYgbmFtZT0idGV4dC1ub3Rlcy1jb25maWd1cmF0aW9uLWNvbnRlbnQiLz4KKyAgICA8L2VsZW1lbnQ+Cis8L2RlZmluZT4KKzxkZWZpbmUgbmFtZT0idGV4dC1ub3Rlcy1jb25maWd1cmF0aW9uLWNvbnRlbnQiIGNvbWJpbmU9ImludGVybGVhdmUiPgorICAgIDxyZWYgbmFtZT0idGV4dC1ub3RlLWNsYXNzIi8+Cis8L2RlZmluZT4KKzxkZWZpbmUgbmFtZT0idGV4dC1ub3Rlcy1jb25maWd1cmF0aW9uLWNvbnRlbnQiIGNvbWJpbmU9ImludGVybGVhdmUiPgorICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0ZXh0OmNpdGF0aW9uLXN0eWxlLW5hbWUiPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJzdHlsZU5hbWVSZWYiLz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9vcHRpb25hbD4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJ0ZXh0LW5vdGVzLWNvbmZpZ3VyYXRpb24tY29udGVudCIgY29tYmluZT0iaW50ZXJsZWF2ZSI+CisgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9InRleHQ6Y2l0YXRpb24tYm9keS1zdHlsZS1uYW1lIj4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic3R5bGVOYW1lUmVmIi8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvb3B0aW9uYWw+Cis8L2RlZmluZT4KKzxkZWZpbmUgbmFtZT0idGV4dC1ub3Rlcy1jb25maWd1cmF0aW9uLWNvbnRlbnQiIGNvbWJpbmU9ImludGVybGVhdmUiPgorICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0ZXh0OmRlZmF1bHQtc3R5bGUtbmFtZSI+CisgICAgICAgICAgICA8cmVmIG5hbWU9InN0eWxlTmFtZVJlZiIvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L29wdGlvbmFsPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9InRleHQtbm90ZXMtY29uZmlndXJhdGlvbi1jb250ZW50IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idGV4dDptYXN0ZXItcGFnZS1uYW1lIj4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic3R5bGVOYW1lUmVmIi8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvb3B0aW9uYWw+Cis8L2RlZmluZT4KKzxkZWZpbmUgbmFtZT0idGV4dC1ub3Rlcy1jb25maWd1cmF0aW9uLWNvbnRlbnQiIGNvbWJpbmU9ImludGVybGVhdmUiPgorICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0ZXh0OnN0YXJ0LXZhbHVlIj4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibm9uTmVnYXRpdmVJbnRlZ2VyIi8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvb3B0aW9uYWw+Cis8L2RlZmluZT4KKzxkZWZpbmUgbmFtZT0idGV4dC1ub3Rlcy1jb25maWd1cmF0aW9uLWNvbnRlbnQiIGNvbWJpbmU9ImludGVybGVhdmUiPgorICAgIDxyZWYgbmFtZT0iY29tbW9uLW51bS1mb3JtYXQtcHJlZml4LXN1ZmZpeC1hdHRsaXN0Ii8+CisgICAgPG9wdGlvbmFsPgorICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1udW0tZm9ybWF0LWF0dGxpc3QiLz4KKyAgICA8L29wdGlvbmFsPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9InRleHQtbm90ZXMtY29uZmlndXJhdGlvbi1jb250ZW50IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idGV4dDpzdGFydC1udW1iZXJpbmctYXQiPgorICAgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+ZG9jdW1lbnQ8L3ZhbHVlPgorICAgICAgICAgICAgICAgIDx2YWx1ZT5jaGFwdGVyPC92YWx1ZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+cGFnZTwvdmFsdWU+CisgICAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9vcHRpb25hbD4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJ0ZXh0LW5vdGVzLWNvbmZpZ3VyYXRpb24tY29udGVudCIgY29tYmluZT0iaW50ZXJsZWF2ZSI+CisgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9InRleHQ6Zm9vdG5vdGVzLXBvc2l0aW9uIj4KKyAgICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICAgICAgPHZhbHVlPnRleHQ8L3ZhbHVlPgorICAgICAgICAgICAgICAgIDx2YWx1ZT5wYWdlPC92YWx1ZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+c2VjdGlvbjwvdmFsdWU+CisgICAgICAgICAgICAgICAgPHZhbHVlPmRvY3VtZW50PC92YWx1ZT4KKyAgICAgICAgICAgIDwvY2hvaWNlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L29wdGlvbmFsPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9InRleHQtbm90ZXMtY29uZmlndXJhdGlvbi1jb250ZW50IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9InRleHQ6bm90ZS1jb250aW51YXRpb24tbm90aWNlLWZvcndhcmQiPgorICAgICAgICAgICAgPHRleHQvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJ0ZXh0LW5vdGVzLWNvbmZpZ3VyYXRpb24tY29udGVudCIgY29tYmluZT0iaW50ZXJsZWF2ZSI+CisgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJ0ZXh0Om5vdGUtY29udGludWF0aW9uLW5vdGljZS1iYWNrd2FyZCI+CisgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICA8L29wdGlvbmFsPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9ImNvbW1vbi1udW0tZm9ybWF0LXByZWZpeC1zdWZmaXgtYXR0bGlzdCIgY29tYmluZT0iaW50ZXJsZWF2ZSI+CisgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9InN0eWxlOm51bS1wcmVmaXgiPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJzdHJpbmciLz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9vcHRpb25hbD4KKyAgICA8b3B0aW9uYWw+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ic3R5bGU6bnVtLXN1ZmZpeCI+CisgICAgICAgICAgICA8cmVmIG5hbWU9InN0cmluZyIvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L29wdGlvbmFsPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9ImNvbW1vbi1udW0tZm9ybWF0LWF0dGxpc3QiIGNvbWJpbmU9ImludGVybGVhdmUiPgorICAgIDxjaG9pY2U+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ic3R5bGU6bnVtLWZvcm1hdCI+CisgICAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgICAgIDx2YWx1ZT4xPC92YWx1ZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+aTwvdmFsdWU+CisgICAgICAgICAgICAgICAgPHZhbHVlPkk8L3ZhbHVlPgorICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic3RyaW5nIi8+CisgICAgICAgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgICAgIDwvY2hvaWNlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGdyb3VwPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJzdHlsZTpudW0tZm9ybWF0Ij4KKyAgICAgICAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgICAgICAgICA8dmFsdWU+YTwvdmFsdWU+CisgICAgICAgICAgICAgICAgICAgIDx2YWx1ZT5BPC92YWx1ZT4KKyAgICAgICAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJzdHlsZS1udW0tbGV0dGVyLXN5bmMtYXR0bGlzdCIvPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8ZW1wdHkvPgorICAgIDwvY2hvaWNlPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9InN0eWxlLW51bS1sZXR0ZXItc3luYy1hdHRsaXN0IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ic3R5bGU6bnVtLWxldHRlci1zeW5jIj4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYm9vbGVhbiIvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L29wdGlvbmFsPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9InRleHQtbm90ZS1jbGFzcyI+CisgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0ZXh0Om5vdGUtY2xhc3MiPgorICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHZhbHVlPmZvb3Rub3RlPC92YWx1ZT4KKyAgICAgICAgICAgIDx2YWx1ZT5lbmRub3RlPC92YWx1ZT4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgPC9hdHRyaWJ1dGU+Cis8L2RlZmluZT4KKzxkZWZpbmUgbmFtZT0ic3R5bGVOYW1lUmVmIj4KKyAgICA8Y2hvaWNlPgorICAgICAgICA8ZGF0YSB0eXBlPSJOQ05hbWUiLz4KKyAgICAgICAgPGVtcHR5Lz4KKyAgICA8L2Nob2ljZT4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJub25OZWdhdGl2ZUludGVnZXIiPgorICAgIDxkYXRhIHR5cGU9Im5vbk5lZ2F0aXZlSW50ZWdlciIvPgorPC9kZWZpbmU+Cis8ZGVmaW5lIG5hbWU9ImJvb2xlYW4iPgorICAgIDxjaG9pY2U+CisgICAgICAgIDx2YWx1ZT50cnVlPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPmZhbHNlPC92YWx1ZT4KKyAgICA8L2Nob2ljZT4KKzwvZGVmaW5lPgorPGRlZmluZSBuYW1lPSJzdHJpbmciPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPgorPC9kZWZpbmU+Cis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9PcGVuRG9jdW1lbnRTdWJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNmYjE5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL09wZW5Eb2N1bWVudFN1Yl8wLnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzxvZmZpY2U6ZG9jdW1lbnQtc3R5bGVzIHhtbG5zOm9mZmljZT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiB4bWxuczpzdHlsZT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdHlsZToxLjAiIHhtbG5zOnRleHQ9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGV4dDoxLjAiIHhtbG5zOnRhYmxlPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnRhYmxlOjEuMCIgeG1sbnM6ZHJhdz0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkcmF3aW5nOjEuMCIgeG1sbnM6Zm89InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6eHNsLWZvLWNvbXBhdGlibGU6MS4wIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczptZXRhPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm1ldGE6MS4wIiB4bWxuczpudW1iZXI9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZGF0YXN0eWxlOjEuMCIgeG1sbnM6c3ZnPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnN2Zy1jb21wYXRpYmxlOjEuMCIgeG1sbnM6Y2hhcnQ9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6Y2hhcnQ6MS4wIiB4bWxuczpkcjNkPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRyM2Q6MS4wIiB4bWxuczptYXRoPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIiB4bWxuczpmb3JtPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmZvcm06MS4wIiB4bWxuczpzY3JpcHQ9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c2NyaXB0OjEuMCIgeG1sbnM6b29vPSJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2UiIHhtbG5zOm9vb3c9Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L3dyaXRlciIgeG1sbnM6b29vYz0iaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDQvY2FsYyIgeG1sbnM6ZG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL3htbC1ldmVudHMiIG9mZmljZTp2ZXJzaW9uPSIxLjAiPgorIDxvZmZpY2U6c3R5bGVzPgorICA8dGV4dDpub3Rlcy1jb25maWd1cmF0aW9uIHRleHQ6bm90ZS1jbGFzcz0iZW5kbm90ZSIgc3R5bGU6bnVtLWZvcm1hdD0iMSIgdGV4dDpzdGFydC12YWx1ZT0iMCIvPgorIDwvb2ZmaWNlOnN0eWxlcz4KKzwvb2ZmaWNlOmRvY3VtZW50LXN0eWxlcz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2FkZHJlc3NCb29rLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2FkZHJlc3NCb29rLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDkxMGY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvYWRkcmVzc0Jvb2sucm5nCkBAIC0wLDAgKzEsMjQgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIj4KKyAgICAgIDx6ZXJvT3JNb3JlPgorCTxlbGVtZW50IG5hbWU9ImNhcmQiPgorCSAgPHJlZiBuYW1lPSJjYXJkQ29udGVudCIvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+CisKKyAgPGRlZmluZSBuYW1lPSJjYXJkQ29udGVudCI+CisgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKyAgICAgIDx0ZXh0Lz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorCis8L2dyYW1tYXI+CisKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMC5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTUyNmUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMC5ybmcKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRldmljZSI+CisgICAgPGNob2ljZT4KKyAgICAgIDxncm91cD4KKwk8YXR0cmlidXRlIG5hbWU9ImxpbmsiPgorCSAgPHZhbHVlPmV0aGVybmV0PC92YWx1ZT4KKwk8L2F0dHJpYnV0ZT4KKwk8b3B0aW9uYWw+CisJICA8ZWxlbWVudCBuYW1lPSJldGhlcm5ldC1lbGVtZW50Ij4KKwkgICAgPHRleHQvPgorCSAgPC9lbGVtZW50PgorCTwvb3B0aW9uYWw+CisgICAgICA8L2dyb3VwPgorICAgICAgPGdyb3VwPgorCTxhdHRyaWJ1dGUgbmFtZT0ibGluayI+CisJICA8dmFsdWU+c2VyaWFsPC92YWx1ZT4KKwk8L2F0dHJpYnV0ZT4KKwk8b3B0aW9uYWw+CisJICA8ZWxlbWVudCBuYW1lPSJzZXJpYWwtZWxlbWVudCI+CisJICAgIDx0ZXh0Lz4KKwkgIDwvZWxlbWVudD4KKwk8L29wdGlvbmFsPgorICAgICAgPC9ncm91cD4KKyAgICA8L2Nob2ljZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2Nob2ljZTBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExM2ZmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzAueG1sCkBAIC0wLDAgKzEsMiBAQAorPGRldmljZSBsaW5rPSJldGhlcm5ldCI+Cis8L2RldmljZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2Nob2ljZTBfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwYzQ0MWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzEueG1sCkBAIC0wLDAgKzEsMiBAQAorPGRldmljZSBsaW5rPSJzZXJpYWwiPgorPC9kZXZpY2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMF8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjY3ZTBiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMF8yLnhtbApAQCAtMCwwICsxLDMgQEAKKzxkZXZpY2UgbGluaz0iZXRoZXJuZXQiPgorICA8ZXRoZXJuZXQtZWxlbWVudC8+Cis8L2RldmljZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2Nob2ljZTBfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5YWM0YTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzMueG1sCkBAIC0wLDAgKzEsMyBAQAorPGRldmljZSBsaW5rPSJzZXJpYWwiPgorICA8c2VyaWFsLWVsZW1lbnQvPgorPC9kZXZpY2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMF80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGUxYWJjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMF80LnhtbApAQCAtMCwwICsxLDIgQEAKKzxkZXZpY2UgbGluaz0idW5rbm93biI+Cis8L2RldmljZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2Nob2ljZTBfNS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhYzUwZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzUueG1sCkBAIC0wLDAgKzEsMyBAQAorPGRldmljZSBsaW5rPSJldGhlcm5ldCI+CisgIDxzZXJpYWwtZWxlbWVudC8+Cis8L2RldmljZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2Nob2ljZTBfNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNGQxZDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzYueG1sCkBAIC0wLDAgKzEsMyBAQAorPGRldmljZSBsaW5rPSJzZXJpYWwiPgorICA8ZXRoZXJuZXQtZWxlbWVudC8+Cis8L2RldmljZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2Nob2ljZTBfNy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOGY4OWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzcueG1sCkBAIC0wLDAgKzEsMyBAQAorPGRldmljZSBsaW5rPSJldGhlcm5ldCI+CisgIDx1bmtub3duLWVsZW1lbnQvPgorPC9kZXZpY2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jaG9pY2UwXzgueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMF84LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODEwMjI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY2hvaWNlMF84LnhtbApAQCAtMCwwICsxLDMgQEAKKzxkZXZpY2UgbGluaz0idW5rbm93biI+CisgIDx1bmtub3duLWVsZW1lbnQvPgorPC9kZXZpY2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jb21wYXJlMC5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jb21wYXJlMC5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA0NDZjOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2NvbXBhcmUwLnJuZwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PgorPGVsZW1lbnQgbmFtZT0ibnVtYmVyIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgICAgICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgPGF0dHJpYnV0ZSBuYW1lPSJhdHQxIj4KKyAgICAgPHZhbHVlIHR5cGU9ImludGVnZXIiPiAxIDwvdmFsdWU+CisgIDwvYXR0cmlidXRlPgorPC9lbGVtZW50PgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jb21wYXJlMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2NvbXBhcmUwXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNzRiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9jb21wYXJlMF8wLnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzxudW1iZXIgYXR0MT0ieCI+PC9udW1iZXI+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2NvbXBzLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2NvbXBzLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjE3MmMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY29tcHMucm5nCkBAIC0wLDAgKzEsMTc3IEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorPHN0YXJ0PgorICA8cmVmIG5hbWU9ImNvbXBzIi8+Cis8L3N0YXJ0PgorCis8ZGVmaW5lIG5hbWU9InBhY2thZ2UtbmFtZSI+CisgIDx0ZXh0Lz4KKzwvZGVmaW5lPgorCis8ZGVmaW5lIG5hbWU9Imdyb3VwLW5hbWUiPgorICA8dGV4dC8+Cis8L2RlZmluZT4KKworPGRlZmluZSBuYW1lPSJsYW5nIj4KKyAgPHRleHQvPgorPC9kZWZpbmU+CisKKzxkZWZpbmUgbmFtZT0iZGVzY3JpcHRpb24tdGV4dCI+CisgIDx0ZXh0Lz4KKzwvZGVmaW5lPgorCis8ZGVmaW5lIG5hbWU9ImNvbXBzIj4KKyAgPGVsZW1lbnQgbmFtZT0iY29tcHMiPgorICAgIDxvbmVPck1vcmU+CisgICAgICA8cmVmIG5hbWU9Imdyb3VwIi8+CisgICAgPC9vbmVPck1vcmU+CisgICAgPHJlZiBuYW1lPSJncm91cGhpZXJhcmNoeSIvPgorICAgIDxvbmVPck1vcmU+CisgICAgICA8cmVmIG5hbWU9InBhY2thZ2UiLz4KKyAgICA8L29uZU9yTW9yZT4KKyAgPC9lbGVtZW50PgorPC9kZWZpbmU+CisKKzxkZWZpbmUgbmFtZT0iZ3JvdXAiPgorICA8ZWxlbWVudCBuYW1lPSJncm91cCI+CisgICAgPGVsZW1lbnQgbmFtZT0iaWQiPgorICAgICAgPHJlZiBuYW1lPSJncm91cC1uYW1lIi8+CisgICAgPC9lbGVtZW50PgorICAgIDxpbnRlcmxlYXZlPgorICAgICAgPHJlZiBuYW1lPSJuYW1lcyIvPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJkZWZhdWx0Ij4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHZhbHVlPnRydWU8L3ZhbHVlPgorICAgICAgICAgICAgPHZhbHVlPmZhbHNlPC92YWx1ZT4KKyAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPHJlZiBuYW1lPSJkZXNjcmlwdGlvbnMiLz4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9InVzZXJ2aXNpYmxlIj4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHZhbHVlPnRydWU8L3ZhbHVlPgorICAgICAgICAgICAgPHZhbHVlPmZhbHNlPC92YWx1ZT4KKyAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0ibGFuZ29ubHkiPgorCSAgPHJlZiBuYW1lPSJsYW5nIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9pbnRlcmxlYXZlPgorICAgIDxvcHRpb25hbD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Imdyb3VwbGlzdCI+CisgICAgICAgIDx6ZXJvT3JNb3JlPgorCSAgPGVsZW1lbnQgbmFtZT0iZ3JvdXByZXEiPgorCSAgICA8cmVmIG5hbWU9Imdyb3VwLW5hbWUiLz4KKwkgIDwvZWxlbWVudD4KKyAgICAgICAgPC96ZXJvT3JNb3JlPgorICAgICAgICA8emVyb09yTW9yZT4KKwkgIDxlbGVtZW50IG5hbWU9Im1ldGFwa2ciPgorCSAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiPgorCSAgICAgIDxjaG9pY2U+CisJICAgICAgICA8dmFsdWU+ZGVmYXVsdDwvdmFsdWU+CisJICAgICAgICA8IS0tIDx2YWx1ZT5tYW5kYXRvcnk8L3ZhbHVlPiA/PyAtLT4KKwkgICAgICAgIDx2YWx1ZT5vcHRpb25hbDwvdmFsdWU+CisJICAgICAgPC9jaG9pY2U+CisJICAgIDwvYXR0cmlidXRlPgorCSAgICA8cmVmIG5hbWU9InBhY2thZ2UtbmFtZSIvPgorCSAgPC9lbGVtZW50PgorICAgICAgICA8L3plcm9Pck1vcmU+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8ZWxlbWVudCBuYW1lPSJwYWNrYWdlbGlzdCI+CisgICAgICAgIDxvbmVPck1vcmU+CisgICAgICAgICAgPGVsZW1lbnQgbmFtZT0icGFja2FnZXJlcSI+CisJICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisJICAgICAgPGNob2ljZT4KKwkgICAgICAgIDx2YWx1ZT5kZWZhdWx0PC92YWx1ZT4KKwkgICAgICAgIDx2YWx1ZT5tYW5kYXRvcnk8L3ZhbHVlPgorCSAgICAgICAgPHZhbHVlPm9wdGlvbmFsPC92YWx1ZT4KKwkgICAgICA8L2Nob2ljZT4KKwkgICAgPC9hdHRyaWJ1dGU+CisJICAgIDxvcHRpb25hbD4KKwkgICAgICA8YXR0cmlidXRlIG5hbWU9InJlcXVpcmVzIj4KKwkgICAgICAgIDxyZWYgbmFtZT0icGFja2FnZS1uYW1lIi8+CisJICAgICAgPC9hdHRyaWJ1dGU+CisJICAgIDwvb3B0aW9uYWw+CisJICAgIDxyZWYgbmFtZT0icGFja2FnZS1uYW1lIi8+CisJICA8L2VsZW1lbnQ+CisgICAgICAgIDwvb25lT3JNb3JlPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvb3B0aW9uYWw+CisgIDwvZWxlbWVudD4KKzwvZGVmaW5lPgorCis8ZGVmaW5lIG5hbWU9Imdyb3VwaGllcmFyY2h5Ij4KKyAgPGVsZW1lbnQgbmFtZT0iZ3JvdXBoaWVyYXJjaHkiPgorICAgIDxvbmVPck1vcmU+CisgICAgICA8cmVmIG5hbWU9ImNhdGVnb3J5Ii8+CisgICAgPC9vbmVPck1vcmU+CisgIDwvZWxlbWVudD4KKzwvZGVmaW5lPgorCis8ZGVmaW5lIG5hbWU9ImNhdGVnb3J5Ij4KKyAgPGVsZW1lbnQgbmFtZT0iY2F0ZWdvcnkiPgorICAgIDxyZWYgbmFtZT0ibmFtZXMiLz4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8ZWxlbWVudCBuYW1lPSJzdWJjYXRlZ29yaWVzIj4KKyAgICAgICAgPG9uZU9yTW9yZT4KKwkgIDxlbGVtZW50IG5hbWU9InN1YmNhdGVnb3J5Ij4KKwkgICAgPHJlZiBuYW1lPSJwYWNrYWdlLW5hbWUiLz4KKwkgIDwvZWxlbWVudD4KKyAgICAgICAgPC9vbmVPck1vcmU+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKyAgPC9lbGVtZW50PgorPC9kZWZpbmU+CisKKzxkZWZpbmUgbmFtZT0icGFja2FnZSI+CisgIDxlbGVtZW50IG5hbWU9InBhY2thZ2UiPgorICAgIDxlbGVtZW50IG5hbWU9Im5hbWUiPgorICAgICAgPHJlZiBuYW1lPSJwYWNrYWdlLW5hbWUiLz4KKyAgICA8L2VsZW1lbnQ+CisgICAgPGVsZW1lbnQgbmFtZT0iZGVwZW5kZW5jeWxpc3QiPgorICAgICAgPHplcm9Pck1vcmU+CisgICAgICAgIDxlbGVtZW50IG5hbWU9ImRlcGVuZGVuY3kiPgorCSAgPHJlZiBuYW1lPSJwYWNrYWdlLW5hbWUiLz4KKwk8L2VsZW1lbnQ+CisgICAgICA8L3plcm9Pck1vcmU+CisgICAgPC9lbGVtZW50PgorICA8L2VsZW1lbnQ+Cis8L2RlZmluZT4KKworPGRlZmluZSBuYW1lPSJuYW1lcyI+CisgIDxlbGVtZW50IG5hbWU9Im5hbWUiPgorICAgIDxyZWYgbmFtZT0iZGVzY3JpcHRpb24tdGV4dCIvPgorICA8L2VsZW1lbnQ+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9Im5hbWUiPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ4bWw6bGFuZyI+CisgICAgICAgIDxyZWYgbmFtZT0ibGFuZyIvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8cmVmIG5hbWU9ImRlc2NyaXB0aW9uLXRleHQiLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvemVyb09yTW9yZT4KKzwvZGVmaW5lPgorCis8ZGVmaW5lIG5hbWU9ImRlc2NyaXB0aW9ucyI+CisgIDxlbGVtZW50IG5hbWU9ImRlc2NyaXB0aW9uIj4KKyAgICA8cmVmIG5hbWU9ImRlc2NyaXB0aW9uLXRleHQiLz4KKyAgPC9lbGVtZW50PgorICA8emVyb09yTW9yZT4KKyAgICA8ZWxlbWVudCBuYW1lPSJkZXNjcmlwdGlvbiI+CisgICAgICA8YXR0cmlidXRlIG5hbWU9InhtbDpsYW5nIj4KKyAgICAgICAgPHJlZiBuYW1lPSJsYW5nIi8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxyZWYgbmFtZT0iZGVzY3JpcHRpb24tdGV4dCIvPgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9kZWZpbmU+CisKKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2NvbXBzXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvY29tcHNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAxNjhhNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2NvbXBzXzAueG1sCkBAIC0wLDAgKzEsMTc4NzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGNvbXBzPgorPCEtLSAgPG1ldGE+IC0tPgorPCEtLSBNZXRhIGluZm9ybWF0aW9uIHdpbGwgZ28gaGVyZSBldmVudHVhbGx5IC0tPgorPCEtLSAgPC9tZXRhPiAtLT4KKyAgPGdyb3VwPgorICAgIDxpZD5jb3JlPC9pZD4KKyAgICA8bmFtZT5Db3JlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+SsOhZHJvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+R3J1bmRsw6ZnZ2VuZGU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5IYXVwdDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPk7DumNsZW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5Ub3JlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+TMOhZ21hcmtza2VyZmk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5QcmluY2lwYWxlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44Kz44KiPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+7ZW17IusPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+S2plcm5lPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+TsO6Y2xlbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCe0YHQvdC+0LLQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPkdydW5kbMOkZ2dhbmRlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5qC45b+DPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5Li76KaBPC9uYW1lPgorICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+CisgICAgPGRlc2NyaXB0aW9uPlNtYWxsZXN0IHBvc3NpYmxlIGluc3RhbGxhdGlvbjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+TmVqbWVuxaHDrSBtb8W+bsOhIGluc3RhbGFjZTwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+TWluZHN0IG11bGlnZSBpbnN0YWxsYXRpb248L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPktsZWluc3Rtw7ZnbGljaGUgSW5zdGFsbGF0aW9uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5JbnN0YWxhY2nDs24gbG8gbcOhcyBwZXF1ZcOxYSBwb3NpYmxlPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5QbHVzIHBldGl0ZSBpbnN0YWxsYXRpb24gcG9zc2libGU8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPkzDoWdtYXJrcyB1cHBzZXRuaW5nPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5JbnN0YWxsYXppb25lIG1pbmltYTwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+5pyA5L2O5Y+v6IO944Gq44Kk44Oz44K544OI44O844OrPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7qsIDriqXtlZwg7LWc7IaMIOyEpOy5mDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+TWluc3RlIG11bGlnZSBpbnN0YWxsZXJpbmc8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkEgbWFpcyBwZXF1ZW5hIGluc3RhbGHDp8OjbyBwb3Nzw612ZWw8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCc0LjQvdC40LzQsNC70YzQvdC+INCy0L7Qt9C80L7QttC90LDRjyDRg9GB0YLQsNC90L7QstC60LA8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPk1pbnN0YSBtw7ZqbGlnYSBpbnN0YWxsYXRpb248L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfQ04iPuacgOWwj+WuieijhTwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+5pyA5bCP55qE5a6J6KOdPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmFzaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YmFzZXN5c3RlbTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YmFzaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YmRmbHVzaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Y3BpbzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZTJmc3Byb2dzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5lZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZmlsZTwvcGFja2FnZXJlcT4gICAgIAorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5maWxlc3lzdGVtPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nbGliYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z3J1YjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+aGRwYXJtPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5ob3RwbHVnPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5pbml0c2NyaXB0czwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+aXByb3V0ZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+aXB1dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2JkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rZXJuZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtzeW1vb3BzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJnY2M8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYnRlcm1jYXA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxvc2V0dXA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnBhc3N3ZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cHJvY3BzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5yYWlkdG9vbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnJlYWRsaW5lPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5yZWRoYXQtbG9nb3M8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnJlZGhhdC1yZWxlYXNlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5yb290ZmlsZXM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnJwbTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c2V0c2VyaWFsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5zZXR1cDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c3lza2xvZ2Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPlN5c1Zpbml0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij50ZXJtY2FwPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij51dGlsLWxpbnV4PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij52aW0tbWluaW1hbDwvcGFja2FnZXJlcT4KKzwhLS0gdGhlIGZvbGxvd2luZyBhcmUgbmVlZGVkIGZvciBhbmFjb25kYSBwb3N0LWluc3RhbGwgYml0cyAtLT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YXV0aGNvbmZpZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a3VkenU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5saWxvPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5tb3VzZWNvbmZpZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c2hhZG93LXV0aWxzPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5iYXNlPC9pZD4KKyAgICA8bmFtZT5CYXNlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+WsOha2xhZDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPkJhc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5CYXNpczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPkJhc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5CYXNlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+R3J1bm51cjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPkJhc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg5njg7zjgrk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7quLDspIA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5HcnVubnBha2tlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkJhc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QntGB0L3QvtCy0LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5CYXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7ln7rmnKw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7ln7rnpI48L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8ZGVmYXVsdD50cnVlPC9kZWZhdWx0PgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+Y29yZTwvZ3JvdXByZXE+CisgICAgICA8Z3JvdXByZXE+ZGlhbHVwPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmFjbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmFuYWNyb248L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5hcG1kPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hc3BlbGw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmF0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hdHRyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hdXRoY29uZmlnPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+YXV0b2ZzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5iYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YmluZC11dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YnppcDI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmNyb250YWJzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jeXJ1cy1zYXNsLXBsYWluPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5kaGNsaWVudDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZGlmZnV0aWxzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5kb3MydW5peDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmRvc2ZzdG9vbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5kdW1wPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5ldGh0b29sPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5lamVjdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmZic2V0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+ZmluZ2VyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+ZnRwPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z3BtPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+aXJkYS11dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2JkY29uZmlnPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+a2VybmVsLXBjbWNpYS1jczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5rcmI1LXdvcmtzdGF0aW9uPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rdWR6dTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmxmdHA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxoYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bG9ncm90YXRlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5sc29mPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bG9nd2F0Y2g8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxva2tpdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFpbGNhcDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bWFuLXBhZ2VzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5ta2Jvb3RkaXNrPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5tdC1zdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm10b29sczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm10cjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bmV0Y29uZmlnPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bmZzLXV0aWxzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bnNzX2xkYXA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm50c3lzdjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm9wZW5zc2gtY2xpZW50czwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnBhbV9rcmI1PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cGFtX3NtYjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cGFydGVkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cGF4PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5wY2l1dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5waWRlbnRkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5waW5mbzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cXVvdGE8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZGF0ZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cmVkaGF0LWxvZ29zPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVpc2VyZnMtdXRpbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5ycC1wcHBvZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJzaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cnN5bmM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5qZnN1dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnNldHVwdG9vbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnNlbmRtYWlsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5zbG9jYXRlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+c3BlY3NwbzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c3RhcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnN1ZG88L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5zdHVubmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij50YWxrPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+dGNwX3dyYXBwZXJzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij50Y3NoPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij50ZWxuZXQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnRyYWNlcm91dGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnRpbWU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij50aW1lY29uZmlnPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij50bXB3YXRjaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnVwMmRhdGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnV0ZW1wdGVyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+d2lyZWxlc3MtdG9vbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZGlzdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnRjcGR1bXA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5uZXQtc25tcC11dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm9wZW5zc2gtc2VydmVyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+d2dldDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+dW5peDJkb3M8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnVuemlwPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij53aG9pczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+dmltLWNvbW1vbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+dml4aWUtY3JvbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnlwYmluZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+emlwPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5wcmludGluZzwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+CisgICAgPG5hbWU+UHJpbnRpbmcgU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIHRpc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VZHNrcmlmdHN1bmRlcnN0w7h0dGVsc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5EcnVja2VyLVN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgbGEgaW1wcmVzacOzbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgZCZhcG9zO2ltcHJlc3Npb248L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5QcmVudHN0dcOwbmluZ3VyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGxhIHN0YW1wYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuWNsOWIt+OCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyduOyHhCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5Ta3JpdmVyc3TDuHR0ZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBJbXByZXNzw6NvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC/0LXRh9Cw0YLQuDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlV0c2tyaWZ0c3N0w7ZkPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5omT5Y2w5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5YiX5Y2w5pSv5o+0PC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5JbnN0YWxsIHRoZXNlIHRvb2xzIHRvIGVuYWJsZSB0aGUgc3lzdGVtIHRvIHByaW50IG9yIGFjdCBhcyBhIHByaW50IHNlcnZlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPk5haW5zdGFsb3bDoW7DrW0gdMSbY2h0byBuw6FzdHJvasWvIHVtb8W+bsOtdGUgVmHFoWVtdSBwb8SNw610YcSNaSB0aXNrbm91dCBuZWJvIHZ5c3R1cG92YXQgamFrbyB0aXNrb3bDvSBzZXJ2ZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5JbnN0YWxsw6lyIGRpc3NlIHbDpnJrdMO4amVyIGZvciBhdCBsYWRlIHN5c3RlbWV0IHVkc2tyaXZlIGVsbGVyIGZ1bmdlcmUgc29tIHVkc2tyaWZ0c3NlcnZlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPkluc3RhbGxpZXJlbiBTaWUgZGllc2UgVG9vbHMsIHVtIGVzIGRlbSBTeXN0ZW0genUgZXJtw7ZnbGljaGVuIHp1IGRydWNrZW4gb2RlciBhbHMgRHJ1Y2tlci1TZXJ2ZXIgenUgZnVua3Rpb25pZXJlbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkluc3RhbGFyIGVzdGFzIGhlcnJhbWllbnRhcyBwYXJhIGhhYmlsaXRhciBlbCBzaXN0ZW1hIHBhcmEgaW1wcmltaXIgbyBhY3R1YXIgY29tbyB1biBzZXJ2aWRvciBkZSBpbXByZXNpw7NuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+SW5zdGFsbGVyIGNlcyBvdXRpbHMgcG91ciBoYWJpbGl0ZXIgbGUgc3lzdMOobWUgw6AgaW1wcmltZXIgb3UgYWdpciBjb21tZSB1biBzZXJ2ZXVyIGQmYXBvcztpbXByZXNzaW9uLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+U2V0dHUgw75lc3NhIHBha2thIGlubiBlZiDDvsO6IHZpbHQgcHJlbnRhIGXDsGEgc2V0amEgdXBwIHByZW50w75qw7NuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+SW5zdGFsbGFyZSBxdWVzdGkgc3RydW1lbnRpIHBlciBwZXJtZXR0ZXJlIGFsIHNpc3RlbWEgZGkgc3RhbXBhcmUgbyBmdW5nZXJlIGRhIHNlcnZlciBkaSBzdGFtcGEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jgZPjgozjgonjga7jg4Tjg7zjg6vjgpLjgqTjg7Pjgrnjg4jjg7zjg6vjgZfjgabjgrfjgrnjg4bjg6DjgpLljbDliLflj6/og73jgavjgIHlj4jjga/jg5fjg6rjg7Pjg4jjgrXjg7zjg5DjgajjgZfjgaYg5pyJ5Yq544Gr44GX44G+44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7si5zsiqTthZzsl5DshJwg7J247IeEIOqwgOuKpe2VmOqyjCDtlZjqsbDrgpgg7J247IeEIOyEnOuyhOuhnCDquLDriqXtlZjqsowg7ZWY7Iuc66Ck66m0IOydtCDrj4Tqtazrpbwg7ISk7LmY7ZWY7Iut7Iuc7JikLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+SW5zdGFsbGVyIGRpc3NlIHZlcmt0w7h5ZW5lIGZvciDDpSBrdW5uZSBicnVrZSBza3JpdmVyIG9nIMOlIGt1bm5lIHNldHRlIG9wcCBzeXN0ZW1ldCBzb21lIHV0c2tyaWZ0c3RqZW5lci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkluc3RhbGUgZXN0YXMgZmVycmFtZW50YXMgc2UgZGVzZWphciBpbXByaW1pciBjb20gbyBjb21wdXRhZG9yIG91IHF1ZSBlc3RlIGZ1bmNpb25lIGNvbW8gc2Vydmlkb3IgZGUgaW1wcmVzc8Ojby48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCj0YHRgtCw0L3QvtCy0LjRgtC1INGN0YLQuCDQv9Cw0LrQtdGC0YssINGH0YLQvtCx0Ysg0L/QvtC70YPRh9C40YLRjCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0LXRh9Cw0YLQsNGC0Ywg0YTQsNC50LvRiyDQuNC70Lgg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGB0LjRgdGC0LXQvNGDINC60LDQuiDRgdC10YDQstC10YAg0L/QtdGH0LDRgtC4LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+SW5zdGFsbGVyYSBkZXNzYSB2ZXJrdHlnIGbDtnIgYXR0IGzDpXRhIHN5c3RlbWV0IHNrcml2YSB1dCBlbGxlciBhZ2VyYSB1dHNrcmlmdHNzZXJ2ZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7lronoo4Xov5nkupvlt6XlhbfmnaXlkK/nlKjmiZPljbDns7vnu5/miJblhYXlvZPmiZPljbDmnI3liqHlmajnmoTns7vnu5/jgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPuiri+WuieijnemAmeS6m+Wll+S7tu+8jOS7peWVn+eUqOezu+e1seeahOWIl+WNsOWKn+iDveaIlueVtuS9nOS4gOmDqOWIl+WNsOS8uuacjeWZqOOAgjwvZGVzY3JpcHRpb24+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxtZXRhcGtnIHR5cGU9Im9wdGlvbmFsIj5jdXBzPC9tZXRhcGtnPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+NFN1aXRlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5YRnJlZTg2LWZvbnQtdXRpbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmEycHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdob3N0c2NyaXB0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+aHBpanM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5MUFJuZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+dHRmcHJpbnQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnJlZGhhdC1jb25maWctcHJpbnRlcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1zd2l0Y2gtcHJpbnRlcjwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+Y3VwczwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4KKyAgICA8bmFtZT5DdXBzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+Q3VwczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPkNVUFM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5DdXBzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+Q3VwczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPkNvdXBlcyA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5DdXBzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+Q3VwczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCq+ODg+ODlzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPkNVUFM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5DdXBzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+Q3VwczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPkN1cHM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5DdXBzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+Q3VwczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPkN1cHM8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPkN1cHMgcHJpbnRpbmcgc2VydmljZSBhbmQgZHJpdmVycyB0byB1c2UgaXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UaXNrb3bDoSBzbHXFvmJhIEN1cHMgYSBvdmxhZGHEjWUgcHJvIGplasOtIHBvdcW+aXTDrS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPlVkc2tyaWZ0c3RqZW5lc3RlbiBDVVBTIG9nIGRlIGRyaXZlcnJ1dGluZXIgc29tIGJlaMO4dmVzIGZvciBicnVnIGFmIGRlbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPkN1cHMgRHJ1Y2tlcmRpZW5zdCB1bmQgVHJlaWJlciBmw7xyIGRpZSBWZXJ3ZW5kdW5nLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+U2VydmljaW9zIGRlIGltcHJlc2nDs24gY3VwcyB5IGRyaXZlcnMgcGFyYSB1c2FybG8uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5TZXJ2aWNlIGQmYXBvcztpbXByZXNzaW9uIGRlcyBjb3VwZXMgZXQgbGVjdGV1cnMgcG91ciBsJmFwb3M7dXRpbGlzZXIuIDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+Q3VwcyBwcmVudGtlcmZpw7Agb2cgcmVrbGFyIGZ5cmlyIMO+YcOwLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+U2Vydml6aW8gZGkgc3RhbXBhIEN1cHMgZSByZWxhdGl2aSBkcml2ZXIgcGVyIHV0aWxpenphcmxvLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44Kr44OD44OX5Y2w5Yi344K144O844OT44K544Go44Gd44KM44KS5L2/55So44GZ44KL44OJ44Op44Kk44OQ44O8IDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+Q1VQUyDsnbjsh4Qg7ISc67mE7Iqk7JmAIOydtCDshJzruYTsiqTrpbwg7IKs7Jqp7ZWgIOuTnOudvOydtOuyhC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPlV0c2tyaWZ0c3N5c3RlbWV0IEN1cHMgbWVkIGRyaXZlcmUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5TZXJ2acOnbyBkZSBpbXByZXNzw6NvIGN1cHMgZSBjb250cm9sYWRvcmVzIHBhcmEgbyB1dGlsaXphci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCh0LvRg9C20LHQsCDQv9C10YfQsNGC0LggQ3VwcyDQuCDQtNGA0LDQudCy0LXRgNGLINC00LvRjyDQtdC1INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5VdHNrcmlmdHN0asOkbnN0ZW4gQ3VwcyBvY2ggZGUgZHJpdnJ1dGluZXIgc29tIGJlaMO2dnMgZsO2ciBhbnbDpG5kbmluZyBhdiBkZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj5DdXBzIOaJk+WNsOacjeWKoeWPiuaJgOmcgOmpseWKqOeoi+W6j+OAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+Q3VwcyDliJfljbDmnI3li5noiIfopoHkvb/nlKjnmoTpqYXli5XnqIvlvI/jgII8L2Rlc2NyaXB0aW9uPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Y3VwczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Y3Vwcy1kcml2ZXJzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Y3Vwcy1kcml2ZXJzLWhwaWpzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Y3Vwcy1kcml2ZXJzLXBubTJwcGE8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmJhc2UteDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+CisgICAgPG5hbWU+WCBXaW5kb3cgU3lzdGVtPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+WCBXaW5kb3cgU3lzdGVtPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VmluZHVlc3N5c3RlbWV0IFg8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5YIFdpbmRvdyBTeXN0ZW08L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5TaXN0ZW1hIFggV2luZG93PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3lzdMOobWUgWCBXaW5kb3c8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5YIGdsdWdnYWtlcmZpw7A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TaXN0ZW1hIFggV2luZG93PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+WCBXaW5kb3cgU3lzdGVtPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+WCDsnIjrj4TsmrAg7Iuc7Iqk7YWcPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+WDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlNpc3RlbWEgZGUgSmFuZWxhcyBYPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHQuNGB0YLQtdC80LAgWCBXaW5kb3c8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5Gw7Zuc3RlcnN5c3RlbWV0IFg8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj5YIOeql+WPo+ezu+e7nzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPlgg6KaW56qX57O757WxPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5JbnN0YWxsIHRoaXMgZ3JvdXAgb2YgcGFja2FnZXMgdG8gdXNlIHRoZSBiYXNlIGdyYXBoaWNhbCAoWCkgdXNlciBpbnRlcmZhY2UuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UdXRvIHNrdXBpbnUgYmFsw63EjWvFryBuYWluc3RhbHVqdGUgcHJvIHBvdcW+aXTDrSBncmFmaWNrw6lobyAoWCkgdcW+aXZhdGVsc2vDqWhvIHByb3N0xZllZMOtLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+SW5zdGFsbMOpciBkZW5uZSBwYWtrZWdydXBwZSBmb3IgYXQgYnJ1Z2UgZGVuIGdydW5kbMOmZ2dlbmRlIGdyYWZpc2tlIGJydWdlcmdyw6Zuc2VmbGFkZSAoWCkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5JbnN0YWxsaWVyZW4gU2llIGRpZXNlIFBha2V0Z3J1cHBlLCB1bSBkaWUgZ3JhZmlzY2hlIEhhdXB0YmVudXR6ZXJvYmVyZmzDpGNoZSAoWCkgenUgdmVyd2VuZGVuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+SW5zdGFsYXIgZXN0ZSBncnVwbyBkZSBwYXF1ZXRlcyBwYXJhIHVzYXIgbGEgaW50ZXJmYXogZGUgdXN1YXJpbyAoWCkgZ3LDoWZpY2EuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5JbnN0YWxsZXIgY2UgZ3JvdXBlIGRlIHBhcXVldGFnZXMgcG91ciB1dGlsaXNlciBsJmFwb3M7aW50ZXJmYWNlIHV0aWxpc2F0ZXVyIGdyYXBoaXF1ZSBkZSBiYXNlIChYKS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPlNldHR1IMO+ZXNzYSBwYWtrYSBpbm4gZWYgw77DuiB2aWx0IG5vdGEgbXluZHLDpm4gZm9ycml0IChYKS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPkluc3RhbGxhcmUgcXVlc3RvIGdydXBwbyBkaSBwYWNjaGV0dGkgcGVyIHVzYXJlIGwmYXBvcztpbnRlcmZhY2NpYSB1dGVudGUgZ3JhZmljYSAoWCkgZGkgYmFzZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OBruODkeODg+OCseODvOOCuOOBruOCsOODq+ODvOODl+OCkuOCpOODs+OCueODiOODvOODq+OBl+OBpuOAgeWfuuacrOeahOOCsOODqeODleOCo+OCq+ODqyhYKeODpuODvOOCtuODvOOCpOODs+OCv+ODvOODleOCp+OCpOOCueOCkuS9v+eUqOOBl+OBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+6riw67O4IOq3uOuemO2UvSAoWCkg7IKs7Jqp7J6QIOyduO2EsO2OmOydtOyKpOulvCDsgqzsmqntlZjsi5zroKTrqbQg7J20IO2MqO2CpOyngCDqt7jro7nsnYQg7ISk7LmY7ZWY7Iut7Iuc7JikLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+SW5zdGFsbGVyIGRlbm5lIHBha2tlZ3J1cHBlbiBmb3Igw6UgYnJ1a2UgZXQgZ3JhZmlzayBncmVuc2Vzbml0dCAoWCkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5JbnN0YWxlIGVzdGUgZ3J1cG8gZGUgcGFjb3RlcyBwYXJhIHVzYXIgYSBpbnRlcmZhY2UgZ3LDoWZpY2EgYsOhc2ljYSBkZSB1dGlsaXphZG9yIChvIFgpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0KPRgdGC0LDQvdC+0LLQuNGC0LUg0Y3RgtGDINCz0YDRg9C/0L/RgyDQv9Cw0LrQtdGC0L7Qsiwg0YfRgtC+0LHRiyDQv9C+0LvRg9GH0LjRgtGMINCz0YDQsNGE0LjRh9C10YHQutC40Lkg0LjQvdGC0LXRgNGE0LXQudGBINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAoWCk8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPkluc3RhbGxlcmEgZGVubmEgcGFrZXRncnVwcCBmw7ZyIGF0dCBhbnbDpG5kYSBkZXQgZ3J1bmRsw6RnZ2FuZGUgZ3JhZmlza2EgZ3LDpG5zc25pdHRldCAoWCkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7lronoo4Xov5nnu4Tova/ku7bljIXmnaXkvb/nlKjln7rnoYDlm77lvaLljJbnlKjmiLfnlYzpnaIoWCnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPuiri+WuieijnemAmeWAi+Wll+S7tue+pOe1hO+8jOS7peeUqOS+huS9v+eUqOWfuuekjueahOWcluW9oiAoWCkg5L2/55So6ICF5LuL6Z2i44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPnByaW50aW5nPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5hdXRoY29uZmlnLWd0azwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Yml0bWFwLWZvbnRzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Zmlyc3Rib290PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5kZXNrdG9wLWJhY2tncm91bmRzLWJhc2ljPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+ZGVza3RvcC1iYWNrZ3JvdW5kcy1leHRyYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdkbTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm9wZW5zc2gtYXNrcGFzczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm9wZW5zc2gtYXNrcGFzcy1nbm9tZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctZGF0ZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctbmV0d29yazwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctc2VydmljZXM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtY29uZmlnLXNvdW5kY2FyZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctdXNlcnM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtY29uZmlnLXhmcmVlODY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtbG9ndmlld2VyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWNvbmZpZy1wcmludGVyLWd1aTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1zd2l0Y2gtcHJpbnRlci1nbm9tZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1zd2l0Y2htYWlsLWdub21lPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWNvbmZpZy1wYWNrYWdlczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnN3aXRjaGRlc2s8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij51c2VybW9kZS1ndGs8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPlhGcmVlODY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPlh0ZXN0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5YRnJlZTg2LWZvbnQtdXRpbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPlhGcmVlODYtdG9vbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPlhGcmVlODYtdHdtPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5YRnJlZTg2LXhhdXRoPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5YRnJlZTg2LTc1ZHBpLWZvbnRzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5YRnJlZTg2LTEwMGRwaS1mb250czwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+eGluaXRyYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPlhGcmVlODYteGRtPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+dXAyZGF0ZS1nbm9tZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJobi1hcHBsZXQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+V2luZG93TWFrZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij54aXNkbmxvYWQ8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmRpYWx1cDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8ZGVmYXVsdD50cnVlPC9kZWZhdWx0PgorICAgIDxuYW1lPkRpYWx1cCBOZXR3b3JraW5nIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHZ5dMOhxI1lbsOpaG8gcMWZaXBvamVuw60gayBzw610aTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3Igb3BrYWxkdCBvcGtvcGxpbmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5EaWFsdXAgTmV0endlcmsgU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgZGUgcmVkIGRlbCBtYXJjYWRvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBkJmFwb3M7YWNjw6hzIGRpc3RhbnQgYXUgcsOpc2VhdTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlVwcGhyaW5naW5ldHNzdHXDsG5pbmd1cjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIGRpIG5ldHdvcmtpbmcgZGlhbHVwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44OA44Kk44Ok44Or44Ki44OD44OX44ON44OD44OI44Ov44O844Kv44K144Od44O844OIPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+7KCE7ZmU7Jew6rKwIOuEpO2KuOybjO2CuSDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBvcHByaW5ndCBuZXR0dmVyazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBMaWdhw6fDtWVzIFRlbGVmw7NuaWNhczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCj0LTQsNC70LXQvdC90YvQuSDQtNC+0YHRgtGD0L8g0Log0YHQtdGC0Lg8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIHVwcHJpbmdkIHVwcGtvcHBsaW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5ouo5Y+36IGU572R5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5pKl6Jmf57ay6Lev5pSv5o+0PC9uYW1lPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cHBwPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bHJ6c3o8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm1pbmljb208L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnN0YXRzZXJpYWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij53dmRpYWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5pc2RuNGstdXRpbHM8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmdub21lLWRlc2t0b3A8L2lkPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8ZGVmYXVsdD50cnVlPC9kZWZhdWx0PgorICAgIDxuYW1lPkdOT01FIERlc2t0b3AgRW52aXJvbm1lbnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qcm9zdMWZZWTDrSBwcmFjb3Zuw60gcGxvY2h5IEdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+U2tyaXZlYm9yZHNtaWxqw7hldCBHbm9tZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPkdOT01FIERlc2t0b3B1bWdlYnVuZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPkVudG9ybm8gZGUgZXNjcml0b3JpbyBkZSBHTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPkVudmlyb25uZW1lbnQgZGUgYnVyZWF1IEdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+R05PTUUgc2tqw6Fib3LDsGnDsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPkFtYmllbnRlIGRlc2t0b3AgZGkgR05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5HTk9NReODh+OCueOCr+ODiOODg+ODl+eSsOWigzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPkdOT01FIOuNsOyKpO2BrO2DkSDtmZjqsr08L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5Ta3JpdmVib3Jkc21pbGrDuGV0IEdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+QW1iaWVudGUgZGUgVHJhYmFsaG8gR05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QntC60YDRg9C20LXQvdC40LUg0YDQsNCx0L7Rh9C10LPQviDRgdGC0L7Qu9CwIEdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U2tyaXZib3Jkc21pbGrDtm4gR05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj5HTk9NRSDmoYzpnaLnjq/looM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj5HTk9NRSDmoYzpnaLnkrDlooM8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPkdOT01FIGlzIGEgcG93ZXJmdWwsIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSB3aGljaCBpbmNsdWRlcyBhIHBhbmVsLCBkZXNrdG9wLCBzeXN0ZW0gaWNvbnMsIGFuZCBhIGdyYXBoaWNhbCBmaWxlIG1hbmFnZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5HTk9NRSBqZSB2w71rb25uw6kgZ3JhZmlja8OpIHXFvml2YXRlbHNrw6kgcHJvc3TFmWVkw60sIGt0ZXLDqSB6YWhybnVqZSBwYW5lbCwgcHJvc3TFmWVkw60gcHJhY292bsOtIHBsb2NoeSwgc3lzdMOpbW92w6kgaWtvbnkgYSBncmFmaWNrw6lobyBzcHLDoXZjZSBzb3Vib3LFry48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkdub21lIGVyIGVuIHN0w6ZyayBncmFmaXNrIGJydWdlcmdyw6Zuc2VmbGFkZSBzb20gaW5kaG9sZGVyIGV0IHBhbmVsLCBldCBza3JpdmVib3JkLCBzeXN0ZW1pa29uZXIgb2cgZW4gZ3JhZmlzayBmaWxiZWhhbmRsZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5HTk9NRSBpc3QgZWluZSBsZWlzdHVuZ3NzdGFya2VzIGdyYWZpc2NoZXMgQmVudXR6ZXJpbnRlcmZhY2UgbWl0IFBhbmVsLCBEZXNrdG9wLCBTeXN0ZW1zeW1ib2xlbiB1bmQgZ3JhZmlzY2hlbSBGZW5zdGVybWFuYWdlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkdOT01FIGVzIHVuYSBpbnRlcmZheiBncsOhZmljYSBkZSB1c3VhcmlvIHBvdGVudGUgcXVlIGluY2x1eWUgdW4gcGFuZWwsIHVuIGVzY3JpdG9yaW8sIGljb25vcyBkZWwgc2lzdGVtYSB5IGdlc3RvcmVzIGRlIGZpY2hlcm9zIGdyw6FmaWNvcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPkdOT01FIGVzdCB1bmUgaW50ZXJmYWNlIHV0aWxpc2F0ZXVyIGdyYXBoaXF1ZSBwdWlzc2FudGUgcXVpIGNvbXByZW5kIHVuIHRhYmxlYXUgZGUgYm9yZCwgdW4gYnVyZWF1LCBkZXMgaWPDtG5lcyBkZSBzeXN0w6htZSBldCB1biBnZXN0aW9ubmFpcmUgZGUgZmljaGllcnMgZ3JhcGhpcXVlLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+R05PTUUgZXIgw7ZmbHVndCBteW5kcsOmbnQgdmlubnV1bWh2ZXJmaSBzZW0gaW5uaWhlbGR1ciBzcGphbGQsIHNrasOhYm9yw7AsIGtlcmZpc3Ntw6FteW5kaXIgb2cgbXluZHLDpm5hbm4gc2tyw6FhcnN0asOzcmEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5HTk9NRSDDqCB1bmEgcG90ZW50ZSBpbnRlcmZhY2NpYSBncmFmaWNhIHV0ZW50ZSBjaGUgaW5jbHVkZSB1biBwYW5uZWxsbywgdW4gZGVza3RvcCwgaWNvbmUgZGkgc2lzdGVtYSBlIHVuIGZpbGUgbWFuYWdlciBncmFmaWNvLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+R05PTUXjga/jgIHjg5Hjg43jg6vjgIHjg4fjgrnjgq/jg4jjg4Pjg5fjgIHjgrfjgrnjg4bjg6DjgqLjgqTjgrPjg7PjgIHlj4rjgbPjgrDjg6njg5XjgqPjgqvjg6sg44OV44Kh44Kk44Or44Oe44ON44K444Oj44KS5ZCr44KA5by35Yqb44Gq44Kw44Op44OV44Kj44Kr44Or44Om44O844K244O844Kk44Oz44K/44O844OV44Kn44Kk44K544Gn44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj5HTk9NReydgCDqsJXroKXtlZwg6re4656Y7ZS9IOyCrOyaqeyekCDsnbjthLDtjpjsnbTsiqTroZzshJwg7Yyo64SQLCDrjbDsiqTtgaztg5EsIOyLnOyKpO2FnCDslYTsnbTsvZjqs7wg6re4656Y7ZS9IO2MjOydvCDqtIDrpqzsnpAg6riw64ql7J2EIOqwluy2lOqzoCDsnojsirXri4jri6QuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Im5vIj5HTk9NRSBlciBldCBrcmFmdGlnLCBncmFmaXNrIGJydWtlcmdyZW5zZXNuaXR0IHNvbSBpbmtsdWRlcmVyIGV0IHBhbmVsLCBza3JpdmVib3JkLCBzeXN0ZW1pa29uZXIgb2cgZW4gZ3JhZmlzayBmaWxow6VuZHRlcmVyPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5HTk9NRSBpcyBhIHBvd2VyZnVsLCBncmFwaGljYWwgdXNlciBpbnRlcmZhY2Ugd2hpY2ggaW5jbHVkZXMgYSBwYW5lbCwgZGVza3RvcCwgc3lzdGVtIGljb25zLCBhbmQgYSBncmFwaGljYWwgZmlsZSBtYW5hZ2VyLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+R05PTUUgLSDRjdGC0L4g0LzQvtGJ0L3Ri9C5INCz0YDQsNGE0LjRh9C10YHQutC40Lkg0LjQvdGC0LXRgNGE0LXQudGBINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjywg0LrQvtGC0L7RgNGL0Lkg0LLQutC70Y7Rh9Cw0LXRgiDQv9Cw0L3QtdC70YwsINGA0LDQsdC+0YfQuNC5INGB0YLQvtC7LCDRgdC40YHRgtC10LzQvdGL0LUg0L/QuNC60YLQvtCz0YDQsNC80LzRiyDQuCDQs9GA0LDRhNC40YfQtdGB0LrQuNC5INC80LXQvdC10LTQttC10YAg0YTQsNC50LvQvtCyLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+R05PTUUgw6RyIGV0dCBrcmFmdGZ1bGx0LCBncmFmaXNrdCBhbnbDpG5kYXJncsOkbnNzbml0dCBzb20gaW5uZWjDpWxsZXIgZW4gcGFuZWwsIGV0dCBza3JpdmJvcmQsIHN5c3RlbWlrb25lciBvY2ggZW4gZ3JhZmlzayBmaWxoYW50ZXJhcmUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj5HTk9NRSDmmK/kuIDkuKrlip/og73lvLrlpKfnmoTlm77lvaLljJbnlKjmiLfnlYzpnaLvvIzlroPljIXmi6zkuIDkuKrpnaLmnb/jgIEg5qGM6Z2i44CB57O757uf5Zu+5qCH44CB5Lul5Y+K5Zu+5b2i5YyW5paH5Lu2566h55CG5Zmo44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj5HTk9NRSDmmK/kuIDlgIvlip/og73lvLflpKfnmoTlnJblvaLkvb/nlKjogIXku4vpnaLvvIzlroPlkKvmnInkuIDlgIvpnaLmnb/jgIHmoYzpnaLjgIHns7vntbHlnJbnpLog5Lul5Y+K5LiA5YCL5ZyW5b2i55qE5qqU5qGI566h55CG5ZOh44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2UteDwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jb250cm9sLWNlbnRlcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZGVza3RvcC1maWxlLXV0aWxzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+ZW9nPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+ZmlsZS1yb2xsZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5nY29uZi1lZGl0b3I8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5nZWRpdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdmdHA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5naW1wLXByaW50LXV0aWxzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nbm9tZS1hcHBsZXRzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z25vbWUtYXVkaW88L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5nbm9tZS1tZWRpYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z25vbWUtcGFuZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdub21lLXNlc3Npb248L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdub21lLXNwZWxsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z25vbWUtc3lzdGVtLW1vbml0b3I8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdub21lLXRlcm1pbmFsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z25vbWUtdXNlci1kb2NzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nbm9tZS11dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdub21lLXZmcy1leHRyYXM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5nbm9tZS12ZnMyLWV4dHJhczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdxdmlldzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmd0ay1lbmdpbmVzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z3RrMi1lbmdpbmVzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z2d2PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bXRyLWd0azwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm1hZ2ljZGV2PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+aHdicm93c2VyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5tZXRhY2l0eTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bmF1dGlsdXM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnN3aXRjaGRlc2stZ25vbWU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnllbHA8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmtkZS1kZXNrdG9wPC9pZD4KKyAgICA8bmFtZT5LREUgRGVza3RvcCBFbnZpcm9ubWVudDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlByb3N0xZllZMOtIHByYWNvdm7DrSBwbG9jaHkgS0RFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+U2tyaXZlYm9yZHNtaWxqw7hldCBLREU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5LREUgRGVza3RvcHVtZ2VidW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+RW50b3JubyBkZSBlc2NyaXRvcmlvIHBhcmEgS0RFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+RW52aXJvbm5lbWVudCBkZSBidXJlYXUgS0RFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+S0RFIHNrasOhYm9yw7Bpw7A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5BbWJpZW50ZSBkZXNrdG9wIEtERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPktEReODh+OCueOCr+ODiOODg+ODl+eSsOWigzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPktERSDrjbDsiqTtgaztg5Eg7ZmY6rK9PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U2tyaXZlYm9yZHNtaWxqw7hldCBLREU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5BbWJpZW50ZSBkZSBUcmFiYWxobyBLREU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QntC60YDRg9C20LXQvdC40LUg0YDQsNCx0L7Rh9C10LPQviDRgdGC0L7Qu9CwIEtERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlNrcml2Ym9yZHNtaWxqw7ZuIEtERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPktERSDmoYzpnaLnjq/looM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj5LREUg5qGM6Z2i55Kw5aKDPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5LREUgaXMgYSBwb3dlcmZ1bCwgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIHdoaWNoIGluY2x1ZGVzIGEgcGFuZWwsIGRlc2t0b3AsIHN5c3RlbSBpY29ucywgYW5kIGEgZ3JhcGhpY2FsIGZpbGUgbWFuYWdlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPktERSBqZSB2w71rb25uw6kgZ3JhZmlja8OpIHXFvml2YXRlbHNrw6kgcHJvc3TFmWVkw60sIGt0ZXLDqSB6YWhybnVqZSBwYW5lbCwgcHJvc3TFmWVkw60gcHJhY292bsOtIHBsb2NoeSwgc3lzdMOpbW92w6kgaWtvbnkgYSBncmFmaWNrw6lobyBzcHLDoXZjZSBzb3Vib3LFry48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPktERSBlciBlbiBzdMOmcmssIGdyYWZpc2sgYnJ1Z2VyZ3LDpm5zZWZsYWRlIHNvbSBpbmRob2xkZXIgZXQgcGFuZWwsIGV0IHNrcml2ZWJvcmQsIHN5c3RlbWlrb25lciBvZyBlbiBncmFmaXNrIGZpbGJlaGFuZGxlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPktERSBpc3QgZWluZSBsZWlzdHVuZ3NzdGFya2VzIGdyYWZpc2NoZXMgQmVudXR6ZXJpbnRlcmZhY2UgbWl0IFBhbmVsLCBEZXNrdG9wLCBTeXN0ZW1zeW1ib2xlbiB1bmQgZ3JhZmlzY2hlbSBGZW5zdGVybWFuYWdlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPktERSBlcyB1bmEgaW50ZXJmYXogZGUgdXN1YXJpbyBncsOhZmljYSB5IHBvdGVudGUgcXVlIGluY2x1eWUgdW4gcGFuZWwsIHVuIGVzY3JpdG9yaW8sIGljb25vcyBkZWwgc2lzdGVtYSB5IHVuIGdlc3RvciBncsOhZmljbyBkZSBmaWNoZXJvcy4gPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5LREUgZXN0IHVuZSBpbnRlcmZhY2UgdXRpbGlzYXRldXIgZ3JhcGhpcXVlIHB1aXNzYW50ZSBjb21wcmVuYW50IHVuIHRhYmxlYXUgZGUgYm9yZCwgdW4gYnVyZWF1LCBkZXMgaWPDtG5lcyBkZSBzeXN0w6htZSBldCB1biBnZXN0aW9ubmFpcmUgZGUgZmljaGllciBncmFwaGlxdWUuIDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+S0RFIGVyIMO2Zmx1Z3QgbXluZHLDpm50IHZpbm51dW1odmVyZmkgc2VtIGlubmloZWxkdXIgc3BqYWxkLCBza2rDoWJvcsOwLCBrZXJmaXNzbcOhbXluZGlyIG9nIG15bmRyw6ZuYW5uIHNrcsOhYXJzdGrDs3JhLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+S0RFIMOoIHVuYSBwb3RlbnRlIGludGVyZmFjY2lhIGdyYWZpY2EgdXRlbnRlIGNoZSBpbmNsdWRlIHVuIHBhbm5lbGxvLCB1biBkZXNrdG9wLCBpY29uZSBkaSBzaXN0ZW1hIGUgdW4gZmlsZSBtYW5hZ2VyIGdyYWZpY28uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj5LREXjga/jgIHjg5Hjg43jg6vjgIHjg4fjgrnjgq/jg4jjg4Pjg5fjgIHjgrfjgrnjg4bjg6DjgqLjgqTjgrPjg7Plj4rjgbPjgrDjg6njg5XjgqPjgqvjg6vjg5XjgqHjgqTjg6sg44Oe44ON44K444Oj44KS5ZCr44KA5by35Yqb44Gq44Kw44Op44OV44Kj44Kr44Or44Om44O844K244O844Kk44Oz44K/44O844OV44Kn44Kk44K544Gn44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj5LREXripQg6rCV66Cl7ZWcIOq3uOuemO2UvSDsgqzsmqnsnpAg7J247YSw7Y6Y7J207Iqk66Gc7IScIO2MqOuEkCwg642w7Iqk7YGs7YORLCDsi5zsiqTthZwg7JWE7J207L2Y6rO8IOq3uOuemO2UvSDtjIzsnbwg6rSA66as7J6QIOq4sOuKpeydhCDqsJbstpTqs6Ag7J6I7Iq164uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+S0RFIGVyIGV0IGtyYWZ0aWcsIGdyYWZpc2sgYnJ1a2VyZ3JlbnNlc25pdHQgc29tIGlua2x1ZGVyZXIgZXQgcGFuZWwsIHNrcml2ZWJvcmQsIHN5c3RlbWlrb25lciBvZyBlbiBncmFmaXNrIGZpbGjDpW5kdGVyZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5PIEtERSDDqSB1bWEgaW50ZXJmYWNlIGdyw6FmaWNhIHBvZGVyb3NhIHF1ZSBpbmNsdWkgdW0gcGFpbmVsLCB1bSBhbWJpZW50ZSBkZSB0cmFiYWxobywgb3Mgw61jb25lcyBkZSBzaXN0ZW1hIGUgdW0gZ2VzdG9yIGRlIGZpY2hlaXJvcyBncsOhZmljby48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPktERSDRjdGC0L4g0LzQvtGJ0L3Ri9C5INCz0YDQsNGE0LjRh9C10YHQutC40Lkg0LjQvdGC0LXRgNGE0LXQudGBLCDQstC60LvRjtGH0LDRjtGJ0LjQuSDQsiDRgdC10LHRjyDQv9Cw0L3QtdC70Ywg0L/RgNC40LvQvtC20LXQvdC40LksINGA0LDQsdC+0YfQuNC5INGB0YLQvtC7LCDRgdC40YHRgtC10LzQvdGL0LUg0LjQutC+0L3QutC4LCDQuCDQs9GA0LDRhNC40YfQtdGB0LrQuNC5INC80LXQvdC10LTQttC10YAg0YTQsNC50LvQvtCyLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+S0RFIMOkciBldHQga3JhZnRmdWxsdCwgZ3JhZmlza3QgYW52w6RuZGFyZ3LDpG5zc25pdHQgc29tIGlubmVow6VsbGVyIGVuIHBhbmVsLCBldHQgc2tyaXZib3JkLCBzeXN0ZW1pa29uZXIgb2NoIGVuIGdyYWZpc2sgZmlsaGFudGVyYXJlLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+S0RFIOaYr+S4gOS4quWKn+iDveW8uuWkp+eahOWbvuW9ouWMlueUqOaIt+eVjOmdouOAguWug+WMheaLrOmdouadv+OAgeahjOmdouOAgSDns7vnu5/lm77moIfjgIHku6Xlj4rlm77lvaLljJbmlofku7bnrqHnkIblmajjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPktERSDmmK/kuIDlgIvlip/og73lvLflpKfnmoTlnJblvaLkvb/nlKjogIXku4vpnaLvvIzlroPlkKvmnInkuIDlgIvpnaLmnb/jgIHmoYzpnaLjgIHns7vntbHlnJbnpLog5Lul5Y+K5LiA5YCL5ZyW5b2i55qE5qqU5qGI566h55CG5ZOh44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2UteDwvZ3JvdXByZXE+CisgICAgICA8Z3JvdXByZXE+ZGlhbHVwPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5hcms8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmFydHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5hdXRvcnVuPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5mYW08L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmh0ZGlnPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmthYm9vZGxlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+a2FtZXJhPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmthcm08L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtjYWxjPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rY2hhcnNlbGVjdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5rZGVhZGRvbnMta2F0ZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5rZGVhZGRvbnMtbm9hdHVuPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmtkZWFkZG9ucy1rb25xdWVyb3I8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rZGVhZGRvbnMta2lja2VyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+a2RlYWRkb25zLWtvbnF1ZXJvcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5rZGVhZG1pbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RlYXJ0d29yazwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmtkZWFydHdvcmstbG9jb2xvcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RlYXJ0d29yay1zY3JlZW5zYXZlcnM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rZGVtdWx0aW1lZGlhLWFydHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rZGVtdWx0aW1lZGlhLWtmaWxlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rZGVwYXNzd2Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rZGVwaW08L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtkZWJhc2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtkZXNzaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RmPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+a2RpY3Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rZWRpdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmtkZWFkZG9ucy1rbmV3c3RpY2tlcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RldXRpbHMtbGFwdG9wPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rZmxvcHB5PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rZmlsZS1wZGY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtmaWxlLXBuZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2hleGVkaXQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtqb3RzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rbGpldHRvb2w8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtscHJmYXg8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtscHE8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmttaXg8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rcGY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtyZWdleHBlZGl0b3I8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtzY2Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtzbmFwc2hvdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a3RpbWVyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bGlzYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c3dpdGNoZGVzay1rZGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnhpbmV0ZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmtwcHA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rcHBwbG9hZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmtnaG9zdHZpZXc8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rZHZpPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+a2ljb25lZGl0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+a21haWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5raXQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5rb25jZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmtwYWludDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmt1aWNrc2hvdzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmt2aWV3PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+a3ZpZXdzaGVsbDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+Z3JhcGhpY2FsLWludGVybmV0PC9pZD4KKyAgICA8bmFtZT5HcmFwaGljYWwgSW50ZXJuZXQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5HcmFmaWNrw70gSW50ZXJuZXQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5HcmFmaXNrIGludGVybmV0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+R3JhZmlzY2hlcyBJbnRlcm5ldDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPkludGVybmV0IGdyw6FmaWNhPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+SW50ZXJuZXQgZ3JhcGhpcXVlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+TXluZHLDpm4gSW50ZXJuZXR0w7NsPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+SW50ZXJuZXQgZ3JhZmljbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCsOODqeODleOCo+OCq+ODq+OCpOODs+OCv+ODvOODjeODg+ODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuq3uOuemO2UvSDsnbjthLDrhLc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5HcmFmaXNrIEludGVybmV0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+SW50ZXJuZXQgZW0gTW9kbyBHcsOhZmljbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCT0YDQsNGE0LjRh9C10YHQutC40LUg0YHRgNC10LTRgdGC0LLQsCDQmNC90YLQtdGA0L3QtdGCPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+R3JhZmlza3QgSW50ZXJuZXQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7lm77lvaLljJbkupLogZTnvZE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7lnJblvaLljJbntrLpmpvntrLot688L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPlRoaXMgZ3JvdXAgaW5jbHVkZXMgZ3JhcGhpY2FsIGVtYWlsLCBXZWIsIGFuZCBjaGF0IGNsaWVudHMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UYXRvIHNrdXBpbmEgb2JzYWh1amUgZ3JhZmlja8OpIGtsaWVudHkgcHJvIGVtYWlsLCBXV1cgYSBjaGF0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+RGVubmUgZ3J1cHBlIGluZGVob2xkZXIgZ3JhZmlza2Uga2xpZW50ZXIgZm9yIGUtcG9zdCwgbmV0bMOmc25pbmcgb2cgY2hhdC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPkRpZXNlIEdydXBwZSB1bWZhc3N0IGdyYWZpc2NoZSBFLU1haWwsIFdlYiB1bmQgQ2hhdC1DbGllbnRzLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+RWwgZ3J1cG8gaW5jbHV5ZSBjbGllbnRlcyBncsOhZmljb3MgZGUgY29ycmVvIGVsZWN0csOzbmljbywgV2ViIHkgY2hhdC4gPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5DZSBncm91cGUgY29tcHJlbmQgbGUgY291cnJpZXIgw6lsZWN0cm9uaXF1ZSBncmFwaGlxdWUsIFdlYiBldCBsZXMgY2xpZW50cyBkZSBjb252ZXJzYXRpb24uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj7DnmVzc2kgaMOzcHVyIGlubmloZWxkdXIgbXluZHLDpm4gcMOzc3QsIHZlZiBvZyBzcGphbGxmb3JyaXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5RdWVzdG8gZ3J1cHBvIGluY2x1ZGUgZS1tYWlsLCBXZWIgZSBjaGF0IGNsaWVudCBncmFmaWNpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44GT44Gu44Kw44Or44O844OX44Gr44Gv44CB44Kw44Op44OV44Kj44Kr44OrZW1haWzjgIFXZWLjgIHlj4rjgbPjg4Hjg6Pjg4Pjg4jjgq/jg6njgqTjgqLjg7Pjg4jjgYwg5ZCr44G+44KM44Gm44GE44G+44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7snbQg6re466O57JeQ64qUIOq3uOuemO2UvSDsnbTrqZTsnbwsIOybuSwg7LGE7YyFIO2BtOudvOydtOyWuO2KuOqwgCDtj6ztlajrkJjslrQg7J6I7Iq164uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGVubmUgZ3J1cHBlbiBpbmtsdWRlcmVyIGdyYWZpc2tlIGVwb3N0LCB3ZWIgb2cgY2hhdC1rbGllbnRlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGUgZ3J1cG8gY29udMOpbSBjbGllbnRlcyBncsOhZmljc28gZGUgZW1haWwsIFdlYiBlIGNoYXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0LAg0LPRgNGD0L/Qv9CwINCy0LrQu9GO0YfQsNC10YIg0LPRgNCw0YTQuNGH0LXRgdC60LjQtSDQutC70LjQtdC90YLRiyDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YssINCS0LXQsSDQuCDRh9Cw0YLQsC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPkRlbm5hIGdydXBwIGlua2x1ZGVyYXIgZ3JhZmlza2Ega2xpZW50ZXIgZsO2ciBlLXBvc3QsIHdlYmJzdXJmYW5kZSBvY2ggY2hhdHQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7ov5nnu4Tova/ku7bljIXljIXlkKvlm77lvaLljJbnlLXlrZDpgq7ku7bjgIHkuIfnu7TnvZHlkozogYrlpKnlrqLmiLfjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPumAmeWAi+e+pOe1hOWMheaLrOWcluW9oueahOmbu+WtkOmDteS7tuOAgee2sumggeS7peWPiuiBiuWkqeeUqOaItuerr+OAgjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmJhbHNhPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+ZXZvbHV0aW9uPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z2FpbTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5nYWxlb248L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+Z25vbWVtZWV0aW5nPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bW96aWxsYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm1vemlsbGEtcHNtPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPm1vemlsbGEtY2hhdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm1vemlsbGEtbWFpbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5wYW48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij54Y2hhdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+aW5kZXhodG1sPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmxpY3Eta2RlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmtzaXJjPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmttYWlsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmtvcm48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a25vZGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a2l0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnF1YW50YTwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+dGV4dC1pbnRlcm5ldDwvaWQ+CisgICAgPG5hbWU+VGV4dC1iYXNlZCBJbnRlcm5ldDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlRleHRvdsO9IEludGVybmV0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VGVrc3RiYXNlcmV0IGludGVybmV0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+VGV4dGJhc2llcnRlcyBJbnRlcm5ldDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPkludGVybmV0IGJhc2FkYSBlbiB0ZXh0bzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPkludGVybmV0IGJhc8OpIHN1ciB0ZXh0ZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkludGVybmV0IG1lw7AgdGV4dGFza2lsdW08L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5JbnRlcm5ldCB0ZXh0LWJhc2VkPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44OG44Kt44K544OI44OZ44O844K544Gu44Kk44Oz44K/44O844ON44OD44OIPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+7YWN7Iqk7Yq4Leq4sOuwmCDsnbjthLDrhLc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5UZWtzdGJhc2VydGUgSW50ZXJuZXR0LXByb2dyYW1tZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5JbnRlcm5ldCBlbSBtb2RvIHRleHRvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KLQtdGB0YLQvtCy0YvQtSDRgdGA0LXQtNGB0YLQstCwINCY0L3RgtC10YDQvdC10YI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5UZXh0YmFzZXJhdCBJbnRlcm5ldDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuWfuuS6juaWh+acrOeahOS6kuiBlOe9kTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuaWh+Wtl+eCuuS4u+eahOe2sumam+e2sui3rzwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhpcyBncm91cCBpbmNsdWRlcyB0ZXh0LWJhc2VkIGVtYWlsLCBXZWIsIGFuZCBjaGF0IGNsaWVudHMuICBUaGVzZSBhcHBsaWNhdGlvbnMgZG8gbm90IHJlcXVpcmUgdGhlIFggV2luZG93IFN5c3RlbS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPlRhdG8gc2t1cGluYSBvYnNhaHVqZSB0ZXh0b3bDqSBrbGllbnR5IHBybyBlbWFpbCwgV1dXIGEgY2hhdC4gVHl0byBhcGxpa2FjZSBuZXBvdMWZZWJ1asOtIFggV2luZG93IFN5c3RlbS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRlbm5lIGdydXBwZSBpbmRlaG9sZGVyIHRla3N0LWJhc2VyZWRlIGtsaWVudGVyIGZvciBlLXBvc3QsIG5ldGzDpnNuaW5nIG9nIGNoYXQuIERpc3NlIHByb2dyYW1tZXIga3LDpnZlciBpa2tlIHZpbmR1ZXNzeXN0ZW1ldCBYLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+RGllc2UgR3J1cHBlIGVudGjDpGx0IHRleHQtYmFzaWVydGUgRS1NYWlsLCBXZWIgdW5kIENoYXQtQ2xpZW50cy4gRGllc2UgQW53ZW5kdW5nZW4gYmVuw7Z0aWdlbiBkYXMgWCBXaW5kb3cgU3lzdGVtIG5pY2h0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+RXN0ZSBncnVwbyBpbmNsdXllIGNvcnJlbyBlbGVjdHLDs25pY28gZW4gZm9ybWEgZGUgdGV4dG8sIFdlYiB5IGNsaWVudGVzIGRlIGNoYXRzLiBFc3RhcyBhcGxpY2FjaW9uZXMgbm8gbmVjZXNpdGFuIGVsIHNpc3RlbWEgWCBXaW5kb3cuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5DZSBncm91cGUgY29udGllbnQgdW5lIG1lc3NhZ2VyaWUgw6lsZWN0cm9uaXF1ZSBlbiBtb2RhbGl0w6kgdGV4dGUgZXQgZGVzIGNsaWVudHMgZGUgY29udmVyc2F0aW9uLiBDZXMgYXBwbGljYXRpb25zIG5lIG7DqWNlc3NpdGVudCBwYXMgbGUgc3lzdMOobWUgWCBXaW5kb3cuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj7DnmVzc2kgaMOzcHVyIGlubmloZWxkdXIgcMOzc3QsIHZlZiBvZyBzcGphbGxmb3JyaXQgbWXDsCB0ZXh0YXNraWx1bS4gw55lc3NpIHTDs2wgw751cmZhIGVra2kgWCBnbHVnZ2FrZXJmacOwLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+UXVlc3RvIGdydXBwbyBpbmNsdWRlIGUtbWFpbCwgV2ViIGUgY2hhdCBjbGllbnQgdGV4dC1iYXNlZC4gVGFsaSBhcHBsaWNhemlvbmkgbm9uIHJpY2hpZWRvbm8gaWwgc2lzdGVtYSBYIFdpbmRvdy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OBruOCsOODq+ODvOODl+OBq+OBr+OAgeODhuOCreOCueODiOODmeODvOOCueOBrmVtYWlsLCBXZWIs5Y+K44Gz44OB44Oj44OD44OI44Kv44Op44Kk44Ki44Oz44OI44GM5ZCr44G+44KM44GmIOOBhOOBvuOBmeOAguOBk+OCjOOCieOBruOCouODl+ODquOCseODvOOCt+ODp+ODs+OBr1ggV2luZG93IFN5c3RlbeOCkuW/heimgeOBqOOBl+OBvuOBm+OCk+OAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IOq3uOumheyXkOuKlCDthY3siqTtirgt6riw67CYIOydtOuplOydvCwg7Ju5LCDssYTtjIUg7YG065287J207Ja47Yq46rCAIO2PrO2VqOuQmOyWtCDsnojsirXri4jri6QuIFgg7JyI64+E7JqwIOyLnOyKpO2FnOydtCDsl4bslrTrj4Qg7J6R64+Z7ZWp64uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGVubmUgZ3J1cHBlbiBpbm5laG9sZGVyIHRla3N0YmFzZXJ0ZSBlcG9zdCwgd2ViIG9nIGNoYXQta2xpZW50ZXIuIERpc3NlIHByb2dyYW1tZW5lIHRyZW5nZXIgaWtrZSBYLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJwdCI+RXN0ZSBncnVwbyBpbmNsdWkgbyBlbWFpbCBlbSBtb2RvIHRleHRvLCBhIFdlYiBlIG9zIGNsaWVudGVzIGRlIGNvbnZlcnNhw6fDo28uIEVzdGFzIGFwbGljYcOnw7VlcyBuw6NvIG5lY2Vzc2l0YW0gZG8gWCBXaW5kb3cgU3lzdGVtLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0K3RgtCwINCz0YDRg9C/0L/QsCDRgdC+0LTQtdGA0LbQuNGCINGC0LXQutGB0YLQvtCy0YvQtSDQv9GA0LjQu9C+0LbQtdC90LjRjyDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLQvtC5LCDQuNC90YLQtdGA0L3QtdGC0L7QvCwg0LAg0YLQsNC60LbQtSDRh9Cw0YIt0LrQu9C40LXQvdGC0YsuINCf0YDQuNC70L7QttC10L3QuNGPINCyINGN0YLQvtC5INCz0YDRg9C/0L/QtSDQvdC1INGC0YDQtdCx0YPRjtGCIFggV2luZG93IFN5c3RlbTwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVubmEgZ3J1cHAgaW5rbHVkZXJhciB0ZXh0LWJhc2VyYWRlIGtsaWVudGVyIGbDtnIgZS1wb3N0LCB3ZWJic3VyZmFuZGUgb2NoIGNoYXR0LiBEZXNzYSBwcm9ncmFtIGtyw6R2ZXIgaW50ZSBmw7Zuc3RlcnN5c3RlbWV0IFguPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7ov5nnu4Tova/ku7bljIXljIXlkKvln7rkuo7mlofmnKznmoTnlLXlrZDpgq7ku7bjgIHkuIfnu7TnvZHjgIHlkozogYrlpKnlrqLmiLfnmoTova/ku7bljIXjgIIg6L+Z5Lqb5bqU55So56iL5bqP5LiN6KaB5rGCIFgg56qX5Y+j57O757uf44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7pgJnlgIvnvqTntYTljIXmi6zmloflrZfngrrkuLvnmoTpm7vlrZDpg7Xku7bjgIHntrLpoIHoiIfogYrlpKnnlKjmiLbnq6/jgIIg6YCZ5Lqb5oeJ55So56iL5byPIOS4puS4jemcgOimgSBYIOimlueql+ezu+e1seOAgjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5mZXRjaG1haWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+ZXBpYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5seW54PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bXV0dDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5uY2Z0cDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5waW5lPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+c2xybjwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+c291bmQtYW5kLXZpZGVvPC9pZD4KKyAgICA8bmFtZT5Tb3VuZCBhbmQgVmlkZW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5adnVrIGEgdmlkZW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5MeWQgb2cgdmlkZW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5Tb3VuZCB1bmQgVmlkZW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb25pZG8geSB2w61kZW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5Tb24gZXQgdmlkw6lvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+SGxqw7PDsCBvZyBteW5kPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+QXVkaW8gZSB2aWRlbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCteOCpuODs+ODieOBqOODk+ODh+OCqjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyCrOyatOuTnOyZgCDruYTrlJTsmKQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5MeWQgb2cgYmlsZGU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5Tb20gZSBWaWRlbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCX0LLRg9C6INC4INCy0LjQtNC10L48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5ManVkIG9jaCB2aWRlbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuinhumikeWSjOmfs+mikTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPumfs+aViOiIh+imluioijwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+RnJvbSBDRCByZWNvcmRpbmcgdG8gcGxheWluZyBhdWRpbyBDRHMgYW5kIG11bHRpbWVkaWEgZmlsZXMsIHRoaXMgcGFja2FnZSBncm91cCBhbGxvd3MgeW91IHRvIHdvcmsgd2l0aCBzb3VuZCBhbmQgdmlkZW8gb24gdGhlIHN5c3RlbS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPlRhdG8gc2t1cGluYSBiYWzDrcSNa8WvIFbDoW0gdW1vxb7FiHVqZSBwcmFjb3ZhdCBzZSB6dnVrZW0gYSB2aWRlZW0gb2QgdnlwYWxvdsOhbsOtIENEIHBvIHDFmWVocsOhdsOhbsOtIHp2dWtvdsO9Y2ggQ0QgYSBtdWx0aW1lZGnDoWxuw61jaCBzb3Vib3LFry48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRlbm5lIGdydXBwZSBsYWRlciBkaWcgYXJiZWpkZSBtZWQgbHlkIG9nIHZpZGVvIHDDg8KlIHN5c3RlbWV0LCBtZWQgYWx0ZnJhIGNkLW9wdGFnbmluZyB0aWwgYWZzcGlsbmluZyBhZiBseWQtY2QmYXBvcztlciBvZyBtdWx0aW1lZGllLWZpbGVyLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+Vm9uIGRlciBBdWZuYWhtZSB2b24gQ0RzIGJpcyB6dW0gQWJzcGllbGVuIHZvbiBBdWRpby1DRHMgZXJtw7ZnbGljaHQgSWhuZW4gZGllc2UgUGFrZXRncnVwcGUgZWluZSBvcHRpbWFsZSBOdXR6dW5nIGRlciBTb3VuZC0gdW5kIFZpZGVvZnVua3Rpb25lbiBkZXMgU3lzdGVtcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkRlc2RlIGxhIGdyYWJhY2nDs24gZGUgQ0RzIGhhc3RhIGxhIHJlcHJvZHVjY2nDs24gZGUgQ0RzIGRlIGF1ZGlvIHkgYXJjaGl2b3MgbXVsdGltZWRpYSwgZXN0ZSBwYXF1ZXRlIGxlIHBlcm1pdGUgdHJhYmFqYXIgY29uIGF1ZGlvIHkgdmlkZW8gZW4gc3Ugc2lzdGVtYS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPkNE44Gu6Yyy6Z+z44GL44KJ44Kq44O844OH44Kj44KqQ0Tjgajjg57jg6vjg4Hjg6Hjg4fjgqPjgqLjg5XjgqHjgqTjg6vjga7lho3nlJ/jgb7jgafjgIHjgZPjga4g44OR44OD44Kx44O844K444Kw44Or44O844OX44Gn44K344K544OG44Og5LiK44Gu44K144Km44Oz44OJ44Go44OT44OH44Kq44KS5qmf6IO944KS5L2/55So44Gn44GN44G+44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7snbQg7Yyo7YKk7KeAIOq3uOujueydhCDsgqzsmqntlZjsl6wgQ0Qg64W57J2M7JeQ7IScIOyYpOuUlOyYpCBDRCDrsI8g66mA7Yuw66+465SU7Ja0IO2MjOydvCDsnqzsg53sl5Ag7J2066W06riw6rmM7KeAIOuLpOyWke2VnCDsgqzsmrTrk5zsmYAg67mE65SU7JikIOyekeyXheydhCDsiJjtlontlZjsi6Qg7IiYIOyeiOyKteuLiOuLpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkRlbm5lIHBha2tlZ3J1cHBlbiBpbm5laG9sZGVyIHByb2dyYW1tZXIgZm9yIMOlIHNwaWxsZSBhdiBDRGVyIG9nIG11bHRpbWVkaWVmaWxlciBzYW10IGFyYmVpZGUgbWVkIGx5ZCBvZyBiaWxkZSBww6Ugc3lzdGVtZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5EZXNkZSBhIGdyYXZhw6fDo28gZGUgQ0RzIGF0w6kgw6AgcmVwcm9kdcOnw6NvIGRlIENEcyDDoXVkaW8gZSBtdWx0aW3DqWRpYSwgZXN0ZVxuZ3J1cG8gZGUgcGFjb3RlcyBwZXJtaXRlLWxoZSBsaWRhciBjb20gbyBzb20gZSBvIHbDrWRlbyBubyBzaXN0ZW1hLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0J7RgiDQt9Cw0L/QuNGB0LggQ0Qg0LTQviDQv9GA0L7QuNCz0YDRi9Cy0LDQvdC40Y8g0LfQstGD0LrQvtCy0YvRhSDQtNC40YHQutC+0LIg0LggTVAzLCDRjdGC0LAg0LPRgNGD0L/Qv9CwINC/0LDQutC10YLQvtCyINC/0L7Qt9Cy0L7Qu9GP0LXRgiDRgNCw0LHQvtGC0LDRgtGMINGB0L4g0LfQstGD0LrQvtC8INC4INCy0LjQtNC10L4g0LIg0YHQuNGB0YLQtdC80LUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5EZW5uYSBwYWtldGdydXBwIGzDpXRlciBkaWcgYXJiZXRhIG1lZCBsanVkIG9jaCB2aWRlbywgdmFyZSBzaWcgZGV0IGfDpGxsZXIgY2RpbnNwZWxuaW5nIGVsbGVyIGF0dCBseXNzbmEgcMOlIG11c2lrc2tpdm9yIG9jaCBtdWx0aW1lZGlhZmlsZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7ku47lhYnnm5jlvZXliLbliLDmkq3mlL7pn7PpopHlhYnnm5jlkozlpJrlqpLkvZPmlofku7bvvIzor6Xova/ku7bljIXnu4TlhYHorrjmgqjkvb/nlKjns7vnu5/kuIrnmoTpn7PpopHlkozop4bpopHotYTmupDjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPuW+nueHkumMhCBDRCDliLDmkq3mlL7pn7PmlYggQ0Qg6IiH5aSa5aqS6auU5qqU5qGI77yM6YCZ5YCL5aWX5Lu2576k57WE6K6T5oKo5Y+v5Lul5Zyo57O757Wx5LiK5L2/55So6Z+z5pWI6IiH6KaW6KiK55qE5Yqf6IO944CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGRlZmF1bHQ+dHJ1ZTwvZGVmYXVsdD4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPmJhc2UteDwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hdW1peDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmNkZGEyd2F2PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Y2RsYWJlbGdlbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmNkcDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmNkcGFyYW5vaWE8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5jZHJlY29yZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmR2ZHJlY29yZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5kdmdyYWI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5ncmlwPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z3RvYXN0ZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a2Fib29kbGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a2RlYWRkb25zLW5vYXR1bjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5rbWlkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmttaWRpPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmtvbmNkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPm1pa21vZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5zbmRjb25maWc8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnNveDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+dm9yYmlzLXRvb2xzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+eGF3dHY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+eGNkcm9hc3Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij54bW1zPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnhtbXMtc2tpbnM8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmdyYXBoaWNzPC9pZD4KKyAgICA8bmFtZT5HcmFwaGljczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPkdyYWZpa2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5HcmFmaWs8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5HcmFmaWs8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5HcsOhZmljb3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5HcmFwaGlzbWVzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+TXluZHZpbm5zbGE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5HcmFmaWNhPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44Kw44Op44OV44Kj44Kv44K5PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+6re4656Y7ZS9PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+R3JhZmlrazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkdyw6FmaWNvczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCT0YDQsNGE0LjQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+R3JhZmlrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5Zu+5b2iPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5ZyW5b2iPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5UaGlzIGdyb3VwIGluY2x1ZGVzIHBhY2thZ2VzIHRvIGhlbHAgeW91IG1hbmlwdWxhdGUgYW5kIHNjYW4gaW1hZ2VzLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VGF0byBza3VwaW5hIG9ic2FodWplIGJhbMOtxI1reSwga3RlcsOpIFbDoW0gcG9tb2hvdSBwcmFjb3ZhdCBzIG9icsOhemt5IGEgc2tlbm92YXQgamUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5EZW5uZSBncnVwcGUgaW5kZWhvbGRlciBwYWtrZXIgc29tIGhqw6ZscGVyIGRpZyBtZWQgYXQgbWFuaXB1bGVyZSBvZyBpbmRsw6ZzZSBiaWxsZWRlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPkRpZXNlIEdydXBwZSB1bWZhc3N0IFBha2V0ZSwgbWl0IGRlbmVuIFNpZSBCaWxkZXIgYmVhcmJlaXRlbiB1bmQgc2Nhbm5lbiBrw7ZubmVuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+RXN0ZSBncnVwbyBpbmNsdXllIHBhcXVldGVzIHF1ZSBsZSBwZXJtaXRpcsOhbiBtYW5pcHVsYXIgeSBlc2NhbmVyYSBpbcOhZ2VuZXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5DZSBncm91cGUgY29tcHJlbmQgZGVzIHBhcXVldGFnZXMgcXVpIHZvdXMgYWlkZW50IMOgIG1hbmlwdWxlciBldCBzY2FubmVyIGRlcyBpbWFnZXMuIDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+w55lc3NpIGjDs3B1ciBpbm5paGVsZHVyIHBha2thIHNlbSBnZXJhIMO+w6lyIGtsZXlmdCBhw7Agc2thbm5hIG9nIGJyZXl0YSBteW5kdW0uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5RdWVzdG8gZ3J1cHBvIGluY2x1ZGUgaSBwYWNjaGV0dGkgcGVyIGxhIG1hbmlwb2xhemlvbmUgZSBsYSBzY2Fuc2lvbmUgZGVsbGUgaW1tYWdpbmkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jgZPjga7jgrDjg6vjg7zjg5fjgavjga/jgqTjg6Hjg7zjgrjjga7lh6bnkIbjgajjgrnjgq3jg6Pjg7PjgpLmiYvkvJ3jgYbjg5Hjg4PjgrHjg7zjgrjjgYzlkKvjgb7jgozjgabjgYTjgb7jgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDqt7jro7nsl5Ag7Y+s7ZWo65CcIO2MqO2CpOyngOuKlCDsnbTrr7jsp4Drpbwg7Iqk7LqULCDsobDsnpEg7J6R7JeF7J2EIOuPhOyZgOuTnOumveuLiOuLpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkRlbm5lIGdydXBwZW4gaW5uZWhvbGRlciBwYWtrZXIgZm9yIG1hbmlwdWxlcmluZyBvZyBpbm5zY2FubmluZyBhdiBiaWxkZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Fc3RlIGdydXBvIGluY2x1aSBwYWNvdGVzIHF1ZSBvIGFqdWRhbSBhIG1hbmlwdWxhciBlIGRpZ2l0YWxpemFyIGltYWdlbnMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0LAg0LPRgNGD0L/Qv9CwINGB0L7QtNC10YDQttC40YIg0L/RgNC40LvQvtC20LXQvdC40Y8g0L3QtdC+0LHRhdC+0LTQuNC80YvQtSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINCz0YDQsNGE0LjQutC+0Lkg0Lgg0YHQutCw0L3QtdGA0LDQvNC4LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVubmEgZ3J1cHAgaW5rbHVkZXJhciBwYWtldCBzb20gaGrDpGxwZXIgZGlnIG1hbmlwdWxlcmEgb2NoIGzDpHNhIGluIGJpbGRlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfQ04iPui/mee7hOi9r+S7tuWMheWMheaLrOeUqOadpeW4ruWKqeaCqOaTjeS9nOWSjOaJq+aPj+WbvuWDj+eahOi9r+S7tuWMheOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6YCZ5YCL576k57WE5YyF5ous5LqG5bmr5Yqp5oKo6JmV55CG6IiH5o6D5o+P5b2x5YOP55qE5aWX5Lu244CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGRlZmF1bHQ+dHJ1ZTwvZGVmYXVsdD4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPmJhc2UteDwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+SW1hZ2VNYWdpY2s8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5zYW5lLWZyb250ZW5kczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnhzYW5lPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+eHNhbmUtZ2ltcDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmRpYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdpbXA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5naW1wLWRhdGEtZXh0cmFzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z3RrYW08L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+Z3RrYW0tZ2ltcDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5rYW1lcmE8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a2NvbG9yZWRpdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5raWNvbmVkaXQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a29va2E8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a3BhaW50PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmt1aWNrc2hvdzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm5ldHBibS1wcm9nczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj54ZmlnPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKworICA8Z3JvdXA+CisgICAgPGlkPm9mZmljZTwvaWQ+CisgICAgPG5hbWU+T2ZmaWNlL1Byb2R1Y3Rpdml0eTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPkthbmNlbMOhxZkvcHJvZHVrdGl2aXRhPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+S29udG9ycHJvZ3JhbW1lbDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPk9mZmljZS9Qcm9kdWt0aXZpdMOkdDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPk9maWNpbmEvUHJvZHVjdGl2aWRhZDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPkJ1cmVhdS9Qcm9kdWN0aXZpdMOpPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+U2tyaWZzdG9mdWZvcnJpdDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPk9mZmljZS9Qcm9kdXR0aXZpdMOgPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+T2ZmaWNlL+eUn+eUo+aApzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyCrOustC/sg53sgrDshLE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5Lb250b3IvUHJvZHVrdGl2aXRldDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkVzY3JpdMOzcmlvL1Byb2R1dGl2aWRhZGU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QntGE0LjRgdC90YvQtSDQv9GA0LjQu9C+0LbQtdC90LjRjzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPktvbnRvcnNwcm9ncmFtdmFyYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuWKnuWFrC/nlJ/kuqfnjoc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7ovqblhazou5/pq5Qv5L2c5qWt6Luf6auUPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5UaGUgYXBwbGljYXRpb25zIGluY2x1ZGUgb2ZmaWNlIHN1aXRlcywgUERGIHZpZXdlcnMsIGFuZCBtb3JlLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+QXBsaWthY2UgemFocm51asOtIGthbmNlbMOhxZlza8OpIGJhbMOta3ksIHByb2hsw63FvmXEjWUgUERGIGF0ZC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPlByb2dyYW1tZXJuZSBpbmtsdWRlcmVyIHN1aXRlciBtZWQga29udG9ycHJvZ3JhbW1lbCwgUERGLXZpc2VyZSwgbWVkIG1lcmUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5EaWUgQW53ZW5kdW5nZW4gZW50aGFsdGVuIE9mZmljZS1Qcm9ncmFtbWUsIFBERi1BbnplaWdlcHJvZ3JhbW1lIHUudi5tLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+TGFzIGFwbGljYWNpb25lcyBpbmNsdXllbiBsb3MgcGFxdWV0ZXMgZGUgb2ZpbcOhdGljYSwgbG9zIHZpc3VhbGl6YWRvcmVzIGRlIFBERiB5IG11Y2hvIG3DoXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5MZXMgYXBwbGljYXRpb25zIGNvbXByZW5uZW50IGRlcyBzdWl0ZXMgZGUgYnVyZWF1LCBkZXMgYWZmaWNoZXVycyBQREYgZXQgYmllbiBwbHVzIGVuY29yZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPkZvcnJpdGluIGlubmloYWxkYSBtZcOwYWwgYW5uYXJzIHNrcmlmc3RvZnV0w7NsLCBQREYgc2rDoXIgb2cgZmxlaXJhLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+TGUgYXBwbGljYXppb25pIGluY2x1ZG9ubyBwYWNjaGV0dGkgcGVyIGwmYXBvczt1ZmZpY2lvLCBwcm9ncmFtbWkgcGVyIHZpc3VhbGl6emFyZSBpIFBERiBlIGFsdHJvLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44Ki44OX44Oq44Kx44O844K344On44Oz44Gr44Gv44CB44Kq44OV44Kj44K544K744OD44OI44CBUERG44OT44Ol44O844Ki5Y+K44Gz44Gd44Gu5LuW44GM5ZCr44G+44KM44Gm44GE44G+44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7snbQg7J2R7JqpIO2UhOuhnOq3uOueqOydgCDsgqzrrLTsmqkg7ZSE66Gc6re4656oIOuqqOydjCwgUERGIOuztOq4sCDtlITroZzqt7jrnqgg65Ox7J2EIO2PrO2VqO2VqeuLiOuLpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkFwcGxpa2Fzam9uZW5lIGlubmVyaG9sZGVyIGtvbnRvcnN0w7h0dGVwcm9ncmFtbWVyLCBQRFYtbGVzZXJlIG9nIG1lci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkFzIGFwbGljYcOnw7VlcyBpbmNsdWVtIHBhY290ZXMgZGUgZXNjcml0w7NyaW8sIHZpc3VhbGl6YWRvcmVzIGRlIFBERiBlIG91dHJvcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCt0YLQsCDQs9GA0YPQv9C/0LAg0LLQutC70Y7Rh9Cw0LXRgiDQsiDRgdC10LHRjyDQvtGE0LjRgdC90YvQtSDQv9GA0LjQu9C+0LbQtdC90LjRjzog0YDQtdC00LDQutGC0L7RgNGLINGC0LXQutGB0YLQsCwg0L/RgNC+0LPRgNCw0LzQvNGLINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAgUERGINGE0LDQudC70L7Qsiwg0Lgg0L/RgNC+0YcuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5Qcm9ncmFtbWVuIGlua2x1ZGVyYXIgc3ZpdGVyIG1lZCBrb250b3JzcHJvZ3JhbXZhcmEsIFBERi12aXNhcmUsIG1lZCBtZXJhLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+5YyF5ous55qE5bqU55So56iL5bqP5pyJ5Yqe5YWs5aWX5Lu244CBUERGIOafpeeci+WZqOetieetieOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+5oeJ55So56iL5byP5YyF5ous5LqG6L6m5YWs5a6k5aWX6KOd6Luf6auU44CBUERGIOaqouimluWZqOetieetieOAgjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlLXg8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm9wZW5vZmZpY2U8L3BhY2thZ2VyZXE+IAorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+eHBkZjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5NYWdpY1BvaW50PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmFiaXdvcmQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+Z2d2PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmdudW1lcmljPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmdudWNhc2g8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5tcnByb2plY3Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a2RlcGltLXBpbG90PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmtvZmZpY2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a2R2aTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5rZ2hvc3R2aWV3PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmtmYXg8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+dGV0ZXgteGR2aTwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorICAKKyAgPGdyb3VwPgorICAgIDxpZD5tYWlsLXNlcnZlcjwvaWQ+CisgICAgPG5hbWU+TWFpbCBTZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb8WhdG92bsOtIHNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlBvc3RzZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5NYWlsLVNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNlcnZpZG9yIGRlIGNvcnJlbyA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TZXJ2ZXVyIGRlIGNvdXJyaWVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+UMOzc3TDvmrDs25uPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U2VydmVyIE1haWw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg6Hjg7zjg6vjgrXjg7zjg5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7rqZTsnbwg7ISc67KEPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+RXBvc3R0amVuZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TZXJ2aWRvciBkZSBNYWlsPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHQtdGA0LLQtdGAINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRizwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPkUtcG9zdHNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPumCruS7tuacjeWKoeWZqDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPumDteS7tuS8uuacjeWZqDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhlc2UgcGFja2FnZXMgYWxsb3cgeW91IHRvIGNvbmZpZ3VyZSBhbiBJTUFQIG9yIFBvc3RmaXggbWFpbCBzZXJ2ZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UeXRvIGJhbMOtxI1reSBWw6FtIHVtb8W+bsOtIG5ha29uZmlndXJvdmF0IHNlcnZlciBJTUFQIG5lYm8gcG/FoXRvdm7DrSBzZXJ2ZXIgUG9zdGZpeC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRpc3NlIHBha2tlciBsYWRlciBkaWcga29uZmlndXJlcmUgZW4gSU1BUC0gZWxsZXIgUG9zdGZpeC1wb3N0c2VydmVyLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+TWl0IGRpZXNlbiBQYWtldGVuIGvDtm5uZW4gU2llIGVpbmVuIElNQVAgb2RlciBQb3N0Zml4IE1haWwtU2VydmVyIGtvbmZpZ3VyaWVyZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5Fc3RvcyBwYXF1ZXRlcyBsZSBwZXJtaXRlbiBjb25maWd1cmFyIHVuIHNlcnZpZG9yIGRlIGNvcnJlbyBJTUFQIG8gUG9zdGZpeC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPkNlcyBwYXF1ZXRhZ2VzIHZvdXMgcGVybWV0dGVudCBkZSBjb25maWd1cmVyIHVuIHNlcnZldXIgZGUgY291cnJpZXIgSU1BUCBvdSBQb3N0Zml4LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+w55lc3NpciBwYWtrYXIgZ2VyYSDDvsOpciBrbGV5ZnQgYcOwIHNldGphIHVwcCBJTUFQIGXDsGEgUG9zdGZpeCBww7NzdGjDunMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5RdWVzdGkgcGFjY2hldHRpIGNvbnNlbnRvbm8gZGkgY29uZmlndXJhcmUgdW4gc2VydmVyIGRpIHBvc3RhIElNQVAgbyBQb3N0Zml4LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44GT44KM44KJ44Gu44OR44OD44Kx44O844K444Gn44CBSU1BUCDjgYsgUG9zdGZpeOODoeODvOODq+OCteODvOODkOOCkuioreWumuOBp+OBjeOBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IO2MqO2CpOyngOuKlCBJTUFQ6rO8IFBvc3RmaXgg66mU7J28IOyEnOuyhCDshKTsoJXsnYQg64+E7JmA7KSN64uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGlzc2UgcGFra2VuZSBsYXIgZGVnIGtvbmZpZ3VyZXJlIGVuIElNQVAgZWxsZXIgUG9zdGZpeCBlcG9zdHRqZW5lci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGUgcGFjb3RlcyBwZXJtaXRlbS1saGUgY29uZmlndXJhciBvcyBzZXJ2aWRvcmVzIGRlIG1haWwgSU1BUCBvdSBQb3N0Zml4LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0K3RgtC4INC/0LDQutC10YLRiyDQv9C+0LfQstC+0LvRj9GO0YIg0L3QsNGB0YLRgNC+0LjRgtGMINC/0L7Rh9GC0L7QstGL0Lkg0YHQtdGA0LLQtdGAIElNQVAg0LjQu9C4IFBvc3RmaXguPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5EZXNzYSBwYWtldCBsw6V0ZXIgZGlnIGtvbmZpZ3VyZXJhIGVuIElNQVAtIGVsbGVyIFBvc3RmaXgtZXBvc3RzZXJ2ZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7ov5nkupvova/ku7bljIXlhYHorrjmgqjphY3nva4gSU1BUCDmiJYgUG9zdGZpeCDpgq7ku7bmnI3liqHlmajjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPumAmeS6m+Wll+S7tuiuk+aCqOWPr+S7peioreWumuS4gOWAiyBJTUFQIOaIliBQb3N0Zml4IOmDteS7tuS8uuacjeWZqOOAgjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+YmFzZTwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5zZW5kbWFpbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmltYXA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+c2VuZG1haWwtY2Y8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+bWFpbG1hbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5zcGFtYXNzYXNzaW48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+c3F1aXJyZWxtYWlsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnBvc3RmaXg8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPm5ldHdvcmstc2VydmVyPC9pZD4KKyAgICA8bmFtZT5OZXR3b3JrIFNlcnZlcnM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Tw63FpW92w6kgc2VydmVyeTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPk5ldHbDpnJrc3NlcnZlcmU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5OZXR6d2Vyay1TZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5TZXJ2aWRvcmVzIGRlIHJlZDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlNlcnZldXIgZGUgcsOpc2VhdTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPk5ldMO+asOzbnVzdHVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U2VydmVyIGRpIHJldGU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg43jg4Pjg4jjg6/jg7zjgq/jgrXjg7zjg5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7rhKTtirjsm4ztgawg7ISc67KEPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+TmV0dHZlcmtzdGplbmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U2Vydmlkb3JlcyBkZSBSZWRlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHQtdGC0LXQstGL0LUg0YHQtdGA0LLQtdGA0Ys8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5Ow6R0dmVya3NzZXJ2cmFyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+572R57uc5pyN5Yqh5ZmoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+57ay6Lev5Ly65pyN5ZmoPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5UaGVzZSBwYWNrYWdlcyBpbmNsdWRlIG5ldHdvcmstYmFzZWQgc2VydmVycyBzdWNoIGFzIENJUEUsIERIQ1AsIGFuZCB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UeXRvIGJhbMOtxI1reSB6YWhybnVqw60gc8OtxaVvdsOpIHNlcnZlcnkgamFrbyBDSVBFLCBESENQIGEgdGVsbmV0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+RGlzc2UgcGFra2VyIGlua2x1ZGVyZXIgbmV0dsOmcmtzYmFzZXJlZGUgc2VydmVyZSBzb20gZnggQ0lQRSwgREhDUCBvZyB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5EaWVzZSBQYWtldGUgZW50aGFsdGVuIG5ldHp3ZXJrYmFzaWVydGUgU2VydmVyIHdpZSBDSVBFLCBESENQIHVuZCB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5Fc3RvcyBwYXF1ZXRlcyBpbmNsdXllbiBzZXJ2aWRvcmVzIGJhc2Fkb3MgZW4gbGEgcmVkIHRhbGVzIGNvbW8gQ0lQRSwgREhDUCwgeSB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5DZXMgcGFxdWV0YWdlcyBjb21wcmVubmVudCBkZXMgc2VydmV1cnMgYmFzw6lzIHN1ciByw6lzZWF1IGNvbW1lIENJUEUsIERIQ1AgZXQgdGVsbmV0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+w55lc3NpciBwYWtrYXIgaW5uaWhhbGRhIG5ldMO+asOzbnVzdHVyIGVpbnMgb2cgQ0lQRSwgREhDUCBvZyB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5RdWVzdGkgcGFjY2hldHRpIGluY2x1ZG9ubyBzZXJ2ZXIgbmV0d29yay1iYXNlZCBxdWFsaSBDSVBFLCBESENQIGUgdGVsbmV0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44GT44KM44KJ44Gu44OR44OD44Kx44O844K444Gr44Gv44CBQ0lQRSwgREhDUCwg44KEIHRlbG5ldOOBquOBqeOBruODjeODg+ODiOODr+ODvOOCr+ODmeODvOOCueOBruOCteODvOODkOOBjCDlkKvjgb7jgozjgabjgYTjgb7jgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDtjKjtgqTsp4Dsl5DripQgQ0lQRSwgREhDUCwgdGVsbmV06rO8IOqwmeydgCDrhKTtirjsm4ztgawt6riw67CYIOyEnOuyhOqwgCDtj6ztlajrkJjslrQg7J6I7Iq164uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGlzc2UgcGFra2VuZSBpbmtsdWRlcmVyIG5ldHR2ZXJrcy1iYXNlcnRlIHRqZW5lc3RlciBzb20gQ0lQRSwgREhDUCBvZyB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Fc3RlcyBwYWNvdGVzIGluY2x1ZW0gc2VydmRvcmVzIGRlIHJlZGUgY29tbyBvIENJUEUsIERIQ1AgZSB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0Lgg0L/QsNC60LXRgtGLINCy0LrQu9GO0YfQsNGO0YIg0LIg0YHQtdCx0Y8g0YLQsNC60LjQtSDRgdC10YLQtdCy0YvQtSDRgdC10YDQstC40YHRiywg0LrQsNC6IENJUEUsIERIQ1Ag0LggdGVsZXQ8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPkRlc3NhIHBha2V0IGlua2x1ZGVyYXIgbsOkdHZlcmtzYmFzZXJhZGUgc2VydnJhciBzb20gZXhlbXBlbHZpcyBDSVBFLCBESENQIG9jaCB0ZWxuZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7ov5nkupvova/ku7bljIXljIXmi6zln7rkuo7nvZHnu5znmoTmnI3liqHlmajvvIzkvovlpoIgQ0lQReOAgURIQ1DjgIHlkowgdGVsbmV044CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7pgJnkupvlpZfku7bljIXmi6zntrLot6/ngrrkuLvnmoTkvLrmnI3lmajvvIzkvovlpoIgQ0lQRSwgREhDUCDoiIcgdGVsbmV044CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+YW1hbmRhLXNlcnZlcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5hbS11dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmNpcGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+ZGhjcDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmZpbmdlci1zZXJ2ZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+a3JiNS1zZXJ2ZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5weGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+cmFkdmQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yc2gtc2VydmVyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+dGFsay1zZXJ2ZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij50ZWxuZXQtc2VydmVyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+eXBzZXJ2PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnplYnJhPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5uZXdzLXNlcnZlcjwvaWQ+CisgICAgPG5hbWU+TmV3cyBTZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5OZXdzIHNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPk55aGVkc2dydXBwZXNzZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5OZXdzLVNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNlcnZpZG9yIGRlIG5vdGljaWFzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U2VydmV1ciBkZSBuZXdzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+RnLDqXR0YcO+asOzbm48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TZXJ2ZXIgbmV3czwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODi+ODpeODvOOCueOCteODvOODkDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuuJtOyKpCDshJzrsoQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5OZXdzLXRqZW5lcmU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TZXJ2aWRvciBkZSBOZXdzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHQtdGA0LLQtdGAINC90L7QstC+0YHRgtC10Lk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5EaXNrdXNzaW9uc2dydXBwc3NlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuaWsOmXu+acjeWKoeWZqDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuaWsOiBnuS8uuacjeWZqDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhpcyBncm91cCBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSB0aGUgc3lzdGVtIGFzIGEgbmV3cyBzZXJ2ZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UYXRvIHNrdXBpbmEgVsOhbSB1bW/Fvm7DrSBuYWtvbmZpZ3Vyb3ZhdCBwb8SNw610YcSNIGpha28gbmV3cyBzZXJ2ZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5EZW5uZSBncnVwcGUgbGFkZXIgZGlnIGtvbmZpZ3VyZXJlIHN5c3RlbWV0IHNvbSBlbiBueWhlZHNncnVwcGVzc2VydmVyLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+TWl0IGRpZXNlciBHcnVwcGUga8O2bm5lbiBTaWUgZGFzIFN5c3RlbSBhbHMgTmV3cy1TZXJ2ZXIga29uZmlndXJpZXJlbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVzdGUgZ3J1cG8gbGUgcGVybWl0ZSBjb25maWd1cmFyIGVsIHNpc3RlbWEgY29tbyB1biBzZXJ2aWRvciBudWV2by48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPkNlIGdyb3VwZSB2b3VzIHBlcm1ldCBkZSBjb25maWd1cmVyIGxlIHN5c3TDqG1lIGNvbW1lIG5vdXZlYXUgc2VydmV1ci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPsOeZXNzaSB0w7NsIGdlcmEgw77DqXIga2xleWZ0IGHDsCBzdGlsbGEgdsOpbGluYSBzZW0gbmV3cyDDvmrDs24uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5RdWVzdG8gZ3J1cHBvIGNvbnNlbnRlIGRpIGNvbmZpZ3VyYXJlIGlsIHNpc3RlbWEgY29tZSBzZXJ2ZXIgbmV3cy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OBruOCsOODq+ODvOODl+OBp+OAgeODi+ODpeODvOOCueOCteODvOODkOOBqOOBl+OBpuOCt+OCueODhuODoOOCkuioreWumuOBp+OBjeOBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IOq3uOujueydhCDsgqzsmqntlZjsl6wg7Iuc7Iqk7YWc7J2EIOuJtOyKpCDshJzrsoTroZwg7ISk7KCV7ZWY7IukIOyImCDsnojsirXri4jri6QuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Im5vIj5EaXNzZSB2ZXJrdMO4eWVuZSBsYXIgZGVnIGtqw7hyZSBlbiBuZXdzLXRqZW5lciBww6Ugc3lzdGVtZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Fc3RlIGdydXBvIHBlcm1pdGUtbGhlIGNvbmZpZ3VyYXIgbyBzaXN0ZW1hIGNvbW8gdW0gc2Vydmlkb3IgZGUgbm90w61jaWFzLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0K3RgtCwINCz0YDRg9C/0L/QsCDQv9C+0LfQstC+0LvRj9C10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGB0LjRgdGC0LXQvNGDINC60LDQuiDRgdC10YDQstC10YAg0L3QvtCy0L7RgdGC0LXQuS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPkRlbm5hIGdydXBwIGzDpXRlciBkaWcga29uZmlndXJlcmEgc3lzdGVtZXQgc29tIGVuIGRpc2t1c3Npb25zZ3J1cHBzc2VydmVyLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6L+Z57uE6L2v5Lu25YyF5YWB6K645oKo5oqK57O757uf6YWN572u5oiQ5paw6Ze75pyN5Yqh5Zmo44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7pgJnlgIvnvqTntYTorpPmgqjlj6/ku6XoqK3lrprns7vntbHngrrkuIDpg6jmlrDogZ7kvLrmnI3lmajjgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+aW5uPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5zbWItc2VydmVyPC9pZD4KKyAgICA8bmFtZT5XaW5kb3dzIEZpbGUgU2VydmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+U291Ym9yb3bDvSBzZXJ2ZXIgcHJvIFdpbmRvd3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5XaW5kb3dzLWZpbHNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPldpbmRvd3MgRGF0ZWktU2VydmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U2Vydmlkb3IgZGUgZmljaGVyb3MgV2luZG93czwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlNlcnZldXIgZGUgZmljaGllciBXaW5kb3dzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+U2tyw6Fhw75qw7NubiBmeXJpciBXaW5kb3dzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+RmlsZSBzZXJ2ZXIgV2luZG93czwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPldpbmRvd3Pjg5XjgqHjgqTjg6vjgrXjg7zjg5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj5XaW5kb3dzIO2MjOydvCDshJzrsoQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5GaWx0amVuZXIgZm9yIFdpbmRvd3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TZXJ2aWRvciBkZSBGaWNoZWlyb3MgV2luZG93czwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCk0LDQudC70L7QstGL0Lkg0YHQtdGA0LLQtdGAINC00LvRjyBXaW5kb3dzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+V2luZG93cy1maWxzZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj5XaW5kb3dzIOaWh+S7tuacjeWKoeWZqDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPldpbmRvd3Mg5qqU5qGI5Ly65pyN5ZmoPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5UaGlzIHBhY2thZ2UgZ3JvdXAgYWxsb3dzIHlvdSB0byBzaGFyZSBmaWxlcyBiZXR3ZWVuIExpbnV4IGFuZCBNUyBXaW5kb3dzKHRtKSBzeXN0ZW1zLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VGF0byBza3VwaW5hIGJhbMOtxI1rxa8gVsOhbSB1bW/Fvm7DrSBzZMOtbGV0IHNvdWJvcnkgbWV6aSBzeXN0w6lteSBMaW51eCBhIE1TIFdpbmRvd3MgKHRtKS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRlbm5lIHBha2tlZ3J1cHBlIGxhZGVyIGRpZyBkZWxlIGZpbGVyIG1lbGxlbSBMaW51eCBvZyBzeXN0ZW0gbWVkIE1TIFdpbmRvd3ModG0pLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+TWl0IGRpZXNlciBQYWtldGdydXBwZSBrw7ZubmVuIFNpZSBEYXRlaWVuIGluIExpbnV4IHVuZCBNUyBXaW5kb3dzICh0bSkgZ2VtZWluc2FtIG51dHplbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVzdGUgZ3J1cG8gZGUgcGFxdWV0ZXMgbGUgcGVybWl0ZSBjb21wYXJ0aXIgZmljaGVyb3MgZW50cmUgbG9zIHNpc3RlbWFzIExpbnV4IHkgTVMgV2luZG93cyAodG0pLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2UgZ3JvdXBlIGRlIHBhcXVldGFnZXMgdm91cyBwZXJtZXQgZGUgcGFydGFnZXIgZGVzIGZpY2hpZXJzIGVudHJlIGxlcyBzeXN0w6htZXMgTGludXggZXQgV2luZG93cyAobSkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj7DnmVzc2kgcGFra2Fow7NwdXIgZ2VyaXIgw77DqXIga2xleWZ0IGHDsCBza2lwdGFzdCDDoSBza3LDoW0gbWlsbGkgTGludXggb2cgTVMgV2luZG93cyB2w6lsYS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPlF1ZXN0byBncnVwcG8gZGkgcGFjY2hldHRpIGNvbnNlbnRlIGRpIGNvbmRpdmlkZXJlIGkgZmlsZSB0cmEgc2lzdGVtaSBMaW51eCBlIE1TIFdpbmRvd3ModG0pLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44GT44Gu44OR44OD44Kx44O844K444Kw44Or44O844OX44Gn44CBTGludXgg44GoIE1TIFdpbmRvd3ModG0pIOOCt+OCueODhuODoOOBrumWk+OBp+ODleOCoeOCpOODq+OCkuWFseaciSDjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDtjKjtgqTsp4Ag6re466O57J2EIOyCrOyaqe2VmOyXrCBMaW51eOyZgCBNUyBXaW5kb3dzICh0bSkg7Iuc7Iqk7YWcIOyCrOydtOyXkOyEnCDtjIzsnbzsnYQg6rO17Jyg7ZWgIOyImCDsnojsirXri4jri6QuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Im5vIj5EZW5uZSBwYWtrZWdydXBwZW4gbGFyIGRlZyBkZWxlIGZpbGVyIG1lbGxvbSBMaW51eCBvZyBNUyBXaW5kb3dzKHRtKS1zeXN0ZW1lci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGUgZ3J1cG8gZGUgcGFjb3RlcyBwZXJtaXRlLWxoZSBwYXJ0aWxoYXIgb3MgZmljaGVpcm9zIGVudHJlIG9zIHNpc3RlbWFzIExpbnV4IGUgTVMgV2luZG93cyAodG0pLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0K3RgtCwINCz0YDRg9C/0L/QsCDQv9Cw0LrQtdGC0L7QsiDQtNC10LvQsNC10YIg0LLQvtC30LzQvtC20L3Ri9C8INC00L7RgdGC0YPQvyDQuiDRhNCw0LnQu9Cw0Lwg0LzQtdC20LTRgyDRgdC40YHRgtC10LzQsNC80LggTGludXgg0LggTVMgV2luZG93cyh0bSkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5EZW5uYSBwYWtldGdydXBwIGzDpXRlciBkaWcgZGVsYSB1dCBmaWxlciBtZWxsYW4gTGludXggb2NoIHN5c3RlbSBtZWQgTVMgV2luZG93cyh0bSkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7or6Xova/ku7bljIXnu4TlhYHorrjmgqjlnKggTGludXgg5ZKMIE1TIFdpbmRvd3ModG0pIOezu+e7n+mXtOWFseS6q+aWh+S7tuOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6YCZ5YCL5aWX5Lu2576k57WE5L2/5oKo5Y+v5Lul5ZyoIExpbnV4IOiIhyBNUyBXaW5kb3dzICh0bSkg57O757Wx6ZaT5YWx5Lqr5qqU5qGI44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnNhbWJhLWNsaWVudDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c2FtYmE8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPnNlcnZlci1jZmc8L2lkPgorICAgIDxuYW1lPlNlcnZlciBDb25maWd1cmF0aW9uIFRvb2xzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+TsOhc3Ryb2plIHBybyBrb25maWd1cmFjaSBzZXJ2ZXJ1PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+U2VydmVya29uZmlndXJhdGlvbnN2w6Zya3TDuGplcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlNlcnZlciBLb25maWd1cmF0aW9uc3Rvb2xzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+SGVycmFtaWVudGFzIGRlIGNvbmZpZ3VyYWNpw7NuIGRlbCBzZXJ2aWRvcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPk91dGlscyBkZSBjb25maWd1cmF0aW9uIGRlIHNlcnZldXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5TdGlsbGluZ2F0w7NsIGZ5cmlyIMO+asOzbmE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5Ub29sIGRpIGNvbmZpZ3VyYXppb25lIGRlbCBzZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgrXjg7zjg5DoqK3lrprjg4Tjg7zjg6s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7shJzrsoQg7ISk7KCVIOuPhOq1rDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPktvbmZpZ3VyYXNqb25zdmVya3TDuHkgZm9yIHRqZW5lcmU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5GZXJyYW1lbnRhcyBkZSBDb25maWd1cmHDp8OjbyBkZSBTZXJ2aWRvcmVzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHRgNC10LTRgdGC0LLQsCDQvdCw0YHRgtGA0L7QudC60Lgg0YHQtdGA0LLQtdGA0LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TZXJ2ZXJrb25maWd1cmF0aW9uc3Zlcmt0eWc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7mnI3liqHlmajphY3nva7lt6Xlhbc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7kvLrmnI3lmajoqK3lrprlt6Xlhbc8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPlRoaXMgZ3JvdXAgY29udGFpbnMgYWxsIG9mIFJlZCBIYXQncyBjdXN0b20gc2VydmVyIGNvbmZpZ3VyYXRpb24gdG9vbHMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UYXRvIHNrdXBpbmEgb2JzYWh1amUgdsWhZWNobnkgbsOhc3Ryb2plIHBybyBrb25maWd1cmFjaSBzZXJ2ZXJ1IG9kIHNwb2xlxI1ub3N0aSBSZWQgSGF0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+RGVubmUgZ3J1cHBlIGluZGhvbGRlciBhbGxlIFJlZCBIYXRzIHNwZWNpYWx0aWxwYXNzZWRlIHNlcnZlcmtvbmZpZ3VyZXJpbmdzdsOmcmt0w7hqZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5EaWVzZSBHcnVwcGUgZW50aMOkbHQgYWxsZSBUb29scyBmw7xyIGRpZSBiZW51dHplcmRlZmluaWVydGUgS29uZmlndXJhdGlvbiBkZXMgU2VydmVycyB2b24gUmVkIEhhdC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVzdGUgZ3J1cG8gY29udGllbmUgdG9kYXMgbGFzIGhlcnJhbWllbnRhcyBkZSBjb25maWd1cmFjacOzbiBkZWwgc2Vydmlkb3IgZGUgcGVyc29uYWxpemFjacOzbiBkZSBSZWQgSGF0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2UgZ3JvdXBlIGNvbnRpZW50IHRvdXMgbGVzIG91dGlscyBkZSBjb25maWd1cmF0aW9uIGR1IHNlcnZldXIgcGVyc29ubmFsaXPDqSBSZWQgSGF0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+w55lc3NpIGjDs3B1ciBpbm5paGVsZHVyIMO2bGwgUmVkIEhhdCBzdGlsbGluZ2F0w7NsaW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5RdWVzdG8gZ3J1cHBvIGNvbnRpZW5lIHR1dHRpIGdsaSBzdHJ1bWVudGkgcGVyIHBlcnNvbmFsaXp6YXJlIGxhIGNvbmZpZ3VyYXppb25lIGRlbCBzZXJ2ZXIgUmVkIEhhdC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OBruOCsOODq+ODvOODl+OBq+OBr+OAgeWFqOOBpuOBrlJlZCBIYXTjgqvjgrnjgr/jg6DjgrXjg7zjg5DoqK3lrprjg4Tjg7zjg6vjgYzlkKvjgb7jgozjgabjgYTjgb7jgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDqt7jro7nsl5DripQgUmVkIEhhdOydmCDsgqzsmqnsnpAg7ISk7KCVIOyEnOuyhCDshKTsoJUg64+E6rWs6rCAIOuqqOuRkCDtj6ztlajrkJjslrQg7J6I7Iq164uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGVubmUgZ3J1cHBlbiBpbm5laG9sZGVyIFJlZCBIYXRzIGtvbmZpZ3VyYXNqb25zdmVya3TDuHkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Fc3RlIGdydXBvIGNvbnTDqW0gdG9kYXMgYXMgZmVycmFtZW50YXMgZGUgY29uZmlndXJhw6fDo28gZGUgc2Vydmlkb3JlcyBkYSBSZWQgSGF0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0K3RgtCwINCz0YDRg9C/0L/QsCDQstC60LvRjtGH0LDQtdGCINCyINGB0LXQsdGPINCy0YHQtSDRgdGA0LXQtNGB0YLQstCwINCw0LTQvNC40L3QuNGB0YLRgNC40YDQvtCy0LDQvdC40Y8g0YHQtdGA0LLQtdGA0LAsINC90LDQv9C40YHQsNC90L3Ri9C1INCyIFJlZCBIYXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5EZW5uYSBncnVwcCBpbm5laMOlbGxlciBhbGxhIFJlZCBIYXRzIHNwZWNpYWxhbnBhc3NhZGUgc2VydmVya29uZmlndXJhdGlvbnN2ZXJrdHlnLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6L+Z57uE6L2v5Lu25YyF5YyF5ZCr5omA5pyJIFJlZCBIYXQg55qE5a6a5Yi25pyN5Yqh5Zmo6YWN572u5bel5YW344CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7pgJnlgIvnvqTntYTljIXmi6zmiYDmnIkgUmVkIEhhdCDoh6roqILnmoTkvLrmnI3lmajoqK3lrprlt6XlhbfjgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctYmluZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctaHR0cGQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtY29uZmlnLW5mczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctbmV0d29yazwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctcHJpbnRlcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctcHJpbnRlci1ndWk8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtY29uZmlnLXNlY3VyaXR5bGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtY29uZmlnLXNlcnZpY2VzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LXN3aXRjaC1wcmludGVyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LXN3aXRjaC1wcmludGVyLWdub21lPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LXN3aXRjaG1haWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtc3dpdGNobWFpbC1nbm9tZTwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+ZnRwLXNlcnZlcjwvaWQ+CisgICAgPG5hbWU+RlRQIFNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPkZUUCBzZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5GVFAtc2VydmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+RlRQLVNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNlcnZpZG9yIEZUUDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlNlcnZldXIgRlRQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+RlRQIMO+asOzbm48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TZXJ2ZXIgRlRQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+RlRQIOOCteODvOODkDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPkZUUCDshJzrsoQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5GVFAtdGplbmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U2Vydmlkb3IgRlRQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHQtdGA0LLQtdGAIEZUUDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPkZUUC1zZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj5GVFAg5pyN5Yqh5ZmoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+RlRQIOS8uuacjeWZqDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhlc2UgdG9vbHMgYWxsb3cgeW91IHRvIHJ1biBhbiBGVFAgc2VydmVyIG9uIHRoZSBzeXN0ZW0uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UeXRvIG7DoXN0cm9qZSBWw6FtIHVtb8W+bsOtIG5hIHBvxI3DrXRhxI1pIHByb3Zvem92YXQgRlRQIHNlcnZlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRpc3NlIHbDpnJrdMO4amVyIGxhZGVyIGRpZyBrw7hyZSBlbiBGVFAtc2VydmVyIHDDpSBzeXN0ZW1ldC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPk1pdCBkaWVzZW4gVG9vbHMga8O2bm5lbiBTaWUgZWluZW4gRlRQLVNlcnZlciBpbSBTeXN0ZW0gYXVzZsO8aHJlbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVzdGFzIGhlcnJhbWllbnRhcyBsZSBwZXJtaXRlbiBlamVjdXRhciB1biBzZXJ2aWRvciBGVFAgZW4gZWwgc2lzdGVtYS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPkNlcyBvdXRpbHMgdm91cyBwZXJtZXR0ZW50IGQmYXBvcztleMOpY3V0ZXIgdW4gc2VydmV1ciBGVFAgc3VyIGxlIHN5c3TDqG1lLiA8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPsOeZXNzaSB0w7NsIGdlcmEgw77DqXIga2xleWZ0IGHDsCBrZXlyYSBGVFAgw75qw7NuIMOhIHbDqWxpbm5pLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+UXVlc3RpIHN0cnVtZW50aSBjb25zZW50b25vIGRpIGVzZWd1aXJlIHVuIHNlcnZlciBGVFAgc3VsIHNpc3RlbWEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jgZPjgozjgonjga7jg4Tjg7zjg6vjgafjgrfjgrnjg4bjg6DkuIrjga5GVFDjgrXjg7zjg5DjgpLlrp/ooYzjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDrj4Tqtazrpbwg7IKs7Jqp7ZWY7JesIOyLnOyKpO2FnCDsg4Hsl5DshJwgRlRQIOyEnOuyhOulvCDsmrTsmIHtlZjsi6Qg7IiYIOyeiOyKteuLiOuLpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkRpc3NlIHZlcmt0w7h5ZW5lIGxhciBkZWcga2rDuHJlIGVuIGZ0cC10amVuZXIgcMOlIHN5c3RlbWV0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJwdCI+RXN0YXMgZmVycmFtZW50YXMgcGVybWl0ZW0tbGhlIGNvcnJlciB1bSBzZXJ2aWRvciBGVFAgbm8gc2V1IGNvbXB1dGFkb3IuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0Lgg0YHRgNC10LTRgdGC0LLQsCDQv9C+0LfQstC+0LvRj9GO0YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGB0LjRgdGC0LXQvNGDINC60LDQuiDRgdC10YDQstC10YAgRlRQLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVzc2EgdmVya3R5ZyBsw6V0ZXIgZGlnIGvDtnJhIGVuIEZUUC1zZXJ2ZXIgcMOlIHN5c3RlbWV0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6L+Z5Lqb5bel5YW35YWB6K645oKo5Zyo57O757uf5LiK6L+Q6KGMIEZUUCDmnI3liqHlmajjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPumAmeS6m+W3peWFt+iuk+aCqOWPr+S7peWcqOezu+e1seS4iuWft+ihjOS4gOWAiyBGVFAg5Ly65pyN5Zmo44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmFub25mdHA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnZzZnRwZDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+c3FsLXNlcnZlcjwvaWQ+CisgICAgPG5hbWU+U1FMIERhdGFiYXNlIFNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPkRhdGFiw6F6b3bDvSBzZXJ2ZXIgU1FMPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+U1FMLWRhdGFiYXNlc2VydmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U1FMIERhdGVuYmFuay1TZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5TZXJ2aWRvciBkZSBsYSBiYXNlIGRlIGRhdG9zIFNRTDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlNlcnZldXIgZGUgYmFzZSBkZSBkb25uw6llcyBTUUw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5TUUwgZ2FnbmFncnVubnVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U2VydmVyIHBlciBkYXRhYmFzZSBTUUw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5TUUzjg4fjg7zjgr/jg5njg7zjgrnjgrXjg7zjg5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj5TUUwg642w7J207YSw67Kg7J207IqkIOyEnOuyhDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPkRhdGFiYXNlLXRqZW5lcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlNlcnZpZG9yIGRlIEJhc2UgZGUgRGFkb3MgU1FMPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHQtdGA0LLQtdGAINCx0LDQt9GLINC00LDQvdC90YvRhSBTUUw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TUUwtZGF0YWJhc3NlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPlNRTCDmlbDmja7lupPmnI3liqHlmag8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj5TUUwg6LOH5paZ5bqr5Ly65pyN5ZmoPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5UaGlzIHBhY2thZ2UgZ3JvdXAgYWxsb3dzIHlvdSB0byBydW4gYW4gU1FMIHNlcnZlciBvbiB0aGUgc3lzdGVtLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VGF0byBza3VwaW5hIGJhbMOtxI1rxa8gVsOhbSB1bW/Fvm7DrSBuYSBwb8SNw610YcSNaSBwcm92b3pvdmF0IFNRTCBzZXJ2ZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5EZW5uZSBwYWtrZWdydXBwZSBsYWRlciBkaWcga8O4cmUgZW4gU1FMLXNlcnZlciBww6Ugc3lzdGVtZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5NaXQgZGllc2VyIFBha2V0Z3J1cHBlIGvDtm5uZW4gU2llIGVpbmVuIFNRTC1TZXJ2ZXIgaW0gU3lzdGVtIGF1c2bDvGhyZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5Fc3RlIGdydXBvIGRlIHBhcXVldGVzIGxlIHBlcm1pdGUgZWplY3V0YXIgdW4gc2Vydmlkb3IgU1FMIGVuIGVsIHNpc3RlbWEuIDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2UgZ3JvdXBlIGRlIHBhcXVldGFnZXMgdm91cyBwZXJtZXQgZCZhcG9zO2V4w6ljdXRlciB1biBzZXJ2ZXVyIFNRTCBzdXIgbGUgc3lzdMOobWUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj7DnmVzc2kgcGFra2Fow7NwdXIgZ2VyaXIgw77DqXIga2xleWZ0IGHDsCBrZXlyYSBTUUwgw75qw7NudXN0dS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPlF1ZXN0byBncnVwcG8gZGkgcGFjY2hldHRpIGNvbnNlbnRlIGRpIGVzZWd1aXJlIHVuIHNlcnZlciBTUUwgc3VsIHNpc3RlbWEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jgZPjga7jg5Hjg4PjgrHjg7zjgrjjgrDjg6vjg7zjg5fjgafjgIHjgrfjgrnjg4bjg6DkuIrjga5TUUzjgrXjg7zjg5DjgpLlrp/ooYzjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDtjKjtgqTsp4Ag6re466O57J2EIOyCrOyaqe2VmOyXrCDsi5zsiqTthZwg7IOB7JeQ7IScIFNRTCDshJzrsoTrpbwg7Jq07JiB7ZWY7IukIOyImCDsnojsirXri4jri6QuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Im5vIj5EZW5uZSBwYWtrZWdydXBwZW4gbGFyIGRlZyBrasO4cmUgZW4gZGF0YWJhc2UtdGplbmVyZSBww6Ugc3lzdGVtZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Fc3RlIGdydXBvIGRlIHBhY290ZXMgcGVybWl0ZS1saGUgY29ycmVyIHVtIHNlcnZpZG9yIFNRTCBubyBzZXUgc2lzdGVtYS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCSINGN0YLRgyDQs9GA0YPQv9C/0YMg0LLQutC70Y7Rh9C10L3RiyDRgNCw0LfQu9C40YfQvdGL0LUgU1FMINGB0LXRgNCy0LXRgNGLLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVubmEgcGFrZXRncnVwcCBsw6V0ZXIgZGlnIGvDtnJhIGVuIFNRTC1zZXJ2ZXIgcMOlIHN5c3RlbWV0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6K+l6L2v5Lu25YyF57uE5YWB6K645oKo5Zyo57O757uf5LiK6L+Q6KGMIFNRTCDmnI3liqHlmajjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPumAmeWAi+Wll+S7tue+pOe1hOiuk+aCqOWPr+S7peWcqOezu+e1seS4iuWft+ihjOS4gOmDqCBTUUwg5Ly65pyN5Zmo44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnBvc3RncmVzcWwtc2VydmVyPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij51bml4T0RCQzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cGVybC1EQkQtUGc8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnBlcmwtREJfRmlsZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5teXNxbC1zZXJ2ZXI8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPndlYi1zZXJ2ZXI8L2lkPgorICAgIDxuYW1lPldlYiBTZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5XV1cgc2VydmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+V2Vic2VydmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+V2ViLVNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNlcnZpZG9yIFdlYjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlNlcnZldXIgV2ViPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+VmVmw75qw7NubjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlNlcnZlciBXZWI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5XZWLjgrXjg7zjg5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7sm7kg7ISc67KEPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+V2VidGplbmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U2Vydmlkb3IgV2ViPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0JLQtdCxLdGB0LXRgNCy0LXRgDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPldlYmJzZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7kuIfnu7TnvZHmnI3liqHlmag8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7ntrLpoIHkvLrmnI3lmag8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPlRoZXNlIHRvb2xzIGFsbG93IHlvdSB0byBydW4gYSBXZWIgc2VydmVyIG9uIHRoZSBzeXN0ZW0uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UeXRvIG7DoXN0cm9qZSBWw6FtIHVtb8W+bsOtIG5hIHBvxI3DrXRhxI1pIHByb3Zvem92YXQgV1dXIHNlcnZlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRpc3NlIHbDpnJrdMO4amVyIGxhZGVyIGRpZyBrw7hyZSBlbiB3ZWJzZXJ2ZXIgcMOlIHN5c3RlbWV0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+TWl0IGRpZXNlbiBUb29scyBrw7ZubmVuIFNpZSBlaW5lbiBXZWItU2VydmVyIGltIFN5c3RlbSBhdXNmw7xocmVuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+RXN0YXMgaGVycmFtaWVudGFzIGxlIHBlcm1pdGVuIGVqZWN1dGFyIHVuIHNlcnZpZG9yIFdlYiBlbiBlbCBzaXN0ZW1hLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2VzIG91dGlscyB2b3VzIHBlcm1ldHRlbnQgZCZhcG9zO2V4w6ljdXRlciB1biBzZXJ2ZXVyIFdlYiBzdXIgbGUgc3lzdMOobWUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj7DnmVzc2kgdMOzbCBnZXJhIMO+w6lyIGtsZXlmdCBhw7Aga2V5cmEgdmVmw75qw7NuIMOhIHbDqWxpbm5pLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+UXVlc3RpIHN0cnVtZW50aSBjb25zZW50b25vIGRpIGVzZWd1aXJlIHVuIHNlcnZlciBXZWIgc3VsIHNpc3RlbWEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jgZPjgozjgonjga7jg4Tjg7zjg6vjgafjgrfjgrnjg4bjg6DkuIrjga5XZWLjgrXjg7zjg5DjgpLlrp/ooYzjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDrj4Tqtazrpbwg7IKs7Jqp7ZWY7JesIOyLnOyKpO2FnCDsg4Hsl5DshJwg7Ju57ISc67KE66W8IOyatOyYge2VmOyLpCDsiJgg7J6I7Iq164uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGlzc2UgdmVya3TDuHllbmUgbGFyIGRlZyBrasO4cmUgZW4gd2ViLXRqZW5lciBww6Ugc3lzdGVtZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Fc3RhcyBmZXJyYW1lbnRhcyBwZXJtaXRlbS1saGUgY29ycmVyIHVtIHNlcnZpZG9yIFdlYiBubyBzZXUgY29tcHV0YWRvci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCt0YLQuCDRgdGA0LXQtNGB0YLQstCwINC/0L7Qt9Cy0L7Qu9GP0Y7RgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0YHQuNGB0YLQtdC80YMg0LrQsNC6INCS0LXQsS3RgdC10YDQstC10YA8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPkRlc3NhIHZlcmt0eWcgbMOldGVyIGRpZyBrw7ZyYSBlbiB3ZWJic2VydmVyIHDDpSBzeXN0ZW1ldC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfQ04iPui/meS6m+W3peWFt+WFgeiuuOaCqOWcqOezu+e7n+eUn+i/kOihjOS4h+e7tOe9keacjeWKoeWZqOOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6YCZ5Lqb5bel5YW36K6T5oKo5Y+v5Lul5Zyo57O757Wx5LiK5Z+36KGM5LiA5YCL57ay6aCB5Ly65pyN5Zmo44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmh0dHBkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5odHRwZC1tYW51YWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5od2NyeXB0bzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm1vZF9weXRob248L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5tb2RfcGVybDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm1vZF9zc2w8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5waHA8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5waHAtaW1hcDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnBocC1sZGFwPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnBocC1wZ3NxbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5tb2RfYXV0aF9wZ3NxbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnNxdWlkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+dHV4PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+d2ViYWxpemVyPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5kbnMtc2VydmVyPC9pZD4KKyAgICA8bmFtZT5ETlMgTmFtZSBTZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5KbWVubsO9IHNlcnZlciBETlM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5ETlMtbmF2bmVzZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5ETlMgTmFtZS1TZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5TZXJ2aWRvciBkZWwgbm9tYnJlIEROUzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPk5vbSBkZSBzZXJ2ZXVyIEROUzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkROUyBuYWZuYcO+asOzbm48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5Ob21lIHNlcnZlciBETlM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5ETlPjg43jg7zjg6DjgrXjg7zjg5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj5ETlMg7J2066aEIOyEnOuyhDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPkROUy10amVuZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TZXJ2aWRvciBkZSBOb21lcyBETlM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QodC10YDQstC10YAgRE5TPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+RE5TLW5hbW5zZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj5ETlMg5ZCN56ew5pyN5Yqh5ZmoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+RE5TIOWQjeeoseS8uuacjeWZqDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhpcyBwYWNrYWdlIGdyb3VwIGFsbG93cyB5b3UgdG8gcnVuIGEgRE5TIG5hbWUgc2VydmVyIChCSU5EKSBvbiB0aGUgc3lzdGVtLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VGF0byBza3VwaW5hIGJhbMOtxI1rxa8gVsOhbSB1bW/Fvm7DrSBuYSBwb8SNw610YcSNaSBwcm92b3pvdmF0IGptZW5uw70gc2VydmVyIEROUyAoQklORCkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5EZW5uZSBwYWtrZWdydXBwZSBsYWRlciBkaWcga8O4cmUgZW4gRE5TLW5hdm5lc2VydmVyIChCSU5EKSBww6Ugc3lzdGVtZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5NaXQgZGllc2VyIFBha2V0Z3J1cHBlIGvDtm5uZW4gU2llIGVpbmVuIEROUyBOYW1lLVNlcnZlciAoQklORCkgaW0gU3lzdGVtIGF1c2bDvGhyZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5Fc3RlIHBhcXVldGUgbGUgcGVybWl0ZSBlamVjdXRhciB1biBzZXJ2aWRvciBkZSBub21icmUgRE5TIChCSU5EKSBlbiBlbCBzaXN0ZW1hLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2UgZ3JvdXBlIGRlIHBhcXVldGFnZXMgdm91cyBwZXJtZXQgZCZhcG9zO2V4w6ljdXRlciB1biBub20gZGUgc2VydmV1ciBETlMgKEJJTkQpIHN1ciBsZSBzeXN0w6htZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPsOeZXNzaSBwYWtrYWjDs3B1ciBnZXJpciDDvsOpciBrbGV5ZnQgYcOwIGtleXJhIEROUyBuYWZuYcO+asOzbiAoQklORCkgw6EgdsOpbGlubmkgw75pbm5pLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+UXVlc3RvIGdydXBwbyBkaSBwYWNjaGV0dGkgY29uc2VudGUgZGkgZXNlZ3VpcmUgdW4gbmFtZSBzZXJ2ZXIgRE5TIChCSU5EKSBzdWwgc2lzdGVtYS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OBruODkeODg+OCseODvOOCuOOCsOODq+ODvOODl+OBp+OAgeOCt+OCueODhuODoOS4iuOBrkROU+ODjeODvOODoOOCteODvOODkChCSU5EKeOCkuWun+ihjOOBp+OBjeOBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IO2MqO2CpOyngCDqt7jro7nsnYQg7IKs7Jqp7ZWY7JesIOyLnOyKpO2FnCDsg4Hsl5DshJwgRE5TIOydtOumhCDshJzrsoQgKEJJTkQp66W8IOyatOyYge2VmOyLpCDsiJgg7J6I7Iq164uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGVubmUgcGFra2VncnVwcGVuIGxhciBkZWcga2rDuHJlIGVuIEROUy10amVuZXIgKEJJTkQpIHDDpSBzeXN0ZW1ldC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGUgZ3J1cG8gZGUgcGFjb3RlcyBwZXJtaXRlLWxoZSBjb3JyZXIgdW0gc2Vydmlkb3IgZGUgbm9tZXMgZGUgRE5TIChvIEJJTkQpIG5vIHNpc3RlbWEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7Qn9Cw0LrQtdGC0Ysg0LIg0Y3RgtC+0Lkg0LPRgNGD0L/Qv9C1INC/0L7Qt9Cy0L7Qu9GP0YIg0LLQsNC8INGD0YHRgtCw0L3QvtCy0LjRgtGMINC4INC90LDRgdGC0YDQvtC40YLRjCBETlMgKEJJTkQpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVubmEgcGFrZXRncnVwcCBsw6V0ZXIgZGlnIGvDtnJhIGVuIEROUy1uYW1uc2VydmVyIChCSU5EKSBww6Ugc3lzdGVtZXQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7or6Xova/ku7bljIXnu4TlhYHorrjmgqjlnKjns7vnu5/kuIrov5DooYwgRE5TIOWQjeensOacjeWKoeWZqChCSU5EKeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6YCZ5YCL5aWX5Lu2576k57WE6K6T5oKo5Y+v5Lul5Zyo57O757Wx5LiK5Z+36KGM5LiA6YOoIEROUyDlkI3nqLHkvLrmnI3lmaggKEJJTkQp44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5jYWNoaW5nLW5hbWVzZXJ2ZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmJpbmQ8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmF1dGhvcmluZy1hbmQtcHVibGlzaGluZzwvaWQ+CisgICAgPG5hbWU+QXV0aG9yaW5nIGFuZCBQdWJsaXNoaW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+VHZvxZllbsOtIGEgcHVibGlrb3bDoW7DrTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPkZvcmZhdHRlcnNrYWIgb2cgcHVibGljZXJpbmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5BdXRob3JpbmcgdW5kIFB1Ymxpc2hpbmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5BdXRvcml6YWNpw7NuIHkgcHVibGljYWNpw7NuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+QXV0aG9yaW5nIGV0IFB1Ymxpc2hpbmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5VbWJyb3Qgb2cgcml0c3TDtnJmPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+QXV0aG9yaW5nIGUgcHVibGlzaGluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuiRl+S9nOOBqOeZuuihjDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuygnOyekeqzvCDstpztjJA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5UZWtzdHB1Ymxpc2VyaW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+QXV0b3JpYSBlIFB1YmxpY2HDp8OjbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCf0L7QtNCz0L7RgtC+0LLQutCwINC/0YPQsdC70LjQutCw0YbQuNC5PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+RsO2cmZhdHRhbmRlIG9jaCBwdWJsaWNlcmluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuaOiOadg+WSjOWHuueJiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPue3qOWvq+iIh+WHuueJiDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhlc2UgdG9vbHMgYWxsb3cgeW91IHRvIGNyZWF0ZSBkb2N1bWVudGF0aW9uIGluIHRoZSBEb2NCb29rIGZvcm1hdCBhbmQgY29udmVydCB0aGVtIHRvIEhUTUwsIFBERiwgUG9zdHNjcmlwdCwgYW5kIHRleHQuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UeXRvIG7DoXN0cm9qZSBWw6FtIHVtb8W+bsOtIHZ5dHbDocWZZXQgZG9rdW1lbnRhY2kgdmUgZm9ybcOhdHUgRG9jQm9vayBhIGtvbnZlcnRvdmF0IGppIGRvIEhUTUwsIFBERiwgUG9zdHNjcmlwdHUgYSB0ZXh0dS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRpc3NlIHbDpnJrdMO4amVyIGxhZGVyIGRpZyBza2FiZSBkb2t1bWVudGF0aW9uIGkgRG9jQm9vay1mb3JtYXRldCBvZyBrb252ZXJ0ZXJlIGRlbSB0aWwgSFRNTCwgUERGLCBQb3N0c2NyaXB0IG9nIHRla3N0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+TWl0IGRpZXNlbiBUb29scyBrw7ZubmVuIFNpZSBEb2t1bWVudGF0aW9uIGltIERvY0Jvb2sgRm9ybWF0IGFubGVnZW4gdW5kIGRpZXNlIGluIGRpZSBGb3JtYXRlIEhUTUwsIFBERiwgUG9zdHNjcmlwdCB1bmQgVGV4dCBrb252ZXJ0aWVyZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5Fc3RhcyBoZXJyYW1pZW50YXMgbGUgcGVybWl0ZW4gY3JlYXIgZG9jdW1lbnRhY2nDs24gZW4gZm9ybWF0byBEb2NCb29rIHkgY29udmVydGlybGEgYSBIVE1MLCBQREYsIFBvc3RzY3JpcHQgeSB0ZXh0by48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPkNlcyBvdXRpbHMgdm91cyBwZXJtZXR0ZW50IGRlIGNyw6llciBkZSBsYSBkb2N1bWVudGF0aW9uIHNvdXMgZm9ybWF0IERvY0Jvb2sgZXQgZGUgbGEgY29udmVydGlyIGVuIEhUTUwsIFBERiwgUG9zdHNjcmlwdCBldCB0ZXh0ZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPsOeZXNzaSB0w7NsIGdlcmEgw77DqXIga2xleWZ0IGHDsCBiw7phIHRpbCBza2rDtmwgw6EgRG9jQm9vayBzbmnDsGkgb2cgYnJleXRhIMO+ZWltIMOtIEhUTUwsIFBERiwgUG9zdHNjcmlwdCBvZyB0ZXh0YS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPlF1ZXN0aSBzdHJ1bWVudGkgY29uc2VudG9ubyBkaSBjcmVhcmUgZG9jdW1lbnRpIGluIGZvcm1hdG8gRG9jQm9vayBlIGRpIGNvbnZlcnRpcmxpIGluIEhUTUwsIFBERiwgUG9zdHNjcmlwdCBlIHRlc3RvLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44GT44KM44KJ44Gu44OE44O844Or44Gn44CBRG9jQm9va+W9ouW8j+OBp+aWh+abuOOCkuS9nOaIkOOBl+OBpuOAgeOBneOCjOOCieOCkkhUTUwsIFBERiwgUG9zdHNjcmlwdCwg5Y+K44GzICB0ZXh044G45aSJ5o+b44GZ44KL44GT44Go44GM44Gn44GN44G+44GZ44CCLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IOuPhOq1rOulvCDsgqzsmqntlZjsl6wgRG9jQm9vayDtmJXsi53snZgg66y47ISc66W8IOyDneyEse2VmOyLpCDsiJgg7J6I7Jy866mwIOyDneyEseuQnCDrrLjshJzrpbwgSFRNTCwgUERGLCBQb3N0c2NyaXB07JmAIO2FjeyKpO2KuCDtmJXsi53snLzroZwg67OA7ZmY7ZWY7IukIOyImCDsnojsirXri4jri6QuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Im5vIj5EaXNzZSB2ZXJrdMO4eWVuZSBsYXIgZGVnIGxhZ2UgZG9rdW1lbnRhc2pvbiBpIERvY0Jvb2stZm9ybWF0ZXQgb2cga29udmVydGVyZSBkZW0gdGlsIEhUTUwsIFBERiwgUG9zdHNjcmlwdCBvZyB0ZWtzdC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGFzIGZlcnJhbWVudGFzIHBlcm1pdGVtLWxoZSBjcmlhciBhIGRvY3VtZW50YcOnw6NvIG5vIGZvcm1hdG8gRG9jQm9vayBlIGNvbnZlcnTDqi1sYSBwYXJhIEhUTUwsIFBERiwgUG9zdFNjcmlwdCBlIHRleHRvLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0K3RgtC4INGB0YDQtdC00YHRgtCy0LAg0L/QvtC30LLQvtC70Y/RjtGCINGB0L7Qt9C00LDQstCw0YLRjCDQtNC+0LrRg9C80LXQvdGC0LDRhtC40Y4g0LIg0YTQvtGA0LzQsNGC0LUgRG9jQm9vayDQuCDQv9GA0LXQvtCx0YDQsNC30L7QstGL0LLQsNGC0Ywg0LIgSFRNTCwgUERGLCBQb3N0c2NyaXB0INC4INGC0LXQutGB0YIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5EZXNzYSB2ZXJrdHlnIGzDpXRlciBkaWcgc2thcGEgZG9rdW1lbnRhdGlvbiBpIERvY0Jvb2stZm9ybWF0ZXQgb2NoIGtvbnZlcnRlcmEgZGVtIHRpbGwgSFRNTCwgUERGLCBQb3N0c2NyaXB0IG9jaCB0ZXh0LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6L+Z5Lqb6L2v5Lu25YyF5YWB6K645oKo5Yib5bu6IERvY0Jvb2sg5qC85byP55qE5paH5qGj77yM5bm25bCG5a6D5Lus6L2s5o2i5oiQIEhUTUzjgIEgUERG44CBUG9zdHNjcmlwdCDlkozmlofmnKzmoLzlvI/jgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPumAmeS6m+W3peWFt+iuk+aCqOWPr+S7peW7uueriyBEb2NCb29rIOagvOW8j+eahOiqquaYjuaWh+S7tu+8jOS4puS4lCDlsIflroPlgJHovYnmj5vngrogSFRNTCwgUERGLCBQb3N0c2NyaXB0IOiIh+aWh+Wtl+OAgjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+YmFzZTwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5kb2Nib29rLWR0ZHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmRvY2Jvb2stc3R5bGUtZHNzc2w8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmRvY2Jvb2stdXRpbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmRvY2Jvb2stdXRpbHMtcGRmPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saW51eGRvYy10b29sczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+dGV0ZXg8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnRldGV4LWFmbTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnRldGV4LXhkdmk8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+dGV0ZXgtbGF0ZXg8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnhtbHRvPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisgIAorICA8Z3JvdXA+CisgICAgPGlkPmVuZ2luZWVyaW5nLWFuZC1zY2llbnRpZmljPC9pZD4KKyAgICA8bmFtZT5FbmdpbmVlcmluZyBhbmQgU2NpZW50aWZpYzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlbEm2RlY2vDqSBuw6FzdHJvamU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5JbmdlbmnDuHItIG9nIG5hdHVydmlkZW5za2FiPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+RW5naW5lZXJpbmcgdW5kIFdpc3NlbnNjaGFmdDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPkluZ2VuaWVyw61hIHkgY2llbnTDrWZpY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5FbmdpbmVlcmluZyBldCBTY2llbnRpZmlxdWU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Ww61zaW5kaSBvZyB2ZXJrZnLDpsOwaTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlNldHRvcmkgZW5naW5lZXJpbmcgZSBzY2llbnRpZmljbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuaKgOihk+ezu+OBqOenkeWtpuezuzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuqzte2VmeqzvCDqs7ztlZk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5WaXRlbnNrYXBlbGlnZSBwcm9ncmFtbWVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+RW5nZW5oYXJpYSBlIENpw6puY2lhPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J3QsNGD0YfQvdGL0LUg0Lgg0LjQvdC20LXQvdC10YDQvdGL0LU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5Lb25zdHJ1a3Rpb24gb2NoIGZvcnNrbmluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuW3peeoi+WSjOenkeWtpjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuW3peeoi+iIh+enkeWtuDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhpcyBncm91cCBpbmNsdWRlcyBwYWNrYWdlcyBmb3IgcGVyZm9ybWluZyBtYXRoZW1hdGljYWwgYW5kIHNjaWVudGlmaWMgY29tcHV0YXRpb25zIGFuZCBwbG90dGluZywgYXMgd2VsbCBhcyB1bml0IGNvbnZlcnNpb24uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5UYXRvIHNrdXBpbmEgb2JzYWh1amUgYmFsw63EjWt5IHBybyBwcm92w6FkxJtuw60gbWF0ZW1hdGlja8O9Y2ggYSB2xJtkZWNrw71jaCB2w71wb8SNdMWvLCB0dm9yYnUgZ3JhZsWvIGEgcMWZZXZvZCBtZXppIGplZG5vdGthbWkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5EZW5uZSBncnVwcGUgaW5kZWhvbGRlciBwYWtrZXIgZm9yIHVkZsO4cnNlbCBhZiBtYXRlbWF0aXNrZSBvZyB2aWRlbnNrYWJlbGlnZSBiZXJlZ25pbmdlciBvZyBkaWFncmFtdGVnbmluZyBzw6V2ZWwgc29tIGVuaGVkc2tvbnZlcnRlcmluZy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPkRpZXNlIEdydXBwZSBlbnRow6RsdCBQYWtldGUgZsO8ciBtYXRoZW1hdGlzY2hlIHVuZCB3aXNzZW5zY2hhZnRsaWNoZSBCZXJlY2hudW5nZW4gdW5kIFBsb3R0aW5nIHNvd2llIGRpZSBLb252ZXJzaW9uIHZvbiBFaW5oZWl0ZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5FbCBncnVwbyBpbmNsdXllIHBhcXVldGVzIHBhcmEgZWplY3V0YXIgY8OhbGN1bG9zIG1hdGVtw6F0aWNvcyB5IGNpZW50w61maWNvcyB5IHRyYXphZG9zLCBhc8OtIGNvbW8gbGEgY29udmVyc2nDs24gZGUgbGEgdW5pZGFkLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2UgZ3JvdXBlIGNvbXByZW5kIGxlcyBwYXF1ZXRhZ2VzIHBvdXIgZXjDqWN1dGVyIGRlcyBjYWxjdWxzIG1hdGjDqW1hdGlxdWVzIGV0IHNjaWVudGlmaXF1ZXMsIGxlIHRyYcOnYWdlIGV0IGxhIGNvbnZlcnNpb24gZGVzIHVuaXTDqXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj7DnmVzc2kgaMOzcHVyIGlubmloZWxkdXIgcGFra2EgdGlsIGHDsCBmcmFta3bDpm1hIHN0w6Zyw7BmcsOmw7BpIG9nIHbDrXNpbmRhw7p0cmVpa25pbmdhIMOhc2FtdCB0w7NsdW0gdGlsIGHDsCB1bWJyZXl0YSBtaWxsaSBlaW5pbmdhLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+UXVlc3RvIGdydXBwbyBpbmNsdWRlIGkgcGFjY2hldHRpIHBlciBsJmFwb3M7ZXNlY3V6aW9uZSBlIGlsIHBsb3R0aW5nIGRpIG9wZXJhemlvbmkgbWF0ZW1hdGljaGUgZSBzY2llbnRpZmljaGUsIG5vbmNow6kgbGEgY29udmVyc2lvbmUgZGkgdW5pdMOgLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44GT44Gu44Kw44Or44O844OX44Gr44Gv44CB44Om44OL44OD44OI5aSJ5o+b44Go5YWx44Gr44CB5pWw5a2m55qE5Y+K44Gz56eR5a2m55qE44Gq5ryU566X44Go44OX44Ot44OD44OG44Kj44Oz44Kw44KSIOWun+i3teOBmeOCi+eCuuOBruODkeODg+OCseODvOOCuOOBjOWQq+OBvuOCjOOBpuOBhOOBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IOq3uOujueydgCDri6jsnIQg67OA7ZmYIOq4sOuKpeydhCDruYTroa/tlZjsl6wg7IiY7ZWZIOqzhOyCsOqzvCDqs7ztlZkg6rOE7IKw7J2EIOyImO2Wie2VmOqzoCDstpzroKXtlZjripQg7Yyo7YKk7KeA66W8IO2PrO2VqO2VqeuLiOuLpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkRlbm5lIGdydXBwZW4gaW5uZWhvbGRlciBwYWtrZXIgZm9yIMOlIHV0ZsO4cmUgbWF0ZW1hdGlza2Ugb2cgdml0ZW5za2FwZWxpZ2UgYmVyZWduaW5nZXIvdmlzdWFsaXNlcmluZ2VyIHNhbXQgZW5oZXRza29udmVydGVyaW5nZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Fc3RlIGdydXBvIGluY2x1aSBvcyBwYWNvdGVzIHBhcmEgZWZlY3V0YXIgY8OhbGN1bG9zIG1hdGVtw6F0aWNvcyBlIGNpZW50w61maWNvcywgYXByZXNlbnTDoS1sb3MgZSBlZmVjdHVhciBhIGNvbnZlcnPDo28gZGUgdW5pZGFkZXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0LAg0LPRgNGD0L/Qv9CwINGB0L7QtNC10YDQttC40YIg0L/RgNC40LvQvtC20LXQvdC40Y8g0LTQu9GPINC80LDRgtC10LzQsNGC0LjRh9C10YHQutC40YUg0Lgg0L/RgNC+0YfQuNGFINC90LDRg9GH0L3Ri9GFINCy0YvRh9C40YHQu9C10L3QuNC5INC4INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5EZW5uYSBncnVwcCBpbmtsdWRlcmFyIHBha2V0IGbDtnIgdXRmw7ZyYW5kZSBhdiBtYXRlbWF0aXNrYSBvY2ggdmV0ZW5za2FwbGlnYSBiZXLDpGtuaW5nYXIgb2NoIGRpYWdyYW1yaXRuaW5nIHPDpXbDpGwgc29tIGVuaGV0c2tvbnZlcnRlcmluZy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfQ04iPui/mee7hOi9r+S7tuWMheWMheaLrOeUqOadpeaJp+ihjOaVsOWtpuWSjOenkeWtpuiuoeeul+OAgee7mOWbvuOAgeS7peWPiuiuoemHj+WNleS9jei9rOaNoueahOi9r+S7tuWMheOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6YCZ5YCL576k57WE5YyF5ous55qE5aWX5Lu25Y+v55So5L6G5Z+36KGM5pW45a246IiH56eR5a2455qE6KiI566X6IiH57mq5ZyW77yM5Lul5Y+K5Zau5L2N55qE5o+b566X44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5iYXNlPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+YmxhczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdudXBsb3Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+bGFtPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmxhcGFjazwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPm9jdGF2ZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5wdm08L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij51bml0czwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgICAKKyAgPGdyb3VwPgorICAgIDxpZD5lZGl0b3JzPC9pZD4KKyAgICA8bmFtZT5FZGl0b3JzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+RWRpdG9yeTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlRla3N0cmVkaWdlcmluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPkVkaXRvcmVuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+RWRpdG9yZXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5FZGl0ZXVyczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlJpdGxhcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPkVkaXRvcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCqOODh+OCo+OCvzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPu2OuOynkeq4sDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPkVkaXRvcmVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+RWRpdG9yZXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QoNC10LTQsNC60YLQvtGA0Ys8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5UZXh0cmVkaWdlcmFyZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPue8lui+keWZqDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPue3qOi8r+WZqDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+U29tZXRpbWVzIGNhbGxlZCB0ZXh0IGVkaXRvcnMsIHRoZXNlIGFyZSBwcm9ncmFtcyB0aGF0IGFsbG93IHlvdSB0byBjcmVhdGUgYW5kIGVkaXQgZmlsZXMuIFRoZXNlIGluY2x1ZGUgRW1hY3MgYW5kIFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+TsSba2R5IG96bmHEjW92YW7DqSBqYWtvIHRleHRvdsOpIGVkaXRvcnksIHR5dG8gcHJvZ3JhbXkgVsOhbSB1bW/Fvm7DrSB2eXR2w6HFmWV0IGEgdXByYXZvdmF0IHNvdWJvcnkuIFRhdG8gc2t1cGluYSB6YWhybnVqZSBFbWFjcyBhIFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+RGV0dGUgZXIgcHJvZ3JhbW1lciBzb20gbGFkZXIgZGlnIHNrYWJlIG9nIHJlZGlnZXJlIGZpbGVyLCBvZyBkZSBrYWxkZXMgb2Z0ZSBmb3IgdGVrc3RyZWRpZ2VyZXJlLiBEaXNzZSBpbmtsdWRlcmVyIEVtYWNzIG9nIFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+RGllc2UgYXVjaCBUZXh0LUVkaXRvcmVuIGdlbmFubnRlbiBQcm9ncmFtbWUgZXJtw7ZnbGljaGVuIGRhcyBBbmxlZ2VuIHVuZCBCZWFyYmVpdGVuIHZvbiBEYXRlaWVuLiBEYXp1IGdlaMO2cmVuIEVtYWNzIHVuZCBWaS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkV4aXN0ZW4gcHJvZ3JhbWFzIHF1ZSBwZXJtaXRlbiBjcmVhciB5IG1vZGlmaWNhciBmaWNoZXJvcywgYSB2ZWNlcyBsbGFtYWRvcyBlZGl0b3JlcyBkZSB0ZXh0by4gRXN0b3MgaW5jbHV5ZW4gRW1hY3MgeSBWaS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPlBhcmZvaXMgYXBwZWzDqXMgw6lkaXRldXJzIGRlIHRleHRlLCBjZXMgcHJvZ3JhbW1lcyB2b3VzIHBlcm1ldHRlbnQgZGUgY3LDqWVyIGV0IGQmYXBvczvDqWRpdGVyIGRlcyBmaWNoaWVycy4gSWxzIGNvbXByZW5uZW50IEVtYWNzIGV0IFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+Rm9ycml0IHNlbSBrYWxsYXN0IHJpdGxhci4gw55ldHRhIGVydSB0w7NsaW4gc2VtIGdlcmEgw77DqXIga2xleWZ0IGHDsCBiw7phIHRpbCBvZyBicmV5dGEgc2tyw6FtLiDDnmV0dGEgaW5uaWhlbGR1ciBtZcOwYWwgYW5uYXJzIEVtYWNzIG9nIFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+VGFsdm9sdGEgZGVmaW5pdGkgZWRpdG9yIGRpIHRlc3RvLCBxdWVzdGkgcHJvZ3JhbW1pIGNvbnNlbnRvbm8gZGkgY3JlYXJlIGVtb2RpZmljYXJlIGkgZmlsZS4gU29ubyBpbmNsdXNpIEVtYWNzIGUgVmkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7mmYLjgavjga/jg4bjgq3jgrnjg4jjgqjjg4fjgqPjgr/jgajlkbzjgbDjgozjgovjg5XjgqHjgqTjg6vjgpLkvZzmiJDjgajnt6jpm4bjgafjgY3jgovjg5fjg63jgrDjg6njg6DjgYwg44GC44KK44G+44GZ44CC44GT44KM44KJ44Gr44GvRW1hY3Mg44GoIFZp44GM5ZCr44G+44KM44G+44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7qsIDrgZTslKkg7YWN7Iqk7Yq4IO2OuOynkeq4sOudvOqzoOuPhCDrtojrpqzsmrDripQg7J20IO2UhOuhnOq3uOueqOydgCDtjIzsnbzsnYQg7IOd7ISx7ZWY6rOgIO2OuOynke2VmOuKlOuNsCDsgqzsmqnrkKnri4jri6QuIOydtOufrO2VnCDtlITroZzqt7jrnqjsl5DripQgRW1hY3PsmYAgVmnqsIAg7Y+s7ZWo65Cp64uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGlzc2UgcHJvZ3JhbW1lbmUsIG9mdGUga2FsdCB0ZWtzdGVkaXRvcmVyLCBsYXIgZGVnIGxhZ2Ugb2cgcmVkaWdlcmUgZmlsZXIuIEVtYWNzIG9nIFZpIGVyIGlua2x1ZGVydCBoZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Ob3JtYWxtZW50ZSBjaGFtYWRvcyBlZGl0b3JlcyBkZSB0ZXh0bywgZXN0ZXMgcHJvZ3JhbWFzIHBlcm1pdGUtbGhlIGNyaWFyIGUgZWRpdGFyIGZpY2hlaXJvcy4gSW5jbHVpIG8gRW1hY3MgZSBvIFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0K3RgtC4INC/0YDQvtCz0YDQsNC80LzRiywg0LjQvdC+0LPQtNCwINC90LDQt9GL0LLQsNC10LzRi9C1INGC0LXQutGB0YLQvtCy0YvQvNC4INGA0LXQtNCw0LrRgtC+0YDQsNC80LgsINC/0L7Qt9Cy0L7Qu9GP0Y7RgiDRgNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRgtC10LrRgdGC0YsuINCS0LrQu9GO0YfQsNGO0YIgRW1hY3MgYW5kIFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGV0dGEgw6RyIHByb2dyYW0gc29tIGzDpXRlciBkaWcgc2thcGEgb2NoIHJlZGlnZXJhIGZpbGVyLCBvY2gga2FsbGFzIG9mdGEgdGV4dHJlZGlnZXJhcmUuIERlc3NhIGlua2x1ZGVyYXIgRW1hY3Mgb2NoIFZpLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+5pyJ5pe25Y+r5YGa5paH5pys57yW6L6R5Zmo44CC5a6D5Lus5piv5YWB6K645oKo5Yib5bu65ZKM57yW6L6R5paH5Lu255qE56iL5bqP44CC5YyF5ousIEVtYWNzIOWSjCBWaeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6YCZ5Lqb5piv6K6T5oKo5Y+v5Lul5bu656uL6IiH57eo6Lyv5qqU5qGI55qE56iL5byP77yM5pyJ5pmC5YCZ56ix54K65paH5a2X57eo6Lyv5Zmo44CCIOmAmeS6m+WMheaLrOS6hiBFbWFjcyDoiIcgVmnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPgorICAgICAgPG1ldGFwa2cgdHlwZT0iZGVmYXVsdCI+ZW1hY3M8L21ldGFwa2c+CisgICAgICA8bWV0YXBrZyB0eXBlPSJvcHRpb25hbCI+eGVtYWNzPC9tZXRhcGtnPgorICAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij52aW0tZW5oYW5jZWQ8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworCisgIDxncm91cD4KKyAgICA8aWQ+ZW1hY3M8L2lkPgorICAgIDxuYW1lPkVtYWNzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+RW1hY3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5FbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPkVtYWNzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+RW1hY3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5FbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkVtYWNzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+RW1hY3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5FbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPkVtYWNzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+RW1hY3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5FbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPkVtYWNzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+RW1hY3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj5FbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPkVtYWNzPC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5UaGUgR05VIEVtYWNzIHRleHQgZWRpdG9yLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VGV4dG92w70gZWRpdG9yIEdOVSBFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPlRla3N0cmVkaWdlcmVyZW4gR05VIEVtYWNzLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+RGVyIFRleHQtRWRpdG9yIEdOVSBFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVkaXRvciBkZSB0ZXh0b3MgRW1hY3MgZGUgR05VLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+RWRpdGV1ciBkZSB0ZXh0ZSBHTlUgRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj5HTlUgRW1hY3Mgcml0aWxsaW5uLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+RWRpdG9yIGRpIHRlc3RvIEdOVSBFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPkdOVSBFbWFjc+ODhuOCreOCueODiOOCqOODh+OCo+OCvzwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+R05VIEVtYWNzIO2FjeyKpO2KuCDtjrjsp5HquLAuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Im5vIj5UZWtzdGVkaXRvcmVuIEdOVSBFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPk8gZWRpdG9yIGRlIHRleHRvIEdOVSBFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCi0LXQutGB0YLQvtCy0YvQuSDRgNC10LTQsNC60YLQvtGAIEdOVSBFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPlRleHRyZWRpZ2VyYXJlbiBHTlUgRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj5HTlUgRW1hY3Mg5paH5pys57yW6L6R5ZmoPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj5HTlUgRW1hY3Mg5paH5a2X57eo6Lyv5Zmo44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+YmFzZTwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5lbWFjczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZW1hY3MtbGVpbTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnBzZ21sPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD54ZW1hY3M8L2lkPgorICAgIDxuYW1lPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPlhFbWFjczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPlhFbWFjczwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhlIFhFbWFjcyB0ZXh0IGVkaXRvci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPlRleHRvdsO9IGVkaXRvciBYRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5UZWtzdHJlZGlnZXJlcmVuIFhFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPkRlciBUZXh0LUVkaXRvciBYRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5FZGl0b3IgZGUgdGV4dG9zIGRlIFhFbWFjcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPkVkaXRldXIgZGUgdGV4dGUgWEVtYWNzLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+WEVtYWNzIHJpdGlsbGlubi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPkVkaXRvciBkaSB0ZXN0byBYRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj5YRW1hY3Pjg4bjgq3jgrnjg4jjgqjjg4fjgqPjgr88L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPlhFbWFjcyDthY3siqTtirgg7Y647KeR6riwLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+VGVrc3RlZGl0b3JlbiBYRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5PIGVkaXRvciBkZSB0ZXh0byBYRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QotC10LrRgdGC0L7QstGL0Lkg0YDQtdC00LDQutGC0L7RgCBYRW1hY3M8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ic3YiPlRleHRyZWRpZ2VyYXJlbiBYRW1hY3MuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj5YRW1hY3Mg5paH5pys57yW6L6R5ZmoPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj5YRW1hY3Mg5paH5a2X57eo6Lyv5Zmo44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+YmFzZTwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij54ZW1hY3M8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnhlbWFjcy1lbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnhlbWFjcy1pbmZvPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5zeXN0ZW0tdG9vbHM8L2lkPgorICAgIDxuYW1lPlN5c3RlbSBUb29sczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlN5c3TDqW1vdsOpIG7DoXN0cm9qZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlN5c3RlbXbDpnJrdMO4amVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3lzdGVtdG9vbHM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5IZXJyYW1pZW50YXMgZGVsIHNpc3RlbWEgPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+T3V0aWxzIGRlIHN5c3TDqG1lPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+S2VyZmlzdMOzbDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlRvb2wgZGkgc2lzdGVtYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCt+OCueODhuODoOODhOODvOODq+OAjTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyLnOyKpO2FnCDrj4Tqtaw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TeXN0ZW12ZXJrdMO4eTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkZlcnJhbWVudGFzIGRvIFNpc3RlbWE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QodC40YHRgtC10LzQvdGL0LUg0YHRgNC10LTRgdGC0LLQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN5c3RlbXZlcmt0eWc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7ns7vnu5/lt6Xlhbc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7ns7vntbHlt6Xlhbc8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPlRoaXMgZ3JvdXAgaXMgYSBjb2xsZWN0aW9uIG9mIHZhcmlvdXMgdG9vbHMgZm9yIHRoZSBzeXN0ZW0sIHN1Y2ggYXMgdGhlIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byBTTUIgc2hhcmVzIGFuZCB0b29scyB0byBtb25pdG9yIG5ldHdvcmsgdHJhZmZpYy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPlRhdG8gc2t1cGluYSBqZSBzb3Vib3IgcsWvem7DvWNoIHN5c3TDqW1vdsO9Y2ggbsOhc3Ryb2rFrywgbmFwxZkuIGtsaWVudCBwcm8gcMWZaXBvamVuw60ga2Ugc3ZhemvFr20gU01CIGEgbsOhc3Ryb2plIHBybyBzbGVkb3bDoW7DrSBzw63FpW92w6lobyBwcm92b3p1LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+RGVubmUgZ3J1cHBlIGVyIGVuIHNhbWxpbmcgbWVkIGRpdmVyc2UgdsOmcmt0w7hqZXIgdGlsIHN5c3RlbWV0LCBzb20gZngga2xpZW50ZW4gZm9yIHRpbHNsdXRuaW5nIHRpbCBTTUItZGVsaW5nZXIgb2cgdsOmcmt0w7hqZXIgZm9yIG92ZXJ2w6VnbmluZyBhZiBuZXR2w6Zya3N0cmFmaWsuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5EaWVzZSBHcnVwcGUgYmlldGV0IGVpbmUgUmVpaGUgU3lzdGVtdG9vbHMgd2llIGJlaXNwaWVsc3dlaXNlIGRlbiBDbGllbnQgZsO8ciBkaWUgVmVyYmluZHVuZyB6dSBTTUItU2hhcmVzIHNvd2llIFRvb2xzIGbDvHIgZGllIEtvbnRyb2xsZSBkZXMgTmV0endlcmt2ZXJrZWhycy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVzdGUgZ3J1cG8gZXMgdW5hIGNvbGVjY2nDs24gZGUgdmFyaWFzIGhlcnJhbWllbnRhcyBwYXJhIGVsIHNpc3RlbWEsIHRhbGVzIGNvbW8gZWwgY2xpZW50ZSBwYXJhIGNvbmVjdGFyc2UgYSBsYXMgcGFydGljaW9uZXMgU01CIHkgaGVycmFtaWVudGFzIHBhcmEgbW9uaXRvcml6YXIgZWwgdHLDoWZpY28gZGUgcmVkZXMuIDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2UgZ3JvdXBlIGVzdCB1biBlbnNlbWJsZSBkZSBkaWZmw6lyZW50cyBvdXRpbHMgcG91ciBsZSBzeXN0w6htZSwgYWluc2kgcXUmYXBvczt1biBjbGllbnQgcG91ciBsYSBjb25uZXhpb24gYXV4IHBhcnRzIFNNQiBldCBkJmFwb3M7b3V0aWxzIHBlcm1ldHRhbnQgZGUgZ8OpcmVyIGxlIHRyYWZpYyBkYW5zIGxlIHLDqXNlYXUuIDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+w55lc3NpIGjDs3B1ciBpbm5paGVsZHVyIHNhZm4ga2VyZmlzdMOzbGEgZWlucyBvZyB0aWwgZMOmbWlzIHTDs2wgdGlsIGHDsCB0ZW5namFzdCBTTUIgZGVpbGR1bSBvZyB0w7NsIHRpbCBhw7AgZnlsZ2phc3QgbWXDsCB1bWZlcsOwIMOhIG5ldGkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5RdWVzdG8gZ3J1cHBvIMOoIHVuYSByYWNjb2x0YSBkaSB2YXJpIHN0cnVtZW50aSBwZXIgaWwgc2lzdGVtYSwgY2hlIGNvbXByZW5kZSBpbGNsaWVudCBwZXIgbGEgY29ubmVzc2lvbmUgYWxsZSBwYXJ0aXppb25pIFNNQiBlIGdsaSBzdHJ1bWVudGkgcGVyIG1vbml0b3JhcmUgaWwgdHJhZmZpY28gZGkgcmV0ZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OBruOCsOODq+ODvOODl+OBr+OAgVNNQuWFseacieOBuOaOpee2muOBmeOCi+OCr+ODqeOCpOOCouODs+ODiOOChOODjeODg+ODiOODr+ODvOOCr+mAmuS/oemHj+OCkuODouODi+OCv+OBmeOCiyDjg4Tjg7zjg6vjgarjganjga7jgrfjgrnjg4bjg6DnlKjjga7lkITnqK7jg4Tjg7zjg6vjga7jgrPjg6zjgq/jgrfjg6fjg7PjgafjgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDqt7jro7nsnYAgU01CIOqzteycoOyXkCDsoJHsho3tlZjripTrjbAg7IKs7Jqp65CY64qUIO2BtOudvOydtOyWuO2KuOyZgCDrhKTtirjsm4ztgawg7IaM7Ya165+J7J2EIOqwkOyLnO2VmOuKlCDrj4TqtazsmYAg6rCZ7J2AIOuLpOyWke2VnCDsi5zsiqTthZwg64+E6rWsIOuqqOydjOyeheuLiOuLpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkRlbm5lIGdydXBwZW4gZXIgZW4gc2FtbGluZyBhdiB1bGlrZSBzeXN0ZW12ZXJrdMO4eSwgc29tIG9wcGtvYmxpbmcgbW90IFNNQi1yZXNzdXJzZXIgb2cgbmV0dHZlcmtzb3ZlcnbDpWtuaW5nLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJwdCI+RXN0ZSBncnVwbyDDqSB1bWEgY29sZWPDp8OjbyBkZSBmZXJyYW1lbnRhcyBwYXJhIG8gc2lzdGVtYSwgdGFsIGNvbW8gbyBjbGllbnRlIHBhcmEgc2UgbGlnYXIgYSBwYXJ0aWxoYXMgZGUgU01CIGUgYXMgZmVycmFtZW50YXMgcGFyYSBtb25pdG9yaXphciBvIHRyw6FmZWdvIGRlIHJlZGUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0LAg0LPRgNGD0L/Qv9CwINGB0L7QtNC10YDQttC40YIg0YDQsNC30LvQuNGH0L3Ri9C1INGB0LjRgdGC0LXQvNC90YvQtSDRg9GC0LjQu9C40YLRizog0L3QsNC/0YDQuNC80LXRgCwg0L/RgNC40LvQvtC20LXQvdC40Y8g0LTQu9GPINC00L7RgdGC0YPQv9CwINC6IFNNQiDRgdC10YDQstC10YDQsNC8LCDQuCDQv9GA0L7Qs9GA0LDQvNC80Ysg0LTQu9GPINC80L7QvdC40YLQvtGA0LjQvdCz0LAg0YHQtdGC0LXQstC+0LPQviDRgtGA0LDRhNGE0LjQutCwLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVubmEgZ3J1cHAgw6RyIGVuIHNhbWxpbmcgbWVkIGRpdmVyc2UgdmVya3R5ZyBmw7ZyIHN5c3RlbWV0LCBzb20gZXhlbXBlbHZpcyBrbGllbnRlbiBmw7ZyIGFuc2x1dG5pbmcgdGlsbCBTTUItdXRkZWxuaW5nYXIgb2NoIHZlcmt0eWcgZsO2ciDDtnZlcnZha25pbmcgYXYgbsOkdHZlcmtzdHJhZmlrLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6L+Z57uE6L2v5Lu25YyF5piv5ZCE57G757O757uf5bel5YW355qE6ZuG5ZCI77yM6K2s5aaC77ya6L+e5o6lIFNNQiDlhbHkuqvnmoTlrqLmiLfvvJvnm5HmjqfnvZHnu5zkuqTpgJrnmoTlt6XlhbfjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfVFciPumAmeWAi+e+pOe1hOaYr+ezu+e1seS4iuioseWkmueoruW3peWFt+eahOaUtumbhu+8jOS+i+WmgueUqOS+humAo+e3muWIsCBTTUIg5YWx5Lqr55qE55So5oi256uv77yMIOS7peWPiueUqOS+huebo+imlue2sui3r+a1gemHj+eahOW3peWFt+OAgjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5hbWFuZGEtY2xpZW50PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+ZXRoZXJlYWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+ZXRoZXJlYWwtZ25vbWU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+Z25vbWUtbG9ra2l0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bm1hcDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5ubWFwLWZyb250ZW5kPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnJkZXNrdG9wPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+c2FtYmEtY2xpZW50PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnNoYXBlY2ZnPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPnZuYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnhkZWx0YTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5tYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnNjcmVlbjwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+YWRtaW4tdG9vbHM8L2lkPgorICAgIDxuYW1lPkFkbWluaXN0cmF0aW9uIFRvb2xzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+TsOhc3Ryb2plIHBybyBhZG1pbmlzdHJhY2k8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5BZG1pbmlzdHJhdGlvbnN2w6Zya3TDuGplcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlZlcndhbHR1bmdzdG9vbHM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5IZXJyYW1pZW50YXMgZGUgYWRtaW5pc3RyYWNpw7NuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+T3V0aWxzIGQmYXBvczthZG1pbmlzdHJhdGlvbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPktlcmZpc3N0asOzcm51bmFydMOzbDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN0cnVtZW50aSBhbW1pbmlzdHJhdGl2aTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPueuoeeQhuODhOODvOODqzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuq0gOumrCDrj4Tqtaw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5BZG1pbmlzdHJhc2pvbnN2ZXJrdMO4eTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkZlcnJhbWVudGFzIGRlIEFkbWluaXN0cmHDp8OjbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCh0YDQtdC00YHRgtCy0LAg0LDQtNC80LjQvdC40YHRgtGA0LjRgNC+0LLQsNC90LjRjzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPkFkbWluaXN0cmF0aW9uc3Zlcmt0eWc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7nrqHnkIblt6Xlhbc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7nrqHnkIblt6Xlhbc8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPlRoaXMgZ3JvdXAgaXMgYSBjb2xsZWN0aW9uIG9mIGdyYXBoaWNhbCBhZG1pbmlzdHJhdGlvbiB0b29scyBmb3IgdGhlIHN5c3RlbSwgc3VjaCBhcyBmb3IgbWFuYWdpbmcgdXNlciBhY2NvdW50cyBhbmQgY29uZmlndXJpbmcgc3lzdGVtIGhhcmR3YXJlLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VGF0byBza3VwaW5hIGplIHNvdWJvciBncmFmaWNrw71jaCBuw6FzdHJvasWvIGFkbWluaXN0cmFjZSwgbmFwxZkuIHBybyBzcHLDoXZ1IHXFvml2YXRlbHNrw71jaCDDusSNdMWvIGEgbmFzdGF2ZW7DrSBoYXJkd2FyZSBwb8SNw610YcSNZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRlbm5lIGdydXBwZSBlciBlbiBzYW1saW5nIGdyYWZpc2tlIGFkbWluaXN0cmF0aW9uc3bDpnJrdMO4amVyIGZvciBzeXN0ZW1ldCwgc29tIGZ4IGJlaGFuZGxpbmcgYWYgYnJ1Z2Vya29udGkgb2cga29uZmlndXJhdGlvbiBhZiBzeXN0ZW11ZHN0eXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5EaWVzZSBHcnVwcGUgYmlldGV0IGVpbmUgUmVpaGUgdm9uIGdyYWZpc2NoZSBWZXJ3YWx0dW5nc3Rvb2xzIGbDvHIgZGFzIFN5c3RlbSwgZGFydW50ZXIgVG9vbHMgZsO8ciBkaWUgVmVyd2FsdHVuZyB2b24gQmVudXR6ZXJhY2NvdW50cyB1bmQgZGllIEtvbmZpZ3VyYXRpb24gZGVyIFN5c3RlbWhhcmR3YXJlLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJlcyI+RXN0ZSBncnVwbyBlcyB1bmEgY29sZWNjacOzbiAgZGUgaGVycmFtaWVudGFzIGRlIGFkbWluaXN0cmFjacOzbiBncsOhZmljYXMsIHRhbGVzIGNvbW8gY3VlbnRhcyBkZSB1c3VhcmlvIGRlIGdlc3Rpw7NuIHkgY29uZmlndXJhY2nDs24gZGVsIGhhcmR3YXJlIGRlbCBzaXN0ZW1hLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJmciI+Q2UgZ3JvdXBlIGVzdCB1biBlbnNlbWJsZSBkJmFwb3M7b3V0aWxzIGQmYXBvczthZG1pbmlzdHJhdGlvbiBncmFwaGlxdWUgcG91ciBsZSBzeXN0w6htZSwgYWluc2kgcXVlIHBvdXIgbGEgZ2VzdGlvbiBkZXMgY29tcHRlcyB1dGlsaXNhdGV1cnMgZXQgbGEgY29uZmlndXJhdGlvbiBkdSBtYXTDqXJpZWwgc3lzdMOobWUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj7DnmVzc2kgaMOzcHVyIGlubmloZWxkdXIgc2FmbiBteW5kcsOmbm5hIGtlcmZpc3N0asOzcm51bmFydMOzbGEgZnlyaXIgdsOpbGluYSBlaW5zIG9nIHRpbCBkw6ZtaXMgdMOzbCB0aWwgYcOwIHZpbm5hIG1lw7Agbm90ZW5kdXIgb2cgc3RpbGxhIHbDqWxiw7puYcOwLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+UXVlc3RvIGdydXBwbyDDqCB1bmEgcmFjY29sdGEgZGkgdG9vbCBwZXIgbGEgZ2VzdGlvbmUgZGVsbGEgZ3JhZmljYSBkZWwgc2lzdGVtYSwgY2hlIGNvbnNlbnRlIGRpIGdlc3RpcmUgZ2xpIGFjY291bnQgdXRlbnRlIGUgZGkgY29uZmlndXJhcmUgbCZhcG9zO2hhcmR3YXJlIGRpIHNpc3RlbWEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jgZPjga7jgrDjg6vjg7zjg5fjga/jg6bjg7zjgrbjg7zjgqLjgqvjgqbjg7Pjg4jjgpLnrqHnkIbjgZfjgZ/jgorjgIHjgrfjgrnjg4bjg6Djg4/jg7zjg4njgqbjgqfjgqLjgpLoqK3lrprjgZfjgZ/jgorjgZnjgosg44K344K544OG44Og44Gu54K644Gu44Kw44Op44OV44Kj44Kr44Or566h55CG44OE44O844Or44Gu44Kz44Os44Kv44K344On44Oz44Gn44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7snbQg6re466O57J2AIOyCrOyaqeyekCDqs4TsoJXsnYQg6rSA66as7ZWY6rOgIOyLnOyKpO2FnCDtlZjrk5zsm6jslrTrpbwg7ISk7KCV7ZWY64qUIOq3uOuemO2UvSDsi5zsiqTthZwg6rSA66asIOuPhOq1rCDrqqjsnYzsnoXri4jri6QuIDwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGVubmUgZ3J1cHBlbiBlciBlbiBzYW1saW5nIGF2IGdyYWZpc2tlIGFkbWluaXN0cmFzam9uc3Zlcmt0w7h5IGZvciBzeXN0ZW1ldCwgaW5rbHVkZXJ0IGJydWtlcmFkbWluaXN0cmFzam9uIG9nIGhhcmR3YXJla29uZmlndXJlcmluZy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGUgZ3J1cG8gw6kgdW1hIGNvbGVjw6fDo28gZGUgZmVycmFtZW50YXMgZ3LDoWZpY2FzIGRlIGFkbWluaXN0cmHDp8OjbyBwYXJhIG8gc2lzdGVtYSwgdGFsIGNvbW8gYSBnZXN0w6NvIGRhcyBjb250YXMgZGUgdXRpbGl6YWRvcmVzIGUgY29uZmlndXJhciBvICZhcG9zO2hhcmR3YXJlJmFwb3M7IGRvIHNpc3RlbWEuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0LAg0LPRgNGD0L/Qv9CwINGB0L7QtNC10YDQttC40YIg0LPRgNCw0YTQuNGH0LXRgdC60LjQtSDQv9GA0LjQu9C+0LbQtdC90LjRjyDQtNC70Y8g0L3QsNGB0YLRgNC+0LnQutC4INGB0LjRgdGC0LXQvNGLLiDQoSDQv9C+0LzQvtGJ0YzRjiDRjdGC0LjRhSDQv9GA0LjQu9C+0LbQtdC90LjQuSDQvNC+0LbQvdC+INC00L7QsdCw0LLQuNGC0Ywg0L3QvtCy0YvRhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSwg0L3QsNGB0YLRgNC+0LjRgtGMINC30LLRg9C6LCDRgNCw0LfRgNC10YjQtdC90LjQtSDRjdC60YDQsNC90LAsINC4INC/0YDQvtGHLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVubmEgZ3J1cHAgw6RyIGVuIHNhbWxpbmcgZ3JhZmlza2EgYWRtaW5pc3RyYXRpb25zdmVya3R5ZyBmw7ZyIHN5c3RlbWV0LCBzb20gZXhlbXBlbHZpcyBoYW50ZXJpbmcgYXYgYW52w6RuZGFya29udG9uIG9jaCBrb25maWd1cmF0aW9uIGF2IHN5c3RlbWjDpXJkdmFyYS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfQ04iPui/mee7hOi9r+S7tuWMheWMheaLrOS4gOS4quezu+e7n+WbvuW9ouWMlueuoeeQhuW3peWFt+eahOmbhuWQiO+8jOitrOWmgu+8mueuoeeQhueUqOaIt+W4kOWPt+WSjOmFjee9ruezu+e7n+ehrOS7tuOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6YCZ5YCL576k57WE5piv57O757Wx5Lit5ZyW5b2i566h55CG5bel5YW355qE5pS26ZuG77yM5L6L5aaC55So5L6G566h55CG5L2/55So6ICF5biz6Jmf6IiHIOioreWumuezu+e1seehrOmrlOOAgjwvZGVzY3JpcHRpb24+CisgICAgPHVzZXJ2aXNpYmxlPnRydWU8L3VzZXJ2aXNpYmxlPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmF1dGhjb25maWctZ3RrPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWNvbmZpZy1kYXRlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWNvbmZpZy1rZXlib2FyZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWcta2lja3N0YXJ0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWNvbmZpZy1sYW5ndWFnZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctbW91c2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtY29uZmlnLXJvb3RwYXNzd29yZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJlZGhhdC1jb25maWctc291bmRjYXJkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWNvbmZpZy11c2VyczwvcGFja2FnZXJlcT4gCisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5yZWRoYXQtY29uZmlnLXBhY2thZ2VzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWNvbmZpZy1wcm9jPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cmVkaGF0LWxvZ3ZpZXdlcjwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+Z2FtZXM8L2lkPgorICAgIDxuYW1lPkdhbWVzIGFuZCBFbnRlcnRhaW5tZW50PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+SHJ5IGEgesOhYmF2YTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlNwaWwgb2cgdW5kZXJob2xkbmluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlNwaWVsZSB1bmQgWmVpdHZlcnRyZWliPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+SnVlZ29zIHkgZW50cmV0ZW5pbWllbnRvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+SmV1eCBldCBEaXZlcnRpc3NlbWVudHM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5MZWlraXIgb2cgc2tlbW10dW48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5HaW9jaGkgZSBkaXZlcnRpbWVudG88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgrLjg7zjg6DjgajlqK/mpb08L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7qsozsnoTqs7wg7Jik6529PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3BpbGwgb2cgdW5kZXJob2xkbmluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkpvZ29zIGUgRW50cmV0ZW5pbWVudG88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QmNCz0YDRiyDQuCDRgNCw0LfQstC70LXRh9C10L3QuNGPPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3BlbCBvY2ggdW5kZXJow6VsbG5pbmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7muLjmiI/lkozlqLHkuZA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7pgYrmiLLoiIflqJvmqII8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPlZhcmlvdXMgd2F5cyB0byByZWxheCBhbmQgc3BlbmQgeW91ciBmcmVlIHRpbWUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImNzIj5Sxa96bsOpIHpwxa9zb2J5LCBqYWsgcmVsYXhvdmF0IGEgdHLDoXZpdCB2b2xuw70gxI1hcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRpdmVyc2UgbcOlZGVyIGF0IHNsYXBwZSBhZiBvZyBicnVnZSBmcml0aWRlbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPlZlcnNjaGllZGVuZSBNw7ZnbGljaGtlaXRlbiB6dXIgRW50c3Bhbm51bmcgdW5kIHp1bSBaZWl0dmVydHJlaWIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5NYW5lcmFzIGRlIHJlbGFqYXJzZSB5IHBhc2FyIGVsIHRpZW1wbyBsaWJyZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZnIiPkRpZmbDqXJlbnRlcyBtYW5pw6hyZXMgZGUgdm91cyByZWxheGVyIGV0IGRlIHBhc3NlciBsZSB0ZW1wcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPsOdbXNsZWd0IHRpbCBhw7Agc2xhcHBhIGFmIHlmaXIgb2cgZXnDsGEgbGF1c3VtIHTDrW1hLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+VmFyaSBtb2RpIHBlciByaWxhc3NhcnNpIGUgcGFzc2FyZSBpbCB0ZW1wbyBsaWJlcm8uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jg6rjg6njg4Pjgq/jgrnjgZfjgabmmofjgarmmYLplpPjgpLpgY7jgZTjgZnjgYTjgo3jgYTjgo3jgarmlrnms5U8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPu2ctOyLneydhCDst6jtlZjrqbTshJwg7Jes6rCAIOyLnOqwhOydhCDrs7Trgrwg7IiYIOyeiOuKlCDri6TslpHtlZwg67Cp67KVLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+Rm9yc2tqZWxsaWdlIG3DpXRlciDDpSBzbGFwcGUgYXYgb2cgZm9yZHJpdmUgZnJpdGlkZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5Ww6FyaWFzIG1hbmVpcmFzIGRlIHJlbGF4YXIgZSBwYXNzYXIgbyBzZXUgdGVtcG8gbGl2cmUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QoNCw0LfQu9C40YfQvdGL0LUg0YHQv9C+0YHQvtCx0Ysg0YDQsNGB0YHQu9Cw0LHQuNGC0YzRgdGPINC4INC/0YDQvtCy0LXRgdGC0Lgg0YHQstC+0LHQvtC00L3QvtC1INCy0YDQtdC80Y8uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5EaXZlcnNlIHPDpHR0IGF0dCBzbGFwcG5hIGF2IG9jaCBmw7ZyZHJpdmEgbGVkaWcgdGlkLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+5pS+5p2+5ZKM5omT5Y+R5pe26Ze055qE6YCU5b6E44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7oqLHlpJrnqK7orpPmgqjmlL7prIbku6Xlj4rmtojno6jmmYLplpPnmoTmlrnms5XjgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Zm9ydHVuZS1tb2Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmpveXN0aWNrPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+TWFlbHN0cm9tPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Y2hyb21pdW08L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5mcmVlY2l2PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+dHV4cmFjZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij54Ym9hcmQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5nbm9tZS1nYW1lczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmtkZWdhbWVzPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyA8Z3JvdXA+CisgICAgPGlkPklTTzg4NTktMi1zdXBwb3J0PC9pZD4KKyAgICA8bmFtZT5JU084ODU5LTIgU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIElTTzg4NTktMjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3IgSVNPOC04NTktMjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPklTTzg4NTktMiBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBJU084ODU5LTI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IElTTzg4NTktMiA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5JU084ODU5LTIgc3R1w7BuaW5ndXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBJU084ODU5LTI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5JU084ODU5LTIg44K144Od44O844OIPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+SVNPODg1OS0yIOyngOybkDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlN0w7h0dGUgZm9yIElTTzg4NTktMjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBJU084ODU5LTI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAgSVNPODg1OS0yPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBJU084ODU5LTI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj5JU084ODU5LTIg5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+SVNPODg1OS0yIOaUr+aPtDwvbmFtZT4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Zm9udHMtSVNPODg1OS0yPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5mb250cy1JU084ODU5LTItNzVkcGk8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmZvbnRzLUlTTzg4NTktMi0xMDBkcGk8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICAgPGdyb3VwPgorICAgIDxpZD5JU084ODU5LTktc3VwcG9ydDwvaWQ+CisgICAgPG5hbWU+SVNPODg1OS05IFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBJU084ODU5LTk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIElTTy04ODU5LTk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5JU084ODU5LTkgU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgSVNPODg1OS05PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBJU084ODU5LTkgPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+SVNPODg1OS05IHN0dcOwbmluZ3VyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gSVNPODg1OS05PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+SVNPODg1OS05IOOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPklTTzg4NTktOSDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBJU084ODU5LTk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgSVNPODg1OS05PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwIElTTzg4NTktOTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgSVNPODg1OS05PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+SVNPODg1OS05IOaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPklTTzg4NTktOSDmlK/mj7Q8L25hbWU+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPlhGcmVlODYtSVNPODg1OS05LTc1ZHBpLWZvbnRzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5YRnJlZTg2LUlTTzg4NTktOS0xMDBkcGktZm9udHM8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmN5cmlsbGljLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+Q3lyaWxsaWMgU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIGF6YnVrdTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3Iga3lyaWxsaXNrIGFsZmFiZXQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgS3lyaWxsaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBjaXLDrWxpY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGN5cmlsbGlxdWU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Lw71yw61sw61za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgY2lyaWxsaWNvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44K344Oq44Or6Kqe44Gu44K144Od44O844OIPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+7YKk66a0IOusuOyekCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBreXJpbGxpc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgQ2lyaWxpY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LrQuNGA0LjQu9C70LjRhtGLPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBreXJpbGxpc2t0IGFsZmFiZXQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7opb/ph4zlsJTor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7mlq/mi4nlpKvoqp7mlK/mj7Q8L25hbWU+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5YRnJlZTg2LWN5cmlsbGljLWZvbnRzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5mb250cy1LT0k4LVI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmZvbnRzLUtPSTgtUi0xMDBkcGk8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmJyaXRpc2gtc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5Ccml0aXNoIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBhbmdsacSNdGludSAoVmVsa8OhIEJyaXTDoW5pZSk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIGJyaXRpc2sgZW5nZWxzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBFbmdsaXNjaCAoR3Jvw59icml0YW5uaWVuKTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBpbmdsw6lzIGJyaXTDoW5pY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGFuZ2xhaXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5CcmVza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgbCZhcG9zO2luZ2xlc2UgYnJpdGFubmljbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuiLseWbveiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyYgeq1reyLnSDsmIHslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgYnJpdGlzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBJbmdsw6pzIEJyaXTDom5pY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LHRgNC40YLQsNC90YHQutC+0LPQviDQsNC90LPQu9C40LnRgdC60L7Qs9C+PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBicml0dGlzayBlbmdlbHNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuiLseW8j+iLseivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuiLseW8j+iLseaWh+aUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+ZW5fR0I8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YXNwZWxsLWVuLWdiPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1Ccml0aXNoPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisgIAorICA8Z3JvdXA+CisgICAgPGlkPmNhbmFkaWFuLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+Q2FuYWRpYW4gU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIGFuZ2xpxI10aW51IChLYW5hZGEpPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VW5kZXJzdMO4dHRlbHNlIGZvciBjYW5hZGlzayBlbmdlbHNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIEVuZ2xpc2NoIChLYW5hZGEpPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIGZyYW5jw6lzIGRlIENhbmFkw6E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGNhbmFkaWVuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+Q2FuYWTDrXNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBpbCBjYW5hZGVzZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCq+ODiuODgOiLseiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuy6kOuCmOuLpOyLnSDsmIHslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3Iga2FuYWRpc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgQ2FuYWRpYW5vPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC60LDQvdCw0LTRgdC60L7Qs9C+INCw0L3Qs9C70LjQudGB0LrQvtCz0L48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIGthbmFkZW5zaXNrIGVuZ2Vsc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5Yqg5ou/5aSn5byP6Iux6K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5Yqg5ou/5aSn6Iux5paH5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5lbl9DQTwvbGFuZ29ubHk+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hc3BlbGwtZW4tY2E8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKyAgCisgIDxncm91cD4KKyAgICA8aWQ+Y2F0YWxhbi1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPkNhdGFsYW4gU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIGthdGFsw6FuxaF0aW51PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VW5kZXJzdMO4dHRlbHNlIGZvciBrYXRhbGFuc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgU3BhbmlzY2ggKEthdGFsYW5pZW4pPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIGNhdGFsw6FuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBjYXRhbGFuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+Q2F0YWzDs25za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgY2F0YWxhbm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgqvjgr/jg6vjg7zjg4vjg6Poqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7subTtg4jroZzri4jslYTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3Iga2F0YWxhbnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIENhdGFsw6NvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC60LDRgtCw0LvQvtC90YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBrYXRhbGFuc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5Yqg5rOw6ZqG6K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5Yqg5rOw6ZqG6Kqe5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5jYTwvbGFuZ29ubHk+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hc3BlbGwtY2E8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUNhdGFsYW48L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmJyYXppbGlhbi1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPkJyYXppbGlhbiBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gcG9ydHVnYWzFoXRpbnUgKEJyYXrDrWxpZSk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIGJyYXNpbGlhbnNrIHBvcnR1Z2lzaXNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIFBvcnR1Z2llc2lzY2ggKEJyYXNpbGllbik8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgYnJhc2lsZcOxbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgYnLDqXNpbGllbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkJyYXPDrWzDrXNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBpbCBicmFzaWxpYW5vPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44OW44Op44K444Or6Kqe44Gu44K144Od44O844OIPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+67iM65287KeI7Ja0IOyngOybkDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlN0w7h0dGUgZm9yIHBvcnR1Z2lzaXNrKEJyYXNpbCk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgUG9ydHVndcOqcyBkbyBCcmFzaWw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LHRgNCw0LfQuNC70YzRgdC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIGJyYXNpbGlhbnNrIHBvcnR1Z2lzaXNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuW3tOilv+ivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuW3tOilv+W8j+iRoeiQhOeJmeiqnuaUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+cHRfQlI8L2xhbmdvbmx5PgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+cG9ydHVndWVzZS1zdXBwb3J0PC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmFzcGVsbC1wdF9CUjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tQnJhemlsPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5jemVjaC1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPkN6ZWNoIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyDEjWXFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHRqZWtraXNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIFRzY2hlY2hpc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIGNoZWNvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCB0Y2jDqHF1ZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlRqw6lra25lc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGlsIGNlY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg4HjgqfjgrPoqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7ssrTsvZTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgdHNqZWtraXNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIENoZWNvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINGH0LXRiNGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgdGplY2tpc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5o235YWL6K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5o235YWL6Kqe5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5jejwvbGFuZ29ubHk+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5JU084ODU5LTItc3VwcG9ydDwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1DemVjaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLWNzPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5kYW5pc2gtc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5EYW5pc2ggU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIGTDoW7FoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIGRhbnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIETDpG5pc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIGRhbsOpczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgZGFub2lzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+RGFuc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGlsIGRhbmVzZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODh+ODs+ODnuODvOOCr+iqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuuNtOuniO2BrOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBkYW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBEaW5hbWFycXXDqnM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LTQsNGC0YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBkYW5za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7kuLnpuqbor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7kuLnpuqXoqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PmRhX0RLPC9sYW5nb25seT4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmFzcGVsbC1kYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tRGFuaXNoPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5tYW4tcGFnZXMtZGE8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmR1dGNoLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+RHV0Y2ggU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgaG9sYW5kxaF0aW55PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VW5kZXJzdMO4dHRlbHNlIGZvciBob2xsYW5kc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgSG9sbMOkbmRpc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIGhvbGFuZMOpczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgaG9sbGFuZGFpczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkhvbGxlbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBsJmFwb3M7b2xhbmRlc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgqrjg6njg7Pjg4Doqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7rhKTrjbjrnoDrk5zslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgbmVkZXJsYW5kc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgSG9sYW5kw6pzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC00LDRgtGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgbmVkZXJsw6RuZHNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuiNt+WFsOivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuiNt+iYreiqnuaUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+bmw8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YXNwZWxsLW5sPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1EdXRjaDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+ZXN0b25pYW4tc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5Fc3RvbmlhbiBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gZXN0b27FoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIGVzdGlzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBFc3RvbmlzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgZXN0b25pbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgZXN0b25pZW48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5FaXN0bmVza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgbCZhcG9zO2VzdG9uZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCqOOCueODiOODi+OCouiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyXkOyKpO2GoOuLiOyVhOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBlc3RsYW5kc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgRXN0w7NuaW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0Y3RgdGC0L7QvdGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgZXN0bmlza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7niLHmspnlsLzkupror63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7mhJvmspnlsLzkup7oqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PmV0X0VFPC9sYW5nb25seT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPklTTzg4NTktMi1zdXBwb3J0PC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUVzdG9uaWFuPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5maW5pc2gtc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5GaW5uaXNoIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBmaW7FoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIGZpbnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIEZpbm5pc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+RmluYWxpemFyIGVsIHNvcG9ydGU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGZpbm5vaXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5GaW5uc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGlsIGZpbmxhbmRlc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg5XjgqPjg7Pjg6njg7Pjg4noqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7tlYDrnoDrk5zslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgZmluc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgRmlubGFuZMOqczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCf0L7QtNC00LXRgNC20LrQsCDRhNC40L3RgdC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIGZpbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuiKrOWFsOivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuiKrOiYreiqnuaUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+ZmlfRkk8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tRmlubmlzaDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+Z2VybWFuLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+R2VybWFuIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBuxJttxI1pbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHR5c2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgRGV1dHNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBhbGVtw6FuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBhbGxlbWFuZDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPsOew71za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgdGVkZXNjbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODieOCpOODhOiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuuPheydvOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciB0eXNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIEFsZW3Do288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0L3QtdC80LXRhtC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIHR5c2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5b636K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5b636Kqe5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5kZV9ERTwvbGFuZ29ubHk+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hc3BlbGwtZGU8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUdlcm1hbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLWRlPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5ncmVlay1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPkdyZWVrIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyDFmWXEjXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIGdyw6ZzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBHcmllY2hpc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIGdyaWVnbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgZ3JlYzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkdyw61za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgZ3JlY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgq7jg6rjgrfjg6Poqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7qt7jrpqzsiqTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgZ3Jlc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgR3JlZ288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LPRgNC10YfQtdGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgZ3Jla2lza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7luIzohYror63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7luIzoh5joqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PmVsX0dSPC9sYW5nb25seT4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUdyZWVrPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5oZWJyZXctc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5IZWJyZXcgU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIGhlYnJlasWhdGludTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3IgaGVicmFpc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgSGVicsOkaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBoZWJyZW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGjDqWJyZXU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5IZWJyZXNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBsJmFwb3M7ZWJyYWljbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODmOODluODqeOCpOiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPu2XpOu4jOujqOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBoZWJyYWlzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBIZWJyZXU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0Y/Qt9GL0LrQsCDQuNCy0YDQuNGCPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBoZWJyZWlza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7luIzkvK/mnaXor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7luIzkvK/kvoboqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PmhlX0lMPC9sYW5nb25seT4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUhlYnJldzwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+aHVuZ2FyaWFuLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+SHVuZ2FyaWFuIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBtYcSPYXLFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHVuZ2FybnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIFVuZ2FyaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBow7puZ2FybzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgaG9uZ3JvaXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Vbmd2ZXJza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgbCZhcG9zO3VuZ2hlcmVzZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODj+ODs+OCrOODquODvOiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPu2XneqwgOumrOyVhOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciB1bmdhcnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIEh1bmdhcm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LLQtdC90LPQtdGA0YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciB1bmdlcnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuWMiOeJmeWIqeivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuWMiOeJmeWIqeiqnuaUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+aHVfSFU8L2xhbmdvbmx5PgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+SVNPODg1OS0yLXN1cHBvcnQ8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tSHVuZ2FyaWFuPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5zcGFuaXNoLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+U3BhbmlzaCBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gxaFwYW7Em2zFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHNwYW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBTcGFuaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBlc3Bhw7FvbDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgZXNwYWdub2w8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5TcMOhbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBsbyBzcGFnbm9sbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCueODmuOCpOODs+iqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyKpO2OmOyduOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBzcGFuc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgRXNwYW5ob2w8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LjRgdC/0LDQvdGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgc3BhbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuilv+ePreeJmeivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuilv+ePreeJmeiqnuaUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+ZXNfRVM8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YXNwZWxsLWVzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1TcGFuaXNoPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5tYW4tcGFnZXMtZXM8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmZyZW5jaC1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPkZyZW5jaCBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gZnJhbmNvdXrFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIGZyYW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBGcmFuesO2c2lzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgZnJhbmPDqXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGZyYW7Dp2FpczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkZyYW5za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgZnJhbmNlc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg5Xjg6njg7Pjgrnoqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7tlITrnpHsiqTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgZnJhbnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIEZyYW5jw6pzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINGE0YDQsNC90YbRg9C30YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBmcmFuc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5rOV6K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5rOV6Kqe5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5mcl9GUjwvbGFuZ29ubHk+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hc3BlbGwtZnI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUZyZW5jaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLWZyPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5pY2VsYW5kaWMtc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5JY2VsYW5kaWMgU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIGlzbGFuZMWhdGludTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3IgaXNsYW5kc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgSXNsw6RuZGlzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgaXNsYW5kw6lzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBpc2xhbmRhaXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj7DjXNsZW5za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgbCZhcG9zO2lzbGFuZGVzZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCouOCpOOCueODqeODs+ODieiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyVhOydtOyKrOuegOuTnOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBpc2xhbmRzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBJc2xhbmTDqnM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0LjRgdC70LDQvdC00YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBpc2zDpG5kc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5Yaw5bKb6K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5Yaw5bO26Kqe5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5pc19JUzwvbGFuZ29ubHk+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1JY2VsYW5kaWM8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPml0YWxpYW4tc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5JdGFsaWFuIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBpdGFsxaF0aW51PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VW5kZXJzdMO4dHRlbHNlIGZvciBpdGFsaWVuc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgSXRhbGllbmlzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgaXRhbGlhbm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGl0YWxpZW48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj7DjXRhbHNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBsJmFwb3M7aXRhbGlhbm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgqTjgr/jg6rjgqLoqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7snbTtg4jrpqzslYTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgaXRhbGllbnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIEl0YWxpYW5vPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC40YLQsNC70YzRj9C90YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBpdGFsaWVuc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5oSP5aSn5Yip6K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+576p5aSn5Yip5paH5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5pdF9JVDwvbGFuZ29ubHk+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hc3BlbGwtaXQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUl0YWxpYW48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm1hbi1wYWdlcy1pdDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+a29yZWFuLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+S29yZWFuIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBrb3JlasWhdGludTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3Iga29yZWFuc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgS29yZWFuaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBjb3JlYW5vPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBjb3LDqWVuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+S8OzcmVza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgY29yZWFubzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPumfk+WbveiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPu2VnOq1reyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBrb3JlYW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBDb3JlYW5vPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC60L7RgNC10LnRgdC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIGtvcmVhbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPumfqeaWh+aUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPumfk+aWh+aUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+a29fS1I8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bnZpLW0xN248L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUtvcmVhbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLWtvPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rV25uLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hbWk8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtXbm48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmhhbnRlcm0teGY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmgycHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm5ocGY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnR0Zm9udHMta288L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPm5vcndlZ2lhbi1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPk5vcndlZ2lhbiBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gbm9yxaF0aW51PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VW5kZXJzdMO4dHRlbHNlIGZvciBub3JzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBOb3J3ZWdpc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIG5vcnVlZ288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IG5vcnbDqWdpZW48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Ob3Jza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgbm9ydmVnZXNlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44OO44Or44Km44Kn44O86Kqe44Gu44K144Od44O844OIPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+64W466W07Juo7J207Ja0IOyngOybkDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlN0w7h0dGUgZm9yIG5vcnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIE5vcnVlZ3XDqnM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0L3QvtGA0LLQtdC20YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBub3Jza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7mjKrlqIHmlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7mjKrlqIHoqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5Pm5vX05PPC9sYW5nb25seT4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmFzcGVsbC1ubzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tTm9yd2VnaWFuPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1Ob3J3ZWdpYW4tTnlub3JzazwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+cG9saXNoLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+UG9saXNoIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBwb2zFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHBvbHNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIFBvbG5pc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIHBvbGFjbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgcG9sb25haXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Qw7Nsc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGlsIHBvbGFjY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg53jg7zjg6njg7Pjg4noqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7tj7TrnoDrk5zslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgcG9sc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgUG9sYWNvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC/0L7Qu9GM0YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBwb2xza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7ms6LlhbDor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7ms6LomK3oqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PnBsX1BMPC9sYW5nb25seT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPklTTzg4NTktMi1zdXBwb3J0PC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLVBvbGlzaDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLXBsPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5wb3J0dWd1ZXNlLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+UG9ydHVndWVzZSBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gcG9ydHVnYWzFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHBvcnR1Z2lzaXNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIFBvcnR1Z2llc2lzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgcG9ydHVndcOpczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgcG9ydHVnYWlzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+UG9ydMO6Z2Fsc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGlsIHBvcnRvZ2hlc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg53jg6vjg4jjgqzjg6voqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7tj6zrpbTtiKzqsIjslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgcG9ydHVnaXNpc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgUG9ydHVndcOqczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCf0L7QtNC00LXRgNC20LrQsCDQv9C+0YDRgtGD0LPQsNC70YzRgdC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIHBvcnR1Z2lzaXNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuiRoeiQhOeJmeivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuiRoeiQhOeJmeiqnuaUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+cHQ8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YXNwZWxsLXB0PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1Qb3J0dWd1ZXNlPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisgIAorICA8Z3JvdXA+CisgICAgPGlkPnJvbWFuaWFuLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+Um9tYW5pYW4gU3VwcG9ydDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIHJ1bXVuxaF0aW51PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VW5kZXJzdMO4dHRlbHNlIGZvciBydW3Dpm5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBSdW3DpG5pc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIHJ1bWFubzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgcm91bWFpbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlLDs21hbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBpbCByb21lbm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg6vjg7zjg57jg4vjgqLoqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7ro6jrp4jri4jslYTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgcnVtZW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBSb21lbm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0YDRg9C80YvQvdGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgcnVtw6Ruc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+572X6ams5bC85Lqa6K+t5pSv5oyBPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+576F6aas5bC85Lqe6Kqe5pSv5o+0PC9uYW1lPgorICAgIDxsYW5nb25seT5yb19STzwvbGFuZ29ubHk+CisgICAgPGdyb3VwbGlzdD4KKyAgICAgIDxncm91cHJlcT5JU084ODU5LTItc3VwcG9ydDwvZ3JvdXByZXE+CisgICAgPC9ncm91cGxpc3Q+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiIHJlcXVpcmVzPSJrZGVsaWJzIj5rZGUtaTE4bi1Sb21hbmlhbjwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorICAKKyAgPGdyb3VwPgorICAgIDxpZD5ydXNzaWFuLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+UnVzc2lhbiBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gcnXFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHJ1c3Npc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgUnVzc2lzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgcnVzbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlN1cHBvcnQgcnVzc2U8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Sw7pzc25lbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBpbCBydXNzbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODreOCt+OCouiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuufrOyLnOyVhOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBydXNzaXNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIFJ1c3NvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINGA0YPRgdGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgcnlza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7kv4Tor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7kv4Toqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PnJ1X1JVPC9sYW5nb25seT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmN5cmlsbGljLXN1cHBvcnQ8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tUnVzc2lhbjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLXJ1PC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisgIAorICA8Z3JvdXA+CisgICAgPGlkPnNlcmJpYW4tc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5TZXJiaWFuIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHNyYsWhdGlueTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3Igc2VyYmlzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBTZXJiaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBzZXJiaW88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IHNlcmJlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+U2VyYm5lc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGlsIHNlcmJvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44K344OZ44Oq44Ki6Kqe44Gu44K144Od44O844OIPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+7IS466W067mE7JWE7Ja0IOyngOybkDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlN0w7h0dGUgZm9yIHNlcmJpc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgU8OpcnZpbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCf0L7QtNC00LXRgNC20LrQsCDRgdC10YDQsdGB0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgc2VyYmlza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7loZ7lsJTnu7Tkupror63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7os73niL7ntq3kup7oqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PnNyX1lVPC9sYW5nb25seT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPklTTzg4NTktMi1zdXBwb3J0PC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLVNlcmJpYW48L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKyAgCisgIDxncm91cD4KKyAgICA8aWQ+c2xvdmFrLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+U2xvdmFrIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBzbG92ZW7FoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHNsb3Zha2lzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBTbG93YWtpc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIGVzbG92YWNvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBzbG92YXF1ZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlNsw7N2YWs8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgbG8gc2xvdmFjY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgrnjg63jg5Djgq3jgqLoqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7siqzroZzrsJTtgqTslYTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3Igc2xvdmFraXNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIEVzbG92YWNvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINGB0LvQvtCy0LDRhtC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIHNsb3Zha2lza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7mlq/mtJvkvJDlhYvor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7mlq/mtJvkvJDlhYvoqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PnNrX1NLPC9sYW5nb25seT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPklTTzg4NTktMi1zdXBwb3J0PC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLVNsb3ZhazwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+c2xvdmVuaWFuLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+U2xvdmVuaWFuIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBzbG92aW7FoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHNsb3ZlbnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3VwcG9ydCBmw7xyIFNsb3dlbmlzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgZXNsb3ZlbmlvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBzbG92w6huZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlNsw7N2bmVuc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGxvIHNsb3Zlbm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgrnjg63jg5njg4vjgqLoqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7siqzroZzrsqDsnbTslYTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3Igc2xvdmVuc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgRXNsb3bDqW5pbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCf0L7QtNC00LXRgNC20LrQsCDRgdC70L7QstC10L3RgdC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIHNsb3ZlbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuaWr+a0m+aWh+WwvOS6muivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuaWr+a0m+azleWwvOS6nuiqnuaUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+c2xfU0k8L2xhbmdvbmx5PgorICAgIDxncm91cGxpc3Q+CisgICAgICA8Z3JvdXByZXE+SVNPODg1OS0yLXN1cHBvcnQ8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tU2xvdmVuaWFuPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisgIAorICA8Z3JvdXA+CisgICAgPGlkPnN3ZWRpc2gtc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5Td2VkaXNoIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyDFoXbDqWTFoXRpbnU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VbmRlcnN0w7h0dGVsc2UgZm9yIHN2ZW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBTY2h3ZWRpc2NoPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+U29wb3J0ZSBwYXJhIGVsIHN1ZWNvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCBzdcOpZG9pczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlPDpm5za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgbG8gc3ZlZGVzZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCueOCpuOCp+ODh+ODvOODs+iqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyKpOybqOuNtOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBzdmVuc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TdXBvcnRlIGEgU3VlY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0YjQstC10LTRgdC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIHN2ZW5za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7nkZ7lhbjor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7nkZ7lhbjoqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PnN2X1NFPC9sYW5nb25seT4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmFzcGVsbC1zdjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tU3dlZGlzaDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorICAKKyAgPGdyb3VwPgorICAgIDxpZD50dXJraXNoLXN1cHBvcnQ8L2lkPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPG5hbWU+VHVya2lzaCBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gdHVyZcSNdGludTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3IgdHlya2lzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBUw7xya2lzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgdHVyY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IHR1cmM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5UeXJrbmVza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgdHVyY288L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg4jjg6vjgrPoqp7jga7jgrXjg53jg7zjg4g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7thLDtgqTslrQg7KeA7JuQPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3TDuHR0ZSBmb3IgVHlya2lzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBUdXJjbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCf0L7QtNC00LXRgNC20LrQsCDRgtGD0YDQtdGG0LrQvtCz0L4g0Y/Qt9GL0LrQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlN0w7ZkIGbDtnIgdHVya2lza2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7lnJ/ogLPlhbbor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7lnJ/ogLPlhbboqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PnRyX1RSPC9sYW5nb25seT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPklTTzg4NTktOS1zdXBwb3J0PC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLVR1cmtpc2g8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPnVrcmFpbmlhbi1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPlVrcmFpbmlhbiBTdXBwb3J0PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UG9kcG9yYSBwcm8gdWtyYWppbsWhdGludTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3IgdWtyYWluc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgVWtyYWluaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCB1Y3Jhbmlhbm8gPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U3VwcG9ydCB1a3JhaW5pZW48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj7DmmtyYcOtbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN1cHBvcnRvIHBlciBsJmFwb3M7dWNyYWlubzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCpuOCr+ODqeOCpOODiuiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyasO2BrOudvOydtOuCmOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciB1a3JhaW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBVY3Jhbmlhbm88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9C+0LTQtNC10YDQttC60LAg0YPQutGA0LDQuNC90YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciB1a3JhaW5za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7kuYzlhYvlhbDor63mlK/mjIE8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7ng4/lhYvomK3oqp7mlK/mj7Q8L25hbWU+CisgICAgPGxhbmdvbmx5PnVrX1VBPC9sYW5nb25seT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmN5cmlsbGljLXN1cHBvcnQ8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tVWtyYWluaWFuPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgICA8Z3JvdXA+CisgICAgPGlkPmNoaW5lc2Utc3VwcG9ydDwvaWQ+CisgICAgPHVzZXJ2aXNpYmxlPmZhbHNlPC91c2VydmlzaWJsZT4KKyAgICA8bmFtZT5DaGluZXNlIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyDEjcOtbsWhdGludTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3Iga2luZXNpc2s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5TdXBwb3J0IGbDvHIgQ2hpbmVzaXNjaDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNvcG9ydGUgcGFyYSBlbCBjaGlubyA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGNoaW5vaXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Lw61udmVyc2thPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+U3VwcG9ydG8gcGVyIGlsIGNpbmVzZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuS4reWbveiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuykkeq1reyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBraW5lc2lzazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlN1cG9ydGUgYSBDaGluw6pzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINC60LjRgtCw0LnRgdC60L7Qs9C+INGP0LfRi9C60LA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TdMO2ZCBmw7ZyIGtpbmVzaXNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuS4reaWh+aUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuS4reaWh+aUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+emg8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bnZpLW0xN248L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUNoaW5lc2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCIgcmVxdWlyZXM9ImtkZWxpYnMiPmtkZS1pMThuLUNoaW5lc2UtQmlnNTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLWtvPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jV25uLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJ0YWJlLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jV25uPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5taW5pQ2hpbnB1dDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c3RhcmRpY3Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnRXbm48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnR0Zm9udHMtemhfVFc8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnR0Zm9udHMtemhfQ048L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnRhaXBlaWZvbnRzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij54Y2luPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5iZzVwczwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgICAgPGdyb3VwPgorICAgIDxpZD5qYXBhbmVzZS1zdXBwb3J0PC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPkphcGFuZXNlIFN1cHBvcnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Qb2Rwb3JhIHBybyBqYXBvbsWhdGludTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlVuZGVyc3TDuHR0ZWxzZSBmb3IgamFwYW5zazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlN1cHBvcnQgZsO8ciBKYXBhbmlzY2g8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5Tb3BvcnRlIHBhcmEgZWwgamFwb27DqXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5TdXBwb3J0IGphcG9uYWlzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+SmFwYW5za2E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdXBwb3J0byBwZXIgaWwgZ2lhcHBvbmVzZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuaXpeacrOiqnuOBruOCteODneODvOODiDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuydvOuzuOyWtCDsp4Dsm5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlIGZvciBqYXBhbnNrPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+U3Vwb3J0ZSBhIEphcG9uw6pzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQutCwINGP0L/QvtC90YHQutC+0LPQviDRj9C30YvQutCwPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3TDtmQgZsO2ciBqYXBhbnNrYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuaXpeivreaUr+aMgTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuaXpeaWh+aUr+aPtDwvbmFtZT4KKyAgICA8bGFuZ29ubHk+amFfSlA8L2xhbmdvbmx5PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Q2FubmE8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmpjb2RlLnBsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rYWthc2ktZGljdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2NjPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rb24yPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rb24yLWZvbnRzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5sdjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bnZpLW0xN248L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm52aS1tMTduLWNhbm5hPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5wZXJsLU5LRjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cGVybC1UZXh0LUtha2FzaTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bmtmPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij50dGZvbnRzLWphPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij53YXRhbmFiZS12ZjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIiByZXF1aXJlcz0ia2RlbGlicyI+a2RlLWkxOG4tSmFwYW5lc2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmZvbnRzLWphPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5qaXNrc3AxNDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+amlza3NwMTYtMTk5MDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+RnJlZVdubjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2FwcGEyMDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2lucHV0Mi1jYW5uYS13bm42PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rbm1fbmV3PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rdGVybTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c2trZGljPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5za2tpbnB1dDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bWFuLXBhZ2VzLWphPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rYWthc2ktZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPldubjYtU0RLLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5uYW1henUtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmRldmVsb3BtZW50LXRvb2xzPC9pZD4KKyAgICA8bmFtZT5EZXZlbG9wbWVudCBUb29sczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlbDvXZvam92w6kgbsOhc3Ryb2plPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VWR2aWtsaW5nc3bDpnJrdMO4amVyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+RW50d2lja2x1bmdzdG9vbHM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5IZXJyYW1pZW50YXMgZGUgZGVzYXJyb2xsbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPk91dGlscyBkZSBkw6l2ZWxvcHBlbWVudDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPsOecsOzdW5hcnTDs2w8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdHJ1bWVudGkgZGkgc3ZpbHVwcG88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7plovnmbrjg4Tjg7zjg6s8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7qsJzrsJzsmqkg64+E6rWsPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+VXR2aWtsaW5nc3Zlcmt0w7h5PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+RmVycmFtZW50YXMgZGUgRGVzZW52b2x2aW1lbnRvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHRgNC10LTRgdGC0LLQsCDRgNCw0LfRgNCw0LHQvtGC0LrQuDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlV0dmVja2xpbmdzdmVya3R5ZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuW8gOWPkeW3peWFtzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPumWi+eZvOW3peWFtzwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhlc2UgdG9vbHMgaW5jbHVkZSBjb3JlIGRldmVsb3BtZW50IHRvb2xzIHN1Y2ggYXMgYXV0b21ha2UsIGdjYywgcGVybCwgcHl0aG9uLCBhbmQgZGVidWdnZXJzLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VHl0byBuw6FzdHJvamUgemFocm51asOtIHrDoWtsYWRuw60gdsO9dm9qb3bDqSBuw6FzdHJvamUgamFrbyBhdXRvbWFrZSwgZ2NjLCBwZXJsLCBweXRob24gYSBsYWTDrWPDrSBuw6FzdHJvamUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRhIj5EaXNzZSB2w6Zya3TDuGplciBpbmtsdWRlcmVyIGJhc2FsZSB1ZHZpa2xpbmdzdsOmcmt0w7hqZXIgc29tIGZ4IGF1dG9tYWtlLCBnY2MsIHBlcmwsIHB5dGhvbiBvZyBmZWpsc8O4Z25pbmdzdsOmcmt0w7hqZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5adSBkaWVzZW4gVG9vbHMgZ2Vow7ZyZW4gZ3J1bmRsZWdlbmRlIEVudHdpY2tsdW5nc3Rvb2xzIHdpZSBhdXRvbWFrZSwgZ2NjLCBwZXJsLCBweXRob24gdW5kIGRlYnVnZ2Vycy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVzdGFzIGhlcnJhbWllbnRhcyBpbmNsdXllbiBoZXJyYW1pZW50YXMgZGUgZGVzYXJyb2xsbyBkZSBuw7pjbGVvIGNvbW8gcG9yIGVqZW1wbG8gYXV0b21ha2UsIGdjYywgcGVybCwgcHl0aG9uIHkgZGVwdXJhZG9yZXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5DZXMgb3V0aWxzIGNvbXByZW5uZW50IGRlcyBvdXRpbHMgZGUgZMOpdmVsb3BwZW1lbnQgbcOpbW9pcmUgY29tbWUgYXV0b21ha2UsIGdjYywgcGVybCwgcHl0aG9uLCBhaW5zaSBxdWUgZGVzIGTDqWJvZ3VldXJzLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+w55lc3NpIHTDs2wgZXJ1IG1lw7BhbCBhbm5hcnMgYXV0b21ha2UsIGdjYywgcGVybCwgcHl0aG9uIG9nIGFmbMO6c3VuYXJ0w7NsLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpdCI+UXVlc3RpIHN0cnVtZW50aSBpbmNsdWRvbm8gaSBwcmluY2lwYWxpIHRvb2wgZGkgc3ZpbHVwcG8gdHJhIGN1aSBhdXRvbWFrZSwgZ2NjLCBwZXJsLCBweXRob24sIGUgaSBkZWJ1Z2dlci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OCjOOCieOBruODhOODvOODq+OBq+OBr+OAgWF1dG9tYWtlLCBnY2MsIHBlcmwsIHB5dGhvbiwg5Y+K44Gz44OH44OQ44OD44Ks44Gq44Gp44Gu44Kz44Ki6ZaL55m644OE44O844Or44GMIOWQq+OBvuOCjOOBpuOBhOOBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IOuPhOq1rOyXkOuKlCBhdXRvbWFrZSwgZ2NjLCBwZXJsLCBweXRob27qs7wg65SU67KE6rGw7JmAIOqwmeydgCDtlbXsi6wg6rCc67Cc7JqpIOuPhOq1rOqwgCDtj6ztlajrkJjslrQg7J6I7Iq164uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGlzc2UgdmVya3TDuHllbmUgaW5rbHVkZXJlciB1dHZpa2xpbmdzdmVya3TDuHkgc29tIGF1dG9tYWtlLCBnY2MsIHBlcmwsIHB5dGhvbiBvZyBhdmx1c2VyZS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGFzIGZlcnJhbWVudGFzIGluY2x1ZW0gYXMgZmVycmFtZW50YXMgYsOhc2ljYXMgZGUgZGVzZW52b2x2aW1lbnRvIGNvbW8gbyBhdXRvbWFrZSwgbyBnY2MsIG8gcGVybCwgbyBweXRob24gZSBvcyBkZXB1cmFkb3Jlcy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCt0YLQuCDRgdGA0LXQtNGB0YLQstCwINCy0LrQu9GO0YfQsNGO0YIg0L7RgdC90L7QstC90YvQtSDRgdGA0LXQtNGB0YLQstCwINGA0LDQt9GA0LDQsdC+0YLQutC4LCDRgtCw0LrQuNC1INC60LDQuiBhdXRvbWFrZSwgZ2NjLCBwZXJsLCBweXRob24g0Lgg0L7RgtC70LDQtNGH0LjQutC4LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVzc2EgdmVya3R5ZyBpbmtsdWRlcmFyIGvDpHJudXR2ZWNrbGluZ3N2ZXJrdHlnIHNvbSBleGVtcGVsdmlzIGF1dG9tYWtlLCBnY2MsIHBlcmwsIHB5dGhvbiBvY2ggZmVsc8O2a25pbmdzdmVya3R5Zy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfQ04iPui/meS6m+W3peWFt+WMheaLrCBhdXRvbWFrZeOAgWdjY+OAgXBlcmzjgIFweXRob24g5ZKM6LCD6K+V5Zmo5LmL57G755qE5qC45b+D5byA5Y+R5bel5YW344CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7pgJnkupvlt6XlhbfljIXmi6zkuLvopoHnmoTplovnmbzlt6XlhbfvvIzkvovlpoIgYXV0b21ha2UsIGdjYywgcGVybCwgcHl0aG9uIOS7peWPiiBkZWJ1Z2dlcnPjgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmRldmVsb3BtZW50LWxpYnM8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5FbGVjdHJpY0ZlbmNlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hdXRvY29uZjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmF1dG9tYWtlMTQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5hdXRvbWFrZTE1PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hdXRvbWFrZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+YmludXRpbHM8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmJpc29uPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5ieWFjYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Y2RlY2w8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+Y3Byb3RvPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Y3ZzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmRkZDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZGV2ODY8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5kaWZmc3RhdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmRveHlnZW48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+ZG1hbGxvYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5leHBlY3Q8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmZsZXg8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdjYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z2NjLWMrKzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdjYy1nNzc8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5nY2MtZ25hdDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmdjYy1qYXZhPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmdjYy1vYmpjPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nZGI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdldHRleHQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5pbmRlbnQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYnRvb2w8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5sdHJhY2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm1ha2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5tZW1wcm9mPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPm5hc208L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJvcHRpb25hbCI+bmphbWQ8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5wYXRjaHV0aWxzPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5wZXJsLUNQQU48L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnBrZ2NvbmZpZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5wbWFrZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5wc3RhY2s8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnB5dGhvbi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnJjczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cnBtLWJ1aWxkPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5yZWRoYXQtcnBtLWNvbmZpZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnNwbGludDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c3RyYWNlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij50ZXhpbmZvPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5kZXZlbG9wbWVudC1saWJzPC9pZD4KKyAgICA8bmFtZT5EZXZlbG9wbWVudCBMaWJyYXJpZXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Lbmlob3ZueSBwcm8gdsO9dm9qPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VWR2aWtsaW5nc2JpYmxpb3Rla2VyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+RW50d2lja2x1bmdzYmlibGlvdGhla2VuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+TGlicmVyw61hcyBkZSBkZXNhcnJvbGxvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+QmlibGlvdGjDqHF1ZXMgZGUgZMOpdmVsb3BwZW1lbnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj7DnnLDs3VuYXJhw7BnZXLDsGFzw7ZmbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPkxpYnJlcmllIGRpIHN2aWx1cHBvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+6ZaL55m644Op44Kk44OW44Op44OqPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+6rCc67Cc7JqpIOudvOydtOu4jOufrOumrDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlV0dmlrbGluZ3NiaWJsaW90ZWs8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5CaWJsaW90ZWNhcyBkZSBEZXNlbnZvbHZpbWVudG88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QkdC40LHQu9C40L7RgtC10LrQuCDQtNC70Y8g0YDQsNC30YDQsNCx0L7RgtC60Lg8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5VdHZlY2tsaW5nc2JpYmxpb3RlazwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuW8gOWPkeW6kzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPumWi+eZvOWHveW8j+W6qzwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhlIHBhY2thZ2VzIGluIHRoaXMgZ3JvdXAgYXJlIGNvcmUgbGlicmFyaWVzIG5lZWRlZCB0byBkZXZlbG9wIGFwcGxpY2F0aW9ucy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPkJhbMOtxI1reSB2IHTDqXRvIHNrdXBpbsSbIGpzb3UgesOha2xhZG7DrSBrbmlob3ZueSBwb3TFmWVibsOpIHBybyB2w712b2ogYXBsaWthY8OtLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+UGFra2VybmUgaSBkZW5uZSBncnVwcGUgZXIgYmFzYWxlIGJpYmxpb3Rla2VyIHNvbSBiZWjDuHZlcyB0aWwgdWR2aWtsaW5nIGFmIHByb2dyYW0uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5CZWkgZGVuIFBha2V0ZW4gZGllc2VyIEdydXBwZSBoYW5kZWx0IGVzIHNpY2ggdW0gZ3J1bmRsZWdlbmRlIEJpYmxpb3RoZWtlbiBmw7xyIGRpZSBFbnR3aWNrbHVuZyB2b24gQW53ZW5kdW5nZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5Mb3MgcGFxdWV0ZXMgZGUgZXN0ZSBncnVwbyBzb24gbGlicmVyw61hcyBkZSBuw7pjbGVvIG5lY2VzYXJpYXMgcGFyYSBkZXNhcnJvbGxhciBhcGxpY2FjaW9uZXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5MZXMgcGFxdWV0YWdlcyBkZSBjZSBncm91cGUgc29udCBkZXMgYmlibGlvdGjDqHF1ZXMgZGUgbcOpbW9pcmUgbsOpY2Vzc2FpcmVzIGF1IGTDqXZlbG9wcGVtZW50IGQmYXBvczthcHBsaWNhdGlvbnMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImlzIj5QYWtrYXJuaXIgw60gw75lc3N1bSBow7NwIGVydSBncnVubmHDsGdlcsOwYXPDtmZuaW4gc2VtIMO+YXJmIHRpbCBhw7Agw75yw7NhIGh1Z2LDum5hw7AuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9Iml0Ij5JIHBhY2NoZXR0aSBkaSBxdWVzdG8gZ3J1cHBvIHNvbm8gbGUgcHJpbmNpcGFsaSBsaWJyZXJpZSBkaSBzdmlsdXBwbyBkZWxsZSBhcHBsaWNhemlvbmkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj7jgZPjga7jgrDjg6vjg7zjg5fjga7jg5Hjg4PjgrHjg7zjgrjjga/jgqLjg5fjg6rjgrHjg7zjgrfjg6fjg7Pjga7plovnmbrjgavlv4XopoHjgarjgrPjgqLjg6njgqTjg5bjg6njg6rjgafjgZnjgII8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ia28iPuydtCDtjKjtgqTsp4Ag6re466O57J2AIOydkeyaqSDtlITroZzqt7jrnqjsnYQg6rCc67Cc7ZWY64qU642wIO2VhOyalO2VnCDtlbXsi6wg65287J2067iM65+s66as7J6F64uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+UGFra2VuZSBpIGRlbm5lIGdydXBwZW4gZXIgYmFzaXMtYmlibGlvdGVrZXIgZm9yIGJydWsgdmVkIHByb2dyYW11dHZpa2xpbmcuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5PcyBwYWNvdGVzIG5lc3RlIGdydXBvIGNvbnTDqW0gYmlibGlvdGVjYXMgZGUgYmFzZSBuZWNlc3PDoXJpYXMgcGFyYSBkZXNlbnZvbHZlciBhcGxpY2HDp8O1ZXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0LAg0LPRgNGD0L/Qv9CwINGB0L7QtNC10YDQttC40YIg0LHQuNCx0LvQuNC+0YLQtdC60Lgg0L3QtdC+0LHRhdC+0LTQuNC80YvQtSDQtNC70Y8g0YDQsNC30YDQsNCx0L7RgtC60Lgg0L/RgNC40LvQvtC20LXQvdC40LkuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5QYWtldGVuIGkgZGVubmEgZ3J1cHAgw6RyIGvDpHJuYmlibGlvdGVrIHNvbSBiZWjDtnZzIGbDtnIgdXR2ZWNrbGluZyBhdiBwcm9ncmFtLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6K+l57uE5Lit55qE6L2v5Lu25YyF5piv5byA5Y+R5bqU55So56iL5bqP5omA6ZyA55qE5qC45b+D5bqT44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7pgJnlgIvnvqTntYTkuK3nmoTlpZfku7bmmK/nlKjkvobplovnmbzmh4nnlKjnqIvlvI/miYDpnIDnmoTkuLvopoHlh73lvI/luqvjgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT5mYWxzZTwvdXNlcnZpc2libGU+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jdXJsLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jeXJ1cy1zYXNsLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5kYjQtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmRiNC11dGlsczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZGlhbG9nPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5leHBhdC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z2RibS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z21wLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5ncG0tZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmhlc2lvZC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a3JiNS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a3JiYWZzLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rdWR6dS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGliY2FwLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJ0ZXJtY2FwLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJ1c2ItZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYnVzZXItZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYnhtbC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGlieG1sMi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bG9ja2Rldi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bW9kdXRpbHMtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm5jdXJzZXMtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm5ld3QtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPm9wZW5sZGFwLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5vcGVuc3NsLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5wYW0tZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnBjaXV0aWxzLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5yZWFkbGluZS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cnBtLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5zbGFuZy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+c3dpZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+emxpYi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmxpYm9nZy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPmxpYnZvcmJpcy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+a2VybmVsLWRldmVsb3BtZW50PC9pZD4KKyAgICA8bmFtZT5LZXJuZWwgRGV2ZWxvcG1lbnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Ww712b2ogasOhZHJhPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+S2VybmV1ZHZpa2xpbmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5LZXJuZWwtRW50d2lja2x1bmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5EZXNhcnJvbGxvIGRlbCBrZXJuZWw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5Ew6l2ZWxvcHBlbWVudCBkdSBub3lhdTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPktqYXJuYcO+csOzdW48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdmlsdXBwbyBkZWwga2VybmVsPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44Kr44O844ON44Or6ZaL55m6PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+7Luk64SQIOqwnOuwnDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPktqZXJuZXV0dmlrbGluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkRlc2Vudm9sdmltZW50byBkbyBLZXJuZWw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QodGA0LXQtNGB0YLQstCwINC00LvRjyDRgNCw0LfRgNCw0LHQvtGC0LrQuCDRj9C00YDQsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPkvDpHJudXR2ZWNrbGluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuWGheaguOW8gOWPkTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuaguOW/g+mWi+eZvDwvbmFtZT4KKyAgICA8ZGVzY3JpcHRpb24+SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyB0byByZWNvbXBpbGUgdGhlIGtlcm5lbC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPlR5dG8gYmFsw63EjWt5IG5haW5zdGFsdWp0ZSBwcm8gcmVrb21waWxhY2kgasOhZHJhLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+SW5zdGFsbMOpciBkaXNzZSBwYWtrZXIgZm9yIGF0IG92ZXJzw6Z0dGUgb20ga2VybmVuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSI+SW5zdGFsbGllcmVuIFNpZSBkaWVzZSBQYWtldGUsIHdlbm4gU2llIHNlbGJlciBkZW4gS2VybmVsIMO8YmVyc2V0emVuIG3DtmNodGVuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+U2V0dHUgw75lc3NhIHBha2thIGlubiBlZiDDvsO6IHZpbHQgZW5kdXLDvsO9w7BhIGtqYXJuYW5uLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+44Kr44O844ON44Or44KS5YaN44Kz44Oz44OR44Kk44Or44GZ44KL54K644Gr44GT44KM44KJ44Gu44OR44OD44Kx44O844K444KS44Kk44Oz44K544OI44O844Or44GX44G+44GZ44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj7su6TrhJDsnYQg7J6s7Lu07YyM7J287ZWY7Iuc66Ck66m0IOydtCDtjKjtgqTsp4Drpbwg7ISk7LmY7ZWY7Iut7Iuc7JikLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+SW5zdGFsbGVyIGRpc3NlIHBha2tlbmUgZm9yIMOlIHJla29tcGlsZXJlIGtqZXJuZW4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5JbnN0YWxlIGVzdGVzIHBhY290ZXMgcGFyYSByZWNvbXBpbGFyIG8gbsO6Y2xlby48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icnUiPtCj0YHRgtCw0L3QvtCy0LjRgtC1INGN0YLQuCDQv9Cw0LrQtdGC0Ysg0LTQu9GPINC/0LXRgNC10LrQvtC80L/QuNC70Y/RhtC40Lgg0Y/QtNGA0LAg0YHQuNGB0YLQtdC80YsuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InN2Ij5JbnN0YWxsZXJhIGRlc3NhIHBha2V0IGbDtnIgYXR0IGtvbXBpbGVyYSBvbSBrw6RybmFuLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+5a6J6KOF6L+Z5Lqb6L2v5Lu25YyF5p2l6YeN5paw57yW6K+R5YaF5qC444CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7oq4vlronoo53pgJnkupvlpZfku7bku6Xph43mlrDnt6jora/moLjlv4PjgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmRldmVsb3BtZW50LXRvb2xzPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtlcm5lbC1zb3VyY2U8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYmF0dHItZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYmFjbC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPnRrPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5sZWdhY3ktc29mdHdhcmUtZGV2ZWxvcG1lbnQ8L2lkPgorICAgIDxuYW1lPkxlZ2FjeSBTb2Z0d2FyZSBEZXZlbG9wbWVudDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcmEgcHJvIHbDvXZvaiB6ZMSbZMSbbsOpaG8gc29mdHdhcmU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5VZHZpa2xpbmcgYWYgw6ZsZHJlIHByb2dyYW1tZWw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5MZWdhY3ktU29mdHdhcmUgRW50d2lja2x1bmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5EZXNhcnJvbGxvIGRlbCBzb2Z0d2FyZSBkZSBsZWdhZG88L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5Ew6l2ZWxvcHBlbWVudCBkdSBsb2dpY2llbCBow6lyaXTDqTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPsOecsOzdW5hcnTDs2wgZnlyaXIgZ8O2bXVsIGZvcnJpdDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN2aWx1cHBvIGRlbCBsZWdhY3kgc29mdHdhcmU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jg6zjgqzjgrfjg7zjgr3jg5Xjg4jjgqbjgqfjgqLjg7zjga7plovnmbo8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7roIjqsbDsi5wg7IaM7ZSE7Yq47Juo7Ja0IOqwnOuwnDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlByb2dyYW12YXJldXR2aWtsaW5nIGZvciBlbGRyZSBzeXN0ZW1lci48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5EZXNlbnZvbHZpbWVudG8gZGUgU29mdHdhcmUgTGVnYWRvPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHRgNC10LTRgdGC0LLQsCDQtNC70Y8g0YDQsNC30YDQsNCx0L7RgtC60Lgg0YPRgdGC0LDRgNC10LLRiNC40YUg0L/RgNC40LvQvtC20LXQvdC40Lk8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5VdHZlY2tsaW5nIGF2IMOkbGRyZSBwcm9ncmFtdmFyYTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuWOn+acieeahOi9r+S7tuW8gOWPkTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuiIiuW8j+i7n+mrlOmWi+eZvDwvbmFtZT4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Y29tcGF0LWdjYzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Y29tcGF0LWdjYy1jKys8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmNvbXBhdC1nY2MtZzc3PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jb21wYXQtbGlic3RkYysrPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jb21wYXQtbGlic3RkYysrLWRldmVsPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD54LXNvZnR3YXJlLWRldmVsb3BtZW50PC9pZD4KKyAgICA8bmFtZT5YIFNvZnR3YXJlIERldmVsb3BtZW50PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+VsO9dm9qIHNvZnR3YXJlIHBybyBYPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+WC1wcm9ncmFtbWVsdWR2aWtsaW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+WCBTb2Z0d2FyZWVudHdpY2tsdW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+RGVzYXJyb2xsbyBkZWwgc29mdHdhcmUgWDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPkTDqXZlbG9wcGVtZW50IGR1IGxvZ2ljaWVsIFg8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5IdWdiw7puYcOwYXLDvnLDs3VuIGZ5cmlyIFggZ2x1Z2dha2VyZmnDsDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN2aWx1cHBvIGRlbCBzb2Z0d2FyZSBYPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+WOOCveODleODiOOCpuOCp+OCoumWi+eZujwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPlgg7IaM7ZSE7Yq47Juo7Ja0IOqwnOuwnDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlByb2dyYW12YXJldXR2aWtsaW5nIGZvciBYPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+RGVzZW52b2x2aW1lbnRvIGRlIFNvZnR3YXJlIHBhcmEgWDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCg0LDQt9GA0LDQsdC+0YLQutCwINCf0J4g0LTQu9GPIFg8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5YLXByb2dyYW12YXJ1dXR2ZWNrbGluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPlgg6L2v5Lu25byA5Y+RPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+WCDou5/pq5Tplovnmbw8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPlRoZXNlIHBhY2thZ2VzIGFsbG93IHlvdSB0byBkZXZlbG9wIGFwcGxpY2F0aW9ucyBmb3IgdGhlIFggV2luZG93IFN5c3RlbS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPlR5dG8gYmFsw63EjWt5IFbDoW0gdW1vxb5uw60gdnl2w61qZXQgYXBsaWthY2UgcHJvIFggV2luZG93IFN5c3RlbS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkRpc3NlIHBha2tlciBsYWRlciBkaWcgdWR2aWtsZSBwcm9ncmFtbWVyIGZvciB2aW5kdWVzc3lzdGVtZXQgWC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiPk1pdCBkaWVzZW4gUGFrZXRlbiBrw7ZubmVuIFNpZSBBbndlbmR1bmdlbiBmw7xyIGRhcyBYIFdpbmRvdyBTeXN0ZW0gZW50d2lja2Vsbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkVzdG9zIHBhcXVldGVzIGxlIHBlcm1pdGVuIGRlc2Fycm9sbGFyIGFwbGljYWNpb25lcyBwYXJhIGVsIHNpc3RlbWEgWCBXaW5kb3cuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5DZXMgcGFxdWV0YWdlcyB2b3VzIHBlcm1ldHRlbnQgZGUgZMOpdmVsb3BwZXIgbGVzIGFwcGxpY2F0aW9ucyBwb3VyIGxlIHN5c3TDqG1lIFggV2luZG93LjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+w55lc3NpciBwYWtrYXIgZ2VyYSDDvsOpciBrbGV5ZnQgYcOwIMO+csOzYSBodWdiw7puYcOwIGZ5cmlyIFggZ2x1Z2dha2VyZmnDsC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPlF1ZXN0aSBwYWNjaGV0dGkgY29uc2VudG9ubyBkaSBzdmlsdXBwYXJlIGFwcGxpY2F6aW9uaSBwZXIgaWwgc2lzdGVtYSBYIFdpbmRvdy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iamEiPuOBk+OCjOOCieOBruODkeODg+OCseODvOOCuOOBp1ggV2luZG93IFN5c3RlbeeUqOOBruOCouODl+ODquOCseODvOOCt+ODp+ODs+OCkumWi+eZuuOBp+OBjeOBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+7J20IO2MqO2CpOyngOuKlCBYIOyciOuPhOyasCDsi5zsiqTthZzsl5DshJwg7IKs7Jqp65CgIOydkeyaqSDtlITroZzqt7jrnqjsnYQg6rCc67Cc7ZWgIOyImCDsnojqsowg7ZW07KSN64uI64ukLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJubyI+RGlzc2UgcGFra2VuZSBsYXIgZGVnIHV0dmlrbGUgcHJvZ3JhbW1lciBmb3IgWC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkVzdGUgcGFjb3RlcyBwZXJtaXRlbS1saGUgZGVzZW52b2x2ZXIgYXBsaWNhw6fDtWVzIHBhcmEgbyBYIFdpbmRvdyBTeXN0ZW0uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InJ1Ij7QrdGC0Lgg0L/QsNC60LXRgtGLINC/0L7Qt9Cy0L7Qu9GP0Y7RgiDRgNCw0LfRgNCw0LHQsNGC0YvQstCw0YLRjCDQv9GA0LjQu9C+0LbQtdC90LjRjyDQtNC70Y8gWCBXaW5kb3cgU3lzdGVtLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+RGVzc2EgcGFrZXQgbMOldGVyIGRpZyB1dHZlY2tsYSBwcm9ncmFtIGbDtnIgZsO2bnN0ZXJzeXN0ZW1ldCBYLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9DTiI+6L+Z5Lqb6L2v5Lu25YyF5YWB6K645oKo5byA5Y+R55So5LqOIFgg56qX5Y+j57O757uf55qE5bqU55So56iL5bqP44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7pgJnkupvlpZfku7borpPmgqjlj6/ku6XngrogWCDoppbnqpfns7vntbHplovnmbzmh4nnlKjnqIvlvI/jgII8L2Rlc2NyaXB0aW9uPgorICAgIDx1c2VydmlzaWJsZT50cnVlPC91c2VydmlzaWJsZT4KKyAgICA8cGFja2FnZWxpc3Q+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPkdsaWRlMy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+WEZyZWU4Ni1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+WGF3M2QtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdkLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bGVzc3RpZi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGlianBlZy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGlidGlmZi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGlicG5nLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJtbmctZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYnVuZ2lmLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5mcmVldHlwZS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bmV0cGJtLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+bGlicG5nMTAtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5vcGVubW90aWYtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5TREwtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5TRExfaW1hZ2UtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5TRExfbWl4ZXItZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5TRExfbmV0LWRldmVsPC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPGdyb3VwPgorICAgIDxpZD5nbm9tZS1zb2Z0d2FyZS1kZXZlbG9wbWVudDwvaWQ+CisgICAgPG5hbWU+R05PTUUgU29mdHdhcmUgRGV2ZWxvcG1lbnQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImNzIj5Ww712b2ogc29mdHdhcmUgcHJvIEdOT01PRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPkdub21lLXByb2dyYW1tZWx1ZHZpa2xpbmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5HTk9NRSBTb2Z0d2FyZWVudHdpY2tsdW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+RGVzYXJyb2xsbyBkZSBzb2Z0d2FyZSBkZSBHTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPkTDqXZlbG9wcGVtZW50IGRlIGxvZ2ljaWVsIEdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+SHVnYsO6bmHDsGFyw75yw7N1biBmeXJpciBHTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPlN2aWx1cHBvIGRlbCBzb2Z0d2FyZSBkaSBHTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPkdOT01FIOOCveODleODiOOCpuOCp+OCoumWi+eZujwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPkdOT01FIOyGjO2UhO2KuOybqOyWtCDqsJzrsJw8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5Qcm9ncmFtdmFyZXV0dmlrbGluZyBmb3IgR05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5EZXNlbnZvbHZpbWVudG8gZGUgU29mdHdhcmUgR05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QoNCw0LfRgNCw0LHQvtGC0LrQsCDRgSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC8IEdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+R05PTUUtcHJvZ3JhbXZhcnV1dHZlY2tsaW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+R05PTUUg6L2v5Lu25byA5Y+RPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+R05PTUUg6Luf6auU6ZaL55m8PC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5JbnN0YWxsIHRoZXNlIHBhY2thZ2VzIGluIG9yZGVyIHRvIGRldmVsb3AgR1RLKyBhbmQgR05PTUUgZ3JhcGhpY2FsIGFwcGxpY2F0aW9ucy48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iY3MiPlR5dG8gYmFsw63EjWt5IG5haW5zdGFsdWp0ZSBwcm8gdsO9dm9qIGdyYWZpY2vDvWNoIGFwbGlrYWPDrSBwcm8gR1RLKyBhIEdOT01FLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkYSI+SW5zdGFsbMOpciBkaXNzZSBwYWtrZXIgZm9yIGF0IGt1bm5lIHVkdmlrbGUgZ3JhZmlza2UgcHJvZ3JhbW1lciBzb20gYnJ1Z2VyIEdUSysgb2cgR25vbWUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5JbnN0YWxsaWVyZW4gU2llIGRpZXNlIFBha2V0ZSwgdW0gQXBwbGlrYXRpb25lbiBmw7xyIEdUSysgdW5kIEdOT01FIHp1IGVudHdpY2tlbG4uPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVzIj5JbnN0YWxhciBlc3RvcyBwYXF1ZXRlcyBwYXJhIGRlc2Fycm9sbGFyIEdUSysgeSBsYXMgYXBsaWNhY2lvbmVzIGdyw6FmaWNhcyBkZSBHTk9NRS4gPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5JbnN0YWxsZXIgY2VzIHBhcXVldGFnZXMgcG91ciBkw6l2ZWxvcHBlciBsZXMgYXBwbGljYXRpb25zIGdyYXBoaXF1ZXMgR1RLKyBldCBHTk9NRS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXMiPlNldHR1IMO+ZXNzYSBwYWtrYSBpbm4gZWYgw77DuiB2aWx0IMO+csOzYSBHVEsrIG9nIEdOT01FIGZvcnJpdC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPkluc3RhbGxhcmUgcXVlc3RpIHBhY2NoZXR0aSBwZXIgc3ZpbHVwcGFyZSBsZSBhcHBsaWNhemlvbmkgZ3JhZmljaGUgR1RLKyBlIEdOT01FLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJqYSI+R1RLKyDjgaggR05PTUXjga7jgrDjg6njg5XjgqPjgqvjg6vjgqLjg5fjg6rjgrHjg7zjgrfjg6fjg7PjgpLplovnmbrjgZnjgovngrrjgavjga/jgZPjgozjgonjga4g44OR44OD44Kx44O844K444KS44Kk44Oz44K544OI44O844Or44GX44Gm5LiL44GV44GE44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImtvIj5HVEsr7JmAIEdOT01FIOq3uOuemO2UvSDsnZHsmqkg7ZSE66Gc6re4656o7J2EIOqwnOuwnO2VmOyLnOugpOuptCDsnbQg7Yyo7YKk7KeA66W8IOyEpOy5mO2VmOyLreyLnOyYpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkluc3RhbGxlciBkaXNzZSBwYWtrZW5lIGZvciB1dHZpa2xpbmcgYXYgR1RLKy0gb2cgR05PTUUtcHJvZ3JhbW1lci48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0icHQiPkluc3RhbGUgZXN0ZXMgcGFjb3RlcyBzZSBxdWlzZXIgZGVzZW52b2x2ZXIgYXBsaWNhw6fDtWVzIGdyw6FmaWNhcyBHVEsrIG91IEdOT01FLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0KPRgdGC0LDQvdC+0LLQuNGC0LUg0Y3RgtC4INC/0LDQutC10YLRiyDQtNC70Y8g0YDQsNC30YDQsNCx0L7RgtC60Lgg0LPRgNCw0YTQuNGH0LXRgdC60LjRhSDQv9GA0LjQu9C+0LbQtdC90LjQuSBHVEsrINC4IEdOT01FLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+SW5zdGFsbGVyYSBkZXNzYSBwYWtldCBmw7ZyIGF0dCBrdW5uYSB1dHZlY2tsYSBncmFmaXNrYSBwcm9ncmFtIHNvbSBhbnbDpG5kZXIgR1RLKyBvY2ggR05PTUUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX0NOIj7lronoo4Xov5nkupvova/ku7bljIXmnaXlvIDlj5EgR1RLKyDlkowgR05PTUUg5Zu+5b2i5YyW5bqU55So56iL5bqP44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InpoX1RXIj7oq4vlronoo53pgJnkupvlpZfku7bvvIznlKjkvobplovnmbwgR1RLKyDoiIcgR05PTUUg55qE5ZyW5b2i5oeJ55So56iL5byP44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+YnVnLWJ1ZGR5PC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+cHlndGsyLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nbGliLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nbGliMi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z3RrKy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+R0NvbmYtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPkdDb25mMi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9ImRlZmF1bHQiPkd1cHBpLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5PUkJpdC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+T1JCaXQyLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hdGstZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmJvbm9iby1hY3RpdmF0aW9uLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Ym9ub2JvLWNvbmYtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmJvbm9iby1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+ZWVsMi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Zm9udGNvbmZpZy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z2FpbC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Z2FsLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nZGstcGl4YnVmLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nbm9tZS1saWJzLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0iZGVmYXVsdCI+Z25vbWUtcGlsb3QtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdub21lLXByaW50LWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5nbm9tZS12ZnMtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmdub21lLXZmczItZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmd0a2h0bWwtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmd0azItZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJkZWZhdWx0Ij5pbWxpYi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGliSURMLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJhcnRfbGdwbC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGliYm9ub2JvLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJib25vYm91aS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGliZ2xhZGUtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYmdsYWRlMi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGliZ25vbWUtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYmdub21lY2FudmFzLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJnbm9tZXVpLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJndG9wLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJvbGUyLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJyc3ZnLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5saWJyc3ZnMi1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGlidW5pY29kZS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGlieHNsdC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGluYy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+b2FmLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5wYW5nby1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5nbGFkZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5nbGFkZTI8L3BhY2thZ2VyZXE+CisgICAgPC9wYWNrYWdlbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmtkZS1zb2Z0d2FyZS1kZXZlbG9wbWVudDwvaWQ+CisgICAgPG5hbWU+S0RFIFNvZnR3YXJlIERldmVsb3BtZW50PC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+VsO9dm9qIHNvZnR3YXJlIHBybyBHTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPktERS1wcm9ncmFtbWVsdWR2aWtsaW5nPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+S0RFIFNvZnR3YXJlZW50d2lja2x1bmc8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5EZXNhcnJvbGxvIGRlIHNvZnR3YXJlIHBhcmEgS0RFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+RMOpdmVsb3BwZW1lbnQgZGUgbG9naWNpZWwgS0RFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+SHVnYsO6bmHDsGFyw75yw7N1biBmeXJpciBLREU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TdmlsdXBwbyBzb2Z0d2FyZSBLREU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5LREXjgr3jg5Xjg4jjgqbjgqfjgqLplovnmbo8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj5LREUg7IaM7ZSE7Yq47Juo7Ja0IOqwnOuwnDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlByb2dyYW12YXJldXR2aWtsaW5nIGZvciBLREU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5EZXNlbnZvbHZpbWVudG8gZGUgU29mdHdhcmUgS0RFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0KHRgNC10LTRgdGC0LLQsCDQtNC70Y8g0YDQsNC30YDQsNCx0L7RgtC60Lgg0LIgS0RFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+S0RFLXByb2dyYW12YXJ1dXR2ZWNrbGluZzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPktERSDova/ku7blvIDlj5E8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj5LREUg6Luf6auU6ZaL55m8PC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5JbnN0YWxsIHRoZXNlIHBhY2thZ2VzIHRvIGRldmVsb3AgUVQgYW5kIEtERSBncmFwaGljYWwgYXBwbGljYXRpb25zLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJjcyI+VHl0byBiYWzDrcSNa3kgbmFpbnN0YWx1anRlIHBybyB2w712b2ogZ3JhZmlja8O9Y2ggYXBsaWthY8OtIHBybyBRVCBhIEtERS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGEiPkluc3RhbGzDqXIgZGlzc2UgcGFra2VyIGZvciBhdCB1ZHZpa2xlIGdyYWZpc2tlIHByb2dyYW1tZXIgc29tIGJydWdlciBRVCBvZyBLREUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIj5JbnN0YWxsaWVyZW4gU2llIGRpZXNlIFBha2V0ZSwgdW0gQXBwbGlrYXRpb25lbiBmw7xyIFFUIHVuZCBLREUgenUgZW50d2lja2Vsbi48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZXMiPkluc3RhbGFyIGVzdG9zIHBhcXVldGVzIHBhcmEgZGVzYXJyb2xsYXIgbGFzIGFwbGljYWNpb25lcyBncsOhZmljYXMgUVQgeSBLREUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImZyIj5JbnN0YWxsZXIgY2VzIHBhcXVldGFnZXMgcG91ciBkw6l2ZWxvcHBlciBsZXMgYXBwbGljYXRpb25zIGdyYXBoaXF1ZXMgUVQgZXQgS0RFLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJpcyI+U2V0dHUgw75lc3NhIHBha2thIGlubiBlZiDDvsO6IHZpbHQgw75yw7NhIFFUIG9nIEtERSBmb3JyaXQ8L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iaXQiPkluc3RhbGxhcmUgcXVlc3RpIHBhY2NoZXR0aSBwZXIgc3ZpbHVwcGFyZSBsZSBhcHBsaWNhemlvbmkgZ3JhZmljaGUgUVQgZSBLREUuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImphIj5RVOOBqEtEReOBruOCsOODqeODleOCo+OCq+ODq+OCouODl+ODquOCseODvOOCt+ODp+ODs+mWi+eZuuOBq+OBr+OBk+OCjOOCieOBruODkeODg+OCseODvOOCuOOCkuOCpOODs+OCueODiOODvOODq+OBl+OBvuOBmeOAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJrbyI+UVTsmYAgS0RFIOq3uOuemO2UvSDsnZHsmqkg7ZSE66Gc6re4656o7J2EIOqwnOuwnO2VmOyLnOugpOuptCDsnbQg7Yyo7YKk7KeA66W8IOyEpOy5mO2VmOyLreyLnOyYpC48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0ibm8iPkluc3RhbGxlciBkaXNzZSBwYWtrZW5lIGZvciB1dHZpa2xpbmcgYXYgUVQgb2cgS0RFLXByb2dyYW1tZXIuPC9kZXNjcmlwdGlvbj4KKyAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9InB0Ij5JbnN0YWxlIGVzdGVzIHBhY290ZXMgc2UgcXVpc2VyIGRlc2Vudm9sdmVyIGFwbGljYcOnw7VlcyBncsOhZmljYXMgUVQgb3UgS0RFLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJydSI+0KPRgdGC0LDQvdC+0LLQuNGC0LUg0Y3RgtC4INC/0LDQutC10YLRiyDQtNC70Y8g0YDQsNC30YDQsNCx0L7RgtC60Lgg0L/RgNC40LvQvtC20LXQvdC40LkgUVQg0LggS0RFLjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJzdiI+SW5zdGFsbGVyYSBkZXNzYSBwYWtldCBmw7ZyIGF0dCB1dHZlY2tsYSBncmFmaXNrYSBwcm9ncmFtIGbDtnIgUVQgb2NoIEtERS48L2Rlc2NyaXB0aW9uPgorICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iemhfQ04iPuWuieijhei/meS6m+i9r+S7tuWMheadpeW8gOWPkSBRVCDlkowgS0RFIOWbvuW9ouWMluW6lOeUqOeoi+W6j+OAgjwvZGVzY3JpcHRpb24+CisgICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJ6aF9UVyI+6KuL5a6J6KOd6YCZ5Lqb5aWX5Lu277yM55So5L6G6ZaL55m8IFFUIOiIhyBLREUg55qE5ZyW5b2i5oeJ55So56iL5byP44CCPC9kZXNjcmlwdGlvbj4KKyAgICA8dXNlcnZpc2libGU+dHJ1ZTwvdXNlcnZpc2libGU+CisgICAgPHBhY2thZ2VsaXN0PgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5QeVF0LWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5hcnRzLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jZHBhcmFub2lhLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5jZXJ2aXNpYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+Y3Vwcy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RiZzwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RlYmFzZS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RlbGlicy1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RlbmV0d29yay1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2Rlc2RrLWthcHB0ZW1wbGF0ZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2Rlc2RrLWtiYWJlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2Rlc2RrLWtidWdidXN0ZXI8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtkZXNkay1rbXRyYWNlPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5rZGVzZGsta29tcGFyZTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2Rlc2RrLWtzcHk8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtkZXBpbS1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+a2RldmVsb3A8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtkb2M8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmtyZWdleHBlZGl0b3ItZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmt2aWV3c2hlbGwtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPmxpYmtzY2FuLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5waWxvdC1saW5rLWRldmVsPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ibWFuZGF0b3J5Ij5xdC1kZXNpZ25lcjwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+cXQtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnNhbmUtYmFja2VuZHMtZGV2ZWw8L3BhY2thZ2VyZXE+CisgICAgICA8cGFja2FnZXJlcSB0eXBlPSJtYW5kYXRvcnkiPnNpcC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im1hbmRhdG9yeSI+bGlieHNsdC1kZXZlbDwvcGFja2FnZXJlcT4KKyAgICA8L3BhY2thZ2VsaXN0PgorICA8L2dyb3VwPgorCisgIDwhLS0gTUVUQSBHUk9VUFMgLS0+CisgIDxncm91cD4KKyAgICA8aWQ+d29ya3N0YXRpb24tY29tbW9uPC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPldvcmtzdGF0aW9uIENvbW1vbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlNwb2xlxI1uw6kgcHJvIHByYWNvdm7DrSBzdGFuaWNpPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+RsOmbGxlcyBmb3IgYXJiZWpkc3N0YXRpb248L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5Xb3Jrc3RhdGlvbiBDb21tb248L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImVzIj5ab25hIGNvbcO6biBkZSBsYSBlc3RhY2nDs24gZGUgdHJhYmFqbzwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPlBvc3RlIGRlIHRyYXZhaWwgY29tbXVuPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+QWxtZW5udCBmeXJpciB2aW5udXN0w7bDsHZhcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPldvcmtzdGF0aW9uIENvbW1vbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODr+ODvOOCr+OCueODhuODvOOCt+ODp+ODs+WFsemAmjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuybjeyKpO2FjOydtOyFmCDqs7XthrU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5BcmJlaWRzc3Rhc2pvbiAtIGZlbGxlczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPkVzdGHDp8OjbyBkZSBUcmFiYWxobyBDb211bTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCi0LjQv9C+0LLQsNGPINCg0LDQsdC+0YfQsNGPINCh0YLQsNC90YbQuNGPPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+R2VtZW5zYW10IGbDtnIgYXJiZXRzc3RhdGlvbjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuW3peS9nOermemAmueUqDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuW3peS9nOermeWFseWQjDwvbmFtZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPiAKKyAgICAgIDxncm91cHJlcT5iYXNlLXg8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPmFkbWluLXRvb2xzPC9ncm91cHJlcT4KKyAgICAgIDxncm91cHJlcT5lZGl0b3JzPC9ncm91cHJlcT4KKyAgICAgIDxncm91cHJlcT5zb3VuZC1hbmQtdmlkZW88L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPmRpYWx1cDwvZ3JvdXByZXE+CisgICAgICA8Z3JvdXByZXE+b2ZmaWNlPC9ncm91cHJlcT4KKyAgICAgIDxncm91cHJlcT5ncmFwaGljYWwtaW50ZXJuZXQ8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPnRleHQtaW50ZXJuZXQ8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPnByaW50aW5nPC9ncm91cHJlcT4KKyAgICAgIDxncm91cHJlcT5ncmFwaGljczwvZ3JvdXByZXE+CisgICAgICA8Z3JvdXByZXE+Z2FtZXM8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+c2VydmVyPC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPlNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPlNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlNlcnZpZG9yPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJmciI+U2VydmV1cjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPsOeasOzbm48L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5TZXJ2ZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgrXjg7zjg5A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7shJzrsoQ8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5UamVuZXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TZXJ2aWRvcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCh0LXRgNCy0LXRgDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPlNlcnZlcjwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuacjeWKoeWZqDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuS8uuacjeWZqDwvbmFtZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmJhc2U8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPnByaW50aW5nPC9ncm91cHJlcT4KKyAgICAgIDxncm91cHJlcT50ZXh0LWludGVybmV0PC9ncm91cHJlcT4KKyAgICAgIDxncm91cHJlcT5kaWFsdXA8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPndlYi1zZXJ2ZXI8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPnNtYi1zZXJ2ZXI8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPnNlcnZlci1jZmc8L2dyb3VwcmVxPgorICAgICAgPGdyb3VwcmVxPmFkbWluLXRvb2xzPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgPC9ncm91cD4KKworICA8Z3JvdXA+CisgICAgPGlkPmdub21lPC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPkdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+R05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5Hbm9tZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPkdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJlcyI+R05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5HTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPkdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpdCI+R05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImphIj5HTk9NRSA8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj5HTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPkdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+R05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij5HTk9NRTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPkdOT01FPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+R05PTUU8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj5HTk9NRTwvbmFtZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmdub21lLWRlc2t0b3A8L2dyb3VwcmVxPgorICAgIDwvZ3JvdXBsaXN0PgorICA8L2dyb3VwPgorCisgIDxncm91cD4KKyAgICA8aWQ+a2RlPC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZGUiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZnIiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iaXQiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icHQiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0icnUiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ic3YiPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPktERTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPktERTwvbmFtZT4KKyAgICA8Z3JvdXBsaXN0PgorICAgICAgPGdyb3VwcmVxPmtkZS1kZXNrdG9wPC9ncm91cHJlcT4KKyAgICA8L2dyb3VwbGlzdD4KKyAgPC9ncm91cD4KKyAgCisgIDxncm91cD4KKyAgICA8aWQ+c3VwcG9ydGVkPC9pZD4KKyAgICA8dXNlcnZpc2libGU+ZmFsc2U8L3VzZXJ2aXNpYmxlPgorICAgIDxuYW1lPlN1cHBvcnRlZCBQYWNrYWdlczwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlBvZHBvcm92YW7DqSBiYWzDrcSNa3k8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5QYWtrZXIgc29tIHVuZGVyc3TDuHR0ZXM8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5VbnRlcnN0w7x0enRlIFBha2V0ZTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iZXMiPlBhcXVldGVzIHNvcG9ydGFkb3M8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9ImZyIj5QYXF1ZXRhZ2VzIHByaXMgZW4gY2hhcmdlPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJpcyI+U3R1ZGRpciBwYWtrYXI8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Iml0Ij5QYWNjaGV0dGkgc3VwcG9ydGF0aTwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCteODneODvOODiOOBleOCjOOCi+ODkeODg+OCseODvOOCuDwvbmFtZT4KKyAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyngOybkO2VmOuKlCDtjKjtgqTsp4A8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5TdMO4dHRlZGUgcGFra2VyPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+UGFjb3RlcyBTdXBvcnRhZG9zPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J/QvtC00LTQtdGA0LbQuNCy0LDQtdC80YvQtSDQv9Cw0LrQtdGC0Ys8L25hbWU+CisgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5QYWtldCBzb20gc3TDtmRzPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5pSv5oyB55qE6L2v5Lu25YyFPC9uYW1lPgorICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5pSv5o+055qE5aWX5Lu2PC9uYW1lPgorICAgIDxwYWNrYWdlbGlzdD4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5hbmFjb25kYTwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5hbmFjb25kYS1oZWxwPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmFuYWNvbmRhLWltYWdlczwvcGFja2FnZXJlcT4KKyAgICAgIDxwYWNrYWdlcmVxIHR5cGU9Im9wdGlvbmFsIj5hbmFjb25kYS1ydW50aW1lPC9wYWNrYWdlcmVxPgorICAgICAgPHBhY2thZ2VyZXEgdHlwZT0ib3B0aW9uYWwiPmJvb3R5PC9wYWNrYWdlcmVxPgorICAgIDwvcGFja2FnZWxpc3Q+CisgIDwvZ3JvdXA+CisKKyAgPCEtLSBncm91cCBoaWVyYXJjaHkgLS0+CisgIDxncm91cGhpZXJhcmNoeT4KKyAgICA8Y2F0ZWdvcnk+CisgICAgICA8bmFtZT5EZXNrdG9wczwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+UHJvc3TFmWVkw60gcHJhY292bsOtIHBsb2NoeTwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+U2tyaXZlYm9yZGU8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPlNrasOhYm9yw7A8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuODh+OCueOCr+ODiOODg+ODlzwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+642w7Iqk7YGs7YORPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9Im5vIj5Ta3JpdmVib3JkPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5BbWJpZW50ZSBkZSBUcmFiYWxobzwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJydSI+0J7QutC+0L3QvdGL0LUg0LzQtdC90LXQtNC20LXRgNGLPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5Ta3JpdmJvcmQ8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iemhfQ04iPuahjOmdojwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9UVyI+5qGM6Z2iPC9uYW1lPgorICAgICAgPHN1YmNhdGVnb3JpZXM+CisgICAgICAgIDxzdWJjYXRlZ29yeT5iYXNlLXg8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+Z25vbWUtZGVza3RvcDwvc3ViY2F0ZWdvcnk+CisgICAgICAgIDxzdWJjYXRlZ29yeT5rZGUtZGVza3RvcDwvc3ViY2F0ZWdvcnk+CisgICAgICA8L3N1YmNhdGVnb3JpZXM+CisgICAgPC9jYXRlZ29yeT4KKyAgICA8Y2F0ZWdvcnk+CisgICAgICA8bmFtZT5BcHBsaWNhdGlvbnM8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPkFwbGlrYWNlPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImRhIj5Qcm9ncmFtbWVyPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj5Gb3JyaXQ8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iamEiPuOCouODl+ODquOCseODvOOCt+ODp+ODszwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJrbyI+7J2R7JqpIO2UhOuhnOq3uOueqDwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+UHJvZ3JhbW1lcjwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+QXBsaWNhw6fDtWVzPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9GA0LjQu9C+0LbQtdC90LjRjzwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+UHJvZ3JhbTwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5bqU55So56iL5bqPPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7mh4nnlKjnqIvlvI88L25hbWU+CisgICAgICA8c3ViY2F0ZWdvcmllcz4KKyAgICAgICAgPHN1YmNhdGVnb3J5PmVkaXRvcnM8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+ZW5naW5lZXJpbmctYW5kLXNjaWVudGlmaWM8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+Z3JhcGhpY2FsLWludGVybmV0PC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5PnRleHQtaW50ZXJuZXQ8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+b2ZmaWNlPC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5PnNvdW5kLWFuZC12aWRlbzwvc3ViY2F0ZWdvcnk+CisgICAgICAgIDxzdWJjYXRlZ29yeT5hdXRob3JpbmctYW5kLXB1Ymxpc2hpbmc8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+Z3JhcGhpY3M8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+Z2FtZXM8L3N1YmNhdGVnb3J5PgorICAgICAgPC9zdWJjYXRlZ29yaWVzPgorICAgIDwvY2F0ZWdvcnk+CisgICAgPGNhdGVnb3J5PgorICAgICAgPG5hbWU+U2VydmVyczwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJjcyI+U2VydmVyeTwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+U2VydmVyZTwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U2VydmVyPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj7DnmrDs25hcjwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJqYSI+44K144O844OQPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImtvIj7shJzrsoQ8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlRqZW5lcmU8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0icHQiPlNlcnZpZG9yZXM8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0icnUiPtCh0LXRgNCy0LXRgNGLPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InN2Ij5TZXJ2cmFyPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7mnI3liqHlmag8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuS8uuacjeWZqDwvbmFtZT4KKyAgICAgIDxzdWJjYXRlZ29yaWVzPgorICAgICAgICA8c3ViY2F0ZWdvcnk+c2VydmVyLWNmZzwvc3ViY2F0ZWdvcnk+CisgICAgICAgIDxzdWJjYXRlZ29yeT53ZWItc2VydmVyPC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5Pm1haWwtc2VydmVyPC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5PnNtYi1zZXJ2ZXI8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+ZG5zLXNlcnZlcjwvc3ViY2F0ZWdvcnk+CisgICAgICAgIDxzdWJjYXRlZ29yeT5mdHAtc2VydmVyPC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5PnNxbC1zZXJ2ZXI8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+bmV3cy1zZXJ2ZXI8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+bmV0d29yay1zZXJ2ZXI8L3N1YmNhdGVnb3J5PgorICAgICAgPC9zdWJjYXRlZ29yaWVzPgorICAgIDwvY2F0ZWdvcnk+CisgICAgPGNhdGVnb3J5PgorICAgICAgPG5hbWU+RGV2ZWxvcG1lbnQ8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlbDvXZvajwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJkYSI+VWR2aWtsaW5nPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImRlIj5Tb2Z0d2FyZWVudHdpY2tsdW5nPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImlzIj7DnnLDs3VuPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7plovnmbo8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuqwnOuwnOyaqSDrj4Tqtaw8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0ibm8iPlV0dmlrbGluZ3N2ZXJrdMO4eTwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJwdCI+RGVzZW52b2x2aW1lbnRvPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7Qn9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQsNC90LjQtTwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+VXR2ZWNrbGluZzwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJ6aF9DTiI+5byA5Y+RPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InpoX1RXIj7nqIvlvI/plovnmbw8L25hbWU+CisgICAgICA8c3ViY2F0ZWdvcmllcz4KKyAgICAgICAgPHN1YmNhdGVnb3J5PmRldmVsb3BtZW50LXRvb2xzPC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5Pmtlcm5lbC1kZXZlbG9wbWVudDwvc3ViY2F0ZWdvcnk+CisgICAgICAgIDxzdWJjYXRlZ29yeT54LXNvZnR3YXJlLWRldmVsb3BtZW50PC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5Pmdub21lLXNvZnR3YXJlLWRldmVsb3BtZW50PC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5PmtkZS1zb2Z0d2FyZS1kZXZlbG9wbWVudDwvc3ViY2F0ZWdvcnk+CisgICAgICA8L3N1YmNhdGVnb3JpZXM+CisgICAgPC9jYXRlZ29yeT4KKyAgICA8Y2F0ZWdvcnk+CisgICAgICA8bmFtZT5TeXN0ZW08L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iY3MiPlN5c3TDqW08L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iZGEiPlN5c3RlbTwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJkZSI+U3lzdGVtdG9vbHM8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iaXMiPktlcmZpPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9ImphIj7jgrfjgrnjg4bjg6A8L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0ia28iPuyLnOyKpO2FnDwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJubyI+U3lzdGVtPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InB0Ij5TaXN0ZW1hPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InJ1Ij7QodC40YHRgtC10LzQsDwvbmFtZT4KKyAgICAgIDxuYW1lIHhtbDpsYW5nPSJzdiI+U3lzdGVtPC9uYW1lPgorICAgICAgPG5hbWUgeG1sOmxhbmc9InpoX0NOIj7ns7vnu588L25hbWU+CisgICAgICA8bmFtZSB4bWw6bGFuZz0iemhfVFciPuezu+e1sTwvbmFtZT4KKyAgICAgIDxzdWJjYXRlZ29yaWVzPgorICAgICAgICA8c3ViY2F0ZWdvcnk+YWRtaW4tdG9vbHM8L3N1YmNhdGVnb3J5PgorICAgICAgICA8c3ViY2F0ZWdvcnk+c3lzdGVtLXRvb2xzPC9zdWJjYXRlZ29yeT4KKyAgICAgICAgPHN1YmNhdGVnb3J5PnByaW50aW5nPC9zdWJjYXRlZ29yeT4KKyAgICAgIDwvc3ViY2F0ZWdvcmllcz4KKyAgICA8L2NhdGVnb3J5PgorICA8L2dyb3VwaGllcmFyY2h5PgorIAorICA8IS0tIHBhY2thZ2VzIC0tPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5idXN5Ym94PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnRvb2wtbGliczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtwYWludDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1Fc3RvbmlhbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJwbmcxMC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmcxMDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50Y2x4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWVtZWV0aW5nPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5oMzIzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5TREw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0aystZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nZGJtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y2RyZWNvcmQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2RyZWNvcmQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53bC14ZW1hY3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eGVtYWNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+d2wtY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmxpbS14ZW1hY3M8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5sYXBhY2stbWFuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtQ29tcHJlc3MtWmxpYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW9kdXRpbHMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z251Y2hlc3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS1hdWRpbzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5taWttb2Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ydWJ5LXRjbHRrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnJ1YnktbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGNsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wb3N0Z3Jlc3FsLWxpYnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rcmI1LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGNsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WGJhZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5tb3RpZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJ6aXAyLWxpYnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jYWRhdmVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2xwcTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5MUFJuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1lczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tYW4tcGFnZXMtZXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmFtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcnRtYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT54aW5ldGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuaDMyMzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wd2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmV4cGF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bmNmdHA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YmFzZXN5c3RlbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zZXR1cDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGVzeXN0ZW08L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50dGZvbnRzLWtvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Zm9udGNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ycG0tYnVpbGQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cnBtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGF0Y2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iemlwMi1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJlbGY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWV3LWNvbW1vbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yaG1hc2s8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJhaW8tZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliYWlvPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlzYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5naW1wLXBlcmw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2ltcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R3RrLVBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLVBETDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBhcnRlZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmUyZnNwcm9nczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnpsaWI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kb3Nmc3Rvb2xzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eG1tczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dW56aXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWRoYXQtbWVudXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWRoYXQtYXJ0d29yazwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1pa21vZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm9nZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnZvcmJpczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ0ZXJtY2FwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZpcnN0Ym9vdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1ldGFjaXR5PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1jb25maWctZGF0ZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1jb25maWctbGFuZ3VhZ2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWRoYXQtY29uZmlnLW1vdXNlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWNvbmZpZy1rZXlib2FyZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1jb25maWctc291bmRjYXJkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWNvbmZpZy1zZWN1cml0eWxldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWNvbmZpZy1yb290cGFzc3dvcmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWRoYXQtY29uZmlnLXBhY2thZ2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXAyZGF0ZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1sb2dvczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ4c2x0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YRnJlZTg2LWJhc2UtZm9udHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1EQkQtUGc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtREJJPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Z3Jlc3FsLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zZW5kbWFpbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wcm9jbWFpbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kYjQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGJtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aGVzaW9kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jeXJ1cy1zYXNsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1EZXZlbC1TeW1kdW1wPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuc3NsLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hc3AycGhwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2VybmVsLXBjbWNpYS1jczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZXJuZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rdWR6dTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmhvdHBsdWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ3bmNrLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnduY2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB1bXAtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2d2PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNjcm9sbGtlZXBlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXVpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5jdXJzZXMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWNvbmZpZy1wcmludGVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFsY2hlbWlzdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5QeVhNTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3ppcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkxQUm5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bTQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wbm0ycHBhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mb29tYXRpYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdob3N0c2NyaXB0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9tbmktZm9vbWF0aWM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tcGFnZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmFvLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFvPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWV3PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmVtYWNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWV3LWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhpbmV0ZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGVzeXN0ZW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zZXR1cDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtuZXdzdGlja2VyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZW5ldHdvcmstbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdhbGVvbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b2FmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1ZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlieHNsdC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4c2x0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT52aW0tWDExPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnZpbS1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhY2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3BtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zeW1saW5rczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJwbTJodG1sPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ycG08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0a2FtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3Bob3RvMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNoLXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtdHdtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFsY2hlbWlzdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieHNsdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uamFtZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54b3N2aWV3PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGljdGQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ldGhlcmVhbC1nbm9tZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ldGhlcmVhbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwY2FwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV0LXNubXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bmV0cGJtLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ldHBibTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1vdXNlY29uZmlnPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbmR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ld3Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYWRkb25zLWthdGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlYmFzZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZsb2NrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWxzYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1NZXNhLWxpYkdMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2F3azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y3BpbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nemlwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV0LXRvb2xzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXRpbC1saW51eDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vdW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHJvY3BzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRhcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBzbWlzYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlN5c1Zpbml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmludXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGlmZnV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dml4aWUtY3JvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maW5kdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYy1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5MUFJuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm00PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWFrZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1hbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhc3N3ZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhdGNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cnN5bmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50aW1lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGZpeDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnVzZXJtb2RlLWd0azwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmx0cmFjZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtWE1MLVBhcnNlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1saWJ3d3ctcGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtVVJJPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5leHBhdDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZvcnR1bmUtbW9kPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3Bob3RvMi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ncGhvdG8yPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGtnY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnJzdmctZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlicnN2ZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS12ZnMyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm8tZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5teXNxbC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5teXNxbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtwcHBsb2FkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1GaWx0ZXItU2ltcGxlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtRmlsdGVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1QYXJzZS1SZWNEZXNjZW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdtcC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1jb25maWcta2lja3N0YXJ0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMi1saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmh3ZGF0YTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJocGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rbWlkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPldpbmRvd01ha2VyLWxpYnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVuZ2lmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLXNwZWxsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2FsMTk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1Zi1nbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lcHJpbnQxNTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b2FmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHNwZWxsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZ0ZS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT52dGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmJvbm9ib3VpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tNDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGltZWNvbmZpZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXRpbC1saW51eDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5iYXNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rbWl4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtRnJvbnRpZXItUlBDPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLWxpYnd3dy1wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1YTUwtUGFyc2VyPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YmxhczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdub21lcHJpbnR1aS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXByaW50dWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVwcmludC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZXhwYXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ua2Y8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdXRoY29uZmlnLWd0azwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hdXRoY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyLWxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3RhdHNlcmlhbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVuZXR3b3JrLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZW5ldHdvcmstbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1vemlsbGE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBzbWlzYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGEtbnNwcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZGV4aHRtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wb3J0bWFwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXRpbC1saW51eDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPk1hZWxzdHJvbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlNETDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlNETF9uZXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zeXNyZXBvcnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y2RwYXJhbm9pYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jZHBhcmFub2lhLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmluZGVudDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eHNhbmU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zYW5lLWJhY2tlbmRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVzYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wYXJ0ZWQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGFydGVkPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGV2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lMmZzcHJvZ3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncG08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zbGFuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdXRvY29uZjIxMzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bTQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJ1YnktbGliczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdkYm08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zZXR1cDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kZXNrdG9wLWJhY2tncm91bmRzLWJhc2ljPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtSVNPODg1OS05LTc1ZHBpLWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmRiNC11dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5kYjQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBvc3RncmVzcWwtamRiYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1Ob3J3ZWdpYW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2FtZXJhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdwaG90bzI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVzYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zYW1iYS1zd2F0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNhbWJhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eGluZXRkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYWNsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y3Vwcy1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm14PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Ymc1cHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5hdXRpbHVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGVzeXN0ZW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lb2c8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zY3JvbGxrZWVwZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kZXNrdG9wLWJhY2tncm91bmRzLWJhc2ljPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LW1lbnVzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWFydHdvcms8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZWVsMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtZGVza3RvcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnJzdmcyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zZW5kbWFpbC1jZjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGlmZnN0YXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YRnJlZTg2LTc1ZHBpLWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0azItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNvbXBhdC1saWJnY2otZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+emlwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYmdjajwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlNETF9taXhlci1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5TRExfbWl4ZXI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1TZXJiaWFuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5jdXJzZXM0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3BlbmxkYXAtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rb24yLWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJvdXRlZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS12ZnMyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLW1pbWUtZGF0YTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1tZW51czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJ6aXAyLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5JbWFnZU1hZ2ljay1jKys8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+SW1hZ2VNYWdpY2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdsaWItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54bG9hZGltYWdlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmVydWJ5PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXJ1YnktbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJ1YnktbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmN5cnVzLXNhc2wtZ3NzYXBpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmN5cnVzLXNhc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rcmI1LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBhc3NpdmV0ZXg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dGV0ZXg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT54bWx0ZXg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtcGlsb3QtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5waWxvdC1saW5rLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcGlsb3Q8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5lbWFjcy1sZWltPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmVtYWNzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ25vbWV1aS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXVpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0Mi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ28tZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb24tZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm8tZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aS1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZS1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmhwbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0ay1lbmdpbmVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YZnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxhbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NoLXNlcnZlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2gtY2xpZW50czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhaW88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmphZGV0ZXg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2dtbC1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXRleDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRldGV4LWxhdGV4PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmphZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtdmZzLWV4dHJhczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHMtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmpmc3V0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y1dubi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aW5uLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmlubjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhkZWx0YTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdob3N0c2NyaXB0LWd0azwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5naG9zdHNjcmlwdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mb250cy1JU084ODU5LTItMTAwZHBpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5ldGR1bXAtc2VydmVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNoYWRvdy11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2gtc2VydmVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLUNyeXB0LVNTTGVheTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXNwZWxsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBzcGVsbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRvb2wtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVtdWx0aW1lZGlhLWtmaWxlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm9nZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidm9yYmlzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm9wZW5oMzIzLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5oMzIzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGhhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cG9zdGZpeDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGNyZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN5cnVzLXNhc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGI0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bXJwcm9qZWN0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b2FmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1ZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1wcmludDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlibXJwcm9qZWN0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBjaXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmtlcm5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmh3ZGF0YTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+R2xpZGUzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnd2c3RyZWFtczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+d2luZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jdXBzLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFydHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTFU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNhbmUtYmFja2VuZHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ1c2I8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuc3NoLWNsaWVudHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xdGN1cHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3VwczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGVza3RvcC1maWxlLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jdXBzLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliSURMLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYklETDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBrZ2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tYXJzLW53ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmlweHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1hbi1wYWdlcy1mcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLVRpbWUtSGlSZXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eDMyNzA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGVza3RvcC1maWxlLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54bW1zLXNraW5zPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhtbXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hbm9uZnRwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnZzZnRwZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd6aXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jcGlvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGFyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB5dGhvbi10b29sczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ib25vYm8tY29uZjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9hZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnVuZ2lmLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVuZ2lmPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WEZyZWU4Ni1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5mb250Y29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3JlZ2V4cGVkaXRvcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50dGZvbnRzLWphPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZm9udC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jaXBlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5sc2xrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlibW5nLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm1uZzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmltLXNkazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5DYW5uYS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mb250cy1LT0k4LVItNzVkcGk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW96aWxsYS1uc3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYS1uc3ByPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZG94eWdlbi1kb3h5d2l6YXJkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmRveHlnZW48L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a21pZGk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dGltaWRpdHkrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFydHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtbG9nb3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y29tcGF0LWdjYy1nNzc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tRHV0Y2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlbXVsdGltZWRpYS1saWJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlib2dnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidm9yYmlzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cXVhbnRhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YRnJlZTg2LWxpYnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmF0ay1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdpZnRyYW5zPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3RrMi1lbmdpbmVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mb29tYXRpYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1EYXRlTWFuaXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLWxpYnhtbC1lbm5vPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1saWJ4bWwtcGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtUGFyc2UtWWFwcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtWE1MLUR1bXBlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtWE1MLUVuY29kaW5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1YTUwtUGFyc2VyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtbGlid3d3LXBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLVhNTC1Hcm92ZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtWE1MLVR3aWc8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uY3BmczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pcHh1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtbWltZS1kYXRhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkltYWdlTWFnaWNrLWMrKy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5JbWFnZU1hZ2ljazwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkltYWdlTWFnaWNrLWMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkltYWdlTWFnaWNrLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2NoYXJzZWxlY3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlYmFzZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmRoY2xpZW50PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZGJpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tU2xvdmVuaWFuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhtbHRleDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT50ZXRleDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ4bWwyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFtYW5kYS1zZXJ2ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z251cGxvdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnhpbmV0ZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFtYW5kYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kaXNrY2hlY2s8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3JvbnRhYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Zml4PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5lMmZzcHJvZ3MtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZTJmc3Byb2dzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZGtzaDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Zm9udHMtamE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni0xMDBkcGktZm9udHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LTc1ZHBpLWZvbnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a1dubi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXdlc2Z4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WEZyZWU4Ni1kb2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtYXBwbGV0czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zY3JvbGxrZWVwZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1wYW5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJndG9wMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1TR01MU3BtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5qYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnRvb2wtbGliczEzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a29mZmljZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhzbHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZG9jYm9vay1zdHlsZS1kc3NzbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuamFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRvY2Jvb2stZHRkczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNnbWwtY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJhdmMxMzk0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmN5cnVzLXNhc2wtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3lydXMtc2FzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnVtYi1zY2hlbWU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmVlbDItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZWVsMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXVpLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnJzdmcyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb24tZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGwtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYWlsLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZXhwZWN0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGNsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5naW1wLXByaW50LWN1cHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3VwczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jdXBzLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5naW1wLXByaW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUta2VyYmVyb3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZnRwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZW5zY3JpcHQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5vYXR1bjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZW11bHRpbWVkaWEtYXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFydHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ25vbWVwcmludC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXByaW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nby1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9iby1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mcmVlY2l2PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmRlc2t0b3AtZmlsZS11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YYXczZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJycG00MDQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2F3azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoYWRvdy11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iemlwMi1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtcHJpbnQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHJpbnQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlicmVwLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnJlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdkYm08L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ndGtodG1sMi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndGtodG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWwtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54dHJhY2Vyb3V0ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndGtnbGFyZWE8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTFU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jb21wYXQtbGlic3RkYysrLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNvbXBhdC1saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5sb3NldHVwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bnRwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoYWRvdy11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmNhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zaGFydXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wb3N0Z3Jlc3FsLXB5dGhvbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5teDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Z3Jlc3FsLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5QeVF0LWV4YW1wbGVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlB5UXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlNETF9taXhlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5TREw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm9nZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnZvcmJpczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmt0YWxrZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hc2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmVydWJ5LWxpYnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cnVieS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGViYXNlLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGViaW5kaW5ncy1xdGM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlZGbGliMjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LXRydWV0eXBlLWZvbnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhzYW5lLWdpbXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2F3azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdpbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNhbmUtYmFja2VuZHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0aWZmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidXNiPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnRhYmUtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGFiZTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLW1lZGlhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNjcm9sbGtlZXBlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuc3NoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnV0aWwtbGludXg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuc3NsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZlc3RpdmFsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0ZXJtY2FwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3RhcmRpY3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b3Blbm1vdGlmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xbWtib290ZGlzazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWtib290ZGlzazwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRlc2t0b3AtZmlsZS11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkltYWdlTWFnaWNrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJ6aXAyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVuZ2lmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDItbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53b3JkdHJhbnMtd2ViPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PndvcmR0cmFuczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5lZGl0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5tb3RpZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRlc2t0b3AtZmlsZS11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Zm9udHMtS09JOC1SLTEwMGRwaTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vYWYtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b2FmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmlweHV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3VkenUtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGNpdXRpbHMtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ldGhlcmVhbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwY2FwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV0LXNubXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Ym9vdHBhcmFtZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3J0bWFwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGljcS1nbm9tZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWNxPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkYmc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2RiPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dXNidmlldzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y3VwczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHMtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmh0bWx2aWV3PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eGluZXRkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ncG08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wbWFrZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YYmFlLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhiYWU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wa2djb25maWc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5waHAtbXlzcWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGhwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5teXNxbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5qZWQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2xhbmc8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdXRvcnVuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3JiNS1zZXJ2ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdrcmVsbG08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a21lc3NlZHdvcmRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0a2h0bWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHJpbnQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHNwZWxsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliY2FwcGxldDA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdhbDE5PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2h0dHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmLWdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVwcmludDE1PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vYWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtlcm5lbC1iaWdtZW08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW9kdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1raW5pdHJkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnF0LVBvc3RncmVTUUw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0xVPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGdyZXNxbC1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WGZ0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2V0dXB0b29sPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxyenN6PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2trZGljPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndvcmR0cmFuczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YmVlY3J5cHQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pc2RuNGstdXRpbHMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aXNkbjRrLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3JlcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGNyZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd1aWxlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVtYi1zY2hlbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dHRmcHJpbnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWtib290ZGlzazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ta2luaXRyZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRvc2ZzdG9vbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zeXNsaW51eDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50cmVlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aXNkbjRrLXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+UHlRdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2lwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmgycHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVubW90aWY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z251cGc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVubGRhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1JdGFsaWFuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmVtYWNzLWVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmVtYWNzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHl0aG9uLWRvY3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWNvbmZpZy1odHRwZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hbGNoZW1pc3Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azItbGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1weXRob24yPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PjRTdWl0ZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rc3RhcnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y3Byb3RvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tQnJpdGlzaDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJyYXcxMzk0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtub3RlczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5PUkJpdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3BlbnNzbDA5NWE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1TcGFuaXNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtUGFyc2UtUmVjRGVzY2VudDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGludXhkb2MtdG9vbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmphZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXRleC1sYXRleDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncm9mZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ4bWwtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZvbnRzLUtPSTgtUjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y29tcGF0LWxpYmdjajwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emlwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WEZyZWU4Ni1JU084ODU5LTItMTAwZHBpLWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFtYW5kYS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hbWFuZGE8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nZW5yb21mczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB5dGhvbi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3ZvY3RyYWluPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGljcS1xdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWNxPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmF1dG9tYWtlMTQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXV0b21ha2UxNTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtY29uZmlnLWRhdGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHl0aG9uMi1jYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm50cDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJocGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5naW1wLXByaW50PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdob3N0c2NyaXB0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1zdjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53aXJlbGVzcy10b29sczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBhc3N3ZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVzZXI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5waHAtbGRhcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5waHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xdW90YTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZXJuZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aXNkbjRrLXV0aWxzLXZib3hnZXR0eTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pc2RuNGstdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50Y2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlNETDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdkay1waXhidWY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0aWZmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmRlc2t0b3AtZmlsZS11dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdkbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zY3JvbGxrZWVwZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicnN2ZzI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eGluaXRyYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eHNyaTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnV0aWwtbGludXg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWRoYXQtYXJ0d29yazwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1tZW51czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ3bmNrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5lZWwyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXVpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnJzdmcyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2FpbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdGs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnVzZXJtb2RlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnV0aWwtbGludXg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidXNlcjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmhlc2lvZC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5oZXNpb2Q8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zZW5kbWFpbC1kb2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cXQtZGVzaWduZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Zm9udGNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTFU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YZnQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlbGliczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFydHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jdXBzLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDItbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wY3JlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4c2x0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBvc3RncmVzcWwtY29udHJpYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Z3Jlc3FsLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Z3Jlc3FsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLURCRC1QZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtREJJPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGdyZXNxbC1wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1UaW1lLUhpUmVzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3NsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBhbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jcmFja2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNyYWNrbGliLWRpY3RzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRiNDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1vemlsbGEtZG9tLWluc3BlY3RvcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tb3ppbGxhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYS1uc3ByPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJyc3ZnMi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJyc3ZnMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGUtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFjLWFyY2hpdmU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXV0b2NvbmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXV0b21ha2U8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ib25vYm8tYWN0aXZhdGlvbi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0Mi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFuYWNvbmRhLXJ1bnRpbWU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW96aWxsYS1uc3ByLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGEtbnNwcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtY29uZmlnLW1vdXNlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5eGY4NmNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVubGRhcC1zZXJ2ZXJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1ha2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVubGRhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRvb2wtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN5cnVzLXNhc2w8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLVhNTC1Ud2lnPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLVhNTC1QYXJzZXI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zdHVubmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+d29yZHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uZXQtdG9vbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjLWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1ha2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGRza2s8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZW1hY3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hcGVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYXJ0d29yay1rd29ybGRjbG9jazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZGV0b3lzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtc3lzdGVtLW1vbml0b3I8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmd0b3AyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlid25jazwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jZHA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmluZHV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pc2ljb208L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cG9wdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZpbmdlci1zZXJ2ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eGluZXRkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mb250Y29uZmlnPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXhwYXQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT51cDJkYXRlLWdub21lPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnVwMmRhdGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMi1saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXB5dGhvbjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1weXRob24yLWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlLWd0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBhdGNodXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNveC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YRnJlZTg2LXRvb2xzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0xVPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2NjLWMrKzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKystZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdpbXAtcHJpbnQtdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2ltcC1wcmludDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdzbC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aXB0YWJsZXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2VybmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2lucHV0Mi1jYW5uYS13bm42PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5DYW5uYS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5Xbm42LVNESzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmt2aWV3c2hlbGwtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a3ZpZXdzaGVsbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtWE1MLUR1bXBlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1YTUwtUGFyc2VyPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dW5peDJkb3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWNxLXRleHQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGljcTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmRiaS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJkYmk8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wcmVsaW5rPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2VybmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y29tcGF0LWdjYy1jKys8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNvbXBhdC1saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jb21wYXQtbGlic3RkYysrLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVwaW0tY2VsbHBob25lPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZXBpbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJpdG1hcC1mb250czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5mb250Y29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdkYm0tZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2R2aTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3ZpZXdzaGVsbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZWFkZG9ucy1ub2F0dW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bm9hdHVuPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbXVsdGltZWRpYS1hcnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+U0RMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmF1bWl4LVgxMTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hdW1peDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncG08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZWxmLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmVsZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRldGV4LWR2aXBzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnRldGV4PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHN1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtQ1BBTjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGF0Y2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tZXcteGVtYWNzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhlbWFjczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1ldy1jb21tb248L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJlbGY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVzZGsta3NweTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJnbm9tZS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9iby1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieHNsdC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGFpcGVpZm9udHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZm9udC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS1weXRob24yPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXB5dGhvbjItYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBjcmUtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGNyZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kdW1wPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNldHVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cm10PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bnV0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm51dC1jbGllbnQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3BlbnNzaC1hc2twYXNzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJkZXNrdG9wPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNlZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+TFBSbmc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2F3azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rcmI1LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB5Z3RrMi1saWJnbGFkZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tZ2V0dHk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFyazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT56aXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51bnppcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRhcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1kYWRtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYteHRyYXAtY2xpZW50czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJhaW88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmFydF9sZ3BsLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhhd3R2PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlidW5naWYtcHJvZ3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlidW5naWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2VybmVsLWRlYnVnPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vZHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta2luaXRyZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pbmRleGh0bWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlibW5nLXN0YXRpYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50aW1pZGl0eSsrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFydHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJvZ2c8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zbGFuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnZvcmJpczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZpbmdlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdsaWJjLWRlYnVnLXN0YXRpYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlicG5nPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdub21lcHJpbnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dXJ3LWZvbnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2hvc3RzY3JpcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5naG9zdHNjcmlwdC1mb250czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pcmI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cnVieTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYmluZGluZ3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3Rlcm08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dXRlbXB0ZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJvbGUyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm9sZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtdGVybWluYWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dnRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1EYXRlTWFuaXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmVtYWNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+d2wtY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmxpbTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmN5cnVzLXNhc2w8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rcmI1LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kYjQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGJtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+V2luZG93TWFrZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3BwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0aWZmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidW5naWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5XaW5kb3dNYWtlci1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkd1cHBpLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pkd1cHBpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGlicy1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXByaW50LWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHlkaWN0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uZXd0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNsYW5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eGNoYXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLXByaW50PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51cnctZm9udHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5naG9zdHNjcmlwdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdob3N0c2NyaXB0LWZvbnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXByaW50MTU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1ydGc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtQ0dJPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1VUkk8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YYXczZC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YYXczZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZmlsZS1wZGY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3lzc3RhdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZXJuZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT52aXhpZS1jcm9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Zm9udHMtSVNPODg1OS0yPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFydHMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZWFydHdvcmstc2NyZWVuc2F2ZXJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0xVPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aXB0YWJsZXMtaXB2NjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pcHRhYmxlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxzb2Y8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5iaW51dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZnJlZXR5cGUtZGVtb3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtUlBNMjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJlbGY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cnBtPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bmFtYXp1PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLUZpbGUtTU1hZ2ljPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1OS0Y8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rYWthc2k8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLVRleHQtS2FrYXNpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5FbGVjdHJpY0ZlbmNlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmF1dG9jb252ZXJ0LXhjaGF0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhjaGF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5HdGstUGVybDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0a2dsYXJlYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1ZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTFU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nMTA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1saWJ3d3ctcGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNkaWNjb25mPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3JiYWZzLXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYmFmczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YnlhY2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tZW1wcm9mPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJpbnV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LXJwbS1jb25maWc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cnBtLWJ1aWxkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1KYXBhbmVzZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jb21wYXQtc2xhbmc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLUlubGluZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3RrZ2xhcmVhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW9kX3Blcmw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbGliYy1rZXJuaGVhZGVyczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zcGVjc3BvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1jb25maWctcHJpbnRlci1ndWk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWNvbmZpZy1wcmludGVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyLWxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHl0aG9uMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXB5dGhvbjItZ3RraHRtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5jdXJzZXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bmZzLXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmtlcm5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcnRtYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zZWQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXRpbC1saW51eDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdhbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nZWRpdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zY3JvbGxrZWVwZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lZWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2FpbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXByaW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVwcmludHVpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJwbmcxMDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zcXVpcnJlbG1haWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5waHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dG1wd2F0Y2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Zml4PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aW1hcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT54aW5ldGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWV0YWNpdHk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWFydHdvcms8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhwZGYtamFwYW5lc2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eHBkZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnJlcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z21wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJ1c3lib3gtYW5hY29uZGE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWFkbGluZS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFtYW5kYS1jbGllbnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eGluZXRkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YW1hbmRhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0ZXJtY2FwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYWRkb25zLWtuZXdzdGlja2VyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVuZXR3b3JrLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rbmV3c3RpY2tlcjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBhbV9rcmI1PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYmFmczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aXJkYS11dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW9kdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aHdjcnlwdG88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYmluZGluZ3Mta21vemlsbGE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJpbmRpbmdzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y2RwYXJhbm9pYS1saWJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtREJELU15U1FMPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLURCSTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bXlzcWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2Fib29kbGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRyaXB3aXJlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nemlwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGFyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2F3azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jZGVjbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5ldC1zbm1wLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ldC1zbm1wPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliYXJ0X2xncGw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mcmVldHlwZS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ4bWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRldGV4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnRtcHdhdGNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGlhbG9nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZWQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXRleC1mb250czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rc3ltb29wczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdpbXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRlc2t0b3AtZmlsZS11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzEwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5DYW5uYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zZXR1cDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Q2FubmEtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+V25uNi1TREstZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+V25uNi1TREs8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVubW90aWYyMTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1ha2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJhbHNhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZXNtdHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdhbDE5PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1Zi1nbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lcHJpbnQxNTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0a2h0bWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVubGRhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRvb2wtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBjcmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2xhbmctZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2xhbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJ1YnktbW9kZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5lbWFjczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZuYy1zZXJ2ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4NjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YmVlY3J5cHQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmVlY3J5cHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nY29uZi1lZGl0b3I8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pcGNoYWluczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2FybTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pdGNsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tS29yZWFuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBocC1kYmctc2VydmVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBocDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5TRExfaW1hZ2UtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+U0RMX2ltYWdlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+U0RMLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2l0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mYW0tZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmFtPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZXhtaDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ubWg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50azwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtRmlsdGVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdjai1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT56aXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2o8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZTJmc3Byb2dzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1wYW5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtcHl0aG9uMi1jYW52YXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ4bWwxMDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ncXZpZXc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGVza3RvcC1maWxlLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5JbWFnZU1hZ2ljay1wZXJsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PkltYWdlTWFnaWNrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJ6aXAyLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmN1cHMtbGliczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5HQ29uZjItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0Mi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2hvc3RzY3JpcHQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2hvc3RzY3JpcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2xybjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zbGFuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+T1JCaXQyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZGVudDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYy1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYklETC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliSURMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVhZG1pbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nemlwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sZXNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlsbzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ta2luaXRyZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLVJ1c3NpYW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bnNzX2RiLWNvbXBhdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmRlamFnbnU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dGNsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXhwZWN0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnJzdmcyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtlcm5lbC11bWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2VybmVsLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWxvZ3ZpZXdlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNwYW1hc3Nhc3NpbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1OZXQtRE5TPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1UaW1lLUhpUmVzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHJvY21haWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kYjQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGJtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bXJ0ZzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJobi1hcHBsZXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cnBtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cnBtLXB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJobmxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMi1saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVwMmRhdGUtZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1weXRob24yPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHl0aG9uMi1ndGtodG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVwMmRhdGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lMmZzcHJvZ3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm15c3FsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1EQkk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLURCRC1NeVNRTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1DR0k8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uZXRjb25maWc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uZXd0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ25vbWVwcmludHVpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXByaW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tQ2hpbmVzZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJwY2FwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmtlcm5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnczYy1saWJ3d3c8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2Rlc3NoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2gtY2xpZW50czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnR1eHJhY2VyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1NZXNhLWxpYkdMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1NZXNhLWxpYkdMVTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlNETDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRjbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNra2lucHV0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmRic2trZC1jZGI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxva2tpdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pcHRhYmxlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zbGFuZzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtlcm5lbC11dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uZXQtc25tcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNvbXBhdC1wd2RiPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2ZheDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3ZpZXdzaGVsbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJhdHRyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmF0dHI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGViYXNlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eGluaXRyYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYteGRtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2RwYXJhbm9pYS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGVza3RvcC1iYWNrZ3JvdW5kcy1iYXNpYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1tZW51czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1hcnR3b3JrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGVza3RvcC1maWxlLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bG1fc2Vuc29yczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LXhmczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hcnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5sZGFwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ2b3JiaXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2QtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2Q8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ram90czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jdXBzLWRyaXZlcnMtaHBpanM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aHBpanM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5naG9zdHNjcmlwdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBvc3RncmVzcWwtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGdyZXNxbC1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5lcnVieS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5lcnVieS1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGVza3RvcC1iYWNrZ3JvdW5kcy1leHRyYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53M20tZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dzNtLWVsLWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVtYWNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmxpbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnczbTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJvbm9iby1hY3RpdmF0aW9uPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnczYy1saWJ3d3ctZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dzNjLWxpYnd3dzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rdGltZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWFnaWNkZXY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbWltZS1kYXRhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLVRlcm1SZWFkS2V5PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB5T3BlblNTTDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yc3luYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJnbmF0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlicG5nLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nLXdyYXAtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmctd3JhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd1aWxlLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd1aWxlPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2NjLWc3NzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJmMmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGVybWNhcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50ZXRleC1sYXRleDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT50ZXRleDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ldHBibS1wcm9nczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dm5jLWRvYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rbGV0dHJlczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGViaW5kaW5ncy1xdGphdmE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2o8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5qZGtnY2o8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNXbm48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+RnJlZVdubi1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jV25uLWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoYWRvdy11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZuYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54ZW1hY3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN0YWdzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkNhbm5hLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRiNDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVubGRhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Z3Jlc3FsLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0aWZmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+RnJlZVdubi1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3Blbm1vdGlmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdhbDE5PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdhbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVzZGsta2J1Z2J1c3RlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3lza2xvZ2Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZHZkcmVjb3JkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2VkaXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+R0NvbmYyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnN5bHBoZWVkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ3RvcDI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdsaWJjPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjLWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2VzeXN0ZW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dXRlbXB0ZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jcHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LXhhdXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R2xpZGUzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni14ZnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWJhc2UtZm9udHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZXJuZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZm9udC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eDMyNzAteDExPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PngzMjcwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+V25uNi1TREs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlcGltLXBpbG90PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZXBpbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBpbG90LWxpbms8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ0ZXJtY2FwLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZXBpYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ0aWZmLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5GcmVlV25uLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5iYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNvbXBhdC1nY2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmludXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYy1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0a2FtLWdpbXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5naW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2F3azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3Bob3RvMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndnZXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVzZGsta2FwcHRlbXBsYXRlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmRiaS1kYmQtbXlzcWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliZGJpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5teXNxbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNhd2Zpc2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlicmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVwLWd0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ1bmdpZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVwaW0tZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlcGltPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlbXVsdGltZWRpYS1hcnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZW11bHRpbWVkaWEtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJvZ2c8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnZvcmJpczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wb3N0Z3Jlc3FsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Z3Jlc3FsLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tZ2V0dHktdm9pY2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bWdldHR5PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mcmVldHlwZS11dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWNvbmZpZy1iaW5kPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFsY2hlbWlzdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1weXRob24yPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmluZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PjRTdWl0ZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndvcmRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5GcmVlV25uLWNvbW1vbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1jb25maWcteGZyZWU4NjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azItbGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmh3ZGF0YTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmt1ZHp1PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl4Zjg2Y29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kaWFsb2c8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBjY3RzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2xpYjI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uY3Vyc2VzLWMrKy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2Rlc2RrLWttdHJhY2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmhlc2lvZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYm1ycHJvamVjdC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJtcnByb2plY3Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1GaW5uaXNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndlYmFsaXplcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kYjQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZXJuZWwtQk9PVDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tb2R1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5TRExfaW1hZ2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+U0RMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5odHRwZC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0b29sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2Rlc2RrLWdpbXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2ltcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhlbWFjcy1lbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT54ZW1hY3M8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5waWxvdC1saW5rMDk1LWNvbXBhdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNoYXBlY2ZnPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmtlcm5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmlwcm91dGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kaGNwLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmRoY3A8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5HQ29uZjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9hZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c294PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm9nZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnZvcmJpczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJkZmx1c2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wY3JlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2FuZS1mcm9udGVuZHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdpbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zYW5lLWJhY2tlbmRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVzYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wc3BlbGwtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zYW5lLWJhY2tlbmRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidXNiPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGhwLXNubXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGhwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ldC1zbm1wPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWFuLXBhZ2VzLXJ1PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlY29kZS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5yZWNvZGU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jdGFnczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRjcGR1bXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2VybmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnppc29mcy10b29sczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1Qb2xpc2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZG9jYm9vay11dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5kb2Nib29rLXN0eWxlLWRzc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZG9jYm9vay1kdGRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1TR01MU3BtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+d2hpY2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnF0LU15U1FMPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mb250Y29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1NZXNhLWxpYkdMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1NZXNhLWxpYkdMVTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm15c3FsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WGZ0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dHJhY2Vyb3V0ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmN5cnVzLXNhc2wtcGxhaW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3lydXMtc2FzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmlsZS1yb2xsZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2Nyb2xsa2VlcGVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW9kX2F1dGhfcGdzcWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvc3RncmVzcWwtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtdHJ1ZXR5cGUtZm9udHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtcHl0aG9uMi1hcHBsZXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcGFuZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliY2FwcGxldDAtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliY2FwcGxldDA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cnAtcHBwb2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wcHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZXJuZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pbmZvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wd2xpYi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wd2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmV4cGF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXR0cjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmF0dHI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVzZGsta29tcGFyZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tYW4tcGFnZXMtaXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bXRyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jZXJ2aXNpYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mb250Y29uZmlnLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZS1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdXRvZnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wcm9jcHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWRoYXQtcmVsZWFzZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aGVzaW9kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wcHA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXV0b2NvbmY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tNDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eGluaXRyYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnN3aXRjaGRlc2s8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wYW0tZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW96aWxsYS1tYWlsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGE8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tb3ppbGxhLW5zcHI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jb21wYXQtbGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eXBzZXJ2PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tYWtlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9ydG1hcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFycHdhdGNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtdmZzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9hZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLW1pbWUtZGF0YTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iemlwMi1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tYWlseDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtzaXJjPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLURhdGUtQ2FsYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtQml0LVZlY3RvcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kaWZmdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJ1YnktZG9jczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jdXJsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ocGlqczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5naG9zdHNjcmlwdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGl4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGNsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGs8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbnVwbG90PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1OS0Y8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bmM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2dlbzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rdmlld3NoZWxsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmt2aWV3PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y3Vwcy1kcml2ZXJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5naG9zdHNjcmlwdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBsdWdnZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1pa21vZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pnhsb2FkaW1hZ2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zb3g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkZyZWVXbm48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoYWRvdy11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkZyZWVXbm4tY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a29ybjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVuZXR3b3JrLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS1zZXNzaW9uPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1hcnR3b3JrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWxvZ29zPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVhcnR3b3JrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5HQ29uZi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0LWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9hZi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0aystZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1EaWdlc3QtSE1BQzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLURpZ2VzdC1TSEExPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLWRlc2t0b3A8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LWFydHdvcms8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWRoYXQtbWVudXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmh0ZGlnLXdlYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5odGRpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYm9nZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5jb21wcmVzczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB3bGliPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmV4cGF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZG9zMnVuaXg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xdDItZGVzaWduZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlibW5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54ZW1hY3MtaW5mbzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT54ZW1hY3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aGFudGVybS14ZjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YYXczZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnR0Zm9udHMta288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51dGVtcHRlcjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdub21lY2FudmFzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGltZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3htbHJwY2Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtbG9ra2l0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pcHRhYmxlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5hc208L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd2PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdob3N0c2NyaXB0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YYXczZDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmN5cnVzLXNhc2wtbWQ1PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmN5cnVzLXNhc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5na2VybWl0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aXB1dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtSFRNTC1UYWdzZXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtY3lyaWxsaWMtZm9udHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHl0aG9uLW9wdGlrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1zd2l0Y2htYWlsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ld3Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBjaXV0aWxzLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlY29kZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGhwLXBnc3FsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBocDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rcmI1LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGdyZXNxbC1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmlsZXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhzbm93PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+d21peDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmR0YWNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2xwcmZheDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5MUFJuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2NjLW9iamM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlib2JqYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3ZpZXc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cnBtLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnJwbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDItbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmVsZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50Y2xsaWI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5sZnRwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT51bnppcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wc2FjY3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm9wZW5zc2wwOTY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rY2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saW5jLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wa2djb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWtpc29mczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtWG5lc3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4NjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0azI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0aWZmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WGZ0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3RrKzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hcG1kPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2hvc3RzY3JpcHQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+VkZsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51cnctZm9udHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5naG9zdHNjcmlwdC1mb250czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9tbmk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y3Vwcy1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2ltcC1wcmludDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YmluZC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iaW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdudWNhc2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnYWwxOTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnaHR0cDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWYtZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXByaW50MTU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGtodG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3VpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HdXBwaTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmctd3JhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b2FmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLUNQQU48L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kaWE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LW1lbnVzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1ZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidW5pY29kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mYnNldDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tb3ppbGxhLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGE8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGEtbnNwcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNvbXBhdC1saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hMnBzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBzdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Ym9vdHk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlbmV0d29yay1saWJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJ1c2VyczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZldGNobWFpbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Zml4PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aGVzaW9kPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dG9yYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5zc19sZGFwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm5zY2Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS1weXRob24yLW5hdXRpbHVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9yYml0LXB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5hdXRpbHVzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVlbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYWlsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kZXY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFuYWNvbmRhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJwbTQwNC1weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yaHBsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lMmZzcHJvZ3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWt0ZW1wPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+amlza3NwMTQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni14ZnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aW1saWItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0aWZmLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZy1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidW5naWYtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1raW5pdHJkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmRldjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmUyZnNwcm9nczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW91bnQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nemlwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGFyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW9kdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sb3NldHVwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmluZHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bHZtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXN5c3RlbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVpc2VyZnMtdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5waHAtZGJnLWJhc2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2FrYXNpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm52aS1tMTduPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRjc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLUNhdGFsYW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YnJpZGdlLXV0aWxzLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtlcm5lbC1kb2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWFjdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nYXdrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50Y2w8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yYWlkdG9vbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+TUFLRURFVjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLXBhbmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWRlc2t0b3A8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnduY2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm9jdGF2ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbnVwbG90PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGVzczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ibGFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZjJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGFwYWNrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2ltcC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2ltcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJib25vYm91aS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9iby1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWUtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhwZGY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dXJ3LWZvbnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT51bml4T0RCQy1rZGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVuaXhPREJDPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eHBkZi1rb3JlYW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eHBkZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNjcm9sbGtlZXBlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbnRsdG9vbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRvY2Jvb2stZHRkczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5qYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhzbHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ25vbWV1aTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhmdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNkZGEyd2F2PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlicmF3MTM5NDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5iaW5kLXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1lbi1nYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtY29uZmlnLWxhbmd1YWdlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmt1ZHp1PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vZHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aHdkYXRhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ubWFwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWFuLXBhZ2VzLWphPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNvbXNhdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT54aW5ldGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1mcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5weGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW96aWxsYS1wc208L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGEtbnNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYS1uc3ByPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnppcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnN0ZGMrKy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRiNDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdkYm08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLUZpbHRlcjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtyZWdleHBlZGl0b3ItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGlldGxpYmM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dzNjLWxpYnd3dy1hcHBzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnczYy1saWJ3d3c8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50ZWxuZXQtc2VydmVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhpbmV0ZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHlndGsyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zdWRvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJ1Zy1idWRkeTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nZGI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1hY3RpdmF0aW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvdWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXVpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tSGVicmV3PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm50c3lzdjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ld3Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGluZm88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+amlza3NwMTYtMTk5MDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LXhmczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uZXRkdW1wPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NoLWNsaWVudHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV0LXRvb2xzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1jb25maWctc2VydmljZXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHl0aG9uMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMi1saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXB5dGhvbjItY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGUtZ3RrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bG1fc2Vuc29yczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eGZpZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT50cmFuc2ZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnhwZGY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5JbWFnZU1hZ2ljazwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFzcGVsbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmh0bWx2aWV3PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WGF3M2Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlianBlZy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmxpbS14ZW1hY3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eGVtYWNzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eHBkZi1jaGluZXNlLXRyYWRpdGlvbmFsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhwZGY8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zaXAtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2lwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aHRtbHZpZXc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LW1lbnVzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhzcmk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50YXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtRmlsZS1NTWFnaWM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnd1LWZ0cGQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnhpbmV0ZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5waWxvdC1saW5rLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBpbG90LWxpbms8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZWR1Y2E8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tSHVuZ2FyaWFuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmltbGliPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ1bmdpZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxvZ3JvdGF0ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y1dubi1jb21tb248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+RnJlZVdubi1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLWxpYnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5odG1sdmlldzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnV0ZW1wdGVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmcxMDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5odGRpZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmRpc3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbGliYy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmMta2VybmhlYWRlcnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nY2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3BwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmludXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYy1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zaXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1vZF9zc2w8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRldjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmh0dHBkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWFrZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtnaG9zdHZpZXc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlicnN2ZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZvbnRzLUlTTzg4NTktMi03NWRwaTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZm9udC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS1kZXNrdG9wLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWRlc2t0b3A8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aS1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3Blbm9mZmljZS1saWJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGI0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZXAtZ3RrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnJlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ndWlsZS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndWlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zbmRjb25maWc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c294PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3VkenU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdW1peDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmtlcm5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlieHNsdC1weXRob248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlieHNsdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRjc2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5udXQtY2xpZW50PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1lbi1jYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJycG00MDQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlicnBtNDA0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5hc20tcmRvZmY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jYWNoaW5nLW5hbWVzZXJ2ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmluZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+d21hcG08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wc3BlbGw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidG9vbC1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2xqZXR0b29sPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB5eGY4NmNvbmZpZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmYyYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1hbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sZXNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JvZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maW5kdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT56bGliLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5taW5pQ2hpbnB1dDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhmdDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJpbmQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmluZC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxvZ3dhdGNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tYWlseDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJnbGFkZTItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wdm08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGNzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cnBtNDA0LXB5dGhvbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJycG00MDQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iemlwMi1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRhbGs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliYW88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xdC1YdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Zm9udGNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTFU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YZnQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ1c2VyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVubGRhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJvbGUyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5zc19kYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1ha2U8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zZ21sLWNvbW1vbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2JkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nY2MtZ25hdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbmF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtQXJjaGl2ZS1UYXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBpbmU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5sZGFwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm11dHQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2xhbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Zml4PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+d2dldDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rcmI1LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jeXJ1cy1zYXNsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dHJhbnNmaWc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dGNzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YW5hY29uZGEtaW1hZ2VzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFuYWNvbmRhLXJ1bnRpbWU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uZXRhdGFsay1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50bXB3YXRjaDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wc21pc2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnd2ZGlhbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wcHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxvY2tkZXY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ3dnN0cmVhbXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5TRExfbmV0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlNETF9uZXQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ib25vYm8tY29uZi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tY29uZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZW11bHRpbWVkaWEtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbXVsdGltZWRpYS1hcnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bm9hdHVuPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ2xhZGUyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLUFmcmlrYWFuczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5qcGlsb3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBpbG90LWxpbms8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGlsb3QtbGluazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJ1Ynk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cnVieS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54Y3B1c3RhdGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLVRleHQtS2FrYXNpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rYWthc2k8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFwZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZW1hY3M8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdC1zcGktZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXQtc3BpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9iby1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0Mi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWwtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5mbGV4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YW0tdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cG9ydG1hcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmluZHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGJtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aGVzaW9kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zZW5kbWFpbC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1Td2VkaXNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnB5dGhvbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kYjQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5leHBhdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdkYm08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0ZXJtY2FwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNwbGludDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZWdhbWVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53M20tZWwteGVtYWNzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnczbS1lbC1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT54ZW1hY3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mbGltLXhlbWFjczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnczbTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlN5c1Zpbml0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdyb2ZmLWd4ZGl0dmlldzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5ldC1zbm1wLXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ldC1zbm1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wYW5nbzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhmdDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndsLWNvbW1vbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnN0ZGMrKzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtyYjUtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a25tX25ldzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y29tcGF0LWdjYy1qYXZhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNvbXBhdC1nY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jb21wYXQtbGliZ2NqPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYmdjai1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmpwZWc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jbGVhbmZlZWQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmV4cGF0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmV4cGF0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+d29yZHRyYW5zLXF0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PndvcmR0cmFuczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xdGN1cHMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHNtaXNjPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLUN6ZWNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhtbXMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eG1tczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rcGY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+d29yZHRyYW5zLWtkZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT53b3JkdHJhbnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJvbm9ibzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vYWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVwcmludDE1PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuc3NoLWFza3Bhc3MtZ25vbWU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVhZGRvbnMta2lja2VyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5lZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3Blbm9mZmljZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5vZmZpY2UtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5vZmZpY2UtaTE4bjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1tZW51czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW96aWxsYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGEtbWFpbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54dG9vbHdhaXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ncG0tZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3BtPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ2NjPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+emVicmE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJtbmc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJpdG1hcC1mb250cy1jams8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Zm9udGNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdjajwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT56aXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wdm0tZ3VpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB2bTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRjc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50Y2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5ocGY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGV1dGlscy1sYXB0b3A8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlYmFzZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJ6aXAyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJ6aXAyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDItbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtTWVzYS1saWJHTDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ncGVyZjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cndhbGwtc2VydmVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcnRtYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ0YWJlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmRiNDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cG9zdGdyZXNxbC1vZGJjPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGhjcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tdHg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3BlbmphZGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2dtbC1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kb2Nib29rLWR0ZHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZXBpbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGhwLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLVBhcnNlLVlhcHA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLWF1ZGlvLWV4dHJhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtjb2xvcmVkaXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cXQyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnF0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJtbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jb21wYXQtbGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtSVNPODg1OS0xNS03NWRwaS1mb250czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZm9udC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wcm9jbWFpbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kZXY4NjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbnVtZXJpYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndWlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXByaW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnYWwxOTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1ZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmLWdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlib2xlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lcHJpbnQxNTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b2FmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZGF0ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1zd2l0Y2htYWlsLWdub21lPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1zd2l0Y2htYWlsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyLWxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1YTUwtRW5jb2Rpbmc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtWE1MLVBhcnNlcjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnF0LU9EQkM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0xVPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dW5peE9EQkM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YZnQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbGliYy1jb21tb248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WEZyZWU4Ni14ZG08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4NjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pnhpbml0cmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGljdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cm9vdGZpbGVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xdC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0xVPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WGZ0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm9wZW5vZmZpY2UtaTE4bjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ibGFzLW1hbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJkYmktZGJkLXBnc3FsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmRiaTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGdyZXNxbC1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmFycGQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2xvY2F0ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tdC1zdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRmdHAtc2VydmVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhpbmV0ZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNvbXBhdC1kYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNvbXBhdC1saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50Y2w8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbGliYy1kZWJ1ZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dFdubjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5GcmVlV25uLWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNXbm4tY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGNwX3dyYXBwZXJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGFtX3NtYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm10b29sczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHlndGsyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLUZyZW5jaDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVubGRhcDEyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm9wZW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hc3BlbGwtbmw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXNwZWxsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXNwZWxsLW5vPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFzcGVsbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZpbS1taW5pbWFsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnZpbS1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhY2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ybXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+U0RMX25ldDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5TREw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdsaWJjLXByb2ZpbGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZW1hY3NwZWFrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmVtYWNzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rV25uPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PkZyZWVXbm4tY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXNwZWxsLWl0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFzcGVsbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdyb2ZmLXBlcmw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT51cnctZm9udHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mb250Y29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmtzY2FuLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmtzY2FuPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YWxjaGVtaXN0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFsY2hlbWlzdDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmttYWlsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZW5ldHdvcmstbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54bWx0bzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5kb2Nib29rLXN0eWxlLXhzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhc3NpdmV0ZXg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4c2x0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZG9jYm9vay1kdGRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLXZmcy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9hZi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5TREwtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+U0RMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jb21wcy1leHRyYXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWdldHR5LXNlbmRmYXg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bWdldHR5PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV0cGJtLXByb2dzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJzaDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBvc3RncmVzcWwtcGVybDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3N0Z3Jlc3FsLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVsaWJzLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnF0LWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBjcmUtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtjYWxjPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZ0cGNvcHk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHN1dGlsczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXV0aGNvbmZpZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ1c2I8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5oZHBhcm08L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YRnJlZTg2LTEwMGRwaS1mb250czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZm9udC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJjYXAtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliY2FwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cG9zdGdyZXNxbC1zZXJ2ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGdyZXNxbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvc3RncmVzcWwtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rcmI1LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WGx0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+amRrZ2NqPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdjYy1qYXZhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NqPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1wdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLUhUTUwtUGFyc2VyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLUhUTUwtVGFnc2V0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rcnVsZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WGF3M2Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dHRjcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtlcm5lbC1zb3VyY2U8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2F3azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxtX3NlbnNvcnMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bG1fc2Vuc29yczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlh0ZXN0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdmdHA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kb2Nib29rLWR0ZHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eG1sLWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNnbWwtY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnByaXZveHk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmh0dHBkLW1hbnVhbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT56c2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJjYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0ZXJtY2FwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGlkZW50ZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zZWQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnV0aWwtbGludXg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WGZ0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhmdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Zm9udGNvbmZpZy1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zZXRzZXJpYWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJvYmpjPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Ym9ub2JvLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNvbnRyb2wtY2VudGVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhzY3JlZW5zYXZlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1tZW51czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1kZXNrdG9wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WGZ0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54aXNkbmxvYWQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aXNkbjRrLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54Ym9hcmQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z251Y2hlc3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGVza3RvcC1maWxlLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmd0a2h0bWwyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnlwYmluZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3J0bWFwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eXAtdG9vbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWNxPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmh0bWx2aWV3PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGVza3RvcC1maWxlLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pbmV3czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmVsZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1jb25maWctc2VjdXJpdHlsZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jcm9udGFiczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtdmZzMi1leHRyYXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jdXBzLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uZXQtc25tcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJ6aXAyLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZWxmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJwbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kYnNra2QtY2RiPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tR3JlZWs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ2xhZGUtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+VkZsaWIyLWNvbmYtamE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+VkZsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dHRmb250cy1qYTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZpeGllLWNyb248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c3lza2xvZ2Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtbGlieG1sLWVubm88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtRGF0ZU1hbmlwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1saWJ3d3ctcGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtUGFyc2UtWWFwcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtWE1MLUVuY29kaW5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1YTUwtUGFyc2VyPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+d2hpY2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJjYXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtY29uZmlnLXBhY2thZ2VzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azItbGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yaHBsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcHMtZXh0cmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cnBtNDA0LXB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDItcHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHl0aG9uMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zYW1iYS1jbGllbnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2FtYmEtY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHMtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rc2NkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5od2Jyb3dzZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHl0aG9uMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3VkenU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYXJ0ZWQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y3JhY2tsaWItZGljdHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+d29yZHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y3JhY2tsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1hbi1wYWdlcy1rbzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5tYW48L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nemlwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXNwZWxsLXB0X0JSPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFzcGVsbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdhbC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nYWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnYWwxOTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLU5vcndlZ2lhbi1OeW5vcnNrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLXB5dGhvbjItZ3RraHRtbDI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RraHRtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53bWNsb2NrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RldG95czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW96aWxsYS1uc3ByPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmVqZWN0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RvYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3RyYWNlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliYm9ub2JvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBhbmdvLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGUtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mb250Y29uZmlnLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WGZ0LWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZWxpbmtzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncG08L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5od2RhdGE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlidXNiLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVzYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWFkbGluZTQxPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGV0ZXgteGR2aTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT50ZXRleC1mb250czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnczYy1saWJ3d3c8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5WRmxpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YYXczZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rdG91Y2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2FpbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmlwcm91dGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZG9jYm9vay1zdHlsZS14c2w8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZG9jYm9vay1kdGRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+eG1sLWNvbW1vbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJrc2NhbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zYW5lLWJhY2tlbmRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidXNiPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkltYWdlTWFnaWNrLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PkltYWdlTWFnaWNrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmRvY2Jvb2stdXRpbHMtcGRmPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnRldGV4LWR2aXBzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+amFkZXRleDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRvY2Jvb2stdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGI0LWphdmE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZGI0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJndG9wLWV4YW1wbGVzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmd0b3A8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdkYm08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd1aWxlPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliSURMPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saW5jPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVubGRhcC1jbGllbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5sZGFwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN5cnVzLXNhc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0ZXJtY2FwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YmFzaC1kb2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dW5peE9EQkMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dW5peE9EQkM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rcmI1LXdvcmtzdGF0aW9uPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0ZXJtY2FwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dXAyZGF0ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ycG08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ycG0tcHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z251cGc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJobmxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1raW5pdHJkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uLW9wdGlrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ld3Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJndG9wMi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJndG9wMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZXRodG9vbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtzbmFwc2hvdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT52b3JiaXMtdG9vbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlib2dnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidm9yYmlzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYW88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YbHQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WGx0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWNvbmZpZy1yb290cGFzc3dvcmQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ1c2VyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBubTJwcGE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlZ2FtZXMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlZ2FtZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jcGlvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZnJhY3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bm1hcC1mcm9udGVuZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ubWFwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRldGV4LWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50ZXh0dXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dXRpbC1saW51eDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGI0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WEZyZWU4Ni1YdmZiPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ldm9sdXRpb248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2Nyb2xsa2VlcGVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vYWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tb3ppbGxhLW5zczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGEtbnNwcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9iby1jb25mPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnYWwxOTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmLWdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVwcmludDE1PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcGlsb3Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGtodG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVubGRhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBpbG90LWxpbms8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxlc3N0aWY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4NjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2xpYmMtdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnF0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Zm9udGNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhmdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jdXBzLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0xVPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm1uZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ2b3JiaXMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlib2dnLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidm9yYmlzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3JiNS1saWJzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmJpc29uPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uZXQtdG9vbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ2b3JiaXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlib2dnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ1bmljb2RlLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVuaWNvZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YW1hbmRhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRhcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmF1dG9jb252ZXJ0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cXQyLXN0YXRpYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5xdDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZXJuZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW9kdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1raW5pdHJkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcDJwaHAtZ3RrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFzcDJwaHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bG9ja2Rldi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5sb2NrZGV2PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3Blbm1vdGlmLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5tb3RpZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGhwLW1hbnVhbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5waHA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hZGp0aW1leDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnczbS1lbC1jb21tb248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWNvbmZpZy1uZnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmZzLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZWZheDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5tYWtlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+TXlTUUwtcHl0aG9uPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm14PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bXlzcWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50bWFrZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWFpbGNhcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJnaHR0cDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZXBhc3N3ZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtbWVudXM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tUG9ydHVndWVzZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtcmVsZWFzZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXNwZWxsLWNhPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmFzcGVsbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPk9SQml0MjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aXB2c2FkbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+VkZsaWIyLVZGamZtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlZGbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJnbm9tZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieHNsdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnV0ZW1wdGVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iemlwMi1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3JiYWZzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlidW5pY29kZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1jb25maWctbmV0d29yazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YWxjaGVtaXN0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3VkenU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbGFkZTI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azItbGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weWd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1weXRob24yPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+d3ZkaWFsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXB5dGhvbjItY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50dXg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtY29uZmlnLXByb2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHJvY3BzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnF0MjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlibW5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdWRpb2ZpbGUtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGtnY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtha2FzaS1kaWN0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmtha2FzaTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNjcmVlbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnV0ZW1wdGVyPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bHlueDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmRleGh0bWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1DR0k8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5NeU9EQkM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dW5peE9EQkM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm15c3FsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5zY2Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZmxvcHB5PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmpvZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT52dGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Yml0bWFwLWZvbnRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mb250Y29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhmdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYteGF1dGg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3RrLWRvYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5kb2Nib29rLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmphZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdodHRwLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdodHRwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dGtpbnRlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRpeDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+T1JCaXQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5kZW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtWE1MLUdyb3ZlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLWxpYnhtbC1wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Q2FubmEtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Q2FubmEtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNkcmVjb3JkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bG9ja2RldjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxlc3lzdGVtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2FrYXNpLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmtha2FzaTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFtaTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLXBpbG90PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBpbG90LWxpbms8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LW1lbnVzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliY2FwcGxldDA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vYWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm10ci1ndGs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bXRyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zd2l0Y2hkZXNrLWtkZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliYXR0cjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1vZHV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2FwcGEyMDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1EQkk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2RrLXBpeGJ1Zi1nbm9tZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxlc3N0aWYtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmxlc3N0aWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtlcm5lbC1zbXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bW9kdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1raW5pdHJkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLUdlcm1hbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5teXNxbC1zZXJ2ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bXlzcWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdC1zcGk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kYjQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZGI0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+R2xpZGUzLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PkdsaWRlMzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmx2PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFydHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtc3dpdGNoLXByaW50ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGhwLWRiZy1jbGllbnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGhwLWRiZy1iYXNlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGhwLWRiZy1zZXJ2ZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wY3JlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT55cC10b29sczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT55cGJpbmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmFjbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmF0dHI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5QeVF0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlB5UXQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5PbW5pLWZvb21hdGljPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pk9tbmk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mb29tYXRpYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5waHAtaW1hcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5waHA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJobmxpYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5weU9wZW5TU0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuc3NsLXBlcmw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbGliMi1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wa2djb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yYWR2ZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNyYWNrbGliPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGhwLW9kYmM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGhwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51bml4T0RCQzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmVzb3VuZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50YWxrLXNlcnZlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT54aW5ldGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLUNoaW5lc2UtQmlnNTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yc2gtc2VydmVyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1VUkk8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmRveHlnZW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uYXNtLWRvYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jaGtmb250cGF0aDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LXhmczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlN5c1Zpbml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dXRlbXB0ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWdldHR5LXZpZXdmYXg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJvZ2ctZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlib2dnPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bmV0cGJtLXByb2dzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm5ldHBibTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tb3VudDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGlmZnV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWNxLWtkZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWNxPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jdnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50Y3NoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBzdGFjazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5ldHBibTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPk1hZ2ljUG9pbnQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+d2F0YW5hYmUtdmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5WRmxpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJtbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVuZ2lmPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ3RvcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RibTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nZC1wcm9nczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wcm9jcHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1hbi1wYWdlcy1kZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZmlsZS1wbmc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHljaGVja2VyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5oZXhlZGl0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1hbi1wYWdlcy1kYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50ZXRleC1kb2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ4bWwyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmFzcGVsbC1kZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5hc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zcXVpZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sb2dyb3RhdGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbmxkYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLVVSSTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLVVrcmFpbmlhbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hc3BlbGwtZGE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXNwZWxsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aW1saWItY2ZnZWRpdG9yPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLUJyYXppbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jaGtjb25maWc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50ZXhpbmZvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3dpdGNoZGVzazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kZXNrdG9wLWZpbGUtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dHRmb250cy16aF9UVzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtmb250cGF0aDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZvbnRjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+UHlYTUw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tcGFnZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndob2lzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1OZXQtRE5TPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLURpZ2VzdC1ITUFDPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGF4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+WEZyZWU4Ni1JU084ODU5LTktMTAwZHBpLWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmlzY3NpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmtlcm5lbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNhbmUtYmFja2VuZHMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2FuZS1iYWNrZW5kczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmdhaWwtZ25vbWU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdC1zcGk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdsYWRlMjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nYWlsLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVwcmludDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lcHJpbnR1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21ldWk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGluYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+dW5pdHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBzZ21sPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNnbWwtY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZW1hY3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1EaWdlc3QtU0hBMTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wYW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF0azwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZGRza2steGVtYWNzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhlbWFjczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1hbi1wYWdlcy1jczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5tb3ppbGxhLW5zcy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT51bml4T0RCQzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YnppcDI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDItbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5hbWF6dS1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5uYW1henU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW9kX2F1dGhfbXlzcWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm15c3FsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bTJjcnlwdG88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+b3BlbmxkYXA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y3lydXMtc2FzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN5cnVzLXNhc2wtbWQ1PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cnBtLXB5dGhvbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ycG08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDItbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmVsZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nY2MtamF2YTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2o8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2otZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBocDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJ6aXAyLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y3VybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRiNDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmV4cGF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGJtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidG9vbC1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBzcGVsbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LWNvbmZpZy1zb3VuZGNhcmQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHlndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zb3g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yaHBsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRmdHA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJhY2wtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGliYWNsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aW1hcC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nZGstcGl4YnVmLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdkay1waXhidWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmLWdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGlicy1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGVhcnR3b3JrLWxvY29sb3I8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmlsZXN5c3RlbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zZXR1cDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm5hbWF6dS1jZ2k8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bmFtYXp1PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmpveXN0aWNrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2JkY29uZmlnPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtiZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5udXQtY2dpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmh0dHBkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS11c2VyLWRvY3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2Nyb2xsa2VlcGVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZpbS1jb21tb248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhtbC1jb21tb248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncmVwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGVzczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2x1dDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTFU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJnbm9tZWNhbnZhcy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhcnRfbGdwbC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZzZnRwZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT54aW5ldGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sb2dyb3RhdGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJjYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdkYjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhmZXJzdGF0czwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS1weXRob24yLWdjb25mPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PkdDb25mMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcmJpdC1weXRob24tZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a29uMjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zYW1iYTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zYW1iYS1jb21tb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sb2dyb3RhdGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbml0c2NyaXB0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBzbWlzYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50Y3NoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHMtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLUNHSTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhjZHJvYXN0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNkcmVjb3JkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWtpc29mczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNkZGEyd2F2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGlmZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVuZ2lmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1pbmdldHR5PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGFwYWNrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmxhczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnhzY3JlZW5zYXZlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5mb3J0dW5lLW1vZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1sb2dvczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGUyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LU1lc2EtbGliR0xVPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBhbmdvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wZXJsLVBETDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsLUZpbHRlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtSW5saW5lPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ3RvcC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJndG9wPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bnZpLW0xN24tY2FubmE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PkNhbm5hLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jdXBzLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHMtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGViaW5kaW5ncy1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZGViaW5kaW5nczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPndhdGFuYWJlLXZmPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNocm9taXVtPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTFU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlNETDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmJvbm9iby1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0Mi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDItZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z21wPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3JpcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT52b3JiaXMtdG9vbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2RwYXJhbm9pYS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnaHR0cDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5qY29kZS5wbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ydWJ5LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnJ1YnktbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmVzbXRwLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmVzbXRwPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3dpZzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm9yYml0LXB5dGhvbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliSURMPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5weXRob248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliY2FwcGxldDA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGliZ2xhZGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT54Y2luPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRhYmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRiNDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZS1pMThuLVJvbWFuaWFuPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZTItY29tcGF0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnF0MjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YnppcDItbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHMtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZhbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wY3JlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieHNsdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT55dGFsazwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1JY2VsYW5kaWM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWluaWNvbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5sb2NrZGV2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtTWVzYS1saWJHTFU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1CaXQtVmVjdG9yPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1EYXRlLUNhbGM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cnVzZXJzLXNlcnZlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3J0bWFwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHJvY3BzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWFuLXBhZ2VzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtREJfRmlsZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5kYjQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wb3N0Z3Jlc3FsLXRjbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT50Y2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lMmZzcHJvZ3M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a3JiNS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGdyZXNxbC1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVhZGxpbmU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0ZXJtY2FwPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdydWI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdub21lLWxpYnMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0aystZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdC1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlYmFzZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1jb25maWctdXNlcnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlidXNlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMi1saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtpY29uZWRpdDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zd2l0Y2hkZXNrLWdub21lPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5wc3BlbGwtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHNwZWxsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1saWJ4bWwtcGVybDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1YTUwtUGFyc2VyPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aW50bHRvb2w8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGF0Y2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJwbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dGV4dHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmVsZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iemlwMi1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5hdXRvbWFrZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zaGFkb3ctdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ3dnN0cmVhbXMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlid3ZzdHJlYW1zPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1UaW1lRGF0ZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYWRkb25zLWtvbnF1ZXJvcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZGViYXNlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXJ0czwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5kZGQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5tb3RpZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZWxmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPngzMjcwLXRleHQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eDMyNzA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5yZWFkbGluZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ndGtodG1sLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0a2h0bWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtcHJpbnQtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ1bmljb2RlLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1Zi1kZXZlbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2FsLWRldmVsPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZHZncmFiPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicmF3MTM5NDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkNhbm5hLWxpYnM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y3Vwcy1kcml2ZXJzLXBubTJwcGE8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cG5tMnBwYTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdob3N0c2NyaXB0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YW5hY3JvbjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dml4aWUtY3JvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c3lzbGludXg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbm9tZS1nYW1lczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zY3JvbGxrZWVwZXI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWV1aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLXZmczI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndWlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtkZXNkay1rYmFiZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlLWkxOG4tRGFuaXNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1haWxtYW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9zdGZpeDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnZpeGllLWNyb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5odHRwZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+TUFLRURFVjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ubWg8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnZpbS1lbmhhbmNlZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT52aW0tY29tbW9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3BtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1UdXJraXNoPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnVzZXItZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlidXNlcjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYmVzbXRwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkd1cHBpPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1ZGlvZmlsZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJvbm9ibzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZyZWV0eXBlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2FsMTk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2xhZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1Zi1nbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lcHJpbnQxNTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b2FmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdsdXQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2x1dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtTWVzYS1saWJHTDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbGFkZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YWNsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmF0dHI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdpbXAtcHJpbnQtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2ltcC1wcmludDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pcHRyYWY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2hleGVkaXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YWJpd29yZDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmcxMDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0b29sLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wc3BlbGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmxpYnRvb2w8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1dG9jb25mPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXV0b21ha2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tNDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0b29sLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta3RlbXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmVzdGl2YWwtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmVzdGl2YWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJnbm9tZXByaW50MTU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZnJlZXR5cGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW1saWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGstcGl4YnVmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJhdmMxMzk0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnJhdzEzOTQ8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nYWlsLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdhaWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXMtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ0aWZmPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jb21wYXQtZ2NjLW9iamM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y29tcGF0LWdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYm9iamM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlZGhhdC1hcnR3b3JrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1sb2dvczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eGRlbHRhLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnhkZWx0YTwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmF1bWl4PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluaXRzY3JpcHRzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ncG08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Zy13cmFwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmd1aWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJ1bmdpZjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPm1vZF9weXRob248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aHR0cGQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtub2RlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZW5ldHdvcmstbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtvb2thPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmtzY2FuPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2FuZS1iYWNrZW5kczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnVzYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53M208L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5kZXhodG1sPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5JbWFnZU1hZ2ljazwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdwbTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmltbGliPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlianBlZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm5jdXJzZXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ0aWZmPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidW5naWY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aHR0cGQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bWFpbGNhcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmdhd2s8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmluZHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2gtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50ZXh0dXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+b3BlbnNzbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGI0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXhwYXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nZGJtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtSVNPODg1OS0xNS0xMDBkcGktZm9udHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmNzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bmV0YXRhbGs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aW5pdHNjcmlwdHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT50Y3Bfd3JhcHBlcnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y3JhY2tsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZW1hY3M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmRldjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ1bmdpZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhhdzNkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtbGlid3d3LXBlcmw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmwtVVJJPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybC1IVE1MLVBhcnNlcjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdyb2ZmPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pm1rdGVtcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT53aW5lLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PndpbmU8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5nbGliPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW96aWxsYS1qcy1kZWJ1Z2dlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5tb3ppbGxhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmhvdHBsdWctZ3RrPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdub21lLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmVzb3VuZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0ays8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcGVuc3NoLXNlcnZlcjwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2hhZG93LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFtPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYjUtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGUtaTE4bi1TbG92YWs8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cmVkaGF0LXN3aXRjaC1wcmludGVyLWdub21lPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnJlZGhhdC1zd2l0Y2gtcHJpbnRlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdsYWRlMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMi1saWJnbGFkZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmRtYWxsb2M8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+aW5mbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnVuYXJqPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2FpbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS1kZXNrdG9wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXNwZWxsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aHRtbHZpZXc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXVkaW9maWxlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZXNvdW5kPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2RrLXBpeGJ1ZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5saWJtcnByb2plY3Q8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z25vbWUtcHl0aG9uMi1ib25vYm88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+b3JiaXQtcHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ndGsyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lY2FudmFzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpbmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW5nbzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YnJpZGdlLXV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+VkZsaWIyLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PlZGbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT40U3VpdGU8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cHl0aG9uPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+UHlYTUw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y2RyZGFvPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmxpbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5lbWFjczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFwZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+aW5pdHNjcmlwdHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bWluZ2V0dHk8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nYXdrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c2VkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWt0ZW1wPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZTJmc3Byb2dzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cHJvY3BzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+c3lza2xvZ2Q8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zZXR1cDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBzbWlzYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PndoaWNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vZHV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+dXRpbC1saW51eDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vdW50PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlN5c1Zpbml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+aXByb3V0ZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmlwdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uZXQtdG9vbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iZGZsdXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmVkaGF0LXJlbGVhc2U8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaGFkb3ctdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zaC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bGlieG1sMi1weXRob248L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+eHBkZi1jaGluZXNlLXNpbXBsaWZpZWQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+eHBkZjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYteGZzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoYWRvdy11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2NvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtZm9udC11dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ncGhvdG8yPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmhvdHBsdWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdyZXA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5maWxldXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sb2NrZGV2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmN1cnNlczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnJlYWRsaW5lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidXNiPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cGVybC1DR0k8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmx2bTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5uZXd0LWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNsYW5nLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bmV3dDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cHJvY2luZm88L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlidGVybWNhcDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtQlNELVJlc291cmNlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtvZmZpY2UtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a3JiYWZzLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmtyYmFmczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtvbmNkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNkcmVjb3JkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWtpc29mczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmFydHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5ob3RwbHVnPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnVzYnV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y29tcGF0LWxpYnN0ZGMrKzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5pbm48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3JlcDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnRleHR1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNlZDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNoLXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2xlYW5mZWVkPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZXdzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZGI0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZWxmPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+ZmlsZXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrY29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZmlsZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJ3YWxsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2FtYmEtY29tbW9uPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJhY2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5vcGVuc3NsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jdXBzLWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wYW08L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bW96aWxsYS1jaGF0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm1vemlsbGE8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YW5hY29uZGEtaGVscDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vYWY8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wZXJsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pk9SQml0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cG9wdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhtbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5rZGV2ZWxvcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzLWRldmVsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bWFrZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdXRvY29uZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmF1dG9tYWtlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+ZmxleDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0LWRlc2lnbmVyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT51dWNwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmZpbGV1dGlsczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5sb2NrZGV2PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBlcmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmZyZWV0eXBlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnBlcmwtc3VpZHBlcmw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2V0dGV4dDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5pbmZvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NqPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNkcGFyYW5vaWEtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2RwYXJhbm9pYS1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z3RvYXN0ZXI8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2RyZWNvcmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jZHJkYW88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ta2lzb2ZzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Y2RkYTJ3YXY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5zb3g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT51c2VybW9kZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5PUkJpdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmVzb3VuZC1kZXZlbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5lc291bmQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdWRpb2ZpbGUtZGV2ZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z2ltcC1kYXRhLWV4dHJhczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5YRnJlZTg2LWZvbnQtdXRpbHM8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mcmVldHlwZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5yZWRoYXQtY29uZmlnLWtleWJvYXJkPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnB5Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5dGhvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnVzZXJtb2RlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cmhwbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnB5eGY4NmNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zdGF0PC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Z251bWVyaWMtZGV2ZWw8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z251bWVyaWM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5zdGFyPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFjbDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+cndobzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5jaGtjb25maWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5udmktbTE3bi1ub2Nhbm5hPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRlcm1jYXA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT50ZWxuZXQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5uY3Vyc2VzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYmluZGluZ3Mta2RlamF2YTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlYmluZGluZ3MtcXRqYXZhPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NqPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJqcGVnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGNyZTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnBuZzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnF0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmtwcHA8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+dXNlcm1vZGU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5rZGVsaWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ2NjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cXQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJzdGRjKys8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+bWFuLXBhZ2VzLXBsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnJlYWRsaW5lPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5jdXJsLWRldmVsPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cmw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+c2xhbmc8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5lb2c8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmFydF9sZ3BsPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YXRrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Ym9ub2JvLWFjdGl2YXRpb248L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJib25vYm91aTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+R0NvbmYyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RrMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWIyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWU8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZWNhbnZhczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lcHJpbnQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXVpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z25vbWUtdmZzMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicnN2ZzI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ4bWwyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmt1aWNrc2hvdzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnY2M8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5pbWxpYjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJwbmc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnRpZmY8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJ1bmdpZjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnpsaWI8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT55ZWxwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PnNjcm9sbGtlZXBlcjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pmd0azI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbm9tZS12ZnMyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z3RraHRtbDI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saWJnbm9tZXVpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYm9ub2JvPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliYXJ0X2xncGw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5hdGs8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5ib25vYm8tYWN0aXZhdGlvbjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmJvbm9ib3VpPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5HQ29uZjI8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdub21lPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGliZ25vbWVjYW52YXM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWxpYnM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5saW5jPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+T1JCaXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+cGFuZ288L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wb3B0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlieG1sMjwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnhzbHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT56bGliPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+T21uaTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmN1cHMtbGliczwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnRldGV4LWFmbTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT50ZXRleDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmJhc2g8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNscm4tcHVsbDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5zbHJuPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5Pm9wZW5zc2w8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnNsYW5nPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+a2RlYmluZGluZ3Mta2RlYzwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmtkZWJpbmRpbmdzLXF0YzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+a2RlbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PlhGcmVlODYtbGliczwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmpwZWc8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5wY3JlPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlicG5nPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+bGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+emxpYjwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnVzYnV0aWxzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmh3ZGF0YTwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+ZTJmc3Byb2dzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+YXVkaW9maWxlPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmdsaWJjPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPlhGcmVlODYtSVNPODg1OS0yLTc1ZHBpLWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmNoa2ZvbnRwYXRoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1mb250LXV0aWxzPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnR0Zm9udHMtemhfQ048L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+Y2hrZm9udHBhdGg8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5YRnJlZTg2LWZvbnQtdXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5mb250Y29uZmlnPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmFzaDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmNkbGFiZWxnZW48L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cGVybDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPmdob3N0c2NyaXB0LWZvbnRzPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5Pmdob3N0c2NyaXB0PC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Zm9udGNvbmZpZzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPkZyZWVXbm4tbGliczwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5xdDItWHQ8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgICAgPGRlcGVuZGVuY3k+cXQyPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5jb21wYXQtbGlic3RkYysrPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+WEZyZWU4Ni1saWJzPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKyAgPHBhY2thZ2U+CisgICAgPG5hbWU+Y3BwPC9uYW1lPgorICAgIDxkZXBlbmRlbmN5bGlzdD4KKyAgICAgIDxkZXBlbmRlbmN5PmluZm88L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+Z2xpYmM8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmN5bGlzdD4KKyAgPC9wYWNrYWdlPgorICA8cGFja2FnZT4KKyAgICA8bmFtZT5vcHJvZmlsZTwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jeWxpc3Q+CisgICAgICA8ZGVwZW5kZW5jeT5rZXJuZWw8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5iYXNoPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+YmludXRpbHM8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5nbGliYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYmdjYzwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PnBvcHQ8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT5xdDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PmxpYnN0ZGMrKzwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY3lsaXN0PgorICA8L3BhY2thZ2U+CisgIDxwYWNrYWdlPgorICAgIDxuYW1lPnNhc2g8L25hbWU+CisgICAgPGRlcGVuZGVuY3lsaXN0PgorICAgIDwvZGVwZW5kZW5jeWxpc3Q+CisgIDwvcGFja2FnZT4KKzwvY29tcHM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9kZW1vLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2RlbW8ucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhN2YxN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9kZW1vLnJuZwpAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJpc28tODg1OS0xIj8+Cis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorCis8aW5jbHVkZSBocmVmPSJkZW1vMi5ybmciPgorPGRlZmluZSBuYW1lPSJURUkucHJvc2UiPjxyZWYgbmFtZT0iSU5DTFVERSIvPjwvZGVmaW5lPgorPC9pbmNsdWRlPgorPC9ncmFtbWFyPgorCisKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZGVtby54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9kZW1vLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjBjYWMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZGVtby54bWwKQEAgLTAsMCArMSBAQAorPFRFSS4yPmhlbGxvPC9URUkuMj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9kZW1vMi5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9kZW1vMi5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUyOGY3MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2RlbW8yLnJuZwpAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiB4bWxuczp0PSJodHRwOi8vd3d3LnRoYWlvcGVuc291cmNlLmNvbS9ucy9hbm5vdGF0aW9ucyIgeG1sbnM6YT0iaHR0cDovL3JlbGF4bmcub3JnL25zL2NvbXBhdGliaWxpdHkvYW5ub3RhdGlvbnMvMS4wIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisKKyAgIDxzdGFydD4KKyAgICAgICAgIDxyZWYgbmFtZT0iVEVJLjIiLz4KKyAgIDwvc3RhcnQ+CisgICA8ZGVmaW5lIG5hbWU9IklHTk9SRSI+CisgICAgICA8bm90QWxsb3dlZC8+CisgICA8L2RlZmluZT4KKyAgIDxkZWZpbmUgbmFtZT0iSU5DTFVERSI+CisgICAgICA8ZW1wdHkvPgorICAgPC9kZWZpbmU+CisKKworICA8aW5jbHVkZSBocmVmPSJkZW1vMy5ybmciLz4KKworICAgPGRlZmluZSBuYW1lPSJURUkuMiI+CisgICAgICA8ZWxlbWVudCBuYW1lPSJURUkuMiI+CisgICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICA8L2RlZmluZT4KKworPC9ncmFtbWFyPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2RlbW8zLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2RlbW8zLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2UxZWI2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZGVtbzMucm5nCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgeG1sbnM6dD0iaHR0cDovL3d3dy50aGFpb3BlbnNvdXJjZS5jb20vbnMvYW5ub3RhdGlvbnMiIHhtbG5zOmE9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9jb21wYXRpYmlsaXR5L2Fubm90YXRpb25zLzEuMCIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorCisgICA8ZGVmaW5lIG5hbWU9IlRFSS5wcm9zZSIgY29tYmluZT0iaW50ZXJsZWF2ZSI+CisgICAgICA8cmVmIG5hbWU9IklHTk9SRSIvPgorICAgPC9kZWZpbmU+CisKKzwvZ3JhbW1hcj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9kb2Nib29rLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2RvY2Jvb2sucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1YTZhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9kb2Nib29rLnJuZwpAQCAtMCwwICsxLDkxNDEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQorPCEtLSAkSWQ6IGRvY2Jvb2sucm5nLHYgMS41IDIwMDEvMTAvMjMgMDU6NTY6NDcgampjIEV4cCAkIC0tPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCisgICAgICAgICBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+DQorICAgPHN0YXJ0Pg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZXQiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJvb2siLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImNoYXB0ZXIiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFwcGVuZGl4Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhcnRpY2xlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJ0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZlcmVuY2UiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWN0aW9uIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWN0MSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDIiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InNlY3QzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWN0NCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmEiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L3N0YXJ0Pg0KKyAgIDxkZWZpbmUgbmFtZT0ibmR4dGVybS5jbGFzcyI+DQorICAgICAgPHJlZiBuYW1lPSJpbmRleHRlcm0iLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imxpc3QuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJjYWxsb3V0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpdGVtaXplZGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im9yZGVyZWRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWdtZW50ZWRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzaW1wbGVsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ2YXJpYWJsZWxpc3QiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFkbW9uLmNsYXNzIj4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2F1dGlvbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW1wb3J0YW50Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJub3RlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aXAiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Indhcm5pbmciLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpbmVzcGVjaWZpYy5jbGFzcyI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpdGVyYWxsYXlvdXQiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InByb2dyYW1saXN0aW5nIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9ncmFtbGlzdGluZ2NvIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzY3JlZW4iLz4NCisgICAgICAgICA8cmVmIG5hbWU9InNjcmVlbmNvIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzY3JlZW5zaG90Ii8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZXRob2Quc3lub3AuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb25zdHJ1Y3RvcnN5bm9wc2lzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJkZXN0cnVjdG9yc3lub3BzaXMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im1ldGhvZHN5bm9wc2lzIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzeW5vcC5jbGFzcyI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wc2lzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjbWRzeW5vcHNpcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZnVuY3N5bm9wc2lzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjbGFzc3N5bm9wc2lzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmaWVsZHN5bm9wc2lzIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYXJhLmNsYXNzIj4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFscGFyYSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGFyYSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2ltcGFyYSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5mb3JtYWwuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJhZGRyZXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJibG9ja3F1b3RlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJncmFwaGljIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJncmFwaGljY28iLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJtZWRpYW9iamVjdGNvIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbGVxdWF0aW9uIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbGV4YW1wbGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsZmlndXJlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbHRhYmxlIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmb3JtYWwuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJlcXVhdGlvbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZXhhbXBsZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZmlndXJlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0YWJsZSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29tcG91bmQuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2dzZXQiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InByb2NlZHVyZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2lkZWJhciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icWFuZGFzZXQiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdlbm9iai5jbGFzcyI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9ImFuY2hvciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYnJpZGdlaGVhZCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVtYXJrIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJoaWdobGlnaHRzIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJkZXNjb2JqLmNsYXNzIj4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWJzdHJhY3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImF1dGhvcmJsdXJiIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJlcGlncmFwaCIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ieHJlZi5jaGFyLmNsYXNzIj4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9vdG5vdGVyZWYiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InhyZWYiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdlbi5jaGFyLmNsYXNzIj4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWJicmV2Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhY3JvbnltIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjaXRhdGlvbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2l0ZXJlZmVudHJ5Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjaXRldGl0bGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImVtcGhhc2lzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmaXJzdHRlcm0iLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImZvcmVpZ25waHJhc2UiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Imdsb3NzdGVybSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9vdG5vdGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBocmFzZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icXVvdGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InRyYWRlbWFyayIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0id29yZGFzd29yZCIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGluay5jaGFyLmNsYXNzIj4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGluayIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib2xpbmsiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InVsaW5rIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0ZWNoLmNoYXIuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJhY3Rpb24iLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFwcGxpY2F0aW9uIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjbGFzc25hbWUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im1ldGhvZG5hbWUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImludGVyZmFjZW5hbWUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImV4Y2VwdGlvbm5hbWUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im9vY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im9vaW50ZXJmYWNlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJvb2V4Y2VwdGlvbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29tbWFuZCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29tcHV0ZXJvdXRwdXQiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImRhdGFiYXNlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJlbWFpbCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZW52YXIiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImVycm9yY29kZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZXJyb3JuYW1lIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJlcnJvcnR5cGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImZpbGVuYW1lIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmdW5jdGlvbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ3VpYnV0dG9uIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJndWlpY29uIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJndWlsYWJlbCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ3VpbWVudSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ3VpbWVudWl0ZW0iLz4NCisgICAgICAgICA8cmVmIG5hbWU9Imd1aXN1Ym1lbnUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImhhcmR3YXJlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbnRlcmZhY2UiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImtleWNhcCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ia2V5Y29kZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ia2V5Y29tYm8iLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImtleXN5bSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGl0ZXJhbCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29uc3RhbnQiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im1hcmt1cCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibWVkaWFsYWJlbCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibWVudWNob2ljZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibW91c2VidXR0b24iLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im9wdGlvbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib3B0aW9uYWwiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmFtZXRlciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJvbXB0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9wZXJ0eSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVwbGFjZWFibGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InJldHVybnZhbHVlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZ21sdGFnIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzdHJ1Y3RmaWVsZCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3RydWN0bmFtZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3ltYm9sIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzeXN0ZW1pdGVtIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0b2tlbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idHlwZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idXNlcmlucHV0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ2YXJuYW1lIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJiYXNlLmNoYXIuY2xhc3MiPg0KKyAgICAgIDxyZWYgbmFtZT0iYW5jaG9yIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJkb2NpbmZvLmNoYXIuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJhdXRob3IiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImF1dGhvcmluaXRpYWxzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb3JwYXV0aG9yIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJtb2Rlc3BlYyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXJjcmVkaXQiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InByb2R1Y3RuYW1lIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9kdWN0bnVtYmVyIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZXZoaXN0b3J5Ii8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvdGhlci5jaGFyLmNsYXNzIj4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVtYXJrIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzdWJzY3JpcHQiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InN1cGVyc2NyaXB0Ii8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmxpbmVvYmouY2hhci5jbGFzcyI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZWdyYXBoaWMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmVlcXVhdGlvbiIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29tcG9uZW50Lm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3QuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb21wb3VuZC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2Vub2JqLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJkZXNjb2JqLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJiZWdpbnBhZ2UiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpZGViYXIubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGlzdC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWRtb24uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3lub3AuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWwuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InByb2NlZHVyZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2Vub2JqLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJiZWdpbnBhZ2UiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InFhbmRhc2V0Lm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3QuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9jZWR1cmUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Imdlbm9iai5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jbGFzcyIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2ZGVzY3JpcHRpb24ubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGlzdC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWRtb24uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3lub3AuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWwuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InByb2NlZHVyZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2Vub2JqLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmb290bm90ZS5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaXN0LmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbC5jbGFzcyIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZXhhbXBsZS5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaXN0LmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmVnaW5wYWdlIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJoaWdobGlnaHRzLm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3QuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYXJhLm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3QuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWwuY2xhc3MiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFkbW9uLm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3QuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3lub3AuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWwuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InByb2NlZHVyZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2lkZWJhciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYW5jaG9yIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJicmlkZ2VoZWFkIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZW1hcmsiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJlZ2lucGFnZSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZmlndXJlLm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3lub3AuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJiZWdpbnBhZ2UiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRhYmVudHJ5Lm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3QuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImdyYXBoaWMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0Ii8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc2RlZi5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaXN0LmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZW1hcmsiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJlZ2lucGFnZSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGVnYWxub3RpY2UubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGlzdC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWRtb24uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmxvY2txdW90ZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmVnaW5wYWdlIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0ZXh0b2JqZWN0Lm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3QuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJsb2NrcXVvdGUiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1lZGlhb2JqZWN0Lm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9InZpZGVvb2JqZWN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhdWRpb29iamVjdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW1hZ2VvYmplY3QiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcmEuY2hhci5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJ4cmVmLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Imdlbi5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5rLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InRlY2guY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmFzZS5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im90aGVyLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW9iai5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzeW5vcC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmVnaW5wYWdlIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0aXRsZS5jaGFyLm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9InhyZWYuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2VuLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmsuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGVjaC5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJiYXNlLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lb2JqLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im5keHRlcm0uY2hhci5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJ4cmVmLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Imdlbi5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5rLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InRlY2guY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmFzZS5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im90aGVyLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZWdyYXBoaWMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ii8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjcHRyLmNoYXIubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGluay5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0ZWNoLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJhc2UuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lZ3JhcGhpYyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lbWVkaWFvYmplY3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJlZ2lucGFnZSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVwbGFjZWFibGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZWdyYXBoaWMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJiZWdpbnBhZ2UiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9IndvcmQuY2hhci5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJhY3JvbnltIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJlbXBoYXNpcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idHJhZGVtYXJrIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5rLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJhc2UuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lZ3JhcGhpYyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lbWVkaWFvYmplY3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJlZ2lucGFnZSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZG9jaW5mby5jaGFyLm1peCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmsuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZW1waGFzaXMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InRyYWRlbWFyayIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVwbGFjZWFibGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im90aGVyLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZWdyYXBoaWMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCI+DQorICAgICAgPHJlZiBuYW1lPSJ0aXRsZSIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9InRpdGxlYWJicmV2Ii8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFyY2guYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhcmNoIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29uZGl0aW9uLmF0dHJpYiI+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY29uZGl0aW9uIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29uZm9ybWFuY2UuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjb25mb3JtYW5jZSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcy5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im9zIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2aXNpb24uYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyZXZpc2lvbiI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3VyaXR5LmF0dHJpYiI+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ic2VjdXJpdHkiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ1c2VybGV2ZWwuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ1c2VybGV2ZWwiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2ZW5kb3IuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ2ZW5kb3IiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlZmZlY3Rpdml0eS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0iYXJjaC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbmRpdGlvbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbmZvcm1hbmNlLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib3MuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZXZpc2lvbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNlY3VyaXR5LmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idXNlcmxldmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idmVuZG9yLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaWQuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJpZCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iSUQiLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaWRyZXEuYXR0cmliIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9ImlkIj4NCisgICAgICAgICA8ZGF0YSB0eXBlPSJJRCIvPg0KKyAgICAgIDwvYXR0cmlidXRlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGFuZy5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImxhbmciPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZW1hcC5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJlbWFwIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icm9sZS5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJvbGUiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ4cmVmbGFiZWwuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ4cmVmbGFiZWwiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXZpc2lvbmZsYWcuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyZXZpc2lvbmZsYWciPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNoYW5nZWQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5hZGRlZDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmRlbGV0ZWQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5vZmY8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb21tb24uYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9ImlkLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFuZy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlbWFwLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ieHJlZmxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmV2aXNpb25mbGFnLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZWZmZWN0aXZpdHkuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpZHJlcS5jb21tb24uYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9ImlkcmVxLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFuZy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlbWFwLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ieHJlZmxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmV2aXNpb25mbGFnLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZWZmZWN0aXZpdHkuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJncmFwaGljcy5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImZpbGVyZWYiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZm9ybWF0Ij4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5CTVA8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5DR00tQ0hBUjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPkNHTS1CSU5BUlk8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5DR00tQ0xFQVI8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5ESVRST0ZGPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+RFZJPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+RVBTPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+RVFOPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+RkFYPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+R0lGPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+R0lGODdhPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+R0lGODlhPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+SlBHPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+SlBFRzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPklHRVM8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5QQ1g8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5QSUM8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5QTkc8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5QUzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlNHTUw8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5UQkw8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5URVg8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5USUZGPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+V01GPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+V1BHPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bGluZXNwZWNpZmljPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNyY2NyZWRpdCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ3aWR0aCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkZXB0aCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhbGlnbiI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bGVmdDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnJpZ2h0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y2VudGVyPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNjYWxlIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNjYWxlZml0Ij4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleWFjdGlvbi5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImFjdGlvbiI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y2xpY2s8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5kb3VibGUtY2xpY2s8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5wcmVzczwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlcTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNpbXVsPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+b3RoZXI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ib3RoZXJhY3Rpb24iPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJsYWJlbC5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImxhYmVsIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGluZXNwZWNpZmljLmF0dHJpYiI+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZm9ybWF0Ij4NCisgICAgICAgICAgICA8dmFsdWU+bGluZXNwZWNpZmljPC92YWx1ZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImxpbmVudW1iZXJpbmciPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm51bWJlcmVkPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+dW5udW1iZXJlZDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpbmtlbmQuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJsaW5rZW5kIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJJRFJFRiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJsaW5rZW5kcmVxLmF0dHJpYiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJsaW5rZW5kIj4NCisgICAgICAgICA8ZGF0YSB0eXBlPSJJRFJFRiIvPg0KKyAgICAgIDwvYXR0cmlidXRlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGlua2VuZHMuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJsaW5rZW5kcyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iSURSRUZTIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1hcmsuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtYXJrIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibW9yZWluZm8uYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtb3JlaW5mbyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+cmVmZW50cnk8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5ub25lPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFnZW51bS5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InBhZ2VudW0iPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdGF0dXMuYXR0cmliIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJzdGF0dXMiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ3aWR0aC5hdHRyaWIiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9IndpZHRoIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idGl0bGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRpdGxlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0aXRsZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGl0bGUuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0aXRsZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InBhZ2VudW0uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0aXRsZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idGl0bGVhYmJyZXYucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRpdGxlYWJicmV2Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0aXRsZWFiYnJldiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZWFiYnJldi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGl0bGUuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0aXRsZWFiYnJldi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InRpdGxlYWJicmV2LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdWJ0aXRsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3VidGl0bGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InN1YnRpdGxlIj4NCisgICAgICAgICA8cmVmIG5hbWU9InN1YnRpdGxlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YnRpdGxlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3VidGl0bGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBlcnNvbi5pZGVudC5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJob25vcmlmaWMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImZpcnN0bmFtZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3VybmFtZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGluZWFnZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXJuYW1lIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhZmZpbGlhdGlvbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXV0aG9yYmx1cmIiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbnRyaWIiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb2NvbXBvbmVudC5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJhYmJyZXYiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFic3RyYWN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhZGRyZXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhcnRwYWdlbnVtcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXV0aG9yIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhdXRob3Jncm91cCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXV0aG9yaW5pdGlhbHMiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb21pc2MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb3NldCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29sbGFiIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb25mZ3JvdXAiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbnRyYWN0bnVtIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb250cmFjdHNwb25zb3IiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvcHlyaWdodCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29ycGF1dGhvciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29ycG5hbWUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImRhdGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImVkaXRpb24iLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImVkaXRvciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW52cGFydG51bWJlciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXNibiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXNzbiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXNzdWVudW0iLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im9yZ25hbWUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im90aGVyY3JlZGl0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJpbnRoaXN0b3J5Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9kdWN0bmFtZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJvZHVjdG51bWJlciIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHViZGF0ZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHVibGlzaGVyIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwdWJsaXNoZXJuYW1lIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwdWJzbnVtYmVyIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWxlYXNlaW5mbyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmV2aGlzdG9yeSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VyaWVzdm9sbnVtcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3VidGl0bGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZWFiYnJldiIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idm9sdW1lbnVtIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJjaXRldGl0bGUiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBlcnNvbi5pZGVudC5taXgiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb2VudHJ5LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJiaWJsaW9lbnRyeSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmlibGlvZW50cnkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmlibGlvZW50cnkuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFydGljbGVpbmZvIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9jb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvZW50cnkuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJiaWJsaW9lbnRyeS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvbWl4ZWQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb21peGVkIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiaWJsaW9taXhlZCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9taXhlZC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9jb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9tc2V0Ii8+DQorICAgICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvbWl4ZWQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJiaWJsaW9taXhlZC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXJ0aWNsZWluZm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluZm9Db250ZW50TW9kZWwiPg0KKyAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImdyYXBoaWMiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJsZWdhbG5vdGljZSIvPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibW9kZXNwZWMiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InN1YmplY3RzZXQiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImtleXdvcmRzZXQiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Iml0ZXJtc2V0Ii8+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9jb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9vbmVPck1vcmU+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcnRpY2xlaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXJ0aWNsZWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXJ0aWNsZWluZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb0NvbnRlbnRNb2RlbCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFydGljbGVpbmZvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYXJ0aWNsZWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb3NldC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvc2V0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiaWJsaW9zZXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmlibGlvc2V0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYmlibGlvY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb3NldC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImJpYmxpb3NldC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJlbGF0aW9uIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvbXNldC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvbXNldCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmlibGlvbXNldCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9tc2V0LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb2NvbXBvbmVudC5taXgiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb21zZXQiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJiaWJsaW9tc2V0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iYmlibGlvbXNldC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJlbGF0aW9uIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvbWlzYy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvbWlzYyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmlibGlvbWlzYyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9taXNjLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvbWlzYy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImJpYmxpb21pc2Mucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YmplY3RzZXQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YmplY3RzZXQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InN1YmplY3RzZXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3ViamVjdHNldC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InN1YmplY3QiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdWJqZWN0c2V0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3ViamVjdHNldC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNjaGVtZSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdWJqZWN0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdWJqZWN0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzdWJqZWN0Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InN1YmplY3QuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzdWJqZWN0dGVybSIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YmplY3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzdWJqZWN0LnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0id2VpZ2h0Ij4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3ViamVjdHRlcm0ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YmplY3R0ZXJtIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzdWJqZWN0dGVybSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzdWJqZWN0dGVybS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHRleHQvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YmplY3R0ZXJtLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3ViamVjdHRlcm0ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleXdvcmRzZXQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleXdvcmRzZXQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImtleXdvcmRzZXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ia2V5d29yZHNldC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImtleXdvcmQiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJrZXl3b3Jkc2V0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ia2V5d29yZHNldC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ia2V5d29yZC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ia2V5d29yZCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ia2V5d29yZCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJrZXl3b3JkLmF0dGxpc3QiLz4NCisgICAgICAgICA8dGV4dC8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ia2V5d29yZC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImtleXdvcmQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Iml0ZXJtc2V0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpdGVybXNldCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaXRlcm1zZXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXRlcm1zZXQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJpbmRleHRlcm0iLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpdGVybXNldC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Iml0ZXJtc2V0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dzZXQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1zZ3NldCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibXNnc2V0Ij4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ3NldC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsb2JqZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Im1zZ2VudHJ5Ii8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNpbXBsZW1zZ2VudHJ5Ii8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnc2V0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibXNnc2V0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dlbnRyeS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnZW50cnkiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1zZ2VudHJ5Ij4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ2VudHJ5LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibXNnIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibXNnaW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtc2dleHBsYW4iLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnZW50cnkuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtc2dlbnRyeS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2ltcGxlbXNnZW50cnkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpbXBsZW1zZ2VudHJ5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzaW1wbGVtc2dlbnRyeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzaW1wbGVtc2dlbnRyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2d0ZXh0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2dleHBsYW4iLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaW1wbGVtc2dlbnRyeS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNpbXBsZW1zZ2VudHJ5LnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYXVkaWVuY2UiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibGV2ZWwiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ib3JpZ2luIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2ciPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1zZyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2cuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ21haW4iLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibXNnc3ViIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJtc2dyZWwiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibXNnLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dtYWluLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dtYWluIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJtc2dtYWluIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ21haW4uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ3RleHQiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dtYWluLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibXNnbWFpbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnc3ViLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dzdWIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1zZ3N1YiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2dzdWIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ3RleHQiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dzdWIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtc2dzdWIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1zZ3JlbC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNncmVsIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJtc2dyZWwiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibXNncmVsLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2d0ZXh0Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNncmVsLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibXNncmVsLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJtc2dpbmZvIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ2luZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJtc2dsZXZlbCIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibXNnb3JpZyIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibXNnYXVkIi8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1zZ2luZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtc2dpbmZvLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dsZXZlbC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnbGV2ZWwiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1zZ2xldmVsIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ2xldmVsLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dsZXZlbC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1zZ2xldmVsLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dvcmlnLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dvcmlnIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJtc2dvcmlnIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ29yaWcuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1zZ29yaWcuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtc2dvcmlnLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dhdWQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1zZ2F1ZCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibXNnYXVkIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1zZ2F1ZC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1zZ2F1ZC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1zZ2F1ZC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnZXhwbGFuLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtc2dleHBsYW4iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1zZ2V4cGxhbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2dleHBsYW4uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNnZXhwbGFuLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibXNnZXhwbGFuLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJxYW5kc2V0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJxYW5kYXNldCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icWFuZGFzZXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icWFuZGFzZXQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImZvcm1hbG9iamVjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InFhbmRhc2V0Lm1peCIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJxYW5kYWRpdiIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJxYW5kYWVudHJ5Ii8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icWFuZGFzZXQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJxYW5kc2V0LnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZGVmYXVsdGxhYmVsIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5xYW5kYTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm51bWJlcjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm5vbmU8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJxYW5kYWRpdi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icWFuZGFkaXYiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InFhbmRhZGl2Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InFhbmRhZGl2LmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJxYW5kYXNldC5taXgiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icWFuZGFkaXYiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icWFuZGFlbnRyeSIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InFhbmRhZGl2LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icWFuZGFkaXYucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InFhbmRhZW50cnkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InFhbmRhZW50cnkiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InFhbmRhZW50cnkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icWFuZGFlbnRyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmV2aGlzdG9yeSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJxdWVzdGlvbiIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYW5zd2VyIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InFhbmRhZW50cnkuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJxYW5kYWVudHJ5LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJxdWVzdGlvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icXVlc3Rpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InF1ZXN0aW9uIj4NCisgICAgICAgICA8cmVmIG5hbWU9InF1ZXN0aW9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJsYWJlbCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InFhbmRhc2V0Lm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InF1ZXN0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icXVlc3Rpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFuc3dlci5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYW5zd2VyIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhbnN3ZXIiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYW5zd2VyLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJsYWJlbCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJxYW5kYXNldC5taXgiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJxYW5kYWVudHJ5Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFuc3dlci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImFuc3dlci5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGFiZWwucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxhYmVsIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJsYWJlbCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0id29yZC5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxhYmVsLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByb2NlZHVyZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvY2VkdXJlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJwcm9jZWR1cmUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJvY2VkdXJlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzdGVwIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvY2VkdXJlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icHJvY2VkdXJlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdGVwLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdGVwIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzdGVwIj4NCisgICAgICAgICA8cmVmIG5hbWU9InN0ZXAuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxncm91cD4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InN1YnN0ZXBzIi8+DQorICAgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgICAgPC9ncm91cD4NCisgICAgICAgICAgICA8Z3JvdXA+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzdWJzdGVwcyIvPg0KKyAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICA8L2dyb3VwPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN0ZXAuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzdGVwLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icGVyZm9ybWFuY2UiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm9wdGlvbmFsPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+cmVxdWlyZWQ8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdWJzdGVwcy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3Vic3RlcHMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InN1YnN0ZXBzIj4NCisgICAgICAgICA8cmVmIG5hbWU9InN1YnN0ZXBzLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic3RlcCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YnN0ZXBzLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3Vic3RlcHMucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJwZXJmb3JtYW5jZSI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+b3B0aW9uYWw8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZXF1aXJlZDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpZGViYXJpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaWRlYmFyaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2lkZWJhcmluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2lkZWJhcmluZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDx0ZXh0Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaWRlYmFyaW5mby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNpZGViYXJpbmZvLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaWRlYmFyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaWRlYmFyIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzaWRlYmFyIj4NCisgICAgICAgICA8cmVmIG5hbWU9InNpZGViYXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNpZGViYXJpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNpZGViYXIubWl4Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2lkZWJhci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNpZGViYXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFic3RyYWN0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhYnN0cmFjdCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYWJzdHJhY3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWJzdHJhY3QuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jbGFzcyIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFic3RyYWN0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWJzdHJhY3Qucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1dGhvcmJsdXJiLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhdXRob3JibHVyYiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXV0aG9yYmx1cmIiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXV0aG9yYmx1cmIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jbGFzcyIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1dGhvcmJsdXJiLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYXV0aG9yYmx1cmIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJsb2NrcXVvdGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJsb2NrcXVvdGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJsb2NrcXVvdGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmxvY2txdW90ZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idGl0bGUiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImF0dHJpYnV0aW9uIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJsb2NrcXVvdGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJibG9ja3F1b3RlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhdHRyaWJ1dGlvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXR0cmlidXRpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImF0dHJpYnV0aW9uIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImF0dHJpYnV0aW9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXR0cmlidXRpb24uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhdHRyaWJ1dGlvbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYnJpZGdlaGVhZC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYnJpZGdlaGVhZCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYnJpZGdlaGVhZCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJicmlkZ2VoZWFkLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJyaWRnZWhlYWQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJicmlkZ2VoZWFkLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icmVuZGVyYXMiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm90aGVyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDE8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0MjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3QzPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0NTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlbWFyay5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVtYXJrIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZW1hcmsiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVtYXJrLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVtYXJrLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmVtYXJrLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlcGlncmFwaC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZXBpZ3JhcGgiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVwaWdyYXBoIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImVwaWdyYXBoLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJhdHRyaWJ1dGlvbiIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2xhc3MiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlcGlncmFwaC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImVwaWdyYXBoLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmb290bm90ZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZm9vdG5vdGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZvb3Rub3RlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImZvb3Rub3RlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZm9vdG5vdGUubWl4Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZm9vdG5vdGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImZvb3Rub3RlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJoaWdobGlnaHRzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJoaWdobGlnaHRzIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJoaWdobGlnaHRzIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImhpZ2hsaWdodHMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJoaWdobGlnaHRzLm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImhpZ2hsaWdodHMuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJoaWdobGlnaHRzLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmb3JtYWxwYXJhLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmb3JtYWxwYXJhIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJmb3JtYWxwYXJhIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImZvcm1hbHBhcmEuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGl0bGUiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZm9ybWFscGFyYS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImZvcm1hbHBhcmEucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcmEucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcmEiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InBhcmEiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLm1peCIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcmEuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwYXJhLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaW1wYXJhLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaW1wYXJhIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzaW1wYXJhIj4NCisgICAgICAgICA8cmVmIG5hbWU9InNpbXBhcmEuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaW1wYXJhLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2ltcGFyYS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWRtb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFkbW9uaXRpb25UeXBlIj4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZSIvPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uLm1peCIvPg0KKyAgICAgIDwvb25lT3JNb3JlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW1wb3J0YW50Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpbXBvcnRhbnQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW1wb3J0YW50LmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uaXRpb25UeXBlIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW1wb3J0YW50LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWRtb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Indhcm5pbmciPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Indhcm5pbmciPg0KKyAgICAgICAgIDxyZWYgbmFtZT0id2FybmluZy5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhZG1vbml0aW9uVHlwZSIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Indhcm5pbmcuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhZG1vbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2F1dGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY2F1dGlvbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjYXV0aW9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFkbW9uaXRpb25UeXBlIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2F1dGlvbi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImFkbW9uLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJub3RlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJub3RlIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im5vdGUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWRtb25pdGlvblR5cGUiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJub3RlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWRtb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRpcCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idGlwIj4NCisgICAgICAgICA8cmVmIG5hbWU9InRpcC5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhZG1vbml0aW9uVHlwZSIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRpcC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImFkbW9uLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc2xpc3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzbGlzdCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZ2xvc3NsaXN0Ij4NCisgICAgICAgICA8cmVmIG5hbWU9Imdsb3NzbGlzdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Imdsb3NzZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc2xpc3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJnbG9zc2xpc3Qucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzZW50cnkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzZW50cnkiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Imdsb3NzZW50cnkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NlbnRyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJnbG9zc3Rlcm0iLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJhY3JvbnltIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJhYmJyZXYiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZXZoaXN0b3J5Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NzZWUiLz4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NkZWYiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc2VudHJ5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZ2xvc3NlbnRyeS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNvcnRhcyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzZGVmLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc2RlZiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZ2xvc3NkZWYiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NkZWYuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJnbG9zc2RlZi5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NzZWVhbHNvIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3NkZWYuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJnbG9zc2RlZi5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InN1YmplY3QiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc3NlZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3NzZWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Imdsb3Nzc2VlIj4NCisgICAgICAgICA8cmVmIG5hbWU9Imdsb3Nzc2VlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3NzZWUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJnbG9zc3NlZS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im90aGVydGVybSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iSURSRUYiLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3NzZWVhbHNvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc3NlZWFsc28iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Imdsb3Nzc2VlYWxzbyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJnbG9zc3NlZWFsc28uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc3NlZWFsc28uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJnbG9zc3NlZWFsc28ucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJvdGhlcnRlcm0iPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9IklEUkVGIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Iml0ZW1pemVkbGlzdC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaXRlbWl6ZWRsaXN0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpdGVtaXplZGxpc3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXRlbWl6ZWRsaXN0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Imxpc3RpdGVtIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaXRlbWl6ZWRsaXN0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibWFyay5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Iml0ZW1pemVkbGlzdC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNwYWNpbmciPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm5vcm1hbDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNvbXBhY3Q8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcmRlcmVkbGlzdC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3JkZXJlZGxpc3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im9yZGVyZWRsaXN0Ij4NCisgICAgICAgICA8cmVmIG5hbWU9Im9yZGVyZWRsaXN0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Imxpc3RpdGVtIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3JkZXJlZGxpc3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJvcmRlcmVkbGlzdC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im51bWVyYXRpb24iPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmFyYWJpYzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnVwcGVyYWxwaGE8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5sb3dlcmFscGhhPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+dXBwZXJyb21hbjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmxvd2Vycm9tYW48L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iaW5oZXJpdG51bSI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+aW5oZXJpdDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmlnbm9yZTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjb250aW51YXRpb24iPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNvbnRpbnVlczwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnJlc3RhcnRzPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNwYWNpbmciPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm5vcm1hbDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNvbXBhY3Q8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJsaXN0aXRlbS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGlzdGl0ZW0iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Imxpc3RpdGVtIj4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3RpdGVtLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imxpc3RpdGVtLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGlzdGl0ZW0ucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJvdmVycmlkZSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZ21lbnRlZGxpc3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZ21lbnRlZGxpc3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNlZ21lbnRlZGxpc3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VnbWVudGVkbGlzdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsb2JqZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VndGl0bGUiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNlZ3RpdGxlIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWdsaXN0aXRlbSIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZ21lbnRlZGxpc3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWdtZW50ZWRsaXN0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWd0aXRsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VndGl0bGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNlZ3RpdGxlIj4NCisgICAgICAgICA8cmVmIG5hbWU9InNlZ3RpdGxlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZ3RpdGxlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2VndGl0bGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZ2xpc3RpdGVtLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWdsaXN0aXRlbSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VnbGlzdGl0ZW0iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VnbGlzdGl0ZW0uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VnIi8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWciLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VnbGlzdGl0ZW0uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWdsaXN0aXRlbS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VnLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWciPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNlZyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWcuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWcuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWcucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpbXBsZWxpc3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpbXBsZWxpc3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNpbXBsZWxpc3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2ltcGxlbGlzdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im1lbWJlciIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpbXBsZWxpc3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzaW1wbGVsaXN0LnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY29sdW1ucyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iaW50ZWdlciIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+aW5saW5lPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+dmVydDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmhvcml6PC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVtYmVyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZW1iZXIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1lbWJlciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtZW1iZXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZW1iZXIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtZW1iZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZhcmlhYmxlbGlzdC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idmFyaWFibGVsaXN0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ2YXJpYWJsZWxpc3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idmFyaWFibGVsaXN0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InZhcmxpc3RlbnRyeSIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZhcmlhYmxlbGlzdC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InZhcmlhYmxlbGlzdC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InRlcm1sZW5ndGgiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2YXJsaXN0ZW50cnkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZhcmxpc3RlbnRyeSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idmFybGlzdGVudHJ5Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InZhcmxpc3RlbnRyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRlcm0iLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8cmVmIG5hbWU9Imxpc3RpdGVtIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idmFybGlzdGVudHJ5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idmFybGlzdGVudHJ5LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0ZXJtLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0ZXJtIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0ZXJtIj4NCisgICAgICAgICA8cmVmIG5hbWU9InRlcm0uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0ZXJtLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idGVybS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2FsbG91dGxpc3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNhbGxvdXRsaXN0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjYWxsb3V0bGlzdCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjYWxsb3V0bGlzdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsb2JqZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJjYWxsb3V0Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2FsbG91dGxpc3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjYWxsb3V0bGlzdC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2FsbG91dC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2FsbG91dCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY2FsbG91dCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjYWxsb3V0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNhbGxvdXQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjYWxsb3V0LnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYXJlYXJlZnMiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9IklEUkVGUyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJleGFtcGxlLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJleGFtcGxlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJleGFtcGxlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImV4YW1wbGUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImZvcm1hbG9iamVjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZXhhbXBsZS5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJleGFtcGxlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ3aWR0aC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImV4YW1wbGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluZm9ybWFsZXhhbXBsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5mb3JtYWxleGFtcGxlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpbmZvcm1hbGV4YW1wbGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb3JtYWxleGFtcGxlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZXhhbXBsZS5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmZvcm1hbGV4YW1wbGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJ3aWR0aC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsZXhhbXBsZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZ3JhbWxpc3Rpbmdjby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZ3JhbWxpc3RpbmdjbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icHJvZ3JhbWxpc3RpbmdjbyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9ncmFtbGlzdGluZ2NvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFyZWFzcGVjIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9ncmFtbGlzdGluZyIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY2FsbG91dGxpc3QiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZ3JhbWxpc3Rpbmdjby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InByb2dyYW1saXN0aW5nY28ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFyZWFzcGVjLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcmVhc3BlYyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXJlYXNwZWMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXJlYXNwZWMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFyZWEiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFyZWFzZXQiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcmVhc3BlYy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImFyZWFzcGVjLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idW5pdHMiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNhbHNwYWlyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bGluZWNvbHVtbjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmxpbmVyYW5nZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmxpbmVjb2x1bW5wYWlyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+b3RoZXI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ib3RoZXJ1bml0cyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcmVhLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcmVhIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhcmVhIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImFyZWEuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFyZWEuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmRzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaWRyZXEuY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYXJlYS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InVuaXRzIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5jYWxzcGFpcjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmxpbmVjb2x1bW48L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5saW5lcmFuZ2U8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5saW5lY29sdW1ucGFpcjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm90aGVyPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im90aGVydW5pdHMiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9Ik5NVE9LRU4iLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY29vcmRzIj4NCisgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICA8L2F0dHJpYnV0ZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFyZWFzZXQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFyZWFzZXQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImFyZWFzZXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXJlYXNldC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImFyZWEiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcmVhc2V0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJpZHJlcS5jb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhcmVhc2V0LnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idW5pdHMiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNhbHNwYWlyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bGluZWNvbHVtbjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmxpbmVyYW5nZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmxpbmVjb2x1bW5wYWlyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+b3RoZXI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ib3RoZXJ1bml0cyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjb29yZHMiPg0KKyAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgIDwvYXR0cmlidXRlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZ3JhbWxpc3Rpbmcucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByb2dyYW1saXN0aW5nIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJwcm9ncmFtbGlzdGluZyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9ncmFtbGlzdGluZy5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjbyIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibGluZWFubm90YXRpb24iLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwcm9ncmFtbGlzdGluZy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9IndpZHRoLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGluZXNwZWNpZmljLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icHJvZ3JhbWxpc3Rpbmcucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpdGVyYWxsYXlvdXQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpdGVyYWxsYXlvdXQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImxpdGVyYWxsYXlvdXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGl0ZXJhbGxheW91dC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjbyIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibGluZWFubm90YXRpb24iLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJsaXRlcmFsbGF5b3V0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0id2lkdGguYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJsaXRlcmFsbGF5b3V0LnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm1vbm9zcGFjZWQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5ub3JtYWw8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzY3JlZW5jby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2NyZWVuY28iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNjcmVlbmNvIj4NCisgICAgICAgICA8cmVmIG5hbWU9InNjcmVlbmNvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFyZWFzcGVjIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzY3JlZW4iLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImNhbGxvdXRsaXN0Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNjcmVlbmNvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2NyZWVuY28ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNjcmVlbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2NyZWVuIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzY3JlZW4iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2NyZWVuLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNvIi8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJsaW5lYW5ub3RhdGlvbiIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNjcmVlbi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9IndpZHRoLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGluZXNwZWNpZmljLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2NyZWVuLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzY3JlZW5zaG90LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzY3JlZW5zaG90Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzY3JlZW5zaG90Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InNjcmVlbnNob3QuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNjcmVlbmluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJncmFwaGljIi8+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJncmFwaGljY28iLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtZWRpYW9iamVjdGNvIi8+DQorICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2NyZWVuc2hvdC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNjcmVlbnNob3Qucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNjcmVlbmluZm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNjcmVlbmluZm8iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNjcmVlbmluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2NyZWVuaW5mby5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNjcmVlbmluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzY3JlZW5pbmZvLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmaWd1cmUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZpZ3VyZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZmlndXJlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImZpZ3VyZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsb2JqZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImZpZ3VyZS5taXgiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImxpbmsuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZpZ3VyZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZmlndXJlLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZmxvYXQiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPjA8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4xPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InBnd2lkZSI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPjE8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmZvcm1hbGZpZ3VyZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5mb3JtYWxmaWd1cmUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImluZm9ybWFsZmlndXJlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsZmlndXJlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJmaWd1cmUubWl4Ii8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJsaW5rLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmZvcm1hbGZpZ3VyZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW5mb3JtYWxmaWd1cmUucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJmbG9hdCI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPjE8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icGd3aWRlIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImdyYXBoaWNjby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3JhcGhpY2NvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJncmFwaGljY28iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ3JhcGhpY2NvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFyZWFzcGVjIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJncmFwaGljIi8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJjYWxsb3V0bGlzdCIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJncmFwaGljY28uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJncmFwaGljY28ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImdyYXBoaWMucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImdyYXBoaWMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImdyYXBoaWMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ3JhcGhpYy5hdHRsaXN0Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3JhcGhpYy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImdyYXBoaWNzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZ3JhcGhpYy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5saW5lZ3JhcGhpYy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5saW5lZ3JhcGhpYyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW5saW5lZ3JhcGhpYyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmVncmFwaGljLmF0dGxpc3QiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmxpbmVncmFwaGljLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iZ3JhcGhpY3MuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJpbmxpbmVncmFwaGljLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZWRpYW9iamVjdC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVkaWFvYmplY3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1lZGlhb2JqZWN0Ij4NCisgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJvYmplY3RpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0Lm1peCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJtZWRpYW9iamVjdC5taXgiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InRleHRvYmplY3QiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY2FwdGlvbiIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVkaWFvYmplY3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtZWRpYW9iamVjdC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5saW5lbWVkaWFvYmplY3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpbmxpbmVtZWRpYW9iamVjdCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmVtZWRpYW9iamVjdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ib2JqZWN0aW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJtZWRpYW9iamVjdC5taXgiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibWVkaWFvYmplY3QubWl4Ii8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0ZXh0b2JqZWN0Ii8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW5saW5lbWVkaWFvYmplY3Qucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZpZGVvb2JqZWN0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2aWRlb29iamVjdCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idmlkZW9vYmplY3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idmlkZW9vYmplY3QuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im9iamVjdGluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idmlkZW9kYXRhIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idmlkZW9vYmplY3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ2aWRlb29iamVjdC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXVkaW9vYmplY3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1ZGlvb2JqZWN0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhdWRpb29iamVjdCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJhdWRpb29iamVjdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ib2JqZWN0aW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJhdWRpb2RhdGEiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhdWRpb29iamVjdC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImF1ZGlvb2JqZWN0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbWFnZW9iamVjdC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW1hZ2VvYmplY3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImltYWdlb2JqZWN0Ij4NCisgICAgICAgICA8cmVmIG5hbWU9ImltYWdlb2JqZWN0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJvYmplY3RpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9ImltYWdlZGF0YSIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImltYWdlb2JqZWN0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW1hZ2VvYmplY3Qucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRleHRvYmplY3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRleHRvYmplY3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InRleHRvYmplY3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGV4dG9iamVjdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ib2JqZWN0aW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InBocmFzZSIvPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0ZXh0b2JqZWN0Lm1peCIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRleHRvYmplY3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0ZXh0b2JqZWN0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvYmplY3RpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvYmplY3RpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvYmplY3RpbmZvIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im9iamVjdGluZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb0NvbnRlbnRNb2RlbCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im9iamVjdGluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJvYmplY3RpbmZvLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvYmplY3RkYXRhLmF0dHJpYiI+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZmlsZXJlZiI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJmb3JtYXQiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPkJNUDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPkNHTS1DSEFSPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Q0dNLUJJTkFSWTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPkNHTS1DTEVBUjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPkRJVFJPRkY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5EVkk8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5FUFM8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5FUU48L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5GQVg8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5HSUY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5HSUY4N2E8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5HSUY4OWE8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5KUEc8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5KUEVHPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+SUdFUzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBDWDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBJQzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBORzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBTPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+U0dNTDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlRCTDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlRFWDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlRJRkY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5XTUY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5XUEc8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5saW5lc3BlY2lmaWM8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ic3JjY3JlZGl0Ij4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idmlkZW9kYXRhLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2aWRlb2RhdGEiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InZpZGVvZGF0YSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ2aWRlb2RhdGEuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZpZGVvZGF0YS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im9iamVjdGRhdGEuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0id2lkdGgiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZGVwdGgiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYWxpZ24iPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmxlZnQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yaWdodDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNlbnRlcjwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJzY2FsZSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJzY2FsZWZpdCI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPjE8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhdWRpb2RhdGEucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1ZGlvZGF0YSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXVkaW9kYXRhIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImF1ZGlvZGF0YS5hdHRsaXN0Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXVkaW9kYXRhLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib2JqZWN0ZGF0YS5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImF1ZGlvZGF0YS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW1hZ2VkYXRhLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbWFnZWRhdGEiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImltYWdlZGF0YSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbWFnZWRhdGEuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImltYWdlZGF0YS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im9iamVjdGRhdGEuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJpbWFnZWRhdGEucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ3aWR0aCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkZXB0aCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhbGlnbiI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bGVmdDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnJpZ2h0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y2VudGVyPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNjYWxlIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNjYWxlZml0Ij4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNhcHRpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNhcHRpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNhcHRpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2FwdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0ZXh0b2JqZWN0Lm1peCIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjYXB0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY2FwdGlvbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVkaWFvYmplY3Rjby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVkaWFvYmplY3RjbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibWVkaWFvYmplY3RjbyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtZWRpYW9iamVjdGNvLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJvYmplY3RpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9ImltYWdlb2JqZWN0Y28iLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iaW1hZ2VvYmplY3RjbyIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGV4dG9iamVjdCIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZWRpYW9iamVjdGNvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibWVkaWFvYmplY3Rjby5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW1hZ2VvYmplY3Rjby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW1hZ2VvYmplY3RjbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW1hZ2VvYmplY3RjbyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbWFnZW9iamVjdGNvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImFyZWFzcGVjIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbWFnZW9iamVjdCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY2FsbG91dGxpc3QiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW1hZ2VvYmplY3Rjby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImltYWdlb2JqZWN0Y28ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVxdWF0aW9uLmNvbnRlbnQiPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9ImFsdCIvPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZ3JhcGhpYyIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtZWRpYW9iamVjdCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5saW5lZXF1YXRpb24uY29udGVudCI+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWx0Ii8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJncmFwaGljIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlcXVhdGlvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZXF1YXRpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVxdWF0aW9uIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImVxdWF0aW9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWxvYmplY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsZXF1YXRpb24iLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImVxdWF0aW9uLmNvbnRlbnQiLz4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlcXVhdGlvbi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZXF1YXRpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluZm9ybWFsZXF1YXRpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluZm9ybWFsZXF1YXRpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImluZm9ybWFsZXF1YXRpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb3JtYWxlcXVhdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJlcXVhdGlvbi5jb250ZW50Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5mb3JtYWxlcXVhdGlvbi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsZXF1YXRpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImlubGluZWVxdWF0aW9uLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmxpbmVlcXVhdGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW5saW5lZXF1YXRpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lZXF1YXRpb24uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lZXF1YXRpb24uY29udGVudCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImlubGluZWVxdWF0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW5saW5lZXF1YXRpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFsdC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWx0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhbHQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWx0LmF0dGxpc3QiLz4NCisgICAgICAgICA8dGV4dC8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWx0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWx0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzeW5vcHNpcy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3lub3BzaXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InN5bm9wc2lzIj4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wc2lzLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImdyYXBoaWMiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJsaW5lYW5ub3RhdGlvbiIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iY28iLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzeW5vcHNpcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGluZXNwZWNpZmljLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3lub3BzaXMucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNtZHN5bm9wc2lzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjbWRzeW5vcHNpcyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY21kc3lub3BzaXMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY21kc3lub3BzaXMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbW1hbmQiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFyZyIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ3JvdXAiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNiciIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic3lub3BmcmFnbWVudCIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjbWRzeW5vcHNpcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY21kc3lub3BzaXMucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJzZXBjaGFyIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNtZGxlbmd0aCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iaW50ZWdlciIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcmcucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFyZyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXJnIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImFyZy5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJhcmciLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9Imdyb3VwIi8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJvcHRpb24iLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InN5bm9wZnJhZ21lbnRyZWYiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlcGxhY2VhYmxlIi8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzYnIiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcmcuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhcmcucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjaG9pY2UiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm9wdDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnJlcTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnBsYWluPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJlcCI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bm9yZXBlYXQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZXBlYXQ8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJncm91cC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3JvdXAiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Imdyb3VwIj4NCisgICAgICAgICA8cmVmIG5hbWU9Imdyb3VwLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJhcmciLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Imdyb3VwIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJvcHRpb24iLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InN5bm9wZnJhZ21lbnRyZWYiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlcGxhY2VhYmxlIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzYnIiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJncm91cC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imdyb3VwLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2hvaWNlIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5vcHQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZXE8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5wbGFpbjwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyZXAiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm5vcmVwZWF0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+cmVwZWF0PC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2JyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzYnIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNiciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzYnIuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNici5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNici5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3lub3BmcmFnbWVudHJlZi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3lub3BmcmFnbWVudHJlZiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic3lub3BmcmFnbWVudHJlZiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzeW5vcGZyYWdtZW50cmVmLmF0dGxpc3QiLz4NCisgICAgICAgICA8dGV4dC8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3lub3BmcmFnbWVudHJlZi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmRyZXEuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzeW5vcGZyYWdtZW50cmVmLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzeW5vcGZyYWdtZW50LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzeW5vcGZyYWdtZW50Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzeW5vcGZyYWdtZW50Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wZnJhZ21lbnQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFyZyIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ3JvdXAiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzeW5vcGZyYWdtZW50LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iaWRyZXEuY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3lub3BmcmFnbWVudC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZnVuY3N5bm9wc2lzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jc3lub3BzaXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZ1bmNzeW5vcHNpcyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJmdW5jc3lub3BzaXMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImZ1bmNzeW5vcHNpc2luZm8iLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImZ1bmNwcm90b3R5cGUiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jc3lub3BzaXMuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImZ1bmNzeW5vcHNpcy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZnVuY3N5bm9wc2lzaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZnVuY3N5bm9wc2lzaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZnVuY3N5bm9wc2lzaW5mbyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJmdW5jc3lub3BzaXNpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImxpbmVhbm5vdGF0aW9uIi8+DQorICAgICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZnVuY3N5bm9wc2lzaW5mby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImZ1bmNzeW5vcHNpc2luZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZ1bmNwcm90b3R5cGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZ1bmNwcm90b3R5cGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZ1bmNwcm90b3R5cGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZnVuY3Byb3RvdHlwZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmdW5jZGVmIi8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idm9pZCIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idmFyYXJncyIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYW1kZWYiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jcHJvdG90eXBlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZnVuY3Byb3RvdHlwZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZnVuY2RlZi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZnVuY2RlZiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZnVuY2RlZiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJmdW5jZGVmLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlcGxhY2VhYmxlIi8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJmdW5jdGlvbiIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZ1bmNkZWYuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJmdW5jZGVmLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2b2lkLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2b2lkIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ2b2lkIj4NCisgICAgICAgICA8cmVmIG5hbWU9InZvaWQuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZvaWQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ2b2lkLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2YXJhcmdzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2YXJhcmdzIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ2YXJhcmdzIj4NCisgICAgICAgICA8cmVmIG5hbWU9InZhcmFyZ3MuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZhcmFyZ3MuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ2YXJhcmdzLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYXJhbWRlZi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFyYW1kZWYiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InBhcmFtZGVmIj4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmFtZGVmLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlcGxhY2VhYmxlIi8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhbWV0ZXIiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImZ1bmNwYXJhbXMiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYXJhbWRlZi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InBhcmFtZGVmLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jcGFyYW1zLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jcGFyYW1zIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJmdW5jcGFyYW1zIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImZ1bmNwYXJhbXMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jcGFyYW1zLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZnVuY3BhcmFtcy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2xhc3NzeW5vcHNpcy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2xhc3NzeW5vcHNpcyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY2xhc3NzeW5vcHNpcyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjbGFzc3N5bm9wc2lzLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJvb2NsYXNzIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJvb2ludGVyZmFjZSIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ib29leGNlcHRpb24iLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iY2xhc3NzeW5vcHNpc2luZm8iLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImZpZWxkc3lub3BzaXMiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Im1ldGhvZC5zeW5vcC5jbGFzcyIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjbGFzc3N5bm9wc2lzLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY2xhc3NzeW5vcHNpcy5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Imxhbmd1YWdlIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5jbGFzczwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmludGVyZmFjZTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNsYXNzc3lub3BzaXNpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjbGFzc3N5bm9wc2lzaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY2xhc3NzeW5vcHNpc2luZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2xhc3NzeW5vcHNpc2luZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibGluZWFubm90YXRpb24iLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjbGFzc3N5bm9wc2lzaW5mby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNsYXNzc3lub3BzaXNpbmZvLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvb2NsYXNzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvb2NsYXNzIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvb2NsYXNzIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im9vY2xhc3MuYXR0bGlzdCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibW9kaWZpZXIiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPHJlZiBuYW1lPSJjbGFzc25hbWUiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvb2NsYXNzLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib29jbGFzcy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib29pbnRlcmZhY2Uucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im9vaW50ZXJmYWNlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvb2ludGVyZmFjZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJvb2ludGVyZmFjZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtb2RpZmllciIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8cmVmIG5hbWU9ImludGVyZmFjZW5hbWUiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvb2ludGVyZmFjZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im9vaW50ZXJmYWNlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvb2V4Y2VwdGlvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib29leGNlcHRpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im9vZXhjZXB0aW9uIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im9vZXhjZXB0aW9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im1vZGlmaWVyIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZXhjZXB0aW9ubmFtZSIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im9vZXhjZXB0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib29leGNlcHRpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1vZGlmaWVyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtb2RpZmllciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibW9kaWZpZXIiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibW9kaWZpZXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1vZGlmaWVyLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9kaWZpZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImludGVyZmFjZW5hbWUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImludGVyZmFjZW5hbWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImludGVyZmFjZW5hbWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW50ZXJmYWNlbmFtZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW50ZXJmYWNlbmFtZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImludGVyZmFjZW5hbWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImV4Y2VwdGlvbm5hbWUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImV4Y2VwdGlvbm5hbWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImV4Y2VwdGlvbm5hbWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZXhjZXB0aW9ubmFtZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZXhjZXB0aW9ubmFtZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImV4Y2VwdGlvbm5hbWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZpZWxkc3lub3BzaXMucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZpZWxkc3lub3BzaXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZpZWxkc3lub3BzaXMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZmllbGRzeW5vcHNpcy5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtb2RpZmllciIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0eXBlIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9InZhcm5hbWUiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJpbml0aWFsaXplciIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZmllbGRzeW5vcHNpcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImZpZWxkc3lub3BzaXMucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluaXRpYWxpemVyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbml0aWFsaXplciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW5pdGlhbGl6ZXIiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5pdGlhbGl6ZXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluaXRpYWxpemVyLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW5pdGlhbGl6ZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbnN0cnVjdG9yc3lub3BzaXMucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbnN0cnVjdG9yc3lub3BzaXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvbnN0cnVjdG9yc3lub3BzaXMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29uc3RydWN0b3JzeW5vcHNpcy5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtb2RpZmllciIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtZXRob2RuYW1lIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJtZXRob2RwYXJhbSIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idm9pZCIvPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZXhjZXB0aW9ubmFtZSIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb25zdHJ1Y3RvcnN5bm9wc2lzLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29uc3RydWN0b3JzeW5vcHNpcy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGVzdHJ1Y3RvcnN5bm9wc2lzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJkZXN0cnVjdG9yc3lub3BzaXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImRlc3RydWN0b3JzeW5vcHNpcyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJkZXN0cnVjdG9yc3lub3BzaXMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibW9kaWZpZXIiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibWV0aG9kbmFtZSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibWV0aG9kcGFyYW0iLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InZvaWQiLz4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImV4Y2VwdGlvbm5hbWUiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGVzdHJ1Y3RvcnN5bm9wc2lzLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZGVzdHJ1Y3RvcnN5bm9wc2lzLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZXRob2RzeW5vcHNpcy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWV0aG9kc3lub3BzaXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1ldGhvZHN5bm9wc2lzIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1ldGhvZHN5bm9wc2lzLmF0dGxpc3QiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im1vZGlmaWVyIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idHlwZSIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idm9pZCIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibWV0aG9kbmFtZSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibWV0aG9kcGFyYW0iLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InZvaWQiLz4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImV4Y2VwdGlvbm5hbWUiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtb2RpZmllciIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZXRob2RzeW5vcHNpcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1ldGhvZHN5bm9wc2lzLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZXRob2RuYW1lLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZXRob2RuYW1lIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJtZXRob2RuYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1ldGhvZG5hbWUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1ldGhvZG5hbWUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtZXRob2RuYW1lLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZXRob2RwYXJhbS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWV0aG9kcGFyYW0iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1ldGhvZHBhcmFtIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im1ldGhvZHBhcmFtLmF0dGxpc3QiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJtb2RpZmllciI+DQorICAgICAgICAgICAgICAgPHRleHQvPg0KKyAgICAgICAgICAgIDwvZWxlbWVudD4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InR5cGUiPg0KKyAgICAgICAgICAgICAgIDx0ZXh0Lz4NCisgICAgICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxncm91cD4NCisgICAgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJwYXJhbWV0ZXIiPg0KKyAgICAgICAgICAgICAgICAgIDx0ZXh0Lz4NCisgICAgICAgICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImluaXRpYWxpemVyIj4NCisgICAgICAgICAgICAgICAgICAgICA8dGV4dC8+DQorICAgICAgICAgICAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgICAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgICAgPC9ncm91cD4NCisgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJmdW5jcGFyYW1zIj4NCisgICAgICAgICAgICAgICA8dGV4dC8+DQorICAgICAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9Im1vZGlmaWVyIj4NCisgICAgICAgICAgICAgICA8dGV4dC8+DQorICAgICAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZXRob2RwYXJhbS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1ldGhvZHBhcmFtLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2hvaWNlIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5vcHQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZXE8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5wbGFpbjwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyZXAiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPm5vcmVwZWF0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+cmVwZWF0PC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWNrbm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFja25vIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhY2tubyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJhY2tuby5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFja25vLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWNrbm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFkZHJlc3Mucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFkZHJlc3MiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImFkZHJlc3MiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWRkcmVzcy5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwZXJzb24uaWRlbnQubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzdHJlZXQiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBvYiIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icG9zdGNvZGUiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNpdHkiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InN0YXRlIi8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjb3VudHJ5Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwaG9uZSIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZmF4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJlbWFpbCIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXJhZGRyIi8+DQorICAgICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWRkcmVzcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImFkZHJlc3Mucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN0cmVldC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3RyZWV0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzdHJlZXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3RyZWV0LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3RyZWV0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RyZWV0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwb2Iucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBvYiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icG9iIj4NCisgICAgICAgICA8cmVmIG5hbWU9InBvYi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBvYi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InBvYi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icG9zdGNvZGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBvc3Rjb2RlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJwb3N0Y29kZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwb3N0Y29kZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBvc3Rjb2RlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icG9zdGNvZGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdHkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdHkiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNpdHkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2l0eS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdHkuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjaXR5LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdGF0ZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3RhdGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InN0YXRlIj4NCisgICAgICAgICA8cmVmIG5hbWU9InN0YXRlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3RhdGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0ZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY291bnRyeS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY291bnRyeSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY291bnRyeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb3VudHJ5LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY291bnRyeS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvdW50cnkucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBob25lLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwaG9uZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icGhvbmUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGhvbmUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwaG9uZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InBob25lLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmYXgucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZheCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZmF4Ij4NCisgICAgICAgICA8cmVmIG5hbWU9ImZheC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZheC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImZheC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3RoZXJhZGRyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvdGhlcmFkZHIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im90aGVyYWRkciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJvdGhlcmFkZHIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvdGhlcmFkZHIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJvdGhlcmFkZHIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFmZmlsaWF0aW9uLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhZmZpbGlhdGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYWZmaWxpYXRpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWZmaWxpYXRpb24uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNob3J0YWZmaWwiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iam9idGl0bGUiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ib3JnbmFtZSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJvcmdkaXYiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJhZGRyZXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFmZmlsaWF0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWZmaWxpYXRpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNob3J0YWZmaWwucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNob3J0YWZmaWwiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNob3J0YWZmaWwiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2hvcnRhZmZpbC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNob3J0YWZmaWwuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzaG9ydGFmZmlsLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJqb2J0aXRsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iam9idGl0bGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImpvYnRpdGxlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImpvYnRpdGxlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iam9idGl0bGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJqb2J0aXRsZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3JnZGl2LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcmdkaXYiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im9yZ2RpdiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJvcmdkaXYuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcmdkaXYuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJvcmdkaXYucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFydHBhZ2VudW1zLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcnRwYWdlbnVtcyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXJ0cGFnZW51bXMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXJ0cGFnZW51bXMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcnRwYWdlbnVtcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImFydHBhZ2VudW1zLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhdXRob3Iucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1dGhvciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXV0aG9yIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImF1dGhvci5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InBlcnNvbi5pZGVudC5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhdXRob3IuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhdXRob3Iucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1dGhvcmdyb3VwLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhdXRob3Jncm91cCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXV0aG9yZ3JvdXAiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXV0aG9yZ3JvdXAuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImF1dGhvciIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZWRpdG9yIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjb2xsYWIiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNvcnBhdXRob3IiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Im90aGVyY3JlZGl0Ii8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXV0aG9yZ3JvdXAuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhdXRob3Jncm91cC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29sbGFiLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb2xsYWIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvbGxhYiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb2xsYWIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29sbGFibmFtZSIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYWZmaWxpYXRpb24iLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29sbGFiLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29sbGFiLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb2xsYWJuYW1lLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb2xsYWJuYW1lIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjb2xsYWJuYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbGxhYm5hbWUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb2xsYWJuYW1lLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29sbGFibmFtZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXV0aG9yaW5pdGlhbHMucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1dGhvcmluaXRpYWxzIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhdXRob3Jpbml0aWFscyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJhdXRob3Jpbml0aWFscy5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImF1dGhvcmluaXRpYWxzLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYXV0aG9yaW5pdGlhbHMucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbmZncm91cC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29uZmdyb3VwIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjb25mZ3JvdXAiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29uZmdyb3VwLmF0dGxpc3QiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iY29uZmRhdGVzIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjb25mdGl0bGUiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbmZudW0iLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFkZHJlc3MiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbmZzcG9uc29yIi8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbmZncm91cC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbmZncm91cC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29uZmRhdGVzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb25mZGF0ZXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvbmZkYXRlcyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb25mZGF0ZXMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb25mZGF0ZXMuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb25mZGF0ZXMucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbmZ0aXRsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29uZnRpdGxlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjb25mdGl0bGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29uZnRpdGxlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29uZnRpdGxlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29uZnRpdGxlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb25mbnVtLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb25mbnVtIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjb25mbnVtIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbmZudW0uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb25mbnVtLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29uZm51bS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29uZnNwb25zb3Iucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbmZzcG9uc29yIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjb25mc3BvbnNvciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb25mc3BvbnNvci5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbmZzcG9uc29yLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29uZnNwb25zb3Iucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbnRyYWN0bnVtLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb250cmFjdG51bSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY29udHJhY3RudW0iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29udHJhY3RudW0uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb250cmFjdG51bS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbnRyYWN0bnVtLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb250cmFjdHNwb25zb3Iucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbnRyYWN0c3BvbnNvciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY29udHJhY3RzcG9uc29yIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbnRyYWN0c3BvbnNvci5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbnRyYWN0c3BvbnNvci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbnRyYWN0c3BvbnNvci5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29weXJpZ2h0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb3B5cmlnaHQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvcHlyaWdodCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb3B5cmlnaHQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ5ZWFyIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJob2xkZXIiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29weXJpZ2h0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29weXJpZ2h0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ5ZWFyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ5ZWFyIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ5ZWFyIj4NCisgICAgICAgICA8cmVmIG5hbWU9InllYXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ5ZWFyLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ieWVhci5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaG9sZGVyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJob2xkZXIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImhvbGRlciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJob2xkZXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJob2xkZXIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJob2xkZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvcnBhdXRob3Iucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvcnBhdXRob3IiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvcnBhdXRob3IiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29ycGF1dGhvci5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvcnBhdXRob3IuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb3JwYXV0aG9yLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb3JwbmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29ycG5hbWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvcnBuYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvcnBuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29ycG5hbWUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb3JwbmFtZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGF0ZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGF0ZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZGF0ZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJkYXRlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGF0ZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImRhdGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVkaXRpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVkaXRpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVkaXRpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZWRpdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVkaXRpb24uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJlZGl0aW9uLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlZGl0b3Iucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVkaXRvciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZWRpdG9yIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImVkaXRvci5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InBlcnNvbi5pZGVudC5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlZGl0b3IuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJlZGl0b3Iucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImlzYm4ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImlzYm4iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImlzYm4iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXNibi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImlzYm4uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJpc2JuLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpc3NuLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpc3NuIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpc3NuIj4NCisgICAgICAgICA8cmVmIG5hbWU9Imlzc24uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpc3NuLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaXNzbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW52cGFydG51bWJlci5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW52cGFydG51bWJlciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW52cGFydG51bWJlciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbnZwYXJ0bnVtYmVyLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW52cGFydG51bWJlci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImludnBhcnRudW1iZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imlzc3VlbnVtLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpc3N1ZW51bSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaXNzdWVudW0iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXNzdWVudW0uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpc3N1ZW51bS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imlzc3VlbnVtLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJsZWdhbG5vdGljZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGVnYWxub3RpY2UiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImxlZ2Fsbm90aWNlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImxlZ2Fsbm90aWNlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImxlZ2Fsbm90aWNlLm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxlZ2Fsbm90aWNlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGVnYWxub3RpY2Uucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1vZGVzcGVjLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtb2Rlc3BlYyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibW9kZXNwZWMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibW9kZXNwZWMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtb2Rlc3BlYy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1vZGVzcGVjLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYXBwbGljYXRpb24iPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPkJNUDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPkNHTS1DSEFSPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Q0dNLUJJTkFSWTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPkNHTS1DTEVBUjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPkRJVFJPRkY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5EVkk8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5FUFM8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5FUU48L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5GQVg8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5HSUY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5HSUY4N2E8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5HSUY4OWE8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5KUEc8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5KUEVHPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+SUdFUzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBDWDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBJQzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBORzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlBTPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+U0dNTDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlRCTDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlRFWDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPlRJRkY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5XTUY8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5XUEc8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5saW5lc3BlY2lmaWM8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcmduYW1lLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcmduYW1lIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvcmduYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im9yZ25hbWUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcmduYW1lLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib3JnbmFtZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3RoZXJjcmVkaXQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im90aGVyY3JlZGl0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvdGhlcmNyZWRpdCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJvdGhlcmNyZWRpdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InBlcnNvbi5pZGVudC5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvdGhlcmNyZWRpdC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im90aGVyY3JlZGl0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYWdlbnVtcy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFnZW51bXMiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InBhZ2VudW1zIj4NCisgICAgICAgICA8cmVmIG5hbWU9InBhZ2VudW1zLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFnZW51bXMuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtcy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29udHJpYi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29udHJpYiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY29udHJpYiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb250cmliLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29udHJpYi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbnRyaWIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZpcnN0bmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZmlyc3RuYW1lIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJmaXJzdG5hbWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZmlyc3RuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZmlyc3RuYW1lLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZmlyc3RuYW1lLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJob25vcmlmaWMucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imhvbm9yaWZpYyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaG9ub3JpZmljIj4NCisgICAgICAgICA8cmVmIG5hbWU9Imhvbm9yaWZpYy5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imhvbm9yaWZpYy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imhvbm9yaWZpYy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGluZWFnZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGluZWFnZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibGluZWFnZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lYWdlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGluZWFnZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxpbmVhZ2Uucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im90aGVybmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3RoZXJuYW1lIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvdGhlcm5hbWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXJuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3RoZXJuYW1lLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib3RoZXJuYW1lLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdXJuYW1lLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdXJuYW1lIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzdXJuYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9InN1cm5hbWUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdXJuYW1lLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3VybmFtZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJpbnRoaXN0b3J5LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwcmludGhpc3RvcnkiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InByaW50aGlzdG9yeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcmludGhpc3RvcnkuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJpbnRoaXN0b3J5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icHJpbnRoaXN0b3J5LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwcm9kdWN0bmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZHVjdG5hbWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InByb2R1Y3RuYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9InByb2R1Y3RuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZHVjdG5hbWUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwcm9kdWN0bmFtZS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZXJ2aWNlPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+dHJhZGU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZWdpc3RlcmVkPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y29weXJpZ2h0PC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZHVjdG51bWJlci5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZHVjdG51bWJlciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icHJvZHVjdG51bWJlciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9kdWN0bnVtYmVyLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvZHVjdG51bWJlci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InByb2R1Y3RudW1iZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1YmRhdGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1YmRhdGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InB1YmRhdGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHViZGF0ZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1YmRhdGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwdWJkYXRlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwdWJsaXNoZXIucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1Ymxpc2hlciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icHVibGlzaGVyIj4NCisgICAgICAgICA8cmVmIG5hbWU9InB1Ymxpc2hlci5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwdWJsaXNoZXJuYW1lIi8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJhZGRyZXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1Ymxpc2hlci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InB1Ymxpc2hlci5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHVibGlzaGVybmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHVibGlzaGVybmFtZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icHVibGlzaGVybmFtZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwdWJsaXNoZXJuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHVibGlzaGVybmFtZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InB1Ymxpc2hlcm5hbWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1YnNudW1iZXIucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1YnNudW1iZXIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InB1YnNudW1iZXIiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHVic251bWJlci5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InB1YnNudW1iZXIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwdWJzbnVtYmVyLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWxlYXNlaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVsZWFzZWluZm8iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlbGVhc2VpbmZvIj4NCisgICAgICAgICA8cmVmIG5hbWU9InJlbGVhc2VpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVsZWFzZWluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWxlYXNlaW5mby5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2aGlzdG9yeS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2aGlzdG9yeSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmV2aGlzdG9yeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZXZoaXN0b3J5LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmV2aXNpb24iLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXZoaXN0b3J5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmV2aGlzdG9yeS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2aXNpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJldmlzaW9uIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZXZpc2lvbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZXZpc2lvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZXZudW1iZXIiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImRhdGUiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImF1dGhvcmluaXRpYWxzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmV2cmVtYXJrIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZXZkZXNjcmlwdGlvbiIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2aXNpb24uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZXZpc2lvbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2bnVtYmVyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXZudW1iZXIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJldm51bWJlciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZXZudW1iZXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXZudW1iZXIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZXZudW1iZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJldnJlbWFyay5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2cmVtYXJrIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZXZyZW1hcmsiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmV2cmVtYXJrLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2cmVtYXJrLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmV2cmVtYXJrLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXZkZXNjcmlwdGlvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2ZGVzY3JpcHRpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJldmRlc2NyaXB0aW9uIj4NCisgICAgICAgICA8cmVmIG5hbWU9InJldmRlc2NyaXB0aW9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmV2ZGVzY3JpcHRpb24ubWl4Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmV2ZGVzY3JpcHRpb24uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZXZkZXNjcmlwdGlvbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VyaWVzdm9sbnVtcy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VyaWVzdm9sbnVtcyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VyaWVzdm9sbnVtcyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZXJpZXN2b2xudW1zLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VyaWVzdm9sbnVtcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNlcmllc3ZvbG51bXMucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InZvbHVtZW51bS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idm9sdW1lbnVtIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ2b2x1bWVudW0iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idm9sdW1lbnVtLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idm9sdW1lbnVtLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idm9sdW1lbnVtLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhY2NlbC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWNjZWwiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImFjY2VsIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImFjY2VsLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhY2NlbC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImFjY2VsLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhY3Rpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFjdGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYWN0aW9uIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImFjdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWN0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9yZWluZm8uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhY3Rpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFwcGxpY2F0aW9uLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXBwbGljYXRpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXBwbGljYXRpb24uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcHBsaWNhdGlvbi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYXBwbGljYXRpb24ucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+aGFyZHdhcmU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zb2Z0d2FyZTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNsYXNzbmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2xhc3NuYW1lIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjbGFzc25hbWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2xhc3NuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjbGFzc25hbWUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjbGFzc25hbWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY28iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY28uYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJsaW5rZW5kcy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImlkcmVxLmNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb21tYW5kLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb21tYW5kIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjb21tYW5kIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbW1hbmQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb21tYW5kLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9yZWluZm8uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tYW5kLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb21wdXRlcm91dHB1dC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29tcHV0ZXJvdXRwdXQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvbXB1dGVyb3V0cHV0Ij4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbXB1dGVyb3V0cHV0LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29tcHV0ZXJvdXRwdXQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbXB1dGVyb3V0cHV0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJkYXRhYmFzZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGF0YWJhc2UiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImRhdGFiYXNlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImRhdGFiYXNlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJkYXRhYmFzZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImRhdGFiYXNlLnJvbGUuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bmFtZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnRhYmxlPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+ZmllbGQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5rZXkxPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+a2V5MjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnJlY29yZDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVtYWlsLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlbWFpbCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1haWwiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZW1haWwuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlbWFpbC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImVtYWlsLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlbnZhci5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZW52YXIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVudmFyIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImVudmFyLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkb2NpbmZvLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZW52YXIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJlbnZhci5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZXJyb3Jjb2RlLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlcnJvcmNvZGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVycm9yY29kZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJlcnJvcmNvZGUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVycm9yY29kZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZXJyb3Jjb2RlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlcnJvcm5hbWUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVycm9ybmFtZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZXJyb3JuYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImVycm9ybmFtZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZXJyb3JuYW1lLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZXJyb3JuYW1lLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlcnJvcnR5cGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVycm9ydHlwZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZXJyb3J0eXBlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImVycm9ydHlwZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZXJyb3J0eXBlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZXJyb3J0eXBlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmaWxlbmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZmlsZW5hbWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZpbGVuYW1lIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImZpbGVuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmaWxlbmFtZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZmlsZW5hbWUucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+aGVhZGVyZmlsZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmRldmljZWZpbGU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5saWJyYXJ5ZmlsZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmRpcmVjdG9yeTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnN5bWxpbms8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icGF0aCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZ1bmN0aW9uLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jdGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZnVuY3Rpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZnVuY3Rpb24uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmdW5jdGlvbi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZnVuY3Rpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imd1aWJ1dHRvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3VpYnV0dG9uIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJndWlidXR0b24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ3VpYnV0dG9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYWNjZWwiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJndWlidXR0b24uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imd1aWJ1dHRvbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3VpaWNvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3VpaWNvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZ3VpaWNvbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJndWlpY29uLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYWNjZWwiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJndWlpY29uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9yZWluZm8uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJndWlpY29uLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJndWlsYWJlbC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3VpbGFiZWwiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Imd1aWxhYmVsIj4NCisgICAgICAgICA8cmVmIG5hbWU9Imd1aWxhYmVsLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYWNjZWwiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJndWlsYWJlbC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZ3VpbGFiZWwucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imd1aW1lbnUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imd1aW1lbnUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Imd1aW1lbnUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ3VpbWVudS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFjY2VsIi8+DQorICAgICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3VpbWVudS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZ3VpbWVudS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3VpbWVudWl0ZW0ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imd1aW1lbnVpdGVtIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJndWltZW51aXRlbSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJndWltZW51aXRlbS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFjY2VsIi8+DQorICAgICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ3VpbWVudWl0ZW0uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imd1aW1lbnVpdGVtLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJndWlzdWJtZW51LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJndWlzdWJtZW51Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJndWlzdWJtZW51Ij4NCisgICAgICAgICA8cmVmIG5hbWU9Imd1aXN1Ym1lbnUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJhY2NlbCIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imd1aXN1Ym1lbnUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imd1aXN1Ym1lbnUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImhhcmR3YXJlLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJoYXJkd2FyZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaGFyZHdhcmUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaGFyZHdhcmUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImhhcmR3YXJlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9yZWluZm8uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJoYXJkd2FyZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW50ZXJmYWNlLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbnRlcmZhY2UiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImludGVyZmFjZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbnRlcmZhY2UuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJhY2NlbCIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImludGVyZmFjZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW50ZXJmYWNlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJrZXljYXAucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleWNhcCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ia2V5Y2FwIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImtleWNhcC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ia2V5Y2FwLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9yZWluZm8uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJrZXljYXAucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleWNvZGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleWNvZGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImtleWNvZGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ia2V5Y29kZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ia2V5Y29kZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImtleWNvZGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleWNvbWJvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJrZXljb21ibyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ia2V5Y29tYm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ia2V5Y29tYm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImtleWNhcCIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ia2V5Y29tYm8iLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImtleXN5bSIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibW91c2VidXR0b24iLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJrZXljb21iby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImtleWFjdGlvbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ia2V5Y29tYm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleXN5c20ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImtleXN5bSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ia2V5c3ltIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImtleXN5bS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ia2V5c3ltLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ia2V5c3lzbS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibGluZWFubm90YXRpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpbmVhbm5vdGF0aW9uIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJsaW5lYW5ub3RhdGlvbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lYW5ub3RhdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpbmVhbm5vdGF0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGluZWFubm90YXRpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpdGVyYWwucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpdGVyYWwiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImxpdGVyYWwiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGl0ZXJhbC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpdGVyYWwuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxpdGVyYWwucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbnN0YW50LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb25zdGFudCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY29uc3RhbnQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29uc3RhbnQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbnN0YW50LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29uc3RhbnQucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPHZhbHVlPmxpbWl0PC92YWx1ZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idmFybmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idmFybmFtZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idmFybmFtZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ2YXJuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ2YXJuYW1lLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idmFybmFtZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWFya3VwLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtYXJrdXAiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1hcmt1cCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtYXJrdXAuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1hcmt1cC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1hcmt1cC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVkaWFsYWJlbC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVkaWFsYWJlbCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibWVkaWFsYWJlbCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtZWRpYWxhYmVsLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtZWRpYWxhYmVsLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibWVkaWFsYWJlbC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5jYXJ0cmlkZ2U8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5jZHJvbTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmRpc2s8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT50YXBlPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVudWNob2ljZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWVudWNob2ljZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibWVudWNob2ljZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtZW51Y2hvaWNlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzaG9ydGN1dCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ3VpYnV0dG9uIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJndWlpY29uIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJndWlsYWJlbCIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ3VpbWVudSIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ3VpbWVudWl0ZW0iLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Imd1aXN1Ym1lbnUiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImludGVyZmFjZSIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1lbnVjaG9pY2UuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1lbnVjaG9pY2Uucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNob3J0Y3V0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaG9ydGN1dCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2hvcnRjdXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2hvcnRjdXQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImtleWNhcCIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ia2V5Y29tYm8iLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImtleXN5bSIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibW91c2VidXR0b24iLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzaG9ydGN1dC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImtleWFjdGlvbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2hvcnRjdXQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1vdXNlYnV0dG9uLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJtb3VzZWJ1dHRvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibW91c2VidXR0b24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibW91c2VidXR0b24uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1vdXNlYnV0dG9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9yZWluZm8uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtb3VzZWJ1dHRvbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNndGV4dC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibXNndGV4dCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ibXNndGV4dCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJtc2d0ZXh0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im1zZ3RleHQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJtc2d0ZXh0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcHRpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im9wdGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ib3B0aW9uIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im9wdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3B0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib3B0aW9uLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJvcHRpb25hbC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3B0aW9uYWwiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im9wdGlvbmFsIj4NCisgICAgICAgICA8cmVmIG5hbWU9Im9wdGlvbmFsLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib3B0aW9uYWwuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJvcHRpb25hbC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFyYW1ldGVyLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYXJhbWV0ZXIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InBhcmFtZXRlciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhbWV0ZXIuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcmFtZXRlci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9Im1vcmVpbmZvLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icGFyYW1ldGVyLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNvbW1hbmQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5mdW5jdGlvbjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm9wdGlvbjwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByb21wdC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvbXB0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJwcm9tcHQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJvbXB0LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwcm9tcHQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InByb21wdC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvcGVydHkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByb3BlcnR5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJwcm9wZXJ0eSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcm9wZXJ0eS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJvcGVydHkuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InByb3BlcnR5LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXBsYWNlYWJsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVwbGFjZWFibGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlcGxhY2VhYmxlIj4NCisgICAgICAgICA8cmVmIG5hbWU9InJlcGxhY2VhYmxlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImxpbmsuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ib3B0aW9uYWwiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImJhc2UuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lZ3JhcGhpYyIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lbWVkaWFvYmplY3QiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXBsYWNlYWJsZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlcGxhY2VhYmxlLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNvbW1hbmQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5mdW5jdGlvbjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm9wdGlvbjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnBhcmFtZXRlcjwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJldHVybnZhbHVlLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZXR1cm52YWx1ZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmV0dXJudmFsdWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmV0dXJudmFsdWUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJldHVybnZhbHVlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmV0dXJudmFsdWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNnbWx0YWcucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNnbWx0YWciPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNnbWx0YWciPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2dtbHRhZy5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2dtbHRhZy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNnbWx0YWcucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+YXR0cmlidXRlPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+YXR0dmFsdWU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5lbGVtZW50PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+ZW5kdGFnPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+ZW1wdHl0YWc8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5nZW5lbnRpdHk8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5udW1jaGFycmVmPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+cGFyYW1lbnRpdHk8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5waTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnhtbHBpPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c3RhcnR0YWc8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZ21sY29tbWVudDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN0cnVjdGZpZWxkLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdHJ1Y3RmaWVsZCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic3RydWN0ZmllbGQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3RydWN0ZmllbGQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN0cnVjdGZpZWxkLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RydWN0ZmllbGQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN0cnVjdG5hbWUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN0cnVjdG5hbWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InN0cnVjdG5hbWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3RydWN0bmFtZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3RydWN0bmFtZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InN0cnVjdG5hbWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN5bWJvbC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3ltYm9sIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzeW1ib2wiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3ltYm9sLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzbWFsbGNwdHIuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzeW1ib2wuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzeW1ib2wucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPHZhbHVlPmxpbWl0PC92YWx1ZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3lzdGVtaXRlbS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3lzdGVtaXRlbSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic3lzdGVtaXRlbSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzeXN0ZW1pdGVtLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYWNyb255bSIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN5c3RlbWl0ZW0uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJtb3JlaW5mby5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InN5c3RlbWl0ZW0ucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y29uc3RhbnQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5ncm91cG5hbWU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5saWJyYXJ5PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bWFjcm88L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5vc25hbWU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZXNvdXJjZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnN5c3RlbW5hbWU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT51c2VybmFtZTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRva2VuLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2tlbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idG9rZW4iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9rZW4uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNtYWxsY3B0ci5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRva2VuLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idG9rZW4ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InR5cGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InR5cGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InR5cGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idHlwZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic21hbGxjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idHlwZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InR5cGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InVzZXJpbnB1dC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idXNlcmlucHV0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ1c2VyaW5wdXQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idXNlcmlucHV0LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjcHRyLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idXNlcmlucHV0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibW9yZWluZm8uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ1c2VyaW5wdXQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFiYnJldi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWJicmV2Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhYmJyZXYiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWJicmV2LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ3b3JkLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYWJicmV2LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWJicmV2LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhY3JvbnltLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhY3JvbnltIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhY3JvbnltIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImFjcm9ueW0uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9IndvcmQuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhY3JvbnltLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYWNyb255bS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2l0YXRpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdGF0aW9uIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjaXRhdGlvbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjaXRhdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdGF0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY2l0YXRpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdGVyZWZlbnRyeS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2l0ZXJlZmVudHJ5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjaXRlcmVmZW50cnkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2l0ZXJlZmVudHJ5LmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5dGl0bGUiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJtYW52b2xudW0iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdGVyZWZlbnRyeS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNpdGVyZWZlbnRyeS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmZW50cnl0aXRsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmZW50cnl0aXRsZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmVmZW50cnl0aXRsZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZlbnRyeXRpdGxlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmZW50cnl0aXRsZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5dGl0bGUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im5hbXZvbG51bS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWFudm9sbnVtIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJtYW52b2xudW0iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibWFudm9sbnVtLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ3b3JkLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibWFudm9sbnVtLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibmFtdm9sbnVtLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjaXRldGl0bGUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdGV0aXRsZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY2l0ZXRpdGxlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImNpdGV0aXRsZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNpdGV0aXRsZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNpdGV0aXRsZS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InB1YndvcmsiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmFydGljbGU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5ib29rPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y2hhcHRlcjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnBhcnQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZWZlbnRyeTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3Rpb248L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5qb3VybmFsPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VyaWVzPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2V0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bWFudXNjcmlwdDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVtcGhhc2lzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlbXBoYXNpcyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1waGFzaXMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZW1waGFzaXMuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlbXBoYXNpcy5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImVtcGhhc2lzLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmaXJzdHRlcm0ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZpcnN0dGVybSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZmlyc3R0ZXJtIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImZpcnN0dGVybS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0id29yZC5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZpcnN0dGVybS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImZpcnN0dGVybS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGlua2VuZC5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZvcmVpZ25waHJhc2Uucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZvcmVpZ25waHJhc2UiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZvcmVpZ25waHJhc2UiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9yZWlnbnBocmFzZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZvcmVpZ25waHJhc2UuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJmb3JlaWducGhyYXNlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc3Rlcm0ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzdGVybSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZ2xvc3N0ZXJtIj4NCisgICAgICAgICA8cmVmIG5hbWU9Imdsb3NzdGVybS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzdGVybS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imdsb3NzdGVybS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGlua2VuZC5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJiYXNlZm9ybSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBocmFzZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGhyYXNlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJwaHJhc2UiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGhyYXNlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGhyYXNlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icGhyYXNlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJxdW90ZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icXVvdGUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InF1b3RlIj4NCisgICAgICAgICA8cmVmIG5hbWU9InF1b3RlLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icXVvdGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJxdW90ZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic3NzY3JpcHQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YnNjcmlwdENvbnRlbnRNb2RlbCI+DQorICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImxpbmsuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZW1waGFzaXMiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InJlcGxhY2VhYmxlIi8+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzeW1ib2wiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZWdyYXBoaWMiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJiYXNlLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im90aGVyLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICA8L3plcm9Pck1vcmU+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdWJzY3JpcHQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InN1YnNjcmlwdCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzdWJzY3JpcHQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InN1YnNjcmlwdENvbnRlbnRNb2RlbCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1YnNjcmlwdC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNzc2NyaXB0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzdXBlcnNjcmlwdCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic3VwZXJzY3JpcHQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3VwZXJzY3JpcHQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InN1YnNjcmlwdENvbnRlbnRNb2RlbCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InN1cGVyc2NyaXB0LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3NzY3JpcHQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRyYWRlbWFyay5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idHJhZGVtYXJrIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0cmFkZW1hcmsiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idHJhZGVtYXJrLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImxpbmsuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGVjaC5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJiYXNlLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9Im90aGVyLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZWdyYXBoaWMiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZW1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJlbXBoYXNpcyIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRyYWRlbWFyay5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InRyYWRlbWFyay5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZXJ2aWNlPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+dHJhZGU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5yZWdpc3RlcmVkPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y29weXJpZ2h0PC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0id29yZGFzd29yZC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0id29yZGFzd29yZCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0id29yZGFzd29yZCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ3b3JkYXN3b3JkLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ3b3JkLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0id29yZGFzd29yZC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9IndvcmRhc3dvcmQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imxpbmsucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpbmsiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImxpbmsiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGluay5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxpbmsuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsaW5rZW5kcmVxLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ibGluay5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImVuZHRlcm0iPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9IklEUkVGIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ib2xpbmsucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im9saW5rIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvbGluayI+DQorICAgICAgICAgPHJlZiBuYW1lPSJvbGluay5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Im9saW5rLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ib2xpbmsucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJsaW5rbW9kZSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iSURSRUYiLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImxvY2FsaW5mbyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idWxpbmsucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InVsaW5rIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ1bGluayI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ1bGluay5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InVsaW5rLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idWxpbmsucm9sZS5hdHRyaWIiLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9InVybCI+DQorICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZvb3Rub3RlcmVmLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJmb290bm90ZXJlZiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZm9vdG5vdGVyZWYiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9vdG5vdGVyZWYuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImZvb3Rub3RlcmVmLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGlua2VuZHJlcS5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZm9vdG5vdGVyZWYucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InhyZWYucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InhyZWYiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InhyZWYiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ieHJlZi5hdHRsaXN0Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ieHJlZi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmRyZXEuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ4cmVmLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZW5kdGVybSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iSURSRUYiLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYW5jaG9yLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhbmNob3IiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImFuY2hvciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJhbmNob3IuYXR0bGlzdCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFuY2hvci5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImlkcmVxLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icGFnZW51bS5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlbWFwLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ieHJlZmxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmV2aXNpb25mbGFnLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZWZmZWN0aXZpdHkuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhbmNob3Iucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJlZ2lucGFnZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmVnaW5wYWdlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiZWdpbnBhZ2UiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmVnaW5wYWdlLmF0dGxpc3QiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJiZWdpbnBhZ2UuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iYmVnaW5wYWdlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmRleHRlcm0ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluZGV4dGVybSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW5kZXh0ZXJtIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZGV4dGVybS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icHJpbWFyeSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPGdyb3VwPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2Vjb25kYXJ5Ii8+DQorICAgICAgICAgICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGdyb3VwPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGVydGlhcnkiLz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlZSIvPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWVhbHNvIi8+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2dyb3VwPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VlIi8+DQorICAgICAgICAgICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlZWFsc28iLz4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgICAgICAgIDwvZ3JvdXA+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWUiLz4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VlYWxzbyIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXh0ZXJtLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW5kZXh0ZXJtLnJvbGUuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNjb3BlIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5hbGw8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5nbG9iYWw8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5sb2NhbDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJzaWduaWZpY2FuY2UiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPnByZWZlcnJlZDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm5vcm1hbDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2luZ3VsYXI8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zdGFydG9mcmFuZ2U8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5lbmRvZnJhbmdlPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InN0YXJ0cmVmIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJJRFJFRiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iem9uZSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iSURSRUZTIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByaW1zZWN0ZXIucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByaW1hcnkiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InByaW1hcnkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJpbWFyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByaW1hcnkuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwcmltc2VjdGVyLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ic29ydGFzIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2Vjb25kYXJ5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWNvbmRhcnkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2Vjb25kYXJ5LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2Vjb25kYXJ5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icHJpbXNlY3Rlci5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNvcnRhcyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRlcnRpYXJ5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0ZXJ0aWFyeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0ZXJ0aWFyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRlcnRpYXJ5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icHJpbXNlY3Rlci5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNvcnRhcyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZXNlZWFsc28ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VlIj4NCisgICAgICAgICA8cmVmIG5hbWU9InNlZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNlZXNlZWFsc28ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZWFsc28iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNlZWFsc28iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VlYWxzby5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZWFsc28uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWVzZWVhbHNvLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcHBlbmRpeC5jbGFzcyI+DQorICAgICAgPHJlZiBuYW1lPSJhcHBlbmRpeCIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXJ0aWNsZS5jbGFzcyI+DQorICAgICAgPHJlZiBuYW1lPSJhcnRpY2xlIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJib29rLmNsYXNzIj4NCisgICAgICA8cmVmIG5hbWU9ImJvb2siLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNoYXB0ZXIuY2xhc3MiPg0KKyAgICAgIDxyZWYgbmFtZT0iY2hhcHRlciIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXguY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmRleCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2V0aW5kZXgiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmVudHJ5LmNsYXNzIj4NCisgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5Ii8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJuYXYuY2xhc3MiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0b2MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxvdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5kZXgiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Imdsb3NzYXJ5Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9ncmFwaHkiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImRpdmNvbXBvbmVudC5taXgiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaXN0LmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJhZG1vbi5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGluZXNwZWNpZmljLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzeW5vcC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb3JtYWwuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImZvcm1hbC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY29tcG91bmQuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Imdlbm9iai5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZGVzY29iai5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmVnaW5wYWdlIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZjb21wb25lbnQubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGlzdC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYWRtb24uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmVzcGVjaWZpYy5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3lub3AuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJmb3JtYWwuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImNvbXBvdW5kLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJnZW5vYmouY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImRlc2NvYmouY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJlZ2lucGFnZSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXhkaXZjb21wb25lbnQubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaXRlbWl6ZWRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJvcmRlcmVkbGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idmFyaWFibGVsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzaW1wbGVsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJsaW5lc3BlY2lmaWMuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InN5bm9wLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvcm1hbC5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYW5jaG9yIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZW1hcmsiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImxpbmsuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmVnaW5wYWdlIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZuYW1lLmNoYXIubWl4Ij4NCisgICAgICA8cmVmIG5hbWU9InRlY2guY2hhci5jbGFzcyIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFydGNvbnRlbnQubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXBwZW5kaXguY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImNoYXB0ZXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXJ0aWNsZS5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJlZmFjZSIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZmVyZW5jZSIvPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmaW5saW5lLmNoYXIubWl4Ij4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ieHJlZi5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJnZW4uY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ibGluay5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0ZWNoLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImJhc2UuY2hhci5jbGFzcyIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZG9jaW5mby5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJvdGhlci5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgICAgPHJlZiBuYW1lPSJiZWdpbnBhZ2UiLz4NCisgICAgICA8L2Nob2ljZT4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmNsYXNzLmNoYXIubWl4Ij4NCisgICAgICA8cmVmIG5hbWU9ImFwcGxpY2F0aW9uIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJkaXYudGl0bGUuY29udGVudCI+DQorICAgICAgPHJlZiBuYW1lPSJ0aXRsZSIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9InN1YnRpdGxlIi8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZWFiYnJldiIvPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJib29rY29tcG9uZW50LnRpdGxlLmNvbnRlbnQiPg0KKyAgICAgIDxyZWYgbmFtZT0idGl0bGUiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJzdWJ0aXRsZSIvPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGl0bGVhYmJyZXYiLz4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdC50aXRsZS5jb250ZW50Ij4NCisgICAgICA8cmVmIG5hbWU9InRpdGxlIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic3VidGl0bGUiLz4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9InRpdGxlYWJicmV2Ii8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnNlY3QudGl0bGUuY29udGVudCI+DQorICAgICAgPHJlZiBuYW1lPSJ0aXRsZSIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9InN1YnRpdGxlIi8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aXRsZWFiYnJldiIvPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJib29rY29tcG9uZW50LmNvbnRlbnQiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICAgPGdyb3VwPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkaXZjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3QxIi8+DQorICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzaW1wbGVzZWN0Ii8+DQorICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdGlvbiIvPg0KKyAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2dyb3VwPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3QxIi8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5LmNsYXNzIi8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNpbXBsZXNlY3QiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdGlvbiIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2V0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZXQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNldCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZXQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImRpdi50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzZXRpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2MiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJib29rLmNsYXNzIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic2V0aW5kZXgiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNldC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNldC5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImZwaSI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNldGluZm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNldGluZm8iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNldGluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2V0aW5mby5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvQ29udGVudE1vZGVsIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2V0aW5mby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNldGluZm8ucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjb250ZW50cyI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iSURSRUZTIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJvb2sucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJvb2siPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJvb2siPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYm9vay5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZGl2LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImJvb2tpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZGVkaWNhdGlvbiIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJsb3QiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Imdsb3NzYXJ5Ii8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9ncmFwaHkiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InByZWZhY2UiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNoYXB0ZXIuY2xhc3MiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmVyZW5jZSIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFydCIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYXJ0aWNsZS5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYXBwZW5kaXguY2xhc3MiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImluZGV4LmNsYXNzIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjb2xvcGhvbiIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJib29rLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJib29rLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZnBpIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYm9va2luZm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJvb2tpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJib29raW5mbyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJib29raW5mby5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvQ29udGVudE1vZGVsIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYm9va2luZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJib29raW5mby5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNvbnRlbnRzIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJJRFJFRlMiLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGVkaWNhdGlvbi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZGVkaWNhdGlvbiI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iZGVkaWNhdGlvbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJkZWRpY2F0aW9uLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJsZWdhbG5vdGljZS5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJkZWRpY2F0aW9uLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RhdHVzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZGVkaWNhdGlvbi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29sb3Bob24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNvbG9waG9uIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJjb2xvcGhvbiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb2xvcGhvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idGV4dG9iamVjdC5taXgiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb2xvcGhvbi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbG9waG9uLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2Mucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvYyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idG9jIj4NCisgICAgICAgICA8cmVmIG5hbWU9InRvYy5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYm9va2NvbXBvbmVudC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRvY2Zyb250Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2NwYXJ0Ii8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2NjaGFwIi8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jYmFjayIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2MuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idG9jLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2Nmcm9udC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idG9jZnJvbnQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InRvY2Zyb250Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InRvY2Zyb250LmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idG9jZnJvbnQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmQuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idG9jZnJvbnQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2VudHJ5LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NlbnRyeSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idG9jZW50cnkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jZW50cnkuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmEuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NlbnRyeS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmQuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idG9jZW50cnkucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY3BhcnQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY3BhcnQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InRvY3BhcnQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jcGFydC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRvY2VudHJ5Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2NjaGFwIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY3BhcnQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0b2NwYXJ0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NjaGFwLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NjaGFwIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0b2NjaGFwIj4NCisgICAgICAgICA8cmVmIG5hbWU9InRvY2NoYXAuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2NlbnRyeSIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jbGV2ZWwxIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2NoYXAuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InRvY2NoYXAucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2xldmVsMS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idG9jbGV2ZWwxIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0b2NsZXZlbDEiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jbGV2ZWwxLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRvY2xldmVsMiIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NsZXZlbDEuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0b2NsZXZlbDEucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2xldmVsMi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idG9jbGV2ZWwyIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0b2NsZXZlbDIiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jbGV2ZWwyLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRvY2xldmVsMyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NsZXZlbDIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0b2NsZXZlbDIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2xldmVsMy5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idG9jbGV2ZWwzIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0b2NsZXZlbDMiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jbGV2ZWwzLmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRvY2xldmVsNCIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NsZXZlbDMuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0b2NsZXZlbDMucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2xldmVsNC5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idG9jbGV2ZWw0Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0b2NsZXZlbDQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jbGV2ZWw0LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRvY2xldmVsNSIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NsZXZlbDQuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0b2NsZXZlbDQucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2xldmVsNS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idG9jbGV2ZWw1Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0b2NsZXZlbDUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jbGV2ZWw1LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idG9jZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0b2NsZXZlbDUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJ0b2NsZXZlbDUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2JhY2sucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2JhY2siPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InRvY2JhY2siPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idG9jYmFjay5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRvY2JhY2suYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmQuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwYWdlbnVtLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0idG9jYmFjay5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibG90LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJsb3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImxvdCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJsb3QuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImJvb2tjb21wb25lbnQudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJsb3RlbnRyeSIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJsb3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxvdC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ibG90ZW50cnkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxvdGVudHJ5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJsb3RlbnRyeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJsb3RlbnRyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icGFyYS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImxvdGVudHJ5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0icGFnZW51bS5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmQuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJsb3RlbnRyeS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNyY2NyZWRpdCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFwcGVuZGl4LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcHBlbmRpeCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXBwZW5kaXgiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXBwZW5kaXguYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImFwcGVuZGl4aW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJib29rY29tcG9uZW50LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2NjaGFwIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9ImJvb2tjb21wb25lbnQuY29udGVudCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmF2LmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFwcGVuZGl4LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhcHBlbmRpeC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2hhcHRlci5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY2hhcHRlciI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY2hhcHRlciI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjaGFwdGVyLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJjaGFwdGVyaW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJib29rY29tcG9uZW50LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2NjaGFwIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9ImJvb2tjb21wb25lbnQuY29udGVudCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmF2LmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNoYXB0ZXIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNoYXB0ZXIucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcnQucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcnQiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InBhcnQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGFydC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icGFydGluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYm9va2NvbXBvbmVudC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icGFydGludHJvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icGFydGNvbnRlbnQubWl4Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFydC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RhdHVzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icGFydC5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJlZmFjZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJlZmFjZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icHJlZmFjZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJwcmVmYWNlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJwcmVmYWNlaW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJib29rY29tcG9uZW50LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJ0b2NjaGFwIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9ImJvb2tjb21wb25lbnQuY29udGVudCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmF2LmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByZWZhY2UuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwcmVmYWNlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZlcmVuY2Uucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmVyZW5jZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmVmZXJlbmNlIj4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZmVyZW5jZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZXJlbmNlaW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJib29rY29tcG9uZW50LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJ0aW50cm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZlbnRyeS5jbGFzcyIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmVyZW5jZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RhdHVzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmVmZXJlbmNlLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYXJ0aW50cm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcnRpbnRybyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icGFydGludHJvIj4NCisgICAgICAgICA8cmVmIG5hbWU9InBhcnRpbnRyby5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZGl2LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYm9va2NvbXBvbmVudC5jb250ZW50Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icGFydGludHJvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwYXJ0aW50cm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFwcGVuZGl4aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXBwZW5kaXhpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJhcHBlbmRpeGluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYXBwZW5kaXhpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJhcHBlbmRpeGluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhcHBlbmRpeGluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb2dyYXBoeWluZm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb2dyYXBoeWluZm8iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJpYmxpb2dyYXBoeWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYmlibGlvZ3JhcGh5aW5mby5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvQ29udGVudE1vZGVsIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvZ3JhcGh5aW5mby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImJpYmxpb2dyYXBoeWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNoYXB0ZXJpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjaGFwdGVyaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY2hhcHRlcmluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iY2hhcHRlcmluZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb0NvbnRlbnRNb2RlbCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImNoYXB0ZXJpbmZvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY2hhcHRlcmluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzYXJ5aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3NhcnlpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJnbG9zc2FyeWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NhcnlpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc2FyeWluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJnbG9zc2FyeWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluZGV4aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXhpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpbmRleGluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5kZXhpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmRleGluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJpbmRleGluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNldGluZGV4aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2V0aW5kZXhpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZXRpbmRleGluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2V0aW5kZXhpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZXRpbmRleGluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZXRpbmRleGluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcnRpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwYXJ0aW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icGFydGluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icGFydGluZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb0NvbnRlbnRNb2RlbCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InBhcnRpbmZvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icGFydGluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByZWZhY2VpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJwcmVmYWNlaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icHJlZmFjZWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJlZmFjZWluZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb0NvbnRlbnRNb2RlbCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByZWZhY2VpbmZvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icHJlZmFjZWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmVudHJ5aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmZW50cnlpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZlbnRyeWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnlpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZlbnRyeWluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZlbnRyeWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnNlY3QxaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc2VjdDFpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZzZWN0MWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdDFpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZzZWN0MWluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0MWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnNlY3QyaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc2VjdDJpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZzZWN0MmluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdDJpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZzZWN0MmluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0MmluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnNlY3QzaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc2VjdDNpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZzZWN0M2luZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdDNpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZzZWN0M2luZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0M2luZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnN5bm9wc2lzZGl2aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc3lub3BzaXNkaXZpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZzeW5vcHNpc2RpdmluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmc3lub3BzaXNkaXZpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZzeW5vcHNpc2RpdmluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZzeW5vcHNpc2RpdmluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmVyZW5jZWluZm8ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmVyZW5jZWluZm8iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlZmVyZW5jZWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmZXJlbmNlaW5mby5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmZvQ29udGVudE1vZGVsIi8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmZXJlbmNlaW5mby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlZmVyZW5jZWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3QxaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDFpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWN0MWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDFpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0MWluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWN0MWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3QyaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDJpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWN0MmluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDJpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0MmluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWN0MmluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3QzaW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDNpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWN0M2luZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDNpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0M2luZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWN0M2luZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Q0aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDRpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWN0NGluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDRpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0NGluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWN0NGluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Q1aW5mby5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDVpbmZvIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWN0NWluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDVpbmZvLmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9Db250ZW50TW9kZWwiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0NWluZm8uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWN0NWluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Rpb24ucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Rpb24iPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNlY3Rpb24iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdGlvbi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdGlvbmluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJuYXYuY2xhc3MiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8Z3JvdXA+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRpdmNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWN0aW9uIi8+DQorICAgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvZ3JvdXA+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdGlvbiIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmF2LmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Rpb24uYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNlY3Rpb24ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Rpb25pbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0aW9uaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VjdGlvbmluZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdGlvbmluZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5mb0NvbnRlbnRNb2RlbCIvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Rpb25pbmZvLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2VjdGlvbmluZm8ucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3QxLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0MSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VjdDEiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDEuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3QxaW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxncm91cD4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZGl2Y29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZlbnRyeS5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3QyIi8+DQorICAgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2ltcGxlc2VjdCIvPg0KKyAgICAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L2dyb3VwPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5LmNsYXNzIi8+DQorICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3QyIi8+DQorICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNpbXBsZXNlY3QiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0MS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RhdHVzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2VjdDEucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyZW5kZXJhcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDI8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0MzwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3Q0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDU8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0Mi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNlY3QyIj4NCisgICAgICAgICA8cmVmIG5hbWU9InNlY3QyLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWN0MmluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJuYXYuY2xhc3MiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8Z3JvdXA+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRpdmNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWN0MyIvPg0KKyAgICAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNpbXBsZXNlY3QiLz4NCisgICAgICAgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgICAgPC9ncm91cD4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZlbnRyeS5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWN0MyIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzaW1wbGVzZWN0Ii8+DQorICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJuYXYuY2xhc3MiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsYWJlbC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNlY3QyLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icmVuZGVyYXMiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3QxPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDM8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0NDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3Q1PC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDMucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3QzIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWN0MyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWN0My5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDNpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9InNlY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmF2LmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPGdyb3VwPg0KKyAgICAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkaXZjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5LmNsYXNzIi8+DQorICAgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDQiLz4NCisgICAgICAgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzaW1wbGVzZWN0Ii8+DQorICAgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvZ3JvdXA+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDQiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2ltcGxlc2VjdCIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmF2LmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3QzLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWN0My5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJlbmRlcmFzIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0MTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3QyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0NTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Q0LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0NCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VjdDQiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdDQuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3Q0aW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxncm91cD4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZGl2Y29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZlbnRyeS5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3Q1Ii8+DQorICAgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2ltcGxlc2VjdCIvPg0KKyAgICAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L2dyb3VwPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5LmNsYXNzIi8+DQorICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3Q1Ii8+DQorICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNpbXBsZXNlY3QiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0NC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxhYmVsLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RhdHVzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2VjdDQucm9sZS5hdHRyaWIiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyZW5kZXJhcyI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDE8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0MjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3QzPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDU8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWN0NS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VjdDUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNlY3Q1Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InNlY3Q1LmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWN0NWluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2VjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJuYXYuY2xhc3MiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8Z3JvdXA+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRpdmNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzaW1wbGVzZWN0Ii8+DQorICAgICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvZ3JvdXA+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkuY2xhc3MiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2ltcGxlc2VjdCIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibmF2LmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY3Q1LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGFiZWwuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzZWN0NS5yb2xlLmF0dHJpYiIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJlbmRlcmFzIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0MTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNlY3QyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+c2VjdDM8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zZWN0NDwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpbXBsZXNlY3Qucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpbXBsZXNlY3QiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InNpbXBsZXNlY3QiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0ic2ltcGxlc2VjdC5hdHRsaXN0Ii8+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZGl2Y29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNpbXBsZXNlY3QuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJzaW1wbGVzZWN0LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJiaWJsaW9ncmFwaHkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb2dyYXBoeSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmlibGlvZ3JhcGh5Ij4NCisgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb2dyYXBoeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9ncmFwaHlpbmZvIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImJvb2tjb21wb25lbnQudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb2RpdiIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb2VudHJ5Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9taXhlZCIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb2dyYXBoeS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImJpYmxpb2dyYXBoeS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYmlibGlvZGl2LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJiaWJsaW9kaXYiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJpYmxpb2RpdiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9kaXYuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InNlY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb2VudHJ5Ii8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJiaWJsaW9taXhlZCIvPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImJpYmxpb2Rpdi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImJpYmxpb2Rpdi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3Nhcnkucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzYXJ5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJnbG9zc2FyeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJnbG9zc2FyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJnbG9zc2FyeWluZm8iLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYm9va2NvbXBvbmVudC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NkaXYiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZ2xvc3NlbnRyeSIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImJpYmxpb2dyYXBoeSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3NhcnkuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJnbG9zc2FyeS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iZ2xvc3NkaXYucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9Imdsb3NzZGl2Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJnbG9zc2RpdiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJnbG9zc2Rpdi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Imdsb3NzZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJnbG9zc2Rpdi5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9Imdsb3NzZGl2LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmRleGVzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmRleCI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW5kZXgiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iaW5kZXguYXR0bGlzdCIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iaW5kZXhpbmZvIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImJvb2tjb21wb25lbnQudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImluZGV4ZGl2Ii8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImluZGV4ZW50cnkiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmRleC5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImluZGV4ZXMucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNldGluZGV4Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZXRpbmRleCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZXRpbmRleC5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJzZXRpbmRleGluZm8iLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYm9va2NvbXBvbmVudC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iaW5kZXhkaXYiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iaW5kZXhlbnRyeSIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNldGluZGV4LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iaW5kZXhlcy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXhkaXYucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImluZGV4ZGl2Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpbmRleGRpdiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmRleGRpdi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImluZGV4ZGl2Y29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImluZGV4ZW50cnkiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWdtZW50ZWRsaXN0Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXhkaXYuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJpbmRleGRpdi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXhlbnRyeS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXhlbnRyeSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iaW5kZXhlbnRyeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJpbmRleGVudHJ5LmF0dGxpc3QiLz4NCisgICAgICAgICA8cmVmIG5hbWU9InByaW1hcnlpZSIvPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJzZWVpZSIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VlYWxzb2llIi8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ic2Vjb25kYXJ5aWUiLz4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ic2VlaWUiLz4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InNlZWFsc29pZSIvPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGVydGlhcnlpZSIvPg0KKyAgICAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5kZXhlbnRyeS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImluZGV4ZW50cnkucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InByaW1zZWN0ZXJpZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJpbWFyeWllIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJwcmltYXJ5aWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icHJpbWFyeWllLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icHJpbWFyeWllLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGlua2VuZHMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwcmltc2VjdGVyaWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY29uZGFyeWllIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWNvbmRhcnlpZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWNvbmRhcnlpZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlY29uZGFyeWllLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGlua2VuZHMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJwcmltc2VjdGVyaWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRlcnRpYXJ5aWUiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InRlcnRpYXJ5aWUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGVydGlhcnlpZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRlcnRpYXJ5aWUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJsaW5rZW5kcy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InByaW1zZWN0ZXJpZS5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0ic2VlaWUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZWllIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJzZWVpZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJzZWVpZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibmR4dGVybS5jaGFyLm1peCIvPg0KKyAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8L21peGVkPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZWllLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ibGlua2VuZC5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InNlZWllLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJzZWVhbHNvaWUucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZWFsc29pZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VlYWxzb2llIj4NCisgICAgICAgICA8cmVmIG5hbWU9InNlZWFsc29pZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNoYXIubWl4Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InNlZWFsc29pZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImxpbmtlbmRzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0ic2VlYWxzb2llLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZlbnRyeS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmZW50cnkiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlZmVudHJ5Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZmVudHJ5LmF0dGxpc3QiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnlpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZtZXRhIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVtYXJrIi8+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJsaW5rLmNoYXIuY2xhc3MiLz4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZuYW1lZGl2Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmc3lub3BzaXNkaXYiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0MSIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmVudHJ5LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0ic3RhdHVzLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmVmZW50cnkucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZm1ldGEucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZm1ldGEiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlZm1ldGEiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmbWV0YS5hdHRsaXN0Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmZW50cnl0aXRsZSIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im1hbnZvbG51bSIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZtaXNjaW5mbyIvPg0KKyAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9Im5keHRlcm0uY2xhc3MiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmbWV0YS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlZm1ldGEucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZm1pc2NpbmZvLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZtaXNjaW5mbyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmVmbWlzY2luZm8iPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmbWlzY2luZm8uYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRvY2luZm8uY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZtaXNjaW5mby5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlZm1pc2NpbmZvLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9InN0cmluZyIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZuYW1lZGl2LnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZuYW1lZGl2Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZuYW1lZGl2Ij4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZm5hbWVkaXYuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmRlc2NyaXB0b3IiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZuYW1lIi8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZwdXJwb3NlIi8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlbWFyayIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibGluay5jaGFyLmNsYXNzIi8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZm5hbWVkaXYuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZuYW1lZGl2LnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZkZXNjcmlwdG9yLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZkZXNjcmlwdG9yIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZkZXNjcmlwdG9yIj4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZmRlc2NyaXB0b3IuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZm5hbWUuY2hhci5taXgiLz4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZkZXNjcmlwdG9yLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmVmZGVzY3JpcHRvci5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmbmFtZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmbmFtZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmVmbmFtZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZuYW1lLmF0dGxpc3QiLz4NCisgICAgICAgICA8bWl4ZWQ+DQorICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZuYW1lLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmbmFtZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlZm5hbWUucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnB1cnBvc2Uucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnB1cnBvc2UiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlZnB1cnBvc2UiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmcHVycG9zZS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmaW5saW5lLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmcHVycG9zZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlZnB1cnBvc2Uucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZmNsYXNzLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZjbGFzcyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmVmY2xhc3MiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmY2xhc3MuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxtaXhlZD4NCisgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmNsYXNzLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDwvbWl4ZWQ+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmY2xhc3MuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZjbGFzcy5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc3lub3BzaXNkaXYucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnN5bm9wc2lzZGl2Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZzeW5vcHNpc2RpdiI+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZzeW5vcHNpc2Rpdi5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmc3lub3BzaXNkaXZpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPGdyb3VwPg0KKyAgICAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0MiIvPg0KKyAgICAgICAgICAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICAgICAgICA8L2dyb3VwPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0MiIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnN5bm9wc2lzZGl2LmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29tbW9uLmF0dHJpYiIvPg0KKyAgICAgIDxyZWYgbmFtZT0icmVmc3lub3BzaXNkaXYucm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnNlY3QxLnJvbGUuYXR0cmliIj4NCisgICAgICA8cmVmIG5hbWU9InJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZzZWN0MSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmVmc2VjdDEiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdDEuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InJlZnNlY3QxaW5mbyIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxncm91cD4NCisgICAgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmY29tcG9uZW50Lm1peCIvPg0KKyAgICAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdDIiLz4NCisgICAgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgICAgPC9ncm91cD4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdDIiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICA8L2Nob2ljZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZzZWN0MS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InN0YXR1cy5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9ImNvbW1vbi5hdHRyaWIiLz4NCisgICAgICA8cmVmIG5hbWU9InJlZnNlY3QxLnJvbGUuYXR0cmliIi8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyZWZzZWN0Mi5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc2VjdDIiPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlZnNlY3QyIj4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZnNlY3QyLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0MmluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdC50aXRsZS5jb250ZW50Ii8+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICA8Z3JvdXA+DQorICAgICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZmNvbXBvbmVudC5taXgiLz4NCisgICAgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZnNlY3QzIi8+DQorICAgICAgICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDwvZ3JvdXA+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InJlZnNlY3QzIi8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc2VjdDIuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0Mi5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc2VjdDMucm9sZS5hdHRyaWIiPg0KKyAgICAgIDxyZWYgbmFtZT0icm9sZS5hdHRyaWIiLz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJlZnNlY3QzIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWZzZWN0MyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0My5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icmVmc2VjdDNpbmZvIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8cmVmIG5hbWU9InJlZnNlY3QudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyZWZjb21wb25lbnQubWl4Ii8+DQorICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icmVmc2VjdDMuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJyZWZzZWN0My5yb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXJ0aWNsZS5yb2xlLmF0dHJpYiI+DQorICAgICAgPHJlZiBuYW1lPSJyb2xlLmF0dHJpYiIvPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iYXJ0aWNsZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYXJ0aWNsZSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJhcnRpY2xlLmF0dGxpc3QiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJkaXYudGl0bGUuY29udGVudCIvPg0KKyAgICAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYXJ0aWNsZWluZm8iLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InRvY2NoYXAiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0ibG90Ii8+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iYm9va2NvbXBvbmVudC5jb250ZW50Ii8+DQorICAgICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Im5hdi5jbGFzcyIvPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYXBwZW5kaXguY2xhc3MiLz4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFja25vIi8+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImFydGljbGUuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJzdGF0dXMuYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJjb21tb24uYXR0cmliIi8+DQorICAgICAgPHJlZiBuYW1lPSJhcnRpY2xlLnJvbGUuYXR0cmliIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPmpvdXJuYWxhcnRpY2xlPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+cHJvZHVjdHNoZWV0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+d2hpdGVwYXBlcjwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnRlY2hyZXBvcnQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zcGVjaWZpY2F0aW9uPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+ZmFxPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InBhcmVudGJvb2siPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9IklEUkVGIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRhYmxlLmF0dCI+DQorICAgICAgPGVtcHR5Lz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRncm91cC5hdHQiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb2xzcGVjLmF0dCI+DQorICAgICAgPGVtcHR5Lz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRoZWFkLmF0dCI+DQorICAgICAgPGVtcHR5Lz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRib2R5LmF0dCI+DQorICAgICAgPGVtcHR5Lz4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InJvdy5hdHQiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlbnRyeS5hdHQiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0YWJsZSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idGFibGUiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGFibGUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxyZWYgbmFtZT0iZm9ybWFsb2JqZWN0LnRpdGxlLmNvbnRlbnQiLz4NCisgICAgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJuZHh0ZXJtLmNsYXNzIi8+DQorICAgICAgICAgPC9vcHRpb25hbD4NCisgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJncmFwaGljIi8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9Im1lZGlhb2JqZWN0Ii8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9InRncm91cCIvPg0KKyAgICAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRhYmxlLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0idGFibGUuYXR0Ii8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZnJhbWUiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPnRvcDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmJvdHRvbTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnRvcGJvdDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmFsbDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnNpZGVzPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bm9uZTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjb2xzZXAiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPjA8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4xPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InJvd3NlcCI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPjE8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJpbmZvcm1hbHRhYmxlIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJpbmZvcm1hbHRhYmxlIj4NCisgICAgICAgICA8cmVmIG5hbWU9ImluZm9ybWFsdGFibGUuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImdyYXBoaWMiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ibWVkaWFvYmplY3QiLz4NCisgICAgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxyZWYgbmFtZT0idGdyb3VwIi8+DQorICAgICAgICAgICAgPC9vbmVPck1vcmU+DQorICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iaW5mb3JtYWx0YWJsZS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InRhYmxlLmF0dCIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImZyYW1lIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT50b3A8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5ib3R0b208L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT50b3Bib3Q8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5hbGw8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5zaWRlczwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm5vbmU8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY29sc2VwIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyb3dzZXAiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPjA8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4xPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0idGdyb3VwIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0Z3JvdXAiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGdyb3VwLmF0dGxpc3QiLz4NCisgICAgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbHNwZWMiLz4NCisgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0idGhlYWQiLz4NCisgICAgICAgICA8L29wdGlvbmFsPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGJvZHkiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0Z3JvdXAuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJ0Z3JvdXAuYXR0Ii8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjb2xzIj4NCisgICAgICAgICA8ZGF0YSB0eXBlPSJpbnRlZ2VyIi8+DQorICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY29sc2VwIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyb3dzZXAiPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPjA8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4xPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImFsaWduIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5sZWZ0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+cmlnaHQ8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5jZW50ZXI8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5qdXN0aWZ5PC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0iY29sc3BlYyI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iY29sc3BlYyI+DQorICAgICAgICAgPHJlZiBuYW1lPSJjb2xzcGVjLmF0dGxpc3QiLz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJjb2xzcGVjLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0iY29sc3BlYy5hdHQiLz4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjb2xudW0iPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9ImludGVnZXIiLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNvbG5hbWUiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9Ik5NVE9LRU4iLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNvbHdpZHRoIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNvbHNlcCI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPjE8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icm93c2VwIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhbGlnbiI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bGVmdDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnJpZ2h0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y2VudGVyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+anVzdGlmeTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNoYXI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2hhciI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjaGFyb2ZmIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJOTVRPS0VOIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRoZWFkIj4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ0aGVhZCI+DQorICAgICAgICAgPHJlZiBuYW1lPSJ0aGVhZC5hdHRsaXN0Ii8+DQorICAgICAgICAgPG9uZU9yTW9yZT4NCisgICAgICAgICAgICA8cmVmIG5hbWU9InJvdyIvPg0KKyAgICAgICAgIDwvb25lT3JNb3JlPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9InRoZWFkLmF0dGxpc3QiPg0KKyAgICAgIDxyZWYgbmFtZT0idGhlYWQuYXR0Ii8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idmFsaWduIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT50b3A8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5taWRkbGU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT5ib3R0b208L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0Ym9keSI+DQorICAgICAgPGVsZW1lbnQgbmFtZT0idGJvZHkiPg0KKyAgICAgICAgIDxyZWYgbmFtZT0idGJvZHkuYXR0bGlzdCIvPg0KKyAgICAgICAgIDxvbmVPck1vcmU+DQorICAgICAgICAgICAgPHJlZiBuYW1lPSJyb3ciLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJ0Ym9keS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9InRib2R5LmF0dCIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InZhbGlnbiI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+dG9wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bWlkZGxlPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Ym90dG9tPC92YWx1ZT4NCisgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgIDwvZGVmaW5lPg0KKyAgIDxkZWZpbmUgbmFtZT0icm93Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJyb3ciPg0KKyAgICAgICAgIDxyZWYgbmFtZT0icm93LmF0dGxpc3QiLz4NCisgICAgICAgICA8b25lT3JNb3JlPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZW50cnkiLz4NCisgICAgICAgICA8L29uZU9yTW9yZT4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJyb3cuYXR0bGlzdCI+DQorICAgICAgPHJlZiBuYW1lPSJyb3cuYXR0Ii8+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icm93c2VwIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ2YWxpZ24iPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPnRvcDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm1pZGRsZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmJvdHRvbTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCisgICA8ZGVmaW5lIG5hbWU9ImVudHJ5Ij4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJlbnRyeSI+DQorICAgICAgICAgPHJlZiBuYW1lPSJlbnRyeS5hdHRsaXN0Ii8+DQorICAgICAgICAgPG1peGVkPg0KKyAgICAgICAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXJhLmNoYXIubWl4Ii8+DQorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ0YWJlbnRyeS5taXgiLz4NCisgICAgICAgICAgICAgICA8L2Nob2ljZT4NCisgICAgICAgICAgICA8L3plcm9Pck1vcmU+DQorICAgICAgICAgPC9taXhlZD4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgPC9kZWZpbmU+DQorICAgPGRlZmluZSBuYW1lPSJlbnRyeS5hdHRsaXN0Ij4NCisgICAgICA8cmVmIG5hbWU9ImVudHJ5LmF0dCIvPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNvbG5hbWUiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9Ik5NVE9LRU4iLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWVzdCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZWVuZCI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiIvPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibW9yZXJvd3MiPg0KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9ImludGVnZXIiLz4NCisgICAgICAgICA8L2F0dHJpYnV0ZT4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDxvcHRpb25hbD4NCisgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNvbHNlcCI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPjE8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icm93c2VwIj4NCisgICAgICAgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgICAgICAgIDx2YWx1ZT4wPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+MTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhbGlnbiI+DQorICAgICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+bGVmdDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPnJpZ2h0PC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+Y2VudGVyPC92YWx1ZT4NCisgICAgICAgICAgICAgICA8dmFsdWU+anVzdGlmeTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmNoYXI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICAgIDwvYXR0cmlidXRlPg0KKyAgICAgIDwvb3B0aW9uYWw+DQorICAgICAgPG9wdGlvbmFsPg0KKyAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2hhciI+DQorICAgICAgICAgICAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjaGFyb2ZmIj4NCisgICAgICAgICAgICA8ZGF0YSB0eXBlPSJOTVRPS0VOIi8+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ2YWxpZ24iPg0KKyAgICAgICAgICAgIDxjaG9pY2U+DQorICAgICAgICAgICAgICAgPHZhbHVlPnRvcDwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPm1pZGRsZTwvdmFsdWU+DQorICAgICAgICAgICAgICAgPHZhbHVlPmJvdHRvbTwvdmFsdWU+DQorICAgICAgICAgICAgPC9jaG9pY2U+DQorICAgICAgICAgPC9hdHRyaWJ1dGU+DQorICAgICAgPC9vcHRpb25hbD4NCisgICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZG9jYm9va18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2RvY2Jvb2tfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRlMDUxZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2RvY2Jvb2tfMC54bWwKQEAgLTAsMCArMSw0NDQ4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBhcnRpY2xlIFsKKzwhRU5USVRZIHZlcnNpb24gIjEuMC41MyI+Cis8IUVOVElUWSBtZGFzaCAgIi0tIj4KKzwhRU5USVRZIGhlbGxpcCAiLi4uIj4KKzwhRU5USVRZIGNvcHkgICAgICAgIiYjeDAwQTk7Ij4gPCEtLSBDT1BZUklHSFQgU0lHTiAtLT4KKyAgICAgICAgPCEtLSByZXBsYWNlIHZlcnNpb24gYWJvdmUgd2l0aCBhY3R1YWwgYXBwbGljYXRpb24gdmVyc2lvbiBudW1iZXItLT4KKwk8IS0tICBUZW1wbGF0ZSBWZXJzaW9uOiAxLjAuMSAgKGRvIG5vdCByZW1vdmUgdGhpcyBsaW5lKSAtLT4KKworCisKKzwhRU5USVRZIEFQUExFVC1URU1QTEFURS0xeC1TSEVMTCBTWVNURU0KKyJ0ZW1wbGF0ZXMvYXBwbGV0X3RlbXBsYXRlXzEtYXBwbGV0LnNnbWwuY2RhdGEiPgorPCFFTlRJVFkgQVBQTEVULVRFTVBMQVRFLTF4IFNZU1RFTQorInRlbXBsYXRlcy9hcHBsZXRfdGVtcGxhdGVfMS5zZ21sLmNkYXRhIj4KK10+CisKKzwhLS0gIFZlcnNpb246IDEuMC4xICAtLT4KKworPGFydGljbGUgaWQ9ImluZGV4Ij4KKyAgPGFydGljbGVpbmZvPgorCisgICAgPGF1dGhvcmdyb3VwPgorCisgICAgICA8YXV0aG9yPgorICAgICAgICA8Zmlyc3RuYW1lPkRhdmlkPC9maXJzdG5hbWU+CisgICAgICAgIDxzdXJuYW1lPk1hc29uPC9zdXJuYW1lPgorICAgICAgICA8YWZmaWxpYXRpb24+CisgICAgICAgICAgPG9yZ25hbWU+UmVkIEhhdCwgSW5jLjwvb3JnbmFtZT4KKyAgICAgICAgICA8YWRkcmVzcz4KKyAgICAgICAgICAgIDxlbWFpbD5kY21AcmVkaGF0LmNvbTwvZW1haWw+CisgICAgICAgICAgPC9hZGRyZXNzPgorICAgICAgICA8L2FmZmlsaWF0aW9uPgorICAgICAgPC9hdXRob3I+CisKKyAgICAgIDxhdXRob3I+CisgICAgICAgIDxmaXJzdG5hbWU+RGFuaWVsPC9maXJzdG5hbWU+CisgICAgICAgIDxzdXJuYW1lPk11ZXRoPC9zdXJuYW1lPgorICAgICAgICA8YWZmaWxpYXRpb24+CisgICAgICAgICAgPGFkZHJlc3M+CisgICAgICAgICAgICA8ZW1haWw+ZC1tdWV0aEB1Y2hpY2Fnby5lZHU8L2VtYWlsPgorICAgICAgICAgIDwvYWRkcmVzcz4KKyAgICAgICAgPC9hZmZpbGlhdGlvbj4KKyAgICAgIDwvYXV0aG9yPgorCisgICAgICA8YXV0aG9yPgorICAgICAgICA8Zmlyc3RuYW1lPkFsZXhhbmRlcjwvZmlyc3RuYW1lPgorICAgICAgICA8c3VybmFtZT5LaXJpbGxvdjwvc3VybmFtZT4KKyAgICAgICAgPGFmZmlsaWF0aW9uPgorICAgICAgICAgIDxhZGRyZXNzPgorICAgICAgICAgICAgPGVtYWlsPmtpcmlsbG92QG1hdGguc3VueXNiLmVkdTwvZW1haWw+CisgICAgICAgICAgPC9hZGRyZXNzPgorICAgICAgICA8L2FmZmlsaWF0aW9uPgorICAgICAgPC9hdXRob3I+CisKKyAgICA8L2F1dGhvcmdyb3VwPgorCisgICAgPHJlbGVhc2VpbmZvPgorICAgICAgVGhpcyBpcyBhIHByZS1yZWxlYXNlIQorICAgIDwvcmVsZWFzZWluZm8+CisgICAgCisgICAgPHJldmhpc3Rvcnk+CisgICAgICA8cmV2aXNpb24+CisgICAgICAgIDxyZXZudW1iZXI+CisgICAgICAgICAgMC45OQorICAgICAgICA8L3Jldm51bWJlcj4KKyAgICAgICAgPGRhdGU+CisgICAgICAgICAwNC4xMC4yMDAwCisgICAgICAgIDwvZGF0ZT4KKyAgICAgIDwvcmV2aXNpb24+CisgICAgPC9yZXZoaXN0b3J5PgorICAgIAorICAgIDxjb3B5cmlnaHQ+CisgICAgICA8eWVhcj4yMDAwPC95ZWFyPgorICAgICAgPGhvbGRlcj5SZWQgSGF0LCBJbmMuLCBEYW5pZWwgTXVldGgsIGFuZCBBbGV4YW5kZXIgS2lyaWxsb3Y8L2hvbGRlcj4KKyAgICA8L2NvcHlyaWdodD4KKworICAgIDxsZWdhbG5vdGljZT4KKyAgICAgPHBhcmE+CisgICAgICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKKyAgICAgIGRvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgRnJlZSBEb2N1bWVudGF0aW9uCisgICAgICBMaWNlbnNlPC9jaXRldGl0bGU+LCBWZXJzaW9uIDEuMSBvciBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQKKyAgICAgIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gd2l0aCBubyBJbnZhcmlhbnQgU2VjdGlvbnMsIG5vCisgICAgICBGcm9udC1Db3ZlciBUZXh0cywgYW5kIG5vIEJhY2stQ292ZXIgVGV4dHMuIFlvdSBtYXkgb2J0YWluIGEgY29weQorICAgICAgb2YgdGhlIDxjaXRldGl0bGU+R05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlPC9jaXRldGl0bGU+IGZyb20KKyAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gYnkgdmlzaXRpbmcgPHVsaW5rIHR5cGU9Imh0dHAiCisgICAgICB1cmw9Imh0dHA6Ly93d3cuZnNmLm9yZyI+dGhlaXIgV2ViIHNpdGU8L3VsaW5rPiBvciBieSB3cml0aW5nIHRvOgorICAgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIE1hbnkgb2YgdGhlIG5hbWVzIHVzZWQgYnkgY29tcGFuaWVzIHRvIGRpc3Rpbmd1aXNoIHRoZWlyIHByb2R1Y3RzIGFuZAorICAgICAgc2VydmljZXMgYXJlIGNsYWltZWQgYXMgdHJhZGVtYXJrcy4gV2hlcmUgdGhvc2UgbmFtZXMgYXBwZWFyIGluIGFueQorICAgICAgR05PTUUgZG9jdW1lbnRhdGlvbiwgYW5kIHRob3NlIHRyYWRlbWFya3MgYXJlIG1hZGUgYXdhcmUgdG8gdGhlIG1lbWJlcnMKKyAgICAgIG9mIHRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFByb2plY3QsIHRoZSBuYW1lcyBoYXZlIGJlZW4gcHJpbnRlZCBpbiBjYXBzCisgICAgICBvciBpbml0aWFsIGNhcHMuCisgICAgIDwvcGFyYT4KKyAgICA8L2xlZ2Fsbm90aWNlPgorCisgICAgPHRpdGxlPlRoZSBHTk9NRSBIYW5kYm9vayBvZiBXcml0aW5nIFNvZnR3YXJlIERvY3VtZW50YXRpb248L3RpdGxlPgorCisgIDwvYXJ0aWNsZWluZm8+CisgIAorICA8IS0tICMjIyMjIyMjIyMjIyMjIyMjIEludHJvZHVjdGlvbiAjIyMjIyMjIyMjIyMjIyMgLS0+CisKKyAgPHNlY3QxIGlkPSJpbnRybyI+CisgICAgPHRpdGxlPkludHJvZHVjdGlvbjwvdGl0bGU+CisKKyAgICA8IS0tICMjIyMjIyMgSW50cm9kdWN0aW9uIHwgVGhlIEdOT01FIERvY3VtZW50YXRpb24gUHJvamVjdCAjIyMjIyMjIC0tPgorCisgICAgPHNlY3QyIGlkPSJnZHAiPgorICAgICAgPHRpdGxlPlRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFByb2plY3Q8L3RpdGxlPgorCisgICAgICA8c2VjdDMgaWQ9ImdvYWxzIj4KKyAgICAgICAgPHRpdGxlPkdvYWxzPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIEdOT01FIERvY3VtZW50YXRpb24gUHJvamVjdCAoR0RQKSBhaW1zIHRvIHByb3ZpZGUgR05PTUUKKyAgICAgICAgICBhbmQgR05PTUUgYXBwbGljYXRpb25zIHdpdGggYSBjb21wbGV0ZSwgaW50dWl0aXZlLCBhbmQgY2xlYXIKKyAgICAgICAgICBkb2N1bWVudGF0aW9uIHN5c3RlbS4gIEF0IHRoZSBjZW50ZXIgb2YgdGhlIEdEUCBpcyB0aGUKKyAgICAgICAgICA8YXBwbGljYXRpb24+R05PTUUgSGVscCBCcm93c2VyPC9hcHBsaWNhdGlvbj4sIHdoaWNoCisgICAgICAgICAgcHJlc2VudHMgYSB1bmlmaWVkIGludGVyZmFjZSB0byBHTk9NRS1zcGVjaWZpYyBkb2N1bWVudGF0aW9uCisgICAgICAgICAgYXMgd2VsbCBhcyBvdGhlciBMaW51eCBkb2N1bWVudGF0aW9uIHN1Y2ggYXMgbWFuIHBhZ2VzIGFuZAorICAgICAgICAgIHRleGluZm8gZG9jdW1lbnRzLiBUaGUgR05PTUUgSGVscCBTeXN0ZW0gcHJvdmlkZXMgYQorICAgICAgICAgIGNvbXByZWhlbnNpdmUgdmlldyBvZiBkb2N1bWVudGF0aW9uIG9uIGEgbWFjaGluZSBieQorICAgICAgICAgIGR5bmFtaWNhbGx5IGFzc2VtYmxpbmcgdGhlIGRvY3VtZW50YXRpb24gb2YgR05PTUUKKyAgICAgICAgICBhcHBsaWNhdGlvbnMgYW5kIGNvbXBvbmVudHMgd2hpY2ggYXJlIGluc3RhbGxlZC4gVGhlIEdEUCBpcworICAgICAgICAgIHJlc3BvbnNpYmxlIGZvciB3cml0aW5nIG51bWVyb3VzIEdOT01FLXJlbGF0ZWQgZG9jdW1lbnRzLAorICAgICAgICAgIGJvdGggZm9yIGRldmVsb3BlcnMgYW5kIGZvciB1c2Vycy4gIERldmVsb3BlciBkb2N1bWVudGF0aW9uCisgICAgICAgICAgaW5jbHVkZXMgPHVsaW5rIHVybD0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcvZG9jL0FQSS8iCisgICAgICAgICAgdHlwZT0iaHR0cCI+QVBJcyBmb3IgdGhlIEdOT01FIGxpYnJhcmllczwvdWxpbms+LCA8dWxpbmsKKyAgICAgICAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2RvYy93aGl0ZXBhcGVycy8iCisgICAgICAgICAgdHlwZT0iaHR0cCI+PGNpdGV0aXRsZT5HTk9NRSBXaGl0ZQorICAgICAgICAgIFBhcGVyczwvY2l0ZXRpdGxlPjwvdWxpbms+LCBHTk9NRSBkZXZlbG9wZXIgPHVsaW5rCisgICAgICAgICAgdXJsPSJodHRwOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9kb2MvdHV0b3JpYWxzLyIKKyAgICAgICAgICB0eXBlPSJodHRwIj50dXRvcmlhbHM8L3VsaW5rPiwgdGhlIDx1bGluaworICAgICAgICAgIHVybD0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcvZG9jL0ZBUS8iCisgICAgICAgICAgdHlwZT0iaHR0cCI+PGNpdGV0aXRsZT5HTk9NRSBEZXZlbG9wZXIKKyAgICAgICAgICBGQVE8L2NpdGV0aXRsZT48L3VsaW5rPiwgdGhlIDx1bGluaworICAgICAgICAgIHVybD0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmciIHR5cGU9Imh0dHAiPkdOT01FCisgICAgICAgICAgRGV2ZWxvcGVyJ3MgV2Vic2l0ZTwvdWxpbms+LCBhbmQgPGNpdGV0aXRsZT5HTk9NRQorICAgICAgICAgIEhhbmRib29rPC9jaXRldGl0bGU+J3MsIHN1Y2ggYXMgdGhlIG9uZSB5b3UgYXJlIHJlYWRpbmcuCisgICAgICAgICAgVXNlciBkb2N1bWVudGF0aW9uIGluY2x1ZGUgdGhlIDx1bGluaworICAgICAgICAgIHVybD0iaHR0cDovL3d3dy5nbm9tZS5vcmcvbGVhcm4vIgorICAgICAgICAgIHR5cGU9Imh0dHAiPjxjaXRldGl0bGU+R05PTUUgVXNlcidzCisgICAgICAgICAgR3VpZGU8L2NpdGV0aXRsZT48L3VsaW5rPiwgdGhlIDx1bGluaworICAgICAgICAgIHVybD0iaHR0cDovL3d3dy5nbm9tZS5vcmcvbGVhcm4vIgorICAgICAgICAgIHR5cGU9Imh0dHAiPjxjaXRldGl0bGU+R05PTUUgRkFRPC9jaXRldGl0bGU+PC91bGluaz4sIGFuZAorICAgICAgICAgIEdOT01FIGFwcGxpY2F0aW9uIGRvY3VtZW50YXRpb24uICBNb3N0IEdOT01FIGFwcGxpY2F0aW9ucworICAgICAgICAgIGhhdmUgdGhlaXIgb3duIG1hbnVhbCBpbiBhZGRpdGlvbiB0byBjb250ZXh0IHNlbnNpdGl2ZSBoZWxwLgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgICA8c2VjdDMgaWQ9ImpvaW5pbmciPgorICAgICAgIDx0aXRsZT5Kb2luaW5nIHRoZSBHRFA8L3RpdGxlPgorICAgICAgIDxwYXJhPgorICAgICAgICAgRG9jdW1lbnRpbmcgR05PTUUgYW5kIGFsbCB0aGUgbnVtZXJvdXMgR05PTUUgYXBwbGljYXRpb25zIGlzCisgICAgICAgICBhIHZlcnkgbGFyZ2UgcHJvamVjdC4gIFRoZSBHRFAgaXMgYWx3YXlzIGxvb2tpbmcgZm9yIHBlb3BsZQorICAgICAgICAgdG8gaGVscCB3cml0ZSwgdXBkYXRlLCBhbmQgZWRpdCBkb2N1bWVudGF0aW9uLiAgSWYgeW91IGFyZQorICAgICAgICAgaW50ZXJlc3RlZCBpbiBqb2luaW5nIHRoZSBHRFAgdGVhbSwgeW91IHNob3VsZCBqb2luIHRoZQorICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL21haWwuZ25vbWUub3JnL21haWxtYW4vbGlzdGluZm8vZ25vbWUtZG9jLWxpc3QvIj4KKyAgICAgICAgIDxjaXRldGl0bGU+Z25vbWUtZG9jLWxpc3QgbWFpbGluZyBsaXN0PC9jaXRldGl0bGU+IDwvdWxpbms+LgorICAgICAgICAgUmVhZCA8eHJlZiBsaW5rZW5kPSJnZXR0aW5nc3RhcnRlZCIgLz4sIGZvciBoZWxwIHNlbGVjdGluZyBhCisgICAgICAgICBwcm9qZWN0IHRvIHdvcmsgb24uICBGZWVsIGZyZWUgdG8gaW50cm9kdWNlIHlvdXJzZWxmIG9uIHRoZQorICAgICAgICAgZ25vbWUtZG9jLWxpc3QgbWFpbGluZyBsaXN0IGFuZCBpbmRpY2F0ZSB3aGljaCBwcm9qZWN0IHlvdQorICAgICAgICAgaW50ZW5kIHRvIHdvcmsgb24sIG9yIGVsc2UgYXNrIGZvciBzdWdnZXN0aW9ucyBvZiBpbXBvcnRhbnQKKyAgICAgICAgIGRvY3VtZW50cyB3aGljaCBuZWVkIHdvcmsgZG9uZS4gWW91IG1heSBhbHNvIHdhbnQgdG8gam9pbiB0aGUKKyAgICAgICAgICNkb2NzIElSQyBjaGFubmVsIG9uIGlyYy5nbm9tZS5vcmcgdG8gbWVldCBvdGhlciBHRFAgbWVtYmVycworICAgICAgICAgYW5kIGRpc2N1c3MgYW55IHF1ZXN0aW9ucyB5b3UgbWF5IGhhdmUuICBGb3IgYSBsaXN0IG9mIEdEUAorICAgICAgICAgcHJvamVjdHMgYW5kIG1lbWJlcnMsIHNlZSB0aGUKKyAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL3Byb2plY3RzL2dkcCI+CisgICAgICAgICAgIDxjaXRldGl0bGU+R0RQIFdlYnNpdGU8L2NpdGV0aXRsZT48L3VsaW5rPi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgICA8c2VjdDMgaWQ9ImNvbGxhYm9yYXRpbmciPgorICAgICAgIDx0aXRsZT5Db2xsYWJvcmF0aW5nIHdpdGggdGhlIEdEUDwvdGl0bGU+CisgICAgICAgPHBhcmE+CisgICAgICAgIEdOT01FIGRldmVsb3BlcnMsIHBhY2thZ2VycywgYW5kIHRyYW5zbGF0b3JzIG1heSBub3QgYmUKKyAgICAgICAgd3JpdGluZyBHTk9NRSBkb2N1bWVudGF0aW9uIGJ1dCB3aWxsIHdhbnQgdG8gdW5kZXJzdGFuZCBob3cKKyAgICAgICAgdGhlIEdOT01FIGRvY3VtZW50YXRpb24gc3lzdGVtIHdvcmtzIGFuZCB3aWxsIG5lZWQgdG8KKyAgICAgICAgY29sbGFib3JhdGUgd2l0aCBHRFAgbWVtYmVycy4gIFRoaXMgZG9jdW1lbnQgc2hvdWxkIGhlbHAgdG8KKyAgICAgICAgb3V0bGluZSB0aGUgc3RydWN0dXJlIG9mIGhvdyB0aGUgR05PTUUgZG9jdW1lbnRhdGlvbiBzeXN0ZW0KKyAgICAgICAgd29ya3MuICBEZXZlbG9wZXJzIHdobyBkbyBub3Qgd3JpdGUgdGhlIGRvY3VtZW50YXRpb24gZm9yCisgICAgICAgIHRoZWlyIGFwcGxpY2F0aW9ucyBhcmUgZW5jb3VyYWdlZCB0byBmaW5kIGEgR0RQIG1lbWJlciB0bworICAgICAgICB3cml0ZSB0aGUgZG9jdW1lbnRhdGlvbi4gIFRoaXMgaXMgYmVzdCBkb25lIGJ5IHNlbmRpbmcgYW4KKyAgICAgICAgZW1haWwgdG8gdGhlIDx1bGluaworICAgICAgICB1cmw9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dub21lLWRvYy1saXN0LyI+CisgICAgICAgIDxjaXRldGl0bGU+Z25vbWUtZG9jLWxpc3QgbWFpbGluZyBsaXN0PC9jaXRldGl0bGU+IDwvdWxpbms+CisgICAgICAgIGRlc2NyaWJpbmcgdGhlIGFwcGxpY2F0aW9uLCB3aGVyZSBpdCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tLAorICAgICAgICBhbmQgdGhhdCB0aGUgZGV2ZWxvcGVyKHMpIHdvdWxkIGxpa2UgYSBHRFAgbWVtYmVyIHRvIHdyaXRlCisgICAgICAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBhcHBsaWNhdGlvbi4gVGhlICNkb2NzIElSQyBjaGFubmVsIG9uCisgICAgICAgIGlyYy5nbm9tZS5vcmcgaXMgYW5vdGhlciBvcHRpb24gZm9yIGNvbnRhY3RpbmcgR0RQIG1lbWJlcnMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9zZWN0Mz4KKyAgICA8L3NlY3QyPgorCisgICAgPCEtLSAjIyMjIyMjIEludHJvZHVjdGlvbiB8IE5vdGF0aW9uIGFuZCBDb252ZW50aW9ucyAgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0ibm90YXRpb24iPgorICAgICAgPHRpdGxlPk5vdGF0aW9uIGFuZCBDb252ZW50aW9uczwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBIYW5kYm9vayB1c2VzIHRoZSBmb2xsb3dpbmcgbm90YXRpb246CisgICAgICAgIDxpbmZvcm1hbHRhYmxlIGZyYW1lPSJub25lIj4KKyAgICAgICAgICA8dGdyb3VwIGNvbHM9IjIiPgorICAgICAgICAgICAgPHRib2R5PgorICAgICAgICAgICAgICA8cm93PgorICAgICAgICAgICAgICAgIDxlbnRyeT4KKyAgICAgICAgICAgICAgICAgIDxmaWxlbmFtZSBjbGFzcz0iZGlyZWN0b3J5Ij4vdXNyL2JpbjwvZmlsZW5hbWU+CisgICAgICAgICAgICAgICAgPC9lbnRyeT4KKyAgICAgICAgICAgICAgICA8ZW50cnk+CisgICAgICAgICAgICAgICAgICBEaXJlY3RvcnkKKyAgICAgICAgICAgICAgICA8L2VudHJ5PgorICAgICAgICAgICAgICA8L3Jvdz4KKyAgICAgICAgICAgICAgPHJvdz4KKyAgICAgICAgICAgICAgICA8ZW50cnk+CisgICAgICAgICAgICAgICAgICA8ZmlsZW5hbWU+Zm9vLnNnbWw8L2ZpbGVuYW1lPgorICAgICAgICAgICAgICAgIDwvZW50cnk+CisgICAgICAgICAgICAgICAgPGVudHJ5PgorICAgICAgICAgICAgICAgICAgRmlsZW5hbWUKKyAgICAgICAgICAgICAgICA8L2VudHJ5PgorICAgICAgICAgICAgICA8L3Jvdz4KKyAgICAgICAgICAgICAgPHJvdz4KKyAgICAgICAgICAgICAgICA8ZW50cnk+CisgICAgICAgICAgICAgICAgICA8Y29tbWFuZD5jb21tYW5kPC9jb21tYW5kPgorICAgICAgICAgICAgICAgIDwvZW50cnk+CisgICAgICAgICAgICAgICAgPGVudHJ5PgorICAgICAgICAgICAgICAgICAgQ29tbWFuZCBvciB0ZXh0IHRoYXQgd291bGQgYmUgdHlwZWQuCisgICAgICAgICAgICAgICAgPC9lbnRyeT4KKyAgICAgICAgICAgICAgPC9yb3c+CisgICAgICAgICAgICAgIDxyb3c+CisgICAgICAgICAgICAgICAgPGVudHJ5PgorICAgICAgICAgICAgICAgICAgPGNvbW1hbmQ+PHJlcGxhY2VhYmxlPnJlcGxhY2VhYmxlPC9yZXBsYWNlYWJsZT48L2NvbW1hbmQ+CisgICAgICAgICAgICAgICAgPC9lbnRyeT4KKyAgICAgICAgICAgICAgICA8ZW50cnk+CisgICAgICAgICAgICAgICAgICAiVmFyaWFibGUiIHRleHQgdGhhdCBjYW4gYmUgcmVwbGFjZWQuCisgICAgICAgICAgICAgICAgPC9lbnRyeT4KKyAgICAgICAgICAgICAgPC9yb3c+CisgICAgICAgICAgICAgIDxyb3c+CisgICAgICAgICAgICAgICAgPGVudHJ5PgorICAgICAgICAgICAgICAgICAgPGxpdGVyYWw+UHJvZ3JhbSBvciBEb2MgQ29kZTwvbGl0ZXJhbD4KKyAgICAgICAgICAgICAgICA8L2VudHJ5PgorICAgICAgICAgICAgICAgIDxlbnRyeT5Qcm9ncmFtIG9yIGRvY3VtZW50IGNvZGU8L2VudHJ5PgorICAgICAgICAgICAgICA8L3Jvdz4KKyAgICAgICAgICAgIDwvdGJvZHk+CisgICAgICAgICAgPC90Z3JvdXA+CisgICAgICAgIDwvaW5mb3JtYWx0YWJsZT4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorCisgICAgPCEtLSAjIyMjIyMjIEludHJvZHVjdGlvbiB8IEFib3V0IFRoaXMgSGFuZGJvb2sgICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9ImFib3V0Ij4KKyAgICAgIDx0aXRsZT5BYm91dCBUaGlzIEhhbmRib29rPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgSGFuZGJvb2sgaXMgYSBndWlkZSBmb3IgYm90aCB3cml0aW5nIGRvY3VtZW50YXRpb24gZm9yCisgICAgICAgR05PTUUgY29tcG9uZW50cyBhbmQgYXBwbGljYXRpb25zIGFuZCBmb3IgcHJvcGVybHkgYmluZGluZyBhbmQKKyAgICAgICBwYWNrYWdpbmcgZG9jdW1lbnRhdGlvbiBpbnRvIEdOT01FIGFwcGxpY2F0aW9ucy4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgSGFuZGJvb2ssIGxpa2UgYWxsIEdOT01FIGRvY3VtZW50YXRpb24sIHdhcyB3cml0dGVuIGluCisgICAgICAgRG9jQm9vayhTR01MKSBhbmQgaXMgYXZhaWxhYmxlIGluIHNldmVyYWwgZm9ybWF0cyBpbmNsdWRpbmcKKyAgICAgICBTR01MLCBIVE1MLCBQb3N0U2NyaXB0LCBhbmQgUERGLiAgRm9yIHRoZSBsYXRlc3QgdmVyc2lvbiwgc2VlCisgICAgICAgPHVsaW5rCisgICAgICAgdXJsPSJodHRwOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9wcm9qZWN0cy9nZHAvaGFuZGJvb2suaHRtbCI+IAorICAgICAgIDxjaXRldGl0bGU+R2V0dGluZyBUaGUgR05PTUUgSGFuZGJvb2sgb2YgV3JpdGluZyBTb2Z0d2FyZQorICAgICAgIERvY3VtZW50YXRpb248L2NpdGV0aXRsZT4gPC91bGluaz4uICBBbHRlcm5hdGVseSwgb25lIG1heQorICAgICAgIGRvd25sb2FkIGl0IGFub255bW91c2x5IGZyb20gR05PTUUgQ1ZTIHVuZGVyIDxmaWxlbmFtZQorICAgICAgIGNsYXNzPSJkaXJlY3RvcnkiPmdub21lLWRvY3UvZ2RwPC9maWxlbmFtZT4uCisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0Mj4KKyAgPC9zZWN0MT4KKworPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyBHZXR0aW5nIFN0YXJ0ZWQgICMjIyMjIyMjIyMjIyMjIyAtLT4KKworICA8c2VjdDEgaWQ9ImdldHRpbmdzdGFydGVkIj4KKyAgICA8dGl0bGU+R2V0dGluZyBTdGFydGVkIFdyaXRpbmcgR05PTUUgRG9jdW1lbnRhdGlvbjwvdGl0bGU+CisKKzwhLS0jIyMjIyMjIEdldHRpbmcgU3RhcnRlZCB8IFNlbGVjdGluZyBBIERvY3VtZW50ICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9InNlbGVjdGluZyI+CisgICAgICA8dGl0bGU+U2VsZWN0aW5nIEEgRG9jdW1lbnQ8L3RpdGxlPgorICAgIAorICAgICAgPHNlY3QzIGlkPSJrbm93Ij4KKyAgICAgICAgPHRpdGxlPkRvY3VtZW50IFNvbWV0aGluZyBZb3UgS25vdzwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRoZSBtb3N0IGZyZXF1ZW50bHkgYXNrZWQgcXVlc3Rpb24gb2YgbmV3IGNvbnRyaWJ1dG9ycyB3aG8KKyAgICAgICAgICBqb2luIHRoZSBHRFAgaXMgIndoaWNoIGRvY3VtZW50IHNob3VsZCBJIHN0YXJ0CisgICAgICAgICAgd2l0aD8iLiBCZWNhdXNlIG1vc3QgcGVvcGxlIGludm9sdmVkIGFyZSB2b2x1bnRlZXJzLCB3ZSBkbworICAgICAgICAgIG5vdCA8ZW1waGFzaXM+YXNzaWduPC9lbXBoYXNpcz4gcHJvamVjdHMgYW5kIGFwcGxpY2F0aW9ucyB0bworICAgICAgICAgIHdyaXRlIGRvY3VtZW50cyBmb3IuIFRoZSBmaXJzdCBzdGVwIGlzIGFsbCB5b3VycyAtIHlvdSBtdXN0CisgICAgICAgICAgZGVjaWRlIHdoYXQgYWJvdXQgR05PTUUgaW50ZXJlc3RzIHlvdSBtb3N0IGFuZCBmaW5kIG91dCBpZgorICAgICAgICAgIGl0IGhhcyBjb21wbGV0ZSBkb2N1bWVudHMgb3Igbm90LgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIEl0IGlzIGFsc28gaW1wb3J0YW50IHRvIHNwZW5kIHNvbWUgdGltZSB3aXRoIEdOT01FIHRvIG1ha2UKKyAgICAgICAgICBzdXJlIHlvdSBhcmUgZmFtaWxpYXIgZW5vdWdoIHdpdGggaXQgdG8gYmUKKyAgICAgICAgICA8ZW1waGFzaXM+YXV0aG9yaXRhdGl2ZTwvZW1waGFzaXM+ICBpbiB5b3VyIHdyaXRpbmcuIFRoZQorICAgICAgICAgIGJlc3Qgd2F5IHRvIGRvIHRoaXMgaXMgdG8ganVzdCBzaXQgZG93biBhbmQgcGxheSB3aXRoIEdOT01FCisgICAgICAgICAgYXMgbXVjaCBhcyBwb3NzaWJsZSBiZWZvcmUgc3RhcnRpbmcgdG8gd3JpdGUuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIGVhc2llc3Qgd2F5IHRvIGdldCBzdGFydGVkIGlzIHRvIGltcHJvdmUgZXhpc3RpbmcKKyAgICAgICAgICBkb2N1bWVudGF0aW9uLiBJZiB5b3Ugbm90aWNlIHNvbWUgaW5hY2N1cmFjaWVzIG9yIG9taXNzaW9ucworICAgICAgICAgIGluIHRoZSBkb2N1bWVudGF0aW9uLCBvciB5b3UgdGhpbmsgdGhhdCB5b3UgY2FuIGV4cGxhaW4gdGhlCisgICAgICAgICAgbWF0ZXJpYWwgbW9yZSBjbGVhcmx5LCBqdXN0IHNlbmQgeW91ciBzdWdnZXN0aW9ucyB0byB0aGUKKyAgICAgICAgICBhdXRob3Igb2YgdGhlIG9yaWdpbmFsIGRvY3VtZW50YXRpb24gb3IgdG8gdGhlIEdOT01FCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiBwcm9qZWN0IGF0IDxlbWFpbD5kb2NzQGdub21lLm9yZzwvZW1haWw+LgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgICAgCisgICAgICA8c2VjdDMgaWQ9ImRvY3RhYmxlIj4KKyAgICAgICAgPHRpdGxlPlRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFN0YXR1cyBUYWJsZTwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRoZSA8Y2l0ZXRpdGxlPkdEUCBEb2N1bWVudGF0aW9uIFN0YXR1cyBUYWJsZTwvY2l0ZXRpdGxlPgorICAgICAgICAgICg8Y2l0ZXRpdGxlPkRvY1RhYmxlPC9jaXRldGl0bGU+KSAoPHVsaW5rCisgICAgICAgICAgdXJsPSJodHRwOi8vd3d3Lmdub21lLm9yZy9nZHAvZG9jdGFibGUvIgorICAgICAgICAgIHR5cGU9Imh0dHAiPmh0dHA6Ly93d3cuZ25vbWUub3JnL2dkcC9kb2N0YWJsZS88L3VsaW5rPikgaXMgYQorICAgICAgICAgIHdlYiBwYWdlIHdoaWNoIHRyYWNrcyB0aGUgc3RhdHVzIG9mIGFsbCB0aGUgdmFyaW91cworICAgICAgICAgIGRvY3VtZW50YXRpb24gY29tcG9uZW50cyBvZiBHTk9NRS4gIFRoZXNlIGNvbXBvbmVudHMgaW5jbHVkZQorICAgICAgICAgIGFwcGxpY2F0aW9uIGRvY3VtZW50YXRpb24sIGludGVybmFsIEdOT01FIGNvbXBvbmVudAorICAgICAgICAgIGRvY3VtZW50YXRpb24sIHVzZXIgZG9jdW1lbnRhdGlvbiwgYW5kIGRldmVsb3BlcgorICAgICAgICAgIGRvY3VtZW50YXRpb24uICBGb3IgZWFjaCBkb2N1bWVudGF0aW9uIGl0ZW0sIGl0IHRyYWNrcyB0aGUKKyAgICAgICAgICBjdXJyZW50IHN0YXR1cyBvZiB0aGUgZG9jdW1lbnRhdGlvbiwgd2hvIGlzIHdvcmtpbmcgb24gdGhlCisgICAgICAgICAgcGFydGljdWxhciBkb2N1bWVudCwgd2hlcmUgdGhlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kLAorICAgICAgICAgIGFuZCBwcm92aWRlcyBhIGZvcnVtIGZvciB0aGUgZGlzY3Vzc2lvbiBvZiBlYWNoIGl0ZW0uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgWW91IHNob3VsZCB1c2UgdGhlIDxjaXRldGl0bGU+RG9jVGFibGU8L2NpdGV0aXRsZT4gdG8gaGVscAorICAgICAgICAgIHlvdSBzZWxlY3QgYSBkb2N1bWVudGF0aW9uIGl0ZW0gd2hpY2ggbmVlZHMgd29yayBkb25lLiAgT25jZQorICAgICAgICAgIHlvdSBoYXZlIHNlbGVjdGVkIGFuIGl0ZW0gdG8gd29yayBvbiwgcGxlYXNlIHJlZ2lzdGVyCisgICAgICAgICAgeW91cnNlbGYgYXMgYW4gYXV0aG9yIHNvIHRoYXQgb3RoZXIgYXV0aG9ycyBkbyBub3QgZHVwbGljYXRlCisgICAgICAgICAgeW91ciB3b3JrIGFuZCBtYXkgY29udGFjdCB5b3UgdG8gaGVscCBvciBvZmZlciBzdWdnZXN0aW9ucy4KKyAgICAgICAgICBBbHNvIGJlIHN1cmUgdG8ga2VlcCB0aGUgc3RhdHVzIGljb25zIHVwLXRvLWRhdGUgIHNvIHRoYXQKKyAgICAgICAgICB0aGUgR0RQIHRlYW0gY2FuIGVhc2lseSBpZGVudGlmeSB3aGljaCBpdGVtcyBuZWVkIGFkZGl0aW9uYWwKKyAgICAgICAgICBoZWxwLiAgVGhlIDxjaXRldGl0bGU+RG9jVGFibGU8L2NpdGV0aXRsZT4gYWxzbyBhbGxvd3MKKyAgICAgICAgICBwZW9wbGUgdG8gbWFrZSBhbm5vdW5jZW1lbnRzIGFuZCBzdWdnZXN0aW9ucyBhbmQgdG8gZGlzY3VzcworICAgICAgICAgIGlzc3VlcyBpbiB0aGUgY29tbWVudHMgc2VjdGlvbi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8bm90ZT4KKyAgICAgICAgIDx0aXRsZT5Ob3RlPC90aXRsZT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIE5vdGUgdGhhdCB0aGUgaW5mb3JtYXRpb24gaW4gdGhlCisgICAgICAgICAgPGNpdGV0aXRsZT5Eb2NUYWJsZTwvY2l0ZXRpdGxlPiBtYXkgbm90IGFsd2F5cyBiZSB1cC10by1kYXRlCisgICAgICAgICAgb3IgYWNjdXJhdGUuICBXaGVuIHlvdSBhc3NpZ24geW91cnNlbGYgdG8gZG9jdW1lbnRpbmcgYW4KKyAgICAgICAgICBhcHBsaWNhdGlvbiwgbWFrZSBzdXJlIHlvdSBmaW5kIG91dCB0aGUgbGF0ZXN0IHN0YXR1cyBvZgorICAgICAgICAgIGRvY3VtZW50YXRpb24gYnkgY29udGFjdGluZyB0aGUgYXBwbGljYXRpb24gYXV0aG9yLiAgCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbm90ZT4KKyAgICAgIDwvc2VjdDM+CisgICAgPC9zZWN0Mj4KKworPCEtLSAjIyMjIyMjIEdldHRpbmcgU3RhcnRlZCB8IEluc3RhbGxpbmcgQW5kIFVzaW5nIERvY0Jvb2sgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0iZG9jYm9vayI+CisgICAgICA8dGl0bGU+SW5zdGFsbGluZyBhbmQgVXNpbmcgRG9jQm9vazwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgQWxsIGRvY3VtZW50YXRpb24gZm9yIHRoZSBHTk9NRSBwcm9qZWN0IGlzIHdyaXR0ZW4gaW4gU0dNTAorICAgICAgICB1c2luZyB0aGUgRG9jQm9vayBEVEQuIFRoZXJlIGFyZSBtYW55IGFkdmFudGFnZXMgdG8gdXNpbmcKKyAgICAgICAgdGhpcyBmb3IgZG9jdW1lbnRhdGlvbiwgbm90IGxlYXN0IG9mIHdoaWNoIGlzIHRoZSBzaW5nbGUKKyAgICAgICAgc291cmNlIG5hdHVyZSBvZiBTR01MLiBUbyBjb250cmlidXRlIHRvIHRoZSBHRFAgeW91IHNob3VsZAorICAgICAgICBsZWFybiB0byB1c2UgRG9jQm9vay4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxub3RlPgorICAgICAgICA8dGl0bGU+Tk9URTwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRvIGdldCBzdGFydGVkIHdyaXRpbmcgZm9yIHRoZSBHRFAgeW91IGRvIG5vdCBuZWVkIHRvIHJ1c2gKKyAgICAgICAgICBvdXQgYW5kIGxlYXJuIERvY0Jvb2sgLSBpZiB5b3UgZmVlbCBpdCBpcyB0b28gbXVjaCB0byBoYW5kbGUKKyAgICAgICAgICBmb3Igbm93LCB5b3UgY2FuIHN1Ym1pdCBwbGFpbiBBU0NJSSB0ZXh0IHRvIHRoZSA8dWxpbmsKKyAgICAgICAgICB1cmw9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dub21lLWRvYy1saXN0LyI+CisgICAgICAgICAgPGNpdGV0aXRsZT5nbm9tZS1kb2MtbGlzdCBtYWlsaW5nIGxpc3Q8L2NpdGV0aXRsZT4KKyAgICAgICAgICA8L3VsaW5rPmFuZCBhIHZvbHVudGVlciB3aWxsIG1hcmsgaXQgdXAgZm9yIHlvdS4gU2VlaW5nIHlvdXIKKyAgICAgICAgICBkb2N1bWVudCBtYXJrZWQgdXAgd2lsbCBhbHNvIGJlIGEgZ3JlYXQgd2F5IGZvciB5b3UgdG8gc3RhcnQKKyAgICAgICAgICBsZWFybmluZyBEb2NCb29rLgorICAgICAgICA8L3BhcmE+CisgICAgICA8L25vdGU+CisgICAgICA8c2VjdDMgaWQ9Imluc3RhbGxpbmdkb2Nib29rIj4KKyAgICAgICAgPHRpdGxlPkluc3RhbGxpbmcgRG9jQm9vazwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIERvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBmb2xsb3dpbmcgPHVsaW5rCisgICAgICAgICAgdXJsPSJmdHA6Ly9zb3VyY2V3YXJlLmN5Z251cy5jb206L3B1Yi9kb2Nib29rLXRvb2xzLyIKKyAgICAgICAgICB0eXBlPSJmdHAiPkRvY0Jvb2sgVG9vbHMgcGFja2FnZXM8L3VsaW5rPjogamFkZSwgZG9jYm9vaywKKyAgICAgICAgICBqYWRldGV4LCBzZ21sLWNvbW1vbiwgYW5kIHN0eWxlc2hlZXRzLiAoUlBNIHVzZXJzIHNob3VsZCBub3RlCisgICAgICAgICAgdGhhdCBqYWRlIGlzIHBsYXRmb3JtIGRlcGVuZGVudCAoZWcuIGkzODYpLCB3aGlsZSB0aGUgb3RoZXIgcGFja2FnZXMKKyAgICAgICAgICBhcmUgaW4gdGhlIDxmaWxlbmFtZSBjbGFzcz0iZGlyZWN0b3J5Ij5ub2FyY2g8L2ZpbGVuYW1lPgorICAgICAgICAgIGRpcmVjdG9yeS4pIFlvdSBjYW4gZmluZCBtb3JlIAorICAgICAgICAgIGluZm9ybWF0aW9uIG9uIERvY0Jvb2sgVG9vbHMgPHVsaW5rIHVybD0iCisgICAgICAgICAgaHR0cDovL3NvdXJjZXdhcmUuY3lnbnVzLmNvbS9kb2Nib29rLXRvb2xzLyIKKyAgICAgICAgICB0eXBlPSJodHRwIj5oZXJlPC91bGluaz4uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgSWYgeW91IGFyZSBhbiA8YXBwbGljYXRpb24+RW1hY3M8L2FwcGxpY2F0aW9uPiB1c2VyIHlvdSBtYXkKKyAgICAgICAgICB3YW50IHRvIGdyYWIgdGhlIHBzZ21sIHBhY2thZ2UgYXMgd2VsbC4gVGhpcyBpcyBhIG1ham9yIG1vZGUKKyAgICAgICAgICBmb3IgZWRpdGluZyBzZ21sIGZpbGVzIGluIDxhcHBsaWNhdGlvbj5FbWFjczwvYXBwbGljYXRpb24+LgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgICAgCisgICAgICA8c2VjdDMgaWQ9ImdkcHN0eWxlc2hlZXRzIj4KKyAgICAgICAgPHRpdGxlPkdEUCBTdHlsZXNoZWV0czwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRoZSBHRFAgdXNlcyBpdHMgb3duIERvY0Jvb2sgc3R5bGVzaGVldHMuICBUbyB1c2UgdGhlIEdEUAorICAgICAgICAgIHN0eWxlc2hlZXRzLCB5b3Ugc2hvdWxkIGRvd25sb2FkIHRoZSBmaWxlCisgICAgICAgICAgPGZpbGVuYW1lPmdkcC1ib3RoLmRzbDwvZmlsZW5hbWU+IGZyb20gdGhlIDxmaWxlbmFtZQorICAgICAgICAgIGNsYXNzPSJkaXJlY3RvcnkiPmdub21lLWRvY3UvZ2RwL2Rzc3NsPC9maWxlbmFtZT4gbW9kdWxlIGluCisgICAgICAgICAgQ1ZTIChvciBmcm9tIDx1bGluaworICAgICAgICAgIHVybD0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcvcHJvamVjdHMvZ2RwL3N0eWxlc2hlZXRzLmh0bWwiPgorICAgICAgICAgIEdEUCBDdXN0b20gRFNTU0wgU3R5bGVzaGVldDwvdWxpbms+KWFuZCBjb3B5IGl0Cis8IS0tICAgICAgaW50byA8ZmlsZW5hbWUKKyAgICAgICAgICBjbGFzcz0iZGlyZWN0b3J5Ij4vdXNyL2xpYi9zZ21sL3N0eWxlc2hlZXRzPC9maWxlbmFtZT4uIFlvdQorICAgICAgICAgIHdpbGwgbmVlZCB0byBwb2ludCBEb2NCb29rIFRvb2xzIHRvIHRoaXMgc3R5bGVzaGVldCB3aXRoIHRoZQorICAgICAgICAgIDxjb21tYW5kPjxvcHRpb24+LWQ8L29wdGlvbj48L2NvbW1hbmQ+IG9wdGlvbjoKKyAgICAgICAgICA8Y29tbWFuZD5kYjJodG1sIC1kIC91c3IvbGliL3NnbWwvc3R5bGVzaGVldHMvZ2RwLWJvdGguZHNsCisgICAgICAgICAgPHJlcGxhY2VhYmxlPmZvby5zZ21sPC9yZXBsYWNlYWJsZT48L2NvbW1hbmQ+LiAoQ3JlYXRpbmcgYW4KKyAgICAgICAgICBhbGlhcyB0byBpbmNsdWRlIHRoaXMgb3B0aW9uIGFuZCBwYXRoIGlzIGNvbnZlbmllbnQuKQorICAgICAgICAgIEFsdGVybmF0ZWx5LCB5b3UgY291bGQgb3ZlcndyaXRlCisgICAgICAgICAgPGZpbGVuYW1lPi91c3IvbGliL3NnbWwvc3R5bGVzaGVldHMvY3lnbnVzLWJvdGguZHNsPC9maWxlbmFtZT4KKyAgICAgICAgICB3aXRoIDxmaWxlbmFtZT5nZHAtYm90aC5kc2w8L2ZpbGVuYW1lPi4KKy0tPgorICAgICAgICAgIG92ZXIgdGhlIGZpbGUKKyAgICAgICAgICA8ZmlsZW5hbWU+L3Vzci9saWIvc2dtbC9zdHlsZXNoZWV0cy9jeWdudXMtYm90aC5kc2w8L2ZpbGVuYW1lPi4KKyAgICAgICAgICBBbHRlcm5hdGVseSwgeW91IGNhbiBkb3dubG9hZCBhbmQgaW5zdGFsbCB0aGUKKyAgICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vcGVvcGxlLnJlZGhhdC5jb20vZGNtL3NvZnR3YXJlLmh0bWwiCisgICAgICAgICAgdHlwZT0iaHR0cCI+Z25vbWUtZG9jLXRvb2xzIHBhY2thZ2U8L3VsaW5rPiB3aGljaCB3aWxsIHNldAorICAgICAgICAgIHVwIHRoZSBzdHlsZXNoZWV0cyBhcyB3ZWxsIGFzIHRoZSBEVEQgZGlzY3Vzc2VkIGJlbG93LgorICAgICAgICA8L3BhcmE+CisKKzwhLS0gICAgICAgIDxub3RlPgorICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgRG9jQm9vayBUb29scyBjb21tYW5kCisgICAgICAgICAgICA8Y29tbWFuZD5kYjJwczwvY29tbWFuZD4gZG9lcyBub3QgaGF2ZSBhCisgICAgICAgICAgICA8Y29tbWFuZD48b3B0aW9uPi1kPC9vcHRpb24+PC9jb21tYW5kPiBvcHRpb24uIEluIG9yZGVyIHRvCisgICAgICAgICAgICBjcmVhdGUgUG9zdFNjcmlwdCBvdXRwdXQsIHlvdSBtdXN0IG92ZXJ3cml0ZQorICAgICAgICAgICAgPGZpbGVuYW1lPi91c3IvbGliL3NnbWwvc3R5bGVzaGVldHMvY3lnbnVzLWJvdGguZHNsPC9maWxlbmFtZT4KKyAgICAgICAgICAgIHdpdGggPGZpbGVuYW1lPmdkcC1ib3RoLmRzbDwvZmlsZW5hbWU+LgorICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9ub3RlPgorLS0+CisgICAgICA8L3NlY3QzPgorICAgICAgCisgICAgICA8c2VjdDMgaWQ9ImdkcGR0ZCI+CisgICAgICAgIDx0aXRsZT5HRFAgRFREIChQTkcgSW1hZ2UgU3VwcG9ydCk8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBEdWUgdG8gc29tZSBsaWNlbnNlIGlzc3VlcyBpbnZvbHZlZCB3aXRoIHRoZSBjcmVhdGlvbiBvZgorICAgICAgICAgIGdpZnMsIHRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFByb2plY3QgaGFzIGRlY2lkZWQgdG8gdXNlIHRoZQorICAgICAgICAgIFBORyBpbWFnZSBmb3JtYXQgZm9yIGFsbCBpbWFnZXMgaW4gR05PTUUgZG9jdW1lbnRhdGlvbi4gWW91CisgICAgICAgICAgY2FuIHJlYWQgbW9yZSBhYm91dCB0aGUgaXNzdWVzIGludm9sdmVkIHdpdGggZ2lmcyBhdCA8dWxpbmsKKyAgICAgICAgICB1cmw9Imh0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L2dpZi5odG1sIgorICAgICAgICAgIHR5cGU9Imh0dHAiPmh0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L2dpZi5odG1sPC91bGluaz4uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIGN1cnJlbnQgRG9jQm9vayBEVEQoMy4xKSBkb2VzIG5vdCBpbmNsdWRlIHN1cHBvcnQgZm9yCisgICAgICAgICAgZW1iZWRkaW5nIFBORyBpbWFnZXMgaW4geW91ciBkb2N1bWVudHMuICBTaW5jZSB0aGUgR0RQIHVzZXMKKyAgICAgICAgICBtYW55IHNjcmVlbnNob3RzIGluIGl0cyBkb2N1bWVudGF0aW9uLCB3ZSB1c2Ugb3VyIG93bgorICAgICAgICAgIHZhcmlhdGlvbiBvbiB0aGUgRG9jQm9vayBEVEQgd2hpY2ggaGFzIFBORyBpbWFnZSBzdXBwb3J0LgorICAgICAgICAgIFdlIGVuY291cmFnZSBldmVyeWJvZHkgdG8gdXNlIHRoaXMgRFREIGluc3RlYWQgb2YgdGhlCisgICAgICAgICAgZGVmYXVsdCBEb2NCb29rIERURCBzaW5jZSB5b3VyIHNvdXJjZSBkb2N1bWVudCBoZWFkZXIgYW5kCisgICAgICAgICAgeW91ciBvdXRwdXQgZG9jdW1lbnQgYXBwZWFyYW5jZSBzdWJ0bHkgdmFyeSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgICAgICBEVEQncy4gIFRvIGluc3RhbGwgdGhlIEdEUCBjdXN0b20gRFREIHdpdGggUE5HIGltYWdlIHN1cHBvcnQKKyAgICAgICAgICBieSBoYW5kOgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxpdGVtaXplZGxpc3QgbWFyaz0ib3BlbmNpcmNsZSI+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIERvd25sb2FkIDx1bGluaworICAgICAgICAgICAgICB1cmw9Imh0dHA6Ly93d3cubGFicy5yZWRoYXQuY29tL3BuZy9wbmctc3VwcG9ydC5odG1sIj50aGUKKyAgICAgICAgICAgICAgR0RQIERvY0Jvb2sgRFREIGZvciBQTkcgc3VwcG9ydDwvdWxpbms+IGFuZCBpbnN0YWxsIGl0CisgICAgICAgICAgICAgIHdoZXJlIHlvdSBrZWVwIHlvdXIgRFREJ3MuIChPbiBSZWQgSGF0IHVzZSA8ZmlsZW5hbWUKKyAgICAgICAgICAgICAgY2xhc3M9ImRpcmVjdG9yeSI+L3Vzci9saWIvc2dtbC88L2ZpbGVuYW1lPi4pIE5vdGUgdGhhdAorICAgICAgICAgICAgICB0aGUgMy4wIERURCBpcyBtaXNzaW5nIHN1cHBvcnQgZm9yIHRoZQorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7bGVnYWxub3RpY2U+PC9zZ21sdGFnPiB0YWcsIHNvIGl0IGlzCisgICAgICAgICAgICAgIHJlY29tbWVuZGVkIHRoYXQgeW91IHVzZSB2ZXJzaW9uIDMuMQorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgPGxpc3RpdGVtIG92ZXJyaWRlPSJidWxsZXQiPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIEFkZCB0aGUgbmV3IERURCB0byB5b3VyIFNHTUwgQ0FUQUxPRyBmaWxlLiAgVGhlIGxvY2F0aW9uCisgICAgICAgICAgICAgIG9mIHlvdXIgU0dNTCBDQVRBTE9HIGZpbGUgbWF5IHZhcnkgZGVwZW5kaW5nIHVwb24geW91cgorICAgICAgICAgICAgICBkaXN0cmlidXRpb24uIChPbiBSZWQgSGF0IGl0IGlzIHVzdWFsbHkgaW4KKyAgICAgICAgICAgICAgL3Vzci9saWIvc2dtbC9DQVRBTE9HLikgQWRkIHRoZSBmb2xsb3dpbmcgbGluZSB0byB0aGlzCisgICAgICAgICAgICAgIGZpbGU6CisgICAgICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KK1BVQkxJQyAiLS8vR05PTUUvL0RURCBEb2NCb29rIFBORyBWYXJpYW50IFYxLjAvL0VOIiAicG5nLXN1cHBvcnQtMy4wLmR0ZCIKKyAgICAgICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4gCisgICAgICAgICAgICAgIElmIHlvdSBhcmUgdXNpbmcgdGhlIDMuMSBEVEQsIHVzZToKKyAgICAgICAgICAgICAgPHByb2dyYW1saXN0aW5nPgorUFVCTElDICItLy9HTk9NRS8vRFREIERvY0Jvb2sgUE5HIFZhcmlhbnQgVjEuMS8vRU4iICJwbmctc3VwcG9ydC0zLjEuZHRkIgorICAgICAgICAgICAgICA8L3Byb2dyYW1saXN0aW5nPiAKKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgQWx0ZXJuYXRlbHksIHlvdSBjYW4gZG93bmxvYWQgYW5kIGluc3RhbGwgdGhlCisgICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2RjbS9zb2Z0d2FyZS5odG1sIgorICAgICAgICAgIHR5cGU9Imh0dHAiPmdub21lLWRvYy10b29scyBwYWNrYWdlPC91bGluaz4gd2hpY2ggd2lsbCBzZXQKKyAgICAgICAgICB1cCB0aGUgY3VzdG9tIHN0eWxlc2hlZXRzIGFuZCBEVEQgZm9yIHlvdS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUbyBpbmNsdWRlIFBORyBmaWxlcyBpbiB5b3VyIGRvY3VtZW50cywgeW91IHdpbGwgbmVlZCB0bworICAgICAgICAgIGluZGljYXRlIHRoYXQgeW91IGFyZSB1c2luZyB0aGlzIHNwZWNpYWwgRFRELiAgVG8gZG8KKyAgICAgICAgICB0aGlzLCB1c2UgdGhlIGZvbGxvd2luZyBoZWFkZXJzOgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIEFydGljbGVzOgorICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWzwhRE9DVFlQRSBBcnRpY2xlIFBVQkxJQyAiLS8vR05PTUUvL0RURCBEb2NCb29rIFBORyBWYXJpYW50CitWMS4xLy9FTiJbXT5dXT4KKyAgICAgICAgICA8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIEJvb2tzOgorICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWzwhRE9DVFlQRSBCb29rIFBVQkxJQyAiLS8vR05PTUUvL0RURCBEb2NCb29rIFBORyBWYXJpYW50CitWMS4xLy9FTiJbXT5dXT4KKyAgICAgICAgICA8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICA8L3BhcmE+CisKKyAgICAgIDwvc2VjdDM+CisgICAgICAKKyAgICAgIDxzZWN0MyBpZD0iZWRpdG9ycyI+CisgICAgICAgIDx0aXRsZT5FZGl0b3JzPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlcmUgYXJlIG1hbnkgZWRpdG9ycyBvbiBMaW51eCBhbmQgVU5JWCBzeXN0ZW1zIGF2YWlsYWJsZQorICAgICAgICAgIHRvIHlvdS4gV2hpY2ggZWRpdG9yIHlvdSB1c2UgdG8gd29yayBvbiB0aGUgc2dtbCBkb2N1bWVudHMKKyAgICAgICAgICBpcyBjb21wbGV0ZWx5IHVwIHRvIHlvdSwgYXMgbG9uZyBhcyB0aGUgZWRpdG9yIGlzIGFibGUgdG8KKyAgICAgICAgICBwcmVzZXJ2ZSBzZ21sIGFuZCBwcm9kdWNlIHRoZSBzb3VyY2UgaW4gYSBmb3JtYXQgdGhhdCBpcworICAgICAgICAgIHJlYWRhYmxlIGJ5IGV2ZXJ5b25lLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFByb2JhYmx5IHRoZSB0d28gbW9zdCBwb3B1bGFyIGVkaXRvcnMgYXZhaWxhYmxlIGFyZQorICAgICAgICAgIDxhcHBsaWNhdGlvbj5FbWFjczwvYXBwbGljYXRpb24+IGFuZAorICAgICAgICAgIDxhcHBsaWNhdGlvbj52aTwvYXBwbGljYXRpb24+LiBUaGVzZSBhbmQgb3RoZXIgZWRpdG9ycyBhcmUKKyAgICAgICAgICB1c2VkIHJlZ3VsYXJseSBieSBtZW1iZXJzIG9mIHRoZSBHRFAuIEVtYWNzIGhhcyBhIG1ham9yCisgICAgICAgICAgbW9kZSwgcHNnbWwsIGZvciBlZGl0aW5nIHNnbWwgZmlsZXMgd2hpY2ggY2FuIHNhdmUgeW91IHRpbWUKKyAgICAgICAgICBhbmQgZWZmb3J0IGluIGFkZGluZyBhbmQgY2xvc2luZyB0YWdzLiBZb3Ugd2lsbCBmaW5kIHRoZQorICAgICAgICAgIHBzZ21sIHBhY2thZ2UgaW4gRG9jQm9vayBUb29scywgd2hpY2ggaXMgdGhlIHN0YW5kYXJkIHNldCBvZgorICAgICAgICAgIHRvb2xzIGZvciB0aGUgR0RQLiBZb3UgbWF5IGZpbmQgb3V0IG1vcmUgYWJvdXQgRG9jQm9vayBUb29scworICAgICAgICAgIGluIDx4cmVmIGxpbmtlbmQ9Imluc3RhbGxpbmdkb2Nib29rIiAvPi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgPC9zZWN0Mz4KKyAgICAgIAorICAgICAgPHNlY3QzIGlkPSJtYWtlLW91dHB1dCI+CisgICAgICAgIDx0aXRsZT5DcmVhdGluZyBTb21ldGhpbmcgVXNlZnVsIHdpdGggeW91ciBEb2NzPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIHRvb2xzIGF2YWlsYWJsZSBpbiBEb2NCb29rIFRvb2xzIGFsbG93IHlvdSB0byBjb252ZXJ0CisgICAgICAgICAgeW91ciBzZ21sIGRvY3VtZW50IHRvIG1hbnkgZGlmZmVyZW50IGZvcm1hdHMgaW5jbHVkaW5nIGh0bWwKKyAgICAgICAgICBhbmQgUG9zdHNjcmlwdC4gVGhlIHByaW1hcnkgdG9vbCB1c2VkIHRvIGRvIHRoZSBjb252ZXJzaW9uCisgICAgICAgICAgaXMgYW4gYXBwbGljYXRpb24gY2FsbGVkIDxhcHBsaWNhdGlvbj5KYWRlPC9hcHBsaWNhdGlvbj4uIEluCisgICAgICAgICAgbW9zdCBjYXNlcyB5b3Ugd2lsbCBub3QgaGF2ZSB0byB3b3JrIGRpcmVjdGx5IHdpdGgKKyAgICAgICAgICA8YXBwbGljYXRpb24+SmFkZTwvYXBwbGljYXRpb24+OyBJbnN0ZWFkLCAgeW91IHdpbGwgdXNlIHRoZQorICAgICAgICAgIHNjcmlwdHMgcHJvdmlkZWQgYnkgRG9jQm9vayBUb29scy4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUbyBwcmV2aWV3IHlvdXIgRG9jQm9vayBkb2N1bWVudCwgaXQgaXMgZWFzaWVzdCB0byBjb252ZXJ0CisgICAgICAgICAgaXQgdG8gPGZpbGVuYW1lPmh0bWw8L2ZpbGVuYW1lPi4gSWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZQorICAgICAgICAgIERvY0Jvb2sgdG9vbHMgZGVzY3JpYmVkIGFib3ZlLCBhbGwgeW91IGhhdmUgdG8gZG8gaXMgdG8gcnVuCisgICAgICAgICAgdGhlIGNvbW1hbmQgPHByb21wdD4kPC9wcm9tcHQ+PGNvbW1hbmQ+ZGIyaHRtbAorICAgICAgICAgIG15ZG9jdW1lbnQuc2dtbDwvY29tbWFuZD4uIElmIHRoZXJlIGFyZSBubyBzZ21sIHN5bnRheAorICAgICAgICAgIGVycm9ycywgdGhpcyB3aWxsIGNyZWF0ZSBhIGRpcmVjdG9yeSA8ZmlsZW5hbWUKKyAgICAgICAgICBjbGFzcz0iZGlyZWN0b3J5Ij5teWRvY3VtZW50PC9maWxlbmFtZT4gYW5kIHBsYWNlIHRoZQorICAgICAgICAgIHJlc3VsdGluZyBodG1sIGZpbGVzIGluIGl0LiBUaGUgdGl0bGUgcGFnZSBvZiB0aGUgZG9jdW1lbnQKKyAgICAgICAgICB3aWxsIHR5cGljYWxseSBiZQorICAgICAgICAgIDxmaWxlbmFtZT5teWRvY3VtZW50L2luZGV4Lmh0bWw8L2ZpbGVuYW1lPi4gIElmIHlvdSBoYXZlCisgICAgICAgICAgc2NyZWVuc2hvdHMgaW4geW91ciBkb2N1bWVudCwgeW91IHdpbGwgaGF2ZSB0byBjb3B5IHRoZXNlCisgICAgICAgICAgZmlsZXMgaW50byB0aGUgPGZpbGVuYW1lCisgICAgICAgICAgY2xhc3M9ImRpcmVjdG9yeSI+bXlkb2N1bWVudDwvZmlsZW5hbWU+IGRpcmVjdG9yeSBieQorICAgICAgICAgIGhhbmQuIFlvdSBjYW4gdXNlIGFueSB3ZWIgYnJvd3NlciB0byB2aWV3IHlvdXIgZG9jdW1lbnQuCisgICAgICAgICAgTm90ZSB0aGF0IGV2ZXJ5IHRpbWUgeW91IHJ1biA8Y29tbWFuZD5kYjJodG1sPC9jb21tYW5kPiwgaXQKKyAgICAgICAgICBjcmVhdGVzIHRoZSA8ZmlsZW5hbWUKKyAgICAgICAgICBjbGFzcz0iZGlyZWN0b3J5Ij5teWRvY3VtZW50PC9maWxlbmFtZT4gZGlyZWN0b3J5IG92ZXIsIHNvCisgICAgICAgICAgeW91IHdpbGwgaGF2ZSB0byBjb3B5IHRoZSBzY3JlZW5zaG90cyBvdmVyIGVhY2ggdGltZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBZb3UgY2FuIGFsc28gY29udmVydCB5b3VyIGRvY3VtZW50IHRvIFBvc3RTY3JpcHQgYnkgcnVubmluZworICAgICAgICAgIHRoZSBjb21tYW5kIDxwcm9tcHQ+JDwvcHJvbXB0Pjxjb21tYW5kPmRiMnBzCisgICAgICAgICAgbXlkb2N1bWVudC5zZ21sPC9jb21tYW5kPiwgYWZ0ZXIgd2hpY2ggeW91IGNhbiBwcmludCBvdXQgb3IKKyAgICAgICAgICB2aWV3IHRoZSByZXN1bHRpbmcgLnBzIGZpbGUuICAKKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8bm90ZT4KKyAgICAgICAgICA8dGl0bGU+Tk9URTwvdGl0bGU+CisgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgaHRtbCBmaWxlcyB5b3UgZ2V0IHdpbGwgbm90IGxvb2sgcXVpdGUgdGhlIHNhbWUgYXMgdGhlCisgICAgICAgICAgICBkb2N1bWVudGF0aW9uIGRpc3RyaWJ1dGVkIHdpdGggR05PTUUgdW5sZXNzIHlvdSBoYXZlIHRoZQorICAgICAgICAgICAgY3VzdG9tIHN0eWxlc2hlZXRzIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmUuIERvY0Jvb2sKKyAgICAgICAgICAgIFRvb2xzJyBkZWZhdWx0IHN0eWxlc2hlZXRzIHdpbGwgcHJvZHVjZSBhIGRpZmZlcmVudCBsb29rCisgICAgICAgICAgICB0byB5b3VyIGRvY3MuIFlvdSBjYW4gcmVhZCBtb3JlIGFib3V0IHRoZSBHRFAgc3R5bGVzaGVldHMKKyAgICAgICAgICAgIGluIDx4cmVmIGxpbmtlbmQ9ImdkcHN0eWxlc2hlZXRzIiAvPi4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbm90ZT4KKyAgICAgIDwvc2VjdDM+CisgICAgICAKKyAgICAgIDxzZWN0MyBpZD0iamFkZWltYWdlcyI+CisgICAgICAgIDx0aXRsZT5JbWFnZXMgaW4gRG9jQm9vayBUb29sczwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIElmIHlvdXIgZG9jdW1lbnQgdXNlcyBpbWFnZXMgeW91IHdpbGwgbmVlZCB0byB0YWtlIG5vdGUgb2YgYQorICAgICAgICAgIGZldyB0aGluZ3MgdGhhdCBzaG91bGQgdGFrZSBwbGFjZSBpbiBvcmRlciBmb3IgeW91IHRvIG1ha2UKKyAgICAgICAgICB1c2Ugb2YgdGhvc2UgaW1hZ2VzIGluIHlvdXIgb3V0cHV0LgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRoZSBEb2NCb29rIFRvb2xzIHNjcmlwdHMgYW5kIGFwcGxpY2F0aW9ucyBhcmUgc21hcnQgZW5vdWdoCisgICAgICAgICAgdG8ga25vdyB0aGF0IHdoZW4geW91IGFyZSBjcmVhdGluZyBodG1sIHlvdSB3aWxsIGJlIHVzaW5nCisgICAgICAgICAgUE5HIGZpbGVzIGFuZCB3aGVuIHlvdSBhcmUgY3JlYXRpbmcgUG9zdHNjcmlwdCB5b3Ugd2lsbCBiZQorICAgICAgICAgIHVzaW5nIEVQUyBmaWxlcyAoeW91IG11c3QgdXNlIEVQUyB3aXRoIFBvc3RzY3JpcHQpLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRodXMsIHlvdSBzaG91bGQgbmV2ZXIgZXhwbGljaXRseQorICAgICAgICAgIGluY2x1ZGUgdGhlIGV4dGVuc2lvbiBvZiB0aGUgaW1hZ2UgZmlsZSwgc2luY2UgRG9jQm9vaworICAgICAgICAgIFRvb2xzIHdpbGwgYXV0b21hdGljYWxseSBpbnNlcnQgaXQgZm9yIHlvdS4gRm9yIGV4YW1wbGU6CisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbCis8ZmlndXJlPgorIDx0aXRsZT5NeSBJbWFnZTwvdGl0bGU+CisgPHNjcmVlbnNob3Q+CisgIDxzY3JlZW5pbmZvPlNhbXBsZSBHTk9NRSBEaXNwbGF5PC9zY3JlZW5pbmZvPgorICA8Z3JhcGhpYyAgZm9ybWF0PSJwbmciIGZpbGVyZWY9Im15ZmlsZSIgc3JjY3JlZGl0PSJtZSI+CisgIDwvZ3JhcGhpYz4KKyA8L3NjcmVlbnNob3Q+Cis8L2ZpZ3VyZT4KK11dPiAgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgWW91IHdpbGwgbm90aWNlIGluIHRoaXMgZXhhbXBsZSB0aGF0IHRoZSBmaWxlCisgICAgICAgICAgPGZpbGVuYW1lPm15ZmlsZS5wbmc8L2ZpbGVuYW1lPiB3YXMgcmVmZXJyZWQgdG8gYXMgc2ltcGx5CisgICAgICAgICAgPGZpbGVuYW1lPm15ZmlsZTwvZmlsZW5hbWU+LiBOb3cgd2hlbiB5b3UgcnVuCisgICAgICAgICAgPGNvbW1hbmQ+ZGIyaHRtbDwvY29tbWFuZD4gdG8gY3JlYXRlIGFuIGh0bWwgZmlsZSwgaXQgd2lsbAorICAgICAgICAgIGF1dG9tYXRpY2FsbHkgbG9vayBmb3IgPGZpbGVuYW1lPm15ZmlsZS5wbmc8L2ZpbGVuYW1lPiBpbgorICAgICAgICAgIHRoZSBkaXJlY3RvcnkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgSWYgeW91IHdhbnQgdG8gY3JlYXRlIFBvc3RTY3JpcHQgb3VwdXQsIHlvdSB3aWxsIG5lZWQgdG8gY3JlYXRlIGFuCisgICAgICAgICAgRVBTIHZlcnNpb24gb2YgeW91ciBpbWFnZSBmaWxlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUKKyAgICAgICAgICBQb3N0U2NyaXB0IGZpbGUuIFRoZXJlIGlzIGEgc2ltcGxlIHNjcmlwdCBhdmFpbGFibGUgd2hpY2gKKyAgICAgICAgICBhbGxvd3MgeW91IHRvIGNoYW5nZSBhIFBORyBpbWFnZSBpbnRvIGFuIEVQUyBmaWxlCisgICAgICAgICAgZWFzaWx5LiBZb3UgY2FuIGRvd25sb2FkIHRoaXMgZmlsZSAtIGltZzJlcHMgLSBmcm9tIDx1bGluaworICAgICAgICAgIHVybD0iaHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2RjbS9zZ21sLmh0bWwiCisgICAgICAgICAgdHlwZT0iaHRtbCI+aHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2RjbS9zZ21sLmh0bWw8L3VsaW5rPgorICAgICAgICAgIChsb29rIGZvciB0aGUgaW1nMmVwcyBzZWN0aW9uKS4gIE5vdGUgdGhhdCB0aGlzIHNjcmlwdCBpcworICAgICAgICAgIGluY2x1ZGVkIGluIHRoZSBnbm9tZS1kb2MtdG9vbHMgcGFja2FnZSwgc28gaWYgeW91IGFyZSB1c2luZworICAgICAgICAgIHRoaXMgcGFja2FnZSwgeW91IHNob3VsZCBhbHJlYWR5IGhhdmUKKyAgICAgICAgICA8Y29tbWFuZD5pbWcyZXBzPC9jb21tYW5kPiBvbiB5b3Ugc3lzdGVtLgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgICAgCisgICAgICA8c2VjdDMgaWQ9Im1vcmVkb2Nib29raW5mbyI+CisgICAgICAgIDx0aXRsZT5MZWFybmluZyBEb2NCb29rPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlcmUgYXJlIG1hbnkgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSBsZWFybiBEb2NCb29rLgorICAgICAgICAgIFRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzIG9uIHRoZSB3ZWIgYXJlIHVzZWZ1bCBmb3IgbGVhcm5pbmcKKyAgICAgICAgICBEb2NCb29rOgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxpdGVtaXplZGxpc3QgbWFyaz0iYnVsbGV0Ij4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy5kb2Nib29rLm9yZyIKKyAgICAgICAgICAgICAgdHlwZT0iaHR0cCI+aHR0cDovL3d3dy5kb2Nib29rLm9yZzwvdWxpbms+ICAtIE5vcm1hbgorICAgICAgICAgICAgICBXYWxzaCdzIDxjaXRldGl0bGU+RG9jQm9vazogVGhlIERlZmluaXRpdmUKKyAgICAgICAgICAgICAgR3VpZGU8L2NpdGV0aXRsZT4uICBPbmxpbmUgTydSZWlsbHkgYm9vayBvbiB1c2luZworICAgICAgICAgICAgICBEb2NCb29rLiBDb250YWlucyBhbiBleGNlbGxlbnQgZWxlbWVudCByZWZlcmVuY2UuIE1heSBiZQorICAgICAgICAgICAgICB0b28gZm9ybWFsIGZvciBhIGJlZ2lubmVyLgorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIDx1bGluaworICAgICAgICAgICAgICB1cmw9Imh0dHA6Ly93d3cub3N3Zy5vcmcvb3N3Zy1uaWdodGx5L29zd2cvZW5fVVMuSVNPXzg4NTktMS9hcnRpY2xlcy9Eb2NCb29rLUludHJvL2RvY2Jvb2staW50cm8vaW5kZXguaHRtbCIKKyAgICAgICAgICAgICAgdHlwZT0iaHR0cCI+QSBQcmFjdGljYWwgSW50cm9kdWN0aW9uIHRvIERvY0Jvb2s8L3VsaW5rPgorICAgICAgICAgICAgICAtIFRoZSBPcGVuIFNvdXJjZSBXcml0ZXJzIEdyb3VwJ3MgaW50cm9kdWN0aW9uIHRvIHVzaW5nCisgICAgICAgICAgICAgIERvY0Jvb2suIFRoaXMgaXMgYW4gZXhjZWxsZW50IEhPVy1UTyB0eXBlIGFydGljbGUgb24KKyAgICAgICAgICAgICAgZ2V0dGluZyBzdGFydGVkLgorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIDx1bGluaworICAgICAgICAgICAgICB1cmw9Imh0dHA6Ly9uaXMtd3d3LmxhbmwuZ292L35yb3NhbGlhL215ZG9jcy9kb2Nib29rLWludHJvL2RvY2Jvb2staW50cm8uaHRtbCIKKyAgICAgICAgICAgICAgdHlwZT0iaHR0cCI+R2V0dGluZyBHb2luZyB3aXRoIERvY0Jvb2s6IE5vdGVzIGZvcgorICAgICAgICAgICAgICBIYWNrZXJzPC91bGluaz4gLSBNYXJrIEdhbGFzc2kncyBpbnRyb2R1Y3Rpb24gdG8gRG9jQm9vaworICAgICAgICAgICAgICBmb3IgaGFja2Vycy4gVGhpcyBoYXMgdG8gYmUgb25lIG9mIHRoZSBmaXJzdAorICAgICAgICAgICAgICBpbnRyb2R1Y3Rpb25zIHRvIERvY0Jvb2sgZXZlciAtIHN0aWxsIGFzIGdvb2QgYXMgaXQgZXZlcgorICAgICAgICAgICAgICB3YXMuCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgPHVsaW5rIHR5cGU9Imh0dHAiIHVybD0iaHR0cDovL3d3dy5mcmVlYnNkLm9yZy90dXRvcmlhbHMvZG9jcHJvai1wcmltZXIvIj4KKyAgICAgICAgICAgICAgRnJlZUJTRCBEb2N1bWVudGF0aW9uIFByb2plY3QgUHJpbWVyIGZvciBOZXcKKyAgICAgICAgICAgICAgQ29udHJpYnV0b3JzPC91bGluaz4gLSBGcmVlQlNEIGRvY3VtZW50YXRpb24gcHJvamVjdAorICAgICAgICAgICAgICBwcmltZXIuIENoYXB0ZXIgNC4yIHByb3ZpZGVzIGEgdmVyeSBnb29kIGludHJvZHVjdGlvbiB0bworICAgICAgICAgICAgICB3cml0aW5nIGRvY3VtZW50YXRpb24gdXNpbmcgRG9jQm9vay4gTm90ZSB0aGF0IGl0IGFsc28KKyAgICAgICAgICAgICAgZGVzY3JpYmVzIHNvbWUgY3VzdG9tIGV4dGVuc2lvbnMgb2YgRG9jQm9vazsKKyAgICAgICAgICAgICAgZm9ydHVuYXRlbHksIHRoZXkgYXJlIGNsZWFybHkgbWFya2VkIGFzIHN1Y2guCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIE5vcm1hbiBXYWxzaCdzIGJvb2sgaXMgYWxzbyBhdmFpbGFibGUgaW4gcHJpbnQuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBvZiB0aGlzIGRvY3VtZW50IGFyZSBkZXNpZ25lZCB0byBoZWxwCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiBhdXRob3JzIHdyaXRlIGNvcnJlY3QgYW5kIGNvbnNpc3RlbnQgRG9jQm9vazoKKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8aXRlbWl6ZWRsaXN0IG1hcms9ImJ1bGxldCI+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImRvY2Jvb2tiYXNpY3MiIC8+IC0gRGVzY3JpcHRpb25zIG9mCisgICAgICAgICAgICAgIGNvbW1vbmx5IHVzZWQgRG9jQm9vayB0YWdzLgorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBZb3UgbWF5IGFsc28gZGlzY3VzcyBzcGVjaWZpYyBEb2NCb29rIHF1ZXN0aW9ucyB3aXRoIEdEUAorICAgICAgICAgIG1lbWJlcnMgb24gdGhlICNkb2NzIElSQyBjaGFubmVsIGF0IGlyYy5nbm9tZS5vcmcgYW5kIG9uIHRoZQorICAgICAgICAgIGdub21lLWRvYy1saXN0IG1haWxpbmcgbGlzdC4KKyAgICAgICAgPC9wYXJhPgorICAgICAgPC9zZWN0Mz4KKyAgICA8L3NlY3QyPgorICAgCis8IS0tICMjIyMjIyMgR2V0dGluZyBTdGFydGVkIHwgR0RQIERvY3VtZW50IEV4YW1wbGVzICMjIyMjIyMgLS0+Cis8IS0tCisgICAgPHNlY3QyIGlkPSJleGFtcGxlcyI+CisgICAgICA8dGl0bGU+R0RQIERvY3VtZW50IEV4YW1wbGVzPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBFeGFtcGxlcyBvZiB2YXJpb3VzIHR5cGVzIG9mIEdOT01FIGRvY3VtZW50cyBhcmUgZm91bmQgaW4KKyAgICAgICAgPHhyZWYgbGlua2VuZD0iZXhhbXBsZXMiIC8+LiAgVGhlcmUgaXMgYWxzbyBhbiBleGFtcGxlIEdOT01FCisgICAgICAgIGFwcGxpY2F0aW9uIHdpdGggZG9jdW1lbnRhdGlvbiBjYWxsZWQKKyAgICAgICAgPGFwcGxpY2F0aW9uPmdub21lLWhlbGxvPC9hcHBsaWNhdGlvbj4gaW4gR05PTUUgY3ZzLgorICAgICAgPC9wYXJhPgorICAgIDwvc2VjdDI+CistLT4KKzwhLS0gIyMjIyMjIyBHZXR0aW5nIFN0YXJ0ZWQgfCBHRFAgRG9jdW1lbnQgVGVtcGxhdGVzICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9ImdkcHRlbXBsYXRlcyI+CisgICAgICA8dGl0bGU+R0RQIERvY3VtZW50IFRlbXBsYXRlczwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGVtcGxhdGVzIGZvciB2YXJpb3VzIHR5cGVzIG9mIEdOT01FIGRvY3VtZW50cyBhcmUgZm91bmQgaW4KKyAgICAgICAgPHhyZWYgbGlua2VuZD0idGVtcGxhdGVzIiAvPi4gIFRoZXkgYXJlIGtlcHQgaW4gQ1ZTIGluCisgICAgICAgIGdub21lLWRvY3UvZ2RwL3RlbXBsYXRlcy4gVGhlIGVhc2llc3Qgc291cmNlIHRvIGdldCB0aGVtIGZyb20KKyAgICAgICAgaXMgcHJvYmFibHkgdGhlIDx1bGluaworICAgICAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL3Byb2plY3RzL2dkcC90ZW1wbGF0ZXMuaHRtbCIgCisgICAgICAgIHR5cGU9Imh0dHAiPkdEUAorICAgICAgICBEb2N1bWVudCBUZW1wbGF0ZXM8L3VsaW5rPiB3ZWIgcGFnZSwgd2hpY2ggaXMgdHlwaWNhbGx5IGtlcHQKKyAgICAgICAgY29tcGxldGVseSB1cC10by1kYXRlIHdpdGggQ1ZTIGFuZCBoYXMgYSBiYXNpYyBkZXNjcmlwdGlvbiBvZgorICAgICAgICBlYWNoIGZpbGUgZnJvbSBDVlMuCisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0Mj4KKworPCEtLSAjIyMjIyMjIEdldHRpbmcgU3RhcnRlZCB8IFNjcmVlbnNob3RzICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9InNjcmVlbnNob3RzIj4KKyAgICAgIDx0aXRsZT5TY3JlZW5zaG90czwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgTW9zdCBHTk9NRSBkb2N1bWVudHMgd2lsbCBoYXZlIHNjcmVlbnNob3RzIG9mIHRoZSBwYXJ0aWN1bGFyCisgICAgICAgIGFwcGxldCwgYXBwbGljYXRpb24sIEdOT01FIGNvbXBvbmVudCwgb3Igd2lkZ2V0IGJlaW5nCisgICAgICAgIGRpc2N1c3NlZC4gIEFzIGRpc2N1c3NlZCBhYm92ZSBpbiA8eHJlZiBsaW5rZW5kPSJnZHBkdGQiLz4geW91CisgICAgICAgIHdpbGwgbmVlZCB0byBpbnN0YWxsIHRoZSBzcGVjaWFsIEdEUCBEb2NCb29rIERURCB3aGljaAorICAgICAgICBzdXBwb3J0cyBQTkcgaW1hZ2VzLCB0aGUgZm9ybWF0IHVzZWQgZm9yIGFsbCBpbWFnZXMgaW4gR05PTUUKKyAgICAgICAgZG9jdW1lbnRhdGlvbi4gRm9yIHRoZSBiYXNpYyBEb2NCb29rIHN0cnVjdHVyZSB1c2VkIHRvIGluc2VydAorICAgICAgICBpbWFnZXMgaW4gYSBkb2N1bWVudCwgc2VlIDx4cmVmIGxpbmtlbmQ9ImphZGVpbWFnZXMiLz4gYWJvdmUuCisgICAgICA8L3BhcmE+CisgICAgICA8c2VjdDMgaWQ9InNjcmVlbnNob3RhcHBlYXJhbmNlIj4KKyAgICAgICAgPHRpdGxlPlNjcmVlbnNob3QgQXBwZWFyYW5jZTwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIEZvciBhbGwgc2NyZWVuc2hvdHMgb2Ygd2luZG93cyB0aGF0IHR5cGljYWxseSBoYXZlIGJvcmRlcgorICAgICAgICAgIGRlY29yYXRpb25zIChlLmcuIGFwcGxpY2F0aW9ucyBhbmQgZGlhbG9ncywgYnV0IG5vdCBhcHBsZXRzCisgICAgICAgICAgaW4gYSA8aW50ZXJmYWNlPnBhbmVsPC9pbnRlcmZhY2U+KSwgR0RQIHN0YW5kYXJkcyBkaWN0YXRlCisgICAgICAgICAgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIHdpbmRvdy4gIChUaGlzIGlzIHRvIG1pbmltaXplIHBvc3NpYmxlCisgICAgICAgICAgY29uZnVzaW9uIHRvIHRoZSByZWFkZXIsIGltcHJvdmUgdGhlIGFwcGVhcmFuY2Ugb2YgR05PTUUKKyAgICAgICAgICBkb2N1bWVudHMsIGFuZCBndWFyYW50ZWUgdGhlIHNjcmVlbnNob3QgaXMgcmVhZGFibGUgd2hlbgorICAgICAgICAgIHByaW50ZWQuKSBBbGwgc2NyZWVuc2hvdHMgc2hvdWxkIGJlIHRha2VuIHdpdGggdGhlIFNhd0Zpc2gKKyAgICAgICAgICAoZm9ybWVybHkga25vd24gYXMgU2F3bWlsbCkgd2luZG93IG1hbmFnZXIgdXNpbmcgdGhlCisgICAgICAgICAgTWljcm9HdWkgdGhlbWUgYW5kIEhlbHZldGljYSAxMnB0IGZvbnQuIChBIGRpZmZlcmVudCB3aW5kb3cKKyAgICAgICAgICBtYW5hZ2VyIGNhbiBiZSB1c2VkIHByb3ZpZGVkIHRoZSBNaWNyb0d1aSB0aGVtZSBpcyBhdmFpbGFibGUKKyAgICAgICAgICBmb3IgdGhpcyB3aW5kb3cgbWFuYWdlciBhbmQgdGhlIGFwcGVhcmFuY2UgaXMgaWRlbnRpY2FsIHRvCisgICAgICAgICAgdGhhdCB3aGVuIHVzaW5nIHRoZSBTYXdGaXNoIHdpbmRvdyBtYW5hZ2VyLikgVGhlIGRlZmF1bHQKKyAgICAgICAgICBHVEsrIHRoZW1lKGd0aykgYW5kIGZvbnQgKEhlbHZldGljYSAxMiBwdCkgc2hvdWxkIGJlIHVzZWQKKyAgICAgICAgICBmb3IgYWxsIHNjcmVlbnNob3RzLiAgSWYgeW91IGFyZSB1bmFibGUgdG8gcHJvdmlkZQorICAgICAgICAgIHNjcmVlbnNob3RzIGluIHRoaXMgZm9ybSwgeW91IHNob3VsZCBjcmVhdGUgc2NyZWVuc2hvdHMgYXMKKyAgICAgICAgICB5b3Ugd2lzaCB0aGVtIHRvIGFwcGVhciBhbmQgc2VuZCB0aGVtIHRvIHRoZQorICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dub21lLWRvYy1saXN0LyI+CisgICAgICAgICAgPGNpdGV0aXRsZT5nbm9tZS1kb2MtbGlzdCBtYWlsaW5nIGxpc3Q8L2NpdGV0aXRsZT4gPC91bGluaz4KKyAgICAgICAgICByZXF1ZXN0aW5nIGEgR0RQIG1lbWJlciByZXByb2R1Y2UgdGhlc2Ugc2NyZWVuc2hvdHMgaW4gdGhlCisgICAgICAgICAgY29ycmVjdCBmb3JtYXQgYW5kIGVtYWlsIHRoZW0gdG8geW91LgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgICAgPHNlY3QzIGlkPSJzY3JlZW5zaG90dG9vbHMiPgorICAgICAgICA8dGl0bGU+U2NyZWVuc2hvdCBUb29sczwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRoZXJlIGFyZSBtYW55IHRvb2xzIGZvciB0YWtpbmcgc2NyZWVuc2hvdHMgaW4KKyAgICAgICAgICBHTk9NRS9MaW51eC4gUGVyaGFwcyB0aGUgbW9zdCBjb252ZW5pZW50IGlzIHRoZQorICAgICAgICAgIDxhcHBsaWNhdGlvbj5TY3JlZW4tU2hvb3RlciBBcHBsZXQ8L2FwcGxpY2F0aW9uPi4gSnVzdCBjbGljaworICAgICAgICAgIG9uIHRoZSB3aW5kb3cgaWNvbiBpbiB0aGUgYXBwbGV0IGFuZCB0aGVuIG9uIHRoZSB3aW5kb3cgeW91CisgICAgICAgICAgd291bGQgbGlrZSB0byB0YWtlIGEgc2NyZWVuc2hvdCBvZi4gKE5vdGUgdGhhdAorICAgICAgICAgIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZywgUE5HIGltYWdlcyB0YWtlbiBieQorICAgICAgICAgIHNjcmVlbnNob290ZXIgZG8gbm90IGFwcGVhciBwcm9wZXJseSBpbgorICAgICAgICAgIDxhcHBsaWNhdGlvbj5OZXRzY2FwZTwvYXBwbGljYXRpb24+IG9yIHRoZQorICAgICAgICAgIDxhcHBsaWNhdGlvbj5HTk9NRSBIZWxwIEJyb3dzZXI8L2FwcGxpY2F0aW9uPi4gIFlvdQorICAgICAgICAgIHNob3VsZCBzYXZlIHlvdXIgc2NyZWVuc2hvdCBhcyBhIEdJRiBhbmQKKyAgICAgICAgICB0aGVuIHVzZSA8Y29tbWFuZD5jb252ZXJ0IGZpbGVuYW1lLmdpZgorICAgICAgICAgIGZpbGVuYW1lLnBuZzwvY29tbWFuZD4uKSBGb3IgYXBwbGV0cworICAgICAgICAgIGluIGEgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPiwKKyAgICAgICAgICA8YXBwbGljYXRpb24+eHY8L2FwcGxpY2F0aW9uPiBjYW4gYmUgdXNlZCB0byBjcm9wIHRoZQorICAgICAgICAgIHNjcmVlbnNob3QgdG8gb25seSBpbmNsdWRlIHRoZSByZWxldmFudCBwb3J0aW9uIG9mIHRoZQorICAgICAgICAgIDxpbnRlcmZhY2U+UGFuZWw8L2ludGVyZmFjZT4uIE5vdGUgdGhhdAorICAgICAgICAgIDxhcHBsaWNhdGlvbj54djwvYXBwbGljYXRpb24+IGFuZCAKKyAgICAgICAgICA8YXBwbGljYXRpb24+Z2ltcDwvYXBwbGljYXRpb24+IGNhbiBib3RoIGJlIHVzZWQgZm9yIHRha2luZworICAgICAgICAgIHNjcmVlbnNob3RzLCBjcm9wcGluZyBzY3JlZW5zaG90cywgYW5kIGNvbnZlcnRpbmcgaW1hZ2UKKyAgICAgICAgICBmb3JtYXRzLiAKKyAgICAgICAgPC9wYXJhPgorICAgICAgPC9zZWN0Mz4KKyAgICAgIDxzZWN0MyBpZD0ic2NyZWVuc2hvdGZpbGVzIj4KKyAgICAgICAgPHRpdGxlPlNjcmVlbnNob3QgRmlsZXM8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTY3JlZW5zaG90cyBzaG91bGQgYmUga2VwdCBpbiB0aGUgbWFpbiBkb2N1bWVudGF0aW9uCisgICAgICAgICAgZGlyZWN0b3J5IHdpdGggeW91ciBTR01MIGZpbGUgZm9yIGFwcGxldHMsIG9yIHNob3VsZCBiZQorICAgICAgICAgIGtlcHQgaW4gYSBkaXJlY3RvcnkgY2FsbGVkICJmaWdzIiBmb3IgYXBwbGljYXRpb24gYW5kIG90aGVyCisgICAgICAgICAgZG9jdW1lbnRhdGlvbi4gIEFmdGVyIHlvdSB1c2UgPGNvbW1hbmQ+ZGIyaHRtbDwvY29tbWFuZD4gdG8KKyAgICAgICAgICBjb252ZXJ0IHlvdXIgU0dNTCBmaWxlIHRvIEhUTUwgKHNlZSA8eHJlZgorICAgICAgICAgIGxpbmtlbmQ9Im1ha2Utb3V0cHV0Ii8+KSwgeW91IHdpbGwgbmVlZCB0byBjb3B5IHlvdXIKKyAgICAgICAgICBzY3JlZW5zaG90cyAoZWl0aGVyIHRoZSBpbmRpdmlkdWFsIFBORyBmaWxlcyBmb3IgYXBwbGV0CisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgb3IgdGhlIHdob2xlICJmaWdzIiBkaXJlY3RvcnkgZm9yIG90aGVyCisgICAgICAgICAgZG9jdW1lbnRhdGlvbikgaW50byB0aGUgbmV3bHkgY3JlYXRlZCBIVE1MIGRpcmVjdG9yeS4gIE5vdGUKKyAgICAgICAgICB0aGF0IGV2ZXJ5IHRpbWUgeW91IHVzZSA8Y29tbWFuZD5kYjJodG1sPC9jb21tYW5kPiB0aGUgSFRNTAorICAgICAgICAgIGRpcmVjdG9yeSBpcyBlcmFzZWQgYW5kIHJld3JpdHRlbiwgc28gZG8gbm90IHN0b3JlIHlvdXIgb25seQorICAgICAgICAgIGNvcHkgb2YgdGhlIHNjcmVlbnNob3RzIGluIHRoYXQgZGlyZWN0b3J5LiAgSWYgeW91IHdpc2ggdG8KKyAgICAgICAgICBjcmVhdGUgUG9zdFNjcmlwdCBvciBQREYgb3V0cHV0LCB5b3Ugd2lsbCBuZWVkIHRvIG1hbnVhbGx5CisgICAgICAgICAgY29udmVydCB0aGUgUE5HIGltYWdlcyB0byBFUFMgYXMgZGVzY3JpYmVkIGluIDx4cmVmCisgICAgICAgICAgbGlua2VuZD0iamFkZWltYWdlcyIvPiwgYnV0IHdpbGwgbm90IG5lZWQgdG8gY29weSB0aGVzZQorICAgICAgICAgIGltYWdlcyBmcm9tIHRoZWlyIGRlZmF1bHQgbG9jYXRpb24sIGFzIHRoZXkgYXJlIGluY2x1ZGVkCisgICAgICAgICAgZGlyZWN0bHkgaW50byB0aGUgb3V0cHV0KFBvc3RTY3JpcHQgb2YgUERGKSBmaWxlLgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgIDwvc2VjdDI+CisKKworPCEtLSAjIyMjIyMjIEdldHRpbmcgU3RhcnRlZCB8IEFwcGxpY2F0aW9uIEJ1Z3MgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0iYXBwbGljYXRpb25idWdzIj4KKyAgICAgIDx0aXRsZT5BcHBsaWNhdGlvbiBCdWdzPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBEb2N1bWVudGF0aW9uIGF1dGhvcnMgdGVuZCB0byBpbnZlc3RpZ2F0ZSBhbmQgdGVzdCBhcHBsZXRzIGFuZAorICAgICAgICBhcHBsaWNhdGlvbnMgbW9yZSB0aG9yb3VnaGx5IHRoYW4gbW9zdCAKKyAgICAgICAgdXNlcnMuICBPZnRlbiBkb2N1bWVudGF0aW9uIGF1dGhvcnMgd2lsbCBkaXNjb3ZlciBvbmUgb3IKKyAgICAgICAgbW9yZSBidWdzIGluIHRoZSBzb2Z0d2FyZS4gIFRoZXNlIGJ1Z3MgdmFyeSBmcm9tIHNtYWxsIG9uZXMsCisgICAgICAgIHN1Y2ggYXMgbWlzLXNwZWxsZWQgd29yZHMgb3IgbWlzc2luZworICAgICAgICA8aW50ZXJmYWNlPkFib3V0PC9pbnRlcmZhY2U+IGRpYWxvZ3MgaW4gdGhlIG1lbnUsIHRvIGxhcmdlCisgICAgICAgIG9uZXMgd2hpY2ggY2F1c2UgdGhlIGFwcGxldCB0byBjcmFzaC4gIEFzIGFsbCB1c2VycywgeW91CisgICAgICAgIHNob3VsZCBiZSBzdXJlIHRvIHJlcG9ydCB0aGVzZSBidWdzIHNvIHRoYXQgYXBwbGljYXRpb24KKyAgICAgICAgZGV2ZWxvcGVycyBrbm93IG9mIHRoZW0gYW5kIGNhbiBmaXggdGhlbS4gIFRoZSBlYXNpZXN0IHdheSB0bworICAgICAgICBzdWJtaXQgYSBidWcgcmVwb3J0IGlzIGJ5IHVzaW5nIHRoZSA8YXBwbGljYXRpb24+QnVnCisgICAgICAgIEJ1ZGR5PC9hcHBsaWNhdGlvbj4gYXBwbGV0IHdoaWNoIGlzIHBhcnQgb2YgdGhlIGdub21lLWFwcGxldHMKKyAgICAgICAgcGFja2FnZS4gIAorICAgICAgPC9wYXJhPgorICAgIDwvc2VjdDI+CisKKworPCEtLSAjIyMjIyMjIEdldHRpbmcgU3RhcnRlZCB8IFVzaW5nIENWUyAgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0iY3ZzIj4KKyAgICAgIDx0aXRsZT5Vc2luZyBDVlM8L3RpdGxlPgorICAgICAgPHBhcmE+CisgICAgICAgIENWUyAoQ29uY3VycmVudCBWZXJzaW9ucyBTeXN0ZW0pIGlzIGEgdG9vbCB0aGF0IGFsbG93cworICAgICAgICBtdWx0aXBsZSBkZXZlbG9wZXJzIHRvIGNvbmN1cnJlbnRseSB3b3JrIG9uIGEgc2V0IG9mCisgICAgICAgIGRvY3VtZW50cywga2VlcGluZyB0cmFjayBvZiB0aGUgbW9kaWZpY2F0aW9ucyBtYWRlIGJ5IGVhY2gKKyAgICAgICAgcGVyc29uLiAgVGhlIGZpbGVzIGFyZSBzdG9yZWQgb24gYSBzZXJ2ZXIgYW5kIGVhY2ggZGV2ZWxvcGVyCisgICAgICAgIGNoZWNrcyBmaWxlcyBvdXQsIG1vZGlmaWVzIHRoZW0sIGFuZCB0aGVuIGNoZWNrcyBpbiB0aGVpcgorICAgICAgICBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBmaWxlcy4gIE1hbnkgR05PTUUgcHJvZ3JhbXMgYW5kCisgICAgICAgIGRvY3VtZW50cyBhcmUgc3RvcmVkIGluIENWUy4gIFRoZSBHTk9NRSBDVlMgc2VydmVyIGFsbG93cworICAgICAgICB1c2VycyB0byBhbm9ueW1vdXNseSBjaGVjayBvdXQgQ1ZTIGZpbGVzLiBNb3N0IEdEUCBtZW1iZXJzCisgICAgICAgIHdpbGwgbmVlZCB0byB1c2UgYW5vbnltb3VzIENWUyB0byBkb3dubG9hZCB0aGUgbW9zdCB1cC10by1kYXRlCisgICAgICAgIHZlcnNpb24gb2YgZG9jdW1lbnRhdGlvbiBvciBwcm9ncmFtcy4gIE1vZGlmaWVkIGRvY3VtZW50cyB3aWxsCisgICAgICAgIHR5cGljYWxseSBiZSBlbWFpbGVkIHRvIHRoZSB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyLiBDb3JlCisgICAgICAgIEdEUCBtZW1iZXJzIG1heSBhbHNvIGJlIGdyYW50ZWQgbG9naW4gQ1ZTIHByaXZpbGVnZXMgc28gdGhleQorICAgICAgICBtYXkgY29tbWl0IG1vZGlmaWVkIGZpbGVzIGRpcmVjdGx5IHRvIENWUy4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHNlY3QzIGlkPSJhbm9ueW1vdXNjdnMiPgorICAgICAgICA8dGl0bGU+QW5vbnltb3VzIENWUzwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFRvIGFub255bW91c2x5IGNoZWNrIG91dCBkb2N1bWVudHMgZnJvbSBDVlMsIHlvdSBtdXN0IGZpcnN0CisgICAgICAgICAgbG9nIGluLiAgRnJvbSB0aGUgYmFzaCBzaGVsbCwgeW91IHNob3VsZCBzZXQgeW91ciBDVlNST09UCisgICAgICAgICAgc2hlbGwgdmFyaWFibGUgd2l0aCA8Y29tbWFuZD4gIGV4cG9ydAorICAgICAgICAgIENWU1JPT1Q9Jzpwc2VydmVyOmFub255bW91c0Bhbm9uY3ZzLmdub21lLm9yZzovY3ZzL2dub21lJzwvY29tbWFuZD4KKyAgICAgICAgICBhbmQgdGhlbiBsb2dpbiB3aXRoIDxjb21tYW5kPmN2cyBsb2dpbjwvY29tbWFuZD4odGhlcmUgaXMgbm8KKyAgICAgICAgICBwYXNzd29yZCwganVzdCBoaXQgcmV0dXJuKS4gQXMgYW4gZXhhbXBsZSwgd2Ugd2lsbCB1c2UgdGhlCisgICAgICAgICAgImdub21lLWRvY3UvZ2RwIiBtb2R1bGUgd2hpY2ggY29udGFpbnMgdGhpcyBhbmQgc2V2ZXJhbAorICAgICAgICAgIG90aGVyIGRvY3VtZW50cy4gVG8gY2hlY2sgdGhlc2UgZG9jdW1lbnRzIG91dCBmb3IgdGhlIGZpcnN0CisgICAgICAgICAgdGltZSwgdHlwZSA8Y29tbWFuZD5jdnMgLXozIGNoZWNrb3V0CisgICAgICAgICAgZ25vbWUtZG9jdS9nZHA8L2NvbW1hbmQ+LiBBZnRlciB5b3UgaGF2ZSB0aGlzIGRvY3VtZW50CisgICAgICAgICAgY2hlY2tlZCBvdXQgYW5kIHlvdSB3b3VsZCBsaWtlIHRvIGRvd25sb2FkIGFueSB1cGRhdGVzIG9uCisgICAgICAgICAgdGhlIENWUyBzZXJ2ZXIsIHVzZSA8Y29tbWFuZD5jdnMgLXozIHVwZGF0ZSAtUGQ8L2NvbW1hbmQ+LgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgICA8c2VjdDMgaWQ9ImxvZ2luY3ZzIj4KKyAgICAgICAgPHRpdGxlPkxvZ2luIENWUzwvdGl0bGU+ICA8cGFyYT4gIElmIHlvdSBoYXZlIGJlZW4gZ2l2ZW4gYQorICAgICAgICBsb2dpbiBmb3IgdGhlIEdOT01FIENWUyBzZXJ2ZXIsICB5b3UgbWF5IGNvbW1pdCB5b3VyIGZpbGUKKyAgICAgICAgbW9kaWZpY2F0aW9ucyB0byBDVlMuICBCZSBzdXJlIHRvIHJlYWQgdGhlIGZvbGxvd2luZyBzZWN0aW9uCisgICAgICAgIG9uIENWUyBldGlxdWV0dGUgYmVmb3JlIG1ha2luZyBhbnkgY29tbWl0cyB0byBDVlMuICBUbyBsb2cgaW4KKyAgICAgICAgdG8gdGhlIENWUyBzZXJ2ZXIgYXMgdXNlcgorICAgICAgICA8Y29tbWFuZD48cmVwbGFjZWFibGU+dXNlcm5hbWU8L3JlcGxhY2VhYmxlPjwvY29tbWFuZD4gd2l0aCBhCisgICAgICAgIHBhc3N3b3JkLCB5b3UgbXVzdCBmaXJzdCBzZXQgeW91ciBDVlNST09UIHNoZWxsIHZhcmlhYmxlIHdpdGgKKyAgICAgICAgPGNvbW1hbmQ+IGV4cG9ydAorICAgICAgICBDVlNST09UPSc6cHNlcnZlcjo8cmVwbGFjZWFibGU+dXNlcm5hbWU8L3JlcGxhY2VhYmxlPkBjdnMuZ25vbWUub3JnOi9jdnMvZ25vbWUnPC9jb21tYW5kPi4KKyAgICAgICAgTG9nIGluIHdpdGggPGNvbW1hbmQ+Y3ZzIGxvZ2luPC9jb21tYW5kPiBhbmQgZW50ZXIgeW91cgorICAgICAgICBwYXNzd29yZC4gWW91IG1heSBjaGVjayBvdXQgYW5kIHVwZGF0ZSBtb2R1bGVzIGFzIGRlc2NyaWJlZAorICAgICAgICBhYm92ZSBmb3IgYW5vbnltb3VzIENWUyBhY2Nlc3MuICBBcyBhIGxvZ2luIENWUyB1c2VyLCB5b3UgbWF5CisgICAgICAgIGFsc28gY2hlY2sgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBmaWxlIGludG8gdGhlIENWUyBzZXJ2ZXIuCisgICAgICAgIFRvIGNoZWNrCisgICAgICAgIDxjb21tYW5kPjxyZXBsYWNlYWJsZT5maWxlbmFtZTwvcmVwbGFjZWFibGU+PC9jb21tYW5kPiBpbnRvCisgICAgICAgIHRoZSBDVlMgc2VydmVyLCB0eXBlIDxjb21tYW5kPmN2cyAtejMgY29tbWl0CisgICAgICAgIDxyZXBsYWNlYWJsZT5maWxlbmFtZTwvcmVwbGFjZWFibGU+PC9jb21tYW5kPi4gWW91IHdpbGwgYmUKKyAgICAgICAgZ2l2ZW4gYSB2aSBlZGl0b3Igd2luZG93IHRvIHR5cGUgaW4gYSBicmllZiBsb2cgZW50cnksCisgICAgICAgIHN1bW1hcml6aW5nIHlvdXIgY2hhbmdlcy4gIFRoZSBkZWZhdWx0IGVkaXRvciBjYW4gYmUgY2hhbmdlZAorICAgICAgICB1c2luZyB0aGUgPHZhcm5hbWU+RURJVE9SPC92YXJuYW1lPiBlbnZpcm9ubWVudCB2YXJpYWJsZSBvcgorICAgICAgICB3aXRoIHRoZSA8Y29tbWFuZD48b3B0aW9uPi1lPC9vcHRpb24+PC9jb21tYW5kPiBvcHRpb24uIFlvdQorICAgICAgICBtYXkgYWxzbyBjaGVjayBpbiBhbnkgbW9kaWZpY2F0aW9ucyB0byBmaWxlcyBpbiB0aGUgd29ya2luZworICAgICAgICBkaXJlY3RvcnkgYW5kIHN1YmRpcmVjdG9yaWVzIHVzaW5nIDxjb21tYW5kPmN2cyAtejMKKyAgICAgICAgY29tbWl0PC9jb21tYW5kPi4gIFRvCisgICAgICAgIGFkZCBhIG5ldyBmaWxlIHRvIHRoZSBDVlMgc2VydmVyLCB1c2UgPGNvbW1hbmQ+Y3ZzIC16MyBhZGQKKyAgICAgICAgPHJlcGxhY2VhYmxlPmZpbGVuYW1lPC9yZXBsYWNlYWJsZT48L2NvbW1hbmQ+LCBmb2xsb3dlZCBieSB0aGUKKyAgICAgICAgY29tbWl0IGNvbW1hbmQuCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisKKyAgICAgIDxzZWN0MyBpZD0iY3ZzZXRpcXVldHRlIj4KKyAgICAgICAgPHRpdGxlPkNWUyBFdGlxdWV0dGU8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBCZWNhdXNlIGZpbGVzIGluIENWUyBhcmUgdHlwaWNhbGx5IHVzZWQgYW5kIG1vZGlmaWVkIGJ5CisgICAgICAgICAgbXVsdGlwbGUgZGV2ZWxvcGVycyBhbmQgZG9jdW1lbnRhdGlvbiBhdXRob3JzLCB1c2VycyBzaG91bGQKKyAgICAgICAgICBleGVyY2lzZSBhIGZldyBzaW1wbGUgcHJhY3RpY2VzIG91dCBvZiBjb3VydGVzeSB0b3dhcmRzIHRoZQorICAgICAgICAgIG90aGVyIENWUyB1c2VycyBhbmQgdGhlIHByb2plY3QgbGVhZGVyLiAgRmlyc3QsIHlvdSBzaG91bGQKKyAgICAgICAgICBub3QgbWFrZSBDVlMgY29tbWl0cyB0byBhIHBhY2thZ2Ugd2l0aG91dCBmaXJzdCBkaXNjdXNzaW5nCisgICAgICAgICAgeW91ciBwbGFucyB3aXRoIHRoZSBwcm9qZWN0IGxlYWRlci4gIFRoaXMgd2F5LCB0aGUgcHJvamVjdAorICAgICAgICAgIGxlYWRlciBrbm93cyB3aG8gaXMgbW9kaWZ5aW5nIHRoZSBmaWxlcyBhbmQgZ2VuZXJhbGx5LCB3aGF0CisgICAgICAgICAgc29ydCBvZiBjaGFuZ2VzL2RldmVsb3BtZW50IGlzIGJlaW5nIGRvbmUuICBBbHNvLCB3aGVuZXZlciBhCisgICAgICAgICAgQ1ZTIHVzZXIgY29tbWl0cyBhIGZpbGUgdG8gQ1ZTLCB0aGV5IHNob3VsZCBtYWtlIGFuIGVudHJ5IGluCisgICAgICAgICAgdGhlIENWUyBsb2cgYW5kIGluIHRoZSA8ZmlsZW5hbWU+Q2hhbmdlTG9nPC9maWxlbmFtZT4gc28KKyAgICAgICAgICB0aGF0IG90aGVyIHVzZXJzIGtub3cgd2hvIGlzIG1ha2luZyBtb2RpZmljYXRpb25zIGFuZCB3aGF0CisgICAgICAgICAgaXMgYmVpbmcgbW9kaWZpZWQuICBXaGVuIG1vZGlmeWluZyBmaWxlcyBjcmVhdGVkIGJ5IG90aGVycywKKyAgICAgICAgICB5b3Ugc2hvdWxkIGZvbGxvdyB0aGUgaW5kZW50YXRpb24gc2NoZW1lIHVzZWQgYnkgdGhlIGluaXRpYWwKKyAgICAgICAgICBhdXRob3IuCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisgICAgPC9zZWN0Mj4KKyAgPC9zZWN0MT4KKyAgCis8IS0tICMjIyMjIyMjIyMjIyMjIyMjIFRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFN5c3RlbSMjIyMjIyMjIyMjIyMjIworLS0+CisKKyAgPHNlY3QxIGlkPSJnbm9tZWRvY3N5c3RlbSI+CisgICAgPHRpdGxlPlRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFN5c3RlbTwvdGl0bGU+CisKKzwhLS0gIyMjIyMjIyBUaGUgR05PTUUgRG9jdW1lbnRhdGlvbiBTeXN0ZW0gfCBUaGUgR05PTUUgSGVscCBCcm93c2VyCisjIyMjIyMjIC0tPgorICAgIAorICAgIDxzZWN0MiBpZD0iZ25vbWVoZWxwYnJvd3NlciI+CisgICAgICA8dGl0bGU+VGhlIEdOT01FIEhlbHAgQnJvd3NlcjwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgQXQgdGhlIGNvcmUgb2YgdGhlIEdOT01FIGhlbHAgc3lzdGVtIGlzIHRoZSA8YXBwbGljYXRpb24+R05PTUUKKyAgICAgICAgSGVscCBCcm93c2VyPC9hcHBsaWNhdGlvbj4uIFRoZSA8YXBwbGljYXRpb24+SGVscAorICAgICAgICBCcm93c2VyPC9hcHBsaWNhdGlvbj4gcHJvdmlkZXMgYSB1bmlmaWVkIGludGVyZmFjZSB0byBzZXZlcmFsCisgICAgICAgIGRpc3RpbmN0IGRvY3VtZW50YXRpb24gc3lzdGVtcyBvbiBMaW51eC9Vbml4IHN5c3RlbXM6IG1hbgorICAgICAgICBwYWdlcywgdGV4aW5mbyBwYWdlcywgTGludXggRG9jdW1lbnRhdGlvbiBQcm9qZWN0KExEUCkKKyAgICAgICAgZG9jdW1lbnRzLCBHTk9NRSBhcHBsaWNhdGlvbiBkb2N1bWVudGF0aW9uLCBhbmQgb3RoZXIgR05PTUUKKyAgICAgICAgZG9jdW1lbnRzLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8YXBwbGljYXRpb24+R05PTUUgSGVscCBCcm93c2VyPC9hcHBsaWNhdGlvbj4gd29ya3MgYnkKKyAgICAgICAgc2VhcmNoaW5nIHN0YW5kYXJkIGRpcmVjdG9yaWVzIGZvciBkb2N1bWVudHMgd2hpY2ggYXJlIHRvIGJlCisgICAgICAgIHByZXNlbnRlZC4gIFRodXMsIHRoZSBkb2N1bWVudGF0aW9uIHRoYXQgYXBwZWFycyBpbiB0aGUgR0hCIGlzCisgICAgICAgIHNwZWNpZmljIHRvIGVhY2ggY29tcHV0ZXIgYW5kIHdpbGwgdHlwaWNhbGx5IG9ubHkgcmVwcmVzZW50CisgICAgICAgIHNvZnR3YXJlIHRoYXQgaXMgaW5zdGFsbGVkIG9uIHRoZSBjb21wdXRlci4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorCis8IS0tICMjIyMjIyMgVGhlIEdOT01FIERvY3VtZW50YXRpb24gU3lzdGVtIHwgVGhlIEdOT01FIEhlbHAgQnJvd3NlcgorIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0iZ25vbWVoZWxwYnJvd3NlcjIiPgorICAgICAgPHRpdGxlPlRoZSBHTk9NRSBIZWxwIEJyb3dzZXIgKEdOT01FLTIuMCk8L3RpdGxlPiA8cGFyYT4gSW4KKyAgICAgIEdOT01FIDIuMCwgdGhlIDxhcHBsaWNhdGlvbj5HTk9NRSBIZWxwIEJyb3dzZXI8L2FwcGxpY2F0aW9uPgorICAgICAgd2lsbCBiZSByZXBsYWNlZCBieSA8YXBwbGljYXRpb24+TmF1dGlsdXM8L2FwcGxpY2F0aW9uPi4KKyAgICAgIE5hdXRpbHVzIHdpbGwgYmUgdGhlIGZpbGUgbWFuYWdlci9ncmFwaGljYWwgc2hlbGwgZm9yIEdOT01FIDIuMAorICAgICAgYW5kIHdpbGwgYWxzbyBpbXBsZW1lbnQgYSBtb3JlIHNvcGhpc3RpY2F0ZWQgaGVscCBzeXN0ZW0gdGhhbgorICAgICAgdGhhdCB1c2VkIGJ5IHRoZSA8YXBwbGljYXRpb24+R05PTUUgSGVscCBCcm93c2VyPC9hcHBsaWNhdGlvbj4KKyAgICAgIHVzZWQgaW4gR05PTUUgMS4wLiAgSXQgd2lsbCByZWFkIGFuZCBkaXNwbGF5IERvY0Jvb2sgZmlsZXMKKyAgICAgIGRpcmVjdGx5LCBhdm9pZGluZyB0aGUgbmVlZCBmb3IgZHVwbGljYXRpbmcgZG9jdW1lbnRzIGluIGJvdGgKKyAgICAgIERvY0Jvb2sgYW5kIEhUTUwgZm9ybWF0cy4gIEl0cyBkaXNwbGF5IGVuZ2luZSBmb3IgRG9jQm9vayB3aWxsCisgICAgICBiZSBtdWNoIGZhc3RlciB0aGFuIHJ1bm5pbmcgPGFwcGxpY2F0aW9uPmphZGU8L2FwcGxpY2F0aW9uPiB0bworICAgICAgY29udmVydCB0byBIVE1MIGZvciByZW5kZXJpbmcuICBCZWNhdXNlIGl0IHVzZXMgdGhlIG9yaWdpbmFsCisgICAgICBEb2NCb29rIHNvdXJjZSBmb3IgZG9jdW1lbnRhdGlvbiwgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBkbyBtb3JlCisgICAgICBzb3BoaXN0aWNhdGVkIHNlYXJjaGluZyB1c2luZyB0aGUgbWV0YSBpbmZvcm1hdGlvbiBpbmNsdWRlZCBpbgorICAgICAgdGhlIGRvY3VtZW50cy4gIEFuZCBzaW5jZSBOYXV0aWx1cyBpcyBhIHZpcnR1YWwgZmlsZSBzeXN0ZW0KKyAgICAgIGxheWVyIHdoaWNoIGlzIEludGVybmV0LWNhcGFibGUsIGl0IHdpbGwgYmUgYWJsZSB0byBmaW5kIGFuZAorICAgICAgZGlzcGxheSBkb2N1bWVudHMgd2hpY2ggYXJlIG9uIHRoZSB3ZWIgYXMgd2VsbCBhcyB0aG9zZSBvbiB0aGUKKyAgICAgIGxvY2FsIGZpbGUgc3lzdGVtLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbgorICAgICAgPGFwcGxpY2F0aW9uPk5hdXRpbHVzPC9hcHBsaWNhdGlvbj4sIHZpc2l0IHRoZSAjbmF1dGlsdXMgSVJDCisgICAgICBjaGFubmVsIG9uIGlyYy5nbm9tZS5vcmcuICA8L3BhcmE+CisgICAgPC9zZWN0Mj4KKworPCEtLSAjIyMjIyMjIFRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFN5c3RlbSB8IEdOT01FIE9uLVRoZS1GbHkKK0RvY3VtZW50YXRpb24gR2VuZXJhdGlvbiAgIyMjIyMjIyAtLT4KKyAgICAKKyAgICA8c2VjdDIgaWQ9Imdub21laGVscG9udGhlZmx5Ij4KKyAgICAgIDx0aXRsZT5EeW5hbWljIERvY3VtZW50IFN5bnRoZXNpcyhHTk9NRS0yLjApPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBHTk9NRSB1c2VzIHRoZSBkb2N1bWVudGF0aW9uIHByZXNlbnRlZCBieSBhbGwgdGhlIHZhcmlvdXMKKyAgICAgICAgR05PTUUgY29tcG9uZW50cyBhbmQgYXBwbGljYXRpb25zIGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtIHRvCisgICAgICAgIHByZXNlbnQgYSBjb21wbGV0ZSBhbmQgY3VzdG9taXplZCBkb2N1bWVudGF0aW9uIGVudmlyb25tZW50CisgICAgICAgIGRlc2NyaWJpbmcgb25seSBjb21wb25lbnRzIHdoaWNoIGFyZSBjdXJyZW50bHkgaW5zdGFsbGVkIG9uIGEKKyAgICAgICAgdXNlcnMgc3lzdGVtLiAgU29tZSBvZiB0aGlzIGRvY3VtZW50YXRpb24sIHN1Y2ggYXMgdGhlIG1hbnVhbHMKKyAgICAgICAgZm9yIGFwcGxldHMsIHdpbGwgYmUgY29tYmluZWQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGFwcGVhcnMgdG8KKyAgICAgICAgYmUgYSBzaW5nbGUgZG9jdW1lbnQuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgQnkgdXNpbmcgc3VjaCBhIHN5c3RlbSwgeW91IGNhbiBiZSBzdXJlIHRoYXQgYW55IEdOT01FIGFwcCB5b3UKKyAgICAgICAgaW5zdGFsbCB0aGF0IGhhcyBkb2N1bWVudGF0aW9uIHdpbGwgc2hvdyB1cCBpbiB0aGUgaW5kZXgsCisgICAgICAgIHRhYmxlIG9mIGNvbnRlbnRzLCBhbnkgc2VhcmNoIHlvdSBkbyBpbiB0aGUgaGVscCBicm93c2VyLgorICAgICAgPC9wYXJhPgorICAgIDwvc2VjdDI+CisgICAgCis8IS0tICMjIyMjIyMgVGhlIEdOT01FIERvY3VtZW50YXRpb24gU3lzdGVtIHwgVGhlIEdOT01FIERvY3VtZW50YXRpb24KK0NvbXBvbmVudHMgICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9Imdub21laGVscGNvbXBvbmVudHMiPgorICAgICAgPHRpdGxlPlRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIENvbXBvbmVudHM8L3RpdGxlPgorCisgICAgICA8c2VjdDMgaWQ9ImFwcGxpY2F0aW9ubWFudWFsc2ludHJvIj4KKyAgICAgICAgPHRpdGxlPkFwcGxpY2F0aW9uIE1hbnVhbHM8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBFdmVyeSBHTk9NRSBhcHBsaWNhdGlvbiBzaG91bGQgaGF2ZSBhbiBhcHBsaWNhdGlvbiBtYW51YWwuCisgICAgICAgICAgQW4gYXBwbGljYXRpb24gbWFudWFsIGlzIGEgZG9jdW1lbnQgc3BlY2lmaWMgdG8gdGhlCisgICAgICAgICAgcGFydGljdWxhciBhcHBsaWNhdGlvbiB3aGljaCBleHBsYWlucyB0aGUgdmFyaW91cyB3aW5kb3dzCisgICAgICAgICAgYW5kIGZlYXR1cmVzIG9mIHRoZSBhcHBsaWNhdGlvbi4gIEFwcGxpY2F0aW9uIE1hbnVhbHMKKyAgICAgICAgICB0eXBpY2FsbHkgdXNlIHNjcmVlbnNob3RzIChQTkcgZm9ybWF0KSBmb3IgY2xhcml0eS4gIFdyaXRpbmcKKyAgICAgICAgICBhcHBsaWNhdGlvbiBtYW51YWxzIGlzIGRpc2N1c3NlZCBpbiBtb3JlIGRldGFpbCBpbiA8eHJlZgorICAgICAgICAgIGxpbmtlbmQ9IndyaXRpbmdhcHBsaWNhdGlvbm1hbnVhbHMiIC8+IGJlbG93LgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgICA8c2VjdDMgaWQ9ImFwcGxpY2F0aW9uaGVscGludHJvIj4KKyAgICAgICAgPHRpdGxlPkFwcGxpY2F0aW9uIEhlbHA8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBBcHBsaWNhdGlvbnMgc2hvdWxkIGhhdmUgYSA8Z3VpYnV0dG9uPkhlbHA8L2d1aWJ1dHRvbj4KKyAgICAgICAgICBidXR0b24gb24gc2NyZWVucyBvbiB3aGljaCB1c2VycyBtYXkgbmVlZCBoZWxwLiAgVGhlc2UKKyAgICAgICAgICA8Z3VpYnV0dG9uPkhlbHA8L2d1aWJ1dHRvbj4gYnV0dG9ucyBzaG91bGQgcHVsbCB1cCB0aGUKKyAgICAgICAgICBkZWZhdWx0IGhlbHAgYnJvd3NlciwgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgICAgICA8dmFybmFtZT5naGVscDwvdmFybmFtZT4gVVJMIEhhbmRsZXIgKGNvbmZpZ3VyZWQgdXNpbmcgdGhlCisgICAgICAgICAgPGFwcGxpY2F0aW9uPkNvbnRyb2wgQ2VudGVyPC9hcHBsaWNhdGlvbj4pLCB0eXBpY2FsbHkgdGhlCisgICAgICAgICAgPGFwcGxpY2F0aW9uPkdOT01FIEhlbHAgQnJvd3NlcjwvYXBwbGljYXRpb24+LiAgVGhlIGhlbHAKKyAgICAgICAgICBicm93c2VyIHNob3VsZCBzaG93IGVpdGhlciB0aGUgZmlyc3QgcGFnZSBvZiB0aGUgYXBwbGljYXRpb24KKyAgICAgICAgICBtYW51YWwsIG9yIGVsc2UgdGhlIHJlbGV2YW50IHBhZ2UgdGhlcmVvZi4gQXBwbGljYXRpb24gaGVscAorICAgICAgICAgIGlzIGRlc2NyaWJlZCBpbiBtb3JlIGRldGFpbCBpbiA8eHJlZgorICAgICAgICAgIGxpbmtlbmQ9ImFwcGxpY2F0aW9uaGVscGJ1dHRvbnMiIC8+IGJlbG93LgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgICA8c2VjdDMgaWQ9ImNvbnRleHRzZW5zaXRpdmVoZWxwaW50cm8iPgorICAgICAgICA8dGl0bGU+QXBwbGljYXRpb24gQ29udGV4dCBTZW5zaXRpdmUgSGVscCAoY29taW5nIGluCisgICAgICAgIEdOT01FLTIuMCk8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBDb250ZXh0IHNlbnNpdGl2ZSBoZWxwIGlzIGEgc3lzdGVtIHdoaWNoIHdpbGwgYWxsb3cgdGhlIHVzZXIKKyAgICAgICAgICB0byBxdWVyeSBhbnkgcGFydCAoYnV0dG9uLCB3aWRnZXQsIGV0Yy4pIG9mIGFuIGFwcGxpY2F0aW9uCisgICAgICAgICAgd2luZG93LiAgVGhpcyBpcyBkb25lIGJ5IGVpdGhlciBlbnRlcmluZyBhIENTIEhlbHAgbW9kZSBieQorICAgICAgICAgIGNsaWNraW5nIG9uIGFuIGljb24gb3IgYnkgcmlnaHQgY2xpY2tpbmcgb24gdGhlIGFwcGxpY2F0aW9uCisgICAgICAgICAgcGFydCBhbmQgc2VsZWN0aW5nICJXaGF0J3MgVGhpcyIgb3Igd2hhdGV2ZXIgaXMgZGVjaWRlZCBvbgorICAgICAgICAgIGF0IHRoZSB0aW1lLiAgQ29udGV4dCBzZW5zaXRpdmUgaGVscCBpcyBkZXNjcmliZWQgaW4gbW9yZQorICAgICAgICAgIGRldGFpbCBpbiA8eHJlZiBsaW5rZW5kPSJ3cml0aW5nY29udGV4dHNlbnNpdGl2ZWhlbHAiIC8+CisgICAgICAgICAgYmVsb3cuCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisKKyAgICAgIDxzZWN0MyBpZD0idXNlcmd1aWRlIj4KKyAgICAgICAgPHRpdGxlPlRoZSBHTk9NRSBVc2VyIEd1aWRlPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIDxjaXRldGl0bGU+R05PTUUgVXNlciBHdWlkZTwvY2l0ZXRpdGxlPiBkZXNjcmliZXMgdGhlCisgICAgICAgICAgR05PTUUgZGVza3RvcCBlbnZpcm9ubWVudCBhbmQgY29yZSBjb21wb25lbnRzIG9mIEdOT01FIHN1Y2gKKyAgICAgICAgICBhcyB0aGUgPGFwcGxpY2F0aW9uPnBhbmVsPC9hcHBsaWNhdGlvbj4gYW5kCisgICAgICAgICAgPGFwcGxpY2F0aW9uPmNvbnRyb2wgY2VudGVyPC9hcHBsaWNhdGlvbj4uIEluIEdOT01FIDEueCB0aGlzCisgICAgICAgICAgd2FzIHRoZSBtYWluIGFuZCBvbmx5IHNvdXJjZSBvZiBkb2N1bWVudGF0aW9uLiBJbiBHTk9NRSAyLjAKKyAgICAgICAgICB0aGlzIHdpbGwgYmVjb21lIGEgZG9jdW1lbnQgZm9yIHRoZSB3ZWIgYW5kIGZvciBwcmludGluZworICAgICAgICAgIHRoYXQgaXMgZGVyaXZlZCBmcm9tIHZhcmlvdXMgcGFydHMgY2hvc2VuIGluIHRoZSBzeXN0ZW0gdGhhdAorICAgICAgICAgIGFyZSBuZWNlc3NhcnkgZm9yIHRoZSBuZXcgdXNlciB0byB1bmRlcnN0YW5kLgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgICA8c2VjdDMgaWQ9InVzZXJkb2NzIj4KKyAgICAgICAgPHRpdGxlPlVzZXIgRG9jdW1lbnRzPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgQXNpZGUgZnJvbSB0aGUgPGNpdGV0aXRsZT5HTk9NRSBVc2VyIEd1aWRlPC9jaXRldGl0bGU+LAorICAgICAgICAgIHRoZXJlIGFyZSBzZXZlcmFsIG90aGVyIGRvY3VtZW50cyB0byBoZWxwIEdOT01FIHVzZXJzIGxlYXJuCisgICAgICAgICAgR05PTUUsIGluY2x1ZGluZyB0aGUgPGNpdGV0aXRsZT5HTk9NRSBGQVE8L2NpdGV0aXRsZT4sCisgICAgICAgICAgPGNpdGV0aXRsZT5HTk9NRSBJbnN0YWxsYXRpb24gYW5kIENvbmZpZ3VyYXRpb24KKyAgICAgICAgICBHdWlkZTwvY2l0ZXRpdGxlPiwgYW5kIHRoZSA8Y2l0ZXRpdGxlPkdOT01FIEFkbWluaXN0cmF0b3JzCisgICAgICAgICAgR3VpZGU8L2NpdGV0aXRsZT4uCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisKKyAgICAgIDxzZWN0MyBpZD0iZGV2ZWxvcGVyZG9jcyI+CisgICAgICAgIDx0aXRsZT5EZXZlbG9wZXIgRG9jdW1lbnRzPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlcmUgYXJlIG1hbnkgV2hpdGUgUGFwZXJzLCBUdXRvcmlhbHMsIEhPV1RPJ3MgYW5kIEZBUSdzIHRvCisgICAgICAgICAgbWFrZSBwcm9ncmFtbWluZyBHTk9NRSBhbmQgR05PTUUgYXBwbGljYXRpb25zIGFzIGVhc3kgYXMKKyAgICAgICAgICBwb3NzaWJsZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBBUEkgZG9jdW1lbnRhdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSBmb3IgdGhlIEdOT01FIGxpYnJhcmllcy4gVGhpcyBpcworICAgICAgICAgIGRldGFpbGVkIGRvY3VtZW50YXRpb24gb2YgdGhlIGNvZGUgdGhhdCBpcyB1c2VkIHRvIGJ1aWxkIEdOT01FCisgICAgICAgICAgYXBwcy4gWW91IGNhbiBrZWVwIHVwIHdpdGggdGhlIEdOT01FIEFQSSBkb2NzIG9uIHRoZSA8dWxpbmsKKyAgICAgICAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2RvYy9BUEkvIiB0eXBlPSJodHRwIj5HTk9NRSBBUEkKKyAgICAgICAgICBSZWZlcmVuY2U8L3VsaW5rPiBwYWdlLgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgICA8c2VjdDMgaWQ9InByb2plY3Rkb2NzIj4KKyAgICAgICAgPHRpdGxlPlByb2plY3QgRG9jdW1lbnRzPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgU29tZSBHTk9NRSBwcm9qZWN0cyBoYXZlIGRvY3VtZW50YXRpb24gdG8gbWFpbnRhaW4KKyAgICAgICAgICBjb25zaXN0ZW5jeSBpbiB0aGVpciBwcm9kdWN0IGFuZCB0byBoZWxwIG5ldyBjb250cmlidXRvcnMKKyAgICAgICAgICBnZXQgdXAgdG8gc3BlZWQgcXVpY2tseS4gQW1vbmcgdGhlc2UgYXJlIHRoZSBHRFAgZG9jdW1lbnRzLAorICAgICAgICAgIHN1Y2ggYXMgdGhlIG9uZSB5b3UgYXJlIHJlYWRpbmcgbm93LgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgIDwvc2VjdDI+CisgIDwvc2VjdDE+CisgIAorICAKKzwhLS0gIyMjIyMjIyMjIyMjIyMjIyMgRG9jQm9vayBCYXNpY3MgIyMjIyMjIyMjIyMjIyMjIC0tPgorCisgIDxzZWN0MSBpZD0iZG9jYm9va2Jhc2ljcyI+CisgICAgPHRpdGxlPkRvY0Jvb2sgQmFzaWNzIDwvdGl0bGU+ICAKKzwhLS0gIyMjIyMjIyBEb2NCb29rIEJhc2ljcyB8IEludHJvZHVjdGlvbiB0byBEb2NCb29rICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9ImludHJvdG9kb2Nib29rIj4KKyAgICAgIDx0aXRsZT5JbnRyb2R1Y3Rpb24gdG8gRG9jQm9vazwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG8gdW5kZXJzdGFuZCBEb2NCb29rLCBhIGJhc2ljIHVuZGVyc3RhbmRpbmcgb2YgU0dNTCBpcworICAgICAgICBoZWxwZnVsLiBTR01MIHN0YW5kcyBmb3IgU3RhbmRhcmQgR2VuZXJhbCBNYXJrdXAgTGFuZ3VhZ2UgYW5kCisgICAgICAgIGlzIG9uZSBvZiB0aGUgZmlyc3QgbWFya3VwIGxhbmd1YWdlcyBldmVyeSBjcmVhdGVkLiBIVE1MIGlzCisgICAgICAgIGFjdHVhbGx5IGRlcml2ZWQgZnJvbSBTR01MIGFuZCBYTUwgaXMgYSBzdWJzZXQgb2YgU0dNTC4gIFNHTUwKKyAgICAgICAgdXNlcyB3aGF0IGlzIGNhbGxlZCBhIERvY3VtZW50IFR5cGUgRGVmaW5pdGlvbiB0byBzcGVjaWZ5CisgICAgICAgIDxlbXBoYXNpcz5lbGVtZW50czwvZW1waGFzaXM+IHdoaWNoIGFyZSBjb250YWluZWQgYmV0d2VlbgorICAgICAgICBicmFja2V0cywgJmx0OyBhbmQgPi4gVGV4dCBpcyBtYXJrZWQgYnkgYm90aCBiZWdpbm5pbmcgYW5kCisgICAgICAgIGVuZGluZyBlbGVtZW50cywgZm9yIGV4YW1wbGUgaW4gdGhlIERvY0Jvb2sgRFRELCBvbmUgZGVub3RlcyBhCisgICAgICAgIHRpdGxlIHdpdGggPHNnbWx0YWc+Jmx0O3RpdGxlPjwvc2dtbHRhZz5UaGUKKyAgICAgICAgVGl0bGU8c2dtbHRhZz4mbHQ7L3RpdGxlPjwvc2dtbHRhZz4uCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIERURCAoaW4gdGhlIGNhc2Ugb2YgdGhlIEdEUCwgRG9jQm9vaykgZGVmaW5lcyBydWxlcyBmb3IgaG93IHRoZQorICAgICAgICBlbGVtZW50cyBjYW4gYmUgdXNlZC4gRm9yIGV4YW1wbGUsIGlmIG9uZSBlbGVtZW50IGNhbiBvbmx5IGJlIHVzZWQgd2hlbgorICAgICAgICBlbWJlZGRlZCB3aXRoaW4gYW5vdGhlciwgdGhpcyBpcyBkZWZpbmVkIGluIHRoZSBEVEQuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4gCisJQW4gU0dNTCBmaWxlIGlzIGp1c3QgYSBwbGFpbiBBU0NJSSBmaWxlIGNvbnRhaW5pbmcgdGhlIHRleHQKKwl3aXRoIHRoZSBtYXJrdXAgc3BlY2lmaWVkIGFib3ZlLiBUbyBjb252ZXJ0IGl0ICB0byBzb21lIGVhc2lseQorCXJlYWRhYmxlIGZvcm1hdCwgeW91IG5lZWQgc3BlY2lhbCB0b29scy4gVGhlIEdEUCB1c2VzIDxlbXBoYXNpcz5Eb2NCb29rCisgICAgICAgIFRvb2xzPC9lbXBoYXNpcz4sIGEgZnJlZSBwYWNrYWdlIG9mIHV0aWxpdGllcyBmb3Igd29ya2luZyB3aXRoIERvY0Jvb2sKKyAgICAgICAgd2hpY2ggaW5jbHVkZXMgPGVtcGhhc2lzPkphZGU8L2VtcGhhc2lzPiwgd2hpY2ggZG9lcyB0aGUgU0dNTC9EU1NMCisgICAgICAgIHBhcnNpbmcuIFlvdSBjYW4gcmVhZCBtb3JlIGFib3V0IERvY0Jvb2sgVG9vbHMgaW4gPHhyZWYKKyAgICAgICAgbGlua2VuZD0iaW5zdGFsbGluZ2RvY2Jvb2siIC8+LiAKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgZmluYWwgYXBwZWFyYW5jZSBvZiB0aGUgb3V0cHV0IChlLmcuIFBvc3RTY3JpcHQgb3IgSFRNTCkKKyAgICAgICAgaXMgZGV0ZXJtaW5lZCBieSBhCisgICAgICAgIDxlbXBoYXNpcz5zdHlsZXNoZWV0PC9lbXBoYXNpcz4uIFN0eWxlc2hlZXRzIGFyZSBmaWxlcywKKyAgICAgICAgd3JpdHRlbiBpbiBhIHNwZWNpYWwgbGFuZ3VhZ2UgKERTU1NMICZtZGFzaDsgRG9jdW1lbnQgU3R5bGUKKyAgICAgICAgU2VtYW50aWNzIGFuZCBTcGVjaWZpY2F0aW9uIExhbmd1YWdlKSwgd2hpY2ggIHNwZWNpZnkgdGhlCisgICAgICAgIGFwcGVhcmFuY2Ugb2YgdmFyaW91cyBEb2NCb29rIGVsZW1lbnRzLCBmb3IgZXhhbXBsZSwKKyAgICAgICAgd2hhdCBmb250cyB0byB1c2UgZm9yIHRpdGxlcyBhbmQgdmFyaW91cyBpbmxpbmUgZWxlbWVudHMsIHBhZ2UKKyAgICAgICAgbnVtYmVyaW5nIHN0eWxlLCBhbmQgbXVjaCBtb3JlLiBEb2NCb29rIHRvb2xzIGNvbWUgd2l0aCBhCisgICAgICAgIGNvbGxlY3Rpb24gb2Ygc3R5bGVzaGVldHMgKE5vcm1hbiBXYWxzaCdzIG1vZHVsYXIKKyAgICAgICAgc3R5bGVzaGVldHMpOyBHTk9NRSBEb2N1bWVudCBQcm9qZWN0IHVzZXMgc29tZSBjdXN0b21pemVkCisgICAgICAgIHZlcnNpb24gb2YgdGhpcyBzdHlsZXNoZWV0cyAmbWRhc2g7IHNlZSA8eHJlZgorICAgICAgICBsaW5rZW5kPSJnZHBzdHlsZXNoZWV0cyIvPi4gICAKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgYWR2YW50YWdlIG9mIHNwZWNpZnlpbmcgdGhlIDxlbXBoYXNpcz5zdHJ1Y3R1cmU8L2VtcGhhc2lzPgorICAgICAgICBvZiBhIGRvY3VtZW50IHdpdGggU0dNTCBpbnN0ZWFkIG9mIHNwZWNpZnlpbmcgdGhlCisgICAgICAgIDxlbXBoYXNpcz5hcHBlYXJhbmNlPC9lbXBoYXNpcz4gb2YgdGhlIGRvY3VtZW50IHdpdGggYSB0eXBpY2FsCisgICAgICAgIHdvcmQgcHJvY2Vzc29yLCBvciB3aXRoIGh0bWwsIGlzIHRoYXQgdGhlIHJlc3VsdGluZyBkb2N1bWVudAorICAgICAgICBjYW4gYmUgcHJvY2Vzc2VkIGluIGEgdmFyaWV0eSBvZiB3YXlzIHVzaW5nIHRoZSBzdHJ1Y3R1cmFsCisgICAgICAgIGluZm9ybWF0aW9uLiAgV2hlcmVhcyBmb3JtYXR0aW5nIGEgZG9jdW1lbnQgZm9yIGFwcGVhcmFuY2UKKyAgICAgICAgYXNzdW1lcyBhIG1lZGl1bSAodHlwaWNhbGx5IHdyaXR0ZW4gdGV4dCBvbiBhIHN0YW5kYXJkLXNpemVkCisgICAgICAgIHBpZWNlIG9mIHBhcGVyKSwgU0dNTCBjYW4gYmUgcHJvY2Vzc2VkIHRvIHByb2R1Y2Ugb3V0cHV0IGZvciBhCisgICAgICAgIGxhcmdlIHZhcmlldHkgb2YgbWVkaWEgc3VjaCBhcyB0ZXh0LCBwb3N0c2NyaXB0LCBIVE1MLAorICAgICAgICBCcmFpbGxlLCBhdWRpbywgYW5kIHBvdGVudGlhbGx5IG1hbnkgb3RoZXIgZm9ybWF0cy4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBVc2luZyAnY29udGVudCcgYXMgdGhlIGVsZW1lbnRzIHRvIGRlZmluZSB0aGUgdGV4dCBvZiBhIGRvY3VtZW50IGFsc28KKyAgICAgICAgYWxsb3dzIGZvciBzZWFyY2ggZW5naW5lcyB0byBtYWtlIHVzZSBvZiB0aGUgYWN0dWFsIGVsZW1lbnRzIHRvIG1ha2UgYQorICAgICAgICAic21hcnRlciBzZWFyY2giLiBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZSBzZWFyY2hpbmcgZm9yIGFsbCBkb2N1bWVudHMKKyAgICAgICAgd3JpdHRlbiBieSB0aGUgYXV0aG9yICJTdXNpZSIgeW91ciBzZWFyY2ggZW5naW5lIGNvdWxkIGJlIG1hZGUgc21hcnQKKyAgICAgICAgZW5vdWdoIHRvIG9ubHkgc2VhcmNoICZsdDthdXRob3I+IGVsZW1lbnRzLCBtYWtpbmcgZm9yIGEgZmFzdGVyIGFuZCBtb3JlCisgICAgICAgIGFjY3VyYXRlIHNlYXJjaC4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTaW5jZSB0aGUgb3ZlcmFsbCBhcHBlYXJhbmNlIG9mIHRoZSBvdXRwdXQgaXMgZGV0ZXJtaW5lZCBub3QgYnkgdGhlIERURAorICAgICAgICBvciB0aGUgU0dNTCBkb2N1bWVudCwgYnV0IHJhdGhlciBieSBhIHN0eWxlc2hlZXQsIHRoZSBhcHBlYXJhbmNlIG9mIGEKKyAgICAgICAgZG9jdW1lbnQgY2FuIGJlIGVhc2lseSBjaGFuZ2VkIGp1c3QgYnkgY2hhbmdpbmcgdGhlIHN0eWxlc2hlZXQuIFRoaXMKKyAgICAgICAgYWxsb3dzIGV2ZXJ5b25lIGluIHRoZSBwcm9qZWN0IHRvIGNyZWF0ZSBkb2N1bWVudHMgdGhhdCBhbGwgbG9vayB0aGUKKyAgICAgICAgc2FtZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBBcyBzdGF0ZWQgYmVmb3JlLCB0aGUgR0RQIHVzZXMgdGhlIERvY0Jvb2sgRFRELiAgRm9yIGEgbGlzdCBvZgorICAgICAgICBpbnRyb2R1Y3RvcnkgYW5kIHJlZmVyZW5jZSByZXNvdXJjZXMgb24gRG9jQm9vaywgc2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9InJlc291cmNlcyIgLz4uICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGFsc28gcHJvdmlkZQorICAgICAgICBjb252ZW5pZW50IGluc3RydWN0aW9ucyBvbiB3aGljaCBtYXJrdXAgdGFncyB0byB1c2UgaW4gdmFyaW91cworICAgICAgICBjaXJjdW1zdGFuY2VzLiAgQmUgc3VyZSB0byByZWFkIDx4cmVmIGxpbmtlbmQ9ImNvbnZlbnRpb25zIiAvPgorICAgICAgICBmb3IgR0RQIGRvY3VtZW50YXRpb24tc3BlY2lmaWMgZ3VpZGVsaW5lcy4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorICAgIAorIDwhLS0gIyMjIyMjICBEb2NCb29rIEJhc2ljcyB8IFhNTCBhbmQgU0dNTCAgICAgICAjIyMjIyMjIy0tPiAKKyA8c2VjdDIgaWQ9InhtbCI+CisgICAgICA8dGl0bGU+WE1MIGFuZCBTR01MPC90aXRsZT4KKworICAgICAgPHBhcmE+IEluIG5vdCBzbyBkaXN0YW50IGZ1dHVyZSAocHJvYmFibHkgYmVmb3JlIEdOT01FIDIuMCksCisgICAgICBEb2NCb29rIGl0c2VsZiBhbmQgR05PTUUgRG9jdW1lbnRhdGlvbiBwcm9qZWN0IHdpbGwgbWlncmF0ZSBmcm9tCisgICAgICBTR01MIHRvIFhNTC4gVGhpcyB0cmFuc2l0aW9uIHNob3VsZCBiZSByZWxhdGl2ZWx5IHBhaW5sZXNzOgorICAgICAgKGFsbW9zdCkgYWxsIERvY0Jvb2sgdGFncyB3aWxsIHJlbWFpbiB0aGUgc2FtZS4gSG93ZXZlciwgWE1MIGhhcworICAgICAgc3RyaWN0ZXIgc3ludGF4IHJ1bGVzIHRoYW4gU0dNTDsgdGh1cywgc29tZSBjb25zdHJ1Y3Rpb25zIHdoaWNoCisgICAgICBhcmUgdmFsaWQgaW4gU0dNTCB3aWxsIG5vdCBiZSB2YWxpZCBpbiBYTUwuIFRoZXJlZm9yZSwgdG8gYmUKKyAgICAgIHJlYWR5IGZvciB0aGlzIHRyYW5zaXN0aW9uLCBpdCBpcyA8ZW1waGFzaXM+c3Ryb25nbHkKKyAgICAgIGFkdmlzZWQ8L2VtcGhhc2lzPiB0aGF0IHRoZSBkb2N1bWVudGF0aW9uIHdyaXRlcnMgY29uZm9ybSB0byBYTUwKKyAgICAgIHN5bnRheCBydWxlcy4gSGVyZSBhcmUgbW9zdCBpbXBvcnRhbnQgZGlmZmVyZW5jZXM6CisgICAgICA8L3BhcmE+CisJCisgICAgICA8dmFyaWFibGVsaXN0PgorCSAgPHZhcmxpc3RlbnRyeT4KKwkgICAgPHRlcm0+IDxlbXBoYXNpcz5NaW5pbWl6YXRpb248L2VtcGhhc2lzPjwvdGVybT4gCisJICAgIDxsaXN0aXRlbT4KKwkgICAgCisJICAgIDxwYXJhPgorCSAgICAgIEl0IGlzIHBvc3NpYmxlIHdpdGggc29tZSBpbXBsZW1lbnRhdGlvbnMgb2YgU0dNTCB0byB1c2UKKwkgICAgICBtaW5pbWl6YXRpb25zIHRvIGNsb3NlIGVsZW1lbnRzIGluIGEgZG9jdW1lbnQgYnkgdXNpbmcKKwkgICAgICAmbHQ7Lz4sIGZvciBleGFtcGxlOgorCSAgICAgIDxsaXRlcmFsPjxzZ21sdGFnPiZsdDt0aXRsZT48L3NnbWx0YWc+VGhlCisJCVRpdGxlPHNnbWx0YWc+Jmx0Oy8+PC9zZ21sdGFnPjwvbGl0ZXJhbD4uIFRoaXMgaXMgbm90CisgICAgICAgICAgICAgIGFsbG93ZWQgaW4gWE1MLiBZb3UgY2FuIHVzZSA8Y29tbWFuZD5zZ21sbm9ybTwvY29tbWFuZD4gY29tbWFuZCwKKyAgICAgICAgICAgICAgaW5jbHVkZWQgaW4gRG9jQm9vayBUb29scyBwYWNrYWdlLCB0byBleHBhbmQgbWluaW1pemVkIHRhZ3M7CisgICAgICAgICAgICAgIGlmIHlvdSBhcmUgdXNpbmcgPGFwcGxpY2F0aW9uPkVtYWNzPC9hcHBsaWNhdGlvbj4gd2l0aCBwc2dtbAorICAgICAgICAgICAgICBtb2RlLCB5b3UgY2FuIGFsc28gdXNlIG1lbnUgY29tbWFuZAorICAgICAgICAgIDxtZW51Y2hvaWNlPgorICAgICAgICAgICAgIDxndWltZW51Pk1vZGlmeTwvZ3VpbWVudT4KKyAgICAgICAgICAgICA8Z3VpbWVudWl0ZW0+Tm9ybWFsaXplPC9ndWltZW51aXRlbT4KKyAgICAgICAgICA8L21lbnVjaG9pY2U+LgorICAgICAgICAgPC9wYXJhPiAKKwkgICAgPC9saXN0aXRlbT4KKwkgICAgPC92YXJsaXN0ZW50cnk+CisJICA8dmFybGlzdGVudHJ5PgorCSAgICA8dGVybT4gPGVtcGhhc2lzPlNlbGYtY2xvc2luZyB0YWdzPC9lbXBoYXNpcz48L3Rlcm0+IAorCSAgICA8bGlzdGl0ZW0+CisgCisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIEFsc28sIGluIFNHTUwgc29tZSB0YWdzIGFyZSBhbGxvd2VkIG5vdCB0byBoYXZlIGNsb3NpbmcKKyAgICAgICAgICAgIHRhZ3MuICBGb3IgZXhhbXBsZSwgaXQgaXMgbGVnYWwgZm9yCisgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7eHJlZj48L3NnbWx0YWc+IG5vdCB0byBoYXZlIGEgY2xvc2luZyB0YWc6IAorICAgICAgICAgICAgPGxpdGVyYWw+PHNnbWx0YWc+Jmx0O3hyZWYgCisgICAgICAgICAgICAgICAgICAgbGlua2VuZD0ic29tZWlkIj48L3NnbWx0YWc+PC9saXRlcmFsPi4gSW4KKyAgICAgICAgICAgIFhNTCwgaXQgaXMgaWxsZWdhbDsgaW5zdGVhZCwgeW91IHNob3VsZCB1c2UgIAorICAgICAgICAgICAgPGxpdGVyYWw+PHNnbWx0YWc+Jmx0O3hyZWYgCisgICAgICAgICAgICAgICAgICAgbGlua2VuZD0ic29tZWlkIi8+PC9zZ21sdGFnPjwvbGl0ZXJhbD4gKG5vdGUgdGhlCisgICAgICAgICAgICBzbGFzaCEpLgorICAgICAgICAgIDwvcGFyYT4gCisgIDwvbGlzdGl0ZW0+CisgIDwvdmFybGlzdGVudHJ5PgorCisJPHZhcmxpc3RlbnRyeT4KKwkgICAgPHRlcm0+IDxlbXBoYXNpcz5DYXNlIHNlbnNpdGl2ZSB0YWdzPC9lbXBoYXNpcz48L3Rlcm0+IAorCSAgICA8bGlzdGl0ZW0+CisJICAgIDxwYXJhPgorCSAgICAgIEluIFhNTCwgdW5saWtlIFNHTUwsIHRhZ3MgYXJlIGNhc2Utc2Vuc3RpdmUKKwkgICAgICA8c2dtbHRhZz4mbHQ7dGl0bGU+PC9zZ21sdGFnPiBhbmQKKwkgICAgICA8c2dtbHRhZz4mbHQ7VElUTEU+PC9zZ21sdGFnPiBhcmUgZGlmZmVyZW50IHRhZ3MhCisJICAgICAgVGhlcmVmb3JlLCBwbGVhc2UgYWx3YXlzIHVzZSBsb3dlcmNhc2UgdGFncyAoZXhjZXB0IGZvcgorCSAgICAgIHRoaW5ncyBsaWtlIDxsaXRlcmFsPkRPQ1RZUEUsIENEQVRBPC9saXRlcmFsPiBhbmQKKwkgICAgICA8bGl0ZXJhbD5FTlRJVFk8L2xpdGVyYWw+LCB3aGljaCBhcmUgbm90IERvY0Jvb2sgdGFncykuIAorCSAgICA8L3BhcmE+CisJICA8L2xpc3RpdGVtPgorCTwvdmFybGlzdGVudHJ5PgorCisKKworPC92YXJpYWJsZWxpc3Q+IAorPC9zZWN0Mj4KKworCisKKyAgICA8IS0tICMjIyMjIyMgRG9jQm9vayBCYXNpY3MgfCBTdHJ1Y3R1cmUgRWxlbWVudHMgIyMjIyMjIyAtLT4KKworICAgIAorICAgIDxzZWN0MiBpZD0ic3RydWN0dXJlIj4gPHRpdGxlPiBTdHJ1Y3R1cmUgRWxlbWVudHM8L3RpdGxlPgorCisgICAgICA8c2VjdDMgaWQ9InNlY3Rpb24iPgorICAgICAgICA8dGl0bGU+U2VjdGlvbnMgYW5kIHBhcmFncmFwaHM8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUb3AtbGV2ZWwgZWxlbWVudCBvZiBhIGJvb2sgYm9keSBtdXN0IGJlCisgICAgICAgICAgPHNnbWx0YWc+Jmx0O2NoYXB0ZXI+PC9zZ21sdGFnPjsgaXQgbWF5IGNvbnRhaW4gb25lIG9yIG1vcmUKKyAgICAgICAgICA8c2dtbHRhZz4mbHQ7c2VjdDE+PC9zZ21sdGFnPiwgZWFjaCBvZiB0aGVtIG1heSBjb250YWluCisgICAgICAgICAgPHNnbWx0YWc+Jmx0O3NlY3QyPjwvc2dtbHRhZz4gYW5kIHNvIG9uIHVwIHRvCisgICAgICAgICAgPHNnbWx0YWc+Jmx0O3NlY3Q1Pjwvc2dtbHRhZz4uIFRoZSB0b3AtbGV2ZWwgZWxlbWVudCBvZiBhbgorICAgICAgICAgIGFydGljbGUgYm9keSBpcyBhbHdheXMKKyAgICAgICAgICA8c2dtbHRhZz4mbHQ7c2VjdDE+PC9zZ21sdGFnPi4gUmVnYXJkbGVzcyBvZiB3aGljaCBlbGVtZW50cworICAgICAgICAgIHlvdSB1c2UsIGdpdmUgZWFjaCBzdHJ1Y3R1cmFsIGVsZW1lbnQgYSB1bmlxdWUgaWQsIHNvIHRoYXQKKyAgICAgICAgICB5b3UgY2FuIGxpbmsgdG8gaXQuIEZvciB1c2FnZSBleGFtcGxlLCBzZWUgdGhlIHRlbXBsYXRlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPiBQbGVhc2UgdHJ5IHRvIGF2b2lkIHVzaW5nIGRlZXBseSBuZXN0ZWQgc2VjdGlvbnM7IGZvcgorICAgICAgICAgIG1vc3Qgc2l0dWF0aW9ucywgPHNnbWx0YWc+Jmx0O3NlY3QxPjwvc2dtbHRhZz4gYW5kCisgICAgICAgICAgPHNnbWx0YWc+Jmx0O3NlY3QyPjwvc2dtbHRhZz4gc2hvdWxkIGJlIHN1ZmZpY2llbnQuIElmIG5vdCwKKyAgICAgICAgICB5b3UgcHJvYmFibHkgc2hvdWxkIHNwbGl0IHlvdXIgPHNnbWx0YWc+Jmx0O3NlY3QxPjwvc2dtbHRhZz4KKyAgICAgICAgICBpbnRvIHNldmVyYWwgc21hbGxlciBvbmVzLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPiBVc2UgdGhlIHRhZyA8c2dtbHRhZz4mbHQ7cGFyYT48L3NnbWx0YWc+IGZvcgorICAgICAgICAgIHBhcmFncmFwaHMsIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBvbmUgcGFyYWdyYXBoIGluIGEKKyAgICAgICAgICBzZWN0aW9uJm1kYXNoO3NlZSB0ZW1wbGF0ZSBmb3IgZXhhbXBsZXMuCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisKKyAgICAgIDxzZWN0MyBpZD0ibm90ZXMiPgorICAgICAgICA8dGl0bGU+Tm90ZXMsIFdhcm5pbmdzLCBBbmQgVGlwczwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIEZvciBub3RlcywgdGlwcywgd2FybmluZ3MsIGFuZCBpbXBvcnRhbnQgaW5mb3JtYXRpb24sIHdoaWNoCisgICAgICAgICAgc2hvdWxkIGJlIHNldCBhcGFydCBmcm9tIHRoZSBtYWluIHRleHQgKHVzdWFsbHkgYXMgYQorICAgICAgICAgIHBhcmFncmFwaCB3aXRoIHNvbWUgd2FybmluZyBzaWduIG9uIHRoZSBtYXJnaW4pLCB1c2UgdGFncworICAgICAgICAgIDxzZ21sdGFnPiZsdDtub3RlPjwvc2dtbHRhZz4sIDxzZ21sdGFnPiZsdDt0aXA+PC9zZ21sdGFnPiwKKyAgICAgICAgICA8c2dtbHRhZz4mbHQ7d2FybmluZz48L3NnbWx0YWc+LAorICAgICAgICAgIDxzZ21sdGFnPiZsdDtpbXBvcnRhbnQ+PC9zZ21sdGFnPiByZXNwZWN0aXZlbHkuIEZvciBleGFtcGxlOgorICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWworPHRpcD4KKyA8dGl0bGU+VElQPC90aXRsZT4KKyA8cGFyYT4KKyAgVG8gc3BlZWQgdXAgcHJvZ3JhbSBjb21waWxhdGlvbiwgdXNlIDxhcHBsaWNhdGlvbj5nY2M8L2FwcGxpY2F0aW9uPgorICBjb21waWxlciB3aXRoIFBlbnRpdW0gb3B0aW1pemF0aW9uLgorIDwvcGFyYT4KKzwvdGlwPl1dPiA8L3Byb2dyYW1saXN0aW5nPiAgcHJvZHVjZXMKKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8dGlwIGlkPSJleHRpcCI+CisgICAgICAgICAgPHRpdGxlPlRJUDwvdGl0bGU+CisgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUbyBzcGVlZCB1cCBwcm9ncmFtIGNvbXBpbGF0aW9uLCB1c2UKKyAgICAgICAgICAgIDxhcHBsaWNhdGlvbj5nY2M8L2FwcGxpY2F0aW9uPiBjb21waWxlciB3aXRoIFBlbnRpdW0KKyAgICAgICAgICAgIG9wdGltaXphdGlvbi4gIDwvcGFyYT4KKyAgICAgICAgPC90aXA+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBub3QgYmUgaW5zaWRlIGEKKyAgICAgICAgICA8c2dtbHRhZz4mbHQ7cGFyYT48L3NnbWx0YWc+IGJ1dCBiZXR3ZWVuIHBhcmFncmFwaHMuCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisgICAgICA8c2VjdDMgaWQ9ImZpZ3VyZXMiPgorICAgICAgICA8dGl0bGU+IFNjcmVlbnNob3RzIGFuZCBvdGhlciBmaWd1cmVzPC90aXRsZT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVG8gaW5jbHVkZSBzY3JlZW5zaG90cyBhbmQgb3RoZXIgZmlndXJlcywgdXNlIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICB0YWdzOgorICAgICAgICAgIAorICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWworPGZpZ3VyZSBpZD0ic2hvdDEiPgorIDx0aXRsZT5TY3JlZW5zaG90PC90aXRsZT4KKyA8c2NyZWVuc2hvdD4KKyAgPHNjcmVlbmluZm8+U2NyZWVuc2hvdCBvZiBhIHByb2dyYW08L3NjcmVlbmluZm8+CisgIDxncmFwaGljIGZvcm1hdD0iUE5HIiAgZmlsZXJlZj0iZmlndXJlcy9leGFtcGxlX3NjcmVlbnNob3QiIHNyY2NyZWRpdD0iTUUiPgorICA8L2dyYXBoaWM+CisgPC9zY3JlZW5zaG90PgorPC9maWd1cmU+XV0+CisgICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgICByZXBsYWNpbmcgPGZpbGVuYW1lPmV4YW1wbGVfc2NyZWVuc2hvdDwvZmlsZW5hbWU+IHdpdGggdGhlCisgICAgICAgICAgYWN0dWFsIGZpbGUgbmFtZSAod2l0aG91dCBleHRlbnNpb24pLiBUaGUgcmVzdWx0IHdpbGwgbG9vayBsaWtlIHRoaXM6CisgICAgICAgICAgCisgICAgICAgICAgPGZpZ3VyZSBpZD0ic2hvdDEiPgorICAgICAgICAgICAgPHRpdGxlPlNjcmVlbnNob3Q8L3RpdGxlPgorICAgICAgICAgICAgPHNjcmVlbnNob3Q+CisgICAgICAgICAgICAgIDxzY3JlZW5pbmZvPlNjcmVlbnNob3Qgb2YgYSBwcm9ncmFtPC9zY3JlZW5pbmZvPgorICAgICAgICAgICAgICA8Z3JhcGhpYyBmb3JtYXQ9IlBORyIKKwkJICAgICAgIGZpbGVyZWY9ImZpZ3VyZXMvZXhhbXBsZV9zY3JlZW5zaG90IiBzcmNjcmVkaXQ9Ik1FIi8+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgPC9zY3JlZW5zaG90PgorICAgICAgICAgIDwvZmlndXJlPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxub3RlPgorICAgICAgICAgIDx0aXRsZT5OT1RFPC90aXRsZT4KKyAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIE5vdGljZSBpbiB0aGlzIGV4YW1wbGUgdGhhdCB0aGUgc2NyZWVuc2hvdCBmaWxlIG5hbWUgZG9lcworICAgICAgICAgICAgbm90IGluY2x1ZGUgdGhlIGZpbGUgdHlwZSBleHRlbnNpb24gJm1kYXNoOyB0byBmaW5kIG91dAorICAgICAgICAgICAgd2h5LCBwbGVhc2UgcmVhZCA8eHJlZiBsaW5rZW5kPSJqYWRlaW1hZ2VzIiAvPi4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbm90ZT4gICAgICAgICAgCisgICAgICA8L3NlY3QzPgorICAgICAgPHNlY3QzIGlkPSJsaXN0aW5nIj4KKyAgICAgICAgPHRpdGxlPlByb2dyYW0gbGlzdGluZ3MgYW5kIHRlcm1pbmFsIHNlc3Npb248L3RpdGxlPiA8cGFyYT4KKyAgICAgICAgICBUbyBzaG93IGEgZmlsZSBmcmFnbWVudCZtZGFzaDtmb3IgZXhhbXBsZSwgcHJvZ3JhbQorICAgICAgICAgIGxpc3RpbmcmbWRhc2g7dXNlIDxzZ21sdGFnPiZsdDtwcm9ncmFtbGlzdGluZz48L3NnbWx0YWc+IHRhZzoKKyAgICAgICAgICA8cHJvZ3JhbWxpc3Rpbmc+Cis8IVtDREFUQVsKKzxwcm9ncmFtbGlzdGluZz4KK1tEZXNrdG9wIEVudHJ5XSAKK05hbWU9R251bWVyaWMgc3ByZWFkc2hlZXQKK0V4ZWM9Z251bWVyaWMgCitJY29uPWdub21lLWdudW1lcmljLnBuZyAKK1Rlcm1pbmFsPTAKK1R5cGU9QXBwbGljYXRpb24KKzwvcHJvZ3JhbWxpc3Rpbmc+XV0+CisgICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgICB3aGljaCBwcm9kdWNlcworICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KK1tEZXNrdG9wIEVudHJ5XSAKK05hbWU9R251bWVyaWMgc3ByZWFkc2hlZXQgCitFeGVjPWdudW1lcmljCitJY29uPWdub21lLWdudW1lcmljLnBuZyAKK1Rlcm1pbmFsPTAgCitUeXBlPUFwcGxpY2F0aW9uCisgICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgICBBcyBhIG1hdHRlciBvZiBmYWN0LCBhbGwgZXhhbXBsZXMgaW4gdGhpcyBkb2N1bWVudCB3ZXJlCisgICAgICAgICAgcHJvZHVjZWQgdXNpbmcgPHNnbWx0YWc+Jmx0O3Byb2dyYW1saXN0aW5nPjwvc2dtbHRhZz4uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgVG8gc2hvdyBhIHJlY29yZCBvZiB0ZXJtaW5hbCBzZXNzaW9uJm1kYXNoO2kuZS4sIHNlcXVlbmNlIG9mCisgICAgICAgICAgY29tbWFuZHMgZW50ZXJlZCBhdCB0aGUgY29tbWFuZCBsaW5lJm1kYXNoO3VzZQorICAgICAgICAgIDxzZ21sdGFnPiZsdDtzY3JlZW4+PC9zZ21sdGFnPiB0YWc6CisgICAgICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbCis8c2NyZWVuPgorPHByb21wdD5iYXNoJDwvcHJvbXB0Pjx1c2VyaW5wdXQ+bWFrZSBsb3ZlPC91c2VyaW5wdXQ+IAorbWFrZTogKioqIE5vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYGxvdmUnLiBTdG9wLgorPC9zY3JlZW4+XV0+CisgICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgICB3aGljaCBwcm9kdWNlcworICAgICAgICAgIDxzY3JlZW4+Cis8cHJvbXB0PmJhc2gkPC9wcm9tcHQ+PHVzZXJpbnB1dD5tYWtlIGxvdmU8L3VzZXJpbnB1dD4gIAorbWFrZTogKioqIE5vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYGxvdmUnLiAgU3RvcC4KKyAgICAgICAgICA8L3NjcmVlbj4KKyAgICAgICAgICBOb3RlIHRoZSB1c2Ugb2YgdGFncyA8c2dtbHRhZz4mbHQ7cHJvbXB0Pjwvc2dtbHRhZz4gYW5kCisgICAgICAgICAgPHNnbWx0YWc+Jmx0O3VzZXJpbnB1dD48L3NnbWx0YWc+IGZvciBtYXJraW5nIHN5c3RlbSBwcm9tcHQKKyAgICAgICAgICBhbmQgY29tbWFuZHMgZW50ZXJlZCBieSB1c2VyLgorICAgICAgICAgIDxub3RlPgorICAgICAgICAgICAgPHRpdGxlPk5PVEU8L3RpdGxlPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIE5vdGUgdGhhdCBib3RoIDxzZ21sdGFnPiZsdDtwcm9ncmFtbGlzdGluZz48L3NnbWx0YWc+CisgICAgICAgICAgICAgIGFuZCA8c2dtbHRhZz4mbHQ7c2NyZWVuPjwvc2dtbHRhZz4gcHJlc2VydmUgbGluZWJyZWFrcywKKyAgICAgICAgICAgICAgYnV0IGludGVycHJldCBTR01MIHRhZ3MgKHVubGlrZSBMYVRlWAorICAgICAgICAgICAgICA8bWFya3VwPnZlcmJhdGltPC9tYXJrdXA+IGVudmlyb25tZW50KS4gVGFrZSBhIGxvb2sgYXQKKyAgICAgICAgICAgICAgdGhlIHNvdXJjZSBvZiB0aGlzIGRvY3VtZW50IHRvIHNlZSBob3cgeW91IGNhbiBoYXZlIFNHTUwKKyAgICAgICAgICAgICAgdGFncyBsaXRlcmFsbHkgc2hvd24gYnV0IG5vdCBpbnRlcnByZXRlZCwKKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L25vdGU+CisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisgICAgICA8c2VjdDMgaWQ9Imxpc3RzIj4KKwk8dGl0bGU+IExpc3RzPC90aXRsZT4KKwk8cGFyYT4KKwkgIFRoZSBtb3N0IGNvbW1vbiBsaXN0IHR5cGVzICBpbiBEb2NCb29rIGFyZQorCSAgPHNnbWx0YWc+Jmx0O2l0ZW1pemVkbGlzdD48L3NnbWx0YWc+LAorCSAgPHNnbWx0YWc+Jmx0O29yZGVyZWRsaXN0Pjwvc2dtbHRhZz4sIGFuZCAKKwkgIDxzZ21sdGFnPiZsdDt2YXJpYWJsZWxpc3Q+PC9zZ21sdGFnPi4KKwk8L3BhcmE+CisJPHZhcmlhYmxlbGlzdD4KKwkgIDx2YXJsaXN0ZW50cnk+CisJICAgIDx0ZXJtPiA8c2dtbHRhZz4mbHQ7aXRlbWl6ZWRsaXN0Pjwvc2dtbHRhZz48L3Rlcm0+IAorCSAgICA8bGlzdGl0ZW0+PHBhcmE+IAorCQlUaGlzIGlzIHRoZSBzaW1wbGVzdCB1bm51bWJlcmVkIGxpc3QsIHBhcmFsbGVsIHRvCisJICAgIDxzZ21sdGFnPiZsdDt1bD48L3NnbWx0YWc+IGluIEhUTUwuIEhlcmUgaXMgYW4gZXhhbXBsZTogCisJCTxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWworPGl0ZW1pemVkbGlzdD4KKyAgPGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICAgPGd1aWxhYmVsPlNob3cgYmFja3VwIGZpbGVzPC9ndWlsYWJlbD4gJm1kYXNoOyBUaGlzIHdpbGwKKyAgICAgIHNob3cgYW55IGJhY2t1cCBmaWxlIHRoYXQgbWlnaHQgYmUgb24geW91ciBzeXN0ZW0uCisgICAgPC9wYXJhPgorICA8L2xpc3RpdGVtPgorICA8bGlzdGl0ZW0+CisgICAgPHBhcmE+CisgICAgICA8Z3VpbGFiZWw+U2hvdyBoaWRkZW4gZmlsZXM8L2d1aWxhYmVsPiAmbWRhc2g7IFRoaXMgd2lsbAorICAgICAgc2hvdyBhbGwgImRvdCBmaWxlcyIgb3IgZmlsZXMgdGhhdCBiZWdpbiB3aXRoIGEgZG90LiAgVGhpcworICAgICAgZmlsZXMgdHlwaWNhbGx5IGluY2x1ZGUgY29uZmlndXJhdGlvbiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuCisgICAgPC9wYXJhPgorICA8L2xpc3RpdGVtPgorICA8bGlzdGl0ZW0+CisgICAgPHBhcmE+CisgICAgICA8Z3VpbGFiZWw+TWl4IGZpbGVzIGFuZCBkaXJlY3RvcmllczwvZ3VpbGFiZWw+ICZtZGFzaDsgVGhpcworICAgICAgb3B0aW9uIHdpbGwgIGRpc3BsYXkgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGluIHRoZSBvcmRlciB5b3UKKyAgICAgIHNvcnQgdGhlbSBpbnN0ZWFkIG9mIAorICAgICAgYWx3YXlzIGhhdmluZyBkaXJlY3RvcmllcyBzaG93biBhYm92ZSBmaWxlcy4KKyAgICA8L3BhcmE+CisgICA8L2xpc3RpdGVtPgorPC9pdGVtaXplZGxpc3Q+IAorXV0+CisJCTwvcHJvZ3JhbWxpc3Rpbmc+CisJCWFuZCBvdXRwdXQ6CisgICAgICAgICAgICAgICAgPC9wYXJhPgorCQk8aXRlbWl6ZWRsaXN0PgorCQkgIDxsaXN0aXRlbT4KKwkJICAgIDxwYXJhPgorCQkgICAgICA8Z3VpbGFiZWw+U2hvdyBiYWNrdXAgZmlsZXM8L2d1aWxhYmVsPiAmbWRhc2g7CisJCSAgICAgIFRoaXMgd2lsbCBzaG93IGFueSBiYWNrdXAgZmlsZSB0aGF0IG1pZ2h0IGJlIG9uCisJCSAgICAgIHlvdXIgc3lzdGVtLgorCQkgICAgPC9wYXJhPgorCQkgIDwvbGlzdGl0ZW0+CisKKwkJICA8bGlzdGl0ZW0+CisJCSAgICA8cGFyYT4KKwkJICAgICAgPGd1aWxhYmVsPlNob3cgaGlkZGVuIGZpbGVzPC9ndWlsYWJlbD4gJm1kYXNoOworCQkgICAgICBUaGlzIHdpbGwgc2hvdyBhbGwgImRvdCBmaWxlcyIgb3IgZmlsZXMgdGhhdAorCQkgICAgICBiZWdpbiB3aXRoIGEgZG90LiAgVGhpcyBmaWxlcyB0eXBpY2FsbHkgaW5jbHVkZQorCQkgICAgICBjb25maWd1cmF0aW9uIGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4KKwkJICAgIDwvcGFyYT4KKwkJICA8L2xpc3RpdGVtPgorCisJCSAgPGxpc3RpdGVtPgorCQkgICAgPHBhcmE+CisJCSAgICAgIDxndWlsYWJlbD5NaXggZmlsZXMgYW5kIGRpcmVjdG9yaWVzPC9ndWlsYWJlbD4KKwkJICAgICAgJm1kYXNoOyBUaGlzIG9wdGlvbiB3aWxsIGRpc3BsYXkgZmlsZXMgYW5kCisJCSAgICAgIGRpcmVjdG9yaWVzIGluIHRoZSBvcmRlciB5b3Ugc29ydCB0aGVtIGluc3RlYWQKKwkJICAgICAgb2YgYWx3YXlzIGhhdmluZyBkaXJlY3RvcmllcyBzaG93biBhYm92ZSBmaWxlcy4KKwkJICAgIDwvcGFyYT4KKwkJICA8L2xpc3RpdGVtPgorCQk8L2l0ZW1pemVkbGlzdD4KKyAgICAgICAgICAgICAgPHBhcmE+IE5vdGUgdGhlIHVzZSBvZiA8c2dtbHRhZz4mYW1wO21kYXNoOzwvc2dtbHRhZz4KKyAgICAgICAgICAgICAgZm9yIGxvbmcgZGFzaCAoc2VlIDx4cmVmIGxpbmtlbmQ9InNwZWNzeW1iIiAvPikuIEFsc28sCisgICAgICAgICAgICAgIHBsZWFzZSBub3RlIHRoYXQgdGhlIHJlc3VsdCBsb29rcyBtdWNoIG5pY2VyIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAgIHRlcm1zIGJlaW5nIGV4cGxhaW5lZCAoPGd1aWxhYmVsPlNob3cgYmFja3VwCisgICAgICAgICAgICAgIGZpbGVzPC9ndWlsYWJlbD4sIGV0Yy4pIGFyZSBzZXQgaW4gYSBkaWZmZXJlbnQgZm9udC4gSW4KKyAgICAgICAgICAgICAgdGhpcyBjYXNlLCBpdCB3YXMgYWNoaWV2ZWQgYnkgdXNpbmcgPGxpbmsKKyAgICAgICAgICAgICAgbGlua2VuZD0iZ3VpIj48c2dtbHRhZz4mbHQ7Z3VpbGFiZWw+PC9zZ21sdGFnPjwvbGluaz4KKyAgICAgICAgICAgICAgdGFnLiBJbiBvdGhlciBjYXNlcywgdXNlIGFwcHJvcHJpYXRlIHRhZ3Mgc3VjaCBhcworICAgICAgICAgICAgICA8bGluayBsaW5rZW5kPSJndWkiPjxzZ21sdGFnPiZsdDtndWltZW51aXRlbT48L3NnbWx0YWc+PC9saW5rPiwKKyAgICAgICAgICAgICAgPGxpbmsKKyAgICAgICAgICAgICAgbGlua2VuZD0iZmlsZW5hbWVzIj48c2dtbHRhZz4mbHQ7Y29tbWFuZD48L3NnbWx0YWc+PC9saW5rPiwKKyAgICAgICAgICAgICAgb3IgJm1kYXNoOyBpZiBub25lIG9mCisgICAgICAgICAgICAgIHRoaXMgYXBwbGllcyAmbWRhc2g7IHVzZQorICAgICAgICAgICAgICA8bGluayBsaW5rZW5kPSJndWkiPjxzZ21sdGFnPiZsdDtlbXBoYXNpcz48L3NnbWx0YWc+PC9saW5rPi4KKwkgICAgICA8L3BhcmE+CisJICAgIDwvbGlzdGl0ZW0+CisJICA8L3Zhcmxpc3RlbnRyeT4KKwkgIDx2YXJsaXN0ZW50cnk+CisJICAgIDx0ZXJtPiA8c2dtbHRhZz4mbHQ7b3JkZXJlZGxpc3Q+PC9zZ21sdGFnPjwvdGVybT4gCisJICAgIDxsaXN0aXRlbT48cGFyYT4KKwkJVGhpcyBsaXN0IGlzIGNvbXBsZXRlbHkgYW5hbG9nb3VzIHRvCisJCTxzZ21sdGFnPiZsdDtpdGVtaXplZGxpc3Q+PC9zZ21sdGFnPiBhbmQgaGFzIHRoZSBzYW1lCisJCXN5bnRheCwgYnV0ICBpdCBwcm9kdWNlcyBudW1iZXJlZCBsaXN0LiBCeSBkZWZhdWx0LAorCQl0aGlzIGxpc3QgdXNlcyBBcmFiaWMgbnVtZXJhbHMgZm9yIG51bWJlcmluZyBlbnRyaWVzOworCQl5b3UgY2FuIG92ZXJyaWRlIHRoaXMgdXNpbmcgPHNnbWx0YWc+bnVtZXJhdGlvbjwvc2dtbHRhZz4sCisJCWZvciBleGFtcGxlIDxzZ21sdGFnPiZsdDtvcmRlcmVkbGlzdAorCQkgIG51bWVyYXRpb249Imxvd2Vycm9tYW4iPjwvc2dtbHRhZz4uIFBvc3NpYmxlIHZhbHVlcyBvZgorCQl0aGVzZSBhdHRyaWJ1dGUgYXJlIDxzZ21sdGFnPmFyYWJpYzwvc2dtbHRhZz4sCisJCTxzZ21sdGFnPnVwcGVyYWxwaGE8L3NnbWx0YWc+LAorCQk8c2dtbHRhZz5sb3dlcmFscGhhPC9zZ21sdGFnPiwKKwkJPHNnbWx0YWc+dXBwZXJyb21hbjwvc2dtbHRhZz4sCisJCTxzZ21sdGFnPmxvd2Vycm9tYW48L3NnbWx0YWc+LgorCSAgICAgIDwvcGFyYT48L2xpc3RpdGVtPgorCSAgPC92YXJsaXN0ZW50cnk+CisKKwkgIDx2YXJsaXN0ZW50cnk+CisJICAgIDx0ZXJtPiA8c2dtbHRhZz4mbHQ7dmFyaWFibGVsaXN0Pjwvc2dtbHRhZz48L3Rlcm0+CisJICAgIDxsaXN0aXRlbT48cGFyYT4gVGhpcyBsaXN0IGlzIHVzZWQgd2hlbiBlYWNoIGVudHJ5IGlzCisJICAgIHJhdGhlciBsb25nLCBzbyBpdCBzaG91bGQgYmUgZm9ybWF0dGVkIGFzIGEgYmxvY2sgb2YgdGV4dAorCSAgICB3aXRoIHNvbWUgc3VidGl0bGUsIGxpa2UgYSBzbWFsbCBzdWJzZWN0aW9uLiAgVGhlCisJICAgIDxzZ21sdGFnPiZsdDt2YXJpYWJsZWxpc3Q+PC9zZ21sdGFnPiBpcyBtb3JlIGNvbXBsaWNhdGVkCisJICAgIHRoYW4gaXRlbWl6ZWRsaXN0cywgYnV0IGZvciBsYXJnZXIgYmxvY2tzIG9mIHRleHQsIG9yIHdoZW4KKwkgICAgeW91J3JlIGV4cGxhaW5pbmcgb3IgZGVmaW5pbmcgc29tZXRoaW5nLCBpdCdzIGJlc3QgdG8gdXNlCisJICAgIHRoZW0uICBUaGVpciBncmVhdGVzdCBhZHZhbnRhZ2UgaXMgdGhhdCBpdCdzIGVhc2llciBmb3IgYQorCSAgICBjb21wdXRlciB0byBzZWFyY2guICBUaGUgbGluZXMgeW91IGFyZSByZWFkaW5nIG5vdyB3ZXJlCisJICAgIHByb2R1Y2VkIGJ5IDxzZ21sdGFnPiZsdDt2YXJpYWJsZWxpc3Q+PC9zZ21sdGFnPi4gVGhlCisJICAgIHNvdXJjZSBsb29rZWQgbGlrZWQgdGhpczoKKwkJPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbCis8dmFyaWFibGVsaXN0PgorICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPiA8c2dtbHRhZz4mbHQ7aXRlbWl6ZWRsaXN0Pjwvc2dtbHRhZz48L3Rlcm0+IAorICAgIDxsaXN0aXRlbT48cGFyYT4gCisJVGhpcyBpcyB0aGUgc2ltcGxlc3QgdW5udW1iZXJlZCBsaXN0LCBwYXJhbGxlbCB0bworICAgICAgICA8c2dtbHRhZz4mbHQ7dWw+PC9zZ21sdGFnPiBpbiBIVE1MLiBIZXJlIGlzIGFuIGV4YW1wbGU6Li4uCisgICAgPC9wYXJhPjwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4JCSAKKwk8dGVybT4gPHNnbWx0YWc+Jmx0O29yZGVyZWRsaXN0Pjwvc2dtbHRhZz48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT48cGFyYT4JCisJVGhpcyBsaXN0IGlzIGNvbXBsZXRlbHkgYW5hbG9nb3VzIHRvCisJPHNnbWx0YWc+Jmx0O2l0ZW1pemVkbGlzdD48L3NnbWx0YWc+IAorICAgIDwvcGFyYT48L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgIDx2YXJsaXN0ZW50cnk+CQkgCisJPHRlcm0+IDxzZ21sdGFnPiZsdDt2YXJpYWJsZWxpc3Q+PC9zZ21sdGFnPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPjxwYXJhPgkKKwkJVGhpcyBsaXN0IGlzIHVzZWQgd2hlbiBlYWNoIGVudHJ5IGlzIHJhdGhlciBsb25nLC4uLgorICAgIDwvcGFyYT48L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorPC92YXJpYWJsZWxpc3Q+ICAgICAgICAKK11dPgorCQk8L3Byb2dyYW1saXN0aW5nPgkJCisJCTwvcGFyYT4KKwkgICAgPC9saXN0aXRlbT4KKwkgIDwvdmFybGlzdGVudHJ5PgorCTwvdmFyaWFibGVsaXN0PgorCTxwYXJhPgorCUxpc3RzIGNhbiBiZSBuZXN0ZWQ7IGluIHRoaXMgY2FzZSwgdGhlIHN0eWxlc2hlZXRzCisJYXJlIHNtYXJ0IGVub3VnaCB0byBjaGFuZ2UgdGhlIG51bWVyYXRpb24gKGZvcgorCTxzZ21sdGFnPiZsdDtvcmRlcmVkbGlzdD48L3NnbWx0YWc+KSBvciBtYXJrcyBvZiBlYWNoIGVudHJ5CisJKGluICA8c2dtbHRhZz4mbHQ7aXRlbWl6ZWRsaXN0Pjwvc2dtbHRhZz4pIGZvciBzdWItbGlzdHMKKwk8L3BhcmE+CisgICAgICA8L3NlY3QzPgorCisgICAgPC9zZWN0Mj4KKworPCEtLSAjIyMjIyMjIERvY0Jvb2sgQmFzaWNzIHwgSW5saW5lIEVsZW1lbnRzICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9ImlubGluZSI+CisgICAgICA8dGl0bGU+SW5saW5lIEVsZW1lbnRzPC90aXRsZT4KKworICAgICAgPHNlY3QzIGlkPSJndWkiPgorICAgICAgICA8dGl0bGU+R1VJIGVsZW1lbnRzPC90aXRsZT4KKyAgICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgPHNnbWx0YWc+Jmx0O2d1aWJ1dHRvbj48L3NnbWx0YWc+ICZtZGFzaDsgdXNlZCBmb3IKKyAgICAgICAgICAgICAgYnV0dG9ucywgaW5jbHVkaW5nIGNoZWNrYnV0dG9ucyBhbmQgcmFkaW8gYnV0dG9ucworICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgCisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIDxzZ21sdGFnPiZsdDtndWltZW51Pjwvc2dtbHRhZz4sIAorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7Z3Vpc3VibWVudT48L3NnbWx0YWc+ICZtZGFzaDt1c2VkIGZvciAKKwkgICAgICB0b3AtbGV2ZWwgbWVudXMgYW5kIHN1Ym1lbnVzCisgICAgICAgICAgICAgIHJlc3BlY3RpdmVseSwgZm9yIGV4YW1wbGUgPGxpdGVyYWw+PCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxndWlzdWJtZW51PlV0aWxpdGllczwvZ3Vpc3VibWVudT4gc3VibWVudSBvZiB0aGUKKyAgICAgICAgICAgICAgPGd1aW1lbnU+TWFpbiBNZW51PC9ndWltZW51Pl1dPjwvbGl0ZXJhbD4KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIAorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7Z3VpbWVudWl0ZW0+PC9zZ21sdGFnPiZtZGFzaDthbiBlbnRyeSBpbiBhCisgICAgICAgICAgICAgIG1lbnUKKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIAorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7Z3VpaWNvbj48L3NnbWx0YWc+Jm1kYXNoO2FuIGljb24KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIAorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7Z3VpbGFiZWw+PC9zZ21sdGFnPiZtZGFzaDtmb3IgaXRlbXMgd2hpY2ggaGF2ZQorICAgICAgICAgICAgICBsYWJlbHMsIGxpa2UgdGFicywgb3IgYm91bmRpbmcgYm94ZXMuIAorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIDxzZ21sdGFnPiZsdDtpbnRlcmZhY2U+PC9zZ21sdGFnPiZtZGFzaDsgZm9yIG1vc3QgZXZlcnl0aGluZworICAgICAgICAgICAgICBlbHNlLi4uIGEgd2luZG93LCBhIGRpYWxvZyBib3gsIHRoZSBQYW5lbCwgZXRjLgorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBJZiB5b3UgbmVlZCB0byByZWZlciB0byBhIHNlcXVlbmNlIG9mIG1lbnUgY2hvaWNlcywgc3VjaCBhcworICAgICAgICAgIDxtZW51Y2hvaWNlPgorICAgICAgICAgICAgPGd1aW1lbnU+TWFpbiBNZW51PC9ndWltZW51PgorICAgICAgICAgICAgPGd1aXN1Ym1lbnU+VXRpbGl0aWVzPC9ndWlzdWJtZW51PiA8Z3VpbWVudWl0ZW0+R05PTUUKKyAgICAgICAgICAgIHRlcm1pbmFsPC9ndWltZW51aXRlbT4KKyAgICAgICAgICA8L21lbnVjaG9pY2U+CisgICAgICAgICAgdGhlcmUgaXMgYSBzcGVjaWFsIGNvbnN0cnVjdGlvbiBmb3IgdGhpcywgdG9vOgorICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWworPG1lbnVjaG9pY2U+CisgPGd1aW1lbnU+TWFpbiBNZW51PC9ndWltZW51PiA8Z3Vpc3VibWVudT5VdGlsaXRpZXM8L2d1aXN1Ym1lbnU+CisgPGd1aW1lbnVpdGVtPkdOT01FIHRlcm1pbmFsPC9ndWltZW51aXRlbT4gPC9tZW51Y2hvaWNlPl1dPgorICAgICAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisKKyAgICAgIDxzZWN0MyBpZD0ibGlua3MiPgorICAgICAgICA8dGl0bGU+TGlua3MgYW5kIHJlZmVyZW5jZXM8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUbyByZWZlciB0byBhbm90aGVyIHBsYWNlIGluIHRoZSBzYW1lIGRvY3VtZW50LCB5b3UgY2FuIHVzZQorICAgICAgICAgIHRhZ3MgPHNnbWx0YWc+Jmx0O3hyZWY+PC9zZ21sdGFnPiBhbmQKKyAgICAgICAgICA8c2dtbHRhZz4mbHQ7bGluaz48L3NnbWx0YWc+LiBUaGUgZmlyc3Qgb2YgdGhlbQorICAgICAgICAgIGF1dG9tYXRpY2FsbHkgaW5zZXJ0cyB0aGUgZnVsbCBuYW1lIG9mIHRoZSBlbGVtZW50IHlvdSByZWZlcgorICAgICAgICAgIHRvIChzZWN0aW9uLCBmaWd1cmUsIGV0Yy4pLCB3aGlsZSB0aGUgc2Vjb25kIGp1c3QgY3JlYXRlcyBhCisgICAgICAgICAgbGluayAoaW4gSFRNTCBvdXRwdXQpLiBIZXJlIGlzIGFuIGV4YW1wbGU6CisgICAgICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbQW4gZXhhbXBsZSBvZiBhIDxsaW5rIGxpbmtlbmQ9ImV4dGlwIj50aXA8L2xpbms+IHdhcyBnaXZlbiBpbgorPHhyZWYgbGlua2VuZD0ibm90ZXMiIC8+LiAgXV0+CisgICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgICB3aGljaCBwcm9kdWNlczogQW4gZXhhbXBsZSBvZiBhIDxsaW5rCisgICAgICAgICAgbGlua2VuZD0iZXh0aXAiPnRpcDwvbGluaz4gd2FzIGdpdmVuIGluICA8eHJlZgorICAgICAgICAgIGxpbmtlbmQ9Im5vdGVzIiAvPi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBIZXJlIDxzZ21sdGFnPm5vdGVzPC9zZ21sdGFnPiBhbmQgPHNnbWx0YWc+ZXh0aXA8L3NnbWx0YWc+CisgICAgICAgICAgYXJlIHRoZSBpZCBhdHRyaWJ1dGVzIG9mIDx4cmVmIGxpbmtlbmQ9Im5vdGVzIiAvPiBhbmQgb2YgdGhlCisgICAgICAgICAgZXhhbXBsZSBvZiBhIHRpcCBpbiBpdC4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4gIFRvIHByb2R1Y2UgYSBsaW5rICB0byBhbiBleHRlcm5hbCBzb3VyY2UsIHN1Y2ggYXMgYQorICAgICAgICAgIFdlYiBwYWdlIG9yIGEgbG9jYWwgZmlsZSwgdXNlIDxzZ21sdGFnPiZsdDt1bGluaz48L3NnbWx0YWc+CisgICAgICAgICAgdGFnLCBmb3IgZXhhbXBsZToKKyAgICAgICAgICA8cHJvZ3JhbWxpc3Rpbmc+Cis8IVtDREFUQVsgVG8gZmluZCBtb3JlIGFib3V0IEdOT01FLCBwbGVhc2UgdmlzaXQgPHVsaW5rIHR5cGU9Imh0dHAiCit1cmw9Imh0dHA6Ly93d3cuZ25vbWUub3JnIj5HTk9NRSBXZWIgcGFnZTwvdWxpbms+IF1dPgorICAgICAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgICAgd2hpY2ggcHJvZHVjZXM6ICBUbyBmaW5kIG1vcmUgYWJvdXQgR05PTUUsIHBsZWFzZSB2aXNpdAorICAgICAgICAgIDx1bGluayB0eXBlPSJodHRwIiB1cmw9Imh0dHA6Ly93d3cuZ25vbWUub3JnIj5UaGUgR05PTUUgV2ViCisgICAgICAgICAgU2l0ZTwvdWxpbms+IFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgc3RhbmRhcmQgVVJMIHR5cGVzLCBzdWNoCisgICAgICAgICAgYXMgPGxpdGVyYWw+aHR0cCwgZnRwLCBmaWxlLCB0ZWxuZXQsIG1haWx0bzwvbGl0ZXJhbD4gKGluCisgICAgICAgICAgbW9zdCBjYXNlcywgaG93ZXZlciwgdXNlIG9mIDxsaXRlcmFsPm1haWx0bzwvbGl0ZXJhbD4gaXMKKyAgICAgICAgICB1bm5lY2Vzc2FyeSZtZGFzaDtzZWUgZGlzY3Vzc2lvbiBvZgorICAgICAgICAgIDxzZ21sdGFnPiZsdDtlbWFpbD48L3NnbWx0YWc+IHRhZykuCisgICAgICAgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisKKyAgICAgIDxzZWN0MyBpZD0iZmlsZW5hbWVzIj4gIDx0aXRsZT5GaWxlbmFtZXMsIGNvbW1hbmRzLCBhbmQgb3RoZXIKKyAgICAgICAgY29tcHV0ZXItcmVsYXRlZCB0aGluZ3M8L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBIZXJlIGFyZSBzb21lIHRhZ3MgdXNlZCB0byBkZXNjcmliZSBvcGVyYXRpbmcgc3lzdGVtLXJlbGF0ZWQKKyAgICAgICAgICB0aGluZ3M6ICAKKyAgICAgICAgPC9wYXJhPgorCTxpdGVtaXplZGxpc3Q+CisgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+ICA8c2dtbHRhZz4mbHQ7ZmlsZW5hbWU+PC9zZ21sdGFnPiAmbWRhc2g7IHVzZWQKKyAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lcywKKyAgICAgICAgICAgICAgZS5nLjxzZ21sdGFnPiZsdDtmaWxlbmFtZT48L3NnbWx0YWc+CisgICAgICAgICAgICAgICAgICAgIGZvby5zZ21sCisgICAgICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7L2ZpbGVuYW1lPjwvc2dtbHRhZz4gCisgICAgICAgICAgICAgIHByb2R1Y2VzOiA8ZmlsZW5hbWU+Zm9vLnNnbWw8L2ZpbGVuYW1lPi4KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPiAgPHNnbWx0YWc+Jmx0O2ZpbGVuYW1lCisgICAgICAgICAgICAgIGNsYXNzPSJkaXJlY3RvcnkiPjwvc2dtbHRhZz4gJm1kYXNoOyB1c2VkIGZvcgorICAgICAgICAgICAgICBkaXJlY3RvcmllcywgZS5nLjxzZ21sdGFnPiZsdDtmaWxlbmFtZQorICAgICAgICAgICAgICBjbGFzcz0iZGlyZWN0b3J5Ij48L3NnbWx0YWc+L3Vzci9iaW4KKyAgICAgICAgICAgICAgICAgIDxzZ21sdGFnPiZsdDsvZmlsZW5hbWU+PC9zZ21sdGFnPgorICAgICAgICAgICAgICBwcm9kdWNlczogPGZpbGVuYW1lCisgICAgICAgICAgICAgIGNsYXNzPSJkaXJlY3RvcnkiPi91c3IvYmluPC9maWxlbmFtZT4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgPHNnbWx0YWc+Jmx0O2FwcGxpY2F0aW9uPjwvc2dtbHRhZz4gJm1kYXNoOyB1c2VkIGZvcgorICAgICAgICAgICAgICBhcHBsaWNhdGlvbiBuYW1lcywKKyAgICAgICAgICAgICAgZS5nLiA8c2dtbHRhZz4mbHQ7YXBwbGljYXRpb24+PC9zZ21sdGFnPkdudW1lcmljCisgICAgICAgICAgICAgIDxzZ21sdGFnPiZsdDsvYXBwbGljYXRpb24+PC9zZ21sdGFnPiBwcm9kdWNlczoKKyAgICAgICAgICAgICAgPGFwcGxpY2F0aW9uPkdudW1lcmljPC9hcHBsaWNhdGlvbj4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKwkgICAgICA8c2dtbHRhZz4mbHQ7ZW52YXI+PC9zZ21sdGFnPiAmbWRhc2g7IHVzZWQgZm9yCisJICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBlLmcuIAorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7ZW52YXI+PC9zZ21sdGFnPlBBVEg8c2dtbHRhZz4mbHQ7L2VudmFyPjwvc2dtbHRhZz4uIAorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgIAorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7Y29tbWFuZD48L3NnbWx0YWc+ICZtZGFzaDsgdXNlZCBmb3IKKyAgICAgICAgICAgICAgY29tbWFuZHMgZW50ZXJlZCBvbiBjb21tYW5kIGxpbmUsIGUuZy4KKyAgICAgICAgICAgICAgPHNnbWx0YWc+Jmx0O2NvbW1hbmQ+PC9zZ21sdGFnPm1ha2UgaW5zdGFsbAorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7L2NvbW1hbmQ+PC9zZ21sdGFnPiBwcm9kdWNlczoKKyAgICAgICAgICAgICAgPGNvbW1hbmQ+bWFrZSBpbnN0YWxsPC9jb21tYW5kPi4KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7cmVwbGFjZWFibGU+PC9zZ21sdGFnPiAmbWRhc2g7IHVzZWQgZm9yCisgICAgICAgICAgICAgIHJlcGxhY2VhYmxlIHRleHQsIGUuZy4KKyAgICAgICAgICAgICAgPHNnbWx0YWc+Jmx0O2NvbW1hbmQ+PC9zZ21sdGFnPmRiMmh0bWw8c2dtbHRhZz4mbHQ7cmVwbGFjZWFibGU+PC9zZ21sdGFnPgorICAgICAgICAgICAgICBmb28uc2dtbAorICAgICAgICAgICAgICA8c2dtbHRhZz4mbHQ7L3JlcGxhY2VhYmxlPjwvc2dtbHRhZz48c2dtbHRhZz4mbHQ7L2NvbW1hbmQ+PC9zZ21sdGFnPgorICAgICAgICAgICAgICBwcm9kdWNlczogPGNvbW1hbmQ+ZGIyaHRtbAorICAgICAgICAgICAgICA8cmVwbGFjZWFibGU+Zm9vLnNnbWw8L3JlcGxhY2VhYmxlPjwvY29tbWFuZD4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPC9pdGVtaXplZGxpc3Q+ICAKKyAgICAgIDwvc2VjdDM+CisKKyAgICAgIDxzZWN0MyBpZD0ia2V5cyI+ICAgCisgICAgICAgIDx0aXRsZT5LZXlib2FyZCBpbnB1dDwvdGl0bGU+IAorICAgICAgICA8cGFyYT4gVG8gbWFyayB1cCB0ZXh0IGlucHV0IGJ5IHRoZSB1c2VyLCB1c2UKKyAgICAgICAgPHNnbWx0YWc+Jmx0O3VzZXJpbnB1dD48L3NnbWx0YWc+LgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPiAgVG8gbWFyayBrZXlzdHJva2VzIHN1Y2ggYXMgc2hvcnRjdXRzIGFuZCBvdGhlcgorICAgICAgICAgIGNvbW1hbmRzLCB1c2UgPHNnbWx0YWc+Jmx0O2tleWNhcD48L3NnbWx0YWc+LiAKKyAgICAgICAgICBUaGlzIGlzIHVzZWQgZm9yIG1hcmtpbmcgdXAgd2hhdCBpcyBwcmludGVkIG9uIHRoZSB0b3AgCisgICAgICAgICAgb2YgdGhlIHBoeXNpY2FsIGtleSBvbiB0aGUga2V5Ym9hcmQuIFRoZXJlIGFyZSBhIGNvdXBsZSBvZgorICAgICAgICAgIG90aGVyIHRhZ3MgZm9yIGtleXMsIHRvbzogPHNnbWx0YWc+Jmx0O2tleXN5bSZndDs8L3NnbWx0YWc+CisgICAgICAgICAgYW5kIDxzZ21sdGFnPiZsdDtrZXljb2RlJmd0Ozwvc2dtbHRhZz4uIEhvd2V2ZXIgeW91IGFyZQorICAgICAgICAgIHVubGlrZWx5IHRvIG5lZWQgdGhlc2UgZm9yIG1vc3QgZG9jdW1lbnRhdGlvbi4gRm9yIHJlZmVyZW5jZSwKKyAgICAgICAgICA8c2dtbHRhZz4mbHQ7a2V5c3ltJmd0Ozwvc2dtbHRhZz4gaXMgZm9yIHRoZSA8cXVvdGU+c3ltYm9saWMKKyAgICAgICAgICBuYW1lPC9xdW90ZT4gb2YgYSBrZXkuIDxzZ21sdGFnPiZsdDtrZXljb2RlJmd0Ozwvc2dtbHRhZz4gaXMKKyAgICAgICAgICBmb3IgdGhlIDxxdW90ZT5zY2FuIGNvZGU8L3F1b3RlPiBvZiBhIGtleS4gVGhlc2UgYXJlIG5vdAorICAgICAgICAgIHRlcm1zIGNvbW1vbmx5IHJlcXVpcmVkIGluIDxhY3JvbnltPkdOT01FPC9hY3JvbnltPiBkb2N1bWVudGF0aW9uLAorICAgICAgICAgIGFsdGhvdWdoIDxzZ21sdGFnPiZsdDtrZXlzeW0mZ3Q7PC9zZ21sdGFnPiBpcyB1c2VmdWwgZm9yIG1hcmtpbmcKKyAgICAgICAgICB1cCBjb250cm9sIGNvZGVzLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgICBUbyBtYXJrIHVwIGEgY29tYmluYXRpb24gb2Yga2V5c3Ryb2tlcywgdXNlIHRoZQorICAgICAgICAgIDxzZ21sdGFnPiZsdDtrZXljb21ibz48L3NnbWx0YWc+IHdyYXBwZXI6CisgICAgICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbCis8a2V5Y29tYm8+CisgPGtleWNhcD5DdHJsPC9rZXljYXA+CisgPGtleWNhcD5BbHQ8L2tleWNhcD4KKyA8a2V5Y2FwPkYxPC9rZXljYXA+Cis8L2tleWNvbWJvPl1dPgorICAgICAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICAgRmluYWxseSwgaWYgeW91IHdhbnQgdG8gc2hvdyBhIHNob3J0Y3V0IGZvciBzb21lIG1lbnUKKyAgICAgICAgICBjb21tYW5kLCBoZXJlIGFyZSB0aGUgYXBwcm9wcmlhdGUgdGFncyAocmF0aGVyIGxvbmcpOgorICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWworPG1lbnVjaG9pY2U+CisgPHNob3J0Y3V0PgorICA8a2V5Y29tYm8+PGtleWNhcD5DdHJsPC9rZXljYXA+PGtleWNhcD5xPC9rZXljYXA+PC9rZXljb21ibz4KKyA8L3Nob3J0Y3V0PiAKKyA8Z3VpbWVudWl0ZW0+IFF1aXQ8L2d1aW1lbnVpdGVtPiAKKzwvbWVudWNob2ljZT5dXT4KKyAgICAgICAgICA8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICAgIHdoaWNoIHByb2R1Y2VzIHNpbXBseQorICAgICAgICAgIDxtZW51Y2hvaWNlPgorICAgICAgICAgICAgPHNob3J0Y3V0PiAgIDxrZXlzeW0+Q3RybC1xPC9rZXlzeW0+IDwvc2hvcnRjdXQ+CisgICAgICAgICAgICA8Z3VpbWVudWl0ZW0+IFF1aXQ8L2d1aW1lbnVpdGVtPgorICAgICAgICAgIDwvbWVudWNob2ljZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgPC9zZWN0Mz4KKworICAgICAgPHNlY3QzIGlkPSJlbWFpbCI+CisgICAgICAgIDx0aXRsZT5FLW1haWwgYWRkcmVzc2VzPC90aXRsZT4gPHBhcmE+ICBUbyBtYXJrIHVwIGUtbWFpbAorICAgICAgICBhZGRyZXNzLCB1c2UgPHNnbWx0YWc+Jmx0O2VtYWlsPjwvc2dtbHRhZz46CisgICAgICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbIFRoZSBlYXNpZXN0IHdheSB0byBnZXQgaW4gdG91Y2ggd2l0aCBtZSBpcyBieSBlLW1haWwKKyg8ZW1haWw+bWVAbXlkb21haW4uY29tPC9lbWFpbD4pXV0+CisgICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgICB3aGljaCBwcm9kdWNlczogVGhlIGVhc2llc3Qgd2F5IHRvIGdldCBpbiB0b3VjaCB3aXRoIG1lIGlzCisgICAgICAgICAgYnkgZS1tYWlsICAoPGVtYWlsPm1lQG15ZG9tYWluLmNvbTwvZW1haWw+KSBOb3RlIHRoYXQKKyAgICAgICAgICA8c2dtbHRhZz4mbHQ7ZW1haWw+PC9zZ21sdGFnPiBhdXRvbWF0aWNhbGx5IHByb2R1Y2VzIGEgbGluaworICAgICAgICAgIGluIGh0bWwgdmVyc2lvbi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgPC9zZWN0Mz4KKworICAgICAgPHNlY3QzIGlkPSJzcGVjc3ltYiI+CisJPHRpdGxlPiBTcGVjaWFsIHN5bWJvbHMgPC90aXRsZT4KKwk8cGFyYT4gCisJICBEb2NCb29rIGFsc28gcHJvdmlkZXMgc3BlY2lhbCBtZWFucyBmb3IgZW50ZXJpbmcKKwl0eXBvZ3JhcGhpYyBzeW1ib2xzIHdoaWNoIGNhbiBub3QgYmUgZW50ZXJlZCBkaXJlY3RseQorCWZvcm0gdGhlIGtleWJvYXJkIChzdWNoIGFzIGNvcHlyaWdodCBzaWduKS4gVGhpcyBpcyBkb25lIHVzaW5nCisJPGVtcGhhc2lzPmVudGl0aWVzPC9lbXBoYXNpcz4sIHdoaWNoIGlzIFNHTUwgYW5hbG9ndWUgb2YKKwltYWNyb3MsIG9yIGNvbW1hbmRzLCBvZiBMYVRlWC4gVGhleSBnZW5lcmFsbHkgaGF2ZSB0aGUgZm9ybSAKKwkgIDxzZ21sdGFnPiZhbXA7ZW50aXR5bmFtZTs8L3NnbWx0YWc+LiBOb3RlIHRoYXQgdGhlIHNlbWljb2xvbgorCWlzIHJlcXVpcmVkLiAKKwk8L3BhcmE+CisJPHBhcmE+CisJICBoZXJlIGlzIHBhcnRpYWwgbGlzdCBvZiBtb3N0IGNvbW1vbmx5IHVzZWQgZW5pdGl0ZXM6CisJPC9wYXJhPgorCTxpdGVtaXplZGxpc3Q+CisJICA8bGlzdGl0ZW0+PHBhcmE+CisgICAgICAgICAgICAgPHNnbWx0YWc+JmFtcDthbXA7PC9zZ21sdGFnPiAmbWRhc2g7IGFtcGVyc2VuZCAoJmFtcDspCisJICA8L3BhcmE+PC9saXN0aXRlbT4KKwkgIDxsaXN0aXRlbT48cGFyYT4KKyAgICAgICAgICAgICA8c2dtbHRhZz4mYW1wO2x0Ozwvc2dtbHRhZz4gJm1kYXNoOyBsZWZ0IGFuZ2xlIGJyYWNrZXQgKCZsdDspCisJICA8L3BhcmE+PC9saXN0aXRlbT4KKwkgIDxsaXN0aXRlbT48cGFyYT4KKyAgICAgICAgICAgICA8c2dtbHRhZz4mYW1wO2NvcHk7PC9zZ21sdGFnPiAmbWRhc2g7IGNvcHlyaWdodCBzaWduICgmY29weTspCisJICA8L3BhcmE+PC9saXN0aXRlbT4KKwkgIDxsaXN0aXRlbT48cGFyYT4KKyAgICAgICAgICAgICA8c2dtbHRhZz4mYW1wO21kYXNoOzwvc2dtbHRhZz4gJm1kYXNoOyBsb25nIGRhc2ggKCZtZGFzaDspCisJICA8L3BhcmE+PC9saXN0aXRlbT4KKwkgIDxsaXN0aXRlbT48cGFyYT4KKyAgICAgICAgICAgICA8c2dtbHRhZz4mYW1wO2hlbGxpcDs8L3NnbWx0YWc+ICZtZGFzaDsgZWxsaXBzaXMgKCZoZWxsaXA7KQorCSAgPC9wYXJhPjwvbGlzdGl0ZW0+CisJPC9pdGVtaXplZGxpc3Q+CisJPHBhcmE+CisJICBOb3RlIHRoYXQgdGhlIGFjdHVhbCBsb29rIG9mIHRoZSByZXN1bHRpbmcgc3ltYm9scyBkZXBlbmRzCisJICBvbiB0aGUgZm9udHMgdXNlZCBieSB5b3VyIGJyb3dzZXI7IGZvciBleGFtcGxlLCBpdCBtaWdodAorCSAgaGFwcGVuIHRoYXQgbG9uZyBkYXNoICg8c2dtbHRhZz4mYW1wO21kYXNoOzwvc2dtbHRhZz4pIGxvb2tzCisJICBleGFjdGx5IGxpa2UgdGhlIHVzdWFsIGRhc2ggKC0pLiBIb3dldmVyLCBpbiB0aGUgUG9zdFNjcmlwdAorCSAgKGFuZCB0aHVzLCBpbiBwcmludCkgdGhlIG91dHB1dCB3aWxsIGxvb2sgbWFya2VkbHkgYmV0dGVyIGlmCisJICB5b3UgdXNlIGFwcHJvcHJpYXRlIHRhZ3MuIAorCTwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisgICAgPC9zZWN0Mj4KKyAgPC9zZWN0MT4KKyAgCis8IS0tICMjIyMjIyMjIyMjIyMjIyMjIEdEUCBEb2N1bWVudGF0aW9uIENvbnZlbnRpb25zICMjIyMjIyMjIyMjIyMjIyAtLT4KKyAKKyAgPHNlY3QxIGlkPSJjb252ZW50aW9ucyI+CisgICAgPHRpdGxlPkdEUCBEb2N1bWVudGF0aW9uIENvbnZlbnRpb25zIDwvdGl0bGU+IAorCis8IS0tICMjIyMjIyMgR0RQIERvY3VtZW50YXRpb24gQ29udmVudGlvbnMgfCBBbGwgRG9jdW1lbnRhdGlvbiAjIyMjIyMjIC0tPgorCisgICAgPHNlY3QyIGlkPSJjb252ZW50aW9uc2FsbGRvY3MiPgorICAgICAgPHRpdGxlPkNvbnZlbnRpb25zIGZvciBBbGwgR0RQIERvY3VtZW50YXRpb248L3RpdGxlPgorICAgICAgPHNlY3QzIGlkPSJ4bWxjb21wIj4KKwk8dGl0bGU+IFhNTCBjb21wYXRpYmlsaXR5IDwvdGl0bGU+CisJPHBhcmE+CisJICBBbGwgR05PTUUgZG9jdW1lbnRhdGlvbiAgc2hvdWxkIGNvbmZvcm0gdG8gWE1MIHN5bnRheAorCSAgcmVxdWlyZW1lbnRzLCB3aGljaCBhcmUgc3RyaWN0ZXIgdGhhbiBTR01MIG9uZXMgJm1kYXNoOyBzZWUKKwkgIDx4cmVmIGxpbmtlbmQ9InhtbCIgLz4gZm9yIG1vcmUgaW5mb3JtYWlvbi4KKwk8L3BhcmE+CisgICAgICA8L3NlY3QzPiAKKworICAgICAgPHNlY3QzIGlkPSJhdXRob3JzbmFtZXMiPiAKKwk8dGl0bGU+IEF1dGhvcnMnIG5hbWVzPC90aXRsZT4KKwk8cGFyYT4gCisJICBBbGwgR05PTUUgZG9jdW1lbnRhdGlvbiBzaG91bGQgY29udGFpbiB0aGUgbmFtZXMgb2YgYm90aCB0aGUKKwkgIGFwcGxpY2F0aW9uIGF1dGhvcnMgYW5kIGRvY3VtZW50YXRpb24gYXV0aG9ycywgYXMgd2VsbCBhcyBhCisJICBsaW5rIHRvIHRoZSBhcHBsaWNhdGlvbiB3ZWIgcGFnZSAoaWYgaXQgZXhpc3RzKSBhbmQKKwkgIGluZm9ybWF0aW9uIGZvciBidWcgc3VibWlzc2lvbiAmbWRhc2g7IHNlZSB0ZW1wbGF0ZXMgZm9yIGFuCisJICBleGFtcGxlLiAKKwkgIDwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisgICAgPC9zZWN0Mj4KKworPCEtLSAjIyMjIyMjIEdEUCBEb2N1bWVudGF0aW9uIENvbnZlbnRpb25zIHwgQWxsIERvY3VtZW50YXRpb24gIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0iY29udmVudGlvbnNhcHBkb2NzIj4KKyAgICAgIDx0aXRsZT5Db252ZW50aW9ucyBmb3IgQXBwbGljYXRpb24gRG9jdW1lbnRhdGlvbjwvdGl0bGU+CisKKyAgICAgIDxzZWN0MyBpZD0iYXBwbGljYXRpb252ZXJzaW9uaWQiPgorICAgICAgICA8dGl0bGU+QXBwbGljYXRpb24gVmVyc2lvbiBJZGVudGlmaWNhdGlvbjwvdGl0bGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIEFwcGxpY2F0aW9uIGRvY3VtZW50YXRpb24gc2hvdWxkIGlkZW50aWZ5IHRoZSB2ZXJzaW9uIG9mIHRoZQorICAgICAgICAgIGFwcGxpY2F0aW9uIGZvciB3aGljaCB0aGUgZG9jdW1lbnRhdGlvbiBpcyB3cml0dGVuOgorICAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWworPHNlY3QxIGlkPSJpbnRybyI+CisgPHRpdGxlPkludHJvZHVjdGlvbjwvdGl0bGU+CisgPHBhcmE+CisgIGJsYWgtYmxhaC1ibGFoIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHZlcnNpb24gMS4wLjUzIG9mIGdmb28uCisgPC9wYXJhPgorPC9zZWN0MT5dXT4KKyAgICAgICAgICA8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgICAgPHNlY3QzIGlkPSJsaWNlbnNlIj4KKwk8dGl0bGU+IENvcHlyaWdodCBpbmZvcm1hdGlvbiA8L3RpdGxlPiAKKyAgICAgICAgPHBhcmE+IEFwcGxpY2F0aW9uCisgICAgICAgIGRvY3VtZW50YXRpb24gc2hvdWxkIGNvbnRhaW4gYSBjb3B5cmlnaHQgbm90aWNlLCBzdGF0aW5nIHRoZQorICAgICAgICBsaWNlbnNpbmcgdGVybXMuIEl0IGlzIHN1Z2dlc3RlZCB0aGF0IHlvdSB1c2UgdGhlIEdOVSBGcmVlCisgICAgICAgIERvY3VtZW50YXRpb24gTGljZW5zZS4gIFlvdSBjb3VsZCBhbHNvIHVzZSBzb21lIG90aGVyIGxpY2Vuc2UKKyAgICAgICAgYWxsb3dpbmcgZnJlZSByZWRpc3RyaWJ1dGlvbiwgc3VjaCBhcyBHUEwgb3IgT3BlbiBDb250ZW50CisgICAgICAgIGxpY2Vuc2UuICBJZiBkb2N1bWVudGF0aW9uIHVzZXMgc29tZSB0cmFkZW1hcmtzIChzdWNoIGFzIFVOSVgsCisgICAgICAgIExpbnV4LCBXaW5kb3dzLCBldGMuKSwgcHJvcGVyIGxlZ2FsIGp1bmsgc2hvdWxkIGFsc28gYmUKKyAgICAgICAgaW5jbHVkZWQgKHNlZSB0ZW1wbGF0ZXMpLgorCTwvcGFyYT4KKyAgICAgIDwvc2VjdDM+CisgICAgICA8c2VjdDMgaWQ9ImxpY2Vuc2UyIj4KKyAgICAgICA8dGl0bGU+U29mdHdhcmUgbGljZW5zZTwvdGl0bGU+CisgICAgICAgPHBhcmE+IAorICAgICAgICAgQWxsIEdOT01FIGFwcGxpY2F0aW9ucyBtdXN0IGNvbnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICAgbGljZW5zZSAoZm9yIHNvZnR3YXJlLCBub3QgZm9yIGRvY3VtZW50YXRpb24pLCBlaXRoZXIgaW4gdGhlCisgICAgICAgIkFib3V0IiBib3ggb3IgaW4gdGhlIG1hbnVhbC4gCisgICAgICAgPC9wYXJhPgorICAgICAgPC9zZWN0Mz4KKworICAgICAgPHNlY3QzIGlkPSJidWd0cmFxIj4KKwk8dGl0bGU+IEJ1ZyByZXBvcnRpbmc8L3RpdGxlPiAJCisgICAgICAgIDxwYXJhPiAKKwkgIEFwcGxpY2F0aW9uIGRvY3VtZW50YXRpb24gc2hvdWxkIGdpdmUgYW4gYWRkcmVzcyBmb3IKKyAgICAgICAgcmVwb3J0aW5nIGJ1Z3MgYW5kIGZvciBzdWJtaXR0aW5nIGNvbW1lbnRzIGFib3V0IHRoZQorICAgICAgICBkb2N1bWVudGFpb24gKHNlZSB0ZW1wbGF0ZXMgZm9yIGFuIGV4YW1wbGUpLiAKKyAgICAgICA8L3BhcmE+CisgICAgICA8L3NlY3QzPgorICAgIDwvc2VjdDI+CisgIDwvc2VjdDE+CisgIAorPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyBXcml0aW5nIEFwcGxpY2F0aW9uIE1hbnVhbHMgIyMjIyMjIyMjIyMjIyMjLS0+CisgIAorICA8c2VjdDEgaWQ9IndyaXRpbmdhcHBsaWNhdGlvbm1hbnVhbHMiPgorICAgIDx0aXRsZT5Xcml0aW5nIEFwcGxpY2F0aW9uIGFuZCBBcHBsZXQgTWFudWFsczwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgICAgRXZlcnkgR05PTUUgYXBwbGljYXRpb24gb3IgYXBwbGV0IHNob3VsZCBoYXZlIGEgbWFudWFsIHNwZWNpZmljCisgICAgICB0byB0aGF0IHBhcnRpY3VsYXIgYXBwbGljYXRpb24uIFRoaXMgbWFudWFsIHNob3VsZCBiZSBhIGNvbXBsZXRlCisgICAgICBhbmQgYXV0aG9yaXRhdGl2ZSBndWlkZS4gIFRoZSBtYW51YWwgc2hvdWxkIGRlc2NyaWJlIHdoYXQgdGhlCisgICAgICBwcm9ncmFtIGRvZXMgYW5kIGhvdyB0byB1c2UgaXQuICBNYW51YWxzIHdpbGwgdHlwaWNhbGx5IGRlc2NyaWJlCisgICAgICBlYWNoIHdpbmRvdyBvciBwYW5lbCBwcmVzZW50ZWQgdG8gdGhlIHVzZXIgdXNpbmcgc2NyZWVuc2hvdHMgKGluCisgICAgICBQTkcgZm9ybWF0IG9ubHkpIHdoZW4gYXBwcm9wcmlhdGUuICBUaGV5IHNob3VsZCBhbHNvIGRlc2NyaWJlCisgICAgICBlYWNoIGZlYXR1cmUgYW5kIHByZWZlcmVuY2Ugb3B0aW9uIGF2YWlsYWJsZS4KKyAgICA8L3BhcmE+CisgICAgPG5vdGU+CisgICAgICA8dGl0bGU+RG9jdW1lbnRhdGlvbiBBdmFpbGFiaWxpdHk8L3RpdGxlPgorICAgICAgPHBhcmE+CisgICAgICAgIEFwcGxpY2F0aW9ucyBhbmQgYXBwbGV0cyBzaG91bGQgbm90IHJlbHkgb24gZG9jdW1lbnRhdGlvbgorICAgICAgICB3aGljaCBpcyBvbmx5IGF2YWlsYWJsZSBvbiB0aGUgaW50ZXJuZXQuICBBbGwgbWFudWFscyBhbmQKKyAgICAgICAgb3RoZXIgZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgcGFja2FnZWQgd2l0aCB0aGUgYXBwbGljYXRpb24gb3IKKyAgICAgICAgYXBwbGV0IGFuZCBiZSBtYWRlIGF2YWlsYWJsZSB0byB0aGUgdXNlciB0aHJvdWdoIHRoZSBzdGFuZGFyZAorICAgICAgICBHTk9NRSBoZWxwIHN5c3RlbSBtZXRob2RzIGRlc2NyaWJlZCBiZWxvdy4KKyAgICAgIDwvcGFyYT4KKyAgICA8L25vdGU+CisgICAgPHBhcmE+IEFwcGxpY2F0aW9uIG1hbnVhbHMgc2hvdWxkIGJlIGJhc2VkIG9uIHRoZSB0ZW1wbGF0ZSBpbgorICAgIDx4cmVmIGxpbmtlbmQ9InRlbXBsYXRlMSIgLz4uICBBcHBsZXQgbWFudWFscyBzaG91bGQgYmUgYmFzZWQgb24KKyAgICB0aGUgdGVtcGxhdGVzIGluIDx4cmVmIGxpbmtlbmQ9InRlbXBsYXRlMi0xeCIgLz4gZm9yIEdOT01FCisgICAgdmVyc2lvbnMgMS54IGFuZCB0aGUgdGVtcGxhdGVzIGluIDx4cmVmIGxpbmtlbmQ9InRlbXBsYXRlMi0yeCIgLz4KKyAgICBmb3IgR05PTUUgdmVyc2lvbnMgMi54LgorICAgIDwvcGFyYT4KKyAgICA8bm90ZT4KKyAgICAgIDx0aXRsZT5NYW51YWxzIEZvciBMYXJnZSBBcHBsaWNhdGlvbnM8L3RpdGxlPgorICAgICAgPHBhcmE+CisgICAgICAgIE1hbnVhbHMgZm9yIHZlcnkgbGFyZ2UgYXBwbGljYXRpb25zLCBzdWNoIGFzIEdOT01FIFdvcmtzaG9wCisgICAgICAgIGNvbXBvbmVudHMgc2hvdWxkIGJlIGEgPHNnbWx0YWc+Jmx0O2Jvb2s+PC9zZ21sdGFnPiAoYW5kIHRodXMKKyAgICAgICAgdXNlIDxzZ21sdGFnPiZsdDtjaGFwdGVyPjwvc2dtbHRhZz4gZm9yIGVhY2ggcHJpbWFyeSBzZWN0aW9uKQorICAgICAgICAsIGluc3RlYWQgb2YgPHNnbWx0YWc+Jmx0O2FydGljbGU+PC9zZ21sdGFnPiB3aGljaCBtb3N0CisgICAgICAgIGFwcGxpY2F0aW9ucyB1c2Uod2l0aCBlYWNoIHByaW1hcnkgc2VjdGlvbiBiZWluZyBhCisgICAgICAgIDxzZ21sdGFnPiZsdDtzZWN0MT48L3NnbWx0YWc+KS4KKyAgICAgIDwvcGFyYT4KKyAgICA8L25vdGU+CisgICAgPG5vdGU+CisgICAgICA8dGl0bGU+QXBwbGV0IE1hbnVhbHMgaW4gR05PTUUgMi4wPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOb3RlIHRoYXQgYXBwbGV0IG1hbnVhbHMgaW4gR05PTUUgMi4wIGFyZSB0cmVhdGVkIGluIGEgc3BlY2lhbAorICAgICAgICB3YXkuICBUaGUgbWFudWFscyBmb3IgYWxsIGFwcGxldHMgYXJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlCisgICAgICAgIHZpcnR1YWwgZG9jdW1lbnQgYnkgTmF1dGlsdXMuICBGb3IgdGhpcyByZWFzb24sIHRoZSBoZWFkZXIKKyAgICAgICAgaW5mb3JtYXRpb24gZm9yIGFwcGxldCBtYW51YWxzIGlzIG9taXR0ZWQgYW5kIHRoZSAgZmlyc3QKKyAgICAgICAgc2VjdGlvbiBvZiBlYWNoIGFwcGxldCBpcworICAgICAgICA8c2dtbHRhZz4mbHQ7c2VjdDE+PC9zZ21sdGFnPi4gQXBwbGV0IG1hbnVhbHMgd2lsbCB0eXBpY2FsbHkKKyAgICAgICAgaGF2ZSBzZXZlcmFsIHNlY3Rpb25zLCBlYWNoIG9mIHdoaWNoIGlzCisgICAgICAgIDxzZ21sdGFnPiZsdDtzZWN0Mj48L3NnbWx0YWc+LgorICAgICAgPC9wYXJhPgorICAgIDwvbm90ZT4KKyAgICA8cGFyYT4KKyAgICAgIEFwcGxpY2F0aW9uIG1hbnVhbHMgc2hvdWxkIGJlIG1hZGUgYXZhaWxhYmxlIGJ5IGhhdmluZyBhCisgICAgICAiTWFudWFsIiBlbnRyeSBpbiB0aGUgPGd1aW1lbnU+SGVscDwvZ3VpbWVudT4gcHVsbC1kb3duIG1lbnUKKyAgICAgIGF0IHRoZSB0b3Agb2YgdGhlIAorICAgICAgYXBwbGljYXRpb24sIGFzIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJsaXN0aW5nZG9jc2luaGVscG1lbnUiIC8+LgorICAgICAgQXBwbGV0cyBzaG91bGQgbWFrZSB0aGVpciBtYW51YWxzIGF2YWlsYWJsZSBieQorICAgICAgcmlnaHQtY2xpY2tpbmcgb24gdGhlIGFwcGxldC4gCisgICAgPC9wYXJhPgorICA8L3NlY3QxPgorICAKKworPCEtLSAjIyMjIyMjIyMjIyMjIyMgTGlzdGluZyBEb2N1bWVudHMgaW4gdGhlIEhlbHAgTWVudSAjIyMjIyMjIyMjIyMjIC0tPgorCisgIDxzZWN0MSBpZD0ibGlzdGluZ2RvY3NpbmhlbHBtZW51Ij4KKyAgICA8dGl0bGU+TGlzdGluZyBEb2N1bWVudHMgaW4gdGhlIEhlbHAgTWVudTwvdGl0bGU+CisKKyAgICA8bm90ZT4KKyAgICAgIDx0aXRsZT5EZXZlbG9wZXIgSW5mb3JtYXRpb248L3RpdGxlPgorICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgc2VjdGlvbiBpcyBmb3IgZGV2ZWxvcGVycy4gIERvY3VtZW50YXRpb24gYXV0aG9ycworICAgICAgICBnZW5lcmFsbHkgZG8gbm90IG5lZWQgdG8ga25vdyB0aGlzIG1hdGVyaWFsLgorICAgICAgPC9wYXJhPgorICAgIDwvbm90ZT4KKyAgICA8cGFyYT4KKyAgICAgIFR5cGljYWxseSB0aGUgYXBwbGljYXRpb24gbWFudWFsIGFuZCBwb3NzaWJseSBhZGRpdGlvbmFsIGhlbHAKKyAgICAgIGRvY3VtZW50cyB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlIHRvIHRoZSB1c2VyIHVuZGVyIHRoZQorICAgICAgPGd1aW1lbnU+SGVscDwvZ3VpbWVudT4gbWVudSBhdCB0aGUgdG9wIHJpZ2h0IG9mIHRoZQorICAgICAgYXBwbGljYXRpb24uIFRvIGRvIHRoaXMsIHlvdSBtdXN0IGZpcnN0IHdyaXRlIGEKKyAgICAgIDxmaWxlbmFtZT50b3BpYy5kYXQ8L2ZpbGVuYW1lPiBmaWxlLiBUaGUgZm9ybWF0IGZvciB0aGlzIGZpbGUgaXM6CisgICAgICA8cHJvZ3JhbWxpc3Rpbmc+CitPbmUgbGluZSBmb3IgZWFjaCAndG9waWMnLgorCitUd28gY29sdW1ucywgYXMgZGVmaW5lZCBieSBwZXJsIC1lICdzcGxpdCgvXHMrLywkYWxpbmUsMiknCisKK0ZpcnN0IGNvbHVtbiBpcyB0aGUgSFRNTCBmaWxlIChhbmQgb3B0aW9uYWwgc2VjdGlvbikgZm9yIHRoZSB0b3BpYywKK3JlbGF0aXZlIHRvIHRoZSBhcHAncyBoZWxwIGZpbGUgZGlyLgorCitTZWNvbmQgY29sdW1uIGlzIHRoZSB1c2VyLXZpc2libGUgdG9waWMgbmFtZS4KKyAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICBGb3IgZXhhbXBsZSwgPGFwcGxpY2F0aW9uPkdudW1lcmljPC9hcHBsaWNhdGlvbj4ncworICAgICAgPGZpbGVuYW1lPnRvcGljLmRhdDwvZmlsZW5hbWU+IGZpbGUgaXM6CisgICAgICA8cHJvZ3JhbWxpc3Rpbmc+CitnbnVtZXJpYy5odG1sICAgR251bWVyaWMgbWFudWFsCitmdW5jdGlvbi1yZWZlcmVuY2UuaHRtbCBHbnVtZXJpYyBmdW5jdGlvbiByZWZlcmVuY2UKKyAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICBXaGVuIHRoZSBhcHBsaWNhdGlvbiBpcyBpbnN0YWxsZWQsIHRoZQorICAgICAgPGZpbGVuYW1lPnRvcGljLmRhdDwvZmlsZW5hbWU+IGZpbGUgc2hvdWxkIGJlIHBsYWNlZCBpbiB0aGUKKyAgICAgIDxmaWxlbmFtZQorICAgICAgY2xhc3M9ImRpcmVjdG9yeSI+JHByZWZpeC9zaGFyZS9nbm9tZS9oZWxwLzxyZXBsYWNlYWJsZT5hcHBuYW1lPC9yZXBsYWNlYWJsZT4vQy88L2ZpbGVuYW1lPiBkaXJlY3RvcnkKKyAgICAgIHdoZXJlIDxyZXBsYWNlYWJsZT5hcHBuYW1lPC9yZXBsYWNlYWJsZT4gaXMgcmVwbGFjZWQgYnkgdGhlCisgICAgICBhcHBsaWNhdGlvbidzIG5hbWUuICBUaGUgYXBwbGljYXRpb24gZG9jdW1lbnRhdGlvbiAoY29udmVydGVkCisgICAgICBmcm9tIFNHTUwgaW50byBIVE1MIHdpdGggPGNvbW1hbmQ+ZGIyaHRtbDwvY29tbWFuZD4pIHNob3VsZCBiZQorICAgICAgcGxhY2VkIGluIHRoaXMgZGlyZWN0b3J5IHRvby4KKyAgICA8L3BhcmE+CisgICAgPG5vdGU+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0aGUgaGVscCBmaWxlcyBhcmUgbm90IHByZXNlbnQgaW4gdGhlIGNvcnJlY3QgZGlyZWN0b3J5LCB0aGUKKyAgICAgICBtZW51IGl0ZW1zIHdpbGwgTk9UIGFwcGVhciB3aGVuIHRoZSBwcm9ncmFtIGlzIHJ1bi4gCisgICAgICA8L3BhcmE+CisgICAgPC9ub3RlPgorICAgIDxwYXJhPgorICAgICAgVGhlIDxmaWxlbmFtZT50b3BpYy5kYXQ8L2ZpbGVuYW1lPiBmaWxlIGlzIHVzZWQgYnkgdGhlIEdOT01FCisgICAgICBtZW51IGJ1aWxkaW5nIGNvZGUgdG8gZ2VuZXJhdGUgdGhlIDxndWltZW51PkhlbHA8L2d1aW1lbnU+CisgICAgICBtZW51LiBXaGVuIHlvdSBkZWZpbmUgeW91ciBtZW51OiAgCis8cHJvZ3JhbWxpc3Rpbmc+CitHbm9tZVVJSW5mbyBoZWxwbWVudVtdID0geworICAgICAgICAgICAgICB7R05PTUVfQVBQX1VJX0lURU0sIAorICAgICAgICAgICAgICAgTl8oIkFib3V0IiksIE5fKCJJbmZvIGFib3V0IHRoaXMgcHJvZ3JhbSIpLAorICAgICAgICAgICAgICAgYWJvdXRfY2IsIE5VTEwsIE5VTEwsIAorICAgICAgICAgICAgICAgR05PTUVfQVBQX1BJWE1BUF9TVE9DSywgR05PTUVfU1RPQ0tfTUVOVV9BQk9VVCwKKyAgICAgICAgICAgICAgIDAsIDAsIE5VTEx9LAorICAgICAgICAgICAgICAgR05PTUVVSUlORk9fU0VQQVJBVE9SLAorICAgICAgICAgICAgICAgR05PTUVVSUlORk9fSEVMUCgiPGVtcGhhc2lzPmFwcG5hbWU8L2VtcGhhc2lzPiIpLAorICAgICAgICAgICAgICAgR05PTUVVSUlORk9fRU5ECisgICAgICAgIH07Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgdGhlIGxpbmUgc3BlY2lmeWluZyA8dmFybmFtZT5HTk9NRVVJSU5GT19IRUxQPC92YXJuYW1lPiBjYXVzZXMKKyAgICAgIEdOT01FIHRvIGNyZWF0ZSBhIG1lbnUgZW50cnkgd2hpY2ggaXMgdGllZCB0byB0aGUgZG9jdW1lbnRhdGlvbgorICAgICAgaW4gdGhlIGRpcmVjdG9yeSBtZW50aW9uZWQgYWJvdmUuIEFsc28sIGFsbCB0aGUgdG9waWNzIGluIHRoZQorICAgICAgPGZpbGVuYW1lPnRvcGljLmRhdDwvZmlsZW5hbWU+IGZpbGUgd2lsbCBnZXQgbWVudSBlbnRyaWVzIGluIHRoZQorICAgICAgPGd1aW1lbnU+SGVscDwvZ3VpbWVudT4gbWVudS4gV2hlbiB0aGUgdXNlciBzZWxlY3RzIGFueSBvZiB0aGVzZQorICAgICAgdG9waWNzIGZyb20gdGhlIDxndWltZW51PkhlbHA8L2d1aW1lbnU+IG1lbnUsIGEgaGVscCBicm93c2VyCisgICAgICB3aWxsIGJlIHN0YXJ0ZWQgd2l0aCB0aGUgYXNzb2NpYXRlZCBIVE1MIGRvY3VtZW50YXRpb24uCisgICAgPC9wYXJhPgorICA8L3NlY3QxPgorCisKKzwhLS0gIyMjIyMjIyMjIyMjIyMjIyMgQXBwbGljYXRpb24gSGVscCBCdXR0b25zICMjIyMjIyMjIyMjIyMjIyAtLT4KKworICA8c2VjdDEgaWQ9ImFwcGxpY2F0aW9uaGVscGJ1dHRvbnMiPgorICAgIDx0aXRsZT5BcHBsaWNhdGlvbiBIZWxwIEJ1dHRvbnM8L3RpdGxlPgorCisgICAgPG5vdGU+CisgICAgICA8dGl0bGU+RGV2ZWxvcGVyIEluZm9ybWF0aW9uPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIHNlY3Rpb24gaXMgZm9yIGRldmVsb3BlcnMuICBEb2N1bWVudGF0aW9uIGF1dGhvcnMKKyAgICAgICAgZ2VuZXJhbGx5IGRvIG5vdCBuZWVkIHRvIGtub3cgdGhpcyBtYXRlcmlhbC4KKyAgICAgIDwvcGFyYT4KKyAgICA8L25vdGU+CisgICAgPHBhcmE+CisgICAgICBNb3N0IEdOT01FIGFwcGxpY2F0aW9ucyB3aWxsIGhhdmUgPGd1aWJ1dHRvbj5IZWxwPC9ndWlidXR0b24+CisgICAgICBidXR0b25zLiAgVGhlc2UgYXJlIG1vc3Qgb2Z0ZW4gc2VlbiBpbiBQcmVmZXJlbmNlIHdpbmRvd3MuIChBbGwKKyAgICAgIFByZWZlcmVuY2Ugd2luZG93cyBzaG91bGQgaGF2ZSA8Z3VpYnV0dG9uPkhlbHA8L2d1aWJ1dHRvbj4KKyAgICAgIGJ1dHRvbnMuKSBNb3N0IDxndWlidXR0b24+SGVscDwvZ3VpYnV0dG9uPiBidXR0b25zIHdpbGwgY29ubmVjdAorICAgICAgdG8gdGhlIGFwcGxpY2F0aW9uIG1hbnVhbCwgYWx0aG91Z2ggc29tZSBtYXkgY29ubmVjdCB0byBzcGVjaWFsCisgICAgICBkb2N1bWVudHMuICBCZWNhdXNlIHRoZSA8Z3VpYnV0dG9uPkhlbHA8L2d1aWJ1dHRvbj4gYnV0dG9ucyBkbworICAgICAgbm90IGdlbmVyYWxseSBoYXZlIHRoZWlyIG93biBzcGVjaWFsIGRvY3VtZW50YXRpb24sIHRoZQorICAgICAgZG9jdW1lbnRhdGlvbiBhdXRob3IocykgZG8gbm90IG5lZWQgdG8gZG8gdmVyeSBtdWNoLiAgSG93ZXZlciwKKyAgICAgIHRoZSBhcHBsaWNhdGlvbiBhdXRob3IgbXVzdCBiZSBjYXJlZnVsIHRvIGd1YXJhbnRlZSB0aGF0IHRoZQorICAgICAgYXBwbGljYXRpb24gY29ycmVjdGx5IG9wZW5zIHRoZSBoZWxwIGRvY3VtZW50YXRpb24gd2hlbiB0aGUKKyAgICAgIDxndWlidXR0b24+SGVscDwvZ3VpYnV0dG9uPiBidXR0b25zIGFyZSBwcmVzc2VkLiAgCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICAgVG8gbWFrZSB0aGUgSGVscCBidXR0b25zIGNhbGwgdGhlIGNvcnJlY3QgZG9jdW1lbnQgaW4gdGhlIEdOT01FIEhlbHAKKyAgICAgIEJyb3dzZXIgdGhlIGRldmVsb3BlciBzaG91bGQgYWRkIGNvZGUgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBleGFtcGxlOgorICAgIDwvcGFyYT4KKyAgICA8cHJvZ3JhbWxpc3Rpbmc+CitnY2hhciAqdG1wOwordG1wID0gZ25vbWVfaGVscF9maWxlX2ZpbmRfZmlsZSAoIm1vZHVsZSIsICJwYWdlLmh0bWwiKTsKK2lmICh0bXApIHsKKyAgZ25vbWVfaGVscF9nb3RvKDAsIHRtcCk7CisgIGdfZnJlZSh0bXApOworfQorICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgPG5vdGU+CisgICAgICA8dGl0bGU+Tk9URTwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIGV4YW1wbGUgYWJvdmUgaXMgaW4gdGhlIEMgbGFuZ3VhZ2UsIHBsZWFzZSByZWZlciB0byBvdGhlcgorICAgICAgICBkb2N1bWVudGF0aW9uIG9yIGZvcnVtcyBmb3Igb3RoZXIgR05PTUUgbGFuZ3VhZ2UgYmluZGluZ3MuCisgICAgICA8L3BhcmE+CisgICAgPC9ub3RlPgorIDwvc2VjdDE+CisKKzwhLS0gIyMjIyMjIyMjIyMjIyMjIyMgUGFja2FnaW5nIEFwcGxldCBEb2N1bWVudGF0aW9uICMjIyMjIyMjIyMjIyMjIyAtLT4KKworICA8c2VjdDEgaWQ9InBhY2thZ2luZ2FwcGxldGRvY3MiPgorICAgIDx0aXRsZT5QYWNrYWdpbmcgQXBwbGV0IERvY3VtZW50YXRpb248L3RpdGxlPgorICAgIDxzZWN0MiBpZD0iYXBwbGV0ZmlsZXMiPgorICAgICAgPHRpdGxlPkFwcGxldCBEb2N1bWVudGF0aW9uIEZpbGVzPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBJbiBHTk9NRSAyLjAgZWFjaCBhcHBsZXQgd2lsbCBoYXZlIGl0cyBvd24gZG9jdW1lbnRhdGlvbgorICAgICAgICBpbnN0YWxsZWQgc2VwYXJhdGVseSwgYW5kIHRoZSBHTk9NRSAyLjAgaGVscAorICAgICAgICBicm93c2VyICg8YXBwbGljYXRpb24+TmF1dGlsdXM8L2FwcGxpY2F0aW9uPikgd2lsbCBkeW5hbWljYWxseQorICAgICAgICBtZXJnZSB0aGUgYXBwbGV0IGRvY3VtZW50cyBpbnRvIGEgc2luZ2xlIHZpcnR1YWwgYm9vaworICAgICAgICBjYWxsZWQgPGNpdGV0aXRsZT5HTk9NRSBBcHBsZXRzPC9jaXRldGl0bGU+LiBEdXJpbmcgdGhlCisgICAgICAgIHRyYW5zaXRpb25hcnkgc3RhZ2UgYmV0d2VlbiBHTk9NRSAxLjAgYW5kIEdOT01FIDIuMCwgZWFjaAorICAgICAgICBhcHBsZXQgaW4gdGhlIGdub21lLWFwcGxldHMgcGFja2FnZSBoYXMgaXRzIG93biBtYW51YWwoc3RvcmVkCisgICAgICAgIHdpdGggdGhlIGFwcGxldCBpbiBDVlMpLCBidXQgdGhleSBhcmUgbWVyZ2VkIHRvZ2V0aGVyIG1hbnVhbGx5CisgICAgICAgIHRvIGNyZWF0ZSB0aGUgPGNpdGV0aXRsZT5HTk9NRSBBcHBsZXRzPC9jaXRldGl0bGU+IGJvb2sgYmVmb3JlCisgICAgICAgIGRpc3RyaWJ1dGlvbi4gIFRlbHNhIAorICAgICAgICA8ZW1haWw+aG9iYml0QGFsb3NzLnVrdXUub3JnLnVrPC9lbWFpbD4gaXMgdGhlIG1haW50YWluZXIgb2YKKyAgICAgICAgdGhpcyBkb2N1bWVudC4gIEFwcGxldCBkb2N1bWVudGF0aW9uIHNob3VsZCBiZSBzZW50IHRvIFRlbHNhCisgICAgICAgIChvciBwbGFjZWQgaW4gQ1ZTKSB3aG8gd2lsbCBtYWtlIHN1cmUgdGhleSBhcmUgY29ycmVjdGx5CisgICAgICAgIHBhY2thZ2VkIHdpdGggdGhlIGFwcGxldHMuICBUaGUgYXBwbGV0IGF1dGhvciBzaG91bGQgYmUKKyAgICAgICAgY29udGFjdGVkIHRvIG1vZGlmeSB0aGUgbWVudSBpdGVtcyBhbmQgaGVscCBidXR0b25zIHRvIGJpbmQgdG8KKyAgICAgICAgdGhlIGFwcGxldCBkb2N1bWVudGF0aW9uIGlmIG5lY2Vzc2FyeS4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBJbWFnZXMgd2hpY2ggYXJlIHBhcnQgb2YgdGhlIGFwcGxldCBkb2N1bWVudGF0aW9uIHNob3VsZCBiZSBpbgorICAgICAgICBQTkcgZm9ybWF0IGFuZCBzaG91bGQgcmVzaWRlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgU0dNTAorICAgICAgICBkb2N1bWVudCBmaWxlIGluIENWUyhnbm9tZS1hcHBsZXRzL0FQUExFVE5BTUUvaGVscC9DKS4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBBcHBsZXRzIHdoaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgZ25vbWUtYXBwbGV0cyBwYWNrYWdlIG11c3QKKyAgICAgICAgcGFja2FnZSB0aGVpciBkb2N1bWVudGF0aW9uIHdpdGggdGhlIHBhcnRpY3VsYXIgYXBwbGV0CisgICAgICAgIHBhY2thZ2UuIFRoZXkgc2hvdWxkIHVzZSB0aGUgc2FtZSBhcHBsZXQgdGVtcGxhdGUgYXMgb3RoZXIKKyAgICAgICAgYXBwbGV0cy4gIEhvd2V2ZXIsIHRoZSA8c2dtbHRhZz4mbHQ7eHJlZj48L3NnbWx0YWc+IGxpbmtzIHRvCisgICAgICAgIHRoZSBpbnRyb2R1Y3RvcnkgY2hhcHRlciBvZiB0aGUgPGNpdGV0aXRsZT5HTk9NRQorICAgICAgICBBcHBsZXRzPC9jaXRldGl0bGU+ICBib29rIG11c3QgYmUgcmVtb3ZlZCAoYXMgdGhlIDEueAorICAgICAgICA8YXBwbGljYXRpb24+R05PTUUgSGVscCBCcm93c2VyPC9hcHBsaWNhdGlvbj4gZG9lcyBub3QgYWxsb3cKKyAgICAgICAgeW91IHRvIGNyZWF0ZSBsaW5rcyBiZXR3ZWVuIHNlcGFyYXRlIGRvY3VtZW50cykgYW5kIHJlcGxhY2VkCisgICAgICAgIHdpdGggc3VpdGFibGUgdGV4dC4gIE5vdGUgdGhhdCBzaW5jZSB0aGlzIGRvY3VtZW50IGlzIG5vdCBwYXJ0CisgICAgICAgIG9mIHRoZSA8Y2l0ZXRpdGxlPkdOT01FIEFwcGxldHM8L2NpdGV0aXRsZT4gYm9vaywgeW91IG11c3QKKyAgICAgICAgcmVtZW1iZXIgdG8gYWRkIDxzZ21sdGFnPiZsdDtsZWdhbG5vdGljZT48L3NnbWx0YWc+IGFuZAorICAgICAgICA8c2dtbHRhZz4mbHQ7Y29weXJpZ2h0Pjwvc2dtbHRhZz4gc2VjdGlvbnMuCisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0Mj4KKworICAgIDxzZWN0MiBpZD0iYXBwbGV0bWVudSI+CisgICAgICA8dGl0bGU+QWRkaW5nIERvY3VtZW50YXRpb24gdG8gYW4gQXBwbGV0IE1lbnU8L3RpdGxlPgorICAgICAgPG5vdGU+CisgICAgICAgIDx0aXRsZT5EZXZlbG9wZXIgSW5mb3JtYXRpb248L3RpdGxlPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGlzIHNlY3Rpb24gaXMgZm9yIGRldmVsb3BlcnMuICBEb2N1bWVudGF0aW9uIGF1dGhvcnMKKyAgICAgICAgICBnZW5lcmFsbHkgZG8gbm90IG5lZWQgdG8ga25vdyB0aGlzIG1hdGVyaWFsLgorICAgICAgICA8L3BhcmE+CisgICAgICA8L25vdGU+IAorICAgICAgPHBhcmE+CisgICAgICAgIEFwcGxldHMgc2hvdWxkIGhhdmUgPGd1aW1lbnU+QWJvdXQ8L2d1aW1lbnU+IGFuZAorICAgICAgICA8Z3VpbWVudT5NYW51YWw8L2d1aW1lbnU+IG1lbnUgaXRlbXMsIHR5cGljYWxseSBhcyB0aGUgZmlyc3QKKyAgICAgICAgYW5kIHNlY29uZCB0b3AtbW9zdCBpdGVtcyBpbiB0aGUgbWVudSByZXNwZWN0aXZlbHkuICBUaGlzCisgICAgICAgIHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0aGUgZGV2ZWxvcGVyIGNyZWF0ZXMgdGhlc2UgbWVudSBpdGVtcworICAgICAgICBhbmQgbGlua3MgdGhlbSB0byB0aGUgZG9jdW1lbnRhdGlvbi4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUbyBhZGQgYW4gYXBwbGV0J3MgbWFudWFsIHRvIGl0cyBhcHBsZXQgbWVudSwgdXNlOgorPHByb2dyYW1saXN0aW5nPgorLyogYWRkIGFuIGl0ZW0gdG8gdGhlIGFwcGxldCBtZW51ICovCithcHBsZXRfd2lkZ2V0X3JlZ2lzdGVyX2NhbGxiYWNrKEFQUExFVF9XSURHRVQoYXBwbGV0KSwgIm1hbnVhbCIsCitfKCJNYW51YWwiKSwgJmFtcDtvcGVuX21hbnVhbCwgTlVMTCk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICBIZXJlIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYW4gYXJiaXRyYXJ5IG5hbWUgZm9yIHRoZQorICAgICAgICBjYWxsYmFjaywgdGhlIHRoaXJkIGFyZ3VtZW50IGlzIHRoZSBsYWJlbCB3aGljaCB3aWxsIGFwcGVhcgorICAgICAgICB3aGVuIHRoZSB1c2VyIHJpZ2h0IGNsaWNrcyBvbiB0aGUgYXBwbGV0LCBhbmQgdGhlIGZvdXJ0aAorICAgICAgICBhcmd1bWVudCBpcyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgWW91IHdpbGwgbmVlZCB0byB3cml0ZSBhIHNpbXBsZSBjYWxsYmFjayBmdW5jdGlvbiB0byBvcGVuIHRoZQorICAgICAgICBoZWxwIGJyb3dzZXIgdG8gdGhlIGFwcHJvcHJpYXRlIGRvY3VtZW50LiAgVGhpcyBpcyBkb25lIHVzaW5nCisgICAgICAgIHRoZSA8ZnVuY3Rpb24+Z25vbWVfaGVscF9maWxlX2ZpbmRfZmlsZTwvZnVuY3Rpb24+IGZ1bmN0aW9uLAorICAgICAgICBhcyBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iYXBwbGljYXRpb25oZWxwYnV0dG9ucyIgLz4uCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgWW91IHdpbGwgYWxzbyB3YW50IHRvIGFkZCBhbiA8Z3VpbWVudT5BYm91dDwvZ3VpbWVudT4gbWVudQorICAgICAgICBpdGVtIHRvIHRoZSBhcHBsZXQncyBtZW51LiAgVGhpcyBpcyBhCisgICAgICAgIHN0b2NrIG1lbnUgaXRlbSBhbmQgaXMgZG9uZToKKzxwcm9ncmFtbGlzdGluZz4KK2FwcGxldF93aWRnZXRfcmVnaXN0ZXJfc3RvY2tfY2FsbGJhY2sgKEFQUExFVF9XSURHRVQoYXBwbGV0KSwgImFib3V0IiwKKyAgICAgICBHTk9NRV9TVE9DS19NRU5VX0FCT1VULCBfKCJBYm91dCIpLCAmYW1wO215X2FwcGxldF9jYl9hYm91dCwKKyAgICAgICBOVUxMKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQgPHVsaW5rIHR5cGU9Imh0dHAiCisgICAgICAgIHVybD0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcvZG9jL3R1dG9yaWFscy9hcHBsZXQvaW5kZXguaHRtbCI+V3JpdGluZworICAgICAgICBHTk9NRSBwYW5lbCBhcHBsZXRzIHVzaW5nIHRoZSBHVEsrL0dUSy0tIHdpZGdldCBzZXQ8L3VsaW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorIDwvc2VjdDE+CisKKworPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyBXcml0aW5nIENvbnRleHQgU2Vuc2l0aXZlIEhlbHAgIyMjIyMjIyMjIyMjIyMjCistLT4KKworICA8c2VjdDEgaWQ9IndyaXRpbmdjb250ZXh0c2Vuc2l0aXZlaGVscCI+CisgICAgPHRpdGxlPldyaXRpbmcgQ29udGV4dCBTZW5zaXRpdmUgSGVscCAoY29taW5nIGluIEdOT01FLTIuMCk8L3RpdGxlPgorICAgIDxwYXJhPgorICAgICAgQ29udGV4dCBzZW5zaXRpdmUgaGVscCwgYWxzbyBrbm93biBhcyAicG9wLXVwIiBoZWxwLCB3aWxsIGFsbG93CisgICAgICBhIHVzZXIgdG8gb2J0YWluIGhlbHAgaW5mb3JtYXRpb24gYWJvdXQgc3BlY2lmaWMgYnV0dG9ucyBvcgorICAgICAgcGFydHMgb2YgYW4gYXBwbGljYXRpb24uCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICAgQ29udGV4dCBzZW5zaXRpdmUgaGVscCBpcyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCBhbmQgbm90IGFsbAorICAgICAgdGhlIGRldGFpbHMgYXJlIGF2YWlsYWJsZSBhdCB0aGlzIHRpbWUuIEhvd2V2ZXIsIHRoZSBiYXNpY3MgY2FuCisgICAgICBiZSBzaG93biBoZXJlIHNvIHRoYXQgeW91IGNhbiB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtIHdpbGwKKyAgICAgIHdvcmsuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICAgVGhlIENvbnRleHQgU2Vuc2l0aXZlIEhlbHAgc3lzdGVtIGlzIGRlc2lnbmVkIHRvIGFsbG93IHRoZQorICAgICAgZGV2ZWxvcGVyIHRvIGdpdmUgYW4gaWQgdG8gYSBwYXJ0aWN1bGFyIHBvcnRpb24gb2YgdGhlIFVzZXIKKyAgICAgIEludGVyZmFjZSwgZm9yIGV4YW1wbGUsIGEgYnV0dG9uLiBPbmNlIHRoZSBpbnRlcmZhY2UgaXMgY29tcGxldGUKKyAgICAgIGEgUGVybCBzY3JpcHQgY2FuIHRoZW4gYmUgcnVuIGFnYWluc3QgdGhlIGludGVyZmFjZSBjb2RlIHRvCisgICAgICBjcmVhdGUgYSAibWFwIiBmaWxlLiBUaGlzIG1hcCBmaWxlIGFsbG93cyB0aGUgZGV2ZWxvcGVyIG9yCisgICAgICB3cml0ZXIgdG8gYXNzb2NpYXRlIHBhcnRpY3VsYXIgcGFyYWdyYXBoIHNlY3Rpb25zIGZyb20gYW4gWE1MCisgICAgICBkb2N1bWVudCB0byB0aGUgaW50ZXJmYWNlIGl0ZW1zLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgIFRoZSBYTUwgdXNlZCBmb3IgdGhlIGRvY3VtZW50IGlzIGEgc21hbGwgWE1MIERURCB0aGF0IGlzIGJlaW5nCisgICAgICBkZXZlbG9wZWQgdG8gdXNlIHRoZSBzYW1lIHRhZ3MgKGFsYmVpdCwgbXVjaCBmZXdlcikgYXMgRG9jQm9vaworICAgICAgc28gdGhhdCB3cml0ZXJzIGRvIG5vdCBoYXZlIHRvIHJlLWxlYXJuIGEgbmV3IERURC4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgICBPbmNlIHRoZSBkb2N1bWVudCBpcyB3cml0dGVuIGFuZCBtYXAgZmlsZSBpcyBjb21wbGV0ZSwgd2hlbiB0aGUKKyAgICAgIHVzZXIgbGF1bmNoZXMgY29udGV4dCBzZW5zaXRpdmUgaGVscCBvbiB0aGUgaW50ZXJmYWNlIChlaXRoZXIgYnkKKyAgICAgIHByZXNzaW5nIGEgYnV0dG9uIGFuZCB0aGVuIGNsaWNraW5nIG9uIHRoZSBpbnRlcmZhY2UgaXRlbSB0aGV5CisgICAgICB3YW50IGluZm9ybWF0aW9uIG9uLCBvciBieSByaWdodCBtb3VzZSBjbGlja2luZyBvbiB0aGUgaW50ZXJmYWNlCisgICAgICBpdGVtIGFuZCBzZWxlY3RpbmcgYSBwb3AtdXAgbWVudSBpdGVtIGxpa2UgIldoYXQncyBUaGlzIikgYQorICAgICAgc21hbGwgdHJhbnNpZW50IHdpbmRvdyB3aWxsIGFwcGVhciB3aXRoIGJyaWVmIGJ1dCBkZXRhaWxlZAorICAgICAgaW5mb3JtYXRpb24gb24gdGhlIGludGVyZmFjZSBpdGVtLgorICAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKworPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyBSZWZlcnJpbmcgdG8gT3RoZXIgR05PTUUgRG9jdW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyAtLT4KKworICA8c2VjdDEgaWQ9InJlZmVycmluZyI+CisgICAgPHRpdGxlPlJlZmVycmluZyB0byBPdGhlciBHTk9NRSBEb2N1bWVudGF0aW9uIChjb21pbmcgaW4KKyAgICBHTk9NRS0yLjApPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgIEluIHRoZSBHTk9NRSAyLjAgSGVscCBTeXN0ZW0sIHlvdSB3aWxsIGJlIGFibGUgdG8gY3JlYXRlIGxpbmtzCisgICAgICBmcm9tIG9uZSBkb2N1bWVudCB0byBhbm90aGVyLiAgVGhlIGV4YWN0IG1lY2hhbmlzbSBmb3IgZG9pbmcKKyAgICAgIHRoaXMgaXMgaW4gZGV2ZWxvcG1lbnQuCisgICAgPC9wYXJhPgorICA8L3NlY3QxPgorICAKKyAgCis8IS0tICMjIyMjIyMjIyMjIyMjIyMjIEJhc2ljcyBvZiBEb2N1bWVudGF0aW9uIFN0eWxlICMjIyMjIyMjIyMjIyMjIyAtLT4KKworICA8c2VjdDEgaWQ9ImJhc2ljcyI+CisgICAgPHRpdGxlPkJhc2ljcyBvZiBEb2N1bWVudGF0aW9uIFN0eWxlPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgICBNb3N0IHBlb3BsZSBoYXZlIG5ldmVyIGVuam95ZWQgcmVhZGluZyBhIHNvZnR3YXJlIG1hbnVhbCwgYW5kCisgICAgICAgdGhleSBwcm9iYWJseSBuZXZlciB3aWxsLiAgTWFueSB0aW1lcywgdGhleSdsbCByZWFkIHRoZQorICAgICAgIGRvY3VtZW50YXRpb24gb25seSB3aGVuIHRoZXkgcnVuIGludG8gcHJvYmxlbXMsIGFuZCB0aGV5J2xsIGJlCisgICAgICAgZnJ1c3RyYXRlZCBhbmQgdXBzZXQgYmVmb3JlIHRoZXkgZXZlbiByZWFkIGEgd29yZC4gIE9uIHRoZQorICAgICAgIG90aGVyIGhhbmQsIHNvbWUgcmVhZGVycyB3aWxsIHJlYWQgdGhlIG1hbnVhbCBhbGwgdGhlIHdheQorICAgICAgIHRocm91Z2gsIG9yIGF0IGxlYXN0IGxvb2sgYXQgdGhlIGludHJvZHVjdGlvbiBiZWZvcmUgdGhleQorICAgICAgIHN0YXJ0LiBZb3VyIGRvY3VtZW50IG1pZ2h0IHNlcnZlIGFzIGEgcmVmZXJlbmNlIGZvciBhbiBleHBlcnQKKyAgICAgICBvciBhIGd1aWRlIHRvIGEgYmVnaW5uZXIsIGFuZCBpdCBtdXN0IGhhdmUgZW5vdWdoIGRlcHRoIHRvCisgICAgICAgc2F0aXNmeSB0aGUgZmlyc3Qgd2l0aG91dCBvdmVyd2hlbG1pbmcgdGhlIHNlY29uZC4gIElkZWFsbHksIGl0CisgICAgICAgd2lsbCBzZXJ2ZSBiZWdpbm5lcnMgYXMgdGhleSA8ZW1waGFzaXM+YmVjb21lPC9lbXBoYXNpcz4KKyAgICAgICBleHBlcnRzLiBSZW1lbWJlciwgeW91ciBnb2FsIGlzIHRvIHByb2R1Y2UgPGVtcGhhc2lzPmNvbXBsZXRlLAorICAgICAgIGludHVpdGl2ZSBhbmQgY2xlYXI8L2VtcGhhc2lzPiBkb2N1bWVudGF0aW9uLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgICBJbiBvcmRlciB0byB3cml0ZSB1c2VmdWwgZG9jdW1lbnRhdGlvbiwgeW91J2xsIGhhdmUgdG8ga25vdyB3aG8KKyAgICAgICB5b3VyIGF1ZGllbmNlIGlzIGxpa2VseSB0byBiZS4gIFRoZW4sIHlvdSBjYW4gbG9vayBmb3IgdGhlCisgICAgICAgcHJvYmxlbXMgdGhleSdyZSBsaWtlbHkgdG8gcnVuIGludG8sIGFuZCBzb2x2ZSB0aGVtLiAgSXQgd2lsbAorICAgICAgIGFsc28gaGVscCBpZiB5b3UgZm9jdXMgb24gdGhlIHRhc2tzIHVzZXJzIHdpbGwgcGVyZm9ybSwgYW5kCisgICAgICAgZ3JvdXAgZmVhdHVyZXMgYWNjb3JkaW5nbHksIHJhdGhlciB0aGFuIHNpbXBseSBkZXNjcmliaW5nCisgICAgICAgZmVhdHVyZXMgYXQgcmFuZG9tLiAgCisgICAgPC9wYXJhPgorCis8IS0tICAqKioqKioqKioqKiBCYXNpY3Mgb2YgRG9jdW1lbnRhdGlvbiBTdHlsZTogcGxhbm5pbmcgLS0+CisKKyAgICA8c2VjdDIgaWQ9InN0eWxlcGxhbm5pbmciPgorICAgICAgPHRpdGxlPlBsYW5uaW5nPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICAgQmVnaW4gZG9jdW1lbnRpbmcgYnkgbGVhcm5pbmcgaG93IHRvIHVzZSB0aGUgYXBwbGljYXRpb24gYW5kCisgICAgICAgICByZWFkaW5nIG92ZXIgYW55IGV4aXN0aW5nIGRvY3VtZW50YXRpb24uICBQYXkgYXR0ZW50aW9uIHRvCisgICAgICAgICBwbGFjZXMgd2hlcmUgeW91ciBkb2N1bWVudCB3aWxsIGRpZmZlciBmcm9tIHRoZSB0ZW1wbGF0ZS4gIEl0CisgICAgICAgICBtYXkgaGVscCB0byBkZXZlbG9wIGEgZG9jdW1lbnQgc2tlbGV0b246IGEgdmFsaWQgWE1MIG9yIFNHTUwKKyAgICAgICAgIGRvY3VtZW50IHRoYXQgaGFzIGxpdHRsZSBvciBubyBjb250ZW50LiAgRm9yIHZlcnkgbGFyZ2UKKyAgICAgICAgIGFwcGxpY2F0aW9ucywgeW91IHdpbGwgbmVlZCB0byBtYWtlIHNpZ25pZmljYW50IGRlcGFydHVyZXMKKyAgICAgICAgIGZyb20gdGhlIHRlbXBsYXRlcywgc2luY2UgeW91J2xsIGJlIHVzaW5nIHRoZQorICAgICAgICAgPHNnbWx0YWc+Jmx0O2Jvb2s+PC9zZ21sdGFnPiB0YWcgaW5zdGVhZCBvZgorICAgICAgICAgPHNnbWx0YWc+Jmx0O2NoYXB0ZXI+PC9zZ21sdGFnPiBvcgorICAgICAgICAgPHNnbWx0YWc+Jmx0O2FydGljbGU+PC9zZ21sdGFnPi4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorCisKKzwhLS0gIyMjIyMjIyBCYXNpY3Mgb2YgRG9jdW1lbnRhdGlvbiBTdHlsZSB8IEJhbGFuY2UgIyMjIyMjIyAtLT4KKyAgICA8c2VjdDIgaWQ9ImJhbGFuY2UiPgorICAgICAgPHRpdGxlPkFjaGlldmluZyBhIEJhbGFuY2VkIFN0eWxlPC90aXRsZT4KKworICAgICAgPHBhcmE+IAorICAgICAgICAgSnVzdCBhcyB5b3UgbmVlZCB0byBqdWdnbGUgZXhwZXJ0IGFuZCBub3ZpY2UgcmVhZGVycywKKyAgICAgICAgIHlvdSdsbCBoYXZlIHRvIGp1Z2dsZSBhIG51bWJlciBvZiBvdGhlciBleHRyZW1lcyBhcyB5b3Ugd3JpdGU6CisgICAgICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgICAgIDxsaXN0aXRlbT4KKwkgICAgPHBhcmE+CisgICAgICAgICAgICAgIERvY3VtZW50cyBzaG91bGQgYmUgY29tcGxldGUsIHlldCBjb25jaXNlLiAgWW91IHNob3VsZAorICAgICAgICAgICAgICBkZXNjcmliZSBldmVyeSBmZWF0dXJlLCBidXQgeW91J2xsIGhhdmUgZGVjaWRlIGhvdyBtdWNoCisgICAgICAgICAgICAgIGRldGFpbCBpcyByZWFsbHkgbmVjZXNzYXJ5LiAgSXQncyBub3QsIGZvciBleGFtcGxlLAorICAgICAgICAgICAgICBuZWNlc3NhcnkgdG8gZGVzY3JpYmUgZXZlcnkgYnV0dG9uIGFuZCBmb3JtIGZpZWxkIGluIGEKKyAgICAgICAgICAgICAgZGlhbG9nIGJveCwgYnV0IHlvdSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgeW91ciByZWFkZXJzCisgICAgICAgICAgICAgIGtub3cgaG93IHRvIGJyaW5nIHVwIHRoZSBkaWFsb2cgYW5kIHdoYXQgaXQgZG9lcy4gIElmCisgICAgICAgICAgICAgIHlvdSBzcGVuZCBmZXdlciB3b3JkcyBvbiB0aGUgb2J2aW91cywgeW91IGNhbiBzcGVuZCBtb3JlCisgICAgICAgICAgICAgIHRpbWUgY2xhcmlmeWluZyB0aGUgYW1iaWd1b3VzIGxhYmVscyBhbmQgZXhwbGFpbmluZworICAgICAgICAgICAgICBpdGVtcyB0aGF0IGFyZSBtb3JlIGNvbXBsZXguCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKwkgIDxsaXN0aXRlbT4KKwkgICAgPHBhcmE+CisgICAgICAgICAgICAgIEJlIGVuZ2FnaW5nIGFuZCBmcmllbmRseSwgeWV0IHByb2Zlc3Npb25hbC4gR2FtZXMKKyAgICAgICAgICAgICAgZG9jdW1lbnRzIG1heSBiZSBsZXNzIGZvcm1hbCB0aGFuIHByb2R1Y3Rpdml0eQorICAgICAgICAgICAgICBhcHBsaWNhdGlvbiBkb2N1bWVudHMgKHBlb3BsZSBkb24ndAorICAgICAgICAgICAgICA8ZW1waGFzaXM+dXNlPC9lbXBoYXNpcz4gZ2FtZXMsIHRoZXkKKyAgICAgICAgICAgICAgPGVtcGhhc2lzPnBsYXk8L2VtcGhhc2lzPiB0aGVtKSwgYnV0IGFsbCBvZiB0aGVtIHNob3VsZAorICAgICAgICAgICAgICBtYWludGFpbiBhIHN0YW5kYXJkIG9mIHN0eWxlIHdoaWNoIGhvbGRzIHRoZSByZWFkZXIncworICAgICAgICAgICAgICBpbnRlcmVzdCB3aXRob3V0IHJlc29ydGluZyB0byBqb2tlcyBhbmQgdW50cmFuc2xhdGFibGUKKyAgICAgICAgICAgICAgYWxsdXNpb25zIG9yIHB1bnMuCisgICAgICAgICAgIDwvcGFyYT4KKwkgIDwvbGlzdGl0ZW0+CisJICAKKyAgIAkgIDxsaXN0aXRlbT4KKwkgICAgPHBhcmE+CisgICAgICAgICAgICAgIEV4YW1wbGVzLCB0aXBzLCBub3RlcywgYW5kIHNjcmVlbnNob3RzIGFyZSB1c2VmdWwgdG8KKyAgICAgICAgICAgICAgYnJlYWsgdXAgbG9uZyBzdHJldGNoZXMgb2YgdGV4dCwgYnV0IHRvbyBtYW55IGNhbiBnZXQgaW4KKyAgICAgICAgICAgICAgdGhlIHdheSwgYW5kIG1ha2UgeW91ciBkb2N1bWVudHMgdG9vIGNob3BweSB0byByZWFkLgorICAgICAgICAgICAgICBJdCdzIGdvb2QgdG8gcHJvdmlkZSBhIHNjcmVlbnNob3Qgb2YgYW55IGRpYWxvZyB3aW5kb3dzCisgICAgICAgICAgICAgIGEgdXNlciBtaWdodCBydW4gaW50bywgYnV0IGlmIGEgZGlhbG9nIGJveCBoYXMgc2V2ZXJhbAorICAgICAgICAgICAgICB0YWJzLCBpdCdzIG5vdCB1c3VhbGx5IG5lY2Vzc2FyeSB0byBoYXZlIG9uZSBmb3IgZWFjaC4KKyAgICAgICAgICAgPC9wYXJhPgorCSAgPC9saXN0aXRlbT4KKworICAgCSAgPGxpc3RpdGVtPgorCSAgICA8cGFyYT4KKyAgICAgICAgICAgICAgVGhlIEdEUCBzdHJpdmVzIHRvIGhhdmUgYWxsIG9mIGl0cyBkb2N1bWVudGF0aW9uIGNvbmZvcm0KKyAgICAgICAgICAgICAgdG8gY2VydGFpbiBzdGFuZGFyZHMgb2Ygc3R5bGUgYW5kIGNvbnRlbnQsIGJ1dCBldmVyeQorICAgICAgICAgICAgICBkb2N1bWVudCAoYW5kIGV2ZXJ5IHdyaXRlcikgaXMgZGlmZmVyZW50LiAgWW91IHdpbGwgbmVlZAorICAgICAgICAgICAgICB0byB1c2UgeW91ciBqdWRnZW1lbnQsIGFuZCB3cml0ZSBkb2N1bWVudHMgdG8gZml0IHdpdGgKKyAgICAgICAgICAgICAgdGhlIHJlc3Qgb2YgdGhlIHByb2plY3QsIHdpdGhvdXQgY29tcHJvbWlzaW5nIHRoZQorICAgICAgICAgICAgICBpbmRpdmlkdWFsIG5lZWRzIG9mIHlvdXIgc3ViamVjdCwgb3IgeW91ciBvd24KKyAgICAgICAgICAgICAgaW5kaXZpZHVhbGl0eSBhcyBhIHdyaXRlci4KKyAgICAgICAgICAgPC9wYXJhPgorCSAgPC9saXN0aXRlbT4KKworCTwvaXRlbWl6ZWRsaXN0PgorICAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorCisKKzwhLS0gIyMjIyMjIyBCYXNpY3Mgb2YgRG9jdW1lbnRhdGlvbiBTdHlsZSB8IFN0cnVjdHVyZSAjIyMjIyMjIC0tPgorCisgICAgPHNlY3QyIGlkPSJzdHlsZXN0cnVjdHVyZSI+CisgICAgICA8dGl0bGU+U3RydWN0dXJlPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICAgSW4gZ2VuZXJhbCwgeW91IHdvbid0IGhhdmUgdG8gd29ycnkgdG9vIG11Y2ggYWJvdXQgc3RydWN0dXJlLAorICAgICAgICAgYmVjYXVzZSB0aGUgdGVtcGxhdGVzIHByb3ZpZGUgeW91IHdpdGggYW4gZXhjZWxsZW50IGV4YW1wbGUuCisgICAgICAgICBBcyBhIGdlbmVyYWwgcnVsZSwgdHJ5IHRvIGZvbGxvdyB0aGF0IHN0cnVjdHVyYWwgZXhhbXBsZS4KKyAgICAgICAgIFRoYXQgbWVhbnMgdXNpbmcgbGlua3MsIGhpZXJhcmNoaWNhbCBuZXN0aW5nLCBhbmQsIGlmCisgICAgICAgICBuZWNlc3NhcnksIGEgZ2xvc3Nhcnkgb3IgaW5kZXguICBZb3UgcHJvYmFibHkgd29uJ3QgbmVlZCB0bworICAgICAgICAgdXNlIGV2ZXJ5IGF2YWlsYWJsZSBzdHJ1Y3R1cmFsIHRhZywgYnV0IHRha2UgYWR2YW50YWdlIG9mCisgICAgICAgICB3aGF0IERvY0Jvb2sgcHJvdmlkZXMgeW91LgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgICBBcyB0byBsaW5raW5nLCB0aGVyZSdzIHNvbWUgZGlzYWdyZWVtZW50IGFib3V0IHdoZXRoZXIgdG8gdXNlCisgICAgICAgICA8c2dtbHRhZz4mbHQ7eHJlZj48L3NnbWx0YWc+IDxzZ21sdGFnPiZsdDtsaW5rPjwvc2dtbHRhZz4KKyAgICAgICAgIHdoZW4geW91IG1ha2UgbGlua3Mgd2l0aGluIHlvdXIgZG9jdW1lbnRzLiAgWW91J2xsIGhhdmUgdG8KKyAgICAgICAgIGRlY2lkZSwgYmFzZWQgb24gdGhlIGRpZmZlcmVudCB3YXlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkCisgICAgICAgICBpbiBvdXRwdXQsIHdoaWNoIGlzIG1vcmUgYXBwcm9wcmlhdGUgZ2l2ZW4gdGhlIGNvbnRleHQuCisgICAgICAgICBSZWdhcmRsZXNzIG9mIHdoaWNoIHlvdSB1c2UsIHlvdSBzaG91bGQgbm90IGZvcmdldCB0byB1c2UKKyAgICAgICAgIHRoZW0uICBIZWxwIHlvdXIgcmVhZGVycyBmaW5kIGluZm9ybWF0aW9uIHRoYXQgcmVsZXZhbnQgdG8KKyAgICAgICAgIHRoZSBpc3N1ZSBhdCBoYW5kLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgdGFibGUgb2YgY29udGVudHMgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSwgYnV0CisgICAgICAgICB5b3Ugd2lsbCBwcm9iYWJseSBoYXZlIHRvIGRldmVsb3AgeW91ciBvd24gaW5kZXggaWYgeW91IHdpc2gKKyAgICAgICAgIHRvIGhhdmUgb25lLiAgVGhlIE5hdXRpbHVzIEhlbHAgQnJvd3NlciB3aWxsIGhhdmUgbmV3LCBhbmQKKyAgICAgICAgIGN1cnJlbnRseSB1bmtub3duLCBpbmRleGluZyBjYXBhYmlsaXRpZXMsIHNvIGluZGV4IHN0eWxlIGFuZAorICAgICAgICAgc3RydWN0dXJlIGFyZSBzdGlsbCB1bmRlciBkaXNjdXNzaW9uLiAgVGhlIEdOT01FIFVzZXIncyBHdWlkZQorICAgICAgICAgd2lsbCBjb250YWluIGEgZ2xvc3NhcnkgaW4gaXRzIG5leHQgdmVyc2lvbnM7IHVubGVzcyB5b3UncmUKKyAgICAgICAgIHdyaXRpbmcgYTxzZ21sdGFnPiZsdDtib29rPjwvc2dtbHRhZz4sIGl0IHdpbGwgcHJvYmFibHkgYmUgYmVzdCB0bworICAgICAgICAgY29udHJpYnV0ZSB0byB0aGF0IHJhdGhlciB0aGFuIGRldmVsb3BpbmcgeW91ciBvd24uCisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0Mj4KKzwhLS0gIyMjIyMjIyBCYXNpY3Mgb2YgRG9jdW1lbnRhdGlvbiBTdHlsZSB8IEdyYW1tYXIgJiBTcGVsbGluZyAjIyMjIyMjIC0tPgorCisgICAgPHNlY3QyIGlkPSJzdHlsZWdyYW1tYXIiPgorICAgICAgPHRpdGxlPkdyYW1tYXIgYW5kIFNwZWxsaW5nPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOb2JvZHkgZXhwZWN0cyB5b3UgdG8gYmUgcGVyZmVjdDsgdGhleSBqdXN0IGV4cGVjdCB0aGUKKyAgICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlaXIgc29mdHdhcmUgdG8gYmUgZXJyb3ItZnJlZS4gIFRoYXQgbWVhbnMKKyAgICAgICAgdGhhdCwgaW4gdGhlIHNhbWUgd2F5IHRoYXQgZGV2ZWxvcGVycyBsb29rIGZvciBidWdzIGFuZCBhY2NlcHQKKyAgICAgICAgYnVnIHJlcG9ydHMsIHdyaXRlcnMgbXVzdCBjaGVjayBmb3IgZXJyb3JzIGluIHRoZWlyIGRvY3VtZW50cy4KKyAgICAgICAgUG9vciBncmFtbWFyLCBiYWQgc3BlbGxpbmcsIGFuZCBncm9zcyB0ZWNobmljYWwgZXJyb3JzIGluCisgICAgICAgIGRyYWZ0IGRvY3VtZW50cyBhcmUgZmluZS4gIEhvd2V2ZXIsIGlmIHRob3NlIHByb2JsZW1zIHNob3cgdXAKKyAgICAgICAgaW4gYSAicmVhbCIgcmVsZWFzZSwgdGhleSBjYW4gY291bnQgYWdhaW5zdCB0aGUgY3JlZGliaWxpdHkgb2YKKyAgICAgICAgR05PTUUgYW5kIExpbnV4LiAgVGhleSdsbCBhbHNvIG1ha2UgeW91IGxvb2sgYmFkLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRoZXJlIGlzIG5vIHN1YnN0aXR1dGUgZm9yIGEgaHVtYW4gcHJvb2ZyZWFkZXI7IHVzZSBhCisgICAgICAgIHNwZWxsLWNoZWNrIHByb2dyYW0sIHRoZW4gcmVhZCBpdCBvdmVyIHlvdXJzZWxmLCBhbmQgdGhlbiBmaW5kCisgICAgICAgIHNvbWVvbmUgZWxzZSB0byBoZWxwIHlvdS4gIE90aGVyIEdEUCBtZW1iZXJzIGFyZSwgb2YgY291cnNlLAorICAgICAgICB3aWxsaW5nIGFuZCBhYmxlIHRvIGhlbHAgeW91LCBidXQgbm9uLXdyaXRlcnMgYXJlIG9mdGVuIGF0CisgICAgICAgIGxlYXN0IGFzIGhlbHBmdWwuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgUHJvb2ZyZWFkaW5nIGRvY3VtZW50cyBpcyBib3RoIGEgYWxzbyBhIGdvb2Qgd2F5IHRvCisgICAgICAgIGZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggZG9jdW1lbnRhdGlvbiwgYW5kIGl0IGNlcnRhaW5seQorICAgICAgICBtYWtlcyB5b3UgdmFsdWFibGUgdG8gdGhlIEdEUC4gSGVscCBvdGhlciB3cml0ZXJzIHByb29mIHRoZWlyCisgICAgICAgIGRvY3VtZW50cywgYW5kIHRoZXkgd2lsbCBoZWxwIHlvdSB3aXRoIHlvdXJzLgorICAgICAgPC9wYXJhPgorICAgIDwvc2VjdDI+CisgIDwvc2VjdDE+CisgIAorPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyBUZWFtd29yayAjIyMjIyMjIyMjIyMjIyMgLS0+CisKKyAgPHNlY3QxIGlkPSJ0ZWFtd29yayI+CisgICAgPHRpdGxlPlRlYW13b3JrPC90aXRsZT4gIDwhLS0gIyMjIyMjIyBUZWFtd29yayB8IFdvcmtpbmcgV2l0aCBUaGUKK0dEUCBUZWFtICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9InRlYW13b3JrZ2RwIj4KKyAgICAgIDx0aXRsZT5Xb3JraW5nIFdpdGggVGhlIEdEUCBUZWFtPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgR0RQIHRlYW0gaXMgYSB2YWx1YWJsZSByZXNvdXJjZSBmb3IgYW55IGRvY3VtZW50YXRpb24KKyAgICAgICAgYXV0aG9yLiAgR0RQIG1lbWJlcnMgY2FuIGFuc3dlciBtb3N0IHF1ZXN0aW9ucyBkb2N1bWVudGF0aW9uCisgICAgICAgIGF1dGhvcnMgaGF2ZSBkdXJpbmcgdGhlIGNvdXJzZSBvZiB0aGVpciB3b3JrLiBJdCBpcyBhbHNvCisgICAgICAgIGltcG9ydGFudCB0byBtYWtlIHN1cmUgeW91IGFyZSBub3QgZHVwbGljYXRpbmcgd29yayBvZiBvdGhlcgorICAgICAgICBHRFAgbWVtYmVycyBieSB2aXNpdGluZyB0aGUgPGNpdGV0aXRsZT5HRFAgRG9jdW1lbnRhdGlvbgorICAgICAgICBTdGF0dXMgVGFibGU8L2NpdGV0aXRsZT4gKDx1bGluaworICAgICAgICB1cmw9Imh0dHA6Ly93d3cuZ25vbWUub3JnL2dkcC9kb2N0YWJsZS8iCisgICAgICAgIHR5cGU9Imh0dHAiPmh0dHA6Ly93d3cuZ25vbWUub3JnL2dkcC9kb2N0YWJsZS88L3VsaW5rPikgYW5kCisgICAgICAgIGFzc2lnbmluZyBhIGRvY3VtZW50YXRpb24gaXRlbSB0byB5b3Vyc2VsZi4gIFRoaXMgdGFibGUgYWxzbworICAgICAgICBwcm92aWRlcyBhIGZvcnVtIGZvciBtYWtpbmcgc3VnZ2VzdGlvbnMgYW5kIGFubm91bmNlbWVudHMgZm9yCisgICAgICAgIGVhY2ggZG9jdW1lbnRhdGlvbiBpdGVtLiAgVGhlIGJlc3Qgd2F5IHRvIGdldCBpbiB0b3VjaCB3aXRoCisgICAgICAgIEdEUCBtZW1iZXJzIGlzIG9uIHRoZSAjZG9jcyBJUkMgY2hhbm5lbCBhdCBpcmMuZ25vbWUub3JnIG9yCisgICAgICAgIGVsc2UgYnkgZW1haWxpbmcgdGhlIDx1bGluayB0eXBlPSJodHRwIgorICAgICAgICB1cmw9Imh0dHA6Ly9tYWlsLmdub21lLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dub21lLWRvYy1saXN0LyI+CisgICAgICAgIDxjaXRldGl0bGU+Z25vbWUtZG9jLWxpc3QgbWFpbGluZyBsaXN0PC9jaXRldGl0bGU+PC91bGluaz4uCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgQWZ0ZXIgYW4gYXV0aG9yIGhhcyBmaW5pc2hlZCBhIGRvY3VtZW50IChvciBldmVuIGEgZHJhZnQKKyAgICAgICAgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQpLCBpdCBpcyBhIGdvb2QgaWRlYSB0byBhc2sgYSBtZW1iZXIgb2YKKyAgICAgICAgdGhlIEdEUCB0ZWFtIHRvIHJlYWQgdGhlIGRvY3VtZW50LCBjaGVja2luZyBpdCBmb3IgZ3JhbW1hciwKKyAgICAgICAgcHJvcGVyIERvY0Jvb2sgbWFya3VwLCBhbmQgY2xhcml0eS4gIE9uZSBtYXkgdHlwaWNhbGx5IGZpbmQKKyAgICAgICAgYW5vdGhlciBhdXRob3IgdG8gZG8gdGhpcyBieSBlaXRoZXIgYXNraW5nIG9uIHRoZSAjZG9jcyBJUkMKKyAgICAgICAgY2hhbm5lbCBhdCBpcmMuZ25vbWUub3JnIG9yIGJ5IGVtYWlsaW5nIHRoZSA8dWxpbmsgdHlwZT0iaHR0cCIKKyAgICAgICAgdXJsPSJodHRwOi8vbWFpbC5nbm9tZS5vcmcvbWFpbG1hbi9saXN0aW5mby9nbm9tZS1kb2MtbGlzdC8iPgorICAgICAgICA8Y2l0ZXRpdGxlPmdub21lLWRvYy1saXN0IG1haWxpbmcgbGlzdDwvY2l0ZXRpdGxlPjwvdWxpbms+LgorICAgICAgPC9wYXJhPgorICAgIDwvc2VjdDI+CisKKzwhLS0gIyMjIyMjIyBUZWFtd29yayB8IFdvcmtpbmcgV2l0aCBEZXZlbG9wZXJzICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9InRlYW13b3JrZGV2ZWxvcGVycyI+CisgICAgICA8dGl0bGU+V29ya2luZyBXaXRoIERldmVsb3BlcnM8L3RpdGxlPgorICAgICAgPHBhcmE+CisgICAgICAgIFdyaXRpbmcgZG9jdW1lbnRhdGlvbiB0eXBpY2FsbHkgaW52b2x2ZXMgYSBjZXJ0YWluIGFtb3VudCBvZgorICAgICAgICBpbnRlcmFjdGlvbiB3aXRoIHRoZSBkZXZlbG9wZXJzIG9mIEdOT01FIG9yIHRoZSBhcHBsaWNhdGlvbgorICAgICAgICB3aGljaCBpcyBiZWluZyBkb2N1bWVudGVkLiAgT2Z0ZW4gYSBkb2N1bWVudCBhdXRob3Igd2lsbCBuZWVkCisgICAgICAgIHRvIGFzayB0aGUgZGV2ZWxvcGVyIHRlY2huaWNhbCBxdWVzdGlvbnMgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YKKyAgICAgICAgd3JpdGluZyBhIGRvY3VtZW50LiBBZnRlciB0aGUgZG9jdW1lbnQgaXMgZmluaXNoZWQsIGl0IGlzIGdvb2QKKyAgICAgICAgaWRlYSB0byBhc2sgdGhlIGRldmVsb3BlciB0byByZWFkIHRoZSBkb2N1bWVudCB0byBtYWtlIHN1cmUgaXQKKyAgICAgICAgaXMgdGVjaG5pY2FsbHkgY29ycmVjdC4gIFRoZSBkb2N1bWVudGF0aW9uIGF1dGhvciBzaG91bGQgYWxzbworICAgICAgICBtYWtlIHN1cmUgdGhhdCB0aGUgYXBwbGljYXRpb24gYXV0aG9yIGNvcnJlY3RseSBiaW5kcyBhbmQKKyAgICAgICAgcGFja2FnZXMgdGhlIGRvY3VtZW50YXRpb24gd2l0aCB0aGUgYXBwbGljYXRpb24uCisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0Mj4KKworPCEtLSAjIyMjIyMjIFRlYW13b3JrIHwgV29ya2luZyBXaXRoIFVzZXJzICMjIyMjIyMKKworICAgIDxzZWN0MiBpZD0idGVhbXdvcmt1c2VycyI+CisgICAgICA8dGl0bGU+V29ya2luZyBXaXRoIFVzZXJzPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTb21lIGRvY3VtZW50IGF1dGhvcnMgbWF5IHdpc2ggdG8gZ2V0IGZlZWRiYWNrIG9uIHRoZWlyCisgICAgICAgIGRvY3VtZW50cyBkaXJlY3RseSBmcm9tIHVzZXJzLiAgVGhpcyBtYXkgYmUgZG9uZSBieSAuLi4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPi0tPgorICA8L3NlY3QxPgorICAKKzwhLS0gIyMjIyMjIyMjIyMjIyMjIyMgRmluaXNoaW5nIGEgRG9jdW1lbnQgIyMjIyMjIyMjIyMjIyMjIC0tPgorCisgIDxzZWN0MSBpZD0iZmluaXNoaW5nIj4KKyAgICA8dGl0bGU+RmluaXNoaW5nIEEgRG9jdW1lbnQ8L3RpdGxlPgorCis8IS0tICMjIyMjIyMgRmluaXNoaW5nIGEgRG9jdW1lbnQgfCBFZGl0dGluZyB0aGUgRG9jdW1lbnQgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0iZWRpdHRpbmciPgorICAgICAgPHRpdGxlPkVkaXRpbmcgVGhlIERvY3VtZW50PC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBXaGVuIHRoZSBkb2N1bWVudCBpcyBmaW5pc2hlZCwgdGhlIGRvY3VtZW50IHNob3VsZCBiZSBlZGl0ZWQKKyAgICAgICAgYnkgYW5vdGhlciBtZW1iZXIgb2YgdGhlIEdEUCBmb3Igc3BlbGxpbmcsIGNsYXJpdHksIGFuZAorICAgICAgICBEb2NCb29rIG1hcmt1cC4gSXQgc2hvdWxkIGFsc28gYmUgcmVhZCBieSBhbiBhcHBsaWNhdGlvbgorICAgICAgICBhdXRob3IgdG8gbWFrZSBzdXJlIHRoZSBkb2N1bWVudCBpcyB0ZWNobmljYWxseSBhY2N1cmF0ZS4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorCis8IS0tICMjIyMjIyMgRmluaXNoaW5nIGEgRG9jdW1lbnQgfCBTdWJtaXR0aW5nIHRoZSBEb2N1bWVudCAjIyMjIyMjIC0tPgorCisgICAgPHNlY3QyIGlkPSJzdWJtaXR0aW5nIj4KKyAgICAgIDx0aXRsZT5TdWJtaXR0aW5nIFRoZSBEb2N1bWVudDwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgQWZ0ZXIgdGhlIGRvY3VtZW50IGhhcyBiZWVuIGVkaXRlZCBhbmQgY2hlY2tlZCBmb3IgdGVjaG5pY2FsCisgICAgICAgIGFjY3VyYWN5LCBpdCBpcyByZWFkeSB0byBiZSBjb21iaW5lZCB3aXRoIHRoZSBhcHBsaWNhdGlvbiBvcgorICAgICAgICBkb2N1bWVudGF0aW9uIHBhY2thZ2UuICBUaGlzIGlzIHR5cGljYWxseSBkb25lIGJ5IHBhc3NpbmcgdGhlCisgICAgICAgIGRvY3VtZW50IHRvIHRoZSBhcHBsaWNhdGlvbiBvciBwYWNrYWdlIGRldmVsb3Blci4gIEluIHNvbWUKKyAgICAgICAgY2FzZXMsIHRoZSBkb2N1bWVudHMgY2FuIGJlIGNvbW1pdHRlZCBkaXJlY3RseSBpbnRvIENWUywKKyAgICAgICAgaG93ZXZlciB0aGlzIHNob3VsZCBvbmx5IGJlIGRvbmUgYWZ0ZXIgb2J0YWluaW5nIHBlcm1pc3Npb24gdG8KKyAgICAgICAgbWFrZSBDVlMgY29tbWl0cyBmcm9tIHRoZSBkZXZlbG9wZXIuICBOb3RlIHRoYXQgaW4gbWFueSBjYXNlcywKKyAgICAgICAgdGhlIGFwcGxpY2F0aW9uIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkIHRvIGNvcnJlY3RseSBsaW5rIHRvCisgICAgICAgIHRoZSBkb2N1bWVudGF0aW9uLiAgVGhlIHBhY2thZ2luZyBzeXN0ZW0gKHRhcmJhbGxzIGFuZCBiaW5hcnkKKyAgICAgICAgcGFja2FnZXMpIG1heSBhbHNvIG5lZWQgdG8gYmUgbW9kaWZpZWQgdG8gaW5jbHVkZSB0aGUKKyAgICAgICAgZG9jdW1lbnRhdGlvbiBpbiB0aGUgcGFja2FnZS4gIEdlbmVyYWxseSwgdGhpcyBzaG91bGQgYmUgZG9uZQorICAgICAgICBieSB0aGUgZGV2ZWxvcGVycy4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgZmluYWwgc3RlcCBpcyB0byBlbWFpbCB0aGUgR05PTUUgVHJhbnNsYXRpb24gVGVhbSBhdAorICAgICAgICA8ZW1haWw+Z25vbWUtaTE4bkBudWNsZWN1LnVuYW0ubXg8L2VtYWlsPiB0byBub3RpZnkgdGhlbSB0aGF0CisgICAgICAgIHRoZXJlIGlzIGEgbmV3IGRvY3VtZW50IGZvciB0aGVtIHRvIHRyYW5zbGF0ZS4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorICA8L3NlY3QxPgorICAKKzwhLS0gIyMjIyMjIyMjIyMjIyMjIyMgUmVzb3VyY2VzICMjIyMjIyMjIyMjIyMjIyAtLT4KKworICA8c2VjdDEgaWQ9InJlc291cmNlcyI+CisgICAgPHRpdGxlPlJlc291cmNlczwvdGl0bGU+IAorPCEtLSAjIyMjIyMjIFJlc291cmNlcyB8IFJlc291cmNlcyBvbiB0aGUgV2ViICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9InJlc291cmNlc3dlYiI+CisgICAgICA8dGl0bGU+UmVzb3VyY2VzIE9uIFRoZSBXZWI8L3RpdGxlPiA8cGFyYT4gIFRoZSA8dWxpbmsKKyAgICAgIHR5cGU9Imh0dHAiIHVybD0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcvcHJvamVjdHMvZ2RwLyI+R05PTUUKKyAgICAgIERvY3VtZW50YXRpb24gUHJvamVjdCBXZWIgcGFnZTwvdWxpbms+IGxpc3RzIGN1cnJlbnQgR0RQIAorICAgICAgcHJvamVjdHMgYW5kIG1lbWJlcnMuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuZ25vbWUub3JnL2dkcC9kb2N0YWJsZS8iCisgICAgICAgIHR5cGU9Imh0dHAiPkdEUCBEb2N1bWVudGF0aW9uIFN0YXR1cyBUYWJsZTwvdWxpbms+IHRyYWNrcyB0aGUKKyAgICAgICAgc3RhdHVzIG9mIGFsbCB0aGUgdmFyaW91cyBkb2N1bWVudGF0aW9uIGNvbXBvbmVudHMgb2YgR05PTUUuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTm9ybWFuIFdhbHNoJ3MgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuZG9jYm9vay5vcmciCisgICAgICAgIHR5cGU9Imh0dHAiPiA8Y2l0ZXRpdGxlPkRvY0Jvb2s6IFRoZSBEZWZpbml0aXZlCisgICAgICAgIEd1aWRlPC9jaXRldGl0bGU+PC91bGluaz4gaW4gYW4gZXhjZWxsZW50IGJvb2sgb24gRG9jQm9vaywKKyAgICAgICAgYXZhaWxhYmxlIGJvdGggb25saW5lIGFuZCBpbiBwcmludC4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorCis8IS0tICMjIyMjIyMgUmVzb3VyY2VzIHwgQm9va3MgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0icmVzb3VyY2VzYm9va3MiPgorICAgICAgPHRpdGxlPkJvb2tzPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBEb2Nib29rOiBUaGUgRGVmaW5pdGl2ZSBHdWlkZSBpcyBhdmFpbGFibGUgaW4gYm90aCBwcmludGVkCisgICAgICAgIGZvcm0gYW5kIG9uIHRoZSB3ZWIgYXQ6CisgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuZG9jYm9vay5vcmcvdGRnL2luZGV4Lmh0bWwiPgorICAgICAgICA8Y2l0ZXRpdGxlPkRvY2Jvb2s6IFRoZSBEZWZpbml0aXZlIEd1aWRlPC9jaXRldGl0bGU+CisgICAgICAgIDwvdWxpbms+CisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0Mj4KKworPCEtLSAjIyMjIyMjIFJlc291cmNlcyB8IE1haWxpbmcgTGlzdHMgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MiBpZD0ibWFpbGluZ2xpc3RzIj4KKyAgICAgIDx0aXRsZT5NYWlsaW5nIExpc3RzPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgPGVtcGhhc2lzPmdub21lLWRvY3MtbGlzdDwvZW1waGFzaXM+IG1haWxpbmcgbGlzdCBpcyB0aGUKKyAgICAgICAgbWFpbiBkaXNjdXNzaW9uIGFyZWEgZm9yIGFsbCBjb250cmlidXRvcnMgdG8gdGhlIEdOT01FCisgICAgICAgIERvY3VtZW50YXRpb24gUHJvamVjdC4gWW91IGNhbiBmaW5kIG91dCBob3cgdG8gc3Vic2NyaWJlIHRvCisgICAgICAgIHRoaXMgbGlzdCBvbiA8dWxpbmsKKyAgICAgICAgdXJsPSJodHRwOi8vd3d3Lmdub21lLm9yZy9yZXNvdXJjZXMvbWFpbGluZy1saXN0cy5odG1sIgorICAgICAgICB0eXBlPSJodHRwIj5HTk9NRSBNYWlsaW5nIExpc3RzPC91bGluaz4uICBUaGlzIGlzIGEgcmF0aGVyCisgICAgICAgIGxvdy12b2x1bWUgbGlzdCwgc28geW91IHdpbGwgbm90IGJlIGZsb29kZWQgd2l0aCBtZXNzYWdlcy4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorCis8IS0tICMjIyMjIyMgUmVzb3VyY2VzIHwgSVJDICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDIgaWQ9ImlyYyI+CisgICAgICA8dGl0bGU+SVJDPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBJbnRlcm5ldCBSZWxheSBDaGF0IChJUkMpIGlzIGEgZmFzdCBhbmQgZWFzeSB3YXkgdG8gZ2V0IGluCisgICAgICAgIHRvdWNoIHdpdGggb3RoZXIgR0RQIG1lbWJlcnMuICBUaGVyZSBhcmUgZ2VuZXJhbGx5IGF0IGxlYXN0IGEKKyAgICAgICAgZmV3IG1lbWJlcnMgaGVyZSB3aG8gY2FuIGFuc3dlciBxdWVzdGlvbnMgb3IgZGlzY3VzcworICAgICAgICBkb2N1bWVudGF0aW9uIGlzc3Vlcy4gIFRoZSBJUkMgY2hhbm5lbCBpcyAjZG9jcyBhdAorICAgICAgICBpcmMuZ25vbWUub3JnLgorICAgICAgPC9wYXJhPgorICAgIDwvc2VjdDI+CisgIDwvc2VjdDE+CisgIAorPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyBFeGFtcGxlIERvY3MgIyMjIyMjIyMjIyMjIyMjCisKKyAgPGFwcGVuZGl4IGlkPSJleGFtcGxlZG9jcyI+CisgICAgPHRpdGxlPkV4YW1wbGUgRG9jczwvdGl0bGU+IAorCisjIyMjIyMjIEV4YW1wbGUgRG9jcyB8IEV4YW1wbGUgMTogQXBwbGljYXRpb24gTWFudWFsICMjIyMjIyMgCisKKyAgICA8c2VjdDEgaWQ9ImV4MSI+CisgICAgICA8dGl0bGU+RXhhbXBsZSAxOiBBcHBsaWNhdGlvbiBNYW51YWw8L3RpdGxlPgorICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbIChQdXQgc2dtbCBoZXJlLildXT4gPC9wcm9ncmFtbGlzdGluZz4KKyAgICA8L3NlY3QxPgorCisjIyMjIyMjIEV4YW1wbGUgRG9jcyB8IEV4YW1wbGUgMjogQXBwbGV0IE1hbnVhbCAjIyMjIyMjIAorCisgICAgPHNlY3QxIGlkPSJleDIiPgorICAgICAgPHRpdGxlPkV4YW1wbGUgMjogQXBwbGV0IE1hbnVhbDwvdGl0bGU+CisgICAgICA8cHJvZ3JhbWxpc3Rpbmc+Cis8IVtDREFUQVsoUHV0IHNnbWwgaGVyZS4pXV0+IDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgPC9zZWN0MT4KKworIyMjIyMgRXhhbXBsZSBEb2NzIHwgRXhhbXBsZSAzOiBBcHBsaWNhdGlvbiBDb250ZXh0IFNlbnNpdGl2ZSBIZWxwICMjIyMKKworICAgIDxzZWN0MSBpZD0iZXgzIj4KKyAgICAgIDx0aXRsZT5FeGFtcGxlIDM6IEFwcGxpY2F0aW9uIENvbnRleHQgU2Vuc2l0aXZlIEhlbHA8L3RpdGxlPgorICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbKFB1dCBzZ21sIGhlcmUuKV1dPiA8L3Byb2dyYW1saXN0aW5nPgorICAgIDwvc2VjdDE+CisKKyMjIyMjIyMgRXhhbXBsZSBEb2NzIHwgRXhhbXBsZSA0OiBDb21wbGV0ZSBBcHBsaWNhdGlvbjogZ25vbWUtaGVsbG8gICMjIyMjIyMKKworICAgIDxzZWN0MSBpZD0iZXg0Ij4KKyAgICAgIDx0aXRsZT5FeGFtcGxlIDQ6IENvbXBsZXRlIEFwcGxpY2F0aW9uOiBnbm9tZS1oZWxsbzwvdGl0bGU+CisgICAgICA8cHJvZ3JhbWxpc3Rpbmc+Cis8IVtDREFUQVsoUHV0IHNnbWwgaGVyZS4pXV0+IDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgPC9zZWN0MT4KKworIyMjIyMjIyBFeGFtcGxlIERvY3MgfCBFeGFtcGxlIDU6IFR1dG9yaWFsICMjIyMjIyMKKworICAgIDxzZWN0MSBpZD0iZXg1Ij4KKyAgICAgIDx0aXRsZT5FeGFtcGxlIDU6IFR1dG9yaWFsPC90aXRsZT4KKyAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWyhQdXQgc2dtbCBoZXJlLildXT4gPC9wcm9ncmFtbGlzdGluZz4KKyAgICA8L3NlY3QxPgorICA8L2FwcGVuZGl4Pi0tPgorICAKKzwhLS0gIyMjIyMjIyMjIyMjIyMjIyMgRG9jdW1lbnQgVGVtcGxhdGVzICMjIyMjIyMjIyMjIyMjIyAtLT4KKworICA8YXBwZW5kaXggaWQ9InRlbXBsYXRlcyI+CisgICAgPHRpdGxlPkRvY3VtZW50IFRlbXBsYXRlczwvdGl0bGU+IAorPCEtLSAjIyMjIyMjIERvY3VtZW50IFRlbXBsYXRlcyB8IFRlbXBsYXRlcyAxOiBBcHBsaWNhdGlvbiBNYW51YWwgIyMjIyMjIyAtLT4KKworICAgIDxzZWN0MSBpZD0idGVtcGxhdGUxIj4KKyAgICAgIDx0aXRsZT5UZW1wbGF0ZSAxOiBBcHBsaWNhdGlvbiBNYW51YWw8L3RpdGxlPgorICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgc2hvdWxkIGJlIHVzZWQgZm9yIGFsbCBhcHBsaWNhdGlvbgorICAgICAgICBtYW51YWxzLiAgWW91IGNhbiBhbHdheXMgZ2V0IHRoZSBsYXRlc3QgY29weSBvZiB0aGlzCisgICAgICAgIHRlbXBsYXRlIGZyb20gIDx1bGluayB0eXBlPSJodHRwIgorICAgICAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL3Byb2plY3RzL2dkcC90ZW1wbGF0ZXMuaHRtbCI+R0RQCisgICAgICAgIERvY3VtZW50YXRpb24gVGVtcGxhdGVzPC91bGluaz4uCisgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKworPCFbQ0RBVEFbCis8IURPQ1RZUEUgQXJ0aWNsZSBQVUJMSUMgIi0vL0dOT01FLy9EVEQgRG9jQm9vayBQTkcgVmFyaWFudCBWMS4xLy9FTiJbCisgICAgICAgIDwhLS0gaWYgbm90IHVzaW5nIFBORyBncmFwaGljLCByZXBsYWNlIHJlZmVyZW5jZSBhYm92ZSB3aXRoCisgICAgICAgICAgICAgLi4uLi5QVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBWMy4xLy9FTiJbCisgICAgICAgICAtLT4KKzwhRU5USVRZIHZlcnNpb24gIjEuMC41MyI+CisgICAgICAgIDwhLS0gcmVwbGFjZSB2ZXJzaW9uIGFib3ZlIHdpdGggYWN0dWFsIGFwcGxpY2F0aW9uIHZlcnNpb24gbnVtYmVyLS0+CisJPCEtLSAgVGVtcGxhdGUgVmVyc2lvbjogMS4wLjEgIChkbyBub3QgcmVtb3ZlIHRoaXMgbGluZSkgLS0+CitdPgorCisKKzwhLS0gVGhpcyBpcyBhIEdOT01FIGRvY3VtZW50YXRpb24gdGVtcGxhdGUsIGRlc2lnbmVkIGJ5IHRoZSBHTk9NRQorICBEb2N1bWVudGF0aW9uIFByb2plY3QgVGVhbS4gUGxlYXNlIHVzZSBpdCBmb3Igd3JpdGluZyBHTk9NRQorICBkb2N1bWVudGF0aW9uLCBtYWtpbmcgb2J2aW91cyBjaGFuZ2VzLiBJbiBwYXJ0aWN1bGFyLCBhbGwgdGhlIHdvcmRzCisgIHdyaXR0ZW4gaW4gVVBQRVJDQVNFICh3aXRoIHRoZSBleGNlcHRpb24gb2YgR05PTUUpIHNob3VsZCBiZQorICByZXBsYWNlZC4gQXMgZm9yICJsZWdhbG5vdGljZSIsIHBsZWFzZSBsZWF2ZSB0aGUgcmVmZXJlbmNlCisgIHVuY2hhbmdlZC4KKworICBSZW1lbWJlciB0aGF0IHRoaXMgaXMgYSBndWlkZSwgcmF0aGVyIHRoYW4gYSBwZXJmZWN0IG1vZGVsIHRvIGZvbGxvdworICBzbGF2aXNobHkuIE1ha2UgeW91ciBtYW51YWwgbG9naWNhbCBhbmQgcmVhZGFibGUuICBBbmQgZG9uJ3QgZm9yZ2V0CisgIHRvIHJlbW92ZSB0aGVzZSBjb21tZW50cyBpbiB5b3VyIGZpbmFsIGRvY3VtZW50YXRpb24hICA7LSkKKyAgLS0+CisKKzwhLS0gPT09PT09PT09PT09PURvY3VtZW50IEhlYWRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKworPGFydGljbGUgaWQ9ImluZGV4Ij4gPCEtLSBwbGVhc2UgZG8gbm90IGNoYW5nZSB0aGUgaWQgLS0+CisKKyAgPGFydGhlYWRlcj4KKyAgICA8dGl0bGU+TVktR05PTUUtQVBQPC90aXRsZT4KKyAgICA8Y29weXJpZ2h0PgorICAgICAgPHllYXI+MjAwMDwveWVhcj4KKyAgICAgIDxob2xkZXI+TUUtVEhFLUFVVEhPUjwvaG9sZGVyPgorICAgIDwvY29weXJpZ2h0PgorCisgIDwhLS0gdHJhbnNsYXRvcnM6IHVuY29tbWVudCB0aGlzOgorCisgIDxjb3B5cmlnaHQ+CisgICA8eWVhcj4yMDAwPC95ZWFyPgorICAgPGhvbGRlcj5NRS1USEUtVFJBTlNMQVRPUiAoTGF0aW4gdHJhbnNsYXRpb24pPC9ob2xkZXI+CisgIDwvY29weXJpZ2h0PgorCisgICAtLT4KKworICA8IS0tIGRvIG5vdCBwdXQgYXV0aG9ybmFtZSBpbiB0aGUgaGVhZGVyIGV4Y2VwdCBpbiBjb3B5cmlnaHQgLSB1c2UKKyAgc2VjdGlvbiAiYXV0aG9ycyIgYmVsb3cgLS0+CisKKyAgICA8bGVnYWxub3RpY2U+CisgICAgICA8cGFyYT4KKyAgICAgICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCisgICAgICAgIGRvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgRnJlZQorICAgICAgICBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L2NpdGV0aXRsZT4sIFZlcnNpb24gMS4xIG9yIGFueSBsYXRlcgorICAgICAgICB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHdpdGggbm8KKyAgICAgICAgSW52YXJpYW50IFNlY3Rpb25zLCBubyBGcm9udC1Db3ZlciBUZXh0cywgYW5kIG5vIEJhY2stQ292ZXIKKyAgICAgICAgVGV4dHMuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgRnJlZQorICAgICAgICBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L2NpdGV0aXRsZT4gZnJvbSB0aGUgRnJlZSBTb2Z0d2FyZQorICAgICAgICBGb3VuZGF0aW9uIGJ5IHZpc2l0aW5nIDx1bGluayB0eXBlPSJodHRwIgorICAgICAgICB1cmw9Imh0dHA6Ly93d3cuZnNmLm9yZyI+dGhlaXIgV2ViIHNpdGU8L3VsaW5rPiBvciBieSB3cml0aW5nCisgICAgICAgIHRvOiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlCisgICAgICAgIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTWFueSBvZiB0aGUgbmFtZXMgdXNlZCBieSBjb21wYW5pZXMgdG8gZGlzdGluZ3Vpc2ggdGhlaXIKKyAgICAgICAgcHJvZHVjdHMgYW5kIHNlcnZpY2VzIGFyZSBjbGFpbWVkIGFzIHRyYWRlbWFya3MuIFdoZXJlIHRob3NlCisgICAgICAgIG5hbWVzIGFwcGVhciBpbiBhbnkgR05PTUUgZG9jdW1lbnRhdGlvbiwgYW5kIHRob3NlIHRyYWRlbWFya3MKKyAgICAgICAgYXJlIG1hZGUgYXdhcmUgdG8gdGhlIG1lbWJlcnMgb2YgdGhlIEdOT01FIERvY3VtZW50YXRpb24KKyAgICAgICAgUHJvamVjdCwgdGhlIG5hbWVzIGhhdmUgYmVlbiBwcmludGVkIGluIGNhcHMgb3IgaW5pdGlhbCBjYXBzLgorICAgICAgPC9wYXJhPgorICAgIDwvbGVnYWxub3RpY2U+CisKKyAgPCEtLSB0aGlzIGlzIHRoZSB2ZXJzaW9uIG9mIG1hbnVhbCwgbm90IGFwcGxpY2F0aW9uIC0tPiAKKyAgICA8cmVsZWFzZWluZm8+CisgICAgICAgVGhpcyBpcyB2ZXJzaW9uIDEuMCBvZiBNWS1HTk9NRS1BUFAgbWFudWFsLgorICAgIDwvcmVsZWFzZWluZm8+CisKKyAgPC9hcnRoZWFkZXI+CisKKyA8IS0tID09PT09PT09PT09PT0gRG9jdW1lbnQgQm9keSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKworIDwhLS0gPT09PT09PT09PT09PSBJbnRyb2R1Y3Rpb24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorICA8c2VjdDEgaWQ9ImludHJvIj4KKyAgICA8dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT4KKworICAgIDxwYXJhPgorICAgICA8YXBwbGljYXRpb24+TVktR05PTUUtQVBQPC9hcHBsaWNhdGlvbj4gaXMgYW4gYXBwbGljYXRpb24gd2hpY2gKKyAgICAgcHJvdmVzIG1hdGhlbWF0aWNhbCB0aGVvcmVtcy4gIEl0IGhhcyBhbGwgdGhlIGJhc2ljIGZlYXR1cmVzCisgICAgIGV4cGVjdGVkIGZyb20gYSBtYXRoZW1hdGljYWwgdGhlb3JlbSBwcm92ZXIsIGFzIHdlbGwgYXMgYSBudW1iZXIKKyAgICAgb2YgYWR2YW5jZWQgb25lcywgc3VjaCBhcyBwcm9vZiBieSBjb25mdXNpb24uICBJbiBmYWN0LCBtYW55IG9mCisgICAgIHRoZSBwcm9vZnMgcHJvZHVjZWQgYnkgPGFwcGxpY2F0aW9uPk1ZLUdOT01FLUFQUDwvYXBwbGljYXRpb24+CisgICAgIGFyZSBzbyBjb21wbGV4IHRoYXQgdGhleSBhcmUgY2FwYWJsZSBvZiBwcm92aW5nIGFsbW9zdCBhbnl0aGluZworICAgICB3aXRoIGEgdmlydHVhbGx5IG51bGwgbGlrZWxpaG9vZCBvZiBiZWluZyBkaXNwcm92ZW4uICBJdCBhbHNvIGhhcworICAgICB0aGUgdmVyeSBwb3B1bGFyIHByZWRlY2Vzc29yIG9mIHByb29mIGJ5IGNvbmZ1c2lvbiwgcHJvb2YgYnkKKyAgICAgZGlhbG9nLCBmaXJzdCBpbXBsZW1lbnRlZCBieSBQbGF0by4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgICBJdCBhbHNvIGFsbG93cyB5b3UgdG8gc2F2ZSBhbmQgcHJpbnQgdGhlb3JlbSBwcm9vZnMgYW5kIHRvIGFkZAorICAgICAgY29tbWVudHMgdG8gdGhlIHByb29mcyBpdCBwcm9kdWNlcy4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgIFRvIHJ1biA8YXBwbGljYXRpb24+TVktR05PTUUtQVBQPC9hcHBsaWNhdGlvbj4sIHNlbGVjdAorICAgICAgPG1lbnVjaG9pY2U+CisJPGd1aXN1Ym1lbnU+U1VCTUVOVTwvZ3Vpc3VibWVudT4KKwk8Z3VpbWVudWl0ZW0+TVktR05PTUUtQVBQPC9ndWltZW51aXRlbT4KKyAgICAgIDwvbWVudWNob2ljZT4KKyAgICAgIGZyb20gdGhlIDxndWltZW51Pk1haW4gTWVudTwvZ3VpbWVudT4sIG9yIHR5cGUKKyAgICAgIDxjb21tYW5kPk1ZR05PTUVBUFA8L2NvbW1hbmQ+IG9uIHRoZSBjb21tYW5kIGxpbmUuCisgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICAgPGFwcGxpY2F0aW9uPk1ZLUdOT01FLUFQUDwvYXBwbGljYXRpb24+IGlzIGluY2x1ZGVkIGluIHRoZQorICAgICAgPGZpbGVuYW1lPkdOT01FLVBBQ0tBR0U8L2ZpbGVuYW1lPiBwYWNrYWdlLCB3aGljaCBpcyBwYXJ0IG9mIHRoZQorICAgICAgR05PTUUgZGVza3RvcCBlbnZpcm9ubWVudC4gVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdmVyc2lvbgorICAgICAgJnZlcnNpb247IG9mIDxhcHBsaWNhdGlvbj5NWS1HTk9NRS1BUFA8L2FwcGxpY2F0aW9uPi4KKyAgICA8L3BhcmE+CisgIDwvc2VjdDE+CisKKworIDwhLS0gPT09PT09PT09PT09PT09PSBVc2FnZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyA8IS0tIFRoaXMgc2VjdGlvbiBzaG91bGQgZGVzY3JpYmUgYmFzaWMgdXNhZ2Ugb2YgdGhlIGFwcGxpY2F0aW9uLiAtLT4KKworICA8c2VjdDEgaWQ9InVzYWdlIj4KKyAgICA8dGl0bGU+VXNpbmcgTVktR05PTUUtQVBQPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgIDxhcHBsaWNhdGlvbj5NWS1HTk9NRS1BUFA8L2FwcGxpY2F0aW9uPiBjYW4gYmUgdXNlZCB0byBwcm9kdWNlIGEKKyAgICAgIHBlcmZlY3QgcHJvb2Ygb2YgPGVtcGhhc2lzPmFueTwvZW1waGFzaXM+IG1hdGhlbWF0aWNhbCB0aGVvcmVtCisgICAgICAocHJvdmlkZWQsIG9mIGNvdXJzZSwgdGhhdCB0aGlzIHRoZW9yZW0gaXMgY29ycmVjdCksIHRodXMKKyAgICAgIHByb3ZpZGluZyBmb3IgbmV3IHVzZXJzIGFuIGVhc3ktdG8tdXNlIGdyYXBoaWNhbCBpbnRlcmZhY2UgdG8KKyAgICAgIG1vZGVybiBtYXRoZW1hdGljcy4gVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBiYXNpYyB1c2FnZSBvZgorICAgICAgPGFwcGxpY2F0aW9uPk1ZLUdOT01FLUFQUDwvYXBwbGljYXRpb24+LgorICAgIDwvcGFyYT4KKworICAgIDwhLS0gPT09PT09PT09IEJhc2ljIFVzYWdlID09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyAgICA8c2VjdDIgaWQ9Im1haW53aW4iPgorICAgICAgPHRpdGxlPkJhc2ljIHVzYWdlPC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTdGFydGluZyA8YXBwbGljYXRpb24+TVktR05PTUUtQVBQPC9hcHBsaWNhdGlvbj4gb3BlbnMgdGhlCisgICAgICAgIDxpbnRlcmZhY2U+TWFpbiB3aW5kb3c8L2ludGVyZmFjZT4sIHNob3duIGluIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9Im1haW53aW5kb3ctZmlnIj4uIFRoZSB3aW5kb3cgaXMgYXQgZmlyc3QgZW1wdHkuCisKKyAgICAgICAgPCEtLSA9PT09IEZpZ3VyZSA9PT09IC0tPgorICAgICAgICA8ZmlndXJlIGlkPSJtYWlud2luZG93LWZpZyI+CisJICA8dGl0bGU+TVktR05PTUUtQVBQIE1haW4gV2luZG93PC90aXRsZT4KKwkgIDxzY3JlZW5zaG90PgorCSAgICA8c2NyZWVuaW5mbz5NWS1HTk9NRS1BUFAgTWFpbiBXaW5kb3c8L3NjcmVlbmluZm8+CisJICAgIDxncmFwaGljIGZpbGVyZWY9IlNDUkVFTlNIT1QiIGZvcm1hdD0icG5nIiBzcmNjcmVkaXQ9Ik1FIj4KKyAgICAgICAgICAgIDwvZ3JhcGhpYz4KKwkgIDwvc2NyZWVuc2hvdD4KKwk8L2ZpZ3VyZT4KKyAgICA8IS0tID09PT0gRW5kIG9mIEZpZ3VyZSA9PT09IC0tPgorICAgICAgPC9wYXJhPiAKKworCisgPCEtLSBGb3IgdGhpcyBhcHAsIG9uZSBjb3VsZCBwdXQgInByb3ZpbmciIG9yICJlZGl0IiAocHJvYmFibHkgZXZlbgorICAgICAgYm90aCBvZiB0aGVtKSBhcyBzZWN0MidzIHNlcGVyYXRlIGZyb20gdGhlIG1haW4gd2luZG93CisgICAgICBzZWN0aW9uLiBTaW5jZSB0aGV5IHdlcmUgYm90aCBzbyBjbG9zZWx5IGludm9sdmVkIHdpdGggdGhlIG1haW4KKyAgICAgIHdpbmRvdywgSSBkZWNpZGVkIHRvIGhhdmUgdGhlbSBhcyBzZWN0MydzIGlzbnRlYWQuIEp1ZGdlbWVudAorICAgICAgY2FsbC4gLS0+CisKKyAgICAgIDxzZWN0MyBpZD0icHJvdmluZyI+CisJPHRpdGxlPlByb3ZpbmcgYSBUaGVvcmVtPC90aXRsZT4KKwk8cGFyYT4KKyAgICAgICAgICBUbyBnZXQgYSBwcm9vZiBvZiBhIHRoZW9yZW0sIHNlbGVjdAorICAgICAgICAgIDxtZW51Y2hvaWNlPgorCSAgICA8Z3Vpc3VibWVudT5GaWxlPC9ndWlzdWJtZW51PgorCSAgICA8Z3VpbWVudWl0ZW0+TmV3PC9ndWltZW51aXRlbT4KKwkgIDwvbWVudWNob2ljZT4sCisgICAgICAgICAgICB3aGljaCB3aWxsCisJICAgIGJyaW5nIHVwIHRoZSA8aW50ZXJmYWNlPk5ldyBQcm9vZjwvaW50ZXJmYWNlPiBkaWFsb2cgYm94LgorCSAgICBFbnRlciB0aGUgc3RhdGVtZW50IG9mIHRoZSB0aGVvcmVtIGluIHRoZQorCSAgICA8Z3VpbGFiZWw+VGhlb3JlbSBzdGF0ZW1lbnQ8L2d1aWxhYmVsPiBmaWVsZCwgc2VsZWN0IHlvdXIKKwkgICAgZGVzaXJlZCBwcm9vZiB0eXBlIGZyb20gdGhlIGRyb3AtZG93biBtZW51LCBhbmQgYW5kIHByZXNzCisJICAgIDxndWlidXR0b24+UHJvdmUhPC9ndWlidXR0b24+LgorICAgICAgICA8L3BhcmE+CisJPHBhcmE+CisgICAgICAgICAgSWYgPGFwcGxpY2F0aW9uPk1ZLUdOT01FLUFQUDwvYXBwbGljYXRpb24+IGNhbm5vdCBwcm92ZSB0aGUKKyAgICAgICAgICB0aGVvcmVtIGJ5IHRoZSBtZXRob2QgeW91IGhhdmUgY2hvc2VuLCBvciBpZiB5b3UgaGF2ZSBub3QKKyAgICAgICAgICBzZWxlY3RlZCBhIHByb29mIHR5cGUgYXQgYWxsLAorICAgICAgICAgIDxhcHBsaWNhdGlvbj5NWS1HTk9NRS1BUFA8L2FwcGxpY2F0aW9uPiB3aWxsIGF0dGVtcHQgdG8KKyAgICAgICAgICBjaG9vc2UgdGhlIG9uZSB0aGF0IGl0IHRoaW5rcyBpcyBtb3N0IGNvbmNsdXNpdmUuICBJbiBvcmRlciwKKyAgICAgICAgICBpdCB3aWxsIGF0dGVtcHQgdG8gcHJvdmUgdGhlIHRoZW9yZW0gd2l0aCB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6IAorICAgICAKKyAgICAgICAgICAgICAgICA8dmFyaWFibGVsaXN0PgorCSAgICA8dmFybGlzdGVudHJ5PgorCSAgICAgIDx0ZXJtPkRlZHVjdGlvbjwvdGVybT4KKwkgICAgICA8bGlzdGl0ZW0+CisJCTxwYXJhPgorICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIHByb29mIG1ldGhvZCB0aGF0IGlzIGdlbmVyYWxseSBhY2NlcHRlZAorICAgICAgICAgICAgICAgICAgZm9yIGZ1bGwgY3JlZGl0IGJ5IExvZ2ljIHByb2Zlc3NvcnMuCisgICAgICAgICAgICAgICAgPC9wYXJhPgorCSAgICAgIDwvbGlzdGl0ZW0+CisJICAgIDwvdmFybGlzdGVudHJ5PgorCSAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgICAgPHRlcm0+SW5kdWN0aW9uPC90ZXJtPgorCSAgICA8bGlzdGl0ZW0+CisJICAgICAgPHBhcmE+CisgICAgICAgICAgICAgICAgVGhpcyBsb2dpY2FsIHN0eWxlIHdpbGwgYWxzbyBlYXJuIHlvdSBmdWxsIGNyZWRpdCBvbgorICAgICAgICAgICAgICAgIHlvdXIgaG9tZXdvcmsuCisgICAgICAgICAgICAgPC9wYXJhPgorCSAgICA8L2xpc3RpdGVtPgorICAgICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisJICAgIDx2YXJsaXN0ZW50cnk+CisJICAgICAgPHRlcm0+RGlhbG9nPC90ZXJtPgorCSAgICAgIDxsaXN0aXRlbT4KKwkgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgICBUaGlzIGxvZ2ljYWwgbWV0aG9kIGlzIGJlc3QgZm9yIFBoaWxvc29waHkgY2xhc3NlcywKKyAgICAgICAgICAgICAgICBhbmQgd2lsbCBwcm9iYWJseSBvbmx5IG1lcml0IHBhcnRpYWwgY3JlZGl0IG9uIExvZ2ljCisgICAgICAgICAgICAgICAgb3IgTWF0aGVtYXRpY3MgaG9tZXdvcmsuCisgICAgICAgICAgICAgIDwvcGFyYT4KKwkgICAgPC9saXN0aXRlbT4KKyAgICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKwkgICAgICA8dGVybT5Db25mdXNpb248L3Rlcm0+CisJICAgICAgPGxpc3RpdGVtPgorCSAgICAgIDxwYXJhPgorICAgICAgICAgICAgICAgIFN1aXRhYmxlIG9ubHkgZm9yIHBvbGl0aWNhbCBkZWJhdGVzLCBiYXR0bGVzIG9mIHdpdHMKKyAgICAgICAgICAgICAgICBhZ2FpbnN0IHRoZSB1bmFybWVkLCBhbmQgUGhpbG9zb3BoeSBjbGFzc2VzIGZvY3VzaW5nCisgICAgICAgICAgICAgICAgb24gdGhlIHdvcmtzIG9mIEthbnQuIFVzZSB3aXRoIGNhdXRpb24uCisgICAgICAgICAgICAgIDwvcGFyYT4KKwkgICAgICA8L2xpc3RpdGVtPgorCSAgICA8L3Zhcmxpc3RlbnRyeT4KKwkgIDwvdmFyaWFibGVsaXN0PgorICAgICAgICAgIDwvcGFyYT4KKworICAgPCEtLSBZb3UgbWlnaHQgd2FudCB0byBpbmNsdWRlIGEgbm90ZSwgd2FybmluZywgb3IgdGlwLCBlLmcuIC0tPgorCQorCTx3YXJuaW5nPgorCSAgPHRpdGxlPlByb3ZpbmcgSW5jb3JyZWN0IFRoZW9ybXM8L3RpdGxlPgorCSAgPHBhcmE+CisgICAgICAgICAgICA8YXBwbGljYXRpb24+TVktR05PTUUtQVBQPC9hcHBsaWNhdGlvbj4gY2Fubm90IHByb3ZlCisgICAgICAgICAgICBpbmNvcnJlY3QgdGhlb3JlbXMuIElmIHRoZSB0aGVvcmVtIHlvdSBoYXZlIGVudGVyZWQgaXMgbm90CisgICAgICAgICAgICBkZW1vbnN0cmFibHkgdHJ1ZSwgeW91IHdpbGwgZ2V0IGEgbWVzc2FnZSB0byB0aGF0IGVmZmVjdAorICAgICAgICAgICAgaW4gdGhlIG1haW4gd2luZG93LiAgVG8gZGlzcHJvdmUgYSB0aGVvcmVtLCBhc2sKKyAgICAgICAgICAgIDxhcHBsaWNhdGlvbj5NWS1HTk9NRS1BUFA8L2FwcGxpY2F0aW9uPiB0byBwcm92ZSBpdHMKKyAgICAgICAgICAgIGxvZ2ljYWwgaW52ZXJzZS4KKyAgICAgICAgICA8L3BhcmE+CisJPC93YXJuaW5nPgorICAgICAgPC9zZWN0Mz4KKyAgICAgIDxzZWN0MyBpZD0iZWRpdGluZyI+CisJPHRpdGxlPkVkaXRpbmcgUHJvb2ZzPC90aXRsZT4KKwk8cGFyYT4KKyAgICAgICAgICBPbmNlIHlvdSBoYXZlIHByb3ZlbiB0aGUgdGhlb3JlbSwgaXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4KKyAgICAgICAgICB0aGUgPGludGVyZmFjZT5tYWluIHdpbmRvdzwvaW50ZXJmYWNlPi4gIFRoZXJlLCB5b3UgY2FuIHJlYWQKKyAgICAgICAgICBpdCBvdmVyLCBjaG9vc2UgdGV4dCBzdHlsZXMgZm9yIGRpZmZlcmVudCBwb3J0aW9ucyBvZiBpdCwKKyAgICAgICAgICBhbmQgbWFrZSBjb21tZW50cyBvbiBpdC4gVGhpcyBzZWN0aW9uIHdpbGwgZ3VpZGUgeW91IHRocm91Z2gKKyAgICAgICAgICB0aGF0IHByb2Nlc3MuCisgICAgICAgIDwvcGFyYT4KKwk8cGFyYT4KKyAgICAgICAgICBUbyBhbHRlciB0ZXh0IHN0eWxlcywgZmlyc3Qgc2VsZWN0IHRoZSBzdGF0ZW1lbnQgeW91IHdpc2ggdG8KKyAgICAgICAgICBjaGFuZ2UgYnkgY2xpY2tpbmcgb24gaXQgb25jZS4gIFlvdSBjYW4gc2VsZWN0IHNldmVyYWwKKyAgICAgICAgICBzdGF0ZW1lbnRzIGJ5IFRoZW4sIGNob29zZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgZnJvbQorICAgICAgICAgIHRoZSA8Z3Vpc3VibWVudT5TdHlsZTwvZ3Vpc3VibWVudT4gc3VibWVudSBvZiB0aGUKKyAgICAgICAgICA8Z3VpbWVudT5FZGl0PC9ndWltZW51PiBtZW51LgorICAgICAgICAgIDxhcHBsaWNhdGlvbj5NWS1HTk9NRS1BUFA8L2FwcGxpY2F0aW9uPiB3aWxsIGNvbnZlcnQgdGhlCisgICAgICAgICAgdGV4dCB0byB0aGF0IHN0eWxlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgIFlvdSBjYW4gYWxzbyBlbnRlciBjb21tZW50cyBvbiBhIHN0YXRlbWVudCBieSBzZWxlY3RpbmcgdGhhdAorICAgICAgICAgIHN0YXRlbWVudCwgYW5kIHRoZW4gYmVnaW5uaW5nIHRvIHR5cGUuICBDb21tZW50cyB3aWxsIGFwcGVhcgorICAgICAgICAgIGFmdGVyIHRoZSBzdGF0ZW1lbnQgeW91IGhhdmUgc2VsZWN0ZWQuCisgICAgICAgIDwvcGFyYT4KKworCTxub3RlPgorCSAgPHRpdGxlPkFsdGVyaW5nIFRoZSBQcm9vZnMgVGhlbXNlbHZlczwvdGl0bGU+CisgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICA8YXBwbGljYXRpb24+TVktR05PTUUtQVBQPC9hcHBsaWNhdGlvbj4gZG9lcyBub3QgYWxsb3cgeW91CisgICAgICAgICAgICB0byBhbHRlciBhIHByb29mIGl0IGhhcyBwcm9kdWNlZCBpdHNlbGYuICBZb3UgY2FuLCBzYXZlCisgICAgICAgICAgICB5b3VyIHByb29mIGFzIGEgcGxhaW4gdGV4dCBmaWxlICh1c2luZyB0aGUKKyAgICAgICAgICAgIDxndWltZW51aXRlbT5TYXZlIGFzLi4uPC9ndWltZW51aXRlbT4gbWVudSksIGFuZCBhbHRlciBpdAorICAgICAgICAgICAgdGhhdCB3YXkuICBCZSBhd2FyZSwgaG93ZXZlciwgdGhhdAorICAgICAgICAgICAgPGFwcGxpY2F0aW9uPk1ZLUdOT01FLUFQUDwvYXBwbGljYXRpb24+IHVzZXMgaXRzIG93biBmaWxlCisgICAgICAgICAgICBmb3JtYXQgZm9yIHNhdmVkIHByb29mcywgYW5kIGNhbm5vdCByZS1vcGVuIGEgZmlsZSB1bmxlc3MKKyAgICAgICAgICAgIGl0IGlzIGluIHRoZSAubWdhIGZvcm1hdC4KKyAgICAgICAgICA8L3BhcmE+CisJPC9ub3RlPgorICAgICAgPC9zZWN0Mz4KKworCisgIDwhLS0gSWYgdGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucyBwZXJmb3JtZWQgZnJvbSB0aGUgbWFpbiB3aW5kb3csCisgICAgICAgdGhleSBiZWxvbmcgaGVyZS4gICAtLT4KKworICAgIDwvc2VjdDI+CisgCisgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gCisgICAgICBBZGRpdGlvbmFsIFNlY3QyJ3Mgc2hvdWxkIGRlc2NyaWJlIGFkZGl0aW9uYWwgd2luZG93cywgc3VjaCBhcworICAgICAgbGFyZ2VyIGRpYWxvZyBib3hlcywgb3IgZnVuY3Rpb25hbGl0eSB0aGF0IGRpZmZlcnMgc2lnbmlmaWNhbnRseQorICAgICAgZnJvbSB0aGUgbW9zdCBpbW1lZGlhdGUgZnVuY3Rpb25zIG9mIHRoZSBhcHBsaWNhdGlvbi4gTWFrZSB0aGUKKyAgICAgIHN0cnVjdHVyZSBsb2dpY2FsLgorICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisKKworICAgIDxzZWN0MiBpZD0idG9vbGJhciI+CisgICAgICA8dGl0bGU+VG9vbGJhcjwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHRvb2xiYXIgKHNob3duIGluIDx4cmVmIGxpbmtlbmQ9ImZpZ3VyZS11c2FnZS10b29sYmFyIj4pCisgICAgICAgIHByb3ZpZGVzIGFjY2VzcyB0byBzZXZlcmFsIGNvbW1vbmx5IHVzZWQgcm91dGluZXMuCisgICAgICAgIDxmaWd1cmUgaWQ9ImZpZ3VyZS11c2FnZS10b29sYmFyIj4KKwkgIDx0aXRsZT5NWS1HTk9NRS1BUFAgVG9vbGJhcjwvdGl0bGU+CisJICA8c2NyZWVuc2hvdD4KKwkgICAgPHNjcmVlbmluZm8+TVktR05PTUUtQVBQIFRvb2xiYXI8L3NjcmVlbmluZm8+CisJICAgIDxncmFwaGljIGZpbGVyZWY9InVzYWdlLXRvb2xiYXIucG5nIiBmb3JtYXQ9InBuZyI+PC9ncmFwaGljPgorCSAgPC9zY3JlZW5zaG90PgorCTwvZmlndXJlPgorICAgICAgICA8dmFyaWFibGVsaXN0PgorCSAgPHZhcmxpc3RlbnRyeT4KKwkgICAgPHRlcm0+TmV3PC90ZXJtPgorCSAgICA8bGlzdGl0ZW0+CisJICAgICAgPHBhcmE+CisgICAgICAgICAgICAgICAgQnJpbmdzIHVwIHRoZSA8aW50ZXJmYWNlPk5ldyBUaGVvcmVtPC9pbnRlcmZhY2U+CisgICAgICAgICAgICAgICAgZGlhbG9nLgorICAgICAgICAgICAgICA8L3BhcmE+CisJICAgIDwvbGlzdGl0ZW0+CisJICA8L3Zhcmxpc3RlbnRyeT4KKwkgIDx2YXJsaXN0ZW50cnk+CisJICAgIDx0ZXJtPk9wZW48L3Rlcm0+CisJICAgIDxsaXN0aXRlbT4KKwkgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgICAgT3BlbiBhbiBleGlzaXRpbmcgdGhlb3JlbSB5b3Ugd2FudCB0byBwcm92ZSwgb3IgYQorICAgICAgICAgICAgICAgICBjb21wbGV0ZWQgcHJvb2YgeW91IHdpc2ggdG8gcHJpbnQgb3IgZm9ybWF0LgorICAgICAgICAgICAgICAgPC9wYXJhPgorCSAgICA8L2xpc3RpdGVtPgorCSAgPC92YXJsaXN0ZW50cnk+CisJICA8dmFybGlzdGVudHJ5PgorCSAgICA8dGVybT5TYXZlPC90ZXJtPgorCSAgICA8bGlzdGl0ZW0+CisJICAgICAgPHBhcmE+CisJICAgICAgICAgU2F2ZSB0aGUgY3VycmVudCB0aGVvcmVtIHBlcm1hbmVudGx5IGluIGEKKwkgICAgICAgICBmaWxlLgorICAgICAgICAgICAgICAgPC9wYXJhPgorCSAgICA8L2xpc3RpdGVtPiAKKwkgIDwvdmFybGlzdGVudHJ5PgorCTwvdmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QyPgorICAgIDwhLS0gPT09PT09PT09IE1lbnVzID09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4gCisKKyAgICA8c2VjdDIgaWQ9Im1lbnViYXIiPgorCisgICAgICAgPCEtLSBEZXNjcmliaW5nIHRoZSBtZW51YmFyIGVuc3VyZXMgY29tcHJlaGVuc2l2ZSBmZWF0dXJlCisgICAgICAgY292ZXJhZ2UuIE5lc3QgaXRlbWl6ZWRsaXN0cyBpbnNpZGUgdmFyaWFibGVsaXN0cyBzbyB0aGF0IGVhY2gKKyAgICAgICBtZW51IGlzIGVhc2lseSBsb2NhdGVkIGJ5IGluZGV4aW5nIHNvZnR3YXJlLiBQcm9wZXIgaW5kZW50YXRpb24KKyAgICAgICBtYWtlcyBpdCBlYXNpZXIhIC0tPgorCisgICAgICA8dGl0bGU+TWVudXM8L3RpdGxlPgorICAgICAgPHBhcmE+CisJVGhlIG1lbnUgYmFyLCBsb2NhdGVkIGF0IHRoZSB0b3Agb2YgdGhlIDxpbnRlcmZhY2U+TWFpbgorCVdpbmRvdzwvaW50ZXJmYWNlPiwgY29udGFpbnMgdGhlIGZvbGxvd2luZyBtZW51czoKKyAgICAgICA8L3BhcmE+CisgICAgICA8dmFyaWFibGVsaXN0PgorCTx2YXJsaXN0ZW50cnk+CisJICA8dGVybT48Z3VpbWVudT5GaWxlPC9ndWltZW51PjwvdGVybT4KKwkgIDxsaXN0aXRlbT4KKwkgICAgPHBhcmE+CisJICAgICAgIFRoaXMgbWVudSBjb250YWluczoKKwkgICAgICAgPGl0ZW1pemVkbGlzdD4KKwkJPGxpc3RpdGVtPgorCQkgIDxwYXJhPgorCSAgICAgICAgICAgIDxtZW51Y2hvaWNlPgorCQkgICAgICA8c2hvcnRjdXQ+CisJCQk8a2V5Y2FwPkYzPC9rZXljYXA+CisJCSAgICAgIDwvc2hvcnRjdXQ+CisJCSAgICAgIDxndWltZW51aXRlbT5PcGVuPC9ndWltZW51aXRlbT4KKwkJICAgICA8L21lbnVjaG9pY2U+CisJICAgICAgICAgICAgICZtZGFzaDsgVGhpcyBvcGVucyBhIGZpbGUgd2hpY2ggaXMgc2F2ZWQgb24geW91ciBjb21wdXRlci4KKwkgICAgICAgICAgIDwvcGFyYT4KKwkJPC9saXN0aXRlbT4KKwkJPGxpc3RpdGVtPgorCQkgIDxwYXJhPgorCSAgICAgICAgICAgICA8bWVudWNob2ljZT4KKwkJICAgICAgPHNob3J0Y3V0PgorCQkJPGtleWNvbWJvPjxrZXljYXA+Q3RybDwva2V5Y2FwPjxrZXljYXA+Uzwva2V5Y2FwPjwva2V5Y29tYm8+CisJCSAgICAgIDwvc2hvcnRjdXQ+CisJCSAgICAgIDxndWltZW51aXRlbT5TYXZlPC9ndWltZW51aXRlbT4KKwkJICAgIDwvbWVudWNob2ljZT4KKwkgICAgICAgICAgICAmbWRhc2g7IFRoaXMgc2F2ZXMgeW91ciBmaWxlLgorCSAgICAgICAgICA8L3BhcmE+CisJCTwvbGlzdGl0ZW0+CisJCTxsaXN0aXRlbT4KKwkJICA8cGFyYT4KKwkgICAgICAgICAgICAgPG1lbnVjaG9pY2U+CisJCSAgICAgIDxzaG9ydGN1dD4KKwkJCTxrZXljb21ibz48a2V5Y2FwPkN0cmw8L2tleWNhcD48a2V5Y2FwPlc8L2tleWNhcD48L2tleWNvbWJvPgorCQkgICAgICA8L3Nob3J0Y3V0PgorCQkgICAgICA8Z3VpbWVudWl0ZW0+Q2xvc2U8L2d1aW1lbnVpdGVtPgorCQkgICAgPC9tZW51Y2hvaWNlPgorCSAgICAgICAgICAgICZtZGFzaDsgVGhpcyBjbG9zZXMgeW91ciBmaWxlLgorCSAgICAgICAgICA8L3BhcmE+CisJCTwvbGlzdGl0ZW0+CisJCTxsaXN0aXRlbT4KKwkJICA8cGFyYT4KKwkgICAgICAgICAgICA8bWVudWNob2ljZT4KKwkJICAgICAgPHNob3J0Y3V0PgorCQkJPGtleWNvbWJvPjxrZXljYXA+Q3RybDwva2V5Y2FwPjxrZXljYXA+UTwva2V5Y2FwPjwva2V5Y29tYm8+CisJCSAgICAgIDwvc2hvcnRjdXQ+CisJCSAgICAgIDxndWltZW51aXRlbT5FeGl0PC9ndWltZW51aXRlbT4KKwkJICAgIDwvbWVudWNob2ljZT4KKwkgICAgICAgICAgICAmbWRhc2g7IFRoaXMgcXVpdHMgdGhlIGFwcGxpY2F0aW9uLgorCSAgICAgICAgICA8L3BhcmE+CisJCTwvbGlzdGl0ZW0+CisJICAgICAgPC9pdGVtaXplZGxpc3Q+CisJICA8L3BhcmE+CisJICA8L2xpc3RpdGVtPgorCTwvdmFybGlzdGVudHJ5PgorCQorCTx2YXJsaXN0ZW50cnk+CisJICA8dGVybT48Z3VpbWVudT5FZGl0PC9ndWltZW51PjwvdGVybT4KKwkgIDxsaXN0aXRlbT4KKwkgICAgPHBhcmE+CisJICAgVGhpcyBtZW51IGNvbnRhaW5zOgorCSAgIDxpdGVtaXplZGxpc3Q+CisJCTxsaXN0aXRlbT4KKwkJICA8cGFyYT4KKwkgICAgICAgICAgICA8bWVudWNob2ljZT4KKwkJICAgICAgPHNob3J0Y3V0PgorCQkJPGtleWNvbWJvPjxrZXljYXA+Q3RybDwva2V5Y2FwPjxrZXljYXA+WDwva2V5Y2FwPjwva2V5Y29tYm8+CisJCSAgICAgIDwvc2hvcnRjdXQ+CisJCSAgICAgIDxndWltZW51aXRlbT5DdXQ8L2d1aW1lbnVpdGVtPgorCQkgICAgPC9tZW51Y2hvaWNlPgorCSAgICAgICAgICAgICZtZGFzaDsgVGhpcyByZW1vdmVzIGFueSB0ZXh0IG9yIGRhdGEgd2hpY2ggaXMgc2VsZWN0ZWQgYW5kCisJICAgICAgICAgICAgcGxhY2VzIGl0IGluIHRoZSBidWZmZXIuCisJICAgICAgICAgIDwvcGFyYT4KKwkJPC9saXN0aXRlbT4KKwkJPGxpc3RpdGVtPgorCQkgIDxwYXJhPgorCSAgICAgICAgICAgIDxtZW51Y2hvaWNlPgorCQkgICAgICA8c2hvcnRjdXQ+CisJCQk8a2V5Y29tYm8+PGtleWNhcD5DdHJsPC9rZXljYXA+PGtleWNhcD5DPC9rZXljYXA+PC9rZXljb21ibz4KKwkJICAgICAgPC9zaG9ydGN1dD4KKwkJICAgICAgPGd1aW1lbnVpdGVtPkNvcHk8L2d1aW1lbnVpdGVtPgorCQkgICAgPC9tZW51Y2hvaWNlPgorCSAgICAgICAgICAgICZtZGFzaDsgVGhpcyBjb3BpZXMgYW55IHRleHQgb3IgZGF0YSB3aGljaCBpcyBzZWxlY3RlZCBpbnRvCisJICAgICAgICAgICAgdGhlIGJ1ZmZlci4KKwkgICAgICAgICAgPC9wYXJhPgorCQk8L2xpc3RpdGVtPgorCQk8bGlzdGl0ZW0+CisJCSAgPHBhcmE+CisJICAgICAgICAgICA8bWVudWNob2ljZT4KKwkJICAgICAgPHNob3J0Y3V0PgorCQkJPGtleWNvbWJvPjxrZXljYXA+Q3RybDwva2V5Y2FwPjxrZXljYXA+Vjwva2V5Y2FwPjwva2V5Y29tYm8+CisJCSAgICAgIDwvc2hvcnRjdXQ+CisJCSAgICAgIDxndWltZW51aXRlbT5QYXN0ZTwvZ3VpbWVudWl0ZW0+CisJCSAgICA8L21lbnVjaG9pY2U+CisJICAgICAgICAgICAgJm1kYXNoOyBUaGlzIHBhc3RlcyBhbnkgdGV4dCBvciBkYXRhIHdoaWNoIGlzIGNvcGllZCBpbnRvCisJICAgICAgICAgICAgdGhlIGJ1ZmZlci4KKwkgICAgICAgIDwvcGFyYT4KKwkJPC9saXN0aXRlbT4KKwkJPGxpc3RpdGVtPgorCQkgIDxwYXJhPgorCSAgICAgICAgICAgICA8Z3VpbWVudWl0ZW0+Q09NTUFORDEmaGVsbGlwOzwvZ3VpbWVudWl0ZW0+CisJICAgICAgICAgICAgICZtZGFzaDsgVGhpcyBvcGVucyB0aGUgPGludGVyZmFjZT5DT01NQU5EMTwvaW50ZXJmYWNlPgorCSAgICAgICAgICAgICBkaWFsb2csIHdoaWNoIGlzIHVzZWQgdG8gLi4uLgorCSAgICAgICAgICA8L3BhcmE+CisJCTwvbGlzdGl0ZW0+CisJCTxsaXN0aXRlbT4KKwkJICA8cGFyYT4KKwkgICAgICAgICAgICA8Z3VpbWVudWl0ZW0+Q09NTUFORDI8L2d1aW1lbnVpdGVtPgorCSAgICAgICAgICAgICZtZGFzaDsgVGhpcyAuLi4uCisJICAgICAgICAgIDwvcGFyYT4KKwkJPC9saXN0aXRlbT4KKwkgICAgICA8L2l0ZW1pemVkbGlzdD4KKwkgICAgPC9wYXJhPgorCSAgPC9saXN0aXRlbT4KKwk8L3Zhcmxpc3RlbnRyeT4KKwkKKworCTx2YXJsaXN0ZW50cnk+CisJICA8dGVybT48Z3VpbWVudT5TZXR0aW5nczwvZ3VpbWVudT48L3Rlcm0+CisJICA8bGlzdGl0ZW0+CisJICAgIDxwYXJhPgorCSAgIFRoaXMgbWVudSBjb250YWluczoKKwkgICA8aXRlbWl6ZWRsaXN0PgorCQk8bGlzdGl0ZW0+CisJCSAgPHBhcmE+CisJICAgICAgPGd1aW1lbnVpdGVtPlByZWZlcmVuY2VzJmhlbGxpcDs8L2d1aW1lbnVpdGVtPgorCSAgICAgICAmbWRhc2g7IFRoaXMgb3BlbnMgdGhlIDxsaW5rCisJICAgICAgIGxpbmtlbmQ9InByZWZzIj48aW50ZXJmYWNlPlByZWZlcmVuY2VzCisJICAgICAgIERpYWxvZzwvaW50ZXJmYWNlPjwvbGluaz4sIHdoaWNoIGFsbG93cyB5b3UgdG8gY29uZmlndXJlCisJICAgICAgIG1hbnkgc2V0dGluZ3MuCisJICAgICA8L3BhcmE+CisJCTwvbGlzdGl0ZW0+CisJCTxsaXN0aXRlbT4KKwkJICA8cGFyYT4KKwkgICAgICAgICAgICA8Z3VpbWVudWl0ZW0+Q09NTUFORDM8L2d1aW1lbnVpdGVtPiAmbWRhc2g7CisgICAgCSAgICAgICAgICAgIFRoaXMgY29tbWFuZCBkb2VzIHNvbWV0aGluZy4KKyAgICAJICAgIAkgICA8L3BhcmE+CisJCTwvbGlzdGl0ZW0+CisJICAgICAgPC9pdGVtaXplZGxpc3Q+CisJICAgIDwvcGFyYT4KKwkgIDwvbGlzdGl0ZW0+CisJPC92YXJsaXN0ZW50cnk+CisJCisJPHZhcmxpc3RlbnRyeT4KKwkgIDx0ZXJtPjxndWltZW51PkhlbHA8L2d1aW1lbnU+PC90ZXJtPgorCSAgPGxpc3RpdGVtPgorCSAgICA8cGFyYT4KKwkgICAgICBUaGlzIG1lbnUgY29udGFpbnM6CisJICAgICAgIDxpdGVtaXplZGxpc3Q+CisJCTxsaXN0aXRlbT4KKwkJICA8cGFyYT4KKwkgICAgICAgICAgICAgPGd1aW1lbnVpdGVtPk1hbnVhbDwvZ3VpbWVudWl0ZW0+ICZtZGFzaDsgVGhpcworICAgIAkgICAgICAgICAgICAgIG9wZW5zIHRoZSA8YXBwbGljYXRpb24+R05PTUUgSGVscAorICAgIAkgICAgICAgICAgICAgIEJyb3dzZXI8L2FwcGxpY2F0aW9uPiBhbmQgZGlzcGxheXMgdGhpcyBtYW51YWwuCisJICAgICAgICAgIDwvcGFyYT4KKwkJPC9saXN0aXRlbT4KKwkJCisJCTxsaXN0aXRlbT4KKwkJICA8cGFyYT4KKwkgICAgICAgICAgICA8Z3VpbWVudWl0ZW0+QWJvdXQ8L2d1aW1lbnVpdGVtPiAmbWRhc2g7IFRoaXMKKyAgICAJICAgICAgICAgICAgb3BlbnMgdGhlIDxpbnRlcmZhY2U+QWJvdXQ8L2ludGVyZmFjZT4gZGlhbG9nCisgICAgCSAgICAgICAgICAgIHdoaWNoIHNob3dzIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0CisgICAgCSAgICAgICAgICAgIDxhcHBsaWNhdGlvbj5NWS1HTk9NRS1BUFA8L2FwcGxpY2F0aW9uPiwgc3VjaCBhcworICAgIAkgICAgICAgICAgICB0aGUgYXV0aG9yJ3MgbmFtZSwgdGhlIGFwcGxpY2F0aW9uIHZlcnNpb24gbnVtYmVyLAorICAgIAkgICAgICAgICAgICBhbmQgdGhlIFVSTCBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgV2ViIHBhZ2UgaWYgb25lCisgICAgCSAgICAgICAgICAgIGV4aXN0cy4KKwkgICAgICAgICAgPC9wYXJhPgorCQk8L2xpc3RpdGVtPgorCSAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgICAgICAgPC9wYXJhPgorCSAgPC9saXN0aXRlbT4KKwk8L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvc2VjdDI+CisgIDwvc2VjdDE+CisKKworCisgPCEtLSA9PT09PT09PT09PT09IEN1c3RvbWl6YXRpb24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisKKyA8c2VjdDEgaWQ9InByZWZzIj4KKyAgPHRpdGxlPkN1c3RvbWl6YXRpb248L3RpdGxlPgorICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgYXBwbGljYXRpb24gc2V0dGluZ3MsIHNlbGVjdAorICAgPG1lbnVjaG9pY2U+CisgICAgPGd1aW1lbnU+U2V0dGluZ3M8L2d1aW1lbnU+CisgICAgPGd1aW1lbnVpdGVtPlByZWZlcmVuY2VzLi4uPC9ndWltZW51aXRlbT4KKyAgIDwvbWVudWNob2ljZT4uICBUaGlzIG9wZW5zIHRoZQorICAgPGludGVyZmFjZT5QcmVmZXJlbmNlczwvaW50ZXJmYWNlPiBkaWFsb2csIHNob3duIGluIDx4cmVmCisgICBsaW5rZW5kPSJwcmVmZXJlbmNlcy1maWciPi4KKyAgPC9wYXJhPgorCisgIDxmaWd1cmUgaWQ9InByZWZlcmVuY2VzLWZpZyI+CisgICA8dGl0bGU+UHJlZmVyZW5jZXMgRGlhbG9nPC90aXRsZT4KKyAgIDxzY3JlZW5zaG90PgorICAgIDxzY3JlZW5pbmZvPlByZWZlcmVuY2VzIERpYWxvZzwvc2NyZWVuaW5mbz4KKyAgICA8Z3JhcGhpYyBmaWxlcmVmPSJTQ1JFRU5TSE9UIiBmb3JtYXQ9InBuZyIKKyAgICAgc3JjY3JlZGl0PSJNRSI+CisgICAgPC9ncmFwaGljPgorICAgPC9zY3JlZW5zaG90PgorICA8L2ZpZ3VyZT4KKworICA8cGFyYT4KKyAgIFRoZSBwcm9wZXJ0aWVzIGluIHRoZSA8Z3VpbGFiZWw+UFJFRlNUQUJOQU1FPC9ndWlsYWJlbD4gdGFiIGFyZToKKyAgIAorICAgPCEtLW1hbnkgcGVvcGxlIHVzZSBpdGVtaXplZGxpc3RzIGluIGNhc2VzIGxpa2UgdGhpcy4gVmFyaWFibGVsaXN0cworICAgYXJlIG1vcmUgYXBwcm9wcmlhdGUgLS0+CisKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisJPHZhcmxpc3RlbnRyeT4KKwkgIDx0ZXJtPiA8Z3VpbGFiZWw+RGVmYXVsdCBUZXh0IFN0eWxlPC9ndWlsYWJlbD48L3Rlcm0+CisJICA8bGlzdGl0ZW0+CisJICAgIDxwYXJhPgorICAgICAgICAgICAgICBTZWxlY3QgdGhlIGRlZmF1bHQgdGV4dCBzdHlsZSBmb3Igc3RhdGVtZW50cyBpbiB5b3VyCisgICAgICAgICAgICAgIHByb29mLiAgWW91IGNhbiBzdGlsbCBjaGFuZ2UgdGhlIHN0eWxlIGZvciBpbmRpdmlkdWFsCisgICAgICAgICAgICAgIHByb29mcyBvciBzZWN0aW9ucyBvZiBhIHByb29mIGF0IGEgbGF0ZXIgZGF0ZS4KKyAgICAgICAgICAgIDwvcGFyYT4KKwkgIDwvbGlzdGl0ZW0+CisJPC92YXJsaXN0ZW50cnk+CisJPHZhcmxpc3RlbnRyeT4KKwkgIDx0ZXJtPihDb25maWd1cmF0aW9uIEl0ZW0gTGFiZWwpPC90ZXJtPgorCSAgPGxpc3RpdGVtPgorCSAgICA8cGFyYT4KKyAgICAgICAgICAgICAoRGVzY3JpcHRpb24gb2YgQ29uZmlndXJhdGlvbikKKyAgICAgICAgICAgICA8L3BhcmE+CisJICA8L2xpc3RpdGVtPgorCTwvdmFybGlzdGVudHJ5PgorCTx2YXJsaXN0ZW50cnk+CisJICA8dGVybT4oQ29uZmlndXJhdGlvbiBJdGVtIExhYmVsKTwvdGVybT4KKwkgIDxsaXN0aXRlbT4KKwkgICAgPHBhcmE+CisgICAgICAgICAgICAgKERlc2NyaXB0aW9uIG9mIENvbmZpZ3VyYXRpb24pCisgICAgICAgICAgICAgPC9wYXJhPgorCSAgPC9saXN0aXRlbT4KKwk8L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgcHJvcGVydGllcyBpbiB0aGUgPGd1aWxhYmVsPlNFQ09ORFRBQk5BTUU8L2d1aWxhYmVsPiB0YWIgYXJlOgorICAgICAgIDx2YXJpYWJsZWxpc3Q+CisJPHZhcmxpc3RlbnRyeT4KKwkgIDx0ZXJtPihDb25maWd1cmF0aW9uIEl0ZW0gTGFiZWwpPC90ZXJtPgorCSAgPGxpc3RpdGVtPgorCSAgICA8cGFyYT4KKyAgICAgICAgICAgICAoRGVzY3JpcHRpb24gb2YgQ29uZmlndXJhdGlvbikKKyAgICAgICAgICAgICA8L3BhcmE+CisJICA8L2xpc3RpdGVtPgorCTwvdmFybGlzdGVudHJ5PgorCTx2YXJsaXN0ZW50cnk+CisJICA8dGVybT4oQ29uZmlndXJhdGlvbiBJdGVtIExhYmVsKTwvdGVybT4KKwkgIDxsaXN0aXRlbT4KKwkgICAgPHBhcmE+CisgICAgICAgICAgICAgKERlc2NyaXB0aW9uIG9mIENvbmZpZ3VyYXRpb24pCisgICAgICAgICAgICAgPC9wYXJhPgorCSAgPC9saXN0aXRlbT4KKwk8L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgICBBZnRlciB5b3UgaGF2ZSBtYWRlIGFsbCB0aGUgY2hhbmdlcyB5b3Ugd2FudCwgY2xpY2sgb24KKyAgICA8Z3VpYnV0dG9uPk9LPC9ndWlidXR0b24+IHRvIGFwcGx5IHRoZSBjaGFuZ2VzIGFuZCBjbG9zZSB0aGUKKyAgICA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nLiBUbyBjYW5jZWwgdGhlIGNoYW5nZXMKKyAgICBhbmQgcmV0dXJuIHRvIHByZXZpb3VzIHZhbHVlcywgY2xpY2sgdGhlCisgICAgPGd1aWJ1dHRvbj5DbG9zZTwvZ3VpYnV0dG9uPiBidXR0b24uCisgIDwvcGFyYT4KKworIDwvc2VjdDE+CisKKworIDwhLS0gPT09PT09PT09PT09PSBWYXJpb3VzIFNlY3Rpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCisgPCEtLSBIZXJlIHlvdSBzaG91bGQgYWRkLCBpZiBuZWNlc3NhcnksIHNldmVyYWwgbW9yZSBzZWN0MSdzLAorIGRlc2NyaWJpbmcgb3RoZXIgd2luZG93cyAoYmVzaWRlcyB0aGUgbWFpbiBvbmUpLCBmaWxlIGZvcm1hdHMsCisgcHJlZmVyZW5jZXMgZGlhbG9ncywgIGV0Yy4gYXMgYXBwcm9wcmlhdGUuIFRyeSBub3QgdG8gbWFrZSBhbnkgb2YKKyB0aGVzZSBzZWN0aW9ucyB0b28gbG9uZy4gLS0+CisKKworIDwhLS0gPT09PT09PT09PT09PSBCdWdzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgPCEtLSBUaGlzIHNlY3Rpb24gc2hvdWxkIGRlc2NyaWJlIGtub3duIGJ1Z3MgYW5kIGxpbWl0YXRpb25zIG9mCisgICAgICB0aGUgcHJvZ3JhbSBpZiB0aGVyZSBhcmUgYW55IC0gcGxlYXNlIGJlIGZyYW5rIGFuZCBsaXN0IGFsbAorICAgICAgcHJvYmxlbXMgeW91IGtub3cgb2YuIC0tPgorIDxzZWN0MSBpZD0iYnVncyI+CisgIDx0aXRsZT5Lbm93biBCdWdzIGFuZCBMaW1pdGF0aW9uczwvdGl0bGU+CisgIDxwYXJhPgorICAgVGhpcyBhcHBsaWNhdGlvbiBoYXMgbm8ga25vd24gYnVncy4KKyAgPC9wYXJhPgorIDwvc2VjdDE+CisKKworPCEtLSA9PT09PT09PT09PT09IEF1dGhvcnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisKKyA8c2VjdDEgaWQ9ImF1dGhvcnMiPgorICA8dGl0bGU+QXV0aG9yczwvdGl0bGU+CisgIDxwYXJhPgorICAgPGFwcGxpY2F0aW9uPk1ZLUdOT01FLUFQUDwvYXBwbGljYXRpb24+IHdhcyB3cml0dGVuIGJ5IEdOT01FLUhBQ0tFUgorICAgKDxlbWFpbD5oYWNrZXJAZ25vbWUub3JnPC9lbWFpbD4pLiBUbyBmaW5kIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKKyAgIDxhcHBsaWNhdGlvbj5NWS1HTk9NRS1BUFA8L2FwcGxpY2F0aW9uPiwgcGxlYXNlIHZpc2l0IHRoZSA8dWxpbmsKKyAgIHVybD0iaHR0cDovL3d3dy5teS1nbm9tZS1hcHAub3JnIiB0eXBlPSJodHRwIj5NWS1HTk9NRS1BUFAgV2ViCisgICBwYWdlPC91bGluaz4uICBQbGVhc2Ugc2VuZCBhbGwgY29tbWVudHMsIHN1Z2dlc3Rpb25zLCBhbmQgYnVnCisgICByZXBvcnRzIHRvIHRoZSA8dWxpbmsgdXJsPSJodHRwOi8vYnVncy5nbm9tZS5vcmciIHR5cGU9Imh0dHAiPkdOT01FCisgICBidWcgdHJhY2tpbmcgZGF0YWJhc2U8L3VsaW5rPi4gKEluc3RydWN0aW9ucyBmb3Igc3VibWl0dGluZyBidWcKKyAgIHJlcG9ydHMgY2FuIGJlIGZvdW5kIDx1bGluaworICAgdXJsPSJodHRwOi8vYnVncy5nbm9tZS5vcmcvUmVwb3J0aW5nLmh0bWwiIHR5cGU9Imh0dHAiPgorICAgb24tbGluZTwvdWxpbms+LikgIFlvdSBjYW4gYWxzbyB1c2UgPGFwcGxpY2F0aW9uPkJ1ZyBSZXBvcnQKKyAgIFRvb2w8L2FwcGxpY2F0aW9uPiAoPGNvbW1hbmQ+YnVnLWJ1ZGR5PC9jb21tYW5kPiksIGF2YWlsYWJsZSBpbiB0aGUKKyAgIDxndWlzdWJtZW51PlV0aWxpdGllczwvZ3Vpc3VibWVudT4gc3VibWVudSBvZiA8Z3VpbWVudT5NYWluCisgICBNZW51PC9ndWltZW51PiwgZm9yIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoaXMgbWFudWFsIHdhcyB3cml0dGVuIGJ5IE1FCisgICAoPGVtYWlsPk1ZTkFNRUBNWUFERFJFU1M8L2VtYWlsPikuIFBsZWFzZSBzZW5kIGFsbCBjb21tZW50cyBhbmQKKyAgIHN1Z2dlc3Rpb25zIHJlZ2FyZGluZyB0aGlzIG1hbnVhbCB0byB0aGUgPHVsaW5rIHR5cGU9Imh0dHAiCisgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL3Byb2plY3RzL2dkcCI+R05PTUUgRG9jdW1lbnRhdGlvbiAKKyAgIFByb2plY3Q8L3VsaW5rPiBieSBzZW5kaW5nIGFuIGVtYWlsIHRvIAorICAgPGVtYWlsPmRvY3NAZ25vbWUub3JnPC9lbWFpbD4uIFlvdSBjYW4gYWxzbyBhZGQgeW91ciBjb21tZW50cyBvbmxpbmUgCisgICBieSB1c2luZyB0aGUgPHVsaW5rIHR5cGU9Imh0dHAiIAorICAgdXJsPSJodHRwOi8vd3d3Lmdub21lLm9yZy9nZHAvZG9jdGFibGUvIj5HTk9NRSBEb2N1bWVudGF0aW9uIFN0YXR1cworICAgVGFibGU8L3VsaW5rPi4KKyAgPC9wYXJhPgorCisgIDwhLS0gRm9yIHRyYW5zbGF0aW9uczogdW5jb21tZW50IHRoaXM6CisKKyAgPHBhcmE+CisgICBMYXRpbiB0cmFuc2xhdGlvbiB3YXMgZG9uZSBieSBNRQorICAgKDxlbWFpbD5NWU5BTUVATVlBRERSRVNTPC9lbWFpbD4pLiBQbGVhc2Ugc2VuZCBhbGwgIGNvbW1lbnRzICBhbmQKKyAgIHN1Z2dlc3Rpb25zIHJlZ2FyZGluZyB0aGlzIHRyYW5zbGF0aW9uIHRvIFNPTUVXSEVSRS4KKyAgPC9wYXJhPgorCisgIC0tPgorCisgPC9zZWN0MT4KKworCisgPCEtLSA9PT09PT09PT09PT09IEFwcGxpY2F0aW9uIExpY2Vuc2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisKKyA8c2VjdDEgaWQ9ImxpY2Vuc2UiPgorICA8dGl0bGU+TGljZW5zZTwvdGl0bGU+CisgIDxwYXJhPgorICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2U8L2NpdGV0aXRsZT4gYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247CisgICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcgorICAgdmVyc2lvbi4KKyAgPC9wYXJhPgorICA8cGFyYT4KKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIDxjaXRldGl0bGU+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2NpdGV0aXRsZT4gZm9yIG1vcmUgZGV0YWlscy4KKyAgPC9wYXJhPgorICA8cGFyYT4KKyAgIEEgY29weSBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvY2l0ZXRpdGxlPiBpcworICAgaW5jbHVkZWQgYXMgYW4gYXBwZW5kaXggdG8gdGhlIDxjaXRldGl0bGU+R05PTUUgVXNlcnMKKyAgIEd1aWRlPC9jaXRldGl0bGU+LiAgWW91IG1heSBhbHNvIG9idGFpbiBhIGNvcHkgb2YgdGhlCisgICA8Y2l0ZXRpdGxlPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9jaXRldGl0bGU+IGZyb20gdGhlIEZyZWUKKyAgIFNvZnR3YXJlIEZvdW5kYXRpb24gYnkgdmlzaXRpbmcgPHVsaW5rIHR5cGU9Imh0dHAiCisgICB1cmw9Imh0dHA6Ly93d3cuZnNmLm9yZyI+dGhlaXIgV2ViIHNpdGU8L3VsaW5rPiBvciBieSB3cml0aW5nIHRvCisgICA8YWRkcmVzcz4KKyAgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgICA8c3RyZWV0PjU5IFRlbXBsZSBQbGFjZTwvc3RyZWV0PiAtIFN1aXRlIDMzMAorICAgIDxjaXR5PkJvc3RvbjwvY2l0eT4sIDxzdGF0ZT5NQTwvc3RhdGU+IDxwb3N0Y29kZT4wMjExMS0xMzA3PC9wb3N0Y29kZT4KKyAgICA8Y291bnRyeT5VU0E8L2NvdW50cnk+CisgICA8L2FkZHJlc3M+CisgIDwvcGFyYT4KKyA8L3NlY3QxPgorPC9hcnRpY2xlPgorCisKKworCisKKworCisKKworXV0+CisKKworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QxPgorCis8IS0tICMjIyMjIyMgRG9jdW1lbnQgVGVtcGxhdGVzIHwgVGVtcGxhdGVzIDItMS54OiBBcHBsZXQgTWFudWFsICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDEgaWQ9InRlbXBsYXRlMi0xeCI+CisgICAgICA8dGl0bGU+VGVtcGxhdGUgMjogQXBwbGV0IE1hbnVhbCBGb3IgR05PTUUgMS54PC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgZm9sbG93aW5nIHRlbXBsYXRlcyBzaG91bGQgYmUgdXNlZCBmb3IgYWxsIGFwcGxldAorICAgICAgICBtYW51YWxzIGluIEdOT01FIDEueCByZWxlYXNlcy4gIFlvdSBjYW4gYWx3YXlzIGdldCB0aGUgbGF0ZXN0CisgICAgICAgIGNvcHkgb2YgdGhlc2UgdGVtcGxhdGVzIGZyb20gIDx1bGluayB0eXBlPSJodHRwIgorICAgICAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL3Byb2plY3RzL2dkcC90ZW1wbGF0ZXMuaHRtbCI+R0RQCisgICAgICAgIERvY3VtZW50YXRpb24gVGVtcGxhdGVzPC91bGluaz4uICBOb3RlIHRoYXQgdGhlIHRlbXBsYXRlCisgICAgICAgIGNvbnNpc3RzIG9mIHR3byBmaWxlczsgdGhlIGZpcnN0IGZpbGUgY2FsbHMgdGhlIHNlY29uZCBhcyBhbgorICAgICAgICBlbnRpdHkuIFlvdSBzaG91bGQgbmFtZSB0aGUgZmlyc3QgZmlsZQorICAgICAgICA8ZmlsZW5hbWU+PHJlcGxhY2VhYmxlPmFwcGxldG5hbWU8L3JlcGxhY2VhYmxlPi1hcHBsZXQuc2dtbDwvZmlsZW5hbWU+CisgICAgICAgIGFuZCB0aGUgc2Vjb25kIGZpbGUgc2hvdWxkIGJlIG5hbWVkCisgICAgICAgIDxmaWxlbmFtZT48cmVwbGFjZWFibGU+YXBwbGV0bmFtZTwvcmVwbGFjZWFibGU+LnNnbWw8L2ZpbGVuYW1lPiwKKyAgICAgICAgd2hlcmUKKyAgICAgICAgPGZpbGVuYW1lPjxyZXBsYWNlYWJsZT5hcHBsZXRuYW1lPC9yZXBsYWNlYWJsZT48L2ZpbGVuYW1lPiBpcworICAgICAgICB0aGUgbmFtZSBvZiB0aGUgYXBwbGV0LgorICAgICAgICA8cHJvZ3JhbWxpc3Rpbmc+CisKKzwhW0NEQVRBWworPCFET0NUWVBFIEFydGljbGUgUFVCTElDICItLy9HTk9NRS8vRFREIERvY0Jvb2sgUE5HIFZhcmlhbnQgVjEuMS8vRU4iWworIDwhZW50aXR5IEFQUExFVE5BTUUuc2dtbCBTWVNURU0gImFwcGxldF90ZW1wbGF0ZV8xLnNnbWwiPgorICAgICAgICA8IS0tICBUZW1wbGF0ZSBWZXJzaW9uOiAxLjAuMSAgKGRvIG5vdCByZW1vdmUgdGhpcyBsaW5lKSAtLT4KK10+CisKKzwhLS0gVGhpcyBpcyBhIEdOT01FIGRvY3VtZW50YXRpb24gdGVtcGxhdGUsIGRlc2lnbmVkIGJ5IHRoZSBHTk9NRQorICBEb2N1bWVudGF0aW9uIFByb2plY3QgVGVhbS4gUGxlYXNlIHVzZSBpdCBmb3Igd3JpdGluZyBHTk9NRQorICBkb2N1bWVudGF0aW9uLCBtYWtpbmcgb2J2aW91cyBjaGFuZ2VzLiBJbiBwYXJ0aWN1bGFyLCBhbGwgdGhlIHdvcmRzCisgIHdyaXR0ZW4gaW4gVVBQRVJDQVNFICh3aXRoIHRoZSBleGNlcHRpb24gb2YgR05PTUUpIHNob3VsZCBiZQorICByZXBsYWNlZC4gQXMgZm9yICJsZWdhbG5vdGljZSIsIHBsZWFzZSBsZWF2ZSB0aGUgcmVmZXJlbmNlCisgIHVuY2hhbmdlZCxtYWtlIHN1cmUgdG8gYWRkL3JlbW92ZSB0cmFkZW1hcmtzIHRvIHRoZSBsaXN0IGFzCisgIGFwcHJvcHJpYXRlIGZvciB5b3VyIGRvY3VtZW50LgorCisgIFBsZWFzZSBkb24ndCBmb3JnZXQgdG8gcmVtb3ZlIHRoZXNlIGNvbW1lbnRzIGluIHlvdXIgZmluYWwgZG9jdW1lbnRhdGlvbiwKKyAgdGhhbmtzIDstKS4KKy0tPgorCis8YXJ0aWNsZSBpZD0iaW5kZXgiPiA8IS0tIHBsZWFzZSBkbyBub3QgY2hhbmdlIHRoZSBpZCAtLT4KKworIDwhLS0gPT09PT09PT09PT09PSBEb2N1bWVudCBIZWFkZXIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgPGFydGhlYWRlcj4gCisgIDx0aXRsZT5BUFBMRVROQU1FIEFwcGxldDwvdGl0bGU+CisgIDxjb3B5cmlnaHQ+CisgICA8eWVhcj4yMDAwPC95ZWFyPgorICAgPGhvbGRlcj5ZT1VSRlVMTE5BTUU8L2hvbGRlcj4KKyAgPC9jb3B5cmlnaHQ+CisKKyAgPCEtLSB0cmFuc2xhdG9yczogdW5jb21tZW50IHRoaXM6CisKKyAgPGNvcHlyaWdodD4KKyAgIDx5ZWFyPjIwMDA8L3llYXI+CisgICA8aG9sZGVyPk1FLVRIRS1UUkFOU0xBVE9SIChMYXRpbiB0cmFuc2xhdGlvbik8L2hvbGRlcj4KKyAgPC9jb3B5cmlnaHQ+CisKKyAgIC0tPgorCisgIDwhLS0gZG8gbm90IHB1dCBhdXRob3JuYW1lIGluIHRoZSBoZWFkZXIgZXhjZXB0IGluIGNvcHlyaWdodCAtIHVzZQorICBzZWN0aW9uICJhdXRob3JzIiBiZWxvdyAtLT4KKworICA8bGVnYWxub3RpY2U+CisgICA8cGFyYT4KKyAgICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKKyAgICBkb2N1bWVudCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIDxjaXRldGl0bGU+R05VIEZyZWUgRG9jdW1lbnRhdGlvbgorICAgIExpY2Vuc2U8L2NpdGV0aXRsZT4sIFZlcnNpb24gMS4xIG9yIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZAorICAgIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gd2l0aCBubyBJbnZhcmlhbnQgU2VjdGlvbnMsIG5vCisgICAgRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKKyAgICBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L2NpdGV0aXRsZT4gZnJvbQorICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gYnkgdmlzaXRpbmcgPHVsaW5rIHR5cGU9Imh0dHAiCisgICAgdXJsPSJodHRwOi8vd3d3LmZzZi5vcmciPnRoZWlyIFdlYiBzaXRlPC91bGluaz4gb3IgYnkgd3JpdGluZyB0bzoKKyAgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIE1hbnkgb2YgdGhlIG5hbWVzIHVzZWQgYnkgY29tcGFuaWVzIHRvIGRpc3Rpbmd1aXNoIHRoZWlyIHByb2R1Y3RzIGFuZAorICAgIHNlcnZpY2VzIGFyZSBjbGFpbWVkIGFzIHRyYWRlbWFya3MuIFdoZXJlIHRob3NlIG5hbWVzIGFwcGVhciBpbiBhbnkKKyAgICBHTk9NRSBkb2N1bWVudGF0aW9uLCBhbmQgdGhvc2UgdHJhZGVtYXJrcyBhcmUgbWFkZSBhd2FyZSB0byB0aGUgbWVtYmVycworICAgIG9mIHRoZSBHTk9NRSBEb2N1bWVudGF0aW9uIFByb2plY3QsIHRoZSBuYW1lcyBoYXZlIGJlZW4gcHJpbnRlZCBpbiBjYXBzCisgICAgb3IgaW5pdGlhbCBjYXBzLgorICAgPC9wYXJhPgorICA8L2xlZ2Fsbm90aWNlPgorCisgIDxyZWxlYXNlaW5mbz4KKyAgIFRoaXMgaXMgdmVyc2lvbiBYWFggb2YgdGhlIEFQUExFVE5BTUUgYXBwbGV0IG1hbnVhbC4KKyAgPC9yZWxlYXNlaW5mbz4KKyA8L2FydGhlYWRlcj4KKworIDwhLS0gPT09PT09PT09PT09PSBEb2N1bWVudCBCb2R5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCisgJkFQUExFVE5BTUUuc2dtbDsKKworPC9hcnRpY2xlPgorCisKK11dPgorCisKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWworICAgICAgICA8IS0tICBUZW1wbGF0ZSBWZXJzaW9uOiAxLjAuMSAgKGRvIG5vdCByZW1vdmUgdGhpcyBsaW5lKSAtLT4KKworIDxzZWN0MSBpZD0iQVBQTEVUIj4KKyAgPHRpdGxlPkFQUExFVCBBcHBsZXQ8L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGFwcGxpY2F0aW9uPkFQUExFVDwvYXBwbGljYXRpb24+IGFwcGxldCwgc2hvd24gaW4gPHhyZWYKKyAgIGxpbmtlbmQ9IkFQUExFVGFwcGxldC1maWciPiwgYWxsb3dzIHlvdSB0byAmaGVsbGlwOy4gIFRvIGFkZCB0aGlzCisgICBhcHBsZXQgdG8gYSA8aW50ZXJmYWNlPlBhbmVsPC9pbnRlcmZhY2U+LCAKKyAgIHJpZ2h0LWNsaWNrIG9uIHRoZSA8aW50ZXJmYWNlPlBhbmVsPC9pbnRlcmZhY2U+IGFuZCBjaG9vc2UKKyAgIDxtZW51Y2hvaWNlPgorICAgIDxndWltZW51PlBhbmVsPC9ndWltZW51PgorICAgIDxndWlzdWJtZW51PkFkZCB0byBwYW5lbDwvZ3Vpc3VibWVudT4KKyAgICA8Z3Vpc3VibWVudT5BcHBsZXQ8L2d1aXN1Ym1lbnU+CisgICAgPGd1aXN1Ym1lbnU+U0VDVElPTjwvZ3Vpc3VibWVudT4KKyAgICA8Z3VpbWVudWl0ZW0+QVBQTEVUPC9ndWltZW51aXRlbT4KKyAgIDwvbWVudWNob2ljZT4uCisgIDwvcGFyYT4KKworICA8ZmlndXJlIGlkPSJBUFBMRVRhcHBsZXQtZmlnIj4KKyAgIDx0aXRsZT5BUFBMRVQgQXBwbGV0PC90aXRsZT4KKyAgIDxzY3JlZW5zaG90PgorICAgIDxzY3JlZW5pbmZvPkFQUExFVCBBcHBsZXQ8L3NjcmVlbmluZm8+CisgICAgPGdyYXBoaWMgZm9ybWF0PSJwbmciIGZpbGVyZWY9IkFQUExFVF9hcHBsZXQiIAorICAgIHNyY2NyZWRpdD0iWU9VUk5BTUUiPgorICAgIDwvZ3JhcGhpYz4KKyAgIDwvc2NyZWVuc2hvdD4KKyAgPC9maWd1cmU+CisKKyAgPCEtLSA9PT09PT09PT09PT09IFVzYWdlICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPHNlY3QyIGlkPSJBUFBMRVQtdXNhZ2UiPgorICAgPHRpdGxlPlVzYWdlPC90aXRsZT4KKyAgIDxwYXJhPgorICAgIChQbGFjZSBhIHNob3J0IGRlc2NyaXB0aW9uIG9mIGhvdyB0byB1c2UgdGhlIGFwcGxldCBoZXJlLikKKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgUmlnaHQtY2xpY2tpbmcgb24gdGhlIGFwcGxldCBicmluZ3MgdXAgYSBtZW51IGNvbnRhaW5pbmcgdGhlCisgICAgZm9sbG93aW5nIGl0ZW1zOgorICAgIDxpdGVtaXplZGxpc3Q+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGd1aW1lbnVpdGVtPlByb3BlcnRpZXMmaGVsbGlwOzwvZ3VpbWVudWl0ZW0+ICZtZGFzaDsKKyAgICAgICBvcGVucyB0aGUgPGxpbmsgbGlua2VuZD0iQVBQTEVULXByZWZzIj4KKyAgICAgICA8Z3VpbGFiZWw+UHJvcGVydGllczwvZ3VpbGFiZWw+PC9saW5rPiBkaWFsb2cuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGd1aW1lbnVpdGVtPkhlbHA8L2d1aW1lbnVpdGVtPiAmbWRhc2g7CisgICAgICAgZGlzcGxheXMgdGhpcyBkb2N1bWVudC4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8Z3VpbWVudWl0ZW0+QWJvdXQmaGVsbGlwOzwvZ3VpbWVudWl0ZW0+ICZtZGFzaDsKKyAgICAgICBzaG93cyBiYXNpYyBpbmZvcm1hdGlvbiBhYm91dCA8YXBwbGljYXRpb24+QVBQTEVUCisgICAgICAgQXBwbGV0PC9hcHBsaWNhdGlvbj4sIGluY2x1ZGluZyB0aGUgYXBwbGV0J3MgdmVyc2lvbiBhbmQgdGhlCisgICAgICAgYXV0aG9yJ3MgbmFtZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKworICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisKKyAgPCEtLSA9PT09PT09PT09PT09IEN1c3RvbWl6YXRpb24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDxzZWN0MiBpZD0iQVBQTEVULXByZWZzIj4KKyAgICA8dGl0bGU+Q3VzdG9taXphdGlvbjwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgICBZb3UgY2FuIGN1c3RvbWl6ZSA8YXBwbGljYXRpb24+QVBQTEVUPC9hcHBsaWNhdGlvbj4KKyAgICAgIGFwcGxldCBieSByaWdodC1jbGlja2luZyBvbiBpdCBhbmQgY2hvb3NpbmcKKyAgICAgIDxndWltZW51aXRlbT5Qcm9wZXJ0aWVzJmhlbGxpcDs8L2d1aW1lbnVpdGVtPi4gVGhpcyB3aWxsIG9wZW4gdGhlCisgICAgICA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nKHNob3duIGluIDx4cmVmCisgICAgICBsaW5rZW5kPSJBUFBMRVQtc2V0dGluZ3MtZmlnIj4pLCB3aGljaCBhbGxvd3MgeW91IHRvCisgICAgICBjaGFuZ2UgdmFyaW91cyBzZXR0aW5ncy4KKyAgICA8L3BhcmE+CisKKyAgICA8ZmlndXJlIGlkPSJBUFBMRVQtc2V0dGluZ3MtZmlnIj4KKyAgICAgPHRpdGxlPlByb3BlcnRpZXMgZGlhbG9nPC90aXRsZT4KKyAgICAgPHNjcmVlbnNob3Q+CisgICAgICA8c2NyZWVuaW5mbz5Qcm9wZXJ0aWVzIGRpYWxvZzwvc2NyZWVuaW5mbz4KKyAgICAgIDxncmFwaGljIGZvcm1hdD0icG5nIiBmaWxlcmVmPSJBUFBMRVRfc2V0dGluZ3MiCisgICAgICBzcmNjcmVkaXQ9IllPVVJOQU1FIj4KKyAgICAgIDwvZ3JhcGhpYz4KKyAgICAgPC9zY3JlZW5zaG90PgorICAgIDwvZmlndXJlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSBwcm9wZXJ0aWVzIGFyZToKKyAgICAgPGl0ZW1pemVkbGlzdD4KKworICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICAoQ29uZmlndXJhdGlvbiBJdGVtIExhYmVsKSAmbWRhc2g7IElmIHRoaXMgYnV0dG9uIGlzCisgICAgICAgIGNoZWNrZWQmaGVsbGlwOyhkZXNjcmlwdGlvbikKKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorCisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIChDb25maWd1cmF0aW9uIEl0ZW0gTGFiZWwpICZtZGFzaDsgU2VsZWN0aW5nIHRoaXMKKyAgICAgICAgYnV0dG9uJmhlbGxpcDsoZGVzY3JpcHRpb24pCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKworICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICAoQ29uZmlndXJhdGlvbiBJdGVtIExhYmVsKSAmbWRhc2g7IEVudGVyIHRoZSBuYW1lIG9mCisgICAgICAgICZoZWxsaXA7KGRlc2NyaXB0aW9uKQorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPiAKKyAgICAgIEFmdGVyIHlvdSBoYXZlIG1hZGUgYWxsIHRoZSBjaGFuZ2VzIHlvdSB3YW50LCBjbGljayBvbgorICAgICAgPGd1aWJ1dHRvbj5PSzwvZ3VpYnV0dG9uPiB0byBhcHBseSB0aGUgY2hhbmdlcyBhbmQgY2xvc2UgdGhlCisgICAgICA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nLiBUbyBjYW5jZWwgdGhlIGNoYW5nZXMKKyAgICAgIGFuZCByZXR1cm4gdG8gcHJldmlvdXMgdmFsdWVzLCBjbGljayB0aGUKKyAgICAgIDxndWlidXR0b24+Q2xvc2U8L2d1aWJ1dHRvbj4gYnV0dG9uLgorICAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKworCisgIDwhLS0gPT09PT09PT09PT09PSBCdWdzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDwhLS0gVGhpcyBzZWN0aW9uIHNob3VsZCBkZXNjcmliZSBrbm93biBidWdzIGFuZCBsaW1pdGF0aW9ucyBvZgorICAgICAgIHRoZSBwcm9ncmFtIGlmIHRoZXJlIGFyZSBhbnkgLSBwbGVhc2UgYmUgZnJhbmsgYW5kIGxpc3QgYWxsCisgICAgICAgcHJvYmxlbXMgeW91IGtub3cgb2YgLS0+CisgIDxzZWN0MiBpZD0iYnVncyI+CisgICA8dGl0bGU+S25vd24gQnVncyBhbmQgTGltaXRhdGlvbnM8L3RpdGxlPgorICAgPHBhcmE+CisgICAgVGhpcyBhcHBsZXQgaGFzIG5vIGtub3duIGJ1Z3MuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKworICA8IS0tID09PT09PT09PT09PT0gQXV0aG9ycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKworICA8c2VjdDIgaWQ9ImF1dGhvcnMiPgorICAgPHRpdGxlPkF1dGhvcnM8L3RpdGxlPgorICAgPHBhcmE+CisgICAgPGFwcGxpY2F0aW9uPkFQUExFVDwvYXBwbGljYXRpb24+IHdhcyB3cml0dGVuIGJ5IEdOT01FLUhBQ0tFUgorICAgICg8ZW1haWw+aGFja2VyQGdub21lLm9yZzwvZW1haWw+KS4gIFBsZWFzZSBzZW5kIGFsbCBjb21tZW50cywKKyAgICBzdWdnZXN0aW9ucywgYW5kIGJ1ZyAKKyAgICByZXBvcnRzIHRvIHRoZSA8dWxpbmsgdXJsPSJodHRwOi8vYnVncy5nbm9tZS5vcmciIHR5cGU9Imh0dHAiPkdOT01FCisgICAgYnVnIHRyYWNraW5nIGRhdGFiYXNlPC91bGluaz4uIChJbnN0cnVjdGlvbnMgZm9yIHN1Ym1pdHRpbmcgYnVnCisgICAgcmVwb3J0cyBjYW4gYmUgZm91bmQgPHVsaW5rCisgICAgdXJsPSJodHRwOi8vYnVncy5nbm9tZS5vcmcvUmVwb3J0aW5nLmh0bWwiIHR5cGU9Imh0dHAiPgorICAgIG9uLWxpbmU8L3VsaW5rPi4gIFlvdSBjYW4gYWxzbyB1c2UgPGFwcGxpY2F0aW9uPkJ1ZyBSZXBvcnQKKyAgICBUb29sPC9hcHBsaWNhdGlvbj4gKDxjb21tYW5kPmJ1Zy1idWRkeTwvY29tbWFuZD4pLCBhdmFpbGFibGUgaW4gdGhlCisgICAgPGd1aXN1Ym1lbnU+VXRpbGl0aWVzPC9ndWlzdWJtZW51PiBzdWJtZW51IG9mIDxndWltZW51Pk1haW4KKyAgICBNZW51PC9ndWltZW51PiwgZm9yIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoaXMgbWFudWFsIHdhcyB3cml0dGVuIGJ5IE1FCisgICAgKDxlbWFpbD5NWU5BTUVATVlBRERSRVNTPC9lbWFpbD4pLiBQbGVhc2Ugc2VuZCBhbGwgY29tbWVudHMgYW5kCisgICAgc3VnZ2VzdGlvbnMgcmVnYXJkaW5nIHRoaXMgbWFudWFsIHRvIHRoZSA8dWxpbmsgdHlwZT0iaHR0cCIKKyAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL3Byb2plY3RzL2dkcCI+R05PTUUgRG9jdW1lbnRhdGlvbgorICAgIFByb2plY3Q8L3VsaW5rPiAgYnkgc2VuZGluZyBhbiBlbWFpbCB0bworICAgIDxlbWFpbD5kb2NzQGdub21lLm9yZzwvZW1haWw+LiBZb3UgY2FuIGFsc28gc3VibWl0IGNvbW1lbnRzIG9ubGluZQorICAgIGJ5IHVzaW5nIHRoZSA8dWxpbmsgdHlwZT0iaHR0cCIKKyAgICB1cmw9Imh0dHA6Ly93d3cuZ25vbWUub3JnL2dkcC9kb2N0YWJsZS8iPkdOT01FIERvY3VtZW50YXRpb24KKyAgICBTdGF0dXMgVGFibGU8L3VsaW5rPi4KKyAgIDwvcGFyYT4KKworICAgPCEtLSBGb3IgdHJhbnNsYXRpb25zOiB1bmNvbW1lbnQgdGhpczoKKworICAgPHBhcmE+CisgICAgTGF0aW4gdHJhbnNsYXRpb24gd2FzIGRvbmUgYnkgTUUKKyAgICAoPGVtYWlsPk1ZTkFNRUBNWUFERFJFU1M8L2VtYWlsPikuIFBsZWFzZSBzZW5kIGFsbCAgY29tbWVudHMgIGFuZAorICAgIHN1Z2dlc3Rpb25zIHJlZ2FyZGluZyB0aGlzIHRyYW5zbGF0aW9uIHRvIFNPTUVXSEVSRS4KKyAgIDwvcGFyYT4KKworICAgLS0+CisKKyAgPC9zZWN0Mj4KKworCisgIDwhLS0gPT09PT09PT09PT09PSBBcHBsaWNhdGlvbiBMaWNlbnNlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCisgIDxzZWN0MiBpZD0ibGljZW5zZSI+CisgICA8dGl0bGU+TGljZW5zZTwvdGl0bGU+CisgICA8cGFyYT4KKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlPC9jaXRldGl0bGU+IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOworICAgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyCisgICAgdmVyc2lvbi4KKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgIDxjaXRldGl0bGU+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2NpdGV0aXRsZT4gZm9yIG1vcmUgZGV0YWlscy4KKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIEEgY29weSBvZiB0aGUgPGNpdGV0aXRsZT5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvY2l0ZXRpdGxlPiBpcworICAgIGluY2x1ZGVkIGFzIGFuIGFwcGVuZGl4IHRvIHRoZSA8Y2l0ZXRpdGxlPkdOT01FIFVzZXJzCisgICAgR3VpZGU8L2NpdGV0aXRsZT4uICBZb3UgbWF5IGFsc28gb2J0YWluIGEgY29weSBvZiB0aGUKKyAgICA8Y2l0ZXRpdGxlPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9jaXRldGl0bGU+IGZyb20gdGhlIEZyZWUKKyAgICBTb2Z0d2FyZSBGb3VuZGF0aW9uIGJ5IHZpc2l0aW5nIDx1bGluayB0eXBlPSJodHRwIgorICAgIHVybD0iaHR0cDovL3d3dy5mc2Yub3JnIj50aGVpciBXZWIgc2l0ZTwvdWxpbms+IG9yIGJ5IHdyaXRpbmcgdG8KKyAgICA8YWRkcmVzcz4KKyAgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICAgIDxzdHJlZXQ+NTkgVGVtcGxlIFBsYWNlPC9zdHJlZXQ+IC0gU3VpdGUgMzMwCisgICAgIDxjaXR5PkJvc3RvbjwvY2l0eT4sIDxzdGF0ZT5NQTwvc3RhdGU+IDxwb3N0Y29kZT4wMjExMS0xMzA3PC9wb3N0Y29kZT4KKyAgICAgPGNvdW50cnk+VVNBPC9jb3VudHJ5PgorICAgIDwvYWRkcmVzcz4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKworIDwvc2VjdDE+CisKKworCisKK11dPgorCisKKworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QxPgorCis8IS0tICMjIyMjIyMgRG9jdW1lbnQgVGVtcGxhdGVzIHwgVGVtcGxhdGVzIDItMi54OiBBcHBsZXQgTWFudWFsICMjIyMjIyMgLS0+CisKKyAgICA8c2VjdDEgaWQ9InRlbXBsYXRlMi0yeCI+CisgICAgICA8dGl0bGU+VGVtcGxhdGUgMjogQXBwbGV0IE1hbnVhbCBGb3IgR05PTUUgMi54PC90aXRsZT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgZm9sbG93aW5nIHRlbXBsYXRlcyBzaG91bGQgYmUgdXNlZCBmb3IgYWxsIGFwcGxldAorICAgICAgICBtYW51YWxzIGluIEdOT01FIDIueCByZWxlYXNlcy4gIFlvdSBjYW4gYWx3YXlzIGdldCB0aGUgbGF0ZXN0CisgICAgICAgIGNvcHkgb2YgdGhlc2UgdGVtcGxhdGVzIGZyb20gIDx1bGluayB0eXBlPSJodHRwIgorICAgICAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL3Byb2plY3RzL2dkcC90ZW1wbGF0ZXMuaHRtbCI+R0RQCisgICAgICAgIERvY3VtZW50YXRpb24gVGVtcGxhdGVzPC91bGluaz4uCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgdGVtcGxhdGUgY29uc2lzdHMgb2YgdHdvIGZpbGVzLiAgVGhlIGZpcnN0IGZpbGUKKyAgICAgICAgaXMgYW4gaW50cm9kdWN0b3J5IGNoYXB0ZXIuIFlvdSBzaG91bGQgbm90IG1vZGlmeSB0aGlzCisgICAgICAgIGNoYXB0ZXIuIFRoZSBzZWNvbmQgZmlsZSBpcyB0aGUgYWN0dWFsIGFwcGxldCBkb2N1bWVudCwgd2hpY2gKKyAgICAgICAgeW91IHNob3VsZCBtb2RpZnkgdG8gZGVzY3JpYmUgdGhlIGFwcGxldCB5b3UgYXJlIGRvY3VtZW50aW5nLgorICAgICAgICBZb3UgY2FuIG5hbWUgdGhlIGZpcnN0IGZpbGUgd2hhdGV2ZXIgeW91IGxpa2UsIHN1Y2ggYXMKKyAgICAgICAgPGZpbGVuYW1lPmdub21lLWFwcGxldHMuc2dtbDwvZmlsZW5hbWU+LiAgTmFtZSB0aGUgc2Vjb25kIGZpbGUKKyAgICAgICAgYWNjb3JkaW5nIHRvIHRoZSBhcHBsZXQncyBuYW1lOgorICAgICAgICA8ZmlsZW5hbWU+PHJlcGxhY2VhYmxlPmFwcGxldG5hbWU8L3JlcGxhY2VhYmxlPi1hcHBsZXQuc2dtbDwvZmlsZW5hbWU+LgorICAgICAgICBNYWtlIHN1cmUgeW91IHVwZGF0ZSB0aGUgZW50aXR5CisgICAgICAgIGF0IHRoZSB0b3Agb2YgdGhlIHNoZWxsIGRvY3VtZW50IHRvIHJlZmxlY3QgdGhlIG5ldyBuYW1lIG9mCisgICAgICAgIHRoZSBhcHBsZXQgZG9jdW1lbnQuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbCis8IURPQ1RZUEUgYm9vayBQVUJMSUMgIi0vL0dOT01FLy9EVEQgRG9jQm9vayBQTkcgVmFyaWFudCBWMS4xLy9FTiJbCis8IUVOVElUWSBURU1QTEFURS1BUFBMRVQgU1lTVEVNICJnbm9tZS1hcHBsZXQtdGVtcGxhdGUuc2dtbC5wYXJ0Ij4KKworXT4KKworPGJvb2sgaWQ9Imdub21lLWFwcGxldHMiPgorCisgPGJvb2tpbmZvPgorICA8dGl0bGU+R05PTUUgQXBwbGV0czwvdGl0bGU+CisgIDxhdXRob3Jncm91cD4KKyAgIDxhdXRob3I+PGZpcnN0bmFtZT5UZWxzYTwvZmlyc3RuYW1lPjxzdXJuYW1lPkd3eW5uZTwvc3VybmFtZT48L2F1dGhvcj4KKyAgIDxhdXRob3I+PGZpcnN0bmFtZT5Kb2huPC9maXJzdG5hbWU+PHN1cm5hbWU+RmxlY2s8L3N1cm5hbWU+PC9hdXRob3I+CisgICA8YXV0aG9yPjxmaXJzdG5hbWU+RGF2aWQ8L2ZpcnN0bmFtZT48c3VybmFtZT5NYXNvbjwvc3VybmFtZT4KKyAgICAgIDxhZmZpbGlhdGlvbj48b3JnbmFtZT5SZWQgSGF0LCBJbmMuPC9vcmduYW1lPjwvYWZmaWxpYXRpb24+CisgICAgPC9hdXRob3I+CisgICAgPGF1dGhvcj48Zmlyc3RuYW1lPkRhbjwvZmlyc3RuYW1lPjxzdXJuYW1lPk11ZXRoPC9zdXJuYW1lPjwvYXV0aG9yPgorICAgIDxhdXRob3I+PGZpcnN0bmFtZT5BbGV4YW5kZXI8L2ZpcnN0bmFtZT48c3VybmFtZT5LaXJpbGxvdjwvc3VybmFtZT48L2F1dGhvcj4KKyAgPC9hdXRob3Jncm91cD4KKyAgPGVkaXRpb24+R05PTUUgQXBwbGV0cyB2ZXJzaW9uIDAuMSBmb3IgR05PTUUgMS4xLjU8L2VkaXRpb24+CisgIDxwdWJkYXRlPjIwMDA8L3B1YmRhdGU+CisgIDxjb3B5cmlnaHQ+CisgICA8eWVhcj4yMDAwPC95ZWFyPgorICAgPGhvbGRlcj5UZWxzYSBHd3lubmUsIEpvaG4gRmxlY2ssIFJlZCBIYXQgSW5jLiwgRGFuIE11ZXRoLCBhbmQKKyAgICBBbGV4YW5kZXIgS2lyaWxsb3Y8L2hvbGRlcj4gCisgIDwvY29weXJpZ2h0PgorICA8bGVnYWxub3RpY2U+CisgICA8cGFyYT4KKyAgICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gbWFrZSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhpcworICAgIG1hbnVhbCBwcm92aWRlZCB0aGUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcmUKKyAgICBwcmVzZXJ2ZWQgb24gYWxsIGNvcGllcy4KKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mCisgICAgdGhpcyBtYW51YWwgdW5kZXIgdGhlIGNvbmRpdGlvbnMgZm9yIHZlcmJhdGltIGNvcHlpbmcsIHByb3ZpZGVkIHRoYXQKKyAgICB0aGUgZW50aXJlIHJlc3VsdGluZyBkZXJpdmVkIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIGEKKyAgICBwZXJtaXNzaW9uIG5vdGljZSBpZGVudGljYWwgdG8gdGhpcyBvbmUuCisgICA8L3BhcmE+CisgICA8cGFyYT4KKyAgICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB0cmFuc2xhdGlvbnMgb2YgdGhpcworICAgIG1hbnVhbCBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UsIHVuZGVyIHRoZSBhYm92ZSBjb25kaXRpb25zIGZvciBtb2RpZmllZAorICAgIHZlcnNpb25zLCBleGNlcHQgdGhhdCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIG1heSBiZSBzdGF0ZWQgaW4gYQorICAgIHRyYW5zbGF0aW9uIGFwcHJvdmVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgICA8L3BhcmE+CisgICA8cGFyYT4KKyAgICBNYW55IG9mIHRoZSBuYW1lcyB1c2VkIGJ5IGNvbXBhbmllcyB0byBkaXN0aW5ndWlzaCB0aGVpciBwcm9kdWN0cyBhbmQKKyAgICBzZXJ2aWNlcyBhcmUgY2xhaW1lZCBhcyB0cmFkZW1hcmtzLiBXaGVyZSB0aG9zZSBuYW1lcyBhcHBlYXIgaW4gYW55CisgICAgR05PTUUgZG9jdW1lbnRhdGlvbiwgYW5kIHRob3NlIHRyYWRlbWFya3MgYXJlIG1hZGUgYXdhcmUgdG8gdGhlIG1lbWJlcnMKKyAgICBvZiB0aGUgR05PTUUgRG9jdW1lbnRhdGlvbiBQcm9qZWN0LCB0aGUgbmFtZXMgaGF2ZSBiZWVuIHByaW50ZWQgaW4gY2FwcworICAgIG9yIGluaXRpYWwgY2Fwcy4KKyAgIDwvcGFyYT4KKyAgPC9sZWdhbG5vdGljZT4KKyA8L2Jvb2tpbmZvPgorCisgPCEtLSAjIyMjIEludHJvZHVjdGlvbiAjIyMjIyMgLS0+CisgPGNoYXB0ZXIgaWQ9ImFwcGxldHMtaW50cm8iPgorICA8dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT4gCisKKyAgPCEtLSAjIyMjIEludHJvIHwgV2hhdCBBcmUgQXBwbGV0cz8gIyMjIyMjIC0tPgorICA8c2VjdDEgaWQ9ImFwcGxldHMtd2hhdC1hcmUiPgorICAgPHRpdGxlPldoYXQgQXJlIEFwcGxldHM/PC90aXRsZT4gCisgICA8cGFyYT4KKyAgICBBcHBsZXRzIGFyZSBvbmUgb2YgdGhlIG1vc3QgcG9wdWxhciBhbmQgdXNlZnVsIG9iamVjdHMgeW91IGNhbiBhZGQKKyAgICB0byB5b3VyIDxpbnRlcmZhY2U+UGFuZWw8L2ludGVyZmFjZT4gdG8gY3VzdG9taXplIHlvdXIgZGVza3RvcC4KKyAgICBBbiBhcHBsZXQgaXMgYSBzbWFsbCBhcHBsaWNhdGlvbiB3aGljaCBydW5zIGluc2lkZSBhIHNtYWxsIGFyZWEgb2YKKyAgICB5b3VyIDxpbnRlcmZhY2U+UGFuZWw8L2ludGVyZmFjZT4uIEFwcGxldHMgaGF2ZSBiZWVuIHdyaXR0ZW4gZm9yCisgICAgYSB3aWRlIHJhbmdlIG9mIHB1cnBvc2VzLiAgU29tZSBhcmUgdmVyeSBwb3dlcmZ1bCBpbnRlcmFjdGl2ZQorICAgIHRvb2xzLCBzdWNoIGFzIHRoZSA8YXBwbGljYXRpb24+VGFza2xpc3Q8L2FwcGxpY2F0aW9uPiBBcHBsZXQKKyAgICB3aGljaCBhbGxvd3MgeW91IHRvIGVhc2lseSAKKyAgICBjb250cm9sIGFsbCBvZiB5b3VyIG1haW4gYXBwbGljYXRpb25zLiAgT3RoZXJzIGFyZSBzaW1wbGUgc3lzdGVtCisgICAgbW9uaXRvcnMsIGRpc3BsYXlpbmcgaW5mb3JtYXRpb24gc3VjaCBhcyB0aGUgYW1vdW50IG9mIHBvd2VyIGxlZnQKKyAgICBpbiB0aGUgYmF0dGVyeSBvbiB5b3VyIGxhcHRvcCAoc2VlIDxhcHBsaWNhdGlvbj5CYXR0ZXJ5IENoYXJnZQorICAgIE1vbml0b3I8L2FwcGxpY2F0aW9uPikgb3Igd2VhdGhlcgorICAgIGluZm9ybWF0aW9uKHNlZSA8YXBwbGljYXRpb24+R05PTUUgV2VhdGhlcjwvYXBwbGljYXRpb24+KS4gIFNvbWUKKyAgICBhcmUgc2ltcGx5IGZvciBhbXVzZW1lbnQoc2VlIDxhcHBsaWNhdGlvbj5GaXNoPC9hcHBsaWNhdGlvbj4pLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBBcHBsZXRzIGFyZSBzaW1pbGFyIHRvIHN3YWxsb3dlZCBhcHBsaWNhdGlvbnMgaW4gdGhhdCBib3RoIG9mIHRoZW0KKyAgICByZXNpZGUgd2l0aGluIHRoZSA8aW50ZXJmYWNlPlBhbmVsPC9pbnRlcmZhY2U+LiBIb3dldmVyLCAKKyAgICBzd2FsbG93ZWQgYXBwbGljYXRpb25zIGFyZSBnZW5lcmFsbHkgYXBwbGljYXRpb25zIHdoaWNoIHdlcmUKKyAgICBub3QgZGVzaWduZWQgdG8gcnVuIHdpdGhpbiB0aGUgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPi4KKyAgICBUeXBpY2FsbHkgb25lIHdpbGwgc3dhbGxvdyBhbiBhcHBsaWNhdGlvbiB3aGljaCBhbHJlYWR5IGV4aXN0cyBpbgorICAgIHRoZSBtYWluIDxpbnRlcmZhY2U+ZGVza3RvcDwvaW50ZXJmYWNlPiBhcmVhLCBwdXR0aW5nIGl0IGludG8geW91cgorICAgIDxpbnRlcmZhY2U+UGFuZWw8L2ludGVyZmFjZT4uICBUaGUgYXBwbGljYXRpb24gd2lsbCBjb250aW51ZSB0bworICAgIHJ1biBpbiB0aGUgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPiB1bnRpbCB5b3UgZW5kIHRoZQorICAgIGFwcGxpY2F0aW9uIG9yICB1bnN3YWxsb3cgaXQsICBwbGFjaW5nIGl0IGJhY2sgb250byB0aGUgbWFpbiBwYXJ0IG9mCisgICAgeW91ciBkZXNrdG9wIHdoZW4geW91IG5lZWQgdG8uCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxmaWd1cmUgaWQ9ImV4YW1wbGUtYXBwbGV0cy1maWciPgorICAgICA8dGl0bGU+RXhhbXBsZSBBcHBsZXRzPC90aXRsZT4KKyAgICAgPHNjcmVlbnNob3Q+CisgICAgICA8c2NyZWVuaW5mbz5FeGFtcGxlIEFwcGxldHM8L3NjcmVlbmluZm8+CisgICAgICAgPGdyYXBoaWMgZmlsZXJlZj0iZXhhbXBsZV9hcHBsZXRzIiBmb3JtYXQ9InBuZyIKKyAgICAgICBzcmNjcmVkaXQ9Im11ZXQiPgorICAgICAgIDwvZ3JhcGhpYz4KKyAgICAgPC9zY3JlZW5zaG90PgorICAgIDwvZmlndXJlPgorICAgIFNldmVyYWwgZXhhbXBsZSBhcHBsZXRzIGFyZSBzaG93biBpbiA8eHJlZgorICAgIGxpbmtlbmQ9ImV4YW1wbGUtYXBwbGV0cy1maWciPi4gIEZyb20gbGVmdCB0byByaWdodCwgdGhleSBhcmU6ICgxKQorICAgIDxhcHBsaWNhdGlvbj5NaXhlciBBcHBsZXQ8L2FwcGxpY2F0aW9uPiwgd2hpY2ggYWxsb3dzIHlvdSB0byB0dXJuCisgICAgb24vb2ZmIHNvdW5kIGFuZCBjb250cm9sIGl0cyB2b2x1bWUgYnkgY2xpY2tpbmcgb24gdGhlIGFwcGxldC4gICgyKQorICAgIDxhcHBsaWNhdGlvbj5Tb3VuZCBNb25pdG9yPC9hcHBsaWNhdGlvbj4gQXBwbGV0LCB3aGljaCBkaXNwbGF5cworICAgIHRoZSBjdXJyZW50IHZvbHVtZSBvZiBzb3VuZCBiZWluZyBwbGF5ZWQgYW5kIGFsbG93cyB5b3UgdG8gY29udHJvbAorICAgIHZhcmlvdXMgc291bmQgZmVhdHVyZXMuICAoMykgPGFwcGxpY2F0aW9uPkdUQ0Q8L2FwcGxpY2F0aW9uPgorICAgIEFwcGxldCwgYSBDRCBwbGF5ZXIgd2hpY2ggaGFzIGFsbCBpdHMgY29udHJvbHMKKyAgICBhdmFpbGFibGUgaW4gdGhlIGFwcGxldCBhbmQgZGlzcGxheXMgdGhlIHRyYWNrIGFuZCB0aW1lLiAoNCkKKyAgICA8YXBwbGljYXRpb24+RHJpdmUgTW91bnQ8L2FwcGxpY2F0aW9uPiBBcHBsZXQsIHVzZWQgdG8gbW91bnQgYW5kCisgICAgdW5tb3VudCBkcml2ZXMgd2l0aCBhIHNpbmdsZSBjbGljayBvZiB0aGUgbW91c2UuICg1KQorICAgIDxhcHBsaWNhdGlvbj5EZXNrIEd1aWRlPC9hcHBsaWNhdGlvbj4gd2hpY2ggYWxsb3dzIHlvdSB0byB2aWV3CisgICAgYW5kIGNvbnRyb2wgbXVsdGlwbGUgdmlydHVhbCBzY3JlZW5zLiAoNikKKyAgICA8YXBwbGljYXRpb24+VGFza2xpc3Q8L2FwcGxpY2F0aW9uPiBBcHBsZXQgd2hpY2ggYWxsb3dzIHlvdSB0bworICAgIGNvbnRyb2wgeW91ciB2YXJpb3VzIHdpbmRvd3MgYW5kIGFwcGxpY2F0aW9ucy4KKyAgIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIFRoZXJlIGFyZSBtYW55IG90aGVyIGFwcGxldHMgdG8gY2hvb3NlIGZyb20uICBUaGUgcmVzdCBvZiB0aGlzCisgICAgY2hhcHRlciB3aWxsIGV4cGxhaW4gdGhlIGJhc2ljIGluZm9ybWF0aW9uIHRvIGdldCB5b3Ugc3RhcnRlZAorICAgIGFkZGluZywgbW92aW5nLCBhbmQgcmVtb3ZpbmcgYXBwbGV0cyBmcm9tIHlvdXIKKyAgICA8aW50ZXJmYWNlPlBhbmVsczwvaW50ZXJmYWNlPiBhbmQgdXNpbmcgdGhlbS4gVGhlIGZvbGxvd2luZworICAgIGNoYXB0ZXJzIGdvIHRocm91Z2ggZWFjaCBvZiB0aGUgc3RhbmRhcmQgR05PTUUgYXBwbGV0cyBkZXNjcmliaW5nCisgICAgdGhlbSBpbiBkZXRhaWwuICBUaGVyZSBhcmUgYWxzbyBhZGRpdGlvbmFsIGFwcGxldHMgd2hpY2ggY2FuIGJlCisgICAgZG93bmxvYWRlZCBvZmYgdGhlIFdlYi4gICBTZWUgPHVsaW5rIHR5cGU9Imh0dHAiCisgICAgIHVybD0iaHR0cDovL3d3dy5nbm9tZS5vcmcvYXBwbGlzdC9saXN0LW1hcnRpbi5waHRtbCI+VGhlIEdOT01FCisgICAgU29mdHdhcmUgTWFwPC91bGluaz4gZm9yIGxpc3RzIG9mIGFkZGl0aW9uYWwgR05PTUUgYXBwbGljYXRpb25zCisgICAgYW5kIGFwcGxldHMuIAorICAgPC9wYXJhPgorICAgPHBhcmE+CisgICAgQXMgeW91IHJlYWQgdGhyb3VnaCB0aGUgdGhlIHJlc3Qgb2YgdGhpcyBjaGFwdGVyLCB5b3Ugc2hvdWxkIHRyeQorICAgIGFkZGluZyBhbmQgcmVtb3ZpbmcgYXBwbGV0cyBmcm9tIHlvdXIgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPiBhbmQKKyAgICBleHBlcmltZW50IHdpdGggdGhlbSBmcmVlbHkuICAKKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKworICA8IS0tICMjIyMgSW50cm8gfCBBZGRpbmcsIE1vdmluZywgYW5kIFJlbW92aW5nIEFwcGxldHMgIyMjIyMjIC0tPgorICA8c2VjdDEgaWQ9ImFwcGxldC1hZGQtbW92ZS1yZXBsYWNlIj4KKyAgIDx0aXRsZT5BZGRpbmcsIE1vdmluZywgYW5kIFJlbW92aW5nIEFwcGxldHM8L3RpdGxlPgorCisgICA8c2VjdDIgaWQ9ImFkZGluZy1hcHBsZXRzIj4gICAKKyAgICA8dGl0bGU+QWRkaW5nIEFwcGxldHMgdG8gYSBQYW5lbDwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgIFRvIGFkZCBhbiBhcHBsZXQgdG8gYSA8aW50ZXJmYWNlPlBhbmVsPC9pbnRlcmZhY2U+LCByaWdodC1jbGljaworICAgICBvbiB0aGUgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPiBhbmQgc2VsZWN0IAorICAgICA8bWVudWNob2ljZT48Z3VpbWVudT5QYW5lbDwvZ3VpbWVudT48Z3Vpc3VibWVudT5BZGQgdG8gcGFuZWw8L2d1aXN1Ym1lbnU+CisgICAgIDxndWlzdWJtZW51PkFwcGxldDwvZ3Vpc3VibWVudT48L21lbnVjaG9pY2U+LiBUaGlzIHdpbGwgc2hvdyB5b3UKKyAgICAgdGhlIG1lbnUgb2YgYWxsIHRoZSBhcHBsZXRzIG9uIHlvdXIgc3lzdGVtLCBkaXZpZGVkIGludG8KKyAgICAgY2F0ZWdvcmllcy4gQ2hvb3NpbmcgYW55IGFwcGxldCBmcm9tIHRoaXMgbWVudSB3aWxsIGFkZCBpdCB0byB0aGUKKyAgICAgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPi4KKyAgICA8L3BhcmE+CisgICA8L3NlY3QyPgorCisgICA8c2VjdDIgaWQ9Im1vdmluZy1hcHBsZXRzIj4KKyAgICA8dGl0bGU+TW92aW5nIEFwcGxldHMgSW4gb3IgQmV0d2VlbiBQYW5lbHM8L3RpdGxlPgorICAgIDxwYXJhPgorICAgICBJdCBpcyBlYXN5IHRvIG1vdmUgYXBwbGV0cyBpbiBhIDxpbnRlcmZhY2U+UGFuZWw8L2ludGVyZmFjZT4gb3IKKyAgICAgYmV0d2VlbiB0d28gPGludGVyZmFjZT5QYW5lbHM8L2ludGVyZmFjZT4uIElmIHlvdSBoYXZlIGEKKyAgICAgdGhyZWUtYnV0dG9uIG1vdXNlLCBqdXN0IG1vdmUgdGhlIG1vdXNlIG92ZXIgdGhlIGFwcGxldCwgZGVwcmVzcworICAgICB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiBhbmQgZHJhZyB0aGUgYXBwbGV0IHRvIGl0cyBuZXcgbG9jYXRpb24sCisgICAgIHJlbGVhc2luZyB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiB3aGVuIHlvdSBhcmUgZmluaXNoZWQuICBOb3RlCisgICAgIHRoYXQgeW91IGNhbiBkcmFnIGFwcGxldHMgd2l0aGluIGEgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPgorICAgICBvciBiZXR3ZWVuIHR3byA8aW50ZXJmYWNlPlBhbmVsczwvaW50ZXJmYWNlPiB0aGlzIHdheS4gSWYgeW91CisgICAgIGRvbid0IGhhdmUgYSB0aHJlZS1idXR0b24gbW91c2UsIGp1c3QgCisgICAgIHJpZ2h0LWNsaWNrIG9uIHRoZSBhcHBsZXQgYW5kIGNob29zZQorICAgICA8Z3VpbWVudWl0ZW0+TW92ZTwvZ3VpbWVudWl0ZW0+LiBUaGUgY3Vyc29yIHdpbGwgdHVybiBpbnRvIGEKKyAgICAgY3Jvc3MgYW5kIHRoZSBhcHBsZXQgd2lsbCBtb3ZlIHdpdGggeW91ciBtb3VzZSB1bnRpbCB5b3UgcHJlc3MKKyAgICAgYW55IG1vdXNlIGJ1dHRvbiB0byBpbmRpY2F0ZSB5b3UgYXJlIGZpbmlzaGVkIG1vdmluZyBpdC4KKyAgICAgSWYsIGluIHRoZSBjb3Vyc2Ugb2YgdGhpcyBtb3ZlbWVudCwgaXQgaGl0cworICAgICBvdGhlciBvYmplY3RzLCB0aGUgYmVoYXZpb3IgZGVwZW5kcyBvbiB0aGUgZ2xvYmFsIHByZWZlcmVuY2VzCisgICAgIHlvdSBoYXZlIHNldCBmb3IgeW91ciA8aW50ZXJmYWNlPlBhbmVsczwvaW50ZXJmYWNlPiBpbiB0aGUKKyAgICAgPGFwcGxpY2F0aW9uPkdOT01FIENvbnRyb2wgQ2VudGVyPC9hcHBsaWNhdGlvbj46IHRoZSBhcHBsZXQgeW91IGFyZQorICAgICBtb3ZpbmcgY2FuIHN3aXRjaCBwbGFjZXMgd2l0aCBvdGhlciBvYmplY3RzLCAicHVzaCIgYWxsIG9iamVjdHMKKyAgICAgaXQgbWVldHMsIG9yICJqdW1wIiBvdmVyIGFsbCBvdGhlciBvYmplY3RzIHdpdGhvdXQgZGlzdHVyYmluZworICAgICB0aGVtLiBZb3UgY2FuIGFsc28gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3IgYnkgaG9sZGluZworICAgICA8a2V5Y2FwPlNoaWZ0PC9rZXljYXA+IGJ1dHRvbiAoZm9yICJwdXNoIiBtb2RlKSwKKyAgICAgPGtleWNhcD5DdHJsPC9rZXljYXA+IChmb3IgInN3aXRjaGVkIiBtb2RlKSwgb3IKKyAgICAgPGtleWNhcD5BbHQ8L2tleWNhcD4gKGZvciAiZnJlZSIgbW9kZSwgaS5lLiBqdW1waW5nIG90aGVyIG90aGVyCisgICAgIG9iamVjdHMgd2l0aG91dCBkaXN0dXJiaW5nIHRoZW0pIGJ1dHRvbiB3aGlsZSBkcmFnZ2luZy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIFRvIGNoYW5nZSB0aGUgZ2xvYmFsIFBhbmVsIHByZWZlcmVuY2VzLCByaWdodC1jbGljayBvbiBhbnkgYXBwbGV0CisgICAgIG9yIDxpbnRlcmZhY2U+UGFuZWw8L2ludGVyZmFjZT4gYW5kIHNlbGVjdCAKKyAgICAgPG1lbnVjaG9pY2U+CisgICAgICA8Z3VpbWVudT5QYW5lbDwvZ3VpbWVudT4KKyAgICAgIDxndWltZW51aXRlbT5HbG9iYWwgUHJlZmVyZW5jZXMuLi48L2d1aW1lbnVpdGVtPgorICAgICA8L21lbnVjaG9pY2U+LgorICAgICBUaGUgPGd1aWxhYmVsPkRlZmF1bHQgbW92ZW1lbnQgbW9kZTwvZ3VpbGFiZWw+IGlzIHNldCB1bmRlciB0aGUKKyAgICAgPGd1aWxhYmVsPkFwcGxldHM8L2d1aWxhYmVsPiB0YWIuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKworICAgPHNlY3QyIGlkPSJyZW1vdmluZy1hcHBsZXRzIj4KKyAgICA8dGl0bGU+UmVtb3ZpbmcgQXBwbGV0cyBmcm9tIGEgUGFuZWw8L3RpdGxlPiAKKyAgICA8cGFyYT4gIAorICAgICBUbyByZW1vdmUgYW4gYXBwbGV0IGZyb20gYSA8aW50ZXJmYWNlPlBhbmVsPC9pbnRlcmZhY2U+LAorICAgICByaWdodC1jbGljayBvbiB0aGUgYXBwbGV0IGFuZCBzZWxlY3QgPGd1aW1lbnVpdGVtPlJlbW92ZSBmcm9tCisgICAgIHBhbmVsLi4uPC9ndWltZW51aXRlbT4uIAorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDI+CisgIDwvc2VjdDE+CisKKworICA8IS0tICMjIyMgSW50cm8gfCBUaGUgUmlnaHQtQ2xpY2sgUG9wLVVwIE1lbnUgIyMjIyMjIC0tPgorICA8c2VjdDEgaWQ9InJpZ2h0LWNsaWNrLXBvcC11cC1tZW51Ij4KKyAgIDx0aXRsZT5UaGUgUmlnaHQtQ2xpY2sgUG9wLVVwIE1lbnU8L3RpdGxlPgorICAgPHBhcmE+CisgICAgQ2xpY2tpbmcgdGhlIHJpZ2h0IG1vdXNlIGJ1dHRvbiBvbiBhbnkgYXBwbGV0IGJyaW5ncyB1cAorICAgIGEgPGd1aW1lbnU+cG9wLXVwIG1lbnU8L2d1aW1lbnU+LiBUaGlzIAorICAgIG1lbnUgYWx3YXlzIGhhcyBjZXJ0YWluIHN0YW5kYXJkIG1lbnUgaXRlbXMgaW4gaXQgYW5kCisgICAgb2Z0ZW4gaGFzIGFkZGl0aW9uYWwgaXRlbXMgd2hpY2ggdmFyeSBkZXBlbmRpbmcgb24gdGhlIHBhcnRpY3VsYXIKKyAgICBhcHBsZXQuIAorICAgPC9wYXJhPgorICAgPHNlY3QyIGlkPSJzdGFuZGFyZC1yaWdodC1jbGljay1pdGVtcyI+IAorICAgIDx0aXRsZT5TdGFuZGFyZCBQb3AtVXAgSXRlbXM8L3RpdGxlPgorICAgIDxwYXJhPgorICAgICBBbGwgYXBwbGV0cyBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIGl0ZW1zIGluIHRoZWlyIHJpZ2h0LWNsaWNrCisgICAgIDxndWltZW51PnBvcC11cCBtZW51PC9ndWltZW51PjoKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+UmVtb3ZlIGZyb20gcGFuZWw8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSA8Z3VpbWVudWl0ZW0+UmVtb3ZlIGZyb20gcGFuZWw8L2d1aW1lbnVpdGVtPiBtZW51IGl0ZW0KKyAgICAgICAgIHJlbW92ZXMgdGhlIGFwcGxldCBmcm9tIHRoZSA8aW50ZXJmYWNlPlBhbmVsPC9pbnRlcmZhY2U+LiAKKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5Nb3ZlPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBBZnRlciBzZWxlY3RpbmcgPGd1aW1lbnVpdGVtPk1vdmU8L2d1aW1lbnVpdGVtPiwgeW91ciBtb3VzZQorICAgICAgICAgcG9pbnRlciB3aWxsIGNoYW5nZSBhcHBlYXJhbmNlICh0eXBpY2FsbHkgdG8gYSBjcm9zcyB3aXRoCisgICAgICAgICBhcnJvd3MgaW4gZWFjaCBkaXJlY3Rpb24pLiBBcyB5b3UgbW92ZSB5b3VyIG1vdXNlLCB0aGUgYXBwbGV0CisgICAgICAgICB3aWxsIG1vdmUgd2l0aCBpdC4gIFdoZW4geW91IGhhdmUgZmluaXNoZWQgbW92aW5nIHRoZSBhcHBsZXQsCisgICAgICAgICBjbGljayBhbnkgbW91c2UgYnV0dG9uIGFuZCB0aGUgYXBwbGV0IHdpbGwgYW5jaG9yIGluIGl0cworICAgICAgICAgY3VycmVudCBwb3NpdGlvbi4gIE5vdGUgdGhhdCBhcHBsZXRzIGNhbiBiZSBtb3ZlZCBiZXR3ZWVuIHR3bworICAgICAgICAgPGludGVyZmFjZT5QYW5lbHM8L2ludGVyZmFjZT4gdGhpcyB3YXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+UGFuZWw8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSA8Z3Vpc3VibWVudT5QYW5lbDwvZ3Vpc3VibWVudT4gc3VibWVudSBjb250YWlucyB2YXJpb3VzCisgICAgICAgICBpdGVtcyBhbmQgc3VibWVudXMgZm9yIGFkZGluZyBhbmQgcmVtb3ZpbmcKKyAgICAgICAgIDxpbnRlcmZhY2U+UGFuZWxzPC9pbnRlcmZhY2U+IGFuZCBhcHBsZXRzIGFuZCBmb3IgY2hhbmdpbmcKKyAgICAgICAgIHRoZSBjb25maWd1cmF0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkFib3V0PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgPGd1aW1lbnVpdGVtPkFib3V0Li4uPC9ndWltZW51aXRlbT4gbWVudSBpdGVtIGJyaW5ncyB1cCBhIAorICAgICAgICAgZGlhbG9ndWUgYm94IGNvbnRhaW5pbmcgdmFyaW91cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXBwbGV0LAorICAgICAgICAgdHlwaWNhbGx5IGluY2x1ZGluZyB0aGUgYXBwbGV0J3MgIG5hbWUsIHZlcnNpb24sIGF1dGhvciwKKyAgICAgICAgIGNvcHlyaWdodCwgbGljZW5zZSBhbmQgZGVzY2lwdGlvbi4gCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SGVscDwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIDxndWltZW51aXRlbT5IZWxwPC9ndWltZW51aXRlbT4gbWVudSBpdGVtIGJyaW5ncyB1cCB0aGUgaGVscAorICAgICAgICAgbWFudWFsIGZvciB0aGUgYXBwbGV0LiAKKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKworICAgPHNlY3QyIGlkPSJhcHBsZXQtcHJvcGVydGllcy1kaWFsb2ciPiAKKyAgICA8dGl0bGU+VGhlIEFwcGxldCBQcm9wZXJ0aWVzIERpYWxvZzwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgIE1hbnkgYXBwbGV0cyBoYXZlIGN1c3RvbWl6YWJsZSBwcm9wZXJ0aWVzLiAgVGhlc2UgYXBwbGV0cyB3aWxsCisgICAgIGhhdmUgYSA8Z3VpbWVudWl0ZW0+UHJvcGVydGllcy4uLjwvZ3VpbWVudWl0ZW0+IG1lbnUgaXRlbSBpbiB0aGVpcgorICAgICByaWdodC1jbGljayA8Z3VpbWVudT5wb3AtdXAgbWVudTwvZ3VpbWVudT4gd2hpY2ggYnJpbmdzIHVwIHRoZQorICAgICA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nIHdoZXJlIHlvdSBjYW4gYWx0ZXIgdGhlIAorICAgICBhcHBlYXJhbmNlIG9yIGJlaGF2aW91ciBvZiB0aGUgYXBwbGV0LgorICAgICA8ZmlndXJlIGlkPSJleGFtcGxlLXByb3BzLWRpYWxvZy1maWciPgorICAgICAgPHRpdGxlPkFuIEV4YW1wbGUgQXBwbGV0IFByb3BlcnRpZXMgRGlhbG9nPC90aXRsZT4KKyAgICAgIDxzY3JlZW5zaG90PgorICAgICAgIDxzY3JlZW5pbmZvPkFuIEV4YW1wbGUgQXBwbGV0cyBQcm9wZXJ0aWVzIERpYWxvZzwvc2NyZWVuaW5mbz4KKyAgICAgICA8Z3JhcGhpYyBmaWxlcmVmPSJhcHBsZXRfcHJvcHNfZGlhbG9nIiBmb3JtYXQ9InBuZyIKKyAgICAgICAgc3JjY3JlZGl0PSJtdWV0Ij4KKyAgICAgICA8L2dyYXBoaWM+CisgICAgICA8L3NjcmVlbnNob3Q+CisgICAgIDwvZmlndXJlPgorICAgICBBbGwgPGludGVyZmFjZT5Qcm9wZXJ0aWVzPC9pbnRlcmZhY2U+IGRpYWxvZ3MgaGF2ZSB0aGUgZm9sbG93aW5nCisgICAgIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZGlhbG9nOgorICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICA8Z3VpYnV0dG9uPk9LPC9ndWlidXR0b24+ICZtZGFzaDsKKyAgICAgICAgUHJlc3NpbmcgPGd1aWJ1dHRvbj5PSzwvZ3VpYnV0dG9uPiB3aWxsIGFjdGl2YXRlIGFueSBjaGFuZ2VzCisgICAgICAgIGluIHRoZSBwcm9wZXJ0aWVzIHlvdSBoYXZlIG1hZGUgYW5kIGNsb3NlIHRoZQorICAgICAgICA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIDxndWlidXR0b24+QXBwbHk8L2d1aWJ1dHRvbj4gJm1kYXNoOworICAgICAgICBQcmVzc2luZyA8Z3VpYnV0dG9uPkFwcGx5PC9ndWlidXR0b24+IGF0IGFueSB0aW1lIHdpbGwKKyAgICAgICAgbWFrZSB5b3VyIGNoYW5nZXMgYWN0aXZlIHdpdGhvdXQgY2xvc2luZyB0aGUKKyAgICAgICAgPGludGVyZmFjZT5Qcm9wZXJ0aWVzPC9pbnRlcmZhY2U+IGRpYWxvZy4gIFRoaXMgaXMgaGVscGZ1bCBpZgorICAgICAgICB5b3Ugd291bGQgbGlrZSB0byB0ZXN0IHRoZSBlZmZlY3RzIG9mIHRoZSBjaGFuZ2VzIHlvdSBoYXZlCisgICAgICAgIG1hZGUgYnV0IG1heSB3YW50IHRvIGNvbnRpbnVlIGNoYW5naW5nIHRoZSBwcm9wZXJ0aWVzLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIDxndWlidXR0b24+Q2xvc2U8L2d1aWJ1dHRvbj4gJm1kYXNoOworICAgICAgICBQcmVzc2luZyA8Z3VpYnV0dG9uPkNsb3NlPC9ndWlidXR0b24+IHdpbGwgY2xvc2UgdGhlCisgICAgICAgIDxpbnRlcmZhY2U+UHJvcGVydGllczwvaW50ZXJmYWNlPiBkaWFsb2cuICBPbmx5IGNoYW5nZXMgaW4gdGhlCisgICAgICAgIGNvbmZpZ3VyYXRpb24gd2hpY2ggd2VyZSBwcmV2aW91c2x5IGFwcGxpZWQgd2l0aCB0aGUKKyAgICAgICAgPGd1aWJ1dHRvbj5BcHBseTwvZ3VpYnV0dG9uPiBidXR0b24gd2lsbCBwZXJzaXN0LiAgT3RoZXIKKyAgICAgICAgY2hhbmdlcyB3aWxsIG5vdCBiZSBtYWRlIGFjdGl2ZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICA8Z3VpYnV0dG9uPkhlbHA8L2d1aWJ1dHRvbj4gJm1kYXNoOworICAgICAgICBQcmVzc2luZyA8Z3VpYnV0dG9uPkhlbHA8L2d1aWJ1dHRvbj4gYnJpbmdzIHVwIHRoZSBtYW51YWwgZm9yCisgICAgICAgIHRoZSBhcHBsaWNhdGlvbiwgb3BlbmluZyBpdCB0byB0aGUgcGFnZSBkZXNjcmliaW5nIHRoZQorICAgICAgICA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDI+CisgCisgICA8c2VjdDIgaWQ9ImNvbW1vbi1yaWdodC1jbGljay1pdGVtcyI+IAorICAgIDx0aXRsZT5PdGhlciBDb21tb24gUG9wLVVwIEl0ZW1zPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgTWFueSBhcHBsZXRzIGFsc28gaGF2ZSBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGl0ZW1zIGluIHRoZWlyCisgICAgIHJpZ2h0LWNsaWNrIHBvcC11cCBtZW51OgorICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5SdW4uLi48L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSA8Z3VpbWVudWl0ZW0+UnVuLi4uPC9ndWltZW51aXRlbT4gbWVudSBpdGVtIGdlbmVyYWxseQorICAgICAgICAgaW52b2tlcyBhIHByb2dyYW0gIHdoaWNoIGlzIHJlbGF0ZWQgdG8gdGhlIGFwcGxldCBpbiBzb21lIHdheQorICAgICAgICAgYnV0IHdoaWNoIHJ1bnMgaW4gaXRzIG93biB3aW5kb3cgcmF0aGVyIHRoYW4gaW4gdGhlCisgICAgICAgICBwYW5lbC4gRm9yIGV4YW1wbGU6IAorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxvcmRlcmVkbGlzdD4KKyAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgVGhlIDxhcHBsaWNhdGlvbj5DUFUgTG9hZDwvYXBwbGljYXRpb24+IGFwcGxldCwgd2hpY2ggbW9uaXRvcnMKKyAgICAgICAgICAgd2hhdCBwcm9ncmFtcyBhcmUgcnVubmluZywgaGFzIGEgPGd1aW1lbnVpdGVtPlJ1bgorICAgICAgICAgICBndG9wLi4uPC9ndWltZW51aXRlbT4gIG1lbnUgaXRlbS4gU2VsZWN0aW5nIHRoaXMgbWVudSBpdGVtCisgICAgICAgICAgIHN0YXJ0cyA8YXBwbGljYXRpb24+R1RvcDwvYXBwbGljYXRpb24+LCB3aGljaCBhbGxvd3MgeW91IHRvCisgICAgICAgICAgIHZpZXcgYW5kIGNvbnRyb2wgcHJvZ3JhbXMgd2hpY2ggYXJlIHJ1bm5pbmcuCisgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgVGhlIDxhcHBsaWNhdGlvbj5DRCBQbGF5ZXI8L2FwcGxpY2F0aW9uPiBhcHBsZXQgaGFzIGEKKyAgICAgICAgICAgPGd1aW1lbnVpdGVtPlJ1biBndGNkLi4uPC9ndWltZW51aXRlbT4gbWVudSBpdGVtIHdoaWNoCisgICAgICAgICAgIHN0YXJ0cyB0aGUgR05PTUUgPGFwcGxpY2F0aW9uPkNEIFBsYXllcjwvYXBwbGljYXRpb24+IHdoZW4KKyAgICAgICAgICAgc2VsZWN0ZWQsIHdoaWNoIGhhcyBtb3JlIGNhcGFiaWxpdGllcyB0aGFuIHRoZSBhcHBsZXQuCisgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPC9vcmRlcmVkbGlzdD4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDI+CisgIDwvc2VjdDE+CisgIAorICA8c2VjdDEgaWQ9ImZlZWRiYWNrIj4KKyAgIDx0aXRsZT5GZWVkYmFjazwvdGl0bGU+CisgICA8c2VjdDIgaWQ9InJlcG9ydGluZy1idWdzIj4gCisgICAgPHRpdGxlPlJlcG9ydGluZyBBcHBsZXQgQnVnczwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgIEdOT01FIHVzZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIHJlcG9ydCBidWdzIHRvIDx1bGluayB0eXBlPSJodHRwIgorICAgICB1cmw9Imh0dHA6Ly9idWdzLmdub21lLm9yZyI+VGhlIEdOT01FIEJ1ZyBUcmFja2luZworICAgICBTeXN0ZW08L3VsaW5rPi4gIFRoZSBlYXNpZXN0IHdheSB0byBzdWJtaXQgYnVncyBpcyB0byB1c2UgdGhlCisgICAgIDxhcHBsaWNhdGlvbj5CdWcgUmVwb3J0IFRvb2w8L2FwcGxpY2F0aW9uPiBwcm9ncmFtIGJ5IHNlbGVjdGluZworICAgICA8bWVudWNob2ljZT4KKyAgICAgIDxndWltZW51Pk1haW4gTWVudTwvZ3VpbWVudT4gPGd1aXN1Ym1lbnU+VXRpbGl0aWVzPC9ndWlzdWJtZW51PgorICAgICAgPGd1aW1lbnVpdGVtPkJ1ZyBSZXBvcnQgVG9vbDwvZ3VpbWVudWl0ZW0+IAorICAgICA8L21lbnVjaG9pY2U+LgorICAgICBCZSBzdXJlIHRvIGJlIGNvbXBsZXRlIGluIGRlc2NyaWJpbmcgd2hhdCB5b3UgZGlkIHRvIGNhdXNlIHRoZQorICAgICBidWcgdG8gc3VyZmFjZSBhbmQsIGlmIHBvc3NpYmxlLCBkZXNjcmliZSBob3cgdGhlIGRldmVsb3BlciBjYW4KKyAgICAgcmVwcm9kdWNlIHRoZSB0aGUgc2NlbmFyaW8uCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKyAgIDxzZWN0MiBpZD0iZG9jdW1lbnRhdGlvbi1mZWVkYmFjayI+IAorICAgIDx0aXRsZT5Qcm92aWRpbmcgRmVlZGJhY2s8L3RpdGxlPgorICAgIDxwYXJhPgorICAgICBHTk9NRSB1c2VycyBhcmUgd2VsY29tZSB0byBwcm92aWRlIHN1Z2dlc3Rpb25zIGZvciBob3cKKyAgICAgYXBwbGljYXRpb25zIGFuZCBkb2N1bWVudGF0aW9uIGNhbiBiZSBpbXByb3ZlZC4gIFN1Z2dlc3Rpb25zIGZvcgorICAgICBhcHBsaWNhdGlvbiBjaGFuZ2VzIHNob3VsZCBiZSBzdWJtaXR0ZWQgdXNpbmcgdGhlCisgICAgIDxhcHBsaWNhdGlvbj5CdWcgUmVwb3J0IFRvb2w8L2FwcGxpY2F0aW9uPiBkaXNjdXNzZWQgYWJvdmUuCisgICAgIFN1Z2dlc3Rpb25zIGZvciBkb2N1bWVudGF0aW9uIGNoYW5nZXMgY2FuIGJlIGVtYWlsZWQgZGlyZWN0bHkgdG8KKyAgICAgdGhlIGRvY3VtZW50YXRpb24gYXV0aG9yICh3aG9zZSBlbWFpbCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlCisgICAgICJBdXRob3JzIiBzZWN0aW9uIG9mIHRoZSBkb2N1bWVudCkgb3IgYnkgc2VuZGluZyBhbiBlbWFpbCB0bworICAgICA8ZW1haWw+ZG9jc0Bnbm9tZS5vcmc8L2VtYWlsPi4gCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKyAgIDxzZWN0MiBpZD0iam9pbmluZy1nbm9tZSI+ICAKKyAgICA8dGl0bGU+Sm9pbmluZyBHTk9NRTwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgIEdOT01FIGlzIGEgY29tbXVuaXR5IHByb2plY3QsIGNyZWF0ZWQgYnkgaHVuZHJlZHMgb2YgcHJvZ3JhbW1lcnMsCisgICAgIGRvY3VtZW50YXRpb24gd3JpdGVycywgaWNvbiBkZXNpZ24gYXJ0aXN0cywgd2ViIG1hc3RlcnMsIGFuZAorICAgICBvdGhlciBwZW9wbGUsIG1vc3Qgb2Ygd2hvbSB3b3JrIG9uIGEgdm9sdW50ZWVyIGJhc2lzLiAgTmV3IEdOT01FCisgICAgIGNvbnRyaWJ1dG9ycyBhcmUgYWx3YXlzIHdlbGNvbWUuIFRvIGpvaW4gdGhlIEdOT01FIHRlYW0sIHZpc2l0CisgICAgIHRoZXNlIHdlYiBzaXRlczogZGV2ZWxvcGVycyAmbWRhc2g7IDx1bGluayB0eXBlPSJodHRwIgorICAgICB1cmw9Imh0dHA6Ly9kZXZlbG9wZXIuZ25vbWUub3JnIj5UaGUgR05PTUUgRGV2ZWxvcG1lbnQKKyAgICAgU2l0ZTwvdWxpbms+LCBkb2N1bWVudGF0aW9uIHdyaXRlcnMgJm1kYXNoOyA8dWxpbmsgdHlwZT0iaHR0cCIKKyAgICAgdXJsPSJodHRwOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9wcm9qZWN0cy9nZHAiPlRoZSBHTk9NRSBEb2N1bWVudGF0aW9uCisgICAgIFByb2plY3Q8L3VsaW5rPiwgaWNvbiBkZXNpZ24gYXJ0aXN0cyAmbWRhc2g7IDx1bGluayB0eXBlPSJodHRwIgorICAgICB1cmw9Imh0dHA6Ly9nbm9tZS1pY29ucy5zb3VyY2Vmb3JnZS5uZXQvIj5Hbm9tZSBJY29uIFdlYjwvdWxpbms+LAorICAgICBnZW5lcmFsICZtZGFzaDsgPHVsaW5rIHR5cGU9Imh0dHAiCisgICAgIHVybD0iaHR0cDovL2RldmVsb3Blci5nbm9tZS5vcmcvaGVscGluZy8iPkhlbHBpbmcgR05PTUU8L3VsaW5rPiwKKyAgICAgb3IganVzdCBqb2luIHRoZSBnbm9tZS1saXN0IGVtYWlsIGxpc3QgKHNlZSA8dWxpbmsgdHlwZT0iaHR0cCIKKyAgICAgdXJsPSJodHRwOi8vd3d3Lmdub21lLm9yZy9yZXNvdXJjZXMvbWFpbGluZy1saXN0cy5odG1sIj5HTk9NRSBNYWlsaW5nCisgICAgIExpc3RzPC91bGluaz4pIHRvIGRpc2N1c3Mgd2hhdCB5b3UgYXJlIGludGVyZXN0ZWQgaW4gZG9pbmcuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKyAgPC9zZWN0MT4KKyA8L2NoYXB0ZXI+CisKKyA8IS0tICMjIyMjIyMjIyMjIyMjIyBUZW1wbGF0ZSBBcHBsZXRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4KKyA8Y2hhcHRlciBpZD0idGVtcGxhdGUtYXBwbGV0cyI+CisgIDx0aXRsZT5UZW1wbGF0ZSBBcHBsZXRzPC90aXRsZT4KKworICAmVEVNUExBVEUtQVBQTEVUCisKKyA8L2NoYXB0ZXI+CisKKzwvYm9vaz4KKworCisKKworCisKKworXV0+CisJPC9wcm9ncmFtbGlzdGluZz4KKwkKKyAgICAgICAgPHByb2dyYW1saXN0aW5nPgorPCFbQ0RBVEFbCisKKyAgPCEtLSBQbGVhc2UgcmVwbGFjZSBldmVyeXdoZXJlIGJlbG93IEdOT01FQVBQTEVUIHdpdGggdGhlIG5hbWUgb2YgLS0+CisgIDwhLS0geW91ciBhcHBsZXQuIE1vc3QgaW1wb3J0YW50bHksIGFsbCBpZCBhdHRyaWJ1dGVzIHNob3VsZCBzdGFydCAtLT4KKyAgPCEtLSB3aXRoIHRoZSBuYW1lIG9mIHlvdXIgYXBwbGV0IC0gdGhpcyBpcyBuZWNlc3NhcnkgdG8gYXZvaWQgbmFtZSAtLT4KKyAgPCEtLSBjb25mbGljdCBhbW9uZyBkaWZmZXJlbnQgYXBwbGV0cyAtLT4gCisgIDwhLS0gUGxlYXNlIHJlcGxhY2UgWU9VUi1OQU1FIHdpdGggeW91ciBuYW1lIGFuZCBZT1VSLUVNQUlMIHdpdGggeW91ciBlbWFpbC0tPgorICA8IS0tIFBsZWFzZSByZXBsYWNlIEhBQ0tFUi1OQU1FIHdpdGggdGhlIGFwcGxldCBhdXRob3IncyBuYW1lIGFuZCAtLT4KKyAgPCEtLSBIQUNLRVItRU1BSUwgd2l0aCB0aGUgYXBwbGV0IGF1dGhvcidzIGVtYWlsIC0tPgorCisgIDwhLS0gWW91IHNob3VsZCBuYW1lIHlvdXIgZmlsZTogR05PTUVBUFBMRVQtYXBwbGV0LnNnbWwgLS0+CisgIDwhLS0gU2NyZWVuc2hvdHMgc2hvdWxkIGJlIGluIFBORyBmb3JtYXQgYW5kIHBsYWNlZCBpbiB0aGUgLS0+CisgIDwhLS0gc2FtZSBkaXJlY3RvcnkgYXMgR05PTUVBUFBMRVQtYXBwbGV0LnNnbWwgLS0+CisKKyAgPCEtLSBBcHBsZXQgZG9jcyB3aWxsIGJlIG1lcmdlZCBpbnRvIDxjaGFwdGVyPidzIGluc2lkZSBhIC0tPgorICA8IS0tIDxib29rPi4gVGh1cywgdGhlIGluZGVudGF0aW9uIGJlbG93ICgyIHNwYWNlcyBiZWZvcmUgdGhlIDxzZWN0MT4pIGlzIC0tPgorICA8IS0tIGNvcnJlY3QuLS0+CisKKyAgPCEtLSBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gbWFrZSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgLS0+CisgIDwhLS0gdGhpcyBtYW51YWwgcHJvdmlkZWQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiAtLT4KKyAgPCEtLSBub3RpY2UgYXJlICBwcmVzZXJ2ZWQgb24gYWxsIGNvcGllcy4gLS0+CisgIDwhLS0gLS0+CisgIDwhLS0gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgLS0+CisgIDwhLS0gdGhpcyBtYW51YWwgdW5kZXIgdGhlIGNvbmRpdGlvbnMgZm9yIHZlcmJhdGltIGNvcHlpbmcsIHByb3ZpZGVkIC0tPgorICA8IS0tIHRoYXQgdGhlIGVudGlyZSByZXN1bHRpbmcgZGVyaXZlZCB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSAtLT4KKyAgPCEtLSB0ZXJtcyBvZiBhIHBlcm1pc3Npb24gbm90aWNlIGlkZW50aWNhbCB0byB0aGlzIG9uZS4gLS0+CisgIDwhLS0gLS0+CisgIDwhLS0gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdHJhbnNsYXRpb25zIG9mIHRoaXMgLS0+CisgIDwhLS0gbWFudWFsIGludG8gYW5vdGhlciBsYW5ndWFnZSwgdW5kZXIgdGhlIGFib3ZlIGNvbmRpdGlvbnMgZm9yIC0tPgorICA8IS0tIG1vZGlmaWVkIHZlcnNpb25zLCBleGNlcHQgdGhhdCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIG1heSBiZSAtLT4KKyAgPCEtLSBzdGF0ZWQgaW4gYSB0cmFuc2xhdGlvbiBhcHByb3ZlZCBieSB0aGUgRm91bmRhdGlvbi4gLS0+CisKKyAgPCEtLSAjIyMjIyMjIyMjIyMjIyMgICBHTk9NRUFQUExFVCAgICMjIyMjIyMjIyMjIyMjIyAtLT4KKyAgPHNlY3QxIGlkPSJHTk9NRUFQUExFVCI+CisgICA8dGl0bGU+R05PTUVBUFBMRVQgQXBwbGV0PC90aXRsZT4gCisKKyAgIDxwYXJhPiAKKyAgICA8YXBwbGljYXRpb24+R05PTUVBUFBMRVQ8L2FwcGxpY2F0aW9uPiBhcHBsZXQsIHNob3duIGluIDx4cmVmCisgICAgbGlua2VuZD0iR05PTUVBUFBMRVQtZmlnIj4sIGRvZXMgdGhpcyBhbmQgdGhhdC4gVG8gbGVhcm4gaG93IHRvCisgICAgYWRkIHRoaXMgYXBwbGV0IHRvIGEgPGludGVyZmFjZT5QYW5lbDwvaW50ZXJmYWNlPiwgc2VlIDx4cmVmCisgICAgbGlua2VuZD0iYWRkaW5nLWFwcGxldHMiPi4gCisgICA8L3BhcmE+CisgIAorIAorICAgPGZpZ3VyZSBpZD0iR05PTUVBUFBMRVQtZmlnIj4KKyAgIDx0aXRsZT5HTk9NRUFQUExFVDwvdGl0bGU+CisgICA8c2NyZWVuc2hvdD4KKyAgICA8c2NyZWVuaW5mbz5HTk9NRUFQUExFVDwvc2NyZWVuaW5mbz4KKyAgICA8Z3JhcGhpYyBmb3JtYXQ9InBuZyIgZmlsZXJlZj0iR05PTUVBUFBMRVQtZmlnIiBzcmNjcmVkaXQ9Ik1FIj4KKyAgICA8L2dyYXBoaWM+CisgICA8L3NjcmVlbnNob3Q+CisgICA8L2ZpZ3VyZT4KKworICAgPHNlY3QyIGlkPSJHTk9NRUFQUExFVC11c2FnZSI+CisgICAgPHRpdGxlPlVzYWdlPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgVGhpcyBhcHBsZXQgZG9lcyBub3RoaW5nLiBUbyB1c2UgaXQsIGp1c3QKKyAgICAgbGVmdC1jbGljayBvbiBpdCBhbmQgaXQgd2lsbCBpbnN0YW50bHkgZG8gbm90aGluZy4gICAKKyAgICA8L3BhcmE+CisgICA8L3NlY3QyPgorCisgICA8c2VjdDIgaWQ9IkdOT01FQVBQTEVULXJpZ2h0LWNsaWNrIj4KKyAgICA8dGl0bGU+UmlnaHQtQ2xpY2sgUG9wLVVwIE1lbnUgSXRlbXM8L3RpdGxlPgorICAgIDxwYXJhPiAKKyAgICAgSW4gYWRkaXRpb24gdG8gdGhlIHN0YW5kYXJkIG1lbnUgaXRlbXMgKHNlZSA8eHJlZgorICAgICBsaW5rZW5kPSJzdGFuZGFyZC1yaWdodC1jbGljay1pdGVtcyI+KSwgdGhlIHJpZ2h0LWNsaWNrIHBvcC11cCBtZW51IGhhcyAKKyAgICAgdGhlIGZvbGxvd2luZyBpdGVtczogCisgICAgIDxpdGVtaXplZGxpc3Q+IAkKKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGd1aW1lbnVpdGVtPlByb3BlcnRpZXMuLi48L2d1aW1lbnVpdGVtPiAmbWRhc2g7IFRoaXMgbWVudQorICAgICAgICBpdGVtIG9wZW5zIHRoZSA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nIChzZWUKKyAgICAgICAgPHhyZWYgbGlua2VuZD0iR05PTUVBUFBMRVQtcHJvcGVydGllcyI+KSB3aGljaCBhbGxvd3MgeW91IHRvCisgICAgICAgIGN1c3RvbWl6ZSB0aGUgYXBwZWFyYW5jZSBhbmQgYmVoYXZpb3Igb2YgdGhpcyBhcHBsZXQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGd1aW1lbnVpdGVtPlJ1biBIZWxsbyBXb3JsZC4uLjwvZ3VpbWVudWl0ZW0+ICZtZGFzaDsgVGhpcworICAgICAgICBtZW51IGl0ZW0gc3RhcnRzIHRoZSBwcm9ncmFtIDxhcHBsaWNhdGlvbj5IZWxsbworICAgICAgICBXb3JsZDwvYXBwbGljYXRpb24+LCB1c2VkIHRvIHNheSAiaGVsbG8iIHRvIHRoZSB3b3JsZC4gCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKworICAgPHNlY3QyIGlkPSJHTk9NRUFQUExFVC1wcm9wZXJ0aWVzIj4KKyAgICA8dGl0bGU+UHJvcGVydGllczwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgIFlvdSBjYW4gY29uZmlndXJlIDxhcHBsaWNhdGlvbj5HTk9NRUFQUExFVDwvYXBwbGljYXRpb24+IGFwcGxldCBieQorICAgICByaWdodC1jbGlja2luZyBvbiB0aGUgYXBwbGV0IGFuZCBjaG9vc2luZyB0aGUKKyAgICAgPGd1aW1lbnVpdGVtPlByb3BlcnRpZXMuLi48L2d1aW1lbnVpdGVtPiBtZW51IGl0ZW0uIFRoaXMgd2lsbCBvcGVuIHRoZQorICAgICA8aW50ZXJmYWNlPlByb3BlcnRpZXM8L2ludGVyZmFjZT4gZGlhbG9nLCBzaG93biBpbiA8eHJlZgorICAgICBsaW5rZW5kPSJHTk9NRUFQUExFVC1wcm9wZXJ0aWVzLWZpZyI+LgorICAgIDwvcGFyYT4KKyAgICA8ZmlndXJlIGlkPSJHTk9NRUFQUExFVC1wcm9wZXJ0aWVzLWZpZyI+CisgICAgIDx0aXRsZT5Qcm9wZXJ0aWVzIERpYWxvZzwvdGl0bGU+CisgICAgIDxzY3JlZW5zaG90PgorICAgICAgPHNjcmVlbmluZm8+UHJvcGVydGllcyBEaWFsb2c8L3NjcmVlbmluZm8+IAorICAgICAgPGdyYXBoaWMgZm9ybWF0PSJwbmciIGZpbGVyZWY9IkdOT01FQVBQTEVULXByb3BlcnRpZXMiIHNyY2NyZWRpdD0iTUUiPgorICAgICAgPC9ncmFwaGljPgorICAgICA8L3NjcmVlbnNob3Q+CisgICAgPC9maWd1cmU+CisgICAgCisgICAgPHBhcmE+IAorICAgICBUbyBjaGFuZ2UgdGhlIGNvbG9yIG9mIHRoZSBhcHBsZXQsIGNsaWNrIG9uIHRoZQorICAgICA8Z3VpYnV0dG9uPmNvbG9yPC9ndWlidXR0b24+IGJ1dHRvbi4gVG8gY2hhbmdlIG90aGVyIHByb3BlcnRpZXMsCisgICAgIGNsaWNrIG9uIG90aGVyIGJ1dHRvbnMuIAorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgPGludGVyZmFjZT5Qcm9wZXJ0aWVzPC9pbnRlcmZhY2U+CisgICAgIGRpYWxvZywgaW5jbHVkaW5nIGRlc2NyaXB0aW9ucyBvZiB0aGUgPGd1aWJ1dHRvbj5PSzwvZ3VpYnV0dG9uPiwKKyAgICAgPGd1aWJ1dHRvbj5BcHBseTwvZ3VpYnV0dG9uPiwgPGd1aWJ1dHRvbj5DYW5jZWw8L2d1aWJ1dHRvbj4sIGFuZAorICAgICA8Z3VpYnV0dG9uPkhlbHA8L2d1aWJ1dHRvbj4gYnV0dG9ucywgc2VlIDx4cmVmCisgICAgIGxpbmtlbmQ9ImFwcGxldC1wcm9wZXJ0aWVzLWRpYWxvZyI+LgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDI+CisgIAorICAgPHNlY3QyIGlkPSJHTk9NRUFQUExFVC1idWdzIj4KKyAgICA8dGl0bGU+IEtub3duIEJ1Z3MgYW5kIExpbWl0YXRpb25zPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgVGhlcmUgYXJlIG5vIGtub3duIGJ1Z3MgaW4gdGhlCisgICAgIDxhcHBsaWNhdGlvbj5HTk9NRUFQUExFVDwvYXBwbGljYXRpb24+IGFwcGxldC4gCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKworICAgPHNlY3QyIGlkPSJHTk9NRUFQUExFVC1hdXRob3JzIj4KKyAgICA8dGl0bGU+QXV0aG9yczwvdGl0bGU+CisgICAgPHBhcmE+CisgICAgIFRoaXMgYXBwbGV0IHdhcyB3cml0ZW4gYnkgSEFDS0VSLU5BTUUKKyAgICAgPGVtYWlsPkhBQ0tFUi1FTUFJTDwvZW1haWw+LiAgVGhlIGRvY3VtZW50YXRpb24gZm9yIHRoaXMgYXBwbGV0CisgICAgIHdoaWNoIHlvdSBhcmUgcmVhZGluZyBub3cgd2FzIHdyaXR0ZW4gYnkKKyAgICAgWU9VUi1OQU1FIDxlbWFpbD5ZT1VSLUVNQUlMPC9lbWFpbD4uIEZvciBpbmZvcm1hdGlvbiBvbiBzdWJtaXR0aW5nCisgICAgIGJ1ZyByZXBvcnRzIGFuZCBzdWdnZXN0aW9ucyBmb3IgaW1wcm92ZW1lbnRzLCBzZWUgPHhyZWYKKyAgICAgbGlua2VuZD0iZmVlZGJhY2siPi4gCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mj4KKworICA8L3NlY3QxPgorCisKKworCisKK11dPgorCisKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAgPC9zZWN0MT4KKworPCEtLSAjIyMjIyMjIERvY3VtZW50IFRlbXBsYXRlcyB8IFRlbXBsYXRlcyAzOiBBcHBsaWNhdGlvbiBIZWxwICMjIyMjIyMgCisKKyAgICA8c2VjdDEgaWQ9InRlbXBsYXRlMyI+CisgICAgICA8dGl0bGU+VGVtcGxhdGUgMjogQXBwbGljYXRpb24gSGVscDwvdGl0bGU+CisgICAgICA8cHJvZ3JhbWxpc3Rpbmc+Cis8IVtDREFUQVsoUHV0IHNnbWwgaGVyZS4pXV0+IDwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgPC9zZWN0MT4KKworIyMjIyMjIyBEb2N1bWVudCBUZW1wbGF0ZXMgfCBUZW1wbGF0ZXMgNDogQXBwbGljYXRpb24gQ29udGV4dCBTZW5zaXRpdmUgSGVscCAjIyMjIyMjCisKKyAgICA8c2VjdDEgaWQ9InRlbXBsYXRlNCI+CisgICAgICA8dGl0bGU+VGVtcGxhdGUgMzogQXBwbGljYXRpb24gQ29udGV4dCBTZW5zaXRpdmUgSGVscDwvdGl0bGU+CisgICAgICA8cGFyYT4KKyAgICAgICAgQ29udGV4dCBzZW5zaXRpdmUgaGVscCBpcyBzdGlsbCBpbiBkZXZlbG9wbWVudC4KKyAgICAgIDwvcGFyYT4KKyAgICA8L3NlY3QxPgorCisjIyMjIyMjIERvY3VtZW50IFRlbXBsYXRlcyB8IFRlbXBsYXRlcyA1OiBDb21wbGV0ZSBBcHBsaWNhdGlvbjogZ25vbWUtaGVsbG8gICMjIyMjIyMgCisKKyAgICA8c2VjdDEgaWQ9InRlbXBsYXRlNSI+CisgICAgICA8dGl0bGU+VGVtcGxhdGUgNDogQ29tcGxldGUgQXBwbGljYXRpb246IGdub21lLWhlbGxvPC90aXRsZT4KKyAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWyhQdXQgc2dtbCBoZXJlLildXT4KKyAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+ICAKKyAgICA8L3NlY3QxPgorCisjIyMjIyMjIERvY3VtZW50IFRlbXBsYXRlcyB8IFRlbXBsYXRlcyA2OiBUdXRvcmlhbCAjIyMjIyMjIAorCisgICAgPHNlY3QxIGlkPSJ0ZW1wbGF0ZTYiPgorICAgICAgPHRpdGxlPlRlbXBsYXRlIDU6IFR1dG9yaWFsPC90aXRsZT4KKyAgICAgIDxwcm9ncmFtbGlzdGluZz4KKzwhW0NEQVRBWyhQdXQgc2dtbCBoZXJlLildXT4KKyAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+ICAKKyAgICA8L3NlY3QxPi0tPgorICA8L2FwcGVuZGl4PgorCis8L2FydGljbGU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9lbXB0eTAucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZW1wdHkwLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmU0ZjVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZW1wdHkwLnJuZwpAQCAtMCwwICsxLDE2IEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8c3RhcnQ+CisgICAgPHJlZiBuYW1lPSJ0b3AiLz4KKyAgPC9zdGFydD4KKyAgPGRlZmluZSBuYW1lPSJlbXB0eSI+CisgICAgPGVtcHR5Lz4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0idG9wIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJ0b3AiPgorCTxyZWYgbmFtZT0iZW1wdHkiLz4KKwk8ZWxlbWVudCBuYW1lPSJhIj4KKwkgIDx0ZXh0Lz4KKwk8L2VsZW1lbnQ+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2VtcHR5MF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2VtcHR5MF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmI0MmJjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZW1wdHkwXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPHRvcD4KKyAgPGEvPgorPC90b3A+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9lbXB0eTEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZW1wdHkxLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWRjZWZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZW1wdHkxLnJuZwpAQCAtMCwwICsxLDE4IEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8c3RhcnQ+CisgICAgPHJlZiBuYW1lPSJ0b3AiLz4KKyAgPC9zdGFydD4KKyAgPGRlZmluZSBuYW1lPSJlbXB0eSI+CisgICAgPGVtcHR5Lz4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0idG9wIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJ0b3AiPgorICAgICAgPGNob2ljZT4KKyAgICAgICAgPHJlZiBuYW1lPSJlbXB0eSIvPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJhIj4KKwkgIDx0ZXh0Lz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jaG9pY2U+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2VtcHR5MV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2VtcHR5MV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmI0MmJjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvZW1wdHkxXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPHRvcD4KKyAgPGEvPgorPC90b3A+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9lbXB0eTFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9lbXB0eTFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVhMDRhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2VtcHR5MV8xLnhtbApAQCAtMCwwICsxLDIgQEAKKzx0b3A+Cis8L3RvcD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2lubGluZS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbmxpbmUucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiNDA5NTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbmxpbmUucm5nCkBAIC0wLDAgKzEsMjAgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxzdGFydD4KKyAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICA8L3N0YXJ0PgorCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lIj4KKyAgICA8emVyb09yTW9yZT4KKyAgICAgIDxjaG9pY2U+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iY29kZSI+CisgICAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJlbSI+CisgICAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8IS0tIGV0YyAtLT4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvemVyb09yTW9yZT4KKyAgPC9kZWZpbmU+Cis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbmxpbmUyLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2lubGluZTIucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OGRjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbmxpbmUyLnJuZwpAQCAtMCwwICsxLDIxIEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lIj4KKyAgICA8emVyb09yTW9yZT4KKyAgICAgIDxyZWYgbmFtZT0iaW5saW5lLmNsYXNzIi8+CisgICAgPC96ZXJvT3JNb3JlPgorICA8L2RlZmluZT4KKworICA8ZGVmaW5lIG5hbWU9ImlubGluZS5jbGFzcyI+CisgICAgPGNob2ljZT4KKyAgICAgIDx0ZXh0Lz4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJvbGQiPgorCTxyZWYgbmFtZT0iaW5saW5lIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJpdGFsaWMiPgorCTxyZWYgbmFtZT0iaW5saW5lIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9jaG9pY2U+CisgIDwvZGVmaW5lPgorCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbmxpbmUzLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2lubGluZTMucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZjlkYjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbmxpbmUzLnJuZwpAQCAtMCwwICsxLDIyIEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lIj4KKyAgICA8emVyb09yTW9yZT4KKyAgICAgIDxjaG9pY2U+CisJPHRleHQvPgorCTxlbGVtZW50IG5hbWU9ImJvbGQiPgorCSAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKwk8L2VsZW1lbnQ+CisJPGVsZW1lbnQgbmFtZT0iaXRhbGljIj4KKwkgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisJPC9lbGVtZW50PgorCTxyZWYgbmFtZT0iaW5saW5lLmV4dHJhIi8+CisgICAgICA8L2Nob2ljZT4KKyAgICA8L3plcm9Pck1vcmU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lLmV4dHJhIj4KKyAgICA8bm90QWxsb3dlZC8+CisgIDwvZGVmaW5lPgorCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbnRlcmxlYXZlMF8wLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2ludGVybGVhdmUwXzAucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMDU1NDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbnRlcmxlYXZlMF8wLnJuZwpAQCAtMCwwICsxLDI0IEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiPgorICAgICAgPGludGVybGVhdmU+CisgICAgICAgIDx6ZXJvT3JNb3JlPgorCSAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisJICAgIDx0ZXh0Lz4KKwkgIDwvZWxlbWVudD4KKwkgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKwkgICAgPHRleHQvPgorCSAgPC9lbGVtZW50PgorICAgICAgICA8L3plcm9Pck1vcmU+CisgICAgICAgIDx6ZXJvT3JNb3JlPgorCSAgPGVsZW1lbnQgbmFtZT0iY29tcGFueSI+CisJICAgIDx0ZXh0Lz4KKwkgIDwvZWxlbWVudD4KKwkgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKwkgICAgPHRleHQvPgorCSAgPC9lbGVtZW50PgorICAgICAgICA8L3plcm9Pck1vcmU+CisgICAgICA8L2ludGVybGVhdmU+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbnRlcmxlYXZlMV8wLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2ludGVybGVhdmUxXzAucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4ZTk0ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9pbnRlcmxlYXZlMV8wLnJuZwpAQCAtMCwwICsxLDE1IEBACis8ZWxlbWVudCBuYW1lPSJkb2MiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxpbnRlcmxlYXZlPgorICAgIDxlbGVtZW50IG5hbWU9ImEiPgorICAgICAgPGVtcHR5Lz4KKyAgICA8L2VsZW1lbnQ+CisgICAgPHplcm9Pck1vcmU+CisgICAgICA8ZWxlbWVudCBuYW1lPSJiIj4KKyAgICAgICAgPGVtcHR5Lz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICA8L3plcm9Pck1vcmU+CisgIDwvaW50ZXJsZWF2ZT4KKyAgPGVsZW1lbnQgbmFtZT0iYyI+CisgICAgPGVtcHR5Lz4KKyAgPC9lbGVtZW50PgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvbGlidmlydC5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9saWJ2aXJ0LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWY1ODZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvbGlidmlydC5ybmcKQEAgLTAsMCArMSwxMjU4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICA8IS0tIFdlIGhhbmRsZSBvbmx5IGRvY3VtZW50IGRlZmluaW5nIGEgZG9tYWluIC0tPgorICA8c3RhcnQ+CisgICAgPHJlZiBuYW1lPSJkb21haW4iLz4KKyAgPC9zdGFydD4KKworICA8IS0tCisgICAgICBXZSBoYW5kbGUgb25seSBkb2N1bWVudCBkZWZpbmluZyBhIGRvbWFpbgorICAgIC0tPgorICA8ZGVmaW5lIG5hbWU9ImRvbWFpbiI+CisgICAgPGVsZW1lbnQgbmFtZT0iZG9tYWluIj4KKyAgICAgIDxyZWYgbmFtZT0iaHZzIi8+CisgICAgICA8cmVmIG5hbWU9ImlkcyIvPgorICAgICAgPGludGVybGVhdmU+CisgICAgICAgIDxyZWYgbmFtZT0ib3MiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJjbG9jayIvPgorICAgICAgICA8cmVmIG5hbWU9InJlc291cmNlcyIvPgorICAgICAgICA8cmVmIG5hbWU9ImZlYXR1cmVzIi8+CisgICAgICAgIDxyZWYgbmFtZT0idGVybWluYXRpb24iLz4KKyAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgIDxyZWYgbmFtZT0iZGV2aWNlcyIvPgorICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgPHJlZiBuYW1lPSJzZWNsYWJlbCIvPgorICAgICAgICA8L29wdGlvbmFsPgorICAgICAgPC9pbnRlcmxlYXZlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0ic2VjbGFiZWwiPgorICAgIDxlbGVtZW50IG5hbWU9InNlY2xhYmVsIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibW9kZWwiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPHZhbHVlPmR5bmFtaWM8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5zdGF0aWM8L3ZhbHVlPgorICAgICAgICA8L2Nob2ljZT4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibGFiZWwiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJodnMiPgorICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8dmFsdWU+eGVuPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPmt2bTwvdmFsdWU+CisgICAgICAgIDx2YWx1ZT5rcWVtdTwvdmFsdWU+CisgICAgICAgIDx2YWx1ZT5xZW11PC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPmx4YzwvdmFsdWU+CisgICAgICAgIDx2YWx1ZT5vcGVudno8L3ZhbHVlPgorICAgICAgICA8dmFsdWU+dGVzdDwvdmFsdWU+CisgICAgICA8L2Nob2ljZT4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0ib3MiPgorICAgIDxjaG9pY2U+CisgICAgICA8cmVmIG5hbWU9Im9zeGVuIi8+CisgICAgICA8cmVmIG5hbWU9Im9zaHZtIi8+CisgICAgICA8cmVmIG5hbWU9Im9zZXhlIi8+CisgICAgPC9jaG9pY2U+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9Im9zeGVuIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPGdyb3VwPgorICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgPHJlZiBuYW1lPSJib290bG9hZGVyIi8+CisgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9Im9zIj4KKyAgICAgICAgICA8cmVmIG5hbWU9Im9zdHlwZXhlbiIvPgorICAgICAgICAgIDxyZWYgbmFtZT0ib3Nib290a2VybmVsIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvZ3JvdXA+CisgICAgICA8Z3JvdXA+CisgICAgICAgIDxyZWYgbmFtZT0iYm9vdGxvYWRlciIvPgorICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ib3MiPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJvc3R5cGV4ZW4iLz4KKyAgICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgICAgPHJlZiBuYW1lPSJvc2Jvb3RrZXJuZWwiLz4KKyAgICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8L29wdGlvbmFsPgorICAgICAgPC9ncm91cD4KKyAgICA8L2Nob2ljZT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0ib3Nodm0iPgorICAgIDxlbGVtZW50IG5hbWU9Im9zIj4KKyAgICAgIDxyZWYgbmFtZT0ib3N0eXBlaHZtIi8+CisgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImxvYWRlciI+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImFic0ZpbGVQYXRoIi8+CisgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgIDxyZWYgbmFtZT0ib3Nib290a2VybmVsIi8+CisgICAgICAgICAgPHJlZiBuYW1lPSJvc2Jvb3RkZXYiLz4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgICA8L2ludGVybGVhdmU+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJvc3R5cGV4ZW4iPgorICAgIDxlbGVtZW50IG5hbWU9InR5cGUiPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImFyY2giPgorICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICA8dmFsdWU+aTY4NjwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+eDg2XzY0PC92YWx1ZT4KKyAgICAgICAgICAgIDx2YWx1ZT5pYTY0PC92YWx1ZT4KKyAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8L29wdGlvbmFsPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im1hY2hpbmUiPgorICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICA8dmFsdWU+eGVucHY8L3ZhbHVlPgorICAgICAgICAgICAgPHZhbHVlPnhlbm5lcjwvdmFsdWU+CisgICAgICAgICAgPC9jaG9pY2U+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxjaG9pY2U+CisgICAgICAgIDx2YWx1ZT54ZW48L3ZhbHVlPgorICAgICAgICA8dmFsdWU+bGludXg8L3ZhbHVlPgorICAgICAgPC9jaG9pY2U+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJvc3R5cGVodm0iPgorICAgIDxlbGVtZW50IG5hbWU9InR5cGUiPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgIDxyZWYgbmFtZT0iaHZteDg2Ii8+CisgICAgICAgICAgPHJlZiBuYW1lPSJodm1taXBzIi8+CisgICAgICAgICAgPHJlZiBuYW1lPSJodm1zcGFyYyIvPgorICAgICAgICAgIDxyZWYgbmFtZT0iaHZtcHBjIi8+CisgICAgICAgIDwvY2hvaWNlPgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDx2YWx1ZT5odm08L3ZhbHVlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iaHZteDg2Ij4KKyAgICA8Z3JvdXA+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImFyY2giPgorICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgIDx2YWx1ZT5pNjg2PC92YWx1ZT4KKyAgICAgICAgICA8dmFsdWU+eDg2XzY0PC92YWx1ZT4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWFjaGluZSI+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPHZhbHVlPnhlbmZ2PC92YWx1ZT4KKyAgICAgICAgICA8dmFsdWU+cGM8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5pc2FwYzwvdmFsdWU+CisgICAgICAgIDwvY2hvaWNlPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9ncm91cD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iaHZtbWlwcyI+CisgICAgPGdyb3VwPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhcmNoIj4KKyAgICAgICAgPHZhbHVlPm1pcHM8L3ZhbHVlPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1hY2hpbmUiPgorICAgICAgICA8dmFsdWU+bWlwczwvdmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L2dyb3VwPgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJodm1zcGFyYyI+CisgICAgPGdyb3VwPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhcmNoIj4KKyAgICAgICAgPHZhbHVlPnNwYXJjPC92YWx1ZT4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtYWNoaW5lIj4KKyAgICAgICAgPHZhbHVlPnN1bjRtPC92YWx1ZT4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvZ3JvdXA+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9Imh2bXBwYyI+CisgICAgPGdyb3VwPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhcmNoIj4KKyAgICAgICAgPHZhbHVlPnBwYzwvdmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWFjaGluZSI+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPHZhbHVlPmczYmVpZ2U8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5tYWM5OTwvdmFsdWU+CisgICAgICAgICAgPHZhbHVlPnByZXA8L3ZhbHVlPgorICAgICAgICA8L2Nob2ljZT4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvZ3JvdXA+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9Im9zZXhlIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJvcyI+CisgICAgICA8ZWxlbWVudCBuYW1lPSJ0eXBlIj4KKyAgICAgICAgPHZhbHVlPmV4ZTwvdmFsdWU+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImluaXQiPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJhYnNGaWxlUGF0aCIvPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8IS0tCisgICAgICBUaGUgSWRlbnRpZmllcnMgY2FuIGJlOgorICAgICAgLSBhbiBvcHRpb25hbCBpZCBhdHRyaWJ1dGUgd2l0aCBhIG51bWJlciBvbiB0aGUgZG9tYWluIGVsZW1lbnQKKyAgICAgIC0gYSBtYW5kYXRvcnkgbmFtZQorICAgICAgLSBhbiBvcHRpb25hbCB1dWlkCisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0iaWRzIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImlkIj4KKyAgICAgICAgPHJlZiBuYW1lPSJ1bnNpZ25lZEludCIvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9vcHRpb25hbD4KKyAgICA8aW50ZXJsZWF2ZT4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im5hbWUiPgorICAgICAgICA8cmVmIG5hbWU9ImRvbWFpbk5hbWUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0idXVpZCI+CisgICAgICAgICAgPHJlZiBuYW1lPSJVVUlEIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9pbnRlcmxlYXZlPgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgUmVzb3VyY2VzIHVzYWdlIGRlZmluZXMgdGhlIGFtb3VudCBvZiBtZW1vcnkgKG1heGltdW0gYW5kIHBvc3NpYmx5CisgICAgICBjdXJyZW50IHVzYWdlKSBhbmQgbnVtYmVyIG9mIHZpcnR1YWwgQ1BVcyB1c2VkIGJ5IHRoYXQgZG9tYWluLgorICAgICAgV2UgY2FuJ3QgY2hlY2sgaGVyZSB0aGUgcnVsZSB0aGF0IGN1cnJlbnRNZW1vcnkgPD0gbWVtb3J5CisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0icmVzb3VyY2VzIj4KKyAgICA8aW50ZXJsZWF2ZT4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1lbW9yeSI+CisgICAgICAgIDxyZWYgbmFtZT0ibWVtb3J5S0IiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iY3VycmVudE1lbW9yeSI+CisgICAgICAgICAgPHJlZiBuYW1lPSJtZW1vcnlLQiIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L29wdGlvbmFsPgorICAgICAgPG9wdGlvbmFsPgorCTxlbGVtZW50IG5hbWU9Im1lbW9yeUJhY2tpbmciPgorCSAgPG9wdGlvbmFsPgorCSAgICA8ZWxlbWVudCBuYW1lPSJodWdlcGFnZXMiPgorCSAgICAgIDxlbXB0eS8+CisJICAgIDwvZWxlbWVudD4KKwkgIDwvb3B0aW9uYWw+CisJPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0idmNwdSI+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjcHVzZXQiLz4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgIDxyZWYgbmFtZT0iY291bnRDUFUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICA8L2ludGVybGVhdmU+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImNsb2NrIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8ZWxlbWVudCBuYW1lPSJjbG9jayI+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ib2Zmc2V0Ij4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHZhbHVlPmxvY2FsdGltZTwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+dXRjPC92YWx1ZT4KKyAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxlbXB0eS8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKyAgPC9kZWZpbmU+CisgIDwhLS0KKyAgICAgIEEgYm9vdGxvYWRlciBtYXkgYmUgdXNlZCB0byBleHRyYWN0IHRoZSBPUyBpbmZvcm1hdGlvbiBpbnN0ZWFkIG9mCisgICAgICBkZWZpbmluZyB0aGUgT1MgcGFyYW1ldGVyIGluIHRoZSBpbnN0YW5jZS4gSXQgcG9pbnRzIGp1c3QgdG8gdGhlCisgICAgICBiaW5hcnkgb3Igc2NyaXB0IHVzZWQgdG8gZXh0cmFjdCB0aGUgZGF0YSBmcm9tIHRoZSBmaXJzdCBkaXNrIGRldmljZS4KKyAgICAtLT4KKyAgPGRlZmluZSBuYW1lPSJib290bG9hZGVyIj4KKyAgICA8aW50ZXJsZWF2ZT4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJvb3Rsb2FkZXIiPgorICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgIDxyZWYgbmFtZT0iYWJzRmlsZVBhdGgiLz4KKyAgICAgICAgICA8ZW1wdHkvPgorICAgICAgICA8L2Nob2ljZT4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iYm9vdGxvYWRlcl9hcmdzIj4KKyAgICAgICAgICA8dGV4dC8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9pbnRlcmxlYXZlPgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJvc2Jvb3RrZXJuZWwiPgorICAgIDxpbnRlcmxlYXZlPgorICAgICAgPGVsZW1lbnQgbmFtZT0ia2VybmVsIj4KKyAgICAgICAgPHJlZiBuYW1lPSJhYnNGaWxlUGF0aCIvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJpbml0cmQiPgorICAgICAgICAgIDxyZWYgbmFtZT0iYWJzRmlsZVBhdGgiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0icm9vdCI+CisgICAgICAgICAgPHJlZiBuYW1lPSJkZXZpY2VQYXRoIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9ImNtZGxpbmUiPgorICAgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICA8L2ludGVybGVhdmU+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9Im9zYm9vdGRldiI+CisgICAgPGVsZW1lbnQgbmFtZT0iYm9vdCI+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImRldiI+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPHZhbHVlPmhkPC92YWx1ZT4KKyAgICAgICAgICA8dmFsdWU+ZmQ8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5jZHJvbTwvdmFsdWU+CisgICAgICAgICAgPHZhbHVlPm5ldHdvcms8L3ZhbHVlPgorICAgICAgICA8L2Nob2ljZT4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPGVtcHR5Lz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImRpc2tzcGVjIj4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8cmVmIG5hbWU9ImRyaXZlciIvPgorICAgIDwvb3B0aW9uYWw+CisgICAgPHJlZiBuYW1lPSJ0YXJnZXQiLz4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8ZWxlbWVudCBuYW1lPSJyZWFkb25seSI+CisgICAgICAgIDxlbXB0eS8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8ZWxlbWVudCBuYW1lPSJzaGFyZWFibGUiPgorICAgICAgICA8ZW1wdHkvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvb3B0aW9uYWw+CisgICAgPG9wdGlvbmFsPgorICAgICAgPGVsZW1lbnQgbmFtZT0ic2VyaWFsIj4KKyAgICAgICAgPHJlZiBuYW1lPSJkaXNrU2VyaWFsIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9vcHRpb25hbD4KKyAgPC9kZWZpbmU+CisgIDwhLS0KKyAgICAgIEEgZGlzayBkZXNjcmlwdGlvbiBjYW4gYmUgZWl0aGVyIG9mIHR5cGUgZmlsZSBvciBibG9jaworICAgICAgVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBvbiB0aGUgc291cmNlIGVsZW1lbnQgZGVwZW5kcyBvbiB0aGUgdHlwZQorCisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0iZGlzayI+CisgICAgPGVsZW1lbnQgbmFtZT0iZGlzayI+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZGV2aWNlIj4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHZhbHVlPmZsb3BweTwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+ZGlzazwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+Y2Ryb208L3ZhbHVlPgorICAgICAgICAgIDwvY2hvaWNlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT5maWxlPC92YWx1ZT4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ic291cmNlIj4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImZpbGUiPgorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJhYnNGaWxlUGF0aCIvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImRpc2tzcGVjIi8+CisgICAgICAgICAgPC9pbnRlcmxlYXZlPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT5ibG9jazwvdmFsdWU+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPGludGVybGVhdmU+CisgICAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InNvdXJjZSI+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkZXYiPgorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkZXZpY2VOYW1lIi8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZGlza3NwZWMiLz4KKyAgICAgICAgICA8L2ludGVybGVhdmU+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDxyZWYgbmFtZT0iZGlza3NwZWMiLz4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0idGFyZ2V0Ij4KKyAgICA8ZWxlbWVudCBuYW1lPSJ0YXJnZXQiPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkZXYiPgorICAgICAgICA8cmVmIG5hbWU9ImRldmljZU5hbWUiLz4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImJ1cyI+CisgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgIDx2YWx1ZT5pZGU8L3ZhbHVlPgorICAgICAgICAgICAgPHZhbHVlPmZkYzwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+c2NzaTwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+dmlydGlvPC92YWx1ZT4KKyAgICAgICAgICAgIDx2YWx1ZT54ZW48L3ZhbHVlPgorICAgICAgICAgICAgPHZhbHVlPnVzYjwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+dW1sPC92YWx1ZT4KKyAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8L29wdGlvbmFsPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDwhLS0KKyAgICAgIERpc2sgbWF5IHVzZSBhIHNwZWNpYWwgZHJpdmVyIGZvciBhY2Nlc3MuIEN1cnJlbnRseSB0aGlzIGlzCisgICAgICBvbmx5IGRlZmluZWQgZm9yIFhlbiBmb3IgdGFwL2FpbyBhbmQgZmlsZSwgYnV0IHdpbGwgY2VydGFpbmx5IGJlCisgICAgICBleHRlbmRlZCBpbiB0aGUgZnV0dXJlLCBhbmQgbGlidmlydCBkb2Vzbid0IGxvb2sgZm9yIHNwZWNpZmljIHZhbHVlcy4KKyAgICAtLT4KKyAgPGRlZmluZSBuYW1lPSJkcml2ZXIiPgorICAgIDxlbGVtZW50IG5hbWU9ImRyaXZlciI+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPHJlZiBuYW1lPSJkcml2ZXJGb3JtYXQiLz4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImRyaXZlckNhY2hlIi8+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZHJpdmVyRm9ybWF0Ii8+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICA8cmVmIG5hbWU9ImRyaXZlckNhY2hlIi8+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICA8L2Nob2ljZT4KKyAgICAgIDxlbXB0eS8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJkcml2ZXJGb3JtYXQiPgorICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICA8cmVmIG5hbWU9ImdlbmVyaWNOYW1lIi8+CisgICAgPC9hdHRyaWJ1dGU+CisgICAgPG9wdGlvbmFsPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgPHJlZiBuYW1lPSJnZW5lcmljTmFtZSIvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9vcHRpb25hbD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iZHJpdmVyQ2FjaGUiPgorICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2FjaGUiPgorICAgICAgPGNob2ljZT4KKyAgICAgICAgPHZhbHVlPm5vbmU8L3ZhbHVlPgorICAgICAgICA8dmFsdWU+d3JpdGViYWNrPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPndyaXRldGhyb3VnaDwvdmFsdWU+CisgICAgICA8L2Nob2ljZT4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iZmlsZXN5c3RlbSI+CisgICAgPGVsZW1lbnQgbmFtZT0iZmlsZXN5c3RlbSI+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT5maWxlPC92YWx1ZT4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InNvdXJjZSI+CisgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZmlsZSI+CisgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJhYnNGaWxlUGF0aCIvPgorICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZmlsZXN5c3RlbXRndCIvPgorICAgICAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwPgorICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgICAgICA8dmFsdWU+YmxvY2s8L3ZhbHVlPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxpbnRlcmxlYXZlPgorICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ic291cmNlIj4KKyAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkZXYiPgorICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZGV2aWNlTmFtZSIvPgorICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZmlsZXN5c3RlbXRndCIvPgorICAgICAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwPgorICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgICAgICA8dmFsdWU+bW91bnQ8L3ZhbHVlPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxpbnRlcmxlYXZlPgorICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ic291cmNlIj4KKyAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkaXIiPgorICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iYWJzRmlsZVBhdGgiLz4KKyAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImZpbGVzeXN0ZW10Z3QiLz4KKyAgICAgICAgICA8L2ludGVybGVhdmU+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDxncm91cD4KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiPgorICAgICAgICAgICAgPHZhbHVlPnRlbXBsYXRlPC92YWx1ZT4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InNvdXJjZSI+CisgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJnZW5lcmljTmFtZSIvPgorICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZmlsZXN5c3RlbXRndCIvPgorICAgICAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iZmlsZXN5c3RlbXRndCI+CisgICAgPGVsZW1lbnQgbmFtZT0idGFyZ2V0Ij4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZGlyIj4KKyAgICAgICAgPHJlZiBuYW1lPSJhYnNEaXJQYXRoIi8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxlbXB0eS8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgQW4gaW50ZXJmYWNlIGRlc2NyaXB0aW9uIGNhbiBlaXRoZXIgYmUgb2YgdHlwZSBicmlkZ2UgaW4gd2hpY2ggY2FzZQorICAgICAgaXQgd2lsbCB1c2UgYSBicmlkZ2luZyBzb3VyY2UsIG9yIG9mIHR5cGUgZXRoZXJuZXQgd2hpY2ggdXNlcyBhIGRldmljZQorICAgICAgc291cmNlIGFuZCBhIGRldmljZSB0YXJnZXQgaW5zdGVhZC4gVGhleSBib3RoIHNoYXJlIGEgc2V0IG9mIGludGVyZmFjZQorICAgICAgb3B0aW9ucy4gRklYTUUKKyAgICAtLT4KKyAgPGRlZmluZSBuYW1lPSJpbnRlcmZhY2UiPgorICAgIDxlbGVtZW50IG5hbWU9ImludGVyZmFjZSI+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT5icmlkZ2U8L3ZhbHVlPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxpbnRlcmxlYXZlPgorICAgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJzb3VyY2UiPgorICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYnJpZGdlIj4KKyAgICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0iZGV2aWNlTmFtZSIvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImludGVyZmFjZS1vcHRpb25zIi8+CisgICAgICAgICAgPC9pbnRlcmxlYXZlPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT5ldGhlcm5ldDwvdmFsdWU+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPGludGVybGVhdmU+CisgICAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InNvdXJjZSI+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkZXYiPgorICAgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkZXZpY2VOYW1lIi8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iaW50ZXJmYWNlLW9wdGlvbnMiLz4KKyAgICAgICAgICA8L2ludGVybGVhdmU+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDxncm91cD4KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiPgorICAgICAgICAgICAgPHZhbHVlPm5ldHdvcms8L3ZhbHVlPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxpbnRlcmxlYXZlPgorICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ic291cmNlIj4KKyAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJuZXR3b3JrIj4KKyAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRldmljZU5hbWUiLz4KKyAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImludGVyZmFjZS1vcHRpb25zIi8+CisgICAgICAgICAgPC9pbnRlcmxlYXZlPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT51c2VyPC92YWx1ZT4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iaW50ZXJmYWNlLW9wdGlvbnMiLz4KKyAgICAgICAgICA8L2ludGVybGVhdmU+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDxncm91cD4KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiPgorICAgICAgICAgICAgPHZhbHVlPmludGVybmFsPC92YWx1ZT4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InNvdXJjZSI+CisgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJkZXZpY2VOYW1lIi8+CisgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgICAgICA8ZW1wdHkvPgorICAgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICAgICAgPHJlZiBuYW1lPSJpbnRlcmZhY2Utb3B0aW9ucyIvPgorICAgICAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDwhLS0KKyAgICAgIFRoZSBpbnRlcmZhY2Ugb3B0aW9ucyBwb3NzaWJsZSBhcmU6CisgICAgICAgIC0gdGhlIE1BQyBhZGRyZXNzCisgICAgICAgIC0gdGhlIElQIGFkZHJlc3MgYm91bmQgdG8gdGhlIGludGVyZmFjZQorICAgICAgICAtIHRoZSBuYW1lIG9mIHRoZSBzY3JpcHQgdXNlZCB0byBzZXQgdXAgdGhlIGJpbmRpbmcKKyAgICAgICAgLSB0aGUgdGFyZ2V0IGRldmljZSB1c2VkCisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0iaW50ZXJmYWNlLW9wdGlvbnMiPgorICAgIDxpbnRlcmxlYXZlPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJ0YXJnZXQiPgorICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZGV2Ij4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZGV2aWNlTmFtZSIvPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9Im1hYyI+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhZGRyZXNzIj4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iYWRkck1BQyIvPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9ImlwIj4KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImFkZHJlc3MiPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJhZGRySVAiLz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8ZW1wdHkvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L29wdGlvbmFsPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJzY3JpcHQiPgorICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icGF0aCI+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImZpbGVQYXRoIi8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0ibW9kZWwiPgorICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSIvPgorICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9pbnRlcmxlYXZlPgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgQW4gZW11bGF0b3IgZGVzY3JpcHRpb24gaXMganVzdCBhIHBhdGggdG8gdGhlIGJpbmFyeSB1c2VkIGZvciB0aGUgdGFzaworICAgIC0tPgorICA8ZGVmaW5lIG5hbWU9ImVtdWxhdG9yIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJlbXVsYXRvciI+CisgICAgICA8cmVmIG5hbWU9ImFic0ZpbGVQYXRoIi8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgQSBncmFwaGljIGRlc2NyaXB0aW9uLCBjdXJyZW50bHkgaW4gWGVuIG9ubHkgMiB0eXBlcyBhcmUgc3VwcG9ydGVkOgorICAgICAgICAtIHNkbCB3aXRoIG9wdGlvbmFsIGRpc3BsYXksIHhhdXRoIGFuZCBmdWxsc2NyZWVuCisgICAgICAgIC0gdm5jIHdpdGggYSByZXF1aXJlZCBwb3J0IGFuZCBvcHRpb25hbCBsaXN0ZW4gSVAgYWRkcmVzcywgcGFzc3dvcmQKKyAgICAgICAgICBhbmQga2V5bWFwCisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0iZ3JhcGhpYyI+CisgICAgPGVsZW1lbnQgbmFtZT0iZ3JhcGhpY3MiPgorICAgICAgPGNob2ljZT4KKyAgICAgICAgPGdyb3VwPgorICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgICAgICA8dmFsdWU+c2RsPC92YWx1ZT4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImRpc3BsYXkiPgorICAgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ieGF1dGgiPgorICAgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZnVsbHNjcmVlbiI+CisgICAgICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICAgICAgPHZhbHVlPnllczwvdmFsdWU+CisgICAgICAgICAgICAgICAgPHZhbHVlPm5vPC92YWx1ZT4KKyAgICAgICAgICAgICAgPC9jaG9pY2U+CisgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT52bmM8L3ZhbHVlPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icG9ydCI+CisgICAgICAgICAgICAgIDxyZWYgbmFtZT0iUG9ydE51bWJlciIvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImF1dG9wb3J0Ij4KKyAgICAgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+eWVzPC92YWx1ZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+bm88L3ZhbHVlPgorICAgICAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJsaXN0ZW4iPgorICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFkZHJJUCIvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InBhc3N3ZCI+CisgICAgICAgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJrZXltYXAiPgorICAgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgICAgICAgIDx2YWx1ZT5yZHA8L3ZhbHVlPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icG9ydCI+CisgICAgICAgICAgICAgIDxyZWYgbmFtZT0iUG9ydE51bWJlciIvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImF1dG9wb3J0Ij4KKyAgICAgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+eWVzPC92YWx1ZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+bm88L3ZhbHVlPgorICAgICAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJyZXBsYWNlVXNlciI+CisgICAgICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICAgICAgPHZhbHVlPnllczwvdmFsdWU+CisgICAgICAgICAgICAgICAgPHZhbHVlPm5vPC92YWx1ZT4KKyAgICAgICAgICAgICAgPC9jaG9pY2U+CisgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibXVsdGlVc2VyIj4KKyAgICAgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+eWVzPC92YWx1ZT4KKyAgICAgICAgICAgICAgICA8dmFsdWU+bm88L3ZhbHVlPgorICAgICAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJsaXN0ZW4iPgorICAgICAgICAgICAgICA8cmVmIG5hbWU9ImFkZHJJUCIvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwPgorICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgICAgICA8dmFsdWU+ZGVza3RvcDwvdmFsdWU+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkaXNwbGF5Ij4KKyAgICAgICAgICAgICAgPHRleHQvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImZ1bGxzY3JlZW4iPgorICAgICAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgICAgIDx2YWx1ZT55ZXM8L3ZhbHVlPgorICAgICAgICAgICAgICAgIDx2YWx1ZT5ubzwvdmFsdWU+CisgICAgICAgICAgICAgIDwvY2hvaWNlPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDwhLS0KKyAgICAgQSBncmFwaGljIGRlc2NyaXB0aW9uLCBjdXJyZW50bHkgaW4gWGVuIG9ubHkgMiB0eXBlcyBhcmUgc3VwcG9ydGVkOgorICAgICAgIC0gc2RsIHdpdGggb3B0aW9uYWwgZGlzcGxheSwgeGF1dGggYW5kIGZ1bGxzY3JlZW4KKyAgICAgICAtIHZuYyB3aXRoIGEgcmVxdWlyZWQgcG9ydCBhbmQgb3B0aW9uYWwgbGlzdGVuIElQIGFkZHJlc3MsIHBhc3N3b3JkCisgICAgICAgICBhbmQga2V5bWFwCisgICAtLT4KKyAgPGRlZmluZSBuYW1lPSJ2aWRlbyI+CisgICAgPGVsZW1lbnQgbmFtZT0idmlkZW8iPgorICAgICAgPG9wdGlvbmFsPgorCTxlbGVtZW50IG5hbWU9Im1vZGVsIj4KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiPgorICAgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgICAgPHZhbHVlPnZnYTwvdmFsdWU+CisgICAgICAgICAgICAgIDx2YWx1ZT5jaXJydXM8L3ZhbHVlPgorICAgICAgICAgICAgICA8dmFsdWU+dm12Z2E8L3ZhbHVlPgorICAgICAgICAgICAgICA8dmFsdWU+eGVuPC92YWx1ZT4KKyAgICAgICAgICAgICAgPHZhbHVlPnZib3g8L3ZhbHVlPgorICAgICAgICAgICAgPC9jaG9pY2U+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ2cmFtIj4KKyAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ1bnNpZ25lZEludCIvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImhlYWRzIj4KKyAgICAgICAgICAgICAgPHJlZiBuYW1lPSJ1bnNpZ25lZEludCIvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJhY2NlbGVyYXRpb24iPgorICAgICAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJhY2NlbDNkIj4KKyAgICAgICAgICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICAgICAgICAgIDx2YWx1ZT55ZXM8L3ZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8dmFsdWU+bm88L3ZhbHVlPgorICAgICAgICAgICAgICAgICAgPC9jaG9pY2U+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImFjY2VsMmQiPgorICAgICAgICAgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgICAgICAgICAgPHZhbHVlPnllczwvdmFsdWU+CisgICAgICAgICAgICAgICAgICAgIDx2YWx1ZT5ubzwvdmFsdWU+CisgICAgICAgICAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICA8L29wdGlvbmFsPgorCTwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgV2hlbiBhIGRvbWFpbiB0ZXJtaW5hdGVzIG11bHRpcGxlIHBvbGljaWVzIGNhbiBiZSBhcHBsaWVkIGRlcGVuZGluZworICAgICAgb24gaG93IGl0IGVuZGVkOgorICAgIC0tPgorICA8ZGVmaW5lIG5hbWU9InRlcm1pbmF0aW9uIj4KKyAgICA8aW50ZXJsZWF2ZT4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0ib25fcmVib290Ij4KKyAgICAgICAgICA8cmVmIG5hbWU9Im9mZk9wdGlvbnMiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0ib25fcG93ZXJvZmYiPgorICAgICAgICAgIDxyZWYgbmFtZT0ib2ZmT3B0aW9ucyIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L29wdGlvbmFsPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJvbl9jcmFzaCI+CisgICAgICAgICAgPHJlZiBuYW1lPSJvZmZPcHRpb25zIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9pbnRlcmxlYXZlPgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgT3B0aW9ucyB3aGVuIGEgZG9tYWluIHRlcm1pbmF0ZXM6CisgICAgICBkZXN0cm95OiBUaGUgZG9tYWluIGlzIGNsZWFuZWQgdXAKKyAgICAgIHJlc3RhcnQ6IEEgbmV3IGRvbWFpbiBpcyBzdGFydGVkIGluIHBsYWNlIG9mIHRoZSBvbGQgb25lCisgICAgICBwcmVzZXJ2ZTogVGhlIGRvbWFpbiB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgdW50aWwgaXQgaXMgZGVzdHJveWVkIG1hbnVhbGx5CisgICAgICByZW5hbWUtcmVzdGFydDogYSB2YXJpYW50IG9mIHRoZSBwcmV2aW91cyBvbmUgYnV0IHdoZXJlIHRoZSBvbGQgZG9tYWluIGlzCisgICAgICAgICAgICAgICAgICAgICAgcmVuYW1lZCBiZWZvcmUgYmVpbmcgc2F2ZWQgdG8gYWxsb3cgYSByZXN0YXJ0CisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0ib2ZmT3B0aW9ucyI+CisgICAgPGNob2ljZT4KKyAgICAgIDx2YWx1ZT5kZXN0cm95PC92YWx1ZT4KKyAgICAgIDx2YWx1ZT5yZXN0YXJ0PC92YWx1ZT4KKyAgICAgIDx2YWx1ZT5wcmVzZXJ2ZTwvdmFsdWU+CisgICAgICA8dmFsdWU+cmVuYW1lLXJlc3RhcnQ8L3ZhbHVlPgorICAgIDwvY2hvaWNlPgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgU3BlY2lmaWMgc2V0dXAgZm9yIGEgcWVtdSBlbXVsYXRlZCBjaGFyYWN0ZXIgZGV2aWNlLiAgTm90ZTogdGhpcworICAgICAgZGVmaW5pdGlvbiBkb2Vzbid0IGZ1bGx5IHNwZWNpZnkgdGhlIGNvbnN0cmFpbnRzIG9uIHRoaXMgbm9kZS4KKyAgICAtLT4KKyAgPGRlZmluZSBuYW1lPSJxZW11Y2RldiI+CisgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4KKyAgICAgIDxjaG9pY2U+CisgICAgICAgIDx2YWx1ZT5kZXY8L3ZhbHVlPgorICAgICAgICA8dmFsdWU+ZmlsZTwvdmFsdWU+CisgICAgICAgIDx2YWx1ZT5waXBlPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPnVuaXg8L3ZhbHVlPgorICAgICAgICA8dmFsdWU+dGNwPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPnVkcDwvdmFsdWU+CisgICAgICAgIDx2YWx1ZT5udWxsPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPnN0ZGlvPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPnZjPC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPnB0eTwvdmFsdWU+CisgICAgICA8L2Nob2ljZT4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgICA8aW50ZXJsZWF2ZT4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPG9uZU9yTW9yZT4KKyAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJzb3VyY2UiPgorICAgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im1vZGUiLz4KKyAgICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icGF0aCIvPgorICAgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJob3N0Ii8+CisgICAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InNlcnZpY2UiLz4KKyAgICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0id2lyZW1vZGUiLz4KKyAgICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8L29uZU9yTW9yZT4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxlbGVtZW50IG5hbWU9InByb3RvY29sIj4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiLz4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L29wdGlvbmFsPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJ0YXJnZXQiPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0icG9ydCIvPgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9pbnRlcmxlYXZlPgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgVGhlIGRlc2NyaXB0aW9uIGZvciBhIGNvbnNvbGUKKyAgICAgIGp1c3QgYSB0dHkgZGV2aWNlCisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0iY29uc29sZSI+CisgICAgPGVsZW1lbnQgbmFtZT0iY29uc29sZSI+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0dHkiPgorICAgICAgICAgICAgICA8cmVmIG5hbWU9ImRldmljZVBhdGgiLz4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPHJlZiBuYW1lPSJxZW11Y2RldiIvPgorICAgICAgPC9jaG9pY2U+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJzb3VuZCI+CisgICAgPGVsZW1lbnQgbmFtZT0ic291bmQiPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtb2RlbCI+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPHZhbHVlPnNiMTY8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5lczEzNzA8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5wY3NwazwvdmFsdWU+CisgICAgICAgICAgPHZhbHVlPmFjOTc8L3ZhbHVlPgorICAgICAgICA8L2Nob2ljZT4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0icGFyYWxsZWwiPgorICAgIDxlbGVtZW50IG5hbWU9InBhcmFsbGVsIj4KKyAgICAgIDxyZWYgbmFtZT0icWVtdWNkZXYiLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9InNlcmlhbCI+CisgICAgPGVsZW1lbnQgbmFtZT0ic2VyaWFsIj4KKyAgICAgIDxyZWYgbmFtZT0icWVtdWNkZXYiLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImlucHV0Ij4KKyAgICA8ZWxlbWVudCBuYW1lPSJpbnB1dCI+CisgICAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiPgorICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgIDx2YWx1ZT50YWJsZXQ8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5tb3VzZTwvdmFsdWU+CisgICAgICAgIDwvY2hvaWNlPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8b3B0aW9uYWw+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYnVzIj4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHZhbHVlPnBzMjwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+dXNiPC92YWx1ZT4KKyAgICAgICAgICAgIDx2YWx1ZT54ZW48L3ZhbHVlPgorICAgICAgICAgIDwvY2hvaWNlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJob3N0ZGV2Ij4KKyAgICA8ZWxlbWVudCBuYW1lPSJob3N0ZGV2Ij4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtb2RlIj4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHZhbHVlPnN1YnN5c3RlbTwvdmFsdWU+CisgICAgICAgICAgICA8dmFsdWU+Y2FwYWJpbGl0aWVzPC92YWx1ZT4KKyAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgIDx2YWx1ZT51c2I8L3ZhbHVlPgorICAgICAgICAgICAgPHZhbHVlPnBjaTwvdmFsdWU+CisgICAgICAgICAgPC9jaG9pY2U+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im1hbmFnZWQiPgorICAgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgICA8dmFsdWU+eWVzPC92YWx1ZT4KKyAgICAgICAgICAgIDx2YWx1ZT5ubzwvdmFsdWU+CisgICAgICAgICAgPC9jaG9pY2U+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPC9vcHRpb25hbD4KKyAgICAgIDxncm91cD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0ic291cmNlIj4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJ1c2Jwcm9kdWN0Ii8+CisgICAgICAgICAgICA8cmVmIG5hbWU9InVzYmFkZHJlc3MiLz4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0icGNpYWRkcmVzcyIvPgorICAgICAgICAgIDwvY2hvaWNlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2dyb3VwPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0idXNicHJvZHVjdCI+CisgICAgPGVsZW1lbnQgbmFtZT0idmVuZG9yIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iaWQiPgorICAgICAgICA8cmVmIG5hbWU9InVzYklkIi8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L2VsZW1lbnQ+CisgICAgPGVsZW1lbnQgbmFtZT0icHJvZHVjdCI+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImlkIj4KKyAgICAgICAgPHJlZiBuYW1lPSJ1c2JJZCIvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJ1c2JhZGRyZXNzIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJhZGRyZXNzIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYnVzIj4KKyAgICAgICAgPHJlZiBuYW1lPSJ1c2JBZGRyIi8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZGV2aWNlIj4KKyAgICAgICAgPHJlZiBuYW1lPSJ1c2JBZGRyIi8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9InBjaWFkZHJlc3MiPgorICAgIDxlbGVtZW50IG5hbWU9ImFkZHJlc3MiPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImRvbWFpbiI+CisgICAgICAgICAgPHJlZiBuYW1lPSJwY2lEb21haW4iLz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8L29wdGlvbmFsPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJidXMiPgorICAgICAgICA8cmVmIG5hbWU9InBjaUJ1cyIvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8YXR0cmlidXRlIG5hbWU9InNsb3QiPgorICAgICAgICA8cmVmIG5hbWU9InBjaVNsb3QiLz4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJmdW5jdGlvbiI+CisgICAgICAgIDxyZWYgbmFtZT0icGNpRnVuYyIvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgRGV2aWNlcyBhdHRhY2hlZCB0byBhIGRvbWFpbi4KKyAgICAtLT4KKyAgPGRlZmluZSBuYW1lPSJkZXZpY2VzIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJkZXZpY2VzIj4KKyAgICAgIDxpbnRlcmxlYXZlPgorICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgPHJlZiBuYW1lPSJlbXVsYXRvciIvPgorICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8emVyb09yTW9yZT4KKyAgICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJkaXNrIi8+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImZpbGVzeXN0ZW0iLz4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iaW50ZXJmYWNlIi8+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImlucHV0Ii8+CisgICAgICAgICAgICA8cmVmIG5hbWU9InNvdW5kIi8+CisgICAgICAgICAgICA8cmVmIG5hbWU9Imhvc3RkZXYiLz4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZ3JhcGhpYyIvPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJ2aWRlbyIvPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJjb25zb2xlIi8+CisgICAgICAgICAgICA8cmVmIG5hbWU9InBhcmFsbGVsIi8+CisgICAgICAgICAgICA8cmVmIG5hbWU9InNlcmlhbCIvPgorICAgICAgICAgIDwvY2hvaWNlPgorICAgICAgICA8L3plcm9Pck1vcmU+CisgICAgICA8L2ludGVybGVhdmU+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgPCEtLQorICAgICAgQSBzZXQgb2Ygb3B0aW9uYWwgZmVhdHVyZXM6IFBBRSwgQVBJQyBhbmQgQUNQSSBzdXBwb3J0CisgICAgLS0+CisgIDxkZWZpbmUgbmFtZT0iZmVhdHVyZXMiPgorICAgIDxvcHRpb25hbD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImZlYXR1cmVzIj4KKyAgICAgICAgPGludGVybGVhdmU+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0icGFlIj4KKyAgICAgICAgICAgICAgPGVtcHR5Lz4KKyAgICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImFwaWMiPgorICAgICAgICAgICAgICA8ZW1wdHkvPgorICAgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iYWNwaSI+CisgICAgICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgICAgPC9vcHRpb25hbD4KKyAgICAgICAgPC9pbnRlcmxlYXZlPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvb3B0aW9uYWw+CisgIDwvZGVmaW5lPgorICA8IS0tCisgICAgICAgVHlwZSBsaWJyYXJ5CisKKyAgICAgICBPdXIgdW5zaWduZWRJbnQgZG9lc24ndCBhbGxvdyBhIGxlYWRpbmcgJysnIGluIGl0cyBsZXhpY2FsIGZvcm0KKyAgICAgICBBIGRvbWFpbiBuYW1lIHNob3VsIGJlIG1hZGUgb2YgYXNjaWksIG51bWJlcnMsIF8tKyBhbmQgaXMgbm9uLWVtcHR5CisgICAgICAgVVVJRCBjdXJyZW50bHkgYWxsb3dzIG9ubHkgdGhlIDMyIGNoYXJhY3RlcnMgc3RyaWN0IHN5bnRheAorICAgICAgIG1lbW9yeUtCIHJlcXVlc3QgYXQgbGVhc3QgNE1ieXRlcyB0aG91Z2ggWGVuIHdpbGwgZ3JvdyBiaWdnZXIgaWYgdG9vIGxvdworICAgIC0tPgorICA8ZGVmaW5lIG5hbWU9InVuc2lnbmVkSW50Ij4KKyAgICA8ZGF0YSB0eXBlPSJ1bnNpZ25lZEludCI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+WzAtOV0rPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImNvdW50Q1BVIj4KKyAgICA8ZGF0YSB0eXBlPSJ1bnNpZ25lZFNob3J0Ij4KKyAgICAgIDxwYXJhbSBuYW1lPSJwYXR0ZXJuIj5bMC05XSs8L3BhcmFtPgorICAgICAgPHBhcmFtIG5hbWU9Im1pbkluY2x1c2l2ZSI+MTwvcGFyYW0+CisgICAgPC9kYXRhPgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJQb3J0TnVtYmVyIj4KKyAgICA8ZGF0YSB0eXBlPSJzaG9ydCI+CisgICAgICA8cGFyYW0gbmFtZT0ibWluSW5jbHVzaXZlIj4tMTwvcGFyYW0+CisgICAgPC9kYXRhPgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJtZW1vcnlLQiI+CisgICAgPGRhdGEgdHlwZT0idW5zaWduZWRJbnQiPgorICAgICAgPHBhcmFtIG5hbWU9InBhdHRlcm4iPlswLTldKzwvcGFyYW0+CisgICAgICA8cGFyYW0gbmFtZT0ibWluSW5jbHVzaXZlIj40MDAwPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImRvbWFpbk5hbWUiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+W0EtWmEtejAtOV9cLlwrXC0mYW1wOzovXSs8L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iZGlza1NlcmlhbCI+CisgICAgPGRhdGEgdHlwZT0ic3RyaW5nIj4KKyAgICAgIDxwYXJhbSBuYW1lPSJwYXR0ZXJuIj5bQS1aYS16MC05X1wuXCtcLV0rPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImdlbmVyaWNOYW1lIj4KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPgorICAgICAgPHBhcmFtIG5hbWU9InBhdHRlcm4iPlthLXpBLVowLTlfXCtcLV0rPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9IlVVSUQiPgorICAgIDxjaG9pY2U+CisgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPgorICAgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+W2EtZkEtRjAtOV17MzJ9PC9wYXJhbT4KKyAgICAgIDwvZGF0YT4KKyAgICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICAgIDxwYXJhbSBuYW1lPSJwYXR0ZXJuIj5bYS1mQS1GMC05XXs4fVwtKFthLWZBLUYwLTldezR9XC0pezN9W2EtZkEtRjAtOV17MTJ9PC9wYXJhbT4KKyAgICAgIDwvZGF0YT4KKyAgICA8L2Nob2ljZT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iZmlsZVBhdGgiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+W2EtekEtWjAtOV9cLlwrXC0mYW1wOy8lXSs8L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iYWJzRmlsZVBhdGgiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+L1thLXpBLVowLTlfXC5cK1wtJmFtcDsvJV0rPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImFic0RpclBhdGgiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+L1thLXpBLVowLTlfXC5cK1wtJmFtcDsvJV0qPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImRldmljZVBhdGgiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+L1thLXpBLVowLTlfXCtcLS8lXSs8L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0iZGV2aWNlTmFtZSI+CisgICAgPGRhdGEgdHlwZT0ic3RyaW5nIj4KKyAgICAgIDxwYXJhbSBuYW1lPSJwYXR0ZXJuIj5bYS16QS1aMC05X1wuXC06L10rPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImFkZHJNQUMiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+KFthLWZBLUYwLTldezJ9Oil7NX1bYS1mQS1GMC05XXsyfTwvcGFyYW0+CisgICAgPC9kYXRhPgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJhZGRySVAiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+KFswLTJdP1swLTldP1swLTldXC4pezN9WzAtMl0/WzAtOV0/WzAtOV08L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0idXNiSWQiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+KDB4KT9bMC05YS1mQS1GXXsxLDR9PC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9InVzYkFkZHIiPgorICAgIDxkYXRhIHR5cGU9InN0cmluZyI+CisgICAgICA8cGFyYW0gbmFtZT0icGF0dGVybiI+KDB4KT9bMC05YS1mQS1GXXsxLDN9PC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9InBjaURvbWFpbiI+CisgICAgPGRhdGEgdHlwZT0ic3RyaW5nIj4KKyAgICAgIDxwYXJhbSBuYW1lPSJwYXR0ZXJuIj4oMHgpP1swLTlhLWZBLUZdezEsNH08L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0icGNpQnVzIj4KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPgorICAgICAgPHBhcmFtIG5hbWU9InBhdHRlcm4iPigweCk/WzAtOWEtZkEtRl17MSwyfTwvcGFyYW0+CisgICAgPC9kYXRhPgorICA8L2RlZmluZT4KKyAgPGRlZmluZSBuYW1lPSJwY2lTbG90Ij4KKyAgICA8ZGF0YSB0eXBlPSJzdHJpbmciPgorICAgICAgPHBhcmFtIG5hbWU9InBhdHRlcm4iPigweCk/WzAtMV0/WzAtOWEtZkEtRl08L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0icGNpRnVuYyI+CisgICAgPGRhdGEgdHlwZT0ic3RyaW5nIj4KKyAgICAgIDxwYXJhbSBuYW1lPSJwYXR0ZXJuIj4oMHgpP1swLTddPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgIDwvZGVmaW5lPgorPC9ncmFtbWFyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvbGlidmlydF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2xpYnZpcnRfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE3ZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2xpYnZpcnRfMC54bWwKQEAgLTAsMCArMSwyMyBAQAorPGRvbWFpbiB0eXBlPSd4ZW4nIGlkPSc2Jz4KKyAgPG5hbWU+cHZ0ZXN0PC9uYW1lPgorICA8dXVpZD41OTZhNWQyMTcxZjQ4ZmIyZTA2OGUyMzg2YTVjNDEzZTwvdXVpZD4KKyAgPG9zPgorICAgIDx0eXBlPmxpbnV4PC90eXBlPgorICAgIDxrZXJuZWw+L3Zhci9saWIveGVuL3ZtbGludXouMkRuMllUPC9rZXJuZWw+CisgICAgPGluaXRyZD4vdmFyL2xpYi94ZW4vaW5pdHJkLmltZy4wdS1WaHE8L2luaXRyZD4KKyAgICA8Y21kbGluZT4gbWV0aG9kPWh0dHA6Ly9kb3dubG9hZC5mZWRvcmEuZGV2ZWwucmVkaGF0LmNvbS9wdWIvZmVkb3JhL2xpbnV4L2NvcmUvdGVzdC81LjkxL3g4Nl82NC9vcyAgPC9jbWRsaW5lPgorICA8L29zPgorICA8bWVtb3J5PjQzMDA4MDwvbWVtb3J5PgorICA8dmNwdT4yPC92Y3B1PgorICA8b25fcG93ZXJvZmY+ZGVzdHJveTwvb25fcG93ZXJvZmY+CisgIDxvbl9yZWJvb3Q+ZGVzdHJveTwvb25fcmVib290PgorICA8b25fY3Jhc2g+ZGVzdHJveTwvb25fY3Jhc2g+CisgIDxkZXZpY2VzPgorICAgIDxkaXNrIHR5cGU9J2ZpbGUnIGRldmljZT0nZGlzayc+CisgICAgICA8ZHJpdmVyIG5hbWU9J2ZpbGUnLz4KKyAgICAgIDxzb3VyY2UgZmlsZT0nL3Jvb3Qvc29tZS5pbWcnLz4KKyAgICAgIDx0YXJnZXQgZGV2PSd4dmRhJy8+CisgICAgPC9kaXNrPgorICAgIDxncmFwaGljcyB0eXBlPSd2bmMnIHBvcnQ9Jy0xJyBhdXRvcG9ydD0neWVzJyBsaXN0ZW49IjEyNy4wLjAuMSIgcGFzc3dkPSIxMjM0NTYiIGtleW1hcD0iamEiLz4KKyAgPC9kZXZpY2VzPgorPC9kb21haW4+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9saXN0LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2xpc3Qucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZGUxN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9saXN0LnJuZwpAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGdyYW1tYXIKKyAgICB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgICAgeG1sbnM6YT0iaHR0cDovL3JlbGF4bmcub3JnL25zL2NvbXBhdGliaWxpdHkvYW5ub3RhdGlvbnMvMS4wIgorICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKworPGRlZmluZSBuYW1lPSJwYXR0ZXJuMSI+CisgICAgPGRhdGEgdHlwZT0ic3RyaW5nIj4KKyAgICAgICAgPHBhcmFtIG5hbWU9InBhdHRlcm4iPi0/KFswLTldKyhcLlswLTldKik/fFwuWzAtOV0rKTwvcGFyYW0+CisgICAgPC9kYXRhPgorPC9kZWZpbmU+CisKKzxzdGFydD4KKyAgICA8ZWxlbWVudCBuYW1lPSJlbGVtMSI+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iYXR0cjEiPgorICAgICAgICAgICAgPGxpc3Q+CisgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJwYXR0ZXJuMSIvPgorICAgICAgICAgICAgPC9saXN0PgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L2VsZW1lbnQ+Cis8L3N0YXJ0PgorCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9saXN0XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvbGlzdF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmI0ZDYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvbGlzdF8wLnhtbApAQCAtMCwwICsxIEBACis8ZWxlbTEgYXR0cjE9IjAiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL2xpc3RfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9saXN0XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4OTA3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9saXN0XzEueG1sCkBAIC0wLDAgKzEgQEAKKzxlbGVtMSBhdHRyMT0iYSIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvcGF0dGVybjEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvcGF0dGVybjEucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1ODVlODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9wYXR0ZXJuMS5ybmcKQEAgLTAsMCArMSw4IEBACis8Z3JvdXAgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGVsZW1lbnQgbmFtZT0iYSI+CisgICAgPHRleHQvPgorICA8L2VsZW1lbnQ+CisgIDxlbGVtZW50IG5hbWU9ImIiPgorICAgIDx0ZXh0Lz4KKyAgPC9lbGVtZW50PgorPC9ncm91cD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3BhdHRlcm4yLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3BhdHRlcm4yLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmE0YTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvcGF0dGVybjIucm5nCkBAIC0wLDAgKzEsOSBAQAorPGdyb3VwIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxlbGVtZW50IG5hbWU9ImMiPgorICAgIDx0ZXh0Lz4KKyAgPC9lbGVtZW50PgorICA8ZWxlbWVudCBuYW1lPSJkIj4KKyAgICA8dGV4dC8+CisgIDwvZWxlbWVudD4KKzwvZ3JvdXA+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3Byb29mc3lzdGVtLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3Byb29mc3lzdGVtLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmU2YmQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvcHJvb2ZzeXN0ZW0ucm5nCkBAIC0wLDAgKzEsOTYgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCisgICAgICAgICBucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3Byb29mc3lzdGVtIj4NCisNCis8c3RhcnQ+DQorICA8ZWxlbWVudCBuYW1lPSJwcm9vZlN5c3RlbSI+DQorICAgIDxvbmVPck1vcmU+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icnVsZSI+DQorICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiLz4NCisJPHplcm9Pck1vcmU+DQorCSAgPHJlZiBuYW1lPSJhbnRlY2VkZW50Ii8+DQorCTwvemVyb09yTW9yZT4NCisJPHJlZiBuYW1lPSJjb25zZXF1ZW50Ii8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L29uZU9yTW9yZT4NCisgIDwvZWxlbWVudD4NCis8L3N0YXJ0Pg0KKw0KKzxkZWZpbmUgbmFtZT0iZm9ybXVsYSI+DQorICA8ZWxlbWVudCBuYW1lPSJmb3JtdWxhIj4NCisgICAgPGNob2ljZT4NCisgICAgICA8cmVmIG5hbWU9Imp1ZGdlbWVudCIvPg0KKyAgICAgIDxyZWYgbmFtZT0iZXhwciIvPg0KKyAgICA8L2Nob2ljZT4NCisgIDwvZWxlbWVudD4NCis8L2RlZmluZT4NCisNCis8ZGVmaW5lIG5hbWU9ImNvbnNlcXVlbnQiPg0KKyAgPHJlZiBuYW1lPSJqdWRnZW1lbnQiLz4NCis8L2RlZmluZT4NCisNCis8ZGVmaW5lIG5hbWU9ImFudGVjZWRlbnQiPg0KKyAgPHJlZiBuYW1lPSJqdWRnZW1lbnQiLz4NCis8L2RlZmluZT4NCisNCis8ZGVmaW5lIG5hbWU9Imp1ZGdlbWVudCI+DQorICA8Y2hvaWNlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJqdWRnZW1lbnQiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSIvPg0KKyAgICAgIDx6ZXJvT3JNb3JlPg0KKwk8cmVmIG5hbWU9ImV4cHIiLz4NCisgICAgICA8L3plcm9Pck1vcmU+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0ibm90Ij4NCisgICAgICA8cmVmIG5hbWU9Imp1ZGdlbWVudCIvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2Nob2ljZT4NCis8L2RlZmluZT4NCisNCis8ZGVmaW5lIG5hbWU9ImV4cHIiPg0KKyAgPGNob2ljZT4NCisgICAgPGVsZW1lbnQgbmFtZT0idmFyIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9InJhbmdlIi8+DQorICAgICAgPG9wdGlvbmFsPg0KKwk8YXR0cmlidXRlIG5hbWU9ImluZGV4Ii8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgICA8b3B0aW9uYWw+DQorCTxhdHRyaWJ1dGUgbmFtZT0ic3ViIi8+DQorICAgICAgPC9vcHRpb25hbD4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJmdW5jdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJuYW1lIi8+DQorICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICA8cmVmIG5hbWU9ImV4cHIiLz4NCisgICAgICA8L3plcm9Pck1vcmU+DQorICAgIDwvZWxlbWVudD4NCisgICAgPGVsZW1lbnQgbmFtZT0iZWxlbWVudCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJuYW1lIi8+DQorICAgICAgPHplcm9Pck1vcmU+DQorICAgICAgICA8ZWxlbWVudCBuYW1lPSJhdHRyaWJ1dGUiPg0KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiLz4NCisgICAgICAgICAgPHJlZiBuYW1lPSJleHByIi8+IA0KKyAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDwvemVyb09yTW9yZT4NCisgICAgICA8b3B0aW9uYWw+DQorICAgICAgICA8cmVmIG5hbWU9ImNvbnRleHQiLz4NCisgICAgICA8L29wdGlvbmFsPg0KKyAgICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgICAgPHJlZiBuYW1lPSJleHByIi8+DQorICAgICAgPC96ZXJvT3JNb3JlPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDxlbGVtZW50IG5hbWU9Imdyb3VwIj4NCisgICAgICA8emVyb09yTW9yZT4NCisgICAgICAgIDxyZWYgbmFtZT0iZXhwciIvPg0KKyAgICAgIDwvemVyb09yTW9yZT4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJzdHJpbmciPjx0ZXh0Lz48L2VsZW1lbnQ+DQorICA8L2Nob2ljZT4NCis8L2RlZmluZT4NCisNCis8ZGVmaW5lIG5hbWU9ImNvbnRleHQiPg0KKyAgPGVsZW1lbnQgbmFtZT0iY29udGV4dCI+DQorICAgIDxyZWYgbmFtZT0iZXhwciIvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKw0KKzwvZ3JhbW1hcj4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9ybmdidWctMDAxLmV4dCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3JuZ2J1Zy0wMDEuZXh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiMTg4M2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9ybmdidWctMDAxLmV4dApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHN0YXJ0PgorICAgIDxyZWYgbmFtZT0iZTIiLz4KKyAgPC9zdGFydD4KKyAgPGRlZmluZSBuYW1lPSJlMiI+CisgICAgPGVsZW1lbnQgbmFtZT0iZTIiPgorICAgICAgPGVsZW1lbnQgbmFtZT0iZTMiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3JuZ2J1Zy0wMDEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvcm5nYnVnLTAwMS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJiNWIwYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3JuZ2J1Zy0wMDEucm5nCkBAIC0wLDAgKzEsMTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8c3RhcnQ+CisgICAgPHJlZiBuYW1lPSJyb290Ii8+CisgIDwvc3RhcnQ+CisgIDxkZWZpbmUgbmFtZT0icm9vdCI+CisgICAgPGVsZW1lbnQgbmFtZT0icm9vdCI+CisgICAgICA8aW50ZXJsZWF2ZT4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iZTEiPgorICAgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8ZXh0ZXJuYWxSZWYgaHJlZj0icm5nYnVnLTAwMS5leHQiLz4KKyAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorPC9ncmFtbWFyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvcm5nYnVnLTAwMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9ybmdidWctMDAxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2JhNzNlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvcm5nYnVnLTAwMS54bWwKQEAgLTAsMCArMSw2IEBACisgICAgIDxyb290PgorICAgICAgICAgPGUxPng8L2UxPgorICAgICAgICAgPGUyPgorICAgICAgICAgICAgIDxlMz55PC9lMz4KKyAgICAgICAgIDwvZTI+CisgICAgIDwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3NwZWMucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvc3BlYy5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY1MGY3MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3NwZWMucm5nCkBAIC0wLDAgKzEsNjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4NCis8IS0tICRJZDogc3BlYy5ybmcsdiAxLjMgMjAwMS8xMC8yMyAwNTo1NDoyNCBqamMgRXhwICQgLS0+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIg0KKyAgICAgICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIg0KKyAgICAgICAgICB4bWxuczpwPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvcHJvb2ZzeXN0ZW0iPg0KKw0KKzxzdGFydD4NCisgIDxncmFtbWFyPg0KKyAgICA8aW5jbHVkZSBocmVmPSJkb2Nib29rLnJuZyIvPg0KKyAgICA8ZGVmaW5lIG5hbWU9InN5bm9wLmNsYXNzIiBjb21iaW5lPSJjaG9pY2UiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICA8cGFyZW50UmVmIG5hbWU9InJuZ3JlZiIvPg0KKyAgICAgICAgPHBhcmVudFJlZiBuYW1lPSJncmFtbWFycmVmIi8+DQorICAgICAgICA8Z3JhbW1hcj4NCisgICAgICAgICAgPGluY2x1ZGUgaHJlZj0icHJvb2ZzeXN0ZW0ucm5nIi8+DQorICAgICAgICAgIDxzdGFydCBjb21iaW5lPSJjaG9pY2UiPg0KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iZm9ybXVsYSIvPg0KKyAgICAgICAgICA8L3N0YXJ0Pg0KKyAgICAgICAgPC9ncmFtbWFyPg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L2RlZmluZT4NCisgICAgPGRlZmluZSBuYW1lPSJ0ZWNoLmNoYXIuY2xhc3MiIGNvbWJpbmU9ImNob2ljZSI+DQorICAgICAgPHBhcmVudFJlZiBuYW1lPSJ0ZXJtcyIvPg0KKyAgICA8L2RlZmluZT4NCisgIDwvZ3JhbW1hcj4NCis8L3N0YXJ0Pg0KKw0KKzxkZWZpbmUgbmFtZT0icm5ncmVmIj4NCisgIDxlbGVtZW50IG5hbWU9InJuZ3JlZiI+DQorICAgIDxhdHRyaWJ1dGUgbmFtZT0ic3JjIj4NCisgICAgICA8ZGF0YSB0eXBlPSJhbnlVUkkiLz4NCisgICAgPC9hdHRyaWJ1dGU+DQorICA8L2VsZW1lbnQ+DQorPC9kZWZpbmU+DQorDQorPGRlZmluZSBuYW1lPSJncmFtbWFycmVmIj4NCisgIDxlbGVtZW50IG5hbWU9ImdyYW1tYXJyZWYiPg0KKyAgICA8YXR0cmlidXRlIG5hbWU9InNyYyI+DQorICAgICAgPGRhdGEgdHlwZT0iYW55VVJJIi8+DQorICAgIDwvYXR0cmlidXRlPg0KKyAgPC9lbGVtZW50Pg0KKzwvZGVmaW5lPg0KKw0KKzxkZWZpbmUgbmFtZT0idGVybXMiPg0KKyAgPGdyYW1tYXI+DQorICAgICA8aW5jbHVkZSBocmVmPSJwcm9vZnN5c3RlbS5ybmciPg0KKyAgICAgICA8c3RhcnQ+DQorICAgICAgICAgPGNob2ljZT4NCisgICAgICAgICAgIDxyZWYgbmFtZT0iZXhwciIvPg0KKyAgICAgICAgICAgPHJlZiBuYW1lPSJqdWRnZW1lbnQiLz4NCisgICAgICAgICAgIDxyZWYgbmFtZT0iY29udGV4dCIvPg0KKyAgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgICA8L3N0YXJ0Pg0KKyAgICAgPC9pbmNsdWRlPg0KKyAgPC9ncmFtbWFyPg0KKzwvZGVmaW5lPg0KKw0KKzwvZ3JhbW1hcj4NCisNCisgDQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvc3BlYzEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvc3BlYzEucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4ZTllZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9zcGVjMS5ybmcKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZWxlbWVudCBuYW1lPSJmb28iCisgICAgICAgICB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgICAgICAgICB4bWxuczphPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvYW5ub3RhdGlvbi8xLjAiCisgICAgICAgICB4bWxuczpleDE9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjEiCisgICAgICAgICB4bWxuczpleDI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjIiPgorICA8YTpkb2N1bWVudGF0aW9uPkEgZm9vIGVsZW1lbnQuPC9hOmRvY3VtZW50YXRpb24+CisgIDxlbGVtZW50IG5hbWU9ImV4MTpiYXIxIj4KKyAgICA8ZW1wdHkvPgorICA8L2VsZW1lbnQ+CisgIDxlbGVtZW50IG5hbWU9ImV4MjpiYXIyIj4KKyAgICA8ZW1wdHkvPgorICA8L2VsZW1lbnQ+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9zcGVjMV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3NwZWMxXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMmI2MjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy9zcGVjMV8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbz48cHJlMTpiYXIxIHhtbG5zOnByZTE9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjEiLz48cHJlMjpiYXIyIHhtbG5zOnByZTI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjIiLz48L2Zvbz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvc3BlY18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3NwZWNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I4ZjdiZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3NwZWNfMC54bWwKQEAgLTAsMCArMSwzNTg5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJpc28tODg1OS0xIj8+DQorPCFET0NUWVBFIGFydGljbGUgWw0KKzwhLS0gRUxFTUVOVCBkZWNsYXJhdGlvbnMgd29yayBhcm91bmQgTVNYTUwgYnVnLiAtLT4NCis8IUVMRU1FTlQgc2VjdGlvbiBBTlk+DQorPCFBVFRMSVNUIHNlY3Rpb24gaWQgSUQgI0lNUExJRUQ+DQorPCFFTEVNRU5UIGFwcGVuZGl4IEFOWT4NCis8IUFUVExJU1QgYXBwZW5kaXggaWQgSUQgI0lNUExJRUQ+DQorPCFFTEVNRU5UIGJpYmxpb21peGVkIEFOWT4NCis8IUFUVExJU1QgYmlibGlvbWl4ZWQgaWQgSUQgI0lNUExJRUQ+DQorXT4NCis8YXJ0aWNsZSBzdGF0dXM9IkNvbW1pdHRlZSBTcGVjaWZpY2F0aW9uIiB4bWxuczpwPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvcHJvb2ZzeXN0ZW0iPg0KKw0KKzxhcnRpY2xlaW5mbz4NCis8cmVsZWFzZWluZm8+JElkOiBzcGVjLnhtbCx2IDEuMTU5IDIwMDEvMTIvMDIgMTI6MTI6MTIgampjIEV4cCAkPC9yZWxlYXNlaW5mbz4NCis8dGl0bGU+UkVMQVggTkcgU3BlY2lmaWNhdGlvbjwvdGl0bGU+DQorPGF1dGhvcmdyb3VwPg0KKzxlZGl0b3I+DQorICA8Zmlyc3RuYW1lPkphbWVzPC9maXJzdG5hbWU+PHN1cm5hbWU+Q2xhcms8L3N1cm5hbWU+DQorICA8YWZmaWxpYXRpb24+DQorICAgIDxhZGRyZXNzPjxlbWFpbD5qamNAamNsYXJrLmNvbTwvZW1haWw+PC9hZGRyZXNzPg0KKyAgPC9hZmZpbGlhdGlvbj4NCis8L2VkaXRvcj4NCis8ZWRpdG9yPg0KKyAgPHN1cm5hbWU+TVVSQVRBPC9zdXJuYW1lPjxmaXJzdG5hbWU+TWFrb3RvPC9maXJzdG5hbWU+DQorICA8YWZmaWxpYXRpb24+DQorICAgIDxhZGRyZXNzPjxlbWFpbD5FQjJNLU1SVEBhc2FoaS1uZXQub3IuanA8L2VtYWlsPjwvYWRkcmVzcz4NCisgIDwvYWZmaWxpYXRpb24+DQorPC9lZGl0b3I+DQorPC9hdXRob3Jncm91cD4NCis8cHViZGF0ZT4zIERlY2VtYmVyIDIwMDE8L3B1YmRhdGU+DQorPHJlbGVhc2VpbmZvIHJvbGU9Im1ldGEiPg0KKyRJZDogc3BlYy54bWwsdiAxLjE1OSAyMDAxLzEyLzAyIDEyOjEyOjEyIGpqYyBFeHAgJA0KKzwvcmVsZWFzZWluZm8+DQorDQorPGNvcHlyaWdodD48eWVhcj4yMDAxPC95ZWFyPjxob2xkZXI+T0FTSVM8L2hvbGRlcj48L2NvcHlyaWdodD4NCisNCis8bGVnYWxub3RpY2U+DQorDQorPHBhcmE+Q29weXJpZ2h0ICYjMTY5OyBUaGUgT3JnYW5pemF0aW9uIGZvciB0aGUgQWR2YW5jZW1lbnQgb2YNCitTdHJ1Y3R1cmVkIEluZm9ybWF0aW9uIFN0YW5kYXJkcyBbT0FTSVNdIDIwMDEuIEFsbCBSaWdodHMNCitSZXNlcnZlZC48L3BhcmE+DQorDQorPHBhcmE+VGhpcyBkb2N1bWVudCBhbmQgdHJhbnNsYXRpb25zIG9mIGl0IG1heSBiZSBjb3BpZWQgYW5kIGZ1cm5pc2hlZA0KK3RvIG90aGVycywgYW5kIGRlcml2YXRpdmUgd29ya3MgdGhhdCBjb21tZW50IG9uIG9yIG90aGVyd2lzZSBleHBsYWluDQoraXQgb3IgYXNzaXN0IGluIGl0cyBpbXBsZW1lbnRhdGlvbiBtYXkgYmUgcHJlcGFyZWQsIGNvcGllZCwgcHVibGlzaGVkDQorYW5kIGRpc3RyaWJ1dGVkLCBpbiB3aG9sZSBvciBpbiBwYXJ0LCB3aXRob3V0IHJlc3RyaWN0aW9uIG9mIGFueSBraW5kLA0KK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGFyYWdyYXBoIGFyZQ0KK2luY2x1ZGVkIG9uIGFsbCBzdWNoIGNvcGllcyBhbmQgZGVyaXZhdGl2ZSB3b3Jrcy4gSG93ZXZlciwgdGhpcw0KK2RvY3VtZW50IGl0c2VsZiBtYXkgbm90IGJlIG1vZGlmaWVkIGluIGFueSB3YXksIHN1Y2ggYXMgYnkgcmVtb3ZpbmcNCit0aGUgY29weXJpZ2h0IG5vdGljZSBvciByZWZlcmVuY2VzIHRvIE9BU0lTLCBleGNlcHQgYXMgbmVlZGVkIGZvciB0aGUNCitwdXJwb3NlIG9mIGRldmVsb3BpbmcgT0FTSVMgc3BlY2lmaWNhdGlvbnMsIGluIHdoaWNoIGNhc2UgdGhlDQorcHJvY2VkdXJlcyBmb3IgY29weXJpZ2h0cyBkZWZpbmVkIGluIHRoZSBPQVNJUyBJbnRlbGxlY3R1YWwgUHJvcGVydHkNCitSaWdodHMgZG9jdW1lbnQgbXVzdCBiZSBmb2xsb3dlZCwgb3IgYXMgcmVxdWlyZWQgdG8gdHJhbnNsYXRlIGl0IGludG8NCitsYW5ndWFnZXMgb3RoZXIgdGhhbiBFbmdsaXNoLjwvcGFyYT4NCisNCis8cGFyYT5UaGUgbGltaXRlZCBwZXJtaXNzaW9ucyBncmFudGVkIGFib3ZlIGFyZSBwZXJwZXR1YWwgYW5kIHdpbGwgbm90DQorYmUgcmV2b2tlZCBieSBPQVNJUyBvciBpdHMgc3VjY2Vzc29ycyBvciBhc3NpZ25zLjwvcGFyYT4NCisNCis8cGFyYT5UaGlzIGRvY3VtZW50IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpcyBwcm92aWRlZA0KK29uIGFuIDxxdW90ZT5BUyBJUzwvcXVvdGU+IGJhc2lzIGFuZCBPQVNJUyBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMsDQorRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIEFOWSBXQVJSQU5UWSBUSEFUIFRIRQ0KK1VTRSBPRiBUSEUgSU5GT1JNQVRJT04gSEVSRUlOIFdJTEwgTk9UIElORlJJTkdFIEFOWSBSSUdIVFMgT1IgQU5ZDQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINCitQVVJQT1NFLjwvcGFyYT4NCisNCis8L2xlZ2Fsbm90aWNlPg0KKw0KKzxsZWdhbG5vdGljZSByb2xlPSJzdGF0dXMiPjx0aXRsZT5TdGF0dXMgb2YgdGhpcyBEb2N1bWVudDwvdGl0bGU+DQorDQorPHBhcmE+VGhpcyBDb21taXR0ZWUgU3BlY2lmaWNhdGlvbiB3YXMgYXBwcm92ZWQgZm9yIHB1YmxpY2F0aW9uIGJ5IHRoZQ0KK09BU0lTIFJFTEFYIE5HIHRlY2huaWNhbCBjb21taXR0ZWUuIEl0IGlzIGEgc3RhYmxlIGRvY3VtZW50IHdoaWNoDQorcmVwcmVzZW50cyB0aGUgY29uc2Vuc3VzIG9mIHRoZSBjb21taXR0ZWUuIENvbW1lbnRzIG9uIHRoaXMgZG9jdW1lbnQNCittYXkgYmUgc2VudCB0byA8dWxpbmsNCit1cmw9Im1haWx0bzpyZWxheC1uZy1jb21tZW50QGxpc3RzLm9hc2lzLW9wZW4ub3JnIg0KKz5yZWxheC1uZy1jb21tZW50QGxpc3RzLm9hc2lzLW9wZW4ub3JnPC91bGluaz4uPC9wYXJhPg0KKw0KKzxwYXJhPkEgbGlzdCBvZiBrbm93biBlcnJvcnMgaW4gdGhpcyBkb2N1bWVudCBpcyBhdmFpbGFibGUgYXQgPHVsaW5rDQordXJsPSJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvcmVsYXgtbmcvc3BlYy0yMDAxMTIwMy1lcnJhdGEuaHRtbCINCis+aHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL3JlbGF4LW5nL3NwZWMtMjAwMTEyMDMtZXJyYXRhLmh0bWw8L3VsaW5rDQorPi48L3BhcmE+DQorDQorPC9sZWdhbG5vdGljZT4NCisNCis8YWJzdHJhY3Q+DQorPHBhcmE+VGhpcyBpcyB0aGUgZGVmaW5pdGl2ZSBzcGVjaWZpY2F0aW9uIG9mIFJFTEFYIE5HLCBhIHNpbXBsZQ0KK3NjaGVtYSBsYW5ndWFnZSBmb3IgWE1MLCBiYXNlZCBvbiA8eHJlZiBsaW5rZW5kPSJyZWxheCIvPiBhbmQgPHhyZWYNCitsaW5rZW5kPSJ0cmV4Ii8+LiBBIFJFTEFYIE5HIHNjaGVtYSBzcGVjaWZpZXMgYSBwYXR0ZXJuIGZvciB0aGUNCitzdHJ1Y3R1cmUgYW5kIGNvbnRlbnQgb2YgYW4gWE1MIGRvY3VtZW50LiBBIFJFTEFYIE5HIHNjaGVtYSBpcyBpdHNlbGYNCithbiBYTUwgZG9jdW1lbnQuPC9wYXJhPg0KKzwvYWJzdHJhY3Q+DQorDQorPHJldmhpc3Rvcnk+DQorPHJldmlzaW9uPg0KKyAgPHJldm51bWJlcj5Db21taXR0ZWUgU3BlY2lmaWNhdGlvbjwvcmV2bnVtYmVyPg0KKyAgPGRhdGU+MyBEZWNlbWJlciAyMDAxPC9kYXRlPg0KKzwvcmV2aXNpb24+DQorPHJldmlzaW9uPg0KKyAgPHJldm51bWJlcj5Db21taXR0ZWUgU3BlY2lmaWNhdGlvbjwvcmV2bnVtYmVyPg0KKyAgPGRhdGU+MTEgQXVndXN0IDIwMDE8L2RhdGU+DQorPC9yZXZpc2lvbj4NCis8L3Jldmhpc3Rvcnk+DQorPC9hcnRpY2xlaW5mbz4NCisNCisNCis8c2VjdGlvbj4NCis8dGl0bGU+SW50cm9kdWN0aW9uPC90aXRsZT4NCisNCis8cGFyYT5UaGlzIGRvY3VtZW50IHNwZWNpZmllczwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT53aGVuIGFuIFhNTCBkb2N1bWVudCBpcyBhIGNvcnJlY3QgUkVMQVggTkcNCitzY2hlbWE8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+d2hlbiBhbiBYTUwgZG9jdW1lbnQgaXMgdmFsaWQgd2l0aCByZXNwZWN0IHRvIGENCitjb3JyZWN0IFJFTEFYIE5HIHNjaGVtYTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzxwYXJhPkFuIFhNTCBkb2N1bWVudCB0aGF0IGlzIGJlaW5nIHZhbGlkYXRlZCB3aXRoIHJlc3BlY3QgdG8gYSBSRUxBWCBORw0KK3NjaGVtYSBpcyByZWZlcnJlZCB0byBhcyBhbiBpbnN0YW5jZS48L3BhcmE+DQorDQorPHBhcmE+VGhlIHN0cnVjdHVyZSBvZiB0aGlzIGRvY3VtZW50IGlzIGFzIGZvbGxvd3MuICA8eHJlZg0KK2xpbmtlbmQ9ImRhdGEtbW9kZWwiLz4gZGVzY3JpYmVzIHRoZSBkYXRhIG1vZGVsLCB3aGljaCBpcyB0aGUNCithYnN0cmFjdGlvbiBvZiBhbiBYTUwgZG9jdW1lbnQgdXNlZCB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoZQ0KK2RvY3VtZW50LiAgPHhyZWYgbGlua2VuZD0iZnVsbC1zeW50YXgiLz4gZGVzY3JpYmVzIHRoZSBzeW50YXggb2YgYQ0KK1JFTEFYIE5HIHNjaGVtYTsgYW55IGNvcnJlY3QgUkVMQVggTkcgc2NoZW1hIG11c3QgY29uZm9ybSB0byB0aGlzDQorc3ludGF4LiAgPHhyZWYgbGlua2VuZD0ic2ltcGxpZmljYXRpb24iLz4gZGVzY3JpYmVzIGEgc2VxdWVuY2Ugb2YNCit0cmFuc2Zvcm1hdGlvbnMgdGhhdCBhcmUgYXBwbGllZCB0byBzaW1wbGlmeSBhIFJFTEFYIE5HIHNjaGVtYTsNCithcHBseWluZyB0aGUgdHJhbnNmb3JtYXRpb25zIGFsc28gaW52b2x2ZXMgY2hlY2tpbmcgY2VydGFpbg0KK3Jlc3RyaWN0aW9ucyB0aGF0IG11c3QgYmUgc2F0aXNmaWVkIGJ5IGEgY29ycmVjdCBSRUxBWCBORw0KK3NjaGVtYS4gPHhyZWYgbGlua2VuZD0ic2ltcGxlLXN5bnRheCIvPiBkZXNjcmliZXMgdGhlIHN5bnRheCB0aGF0DQorcmVzdWx0cyBmcm9tIGFwcGx5aW5nIHRoZSB0cmFuc2Zvcm1hdGlvbnM7IHRoaXMgc2ltcGxlIHN5bnRheCBpcyBhDQorc3Vic2V0IG9mIHRoZSBmdWxsIHN5bnRheC4gIDx4cmVmIGxpbmtlbmQ9InNlbWFudGljcyIvPiBkZXNjcmliZXMgdGhlDQorc2VtYW50aWNzIG9mIGEgY29ycmVjdCBSRUxBWCBORyBzY2hlbWEgdGhhdCB1c2VzIHRoZSBzaW1wbGUgc3ludGF4Ow0KK3RoZSBzZW1hbnRpY3Mgc3BlY2lmeSB3aGVuIGFuIGVsZW1lbnQgaXMgdmFsaWQgd2l0aCByZXNwZWN0IHRvIGEgUkVMQVgNCitORyBzY2hlbWEuICA8eHJlZiBsaW5rZW5kPSJyZXN0cmljdGlvbiIvPiBkZXNjcmliZXMgcmVzdHJpY3Rpb25zIGluDQordGVybXMgb2YgdGhlIHNpbXBsZSBzeW50YXg7IGEgY29ycmVjdCBSRUxBWCBORyBzY2hlbWEgbXVzdCBiZSBzdWNoDQordGhhdCwgYWZ0ZXIgdHJhbnNmb3JtYXRpb24gaW50byB0aGUgc2ltcGxlIGZvcm0sIGl0IHNhdGlzZmllcyB0aGVzZQ0KK3Jlc3RyaWN0aW9ucy4gRmluYWxseSwgPHhyZWYgbGlua2VuZD0iY29uZm9ybWFuY2UiLz4gZGVzY3JpYmVzDQorY29uZm9ybWFuY2UgcmVxdWlyZW1lbnRzIGZvciBSRUxBWCBORyB2YWxpZGF0b3JzLjwvcGFyYT4NCisNCis8cGFyYT5BIHR1dG9yaWFsIGlzIGF2YWlsYWJsZSBzZXBhcmF0ZWx5IChzZWUgPHhyZWYNCitsaW5rZW5kPSJ0dXRvcmlhbCIvPikuPC9wYXJhPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbiBpZD0iZGF0YS1tb2RlbCI+DQorPHRpdGxlPkRhdGEgbW9kZWw8L3RpdGxlPg0KKw0KKzxwYXJhPlJFTEFYIE5HIGRlYWxzIHdpdGggWE1MIGRvY3VtZW50cyByZXByZXNlbnRpbmcgYm90aCBzY2hlbWFzIGFuZA0KK2luc3RhbmNlcyB0aHJvdWdoIGFuIGFic3RyYWN0IGRhdGEgbW9kZWwuICBYTUwgZG9jdW1lbnRzIHJlcHJlc2VudGluZw0KK3NjaGVtYXMgYW5kIGluc3RhbmNlcyBtdXN0IGJlIHdlbGwtZm9ybWVkIGluIGNvbmZvcm1hbmNlIHdpdGggPHhyZWYNCitsaW5rZW5kPSJ4bWwtcmVjIi8+IGFuZCBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbnN0cmFpbnRzIG9mIDx4cmVmDQorbGlua2VuZD0ieG1sLW5hbWVzIi8+LjwvcGFyYT4NCisNCis8cGFyYT5BbiBYTUwgZG9jdW1lbnQgaXMgcmVwcmVzZW50ZWQgYnkgYW4gZWxlbWVudC4gIEFuIGVsZW1lbnQgY29uc2lzdHMNCitvZjwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT5hIG5hbWU8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YSBjb250ZXh0PC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmEgc2V0IG9mIGF0dHJpYnV0ZXM8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YW4gb3JkZXJlZCBzZXF1ZW5jZSBvZiB6ZXJvIG9yIG1vcmUgY2hpbGRyZW47IGVhY2gNCitjaGlsZCBpcyBlaXRoZXIgYW4gZWxlbWVudCBvciBhIG5vbi1lbXB0eSBzdHJpbmc7IHRoZSBzZXF1ZW5jZSBuZXZlciBjb250YWlucw0KK3R3byBjb25zZWN1dGl2ZSBzdHJpbmdzPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPHBhcmE+QSBuYW1lIGNvbnNpc3RzIG9mPC9wYXJhPg0KKw0KKzxpdGVtaXplZGxpc3Q+DQorPGxpc3RpdGVtPjxwYXJhPmEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgbmFtZXNwYWNlIFVSSTsgdGhlIGVtcHR5DQorc3RyaW5nIGhhcyBzcGVjaWFsIHNpZ25pZmljYW5jZSwgcmVwcmVzZW50aW5nIHRoZSBhYnNlbmNlIG9mIGFueQ0KK25hbWVzcGFjZTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT5hIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGxvY2FsIG5hbWU7IHRoaXMgc3RyaW5nIG1hdGNoZXMgdGhlIE5DTmFtZQ0KK3Byb2R1Y3Rpb24gb2YgPHhyZWYgbGlua2VuZD0ieG1sLW5hbWVzIi8+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPC9pdGVtaXplZGxpc3Q+DQorDQorPHBhcmE+QSBjb250ZXh0IGNvbnNpc3RzIG9mPC9wYXJhPg0KKw0KKzxpdGVtaXplZGxpc3Q+DQorPGxpc3RpdGVtPjxwYXJhPmEgYmFzZSBVUkk8L3BhcmE+PC9saXN0aXRlbT4NCis8bGlzdGl0ZW0+PHBhcmE+YSBuYW1lc3BhY2UgbWFwOyB0aGlzIG1hcHMgcHJlZml4ZXMgdG8gbmFtZXNwYWNlIFVSSXMsDQorYW5kIGFsc28gbWF5IHNwZWNpZnkgYSBkZWZhdWx0IG5hbWVzcGFjZSBVUkkgKGFzIGRlY2xhcmVkDQorYnkgdGhlIDxsaXRlcmFsPnhtbG5zPC9saXRlcmFsPiBhdHRyaWJ1dGUpPC9wYXJhPjwvbGlzdGl0ZW0+DQorPC9pdGVtaXplZGxpc3Q+DQorDQorPHBhcmE+QW4gYXR0cmlidXRlIGNvbnNpc3RzIG9mPC9wYXJhPg0KKw0KKzxpdGVtaXplZGxpc3Q+DQorPGxpc3RpdGVtPjxwYXJhPmEgbmFtZTwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT5hIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHZhbHVlPC9wYXJhPjwvbGlzdGl0ZW0+DQorPC9pdGVtaXplZGxpc3Q+DQorDQorPHBhcmE+QSBzdHJpbmcgY29uc2lzdHMgb2YgYSBzZXF1ZW5jZSBvZiB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycywNCit3aGVyZSBhIGNoYXJhY3RlciBpcyBhcyBkZWZpbmVkIGluIDx4cmVmIGxpbmtlbmQ9InhtbC1yZWMiLz4uPC9wYXJhPg0KKw0KKzxwYXJhPlRoZSBlbGVtZW50IGZvciBhbiBYTUwgZG9jdW1lbnQgaXMgY29uc3RydWN0ZWQgZnJvbSBhbiBpbnN0YW5jZQ0KK29mIHRoZSA8eHJlZiBsaW5rZW5kPSJpbmZvc2V0Ii8+IGFzIGZvbGxvd3MuICBXZSB1c2UgdGhlIG5vdGF0aW9uDQorWzxyZXBsYWNlYWJsZT54PC9yZXBsYWNlYWJsZT5dIHRvIHJlZmVyIHRvIHRoZSB2YWx1ZSBvZiB0aGUNCis8cmVwbGFjZWFibGU+eDwvcmVwbGFjZWFibGU+IHByb3BlcnR5IG9mIGFuIGluZm9ybWF0aW9uIGl0ZW0uIEFuDQorZWxlbWVudCBpcyBjb25zdHJ1Y3RlZCBmcm9tIGEgZG9jdW1lbnQgaW5mb3JtYXRpb24gaXRlbSBieQ0KK2NvbnN0cnVjdGluZyBhbiBlbGVtZW50IGZyb20gdGhlIFtkb2N1bWVudCBlbGVtZW50XS4gIEFuIGVsZW1lbnQgaXMNCitjb25zdHJ1Y3RlZCBmcm9tIGFuIGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSBieSBjb25zdHJ1Y3RpbmcgdGhlIG5hbWUNCitmcm9tIHRoZSBbbmFtZXNwYWNlIG5hbWVdIGFuZCBbbG9jYWwgbmFtZV0sIHRoZSBjb250ZXh0IGZyb20gdGhlIFtiYXNlDQorVVJJXSBhbmQgW2luLXNjb3BlIG5hbWVzcGFjZXNdLCB0aGUgYXR0cmlidXRlcyBmcm9tIHRoZSBbYXR0cmlidXRlc10sDQorYW5kIHRoZSBjaGlsZHJlbiBmcm9tIHRoZSBbY2hpbGRyZW5dLiAgVGhlIGF0dHJpYnV0ZXMgb2YgYW4gZWxlbWVudA0KK2FyZSBjb25zdHJ1Y3RlZCBmcm9tIHRoZSB1bm9yZGVyZWQgc2V0IG9mIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBpdGVtcw0KK2J5IGNvbnN0cnVjdGluZyBhbiBhdHRyaWJ1dGUgZm9yIGVhY2ggYXR0cmlidXRlIGluZm9ybWF0aW9uIGl0ZW0uICBUaGUNCitjaGlsZHJlbiBvZiBhbiBlbGVtZW50IGFyZSBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBsaXN0IG9mIGNoaWxkDQoraW5mb3JtYXRpb24gaXRlbXMgZmlyc3QgYnkgcmVtb3ZpbmcgaW5mb3JtYXRpb24gaXRlbXMgb3RoZXIgdGhhbg0KK2VsZW1lbnQgaW5mb3JtYXRpb24gaXRlbXMgYW5kIGNoYXJhY3RlciBpbmZvcm1hdGlvbiBpdGVtcywgYW5kIHRoZW4gYnkNCitjb25zdHJ1Y3RpbmcgYW4gZWxlbWVudCBmb3IgZWFjaCBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gaW4gdGhlIGxpc3QNCithbmQgYSBzdHJpbmcgZm9yIGVhY2ggbWF4aW1hbCBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXIgaW5mb3JtYXRpb24gaXRlbXMuDQorQW4gYXR0cmlidXRlIGlzIGNvbnN0cnVjdGVkIGZyb20gYW4gYXR0cmlidXRlIGluZm9ybWF0aW9uIGl0ZW0gYnkNCitjb25zdHJ1Y3RpbmcgdGhlIG5hbWUgZnJvbSB0aGUgW25hbWVzcGFjZSBuYW1lXSBhbmQgW2xvY2FsIG5hbWVdLCBhbmQNCit0aGUgdmFsdWUgZnJvbSB0aGUgW25vcm1hbGl6ZWQgdmFsdWVdLiAgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5hbWUgb2YNCithbiBlbGVtZW50IG9yIGF0dHJpYnV0ZSBmcm9tIHRoZSBbbmFtZXNwYWNlIG5hbWVdIGFuZCBbbG9jYWwgbmFtZV0sIGlmDQordGhlIFtuYW1lc3BhY2UgbmFtZV0gcHJvcGVydHkgaXMgbm90IHByZXNlbnQsIHRoZW4gdGhlIG5hbWUgaXMNCitjb25zdHJ1Y3RlZCBmcm9tIGFuIGVtcHR5IHN0cmluZyBhbmQgdGhlIFtsb2NhbCBuYW1lXS4gQSBzdHJpbmcgaXMNCitjb25zdHJ1Y3RlZCBmcm9tIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVyIGluZm9ybWF0aW9uIGl0ZW1zIGJ5DQorY29uc3RydWN0aW5nIGEgY2hhcmFjdGVyIGZyb20gdGhlIFtjaGFyYWN0ZXIgY29kZV0gb2YgZWFjaCBjaGFyYWN0ZXINCitpbmZvcm1hdGlvbiBpdGVtLjwvcGFyYT4NCisNCis8cGFyYT5JdCBpcyBwb3NzaWJsZSBmb3IgdGhlcmUgdG8gYmUgbXVsdGlwbGUgZGlzdGluY3QgaW5mb3NldHMgZm9yIGENCitzaW5nbGUgWE1MIGRvY3VtZW50LiAgVGhpcyBpcyBiZWNhdXNlIFhNTCBwYXJzZXJzIGFyZSBub3QgcmVxdWlyZWQgdG8NCitwcm9jZXNzIGFsbCBEVEQgZGVjbGFyYXRpb25zIG9yIGV4cGFuZCBhbGwgZXh0ZXJuYWwgcGFyc2VkIGdlbmVyYWwNCitlbnRpdGllcy4gIEFtb25nc3QgdGhlc2UgbXVsdGlwbGUgaW5mb3NldHMsIHRoZXJlIGlzIGV4YWN0bHkgb25lDQoraW5mb3NldCBmb3Igd2hpY2ggW2FsbCBkZWNsYXJhdGlvbnMgcHJvY2Vzc2VkXSBpcyB0cnVlIGFuZCB3aGljaCBkb2VzDQorbm90IGNvbnRhaW4gYW55IHVuZXhwYW5kZWQgZW50aXR5IHJlZmVyZW5jZSBpbmZvcm1hdGlvbiBpdGVtcy4gIFRoaXMNCitpcyB0aGUgaW5mb3NldCB0aGF0IGlzIHRoZSBiYXNpcyBmb3IgZGVmaW5pbmcgdGhlIFJFTEFYIE5HIGRhdGENCittb2RlbC48L3BhcmE+DQorDQorPHNlY3Rpb24gaWQ9ImRhdGEtbW9kZWwtZXhhbXBsZSI+DQorPHRpdGxlPkV4YW1wbGU8L3RpdGxlPg0KKw0KKzxwYXJhPlN1cHBvc2UgdGhlIGRvY3VtZW50DQorPGxpdGVyYWw+aHR0cDovL3d3dy5leGFtcGxlLmNvbS9kb2MueG1sPC9saXRlcmFsPiBpcyBhcw0KK2ZvbGxvd3M6PC9wYXJhPg0KKw0KKzxwcm9ncmFtbGlzdGluZz48IVtDREFUQVs8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8Zm9vPjxwcmUxOmJhcjEgeG1sbnM6cHJlMT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMSIvPjxwcmUyOmJhcjINCisgIHhtbG5zOnByZTI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjIiLz48L2Zvbz4NCitdXT48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzxwYXJhPlRoZSBlbGVtZW50IHJlcHJlc2VudGluZyB0aGlzIGRvY3VtZW50IGhhczwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKzxsaXN0aXRlbT48cGFyYT5hIG5hbWUgd2hpY2ggaGFzPC9wYXJhPg0KKzxpdGVtaXplZGxpc3Q+DQorDQorPGxpc3RpdGVtPjxwYXJhPnRoZSBlbXB0eSBzdHJpbmcgYXMgdGhlIG5hbWVzcGFjZSBVUkksIHJlcHJlc2VudGluZw0KK3RoZSBhYnNlbmNlIG9mIGFueSBuYW1lc3BhY2U8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+Zm9vPC9saXRlcmFsPiBhcyB0aGUgbG9jYWwNCituYW1lPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YSBjb250ZXh0IHdoaWNoIGhhczwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5odHRwOi8vd3d3LmV4YW1wbGUuY29tL2RvYy54bWw8L2xpdGVyYWw+IGFzIHRoZSBiYXNlDQorVVJJPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmEgbmFtZXNwYWNlIG1hcCB3aGljaDwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT5tYXBzIHRoZSBwcmVmaXggPGxpdGVyYWw+eG1sPC9saXRlcmFsPiB0byB0aGUNCituYW1lc3BhY2UgVVJJDQorPGxpdGVyYWw+aHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlPC9saXRlcmFsPg0KKyh0aGUgPGxpdGVyYWw+eG1sPC9saXRlcmFsPiBwcmVmaXggaXMgaW1wbGljaXRseSBkZWNsYXJlZA0KK2J5IGV2ZXJ5IFhNTCBkb2N1bWVudCk8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+c3BlY2lmaWVzIHRoZSBlbXB0eSBzdHJpbmcgYXMgdGhlIGRlZmF1bHQgbmFtZXNwYWNlDQorVVJJPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPC9saXN0aXRlbT4NCisNCis8L2l0ZW1pemVkbGlzdD4NCisNCis8L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT5hbiBlbXB0eSBzZXQgb2YgYXR0cmlidXRlczwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT5hIHNlcXVlbmNlIG9mIGNoaWxkcmVuIGNvbnNpc3RpbmcNCitvZiBhbiBlbGVtZW50IHdoaWNoIGhhczwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKzxsaXN0aXRlbT48cGFyYT5hIG5hbWUgd2hpY2ggaGFzPC9wYXJhPg0KKzxpdGVtaXplZGxpc3Q+DQorDQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjE8L2xpdGVyYWw+IGFzIHRoZQ0KK25hbWVzcGFjZSBVUkk8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+YmFyMTwvbGl0ZXJhbD4gYXMgdGhlIGxvY2FsDQorbmFtZTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmEgY29udGV4dCB3aGljaCBoYXM8L3BhcmE+DQorDQorPGl0ZW1pemVkbGlzdD4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+aHR0cDovL3d3dy5leGFtcGxlLmNvbS9kb2MueG1sPC9saXRlcmFsPiBhcyB0aGUgYmFzZQ0KK1VSSTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT5hIG5hbWVzcGFjZSBtYXAgd2hpY2g8L3BhcmE+DQorDQorPGl0ZW1pemVkbGlzdD4NCisNCis8bGlzdGl0ZW0+PHBhcmE+bWFwcyB0aGUgcHJlZml4IDxsaXRlcmFsPnByZTE8L2xpdGVyYWw+IHRvIHRoZQ0KK25hbWVzcGFjZSBVUkkNCis8bGl0ZXJhbD5odHRwOi8vd3d3LmV4YW1wbGUuY29tL24xPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT5tYXBzIHRoZSBwcmVmaXggPGxpdGVyYWw+eG1sPC9saXRlcmFsPiB0byB0aGUNCituYW1lc3BhY2UgVVJJDQorPGxpdGVyYWw+aHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT5zcGVjaWZpZXMgdGhlIGVtcHR5IHN0cmluZyBhcyB0aGUgZGVmYXVsdCBuYW1lc3BhY2UNCitVUkk8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8L2l0ZW1pemVkbGlzdD4NCisNCis8L2xpc3RpdGVtPg0KKw0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmFuIGVtcHR5IHNldCBvZiBhdHRyaWJ1dGVzPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmFuIGVtcHR5IHNlcXVlbmNlIG9mIGNoaWxkcmVuPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPHBhcmE+Zm9sbG93ZWQgYnkgYW4gZWxlbWVudCB3aGljaCBoYXM8L3BhcmE+DQorIA0KKzxpdGVtaXplZGxpc3Q+DQorPGxpc3RpdGVtPjxwYXJhPmEgbmFtZSB3aGljaCBoYXM8L3BhcmE+DQorPGl0ZW1pemVkbGlzdD4NCisNCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+aHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMjwvbGl0ZXJhbD4gYXMgdGhlDQorbmFtZXNwYWNlIFVSSTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5iYXIyPC9saXRlcmFsPiBhcyB0aGUgbG9jYWwNCituYW1lPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YSBjb250ZXh0IHdoaWNoIGhhczwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5odHRwOi8vd3d3LmV4YW1wbGUuY29tL2RvYy54bWw8L2xpdGVyYWw+IGFzIHRoZSBiYXNlDQorVVJJPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmEgbmFtZXNwYWNlIG1hcCB3aGljaDwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT5tYXBzIHRoZSBwcmVmaXggPGxpdGVyYWw+cHJlMjwvbGl0ZXJhbD4gdG8gdGhlDQorbmFtZXNwYWNlIFVSSQ0KKzxsaXRlcmFsPmh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjI8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPm1hcHMgdGhlIHByZWZpeCA8bGl0ZXJhbD54bWw8L2xpdGVyYWw+IHRvIHRoZQ0KK25hbWVzcGFjZSBVUkkNCis8bGl0ZXJhbD5odHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2U8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPnNwZWNpZmllcyB0aGUgZW1wdHkgc3RyaW5nIGFzIHRoZSBkZWZhdWx0IG5hbWVzcGFjZQ0KK1VSSTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YW4gZW1wdHkgc2V0IG9mIGF0dHJpYnV0ZXM8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YW4gZW1wdHkgc2VxdWVuY2Ugb2YgY2hpbGRyZW48L3BhcmE+PC9saXN0aXRlbT4NCisNCis8L2l0ZW1pemVkbGlzdD4NCisNCis8L2xpc3RpdGVtPg0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzwvc2VjdGlvbj4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9ImZ1bGwtc3ludGF4Ij4NCis8dGl0bGU+RnVsbCBzeW50YXg8L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSBmb2xsb3dpbmcgZ3JhbW1hciBzdW1tYXJpemVzIHRoZSBzeW50YXggb2YgUkVMQVggTkcuDQorQWx0aG91Z2ggd2UgdXNlIGEgbm90YXRpb24gYmFzZWQgb24gdGhlIFhNTCByZXByZXNlbnRhdGlvbiBvZiBhbiBSRUxBWA0KK05HIHNjaGVtYSBhcyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsIHRoZSBncmFtbWFyIG11c3QgYmUgdW5kZXJzdG9vZA0KK2FzIG9wZXJhdGluZyBhdCB0aGUgZGF0YSBtb2RlbCBsZXZlbC4gIEZvciBleGFtcGxlLCBhbHRob3VnaCB0aGUNCitzeW50YXggdXNlcyA8bGl0ZXJhbD48IVtDREFUQVs8dGV4dC8+XV0+PC9saXRlcmFsPiwgYW4gaW5zdGFuY2Ugb3INCitzY2hlbWEgY2FuIHVzZSA8bGl0ZXJhbD48IVtDREFUQVs8dGV4dD48L3RleHQ+XV0+PC9saXRlcmFsPiBpbnN0ZWFkLA0KK2JlY2F1c2UgdGhleSBib3RoIHJlcHJlc2VudCB0aGUgc2FtZSBlbGVtZW50IGF0IHRoZSBkYXRhIG1vZGVsIGxldmVsLg0KK0FsbCBlbGVtZW50cyBzaG93biBpbiB0aGUgZ3JhbW1hciBhcmUgcXVhbGlmaWVkIHdpdGggdGhlIG5hbWVzcGFjZQ0KK1VSSTo8L3BhcmE+DQorDQorPHByb2dyYW1saXN0aW5nPmh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wPC9wcm9ncmFtbGlzdGluZz4NCisNCis8cGFyYT5UaGUgc3ltYm9scyBRTmFtZSBhbmQgTkNOYW1lIGFyZSBkZWZpbmVkIGluIDx4cmVmDQorbGlua2VuZD0ieG1sLW5hbWVzIi8+LiAgVGhlIGFueVVSSSBzeW1ib2wgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMgdGhlDQorYW55VVJJIGRhdGF0eXBlIG9mIDx4cmVmIGxpbmtlbmQ9InhtbHNjaGVtYS0yIi8+OiBpdCBpbmRpY2F0ZXMgYQ0KK3N0cmluZyB0aGF0LCBhZnRlciBlc2NhcGluZyBvZiBkaXNhbGxvd2VkIHZhbHVlcyBhcyBkZXNjcmliZWQgaW4NCitTZWN0aW9uIDUuNCBvZiA8eHJlZiBsaW5rZW5kPSJ4bGluayIvPiwgaXMgYSBVUkkgcmVmZXJlbmNlIGFzIGRlZmluZWQNCitpbiA8eHJlZiBsaW5rZW5kPSJyZmMyMzk2Ii8+IChhcyBtb2RpZmllZCBieSA8eHJlZg0KK2xpbmtlbmQ9InJmYzI3MzIiLz4pLiAgVGhlIHN5bWJvbCBzdHJpbmcgbWF0Y2hlcyBhbnkgc3RyaW5nLjwvcGFyYT4NCisNCis8cGFyYT5JbiBhZGRpdGlvbiB0byB0aGUgYXR0cmlidXRlcyBzaG93biBleHBsaWNpdGx5LCBhbnkgZWxlbWVudCBjYW4NCitoYXZlIGFuIDxsaXRlcmFsPm5zPC9saXRlcmFsPiBhdHRyaWJ1dGUgYW5kIGFueSBlbGVtZW50IGNhbiBoYXZlIGENCis8bGl0ZXJhbD5kYXRhdHlwZUxpYnJhcnk8L2xpdGVyYWw+IGF0dHJpYnV0ZS4gVGhlDQorPGxpdGVyYWw+bnM8L2xpdGVyYWw+IGF0dHJpYnV0ZSBjYW4gaGF2ZSBhbnkgdmFsdWUuICBUaGUgdmFsdWUgb2YgdGhlDQorPGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPiBhdHRyaWJ1dGUgbXVzdCBtYXRjaCB0aGUgYW55VVJJDQorc3ltYm9sIGFzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgcGFyYWdyYXBoOyBpbiBhZGRpdGlvbiwgaXQgbXVzdA0KK25vdCB1c2UgdGhlIHJlbGF0aXZlIGZvcm0gb2YgVVJJIHJlZmVyZW5jZSBhbmQgbXVzdCBub3QgaGF2ZSBhDQorZnJhZ21lbnQgaWRlbnRpZmllcjsgYXMgYW4gZXhjZXB0aW9uIHRvIHRoaXMsIHRoZSB2YWx1ZSBtYXkgYmUgdGhlDQorZW1wdHkgc3RyaW5nLjwvcGFyYT4NCisNCis8cGFyYT5BbnkgZWxlbWVudCBjYW4gYWxzbyBoYXZlIGZvcmVpZ24gYXR0cmlidXRlcyBpbiBhZGRpdGlvbiB0byB0aGUNCithdHRyaWJ1dGVzIHNob3duIGluIHRoZSBncmFtbWFyLiBBIGZvcmVpZ24gYXR0cmlidXRlIGlzIGFuIGF0dHJpYnV0ZQ0KK3dpdGggYSBuYW1lIHdob3NlIG5hbWVzcGFjZSBVUkkgaXMgbmVpdGhlciB0aGUgZW1wdHkgc3RyaW5nIG5vciB0aGUNCitSRUxBWCBORyBuYW1lc3BhY2UgVVJJLiAgQW55IGVsZW1lbnQgdGhhdCBjYW5ub3QgaGF2ZSBzdHJpbmcgY2hpbGRyZW4NCisodGhhdCBpcywgYW55IGVsZW1lbnQgb3RoZXIgdGhhbiA8bGl0ZXJhbD52YWx1ZTwvbGl0ZXJhbD4sIDxsaXRlcmFsPnBhcmFtPC9saXRlcmFsPg0KK2FuZCA8bGl0ZXJhbD5uYW1lPC9saXRlcmFsPikgbWF5IGhhdmUgZm9yZWlnbiBjaGlsZCBlbGVtZW50cyBpbiBhZGRpdGlvbg0KK3RvIHRoZSBjaGlsZCBlbGVtZW50cyBzaG93biBpbiB0aGUgZ3JhbW1hci4gQSBmb3JlaWduIGVsZW1lbnQgaXMgYW4NCitlbGVtZW50IHdpdGggYSBuYW1lIHdob3NlIG5hbWVzcGFjZSBVUkkgaXMgbm90IHRoZSBSRUxBWCBORyBuYW1lc3BhY2UNCitVUkkuICBUaGVyZSBhcmUgbm8gY29uc3RyYWludHMgb24gdGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIGZvcmVpZ24NCitjaGlsZCBlbGVtZW50cyB3aXRoIHJlc3BlY3QgdG8gb3RoZXIgY2hpbGQgZWxlbWVudHMuPC9wYXJhPg0KKw0KKzxwYXJhPkFueSBlbGVtZW50IGNhbiBhbHNvIGhhdmUgYXMgY2hpbGRyZW4gc3RyaW5ncyB0aGF0IGNvbnNpc3QNCitlbnRpcmVseSBvZiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMsIHdoZXJlIGEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgb25lDQorb2YgI3gyMCwgI3g5LCAjeEQgb3IgI3hBLiBUaGVyZSBhcmUgbm8gY29uc3RyYWludHMgb24gdGhlIHJlbGF0aXZlDQorcG9zaXRpb24gb2Ygd2hpdGVzcGFjZSBzdHJpbmcgY2hpbGRyZW4gd2l0aCByZXNwZWN0IHRvIGNoaWxkDQorZWxlbWVudHMuPC9wYXJhPg0KKw0KKzxwYXJhPkxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgaXMgYWxsb3dlZCBmb3IgdmFsdWUgb2YgZWFjaA0KKzxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+LCA8bGl0ZXJhbD50eXBlPC9saXRlcmFsPiBhbmQNCis8bGl0ZXJhbD5jb21iaW5lPC9saXRlcmFsPiBhdHRyaWJ1dGUgYW5kIGZvciB0aGUgY29udGVudCBvZiBlYWNoDQorPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gZWxlbWVudC48L3BhcmE+DQorDQorPGdyYW1tYXJyZWYgc3JjPSJmdWxsLnJuZyIvPg0KKw0KKzxzZWN0aW9uIGlkPSJmdWxsLXN5bnRheC1leGFtcGxlIj4NCis8dGl0bGU+RXhhbXBsZTwvdGl0bGU+DQorDQorPHBhcmE+SGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgc2NoZW1hIGluIHRoZSBmdWxsIHN5bnRheCBmb3IgdGhlDQorZG9jdW1lbnQgaW4gPHhyZWYgbGlua2VuZD0iZGF0YS1tb2RlbC1leGFtcGxlIi8+LjwvcGFyYT4NCisNCis8cHJvZ3JhbWxpc3Rpbmc+PCFbQ0RBVEFbPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPGVsZW1lbnQgbmFtZT0iZm9vIg0KKyAgICAgICAgIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCisgICAgICAgICB4bWxuczphPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvYW5ub3RhdGlvbi8xLjAiDQorICAgICAgICAgeG1sbnM6ZXgxPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL24xIg0KKyAgICAgICAgIHhtbG5zOmV4Mj0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMiI+DQorICA8YTpkb2N1bWVudGF0aW9uPkEgZm9vIGVsZW1lbnQuPC9hOmRvY3VtZW50Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZXgxOmJhcjEiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKyAgPGVsZW1lbnQgbmFtZT0iZXgyOmJhcjIiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZWxlbWVudD5dXT48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9InNpbXBsaWZpY2F0aW9uIj4NCis8dGl0bGU+U2ltcGxpZmljYXRpb248L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSBmdWxsIHN5bnRheCBnaXZlbiBpbiB0aGUgcHJldmlvdXMgc2VjdGlvbiBpcyB0cmFuc2Zvcm1lZA0KK2ludG8gYSBzaW1wbGVyIHN5bnRheCBieSBhcHBseWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uIHJ1bGVzDQoraW4gb3JkZXIuIFRoZSBlZmZlY3QgbXVzdCBiZSBhcyBpZiBlYWNoIHJ1bGUgd2FzIGFwcGxpZWQgdG8gYWxsDQorZWxlbWVudHMgaW4gdGhlIHNjaGVtYSBiZWZvcmUgdGhlIG5leHQgcnVsZSBpcyBhcHBsaWVkLiAgQQ0KK3RyYW5zZm9ybWF0aW9uIHJ1bGUgbWF5IGFsc28gc3BlY2lmeSBjb25zdHJhaW50cyB0aGF0IG11c3QgYmUNCitzYXRpc2ZpZWQgYnkgYSBjb3JyZWN0IHNjaGVtYS4gVGhlIHRyYW5zZm9ybWF0aW9uIHJ1bGVzIGFyZSBhcHBsaWVkDQorYXQgdGhlIGRhdGEgbW9kZWwgbGV2ZWwuICBCZWZvcmUgdGhlIHRyYW5zZm9ybWF0aW9ucyBhcmUgYXBwbGllZCwgdGhlDQorc2NoZW1hIGlzIHBhcnNlZCBpbnRvIGFuIGluc3RhbmNlIG9mIHRoZSBkYXRhIG1vZGVsLjwvcGFyYT4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+QW5ub3RhdGlvbnM8L3RpdGxlPg0KKw0KKzxwYXJhPkZvcmVpZ24gYXR0cmlidXRlcyBhbmQgZWxlbWVudHMgYXJlIHJlbW92ZWQuPC9wYXJhPg0KKw0KKzxub3RlPjxwYXJhPkl0IGlzIHNhZmUgdG8gcmVtb3ZlIDxsaXRlcmFsPnhtbDpiYXNlPC9saXRlcmFsPg0KK2F0dHJpYnV0ZXMgYXQgdGhpcyBzdGFnZSBiZWNhdXNlIDxsaXRlcmFsPnhtbDpiYXNlPC9saXRlcmFsPg0KK2F0dHJpYnV0ZXMgYXJlIHVzZWQgaW4gZGV0ZXJtaW5pbmcgdGhlIFtiYXNlIFVSSV0gb2YgYW4gZWxlbWVudA0KK2luZm9ybWF0aW9uIGl0ZW0sIHdoaWNoIGlzIGluIHR1cm4gdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGJhc2UgVVJJIG9mDQordGhlIGNvbnRleHQgb2YgYW4gZWxlbWVudC4gIFRodXMsIGFmdGVyIGEgZG9jdW1lbnQgaGFzIGJlZW4gcGFyc2VkDQoraW50byBhbiBpbnN0YW5jZSBvZiB0aGUgZGF0YSBtb2RlbCwgPGxpdGVyYWw+eG1sOmJhc2U8L2xpdGVyYWw+DQorYXR0cmlidXRlcyBjYW4gYmUgZGlzY2FyZGVkLjwvcGFyYT48L25vdGU+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uPg0KKzx0aXRsZT5XaGl0ZXNwYWNlPC90aXRsZT4NCisNCis8cGFyYT5Gb3IgZWFjaCBlbGVtZW50IG90aGVyIHRoYW4gPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+IGFuZA0KKzxsaXRlcmFsPnBhcmFtPC9saXRlcmFsPiwgZWFjaCBjaGlsZCB0aGF0IGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgb25seQ0KK3doaXRlc3BhY2UgY2hhcmFjdGVycyBpcyByZW1vdmVkLjwvcGFyYT4NCisNCis8cGFyYT5MZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgYXJlIHJlbW92ZWQgZnJvbSB0aGUNCit2YWx1ZSBvZiBlYWNoIDxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+LCA8bGl0ZXJhbD50eXBlPC9saXRlcmFsPiBhbmQNCis8bGl0ZXJhbD5jb21iaW5lPC9saXRlcmFsPiBhdHRyaWJ1dGUgYW5kIGZyb20gdGhlIGNvbnRlbnQgb2YgZWFjaA0KKzxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+IGVsZW1lbnQuPC9wYXJhPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+PGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPiBhdHRyaWJ1dGU8L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSB2YWx1ZSBvZiBlYWNoIDxsaXRlcmFsPmRhdGF0eXBlTGliYXJ5PC9saXRlcmFsPiBhdHRyaWJ1dGUgaXMNCit0cmFuc2Zvcm1lZCBieSBlc2NhcGluZyBkaXNhbGxvd2VkIGNoYXJhY3RlcnMgYXMgc3BlY2lmaWVkIGluIFNlY3Rpb24NCis1LjQgb2YgPHhyZWYgbGlua2VuZD0ieGxpbmsiLz4uPC9wYXJhPg0KKw0KKzxwYXJhPkZvciBhbnkgPGxpdGVyYWw+ZGF0YTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+DQorZWxlbWVudCB0aGF0IGRvZXMgbm90IGhhdmUgYSA8bGl0ZXJhbD5kYXRhdHlwZUxpYnJhcnk8L2xpdGVyYWw+DQorYXR0cmlidXRlLCBhIDxsaXRlcmFsPmRhdGF0eXBlTGlicmFyeTwvbGl0ZXJhbD4gYXR0cmlidXRlIGlzDQorYWRkZWQuIFRoZSB2YWx1ZSBvZiB0aGUgYWRkZWQgPGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPg0KK2F0dHJpYnV0ZSBpcyB0aGUgdmFsdWUgb2YgdGhlIDxsaXRlcmFsPmRhdGF0eXBlTGlicmFyeTwvbGl0ZXJhbD4NCithdHRyaWJ1dGUgb2YgdGhlIG5lYXJlc3QgYW5jZXN0b3IgZWxlbWVudCB0aGF0IGhhcyBhDQorPGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPiBhdHRyaWJ1dGUsIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYNCit0aGVyZSBpcyBubyBzdWNoIGFuY2VzdG9yLiBUaGVuLCBhbnkgPGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPg0KK2F0dHJpYnV0ZSB0aGF0IGlzIG9uIGFuIGVsZW1lbnQgb3RoZXIgdGhhbiA8bGl0ZXJhbD5kYXRhPC9saXRlcmFsPiBvcg0KKzxsaXRlcmFsPnZhbHVlPC9saXRlcmFsPiBpcyByZW1vdmVkLjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPnR5cGU8L2xpdGVyYWw+IGF0dHJpYnV0ZSBvZiA8bGl0ZXJhbD52YWx1ZTwvbGl0ZXJhbD4gZWxlbWVudDwvdGl0bGU+DQorDQorPHBhcmE+Rm9yIGFueSA8bGl0ZXJhbD52YWx1ZTwvbGl0ZXJhbD4gZWxlbWVudCB0aGF0IGRvZXMgbm90IGhhdmUgYQ0KKzxsaXRlcmFsPnR5cGU8L2xpdGVyYWw+IGF0dHJpYnV0ZSwgYSA8bGl0ZXJhbD50eXBlPC9saXRlcmFsPiBhdHRyaWJ1dGUNCitpcyBhZGRlZCB3aXRoIHZhbHVlIDxsaXRlcmFsPnRva2VuPC9saXRlcmFsPiBhbmQgdGhlIHZhbHVlIG9mIHRoZQ0KKzxsaXRlcmFsPmRhdGF0eXBlTGlicmFyeTwvbGl0ZXJhbD4gYXR0cmlidXRlIGlzIGNoYW5nZWQgdG8gdGhlIGVtcHR5DQorc3RyaW5nLjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9ImhyZWYiPg0KKzx0aXRsZT48bGl0ZXJhbD5ocmVmPC9saXRlcmFsPiBhdHRyaWJ1dGU8L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSB2YWx1ZSBvZiB0aGUgPGxpdGVyYWw+aHJlZjwvbGl0ZXJhbD4gYXR0cmlidXRlIG9uIGFuDQorPGxpdGVyYWw+ZXh0ZXJuYWxSZWY8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+IGVsZW1lbnQNCitpcyBmaXJzdCB0cmFuc2Zvcm1lZCBieSBlc2NhcGluZyBkaXNhbGxvd2VkIGNoYXJhY3RlcnMgYXMgc3BlY2lmaWVkIGluDQorU2VjdGlvbiA1LjQgb2YgPHhyZWYgbGlua2VuZD0ieGxpbmsiLz4uICBUaGUgVVJJIHJlZmVyZW5jZSBpcyB0aGVuDQorcmVzb2x2ZWQgaW50byBhbiBhYnNvbHV0ZSBmb3JtIGFzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDUuMiBvZiA8eHJlZg0KK2xpbmtlbmQ9InJmYzIzOTYiLz4gdXNpbmcgdGhlIGJhc2UgVVJJIGZyb20gdGhlIGNvbnRleHQgb2YgdGhlIGVsZW1lbnQNCit0aGF0IGJlYXJzIHRoZSA8bGl0ZXJhbD5ocmVmPC9saXRlcmFsPiBhdHRyaWJ1dGUuPC9wYXJhPg0KKw0KKzxwYXJhPlRoZSB2YWx1ZSBvZiB0aGUgPGxpdGVyYWw+aHJlZjwvbGl0ZXJhbD4gYXR0cmlidXRlIHdpbGwgYmUgdXNlZA0KK3RvIGNvbnN0cnVjdCBhbiBlbGVtZW50IChhcyBzcGVjaWZpZWQgaW4gPHhyZWYNCitsaW5rZW5kPSJkYXRhLW1vZGVsIi8+KS4gVGhpcyBtdXN0IGJlIGRvbmUgYXMgZm9sbG93cy4gIFRoZSBVUkkNCityZWZlcmVuY2UgY29uc2lzdHMgb2YgdGhlIFVSSSBpdHNlbGYgYW5kIGFuIG9wdGlvbmFsIGZyYWdtZW50DQoraWRlbnRpZmllci4gVGhlIHJlc291cmNlIGlkZW50aWZpZWQgYnkgdGhlIFVSSSBpcyByZXRyaWV2ZWQuICBUaGUNCityZXN1bHQgaXMgYSBNSU1FIGVudGl0eTogYSBzZXF1ZW5jZSBvZiBieXRlcyBsYWJlbGVkIHdpdGggYSBNSU1FDQorbWVkaWEgdHlwZS4gIFRoZSBtZWRpYSB0eXBlIGRldGVybWluZXMgaG93IGFuIGVsZW1lbnQgaXMgY29uc3RydWN0ZWQNCitmcm9tIHRoZSBNSU1FIGVudGl0eSBhbmQgb3B0aW9uYWwgZnJhZ21lbnQgaWRlbnRpZmllci4gIFdoZW4gdGhlIG1lZGlhDQordHlwZSBpcyA8bGl0ZXJhbD5hcHBsaWNhdGlvbi94bWw8L2xpdGVyYWw+IG9yDQorPGxpdGVyYWw+dGV4dC94bWw8L2xpdGVyYWw+LCB0aGUgTUlNRSBlbnRpdHkgbXVzdCBiZSBwYXJzZWQgYXMgYW4gWE1MDQorZG9jdW1lbnQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBhcHBsaWNhYmxlIFJGQyAoYXQgdGhlIHRlcm0gb2Ygd3JpdGluZw0KKzx4cmVmIGxpbmtlbmQ9InJmYzMwMjMiLz4pIGFuZCBhbiBlbGVtZW50IGNvbnN0cnVjdGVkIGZyb20gdGhlIHJlc3VsdA0KK29mIHRoZSBwYXJzZSBhcyBzcGVjaWZpZWQgaW4gPHhyZWYgbGlua2VuZD0iZGF0YS1tb2RlbCIvPi4gIEluDQorcGFydGljdWxhciwgdGhlIDxsaXRlcmFsPmNoYXJzZXQ8L2xpdGVyYWw+IHBhcmFtZXRlciBtdXN0IGJlIGhhbmRsZWQNCithcyBzcGVjaWZpZWQgYnkgdGhlIFJGQy4gVGhpcyBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IGRlZmluZSB0aGUNCitoYW5kbGluZyBvZiBtZWRpYSB0eXBlcyBvdGhlciB0aGFuIDxsaXRlcmFsPmFwcGxpY2F0aW9uL3htbDwvbGl0ZXJhbD4NCithbmQgPGxpdGVyYWw+dGV4dC94bWw8L2xpdGVyYWw+LiBUaGUgPGxpdGVyYWw+aHJlZjwvbGl0ZXJhbD4gYXR0cmlidXRlDQorbXVzdCBub3QgaW5jbHVkZSBhIGZyYWdtZW50IGlkZW50aWZpZXIgdW5sZXNzIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlDQorbWVkaWEgdHlwZSBvZiB0aGUgcmVzb3VyY2UgaWRlbnRpZmllZCBieSB0aGUgYXR0cmlidXRlIGRlZmluZXMgdGhlDQoraW50ZXJwcmV0YXRpb24gb2YgZnJhZ21lbnQgaWRlbnRpZmllcnMgZm9yIHRoYXQgbWVkaWEgdHlwZS48L3BhcmE+DQorDQorPG5vdGU+PHBhcmE+PHhyZWYgbGlua2VuZD0icmZjMzAyMyIvPiBkb2VzIG5vdCBkZWZpbmUgdGhlDQoraW50ZXJwcmV0YXRpb24gb2YgZnJhZ21lbnQgaWRlbnRpZmllcnMgZm9yDQorPGxpdGVyYWw+YXBwbGljYXRpb24veG1sPC9saXRlcmFsPiBvcg0KKzxsaXRlcmFsPnRleHQveG1sPC9saXRlcmFsPi48L3BhcmE+PC9ub3RlPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+PGxpdGVyYWw+ZXh0ZXJuYWxSZWY8L2xpdGVyYWw+IGVsZW1lbnQ8L3RpdGxlPg0KKw0KKzxwYXJhPkFuIDxsaXRlcmFsPmV4dGVybmFsUmVmPC9saXRlcmFsPiBlbGVtZW50IGlzIHRyYW5zZm9ybWVkIGFzDQorZm9sbG93cy4gIEFuIGVsZW1lbnQgaXMgY29uc3RydWN0ZWQgdXNpbmcgdGhlIFVSSSByZWZlcmVuY2UgdGhhdCBpcw0KK3RoZSB2YWx1ZSBvZiA8bGl0ZXJhbD5ocmVmPC9saXRlcmFsPiBhdHRyaWJ1dGUgYXMgc3BlY2lmaWVkIGluIDx4cmVmDQorbGlua2VuZD0iaHJlZiIvPi4gVGhpcyBlbGVtZW50IG11c3QgbWF0Y2ggdGhlIHN5bnRheCBmb3IgcGF0dGVybi4gIFRoZQ0KK2VsZW1lbnQgaXMgdHJhbnNmb3JtZWQgYnkgcmVjdXJzaXZlbHkgYXBwbHlpbmcgdGhlIHJ1bGVzIGZyb20gdGhpcw0KK3N1YnNlY3Rpb24gYW5kIGZyb20gcHJldmlvdXMgc3Vic2VjdGlvbnMgb2YgdGhpcyBzZWN0aW9uLiBUaGlzIG11c3QNCitub3QgcmVzdWx0IGluIGEgbG9vcC4gSW4gb3RoZXIgd29yZHMsIHRoZSB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUNCityZWZlcmVuY2VkIGVsZW1lbnQgbXVzdCBub3QgcmVxdWlyZSB0aGUgZGVyZWZlcmVuY2luZyBvZiBhbg0KKzxsaXRlcmFsPmV4dGVybmFsUmVmPC9saXRlcmFsPiBhdHRyaWJ1dGUgd2l0aCBhbg0KKzxsaXRlcmFsPmhyZWY8L2xpdGVyYWw+IGF0dHJpYnV0ZSB3aXRoIHRoZSBzYW1lIHZhbHVlLjwvcGFyYT4NCisNCis8cGFyYT5BbnkgPGxpdGVyYWw+bnM8L2xpdGVyYWw+IGF0dHJpYnV0ZSBvbiB0aGUNCis8bGl0ZXJhbD5leHRlcm5hbFJlZjwvbGl0ZXJhbD4gZWxlbWVudCBpcyB0cmFuc2ZlcnJlZCB0byB0aGUNCityZWZlcmVuY2VkIGVsZW1lbnQgaWYgdGhlIHJlZmVyZW5jZWQgZWxlbWVudCBkb2VzIG5vdCBhbHJlYWR5IGhhdmUgYW4NCis8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlLiAgVGhlIDxsaXRlcmFsPmV4dGVybmFsUmVmPC9saXRlcmFsPg0KK2VsZW1lbnQgaXMgdGhlbiByZXBsYWNlZCBieSB0aGUgcmVmZXJlbmNlZCBlbGVtZW50LjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+IGVsZW1lbnQ8L3RpdGxlPg0KKw0KKzxwYXJhPkFuIDxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+IGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQgYXMgZm9sbG93cy4NCitBbiBlbGVtZW50IGlzIGNvbnN0cnVjdGVkIHVzaW5nIHRoZSBVUkkgcmVmZXJlbmNlIHRoYXQgaXMgdGhlIHZhbHVlIG9mDQorPGxpdGVyYWw+aHJlZjwvbGl0ZXJhbD4gYXR0cmlidXRlIGFzIHNwZWNpZmllZCBpbiA8eHJlZg0KK2xpbmtlbmQ9ImhyZWYiLz4uICBUaGlzIGVsZW1lbnQgbXVzdCBiZSBhIDxsaXRlcmFsPmdyYW1tYXI8L2xpdGVyYWw+DQorZWxlbWVudCwgbWF0Y2hpbmcgdGhlIHN5bnRheCBmb3IgZ3JhbW1hci48L3BhcmE+DQorDQorPHBhcmE+VGhpcyA8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50IGlzIHRyYW5zZm9ybWVkIGJ5DQorcmVjdXJzaXZlbHkgYXBwbHlpbmcgdGhlIHJ1bGVzIGZyb20gdGhpcyBzdWJzZWN0aW9uIGFuZCBmcm9tIHByZXZpb3VzDQorc3Vic2VjdGlvbnMgb2YgdGhpcyBzZWN0aW9uLiAgVGhpcyBtdXN0IG5vdCByZXN1bHQgaW4gYSBsb29wLiBJbiBvdGhlcg0KK3dvcmRzLCB0aGUgdHJhbnNmb3JtYXRpb24gb2YgdGhlIDxsaXRlcmFsPmdyYW1tYXI8L2xpdGVyYWw+IGVsZW1lbnQNCittdXN0IG5vdCByZXF1aXJlIHRoZSBkZXJlZmVyZW5jaW5nIG9mIGFuIDxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+DQorYXR0cmlidXRlIHdpdGggYW4gPGxpdGVyYWw+aHJlZjwvbGl0ZXJhbD4gYXR0cmlidXRlIHdpdGggdGhlIHNhbWUNCit2YWx1ZS48L3BhcmE+DQorDQorPHBhcmE+RGVmaW5lIHRoZSA8Zmlyc3R0ZXJtPmNvbXBvbmVudHM8L2ZpcnN0dGVybT4gb2YgYW4gZWxlbWVudCB0bw0KK2JlIHRoZSBjaGlsZHJlbiBvZiB0aGUgZWxlbWVudCB0b2dldGhlciB3aXRoIHRoZSBjb21wb25lbnRzIG9mIGFueQ0KKzxsaXRlcmFsPmRpdjwvbGl0ZXJhbD4gY2hpbGQgZWxlbWVudHMuICBJZiB0aGUNCis8bGl0ZXJhbD5pbmNsdWRlPC9saXRlcmFsPiBlbGVtZW50IGhhcyBhIDxsaXRlcmFsPnN0YXJ0PC9saXRlcmFsPg0KK2NvbXBvbmVudCwgdGhlbiB0aGUgPGxpdGVyYWw+Z3JhbW1hcjwvbGl0ZXJhbD4gZWxlbWVudCBtdXN0IGhhdmUgYQ0KKzxsaXRlcmFsPnN0YXJ0PC9saXRlcmFsPiBjb21wb25lbnQuICBJZiB0aGUgPGxpdGVyYWw+aW5jbHVkZTwvbGl0ZXJhbD4NCitlbGVtZW50IGhhcyBhIDxsaXRlcmFsPnN0YXJ0PC9saXRlcmFsPiBjb21wb25lbnQsIHRoZW4gYWxsDQorPGxpdGVyYWw+c3RhcnQ8L2xpdGVyYWw+IGNvbXBvbmVudHMgYXJlIHJlbW92ZWQgZnJvbSB0aGUNCis8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50LiAgSWYgdGhlIDxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+DQorZWxlbWVudCBoYXMgYSA8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGNvbXBvbmVudCwgdGhlbiB0aGUNCis8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50IG11c3QgaGF2ZSBhDQorPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBjb21wb25lbnQgd2l0aCB0aGUgc2FtZSBuYW1lLiAgRm9yIGV2ZXJ5DQorPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBjb21wb25lbnQgb2YgdGhlIDxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+DQorZWxlbWVudCwgYWxsIDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gY29tcG9uZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUNCithcmUgcmVtb3ZlZCBmcm9tIHRoZSA8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50LjwvcGFyYT4NCisNCis8cGFyYT5UaGUgPGxpdGVyYWw+aW5jbHVkZTwvbGl0ZXJhbD4gZWxlbWVudCBpcyB0cmFuc2Zvcm1lZCBpbnRvIGENCis8bGl0ZXJhbD5kaXY8L2xpdGVyYWw+IGVsZW1lbnQuICBUaGUgYXR0cmlidXRlcyBvZiB0aGUNCis8bGl0ZXJhbD5kaXY8L2xpdGVyYWw+IGVsZW1lbnQgYXJlIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZQ0KKzxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+IGVsZW1lbnQgb3RoZXIgdGhhbiB0aGUNCis8bGl0ZXJhbD5ocmVmPC9saXRlcmFsPiBhdHRyaWJ1dGUuICBUaGUgY2hpbGRyZW4gb2YgdGhlDQorPGxpdGVyYWw+ZGl2PC9saXRlcmFsPiBlbGVtZW50IGFyZSB0aGUgPGxpdGVyYWw+Z3JhbW1hcjwvbGl0ZXJhbD4NCitlbGVtZW50IChhZnRlciB0aGUgcmVtb3ZhbCBvZiB0aGUgPGxpdGVyYWw+c3RhcnQ8L2xpdGVyYWw+IGFuZA0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gY29tcG9uZW50cyBkZXNjcmliZWQgYnkgdGhlIHByZWNlZGluZw0KK3BhcmFncmFwaCkgZm9sbG93ZWQgYnkgdGhlIGNoaWxkcmVuIG9mIHRoZSA8bGl0ZXJhbD5pbmNsdWRlPC9saXRlcmFsPg0KK2VsZW1lbnQuICBUaGUgPGxpdGVyYWw+Z3JhbW1hcjwvbGl0ZXJhbD4gZWxlbWVudCBpcyB0aGVuIHJlbmFtZWQgdG8NCis8bGl0ZXJhbD5kaXY8L2xpdGVyYWw+LjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+IGF0dHJpYnV0ZSBvZiA8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPg0KK2FuZCA8bGl0ZXJhbD5hdHRyaWJ1dGU8L2xpdGVyYWw+IGVsZW1lbnRzPC90aXRsZT4NCisNCis8cGFyYT5UaGUgPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gYXR0cmlidXRlIG9uIGFuDQorPGxpdGVyYWw+ZWxlbWVudDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YXR0cmlidXRlPC9saXRlcmFsPiBlbGVtZW50IGlzDQordHJhbnNmb3JtZWQgaW50byBhIDxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+IGNoaWxkIGVsZW1lbnQuPC9wYXJhPg0KKw0KKzxwYXJhPklmIGFuIDxsaXRlcmFsPmF0dHJpYnV0ZTwvbGl0ZXJhbD4gZWxlbWVudCBoYXMgYQ0KKzxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+IGF0dHJpYnV0ZSBidXQgbm8gPGxpdGVyYWw+bnM8L2xpdGVyYWw+DQorYXR0cmlidXRlLCB0aGVuIGFuIDxsaXRlcmFsPm5zPSIiPC9saXRlcmFsPiBhdHRyaWJ1dGUgaXMgYWRkZWQgdG8gdGhlDQorPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gY2hpbGQgZWxlbWVudC48L3BhcmE+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uPg0KKzx0aXRsZT48bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlPC90aXRsZT4NCisNCis8cGFyYT5Gb3IgYW55IDxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5uc05hbWU8L2xpdGVyYWw+IG9yDQorPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBkb2VzIG5vdCBoYXZlIGFuDQorPGxpdGVyYWw+bnM8L2xpdGVyYWw+IGF0dHJpYnV0ZSwgYW4gPGxpdGVyYWw+bnM8L2xpdGVyYWw+IGF0dHJpYnV0ZSBpcw0KK2FkZGVkLiBUaGUgdmFsdWUgb2YgdGhlIGFkZGVkIDxsaXRlcmFsPm5zPC9saXRlcmFsPiBhdHRyaWJ1dGUgaXMgdGhlDQordmFsdWUgb2YgdGhlIDxsaXRlcmFsPm5zPC9saXRlcmFsPiBhdHRyaWJ1dGUgb2YgdGhlIG5lYXJlc3QgYW5jZXN0b3INCitlbGVtZW50IHRoYXQgaGFzIGFuIDxsaXRlcmFsPm5zPC9saXRlcmFsPiBhdHRyaWJ1dGUsIG9yIHRoZSBlbXB0eQ0KK3N0cmluZyBpZiB0aGVyZSBpcyBubyBzdWNoIGFuY2VzdG9yLiBUaGVuLCBhbnkgPGxpdGVyYWw+bnM8L2xpdGVyYWw+DQorYXR0cmlidXRlIHRoYXQgaXMgb24gYW4gZWxlbWVudCBvdGhlciB0aGFuIDxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+LA0KKzxsaXRlcmFsPm5zTmFtZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+IGlzDQorcmVtb3ZlZC48L3BhcmE+DQorDQorPG5vdGU+PHBhcmE+VGhlIHZhbHVlIG9mIHRoZSA8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlIGlzDQorPGVtcGhhc2lzIHJvbGU9InN0cm9uZyI+bm90PC9lbXBoYXNpcz4gdHJhbnNmb3JtZWQgZWl0aGVyIGJ5IGVzY2FwaW5nDQorZGlzYWxsb3dlZCBjaGFyYWN0ZXJzLCBvciBpbiBhbnkgb3RoZXIgd2F5LCBiZWNhdXNlIHRoZSB2YWx1ZSBvZiB0aGUNCis8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlIGlzIGNvbXBhcmVkIGFnYWluc3QgbmFtZXNwYWNlIFVSSXMgaW4NCit0aGUgaW5zdGFuY2UsIHdoaWNoIGFyZSBub3Qgc3ViamVjdCB0byBhbnkNCit0cmFuc2Zvcm1hdGlvbi48L3BhcmE+PC9ub3RlPg0KKw0KKzxub3RlPjxwYXJhPlNpbmNlIDxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+IGFuZA0KKzxsaXRlcmFsPmV4dGVybmFsUmVmPC9saXRlcmFsPiBlbGVtZW50cyBhcmUgcmVzb2x2ZWQgYWZ0ZXINCis8bGl0ZXJhbD5kYXRhdHlwZUxpYnJhcnk8L2xpdGVyYWw+IGF0dHJpYnV0ZXMgYXJlIGFkZGVkIGJ1dCBiZWZvcmUNCis8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlcyBhcmUgYWRkZWQsIDxsaXRlcmFsPm5zPC9saXRlcmFsPg0KK2F0dHJpYnV0ZXMgYXJlIGluaGVyaXRlZCBpbnRvIGV4dGVybmFsIHNjaGVtYXMgYnV0DQorPGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPiBhdHRyaWJ1dGVzIGFyZSBub3QuPC9wYXJhPjwvbm90ZT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24+DQorPHRpdGxlPlFOYW1lczwvdGl0bGU+DQorDQorPHBhcmE+Rm9yIGFueSA8bGl0ZXJhbD5uYW1lPC9saXRlcmFsPiBlbGVtZW50IGNvbnRhaW5pbmcgYSBwcmVmaXgsIHRoZQ0KK3ByZWZpeCBpcyByZW1vdmVkIGFuZCBhbiA8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlIGlzIGFkZGVkDQorcmVwbGFjaW5nIGFueSBleGlzdGluZyA8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlLiBUaGUgdmFsdWUgb2YNCit0aGUgYWRkZWQgPGxpdGVyYWw+bnM8L2xpdGVyYWw+IGF0dHJpYnV0ZSBpcyB0aGUgdmFsdWUgdG8gd2hpY2ggdGhlDQorbmFtZXNwYWNlIG1hcCBvZiB0aGUgY29udGV4dCBvZiB0aGUgPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gZWxlbWVudA0KK21hcHMgdGhlIHByZWZpeC4gIFRoZSBjb250ZXh0IG11c3QgaGF2ZSBhIG1hcHBpbmcgZm9yIHRoZQ0KK3ByZWZpeC48L3BhcmE+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uPg0KKzx0aXRsZT48bGl0ZXJhbD5kaXY8L2xpdGVyYWw+IGVsZW1lbnQ8L3RpdGxlPg0KKw0KKzxwYXJhPkVhY2ggPGxpdGVyYWw+ZGl2PC9saXRlcmFsPiBlbGVtZW50IGlzIHJlcGxhY2VkIGJ5IGl0cw0KK2NoaWxkcmVuLjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9Im51bWJlci1jaGlsZC1lbGVtZW50cyI+DQorPHRpdGxlPk51bWJlciBvZiBjaGlsZCBlbGVtZW50czwvdGl0bGU+DQorDQorPHBhcmE+QSA8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5vbmVPck1vcmU8L2xpdGVyYWw+LA0KKzxsaXRlcmFsPnplcm9Pck1vcmU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5vcHRpb25hbDwvbGl0ZXJhbD4sIDxsaXRlcmFsPmxpc3Q8L2xpdGVyYWw+IG9yDQorPGxpdGVyYWw+bWl4ZWQ8L2xpdGVyYWw+IGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQgc28gdGhhdCBpdCBoYXMgZXhhY3RseQ0KK29uZSBjaGlsZCBlbGVtZW50LiAgSWYgaXQgaGFzIG1vcmUgdGhhbiBvbmUgY2hpbGQgZWxlbWVudCwgdGhlbiBpdHMNCitjaGlsZCBlbGVtZW50cyBhcmUgd3JhcHBlZCBpbiBhIDxsaXRlcmFsPmdyb3VwPC9saXRlcmFsPg0KK2VsZW1lbnQuIFNpbWlsYXJseSwgYW4gPGxpdGVyYWw+ZWxlbWVudDwvbGl0ZXJhbD4gZWxlbWVudCBpcyB0cmFuc2Zvcm1lZCBzbw0KK3RoYXQgaXQgaGFzIGV4YWN0bHkgdHdvIGNoaWxkIGVsZW1lbnRzLCB0aGUgZmlyc3QgYmVpbmcgYSBuYW1lIGNsYXNzDQorYW5kIHRoZSBzZWNvbmQgYmVpbmcgYSBwYXR0ZXJuLiBJZiBpdCBoYXMgbW9yZSB0aGFuIHR3byBjaGlsZCBlbGVtZW50cywNCit0aGVuIHRoZSBjaGlsZCBlbGVtZW50cyBvdGhlciB0aGFuIHRoZSBmaXJzdCBhcmUgd3JhcHBlZCBpbiBhDQorPGxpdGVyYWw+Z3JvdXA8L2xpdGVyYWw+IGVsZW1lbnQuPC9wYXJhPg0KKw0KKzxwYXJhPkEgPGxpdGVyYWw+ZXhjZXB0PC9saXRlcmFsPiBlbGVtZW50IGlzIHRyYW5zZm9ybWVkDQorc28gdGhhdCBpdCBoYXMgZXhhY3RseSBvbmUgY2hpbGQgZWxlbWVudC4gSWYgaXQgaGFzIG1vcmUNCit0aGFuIG9uZSBjaGlsZCBlbGVtZW50LCB0aGVuIGl0cyBjaGlsZCBlbGVtZW50cyBhcmUgd3JhcHBlZA0KK2luIGEgPGxpdGVyYWw+Y2hvaWNlPC9saXRlcmFsPiBlbGVtZW50LjwvcGFyYT4NCisNCis8cGFyYT5JZiBhbiA8bGl0ZXJhbD5hdHRyaWJ1dGU8L2xpdGVyYWw+IGVsZW1lbnQgaGFzIG9ubHkgb25lIGNoaWxkDQorZWxlbWVudCAoYSBuYW1lIGNsYXNzKSwgdGhlbiBhIDxsaXRlcmFsPnRleHQ8L2xpdGVyYWw+IGVsZW1lbnQgaXMNCithZGRlZC48L3BhcmE+DQorDQorPHBhcmE+QSA8bGl0ZXJhbD5jaG9pY2U8L2xpdGVyYWw+LCA8bGl0ZXJhbD5ncm91cDwvbGl0ZXJhbD4gb3INCis8bGl0ZXJhbD5pbnRlcmxlYXZlPC9saXRlcmFsPiBlbGVtZW50IGlzIHRyYW5zZm9ybWVkIHNvIHRoYXQgaXQgaGFzDQorZXhhY3RseSB0d28gY2hpbGQgZWxlbWVudHMuIElmIGl0IGhhcyBvbmUgY2hpbGQgZWxlbWVudCwgdGhlbiBpdCBpcw0KK3JlcGxhY2VkIGJ5IGl0cyBjaGlsZCBlbGVtZW50LiAgSWYgaXQgaGFzIG1vcmUgdGhhbiB0d28gY2hpbGQNCitlbGVtZW50cywgdGhlbiB0aGUgZmlyc3QgdHdvIGNoaWxkIGVsZW1lbnRzIGFyZSBjb21iaW5lZCBpbnRvIGEgbmV3DQorZWxlbWVudCB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIHBhcmVudCBlbGVtZW50IGFuZCB3aXRoIHRoZSBmaXJzdA0KK3R3byBjaGlsZCBlbGVtZW50cyBhcyBpdHMgY2hpbGRyZW4uICBGb3IgZXhhbXBsZSw8L3BhcmE+DQorDQorPHByb2dyYW1saXN0aW5nPiZsdDtjaG9pY2UmZ3Q7IDxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZT5wMjwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZT5wMzwvcmVwbGFjZWFibGU+ICZsdDsvY2hvaWNlJmd0OzwvcHJvZ3JhbWxpc3Rpbmc+DQorDQorPHBhcmE+aXMgdHJhbnNmb3JtZWQgdG88L3BhcmE+DQorDQorPHByb2dyYW1saXN0aW5nPiZsdDtjaG9pY2UmZ3Q7ICZsdDtjaG9pY2UmZ3Q7IDxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZT5wMjwvcmVwbGFjZWFibGU+ICZsdDsvY2hvaWNlJmd0OyA8cmVwbGFjZWFibGU+cDM8L3JlcGxhY2VhYmxlPiAmbHQ7L2Nob2ljZSZndDs8L3Byb2dyYW1saXN0aW5nPg0KKw0KKzxwYXJhPlRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNoaWxkIGVsZW1lbnRzIGJ5IG9uZS4gVGhlDQordHJhbnNmb3JtYXRpb24gaXMgYXBwbGllZCByZXBlYXRlZGx5IHVudGlsIHRoZXJlIGFyZSBleGFjdGx5IHR3byBjaGlsZA0KK2VsZW1lbnRzLjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPm1peGVkPC9saXRlcmFsPiBlbGVtZW50PC90aXRsZT4NCisNCis8cGFyYT5BIDxsaXRlcmFsPm1peGVkPC9saXRlcmFsPiBlbGVtZW50IGlzIHRyYW5zZm9ybWVkIGludG8gYW4NCitpbnRlcmxlYXZpbmcgd2l0aCBhIDxsaXRlcmFsPnRleHQ8L2xpdGVyYWw+IGVsZW1lbnQ6PC9wYXJhPg0KKw0KKzxwcm9ncmFtbGlzdGluZz4mbHQ7bWl4ZWQ+IDxyZXBsYWNlYWJsZT5wPC9yZXBsYWNlYWJsZT4gJmx0Oy9taXhlZD48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzxwYXJhPmlzIHRyYW5zZm9ybWVkIGludG88L3BhcmE+DQorDQorPHByb2dyYW1saXN0aW5nPiZsdDtpbnRlcmxlYXZlPiA8cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+ICZsdDt0ZXh0Lz4gJmx0Oy9pbnRlcmxlYXZlPjwvcHJvZ3JhbWxpc3Rpbmc+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uPg0KKzx0aXRsZT48bGl0ZXJhbD5vcHRpb25hbDwvbGl0ZXJhbD4gZWxlbWVudDwvdGl0bGU+DQorDQorPHBhcmE+QW4gPGxpdGVyYWw+b3B0aW9uYWw8L2xpdGVyYWw+IGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQgaW50bw0KK2EgY2hvaWNlIHdpdGggPGxpdGVyYWw+ZW1wdHk8L2xpdGVyYWw+OjwvcGFyYT4NCisNCis8cHJvZ3JhbWxpc3Rpbmc+Jmx0O29wdGlvbmFsPiA8cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+ICZsdDsvb3B0aW9uYWw+PC9wcm9ncmFtbGlzdGluZz4NCisNCis8cGFyYT5pcyB0cmFuc2Zvcm1lZCBpbnRvPC9wYXJhPg0KKw0KKzxwcm9ncmFtbGlzdGluZz4mbHQ7Y2hvaWNlPiA8cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+ICZsdDtlbXB0eS8+ICZsdDsvY2hvaWNlPjwvcHJvZ3JhbWxpc3Rpbmc+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uPg0KKzx0aXRsZT48bGl0ZXJhbD56ZXJvT3JNb3JlPC9saXRlcmFsPiBlbGVtZW50PC90aXRsZT4NCisNCis8cGFyYT5BIDxsaXRlcmFsPnplcm9Pck1vcmU8L2xpdGVyYWw+IGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQgaW50byBhIGNob2ljZQ0KK2JldHdlZW4gPGxpdGVyYWw+b25lT3JNb3JlPC9saXRlcmFsPiBhbmQNCis8bGl0ZXJhbD5lbXB0eTwvbGl0ZXJhbD46PC9wYXJhPg0KKw0KKzxwcm9ncmFtbGlzdGluZz4mbHQ7emVyb09yTW9yZT4gPHJlcGxhY2VhYmxlPnA8L3JlcGxhY2VhYmxlPiAmbHQ7L3plcm9Pck1vcmU+PC9wcm9ncmFtbGlzdGluZz4NCisNCis8cGFyYT5pcyB0cmFuc2Zvcm1lZCBpbnRvPC9wYXJhPg0KKw0KKzxwcm9ncmFtbGlzdGluZz4mbHQ7Y2hvaWNlPiAmbHQ7b25lT3JNb3JlPiA8cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+ICZsdDsvb25lT3JNb3JlPiAmbHQ7ZW1wdHkvPiAmbHQ7L2Nob2ljZT48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbiBpZD0iY29uc3RyYWludHMiPg0KKzx0aXRsZT5Db25zdHJhaW50czwvdGl0bGU+DQorDQorPHBhcmE+SW4gdGhpcyBydWxlLCBubyB0cmFuc2Zvcm1hdGlvbiBpcyBwZXJmb3JtZWQsIGJ1dCB2YXJpb3VzDQorY29uc3RyYWludHMgYXJlIGNoZWNrZWQuPC9wYXJhPg0KKw0KKzxub3RlPjxwYXJhPlRoZSBjb25zdHJhaW50cyBpbiB0aGlzIHNlY3Rpb24sIHVubGlrZSB0aGUgY29uc3RyYWludHMNCitzcGVjaWZpZWQgaW4gPHhyZWYgbGlua2VuZD0icmVzdHJpY3Rpb24iLz4sIGNhbiBiZSBjaGVja2VkIHdpdGhvdXQNCityZXNvbHZpbmcgYW55IDxsaXRlcmFsPnJlZjwvbGl0ZXJhbD4gZWxlbWVudHMsIGFuZCBhcmUgYWNjb3JkaW5nbHkNCithcHBsaWVkIGV2ZW4gdG8gcGF0dGVybnMgdGhhdCB3aWxsIGRpc2FwcGVhciBkdXJpbmcgbGF0ZXIgc3RhZ2VzIG9mDQorc2ltcGxpZmljYXRpb24gYmVjYXVzZSB0aGV5IGFyZSBub3QgcmVhY2hhYmxlIChzZWUgPHhyZWYNCitsaW5rZW5kPSJkZWZpbmUtcmVmIi8+KSBvciBiZWNhdXNlIG9mIDxsaXRlcmFsPm5vdEFsbG93ZWQ8L2xpdGVyYWw+DQorKHNlZSA8eHJlZiBsaW5rZW5kPSJub3RBbGxvd2VkIi8+KS48L3BhcmE+PC9ub3RlPg0KKw0KKzxwYXJhPkFuIDxsaXRlcmFsPmV4Y2VwdDwvbGl0ZXJhbD4gZWxlbWVudCB0aGF0IGlzIGEgY2hpbGQgb2YgYW4NCis8bGl0ZXJhbD5hbnlOYW1lPC9saXRlcmFsPiBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW55DQorPGxpdGVyYWw+YW55TmFtZTwvbGl0ZXJhbD4gZGVzY2VuZGFudCBlbGVtZW50cy4gQW4NCis8bGl0ZXJhbD5leGNlcHQ8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBpcyBhIGNoaWxkIG9mIGFuDQorPGxpdGVyYWw+bnNOYW1lPC9saXRlcmFsPiBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW55DQorPGxpdGVyYWw+bnNOYW1lPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbnlOYW1lPC9saXRlcmFsPiBkZXNjZW5kYW50DQorZWxlbWVudHMuPC9wYXJhPg0KKw0KKzxwYXJhPkEgPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gZWxlbWVudCB0aGF0IG9jY3VycyBhcyB0aGUgZmlyc3QgY2hpbGQNCitvZiBhbiA8bGl0ZXJhbD5hdHRyaWJ1dGU8L2xpdGVyYWw+IGVsZW1lbnQgb3IgYXMgdGhlIGRlc2NlbmRhbnQgb2YgdGhlDQorZmlyc3QgY2hpbGQgb2YgYW4gPGxpdGVyYWw+YXR0cmlidXRlPC9saXRlcmFsPiBlbGVtZW50IGFuZCB0aGF0IGhhcyBhbg0KKzxsaXRlcmFsPm5zPC9saXRlcmFsPiBhdHRyaWJ1dGUgd2l0aCB2YWx1ZSBlcXVhbCB0byB0aGUgZW1wdHkgc3RyaW5nDQorbXVzdCBub3QgaGF2ZSBjb250ZW50IGVxdWFsIHRvIDxsaXRlcmFsPnhtbG5zPC9saXRlcmFsPi48L3BhcmE+DQorDQorPHBhcmE+QSA8bGl0ZXJhbD5uYW1lPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5uc05hbWU8L2xpdGVyYWw+IGVsZW1lbnQNCit0aGF0IG9jY3VycyBhcyB0aGUgZmlyc3QgY2hpbGQgb2YgYW4gPGxpdGVyYWw+YXR0cmlidXRlPC9saXRlcmFsPg0KK2VsZW1lbnQgb3IgYXMgdGhlIGRlc2NlbmRhbnQgb2YgdGhlIGZpcnN0IGNoaWxkIG9mIGFuDQorPGxpdGVyYWw+YXR0cmlidXRlPC9saXRlcmFsPiBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW4NCis8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlIHdpdGggdmFsdWUNCis8bGl0ZXJhbD5odHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zPC9saXRlcmFsPi48L3BhcmE+DQorDQorPG5vdGU+PHBhcmE+VGhlIDx4cmVmIGxpbmtlbmQ9ImluZm9zZXQiLz4gZGVmaW5lcyB0aGUgbmFtZXNwYWNlIFVSSSBvZg0KK25hbWVzcGFjZSBkZWNsYXJhdGlvbiBhdHRyaWJ1dGVzIHRvIGJlDQorPGxpdGVyYWw+aHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxuczwvbGl0ZXJhbD4uPC9wYXJhPjwvbm90ZT4NCisNCis8cGFyYT5BIDxsaXRlcmFsPmRhdGE8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPnZhbHVlPC9saXRlcmFsPiBlbGVtZW50DQorbXVzdCBiZSBjb3JyZWN0IGluIGl0cyB1c2Ugb2YgZGF0YXR5cGVzLiBTcGVjaWZpY2FsbHksIHRoZQ0KKzxsaXRlcmFsPnR5cGU8L2xpdGVyYWw+IGF0dHJpYnV0ZSBtdXN0IGlkZW50aWZ5IGEgZGF0YXR5cGUgd2l0aGluIHRoZQ0KK2RhdGF0eXBlIGxpYnJhcnkgaWRlbnRpZmllZCBieSB0aGUgdmFsdWUgb2YgdGhlDQorPGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPiBhdHRyaWJ1dGUuICBGb3IgYQ0KKzxsaXRlcmFsPmRhdGE8L2xpdGVyYWw+IGVsZW1lbnQsIHRoZSBwYXJhbWV0ZXIgbGlzdCBtdXN0IGJlIG9uZSB0aGF0DQoraXMgYWxsb3dlZCBieSB0aGUgZGF0YXR5cGUgKHNlZSA8eHJlZg0KK2xpbmtlbmQ9ImRhdGEtcGF0dGVybiIvPikuPC9wYXJhPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+PGxpdGVyYWw+Y29tYmluZTwvbGl0ZXJhbD4gYXR0cmlidXRlPC90aXRsZT4NCisNCis8cGFyYT5Gb3IgZWFjaCA8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50LCBhbGwNCis8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZSBhcmUgY29tYmluZWQNCit0b2dldGhlci4gIEZvciBhbnkgbmFtZSwgdGhlcmUgbXVzdCBub3QgYmUgbW9yZSB0aGFuIG9uZQ0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCB3aXRoIHRoYXQgbmFtZSB0aGF0IGRvZXMgbm90IGhhdmUgYQ0KKzxsaXRlcmFsPmNvbWJpbmU8L2xpdGVyYWw+IGF0dHJpYnV0ZS4gIEZvciBhbnkgbmFtZSwgaWYgdGhlcmUgaXMgYQ0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCB3aXRoIHRoYXQgbmFtZSB0aGF0IGhhcyBhDQorPGxpdGVyYWw+Y29tYmluZTwvbGl0ZXJhbD4gYXR0cmlidXRlIHdpdGggdGhlIHZhbHVlDQorPGxpdGVyYWw+Y2hvaWNlPC9saXRlcmFsPiwgdGhlbiB0aGVyZSBtdXN0IG5vdCBhbHNvIGJlIGENCis8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUgdGhhdCBoYXMgYQ0KKzxsaXRlcmFsPmNvbWJpbmU8L2xpdGVyYWw+IGF0dHJpYnV0ZSB3aXRoIHRoZSB2YWx1ZQ0KKzxsaXRlcmFsPmludGVybGVhdmU8L2xpdGVyYWw+LiBUaHVzLCBmb3IgYW55IG5hbWUsIGlmIHRoZXJlIGlzIG1vcmUNCit0aGFuIG9uZSA8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUsIHRoZW4gdGhlcmUNCitpcyBhIHVuaXF1ZSB2YWx1ZSBmb3IgdGhlIDxsaXRlcmFsPmNvbWJpbmU8L2xpdGVyYWw+IGF0dHJpYnV0ZSBmb3INCit0aGF0IG5hbWUuICBBZnRlciBkZXRlcm1pbmluZyB0aGlzIHVuaXF1ZSB2YWx1ZSwgdGhlDQorPGxpdGVyYWw+Y29tYmluZTwvbGl0ZXJhbD4gYXR0cmlidXRlcyBhcmUgcmVtb3ZlZC4gIEEgcGFpciBvZg0KK2RlZmluaXRpb25zPC9wYXJhPg0KKw0KKzxwcm9ncmFtbGlzdGluZz4mbHQ7ZGVmaW5lIG5hbWU9IjxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJsZT4iJmd0Ow0KKyAgPHJlcGxhY2VhYmxlPnAxPC9yZXBsYWNlYWJsZT4NCismbHQ7L2RlZmluZT4NCismbHQ7ZGVmaW5lIG5hbWU9IjxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJsZT4iJmd0Ow0KKyAgPHJlcGxhY2VhYmxlPnAyPC9yZXBsYWNlYWJsZT4NCismbHQ7L2RlZmluZT48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzxwYXJhPmlzIGNvbWJpbmVkIGludG88L3BhcmE+DQorDQorPHByb2dyYW1saXN0aW5nPiZsdDtkZWZpbmUgbmFtZT0iPHJlcGxhY2VhYmxlPm48L3JlcGxhY2VhYmxlPiI+DQorICAmbHQ7PHJlcGxhY2VhYmxlPmM8L3JlcGxhY2VhYmxlPiZndDsNCisgICAgPHJlcGxhY2VhYmxlPnAxPC9yZXBsYWNlYWJsZT4NCisgICAgPHJlcGxhY2VhYmxlPnAyPC9yZXBsYWNlYWJsZT4NCisgICZsdDsvPHJlcGxhY2VhYmxlPmM8L3JlcGxhY2VhYmxlPiZndDsNCismbHQ7L2RlZmluZT48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzxwYXJhPndoZXJlIDxyZXBsYWNlYWJsZT5jPC9yZXBsYWNlYWJsZT4gaXMgdGhlIHZhbHVlIG9mIHRoZQ0KKzxsaXRlcmFsPmNvbWJpbmU8L2xpdGVyYWw+IGF0dHJpYnV0ZS4gUGFpcnMgb2YgZGVmaW5pdGlvbnMgYXJlDQorY29tYmluZWQgdW50aWwgdGhlcmUgaXMgZXhhY3RseSBvbmUgPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBlbGVtZW50DQorZm9yIGVhY2ggbmFtZS48L3BhcmE+DQorDQorPHBhcmE+U2ltaWxhcmx5LCBmb3IgZWFjaCA8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50IGFsbA0KKzxsaXRlcmFsPnN0YXJ0PC9saXRlcmFsPiBlbGVtZW50cyBhcmUgY29tYmluZWQgdG9nZXRoZXIuICBUaGVyZSBtdXN0DQorbm90IGJlIG1vcmUgdGhhbiBvbmUgPGxpdGVyYWw+c3RhcnQ8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBkb2VzIG5vdA0KK2hhdmUgYSA8bGl0ZXJhbD5jb21iaW5lPC9saXRlcmFsPiBhdHRyaWJ1dGUuICBJZiB0aGVyZSBpcyBhDQorPGxpdGVyYWw+c3RhcnQ8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBoYXMgYSA8bGl0ZXJhbD5jb21iaW5lPC9saXRlcmFsPg0KK2F0dHJpYnV0ZSB3aXRoIHRoZSB2YWx1ZSA8bGl0ZXJhbD5jaG9pY2U8L2xpdGVyYWw+LCB0aGVyZSBtdXN0IG5vdA0KK2Fsc28gYmUgYSA8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gZWxlbWVudCB0aGF0IGhhcyBhDQorPGxpdGVyYWw+Y29tYmluZTwvbGl0ZXJhbD4gYXR0cmlidXRlIHdpdGggdGhlIHZhbHVlDQorPGxpdGVyYWw+aW50ZXJsZWF2ZTwvbGl0ZXJhbD4uPC9wYXJhPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+PGxpdGVyYWw+Z3JhbW1hcjwvbGl0ZXJhbD4gZWxlbWVudDwvdGl0bGU+DQorDQorPHBhcmE+SW4gdGhpcyBydWxlLCB0aGUgc2NoZW1hIGlzIHRyYW5zZm9ybWVkIHNvIHRoYXQgaXRzIHRvcC1sZXZlbA0KK2VsZW1lbnQgaXMgPGxpdGVyYWw+Z3JhbW1hcjwvbGl0ZXJhbD4gYW5kIHNvIHRoYXQgaXQgaGFzIG5vIG90aGVyDQorPGxpdGVyYWw+Z3JhbW1hcjwvbGl0ZXJhbD4gZWxlbWVudHMuPC9wYXJhPg0KKw0KKzxwYXJhPkRlZmluZSB0aGUgPGZpcnN0dGVybT5pbi1zY29wZSBncmFtbWFyPC9maXJzdHRlcm0+IGZvciBhbg0KK2VsZW1lbnQgdG8gYmUgdGhlIG5lYXJlc3QgYW5jZXN0b3IgPGxpdGVyYWw+Z3JhbW1hcjwvbGl0ZXJhbD4gZWxlbWVudC4gIEENCis8bGl0ZXJhbD5yZWY8L2xpdGVyYWw+IGVsZW1lbnQgPGZpcnN0dGVybT5yZWZlcnMgdG88L2ZpcnN0dGVybT4gYQ0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCBpZiB0aGUgdmFsdWUgb2YgdGhlaXINCis8bGl0ZXJhbD5uYW1lPC9saXRlcmFsPiBhdHRyaWJ1dGVzIGlzIHRoZSBzYW1lIGFuZCB0aGVpciBpbi1zY29wZQ0KK2dyYW1tYXJzIGFyZSB0aGUgc2FtZS4gIEEgPGxpdGVyYWw+cGFyZW50UmVmPC9saXRlcmFsPiBlbGVtZW50DQorPGZpcnN0dGVybT5yZWZlcnMgdG88L2ZpcnN0dGVybT4gYSA8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnQNCitpZiB0aGUgdmFsdWUgb2YgdGhlaXIgPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gYXR0cmlidXRlcyBpcyB0aGUgc2FtZQ0KK2FuZCB0aGUgaW4tc2NvcGUgZ3JhbW1hciBvZiB0aGUgaW4tc2NvcGUgZ3JhbW1hciBvZiB0aGUNCis8bGl0ZXJhbD5wYXJlbnRSZWY8L2xpdGVyYWw+IGVsZW1lbnQgaXMgdGhlIHNhbWUgYXMgdGhlIGluLXNjb3BlDQorZ3JhbW1hciBvZiB0aGUgPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBlbGVtZW50LiBFdmVyeQ0KKzxsaXRlcmFsPnJlZjwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+cGFyZW50UmVmPC9saXRlcmFsPiBlbGVtZW50IG11c3QNCityZWZlciB0byBhIDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudC4gIEENCis8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBtdXN0IGhhdmUgYSA8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gY2hpbGQNCitlbGVtZW50LjwvcGFyYT4NCisNCis8cGFyYT5GaXJzdCwgdHJhbnNmb3JtIHRoZSB0b3AtbGV2ZWwgcGF0dGVybg0KKzxyZXBsYWNlYWJsZT5wPC9yZXBsYWNlYWJsZT4gaW50bw0KKzxsaXRlcmFsPiZsdDtncmFtbWFyPiZsdDtzdGFydD48cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+Jmx0Oy9zdGFydD4mbHQ7L2dyYW1tYXI+PC9saXRlcmFsPi4NCitOZXh0LCByZW5hbWUgPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBlbGVtZW50cyBzbyB0aGF0IG5vIHR3bw0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudHMgYW55d2hlcmUgaW4gdGhlIHNjaGVtYSBoYXZlIHRoZQ0KK3NhbWUgbmFtZS4gIFRvIHJlbmFtZSBhIDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCwgY2hhbmdlIHRoZQ0KK3ZhbHVlIG9mIGl0cyA8bGl0ZXJhbD5uYW1lPC9saXRlcmFsPiBhdHRyaWJ1dGUgYW5kIGNoYW5nZSB0aGUgdmFsdWUgb2YNCit0aGUgPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gYXR0cmlidXRlIG9mIGFsbCA8bGl0ZXJhbD5yZWY8L2xpdGVyYWw+DQorYW5kIDxsaXRlcmFsPnBhcmVudFJlZjwvbGl0ZXJhbD4gZWxlbWVudHMgdGhhdCByZWZlciB0byB0aGF0DQorPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBlbGVtZW50LiBOZXh0LCBtb3ZlIGFsbA0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudHMgdG8gYmUgY2hpbGRyZW4gb2YgdGhlIHRvcC1sZXZlbA0KKzxsaXRlcmFsPmdyYW1tYXI8L2xpdGVyYWw+IGVsZW1lbnQsIHJlcGxhY2UgZWFjaCBuZXN0ZWQNCis8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50IGJ5IHRoZSBjaGlsZCBvZiBpdHMNCis8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gZWxlbWVudCBhbmQgcmVuYW1lIGVhY2gNCis8bGl0ZXJhbD5wYXJlbnRSZWY8L2xpdGVyYWw+IGVsZW1lbnQgdG8gPGxpdGVyYWw+cmVmPC9saXRlcmFsPi48L3BhcmE+DQorDQorPC9zZWN0aW9uPg0KKw0KKw0KKzxzZWN0aW9uIGlkPSJkZWZpbmUtcmVmIj4NCis8dGl0bGU+PGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+cmVmPC9saXRlcmFsPiBlbGVtZW50czwvdGl0bGU+DQorDQorPHBhcmE+SW4gdGhpcyBydWxlLCB0aGUgZ3JhbW1hciBpcyB0cmFuc2Zvcm1lZCBzbyB0aGF0IGV2ZXJ5DQorPGxpdGVyYWw+ZWxlbWVudDwvbGl0ZXJhbD4gZWxlbWVudCBpcyB0aGUgY2hpbGQgb2YgYQ0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCwgYW5kIHRoZSBjaGlsZCBvZiBldmVyeQ0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCBpcyBhbiA8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPg0KK2VsZW1lbnQuPC9wYXJhPg0KKw0KKzxwYXJhPkZpcnN0LCByZW1vdmUgYW55IDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCB0aGF0IGlzIG5vdA0KKzxmaXJzdHRlcm0+cmVhY2hhYmxlPC9maXJzdHRlcm0+LiAgQSA8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnQNCitpcyByZWFjaGFibGUgaWYgdGhlcmUgaXMgcmVhY2hhYmxlIDxsaXRlcmFsPnJlZjwvbGl0ZXJhbD4gZWxlbWVudA0KK3JlZmVycmluZyB0byBpdC4gIEEgPGxpdGVyYWw+cmVmPC9saXRlcmFsPiBlbGVtZW50IGlzIHJlYWNoYWJsZSBpZiBpdA0KK2lzIHRoZSBkZXNjZW5kYW50IG9mIHRoZSA8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gZWxlbWVudCBvciBvZiBhDQorcmVhY2hhYmxlIDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudC4gTm93LCBmb3INCitlYWNoIDxsaXRlcmFsPmVsZW1lbnQ8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBpcyBub3QgdGhlIGNoaWxkIG9mIGENCis8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnQsIGFkZCBhIDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4NCitlbGVtZW50IHRvIHRoZSA8bGl0ZXJhbD5ncmFtbWFyPC9saXRlcmFsPiBlbGVtZW50LCBhbmQgcmVwbGFjZSB0aGUNCis8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPiBlbGVtZW50IGJ5IGEgPGxpdGVyYWw+cmVmPC9saXRlcmFsPiBlbGVtZW50DQorcmVmZXJyaW5nIHRvIHRoZSBhZGRlZCA8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnQuIFRoZSB2YWx1ZSBvZg0KK3RoZSA8bGl0ZXJhbD5uYW1lPC9saXRlcmFsPiBhdHRyaWJ1dGUgb2YgdGhlIGFkZGVkDQorPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBlbGVtZW50IG11c3QgYmUgZGlmZmVyZW50IGZyb20gdmFsdWUgb2YgdGhlDQorPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gYXR0cmlidXRlIG9mIGFsbCBvdGhlcg0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudHMuIFRoZSBjaGlsZCBvZiB0aGUgYWRkZWQNCis8bGl0ZXJhbD5kZWZpbmU8L2xpdGVyYWw+IGVsZW1lbnQgaXMgdGhlIDxsaXRlcmFsPmVsZW1lbnQ8L2xpdGVyYWw+DQorZWxlbWVudC48L3BhcmE+DQorDQorPHBhcmE+RGVmaW5lIGEgPGxpdGVyYWw+cmVmPC9saXRlcmFsPiBlbGVtZW50IHRvIGJlDQorPGZpcnN0dGVybT5leHBhbmRhYmxlPC9maXJzdHRlcm0+IGlmIGl0IHJlZmVycyB0byBhDQorPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBlbGVtZW50IHdob3NlIGNoaWxkIGlzIG5vdCBhbg0KKzxsaXRlcmFsPmVsZW1lbnQ8L2xpdGVyYWw+IGVsZW1lbnQuICBGb3IgZWFjaCA8bGl0ZXJhbD5yZWY8L2xpdGVyYWw+DQorZWxlbWVudCB0aGF0IGlzIGV4cGFuZGFibGUgYW5kIGlzIGEgZGVzY2VuZGFudCBvZiBhDQorPGxpdGVyYWw+c3RhcnQ8L2xpdGVyYWw+IGVsZW1lbnQgb3IgYW4gPGxpdGVyYWw+ZWxlbWVudDwvbGl0ZXJhbD4NCitlbGVtZW50LCBleHBhbmQgaXQgYnkgcmVwbGFjaW5nIHRoZSA8bGl0ZXJhbD5yZWY8L2xpdGVyYWw+IGVsZW1lbnQgYnkNCit0aGUgY2hpbGQgb2YgdGhlIDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCB0byB3aGljaCBpdCByZWZlcnMgYW5kDQordGhlbiByZWN1cnNpdmVseSBleHBhbmRpbmcgYW55IGV4cGFuZGFibGUgPGxpdGVyYWw+cmVmPC9saXRlcmFsPg0KK2VsZW1lbnRzIGluIHRoaXMgcmVwbGFjZW1lbnQuICBUaGlzIG11c3Qgbm90IHJlc3VsdCBpbiBhIGxvb3AuDQorSW4gb3RoZXIgd29yZHMgZXhwYW5kaW5nIHRoZSByZXBsYWNlbWVudCBvZiBhDQorPGxpdGVyYWw+cmVmPC9saXRlcmFsPiBlbGVtZW50IGhhdmluZyBhIDxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+IHdpdGgNCit2YWx1ZSA8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+IG11c3Qgbm90IHJlcXVpcmUgdGhlIGV4cGFuc2lvbiBvZg0KKzxsaXRlcmFsPnJlZjwvbGl0ZXJhbD4gZWxlbWVudCBhbHNvIGhhdmluZyBhIDxsaXRlcmFsPm5hbWU8L2xpdGVyYWw+DQord2l0aCB2YWx1ZSA8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+LiAgRmluYWxseSwgcmVtb3ZlIGFueQ0KKzxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCB3aG9zZSBjaGlsZCBpcyBub3QgYW4NCis8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPiBlbGVtZW50LjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9Im5vdEFsbG93ZWQiPg0KKzx0aXRsZT48bGl0ZXJhbD5ub3RBbGxvd2VkPC9saXRlcmFsPiBlbGVtZW50PC90aXRsZT4NCisNCis8cGFyYT5JbiB0aGlzIHJ1bGUsIHRoZSBncmFtbWFyIGlzIHRyYW5zZm9ybWVkIHNvIHRoYXQgYQ0KKzxsaXRlcmFsPm5vdEFsbG93ZWQ8L2xpdGVyYWw+IGVsZW1lbnQgb2NjdXJzIG9ubHkgYXMgdGhlIGNoaWxkIG9mDQorYSA8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+ZWxlbWVudDwvbGl0ZXJhbD4gZWxlbWVudC4gIEFuDQorPGxpdGVyYWw+YXR0cmlidXRlPC9saXRlcmFsPiwgPGxpdGVyYWw+bGlzdDwvbGl0ZXJhbD4sDQorPGxpdGVyYWw+Z3JvdXA8L2xpdGVyYWw+LCA8bGl0ZXJhbD5pbnRlcmxlYXZlPC9saXRlcmFsPiwNCitvciA8bGl0ZXJhbD5vbmVPck1vcmU8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBoYXMgYQ0KKzxsaXRlcmFsPm5vdEFsbG93ZWQ8L2xpdGVyYWw+IGNoaWxkIGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQgaW50byBhDQorPGxpdGVyYWw+bm90QWxsb3dlZDwvbGl0ZXJhbD4gZWxlbWVudC4gIEEgPGxpdGVyYWw+Y2hvaWNlPC9saXRlcmFsPg0KK2VsZW1lbnQgdGhhdCBoYXMgdHdvIDxsaXRlcmFsPm5vdEFsbG93ZWQ8L2xpdGVyYWw+IGNoaWxkIGVsZW1lbnRzIGlzDQordHJhbnNmb3JtZWQgaW50byBhIDxsaXRlcmFsPm5vdEFsbG93ZWQ8L2xpdGVyYWw+IGVsZW1lbnQuICBBDQorPGxpdGVyYWw+Y2hvaWNlPC9saXRlcmFsPiBlbGVtZW50IHRoYXQgaGFzIG9uZQ0KKzxsaXRlcmFsPm5vdEFsbG93ZWQ8L2xpdGVyYWw+IGNoaWxkIGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQgaW50byBpdHMNCitvdGhlciBjaGlsZCBlbGVtZW50LiBBbiA8bGl0ZXJhbD5leGNlcHQ8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBoYXMgYQ0KKzxsaXRlcmFsPm5vdEFsbG93ZWQ8L2xpdGVyYWw+IGNoaWxkIGVsZW1lbnQgaXMgcmVtb3ZlZC4NCitUaGUgcHJlY2VkaW5nIHRyYW5zZm9ybWF0aW9ucyBhcmUgYXBwbGllZA0KK3JlcGVhdGVkbHkgdW50aWwgbm9uZSBvZiB0aGVtIGlzIGFwcGxpY2FibGUgYW55IG1vcmUuDQorQW55IDxsaXRlcmFsPmRlZmluZTwvbGl0ZXJhbD4gZWxlbWVudCB0aGF0IGlzIG5vIGxvbmdlciByZWFjaGFibGUNCitpcyByZW1vdmVkLjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPmVtcHR5PC9saXRlcmFsPiBlbGVtZW50PC90aXRsZT4NCisNCis8cGFyYT5JbiB0aGlzIHJ1bGUsIHRoZSBncmFtbWFyIGlzIHRyYW5zZm9ybWVkIHNvIHRoYXQgYW4NCis8bGl0ZXJhbD5lbXB0eTwvbGl0ZXJhbD4gZWxlbWVudCBkb2VzIG5vdCBvY2N1ciBhcyBhIGNoaWxkIG9mIGENCis8bGl0ZXJhbD5ncm91cDwvbGl0ZXJhbD4sIDxsaXRlcmFsPmludGVybGVhdmU8L2xpdGVyYWw+LCBvcg0KKzxsaXRlcmFsPm9uZU9yTW9yZTwvbGl0ZXJhbD4gZWxlbWVudCBvciBhcyB0aGUgc2Vjb25kIGNoaWxkIG9mDQorYSA8bGl0ZXJhbD5jaG9pY2U8L2xpdGVyYWw+IGVsZW1lbnQuIEEgPGxpdGVyYWw+Z3JvdXA8L2xpdGVyYWw+LA0KKzxsaXRlcmFsPmludGVybGVhdmU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmNob2ljZTwvbGl0ZXJhbD4gZWxlbWVudA0KK3RoYXQgaGFzIHR3byA8bGl0ZXJhbD5lbXB0eTwvbGl0ZXJhbD4gY2hpbGQgZWxlbWVudHMgaXMgdHJhbnNmb3JtZWQNCitpbnRvIGFuIDxsaXRlcmFsPmVtcHR5PC9saXRlcmFsPiBlbGVtZW50LiAgQSA8bGl0ZXJhbD5ncm91cDwvbGl0ZXJhbD4NCitvciA8bGl0ZXJhbD5pbnRlcmxlYXZlPC9saXRlcmFsPiBlbGVtZW50IHRoYXQgaGFzIG9uZQ0KKzxsaXRlcmFsPmVtcHR5PC9saXRlcmFsPiBjaGlsZCBlbGVtZW50IGlzIHRyYW5zZm9ybWVkIGludG8gaXRzIG90aGVyDQorY2hpbGQgZWxlbWVudC4gIEEgPGxpdGVyYWw+Y2hvaWNlPC9saXRlcmFsPiBlbGVtZW50IHdob3NlDQorc2Vjb25kIGNoaWxkIGVsZW1lbnQgaXMgYW4gPGxpdGVyYWw+ZW1wdHk8L2xpdGVyYWw+IGVsZW1lbnQgaXMNCit0cmFuc2Zvcm1lZCBieSBpbnRlcmNoYW5naW5nIGl0cyB0d28gY2hpbGQgZWxlbWVudHMuICBBDQorPGxpdGVyYWw+b25lT3JNb3JlPC9saXRlcmFsPiBlbGVtZW50IHRoYXQgaGFzIGFuDQorPGxpdGVyYWw+ZW1wdHk8L2xpdGVyYWw+IGNoaWxkIGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQgaW50byBhbg0KKzxsaXRlcmFsPmVtcHR5PC9saXRlcmFsPiBlbGVtZW50LiBUaGUgcHJlY2VkaW5nIHRyYW5zZm9ybWF0aW9ucyBhcmUgYXBwbGllZA0KK3JlcGVhdGVkbHkgdW50aWwgbm9uZSBvZiB0aGVtIGlzIGFwcGxpY2FibGUgYW55IG1vcmUuPC9wYXJhPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9InNpbXBsZS1zeW50YXgiPg0KKzx0aXRsZT5TaW1wbGUgc3ludGF4PC90aXRsZT4NCisNCis8cGFyYT5BZnRlciBhcHBseWluZyBhbGwgdGhlIHJ1bGVzIGluIDx4cmVmDQorbGlua2VuZD0ic2ltcGxpZmljYXRpb24iLz4sIHRoZSBzY2hlbWEgd2lsbCBtYXRjaCB0aGUgZm9sbG93aW5nDQorZ3JhbW1hcjo8L3BhcmE+DQorDQorPGdyYW1tYXJyZWYgc3JjPSJzaW1wbGUucm5nIi8+DQorDQorPHBhcmE+V2l0aCB0aGlzIGdyYW1tYXIsIG5vIGVsZW1lbnRzIG9yIGF0dHJpYnV0ZXMgYXJlIGFsbG93ZWQgb3RoZXINCit0aGFuIHRob3NlIGV4cGxpY2l0bHkgc2hvd24uPC9wYXJhPg0KKw0KKzxzZWN0aW9uIGlkPSJzaW1wbGUtc3ludGF4LWV4YW1wbGUiPg0KKzx0aXRsZT5FeGFtcGxlPC90aXRsZT4NCisNCis8cGFyYT5UaGUgZm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgb2YgaG93IHRoZSBzY2hlbWEgaW4gPHhyZWYNCitsaW5rZW5kPSJmdWxsLXN5bnRheC1leGFtcGxlIi8+IGNhbiBiZSB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBzaW1wbGUNCitzeW50YXg6PC9wYXJhPg0KKw0KKzxwcm9ncmFtbGlzdGluZz48IVtDREFUQVs8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8cmVmIG5hbWU9ImZvby5lbGVtZW50Ii8+DQorICA8L3N0YXJ0Pg0KKw0KKyAgPGRlZmluZSBuYW1lPSJmb28uZWxlbWVudCI+DQorICAgIDxlbGVtZW50Pg0KKyAgICAgIDxuYW1lIG5zPSIiPmZvbzwvbmFtZT4NCisgICAgICA8Z3JvdXA+DQorICAgICAgICA8cmVmIG5hbWU9ImJhcjEuZWxlbWVudCIvPg0KKyAgICAgICAgPHJlZiBuYW1lPSJiYXIyLmVsZW1lbnQiLz4NCisgICAgICA8L2dyb3VwPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCisNCisgIDxkZWZpbmUgbmFtZT0iYmFyMS5lbGVtZW50Ij4NCisgICAgPGVsZW1lbnQ+DQorICAgICAgPG5hbWUgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjEiPmJhcjE8L25hbWU+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorDQorICA8ZGVmaW5lIG5hbWU9ImJhcjIuZWxlbWVudCI+DQorICAgIDxlbGVtZW50Pg0KKyAgICAgIDxuYW1lIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL24yIj5iYXIyPC9uYW1lPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj5dXT48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzxub3RlPjxwYXJhPlN0cmljdGx5IHNwZWFraW5nLCB0aGUgcmVzdWx0IG9mIHNpbXBsaWZpY2F0aW9uIGlzIGFuDQoraW5zdGFuY2Ugb2YgdGhlIGRhdGEgbW9kZWwgcmF0aGVyIHRoYW4gYW4gWE1MIGRvY3VtZW50LiAgRm9yDQorY29udmVuaWVuY2UsIHdlIHVzZSBhbiBYTUwgZG9jdW1lbnQgdG8gcmVwcmVzZW50IGFuIGluc3RhbmNlIG9mIHRoZQ0KK2RhdGEgbW9kZWwuPC9wYXJhPjwvbm90ZT4NCisNCis8L3NlY3Rpb24+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uIGlkPSJzZW1hbnRpY3MiPg0KKzx0aXRsZT5TZW1hbnRpY3M8L3RpdGxlPg0KKw0KKzxwYXJhPkluIHRoaXMgc2VjdGlvbiwgd2UgZGVmaW5lIHRoZSBzZW1hbnRpY3Mgb2YgYSBjb3JyZWN0IFJFTEFYIE5HDQorc2NoZW1hIHRoYXQgaGFzIGJlZW4gdHJhbnNmb3JtZWQgaW50byB0aGUgc2ltcGxlIHN5bnRheC4gIFRoZQ0KK3NlbWFudGljcyBvZiBhIFJFTEFYIE5HIHNjaGVtYSBjb25zaXN0IG9mIGEgc3BlY2lmaWNhdGlvbiBvZiB3aGF0IFhNTA0KK2RvY3VtZW50cyBhcmUgdmFsaWQgd2l0aCByZXNwZWN0IHRvIHRoYXQgc2NoZW1hLiAgVGhlIHNlbWFudGljcyBhcmUNCitkZXNjcmliZWQgZm9ybWFsbHkuICBUaGUgZm9ybWFsaXNtIHVzZXMgYXhpb21zIGFuZCBpbmZlcmVuY2UgcnVsZXMuDQorQXhpb21zIGFyZSBwcm9wb3NpdGlvbnMgdGhhdCBhcmUgcHJvdmFibGUgdW5jb25kaXRpb25hbGx5LiAgQW4NCitpbmZlcmVuY2UgcnVsZSBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBhbnRlY2VkZW50cyBhbmQgZXhhY3RseSBvbmUNCitjb25zZXF1ZW50LiAgQW4gYW50ZWNlZGVudCBpcyBlaXRoZXIgcG9zaXRpdmUgb3IgbmVnYXRpdmUuICBJZiBhbGwgdGhlDQorcG9zaXRpdmUgYW50ZWNlZGVudHMgb2YgYW4gaW5mZXJlbmNlIHJ1bGUgYXJlIHByb3ZhYmxlIGFuZCBub25lIG9mIHRoZQ0KK25lZ2F0aXZlIGFudGVjZWRlbnRzIGFyZSBwcm92YWJsZSwgdGhlbiB0aGUgY29uc2VxdWVudCBvZiB0aGUNCitpbmZlcmVuY2UgcnVsZSBpcyBwcm92YWJsZS4gQW4gWE1MIGRvY3VtZW50IGlzIHZhbGlkIHdpdGggcmVzcGVjdCB0byBhDQorUkVMQVggTkcgc2NoZW1hIGlmIGFuZCBvbmx5IGlmIHRoZSBwcm9wb3NpdGlvbiB0aGF0IGl0IGlzIHZhbGlkIGlzDQorcHJvdmFibGUgaW4gdGhlIGZvcm1hbGlzbSBzcGVjaWZpZWQgaW4gdGhpcyBzZWN0aW9uLjwvcGFyYT4NCisNCis8bm90ZT48cGFyYT5UaGlzIGtpbmQgb2YgZm9ybWFsaXNtIGlzIHNpbWlsYXIgdG8gYSBwcm9vZiBzeXN0ZW0uDQorSG93ZXZlciwgYSB0cmFkaXRpb25hbCBwcm9vZiBzeXN0ZW0gb25seSBoYXMgcG9zaXRpdmUNCithbnRlY2VkZW50cy48L3BhcmE+PC9ub3RlPg0KKw0KKzxwYXJhPlRoZSBub3RhdGlvbiBmb3IgaW5mZXJlbmNlIHJ1bGVzIHNlcGFyYXRlcyB0aGUgYW50ZWNlZGVudHMgZnJvbQ0KK3RoZSBjb25zZXF1ZW50IGJ5IGEgaG9yaXpvbnRhbCBsaW5lOiB0aGUgYW50ZWNlZGVudHMgYXJlIGFib3ZlIHRoZQ0KK2xpbmU7IHRoZSBjb25zZXF1ZW50IGlzIGJlbG93IHRoZSBsaW5lLiAgSWYgYW4gYW50ZWNlZGVudCBpcyBvZiB0aGUNCitmb3JtIG5vdCg8cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+KSwgdGhlbiBpdCBpcyBhIG5lZ2F0aXZlDQorYW50ZWNlZGVudDsgb3RoZXJ3aXNlLCBpdCBpcyBhIHBvc2l0aXZlIGFudGVjZWRlbnQuICBCb3RoIGF4aW9tcyBhbmQNCitpbmZlcmVuY2VzDQorcnVsZXMgbWF5IHVzZSB2YXJpYWJsZXMuICBBIHZhcmlhYmxlIGhhcyBhIG5hbWUgYW5kIG9wdGlvbmFsbHkgYQ0KK3N1YnNjcmlwdC4gIFRoZSBuYW1lIG9mIGEgdmFyaWFibGUgaXMgaXRhbGljaXplZC4gIEVhY2ggdmFyaWFibGUgaGFzIGENCityYW5nZSB0aGF0IGlzIGRldGVybWluZWQgYnkgaXRzIG5hbWUuICBBeGlvbXMgYW5kIGluZmVyZW5jZSBydWxlcyBhcmUNCitpbXBsaWNpdGx5IHVuaXZlcnNhbGx5IHF1YW50aWZpZWQgb3ZlciB0aGUgdmFyaWFibGVzIHRoZXkgY29udGFpbi4gIFdlDQorZXhwbGFpbiB0aGlzIGZ1cnRoZXIgYmVsb3cuPC9wYXJhPg0KKw0KKzxwYXJhPlRoZSBwb3NzaWJpbGl0eSB0aGF0IGFuIGluZmVyZW5jZSBydWxlIG9yIGF4aW9tIG1heSBjb250YWluIG1vcmUNCit0aGFuIG9uZSBvY2N1cnJlbmNlIG9mIGEgcGFydGljdWxhciB2YXJpYWJsZSByZXF1aXJlcyB0aGF0IGFuIGlkZW50aXR5DQorcmVsYXRpb24gYmUgZGVmaW5lZCBvbiBlYWNoIGtpbmQgb2Ygb2JqZWN0IG92ZXIgd2hpY2ggYSB2YXJpYWJsZSBjYW4NCityYW5nZS4gIFRoZSBpZGVudGl0eSByZWxhdGlvbiBmb3IgYWxsIGtpbmRzIG9mIG9iamVjdCBpcyB2YWx1ZS1iYXNlZC4NCitUd28gb2JqZWN0cyBvZiBhIHBhcnRpY3VsYXIga2luZCBhcmUgaWRlbnRpY2FsIGlmIHRoZSBjb25zdGl0dWVudHMgb2YNCit0aGUgb2JqZWN0cyBhcmUgaWRlbnRpY2FsLiAgRm9yIGV4YW1wbGUsIHR3byBhdHRyaWJ1dGVzIGFyZSBjb25zaWRlcmVkDQordGhlIHNhbWUgaWYgdGhleSBoYXZlIHRoZSBzYW1lIG5hbWUgYW5kIHRoZSBzYW1lIHZhbHVlLiBUd28gY2hhcmFjdGVycw0KK2FyZSBpZGVudGljYWwgaWYgdGhlaXIgVW5pY29kZSBjaGFyYWN0ZXIgY29kZXMgYXJlIHRoZSBzYW1lLjwvcGFyYT4NCisNCis8c2VjdGlvbiBpZD0ibmFtZS1jbGFzc2VzIj4NCis8dGl0bGU+TmFtZSBjbGFzc2VzPC90aXRsZT4NCisNCis8cGFyYT5UaGUgbWFpbiBzZW1hbnRpYyBjb25jZXB0IGZvciBuYW1lIGNsYXNzZXMgaXMgdGhhdCBvZiBhIG5hbWUNCitiZWxvbmdpbmcgdG8gYSBuYW1lIGNsYXNzLiBBIG5hbWUgY2xhc3MgaXMgYW4gZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhlDQorcHJvZHVjdGlvbiBuYW1lQ2xhc3MuIEEgbmFtZSBpcyBhcyBkZWZpbmVkIGluIDx4cmVmDQorbGlua2VuZD0iZGF0YS1tb2RlbCIvPjogaXQgY29uc2lzdHMgb2YgYSBuYW1lc3BhY2UgVVJJIGFuZCBhIGxvY2FsDQorbmFtZS48L3BhcmE+DQorDQorPHBhcmE+V2UgdXNlIHRoZSBmb2xsb3dpbmcgbm90YXRpb246PC9wYXJhPg0KKw0KKzx2YXJpYWJsZWxpc3Q+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDp2YXIgcmFuZ2U9Im5hbWUiLz48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPmlzIGEgdmFyaWFibGUNCit0aGF0IHJhbmdlcyBvdmVyIG5hbWVzPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+cmFuZ2VzIG92ZXIgbmFtZSBjbGFzc2VzPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDpqdWRnZW1lbnQgbmFtZT0iYmVsb25ncyI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuYW1lIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuYW1lQ2xhc3MiLz4NCisgICAgPC9wOmp1ZGdlbWVudD48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPg0KKyAgICANCithc3NlcnRzIHRoYXQgbmFtZSA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4gaXMgYSBtZW1iZXIgb2YgbmFtZSBjbGFzcyA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKw0KKzwvcGFyYT48L2xpc3RpdGVtPjwvdmFybGlzdGVudHJ5Pg0KKw0KKzwvdmFyaWFibGVsaXN0Pg0KKw0KKzxwYXJhPldlIGFyZSBub3cgcmVhZHkgZm9yIG91ciBmaXJzdCBheGlvbSwgd2hpY2ggaXMgY2FsbGVkICJhbnlOYW1lDQorMSI6PC9wYXJhPg0KKw0KKzxwOnByb29mU3lzdGVtPg0KKyAgPHA6cnVsZSBuYW1lPSJhbnlOYW1lIDEiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iYmVsb25ncyI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuYW1lIi8+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJhbnlOYW1lIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPHBhcmE+VGhpcyBzYXlzIGZvciBhbnkgbmFtZSA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4sIDxwOnZhcg0KK3JhbmdlPSJuYW1lIi8+IGJlbG9uZ3MgdG8gdGhlIG5hbWUgY2xhc3MgPHA6ZWxlbWVudCBuYW1lPSJhbnlOYW1lIi8+LA0KK2luIG90aGVyIHdvcmRzIDxwOmVsZW1lbnQgbmFtZT0iYW55TmFtZSIvPiBtYXRjaGVzIGFueSBuYW1lLiBOb3RlIHRoZQ0KK2VmZmVjdCBvZiB0aGUgaW1wbGljaXQgdW5pdmVyc2FsIHF1YW50aWZpY2F0aW9uIG92ZXIgdGhlIHZhcmlhYmxlcyBpbg0KK3RoZSBheGlvbTogdGhpcyBpcyB3aGF0IG1ha2VzIHRoZSBheGlvbSBhcHBseSBmb3IgYW55IG5hbWUgPHA6dmFyDQorcmFuZ2U9Im5hbWUiLz4uPC9wYXJhPg0KKw0KKzxwYXJhPk91ciBmaXJzdCBpbmZlcmVuY2UgcnVsZSBpcyBhbG1vc3QgYXMgc2ltcGxlOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0iYW55TmFtZSAyIj4NCisgICAgPHA6bm90Pg0KKyAgICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiZWxvbmdzIj4NCisJPHA6dmFyIHJhbmdlPSJuYW1lIi8+DQorCTxwOnZhciByYW5nZT0ibmFtZUNsYXNzIi8+DQorICAgICAgPC9wOmp1ZGdlbWVudD4NCisgICAgPC9wOm5vdD4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImJlbG9uZ3MiPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibmFtZSIvPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0iYW55TmFtZSI+DQorICAgICAgICA8cDplbGVtZW50IG5hbWU9ImV4Y2VwdCI+DQorICAJICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKyAgICAgICAgPC9wOmVsZW1lbnQ+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCisNCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPHBhcmE+VGhpcyBzYXlzIHRoYXQgZm9yIGFueSBuYW1lIDxwOnZhciByYW5nZT0ibmFtZSIvPg0KK2FuZCBmb3IgYW55IG5hbWUgY2xhc3MgCTxwOnZhciByYW5nZT0ibmFtZUNsYXNzIi8+LA0KK2lmIDxwOnZhciByYW5nZT0ibmFtZSIvPiBkb2VzIG5vdCBiZWxvbmcgdG8gPHA6dmFyIHJhbmdlPSJuYW1lQ2xhc3MiLz4sDQordGhlbiA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4gYmVsb25ncyB0byANCisgICAgICA8cDplbGVtZW50IG5hbWU9ImFueU5hbWUiPg0KKyAgICAgICAgPHA6ZWxlbWVudCBuYW1lPSJleGNlcHQiPg0KKyAgCSAgPHA6dmFyIHJhbmdlPSJuYW1lQ2xhc3MiLz4NCisgICAgICAgIDwvcDplbGVtZW50Pg0KKyAgICAgIDwvcDplbGVtZW50Pi4gSW4gb3RoZXIgd29yZHMsICAgICAgIDxwOmVsZW1lbnQgbmFtZT0iYW55TmFtZSI+DQorICAgICAgICA8cDplbGVtZW50IG5hbWU9ImV4Y2VwdCI+DQorICAJICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKyAgICAgICAgPC9wOmVsZW1lbnQ+DQorICAgICAgPC9wOmVsZW1lbnQ+IG1hdGNoZXMgYW55IG5hbWUgdGhhdCBkb2VzIG5vdCBtYXRjaCA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPi48L3BhcmE+DQorDQorPHBhcmE+V2Ugbm93IG5lZWQgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG5vdGF0aW9uOjwvcGFyYT4NCisNCis8dmFyaWFibGVsaXN0Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6dmFyIHJhbmdlPSJuY25hbWUiLz48L3Rlcm0+DQorDQorPGxpc3RpdGVtPjxwYXJhPnJhbmdlcyBvdmVyIGxvY2FsIG5hbWVzOyBhIGxvY2FsIG5hbWUgaXMgYSBzdHJpbmcgdGhhdA0KK21hdGNoZXMgdGhlIE5DTmFtZSBwcm9kdWN0aW9uIG9mIDx4cmVmIGxpbmtlbmQ9InhtbC1uYW1lcyIvPiwgdGhhdCBpcywNCithIG5hbWUgd2l0aCBubyBjb2xvbnM8L3BhcmE+PC9saXN0aXRlbT4NCis8L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOnZhciByYW5nZT0idXJpIi8+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT5yYW5nZXMgb3ZlciBVUklzPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT4NCis8dGVybT4NCisgIDxwOmZ1bmN0aW9uIG5hbWU9Im5hbWUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgPC9wOmZ1bmN0aW9uPg0KKzwvdGVybT4NCis8bGlzdGl0ZW0+PHBhcmE+Y29uc3RydWN0cyBhIG5hbWUgd2l0aCBVUkkgPHA6dmFyIHJhbmdlPSJ1cmkiLz4gYW5kIGxvY2FsDQorbmFtZSA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPjwvcGFyYT48L2xpc3RpdGVtPg0KKzwvdmFybGlzdGVudHJ5Pg0KKw0KKzwvdmFyaWFibGVsaXN0Pg0KKw0KKzxwYXJhPlRoZSByZW1haW5pbmcgYXhpb21zIGFuZCBpbmZlcmVuY2UgcnVsZXMgZm9yIG5hbWUgY2xhc3NlcyBhcmUgYXMNCitmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisNCisgIDxwOnJ1bGUgbmFtZT0ibnNOYW1lIDEiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iYmVsb25ncyI+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0ibmFtZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJuc05hbWUiPg0KKyAgICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5zIj4NCisgICAgICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiLz4NCisgICAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCisNCisgIDxwOnJ1bGUgbmFtZT0ibnNOYW1lIDIiPg0KKyAgICA8cDpub3Q+DQorICAgICAgPHA6anVkZ2VtZW50IG5hbWU9ImJlbG9uZ3MiPg0KKwk8cDpmdW5jdGlvbiBuYW1lPSJuYW1lIj4NCisJICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKwkgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorCTwvcDpmdW5jdGlvbj4NCisJPHA6dmFyIHJhbmdlPSJuYW1lQ2xhc3MiLz4NCisgICAgICA8L3A6anVkZ2VtZW50Pg0KKyAgICA8L3A6bm90Pg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iYmVsb25ncyI+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0ibmFtZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJuc05hbWUiPg0KKyAgICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5zIj4NCisgICAgICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiLz4NCisgICAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgICA8cDplbGVtZW50IG5hbWU9ImV4Y2VwdCI+DQorICAgICAgICAgIDxwOnZhciByYW5nZT0ibmFtZUNsYXNzIi8+DQorICAgICAgICA8L3A6ZWxlbWVudD4NCisgICAgICA8L3A6ZWxlbWVudD4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKw0KKyAgPHA6cnVsZSBuYW1lPSJuYW1lIj4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImJlbG9uZ3MiPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9Im5hbWUiPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiLz4NCisgICAgICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgPC9wOmZ1bmN0aW9uPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0ibmFtZSI+DQorICAgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0ibnMiPg0KKyAgICAgICAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCisNCisgIDxwOnJ1bGUgbmFtZT0ibmFtZSBjaG9pY2UgMSI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiZWxvbmdzIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIxIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiZWxvbmdzIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisgICAgICA8cDplbGVtZW50IG5hbWU9ImNob2ljZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIxIi8+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIyIi8+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCisNCisgIDxwOnJ1bGUgbmFtZT0ibmFtZSBjaG9pY2UgMiI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiZWxvbmdzIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIyIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiZWxvbmdzIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisgICAgICA8cDplbGVtZW50IG5hbWU9ImNob2ljZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIxIi8+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIyIi8+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCisNCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPC9zZWN0aW9uPg0KKw0KKw0KKzxzZWN0aW9uPg0KKzx0aXRsZT5QYXR0ZXJuczwvdGl0bGU+DQorDQorPHBhcmE+VGhlIGF4aW9tcyBhbmQgaW5mZXJlbmNlIHJ1bGVzIGZvciBwYXR0ZXJucyB1c2UgdGhlIGZvbGxvd2luZw0KK25vdGF0aW9uOjwvcGFyYT4NCisNCis8dmFyaWFibGVsaXN0Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT5yYW5nZXMNCitvdmVyIGNvbnRleHRzIChhcyBkZWZpbmVkIGluIDx4cmVmDQorbGlua2VuZD0iZGF0YS1tb2RlbCIvPik8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOnZhciByYW5nZT0iYXR0Ii8+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT5yYW5nZXMgb3Zlcg0KK3NldHMgb2YgYXR0cmlidXRlczsgYSBzZXQgd2l0aCBhIHNpbmdsZSBtZW1iZXINCitpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGFzIHRoYXQgbWVtYmVyPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDp2YXINCityYW5nZT0ibWl4ZWQiLz48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPnJhbmdlcyBvdmVyIHNlcXVlbmNlcyBvZg0KK2VsZW1lbnRzIGFuZCBzdHJpbmdzOyBhIHNlcXVlbmNlIHdpdGggYSBzaW5nbGUgbWVtYmVyIGlzIGNvbnNpZGVyZWQNCit0aGUgc2FtZSBhcyB0aGF0IG1lbWJlcjsgdGhlIHNlcXVlbmNlcyByYW5nZWQgb3ZlciBieSA8cDp2YXINCityYW5nZT0ibWl4ZWQiLz4gbWF5IGNvbnRhaW4gY29uc2VjdXRpdmUgc3RyaW5ncyBhbmQgbWF5IGNvbnRhaW4gc3RyaW5ncw0KK3RoYXQgYXJlIGVtcHR5OyB0aHVzLCB0aGVyZSBhcmUgc2VxdWVuY2VzIHJhbmdlZCBvdmVyIGJ5IDxwOnZhcg0KK3JhbmdlPSJtaXhlZCIvPiB0aGF0IGNhbm5vdCBvY2N1ciBhcyB0aGUgY2hpbGRyZW4gb2YgYW4NCitlbGVtZW50PC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPnJhbmdlcw0KK292ZXIgcGF0dGVybnMgKGVsZW1lbnRzIG1hdGNoaW5nIHRoZSBwYXR0ZXJuDQorcHJvZHVjdGlvbik8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT4NCisgICAgDQorYXNzZXJ0cyB0aGF0IHdpdGggcmVzcGVjdCB0byBjb250ZXh0IDxwOnZhciByYW5nZT0iY29udGV4dCIvPiwgdGhlDQorYXR0cmlidXRlcyA8cDp2YXIgcmFuZ2U9ImF0dCIvPiBhbmQgdGhlIHNlcXVlbmNlIG9mIGVsZW1lbnRzIGFuZA0KK3N0cmluZ3MgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPiBtYXRjaGVzIHRoZSBwYXR0ZXJuIDxwOnZhcg0KK3JhbmdlPSJwYXR0ZXJuIi8+PC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHNlY3Rpb24gaWQ9ImNob2ljZS1wYXR0ZXJuIj4NCis8dGl0bGU+PGxpdGVyYWw+Y2hvaWNlPC9saXRlcmFsPiBwYXR0ZXJuPC90aXRsZT4NCisNCis8cGFyYT5UaGUgc2VtYW50aWNzIG9mIHRoZSA8bGl0ZXJhbD5jaG9pY2U8L2xpdGVyYWw+IHBhdHRlcm4gYXJlIGFzIGZvbGxvd3M6PC9wYXJhPg0KKw0KKzxwOnByb29mU3lzdGVtPg0KKyAgPHA6cnVsZSBuYW1lPSJjaG9pY2UgMSI+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIiBzdWI9IjEiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisNCisgICAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImF0dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiLz4NCisgICAgICA8cDplbGVtZW50IG5hbWU9ImNob2ljZSI+DQorCTxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIxIi8+DQorCTxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIyIi8+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICA8L3A6cnVsZT4NCisNCisgIDxwOnJ1bGUgbmFtZT0iY2hvaWNlIDIiPg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIyIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIi8+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJjaG9pY2UiPg0KKwk8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMSIvPg0KKwk8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMiIvPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgPC9wOnJ1bGU+DQorDQorDQorPC9wOnByb29mU3lzdGVtPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+PGxpdGVyYWw+Z3JvdXA8L2xpdGVyYWw+IHBhdHRlcm48L3RpdGxlPg0KKw0KKzxwYXJhPldlIHVzZSB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbm90YXRpb246PC9wYXJhPg0KKw0KKzx2YXJpYWJsZWxpc3Q+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDpmdW5jdGlvbiBuYW1lPSJhcHBlbmQiPg0KKwk8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjEiLz4NCisJPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIyIi8+DQorICAgICAgPC9wOmZ1bmN0aW9uPjwvdGVybT48bGlzdGl0ZW0+DQorPHBhcmE+cmVwcmVzZW50cyB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgc2VxdWVuY2VzIDxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMSIvPiBhbmQgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIyIi8+DQorDQorPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDpmdW5jdGlvbiBuYW1lPSJ1bmlvbiI+DQorCTxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjEiLz4NCisJPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMiIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj48L3Rlcm0+PGxpc3RpdGVtPg0KKzxwYXJhPnJlcHJlc2VudHMgdGhlIHVuaW9uIG9mIDxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjEiLz4NCithbmQgPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMiIvPjwvcGFyYT4NCis8L2xpc3RpdGVtPg0KKzwvdmFybGlzdGVudHJ5Pg0KKw0KKzwvdmFyaWFibGVsaXN0Pg0KKw0KKzxwYXJhPlRoZSBzZW1hbnRpY3Mgb2YgdGhlIDxsaXRlcmFsPmdyb3VwPC9saXRlcmFsPiBwYXR0ZXJuIGFyZSBhcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0iZ3JvdXAiPg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMSIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjIiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9InVuaW9uIj4NCisJPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMSIvPg0KKwk8cDp2YXIgcmFuZ2U9ImF0dCIgc3ViPSIyIi8+DQorICAgICAgPC9wOmZ1bmN0aW9uPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImFwcGVuZCI+DQorCTxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMSIvPg0KKwk8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJncm91cCI+DQorCTxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIxIi8+DQorCTxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIyIi8+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICA8L3A6cnVsZT4NCisNCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPG5vdGU+PHBhcmE+VGhlIHJlc3RyaWN0aW9uIGluIDx4cmVmIGxpbmtlbmQ9ImF0dHJpYnV0ZS1yZXN0cmljdGlvbnMiLz4NCitlbnN1cmVzIHRoYXQgdGhlIHNldCBvZiBhdHRyaWJ1dGVzIGNvbnN0cnVjdGVkIGluIHRoZSBjb25zZXF1ZW50IHdpbGwNCitub3QgaGF2ZSBtdWx0aXBsZSBhdHRyaWJ1dGVzIHdpdGggdGhlIHNhbWUgbmFtZS48L3BhcmE+PC9ub3RlPg0KKw0KKzwvc2VjdGlvbj4NCisNCisNCis8c2VjdGlvbiBpZD0iZW1wdHktcGF0dGVybiI+DQorPHRpdGxlPjxsaXRlcmFsPmVtcHR5PC9saXRlcmFsPiBwYXR0ZXJuPC90aXRsZT4NCisNCis8cGFyYT5XZSB1c2UgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG5vdGF0aW9uOjwvcGFyYT4NCisNCis8dmFyaWFibGVsaXN0Pg0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXF1ZW5jZSIvPjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+cmVwcmVzZW50cyBhbiBlbXB0eSBzZXF1ZW5jZTwvcGFyYT48L2xpc3RpdGVtPjwvdmFybGlzdGVudHJ5Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPnJlcHJlc2VudHMgYW4gZW1wdHkgc2V0PC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+VGhlIHNlbWFudGljcyBvZiB0aGUgPGxpdGVyYWw+ZW1wdHk8L2xpdGVyYWw+IHBhdHRlcm4gYXJlIGFzIGZvbGxvd3M6PC9wYXJhPg0KKw0KKzxwOnByb29mU3lzdGVtPg0KKyAgPHA6cnVsZSBuYW1lPSJlbXB0eSI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNlcXVlbmNlIi8+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJlbXB0eSI+PC9wOmVsZW1lbnQ+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorPC9wOnByb29mU3lzdGVtPg0KKw0KKzwvc2VjdGlvbj4NCisNCisNCis8c2VjdGlvbiBpZD0idGV4dC1wYXR0ZXJuIj4NCis8dGl0bGU+PGxpdGVyYWw+dGV4dDwvbGl0ZXJhbD4gcGF0dGVybjwvdGl0bGU+DQorDQorPHBhcmE+V2UgdXNlIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBub3RhdGlvbjo8L3BhcmE+DQorDQorPHZhcmlhYmxlbGlzdD4NCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOnZhciByYW5nZT0ic3RyaW5nIi8+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT5yYW5nZXMNCitvdmVyIHN0cmluZ3M8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCis8L3ZhcmlhYmxlbGlzdD4NCisNCis8cGFyYT5UaGUgc2VtYW50aWNzIG9mIHRoZSA8bGl0ZXJhbD50ZXh0PC9saXRlcmFsPiBwYXR0ZXJuIGFyZSBhcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0idGV4dCAxIj4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgICAgICA8cDplbGVtZW50IG5hbWU9InRleHQiPjwvcDplbGVtZW50Pg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKw0KKyAgPHA6cnVsZSBuYW1lPSJ0ZXh0IDIiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0idGV4dCI+PC9wOmVsZW1lbnQ+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iYXBwZW5kIj4NCisgICAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiLz4NCisgICAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPC9wOmZ1bmN0aW9uPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0idGV4dCI+PC9wOmVsZW1lbnQ+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorDQorPC9wOnByb29mU3lzdGVtPg0KKw0KKzxwYXJhPlRoZSBlZmZlY3Qgb2YgdGhlIGFib3ZlIHJ1bGUgaXMgdGhhdCBhIDxsaXRlcmFsPnRleHQ8L2xpdGVyYWw+DQorZWxlbWVudCBtYXRjaGVzIHplcm8gb3IgbW9yZSBzdHJpbmdzLjwvcGFyYT4NCisNCis8L3NlY3Rpb24+DQorDQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPm9uZU9yTW9yZTwvbGl0ZXJhbD4gcGF0dGVybjwvdGl0bGU+DQorDQorPHBhcmE+V2UgdXNlIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBub3RhdGlvbjo8L3BhcmE+DQorDQorPHZhcmlhYmxlbGlzdD4NCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOmp1ZGdlbWVudCBuYW1lPSJkaXNqb2ludCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjIiLz4NCisgICAgPC9wOmp1ZGdlbWVudD48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPg0KK2Fzc2VydHMgdGhhdCB0aGVyZSBpcyBubyBuYW1lIHRoYXQgaXMNCit0aGUgbmFtZSBvZiBib3RoIGFuIGF0dHJpYnV0ZSBpbiA8cDp2YXIgcmFuZ2U9ImF0dCIgc3ViPSIxIi8+DQorYW5kIG9mIGFuIGF0dHJpYnV0ZSBpbiA8cDp2YXIgcmFuZ2U9ImF0dCIgc3ViPSIyIi8+DQorPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+VGhlIHNlbWFudGljcyBvZiB0aGUgPGxpdGVyYWw+b25lT3JNb3JlPC9saXRlcmFsPiBwYXR0ZXJuIGFyZSBhcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0ib25lT3JNb3JlIDEiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0ib25lT3JNb3JlIj4NCisgICAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorDQorICA8cDpydWxlIG5hbWU9Im9uZU9yTW9yZSAyIj4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImF0dCIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMiIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMiIvPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0ib25lT3JNb3JlIj4NCisgICAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iZGlzam9pbnQiPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImF0dCIgc3ViPSIyIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0idW5pb24iPg0KKwk8cDp2YXIgcmFuZ2U9ImF0dCIgc3ViPSIxIi8+DQorCTxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjIiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iYXBwZW5kIj4NCisJPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIxIi8+DQorCTxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMiIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj4NCisgICAgICA8cDplbGVtZW50IG5hbWU9Im9uZU9yTW9yZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgICA8L3A6ZWxlbWVudD4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKw0KKzwvcDpwcm9vZlN5c3RlbT4NCisNCis8L3NlY3Rpb24+DQorDQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPmludGVybGVhdmU8L2xpdGVyYWw+IHBhdHRlcm48L3RpdGxlPg0KKw0KKzxwYXJhPldlIHVzZSB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbm90YXRpb246PC9wYXJhPg0KKw0KKzx2YXJpYWJsZWxpc3Q+DQorPHZhcmxpc3RlbnRyeT48dGVybT48cDpqdWRnZW1lbnQgbmFtZT0iaW50ZXJsZWF2ZSI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIyIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIzIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT4NCisgICAgDQorYXNzZXJ0cyB0aGF0IDxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMSIvPg0KK2lzIGFuIGludGVybGVhdmluZyBvZiA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCithbmQgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIzIi8+DQorPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+VGhlIHNlbWFudGljcyBvZiBpbnRlcmxlYXZpbmcgYXJlIGRlZmluZWQgYnkgdGhlIGZvbGxvd2luZyBydWxlcy48L3BhcmE+DQorDQorDQorPHA6cHJvb2ZTeXN0ZW0+DQorICA8cDpydWxlIG5hbWU9ImludGVybGVhdmVzIDEiPg0KKyAgIA0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iaW50ZXJsZWF2ZSI+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXF1ZW5jZSIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNlcXVlbmNlIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICA8L3A6cnVsZT4NCisNCisgIDxwOnJ1bGUgbmFtZT0iaW50ZXJsZWF2ZXMgMiI+DQorICAgDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJpbnRlcmxlYXZlIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjMiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisNCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImludGVybGVhdmUiPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImFwcGVuZCI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjQiLz4NCisgICAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMSIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJhcHBlbmQiPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSI0Ii8+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSIzIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICA8L3A6cnVsZT4NCisNCisgIDxwOnJ1bGUgbmFtZT0iaW50ZXJsZWF2ZXMgMyI+DQorICAgDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJpbnRlcmxlYXZlIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjMiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisNCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImludGVybGVhdmUiPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImFwcGVuZCI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjQiLz4NCisgICAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMSIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJhcHBlbmQiPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIgc3ViPSI0Ii8+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjMiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICA8L3A6cnVsZT4NCisNCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPHBhcmE+Rm9yIGV4YW1wbGUsIHRoZSBpbnRlcmxlYXZpbmdzIG9mDQorPGxpdGVyYWw+PCFbQ0RBVEFbPGEvPjxhLz5dXT48L2xpdGVyYWw+IGFuZA0KKzxsaXRlcmFsPjwhW0NEQVRBWzxiLz5dXT48L2xpdGVyYWw+IGFyZQ0KKzxsaXRlcmFsPjwhW0NEQVRBWzxhLz48YS8+PGIvPl1dPjwvbGl0ZXJhbD4sDQorPGxpdGVyYWw+PCFbQ0RBVEFbPGEvPjxiLz48YS8+XV0+PC9saXRlcmFsPiwgYW5kDQorPGxpdGVyYWw+PCFbQ0RBVEFbPGIvPjxhLz48YS8+XV0+PC9saXRlcmFsPi48L3BhcmE+DQorDQorPHBhcmE+VGhlIHNlbWFudGljcyBvZiB0aGUgPGxpdGVyYWw+aW50ZXJsZWF2ZTwvbGl0ZXJhbD4gcGF0dGVybiBhcmUNCithcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0iaW50ZXJsZWF2ZSI+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIxIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMiIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiIHN1Yj0iMiIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIyIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJpbnRlcmxlYXZlIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjMiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjIiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisNCisNCisgICAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJ1bmlvbiI+DQorCTxwOnZhciByYW5nZT0iYXR0IiBzdWI9IjEiLz4NCisJPHA6dmFyIHJhbmdlPSJhdHQiIHN1Yj0iMiIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIiBzdWI9IjMiLz4NCisgICAgICA8cDplbGVtZW50IG5hbWU9ImludGVybGVhdmUiPg0KKwk8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMSIvPg0KKwk8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMiIvPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgPC9wOnJ1bGU+DQorDQorPC9wOnByb29mU3lzdGVtPg0KKw0KKzxub3RlPjxwYXJhPlRoZSByZXN0cmljdGlvbiBpbiA8eHJlZiBsaW5rZW5kPSJhdHRyaWJ1dGUtcmVzdHJpY3Rpb25zIi8+DQorZW5zdXJlcyB0aGF0IHRoZSBzZXQgb2YgYXR0cmlidXRlcyBjb25zdHJ1Y3RlZCBpbiB0aGUgY29uc2VxdWVudCB3aWxsDQorbm90IGhhdmUgbXVsdGlwbGUgYXR0cmlidXRlcyB3aXRoIHRoZSBzYW1lIG5hbWUuPC9wYXJhPjwvbm90ZT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9ImVsZW1lbnQtcGF0dGVybiI+DQorPHRpdGxlPjxsaXRlcmFsPmVsZW1lbnQ8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5hdHRyaWJ1dGU8L2xpdGVyYWw+IHBhdHRlcm48L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgaXMgYWx3YXlzIGEgc2luZ2xlIHN0cmluZywgd2hpY2ggbWF5DQorYmUgZW1wdHkuICBUaHVzLCB0aGUgZW1wdHkgc2VxdWVuY2UgaXMgbm90IGEgcG9zc2libGUgYXR0cmlidXRlIHZhbHVlLg0KK09uIHRoZSBoYW5kLCB0aGUgY2hpbGRyZW4gb2YgYW4gZWxlbWVudCBjYW4gYmUgYW4gZW1wdHkgc2VxdWVuY2UgYW5kDQorY2Fubm90IGNvbnNpc3Qgb2YgYW4gZW1wdHkgc3RyaW5nLiAgSW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdmFsaWRhdGlvbg0KK2hhbmRsZXMgYXR0cmlidXRlcyBhbmQgZWxlbWVudHMgY29uc2lzdGVudGx5LCB3ZSBpbnRyb2R1Y2UgYSB2YXJpYW50DQorb2YgbWF0Y2hpbmcgY2FsbGVkIDxmaXJzdHRlcm0+d2VhayBtYXRjaGluZzwvZmlyc3R0ZXJtPi4gIFdlYWsNCittYXRjaGluZyBpcyB1c2VkIHdoZW4gbWF0Y2hpbmcgdGhlIHBhdHRlcm4gZm9yIHRoZSB2YWx1ZSBvZiBhbg0KK2F0dHJpYnV0ZSBvciBmb3IgdGhlIGF0dHJpYnV0ZXMgYW5kIGNoaWxkcmVuIG9mIGFuIGVsZW1lbnQuICBXZSB1c2UNCit0aGUgZm9sbG93aW5nIG5vdGF0aW9uIHRvIGRlZmluZSB3ZWFrIG1hdGNoaW5nLjwvcGFyYT4NCisNCis8dmFyaWFibGVsaXN0Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6ZnVuY3Rpb24NCituYW1lPSJlbXB0eVN0cmluZyIvPjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+cmVwcmVzZW50cyBhbiBlbXB0eQ0KK3N0cmluZzwvcGFyYT48L2xpc3RpdGVtPjwvdmFybGlzdGVudHJ5Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6dmFyDQorcmFuZ2U9IndoaXRlU3BhY2UiLz48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPnJhbmdlcyBvdmVyIHRoZSBlbXB0eQ0KK3NlcXVlbmNlIGFuZCBzdHJpbmdzIHRoYXQgY29uc2lzdCBlbnRpcmVseSBvZg0KK3doaXRlc3BhY2U8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOmp1ZGdlbWVudCBuYW1lPSJ3ZWFrTWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6anVkZ2VtZW50PjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+DQorICAgIA0KK2Fzc2VydHMgdGhhdCB3aXRoIHJlc3BlY3QgdG8gY29udGV4dCA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4sIHRoZQ0KK2F0dHJpYnV0ZXMgPHA6dmFyIHJhbmdlPSJhdHQiLz4gYW5kIHRoZSBzZXF1ZW5jZSBvZiBlbGVtZW50cyBhbmQNCitzdHJpbmdzIDxwOnZhciByYW5nZT0ibWl4ZWQiLz4gd2Vha2x5IG1hdGNoZXMgdGhlIHBhdHRlcm4gPHA6dmFyDQorcmFuZ2U9InBhdHRlcm4iLz48L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8L3ZhcmlhYmxlbGlzdD4NCisNCis8cGFyYT5UaGUgc2VtYW50aWNzIG9mIHdlYWsgbWF0Y2hpbmcgYXJlIGFzIGZvbGxvd3M6PC9wYXJhPg0KKw0KKzxwOnByb29mU3lzdGVtPg0KKyAgPHA6cnVsZSBuYW1lPSJ3ZWFrIG1hdGNoIDEiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0id2Vha01hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImF0dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKyAgPHA6cnVsZSBuYW1lPSJ3ZWFrIG1hdGNoIDIiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iYXR0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXF1ZW5jZSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0id2Vha01hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImF0dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0id2hpdGVTcGFjZSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorICA8cDpydWxlIG5hbWU9IndlYWsgbWF0Y2ggMyI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVN0cmluZyIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0id2Vha01hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImF0dCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKzwvcDpwcm9vZlN5c3RlbT4NCisNCis8cGFyYT5XZSB1c2UgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG5vdGF0aW9uOjwvcGFyYT4NCisNCis8dmFyaWFibGVsaXN0Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6ZnVuY3Rpb24gbmFtZT0iYXR0cmlidXRlIj4NCisgICAgICAgIDxwOnZhciByYW5nZT0ibmFtZSIvPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT4NCisgICAgICANCitjb25zdHJ1Y3RzIGFuIGF0dHJpYnV0ZSB3aXRoIG5hbWUgPHA6dmFyIHJhbmdlPSJuYW1lIi8+DQorYW5kIHZhbHVlIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorPC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDpmdW5jdGlvbiBuYW1lPSJlbGVtZW50Ij4NCisJPHA6dmFyIHJhbmdlPSJuYW1lIi8+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisJPHA6dmFyIHJhbmdlPSJhdHQiLz4NCisJPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPg0KKyAgICAgIA0KK2NvbnN0cnVjdHMgYW4gZWxlbWVudCB3aXRoIG5hbWUgPHA6dmFyIHJhbmdlPSJuYW1lIi8+LA0KK2NvbnRleHQgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+LA0KK2F0dHJpYnV0ZXMgPHA6dmFyIHJhbmdlPSJhdHQiLz4NCithbmQgbWl4ZWQgc2VxdWVuY2UgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPiBhcyBjaGlsZHJlbg0KKzwvcGFyYT48L2xpc3RpdGVtPjwvdmFybGlzdGVudHJ5Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6anVkZ2VtZW50IG5hbWU9Im9rQXNDaGlsZHJlbiI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKyAgICA8L3A6anVkZ2VtZW50PjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+DQorICAgIA0KK2Fzc2VydHMgdGhhdCB0aGUgbWl4ZWQgc2VxdWVuY2UgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPiBjYW4gb2NjdXIgYXMNCit0aGUgY2hpbGRyZW4gb2YgYW4gZWxlbWVudDogaXQgZG9lcyBub3QgY29udGFpbiBhbnkgbWVtYmVyIHRoYXQgaXMgYW4NCitlbXB0eSBzdHJpbmcsIG5vciBkb2VzIGl0IGNvbnRhaW4gdHdvIGNvbnNlY3V0aXZlIG1lbWJlcnMgdGhhdCBhcmUNCitib3RoIHN0cmluZ3M8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOmp1ZGdlbWVudCBuYW1lPSJiaW5kIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibmFtZUNsYXNzIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT4NCisgICAgDQorYXNzZXJ0cyB0aGF0IHRoZSBncmFtbWFyIGNvbnRhaW5zDQorPHA6ZWxlbWVudCBuYW1lPSJkZWZpbmUiPg0KKyAgPHA6YXR0cmlidXRlIG5hbWU9Im5hbWUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgPC9wOmF0dHJpYnV0ZT4NCisgIDxwOmVsZW1lbnQgbmFtZT0iZWxlbWVudCI+DQorICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKyAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICA8L3A6ZWxlbWVudD4NCis8L3A6ZWxlbWVudD4NCis8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8L3ZhcmlhYmxlbGlzdD4NCisNCis8cGFyYT5UaGUgc2VtYW50aWNzIG9mIHRoZSA8bGl0ZXJhbD5hdHRyaWJ1dGU8L2xpdGVyYWw+IHBhdHRlcm4gYXJlIGFzIGZvbGxvd3M6PC9wYXJhPg0KKw0KKzxwOnByb29mU3lzdGVtPg0KKyAgPHA6cnVsZSBuYW1lPSJhdHRyaWJ1dGUiPg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0id2Vha01hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiZWxvbmdzIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImF0dHJpYnV0ZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisgICAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPC9wOmZ1bmN0aW9uPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgICAgICA8cDplbGVtZW50IG5hbWU9ImF0dHJpYnV0ZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKwk8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgICA8L3A6ZWxlbWVudD4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisNCisgIDwvcDpydWxlPg0KKw0KKzwvcDpwcm9vZlN5c3RlbT4NCisNCis8cGFyYT5UaGUgc2VtYW50aWNzIG9mIHRoZSA8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPiBwYXR0ZXJuIGFyZSBhcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0iZWxlbWVudCI+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJ3ZWFrTWF0Y2giPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJhdHQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiZWxvbmdzIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0ib2tBc0NoaWxkcmVuIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im1peGVkIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJiaW5kIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibmFtZUNsYXNzIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjIiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImFwcGVuZCI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9IndoaXRlU3BhY2UiIHN1Yj0iMSIvPg0KKwk8cDpmdW5jdGlvbiBuYW1lPSJlbGVtZW50Ij4NCisJICA8cDp2YXIgcmFuZ2U9Im5hbWUiLz4NCisJICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMSIvPg0KKwkgIDxwOnZhciByYW5nZT0iYXR0Ii8+DQorCSAgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPg0KKwk8L3A6ZnVuY3Rpb24+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9IndoaXRlU3BhY2UiIHN1Yj0iMiIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj4NCisgICAgICA8cDplbGVtZW50IG5hbWU9InJlZiI+DQorICAgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+DQorICAgICAgICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgICA8L3A6YXR0cmlidXRlPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKw0KKyAgPC9wOnJ1bGU+DQorDQorPC9wOnByb29mU3lzdGVtPg0KKw0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbiBpZD0iZGF0YS1wYXR0ZXJuIj4NCis8dGl0bGU+PGxpdGVyYWw+ZGF0YTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPnZhbHVlPC9saXRlcmFsPiBwYXR0ZXJuPC90aXRsZT4NCisNCis8cGFyYT5SRUxBWCBORyByZWxpZXMgb24gZGF0YXR5cGUgbGlicmFyaWVzIHRvIHBlcmZvcm0gZGF0YXR5cGluZy4NCitBIGRhdGF0eXBlIGxpYnJhcnkgaXMgaWRlbnRpZmllZCBieSBhIFVSSS4gIEEgZGF0YXR5cGUgd2l0aGluIGENCitkYXRhdHlwZSBsaWJyYXJ5IGlzIGlkZW50aWZpZWQgYnkgYW4gTkNOYW1lLiAgQSBkYXRhdHlwZSBsaWJyYXJ5DQorcHJvdmlkZXMgdHdvIHNlcnZpY2VzLjwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT5JdCBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSBsZWdhbA0KK3JlcHJlc2VudGF0aW9uIG9mIGEgZGF0YXR5cGUuIFRoaXMgc2VydmljZSBhY2NlcHRzIGEgbGlzdCBvZiB6ZXJvIG9yDQorbW9yZSBwYXJhbWV0ZXJzLiBGb3IgZXhhbXBsZSwgYSBzdHJpbmcgZGF0YXR5cGUgbWlnaHQgaGF2ZSBhIHBhcmFtZXRlcg0KK3NwZWNpZnlpbmcgdGhlIGxlbmd0aCBvZiBhIHN0cmluZy4gIFRoZSBkYXRhdHlwZSBsaWJyYXJ5IGRldGVybWluZXMNCit3aGF0IHBhcmFtZXRlcnMgYXJlIGFwcGxpY2FibGUgZm9yIGVhY2ggZGF0YXR5cGUuPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPkl0IGNhbiBkZXRlcm1pbmUgd2hldGhlciB0d28gc3RyaW5ncyByZXByZXNlbnQgdGhlDQorc2FtZSB2YWx1ZSBvZiBhIGRhdGF0eXBlLiAgVGhpcyBzZXJ2aWNlIGRvZXMgbm90IGhhdmUgYW55DQorcGFyYW1ldGVycy48L3BhcmE+PC9saXN0aXRlbT4NCisNCis8L2l0ZW1pemVkbGlzdD4NCisNCis8cGFyYT5Cb3RoIHNlcnZpY2VzIG1heSBtYWtlIHVzZSBvZiB0aGUgY29udGV4dCBvZiBhIHN0cmluZy4gIEZvcg0KK2V4YW1wbGUsIGEgZGF0YXR5cGUgcmVwcmVzZW50aW5nIGEgUU5hbWUgd291bGQgdXNlIHRoZSBuYW1lc3BhY2UNCittYXAuPC9wYXJhPg0KKw0KKzxwYXJhPldlIHVzZSB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbm90YXRpb246PC9wYXJhPg0KKw0KKzx2YXJpYWJsZWxpc3Q+DQorPHZhcmxpc3RlbnRyeT48dGVybT48cDpqdWRnZW1lbnQgbmFtZT0iZGF0YXR5cGVBbGxvd3MiPg0KKyAgICAgIDxwOnZhciByYW5nZT0idXJpIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhcmFtcyIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgIDwvcDpqdWRnZW1lbnQ+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT4NCisgICAgDQorYXNzZXJ0cyB0aGF0IGluIHRoZSBkYXRhdHlwZSBsaWJyYXJ5IGlkZW50aWZpZWQgYnkgVVJJIDxwOnZhciByYW5nZT0idXJpIi8+LCB0aGUgc3RyaW5nIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+IGludGVycHJldGVkIHdpdGgNCitjb250ZXh0IDxwOnZhciByYW5nZT0iY29udGV4dCIvPiBpcyBhIGxlZ2FsDQordmFsdWUgb2YgZGF0YXR5cGUgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4gd2l0aCBwYXJhbWV0ZXJzIDxwOnZhciByYW5nZT0icGFyYW1zIi8+PC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDpqdWRnZW1lbnQgbmFtZT0iZGF0YXR5cGVFcXVhbCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjIiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMiIvPg0KKyAgICA8L3A6anVkZ2VtZW50PjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+DQorICAgIA0KK2Fzc2VydHMgdGhhdCBpbiB0aGUgZGF0YXR5cGUgbGlicmFyeSBpZGVudGlmaWVkIGJ5IFVSSSA8cDp2YXIgcmFuZ2U9InVyaSIvPiwgc3RyaW5nIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjEiLz4gaW50ZXJwcmV0ZWQgd2l0aA0KK2NvbnRleHQgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjEiLz4gcmVwcmVzZW50cyB0aGUgc2FtZSB2YWx1ZSBvZg0KK3RoZSBkYXRhdHlwZSA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPiBhcyB0aGUgc3RyaW5nIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjIiLz4gaW50ZXJwcmV0ZWQgaW4gdGhlIGNvbnRleHQgb2YgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjIiLz4NCis8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOnZhciByYW5nZT0icGFyYW1zIi8+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT5yYW5nZXMgb3ZlciBzZXF1ZW5jZXMgb2YgcGFyYW1ldGVyczwvcGFyYT48L2xpc3RpdGVtPjwvdmFybGlzdGVudHJ5Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6Y29udGV4dD4NCisgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgIDwvcDpjb250ZXh0PjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+DQorICAgDQord2l0aGluIHRoZSBzdGFydC10YWcgb2YgYSBwYXR0ZXJuIHJlZmVycyB0byB0aGUgY29udGV4dA0KK29mIHRoZSBwYXR0ZXJuIGVsZW1lbnQNCis8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pg0KKzx0ZXJtPg0KKyAgPHA6ZnVuY3Rpb24gbmFtZT0iY29udGV4dCI+DQorICAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICA8L3A6ZnVuY3Rpb24+DQorPC90ZXJtPg0KKzxsaXN0aXRlbT48cGFyYT5jb25zdHJ1Y3RzIGEgY29udGV4dCB3aGljaCBpcyB0aGUgc2FtZSBhcyA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCitleGNlcHQgdGhhdCB0aGUgZGVmYXVsdCBuYW1lc3BhY2UgaXMgPHA6dmFyIHJhbmdlPSJ1cmkiLz47IGlmIDxwOnZhcg0KK3JhbmdlPSJ1cmkiLz4gaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbiB0aGVyZSBpcyBubyBkZWZhdWx0IG5hbWVzcGFjZQ0KK2luIHRoZSBjb25zdHJ1Y3RlZCBjb250ZXh0PC9wYXJhPjwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+DQorDQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+VGhlIGRhdGF0eXBlRXF1YWwgZnVuY3Rpb24gbXVzdCBiZSByZWZsZXhpdmUsIHRyYW5zaXRpdmUNCithbmQgc3ltbWV0cmljLCB0aGF0IGlzLCB0aGUgZm9sbG93aW5nIGluZmVyZW5jZSBydWxlcyBtdXN0IGhvbGQ6PC9wYXJhPg0KKw0KKzxwOnByb29mU3lzdGVtPg0KKyAgPHA6cnVsZSBuYW1lPSJkYXRhdHlwZUVxdWFsIHJlZmxleGl2ZSI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJkYXRhdHlwZUFsbG93cyI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGFyYW1zIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImRhdGF0eXBlRXF1YWwiPg0KKyAgICAgIDxwOnZhciByYW5nZT0idXJpIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCisgIDxwOnJ1bGUgbmFtZT0iZGF0YXR5cGVFcXVhbCB0cmFuc2l0aXZlIj4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImRhdGF0eXBlRXF1YWwiPg0KKyAgICAgIDxwOnZhciByYW5nZT0idXJpIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIyIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjIiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImRhdGF0eXBlRXF1YWwiPg0KKyAgICAgIDxwOnZhciByYW5nZT0idXJpIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIyIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjMiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIzIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjMiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImRhdGF0eXBlRXF1YWwiPg0KKyAgICAgIDxwOnZhciByYW5nZT0idXJpIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIzIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjMiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKyAgPHA6cnVsZSBuYW1lPSJkYXRhdHlwZUVxdWFsIHN5bW1ldHJpYyI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJkYXRhdHlwZUVxdWFsIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciIHN1Yj0iMiIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIyIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJkYXRhdHlwZUVxdWFsIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciIHN1Yj0iMiIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIyIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIxIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPHBhcmE+VGhlIHNlbWFudGljcyBvZiB0aGUgPGxpdGVyYWw+ZGF0YTwvbGl0ZXJhbD4gYW5kDQorPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+IHBhdHRlcm5zIGFyZSBhcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0idmFsdWUiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iZGF0YXR5cGVFcXVhbCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciIHN1Yj0iMiIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImNvbnRleHQiPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiIHN1Yj0iMiIvPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjIiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjEiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjEiLz4NCisgICAgICA8cDplbGVtZW50IG5hbWU9InZhbHVlIj4NCisgICAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJkYXRhdHlwZUxpYnJhcnkiPg0KKyAgICAgICAgICA8cDp2YXIgcmFuZ2U9InVyaSIgc3ViPSIxIi8+DQorICAgICAgICA8L3A6YXR0cmlidXRlPg0KKyAgICAgICAgPHA6YXR0cmlidXRlIG5hbWU9InR5cGUiPg0KKyAgICAgICAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJucyI+DQorICAgICAgICAgIDxwOnZhciByYW5nZT0idXJpIiBzdWI9IjIiLz4NCisgICAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgICA8cDpjb250ZXh0Pg0KKyAgICAgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMiIvPg0KKyAgICAgICAgPC9wOmNvbnRleHQ+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIyIi8+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorDQorICA8cDpydWxlIG5hbWU9ImRhdGEgMSI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJkYXRhdHlwZUFsbG93cyI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGFyYW1zIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJkYXRhIj4NCisgICAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJkYXRhdHlwZUxpYnJhcnkiPg0KKyAgICAgICAgICA8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIj4NCisgICAgICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InBhcmFtcyIvPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKw0KKyAgPHA6cnVsZSBuYW1lPSJkYXRhIDIiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iZGF0YXR5cGVBbGxvd3MiPg0KKyAgICAgIDxwOnZhciByYW5nZT0idXJpIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJuY25hbWUiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhcmFtcyIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICAgIDxwOm5vdD4NCisgICAgICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKwk8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisJPHA6dmFyIHJhbmdlPSJhdHQiLz4NCisJPHA6dmFyIHJhbmdlPSJzdHJpbmciLz4NCisgICAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICAgIDwvcDpqdWRnZW1lbnQ+DQorICAgIDwvcDpub3Q+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIvPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorICAgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0iZGF0YXR5cGVMaWJyYXJ5Ij4NCisgICAgICAgICAgPHA6dmFyIHJhbmdlPSJ1cmkiLz4NCisgICAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0idHlwZSI+DQorICAgICAgICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgICA8L3A6YXR0cmlidXRlPg0KKyAgICAgICAgPHA6dmFyIHJhbmdlPSJwYXJhbXMiLz4NCisgICAgICAgIDxwOmVsZW1lbnQgbmFtZT0iZXhjZXB0Ij4NCisgICAgICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgICAgICA8L3A6ZWxlbWVudD4NCisgICAgICA8L3A6ZWxlbWVudD4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6cnVsZT4NCisNCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uIGlkPSJidWlsdC1pbi1kYXRhdHlwZSI+DQorPHRpdGxlPkJ1aWx0LWluIGRhdGF0eXBlIGxpYnJhcnk8L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSBlbXB0eSBVUkkgaWRlbnRpZmllcyBhIHNwZWNpYWwgYnVpbHQtaW4gZGF0YXR5cGUgbGlicmFyeS4NCitUaGlzIHByb3ZpZGVzIHR3byBkYXRhdHlwZXMsIDxsaXRlcmFsPnN0cmluZzwvbGl0ZXJhbD4gYW5kDQorPGxpdGVyYWw+dG9rZW48L2xpdGVyYWw+LiAgTm8gcGFyYW1ldGVycyBhcmUgYWxsb3dlZCBmb3IgZWl0aGVyIG9mDQordGhlc2UgZGF0YXR5cGVzLjwvcGFyYT4NCisNCis8dmFyaWFibGVsaXN0Pg0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJlcXVhbCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjIiLz4NCisgICAgPC9wOmp1ZGdlbWVudD48L3Rlcm0+DQorPGxpc3RpdGVtPjxwYXJhPmFzc2VydHMgdGhhdCA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIxIi8+DQorYW5kIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjIiLz4gYXJlIGlkZW50aWNhbDwvcGFyYT48L2xpc3RpdGVtPg0KKzwvdmFybGlzdGVudHJ5Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0ibm9ybWFsaXplV2hpdGVTcGFjZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj4NCis8L3Rlcm0+DQorPGxpc3RpdGVtPjxwYXJhPnJldHVybnMgdGhlIHN0cmluZyA8cDp2YXIgcmFuZ2U9InN0cmluZyIvPiwNCit3aXRoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycyByZW1vdmVkLA0KK2FuZCB3aXRoIGVhY2ggb3RoZXIgbWF4aW1hbCBzZXF1ZW5jZSBvZiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMNCityZXBsYWNlZCBieSBhIHNpbmdsZSBzcGFjZSBjaGFyYWN0ZXIgPC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+VGhlIHNlbWFudGljcyBvZiB0aGUgdHdvIGJ1aWx0LWluIGRhdGF0eXBlcyBhcmUgYXMNCitmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisNCisgIDxwOnJ1bGUgbmFtZT0ic3RyaW5nIGFsbG93cyI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJkYXRhdHlwZUFsbG93cyI+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTdHJpbmciLz4NCisgICAgICA8cDpzdHJpbmc+c3RyaW5nPC9wOnN0cmluZz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNlcXVlbmNlIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgIDwvcDpydWxlPg0KKw0KKyAgPHA6cnVsZSBuYW1lPSJzdHJpbmcgZXF1YWwiPg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iZGF0YXR5cGVFcXVhbCI+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTdHJpbmciLz4NCisgICAgICA8cDpzdHJpbmc+c3RyaW5nPC9wOnN0cmluZz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorDQorICA8cDpydWxlIG5hbWU9InRva2VuIGFsbG93cyI+DQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJkYXRhdHlwZUFsbG93cyI+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTdHJpbmciLz4NCisgICAgICA8cDpzdHJpbmc+dG9rZW48L3A6c3RyaW5nPg0KKyAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorDQorICA8cDpydWxlIG5hbWU9InRva2VuIGVxdWFsIj4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImVxdWFsIj4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJub3JtYWxpemVXaGl0ZVNwYWNlIj4NCisgICAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjEiLz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0ibm9ybWFsaXplV2hpdGVTcGFjZSI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIgc3ViPSIyIi8+DQorICAgICAgPC9wOmZ1bmN0aW9uPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0iZGF0YXR5cGVFcXVhbCI+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTdHJpbmciLz4NCisgICAgICA8cDpzdHJpbmc+dG9rZW48L3A6c3RyaW5nPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIiBzdWI9IjIiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorDQorPC9wOnByb29mU3lzdGVtPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+PGxpdGVyYWw+bGlzdDwvbGl0ZXJhbD4gcGF0dGVybjwvdGl0bGU+DQorDQorPHBhcmE+V2UgdXNlIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBub3RhdGlvbjo8L3BhcmE+DQorDQorPHZhcmlhYmxlbGlzdD4NCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOmZ1bmN0aW9uIG5hbWU9InNwbGl0Ij4NCisgICAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPC9wOmZ1bmN0aW9uPjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+DQorICAgICAgDQorcmV0dXJucyBhIHNlcXVlbmNlIG9mIHN0cmluZ3Mgb25lIGZvciBlYWNoIHdoaXRlc3BhY2UgZGVsaW1pdGVkIHRva2VuDQorb2YgPHA6dmFyIHJhbmdlPSJzdHJpbmciLz47IGVhY2ggc3RyaW5nIGluIHRoZSByZXR1cm5lZCBzZXF1ZW5jZSB3aWxsDQorYmUgbm9uLWVtcHR5IGFuZCB3aWxsIG5vdCBjb250YWluIGFueQ0KK3doaXRlc3BhY2U8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8L3ZhcmlhYmxlbGlzdD4NCisNCis8cGFyYT5UaGUgc2VtYW50aWNzIG9mIHRoZSA8bGl0ZXJhbD5saXN0PC9saXRlcmFsPiBwYXR0ZXJuIGFyZSBhcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8cDpwcm9vZlN5c3RlbT4NCisgIDxwOnJ1bGUgbmFtZT0ibGlzdCI+DQorDQorICAgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ii8+DQorICAgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJzcGxpdCI+DQorICAgICAgICA8cDp2YXIgcmFuZ2U9InN0cmluZyIvPg0KKyAgICAgIDwvcDpmdW5jdGlvbj4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisNCisgICAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ic3RyaW5nIi8+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJsaXN0Ij4NCisJPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorDQorICA8L3A6cnVsZT4NCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPG5vdGU+PHBhcmE+SXQgaXMgY3J1Y2lhbCBpbiB0aGUgYWJvdmUgaW5mZXJlbmNlIHJ1bGUgdGhhdCB0aGUNCitzZXF1ZW5jZSB0aGF0IGlzIG1hdGNoZWQgYWdhaW5zdCBhIHBhdHRlcm4gY2FuIGNvbnRhaW4gY29uc2VjdXRpdmUNCitzdHJpbmdzLjwvcGFyYT48L25vdGU+DQorDQorPC9zZWN0aW9uPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbiBpZD0idmFsaWRpdHkiPg0KKzx0aXRsZT5WYWxpZGl0eTwvdGl0bGU+DQorDQorPHBhcmE+Tm93IHdlIGNhbiBkZWZpbmUgd2hlbiBhbiBlbGVtZW50IGlzIHZhbGlkIHdpdGggcmVzcGVjdCB0byBhDQorc2NoZW1hLiAgV2UgdXNlIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBub3RhdGlvbjo8L3BhcmE+DQorDQorPHZhcmlhYmxlbGlzdD4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOnZhciByYW5nZT0iZWxlbWVudCIvPjwvdGVybT48bGlzdGl0ZW0+PHBhcmE+cmFuZ2VzIG92ZXIgZWxlbWVudHM8L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPjxwOmp1ZGdlbWVudCBuYW1lPSJ2YWxpZCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJlbGVtZW50Ii8+DQorICAgIDwvcDpqdWRnZW1lbnQ+PC90ZXJtPjxsaXN0aXRlbT48cGFyYT4NCisgICAgDQorYXNzZXJ0cyB0aGF0IHRoZSBlbGVtZW50IDxwOnZhciByYW5nZT0iZWxlbWVudCIvPiBpcyB2YWxpZCB3aXRoDQorcmVzcGVjdCB0byB0aGUgZ3JhbW1hcjwvcGFyYT48L2xpc3RpdGVtPjwvdmFybGlzdGVudHJ5Pg0KKw0KKzx2YXJsaXN0ZW50cnk+PHRlcm0+PHA6anVkZ2VtZW50IG5hbWU9InN0YXJ0Ij4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPC9wOmp1ZGdlbWVudD48L3Rlcm0+PGxpc3RpdGVtPjxwYXJhPg0KK2Fzc2VydHMgdGhhdCB0aGUgZ3JhbW1hciBjb250YWlucw0KKzxwOmVsZW1lbnQgbmFtZT0ic3RhcnQiPjxwOnZhciByYW5nZT0icGF0dGVybiIvPiA8L3A6ZWxlbWVudD48L3BhcmE+PC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4NCisNCis8L3ZhcmlhYmxlbGlzdD4NCisNCis8cGFyYT5BbiBlbGVtZW50IGlzIHZhbGlkIGlmIHRvZ2V0aGVyIHdpdGggYW4gZW1wdHkgc2V0IG9mIGF0dHJpYnV0ZXMNCitpdCBtYXRjaGVzIHRoZSA8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gcGF0dGVybiBvZiB0aGUgZ3JhbW1hci48L3BhcmE+DQorDQorPHA6cHJvb2ZTeXN0ZW0+DQorICA8cDpydWxlIG5hbWU9InZhbGlkIj4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9InN0YXJ0Ij4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPC9wOmp1ZGdlbWVudD4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iZWxlbWVudCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgICA8cDpqdWRnZW1lbnQgbmFtZT0idmFsaWQiPg0KKyAgICAgIDxwOnZhciByYW5nZT0iZWxlbWVudCIvPg0KKyAgICA8L3A6anVkZ2VtZW50Pg0KKyAgPC9wOnJ1bGU+DQorICAgICAgDQorDQorPC9wOnByb29mU3lzdGVtPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbj4NCis8dGl0bGU+RXhhbXBsZTwvdGl0bGU+DQorDQorPHBhcmE+TGV0IDxwOnZhciByYW5nZT0iZWxlbWVudCIgc3ViPSIwIi8+IGJlPC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorDQorPHA6ZnVuY3Rpb24gbmFtZT0iZWxlbWVudCI+DQorICA8cDpmdW5jdGlvbiBuYW1lPSJuYW1lIj4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTdHJpbmciLz4NCisgICAgPHA6c3RyaW5nPmZvbzwvcDpzdHJpbmc+DQorICA8L3A6ZnVuY3Rpb24+DQorICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMCIvPg0KKyAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgIDxwOnZhciByYW5nZT0ibWl4ZWQiLz4NCis8L3A6ZnVuY3Rpb24+DQorDQorPC9wOmZvcm11bGE+DQorDQorPHBhcmE+d2hlcmUgPHA6dmFyIHJhbmdlPSJtaXhlZCIvPiBpczwvcGFyYT4NCisNCis8cDpmb3JtdWxhPg0KKyAgPHA6ZnVuY3Rpb24gbmFtZT0iYXBwZW5kIj4NCisgICAgPHA6dmFyIHJhbmdlPSJlbGVtZW50IiBzdWI9IjEiLz4NCisgICAgPHA6dmFyIHJhbmdlPSJlbGVtZW50IiBzdWI9IjIiLz4NCisgIDwvcDpmdW5jdGlvbj4NCis8L3A6Zm9ybXVsYT4NCisNCis8cGFyYT5hbmQgPHA6dmFyIHJhbmdlPSJlbGVtZW50IiBzdWI9IjEiLz4gaXM8L3BhcmE+DQorDQorPHA6Zm9ybXVsYT4NCisgIDxwOmZ1bmN0aW9uIG5hbWU9ImVsZW1lbnQiPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJuYW1lIj4NCisgICAgICA8cDpzdHJpbmc+aHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMTwvcDpzdHJpbmc+DQorICAgICAgPHA6c3RyaW5nPmJhcjE8L3A6c3RyaW5nPg0KKyAgICA8L3A6ZnVuY3Rpb24+DQorICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIxIi8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgIDwvcDpmdW5jdGlvbj4NCis8L3A6Zm9ybXVsYT4NCisNCis8cGFyYT5hbmQgPHA6dmFyIHJhbmdlPSJlbGVtZW50IiBzdWI9IjIiLz4gaXM8L3BhcmE+DQorDQorPHA6Zm9ybXVsYT4NCisgIDxwOmZ1bmN0aW9uIG5hbWU9ImVsZW1lbnQiPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJuYW1lIj4NCisgICAgICA8cDpzdHJpbmc+aHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMjwvcDpzdHJpbmc+DQorICAgICAgPHA6c3RyaW5nPmJhcjI8L3A6c3RyaW5nPg0KKyAgICA8L3A6ZnVuY3Rpb24+DQorICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIyIi8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgIDwvcDpmdW5jdGlvbj4NCis8L3A6Zm9ybXVsYT4NCisNCis8cGFyYT5Bc3N1bWluZyBhcHByb3ByaWF0ZSBkZWZpbml0aW9ucyBvZiA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiDQorc3ViPSIwIi8+LCA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMSIvPiBhbmQgPHA6dmFyIHJhbmdlPSJjb250ZXh0Ig0KK3N1Yj0iMiIvPiwgdGhpcyByZXByZXNlbnRzIHRoZSBkb2N1bWVudCBpbiA8eHJlZg0KK2xpbmtlbmQ9ImRhdGEtbW9kZWwtZXhhbXBsZSIvPi48L3BhcmE+DQorDQorPHBhcmE+V2Ugbm93IHNob3cgaG93IDxwOnZhciByYW5nZT0iZWxlbWVudCIgc3ViPSIwIi8+IGNhbiBiZSBzaG93biB0bw0KK2JlIHZhbGlkIHdpdGggcmVzcGVjdCB0byB0aGUgc2NoZW1hIGluIDx4cmVmDQorbGlua2VuZD0ic2ltcGxlLXN5bnRheC1leGFtcGxlIi8+LiAgVGhlIHNjaGVtYSBpcyBlcXVpdmFsZW50IHRvIHRoZQ0KK2ZvbGxvd2luZyBwcm9wb3NpdGlvbnM6PC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0ic3RhcnQiPg0KKyAgICA8cDplbGVtZW50IG5hbWU9InJlZiI+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5hbWUiPjxwOnN0cmluZz5mb288L3A6c3RyaW5nPjwvcDphdHRyaWJ1dGU+DQorICAgIDwvcDplbGVtZW50Pg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6Zm9ybXVsYT4NCisNCis8cDpmb3JtdWxhPg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImJpbmQiPg0KKyAgICA8cDpzdHJpbmc+Zm9vLmVsZW1lbnQ8L3A6c3RyaW5nPg0KKyAgICA8cDplbGVtZW50IG5hbWU9Im5hbWUiPg0KKyAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJucyI+PHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTdHJpbmciLz48L3A6YXR0cmlidXRlPg0KKyAgICAgIDxwOnN0cmluZz5mb288L3A6c3RyaW5nPg0KKyAgICA8L3A6ZWxlbWVudD4NCisgICAgPHA6ZWxlbWVudCBuYW1lPSJncm91cCI+DQorICAgICAgPHA6ZWxlbWVudCBuYW1lPSJyZWYiPg0KKwk8cDphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+DQorCSAgPHA6c3RyaW5nPmJhcjE8L3A6c3RyaW5nPg0KKwk8L3A6YXR0cmlidXRlPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0icmVmIj4NCisJPHA6YXR0cmlidXRlIG5hbWU9Im5hbWUiPg0KKwkgIDxwOnN0cmluZz5iYXIyPC9wOnN0cmluZz4NCisJPC9wOmF0dHJpYnV0ZT4NCisgICAgICA8L3A6ZWxlbWVudD4NCisgICAgPC9wOmVsZW1lbnQ+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpmb3JtdWxhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iYmluZCI+DQorICAgIDxwOnN0cmluZz5iYXIxLmVsZW1lbnQ8L3A6c3RyaW5nPg0KKyAgICA8cDplbGVtZW50IG5hbWU9Im5hbWUiPg0KKyAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJucyI+DQorCTxwOnN0cmluZz5odHRwOi8vd3d3LmV4YW1wbGUuY29tL24xPC9wOnN0cmluZz4NCisgICAgICA8L3A6YXR0cmlidXRlPg0KKyAgICAgIDxwOnN0cmluZz5iYXIxPC9wOnN0cmluZz4NCisgICAgPC9wOmVsZW1lbnQ+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0iZW1wdHkiLz4NCisgIDwvcDpqdWRnZW1lbnQ+DQorPC9wOmZvcm11bGE+DQorDQorPHA6Zm9ybXVsYT4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJiaW5kIj4NCisgICAgPHA6c3RyaW5nPmJhcjIuZWxlbWVudDwvcDpzdHJpbmc+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0ibmFtZSI+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5zIj4NCisJPHA6c3RyaW5nPmh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbjI8L3A6c3RyaW5nPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPHA6c3RyaW5nPmJhcjI8L3A6c3RyaW5nPg0KKyAgICA8L3A6ZWxlbWVudD4NCisgICAgPHA6ZWxlbWVudCBuYW1lPSJlbXB0eSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6Zm9ybXVsYT4NCisNCisNCis8cGFyYT5MZXQgbmFtZSBjbGFzcyA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIxIi8+IGJlPC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDplbGVtZW50IG5hbWU9Im5hbWUiPg0KKyAgICA8cDphdHRyaWJ1dGUgbmFtZT0ibnMiPg0KKyAgICAgIDxwOnN0cmluZz5odHRwOi8vd3d3LmV4YW1wbGUuY29tL24xPC9wOnN0cmluZz4NCisgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgPHA6c3RyaW5nPmJhcjE8L3A6c3RyaW5nPg0KKyAgPC9wOmVsZW1lbnQ+DQorPC9wOmZvcm11bGE+DQorDQorPHBhcmE+YW5kIGxldCA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIgc3ViPSIyIi8+IGJlPC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDplbGVtZW50IG5hbWU9Im5hbWUiPg0KKyAgICA8cDphdHRyaWJ1dGUgbmFtZT0ibnMiPg0KKyAgICAgIDxwOnN0cmluZz5odHRwOi8vd3d3LmV4YW1wbGUuY29tL24yPC9wOnN0cmluZz4NCisgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgPHA6c3RyaW5nPmJhcjI8L3A6c3RyaW5nPg0KKyAgPC9wOmVsZW1lbnQ+DQorPC9wOmZvcm11bGE+DQorDQorPHBhcmE+VGhlbiwgYnkgdGhlIGluZmVyZW5jZSBydWxlIChuYW1lKSBpbiA8eHJlZg0KK2xpbmtlbmQ9Im5hbWUtY2xhc3NlcyIvPiwgd2UgaGF2ZTwvcGFyYT4NCisNCis8cDpmb3JtdWxhPg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImJlbG9uZ3MiPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJuYW1lIj4NCisgICAgICA8cDpzdHJpbmc+aHR0cDovL3d3dy5leGFtcGxlLmNvbS9uMTwvcDpzdHJpbmc+DQorICAgICAgPHA6c3RyaW5nPmJhcjE8L3A6c3RyaW5nPg0KKyAgICA8L3A6ZnVuY3Rpb24+DQorICAgIDxwOnZhciByYW5nZT0ibmFtZUNsYXNzIiBzdWI9IjEiLz4NCisgIDwvcDpqdWRnZW1lbnQ+DQorPC9wOmZvcm11bGE+DQorDQorPHBhcmE+YW5kPC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iYmVsb25ncyI+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9Im5hbWUiPg0KKyAgICAgIDxwOnN0cmluZz5odHRwOi8vd3d3LmV4YW1wbGUuY29tL24yPC9wOnN0cmluZz4NCisgICAgICA8cDpzdHJpbmc+YmFyMjwvcDpzdHJpbmc+DQorICAgIDwvcDpmdW5jdGlvbj4NCisgICAgPHA6dmFyIHJhbmdlPSJuYW1lQ2xhc3MiIHN1Yj0iMiIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6Zm9ybXVsYT4NCisNCisNCis8cGFyYT5CeSB0aGUgaW5mZXJlbmNlIHJ1bGUgKGVtcHR5KSBpbiA8eHJlZiBsaW5rZW5kPSJlbXB0eS1wYXR0ZXJuIi8+LA0KK3dlIGhhdmU8L3BhcmE+DQorDQorPHA6Zm9ybXVsYT4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIxIi8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2VxdWVuY2UiLz4NCisgICAgPHA6ZWxlbWVudCBuYW1lPSJlbXB0eSI+PC9wOmVsZW1lbnQ+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpmb3JtdWxhPg0KKw0KKzxwYXJhPmFuZDwvcGFyYT4NCisNCis8cDpmb3JtdWxhPg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9Im1hdGNoIj4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjIiLz4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXQiLz4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHlTZXF1ZW5jZSIvPg0KKyAgICA8cDplbGVtZW50IG5hbWU9ImVtcHR5Ij48L3A6ZWxlbWVudD4NCisgIDwvcDpqdWRnZW1lbnQ+DQorPC9wOmZvcm11bGE+DQorDQorPHBhcmE+VGh1cyBieSB0aGUgaW5mZXJlbmNlIHJ1bGUgKGVsZW1lbnQpIGluIDx4cmVmDQorbGlua2VuZD0iZWxlbWVudC1wYXR0ZXJuIi8+LCB3ZSBoYXZlPC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMCIvPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImVsZW1lbnQiIHN1Yj0iMSIvPg0KKyAgICA8cDplbGVtZW50IG5hbWU9InJlZiI+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5hbWUiPg0KKyAgICAgICAgPHA6c3RyaW5nPmJhcjE8L3A6c3RyaW5nPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgIDwvcDplbGVtZW50Pg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6Zm9ybXVsYT4NCisNCis8cGFyYT5Ob3RlIHRoYXQgd2UgaGF2ZSBjaG9zZW4gPHA6dmFyDQorcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMCIvPiwgc2luY2UgYW55IGNvbnRleHQgaXMgYWxsb3dlZC48L3BhcmE+DQorDQorPHBhcmE+TGlrZXdpc2UsIHdlIGhhdmU8L3BhcmE+DQorDQorPHA6Zm9ybXVsYT4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIwIi8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgIDxwOnZhciByYW5nZT0iZWxlbWVudCIgc3ViPSIyIi8+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0icmVmIj4NCisgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+DQorICAgICAgICA8cDpzdHJpbmc+YmFyMjwvcDpzdHJpbmc+DQorICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgPC9wOmVsZW1lbnQ+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpmb3JtdWxhPg0KKw0KKzxwYXJhPkJ5IHRoZSBpbmZlcmVuY2UgcnVsZSAoZ3JvdXApIGluIDx4cmVmDQorbGlua2VuZD0iY2hvaWNlLXBhdHRlcm4iLz4sIHdlIGhhdmU8L3BhcmE+DQorDQorPHA6Zm9ybXVsYT4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJtYXRjaCI+DQorICAgIDxwOnZhciByYW5nZT0iY29udGV4dCIgc3ViPSIwIi8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U2V0Ii8+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImFwcGVuZCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJlbGVtZW50IiBzdWI9IjEiLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImVsZW1lbnQiIHN1Yj0iMiIvPg0KKyAgICA8L3A6ZnVuY3Rpb24+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0iZ3JvdXAiPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0icmVmIj4NCisgICAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIj4NCisgICAgICAgICAgPHA6c3RyaW5nPmJhcjE8L3A6c3RyaW5nPg0KKyAgICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgICA8L3A6ZWxlbWVudD4NCisgICAgICA8cDplbGVtZW50IG5hbWU9InJlZiI+DQorICAgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+DQorICAgICAgICAgIDxwOnN0cmluZz5iYXIyPC9wOnN0cmluZz4NCisgICAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPC9wOmVsZW1lbnQ+DQorICAgIDwvcDplbGVtZW50Pg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6Zm9ybXVsYT4NCisNCis8cGFyYT5CeSB0aGUgaW5mZXJlbmNlIHJ1bGUgKGVsZW1lbnQpIGluIDx4cmVmDQorbGlua2VuZD0iZWxlbWVudC1wYXR0ZXJuIi8+LCB3ZSBoYXZlPC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0ibWF0Y2giPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRleHQiIHN1Yj0iMyIvPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbGVtZW50Ij4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJuYW1lIj4NCisgICAgICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5U3RyaW5nIi8+DQorICAgICAgICA8cDpzdHJpbmc+Zm9vPC9wOnN0cmluZz4NCisgICAgICA8L3A6ZnVuY3Rpb24+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjAiLz4NCisgICAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eVNldCIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0ibWl4ZWQiLz4NCisgICAgPC9wOmZ1bmN0aW9uPg0KKyAgICA8cDplbGVtZW50IG5hbWU9InJlZiI+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5hbWUiPg0KKyAgICAgICAgPHA6c3RyaW5nPmZvbzwvcDpzdHJpbmc+DQorICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgPC9wOmVsZW1lbnQ+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpmb3JtdWxhPg0KKw0KKzxwYXJhPkhlcmUgPHA6dmFyIHJhbmdlPSJjb250ZXh0IiBzdWI9IjMiLz4gaXMgYW4gYXJiaXRyYXJ5DQorY29udGV4dC48L3BhcmE+DQorDQorPHBhcmE+VGh1cyB3ZSBjYW4gYXBwbHkgdGhlIGluZmVyZW5jZSBydWxlICh2YWxpZCkgaW4gPHhyZWYNCitsaW5rZW5kPSJ2YWxpZGl0eSIvPiBhbmQgb2J0YWluPC9wYXJhPg0KKw0KKzxwOmZvcm11bGE+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0idmFsaWQiPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImVsZW1lbnQiIHN1Yj0iMCIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6Zm9ybXVsYT4NCisNCis8L3NlY3Rpb24+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uIGlkPSJyZXN0cmljdGlvbiI+DQorPHRpdGxlPlJlc3RyaWN0aW9uczwvdGl0bGU+DQorDQorPHBhcmE+VGhlIGZvbGxvd2luZyBjb25zdHJhaW50cyBhcmUgYWxsIGNoZWNrZWQgYWZ0ZXIgdGhlIGdyYW1tYXIgaGFzDQorYmVlbiB0cmFuc2Zvcm1lZCB0byB0aGUgc2ltcGxlIGZvcm0gZGVzY3JpYmVkIGluIDx4cmVmDQorbGlua2VuZD0ic2ltcGxlLXN5bnRheCIvPi4gVGhlIHB1cnBvc2Ugb2YgdGhlc2UgcmVzdHJpY3Rpb25zIGlzIHRvDQorY2F0Y2ggdXNlciBlcnJvcnMgYW5kIHRvIGZhY2lsaXRhdGUgaW1wbGVtZW50YXRpb24uPC9wYXJhPg0KKw0KKzxzZWN0aW9uIGlkPSJjb250ZXh0dWFsLXJlc3RyaWN0aW9uIj4NCis8dGl0bGU+Q29udGV4dHVhbCByZXN0cmljdGlvbnM8L3RpdGxlPg0KKw0KKzxwYXJhPkluIHRoaXMgc2VjdGlvbiB3ZSBkZXNjcmliZSByZXN0cmljdGlvbnMgb24gd2hlcmUgZWxlbWVudHMgYXJlDQorYWxsb3dlZCBpbiB0aGUgc2NoZW1hIGJhc2VkIG9uIHRoZSBuYW1lcyBvZiB0aGUgYW5jZXN0b3IgZWxlbWVudHMuIFdlDQordXNlIHRoZSBjb25jZXB0IG9mIGEgPGZpcnN0dGVybT5wcm9oaWJpdGVkIHBhdGg8L2ZpcnN0dGVybT4gdG8NCitkZXNjcmliZSB0aGVzZSByZXN0cmljdGlvbnMuIEEgcGF0aCBpcyBhIHNlcXVlbmNlIG9mIE5DTmFtZXMgc2VwYXJhdGVkDQorYnkgPGxpdGVyYWw+LzwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+Ly88L2xpdGVyYWw+LjwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT5BbiBlbGVtZW50IG1hdGNoZXMgYSBwYXRoDQorPHJlcGxhY2VhYmxlPng8L3JlcGxhY2VhYmxlPiwgd2hlcmUgPHJlcGxhY2VhYmxlPng8L3JlcGxhY2VhYmxlPiBpcyBhbg0KK05DTmFtZSwgaWYgYW5kIG9ubHkgaWYgdGhlIGxvY2FsIG5hbWUgb2YgdGhlIGVsZW1lbnQgaXMNCis8cmVwbGFjZWFibGU+eDwvcmVwbGFjZWFibGU+PC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPkFuIGVsZW1lbnQgbWF0Y2hlcyBhIHBhdGgNCis8cmVwbGFjZWFibGU+eDwvcmVwbGFjZWFibGU+PGxpdGVyYWw+LzwvbGl0ZXJhbD48cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+LA0KK3doZXJlIDxyZXBsYWNlYWJsZT54PC9yZXBsYWNlYWJsZT4gaXMgYW4gTkNOYW1lIGFuZA0KKzxyZXBsYWNlYWJsZT5wPC9yZXBsYWNlYWJsZT4gaXMgYSBwYXRoLCBpZiBhbmQgb25seSBpZiB0aGUgbG9jYWwgbmFtZQ0KK29mIHRoZSBlbGVtZW50IGlzIDxyZXBsYWNlYWJsZT54PC9yZXBsYWNlYWJsZT4gYW5kIHRoZSBlbGVtZW50IGhhcyBhDQorY2hpbGQgdGhhdCBtYXRjaGVzIDxyZXBsYWNlYWJsZT5wPC9yZXBsYWNlYWJsZT48L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+QW4gZWxlbWVudCBtYXRjaGVzIGEgcGF0aA0KKzxyZXBsYWNlYWJsZT54PC9yZXBsYWNlYWJsZT48bGl0ZXJhbD4vLzwvbGl0ZXJhbD48cmVwbGFjZWFibGU+cDwvcmVwbGFjZWFibGU+LA0KK3doZXJlIDxyZXBsYWNlYWJsZT54PC9yZXBsYWNlYWJsZT4gaXMgYW4gTkNOYW1lIGFuZA0KKzxyZXBsYWNlYWJsZT5wPC9yZXBsYWNlYWJsZT4gaXMgYSBwYXRoLCBpZiBhbmQgb25seSBpZiB0aGUgbG9jYWwgbmFtZQ0KK29mIHRoZSBlbGVtZW50IGlzIDxyZXBsYWNlYWJsZT54PC9yZXBsYWNlYWJsZT4gYW5kIHRoZSBlbGVtZW50IGhhcyBhDQorZGVzY2VuZGFudCB0aGF0IG1hdGNoZXMgPHJlcGxhY2VhYmxlPnA8L3JlcGxhY2VhYmxlPjwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzxwYXJhPkZvciBleGFtcGxlLCB0aGUgZWxlbWVudDwvcGFyYT4NCisNCis8cHJvZ3JhbWxpc3Rpbmc+PCFbQ0RBVEFbPGZvbz4NCisgIDxiYXI+DQorICAgIDxiYXovPg0KKyAgPC9iYXI+DQorPC9mb28+XV0+PC9wcm9ncmFtbGlzdGluZz4NCisNCis8cGFyYT5tYXRjaGVzIHRoZSBwYXRocyA8bGl0ZXJhbD5mb288L2xpdGVyYWw+LA0KKzxsaXRlcmFsPmZvby9iYXI8L2xpdGVyYWw+LCA8bGl0ZXJhbD5mb28vL2JhcjwvbGl0ZXJhbD4sDQorPGxpdGVyYWw+Zm9vLy9iYXo8L2xpdGVyYWw+LCA8bGl0ZXJhbD5mb28vYmFyL2JhejwvbGl0ZXJhbD4sDQorPGxpdGVyYWw+Zm9vL2Jhci8vYmF6PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Zm9vLy9iYXIvYmF6PC9saXRlcmFsPiwNCitidXQgbm90IDxsaXRlcmFsPmZvby9iYXo8L2xpdGVyYWw+IG9yDQorPGxpdGVyYWw+Zm9vYmFyPC9saXRlcmFsPi48L3BhcmE+DQorDQorPHBhcmE+QSBjb3JyZWN0IFJFTEFYIE5HIHNjaGVtYSBtdXN0IGJlIHN1Y2ggdGhhdCwgYWZ0ZXINCit0cmFuc2Zvcm1hdGlvbiB0byB0aGUgc2ltcGxlIGZvcm0sIGl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGVsZW1lbnQNCit0aGF0IG1hdGNoZXMgYSBwcm9oaWJpdGVkIHBhdGguPC9wYXJhPg0KKw0KKzxzZWN0aW9uPg0KKzx0aXRsZT48bGl0ZXJhbD5hdHRyaWJ1dGU8L2xpdGVyYWw+IHBhdHRlcm48L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIHByb2hpYml0ZWQ6PC9wYXJhPg0KKw0KKzxpdGVtaXplZGxpc3Q+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmF0dHJpYnV0ZS8vcmVmPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5hdHRyaWJ1dGUvL2F0dHJpYnV0ZTwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8L2l0ZW1pemVkbGlzdD4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24+DQorPHRpdGxlPjxsaXRlcmFsPm9uZU9yTW9yZTwvbGl0ZXJhbD4gcGF0dGVybjwvdGl0bGU+DQorDQorPHBhcmE+VGhlIGZvbGxvd2luZyBwYXRocyBhcmUgcHJvaGliaXRlZDo8L3BhcmE+DQorDQorPGl0ZW1pemVkbGlzdD4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+b25lT3JNb3JlLy9ncm91cC8vYXR0cmlidXRlPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5vbmVPck1vcmUvL2ludGVybGVhdmUvL2F0dHJpYnV0ZTwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8L2l0ZW1pemVkbGlzdD4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9Imxpc3QtcmVzdHJpY3Rpb25zIj4NCis8dGl0bGU+PGxpdGVyYWw+bGlzdDwvbGl0ZXJhbD4gcGF0dGVybjwvdGl0bGU+DQorDQorPHBhcmE+VGhlIGZvbGxvd2luZyBwYXRocyBhcmUgcHJvaGliaXRlZDo8L3BhcmE+DQorDQorPGl0ZW1pemVkbGlzdD4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+bGlzdC8vbGlzdDwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+bGlzdC8vcmVmPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5saXN0Ly9hdHRyaWJ1dGU8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmxpc3QvL3RleHQ8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmxpc3QvL2ludGVybGVhdmU8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPC9pdGVtaXplZGxpc3Q+DQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uIGlkPSJjb250ZXh0LWRhdGEtZXhjZXB0Ij4NCis8dGl0bGU+PGxpdGVyYWw+ZXhjZXB0PC9saXRlcmFsPiBpbiA8bGl0ZXJhbD5kYXRhPC9saXRlcmFsPiBwYXR0ZXJuPC90aXRsZT4NCisNCis8cGFyYT5UaGUgZm9sbG93aW5nIHBhdGhzIGFyZSBwcm9oaWJpdGVkOjwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5kYXRhL2V4Y2VwdC8vYXR0cmlidXRlPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5kYXRhL2V4Y2VwdC8vcmVmPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5kYXRhL2V4Y2VwdC8vdGV4dDwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+ZGF0YS9leGNlcHQvL2xpc3Q8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmRhdGEvZXhjZXB0Ly9ncm91cDwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+ZGF0YS9leGNlcHQvL2ludGVybGVhdmU8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmRhdGEvZXhjZXB0Ly9vbmVPck1vcmU8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmRhdGEvZXhjZXB0Ly9lbXB0eTwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8L2l0ZW1pemVkbGlzdD4NCisNCis8bm90ZT48cGFyYT5UaGlzIGltcGxpZXMgdGhhdCBhbiA8bGl0ZXJhbD5leGNlcHQ8L2xpdGVyYWw+IGVsZW1lbnQNCit3aXRoIGEgPGxpdGVyYWw+ZGF0YTwvbGl0ZXJhbD4gcGFyZW50IGNhbiBjb250YWluIG9ubHkNCis8bGl0ZXJhbD5kYXRhPC9saXRlcmFsPiwgPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+IGFuZA0KKzxsaXRlcmFsPmNob2ljZTwvbGl0ZXJhbD4gZWxlbWVudHMuPC9wYXJhPjwvbm90ZT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9ImNvbnRleHQtc3RhcnQiPg0KKzx0aXRsZT48bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gZWxlbWVudDwvdGl0bGU+DQorDQorPHBhcmE+VGhlIGZvbGxvd2luZyBwYXRocyBhcmUgcHJvaGliaXRlZDo8L3BhcmE+DQorDQorPGl0ZW1pemVkbGlzdD4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+c3RhcnQvL2F0dHJpYnV0ZTwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+c3RhcnQvL2RhdGE8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPnN0YXJ0Ly92YWx1ZTwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4NCis8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+c3RhcnQvL3RleHQ8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPnN0YXJ0Ly9saXN0PC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5zdGFydC8vZ3JvdXA8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPnN0YXJ0Ly9pbnRlcmxlYXZlPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5zdGFydC8vb25lT3JNb3JlPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5zdGFydC8vZW1wdHk8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPC9pdGVtaXplZGxpc3Q+DQorPC9zZWN0aW9uPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbiBpZD0ic3RyaW5nLXNlcXVlbmNlcyI+DQorPHRpdGxlPlN0cmluZyBzZXF1ZW5jZXM8L3RpdGxlPg0KKw0KKzxwYXJhPlJFTEFYIE5HIGRvZXMgbm90IGFsbG93IGEgcGF0dGVybiBzdWNoIGFzOjwvcGFyYT4NCisNCis8cHJvZ3JhbWxpc3Rpbmc+PCFbQ0RBVEFbPGVsZW1lbnQgbmFtZT0iZm9vIj4NCisgIDxncm91cD4NCisgICAgPGRhdGEgdHlwZT0iaW50Ii8+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9ncm91cD4NCis8L2VsZW1lbnQ+XV0+PC9wcm9ncmFtbGlzdGluZz4NCisNCis8cGFyYT5Ob3IgZG9lcyBpdCBhbGxvdyBhIHBhdHRlcm4gc3VjaCBhczo8L3BhcmE+DQorDQorPHByb2dyYW1saXN0aW5nPjwhW0NEQVRBWzxlbGVtZW50IG5hbWU9ImZvbyI+DQorICA8Z3JvdXA+DQorICAgIDxkYXRhIHR5cGU9ImludCIvPg0KKyAgICA8dGV4dC8+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD5dXT48L3Byb2dyYW1saXN0aW5nPg0KKw0KKzxwYXJhPk1vcmUgZ2VuZXJhbGx5LCBpZiB0aGUgcGF0dGVybiBmb3IgdGhlIGNvbnRlbnQgb2YgYW4gZWxlbWVudCBvcg0KK2F0dHJpYnV0ZSBjb250YWluczwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT5hIHBhdHRlcm4gdGhhdCBjYW4gbWF0Y2ggYSBjaGlsZA0KKyh0aGF0IGlzLCBhbiA8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPiwgPGxpdGVyYWw+ZGF0YTwvbGl0ZXJhbD4sDQorPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5saXN0PC9saXRlcmFsPiBvcg0KKzxsaXRlcmFsPnRleHQ8L2xpdGVyYWw+IHBhdHRlcm4pLCBhbmQ8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyBhIHNpbmdsZSBzdHJpbmcgKHRoYXQgaXMsIGENCis8bGl0ZXJhbD5kYXRhPC9saXRlcmFsPiwgPGxpdGVyYWw+dmFsdWU8L2xpdGVyYWw+IG9yDQorPGxpdGVyYWw+bGlzdDwvbGl0ZXJhbD4gcGF0dGVybiksPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPHBhcmE+dGhlbiB0aGUgdHdvIHBhdHRlcm5zIG11c3QgYmUgYWx0ZXJuYXRpdmVzIHRvIGVhY2ggb3RoZXIuPC9wYXJhPg0KKw0KKzxwYXJhPlRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBwYXR0ZXJucyBvY2N1cnJpbmcgd2l0aGluIGENCis8bGl0ZXJhbD5saXN0PC9saXRlcmFsPiBwYXR0ZXJuLjwvcGFyYT4NCisNCis8cGFyYT5UbyBmb3JtYWxpemUgdGhpcywgd2UgdXNlIHRoZSBjb25jZXB0IG9mIGEgY29udGVudC10eXBlLiAgQQ0KK3BhdHRlcm4gdGhhdCBpcyBhbGxvd2FibGUgYXMgdGhlIGNvbnRlbnQgb2YgYW4gZWxlbWVudCBoYXMgb25lIG9mDQordGhyZWUgY29udGVudC10eXBlczogZW1wdHksIGNvbXBsZXggYW5kIHNpbXBsZS4gIFdlIHVzZSB0aGUgZm9sbG93aW5nDQorbm90YXRpb24uPC9wYXJhPg0KKw0KKzx2YXJpYWJsZWxpc3Q+DQorDQorPHZhcmxpc3RlbnRyeT4NCis8dGVybT48cDpmdW5jdGlvbiBuYW1lPSJlbXB0eSIvPjwvdGVybT4NCis8bGlzdGl0ZW0+PHBhcmE+cmV0dXJucyB0aGUgZW1wdHkgY29udGVudC10eXBlPC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT4NCis8dGVybT48cDpmdW5jdGlvbiBuYW1lPSJjb21wbGV4Ii8+PC90ZXJtPg0KKzxsaXN0aXRlbT48cGFyYT5yZXR1cm5zIHRoZSBjb21wbGV4IGNvbnRlbnQtdHlwZTwvcGFyYT48L2xpc3RpdGVtPg0KKzwvdmFybGlzdGVudHJ5Pg0KKw0KKzx2YXJsaXN0ZW50cnk+DQorPHRlcm0+PHA6ZnVuY3Rpb24gbmFtZT0ic2ltcGxlIi8+PC90ZXJtPg0KKzxsaXN0aXRlbT48cGFyYT5yZXR1cm5zIHRoZSBzaW1wbGUgY29udGVudC10eXBlPC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT48cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIi8+PC90ZXJtPg0KKzxsaXN0aXRlbT48cGFyYT5yYW5nZXMgb3ZlciBjb250ZW50LXR5cGVzPC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJncm91cGFibGUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIiBzdWI9IjEiLz4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIyIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvdGVybT4NCis8bGlzdGl0ZW0+PHBhcmE+YXNzZXJ0cyB0aGF0IHRoZSBjb250ZW50LXR5cGVzIDxwOnZhcg0KK3JhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIxIi8+IGFuZCA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIiBzdWI9IjIiLz4NCithcmUgZ3JvdXBhYmxlPC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorDQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+VGhlIGVtcHR5IGNvbnRlbnQtdHlwZSBpcyBncm91cGFibGUgd2l0aCBhbnl0aGluZy4gIEluIGFkZGl0aW9uLA0KK3RoZSBjb21wbGV4IGNvbnRlbnQtdHlwZSBpcyBncm91cGFibGUgd2l0aCB0aGUgY29tcGxleCBjb250ZW50LXR5cGUuIFRoZQ0KK2ZvbGxvd2luZyBydWxlcyBmb3JtYWxpemUgdGhpcy48L3BhcmE+DQorDQorPHA6cHJvb2ZTeXN0ZW0+DQorPHA6cnVsZSBuYW1lPSJncm91cCBlbXB0eSAxIj4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJncm91cGFibGUiPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eSIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpydWxlPg0KKzxwOnJ1bGUgbmFtZT0iZ3JvdXAgZW1wdHkgMiI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iZ3JvdXBhYmxlIj4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIvPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6cnVsZT4NCis8cDpydWxlIG5hbWU9Imdyb3VwIGNvbXBsZXgiPg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9Imdyb3VwYWJsZSI+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9ImNvbXBsZXgiLz4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0iY29tcGxleCIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6cnVsZT4NCis8L3A6cHJvb2ZTeXN0ZW0+DQorDQorPHBhcmE+U29tZSBwYXR0ZXJucyBoYXZlIGEgY29udGVudC10eXBlLiBXZSB1c2UgdGhlIGZvbGxvd2luZw0KK2FkZGl0aW9uYWwgbm90YXRpb24uPC9wYXJhPg0KKw0KKzx2YXJpYWJsZWxpc3Q+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvdGVybT4NCis8bGlzdGl0ZW0+PHBhcmE+YXNzZXJ0cyB0aGF0IHBhdHRlcm4gPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIi8+IGhhcw0KK2NvbnRlbnQtdHlwZSA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIi8+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorDQorPHZhcmxpc3RlbnRyeT48dGVybT4NCisgIDxwOmZ1bmN0aW9uIG5hbWU9Im1heCI+DQorICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiIHN1Yj0iMSIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIiBzdWI9IjIiLz4NCisgIDwvcDpmdW5jdGlvbj4NCis8L3Rlcm0+DQorPGxpc3RpdGVtPjxwYXJhPnJldHVybnMgdGhlIG1heGltdW0gb2YgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSINCitzdWI9IjEiLz4gYW5kIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiIHN1Yj0iMiIvPiB3aGVyZSB0aGUNCitjb250ZW50LXR5cGVzIGluIGluY3JlYXNpbmcgb3JkZXIgYXJlIDxwOmZ1bmN0aW9uIG5hbWU9ImVtcHR5Ii8+LA0KKzxwOmZ1bmN0aW9uIG5hbWU9ImNvbXBsZXgiLz4sIDxwOmZ1bmN0aW9uDQorbmFtZT0ic2ltcGxlIi8+PC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorDQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+VGhlIGZvbGxvd2luZyBydWxlcyBkZWZpbmUgd2hlbiBhIHBhdHRlcm4gaGFzIGEgY29udGVudC10eXBlIGFuZCwNCitpZiBzbywgd2hhdCBpdCBpcy48L3BhcmE+DQorDQorPHA6cHJvb2ZTeXN0ZW0+DQorPHA6cnVsZSBuYW1lPSJ2YWx1ZSI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDplbGVtZW50IG5hbWU9InZhbHVlIj4NCisgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0iZGF0YXR5cGVMaWJyYXJ5Ij4NCisJPHA6dmFyIHJhbmdlPSJ1cmkiIHN1Yj0iMSIvPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9InR5cGUiPg0KKwk8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5zIj4NCisJPHA6dmFyIHJhbmdlPSJ1cmkiIHN1Yj0iMiIvPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPHA6dmFyIHJhbmdlPSJzdHJpbmciLz4NCisgICAgPC9wOmVsZW1lbnQ+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9InNpbXBsZSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6cnVsZT4NCisNCis8cDpydWxlIG5hbWU9ImRhdGEgMSI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKyAgICAgIDxwOmF0dHJpYnV0ZSBuYW1lPSJkYXRhdHlwZUxpYnJhcnkiPg0KKwk8cDp2YXIgcmFuZ2U9InVyaSIvPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9InR5cGUiPg0KKwk8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXJhbXMiLz4NCisgICAgPC9wOmVsZW1lbnQ+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9InNpbXBsZSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6cnVsZT4NCisNCis8cDpydWxlIG5hbWU9ImRhdGEgMiI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9ImRhdGF0eXBlTGlicmFyeSI+DQorCTxwOnZhciByYW5nZT0idXJpIi8+DQorICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgICA8cDphdHRyaWJ1dGUgbmFtZT0idHlwZSI+DQorCTxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgICAgPC9wOmF0dHJpYnV0ZT4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhcmFtcyIvPg0KKyAgICAgIDxwOmVsZW1lbnQgbmFtZT0iZXhjZXB0Ij4NCisgICAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICAgIDwvcDplbGVtZW50Pg0KKyAgICA8L3A6ZWxlbWVudD4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0ic2ltcGxlIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpydWxlPg0KKw0KKzxwOnJ1bGUgbmFtZT0ibGlzdCI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDplbGVtZW50IG5hbWU9Imxpc3QiPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6ZWxlbWVudD4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0ic2ltcGxlIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpydWxlPg0KKw0KKzxwOnJ1bGUgbmFtZT0idGV4dCI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDplbGVtZW50IG5hbWU9InRleHQiLz4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0iY29tcGxleCIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6cnVsZT4NCisNCis8cDpydWxlIG5hbWU9InJlZiI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDplbGVtZW50IG5hbWU9InJlZiI+DQorICAgICAgPHA6YXR0cmlidXRlIG5hbWU9Im5hbWUiPg0KKwk8cDp2YXIgcmFuZ2U9Im5jbmFtZSIvPg0KKyAgICAgIDwvcDphdHRyaWJ1dGU+DQorICAgIDwvcDplbGVtZW50Pg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJjb21wbGV4Ii8+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpydWxlPg0KKw0KKzxwOnJ1bGUgbmFtZT0iZW1wdHkiPg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImNvbnRlbnRUeXBlIj4NCisgICAgPHA6ZWxlbWVudCBuYW1lPSJlbXB0eSIvPg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJlbXB0eSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCis8L3A6cnVsZT4NCisNCis8cDpydWxlIG5hbWU9ImF0dHJpYnV0ZSI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0iYXR0cmlidXRlIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9Im5hbWVDbGFzcyIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8L3A6ZWxlbWVudD4NCisgICAgPHA6ZnVuY3Rpb24gbmFtZT0iZW1wdHkiLz4NCisgIDwvcDpqdWRnZW1lbnQ+DQorPC9wOnJ1bGU+DQorDQorPHA6cnVsZSBuYW1lPSJncm91cCI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMSIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIiBzdWI9IjEiLz4NCisgIDwvcDpqdWRnZW1lbnQ+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iY29udGVudFR5cGUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMiIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIiBzdWI9IjIiLz4NCisgIDwvcDpqdWRnZW1lbnQ+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iZ3JvdXBhYmxlIj4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIxIi8+DQorICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiIHN1Yj0iMiIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0iZ3JvdXAiPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIiBzdWI9IjIiLz4NCisgICAgPC9wOmVsZW1lbnQ+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9Im1heCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIyIi8+DQorICAgIDwvcDpmdW5jdGlvbj4NCisgIDwvcDpqdWRnZW1lbnQ+DQorPC9wOnJ1bGU+DQorDQorPHA6cnVsZSBuYW1lPSJpbnRlcmxlYXZlIj4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIxIi8+DQorICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiIHN1Yj0iMSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIyIi8+DQorICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiIHN1Yj0iMiIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJncm91cGFibGUiPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIiBzdWI9IjEiLz4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIyIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImNvbnRlbnRUeXBlIj4NCisgICAgPHA6ZWxlbWVudCBuYW1lPSJpbnRlcmxlYXZlIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIyIi8+DQorICAgIDwvcDplbGVtZW50Pg0KKyAgICA8cDpmdW5jdGlvbiBuYW1lPSJtYXgiPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiIHN1Yj0iMSIvPg0KKyAgICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiIHN1Yj0iMiIvPg0KKyAgICA8L3A6ZnVuY3Rpb24+DQorICA8L3A6anVkZ2VtZW50Pg0KKzwvcDpydWxlPg0KKw0KKzxwOnJ1bGUgbmFtZT0ib25lT3JNb3JlIj4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9Imdyb3VwYWJsZSI+DQorICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiLz4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCisgIDxwOmp1ZGdlbWVudCBuYW1lPSJjb250ZW50VHlwZSI+DQorICAgIDxwOmVsZW1lbnQgbmFtZT0ib25lT3JNb3JlIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgPC9wOmVsZW1lbnQ+DQorICAgIDxwOnZhciByYW5nZT0iY29udGVudFR5cGUiLz4NCisgIDwvcDpqdWRnZW1lbnQ+DQorPC9wOnJ1bGU+DQorDQorPHA6cnVsZSBuYW1lPSJjaG9pY2UiPg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImNvbnRlbnRUeXBlIj4NCisgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIiBzdWI9IjEiLz4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIxIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImNvbnRlbnRUeXBlIj4NCisgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIiBzdWI9IjIiLz4NCisgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIyIi8+DQorICA8L3A6anVkZ2VtZW50Pg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImNvbnRlbnRUeXBlIj4NCisgICAgPHA6ZWxlbWVudCBuYW1lPSJjaG9pY2UiPg0KKyAgICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJwYXR0ZXJuIiBzdWI9IjIiLz4NCisgICAgPC9wOmVsZW1lbnQ+DQorICAgIDxwOmZ1bmN0aW9uIG5hbWU9Im1heCI+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIxIi8+DQorICAgICAgPHA6dmFyIHJhbmdlPSJjb250ZW50VHlwZSIgc3ViPSIyIi8+DQorICAgIDwvcDpmdW5jdGlvbj4NCisgIDwvcDpqdWRnZW1lbnQ+DQorPC9wOnJ1bGU+DQorDQorPC9wOnByb29mU3lzdGVtPg0KKw0KKzxub3RlPjxwYXJhPlRoZSBhbnRlY2VkZW50IGluIHRoZSAoZGF0YSAyKSBydWxlIGFib3ZlIGlzIGluIGZhY3QNCityZWR1bmRhbnQgYmVjYXVzZSBvZiB0aGUgcHJvaGliaXRlZCBwYXRocyBpbiA8eHJlZg0KK2xpbmtlbmQ9ImNvbnRleHQtZGF0YS1leGNlcHQiLz4uPC9wYXJhPjwvbm90ZT4NCisNCis8cGFyYT5Ob3cgd2UgY2FuIGRlc2NyaWJlIHRoZSByZXN0cmljdGlvbi4gV2UgdXNlIHRoZSBmb2xsb3dpbmcNCitub3RhdGlvbi48L3BhcmE+DQorDQorPHZhcmlhYmxlbGlzdD4NCisNCis8dmFybGlzdGVudHJ5Pjx0ZXJtPg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImluY29ycmVjdFNjaGVtYSIvPg0KKzwvdGVybT4NCis8bGlzdGl0ZW0+PHBhcmE+YXNzZXJ0cyB0aGF0IHRoZSBzY2hlbWEgaXMgaW5jb3JyZWN0PC9wYXJhPjwvbGlzdGl0ZW0+DQorPC92YXJsaXN0ZW50cnk+DQorDQorPC92YXJpYWJsZWxpc3Q+DQorDQorPHBhcmE+QWxsIHBhdHRlcm5zIG9jY3VycmluZyBhcyB0aGUgY29udGVudCBvZiBhbiBlbGVtZW50IHBhdHRlcm4gbXVzdA0KK2hhdmUgYSBjb250ZW50LXR5cGUuPC9wYXJhPg0KKw0KKzxwOnByb29mU3lzdGVtPg0KKw0KKzxwOnJ1bGUgbmFtZT0iZWxlbWVudCI+DQorICA8cDpqdWRnZW1lbnQgbmFtZT0iYmluZCI+DQorICAgIDxwOnZhciByYW5nZT0ibmNuYW1lIi8+DQorICAgIDxwOnZhciByYW5nZT0ibmFtZUNsYXNzIi8+DQorICAgIDxwOnZhciByYW5nZT0icGF0dGVybiIvPg0KKyAgPC9wOmp1ZGdlbWVudD4NCisgIDxwOm5vdD4NCisgICAgPHA6anVkZ2VtZW50IG5hbWU9ImNvbnRlbnRUeXBlIj4NCisgICAgICA8cDp2YXIgcmFuZ2U9InBhdHRlcm4iLz4NCisgICAgICA8cDp2YXIgcmFuZ2U9ImNvbnRlbnRUeXBlIi8+DQorICAgIDwvcDpqdWRnZW1lbnQ+DQorICA8L3A6bm90Pg0KKyAgPHA6anVkZ2VtZW50IG5hbWU9ImluY29ycmVjdFNjaGVtYSIvPg0KKzwvcDpydWxlPg0KKw0KKzwvcDpwcm9vZlN5c3RlbT4NCisNCis8L3NlY3Rpb24+DQorDQorPHNlY3Rpb24gaWQ9ImF0dHJpYnV0ZS1yZXN0cmljdGlvbnMiPg0KKzx0aXRsZT5SZXN0cmljdGlvbnMgb24gYXR0cmlidXRlczwvdGl0bGU+DQorDQorPHBhcmE+RHVwbGljYXRlIGF0dHJpYnV0ZXMgYXJlIG5vdCBhbGxvd2VkLiAgTW9yZSBwcmVjaXNlbHksIGZvciBhDQorcGF0dGVybiA8bGl0ZXJhbD4mbHQ7Z3JvdXA+IDxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+DQorPHJlcGxhY2VhYmxlPnAyPC9yZXBsYWNlYWJsZT4gJmx0Oy9ncm91cD48L2xpdGVyYWw+IG9yDQorPGxpdGVyYWw+Jmx0O2ludGVybGVhdmU+IDxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+DQorPHJlcGxhY2VhYmxlPnAyPC9yZXBsYWNlYWJsZT4gJmx0Oy9pbnRlcmxlYXZlPjwvbGl0ZXJhbD4sIHRoZXJlIG11c3QNCitub3QgYmUgYSBuYW1lIHRoYXQgYmVsb25ncyB0byBib3RoIHRoZSBuYW1lIGNsYXNzIG9mIGFuDQorPGxpdGVyYWw+YXR0cmlidXRlPC9saXRlcmFsPiBwYXR0ZXJuIG9jY3VycmluZyBpbg0KKzxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+IGFuZCB0aGUgbmFtZSBjbGFzcyBvZiBhbg0KKzxsaXRlcmFsPmF0dHJpYnV0ZTwvbGl0ZXJhbD4gcGF0dGVybiBvY2N1cnJpbmcgaW4NCis8cmVwbGFjZWFibGU+cDI8L3JlcGxhY2VhYmxlPi4gQSBwYXR0ZXJuIDxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+DQoraXMgZGVmaW5lZCB0byA8Zmlyc3R0ZXJtPm9jY3VyIGluPC9maXJzdHRlcm0+IGEgcGF0dGVybg0KKzxyZXBsYWNlYWJsZT5wMjwvcmVwbGFjZWFibGU+IGlmPC9wYXJhPg0KKw0KKzxpdGVtaXplZGxpc3Q+DQorDQorPGxpc3RpdGVtPjxwYXJhPjxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+IGlzDQorPHJlcGxhY2VhYmxlPnAyPC9yZXBsYWNlYWJsZT4sIG9yPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPjxyZXBsYWNlYWJsZT5wMjwvcmVwbGFjZWFibGU+IGlzIGENCis8bGl0ZXJhbD5jaG9pY2U8L2xpdGVyYWw+LCA8bGl0ZXJhbD5pbnRlcmxlYXZlPC9saXRlcmFsPiwNCis8bGl0ZXJhbD5ncm91cDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+b25lT3JNb3JlPC9saXRlcmFsPiBlbGVtZW50IGFuZA0KKzxyZXBsYWNlYWJsZT5wMTwvcmVwbGFjZWFibGU+IG9jY3VycyBpbiBvbmUgb3IgbW9yZSBjaGlsZHJlbiBvZg0KKzxyZXBsYWNlYWJsZT5wMjwvcmVwbGFjZWFibGU+LjwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzxwYXJhPkF0dHJpYnV0ZXMgdXNpbmcgaW5maW5pdGUgbmFtZSBjbGFzc2VzIG11c3QgYmUgcmVwZWF0ZWQuICBNb3JlDQorcHJlY2lzZWx5LCBhbiA8bGl0ZXJhbD5hdHRyaWJ1dGU8L2xpdGVyYWw+IGVsZW1lbnQgdGhhdCBoYXMgYW4NCis8bGl0ZXJhbD5hbnlOYW1lPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5uc05hbWU8L2xpdGVyYWw+IGRlc2NlbmRhbnQNCitlbGVtZW50IG11c3QgaGF2ZSBhIDxsaXRlcmFsPm9uZU9yTW9yZTwvbGl0ZXJhbD4gYW5jZXN0b3INCitlbGVtZW50LjwvcGFyYT4NCisNCis8bm90ZT48cGFyYT5UaGlzIHJlc3RyaWN0aW9uIGlzIG5lY2Vzc2FyeSBmb3IgY2xvc3VyZSB1bmRlcg0KK25lZ2F0aW9uLjwvcGFyYT48L25vdGU+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxzZWN0aW9uIGlkPSJpbnRlcmxlYXZlLXJlc3RyaWN0aW9ucyI+DQorPHRpdGxlPlJlc3RyaWN0aW9ucyBvbiA8bGl0ZXJhbD5pbnRlcmxlYXZlPC9saXRlcmFsPjwvdGl0bGU+DQorDQorPHBhcmE+Rm9yIGEgcGF0dGVybiA8bGl0ZXJhbD4mbHQ7aW50ZXJsZWF2ZT4NCis8cmVwbGFjZWFibGU+cDE8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGU+cDI8L3JlcGxhY2VhYmxlPg0KKyZsdDsvaW50ZXJsZWF2ZT48L2xpdGVyYWw+LDwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT50aGVyZSBtdXN0IG5vdCBiZSBhIG5hbWUgdGhhdCBiZWxvbmdzIHRvIGJvdGggdGhlIG5hbWUNCitjbGFzcyBvZiBhbiA8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPiBwYXR0ZXJuIHJlZmVyZW5jZWQgYnkgYQ0KKzxsaXRlcmFsPnJlZjwvbGl0ZXJhbD4gcGF0dGVybiBvY2N1cnJpbmcgaW4NCis8cmVwbGFjZWFibGU+cDE8L3JlcGxhY2VhYmxlPiBhbmQgdGhlIG5hbWUgY2xhc3Mgb2YgYW4NCis8bGl0ZXJhbD5lbGVtZW50PC9saXRlcmFsPiBwYXR0ZXJuIHJlZmVyZW5jZWQgYnkgYQ0KKzxsaXRlcmFsPnJlZjwvbGl0ZXJhbD4gcGF0dGVybiBvY2N1cnJpbmcgaW4NCis8cmVwbGFjZWFibGU+cDI8L3JlcGxhY2VhYmxlPiwgYW5kPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmEgPGxpdGVyYWw+dGV4dDwvbGl0ZXJhbD4gcGF0dGVybiBtdXN0IG5vdCBvY2N1ciBpbg0KK2JvdGggPHJlcGxhY2VhYmxlPnAxPC9yZXBsYWNlYWJsZT4gYW5kDQorPHJlcGxhY2VhYmxlPnAyPC9yZXBsYWNlYWJsZT4uPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPC9pdGVtaXplZGxpc3Q+DQorDQorPHBhcmE+PHhyZWYgbGlua2VuZD0iYXR0cmlidXRlLXJlc3RyaWN0aW9ucyIvPiBkZWZpbmVzIHdoZW4gb25lDQorcGF0dGVybiBpcyBjb25zaWRlcmVkIHRvIG9jY3VyIGluIGFub3RoZXIgcGF0dGVybi48L3BhcmE+DQorDQorPC9zZWN0aW9uPg0KKw0KKzwvc2VjdGlvbj4NCisNCis8c2VjdGlvbiBpZD0iY29uZm9ybWFuY2UiPg0KKzx0aXRsZT5Db25mb3JtYW5jZTwvdGl0bGU+DQorDQorPHBhcmE+QSBjb25mb3JtaW5nIFJFTEFYIE5HIHZhbGlkYXRvciBtdXN0IGJlIGFibGUgdG8gZGV0ZXJtaW5lIGZvcg0KK2FueSBYTUwgZG9jdW1lbnQgd2hldGhlciBpdCBpcyBhIGNvcnJlY3QgUkVMQVggTkcgc2NoZW1hLiAgQQ0KK2NvbmZvcm1pbmcgUkVMQVggTkcgdmFsaWRhdG9yIG11c3QgYmUgYWJsZSB0byBkZXRlcm1pbmUgZm9yIGFueSBYTUwNCitkb2N1bWVudCBhbmQgZm9yIGFueSBjb3JyZWN0IFJFTEFYIE5HIHNjaGVtYSB3aGV0aGVyIHRoZSBkb2N1bWVudCBpcw0KK3ZhbGlkIHdpdGggcmVzcGVjdCB0byB0aGUgc2NoZW1hLjwvcGFyYT4NCisNCis8cGFyYT5Ib3dldmVyLCB0aGUgcmVxdWlyZW1lbnRzIGluIHRoZSBwcmVjZWRpbmcgcGFyYWdyYXBoIGRvIG5vdA0KK2FwcGx5IGlmIHRoZSBzY2hlbWEgdXNlcyBhIGRhdGF0eXBlIGxpYnJhcnkgdGhhdCB0aGUgdmFsaWRhdG9yIGRvZXMNCitub3Qgc3VwcG9ydC4gIEEgY29uZm9ybWluZyBSRUxBWCBORyB2YWxpZGF0b3IgaXMgb25seSByZXF1aXJlZCB0bw0KK3N1cHBvcnQgdGhlIGJ1aWx0LWluIGRhdGF0eXBlIGxpYnJhcnkgZGVzY3JpYmVkIGluIDx4cmVmDQorbGlua2VuZD0iYnVpbHQtaW4tZGF0YXR5cGUiLz4uICBBIHZhbGlkYXRvciB0aGF0IGNsYWltcyBjb25mb3JtYW5jZSB0bw0KK1JFTEFYIE5HIHNob3VsZCBkb2N1bWVudCB3aGljaCBkYXRhdHlwZSBsaWJyYXJpZXMgaXQgc3VwcG9ydHMuICBUaGUNCityZXF1aXJlbWVudHMgaW4gdGhlIHByZWNlZGluZyBwYXJhZ3JhcGggYWxzbyBkbyBub3QgYXBwbHkgaWYgdGhlDQorc2NoZW1hIGluY2x1ZGVzIDxsaXRlcmFsPmV4dGVybmFsUmVmPC9saXRlcmFsPiBvcg0KKzxsaXRlcmFsPmluY2x1ZGU8L2xpdGVyYWw+IGVsZW1lbnRzIGFuZCB0aGUgdmFsaWRhdG9yIGlzIHVuYWJsZSB0bw0KK3JldHJpZXZlIHRoZSByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IHRoZSBVUkkgb3IgaXMgdW5hYmxlIHRvIGNvbnN0cnVjdA0KK2FuIGVsZW1lbnQgZnJvbSB0aGUgcmV0cmlldmVkIHJlc291cmNlLiAgQSB2YWxpZGF0b3IgdGhhdCBjbGFpbXMNCitjb25mb3JtYW5jZSB0byBSRUxBWCBORyBzaG91bGQgZG9jdW1lbnQgaXRzIGNhcGFiaWxpdGllcyBmb3IgaGFuZGxpbmcNCitVUkkgcmVmZXJlbmNlcy48L3BhcmE+DQorDQorPC9zZWN0aW9uPg0KKw0KKzxhcHBlbmRpeD4NCis8dGl0bGU+UkVMQVggTkcgc2NoZW1hIGZvciBSRUxBWCBORzwvdGl0bGU+DQorDQorPHJuZ3JlZiBzcmM9InJlbGF4bmcucm5nIi8+DQorDQorPC9hcHBlbmRpeD4NCisNCis8YXBwZW5kaXg+DQorPHRpdGxlPkNoYW5nZXMgc2luY2UgdmVyc2lvbiAwLjk8L3RpdGxlPg0KKw0KKzxwYXJhPlRoZSBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvbiByZWxhdGl2ZSB0byB2ZXJzaW9uIDAuOQ0KK2FyZSBhcyBmb2xsb3dzOjwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKw0KKzxsaXN0aXRlbT48cGFyYT5pbiB0aGUgbmFtZXNwYWNlIFVSSSwgPGxpdGVyYWw+MC45PC9saXRlcmFsPiBoYXMgYmVlbg0KK2NoYW5nZWQgdG8gPGxpdGVyYWw+MS4wPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5kYXRhL2V4Y2VwdC8vZW1wdHk8L2xpdGVyYWw+IGhhcyBiZWVuIGFkZGVkDQorYXMgYSBwcm9oaWJpdGVkIHBhdGggKHNlZSA8eHJlZg0KK2xpbmtlbmQ9ImNvbnRleHQtZGF0YS1leGNlcHQiLz4pPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPnN0YXJ0Ly9lbXB0eTwvbGl0ZXJhbD4gaGFzIGJlZW4gYWRkZWQNCithcyBhIHByb2hpYml0ZWQgcGF0aCAoc2VlIDx4cmVmDQorbGlua2VuZD0iY29udGV4dC1zdGFydCIvPik8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+PHhyZWYgbGlua2VuZD0ibnVtYmVyLWNoaWxkLWVsZW1lbnRzIi8+IG5vdyBzcGVjaWZpZXMgaG93IGENCis8bGl0ZXJhbD5saXN0PC9saXRlcmFsPiBlbGVtZW50IHdpdGggbW9yZSB0aGFuIG9uZSBjaGlsZCBlbGVtZW50IGlzDQordHJhbnNmb3JtZWQ8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+PHhyZWYgbGlua2VuZD0ibm90QWxsb3dlZCIvPiBub3cgc3BlY2lmaWVzIGhvdyBhDQorPGxpdGVyYWw+bm90QWxsb3dlZDwvbGl0ZXJhbD4gZWxlbWVudCBvY2N1cnJpbmcgaW4gYW4NCis8bGl0ZXJhbD5leGNlcHQ8L2xpdGVyYWw+IGVsZW1lbnQgaXMgdHJhbnNmb3JtZWQ8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+YWx0aG91Z2ggYSByZWxhdGl2ZSBVUkkgaXMgbm90IGFsbG93ZWQgYXMgdGhlIHZhbHVlIG9mDQordGhlIDxsaXRlcmFsPm5zPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+ZGF0YXR5cGVMaWJyYXJ5PC9saXRlcmFsPg0KK2F0dHJpYnV0ZXMsIGFuIGVtcHR5IHN0cmluZyBpcyBhbGxvd2VkIChzZWUgPHhyZWYNCitsaW5rZW5kPSJmdWxsLXN5bnRheCIvPik8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+dGhlIHJlbW92YWwgb2YgdW5yZWFjaGFibGUgZGVmaW5pdGlvbnMgaW4gPHhyZWYNCitsaW5rZW5kPSJkZWZpbmUtcmVmIi8+IGlzIG5vdyBjb3JyZWN0bHkgc3BlY2lmaWVkPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPjx4cmVmIGxpbmtlbmQ9Im5vdEFsbG93ZWQiLz4gbm93IHNwZWNpZmllcyB0aGF0DQorPGxpdGVyYWw+ZGVmaW5lPC9saXRlcmFsPiBlbGVtZW50cyB0aGF0IGFyZSBubyBsb25nZXIgcmVhY2hhYmxlIGFyZQ0KK3JlbW92ZWQ8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+PHhyZWYgbGlua2VuZD0iY29uc3RyYWludHMiLz4gaGFzIGJlZW4gYWRkZWQ7IHRoZQ0KK3Jlc3RyaWN0aW9ucyBvbiB0aGUgY29udGVudHMgb2YgPGxpdGVyYWw+ZXhjZXB0PC9saXRlcmFsPiBpbiBuYW1lDQorY2xhc3NlcyB0aGF0IGFyZSBub3cgc3BlY2lmaWVkIGluIHRoZSBuZXdseSBhZGRlZCBzZWN0aW9uIHdlcmUNCitwcmV2aW91c2x5IHNwZWNpZmllZCBpbiBhIHN1YnNlY3Rpb24gb2YgPHhyZWYNCitsaW5rZW5kPSJjb250ZXh0dWFsLXJlc3RyaWN0aW9uIi8+LCB3aGljaCBoYXMgYmVlbg0KK3JlbW92ZWQ8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+dGhlIHRyZWF0bWVudCBvZiBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgdmFsdWVzIHRoYXQNCitjb25zaXN0IG9ubHkgb2Ygd2hpdGVzcGFjZSBoYXMgYmVlbiByZWZpbmVkIChzZWUgPHhyZWYNCitsaW5rZW5kPSJlbGVtZW50LXBhdHRlcm4iLz4gYW5kIDx4cmVmDQorbGlua2VuZD0iZGF0YS1wYXR0ZXJuIi8+KTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzxsaXN0aXRlbT48cGFyYT5hdHRyaWJ1dGVzIHdpdGggaW5maW5pdGUgbmFtZSBjbGFzc2VzIGFyZSBub3cgcmVxdWlyZWQNCit0byBiZSByZXBlYXRlZCAoc2VlIDx4cmVmDQorbGlua2VuZD0iYXR0cmlidXRlLXJlc3RyaWN0aW9ucyIvPik8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+cmVzdHJpY3Rpb25zIGhhdmUgYmVlbiBpbXBvc2VkIG9uDQorPGxpdGVyYWw+aW50ZXJsZWF2ZTwvbGl0ZXJhbD4gKHNlZSA8eHJlZg0KK2xpbmtlbmQ9ImludGVybGVhdmUtcmVzdHJpY3Rpb25zIi8+KTsgPGxpdGVyYWw+bGlzdC8vaW50ZXJsZWF2ZTwvbGl0ZXJhbD4NCitoYXMgYmVlbiBhZGRlZCBhcyBhIHByb2hpYml0ZWQgcGF0aCAoc2VlIDx4cmVmDQorbGlua2VuZD0ibGlzdC1yZXN0cmljdGlvbnMiLz4pPC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPnNvbWUgb2YgdGhlIHByb2hpYml0ZWQgcGF0aHMgaW4gPHhyZWYNCitsaW5rZW5kPSJjb250ZXh0dWFsLXJlc3RyaWN0aW9uIi8+IGhhdmUgYmVlbiBjb3JyZWN0ZWQgdG8gdXNlDQorPGxpdGVyYWw+cmVmPC9saXRlcmFsPiByYXRoZXIgdGhhbg0KKzxsaXRlcmFsPmVsZW1lbnQ8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+DQorDQorPGxpc3RpdGVtPjxwYXJhPmFuIGVycm9yIGluIHRoZSBpbmZlcmVuY2UgcnVsZSAodGV4dCAxKSBpbiA8eHJlZg0KK2xpbmtlbmQ9InRleHQtcGF0dGVybiIvPiBoYXMgYmVlbiBjb3JyZWN0ZWQ8L3BhcmE+PC9saXN0aXRlbT4NCisNCis8bGlzdGl0ZW0+PHBhcmE+dGhlIHZhbHVlIG9mIHRoZSA8bGl0ZXJhbD5uczwvbGl0ZXJhbD4gYXR0cmlidXRlIGlzDQorbm93IHVuY29uc3RyYWluZWQgKHNlZSA8eHJlZg0KK2xpbmtlbmQ9ImZ1bGwtc3ludGF4Ii8+KTwvcGFyYT48L2xpc3RpdGVtPg0KKw0KKzwvaXRlbWl6ZWRsaXN0Pg0KKw0KKzwvYXBwZW5kaXg+DQorDQorPGFwcGVuZGl4Pg0KKzx0aXRsZT5SRUxBWCBORyBUQyAoTm9uLU5vcm1hdGl2ZSk8L3RpdGxlPg0KKw0KKzxwYXJhPlRoaXMgc3BlY2lmaWNhdGlvbiB3YXMgcHJlcGFyZWQgYW5kIGFwcHJvdmVkIGZvciBwdWJsaWNhdGlvbiBieQ0KK3RoZSBSRUxBWCBORyBUQy4gVGhlIGN1cnJlbnQgbWVtYmVycyBvZiB0aGUgVEMgYXJlOjwvcGFyYT4NCisNCis8aXRlbWl6ZWRsaXN0Pg0KKzxsaXN0aXRlbT48cGFyYT5GYWJpbyBBcmNpbmllZ2FzPC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPkphbWVzIENsYXJrPC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPk1pa2UgRml0emdlcmFsZDwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT5LQVdBR1VDSEkgS29oc3VrZTwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT5Kb3NoIEx1YmVsbDwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT5NVVJBVEEgTWFrb3RvPC9wYXJhPjwvbGlzdGl0ZW0+DQorPGxpc3RpdGVtPjxwYXJhPk5vcm1hbiBXYWxzaDwvcGFyYT48L2xpc3RpdGVtPg0KKzxsaXN0aXRlbT48cGFyYT5EYXZpZCBXZWJiZXI8L3BhcmE+PC9saXN0aXRlbT4NCis8L2l0ZW1pemVkbGlzdD4NCisNCis8L2FwcGVuZGl4Pg0KKw0KKzxiaWJsaW9ncmFwaHk+PHRpdGxlPlJlZmVyZW5jZXM8L3RpdGxlPg0KKw0KKzxiaWJsaW9kaXY+PHRpdGxlPk5vcm1hdGl2ZTwvdGl0bGU+DQorDQorPGJpYmxpb21peGVkIGlkPSJ4bWwtcmVjIj48YWJicmV2PlhNTCAxLjA8L2FiYnJldj5UaW0gQnJheSwNCitKZWFuIFBhb2xpLCBhbmQNCitDLiBNLiBTcGVyYmVyZy1NY1F1ZWVuLCBFdmUgTWFsZXIsIGVkaXRvcnMuDQorPGNpdGV0aXRsZT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj5FeHRlbnNpYmxlIE1hcmt1cA0KK0xhbmd1YWdlIChYTUwpIDEuMCBTZWNvbmQgRWRpdGlvbjwvdWxpbms+PC9jaXRldGl0bGU+Lg0KK1czQyAoV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSksIDIwMDAuPC9iaWJsaW9taXhlZD4NCisNCis8YmlibGlvbWl4ZWQgaWQ9InhtbC1uYW1lcyI+PGFiYnJldj5YTUwgTmFtZXNwYWNlczwvYWJicmV2PlRpbSBCcmF5LA0KK0RhdmUgSG9sbGFuZGVyLA0KK2FuZCBBbmRyZXcgTGF5bWFuLCBlZGl0b3JzLg0KKzxjaXRldGl0bGU+PHVsaW5rIHVybD0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC1uYW1lcy8iPk5hbWVzcGFjZXMgaW4NCitYTUw8L3VsaW5rPjwvY2l0ZXRpdGxlPi4NCitXM0MgKFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0pLCAxOTk5LjwvYmlibGlvbWl4ZWQ+DQorDQorPGJpYmxpb21peGVkIGlkPSJ4bGluayI+PGFiYnJldj5YTGluazwvYWJicmV2PlN0ZXZlIERlUm9zZSwgRXZlIE1hbGVyDQorYW5kIERhdmlkIE9yY2hhcmQsIGVkaXRvcnMuDQorPGNpdGV0aXRsZT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bGluay8iPlhNTCBMaW5raW5nDQorTGFuZ3VhZ2UgKFhMaW5rKSBWZXJzaW9uIDEuMDwvdWxpbms+PC9jaXRldGl0bGU+Lg0KK1czQyAoV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSksIDIwMDEuPC9iaWJsaW9taXhlZD4NCisNCis8YmlibGlvbWl4ZWQgaWQ9ImluZm9zZXQiPjxhYmJyZXY+WE1MIEluZm9zZXQ8L2FiYnJldj5Kb2huIENvd2FuLCBSaWNoYXJkIFRvYmluLA0KK2VkaXRvcnMuDQorPGNpdGV0aXRsZT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtaW5mb3NldC8iPlhNTA0KK0luZm9ybWF0aW9uIFNldDwvdWxpbms+PC9jaXRldGl0bGU+Lg0KK1czQyAoV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSksIDIwMDEuPC9iaWJsaW9taXhlZD4NCisNCis8YmlibGlvbWl4ZWQgaWQ9InJmYzIzOTYiPjxhYmJyZXY+UkZDIDIzOTY8L2FiYnJldj5ULiBCZXJuZXJzLUxlZSwgUi4gRmllbGRpbmcsIEwuIE1hc2ludGVyLg0KKzxjaXRldGl0bGU+PHVsaW5rIHVybD0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQiID5SRkMgMjM5NjoNCitVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIChVUkkpOiBHZW5lcmljDQorU3ludGF4PC91bGluaz48L2NpdGV0aXRsZT4uDQorSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSkuIDE5OTguPC9iaWJsaW9taXhlZD4NCisNCis8YmlibGlvbWl4ZWQgaWQ9InJmYzI3MzIiPjxhYmJyZXY+UkZDIDI3MzI8L2FiYnJldj5SLiBIaW5kZW4sIEIuIENhcnBlbnRlciwgTC4gTWFzaW50ZXIuDQorPGNpdGV0aXRsZT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyNzMyLnR4dCI+UkZDIDI3MzI6IEZvcm1hdCBmb3IgTGl0ZXJhbCBJUHY2IEFkZHJlc3NlcyBpbiBVUkwnczwvdWxpbms+PC9jaXRldGl0bGU+Lg0KK0lFVEYgKEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2UpLCAxOTk5LjwvYmlibGlvbWl4ZWQ+DQorDQorPGJpYmxpb21peGVkIGlkPSJyZmMzMDIzIj48YWJicmV2PlJGQyAzMDIzPC9hYmJyZXY+IE0uIE11cmF0YSwNCitTLiBTdC5MYXVyZW50LCBELiBLb2huLiAgPGNpdGV0aXRsZT48dWxpbmsNCit1cmw9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMwMjMudHh0Ij5SRkMgMzAyMzogWE1MIE1lZGlhDQorVHlwZXM8L3VsaW5rPjwvY2l0ZXRpdGxlPi4gSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSksDQorMjAwMS48L2JpYmxpb21peGVkPg0KKw0KKzwvYmlibGlvZGl2Pg0KKw0KKzxiaWJsaW9kaXY+PHRpdGxlPk5vbi1Ob3JtYXRpdmU8L3RpdGxlPg0KKw0KKzxiaWJsaW9taXhlZCBpZD0ieG1sc2NoZW1hLTIiPjxhYmJyZXY+VzNDIFhNTCBTY2hlbWEgRGF0YXR5cGVzPC9hYmJyZXY+UGF1bCBWLiBCaXJvbiwgQXNob2sgTWFsaG90cmEsIGVkaXRvcnMuDQorPGNpdGV0aXRsZT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWxzY2hlbWEtMi8iPlhNTCBTY2hlbWEgUGFydCAyOiBEYXRhdHlwZXM8L3VsaW5rPjwvY2l0ZXRpdGxlPi4NCitXM0MgKFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0pLCAyMDAxLjwvYmlibGlvbWl4ZWQ+DQorDQorPGJpYmxpb21peGVkIGlkPSJ0cmV4Ij48YWJicmV2PlRSRVg8L2FiYnJldj5KYW1lcyBDbGFyay4NCis8Y2l0ZXRpdGxlPjx1bGluayB1cmw9Imh0dHA6Ly93d3cudGhhaW9wZW5zb3VyY2UuY29tL3RyZXgvIj5UUkVYIC0gVHJlZSBSZWd1bGFyIEV4cHJlc3Npb25zIGZvciBYTUw8L3VsaW5rPjwvY2l0ZXRpdGxlPi4NCitUaGFpIE9wZW4gU291cmNlIFNvZnR3YXJlIENlbnRlciwgMjAwMS48L2JpYmxpb21peGVkPg0KKw0KKzxiaWJsaW9taXhlZCBpZD0icmVsYXgiPjxhYmJyZXY+UkVMQVg8L2FiYnJldj5NVVJBVEEgTWFrb3RvLg0KKzxjaXRldGl0bGU+PHVsaW5rIHVybD0iaHR0cDovL3d3dy54bWwuZ3IuanAvcmVsYXgvIj5SRUxBWCAoUmVndWxhcg0KK0xhbmd1YWdlIGRlc2NyaXB0aW9uIGZvciBYTUwpPC91bGluaz48L2NpdGV0aXRsZT4uICBJTlNUQUMNCisoSW5mb3JtYXRpb24gVGVjaG5vbG9neSBSZXNlYXJjaCBhbmQgU3RhbmRhcmRpemF0aW9uIENlbnRlciksIDIwMDEuPC9iaWJsaW9taXhlZD4NCisNCis8YmlibGlvbWl4ZWQgaWQ9InhzZmQiPjxhYmJyZXY+WE1MIFNjaGVtYSBGb3JtYWw8L2FiYnJldj5BbGxlbiBCcm93biwNCitNYXR0aGV3IEZ1Y2hzLCBKb25hdGhhbiBSb2JpZSwgUGhpbGlwIFdhZGxlciwgZWRpdG9ycy4NCis8Y2l0ZXRpdGxlPjx1bGluayB1cmw9Imh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS1mb3JtYWwvIj5YTUwgU2NoZW1hOiBGb3JtYWwgRGVzY3JpcHRpb248L3VsaW5rPjwvY2l0ZXRpdGxlPi4NCitXM0MgKFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0pLCAyMDAxLjwvYmlibGlvbWl4ZWQ+DQorDQorPGJpYmxpb21peGVkIGlkPSJ0dXRvcmlhbCI+PGFiYnJldj5UdXRvcmlhbDwvYWJicmV2PkphbWVzIENsYXJrLA0KK01ha290byBNVVJBVEEsIGVkaXRvcnMuICA8Y2l0ZXRpdGxlPjx1bGluaw0KK3VybD0iaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL3JlbGF4LW5nL3R1dG9yaWFsLmh0bWwiPlJFTEFYDQorTkcgVHV0b3JpYWw8L3VsaW5rPjwvY2l0ZXRpdGxlPi4gIE9BU0lTLCAyMDAxLjwvYmlibGlvbWl4ZWQ+DQorDQorPC9iaWJsaW9kaXY+DQorDQorPC9iaWJsaW9ncmFwaHk+DQorDQorPC9hcnRpY2xlPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3RhYmxlLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3RhYmxlLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTRlNjAzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdGFibGUucm5nCkBAIC0wLDAgKzEsMjEgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKzxkZWZpbmUgbmFtZT0iY2VsbC5jb250ZW50Ij4KKyAgPG5vdEFsbG93ZWQvPgorPC9kZWZpbmU+CisKKzxzdGFydD4KKyAgPGVsZW1lbnQgbmFtZT0idGFibGUiPgorICAgIDxvbmVPck1vcmU+CisgICAgICA8ZWxlbWVudCBuYW1lPSJ0ciI+CisgICAgICAgIDxvbmVPck1vcmU+CisJICA8ZWxlbWVudCBuYW1lPSJ0ZCI+CisJICAgIDxyZWYgbmFtZT0iY2VsbC5jb250ZW50Ii8+CisJICA8L2VsZW1lbnQ+CisgICAgICAgIDwvb25lT3JNb3JlPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvb25lT3JNb3JlPgorICA8L2VsZW1lbnQ+Cis8L3N0YXJ0PgorCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90ZXN0c3VpdGUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdGVzdHN1aXRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWE4ZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdGVzdHN1aXRlLnhtbApAQCAtMCwwICsxLDE3MDggQEAKKzx0ZXN0U3VpdGU+DQorPGF1dGhvcj5EYW5pZWwgVmVpbGxhcmQ8L2F1dGhvcj4NCis8ZW1haWw+ZGFuaWVsQHZlaWxsYXJkLmNvbTwvZW1haWw+DQorPGRvY3VtZW50YXRpb24+Rm9yIGxpYnhtbDIgaW1wbGVtZW50YXRpb24gb2YgUmVsYXggTkcgc3BlYy48L2RvY3VtZW50YXRpb24+DQorPHRlc3RTdWl0ZT4NCis8ZG9jdW1lbnRhdGlvbj5UZXN0IG9mIG5vZGUgbWF0Y2hlczwvZG9jdW1lbnRhdGlvbj4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxhbnlOYW1lPg0KKyAgICA8ZXhjZXB0Pg0KKyAgICAgIDxuc05hbWUgbnM9Imh0dHA6Ly9leGFtcGxlLm9yZyIvPg0KKyAgICA8L2V4Y2VwdD4NCisgIDwvYW55TmFtZT4NCisgIDxlbXB0eS8+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnLyIvPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28geG1sbnM9Imh0dHA6Ly9FWEFNUExFLk9SRyIvPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnIi8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxhOmZvbyB4bWxuczphPSJodHRwOi8vZXhhbXBsZS5vcmciLz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0idG9wIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGludGVybGVhdmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImZvbyIgbnM9Imh0dHA6Ly9leGFtcGxlLm9yZyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8ZWxlbWVudD4NCisgICAgICA8YW55TmFtZT4NCisJPGV4Y2VwdD4NCisJICA8bnNOYW1lIG5zPSJodHRwOi8vZXhhbXBsZS5vcmciLz4NCisJPC9leGNlcHQ+DQorICAgICAgPC9hbnlOYW1lPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvaW50ZXJsZWF2ZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzx0b3A+DQorPGZvby8+DQorPGJhci8+DQorPC90b3A+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzx0b3A+DQorPGZvbyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnIi8+DQorPGJhciB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnIi8+DQorPC90b3A+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8dG9wPg0KKzxmb28geG1sbnM9Imh0dHA6Ly9leGFtcGxlLm9yZyIvPg0KKzxiYXIvPg0KKzwvdG9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzx0b3A+DQorPGJhci8+DQorPGZvbyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCis8Zm9vIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmciLz4NCis8YmFyIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCis8YmFyIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5vcmcvIi8+DQorPGZvbyB4bWxucz0iaHR0cDovL2V4YW1wbGUub3JnIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPGRvY3VtZW50YXRpb24+VGVzdCBvZiBpbmRldGVybWluaXNtPC9kb2N1bWVudGF0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8emVyb09yTW9yZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L3plcm9Pck1vcmU+DQorICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGZvby8+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHplcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC96ZXJvT3JNb3JlPg0KKyAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgPGVtcHR5Lz4NCisgIDwvZWxlbWVudD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxncm91cD4NCisgICAgPHplcm9Pck1vcmU+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L3plcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9ncm91cD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmF6Lz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxncm91cD4NCisgICAgPHplcm9Pck1vcmU+DQorICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L3plcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9ncm91cD4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxmb28vPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxjaG9pY2U+DQorICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgPC96ZXJvT3JNb3JlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvY2hvaWNlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxmb28vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmF6Lz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8emVyb09yTW9yZT4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvemVyb09yTW9yZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmF6Ij4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2Nob2ljZT4NCisgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmF6Lz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhei8+DQorICA8YmF6Lz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmF6Lz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPg0KKyAgPGJhei8+DQorICA8YmFyLz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8Y2hvaWNlPg0KKyAgICA8emVyb09yTW9yZT4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvemVyb09yTW9yZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2Nob2ljZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8Zm9vLz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGNob2ljZT4NCisgICAgPHplcm9Pck1vcmU+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgICAgIDxlbXB0eS8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKyAgICAgICAgICA8ZW1wdHkvPg0KKyAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L3plcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9jaG9pY2U+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPGZvby8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmF6Lz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhei8+DQorICA8YmF6Lz4NCisgIDxiYXovPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXovPg0KKyAgPGJhci8+DQorICA8YmF6Lz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9wdGlvbmFsPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvb3B0aW9uYWw+DQorICA8ZWxlbWVudCBuYW1lPSJiYXoiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGZvby8+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJmb28iIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b3B0aW9uYWw+DQorICAgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9vcHRpb25hbD4NCisgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorPC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvcHRpb25hbD4NCisgICAgPG9uZU9yTW9yZT4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9vcHRpb25hbD4NCisgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmF6Lz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmF6Lz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXovPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorPC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9ImZvbyIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvcHRpb25hbD4NCisgICAgPG9uZU9yTW9yZT4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJiYXIiPg0KKyAgICAgICAgPGVtcHR5Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvb25lT3JNb3JlPg0KKyAgPC9vcHRpb25hbD4NCisgIDxlbGVtZW50IG5hbWU9ImJhciI+DQorICAgIDxlbXB0eS8+DQorICA8L2VsZW1lbnQ+DQorPC9lbGVtZW50Pg0KKzwvY29ycmVjdD4NCis8aW52YWxpZD4NCis8Zm9vLz4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0iZm9vIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPGdyb3VwPg0KKyAgICA8emVyb09yTW9yZT4NCisgICAgICA8Y2hvaWNlPg0KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICAgICAgPGVtcHR5Lz4NCisgICAgICAgIDwvZWxlbWVudD4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImJheiI+DQorICAgICAgICAgIDxlbXB0eS8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvemVyb09yTW9yZT4NCisgICAgPGVsZW1lbnQgbmFtZT0iYmFyIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2dyb3VwPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGZvby8+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXovPg0KKyAgPGJhci8+DQorPC9mb28+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGZvbz4NCisgIDxiYXIvPg0KKyAgPGJhci8+DQorICA8YmFyLz4NCisgIDxiYXIvPg0KKzwvZm9vPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxmb28+DQorICA8YmF6Lz4NCisgIDxiYXovPg0KKyAgPGJhei8+DQorICA8YmFyLz4NCis8L2Zvbz4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8Zm9vPg0KKyAgPGJhei8+DQorICA8YmFyLz4NCisgIDxiYXovPg0KKyAgPGJhci8+DQorPC9mb28+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8Zm9vPg0KKyAgPGJhci8+DQorICA8YmF6Lz4NCisgIDxiYXIvPg0KKyAgPGJhei8+DQorPC9mb28+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9Imxpc3QiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8b25lT3JNb3JlPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJsYWJlbCI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgICA8b3B0aW9uYWw+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ib3B0Ij4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L29wdGlvbmFsPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJpdGVtIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L29uZU9yTW9yZT4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxsaXN0Pg0KKzwvbGlzdD4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxsaXN0Pg0KKyAgPGxhYmVsLz4NCisgIDxpdGVtLz4NCis8L2xpc3Q+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKyAgPGxhYmVsLz4NCisgIDxpdGVtLz4NCis8L2xpc3Q+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPG9wdC8+DQorICA8aXRlbS8+DQorICA8bGFiZWwvPg0KKyAgPG9wdC8+DQorICA8aXRlbS8+DQorPC9saXN0Pg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKyAgPGxhYmVsLz4NCisgIDxvcHQvPg0KKyAgPG9wdC8+DQorICA8aXRlbS8+DQorPC9saXN0Pg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCBuYW1lPSJsaXN0IiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPG9uZU9yTW9yZT4NCisgICAgPGVsZW1lbnQgbmFtZT0ibGFiZWwiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgICAgPHplcm9Pck1vcmU+DQorICAgICAgPGVsZW1lbnQgbmFtZT0ib3B0Ij4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L3plcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9Iml0ZW0iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvb25lT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGxpc3Q+DQorPC9saXN0Pg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKzwvbGlzdD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8bGlzdD4NCisgIDxsYWJlbC8+DQorICA8aXRlbS8+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKzwvbGlzdD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8bGlzdD4NCisgIDxsYWJlbC8+DQorICA8b3B0Lz4NCisgIDxpdGVtLz4NCisgIDxsYWJlbC8+DQorICA8b3B0Lz4NCisgIDxpdGVtLz4NCis8L2xpc3Q+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKyAgPGxhYmVsLz4NCisgIDxvcHQvPg0KKyAgPG9wdC8+DQorICA8aXRlbS8+DQorPC9saXN0Pg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0ibGlzdCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxvbmVPck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9ImxhYmVsIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICAgIDx6ZXJvT3JNb3JlPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9Im9wdCI+DQorICAgICAgICA8ZW1wdHkvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJvcHQyIj4NCisgICAgICAgIDxlbXB0eS8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICA8L3plcm9Pck1vcmU+DQorICAgIDxlbGVtZW50IG5hbWU9Iml0ZW0iPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvb25lT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGxpc3Q+DQorPC9saXN0Pg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKzwvbGlzdD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8bGlzdD4NCisgIDxsYWJlbC8+DQorICA8aXRlbS8+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKzwvbGlzdD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8bGlzdD4NCisgIDxsYWJlbC8+DQorICA8b3B0Lz4NCisgIDxvcHQyLz4NCisgIDxpdGVtLz4NCisgIDxsYWJlbC8+DQorICA8b3B0Lz4NCisgIDxvcHQyLz4NCisgIDxpdGVtLz4NCis8L2xpc3Q+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKyAgPGxhYmVsLz4NCisgIDxvcHQvPg0KKyAgPG9wdDIvPg0KKyAgPG9wdC8+DQorICA8b3B0Mi8+DQorICA8aXRlbS8+DQorPC9saXN0Pg0KKzwvdmFsaWQ+DQorPGludmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPG9wdC8+DQorICA8aXRlbS8+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKzwvbGlzdD4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKyAgPGxhYmVsLz4NCisgIDxvcHQyLz4NCisgIDxvcHQvPg0KKyAgPGl0ZW0vPg0KKzwvbGlzdD4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGxpc3Q+DQorICA8bGFiZWwvPg0KKyAgPGl0ZW0vPg0KKyAgPGxhYmVsLz4NCisgIDxvcHQvPg0KKyAgPG9wdDIvPg0KKyAgPG9wdC8+DQorICA8aXRlbS8+DQorPC9saXN0Pg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzx0ZXN0U3VpdGU+DQorPGRvY3VtZW50YXRpb24+VGVzdCBvZiBncmFtbWFycyBtZXJnaW5nPC9kb2N1bWVudGF0aW9uPg0KKzx0ZXN0Q2FzZT4NCis8cmVzb3VyY2UgbmFtZT0iZGJrLnJuZyI+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJwIi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJwLmV4dCI+DQorICAgIDxub3RBbGxvd2VkLz4NCisgIDwvZGVmaW5lPg0KKyAgPGRlZmluZSBuYW1lPSJwIj4NCisgICAgPGVsZW1lbnQgbmFtZT0icCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDxyZWYgbmFtZT0icC5leHQiLz4NCisJPGVtcHR5Lz4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImEiPg0KKyAgICAgICAgICA8dGV4dC8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L3Jlc291cmNlPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxncmFtbWFyPg0KKyAgICAgIDxpbmNsdWRlIGhyZWY9ImRiay5ybmciLz4NCisgICAgICA8ZGVmaW5lIG5hbWU9InAuZXh0IiBjb21iaW5lPSJjaG9pY2UiPg0KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iYiI+DQorICAgICAgICAgIDx0ZXh0Lz4NCisgICAgICAgIDwvZWxlbWVudD4NCisgICAgICA8L2RlZmluZT4NCisgICAgPC9ncmFtbWFyPg0KKyAgPC9zdGFydD4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8cC8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHA+DQorICA8YS8+DQorPC9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxwPg0KKyAgPGIvPg0KKzwvcD4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPHA+DQorICA8Yi8+DQorICA8Yi8+DQorPC9wPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8cmVzb3VyY2UgbmFtZT0iZGJrLnJuZyI+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJwIi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJwLmV4dCI+DQorICAgIDxub3RBbGxvd2VkLz4NCisgIDwvZGVmaW5lPg0KKyAgPGRlZmluZSBuYW1lPSJwIj4NCisgICAgPGVsZW1lbnQgbmFtZT0icCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDxyZWYgbmFtZT0icC5leHQiLz4NCisJPGVtcHR5Lz4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImEiPg0KKyAgICAgICAgICA8dGV4dC8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKyAgPGRlZmluZSBuYW1lPSJjIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iYyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPGNvcnJlY3Q+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPGdyYW1tYXI+DQorICAgICAgPGluY2x1ZGUgaHJlZj0iZGJrLnJuZyIvPg0KKyAgICAgIDxkZWZpbmUgbmFtZT0icC5leHQiIGNvbWJpbmU9ImNob2ljZSI+DQorICAgICAgICA8Y2hvaWNlPg0KKwkgIDxyZWYgbmFtZT0iYyIvPg0KKwkgIDxwYXJlbnRSZWYgbmFtZT0iZCIvPg0KKyAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJiIj4NCisgICAgICAgICAgICA8dGV4dC8+DQorICAgICAgICAgIDwvZWxlbWVudD4NCisgICAgICAgIDwvY2hvaWNlPg0KKyAgICAgIDwvZGVmaW5lPg0KKyAgICA8L2dyYW1tYXI+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJkIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZCI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvY29ycmVjdD4NCis8dmFsaWQ+DQorPHAvPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxwPg0KKyAgPGEvPg0KKzwvcD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8cD4NCisgIDxiLz4NCis8L3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHA+DQorICA8Yy8+DQorPC9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxwPg0KKyAgPGQvPg0KKzwvcD4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGMvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8ZC8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxwPg0KKyAgPGIvPg0KKyAgPGMvPg0KKzwvcD4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPHA+DQorICA8ZC8+DQorICA8Yy8+DQorPC9wPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8cmVzb3VyY2UgbmFtZT0iZGJrLnJuZyI+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJwIi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJwLmV4dCI+DQorICAgIDxub3RBbGxvd2VkLz4NCisgIDwvZGVmaW5lPg0KKyAgPGRlZmluZSBuYW1lPSJwIj4NCisgICAgPGVsZW1lbnQgbmFtZT0icCI+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDxyZWYgbmFtZT0icC5leHQiLz4NCisJPGVtcHR5Lz4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImEiPg0KKyAgICAgICAgICA8dGV4dC8+DQorICAgICAgICA8L2VsZW1lbnQ+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKyAgPGRlZmluZSBuYW1lPSJjIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iYyI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorPC9ncmFtbWFyPg0KKzwvcmVzb3VyY2U+DQorPHJlc291cmNlIG5hbWU9InByb29mLnJuZyI+DQorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJlIi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJkIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZCI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorICA8ZGVmaW5lIG5hbWU9ImUiPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJlIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCisgIDxkZWZpbmUgbmFtZT0iZiI+DQorICAgIDxlbGVtZW50IG5hbWU9ImYiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L3Jlc291cmNlPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxncmFtbWFyPg0KKyAgICAgIDxpbmNsdWRlIGhyZWY9ImRiay5ybmciLz4NCisgICAgICA8ZGVmaW5lIG5hbWU9InAuZXh0IiBjb21iaW5lPSJjaG9pY2UiPg0KKyAgICAgICAgPGNob2ljZT4NCisJICA8cmVmIG5hbWU9ImMiLz4NCisJICA8Z3JhbW1hcj4NCisJICAgIDxpbmNsdWRlIGhyZWY9InByb29mLnJuZyIvPg0KKwkgICAgPHN0YXJ0IGNvbWJpbmU9ImNob2ljZSI+DQorCSAgICAgIDxyZWYgbmFtZT0iZCIvPg0KKwkgICAgPC9zdGFydD4NCisJICA8L2dyYW1tYXI+DQorICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImIiPg0KKyAgICAgICAgICAgIDx0ZXh0Lz4NCisgICAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9kZWZpbmU+DQorICAgIDwvZ3JhbW1hcj4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9ImciPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJnIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8cC8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHA+DQorICA8YS8+DQorPC9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxwPg0KKyAgPGIvPg0KKzwvcD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8cD4NCisgIDxjLz4NCis8L3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHA+DQorICA8ZC8+DQorPC9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxwPg0KKyAgPGUvPg0KKzwvcD4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxwPg0KKyAgPGYvPg0KKzwvcD4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPHA+DQorICA8Zy8+DQorPC9wPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Yi8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxjLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGQvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8ZS8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGcvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8cD4NCisgIDxkLz4NCisgIDxjLz4NCis8L3A+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxwPg0KKyAgPGQvPg0KKyAgPGUvPg0KKzwvcD4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPHJlc291cmNlIG5hbWU9ImRiay5ybmciPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxyZWYgbmFtZT0icCIvPg0KKyAgPC9zdGFydD4NCisgIDxkZWZpbmUgbmFtZT0icC5leHQiPg0KKyAgICA8bm90QWxsb3dlZC8+DQorICA8L2RlZmluZT4NCisgIDxkZWZpbmUgbmFtZT0icCI+DQorICAgIDxlbGVtZW50IG5hbWU9InAiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICA8cmVmIG5hbWU9InAuZXh0Ii8+DQorCTxlbXB0eS8+DQorICAgICAgICA8ZWxlbWVudCBuYW1lPSJhIj4NCisgICAgICAgICAgPHRleHQvPg0KKyAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDwvY2hvaWNlPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCisgIDxkZWZpbmUgbmFtZT0iYyI+DQorICAgIDxlbGVtZW50IG5hbWU9ImMiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L3Jlc291cmNlPg0KKzxyZXNvdXJjZSBuYW1lPSJwcm9vZi5ybmciPg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCisgICAgICAgICBucz0iaHR0cDovL2V4YW1wbGUub3JnL25zL3Byb29mc3lzdGVtIj4NCisgIDxzdGFydD4NCisgICAgPHJlZiBuYW1lPSJlIi8+DQorICA8L3N0YXJ0Pg0KKyAgPGRlZmluZSBuYW1lPSJkIj4NCisgICAgPGVsZW1lbnQgbmFtZT0iZCI+DQorICAgICAgPGVtcHR5Lz4NCisgICAgPC9lbGVtZW50Pg0KKyAgPC9kZWZpbmU+DQorICA8ZGVmaW5lIG5hbWU9ImUiPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJlIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCisgIDxkZWZpbmUgbmFtZT0iZiI+DQorICAgIDxlbGVtZW50IG5hbWU9ImYiPg0KKyAgICAgIDxlbXB0eS8+DQorICAgIDwvZWxlbWVudD4NCisgIDwvZGVmaW5lPg0KKzwvZ3JhbW1hcj4NCis8L3Jlc291cmNlPg0KKzxjb3JyZWN0Pg0KKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+DQorICA8c3RhcnQ+DQorICAgIDxncmFtbWFyPg0KKyAgICAgIDxpbmNsdWRlIGhyZWY9ImRiay5ybmciLz4NCisgICAgICA8ZGVmaW5lIG5hbWU9InAuZXh0IiBjb21iaW5lPSJjaG9pY2UiPg0KKyAgICAgICAgPGNob2ljZT4NCisJICA8cmVmIG5hbWU9ImMiLz4NCisJICA8Z3JhbW1hcj4NCisJICAgIDxpbmNsdWRlIGhyZWY9InByb29mLnJuZyIvPg0KKwkgICAgPHN0YXJ0IGNvbWJpbmU9ImNob2ljZSI+DQorCSAgICAgIDxyZWYgbmFtZT0iZCIvPg0KKwkgICAgPC9zdGFydD4NCisJICA8L2dyYW1tYXI+DQorICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImIiPg0KKyAgICAgICAgICAgIDx0ZXh0Lz4NCisgICAgICAgICAgPC9lbGVtZW50Pg0KKyAgICAgICAgPC9jaG9pY2U+DQorICAgICAgPC9kZWZpbmU+DQorICAgIDwvZ3JhbW1hcj4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9ImciPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJnIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzx2YWxpZD4NCis8cC8+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHA+DQorICA8YS8+DQorPC9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxwPg0KKyAgPGIvPg0KKzwvcD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8cD4NCisgIDxjLz4NCis8L3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHAgeG1sbnM6cD0iaHR0cDovL2V4YW1wbGUub3JnL25zL3Byb29mc3lzdGVtIj4NCisgIDxwOmQvPg0KKzwvcD4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkPg0KKzxwPg0KKyAgPGQvPg0KKzwvcD4NCis8L2ludmFsaWQ+DQorPHZhbGlkPg0KKzxwIHhtbG5zOnA9Imh0dHA6Ly9leGFtcGxlLm9yZy9ucy9wcm9vZnN5c3RlbSI+DQorICA8cDplLz4NCis8L3A+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8cD4NCisgIDxlLz4NCis8L3A+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxwIHhtbG5zOnA9Imh0dHA6Ly9leGFtcGxlLm9yZy9ucy9wcm9vZnN5c3RlbSI+DQorICA8cDpmLz4NCis8L3A+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxwPg0KKyAgPGYvPg0KKzwvcD4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPHA+DQorICA8Zy8+DQorPC9wPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8Yi8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxjLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGQvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8ZS8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxmLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGcvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8cCB4bWxuczpwPSJodHRwOi8vZXhhbXBsZS5vcmcvbnMvcHJvb2ZzeXN0ZW0iPg0KKyAgPHA6ZC8+DQorICA8Yy8+DQorPC9wPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8cCB4bWxuczpwPSJodHRwOi8vZXhhbXBsZS5vcmcvbnMvcHJvb2ZzeXN0ZW0iPg0KKyAgPHA6ZC8+DQorICA8cDplLz4NCis8L3A+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPHRlc3RDYXNlPg0KKzxyZXNvdXJjZSBuYW1lPSJleHQucm5nIj4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8cmVmIG5hbWU9InAiLz4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9InAiPg0KKyAgICA8ZWxlbWVudCBuYW1lPSJwIj4NCisgICAgICA8ZW1wdHkvPg0KKyAgICA8L2VsZW1lbnQ+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9yZXNvdXJjZT4NCis8Y29ycmVjdD4NCis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPg0KKyAgPHN0YXJ0Pg0KKyAgICA8ZWxlbWVudCBuYW1lPSJ0b3AiPg0KKyAgICAgIDxjaG9pY2U+DQorICAgICAgICA8cmVmIG5hbWU9ImluY2x1ZGUxIi8+DQorICAgICAgICA8cmVmIG5hbWU9ImluY2x1ZGUyIi8+DQorICAgICAgPC9jaG9pY2U+DQorICAgIDwvZWxlbWVudD4NCisgIDwvc3RhcnQ+DQorICA8ZGVmaW5lIG5hbWU9ImluY2x1ZGUxIj4NCisgICAgPGdyYW1tYXI+DQorICAgICAgPGluY2x1ZGUgaHJlZj0iZXh0LnJuZyI+DQorICAgICAgICA8c3RhcnQ+DQorCSA8ZWxlbWVudCBuYW1lPSJhIj4NCisJICAgPGNob2ljZT4NCisJICAgICA8ZW1wdHkvPg0KKwkgICAgIDxyZWYgbmFtZT0icCIvPg0KKwkgICA8L2Nob2ljZT4NCisJIDwvZWxlbWVudD4NCisJPC9zdGFydD4NCisgICAgICA8L2luY2x1ZGU+DQorICAgIDwvZ3JhbW1hcj4NCisgIDwvZGVmaW5lPg0KKyAgPGRlZmluZSBuYW1lPSJpbmNsdWRlMiI+DQorICAgIDxncmFtbWFyPg0KKyAgICAgIDxpbmNsdWRlIGhyZWY9ImV4dC5ybmciPg0KKyAgICAgICAgPHN0YXJ0Pg0KKwkgPGVsZW1lbnQgbmFtZT0iYiI+DQorCSAgIDxjaG9pY2U+DQorCSAgICAgPGVtcHR5Lz4NCisJICAgICA8cmVmIG5hbWU9InAiLz4NCisJICAgPC9jaG9pY2U+DQorCSA8L2VsZW1lbnQ+DQorCTwvc3RhcnQ+DQorICAgICAgPC9pbmNsdWRlPg0KKyAgICA8L2dyYW1tYXI+DQorICA8L2RlZmluZT4NCis8L2dyYW1tYXI+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzx0b3AvPg0KKzwvaW52YWxpZD4NCis8aW52YWxpZD4NCis8YS8+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxiLz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPHAvPg0KKzwvaW52YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCisgIDxhLz4NCis8L3RvcD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8dG9wPg0KKyAgPGIvPg0KKzwvdG9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzx0b3A+DQorICA8YT4NCisgICAgPHAvPg0KKyAgPC9hPg0KKzwvdG9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzx0b3A+DQorICA8Yj4NCisgICAgPHAvPg0KKyAgPC9iPg0KKzwvdG9wPg0KKzwvdmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxkb2N1bWVudGF0aW9uPlRlc3Qgb2YgSUQvSURSRUY8L2RvY3VtZW50YXRpb24+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9InRvcCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIg0KKyAgICAgICAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4NCisgIDx6ZXJvT3JNb3JlPg0KKyAgICA8Y2hvaWNlPg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlZiI+DQorICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImlkIj4NCisJICA8ZGF0YSB0eXBlPSJJRCIvPg0KKwk8L2F0dHJpYnV0ZT4NCisJPHRleHQvPg0KKyAgICAgIDwvZWxlbWVudD4NCisgICAgICA8ZWxlbWVudCBuYW1lPSJ4cmVmIj4NCisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibGluayI+DQorCSAgPGRhdGEgdHlwZT0iSURSRUYiLz4NCisJPC9hdHRyaWJ1dGU+DQorCTx0ZXh0Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvY2hvaWNlPg0KKyAgPC96ZXJvT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzx0b3A+DQorPC90b3A+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8dG9wPg0KKyAgPHhyZWYgbGluaz0iaWQxIi8+DQorPC90b3A+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8dG9wPg0KKyAgPHJlZiBpZD0iaWQxIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCisgIDx4cmVmIGxpbms9ImlkMSIvPg0KKyAgPHJlZiBpZD0iaWQxIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCisgIDx4cmVmIGxpbms9IiAgaWQxICIvPg0KKyAgPHJlZiBpZD0iICAgICBpZDEgICAiLz4NCisgIDx4cmVmIGxpbms9ImlkMSAiLz4NCisgIDx4cmVmIGxpbms9IiAgaWQxIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCisgIDxyZWYgaWQ9ImlkMSIvPg0KKyAgPHhyZWYgbGluaz0iaWQxIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8dG9wPg0KKyAgPHJlZiBpZD0iaWQxIi8+DQorICA8cmVmIGlkPSJpZDEiLz4NCis8L3RvcD4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgbmFtZT0idG9wIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiDQorICAgICAgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPg0KKyAgPHplcm9Pck1vcmU+DQorICAgIDxjaG9pY2U+DQorICAgICAgPGVsZW1lbnQgbmFtZT0icmVmIj4NCisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iaWQiPg0KKwkgIDxkYXRhIHR5cGU9IklEIi8+DQorCTwvYXR0cmlidXRlPg0KKwk8dGV4dC8+DQorICAgICAgPC9lbGVtZW50Pg0KKyAgICAgIDxlbGVtZW50IG5hbWU9InhyZWYiPg0KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJsaW5rIj4NCisJICA8ZGF0YSB0eXBlPSJJRFJFRlMiLz4NCisJPC9hdHRyaWJ1dGU+DQorCTx0ZXh0Lz4NCisgICAgICA8L2VsZW1lbnQ+DQorICAgIDwvY2hvaWNlPg0KKyAgPC96ZXJvT3JNb3JlPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzx0b3A+DQorPC90b3A+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8dG9wPg0KKyAgPHhyZWYgbGluaz0iaWQxIi8+DQorPC90b3A+DQorPC9pbnZhbGlkPg0KKzx2YWxpZD4NCis8dG9wPg0KKyAgPHJlZiBpZD0iaWQxIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCisgIDx4cmVmIGxpbms9ImlkMSIvPg0KKyAgPHJlZiBpZD0iaWQxIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPHRvcD4NCisgIDx4cmVmIGxpbms9ImlkMSBpZDEiLz4NCisgIDxyZWYgaWQ9ImlkMSIvPg0KKzwvdG9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzx0b3A+DQorICA8cmVmIGlkPSJpZDEiLz4NCisgIDx4cmVmIGxpbms9ImlkMSIvPg0KKzwvdG9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzx0b3A+DQorICA8cmVmIGlkPSJpZDIiLz4NCisgIDx4cmVmIGxpbms9ImlkMSBpZDIiLz4NCisgIDxyZWYgaWQ9ImlkMSIvPg0KKzwvdG9wPg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzx0b3A+DQorICA8cmVmIGlkPSJpZDIiLz4NCisgIDx4cmVmIGxpbms9IiBpZDIgICAgaWQxICAgaWQyICIvPg0KKyAgPHJlZiBpZD0iaWQxIi8+DQorPC90b3A+DQorPC92YWxpZD4NCis8aW52YWxpZD4NCis8dG9wPg0KKyAgPHJlZiBpZD0iaWQyIi8+DQorICA8eHJlZiBsaW5rPSJpZDEgaWQyIi8+DQorPC90b3A+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzx0b3A+DQorICA8eHJlZiBsaW5rPSJpZDEgaWQyIi8+DQorICA8cmVmIGlkPSJpZDEiLz4NCis8L3RvcD4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPHRvcD4NCisgIDxyZWYgaWQ9ImlkMSIvPg0KKyAgPHJlZiBpZD0iaWQxIi8+DQorPC90b3A+DQorPC9pbnZhbGlkPg0KKzwvdGVzdENhc2U+DQorPC90ZXN0U3VpdGU+DQorPHRlc3RTdWl0ZT4NCis8ZG9jdW1lbnRhdGlvbj5UZXN0IG9mIEVOVElUWS9FTlRJVElFUzwvZG9jdW1lbnRhdGlvbj4NCis8dGVzdENhc2U+DQorPGNvcnJlY3Q+DQorPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4NCisgIDxkYXRhIHR5cGU9IkVOVElUWSIvPg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPGludmFsaWQ+DQorPGRvYz48L2RvYz4NCis8L2ludmFsaWQ+DQorPGludmFsaWQ+DQorPGRvYz5mb288L2RvYz4NCis8L2ludmFsaWQ+DQorPHZhbGlkIGR0ZD0iJiMxMDsmbHQ7IURPQ1RZUEUgZG9jIFsmIzEwOyZsdDshRU5USVRZIGZvbyBTWVNURU0gJ3doYXRldmVyJyBOREFUQSBqcGVnJmd0OyYjMTA7XSZndDsiPg0KKzxkb2M+Zm9vPC9kb2M+DQorPC92YWxpZD4NCis8dmFsaWQgZHRkPSImIzEwOyZsdDshRE9DVFlQRSBkb2MgWyYjMTA7Jmx0OyFFTlRJVFkgZm9vIFNZU1RFTSAnd2hhdGV2ZXInIE5EQVRBIGpwZWcmZ3Q7JiMxMDtdJmd0OyI+DQorPGRvYz4gIGZvbyA8L2RvYz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkIGR0ZD0iJiMxMDsmbHQ7IURPQ1RZUEUgZG9jIFsmIzEwOyZsdDshRU5USVRZIGZvbyBTWVNURU0gJ3doYXRldmVyJyBOREFUQSBqcGVnJmd0OyYjMTA7XSZndDsiPg0KKzxkb2M+Zm9vIGJhcjwvZG9jPg0KKzwvaW52YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzx0ZXN0Q2FzZT4NCis8Y29ycmVjdD4NCis8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPg0KKyAgPGRhdGEgdHlwZT0iRU5USVRJRVMiLz4NCis8L2VsZW1lbnQ+DQorPC9jb3JyZWN0Pg0KKzxpbnZhbGlkPg0KKzxkb2M+PC9kb2M+DQorPC9pbnZhbGlkPg0KKzxpbnZhbGlkPg0KKzxkb2M+Zm9vPC9kb2M+DQorPC9pbnZhbGlkPg0KKzx2YWxpZCBkdGQ9IiYjMTA7Jmx0OyFET0NUWVBFIGRvYyBbJiMxMDsmbHQ7IUVOVElUWSBmb28gU1lTVEVNICd3aGF0ZXZlcicgTkRBVEEganBlZyZndDsgJiMxMDsmbHQ7IUVOVElUWSBiYXIgU1lTVEVNICd3aGF0ZXZlcicgTkRBVEEganBlZyZndDsgJiMxMDtdJmd0OyI+DQorPGRvYz4gZm9vIGJhciA8L2RvYz4NCis8L3ZhbGlkPg0KKzx2YWxpZCBkdGQ9IiYjMTA7Jmx0OyFET0NUWVBFIGRvYyBbJiMxMDsmbHQ7IUVOVElUWSBmb28gU1lTVEVNICd3aGF0ZXZlcicgTkRBVEEganBlZyZndDsgJiMxMDsmbHQ7IUVOVElUWSBiYXIgU1lTVEVNICd3aGF0ZXZlcicgTkRBVEEganBlZyZndDsgJiMxMDtdJmd0OyI+DQorPGRvYz4gZm9vIGJhciBmb288L2RvYz4NCis8L3ZhbGlkPg0KKzxpbnZhbGlkIGR0ZD0iJiMxMDsmbHQ7IURPQ1RZUEUgZG9jIFsmIzEwOyZsdDshRU5USVRZIGZvbyBTWVNURU0gJ3doYXRldmVyJyBOREFUQSBqcGVnJmd0O10mZ3Q7Ij4NCis8ZG9jPmZvbyBiYXI8L2RvYz4NCis8L2ludmFsaWQ+DQorPC90ZXN0Q2FzZT4NCis8L3Rlc3RTdWl0ZT4NCis8dGVzdFN1aXRlPg0KKzxkb2N1bWVudGF0aW9uPlRlc3Qgb2YgTWl4ZWQ8L2RvY3VtZW50YXRpb24+DQorPHRlc3RDYXNlPg0KKzxjb3JyZWN0Pg0KKzxlbGVtZW50IG5hbWU9Im1peCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4NCisgIDxtaXhlZD4NCisgICAgPHplcm9Pck1vcmU+DQorICAgICAgPGNob2ljZT4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImEiPg0KKwkgIDxlbXB0eS8+DQorCTwvZWxlbWVudD4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImIiPg0KKwkgIDxlbXB0eS8+DQorCTwvZWxlbWVudD4NCisgICAgICAgIDxlbGVtZW50IG5hbWU9ImMiPg0KKwkgIDxlbXB0eS8+DQorCTwvZWxlbWVudD4NCisgICAgICA8L2Nob2ljZT4NCisgICAgPC96ZXJvT3JNb3JlPg0KKyAgPC9taXhlZD4NCisgIDxlbGVtZW50IG5hbWU9ImQiPg0KKyAgICA8ZW1wdHkvPg0KKyAgPC9lbGVtZW50Pg0KKzwvZWxlbWVudD4NCis8L2NvcnJlY3Q+DQorPHZhbGlkPg0KKzxtaXg+DQorICA8ZC8+DQorPC9taXg+DQorPC92YWxpZD4NCis8dmFsaWQ+DQorPG1peD4NCisgIDxiLz4NCisgIDxhLz4NCisgIDxjLz4NCisgIDxiLz4NCisgIDxkLz4NCis8L21peD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8bWl4Pg0KKyAgbWl4ZWQNCisgIDxjLz4NCisgIDxkLz4NCis8L21peD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8bWl4Pg0KKyAgPGMvPg0KKyAgbWl4ZWQNCisgIDxkLz4NCis8L21peD4NCis8L3ZhbGlkPg0KKzx2YWxpZD4NCis8bWl4Pg0KKyAgPGIvPg0KKyAgaXMNCisgIDxhLz4NCisgIGludGVyDQorICA8Yy8+DQorICBtaXhlZA0KKyAgPGIvPg0KKyAgPGQvPg0KKzwvbWl4Pg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxtaXg+DQorICBtaXhlZA0KKyAgPGIvPg0KKyAgLg0KKyAgPGQvPg0KKzwvbWl4Pg0KKzwvdmFsaWQ+DQorPHZhbGlkPg0KKzxtaXg+DQorICB0aGlzDQorICA8Yi8+DQorICBpcw0KKyAgPGEvPg0KKyAgaW50ZXINCisgIDxjLz4NCisgIG1peGVkDQorICA8Yi8+DQorICAuDQorICA8ZC8+DQorPC9taXg+DQorPC92YWxpZD4NCis8L3Rlc3RDYXNlPg0KKzwvdGVzdFN1aXRlPg0KKzwvdGVzdFN1aXRlPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzEucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZGYyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzEucm5nCkBAIC0wLDAgKzEsNCBAQAorPGVsZW1lbnQgbmFtZT0iZm9vIiBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIKKyAgICAgICAgIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxlbXB0eS8+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzEwLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMTAucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NWI2MjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzEwLnJuZwpAQCAtMCwwICsxLDEzIEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYWRkcmVzc0Jvb2siCisgICAgICAgICB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8emVyb09yTW9yZT4KKyAgICA8ZWxlbWVudCBuYW1lPSJjYXJkIiBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9hZGRyZXNzQm9vayI+CisgICAgICA8ZWxlbWVudCBuYW1lPSJuYW1lIiBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9hZGRyZXNzIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1haWwiIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2FkZHJlc3MiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzEwXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xMF8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDc5ODJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xMF8xLnhtbApAQCAtMCwwICsxLDUgQEAKKzxhOmFkZHJlc3NCb29rIHhtbG5zOmE9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYWRkcmVzc0Jvb2siPgorICA8YTpjYXJkIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2FkZHJlc3MiPgorICAgIDxuYW1lPmZvbzwvbmFtZT48ZW1haWw+YmFyPC9lbWFpbD4KKyAgPC9hOmNhcmQ+Cis8L2E6YWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk4MTkzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMV8xLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZkOTAwYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMV8yLnhtbApAQCAtMCwwICsxIEBACis8ZTpmb28geG1sbnM6ZT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NmM3M2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfMy54bWwKQEAgLTAsMCArMSBAQAorPGV4YW1wbGU6Zm9vIHhtbG5zOmV4YW1wbGU9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMV80LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMV80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTk5OWY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzQueG1sCkBAIC0wLDAgKzEgQEAKKzxmb28vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMGYwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzFfNS54bWwKQEAgLTAsMCArMSBAQAorPGU6Zm9vIHhtbG5zOmU9Imh0dHA6Ly9XV1cuRVhBTVBMRS5DT00iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMV82LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMV82LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGQ2YWVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8xXzYueG1sCkBAIC0wLDAgKzEgQEAKKzxleGFtcGxlOmZvbyB4bWxuczpleGFtcGxlPSJodHRwOi8vd3d3LmV4YW1wbGUubmV0Ii8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzIucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8yLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmYwOGRlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8yLnJuZwpAQCAtMCwwICsxLDMgQEAKKzxlbGVtZW50IG5hbWU9ImZvbyIgbnM9IiIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGVtcHR5Lz4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMl8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMl8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGUwYjIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8yXzEueG1sCkBAIC0wLDAgKzEgQEAKKzxmb28geG1sbnM9IiIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8yXzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8yXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxOTk5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfMi54bWwKQEAgLTAsMCArMSBAQAorPGZvby8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk4MTkzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMl8zLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzJfNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZkOTAwYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMl80LnhtbApAQCAtMCwwICsxIEBACis8ZTpmb28geG1sbnM6ZT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8zLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMy5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZmOGNkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfMy5ybmcKQEAgLTAsMCArMSwxMiBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8zXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF8zXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5M2RmMTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzNfMS54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkPjxuYW1lPmZvbzwvbmFtZT48ZW1haWw+YmFyPC9lbWFpbD48L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF80LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNC5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWEwYWQzNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNC5ybmcKQEAgLTAsMCArMSwxMiBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIG5zPSIiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiIG5zPSIiPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSIgbnM9IiI+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsIiBucz0iIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF80XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF80XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5M2RmMTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzRfMS54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkPjxuYW1lPmZvbzwvbmFtZT48ZW1haWw+YmFyPC9lbWFpbD48L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF81LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVmNTQxOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNS5ybmcKQEAgLTAsMCArMSwxMyBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIgorICAgICAgICAgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8ZWxlbWVudCBuYW1lPSJuYW1lIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1haWwiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzVfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzVfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRlNjJmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNV8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vayB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+CisgIDxjYXJkPjxuYW1lPmZvbzwvbmFtZT48ZW1haWw+YmFyPC9lbWFpbD48L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF82LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNi5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ1MDU0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNi5ybmcKQEAgLTAsMCArMSwxMyBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIgorICAgICAgICAgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJlbWFpbCIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzZfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzZfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRlNjJmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNl8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vayB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+CisgIDxjYXJkPjxuYW1lPmZvbzwvbmFtZT48ZW1haWw+YmFyPC9lbWFpbD48L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF83LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNy5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U5M2RmNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfNy5ybmcKQEAgLTAsMCArMSw5IEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iCisgICAgICAgICB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8emVyb09yTW9yZT4KKyAgICA8ZWxlbWVudCBuYW1lPSJjYXJkIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSIvPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCIvPgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF83XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF83XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MGQwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzdfMS54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2sgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorICA8Y2FyZCBuYW1lPSJKb2huIFNtaXRoIiBlbWFpbD0ianNAZXhhbXBsZS5jb20iLz4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzdfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzdfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc0MzZlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfN18yLnhtbApAQCAtMCwwICsxLDMgQEAKKzxleGFtcGxlOmFkZHJlc3NCb29rIHhtbG5zOmV4YW1wbGU9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorICA8ZXhhbXBsZTpjYXJkIG5hbWU9IkpvaG4gU21pdGgiIGVtYWlsPSJqc0BleGFtcGxlLmNvbSIvPgorPC9leGFtcGxlOmFkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF83XzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF83XzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNThhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzdfMy54bWwKQEAgLTAsMCArMSwzIEBACis8ZXhhbXBsZTphZGRyZXNzQm9vayB4bWxuczpleGFtcGxlPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4KKyAgPGV4YW1wbGU6Y2FyZCBleGFtcGxlOm5hbWU9IkpvaG4gU21pdGgiIGV4YW1wbGU6ZW1haWw9ImpzQGV4YW1wbGUuY29tIi8+Cis8L2V4YW1wbGU6YWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzgucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF84LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWVmZmVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF84LnJuZwpAQCAtMCwwICsxLDkgQEAKKzxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIiBucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIKKyAgICAgICAgIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiIG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSIgbnM9IiIvPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCIgbnM9IiIvPgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF84XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF84XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MGQwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzhfMS54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2sgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorICA8Y2FyZCBuYW1lPSJKb2huIFNtaXRoIiBlbWFpbD0ianNAZXhhbXBsZS5jb20iLz4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzhfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzhfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc0MzZlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTBfOF8yLnhtbApAQCAtMCwwICsxLDMgQEAKKzxleGFtcGxlOmFkZHJlc3NCb29rIHhtbG5zOmV4YW1wbGU9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorICA8ZXhhbXBsZTpjYXJkIG5hbWU9IkpvaG4gU21pdGgiIGVtYWlsPSJqc0BleGFtcGxlLmNvbSIvPgorPC9leGFtcGxlOmFkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF84XzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF84XzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNThhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzhfMy54bWwKQEAgLTAsMCArMSwzIEBACis8ZXhhbXBsZTphZGRyZXNzQm9vayB4bWxuczpleGFtcGxlPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4KKyAgPGV4YW1wbGU6Y2FyZCBleGFtcGxlOm5hbWU9IkpvaG4gU21pdGgiIGV4YW1wbGU6ZW1haWw9ImpzQGV4YW1wbGUuY29tIi8+Cis8L2V4YW1wbGU6YWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzkucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF85LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTU0YTkxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF85LnJuZwpAQCAtMCwwICsxLDE0IEBACis8ZWxlbWVudCBuYW1lPSJhYjphZGRyZXNzQm9vayIgeG1sbnM6YWI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYWRkcmVzc0Jvb2siCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM6YT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9hZGRyZXNzIgorICAgICAgICAgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iYWI6Y2FyZCI+CisgICAgICA8ZWxlbWVudCBuYW1lPSJhOm5hbWUiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJhOmVtYWlsIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF85XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMF85XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNzk4MmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEwXzlfMS54bWwKQEAgLTAsMCArMSw1IEBACis8YTphZGRyZXNzQm9vayB4bWxuczphPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2FkZHJlc3NCb29rIj4KKyAgPGE6Y2FyZCB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9hZGRyZXNzIj4KKyAgICA8bmFtZT5mb288L25hbWU+PGVtYWlsPmJhcjwvZW1haWw+CisgIDwvYTpjYXJkPgorPC9hOmFkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV8xLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUxMWFmMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMS5ybmcKQEAgLTAsMCArMSwyMiBAQAorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKworICA8c3RhcnQ+CisgICAgPHJlZiBuYW1lPSJhbnlFbGVtZW50Ii8+CisgIDwvc3RhcnQ+CisKKyAgPGRlZmluZSBuYW1lPSJhbnlFbGVtZW50Ij4KKyAgICA8ZWxlbWVudD4KKyAgICAgIDxhbnlOYW1lLz4KKyAgICAgIDx6ZXJvT3JNb3JlPgorCTxjaG9pY2U+CisJICA8YXR0cmlidXRlPgorCSAgICA8YW55TmFtZS8+CisJICA8L2F0dHJpYnV0ZT4KKwkgIDx0ZXh0Lz4KKwkgIDxyZWYgbmFtZT0iYW55RWxlbWVudCIvPgorCTwvY2hvaWNlPgorICAgICAgPC96ZXJvT3JNb3JlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisKKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMV8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTExYWYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV8xXzEueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKyAgPHN0YXJ0PgorICAgIDxyZWYgbmFtZT0iYW55RWxlbWVudCIvPgorICA8L3N0YXJ0PgorCisgIDxkZWZpbmUgbmFtZT0iYW55RWxlbWVudCI+CisgICAgPGVsZW1lbnQ+CisgICAgICA8YW55TmFtZS8+CisgICAgICA8emVyb09yTW9yZT4KKwk8Y2hvaWNlPgorCSAgPGF0dHJpYnV0ZT4KKwkgICAgPGFueU5hbWUvPgorCSAgPC9hdHRyaWJ1dGU+CisJICA8dGV4dC8+CisJICA8cmVmIG5hbWU9ImFueUVsZW1lbnQiLz4KKwk8L2Nob2ljZT4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzFfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzFfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ1ZmMzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMV8yLnhtbApAQCAtMCwwICsxLDcgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+CisgICAgPG5hbWU+Zm9vPC9uYW1lPgorICAgIDxlbWFpbD5iYXI8L2VtYWlsPgorICAgIDxub3RlPnRoaXMgZ3V5IGlzIDxlbT5hbm5veWluZzwvZW0+ICE8L25vdGU+CisgIDwvY2FyZD4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzFfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzFfMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc3OGNlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMV8zLnhtbApAQCAtMCwwICsxLDQxOTcgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J0lTTy04ODU5LTEnIHN0YW5kYWxvbmU9J25vJz8+Cis8IURPQ1RZUEUgc3BlYyBTWVNURU0gIi4uL3ZhbGlkL2R0ZHMvc3BlYy5kdGQiIFsKKworPCEtLSBMQVNUIFRPVUNIRUQgQlk6IFRpbSBCcmF5LCA4IEZlYnJ1YXJ5IDE5OTcgLS0+CisKKzwhLS0gVGhlIHdvcmRzICdGSU5BTCBFRElUJyBpbiBjb21tZW50cyBtYXJrIHBsYWNlcyB3aGVyZSBjaGFuZ2VzCituZWVkIHRvIGJlIG1hZGUgYWZ0ZXIgYXBwcm92YWwgb2YgdGhlIGRvY3VtZW50IGJ5IHRoZSBFUkIsIGJlZm9yZQorcHVibGljYXRpb24uICAtLT4KKworPCFFTlRJVFkgWE1MLnZlcnNpb24gIjEuMCI+Cis8IUVOVElUWSBkb2MuZGF0ZSAiMTAgRmVicnVhcnkgMTk5OCI+Cis8IUVOVElUWSBpc282LmRvYy5kYXRlICIxOTk4MDIxMCI+Cis8IUVOVElUWSB3M2MuZG9jLmRhdGUgIjAyLUZlYi0xOTk4Ij4KKzwhRU5USVRZIGRyYWZ0LmRheSAnMTAnPgorPCFFTlRJVFkgZHJhZnQubW9udGggJ0ZlYnJ1YXJ5Jz4KKzwhRU5USVRZIGRyYWZ0LnllYXIgJzE5OTgnPgorCis8IUVOVElUWSBXZWJTR01MIAorICdXZWJTR01MIEFkYXB0YXRpb25zIEFubmV4IHRvIElTTyA4ODc5Jz4KKworPCFFTlRJVFkgbHQgICAgICI8Ij4gCis8IUVOVElUWSBndCAgICAgIj4iPiAKKzwhRU5USVRZIHhtbHBpbyAiJyZsdDs/eG1sJyI+Cis8IUVOVElUWSBwaWMgICAgIic/PiciPgorPCFFTlRJVFkgYnIgICAgICJcbiI+Cis8IUVOVElUWSBjZWxsYmFjayAnI2MwZDljMCc+Cis8IUVOVElUWSBtZGFzaCAgIi0tIj4gPCEtLSAmI3gyMDE0LCBidXQgbnNnbWxzIGRvZXNuJ3QgZ3JvayBoZXggLS0+Cis8IUVOVElUWSBjb20gICAgIi0tIj4KKzwhRU5USVRZIGNvbW8gICAiLS0iPgorPCFFTlRJVFkgY29tYyAgICItLSI+Cis8IUVOVElUWSBoY3JvICAgIiZhbXA7I3giPgorPCEtLSA8IUVOVElUWSBuYnNwICKgIj4gLS0+Cis8IUVOVElUWSBuYnNwICAgIiYjMTYwOyI+Cis8IUVOVElUWSBtYWdpY2VudHMgIjxjb2RlPmFtcDwvY29kZT4sCis8Y29kZT5sdDwvY29kZT4sCis8Y29kZT5ndDwvY29kZT4sCis8Y29kZT5hcG9zPC9jb2RlPiwKKzxjb2RlPnF1b3Q8L2NvZGU+Ij4KKyAKKzwhLS0gYXVkaWVuY2UgYW5kIGRpc3RyaWJ1dGlvbiBzdGF0dXM6ICBmb3IgdXNlIGF0IHB1YmxpY2F0aW9uIHRpbWUgLS0+Cis8IUVOVElUWSBkb2MuYXVkaWVuY2UgInB1YmxpYyByZXZpZXcgYW5kIGRpc2N1c3Npb24iPgorPCFFTlRJVFkgZG9jLmRpc3RyaWJ1dGlvbiAibWF5IGJlIGRpc3RyaWJ1dGVkIGZyZWVseSwgYXMgbG9uZyBhcworYWxsIHRleHQgYW5kIGxlZ2FsIG5vdGljZXMgcmVtYWluIGludGFjdCI+CisKK10+CisKKzwhLS0gZm9yIFBhbm9yYW1hICotLT4KKzw/VkVSQkFUSU0gImVnIiA/PgorCis8c3BlYz4KKzxoZWFkZXI+Cis8dGl0bGU+RXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgKFhNTCkgMS4wPC90aXRsZT4KKzx2ZXJzaW9uPjwvdmVyc2lvbj4KKzx3M2MtZGVzaWduYXRpb24+UkVDLXhtbC0maXNvNi5kb2MuZGF0ZTs8L3czYy1kZXNpZ25hdGlvbj4KKzx3M2MtZG9jdHlwZT5XM0MgUmVjb21tZW5kYXRpb248L3czYy1kb2N0eXBlPgorPHB1YmRhdGU+PGRheT4mZHJhZnQuZGF5OzwvZGF5Pjxtb250aD4mZHJhZnQubW9udGg7PC9tb250aD48eWVhcj4mZHJhZnQueWVhcjs8L3llYXI+PC9wdWJkYXRlPgorCis8cHVibG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOyI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7PC9sb2M+Cis8bG9jICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnhtbCI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnhtbDwvbG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5odG1sIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsuaHRtbDwvbG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wZGYiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wZGY8L2xvYz4KKzxsb2MgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsucHMiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wczwvbG9jPgorPC9wdWJsb2M+Cis8bGF0ZXN0bG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCI+CitodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sPC9sb2M+Cis8L2xhdGVzdGxvYz4KKzxwcmV2bG9jcz4KKzxsb2MgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1BSLXhtbC05NzEyMDgiPgoraHR0cDovL3d3dy53My5vcmcvVFIvUFIteG1sLTk3MTIwODwvbG9jPgorPCEtLQorPGxvYyAgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk2MTExNCc+CitodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTYxMTE0PC9sb2M+Cis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGFuZy05NzAzMzEnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLWxhbmctOTcwMzMxPC9sb2M+Cis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGFuZy05NzA2MzAnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLWxhbmctOTcwNjMwPC9sb2M+Cis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTcwODA3Jz4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NzA4MDc8L2xvYz4KKzxsb2MgIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NzExMTcnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk3MTExNzwvbG9jPi0tPgorPC9wcmV2bG9jcz4KKzxhdXRobGlzdD4KKzxhdXRob3I+PG5hbWU+VGltIEJyYXk8L25hbWU+Cis8YWZmaWxpYXRpb24+VGV4dHVhbGl0eSBhbmQgTmV0c2NhcGU8L2FmZmlsaWF0aW9uPgorPGVtYWlsIAoraHJlZj0ibWFpbHRvOnRicmF5QHRleHR1YWxpdHkuY29tIj50YnJheUB0ZXh0dWFsaXR5LmNvbTwvZW1haWw+PC9hdXRob3I+Cis8YXV0aG9yPjxuYW1lPkplYW4gUGFvbGk8L25hbWU+Cis8YWZmaWxpYXRpb24+TWljcm9zb2Z0PC9hZmZpbGlhdGlvbj4KKzxlbWFpbCBocmVmPSJtYWlsdG86amVhbnBhQG1pY3Jvc29mdC5jb20iPmplYW5wYUBtaWNyb3NvZnQuY29tPC9lbWFpbD48L2F1dGhvcj4KKzxhdXRob3I+PG5hbWU+Qy4gTS4gU3BlcmJlcmctTWNRdWVlbjwvbmFtZT4KKzxhZmZpbGlhdGlvbj5Vbml2ZXJzaXR5IG9mIElsbGlub2lzIGF0IENoaWNhZ288L2FmZmlsaWF0aW9uPgorPGVtYWlsIGhyZWY9Im1haWx0bzpjbXNtY3FAdWljLmVkdSI+Y21zbWNxQHVpYy5lZHU8L2VtYWlsPjwvYXV0aG9yPgorPC9hdXRobGlzdD4KKzxhYnN0cmFjdD4KKzxwPlRoZSBFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSAoWE1MKSBpcyBhIHN1YnNldCBvZgorU0dNTCB0aGF0IGlzIGNvbXBsZXRlbHkgZGVzY3JpYmVkIGluIHRoaXMgZG9jdW1lbnQuIEl0cyBnb2FsIGlzIHRvCitlbmFibGUgZ2VuZXJpYyBTR01MIHRvIGJlIHNlcnZlZCwgcmVjZWl2ZWQsIGFuZCBwcm9jZXNzZWQgb24gdGhlIFdlYgoraW4gdGhlIHdheSB0aGF0IGlzIG5vdyBwb3NzaWJsZSB3aXRoIEhUTUwuIFhNTCBoYXMgYmVlbiBkZXNpZ25lZCBmb3IKK2Vhc2Ugb2YgaW1wbGVtZW50YXRpb24gYW5kIGZvciBpbnRlcm9wZXJhYmlsaXR5IHdpdGggYm90aCBTR01MIGFuZAorSFRNTC48L3A+Cis8L2Fic3RyYWN0PgorPHN0YXR1cz4KKzxwPlRoaXMgZG9jdW1lbnQgaGFzIGJlZW4gcmV2aWV3ZWQgYnkgVzNDIE1lbWJlcnMgYW5kCitvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMgYW5kIGhhcyBiZWVuIGVuZG9yc2VkIGJ5IHRoZQorRGlyZWN0b3IgYXMgYSBXM0MgUmVjb21tZW5kYXRpb24uIEl0IGlzIGEgc3RhYmxlCitkb2N1bWVudCBhbmQgbWF5IGJlIHVzZWQgYXMgcmVmZXJlbmNlIG1hdGVyaWFsIG9yIGNpdGVkCithcyBhIG5vcm1hdGl2ZSByZWZlcmVuY2UgZnJvbSBhbm90aGVyIGRvY3VtZW50LiBXM0Mncworcm9sZSBpbiBtYWtpbmcgdGhlIFJlY29tbWVuZGF0aW9uIGlzIHRvIGRyYXcgYXR0ZW50aW9uCit0byB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgdG8gcHJvbW90ZSBpdHMgd2lkZXNwcmVhZAorZGVwbG95bWVudC4gVGhpcyBlbmhhbmNlcyB0aGUgZnVuY3Rpb25hbGl0eSBhbmQKK2ludGVyb3BlcmFiaWxpdHkgb2YgdGhlIFdlYi48L3A+Cis8cD4KK1RoaXMgZG9jdW1lbnQgc3BlY2lmaWVzIGEgc3ludGF4IGNyZWF0ZWQgYnkgc3Vic2V0dGluZyBhbiBleGlzdGluZywKK3dpZGVseSB1c2VkIGludGVybmF0aW9uYWwgdGV4dCBwcm9jZXNzaW5nIHN0YW5kYXJkIChTdGFuZGFyZAorR2VuZXJhbGl6ZWQgTWFya3VwIExhbmd1YWdlLCBJU08gODg3OToxOTg2KEUpIGFzIGFtZW5kZWQgYW5kCitjb3JyZWN0ZWQpIGZvciB1c2Ugb24gdGhlIFdvcmxkIFdpZGUgV2ViLiAgSXQgaXMgYSBwcm9kdWN0IG9mIHRoZSBXM0MKK1hNTCBBY3Rpdml0eSwgZGV0YWlscyBvZiB3aGljaCBjYW4gYmUgZm91bmQgYXQgPGxvYworaHJlZj0naHR0cDovL3d3dy53My5vcmcvWE1MJz5odHRwOi8vd3d3LnczLm9yZy9YTUw8L2xvYz4uICBBIGxpc3Qgb2YKK2N1cnJlbnQgVzNDIFJlY29tbWVuZGF0aW9ucyBhbmQgb3RoZXIgdGVjaG5pY2FsIGRvY3VtZW50cyBjYW4gYmUgZm91bmQKK2F0IDxsb2MgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFInPmh0dHA6Ly93d3cudzMub3JnL1RSPC9sb2M+LgorPC9wPgorPHA+VGhpcyBzcGVjaWZpY2F0aW9uIHVzZXMgdGhlIHRlcm0gVVJJLCB3aGljaCBpcyBkZWZpbmVkIGJ5IDxiaWJyZWYKK3JlZj0iQmVybmVycy1MZWUiLz4sIGEgd29yayBpbiBwcm9ncmVzcyBleHBlY3RlZCB0byB1cGRhdGUgPGJpYnJlZgorcmVmPSJSRkMxNzM4Ii8+IGFuZCA8YmlicmVmIHJlZj0iUkZDMTgwOCIvPi4gCis8L3A+Cis8cD5UaGUgbGlzdCBvZiBrbm93biBlcnJvcnMgaW4gdGhpcyBzcGVjaWZpY2F0aW9uIGlzIAorYXZhaWxhYmxlIGF0IAorPGxvYyBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9YTUwveG1sLTE5OTgwMjEwLWVycmF0YSc+aHR0cDovL3d3dy53My5vcmcvWE1ML3htbC0xOTk4MDIxMC1lcnJhdGE8L2xvYz4uPC9wPgorPHA+UGxlYXNlIHJlcG9ydCBlcnJvcnMgaW4gdGhpcyBkb2N1bWVudCB0byAKKzxsb2MgaHJlZj0nbWFpbHRvOnhtbC1lZGl0b3JAdzMub3JnJz54bWwtZWRpdG9yQHczLm9yZzwvbG9jPi4KKzwvcD4KKzwvc3RhdHVzPgorCisKKzxwdWJzdG10PgorPHA+Q2hpY2FnbywgVmFuY291dmVyLCBNb3VudGFpbiBWaWV3LCBldCBhbC46CitXb3JsZC1XaWRlIFdlYiBDb25zb3J0aXVtLCBYTUwgV29ya2luZyBHcm91cCwgMTk5NiwgMTk5Ny48L3A+Cis8L3B1YnN0bXQ+Cis8c291cmNlZGVzYz4KKzxwPkNyZWF0ZWQgaW4gZWxlY3Ryb25pYyBmb3JtLjwvcD4KKzwvc291cmNlZGVzYz4KKzxsYW5ndXNhZ2U+Cis8bGFuZ3VhZ2UgaWQ9J0VOJz5FbmdsaXNoPC9sYW5ndWFnZT4KKzxsYW5ndWFnZSBpZD0nZWJuZic+RXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybSAoZm9ybWFsIGdyYW1tYXIpPC9sYW5ndWFnZT4KKzwvbGFuZ3VzYWdlPgorPHJldmlzaW9uZGVzYz4KKzxzbGlzdD4KKzxzaXRlbT4xOTk3LTEyLTAzIDogQ01TTWNRIDogeWV0IGZ1cnRoZXIgY2hhbmdlczwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMiA6IFRCIDogZnVydGhlciBjaGFuZ2VzIChzZWUgVEIgdG8gWE1MIFdHLAorMiBEZWNlbWJlciAxOTk3KTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMiA6IENNU01jUSA6IGRlYWwgd2l0aCBhcyBtYW55IGNvcnJlY3Rpb25zIGFuZAorY29tbWVudHMgZnJvbSB0aGUgcHJvb2ZyZWFkZXJzIGFzIHBvc3NpYmxlOgorZW50aWZ5IGhhcmQtY29kZWQgZG9jdW1lbnQgZGF0ZSBpbiBwdWJkYXRlIGVsZW1lbnQsCitjaGFuZ2UgZXhwYW5zaW9uIG9mIGVudGl0eSBXZWJTR01MLAordXBkYXRlIHN0YXR1cyBkZXNjcmlwdGlvbiBhcyBwZXIgRGFuIENvbm5vbGx5IChhbSBub3Qgc3VyZQorYWJvdXQgcmVmZXJuZWNlIHRvIEJlcm5lcnMtTGVlIGV0IGFsLiksCithZGQgJ1RoZScgdG8gYWJzdHJhY3QgYXMgcGVyIFdHIGRlY2lzaW9uLAorbW92ZSBSZWxhdGlvbnNoaXAgdG8gRXhpc3RpbmcgU3RhbmRhcmRzIHRvIGJhY2sgbWF0dGVyIGFuZAorY29tYmluZSB3aXRoIFJlZmVyZW5jZXMsCityZS1vcmRlciBiYWNrIG1hdHRlciBzbyBub3JtYXRpdmUgYXBwZW5kaWNlcyBjb21lIGZpcnN0LAorcmUtdGFnIGJhY2sgbWF0dGVyIHNvIGluZm9ybWF0aXZlIGFwcGVuZGljZXMgYXJlIHRhZ2dlZCBpbmZvcm1kaXYxLAorcmVtb3ZlIFhYWCBYWFggZnJvbSBsaXN0IG9mICdub3JtYXRpdmUnIHNwZWNzIGluIHByb3NlLAorbW92ZSBzb21lIHJlZmVyZW5jZXMgZnJvbSBPdGhlciBSZWZlcmVuY2VzIHRvIE5vcm1hdGl2ZSBSZWZlcmVuY2VzLAorYWRkIFJGQyAxNzM4LCAxODA4LCBhbmQgMjE0MSB0byBPdGhlciBSZWZlcmVuY2VzICh0aGV5IGFyZSBub3QKK25vcm1hdGl2ZSBzaW5jZSB3ZSBkbyBub3QgcmVxdWlyZSB0aGUgcHJvY2Vzc29yIHRvIGVuZm9yY2UgYW55IAorcnVsZXMgYmFzZWQgb24gdGhlbSksCithZGQgcmVmZXJlbmNlIHRvICdGaWVsZGluZyBkcmFmdCcgKEJlcm5lcnMtTGVlIGV0IGFsLiksCittb3ZlIG5vdGF0aW9uIHNlY3Rpb24gdG8gZW5kIG9mIGJvZHksCitkcm9wIFVSSWNoYXIgbm9uLXRlcm1pbmFsIGFuZCB1c2UgU2tpcExpdCBpbnN0ZWFkLAorbG9zZSBzdHJheSByZWZlcmVuY2UgdG8gZGVmdW5jdCBub250ZXJtaW5hbCAnbWFya3VwZGVjbHMnLAorbW92ZSByZWZlcmVuY2UgdG8gQWhvIGV0IGFsLiBpbnRvIGFwcGVuZGl4IChUaW0ncyByaWdodCksCithZGQgcHJvc2Ugbm90ZSBzYXlpbmcgdGhhdCBoYXNoIG1hcmtzIGFuZCBmcmFnbWVudCBpZGVudGlmaWVycyBhcmUKK05PVCBwYXJ0IG9mIHRoZSBVUkkgZm9ybWFsbHkgc3BlYWtpbmcsIGFuZCBhcmUgTk9UIGxlZ2FsIGluIAorc3lzdGVtIGlkZW50aWZpZXJzIChwcm9jZXNzb3IgJ21heScgc2lnbmFsIGFuIGVycm9yKS4KK1dvcmsgdGhyb3VnaDoKK1RpbSBCcmF5IHJlYWN0aW5nIHRvIEphbWVzIENsYXJrLAorVGltIEJyYXkgb24gaGlzIG93biwKK0V2ZSBNYWxlciwKKworTk9UIERPTkUgWUVUOgorY2hhbmdlIGJpbmFyeSAvIHRleHQgdG8gdW5wYXJzZWQgLyBwYXJzZWQuCitoYW5kbGUgSmFtZXMncyBzdWdnZXN0aW9uIGFib3V0ICZsdDsgaW4gYXR0cml1YnRlIHZhbHVlcwordXBwZXJjYXNlIGhleCBjaGFyYWN0ZXJzLAorbmFtZWNoYXIgbGlzdCwKKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMSA6IEpCIDogYWRkIHNvbWUgY29sdW1uLXdpZHRoIHBhcmFtZXRlcnM8L3NpdGVtPgorPHNpdGVtPjE5OTctMTItMDEgOiBDTVNNY1EgOiBiZWdpbiByb3VuZCBvZiBjaGFuZ2VzIHRvIGluY29ycG9yYXRlCityZWNlbnQgV0cgZGVjaXNpb25zIGFuZCBvdGhlciBjb3JyZWN0aW9uczoKK2JpbmRpbmcgc291cmNlcyBvZiBjaGFyYWN0ZXIgZW5jb2RpbmcgaW5mbyAoMjcgQXVnIC8gMyBTZXB0KSwKK2NvcnJlY3Qgd29yZGluZyBvZiBGYXVzdCBxdW90YXRpb24gKHJlc3RvcmUgZHJvcHBlZCBsaW5lKSwKK2Ryb3AgU0REIGZyb20gRW5jb2RpbmdEZWNsLAorY2hhbmdlIHRleHQgYXQgdmVyc2lvbiBudW1iZXIgMS4wLAorZHJvcCBtaXNsZWFkaW5nICh3cm9uZyEpIHNlbnRlbmNlIGFib3V0IGlnbm9yYWJsZXMgYW5kIGV4dGVuZGVycywKK21vZGlmeSBkZWZpbml0aW9uIG9mIFBDRGF0YSB0byBtYWtlIGJhciBvbiBtc2MgZ3JhbW1hdGljYWwsCitjaGFuZ2UgZ3JhbW1hcidzIGhhbmRsaW5nIG9mIGludGVybmFsIHN1YnNldCAoZHJvcCBub24tdGVybWluYWwgbWFya3VwZGVjbHMpLAorY2hhbmdlIGRlZmluaXRpb24gb2YgaW5jbHVkZVNlY3QgdG8gYWxsb3cgY29uZGl0aW9uYWwgc2VjdGlvbnMsCithZGQgaW50ZWdyYWwtZGVjbGFyYXRpb24gY29uc3RyYWludCBvbiBpbnRlcm5hbCBzdWJzZXQsCitkcm9wIG1pc2xlYWRpbmcgLyBkYW5nZXJvdXMgc2VudGVuY2UgYWJvdXQgcmVsYXRpb25zaGlwIG9mCitlbnRpdGllcyB3aXRoIHN5c3RlbSBzdG9yYWdlIG9iamVjdHMsCitjaGFuZ2UgdGFibGUgYm9keSB0YWcgdG8gaHRib2R5IGFzIHBlciBFTSBjaGFuZ2UgdG8gRFRELAorYWRkIHJ1bGUgYWJvdXQgc3BhY2Ugbm9ybWFsaXphdGlvbiBpbiBwdWJsaWMgaWRlbnRpZmllcnMsCithZGQgZGVzY3JpcHRpb24gb2YgaG93IHRvIGdlbmVyYXRlIG91ciBuYW1lLXNwYWNlIHJ1bGVzIGZyb20gCitVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSAobmVlZHMgZnVydGhlciB3b3JrISkuCis8L3NpdGVtPgorPHNpdGVtPjE5OTctMTAtMDggOiBUQiA6IFJlbW92ZWQgJS1jb25zdHJ1Y3RzIGFnYWluLCBuZXcgcnVsZXMKK2ZvciBQRSBhcHBlYXJhbmNlLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMC0wMSA6IFRCIDogQ2FzZS1zZW5zaXRpdmUgbWFya3VwOyBjbGVhbmVkIHVwCitlbGVtZW50LXR5cGUgZGVmcywgbG90c2EgbGl0dGxlIGVkaXRzIGZvciBzdHlsZTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wOS0yNSA6IFRCIDogQ2hhbmdlIHRvIGVsbSdzIG5ldyBEVEQsIHdpdGgKK3N1YnN0YW50aWFsIGRldGFpbCBjbGVhbnVwIGFzIGEgc2lkZS1lZmZlY3Q8L3NpdGVtPgorPHNpdGVtPjE5OTctMDctMjQgOiBDTVNNY1EgOiBjb3JyZWN0IGVycm9yIChsb3N0ICopIGluIGRlZmluaXRpb24gCitvZiBpZ25vcmVTZWN0Q29udGVudHMgKHRoYW5rcyB0byBNYWtvdG8gTXVyYXRhKTwvc2l0ZW0+Cis8c2l0ZW0+QWxsb3cgYWxsIGVtcHR5IGVsZW1lbnRzIHRvIGhhdmUgZW5kLXRhZ3MsIGNvbnNpc3RlbnQgd2l0aAorU0dNTCBUQyAoYXMgcGVyIEpKQykuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTA3LTIzIDogQ01TTWNRIDogcHJlLWVtcHRpdmUgc3RyaWtlIG9uIHBlbmRpbmcgY29ycmVjdGlvbnM6CitpbnRyb2R1Y2UgdGhlIHRlcm0gJ2VtcHR5LWVsZW1lbnQgdGFnJywgbm90ZSB0aGF0IGFsbCBlbXB0eSBlbGVtZW50cworbWF5IHVzZSBpdCwgYW5kIGVsZW1lbnRzIGRlY2xhcmVkIEVNUFRZIG11c3QgdXNlIGl0LgorQWRkIFdGQyByZXF1aXJpbmcgZW5jb2RpbmcgZGVjbCB0byBjb21lIGZpcnN0IGluIGFuIGVudGl0eS4KK1JlZGVmaW5lIG5vdGF0aW9ucyB0byBwb2ludCB0byBQSXMgYXMgd2VsbCBhcyBiaW5hcnkgZW50aXRpZXMuCitDaGFuZ2UgYXV0b2RldGVjdGlvbiB0YWJsZSBieSByZW1vdmluZyBieXRlcyAzIGFuZCA0IGZyb20gCitleGFtcGxlcyB3aXRoIEJ5dGUgT3JkZXIgTWFyay4KK0FkZCBjb250ZW50IG1vZGVsIGFzIGEgdGVybSBhbmQgY2xhcmlmeSB0aGF0IGl0IGFwcGxpZXMgdG8gYm90aAorbWl4ZWQgYW5kIGVsZW1lbnQgY29udGVudC4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0zMCA6IENNU01jUSA6IGNoYW5nZSBkYXRlLCBzb21lIGNvc21ldGljIGNoYW5nZXMsCitjaGFuZ2VzIHRvIHByb2R1Y3Rpb25zIGZvciBjaG9pY2UsIHNlcSwgTWl4ZWQsIE5vdGF0aW9uVHlwZSwKK0VudW1lcmF0aW9uLiAgRm9sbG93IEphbWVzIENsYXJrJ3Mgc3VnZ2VzdGlvbiBhbmQgcHJvaGliaXQgCitjb25kaXRpb25hbCBzZWN0aW9ucyBpbiBpbnRlcm5hbCBzdWJzZXQuICBUTyBETzogIHNpbXBsaWZ5Citwcm9kdWN0aW9uIGZvciBpZ25vcmVkIHNlY3Rpb25zIGFzIGEgcmVzdWx0LCBzaW5jZSB3ZSBkb24ndCAKK25lZWQgdG8gd29ycnkgYWJvdXQgcGFyc2VycyB3aGljaCBkb24ndCBleHBhbmQgUEVyZWZzIGZpbmRpbmcKK2EgY29uZGl0aW9uYWwgc2VjdGlvbi48L3NpdGVtPgorPHNpdGVtPjE5OTctMDYtMjkgOiBUQiA6IHZhcmlvdXMgZWRpdHM8L3NpdGVtPgorPHNpdGVtPjE5OTctMDYtMjkgOiBDTVNNY1EgOiBmdXJ0aGVyIGNoYW5nZXM6CitTdXBwcmVzcyBvbGQgRklOQUwgRURJVCBjb21tZW50cyBhbmQgc29tZSBkZWFkIG1hdGVyaWFsLgorUmV2aXNlIG9jY3VycmVuY2VzIG9mICUgaW4gZ3JhbW1hciB0byBleHBsb2l0IEhlbnJ5IFRob21wc29uJ3MgcHVuLAorZXNwZWNpYWxseSBtYXJrdXBkZWNsIGFuZCBhdHRkZWYuCitSZW1vdmUgUk1EIHJlcXVpcmVtZW50IHJlbGF0aW5nIHRvIGVsZW1lbnQgY29udGVudCAoPykuCis8L3NpdGVtPgorPHNpdGVtPjE5OTctMDYtMjggOiBDTVNNY1EgOiBWYXJpb3VzIGNoYW5nZXMgZm9yIDEgSnVseSBkcmFmdDoKK0FkZCB0ZXh0IGZvciBkcmFjb25pYW4gZXJyb3IgaGFuZGxpbmcgKGludHJvZHVjZQordGhlIHRlcm0gRmF0YWwgRXJyb3IpLgorUkUgZGVsZXRhIGVzdCAoY2hhbmdpbmcgd29yZGluZyBmcm9tIAorb3JpZ2luYWwgYW5ub3VuY2VtZW50IHRvIHJlc3RyaWN0IHRoZSByZXF1aXJlbWVudCB0byB2YWxpZGF0aW5nCitwYXJzZXJzKS4KK1RhZyBkZWZpbml0aW9uIG9mIHZhbGlkYXRpbmcgcHJvY2Vzc29yIGFuZCBsaW5rIHRvIGl0LgorQWRkIGNvbG9uIGFzIG5hbWUgY2hhcmFjdGVyLgorQ2hhbmdlIGRlZiBvZiAlb3BlcmF0b3IuCitDaGFuZ2Ugc3RhbmRhcmQgZGVmaW5pdGlvbnMgb2YgbHQsIGd0LCBhbXAuCitTdHJpcCBsZWFkaW5nIHplcm9zIGZyb20gI3gwMG5uIGZvcm1zLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNC0wMiA6IENNU01jUSA6IGZpbmFsIGNvcnJlY3Rpb25zIG9mIGVkaXRvcmlhbCBlcnJvcnMKK2ZvdW5kIGluIGxhc3QgbmlnaHQncyBwcm9vZnJlYWRpbmcuICBSZXZlcnNlIGNvdXJzZSBvbmNlIG1vcmUgb24KK3dlbGwtZm9ybWVkOiAgIFdlYnN0ZXIncyBTZWNvbmQgaHlwaGVuYXRlcyBpdCwgYW5kIHRoYXQncyBlbm91Z2gKK2ZvciBtZS48L3NpdGVtPgorPHNpdGVtPjE5OTctMDQtMDEgOiBDTVNNY1EgOiBjb3JyZWN0aW9ucyBmcm9tIEpKQywgRU0sIEhULCBhbmQgc2VsZjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0zMSA6IFRpbSBCcmF5IDogbWFueSBjaGFuZ2VzPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTI5IDogQ01TTWNRIDogc29tZSBIZW5yeSBUaG9tcHNvbiAob24gZW50aXR5IGhhbmRsaW5nKSwKK3NvbWUgQ2hhcmxlcyBHb2xkZmFyYiwgc29tZSBFUkIgZGVjaXNpb25zIChQRSBoYW5kbGluZyBpbiBtaXNjZWxsYW5lb3VzCitkZWNsYXJhdGlvbnMuICBDaGFuZ2VkIElkZW50IGVsZW1lbnQgdG8gYWNjZXB0IGRlZiBhdHRyaWJ1dGUuCitBbGxvdyBub3JtYWxpemF0aW9uIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4gIG1vdmUgZGVmIG9mIHN5c3RlbWxpdGVyYWwKK2ludG8gc2VjdGlvbiBvbiBsaXRlcmFscy48L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjggOiBDTVNNY1EgOiBtYWtlIGFzIG1hbnkgY29ycmVjdGlvbnMgYXMgcG9zc2libGUsIGZyb20KK1RlcnJ5IEFsbGVuLCBOb3JiZXJ0IE1pa3VsYSwgSmFtZXMgQ2xhcmssIEpvbiBCb3NhaywgSGVucnkgVGhvbXBzb24sCitQYXVsIEdyb3NzbywgYW5kIHNlbGYuICBBbW9uZyBvdGhlciB0aGluZ3M6ICBnaXZlIGluIG9uICJ3ZWxsIGZvcm1lZCIKKyhUZXJyeSBpcyByaWdodCksIHRlbnRhdGl2ZWx5IHJlbmFtZSBRdW90ZWRDRGF0YSBhcyBBdHRWYWx1ZQorYW5kIExpdGVyYWwgYXMgRW50aXR5VmFsdWUgdG8gYmUgbW9yZSBpbmZvcm1hdGl2ZSwgc2luY2UgYXR0cmlidXRlCit2YWx1ZXMgYXJlIHRoZSA8ZW1waD5vbmx5PC9lbXBoPiBwbGFjZSBRdW90ZWRDRGF0YSB3YXMgdXNlZCwgYW5kCit2aWNlIHZlcnNhIGZvciBlbnRpdHkgdGV4dCBhbmQgTGl0ZXJhbC4gKEknZCBjYWxsIGl0IEVudGl0eSBUZXh0LCAKK2J1dCA4ODc5IHVzZXMgdGhhdCBuYW1lIGZvciBib3RoIGludGVybmFsIGFuZCBleHRlcm5hbCBlbnRpdGllcy4pPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTI2IDogQ01TTWNRIDogcmVzeW5jaCB0aGUgdHdvIGZvcmtzIG9mIHRoaXMgZHJhZnQsIHJlYXBwbHkKK215IGNoYW5nZXMgZGF0ZWQgMDMtMjAgYW5kIDAzLTIxLiAgTm9ybWFsaXplIG9sZCAnbWF5IG5vdCcgdG8gJ211c3Qgbm90JworZXhjZXB0IGluIHRoZSBvbmUgY2FzZSB3aGVyZSBpdCBtZWFudCAnbWF5IG9yIG1heSBub3QnLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yMSA6IFRCIDogbWFzc2l2ZSBjaGFuZ2VzIG9uIHBsYW5lIGZsaWdodCBmcm9tIENoaWNhZ28KK3RvIFZhbmNvdXZlcjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yMSA6IENNU01jUSA6IGNvcnJlY3QgYXMgbWFueSByZXBvcnRlZCBlcnJvcnMgYXMgcG9zc2libGUuCis8L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjAgOiBDTVNNY1EgOiBjb3JyZWN0IHR5cG9zIGxpc3RlZCBpbiBDTVNNY1EgaGFuZCBjb3B5IG9mIHNwZWMuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTIwIDogQ01TTWNRIDogY29zbWV0aWMgY2hhbmdlcyBwcmVwYXJhdG9yeSB0byByZXZpc2lvbiBmb3IKK1dXVyBjb25mZXJlbmNlIEFwcmlsIDE5OTc6ICByZXN0b3JlIHNvbWUgb2YgdGhlIGludGVybmFsIGVudGl0eSAKK3JlZmVyZW5jZXMgKGUuZy4gdG8gZG9jZGF0ZSwgZXRjLiksIGNoYW5nZSBjaGFyYWN0ZXIgeEEwIHRvICZhbXA7bmJzcDsKK2FuZCBkZWZpbmUgbmJzcCBhcyAmYW1wOyMxNjA7LCBhbmQgcmVmaWxsIGEgbG90IG9mIHBhcmFncmFwaHMgZm9yCitsZWdpYmlsaXR5Ljwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMS0xMiA6IENNU01jUSA6IHJldmlzZSB1c2luZyBUaW0ncyBlZGl0czoKK0FkZCBsaXN0IHR5cGUgb2YgTlVNQkVSRUQgYW5kIGNoYW5nZSBtb3N0IGxpc3RzIGVpdGhlciB0bworQlVMTEVUUyBvciB0byBOVU1CRVJFRC4KK1N1cHByZXNzIFF1b3RlZE5hbWVzLCBOYW1lcyAobm90IHVzZWQpLgorQ29ycmVjdCB0cml2aWFsLWdyYW1tYXIgZG9jIHR5cGUgZGVjbC4KK1JlbmFtZSAnbWFya2VkIHNlY3Rpb24nIGFzICdDREFUQSBzZWN0aW9uJyBwYXNzaW0uCitBbHNvIGVkaXRzIGZyb20gSmFtZXMgQ2xhcms6CitEZWZpbmUgdGhlIHNldCBvZiBjaGFyYWN0ZXJzIGZyb20gd2hpY2ggW15hYmNdIHN1YnRyYWN0cy4KK0NoYXJyZWYgc2hvdWxkIHVzZSBqdXN0IFswLTldIG5vdCBEaWdpdC4KK0xvY2F0aW9uIGluZm8gbmVlZHMgY2xlYW5lciB0cmVhdG1lbnQ6ICByZW1vdmU/ICAoRVJCCitxdWVzdGlvbikuCitPbmUgZXhhbXBsZSBvZiBhIFBJIGhhcyB3cm9uZyBwaWMuCitDbGFyaWZ5IGRpc2N1c3Npb24gb2YgZW5jb2RpbmcgbmFtZXMuCitFbmNvZGluZyBmYWlsdXJlIHNob3VsZCBsZWFkIHRvIHVuc3BlY2lmaWVkIHJlc3VsdHM7IGRvbid0CitwcmVzY3JpYmUgZXJyb3IgcmVjb3ZlcnkuCitEb24ndCByZXF1aXJlIGV4cG9zdXJlIG9mIGVudGl0eSBib3VuZGFyaWVzLgorSWdub3JlIHdoaXRlIHNwYWNlIGluIGVsZW1lbnQgY29udGVudC4KK1Jlc2VydmUgZW50aXR5IG5hbWVzIG9mIHRoZSBmb3JtIHUtTk5OTi4KK0NsYXJpZnkgcmVsYXRpdmUgVVJMcy4KK0FuZCBzb21lIG9mIG15IG93bjoKK0NvcnJlY3QgcHJvZHVjdGlvbnMgZm9yIGNvbnRlbnQgbW9kZWw6ICBtb2RlbCBjYW5ub3QKK2NvbnNpc3Qgb2YgYSBuYW1lLCBzbyAiZWxlbWVudHMgOjo9IGNwIiBpcyBubyBnb29kLgorPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTExLTExIDogQ01TTWNRIDogcmV2aXNlIGZvciBzdHlsZS4KK0FkZCBuZXcgcmhzIHRvIGVudGl0eSBkZWNsYXJhdGlvbiwgZm9yIHBhcmFtZXRlciBlbnRpdGllcy48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTEtMTAgOiBDTVNNY1EgOiByZXZpc2UgZm9yIHN0eWxlLgorRml4IC8gY29tcGxldGUgc2VjdGlvbiBvbiBuYW1lcywgY2hhcmFjdGVycy4KK0FkZCBzZWN0aW9ucyBvbiBwYXJhbWV0ZXIgZW50aXRpZXMsIGNvbmRpdGlvbmFsIHNlY3Rpb25zLgorU3RpbGwgdG8gZG86ICBBZGQgY29tcGF0aWJpbGl0eSBub3RlIG9uIGRldGVybWluaXN0aWMgY29udGVudCBtb2RlbHMuCitGaW5pc2ggc3R5bGlzdGljIHJldmlzaW9uLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0zMSA6IFRCIDogQWRkIEVudGl0eSBIYW5kbGluZyBzZWN0aW9uPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTMwIDogVEIgOiBDbGVhbiB1cCB0ZXJtICZhbXA7IHRlcm1kZWYuICBTbGlwIGluCitFUkIgZGVjaXNpb24gcmUgRU1QVFkuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTI4IDogVEIgOiBDaGFuZ2UgRFRELiAgSW1wbGVtZW50IHNvbWUgb2YgTWljaGFlbCdzCitzdWdnZXN0aW9ucy4gIENoYW5nZSBjb21tZW50cyBiYWNrIHRvIC8vLiAgSW50cm9kdWNlIGxhbmd1YWdlIGZvcgorWE1MIG5hbWVzcGFjZSByZXNlcnZhdGlvbi4gIEFkZCBzZWN0aW9uIG9uIHdoaXRlLXNwYWNlIGhhbmRsaW5nLgorTG90cyBtb3JlIGNsZWFudXAuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTI0IDogQ01TTWNRIDogcXVpY2sgdHdlYWtzLCBpbXBsZW1lbnQgc29tZSBFUkIKK2RlY2lzaW9ucy4gIENoYXJhY3RlcnMgYXJlIG5vdCBpbnRlZ2Vycy4gIENvbW1lbnRzIGFyZSAvKiAqLyBub3QgLy8uCitBZGQgYmlibGlvZ3JhcGhpYyByZWZzIHRvIDEwNjQ2LCBIeVRpbWUsIFVuaWNvZGUuCitSZW5hbWUgb2xkIENkYXRhIGFzIE1zRGF0YSBzaW5jZSBpdCdzIDxlbXBoPm9ubHk8L2VtcGg+IHNlZW4KK2luIG1hcmtlZCBzZWN0aW9ucy4gIENhbGwgdGhlbSBhdHRyaWJ1dGUtdmFsdWUgcGFpcnMgbm90CituYW1lLXZhbHVlIHBhaXJzLCBleGNlcHQgb25jZS4gIEludGVybmFsIHN1YnNldCBpcyBvcHRpb25hbCwgbmVlZHMKKyc/Jy4gIEltcGxpZWQgYXR0cmlidXRlcyBzaG91bGQgYmUgc2lnbmFsZWQgdG8gdGhlIGFwcCwgbm90CitoYXZlIHZhbHVlcyBzdXBwbGllZCBieSBwcm9jZXNzb3IuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTE2IDogVEIgOiB0cmFjayBkb3duICZhbXA7IGV4Y2lzZSBhbGwgRFNEIHJlZmVyZW5jZXM7CitpbnRyb2R1Y2Ugc29tZSBFQk5GIGZvciBlbnRpdHkgZGVjbGFyYXRpb25zLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0/PyA6IFRCIDogY29uc2lzdGVuY3kgY2hlY2ssIGZpeCB1cCBzY3JhcHMgc28KK3RoZXkgYWxsIHBhcnNlLCBnZXQgZm9ybWF0dGVyIHdvcmtpbmcsIGNvcnJlY3QgYSBmZXcgcHJvZHVjdGlvbnMuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTEwLzExIDogQ01TTWNRIDogdmFyaW91cyBtYWludGVuYW5jZSwgc3R5bGlzdGljLCBhbmQKK29yZ2FuaXphdGlvbmFsIGNoYW5nZXM6CitSZXBsYWNlIGEgZmV3IGxpdGVyYWxzIHdpdGggeG1scGlvIGFuZAorcGljIGVudGl0aWVzLCB0byBtYWtlIHRoZW0gY29uc2lzdGVudCBhbmQgZW5zdXJlIHdlIGNhbiBjaGFuZ2UgcGljCityZWxpYWJseSB3aGVuIHRoZSBFUkIgdm90ZXMuCitEcm9wIHBhcmFncmFwaCBvbiByZWNvZ25pemVycyBmcm9tIG5vdGF0aW9uIHNlY3Rpb24uCitBZGQgbWF0Y2gsIGV4YWN0IG1hdGNoIHRvIHRlcm1pbm9sb2d5LgorTW92ZSBvbGQgMi4yIFhNTCBQcm9jZXNzb3JzIGFuZCBBcHBzIGludG8gaW50cm8uCitNZW50aW9uIGNvbW1lbnRzLCBQSXMsIGFuZCBtYXJrZWQgc2VjdGlvbnMgaW4gZGlzY3Vzc2lvbiBvZgorZGVsaW1pdGVyIGVzY2FwaW5nLgorU3RyZWFtbGluZSBkaXNjdXNzaW9uIG9mIGRvY3R5cGUgZGVjbCBzeW50YXguCitEcm9wIG9sZCBzZWN0aW9uIG9mICdQSSBzeW50YXgnIGZvciBkb2N0eXBlIGRlY2wsIGFuZCBhZGQKK3NlY3Rpb24gb24gcGFydGlhbC1EVEQgc3VtbWFyeSBQSXMgdG8gZW5kIG9mIExvZ2ljYWwgU3RydWN0dXJlcworc2VjdGlvbi4KK1JldmlzZSBEU0Qgc3ludGF4IHNlY3Rpb24gdG8gdXNlIFRpbSdzIHN1YnNldC1pbi1hLVBJCittZWNoYW5pc20uPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTEwIDogVEIgOiBlbGltaW5hdGUgbmFtZSByZWNvZ25pemVycyAoYW5kIG1vcmU/KTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wOSA6IENNU01jUSA6IHJldmlzZSBmb3Igc3R5bGUsIGNvbnNpc3RlbmN5IHRocm91Z2ggMi4zCisoQ2hhcmFjdGVycyk8L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMDkgOiBDTVNNY1EgOiByZS11bml0ZSBldmVyeXRoaW5nIGZvciBjb252ZW5pZW5jZSwKK2F0IGxlYXN0IHRlbXBvcmFyaWx5LCBhbmQgcmV2aXNlIHF1aWNrbHk8L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMDggOiBUQiA6IGZpcnN0IG1ham9yIGhvbW9nZW5pemF0aW9uIHBhc3M8L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMDggOiBUQiA6IHR1cm4gImN1cnJlbnQiIGF0dHJpYnV0ZSBvbiBkaXYgdHlwZSBpbnRvIAorQ0RBVEE8L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMDIgOiBUQiA6IHJlbW91bGQgaW50byBza2VsZXRvbiArIGVudGl0aWVzPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTA5LTMwIDogQ01TTWNRIDogYWRkIGEgZmV3IG1vcmUgc2VjdGlvbnMgcHJpb3IgdG8gZXhjaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIFRpbS48L3NpdGVtPgorPHNpdGVtPjE5OTYtMDktMjAgOiBDTVNNY1EgOiBmaW5pc2ggdHJhbnNjcmliaW5nIG5vdGVzLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0wOS0xOSA6IENNU01jUSA6IGJlZ2luIHRyYW5zY3JpYmluZyBub3RlcyBmb3IgZHJhZnQuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTA5LTEzIDogQ01TTWNRIDogbWFkZSBvdXRsaW5lIGZyb20gbm90ZXMgb2YgMDktMDYsCitkbyBzb21lIGhvdXNla2VlcGluZzwvc2l0ZW0+Cis8L3NsaXN0PgorPC9yZXZpc2lvbmRlc2M+Cis8L2hlYWRlcj4KKzxib2R5PiAKKzxkaXYxIGlkPSdzZWMtaW50cm8nPgorPGhlYWQ+SW50cm9kdWN0aW9uPC9oZWFkPgorPHA+RXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UsIGFiYnJldmlhdGVkIFhNTCwgZGVzY3JpYmVzIGEgY2xhc3Mgb2YKK2RhdGEgb2JqZWN0cyBjYWxsZWQgPHRlcm1yZWYgZGVmPSJkdC14bWwtZG9jIj5YTUwgZG9jdW1lbnRzPC90ZXJtcmVmPiBhbmQKK3BhcnRpYWxseSBkZXNjcmliZXMgdGhlIGJlaGF2aW9yIG9mIAorY29tcHV0ZXIgcHJvZ3JhbXMgd2hpY2ggcHJvY2VzcyB0aGVtLiBYTUwgaXMgYW4gYXBwbGljYXRpb24gcHJvZmlsZSBvcgorcmVzdHJpY3RlZCBmb3JtIG9mIFNHTUwsIHRoZSBTdGFuZGFyZCBHZW5lcmFsaXplZCBNYXJrdXAgCitMYW5ndWFnZSA8YmlicmVmIHJlZj0nSVNPODg3OScvPi4KK0J5IGNvbnN0cnVjdGlvbiwgWE1MIGRvY3VtZW50cyAKK2FyZSBjb25mb3JtaW5nIFNHTUwgZG9jdW1lbnRzLgorPC9wPgorPHA+WE1MIGRvY3VtZW50cyBhcmUgbWFkZSB1cCBvZiBzdG9yYWdlIHVuaXRzIGNhbGxlZCA8dGVybXJlZgorZGVmPSJkdC1lbnRpdHkiPmVudGl0aWVzPC90ZXJtcmVmPiwgd2hpY2ggY29udGFpbiBlaXRoZXIgcGFyc2VkCitvciB1bnBhcnNlZCBkYXRhLgorUGFyc2VkIGRhdGEgaXMgbWFkZSB1cCBvZiA8dGVybXJlZiBkZWY9ImR0LWNoYXJhY3RlciI+Y2hhcmFjdGVyczwvdGVybXJlZj4sCitzb21lIAorb2Ygd2hpY2ggZm9ybSA8dGVybXJlZiBkZWY9ImR0LWNoYXJkYXRhIj5jaGFyYWN0ZXIgZGF0YTwvdGVybXJlZj4sIAorYW5kIHNvbWUgb2Ygd2hpY2ggZm9ybSA8dGVybXJlZiBkZWY9ImR0LW1hcmt1cCI+bWFya3VwPC90ZXJtcmVmPi4KK01hcmt1cCBlbmNvZGVzIGEgZGVzY3JpcHRpb24gb2YgdGhlIGRvY3VtZW50J3Mgc3RvcmFnZSBsYXlvdXQgYW5kCitsb2dpY2FsIHN0cnVjdHVyZS4gWE1MIHByb3ZpZGVzIGEgbWVjaGFuaXNtIHRvIGltcG9zZSBjb25zdHJhaW50cyBvbgordGhlIHN0b3JhZ2UgbGF5b3V0IGFuZCBsb2dpY2FsIHN0cnVjdHVyZS48L3A+Cis8cD48dGVybWRlZiBpZD0iZHQteG1sLXByb2MiIHRlcm09IlhNTCBQcm9jZXNzb3IiPkEgc29mdHdhcmUgbW9kdWxlCitjYWxsZWQgYW4gPHRlcm0+WE1MIHByb2Nlc3NvcjwvdGVybT4gaXMgdXNlZCB0byByZWFkIFhNTCBkb2N1bWVudHMKK2FuZCBwcm92aWRlIGFjY2VzcyB0byB0aGVpciBjb250ZW50IGFuZCBzdHJ1Y3R1cmUuPC90ZXJtZGVmPiA8dGVybWRlZgoraWQ9ImR0LWFwcCIgdGVybT0iQXBwbGljYXRpb24iPkl0IGlzIGFzc3VtZWQgdGhhdCBhbiBYTUwgcHJvY2Vzc29yIGlzCitkb2luZyBpdHMgd29yayBvbiBiZWhhbGYgb2YgYW5vdGhlciBtb2R1bGUsIGNhbGxlZCB0aGUKKzx0ZXJtPmFwcGxpY2F0aW9uPC90ZXJtPi48L3Rlcm1kZWY+IFRoaXMgc3BlY2lmaWNhdGlvbiBkZXNjcmliZXMgdGhlCityZXF1aXJlZCBiZWhhdmlvciBvZiBhbiBYTUwgcHJvY2Vzc29yIGluIHRlcm1zIG9mIGhvdyBpdCBtdXN0IHJlYWQgWE1MCitkYXRhIGFuZCB0aGUgaW5mb3JtYXRpb24gaXQgbXVzdCBwcm92aWRlIHRvIHRoZSBhcHBsaWNhdGlvbi48L3A+CisgCis8ZGl2MiBpZD0nc2VjLW9yaWdpbi1nb2Fscyc+Cis8aGVhZD5PcmlnaW4gYW5kIEdvYWxzPC9oZWFkPgorPHA+WE1MIHdhcyBkZXZlbG9wZWQgYnkgYW4gWE1MIFdvcmtpbmcgR3JvdXAgKG9yaWdpbmFsbHkga25vd24gYXMgdGhlCitTR01MIEVkaXRvcmlhbCBSZXZpZXcgQm9hcmQpIGZvcm1lZCB1bmRlciB0aGUgYXVzcGljZXMgb2YgdGhlIFdvcmxkCitXaWRlIFdlYiBDb25zb3J0aXVtIChXM0MpIGluIDE5OTYuCitJdCB3YXMgY2hhaXJlZCBieSBKb24gQm9zYWsgb2YgU3VuCitNaWNyb3N5c3RlbXMgd2l0aCB0aGUgYWN0aXZlIHBhcnRpY2lwYXRpb24gb2YgYW4gWE1MIFNwZWNpYWwKK0ludGVyZXN0IEdyb3VwIChwcmV2aW91c2x5IGtub3duIGFzIHRoZSBTR01MIFdvcmtpbmcgR3JvdXApIGFsc28KK29yZ2FuaXplZCBieSB0aGUgVzNDLiBUaGUgbWVtYmVyc2hpcCBvZiB0aGUgWE1MIFdvcmtpbmcgR3JvdXAgaXMgZ2l2ZW4KK2luIGFuIGFwcGVuZGl4LiBEYW4gQ29ubm9sbHkgc2VydmVkIGFzIHRoZSBXRydzIGNvbnRhY3Qgd2l0aCB0aGUgVzNDLgorPC9wPgorPHA+VGhlIGRlc2lnbiBnb2FscyBmb3IgWE1MIGFyZTo8b2xpc3Q+Cis8aXRlbT48cD5YTUwgc2hhbGwgYmUgc3RyYWlnaHRmb3J3YXJkbHkgdXNhYmxlIG92ZXIgdGhlCitJbnRlcm5ldC48L3A+PC9pdGVtPgorPGl0ZW0+PHA+WE1MIHNoYWxsIHN1cHBvcnQgYSB3aWRlIHZhcmlldHkgb2YgYXBwbGljYXRpb25zLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5YTUwgc2hhbGwgYmUgY29tcGF0aWJsZSB3aXRoIFNHTUwuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPkl0IHNoYWxsIGJlIGVhc3kgdG8gd3JpdGUgcHJvZ3JhbXMgd2hpY2ggcHJvY2VzcyBYTUwKK2RvY3VtZW50cy48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VGhlIG51bWJlciBvZiBvcHRpb25hbCBmZWF0dXJlcyBpbiBYTUwgaXMgdG8gYmUga2VwdCB0byB0aGUKK2Fic29sdXRlIG1pbmltdW0sIGlkZWFsbHkgemVyby48L3A+PC9pdGVtPgorPGl0ZW0+PHA+WE1MIGRvY3VtZW50cyBzaG91bGQgYmUgaHVtYW4tbGVnaWJsZSBhbmQgcmVhc29uYWJseQorY2xlYXIuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRoZSBYTUwgZGVzaWduIHNob3VsZCBiZSBwcmVwYXJlZCBxdWlja2x5LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgZGVzaWduIG9mIFhNTCBzaGFsbCBiZSBmb3JtYWwgYW5kIGNvbmNpc2UuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlhNTCBkb2N1bWVudHMgc2hhbGwgYmUgZWFzeSB0byBjcmVhdGUuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRlcnNlbmVzcyBpbiBYTUwgbWFya3VwIGlzIG9mIG1pbmltYWwgaW1wb3J0YW5jZS48L3A+PC9pdGVtPjwvb2xpc3Q+Cis8L3A+Cis8cD5UaGlzIHNwZWNpZmljYXRpb24sIAordG9nZXRoZXIgd2l0aCBhc3NvY2lhdGVkIHN0YW5kYXJkcworKFVuaWNvZGUgYW5kIElTTy9JRUMgMTA2NDYgZm9yIGNoYXJhY3RlcnMsCitJbnRlcm5ldCBSRkMgMTc2NiBmb3IgbGFuZ3VhZ2UgaWRlbnRpZmljYXRpb24gdGFncywgCitJU08gNjM5IGZvciBsYW5ndWFnZSBuYW1lIGNvZGVzLCBhbmQgCitJU08gMzE2NiBmb3IgY291bnRyeSBuYW1lIGNvZGVzKSwKK3Byb3ZpZGVzIGFsbCB0aGUgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IHRvIHVuZGVyc3RhbmQgCitYTUwgVmVyc2lvbiAmWE1MLnZlcnNpb247CithbmQgY29uc3RydWN0IGNvbXB1dGVyIHByb2dyYW1zIHRvIHByb2Nlc3MgaXQuPC9wPgorPHA+VGhpcyB2ZXJzaW9uIG9mIHRoZSBYTUwgc3BlY2lmaWNhdGlvbgorPCEtLSBpcyBmb3IgJmRvYy5hdWRpZW5jZTsuLS0+CismZG9jLmRpc3RyaWJ1dGlvbjsuPC9wPgorCis8L2RpdjI+CisgCisKKworIAorPGRpdjIgaWQ9J3NlYy10ZXJtaW5vbG9neSc+Cis8aGVhZD5UZXJtaW5vbG9neTwvaGVhZD4KKyAKKzxwPlRoZSB0ZXJtaW5vbG9neSB1c2VkIHRvIGRlc2NyaWJlIFhNTCBkb2N1bWVudHMgaXMgZGVmaW5lZCBpbiB0aGUgYm9keSBvZgordGhpcyBzcGVjaWZpY2F0aW9uLgorVGhlIHRlcm1zIGRlZmluZWQgaW4gdGhlIGZvbGxvd2luZyBsaXN0IGFyZSB1c2VkIGluIGJ1aWxkaW5nIHRob3NlCitkZWZpbml0aW9ucyBhbmQgaW4gZGVzY3JpYmluZyB0aGUgYWN0aW9ucyBvZiBhbiBYTUwgcHJvY2Vzc29yOgorPGdsaXN0PgorPGdpdGVtPgorPGxhYmVsPm1heTwvbGFiZWw+Cis8ZGVmPjxwPjx0ZXJtZGVmIGlkPSJkdC1tYXkiIHRlcm09Ik1heSI+Q29uZm9ybWluZyBkb2N1bWVudHMgYW5kIFhNTAorcHJvY2Vzc29ycyBhcmUgcGVybWl0dGVkIHRvIGJ1dCBuZWVkIG5vdCBiZWhhdmUgYXMKK2Rlc2NyaWJlZC48L3Rlcm1kZWY+PC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD5tdXN0PC9sYWJlbD4KKzxkZWY+PHA+Q29uZm9ybWluZyBkb2N1bWVudHMgYW5kIFhNTCBwcm9jZXNzb3JzIAorYXJlIHJlcXVpcmVkIHRvIGJlaGF2ZSBhcyBkZXNjcmliZWQ7IG90aGVyd2lzZSB0aGV5IGFyZSBpbiBlcnJvci4KKzwhLS0gZG8gTk9UIGNoYW5nZSB0aGlzISB0aGlzIGlzIHdoYXQgZGVmaW5lcyBhIHZpb2xhdGlvbiBvZgorYSAnbXVzdCcgY2xhdXNlIGFzICdhbiBlcnJvcicuIC1NU00gLS0+Cis8L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmVycm9yPC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9J2R0LWVycm9yJyB0ZXJtPSdFcnJvcicKKz5BIHZpb2xhdGlvbiBvZiB0aGUgcnVsZXMgb2YgdGhpcworc3BlY2lmaWNhdGlvbjsgcmVzdWx0cyBhcmUKK3VuZGVmaW5lZC4gIENvbmZvcm1pbmcgc29mdHdhcmUgbWF5IGRldGVjdCBhbmQgcmVwb3J0IGFuIGVycm9yIGFuZCBtYXkKK3JlY292ZXIgZnJvbSBpdC48L3Rlcm1kZWY+PC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD5mYXRhbCBlcnJvcjwvbGFiZWw+Cis8ZGVmPjxwPjx0ZXJtZGVmIGlkPSJkdC1mYXRhbCIgdGVybT0iRmF0YWwgRXJyb3IiPkFuIGVycm9yCit3aGljaCBhIGNvbmZvcm1pbmcgPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MIHByb2Nlc3NvcjwvdGVybXJlZj4KK211c3QgZGV0ZWN0IGFuZCByZXBvcnQgdG8gdGhlIGFwcGxpY2F0aW9uLgorQWZ0ZXIgZW5jb3VudGVyaW5nIGEgZmF0YWwgZXJyb3IsIHRoZQorcHJvY2Vzc29yIG1heSBjb250aW51ZQorcHJvY2Vzc2luZyB0aGUgZGF0YSB0byBzZWFyY2ggZm9yIGZ1cnRoZXIgZXJyb3JzIGFuZCBtYXkgcmVwb3J0IHN1Y2gKK2Vycm9ycyB0byB0aGUgYXBwbGljYXRpb24uICBJbiBvcmRlciB0byBzdXBwb3J0IGNvcnJlY3Rpb24gb2YgZXJyb3JzLAordGhlIHByb2Nlc3NvciBtYXkgbWFrZSB1bnByb2Nlc3NlZCBkYXRhIGZyb20gdGhlIGRvY3VtZW50ICh3aXRoCitpbnRlcm1pbmdsZWQgY2hhcmFjdGVyIGRhdGEgYW5kIG1hcmt1cCkgYXZhaWxhYmxlIHRvIHRoZSBhcHBsaWNhdGlvbi4KK09uY2UgYSBmYXRhbCBlcnJvciBpcyBkZXRlY3RlZCwgaG93ZXZlciwgdGhlIHByb2Nlc3NvciBtdXN0IG5vdAorY29udGludWUgbm9ybWFsIHByb2Nlc3NpbmcgKGkuZS4sIGl0IG11c3Qgbm90Citjb250aW51ZSB0byBwYXNzIGNoYXJhY3RlciBkYXRhIGFuZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZG9jdW1lbnQncworbG9naWNhbCBzdHJ1Y3R1cmUgdG8gdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBub3JtYWwgd2F5KS4KKzwvdGVybWRlZj48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmF0IHVzZXIgb3B0aW9uPC9sYWJlbD4KKzxkZWY+PHA+Q29uZm9ybWluZyBzb2Z0d2FyZSBtYXkgb3IgbXVzdCAoZGVwZW5kaW5nIG9uIHRoZSBtb2RhbCB2ZXJiIGluIHRoZQorc2VudGVuY2UpIGJlaGF2ZSBhcyBkZXNjcmliZWQ7IGlmIGl0IGRvZXMsIGl0IG11c3QKK3Byb3ZpZGUgdXNlcnMgYSBtZWFucyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYmVoYXZpb3IKK2Rlc2NyaWJlZC48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPnZhbGlkaXR5IGNvbnN0cmFpbnQ8L2xhYmVsPgorPGRlZj48cD5BIHJ1bGUgd2hpY2ggYXBwbGllcyB0byBhbGwgCis8dGVybXJlZiBkZWY9ImR0LXZhbGlkIj52YWxpZDwvdGVybXJlZj4gWE1MIGRvY3VtZW50cy4KK1Zpb2xhdGlvbnMgb2YgdmFsaWRpdHkgY29uc3RyYWludHMgYXJlIGVycm9yczsgdGhleSBtdXN0LCBhdCB1c2VyIG9wdGlvbiwgCitiZSByZXBvcnRlZCBieSAKKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWRhdGluZyI+dmFsaWRhdGluZyBYTUwgcHJvY2Vzc29yczwvdGVybXJlZj4uPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD53ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludDwvbGFiZWw+Cis8ZGVmPjxwPkEgcnVsZSB3aGljaCBhcHBsaWVzIHRvIGFsbCA8dGVybXJlZgorZGVmPSJkdC13ZWxsZm9ybWVkIj53ZWxsLWZvcm1lZDwvdGVybXJlZj4gWE1MIGRvY3VtZW50cy4KK1Zpb2xhdGlvbnMgb2Ygd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnRzIGFyZSAKKzx0ZXJtcmVmIGRlZj0iZHQtZmF0YWwiPmZhdGFsIGVycm9yczwvdGVybXJlZj4uPC9wPjwvZGVmPgorPC9naXRlbT4KKworPGdpdGVtPgorPGxhYmVsPm1hdGNoPC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LW1hdGNoIiB0ZXJtPSJtYXRjaCI+KE9mIHN0cmluZ3Mgb3IgbmFtZXM6KSAKK1R3byBzdHJpbmdzIG9yIG5hbWVzIGJlaW5nIGNvbXBhcmVkIG11c3QgYmUgaWRlbnRpY2FsLgorQ2hhcmFjdGVycyB3aXRoIG11bHRpcGxlIHBvc3NpYmxlIHJlcHJlc2VudGF0aW9ucyBpbiBJU08vSUVDIDEwNjQ2IChlLmcuCitjaGFyYWN0ZXJzIHdpdGggCitib3RoIHByZWNvbXBvc2VkIGFuZCBiYXNlK2RpYWNyaXRpYyBmb3JtcykgbWF0Y2ggb25seSBpZiB0aGV5IGhhdmUgdGhlCitzYW1lIHJlcHJlc2VudGF0aW9uIGluIGJvdGggc3RyaW5ncy4KK0F0IHVzZXIgb3B0aW9uLCBwcm9jZXNzb3JzIG1heSBub3JtYWxpemUgc3VjaCBjaGFyYWN0ZXJzIHRvCitzb21lIGNhbm9uaWNhbCBmb3JtLgorTm8gY2FzZSBmb2xkaW5nIGlzIHBlcmZvcm1lZC4gCisoT2Ygc3RyaW5ncyBhbmQgcnVsZXMgaW4gdGhlIGdyYW1tYXI6KSAgCitBIHN0cmluZyBtYXRjaGVzIGEgZ3JhbW1hdGljYWwgcHJvZHVjdGlvbiBpZiBpdCBiZWxvbmdzIHRvIHRoZQorbGFuZ3VhZ2UgZ2VuZXJhdGVkIGJ5IHRoYXQgcHJvZHVjdGlvbi4KKyhPZiBjb250ZW50IGFuZCBjb250ZW50IG1vZGVsczopCitBbiBlbGVtZW50IG1hdGNoZXMgaXRzIGRlY2xhcmF0aW9uIHdoZW4gaXQgY29uZm9ybXMKK2luIHRoZSBmYXNoaW9uIGRlc2NyaWJlZCBpbiB0aGUgY29uc3RyYWludAorPHNwZWNyZWYgcmVmPSdlbGVtZW50dmFsaWQnLz4uCis8L3Rlcm1kZWY+Cis8L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmZvciBjb21wYXRpYmlsaXR5PC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LWNvbXBhdCIgdGVybT0iRm9yIENvbXBhdGliaWxpdHkiPkEgZmVhdHVyZSBvZgorWE1MIGluY2x1ZGVkIHNvbGVseSB0byBlbnN1cmUgdGhhdCBYTUwgcmVtYWlucyBjb21wYXRpYmxlIHdpdGggU0dNTC4KKzwvdGVybWRlZj48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmZvciBpbnRlcm9wZXJhYmlsaXR5PC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LWludGVyb3AiIHRlcm09IkZvciBpbnRlcm9wZXJhYmlsaXR5Ij5BCitub24tYmluZGluZyByZWNvbW1lbmRhdGlvbiBpbmNsdWRlZCB0byBpbmNyZWFzZSB0aGUgY2hhbmNlcyB0aGF0IFhNTAorZG9jdW1lbnRzIGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIGV4aXN0aW5nIGluc3RhbGxlZCBiYXNlIG9mIFNHTUwKK3Byb2Nlc3NvcnMgd2hpY2ggcHJlZGF0ZSB0aGUKKyZXZWJTR01MOy48L3Rlcm1kZWY+PC9wPjwvZGVmPgorPC9naXRlbT4KKzwvZ2xpc3Q+Cis8L3A+Cis8L2RpdjI+CisKKyAKKzwvZGl2MT4KKzwhLS0gJkRvY3M7IC0tPgorIAorPGRpdjEgaWQ9J3NlYy1kb2N1bWVudHMnPgorPGhlYWQ+RG9jdW1lbnRzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LXhtbC1kb2MiIHRlcm09IlhNTCBEb2N1bWVudCI+CitBIGRhdGEgb2JqZWN0IGlzIGFuCis8dGVybT5YTUwgZG9jdW1lbnQ8L3Rlcm0+IGlmIGl0IGlzCis8dGVybXJlZiBkZWY9ImR0LXdlbGxmb3JtZWQiPndlbGwtZm9ybWVkPC90ZXJtcmVmPiwgYXMKK2RlZmluZWQgaW4gdGhpcyBzcGVjaWZpY2F0aW9uLgorQSB3ZWxsLWZvcm1lZCBYTUwgZG9jdW1lbnQgbWF5IGluIGFkZGl0aW9uIGJlCis8dGVybXJlZiBkZWY9ImR0LXZhbGlkIj52YWxpZDwvdGVybXJlZj4gaWYgaXQgbWVldHMgY2VydGFpbiBmdXJ0aGVyIAorY29uc3RyYWludHMuPC90ZXJtZGVmPjwvcD4KKyAKKzxwPkVhY2ggWE1MIGRvY3VtZW50IGhhcyBib3RoIGEgbG9naWNhbCBhbmQgYSBwaHlzaWNhbCBzdHJ1Y3R1cmUuCitQaHlzaWNhbGx5LCB0aGUgZG9jdW1lbnQgaXMgY29tcG9zZWQgb2YgdW5pdHMgY2FsbGVkIDx0ZXJtcmVmCitkZWY9ImR0LWVudGl0eSI+ZW50aXRpZXM8L3Rlcm1yZWY+LiAgQW4gZW50aXR5IG1heSA8dGVybXJlZgorZGVmPSJkdC1lbnRyZWYiPnJlZmVyPC90ZXJtcmVmPiB0byBvdGhlciBlbnRpdGllcyB0byBjYXVzZSB0aGVpcgoraW5jbHVzaW9uIGluIHRoZSBkb2N1bWVudC4gQSBkb2N1bWVudCBiZWdpbnMgaW4gYSAicm9vdCIgIG9yIDx0ZXJtcmVmCitkZWY9ImR0LWRvY2VudCI+ZG9jdW1lbnQgZW50aXR5PC90ZXJtcmVmPi4KK0xvZ2ljYWxseSwgdGhlIGRvY3VtZW50IGlzIGNvbXBvc2VkIG9mIGRlY2xhcmF0aW9ucywgZWxlbWVudHMsIAorY29tbWVudHMsCitjaGFyYWN0ZXIgcmVmZXJlbmNlcywgYW5kCitwcm9jZXNzaW5nCitpbnN0cnVjdGlvbnMsIGFsbCBvZiB3aGljaCBhcmUgaW5kaWNhdGVkIGluIHRoZSBkb2N1bWVudCBieSBleHBsaWNpdAorbWFya3VwLgorVGhlIGxvZ2ljYWwgYW5kIHBoeXNpY2FsIHN0cnVjdHVyZXMgbXVzdCBuZXN0IHByb3Blcmx5LCBhcyBkZXNjcmliZWQgIAoraW4gPHNwZWNyZWYgcmVmPSd3Zi1lbnRpdGllcycvPi4KKzwvcD4KKyAKKzxkaXYyIGlkPSdzZWMtd2VsbC1mb3JtZWQnPgorPGhlYWQ+V2VsbC1Gb3JtZWQgWE1MIERvY3VtZW50czwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC13ZWxsZm9ybWVkIiB0ZXJtPSJXZWxsLUZvcm1lZCI+CitBIHRleHR1YWwgb2JqZWN0IGlzIAorYSB3ZWxsLWZvcm1lZCBYTUwgZG9jdW1lbnQgaWY6PC90ZXJtZGVmPgorPG9saXN0PgorPGl0ZW0+PHA+VGFrZW4gYXMgYSB3aG9sZSwgaXQKK21hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZCA8bnQgZGVmPSdOVC1kb2N1bWVudCc+ZG9jdW1lbnQ8L250Pi48L3A+PC9pdGVtPgorPGl0ZW0+PHA+SXQKK21lZXRzIGFsbCB0aGUgd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnRzIGdpdmVuIGluIHRoaXMgc3BlY2lmaWNhdGlvbi48L3A+Cis8L2l0ZW0+Cis8aXRlbT48cD5FYWNoIG9mIHRoZSA8dGVybXJlZiBkZWY9J2R0LXBhcnNlZGVudCc+cGFyc2VkIGVudGl0aWVzPC90ZXJtcmVmPiAKK3doaWNoIGlzIHJlZmVyZW5jZWQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB3aXRoaW4gdGhlIGRvY3VtZW50IGlzCis8dGl0bGVyZWYgaHJlZj0nd2YtZW50aXRpZXMnPndlbGwtZm9ybWVkPC90aXRsZXJlZj4uPC9wPjwvaXRlbT4KKzwvb2xpc3Q+PC9wPgorPHA+Cis8c2NyYXAgbGFuZz0nZWJuZicgaWQ9J2RvY3VtZW50Jz4KKzxoZWFkPkRvY3VtZW50PC9oZWFkPgorPHByb2QgaWQ9J05ULWRvY3VtZW50Jz48bGhzPmRvY3VtZW50PC9saHM+Cis8cmhzPjxudCBkZWY9J05ULXByb2xvZyc+cHJvbG9nPC9udD4gCis8bnQgZGVmPSdOVC1lbGVtZW50Jz5lbGVtZW50PC9udD4gCis8bnQgZGVmPSdOVC1NaXNjJz5NaXNjPC9udD4qPC9yaHM+PC9wcm9kPgorPC9zY3JhcD4KKzwvcD4KKzxwPk1hdGNoaW5nIHRoZSA8bnQgZGVmPSJOVC1kb2N1bWVudCI+ZG9jdW1lbnQ8L250PiBwcm9kdWN0aW9uIAoraW1wbGllcyB0aGF0OgorPG9saXN0PgorPGl0ZW0+PHA+SXQgY29udGFpbnMgb25lIG9yIG1vcmUKKzx0ZXJtcmVmIGRlZj0iZHQtZWxlbWVudCI+ZWxlbWVudHM8L3Rlcm1yZWY+LjwvcD4KKzwvaXRlbT4KKzwhLS0qIE4uQi4gc29tZSByZWFkZXJzIChub3RhYmx5IEpDKSBmaW5kIHRoZSBmb2xsb3dpbmcKK3BhcmFncmFwaCBhd2t3YXJkIGFuZCByZWR1bmRhbnQuICBJIGFncmVlIGl0J3MgbG9naWNhbGx5IHJlZHVuZGFudDoKK2l0ICpzYXlzKiBpdCBpcyBzdW1tYXJpemluZyB0aGUgbG9naWNhbCBpbXBsaWNhdGlvbnMgb2YKK21hdGNoaW5nIHRoZSBncmFtbWFyLCBhbmQgdGhhdCBtZWFucyBieSBkZWZpbml0aW9uIGl0J3MKK2xvZ2ljYWxseSByZWR1bmRhbnQuICBJIGRvbid0IHRoaW5rIGl0J3MgcmhldG9yaWNhbGx5CityZWR1bmRhbnQgb3IgdW5uZWNlc3NhcnksIHRob3VnaCwgc28gSSdtIGtlZXBpbmcgaXQuICBJdAorY291bGQgaG93ZXZlciB1c2Ugc29tZSByZWNhc3Rpbmcgd2hlbiB0aGUgZWRpdG9ycyBhcmUgZmVlbGluZworc3Ryb25nZXIuIC1NU00gKi0tPgorPGl0ZW0+PHA+PHRlcm1kZWYgaWQ9ImR0LXJvb3QiIHRlcm09IlJvb3QgRWxlbWVudCI+VGhlcmUgaXMgIGV4YWN0bHkKK29uZSBlbGVtZW50LCBjYWxsZWQgdGhlIDx0ZXJtPnJvb3Q8L3Rlcm0+LCBvciBkb2N1bWVudCBlbGVtZW50LCAgbm8KK3BhcnQgb2Ygd2hpY2ggYXBwZWFycyBpbiB0aGUgPHRlcm1yZWYKK2RlZj0iZHQtY29udGVudCI+Y29udGVudDwvdGVybXJlZj4gb2YgYW55IG90aGVyIGVsZW1lbnQuPC90ZXJtZGVmPgorRm9yIGFsbCBvdGhlciBlbGVtZW50cywgaWYgdGhlIHN0YXJ0LXRhZyBpcyBpbiB0aGUgY29udGVudCBvZiBhbm90aGVyCitlbGVtZW50LCB0aGUgZW5kLXRhZyBpcyBpbiB0aGUgY29udGVudCBvZiB0aGUgc2FtZSBlbGVtZW50LiAgTW9yZQorc2ltcGx5IHN0YXRlZCwgdGhlIGVsZW1lbnRzLCBkZWxpbWl0ZWQgYnkgc3RhcnQtIGFuZCBlbmQtdGFncywgbmVzdAorcHJvcGVybHkgd2l0aGluIGVhY2ggb3RoZXIuCis8L3A+PC9pdGVtPgorPC9vbGlzdD4KKzwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1wYXJlbnRjaGlsZCIgdGVybT0iUGFyZW50L0NoaWxkIj5BcyBhIGNvbnNlcXVlbmNlIAorb2YgdGhpcywKK2ZvciBlYWNoIG5vbi1yb290IGVsZW1lbnQKKzxjb2RlPkM8L2NvZGU+IGluIHRoZSBkb2N1bWVudCwgdGhlcmUgaXMgb25lIG90aGVyIGVsZW1lbnQgPGNvZGU+UDwvY29kZT4KK2luIHRoZSBkb2N1bWVudCBzdWNoIHRoYXQgCis8Y29kZT5DPC9jb2RlPiBpcyBpbiB0aGUgY29udGVudCBvZiA8Y29kZT5QPC9jb2RlPiwgYnV0IGlzIG5vdCBpbgordGhlIGNvbnRlbnQgb2YgYW55IG90aGVyIGVsZW1lbnQgdGhhdCBpcyBpbiB0aGUgY29udGVudCBvZgorPGNvZGU+UDwvY29kZT4uICAKKzxjb2RlPlA8L2NvZGU+IGlzIHJlZmVycmVkIHRvIGFzIHRoZQorPHRlcm0+cGFyZW50PC90ZXJtPiBvZiA8Y29kZT5DPC9jb2RlPiwgYW5kIDxjb2RlPkM8L2NvZGU+IGFzIGEKKzx0ZXJtPmNoaWxkPC90ZXJtPiBvZiA8Y29kZT5QPC9jb2RlPi48L3Rlcm1kZWY+PC9wPjwvZGl2Mj4KKyAKKzxkaXYyIGlkPSJjaGFyc2V0cyI+Cis8aGVhZD5DaGFyYWN0ZXJzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LXRleHQiIHRlcm09IlRleHQiPkEgcGFyc2VkIGVudGl0eSBjb250YWlucworPHRlcm0+dGV4dDwvdGVybT4sIGEgc2VxdWVuY2Ugb2YgCis8dGVybXJlZiBkZWY9ImR0LWNoYXJhY3RlciI+Y2hhcmFjdGVyczwvdGVybXJlZj4sIAord2hpY2ggbWF5IHJlcHJlc2VudCBtYXJrdXAgb3IgY2hhcmFjdGVyIGRhdGEuPC90ZXJtZGVmPiAKKzx0ZXJtZGVmIGlkPSJkdC1jaGFyYWN0ZXIiIHRlcm09IkNoYXJhY3RlciI+QSA8dGVybT5jaGFyYWN0ZXI8L3Rlcm0+IAoraXMgYW4gYXRvbWljIHVuaXQgb2YgdGV4dCBhcyBzcGVjaWZpZWQgYnkKK0lTTy9JRUMgMTA2NDYgPGJpYnJlZiByZWY9IklTTzEwNjQ2Ii8+LgorTGVnYWwgY2hhcmFjdGVycyBhcmUgdGFiLCBjYXJyaWFnZSByZXR1cm4sIGxpbmUgZmVlZCwgYW5kIHRoZSBsZWdhbAorZ3JhcGhpYyBjaGFyYWN0ZXJzIG9mIFVuaWNvZGUgYW5kIElTTy9JRUMgMTA2NDYuCitUaGUgdXNlIG9mICJjb21wYXRpYmlsaXR5IGNoYXJhY3RlcnMiLCBhcyBkZWZpbmVkIGluIHNlY3Rpb24gNi44CitvZiA8YmlicmVmIHJlZj0nVW5pY29kZScvPiwgaXMgZGlzY291cmFnZWQuCis8L3Rlcm1kZWY+IAorPHNjcmFwIGxhbmc9ImVibmYiIGlkPSJjaGFyMzIiPgorPGhlYWQ+Q2hhcmFjdGVyIFJhbmdlPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI0IiBwY3c0PSIxNy41IiBwY3c1PSIxMSI+Cis8cHJvZCBpZD0iTlQtQ2hhciI+PGxocz5DaGFyPC9saHM+IAorPHJocz4jeDkgfCAjeEEgfCAjeEQgfCBbI3gyMC0jeEQ3RkZdIHwgWyN4RTAwMC0jeEZGRkRdIAorfCBbI3gxMDAwMC0jeDEwRkZGRl08L3Jocz4gCis8Y29tPmFueSBVbmljb2RlIGNoYXJhY3RlciwgZXhjbHVkaW5nIHRoZQorc3Vycm9nYXRlIGJsb2NrcywgRkZGRSwgYW5kIEZGRkYuPC9jb20+IDwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvcD4KKworPHA+VGhlIG1lY2hhbmlzbSBmb3IgZW5jb2RpbmcgY2hhcmFjdGVyIGNvZGUgcG9pbnRzIGludG8gYml0IHBhdHRlcm5zIG1heQordmFyeSBmcm9tIGVudGl0eSB0byBlbnRpdHkuIEFsbCBYTUwgcHJvY2Vzc29ycyBtdXN0IGFjY2VwdCB0aGUgVVRGLTgKK2FuZCBVVEYtMTYgZW5jb2RpbmdzIG9mIDEwNjQ2OyB0aGUgbWVjaGFuaXNtcyBmb3Igc2lnbmFsaW5nIHdoaWNoIG9mCit0aGUgdHdvIGlzIGluIHVzZSwgb3IgZm9yIGJyaW5naW5nIG90aGVyIGVuY29kaW5ncyBpbnRvIHBsYXksIGFyZQorZGlzY3Vzc2VkIGxhdGVyLCBpbiA8c3BlY3JlZiByZWY9J2NoYXJlbmNvZGluZycvPi4KKzwvcD4KKzwhLS0KKzxwPlJlZ2FyZGxlc3Mgb2YgdGhlIHNwZWNpZmljIGVuY29kaW5nIHVzZWQsIGFueSBjaGFyYWN0ZXIgaW4gdGhlIElTTy9JRUMKKzEwNjQ2IGNoYXJhY3RlciBzZXQgbWF5IGJlIHJlZmVycmVkIHRvIGJ5IHRoZSBkZWNpbWFsIG9yIGhleGFkZWNpbWFsCitlcXVpdmFsZW50IG9mIGl0cyAKK1VDUy00IGNvZGUgdmFsdWUuCis8L3A+LS0+Cis8L2RpdjI+CisgCis8ZGl2MiBpZD0nc2VjLWNvbW1vbi1zeW4nPgorPGhlYWQ+Q29tbW9uIFN5bnRhY3RpYyBDb25zdHJ1Y3RzPC9oZWFkPgorIAorPHA+VGhpcyBzZWN0aW9uIGRlZmluZXMgc29tZSBzeW1ib2xzIHVzZWQgd2lkZWx5IGluIHRoZSBncmFtbWFyLjwvcD4KKzxwPjxudCBkZWY9Ik5ULVMiPlM8L250PiAod2hpdGUgc3BhY2UpIGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIHNwYWNlICgjeDIwKQorY2hhcmFjdGVycywgY2FycmlhZ2UgcmV0dXJucywgbGluZSBmZWVkcywgb3IgdGFicy4KKworPHNjcmFwIGxhbmc9ImVibmYiIGlkPSd3aGl0ZSc+Cis8aGVhZD5XaGl0ZSBTcGFjZTwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNCIgcGN3ND0iMTcuNSIgcGN3NT0iMTEiPgorPHByb2QgaWQ9J05ULVMnPjxsaHM+UzwvbGhzPgorPHJocz4oI3gyMCB8ICN4OSB8ICN4RCB8ICN4QSkrPC9yaHM+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+PC9wPgorPHA+Q2hhcmFjdGVycyBhcmUgY2xhc3NpZmllZCBmb3IgY29udmVuaWVuY2UgYXMgbGV0dGVycywgZGlnaXRzLCBvciBvdGhlcgorY2hhcmFjdGVycy4gIExldHRlcnMgY29uc2lzdCBvZiBhbiBhbHBoYWJldGljIG9yIHN5bGxhYmljIAorYmFzZSBjaGFyYWN0ZXIgcG9zc2libHkKK2ZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGNvbWJpbmluZyBjaGFyYWN0ZXJzLCBvciBvZiBhbiBpZGVvZ3JhcGhpYworY2hhcmFjdGVyLiAgCitGdWxsIGRlZmluaXRpb25zIG9mIHRoZSBzcGVjaWZpYyBjaGFyYWN0ZXJzIGluIGVhY2ggY2xhc3MKK2FyZSBnaXZlbiBpbiA8c3BlY3JlZiByZWY9J0NoYXJDbGFzc2VzJy8+LjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1uYW1lIiB0ZXJtPSJOYW1lIj5BIDx0ZXJtPk5hbWU8L3Rlcm0+IGlzIGEgdG9rZW4KK2JlZ2lubmluZyB3aXRoIGEgbGV0dGVyIG9yIG9uZSBvZiBhIGZldyBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzLCBhbmQgY29udGludWluZword2l0aCBsZXR0ZXJzLCBkaWdpdHMsIGh5cGhlbnMsIHVuZGVyc2NvcmVzLCBjb2xvbnMsIG9yIGZ1bGwgc3RvcHMsIHRvZ2V0aGVyCitrbm93biBhcyBuYW1lIGNoYXJhY3RlcnMuPC90ZXJtZGVmPgorTmFtZXMgYmVnaW5uaW5nIHdpdGggdGhlIHN0cmluZyAiPGNvZGU+eG1sPC9jb2RlPiIsIG9yIGFueSBzdHJpbmcKK3doaWNoIHdvdWxkIG1hdGNoIDxjb2RlPigoJ1gnfCd4JykgKCdNJ3wnbScpICgnTCd8J2wnKSk8L2NvZGU+LCBhcmUKK3Jlc2VydmVkIGZvciBzdGFuZGFyZGl6YXRpb24gaW4gdGhpcyBvciBmdXR1cmUgdmVyc2lvbnMgb2YgdGhpcworc3BlY2lmaWNhdGlvbi4KKzwvcD4KKzxub3RlPgorPHA+VGhlIGNvbG9uIGNoYXJhY3RlciB3aXRoaW4gWE1MIG5hbWVzIGlzIHJlc2VydmVkIGZvciBleHBlcmltZW50YXRpb24gd2l0aAorbmFtZSBzcGFjZXMuICAKK0l0cyBtZWFuaW5nIGlzIGV4cGVjdGVkIHRvIGJlCitzdGFuZGFyZGl6ZWQgYXQgc29tZSBmdXR1cmUgcG9pbnQsIGF0IHdoaWNoIHBvaW50IHRob3NlIGRvY3VtZW50cyAKK3VzaW5nIHRoZSBjb2xvbiBmb3IgZXhwZXJpbWVudGFsIHB1cnBvc2VzIG1heSBuZWVkIHRvIGJlIHVwZGF0ZWQuCisoVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYW55IG5hbWUtc3BhY2UgbWVjaGFuaXNtCithZG9wdGVkIGZvciBYTUwgd2lsbCBpbiBmYWN0IHVzZSB0aGUgY29sb24gYXMgYSBuYW1lLXNwYWNlIGRlbGltaXRlci4pCitJbiBwcmFjdGljZSwgdGhpcyBtZWFucyB0aGF0IGF1dGhvcnMgc2hvdWxkIG5vdCB1c2UgdGhlIGNvbG9uIGluIFhNTAorbmFtZXMgZXhjZXB0IGFzIHBhcnQgb2YgbmFtZS1zcGFjZSBleHBlcmltZW50cywgYnV0IHRoYXQgWE1MIHByb2Nlc3NvcnMKK3Nob3VsZCBhY2NlcHQgdGhlIGNvbG9uIGFzIGEgbmFtZSBjaGFyYWN0ZXIuPC9wPgorPC9ub3RlPgorPHA+QW4KKzxudCBkZWY9J05ULU5tdG9rZW4nPk5tdG9rZW48L250PiAobmFtZSB0b2tlbikgaXMgYW55IG1peHR1cmUgb2YKK25hbWUgY2hhcmFjdGVycy4KKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPk5hbWVzIGFuZCBUb2tlbnM8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtTmFtZUNoYXInPjxsaHM+TmFtZUNoYXI8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtTGV0dGVyIj5MZXR0ZXI8L250PiAKK3wgPG50IGRlZj0nTlQtRGlnaXQnPkRpZ2l0PC9udD4gCit8ICcuJyB8ICctJyB8ICdfJyB8ICc6JworfCA8bnQgZGVmPSdOVC1Db21iaW5pbmdDaGFyJz5Db21iaW5pbmdDaGFyPC9udD4gCit8IDxudCBkZWY9J05ULUV4dGVuZGVyJz5FeHRlbmRlcjwvbnQ+PC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtTmFtZSc+PGxocz5OYW1lPC9saHM+Cis8cmhzPig8bnQgZGVmPSdOVC1MZXR0ZXInPkxldHRlcjwvbnQ+IHwgJ18nIHwgJzonKQorKDxudCBkZWY9J05ULU5hbWVDaGFyJz5OYW1lQ2hhcjwvbnQ+KSo8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtTmFtZXMnPjxsaHM+TmFtZXM8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IAorKDxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4pKjwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1ObXRva2VuJz48bGhzPk5tdG9rZW48L2xocz4KKzxyaHM+KDxudCBkZWY9J05ULU5hbWVDaGFyJz5OYW1lQ2hhcjwvbnQ+KSs8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtTm10b2tlbnMnPjxsaHM+Tm10b2tlbnM8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtTm10b2tlbic+Tm10b2tlbjwvbnQ+ICg8bnQgZGVmPSdOVC1TJz5TPC9udD4gPG50IGRlZj0nTlQtTm10b2tlbic+Tm10b2tlbjwvbnQ+KSo8L3Jocz48L3Byb2Q+Cis8L3NjcmFwPgorPC9wPgorPHA+TGl0ZXJhbCBkYXRhIGlzIGFueSBxdW90ZWQgc3RyaW5nIG5vdCBjb250YWluaW5nCit0aGUgcXVvdGF0aW9uIG1hcmsgdXNlZCBhcyBhIGRlbGltaXRlciBmb3IgdGhhdCBzdHJpbmcuCitMaXRlcmFscyBhcmUgdXNlZAorZm9yIHNwZWNpZnlpbmcgdGhlIGNvbnRlbnQgb2YgaW50ZXJuYWwgZW50aXRpZXMKKyg8bnQgZGVmPSdOVC1FbnRpdHlWYWx1ZSc+RW50aXR5VmFsdWU8L250PiksCit0aGUgdmFsdWVzIG9mIGF0dHJpYnV0ZXMgKDxudCBkZWY9J05ULUF0dFZhbHVlJz5BdHRWYWx1ZTwvbnQ+KSwgCithbmQgZXh0ZXJuYWwgaWRlbnRpZmllcnMgCisoPG50IGRlZj0iTlQtU3lzdGVtTGl0ZXJhbCI+U3lzdGVtTGl0ZXJhbDwvbnQ+KS4gIAorTm90ZSB0aGF0IGEgPG50IGRlZj0nTlQtU3lzdGVtTGl0ZXJhbCc+U3lzdGVtTGl0ZXJhbDwvbnQ+CitjYW4gYmUgcGFyc2VkIHdpdGhvdXQgc2Nhbm5pbmcgZm9yIG1hcmt1cC4KKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkxpdGVyYWxzPC9oZWFkPgorPHByb2QgaWQ9J05ULUVudGl0eVZhbHVlJz48bGhzPkVudGl0eVZhbHVlPC9saHM+Cis8cmhzPiciJyAKKyhbXiUmYW1wOyJdIAorfCA8bnQgZGVmPSdOVC1QRVJlZmVyZW5jZSc+UEVSZWZlcmVuY2U8L250PiAKK3wgPG50IGRlZj0nTlQtUmVmZXJlbmNlJz5SZWZlcmVuY2U8L250PikqCisnIicgCis8L3Jocz4KKzxyaHM+fCZuYnNwOyAKKyInIiAKKyhbXiUmYW1wOyddIAorfCA8bnQgZGVmPSdOVC1QRVJlZmVyZW5jZSc+UEVSZWZlcmVuY2U8L250PiAKK3wgPG50IGRlZj0nTlQtUmVmZXJlbmNlJz5SZWZlcmVuY2U8L250PikqIAorIiciPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtQXR0VmFsdWUnPjxsaHM+QXR0VmFsdWU8L2xocz4KKzxyaHM+JyInIAorKFteJmx0OyZhbXA7Il0gCit8IDxudCBkZWY9J05ULVJlZmVyZW5jZSc+UmVmZXJlbmNlPC9udD4pKiAKKyciJyAKKzwvcmhzPgorPHJocz58Jm5ic3A7IAorIiciIAorKFteJmx0OyZhbXA7J10gCit8IDxudCBkZWY9J05ULVJlZmVyZW5jZSc+UmVmZXJlbmNlPC9udD4pKiAKKyInIjwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9Ik5ULVN5c3RlbUxpdGVyYWwiPjxsaHM+U3lzdGVtTGl0ZXJhbDwvbGhzPgorPHJocz4oJyInIFteIl0qICciJykgfCZuYnNwOygiJyIgW14nXSogIiciKQorPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtUHViaWRMaXRlcmFsIj48bGhzPlB1YmlkTGl0ZXJhbDwvbGhzPgorPHJocz4nIicgPG50IGRlZj0nTlQtUHViaWRDaGFyJz5QdWJpZENoYXI8L250PiogCisnIicgCit8ICInIiAoPG50IGRlZj0nTlQtUHViaWRDaGFyJz5QdWJpZENoYXI8L250PiAtICInIikqICInIjwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9Ik5ULVB1YmlkQ2hhciI+PGxocz5QdWJpZENoYXI8L2xocz4KKzxyaHM+I3gyMCB8ICN4RCB8ICN4QSAKK3wmbmJzcDtbYS16QS1aMC05XQorfCZuYnNwO1stJygpKywuLzo9PzshKiNAJF8lXTwvcmhzPgorPC9wcm9kPgorPC9zY3JhcD4KKzwvcD4KKworPC9kaXYyPgorCis8ZGl2MiBpZD0nc3ludGF4Jz4KKzxoZWFkPkNoYXJhY3RlciBEYXRhIGFuZCBNYXJrdXA8L2hlYWQ+CisgCis8cD48dGVybXJlZiBkZWY9J2R0LXRleHQnPlRleHQ8L3Rlcm1yZWY+IGNvbnNpc3RzIG9mIGludGVybWluZ2xlZCAKKzx0ZXJtcmVmIGRlZj0iZHQtY2hhcmRhdGEiPmNoYXJhY3RlcgorZGF0YTwvdGVybXJlZj4gYW5kIG1hcmt1cC4KKzx0ZXJtZGVmIGlkPSJkdC1tYXJrdXAiIHRlcm09Ik1hcmt1cCI+PHRlcm0+TWFya3VwPC90ZXJtPiB0YWtlcyB0aGUgZm9ybSBvZgorPHRlcm1yZWYgZGVmPSJkdC1zdGFnIj5zdGFydC10YWdzPC90ZXJtcmVmPiwKKzx0ZXJtcmVmIGRlZj0iZHQtZXRhZyI+ZW5kLXRhZ3M8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1lbXB0eSI+ZW1wdHktZWxlbWVudCB0YWdzPC90ZXJtcmVmPiwKKzx0ZXJtcmVmIGRlZj0iZHQtZW50cmVmIj5lbnRpdHkgcmVmZXJlbmNlczwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWNoYXJyZWYiPmNoYXJhY3RlciByZWZlcmVuY2VzPC90ZXJtcmVmPiwKKzx0ZXJtcmVmIGRlZj0iZHQtY29tbWVudCI+Y29tbWVudHM8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1jZHNlY3Rpb24iPkNEQVRBIHNlY3Rpb248L3Rlcm1yZWY+IGRlbGltaXRlcnMsCis8dGVybXJlZiBkZWY9ImR0LWRvY3R5cGUiPmRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb25zPC90ZXJtcmVmPiwgYW5kCis8dGVybXJlZiBkZWY9ImR0LXBpIj5wcm9jZXNzaW5nIGluc3RydWN0aW9uczwvdGVybXJlZj4uCis8L3Rlcm1kZWY+Cis8L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtY2hhcmRhdGEiIHRlcm09IkNoYXJhY3RlciBEYXRhIj5BbGwgdGV4dCB0aGF0IGlzIG5vdCBtYXJrdXAKK2NvbnN0aXR1dGVzIHRoZSA8dGVybT5jaGFyYWN0ZXIgZGF0YTwvdGVybT4gb2YKK3RoZSBkb2N1bWVudC48L3Rlcm1kZWY+PC9wPgorPHA+VGhlIGFtcGVyc2FuZCBjaGFyYWN0ZXIgKCZhbXA7KSBhbmQgdGhlIGxlZnQgYW5nbGUgYnJhY2tldCAoJmx0OykKK21heSBhcHBlYXIgaW4gdGhlaXIgbGl0ZXJhbCBmb3JtIDxlbXBoPm9ubHk8L2VtcGg+IHdoZW4gdXNlZCBhcyBtYXJrdXAKK2RlbGltaXRlcnMsIG9yIHdpdGhpbiBhIDx0ZXJtcmVmIGRlZj0iZHQtY29tbWVudCI+Y29tbWVudDwvdGVybXJlZj4sIGEKKzx0ZXJtcmVmIGRlZj0iZHQtcGkiPnByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb248L3Rlcm1yZWY+LCAKK29yIGEgPHRlcm1yZWYgZGVmPSJkdC1jZHNlY3Rpb24iPkNEQVRBIHNlY3Rpb248L3Rlcm1yZWY+LiAgCisKK1RoZXkgYXJlIGFsc28gbGVnYWwgd2l0aGluIHRoZSA8dGVybXJlZiBkZWY9J2R0LWxpdGVudHZhbCc+bGl0ZXJhbCBlbnRpdHkKK3ZhbHVlPC90ZXJtcmVmPiBvZiBhbiBpbnRlcm5hbCBlbnRpdHkgZGVjbGFyYXRpb247IHNlZQorPHNwZWNyZWYgcmVmPSd3Zi1lbnRpdGllcycvPi4KKzwhLS0gRklOQUwgRURJVDogIHJlc3RvcmUgaW50ZXJuYWwgZW50aXR5IGRlY2wgb3IgbGVhdmUgaXQgb3V0LiAtLT4KK0lmIHRoZXkgYXJlIG5lZWRlZCBlbHNld2hlcmUsCit0aGV5IG11c3QgYmUgPHRlcm1yZWYgZGVmPSJkdC1lc2NhcGUiPmVzY2FwZWQ8L3Rlcm1yZWY+Cit1c2luZyBlaXRoZXIgPHRlcm1yZWYgZGVmPSdkdC1jaGFycmVmJz5udW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzPC90ZXJtcmVmPgorb3IgdGhlIHN0cmluZ3MKKyI8Y29kZT4mYW1wO2FtcDs8L2NvZGU+IiBhbmQgIjxjb2RlPiZhbXA7bHQ7PC9jb2RlPiIgcmVzcGVjdGl2ZWx5LiAKK1RoZSByaWdodCBhbmdsZQorYnJhY2tldCAoPikgbWF5IGJlIHJlcHJlc2VudGVkIHVzaW5nIHRoZSBzdHJpbmcKKyI8Y29kZT4mYW1wO2d0OzwvY29kZT4iLCBhbmQgbXVzdCwgPHRlcm1yZWYgZGVmPSdkdC1jb21wYXQnPmZvcgorY29tcGF0aWJpbGl0eTwvdGVybXJlZj4sIAorYmUgZXNjYXBlZCB1c2luZworIjxjb2RlPiZhbXA7Z3Q7PC9jb2RlPiIgb3IgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlIAord2hlbiBpdCBhcHBlYXJzIGluIHRoZSBzdHJpbmcKKyI8Y29kZT5dXSZndDs8L2NvZGU+IgoraW4gY29udGVudCwgCit3aGVuIHRoYXQgc3RyaW5nIGlzIG5vdCBtYXJraW5nIHRoZSBlbmQgb2YgCithIDx0ZXJtcmVmIGRlZj0iZHQtY2RzZWN0aW9uIj5DREFUQSBzZWN0aW9uPC90ZXJtcmVmPi4gCis8L3A+Cis8cD4KK0luIHRoZSBjb250ZW50IG9mIGVsZW1lbnRzLCBjaGFyYWN0ZXIgZGF0YSAKK2lzIGFueSBzdHJpbmcgb2YgY2hhcmFjdGVycyB3aGljaCBkb2VzCitub3QgY29udGFpbiB0aGUgc3RhcnQtZGVsaW1pdGVyIG9mIGFueSBtYXJrdXAuICAKK0luIGEgQ0RBVEEgc2VjdGlvbiwgY2hhcmFjdGVyIGRhdGEKK2lzIGFueSBzdHJpbmcgb2YgY2hhcmFjdGVycyBub3QgaW5jbHVkaW5nIHRoZSBDREFUQS1zZWN0aW9uLWNsb3NlCitkZWxpbWl0ZXIsICI8Y29kZT5dXSZndDs8L2NvZGU+Ii48L3A+Cis8cD4KK1RvIGFsbG93IGF0dHJpYnV0ZSB2YWx1ZXMgdG8gY29udGFpbiBib3RoIHNpbmdsZSBhbmQgZG91YmxlIHF1b3RlcywgdGhlCithcG9zdHJvcGhlIG9yIHNpbmdsZS1xdW90ZSBjaGFyYWN0ZXIgKCcpIG1heSBiZSByZXByZXNlbnRlZCBhcworIjxjb2RlPiZhbXA7YXBvczs8L2NvZGU+IiwgYW5kIHRoZSBkb3VibGUtcXVvdGUgY2hhcmFjdGVyICgiKSBhcworIjxjb2RlPiZhbXA7cXVvdDs8L2NvZGU+Ii4KKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPkNoYXJhY3RlciBEYXRhPC9oZWFkPgorPHByb2QgaWQ9J05ULUNoYXJEYXRhJz4KKzxsaHM+Q2hhckRhdGE8L2xocz4KKzxyaHM+W14mbHQ7JmFtcDtdKiAtIChbXiZsdDsmYW1wO10qICddXSZndDsnIFteJmx0OyZhbXA7XSopPC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorPC9wPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9J3NlYy1jb21tZW50cyc+Cis8aGVhZD5Db21tZW50czwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1jb21tZW50IiB0ZXJtPSJDb21tZW50Ij48dGVybT5Db21tZW50czwvdGVybT4gbWF5IAorYXBwZWFyIGFueXdoZXJlIGluIGEgZG9jdW1lbnQgb3V0c2lkZSBvdGhlciAKKzx0ZXJtcmVmIGRlZj0nZHQtbWFya3VwJz5tYXJrdXA8L3Rlcm1yZWY+OyBpbiBhZGRpdGlvbiwKK3RoZXkgbWF5IGFwcGVhciB3aXRoaW4gdGhlIGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24KK2F0IHBsYWNlcyBhbGxvd2VkIGJ5IHRoZSBncmFtbWFyLgorVGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGRvY3VtZW50J3MgPHRlcm1yZWYgZGVmPSJkdC1jaGFyZGF0YSI+Y2hhcmFjdGVyCitkYXRhPC90ZXJtcmVmPjsgYW4gWE1MCitwcm9jZXNzb3IgbWF5LCBidXQgbmVlZCBub3QsIG1ha2UgaXQgcG9zc2libGUgZm9yIGFuIGFwcGxpY2F0aW9uIHRvCityZXRyaWV2ZSB0aGUgdGV4dCBvZiBjb21tZW50cy4KKzx0ZXJtcmVmIGRlZj0iZHQtY29tcGF0Ij5Gb3IgY29tcGF0aWJpbGl0eTwvdGVybXJlZj4sIHRoZSBzdHJpbmcKKyI8Y29kZT4tLTwvY29kZT4iIChkb3VibGUtaHlwaGVuKSBtdXN0IG5vdCBvY2N1ciB3aXRoaW4KK2NvbW1lbnRzLgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+Q29tbWVudHM8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtQ29tbWVudCc+PGxocz5Db21tZW50PC9saHM+Cis8cmhzPicmbHQ7IS0tJworKCg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4gLSAnLScpIAorfCAoJy0nICg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4gLSAnLScpKSkqIAorJy0tPic8L3Jocz4KKzwvcHJvZD4KKzwvc2NyYXA+Cis8L3Rlcm1kZWY+PC9wPgorPHA+QW4gZXhhbXBsZSBvZiBhIGNvbW1lbnQ6Cis8ZWc+Jmx0OyEmY29tbzsgZGVjbGFyYXRpb25zIGZvciAmbHQ7aGVhZD4gJmFtcDsgJmx0O2JvZHk+ICZjb21jOyZndDs8L2VnPgorPC9wPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9J3NlYy1waSc+Cis8aGVhZD5Qcm9jZXNzaW5nIEluc3RydWN0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1waSIgdGVybT0iUHJvY2Vzc2luZyBpbnN0cnVjdGlvbiI+PHRlcm0+UHJvY2Vzc2luZworaW5zdHJ1Y3Rpb25zPC90ZXJtPiAoUElzKSBhbGxvdyBkb2N1bWVudHMgdG8gY29udGFpbiBpbnN0cnVjdGlvbnMKK2ZvciBhcHBsaWNhdGlvbnMuCisgCis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5Qcm9jZXNzaW5nIEluc3RydWN0aW9uczwvaGVhZD4KKzxwcm9kIGlkPSdOVC1QSSc+PGxocz5QSTwvbGhzPgorPHJocz4nJmx0Oz8nIDxudCBkZWY9J05ULVBJVGFyZ2V0Jz5QSVRhcmdldDwvbnQ+IAorKDxudCBkZWY9J05ULVMnPlM8L250PiAKKyg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qIC0gCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAmcGljOyA8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKSkpPworJnBpYzs8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtUElUYXJnZXQnPjxsaHM+UElUYXJnZXQ8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IC0gCisoKCdYJyB8ICd4JykgKCdNJyB8ICdtJykgKCdMJyB8ICdsJykpPC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPjwvdGVybWRlZj4KK1BJcyBhcmUgbm90IHBhcnQgb2YgdGhlIGRvY3VtZW50J3MgPHRlcm1yZWYgZGVmPSJkdC1jaGFyZGF0YSI+Y2hhcmFjdGVyCitkYXRhPC90ZXJtcmVmPiwgYnV0IG11c3QgYmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIGFwcGxpY2F0aW9uLiBUaGUKK1BJIGJlZ2lucyB3aXRoIGEgdGFyZ2V0ICg8bnQgZGVmPSdOVC1QSVRhcmdldCc+UElUYXJnZXQ8L250PikgdXNlZAordG8gaWRlbnRpZnkgdGhlIGFwcGxpY2F0aW9uIHRvIHdoaWNoIHRoZSBpbnN0cnVjdGlvbiBpcyBkaXJlY3RlZC4gIAorVGhlIHRhcmdldCBuYW1lcyAiPGNvZGU+WE1MPC9jb2RlPiIsICI8Y29kZT54bWw8L2NvZGU+IiwgYW5kIHNvIG9uIGFyZQorcmVzZXJ2ZWQgZm9yIHN0YW5kYXJkaXphdGlvbiBpbiB0aGlzIG9yIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzCitzcGVjaWZpY2F0aW9uLgorVGhlIAorWE1MIDx0ZXJtcmVmIGRlZj0nZHQtbm90YXRpb24nPk5vdGF0aW9uPC90ZXJtcmVmPiBtZWNoYW5pc20KK21heSBiZSB1c2VkIGZvcgorZm9ybWFsIGRlY2xhcmF0aW9uIG9mIFBJIHRhcmdldHMuCis8L3A+Cis8L2RpdjI+CisgCis8ZGl2MiBpZD0nc2VjLWNkYXRhLXNlY3QnPgorPGhlYWQ+Q0RBVEEgU2VjdGlvbnM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtY2RzZWN0aW9uIiB0ZXJtPSJDREFUQSBTZWN0aW9uIj48dGVybT5DREFUQSBzZWN0aW9uczwvdGVybT4KK21heSBvY2N1ciAKK2FueXdoZXJlIGNoYXJhY3RlciBkYXRhIG1heSBvY2N1cjsgdGhleSBhcmUKK3VzZWQgdG8gZXNjYXBlIGJsb2NrcyBvZiB0ZXh0IGNvbnRhaW5pbmcgY2hhcmFjdGVycyB3aGljaCB3b3VsZAorb3RoZXJ3aXNlIGJlIHJlY29nbml6ZWQgYXMgbWFya3VwLiAgQ0RBVEEgc2VjdGlvbnMgYmVnaW4gd2l0aCB0aGUKK3N0cmluZyAiPGNvZGU+Jmx0OyFbQ0RBVEFbPC9jb2RlPiIgYW5kIGVuZCB3aXRoIHRoZSBzdHJpbmcKKyI8Y29kZT5dXSZndDs8L2NvZGU+IjoKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPkNEQVRBIFNlY3Rpb25zPC9oZWFkPgorPHByb2QgaWQ9J05ULUNEU2VjdCc+PGxocz5DRFNlY3Q8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtQ0RTdGFydCc+Q0RTdGFydDwvbnQ+IAorPG50IGRlZj0nTlQtQ0RhdGEnPkNEYXRhPC9udD4gCis8bnQgZGVmPSdOVC1DREVuZCc+Q0RFbmQ8L250PjwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1DRFN0YXJ0Jz48bGhzPkNEU3RhcnQ8L2xocz4KKzxyaHM+JyZsdDshW0NEQVRBWyc8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1DRGF0YSc+PGxocz5DRGF0YTwvbGhzPgorPHJocz4oPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAtIAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogJ11dJmd0OycgPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KikpCis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1DREVuZCc+PGxocz5DREVuZDwvbGhzPgorPHJocz4nXV0mZ3Q7JzwvcmhzPgorPC9wcm9kPgorPC9zY3JhcD4KKworV2l0aGluIGEgQ0RBVEEgc2VjdGlvbiwgb25seSB0aGUgPG50IGRlZj0nTlQtQ0RFbmQnPkNERW5kPC9udD4gc3RyaW5nIGlzCityZWNvZ25pemVkIGFzIG1hcmt1cCwgc28gdGhhdCBsZWZ0IGFuZ2xlIGJyYWNrZXRzIGFuZCBhbXBlcnNhbmRzIG1heSBvY2N1ciBpbgordGhlaXIgbGl0ZXJhbCBmb3JtOyB0aGV5IG5lZWQgbm90IChhbmQgY2Fubm90KSBiZSBlc2NhcGVkIHVzaW5nCisiPGNvZGU+JmFtcDtsdDs8L2NvZGU+IiBhbmQgIjxjb2RlPiZhbXA7YW1wOzwvY29kZT4iLiAgQ0RBVEEgc2VjdGlvbnMKK2Nhbm5vdCBuZXN0LjwvdGVybWRlZj4KKzwvcD4KKworPHA+QW4gZXhhbXBsZSBvZiBhIENEQVRBIHNlY3Rpb24sIGluIHdoaWNoICI8Y29kZT4mbHQ7Z3JlZXRpbmc+PC9jb2RlPiIgYW5kIAorIjxjb2RlPiZsdDsvZ3JlZXRpbmc+PC9jb2RlPiIKK2FyZSByZWNvZ25pemVkIGFzIDx0ZXJtcmVmIGRlZj0nZHQtY2hhcmRhdGEnPmNoYXJhY3RlciBkYXRhPC90ZXJtcmVmPiwgbm90Cis8dGVybXJlZiBkZWY9J2R0LW1hcmt1cCc+bWFya3VwPC90ZXJtcmVmPjoKKzxlZz4mbHQ7IVtDREFUQVsmbHQ7Z3JlZXRpbmc+SGVsbG8sIHdvcmxkISZsdDsvZ3JlZXRpbmc+XV0mZ3Q7PC9lZz4KKzwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSdzZWMtcHJvbG9nLWR0ZCc+Cis8aGVhZD5Qcm9sb2cgYW5kIERvY3VtZW50IFR5cGUgRGVjbGFyYXRpb248L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0nZHQteG1sZGVjbCcgdGVybT0nWE1MIERlY2xhcmF0aW9uJz5YTUwgZG9jdW1lbnRzIAorbWF5LCBhbmQgc2hvdWxkLCAKK2JlZ2luIHdpdGggYW4gPHRlcm0+WE1MIGRlY2xhcmF0aW9uPC90ZXJtPiB3aGljaCBzcGVjaWZpZXMKK3RoZSB2ZXJzaW9uIG9mCitYTUwgYmVpbmcgdXNlZC48L3Rlcm1kZWY+CitGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBpcyBhIGNvbXBsZXRlIFhNTCBkb2N1bWVudCwgPHRlcm1yZWYKK2RlZj0iZHQtd2VsbGZvcm1lZCI+d2VsbC1mb3JtZWQ8L3Rlcm1yZWY+IGJ1dCBub3QKKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkPC90ZXJtcmVmPjoKKzxlZz48IVtDREFUQVs8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz4KK11dPjwvZWc+CithbmQgc28gaXMgdGhpczoKKzxlZz48IVtDREFUQVs8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+CitdXT48L2VnPgorPC9wPgorCis8cD5UaGUgdmVyc2lvbiBudW1iZXIgIjxjb2RlPjEuMDwvY29kZT4iIHNob3VsZCBiZSB1c2VkIHRvIGluZGljYXRlCitjb25mb3JtYW5jZSB0byB0aGlzIHZlcnNpb24gb2YgdGhpcyBzcGVjaWZpY2F0aW9uOyBpdCBpcyBhbiBlcnJvcgorZm9yIGEgZG9jdW1lbnQgdG8gdXNlIHRoZSB2YWx1ZSAiPGNvZGU+MS4wPC9jb2RlPiIgCitpZiBpdCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoaXMgdmVyc2lvbiBvZiB0aGlzIHNwZWNpZmljYXRpb24uCitJdCBpcyB0aGUgaW50ZW50CitvZiB0aGUgWE1MIHdvcmtpbmcgZ3JvdXAgdG8gZ2l2ZSBsYXRlciB2ZXJzaW9ucyBvZiB0aGlzIHNwZWNpZmljYXRpb24KK251bWJlcnMgb3RoZXIgdGhhbiAiPGNvZGU+MS4wPC9jb2RlPiIsIGJ1dCB0aGlzIGludGVudCBkb2VzIG5vdAoraW5kaWNhdGUgYQorY29tbWl0bWVudCB0byBwcm9kdWNlIGFueSBmdXR1cmUgdmVyc2lvbnMgb2YgWE1MLCBub3IgaWYgYW55IGFyZSBwcm9kdWNlZCwgdG8KK3VzZSBhbnkgcGFydGljdWxhciBudW1iZXJpbmcgc2NoZW1lLgorU2luY2UgZnV0dXJlIHZlcnNpb25zIGFyZSBub3QgcnVsZWQgb3V0LCB0aGlzIGNvbnN0cnVjdCBpcyBwcm92aWRlZCAKK2FzIGEgbWVhbnMgdG8gYWxsb3cgdGhlIHBvc3NpYmlsaXR5IG9mIGF1dG9tYXRpYyB2ZXJzaW9uIHJlY29nbml0aW9uLCBzaG91bGQKK2l0IGJlY29tZSBuZWNlc3NhcnkuCitQcm9jZXNzb3JzIG1heSBzaWduYWwgYW4gZXJyb3IgaWYgdGhleSByZWNlaXZlIGRvY3VtZW50cyBsYWJlbGVkIHdpdGggCit2ZXJzaW9ucyB0aGV5IGRvIG5vdCBzdXBwb3J0LiAKKzwvcD4KKzxwPlRoZSBmdW5jdGlvbiBvZiB0aGUgbWFya3VwIGluIGFuIFhNTCBkb2N1bWVudCBpcyB0byBkZXNjcmliZSBpdHMKK3N0b3JhZ2UgYW5kIGxvZ2ljYWwgc3RydWN0dXJlIGFuZCB0byBhc3NvY2lhdGUgYXR0cmlidXRlLXZhbHVlIHBhaXJzCit3aXRoIGl0cyBsb2dpY2FsIHN0cnVjdHVyZXMuICBYTUwgcHJvdmlkZXMgYSBtZWNoYW5pc20sIHRoZSA8dGVybXJlZgorZGVmPSJkdC1kb2N0eXBlIj5kb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uPC90ZXJtcmVmPiwgdG8gZGVmaW5lCitjb25zdHJhaW50cyBvbiB0aGUgbG9naWNhbCBzdHJ1Y3R1cmUgYW5kIHRvIHN1cHBvcnQgdGhlIHVzZSBvZgorcHJlZGVmaW5lZCBzdG9yYWdlIHVuaXRzLgorCis8dGVybWRlZiBpZD0iZHQtdmFsaWQiIHRlcm09IlZhbGlkaXR5Ij5BbiBYTUwgZG9jdW1lbnQgaXMgCis8dGVybT52YWxpZDwvdGVybT4gaWYgaXQgaGFzIGFuIGFzc29jaWF0ZWQgZG9jdW1lbnQgdHlwZQorZGVjbGFyYXRpb24gYW5kIGlmIHRoZSBkb2N1bWVudAorY29tcGxpZXMgd2l0aCB0aGUgY29uc3RyYWludHMgZXhwcmVzc2VkIGluIGl0LjwvdGVybWRlZj48L3A+Cis8cD5UaGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBtdXN0IGFwcGVhciBiZWZvcmUKK3RoZSBmaXJzdCA8dGVybXJlZiBkZWY9ImR0LWVsZW1lbnQiPmVsZW1lbnQ8L3Rlcm1yZWY+IGluIHRoZSBkb2N1bWVudC4KKzxzY3JhcCBsYW5nPSJlYm5mIiBpZD0neG1sZG9jJz4KKzxoZWFkPlByb2xvZzwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNiIgcGN3ND0iMTcuNSIgcGN3NT0iOSI+Cis8cHJvZCBpZD0nTlQtcHJvbG9nJz48bGhzPnByb2xvZzwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1YTUxEZWNsJz5YTUxEZWNsPC9udD4/IAorPG50IGRlZj0nTlQtTWlzYyc+TWlzYzwvbnQ+KiAKKyg8bnQgZGVmPSdOVC1kb2N0eXBlZGVjbCc+ZG9jdHlwZWRlY2w8L250PiAKKzxudCBkZWY9J05ULU1pc2MnPk1pc2M8L250PiopPzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1YTUxEZWNsJz48bGhzPlhNTERlY2w8L2xocz4KKzxyaHM+JnhtbHBpbzsgCis8bnQgZGVmPSdOVC1WZXJzaW9uSW5mbyc+VmVyc2lvbkluZm88L250PiAKKzxudCBkZWY9J05ULUVuY29kaW5nRGVjbCc+RW5jb2RpbmdEZWNsPC9udD4/IAorPG50IGRlZj0nTlQtU0REZWNsJz5TRERlY2w8L250Pj8gCis8bnQgZGVmPSJOVC1TIj5TPC9udD4/IAorJnBpYzs8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1WZXJzaW9uSW5mbyc+PGxocz5WZXJzaW9uSW5mbzwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1TIj5TPC9udD4gJ3ZlcnNpb24nIDxudCBkZWY9J05ULUVxJz5FcTwvbnQ+IAorKCcgPG50IGRlZj0iTlQtVmVyc2lvbk51bSI+VmVyc2lvbk51bTwvbnQ+ICcgCit8ICIgPG50IGRlZj0iTlQtVmVyc2lvbk51bSI+VmVyc2lvbk51bTwvbnQ+ICIpPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtRXEnPjxsaHM+RXE8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnPScgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSJOVC1WZXJzaW9uTnVtIj4KKzxsaHM+VmVyc2lvbk51bTwvbGhzPgorPHJocz4oW2EtekEtWjAtOV8uOl0gfCAnLScpKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULU1pc2MnPjxsaHM+TWlzYzwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1Db21tZW50Jz5Db21tZW50PC9udD4gfCA8bnQgZGVmPSdOVC1QSSc+UEk8L250PiB8IAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PC9yaHM+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPjwvcD4KKworPHA+PHRlcm1kZWYgaWQ9ImR0LWRvY3R5cGUiIHRlcm09IkRvY3VtZW50IFR5cGUgRGVjbGFyYXRpb24iPlRoZSBYTUwKKzx0ZXJtPmRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb248L3Rlcm0+IAorY29udGFpbnMgb3IgcG9pbnRzIHRvIAorPHRlcm1yZWYgZGVmPSdkdC1tYXJrdXBkZWNsJz5tYXJrdXAgZGVjbGFyYXRpb25zPC90ZXJtcmVmPiAKK3RoYXQgcHJvdmlkZSBhIGdyYW1tYXIgZm9yIGEKK2NsYXNzIG9mIGRvY3VtZW50cy4gIAorVGhpcyBncmFtbWFyIGlzIGtub3duIGFzIGEgZG9jdW1lbnQgdHlwZSBkZWZpbml0aW9uLAorb3IgPHRlcm0+RFREPC90ZXJtPi4gIAorVGhlIGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24gY2FuIHBvaW50IHRvIGFuIGV4dGVybmFsIHN1YnNldCAoYQorc3BlY2lhbCBraW5kIG9mIAorPHRlcm1yZWYgZGVmPSdkdC1leHRlbnQnPmV4dGVybmFsIGVudGl0eTwvdGVybXJlZj4pIGNvbnRhaW5pbmcgbWFya3VwCitkZWNsYXJhdGlvbnMsIG9yIGNhbiAKK2NvbnRhaW4gdGhlIG1hcmt1cCBkZWNsYXJhdGlvbnMgZGlyZWN0bHkgaW4gYW4gaW50ZXJuYWwgc3Vic2V0LCBvciBjYW4gZG8KK2JvdGguICAgCitUaGUgRFREIGZvciBhIGRvY3VtZW50IGNvbnNpc3RzIG9mIGJvdGggc3Vic2V0cyB0YWtlbgordG9nZXRoZXIuPC90ZXJtZGVmPgorPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LW1hcmt1cGRlY2wiIHRlcm09Im1hcmt1cCBkZWNsYXJhdGlvbiI+CitBIDx0ZXJtPm1hcmt1cCBkZWNsYXJhdGlvbjwvdGVybT4gaXMgCithbiA8dGVybXJlZiBkZWY9ImR0LWVsZGVjbCI+ZWxlbWVudCB0eXBlIGRlY2xhcmF0aW9uPC90ZXJtcmVmPiwgCithbiA8dGVybXJlZiBkZWY9ImR0LWF0dGRlY2wiPmF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uPC90ZXJtcmVmPiwgCithbiA8dGVybXJlZiBkZWY9ImR0LWVudGRlY2wiPmVudGl0eSBkZWNsYXJhdGlvbjwvdGVybXJlZj4sIG9yCithIDx0ZXJtcmVmIGRlZj0iZHQtbm90ZGVjbCI+bm90YXRpb24gZGVjbGFyYXRpb248L3Rlcm1yZWY+LgorPC90ZXJtZGVmPgorVGhlc2UgZGVjbGFyYXRpb25zIG1heSBiZSBjb250YWluZWQgaW4gd2hvbGUgb3IgaW4gcGFydAord2l0aGluIDx0ZXJtcmVmIGRlZj0nZHQtUEUnPnBhcmFtZXRlciBlbnRpdGllczwvdGVybXJlZj4sCithcyBkZXNjcmliZWQgaW4gdGhlIHdlbGwtZm9ybWVkbmVzcyBhbmQgdmFsaWRpdHkgY29uc3RyYWludHMgYmVsb3cuCitGb3IgZnVsbGVyIGluZm9ybWF0aW9uLCBzZWUKKzxzcGVjcmVmIHJlZj0ic2VjLXBoeXNpY2FsLXN0cnVjdCIvPi48L3A+Cis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9J2R0ZCc+Cis8aGVhZD5Eb2N1bWVudCBUeXBlIERlZmluaXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjYiIHBjdzQ9IjE3LjUiIHBjdzU9IjkiPgorPHByb2QgaWQ9J05ULWRvY3R5cGVkZWNsJz48bGhzPmRvY3R5cGVkZWNsPC9saHM+Cis8cmhzPicmbHQ7IURPQ1RZUEUnIDxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAoPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtRXh0ZXJuYWxJRCc+RXh0ZXJuYWxJRDwvbnQ+KT8gCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICgnWycgCisoPG50IGRlZj0nTlQtbWFya3VwZGVjbCc+bWFya3VwZGVjbDwvbnQ+IAorfCA8bnQgZGVmPSdOVC1QRVJlZmVyZW5jZSc+UEVSZWZlcmVuY2U8L250PiAKK3wgPG50IGRlZj0nTlQtUyc+UzwvbnQ+KSoKKyddJyAKKzxudCBkZWY9J05ULVMnPlM8L250Pj8pPyAnPic8L3Jocz4KKzx2YyBkZWY9InZjLXJvb3R0eXBlIi8+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtbWFya3VwZGVjbCc+PGxocz5tYXJrdXBkZWNsPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULWVsZW1lbnRkZWNsJz5lbGVtZW50ZGVjbDwvbnQ+IAorfCA8bnQgZGVmPSdOVC1BdHRsaXN0RGVjbCc+QXR0bGlzdERlY2w8L250PiAKK3wgPG50IGRlZj0nTlQtRW50aXR5RGVjbCc+RW50aXR5RGVjbDwvbnQ+IAorfCA8bnQgZGVmPSdOVC1Ob3RhdGlvbkRlY2wnPk5vdGF0aW9uRGVjbDwvbnQ+IAorfCA8bnQgZGVmPSdOVC1QSSc+UEk8L250PiAKK3wgPG50IGRlZj0nTlQtQ29tbWVudCc+Q29tbWVudDwvbnQ+Cis8L3Jocz4KKzx2YyBkZWY9J3ZjLVBFaW5NYXJrdXBEZWNsJy8+Cis8d2ZjIGRlZj0id2ZjLVBFaW5JbnRlcm5hbFN1YnNldCIvPgorPC9wcm9kPgorCis8L3Byb2Rncm91cD4KKzwvc2NyYXA+CisKKzxwPlRoZSBtYXJrdXAgZGVjbGFyYXRpb25zIG1heSBiZSBtYWRlIHVwIGluIHdob2xlIG9yIGluIHBhcnQgb2YKK3RoZSA8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBvZiAKKzx0ZXJtcmVmIGRlZj0nZHQtUEUnPnBhcmFtZXRlciBlbnRpdGllczwvdGVybXJlZj4uCitUaGUgcHJvZHVjdGlvbnMgbGF0ZXIgaW4gdGhpcyBzcGVjaWZpY2F0aW9uIGZvcgoraW5kaXZpZHVhbCBub250ZXJtaW5hbHMgKDxudCBkZWY9J05ULWVsZW1lbnRkZWNsJz5lbGVtZW50ZGVjbDwvbnQ+LAorPG50IGRlZj0nTlQtQXR0bGlzdERlY2wnPkF0dGxpc3REZWNsPC9udD4sIGFuZCBzbyBvbikgZGVzY3JpYmUgCit0aGUgZGVjbGFyYXRpb25zIDxlbXBoPmFmdGVyPC9lbXBoPiBhbGwgdGhlIHBhcmFtZXRlciBlbnRpdGllcyBoYXZlIGJlZW4gCis8dGVybXJlZiBkZWY9J2R0LWluY2x1ZGUnPmluY2x1ZGVkPC90ZXJtcmVmPi48L3A+CisKKzx2Y25vdGUgaWQ9InZjLXJvb3R0eXBlIj4KKzxoZWFkPlJvb3QgRWxlbWVudCBUeXBlPC9oZWFkPgorPHA+CitUaGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IGluIHRoZSBkb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uIG11c3QKK21hdGNoIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIDx0ZXJtcmVmIGRlZj0nZHQtcm9vdCc+cm9vdCBlbGVtZW50PC90ZXJtcmVmPi4KKzwvcD4KKzwvdmNub3RlPgorCis8dmNub3RlIGlkPSd2Yy1QRWluTWFya3VwRGVjbCc+Cis8aGVhZD5Qcm9wZXIgRGVjbGFyYXRpb24vUEUgTmVzdGluZzwvaGVhZD4KKzxwPlBhcmFtZXRlci1lbnRpdHkgCis8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZAord2l0aCBtYXJrdXAgZGVjbGFyYXRpb25zLiAKK1RoYXQgaXMgdG8gc2F5LCBpZiBlaXRoZXIgdGhlIGZpcnN0IGNoYXJhY3Rlcgorb3IgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbWFya3VwCitkZWNsYXJhdGlvbiAoPG50IGRlZj0nTlQtbWFya3VwZGVjbCc+bWFya3VwZGVjbDwvbnQ+IGFib3ZlKQoraXMgY29udGFpbmVkIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciBhIAorPHRlcm1yZWYgZGVmPSdkdC1QRVJlZic+cGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2U8L3Rlcm1yZWY+LAorYm90aCBtdXN0IGJlIGNvbnRhaW5lZCBpbiB0aGUgc2FtZSByZXBsYWNlbWVudCB0ZXh0LjwvcD4KKzwvdmNub3RlPgorPHdmY25vdGUgaWQ9IndmYy1QRWluSW50ZXJuYWxTdWJzZXQiPgorPGhlYWQ+UEVzIGluIEludGVybmFsIFN1YnNldDwvaGVhZD4KKzxwPkluIHRoZSBpbnRlcm5hbCBEVEQgc3Vic2V0LCAKKzx0ZXJtcmVmIGRlZj0nZHQtUEVSZWYnPnBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlczwvdGVybXJlZj4KK2NhbiBvY2N1ciBvbmx5IHdoZXJlIG1hcmt1cCBkZWNsYXJhdGlvbnMgY2FuIG9jY3VyLCBub3QKK3dpdGhpbiBtYXJrdXAgZGVjbGFyYXRpb25zLiAgKFRoaXMgZG9lcyBub3QgYXBwbHkgdG8KK3JlZmVyZW5jZXMgdGhhdCBvY2N1ciBpbgorZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIG9yIHRvIHRoZSBleHRlcm5hbCBzdWJzZXQuKQorPC9wPgorPC93ZmNub3RlPgorPHA+CitMaWtlIHRoZSBpbnRlcm5hbCBzdWJzZXQsIHRoZSBleHRlcm5hbCBzdWJzZXQgYW5kIAorYW55IGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdGllcyByZWZlcnJlZCB0byBpbiB0aGUgRFREIAorbXVzdCBjb25zaXN0IG9mIGEgc2VyaWVzIG9mIGNvbXBsZXRlIG1hcmt1cCBkZWNsYXJhdGlvbnMgb2YgdGhlIHR5cGVzIAorYWxsb3dlZCBieSB0aGUgbm9uLXRlcm1pbmFsIHN5bWJvbAorPG50IGRlZj0iTlQtbWFya3VwZGVjbCI+bWFya3VwZGVjbDwvbnQ+LCBpbnRlcnNwZXJzZWQgd2l0aCB3aGl0ZSBzcGFjZQorb3IgPHRlcm1yZWYgZGVmPSJkdC1QRVJlZiI+cGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzPC90ZXJtcmVmPi4KK0hvd2V2ZXIsIHBvcnRpb25zIG9mIHRoZSBjb250ZW50cworb2YgdGhlIAorZXh0ZXJuYWwgc3Vic2V0IG9yIG9mIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdGllcyBtYXkgY29uZGl0aW9uYWxseSBiZSBpZ25vcmVkCitieSB1c2luZyAKK3RoZSA8dGVybXJlZiBkZWY9ImR0LWNvbmQtc2VjdGlvbiI+Y29uZGl0aW9uYWwgc2VjdGlvbjwvdGVybXJlZj4KK2NvbnN0cnVjdDsgdGhpcyBpcyBub3QgYWxsb3dlZCBpbiB0aGUgaW50ZXJuYWwgc3Vic2V0LgorCis8c2NyYXAgaWQ9ImV4dC1TdWJzZXQiPgorPGhlYWQ+RXh0ZXJuYWwgU3Vic2V0PC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNy41IiBwY3c1PSI5Ij4KKzxwcm9kIGlkPSdOVC1leHRTdWJzZXQnPjxsaHM+ZXh0U3Vic2V0PC9saHM+Cis8cmhzPjxudCBkZWY9J05ULVRleHREZWNsJz5UZXh0RGVjbDwvbnQ+PworPG50IGRlZj0nTlQtZXh0U3Vic2V0RGVjbCc+ZXh0U3Vic2V0RGVjbDwvbnQ+PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULWV4dFN1YnNldERlY2wnPjxsaHM+ZXh0U3Vic2V0RGVjbDwvbGhzPgorPHJocz4oCis8bnQgZGVmPSdOVC1tYXJrdXBkZWNsJz5tYXJrdXBkZWNsPC9udD4gCit8IDxudCBkZWY9J05ULWNvbmRpdGlvbmFsU2VjdCc+Y29uZGl0aW9uYWxTZWN0PC9udD4gCit8IDxudCBkZWY9J05ULVBFUmVmZXJlbmNlJz5QRVJlZmVyZW5jZTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1TJz5TPC9udD4KKykqPC9yaHM+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+PC9wPgorPHA+VGhlIGV4dGVybmFsIHN1YnNldCBhbmQgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIGFsc28gZGlmZmVyIAorZnJvbSB0aGUgaW50ZXJuYWwgc3Vic2V0IGluIHRoYXQgaW4gdGhlbSwKKzx0ZXJtcmVmIGRlZj0iZHQtUEVSZWYiPnBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlczwvdGVybXJlZj4KK2FyZSBwZXJtaXR0ZWQgPGVtcGg+d2l0aGluPC9lbXBoPiBtYXJrdXAgZGVjbGFyYXRpb25zLAorbm90IG9ubHkgPGVtcGg+YmV0d2VlbjwvZW1waD4gbWFya3VwIGRlY2xhcmF0aW9ucy48L3A+Cis8cD5BbiBleGFtcGxlIG9mIGFuIFhNTCBkb2N1bWVudCB3aXRoIGEgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbjoKKzxlZz48IVtDREFUQVs8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBncmVldGluZyBTWVNURU0gImhlbGxvLmR0ZCI+Cis8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+CitdXT48L2VnPgorVGhlIDx0ZXJtcmVmIGRlZj0iZHQtc3lzaWQiPnN5c3RlbSBpZGVudGlmaWVyPC90ZXJtcmVmPiAKKyI8Y29kZT5oZWxsby5kdGQ8L2NvZGU+IiBnaXZlcyB0aGUgVVJJIG9mIGEgRFREIGZvciB0aGUgZG9jdW1lbnQuPC9wPgorPHA+VGhlIGRlY2xhcmF0aW9ucyBjYW4gYWxzbyBiZSBnaXZlbiBsb2NhbGx5LCBhcyBpbiB0aGlzIAorZXhhbXBsZToKKzxlZz48IVtDREFUQVs8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBncmVldGluZyBbCisgIDwhRUxFTUVOVCBncmVldGluZyAoI1BDREFUQSk+CitdPgorPGdyZWV0aW5nPkhlbGxvLCB3b3JsZCE8L2dyZWV0aW5nPgorXV0+PC9lZz4KK0lmIGJvdGggdGhlIGV4dGVybmFsIGFuZCBpbnRlcm5hbCBzdWJzZXRzIGFyZSB1c2VkLCB0aGUgCitpbnRlcm5hbCBzdWJzZXQgaXMgY29uc2lkZXJlZCB0byBvY2N1ciBiZWZvcmUgdGhlIGV4dGVybmFsIHN1YnNldC4KKzwhLS0gJ2lzIGNvbnNpZGVyZWQgdG8nPyBib28uIHdoYXp6YXQgbWVhbj8gLS0+CitUaGlzIGhhcyB0aGUgZWZmZWN0IHRoYXQgZW50aXR5IGFuZCBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnMgaW4gdGhlCitpbnRlcm5hbCBzdWJzZXQgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGhvc2UgaW4gdGhlIGV4dGVybmFsIHN1YnNldC4KKzwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSdzZWMtcm1kJz4KKzxoZWFkPlN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb248L2hlYWQ+Cis8cD5NYXJrdXAgZGVjbGFyYXRpb25zIGNhbiBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50LAorYXMgcGFzc2VkIGZyb20gYW4gPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MIHByb2Nlc3NvcjwvdGVybXJlZj4gCit0byBhbiBhcHBsaWNhdGlvbjsgZXhhbXBsZXMgYXJlIGF0dHJpYnV0ZSBkZWZhdWx0cyBhbmQgZW50aXR5CitkZWNsYXJhdGlvbnMuCitUaGUgc3RhbmRhbG9uZSBkb2N1bWVudCBkZWNsYXJhdGlvbiwKK3doaWNoIG1heSBhcHBlYXIgYXMgYSBjb21wb25lbnQgb2YgdGhlIFhNTCBkZWNsYXJhdGlvbiwgc2lnbmFscword2hldGhlciBvciBub3QgdGhlcmUgYXJlIHN1Y2ggZGVjbGFyYXRpb25zIHdoaWNoIGFwcGVhciBleHRlcm5hbCB0byAKK3RoZSA8dGVybXJlZiBkZWY9J2R0LWRvY2VudCc+ZG9jdW1lbnQgZW50aXR5PC90ZXJtcmVmPi4KKzxzY3JhcCBsYW5nPSJlYm5mIiBpZD0nZnVsbGR0ZCc+Cis8aGVhZD5TdGFuZGFsb25lIERvY3VtZW50IERlY2xhcmF0aW9uPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI0IiBwY3c0PSIxOS41IiBwY3c1PSI5Ij4KKzxwcm9kIGlkPSdOVC1TRERlY2wnPjxsaHM+U0REZWNsPC9saHM+Cis8cmhzPgorPG50IGRlZj0iTlQtUyI+UzwvbnQ+IAorJ3N0YW5kYWxvbmUnIDxudCBkZWY9J05ULUVxJz5FcTwvbnQ+IAorKCgiJyIgKCd5ZXMnIHwgJ25vJykgIiciKSB8ICgnIicgKCd5ZXMnIHwgJ25vJykgJyInKSkKKzwvcmhzPgorPHZjIGRlZj0ndmMtY2hlY2stcm1kJy8+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPjwvcD4KKzxwPgorSW4gYSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uLCB0aGUgdmFsdWUgIjxjb2RlPnllczwvY29kZT4iIGluZGljYXRlcwordGhhdCB0aGVyZSAKK2FyZSBubyBtYXJrdXAgZGVjbGFyYXRpb25zIGV4dGVybmFsIHRvIHRoZSA8dGVybXJlZiBkZWY9J2R0LWRvY2VudCc+ZG9jdW1lbnQKK2VudGl0eTwvdGVybXJlZj4gKGVpdGhlciBpbiB0aGUgRFREIGV4dGVybmFsIHN1YnNldCwgb3IgaW4gYW4KK2V4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlZCBmcm9tIHRoZSBpbnRlcm5hbCBzdWJzZXQpCit3aGljaCBhZmZlY3QgdGhlIGluZm9ybWF0aW9uIHBhc3NlZCBmcm9tIHRoZSBYTUwgcHJvY2Vzc29yIHRvCit0aGUgYXBwbGljYXRpb24uICAKK1RoZSB2YWx1ZSAiPGNvZGU+bm88L2NvZGU+IiBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBhcmUgb3IgbWF5IGJlIHN1Y2gKK2V4dGVybmFsIG1hcmt1cCBkZWNsYXJhdGlvbnMuCitOb3RlIHRoYXQgdGhlIHN0YW5kYWxvbmUgZG9jdW1lbnQgZGVjbGFyYXRpb24gb25seSAKK2Rlbm90ZXMgdGhlIHByZXNlbmNlIG9mIGV4dGVybmFsIDxlbXBoPmRlY2xhcmF0aW9uczwvZW1waD47IHRoZSBwcmVzZW5jZSwgaW4gYQorZG9jdW1lbnQsIG9mIAorcmVmZXJlbmNlcyB0byBleHRlcm5hbCA8ZW1waD5lbnRpdGllczwvZW1waD4sIHdoZW4gdGhvc2UgZW50aXRpZXMgYXJlCitpbnRlcm5hbGx5IGRlY2xhcmVkLCAKK2RvZXMgbm90IGNoYW5nZSBpdHMgc3RhbmRhbG9uZSBzdGF0dXMuPC9wPgorPHA+SWYgdGhlcmUgYXJlIG5vIGV4dGVybmFsIG1hcmt1cCBkZWNsYXJhdGlvbnMsIHRoZSBzdGFuZGFsb25lIGRvY3VtZW50CitkZWNsYXJhdGlvbiBoYXMgbm8gbWVhbmluZy4gCitJZiB0aGVyZSBhcmUgZXh0ZXJuYWwgbWFya3VwIGRlY2xhcmF0aW9ucyBidXQgdGhlcmUgaXMgbm8gc3RhbmRhbG9uZQorZG9jdW1lbnQgZGVjbGFyYXRpb24sIHRoZSB2YWx1ZSAiPGNvZGU+bm88L2NvZGU+IiBpcyBhc3N1bWVkLjwvcD4KKzxwPkFueSBYTUwgZG9jdW1lbnQgZm9yIHdoaWNoIDxjb2RlPnN0YW5kYWxvbmU9Im5vIjwvY29kZT4gaG9sZHMgY2FuIAorYmUgY29udmVydGVkIGFsZ29yaXRobWljYWxseSB0byBhIHN0YW5kYWxvbmUgZG9jdW1lbnQsIAord2hpY2ggbWF5IGJlIGRlc2lyYWJsZSBmb3Igc29tZSBuZXR3b3JrIGRlbGl2ZXJ5IGFwcGxpY2F0aW9ucy48L3A+Cis8dmNub3RlIGlkPSd2Yy1jaGVjay1ybWQnPgorPGhlYWQ+U3RhbmRhbG9uZSBEb2N1bWVudCBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwPlRoZSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uIG11c3QgaGF2ZQordGhlIHZhbHVlICI8Y29kZT5ubzwvY29kZT4iIGlmIGFueSBleHRlcm5hbCBtYXJrdXAgZGVjbGFyYXRpb25zCitjb250YWluIGRlY2xhcmF0aW9ucyBvZjo8L3A+PHVsaXN0PgorPGl0ZW0+PHA+YXR0cmlidXRlcyB3aXRoIDx0ZXJtcmVmIGRlZj0iZHQtZGVmYXVsdCI+ZGVmYXVsdDwvdGVybXJlZj4gdmFsdWVzLCBpZgorZWxlbWVudHMgdG8gd2hpY2gKK3RoZXNlIGF0dHJpYnV0ZXMgYXBwbHkgYXBwZWFyIGluIHRoZSBkb2N1bWVudCB3aXRob3V0CitzcGVjaWZpY2F0aW9ucyBvZiB2YWx1ZXMgZm9yIHRoZXNlIGF0dHJpYnV0ZXMsIG9yPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmVudGl0aWVzIChvdGhlciB0aGFuICZtYWdpY2VudHM7KSwgCitpZiA8dGVybXJlZiBkZWY9ImR0LWVudHJlZiI+cmVmZXJlbmNlczwvdGVybXJlZj4gdG8gdGhvc2UKK2VudGl0aWVzIGFwcGVhciBpbiB0aGUgZG9jdW1lbnQsIG9yPC9wPgorPC9pdGVtPgorPGl0ZW0+PHA+YXR0cmlidXRlcyB3aXRoIHZhbHVlcyBzdWJqZWN0IHRvCis8dGl0bGVyZWYgaHJlZj0nQVZOb3JtYWxpemUnPm5vcm1hbGl6YXRpb248L3RpdGxlcmVmPiwgd2hlcmUgdGhlCithdHRyaWJ1dGUgYXBwZWFycyBpbiB0aGUgZG9jdW1lbnQgd2l0aCBhIHZhbHVlIHdoaWNoIHdpbGwKK2NoYW5nZSBhcyBhIHJlc3VsdCBvZiBub3JtYWxpemF0aW9uLCBvcjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+ZWxlbWVudCB0eXBlcyB3aXRoIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWNvbnRlbnQiPmVsZW1lbnQgY29udGVudDwvdGVybXJlZj4sIAoraWYgd2hpdGUgc3BhY2Ugb2NjdXJzCitkaXJlY3RseSB3aXRoaW4gYW55IGluc3RhbmNlIG9mIHRob3NlIHR5cGVzLgorPC9wPjwvaXRlbT4KKzwvdWxpc3Q+CisKKzwvdmNub3RlPgorPHA+QW4gZXhhbXBsZSBYTUwgZGVjbGFyYXRpb24gd2l0aCBhIHN0YW5kYWxvbmUgZG9jdW1lbnQgZGVjbGFyYXRpb246PGVnCis+Jmx0Oz94bWwgdmVyc2lvbj0iJlhNTC52ZXJzaW9uOyIgc3RhbmRhbG9uZT0neWVzJz8+PC9lZz48L3A+Cis8L2RpdjI+Cis8ZGl2MiBpZD0nc2VjLXdoaXRlLXNwYWNlJz4KKzxoZWFkPldoaXRlIFNwYWNlIEhhbmRsaW5nPC9oZWFkPgorCis8cD5JbiBlZGl0aW5nIFhNTCBkb2N1bWVudHMsIGl0IGlzIG9mdGVuIGNvbnZlbmllbnQgdG8gdXNlICJ3aGl0ZSBzcGFjZSIKKyhzcGFjZXMsIHRhYnMsIGFuZCBibGFuayBsaW5lcywgZGVub3RlZCBieSB0aGUgbm9udGVybWluYWwgCis8bnQgZGVmPSdOVC1TJz5TPC9udD4gaW4gdGhpcyBzcGVjaWZpY2F0aW9uKSB0bworc2V0IGFwYXJ0IHRoZSBtYXJrdXAgZm9yIGdyZWF0ZXIgcmVhZGFiaWxpdHkuICBTdWNoIHdoaXRlIHNwYWNlIGlzIHR5cGljYWxseQorbm90IGludGVuZGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIGRlbGl2ZXJlZCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudC4KK09uIHRoZSBvdGhlciBoYW5kLCAic2lnbmlmaWNhbnQiIHdoaXRlIHNwYWNlIHRoYXQgc2hvdWxkIGJlIHByZXNlcnZlZCBpbiB0aGUKK2RlbGl2ZXJlZCB2ZXJzaW9uIGlzIGNvbW1vbiwgZm9yIGV4YW1wbGUgaW4gcG9ldHJ5IGFuZAorc291cmNlIGNvZGUuPC9wPgorPHA+QW4gPHRlcm1yZWYgZGVmPSdkdC14bWwtcHJvYyc+WE1MIHByb2Nlc3NvcjwvdGVybXJlZj4gCittdXN0IGFsd2F5cyBwYXNzIGFsbCBjaGFyYWN0ZXJzIGluIGEgZG9jdW1lbnQgdGhhdCBhcmUgbm90CittYXJrdXAgdGhyb3VnaCB0byB0aGUgYXBwbGljYXRpb24uICAgQSA8dGVybXJlZiBkZWY9J2R0LXZhbGlkYXRpbmcnPgordmFsaWRhdGluZyBYTUwgcHJvY2Vzc29yPC90ZXJtcmVmPiBtdXN0IGFsc28gaW5mb3JtIHRoZSBhcHBsaWNhdGlvbgord2hpY2ggIG9mIHRoZXNlIGNoYXJhY3RlcnMgY29uc3RpdHV0ZSB3aGl0ZSBzcGFjZSBhcHBlYXJpbmcKK2luIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWNvbnRlbnQiPmVsZW1lbnQgY29udGVudDwvdGVybXJlZj4uCis8L3A+Cis8cD5BIHNwZWNpYWwgPHRlcm1yZWYgZGVmPSdkdC1hdHRyJz5hdHRyaWJ1dGU8L3Rlcm1yZWY+IAorbmFtZWQgPGt3PnhtbDpzcGFjZTwva3c+IG1heSBiZSBhdHRhY2hlZCB0byBhbiBlbGVtZW50Cit0byBzaWduYWwgYW4gaW50ZW50aW9uIHRoYXQgaW4gdGhhdCBlbGVtZW50LAord2hpdGUgc3BhY2Ugc2hvdWxkIGJlIHByZXNlcnZlZCBieSBhcHBsaWNhdGlvbnMuCitJbiB2YWxpZCBkb2N1bWVudHMsIHRoaXMgYXR0cmlidXRlLCBsaWtlIGFueSBvdGhlciwgbXVzdCBiZSAKKzx0ZXJtcmVmIGRlZj0iZHQtYXR0ZGVjbCI+ZGVjbGFyZWQ8L3Rlcm1yZWY+IGlmIGl0IGlzIHVzZWQuCitXaGVuIGRlY2xhcmVkLCBpdCBtdXN0IGJlIGdpdmVuIGFzIGFuIAorPHRlcm1yZWYgZGVmPSdkdC1lbnVtZXJhdGVkJz5lbnVtZXJhdGVkIHR5cGU8L3Rlcm1yZWY+IHdob3NlIG9ubHkKK3Bvc3NpYmxlIHZhbHVlcyBhcmUgIjxjb2RlPmRlZmF1bHQ8L2NvZGU+IiBhbmQgIjxjb2RlPnByZXNlcnZlPC9jb2RlPiIuCitGb3IgZXhhbXBsZTo8ZWc+PCFbQ0RBVEFbICAgIDwhQVRUTElTVCBwb2VtICAgeG1sOnNwYWNlIChkZWZhdWx0fHByZXNlcnZlKSAncHJlc2VydmUnPl1dPjwvZWc+PC9wPgorPHA+VGhlIHZhbHVlICI8Y29kZT5kZWZhdWx0PC9jb2RlPiIgc2lnbmFscyB0aGF0IGFwcGxpY2F0aW9ucycKK2RlZmF1bHQgd2hpdGUtc3BhY2UgcHJvY2Vzc2luZyBtb2RlcyBhcmUgYWNjZXB0YWJsZSBmb3IgdGhpcyBlbGVtZW50OyB0aGUKK3ZhbHVlICI8Y29kZT5wcmVzZXJ2ZTwvY29kZT4iIGluZGljYXRlcyB0aGUgaW50ZW50IHRoYXQgYXBwbGljYXRpb25zIHByZXNlcnZlCithbGwgdGhlIHdoaXRlIHNwYWNlLgorVGhpcyBkZWNsYXJlZCBpbnRlbnQgaXMgY29uc2lkZXJlZCB0byBhcHBseSB0byBhbGwgZWxlbWVudHMgd2l0aGluIHRoZSBjb250ZW50CitvZiB0aGUgZWxlbWVudCB3aGVyZSBpdCBpcyBzcGVjaWZpZWQsIHVubGVzcyBvdmVycmlkZW4gd2l0aCBhbm90aGVyIGluc3RhbmNlCitvZiB0aGUgPGt3PnhtbDpzcGFjZTwva3c+IGF0dHJpYnV0ZS4KKzwvcD4KKzxwPlRoZSA8dGVybXJlZiBkZWY9J2R0LXJvb3QnPnJvb3QgZWxlbWVudDwvdGVybXJlZj4gb2YgYW55IGRvY3VtZW50CitpcyBjb25zaWRlcmVkIHRvIGhhdmUgc2lnbmFsZWQgbm8gaW50ZW50aW9ucyBhcyByZWdhcmRzIGFwcGxpY2F0aW9uIHNwYWNlCitoYW5kbGluZywgdW5sZXNzIGl0IHByb3ZpZGVzIGEgdmFsdWUgZm9yIAordGhpcyBhdHRyaWJ1dGUgb3IgdGhlIGF0dHJpYnV0ZSBpcyBkZWNsYXJlZCB3aXRoIGEgZGVmYXVsdCB2YWx1ZS4KKzwvcD4KKworPC9kaXYyPgorPGRpdjIgaWQ9J3NlYy1saW5lLWVuZHMnPgorPGhlYWQ+RW5kLW9mLUxpbmUgSGFuZGxpbmc8L2hlYWQ+Cis8cD5YTUwgPHRlcm1yZWYgZGVmPSdkdC1wYXJzZWRlbnQnPnBhcnNlZCBlbnRpdGllczwvdGVybXJlZj4gYXJlIG9mdGVuIHN0b3JlZCBpbgorY29tcHV0ZXIgZmlsZXMgd2hpY2gsIGZvciBlZGl0aW5nIGNvbnZlbmllbmNlLCBhcmUgb3JnYW5pemVkIGludG8gbGluZXMuCitUaGVzZSBsaW5lcyBhcmUgdHlwaWNhbGx5IHNlcGFyYXRlZCBieSBzb21lIGNvbWJpbmF0aW9uIG9mIHRoZSBjaGFyYWN0ZXJzCitjYXJyaWFnZS1yZXR1cm4gKCN4RCkgYW5kIGxpbmUtZmVlZCAoI3hBKS48L3A+Cis8cD5UbyBzaW1wbGlmeSB0aGUgdGFza3Mgb2YgPHRlcm1yZWYgZGVmPSdkdC1hcHAnPmFwcGxpY2F0aW9uczwvdGVybXJlZj4sCit3aGVyZXZlciBhbiBleHRlcm5hbCBwYXJzZWQgZW50aXR5IG9yIHRoZSBsaXRlcmFsIGVudGl0eSB2YWx1ZQorb2YgYW4gaW50ZXJuYWwgcGFyc2VkIGVudGl0eSBjb250YWlucyBlaXRoZXIgdGhlIGxpdGVyYWwgCit0d28tY2hhcmFjdGVyIHNlcXVlbmNlICIjeEQjeEEiIG9yIGEgc3RhbmRhbG9uZSBsaXRlcmFsCisjeEQsIGFuIDx0ZXJtcmVmIGRlZj0nZHQteG1sLXByb2MnPlhNTCBwcm9jZXNzb3I8L3Rlcm1yZWY+IG11c3QgCitwYXNzIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGUgc2luZ2xlIGNoYXJhY3RlciAjeEEuCisoVGhpcyBiZWhhdmlvciBjYW4gCitjb252ZW5pZW50bHkgYmUgcHJvZHVjZWQgYnkgbm9ybWFsaXppbmcgYWxsIAorbGluZSBicmVha3MgdG8gI3hBIG9uIGlucHV0LCBiZWZvcmUgcGFyc2luZy4pCis8L3A+Cis8L2RpdjI+Cis8ZGl2MiBpZD0nc2VjLWxhbmctdGFnJz4KKzxoZWFkPkxhbmd1YWdlIElkZW50aWZpY2F0aW9uPC9oZWFkPgorPHA+SW4gZG9jdW1lbnQgcHJvY2Vzc2luZywgaXQgaXMgb2Z0ZW4gdXNlZnVsIHRvCitpZGVudGlmeSB0aGUgbmF0dXJhbCBvciBmb3JtYWwgbGFuZ3VhZ2UgCitpbiB3aGljaCB0aGUgY29udGVudCBpcyAKK3dyaXR0ZW4uCitBIHNwZWNpYWwgPHRlcm1yZWYgZGVmPSJkdC1hdHRyIj5hdHRyaWJ1dGU8L3Rlcm1yZWY+IG5hbWVkCis8a3c+eG1sOmxhbmc8L2t3PiBtYXkgYmUgaW5zZXJ0ZWQgaW4KK2RvY3VtZW50cyB0byBzcGVjaWZ5IHRoZSAKK2xhbmd1YWdlIHVzZWQgaW4gdGhlIGNvbnRlbnRzIGFuZCBhdHRyaWJ1dGUgdmFsdWVzIAorb2YgYW55IGVsZW1lbnQgaW4gYW4gWE1MIGRvY3VtZW50LgorSW4gdmFsaWQgZG9jdW1lbnRzLCB0aGlzIGF0dHJpYnV0ZSwgbGlrZSBhbnkgb3RoZXIsIG11c3QgYmUgCis8dGVybXJlZiBkZWY9ImR0LWF0dGRlY2wiPmRlY2xhcmVkPC90ZXJtcmVmPiBpZiBpdCBpcyB1c2VkLgorVGhlIHZhbHVlcyBvZiB0aGUgYXR0cmlidXRlIGFyZSBsYW5ndWFnZSBpZGVudGlmaWVycyBhcyBkZWZpbmVkCitieSA8YmlicmVmIHJlZj0iUkZDMTc2NiIvPiwgIlRhZ3MgZm9yIHRoZSBJZGVudGlmaWNhdGlvbiBvZiBMYW5ndWFnZXMiOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+TGFuZ3VhZ2UgSWRlbnRpZmljYXRpb248L2hlYWQ+Cis8cHJvZCBpZD0nTlQtTGFuZ3VhZ2VJRCc+PGxocz5MYW5ndWFnZUlEPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULUxhbmdjb2RlJz5MYW5nY29kZTwvbnQ+IAorKCctJyA8bnQgZGVmPSdOVC1TdWJjb2RlJz5TdWJjb2RlPC9udD4pKjwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1MYW5nY29kZSc+PGxocz5MYW5nY29kZTwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1JU082MzlDb2RlJz5JU082MzlDb2RlPC9udD4gfCAKKzxudCBkZWY9J05ULUlhbmFDb2RlJz5JYW5hQ29kZTwvbnQ+IHwgCis8bnQgZGVmPSdOVC1Vc2VyQ29kZSc+VXNlckNvZGU8L250PjwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULUlTTzYzOUNvZGUnPjxsaHM+SVNPNjM5Q29kZTwvbGhzPgorPHJocz4oW2Etel0gfCBbQS1aXSkgKFthLXpdIHwgW0EtWl0pPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULUlhbmFDb2RlJz48bGhzPklhbmFDb2RlPC9saHM+Cis8cmhzPignaScgfCAnSScpICctJyAoW2Etel0gfCBbQS1aXSkrPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULVVzZXJDb2RlJz48bGhzPlVzZXJDb2RlPC9saHM+Cis8cmhzPigneCcgfCAnWCcpICctJyAoW2Etel0gfCBbQS1aXSkrPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULVN1YmNvZGUnPjxsaHM+U3ViY29kZTwvbGhzPgorPHJocz4oW2Etel0gfCBbQS1aXSkrPC9yaHM+PC9wcm9kPgorPC9zY3JhcD4KK1RoZSA8bnQgZGVmPSdOVC1MYW5nY29kZSc+TGFuZ2NvZGU8L250PiBtYXkgYmUgYW55IG9mIHRoZSBmb2xsb3dpbmc6Cis8dWxpc3Q+Cis8aXRlbT48cD5hIHR3by1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSBhcyBkZWZpbmVkIGJ5IAorPGJpYnJlZiByZWY9IklTTzYzOSIvPiwgIkNvZGVzCitmb3IgdGhlIHJlcHJlc2VudGF0aW9uIG9mIG5hbWVzIG9mIGxhbmd1YWdlcyI8L3A+PC9pdGVtPgorPGl0ZW0+PHA+YSBsYW5ndWFnZSBpZGVudGlmaWVyIHJlZ2lzdGVyZWQgd2l0aCB0aGUgSW50ZXJuZXQKK0Fzc2lnbmVkIE51bWJlcnMgQXV0aG9yaXR5IDxiaWJyZWYgcmVmPSdJQU5BJy8+OyB0aGVzZSBiZWdpbiB3aXRoIHRoZSAKK3ByZWZpeCAiPGNvZGU+aS08L2NvZGU+IiAob3IgIjxjb2RlPkktPC9jb2RlPiIpPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmEgbGFuZ3VhZ2UgaWRlbnRpZmllciBhc3NpZ25lZCBieSB0aGUgdXNlciwgb3IgYWdyZWVkIG9uCitiZXR3ZWVuIHBhcnRpZXMgaW4gcHJpdmF0ZSB1c2U7IHRoZXNlIG11c3QgYmVnaW4gd2l0aCB0aGUKK3ByZWZpeCAiPGNvZGU+eC08L2NvZGU+IiBvciAiPGNvZGU+WC08L2NvZGU+IiBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGV5IGRvIG5vdCBjb25mbGljdCAKK3dpdGggbmFtZXMgbGF0ZXIgc3RhbmRhcmRpemVkIG9yIHJlZ2lzdGVyZWQgd2l0aCBJQU5BPC9wPjwvaXRlbT4KKzwvdWxpc3Q+PC9wPgorPHA+VGhlcmUgbWF5IGJlIGFueSBudW1iZXIgb2YgPG50IGRlZj0nTlQtU3ViY29kZSc+U3ViY29kZTwvbnQ+IHNlZ21lbnRzOyBpZgordGhlIGZpcnN0IAorc3ViY29kZSBzZWdtZW50IGV4aXN0cyBhbmQgdGhlIFN1YmNvZGUgY29uc2lzdHMgb2YgdHdvIAorbGV0dGVycywgdGhlbiBpdCBtdXN0IGJlIGEgY291bnRyeSBjb2RlIGZyb20gCis8YmlicmVmIHJlZj0iSVNPMzE2NiIvPiwgIkNvZGVzIAorZm9yIHRoZSByZXByZXNlbnRhdGlvbiBvZiBuYW1lcyBvZiBjb3VudHJpZXMuIgorSWYgdGhlIGZpcnN0IAorc3ViY29kZSBjb25zaXN0cyBvZiBtb3JlIHRoYW4gdHdvIGxldHRlcnMsIGl0IG11c3QgYmUKK2Egc3ViY29kZSBmb3IgdGhlIGxhbmd1YWdlIGluIHF1ZXN0aW9uIHJlZ2lzdGVyZWQgd2l0aCBJQU5BLAordW5sZXNzIHRoZSA8bnQgZGVmPSdOVC1MYW5nY29kZSc+TGFuZ2NvZGU8L250PiBiZWdpbnMgd2l0aCB0aGUgcHJlZml4IAorIjxjb2RlPngtPC9jb2RlPiIgb3IKKyI8Y29kZT5YLTwvY29kZT4iLiA8L3A+Cis8cD5JdCBpcyBjdXN0b21hcnkgdG8gZ2l2ZSB0aGUgbGFuZ3VhZ2UgY29kZSBpbiBsb3dlciBjYXNlLCBhbmQKK3RoZSBjb3VudHJ5IGNvZGUgKGlmIGFueSkgaW4gdXBwZXIgY2FzZS4KK05vdGUgdGhhdCB0aGVzZSB2YWx1ZXMsIHVubGlrZSBvdGhlciBuYW1lcyBpbiBYTUwgZG9jdW1lbnRzLAorYXJlIGNhc2UgaW5zZW5zaXRpdmUuPC9wPgorPHA+Rm9yIGV4YW1wbGU6Cis8ZWc+PCFbQ0RBVEFbPHAgeG1sOmxhbmc9ImVuIj5UaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLjwvcD4KKzxwIHhtbDpsYW5nPSJlbi1HQiI+V2hhdCBjb2xvdXIgaXMgaXQ/PC9wPgorPHAgeG1sOmxhbmc9ImVuLVVTIj5XaGF0IGNvbG9yIGlzIGl0PzwvcD4KKzxzcCB3aG89IkZhdXN0IiBkZXNjPSdsZWlzZScgeG1sOmxhbmc9ImRlIj4KKyAgPGw+SGFiZSBudW4sIGFjaCEgUGhpbG9zb3BoaWUsPC9sPgorICA8bD5KdXJpc3RlcmVpLCB1bmQgTWVkaXppbjwvbD4KKyAgPGw+dW5kIGxlaWRlciBhdWNoIFRoZW9sb2dpZTwvbD4KKyAgPGw+ZHVyY2hhdXMgc3R1ZGllcnQgbWl0IGhlad9lbSBCZW38aCduLjwvbD4KKyAgPC9zcD5dXT48L2VnPjwvcD4KKzwhLS08cD5UaGUgeG1sOmxhbmcgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBhcHBseSBib3RoIHRvIHRoZSBjb250ZW50cyBvZiBhbgorZWxlbWVudCBhbmQgCisodW5sZXNzIG90aGVyd2lzZSB2aWEgYXR0cmlidXRlIGRlZmF1bHQgdmFsdWVzKSB0byB0aGUKK3ZhbHVlcyBvZiBhbGwgb2YgaXRzIGF0dHJpYnV0ZXMgd2l0aCBmcmVlLXRleHQgKENEQVRBKSB2YWx1ZXMuICAtLT4KKzxwPlRoZSBpbnRlbnQgZGVjbGFyZWQgd2l0aCA8a3c+eG1sOmxhbmc8L2t3PiBpcyBjb25zaWRlcmVkIHRvIGFwcGx5IHRvCithbGwgYXR0cmlidXRlcyBhbmQgY29udGVudCBvZiB0aGUgZWxlbWVudCB3aGVyZSBpdCBpcyBzcGVjaWZpZWQsCit1bmxlc3Mgb3ZlcnJpZGRlbiB3aXRoIGFuIGluc3RhbmNlIG9mIDxrdz54bWw6bGFuZzwva3c+CitvbiBhbm90aGVyIGVsZW1lbnQgd2l0aGluIHRoYXQgY29udGVudC48L3A+Cis8IS0tCitJZiBubwordmFsdWUgaXMgc3BlY2lmaWVkIGZvciB4bWw6bGFuZyBvbiBhbiBlbGVtZW50LCBhbmQgbm8gZGVmYXVsdCB2YWx1ZSBpcworZGVmaW5lZCBmb3IgaXQgaW4gdGhlIERURCwgdGhlbiB0aGUgeG1sOmxhbmcgYXR0cmlidXRlIG9mIGFueSBlbGVtZW50Cit0YWtlcyB0aGUgc2FtZSB2YWx1ZSBpdCBoYXMgaW4gdGhlIHBhcmVudCBlbGVtZW50LCBpZiBhbnkuICBUaGUgdHdvCit0ZWNobmljYWwgdGVybXMgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlIGJvdGggaGF2ZSB0aGUgc2FtZSBlZmZlY3RpdmUKK3ZhbHVlIGZvciB4bWw6bGFuZzoKKworICA8cCB4bWw6bGFuZz0iZW4iPkhlcmUgdGhlIGtleXdvcmRzIGFyZQorICA8dGVybSB4bWw6bGFuZz0iZW4iPnNoaWZ0PC90ZXJtPiBhbmQKKyAgPHRlcm0+cmVkdWNlPC90ZXJtPi4gLi4uPC9wPgorCitUaGUgYXBwbGljYXRpb24sIG5vdCB0aGUgWE1MIHByb2Nlc3NvciwgaXMgcmVzcG9uc2libGUgZm9yIHRoaXMgJworaW5oZXJpdGFuY2UnIG9mIGF0dHJpYnV0ZSB2YWx1ZXMuCistLT4KKzxwPkEgc2ltcGxlIGRlY2xhcmF0aW9uIGZvciA8a3c+eG1sOmxhbmc8L2t3PiBtaWdodCB0YWtlCit0aGUgZm9ybQorPGVnPnhtbDpsYW5nICBOTVRPS0VOICAjSU1QTElFRDwvZWc+CitidXQgc3BlY2lmaWMgZGVmYXVsdCB2YWx1ZXMgbWF5IGFsc28gYmUgZ2l2ZW4sIGlmIGFwcHJvcHJpYXRlLiAgSW4gYQorY29sbGVjdGlvbiBvZiBGcmVuY2ggcG9lbXMgZm9yIEVuZ2xpc2ggc3R1ZGVudHMsIHdpdGggZ2xvc3NlcyBhbmQKK25vdGVzIGluIEVuZ2xpc2gsIHRoZSB4bWw6bGFuZyBhdHRyaWJ1dGUgbWlnaHQgYmUgZGVjbGFyZWQgdGhpcyB3YXk6Cis8ZWc+PCFbQ0RBVEFbICAgIDwhQVRUTElTVCBwb2VtICAgeG1sOmxhbmcgTk1UT0tFTiAnZnInPgorICAgIDwhQVRUTElTVCBnbG9zcyAgeG1sOmxhbmcgTk1UT0tFTiAnZW4nPgorICAgIDwhQVRUTElTVCBub3RlICAgeG1sOmxhbmcgTk1UT0tFTiAnZW4nPl1dPjwvZWc+Cis8L3A+CisKKzwvZGl2Mj4KKzwvZGl2MT4KKzwhLS0gJkVsZW1lbnRzOyAtLT4KKyAKKzxkaXYxIGlkPSdzZWMtbG9naWNhbC1zdHJ1Y3QnPgorPGhlYWQ+TG9naWNhbCBTdHJ1Y3R1cmVzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWVsZW1lbnQiIHRlcm09IkVsZW1lbnQiPkVhY2ggPHRlcm1yZWYKK2RlZj0iZHQteG1sLWRvYyI+WE1MIGRvY3VtZW50PC90ZXJtcmVmPiBjb250YWlucyBvbmUgb3IgbW9yZQorPHRlcm0+ZWxlbWVudHM8L3Rlcm0+LCB0aGUgYm91bmRhcmllcyBvZiB3aGljaCBhcmUgCitlaXRoZXIgZGVsaW1pdGVkIGJ5IDx0ZXJtcmVmIGRlZj0iZHQtc3RhZyI+c3RhcnQtdGFnczwvdGVybXJlZj4gCithbmQgPHRlcm1yZWYgZGVmPSJkdC1ldGFnIj5lbmQtdGFnczwvdGVybXJlZj4sIG9yLCBmb3IgPHRlcm1yZWYKK2RlZj0iZHQtZW1wdHkiPmVtcHR5PC90ZXJtcmVmPiBlbGVtZW50cywgYnkgYW4gPHRlcm1yZWYKK2RlZj0iZHQtZWV0YWciPmVtcHR5LWVsZW1lbnQgdGFnPC90ZXJtcmVmPi4gRWFjaCBlbGVtZW50IGhhcyBhIHR5cGUsCitpZGVudGlmaWVkIGJ5IG5hbWUsIHNvbWV0aW1lcyBjYWxsZWQgaXRzICJnZW5lcmljCitpZGVudGlmaWVyIiAoR0kpLCBhbmQgbWF5IGhhdmUgYSBzZXQgb2YKK2F0dHJpYnV0ZSBzcGVjaWZpY2F0aW9ucy48L3Rlcm1kZWY+ICBFYWNoIGF0dHJpYnV0ZSBzcGVjaWZpY2F0aW9uIAoraGFzIGEgPHRlcm1yZWYKK2RlZj0iZHQtYXR0cm5hbWUiPm5hbWU8L3Rlcm1yZWY+IGFuZCBhIDx0ZXJtcmVmCitkZWY9ImR0LWF0dHJ2YWwiPnZhbHVlPC90ZXJtcmVmPi4KKzwvcD4KKzxzY3JhcCBsYW5nPSdlYm5mJz48aGVhZD5FbGVtZW50PC9oZWFkPgorPHByb2QgaWQ9J05ULWVsZW1lbnQnPjxsaHM+ZWxlbWVudDwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1FbXB0eUVsZW1UYWcnPkVtcHR5RWxlbVRhZzwvbnQ+PC9yaHM+Cis8cmhzPnwgPG50IGRlZj0nTlQtU1RhZyc+U1RhZzwvbnQ+IDxudCBkZWY9J05ULWNvbnRlbnQnPmNvbnRlbnQ8L250PiAKKzxudCBkZWY9J05ULUVUYWcnPkVUYWc8L250PjwvcmhzPgorPHdmYyBkZWY9J0dJTWF0Y2gnLz4KKzx2YyBkZWY9J2VsZW1lbnR2YWxpZCcvPgorPC9wcm9kPgorPC9zY3JhcD4KKzxwPlRoaXMgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBjb25zdHJhaW4gdGhlIHNlbWFudGljcywgdXNlLCBvciAoYmV5b25kCitzeW50YXgpIG5hbWVzIG9mIHRoZSBlbGVtZW50IHR5cGVzIGFuZCBhdHRyaWJ1dGVzLCBleGNlcHQgdGhhdCBuYW1lcworYmVnaW5uaW5nIHdpdGggYSBtYXRjaCB0byA8Y29kZT4oKCdYJ3wneCcpKCdNJ3wnbScpKCdMJ3wnbCcpKTwvY29kZT4KK2FyZSByZXNlcnZlZCBmb3Igc3RhbmRhcmRpemF0aW9uIGluIHRoaXMgb3IgZnV0dXJlIHZlcnNpb25zIG9mIHRoaXMKK3NwZWNpZmljYXRpb24uCis8L3A+Cis8d2Zjbm90ZSBpZD0nR0lNYXRjaCc+Cis8aGVhZD5FbGVtZW50IFR5cGUgTWF0Y2g8L2hlYWQ+Cis8cD4KK1RoZSA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gaW4gYW4gZWxlbWVudCdzIGVuZC10YWcgbXVzdCBtYXRjaCAKK3RoZSBlbGVtZW50IHR5cGUgaW4KK3RoZSBzdGFydC10YWcuCis8L3A+Cis8L3dmY25vdGU+Cis8dmNub3RlIGlkPSdlbGVtZW50dmFsaWQnPgorPGhlYWQ+RWxlbWVudCBWYWxpZDwvaGVhZD4KKzxwPkFuIGVsZW1lbnQgaXMKK3ZhbGlkIGlmCit0aGVyZSBpcyBhIGRlY2xhcmF0aW9uIG1hdGNoaW5nIAorPG50IGRlZj0nTlQtZWxlbWVudGRlY2wnPmVsZW1lbnRkZWNsPC9udD4gd2hlcmUgdGhlCis8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gbWF0Y2hlcyB0aGUgZWxlbWVudCB0eXBlLCBhbmQKK29uZSBvZiB0aGUgZm9sbG93aW5nIGhvbGRzOjwvcD4KKzxvbGlzdD4KKzxpdGVtPjxwPlRoZSBkZWNsYXJhdGlvbiBtYXRjaGVzIDxrdz5FTVBUWTwva3c+IGFuZCB0aGUgZWxlbWVudCBoYXMgbm8gCis8dGVybXJlZiBkZWY9J2R0LWNvbnRlbnQnPmNvbnRlbnQ8L3Rlcm1yZWY+LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgZGVjbGFyYXRpb24gbWF0Y2hlcyA8bnQgZGVmPSdOVC1jaGlsZHJlbic+Y2hpbGRyZW48L250PiBhbmQKK3RoZSBzZXF1ZW5jZSBvZiAKKzx0ZXJtcmVmIGRlZj0iZHQtcGFyZW50Y2hpbGQiPmNoaWxkIGVsZW1lbnRzPC90ZXJtcmVmPgorYmVsb25ncyB0byB0aGUgbGFuZ3VhZ2UgZ2VuZXJhdGVkIGJ5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaW4KK3RoZSBjb250ZW50IG1vZGVsLCB3aXRoIG9wdGlvbmFsIHdoaXRlIHNwYWNlIChjaGFyYWN0ZXJzIAorbWF0Y2hpbmcgdGhlIG5vbnRlcm1pbmFsIDxudCBkZWY9J05ULVMnPlM8L250PikgYmV0d2VlbiBlYWNoIHBhaXIKK29mIGNoaWxkIGVsZW1lbnRzLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgZGVjbGFyYXRpb24gbWF0Y2hlcyA8bnQgZGVmPSdOVC1NaXhlZCc+TWl4ZWQ8L250PiBhbmQgCit0aGUgY29udGVudCBjb25zaXN0cyBvZiA8dGVybXJlZiBkZWY9J2R0LWNoYXJkYXRhJz5jaGFyYWN0ZXIgCitkYXRhPC90ZXJtcmVmPiBhbmQgPHRlcm1yZWYgZGVmPSdkdC1wYXJlbnRjaGlsZCc+Y2hpbGQgZWxlbWVudHM8L3Rlcm1yZWY+Cit3aG9zZSB0eXBlcyBtYXRjaCBuYW1lcyBpbiB0aGUgY29udGVudCBtb2RlbC48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VGhlIGRlY2xhcmF0aW9uIG1hdGNoZXMgPGt3PkFOWTwva3c+LCBhbmQgdGhlIHR5cGVzCitvZiBhbnkgPHRlcm1yZWYgZGVmPSdkdC1wYXJlbnRjaGlsZCc+Y2hpbGQgZWxlbWVudHM8L3Rlcm1yZWY+IGhhdmUKK2JlZW4gZGVjbGFyZWQuPC9wPjwvaXRlbT4KKzwvb2xpc3Q+Cis8L3Zjbm90ZT4KKworPGRpdjIgaWQ9J3NlYy1zdGFydHRhZ3MnPgorPGhlYWQ+U3RhcnQtVGFncywgRW5kLVRhZ3MsIGFuZCBFbXB0eS1FbGVtZW50IFRhZ3M8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtc3RhZyIgdGVybT0iU3RhcnQtVGFnIj5UaGUgYmVnaW5uaW5nIG9mIGV2ZXJ5Citub24tZW1wdHkgWE1MIGVsZW1lbnQgaXMgbWFya2VkIGJ5IGEgPHRlcm0+c3RhcnQtdGFnPC90ZXJtPi4KKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPlN0YXJ0LXRhZzwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNiIgcGN3ND0iMTUiIHBjdzU9IjExLjUiPgorPHByb2QgaWQ9J05ULVNUYWcnPjxsaHM+U1RhZzwvbGhzPgorPHJocz4nJmx0OycgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IAorKDxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1BdHRyaWJ1dGUnPkF0dHJpYnV0ZTwvbnQ+KSogCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICc+JzwvcmhzPgorPHdmYyBkZWY9InVuaXFhdHRzcGVjIi8+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtQXR0cmlidXRlJz48bGhzPkF0dHJpYnV0ZTwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gPG50IGRlZj0nTlQtRXEnPkVxPC9udD4gCis8bnQgZGVmPSdOVC1BdHRWYWx1ZSc+QXR0VmFsdWU8L250PjwvcmhzPgorPHZjIGRlZj0nVmFsdWVUeXBlJy8+Cis8d2ZjIGRlZj0nTm9FeHRlcm5hbFJlZnMnLz4KKzx3ZmMgZGVmPSdDbGVhbkF0dHJWYWxzJy8+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorVGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBpbgordGhlIHN0YXJ0LSBhbmQgZW5kLXRhZ3MgZ2l2ZXMgdGhlIAorZWxlbWVudCdzIDx0ZXJtPnR5cGU8L3Rlcm0+LjwvdGVybWRlZj4KKzx0ZXJtZGVmIGlkPSJkdC1hdHRyIiB0ZXJtPSJBdHRyaWJ1dGUiPgorVGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250Pi08bnQgZGVmPSdOVC1BdHRWYWx1ZSc+QXR0VmFsdWU8L250PiBwYWlycyBhcmUKK3JlZmVycmVkIHRvIGFzIAordGhlIDx0ZXJtPmF0dHJpYnV0ZSBzcGVjaWZpY2F0aW9uczwvdGVybT4gb2YgdGhlIGVsZW1lbnQ8L3Rlcm1kZWY+LAorPHRlcm1kZWYgaWQ9ImR0LWF0dHJuYW1lIiB0ZXJtPSJBdHRyaWJ1dGUgTmFtZSI+d2l0aCB0aGUgCis8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gaW4gZWFjaCBwYWlyCityZWZlcnJlZCB0byBhcyB0aGUgPHRlcm0+YXR0cmlidXRlIG5hbWU8L3Rlcm0+PC90ZXJtZGVmPiBhbmQKKzx0ZXJtZGVmIGlkPSJkdC1hdHRydmFsIiB0ZXJtPSJBdHRyaWJ1dGUgVmFsdWUiPnRoZSBjb250ZW50IG9mIHRoZQorPG50IGRlZj0nTlQtQXR0VmFsdWUnPkF0dFZhbHVlPC9udD4gKHRoZSB0ZXh0IGJldHdlZW4gdGhlCis8Y29kZT4nPC9jb2RlPiBvciA8Y29kZT4iPC9jb2RlPiBkZWxpbWl0ZXJzKQorYXMgdGhlIDx0ZXJtPmF0dHJpYnV0ZSB2YWx1ZTwvdGVybT4uPC90ZXJtZGVmPgorPC9wPgorPHdmY25vdGUgaWQ9J3VuaXFhdHRzcGVjJz4KKzxoZWFkPlVuaXF1ZSBBdHQgU3BlYzwvaGVhZD4KKzxwPgorTm8gYXR0cmlidXRlIG5hbWUgbWF5IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBzdGFydC10YWcKK29yIGVtcHR5LWVsZW1lbnQgdGFnLgorPC9wPgorPC93ZmNub3RlPgorPHZjbm90ZSBpZD0nVmFsdWVUeXBlJz4KKzxoZWFkPkF0dHJpYnV0ZSBWYWx1ZSBUeXBlPC9oZWFkPgorPHA+CitUaGUgYXR0cmlidXRlIG11c3QgaGF2ZSBiZWVuIGRlY2xhcmVkOyB0aGUgdmFsdWUgbXVzdCBiZSBvZiB0aGUgdHlwZSAKK2RlY2xhcmVkIGZvciBpdC4KKyhGb3IgYXR0cmlidXRlIHR5cGVzLCBzZWUgPHNwZWNyZWYgcmVmPSdhdHRkZWNscycvPi4pCis8L3A+Cis8L3Zjbm90ZT4KKzx3ZmNub3RlIGlkPSdOb0V4dGVybmFsUmVmcyc+Cis8aGVhZD5ObyBFeHRlcm5hbCBFbnRpdHkgUmVmZXJlbmNlczwvaGVhZD4KKzxwPgorQXR0cmlidXRlIHZhbHVlcyBjYW5ub3QgY29udGFpbiBkaXJlY3Qgb3IgaW5kaXJlY3QgZW50aXR5IHJlZmVyZW5jZXMgCit0byBleHRlcm5hbCBlbnRpdGllcy4KKzwvcD4KKzwvd2Zjbm90ZT4KKzx3ZmNub3RlIGlkPSdDbGVhbkF0dHJWYWxzJz4KKzxoZWFkPk5vIDxjb2RlPiZsdDs8L2NvZGU+IGluIEF0dHJpYnV0ZSBWYWx1ZXM8L2hlYWQ+Cis8cD5UaGUgPHRlcm1yZWYgZGVmPSdkdC1yZXBsdGV4dCc+cmVwbGFjZW1lbnQgdGV4dDwvdGVybXJlZj4gb2YgYW55IGVudGl0eQorcmVmZXJyZWQgdG8gZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbiBhbiBhdHRyaWJ1dGUKK3ZhbHVlIChvdGhlciB0aGFuICI8Y29kZT4mYW1wO2x0OzwvY29kZT4iKSBtdXN0IG5vdCBjb250YWluCithIDxjb2RlPiZsdDs8L2NvZGU+LgorPC9wPjwvd2Zjbm90ZT4KKzxwPkFuIGV4YW1wbGUgb2YgYSBzdGFydC10YWc6Cis8ZWc+Jmx0O3Rlcm1kZWYgaWQ9ImR0LWRvZyIgdGVybT0iZG9nIj48L2VnPjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1ldGFnIiB0ZXJtPSJFbmQgVGFnIj5UaGUgZW5kIG9mIGV2ZXJ5IGVsZW1lbnQgCit0aGF0IGJlZ2lucyB3aXRoIGEgc3RhcnQtdGFnIG11c3QKK2JlIG1hcmtlZCBieSBhbiA8dGVybT5lbmQtdGFnPC90ZXJtPgorY29udGFpbmluZyBhIG5hbWUgdGhhdCBlY2hvZXMgdGhlIGVsZW1lbnQncyB0eXBlIGFzIGdpdmVuIGluIHRoZQorc3RhcnQtdGFnOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+RW5kLXRhZzwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNiIgcGN3ND0iMTUiIHBjdzU9IjExLjUiPgorPHByb2QgaWQ9J05ULUVUYWcnPjxsaHM+RVRhZzwvbGhzPgorPHJocz4nJmx0Oy8nIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gJz4nPC9yaHM+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC90ZXJtZGVmPjwvcD4KKzxwPkFuIGV4YW1wbGUgb2YgYW4gZW5kLXRhZzo8ZWc+Jmx0Oy90ZXJtZGVmPjwvZWc+PC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWNvbnRlbnQiIHRlcm09IkNvbnRlbnQiPlRoZSAKKzx0ZXJtcmVmIGRlZj0nZHQtdGV4dCc+dGV4dDwvdGVybXJlZj4gYmV0d2VlbiB0aGUgc3RhcnQtdGFnIGFuZAorZW5kLXRhZyBpcyBjYWxsZWQgdGhlIGVsZW1lbnQncworPHRlcm0+Y29udGVudDwvdGVybT46Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5Db250ZW50IG9mIEVsZW1lbnRzPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNSIgcGN3NT0iMTEuNSI+Cis8cHJvZCBpZD0nTlQtY29udGVudCc+PGxocz5jb250ZW50PC9saHM+Cis8cmhzPig8bnQgZGVmPSdOVC1lbGVtZW50Jz5lbGVtZW50PC9udD4gfCA8bnQgZGVmPSdOVC1DaGFyRGF0YSc+Q2hhckRhdGE8L250PiAKK3wgPG50IGRlZj0nTlQtUmVmZXJlbmNlJz5SZWZlcmVuY2U8L250PiB8IDxudCBkZWY9J05ULUNEU2VjdCc+Q0RTZWN0PC9udD4gCit8IDxudCBkZWY9J05ULVBJJz5QSTwvbnQ+IHwgPG50IGRlZj0nTlQtQ29tbWVudCc+Q29tbWVudDwvbnQ+KSo8L3Jocz4KKzwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvdGVybWRlZj48L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtZW1wdHkiIHRlcm09IkVtcHR5Ij5JZiBhbiBlbGVtZW50IGlzIDx0ZXJtPmVtcHR5PC90ZXJtPiwKK2l0IG11c3QgYmUgcmVwcmVzZW50ZWQgZWl0aGVyIGJ5IGEgc3RhcnQtdGFnIGltbWVkaWF0ZWx5IGZvbGxvd2VkCitieSBhbiBlbmQtdGFnIG9yIGJ5IGFuIGVtcHR5LWVsZW1lbnQgdGFnLjwvdGVybWRlZj4KKzx0ZXJtZGVmIGlkPSJkdC1lZXRhZyIgdGVybT0iZW1wdHktZWxlbWVudCB0YWciPkFuIAorPHRlcm0+ZW1wdHktZWxlbWVudCB0YWc8L3Rlcm0+IHRha2VzIGEgc3BlY2lhbCBmb3JtOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+VGFncyBmb3IgRW1wdHkgRWxlbWVudHM8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjYiIHBjdzQ9IjE1IiBwY3c1PSIxMS41Ij4KKzxwcm9kIGlkPSdOVC1FbXB0eUVsZW1UYWcnPjxsaHM+RW1wdHlFbGVtVGFnPC9saHM+Cis8cmhzPicmbHQ7JyA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gKDxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULUF0dHJpYnV0ZSc+QXR0cmlidXRlPC9udD4pKiA8bnQgZGVmPSdOVC1TJz5TPC9udD4/IAorJy8mZ3Q7JzwvcmhzPgorPHdmYyBkZWY9InVuaXFhdHRzcGVjIi8+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cis8L3Rlcm1kZWY+PC9wPgorPHA+RW1wdHktZWxlbWVudCB0YWdzIG1heSBiZSB1c2VkIGZvciBhbnkgZWxlbWVudCB3aGljaCBoYXMgbm8KK2NvbnRlbnQsIHdoZXRoZXIgb3Igbm90IGl0IGlzIGRlY2xhcmVkIHVzaW5nIHRoZSBrZXl3b3JkCis8a3c+RU1QVFk8L2t3Pi4KKzx0ZXJtcmVmIGRlZj0nZHQtaW50ZXJvcCc+Rm9yIGludGVyb3BlcmFiaWxpdHk8L3Rlcm1yZWY+LCB0aGUgZW1wdHktZWxlbWVudAordGFnIG11c3QgYmUgdXNlZCwgYW5kIGNhbiBvbmx5IGJlIHVzZWQsIGZvciBlbGVtZW50cyB3aGljaCBhcmUKKzx0ZXJtcmVmIGRlZj0nZHQtZWxkZWNsJz5kZWNsYXJlZDwvdGVybXJlZj4gPGt3PkVNUFRZPC9rdz4uPC9wPgorPHA+RXhhbXBsZXMgb2YgZW1wdHkgZWxlbWVudHM6Cis8ZWc+Jmx0O0lNRyBhbGlnbj0ibGVmdCIKKyBzcmM9Imh0dHA6Ly93d3cudzMub3JnL0ljb25zL1dXVy93M2NfaG9tZSIgLz4KKyZsdDticj4mbHQ7L2JyPgorJmx0O2JyLz48L2VnPjwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSdlbGVtZGVjbHMnPgorPGhlYWQ+RWxlbWVudCBUeXBlIERlY2xhcmF0aW9uczwvaGVhZD4KKyAKKzxwPlRoZSA8dGVybXJlZiBkZWY9ImR0LWVsZW1lbnQiPmVsZW1lbnQ8L3Rlcm1yZWY+IHN0cnVjdHVyZSBvZiBhbgorPHRlcm1yZWYgZGVmPSJkdC14bWwtZG9jIj5YTUwgZG9jdW1lbnQ8L3Rlcm1yZWY+IG1heSwgZm9yIAorPHRlcm1yZWYgZGVmPSJkdC12YWxpZCI+dmFsaWRhdGlvbjwvdGVybXJlZj4gcHVycG9zZXMsIAorYmUgY29uc3RyYWluZWQKK3VzaW5nIGVsZW1lbnQgdHlwZSBhbmQgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb25zLgorQW4gZWxlbWVudCB0eXBlIGRlY2xhcmF0aW9uIGNvbnN0cmFpbnMgdGhlIGVsZW1lbnQncworPHRlcm1yZWYgZGVmPSJkdC1jb250ZW50Ij5jb250ZW50PC90ZXJtcmVmPi4KKzwvcD4KKworPHA+RWxlbWVudCB0eXBlIGRlY2xhcmF0aW9ucyBvZnRlbiBjb25zdHJhaW4gd2hpY2ggZWxlbWVudCB0eXBlcyBjYW4KK2FwcGVhciBhcyA8dGVybXJlZiBkZWY9ImR0LXBhcmVudGNoaWxkIj5jaGlsZHJlbjwvdGVybXJlZj4gb2YgdGhlIGVsZW1lbnQuCitBdCB1c2VyIG9wdGlvbiwgYW4gWE1MIHByb2Nlc3NvciBtYXkgaXNzdWUgYSB3YXJuaW5nCit3aGVuIGEgZGVjbGFyYXRpb24gbWVudGlvbnMgYW4gZWxlbWVudCB0eXBlIGZvciB3aGljaCBubyBkZWNsYXJhdGlvbgoraXMgcHJvdmlkZWQsIGJ1dCB0aGlzIGlzIG5vdCBhbiBlcnJvci48L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtZWxkZWNsIiB0ZXJtPSJFbGVtZW50IFR5cGUgZGVjbGFyYXRpb24iPkFuIDx0ZXJtPmVsZW1lbnQKK3R5cGUgZGVjbGFyYXRpb248L3Rlcm0+IHRha2VzIHRoZSBmb3JtOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+RWxlbWVudCBUeXBlIERlY2xhcmF0aW9uPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI1LjUiIHBjdzQ9IjE4IiBwY3c1PSI5Ij4KKzxwcm9kIGlkPSdOVC1lbGVtZW50ZGVjbCc+PGxocz5lbGVtZW50ZGVjbDwvbGhzPgorPHJocz4nJmx0OyFFTEVNRU5UJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4gCis8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gCis8bnQgZGVmPSdOVC1TJz5TPC9udD4gCis8bnQgZGVmPSdOVC1jb250ZW50c3BlYyc+Y29udGVudHNwZWM8L250PgorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnPic8L3Jocz4KKzx2YyBkZWY9J0VEVW5pcXVlJy8+PC9wcm9kPgorPHByb2QgaWQ9J05ULWNvbnRlbnRzcGVjJz48bGhzPmNvbnRlbnRzcGVjPC9saHM+Cis8cmhzPidFTVBUWScgCit8ICdBTlknIAorfCA8bnQgZGVmPSdOVC1NaXhlZCc+TWl4ZWQ8L250PiAKK3wgPG50IGRlZj0nTlQtY2hpbGRyZW4nPmNoaWxkcmVuPC9udD4KKzwvcmhzPgorPC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgord2hlcmUgdGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBnaXZlcyB0aGUgZWxlbWVudCB0eXBlIAorYmVpbmcgZGVjbGFyZWQuPC90ZXJtZGVmPgorPC9wPgorCis8dmNub3RlIGlkPSdFRFVuaXF1ZSc+Cis8aGVhZD5VbmlxdWUgRWxlbWVudCBUeXBlIERlY2xhcmF0aW9uPC9oZWFkPgorPHA+CitObyBlbGVtZW50IHR5cGUgbWF5IGJlIGRlY2xhcmVkIG1vcmUgdGhhbiBvbmNlLgorPC9wPgorPC92Y25vdGU+CisKKzxwPkV4YW1wbGVzIG9mIGVsZW1lbnQgdHlwZSBkZWNsYXJhdGlvbnM6Cis8ZWc+Jmx0OyFFTEVNRU5UIGJyIEVNUFRZPgorJmx0OyFFTEVNRU5UIHAgKCNQQ0RBVEF8ZW1waCkqID4KKyZsdDshRUxFTUVOVCAlbmFtZS5wYXJhOyAlY29udGVudC5wYXJhOyA+CismbHQ7IUVMRU1FTlQgY29udGFpbmVyIEFOWT48L2VnPjwvcD4KKyAKKzxkaXYzIGlkPSdzZWMtZWxlbWVudC1jb250ZW50Jz4KKzxoZWFkPkVsZW1lbnQgQ29udGVudDwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSdkdC1lbGVtY29udGVudCcgdGVybT0nRWxlbWVudCBjb250ZW50Jz5BbiBlbGVtZW50IDx0ZXJtcmVmCitkZWY9ImR0LXN0YWciPnR5cGU8L3Rlcm1yZWY+IGhhcworPHRlcm0+ZWxlbWVudCBjb250ZW50PC90ZXJtPiB3aGVuIGVsZW1lbnRzIG9mIHRoYXQKK3R5cGUgbXVzdCBjb250YWluIG9ubHkgPHRlcm1yZWYgZGVmPSdkdC1wYXJlbnRjaGlsZCc+Y2hpbGQ8L3Rlcm1yZWY+IAorZWxlbWVudHMgKG5vIGNoYXJhY3RlciBkYXRhKSwgb3B0aW9uYWxseSBzZXBhcmF0ZWQgYnkgCit3aGl0ZSBzcGFjZSAoY2hhcmFjdGVycyBtYXRjaGluZyB0aGUgbm9udGVybWluYWwgCis8bnQgZGVmPSdOVC1TJz5TPC9udD4pLgorPC90ZXJtZGVmPgorSW4gdGhpcyBjYXNlLCB0aGUKK2NvbnN0cmFpbnQgaW5jbHVkZXMgYSBjb250ZW50IG1vZGVsLCBhIHNpbXBsZSBncmFtbWFyIGdvdmVybmluZwordGhlIGFsbG93ZWQgdHlwZXMgb2YgdGhlIGNoaWxkCitlbGVtZW50cyBhbmQgdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXJlIGFsbG93ZWQgdG8gYXBwZWFyLiAgCitUaGUgZ3JhbW1hciBpcyBidWlsdCBvbgorY29udGVudCBwYXJ0aWNsZXMgKDxudCBkZWY9J05ULWNwJz5jcDwvbnQ+cyksIHdoaWNoIGNvbnNpc3Qgb2YgbmFtZXMsIAorY2hvaWNlIGxpc3RzIG9mIGNvbnRlbnQgcGFydGljbGVzLCBvcgorc2VxdWVuY2UgbGlzdHMgb2YgY29udGVudCBwYXJ0aWNsZXM6Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5FbGVtZW50LWNvbnRlbnQgTW9kZWxzPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI1LjUiIHBjdzQ9IjE2IiBwY3c1PSIxMSI+Cis8cHJvZCBpZD0nTlQtY2hpbGRyZW4nPjxsaHM+Y2hpbGRyZW48L2xocz4KKzxyaHM+KDxudCBkZWY9J05ULWNob2ljZSc+Y2hvaWNlPC9udD4gCit8IDxudCBkZWY9J05ULXNlcSc+c2VxPC9udD4pIAorKCc/JyB8ICcqJyB8ICcrJyk/PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULWNwJz48bGhzPmNwPC9saHM+Cis8cmhzPig8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gCit8IDxudCBkZWY9J05ULWNob2ljZSc+Y2hvaWNlPC9udD4gCit8IDxudCBkZWY9J05ULXNlcSc+c2VxPC9udD4pIAorKCc/JyB8ICcqJyB8ICcrJyk/PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULWNob2ljZSc+PGxocz5jaG9pY2U8L2xocz4KKzxyaHM+JygnIDxudCBkZWY9J05ULVMnPlM8L250Pj8gY3AgCisoIDxudCBkZWY9J05ULVMnPlM8L250Pj8gJ3wnIDxudCBkZWY9J05ULVMnPlM8L250Pj8gPG50IGRlZj0nTlQtY3AnPmNwPC9udD4gKSoKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gJyknPC9yaHM+Cis8dmMgZGVmPSd2Yy1QRWluR3JvdXAnLz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtc2VxJz48bGhzPnNlcTwvbGhzPgorPHJocz4nKCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyBjcCAKKyggPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnLCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyA8bnQgZGVmPSdOVC1jcCc+Y3A8L250PiApKgorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnKSc8L3Jocz4KKzx2YyBkZWY9J3ZjLVBFaW5Hcm91cCcvPjwvcHJvZD4KKworPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgord2hlcmUgZWFjaCA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gaXMgdGhlIHR5cGUgb2YgYW4gZWxlbWVudCB3aGljaCBtYXkKK2FwcGVhciBhcyBhIDx0ZXJtcmVmIGRlZj0iZHQtcGFyZW50Y2hpbGQiPmNoaWxkPC90ZXJtcmVmPi4gIAorQW55IGNvbnRlbnQKK3BhcnRpY2xlIGluIGEgY2hvaWNlIGxpc3QgbWF5IGFwcGVhciBpbiB0aGUgPHRlcm1yZWYKK2RlZj0iZHQtZWxlbWNvbnRlbnQiPmVsZW1lbnQgY29udGVudDwvdGVybXJlZj4gYXQgdGhlIGxvY2F0aW9uIHdoZXJlCit0aGUgY2hvaWNlIGxpc3QgYXBwZWFycyBpbiB0aGUgZ3JhbW1hcjsKK2NvbnRlbnQgcGFydGljbGVzIG9jY3VycmluZyBpbiBhIHNlcXVlbmNlIGxpc3QgbXVzdCBlYWNoCithcHBlYXIgaW4gdGhlIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWNvbnRlbnQiPmVsZW1lbnQgY29udGVudDwvdGVybXJlZj4gaW4gdGhlCitvcmRlciBnaXZlbiBpbiB0aGUgbGlzdC4gIAorVGhlIG9wdGlvbmFsIGNoYXJhY3RlciBmb2xsb3dpbmcgYSBuYW1lIG9yIGxpc3QgZ292ZXJucword2hldGhlciB0aGUgZWxlbWVudCBvciB0aGUgY29udGVudCBwYXJ0aWNsZXMgaW4gdGhlIGxpc3QgbWF5IG9jY3VyIG9uZQorb3IgbW9yZSAoPGNvZGU+KzwvY29kZT4pLCB6ZXJvIG9yIG1vcmUgKDxjb2RlPio8L2NvZGU+KSwgb3IgemVybyBvciAKK29uZSB0aW1lcyAoPGNvZGU+PzwvY29kZT4pLiAgCitUaGUgYWJzZW5jZSBvZiBzdWNoIGFuIG9wZXJhdG9yIG1lYW5zIHRoYXQgdGhlIGVsZW1lbnQgb3IgY29udGVudCBwYXJ0aWNsZQorbXVzdCBhcHBlYXIgZXhhY3RseSBvbmNlLgorVGhpcyBzeW50YXgKK2FuZCBtZWFuaW5nIGFyZSBpZGVudGljYWwgdG8gdGhvc2UgdXNlZCBpbiB0aGUgcHJvZHVjdGlvbnMgaW4gdGhpcworc3BlY2lmaWNhdGlvbi48L3A+Cis8cD4KK1RoZSBjb250ZW50IG9mIGFuIGVsZW1lbnQgbWF0Y2hlcyBhIGNvbnRlbnQgbW9kZWwgaWYgYW5kIG9ubHkgaWYgaXQgaXMKK3Bvc3NpYmxlIHRvIHRyYWNlIG91dCBhIHBhdGggdGhyb3VnaCB0aGUgY29udGVudCBtb2RlbCwgb2JleWluZyB0aGUKK3NlcXVlbmNlLCBjaG9pY2UsIGFuZCByZXBldGl0aW9uIG9wZXJhdG9ycyBhbmQgbWF0Y2hpbmcgZWFjaCBlbGVtZW50IGluCit0aGUgY29udGVudCBhZ2FpbnN0IGFuIGVsZW1lbnQgdHlwZSBpbiB0aGUgY29udGVudCBtb2RlbC4gIDx0ZXJtcmVmCitkZWY9J2R0LWNvbXBhdCc+Rm9yIGNvbXBhdGliaWxpdHk8L3Rlcm1yZWY+LCBpdCBpcyBhbiBlcnJvcgoraWYgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQgY2FuCittYXRjaCBtb3JlIHRoYW4gb25lIG9jY3VycmVuY2Ugb2YgYW4gZWxlbWVudCB0eXBlIGluIHRoZSBjb250ZW50IG1vZGVsLgorRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSA8c3BlY3JlZiByZWY9ImRldGVybWluaXNtIi8+LgorPCEtLSBhcHBlbmRpeCA8c3BlY3JlZiByZWY9ImRldGVybWluaXNtIi8+LiAtLT4KKzwhLS0gYXBwZW5kaXggb24gZGV0ZXJtaW5pc3RpYyBjb250ZW50IG1vZGVscy4gLS0+Cis8L3A+Cis8dmNub3RlIGlkPSd2Yy1QRWluR3JvdXAnPgorPGhlYWQ+UHJvcGVyIEdyb3VwL1BFIE5lc3Rpbmc8L2hlYWQ+Cis8cD5QYXJhbWV0ZXItZW50aXR5IAorPHRlcm1yZWYgZGVmPSdkdC1yZXBsdGV4dCc+cmVwbGFjZW1lbnQgdGV4dDwvdGVybXJlZj4gbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQKK3dpdGggcGFyZW50aGV0aXplZCBncm91cHMuCitUaGF0IGlzIHRvIHNheSwgaWYgZWl0aGVyIG9mIHRoZSBvcGVuaW5nIG9yIGNsb3NpbmcgcGFyZW50aGVzZXMKK2luIGEgPG50IGRlZj0nTlQtY2hvaWNlJz5jaG9pY2U8L250PiwgPG50IGRlZj0nTlQtc2VxJz5zZXE8L250Piwgb3IKKzxudCBkZWY9J05ULU1peGVkJz5NaXhlZDwvbnQ+IGNvbnN0cnVjdCAKK2lzIGNvbnRhaW5lZCBpbiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBmb3IgYSAKKzx0ZXJtcmVmIGRlZj0nZHQtUEVSZWYnPnBhcmFtZXRlciBlbnRpdHk8L3Rlcm1yZWY+LAorYm90aCBtdXN0IGJlIGNvbnRhaW5lZCBpbiB0aGUgc2FtZSByZXBsYWNlbWVudCB0ZXh0LjwvcD4KKzxwPjx0ZXJtcmVmIGRlZj0nZHQtaW50ZXJvcCc+Rm9yIGludGVyb3BlcmFiaWxpdHk8L3Rlcm1yZWY+LCAKK2lmIGEgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UgYXBwZWFycyBpbiBhIAorPG50IGRlZj0nTlQtY2hvaWNlJz5jaG9pY2U8L250PiwgPG50IGRlZj0nTlQtc2VxJz5zZXE8L250Piwgb3IKKzxudCBkZWY9J05ULU1peGVkJz5NaXhlZDwvbnQ+IGNvbnN0cnVjdCwgaXRzIHJlcGxhY2VtZW50IHRleHQKK3Nob3VsZCBub3QgYmUgZW1wdHksIGFuZCAKK25laXRoZXIgdGhlIGZpcnN0IG5vciBsYXN0IG5vbi1ibGFuaworY2hhcmFjdGVyIG9mIHRoZSByZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBiZSBhIGNvbm5lY3RvciAKKyg8Y29kZT58PC9jb2RlPiBvciA8Y29kZT4sPC9jb2RlPikuCis8L3A+Cis8L3Zjbm90ZT4KKzxwPkV4YW1wbGVzIG9mIGVsZW1lbnQtY29udGVudCBtb2RlbHM6Cis8ZWc+Jmx0OyFFTEVNRU5UIHNwZWMgKGZyb250LCBib2R5LCBiYWNrPyk+CismbHQ7IUVMRU1FTlQgZGl2MSAoaGVhZCwgKHAgfCBsaXN0IHwgbm90ZSkqLCBkaXYyKik+CismbHQ7IUVMRU1FTlQgZGljdGlvbmFyeS1ib2R5ICglZGl2Lm1peDsgfCAlZGljdC5taXg7KSo+PC9lZz48L3A+Cis8L2RpdjM+CisKKzxkaXYzIGlkPSdzZWMtbWl4ZWQtY29udGVudCc+Cis8aGVhZD5NaXhlZCBDb250ZW50PC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9J2R0LW1peGVkJyB0ZXJtPSdNaXhlZCBDb250ZW50Jz5BbiBlbGVtZW50IAorPHRlcm1yZWYgZGVmPSdkdC1zdGFnJz50eXBlPC90ZXJtcmVmPiBoYXMgCis8dGVybT5taXhlZCBjb250ZW50PC90ZXJtPiB3aGVuIGVsZW1lbnRzIG9mIHRoYXQgdHlwZSBtYXkgY29udGFpbgorY2hhcmFjdGVyIGRhdGEsIG9wdGlvbmFsbHkgaW50ZXJzcGVyc2VkIHdpdGgKKzx0ZXJtcmVmIGRlZj0iZHQtcGFyZW50Y2hpbGQiPmNoaWxkPC90ZXJtcmVmPiBlbGVtZW50cy48L3Rlcm1kZWY+CitJbiB0aGlzIGNhc2UsIHRoZSB0eXBlcyBvZiB0aGUgY2hpbGQgZWxlbWVudHMKK21heSBiZSBjb25zdHJhaW5lZCwgYnV0IG5vdCB0aGVpciBvcmRlciBvciB0aGVpciBudW1iZXIgb2Ygb2NjdXJyZW5jZXM6Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5NaXhlZC1jb250ZW50IERlY2xhcmF0aW9uPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI1LjUiIHBjdzQ9IjE2IiBwY3c1PSIxMSI+Cis8cHJvZCBpZD0nTlQtTWl4ZWQnPjxsaHM+TWl4ZWQ8L2xocz4KKzxyaHM+JygnIDxudCBkZWY9J05ULVMnPlM8L250Pj8gCisnI1BDREFUQScKKyg8bnQgZGVmPSdOVC1TJz5TPC9udD4/IAorJ3wnIAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PikqIAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAKKycpKicgPC9yaHM+Cis8cmhzPnwgJygnIDxudCBkZWY9J05ULVMnPlM8L250Pj8gJyNQQ0RBVEEnIDxudCBkZWY9J05ULVMnPlM8L250Pj8gJyknCis8L3Jocz48dmMgZGVmPSd2Yy1QRWluR3JvdXAnLz4KKzx2YyBkZWY9J3ZjLU1peGVkQ2hpbGRyZW5VbmlxdWUnLz4KKzwvcHJvZD4KKworPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgord2hlcmUgdGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PnMgZ2l2ZSB0aGUgdHlwZXMgb2YgZWxlbWVudHMKK3RoYXQgbWF5IGFwcGVhciBhcyBjaGlsZHJlbi4KKzwvcD4KKzx2Y25vdGUgaWQ9J3ZjLU1peGVkQ2hpbGRyZW5VbmlxdWUnPgorPGhlYWQ+Tm8gRHVwbGljYXRlIFR5cGVzPC9oZWFkPgorPHA+VGhlIHNhbWUgbmFtZSBtdXN0IG5vdCBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gYSBzaW5nbGUgbWl4ZWQtY29udGVudAorZGVjbGFyYXRpb24uCis8L3A+PC92Y25vdGU+Cis8cD5FeGFtcGxlcyBvZiBtaXhlZCBjb250ZW50IGRlY2xhcmF0aW9uczoKKzxlZz4mbHQ7IUVMRU1FTlQgcCAoI1BDREFUQXxhfHVsfGJ8aXxlbSkqPgorJmx0OyFFTEVNRU5UIHAgKCNQQ0RBVEEgfCAlZm9udDsgfCAlcGhyYXNlOyB8ICVzcGVjaWFsOyB8ICVmb3JtOykqID4KKyZsdDshRUxFTUVOVCBiICgjUENEQVRBKT48L2VnPjwvcD4KKzwvZGl2Mz4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSdhdHRkZWNscyc+Cis8aGVhZD5BdHRyaWJ1dGUtTGlzdCBEZWNsYXJhdGlvbnM8L2hlYWQ+CisgCis8cD48dGVybXJlZiBkZWY9ImR0LWF0dHIiPkF0dHJpYnV0ZXM8L3Rlcm1yZWY+IGFyZSB1c2VkIHRvIGFzc29jaWF0ZQorbmFtZS12YWx1ZSBwYWlycyB3aXRoIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWVudCI+ZWxlbWVudHM8L3Rlcm1yZWY+LgorQXR0cmlidXRlIHNwZWNpZmljYXRpb25zIG1heSBhcHBlYXIgb25seSB3aXRoaW4gPHRlcm1yZWYKK2RlZj0iZHQtc3RhZyI+c3RhcnQtdGFnczwvdGVybXJlZj4KK2FuZCA8dGVybXJlZiBkZWY9ImR0LWVldGFnIj5lbXB0eS1lbGVtZW50IHRhZ3M8L3Rlcm1yZWY+OyAKK3RodXMsIHRoZSBwcm9kdWN0aW9ucyB1c2VkIHRvCityZWNvZ25pemUgdGhlbSBhcHBlYXIgaW4gPHNwZWNyZWYgcmVmPSdzZWMtc3RhcnR0YWdzJy8+LiAgCitBdHRyaWJ1dGUtbGlzdAorZGVjbGFyYXRpb25zIG1heSBiZSB1c2VkOgorPHVsaXN0PgorPGl0ZW0+PHA+VG8gZGVmaW5lIHRoZSBzZXQgb2YgYXR0cmlidXRlcyBwZXJ0YWluaW5nIHRvIGEgZ2l2ZW4KK2VsZW1lbnQgdHlwZS48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VG8gZXN0YWJsaXNoIHR5cGUgY29uc3RyYWludHMgZm9yIHRoZXNlCithdHRyaWJ1dGVzLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UbyBwcm92aWRlIDx0ZXJtcmVmIGRlZj0iZHQtZGVmYXVsdCI+ZGVmYXVsdCB2YWx1ZXM8L3Rlcm1yZWY+Citmb3IgYXR0cmlidXRlcy48L3A+PC9pdGVtPgorPC91bGlzdD4KKzwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1hdHRkZWNsIiB0ZXJtPSJBdHRyaWJ1dGUtTGlzdCBEZWNsYXJhdGlvbiI+Cis8dGVybT5BdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnM8L3Rlcm0+IHNwZWNpZnkgdGhlIG5hbWUsIGRhdGEgdHlwZSwgYW5kIGRlZmF1bHQKK3ZhbHVlIChpZiBhbnkpIG9mIGVhY2ggYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGVsZW1lbnQgdHlwZToKKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkF0dHJpYnV0ZS1saXN0IERlY2xhcmF0aW9uPC9oZWFkPgorPHByb2QgaWQ9J05ULUF0dGxpc3REZWNsJz48bGhzPkF0dGxpc3REZWNsPC9saHM+Cis8cmhzPicmbHQ7IUFUVExJU1QnIDxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKKzxudCBkZWY9J05ULUF0dERlZic+QXR0RGVmPC9udD4qCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICcmZ3Q7JzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULUF0dERlZic+PGxocz5BdHREZWY8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtUyc+UzwvbnQ+IDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1BdHRUeXBlJz5BdHRUeXBlPC9udD4gCis8bnQgZGVmPSdOVC1TJz5TPC9udD4gPG50IGRlZj0nTlQtRGVmYXVsdERlY2wnPkRlZmF1bHREZWNsPC9udD48L3Jocz4KKzwvcHJvZD4KKzwvc2NyYXA+CitUaGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IGluIHRoZQorPG50IGRlZj0nTlQtQXR0bGlzdERlY2wnPkF0dGxpc3REZWNsPC9udD4gcnVsZSBpcyB0aGUgdHlwZSBvZiBhbiBlbGVtZW50LiAgQXQKK3VzZXIgb3B0aW9uLCBhbiBYTUwgcHJvY2Vzc29yIG1heSBpc3N1ZSBhIHdhcm5pbmcgaWYgYXR0cmlidXRlcyBhcmUKK2RlY2xhcmVkIGZvciBhbiBlbGVtZW50IHR5cGUgbm90IGl0c2VsZiBkZWNsYXJlZCwgYnV0IHRoaXMgaXMgbm90IGFuCitlcnJvci4gIFRoZSA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gaW4gdGhlIAorPG50IGRlZj0nTlQtQXR0RGVmJz5BdHREZWY8L250PiBydWxlIGlzCit0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLjwvdGVybWRlZj48L3A+Cis8cD4KK1doZW4gbW9yZSB0aGFuIG9uZSA8bnQgZGVmPSdOVC1BdHRsaXN0RGVjbCc+QXR0bGlzdERlY2w8L250PiBpcyBwcm92aWRlZCBmb3IgYQorZ2l2ZW4gZWxlbWVudCB0eXBlLCB0aGUgY29udGVudHMgb2YgYWxsIHRob3NlIHByb3ZpZGVkIGFyZSBtZXJnZWQuICBXaGVuCittb3JlIHRoYW4gb25lIGRlZmluaXRpb24gaXMgcHJvdmlkZWQgZm9yIHRoZSBzYW1lIGF0dHJpYnV0ZSBvZiBhCitnaXZlbiBlbGVtZW50IHR5cGUsIHRoZSBmaXJzdCBkZWNsYXJhdGlvbiBpcyBiaW5kaW5nIGFuZCBsYXRlcgorZGVjbGFyYXRpb25zIGFyZSBpZ25vcmVkLiAgCis8dGVybXJlZiBkZWY9J2R0LWludGVyb3AnPkZvciBpbnRlcm9wZXJhYmlsaXR5LDwvdGVybXJlZj4gd3JpdGVycyBvZiBEVERzCittYXkgY2hvb3NlIHRvIHByb3ZpZGUgYXQgbW9zdCBvbmUgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24KK2ZvciBhIGdpdmVuIGVsZW1lbnQgdHlwZSwgYXQgbW9zdCBvbmUgYXR0cmlidXRlIGRlZmluaXRpb24KK2ZvciBhIGdpdmVuIGF0dHJpYnV0ZSBuYW1lLCBhbmQgYXQgbGVhc3Qgb25lIGF0dHJpYnV0ZSBkZWZpbml0aW9uCitpbiBlYWNoIGF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uLgorRm9yIGludGVyb3BlcmFiaWxpdHksIGFuIFhNTCBwcm9jZXNzb3IgbWF5IGF0IHVzZXIgb3B0aW9uCitpc3N1ZSBhIHdhcm5pbmcgd2hlbiBtb3JlIHRoYW4gb25lIGF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uIGlzCitwcm92aWRlZCBmb3IgYSBnaXZlbiBlbGVtZW50IHR5cGUsIG9yIG1vcmUgdGhhbiBvbmUgYXR0cmlidXRlIGRlZmluaXRpb24KK2lzIHByb3ZpZGVkIAorZm9yIGEgZ2l2ZW4gYXR0cmlidXRlLCBidXQgdGhpcyBpcyBub3QgYW4gZXJyb3IuCis8L3A+CisKKzxkaXYzIGlkPSdzZWMtYXR0cmlidXRlLXR5cGVzJz4KKzxoZWFkPkF0dHJpYnV0ZSBUeXBlczwvaGVhZD4KKyAKKzxwPlhNTCBhdHRyaWJ1dGUgdHlwZXMgYXJlIG9mIHRocmVlIGtpbmRzOiAgYSBzdHJpbmcgdHlwZSwgYQorc2V0IG9mIHRva2VuaXplZCB0eXBlcywgYW5kIGVudW1lcmF0ZWQgdHlwZXMuICBUaGUgc3RyaW5nIHR5cGUgbWF5IHRha2UKK2FueSBsaXRlcmFsIHN0cmluZyBhcyBhIHZhbHVlOyB0aGUgdG9rZW5pemVkIHR5cGVzIGhhdmUgdmFyeWluZyBsZXhpY2FsCithbmQgc2VtYW50aWMgY29uc3RyYWludHMsIGFzIG5vdGVkOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+QXR0cmlidXRlIFR5cGVzPC9oZWFkPgorPHByb2Rncm91cCBwY3c0PSIxNCIgcGN3NT0iMTEuNSI+Cis8cHJvZCBpZD0nTlQtQXR0VHlwZSc+PGxocz5BdHRUeXBlPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULVN0cmluZ1R5cGUnPlN0cmluZ1R5cGU8L250PiAKK3wgPG50IGRlZj0nTlQtVG9rZW5pemVkVHlwZSc+VG9rZW5pemVkVHlwZTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1FbnVtZXJhdGVkVHlwZSc+RW51bWVyYXRlZFR5cGU8L250PgorPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtU3RyaW5nVHlwZSc+PGxocz5TdHJpbmdUeXBlPC9saHM+Cis8cmhzPidDREFUQSc8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1Ub2tlbml6ZWRUeXBlJz48bGhzPlRva2VuaXplZFR5cGU8L2xocz4KKzxyaHM+J0lEJzwvcmhzPgorPHZjIGRlZj0naWQnLz4KKzx2YyBkZWY9J29uZS1pZC1wZXItZWwnLz4KKzx2YyBkZWY9J2lkLWRlZmF1bHQnLz4KKzxyaHM+fCAnSURSRUYnPC9yaHM+Cis8dmMgZGVmPSdpZHJlZicvPgorPHJocz58ICdJRFJFRlMnPC9yaHM+Cis8dmMgZGVmPSdpZHJlZicvPgorPHJocz58ICdFTlRJVFknPC9yaHM+Cis8dmMgZGVmPSdlbnRuYW1lJy8+Cis8cmhzPnwgJ0VOVElUSUVTJzwvcmhzPgorPHZjIGRlZj0nZW50bmFtZScvPgorPHJocz58ICdOTVRPS0VOJzwvcmhzPgorPHZjIGRlZj0nbm10b2snLz4KKzxyaHM+fCAnTk1UT0tFTlMnPC9yaHM+Cis8dmMgZGVmPSdubXRvaycvPjwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvcD4KKzx2Y25vdGUgaWQ9J2lkJyA+Cis8aGVhZD5JRDwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHR5cGUgPGt3PklEPC9rdz4gbXVzdCBtYXRjaCB0aGUgCis8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gcHJvZHVjdGlvbi4gIAorQSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbgorYW4gWE1MIGRvY3VtZW50IGFzIGEgdmFsdWUgb2YgdGhpcyB0eXBlOyBpLmUuLCBJRCB2YWx1ZXMgbXVzdCB1bmlxdWVseQoraWRlbnRpZnkgdGhlIGVsZW1lbnRzIHdoaWNoIGJlYXIgdGhlbS4gICAKKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0nb25lLWlkLXBlci1lbCc+Cis8aGVhZD5PbmUgSUQgcGVyIEVsZW1lbnQgVHlwZTwvaGVhZD4KKzxwPk5vIGVsZW1lbnQgdHlwZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIElEIGF0dHJpYnV0ZSBzcGVjaWZpZWQuPC9wPgorPC92Y25vdGU+Cis8dmNub3RlIGlkPSdpZC1kZWZhdWx0Jz4KKzxoZWFkPklEIEF0dHJpYnV0ZSBEZWZhdWx0PC9oZWFkPgorPHA+QW4gSUQgYXR0cmlidXRlIG11c3QgaGF2ZSBhIGRlY2xhcmVkIGRlZmF1bHQgb2YgPGt3PiNJTVBMSUVEPC9rdz4gb3IKKzxrdz4jUkVRVUlSRUQ8L2t3Pi48L3A+Cis8L3Zjbm90ZT4KKzx2Y25vdGUgaWQ9J2lkcmVmJz4KKzxoZWFkPklEUkVGPC9oZWFkPgorPHA+CitWYWx1ZXMgb2YgdHlwZSA8a3c+SURSRUY8L2t3PiBtdXN0IG1hdGNoCit0aGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IHByb2R1Y3Rpb24sIGFuZAordmFsdWVzIG9mIHR5cGUgPGt3PklEUkVGUzwva3c+IG11c3QgbWF0Y2gKKzxudCBkZWY9Ik5ULU5hbWVzIj5OYW1lczwvbnQ+OyAKK2VhY2ggPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IG11c3QgbWF0Y2ggdGhlIHZhbHVlIG9mIGFuIElEIGF0dHJpYnV0ZSBvbiAKK3NvbWUgZWxlbWVudCBpbiB0aGUgWE1MIGRvY3VtZW50OyBpLmUuIDxrdz5JRFJFRjwva3c+IHZhbHVlcyBtdXN0IAorbWF0Y2ggdGhlIHZhbHVlIG9mIHNvbWUgSUQgYXR0cmlidXRlLiAKKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0nZW50bmFtZSc+Cis8aGVhZD5FbnRpdHkgTmFtZTwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHR5cGUgPGt3PkVOVElUWTwva3c+IAorbXVzdCBtYXRjaCB0aGUgPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IHByb2R1Y3Rpb24sCit2YWx1ZXMgb2YgdHlwZSA8a3c+RU5USVRJRVM8L2t3PiBtdXN0IG1hdGNoCis8bnQgZGVmPSJOVC1OYW1lcyI+TmFtZXM8L250PjsKK2VhY2ggPG50IGRlZj0iTlQtTmFtZSI+TmFtZTwvbnQ+IG11c3QgCittYXRjaCB0aGUKK25hbWUgb2YgYW4gPHRlcm1yZWYgZGVmPSJkdC11bnBhcnNlZCI+dW5wYXJzZWQgZW50aXR5PC90ZXJtcmVmPiBkZWNsYXJlZCBpbiB0aGUKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jdHlwZSI+RFREPC90ZXJtcmVmPi4KKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0nbm10b2snPgorPGhlYWQ+TmFtZSBUb2tlbjwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHR5cGUgPGt3Pk5NVE9LRU48L2t3PiBtdXN0IG1hdGNoIHRoZQorPG50IGRlZj0iTlQtTm10b2tlbiI+Tm10b2tlbjwvbnQ+IHByb2R1Y3Rpb247Cit2YWx1ZXMgb2YgdHlwZSA8a3c+Tk1UT0tFTlM8L2t3PiBtdXN0IAorbWF0Y2ggPHRlcm1yZWYgZGVmPSJOVC1ObXRva2VucyI+Tm10b2tlbnM8L3Rlcm1yZWY+LgorPC9wPgorPC92Y25vdGU+Cis8IS0tIHdoeT8KKzxwPlRoZSBYTUwgcHJvY2Vzc29yIG11c3Qgbm9ybWFsaXplIGF0dHJpYnV0ZSB2YWx1ZXMgYmVmb3JlCitwYXNzaW5nIHRoZW0gdG8gdGhlIGFwcGxpY2F0aW9uLCBhcyBkZXNjcmliZWQgaW4gCis8c3BlY3JlZiByZWY9IkFWTm9ybWFsaXplIi8+LjwvcD4tLT4KKzxwPjx0ZXJtZGVmIGlkPSdkdC1lbnVtZXJhdGVkJyB0ZXJtPSdFbnVtZXJhdGVkIEF0dHJpYnV0ZQorVmFsdWVzJz48dGVybT5FbnVtZXJhdGVkIGF0dHJpYnV0ZXM8L3Rlcm0+IGNhbiB0YWtlIG9uZSAKK29mIGEgbGlzdCBvZiB2YWx1ZXMgcHJvdmlkZWQgaW4gdGhlIGRlY2xhcmF0aW9uPC90ZXJtZGVmPi4gVGhlcmUgYXJlIHR3bwora2luZHMgb2YgZW51bWVyYXRlZCB0eXBlczoKKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkVudW1lcmF0ZWQgQXR0cmlidXRlIFR5cGVzPC9oZWFkPgorPHByb2QgaWQ9J05ULUVudW1lcmF0ZWRUeXBlJz48bGhzPkVudW1lcmF0ZWRUeXBlPC9saHM+IAorPHJocz48bnQgZGVmPSdOVC1Ob3RhdGlvblR5cGUnPk5vdGF0aW9uVHlwZTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1FbnVtZXJhdGlvbic+RW51bWVyYXRpb248L250PgorPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULU5vdGF0aW9uVHlwZSc+PGxocz5Ob3RhdGlvblR5cGU8L2xocz4gCis8cmhzPidOT1RBVElPTicgCis8bnQgZGVmPSdOVC1TJz5TPC9udD4gCisnKCcgCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKKyg8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICd8JyA8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PikqCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICcpJworPC9yaHM+Cis8dmMgZGVmPSdub3RhdG4nIC8+PC9wcm9kPgorPHByb2QgaWQ9J05ULUVudW1lcmF0aW9uJz48bGhzPkVudW1lcmF0aW9uPC9saHM+IAorPHJocz4nKCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PworPG50IGRlZj0nTlQtTm10b2tlbic+Tm10b2tlbjwvbnQ+IAorKDxudCBkZWY9J05ULVMnPlM8L250Pj8gJ3wnIAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAgCis8bnQgZGVmPSdOVC1ObXRva2VuJz5ObXRva2VuPC9udD4pKiAKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gCisnKSc8L3Jocz4gCis8dmMgZGVmPSdlbnVtJy8+PC9wcm9kPgorPC9zY3JhcD4KK0EgPGt3Pk5PVEFUSU9OPC9rdz4gYXR0cmlidXRlIGlkZW50aWZpZXMgYSAKKzx0ZXJtcmVmIGRlZj0nZHQtbm90YXRpb24nPm5vdGF0aW9uPC90ZXJtcmVmPiwgZGVjbGFyZWQgaW4gdGhlIAorRFREIHdpdGggYXNzb2NpYXRlZCBzeXN0ZW0gYW5kL29yIHB1YmxpYyBpZGVudGlmaWVycywgdG8KK2JlIHVzZWQgaW4gaW50ZXJwcmV0aW5nIHRoZSBlbGVtZW50IHRvIHdoaWNoIHRoZSBhdHRyaWJ1dGUKK2lzIGF0dGFjaGVkLgorPC9wPgorCis8dmNub3RlIGlkPSdub3RhdG4nPgorPGhlYWQ+Tm90YXRpb24gQXR0cmlidXRlczwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHRoaXMgdHlwZSBtdXN0IG1hdGNoCitvbmUgb2YgdGhlIDx0aXRsZXJlZiBocmVmPSdOb3RhdGlvbnMnPm5vdGF0aW9uPC90aXRsZXJlZj4gbmFtZXMgaW5jbHVkZWQgaW4KK3RoZSBkZWNsYXJhdGlvbjsgYWxsIG5vdGF0aW9uIG5hbWVzIGluIHRoZSBkZWNsYXJhdGlvbiBtdXN0CitiZSBkZWNsYXJlZC4KKzwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0nZW51bSc+Cis8aGVhZD5FbnVtZXJhdGlvbjwvaGVhZD4KKzxwPgorVmFsdWVzIG9mIHRoaXMgdHlwZQorbXVzdCBtYXRjaCBvbmUgb2YgdGhlIDxudCBkZWY9J05ULU5tdG9rZW4nPk5tdG9rZW48L250PiB0b2tlbnMgaW4gdGhlCitkZWNsYXJhdGlvbi4gCis8L3A+Cis8L3Zjbm90ZT4KKzxwPjx0ZXJtcmVmIGRlZj0nZHQtaW50ZXJvcCc+Rm9yIGludGVyb3BlcmFiaWxpdHksPC90ZXJtcmVmPiB0aGUgc2FtZQorPG50IGRlZj0nTlQtTm10b2tlbic+Tm10b2tlbjwvbnQ+IHNob3VsZCBub3Qgb2NjdXIgbW9yZSB0aGFuIG9uY2UgaW4gdGhlCitlbnVtZXJhdGVkIGF0dHJpYnV0ZSB0eXBlcyBvZiBhIHNpbmdsZSBlbGVtZW50IHR5cGUuCis8L3A+Cis8L2RpdjM+CisKKzxkaXYzIGlkPSdzZWMtYXR0ci1kZWZhdWx0cyc+Cis8aGVhZD5BdHRyaWJ1dGUgRGVmYXVsdHM8L2hlYWQ+CisgCis8cD5BbiA8dGVybXJlZiBkZWY9ImR0LWF0dGRlY2wiPmF0dHJpYnV0ZSBkZWNsYXJhdGlvbjwvdGVybXJlZj4gcHJvdmlkZXMKK2luZm9ybWF0aW9uIG9uIHdoZXRoZXIKK3RoZSBhdHRyaWJ1dGUncyBwcmVzZW5jZSBpcyByZXF1aXJlZCwgYW5kIGlmIG5vdCwgaG93IGFuIFhNTCBwcm9jZXNzb3Igc2hvdWxkCityZWFjdCBpZiBhIGRlY2xhcmVkIGF0dHJpYnV0ZSBpcyBhYnNlbnQgaW4gYSBkb2N1bWVudC4KKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkF0dHJpYnV0ZSBEZWZhdWx0czwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3ND0iMTQiIHBjdzU9IjExLjUiPgorPHByb2QgaWQ9J05ULURlZmF1bHREZWNsJz48bGhzPkRlZmF1bHREZWNsPC9saHM+Cis8cmhzPicjUkVRVUlSRUQnIAorfCZuYnNwOycjSU1QTElFRCcgPC9yaHM+Cis8cmhzPnwgKCgnI0ZJWEVEJyBTKT8gPG50IGRlZj0nTlQtQXR0VmFsdWUnPkF0dFZhbHVlPC9udD4pPC9yaHM+Cis8dmMgZGVmPSdSZXF1aXJlZEF0dHInLz4KKzx2YyBkZWY9J2RlZmF0dHJ2YWxpZCcvPgorPHdmYyBkZWY9IkNsZWFuQXR0clZhbHMiLz4KKzx2YyBkZWY9J0ZpeGVkQXR0cicvPgorPC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorCis8L3A+Cis8cD5JbiBhbiBhdHRyaWJ1dGUgZGVjbGFyYXRpb24sIDxrdz4jUkVRVUlSRUQ8L2t3PiBtZWFucyB0aGF0IHRoZQorYXR0cmlidXRlIG11c3QgYWx3YXlzIGJlIHByb3ZpZGVkLCA8a3c+I0lNUExJRUQ8L2t3PiB0aGF0IG5vIGRlZmF1bHQgCit2YWx1ZSBpcyBwcm92aWRlZC4KKzwhLS0gbm90IGFueSBtb3JlISEKKzxrdz4jSU1QTElFRDwva3c+IG1lYW5zIHRoYXQgaWYgdGhlIGF0dHJpYnV0ZSBpcyBvbWl0dGVkCitmcm9tIGFuIGVsZW1lbnQgb2YgdGhpcyB0eXBlLAordGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBpbmZvcm0gdGhlIGFwcGxpY2F0aW9uCit0aGF0IG5vIHZhbHVlIHdhcyBzcGVjaWZpZWQ7IG5vIGNvbnN0cmFpbnQgaXMgcGxhY2VkIG9uIHRoZSBiZWhhdmlvcgorb2YgdGhlIGFwcGxpY2F0aW9uLiAtLT4KKzx0ZXJtZGVmIGlkPSJkdC1kZWZhdWx0IiB0ZXJtPSJBdHRyaWJ1dGUgRGVmYXVsdCI+SWYgdGhlIAorZGVjbGFyYXRpb24KK2lzIG5laXRoZXIgPGt3PiNSRVFVSVJFRDwva3c+IG5vciA8a3c+I0lNUExJRUQ8L2t3PiwgdGhlbiB0aGUKKzxudCBkZWY9J05ULUF0dFZhbHVlJz5BdHRWYWx1ZTwvbnQ+IHZhbHVlIGNvbnRhaW5zIHRoZSBkZWNsYXJlZAorPHRlcm0+ZGVmYXVsdDwvdGVybT4gdmFsdWU7IHRoZSA8a3c+I0ZJWEVEPC9rdz4ga2V5d29yZCBzdGF0ZXMgdGhhdAordGhlIGF0dHJpYnV0ZSBtdXN0IGFsd2F5cyBoYXZlIHRoZSBkZWZhdWx0IHZhbHVlLgorSWYgYSBkZWZhdWx0IHZhbHVlCitpcyBkZWNsYXJlZCwgd2hlbiBhbiBYTUwgcHJvY2Vzc29yIGVuY291bnRlcnMgYW4gb21pdHRlZCBhdHRyaWJ1dGUsIGl0CitpcyB0byBiZWhhdmUgYXMgdGhvdWdoIHRoZSBhdHRyaWJ1dGUgd2VyZSBwcmVzZW50IHdpdGggCit0aGUgZGVjbGFyZWQgZGVmYXVsdCB2YWx1ZS48L3Rlcm1kZWY+PC9wPgorPHZjbm90ZSBpZD0nUmVxdWlyZWRBdHRyJz4KKzxoZWFkPlJlcXVpcmVkIEF0dHJpYnV0ZTwvaGVhZD4KKzxwPklmIHRoZSBkZWZhdWx0IGRlY2xhcmF0aW9uIGlzIHRoZSBrZXl3b3JkIDxrdz4jUkVRVUlSRUQ8L2t3PiwgdGhlbgordGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHNwZWNpZmllZCBmb3IKK2FsbCBlbGVtZW50cyBvZiB0aGUgdHlwZSBpbiB0aGUgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uCis8L3A+PC92Y25vdGU+Cis8dmNub3RlIGlkPSdkZWZhdHRydmFsaWQnPgorPGhlYWQ+QXR0cmlidXRlIERlZmF1bHQgTGVnYWw8L2hlYWQ+Cis8cD4KK1RoZSBkZWNsYXJlZAorZGVmYXVsdCB2YWx1ZSBtdXN0IG1lZXQgdGhlIGxleGljYWwgY29uc3RyYWludHMgb2YgdGhlIGRlY2xhcmVkIGF0dHJpYnV0ZSB0eXBlLgorPC9wPgorPC92Y25vdGU+Cis8dmNub3RlIGlkPSdGaXhlZEF0dHInPgorPGhlYWQ+Rml4ZWQgQXR0cmlidXRlIERlZmF1bHQ8L2hlYWQ+Cis8cD5JZiBhbiBhdHRyaWJ1dGUgaGFzIGEgZGVmYXVsdCB2YWx1ZSBkZWNsYXJlZCB3aXRoIHRoZSAKKzxrdz4jRklYRUQ8L2t3PiBrZXl3b3JkLCBpbnN0YW5jZXMgb2YgdGhhdCBhdHRyaWJ1dGUgbXVzdAorbWF0Y2ggdGhlIGRlZmF1bHQgdmFsdWUuCis8L3A+PC92Y25vdGU+CisKKzxwPkV4YW1wbGVzIG9mIGF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uczoKKzxlZz4mbHQ7IUFUVExJU1QgdGVybWRlZgorICAgICAgICAgIGlkICAgICAgSUQgICAgICAjUkVRVUlSRUQKKyAgICAgICAgICBuYW1lICAgIENEQVRBICAgI0lNUExJRUQ+CismbHQ7IUFUVExJU1QgbGlzdAorICAgICAgICAgIHR5cGUgICAgKGJ1bGxldHN8b3JkZXJlZHxnbG9zc2FyeSkgICJvcmRlcmVkIj4KKyZsdDshQVRUTElTVCBmb3JtCisgICAgICAgICAgbWV0aG9kICBDREFUQSAgICNGSVhFRCAiUE9TVCI+PC9lZz48L3A+Cis8L2RpdjM+Cis8ZGl2MyBpZD0nQVZOb3JtYWxpemUnPgorPGhlYWQ+QXR0cmlidXRlLVZhbHVlIE5vcm1hbGl6YXRpb248L2hlYWQ+Cis8cD5CZWZvcmUgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBpcyBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uCitvciBjaGVja2VkIGZvciB2YWxpZGl0eSwgdGhlCitYTUwgcHJvY2Vzc29yIG11c3Qgbm9ybWFsaXplIGl0IGFzIGZvbGxvd3M6Cis8dWxpc3Q+Cis8aXRlbT48cD5hIGNoYXJhY3RlciByZWZlcmVuY2UgaXMgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyB0aGUgcmVmZXJlbmNlZCAgICAKK2NoYXJhY3RlciB0byB0aGUgYXR0cmlidXRlIHZhbHVlPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmFuIGVudGl0eSByZWZlcmVuY2UgaXMgcHJvY2Vzc2VkIGJ5IHJlY3Vyc2l2ZWx5IHByb2Nlc3NpbmcgdGhlCityZXBsYWNlbWVudCB0ZXh0IG9mIHRoZSBlbnRpdHk8L3A+PC9pdGVtPgorPGl0ZW0+PHA+YSB3aGl0ZXNwYWNlIGNoYXJhY3RlciAoI3gyMCwgI3hELCAjeEEsICN4OSkgaXMgcHJvY2Vzc2VkIGJ5CithcHBlbmRpbmcgI3gyMCB0byB0aGUgbm9ybWFsaXplZCB2YWx1ZSwgZXhjZXB0IHRoYXQgb25seSBhIHNpbmdsZSAjeDIwCitpcyBhcHBlbmRlZCBmb3IgYSAiI3hEI3hBIiBzZXF1ZW5jZSB0aGF0IGlzIHBhcnQgb2YgYW4gZXh0ZXJuYWwKK3BhcnNlZCBlbnRpdHkgb3IgdGhlIGxpdGVyYWwgZW50aXR5IHZhbHVlIG9mIGFuIGludGVybmFsIHBhcnNlZAorZW50aXR5PC9wPjwvaXRlbT4KKzxpdGVtPjxwPm90aGVyIGNoYXJhY3RlcnMgYXJlIHByb2Nlc3NlZCBieSBhcHBlbmRpbmcgdGhlbSB0byB0aGUgbm9ybWFsaXplZAordmFsdWU8L3A+Cis8L2l0ZW0+PC91bGlzdD4KKzwvcD4KKzxwPklmIHRoZSBkZWNsYXJlZCB2YWx1ZSBpcyBub3QgQ0RBVEEsIHRoZW4gdGhlIFhNTCBwcm9jZXNzb3IgbXVzdAorZnVydGhlciBwcm9jZXNzIHRoZSBub3JtYWxpemVkIGF0dHJpYnV0ZSB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueQorbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcKK3NlcXVlbmNlcyBvZiBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycyBieSBhIHNpbmdsZSBzcGFjZSAoI3gyMCkKK2NoYXJhY3Rlci48L3A+Cis8cD4KK0FsbCBhdHRyaWJ1dGVzIGZvciB3aGljaCBubyBkZWNsYXJhdGlvbiBoYXMgYmVlbiByZWFkIHNob3VsZCBiZSB0cmVhdGVkCitieSBhIG5vbi12YWxpZGF0aW5nIHBhcnNlciBhcyBpZiBkZWNsYXJlZAorPGt3PkNEQVRBPC9rdz4uCis8L3A+Cis8L2RpdjM+Cis8L2RpdjI+Cis8ZGl2MiBpZD0nc2VjLWNvbmRpdGlvbi1zZWN0Jz4KKzxoZWFkPkNvbmRpdGlvbmFsIFNlY3Rpb25zPC9oZWFkPgorPHA+PHRlcm1kZWYgaWQ9J2R0LWNvbmQtc2VjdGlvbicgdGVybT0nY29uZGl0aW9uYWwgc2VjdGlvbic+Cis8dGVybT5Db25kaXRpb25hbCBzZWN0aW9uczwvdGVybT4gYXJlIHBvcnRpb25zIG9mIHRoZQorPHRlcm1yZWYgZGVmPSdkdC1kb2N0eXBlJz5kb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uIGV4dGVybmFsIHN1YnNldDwvdGVybXJlZj4KK3doaWNoIGFyZSAKK2luY2x1ZGVkIGluLCBvciBleGNsdWRlZCBmcm9tLCB0aGUgbG9naWNhbCBzdHJ1Y3R1cmUgb2YgdGhlIERURCBiYXNlZCBvbgordGhlIGtleXdvcmQgd2hpY2ggZ292ZXJucyB0aGVtLjwvdGVybWRlZj4KKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkNvbmRpdGlvbmFsIFNlY3Rpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjkiIHBjdzQ9IjE0LjUiPgorPHByb2QgaWQ9J05ULWNvbmRpdGlvbmFsU2VjdCc+PGxocz5jb25kaXRpb25hbFNlY3Q8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtaW5jbHVkZVNlY3QnPmluY2x1ZGVTZWN0PC9udD4KK3wgPG50IGRlZj0nTlQtaWdub3JlU2VjdCc+aWdub3JlU2VjdDwvbnQ+Cis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1pbmNsdWRlU2VjdCc+PGxocz5pbmNsdWRlU2VjdDwvbGhzPgorPHJocz4nJmx0OyFbJyBTPyAnSU5DTFVERScgUz8gJ1snIAorCis8bnQgZGVmPSJOVC1leHRTdWJzZXREZWNsIj5leHRTdWJzZXREZWNsPC9udD4KKyddXSZndDsnCis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1pZ25vcmVTZWN0Jz48bGhzPmlnbm9yZVNlY3Q8L2xocz4KKzxyaHM+JyZsdDshWycgUz8gJ0lHTk9SRScgUz8gJ1snIAorPG50IGRlZj0iTlQtaWdub3JlU2VjdENvbnRlbnRzIj5pZ25vcmVTZWN0Q29udGVudHM8L250PioKKyddXSZndDsnPC9yaHM+Cis8L3Byb2Q+CisKKzxwcm9kIGlkPSdOVC1pZ25vcmVTZWN0Q29udGVudHMnPjxsaHM+aWdub3JlU2VjdENvbnRlbnRzPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULUlnbm9yZSc+SWdub3JlPC9udD4KKygnJmx0OyFbJyA8bnQgZGVmPSdOVC1pZ25vcmVTZWN0Q29udGVudHMnPmlnbm9yZVNlY3RDb250ZW50czwvbnQ+ICddXSZndDsnIAorPG50IGRlZj0nTlQtSWdub3JlJz5JZ25vcmU8L250PikqPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULUlnbm9yZSc+PGxocz5JZ25vcmU8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAtIAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogKCcmbHQ7IVsnIHwgJ11dJmd0OycpIAorPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KikKKzwvcmhzPjwvcHJvZD4KKworPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC9wPgorPHA+TGlrZSB0aGUgaW50ZXJuYWwgYW5kIGV4dGVybmFsIERURCBzdWJzZXRzLCBhIGNvbmRpdGlvbmFsIHNlY3Rpb24KK21heSBjb250YWluIG9uZSBvciBtb3JlIGNvbXBsZXRlIGRlY2xhcmF0aW9ucywKK2NvbW1lbnRzLCBwcm9jZXNzaW5nIGluc3RydWN0aW9ucywgCitvciBuZXN0ZWQgY29uZGl0aW9uYWwgc2VjdGlvbnMsIGludGVybWluZ2xlZCB3aXRoIHdoaXRlIHNwYWNlLgorPC9wPgorPHA+SWYgdGhlIGtleXdvcmQgb2YgdGhlCitjb25kaXRpb25hbCBzZWN0aW9uIGlzIDxrdz5JTkNMVURFPC9rdz4sIHRoZW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBjb25kaXRpb25hbAorc2VjdGlvbiBhcmUgcGFydCBvZiB0aGUgRFRELgorSWYgdGhlIGtleXdvcmQgb2YgdGhlIGNvbmRpdGlvbmFsCitzZWN0aW9uIGlzIDxrdz5JR05PUkU8L2t3PiwgdGhlbiB0aGUgY29udGVudHMgb2YgdGhlIGNvbmRpdGlvbmFsIHNlY3Rpb24gYXJlCitub3QgbG9naWNhbGx5IHBhcnQgb2YgdGhlIERURC4KK05vdGUgdGhhdCBmb3IgcmVsaWFibGUgcGFyc2luZywgdGhlIGNvbnRlbnRzIG9mIGV2ZW4gaWdub3JlZAorY29uZGl0aW9uYWwgc2VjdGlvbnMgbXVzdCBiZSByZWFkIGluIG9yZGVyIHRvCitkZXRlY3QgbmVzdGVkIGNvbmRpdGlvbmFsIHNlY3Rpb25zIGFuZCBlbnN1cmUgdGhhdCB0aGUgZW5kIG9mIHRoZQorb3V0ZXJtb3N0IChpZ25vcmVkKSBjb25kaXRpb25hbCBzZWN0aW9uIGlzIHByb3Blcmx5IGRldGVjdGVkLgorSWYgYSBjb25kaXRpb25hbCBzZWN0aW9uIHdpdGggYQora2V5d29yZCBvZiA8a3c+SU5DTFVERTwva3c+IG9jY3VycyB3aXRoaW4gYSBsYXJnZXIgY29uZGl0aW9uYWwKK3NlY3Rpb24gd2l0aCBhIGtleXdvcmQgb2YgPGt3PklHTk9SRTwva3c+LCBib3RoIHRoZSBvdXRlciBhbmQgdGhlCitpbm5lciBjb25kaXRpb25hbCBzZWN0aW9ucyBhcmUgaWdub3JlZC48L3A+Cis8cD5JZiB0aGUga2V5d29yZCBvZiB0aGUgY29uZGl0aW9uYWwgc2VjdGlvbiBpcyBhIAorcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UsIHRoZSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgYmUgcmVwbGFjZWQgYnkgaXRzCitjb250ZW50IGJlZm9yZSB0aGUgcHJvY2Vzc29yIGRlY2lkZXMgd2hldGhlciB0bworaW5jbHVkZSBvciBpZ25vcmUgdGhlIGNvbmRpdGlvbmFsIHNlY3Rpb24uPC9wPgorPHA+QW4gZXhhbXBsZToKKzxlZz4mbHQ7IUVOVElUWSAlIGRyYWZ0ICdJTkNMVURFJyA+CismbHQ7IUVOVElUWSAlIGZpbmFsICdJR05PUkUnID4KKyAKKyZsdDshWyVkcmFmdDtbCismbHQ7IUVMRU1FTlQgYm9vayAoY29tbWVudHMqLCB0aXRsZSwgYm9keSwgc3VwcGxlbWVudHM/KT4KK11dJmd0OworJmx0OyFbJWZpbmFsO1sKKyZsdDshRUxFTUVOVCBib29rICh0aXRsZSwgYm9keSwgc3VwcGxlbWVudHM/KT4KK11dJmd0OworPC9lZz4KKzwvcD4KKzwvZGl2Mj4KKworCis8IS0tIAorPGRpdjIgaWQ9J3NlYy1wYXNzLXRvLWFwcCc+Cis8aGVhZD5YTUwgUHJvY2Vzc29yIFRyZWF0bWVudCBvZiBMb2dpY2FsIFN0cnVjdHVyZTwvaGVhZD4KKzxwPldoZW4gYW4gWE1MIHByb2Nlc3NvciBlbmNvdW50ZXJzIGEgc3RhcnQtdGFnLCBpdCBtdXN0IG1ha2UKK2F0IGxlYXN0IHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIHRoZSBhcHBsaWNhdGlvbjoKKzx1bGlzdD4KKzxpdGVtPgorPHA+dGhlIGVsZW1lbnQgdHlwZSdzIGdlbmVyaWMgaWRlbnRpZmllcjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+dGhlIG5hbWVzIG9mIGF0dHJpYnV0ZXMga25vd24gdG8gYXBwbHkgdG8gdGhpcyBlbGVtZW50IHR5cGUKKyh2YWxpZGF0aW5nIHByb2Nlc3NvcnMgbXVzdCBtYWtlIGF2YWlsYWJsZSBuYW1lcyBvZiBhbGwgYXR0cmlidXRlcworZGVjbGFyZWQgZm9yIHRoZSBlbGVtZW50IHR5cGU7IG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvcnMgbXVzdAorbWFrZSBhdmFpbGFibGUgYXQgbGVhc3QgdGhlIG5hbWVzIG9mIHRoZSBhdHRyaWJ1dGVzIGZvciB3aGljaAordmFsdWVzIGFyZSBzcGVjaWZpZWQuCis8L3A+Cis8L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPC9kaXYyPgorLS0+IAorCis8L2RpdjE+Cis8IS0tICZFbnRpdGllczsgLS0+CisgCis8ZGl2MSBpZD0nc2VjLXBoeXNpY2FsLXN0cnVjdCc+Cis8aGVhZD5QaHlzaWNhbCBTdHJ1Y3R1cmVzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWVudGl0eSIgdGVybT0iRW50aXR5Ij5BbiBYTUwgZG9jdW1lbnQgbWF5IGNvbnNpc3QKK29mIG9uZSBvciBtYW55IHN0b3JhZ2UgdW5pdHMuICAgVGhlc2UgYXJlIGNhbGxlZAorPHRlcm0+ZW50aXRpZXM8L3Rlcm0+OyB0aGV5IGFsbCBoYXZlIDx0ZXJtPmNvbnRlbnQ8L3Rlcm0+IGFuZCBhcmUgYWxsCisoZXhjZXB0IGZvciB0aGUgZG9jdW1lbnQgZW50aXR5LCBzZWUgYmVsb3csIGFuZCAKK3RoZSA8dGVybXJlZiBkZWY9J2R0LWRvY3R5cGUnPmV4dGVybmFsIERURCBzdWJzZXQ8L3Rlcm1yZWY+KSAKK2lkZW50aWZpZWQgYnkgPHRlcm0+bmFtZTwvdGVybT4uCis8L3Rlcm1kZWY+CitFYWNoIFhNTCBkb2N1bWVudCBoYXMgb25lIGVudGl0eQorY2FsbGVkIHRoZSA8dGVybXJlZiBkZWY9ImR0LWRvY2VudCI+ZG9jdW1lbnQgZW50aXR5PC90ZXJtcmVmPiwgd2hpY2ggc2VydmVzCithcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHRoZSA8dGVybXJlZiBkZWY9ImR0LXhtbC1wcm9jIj5YTUwKK3Byb2Nlc3NvcjwvdGVybXJlZj4gYW5kIG1heSBjb250YWluIHRoZSB3aG9sZSBkb2N1bWVudC48L3A+Cis8cD5FbnRpdGllcyBtYXkgYmUgZWl0aGVyIHBhcnNlZCBvciB1bnBhcnNlZC4KKzx0ZXJtZGVmIGlkPSJkdC1wYXJzZWRlbnQiIHRlcm09IlRleHQgRW50aXR5Ij5BIDx0ZXJtPnBhcnNlZCBlbnRpdHknczwvdGVybT4KK2NvbnRlbnRzIGFyZSByZWZlcnJlZCB0byBhcyBpdHMgCis8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPjsKK3RoaXMgPHRlcm1yZWYgZGVmPSJkdC10ZXh0Ij50ZXh0PC90ZXJtcmVmPiBpcyBjb25zaWRlcmVkIGFuCitpbnRlZ3JhbCBwYXJ0IG9mIHRoZSBkb2N1bWVudC48L3Rlcm1kZWY+PC9wPgorCis8cD48dGVybWRlZiBpZD0iZHQtdW5wYXJzZWQiIHRlcm09IlVucGFyc2VkIEVudGl0eSI+QW4gCis8dGVybT51bnBhcnNlZCBlbnRpdHk8L3Rlcm0+IAoraXMgYSByZXNvdXJjZSB3aG9zZSBjb250ZW50cyBtYXkgb3IgbWF5IG5vdCBiZQorPHRlcm1yZWYgZGVmPSdkdC10ZXh0Jz50ZXh0PC90ZXJtcmVmPiwgYW5kIGlmIHRleHQsIG1heSBub3QgYmUgWE1MLgorRWFjaCB1bnBhcnNlZCBlbnRpdHkKK2hhcyBhbiBhc3NvY2lhdGVkIDx0ZXJtcmVmCitkZWY9ImR0LW5vdGF0aW9uIj5ub3RhdGlvbjwvdGVybXJlZj4sIGlkZW50aWZpZWQgYnkgbmFtZS4KK0JleW9uZCBhIHJlcXVpcmVtZW50Cit0aGF0IGFuIFhNTCBwcm9jZXNzb3IgbWFrZSB0aGUgaWRlbnRpZmllcnMgZm9yIHRoZSBlbnRpdHkgYW5kIAorbm90YXRpb24gYXZhaWxhYmxlIHRvIHRoZSBhcHBsaWNhdGlvbiwKK1hNTCBwbGFjZXMgbm8gY29uc3RyYWludHMgb24gdGhlIGNvbnRlbnRzIG9mIHVucGFyc2VkIGVudGl0aWVzLjwvdGVybWRlZj4gCis8L3A+Cis8cD4KK1BhcnNlZCBlbnRpdGllcyBhcmUgaW52b2tlZCBieSBuYW1lIHVzaW5nIGVudGl0eSByZWZlcmVuY2VzOwordW5wYXJzZWQgZW50aXRpZXMgYnkgbmFtZSwgZ2l2ZW4gaW4gdGhlIHZhbHVlIG9mIDxrdz5FTlRJVFk8L2t3Pgorb3IgPGt3PkVOVElUSUVTPC9rdz4KK2F0dHJpYnV0ZXMuPC9wPgorPHA+PHRlcm1kZWYgaWQ9J2dlbi1lbnRpdHknIHRlcm09J2dlbmVyYWwgZW50aXR5JworPjx0ZXJtPkdlbmVyYWwgZW50aXRpZXM8L3Rlcm0+CithcmUgZW50aXRpZXMgZm9yIHVzZSB3aXRoaW4gdGhlIGRvY3VtZW50IGNvbnRlbnQuCitJbiB0aGlzIHNwZWNpZmljYXRpb24sIGdlbmVyYWwgZW50aXRpZXMgYXJlIHNvbWV0aW1lcyByZWZlcnJlZCAKK3RvIHdpdGggdGhlIHVucXVhbGlmaWVkIHRlcm0gPGVtcGg+ZW50aXR5PC9lbXBoPiB3aGVuIHRoaXMgbGVhZHMKK3RvIG5vIGFtYmlndWl0eS48L3Rlcm1kZWY+IAorPHRlcm1kZWYgaWQ9J2R0LVBFJyB0ZXJtPSdQYXJhbWV0ZXIgZW50aXR5Jz5QYXJhbWV0ZXIgZW50aXRpZXMgCithcmUgcGFyc2VkIGVudGl0aWVzIGZvciB1c2Ugd2l0aGluIHRoZSBEVEQuPC90ZXJtZGVmPgorVGhlc2UgdHdvIHR5cGVzIG9mIGVudGl0aWVzIHVzZSBkaWZmZXJlbnQgZm9ybXMgb2YgcmVmZXJlbmNlIGFuZAorYXJlIHJlY29nbml6ZWQgaW4gZGlmZmVyZW50IGNvbnRleHRzLgorRnVydGhlcm1vcmUsIHRoZXkgb2NjdXB5IGRpZmZlcmVudCBuYW1lc3BhY2VzOyBhIHBhcmFtZXRlciBlbnRpdHkgYW5kCithIGdlbmVyYWwgZW50aXR5IHdpdGggdGhlIHNhbWUgbmFtZSBhcmUgdHdvIGRpc3RpbmN0IGVudGl0aWVzLgorPC9wPgorCis8ZGl2MiBpZD0nc2VjLXJlZmVyZW5jZXMnPgorPGhlYWQ+Q2hhcmFjdGVyIGFuZCBFbnRpdHkgUmVmZXJlbmNlczwvaGVhZD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1jaGFycmVmIiB0ZXJtPSJDaGFyYWN0ZXIgUmVmZXJlbmNlIj4KK0EgPHRlcm0+Y2hhcmFjdGVyIHJlZmVyZW5jZTwvdGVybT4gcmVmZXJzIHRvIGEgc3BlY2lmaWMgY2hhcmFjdGVyIGluIHRoZQorSVNPL0lFQyAxMDY0NiBjaGFyYWN0ZXIgc2V0LCBmb3IgZXhhbXBsZSBvbmUgbm90IGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbQorYXZhaWxhYmxlIGlucHV0IGRldmljZXMuCis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5DaGFyYWN0ZXIgUmVmZXJlbmNlPC9oZWFkPgorPHByb2QgaWQ9J05ULUNoYXJSZWYnPjxsaHM+Q2hhclJlZjwvbGhzPgorPHJocz4nJmFtcDsjJyBbMC05XSsgJzsnIDwvcmhzPgorPHJocz58ICcmaGNybzsnIFswLTlhLWZBLUZdKyAnOyc8L3Jocz4KKzx3ZmMgZGVmPSJ3Zi1MZWdhbGNoYXIiLz4KKzwvcHJvZD4KKzwvc2NyYXA+Cis8d2Zjbm90ZSBpZD0id2YtTGVnYWxjaGFyIj4KKzxoZWFkPkxlZ2FsIENoYXJhY3RlcjwvaGVhZD4KKzxwPkNoYXJhY3RlcnMgcmVmZXJyZWQgdG8gdXNpbmcgY2hhcmFjdGVyIHJlZmVyZW5jZXMgbXVzdAorbWF0Y2ggdGhlIHByb2R1Y3Rpb24gZm9yCis8dGVybXJlZiBkZWY9Ik5ULUNoYXIiPkNoYXI8L3Rlcm1yZWY+LjwvcD4KKzwvd2Zjbm90ZT4KK0lmIHRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGJlZ2lucyB3aXRoICI8Y29kZT4mYW1wOyN4PC9jb2RlPiIsIHRoZSBkaWdpdHMgYW5kCitsZXR0ZXJzIHVwIHRvIHRoZSB0ZXJtaW5hdGluZyA8Y29kZT47PC9jb2RlPiBwcm92aWRlIGEgaGV4YWRlY2ltYWwKK3JlcHJlc2VudGF0aW9uIG9mIHRoZSBjaGFyYWN0ZXIncyBjb2RlIHBvaW50IGluIElTTy9JRUMgMTA2NDYuCitJZiBpdCBiZWdpbnMganVzdCB3aXRoICI8Y29kZT4mYW1wOyM8L2NvZGU+IiwgdGhlIGRpZ2l0cyB1cCB0byB0aGUgdGVybWluYXRpbmcKKzxjb2RlPjs8L2NvZGU+IHByb3ZpZGUgYSBkZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjaGFyYWN0ZXIncyAKK2NvZGUgcG9pbnQuCis8L3Rlcm1kZWY+Cis8L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtZW50cmVmIiB0ZXJtPSJFbnRpdHkgUmVmZXJlbmNlIj5BbiA8dGVybT5lbnRpdHkKK3JlZmVyZW5jZTwvdGVybT4gcmVmZXJzIHRvIHRoZSBjb250ZW50IG9mIGEgbmFtZWQgZW50aXR5LjwvdGVybWRlZj4KKzx0ZXJtZGVmIGlkPSdkdC1HRVJlZicgdGVybT0nR2VuZXJhbCBFbnRpdHkgUmVmZXJlbmNlJz5SZWZlcmVuY2VzIHRvIAorcGFyc2VkIGdlbmVyYWwgZW50aXRpZXMKK3VzZSBhbXBlcnNhbmQgKDxjb2RlPiZhbXA7PC9jb2RlPikgYW5kIHNlbWljb2xvbiAoPGNvZGU+OzwvY29kZT4pIGFzCitkZWxpbWl0ZXJzLjwvdGVybWRlZj4KKzx0ZXJtZGVmIGlkPSdkdC1QRVJlZicgdGVybT0nUGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UnPgorPHRlcm0+UGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzPC90ZXJtPiB1c2UgcGVyY2VudC1zaWduICg8Y29kZT4lPC9jb2RlPikgYW5kCitzZW1pY29sb24gCisoPGNvZGU+OzwvY29kZT4pIGFzIGRlbGltaXRlcnMuPC90ZXJtZGVmPgorPC9wPgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+RW50aXR5IFJlZmVyZW5jZTwvaGVhZD4KKzxwcm9kIGlkPSdOVC1SZWZlcmVuY2UnPjxsaHM+UmVmZXJlbmNlPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULUVudGl0eVJlZic+RW50aXR5UmVmPC9udD4gCit8IDxudCBkZWY9J05ULUNoYXJSZWYnPkNoYXJSZWY8L250PjwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1FbnRpdHlSZWYnPjxsaHM+RW50aXR5UmVmPC9saHM+Cis8cmhzPicmYW1wOycgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+ICc7JzwvcmhzPgorPHdmYyBkZWY9J3dmLWVudGRlY2xhcmVkJy8+Cis8dmMgZGVmPSd2Yy1lbnRkZWNsYXJlZCcvPgorPHdmYyBkZWY9J3RleHRlbnQnLz4KKzx3ZmMgZGVmPSdub3JlY3Vyc2lvbicvPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULVBFUmVmZXJlbmNlJz48bGhzPlBFUmVmZXJlbmNlPC9saHM+Cis8cmhzPiclJyA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gJzsnPC9yaHM+Cis8dmMgZGVmPSd2Yy1lbnRkZWNsYXJlZCcvPgorPHdmYyBkZWY9J25vcmVjdXJzaW9uJy8+Cis8d2ZjIGRlZj0naW5kdGQnLz4KKzwvcHJvZD4KKzwvc2NyYXA+CisKKzx3ZmNub3RlIGlkPSd3Zi1lbnRkZWNsYXJlZCc+Cis8aGVhZD5FbnRpdHkgRGVjbGFyZWQ8L2hlYWQ+Cis8cD5JbiBhIGRvY3VtZW50IHdpdGhvdXQgYW55IERURCwgYSBkb2N1bWVudCB3aXRoIG9ubHkgYW4gaW50ZXJuYWwKK0RURCBzdWJzZXQgd2hpY2ggY29udGFpbnMgbm8gcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2VzLCBvciBhIGRvY3VtZW50IHdpdGgKKyI8Y29kZT5zdGFuZGFsb25lPSd5ZXMnPC9jb2RlPiIsIAordGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBnaXZlbiBpbiB0aGUgZW50aXR5IHJlZmVyZW5jZSBtdXN0IAorPHRlcm1yZWYgZGVmPSJkdC1tYXRjaCI+bWF0Y2g8L3Rlcm1yZWY+IHRoYXQgaW4gYW4gCis8dGl0bGVyZWYgaHJlZj0nc2VjLWVudGl0eS1kZWNsJz5lbnRpdHkgZGVjbGFyYXRpb248L3RpdGxlcmVmPiwgZXhjZXB0IHRoYXQKK3dlbGwtZm9ybWVkIGRvY3VtZW50cyBuZWVkIG5vdCBkZWNsYXJlIAorYW55IG9mIHRoZSBmb2xsb3dpbmcgZW50aXRpZXM6ICZtYWdpY2VudHM7LiAgCitUaGUgZGVjbGFyYXRpb24gb2YgYSBwYXJhbWV0ZXIgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkgcmVmZXJlbmNlIHRvIGl0LgorU2ltaWxhcmx5LCB0aGUgZGVjbGFyYXRpb24gb2YgYSBnZW5lcmFsIGVudGl0eSBtdXN0IHByZWNlZGUgYW55CityZWZlcmVuY2UgdG8gaXQgd2hpY2ggYXBwZWFycyBpbiBhIGRlZmF1bHQgdmFsdWUgaW4gYW4gYXR0cmlidXRlLWxpc3QKK2RlY2xhcmF0aW9uLjwvcD4KKzxwPk5vdGUgdGhhdCBpZiBlbnRpdGllcyBhcmUgZGVjbGFyZWQgaW4gdGhlIGV4dGVybmFsIHN1YnNldCBvciBpbiAKK2V4dGVybmFsIHBhcmFtZXRlciBlbnRpdGllcywgYSBub24tdmFsaWRhdGluZyBwcm9jZXNzb3IgaXMgCis8dGl0bGVyZWYgaHJlZj0naW5jbHVkZS1pZi12YWxpZCc+bm90IG9ibGlnYXRlZCB0bzwvdGl0bGVyZWY+IHJlYWQKK2FuZCBwcm9jZXNzIHRoZWlyIGRlY2xhcmF0aW9uczsgZm9yIHN1Y2ggZG9jdW1lbnRzLCB0aGUgcnVsZSB0aGF0CithbiBlbnRpdHkgbXVzdCBiZSBkZWNsYXJlZCBpcyBhIHdlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50IG9ubHkKK2lmIDx0aXRsZXJlZiBocmVmPSdzZWMtcm1kJz5zdGFuZGFsb25lPSd5ZXMnPC90aXRsZXJlZj4uPC9wPgorPC93ZmNub3RlPgorPHZjbm90ZSBpZD0idmMtZW50ZGVjbGFyZWQiPgorPGhlYWQ+RW50aXR5IERlY2xhcmVkPC9oZWFkPgorPHA+SW4gYSBkb2N1bWVudCB3aXRoIGFuIGV4dGVybmFsIHN1YnNldCBvciBleHRlcm5hbCBwYXJhbWV0ZXIKK2VudGl0aWVzIHdpdGggIjxjb2RlPnN0YW5kYWxvbmU9J25vJzwvY29kZT4iLAordGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBnaXZlbiBpbiB0aGUgZW50aXR5IHJlZmVyZW5jZSBtdXN0IDx0ZXJtcmVmCitkZWY9ImR0LW1hdGNoIj5tYXRjaDwvdGVybXJlZj4gdGhhdCBpbiBhbiAKKzx0aXRsZXJlZiBocmVmPSdzZWMtZW50aXR5LWRlY2wnPmVudGl0eSBkZWNsYXJhdGlvbjwvdGl0bGVyZWY+LgorRm9yIGludGVyb3BlcmFiaWxpdHksIHZhbGlkIGRvY3VtZW50cyBzaG91bGQgZGVjbGFyZSB0aGUgZW50aXRpZXMgCismbWFnaWNlbnRzOywgaW4gdGhlIGZvcm0KK3NwZWNpZmllZCBpbiA8c3BlY3JlZiByZWY9InNlYy1wcmVkZWZpbmVkLWVudCIvPi4KK1RoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBwcmVjZWRlIGFueSByZWZlcmVuY2UgdG8gaXQuCitTaW1pbGFybHksIHRoZSBkZWNsYXJhdGlvbiBvZiBhIGdlbmVyYWwgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkKK3JlZmVyZW5jZSB0byBpdCB3aGljaCBhcHBlYXJzIGluIGEgZGVmYXVsdCB2YWx1ZSBpbiBhbiBhdHRyaWJ1dGUtbGlzdAorZGVjbGFyYXRpb24uPC9wPgorPC92Y25vdGU+Cis8IS0tIEZJTkFMIEVESVQ6ICBpcyB0aGlzIGR1cGxpY2F0aW9uIHRvbyBjbHVtc3k/IC0tPgorPHdmY25vdGUgaWQ9J3RleHRlbnQnPgorPGhlYWQ+UGFyc2VkIEVudGl0eTwvaGVhZD4KKzxwPgorQW4gZW50aXR5IHJlZmVyZW5jZSBtdXN0IG5vdCBjb250YWluIHRoZSBuYW1lIG9mIGFuIDx0ZXJtcmVmCitkZWY9ImR0LXVucGFyc2VkIj51bnBhcnNlZCBlbnRpdHk8L3Rlcm1yZWY+LiBVbnBhcnNlZCBlbnRpdGllcyBtYXkgYmUgcmVmZXJyZWQKK3RvIG9ubHkgaW4gPHRlcm1yZWYgZGVmPSJkdC1hdHRydmFsIj5hdHRyaWJ1dGUgdmFsdWVzPC90ZXJtcmVmPiBkZWNsYXJlZCB0bworYmUgb2YgdHlwZSA8a3c+RU5USVRZPC9rdz4gb3IgPGt3PkVOVElUSUVTPC9rdz4uCis8L3A+Cis8L3dmY25vdGU+Cis8d2Zjbm90ZSBpZD0nbm9yZWN1cnNpb24nPgorPGhlYWQ+Tm8gUmVjdXJzaW9uPC9oZWFkPgorPHA+CitBIHBhcnNlZCBlbnRpdHkgbXVzdCBub3QgY29udGFpbiBhIHJlY3Vyc2l2ZSByZWZlcmVuY2UgdG8gaXRzZWxmLAorZWl0aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkuCis8L3A+Cis8L3dmY25vdGU+Cis8d2Zjbm90ZSBpZD0naW5kdGQnPgorPGhlYWQ+SW4gRFREPC9oZWFkPgorPHA+CitQYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZXMgbWF5IG9ubHkgYXBwZWFyIGluIHRoZSAKKzx0ZXJtcmVmIGRlZj0nZHQtZG9jdHlwZSc+RFREPC90ZXJtcmVmPi4KKzwvcD4KKzwvd2Zjbm90ZT4KKzxwPkV4YW1wbGVzIG9mIGNoYXJhY3RlciBhbmQgZW50aXR5IHJlZmVyZW5jZXM6Cis8ZWc+VHlwZSAmbHQ7a2V5Pmxlc3MtdGhhbiZsdDsva2V5PiAoJmhjcm87M0M7KSB0byBzYXZlIG9wdGlvbnMuCitUaGlzIGRvY3VtZW50IHdhcyBwcmVwYXJlZCBvbiAmYW1wO2RvY2RhdGU7IGFuZAoraXMgY2xhc3NpZmllZCAmYW1wO3NlY3VyaXR5LWxldmVsOy48L2VnPjwvcD4KKzxwPkV4YW1wbGUgb2YgYSBwYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZToKKzxlZz48IVtDREFUQVs8IS0tIGRlY2xhcmUgdGhlIHBhcmFtZXRlciBlbnRpdHkgIklTT0xhdDIiLi4uIC0tPgorPCFFTlRJVFkgJSBJU09MYXQyCisgICAgICAgICBTWVNURU0gImh0dHA6Ly93d3cueG1sLmNvbS9pc28vaXNvbGF0Mi14bWwuZW50aXRpZXMiID4KKzwhLS0gLi4uIG5vdyByZWZlcmVuY2UgaXQuIC0tPgorJUlTT0xhdDI7XV0+PC9lZz48L3A+Cis8L2RpdjI+CisgCis8ZGl2MiBpZD0nc2VjLWVudGl0eS1kZWNsJz4KKzxoZWFkPkVudGl0eSBEZWNsYXJhdGlvbnM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtZW50ZGVjbCIgdGVybT0iZW50aXR5IGRlY2xhcmF0aW9uIj4KK0VudGl0aWVzIGFyZSBkZWNsYXJlZCB0aHVzOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+RW50aXR5IERlY2xhcmF0aW9uPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI1IiBwY3c0PSIxOC41Ij4KKzxwcm9kIGlkPSdOVC1FbnRpdHlEZWNsJz48bGhzPkVudGl0eURlY2w8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtR0VEZWNsIj5HRURlY2w8L250PjwhLS08L3Jocz48Y29tPkdlbmVyYWwgZW50aXRpZXM8L2NvbT4KKzxyaHM+LS0+IHwgPG50IGRlZj0iTlQtUEVEZWNsIj5QRURlY2w8L250PjwvcmhzPgorPCEtLTxjb20+UGFyYW1ldGVyIGVudGl0aWVzPC9jb20+LS0+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtR0VEZWNsJz48bGhzPkdFRGVjbDwvbGhzPgorPHJocz4nJmx0OyFFTlRJVFknIDxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gCis8bnQgZGVmPSdOVC1TJz5TPC9udD4gPG50IGRlZj0nTlQtRW50aXR5RGVmJz5FbnRpdHlEZWY8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gJyZndDsnPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtUEVEZWNsJz48bGhzPlBFRGVjbDwvbGhzPgorPHJocz4nJmx0OyFFTlRJVFknIDxudCBkZWY9J05ULVMnPlM8L250PiAnJScgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IDxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULVBFRGVmJz5QRURlZjwvbnQ+IDxudCBkZWY9J05ULVMnPlM8L250Pj8gJyZndDsnPC9yaHM+Cis8IS0tPGNvbT5QYXJhbWV0ZXIgZW50aXRpZXM8L2NvbT4tLT4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1FbnRpdHlEZWYnPjxsaHM+RW50aXR5RGVmPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULUVudGl0eVZhbHVlJz5FbnRpdHlWYWx1ZTwvbnQ+Cis8IS0tPC9yaHM+Cis8cmhzPi0tPnwgKDxudCBkZWY9J05ULUV4dGVybmFsSUQnPkV4dGVybmFsSUQ8L250PiAKKzxudCBkZWY9J05ULU5EYXRhRGVjbCc+TkRhdGFEZWNsPC9udD4/KTwvcmhzPgorPCEtLSA8bnQgZGVmPSdOVC1FeHRlcm5hbERlZic+RXh0ZXJuYWxEZWY8L250PjwvcmhzPiAtLT4KKzwvcHJvZD4KKzwhLS0gRklOQUwgRURJVDogd2hhdCBoYXBwZW5lZCB0byBXRnMgaGVyZT8gLS0+Cis8cHJvZCBpZD0nTlQtUEVEZWYnPjxsaHM+UEVEZWY8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4gCit8IDxudCBkZWY9J05ULUV4dGVybmFsSUQnPkV4dGVybmFsSUQ8L250PjwvcmhzPjwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KK1RoZSA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gaWRlbnRpZmllcyB0aGUgZW50aXR5IGluIGFuCis8dGVybXJlZiBkZWY9ImR0LWVudHJlZiI+ZW50aXR5IHJlZmVyZW5jZTwvdGVybXJlZj4gb3IsIGluIHRoZSBjYXNlIG9mIGFuCit1bnBhcnNlZCBlbnRpdHksIGluIHRoZSB2YWx1ZSBvZiBhbiA8a3c+RU5USVRZPC9rdz4gb3IgPGt3PkVOVElUSUVTPC9rdz4KK2F0dHJpYnV0ZS4KK0lmIHRoZSBzYW1lIGVudGl0eSBpcyBkZWNsYXJlZCBtb3JlIHRoYW4gb25jZSwgdGhlIGZpcnN0IGRlY2xhcmF0aW9uCitlbmNvdW50ZXJlZCBpcyBiaW5kaW5nOyBhdCB1c2VyIG9wdGlvbiwgYW4gWE1MIHByb2Nlc3NvciBtYXkgaXNzdWUgYQord2FybmluZyBpZiBlbnRpdGllcyBhcmUgZGVjbGFyZWQgbXVsdGlwbGUgdGltZXMuPC90ZXJtZGVmPgorPC9wPgorCis8ZGl2MyBpZD0nc2VjLWludGVybmFsLWVudCc+Cis8aGVhZD5JbnRlcm5hbCBFbnRpdGllczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSdkdC1pbnRlcm5lbnQnIHRlcm09IkludGVybmFsIEVudGl0eSBSZXBsYWNlbWVudCBUZXh0Ij5JZiAKK3RoZSBlbnRpdHkgZGVmaW5pdGlvbiBpcyBhbiAKKzxudCBkZWY9J05ULUVudGl0eVZhbHVlJz5FbnRpdHlWYWx1ZTwvbnQ+LCAgCit0aGUgZGVmaW5lZCBlbnRpdHkgaXMgY2FsbGVkIGFuIDx0ZXJtPmludGVybmFsIGVudGl0eTwvdGVybT4uICAKK1RoZXJlIGlzIG5vIHNlcGFyYXRlIHBoeXNpY2FsCitzdG9yYWdlIG9iamVjdCwgYW5kIHRoZSBjb250ZW50IG9mIHRoZSBlbnRpdHkgaXMgZ2l2ZW4gaW4gdGhlCitkZWNsYXJhdGlvbi4gPC90ZXJtZGVmPgorTm90ZSB0aGF0IHNvbWUgcHJvY2Vzc2luZyBvZiBlbnRpdHkgYW5kIGNoYXJhY3RlciByZWZlcmVuY2VzIGluIHRoZQorPHRlcm1yZWYgZGVmPSdkdC1saXRlbnR2YWwnPmxpdGVyYWwgZW50aXR5IHZhbHVlPC90ZXJtcmVmPiBtYXkgYmUgcmVxdWlyZWQgdG8KK3Byb2R1Y2UgdGhlIGNvcnJlY3QgPHRlcm1yZWYgZGVmPSdkdC1yZXBsdGV4dCc+cmVwbGFjZW1lbnQgCit0ZXh0PC90ZXJtcmVmPjogc2VlIDxzcGVjcmVmIHJlZj0naW50ZXJuLXJlcGxhY2VtZW50Jy8+LgorPC9wPgorPHA+QW4gaW50ZXJuYWwgZW50aXR5IGlzIGEgPHRlcm1yZWYgZGVmPSJkdC1wYXJzZWRlbnQiPnBhcnNlZAorZW50aXR5PC90ZXJtcmVmPi48L3A+Cis8cD5FeGFtcGxlIG9mIGFuIGludGVybmFsIGVudGl0eSBkZWNsYXJhdGlvbjoKKzxlZz4mbHQ7IUVOVElUWSBQdWItU3RhdHVzICJUaGlzIGlzIGEgcHJlLXJlbGVhc2Ugb2YgdGhlCisgc3BlY2lmaWNhdGlvbi4iPjwvZWc+PC9wPgorPC9kaXYzPgorIAorPGRpdjMgaWQ9J3NlYy1leHRlcm5hbC1lbnQnPgorPGhlYWQ+RXh0ZXJuYWwgRW50aXRpZXM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtZXh0ZW50IiB0ZXJtPSJFeHRlcm5hbCBFbnRpdHkiPklmIHRoZSBlbnRpdHkgaXMgbm90CitpbnRlcm5hbCwgaXQgaXMgYW4gPHRlcm0+ZXh0ZXJuYWwKK2VudGl0eTwvdGVybT4sIGRlY2xhcmVkIGFzIGZvbGxvd3M6Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5FeHRlcm5hbCBFbnRpdHkgRGVjbGFyYXRpb248L2hlYWQ+Cis8IS0tCis8cHJvZCBpZD0nTlQtRXh0ZXJuYWxEZWYnPjxsaHM+RXh0ZXJuYWxEZWY8L2xocz4KKzxyaHM+PC9wcm9kPiAtLT4KKzxwcm9kIGlkPSdOVC1FeHRlcm5hbElEJz48bGhzPkV4dGVybmFsSUQ8L2xocz4KKzxyaHM+J1NZU1RFTScgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtU3lzdGVtTGl0ZXJhbCc+U3lzdGVtTGl0ZXJhbDwvbnQ+PC9yaHM+Cis8cmhzPnwgJ1BVQkxJQycgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtUHViaWRMaXRlcmFsJz5QdWJpZExpdGVyYWw8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULVN5c3RlbUxpdGVyYWwnPlN5c3RlbUxpdGVyYWw8L250PgorPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtTkRhdGFEZWNsJz48bGhzPk5EYXRhRGVjbDwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1TJz5TPC9udD4gJ05EQVRBJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4gCis8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD48L3Jocz4KKzx2YyBkZWY9J25vdC1kZWNsYXJlZCcvPjwvcHJvZD4KKzwvc2NyYXA+CitJZiB0aGUgPG50IGRlZj0nTlQtTkRhdGFEZWNsJz5ORGF0YURlY2w8L250PiBpcyBwcmVzZW50LCB0aGlzIGlzIGEKK2dlbmVyYWwgPHRlcm1yZWYgZGVmPSJkdC11bnBhcnNlZCI+dW5wYXJzZWQKK2VudGl0eTwvdGVybXJlZj47IG90aGVyd2lzZSBpdCBpcyBhIHBhcnNlZCBlbnRpdHkuPC90ZXJtZGVmPjwvcD4KKzx2Y25vdGUgaWQ9J25vdC1kZWNsYXJlZCc+Cis8aGVhZD5Ob3RhdGlvbiBEZWNsYXJlZDwvaGVhZD4KKzxwPgorVGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBtdXN0IG1hdGNoIHRoZSBkZWNsYXJlZCBuYW1lIG9mIGEKKzx0ZXJtcmVmIGRlZj0iZHQtbm90YXRpb24iPm5vdGF0aW9uPC90ZXJtcmVmPi4KKzwvcD4KKzwvdmNub3RlPgorPHA+PHRlcm1kZWYgaWQ9ImR0LXN5c2lkIiB0ZXJtPSJTeXN0ZW0gSWRlbnRpZmllciI+VGhlCis8bnQgZGVmPSdOVC1TeXN0ZW1MaXRlcmFsJz5TeXN0ZW1MaXRlcmFsPC9udD4gCitpcyBjYWxsZWQgdGhlIGVudGl0eSdzIDx0ZXJtPnN5c3RlbSBpZGVudGlmaWVyPC90ZXJtPi4gSXQgaXMgYSBVUkksCit3aGljaCBtYXkgYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgZW50aXR5LjwvdGVybWRlZj4KK05vdGUgdGhhdCB0aGUgaGFzaCBtYXJrICg8Y29kZT4jPC9jb2RlPikgYW5kIGZyYWdtZW50IGlkZW50aWZpZXIgCitmcmVxdWVudGx5IHVzZWQgd2l0aCBVUklzIGFyZSBub3QsIGZvcm1hbGx5LCBwYXJ0IG9mIHRoZSBVUkkgaXRzZWxmOyAKK2FuIFhNTCBwcm9jZXNzb3IgbWF5IHNpZ25hbCBhbiBlcnJvciBpZiBhIGZyYWdtZW50IGlkZW50aWZpZXIgaXMgCitnaXZlbiBhcyBwYXJ0IG9mIGEgc3lzdGVtIGlkZW50aWZpZXIuCitVbmxlc3Mgb3RoZXJ3aXNlIHByb3ZpZGVkIGJ5IGluZm9ybWF0aW9uIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoaXMKK3NwZWNpZmljYXRpb24gKGUuZy4gYSBzcGVjaWFsIFhNTCBlbGVtZW50IHR5cGUgZGVmaW5lZCBieSBhIHBhcnRpY3VsYXIKK0RURCwgb3IgYSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGRlZmluZWQgYnkgYSBwYXJ0aWN1bGFyIGFwcGxpY2F0aW9uCitzcGVjaWZpY2F0aW9uKSwgcmVsYXRpdmUgVVJJcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZQorcmVzb3VyY2Ugd2l0aGluIHdoaWNoIHRoZSBlbnRpdHkgZGVjbGFyYXRpb24gb2NjdXJzLgorQSBVUkkgbWlnaHQgdGh1cyBiZSByZWxhdGl2ZSB0byB0aGUgCis8dGVybXJlZiBkZWY9J2R0LWRvY2VudCc+ZG9jdW1lbnQgZW50aXR5PC90ZXJtcmVmPiwgdG8gdGhlIGVudGl0eQorY29udGFpbmluZyB0aGUgPHRlcm1yZWYgZGVmPSdkdC1kb2N0eXBlJz5leHRlcm5hbCBEVEQgc3Vic2V0PC90ZXJtcmVmPiwgCitvciB0byBzb21lIG90aGVyIDx0ZXJtcmVmIGRlZj0nZHQtZXh0ZW50Jz5leHRlcm5hbCBwYXJhbWV0ZXIgZW50aXR5PC90ZXJtcmVmPi4KKzwvcD4KKzxwPkFuIFhNTCBwcm9jZXNzb3Igc2hvdWxkIGhhbmRsZSBhIG5vbi1BU0NJSSBjaGFyYWN0ZXIgaW4gYSBVUkkgYnkKK3JlcHJlc2VudGluZyB0aGUgY2hhcmFjdGVyIGluIFVURi04IGFzIG9uZSBvciBtb3JlIGJ5dGVzLCBhbmQgdGhlbiAKK2VzY2FwaW5nIHRoZXNlIGJ5dGVzIHdpdGggdGhlIFVSSSBlc2NhcGluZyBtZWNoYW5pc20gKGkuZS4sIGJ5Citjb252ZXJ0aW5nIGVhY2ggYnl0ZSB0byAlSEgsIHdoZXJlIEhIIGlzIHRoZSBoZXhhZGVjaW1hbCBub3RhdGlvbiBvZiB0aGUKK2J5dGUgdmFsdWUpLjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1wdWJpZCIgdGVybT0iUHVibGljIGlkZW50aWZpZXIiPgorSW4gYWRkaXRpb24gdG8gYSBzeXN0ZW0gaWRlbnRpZmllciwgYW4gZXh0ZXJuYWwgaWRlbnRpZmllciBtYXkKK2luY2x1ZGUgYSA8dGVybT5wdWJsaWMgaWRlbnRpZmllcjwvdGVybT4uPC90ZXJtZGVmPiAgCitBbiBYTUwgcHJvY2Vzc29yIGF0dGVtcHRpbmcgdG8gcmV0cmlldmUgdGhlIGVudGl0eSdzIGNvbnRlbnQgbWF5IHVzZSB0aGUgcHVibGljCitpZGVudGlmaWVyIHRvIHRyeSB0byBnZW5lcmF0ZSBhbiBhbHRlcm5hdGl2ZSBVUkkuICBJZiB0aGUgcHJvY2Vzc29yCitpcyB1bmFibGUgdG8gZG8gc28sIGl0IG11c3QgdXNlIHRoZSBVUkkgc3BlY2lmaWVkIGluIHRoZSBzeXN0ZW0KK2xpdGVyYWwuICBCZWZvcmUgYSBtYXRjaCBpcyBhdHRlbXB0ZWQsIGFsbCBzdHJpbmdzCitvZiB3aGl0ZSBzcGFjZSBpbiB0aGUgcHVibGljIGlkZW50aWZpZXIgbXVzdCBiZSBub3JtYWxpemVkIHRvIHNpbmdsZSBzcGFjZSBjaGFyYWN0ZXJzICgjeDIwKSwKK2FuZCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZSBzcGFjZSBtdXN0IGJlIHJlbW92ZWQuPC9wPgorPHA+RXhhbXBsZXMgb2YgZXh0ZXJuYWwgZW50aXR5IGRlY2xhcmF0aW9uczoKKzxlZz4mbHQ7IUVOVElUWSBvcGVuLWhhdGNoCisgICAgICAgICBTWVNURU0gImh0dHA6Ly93d3cudGV4dHVhbGl0eS5jb20vYm9pbGVycGxhdGUvT3BlbkhhdGNoLnhtbCI+CismbHQ7IUVOVElUWSBvcGVuLWhhdGNoCisgICAgICAgICBQVUJMSUMgIi0vL1RleHR1YWxpdHkvL1RFWFQgU3RhbmRhcmQgb3Blbi1oYXRjaCBib2lsZXJwbGF0ZS8vRU4iCisgICAgICAgICAiaHR0cDovL3d3dy50ZXh0dWFsaXR5LmNvbS9ib2lsZXJwbGF0ZS9PcGVuSGF0Y2gueG1sIj4KKyZsdDshRU5USVRZIGhhdGNoLXBpYworICAgICAgICAgU1lTVEVNICIuLi9ncmFmaXgvT3BlbkhhdGNoLmdpZiIKKyAgICAgICAgIE5EQVRBIGdpZiA+PC9lZz48L3A+Cis8L2RpdjM+CisgCis8L2RpdjI+CisKKzxkaXYyIGlkPSdUZXh0RW50aXRpZXMnPgorPGhlYWQ+UGFyc2VkIEVudGl0aWVzPC9oZWFkPgorPGRpdjMgaWQ9J3NlYy1UZXh0RGVjbCc+Cis8aGVhZD5UaGUgVGV4dCBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwPkV4dGVybmFsIHBhcnNlZCBlbnRpdGllcyBtYXkgZWFjaCBiZWdpbiB3aXRoIGEgPHRlcm0+dGV4dAorZGVjbGFyYXRpb248L3Rlcm0+LiAKKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPlRleHQgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzQ9IjEyLjUiIHBjdzU9IjEzIj4KKzxwcm9kIGlkPSdOVC1UZXh0RGVjbCc+PGxocz5UZXh0RGVjbDwvbGhzPgorPHJocz4meG1scGlvOyAKKzxudCBkZWY9J05ULVZlcnNpb25JbmZvJz5WZXJzaW9uSW5mbzwvbnQ+PworPG50IGRlZj0nTlQtRW5jb2RpbmdEZWNsJz5FbmNvZGluZ0RlY2w8L250PgorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAmcGljOzwvcmhzPgorPC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC9wPgorPHA+VGhlIHRleHQgZGVjbGFyYXRpb24gbXVzdCBiZSBwcm92aWRlZCBsaXRlcmFsbHksIG5vdAorYnkgcmVmZXJlbmNlIHRvIGEgcGFyc2VkIGVudGl0eS4KK05vIHRleHQgZGVjbGFyYXRpb24gbWF5IGFwcGVhciBhdCBhbnkgcG9zaXRpb24gb3RoZXIgdGhhbiB0aGUgYmVnaW5uaW5nIG9mCithbiBleHRlcm5hbCBwYXJzZWQgZW50aXR5LjwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSd3Zi1lbnRpdGllcyc+Cis8aGVhZD5XZWxsLUZvcm1lZCBQYXJzZWQgRW50aXRpZXM8L2hlYWQ+Cis8cD5UaGUgZG9jdW1lbnQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZAorPG50IGRlZj0nTlQtZG9jdW1lbnQnPmRvY3VtZW50PC9udD4uCitBbiBleHRlcm5hbCBnZW5lcmFsIAorcGFyc2VkIGVudGl0eSBpcyB3ZWxsLWZvcm1lZCBpZiBpdCBtYXRjaGVzIHRoZSBwcm9kdWN0aW9uIGxhYmVsZWQKKzxudCBkZWY9J05ULWV4dFBhcnNlZEVudCc+ZXh0UGFyc2VkRW50PC9udD4uCitBbiBleHRlcm5hbCBwYXJhbWV0ZXIKK2VudGl0eSBpcyB3ZWxsLWZvcm1lZCBpZiBpdCBtYXRjaGVzIHRoZSBwcm9kdWN0aW9uIGxhYmVsZWQKKzxudCBkZWY9J05ULWV4dFBFJz5leHRQRTwvbnQ+LgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+V2VsbC1Gb3JtZWQgRXh0ZXJuYWwgUGFyc2VkIEVudGl0eTwvaGVhZD4KKzxwcm9kIGlkPSdOVC1leHRQYXJzZWRFbnQnPjxsaHM+ZXh0UGFyc2VkRW50PC9saHM+Cis8cmhzPjxudCBkZWY9J05ULVRleHREZWNsJz5UZXh0RGVjbDwvbnQ+PyAKKzxudCBkZWY9J05ULWNvbnRlbnQnPmNvbnRlbnQ8L250PjwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULWV4dFBFJz48bGhzPmV4dFBFPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULVRleHREZWNsJz5UZXh0RGVjbDwvbnQ+PyAKKzxudCBkZWY9J05ULWV4dFN1YnNldERlY2wnPmV4dFN1YnNldERlY2w8L250PjwvcmhzPgorPC9wcm9kPgorPC9zY3JhcD4KK0FuIGludGVybmFsIGdlbmVyYWwgcGFyc2VkIGVudGl0eSBpcyB3ZWxsLWZvcm1lZCBpZiBpdHMgcmVwbGFjZW1lbnQgdGV4dCAKK21hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZAorPG50IGRlZj0nTlQtY29udGVudCc+Y29udGVudDwvbnQ+LgorQWxsIGludGVybmFsIHBhcmFtZXRlciBlbnRpdGllcyBhcmUgd2VsbC1mb3JtZWQgYnkgZGVmaW5pdGlvbi4KKzwvcD4KKzxwPkEgY29uc2VxdWVuY2Ugb2Ygd2VsbC1mb3JtZWRuZXNzIGluIGVudGl0aWVzIGlzIHRoYXQgdGhlIGxvZ2ljYWwgCithbmQgcGh5c2ljYWwgc3RydWN0dXJlcyBpbiBhbiBYTUwgZG9jdW1lbnQgYXJlIHByb3Blcmx5IG5lc3RlZDsgbm8gCis8dGVybXJlZiBkZWY9J2R0LXN0YWcnPnN0YXJ0LXRhZzwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9J2R0LWV0YWcnPmVuZC10YWc8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1lbXB0eSI+ZW1wdHktZWxlbWVudCB0YWc8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSdkdC1lbGVtZW50Jz5lbGVtZW50PC90ZXJtcmVmPiwgCis8dGVybXJlZiBkZWY9J2R0LWNvbW1lbnQnPmNvbW1lbnQ8L3Rlcm1yZWY+LCAKKzx0ZXJtcmVmIGRlZj0nZHQtcGknPnByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb248L3Rlcm1yZWY+LCAKKzx0ZXJtcmVmIGRlZj0nZHQtY2hhcnJlZic+Y2hhcmFjdGVyCityZWZlcmVuY2U8L3Rlcm1yZWY+LCBvcgorPHRlcm1yZWYgZGVmPSdkdC1lbnRyZWYnPmVudGl0eSByZWZlcmVuY2U8L3Rlcm1yZWY+IAorY2FuIGJlZ2luIGluIG9uZSBlbnRpdHkgYW5kIGVuZCBpbiBhbm90aGVyLjwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSdjaGFyZW5jb2RpbmcnPgorPGhlYWQ+Q2hhcmFjdGVyIEVuY29kaW5nIGluIEVudGl0aWVzPC9oZWFkPgorIAorPHA+RWFjaCBleHRlcm5hbCBwYXJzZWQgZW50aXR5IGluIGFuIFhNTCBkb2N1bWVudCBtYXkgdXNlIGEgZGlmZmVyZW50CitlbmNvZGluZyBmb3IgaXRzIGNoYXJhY3RlcnMuIEFsbCBYTUwgcHJvY2Vzc29ycyBtdXN0IGJlIGFibGUgdG8gcmVhZAorZW50aXRpZXMgaW4gZWl0aGVyIFVURi04IG9yIFVURi0xNi4gCisKKzwvcD4KKzxwPkVudGl0aWVzIGVuY29kZWQgaW4gVVRGLTE2IG11c3QKK2JlZ2luIHdpdGggdGhlIEJ5dGUgT3JkZXIgTWFyayBkZXNjcmliZWQgYnkgSVNPL0lFQyAxMDY0NiBBbm5leCBFIGFuZAorVW5pY29kZSBBcHBlbmRpeCBCICh0aGUgWkVSTyBXSURUSCBOTy1CUkVBSyBTUEFDRSBjaGFyYWN0ZXIsICN4RkVGRikuCitUaGlzIGlzIGFuIGVuY29kaW5nIHNpZ25hdHVyZSwgbm90IHBhcnQgb2YgZWl0aGVyIHRoZSBtYXJrdXAgb3IgdGhlCitjaGFyYWN0ZXIgZGF0YSBvZiB0aGUgWE1MIGRvY3VtZW50LgorWE1MIHByb2Nlc3NvcnMgbXVzdCBiZSBhYmxlIHRvIHVzZSB0aGlzIGNoYXJhY3RlciB0bworZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIFVURi04IGFuZCBVVEYtMTYgZW5jb2RlZCBkb2N1bWVudHMuPC9wPgorPHA+QWx0aG91Z2ggYW4gWE1MIHByb2Nlc3NvciBpcyByZXF1aXJlZCB0byByZWFkIG9ubHkgZW50aXRpZXMgaW4KK3RoZSBVVEYtOCBhbmQgVVRGLTE2IGVuY29kaW5ncywgaXQgaXMgcmVjb2duaXplZCB0aGF0IG90aGVyIGVuY29kaW5ncyBhcmUKK3VzZWQgYXJvdW5kIHRoZSB3b3JsZCwgYW5kIGl0IG1heSBiZSBkZXNpcmVkIGZvciBYTUwgcHJvY2Vzc29ycwordG8gcmVhZCBlbnRpdGllcyB0aGF0IHVzZSB0aGVtLgorUGFyc2VkIGVudGl0aWVzIHdoaWNoIGFyZSBzdG9yZWQgaW4gYW4gZW5jb2Rpbmcgb3RoZXIgdGhhbgorVVRGLTggb3IgVVRGLTE2IG11c3QgYmVnaW4gd2l0aCBhIDx0aXRsZXJlZiBocmVmPSdUZXh0RGVjbCc+dGV4dAorZGVjbGFyYXRpb248L3RpdGxlcmVmPiBjb250YWluaW5nIGFuIGVuY29kaW5nIGRlY2xhcmF0aW9uOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+RW5jb2RpbmcgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZCBpZD0nTlQtRW5jb2RpbmdEZWNsJz48bGhzPkVuY29kaW5nRGVjbDwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1TIj5TPC9udD4KKydlbmNvZGluZycgPG50IGRlZj0nTlQtRXEnPkVxPC9udD4gCisoJyInIDxudCBkZWY9J05ULUVuY05hbWUnPkVuY05hbWU8L250PiAnIicgfCAKKyInIiA8bnQgZGVmPSdOVC1FbmNOYW1lJz5FbmNOYW1lPC9udD4gIiciICkKKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULUVuY05hbWUnPjxsaHM+RW5jTmFtZTwvbGhzPgorPHJocz5bQS1aYS16XSAoW0EtWmEtejAtOS5fXSB8ICctJykqPC9yaHM+Cis8Y29tPkVuY29kaW5nIG5hbWUgY29udGFpbnMgb25seSBMYXRpbiBjaGFyYWN0ZXJzPC9jb20+Cis8L3Byb2Q+Cis8L3NjcmFwPgorSW4gdGhlIDx0ZXJtcmVmIGRlZj0nZHQtZG9jZW50Jz5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LCB0aGUgZW5jb2RpbmcKK2RlY2xhcmF0aW9uIGlzIHBhcnQgb2YgdGhlIDx0ZXJtcmVmIGRlZj0iZHQteG1sZGVjbCI+WE1MIGRlY2xhcmF0aW9uPC90ZXJtcmVmPi4KK1RoZSA8bnQgZGVmPSJOVC1FbmNOYW1lIj5FbmNOYW1lPC9udD4gaXMgdGhlIG5hbWUgb2YgdGhlIGVuY29kaW5nIHVzZWQuCis8L3A+Cis8IS0tIEZJTkFMIEVESVQ6ICBjaGVjayBuYW1lIG9mIElBTkEgYW5kIGNoYXJzZXQgbmFtZXMgLS0+Cis8cD5JbiBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbiwgdGhlIHZhbHVlcworIjxjb2RlPlVURi04PC9jb2RlPiIsCisiPGNvZGU+VVRGLTE2PC9jb2RlPiIsCisiPGNvZGU+SVNPLTEwNjQ2LVVDUy0yPC9jb2RlPiIsIGFuZAorIjxjb2RlPklTTy0xMDY0Ni1VQ1MtNDwvY29kZT4iIHNob3VsZCBiZSAKK3VzZWQgZm9yIHRoZSB2YXJpb3VzIGVuY29kaW5ncyBhbmQgdHJhbnNmb3JtYXRpb25zIG9mIFVuaWNvZGUgLworSVNPL0lFQyAxMDY0NiwgdGhlIHZhbHVlcworIjxjb2RlPklTTy04ODU5LTE8L2NvZGU+IiwKKyI8Y29kZT5JU08tODg1OS0yPC9jb2RlPiIsIC4uLgorIjxjb2RlPklTTy04ODU5LTk8L2NvZGU+IiBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHBhcnRzIG9mIElTTyA4ODU5LCBhbmQKK3RoZSB2YWx1ZXMKKyI8Y29kZT5JU08tMjAyMi1KUDwvY29kZT4iLAorIjxjb2RlPlNoaWZ0X0pJUzwvY29kZT4iLCBhbmQKKyI8Y29kZT5FVUMtSlA8L2NvZGU+Igorc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSB2YXJpb3VzIGVuY29kZWQgZm9ybXMgb2YgSklTIFgtMDIwOC0xOTk3LiAgWE1MCitwcm9jZXNzb3JzIG1heSByZWNvZ25pemUgb3RoZXIgZW5jb2RpbmdzOyBpdCBpcyByZWNvbW1lbmRlZCB0aGF0CitjaGFyYWN0ZXIgZW5jb2RpbmdzIHJlZ2lzdGVyZWQgKGFzIDxlbXBoPmNoYXJzZXQ8L2VtcGg+cykgCit3aXRoIHRoZSBJbnRlcm5ldCBBc3NpZ25lZCBOdW1iZXJzCitBdXRob3JpdHkgPGJpYnJlZiByZWY9J0lBTkEnLz4sIG90aGVyIHRoYW4gdGhvc2UganVzdCBsaXN0ZWQsIHNob3VsZCBiZQorcmVmZXJyZWQgdG8KK3VzaW5nIHRoZWlyIHJlZ2lzdGVyZWQgbmFtZXMuCitOb3RlIHRoYXQgdGhlc2UgcmVnaXN0ZXJlZCBuYW1lcyBhcmUgZGVmaW5lZCB0byBiZSAKK2Nhc2UtaW5zZW5zaXRpdmUsIHNvIHByb2Nlc3NvcnMgd2lzaGluZyB0byBtYXRjaCBhZ2FpbnN0IHRoZW0gCitzaG91bGQgZG8gc28gaW4gYSBjYXNlLWluc2Vuc2l0aXZlCit3YXkuPC9wPgorPHA+SW4gdGhlIGFic2VuY2Ugb2YgaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkgYW4gZXh0ZXJuYWwKK3RyYW5zcG9ydCBwcm90b2NvbCAoZS5nLiBIVFRQIG9yIE1JTUUpLCAKK2l0IGlzIGFuIDx0ZXJtcmVmIGRlZj0iZHQtZXJyb3IiPmVycm9yPC90ZXJtcmVmPiBmb3IgYW4gZW50aXR5IGluY2x1ZGluZworYW4gZW5jb2RpbmcgZGVjbGFyYXRpb24gdG8gYmUgcHJlc2VudGVkIHRvIHRoZSBYTUwgcHJvY2Vzc29yIAoraW4gYW4gZW5jb2Rpbmcgb3RoZXIgdGhhbiB0aGF0IG5hbWVkIGluIHRoZSBkZWNsYXJhdGlvbiwgCitmb3IgYW4gZW5jb2RpbmcgZGVjbGFyYXRpb24gdG8gb2NjdXIgb3RoZXIgdGhhbiBhdCB0aGUgYmVnaW5uaW5nIAorb2YgYW4gZXh0ZXJuYWwgZW50aXR5LCBvciBmb3IKK2FuIGVudGl0eSB3aGljaCBiZWdpbnMgd2l0aCBuZWl0aGVyIGEgQnl0ZSBPcmRlciBNYXJrIG5vciBhbiBlbmNvZGluZworZGVjbGFyYXRpb24gdG8gdXNlIGFuIGVuY29kaW5nIG90aGVyIHRoYW4gVVRGLTguCitOb3RlIHRoYXQgc2luY2UgQVNDSUkKK2lzIGEgc3Vic2V0IG9mIFVURi04LCBvcmRpbmFyeSBBU0NJSSBlbnRpdGllcyBkbyBub3Qgc3RyaWN0bHkgbmVlZAorYW4gZW5jb2RpbmcgZGVjbGFyYXRpb24uPC9wPgorCis8cD5JdCBpcyBhIDx0ZXJtcmVmIGRlZj0nZHQtZmF0YWwnPmZhdGFsIGVycm9yPC90ZXJtcmVmPiB3aGVuIGFuIFhNTCBwcm9jZXNzb3IKK2VuY291bnRlcnMgYW4gZW50aXR5IHdpdGggYW4gZW5jb2RpbmcgdGhhdCBpdCBpcyB1bmFibGUgdG8gcHJvY2Vzcy48L3A+Cis8cD5FeGFtcGxlcyBvZiBlbmNvZGluZyBkZWNsYXJhdGlvbnM6Cis8ZWc+Jmx0Oz94bWwgZW5jb2Rpbmc9J1VURi04Jz8+CismbHQ7P3htbCBlbmNvZGluZz0nRVVDLUpQJz8+PC9lZz48L3A+Cis8L2RpdjM+Cis8L2RpdjI+Cis8ZGl2MiBpZD0nZW50cHJvYyc+Cis8aGVhZD5YTUwgUHJvY2Vzc29yIFRyZWF0bWVudCBvZiBFbnRpdGllcyBhbmQgUmVmZXJlbmNlczwvaGVhZD4KKzxwPlRoZSB0YWJsZSBiZWxvdyBzdW1tYXJpemVzIHRoZSBjb250ZXh0cyBpbiB3aGljaCBjaGFyYWN0ZXIgcmVmZXJlbmNlcywKK2VudGl0eSByZWZlcmVuY2VzLCBhbmQgaW52b2NhdGlvbnMgb2YgdW5wYXJzZWQgZW50aXRpZXMgbWlnaHQgYXBwZWFyIGFuZCB0aGUKK3JlcXVpcmVkIGJlaGF2aW9yIG9mIGFuIDx0ZXJtcmVmIGRlZj0nZHQteG1sLXByb2MnPlhNTCBwcm9jZXNzb3I8L3Rlcm1yZWY+IGluCitlYWNoIGNhc2UuICAKK1RoZSBsYWJlbHMgaW4gdGhlIGxlZnRtb3N0IGNvbHVtbiBkZXNjcmliZSB0aGUgcmVjb2duaXRpb24gY29udGV4dDoKKzxnbGlzdD4KKzxnaXRlbT48bGFiZWw+UmVmZXJlbmNlIGluIENvbnRlbnQ8L2xhYmVsPgorPGRlZj48cD5hcyBhIHJlZmVyZW5jZQorYW55d2hlcmUgYWZ0ZXIgdGhlIDx0ZXJtcmVmIGRlZj0nZHQtc3RhZyc+c3RhcnQtdGFnPC90ZXJtcmVmPiBhbmQKK2JlZm9yZSB0aGUgPHRlcm1yZWYgZGVmPSdkdC1ldGFnJz5lbmQtdGFnPC90ZXJtcmVmPiBvZiBhbiBlbGVtZW50OyBjb3JyZXNwb25kcwordG8gdGhlIG5vbnRlcm1pbmFsIDxudCBkZWY9J05ULWNvbnRlbnQnPmNvbnRlbnQ8L250Pi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPlJlZmVyZW5jZSBpbiBBdHRyaWJ1dGUgVmFsdWU8L2xhYmVsPgorPGRlZj48cD5hcyBhIHJlZmVyZW5jZSB3aXRoaW4gZWl0aGVyIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgaW4gYSAKKzx0ZXJtcmVmIGRlZj0nZHQtc3RhZyc+c3RhcnQtdGFnPC90ZXJtcmVmPiwgb3IgYSBkZWZhdWx0Cit2YWx1ZSBpbiBhbiA8dGVybXJlZiBkZWY9J2R0LWF0dGRlY2wnPmF0dHJpYnV0ZSBkZWNsYXJhdGlvbjwvdGVybXJlZj47Citjb3JyZXNwb25kcyB0byB0aGUgbm9udGVybWluYWwKKzxudCBkZWY9J05ULUF0dFZhbHVlJz5BdHRWYWx1ZTwvbnQ+LjwvcD48L2RlZj48L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPk9jY3VycyBhcyBBdHRyaWJ1dGUgVmFsdWU8L2xhYmVsPgorPGRlZj48cD5hcyBhIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250Piwgbm90IGEgcmVmZXJlbmNlLCBhcHBlYXJpbmcgZWl0aGVyIGFzCit0aGUgdmFsdWUgb2YgYW4gCithdHRyaWJ1dGUgd2hpY2ggaGFzIGJlZW4gZGVjbGFyZWQgYXMgdHlwZSA8a3c+RU5USVRZPC9rdz4sIG9yIGFzIG9uZSBvZgordGhlIHNwYWNlLXNlcGFyYXRlZCB0b2tlbnMgaW4gdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSB3aGljaCBoYXMgYmVlbgorZGVjbGFyZWQgYXMgdHlwZSA8a3c+RU5USVRJRVM8L2t3Pi48L3A+Cis8L2RlZj48L2dpdGVtPgorPGdpdGVtPjxsYWJlbD5SZWZlcmVuY2UgaW4gRW50aXR5IFZhbHVlPC9sYWJlbD4KKzxkZWY+PHA+YXMgYSByZWZlcmVuY2UKK3dpdGhpbiBhIHBhcmFtZXRlciBvciBpbnRlcm5hbCBlbnRpdHkncyAKKzx0ZXJtcmVmIGRlZj0nZHQtbGl0ZW50dmFsJz5saXRlcmFsIGVudGl0eSB2YWx1ZTwvdGVybXJlZj4gaW4KK3RoZSBlbnRpdHkncyBkZWNsYXJhdGlvbjsgY29ycmVzcG9uZHMgdG8gdGhlIG5vbnRlcm1pbmFsIAorPG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4uPC9wPjwvZGVmPjwvZ2l0ZW0+Cis8Z2l0ZW0+PGxhYmVsPlJlZmVyZW5jZSBpbiBEVEQ8L2xhYmVsPgorPGRlZj48cD5hcyBhIHJlZmVyZW5jZSB3aXRoaW4gZWl0aGVyIHRoZSBpbnRlcm5hbCBvciBleHRlcm5hbCBzdWJzZXRzIG9mIHRoZSAKKzx0ZXJtcmVmIGRlZj0nZHQtZG9jdHlwZSc+RFREPC90ZXJtcmVmPiwgYnV0IG91dHNpZGUKK29mIGFuIDxudCBkZWY9J05ULUVudGl0eVZhbHVlJz5FbnRpdHlWYWx1ZTwvbnQ+IG9yCis8bnQgZGVmPSJOVC1BdHRWYWx1ZSI+QXR0VmFsdWU8L250Pi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPC9nbGlzdD48L3A+Cis8aHRhYmxlIGJvcmRlcj0nMScgY2VsbHBhZGRpbmc9JzcnIGFsaWduPSdjZW50ZXInPgorPGh0Ym9keT4KKzx0cj48dGQgYmdjb2xvcj0nJmNlbGxiYWNrOycgcm93c3Bhbj0nMicgY29sc3Bhbj0nMSc+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7JyBhbGlnbj0nY2VudGVyJyB2YWxpZ249J2JvdHRvbScgY29sc3Bhbj0nNCc+RW50aXR5IFR5cGU8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnIHJvd3NwYW49JzInIGFsaWduPSdjZW50ZXInPkNoYXJhY3RlcjwvdGQ+Cis8L3RyPgorPHRyIGFsaWduPSdjZW50ZXInIHZhbGlnbj0nYm90dG9tJz4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz5QYXJhbWV0ZXI8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPkludGVybmFsCitHZW5lcmFsPC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz5FeHRlcm5hbCBQYXJzZWQKK0dlbmVyYWw8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPlVucGFyc2VkPC90ZD4KKzwvdHI+Cis8dHIgYWxpZ249J2NlbnRlcicgdmFsaWduPSdtaWRkbGUnPgorCis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOycgYWxpZ249J3JpZ2h0Jz5SZWZlcmVuY2UKK2luIENvbnRlbnQ8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdub3QtcmVjb2duaXplZCc+Tm90IHJlY29nbml6ZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2luY2x1ZGVkJz5JbmNsdWRlZDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0naW5jbHVkZS1pZi12YWxpZCc+SW5jbHVkZWQgaWYgdmFsaWRhdGluZzwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nZm9yYmlkZGVuJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2luY2x1ZGVkJz5JbmNsdWRlZDwvdGl0bGVyZWY+PC90ZD4KKzwvdHI+Cis8dHIgYWxpZ249J2NlbnRlcicgdmFsaWduPSdtaWRkbGUnPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnIGFsaWduPSdyaWdodCc+UmVmZXJlbmNlCitpbiBBdHRyaWJ1dGUgVmFsdWU8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdub3QtcmVjb2duaXplZCc+Tm90IHJlY29nbml6ZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2lubGl0ZXJhbCc+SW5jbHVkZWQgaW4gbGl0ZXJhbDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nZm9yYmlkZGVuJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2ZvcmJpZGRlbic+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdpbmNsdWRlZCc+SW5jbHVkZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8L3RyPgorPHRyIGFsaWduPSdjZW50ZXInIHZhbGlnbj0nbWlkZGxlJz4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7JyBhbGlnbj0ncmlnaHQnPk9jY3VycyBhcworQXR0cmlidXRlIFZhbHVlPC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nbm90LXJlY29nbml6ZWQnPk5vdCByZWNvZ25pemVkPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdub3QtcmVjb2duaXplZCc+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdub3QtcmVjb2duaXplZCc+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdub3RpZnknPk5vdGlmeTwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nbm90IHJlY29nbml6ZWQnPk5vdCByZWNvZ25pemVkPC90aXRsZXJlZj48L3RkPgorPC90cj4KKzx0ciBhbGlnbj0nY2VudGVyJyB2YWxpZ249J21pZGRsZSc+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOycgYWxpZ249J3JpZ2h0Jz5SZWZlcmVuY2UKK2luIEVudGl0eVZhbHVlPC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0naW5saXRlcmFsJz5JbmNsdWRlZCBpbiBsaXRlcmFsPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdieXBhc3MnPkJ5cGFzc2VkPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdieXBhc3MnPkJ5cGFzc2VkPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdmb3JiaWRkZW4nPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0naW5jbHVkZWQnPkluY2x1ZGVkPC90aXRsZXJlZj48L3RkPgorPC90cj4KKzx0ciBhbGlnbj0nY2VudGVyJyB2YWxpZ249J21pZGRsZSc+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOycgYWxpZ249J3JpZ2h0Jz5SZWZlcmVuY2UKK2luIERURDwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2FzLVBFJz5JbmNsdWRlZCBhcyBQRTwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nZm9yYmlkZGVuJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2ZvcmJpZGRlbic+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdmb3JiaWRkZW4nPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nZm9yYmlkZGVuJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8L3RyPgorPC9odGJvZHk+Cis8L2h0YWJsZT4KKzxkaXYzIGlkPSdub3QtcmVjb2duaXplZCc+Cis8aGVhZD5Ob3QgUmVjb2duaXplZDwvaGVhZD4KKzxwPk91dHNpZGUgdGhlIERURCwgdGhlIDxjb2RlPiU8L2NvZGU+IGNoYXJhY3RlciBoYXMgbm8KK3NwZWNpYWwgc2lnbmlmaWNhbmNlOyB0aHVzLCB3aGF0IHdvdWxkIGJlIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlcyBpbiB0aGUKK0RURCBhcmUgbm90IHJlY29nbml6ZWQgYXMgbWFya3VwIGluIDxudCBkZWY9J05ULWNvbnRlbnQnPmNvbnRlbnQ8L250Pi4KK1NpbWlsYXJseSwgdGhlIG5hbWVzIG9mIHVucGFyc2VkIGVudGl0aWVzIGFyZSBub3QgcmVjb2duaXplZCBleGNlcHQKK3doZW4gdGhleSBhcHBlYXIgaW4gdGhlIHZhbHVlIG9mIGFuIGFwcHJvcHJpYXRlbHkgZGVjbGFyZWQgYXR0cmlidXRlLgorPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9J2luY2x1ZGVkJz4KKzxoZWFkPkluY2x1ZGVkPC9oZWFkPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWluY2x1ZGUiIHRlcm09IkluY2x1ZGUiPkFuIGVudGl0eSBpcyAKKzx0ZXJtPmluY2x1ZGVkPC90ZXJtPiB3aGVuIGl0cyAKKzx0ZXJtcmVmIGRlZj0nZHQtcmVwbHRleHQnPnJlcGxhY2VtZW50IHRleHQ8L3Rlcm1yZWY+IGlzIHJldHJpZXZlZCAKK2FuZCBwcm9jZXNzZWQsIGluIHBsYWNlIG9mIHRoZSByZWZlcmVuY2UgaXRzZWxmLAorYXMgdGhvdWdoIGl0IHdlcmUgcGFydCBvZiB0aGUgZG9jdW1lbnQgYXQgdGhlIGxvY2F0aW9uIHRoZQorcmVmZXJlbmNlIHdhcyByZWNvZ25pemVkLgorVGhlIHJlcGxhY2VtZW50IHRleHQgbWF5IGNvbnRhaW4gYm90aCAKKzx0ZXJtcmVmIGRlZj0nZHQtY2hhcmRhdGEnPmNoYXJhY3RlciBkYXRhPC90ZXJtcmVmPgorYW5kIChleGNlcHQgZm9yIHBhcmFtZXRlciBlbnRpdGllcykgPHRlcm1yZWYgZGVmPSJkdC1tYXJrdXAiPm1hcmt1cDwvdGVybXJlZj4sCit3aGljaCBtdXN0IGJlIHJlY29nbml6ZWQgaW4KK3RoZSB1c3VhbCB3YXksIGV4Y2VwdCB0aGF0IHRoZSByZXBsYWNlbWVudCB0ZXh0IG9mIGVudGl0aWVzIHVzZWQgdG8gZXNjYXBlCittYXJrdXAgZGVsaW1pdGVycyAodGhlIGVudGl0aWVzICZtYWdpY2VudHM7KSBpcyBhbHdheXMgdHJlYXRlZCBhcworZGF0YS4gIChUaGUgc3RyaW5nICI8Y29kZT5BVCZhbXA7YW1wO1Q7PC9jb2RlPiIgZXhwYW5kcyB0bworIjxjb2RlPkFUJmFtcDtUOzwvY29kZT4iIGFuZCB0aGUgcmVtYWluaW5nIGFtcGVyc2FuZCBpcyBub3QgcmVjb2duaXplZAorYXMgYW4gZW50aXR5LXJlZmVyZW5jZSBkZWxpbWl0ZXIuKSAKK0EgY2hhcmFjdGVyIHJlZmVyZW5jZSBpcyA8dGVybT5pbmNsdWRlZDwvdGVybT4gd2hlbiB0aGUgaW5kaWNhdGVkCitjaGFyYWN0ZXIgaXMgcHJvY2Vzc2VkIGluIHBsYWNlIG9mIHRoZSByZWZlcmVuY2UgaXRzZWxmLgorPC90ZXJtZGVmPjwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSdpbmNsdWRlLWlmLXZhbGlkJz4KKzxoZWFkPkluY2x1ZGVkIElmIFZhbGlkYXRpbmc8L2hlYWQ+Cis8cD5XaGVuIGFuIFhNTCBwcm9jZXNzb3IgcmVjb2duaXplcyBhIHJlZmVyZW5jZSB0byBhIHBhcnNlZCBlbnRpdHksIGluIG9yZGVyCit0byA8dGVybXJlZiBkZWY9ImR0LXZhbGlkIj52YWxpZGF0ZTwvdGVybXJlZj4KK3RoZSBkb2N1bWVudCwgdGhlIHByb2Nlc3NvciBtdXN0IAorPHRlcm1yZWYgZGVmPSJkdC1pbmNsdWRlIj5pbmNsdWRlPC90ZXJtcmVmPiBpdHMKK3JlcGxhY2VtZW50IHRleHQuCitJZiB0aGUgZW50aXR5IGlzIGV4dGVybmFsLCBhbmQgdGhlIHByb2Nlc3NvciBpcyBub3QKK2F0dGVtcHRpbmcgdG8gdmFsaWRhdGUgdGhlIFhNTCBkb2N1bWVudCwgdGhlCitwcm9jZXNzb3IgPHRlcm1yZWYgZGVmPSJkdC1tYXkiPm1heTwvdGVybXJlZj4sIGJ1dCBuZWVkIG5vdCwgCitpbmNsdWRlIHRoZSBlbnRpdHkncyByZXBsYWNlbWVudCB0ZXh0LgorSWYgYSBub24tdmFsaWRhdGluZyBwYXJzZXIgZG9lcyBub3QgaW5jbHVkZSB0aGUgcmVwbGFjZW1lbnQgdGV4dCwKK2l0IG11c3QgaW5mb3JtIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGl0IHJlY29nbml6ZWQsIGJ1dCBkaWQgbm90CityZWFkLCB0aGUgZW50aXR5LjwvcD4KKzxwPlRoaXMgcnVsZSBpcyBiYXNlZCBvbiB0aGUgcmVjb2duaXRpb24gdGhhdCB0aGUgYXV0b21hdGljIGluY2x1c2lvbgorcHJvdmlkZWQgYnkgdGhlIFNHTUwgYW5kIFhNTCBlbnRpdHkgbWVjaGFuaXNtLCBwcmltYXJpbHkgZGVzaWduZWQKK3RvIHN1cHBvcnQgbW9kdWxhcml0eSBpbiBhdXRob3JpbmcsIGlzIG5vdCBuZWNlc3NhcmlseSAKK2FwcHJvcHJpYXRlIGZvciBvdGhlciBhcHBsaWNhdGlvbnMsIGluIHBhcnRpY3VsYXIgZG9jdW1lbnQgYnJvd3NpbmcuCitCcm93c2VycywgZm9yIGV4YW1wbGUsIHdoZW4gZW5jb3VudGVyaW5nIGFuIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkgcmVmZXJlbmNlLAorbWlnaHQgY2hvb3NlIHRvIHByb3ZpZGUgYSB2aXN1YWwgaW5kaWNhdGlvbiBvZiB0aGUgZW50aXR5J3MKK3ByZXNlbmNlIGFuZCByZXRyaWV2ZSBpdCBmb3IgZGlzcGxheSBvbmx5IG9uIGRlbWFuZC4KKzwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSdmb3JiaWRkZW4nPgorPGhlYWQ+Rm9yYmlkZGVuPC9oZWFkPgorPHA+VGhlIGZvbGxvd2luZyBhcmUgZm9yYmlkZGVuLCBhbmQgY29uc3RpdHV0ZQorPHRlcm1yZWYgZGVmPSdkdC1mYXRhbCc+ZmF0YWw8L3Rlcm1yZWY+IGVycm9yczoKKzx1bGlzdD4KKzxpdGVtPjxwPnRoZSBhcHBlYXJhbmNlIG9mIGEgcmVmZXJlbmNlIHRvIGFuCis8dGVybXJlZiBkZWY9J2R0LXVucGFyc2VkJz51bnBhcnNlZCBlbnRpdHk8L3Rlcm1yZWY+LgorPC9wPjwvaXRlbT4KKzxpdGVtPjxwPnRoZSBhcHBlYXJhbmNlIG9mIGFueSBjaGFyYWN0ZXIgb3IgZ2VuZXJhbC1lbnRpdHkgcmVmZXJlbmNlIGluIHRoZQorRFREIGV4Y2VwdCB3aXRoaW4gYW4gPG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4gb3IgCis8bnQgZGVmPSJOVC1BdHRWYWx1ZSI+QXR0VmFsdWU8L250Pi48L3A+PC9pdGVtPgorPGl0ZW0+PHA+YSByZWZlcmVuY2UgdG8gYW4gZXh0ZXJuYWwgZW50aXR5IGluIGFuIGF0dHJpYnV0ZSB2YWx1ZS48L3A+Cis8L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9J2lubGl0ZXJhbCc+Cis8aGVhZD5JbmNsdWRlZCBpbiBMaXRlcmFsPC9oZWFkPgorPHA+V2hlbiBhbiA8dGVybXJlZiBkZWY9J2R0LWVudHJlZic+ZW50aXR5IHJlZmVyZW5jZTwvdGVybXJlZj4gYXBwZWFycyBpbiBhbgorYXR0cmlidXRlIHZhbHVlLCBvciBhIHBhcmFtZXRlciBlbnRpdHkgcmVmZXJlbmNlIGFwcGVhcnMgaW4gYSBsaXRlcmFsIGVudGl0eQordmFsdWUsIGl0cyA8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBpcworcHJvY2Vzc2VkIGluIHBsYWNlIG9mIHRoZSByZWZlcmVuY2UgaXRzZWxmIGFzIHRob3VnaCBpdAord2VyZSBwYXJ0IG9mIHRoZSBkb2N1bWVudCBhdCB0aGUgbG9jYXRpb24gdGhlIHJlZmVyZW5jZSB3YXMgcmVjb2duaXplZCwKK2V4Y2VwdCB0aGF0IGEgc2luZ2xlIG9yIGRvdWJsZSBxdW90ZSBjaGFyYWN0ZXIgaW4gdGhlIHJlcGxhY2VtZW50IHRleHQKK2lzIGFsd2F5cyB0cmVhdGVkIGFzIGEgbm9ybWFsIGRhdGEgY2hhcmFjdGVyIGFuZCB3aWxsIG5vdCB0ZXJtaW5hdGUgdGhlCitsaXRlcmFsLiAKK0ZvciBleGFtcGxlLCB0aGlzIGlzIHdlbGwtZm9ybWVkOgorPGVnPjwhW0NEQVRBWzwhRU5USVRZICUgWU4gJyJZZXMiJyA+Cis8IUVOVElUWSBXaGF0SGVTYWlkICJIZSBzYWlkICZZTjsiID5dXT48L2VnPgord2hpbGUgdGhpcyBpcyBub3Q6Cis8ZWc+Jmx0OyFFTlRJVFkgRW5kQXR0ciAiMjcnIiA+CismbHQ7ZWxlbWVudCBhdHRyaWJ1dGU9J2EtJmFtcDtFbmRBdHRyOz48L2VnPgorPC9wPjwvZGl2Mz4KKzxkaXYzIGlkPSdub3RpZnknPgorPGhlYWQ+Tm90aWZ5PC9oZWFkPgorPHA+V2hlbiB0aGUgbmFtZSBvZiBhbiA8dGVybXJlZiBkZWY9J2R0LXVucGFyc2VkJz51bnBhcnNlZAorZW50aXR5PC90ZXJtcmVmPiBhcHBlYXJzIGFzIGEgdG9rZW4gaW4gdGhlCit2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgb2YgZGVjbGFyZWQgdHlwZSA8a3c+RU5USVRZPC9rdz4gb3IgPGt3PkVOVElUSUVTPC9rdz4sCithIHZhbGlkYXRpbmcgcHJvY2Vzc29yIG11c3QgaW5mb3JtIHRoZQorYXBwbGljYXRpb24gb2YgdGhlIDx0ZXJtcmVmIGRlZj0nZHQtc3lzaWQnPnN5c3RlbTwvdGVybXJlZj4gCithbmQgPHRlcm1yZWYgZGVmPSdkdC1wdWJpZCc+cHVibGljPC90ZXJtcmVmPiAoaWYgYW55KQoraWRlbnRpZmllcnMgZm9yIGJvdGggdGhlIGVudGl0eSBhbmQgaXRzIGFzc29jaWF0ZWQKKzx0ZXJtcmVmIGRlZj0iZHQtbm90YXRpb24iPm5vdGF0aW9uPC90ZXJtcmVmPi48L3A+Cis8L2RpdjM+Cis8ZGl2MyBpZD0nYnlwYXNzJz4KKzxoZWFkPkJ5cGFzc2VkPC9oZWFkPgorPHA+V2hlbiBhIGdlbmVyYWwgZW50aXR5IHJlZmVyZW5jZSBhcHBlYXJzIGluIHRoZQorPG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4gaW4gYW4gZW50aXR5IGRlY2xhcmF0aW9uLAoraXQgaXMgYnlwYXNzZWQgYW5kIGxlZnQgYXMgaXMuPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9J2FzLVBFJz4KKzxoZWFkPkluY2x1ZGVkIGFzIFBFPC9oZWFkPgorPHA+SnVzdCBhcyB3aXRoIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcywgcGFyYW1ldGVyIGVudGl0aWVzCituZWVkIG9ubHkgYmUgPHRpdGxlcmVmIGhyZWY9J2luY2x1ZGUtaWYtdmFsaWQnPmluY2x1ZGVkIGlmCit2YWxpZGF0aW5nPC90aXRsZXJlZj4uIAorV2hlbiBhIHBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlIGlzIHJlY29nbml6ZWQgaW4gdGhlIERURAorYW5kIGluY2x1ZGVkLCBpdHMgCis8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudAordGV4dDwvdGVybXJlZj4gaXMgZW5sYXJnZWQgYnkgdGhlIGF0dGFjaG1lbnQgb2Ygb25lIGxlYWRpbmcgYW5kIG9uZSBmb2xsb3dpbmcKK3NwYWNlICgjeDIwKSBjaGFyYWN0ZXI7IHRoZSBpbnRlbnQgaXMgdG8gY29uc3RyYWluIHRoZSByZXBsYWNlbWVudAordGV4dCBvZiBwYXJhbWV0ZXIgCitlbnRpdGllcyB0byBjb250YWluIGFuIGludGVncmFsIG51bWJlciBvZiBncmFtbWF0aWNhbCB0b2tlbnMgaW4gdGhlIERURC4KKzwvcD4KKzwvZGl2Mz4KKworPC9kaXYyPgorPGRpdjIgaWQ9J2ludGVybi1yZXBsYWNlbWVudCc+Cis8aGVhZD5Db25zdHJ1Y3Rpb24gb2YgSW50ZXJuYWwgRW50aXR5IFJlcGxhY2VtZW50IFRleHQ8L2hlYWQ+Cis8cD5JbiBkaXNjdXNzaW5nIHRoZSB0cmVhdG1lbnQKK29mIGludGVybmFsIGVudGl0aWVzLCBpdCBpcyAgCit1c2VmdWwgdG8gZGlzdGluZ3Vpc2ggdHdvIGZvcm1zIG9mIHRoZSBlbnRpdHkncyB2YWx1ZS4KKzx0ZXJtZGVmIGlkPSJkdC1saXRlbnR2YWwiIHRlcm09J0xpdGVyYWwgRW50aXR5IFZhbHVlJz5UaGUgPHRlcm0+bGl0ZXJhbAorZW50aXR5IHZhbHVlPC90ZXJtPiBpcyB0aGUgcXVvdGVkIHN0cmluZyBhY3R1YWxseQorcHJlc2VudCBpbiB0aGUgZW50aXR5IGRlY2xhcmF0aW9uLCBjb3JyZXNwb25kaW5nIHRvIHRoZQorbm9uLXRlcm1pbmFsIDxudCBkZWY9J05ULUVudGl0eVZhbHVlJz5FbnRpdHlWYWx1ZTwvbnQ+LjwvdGVybWRlZj4KKzx0ZXJtZGVmIGlkPSdkdC1yZXBsdGV4dCcgdGVybT0nUmVwbGFjZW1lbnQgVGV4dCc+VGhlIDx0ZXJtPnJlcGxhY2VtZW50Cit0ZXh0PC90ZXJtPiBpcyB0aGUgY29udGVudCBvZiB0aGUgZW50aXR5LCBhZnRlcgorcmVwbGFjZW1lbnQgb2YgY2hhcmFjdGVyIHJlZmVyZW5jZXMgYW5kIHBhcmFtZXRlci1lbnRpdHkKK3JlZmVyZW5jZXMuCis8L3Rlcm1kZWY+PC9wPgorCis8cD5UaGUgbGl0ZXJhbCBlbnRpdHkgdmFsdWUgCithcyBnaXZlbiBpbiBhbiBpbnRlcm5hbCBlbnRpdHkgZGVjbGFyYXRpb24KKyg8bnQgZGVmPSdOVC1FbnRpdHlWYWx1ZSc+RW50aXR5VmFsdWU8L250PikgbWF5IGNvbnRhaW4gY2hhcmFjdGVyLAorcGFyYW1ldGVyLWVudGl0eSwgYW5kIGdlbmVyYWwtZW50aXR5IHJlZmVyZW5jZXMuCitTdWNoIHJlZmVyZW5jZXMgbXVzdCBiZSBjb250YWluZWQgZW50aXJlbHkgd2l0aGluIHRoZQorbGl0ZXJhbCBlbnRpdHkgdmFsdWUuCitUaGUgYWN0dWFsIHJlcGxhY2VtZW50IHRleHQgdGhhdCBpcyAKKzx0ZXJtcmVmIGRlZj0nZHQtaW5jbHVkZSc+aW5jbHVkZWQ8L3Rlcm1yZWY+IGFzIGRlc2NyaWJlZCBhYm92ZQorbXVzdCBjb250YWluIHRoZSA8ZW1waD5yZXBsYWNlbWVudCB0ZXh0PC9lbXBoPiBvZiBhbnkgCitwYXJhbWV0ZXIgZW50aXRpZXMgcmVmZXJyZWQgdG8sIGFuZCBtdXN0IGNvbnRhaW4gdGhlIGNoYXJhY3RlcgorcmVmZXJyZWQgdG8sIGluIHBsYWNlIG9mIGFueSBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBpbiB0aGUKK2xpdGVyYWwgZW50aXR5IHZhbHVlOyBob3dldmVyLAorZ2VuZXJhbC1lbnRpdHkgcmVmZXJlbmNlcyBtdXN0IGJlIGxlZnQgYXMtaXMsIHVuZXhwYW5kZWQuCitGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIGZvbGxvd2luZyBkZWNsYXJhdGlvbnM6CisKKzxlZz48IVtDREFUQVs8IUVOVElUWSAlIHB1YiAgICAiJiN4Yzk7ZGl0aW9ucyBHYWxsaW1hcmQiID4KKzwhRU5USVRZICAgcmlnaHRzICJBbGwgcmlnaHRzIHJlc2VydmVkIiA+Cis8IUVOVElUWSAgIGJvb2sgICAiTGEgUGVzdGU6IEFsYmVydCBDYW11cywgCismI3hBOTsgMTk0NyAlcHViOy4gJnJpZ2h0czsiID5dXT48L2VnPgordGhlbiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBmb3IgdGhlIGVudGl0eSAiPGNvZGU+Ym9vazwvY29kZT4iIGlzOgorPGVnPkxhIFBlc3RlOiBBbGJlcnQgQ2FtdXMsIAorJiMxNjk7IDE5NDcgJiMyMDE7ZGl0aW9ucyBHYWxsaW1hcmQuICZhbXA7cmlnaHRzOzwvZWc+CitUaGUgZ2VuZXJhbC1lbnRpdHkgcmVmZXJlbmNlICI8Y29kZT4mYW1wO3JpZ2h0czs8L2NvZGU+IiB3b3VsZCBiZSBleHBhbmRlZAorc2hvdWxkIHRoZSByZWZlcmVuY2UgIjxjb2RlPiZhbXA7Ym9vazs8L2NvZGU+IiBhcHBlYXIgaW4gdGhlIGRvY3VtZW50J3MKK2NvbnRlbnQgb3IgYW4gYXR0cmlidXRlIHZhbHVlLjwvcD4KKzxwPlRoZXNlIHNpbXBsZSBydWxlcyBtYXkgaGF2ZSBjb21wbGV4IGludGVyYWN0aW9uczsgZm9yIGEgZGV0YWlsZWQKK2Rpc2N1c3Npb24gb2YgYSBkaWZmaWN1bHQgZXhhbXBsZSwgc2VlCis8c3BlY3JlZiByZWY9J3NlYy1lbnRleHBhbmQnLz4uCis8L3A+CisKKzwvZGl2Mj4KKzxkaXYyIGlkPSdzZWMtcHJlZGVmaW5lZC1lbnQnPgorPGhlYWQ+UHJlZGVmaW5lZCBFbnRpdGllczwvaGVhZD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lc2NhcGUiIHRlcm09ImVzY2FwZSI+RW50aXR5IGFuZCBjaGFyYWN0ZXIKK3JlZmVyZW5jZXMgY2FuIGJvdGggYmUgdXNlZCB0byA8dGVybT5lc2NhcGU8L3Rlcm0+IHRoZSBsZWZ0IGFuZ2xlIGJyYWNrZXQsCithbXBlcnNhbmQsIGFuZCBvdGhlciBkZWxpbWl0ZXJzLiAgIEEgc2V0IG9mIGdlbmVyYWwgZW50aXRpZXMKKygmbWFnaWNlbnRzOykgaXMgc3BlY2lmaWVkIGZvciB0aGlzIHB1cnBvc2UuCitOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIG1heSBhbHNvIGJlIHVzZWQ7IHRoZXkgYXJlCitleHBhbmRlZCBpbW1lZGlhdGVseSB3aGVuIHJlY29nbml6ZWQgYW5kIG11c3QgYmUgdHJlYXRlZCBhcworY2hhcmFjdGVyIGRhdGEsIHNvIHRoZSBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzCisiPGNvZGU+JmFtcDsjNjA7PC9jb2RlPiIgYW5kICI8Y29kZT4mYW1wOyMzODs8L2NvZGU+IiBtYXkgYmUgdXNlZCB0byAKK2VzY2FwZSA8Y29kZT4mbHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDs8L2NvZGU+IHdoZW4gdGhleSBvY2N1cgoraW4gY2hhcmFjdGVyIGRhdGEuPC90ZXJtZGVmPjwvcD4KKzxwPkFsbCBYTUwgcHJvY2Vzc29ycyBtdXN0IHJlY29nbml6ZSB0aGVzZSBlbnRpdGllcyB3aGV0aGVyIHRoZXkKK2FyZSBkZWNsYXJlZCBvciBub3QuICAKKzx0ZXJtcmVmIGRlZj0nZHQtaW50ZXJvcCc+Rm9yIGludGVyb3BlcmFiaWxpdHk8L3Rlcm1yZWY+LAordmFsaWQgWE1MIGRvY3VtZW50cyBzaG91bGQgZGVjbGFyZSB0aGVzZQorZW50aXRpZXMsIGxpa2UgYW55IG90aGVycywgYmVmb3JlIHVzaW5nIHRoZW0uCitJZiB0aGUgZW50aXRpZXMgaW4gcXVlc3Rpb24gYXJlIGRlY2xhcmVkLCB0aGV5IG11c3QgYmUgZGVjbGFyZWQKK2FzIGludGVybmFsIGVudGl0aWVzIHdob3NlIHJlcGxhY2VtZW50IHRleHQgaXMgdGhlIHNpbmdsZQorY2hhcmFjdGVyIGJlaW5nIGVzY2FwZWQgb3IgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlIHRvCit0aGF0IGNoYXJhY3RlciwgYXMgc2hvd24gYmVsb3cuCis8ZWc+PCFbQ0RBVEFbPCFFTlRJVFkgbHQgICAgICImIzM4OyM2MDsiPiAKKzwhRU5USVRZIGd0ICAgICAiJiM2MjsiPiAKKzwhRU5USVRZIGFtcCAgICAiJiMzODsjMzg7Ij4gCis8IUVOVElUWSBhcG9zICAgIiYjMzk7Ij4gCis8IUVOVElUWSBxdW90ICAgIiYjMzQ7Ij4gCitdXT48L2VnPgorTm90ZSB0aGF0IHRoZSA8Y29kZT4mbHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDs8L2NvZGU+IGNoYXJhY3RlcnMKK2luIHRoZSBkZWNsYXJhdGlvbnMgb2YgIjxjb2RlPmx0PC9jb2RlPiIgYW5kICI8Y29kZT5hbXA8L2NvZGU+IgorYXJlIGRvdWJseSBlc2NhcGVkIHRvIG1lZXQgdGhlIHJlcXVpcmVtZW50IHRoYXQgZW50aXR5IHJlcGxhY2VtZW50CitiZSB3ZWxsLWZvcm1lZC4KKzwvcD4KKzwvZGl2Mj4KKworPGRpdjIgaWQ9J05vdGF0aW9ucyc+Cis8aGVhZD5Ob3RhdGlvbiBEZWNsYXJhdGlvbnM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtbm90YXRpb24iIHRlcm09Ik5vdGF0aW9uIj48dGVybT5Ob3RhdGlvbnM8L3Rlcm0+IGlkZW50aWZ5IGJ5CituYW1lIHRoZSBmb3JtYXQgb2YgPHRlcm1yZWYgZGVmPSJkdC1leHRlbnQiPnVucGFyc2VkCitlbnRpdGllczwvdGVybXJlZj4sIHRoZQorZm9ybWF0IG9mIGVsZW1lbnRzIHdoaWNoIGJlYXIgYSBub3RhdGlvbiBhdHRyaWJ1dGUsIAorb3IgdGhlIGFwcGxpY2F0aW9uIHRvIHdoaWNoICAKK2EgPHRlcm1yZWYgZGVmPSJkdC1waSI+cHJvY2Vzc2luZyBpbnN0cnVjdGlvbjwvdGVybXJlZj4gaXMKK2FkZHJlc3NlZC48L3Rlcm1kZWY+PC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LW5vdGRlY2wiIHRlcm09Ik5vdGF0aW9uIERlY2xhcmF0aW9uIj4KKzx0ZXJtPk5vdGF0aW9uIGRlY2xhcmF0aW9uczwvdGVybT4KK3Byb3ZpZGUgYSBuYW1lIGZvciB0aGUgbm90YXRpb24sIGZvciB1c2UgaW4KK2VudGl0eSBhbmQgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb25zIGFuZCBpbiBhdHRyaWJ1dGUgc3BlY2lmaWNhdGlvbnMsCithbmQgYW4gZXh0ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIG5vdGF0aW9uIHdoaWNoIG1heSBhbGxvdyBhbiBYTUwKK3Byb2Nlc3NvciBvciBpdHMgY2xpZW50IGFwcGxpY2F0aW9uIHRvIGxvY2F0ZSBhIGhlbHBlciBhcHBsaWNhdGlvbgorY2FwYWJsZSBvZiBwcm9jZXNzaW5nIGRhdGEgaW4gdGhlIGdpdmVuIG5vdGF0aW9uLgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+Tm90YXRpb24gRGVjbGFyYXRpb25zPC9oZWFkPgorPHByb2QgaWQ9J05ULU5vdGF0aW9uRGVjbCc+PGxocz5Ob3RhdGlvbkRlY2w8L2xocz4KKzxyaHM+JyZsdDshTk9UQVRJT04nIDxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gCis8bnQgZGVmPSdOVC1TJz5TPC9udD4gCisoPG50IGRlZj0nTlQtRXh0ZXJuYWxJRCc+RXh0ZXJuYWxJRDwvbnQ+IHwgCis8bnQgZGVmPSdOVC1QdWJsaWNJRCc+UHVibGljSUQ8L250PikKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gJz4nPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULVB1YmxpY0lEJz48bGhzPlB1YmxpY0lEPC9saHM+Cis8cmhzPidQVUJMSUMnIDxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULVB1YmlkTGl0ZXJhbCc+UHViaWRMaXRlcmFsPC9udD4gCis8L3Jocz48L3Byb2Q+Cis8L3NjcmFwPgorPC90ZXJtZGVmPjwvcD4KKzxwPlhNTCBwcm9jZXNzb3JzIG11c3QgcHJvdmlkZSBhcHBsaWNhdGlvbnMgd2l0aCB0aGUgbmFtZSBhbmQgZXh0ZXJuYWwKK2lkZW50aWZpZXIocykgb2YgYW55IG5vdGF0aW9uIGRlY2xhcmVkIGFuZCByZWZlcnJlZCB0byBpbiBhbiBhdHRyaWJ1dGUKK3ZhbHVlLCBhdHRyaWJ1dGUgZGVmaW5pdGlvbiwgb3IgZW50aXR5IGRlY2xhcmF0aW9uLiAgVGhleSBtYXkKK2FkZGl0aW9uYWxseSByZXNvbHZlIHRoZSBleHRlcm5hbCBpZGVudGlmaWVyIGludG8gdGhlCis8dGVybXJlZiBkZWY9ImR0LXN5c2lkIj5zeXN0ZW0gaWRlbnRpZmllcjwvdGVybXJlZj4sCitmaWxlIG5hbWUsIG9yIG90aGVyIGluZm9ybWF0aW9uIG5lZWRlZCB0byBhbGxvdyB0aGUKK2FwcGxpY2F0aW9uIHRvIGNhbGwgYSBwcm9jZXNzb3IgZm9yIGRhdGEgaW4gdGhlIG5vdGF0aW9uIGRlc2NyaWJlZC4gIChJdAoraXMgbm90IGFuIGVycm9yLCBob3dldmVyLCBmb3IgWE1MIGRvY3VtZW50cyB0byBkZWNsYXJlIGFuZCByZWZlciB0bworbm90YXRpb25zIGZvciB3aGljaCBub3RhdGlvbi1zcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgb24KK3RoZSBzeXN0ZW0gd2hlcmUgdGhlIFhNTCBwcm9jZXNzb3Igb3IgYXBwbGljYXRpb24gaXMgcnVubmluZy4pPC9wPgorPC9kaXYyPgorCisgCis8ZGl2MiBpZD0nc2VjLWRvYy1lbnRpdHknPgorPGhlYWQ+RG9jdW1lbnQgRW50aXR5PC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWRvY2VudCIgdGVybT0iRG9jdW1lbnQgRW50aXR5Ij5UaGUgPHRlcm0+ZG9jdW1lbnQKK2VudGl0eTwvdGVybT4gc2VydmVzIGFzIHRoZSByb290IG9mIHRoZSBlbnRpdHkKK3RyZWUgYW5kIGEgc3RhcnRpbmctcG9pbnQgZm9yIGFuIDx0ZXJtcmVmIGRlZj0iZHQteG1sLXByb2MiPlhNTAorcHJvY2Vzc29yPC90ZXJtcmVmPi48L3Rlcm1kZWY+CitUaGlzIHNwZWNpZmljYXRpb24gZG9lcworbm90IHNwZWNpZnkgaG93IHRoZSBkb2N1bWVudCBlbnRpdHkgaXMgdG8gYmUgbG9jYXRlZCBieSBhbiBYTUwKK3Byb2Nlc3NvcjsgdW5saWtlIG90aGVyIGVudGl0aWVzLCB0aGUgZG9jdW1lbnQgZW50aXR5IGhhcyBubyBuYW1lIGFuZCBtaWdodAord2VsbCBhcHBlYXIgb24gYSBwcm9jZXNzb3IgaW5wdXQgc3RyZWFtIAord2l0aG91dCBhbnkgaWRlbnRpZmljYXRpb24gYXQgYWxsLjwvcD4KKzwvZGl2Mj4KKworCis8L2RpdjE+Cis8IS0tICZDb25mb3JtYW5jZTsgLS0+CisgCis8ZGl2MSBpZD0nc2VjLWNvbmZvcm1hbmNlJz4KKzxoZWFkPkNvbmZvcm1hbmNlPC9oZWFkPgorIAorPGRpdjIgaWQ9J3Byb2MtdHlwZXMnPgorPGhlYWQ+VmFsaWRhdGluZyBhbmQgTm9uLVZhbGlkYXRpbmcgUHJvY2Vzc29yczwvaGVhZD4KKzxwPkNvbmZvcm1pbmcgPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MIHByb2Nlc3NvcnM8L3Rlcm1yZWY+IGZhbGwgaW50byB0d28KK2NsYXNzZXM6IHZhbGlkYXRpbmcgYW5kIG5vbi12YWxpZGF0aW5nLjwvcD4KKzxwPlZhbGlkYXRpbmcgYW5kIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvcnMgYWxpa2UgbXVzdCByZXBvcnQKK3Zpb2xhdGlvbnMgb2YgdGhpcyBzcGVjaWZpY2F0aW9uJ3Mgd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnRzCitpbiB0aGUgY29udGVudCBvZiB0aGUKKzx0ZXJtcmVmIGRlZj0nZHQtZG9jZW50Jz5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+IGFuZCBhbnkgCitvdGhlciA8dGVybXJlZiBkZWY9J2R0LXBhcnNlZGVudCc+cGFyc2VkIGVudGl0aWVzPC90ZXJtcmVmPiB0aGF0IAordGhleSByZWFkLjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC12YWxpZGF0aW5nIiB0ZXJtPSJWYWxpZGF0aW5nIFByb2Nlc3NvciI+Cis8dGVybT5WYWxpZGF0aW5nIHByb2Nlc3NvcnM8L3Rlcm0+IG11c3QgcmVwb3J0Cit2aW9sYXRpb25zIG9mIHRoZSBjb25zdHJhaW50cyBleHByZXNzZWQgYnkgdGhlIGRlY2xhcmF0aW9ucyBpbiB0aGUKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jdHlwZSI+RFREPC90ZXJtcmVmPiwgYW5kCitmYWlsdXJlcyB0byBmdWxmaWxsIHRoZSB2YWxpZGl0eSBjb25zdHJhaW50cyBnaXZlbgoraW4gdGhpcyBzcGVjaWZpY2F0aW9uLgorPC90ZXJtZGVmPgorVG8gYWNjb21wbGlzaCB0aGlzLCB2YWxpZGF0aW5nIFhNTCBwcm9jZXNzb3JzIG11c3QgcmVhZCBhbmQgcHJvY2VzcyB0aGUgZW50aXJlCitEVEQgYW5kIGFsbCBleHRlcm5hbCBwYXJzZWQgZW50aXRpZXMgcmVmZXJlbmNlZCBpbiB0aGUgZG9jdW1lbnQuCis8L3A+Cis8cD5Ob24tdmFsaWRhdGluZyBwcm9jZXNzb3JzIGFyZSByZXF1aXJlZCB0byBjaGVjayBvbmx5IHRoZSAKKzx0ZXJtcmVmIGRlZj0nZHQtZG9jZW50Jz5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LCBpbmNsdWRpbmcKK3RoZSBlbnRpcmUgaW50ZXJuYWwgRFREIHN1YnNldCwgZm9yIHdlbGwtZm9ybWVkbmVzcy4KKzx0ZXJtZGVmIGlkPSdkdC11c2UtbWRlY2wnIHRlcm09J1Byb2Nlc3MgRGVjbGFyYXRpb25zJz4KK1doaWxlIHRoZXkgYXJlIG5vdCByZXF1aXJlZCB0byBjaGVjayB0aGUgZG9jdW1lbnQgZm9yIHZhbGlkaXR5LAordGhleSBhcmUgcmVxdWlyZWQgdG8gCis8dGVybT5wcm9jZXNzPC90ZXJtPiBhbGwgdGhlIGRlY2xhcmF0aW9ucyB0aGV5IHJlYWQgaW4gdGhlCitpbnRlcm5hbCBEVEQgc3Vic2V0IGFuZCBpbiBhbnkgcGFyYW1ldGVyIGVudGl0eSB0aGF0IHRoZXkKK3JlYWQsIHVwIHRvIHRoZSBmaXJzdCByZWZlcmVuY2UKK3RvIGEgcGFyYW1ldGVyIGVudGl0eSB0aGF0IHRoZXkgZG8gPGVtcGg+bm90PC9lbXBoPiByZWFkOyB0aGF0IGlzIHRvIAorc2F5LCB0aGV5IG11c3QKK3VzZSB0aGUgaW5mb3JtYXRpb24gaW4gdGhvc2UgZGVjbGFyYXRpb25zIHRvCis8dGl0bGVyZWYgaHJlZj0nQVZOb3JtYWxpemUnPm5vcm1hbGl6ZTwvdGl0bGVyZWY+IGF0dHJpYnV0ZSB2YWx1ZXMsCis8dGl0bGVyZWYgaHJlZj0naW5jbHVkZWQnPmluY2x1ZGU8L3RpdGxlcmVmPiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiAKK2ludGVybmFsIGVudGl0aWVzLCBhbmQgc3VwcGx5IAorPHRpdGxlcmVmIGhyZWY9J3NlYy1hdHRyLWRlZmF1bHRzJz5kZWZhdWx0IGF0dHJpYnV0ZSB2YWx1ZXM8L3RpdGxlcmVmPi4KKzwvdGVybWRlZj4KK1RoZXkgbXVzdCBub3QgPHRlcm1yZWYgZGVmPSdkdC11c2UtbWRlY2wnPnByb2Nlc3M8L3Rlcm1yZWY+Cis8dGVybXJlZiBkZWY9J2R0LWVudGRlY2wnPmVudGl0eSBkZWNsYXJhdGlvbnM8L3Rlcm1yZWY+IG9yIAorPHRlcm1yZWYgZGVmPSdkdC1hdHRkZWNsJz5hdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnM8L3Rlcm1yZWY+IAorZW5jb3VudGVyZWQgYWZ0ZXIgYSByZWZlcmVuY2UgdG8gYSBwYXJhbWV0ZXIgZW50aXR5IHRoYXQgaXMgbm90CityZWFkLCBzaW5jZSB0aGUgZW50aXR5IG1heSBoYXZlIGNvbnRhaW5lZCBvdmVycmlkaW5nIGRlY2xhcmF0aW9ucy4KKzwvcD4KKzwvZGl2Mj4KKzxkaXYyIGlkPSdzYWZlLWJlaGF2aW9yJz4KKzxoZWFkPlVzaW5nIFhNTCBQcm9jZXNzb3JzPC9oZWFkPgorPHA+VGhlIGJlaGF2aW9yIG9mIGEgdmFsaWRhdGluZyBYTUwgcHJvY2Vzc29yIGlzIGhpZ2hseSBwcmVkaWN0YWJsZTsgaXQKK211c3QgcmVhZCBldmVyeSBwaWVjZSBvZiBhIGRvY3VtZW50IGFuZCByZXBvcnQgYWxsIHdlbGwtZm9ybWVkbmVzcyBhbmQKK3ZhbGlkaXR5IHZpb2xhdGlvbnMuCitMZXNzIGlzIHJlcXVpcmVkIG9mIGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yOyBpdCBuZWVkIG5vdCByZWFkIGFueQorcGFydCBvZiB0aGUgZG9jdW1lbnQgb3RoZXIgdGhhbiB0aGUgZG9jdW1lbnQgZW50aXR5LgorVGhpcyBoYXMgdHdvIGVmZmVjdHMgdGhhdCBtYXkgYmUgaW1wb3J0YW50IHRvIHVzZXJzIG9mIFhNTCBwcm9jZXNzb3JzOgorPHVsaXN0PgorPGl0ZW0+PHA+Q2VydGFpbiB3ZWxsLWZvcm1lZG5lc3MgZXJyb3JzLCBzcGVjaWZpY2FsbHkgdGhvc2UgdGhhdCByZXF1aXJlCityZWFkaW5nIGV4dGVybmFsIGVudGl0aWVzLCBtYXkgbm90IGJlIGRldGVjdGVkIGJ5IGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yLgorRXhhbXBsZXMgaW5jbHVkZSB0aGUgY29uc3RyYWludHMgZW50aXRsZWQgCis8dGl0bGVyZWYgaHJlZj0nd2YtZW50ZGVjbGFyZWQnPkVudGl0eSBEZWNsYXJlZDwvdGl0bGVyZWY+LCAKKzx0aXRsZXJlZiBocmVmPSd3Zi10ZXh0ZW50Jz5QYXJzZWQgRW50aXR5PC90aXRsZXJlZj4sIGFuZAorPHRpdGxlcmVmIGhyZWY9J3dmLW5vcmVjdXJzaW9uJz5ObyBSZWN1cnNpb248L3RpdGxlcmVmPiwgYXMgd2VsbAorYXMgc29tZSBvZiB0aGUgY2FzZXMgZGVzY3JpYmVkIGFzCis8dGl0bGVyZWYgaHJlZj0nZm9yYmlkZGVuJz5mb3JiaWRkZW48L3RpdGxlcmVmPiBpbiAKKzxzcGVjcmVmIHJlZj0nZW50cHJvYycvPi48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VGhlIGluZm9ybWF0aW9uIHBhc3NlZCBmcm9tIHRoZSBwcm9jZXNzb3IgdG8gdGhlIGFwcGxpY2F0aW9uIG1heQordmFyeSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHByb2Nlc3NvciByZWFkcworcGFyYW1ldGVyIGFuZCBleHRlcm5hbCBlbnRpdGllcy4KK0ZvciBleGFtcGxlLCBhIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvciBtYXkgbm90IAorPHRpdGxlcmVmIGhyZWY9J0FWTm9ybWFsaXplJz5ub3JtYWxpemU8L3RpdGxlcmVmPiBhdHRyaWJ1dGUgdmFsdWVzLAorPHRpdGxlcmVmIGhyZWY9J2luY2x1ZGVkJz5pbmNsdWRlPC90aXRsZXJlZj4gdGhlIHJlcGxhY2VtZW50IHRleHQgb2YgCitpbnRlcm5hbCBlbnRpdGllcywgb3Igc3VwcGx5IAorPHRpdGxlcmVmIGhyZWY9J3NlYy1hdHRyLWRlZmF1bHRzJz5kZWZhdWx0IGF0dHJpYnV0ZSB2YWx1ZXM8L3RpdGxlcmVmPiwKK3doZXJlIGRvaW5nIHNvIGRlcGVuZHMgb24gaGF2aW5nIHJlYWQgZGVjbGFyYXRpb25zIGluIAorZXh0ZXJuYWwgb3IgcGFyYW1ldGVyIGVudGl0aWVzLjwvcD48L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPHA+Rm9yIG1heGltdW0gcmVsaWFiaWxpdHkgaW4gaW50ZXJvcGVyYXRpbmcgYmV0d2VlbiBkaWZmZXJlbnQgWE1MCitwcm9jZXNzb3JzLCBhcHBsaWNhdGlvbnMgd2hpY2ggdXNlIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvcnMgc2hvdWxkIG5vdCAKK3JlbHkgb24gYW55IGJlaGF2aW9ycyBub3QgcmVxdWlyZWQgb2Ygc3VjaCBwcm9jZXNzb3JzLgorQXBwbGljYXRpb25zIHdoaWNoIHJlcXVpcmUgZmFjaWxpdGllcyBzdWNoIGFzIHRoZSB1c2Ugb2YgZGVmYXVsdAorYXR0cmlidXRlcyBvciBpbnRlcm5hbCBlbnRpdGllcyB3aGljaCBhcmUgZGVjbGFyZWQgaW4gZXh0ZXJuYWwKK2VudGl0aWVzIHNob3VsZCB1c2UgdmFsaWRhdGluZyBYTUwgcHJvY2Vzc29ycy48L3A+Cis8L2RpdjI+Cis8L2RpdjE+CisKKzxkaXYxIGlkPSdzZWMtbm90YXRpb24nPgorPGhlYWQ+Tm90YXRpb248L2hlYWQ+CisgCis8cD5UaGUgZm9ybWFsIGdyYW1tYXIgb2YgWE1MIGlzIGdpdmVuIGluIHRoaXMgc3BlY2lmaWNhdGlvbiB1c2luZyBhIHNpbXBsZQorRXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybSAoRUJORikgbm90YXRpb24uICBFYWNoIHJ1bGUgaW4gdGhlIGdyYW1tYXIgZGVmaW5lcworb25lIHN5bWJvbCwgaW4gdGhlIGZvcm0KKzxlZz5zeW1ib2wgOjo9IGV4cHJlc3Npb248L2VnPjwvcD4KKzxwPlN5bWJvbHMgYXJlIHdyaXR0ZW4gd2l0aCBhbiBpbml0aWFsIGNhcGl0YWwgbGV0dGVyIGlmIHRoZXkgYXJlCitkZWZpbmVkIGJ5IGEgcmVndWxhciBleHByZXNzaW9uLCBvciB3aXRoIGFuIGluaXRpYWwgbG93ZXIgY2FzZSBsZXR0ZXIgCitvdGhlcndpc2UuCitMaXRlcmFsIHN0cmluZ3MgYXJlIHF1b3RlZC4KKworPC9wPgorCis8cD5XaXRoaW4gdGhlIGV4cHJlc3Npb24gb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiBhIHJ1bGUsIHRoZSBmb2xsb3dpbmcKK2V4cHJlc3Npb25zIGFyZSB1c2VkIHRvIG1hdGNoIHN0cmluZ3Mgb2Ygb25lIG9yIG1vcmUgY2hhcmFjdGVyczoKKzxnbGlzdD4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT4jeE48L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+d2hlcmUgPGNvZGU+TjwvY29kZT4gaXMgYSBoZXhhZGVjaW1hbCBpbnRlZ2VyLCB0aGUKK2V4cHJlc3Npb24gbWF0Y2hlcyB0aGUgY2hhcmFjdGVyIGluIElTTy9JRUMgMTA2NDYgd2hvc2UgY2Fub25pY2FsCisoVUNTLTQpIAorY29kZSB2YWx1ZSwgd2hlbiBpbnRlcnByZXRlZCBhcyBhbiB1bnNpZ25lZCBiaW5hcnkgbnVtYmVyLCBoYXMKK3RoZSB2YWx1ZSBpbmRpY2F0ZWQuICBUaGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MgaW4gdGhlCis8Y29kZT4jeE48L2NvZGU+IGZvcm0gaXMgaW5zaWduaWZpY2FudDsgdGhlIG51bWJlciBvZiBsZWFkaW5nCit6ZXJvcyBpbiB0aGUgY29ycmVzcG9uZGluZyBjb2RlIHZhbHVlIAoraXMgZ292ZXJuZWQgYnkgdGhlIGNoYXJhY3RlcgorZW5jb2RpbmcgaW4gdXNlIGFuZCBpcyBub3Qgc2lnbmlmaWNhbnQgZm9yIFhNTC48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPlthLXpBLVpdPC9jb2RlPiwgPGNvZGU+WyN4Ti0jeE5dPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYW55IDx0ZXJtcmVmIGRlZj0nZHQtY2hhcmFjdGVyJz5jaGFyYWN0ZXI8L3Rlcm1yZWY+IAord2l0aCBhIHZhbHVlIGluIHRoZSByYW5nZShzKSBpbmRpY2F0ZWQgKGluY2x1c2l2ZSkuPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5bXmEtel08L2NvZGU+LCA8Y29kZT5bXiN4Ti0jeE5dPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYW55IDx0ZXJtcmVmIGRlZj0nZHQtY2hhcmFjdGVyJz5jaGFyYWN0ZXI8L3Rlcm1yZWY+IAord2l0aCBhIHZhbHVlIDxlbXBoPm91dHNpZGU8L2VtcGg+IHRoZQorcmFuZ2UgaW5kaWNhdGVkLjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+W15hYmNdPC9jb2RlPiwgPGNvZGU+W14jeE4jeE4jeE5dPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYW55IDx0ZXJtcmVmIGRlZj0nZHQtY2hhcmFjdGVyJz5jaGFyYWN0ZXI8L3Rlcm1yZWY+Cit3aXRoIGEgdmFsdWUgbm90IGFtb25nIHRoZSBjaGFyYWN0ZXJzIGdpdmVuLjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+InN0cmluZyI8L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyBhIGxpdGVyYWwgc3RyaW5nIDx0ZXJtcmVmIGRlZj0iZHQtbWF0Y2giPm1hdGNoaW5nPC90ZXJtcmVmPgordGhhdCBnaXZlbiBpbnNpZGUgdGhlIGRvdWJsZSBxdW90ZXMuPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT4nc3RyaW5nJzwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIGEgbGl0ZXJhbCBzdHJpbmcgPHRlcm1yZWYgZGVmPSJkdC1tYXRjaCI+bWF0Y2hpbmc8L3Rlcm1yZWY+Cit0aGF0IGdpdmVuIGluc2lkZSB0aGUgc2luZ2xlIHF1b3Rlcy48L3A+PC9kZWY+Cis8L2dpdGVtPgorPC9nbGlzdD4KK1RoZXNlIHN5bWJvbHMgbWF5IGJlIGNvbWJpbmVkIHRvIG1hdGNoIG1vcmUgY29tcGxleCBwYXR0ZXJucyBhcyBmb2xsb3dzLAord2hlcmUgPGNvZGU+QTwvY29kZT4gYW5kIDxjb2RlPkI8L2NvZGU+IHJlcHJlc2VudCBzaW1wbGUgZXhwcmVzc2lvbnM6Cis8Z2xpc3Q+Cis8Z2l0ZW0+Cis8bGFiZWw+KDxjb2RlPmV4cHJlc3Npb248L2NvZGU+KTwvbGFiZWw+Cis8ZGVmPjxwPjxjb2RlPmV4cHJlc3Npb248L2NvZGU+IGlzIHRyZWF0ZWQgYXMgYSB1bml0IAorYW5kIG1heSBiZSBjb21iaW5lZCBhcyBkZXNjcmliZWQgaW4gdGhpcyBsaXN0LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+QT88L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyA8Y29kZT5BPC9jb2RlPiBvciBub3RoaW5nOyBvcHRpb25hbCA8Y29kZT5BPC9jb2RlPi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPkEgQjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIDxjb2RlPkE8L2NvZGU+IGZvbGxvd2VkIGJ5IDxjb2RlPkI8L2NvZGU+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+QSB8IEI8L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyA8Y29kZT5BPC9jb2RlPiBvciA8Y29kZT5CPC9jb2RlPiBidXQgbm90IGJvdGguPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5BIC0gQjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBtYXRjaGVzIDxjb2RlPkE8L2NvZGU+IGJ1dCBkb2VzIG5vdCBtYXRjaAorPGNvZGU+QjwvY29kZT4uCis8L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPkErPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgb25lIG9yIG1vcmUgb2NjdXJyZW5jZXMgb2YgPGNvZGU+QTwvY29kZT4uPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5BKjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIHplcm8gb3IgbW9yZSBvY2N1cnJlbmNlcyBvZiA8Y29kZT5BPC9jb2RlPi48L3A+PC9kZWY+Cis8L2dpdGVtPgorCis8L2dsaXN0PgorT3RoZXIgbm90YXRpb25zIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb25zIGFyZToKKzxnbGlzdD4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT4vKiAuLi4gKi88L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+Y29tbWVudC48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPlsgd2ZjOiAuLi4gXTwvY29kZT48L2xhYmVsPgorPGRlZj48cD53ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludDsgdGhpcyBpZGVudGlmaWVzIGJ5IG5hbWUgYSAKK2NvbnN0cmFpbnQgb24gCis8dGVybXJlZiBkZWY9ImR0LXdlbGxmb3JtZWQiPndlbGwtZm9ybWVkPC90ZXJtcmVmPiBkb2N1bWVudHMKK2Fzc29jaWF0ZWQgd2l0aCBhIHByb2R1Y3Rpb24uPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5bIHZjOiAuLi4gXTwvY29kZT48L2xhYmVsPgorPGRlZj48cD52YWxpZGl0eSBjb25zdHJhaW50OyB0aGlzIGlkZW50aWZpZXMgYnkgbmFtZSBhIGNvbnN0cmFpbnQgb24KKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkPC90ZXJtcmVmPiBkb2N1bWVudHMgYXNzb2NpYXRlZCB3aXRoCithIHByb2R1Y3Rpb24uPC9wPjwvZGVmPgorPC9naXRlbT4KKzwvZ2xpc3Q+Cis8L3A+PC9kaXYxPgorCis8L2JvZHk+Cis8YmFjaz4KKzwhLS0gJlNHTUw7IC0tPgorIAorCis8IS0tICZCaWJsaW87IC0tPgorPGRpdjEgaWQ9J3NlYy1iaWJsaW9ncmFwaHknPgorCis8aGVhZD5SZWZlcmVuY2VzPC9oZWFkPgorPGRpdjIgaWQ9J3NlYy1leGlzdGluZy1zdGRzJz4KKzxoZWFkPk5vcm1hdGl2ZSBSZWZlcmVuY2VzPC9oZWFkPgorCis8Ymxpc3Q+Cis8YmlibCBpZD0nSUFOQScga2V5PSdJQU5BJz4KKyhJbnRlcm5ldCBBc3NpZ25lZCBOdW1iZXJzIEF1dGhvcml0eSkgPGVtcGg+T2ZmaWNpYWwgTmFtZXMgZm9yIAorQ2hhcmFjdGVyIFNldHM8L2VtcGg+LAorZWQuIEtlbGQgU2ltb25zZW4gZXQgYWwuCitTZWUgPGxvYyBocmVmPSdmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9pYW5hL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzJz5mdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9pYW5hL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzPC9sb2M+LgorPC9iaWJsPgorCis8YmlibCBpZD0nUkZDMTc2Nicga2V5PSdJRVRGIFJGQyAxNzY2Jz4KK0lFVEYgKEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2UpLgorPGVtcGg+UkZDIDE3NjY6ICBUYWdzIGZvciB0aGUgSWRlbnRpZmljYXRpb24gb2YgTGFuZ3VhZ2VzPC9lbXBoPiwKK2VkLiBILiBBbHZlc3RyYW5kLgorMTk5NS4KKzwvYmlibD4KKworPGJpYmwgaWQ9J0lTTzYzOScga2V5PSdJU08gNjM5Jz4KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTyA2Mzk6MTk4OCAoRSkuCitDb2RlIGZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgbmFtZXMgb2YgbGFuZ3VhZ2VzLjwvZW1waD4KK1tHZW5ldmFdOiAgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yCitTdGFuZGFyZGl6YXRpb24sIDE5ODguPC9iaWJsPgorCis8YmlibCBpZD0nSVNPMzE2Nicga2V5PSdJU08gMzE2Nic+CisoSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbikuCis8ZW1waD5JU08gMzE2Ni0xOjE5OTcgKEUpLgorQ29kZXMgZm9yIHRoZSByZXByZXNlbnRhdGlvbiBvZiBuYW1lcyBvZiBjb3VudHJpZXMgYW5kIHRoZWlyIHN1YmRpdmlzaW9ucyAKKyZtZGFzaDsgUGFydCAxOiBDb3VudHJ5IGNvZGVzPC9lbXBoPgorW0dlbmV2YV06ICBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IKK1N0YW5kYXJkaXphdGlvbiwgMTk5Ny48L2JpYmw+CisKKzxiaWJsIGlkPSdJU08xMDY0Nicga2V5PSdJU08vSUVDIDEwNjQ2Jz5JU08KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTy9JRUMgMTA2NDYtMTk5MyAoRSkuICBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5ICZtZGFzaDsgVW5pdmVyc2FsCitNdWx0aXBsZS1PY3RldCBDb2RlZCBDaGFyYWN0ZXIgU2V0IChVQ1MpICZtZGFzaDsgUGFydCAxOgorQXJjaGl0ZWN0dXJlIGFuZCBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUuPC9lbXBoPgorW0dlbmV2YV06ICBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IKK1N0YW5kYXJkaXphdGlvbiwgMTk5MyAocGx1cyBhbWVuZG1lbnRzIEFNIDEgdGhyb3VnaCBBTSA3KS4KKzwvYmlibD4KKworPGJpYmwgaWQ9J1VuaWNvZGUnIGtleT0nVW5pY29kZSc+VGhlIFVuaWNvZGUgQ29uc29ydGl1bS4KKzxlbXBoPlRoZSBVbmljb2RlIFN0YW5kYXJkLCBWZXJzaW9uIDIuMC48L2VtcGg+CitSZWFkaW5nLCBNYXNzLjogIEFkZGlzb24tV2VzbGV5IERldmVsb3BlcnMgUHJlc3MsIDE5OTYuPC9iaWJsPgorCis8L2JsaXN0PgorCis8L2RpdjI+CisKKzxkaXYyPjxoZWFkPk90aGVyIFJlZmVyZW5jZXM8L2hlYWQ+IAorCis8Ymxpc3Q+CisKKzxiaWJsIGlkPSdBaG8nIGtleT0nQWhvL1VsbG1hbic+QWhvLCBBbGZyZWQgVi4sIAorUmF2aSBTZXRoaSwgYW5kIEplZmZyZXkgRC4gVWxsbWFuLgorPGVtcGg+Q29tcGlsZXJzOiAgUHJpbmNpcGxlcywgVGVjaG5pcXVlcywgYW5kIFRvb2xzPC9lbXBoPi4KK1JlYWRpbmc6ICBBZGRpc29uLVdlc2xleSwgMTk4NiwgcnB0LiBjb3JyLiAxOTg4LjwvYmlibD4KKworPGJpYmwgaWQ9IkJlcm5lcnMtTGVlIiB4bWwtbGluaz0ic2ltcGxlIiBrZXk9IkJlcm5lcnMtTGVlIGV0IGFsLiI+CitCZXJuZXJzLUxlZSwgVC4sIFIuIEZpZWxkaW5nLCBhbmQgTC4gTWFzaW50ZXIuCis8ZW1waD5Vbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIChVUkkpOiAgR2VuZXJpYyBTeW50YXggYW5kCitTZW1hbnRpY3M8L2VtcGg+LgorMTk5Ny4KKyhXb3JrIGluIHByb2dyZXNzOyBzZWUgdXBkYXRlcyB0byBSRkMxNzM4Lik8L2JpYmw+CisKKzxiaWJsIGlkPSdBQksnIGtleT0nQnL8Z2dlbWFubi1LbGVpbic+QnL8Z2dlbWFubi1LbGVpbiwgQW5uZS4KKzxlbXBoPlJlZ3VsYXIgRXhwcmVzc2lvbnMgaW50byBGaW5pdGUgQXV0b21hdGE8L2VtcGg+LgorRXh0ZW5kZWQgYWJzdHJhY3QgaW4gSS4gU2ltb24sIEhyc2cuLCBMQVRJTiAxOTkyLCAKK1MuIDk3LTk4LiBTcHJpbmdlci1WZXJsYWcsIEJlcmxpbiAxOTkyLiAKK0Z1bGwgVmVyc2lvbiBpbiBUaGVvcmV0aWNhbCBDb21wdXRlciBTY2llbmNlIDEyMDogMTk3LTIxMywgMTk5My4KKworPC9iaWJsPgorCis8YmlibCBpZD0nQUJLRFcnIGtleT0nQnL8Z2dlbWFubi1LbGVpbiBhbmQgV29vZCc+QnL8Z2dlbWFubi1LbGVpbiwgQW5uZSwKK2FuZCBEZXJpY2sgV29vZC4KKzxlbXBoPkRldGVybWluaXN0aWMgUmVndWxhciBMYW5ndWFnZXM8L2VtcGg+LgorVW5pdmVyc2l05HQgRnJlaWJ1cmcsIEluc3RpdHV0IGb8ciBJbmZvcm1hdGlrLAorQmVyaWNodCAzOCwgT2t0b2JlciAxOTkxLgorPC9iaWJsPgorCis8YmlibCBpZD0nQ2xhcmsnIGtleT0nQ2xhcmsnPkphbWVzIENsYXJrLgorQ29tcGFyaXNvbiBvZiBTR01MIGFuZCBYTUwuIFNlZQorPGxvYyBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9OT1RFLXNnbWwteG1sLTk3MTIxNSc+aHR0cDovL3d3dy53My5vcmcvVFIvTk9URS1zZ21sLXhtbC05NzEyMTU8L2xvYz4uCis8L2JpYmw+Cis8YmlibCBpZD0iUkZDMTczOCIgeG1sLWxpbms9InNpbXBsZSIga2V5PSJJRVRGIFJGQzE3MzgiPgorSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSkuCis8ZW1waD5SRkMgMTczODogIFVuaWZvcm0gUmVzb3VyY2UgTG9jYXRvcnMgKFVSTCk8L2VtcGg+LCAKK2VkLiBULiBCZXJuZXJzLUxlZSwgTC4gTWFzaW50ZXIsIE0uIE1jQ2FoaWxsLgorMTk5NC4KKzwvYmlibD4KKworPGJpYmwgaWQ9IlJGQzE4MDgiIHhtbC1saW5rPSJzaW1wbGUiIGtleT0iSUVURiBSRkMxODA4Ij4KK0lFVEYgKEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2UpLgorPGVtcGg+UkZDIDE4MDg6ICBSZWxhdGl2ZSBVbmlmb3JtIFJlc291cmNlIExvY2F0b3JzPC9lbXBoPiwgCitlZC4gUi4gRmllbGRpbmcuCisxOTk1LgorPC9iaWJsPgorCis8YmlibCBpZD0iUkZDMjE0MSIgeG1sLWxpbms9InNpbXBsZSIga2V5PSJJRVRGIFJGQzIxNDEiPgorSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSkuCis8ZW1waD5SRkMgMjE0MTogIFVSTiBTeW50YXg8L2VtcGg+LCAKK2VkLiBSLiBNb2F0cy4KKzE5OTcuCis8L2JpYmw+CisKKzxiaWJsIGlkPSdJU084ODc5JyBrZXk9J0lTTyA4ODc5Jz5JU08KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTyA4ODc5OjE5ODYoRSkuICBJbmZvcm1hdGlvbiBwcm9jZXNzaW5nICZtZGFzaDsgVGV4dCBhbmQgT2ZmaWNlCitTeXN0ZW1zICZtZGFzaDsgU3RhbmRhcmQgR2VuZXJhbGl6ZWQgTWFya3VwIExhbmd1YWdlIChTR01MKS48L2VtcGg+ICBGaXJzdAorZWRpdGlvbiAmbWRhc2g7IDE5ODYtMTAtMTUuICBbR2VuZXZhXTogIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvcgorU3RhbmRhcmRpemF0aW9uLCAxOTg2LgorPC9iaWJsPgorCisKKzxiaWJsIGlkPSdJU08xMDc0NCcga2V5PSdJU08vSUVDIDEwNzQ0Jz5JU08KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTy9JRUMgMTA3NDQtMTk5MiAoRSkuICBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5ICZtZGFzaDsKK0h5cGVybWVkaWEvVGltZS1iYXNlZCBTdHJ1Y3R1cmluZyBMYW5ndWFnZSAoSHlUaW1lKS4KKzwvZW1waD4KK1tHZW5ldmFdOiAgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yCitTdGFuZGFyZGl6YXRpb24sIDE5OTIuCis8ZW1waD5FeHRlbmRlZCBGYWNpbGl0aWVzIEFubmV4ZS48L2VtcGg+CitbR2VuZXZhXTogIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvcgorU3RhbmRhcmRpemF0aW9uLCAxOTk2LiAKKzwvYmlibD4KKworCisKKzwvYmxpc3Q+Cis8L2RpdjI+Cis8L2RpdjE+Cis8ZGl2MSBpZD0nQ2hhckNsYXNzZXMnPgorPGhlYWQ+Q2hhcmFjdGVyIENsYXNzZXM8L2hlYWQ+Cis8cD5Gb2xsb3dpbmcgdGhlIGNoYXJhY3RlcmlzdGljcyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIHN0YW5kYXJkLAorY2hhcmFjdGVycyBhcmUgY2xhc3NlZCBhcyBiYXNlIGNoYXJhY3RlcnMgKGFtb25nIG90aGVycywgdGhlc2UKK2NvbnRhaW4gdGhlIGFscGhhYmV0aWMgY2hhcmFjdGVycyBvZiB0aGUgTGF0aW4gYWxwaGFiZXQsIHdpdGhvdXQKK2RpYWNyaXRpY3MpLCBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQgY29tYmluaW5nIGNoYXJhY3RlcnMgKGFtb25nCitvdGhlcnMsIHRoaXMgY2xhc3MgY29udGFpbnMgbW9zdCBkaWFjcml0aWNzKTsgdGhlc2UgY2xhc3NlcyBjb21iaW5lCit0byBmb3JtIHRoZSBjbGFzcyBvZiBsZXR0ZXJzLiAgRGlnaXRzIGFuZCBleHRlbmRlcnMgYXJlCithbHNvIGRpc3Rpbmd1aXNoZWQuCis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9IkNIQVJBQ1RFUlMiPgorPGhlYWQ+Q2hhcmFjdGVyczwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mz0iMyIgcGN3ND0iMTUiPgorPHByb2QgaWQ9Ik5ULUxldHRlciI+PGxocz5MZXR0ZXI8L2xocz4KKzxyaHM+PG50IGRlZj0iTlQtQmFzZUNoYXIiPkJhc2VDaGFyPC9udD4gCit8IDxudCBkZWY9Ik5ULUlkZW9ncmFwaGljIj5JZGVvZ3JhcGhpYzwvbnQ+PC9yaHM+IDwvcHJvZD4KKzxwcm9kIGlkPSdOVC1CYXNlQ2hhcic+PGxocz5CYXNlQ2hhcjwvbGhzPgorPHJocz5bI3gwMDQxLSN4MDA1QV0KK3wmbmJzcDtbI3gwMDYxLSN4MDA3QV0KK3wmbmJzcDtbI3gwMEMwLSN4MDBENl0KK3wmbmJzcDtbI3gwMEQ4LSN4MDBGNl0KK3wmbmJzcDtbI3gwMEY4LSN4MDBGRl0KK3wmbmJzcDtbI3gwMTAwLSN4MDEzMV0KK3wmbmJzcDtbI3gwMTM0LSN4MDEzRV0KK3wmbmJzcDtbI3gwMTQxLSN4MDE0OF0KK3wmbmJzcDtbI3gwMTRBLSN4MDE3RV0KK3wmbmJzcDtbI3gwMTgwLSN4MDFDM10KK3wmbmJzcDtbI3gwMUNELSN4MDFGMF0KK3wmbmJzcDtbI3gwMUY0LSN4MDFGNV0KK3wmbmJzcDtbI3gwMUZBLSN4MDIxN10KK3wmbmJzcDtbI3gwMjUwLSN4MDJBOF0KK3wmbmJzcDtbI3gwMkJCLSN4MDJDMV0KK3wmbmJzcDsjeDAzODYKK3wmbmJzcDtbI3gwMzg4LSN4MDM4QV0KK3wmbmJzcDsjeDAzOEMKK3wmbmJzcDtbI3gwMzhFLSN4MDNBMV0KK3wmbmJzcDtbI3gwM0EzLSN4MDNDRV0KK3wmbmJzcDtbI3gwM0QwLSN4MDNENl0KK3wmbmJzcDsjeDAzREEKK3wmbmJzcDsjeDAzREMKK3wmbmJzcDsjeDAzREUKK3wmbmJzcDsjeDAzRTAKK3wmbmJzcDtbI3gwM0UyLSN4MDNGM10KK3wmbmJzcDtbI3gwNDAxLSN4MDQwQ10KK3wmbmJzcDtbI3gwNDBFLSN4MDQ0Rl0KK3wmbmJzcDtbI3gwNDUxLSN4MDQ1Q10KK3wmbmJzcDtbI3gwNDVFLSN4MDQ4MV0KK3wmbmJzcDtbI3gwNDkwLSN4MDRDNF0KK3wmbmJzcDtbI3gwNEM3LSN4MDRDOF0KK3wmbmJzcDtbI3gwNENCLSN4MDRDQ10KK3wmbmJzcDtbI3gwNEQwLSN4MDRFQl0KK3wmbmJzcDtbI3gwNEVFLSN4MDRGNV0KK3wmbmJzcDtbI3gwNEY4LSN4MDRGOV0KK3wmbmJzcDtbI3gwNTMxLSN4MDU1Nl0KK3wmbmJzcDsjeDA1NTkKK3wmbmJzcDtbI3gwNTYxLSN4MDU4Nl0KK3wmbmJzcDtbI3gwNUQwLSN4MDVFQV0KK3wmbmJzcDtbI3gwNUYwLSN4MDVGMl0KK3wmbmJzcDtbI3gwNjIxLSN4MDYzQV0KK3wmbmJzcDtbI3gwNjQxLSN4MDY0QV0KK3wmbmJzcDtbI3gwNjcxLSN4MDZCN10KK3wmbmJzcDtbI3gwNkJBLSN4MDZCRV0KK3wmbmJzcDtbI3gwNkMwLSN4MDZDRV0KK3wmbmJzcDtbI3gwNkQwLSN4MDZEM10KK3wmbmJzcDsjeDA2RDUKK3wmbmJzcDtbI3gwNkU1LSN4MDZFNl0KK3wmbmJzcDtbI3gwOTA1LSN4MDkzOV0KK3wmbmJzcDsjeDA5M0QKK3wmbmJzcDtbI3gwOTU4LSN4MDk2MV0KK3wmbmJzcDtbI3gwOTg1LSN4MDk4Q10KK3wmbmJzcDtbI3gwOThGLSN4MDk5MF0KK3wmbmJzcDtbI3gwOTkzLSN4MDlBOF0KK3wmbmJzcDtbI3gwOUFBLSN4MDlCMF0KK3wmbmJzcDsjeDA5QjIKK3wmbmJzcDtbI3gwOUI2LSN4MDlCOV0KK3wmbmJzcDtbI3gwOURDLSN4MDlERF0KK3wmbmJzcDtbI3gwOURGLSN4MDlFMV0KK3wmbmJzcDtbI3gwOUYwLSN4MDlGMV0KK3wmbmJzcDtbI3gwQTA1LSN4MEEwQV0KK3wmbmJzcDtbI3gwQTBGLSN4MEExMF0KK3wmbmJzcDtbI3gwQTEzLSN4MEEyOF0KK3wmbmJzcDtbI3gwQTJBLSN4MEEzMF0KK3wmbmJzcDtbI3gwQTMyLSN4MEEzM10KK3wmbmJzcDtbI3gwQTM1LSN4MEEzNl0KK3wmbmJzcDtbI3gwQTM4LSN4MEEzOV0KK3wmbmJzcDtbI3gwQTU5LSN4MEE1Q10KK3wmbmJzcDsjeDBBNUUKK3wmbmJzcDtbI3gwQTcyLSN4MEE3NF0KK3wmbmJzcDtbI3gwQTg1LSN4MEE4Ql0KK3wmbmJzcDsjeDBBOEQKK3wmbmJzcDtbI3gwQThGLSN4MEE5MV0KK3wmbmJzcDtbI3gwQTkzLSN4MEFBOF0KK3wmbmJzcDtbI3gwQUFBLSN4MEFCMF0KK3wmbmJzcDtbI3gwQUIyLSN4MEFCM10KK3wmbmJzcDtbI3gwQUI1LSN4MEFCOV0KK3wmbmJzcDsjeDBBQkQKK3wmbmJzcDsjeDBBRTAKK3wmbmJzcDtbI3gwQjA1LSN4MEIwQ10KK3wmbmJzcDtbI3gwQjBGLSN4MEIxMF0KK3wmbmJzcDtbI3gwQjEzLSN4MEIyOF0KK3wmbmJzcDtbI3gwQjJBLSN4MEIzMF0KK3wmbmJzcDtbI3gwQjMyLSN4MEIzM10KK3wmbmJzcDtbI3gwQjM2LSN4MEIzOV0KK3wmbmJzcDsjeDBCM0QKK3wmbmJzcDtbI3gwQjVDLSN4MEI1RF0KK3wmbmJzcDtbI3gwQjVGLSN4MEI2MV0KK3wmbmJzcDtbI3gwQjg1LSN4MEI4QV0KK3wmbmJzcDtbI3gwQjhFLSN4MEI5MF0KK3wmbmJzcDtbI3gwQjkyLSN4MEI5NV0KK3wmbmJzcDtbI3gwQjk5LSN4MEI5QV0KK3wmbmJzcDsjeDBCOUMKK3wmbmJzcDtbI3gwQjlFLSN4MEI5Rl0KK3wmbmJzcDtbI3gwQkEzLSN4MEJBNF0KK3wmbmJzcDtbI3gwQkE4LSN4MEJBQV0KK3wmbmJzcDtbI3gwQkFFLSN4MEJCNV0KK3wmbmJzcDtbI3gwQkI3LSN4MEJCOV0KK3wmbmJzcDtbI3gwQzA1LSN4MEMwQ10KK3wmbmJzcDtbI3gwQzBFLSN4MEMxMF0KK3wmbmJzcDtbI3gwQzEyLSN4MEMyOF0KK3wmbmJzcDtbI3gwQzJBLSN4MEMzM10KK3wmbmJzcDtbI3gwQzM1LSN4MEMzOV0KK3wmbmJzcDtbI3gwQzYwLSN4MEM2MV0KK3wmbmJzcDtbI3gwQzg1LSN4MEM4Q10KK3wmbmJzcDtbI3gwQzhFLSN4MEM5MF0KK3wmbmJzcDtbI3gwQzkyLSN4MENBOF0KK3wmbmJzcDtbI3gwQ0FBLSN4MENCM10KK3wmbmJzcDtbI3gwQ0I1LSN4MENCOV0KK3wmbmJzcDsjeDBDREUKK3wmbmJzcDtbI3gwQ0UwLSN4MENFMV0KK3wmbmJzcDtbI3gwRDA1LSN4MEQwQ10KK3wmbmJzcDtbI3gwRDBFLSN4MEQxMF0KK3wmbmJzcDtbI3gwRDEyLSN4MEQyOF0KK3wmbmJzcDtbI3gwRDJBLSN4MEQzOV0KK3wmbmJzcDtbI3gwRDYwLSN4MEQ2MV0KK3wmbmJzcDtbI3gwRTAxLSN4MEUyRV0KK3wmbmJzcDsjeDBFMzAKK3wmbmJzcDtbI3gwRTMyLSN4MEUzM10KK3wmbmJzcDtbI3gwRTQwLSN4MEU0NV0KK3wmbmJzcDtbI3gwRTgxLSN4MEU4Ml0KK3wmbmJzcDsjeDBFODQKK3wmbmJzcDtbI3gwRTg3LSN4MEU4OF0KK3wmbmJzcDsjeDBFOEEKK3wmbmJzcDsjeDBFOEQKK3wmbmJzcDtbI3gwRTk0LSN4MEU5N10KK3wmbmJzcDtbI3gwRTk5LSN4MEU5Rl0KK3wmbmJzcDtbI3gwRUExLSN4MEVBM10KK3wmbmJzcDsjeDBFQTUKK3wmbmJzcDsjeDBFQTcKK3wmbmJzcDtbI3gwRUFBLSN4MEVBQl0KK3wmbmJzcDtbI3gwRUFELSN4MEVBRV0KK3wmbmJzcDsjeDBFQjAKK3wmbmJzcDtbI3gwRUIyLSN4MEVCM10KK3wmbmJzcDsjeDBFQkQKK3wmbmJzcDtbI3gwRUMwLSN4MEVDNF0KK3wmbmJzcDtbI3gwRjQwLSN4MEY0N10KK3wmbmJzcDtbI3gwRjQ5LSN4MEY2OV0KK3wmbmJzcDtbI3gxMEEwLSN4MTBDNV0KK3wmbmJzcDtbI3gxMEQwLSN4MTBGNl0KK3wmbmJzcDsjeDExMDAKK3wmbmJzcDtbI3gxMTAyLSN4MTEwM10KK3wmbmJzcDtbI3gxMTA1LSN4MTEwN10KK3wmbmJzcDsjeDExMDkKK3wmbmJzcDtbI3gxMTBCLSN4MTEwQ10KK3wmbmJzcDtbI3gxMTBFLSN4MTExMl0KK3wmbmJzcDsjeDExM0MKK3wmbmJzcDsjeDExM0UKK3wmbmJzcDsjeDExNDAKK3wmbmJzcDsjeDExNEMKK3wmbmJzcDsjeDExNEUKK3wmbmJzcDsjeDExNTAKK3wmbmJzcDtbI3gxMTU0LSN4MTE1NV0KK3wmbmJzcDsjeDExNTkKK3wmbmJzcDtbI3gxMTVGLSN4MTE2MV0KK3wmbmJzcDsjeDExNjMKK3wmbmJzcDsjeDExNjUKK3wmbmJzcDsjeDExNjcKK3wmbmJzcDsjeDExNjkKK3wmbmJzcDtbI3gxMTZELSN4MTE2RV0KK3wmbmJzcDtbI3gxMTcyLSN4MTE3M10KK3wmbmJzcDsjeDExNzUKK3wmbmJzcDsjeDExOUUKK3wmbmJzcDsjeDExQTgKK3wmbmJzcDsjeDExQUIKK3wmbmJzcDtbI3gxMUFFLSN4MTFBRl0KK3wmbmJzcDtbI3gxMUI3LSN4MTFCOF0KK3wmbmJzcDsjeDExQkEKK3wmbmJzcDtbI3gxMUJDLSN4MTFDMl0KK3wmbmJzcDsjeDExRUIKK3wmbmJzcDsjeDExRjAKK3wmbmJzcDsjeDExRjkKK3wmbmJzcDtbI3gxRTAwLSN4MUU5Ql0KK3wmbmJzcDtbI3gxRUEwLSN4MUVGOV0KK3wmbmJzcDtbI3gxRjAwLSN4MUYxNV0KK3wmbmJzcDtbI3gxRjE4LSN4MUYxRF0KK3wmbmJzcDtbI3gxRjIwLSN4MUY0NV0KK3wmbmJzcDtbI3gxRjQ4LSN4MUY0RF0KK3wmbmJzcDtbI3gxRjUwLSN4MUY1N10KK3wmbmJzcDsjeDFGNTkKK3wmbmJzcDsjeDFGNUIKK3wmbmJzcDsjeDFGNUQKK3wmbmJzcDtbI3gxRjVGLSN4MUY3RF0KK3wmbmJzcDtbI3gxRjgwLSN4MUZCNF0KK3wmbmJzcDtbI3gxRkI2LSN4MUZCQ10KK3wmbmJzcDsjeDFGQkUKK3wmbmJzcDtbI3gxRkMyLSN4MUZDNF0KK3wmbmJzcDtbI3gxRkM2LSN4MUZDQ10KK3wmbmJzcDtbI3gxRkQwLSN4MUZEM10KK3wmbmJzcDtbI3gxRkQ2LSN4MUZEQl0KK3wmbmJzcDtbI3gxRkUwLSN4MUZFQ10KK3wmbmJzcDtbI3gxRkYyLSN4MUZGNF0KK3wmbmJzcDtbI3gxRkY2LSN4MUZGQ10KK3wmbmJzcDsjeDIxMjYKK3wmbmJzcDtbI3gyMTJBLSN4MjEyQl0KK3wmbmJzcDsjeDIxMkUKK3wmbmJzcDtbI3gyMTgwLSN4MjE4Ml0KK3wmbmJzcDtbI3gzMDQxLSN4MzA5NF0KK3wmbmJzcDtbI3gzMEExLSN4MzBGQV0KK3wmbmJzcDtbI3gzMTA1LSN4MzEyQ10KK3wmbmJzcDtbI3hBQzAwLSN4RDdBM10KKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1JZGVvZ3JhcGhpYyc+PGxocz5JZGVvZ3JhcGhpYzwvbGhzPgorPHJocz5bI3g0RTAwLSN4OUZBNV0KK3wmbmJzcDsjeDMwMDcKK3wmbmJzcDtbI3gzMDIxLSN4MzAyOV0KKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1Db21iaW5pbmdDaGFyJz48bGhzPkNvbWJpbmluZ0NoYXI8L2xocz4KKzxyaHM+WyN4MDMwMC0jeDAzNDVdCit8Jm5ic3A7WyN4MDM2MC0jeDAzNjFdCit8Jm5ic3A7WyN4MDQ4My0jeDA0ODZdCit8Jm5ic3A7WyN4MDU5MS0jeDA1QTFdCit8Jm5ic3A7WyN4MDVBMy0jeDA1QjldCit8Jm5ic3A7WyN4MDVCQi0jeDA1QkRdCit8Jm5ic3A7I3gwNUJGCit8Jm5ic3A7WyN4MDVDMS0jeDA1QzJdCit8Jm5ic3A7I3gwNUM0Cit8Jm5ic3A7WyN4MDY0Qi0jeDA2NTJdCit8Jm5ic3A7I3gwNjcwCit8Jm5ic3A7WyN4MDZENi0jeDA2RENdCit8Jm5ic3A7WyN4MDZERC0jeDA2REZdCit8Jm5ic3A7WyN4MDZFMC0jeDA2RTRdCit8Jm5ic3A7WyN4MDZFNy0jeDA2RThdCit8Jm5ic3A7WyN4MDZFQS0jeDA2RURdCit8Jm5ic3A7WyN4MDkwMS0jeDA5MDNdCit8Jm5ic3A7I3gwOTNDCit8Jm5ic3A7WyN4MDkzRS0jeDA5NENdCit8Jm5ic3A7I3gwOTRECit8Jm5ic3A7WyN4MDk1MS0jeDA5NTRdCit8Jm5ic3A7WyN4MDk2Mi0jeDA5NjNdCit8Jm5ic3A7WyN4MDk4MS0jeDA5ODNdCit8Jm5ic3A7I3gwOUJDCit8Jm5ic3A7I3gwOUJFCit8Jm5ic3A7I3gwOUJGCit8Jm5ic3A7WyN4MDlDMC0jeDA5QzRdCit8Jm5ic3A7WyN4MDlDNy0jeDA5QzhdCit8Jm5ic3A7WyN4MDlDQi0jeDA5Q0RdCit8Jm5ic3A7I3gwOUQ3Cit8Jm5ic3A7WyN4MDlFMi0jeDA5RTNdCit8Jm5ic3A7I3gwQTAyCit8Jm5ic3A7I3gwQTNDCit8Jm5ic3A7I3gwQTNFCit8Jm5ic3A7I3gwQTNGCit8Jm5ic3A7WyN4MEE0MC0jeDBBNDJdCit8Jm5ic3A7WyN4MEE0Ny0jeDBBNDhdCit8Jm5ic3A7WyN4MEE0Qi0jeDBBNERdCit8Jm5ic3A7WyN4MEE3MC0jeDBBNzFdCit8Jm5ic3A7WyN4MEE4MS0jeDBBODNdCit8Jm5ic3A7I3gwQUJDCit8Jm5ic3A7WyN4MEFCRS0jeDBBQzVdCit8Jm5ic3A7WyN4MEFDNy0jeDBBQzldCit8Jm5ic3A7WyN4MEFDQi0jeDBBQ0RdCit8Jm5ic3A7WyN4MEIwMS0jeDBCMDNdCit8Jm5ic3A7I3gwQjNDCit8Jm5ic3A7WyN4MEIzRS0jeDBCNDNdCit8Jm5ic3A7WyN4MEI0Ny0jeDBCNDhdCit8Jm5ic3A7WyN4MEI0Qi0jeDBCNERdCit8Jm5ic3A7WyN4MEI1Ni0jeDBCNTddCit8Jm5ic3A7WyN4MEI4Mi0jeDBCODNdCit8Jm5ic3A7WyN4MEJCRS0jeDBCQzJdCit8Jm5ic3A7WyN4MEJDNi0jeDBCQzhdCit8Jm5ic3A7WyN4MEJDQS0jeDBCQ0RdCit8Jm5ic3A7I3gwQkQ3Cit8Jm5ic3A7WyN4MEMwMS0jeDBDMDNdCit8Jm5ic3A7WyN4MEMzRS0jeDBDNDRdCit8Jm5ic3A7WyN4MEM0Ni0jeDBDNDhdCit8Jm5ic3A7WyN4MEM0QS0jeDBDNERdCit8Jm5ic3A7WyN4MEM1NS0jeDBDNTZdCit8Jm5ic3A7WyN4MEM4Mi0jeDBDODNdCit8Jm5ic3A7WyN4MENCRS0jeDBDQzRdCit8Jm5ic3A7WyN4MENDNi0jeDBDQzhdCit8Jm5ic3A7WyN4MENDQS0jeDBDQ0RdCit8Jm5ic3A7WyN4MENENS0jeDBDRDZdCit8Jm5ic3A7WyN4MEQwMi0jeDBEMDNdCit8Jm5ic3A7WyN4MEQzRS0jeDBENDNdCit8Jm5ic3A7WyN4MEQ0Ni0jeDBENDhdCit8Jm5ic3A7WyN4MEQ0QS0jeDBENERdCit8Jm5ic3A7I3gwRDU3Cit8Jm5ic3A7I3gwRTMxCit8Jm5ic3A7WyN4MEUzNC0jeDBFM0FdCit8Jm5ic3A7WyN4MEU0Ny0jeDBFNEVdCit8Jm5ic3A7I3gwRUIxCit8Jm5ic3A7WyN4MEVCNC0jeDBFQjldCit8Jm5ic3A7WyN4MEVCQi0jeDBFQkNdCit8Jm5ic3A7WyN4MEVDOC0jeDBFQ0RdCit8Jm5ic3A7WyN4MEYxOC0jeDBGMTldCit8Jm5ic3A7I3gwRjM1Cit8Jm5ic3A7I3gwRjM3Cit8Jm5ic3A7I3gwRjM5Cit8Jm5ic3A7I3gwRjNFCit8Jm5ic3A7I3gwRjNGCit8Jm5ic3A7WyN4MEY3MS0jeDBGODRdCit8Jm5ic3A7WyN4MEY4Ni0jeDBGOEJdCit8Jm5ic3A7WyN4MEY5MC0jeDBGOTVdCit8Jm5ic3A7I3gwRjk3Cit8Jm5ic3A7WyN4MEY5OS0jeDBGQURdCit8Jm5ic3A7WyN4MEZCMS0jeDBGQjddCit8Jm5ic3A7I3gwRkI5Cit8Jm5ic3A7WyN4MjBEMC0jeDIwRENdCit8Jm5ic3A7I3gyMEUxCit8Jm5ic3A7WyN4MzAyQS0jeDMwMkZdCit8Jm5ic3A7I3gzMDk5Cit8Jm5ic3A7I3gzMDlBCis8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtRGlnaXQnPjxsaHM+RGlnaXQ8L2xocz4KKzxyaHM+WyN4MDAzMC0jeDAwMzldCit8Jm5ic3A7WyN4MDY2MC0jeDA2NjldCit8Jm5ic3A7WyN4MDZGMC0jeDA2RjldCit8Jm5ic3A7WyN4MDk2Ni0jeDA5NkZdCit8Jm5ic3A7WyN4MDlFNi0jeDA5RUZdCit8Jm5ic3A7WyN4MEE2Ni0jeDBBNkZdCit8Jm5ic3A7WyN4MEFFNi0jeDBBRUZdCit8Jm5ic3A7WyN4MEI2Ni0jeDBCNkZdCit8Jm5ic3A7WyN4MEJFNy0jeDBCRUZdCit8Jm5ic3A7WyN4MEM2Ni0jeDBDNkZdCit8Jm5ic3A7WyN4MENFNi0jeDBDRUZdCit8Jm5ic3A7WyN4MEQ2Ni0jeDBENkZdCit8Jm5ic3A7WyN4MEU1MC0jeDBFNTldCit8Jm5ic3A7WyN4MEVEMC0jeDBFRDldCit8Jm5ic3A7WyN4MEYyMC0jeDBGMjldCis8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtRXh0ZW5kZXInPjxsaHM+RXh0ZW5kZXI8L2xocz4KKzxyaHM+I3gwMEI3Cit8Jm5ic3A7I3gwMkQwCit8Jm5ic3A7I3gwMkQxCit8Jm5ic3A7I3gwMzg3Cit8Jm5ic3A7I3gwNjQwCit8Jm5ic3A7I3gwRTQ2Cit8Jm5ic3A7I3gwRUM2Cit8Jm5ic3A7I3gzMDA1Cit8Jm5ic3A7WyN4MzAzMS0jeDMwMzVdCit8Jm5ic3A7WyN4MzA5RC0jeDMwOUVdCit8Jm5ic3A7WyN4MzBGQy0jeDMwRkVdCis8L3Jocz48L3Byb2Q+CisKKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvcD4KKzxwPlRoZSBjaGFyYWN0ZXIgY2xhc3NlcyBkZWZpbmVkIGhlcmUgY2FuIGJlIGRlcml2ZWQgZnJvbSB0aGUKK1VuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlIGFzIGZvbGxvd3M6Cis8dWxpc3Q+Cis8aXRlbT4KKzxwPk5hbWUgc3RhcnQgY2hhcmFjdGVycyBtdXN0IGhhdmUgb25lIG9mIHRoZSBjYXRlZ29yaWVzIExsLCBMdSwKK0xvLCBMdCwgTmwuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5OYW1lIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBOYW1lLXN0YXJ0IGNoYXJhY3RlcnMgCittdXN0IGhhdmUgb25lIG9mIHRoZSBjYXRlZ29yaWVzIE1jLCBNZSwgTW4sIExtLCBvciBOZC48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgaW4gdGhlIGNvbXBhdGliaWxpdHkgYXJlYSAoaS5lLiB3aXRoIGNoYXJhY3RlciBjb2RlCitncmVhdGVyIHRoYW4gI3hGOTAwIGFuZCBsZXNzIHRoYW4gI3hGRkZFKSBhcmUgbm90IGFsbG93ZWQgaW4gWE1MCituYW1lcy48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgd2hpY2ggaGF2ZSBhIGZvbnQgb3IgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIChpLmUuIHRob3NlCit3aXRoIGEgImNvbXBhdGliaWxpdHkgZm9ybWF0dGluZyB0YWciIGluIGZpZWxkIDUgb2YgdGhlIGRhdGFiYXNlIC0tCittYXJrZWQgYnkgZmllbGQgNSBiZWdpbm5pbmcgd2l0aCBhICImbHQ7IikgYXJlIG5vdCBhbGxvd2VkLjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+VGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGFyZSB0cmVhdGVkIGFzIG5hbWUtc3RhcnQgY2hhcmFjdGVycworcmF0aGVyIHRoYW4gbmFtZSBjaGFyYWN0ZXJzLCBiZWNhdXNlIHRoZSBwcm9wZXJ0eSBmaWxlIGNsYXNzaWZpZXMKK3RoZW0gYXMgQWxwaGFiZXRpYzogIFsjeDAyQkItI3gwMkMxXSwgI3gwNTU5LCAjeDA2RTUsICN4MDZFNi48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgI3gyMERELSN4MjBFMCBhcmUgZXhjbHVkZWQgKGluIGFjY29yZGFuY2Ugd2l0aCAKK1VuaWNvZGUsIHNlY3Rpb24gNS4xNCkuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5DaGFyYWN0ZXIgI3gwMEI3IGlzIGNsYXNzaWZpZWQgYXMgYW4gZXh0ZW5kZXIsIGJlY2F1c2UgdGhlCitwcm9wZXJ0eSBsaXN0IHNvIGlkZW50aWZpZXMgaXQuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5DaGFyYWN0ZXIgI3gwMzg3IGlzIGFkZGVkIGFzIGEgbmFtZSBjaGFyYWN0ZXIsIGJlY2F1c2UgI3gwMEI3CitpcyBpdHMgY2Fub25pY2FsIGVxdWl2YWxlbnQuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5DaGFyYWN0ZXJzICc6JyBhbmQgJ18nIGFyZSBhbGxvd2VkIGFzIG5hbWUtc3RhcnQgY2hhcmFjdGVycy48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgJy0nIGFuZCAnLicgYXJlIGFsbG93ZWQgYXMgbmFtZSBjaGFyYWN0ZXJzLjwvcD4KKzwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8L2RpdjE+Cis8aW5mb3JtLWRpdjEgaWQ9InNlYy14bWwtYW5kLXNnbWwiPgorPGhlYWQ+WE1MIGFuZCBTR01MPC9oZWFkPgorIAorPHA+WE1MIGlzIGRlc2lnbmVkIHRvIGJlIGEgc3Vic2V0IG9mIFNHTUwsIGluIHRoYXQgZXZlcnkKKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkPC90ZXJtcmVmPiBYTUwgZG9jdW1lbnQgc2hvdWxkIGFsc28gYmUgYQorY29uZm9ybWFudCBTR01MIGRvY3VtZW50LgorRm9yIGEgZGV0YWlsZWQgY29tcGFyaXNvbiBvZiB0aGUgYWRkaXRpb25hbCByZXN0cmljdGlvbnMgdGhhdCBYTUwgcGxhY2VzIG9uCitkb2N1bWVudHMgYmV5b25kIHRob3NlIG9mIFNHTUwsIHNlZSA8YmlicmVmIHJlZj0nQ2xhcmsnLz4uCis8L3A+Cis8L2luZm9ybS1kaXYxPgorPGluZm9ybS1kaXYxIGlkPSJzZWMtZW50ZXhwYW5kIj4KKzxoZWFkPkV4cGFuc2lvbiBvZiBFbnRpdHkgYW5kIENoYXJhY3RlciBSZWZlcmVuY2VzPC9oZWFkPgorPHA+VGhpcyBhcHBlbmRpeCBjb250YWlucyBzb21lIGV4YW1wbGVzIGlsbHVzdHJhdGluZyB0aGUKK3NlcXVlbmNlIG9mIGVudGl0eS0gYW5kIGNoYXJhY3Rlci1yZWZlcmVuY2UgcmVjb2duaXRpb24gYW5kCitleHBhbnNpb24sIGFzIHNwZWNpZmllZCBpbiA8c3BlY3JlZiByZWY9J2VudHByb2MnLz4uPC9wPgorPHA+CitJZiB0aGUgRFREIGNvbnRhaW5zIHRoZSBkZWNsYXJhdGlvbiAKKzxlZz48IVtDREFUQVs8IUVOVElUWSBleGFtcGxlICI8cD5BbiBhbXBlcnNhbmQgKCYjMzg7IzM4OykgbWF5IGJlIGVzY2FwZWQKK251bWVyaWNhbGx5ICgmIzM4OyMzODsjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKygmYW1wO2FtcDspLjwvcD4iID4KK11dPjwvZWc+Cit0aGVuIHRoZSBYTUwgcHJvY2Vzc29yIHdpbGwgcmVjb2duaXplIHRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlcyAKK3doZW4gaXQgcGFyc2VzIHRoZSBlbnRpdHkgZGVjbGFyYXRpb24sIGFuZCByZXNvbHZlIHRoZW0gYmVmb3JlIAorc3RvcmluZyB0aGUgZm9sbG93aW5nIHN0cmluZyBhcyB0aGUKK3ZhbHVlIG9mIHRoZSBlbnRpdHkgIjxjb2RlPmV4YW1wbGU8L2NvZGU+IjoKKzxlZz48IVtDREFUQVs8cD5BbiBhbXBlcnNhbmQgKCYjMzg7KSBtYXkgYmUgZXNjYXBlZAorbnVtZXJpY2FsbHkgKCYjMzg7IzM4Oykgb3Igd2l0aCBhIGdlbmVyYWwgZW50aXR5CisoJmFtcDthbXA7KS48L3A+CitdXT48L2VnPgorQSByZWZlcmVuY2UgaW4gdGhlIGRvY3VtZW50IHRvICI8Y29kZT4mYW1wO2V4YW1wbGU7PC9jb2RlPiIgCit3aWxsIGNhdXNlIHRoZSB0ZXh0IHRvIGJlIHJlcGFyc2VkLCBhdCB3aGljaCB0aW1lIHRoZSAKK3N0YXJ0LSBhbmQgZW5kLXRhZ3Mgb2YgdGhlICI8Y29kZT5wPC9jb2RlPiIgZWxlbWVudCB3aWxsIGJlIHJlY29nbml6ZWQgCithbmQgdGhlIHRocmVlIHJlZmVyZW5jZXMgd2lsbCBiZSByZWNvZ25pemVkIGFuZCBleHBhbmRlZCwgCityZXN1bHRpbmcgaW4gYSAiPGNvZGU+cDwvY29kZT4iIGVsZW1lbnQgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnQKKyhhbGwgZGF0YSwgbm8gZGVsaW1pdGVycyBvciBtYXJrdXApOgorPGVnPjwhW0NEQVRBW0FuIGFtcGVyc2FuZCAoJikgbWF5IGJlIGVzY2FwZWQKK251bWVyaWNhbGx5ICgmIzM4Oykgb3Igd2l0aCBhIGdlbmVyYWwgZW50aXR5CisoJmFtcDspLgorXV0+PC9lZz4KKzwvcD4KKzxwPkEgbW9yZSBjb21wbGV4IGV4YW1wbGUgd2lsbCBpbGx1c3RyYXRlIHRoZSBydWxlcyBhbmQgdGhlaXIKK2VmZmVjdHMgZnVsbHkuICBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIHRoZSBsaW5lIG51bWJlcnMgYXJlCitzb2xlbHkgZm9yIHJlZmVyZW5jZS4KKzxlZz48IVtDREFUQVsxIDw/eG1sIHZlcnNpb249JzEuMCc/PgorMiA8IURPQ1RZUEUgdGVzdCBbCiszIDwhRUxFTUVOVCB0ZXN0ICgjUENEQVRBKSA+Cis0IDwhRU5USVRZICUgeHggJyYjMzc7eno7Jz4KKzUgPCFFTlRJVFkgJSB6eiAnJiM2MDshRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID4nID4KKzYgJXh4OworNyBdPgorOCA8dGVzdD5UaGlzIHNhbXBsZSBzaG93cyBhICZ0cmlja3k7IG1ldGhvZC48L3Rlc3Q+CitdXT48L2VnPgorVGhpcyBwcm9kdWNlcyB0aGUgZm9sbG93aW5nOgorPHVsaXN0IHNwYWNpbmc9ImNvbXBhY3QiPgorPGl0ZW0+PHA+aW4gbGluZSA0LCB0aGUgcmVmZXJlbmNlIHRvIGNoYXJhY3RlciAzNyBpcyBleHBhbmRlZCBpbW1lZGlhdGVseSwKK2FuZCB0aGUgcGFyYW1ldGVyIGVudGl0eSAiPGNvZGU+eHg8L2NvZGU+IiBpcyBzdG9yZWQgaW4gdGhlIHN5bWJvbAordGFibGUgd2l0aCB0aGUgdmFsdWUgIjxjb2RlPiV6ejs8L2NvZGU+Ii4gIFNpbmNlIHRoZSByZXBsYWNlbWVudCB0ZXh0CitpcyBub3QgcmVzY2FubmVkLCB0aGUgcmVmZXJlbmNlIHRvIHBhcmFtZXRlciBlbnRpdHkgIjxjb2RlPnp6PC9jb2RlPiIKK2lzIG5vdCByZWNvZ25pemVkLiAgKEFuZCBpdCB3b3VsZCBiZSBhbiBlcnJvciBpZiBpdCB3ZXJlLCBzaW5jZQorIjxjb2RlPnp6PC9jb2RlPiIgaXMgbm90IHlldCBkZWNsYXJlZC4pPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmluIGxpbmUgNSwgdGhlIGNoYXJhY3RlciByZWZlcmVuY2UgIjxjb2RlPiZhbXA7IzYwOzwvY29kZT4iIGlzCitleHBhbmRlZCBpbW1lZGlhdGVseSBhbmQgdGhlIHBhcmFtZXRlciBlbnRpdHkgIjxjb2RlPnp6PC9jb2RlPiIgaXMKK3N0b3JlZCB3aXRoIHRoZSByZXBsYWNlbWVudCB0ZXh0IAorIjxjb2RlPiZsdDshRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID48L2NvZGU+IiwKK3doaWNoIGlzIGEgd2VsbC1mb3JtZWQgZW50aXR5IGRlY2xhcmF0aW9uLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5pbiBsaW5lIDYsIHRoZSByZWZlcmVuY2UgdG8gIjxjb2RlPnh4PC9jb2RlPiIgaXMgcmVjb2duaXplZCwKK2FuZCB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiAiPGNvZGU+eHg8L2NvZGU+IiAobmFtZWx5IAorIjxjb2RlPiV6ejs8L2NvZGU+IikgaXMgcGFyc2VkLiAgVGhlIHJlZmVyZW5jZSB0byAiPGNvZGU+eno8L2NvZGU+IgoraXMgcmVjb2duaXplZCBpbiBpdHMgdHVybiwgYW5kIGl0cyByZXBsYWNlbWVudCB0ZXh0IAorKCI8Y29kZT4mbHQ7IUVOVElUWSB0cmlja3kgImVycm9yLXByb25lIiA+PC9jb2RlPiIpIGlzIHBhcnNlZC4KK1RoZSBnZW5lcmFsIGVudGl0eSAiPGNvZGU+dHJpY2t5PC9jb2RlPiIgaGFzIG5vdyBiZWVuCitkZWNsYXJlZCwgd2l0aCB0aGUgcmVwbGFjZW1lbnQgdGV4dCAiPGNvZGU+ZXJyb3ItcHJvbmU8L2NvZGU+Ii48L3A+PC9pdGVtPgorPGl0ZW0+PHA+CitpbiBsaW5lIDgsIHRoZSByZWZlcmVuY2UgdG8gdGhlIGdlbmVyYWwgZW50aXR5ICI8Y29kZT50cmlja3k8L2NvZGU+IiBpcworcmVjb2duaXplZCwgYW5kIGl0IGlzIGV4cGFuZGVkLCBzbyB0aGUgZnVsbCBjb250ZW50IG9mIHRoZQorIjxjb2RlPnRlc3Q8L2NvZGU+IiBlbGVtZW50IGlzIHRoZSBzZWxmLWRlc2NyaWJpbmcgKGFuZCB1bmdyYW1tYXRpY2FsKSBzdHJpbmcKKzxlbXBoPlRoaXMgc2FtcGxlIHNob3dzIGEgZXJyb3ItcHJvbmUgbWV0aG9kLjwvZW1waD4KKzwvcD48L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPC9pbmZvcm0tZGl2MT4gCis8aW5mb3JtLWRpdjEgaWQ9ImRldGVybWluaXNtIj4KKzxoZWFkPkRldGVybWluaXN0aWMgQ29udGVudCBNb2RlbHM8L2hlYWQ+Cis8cD48dGVybXJlZiBkZWY9J2R0LWNvbXBhdCc+Rm9yIGNvbXBhdGliaWxpdHk8L3Rlcm1yZWY+LCBpdCBpcworcmVxdWlyZWQKK3RoYXQgY29udGVudCBtb2RlbHMgaW4gZWxlbWVudCB0eXBlIGRlY2xhcmF0aW9ucyBiZSBkZXRlcm1pbmlzdGljLiAgCis8L3A+Cis8IS0tIEZJTkFMIEVESVQ6ICBXZWJTR01MIGFsbG93cyBhbWJpZ3VpdHk/IC0tPgorPHA+U0dNTAorcmVxdWlyZXMgZGV0ZXJtaW5pc3RpYyBjb250ZW50IG1vZGVscyAoaXQgY2FsbHMgdGhlbQorInVuYW1iaWd1b3VzIik7IFhNTCBwcm9jZXNzb3JzIGJ1aWx0IHVzaW5nIFNHTUwgc3lzdGVtcyBtYXkKK2ZsYWcgbm9uLWRldGVybWluaXN0aWMgY29udGVudCBtb2RlbHMgYXMgZXJyb3JzLjwvcD4KKzxwPkZvciBleGFtcGxlLCB0aGUgY29udGVudCBtb2RlbCA8Y29kZT4oKGIsIGMpIHwgKGIsIGQpKTwvY29kZT4gaXMKK25vbi1kZXRlcm1pbmlzdGljLCBiZWNhdXNlIGdpdmVuIGFuIGluaXRpYWwgPGNvZGU+YjwvY29kZT4gdGhlIHBhcnNlcgorY2Fubm90IGtub3cgd2hpY2ggPGNvZGU+YjwvY29kZT4gaW4gdGhlIG1vZGVsIGlzIGJlaW5nIG1hdGNoZWQgd2l0aG91dAorbG9va2luZyBhaGVhZCB0byBzZWUgd2hpY2ggZWxlbWVudCBmb2xsb3dzIHRoZSA8Y29kZT5iPC9jb2RlPi4KK0luIHRoaXMgY2FzZSwgdGhlIHR3byByZWZlcmVuY2VzIHRvCis8Y29kZT5iPC9jb2RlPiBjYW4gYmUgY29sbGFwc2VkIAoraW50byBhIHNpbmdsZSByZWZlcmVuY2UsIG1ha2luZyB0aGUgbW9kZWwgcmVhZAorPGNvZGU+KGIsIChjIHwgZCkpPC9jb2RlPi4gIEFuIGluaXRpYWwgPGNvZGU+YjwvY29kZT4gbm93IGNsZWFybHkKK21hdGNoZXMgb25seSBhIHNpbmdsZSBuYW1lIGluIHRoZSBjb250ZW50IG1vZGVsLiAgVGhlIHBhcnNlciBkb2Vzbid0CituZWVkIHRvIGxvb2sgYWhlYWQgdG8gc2VlIHdoYXQgZm9sbG93czsgZWl0aGVyIDxjb2RlPmM8L2NvZGU+IG9yCis8Y29kZT5kPC9jb2RlPiB3b3VsZCBiZSBhY2NlcHRlZC48L3A+Cis8cD5Nb3JlIGZvcm1hbGx5OiAgYSBmaW5pdGUgc3RhdGUgYXV0b21hdG9uIG1heSBiZSBjb25zdHJ1Y3RlZCBmcm9tIHRoZQorY29udGVudCBtb2RlbCB1c2luZyB0aGUgc3RhbmRhcmQgYWxnb3JpdGhtcywgZS5nLiBhbGdvcml0aG0gMy41IAoraW4gc2VjdGlvbiAzLjkKK29mIEFobywgU2V0aGksIGFuZCBVbGxtYW4gPGJpYnJlZiByZWY9J0FobycvPi4KK0luIG1hbnkgc3VjaCBhbGdvcml0aG1zLCBhIGZvbGxvdyBzZXQgaXMgY29uc3RydWN0ZWQgZm9yIGVhY2ggCitwb3NpdGlvbiBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uIChpLmUuLCBlYWNoIGxlYWYgCitub2RlIGluIHRoZSAKK3N5bnRheCB0cmVlIGZvciB0aGUgcmVndWxhciBleHByZXNzaW9uKTsKK2lmIGFueSBwb3NpdGlvbiBoYXMgYSBmb2xsb3cgc2V0IGluIHdoaWNoIAorbW9yZSB0aGFuIG9uZSBmb2xsb3dpbmcgcG9zaXRpb24gaXMgCitsYWJlbGVkIHdpdGggdGhlIHNhbWUgZWxlbWVudCB0eXBlIG5hbWUsIAordGhlbiB0aGUgY29udGVudCBtb2RlbCBpcyBpbiBlcnJvcgorYW5kIG1heSBiZSByZXBvcnRlZCBhcyBhbiBlcnJvci4KKzwvcD4KKzxwPkFsZ29yaXRobXMgZXhpc3Qgd2hpY2ggYWxsb3cgbWFueSBidXQgbm90IGFsbCBub24tZGV0ZXJtaW5pc3RpYworY29udGVudCBtb2RlbHMgdG8gYmUgcmVkdWNlZCBhdXRvbWF0aWNhbGx5IHRvIGVxdWl2YWxlbnQgZGV0ZXJtaW5pc3RpYworbW9kZWxzOyBzZWUgQnL8Z2dlbWFubi1LbGVpbiAxOTkxIDxiaWJyZWYgcmVmPSdBQksnLz4uPC9wPgorPC9pbmZvcm0tZGl2MT4KKzxpbmZvcm0tZGl2MSBpZD0ic2VjLWd1ZXNzaW5nIj4KKzxoZWFkPkF1dG9kZXRlY3Rpb24gb2YgQ2hhcmFjdGVyIEVuY29kaW5nczwvaGVhZD4KKzxwPlRoZSBYTUwgZW5jb2RpbmcgZGVjbGFyYXRpb24gZnVuY3Rpb25zIGFzIGFuIGludGVybmFsIGxhYmVsIG9uIGVhY2gKK2VudGl0eSwgaW5kaWNhdGluZyB3aGljaCBjaGFyYWN0ZXIgZW5jb2RpbmcgaXMgaW4gdXNlLiAgQmVmb3JlIGFuIFhNTAorcHJvY2Vzc29yIGNhbiByZWFkIHRoZSBpbnRlcm5hbCBsYWJlbCwgaG93ZXZlciwgaXQgYXBwYXJlbnRseSBoYXMgdG8KK2tub3cgd2hhdCBjaGFyYWN0ZXIgZW5jb2RpbmcgaXMgaW4gdXNlJm1kYXNoO3doaWNoIGlzIHdoYXQgdGhlIGludGVybmFsIGxhYmVsCitpcyB0cnlpbmcgdG8gaW5kaWNhdGUuICBJbiB0aGUgZ2VuZXJhbCBjYXNlLCB0aGlzIGlzIGEgaG9wZWxlc3MKK3NpdHVhdGlvbi4gSXQgaXMgbm90IGVudGlyZWx5IGhvcGVsZXNzIGluIFhNTCwgaG93ZXZlciwgYmVjYXVzZSBYTUwKK2xpbWl0cyB0aGUgZ2VuZXJhbCBjYXNlIGluIHR3byB3YXlzOiAgZWFjaCBpbXBsZW1lbnRhdGlvbiBpcyBhc3N1bWVkCit0byBzdXBwb3J0IG9ubHkgYSAgZmluaXRlIHNldCBvZiBjaGFyYWN0ZXIgZW5jb2RpbmdzLCBhbmQgdGhlIFhNTAorZW5jb2RpbmcgZGVjbGFyYXRpb24gaXMgcmVzdHJpY3RlZCBpbiBwb3NpdGlvbiBhbmQgY29udGVudCBpbiBvcmRlciB0bworbWFrZSBpdCBmZWFzaWJsZSB0byBhdXRvZGV0ZWN0IHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgaW4gdXNlIGluIGVhY2gKK2VudGl0eSBpbiBub3JtYWwgY2FzZXMuICBBbHNvLCBpbiBtYW55IGNhc2VzIG90aGVyIHNvdXJjZXMgb2YgaW5mb3JtYXRpb24KK2FyZSBhdmFpbGFibGUgaW4gYWRkaXRpb24gdG8gdGhlIFhNTCBkYXRhIHN0cmVhbSBpdHNlbGYuICAKK1R3byBjYXNlcyBtYXkgYmUgZGlzdGluZ3Vpc2hlZCwgCitkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgWE1MIGVudGl0eSBpcyBwcmVzZW50ZWQgdG8gdGhlCitwcm9jZXNzb3Igd2l0aG91dCwgb3Igd2l0aCwgYW55IGFjY29tcGFueWluZworKGV4dGVybmFsKSBpbmZvcm1hdGlvbi4gIFdlIGNvbnNpZGVyIHRoZSBmaXJzdCBjYXNlIGZpcnN0LgorPC9wPgorPHA+CitCZWNhdXNlIGVhY2ggWE1MIGVudGl0eSBub3QgaW4gVVRGLTggb3IgVVRGLTE2IGZvcm1hdCA8ZW1waD5tdXN0PC9lbXBoPgorYmVnaW4gd2l0aCBhbiBYTUwgZW5jb2RpbmcgZGVjbGFyYXRpb24sIGluIHdoaWNoIHRoZSBmaXJzdCAgY2hhcmFjdGVycworbXVzdCBiZSAnPGNvZGU+Jmx0Oz94bWw8L2NvZGU+JywgYW55IGNvbmZvcm1pbmcgcHJvY2Vzc29yIGNhbiBkZXRlY3QsCithZnRlciB0d28gdG8gZm91ciBvY3RldHMgb2YgaW5wdXQsIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgY2FzZXMgYXBwbHkuIAorSW4gcmVhZGluZyB0aGlzIGxpc3QsIGl0IG1heSBoZWxwIHRvIGtub3cgdGhhdCBpbiBVQ1MtNCwgJyZsdDsnIGlzCisiPGNvZGU+I3gwMDAwMDAzQzwvY29kZT4iIGFuZCAnPycgaXMgIjxjb2RlPiN4MDAwMDAwM0Y8L2NvZGU+IiwgYW5kIHRoZSBCeXRlCitPcmRlciBNYXJrIHJlcXVpcmVkIG9mIFVURi0xNiBkYXRhIHN0cmVhbXMgaXMgIjxjb2RlPiN4RkVGRjwvY29kZT4iLjwvcD4KKzxwPgorPHVsaXN0PgorPGl0ZW0+Cis8cD48Y29kZT4wMCAwMCAwMCAzQzwvY29kZT46IFVDUy00LCBiaWctZW5kaWFuIG1hY2hpbmUgKDEyMzQgb3JkZXIpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4zQyAwMCAwMCAwMDwvY29kZT46IFVDUy00LCBsaXR0bGUtZW5kaWFuIG1hY2hpbmUgKDQzMjEgb3JkZXIpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4wMCAwMCAzQyAwMDwvY29kZT46IFVDUy00LCB1bnVzdWFsIG9jdGV0IG9yZGVyICgyMTQzKTwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+PGNvZGU+MDAgM0MgMDAgMDA8L2NvZGU+OiBVQ1MtNCwgdW51c3VhbCBvY3RldCBvcmRlciAoMzQxMik8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPkZFIEZGPC9jb2RlPjogVVRGLTE2LCBiaWctZW5kaWFuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT5GRiBGRTwvY29kZT46IFVURi0xNiwgbGl0dGxlLWVuZGlhbjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+PGNvZGU+MDAgM0MgMDAgM0Y8L2NvZGU+OiBVVEYtMTYsIGJpZy1lbmRpYW4sIG5vIEJ5dGUgT3JkZXIgTWFyaworKGFuZCB0aHVzLCBzdHJpY3RseSBzcGVha2luZywgaW4gZXJyb3IpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4zQyAwMCAzRiAwMDwvY29kZT46IFVURi0xNiwgbGl0dGxlLWVuZGlhbiwgbm8gQnl0ZSBPcmRlciBNYXJrCisoYW5kIHRodXMsIHN0cmljdGx5IHNwZWFraW5nLCBpbiBlcnJvcik8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPjNDIDNGIDc4IDZEPC9jb2RlPjogVVRGLTgsIElTTyA2NDYsIEFTQ0lJLCBzb21lIHBhcnQgb2YgSVNPIDg4NTksIAorU2hpZnQtSklTLCBFVUMsIG9yIGFueSBvdGhlciA3LWJpdCwgOC1iaXQsIG9yIG1peGVkLXdpZHRoIGVuY29kaW5nCit3aGljaCBlbnN1cmVzIHRoYXQgdGhlIGNoYXJhY3RlcnMgb2YgQVNDSUkgaGF2ZSB0aGVpciBub3JtYWwgcG9zaXRpb25zLAord2lkdGgsCithbmQgdmFsdWVzOyB0aGUgYWN0dWFsIGVuY29kaW5nIGRlY2xhcmF0aW9uIG11c3QgYmUgcmVhZCB0byAKK2RldGVjdCB3aGljaCBvZiB0aGVzZSBhcHBsaWVzLCBidXQgc2luY2UgYWxsIG9mIHRoZXNlIGVuY29kaW5ncwordXNlIHRoZSBzYW1lIGJpdCBwYXR0ZXJucyBmb3IgdGhlIEFTQ0lJIGNoYXJhY3RlcnMsIHRoZSBlbmNvZGluZyAKK2RlY2xhcmF0aW9uIGl0c2VsZiBtYXkgYmUgcmVhZCByZWxpYWJseQorPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT40QyA2RiBBNyA5NDwvY29kZT46IEVCQ0RJQyAoaW4gc29tZSBmbGF2b3I7IHRoZSBmdWxsCitlbmNvZGluZyBkZWNsYXJhdGlvbiBtdXN0IGJlIHJlYWQgdG8gdGVsbCB3aGljaCBjb2RlIHBhZ2UgaXMgaW4gCit1c2UpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5vdGhlcjogVVRGLTggd2l0aG91dCBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbiwgb3IgZWxzZSAKK3RoZSBkYXRhIHN0cmVhbSBpcyBjb3JydXB0LCBmcmFnbWVudGFyeSwgb3IgZW5jbG9zZWQgaW4KK2Egd3JhcHBlciBvZiBzb21lIGtpbmQ8L3A+Cis8L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPHA+CitUaGlzIGxldmVsIG9mIGF1dG9kZXRlY3Rpb24gaXMgZW5vdWdoIHRvIHJlYWQgdGhlIFhNTCBlbmNvZGluZworZGVjbGFyYXRpb24gYW5kIHBhcnNlIHRoZSBjaGFyYWN0ZXItZW5jb2RpbmcgaWRlbnRpZmllciwgd2hpY2ggaXMKK3N0aWxsIG5lY2Vzc2FyeSB0byBkaXN0aW5ndWlzaCB0aGUgaW5kaXZpZHVhbCBtZW1iZXJzIG9mIGVhY2ggZmFtaWx5CitvZiBlbmNvZGluZ3MgKGUuZy4gdG8gdGVsbCAgVVRGLTggZnJvbSA4ODU5LCBhbmQgdGhlIHBhcnRzIG9mIDg4NTkKK2Zyb20gZWFjaCBvdGhlciwgb3IgdG8gZGlzdGluZ3Vpc2ggdGhlIHNwZWNpZmljIEVCQ0RJQyBjb2RlIHBhZ2UgaW4KK3VzZSwgYW5kIHNvIG9uKS4KKzwvcD4KKzxwPgorQmVjYXVzZSB0aGUgY29udGVudHMgb2YgdGhlIGVuY29kaW5nIGRlY2xhcmF0aW9uIGFyZSByZXN0cmljdGVkIHRvCitBU0NJSSBjaGFyYWN0ZXJzLCBhIHByb2Nlc3NvciBjYW4gcmVsaWFibHkgcmVhZCB0aGUgZW50aXJlIGVuY29kaW5nCitkZWNsYXJhdGlvbiBhcyBzb29uIGFzIGl0IGhhcyBkZXRlY3RlZCB3aGljaCBmYW1pbHkgb2YgZW5jb2RpbmdzIGlzIGluCit1c2UuICBTaW5jZSBpbiBwcmFjdGljZSwgYWxsIHdpZGVseSB1c2VkIGNoYXJhY3RlciBlbmNvZGluZ3MgZmFsbCBpbnRvCitvbmUgb2YgdGhlIGNhdGVnb3JpZXMgYWJvdmUsIHRoZSBYTUwgZW5jb2RpbmcgZGVjbGFyYXRpb24gYWxsb3dzCityZWFzb25hYmx5IHJlbGlhYmxlIGluLWJhbmQgbGFiZWxpbmcgb2YgY2hhcmFjdGVyIGVuY29kaW5ncywgZXZlbiB3aGVuCitleHRlcm5hbCBzb3VyY2VzIG9mIGluZm9ybWF0aW9uIGF0IHRoZSBvcGVyYXRpbmctc3lzdGVtIG9yCit0cmFuc3BvcnQtcHJvdG9jb2wgbGV2ZWwgYXJlIHVucmVsaWFibGUuCis8L3A+Cis8cD4KK09uY2UgdGhlIHByb2Nlc3NvciBoYXMgZGV0ZWN0ZWQgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBpbiB1c2UsIGl0IGNhbgorYWN0IGFwcHJvcHJpYXRlbHksIHdoZXRoZXIgYnkgaW52b2tpbmcgYSBzZXBhcmF0ZSBpbnB1dCByb3V0aW5lIGZvcgorZWFjaCBjYXNlLCBvciBieSBjYWxsaW5nIHRoZSBwcm9wZXIgY29udmVyc2lvbiBmdW5jdGlvbiBvbiBlYWNoCitjaGFyYWN0ZXIgb2YgaW5wdXQuIAorPC9wPgorPHA+CitMaWtlIGFueSBzZWxmLWxhYmVsaW5nIHN5c3RlbSwgdGhlIFhNTCBlbmNvZGluZyBkZWNsYXJhdGlvbiB3aWxsIG5vdAord29yayBpZiBhbnkgc29mdHdhcmUgY2hhbmdlcyB0aGUgZW50aXR5J3MgY2hhcmFjdGVyIHNldCBvciBlbmNvZGluZword2l0aG91dCB1cGRhdGluZyB0aGUgZW5jb2RpbmcgZGVjbGFyYXRpb24uICBJbXBsZW1lbnRvcnMgb2YKK2NoYXJhY3Rlci1lbmNvZGluZyByb3V0aW5lcyBzaG91bGQgYmUgY2FyZWZ1bCB0byBlbnN1cmUgdGhlIGFjY3VyYWN5CitvZiB0aGUgaW50ZXJuYWwgYW5kIGV4dGVybmFsIGluZm9ybWF0aW9uIHVzZWQgdG8gbGFiZWwgdGhlIGVudGl0eS4KKzwvcD4KKzxwPlRoZSBzZWNvbmQgcG9zc2libGUgY2FzZSBvY2N1cnMgd2hlbiB0aGUgWE1MIGVudGl0eSBpcyBhY2NvbXBhbmllZAorYnkgZW5jb2RpbmcgaW5mb3JtYXRpb24sIGFzIGluIHNvbWUgZmlsZSBzeXN0ZW1zIGFuZCBzb21lIG5ldHdvcmsKK3Byb3RvY29scy4KK1doZW4gbXVsdGlwbGUgc291cmNlcyBvZiBpbmZvcm1hdGlvbiBhcmUgYXZhaWxhYmxlLAorCit0aGVpciByZWxhdGl2ZQorcHJpb3JpdHkgYW5kIHRoZSBwcmVmZXJyZWQgbWV0aG9kIG9mIGhhbmRsaW5nIGNvbmZsaWN0IHNob3VsZCBiZQorc3BlY2lmaWVkIGFzIHBhcnQgb2YgdGhlIGhpZ2hlci1sZXZlbCBwcm90b2NvbCB1c2VkIHRvIGRlbGl2ZXIgWE1MLgorUnVsZXMgZm9yIHRoZSByZWxhdGl2ZSBwcmlvcml0eSBvZiB0aGUgaW50ZXJuYWwgbGFiZWwgYW5kIHRoZQorTUlNRS10eXBlIGxhYmVsIGluIGFuIGV4dGVybmFsIGhlYWRlciwgZm9yIGV4YW1wbGUsIHNob3VsZCBiZSBwYXJ0IG9mIHRoZQorUkZDIGRvY3VtZW50IGRlZmluaW5nIHRoZSB0ZXh0L3htbCBhbmQgYXBwbGljYXRpb24veG1sIE1JTUUgdHlwZXMuIEluCit0aGUgaW50ZXJlc3RzIG9mIGludGVyb3BlcmFiaWxpdHksIGhvd2V2ZXIsIHRoZSBmb2xsb3dpbmcgcnVsZXMKK2FyZSByZWNvbW1lbmRlZC4KKzx1bGlzdD4KKzxpdGVtPjxwPklmIGFuIFhNTCBlbnRpdHkgaXMgaW4gYSBmaWxlLCB0aGUgQnl0ZS1PcmRlciBNYXJrCithbmQgZW5jb2RpbmctZGVjbGFyYXRpb24gUEkgYXJlIHVzZWQgKGlmIHByZXNlbnQpIHRvIGRldGVybWluZSB0aGUKK2NoYXJhY3RlciBlbmNvZGluZy4gIEFsbCBvdGhlciBoZXVyaXN0aWNzIGFuZCBzb3VyY2VzIG9mIGluZm9ybWF0aW9uCithcmUgc29sZWx5IGZvciBlcnJvciByZWNvdmVyeS4KKzwvcD48L2l0ZW0+Cis8aXRlbT48cD5JZiBhbiBYTUwgZW50aXR5IGlzIGRlbGl2ZXJlZCB3aXRoIGEKK01JTUUgdHlwZSBvZiB0ZXh0L3htbCwgdGhlbiB0aGUgPGNvZGU+Y2hhcnNldDwvY29kZT4gcGFyYW1ldGVyCitvbiB0aGUgTUlNRSB0eXBlIGRldGVybWluZXMgdGhlCitjaGFyYWN0ZXIgZW5jb2RpbmcgbWV0aG9kOyBhbGwgb3RoZXIgaGV1cmlzdGljcyBhbmQgc291cmNlcyBvZgoraW5mb3JtYXRpb24gYXJlIHNvbGVseSBmb3IgZXJyb3IgcmVjb3ZlcnkuCis8L3A+PC9pdGVtPgorPGl0ZW0+PHA+SWYgYW4gWE1MIGVudGl0eSBpcyBkZWxpdmVyZWQgCit3aXRoIGEKK01JTUUgdHlwZSBvZiBhcHBsaWNhdGlvbi94bWwsIHRoZW4gdGhlIEJ5dGUtT3JkZXIgTWFyayBhbmQKK2VuY29kaW5nLWRlY2xhcmF0aW9uIFBJIGFyZSB1c2VkIChpZiBwcmVzZW50KSB0byBkZXRlcm1pbmUgdGhlCitjaGFyYWN0ZXIgZW5jb2RpbmcuICBBbGwgb3RoZXIgaGV1cmlzdGljcyBhbmQgc291cmNlcyBvZgoraW5mb3JtYXRpb24gYXJlIHNvbGVseSBmb3IgZXJyb3IgcmVjb3ZlcnkuCis8L3A+PC9pdGVtPgorPC91bGlzdD4KK1RoZXNlIHJ1bGVzIGFwcGx5IG9ubHkgaW4gdGhlIGFic2VuY2Ugb2YgcHJvdG9jb2wtbGV2ZWwgZG9jdW1lbnRhdGlvbjsKK2luIHBhcnRpY3VsYXIsIHdoZW4gdGhlIE1JTUUgdHlwZXMgdGV4dC94bWwgYW5kIGFwcGxpY2F0aW9uL3htbCBhcmUKK2RlZmluZWQsIHRoZSByZWNvbW1lbmRhdGlvbnMgb2YgdGhlIHJlbGV2YW50IFJGQyB3aWxsIHN1cGVyc2VkZQordGhlc2UgcnVsZXMuCis8L3A+CisKKzwvaW5mb3JtLWRpdjE+CisKKzxpbmZvcm0tZGl2MSBpZD0ic2VjLXhtbC13ZyI+Cis8aGVhZD5XM0MgWE1MIFdvcmtpbmcgR3JvdXA8L2hlYWQ+CisgCis8cD5UaGlzIHNwZWNpZmljYXRpb24gd2FzIHByZXBhcmVkIGFuZCBhcHByb3ZlZCBmb3IgcHVibGljYXRpb24gYnkgdGhlCitXM0MgWE1MIFdvcmtpbmcgR3JvdXAgKFdHKS4gIFdHIGFwcHJvdmFsIG9mIHRoaXMgc3BlY2lmaWNhdGlvbiBkb2VzCitub3QgbmVjZXNzYXJpbHkgaW1wbHkgdGhhdCBhbGwgV0cgbWVtYmVycyB2b3RlZCBmb3IgaXRzIGFwcHJvdmFsLiAgCitUaGUgY3VycmVudCBhbmQgZm9ybWVyIG1lbWJlcnMgb2YgdGhlIFhNTCBXRyBhcmU6PC9wPgorIAorPG9yZ2xpc3Q+Cis8bWVtYmVyPjxuYW1lPkpvbiBCb3NhaywgU3VuPC9uYW1lPjxyb2xlPkNoYWlyPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5KYW1lcyBDbGFyazwvbmFtZT48cm9sZT5UZWNobmljYWwgTGVhZDwvcm9sZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+VGltIEJyYXksIFRleHR1YWxpdHkgYW5kIE5ldHNjYXBlPC9uYW1lPjxyb2xlPlhNTCBDby1lZGl0b3I8L3JvbGU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkplYW4gUGFvbGksIE1pY3Jvc29mdDwvbmFtZT48cm9sZT5YTUwgQ28tZWRpdG9yPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5DLiBNLiBTcGVyYmVyZy1NY1F1ZWVuLCBVLiBvZiBJbGwuPC9uYW1lPjxyb2xlPlhNTAorQ28tZWRpdG9yPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5EYW4gQ29ubm9sbHksIFczQzwvbmFtZT48cm9sZT5XM0MgTGlhaXNvbjwvcm9sZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+UGF1bGEgQW5nZXJzdGVpbiwgVGV4Y2VsPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5TdGV2ZSBEZVJvc2UsIElOU088L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkRhdmUgSG9sbGFuZGVyLCBIUDwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+RWxpb3QgS2ltYmVyLCBJU09HRU48L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkV2ZSBNYWxlciwgQXJib3JUZXh0PC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5Ub20gTWFnbGllcnksIE5DU0E8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPk11cnJheSBNYWxvbmV5LCBNdXptbyBhbmQgR3JpZjwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+TWFrb3RvIE11cmF0YSwgRnVqaSBYZXJveCBJbmZvcm1hdGlvbiBTeXN0ZW1zPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5Kb2VsIE5hdmEsIEFkb2JlPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5Db25sZXRoIE8nQ29ubmVsbCwgVmlnbmV0dGU8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPlBldGVyIFNoYXJwZSwgU29mdFF1YWQ8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkpvaG4gVGlndWUsIERhdGFDaGFubmVsPC9uYW1lPjwvbWVtYmVyPgorPC9vcmdsaXN0PgorCis8L2luZm9ybS1kaXYxPgorPC9iYWNrPgorPC9zcGVjPgorPCEtLSBLZWVwIHRoaXMgY29tbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlCitMb2NhbCB2YXJpYWJsZXM6Cittb2RlOiBzZ21sCitzZ21sLWRlZmF1bHQtZHRkLWZpbGU6In4vc2dtbC9zcGVjLmNlZCIKK3NnbWwtb21pdHRhZzp0CitzZ21sLXNob3J0dGFnOnQKK0VuZDoKKy0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV8yLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMi5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM4YWM0OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMi5ybmcKQEAgLTAsMCArMSwxNCBAQAorPGVsZW1lbnQgbmFtZT0iY2FyZCIgbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iCisgICAgICAgICB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8emVyb09yTW9yZT4KKyAgICA8YXR0cmlidXRlPgorICAgICAgPGFueU5hbWU+CisgICAgICAgIDxleGNlcHQ+CisgICAgICAgICAgPG5zTmFtZS8+CisgICAgICAgICAgPG5zTmFtZSBucz0iIi8+CisgICAgICAgIDwvZXhjZXB0PgorICAgICAgPC9hbnlOYW1lPgorICAgIDwvYXR0cmlidXRlPgorICA8L3plcm9Pck1vcmU+CisgIDx0ZXh0Lz4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMl8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMl8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjg0ZWJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV8yXzEueG1sCkBAIC0wLDAgKzEsNSBAQAorPGNhcmQgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iCisgICAgIHhtbG5zOmE9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vYSIgYTpmb289IndvcmtzIgorICAgICB4bWxuczpiPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2IiIGI6Zm9vPSJ3b3JrcyI+CisgICBUaGlzIHNob3VsZCB3b3JrCis8L2NhcmQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzJfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzJfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA2YjRlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMl8yLnhtbApAQCAtMCwwICsxLDUgQEAKKzxjYXJkIHhtbG5zPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIgorICAgICB4bWxuczphPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2EiIGE6Zm9vPSJ3b3JrcyIKKyAgICAgeG1sbnM6Yj0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgYjpmb289ImZhaWxzIj4KKyAgIFRoaXMgc2hvdWxkIGZhaWwKKzwvY2FyZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMl8zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMl8zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODQ5YzAzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV8yXzMueG1sCkBAIC0wLDAgKzEsNSBAQAorPGNhcmQgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iCisgICAgIHhtbG5zOmE9Imh0dHA6Ly9leGFtcGxlLmNvbS9hIiBhOmZvbz0id29ya3MiCisgICAgIGI9ImZhaWxzIj4KKyAgIFRoaXMgc2hvdWxkIGZhaWwKKzwvY2FyZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfMy5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzMucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZTA0MWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzMucm5nCkBAIC0wLDAgKzEsMTUgQEAKKzxlbGVtZW50IG5hbWU9ImV4YW1wbGUiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxhdHRyaWJ1dGU+CisgICAgICA8YW55TmFtZS8+CisgICAgPC9hdHRyaWJ1dGU+CisgIDwvemVyb09yTW9yZT4KKyAgPG9wdGlvbmFsPgorICAgIDxhdHRyaWJ1dGUgbmFtZT0ieG1sOnNwYWNlIj4KKyAgICAgIDxjaG9pY2U+CisgICAgICAgIDx2YWx1ZT5kZWZhdWx0PC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPnByZXNlcnZlPC92YWx1ZT4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvYXR0cmlidXRlPgorICA8L29wdGlvbmFsPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV8zXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV8zXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjQ3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzNfMS54bWwKQEAgLTAsMCArMSBAQAorPGV4YW1wbGUgZm9vPSJiYXIiIHhtbDpzcGFjZT0iZGVmYXVsdCIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV80LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfNC5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU4YzdhNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTFfNC5ybmcKQEAgLTAsMCArMSwxOSBAQAorPGVsZW1lbnQgbmFtZT0iZXhhbXBsZSIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxhbnlOYW1lPgorICAgICAgICA8ZXhjZXB0PgorICAgICAgICAgIDxuYW1lPnhtbDpzcGFjZTwvbmFtZT4KKyAgICAgICAgPC9leGNlcHQ+CisgICAgICA8L2FueU5hbWU+CisgICAgPC9hdHRyaWJ1dGU+CisgIDwvemVyb09yTW9yZT4KKyAgPG9wdGlvbmFsPgorICAgIDxhdHRyaWJ1dGUgbmFtZT0ieG1sOnNwYWNlIj4KKyAgICAgIDxjaG9pY2U+CisgICAgICAgIDx2YWx1ZT5kZWZhdWx0PC92YWx1ZT4KKyAgICAgICAgPHZhbHVlPnByZXNlcnZlPC92YWx1ZT4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvYXR0cmlidXRlPgorICA8L29wdGlvbmFsPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV80XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMV80XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjQ3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjExXzRfMS54bWwKQEAgLTAsMCArMSBAQAorPGV4YW1wbGUgZm9vPSJiYXIiIHhtbDpzcGFjZT0iZGVmYXVsdCIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxMl8xLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTJfMS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkwMjY4NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTJfMS5ybmcKQEAgLTAsMCArMSwxMyBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgeG1sbnM6YT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9hbm5vdGF0aW9uIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8YTpkb2N1bWVudGF0aW9uPkluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGVtYWlsIGFkZHJlc3MuPC9hOmRvY3VtZW50YXRpb24+CisgICAgICA8ZWxlbWVudCBuYW1lPSJuYW1lIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1haWwiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEyXzFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEyXzFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkzZGYxOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMTJfMV8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+PG5hbWU+Zm9vPC9uYW1lPjxlbWFpbD5iYXI8L2VtYWlsPjwvY2FyZD4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEzXzEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxM18xLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTQ1MTQyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxM18xLnJuZwpAQCAtMCwwICsxLDMzIEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorCis8c3RhcnQ+CisgIDxlbGVtZW50IG5hbWU9ImRvYyI+CisgICAgPHplcm9Pck1vcmU+CisgICAgICA8Y2hvaWNlPgorCTxlbGVtZW50IG5hbWU9InAiPgorCSAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKwk8L2VsZW1lbnQ+CisJPGdyYW1tYXI+CisJICA8aW5jbHVkZSBocmVmPSJ0YWJsZS5ybmciPgorCSAgICA8ZGVmaW5lIG5hbWU9ImNlbGwuY29udGVudCI+CisJICAgICAgPHBhcmVudFJlZiBuYW1lPSJpbmxpbmUiLz4KKwkgICAgPC9kZWZpbmU+CisgICAgICAgICAgPC9pbmNsdWRlPgorCTwvZ3JhbW1hcj4KKyAgICAgIDwvY2hvaWNlPgorICAgIDwvemVyb09yTW9yZT4KKyAgPC9lbGVtZW50PgorPC9zdGFydD4KKworPGRlZmluZSBuYW1lPSJpbmxpbmUiPgorICA8emVyb09yTW9yZT4KKyAgICA8Y2hvaWNlPgorICAgICAgPHRleHQvPgorICAgICAgPGVsZW1lbnQgbmFtZT0iZW0iPgorICAgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvY2hvaWNlPgorICA8L3plcm9Pck1vcmU+Cis8L2RlZmluZT4KKworPC9ncmFtbWFyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxM18xXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxM18xXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Y2I0MzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjEzXzFfMS54bWwKQEAgLTAsMCArMSwxMiBAQAorPGRvYz4KKyAgPHA+c3RhcnQ8L3A+CisgIDx0YWJsZT4KKyAgICA8dHI+CisgICAgICA8dGQ+IDxlbT5oZWxsbzwvZW0+ICE8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPjwvdGQ+CisgICAgPC90cj4KKyAgPC90YWJsZT4KKyAgPHA+ZW5kPC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjE0XzEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxNF8xLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzQ0MzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxNF8xLnJuZwpAQCAtMCwwICsxLDUzIEBACis8ZWxlbWVudCBuYW1lPSJodG1sIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8ZWxlbWVudCBuYW1lPSJoZWFkIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJ0aXRsZSI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICA8L2VsZW1lbnQ+CisgIDxlbGVtZW50IG5hbWU9ImJvZHkiPgorICAgIDxlbGVtZW50IG5hbWU9InRhYmxlIj4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICAgICAgICA8dmFsdWU+YWRkcmVzc0Jvb2s8L3ZhbHVlPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8b25lT3JNb3JlPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJ0ciI+CisJICA8YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKwkgICAgPHZhbHVlPmNhcmQ8L3ZhbHVlPgorCSAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPGVsZW1lbnQgbmFtZT0idGQiPgorCSAgICA8YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKwkgICAgICA8dmFsdWU+bmFtZTwvdmFsdWU+CisJICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgICAgPGludGVybGVhdmU+CisgICAgICAgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InNwYW4iPgorICAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICAgICAgICAgIDx2YWx1ZT5naXZlbk5hbWU8L3ZhbHVlPgorICAgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ic3BhbiI+CisgICAgICAgICAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKyAgICAgICAgICAgICAgICAgICAgPHZhbHVlPmZhbWlseU5hbWU8L3ZhbHVlPgorICAgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgICAgPC9pbnRlcmxlYXZlPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJ0ZCI+CisJICAgIDxhdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorCSAgICAgIDx2YWx1ZT5lbWFpbDwvdmFsdWU+CisJICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgICAgPHRleHQvPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vbmVPck1vcmU+CisgICAgPC9lbGVtZW50PgorICA8L2VsZW1lbnQ+Cis8L2VsZW1lbnQ+CisKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzEucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZjhjZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfMS5ybmcKQEAgLTAsMCArMSwxMiBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfMV8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGFjOGJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzFfMS54bWwKQEAgLTAsMCArMSwxMCBAQAorPGFkZHJlc3NCb29rPgorICA8Y2FyZD4KKyAgICA8bmFtZT5Kb2huIFNtaXRoPC9uYW1lPgorICAgIDxlbWFpbD5qc0BleGFtcGxlLmNvbTwvZW1haWw+CisgIDwvY2FyZD4KKyAgPGNhcmQ+CisgICAgPG5hbWU+RnJlZCBCbG9nZ3M8L25hbWU+CisgICAgPGVtYWlsPmZiQGV4YW1wbGUubmV0PC9lbWFpbD4KKyAgPC9jYXJkPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMV8yLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMV8yLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDljZjdhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzIucm5nCkBAIC0wLDAgKzEsMTIgQEAKKzxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8b25lT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvZWxlbWVudD4KKyAgPC9vbmVPck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfMl8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMV8yXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYWM4YmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfMl8xLnhtbApAQCAtMCwwICsxLDEwIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkPgorICAgIDxuYW1lPkpvaG4gU21pdGg8L25hbWU+CisgICAgPGVtYWlsPmpzQGV4YW1wbGUuY29tPC9lbWFpbD4KKyAgPC9jYXJkPgorICA8Y2FyZD4KKyAgICA8bmFtZT5GcmVkIEJsb2dnczwvbmFtZT4KKyAgICA8ZW1haWw+ZmJAZXhhbXBsZS5uZXQ8L2VtYWlsPgorICA8L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzMucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzMucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzODg2ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfMy5ybmcKQEAgLTAsMCArMSwxNyBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPG9wdGlvbmFsPgorCTxlbGVtZW50IG5hbWU9Im5vdGUiPgorCSAgPHRleHQvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfM18xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMV8zXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYWM4YmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfM18xLnhtbApAQCAtMCwwICsxLDEwIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkPgorICAgIDxuYW1lPkpvaG4gU21pdGg8L25hbWU+CisgICAgPGVtYWlsPmpzQGV4YW1wbGUuY29tPC9lbWFpbD4KKyAgPC9jYXJkPgorICA8Y2FyZD4KKyAgICA8bmFtZT5GcmVkIEJsb2dnczwvbmFtZT4KKyAgICA8ZW1haWw+ZmJAZXhhbXBsZS5uZXQ8L2VtYWlsPgorICA8L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzQucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzQucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NDRmY2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjFfNC5ybmcKQEAgLTAsMCArMSwxMiBAQAorPHJuZzplbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIiB4bWxuczpybmc9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHJuZzp6ZXJvT3JNb3JlPgorICAgIDxybmc6ZWxlbWVudCBuYW1lPSJjYXJkIj4KKyAgICAgIDxybmc6ZWxlbWVudCBuYW1lPSJuYW1lIj4KKyAgICAgICAgPHJuZzp0ZXh0Lz4KKyAgICAgIDwvcm5nOmVsZW1lbnQ+CisgICAgICA8cm5nOmVsZW1lbnQgbmFtZT0iZW1haWwiPgorICAgICAgICA8cm5nOnRleHQvPgorICAgICAgPC9ybmc6ZWxlbWVudD4KKyAgICA8L3JuZzplbGVtZW50PgorICA8L3JuZzp6ZXJvT3JNb3JlPgorPC9ybmc6ZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMV80XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IxXzRfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRhYzhiYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMV80XzEueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+CisgICAgPG5hbWU+Sm9obiBTbWl0aDwvbmFtZT4KKyAgICA8ZW1haWw+anNAZXhhbXBsZS5jb208L2VtYWlsPgorICA8L2NhcmQ+CisgIDxjYXJkPgorICAgIDxuYW1lPkZyZWQgQmxvZ2dzPC9uYW1lPgorICAgIDxlbWFpbD5mYkBleGFtcGxlLm5ldDwvZW1haWw+CisgIDwvY2FyZD4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjJfMS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjJfMS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZhM2NlNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMl8xLnJuZwpAQCAtMCwwICsxLDI3IEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJuYW1lIj4KKyAgICAgICAgICA8dGV4dC8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgPGdyb3VwPgorICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImdpdmVuTmFtZSI+CisgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImZhbWlseU5hbWUiPgorICAgICAgICAgICAgPHRleHQvPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgIDwvY2hvaWNlPgorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1haWwiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8b3B0aW9uYWw+CisJPGVsZW1lbnQgbmFtZT0ibm90ZSI+CisJICA8dGV4dC8+CisJPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICA8L2VsZW1lbnQ+CisgIDwvemVyb09yTW9yZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMl8xXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IyXzFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzliNTU4NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yMl8xXzEueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+CisgICAgPGdpdmVuTmFtZT5Kb2huPC9naXZlbk5hbWU+CisgICAgPGZhbWlseU5hbWU+U21pdGg8L2ZhbWlseU5hbWU+CisgICAgPGVtYWlsPmpzQGV4YW1wbGUuY29tPC9lbWFpbD4KKyAgPC9jYXJkPgorICA8Y2FyZD4KKyAgICA8bmFtZT5GcmVkIEJsb2dnczwvbmFtZT4KKyAgICA8ZW1haWw+ZmJAZXhhbXBsZS5uZXQ8L2VtYWlsPgorICA8L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzEucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4ZDY3MzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfMS5ybmcKQEAgLTAsMCArMSwxMiBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJuYW1lIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImVtYWlsIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfMV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18xXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ODQ5ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfMV8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQgbmFtZT0iSm9obiBTbWl0aCIgZW1haWw9ImpzQGV4YW1wbGUuY29tIi8+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzFfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfMV8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWE3NjZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzFfMi54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkIGVtYWlsPSJqc0BleGFtcGxlLmNvbSIgbmFtZT0iSm9obiBTbWl0aCIvPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18yLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18yLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWI2ZmE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzIucm5nCkBAIC0wLDAgKzEsOCBAQAorPGVsZW1lbnQgbmFtZT0iY2FyZCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgPHRleHQvPgorICA8L2VsZW1lbnQ+CisgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKyAgICA8dGV4dC8+CisgIDwvZWxlbWVudD4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18yXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzJfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNjMmZhNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18yXzEueG1sCkBAIC0wLDAgKzEgQEAKKzxjYXJkPjxlbWFpbD5qc0BleGFtcGxlLmNvbTwvZW1haWw+PG5hbWU+Sm9obiBTbWl0aDwvbmFtZT48L2NhcmQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfMy5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfMy5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYxOTNlOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18zLnJuZwpAQCAtMCwwICsxLDE3IEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iZW1haWwiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJub3RlIj4KKyAgICAgICAgICA8dGV4dC8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPC9vcHRpb25hbD4KKyAgICA8L2VsZW1lbnQ+CisgIDwvemVyb09yTW9yZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18zXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzNfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDljOTU2MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM18zXzEueG1sCkBAIC0wLDAgKzEsNCBAQAorPGFkZHJlc3NCb29rPgorICA8Y2FyZCBuYW1lPSJmb28iIGVtYWlsPSJiYXIiLz4KKyAgPGNhcmQgbmFtZT0iZm9vMiIgbm90ZT0ic2Vjb25kIiBlbWFpbD0iYmFyMiIvPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM180LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM180LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTYzOTE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzQucm5nCkBAIC0wLDAgKzEsMjIgQEAKKzxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIiAgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8Y2hvaWNlPgorICAgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiPgorICAgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxncm91cD4KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9ImdpdmVuTmFtZSI+CisgICAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJmYW1pbHlOYW1lIj4KKyAgICAgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgIDwvY2hvaWNlPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCI+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzRfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfNF8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjJhNTRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzRfMS54bWwKQEAgLTAsMCArMSw0IEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkIG5hbWU9ImZvbyIgZW1haWw9ImJhciIvPgorICA8Y2FyZCBnaXZlbk5hbWU9ImQiIGZhbWlseU5hbWU9InYiIGVtYWlsPSJiYXIiLz4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfNS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfNS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI5ZjIxOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM181LnJuZwpAQCAtMCwwICsxLDIyIEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8Y2hvaWNlPgorCTxlbGVtZW50IG5hbWU9Im5hbWUiPgorCSAgPHRleHQvPgorCTwvZWxlbWVudD4KKwk8YXR0cmlidXRlIG5hbWU9Im5hbWUiPgorCSAgPHRleHQvPgorCTwvYXR0cmlidXRlPgorICAgICAgPC9jaG9pY2U+CisgICAgICA8Y2hvaWNlPgorCTxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKwkgIDx0ZXh0Lz4KKwk8L2VsZW1lbnQ+CisJPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCI+CisJICA8dGV4dC8+CisJPC9hdHRyaWJ1dGU+CisgICAgICA8L2Nob2ljZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvemVyb09yTW9yZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM181XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzVfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ1NzIyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM181XzEueG1sCkBAIC0wLDAgKzEsNyBAQAorPGFkZHJlc3NCb29rPgorPGNhcmQgbmFtZT0iSm9obiBTbWl0aCIgZW1haWw9ImpzQGV4YW1wbGUuY29tIi8+Cis8Y2FyZCBlbWFpbD0ianNAZXhhbXBsZS5jb20iIG5hbWU9IkpvaG4gU21pdGgiLz4KKzxjYXJkIGVtYWlsPSJqc0BleGFtcGxlLmNvbSI+PG5hbWU+Sm9obiBTbWl0aDwvbmFtZT48L2NhcmQ+Cis8Y2FyZCBuYW1lPSJKb2huIFNtaXRoIj48ZW1haWw+anNAZXhhbXBsZS5jb208L2VtYWlsPjwvY2FyZD4KKzxjYXJkPjxuYW1lPkpvaG4gU21pdGg8L25hbWU+PGVtYWlsPmpzQGV4YW1wbGUuY29tPC9lbWFpbD48L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzVfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfNV8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWE1NmRjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzVfMi54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2s+Cis8Y2FyZD48ZW1haWw+anNAZXhhbXBsZS5jb208L2VtYWlsPjxuYW1lPkpvaG4gU21pdGg8L25hbWU+PC9jYXJkPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM182LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM182LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzg4MTRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzYucm5nCkBAIC0wLDAgKzEsOCBAQAorPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDx6ZXJvT3JNb3JlPgorICAgIDxlbGVtZW50IG5hbWU9ImNhcmQiPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCIvPgorICAgIDwvZWxlbWVudD4KKyAgPC96ZXJvT3JNb3JlPgorPC9lbGVtZW50PgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfNl8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM182XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwODE3MzQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfNl8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vaz4KKzxjYXJkIGVtYWlsPSJqc0BleGFtcGxlLmNvbSIvPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM183LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM183LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGZmNTc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzcucm5nCkBAIC0wLDAgKzEsMiBAQAorPGVsZW1lbnQgbmFtZT0ieCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIi8+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM183XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzdfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFhYTZkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM183XzEueG1sCkBAIC0wLDAgKzEgQEAKKzx4Lz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM184LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM184LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjc4MGU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzgucm5nCkBAIC0wLDAgKzEsMTcgQEAKKzxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8emVyb09yTW9yZT4KKyAgICA8ZWxlbWVudCBuYW1lPSJjYXJkIj4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im5hbWUiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJlbWFpbCI+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0icHJlZmVyc0hUTUwiPgorICAgICAgICAgIDxlbXB0eS8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfOF8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM184XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNDdlMjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjNfOF8xLnhtbApAQCAtMCwwICsxLDQgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+PG5hbWU+Zm9vPC9uYW1lPjxlbWFpbD5iYXI8L2VtYWlsPjxwcmVmZXJzSFRNTC8+PC9jYXJkPgorICA8Y2FyZD48bmFtZT5mb288L25hbWU+PGVtYWlsPmJhcjwvZW1haWw+PC9jYXJkPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM185LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM185LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzg5NWNjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzkucm5nCkBAIC0wLDAgKzEsNSBAQAorPGVsZW1lbnQgbmFtZT0iY2FyZCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCI+CisgICAgPHRleHQvPgorICA8L2F0dHJpYnV0ZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM185XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3IzXzlfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE1M2JjOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yM185XzEueG1sCkBAIC0wLDAgKzEgQEAKKzxjYXJkIGVtYWlsPSJmb28iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8xLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8xLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDEwNjAyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzEucm5nCkBAIC0wLDAgKzEsMjIgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIj4KKyAgICAgIDx6ZXJvT3JNb3JlPgorCTxlbGVtZW50IG5hbWU9ImNhcmQiPgorCSAgPHJlZiBuYW1lPSJjYXJkQ29udGVudCIvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+CisKKyAgPGRlZmluZSBuYW1lPSJjYXJkQ29udGVudCI+CisgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsIj4KKyAgICAgIDx0ZXh0Lz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfMV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8xXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliODYxNmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfMV8xLnhtbApAQCAtMCwwICsxLDQgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+PG5hbWU+Sm9obiBTbWl0aDwvbmFtZT48ZW1haWw+anNAZXhhbXBsZS5jb20iPC9lbWFpbD48L2NhcmQ+CisgIDxjYXJkPjxuYW1lPkpvaG4gU21pdGgyPC9uYW1lPjxlbWFpbD5qczJAZXhhbXBsZS5jb20iPC9lbWFpbD48L2NhcmQ+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzIucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzIucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0NGIwNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfMi5ybmcKQEAgLTAsMCArMSwzNCBAQAorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKworICA8c3RhcnQ+CisgICAgPHJlZiBuYW1lPSJBZGRyZXNzQm9vayIvPgorICA8L3N0YXJ0PgorCisgIDxkZWZpbmUgbmFtZT0iQWRkcmVzc0Jvb2siPgorICAgIDxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIj4KKyAgICAgIDx6ZXJvT3JNb3JlPgorICAgICAgICA8cmVmIG5hbWU9IkNhcmQiLz4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iQ2FyZCI+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8cmVmIG5hbWU9Ik5hbWUiLz4KKyAgICAgIDxyZWYgbmFtZT0iRW1haWwiLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iTmFtZSI+CisgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKworICA8ZGVmaW5lIG5hbWU9IkVtYWlsIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJlbWFpbCI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKworPC9ncmFtbWFyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzJfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfMl8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Yjg2MTZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzJfMS54bWwKQEAgLTAsMCArMSw0IEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkPjxuYW1lPkpvaG4gU21pdGg8L25hbWU+PGVtYWlsPmpzQGV4YW1wbGUuY29tIjwvZW1haWw+PC9jYXJkPgorICA8Y2FyZD48bmFtZT5Kb2huIFNtaXRoMjwvbmFtZT48ZW1haWw+anMyQGV4YW1wbGUuY29tIjwvZW1haWw+PC9jYXJkPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjJhMGE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzMucm5nCkBAIC0wLDAgKzEsMjcgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxzdGFydD4KKyAgICA8ZWxlbWVudCBuYW1lPSJwIj4KKyAgICAgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisgICAgPC9lbGVtZW50PgorICA8L3N0YXJ0PgorCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lIj4KKyAgICA8emVyb09yTW9yZT4KKyAgICAgIDxjaG9pY2U+CisgICAgICAgIDx0ZXh0Lz4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iYm9sZCI+CisgICAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJpdGFsaWMiPgorICAgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0ic3BhbiI+CisgICAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJzdHlsZSIvPgorICAgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jaG9pY2U+CisgICAgPC96ZXJvT3JNb3JlPgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzNfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFlZTg4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zXzEueG1sCkBAIC0wLDAgKzEgQEAKKzxwPjwvcD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zXzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzNfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E4Yjk1MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zXzIueG1sCkBAIC0wLDAgKzEgQEAKKzxwPmE8L3A+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfM18zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiZjliZDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfM18zLnhtbApAQCAtMCwwICsxIEBACis8cD48Ym9sZD48L2JvbGQ+PC9wPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzNfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfM180LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzI4NGU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzNfNC54bWwKQEAgLTAsMCArMSBAQAorPHA+PGJvbGQ+PGl0YWxpYz5jPC9pdGFsaWM+PC9ib2xkPjwvcD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zXzUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzNfNS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRjN2FmMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF8zXzUueG1sCkBAIC0wLDAgKzEgQEAKKzxwPmE8Ym9sZD5iPGl0YWxpYz5jPC9pdGFsaWM+ZDwvYm9sZD5lPHNwYW4+Zjwvc3Bhbj5nPC9wPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzNfNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfM182LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzE1NzYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzNfNi54bWwKQEAgLTAsMCArMSBAQAorPHA+YTxib2xkPmI8c3BhbiBzdHlsZT0iZm9vIj5jPC9zcGFuPmQ8L2JvbGQ+ZTxpdGFsaWM+ZjwvaXRhbGljPmc8L3A+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfNC5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjRfNC5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU0ZjE5YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF80LnJuZwpAQCAtMCwwICsxLDI4IEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8c3RhcnQ+CisgICAgPGVsZW1lbnQgbmFtZT0icCI+CisgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworICA8ZGVmaW5lIG5hbWU9ImlubGluZSI+CisgICAgPGNob2ljZT4KKyAgICAgIDx0ZXh0Lz4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJvbGQiPgorICAgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iaXRhbGljIj4KKyAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9InNwYW4iPgorICAgICAgICA8b3B0aW9uYWw+CisgIAk8YXR0cmlidXRlIG5hbWU9InN0eWxlIi8+CisgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9jaG9pY2U+CisgICAgPG9wdGlvbmFsPgorICAgICAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICA8L29wdGlvbmFsPgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF80XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I0XzRfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRjN2FmMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNF80XzEueG1sCkBAIC0wLDAgKzEgQEAKKzxwPmE8Ym9sZD5iPGl0YWxpYz5jPC9pdGFsaWM+ZDwvYm9sZD5lPHNwYW4+Zjwvc3Bhbj5nPC9wPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzEucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwM2EwNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjVfMS5ybmcKQEAgLTAsMCArMSwzIEBACis8ZWxlbWVudCBuYW1lPSJudW1iZXIiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxkYXRhIHR5cGU9ImludCIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNV8xXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEwMTg1MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNV8xXzEueG1sCkBAIC0wLDAgKzEgQEAKKzxudW1iZXI+NTwvbnVtYmVyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzIucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzIucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNzQ5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjVfMi5ybmcKQEAgLTAsMCArMSw5IEBACis8ZWxlbWVudCBuYW1lPSJwb2ludCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIgorICAgICAgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICA8ZWxlbWVudCBuYW1lPSJ4Ij4KKyAgICA8ZGF0YSB0eXBlPSJkb3VibGUiLz4KKyAgPC9lbGVtZW50PgorICA8ZWxlbWVudCBuYW1lPSJ5Ij4KKyAgICA8ZGF0YSB0eXBlPSJkb3VibGUiLz4KKyAgPC9lbGVtZW50PgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzJfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjVfMl8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWMzODdkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzJfMS54bWwKQEAgLTAsMCArMSBAQAorPHBvaW50Pjx4PjE8L3g+PHk+NS4yMDwveT48L3BvaW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzMucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzMucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OWY2ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjVfMy5ybmcKQEAgLTAsMCArMSw2IEBACis8ZWxlbWVudCBuYW1lPSJiYWQiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxkYXRhIHR5cGU9InN0cmluZyIvPgorICA8ZWxlbWVudCBuYW1lPSJub3RlIj4KKyAgICA8dGV4dC8+CisgIDwvZWxlbWVudD4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNV8zXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzNfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ3MzA5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNV8zXzEueG1sCkBAIC0wLDAgKzEgQEAKKzxiYWQ+NTxub3RlPmZhaWxzPC9ub3RlPjwvYmFkPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzQucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzQucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YWFlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjVfNC5ybmcKQEAgLTAsMCArMSw2IEBACis8ZWxlbWVudCBuYW1lPSJvayIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGRhdGEgdHlwZT0ic3RyaW5nIi8+CisgIDxhdHRyaWJ1dGUgbmFtZT0ibm90ZSI+CisgICAgPHRleHQvPgorICA8L2F0dHJpYnV0ZT4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNV80XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzRfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzljZGVmNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNV80XzEueG1sCkBAIC0wLDAgKzEgQEAKKzxvayBub3RlPSJmb28iPjU8L29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzUucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I1XzUucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MjBhYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjVfNS5ybmcKQEAgLTAsMCArMSw1IEBACis8ZWxlbWVudCBuYW1lPSJlbWFpbCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGRhdGEgdHlwZT0ic3RyaW5nIj4KKyAgICA8cGFyYW0gbmFtZT0ibWF4TGVuZ3RoIj4xMjc8L3BhcmFtPgorICA8L2RhdGE+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EwNjA5MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8xLnJuZwpAQCAtMCwwICsxLDEwIEBACis8ZWxlbWVudCBuYW1lPSJjYXJkIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiLz4KKyAgPGF0dHJpYnV0ZSBuYW1lPSJlbWFpbCIvPgorICA8YXR0cmlidXRlIG5hbWU9InByZWZlcnJlZEZvcm1hdCI+CisgICAgPGNob2ljZT4KKyAgICAgIDx2YWx1ZT5odG1sPC92YWx1ZT4KKyAgICAgIDx2YWx1ZT50ZXh0PC92YWx1ZT4KKyAgICA8L2Nob2ljZT4KKyAgPC9hdHRyaWJ1dGU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8xXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNDYwYWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMV8xLnhtbApAQCAtMCwwICsxIEBACis8Y2FyZCBuYW1lPSJmb28iIGVtYWlsPSJiYXIiIHByZWZlcnJlZEZvcm1hdD0idGV4dCIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzFfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMV8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjNkZmMyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzFfMi54bWwKQEAgLTAsMCArMSBAQAorPGNhcmQgbmFtZT0iZm9vIiBlbWFpbD0iYmFyIiBwcmVmZXJyZWRGb3JtYXQ9Imh0bWwiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8xXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzFfMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAzOGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8xXzMueG1sCkBAIC0wLDAgKzEgQEAKKzxjYXJkIG5hbWU9ImZvbyIgZW1haWw9ImJhciIgcHJlZmVycmVkRm9ybWF0PSJlcnJvciIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzFfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMV80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWQ2NGRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzFfNC54bWwKQEAgLTAsMCArMSBAQAorPGNhcmQgbmFtZT0iSm9obiBTbWl0aCIgZW1haWw9ImpzQGV4YW1wbGUuY29tIiBwcmVmZXJyZWRGb3JtYXQ9IiAgaHRtbCAgIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMV81LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8xXzUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1ZDIyYmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMV81LnhtbApAQCAtMCwwICsxLDIgQEAKKzxjYXJkIG5hbWU9IkpvaG4gU21pdGgiIGVtYWlsPSJqc0BleGFtcGxlLmNvbSIgcHJlZmVycmVkRm9ybWF0PSJodG1sIi8+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8yLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8yLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjM3ZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzIucm5nCkBAIC0wLDAgKzEsMTQgQEAKKzxlbGVtZW50IG5hbWU9ImNhcmQiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxlbGVtZW50IG5hbWU9Im5hbWUiPgorICAgIDx0ZXh0Lz4KKyAgPC9lbGVtZW50PgorICA8ZWxlbWVudCBuYW1lPSJlbWFpbCI+CisgICAgPHRleHQvPgorICA8L2VsZW1lbnQ+CisgIDxlbGVtZW50IG5hbWU9InByZWZlcnJlZEZvcm1hdCI+CisgICAgPGNob2ljZT4KKyAgICAgIDx2YWx1ZT5odG1sPC92YWx1ZT4KKyAgICAgIDx2YWx1ZT50ZXh0PC92YWx1ZT4KKyAgICA8L2Nob2ljZT4KKyAgPC9lbGVtZW50PgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzJfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMl8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDY0YmYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzJfMS54bWwKQEAgLTAsMCArMSw1IEBACis8Y2FyZD4KKyAgPG5hbWU+Sm9obiBTbWl0aDwvbmFtZT4KKyAgPGVtYWlsPmpzQGV4YW1wbGUuY29tPC9lbWFpbD4KKyAgPHByZWZlcnJlZEZvcm1hdD50ZXh0PC9wcmVmZXJyZWRGb3JtYXQ+Cis8L2NhcmQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMl8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8yXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZGEyZTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfMl8yLnhtbApAQCAtMCwwICsxLDUgQEAKKzxjYXJkPgorICA8bmFtZT5Kb2huIFNtaXRoPC9uYW1lPgorICA8ZW1haWw+anNAZXhhbXBsZS5jb208L2VtYWlsPgorICA8cHJlZmVycmVkRm9ybWF0Pmh0bWw8L3ByZWZlcnJlZEZvcm1hdD4KKzwvY2FyZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8yXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzJfMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNjYTk3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8yXzMueG1sCkBAIC0wLDAgKzEsNSBAQAorPGNhcmQ+CisgIDxuYW1lPkpvaG4gU21pdGg8L25hbWU+CisgIDxlbWFpbD5qc0BleGFtcGxlLmNvbTwvZW1haWw+CisgIDxwcmVmZXJyZWRGb3JtYXQ+ICBodG1sICA8L3ByZWZlcnJlZEZvcm1hdD4KKzwvY2FyZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8yXzQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzJfNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNmNzIzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8yXzQueG1sCkBAIC0wLDAgKzEsNSBAQAorPGNhcmQ+CisgIDxuYW1lPkpvaG4gU21pdGg8L25hbWU+CisgIDxlbWFpbD5qc0BleGFtcGxlLmNvbTwvZW1haWw+CisgIDxwcmVmZXJyZWRGb3JtYXQ+ZXJyb3I8L3ByZWZlcnJlZEZvcm1hdD4KKzwvY2FyZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8zLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8zLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjgzZDBiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I2XzMucm5nCkBAIC0wLDAgKzEsMTAgQEAKKzxlbGVtZW50IG5hbWU9ImNhcmQiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSIvPgorICA8YXR0cmlidXRlIG5hbWU9ImVtYWlsIi8+CisgIDxhdHRyaWJ1dGUgbmFtZT0icHJlZmVycmVkRm9ybWF0Ij4KKyAgICA8Y2hvaWNlPgorICAgICAgPHZhbHVlIHR5cGU9InN0cmluZyI+aHRtbDwvdmFsdWU+CisgICAgICA8dmFsdWUgdHlwZT0ic3RyaW5nIj50ZXh0PC92YWx1ZT4KKyAgICA8L2Nob2ljZT4KKyAgPC9hdHRyaWJ1dGU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfM18xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yNl8zXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZDY0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjZfM18xLnhtbApAQCAtMCwwICsxIEBACis8Y2FyZCBuYW1lPSJKb2huIFNtaXRoIiBlbWFpbD0ianNAZXhhbXBsZS5jb20iIHByZWZlcnJlZEZvcm1hdD0iICBodG1sICAiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18xLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18xLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTZlOTEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzEucm5nCkBAIC0wLDAgKzEsNyBAQAorPGVsZW1lbnQgbmFtZT0idmVjdG9yIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgICAgICAgICBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgIDxsaXN0PgorICAgIDxkYXRhIHR5cGU9ImZsb2F0Ii8+CisgICAgPGRhdGEgdHlwZT0iZmxvYXQiLz4KKyAgPC9saXN0PgorPC9lbGVtZW50PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMV8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjAzZWVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMS54bWwKQEAgLTAsMCArMSBAQAorPHZlY3Rvcj4xLjIgMy40PC92ZWN0b3I+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMV8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18xXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYmZkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMV8yLnhtbApAQCAtMCwwICsxIEBACis8dmVjdG9yPjEuMjwvdmVjdG9yPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMV8zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWVlYjVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfMy54bWwKQEAgLTAsMCArMSBAQAorPHZlY3Rvcj4xLjIgMy40IDUuNjwvdmVjdG9yPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMV80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWJkYTdmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzFfNC54bWwKQEAgLTAsMCArMSBAQAorPHZlY3Rvcj4gIDEuMiAzLjQgPC92ZWN0b3I+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMi5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMi5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFjNzFkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18yLnJuZwpAQCAtMCwwICsxLDggQEAKKzxlbGVtZW50IG5hbWU9InZlY3RvciIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIgorICAgICAgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICA8bGlzdD4KKyAgICA8b25lT3JNb3JlPgorICAgICAgPGRhdGEgdHlwZT0iZG91YmxlIi8+CisgICAgPC9vbmVPck1vcmU+CisgIDwvbGlzdD4KKzwvZWxlbWVudD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18yXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzJfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRiZmRiZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18yXzEueG1sCkBAIC0wLDAgKzEgQEAKKzx2ZWN0b3I+MS4yPC92ZWN0b3I+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMl8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18yXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZWViNWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMl8yLnhtbApAQCAtMCwwICsxIEBACis8dmVjdG9yPjEuMiAzLjQgNS42PC92ZWN0b3I+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMl8zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18yXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyNzRiYWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMl8zLnhtbApAQCAtMCwwICsxIEBACis8dmVjdG9yPiAgMS4yICAgMy40ICAgPC92ZWN0b3I+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMl80LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18yXzQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxOWJhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMl80LnhtbApAQCAtMCwwICsxIEBACis8dmVjdG9yPjwvdmVjdG9yPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzMucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzMucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiZWRhZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfMy5ybmcKQEAgLTAsMCArMSw5IEBACis8ZWxlbWVudCBuYW1lPSJwYXRoIiB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiCisgICAgICAgICBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgIDxsaXN0PgorICAgIDxvbmVPck1vcmU+CisgICAgICA8ZGF0YSB0eXBlPSJkb3VibGUiLz4KKyAgICAgIDxkYXRhIHR5cGU9ImRvdWJsZSIvPgorICAgIDwvb25lT3JNb3JlPgorICA8L2xpc3Q+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfM18xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18zXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNjFiNTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfM18xLnhtbApAQCAtMCwwICsxIEBACis8cGF0aD4xLjIgMy40PC9wYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfM18yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWI0ODU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfMi54bWwKQEAgLTAsMCArMSBAQAorPHBhdGg+MS4yIDMuNCA1IDYgNyA4PC9wYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfM18zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWJkMTdkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfMy54bWwKQEAgLTAsMCArMSBAQAorPHBhdGg+ICAxLjIgICAzLjQgICA1ICAgNiAgPC9wYXRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfM180LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjA5OWFlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I3XzNfNC54bWwKQEAgLTAsMCArMSBAQAorPHBhdGg+MS4yIDMuNCA1LjY8L3BhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfM181LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yN18zXzUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlZjVmMjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjdfM181LnhtbApAQCAtMCwwICsxIEBACis8cGF0aD4xLjI8L3BhdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdiYmU4YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8xLnJuZwpAQCAtMCwwICsxLDE1IEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8aW50ZXJsZWF2ZT4KKwk8ZWxlbWVudCBuYW1lPSJuYW1lIj4KKwkgIDx0ZXh0Lz4KKwk8L2VsZW1lbnQ+CisJPGVsZW1lbnQgbmFtZT0iZW1haWwiPgorCSAgPHRleHQvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvemVyb09yTW9yZT4KKzwvZWxlbWVudD4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMV8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjFlMWE4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzFfMS54bWwKQEAgLTAsMCArMSw2IEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkPgorICAgIDxlbWFpbD5iQGI8L2VtYWlsPgorICAgIDxuYW1lPmI8L25hbWU+CisgIDwvY2FyZD4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMV8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8xXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZjM3NjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMV8yLnhtbApAQCAtMCwwICsxLDcgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+CisgICAgPG5hbWU+YjwvbmFtZT4KKyAgICA8ZW1haWw+YkBiPC9lbWFpbD4KKyAgPC9jYXJkPgorPC9hZGRyZXNzQm9vaz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzIucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzIucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NTk2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMi5ybmcKQEAgLTAsMCArMSw1NyBAQAorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHN0YXJ0PgorICAgIDxyZWYgbmFtZT0iaGVhZCIvPgorICA8L3N0YXJ0PgorICA8ZGVmaW5lIG5hbWU9ImhlYWQiPgorICAgIDxlbGVtZW50IG5hbWU9ImhlYWQiPgorICAgICAgPGludGVybGVhdmU+CisgICAgICAgIDxyZWYgbmFtZT0idGl0bGUiLz4KKyAgICAgICAgPG9wdGlvbmFsPgorICAgICAgICAgIDxyZWYgbmFtZT0iYmFzZSIvPgorICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8emVyb09yTW9yZT4KKyAgICAgICAgICA8cmVmIG5hbWU9InN0eWxlIi8+CisgICAgICAgIDwvemVyb09yTW9yZT4KKyAgICAgICAgPHplcm9Pck1vcmU+CisgICAgICAgICAgPHJlZiBuYW1lPSJzY3JpcHQiLz4KKyAgICAgICAgPC96ZXJvT3JNb3JlPgorICAgICAgICA8emVyb09yTW9yZT4KKyAgICAgICAgICA8cmVmIG5hbWU9ImxpbmsiLz4KKyAgICAgICAgPC96ZXJvT3JNb3JlPgorICAgICAgICA8emVyb09yTW9yZT4KKyAgICAgICAgICA8cmVmIG5hbWU9Im1ldGEiLz4KKyAgICAgICAgPC96ZXJvT3JNb3JlPgorICAgICAgPC9pbnRlcmxlYXZlPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0idGl0bGUiPgorICAgIDxlbGVtZW50IG5hbWU9InRpdGxlIj4KKyAgICAgIDx0ZXh0Lz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9ImJhc2UiPgorICAgIDxlbGVtZW50IG5hbWU9ImJhc2UiPgorICAgICAgPHRleHQvPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0ic3R5bGUiPgorICAgIDxlbGVtZW50IG5hbWU9InN0eWxlIj4KKyAgICAgIDx0ZXh0Lz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9InNjcmlwdCI+CisgICAgPGVsZW1lbnQgbmFtZT0ic2NyaXB0Ij4KKyAgICAgIDx0ZXh0Lz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorICA8ZGVmaW5lIG5hbWU9Im1ldGEiPgorICAgIDxlbGVtZW50IG5hbWU9Im1ldGEiPgorICAgICAgPHRleHQvPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisgIDxkZWZpbmUgbmFtZT0ibGluayI+CisgICAgPGVsZW1lbnQgbmFtZT0ibGluayI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVkODBkNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzEueG1sCkBAIC0wLDAgKzEsNSBAQAorPGhlYWQ+CisgIDxtZXRhPm1ldGExPC9tZXRhPgorICA8dGl0bGU+Zm9vPC90aXRsZT4KKyAgPG1ldGE+bWV0YTI8L21ldGE+Cis8L2hlYWQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMl8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0YzJlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMl8yLnhtbApAQCAtMCwwICsxLDM2IEBACis8aGVhZD4KKyAgPG1ldGE+bWV0YTwvbWV0YT4KKyAgPG1ldGE+bWV0YTwvbWV0YT4KKyAgPHNjcmlwdD5zY3JpcHQ8L3NjcmlwdD4KKyAgPGxpbms+bGluazwvbGluaz4KKyAgPHN0eWxlPmxpbms8L3N0eWxlPgorICA8c2NyaXB0PnNjcmlwdDwvc2NyaXB0PgorICA8bGluaz5saW5rPC9saW5rPgorICA8c3R5bGU+bGluazwvc3R5bGU+CisgIDxiYXNlPmJhc2U8L2Jhc2U+CisgIDx0aXRsZT5mb288L3RpdGxlPgorICA8bWV0YT5tZXRhPC9tZXRhPgorICA8c2NyaXB0PnNjcmlwdDwvc2NyaXB0PgorICA8bGluaz5saW5rPC9saW5rPgorICA8c3R5bGU+bGluazwvc3R5bGU+CisgIDxtZXRhPm1ldGE8L21ldGE+CisgIDxtZXRhPm1ldGE8L21ldGE+CisgIDxtZXRhPm1ldGE8L21ldGE+CisgIDxtZXRhPm1ldGE8L21ldGE+CisgIDxtZXRhPm1ldGE8L21ldGE+CisgIDxzY3JpcHQ+c2NyaXB0PC9zY3JpcHQ+CisgIDxsaW5rPmxpbms8L2xpbms+CisgIDxzdHlsZT5saW5rPC9zdHlsZT4KKyAgPHNjcmlwdD5zY3JpcHQ8L3NjcmlwdD4KKyAgPGxpbms+bGluazwvbGluaz4KKyAgPHN0eWxlPmxpbms8L3N0eWxlPgorICA8c2NyaXB0PnNjcmlwdDwvc2NyaXB0PgorICA8bGluaz5saW5rPC9saW5rPgorICA8c3R5bGU+bGluazwvc3R5bGU+CisgIDxzY3JpcHQ+c2NyaXB0PC9zY3JpcHQ+CisgIDxsaW5rPmxpbms8L2xpbms+CisgIDxzdHlsZT5saW5rPC9zdHlsZT4KKyAgPHNjcmlwdD5zY3JpcHQ8L3NjcmlwdD4KKyAgPGxpbms+bGluazwvbGluaz4KKyAgPHN0eWxlPmxpbms8L3N0eWxlPgorPC9oZWFkPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMl8zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjBmOTlkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfMy54bWwKQEAgLTAsMCArMSwzIEBACis8aGVhZD4KKyAgPHRpdGxlPnRpdGxlPC90aXRsZT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhmMzg2NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzQueG1sCkBAIC0wLDAgKzEsNiBAQAorPGhlYWQ+CisgIDxtZXRhPm1ldGExPC9tZXRhPgorICA8dGl0bGU+Zm9vPC90aXRsZT4KKyAgPG1ldGE+bWV0YTI8L21ldGE+CisgIDx0aXRsZT5lcnJvcjwvdGl0bGU+Cis8L2hlYWQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMl81LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YjlkNTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfMl81LnhtbApAQCAtMCwwICsxLDMgQEAKKzxoZWFkPgorICA8bWV0YT5tZXRhMjwvbWV0YT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzYueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzJfNi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBmYjRjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8yXzYueG1sCkBAIC0wLDAgKzEsNSBAQAorPGhlYWQ+CisgIDxiYXNlPmJhc2U8L2Jhc2U+CisgIDx0aXRsZT5mb288L3RpdGxlPgorICA8YmFzZT5lcnJvcjwvYmFzZT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8zLnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8zLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjg4MTRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I4XzMucm5nCkBAIC0wLDAgKzEsOSBAQAorPGVsZW1lbnQgbmFtZT0iY29udGVudCIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPGludGVybGVhdmU+CisgICAgPHRleHQvPgorICAgIDxlbGVtZW50IG5hbWU9InAiPgorICAgICAgPHRleHQvPgorICAgIDwvZWxlbWVudD4KKyAgPC9pbnRlcmxlYXZlPgorPC9lbGVtZW50PgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfM18xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOF8zXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZWE0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjhfM18xLnhtbApAQCAtMCwwICsxIEBACis8Y29udGVudD4gaG93IGFyZSB5b3UgPHA+ICd5YXUgZGUgcG9lbGxlIDwvcD4gPyA8L2NvbnRlbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMS5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNhNTlmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8xLnJuZwpAQCAtMCwwICsxLDE3IEBACis8ZWxlbWVudCBuYW1lPSJhZGRyZXNzQm9vayIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHplcm9Pck1vcmU+CisgICAgPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisgICAgICA8ZWxlbWVudCBuYW1lPSJuYW1lIj4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1haWwiPgorICAgICAgICA8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8b3B0aW9uYWw+CisJPGVsZW1lbnQgbmFtZT0ibm90ZSI+CisJICA8ZXh0ZXJuYWxSZWYgaHJlZj0iaW5saW5lLnJuZyIvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvb3B0aW9uYWw+CisgICAgPC9lbGVtZW50PgorICA8L3plcm9Pck1vcmU+Cis8L2VsZW1lbnQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTAucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzEwLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWIzOGRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzEwLnJuZwpAQCAtMCwwICsxLDI2IEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorCisgIDxpbmNsdWRlIGhyZWY9ImlubGluZTMucm5nIi8+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImRvYyI+CisgICAgICA8emVyb09yTW9yZT4KKwk8ZWxlbWVudCBuYW1lPSJwIj4KKwkgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisJPC9lbGVtZW50PgorICAgICAgPC96ZXJvT3JNb3JlPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworICA8ZGVmaW5lIG5hbWU9ImlubGluZS5leHRyYSIgY29tYmluZT0iY2hvaWNlIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPGVsZW1lbnQgbmFtZT0iY29kZSI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtIj4KKwk8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvY2hvaWNlPgorICA8L2RlZmluZT4KKyAgCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTBfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTBfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM5YTA3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8xMF8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxkb2M+CisgIDxwPmE8Ym9sZD5iPGVtPmM8aXRhbGljPmQ8L2l0YWxpYz5lPC9lbT5mPC9ib2xkPmc8L3A+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8xMS5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTEucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNjNiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTEucm5nCkBAIC0wLDAgKzEsMTYgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKyAgPGluY2x1ZGUgaHJlZj0iYWRkcmVzc0Jvb2sucm5nIj4KKworICAgIDxkZWZpbmUgbmFtZT0iY2FyZENvbnRlbnQiPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisJPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iZW1haWxBZGRyZXNzIj4KKwk8dGV4dC8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9kZWZpbmU+CisKKyAgPC9pbmNsdWRlPgorCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU0MmZhNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8xMV8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+PG5hbWU+Zm9vPC9uYW1lPjxlbWFpbEFkZHJlc3M+YmFyPC9lbWFpbEFkZHJlc3M+PC9jYXJkPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8xMi5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTIucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMTBiODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTIucm5nCkBAIC0wLDAgKzEsMjIgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImFkZHJlc3NCb29rIj4KKyAgICAgIDx6ZXJvT3JNb3JlPgorCTxlbGVtZW50IG5hbWU9ImNhcmQiPgorCSAgPHJlZiBuYW1lPSJjYXJkQ29udGVudCIvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+CisKKyAgPGRlZmluZSBuYW1lPSJjYXJkQ29udGVudCI+CisgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICAgIDxlbGVtZW50IG5hbWU9ImVtYWlsQWRkcmVzcyI+CisgICAgICA8dGV4dC8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKworPC9ncmFtbWFyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzEyXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzEyXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1NDJmYTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMTJfMS54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkPjxuYW1lPmZvbzwvbmFtZT48ZW1haWxBZGRyZXNzPmJhcjwvZW1haWxBZGRyZXNzPjwvY2FyZD4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8xXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NWZjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMV8xLnhtbApAQCAtMCwwICsxLDcgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQ+CisgICAgPG5hbWU+Zm9vPC9uYW1lPgorICAgIDxlbWFpbD5iYXI8L2VtYWlsPgorICAgIDxub3RlPnRoaXMgZ3V5IGlzIDxlbT5hbm5veWluZzwvZW0+ICE8L25vdGU+CisgIDwvY2FyZD4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMi5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMi5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I0MzRiZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8yLnJuZwpAQCAtMCwwICsxLDcgQEAKKzxlbGVtZW50IG5hbWU9ImRhdGEiIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisgIDxjaG9pY2U+CisgICAgPGV4dGVybmFsUmVmIGhyZWY9InBhdHRlcm4xLnJuZyIvPgorICAgIDxleHRlcm5hbFJlZiBocmVmPSJwYXR0ZXJuMi5ybmciLz4KKyAgPC9jaG9pY2U+Cis8L2VsZW1lbnQ+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8yXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzJfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNhNTRlZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8yXzEueG1sCkBAIC0wLDAgKzEsNCBAQAorPGRhdGE+CisgIDxhPmE8L2E+CisgIDxiPmE8L2I+Cis8L2RhdGE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMl8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8yXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYTU0ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMl8yLnhtbApAQCAtMCwwICsxLDQgQEAKKzxkYXRhPgorICA8YT5hPC9hPgorICA8Yj5hPC9iPgorPC9kYXRhPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzMucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzMucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYzZlN2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfMy5ybmcKQEAgLTAsMCArMSwzNyBAQAorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImRhdGEiPgorICAgICAgPGludGVybGVhdmU+CisgICAgICAgIDx0ZXh0Lz4KKwk8cmVmIG5hbWU9ImlubGluZS5jbGFzcyIvPgorICAgICAgPC9pbnRlcmxlYXZlPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworICA8ZGVmaW5lIG5hbWU9ImlubGluZS5jbGFzcyIgY29tYmluZT0iY2hvaWNlIj4KKyAgICA8ZWxlbWVudCBuYW1lPSJib2xkIj4KKyAgICAgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKyAgCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lLmNsYXNzIiBjb21iaW5lPSJjaG9pY2UiPgorICAgIDxlbGVtZW50IG5hbWU9Iml0YWxpYyI+CisgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgIDwvZWxlbWVudD4KKyAgPC9kZWZpbmU+CisKKyAgPGRlZmluZSBuYW1lPSJpbmxpbmUiPgorICAgIDx6ZXJvT3JNb3JlPgorICAgICAgPGNob2ljZT4KKyAgICAgICAgPHRleHQvPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJjb2RlIj4KKyAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgIDxlbGVtZW50IG5hbWU9ImVtIj4KKyAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgIDwhLS0gZXRjIC0tPgorICAgICAgPC9jaG9pY2U+CisgICAgPC96ZXJvT3JNb3JlPgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8zXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzNfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBiZmEyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8zXzEueG1sCkBAIC0wLDAgKzEgQEAKKzxkYXRhPiBhIDxib2xkPiBiIDxlbT4gYyA8L2VtPiBkIDwvYm9sZD4gZSA8L2RhdGE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfM18yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV8zXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwODk1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfM18yLnhtbApAQCAtMCwwICsxIEBACis8ZGF0YT4gYSA8aXRhbGljPiBiIDxjb2RlPiBjIDwvY29kZT4gZCA8ZW0+Zm9vPC9lbT4gPC9pdGFsaWM+IGUgPC9kYXRhPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzQucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzQucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzYjdlOGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNC5ybmcKQEAgLTAsMCArMSwzNiBAQAorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImRhdGEiPgorICAgICAgPGludGVybGVhdmU+CisgICAgICAgIDx0ZXh0Lz4KKwk8cmVmIG5hbWU9ImlubGluZS5jbGFzcyIvPgorICAgICAgPC9pbnRlcmxlYXZlPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworICA8ZGVmaW5lIG5hbWU9ImlubGluZS5jbGFzcyI+CisgICAgPGNob2ljZT4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImJvbGQiPgorICAgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iaXRhbGljIj4KKyAgICAgICAgPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICA8L2Nob2ljZT4KKyAgPC9kZWZpbmU+CisKKyAgPGRlZmluZSBuYW1lPSJpbmxpbmUiPgorICAgIDx6ZXJvT3JNb3JlPgorICAgICAgPGNob2ljZT4KKyAgICAgICAgPHRleHQvPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJjb2RlIj4KKyAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgIDxlbGVtZW50IG5hbWU9ImVtIj4KKyAgICAgICAgICA8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgIDwhLS0gZXRjIC0tPgorICAgICAgPC9jaG9pY2U+CisgICAgPC96ZXJvT3JNb3JlPgorICA8L2RlZmluZT4KKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV80XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzRfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBiZmEyMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV80XzEueG1sCkBAIC0wLDAgKzEgQEAKKzxkYXRhPiBhIDxib2xkPiBiIDxlbT4gYyA8L2VtPiBkIDwvYm9sZD4gZSA8L2RhdGE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNF8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV80XzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwODk1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNF8yLnhtbApAQCAtMCwwICsxIEBACis8ZGF0YT4gYSA8aXRhbGljPiBiIDxjb2RlPiBjIDwvY29kZT4gZCA8ZW0+Zm9vPC9lbT4gPC9pdGFsaWM+IGUgPC9kYXRhPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzUucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzUucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4YjBhODQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNS5ybmcKQEAgLTAsMCArMSwyNSBAQAorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKworICA8c3RhcnQ+CisgICAgPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siPgorICAgICAgPHplcm9Pck1vcmU+CisJPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisJICA8cmVmIG5hbWU9ImNhcmQuYXR0bGlzdCIvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+CisKKyAgPGRlZmluZSBuYW1lPSJjYXJkLmF0dGxpc3QiIGNvbWJpbmU9ImludGVybGVhdmUiPgorICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICA8dGV4dC8+CisgICAgPC9hdHRyaWJ1dGU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iY2FyZC5hdHRsaXN0IiBjb21iaW5lPSJpbnRlcmxlYXZlIj4KKyAgICA8YXR0cmlidXRlIG5hbWU9ImVtYWlsIj4KKyAgICAgIDx0ZXh0Lz4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgPC9kZWZpbmU+CisKKzwvZ3JhbW1hcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV81XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzVfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc1NzUzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV81XzEueG1sCkBAIC0wLDAgKzEsMyBAQAorPGFkZHJlc3NCb29rPgorICA8Y2FyZCBuYW1lPSJmb28iIGVtYWlsPSJiYXIiLz4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNV8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV81XzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZjFkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNV8yLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQgbmFtZT0iZm9vIi8+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzVfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNV8zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzBjNWJmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzVfMy54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkIG5hbWU9ImZvbyIgZW1haWw9ImJhciIgZXJyb3I9ImV4dHJhIi8+Cis8L2FkZHJlc3NCb29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzYucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzYucm5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MzAwMzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNi5ybmcKQEAgLTAsMCArMSwyNCBAQAorPGdyYW1tYXIgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKworICA8c3RhcnQ+CisgICAgPGVsZW1lbnQgbmFtZT0iYWRkcmVzc0Jvb2siPgorICAgICAgPHplcm9Pck1vcmU+CisJPGVsZW1lbnQgbmFtZT0iY2FyZCI+CisJICA8cmVmIG5hbWU9ImNhcmQuYXR0bGlzdCIvPgorCTwvZWxlbWVudD4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwvc3RhcnQ+CisKKyAgPGRlZmluZSBuYW1lPSJjYXJkLmF0dGxpc3QiPgorICAgIDxncm91cD4KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisJPHRleHQvPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImVtYWlsIj4KKwk8dGV4dC8+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L2dyb3VwPgorICA8L2RlZmluZT4KKworPC9ncmFtbWFyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzZfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNl8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzU3NTNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzZfMS54bWwKQEAgLTAsMCArMSwzIEBACis8YWRkcmVzc0Jvb2s+CisgIDxjYXJkIG5hbWU9ImZvbyIgZW1haWw9ImJhciIvPgorPC9hZGRyZXNzQm9vaz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV82XzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzZfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmMWQzYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV82XzIueG1sCkBAIC0wLDAgKzEsMyBAQAorPGFkZHJlc3NCb29rPgorICA8Y2FyZCBuYW1lPSJmb28iLz4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNl8zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV82XzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MGM1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNl8zLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhZGRyZXNzQm9vaz4KKyAgPGNhcmQgbmFtZT0iZm9vIiBlbWFpbD0iYmFyIiBlcnJvcj0iZXh0cmEiLz4KKzwvYWRkcmVzc0Jvb2s+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNy5ybmcgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfNy5ybmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU1ZTUwOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV83LnJuZwpAQCAtMCwwICsxLDI2IEBACis8Z3JhbW1hciB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPgorCisgIDxpbmNsdWRlIGhyZWY9ImlubGluZTIucm5nIi8+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImRvYyI+CisgICAgICA8emVyb09yTW9yZT4KKwk8ZWxlbWVudCBuYW1lPSJwIj4KKwkgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisJPC9lbGVtZW50PgorICAgICAgPC96ZXJvT3JNb3JlPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworICA8ZGVmaW5lIG5hbWU9ImlubGluZS5jbGFzcyIgY29tYmluZT0iY2hvaWNlIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPGVsZW1lbnQgbmFtZT0iY29kZSI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtIj4KKwk8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvY2hvaWNlPgorICA8L2RlZmluZT4KKyAgCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfN18xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV83XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzOWEwNzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfN18xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxkb2M+CisgIDxwPmE8Ym9sZD5iPGVtPmM8aXRhbGljPmQ8L2l0YWxpYz5lPC9lbT5mPC9ib2xkPmc8L3A+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV84LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV84LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmExNDFkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5Xzgucm5nCkBAIC0wLDAgKzEsNDIgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKyAgPGRlZmluZSBuYW1lPSJpbmxpbmUiPgorICAgIDx6ZXJvT3JNb3JlPgorICAgICAgPHJlZiBuYW1lPSJpbmxpbmUuY2xhc3MiLz4KKyAgICA8L3plcm9Pck1vcmU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lLmNsYXNzIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPHRleHQvPgorICAgICAgPGVsZW1lbnQgbmFtZT0iYm9sZCI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Iml0YWxpYyI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICA8L2Nob2ljZT4KKyAgPC9kZWZpbmU+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImRvYyI+CisgICAgICA8emVyb09yTW9yZT4KKwk8ZWxlbWVudCBuYW1lPSJwIj4KKwkgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisJPC9lbGVtZW50PgorICAgICAgPC96ZXJvT3JNb3JlPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworICA8ZGVmaW5lIG5hbWU9ImlubGluZS5jbGFzcyIgY29tYmluZT0iY2hvaWNlIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPGVsZW1lbnQgbmFtZT0iY29kZSI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtIj4KKwk8cmVmIG5hbWU9ImlubGluZSIvPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvY2hvaWNlPgorICA8L2RlZmluZT4KKyAgCis8L2dyYW1tYXI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfOF8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV84XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzOWEwNzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfOF8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxkb2M+CisgIDxwPmE8Ym9sZD5iPGVtPmM8aXRhbGljPmQ8L2l0YWxpYz5lPC9lbT5mPC9ib2xkPmc8L3A+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV85LnJuZyBiL2xpYnhtbDItMi43LjcvdGVzdC9yZWxheG5nL3R1dG9yOV85LnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjJlNWVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5Xzkucm5nCkBAIC0wLDAgKzEsMzcgQEAKKzxncmFtbWFyIHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI+CisKKyAgPGRlZmluZSBuYW1lPSJpbmxpbmUiPgorICAgIDx6ZXJvT3JNb3JlPgorICAgICAgPHJlZiBuYW1lPSJpbmxpbmUuY2xhc3MiLz4KKyAgICA8L3plcm9Pck1vcmU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iaW5saW5lLmNsYXNzIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPHRleHQvPgorICAgICAgPGVsZW1lbnQgbmFtZT0iYm9sZCI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Iml0YWxpYyI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNvZGUiPgorCTxyZWYgbmFtZT0iaW5saW5lIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJlbSI+CisJPHJlZiBuYW1lPSJpbmxpbmUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICA8L2Nob2ljZT4KKyAgPC9kZWZpbmU+CisKKyAgPHN0YXJ0PgorICAgIDxlbGVtZW50IG5hbWU9ImRvYyI+CisgICAgICA8emVyb09yTW9yZT4KKwk8ZWxlbWVudCBuYW1lPSJwIj4KKwkgIDxyZWYgbmFtZT0iaW5saW5lIi8+CisJPC9lbGVtZW50PgorICAgICAgPC96ZXJvT3JNb3JlPgorICAgIDwvZWxlbWVudD4KKyAgPC9zdGFydD4KKworPC9ncmFtbWFyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzlfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvcjlfOV8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzlhMDc5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3I5XzlfMS54bWwKQEAgLTAsMCArMSwzIEBACis8ZG9jPgorICA8cD5hPGJvbGQ+YjxlbT5jPGl0YWxpYz5kPC9pdGFsaWM+ZTwvZW0+ZjwvYm9sZD5nPC9wPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvcmVsYXhuZy90dXRvckEucm5nIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3JBLnJuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWVmNGUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3JlbGF4bmcvdHV0b3JBLnJuZwpAQCAtMCwwICsxLDMzNCBAQAorPGdyYW1tYXIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiCisgIG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIKKyAgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj4KKworICA8c3RhcnQ+CisgICAgPHJlZiBuYW1lPSJwYXR0ZXJuIi8+CisgIDwvc3RhcnQ+CisKKyAgPGRlZmluZSBuYW1lPSJwYXR0ZXJuIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPGVsZW1lbnQgbmFtZT0iZWxlbWVudCI+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJuYW1lIj4KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9IlFOYW1lIi8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPHJlZiBuYW1lPSJvcGVuLW5hbWUtY2xhc3MiLz4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJvcGVuLXBhdHRlcm5zIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJhdHRyaWJ1dGUiPgorICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJuYW1lIj4KKyAgICAgICAgICAgIDxkYXRhIHR5cGU9IlFOYW1lIi8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgPHJlZiBuYW1lPSJvcGVuLW5hbWUtY2xhc3MiLz4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgICAgIDxpbnRlcmxlYXZlPgorICAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIiLz4KKyAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICA8cmVmIG5hbWU9InBhdHRlcm4iLz4KKyAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICA8L2ludGVybGVhdmU+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJncm91cCI+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJvcGVuLXBhdHRlcm5zIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJpbnRlcmxlYXZlIj4KKyAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICA8cmVmIG5hbWU9Im9wZW4tcGF0dGVybnMiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImNob2ljZSI+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJvcGVuLXBhdHRlcm5zIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJvcHRpb25hbCI+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJvcGVuLXBhdHRlcm5zIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJ6ZXJvT3JNb3JlIj4KKyAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICA8cmVmIG5hbWU9Im9wZW4tcGF0dGVybnMiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im9uZU9yTW9yZSI+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJvcGVuLXBhdHRlcm5zIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJsaXN0Ij4KKyAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICA8cmVmIG5hbWU9Im9wZW4tcGF0dGVybnMiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im1peGVkIj4KKyAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICA8cmVmIG5hbWU9Im9wZW4tcGF0dGVybnMiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9InJlZiI+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTkNOYW1lIi8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9InBhcmVudFJlZiI+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTkNOYW1lIi8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImVtcHR5Ij4KKyAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICA8cmVmIG5hbWU9Im90aGVyIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICA8cmVmIG5hbWU9Im90aGVyIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgICA8ZWxlbWVudCBuYW1lPSJ2YWx1ZSI+CisgICAgICAgIDxvcHRpb25hbD4KKyAgICAgICAgICA8YXR0cmlidXRlIG5hbWU9InR5cGUiPgorICAgICAgICAgICAgPGRhdGEgdHlwZT0iTkNOYW1lIi8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDwvb3B0aW9uYWw+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHRleHQvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iZGF0YSI+CisgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0idHlwZSI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTkNOYW1lIi8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgIDxpbnRlcmxlYXZlPgorICAgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIiLz4KKyAgICAgICAgICA8Z3JvdXA+CisgICAgICAgICAgICA8emVyb09yTW9yZT4KKyAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0icGFyYW0iPgorICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibmFtZSI+CisgICAgICAgICAgICAgICAgICA8ZGF0YSB0eXBlPSJOQ05hbWUiLz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgICAgICAgICAgPHRleHQvPgorICAgICAgICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgICAgICA8L3plcm9Pck1vcmU+CisgICAgICAgICAgICA8b3B0aW9uYWw+CisgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImV4Y2VwdCI+CisgICAgICAgICAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICAgICAgICAgIDxyZWYgbmFtZT0ib3Blbi1wYXR0ZXJucyIvPgorICAgICAgICAgICAgICA8L2VsZW1lbnQ+CisgICAgICAgICAgICA8L29wdGlvbmFsPgorICAgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDwvaW50ZXJsZWF2ZT4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im5vdEFsbG93ZWQiPgorICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgIDxyZWYgbmFtZT0ib3RoZXIiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImV4dGVybmFsUmVmIj4KKyAgICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJocmVmIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJhbnlVUkkiLz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJvdGhlciIvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iZ3JhbW1hciI+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJncmFtbWFyLWNvbnRlbnQiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICA8L2Nob2ljZT4KKyAgPC9kZWZpbmU+CisKKyAgPGRlZmluZSBuYW1lPSJncmFtbWFyLWNvbnRlbnQiPgorICAgIDxpbnRlcmxlYXZlPgorICAgICAgPHJlZiBuYW1lPSJvdGhlciIvPgorICAgICAgPHplcm9Pck1vcmU+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPHJlZiBuYW1lPSJzdGFydC1lbGVtZW50Ii8+CisgICAgICAgICAgPHJlZiBuYW1lPSJkZWZpbmUtZWxlbWVudCIvPgorICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImRpdiI+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImdyYW1tYXItY29udGVudCIvPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJpbmNsdWRlIj4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iaHJlZiI+CisgICAgICAgICAgICAgIDxkYXRhIHR5cGU9ImFueVVSSSIvPgorICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgICAgICA8cmVmIG5hbWU9ImluY2x1ZGUtY29udGVudCIvPgorICAgICAgICAgIDwvZWxlbWVudD4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgICA8L3plcm9Pck1vcmU+CisgICAgPC9pbnRlcmxlYXZlPgorICA8L2RlZmluZT4KKworICA8ZGVmaW5lIG5hbWU9ImluY2x1ZGUtY29udGVudCI+CisgICAgPGludGVybGVhdmU+CisgICAgICA8cmVmIG5hbWU9Im90aGVyIi8+CisgICAgICA8emVyb09yTW9yZT4KKyAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICA8cmVmIG5hbWU9InN0YXJ0LWVsZW1lbnQiLz4KKyAgICAgICAgICA8cmVmIG5hbWU9ImRlZmluZS1lbGVtZW50Ii8+CisgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iZGl2Ij4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgICAgIDxyZWYgbmFtZT0iaW5jbHVkZS1jb250ZW50Ii8+CisgICAgICAgICAgPC9lbGVtZW50PgorICAgICAgICA8L2Nob2ljZT4KKyAgICAgIDwvemVyb09yTW9yZT4KKyAgICA8L2ludGVybGVhdmU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0ic3RhcnQtZWxlbWVudCI+CisgICAgPGVsZW1lbnQgbmFtZT0ic3RhcnQiPgorICAgICAgPHJlZiBuYW1lPSJjb21iaW5lLWF0dCIvPgorICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgPHJlZiBuYW1lPSJvcGVuLXBhdHRlcm4iLz4KKyAgICA8L2VsZW1lbnQ+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iZGVmaW5lLWVsZW1lbnQiPgorICAgIDxlbGVtZW50IG5hbWU9ImRlZmluZSI+CisgICAgICA8YXR0cmlidXRlIG5hbWU9Im5hbWUiPgorICAgICAgICA8ZGF0YSB0eXBlPSJOQ05hbWUiLz4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAgPHJlZiBuYW1lPSJjb21iaW5lLWF0dCIvPgorICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgPHJlZiBuYW1lPSJvcGVuLXBhdHRlcm5zIi8+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKworICA8ZGVmaW5lIG5hbWU9ImNvbWJpbmUtYXR0Ij4KKyAgICA8b3B0aW9uYWw+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImNvbWJpbmUiPgorICAgICAgICA8Y2hvaWNlPgorICAgICAgICAgIDx2YWx1ZT5jaG9pY2U8L3ZhbHVlPgorICAgICAgICAgIDx2YWx1ZT5pbnRlcmxlYXZlPC92YWx1ZT4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L29wdGlvbmFsPgorICA8L2RlZmluZT4KKworICA8ZGVmaW5lIG5hbWU9Im9wZW4tcGF0dGVybnMiPgorICAgIDxpbnRlcmxlYXZlPgorICAgICAgPHJlZiBuYW1lPSJvdGhlciIvPgorICAgICAgPG9uZU9yTW9yZT4KKyAgICAgICAgPHJlZiBuYW1lPSJwYXR0ZXJuIi8+CisgICAgICA8L29uZU9yTW9yZT4KKyAgICA8L2ludGVybGVhdmU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0ib3Blbi1wYXR0ZXJuIj4KKyAgICA8aW50ZXJsZWF2ZT4KKyAgICAgIDxyZWYgbmFtZT0ib3RoZXIiLz4KKyAgICAgIDxyZWYgbmFtZT0icGF0dGVybiIvPgorICAgIDwvaW50ZXJsZWF2ZT4KKyAgPC9kZWZpbmU+CisKKyAgPGRlZmluZSBuYW1lPSJuYW1lLWNsYXNzIj4KKyAgICA8Y2hvaWNlPgorICAgICAgPGVsZW1lbnQgbmFtZT0ibmFtZSI+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPGRhdGEgdHlwZT0iUU5hbWUiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9ImFueU5hbWUiPgorICAgICAgICA8cmVmIG5hbWU9ImNvbW1vbi1hdHRzIi8+CisgICAgICAgIDxyZWYgbmFtZT0iZXhjZXB0LW5hbWUtY2xhc3MiLz4KKyAgICAgIDwvZWxlbWVudD4KKyAgICAgIDxlbGVtZW50IG5hbWU9Im5zTmFtZSI+CisgICAgICAgIDxyZWYgbmFtZT0iY29tbW9uLWF0dHMiLz4KKyAgICAgICAgPHJlZiBuYW1lPSJleGNlcHQtbmFtZS1jbGFzcyIvPgorICAgICAgPC9lbGVtZW50PgorICAgICAgPGVsZW1lbnQgbmFtZT0iY2hvaWNlIj4KKyAgICAgICAgPHJlZiBuYW1lPSJjb21tb24tYXR0cyIvPgorICAgICAgICA8cmVmIG5hbWU9Im9wZW4tbmFtZS1jbGFzc2VzIi8+CisgICAgICA8L2VsZW1lbnQ+CisgICAgPC9jaG9pY2U+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0iZXhjZXB0LW5hbWUtY2xhc3MiPgorICAgIDxpbnRlcmxlYXZlPgorICAgICAgPHJlZiBuYW1lPSJvdGhlciIvPgorICAgICAgPG9wdGlvbmFsPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJleGNlcHQiPgorICAgICAgICAgIDxyZWYgbmFtZT0ib3Blbi1uYW1lLWNsYXNzZXMiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9vcHRpb25hbD4KKyAgICA8L2ludGVybGVhdmU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0ib3Blbi1uYW1lLWNsYXNzZXMiPgorICAgIDxpbnRlcmxlYXZlPgorICAgICAgPHJlZiBuYW1lPSJvdGhlciIvPgorICAgICAgPG9uZU9yTW9yZT4KKyAgICAgICAgPHJlZiBuYW1lPSJuYW1lLWNsYXNzIi8+CisgICAgICA8L29uZU9yTW9yZT4KKyAgICA8L2ludGVybGVhdmU+CisgIDwvZGVmaW5lPgorCisgIDxkZWZpbmUgbmFtZT0ib3Blbi1uYW1lLWNsYXNzIj4KKyAgICA8aW50ZXJsZWF2ZT4KKyAgICAgIDxyZWYgbmFtZT0ib3RoZXIiLz4KKyAgICAgIDxyZWYgbmFtZT0ibmFtZS1jbGFzcyIvPgorICAgIDwvaW50ZXJsZWF2ZT4KKyAgPC9kZWZpbmU+CisKKyAgPGRlZmluZSBuYW1lPSJjb21tb24tYXR0cyI+CisgICAgPG9wdGlvbmFsPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJucyIvPgorICAgIDwvb3B0aW9uYWw+CisgICAgPG9wdGlvbmFsPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJkYXRhdHlwZUxpYnJhcnkiPgorICAgICAgICA8ZGF0YSB0eXBlPSJhbnlVUkkiLz4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvb3B0aW9uYWw+CisgICAgPHplcm9Pck1vcmU+CisgICAgICA8YXR0cmlidXRlPgorICAgICAgICA8YW55TmFtZT4KKyAgICAgICAgICA8ZXhjZXB0PgorICAgICAgICAgICAgPG5zTmFtZS8+CisgICAgICAgICAgICA8bnNOYW1lIG5zPSIiLz4KKyAgICAgICAgICA8L2V4Y2VwdD4KKyAgICAgICAgPC9hbnlOYW1lPgorICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC96ZXJvT3JNb3JlPgorICA8L2RlZmluZT4KKworICA8ZGVmaW5lIG5hbWU9Im90aGVyIj4KKyAgICA8emVyb09yTW9yZT4KKyAgICAgIDxlbGVtZW50PgorICAgICAgICA8YW55TmFtZT4KKyAgICAgICAgICA8ZXhjZXB0PgorICAgICAgICAgICAgPG5zTmFtZS8+CisgICAgICAgICAgPC9leGNlcHQ+CisgICAgICAgIDwvYW55TmFtZT4KKyAgICAgICAgPHplcm9Pck1vcmU+CisgICAgICAgICAgPGNob2ljZT4KKyAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgIDxhbnlOYW1lLz4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgICAgPHRleHQvPgorICAgICAgICAgICAgPHJlZiBuYW1lPSJhbnkiLz4KKyAgICAgICAgICA8L2Nob2ljZT4KKyAgICAgICAgPC96ZXJvT3JNb3JlPgorICAgICAgPC9lbGVtZW50PgorICAgIDwvemVyb09yTW9yZT4KKyAgPC9kZWZpbmU+CisKKyAgPGRlZmluZSBuYW1lPSJhbnkiPgorICAgIDxlbGVtZW50PgorICAgICAgPGFueU5hbWUvPgorICAgICAgPHplcm9Pck1vcmU+CisgICAgICAgIDxjaG9pY2U+CisgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxhbnlOYW1lLz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICA8dGV4dC8+CisgICAgICAgICAgPHJlZiBuYW1lPSJhbnkiLz4KKyAgICAgICAgPC9jaG9pY2U+CisgICAgICA8L3plcm9Pck1vcmU+CisgICAgPC9lbGVtZW50PgorICA8L2RlZmluZT4KKworPC9ncmFtbWFyPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81NzA3MDJfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81NzA3MDJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc0ZTU2ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3MDcwMl8wLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSBlZGl0ZWQgd2l0aCBYTUwgU3B5IHY0LjMgVSAoaHR0cDovL3d3dy54bWxzcHkuY29tKSBieSBhc2RmIChmZHNhKSAtLT4KKzwhLS1TYW1wbGUgWE1MIGZpbGUgZ2VuZXJhdGVkIGJ5IFhNTCBTcHkgdjQuMyBVIChodHRwOi8vd3d3LnhtbHNweS5jb20pLS0+Cis8ZG5fbGVuX2xpc3QgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKK3hzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJaOlxwcm90b1x3c2lmXHRlbXAueHNkIj4KKyAgICAgICAgPGRuX2xlbmd0aD4xNTwvZG5fbGVuZ3RoPgorICAgICAgICA8ZGVzdHJveT4xMjc8L2Rlc3Ryb3k+CisgICAgICAgIDxkbl9sZW5ndGg+MTU8L2RuX2xlbmd0aD4KKyAgICAgICAgPGRlc3Ryb3k+MTI3PC9kZXN0cm95PgorICAgICAgICA8ZG5fbGVuZ3RoPjE1PC9kbl9sZW5ndGg+CisgICAgICAgIDxkZXN0cm95PjEyNzwvZGVzdHJveT4KKzwvZG5fbGVuX2xpc3Q+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3MDcwMl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3MDcwMl8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTdhNGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTcwNzAyXzAueHNkCkBAIC0wLDAgKzEsMjUgQEAKKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCI+Cis8eHM6ZWxlbWVudCBuYW1lPSJkbl9sZW5fbGlzdCI+Cis8eHM6Y29tcGxleFR5cGU+CisgIDx4czpzZXF1ZW5jZSBtYXhPY2N1cnM9IjMiPgorICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iZG5fbGVuZ3RoIiBtaW5PY2N1cnM9IjAiPgorICAgICAgICAgIDx4czphbm5vdGF0aW9uPgorICAgICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj5EZXN0aW5hdGlvbiBOdW1iZXIgTGVuZ3RoPC94czpkb2N1bWVudGF0aW9uPgorICAgICAgICAgIDwveHM6YW5ub3RhdGlvbj4KKyAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmJ5dGUiPgorICAgICAgICAgICAgICAgICAgPHhzOm1pbkluY2x1c2l2ZSB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgICAgICAgPHhzOm1heEluY2x1c2l2ZSB2YWx1ZT0iMTUiLz4KKyAgICAgICAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICA8L3hzOmVsZW1lbnQ+CisgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkZXN0cm95IiB0eXBlPSJ4czpieXRlIiBtaW5PY2N1cnM9IjAiPgorICAgICAgICAgIDx4czphbm5vdGF0aW9uPgorICAgICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj5kZXN0cm95IGZsYWc8L3hzOmRvY3VtZW50YXRpb24+CisgICAgICAgICAgPC94czphbm5vdGF0aW9uPgorICAgICAgPC94czplbGVtZW50PgorICA8L3hzOnNlcXVlbmNlPgorPC94czpjb21wbGV4VHlwZT4KKzwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNDJmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxjb250YWN0PgorPC9jb250YWN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2OTVmZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMC54c2QKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgIDx4c2Q6ZWxlbWVudCBuYW1lPSAiY29udGFjdCIgdHlwZT0iQ29udGFjdFR5cGUiLz4KKyAgIDx4c2Q6Y29tcGxleFR5cGUgbmFtZT0iQ29udGFjdFR5cGUiPgorICAgICAgPHhzZDpjaG9pY2UgbWluT2NjdXJzPSIyIiBtYXhPY2N1cnM9IjIiPgorICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImN1c3RvbWVyIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPgorICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciICBtaW5PY2N1cnM9IjAiLz4KKyAgICAgIDwveHNkOmNob2ljZT4KKyAgIDwveHNkOmNvbXBsZXhUeXBlPgorPC94c2Q6c2NoZW1hPiAKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyZjNkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMS54bWwKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxjb250YWN0PgorICA8Y3VzdG9tZXIvPgorPC9jb250YWN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzNTQ5NjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81Nzk3NDZfMS54c2QKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgIDx4c2Q6ZWxlbWVudCBuYW1lPSAiY29udGFjdCIgdHlwZT0iQ29udGFjdFR5cGUiLz4KKyAgIDx4c2Q6Y29tcGxleFR5cGUgbmFtZT0iQ29udGFjdFR5cGUiPgorICAgICAgPHhzZDpjaG9pY2UgbWluT2NjdXJzPSIxIiBtYXhPY2N1cnM9IjIiPgorICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImN1c3RvbWVyIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPgorICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciICBtaW5PY2N1cnM9IjAiLz4KKyAgICAgIDwveHNkOmNob2ljZT4KKyAgIDwveHNkOmNvbXBsZXhUeXBlPgorPC94c2Q6c2NoZW1hPiAKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3OTc0Nl8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3OTc0Nl8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDE2ZGVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzIueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Y29udGFjdD4KKyAgPGN1c3RvbWVyLz4KKyAgPGN1c3RvbWVyLz4KKzwvY29udGFjdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3OTc0Nl8zLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3OTc0Nl8zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWRjYzIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzMueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Y29udGFjdD4KKyAgPGN1c3RvbWVyLz4KKyAgPGNvbW1lbnQvPgorICA8Y3VzdG9tZXIvPgorICA8Y29tbWVudC8+Cis8L2NvbnRhY3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81Nzk3NDZfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81Nzk3NDZfNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRiZGM1NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3OTc0Nl80LnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGNvbnRhY3Q+CisgIDxjdXN0b21lci8+CisgIDxjb21tZW50Lz4KKzwvY29udGFjdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3OTc0Nl81LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU3OTc0Nl81LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGIxMzUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTc5NzQ2XzUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Y29udGFjdD4KKyAgPGNvbW1lbnQvPgorICA8Y3VzdG9tZXIvPgorICA8Y29tbWVudC8+Cis8L2NvbnRhY3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODctYXR0cmlidXRlLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4Mjg4Ny1hdHRyaWJ1dGUueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ZDdkNGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODctYXR0cmlidXRlLnhzZApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJICAgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC1pbXBvcnQtY2FzZSIKKwkgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC1pbXBvcnQtY2FzZSI+CisKKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0idGVzdC1hdHRyaWJ1dGUiPgorICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJ0aGlzIiAvPgorICAgIDwveHM6cmVzdHJpY3Rpb24+CisgIDwveHM6c2ltcGxlVHlwZT4KKworPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODctY29tbW9uLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4Mjg4Ny1jb21tb24ueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYzM4NWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODctY29tbW9uLnhzZApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwkgICB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLm9yZy90ZXN0LWltcG9ydC1jYXNlIgorCSAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL3d3dy5leGFtcGxlLm9yZy90ZXN0LWltcG9ydC1jYXNlIj4KKyAgPHhzOmluY2x1ZGUgc2NoZW1hTG9jYXRpb249Ii4vNTgyODg3LWVsZW1lbnQueHNkIiAvPgorICA8eHM6aW5jbHVkZSBzY2hlbWFMb2NhdGlvbj0iLi81ODI4ODctYXR0cmlidXRlLnhzZCIgLz4KKworPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODctZWxlbWVudC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODctZWxlbWVudC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU2MjAyMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4Mjg4Ny1lbGVtZW50LnhzZApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJICAgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC1pbXBvcnQtY2FzZSIKKwkgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC1pbXBvcnQtY2FzZSI+CisgIDx4czppbmNsdWRlIHNjaGVtYUxvY2F0aW9uPSIuLzU4Mjg4Ny1jb21tb24ueHNkIiAvPgorCisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJ0ZXN0LWVsZW1lbnQiPgorICAgIDx4czphdHRyaWJ1dGUgbmFtZT0idGVzdC1hdHRyaWJ1dGUiIHR5cGU9InRlc3QtYXR0cmlidXRlIiAvPgorICA8L3hzOmNvbXBsZXhUeXBlPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0LWVsZW1lbnQiIHR5cGU9InRlc3QtZWxlbWVudCIgLz4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyODg3XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyODg3XzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNzQ3MTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODdfMC54bWwKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHRlc3QtY2FzZSB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLm9yZy90ZXN0LWNhc2UiCisJICAgeG1sbnM6dGM9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC1pbXBvcnQtY2FzZSIKKwkgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorCSAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5leGFtcGxlLm9yZy90ZXN0LWNhc2UgLi81ODI4ODctY2FzZS54c2QiPgorICA8dGM6dGVzdC1lbGVtZW50IHRlc3QtYXR0cmlidXRlPSJ0aGlzIiAvPgorPC90ZXN0LWNhc2U+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODdfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI4ODdfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNiMTc1YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4Mjg4N18wLnhzZApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJICAgeG1sbnM6dGM9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC1pbXBvcnQtY2FzZSIKKwkgICB4bWxucz0iaHR0cDovL3d3dy5leGFtcGxlLm9yZy90ZXN0LWNhc2UiCisJICAgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vd3d3LmV4YW1wbGUub3JnL3Rlc3QtY2FzZSI+CisKKyAgPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvdGVzdC1pbXBvcnQtY2FzZSIKKwkgICAgIHNjaGVtYUxvY2F0aW9uPSIuLzU4Mjg4Ny1jb21tb24ueHNkIiAvPgorCisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJ0ZXN0LWNhc2UiPgorICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgIDx4czplbGVtZW50IHJlZj0idGM6dGVzdC1lbGVtZW50IiAvPgorICAgIDwveHM6c2VxdWVuY2U+CisgIDwveHM6Y29tcGxleFR5cGU+CisgIDx4czplbGVtZW50IG5hbWU9InRlc3QtY2FzZSIgdHlwZT0idGVzdC1jYXNlIiAvPgorCis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0xLWNvbW1vbi54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMS1jb21tb24ueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhN2NiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMS1jb21tb24ueHNkCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gJElkJCAtLT4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorICAgICAgICAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIKKyAgICAgICAgICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIj4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTEtcHJvZzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTEtcHJvZzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZGRlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMS1wcm9nMS54c2QKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gJElkJCAtLT4KKzx4czpzY2hlbWEgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS94bWwvUHJvZzEiCisgICAgICAgICAgIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKyAgICAgICAgICAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiCisgICAgICAgICAgIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCIKKyAgICAgICAgICAgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vZXhhbXBsZS5jb20veG1sL1Byb2cxIj4KKworICAgIDx4czppbmNsdWRlIHNjaGVtYUxvY2F0aW9uPSI1ODI5MDYtMS1jb21tb24ueHNkIi8+CisKKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTEtcHJvZzItaW5jbHVkZS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMS1wcm9nMi1pbmNsdWRlLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzAxY2ZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTEtcHJvZzItaW5jbHVkZS54c2QKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAkSWQkIC0tPgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgICAgICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisgICAgICAgICAgIHhtbDpsYW5nPSJlbiI+CisKKyAgICA8eHM6aW5jbHVkZSBzY2hlbWFMb2NhdGlvbj0iNTgyOTA2LTEtY29tbW9uLnhzZCIvPgorCis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0xLXByb2cyLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0xLXByb2cyLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTI4ZmZmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTEtcHJvZzIueHNkCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICRJZCQgLS0+Cis8eHM6c2NoZW1hIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5jb20veG1sL1Byb2cyIgorICAgICAgICAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgICAgICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorICAgICAgICAgICBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisgICAgICAgICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMiI+CisKKyAgICA8eHM6aW5jbHVkZSBzY2hlbWFMb2NhdGlvbj0iNTgyOTA2LTEtY29tbW9uLnhzZCIvPgorCisgICAgPHhzOmluY2x1ZGUgc2NoZW1hTG9jYXRpb249IjU4MjkwNi0xLXByb2cyLWluY2x1ZGUueHNkIi8+CisKKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTFkODVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTFfMC54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbGxlY3RlZE91dHB1dCB4bWxucz0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9BZ2dyZWdhdG9yIgorICAgICAgICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZXhhbXBsZS5jb20veG1sL0FnZ3JlZ2F0b3IKKyAgICAgICAgICAgICA1ODI5MDYtMS54c2QiPjUuMzwvQ29sbGVjdGVkT3V0cHV0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzhmNWE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTFfMC54c2QKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gJElkJCAtLT4KKzx4czpzY2hlbWEgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS94bWwvQWdncmVnYXRvciIKKyAgICAgICAgICAgeG1sbnM6cHJvZzE9Imh0dHA6Ly9leGFtcGxlLmNvbS94bWwvUHJvZzEiCisgICAgICAgICAgIHhtbG5zOnByb2cyPSJodHRwOi8vZXhhbXBsZS5jb20veG1sL1Byb2cyIgorICAgICAgICAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgICAgICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorICAgICAgICAgICBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisgICAgICAgICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9BZ2dyZWdhdG9yIj4KKworICAgIDx4czppbXBvcnQgc2NoZW1hTG9jYXRpb249IjU4MjkwNi0xLXByb2cxLnhzZCIKKyAgICAgICAgICAgICAgIG5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMSIgLz4KKworICAgIDx4czppbXBvcnQgc2NoZW1hTG9jYXRpb249IjU4MjkwNi0xLXByb2cyLnhzZCIKKyAgICAgICAgICAgICAgIG5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMiIKKyAgICAgICAgICAgICAgIC8+CisKKyAgICA8eHM6ZWxlbWVudCBuYW1lPSJDb2xsZWN0ZWRPdXRwdXQiIHR5cGU9InhzOmZsb2F0Ii8+CisKKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTItY29tbW9uLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yLWNvbW1vbi54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNiOGMzNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yLWNvbW1vbi54c2QKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAkSWQkIC0tPgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgICAgICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorICAgICAgICAgICBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisgICAgICAgICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMyI+Cis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yLXByb2cxLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yLXByb2cxLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2QyZDQxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTItcHJvZzEueHNkCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICRJZCQgLS0+Cis8eHM6c2NoZW1hIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5jb20veG1sL1Byb2cxIgorICAgICAgICAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgICAgICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorICAgICAgICAgICBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisgICAgICAgICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMSI+CisKKyAgICA8eHM6aW5jbHVkZSBzY2hlbWFMb2NhdGlvbj0iNTgyOTA2LTItY29tbW9uLnhzZCIvPgorCis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yLXByb2cyLWluY2x1ZGUueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTItcHJvZzItaW5jbHVkZS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk4NWFhMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yLXByb2cyLWluY2x1ZGUueHNkCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gJElkJCAtLT4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorICAgICAgICAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIgorICAgICAgICAgICB4bWw6bGFuZz0iZW4iPgorCisgICAgPHhzOmluY2x1ZGUgc2NoZW1hTG9jYXRpb249IjU4MjkwNi0yLWNvbW1vbi54c2QiLz4KKworPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMi1wcm9nMi54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMi1wcm9nMi54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ0NmYyMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yLXByb2cyLnhzZApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAkSWQkIC0tPgorPHhzOnNjaGVtYSB4bWxucz0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMiIKKyAgICAgICAgICAgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorICAgICAgICAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIKKyAgICAgICAgICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIgorICAgICAgICAgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9leGFtcGxlLmNvbS94bWwvUHJvZzIiPgorCisgICAgPHhzOmluY2x1ZGUgc2NoZW1hTG9jYXRpb249IjU4MjkwNi0yLWNvbW1vbi54c2QiLz4KKworICAgIDx4czppbmNsdWRlIHNjaGVtYUxvY2F0aW9uPSI1ODI5MDYtMi1wcm9nMi1pbmNsdWRlLnhzZCIvPgorCis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkyODk1NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzLzU4MjkwNi0yXzAueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxDb2xsZWN0ZWRPdXRwdXQgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS94bWwvQWdncmVnYXRvciIKKyAgICAgICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9BZ2dyZWdhdG9yCisgICAgICAgICAgICAgNTgyOTA2LTItMC54c2QiPjUuMzwvQ29sbGVjdGVkT3V0cHV0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy81ODI5MDYtMl8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjJlYmI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvNTgyOTA2LTJfMC54c2QKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gJElkJCAtLT4KKzx4czpzY2hlbWEgeG1sbnM9Imh0dHA6Ly9leGFtcGxlLmNvbS94bWwvQWdncmVnYXRvciIKKyAgICAgICAgICAgeG1sbnM6cHJvZzE9Imh0dHA6Ly9leGFtcGxlLmNvbS94bWwvUHJvZzEiCisgICAgICAgICAgIHhtbG5zOnByb2cyPSJodHRwOi8vZXhhbXBsZS5jb20veG1sL1Byb2cyIgorICAgICAgICAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgICAgICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorICAgICAgICAgICBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisgICAgICAgICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9BZ2dyZWdhdG9yIj4KKworICAgIDx4czppbXBvcnQgc2NoZW1hTG9jYXRpb249IjU4MjkwNi0yLXByb2cxLnhzZCIKKyAgICAgICAgICAgICAgIG5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMSIgLz4KKworICAgIDx4czppbXBvcnQgc2NoZW1hTG9jYXRpb249IjU4MjkwNi0yLXByb2cyLnhzZCIKKyAgICAgICAgICAgICAgIG5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3htbC9Qcm9nMiIKKyAgICAgICAgICAgICAgIC8+CisKKyAgICA8eHM6ZWxlbWVudCBuYW1lPSJDb2xsZWN0ZWRPdXRwdXQiIHR5cGU9InhzOmZsb2F0Ii8+CisKKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJlNzBlMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbC54c2QKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJQdXJjaGFzZU9yZGVyVHlwZSI+CisgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgIDx4c2Q6YWxsPgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0ic2hpcFRvIiB0eXBlPSJVU0FkZHJlc3MiLz4KKyAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImJpbGxUbyIgdHlwZT0iVVNBZGRyZXNzIi8+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJpdGVtcyIgdHlwZT0iSXRlbXMiLz4KKyAgICAgIDwveHNkOmFsbD4KKyAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgIDx4c2Q6ZWxlbWVudCByZWY9ImNvbW1lbnQiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgIDwveHNkOnNlcXVlbmNlPgorICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im9yZGVyRGF0ZSIgdHlwZT0ieHNkOmRhdGUiLz4KKyAgPC94c2Q6Y29tcGxleFR5cGU+Cis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGwxXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTAwODhjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsMV8wLnhtbApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGE+CisgIDxiLz4KKzwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbDFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGwxXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4ZmVlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGwxXzAueHNkCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iQSI+CisgICAgPHhzOmFsbD4KKyAgICAgIDx4czplbGVtZW50IG5hbWU9ImIiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIi8+CisgICAgPC94czphbGw+CisgIDwveHM6Y29tcGxleFR5cGU+CisKKyAgPHhzOmVsZW1lbnQgbmFtZT0iYSIgdHlwZT0iQSIvPgorPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI1YjBmYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF8wLnhtbApAQCAtMCwwICsxIEBACis8ZG9jPjxhLz48Yi8+PGMvPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1YzA0ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfMC54c2QKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzZDplbGVtZW50IG5hbWU9ImRvYyI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6YWxsIG1pbk9jY3Vycz0iMSI+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJhIi8+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJiIi8+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJjIi8+CisgICAgICA8L3hzZDphbGw+CisgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFkNzk3ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF8xLnhtbApAQCAtMCwwICsxLDIgQEAKKzxkb2M+PGIvPjxjLz48YS8+PC9kb2M+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzM4NmYzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzEueHNkCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4c2Q6ZWxlbWVudCBuYW1lPSJkb2MiPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOmFsbCBtaW5PY2N1cnM9IjAiPgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iYSIvPgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iYiIvPgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iYyIvPgorICAgICAgPC94c2Q6YWxsPgorICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICA8L3hzZDplbGVtZW50PgorPC94c2Q6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMTU4MGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfMi54bWwKQEAgLTAsMCArMSBAQAorPGRvYz48Yi8+PGEvPjxjLz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF8yLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF8yLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzBiMGRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzIueHNkCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4c2Q6ZWxlbWVudCBuYW1lPSJkb2MiPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOmFsbD4KKyAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImEiLz4KKyAgICAgICAgPHhzZDplbGVtZW50IG1pbk9jY3Vycz0iMCIgbmFtZT0iYiIvPgorICAgICAgPC94c2Q6YWxsPgorICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICA8L3hzZDplbGVtZW50PgorPC94c2Q6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwMTFiM2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfMy54bWwKQEAgLTAsMCArMSBAQAorPGRvYz48YS8+PGIvPjwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmYTgwN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfNC54bWwKQEAgLTAsMCArMSBAQAorPGRvYz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF81LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF81LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjhmMzIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzUueG1sCkBAIC0wLDAgKzEgQEAKKzxkb2M+PGEvPjxiLz48YS8+PC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxfNi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RkNzFiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF82LnhtbApAQCAtMCwwICsxIEBACis8ZG9jPjxhLz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF83LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbF83LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDExYjNmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsXzcueG1sCkBAIC0wLDAgKzEgQEAKKzxkb2M+PGEvPjxiLz48L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE0NjQ2ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzAueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gc2ctYWxsLnhzZCI+CisJPGdtLUItMi8+CisJPGdtLUEtMS8+CQorPC9mb28+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxzZ18wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWQyN2E4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfMC54c2QKQEAgLTAsMCArMSwyNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0idXJuOnRlc3Q6Zm9vIgorCXhtbG5zOmZvbz0idXJuOnRlc3Q6Zm9vIj4KKworCTwhLS0gU3Vic3RpdHV0aW9uIGdyb3VwIGhlYWRzLiAtLT4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZ2gtQSIgYWJzdHJhY3Q9InRydWUiLz4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZ2gtQiIgYWJzdHJhY3Q9InRydWUiLz4KKworCTwhLS0gU3Vic3RpdHV0aW9uIGdyb3VwIG1lbWJlcnMuIC0tPgorCTx4c2Q6ZWxlbWVudCBuYW1lPSJnbS1BLTEiIHN1YnN0aXR1dGlvbkdyb3VwPSJmb286Z2gtQSIvPgorCTx4c2Q6ZWxlbWVudCBuYW1lPSJnbS1BLTIiIHN1YnN0aXR1dGlvbkdyb3VwPSJmb286Z2gtQSIvPgorCisJPHhzZDplbGVtZW50IG5hbWU9ImdtLUItMSIgc3Vic3RpdHV0aW9uR3JvdXA9ImZvbzpnaC1CIi8+CisJPHhzZDplbGVtZW50IG5hbWU9ImdtLUItMiIgc3Vic3RpdHV0aW9uR3JvdXA9ImZvbzpnaC1CIi8+CisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6YWxsPgorCQkJCTx4c2Q6ZWxlbWVudCByZWY9ImZvbzpnaC1BIi8+CisJCQkJPHhzZDplbGVtZW50IHJlZj0iZm9vOmdoLUIiLz4KKwkJCTwveHNkOmFsbD4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKworPC94c2Q6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFkYzljNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzEueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gc2ctYWxsLnhzZCI+CisJPGdtLUItMi8+CisJPGdtLUEtMi8+CQorPC9mb28+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM5Y2I3YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzIueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gc2ctYWxsLnhzZCI+CisJPGdtLUEtMi8+CQorCTxnbS1CLTIvPgorPC9mb28+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMzN2I3YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzMueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gc2ctYWxsLnhzZCI+CisJPGdtLUItMi8+CisJPGdtLUItMS8+CQorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxzZ180LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FsbHNnXzQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiYjY1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxzZ180LnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbyB4bWxucz0idXJuOnRlc3Q6Zm9vIiAKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorCXhzaTpzY2hlbWFMb2NhdGlvbj0idXJuOnRlc3Q6Zm9vIHNnLWFsbC54c2QiPgorCTxnbS1BLTEvPgorCTxnbS1BLTEvPgkKKzwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfNS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbGxzZ181LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGRkZTNlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYWxsc2dfNS54bWwKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28geG1sbnM9InVybjp0ZXN0OmZvbyIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKwl4c2k6c2NoZW1hTG9jYXRpb249InVybjp0ZXN0OmZvbyBzZy1hbGwueHNkIj4KKwk8Z20tQi0xLz4KKwk8Z20tQS0yLz4JCisJPGdtLUItMi8+Cis8L2Zvbz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Fubm90LWVycl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Fubm90LWVycl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTkyYjBhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW5ub3QtZXJyXzAueG1sCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIiAKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gYW5ub3QtZXJyXzAueHNkIi8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW5ub3QtZXJyXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW5ub3QtZXJyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZDgxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbm5vdC1lcnJfMC54c2QKQEAgLTAsMCArMSwyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIKKwl4bWxuczpnb289Imh0dHA6Ly9HT08iCisJeG1sbnM6YnV0PSJodHRwOi8vQlVUIj4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIiB4bWw6bGFuZz0iaGhoIj4KKwkJPHhzZDphbm5vdGF0aW9uIGlkPSJpZDEiIGRlYXRoPSJpcyBhIGdvb2QgZW50ZXJ0YWluZXIiIGJ1dDpzdWNoPSJpcyBsaWZlIj4KKwkJICAgIEkgc2hvdWxkbid0IGRvIHRoaXMgaGVyZS4uLgorCQkJPHhzZDphcHBpbmZvIGlkPSJpZDIiIHNvdXJjZT0ic29tZXdoZXJlIiAKKwkJCQlnb286ZnVuPSJiYWciIGZ1bj0iYW5vdGhlciBmdW4tYmFnIj4KKwkJCQl3ZWVlbGxsCisJCQk8L3hzZDphcHBpbmZvPgorCQkJPHhzZDpkb2N1bWVudGF0aW9uIHhtbDpsYW5nPSIqIiBpZD0iaWQzIiBzb3VyY2U9ImFueXdoZXJlIiAKKwkJCQlnb286bW90aGVycz0ib2YgaW52ZW50aW9uIiBtb3RoZXJzPSJkb24ndCBkbyB5b3VyIGRpc2hlcyI+CisJCQkJaG1tbW1tbQorCQkJPC94c2Q6ZG9jdW1lbnRhdGlvbj4KKwkJCS4uLmFuZCBoZXJlIGFzIHdlbGwgLSBtb3JlIHRoYW4gZXZlcgorCQk8L3hzZDphbm5vdGF0aW9uPgkKKwk8L3hzZDplbGVtZW50PgorCis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnkxXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55MV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTI2NGU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55MV8wLnhtbApAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IS0tIFRlc3RzIHhzZDphbnkgd2l0aCAiIyNhbnkiLiAtLT4KKzxmb286Zm9vIAorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6YmFyPSJodHRwOi8vQkFSIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBhbnkxXzAueHNkIj4KKworCTxmb286YW55dGhpbmc+CisJCTxmb286Ym9vIGJvb0F0dHI9IjEyMyIvPgorCTwvZm9vOmFueXRoaW5nPgorCTxiYXI6YW55dGhpbmc+CisJCTxmb286Ym9vIGJvb0F0dHI9IjIxMyIvPgorCTwvYmFyOmFueXRoaW5nPgorCTxhbnl0aGluZz4KKwkJPGZvbzpib28gYm9vQXR0cj0iMjEzIi8+CisJPC9hbnl0aGluZz4KKwkKKworPC9mb286Zm9vPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnkxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55MV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDAwODdiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55MV8wLnhzZApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0gVGVzdHMgeHNkOmFueSB3aXRoICIjI2FueSIuIC0tPgorPHhzZDpzY2hlbWEgCisJeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIj4JCQorCisJPHhzZDplbGVtZW50IG5hbWU9ImJvbyI+CisJCTx4c2Q6Y29tcGxleFR5cGU+CisJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJib29BdHRyIiB0eXBlPSJ4c2Q6aW50ZWdlciIgLz4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8eHNkOmNvbXBsZXhUeXBlPgorCQkJPHhzZDpzZXF1ZW5jZT4KKwkJCQk8eHNkOmFueSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9IjMiLz4KKwkJCTwveHNkOnNlcXVlbmNlPgorCQk8L3hzZDpjb21wbGV4VHlwZT4KKwk8L3hzZDplbGVtZW50PgorCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55Ml8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY0OWEyYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTJfMC54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCEtLSBUZXN0cyB4c2Q6YW55IHdpdGggYSBzZXQgb2YgbmFtZXNwYWNlcywgaWNsdWRpbmcgCisJIiMjbG9jYWwiIGFuZCAiIyN0YXJnZXROYW1lc3BhY2UiLiAtLT4KKzxmb286Zm9vIAorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIKKwl4bWxuczpiYXI9Imh0dHA6Ly9CQVIiCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGFueTJfMC54c2QiPgorCQorCTxmb286YW55dGhpbmc+CisJCTxmb286Ym9vIGJvb0F0dHI9IjEyMyIvPgkJCisJPC9mb286YW55dGhpbmc+CisKKwk8YmFyOmFueXRoaW5nPgorCQk8Zm9vOmJvbyBib29BdHRyPSIxMjMiLz4JCQorCTwvYmFyOmFueXRoaW5nPgorCisJPGFueXRoaW5nPgorCQk8Zm9vOmJvbyBib29BdHRyPSIxMjMiLz4JCQorCTwvYW55dGhpbmc+CisJCisJCis8L2Zvbzpmb28+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnkyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiZjcyNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnkyXzAueHNkCkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLSBUZXN0cyB4c2Q6YW55IHdpdGggYSBzZXQgb2YgbmFtZXNwYWNlcywgaWNsdWRpbmcgCisJIiMjbG9jYWwiIGFuZCAiIyN0YXJnZXROYW1lc3BhY2UiLiAtLT4KKzx4c2Q6c2NoZW1hIAorCXhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIgorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyI+CQkKKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJib28iPgorCQk8eHNkOmNvbXBsZXhUeXBlPgorCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0iYm9vQXR0ciIgdHlwZT0ieHNkOmludGVnZXIiIC8+CisJCTwveHNkOmNvbXBsZXhUeXBlPgorCTwveHNkOmVsZW1lbnQ+CisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDphbnkgCisJCQkJCW5hbWVzcGFjZT0iIyN0YXJnZXROYW1lc3BhY2UgaHR0cDovL0JBUiAjI2xvY2FsIiAKKwkJCQkJcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIAorCQkJCQltYXhPY2N1cnM9IjMiLz4KKwkJCTwveHNkOnNlcXVlbmNlPgorCQk8L3hzZDpjb21wbGV4VHlwZT4KKwk8L3hzZDplbGVtZW50PgorCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55M18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU4ZjkxYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTNfMC54bWwKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCEtLSBUZXN0cyB4c2Q6YW55LgorCWludmFsaWQ6IDxiYXIuQS8+IGFuZCA8Zm9vOmJhci5CLz4KKwl2YWxpZDogPGJhcjpiYXIuQy8+CistLT4KKzxmb286Zm9vIAorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6YmFyPSJodHRwOi8vQkFSIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBhbnkzXzAueHNkIj4KKworCTxiYXIuQS8+CQorCTxmb286YmFyLkIvPgkKKwk8YmFyOmJhci5DLz4KKwkKKzwvZm9vOmZvbz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55M18wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTNfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVjMjlmNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTNfMC54c2QKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSAKKwl4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIKKwl4bWxuczpmb289Imh0dHA6Ly9GT08iPgkJCisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgorCQkJCTx4c2Q6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4KKwkJCQk8eHNkOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CisJCQk8L3hzZDpzZXF1ZW5jZT4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKwkKKzwveHNkOnNjaGVtYT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk0XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjIwMzk3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NF8wLnhtbApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IS0tIFRlc3RzIHhzZDphbnkuCisJaW52YWxpZDogPGJhci5BLz4gYW5kIDxmb286YmFyLkIvPgorCXZhbGlkOiA8YmFyOmJhci5DLz4KKy0tPgorPGZvbzpmb28gCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAKKwl4bWxuczpiYXI9Imh0dHA6Ly9CQVIiCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGFueTRfMC54c2QiPgorCisJPGZvbzphbnl0aGluZz4KKwkJPGZvbzpib28gYm9vQXR0cj0iMTIzIi8+CisJPC9mb286YW55dGhpbmc+CQorCQorPC9mb286Zm9vPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk0XzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTkzNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NF8wLnhzZApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIAorCXhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIgorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyI+CQkKKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJib28iPgorCQk8eHNkOmNvbXBsZXhUeXBlPgorCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0iYm9vQXR0ciIgdHlwZT0ieHNkOmludGVnZXIiIC8+CisJCTwveHNkOmNvbXBsZXhUeXBlPgorCTwveHNkOmVsZW1lbnQ+CisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6Y2hvaWNlPgorCQkJCTx4c2Q6YW55IG5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1heE9jY3Vycz0iMSIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJhbnl0aGluZyIgZm9ybT0icXVhbGlmaWVkIj4KKwkJCQkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCQkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJCQkJPHhzZDplbGVtZW50IHJlZj0iZm9vOmJvbyIvPgorCQkJCQkJPC94c2Q6c2VxdWVuY2U+CisJCQkJCTwveHNkOmNvbXBsZXhUeXBlPgorCQkJCTwveHNkOmVsZW1lbnQ+CisJCQk8L3hzZDpjaG9pY2U+CisJCTwveHNkOmNvbXBsZXhUeXBlPgorCTwveHNkOmVsZW1lbnQ+CisJCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTcxNmNiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMC54bWwKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28geG1sbnM9InVybjp0ZXN0OmZvbyIKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249InVybjp0ZXN0OmZvbyBhbnk1XzAueHNkIj4KKwk8Ym9vLz4KKwk8Ym9vLz4KKzwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBjODc4OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMC54c2QKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0idXJuOnRlc3Q6Zm9vIgorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImJvbyIvPgorCQkJCTx4c2Q6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgbWF4T2NjdXJzPSI1IiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgorCQkJPC94c2Q6c2VxdWVuY2U+CisJCTwveHNkOmNvbXBsZXhUeXBlPgorCTwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFkY2I1NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMS54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gYW55NV8wLnhzZCI+CisJPGJvby8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+Cis8L2Zvbz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkM2M5ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzEueHNkCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9InVybjp0ZXN0OmZvbyIKKwllbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCI+CisJPHhzZDplbGVtZW50IG5hbWU9ImZvbyI+CisJCTx4c2Q6Y29tcGxleFR5cGU+CisJCQk8eHNkOnNlcXVlbmNlPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJib28iLz4KKwkJCQk8eHNkOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIG1heE9jY3Vycz0iNSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iYm9vIi8+CisJCQk8L3hzZDpzZXF1ZW5jZT4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NDM0ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzIueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gYW55NV8wLnhzZCI+CisJPGJvby8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvby8+Cis8L2Zvbz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyOGM0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzMueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbyB4bWxucz0idXJuOnRlc3Q6Zm9vIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0idXJuOnRlc3Q6Zm9vIGFueTVfMC54c2QiPgorCTxib28vPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NV80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWRjYjU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NV80LnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28geG1sbnM9InVybjp0ZXN0OmZvbyIKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249InVybjp0ZXN0OmZvbyBhbnk1XzAueHNkIj4KKwk8Ym9vLz4KKwk8Ym9vIHhtbG5zPSJ1cm46dGVzdDpiYXIiLz4KKwk8Ym9vIHhtbG5zPSJ1cm46dGVzdDpiYXIiLz4KKwk8Ym9vIHhtbG5zPSJ1cm46dGVzdDpiYXIiLz4KKwk8Ym9vIHhtbG5zPSJ1cm46dGVzdDpiYXIiLz4KKwk8Ym9vIHhtbG5zPSJ1cm46dGVzdDpiYXIiLz4KKwk8Ym9vIHhtbG5zPSJ1cm46dGVzdDpiYXIiLz4KKzwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55NV81LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfNS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA5ZDhhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfNS54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gYW55NV8wLnhzZCI+CisJPGJvby8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvbyB4bWxucz0idXJuOnRlc3Q6YmFyIi8+CisJPGJvby8+Cis8L2Zvbz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTVfNi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMGFkNzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk1XzYueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbyB4bWxucz0idXJuOnRlc3Q6Zm9vIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0idXJuOnRlc3Q6Zm9vIGFueTVfMC54c2QiPgorCTxib28vPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28geG1sbnM9InVybjp0ZXN0OmJhciIvPgorCTxib28vPgorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk2XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55Nl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNjhhMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55Nl8wLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLSBEdW1teSBpbnN0YW5jZSBmb3IgYW55LTFfMS54c2QgLS0+Cis8Zm9vOmZvbyB4bWxuczpmb289InVybjp0ZXN0OmZvbyIgeG1sbnM6bW9vPSJ1cm46dGVzdDptb28iCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKwl4c2k6c2NoZW1hTG9jYXRpb249InVybjp0ZXN0OmZvbyBhbnktMV8xLnhzZCI+CisJPGZvbzpiYXIvPgorCTxtb286bW9vLz4KKzwvZm9vOmZvbz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk2XzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55Nl8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2IyZjVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55Nl8xLnhzZApAQCAtMCwwICsxLDM2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0KK0NvbnRlbnQgbW9kZWwgZXJyb3I6CisKK2FueS1lcnItbm90LWRldGVybWluaXN0LTEueHNkOjI5OiBlbGVtZW50IGNvbXBsZXhUeXBlOiBTY2hlbWFzIHBhcnNlciBlcnJvciA6IAorbG9jYWwgY29tcGxleCB0eXBlOiBUaGUgY29udGVudCBtb2RlbCBpcyBub3QgZGV0ZXJtaW5pc3QuCisKK0FzIHBlciBYZXJjZXMgYW5kIFhTViB0aGlzIHNjaGVtYSBpcyBPSy4KKworVGhlIHByb2JsZW0gYXBwZWFycyB3aGVuIHRoZSBtYXhPY2N1cnMgb2YgPGJhcj4gaXMgZ3JlYXRlciB0aGFuCit0aGUgb25lIG9mIHRoZSA8YW55PiB3aWxkY2FyZC4gQWRkaXRpb25hbGx5IGlmIGJvdGggYXJlICJ1bmJvdW5kZWQiLgorSWYgdGhlIGxhdHRlciBpcyBhIGRpZmZlcmVudCBpc3N1ZSB3ZSBzaG91bGQgYWRkIGFuIGV4cGxpY2l0IHRlc3QKK2ZvciBpdC4KKworRXhhbXBsZXM6Cis8YmFyPiAgICAgICAgPGFueT4gICAgICAgIHJlc3VsdAorIDIgICAgICAgICAgICAxICAgICAgICAgICBlcnJvcgorIDIgICAgICAgICAgICAyICAgICAgICAgICBPSworIDEgICAgICAgICAgICAyICAgICAgICAgICBPSworIHVuYm91bmRlZCAgICAyICAgICAgICAgICBlcnJvcgorIHVuYm91bmRlZCAgICB1bmJvdW5kZWQgICBlcnJvcgorIDIgICAgICAgICAgICB1bmJvdW5kZWQgICBPSworLS0+CisKKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0idXJuOnRlc3Q6Zm9vIgorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKwk8eHM6ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8eHM6Y29tcGxleFR5cGU+CisJCQk8eHM6c2VxdWVuY2U+CisJCQkJPHhzOmVsZW1lbnQgbmFtZT0iYmFyIiBtYXhPY2N1cnM9IjIiLz4KKwkJCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgbWF4T2NjdXJzPSIxIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgorCQkgIAk8L3hzOnNlcXVlbmNlPgorCQk8L3hzOmNvbXBsZXhUeXBlPgorCTwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTZfMi54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk2XzIueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NTJjYTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk2XzIueHNkCkBAIC0wLDAgKzEsMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLQorICAiZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOgorICAgbG9jYWwgY29tcGxleCB0eXBlOiBUaGUgY29udGVudCBtb2RlbCBpcyBub3QgZGV0ZXJtaW5pc3QuIgorCisgIFRoaXMgc2NoZW1hIGlzIE9LIHdpdGggWFNWIGFuZCBYZXJjZXMuIAorLS0+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9InVybjp0ZXN0OmZvbyIKKwllbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCI+CisJPHhzOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzOmNvbXBsZXhUeXBlPgorCQkJPHhzOnNlcXVlbmNlPgorCQkJCTx4czplbGVtZW50IG5hbWU9ImJhciIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKwkJCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4KKwkJICAJPC94czpzZXF1ZW5jZT4KKwkJPC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4gCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk3XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55N18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODhiMWU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55N18wLnhtbApAQCAtMCwwICsxLDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0gCitObyBlcnJvciByZXBvcnRlZC4KKworU2VlbXMgbGlrZSA8bW9vPiBpcyBhY2NlcHRlZCwgYnV0IHNob3VsZCBub3QsIHNpbmNlICIjI290aGVyIiBydWxlcyBvdXQKK2VsZW1lbnRzIGluIG5vIG5hbWVzcGFjZS4KKworWGVyY2VzIHJlcG9ydHM6CithbnktZXJyLTIueG1sOjE4LDg6IChFcnJvcikgY3ZjLWNvbXBsZXgtdHlwZS4yLjQuYTogSW52YWxpZCBjb250ZW50IHN0YXJ0aW5nIAord2l0aCBlbGVtZW50ICdtb28nLiAKK09uZSBvZiAneyJ1cm46dGVzdDpmb28iOmJhciwgV0NbIyNvdGhlcjoidXJuOnRlc3Q6Zm9vIl19JyBpcyBleHBlY3RlZC4KKworLS0+Cis8Zm9vOmZvbyB4bWxuczpmb289InVybjp0ZXN0OmZvbyIgeG1sbnM6bW9vPSJ1cm46dGVzdDptb28iCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKwl4c2k6c2NoZW1hTG9jYXRpb249InVybjp0ZXN0OmZvbyBhbnktMl8xLnhzZCI+CisJPGZvbzpiYXIvPgorCTxtb28vPgorPC9mb286Zm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55N18xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTdfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjI0YzcxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTdfMS54bWwKQEAgLTAsMCArMSwxOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIAorRXJyb3IgcmVwb3J0ZWQ6CisKK2FueS0yXzEueG1sOjE3OiBlbGVtZW50IGJhcjogU2NoZW1hcyB2YWxpZGl0eSBlcnJvciA6IAorRWxlbWVudCAne3Vybjp0ZXN0OmZvb31iYXInOiBUaGlzIGVsZW1lbnQgaXMgbm90IGV4cGVjdGVkLiAKK0V4cGVjdGVkIGlzIG9uZSBvZiAoIHsjI290aGVyOnVybjp0ZXN0OmZvb30qICkuCisKK1RpbnkgZ2xpdGNoOiB0aGUgZXJyb3IgcmVwb3J0IG1lY2hhbmlzbSBmYWlscyB0byByZWNvZ25pemUKK3RoYXQgdGhlcmUgaXMgb25seSBvbmUgZWxlbWVudCBvZiBjaG9pY2UuIEl0IHNob3VsZCByZXBvcnQ6CisiRXhjZXB0ZWQgaXMgKCB7IyNvdGhlcjp1cm46dGVzdDpmb299KiApLiIuCistLT4KKzxmb286Zm9vIHhtbG5zOmZvbz0idXJuOnRlc3Q6Zm9vIiB4bWxuczptb289InVybjp0ZXN0Om1vbyIKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorCXhzaTpzY2hlbWFMb2NhdGlvbj0idXJuOnRlc3Q6Zm9vIGFueS0yXzEueHNkIj4KKwk8Zm9vOmJhci8+CisJPGZvbzpiYXIvPgorPC9mb286Zm9vPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTdfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk3XzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NjkwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk3XzEueHNkCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIg0KKwl0YXJnZXROYW1lc3BhY2U9InVybjp0ZXN0OmZvbyINCisJZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJmb28iPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgbmFtZT0iYmFyIi8+DQorCQkJCTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorPC94czpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55N18yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTdfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZkODRkMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueTdfMi54bWwKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIAorTm8gZXJyb3IgcmVwb3J0ZWQuCisKK1NlZW1zIGxpa2UgPG1vbz4gaXMgYWNjZXB0ZWQsIGJ1dCBzaG91bGQgbm90LCBzaW5jZSAiIyNvdGhlciIgcnVsZXMgb3V0CitlbGVtZW50cyBpbiBubyBuYW1lc3BhY2UuCisKK1hlcmNlcyByZXBvcnRzOgorYW55LWVyci0yLnhtbDoxOCw4OiAoRXJyb3IpIGN2Yy1jb21wbGV4LXR5cGUuMi40LmE6IEludmFsaWQgY29udGVudCBzdGFydGluZyAKK3dpdGggZWxlbWVudCAnbW9vJy4gCitPbmUgb2YgJ3sidXJuOnRlc3Q6Zm9vIjpiYXIsIFdDWyMjb3RoZXI6InVybjp0ZXN0OmZvbyJdfScgaXMgZXhwZWN0ZWQuCisKKy0tPgorPGZvbzpmb28geG1sbnM6Zm9vPSJ1cm46dGVzdDpmb28iIHhtbG5zOm1vbz0idXJuOnRlc3Q6bW9vIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gYW55N18yLnhzZCI+CisJPGZvbzpiYXIvPgorCTxtb286bW9vLz4JCis8L2Zvbzpmb28+CisgCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk3XzIueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55N18yLnhzZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYWJmZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55N18yLnhzZApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSINCisJdGFyZ2V0TmFtZXNwYWNlPSJ1cm46dGVzdDpmb28iDQorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4NCisJPHhzOmVsZW1lbnQgbmFtZT0iZm9vIj4NCisJCTx4czpjb21wbGV4VHlwZT4NCisJCQk8eHM6c2VxdWVuY2U+DQorCQkJCTx4czplbGVtZW50IG5hbWU9ImJhciIvPg0KKwkJCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1heE9jY3Vycz0iMiIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorPC94czpzY2hlbWE+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55OF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueThfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU4N2NmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueThfMC54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb286Zm9vIHhtbG5zOmZvbz0idXJuOnRlc3Q6Zm9vIgorCXhtbG5zOm1vbz0idXJuOnRlc3Q6bW9vIgorCXhtbG5zOmJvbz0idXJuOnRlc3Q6Ym9vIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gYW55OF8xLnhzZCI+CisJPGZvbzpiYXIvPgorICAgICAgICA8Zm9vOmJhci8+ICAKKzwvZm9vOmZvbz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueThfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk4XzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNjQ4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnk4XzEueHNkCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLQorICAiZWxlbWVudCBjb21wbGV4VHlwZTogU2NoZW1hcyBwYXJzZXIgZXJyb3IgOiAKKyAgIGxvY2FsIGNvbXBsZXggdHlwZTogVGhlIGNvbnRlbnQgbW9kZWwgaXMgbm90IGRldGVybWluaXN0LiIKKworICBUaGlzIHNjaGVtYSBpcyBPSyB3aXRoIFhTViBhbmQgWGVyY2VzLiAKKy0tPg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIg0KKwl0YXJnZXROYW1lc3BhY2U9InVybjp0ZXN0OmZvbyINCisJZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJmb28iPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgbmFtZT0iYmFyIi8+DQorCQkJCTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIwIi8+CisJCQkJPHhzOmVsZW1lbnQgbmFtZT0iYmFyIi8+DQorCQkJPC94czpzZXF1ZW5jZT4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlLWVycm9yczFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZS1lcnJvcnMxXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZTk0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZS1lcnJvcnMxXzAueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmb28KKwl4bWxucz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAKKwl4bWxuczpiYXI9Imh0dHA6Ly9CQVIiIAorCXhtbG5zOmRvbz0iaHR0cDovL0RPTyIgCisJeG1sbnM6aW1wb3J0PSJodHRwOi8vSU1QT1JUIiAKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gYW55QXR0ci1kZXJpdmUtZXJyb3JzMV8wLnhzZCI+CisKKwk8ZGVyaXZlLjFfMSBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iLz4KKwk8ZGVyaXZlLjFfNCBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iLz4KKwk8ZGVyaXZlLjJfMSBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIiAvPgorCTxkZXJpdmUuM18xIGJhckE9Im8iIGZvbzpiYXJDPSJvIiBkb286YmFyRD0ibyIgLz4KKwk8ZGVyaXZlLjRfMSBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIi8+CisKKwk8ZGVyaXZlLjVfMV9hIGJhckE9Im8iIGJhcjpiYXJCPSJvIiBmb286YmFyQz0ibyIgZG9vOmJhckQ9Im8iIC8+CisJPGRlcml2ZS41XzFfYiBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIiAvPgorCisJPGRlcml2ZS41XzJfYSBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIiAvPgorCTxkZXJpdmUuNV8yX2IgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIiBkb286YmFyRD0ibyIgLz4KKworCTxkZXJpdmUuNV80X2EgYmFyOmJhckI9Im8iIGRvbzpiYXJEPSJvIiAvPgorCTxkZXJpdmUuNV80X2IgYmFyOmJhckI9Im8iIGRvbzpiYXJEPSJvIiAvPgorCisJPGRlcml2ZS42XzEgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIiBkb286YmFyRD0ibyIvPgorCTxkZXJpdmUuNl8yIGJhcjpiYXJCPSJvIiBmb286YmFyQz0ibyIgZG9vOmJhckQ9Im8iLz4KKzwvZm9vPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlLWVycm9yczFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZS1lcnJvcnMxXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYjliYWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZS1lcnJvcnMxXzAueHNkCkBAIC0wLDAgKzEsMjIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eHNkOnNjaGVtYSB4bWxuczpmb289Imh0dHA6Ly9GT08iIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOmltcG9ydD0iaHR0cDovL0lNUE9SVCIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKwk8eHNkOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9JTVBPUlQiIHNjaGVtYUxvY2F0aW9uPSJhbnlBdHRyLmltcG9ydEEuMV8wLnhzZCIvPgkKKwk8eHNkOmltcG9ydCBzY2hlbWFMb2NhdGlvbj0iYW55QXR0ci5pbXBvcnRCLjFfMC54c2QiLz4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJICAgIDx4c2Q6c2VxdWVuY2U+CQkJCQorCQkJCTwhLS0gQXR0cmlidXRlIFdpbGRjYXJkIFVuaW9uIC0tPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkZXJpdmUuMV8xIiB0eXBlPSJmb286dHlwZS4xXzEiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjFfNCIgdHlwZT0iZm9vOnR5cGUuMV80Ii8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRlcml2ZS4yXzEiIHR5cGU9ImZvbzp0eXBlLjJfMSIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkZXJpdmUuM18xIiB0eXBlPSJmb286dHlwZS4zXzEiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjRfMSIgdHlwZT0iZm9vOnR5cGUuNF8xIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRlcml2ZS41XzFfYSIgdHlwZT0iZm9vOnR5cGUuNV8xX2EiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjVfMV9iIiB0eXBlPSJmb286dHlwZS41XzFfYiIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkZXJpdmUuNV8yX2EiIHR5cGU9ImZvbzp0eXBlLjVfMl9hIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRlcml2ZS41XzJfYiIgdHlwZT0iZm9vOnR5cGUuNV8yX2IiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjVfNF9hIiB0eXBlPSJmb286dHlwZS41XzRfYSIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkZXJpdmUuNV80X2IiIHR5cGU9ImZvbzp0eXBlLjVfNF9iIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRlcml2ZS42XzEiICAgdHlwZT0iZm9vOnR5cGUuNl8xIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRlcml2ZS42XzIiICAgdHlwZT0iZm9vOnR5cGUuNl8yIi8+CisJCQk8L3hzZDpzZXF1ZW5jZT4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKwkKKwk8IS0tIEF0dHJpYnV0ZSBXaWxkY2FyZCBVbmlvbiAtLT4KKworCTwhLS0gMS4gSWYgTzEgYW5kIE8yIGFyZSB0aGUgc2FtZSB2YWx1ZSwgdGhlbiB0aGF0IHZhbHVlIG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuMV8xIj4JCisJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisJCQk8eHNkOmV4dGVuc2lvbiBiYXNlPSJmb286dHlwZS5iYXNlLjFfMSI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjFfMSI+CQorCQk8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZm9vOmF0dHJHci4xXzEiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDphdHRyaWJ1dGVHcm91cCBuYW1lPSJhdHRyR3IuMV8xIj4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4KKwk8L3hzZDphdHRyaWJ1dGVHcm91cD4KKworCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS4xXzQiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuMV80Ij4KKwkJCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9Imh0dHA6Ly9CQVIgIyNsb2NhbCBodHRwOi8vRk9PIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisgICAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuMV80Ij4JCisJCTx4c2Q6YXR0cmlidXRlR3JvdXAgcmVmPSJmb286YXR0ckdyLjFfNCIvPgkJCQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjbG9jYWwgaHR0cDovL0JBUiAgICMjdGFyZ2V0TmFtZXNwYWNlICIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDphdHRyaWJ1dGVHcm91cCBuYW1lPSJhdHRyR3IuMV80Ij4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIgIGh0dHA6Ly9GT08gIGh0dHA6Ly9CQVIgIyNsb2NhbCIvPgorCTwveHNkOmF0dHJpYnV0ZUdyb3VwPgorCisJPCEtLSAyLiBJZiBlaXRoZXIgTzEgb3IgTzIgaXMgYW55LCB0aGVuIGFueSBtdXN0IGJlIHRoZSB2YWx1ZS4gLS0+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLjJfMSI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS4yXzEiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNhbnkiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCQkJPC94c2Q6ZXh0ZW5zaW9uPgorCQk8L3hzZDpjb21wbGV4Q29udGVudD4KKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuYmFzZS4yXzEiPgkKKwkJPHhzZDphdHRyaWJ1dGVHcm91cCByZWY9ImZvbzphdHRyR3IuMl8xIi8+CQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNhbnkiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6YXR0cmlidXRlR3JvdXAgbmFtZT0iYXR0ckdyLjJfMSI+CisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCAjI3RhcmdldE5hbWVzcGFjZSIvPgorCTwveHNkOmF0dHJpYnV0ZUdyb3VwPgorCisJPCEtLSAzLiBJZiBib3RoIE8xIGFuZCBPMiBhcmUgc2V0cyBvZiAobmFtZXNwYWNlIG5hbWVzIG9yILdhYnNlbnS3KSwgCisJCXRoZW4gdGhlIHVuaW9uIG9mIHRob3NlIHNldHMgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS4zXzEiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuM18xIj4KKwkJCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjdGFyZ2V0TmFtZXNwYWNlIGh0dHA6Ly9ET08iIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCQkJPC94c2Q6ZXh0ZW5zaW9uPgorCQk8L3hzZDpjb21wbGV4Q29udGVudD4KKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuYmFzZS4zXzEiPgkKKwkJPHhzZDphdHRyaWJ1dGVHcm91cCByZWY9ImZvbzphdHRyR3IuM18xIi8+CQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDphdHRyaWJ1dGVHcm91cCBuYW1lPSJhdHRyR3IuM18xIj4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIGh0dHA6Ly9CQVIiLz4KKwk8L3hzZDphdHRyaWJ1dGVHcm91cD4KKwk8IS0tIDQgSWYgdGhlIHR3byBhcmUgbmVnYXRpb25zIG9mIGRpZmZlcmVudCB2YWx1ZXMgKG5hbWVzcGFjZSAKKwkgbmFtZXMgb3Igt2Fic2VudLcpLCB0aGVuIGEgcGFpciBvZiBub3QgYW5kILdhYnNlbnS3IG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNF8xIj4JCisJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisJCQk8eHNkOmV4dGVuc2lvbiBiYXNlPSJpbXAudHlwZS5iYXNlLmRlcml2ZS40XzEiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTwhLS0gNSBJZiBlaXRoZXIgTzEgb3IgTzIgaXMgYSBwYWlyIG9mIG5vdCBhbmQgYSBuYW1lc3BhY2UgbmFtZSBhbmQgCisJICB0aGUgb3RoZXIgaXMgYSBzZXQgb2YgKG5hbWVzcGFjZSBuYW1lcyBvciC3YWJzZW50tykgKGNhbGwgdGhpcyBzZXQgUyksIAorCSAgdGhlbiBUaGUgYXBwcm9wcmlhdGUgY2FzZSBhbW9uZyB0aGUgZm9sbG93aW5nIG11c3QgYmUgdHJ1ZTogLS0+CisJPCEtLSA1LjEgSWYgdGhlIHNldCBTIGluY2x1ZGVzIGJvdGggdGhlIG5lZ2F0ZWQgbmFtZXNwYWNlIG5hbWUgYW5kIAorCSAgt2Fic2VudLcsIHRoZW4gYW55IG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV8xX2EiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV8xX2EiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCAjI3RhcmdldE5hbWVzcGFjZSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfMV9hIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisKKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV8xX2IiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV8xX2IiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfMV9iIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCAjI3RhcmdldE5hbWVzcGFjZSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisKKwk8IS0tIDUuMiBJZiB0aGUgc2V0IFMgaW5jbHVkZXMgdGhlIG5lZ2F0ZWQgbmFtZXNwYWNlIG5hbWUgYnV0IG5vdCC3YWJzZW50tywgCisJICB0aGVuIGEgcGFpciBvZiBub3QgYW5kILdhYnNlbnS3IG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV8yX2EiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV8yX2EiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyN0YXJnZXROYW1lc3BhY2UgaHR0cDovL0JBUiIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfMl9hIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisKKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV8yX2IiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV8yX2IiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfMl9iIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyN0YXJnZXROYW1lc3BhY2UgaHR0cDovL0JBUiIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPCEtLSA1LjMgSWYgdGhlIHNldCBTIGluY2x1ZGVzILdhYnNlbnS3IGJ1dCBub3QgdGhlIG5lZ2F0ZWQgbmFtZXNwYWNlIG5hbWUsIAorCSAgdGhlbiB0aGUgdW5pb24gaXMgbm90IGV4cHJlc3NpYmxlLiAtLT4KKwk8IS0tCisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLjVfM19hIj4JCisJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisJCQk8eHNkOmV4dGVuc2lvbiBiYXNlPSJmb286dHlwZS5iYXNlLjVfM19hIj4KKwkJCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjbG9jYWwgaHR0cDovL0JBUiIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfM19hIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisKKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV8zX2IiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV8zX2IiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfM19iIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCBodHRwOi8vQkFSIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwktLT4KKwk8IS0tIDUuNCBJZiB0aGUgc2V0IFMgZG9lcyBub3QgaW5jbHVkZSBlaXRoZXIgdGhlIG5lZ2F0ZWQgbmFtZXNwYWNlIG5hbWUgCisJCW9yILdhYnNlbnS3LCB0aGVuIHdoaWNoZXZlciBvZiBPMSBvciBPMiBpcyBhIHBhaXIgb2Ygbm90IGFuZCBhIG5hbWVzcGFjZSAKKwkJbmFtZSBtdXN0IGJlIHRoZSB2YWx1ZS4gLS0+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLjVfNF9hIj4JCisJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisJCQk8eHNkOmV4dGVuc2lvbiBiYXNlPSJmb286dHlwZS5iYXNlLjVfNF9hIj4KKwkJCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9Imh0dHA6Ly9CQVIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCQkJPC94c2Q6ZXh0ZW5zaW9uPgorCQk8L3hzZDpjb21wbGV4Q29udGVudD4KKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuYmFzZS41XzRfYSI+CQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCTwveHNkOmNvbXBsZXhUeXBlPgorCisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLjVfNF9iIj4JCisJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisJCQk8eHNkOmV4dGVuc2lvbiBiYXNlPSJmb286dHlwZS5iYXNlLjVfNF9iIj4KKwkJCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCQkJPC94c2Q6ZXh0ZW5zaW9uPgorCQk8L3hzZDpjb21wbGV4Q29udGVudD4KKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuYmFzZS41XzRfYiI+CQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9Imh0dHA6Ly9CQVIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCTwveHNkOmNvbXBsZXhUeXBlPgorCTwhLS0gNiBJZiBlaXRoZXIgTzEgb3IgTzIgaXMgYSBwYWlyIG9mIG5vdCBhbmQgt2Fic2VudLcgYW5kIHRoZSBvdGhlciBpcyBhIAorCSAgc2V0IG9mIChuYW1lc3BhY2UgbmFtZXMgb3Igt2Fic2VudLcpIChhZ2FpbiwgY2FsbCB0aGlzIHNldCBTKSwgdGhlbiBUaGUgCisJICBhcHByb3ByaWF0ZSBjYXNlIGFtb25nIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiAtLT4KKwk8IS0tIDYuMSBJZiB0aGUgc2V0IFMgaW5jbHVkZXMgt2Fic2VudLcsIHRoZW4gYW55IG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNl8xIj4JCisJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisJCQk8eHNkOmV4dGVuc2lvbiBiYXNlPSJpbXAudHlwZS5iYXNlLmRlcml2ZS42Ij4KKwkJCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjbG9jYWwgaHR0cDovL0JBUiIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTwhLS0gNi4yIElmIHRoZSBzZXQgUyBkb2VzIG5vdCBpbmNsdWRlILdhYnNlbnS3LCB0aGVuIGEgcGFpciBvZiBub3QgYW5kILdhYnNlbnS3IAorCSAgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS42XzIiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImltcC50eXBlLmJhc2UuZGVyaXZlLjYiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0JBUiBodHRwOi8vRE9PIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisKKzwveHNkOnNjaGVtYT4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZTFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZTFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU4OWY0NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMV8wLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8Zm9vCisJeG1sbnM9Imh0dHA6Ly9GT08iIAorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6YmFyPSJodHRwOi8vQkFSIiAKKwl4bWxuczpkb289Imh0dHA6Ly9ET08iIAorCXhtbG5zOmltcG9ydD0iaHR0cDovL0lNUE9SVCIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGFueUF0dHItZGVyaXZlMV8wLnhzZCI+CisKKwk8ZGVyaXZlLjFfMSBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iLz4KKwk8ZGVyaXZlLjFfNCBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iLz4KKwk8ZGVyaXZlLjJfMSBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIiAvPgorCTxkZXJpdmUuM18xIGJhckE9Im8iIGZvbzpiYXJDPSJvIiBkb286YmFyRD0ibyIgLz4KKwk8ZGVyaXZlLjRfMSBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIi8+CisKKwk8ZGVyaXZlLjVfMV9hIGJhckE9Im8iIGJhcjpiYXJCPSJvIiBmb286YmFyQz0ibyIgZG9vOmJhckQ9Im8iIC8+CisJPGRlcml2ZS41XzFfYiBiYXJBPSJvIiBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIiAvPgorCisJPGRlcml2ZS41XzJfYSBiYXI6YmFyQj0ibyIgZm9vOmJhckM9Im8iIGRvbzpiYXJEPSJvIiAvPgorCTxkZXJpdmUuNV8yX2IgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIiBkb286YmFyRD0ibyIgLz4KKworCTxkZXJpdmUuNV80X2EgYmFyOmJhckI9Im8iIGRvbzpiYXJEPSJvIiAvPgorCTxkZXJpdmUuNV80X2IgYmFyOmJhckI9Im8iIGRvbzpiYXJEPSJvIiAvPgorCisJPGRlcml2ZS42XzEgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIiBkb286YmFyRD0ibyIvPgorCTxkZXJpdmUuNl8yIGJhcjpiYXJCPSJvIiBmb286YmFyQz0ibyIgZG9vOmJhckQ9Im8iLz4KKzwvZm9vPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzE0ZDk5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUxXzAueHNkCkBAIC0wLDAgKzEsMjI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eHNkOnNjaGVtYSB4bWxuczpmb289Imh0dHA6Ly9GT08iIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOmltcG9ydD0iaHR0cDovL0lNUE9SVCIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKwk8eHNkOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9JTVBPUlQiIHNjaGVtYUxvY2F0aW9uPSJhbnlBdHRyLmltcG9ydEEuMV8wLnhzZCIvPgkKKwk8eHNkOmltcG9ydCBzY2hlbWFMb2NhdGlvbj0iYW55QXR0ci5pbXBvcnRCLjFfMC54c2QiLz4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJICAgIDx4c2Q6c2VxdWVuY2U+CQkJCQorCQkJCTwhLS0gQXR0cmlidXRlIFdpbGRjYXJkIFVuaW9uIC0tPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkZXJpdmUuMV8xIiB0eXBlPSJmb286dHlwZS4xXzEiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjFfNCIgdHlwZT0iZm9vOnR5cGUuMV80Ii8+CisKKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjJfMSIgdHlwZT0iZm9vOnR5cGUuMl8xIi8+CisKKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjNfMSIgdHlwZT0iZm9vOnR5cGUuM18xIi8+CisKKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjRfMSIgdHlwZT0iZm9vOnR5cGUuNF8xIi8+CisKKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjVfMV9hIiB0eXBlPSJmb286dHlwZS41XzFfYSIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkZXJpdmUuNV8xX2IiIHR5cGU9ImZvbzp0eXBlLjVfMV9iIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRlcml2ZS41XzJfYSIgdHlwZT0iZm9vOnR5cGUuNV8yX2EiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjVfMl9iIiB0eXBlPSJmb286dHlwZS41XzJfYiIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkZXJpdmUuNV80X2EiIHR5cGU9ImZvbzp0eXBlLjVfNF9hIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRlcml2ZS41XzRfYiIgdHlwZT0iZm9vOnR5cGUuNV80X2IiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjZfMSIgICB0eXBlPSJmb286dHlwZS42XzEiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGVyaXZlLjZfMiIgICB0eXBlPSJmb286dHlwZS42XzIiLz4KKwkJCTwveHNkOnNlcXVlbmNlPgorCQk8L3hzZDpjb21wbGV4VHlwZT4KKwk8L3hzZDplbGVtZW50PgorCQorCTwhLS0gQXR0cmlidXRlIFdpbGRjYXJkIFVuaW9uIC0tPgorCisJPCEtLSAxLiBJZiBPMSBhbmQgTzIgYXJlIHRoZSBzYW1lIHZhbHVlLCB0aGVuIHRoYXQgdmFsdWUgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS4xXzEiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuMV8xIj4KKwkJCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuMV8xIj4JCisJCTx4c2Q6YXR0cmlidXRlR3JvdXAgcmVmPSJmb286YXR0ckdyLjFfMSIvPgkJCQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci4xXzEiPgorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgorCTwveHNkOmF0dHJpYnV0ZUdyb3VwPgorCisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLjFfNCI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS4xXzQiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0JBUiAjI2xvY2FsIGh0dHA6Ly9GT08iIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCQkJPC94c2Q6ZXh0ZW5zaW9uPgorCQk8L3hzZDpjb21wbGV4Q29udGVudD4KKwk8L3hzZDpjb21wbGV4VHlwZT4KKyAgICA8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuYmFzZS4xXzQiPgkKKwkJPHhzZDphdHRyaWJ1dGVHcm91cCByZWY9ImZvbzphdHRyR3IuMV80Ii8+CQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCBodHRwOi8vQkFSICAgIyN0YXJnZXROYW1lc3BhY2UgIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci4xXzQiPgorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiAgaHR0cDovL0ZPTyAgaHR0cDovL0JBUiAjI2xvY2FsIi8+CisJPC94c2Q6YXR0cmlidXRlR3JvdXA+CisKKwk8IS0tIDIuIElmIGVpdGhlciBPMSBvciBPMiBpcyBhbnksIHRoZW4gYW55IG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuMl8xIj4JCisJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisJCQk8eHNkOmV4dGVuc2lvbiBiYXNlPSJmb286dHlwZS5iYXNlLjJfMSI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjJfMSI+CQorCQk8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZm9vOmF0dHJHci4yXzEiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDphdHRyaWJ1dGVHcm91cCBuYW1lPSJhdHRyR3IuMl8xIj4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIi8+CisJPC94c2Q6YXR0cmlidXRlR3JvdXA+CisKKwk8IS0tIDMuIElmIGJvdGggTzEgYW5kIE8yIGFyZSBzZXRzIG9mIChuYW1lc3BhY2UgbmFtZXMgb3Igt2Fic2VudLcpLCAKKwkJdGhlbiB0aGUgdW5pb24gb2YgdGhvc2Ugc2V0cyBtdXN0IGJlIHRoZSB2YWx1ZS4gLS0+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLjNfMSI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS4zXzEiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyN0YXJnZXROYW1lc3BhY2UgaHR0cDovL0RPTyIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjNfMSI+CQorCQk8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZm9vOmF0dHJHci4zXzEiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci4zXzEiPgorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjbG9jYWwgIyN0YXJnZXROYW1lc3BhY2UgaHR0cDovL0JBUiIvPgorCTwveHNkOmF0dHJpYnV0ZUdyb3VwPgorCTwhLS0gNCBJZiB0aGUgdHdvIGFyZSBuZWdhdGlvbnMgb2YgZGlmZmVyZW50IHZhbHVlcyAobmFtZXNwYWNlIAorCSBuYW1lcyBvciC3YWJzZW50tyksIHRoZW4gYSBwYWlyIG9mIG5vdCBhbmQgt2Fic2VudLcgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS40XzEiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImltcC50eXBlLmJhc2UuZGVyaXZlLjRfMSI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPCEtLSA1IElmIGVpdGhlciBPMSBvciBPMiBpcyBhIHBhaXIgb2Ygbm90IGFuZCBhIG5hbWVzcGFjZSBuYW1lIGFuZCAKKwkgIHRoZSBvdGhlciBpcyBhIHNldCBvZiAobmFtZXNwYWNlIG5hbWVzIG9yILdhYnNlbnS3KSAoY2FsbCB0aGlzIHNldCBTKSwgCisJICB0aGVuIFRoZSBhcHByb3ByaWF0ZSBjYXNlIGFtb25nIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiAtLT4KKwk8IS0tIDUuMSBJZiB0aGUgc2V0IFMgaW5jbHVkZXMgYm90aCB0aGUgbmVnYXRlZCBuYW1lc3BhY2UgbmFtZSBhbmQgCisJICC3YWJzZW50tywgdGhlbiBhbnkgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS41XzFfYSI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS41XzFfYSI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuNV8xX2EiPgkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKworCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS41XzFfYiI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS41XzFfYiI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuNV8xX2IiPgkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKworCTwhLS0gNS4yIElmIHRoZSBzZXQgUyBpbmNsdWRlcyB0aGUgbmVnYXRlZCBuYW1lc3BhY2UgbmFtZSBidXQgbm90ILdhYnNlbnS3LCAKKwkgIHRoZW4gYSBwYWlyIG9mIG5vdCBhbmQgt2Fic2VudLcgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS41XzJfYSI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS41XzJfYSI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI3RhcmdldE5hbWVzcGFjZSBodHRwOi8vQkFSIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuNV8yX2EiPgkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKworCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS41XzJfYiI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS41XzJfYiI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuNV8yX2IiPgkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI3RhcmdldE5hbWVzcGFjZSBodHRwOi8vQkFSIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8IS0tIDUuMyBJZiB0aGUgc2V0IFMgaW5jbHVkZXMgt2Fic2VudLcgYnV0IG5vdCB0aGUgbmVnYXRlZCBuYW1lc3BhY2UgbmFtZSwgCisJICB0aGVuIHRoZSB1bmlvbiBpcyBub3QgZXhwcmVzc2libGUuIC0tPgorCTwhLS0KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV8zX2EiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV8zX2EiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCBodHRwOi8vQkFSIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuNV8zX2EiPgkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKworCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS41XzNfYiI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS41XzNfYiI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2UuNV8zX2IiPgkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsIGh0dHA6Ly9CQVIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCTwveHNkOmNvbXBsZXhUeXBlPgorCS0tPgorCTwhLS0gNS40IElmIHRoZSBzZXQgUyBkb2VzIG5vdCBpbmNsdWRlIGVpdGhlciB0aGUgbmVnYXRlZCBuYW1lc3BhY2UgbmFtZSAKKwkJb3Igt2Fic2VudLcsIHRoZW4gd2hpY2hldmVyIG9mIE8xIG9yIE8yIGlzIGEgcGFpciBvZiBub3QgYW5kIGEgbmFtZXNwYWNlIAorCQluYW1lIG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV80X2EiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV80X2EiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0JBUiIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfNF9hIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisKKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuNV80X2IiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLmJhc2UuNV80X2IiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJCQk8L3hzZDpleHRlbnNpb24+CisJCTwveHNkOmNvbXBsZXhDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNlLjVfNF9iIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0JBUiIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPCEtLSA2IElmIGVpdGhlciBPMSBvciBPMiBpcyBhIHBhaXIgb2Ygbm90IGFuZCC3YWJzZW50tyBhbmQgdGhlIG90aGVyIGlzIGEgCisJICBzZXQgb2YgKG5hbWVzcGFjZSBuYW1lcyBvciC3YWJzZW50tykgKGFnYWluLCBjYWxsIHRoaXMgc2V0IFMpLCB0aGVuIFRoZSAKKwkgIGFwcHJvcHJpYXRlIGNhc2UgYW1vbmcgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHRydWU6IC0tPgorCTwhLS0gNi4xIElmIHRoZSBzZXQgUyBpbmNsdWRlcyC3YWJzZW50tywgdGhlbiBhbnkgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS42XzEiPgkKKwkJPHhzZDpjb21wbGV4Q29udGVudD4KKwkJCTx4c2Q6ZXh0ZW5zaW9uIGJhc2U9ImltcC50eXBlLmJhc2UuZGVyaXZlLjYiPgorCQkJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCBodHRwOi8vQkFSIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwkJCTwveHNkOmV4dGVuc2lvbj4KKwkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisJPC94c2Q6Y29tcGxleFR5cGU+CisJPCEtLSA2LjIgSWYgdGhlIHNldCBTIGRvZXMgbm90IGluY2x1ZGUgt2Fic2VudLcsIHRoZW4gYSBwYWlyIG9mIG5vdCBhbmQgt2Fic2VudLcgCisJICBtdXN0IGJlIHRoZSB2YWx1ZS4gLS0+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLjZfMiI+CQorCQk8eHNkOmNvbXBsZXhDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0iaW1wLnR5cGUuYmFzZS5kZXJpdmUuNiI+CisJCQkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSJodHRwOi8vQkFSIGh0dHA6Ly9ET08iIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCQkJPC94c2Q6ZXh0ZW5zaW9uPgorCQk8L3hzZDpjb21wbGV4Q29udGVudD4KKwk8L3hzZDpjb21wbGV4VHlwZT4KKworPC94c2Q6c2NoZW1hPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZGVyaXZlMl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTBjYjg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUyXzAueG1sCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCEtLSAKKy0tPgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIgeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAgeG1sbnM6YmFyPSJodHRwOi8vQkFSIiB4bWxuczpib289Imh0dHA6Ly9CT08iIHhtbG5zOmRvbz0iaHR0cDovL0RPTyIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGF0dHJHcm91cC13aWxkY2FyZDFfMC54c2QiIAorCWZvbzpiYXI9Im8iIGRvbzpiYXI9Im8iLz4KKwkKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUyXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1kZXJpdmUyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNzRkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWRlcml2ZTJfMC54c2QKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhLS0gCistLT4KKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiAKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iIAorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiPgorCQorCTxlbGVtZW50IG5hbWU9ImZvbyI+CisJCTxjb21wbGV4VHlwZT4KKwkJCTxjb21wbGV4Q29udGVudD4KKwkJCQk8ZXh0ZW5zaW9uIGJhc2U9ImZvbzp0eXBlLkEiPgkJCQkgIAkgIAkJCQorCQkJCQk8YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0RPTyIgcHJvY2Vzc0NvbnRlbnRzPSJza2lwIi8+CisJCQkJPC9leHRlbnNpb24+CisJCQk8L2NvbXBsZXhDb250ZW50PgorCQk8L2NvbXBsZXhUeXBlPiAgICAKKwk8L2VsZW1lbnQ+ICAKKworCTxjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLkEiPgkJCisJCTxhdHRyaWJ1dGVHcm91cCByZWY9ImZvbzphdHRyR3IuQV8xIi8+CisJCTxhdHRyaWJ1dGVHcm91cCByZWY9ImZvbzphdHRyR3IuQV8yIi8+CisJCTxhbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSJodHRwOi8vRk9PIiBwcm9jZXNzQ29udGVudHM9InNraXAiLz4KKwk8L2NvbXBsZXhUeXBlPgorCisJPGF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci5BXzEiPgorCQk8YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0ZPTyBodHRwOi8vQk9PIiBwcm9jZXNzQ29udGVudHM9InNraXAiLz4KKwk8L2F0dHJpYnV0ZUdyb3VwPgorCisJPGF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci5BXzIiPgorCQk8YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0JBUiBodHRwOi8vRE9PIGh0dHA6Ly9GT08iIHByb2Nlc3NDb250ZW50cz0ic2tpcCIvPgorCTwvYXR0cmlidXRlR3JvdXA+CisKKworPC9zY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWVycm9yczFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLWVycm9yczFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY5YTViYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItZXJyb3JzMV8wLnhtbApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8Zm9vCisJeG1sbnM9Imh0dHA6Ly9GT08iIAorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6YmFyPSJodHRwOi8vQkFSIiAKKwl4bWxuczppbXBvcnQ9Imh0dHA6Ly9JTVBPUlQiIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBmaWxlOi8vL2M6L2Rldi9saWJ4bWwyL3BhdGNoZXMvMjAwNC0wNS0xNy9hbnlBdHRyLWVycm9yczFfMC54c2QiPgorCisJPCEtLSBub3QgYWxsb3dlZDogZm9vOmJhckMgLS0+CisJPGJhc2ljLkIgZm9vOmJhckM9Im8iLz4KKwk8IS0tIG5vdCBhbGxvd2VkOiBmb286YmFyQyAtLT4KKwk8YmFzaWMuQyBmb286YmFyQz0ibyIvPgorCTwhLS0gbm90IGFsbG93ZWQ6IGJhckEsIGJhcjpiYXJCIC0tPgorCTxiYXNpYy5EIGJhckE9Im8iIGJhcjpiYXJCPSJvIi8+CisJPCEtLSBub3QgYWxsb3dlZDogYmFyOmJhckIgLS0+CisJPGludGVycy4yXzEgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIi8+CisJPCEtLSBub3QgYWxsb3dlZDogYmFyQSwgZm9vOmJhckMgLS0+CisJPGludGVycy4zXzEgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIi8+CisJPCEtLSBub3QgYWxsb3dlZDogYmFyOmJhckIgLS0+CisJPGludGVycy40XzEgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIi8+CisJPCEtLSBub3QgYWxsb3dlZDogYmFyQSwgZm9vOmJhckMgLS0+CisJPGludGVycy42XzEgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIi8+Cis8L2Zvbz4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50cy1lcnIxXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMtZXJyMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDEyMmY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMtZXJyMV8wLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8Zm9vCisJeG1sbnM9Imh0dHA6Ly9GT08iIAorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6YmFyPSJodHRwOi8vQkFSIiAJCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGFueUF0dHItcHJvY2Vzc0NvbnRlbnRzMV8wLnhzZCI+CisJPGVsZW0ubGF4IGZvbzpiYXI9Im8gbyIvPgorCTxlbGVtLnN0cmljdCBmb286YmFyQj0iR0IiLz4KKzwvZm9vPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLXByb2Nlc3NDb250ZW50cy1lcnIxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMtZXJyMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzJhMGZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMtZXJyMV8wLnhzZApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eHNkOnNjaGVtYSB4bWxuczpmb289Imh0dHA6Ly9GT08iIAorCXhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIAorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyI+CisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJICAgIDx4c2Q6c2VxdWVuY2U+CQkJCisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImVsZW0ubGF4IiB0eXBlPSJmb286dHlwZS5sYXgiLz4JCQkJCisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImVsZW0uc3RyaWN0IiB0eXBlPSJmb286dHlwZS5zdHJpY3QiLz4JCQkJCisJCQk8L3hzZDpzZXF1ZW5jZT4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKworCTx4c2Q6YXR0cmlidXRlIG5hbWU9ImJhciIgdHlwZT0ieHNkOmxhbmd1YWdlIiAvPgkKKworCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5sYXgiPgkJCQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuc3RyaWN0Ij4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJzdHJpY3QiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJCis8L3hzZDpzY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODIxMDg5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMxXzAueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmb28KKwl4bWxucz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAKKwl4bWxuczpiYXI9Imh0dHA6Ly9CQVIiIAkKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gYW55QXR0ci1wcm9jZXNzQ29udGVudHMxXzAueHNkIj4KKwk8ZWxlbS5sYXguQSBmb286YmFyQV8xPSJQTCIvPgorCTxlbGVtLmxheC5CIGZvbzpiYXJBXzI9Im8iLz4KKwk8ZWxlbS5zdHJpY3QgZm9vOmJhckI9IkZSIi8+CisJPGVsZW0uc2tpcCBmb286YmFyQz0ibyIvPgorPC9mb28+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzMV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHItcHJvY2Vzc0NvbnRlbnRzMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDY4NzAyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci1wcm9jZXNzQ29udGVudHMxXzAueHNkCkBAIC0wLDAgKzEsMzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgCisJZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiCisJdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIj4KKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8eHNkOmNvbXBsZXhUeXBlPgorCQkgICAgPHhzZDpzZXF1ZW5jZT4JCQkKKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZWxlbS5sYXguQSIgdHlwZT0iZm9vOnR5cGUubGF4Ii8+CQkJCQorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJlbGVtLmxheC5CIiB0eXBlPSJmb286dHlwZS5sYXgiLz4JCQkJCisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImVsZW0uc3RyaWN0IiB0eXBlPSJmb286dHlwZS5zdHJpY3QiLz4JCQkJCisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImVsZW0uc2tpcCIgdHlwZT0iZm9vOnR5cGUuc2tpcCIvPgkJCQkKKwkJCTwveHNkOnNlcXVlbmNlPgorCQk8L3hzZDpjb21wbGV4VHlwZT4KKwk8L3hzZDplbGVtZW50PgorCisJPHhzZDphdHRyaWJ1dGUgbmFtZT0iYmFyQSIgdHlwZT0ieHNkOmxhbmd1YWdlIiAvPgorCTx4c2Q6YXR0cmlidXRlIG5hbWU9ImJhckIiIHR5cGU9InhzZDpsYW5ndWFnZSIgLz4KKworCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5sYXgiPgkJCQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuc3RyaWN0Ij4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuc2tpcCI+CQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNhbnkiIHByb2Nlc3NDb250ZW50cz0ic2tpcCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwkKKzwveHNkOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci5pbXBvcnRBLjFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLmltcG9ydEEuMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmUwYmJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci5pbXBvcnRBLjFfMC54c2QKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9JTVBPUlQiIAorCXhtbG5zOmltcD0iaHR0cDovL0lNUE9SVCIgeG1sbnM6Ym9vPSJodHRwOi8vQk9PIj4KKworCTx4c2Q6YXR0cmlidXRlR3JvdXAgbmFtZT0iYXR0ckdyLmludGVycy41XzEiPgorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjb3RoZXIiLz4KKwk8L3hzZDphdHRyaWJ1dGVHcm91cD4JCisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iaW1wLmVsZW1lbnQiLz4JCQorCisJPHhzZDphdHRyaWJ1dGUgbmFtZT0iaW1wLmF0dHJpYnV0ZSIgdHlwZT0ieHNkOnN0cmluZyIvPgorCisJPHhzZDpncm91cCBuYW1lPSJpbXAuZ3JvdXAiPgorCQk8eHNkOnNlcXVlbmNlPgorCQkJPHhzZDplbGVtZW50IHJlZj0iaW1wOmltcC5lbGVtZW50Ii8+CisJCTwveHNkOnNlcXVlbmNlPgorCTwveHNkOmdyb3VwPgorCisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJpbXAuY29tcGxleFR5cGUiPgorCQk8eHNkOmF0dHJpYnV0ZSByZWY9ImltcDppbXAuYXR0cmlidXRlIi8+CisJPC94c2Q6Y29tcGxleFR5cGU+CisKKzwveHNkOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci5pbXBvcnRCLjFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyLmltcG9ydEIuMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2VhYmE4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0ci5pbXBvcnRCLjFfMC54c2QKQEAgLTAsMCArMSwyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKworCTx4c2Q6YXR0cmlidXRlR3JvdXAgbmFtZT0iYXR0ckdyLmludGVycy42XzEiPgorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjb3RoZXIiLz4KKwk8L3hzZDphdHRyaWJ1dGVHcm91cD4KKworCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0iaW1wLnR5cGUuYmFzZS5pbnRlcnMuNF8xIj4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisKKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9ImltcC50eXBlLmJhc2UuZGVyaXZlLjRfMSI+CQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCTwveHNkOmNvbXBsZXhUeXBlPgorCisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJpbXAudHlwZS5iYXNlLmRlcml2ZS42Ij4JCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisKKzwveHNkOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0cjFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hbnlBdHRyMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGI1YjE2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0cjFfMC54bWwKQEAgLTAsMCArMSwzMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGZvbworCXhtbG5zPSJodHRwOi8vRk9PIiAKKwl4bWxuczpmb289Imh0dHA6Ly9GT08iIAorCXhtbG5zOmJhcj0iaHR0cDovL0JBUiIgCisJeG1sbnM6Ym9vPSJodHRwOi8vQk9PIiAKKwl4bWxuczppbXBvcnQ9Imh0dHA6Ly9JTVBPUlQiIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBhbnlBdHRyMV8wLnhzZCI+CisJPGltcG9ydDppbXAuZWxlbWVudC8+CisJPGltcC5hdHRyaWJ1dGUgaW1wb3J0OmltcC5hdHRyaWJ1dGU9InAiLz4KKwk8aW1wLmdyb3VwPgorCQk8aW1wb3J0OmltcC5lbGVtZW50Lz4KKwk8L2ltcC5ncm91cD4KKwk8YmFzaWMuQSBiYXI6YmFyQT0ibyIvPgorCTxiYXNpYy5CIGJhcjpiYXJCPSJvIi8+CisJPGJhc2ljLkMgYmFyQz0ibyIvPgorCTxiYXNpYy5EIGZvbzpiYXJEPSJvIi8+CisJPGJhc2ljLkUgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIi8+CisJPGludGVycy4xXzEgYmFyQT0ibyIgYmFyOmJhckI9Im8iIGZvbzpiYXJDPSJvIi8+CisJPGludGVycy4xXzIgYmFyOmJhckI9Im8iLz4KKwk8aW50ZXJzLjFfMyBiYXJBPSJvIiBmb286YmFyQz0ibyIvPgorCTxpbnRlcnMuMV80IGJhckE9Im8iIGJhcjpiYXJCPSJvIiBmb286YmFyQz0ibyIvPgorCTxpbnRlcnMuMl8xIGJhckE9Im8iIGZvbzpiYXJDPSJvIi8+CisJPGludGVycy4zXzEgYmFyOmJhckI9Im8iLz4KKwk8aW50ZXJzLjRfMSBiYXJBPSJvIiBmb286YmFyQz0ibyIvPgorCTwhLS1pbnRlcnMuNV8xIGJhckE9Im8iIGJhcjpiYXJCPSJvIiBmb286YmFyQz0ibyIvLS0+CisJPGludGVycy42XzEgYmFyOmJhckI9Im8iLz4KKzwvZm9vPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHIxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYW55QXR0cjFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZjZjg5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2FueUF0dHIxXzAueHNkCkBAIC0wLDAgKzEsMTQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eHNkOnNjaGVtYSB4bWxuczpmb289Imh0dHA6Ly9GT08iIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOmltcG9ydD0iaHR0cDovL0lNUE9SVCIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKwk8eHNkOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9JTVBPUlQiIHNjaGVtYUxvY2F0aW9uPSJhbnlBdHRyLmltcG9ydEEuMV8wLnhzZCIvPgkKKwk8eHNkOmltcG9ydCBzY2hlbWFMb2NhdGlvbj0iYW55QXR0ci5pbXBvcnRCLjFfMC54c2QiLz4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJICAgIDx4c2Q6c2VxdWVuY2U+CisJCQkJPCEtLSBJbXBvcnQgLS0+CisJCQkJPHhzZDplbGVtZW50IHJlZj0iaW1wb3J0OmltcC5lbGVtZW50Ii8+CQkJCQkJCQorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJpbXAuYXR0cmlidXRlIj4KKwkJCQkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCQkJCTx4c2Q6YXR0cmlidXRlIHJlZj0iaW1wb3J0OmltcC5hdHRyaWJ1dGUiLz4KKwkJCQkJPC94c2Q6Y29tcGxleFR5cGU+CisJCQkJPC94c2Q6ZWxlbWVudD4JCisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImltcC5ncm91cCI+CisJCQkJCTx4c2Q6Y29tcGxleFR5cGU+CisJCQkJCQk8eHNkOmdyb3VwIHJlZj0iaW1wb3J0OmltcC5ncm91cCIvPgorCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4KKwkJCQk8L3hzZDplbGVtZW50PgkKKwkJCQk8IS0tIEJhc2ljIC0tPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJiYXNpYy5BIiB0eXBlPSJmb286dHlwZS5iYXNpYy5BIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImJhc2ljLkIiIHR5cGU9ImZvbzp0eXBlLmJhc2ljLkIiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iYmFzaWMuQyIgdHlwZT0iZm9vOnR5cGUuYmFzaWMuQyIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJiYXNpYy5EIiB0eXBlPSJmb286dHlwZS5iYXNpYy5EIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImJhc2ljLkUiIHR5cGU9ImZvbzp0eXBlLmJhc2ljLkUiLz4KKwkJCQk8IS0tIEF0dHJpYnV0ZSBXaWxkY2FyZCBJbnRlcnNlY3Rpb24gLS0+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImludGVycy4xXzEiIHR5cGU9ImZvbzp0eXBlLmludGVycy4xXzEiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iaW50ZXJzLjFfMiIgdHlwZT0iZm9vOnR5cGUuaW50ZXJzLjFfMiIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJpbnRlcnMuMV8zIiB0eXBlPSJmb286dHlwZS5pbnRlcnMuMV8zIi8+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImludGVycy4xXzQiIHR5cGU9ImZvbzp0eXBlLmludGVycy4xXzQiLz4KKworCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJpbnRlcnMuMl8xIiB0eXBlPSJmb286dHlwZS5pbnRlcnMuMl8xIi8+CisKKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iaW50ZXJzLjNfMSIgdHlwZT0iZm9vOnR5cGUuaW50ZXJzLjNfMSIvPgorCisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImludGVycy40XzEiIHR5cGU9ImZvbzp0eXBlLmludGVycy40XzEiLz4KKworCQkJCTwhLS14c2Q6ZWxlbWVudCBuYW1lPSJpbnRlcnMuNV8xIiB0eXBlPSJ0eXBlLmludGVycy41XzEiLy0tPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJpbnRlcnMuNl8xIiB0eXBlPSJmb286dHlwZS5pbnRlcnMuNl8xIi8+CisJCQk8L3hzZDpzZXF1ZW5jZT4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKwkKKwk8IS0tIEJhc2ljIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNpYy5BIj4JCQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNhbnkiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5iYXNpYy5CIj4JCQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmJhc2ljLkMiPgkJCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuYmFzaWMuRCI+CQkJCQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjdGFyZ2V0TmFtZXNwYWNlIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuYmFzaWMuRSI+CQkJCQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjdGFyZ2V0TmFtZXNwYWNlICMjbG9jYWwgaHR0cDovL0JBUiIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPCEtLSBBdHRyaWJ1dGUgV2lsZGNhcmQgSW50ZXJzZWN0aW9uIC0tPgorCisJPCEtLSAxLiBJZiBPMSBhbmQgTzIgYXJlIHRoZSBzYW1lIHZhbHVlLCB0aGVuIHRoYXQgdmFsdWUgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5pbnRlcnMuMV8xIj4JCisJCTx4c2Q6YXR0cmlidXRlR3JvdXAgcmVmPSJmb286YXR0ckdyLmludGVycy4xXzEiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDphdHRyaWJ1dGVHcm91cCBuYW1lPSJhdHRyR3IuaW50ZXJzLjFfMSI+CisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNhbnkiLz4KKwk8L3hzZDphdHRyaWJ1dGVHcm91cD4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuaW50ZXJzLjFfMiI+CQorCQk8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZm9vOmF0dHJHci5pbnRlcnMuMV8yIi8+CQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJPHhzZDphdHRyaWJ1dGVHcm91cCBuYW1lPSJhdHRyR3IuaW50ZXJzLjFfMiI+CisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIvPgorCTwveHNkOmF0dHJpYnV0ZUdyb3VwPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5pbnRlcnMuMV8zIj4JCisJCTx4c2Q6YXR0cmlidXRlR3JvdXAgcmVmPSJmb286YXR0ckdyLmludGVycy4xXzMiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci5pbnRlcnMuMV8zIj4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICAjI3RhcmdldE5hbWVzcGFjZSIvPgorCTwveHNkOmF0dHJpYnV0ZUdyb3VwPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5pbnRlcnMuMV80Ij4JCisJCTx4c2Q6YXR0cmlidXRlR3JvdXAgcmVmPSJmb286YXR0ckdyLmludGVycy4xXzQiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsIGh0dHA6Ly9CQVIgICAjI3RhcmdldE5hbWVzcGFjZSAiIHByb2Nlc3NDb250ZW50cz0ibGF4Ii8+CQorCTwveHNkOmNvbXBsZXhUeXBlPgorCTx4c2Q6YXR0cmlidXRlR3JvdXAgbmFtZT0iYXR0ckdyLmludGVycy4xXzQiPgorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiAgIyN0YXJnZXROYW1lc3BhY2UgIGh0dHA6Ly9CQVIgIyNsb2NhbCIvPgorCTwveHNkOmF0dHJpYnV0ZUdyb3VwPgorCisJPCEtLSAyLiBJZiBlaXRoZXIgTzEgb3IgTzIgaXMgYW55LCB0aGVuIHRoZSBvdGhlciBtdXN0IGJlIHRoZSB2YWx1ZS4gLS0+CisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLmludGVycy4yXzEiPgkKKwkJPHhzZDphdHRyaWJ1dGVHcm91cCByZWY9ImZvbzphdHRyR3IuaW50ZXJzLjJfMSIvPgkJCQorCQk8eHNkOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci5pbnRlcnMuMl8xIj4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIi8+CisJPC94c2Q6YXR0cmlidXRlR3JvdXA+CisJPCEtLSAzLiBJZiBlaXRoZXIgTzEgb3IgTzIgaXMgYSBwYWlyIG9mIG5vdCBhbmQgYSB2YWx1ZSAoYSBuYW1lc3BhY2UgbmFtZSBvciC3YWJzZW50tykgCisJICBhbmQgdGhlIG90aGVyIGlzIGEgc2V0IG9mIChuYW1lc3BhY2UgbmFtZXMgb3Igt2Fic2VudLcpLCB0aGVuIHRoYXQgc2V0LCBtaW51cyB0aGUgCisJICBuZWdhdGVkIHZhbHVlIGlmIGl0IHdhcyBpbiB0aGUgc2V0LCBtaW51cyC3YWJzZW50tyBpZiBpdCB3YXMgaW4gdGhlIHNldCwgbXVzdCBiZSB0aGUgdmFsdWUuIC0tPgorCTx4c2Q6Y29tcGxleFR5cGUgbmFtZT0idHlwZS5pbnRlcnMuM18xIj4JCisJCTx4c2Q6YXR0cmlidXRlR3JvdXAgcmVmPSJmb286YXR0ckdyLmludGVycy4zXzEiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci5pbnRlcnMuM18xIj4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIGh0dHA6Ly9CQVIiLz4KKwk8L3hzZDphdHRyaWJ1dGVHcm91cD4KKwk8IS0tIDQuIElmIGJvdGggTzEgYW5kIE8yIGFyZSBzZXRzIG9mIChuYW1lc3BhY2UgbmFtZXMgb3Igt2Fic2VudLcpLCB0aGVuIHRoZSAKKwkgIGludGVyc2VjdGlvbiBvZiB0aG9zZSBzZXRzIG11c3QgYmUgdGhlIHZhbHVlLiAtLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuaW50ZXJzLjRfMSI+CQorCQk8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZm9vOmF0dHJHci5pbnRlcnMuNF8xIi8+CQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNsb2NhbCAjI3RhcmdldE5hbWVzcGFjZSBodHRwOi8vQkFSIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKwk8eHNkOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHci5pbnRlcnMuNF8xIj4KKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2xvY2FsICMjdGFyZ2V0TmFtZXNwYWNlIi8+CisJPC94c2Q6YXR0cmlidXRlR3JvdXA+CisJPCEtLSA1LiBJZiB0aGUgdHdvIGFyZSBuZWdhdGlvbnMgb2YgZGlmZmVyZW50IG5hbWVzcGFjZSBuYW1lcywgCisJICB0aGVuIHRoZSBpbnRlcnNlY3Rpb24gaXMgbm90IGV4cHJlc3NpYmxlLiAtLT4KKwkgIDwhLS0KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuaW50ZXJzLjVfMSI+CQorCQk8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iaW1wb3J0OmF0dHJHci5pbnRlcnMuNV8xIi8+CQkJCisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiLz4JCisJPC94c2Q6Y29tcGxleFR5cGU+CisJLS0+CisJPCEtLTYuIElmIHRoZSBvbmUgaXMgYSBuZWdhdGlvbiBvZiBhIG5hbWVzcGFjZSBuYW1lIGFuZCB0aGUgb3RoZXIgaXMgYSBuZWdhdGlvbiBvZiC3YWJzZW50tywgCisJICB0aGVuIHRoZSBvbmUgd2hpY2ggaXMgdGhlIG5lZ2F0aW9uIG9mIGEgbmFtZXNwYWNlIG5hbWUgbXVzdCBiZSB0aGUgdmFsdWUuIAorCisJICBUaGlzIG9uZSB1c2VzIGFuIGF0dHJpYnV0ZSBncm91cCBmcm9tIGFuIGltcG9ydGVkIHNjaGVtYSB3aXRoIG5vIHRhcmdldE5hbWVzcGFjZS4KKwktLT4KKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGUuaW50ZXJzLjZfMSI+CQorCQk8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iYXR0ckdyLmludGVycy42XzEiLz4JCQkKKwkJPHhzZDphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzZDpjb21wbGV4VHlwZT4KKworCTx4c2Q6YXR0cmlidXRlR3JvdXAgbmFtZT0iYXR0ckdyQSI+CisJCTx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyN0YXJnZXROYW1lc3BhY2UiLz4KKwk8L3hzZDphdHRyaWJ1dGVHcm91cD4gCisKKzwveHNkOnNjaGVtYT4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hdHRyMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2F0dHIwXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNWIxYTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hdHRyMF8wLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIGlkPSJhYmMiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2F0dHIwXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYXR0cjBfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIwMzFiYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2F0dHIwXzAueHNkCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNpbXBsZUNvbnRlbnQ+CisgICAgICAgIDx4c2Q6ZXh0ZW5zaW9uIGJhc2U9InhzZDpzdHJpbmciPgorICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4c2Q6SUQiLz4KKyAgICAgICAgPC94c2Q6ZXh0ZW5zaW9uPgorICAgICAgPC94c2Q6c2ltcGxlQ29udGVudD4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYXR0cnVzZV8wXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYXR0cnVzZV8wXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MWFiMjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hdHRydXNlXzBfMC54bWwKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPGZvbz4KKyAgPGJhckEgYXR0cj0iYmFyIi8+CisgIDxiYXJCIGF0dHI9ImJhciIvPgorICA8YmFyQiAvPgorICA8YmFyQy8+Cis8L2Zvbz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYXR0cnVzZV8wXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYXR0cnVzZV8wXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjOWNjZWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hdHRydXNlXzBfMC54c2QKQEAgLTAsMCArMSwzMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKworPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorCisgIDx4czplbGVtZW50IG5hbWU9ImZvbyI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICA8eHM6Y2hvaWNlIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgICAKKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJiYXJBIiAgPgorICAgICAgICAgICAgPHhzOmNvbXBsZXhUeXBlPiAgICAgICAgICAgIAorICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImF0dHIiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgLz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgICAgICAgIDwveHM6ZWxlbWVudD4KKyAgICAgICAgICAKKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJiYXJCIiA+CisgICAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iYXR0ciIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9Im9wdGlvbmFsIiAvPgorICAgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4gIAorICAgICAgICAgIDwveHM6ZWxlbWVudD4KKyAgICAgICAgICAKKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJiYXJDIiA+CisgICAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iYXR0ciIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InByb2hpYml0ZWQiIC8+CisgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPiAgCisgICAgICAgICAgPC94czplbGVtZW50PgorICAgICAgICAgIAorICAgICAgICA8L3hzOmNob2ljZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+CisKKzwveHM6c2NoZW1hPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hdHRydXNlXzBfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9hdHRydXNlXzBfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg1N2M2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2F0dHJ1c2VfMF8xLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8Zm9vPgorICA8YmFyQSAvPgorICA8YmFyQiBhdHRyPSJiYXIiLz4KKyAgPGJhckIgLz4KKyAgPGJhckMvPgorPC9mb28+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2F0dHJ1c2VfMF8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2F0dHJ1c2VfMF8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTVjY2RjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYXR0cnVzZV8wXzIueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzxmb28+CisgIDxiYXJBIGF0dHI9ImJhciIgLz4KKyAgPGJhckIgYXR0cj0iYmFyIi8+CisgIDxiYXJCIC8+CisgIDxiYXJDIGF0dHI9ImJhciIgLz4KKzwvZm9vPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDEzMTJfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDEzMTJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q3YWJiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0MTMxMl8wLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iPmxhbGFsYTwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzEyXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzEyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YTdlMmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDEzMTJfMC54c2QKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHNjaGVtYSAKKyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiAKKyAgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIgorICB4bWxuczpmb289Imh0dHA6Ly9GT08iPgorICAKKwk8ZWxlbWVudCBuYW1lPSJmb28iIHR5cGU9ImZvbzpmb29UeXBlIiBuaWxsYWJsZT0iZmFsc2UiIC8+CisJCisJPGNvbXBsZXhUeXBlIG5hbWU9ImZvb1R5cGUiIG1peGVkPSJ0cnVlIj4KKwkJPHNpbXBsZUNvbnRlbnQ+CisJCQk8ZXh0ZW5zaW9uIGJhc2U9InN0cmluZyIgLz4KKwkJPC9zaW1wbGVDb250ZW50PgorCTwvY29tcGxleFR5cGU+CisJCis8L3NjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzMzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0MTMzMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE0YWE0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0MTMzMy54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8Zm9vIAorICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKyAgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249ImJ1ZzE0MTMzMy54c2QiIGF0dHJBPSJ2YWx1ZUEiPgorCisJPGJhciBhdHRyQT0idmFsdWVBIiBhdHRyQj0idmFsdWVCIi8+CisKKzwvZm9vPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDEzMzMueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzMzLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjgxYTdiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzMzLnhzZApAQCAtMCwwICsxLDI1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgZWxlbWVudEZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCI+CisKKwk8eHM6ZWxlbWVudCBuYW1lPSJmb28iIHR5cGU9ImJhc2VUeXBlIi8+CisKKwk8eHM6Y29tcGxleFR5cGUgbmFtZT0iYmFzZVR5cGUiPgorCQk8eHM6YWxsPgorCQkJPHhzOmVsZW1lbnQgbmFtZT0iYmFyIiB0eXBlPSJkZXJpdmVkVHlwZSIgbWluT2NjdXJzPSIwIi8+CisJCTwveHM6YWxsPgorCQk8eHM6YXR0cmlidXRlIG5hbWU9ImF0dHJBIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKwk8L3hzOmNvbXBsZXhUeXBlPgorCisJPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImRlcml2ZWRUeXBlIj4KKwkJPHhzOmNvbXBsZXhDb250ZW50PgorCQkJPHhzOmV4dGVuc2lvbiBiYXNlPSJiYXNlVHlwZSI+CisJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJhdHRyQiIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisJCQk8L3hzOmV4dGVuc2lvbj4KKwkJPC94czpjb21wbGV4Q29udGVudD4KKwk8L3hzOmNvbXBsZXhUeXBlPgorCQorPC94czpzY2hlbWE+CisKKworCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0MTMzM18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0MTMzM18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTRhYTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzMzXzAueG1sCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGZvbyAKKyAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisgIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJidWcxNDEzMzMueHNkIiBhdHRyQT0idmFsdWVBIj4KKworCTxiYXIgYXR0ckE9InZhbHVlQSIgYXR0ckI9InZhbHVlQiIvPgorCis8L2Zvbz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzMzXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQxMzMzXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiODFhN2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDEzMzNfMC54c2QKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIGVsZW1lbnRGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiPgorCisJPHhzOmVsZW1lbnQgbmFtZT0iZm9vIiB0eXBlPSJiYXNlVHlwZSIvPgorCisJPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImJhc2VUeXBlIj4KKwkJPHhzOmFsbD4KKwkJCTx4czplbGVtZW50IG5hbWU9ImJhciIgdHlwZT0iZGVyaXZlZFR5cGUiIG1pbk9jY3Vycz0iMCIvPgorCQk8L3hzOmFsbD4KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJhdHRyQSIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisJPC94czpjb21wbGV4VHlwZT4KKworCTx4czpjb21wbGV4VHlwZSBuYW1lPSJkZXJpdmVkVHlwZSI+CisJCTx4czpjb21wbGV4Q29udGVudD4KKwkJCTx4czpleHRlbnNpb24gYmFzZT0iYmFzZVR5cGUiPgorCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iYXR0ckIiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPgorCQkJPC94czpleHRlbnNpb24+CisJCTwveHM6Y29tcGxleENvbnRlbnQ+CisJPC94czpjb21wbGV4VHlwZT4KKwkKKzwveHM6c2NoZW1hPgorCisKKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDM5NTEuaW1wIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQzOTUxLmltcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODQyMGQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQzOTUxLmltcApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPHhzOnNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cubmV3cG9ydC1uZXR3b3Jrcy5jb20vTk5MIiAKK3htbG5zOm5ubD0iaHR0cDovL3d3dy5uZXdwb3J0LW5ldHdvcmtzLmNvbS9OTkwiIAoreG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIgCithdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiIHZlcnNpb249IjEuMDAiPgorCTx4czpncm91cCBuYW1lPSJzY2hlbWEyZ3JvdXAiPgorCQk8eHM6c2VxdWVuY2U+CisJCQk8eHM6ZWxlbWVudCBuYW1lPSJmaWxlIiB0eXBlPSJ4czpzdHJpbmciIAorZGVmYXVsdD0iJEZpbGUkIi8+CisJCTwveHM6c2VxdWVuY2U+CisJPC94czpncm91cD4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQzOTUxXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQzOTUxXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3NDJhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDM5NTFfMC54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8TWVudURlZmluaXRpb25GaWxlIHhtbG5zOm5ubD0iaHR0cDovL3d3dy5uZXdwb3J0LW5ldHdvcmtzLmNvbS9OTkwiIAoreG1sbnM9Imh0dHA6Ly93d3cubmV3cG9ydC1uZXR3b3Jrcy5jb20vY2xpIiAgCit4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKK3hzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5uZXdwb3J0LW5ldHdvcmtzLmNvbS9jbGkgYnVnMTQzOTUxXzAueHNkIj4KKwk8bm5sOmZpbGU+JEZpbGU6IC8vZGVwb3QvTk5ML1IxLjBfU2FuZE1fRGV2L1Byb2plY3RzL1NhbmRNL3NyYy91aXN1cHBvcnQKKy94bWwvY2xpVGVzdENvbW1hbmRzLnhtbCAkPC9ubmw6ZmlsZT4KKzwvTWVudURlZmluaXRpb25GaWxlPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDM5NTFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDM5NTFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVjOTUxMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0Mzk1MV8wLnhzZApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPHhzOnNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cubmV3cG9ydC1uZXR3b3Jrcy5jb20vY2xpIiAKKwl4bWxuczpubmw9Imh0dHA6Ly93d3cubmV3cG9ydC1uZXR3b3Jrcy5jb20vTk5MIiAKKwl4bWxuczpjbGk9Imh0dHA6Ly93d3cubmV3cG9ydC1uZXR3b3Jrcy5jb20vY2xpIiAKKwl4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIAorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiIAorCXZlcnNpb249IjEuMDAiPgorCTx4czppbXBvcnQgbmFtZXNwYWNlPSJodHRwOi8vd3d3Lm5ld3BvcnQtbmV0d29ya3MuY29tL05OTCIgc2NoZW1hTG9jYXRpb249ImJ1ZzE0Mzk1MS5pbXAiLz4KKwk8eHM6ZWxlbWVudCBuYW1lPSJNZW51RGVmaW5pdGlvbkZpbGUiPgorCQk8eHM6Y29tcGxleFR5cGU+CisJCQk8eHM6c2VxdWVuY2U+CisJCQkJPHhzOmdyb3VwIHJlZj0ibm5sOnNjaGVtYTJncm91cCIvPgorCQkJPC94czpzZXF1ZW5jZT4KKwkJPC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQ1MjQ2LnhzZC5pbXAgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNDUyNDYueHNkLmltcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDkyZTFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQ1MjQ2LnhzZC5pbXAKQEAgLTAsMCArMSwxMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKyAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgICAgICAgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgICAgICAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIKKyAgICAgICAgICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIj4KKworICA8eHM6YW5ub3RhdGlvbj4KKyAgICA8eHM6ZG9jdW1lbnRhdGlvbiB4bWw6bGFuZz0iZW4iPgorICAgICAgRENNRVMgMS4xIFhNTCBTY2hlbWEKKyAgICAgIFhNTCBTY2hlbWEgZm9yIGh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIG5hbWVzcGFjZQorCisgICAgICBDcmVhdGVkIDIwMDMtMDQtMDIKKworICAgICAgQ3JlYXRlZCBieSAKKworICAgICAgVGltIENvbGUgKHQtY29sZTNAdWl1Yy5lZHUpCisgICAgICBUb20gSGFiaW5nICh0aGFiaW5nQHVpdWMuZWR1KQorICAgICAgSmFuZSBIdW50ZXIgKGphbmVAZHN0Yy5lZHUuYXUpCisgICAgICBQZXRlIEpvaG5zdG9uIChwLmpvaG5zdG9uQHVrb2xuLmFjLnVrKSwKKyAgICAgIENhcmwgTGFnb3plIChsYWdvemVAY3MuY29ybmVsbC5lZHUpCisKKyAgICAgIFRoaXMgc2NoZW1hIGRlY2xhcmVzIFhNTCBlbGVtZW50cyBmb3IgdGhlIDE1IERDIGVsZW1lbnRzIGZyb20gdGhlCisgICAgICBodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyBuYW1lc3BhY2UuCisKKyAgICAgIEl0IGRlZmluZXMgYSBjb21wbGV4VHlwZSBTaW1wbGVMaXRlcmFsIHdoaWNoIHBlcm1pdHMgbWl4ZWQgY29udGVudCAKKyAgICAgIGFuZCBtYWtlcyB0aGUgeG1sOmxhbmcgYXR0cmlidXRlIGF2YWlsYWJsZS4gSXQgZGlzYWxsb3dzIGNoaWxkIGVsZW1lbnRzIGJ5CisgICAgICB1c2Ugb2YgbWluT2NjY3Vycy9tYXhPY2N1cnMuCisKKyAgICAgIEhvd2V2ZXIsIHRoaXMgY29tcGxleFR5cGUgZG9lcyBwZXJtaXQgdGhlIGRlcml2YXRpb24gb2Ygb3RoZXIgY29tcGxleFR5cGVzCisgICAgICB3aGljaCB3b3VsZCBwZXJtaXQgY2hpbGQgZWxlbWVudHMuCisKKyAgICAgIEFsbCBlbGVtZW50cyBhcmUgZGVjbGFyZWQgYXMgc3Vic3RpdHV0YWJsZSBmb3IgdGhlIGFic3RyYWN0IGVsZW1lbnQgYW55LCAKKyAgICAgIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGRlZmF1bHQgdHlwZSBmb3IgYWxsIGVsZW1lbnRzIGlzIGRjOlNpbXBsZUxpdGVyYWwuCisKKyAgICA8L3hzOmRvY3VtZW50YXRpb24+CisKKyAgPC94czphbm5vdGF0aW9uPgorCisKKyAgPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIKKyAgICAgICAgICAgICBzY2hlbWFMb2NhdGlvbj0ieG1sLnhzZCI+IAorICA8L3hzOmltcG9ydD4KKwk8IS0taHR0cDovL3d3dy53My5vcmcvMjAwMS8wMy94bWwueHNkLS0+CisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJTaW1wbGVMaXRlcmFsIj4KKyAgICAgICAgPHhzOmFubm90YXRpb24+CisgICAgICAgIDx4czpkb2N1bWVudGF0aW9uIHhtbDpsYW5nPSJlbiI+CisgICAgICAgICAgICBUaGlzIGlzIHRoZSBkZWZhdWx0IHR5cGUgZm9yIGFsbCBvZiB0aGUgREMgZWxlbWVudHMuCisgICAgICAgICAgICBJdCBwZXJtaXRzIHRleHQgY29udGVudCBvbmx5IHdpdGggb3B0aW9uYWwKKyAgICAgICAgICAgIHhtbDpsYW5nIGF0dHJpYnV0ZS4KKyAgICAgICAgICAgIFRleHQgaXMgYWxsb3dlZCBiZWNhdXNlIG1peGVkPSJ0cnVlIiwgYnV0IHN1Yi1lbGVtZW50cworICAgICAgICAgICAgYXJlIGRpc2FsbG93ZWQgYmVjYXVzZSBtaW5PY2N1cnM9IjAiIGFuZCBtYXhPY2N1cnM9IjAiIAorICAgICAgICAgICAgYXJlIG9uIHRoZSB4czphbnkgdGFnLgorCisgICAgCSAgICBUaGlzIGNvbXBsZXhUeXBlIGFsbG93cyBmb3IgcmVzdHJpY3Rpb24gb3IgZXh0ZW5zaW9uIHBlcm1pdHRpbmcKKyAgICAgICAgICAgIGNoaWxkIGVsZW1lbnRzLgorICAgIAk8L3hzOmRvY3VtZW50YXRpb24+CisgIAk8L3hzOmFubm90YXRpb24+CisKKyAgIDx4czpjb21wbGV4Q29udGVudCBtaXhlZD0idHJ1ZSI+CisgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmFueVR5cGUiPgorICAgICA8eHM6c2VxdWVuY2U+CisgICAgICA8eHM6YW55IHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9IjEiIG1heE9jY3Vycz0iMiIvPgorICAgICA8L3hzOnNlcXVlbmNlPgorICAgICA8eHM6YXR0cmlidXRlIHJlZj0ieG1sOmxhbmciIHVzZT0ib3B0aW9uYWwiLz4KKyAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgPC94czpjb21wbGV4Q29udGVudD4KKyAgPC94czpjb21wbGV4VHlwZT4KKworICA8eHM6ZWxlbWVudCBuYW1lPSJhbnkiIHR5cGU9IlNpbXBsZUxpdGVyYWwiIGFic3RyYWN0PSJ0cnVlIi8+CisKKyAgPHhzOmVsZW1lbnQgbmFtZT0idGl0bGUiIHN1YnN0aXR1dGlvbkdyb3VwPSJhbnkiLz4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iY3JlYXRvciIgc3Vic3RpdHV0aW9uR3JvdXA9ImFueSIvPgorICA8eHM6ZWxlbWVudCBuYW1lPSJzdWJqZWN0IiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9ImRlc2NyaXB0aW9uIiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9InB1Ymxpc2hlciIgc3Vic3RpdHV0aW9uR3JvdXA9ImFueSIvPgorICA8eHM6ZWxlbWVudCBuYW1lPSJjb250cmlidXRvciIgc3Vic3RpdHV0aW9uR3JvdXA9ImFueSIvPgorICA8eHM6ZWxlbWVudCBuYW1lPSJkYXRlIiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9InR5cGUiIHN1YnN0aXR1dGlvbkdyb3VwPSJhbnkiLz4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZm9ybWF0IiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9ImlkZW50aWZpZXIiIHN1YnN0aXR1dGlvbkdyb3VwPSJhbnkiLz4KKyAgPHhzOmVsZW1lbnQgbmFtZT0ic291cmNlIiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9Imxhbmd1YWdlIiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9InJlbGF0aW9uIiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9ImNvdmVyYWdlIiBzdWJzdGl0dXRpb25Hcm91cD0iYW55Ii8+CisgIDx4czplbGVtZW50IG5hbWU9InJpZ2h0cyIgc3Vic3RpdHV0aW9uR3JvdXA9ImFueSIvPgorCisgIDx4czpncm91cCBuYW1lPSJlbGVtZW50c0dyb3VwIj4KKyAgCTx4czphbm5vdGF0aW9uPgorICAgIAk8eHM6ZG9jdW1lbnRhdGlvbiB4bWw6bGFuZz0iZW4iPgorICAgIAkgICAgVGhpcyBncm91cCBpcyBpbmNsdWRlZCBhcyBhIGNvbnZlbmllbmNlIGZvciBzY2hlbWEgYXV0aG9ycworICAgICAgICAgICAgd2hvIG5lZWQgdG8gcmVmZXIgdG8gYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgCisgICAgICAgICAgICBodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyBuYW1lc3BhY2UuCisgICAgCTwveHM6ZG9jdW1lbnRhdGlvbj4KKyAgCTwveHM6YW5ub3RhdGlvbj4KKworICA8eHM6c2VxdWVuY2U+CisgICAgPHhzOmNob2ljZSBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgIDx4czplbGVtZW50IHJlZj0iYW55Ii8+CisgICAgPC94czpjaG9pY2U+CisgICAgPC94czpzZXF1ZW5jZT4KKyAgPC94czpncm91cD4KKworICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iZWxlbWVudENvbnRhaW5lciI+CisgIAk8eHM6YW5ub3RhdGlvbj4KKyAgICAJPHhzOmRvY3VtZW50YXRpb24geG1sOmxhbmc9ImVuIj4KKyAgICAJCVRoaXMgY29tcGxleFR5cGUgaXMgaW5jbHVkZWQgYXMgYSBjb252ZW5pZW5jZSBmb3Igc2NoZW1hIGF1dGhvcnMgd2hvIG5lZWQgdG8gZGVmaW5lIGEgcm9vdAorICAgIAkJb3IgY29udGFpbmVyIGVsZW1lbnQgZm9yIGFsbCBvZiB0aGUgREMgZWxlbWVudHMuCisgICAgCTwveHM6ZG9jdW1lbnRhdGlvbj4KKyAgCTwveHM6YW5ub3RhdGlvbj4KKworICAgIDx4czpjaG9pY2U+CisgICAgICA8eHM6Z3JvdXAgcmVmPSJlbGVtZW50c0dyb3VwIi8+CisgICAgPC94czpjaG9pY2U+CisgIDwveHM6Y29tcGxleFR5cGU+CisKKworPC94czpzY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0NTI0Nl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0NTI0Nl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTA1MGM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQ1MjQ2XzAueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tRE9DVFlQRSBnaW1sIFNZU1RFTSAiaHR0cDovL2dpdGsuc291cmNlZm9yZ2UubmV0L2dpbWwuZHRkIi0tPgorPCEtLSAkSWQ6IGdpdGtUZW1wbGF0ZV9tZXNzYWdlLnhtbC5pbix2IDEuMTEgMjAwNC8wMS8wNyAxNDoyMToxNyBlbnNvbmljIEV4cCAkCisgKiBAZmlsZSAgIGdpdGtUZW1wbGF0ZV9tZXNzYWdlLnhtbAorICogQGF1dGhvciBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CisgKiBAZGF0ZSAgIFRodSBKYW4gMTcgMTE6MjI6MzggMjAwMgorICogCisgKiBAYnJpZWYgIG1lc3NhZ2UgZGlhbG9nIHRlbXBsYXRlCisgKiBAaW5ncm91cCBnaXRrY29yZQorICoKKy0tPgorPGdpbWwgeG1sbnM9Imh0dHA6Ly9naXRrLnNvdXJjZWZvcmdlLm5ldC8iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL2dpdGsuc291cmNlZm9yZ2UubmV0LyBidWcxNDUyNDYueHNkIgkKKwl4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIAorCXhtbG5zOmkxOG49Imh0dHA6Ly9hcGFjaGUub3JnL2NvY29vbi9pMThuLzIuMCIgCisJPgorICA8ZGlhbG9nIGZvY3VzPSJjdHJsIj4KKyAgICA8bWV0YT4KKyAgICAgIDxkYzp0aXRsZT48aTE4bjp0ZXh0Pm1lc3NhZ2U8L2kxOG46dGV4dD48L2RjOnRpdGxlPgorICAgIDwvbWV0YT4KKwkgIDxkaWFsb2d3aWRnZXRzPgorICAgICAJPGRpYWxvZ3dpZGdldCBpZD0iT2theSIvPgorCSAgPC9kaWFsb2d3aWRnZXRzPgorICAgIDx3aWRnZXRncm91cD4KKyAgICAgIDx3aWRnZXQgaWQ9Ik1lc3NhZ2UiIHR5cGU9ImxhYmVsIi8+CisgICAgPC93aWRnZXRncm91cD4KKyAgPC9kaWFsb2c+Cis8L2dpbWw+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0NTI0Nl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE0NTI0Nl8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2ZlOGM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTQ1MjQ2XzAueHNkCkBAIC0wLDAgKzEsMTczIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiID8+Cis8IS0tICAKKyAqICRJZDogZ2ltbC54c2QsdiAxLjMgMjAwNC8wNi8yNSAwOTowMzo1MyBlbnNvbmljIEV4cCAkCisgKiBAZmlsZSAgIGdpbWwueHNkCisgKiBAYXV0aG9yIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KKyAqIEBkYXRlICAgVGh1IEp1biAyNCAxNzoyODoyNiBNRVNUIDIwMDQKKyAqIAorICogQGJyaWVmICBnaW1sIGRvY3VtZW50IHNjaGVtYSBkZWZpbml0aW9uCisgKiBAaW5ncm91cCBnaXRrY29yZQorICoKKy0tPgorPHhzOnNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9naXRrLnNvdXJjZWZvcmdlLm5ldC8iCisJCXhtbG5zPSJodHRwOi8vZ2l0ay5zb3VyY2Vmb3JnZS5uZXQvIgorCQl4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJCXhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKKwkJeG1sbnM6aTE4bj0iaHR0cDovL2FwYWNoZS5vcmcvY29jb29uL2kxOG4vMi4wLyI+CisJPHhzOmFubm90YXRpb24+CisJCTx4czpkb2N1bWVudGF0aW9uPgorCQkJVGhpcyBzY2hlbWEgZGVzY3JpYmVzIGdpbWwgZGlhbG9nIHNvdXJjZXMKKwkJPC94czpkb2N1bWVudGF0aW9uPgorICA8L3hzOmFubm90YXRpb24+CisKKyAgPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorCQlzY2hlbWFMb2NhdGlvbj0iYnVnMTQ1MjQ2LnhzZC5pbXAiCisJLz4KKyAgPCEtLXhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9hcGFjaGUub3JnL2NvY29vbi9pMThuLzIuMC8iCisJCXNjaGVtYUxvY2F0aW9uPSJmaWxlOi8vLi9pMThuLnhzZCIKKwkvLS0+CisgCisgPCEtLSBmb3JlaWduIG5hbWVzcGFjZQorCSA8eHM6ZWxlbWVudCBuYW1lPSJ0aXRsZSI+CisJCQk8eHM6Y29tcGxleFR5cGUgbWl4ZWQ9InRydWUiPgorCQkJCTx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisJCQkJPC94czpjaG9pY2U+CisJCQk8L3hzOmNvbXBsZXhUeXBlPgorCQk8L3hzOmVsZW1lbnQ+CisJCisJCTx4czplbGVtZW50IG5hbWU9InRleHQiPgorCQkJPHhzOmNvbXBsZXhUeXBlIG1peGVkPSJ0cnVlIj48L3hzOmNvbXBsZXhUeXBlPgorCQk8L3hzOmVsZW1lbnQ+CisgLS0+CisJCisJPHhzOmVsZW1lbnQgbmFtZT0ib3B0aW9uIj4KKwkJPHhzOmNvbXBsZXhUeXBlIG1peGVkPSJ0cnVlIj4KKwkJCTx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+PC94czpjaG9pY2U+CisJCTwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCQorCTx4czplbGVtZW50IG5hbWU9Im9wdGlvbnMiPgorCQk8eHM6Y29tcGxleFR5cGU+CisJCQk8eHM6c2VxdWVuY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisJCQkJPHhzOmVsZW1lbnQgcmVmPSJvcHRpb24iLz4KKwkJCTwveHM6c2VxdWVuY2U+CisJCTwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCQorCTx4czplbGVtZW50IG5hbWU9ImRpc2FibGVkIj4KKwkJPHhzOmNvbXBsZXhUeXBlIG1peGVkPSJ0cnVlIj48L3hzOmNvbXBsZXhUeXBlPgorCTwveHM6ZWxlbWVudD4KKwkKKwk8eHM6ZWxlbWVudCBuYW1lPSJyZXF1aXJlZCI+CisJCTx4czpjb21wbGV4VHlwZSBtaXhlZD0idHJ1ZSI+PC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+CisJCisJPHhzOmVsZW1lbnQgbmFtZT0idmFsdWUiPgorCQk8eHM6Y29tcGxleFR5cGUgbWl4ZWQ9InRydWUiPjwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCQorCTx4czplbGVtZW50IG5hbWU9ImxhYmVsIj4KKwkJPHhzOmNvbXBsZXhUeXBlIG1peGVkPSJ0cnVlIj4KKwkJCTx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9IjEiPjwveHM6Y2hvaWNlPgorCQk8L3hzOmNvbXBsZXhUeXBlPgorCTwveHM6ZWxlbWVudD4KKwkKKwk8eHM6ZWxlbWVudCBuYW1lPSJ3aWRnZXQiPgorCQk8eHM6Y29tcGxleFR5cGU+CisJCQk8eHM6c2VxdWVuY2U+CisJCQkJPHhzOmVsZW1lbnQgcmVmPSJtZXRhIiBtaW5PY2N1cnM9IjAiLz4KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImxhYmVsIiBtaW5PY2N1cnM9IjAiLz4KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImRpc2FibGVkIiBtaW5PY2N1cnM9IjAiLz4KKwkJCQk8eHM6ZWxlbWVudCByZWY9InZhbHVlIiBtaW5PY2N1cnM9IjAiLz4KKwkJCQk8eHM6ZWxlbWVudCByZWY9Im9wdGlvbnMiIG1pbk9jY3Vycz0iMCIvPgorCQkJPC94czpzZXF1ZW5jZT4KKwkJCTx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InhzOklEIi8+CisJCQk8eHM6YXR0cmlidXRlIG5hbWU9InR5cGUiIGRlZmF1bHQ9ImFjdGlvbiI+CisJCQkJPHhzOnNpbXBsZVR5cGU+CisJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorCQkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJhY3Rpb24iLz4KKwkJCQkJCTx4czplbnVtZXJhdGlvbiB2YWx1ZT0iY2hhcmFjdGVyaW5wdXQiLz4KKwkJCQkJCTx4czplbnVtZXJhdGlvbiB2YWx1ZT0iY2hhcmFjdGVyaW5wdXRfbnVtZXJpYyIvPgorCQkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJjaGFyYWN0ZXJpbnB1dF9hbHBoYWJldGljIi8+CisJCQkJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9Im9wdGlvbmNob2ljZSIvPgorCQkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJvcHRpb25jaG9pY2VfYm9vbGVhbiIvPgorCQkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJvcHRpb25jaG9pY2Vfc2luZ2xlIi8+CisJCQkJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9Im9wdGlvbmNob2ljZV9zaW5nbGVfY29tcGFjdCIvPgorCQkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJsYWJlbCIvPgorCQkJCQk8L3hzOnJlc3RyaWN0aW9uPgorCQkJCTwveHM6c2ltcGxlVHlwZT4KKwkJCTwveHM6YXR0cmlidXRlPgorCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJoYXNGb2N1cyIgZGVmYXVsdD0iZmFsc2UiPgorCQkJCTx4czpzaW1wbGVUeXBlPgorCQkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4KKwkJCQkJCTx4czplbnVtZXJhdGlvbiB2YWx1ZT0idHJ1ZSIvPgorCQkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJmYWxzZSIvPgorCQkJCQk8L3hzOnJlc3RyaWN0aW9uPgorCQkJCTwveHM6c2ltcGxlVHlwZT4KKwkJCTwveHM6YXR0cmlidXRlPgorCQk8L3hzOmNvbXBsZXhUeXBlPgorCTwveHM6ZWxlbWVudD4KKwkKKwk8eHM6ZWxlbWVudCBuYW1lPSJ3aWRnZXRncm91cCI+CisJCTx4czpjb21wbGV4VHlwZT4KKwkJCTx4czpzZXF1ZW5jZT4KKwkJCQk8eHM6ZWxlbWVudCByZWY9Im1ldGEiIG1pbk9jY3Vycz0iMCIvPgorCQkJCTx4czplbGVtZW50IHJlZj0ibGFiZWwiIG1pbk9jY3Vycz0iMCIvPgorCQkJCTx4czplbGVtZW50IHJlZj0id2lkZ2V0IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisJCQkJPHhzOmVsZW1lbnQgcmVmPSJ3aWRnZXRncm91cCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorCQkJPC94czpzZXF1ZW5jZT4KKwkJPC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+CisJCisJPHhzOmVsZW1lbnQgbmFtZT0iZGlhbG9nd2lkZ2V0Ij4KKwkJPHhzOmNvbXBsZXhUeXBlIG1peGVkPSJ0cnVlIj4KKwkJCTx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InhzOklEIi8+CisJCTwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCQorCTx4czplbGVtZW50IG5hbWU9ImRpYWxvZ3dpZGdldHMiPgorCQk8eHM6Y29tcGxleFR5cGU+CisJCQk8eHM6c2VxdWVuY2U+CisJCQkJPHhzOmVsZW1lbnQgcmVmPSJkaWFsb2d3aWRnZXQiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisJCQk8L3hzOnNlcXVlbmNlPgorCQk8L3hzOmNvbXBsZXhUeXBlPgorCTwveHM6ZWxlbWVudD4KKwkKKwk8eHM6ZWxlbWVudCBuYW1lPSJtZXRhIj4KKwkJPHhzOmNvbXBsZXhUeXBlPgorCQkJPHhzOnNlcXVlbmNlPgorCQkJCTx4czplbGVtZW50IHJlZj0iZGM6dGl0bGUiLz4KKwkJCTwveHM6c2VxdWVuY2U+CisJCTwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCQorCTx4czplbGVtZW50IG5hbWU9ImRpYWxvZyI+CisJCTx4czpjb21wbGV4VHlwZT4KKwkJCTx4czpzZXF1ZW5jZT4KKwkJCQk8eHM6ZWxlbWVudCByZWY9Im1ldGEiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSIxIi8+CisJCQkJPHhzOmVsZW1lbnQgcmVmPSJkaWFsb2d3aWRnZXRzIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0iMSIvPgorCQkJCTx4czplbGVtZW50IHJlZj0id2lkZ2V0Z3JvdXAiIG1pbk9jY3Vycz0iMSIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKwkJCTwveHM6c2VxdWVuY2U+CisJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpJRCIvPgorCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJmb2N1cyIgZGVmYXVsdD0ibWFpbiI+CisJCQkJPHhzOnNpbXBsZVR5cGU+CisJCQkJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorCQkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJtYWluIi8+CisJCQkJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImN0cmwiLz4KKwkJCQkJPC94czpyZXN0cmljdGlvbj4KKwkJCQk8L3hzOnNpbXBsZVR5cGU+CisJCQk8L3hzOmF0dHJpYnV0ZT4KKwkJPC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+CisJCisJPHhzOmVsZW1lbnQgbmFtZT0iZ2ltbCI+CisJCTx4czpjb21wbGV4VHlwZT4KKwkJCTx4czpzZXF1ZW5jZT4KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImRpYWxvZyIgbWluT2NjdXJzPSIxIiBtYXhPY2N1cnM9IjEiLz4KKwkJCTwveHM6c2VxdWVuY2U+CisJCQk8IS0teHM6YXR0cmlidXRlIG5hbWU9InhtbG5zIiB0eXBlPSJ4czpzdHJpbmciIGZpeGVkPSJodHRwOi8vZ2l0ay5zb3VyY2Vmb3JnZS5uZXQvIi8tLT4KKwkJPC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+CisKKzwveHM6c2NoZW1hPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNTI0NzBfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNTI0NzBfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWRjYTIzNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE1MjQ3MF8xLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHJvYXA6ZGV2aWNlSGVsbG8KKyAgeG1sbnM6cm9hcD0idXJuOm9tYTpiYWM6ZGxkcm06cm9hcC0xLjAiCisgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICAgIDxkZXZpY2VJRD4KKyAgICAgICAgPGtleUlkZW50aWZpZXIKKz48aGFzaD52WEVOYytVbS85L052bVlLaUhETGFFckswZ2s9PC9oYXNoPjwva2V5SWRlbnRpZmllcj4KKyAgICA8L2RldmljZUlEPgorPC9yb2FwOmRldmljZUhlbGxvPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE1MjQ3MF8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE1MjQ3MF8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZmM5NzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTUyNDcwXzEueHNkCkBAIC0wLDAgKzEsNDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHNjaGVtYSAKKyAgdGFyZ2V0TmFtZXNwYWNlPSJ1cm46b21hOmJhYzpkbGRybTpyb2FwLTEuMCIKKyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorICB4bWxuczpyb2FwPSJ1cm46b21hOmJhYzpkbGRybTpyb2FwLTEuMCIKKyAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiCisgIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyIKKyAgZWxlbWVudEZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCIKKyAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIj4KKzwhLS0gQmFzaWMgVHlwZXMgLS0+Cis8Y29tcGxleFR5cGUgbmFtZT0iUmVxdWVzdCIgYWJzdHJhY3Q9InRydWUiLz4KKzwhLS0gQmFzaWMgdHlwZXMgdG8gaWRlbnRpZnkgZW50aXRpZXMgLS0+CisKKzxjb21wbGV4VHlwZSBuYW1lPSJJZGVudGlmaWVyIj4KKyAgPGNob2ljZT4KKyAgICA8ZWxlbWVudCBuYW1lPSJrZXlJZGVudGlmaWVyIiB0eXBlPSJyb2FwOlg1MDlTUEtJSGFzaCIvPiA8IS0tIHdhczogdHlwZT0icm9hcDpLZXlJZGVudGlmaWVyIiAtLT4KKyAgPC9jaG9pY2U+Cis8L2NvbXBsZXhUeXBlPgorCis8Y29tcGxleFR5cGUgbmFtZT0iS2V5SWRlbnRpZmllciIgLz4gPCEtLSByZW1vdmVkOiBhYnN0cmFjdD0idHJ1ZSIgLS0+CisKKzxjb21wbGV4VHlwZSBuYW1lPSJYNTA5U1BLSUhhc2giPgorICA8Y29tcGxleENvbnRlbnQ+CisgICAgPGV4dGVuc2lvbiBiYXNlPSJyb2FwOktleUlkZW50aWZpZXIiPgorICAgICAgPHNlcXVlbmNlPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJoYXNoIiB0eXBlPSJiYXNlNjRCaW5hcnkiLz4KKyAgICAgIDwvc2VxdWVuY2U+CisgICAgICA8YXR0cmlidXRlIG5hbWU9ImFsZ29yaXRobSIgdHlwZT0iYW55VVJJIgorICAgICAgICAgICAgICAgICBkZWZhdWx0PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPiAKKyAgICA8L2V4dGVuc2lvbj4KKyAgPC9jb21wbGV4Q29udGVudD4KKzwvY29tcGxleFR5cGU+CisKKzxlbGVtZW50IG5hbWU9ImRldmljZUhlbGxvIiB0eXBlPSJyb2FwOkRldmljZUhlbGxvIi8+CisKKzxjb21wbGV4VHlwZSBuYW1lPSJEZXZpY2VIZWxsbyI+CisgIDxjb21wbGV4Q29udGVudD4KKyAgICA8ZXh0ZW5zaW9uIGJhc2U9InJvYXA6UmVxdWVzdCI+CisgICAgICA8c2VxdWVuY2U+CisgICAgICAgIDxlbGVtZW50IG5hbWU9ImRldmljZUlEIiB0eXBlPSJyb2FwOklkZW50aWZpZXIiCisgICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+IAorICAgICAgPC9zZXF1ZW5jZT4KKyAgICA8L2V4dGVuc2lvbj4KKyAgPC9jb21wbGV4Q29udGVudD4KKzwvY29tcGxleFR5cGU+CisKKzwvc2NoZW1hPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE2Nzc1NF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE2Nzc1NF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWVjN2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMTY3NzU0XzAueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHRlc3QgeG1sbnM9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vVGVzdCIgCisgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vVGVzdCBidWcxNjc3NTQueHNkIj4gCisgICAgICAgIDxjaGlsZD4gCisgICAgICAgICAgICAgICAgPGZvby8+IAorICAgICAgICA8L2NoaWxkPiAKKyAgICAgICAgPGNoaWxkPiAKKyAgICAgICAgICAgICAgICA8Zm9vLz4gCisgICAgICAgICAgICAgICAgPGpvZS8+IAorICAgICAgICA8L2NoaWxkPiAKKzwvdGVzdD4gCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNjc3NTRfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWcxNjc3NTRfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc4ODNkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzE2Nzc1NF8wLnhzZApAQCAtMCwwICsxLDI5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hICAKKyAgICAgICAgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgIAorICAgICAgICB4bWxuczp0YXJnZXQ9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vVGVzdCIgIAorICAgICAgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vVGVzdCIgIAorICAgICAgICB2ZXJzaW9uPSIxLjAiICAKKyAgICAgICAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiID4gIAorICAgIAorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIiAvPiAgCisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJiYXIiIC8+ICAKKyAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImpvZSIgLz4gIAorICAKKyAgICAgICAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJkb21pbmlrIj4gIAorICAgICAgICAgICAgICAgIDx4c2Q6YWxsPiAgCisgICAgICAgICAgICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9InRhcmdldDpmb28iIC8+ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBtaW5PY2N1cnM9IjAiIHJlZj0idGFyZ2V0OmJhciIgLz4gIAorICAgICAgICAgICAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG1pbk9jY3Vycz0iMCIgcmVmPSJ0YXJnZXQ6am9lIiAvPiAgCisgICAgICAgICAgICAgICAgPC94c2Q6YWxsPiAgCisgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPiAgCisgIAorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0idGVzdCI+ICAKKyAgICAgICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPiAgCisgICAgICAgICAgICAgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPiAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmFtZT0iY2hpbGQiIHR5cGU9InRhcmdldDpkb21pbmlrIiAvPiAgCisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4gIAorICAgICAgICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPiAgCisgICAgICAgIDwveHNkOmVsZW1lbnQ+ICAKKyAgCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzAzNTY2XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzAzNTY2XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiZjU2ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMDM1NjZfMS54bWwKQEAgLTAsMCArMSwxOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8VGVzdAorICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iYnVnMzAzNTY2XzEueHNkIj4KKyAgPENvdW50cnkgY29kZT0iRCI+CisgICAgPENpdHkgbmFtZT0iQmVybGluIgorICAgICAgICAgIGNvZGU9IkIiPgorICAgICAgPFBhcnQgY291bnRyeT0iRCIvPgorICAgICAgPFBhcnQgY291bnRyeT0iQiIvPgorICAgIDwvQ2l0eT4KKyAgPC9Db3VudHJ5PgorICA8Q291bnRyeSBjb2RlPSJGIj4KKyAgICA8Q2l0eSBuYW1lPSJQYXJpcyIgY29kZT0iUCI+CisgICAgICA8UGFydCBjb3VudHJ5PSJGIi8+CisgICAgICA8UGFydCBjb3VudHJ5PSJGIi8+CisgICAgPC9DaXR5PgorICA8L0NvdW50cnk+Cis8L1Rlc3Q+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMwMzU2Nl8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWU5OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzAzNTY2XzEueHNkCkBAIC0wLDAgKzEsNjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisKKyAgPHhzZDpzaW1wbGVUeXBlIG5hbWU9ImNvZGVUeXBlIj4KKyAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpzdHJpbmciPgorICAgICAgPHhzZDpwYXR0ZXJuIHZhbHVlPSJbQS1aXSsiLz4KKyAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgPC94c2Q6c2ltcGxlVHlwZT4KKworICA8eHNkOmVsZW1lbnQgbmFtZT0iVGVzdCI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgIDx4c2Q6ZWxlbWVudCByZWY9IkNvdW50cnkiCisgICAgICAgICAgICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDwveHNkOmVsZW1lbnQ+CisKKyAgPHhzZDplbGVtZW50IG5hbWU9IkNvdW50cnkiPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICA8eHNkOmVsZW1lbnQgcmVmPSJDaXR5IgorICAgICAgICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0iY29kZSIKKyAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImNvZGVUeXBlIgorICAgICAgICAgICAgICAgICAgICAgdXNlPSJyZXF1aXJlZCIvPgorICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgIDx4c2Q6a2V5IG5hbWU9IkNvdW50cnlEdW1teUtleSI+CisgICAgICA8eHNkOnNlbGVjdG9yIHhwYXRoPSIuIi8+CisgICAgICA8eHNkOmZpZWxkIHhwYXRoPSJAY29kZSIvPgorICAgIDwveHNkOmtleT4KKyAgICA8eHNkOmtleXJlZiBuYW1lPSJQYXJ0UmVmQ291bnRyeUR1bW15IgorICAgICAgcmVmZXI9IkNvdW50cnlEdW1teUtleSI+CisgICAgICA8eHNkOnNlbGVjdG9yIHhwYXRoPSIuLy9QYXJ0Ii8+CisgICAgICA8eHNkOmZpZWxkIHhwYXRoPSJAY291bnRyeSIvPgorICAgIDwveHNkOmtleXJlZj4KKyAgPC94c2Q6ZWxlbWVudD4KKworICA8eHNkOmVsZW1lbnQgbmFtZT0iQ2l0eSI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgIDx4c2Q6ZWxlbWVudCByZWY9IlBhcnQiCisgICAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjIiCisgICAgICAgICAgICAgICAgICAgICBtYXhPY2N1cnM9IjIiLz4KKyAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIKKyAgICAgICAgICAgICAgICAgICAgIHR5cGU9InhzZDpzdHJpbmciCisgICAgICAgICAgICAgICAgICAgICB1c2U9InJlcXVpcmVkIi8+CisgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJjb2RlIgorICAgICAgICAgICAgICAgICAgICAgdHlwZT0ieHNkOnN0cmluZyIKKyAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKworICA8eHNkOmVsZW1lbnQgbmFtZT0iUGFydCI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImNvdW50cnkiCisgICAgICAgICAgICAgICAgICAgIHR5cGU9ImNvZGVUeXBlIgorICAgICAgICAgICAgICAgICAgICB1c2U9InJlcXVpcmVkIi8+CisgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzA2ODA2XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzA2ODA2XzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwYzU1ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMDY4MDZfMC54bWwKQEAgLTAsMCArMSwxMTEgQEAKKzw/eG1sIHZlcnNpb24gPSAnMS4wJz8+Cis8dGFyZ2V0R2VvbWV0cnkKKyAgeG1sbnM6eHNpPSdodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZScKKyAgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249J2J1ZzMwNjgwNl8xLnhzZCc+CisgIDwhLS0gdHlwZSAxIGN5bGluZGVyIChvcmlnaW5hbCkgLS0+CisgIDxjb21wb25lbnQgbmFtZT0iMTUwMiI+CisgICAgPGRlc2NyaXB0aW9uPi9hbGwvdHVyYmluZS9yLnR1cmJzaGFmdDwvZGVzY3JpcHRpb24+CisgICAgPGN5bGluZGVyIG5hbWU9InMudHVyYnNoYWZ0Ij4KKyAgICAgIDxyYWRpdXMgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgICAgMS4zNzUgPC9yYWRpdXM+CisgICAgICA8bGVuZ3RoIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gICAgMzAuMjUwIDwvbGVuZ3RoPgorICAgICAgPGN5bC10cmFuc2Zvcm0+CisgICAgICAgIDx0cmFuc2xhdGlvbiBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAgLTEzLjEyNSAgICAgMC4wMDAgICAgIDAuMDAwPC90cmFuc2xhdGlvbj4KKyAgICAgICAgPHJvdGF0aW9uIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdkZWdyZWUnPiAgICAtMC4wMDAgICAgOTAuMDAwICAgICAwLjAwMDwvcm90YXRpb24+CisgICAgICA8L2N5bC10cmFuc2Zvcm0+CisgICAgICA8ZGVzY3JpcHRpb24+L2FsbC90dXJiaW5lL3IudHVyYnNoYWZ0L3MudHVyYnNoYWZ0PC9kZXNjcmlwdGlvbj4KKyAgICA8L2N5bGluZGVyPgorICA8L2NvbXBvbmVudD4KKworPGdlb21ldHJ5R3JvdXAgbmFtZT0nZzAnPgorICA8IS0tIHR5cGUgMiBjeWxpbmRlciAobmV3LCB2ZXJzaW9uMikgLS0+CisgIDxjb21wb25lbnQgbmFtZT0iMTUwMiI+CisgICAgPGRlc2NyaXB0aW9uPi9hbGwvdHVyYmluZS9yLnR1cmJzaGFmdDwvZGVzY3JpcHRpb24+CisgICAgPGN5bGluZGVyIG5hbWU9InMudHVyYnNoYWZ0Ij4KKyAgICAgIDxyYWRpdXMgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgICAgMS4zNzUgPC9yYWRpdXM+CisgICAgICA8YmFzZTEgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgMCAwIDAgPC9iYXNlMT4KKyAgICAgIDxiYXNlMiBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAxLjEgMS4xIDEuMSA8L2Jhc2UyPgorICAgICAgPGRlc2NyaXB0aW9uPi9hbGwvdHVyYmluZS9yLnR1cmJzaGFmdC9zLnR1cmJzaGFmdDwvZGVzY3JpcHRpb24+CisgICAgPC9jeWxpbmRlcj4KKyAgPC9jb21wb25lbnQ+CisKKzxnZW9tZXRyeUdyb3VwIG5hbWU9J2cxJz4KKyAgPCEtLSB0eXBlIDIgY3lsaW5kZXIgKG5ldywgdmVyc2lvbjIpIC0tPgorICA8Y29tcG9uZW50IG5hbWU9IjE1MDIiPgorICAgIDxkZXNjcmlwdGlvbj4vYWxsL3R1cmJpbmUvci50dXJic2hhZnQ8L2Rlc2NyaXB0aW9uPgorICAgIDxjeWxpbmRlciBuYW1lPSJzLnR1cmJzaGFmdCI+CisgICAgICA8cmFkaXVzIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gICAgIDEuMzc1IDwvcmFkaXVzPgorICAgICAgPGJhc2UxIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gIDAgMCAwIDwvYmFzZTE+CisgICAgICA8YmFzZTIgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgMS4xIDEuMSAxLjEgPC9iYXNlMj4KKyAgICAgIDxkZXNjcmlwdGlvbj4vYWxsL3R1cmJpbmUvci50dXJic2hhZnQvcy50dXJic2hhZnQ8L2Rlc2NyaXB0aW9uPgorICAgIDwvY3lsaW5kZXI+CisgIDwvY29tcG9uZW50PgorPC9nZW9tZXRyeUdyb3VwPgorCisgIDwhLS0gdHlwZSAyIGN5bGluZGVyIChuZXcsIHZlcnNpb24yKSAtLT4KKyAgPGNvbXBvbmVudCBuYW1lPSIxNTAyIj4KKyAgICA8ZGVzY3JpcHRpb24+L2FsbC90dXJiaW5lL3IudHVyYnNoYWZ0PC9kZXNjcmlwdGlvbj4KKyAgICA8Y3lsaW5kZXIgbmFtZT0icy50dXJic2hhZnQiPgorICAgICAgPHJhZGl1cyBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAgICAxLjM3NSA8L3JhZGl1cz4KKyAgICAgIDxiYXNlMSBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAwIDAgMCA8L2Jhc2UxPgorICAgICAgPGJhc2UyIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gIDEuMSAxLjEgMS4xIDwvYmFzZTI+CisgICAgICA8ZGVzY3JpcHRpb24+L2FsbC90dXJiaW5lL3IudHVyYnNoYWZ0L3MudHVyYnNoYWZ0PC9kZXNjcmlwdGlvbj4KKyAgICA8L2N5bGluZGVyPgorICA8L2NvbXBvbmVudD4KKworICA8IS0tIHR5cGUgMiBjeWxpbmRlciAobmV3LCB2ZXJzaW9uMikgLS0+CisgIDxjb21wb25lbnQgbmFtZT0iMTUwMiI+CisgICAgPGRlc2NyaXB0aW9uPi9hbGwvdHVyYmluZS9yLnR1cmJzaGFmdDwvZGVzY3JpcHRpb24+CisgICAgPGN5bGluZGVyIG5hbWU9InMudHVyYnNoYWZ0Ij4KKyAgICAgIDxyYWRpdXMgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgICAgMS4zNzUgPC9yYWRpdXM+CisgICAgICA8YmFzZTEgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgMCAwIDAgPC9iYXNlMT4KKyAgICAgIDxiYXNlMiBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAxLjEgMS4xIDEuMSA8L2Jhc2UyPgorICAgICAgPGRlc2NyaXB0aW9uPi9hbGwvdHVyYmluZS9yLnR1cmJzaGFmdC9zLnR1cmJzaGFmdDwvZGVzY3JpcHRpb24+CisgICAgPC9jeWxpbmRlcj4KKyAgPC9jb21wb25lbnQ+Cis8L2dlb21ldHJ5R3JvdXA+CisKKyAgPCEtLSB0eXBlIDIgY3lsaW5kZXIgKG5ldywgdmVyc2lvbjIpIC0tPgorICA8Y29tcG9uZW50IG5hbWU9IjE1MDIiPgorICAgIDxkZXNjcmlwdGlvbj4vYWxsL3R1cmJpbmUvci50dXJic2hhZnQ8L2Rlc2NyaXB0aW9uPgorICAgIDxjeWxpbmRlciBuYW1lPSJzLnR1cmJzaGFmdCI+CisgICAgICA8cmFkaXVzIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gICAgIDEuMzc1IDwvcmFkaXVzPgorICAgICAgPGJhc2UxIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gIDAgMCAwIDwvYmFzZTE+CisgICAgICA8YmFzZTIgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgMS4xIDEuMSAxLjEgPC9iYXNlMj4KKyAgICAgIDxkZXNjcmlwdGlvbj4vYWxsL3R1cmJpbmUvci50dXJic2hhZnQvcy50dXJic2hhZnQ8L2Rlc2NyaXB0aW9uPgorICAgIDwvY3lsaW5kZXI+CisgIDwvY29tcG9uZW50PgorCisgIDwhLS0gdHlwZSAyIGN5bGluZGVyIChuZXcsIHZlcnNpb24yKSAtLT4KKyAgPGNvbXBvbmVudCBuYW1lPSIxNTAyIj4KKyAgICA8ZGVzY3JpcHRpb24+L2FsbC90dXJiaW5lL3IudHVyYnNoYWZ0PC9kZXNjcmlwdGlvbj4KKyAgICA8Y3lsaW5kZXIgbmFtZT0icy50dXJic2hhZnQiPgorICAgICAgPHJhZGl1cyBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAgICAxLjM3NSA8L3JhZGl1cz4KKyAgICAgIDxiYXNlMSBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAwIDAgMCA8L2Jhc2UxPgorICAgICAgPGJhc2UyIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gIDEuMSAxLjEgMS4xIDwvYmFzZTI+CisgICAgICA8ZGVzY3JpcHRpb24+L2FsbC90dXJiaW5lL3IudHVyYnNoYWZ0L3MudHVyYnNoYWZ0PC9kZXNjcmlwdGlvbj4KKyAgICA8L2N5bGluZGVyPgorICA8L2NvbXBvbmVudD4KKworICA8IS0tIHR5cGUgMiBjeWxpbmRlciAobmV3LCB2ZXJzaW9uMikgLS0+CisgIDxjb21wb25lbnQgbmFtZT0iMTUwMiI+CisgICAgPGRlc2NyaXB0aW9uPi9hbGwvdHVyYmluZS9yLnR1cmJzaGFmdDwvZGVzY3JpcHRpb24+CisgICAgPGN5bGluZGVyIG5hbWU9InMudHVyYnNoYWZ0Ij4KKyAgICAgIDxyYWRpdXMgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgICAgMS4zNzUgPC9yYWRpdXM+CisgICAgICA8YmFzZTEgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgMCAwIDAgPC9iYXNlMT4KKyAgICAgIDxiYXNlMiBkaW1lbnNpb249J0wnIExlbmd0aD0naW5jaCc+ICAxLjEgMS4xIDEuMSA8L2Jhc2UyPgorICAgICAgPGRlc2NyaXB0aW9uPi9hbGwvdHVyYmluZS9yLnR1cmJzaGFmdC9zLnR1cmJzaGFmdDwvZGVzY3JpcHRpb24+CisgICAgPC9jeWxpbmRlcj4KKyAgPC9jb21wb25lbnQ+CisKKyAgPCEtLSB0eXBlIDIgY3lsaW5kZXIgKG5ldywgdmVyc2lvbjIpIC0tPgorICA8Y29tcG9uZW50IG5hbWU9IjE1MDIiPgorICAgIDxkZXNjcmlwdGlvbj4vYWxsL3R1cmJpbmUvci50dXJic2hhZnQ8L2Rlc2NyaXB0aW9uPgorICAgIDxjeWxpbmRlciBuYW1lPSJzLnR1cmJzaGFmdCI+CisgICAgICA8cmFkaXVzIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gICAgIDEuMzc1IDwvcmFkaXVzPgorICAgICAgPGJhc2UxIGRpbWVuc2lvbj0nTCcgTGVuZ3RoPSdpbmNoJz4gIDAgMCAwIDwvYmFzZTE+CisgICAgICA8YmFzZTIgZGltZW5zaW9uPSdMJyBMZW5ndGg9J2luY2gnPiAgMS4xIDEuMSAxLjEgPC9iYXNlMj4KKyAgICAgIDxkZXNjcmlwdGlvbj4vYWxsL3R1cmJpbmUvci50dXJic2hhZnQvcy50dXJic2hhZnQ8L2Rlc2NyaXB0aW9uPgorICAgIDwvY3lsaW5kZXI+CisgIDwvY29tcG9uZW50PgorCis8L3RhcmdldEdlb21ldHJ5PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzA2ODA2XzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzA2ODA2XzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYzgwNWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMDY4MDZfMS54c2QKQEAgLTAsMCArMSw1NDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ0YXJnZXRHZW9tZXRyeSI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOmdyb3VwIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIHJlZj0iZ2VvbWV0cnktZWxlbWVudCIvPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZ2VvbWV0cnlHcm91cCIgdHlwZT0iZ2VvbWV0cnlHcm91cC1jb250ZW50Ii8+CisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJnZW9tZXRyeUdyb3VwLWNvbnRlbnQiPgorICAgIDx4czpncm91cCBtYXhPY2N1cnM9InVuYm91bmRlZCIgcmVmPSJnZW9tZXRyeS1lbGVtZW50Ii8+CisgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB1c2U9InJlcXVpcmVkIiB0eXBlPSJ4czp0b2tlbiIvPgorICA8L3hzOmNvbXBsZXhUeXBlPgorICA8eHM6Z3JvdXAgbmFtZT0iZ2VvbWV0cnktZWxlbWVudCI+CisgICAgPHhzOnNlcXVlbmNlPgorICAgICAgPHhzOmNob2ljZSBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJjb21wb25lbnQiLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJnZW9tZXRyeUdyb3VwIi8+CisgICAgICA8L3hzOmNob2ljZT4KKyAgICA8L3hzOnNlcXVlbmNlPgorICA8L3hzOmdyb3VwPgorICA8eHM6ZWxlbWVudCBuYW1lPSJjb21wb25lbnQiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9ImRlc2NyaXB0aW9uIi8+CisgICAgICAgIDx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJjeWxpbmRlciIvPgorICAgICAgICAgIDx4czplbGVtZW50IHJlZj0iZWxsaXBzb2lkIi8+CisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJmYWNlU2V0Ii8+CisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJ0dWJlIi8+CisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJzcGhlcmUiLz4KKyAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImJveCIvPgorICAgICAgICAgIDx4czplbGVtZW50IHJlZj0iZXh0cnVzaW9uIi8+CisgICAgICAgIDwveHM6Y2hvaWNlPgorICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Im5hbWUtYXR0cmlidXRlIi8+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorICA8eHM6ZWxlbWVudCBuYW1lPSJ0cmFuc2xhdGlvbiI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idGhyZWUtZG91Ymxlcy1saXN0Ij4KKyAgICAgICAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJkaW1lbnNpb24tYXR0cmlidXRlIi8+CisgICAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0iTGVuZ3RoLWF0dHJpYnV0ZSIvPgorICAgICAgICA8L3hzOmV4dGVuc2lvbj4KKyAgICAgIDwveHM6c2ltcGxlQ29udGVudD4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+CisgIDx4czplbGVtZW50IG5hbWU9InJvdGF0aW9uIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2ltcGxlQ29udGVudD4KKyAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0aHJlZS1kb3VibGVzLWxpc3QiPgorICAgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9ImRpbWVuc2lvbi1hdHRyaWJ1dGUiLz4KKyAgICAgICAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJMZW5ndGgtYXR0cmlidXRlIi8+CisgICAgICAgIDwveHM6ZXh0ZW5zaW9uPgorICAgICAgPC94czpzaW1wbGVDb250ZW50PgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYWJvdXQiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRocmVlLWRvdWJsZXMtbGlzdCI+CisgICAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZGltZW5zaW9uLWF0dHJpYnV0ZSIvPgorICAgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Ikxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgICAgICAgPC94czpleHRlbnNpb24+CisgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorICA8eHM6ZWxlbWVudCBuYW1lPSJsZW5ndGgiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6YW55VHlwZSI+CisgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6ZG91YmxlIj4KKyAgICAgICAgICAgICAgPHhzOm1pbkV4Y2x1c2l2ZSB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZGltZW5zaW9uLWF0dHJpYnV0ZSIvPgorICAgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Ikxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICAgIDwveHM6c2ltcGxlQ29udGVudD4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+CisgIDx4czplbGVtZW50IG5hbWU9InJhZGl1cyI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czphbnlUeXBlIj4KKyAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpkb3VibGUiPgorICAgICAgICAgICAgICA8eHM6bWluRXhjbHVzaXZlIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJkaW1lbnNpb24tYXR0cmlidXRlIi8+CisgICAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0iTGVuZ3RoLWF0dHJpYnV0ZSIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgPC94czpzaW1wbGVDb250ZW50PgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYmFzZTEiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRocmVlLWRvdWJsZXMtbGlzdCI+CisgICAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZGltZW5zaW9uLWF0dHJpYnV0ZSIvPgorICAgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Ikxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgICAgICAgPC94czpleHRlbnNpb24+CisgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorICA8eHM6ZWxlbWVudCBuYW1lPSJiYXNlMiI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0idGhyZWUtZG91Ymxlcy1saXN0Ij4KKyAgICAgICAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJkaW1lbnNpb24tYXR0cmlidXRlIi8+CisgICAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0iTGVuZ3RoLWF0dHJpYnV0ZSIvPgorICAgICAgICA8L3hzOmV4dGVuc2lvbj4KKyAgICAgIDwveHM6c2ltcGxlQ29udGVudD4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+CisgIDx4czplbGVtZW50IG5hbWU9InRyYW5zZm9ybSI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBtaW5PY2N1cnM9IjAiIHJlZj0idHJhbnNsYXRpb24iLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9InJvdGF0aW9uIi8+CisgICAgICAgIDx4czplbGVtZW50IG1pbk9jY3Vycz0iMCIgcmVmPSJhYm91dCIvPgorICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+CisgIDx4czplbGVtZW50IG5hbWU9ImN5bC10cmFuc2Zvcm0iPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJ0cmFuc2xhdGlvbiIvPgorICAgICAgICA8eHM6ZWxlbWVudCBtaW5PY2N1cnM9IjAiIHJlZj0icm90YXRpb24iLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9ImFib3V0Ii8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iY3lsaW5kZXIiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAgIDx4czplbGVtZW50IHJlZj0icmFkaXVzIi8+CisgICAgICAgIDx4czpjaG9pY2U+CisgICAgICAgICAgPHhzOmNob2ljZT4KKyAgICAgICAgICAgIDx4czplbGVtZW50IHJlZj0ibGVuZ3RoIi8+CisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImN5bC10cmFuc2Zvcm0iLz4KKyAgICAgICAgICA8L3hzOmNob2ljZT4KKyAgICAgICAgICA8eHM6Y2hvaWNlPgorICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJiYXNlMSIvPgorICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJiYXNlMiIvPgorICAgICAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgcmVmPSJ0cmFuc2Zvcm0iLz4KKyAgICAgICAgICA8L3hzOmNob2ljZT4KKyAgICAgICAgPC94czpjaG9pY2U+CisgICAgICAgIDx4czplbGVtZW50IHJlZj0iZGVzY3JpcHRpb24iLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJ2TWF0ZXJpYWwiLz4KKyAgICAgIDwveHM6Y2hvaWNlPgorICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0ibmFtZS1hdHRyaWJ1dGUiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+CisgIDx4czplbGVtZW50IG5hbWU9ImVsbGlwc29pZCI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOmNob2ljZSBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icmFkaXVzIj4KKyAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICA8eHM6c2ltcGxlQ29udGVudD4KKyAgICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0aHJlZS1kb3VibGVzLWxpc3QiPgorICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Imxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgICAgICAgICAgICAgPC94czpleHRlbnNpb24+CisgICAgICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+CisgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICAgICAgPC94czplbGVtZW50PgorICAgICAgICA8eHM6ZWxlbWVudCByZWY9InZNYXRlcmlhbCIvPgorICAgICAgICA8eHM6ZWxlbWVudCByZWY9InRyYW5zZm9ybSIvPgorICAgICAgPC94czpjaG9pY2U+CisgICAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJuYW1lLWF0dHJpYnV0ZSIvPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZmFjZVNldCI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOmNob2ljZSBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJkZXNjcmlwdGlvbiIvPgorICAgICAgICA8eHM6ZWxlbWVudCByZWY9InZlcnRleF9ub3JtYWxzIi8+CisgICAgICAgIDx4czplbGVtZW50IHJlZj0idmVydGljZXMiLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJmYWNldHMiLz4KKyAgICAgICAgPHhzOmdyb3VwIHJlZj0ib3B0aW9uYWwtY29udGVudCIvPgorICAgICAgPC94czpjaG9pY2U+CisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzOnRva2VuIi8+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorICA8eHM6ZWxlbWVudCBuYW1lPSJmYWNldHMiIHR5cGU9ImZhY2V0cy1jb250ZW50Ii8+CisgIDx4czpzaW1wbGVUeXBlIG5hbWU9ImZhY2V0cy1jb250ZW50Ij4KKyAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0iaW50ZWdlci1saXN0Ii8+CisgIDwveHM6c2ltcGxlVHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idmVydGV4X25vcm1hbHMiIHR5cGU9InZlcnRleF9ub3JtYWxzLWNvbnRlbnQiLz4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InZlcnRleF9ub3JtYWxzLWNvbnRlbnQiPgorICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmFueVR5cGUiPgorICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8eHM6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzOmxpc3Q+CisgICAgICAgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICA8eHM6dW5pb24+CisgICAgICAgICAgICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICAgIDx4czp1bmlvbiBtZW1iZXJUeXBlcz0ieHM6ZG91YmxlIHhzOmRvdWJsZSB4czpkb3VibGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgICAgICA8eHM6dW5pb24gbWVtYmVyVHlwZXM9InhzOmRvdWJsZSB4czpkb3VibGUgeHM6ZG91YmxlIi8+CisgICAgICAgICAgICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgICAgPHhzOnVuaW9uIG1lbWJlclR5cGVzPSJ4czpkb3VibGUgeHM6ZG91YmxlIHhzOmRvdWJsZSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICAgIDx4czp1bmlvbiBtZW1iZXJUeXBlcz0ieHM6ZG91YmxlIHhzOmRvdWJsZSB4czpkb3VibGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgPC94czp1bmlvbj4KKyAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDwveHM6bGlzdD4KKyAgICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgIDx4czptaW5MZW5ndGggdmFsdWU9IjkiLz4KKyAgICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Imxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpzaW1wbGVDb250ZW50PgorICA8L3hzOmNvbXBsZXhUeXBlPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ2ZXJ0aWNlcyIgdHlwZT0idmVydGljZXMtY29udGVudCIvPgorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0idmVydGljZXMtY29udGVudCI+CisgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6YW55VHlwZSI+CisgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgIDx4czpyZXN0cmljdGlvbj4KKyAgICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHM6bGlzdD4KKyAgICAgICAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgIDx4czp1bmlvbj4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgICAgPHhzOnVuaW9uIG1lbWJlclR5cGVzPSJ4czpkb3VibGUgeHM6ZG91YmxlIHhzOmRvdWJsZSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICAgIDx4czp1bmlvbiBtZW1iZXJUeXBlcz0ieHM6ZG91YmxlIHhzOmRvdWJsZSB4czpkb3VibGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgICAgICA8eHM6dW5pb24gbWVtYmVyVHlwZXM9InhzOmRvdWJsZSB4czpkb3VibGUgeHM6ZG91YmxlIi8+CisgICAgICAgICAgICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgICAgPHhzOnVuaW9uIG1lbWJlclR5cGVzPSJ4czpkb3VibGUgeHM6ZG91YmxlIHhzOmRvdWJsZSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICA8L3hzOnVuaW9uPgorICAgICAgICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPC94czpsaXN0PgorICAgICAgICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgPHhzOm1pbkxlbmd0aCB2YWx1ZT0iOSIvPgorICAgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0ibGVuZ3RoLWF0dHJpYnV0ZSIvPgorICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+CisgIDwveHM6Y29tcGxleFR5cGU+CisgIDx4czplbGVtZW50IG5hbWU9InR1YmUiIHR5cGU9InR1YmUtY29udGVudCIvPgorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0idHViZS1jb250ZW50Ij4KKyAgICA8eHM6Y2hvaWNlIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgPHhzOmVsZW1lbnQgcmVmPSJzcGluZSIvPgorICAgICAgPHhzOmVsZW1lbnQgcmVmPSJyYWRpdXMiLz4KKyAgICAgIDx4czpncm91cCByZWY9Im9wdGlvbmFsLWNvbnRlbnQiLz4KKyAgICA8L3hzOmNob2ljZT4KKyAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJuYW1lLWF0dHJpYnV0ZSIvPgorICA8L3hzOmNvbXBsZXhUeXBlPgorICA8eHM6ZWxlbWVudCBuYW1lPSJzcGluZSIgdHlwZT0ic3BpbmUtY29udGVudCIvPgorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0ic3BpbmUtY29udGVudCI+CisgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6YW55VHlwZSI+CisgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgIDx4czpyZXN0cmljdGlvbj4KKyAgICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHM6bGlzdD4KKyAgICAgICAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgIDx4czp1bmlvbj4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgICAgPHhzOnVuaW9uIG1lbWJlclR5cGVzPSJ4czpkb3VibGUgeHM6ZG91YmxlIHhzOmRvdWJsZSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICAgIDx4czp1bmlvbiBtZW1iZXJUeXBlcz0ieHM6ZG91YmxlIHhzOmRvdWJsZSB4czpkb3VibGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgPC94czp1bmlvbj4KKyAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDwveHM6bGlzdD4KKyAgICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgIDx4czptaW5MZW5ndGggdmFsdWU9IjYiLz4KKyAgICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Imxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpzaW1wbGVDb250ZW50PgorICA8L3hzOmNvbXBsZXhUeXBlPgorICA8eHM6ZWxlbWVudCBuYW1lPSJzcGhlcmUiIHR5cGU9InNwaGVyZS1jb250ZW50Ii8+CisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJzcGhlcmUtY29udGVudCI+CisgICAgPHhzOmNob2ljZSBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgIDx4czplbGVtZW50IHJlZj0icmFkaXVzIi8+CisgICAgICA8eHM6ZWxlbWVudCByZWY9InBvc2l0aW9uIi8+CisgICAgPC94czpjaG9pY2U+CisgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0ibmFtZS1hdHRyaWJ1dGUiLz4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0icG9zaXRpb24iIHR5cGU9InBvc2l0aW9uLWNvbnRlbnQiLz4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBvc2l0aW9uLWNvbnRlbnQiPgorICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ0aHJlZS1kb3VibGVzLWxpc3QiPgorICAgICAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJsZW5ndGgtYXR0cmlidXRlIi8+CisgICAgICA8L3hzOmV4dGVuc2lvbj4KKyAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+CisgIDwveHM6Y29tcGxleFR5cGU+CisgIDx4czplbGVtZW50IG5hbWU9ImJveCIgdHlwZT0iYm94LWNvbnRlbnQiLz4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImJveC1jb250ZW50Ij4KKyAgICA8eHM6Y2hvaWNlIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgPHhzOmVsZW1lbnQgcmVmPSJzaXplIi8+CisgICAgICA8eHM6Y2hvaWNlPgorICAgICAgICA8eHM6ZWxlbWVudCByZWY9InBvc2l0aW9uIi8+CisgICAgICAgIDx4czplbGVtZW50IHJlZj0idHJhbnNmb3JtIi8+CisgICAgICA8L3hzOmNob2ljZT4KKyAgICA8L3hzOmNob2ljZT4KKyAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJuYW1lLWF0dHJpYnV0ZSIvPgorICA8L3hzOmNvbXBsZXhUeXBlPgorICA8eHM6ZWxlbWVudCBuYW1lPSJzaXplIiB0eXBlPSJzaXplLWNvbnRlbnQiLz4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InNpemUtY29udGVudCI+CisgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InRocmVlLWRvdWJsZXMtbGlzdCI+CisgICAgICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Imxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgICAgIDwveHM6ZXh0ZW5zaW9uPgorICAgIDwveHM6c2ltcGxlQ29udGVudD4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZXh0cnVzaW9uIiB0eXBlPSJleHRydXNpb24tY29udGVudCIvPgorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iZXh0cnVzaW9uLWNvbnRlbnQiPgorICAgIDx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICA8eHM6ZWxlbWVudCByZWY9InNwaW5lIi8+CisgICAgICA8eHM6ZWxlbWVudCByZWY9InNjYWxlIi8+CisgICAgICA8eHM6ZWxlbWVudCByZWY9ImNyb3NzU2VjdGlvbiIvPgorICAgICAgPHhzOmdyb3VwIHJlZj0ib3B0aW9uYWwtY29udGVudCIvPgorICAgIDwveHM6Y2hvaWNlPgorICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Im5hbWUtYXR0cmlidXRlIi8+CisgIDwveHM6Y29tcGxleFR5cGU+CisgIDx4czplbGVtZW50IG5hbWU9InNjYWxlIiB0eXBlPSJzY2FsZS1jb250ZW50Ii8+CisgIDx4czpzaW1wbGVUeXBlIG5hbWU9InNjYWxlLWNvbnRlbnQiPgorICAgIDx4czpyZXN0cmljdGlvbj4KKyAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICA8eHM6bGlzdD4KKyAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgIDx4czp1bmlvbiBtZW1iZXJUeXBlcz0ieHM6ZG91YmxlIHhzOmRvdWJsZSIvPgorICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPC94czpsaXN0PgorICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgPHhzOm1pbkxlbmd0aCB2YWx1ZT0iMiIvPgorICAgIDwveHM6cmVzdHJpY3Rpb24+CisgIDwveHM6c2ltcGxlVHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iY3Jvc3NTZWN0aW9uIiB0eXBlPSJjcm9zc1NlY3Rpb24tY29udGVudCIvPgorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iY3Jvc3NTZWN0aW9uLWNvbnRlbnQiPgorICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmFueVR5cGUiPgorICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8eHM6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzOmxpc3Q+CisgICAgICAgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICA8eHM6dW5pb24+CisgICAgICAgICAgICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICAgIDx4czp1bmlvbiBtZW1iZXJUeXBlcz0ieHM6ZG91YmxlIHhzOmRvdWJsZSB4czpkb3VibGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgICAgICA8eHM6dW5pb24gbWVtYmVyVHlwZXM9InhzOmRvdWJsZSB4czpkb3VibGUgeHM6ZG91YmxlIi8+CisgICAgICAgICAgICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgICAgPHhzOnVuaW9uIG1lbWJlclR5cGVzPSJ4czpkb3VibGUgeHM6ZG91YmxlIHhzOmRvdWJsZSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICA8L3hzOnVuaW9uPgorICAgICAgICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPC94czpsaXN0PgorICAgICAgICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgPHhzOm1pbkxlbmd0aCB2YWx1ZT0iOSIvPgorICAgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0ibGVuZ3RoLWF0dHJpYnV0ZSIvPgorICAgICAgICA8eHM6YXR0cmlidXRlR3JvdXAgcmVmPSJjbG9zZWQtYXR0cmlidXRlIi8+CisgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6c2ltcGxlQ29udGVudD4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImNsb3NlZC1hdHRyaWJ1dGUiPgorICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iY2xvc2VkIiB1c2U9InJlcXVpcmVkIiB0eXBlPSJ4czpib29sZWFuIi8+CisgIDwveHM6YXR0cmlidXRlR3JvdXA+CisgIDx4czpncm91cCBuYW1lPSJvcHRpb25hbC1jb250ZW50Ij4KKyAgICA8eHM6YW5ub3RhdGlvbj4KKyAgICAgIDx4czpkb2N1bWVudGF0aW9uPmdsb2JhbCAjIyMjIyMjIyMjIyMjPC94czpkb2N1bWVudGF0aW9uPgorICAgIDwveHM6YW5ub3RhdGlvbj4KKyAgICA8eHM6c2VxdWVuY2U+CisgICAgICA8eHM6Y2hvaWNlIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgICA8eHM6ZWxlbWVudCByZWY9InRyYW5zZm9ybSIvPgorICAgICAgICA8eHM6ZWxlbWVudCByZWY9InZNYXRlcmlhbCIvPgorICAgICAgPC94czpjaG9pY2U+CisgICAgPC94czpzZXF1ZW5jZT4KKyAgPC94czpncm91cD4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZGVzY3JpcHRpb24iIHR5cGU9InhzOnN0cmluZyIvPgorICA8eHM6YXR0cmlidXRlR3JvdXAgbmFtZT0ibGVuZ3RoLWF0dHJpYnV0ZSI+CisgICAgPHhzOmF0dHJpYnV0ZUdyb3VwIHJlZj0iZGltZW5zaW9uLWF0dHJpYnV0ZSIvPgorICAgIDx4czphdHRyaWJ1dGVHcm91cCByZWY9Ikxlbmd0aC1hdHRyaWJ1dGUiLz4KKyAgPC94czphdHRyaWJ1dGVHcm91cD4KKyAgPHhzOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImRpbWVuc2lvbi1hdHRyaWJ1dGUiPgorICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iZGltZW5zaW9uIiB1c2U9InJlcXVpcmVkIj4KKyAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6dG9rZW4iPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTCIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRiIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTSIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iVCIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRi9MIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJGL0xMIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJGL0xMTCIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRi9UIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJGL1RUIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJGL1RUVCIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iTC9UIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJML1RUIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJMTExMTCIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iRC9EIi8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgPC94czphdHRyaWJ1dGU+CisgIDwveHM6YXR0cmlidXRlR3JvdXA+CisgIDx4czphdHRyaWJ1dGVHcm91cCBuYW1lPSJMZW5ndGgtYXR0cmlidXRlIj4KKyAgICA8eHM6YXR0cmlidXRlIG5hbWU9Ikxlbmd0aCIgdXNlPSJyZXF1aXJlZCI+CisgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnRva2VuIj4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Im1ldGVyIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJtIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJmb290Ii8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJmIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJpbmNoIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJpbiIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iY2VudGltZXRlciIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iY20iLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImRlY2ltZXRlciIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iZG0iLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Im1pbGxpbWV0ZXIiLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Im1tIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJkZWdyZWUiLz4KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICA8L3hzOmF0dHJpYnV0ZT4KKyAgPC94czphdHRyaWJ1dGVHcm91cD4KKyAgPHhzOmF0dHJpYnV0ZUdyb3VwIG5hbWU9IlRpbWUtYXR0cmlidXRlIj4KKyAgICA8eHM6YXR0cmlidXRlIG5hbWU9IlRpbWUiIHVzZT0icmVxdWlyZWQiPgorICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp0b2tlbiI+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJzZWNvbmQiLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9InMiLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9InNlYyIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0ibWludXRlIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJtaW4iLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImhvdXIiLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImhyIi8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgPC94czphdHRyaWJ1dGU+CisgIDwveHM6YXR0cmlidXRlR3JvdXA+CisgIDx4czphdHRyaWJ1dGVHcm91cCBuYW1lPSJGb3JjZS1hdHRyaWJ1dGUiPgorICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iRm9yY2UiIHVzZT0icmVxdWlyZWQiPgorICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp0b2tlbiI+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJuZXd0b24iLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9Im4iLz4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9InBvdW5kIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJncmFpbiIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDwveHM6YXR0cmlidXRlPgorICA8L3hzOmF0dHJpYnV0ZUdyb3VwPgorICA8eHM6YXR0cmlidXRlR3JvdXAgbmFtZT0iTWFzcy1hdHRyaWJ1dGUiPgorICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iTWFzcyIgdXNlPSJyZXF1aXJlZCI+CisgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnRva2VuIj4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImtpbG9ncmFtIi8+CisgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJrZyIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iZ3JhbSIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDwveHM6YXR0cmlidXRlPgorICA8L3hzOmF0dHJpYnV0ZUdyb3VwPgorICA8eHM6YXR0cmlidXRlR3JvdXAgbmFtZT0iRGltZW5zaW9ubGVzcy1hdHRyaWJ1dGUiPgorICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iRGltZW5zaW9ubGVzcyIgdXNlPSJyZXF1aXJlZCI+CisgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnRva2VuIj4KKyAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9InJhZGlhbiIvPgorICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0icmFkIi8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgPC94czphdHRyaWJ1dGU+CisgIDwveHM6YXR0cmlidXRlR3JvdXA+CisgIDx4czpzaW1wbGVUeXBlIG5hbWU9InRocmVlLWRvdWJsZXMtbGlzdCI+CisgICAgPHhzOnJlc3RyaWN0aW9uPgorICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgIDx4czpsaXN0PgorICAgICAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICAgICAgPHhzOnVuaW9uIG1lbWJlclR5cGVzPSJ4czpkb3VibGUgeHM6ZG91YmxlIHhzOmRvdWJsZSIvPgorICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPC94czpsaXN0PgorICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgPHhzOmxlbmd0aCB2YWx1ZT0iMyIvPgorICAgIDwveHM6cmVzdHJpY3Rpb24+CisgIDwveHM6c2ltcGxlVHlwZT4KKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iaW50ZWdlci1saXN0Ij4KKyAgICA8eHM6cmVzdHJpY3Rpb24+CisgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPHhzOmxpc3Q+CisgICAgICAgICAgPHhzOnNpbXBsZVR5cGU+CisgICAgICAgICAgICA8eHM6dW5pb24gbWVtYmVyVHlwZXM9InhzOmludGVnZXIgeHM6aW50ZWdlciIvPgorICAgICAgICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICAgICAgPC94czpsaXN0PgorICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgICAgPHhzOm1pbkxlbmd0aCB2YWx1ZT0iMSIvPgorICAgIDwveHM6cmVzdHJpY3Rpb24+CisgIDwveHM6c2ltcGxlVHlwZT4KKyAgPHhzOmF0dHJpYnV0ZUdyb3VwIG5hbWU9Im5hbWUtYXR0cmlidXRlIj4KKyAgICA8eHM6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHVzZT0icmVxdWlyZWQiIHR5cGU9InhzOnRva2VuIi8+CisgIDwveHM6YXR0cmlidXRlR3JvdXA+CisgIDx4czphdHRyaWJ1dGVHcm91cCBuYW1lPSJkZXNjcmlwdGlvbi1hdHRyaWJ1dGUiPgorICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iZGVzY3JpcHRpb24iIHVzZT0icmVxdWlyZWQiLz4KKyAgPC94czphdHRyaWJ1dGVHcm91cD4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idk1hdGVyaWFsIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgIDx4czplbGVtZW50IG1pbk9jY3Vycz0iMCIgcmVmPSJkaWZmdXNlQ29sb3IiLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9ImVtaXNzaXZlQ29sb3IiLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9InNwZWN1bGFyQ29sb3IiLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9InNoaW5pbmVzcyIvPgorICAgICAgICA8eHM6ZWxlbWVudCBtaW5PY2N1cnM9IjAiIHJlZj0idHJhbnNwYXJlbmN5Ii8+CisgICAgICAgIDx4czplbGVtZW50IG1pbk9jY3Vycz0iMCIgcmVmPSJhbWJpZW50SW50ZW5zaXR5Ii8+CisgICAgICAgIDx4czplbGVtZW50IG1pbk9jY3Vycz0iMCIgcmVmPSJERUYiLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbWluT2NjdXJzPSIwIiByZWY9IlVTRSIvPgorICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+CisgIDx4czplbGVtZW50IG5hbWU9ImRpZmZ1c2VDb2xvciIgdHlwZT0ieHM6c3RyaW5nIi8+CisgIDx4czplbGVtZW50IG5hbWU9ImVtaXNzaXZlQ29sb3IiIHR5cGU9InhzOnN0cmluZyIvPgorICA8eHM6ZWxlbWVudCBuYW1lPSJzcGVjdWxhckNvbG9yIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgPHhzOmVsZW1lbnQgbmFtZT0ic2hpbmluZXNzIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idHJhbnNwYXJlbmN5IiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYW1iaWVudEludGVuc2l0eSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgIDx4czplbGVtZW50IG5hbWU9IkRFRiIgdHlwZT0ieHM6c3RyaW5nIi8+CisgIDx4czplbGVtZW50IG5hbWU9IlVTRSIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMwOTMzOF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMwOTMzOF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2NiZjk1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzA5MzM4XzAueG1sCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJ1cm46dGVzdDpmb28iCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKwl4c2k6c2NoZW1hTG9jYXRpb249InVybjp0ZXN0OmZvbyBidWczMDkzMzgueHNkIj4yMDAwLjAwPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMDkzMzhfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMDkzMzhfMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFhNTg2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMwOTMzOF8xLnhzZApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJeG1sbnM6Zj0idXJuOnRlc3Q6Zm9vIgorCXRhcmdldE5hbWVzcGFjZT0idXJuOnRlc3Q6Zm9vIj4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIiB0eXBlPSJmOmZvb1R5cGUiLz4KKworCTx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJmb29UeXBlIj4KKwkJPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6ZGVjaW1hbCI+CisJCQk8eHNkOm1pbkV4Y2x1c2l2ZSB2YWx1ZT0iMCIvPgorCQk8L3hzZDpyZXN0cmljdGlvbj4KKwk8L3hzZDpzaW1wbGVUeXBlPgorCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzEwMjY0XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzEwMjY0XzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZjA1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMTAyNjRfMC54bWwKQEAgLTAsMCArMSw0MSBAQAorPGMgeG1sbnM9Imh0dHA6Ly9teW5zIiA+CisgICA8YS8+IDwhLS0gMSAtLT4KKyAgIDxhLz4gPCEtLSAyIC0tPgorICAgPGEvPiA8IS0tIDMgLS0+CisgICA8YS8+IDwhLS0gNCAtLT4KKyAgIDxhLz4gPCEtLSA1IC0tPgorICAgPGEvPiA8IS0tIDYgLS0+CisgICA8YS8+IDwhLS0gNyAtLT4KKyAgIDxhLz4gPCEtLSA4IC0tPgorICAgPGEvPiA8IS0tIDkgLS0+CisgICA8YS8+IDwhLS0gMTAgLS0+CisgICA8YS8+IDwhLS0gMSAtLT4KKyAgIDxhLz4gPCEtLSAyIC0tPgorICAgPGEvPiA8IS0tIDMgLS0+CisgICA8YS8+IDwhLS0gNCAtLT4KKyAgIDxhLz4gPCEtLSA1IC0tPgorICAgPGEvPiA8IS0tIDYgLS0+CisgICA8YS8+IDwhLS0gNyAtLT4KKyAgIDxhLz4gPCEtLSA4IC0tPgorICAgPGEvPiA8IS0tIDkgLS0+CisgICA8YS8+IDwhLS0gMjAgLS0+CisgICA8YS8+IDwhLS0gMSAtLT4KKyAgIDxhLz4gPCEtLSAyIC0tPgorICAgPGEvPiA8IS0tIDMgLS0+CisgICA8YS8+IDwhLS0gNCAtLT4KKyAgIDxhLz4gPCEtLSA1IC0tPgorICAgPGEvPiA8IS0tIDYgLS0+CisgICA8YS8+IDwhLS0gNyAtLT4KKyAgIDxhLz4gPCEtLSA4IC0tPgorICAgPGEvPiA8IS0tIDkgLS0+CisgICA8YS8+IDwhLS0gMzAgLS0+CisgICA8YS8+IDwhLS0gMSAtLT4KKyAgIDxhLz4gPCEtLSAyIC0tPgorICAgPGEvPiA8IS0tIDMgLS0+CisgICA8YS8+IDwhLS0gNCAtLT4KKyAgIDxhLz4gPCEtLSA1IC0tPgorICAgPGEvPiA8IS0tIDYgLS0+CisgICA8YS8+IDwhLS0gNyAtLT4KKyAgIDxhLz4gPCEtLSA4IC0tPgorPC9jPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMTAyNjRfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMTAyNjRfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmYyYjMzMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMxMDI2NF8wLnhzZApAQCAtMCwwICsxLDE4IEBACis8eHM6c2NoZW1hIHhtbG5zOnRucz0iaHR0cDovL215bnMiCisgICAgICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL215bnMiCisgICAgICAgIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKz4KKworICA8eHM6ZWxlbWVudCBuYW1lPSJhIiAvPgorCisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJjIiA+CisgICAgICAgIDx4czpzZXF1ZW5jZSBtaW5PY2N1cnM9IjIiIG1heE9jY3Vycz0iNCI+CisgICAgICAgICAgICAgPHhzOnNlcXVlbmNlIG1pbk9jY3Vycz0iMTkiIG1heE9jY3Vycz0iMjAiPgorICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJ0bnM6YSIgLz4KKyAgICAgICAgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgICA8L3hzOnNlcXVlbmNlPgorICA8L3hzOmNvbXBsZXhUeXBlPgorCisgIDx4czplbGVtZW50IG5hbWU9ImMiIHR5cGU9InRuczpjIiAvPgorCis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMxMjk1N18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMxMjk1N18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjI0NDRmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzEyOTU3XzAueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4NCis8ZmFtaWx5IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiDQorCXhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJidWczMTI5NTdfMS54c2QiDQorCW5hbWU9InRlc3QiPg0KKyAgICA8c2libGluZ3M+DQorICAgIAk8c2libGluZyBuYW1lPSJnaWxsIi8+DQorICAgIDwvc2libGluZ3M+DQorICAgIDxzaXN0ZXJzPg0KKyAgICAJPHNpc3RlciBuYW1lPSJnaWxsIi8+DQorICAgIAk8c2lzdGVyIG5hbWU9ImFubmllIi8+DQorICAgIDwvc2lzdGVycz4NCis8L2ZhbWlseT4gDQorDQorDQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzEyOTU3XzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzEyOTU3XzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNzk3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMTI5NTdfMS54c2QKQEAgLTAsMCArMSwzOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCisNCisgIDx4czplbGVtZW50IG5hbWU9ImZhbWlseSIgdHlwZT0iZmFtaWx5X3R5cGUiPg0KKyAgICAgIDx4czprZXkgbmFtZT0ic2libGluZ19rZXkiPg0KKyAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJzaWJsaW5ncy9zaWJsaW5nIi8+DQorICAgICAgICA8eHM6ZmllbGQgeHBhdGg9IkBuYW1lIi8+DQorICAgICAgPC94czprZXk+DQorICAgICAgPHhzOmtleXJlZiBuYW1lPSJzaWJsaW5nX2tleV9yZWYiIHJlZmVyPSJzaWJsaW5nX2tleSI+DQorICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9InNpc3RlcnMvc2lzdGVyIi8+DQorICAgICAgICA8eHM6ZmllbGQgeHBhdGg9IkBuYW1lIi8+DQorICAgIDwveHM6a2V5cmVmPg0KKyAgPC94czplbGVtZW50Pg0KKyAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iZmFtaWx5X3R5cGUiPg0KKyAgICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICAgIDx4czplbGVtZW50IG5hbWU9InNpYmxpbmdzIiB0eXBlPSJzaWJsaW5nc190eXBlIiAvPg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ic2lzdGVycyIgdHlwZT0ic2lzdGVyc190eXBlIiAgLz4NCisgICAgICA8L3hzOnNlcXVlbmNlPg0KKyAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+DQorICAgIDwveHM6Y29tcGxleFR5cGU+DQorICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJzaWJsaW5nc190eXBlIj4NCisgICAgICA8eHM6c2VxdWVuY2U+DQorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzaWJsaW5nIiB0eXBlPSJzaWJsaW5nX3R5cGUiIG1pbk9jY3Vycz0iMCIgIA0KK21heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KKyAgICAgIDwveHM6c2VxdWVuY2U+DQorICAgIDwveHM6Y29tcGxleFR5cGU+ICAgIA0KKyAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0ic2lzdGVyc190eXBlIj4NCisgICAgICA8eHM6c2VxdWVuY2U+DQorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzaXN0ZXIiIHR5cGU9InNpc3Rlcl90eXBlIiBtaW5PY2N1cnM9IjAiICANCittYXhPY2N1cnM9InVuYm91bmRlZCIgLz4NCisgICAgICA8L3hzOnNlcXVlbmNlPg0KKyAgICA8L3hzOmNvbXBsZXhUeXBlPiAgICAgICAgDQorCTx4czpjb21wbGV4VHlwZSBuYW1lPSJzaWJsaW5nX3R5cGUiPg0KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4NCisJPC94czpjb21wbGV4VHlwZT4NCisJPHhzOmNvbXBsZXhUeXBlIG5hbWU9InNpc3Rlcl90eXBlIj4NCisJCTx4czphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+DQorCTwveHM6Y29tcGxleFR5cGU+ICAgIA0KKzwveHM6c2NoZW1hPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMxMzk4Ml8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMxMzk4Ml8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGM4MWVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzEzOTgyXzAueG1sCkBAIC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzx0ZXN0RGVjaW1hbEZhY2V0IHhtbG5zPSJodHRwOi8vd3d3LmZvby5jb20iCit4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuZm9vLmNvbSBidWczMTM5ODJfMC54c2QiPjAuOTk8L3Rlc3REZWNpbWFsRmFjZXQ+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMTM5ODJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMTM5ODJfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjlkMDYxMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMxMzk4Ml8wLnhzZApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHhzZDpzY2hlbWEgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vd3d3LmZvby5jb20iIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgoreG1sbnM9Imh0dHA6Ly93d3cuZm9vLmNvbSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ0ZXN0RGVjaW1hbEZhY2V0Ij4KKyAgICAgICAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpkZWNpbWFsIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzZDptaW5JbmNsdXNpdmUgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgIDwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMjE0NzVfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMjE0NzVfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE5MDIzMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMTQ3NV8wLnhtbApAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJpc28tODg1OS0xIj8+Cis8YW5pbWF0aW9uIHhtbG5zPSJodHRwOi8vd3d3LmNvbGxhZGEub3JnLzIwMDUvMTEvQ09MTEFEQVNjaGVtYSIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jb2xsYWRhLm9yZy8yMDA1LzExL0NPTExBREFTY2hlbWEgYnVnMzIxNDc1LnhzZCI+CisgICAgPGFzc2V0Lz4KKyAgICA8c291cmNlLz4KKyAgICA8c2FtcGxlci8+CisgICAgPGNoYW5uZWwvPgorPC9hbmltYXRpb24+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMTQ3NV8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMTQ3NV8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzE0YTBkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzIxNDc1XzEueHNkCkBAIC0wLDAgKzEsNDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cuY29sbGFkYS5vcmcvMjAwNS8xMS9DT0xMQURBU2NoZW1hIgorICAgIHhtbG5zPSJodHRwOi8vd3d3LmNvbGxhZGEub3JnLzIwMDUvMTEvQ09MTEFEQVNjaGVtYSIKKyAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKyAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIgdmVyc2lvbj0iMS40LjAiIHhtbDpsYW5nPSJFTiI+CisgICAgPHhzOmVsZW1lbnQgbmFtZT0iYW5pbWF0aW9uIj4KKyAgICAgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgIDx4czplbGVtZW50IHJlZj0iYXNzZXQiIG1pbk9jY3Vycz0iMCIvPgorICAgICAgICAgICAgICAgIDx4czpjaG9pY2U+CisgICAgICAgICAgICAgICAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IHJlZj0ic291cmNlIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmNob2ljZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IHJlZj0ic2FtcGxlciIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJjaGFubmVsIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImFuaW1hdGlvbiIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJhbmltYXRpb24iIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzOmNob2ljZT4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJzYW1wbGVyIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJjaGFubmVsIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJhbmltYXRpb24iIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJhbmltYXRpb24iIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICAgICAgICAgICAgPC94czpjaG9pY2U+CisgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJleHRyYSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InhzOklEIi8+CisgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzOk5DTmFtZSIvPgorICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgIDwveHM6ZWxlbWVudD4KKworICAgIDx4czplbGVtZW50IG5hbWU9ImV4dHJhIi8+CisgICAgPHhzOmVsZW1lbnQgbmFtZT0iYXNzZXQiLz4KKyAgICA8eHM6ZWxlbWVudCBuYW1lPSJjaGFubmVsIi8+CisgICAgPHhzOmVsZW1lbnQgbmFtZT0ic2FtcGxlciIvPgorICAgIDx4czplbGVtZW50IG5hbWU9InNvdXJjZSIvPgorICAgIDx4czplbGVtZW50IG5hbWU9InRlY2huaXF1ZSIvPgorPC94czpzY2hlbWE+CisKKworCisKKyAgICAgICAgICAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMjI0MTFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWczMjI0MTFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4MzY0OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMjQxMV8wLnhtbApAQCAtMCwwICsxLDkzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiBzdGFuZGFsb25lPSJubyI/PgorPEVMRU1FTlRTPgorICA8RUxFTUVOVD4KKyAgICA8aXRlbXM+CisgICAgICA8aXRlbT4xPC9pdGVtPgorICAgICAgPGl0ZW0+MjwvaXRlbT4KKyAgICAgIDxpdGVtPjM8L2l0ZW0+CisgICAgICA8aXRlbT40PC9pdGVtPgorICAgICAgPGl0ZW0+NTwvaXRlbT4KKyAgICAgIDwhLS0gU29tZSBkdXBscy4gLS0+CisgICAgICA8aXRlbT5kdXBsMTwvaXRlbT4KKyAgICAgIDxpdGVtPmR1cGwyPC9pdGVtPgorICAgICAgPGl0ZW0+ZHVwbDM8L2l0ZW0+CisgICAgICA8aXRlbT5kdXBsNDwvaXRlbT4KKyAgICAgIDxpdGVtPmR1cGw1PC9pdGVtPgorICAgICAgPGl0ZW0+ZHVwbDY8L2l0ZW0+CisgICAgICA8aXRlbT5kdXBsNzwvaXRlbT4KKyAgICAgIDxpdGVtPmR1cGw4PC9pdGVtPgorICAgICAgPGl0ZW0+ZHVwbDk8L2l0ZW0+CisgICAgICA8aXRlbT5kdXBsMTA8L2l0ZW0+CisgICAgICA8aXRlbT5kdXBsMTE8L2l0ZW0+CisKKyAgICAgIDxpdGVtPjY8L2l0ZW0+CisgICAgICA8aXRlbT43PC9pdGVtPgorICAgICAgPGl0ZW0+ODwvaXRlbT4KKyAgICAgIDxpdGVtPjk8L2l0ZW0+CisgICAgICA8aXRlbT4xMDwvaXRlbT4KKyAgICAgIDxpdGVtPjExPC9pdGVtPgorICAgICAgPGl0ZW1zPgorICAgICAgICA8aXRlbT4xMjwvaXRlbT4KKyAgICAgICAgPGl0ZW0+MTM8L2l0ZW0+CisgICAgICAgIDxpdGVtPjE0PC9pdGVtPgorICAgICAgICA8aXRlbT4xNTwvaXRlbT4KKyAgICAgICAgPCEtLSBTb21lIGR1cGxzLiAtLT4KKyAgICAgICAgPGl0ZW0+ZHVwbDE8L2l0ZW0+CisgICAgICAgIDxpdGVtPmR1cGwyPC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsMzwvaXRlbT4KKyAgICAgICAgPGl0ZW0+ZHVwbDQ8L2l0ZW0+CisgICAgICAgIDxpdGVtPmR1cGw1PC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsNjwvaXRlbT4KKyAgICAgICAgPGl0ZW0+ZHVwbDc8L2l0ZW0+CisgICAgICAgIDxpdGVtPmR1cGw4PC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsOTwvaXRlbT4KKyAgICAgICAgPGl0ZW0+ZHVwbDEwPC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsMTE8L2l0ZW0+CisKKyAgICAgICAgPGl0ZW0+MTY8L2l0ZW0+CisgICAgICAgIDxpdGVtPjE3PC9pdGVtPgorICAgICAgICA8aXRlbT4xODwvaXRlbT4KKyAgICAgICAgPGl0ZW0+MTk8L2l0ZW0+CisgICAgICAgIDxpdGVtPjIwPC9pdGVtPgorICAgICAgICA8aXRlbT4yMTwvaXRlbT4KKyAgICAgIDwvaXRlbXM+CisgICAgICA8aXRlbXM+CisgICAgICAgIDxpdGVtPjIyPC9pdGVtPgorICAgICAgICA8aXRlbT4yMzwvaXRlbT4KKyAgICAgICAgPGl0ZW0+MjQ8L2l0ZW0+CisgICAgICAgIDxpdGVtPjI1PC9pdGVtPgorICAgICAgICA8aXRlbT4yNjwvaXRlbT4KKyAgICAgICAgPGl0ZW0+Mjc8L2l0ZW0+CisgICAgICAgIDxpdGVtPjI4PC9pdGVtPgorICAgICAgICA8aXRlbT4yOTwvaXRlbT4KKyAgICAgICAgPGl0ZW0+MzA8L2l0ZW0+CisgICAgICAgIDxpdGVtPjMxPC9pdGVtPgorICAgICAgICA8aXRlbT4zMjwvaXRlbT4KKyAgICAgICAgPGl0ZW0+MzM8L2l0ZW0+CisgICAgICAgIDxpdGVtPjM0PC9pdGVtPgorICAgICAgICA8aXRlbT4zNTwvaXRlbT4KKyAgICAgICAgPGl0ZW0+MzY8L2l0ZW0+CisgICAgICAgIDxpdGVtPjM3PC9pdGVtPgorICAgICAgICA8aXRlbT4zODwvaXRlbT4KKyAgICAgICAgPGl0ZW0+Mzk8L2l0ZW0+CisgICAgICAgIDxpdGVtPjQwPC9pdGVtPgorICAgICAgICA8aXRlbT40MTwvaXRlbT4KKyAgICAgICAgPCEtLSBTb21lIGR1cGxzLiAtLT4KKyAgICAgICAgPGl0ZW0+ZHVwbDE8L2l0ZW0+CisgICAgICAgIDxpdGVtPmR1cGwyPC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsMzwvaXRlbT4KKyAgICAgICAgPGl0ZW0+ZHVwbDQ8L2l0ZW0+CisgICAgICAgIDxpdGVtPmR1cGw1PC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsNjwvaXRlbT4KKyAgICAgICAgPGl0ZW0+ZHVwbDc8L2l0ZW0+CisgICAgICAgIDxpdGVtPmR1cGw4PC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsOTwvaXRlbT4KKyAgICAgICAgPGl0ZW0+ZHVwbDEwPC9pdGVtPgorICAgICAgICA8aXRlbT5kdXBsMTE8L2l0ZW0+CisgICAgICA8L2l0ZW1zPgorICAgIDwvaXRlbXM+CisgICAgPCEtLSBLZXlyZWZzLiAtLT4KKyAgICA8cmVmPjQxPC9yZWY+CisgIDwvRUxFTUVOVD4KKzwvRUxFTUVOVFM+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMjQxMV8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMjQxMV8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODNkZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzIyNDExXzEueHNkCkBAIC0wLDAgKzEsMzUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorCisgIDx4c2Q6ZWxlbWVudCBuYW1lPSJpdGVtcyI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJpdGVtIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgdHlwZT0ieHNkOnN0cmluZyIvPgorICAgICAgICA8eHNkOmVsZW1lbnQgcmVmPSJpdGVtcyIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9IjIiLz4KKyAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgIDx4c2Q6dW5pcXVlIG5hbWU9Ikl0ZW1VbmlxdWUiPgorICAgICAgPHhzZDpzZWxlY3RvciB4cGF0aD0iaXRlbSIvPgorICAgICAgPHhzZDpmaWVsZCB4cGF0aD0iLiIvPgorICAgIDwveHNkOnVuaXF1ZT4KKyAgPC94c2Q6ZWxlbWVudD4KKworICA8eHNkOmVsZW1lbnQgbmFtZT0iRUxFTUVOVFMiPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iRUxFTUVOVCI+CisgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCByZWY9Iml0ZW1zIi8+CisgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJyZWYiIHR5cGU9InhzZDpzdHJpbmciIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICA8eHNkOmtleXJlZiBuYW1lPSJJdGVtUmVmIiByZWZlcj0iSXRlbVVuaXF1ZSI+CisgICAgICAgICAgICA8eHNkOnNlbGVjdG9yIHhwYXRoPSJyZWYiLz4KKyAgICAgICAgICAgIDx4c2Q6ZmllbGQgeHBhdGg9Ii4iLz4KKyAgICAgICAgICA8L3hzZDprZXlyZWY+CisgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMzUxMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMzUxMF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTc2NDdkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzIzNTEwXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PgorPGZvby8+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMzUxMF8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzMyMzUxMF8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjA0N2NlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnMzIzNTEwXzEueHNkCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKworICAgIDx4czplbGVtZW50IG5hbWU9ImZvbyI+CisgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJiYXIiIG1pbk9jY3Vycz0iMSIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgPC94czplbGVtZW50PgorCis8L3hzOnNjaGVtYT4gICAgICAgICAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzQ1NTk1M18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzQ1NTk1M18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDg5MDdjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvYnVnNDU1OTUzXzAueG1sCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cHJlOk1haW5FbGVtZW50IHhtbG5zOnByZT0iaHR0cDovL3d3dy50ZW1wdXJpLm9yZy9NYWluU2NoZW1hIiB4bWxuczpucz0iaHR0cDovL3d3dy50ZW1wdXJpLm9yZy9JbXBvcnRlZFNjaGVtYSI+DQorIDxwcmU6TWFpbkEgTWFpbklEPSIxIi8+DQorIDxuczpBbm90aGVyRWxlbWVudD4NCisgICA8bnM6QiBCSUQ9IjMiPg0KKyAgICAgPG5zOk15Qj5FTVBUWTwvbnM6TXlCPg0KKyAgIDwvbnM6Qj4NCisgPC9uczpBbm90aGVyRWxlbWVudD4NCis8L3ByZTpNYWluRWxlbWVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWc0NTU5NTNfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9idWc0NTU5NTNfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYzNTU3MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2J1ZzQ1NTk1M18wLnhzZApAQCAtMCwwICsxLDI5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4gDQorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiDQorICAgICAgICAgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cudGVtcHVyaS5vcmcvTWFpblNjaGVtYSINCisgICAgICAgICAgIHhtbG5zOnRucz0iaHR0cDovL3d3dy50ZW1wdXJpLm9yZy9NYWluU2NoZW1hIg0KKyAgICAgICAgICAgeG1sbnM6bnM9Imh0dHA6Ly93d3cudGVtcHVyaS5vcmcvSW1wb3J0ZWRTY2hlbWEiDQorICAgICAgICAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIgPg0KKyAgICAgICAgICAgDQorICA8eHM6aW1wb3J0IG5hbWVzcGFjZT0iaHR0cDovL3d3dy50ZW1wdXJpLm9yZy9JbXBvcnRlZFNjaGVtYSIgc2NoZW1hTG9jYXRpb249Ii4vaW1wb3J0LTQ1NTk1My54c2QiIC8+DQorICANCisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJNeU1haW5UeXBlIj4NCisgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1haW5BIj4NCisgICAgICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJNYWluSUQiIHR5cGU9InhzOmludCIvPg0KKyAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCisgICAgICA8L3hzOmVsZW1lbnQ+DQorICAgICAgPHhzOmVsZW1lbnQgcmVmPSJuczpBbm90aGVyRWxlbWVudCIgLz4NCisgICAgPC94czpzZXF1ZW5jZT4NCisgIDwveHM6Y29tcGxleFR5cGU+DQorDQorICA8eHM6ZWxlbWVudCBuYW1lPSJNYWluRWxlbWVudCIgdHlwZT0idG5zOk15TWFpblR5cGUiPg0KKyAgICA8eHM6a2V5IG5hbWU9Ik1haW5LZXkiID4NCisgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9InRuczpNYWluQSIgLz4NCisgICAgICA8eHM6ZmllbGQgeHBhdGg9IkBNYWluSUQiIC8+DQorICAgIDwveHM6a2V5Pg0KKyAgPC94czplbGVtZW50Pg0KKw0KKw0KKzwveHM6c2NoZW1hPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2NoYW5nZWxvZzA5M18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2NoYW5nZWxvZzA5M18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjQ5NjEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hhbmdlbG9nMDkzXzAueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGNoYW5nZWxvZworCXhtbG5zPSJodHRwOi8vd3d3LmJsYWNrcGVybC5jb20vWE1ML0NoYW5nZUxvZyIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuYmxhY2twZXJsLmNvbS9YTUwvQ2hhbmdlTG9nIGNoYW5nZWxvZzA5My54c2QiPgorCTxkZXNjcmlwdGlvbiBsYW5nPSJQTCIvPgorCTxkZXNjcmlwdGlvbiBsYW5nPSJQTCIvPgorCTxyZWxlYXNlIHZlcnNpb249IjEiIGRhdGU9IjIwMDUtMDQtMDhUMjE6MTI6MDAiPgorCQk8aXRlbT4KKwkJCTxmaWxlIHBhdGg9ImFiYyIvPgorCQkJPGRlc2NyaXB0aW9uIGxhbmc9IkZSIi8+CisJCTwvaXRlbT4KKwk8L3JlbGVhc2U+Cis8L2NoYW5nZWxvZz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2NoYW5nZWxvZzA5M18xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2NoYW5nZWxvZzA5M18xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjJiY2M2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hhbmdlbG9nMDkzXzEueHNkCkBAIC0wLDAgKzEsMjUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgeG1sbnM6dG5zPSJodHRwOi8vd3d3LmJsYWNrcGVybC5jb20vWE1ML0NoYW5nZUxvZyIKKyAgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cuYmxhY2twZXJsLmNvbS9YTUwvQ2hhbmdlTG9nIgorICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisgICAgdmVyc2lvbj0iMC45MyIgaWQ9ImNoYW5nZWxvZzAuOTMiPgorICA8IS0tCisgICAgICBSZWZlciB0byB0aGlzIHNjaGVtYSB1c2luZyB0aGUgZm9sbG93aW5nIG5hbWVzcGFjZToKKyAgICAgIGh0dHA6Ly93d3cuYmxhY2twZXJsLmNvbS9YTUwvQ2hhbmdlTG9nCisgIC0tPgorICA8eHNkOmFubm90YXRpb24+CisgICAgPHhzZDpkb2N1bWVudGF0aW9uPgorICAgICAgQSBkZXNjcmlwdGlvbiBvZiBhbiBYTUwgYXBwbGljYXRpb24gd2hpY2ggaXRlbWl6ZXMgY2hhbmdlcyBvdmVyIHRoZQorICAgICAgbGlmZS1zcGFuIG9mIGEgc29mdHdhcmUgcHJvamVjdC4gQ2hhbmdlcyBhcmUgdHJhY2tlZCBieSByZWxlYXNlcywgd2l0aCBhCisgICAgICBncmFudWxhcml0eSBvZiBpbmRpdmlkdWFsIGl0ZW1zIG1hZGUgdXAgb2YgZmlsZXMgdGhhdCB3ZXJlIGFmZmVjdGVkLgorICAgIDwveHNkOmRvY3VtZW50YXRpb24+CisgICAgPHhzZDphcHBpbmZvIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CisgICAgICA8ZGM6Y3JlYXRvcj5SYW5keSBKLiBSYXkgKHJqcmF5QGJsYWNrcGVybC5jb20pPC9kYzpjcmVhdG9yPgorICAgICAgPGRjOmRhdGU+MjAwNC0xMS0yMjwvZGM6ZGF0ZT4KKyAgICAgIDxkYzpzdWJqZWN0PmNoYW5nZWxvZyx4bWwsc2NoZW1hPC9kYzpzdWJqZWN0PgorICAgICAgPGRjOmRlc2NyaXB0aW9uPgorICAgICAgICBBbiBYTUwgU2NoZW1hIGRlY2xhcmF0aW9uIGRlc2NyaWJpbmcgYW4gWE1MIGV4cHJlc3Npb24gb2Ygc29mdHdhcmUKKyAgICAgICAgcHJvamVjdCBjaGFuZ2UtbG9ncy4KKyAgICAgIDwvZGM6ZGVzY3JpcHRpb24+CisgICAgPC94c2Q6YXBwaW5mbz4KKyAgICA8eHNkOmFwcGluZm8+CisgICAgICA8cmRmOlJERiB4bWxuczpjYz0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvIgorICAgICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgorICAgICAgICAgICAgICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KKyAgICAgICAgPGNjOldvcmsgcmRmOmFib3V0PSIiPgorICAgICAgICAgIDxkYzp0aXRsZT5YTUwgU2NoZW1hIGZvciBDaGFuZ2Vsb2dzPC9kYzp0aXRsZT4KKyAgICAgICAgICA8ZGM6ZGVzY3JpcHRpb24+CisgICAgICAgICAgICBBbiBYTUwgU2NoZW1hIGRlY2xhcmF0aW9uIGRlc2NyaWJpbmcgYW4gWE1MIGV4cHJlc3Npb24gb2Ygc29mdHdhcmUKKyAgICAgICAgICAgIHByb2plY3QgY2hhbmdlLWxvZ3MuCisgICAgICAgICAgPC9kYzpkZXNjcmlwdGlvbj4KKyAgICAgICAgICA8ZGM6Y3JlYXRvcj4KKyAgICAgICAgICAgIDxjYzpBZ2VudD4KKyAgICAgICAgICAgICAgPGRjOnRpdGxlPlJhbmR5IEouIFJheTwvZGM6dGl0bGU+CisgICAgICAgICAgICA8L2NjOkFnZW50PgorICAgICAgICAgIDwvZGM6Y3JlYXRvcj4KKyAgICAgICAgICA8ZGM6cmlnaHRzPgorICAgICAgICAgICAgPGNjOkFnZW50PgorICAgICAgICAgICAgICA8ZGM6dGl0bGU+UmFuZHkgSi4gUmF5PC9kYzp0aXRsZT4KKyAgICAgICAgICAgIDwvY2M6QWdlbnQ+CisgICAgICAgICAgPC9kYzpyaWdodHM+CisgICAgICAgICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvVGV4dCIgLz4KKyAgICAgICAgICA8Y2M6bGljZW5zZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzIuMC8iIC8+CisgICAgICAgIDwvY2M6V29yaz4KKyAgICAgICAgPGNjOkxpY2Vuc2UgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvIj4KKyAgICAgICAgICA8Y2M6cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1JlcHJvZHVjdGlvbiIgLz4KKyAgICAgICAgICA8Y2M6cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rpc3RyaWJ1dGlvbiIgLz4KKyAgICAgICAgICA8Y2M6cmVxdWlyZXMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9Ob3RpY2UiIC8+CisgICAgICAgICAgPGNjOnJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvQXR0cmlidXRpb24iIC8+CisgICAgICAgICAgPGNjOnBlcm1pdHMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EZXJpdmF0aXZlV29ya3MiIC8+CisgICAgICAgICAgPGNjOnJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU2hhcmVBbGlrZSIgLz4KKyAgICAgICAgPC9jYzpMaWNlbnNlPgorICAgICAgPC9yZGY6UkRGPgorICAgIDwveHNkOmFwcGluZm8+CisgIDwveHNkOmFubm90YXRpb24+CisKKyAgPHhzZDpjb21wbGV4VHlwZSBpZD0iaW5mb3JtYXRpb25UeXBlIiBuYW1lPSJpbmZvcm1hdGlvblR5cGUiCisgICAgICAgICAgICAgICAgICAgbWl4ZWQ9InRydWUiPgorICAgIDx4c2Q6YW5ub3RhdGlvbj4KKyAgICAgIDx4c2Q6ZG9jdW1lbnRhdGlvbj4KKyAgICAgICAgQW4gb3Blbi1lbmRlZCBjb250YWluZXIgdHlwZSBmb3IgaW5jbHVkaW5nIHZlcnNpb24tY29udHJvbCBpbmZvcm1hdGlvbgorICAgICAgICBhdCB2YXJpb3VzIGxldmVscyB3aXRoaW4gdGhlIGNoYW5nZWxvZyBzdHJ1Y3R1cmUuIFRoaXMgaXMgdGhlIG9ubHkKKyAgICAgICAgdHlwZSB3aGljaCBleHBsaWNpdGx5IHBlcm1pdHMgY29udGVudCBmcm9tIGZvcmVpZ24gbmFtZXNwYWNlcy4KKyAgICAgIDwveHNkOmRvY3VtZW50YXRpb24+CisgICAgPC94c2Q6YW5ub3RhdGlvbj4KKyAgICA8eHNkOnNlcXVlbmNlIG1heE9jY3Vycz0idW5ib3VuZGVkIiBtaW5PY2N1cnM9IjAiPgorICAgICAgPHhzZDphbnkgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIC8+CisgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ic291cmNlIiB0eXBlPSJ4c2Q6YW55VVJJIiAvPgorICAgIDx4c2Q6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIC8+CisgIDwveHNkOmNvbXBsZXhUeXBlPgorCisgIDx4c2Q6Y29tcGxleFR5cGUgaWQ9ImRlc2NyaXB0aW9uVHlwZSIgbmFtZT0iZGVzY3JpcHRpb25UeXBlIj4KKyAgICA8eHNkOmFubm90YXRpb24+CisgICAgICA8eHNkOmRvY3VtZW50YXRpb24+CisgICAgICAgIEEgZGVzY3JpcHRpb24gYmxvY2sgaXMgdXNlZCB0byBkb2N1bWVudCBldmVyeXRoaW5nIGZyb20gc3BlY2lmaWMgY2hhbmdlCisgICAgICAgIGl0ZW1zIHRvIHRoZSByZWxlYXNlIGFzIGEgd2hvbGUuCisgICAgICA8L3hzZDpkb2N1bWVudGF0aW9uPgorICAgIDwveHNkOmFubm90YXRpb24+CisgICAgPHhzZDpzaW1wbGVDb250ZW50PgorICAgICAgPHhzZDpleHRlbnNpb24gYmFzZT0ieHNkOnN0cmluZyI+CisgICAgICAgIDx4c2Q6YXR0cmlidXRlIGRlZmF1bHQ9ImVuLVVTIiBuYW1lPSJsYW5nIiB0eXBlPSJ4c2Q6bGFuZ3VhZ2UiIC8+CisgICAgICA8L3hzZDpleHRlbnNpb24+CisgICAgPC94c2Q6c2ltcGxlQ29udGVudD4KKyAgPC94c2Q6Y29tcGxleFR5cGU+CisKKyAgPHhzZDpzaW1wbGVUeXBlIGlkPSJ2ZXJzaW9uU3RyaW5nIiBuYW1lPSJ2ZXJzaW9uU3RyaW5nIj4KKyAgICA8eHNkOmFubm90YXRpb24+CisgICAgICA8eHNkOmRvY3VtZW50YXRpb24+CisgICAgICAgIFRoZSB2ZXJzaW9uU3RyaW5nIHR5cGUgaXMgYXBwbGllZCB0byBhdHRyaWJ1dGVzIHRoYXQgZGVzY3JpYmUgc2ltcGxlCisgICAgICAgIHJldmlzaW9uLW51bWJlciBzdHJpbmdzLiBJdCBvbmx5IHN1cHBvcnRzIENWUyAoUkNTKSBzdHlsZWQgdmVyc2lvbgorICAgICAgICBudW1iZXJzLgorICAgICAgPC94c2Q6ZG9jdW1lbnRhdGlvbj4KKyAgICA8L3hzZDphbm5vdGF0aW9uPgorICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnN0cmluZyI+CisgICAgICA8eHNkOnBhdHRlcm4gdmFsdWU9IlxkKyhcLlxkKykqIiAvPgorICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICA8L3hzZDpzaW1wbGVUeXBlPgorCisgIDx4c2Q6Y29tcGxleFR5cGUgaWQ9ImZpbGVUeXBlIiBuYW1lPSJmaWxlVHlwZSI+CisgICAgPHhzZDphbm5vdGF0aW9uPgorICAgICAgPHhzZDpkb2N1bWVudGF0aW9uPgorICAgICAgICBUaGUgZmlsZVR5cGUgZGVmaW5pdGlvbiBpcyB1c2VkIGZvciB0aGUgZmlsZSBlbGVtZW50LCBhIHBhcnQgb2YgdGhlCisgICAgICAgIGl0ZW1UeXBlIGRlY2xhcmF0aW9uLiBJdCBpcyBkZWZpbmVkIHNlcGFyYXRlbHkgc28gdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgcmVmZXJyZWQgdG8gZnJvbSBtdWx0aXBsZSBwbGFjZXMuCisgICAgICA8L3hzZDpkb2N1bWVudGF0aW9uPgorICAgIDwveHNkOmFubm90YXRpb24+CisgICAgPHhzZDpzZXF1ZW5jZSBtYXhPY2N1cnM9IjEiIG1pbk9jY3Vycz0iMCI+CisgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZGVzY3JpcHRpb24iIHR5cGU9InRuczpkZXNjcmlwdGlvblR5cGUiCisgICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4KKyAgICAgIDx4c2Q6ZWxlbWVudCBtYXhPY2N1cnM9IjEiIG1pbk9jY3Vycz0iMCIgbmFtZT0idmMtaW5mb3JtYXRpb24iCisgICAgICAgICAgICAgICAgICAgdHlwZT0idG5zOmluZm9ybWF0aW9uVHlwZSIgbmlsbGFibGU9InRydWUiIC8+CisgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0icGF0aCIgdHlwZT0ieHNkOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgLz4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJyZXZpc2lvbiIgdHlwZT0idG5zOnZlcnNpb25TdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJhdXRob3IiIHR5cGU9InhzZDpOTVRPS0VOIiB1c2U9Im9wdGlvbmFsIiAvPgorICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImFjdGlvbiIgdXNlPSJvcHRpb25hbCI+CisgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOk5NVE9LRU4iPgorICAgICAgICAgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9IkFERCIgLz4KKyAgICAgICAgICA8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJERUxFVEUiIC8+CisgICAgICAgICAgPHhzZDplbnVtZXJhdGlvbiB2YWx1ZT0iUkVTVE9SRSIgLz4KKyAgICAgICAgICA8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJNT1ZFIiAvPgorICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgPC94c2Q6YXR0cmlidXRlPgorICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im5vdGUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0ib3B0aW9uYWwiIC8+CisgIDwveHNkOmNvbXBsZXhUeXBlPgorCisgIDx4c2Q6ZWxlbWVudCBpZD0iZmlsZSIgbmFtZT0iZmlsZSIgbmlsbGFibGU9InRydWUiIHR5cGU9InRuczpmaWxlVHlwZSI+CisgICAgPHhzZDphbm5vdGF0aW9uPgorICAgICAgPHhzZDpkb2N1bWVudGF0aW9uPgorICAgICAgICBBIGZpbGUgZWxlbWVudCBjb250YWlucyBhIHNpbmdsZSBibG9jayByZXByZXNlbnRpbmcgYSBmaWxlVHlwZS4KKyAgICAgIDwveHNkOmRvY3VtZW50YXRpb24+CisgICAgPC94c2Q6YW5ub3RhdGlvbj4KKyAgICA8eHNkOnVuaXF1ZSBuYW1lPSJmaWxlRGVzY3JpcHRpb25MYW5nQ29uc3RyYWludCI+CisgICAgICA8eHNkOnNlbGVjdG9yIHhwYXRoPSJ0bnM6ZGVzY3JpcHRpb24iIC8+CisgICAgICA8eHNkOmZpZWxkIHhwYXRoPSJAbGFuZyIgLz4KKyAgICA8L3hzZDp1bmlxdWU+CisgIDwveHNkOmVsZW1lbnQ+CisKKyAgPHhzZDpjb21wbGV4VHlwZSBpZD0iaXRlbVR5cGUiIG5hbWU9Iml0ZW1UeXBlIj4KKyAgICA8eHNkOmFubm90YXRpb24+CisgICAgICA8eHNkOmRvY3VtZW50YXRpb24+CisgICAgICAgIFRoZXNlIGVsZW1lbnQgYmxvY2tzIGRlZmluZSBhIHNpbmdsZSBjaGFuZ2UtaXRlbSB3aXRoaW4gdGhlIHNjb3BlIG9mIGEKKyAgICAgICAgZ2l2ZW4gcmVsZWFzZS4gQSBjaGFuZ2UtaXRlbSBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBmaWxlcyB0aGF0IHdlcmUKKyAgICAgICAgYWZmZWN0ZWQsIGFuZCBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjaGFuZ2UgaXRzZWxmLgorICAgICAgPC94c2Q6ZG9jdW1lbnRhdGlvbj4KKyAgICA8L3hzZDphbm5vdGF0aW9uPgorICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICA8eHNkOmVsZW1lbnQgbWF4T2NjdXJzPSIxIiBtaW5PY2N1cnM9IjAiIG5hbWU9InZjLWluZm9ybWF0aW9uIgorICAgICAgICAgICAgICAgICAgIHR5cGU9InRuczppbmZvcm1hdGlvblR5cGUiIG5pbGxhYmxlPSJ0cnVlIiAvPgorICAgICAgPHhzZDpjaG9pY2UgbWluT2NjdXJzPSIxIiBtYXhPY2N1cnM9IjEiPgorICAgICAgICA8eHNkOmVsZW1lbnQgcmVmPSJ0bnM6ZmlsZSIgLz4KKyAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImZpbGVzZXQiIG5pbGxhYmxlPSJmYWxzZSI+CisgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBtYXhPY2N1cnM9IjEiIG1pbk9jY3Vycz0iMCIgbmFtZT0idmMtaW5mb3JtYXRpb24iCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0bnM6aW5mb3JtYXRpb25UeXBlIiBuaWxsYWJsZT0idHJ1ZSIgLz4KKyAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG1heE9jY3Vycz0idW5ib3VuZGVkIiBtaW5PY2N1cnM9IjEiIHJlZj0idG5zOmZpbGUiIC8+CisgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgIDwveHNkOmNob2ljZT4KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJkZXNjcmlwdGlvbiIgdHlwZT0idG5zOmRlc2NyaXB0aW9uVHlwZSIKKyAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjEiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPgorICAgIDwveHNkOnNlcXVlbmNlPgorICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4c2Q6SUQiIC8+CisgIDwveHNkOmNvbXBsZXhUeXBlPgorCisgIDx4c2Q6ZWxlbWVudCBpZD0iaXRlbSIgbmFtZT0iaXRlbSIgbmlsbGFibGU9ImZhbHNlIiB0eXBlPSJ0bnM6aXRlbVR5cGUiPgorICAgIDx4c2Q6YW5ub3RhdGlvbj4KKyAgICAgIDx4c2Q6ZG9jdW1lbnRhdGlvbj4KKyAgICAgICAgQW4gaXRlbSBlbGVtZW50IGNvbnRhaW5zIGEgc2luZ2xlIGJsb2NrIHJlcHJlc2VudGluZyBhbiBpdGVtVHlwZS4KKyAgICAgIDwveHNkOmRvY3VtZW50YXRpb24+CisgICAgPC94c2Q6YW5ub3RhdGlvbj4KKyAgICA8eHNkOnVuaXF1ZSBuYW1lPSJpdGVtRGVzY3JpcHRpb25MYW5nQ29uc3RyYWludCI+CisgICAgICA8eHNkOnNlbGVjdG9yIHhwYXRoPSJ0bnM6ZGVzY3JpcHRpb24iIC8+CisgICAgICA8eHNkOmZpZWxkIHhwYXRoPSJAbGFuZyIgLz4KKyAgICA8L3hzZDp1bmlxdWU+CisgIDwveHNkOmVsZW1lbnQ+CisKKyAgPHhzZDpjb21wbGV4VHlwZSBpZD0icmVsZWFzZVR5cGUiIG5hbWU9InJlbGVhc2VUeXBlIj4KKyAgICA8eHNkOmFubm90YXRpb24+CisgICAgICA8eHNkOmRvY3VtZW50YXRpb24+CisgICAgICAgIFRoZSByZWxlYXNlIGlzIHRoZSBwcmltYXJ5IHBpZWNlIG9mIGluZm9ybWF0aW9uIHRoYXQgYSBjaGFuZ2Vsb2cKKyAgICAgICAgY29sbGVjdHMgYW5kIG9yZ2FuaXplcy4gQSByZWxlYXNlIGNvbnRhaW5zIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uLAorICAgICAgICBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBpdGVtIGJsb2Nrcy4gVGhlIHJlbGVhc2UgZWxlbWVudCBpcyBhbHNvIHRoZQorICAgICAgICBncmVhdGVzdCB1c2VyIG9mIGF0dHJpYnV0ZXMgYmVzaWRlcyB0aGUgZmlsZSBlbGVtZW50LiBBIHJlbGVhc2UgZWxlbWVudAorICAgICAgICBtdXN0IGhhdmUgYXQgbGVhc3QgYSAidmVyc2lvbiIgYXR0cmlidXRlLCB1bmlxdWVseSBpZGVudGlmeWluZyB0aGUKKyAgICAgICAgcmVsZWFzZSBpdHNlbGYuIEFkZGl0aW9uYWxseSwgaXQgbWF5IGhhdmUgInRhZyIgdG8gYXNzb2NpYXRlIGl0IHdpdGgKKyAgICAgICAgYSByZWxlYXNlLXN5c3RlbSB0YWcgYW5kICJkYXRlIiB0byBzcGVjaWZ5IHRoZSBkYXRlIHRoZSByZWxlYXNlIHdhcworICAgICAgICBjcmVhdGVkLgorICAgICAgPC94c2Q6ZG9jdW1lbnRhdGlvbj4KKyAgICA8L3hzZDphbm5vdGF0aW9uPgorICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZGVzY3JpcHRpb24iIHR5cGU9InRuczpkZXNjcmlwdGlvblR5cGUiCisgICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4KKyAgICAgIDx4c2Q6ZWxlbWVudCBtYXhPY2N1cnM9InVuYm91bmRlZCIgbWluT2NjdXJzPSIwIiBuYW1lPSJpbmZvcm1hdGlvbiIKKyAgICAgICAgICAgICAgICAgICB0eXBlPSJ0bnM6aW5mb3JtYXRpb25UeXBlIiBuaWxsYWJsZT0idHJ1ZSIgLz4KKyAgICAgIDx4c2Q6ZWxlbWVudCBtYXhPY2N1cnM9IjEiIG1pbk9jY3Vycz0iMCIgbmFtZT0idmMtaW5mb3JtYXRpb24iCisgICAgICAgICAgICAgICAgICAgdHlwZT0idG5zOmluZm9ybWF0aW9uVHlwZSIgbmlsbGFibGU9InRydWUiIC8+CisgICAgICA8eHNkOmVsZW1lbnQgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG1pbk9jY3Vycz0iMSIgcmVmPSJ0bnM6aXRlbSIgLz4KKyAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ2ZXJzaW9uIiB0eXBlPSJ4c2Q6dG9rZW4iIHVzZT0icmVxdWlyZWQiIC8+CisgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0idGFnIiB0eXBlPSJ4c2Q6Tk1UT0tFTiIgLz4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJkYXRlIiB0eXBlPSJ4c2Q6dG9rZW4iIHVzZT0icmVxdWlyZWQiIC8+IDwhLS0gdHlwZT0ieHNkOmRhdGVUaW1lIiAgLS0+CisgIDwveHNkOmNvbXBsZXhUeXBlPgorCisgIDx4c2Q6ZWxlbWVudCBpZD0icmVsZWFzZSIgbmFtZT0icmVsZWFzZSIgbmlsbGFibGU9ImZhbHNlIgorICAgICAgICAgICAgICAgdHlwZT0idG5zOnJlbGVhc2VUeXBlIj4KKyAgICA8eHNkOmFubm90YXRpb24+CisgICAgICA8eHNkOmRvY3VtZW50YXRpb24+CisgICAgICA8L3hzZDpkb2N1bWVudGF0aW9uPgorICAgIDwveHNkOmFubm90YXRpb24+CisgICAgPHhzZDp1bmlxdWUgbmFtZT0icmVsZWFzZURlc2NyaXB0aW9uTGFuZ0NvbnN0cmFpbnQiPgorICAgICAgPHhzZDpzZWxlY3RvciB4cGF0aD0idG5zOmRlc2NyaXB0aW9uIiAvPgorICAgICAgPHhzZDpmaWVsZCB4cGF0aD0iQGxhbmciIC8+CisgICAgPC94c2Q6dW5pcXVlPgorICA8L3hzZDplbGVtZW50PgorCisgIDx4c2Q6ZWxlbWVudCBpZD0iY2hhbmdlbG9nIiBuYW1lPSJjaGFuZ2Vsb2ciIG5pbGxhYmxlPSJmYWxzZSI+CisgICAgPHhzZDphbm5vdGF0aW9uPgorICAgICAgPHhzZDpkb2N1bWVudGF0aW9uPgorICAgICAgICBUaGUgY2hhbmdlbG9nIGVsZW1lbnQgaXMgaW50ZW5kZWQgYXMgdGhlIGRvY3VtZW50IHJvb3QgZWxlbWVudC4gSXQKKyAgICAgICAgY29udGFpbnMgYW4gb3ZlcnZpZXcgZWxlbWVudCAoaWRlbnRpY2FsIGluIHN0cnVjdHVyZSB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgZWxlbWVudCwgYnV0IG5hbWVkIGRpZmZlcmVudGx5IHRvIHByZXZlbnQgY29sbGlzaW9uIGluIFhQYXRoIHF1ZXJpZXMpCisgICAgICAgIGFuZCBvbmUgb3IgbW9yZSByZWxlYXNlIGJsb2Nrcy4KKyAgICAgIDwveHNkOmRvY3VtZW50YXRpb24+CisgICAgPC94c2Q6YW5ub3RhdGlvbj4KKyAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgICAgPHhzZDplbGVtZW50IG1heE9jY3Vycz0idW5ib3VuZGVkIiBtaW5PY2N1cnM9IjEiIG5hbWU9ImRlc2NyaXB0aW9uIgorICAgICAgICAgICAgICAgICAgICAgbmlsbGFibGU9ImZhbHNlIiB0eXBlPSJ0bnM6ZGVzY3JpcHRpb25UeXBlIiAvPgorICAgICAgICA8eHNkOmVsZW1lbnQgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG1pbk9jY3Vycz0iMCIgbmFtZT0iaW5mb3JtYXRpb24iCisgICAgICAgICAgICAgICAgICAgdHlwZT0idG5zOmluZm9ybWF0aW9uVHlwZSIgbmlsbGFibGU9InRydWUiIC8+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBtYXhPY2N1cnM9IjEiIG1pbk9jY3Vycz0iMCIgbmFtZT0idmMtaW5mb3JtYXRpb24iCisgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0bnM6aW5mb3JtYXRpb25UeXBlIiBuaWxsYWJsZT0idHJ1ZSIgLz4KKyAgICAgICAgPHhzZDplbGVtZW50IG1heE9jY3Vycz0idW5ib3VuZGVkIiBtaW5PY2N1cnM9IjEiIHJlZj0idG5zOnJlbGVhc2UiIC8+CisgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICA8eHNkOnVuaXF1ZSBuYW1lPSJjaGFuZ2Vsb2dEZXNjcmlwdGlvbkxhbmdDb25zdHJhaW50Ij4KKyAgICAgIDx4c2Q6c2VsZWN0b3IgeHBhdGg9InRuczpkZXNjcmlwdGlvbiIgLz4KKyAgICAgIDx4c2Q6ZmllbGQgeHBhdGg9IkBsYW5nIiAvPgorICAgIDwveHNkOnVuaXF1ZT4KKyAgPC94c2Q6ZWxlbWVudD4KKworPC94c2Q6c2NoZW1hPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc3YjAzOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV8wLnhtbApAQCAtMCwwICsxLDMgQEAKKzxkb2M+Cis8YS8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDkxYjZiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzAueHNkCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJkb2MiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmNob2ljZSBtaW5PY2N1cnM9IjEiIG1heE9jY3Vycz0iMSI+CisgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYSIvPgorICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImIiLz4KKyAgICAgICAgPC94czpjaG9pY2U+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YzBkZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMS54bWwKQEAgLTAsMCArMSwzIEBACis8ZG9jPgorPGIvPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA2MTRkMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV8xLnhzZApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZG9jIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgIDx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9IjEiPgorICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImEiLz4KKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJiIi8+CisgICAgICAgIDwveHM6Y2hvaWNlPgorICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjI3ZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzIueG1sCkBAIC0wLDAgKzEsNCBAQAorPGRvYz4KKzxhLz4KKzxiLz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzIueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzIueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMmIwOTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMi54c2QKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImRvYyI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6Y2hvaWNlIG1pbk9jY3Vycz0iMSIgbWF4T2NjdXJzPSIzIj4KKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJhIi8+CisgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYiIvPgorICAgICAgICA8L3hzOmNob2ljZT4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM1ODEwOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV8zLnhtbApAQCAtMCwwICsxLDQgQEAKKzxkb2M+Cis8YS8+Cis8YS8+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV80LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzY5MjNjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzQueG1sCkBAIC0wLDAgKzEsMiBAQAorPGRvYz4KKzwvZG9jPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzNDVhNjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jaG9pY2VfNS54bWwKQEAgLTAsMCArMSw2IEBACis8ZG9jPgorPGEvPgorPGIvPgorPGEvPgorPC9kb2M+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV82LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nob2ljZV82LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTQxNTNkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY2hvaWNlXzYueG1sCkBAIC0wLDAgKzEsNyBAQAorPGRvYz4KKzxhLz4KKzxiLz4KKzxhLz4KKzxhLz4KKzwvZG9jPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jb3MtY3QtZXh0ZW5kcy0xLTNfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jb3MtY3QtZXh0ZW5kcy0xLTNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBiOGE1OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nvcy1jdC1leHRlbmRzLTEtM18wLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhLS0gCistLT4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iIHhtbG5zOmZvbz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGNvcy1jdC1leHRlbmRzLTEtM18wLnhzZCI+CisJPGJhci5BIGZvbzpiYXI9Im8iLz4KKwk8YmFyLkIgZm9vOmJhcj0ibyIvPgorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jb3MtY3QtZXh0ZW5kcy0xLTNfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jb3MtY3QtZXh0ZW5kcy0xLTNfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY1NWE4ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Nvcy1jdC1leHRlbmRzLTEtM18wLnhzZApAQCAtMCwwICsxLDUxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCEtLQorCVNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogRGVyaXZhdGlvbiBWYWxpZCAoRXh0ZW5zaW9uKQorCisJMS4zIElmIGl0IGhhcyBhbiB7YXR0cmlidXRlIHdpbGRjYXJkfSwgdGhlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uIG11c3QgCisJYWxzbyBoYXZlIG9uZSwgYW5kIHRoZSBiYXNlIHR5cGUgZGVmaW5pdGlvbidzIHthdHRyaWJ1dGUgd2lsZGNhcmR9J3MgCisJe25hbWVzcGFjZSBjb25zdHJhaW50fSBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbidzIAorCXthdHRyaWJ1dGUgd2lsZGNhcmR9J3Mge25hbWVzcGFjZSBjb25zdHJhaW50fSwgYXMgZGVmaW5lZCBieSBXaWxkY2FyZCBTdWJzZXQgKKczLjEwLjYpLgorLS0+Cis8c2NoZW1hIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgCQorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIgorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKwkKKwk8ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8Y29tcGxleFR5cGU+CisJCQk8c2VxdWVuY2U+CisJCQkJPGVsZW1lbnQgbmFtZT0iYmFyLkEiIHR5cGU9ImZvbzp0eXBlLkEiIC8+CisJCQkJPGVsZW1lbnQgbmFtZT0iYmFyLkIiIHR5cGU9ImZvbzp0eXBlLkIiIC8+CisJCQk8L3NlcXVlbmNlPgorCQk8L2NvbXBsZXhUeXBlPiAgICAKKwk8L2VsZW1lbnQ+ICAKKworCTxjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLkEiPgorCQk8Y29tcGxleENvbnRlbnQ+CisJCQk8IS0tIFRoaXMgaXMgT0ssIHNpbmNlIHRoZSBjb21wbGV0ZSB3aWxkY2FyZAorCQkJICBpcyB0aGUgd2lsZGNhcmQgb2YgdGhlIGJhc2UgdHlwZS4gLS0+CisJCQk8ZXh0ZW5zaW9uIGJhc2U9ImZvbzpiYXNlLnR5cGUuQSIgLz4JCQkJICAJICAJCQkJCQkKKwkJPC9jb21wbGV4Q29udGVudD4KKwk8L2NvbXBsZXhUeXBlPiAgICAKKworCTxjb21wbGV4VHlwZSBuYW1lPSJiYXNlLnR5cGUuQSI+CisJCTxhbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJza2lwIiAvPgkJCisJPC9jb21wbGV4VHlwZT4gICAgCisKKwk8Y29tcGxleFR5cGUgbmFtZT0idHlwZS5CIj4KKwkJPGNvbXBsZXhDb250ZW50PgorCQkJPGV4dGVuc2lvbiBiYXNlPSJmb286YmFzZS50eXBlLkIiPgkKKwkJCQk8IS0tIFRoaXMgaXMgT0ssIHNpbmNlIHRoZSBjb21wbGV0ZSB3aWxkY2FyZCBpcyBhIHVuaW9uCisJCQkJICBvZiAiIyNhbnkiIGFuZCAiaHR0cDovL0ZPTyIgPSAiIyNhbnkiLiBUaHVzIHRoZSBjb21wbGV0ZQorCQkJCSAgd2lsZGNhcmQgaXMgZXF1YWwgdG8gdGhhdCBvbmUgaW4gdGhlIGJhc2UgY2xhc3MuIC0tPgorCQkJCTxhbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSJodHRwOi8vRk9PIiBwcm9jZXNzQ29udGVudHM9InNraXAiIC8+CisJCQk8L2V4dGVuc2lvbj4KKwkJPC9jb21wbGV4Q29udGVudD4KKwk8L2NvbXBsZXhUeXBlPiAgICAKKworCTxjb21wbGV4VHlwZSBuYW1lPSJiYXNlLnR5cGUuQiI+CisJCTxhbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI2FueSIgcHJvY2Vzc0NvbnRlbnRzPSJza2lwIiAvPgkJCisJPC9jb21wbGV4VHlwZT4gICAgCisKKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY29zLXN0LXJlc3RyaWN0cy0xLTItZXJyXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY29zLXN0LXJlc3RyaWN0cy0xLTItZXJyXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNjBlNWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBjb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMC54c2QiPjEgMjwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY29zLXN0LXJlc3RyaWN0cy0xLTItZXJyXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY29zLXN0LXJlc3RyaWN0cy0xLTItZXJyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkM2ZhYmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jb3Mtc3QtcmVzdHJpY3RzLTEtMi1lcnJfMC54c2QKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIAorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgeG1sbnM6Zm9vPSJodHRwOi8vRk9PIj4KKworCTxlbGVtZW50IG5hbWU9ImZvbyIgdHlwZT0iZm9vOnR5cGUuQSIvPgorCisJPHNpbXBsZVR5cGUgbmFtZT0idHlwZS5BIj4KKwkJPHJlc3RyaWN0aW9uPgorCQkJPHNpbXBsZVR5cGU+CisJCQkJPGxpc3QgaXRlbVR5cGU9ImludGVnZXIiLz4JCQkKKwkJCTwvc2ltcGxlVHlwZT4KKwkJCTxsZW5ndGggdmFsdWU9IjMiLz4KKwkJPC9yZXN0cmljdGlvbj4KKwk8L3NpbXBsZVR5cGU+CisKKwk8IS0tcmVzdHJpY3Rpb24gYmFzZT0iZm9vOnR5cGUuYmFzZS5BIj4KKwkJCQorCTwvcmVzdHJpY3Rpb24tLT4KKworCTxzaW1wbGVUeXBlIG5hbWU9InR5cGUuYmFzZS5BIj4KKwkJPHJlc3RyaWN0aW9uPgorCQkJPHNpbXBsZVR5cGU+CisJCQkJPGxpc3QgaXRlbVR5cGU9ImludGVnZXIiLz4JCQkJCisJCQk8L3NpbXBsZVR5cGU+CisJCTwvcmVzdHJpY3Rpb24+CisJPC9zaW1wbGVUeXBlPgorCisJCisKKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY3Qtc2Mtbm9iYXNlXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY3Qtc2Mtbm9iYXNlXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2Nzg0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jdC1zYy1ub2Jhc2VfMC54bWwKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iCisgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gY3Qtc2Mtbm9iYXNlXzAueHNkIi8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY3Qtc2Mtbm9iYXNlXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvY3Qtc2Mtbm9iYXNlXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMGU5NDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9jdC1zYy1ub2Jhc2VfMC54c2QKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIKKwl4bWxuczpmb289Imh0dHA6Ly9GT08iPgorCisJPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJiYXNlIj4KKwkJPHhzZDpzaW1wbGVDb250ZW50PgorCQkJPHhzZDpleHRlbnNpb24gYmFzZT0ieHNkOnN0cmluZyIvPgorCQk8L3hzZDpzaW1wbGVDb250ZW50PgorCTwveHNkOmNvbXBsZXhUeXBlPgorCisJPHhzZDplbGVtZW50IG5hbWU9ImZvbyI+CisJCTx4c2Q6Y29tcGxleFR5cGU+CisJCQk8eHNkOnNpbXBsZUNvbnRlbnQ+CisJCQkJPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJmb286YmFzZSI+CisJCQkJCTx4c2Q6c2ltcGxlVHlwZT4KKwkJCQkJCTx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnN0cmluZyIvPgorCQkJCQk8L3hzZDpzaW1wbGVUeXBlPgorCQkJCTwveHNkOnJlc3RyaWN0aW9uPgorCQkJPC94c2Q6c2ltcGxlQ29udGVudD4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKworPC94c2Q6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RhdGVfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kYXRlXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNjc3ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kYXRlXzAueG1sCkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRhdGU+CisgIDx0aW1lPjAxOjAyOjU5PC90aW1lPgorICA8dGltZTE+MDE6MDI6NTk8L3RpbWUxPgorICA8dGltZTI+MTI6NTk6NTkuMDAwMTwvdGltZTI+CisgIDx0aW1lMj4xMjowMDowMDwvdGltZTI+CisgIDxkYXRlMT4xOTk2LTA1LTIwPC9kYXRlMT4KKyAgPGRhdGUxPjIwMDItMDUtMTg8L2RhdGUxPgorICA8ZGF0ZTI+MTk5Ni0wNS0xOVo8L2RhdGUyPgorICA8ZGF0ZTI+MjAwMi0wNS0xOVo8L2RhdGUyPgorICA8ZGF0ZTE+MjAwMi0wNS0xOFo8L2RhdGUxPgorICA8ZGF0ZTE+MjAwMC0wNS0xOFo8L2RhdGUxPgorICA8ZHQxPjIwMDAtMDUtMThUMDA6MDA6MDA8L2R0MT4KKyAgPGR0Mj4yMDAyLTA1LTE5VDIxOjMwOjAwLjk5PC9kdDI+CisgIDxkdDE+MTk2OS0xMi0zMVQyMzowMDowMS0wMTowMDwvZHQxPgorICA8aG9sPi0tMDEtMDE8L2hvbD4KKyAgPGhvbD4tLTA3LTA0PC9ob2w+CisgIDxob2w+LS0xMi0yNTwvaG9sPgorICA8eWVhcjE+MjAwMjwveWVhcjE+CisgIDx5ZWFybW9uMT4yMDAyLTA1PC95ZWFybW9uMT4KKyAgPG1vbjE+LS0wNVo8L21vbjE+CisgIDxkYXkxPi0tLTMxPC9kYXkxPgorICA8bW9udGhkYXkxPi0tMDItMjhaPC9tb250aGRheTE+CisgIDxtb250aGRheTE+LS0xMi0zMS0wNjowMDwvbW9udGhkYXkxPgorICA8ZHQyPjIwMDMtMDQtMzBUMTg6MDA6MDAtMDY6MDA8L2R0Mj4KKzwvZGF0ZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RhdGVfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kYXRlXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNDczOTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kYXRlXzAueHNkCkBAIC0wLDAgKzEsMTIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHNkOmFubm90YXRpb24+CisgICAgPHhzZDpkb2N1bWVudGF0aW9uIHhtbDpsYW5nPSJlbiI+CisgICAgICAgIFRlc3RpbmcgZGF0ZS90aW1lIGRhdGEgdHlwZXMKKyAgICA8L3hzZDpkb2N1bWVudGF0aW9uPgorICA8L3hzZDphbm5vdGF0aW9uPgorICA8eHNkOmVsZW1lbnQgbmFtZT0iZGF0ZSI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgIDx4c2Q6Y2hvaWNlIG1pbk9jY3Vycz0iMSIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ0aW1lIiB0eXBlPSJ4c2Q6dGltZSIvPgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ0aW1lMSI+CisgICAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnRpbWUiPgorICAgICAgICAgICAgICAgIDx4c2Q6bWF4SW5jbHVzaXZlIHZhbHVlPSIyMzo1OTo1OS45OTk5OTk5Ii8+CisgICAgICAgICAgICAgICAgPHhzZDptaW5JbmNsdXNpdmUgdmFsdWU9IjAwOjAwOjAwIi8+CisgICAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ0aW1lMiI+CisgICAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnRpbWUiPgorICAgICAgICAgICAgICAgIDx4c2Q6bWF4SW5jbHVzaXZlIHZhbHVlPSIxMzo1MDo1MCIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluSW5jbHVzaXZlIHZhbHVlPSIxMjowMDowMCIvPgorICAgICAgICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZGF0ZTEiPgorICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpkYXRlIj4KKyAgICAgICAgICAgICAgICA8eHNkOm1heEV4Y2x1c2l2ZSB2YWx1ZT0iMjAwMi0wNS0xOSIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluRXhjbHVzaXZlIHZhbHVlPSIxOTk2LTA1LTE5Ii8+CisgICAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJkYXRlMiI+CisgICAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOmRhdGUiPgorICAgICAgICAgICAgICAgIDx4c2Q6bWF4SW5jbHVzaXZlIHZhbHVlPSIyMDAyLTA1LTE5WiIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluSW5jbHVzaXZlIHZhbHVlPSIxOTk2LTA1LTE5WiIvPgorICAgICAgICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZHQxIj4KKyAgICAgICAgICAgIDx4c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6ZGF0ZVRpbWUiPgorICAgICAgICAgICAgICAgIDx4c2Q6bWF4RXhjbHVzaXZlIHZhbHVlPSIyMDAyLTAxLTAxVDAwOjAwOjAwWiIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluRXhjbHVzaXZlIHZhbHVlPSIxOTcwLTAxLTAxVDAwOjAwOjAwWiIvPgorICAgICAgICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZHQyIj4KKyAgICAgICAgICAgIDx4c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6ZGF0ZVRpbWUiPgorICAgICAgICAgICAgICAgIDx4c2Q6bWF4SW5jbHVzaXZlIHZhbHVlPSIyMDAzLTA1LTAxVDAwOjAwOjAwWiIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluSW5jbHVzaXZlIHZhbHVlPSIxOTk2LTA1LTE5VDIxOjMwOjAwWiIvPgorICAgICAgICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iaG9sIiB0eXBlPSJob2xpZGF5cyIvPgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ5ZWFyMSI+CisgICAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOmdZZWFyIj4KKyAgICAgICAgICAgICAgICA8eHNkOm1heEluY2x1c2l2ZSB2YWx1ZT0iMjAwM1oiLz4KKyAgICAgICAgICAgICAgICA8eHNkOm1pbkluY2x1c2l2ZSB2YWx1ZT0iMTk5NloiLz4KKyAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InllYXJtb24xIj4KKyAgICAgICAgICAgIDx4c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6Z1llYXJNb250aCI+CisgICAgICAgICAgICAgICAgPHhzZDptYXhJbmNsdXNpdmUgdmFsdWU9IjIwMDMtMDVaIi8+CisgICAgICAgICAgICAgICAgPHhzZDptaW5JbmNsdXNpdmUgdmFsdWU9IjE5OTYtMDVaIi8+CisgICAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJtb24xIj4KKyAgICAgICAgICAgIDx4c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6Z01vbnRoIj4KKyAgICAgICAgICAgICAgICA8eHNkOm1pbkluY2x1c2l2ZSB2YWx1ZT0iLS0wMVoiLz4KKyAgICAgICAgICAgICAgICA8eHNkOm1heEluY2x1c2l2ZSB2YWx1ZT0iLS0wNVoiLz4KKyAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImRheTEiPgorICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpnRGF5Ij4KKyAgICAgICAgICAgICAgICA8eHNkOm1pbkluY2x1c2l2ZSB2YWx1ZT0iLS0tMjgiLz4KKyAgICAgICAgICAgICAgICA8eHNkOm1heEluY2x1c2l2ZSB2YWx1ZT0iLS0tMzEiLz4KKyAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9Im1vbnRoZGF5MSIgdHlwZT0ieHNkOmdNb250aERheSIvPgorICAgICAgICA8L3hzZDpjaG9pY2U+CisgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKyAgPHhzZDpzaW1wbGVUeXBlIG5hbWU9J2hvbGlkYXlzJz4KKyAgICA8eHNkOmFubm90YXRpb24+CisgICAgICA8eHNkOmRvY3VtZW50YXRpb24+c29tZSBVUyBob2xpZGF5czwveHNkOmRvY3VtZW50YXRpb24+CisgICAgPC94c2Q6YW5ub3RhdGlvbj4KKyAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9J3hzZDpnTW9udGhEYXknPgorICAgICAgPHhzZDplbnVtZXJhdGlvbiB2YWx1ZT0nLS0wMS0wMSc+CisgICAgICAgIDx4c2Q6YW5ub3RhdGlvbj4KKyAgICAgICAgICA8eHNkOmRvY3VtZW50YXRpb24+TmV3IFllYXIncyBkYXk8L3hzZDpkb2N1bWVudGF0aW9uPgorICAgICAgICA8L3hzZDphbm5vdGF0aW9uPgorICAgICAgPC94c2Q6ZW51bWVyYXRpb24+CisgICAgICA8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSctLTA3LTA0Jz4KKyAgICAgICAgPHhzZDphbm5vdGF0aW9uPgorICAgICAgICAgIDx4c2Q6ZG9jdW1lbnRhdGlvbj40dGggb2YgSnVseTwveHNkOmRvY3VtZW50YXRpb24+CisgICAgICAgIDwveHNkOmFubm90YXRpb24+CisgICAgICA8L3hzZDplbnVtZXJhdGlvbj4KKyAgICAgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9Jy0tMTItMjUnPgorICAgICAgICA8eHNkOmFubm90YXRpb24+CisgICAgICAgICAgPHhzZDpkb2N1bWVudGF0aW9uPkNocmlzdG1hczwveHNkOmRvY3VtZW50YXRpb24+CisgICAgICAgIDwveHNkOmFubm90YXRpb24+CisgICAgICA8L3hzZDplbnVtZXJhdGlvbj4KKyAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgPC94c2Q6c2ltcGxlVHlwZT4KKzwveHNkOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU2OGZmMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMS54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIHRlc3QgdGhlIHZhbHVlczoKKwkgIC0gIEJBRAorCSAgKyAgQkFECisJICAxLgorCSAgLjEKKwkgIDAuCisJICAuMAorCSAgLSAxIEJBRAorCSAgKyAxIEJBRAorCSAgLiAgIEJBRAorCSAgMDAwICAhCisJLS0+Cis8Zm9vCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKwl4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iZGVjaW1hbC0xLnhzZCI+CisJPCEtLSBUaGUgZ29vZCBvbmVzLiAtLT4KKwk8dmFsPiAwLiA8L3ZhbD4KKwk8dmFsPiAuMCA8L3ZhbD4KKwk8dmFsPiAuMTAgPC92YWw+CisJPHZhbD4gMDEuIDwvdmFsPgorCTx2YWw+IDAwMCA8L3ZhbD4JCisJPHZhbD4xMjM0NTY3ODkwMTIzNDU2Nzg8L3ZhbD4KKwk8dmFsPi0xMjM0NTY3ODkwMTIzNDU2Nzg8L3ZhbD4KKwk8dmFsPjAuMTIzNDU2Nzg5MDEyMzQ1Njc4PC92YWw+CisJPHZhbD4tMC4xMjM0NTY3ODkwMTIzNDU2Nzg8L3ZhbD4KKwk8IS0tIFRoZSBiYWQgb25lcy4gLS0+CisJPHZhbD4uPC92YWw+CisJPHZhbD4tPC92YWw+CisJPHZhbD4rPC92YWw+CisJPHZhbD4qPC92YWw+CisJPHZhbD4tIDE8L3ZhbD4KKwk8dmFsPisgMTwvdmFsPgorCTx2YWw+KyAwPC92YWw+CisJPHZhbD4tIDA8L3ZhbD4KKwk8IS0tcmVmPjAuMDwvcmVmLS0+CQorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzBjYTNlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xLnhzZApAQCAtMCwwICsxLDI5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorCQorCTx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJteURlY2ltYWwiPgorCQk8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpkZWNpbWFsIj4JCQkKKwkJCTx4c2Q6dG90YWxEaWdpdHMgdmFsdWU9IjE4Ii8+CQkJCisJCTwveHNkOnJlc3RyaWN0aW9uPgorCTwveHNkOnNpbXBsZVR5cGU+CisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbCIgdHlwZT0ibXlEZWNpbWFsIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZWYiIHR5cGU9Im15RGVjaW1hbCIgbWluT2NjdXJzPSIwIi8+CisJCQk8L3hzZDpzZXF1ZW5jZT4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisKKwkJPCEtLXhzZDprZXkgbmFtZT0ibXlLZXkiPgorCQkJPHhzZDpzZWxlY3RvciB4cGF0aD0idmFsIi8+CisJCQk8eHNkOmZpZWxkIHhwYXRoPSIuIi8+CisJCTwveHNkOmtleT4KKworCQk8eHNkOmtleXJlZiBuYW1lPSJteUtleVJlZiIgcmVmZXI9Im15S2V5Ij4KKwkJCTx4c2Q6c2VsZWN0b3IgeHBhdGg9InJlZiIvPgorCQkJPHhzZDpmaWVsZCB4cGF0aD0iLiIvPgorCQk8L3hzZDprZXlyZWYtLT4KKwk8L3hzZDplbGVtZW50PgorCis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JmMzcxOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMV8wLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28KKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICAgIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJkZWNpbWFsLTEueHNkIj4KKyAgICA8IS0tIFRoZSBnb29kIG9uZXMuIC0tPgorICAgIDx2YWw+IDAuIDwvdmFsPgorICAgIDx2YWw+IC4wIDwvdmFsPgorICAgIDx2YWw+IC4xMCA8L3ZhbD4KKyAgICA8dmFsPiAwMS4gPC92YWw+CisgICAgPHZhbD4gMDAwIDwvdmFsPgorICAgIDx2YWw+MTIzNDU2Nzg5MDEyMzQ1Njc4PC92YWw+CisgICAgPHZhbD4tMTIzNDU2Nzg5MDEyMzQ1Njc4PC92YWw+CisgICAgPHZhbD4wLjEyMzQ1Njc4OTAxMjM0NTY3ODwvdmFsPgorICAgIDx2YWw+LTAuMTIzNDU2Nzg5MDEyMzQ1Njc4PC92YWw+CisgICAgPCEtLSBUaGUgYmFkIG9uZXMuIC0tPgorICAgIDx2YWw+LjwvdmFsPgorICAgIDx2YWw+LTwvdmFsPgorICAgIDx2YWw+KzwvdmFsPgorICAgIDx2YWw+KjwvdmFsPgorICAgIDx2YWw+LSAxPC92YWw+CisgICAgPHZhbD4rIDE8L3ZhbD4KKyAgICA8dmFsPisgMDwvdmFsPgorICAgIDx2YWw+LSAwPC92YWw+Cis8L2Zvbz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMV8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMV8xLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTk4Yzg2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0xXzEueHNkCkBAIC0wLDAgKzEsMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisKKyAgICA8eHNkOnNpbXBsZVR5cGUgbmFtZT0ibXlEZWNpbWFsIj4KKyAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6ZGVjaW1hbCI+CisgICAgICAgICAgICA8eHNkOnRvdGFsRGlnaXRzIHZhbHVlPSIxOCIvPgorICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICA8L3hzZDpzaW1wbGVUeXBlPgorCisgICAgPHhzZDplbGVtZW50IG5hbWU9ImZvbyI+CisgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWwiIHR5cGU9Im15RGVjaW1hbCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKworICAgIDwveHNkOmVsZW1lbnQ+CisKKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjZmNzgxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0yXzAueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbworICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249ImRlY2ltYWwtMi54c2QiPgorICAgIDwhLS0gVGhlIGdvb2Qgb25lcy4gLS0+CisgICAgPHZhbD4wLjE8L3ZhbD4KKyAgICA8dmFsPjAuMDAxPC92YWw+CisgICAgPHZhbD4wLjA8L3ZhbD4KKyAgICA8dmFsPi0wLjA8L3ZhbD4KKyAgICA8dmFsPjE8L3ZhbD4KKyAgICA8IS0tIFRoZSBiYWQgb25lcy4gLS0+CisgICAgPHZhbD4tMC4xPC92YWw+CisgICAgPHZhbD4tMTwvdmFsPgorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTJfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTJfMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M3MTY3MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RlY2ltYWwtMl8xLnhzZApAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorCisgICAgPHhzZDpzaW1wbGVUeXBlIG5hbWU9Im15RGVjaW1hbCI+CisgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOmRlY2ltYWwiPgorICAgICAgICAgICAgPHhzZDptaW5JbmNsdXNpdmUgdmFsdWU9IjAiLz4KKyAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgPC94c2Q6c2ltcGxlVHlwZT4KKworICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0idmFsIiB0eXBlPSJteURlY2ltYWwiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgICAgPC94c2Q6ZWxlbWVudD4KKworPC94c2Q6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0zXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0zXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYzFlZDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTNfMC54bWwKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vCisgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKyAgICB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iZGVjaW1hbC0zLnhzZCI+CisgICAgPCEtLSBUaGUgZ29vZCBvbmVzLiAtLT4KKyAgICA8dmFsPjAuMTI8L3ZhbD4KKyAgICA8dmFsPjAuMDwvdmFsPgorICAgIDx2YWw+MC4wMjwvdmFsPgorICAgIDx2YWw+MTI8L3ZhbD4KKyAgICA8dmFsPjEuMjwvdmFsPgorICAgIDwhLS0gVGhlIGJhZCBvbmVzLiAtLT4KKyAgICA8dmFsPjAuMTIzPC92YWw+CisgICAgPHZhbD4wLjAyMzwvdmFsPgorICAgIDx2YWw+MTIzPC92YWw+CisgICAgPHZhbD4xMi4zPC92YWw+Cis8L2Zvbz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0zXzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVjaW1hbC0zXzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzYWU4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZWNpbWFsLTNfMS54c2QKQEAgLTAsMCArMSwxOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKworICAgIDx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJteURlY2ltYWwiPgorICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpkZWNpbWFsIj4KKyAgICAgICAgICAgIDx4c2Q6dG90YWxEaWdpdHMgdmFsdWU9IjIiLz4KKyAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgPC94c2Q6c2ltcGxlVHlwZT4KKworICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0idmFsIiB0eXBlPSJteURlY2ltYWwiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgICAgPC94c2Q6ZWxlbWVudD4KKworPC94c2Q6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb24tZXJyXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb24tZXJyXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZmEzNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLWV4dGVuc2lvbi1lcnJfMC54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIiAKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gZGVyaXZhdGlvbi1vay1leHRlbnNpb24tZXJyXzAueHNkIgorCWJhckFfMT0ibyIgYmFyQV8yPSJvIi8+CisgICAKKworCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uLWVycl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uLWVycl8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWJlNTgxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb24tZXJyXzAueHNkCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiAKKwl4bWxucz0iaHR0cDovL0ZPTyIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIj4KKworCTx4czplbGVtZW50IG5hbWU9ImZvbyI+CisJCTx4czpjb21wbGV4VHlwZT4KKwkJCTx4czpjb21wbGV4Q29udGVudD4KKwkJCQk8eHM6ZXh0ZW5zaW9uIGJhc2U9InR5cGVBIj4JCQkJCQkJCQkJCisJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyQV8xIiB0eXBlPSJ4czpzdHJpbmciICB1c2U9Im9wdGlvbmFsIi8+CQkJCQkKKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJBXzIiIHR5cGU9InhzOnN0cmluZyIgIHVzZT0icmVxdWlyZWQiLz4JCQkJCQorCQkJCTwveHM6ZXh0ZW5zaW9uPgorCQkJPC94czpjb21wbGV4Q29udGVudD4KKwkJPC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+CisKKwk8eHM6Y29tcGxleFR5cGUgbmFtZT0idHlwZUEiPgorCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckFfMSIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CQkJCQorCTwveHM6Y29tcGxleFR5cGU+CisKKzwveHM6c2NoZW1hPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb25fMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNmODcxZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzAueG1sCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGRlcml2YXRpb24tb2stZXh0ZW5zaW9uXzAueHNkIgorCWJhckFfMT0ibyIgYmFyQV8yPSJvIi8+CisgICAKKworCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1leHRlbnNpb25fMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk5MDY1YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stZXh0ZW5zaW9uXzAueHNkCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiAKKwl4bWxucz0iaHR0cDovL0ZPTyIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIj4KKworCTx4czplbGVtZW50IG5hbWU9ImZvbyI+CisJCTx4czpjb21wbGV4VHlwZT4KKwkJCTx4czpjb21wbGV4Q29udGVudD4KKwkJCQk8eHM6ZXh0ZW5zaW9uIGJhc2U9InR5cGVBIj4KKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJBXzIiIHR5cGU9InhzOnN0cmluZyIgIHVzZT0icmVxdWlyZWQiLz4JCQkJCQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckFfMSIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJwcm9oaWJpdGVkIi8+CQkJCQkKKwkJCQk8L3hzOmV4dGVuc2lvbj4KKwkJCTwveHM6Y29tcGxleENvbnRlbnQ+CisJCTwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCisJPHhzOmNvbXBsZXhUeXBlIG5hbWU9InR5cGVBIj4KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJBXzEiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPgkJCQkKKwk8L3hzOmNvbXBsZXhUeXBlPgorCis8L3hzOnNjaGVtYT4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTItMS0xXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTJmYjBjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi0yLTEtMV8wLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBkZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTItMS0xXzAueHNkIi8+CisgICAKKworCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tMi0xLTFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTItMS0xXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5MWZlNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTItMS0xXzAueHNkCkBAIC0wLDAgKzEsNTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiAKKwl4bWxucz0iaHR0cDovL0ZPTyIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIj4KKworCTx4czplbGVtZW50IG5hbWU9ImZvbyI+CisJCTx4czpjb21wbGV4VHlwZT4KKwkJCTx4czpjb21wbGV4Q29udGVudD4KKwkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0idHlwZUEiPgorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckFfMSIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJvcHRpb25hbCIvPgorCQkJCQk8IS0tIE9LIC0tPgkJCQkJCQkJCisJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyQV8yIiB0eXBlPSJ4czpzdHJpbmciICB1c2U9InJlcXVpcmVkIi8+CisJCQkJCTwhLS0gT0sgLS0+CQkJCQkJCQkJCisJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyQV8zIiB0eXBlPSJ4czpzdHJpbmciICB1c2U9InByb2hpYml0ZWQiLz4KKwkJCQkJPCEtLSBPSyAtLT4JCisKKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJCXzEiIHR5cGU9InhzOnN0cmluZyIgIHVzZT0ib3B0aW9uYWwiLz4JCQorCQkJCQk8IS0tIDIuMS4xIGluY29uc2lzdGVudCAoIE9SIDMgKSAtLT4JCQkJCQkJCisJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyQl8yIiB0eXBlPSJ4czpzdHJpbmciICB1c2U9InJlcXVpcmVkIi8+CisJCQkJCTwhLS0gT0sgLS0+CQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckJfMyIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJwcm9oaWJpdGVkIi8+CisJCQkJCTwhLS0gMyAtLT4JCQkJCQkJCQkKKworCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckNfMSIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJvcHRpb25hbCIvPgorCQkJCQk8IS0tIDIuMiAgbm8gbWF0Y2ggaW4gYmFzZSAtLT4JCQkJCQkJCQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckNfMiIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJyZXF1aXJlZCIvPgkKKwkJCQkJPCEtLSAyLjIgIG5vIG1hdGNoIGluIGJhc2UgLS0+CQkJCQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckNfMyIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJwcm9oaWJpdGVkIi8+CisJCQkJCTwhLS0gT0sgLS0+CQorCisJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyRF8xIiB0eXBlPSJ4czpzdHJpbmciICB1c2U9Im9wdGlvbmFsIi8+CisJCQkJCTwhLS0gMi4yICBubyBtYXRjaCBpbiBiYXNlIC0tPgkKKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJEXzIiIHR5cGU9InhzOnN0cmluZyIgIHVzZT0icmVxdWlyZWQiLz4KKwkJCQkJPCEtLSAyLjIgIG5vIG1hdGNoIGluIGJhc2UgLS0+CQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckRfMyIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJwcm9oaWJpdGVkIi8+CisJCQkJCTwhLS0gT0sgLS0+CQorCisJCQkJPC94czpyZXN0cmljdGlvbj4KKwkJCTwveHM6Y29tcGxleENvbnRlbnQ+CisJCTwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCisJPHhzOmNvbXBsZXhUeXBlIG5hbWU9InR5cGVBIj4KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJBXzEiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJvcHRpb25hbCIvPgkJCQorCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckFfMiIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9Im9wdGlvbmFsIi8+CQkJCisJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyQV8zIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4JCisJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyQl8xIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4JCQorCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckJfMiIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CQkKKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJCXzMiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPgkJCQorCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckNfMSIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InByb2hpYml0ZWQiLz4JCisJCTx4czphdHRyaWJ1dGUgbmFtZT0iYmFyQ18yIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icHJvaGliaXRlZCIvPgkKKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJDXzMiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJwcm9oaWJpdGVkIi8+IAorCTwveHM6Y29tcGxleFR5cGU+CisKKzwveHM6c2NoZW1hPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tNC0xLWVycl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tNC0xLWVycl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDIxZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbi00LTEtZXJyXzAueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIgeG1sbnM6Zm9vPSJodHRwOi8vRk9PIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBkZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTQtMS1lcnJfMC54c2QiPgorCTxiYXIuQSAvPgorCTxiYXIuQiAvPgorCTxiYXIuQyAvPgorPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTQtMS1lcnJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uLTQtMS1lcnJfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0MDBhYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tb2stcmVzdHJpY3Rpb24tNC0xLWVycl8wLnhzZApAQCAtMCwwICsxLDY5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCEtLSAKKwlTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IERlcml2YXRpb24gVmFsaWQgKFJlc3RyaWN0aW9uLCBDb21wbGV4KQorCisJNCBJZiB0aGVyZSBpcyBhbiB7YXR0cmlidXRlIHdpbGRjYXJkfSwgYWxsIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOgorCisJNC4xIFRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IG11c3QgYWxzbyBoYXZlIG9uZS4KKworCTQuMiBUaGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24ncyB7YXR0cmlidXRlIHdpbGRjYXJkfSdzIHtuYW1lc3BhY2UgY29uc3RyYWludH0gCisJbXVzdCBiZSBhIHN1YnNldCBvZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSdzIHthdHRyaWJ1dGUgd2lsZGNhcmR9J3Mge25hbWVzcGFjZSAKKwljb25zdHJhaW50fSwgYXMgZGVmaW5lZCBieSBXaWxkY2FyZCBTdWJzZXQgKKczLjEwLjYpLgorCisJNC4zIFVubGVzcyB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBpcyB0aGUgt3VyLXR5cGUgZGVmaW5pdGlvbrcsIHRoZSBjb21wbGV4IHR5cGUgCisJZGVmaW5pdGlvbidzIHthdHRyaWJ1dGUgd2lsZGNhcmR9J3Mge3Byb2Nlc3MgY29udGVudHN9IG11c3QgYmUgaWRlbnRpY2FsIHRvIG9yIHN0cm9uZ2VyIAorCXRoYW4gdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0ncyB7YXR0cmlidXRlIHdpbGRjYXJkfSdzIHtwcm9jZXNzIGNvbnRlbnRzfSwgCisJd2hlcmUgc3RyaWN0IGlzIHN0cm9uZ2VyIHRoYW4gbGF4IGlzIHN0cm9uZ2VyIHRoYW4gc2tpcC4KKy0tPgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIAorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIgorCT4KKwkKKwk8ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8Y29tcGxleFR5cGU+CisJCQk8c2VxdWVuY2U+CisJCQkJPGVsZW1lbnQgbmFtZT0iYmFyLkEiIHR5cGU9ImZvbzp0eXBlLkEiIC8+CisJCQkJPGVsZW1lbnQgbmFtZT0iYmFyLkIiIHR5cGU9ImZvbzp0eXBlLkIiIC8+CisJCQkJPGVsZW1lbnQgbmFtZT0iYmFyLkMiIHR5cGU9ImZvbzp0eXBlLkMiIC8+CisJCQk8L3NlcXVlbmNlPgorCQk8L2NvbXBsZXhUeXBlPiAgICAKKwk8L2VsZW1lbnQ+ICAKKworCTxjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLkEiPgorCQk8Y29tcGxleENvbnRlbnQ+CisJCQk8cmVzdHJpY3Rpb24gYmFzZT0iZm9vOmJhc2UudHlwZS5BIj4JCQkJICAJICAJCQkKKwkJCQk8YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNhbnkiIHByb2Nlc3NDb250ZW50cz0ic2tpcCIgLz4KKwkJCTwvcmVzdHJpY3Rpb24+CisJCTwvY29tcGxleENvbnRlbnQ+CisJPC9jb21wbGV4VHlwZT4gICAgCisKKwk8Y29tcGxleFR5cGUgbmFtZT0iYmFzZS50eXBlLkEiPgorCQk8YXR0cmlidXRlIG5hbWU9ImJhciIgdHlwZT0ic3RyaW5nIi8+CQkKKwk8L2NvbXBsZXhUeXBlPiAgICAKKworCTxjb21wbGV4VHlwZSBuYW1lPSJ0eXBlLkIiPgorCQk8Y29tcGxleENvbnRlbnQ+CisJCQk8cmVzdHJpY3Rpb24gYmFzZT0iZm9vOmJhc2UudHlwZS5CIj4JCQkJICAJICAJCQkKKwkJCQk8YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNhbnkiIHByb2Nlc3NDb250ZW50cz0ic2tpcCIgLz4KKwkJCTwvcmVzdHJpY3Rpb24+CisJCTwvY29tcGxleENvbnRlbnQ+CisJPC9jb21wbGV4VHlwZT4gICAgCisKKwk8Y29tcGxleFR5cGUgbmFtZT0iYmFzZS50eXBlLkIiPgorCQk8YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgcHJvY2Vzc0NvbnRlbnRzPSJza2lwIiAvPgkJCisJPC9jb21wbGV4VHlwZT4gICAgCisKKwk8Y29tcGxleFR5cGUgbmFtZT0idHlwZS5DIj4KKwkJPGNvbXBsZXhDb250ZW50PgorCQkJPHJlc3RyaWN0aW9uIGJhc2U9ImZvbzpiYXNlLnR5cGUuQyI+CQkJCSAgCSAgCQkJCisJCQkJPGFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9InNraXAiIC8+CisJCQk8L3Jlc3RyaWN0aW9uPgorCQk8L2NvbXBsZXhDb250ZW50PgorCTwvY29tcGxleFR5cGU+ICAgIAorCisJPGNvbXBsZXhUeXBlIG5hbWU9ImJhc2UudHlwZS5DIj4KKwkJPGFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjYW55IiBwcm9jZXNzQ29udGVudHM9ImxheCIgLz4JCQorCTwvY29tcGxleFR5cGU+ICAgIAorCis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tcmVzdHJpY3Rpb24tYW55QXR0cl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tcmVzdHJpY3Rpb24tYW55QXR0cl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmU3ZDNmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlBdHRyXzAueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmb28gCisJeG1sbnM6Zj0iaHR0cDovL0ZPTyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeG1sbnM6YmFyPSJodHRwOi8vQkFSIgorCXhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJmaWxlOi8vL2M6L2Rldi9saWJ4bWwyL3BhdGNoZXMvMjAwNC0wNS0xNy9kZXJpdmF0aW9uLXJlc3RyaWN0aW9uLWFueUF0dHJfMC54c2QiIAorCT4KKwk8YmFyIGJhckE9Im9vbyIgLz4KKzwvZm9vPgorICAgCisKKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLXJlc3RyaWN0aW9uLWFueUF0dHJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLXJlc3RyaWN0aW9uLWFueUF0dHJfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcyYzMxNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2Rlcml2YXRpb24tcmVzdHJpY3Rpb24tYW55QXR0cl8wLnhzZApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgCQorCWVsZW1lbnRGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiPgorCisJPHhzOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzOmNvbXBsZXhUeXBlPgorCQkgICAgPHhzOnNlcXVlbmNlPgorCQkJCTx4czplbGVtZW50IG5hbWU9ImJhciIgdHlwZT0idHlwZUEiLz4KKwkJCTwveHM6c2VxdWVuY2U+CisJCTwveHM6Y29tcGxleFR5cGU+CisJPC94czplbGVtZW50PgorCisJPHhzOmF0dHJpYnV0ZUdyb3VwIG5hbWU9ImF0dHJHckEiPgorCQk8eHM6YW55QXR0cmlidXRlIG5hbWVzcGFjZT0iIyN0YXJnZXROYW1lc3BhY2UiLz4KKwk8L3hzOmF0dHJpYnV0ZUdyb3VwPgorCisJPHhzOmNvbXBsZXhUeXBlIG5hbWU9InR5cGVBIj4JCQkJCisJCTx4czphdHRyaWJ1dGVHcm91cCByZWY9ImF0dHJHckEiIC8+CQkJCQkKKwkJPHhzOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjdGFyZ2V0TmFtZXNwYWNlIiBwcm9jZXNzQ29udGVudHM9ImxheCIvPgkKKwk8L3hzOmNvbXBsZXhUeXBlPgorCis8L3hzOnNjaGVtYT4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLXJlc3RyaWN0aW9uLWFueVR5cGUueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlUeXBlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODZjNTBhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlUeXBlLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBmaWxlOi8vL2M6L2Rldi9saWJ4bWwyL3BhdGNoZXMvMjAwNC0wNS0xNy9kZXJpdmF0aW9uLXJlc3RyaWN0aW9uLWFueVR5cGUueHNkIiAKKwliYXJBXzI9Inh4eCIvPgorICAgCisKKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXJpdmF0aW9uLXJlc3RyaWN0aW9uLWFueVR5cGUueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlUeXBlLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzIxN2QyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGVyaXZhdGlvbi1yZXN0cmljdGlvbi1hbnlUeXBlLnhzZApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgCisJeG1sbnM9Imh0dHA6Ly9GT08iIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyI+CisKKwk8eHM6ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8eHM6Y29tcGxleFR5cGU+CisJCQk8eHM6Y29tcGxleENvbnRlbnQ+CisJCQkJPHhzOmV4dGVuc2lvbiBiYXNlPSJ4czphbnlUeXBlIj4KKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJiYXJBXzEiIHR5cGU9InhzOnN0cmluZyIgIHVzZT0ib3B0aW9uYWwiLz4KKwkJCQkJPCEtLSBPSyAtLT4JCQkJCQkJCQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckFfMiIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJyZXF1aXJlZCIvPgorCQkJCQk8IS0tIE9LIC0tPgkJCQkJCQkJCQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJhckFfMyIgdHlwZT0ieHM6c3RyaW5nIiAgdXNlPSJwcm9oaWJpdGVkIi8+CisJCQkJCTwhLS0gT0sgLS0+CQorCQkJCTwveHM6ZXh0ZW5zaW9uPgorCQkJPC94czpjb21wbGV4Q29udGVudD4KKwkJPC94czpjb21wbGV4VHlwZT4KKwk8L3hzOmVsZW1lbnQ+CQorCis8L3hzOnNjaGVtYT4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXRlcjBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXRlcjBfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVhMWE0MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2RldGVyMF8wLnhtbApAQCAtMCwwICsxLDUgQEAKKzxib29rPgorICA8b2RkLXBhZ2U+Zmlyc3QgcGFnZTwvb2RkLXBhZ2U+CisgIDxldmVuLXBhZ2U+c2Vjb25kIHBhZ2U8L2V2ZW4tcGFnZT4KKyAgPG9kZC1wYWdlPnRoaXJkIHBhZ2U8L29kZC1wYWdlPgorPC9ib29rPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGV0ZXIwXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZGV0ZXIwXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiNWRhNjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kZXRlcjBfMC54c2QKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0ib2RkLXBhZ2UiIHR5cGU9InhzOnN0cmluZyIvPgorICA8eHM6ZWxlbWVudCBuYW1lPSJldmVuLXBhZ2UiIHR5cGU9InhzOnN0cmluZyIvPgorICA8eHM6ZWxlbWVudCBuYW1lPSJib29rIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgIDx4czpzZXF1ZW5jZSBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9Im9kZC1wYWdlIi8+CisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJldmVuLXBhZ2UiLz4KKyAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJvZGQtcGFnZSIgbWluT2NjdXJzPSIwIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZHVyXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZHVyXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlODQ5NDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kdXJfMC54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZHVyYXRpb24+CisgIDxzZWNvbmQxPlBUMC45Uzwvc2Vjb25kMT4KKyAgPHNlY29uZDI+UFQwLjFTPC9zZWNvbmQyPgorICA8c2Vjb25kMj5QVDAuOTk5OTk5Uzwvc2Vjb25kMj4KKyAgPG1vbnRoMT5QMFkyN0Q8L21vbnRoMT4KKyAgPG1vbnRoMT5QMjdEVDIzSDU5TTU5UzwvbW9udGgxPgorICA8bW9udGgyPlAwWTwvbW9udGgyPgorICA8eWVhcjE+UDM2N0RUMjNINTlNNTlTPC95ZWFyMT4KKyAgPHllYXIxPlAxM008L3llYXIxPgorICA8eWVhcjI+UDEyTTwveWVhcjI+CisgIDxtb250aDM+UFQ4NjM5OVM8L21vbnRoMz4KKzwvZHVyYXRpb24+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kdXJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9kdXJfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc0YzAzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2R1cl8wLnhzZApAQCAtMCwwICsxLDcyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHNkOmFubm90YXRpb24+CisgICAgPHhzZDpkb2N1bWVudGF0aW9uIHhtbDpsYW5nPSJlbiI+CisgICAgICBUZXN0aW5nIGR1cmF0aW9uIGRhdGEgdHlwZXMKKyAgICA8L3hzZDpkb2N1bWVudGF0aW9uPgorICA8L3hzZDphbm5vdGF0aW9uPgorICA8eHNkOmVsZW1lbnQgbmFtZT0iZHVyYXRpb24iPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICA8eHNkOmNob2ljZSBtaW5PY2N1cnM9IjEiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0ic2Vjb25kMSI+CisgICAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOmR1cmF0aW9uIj4KKyAgICAgICAgICAgICAgICA8eHNkOm1heEV4Y2x1c2l2ZSB2YWx1ZT0iUFQxUyIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluRXhjbHVzaXZlIHZhbHVlPSJQVDAuMVMiLz4KKyAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InNlY29uZDIiPgorICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpkdXJhdGlvbiI+CisgICAgICAgICAgICAgICAgPHhzZDptYXhJbmNsdXNpdmUgdmFsdWU9IlBUMVMiLz4KKyAgICAgICAgICAgICAgICA8eHNkOm1pbkluY2x1c2l2ZSB2YWx1ZT0iUFQwLjFTIi8+CisgICAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJtb250aDEiPgorICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpkdXJhdGlvbiI+CisgICAgICAgICAgICAgICAgPHhzZDptYXhFeGNsdXNpdmUgdmFsdWU9IlAxTSIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluRXhjbHVzaXZlIHZhbHVlPSJQME0iLz4KKyAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9Im1vbnRoMiI+CisgICAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOmR1cmF0aW9uIj4KKyAgICAgICAgICAgICAgICA8eHNkOm1heEluY2x1c2l2ZSB2YWx1ZT0iUDFNIi8+CisgICAgICAgICAgICAgICAgPHhzZDptaW5JbmNsdXNpdmUgdmFsdWU9IlAwTSIvPgorICAgICAgICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0ibW9udGgzIiB0eXBlPSJNU0QiLz4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0ieWVhcjEiPgorICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpkdXJhdGlvbiI+CisgICAgICAgICAgICAgICAgPHhzZDptYXhFeGNsdXNpdmUgdmFsdWU9IlAyWSIvPgorICAgICAgICAgICAgICAgIDx4c2Q6bWluRXhjbHVzaXZlIHZhbHVlPSJQMVkiLz4KKyAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InllYXIyIj4KKyAgICAgICAgICAgIDx4c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6ZHVyYXRpb24iPgorICAgICAgICAgICAgICAgIDx4c2Q6bWF4SW5jbHVzaXZlIHZhbHVlPSJQMlkiLz4KKyAgICAgICAgICAgICAgICA8eHNkOm1pbkluY2x1c2l2ZSB2YWx1ZT0iUDFZIi8+CisgICAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICA8L3hzZDpjaG9pY2U+CisgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKyAgPHhzZDpzaW1wbGVUeXBlIG5hbWU9Ik1TRCI+CisgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6ZHVyYXRpb24iPgorICAgICAgPHhzZDptYXhFeGNsdXNpdmUgdmFsdWU9IlBUMjRIIi8+CisgICAgICA8eHNkOm1pbkV4Y2x1c2l2ZSB2YWx1ZT0iLVBUMjRIIi8+CisgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgIDwveHNkOnNpbXBsZVR5cGU+Cis8L3hzZDpzY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VsZW0wXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbTBfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc0MWM1OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VsZW0wXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPGRvYy8+DQorDQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbTBfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbGVtMF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzViZjVmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbTBfMC54c2QKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzZDphbm5vdGF0aW9uPgorICAgIDx4c2Q6ZG9jdW1lbnRhdGlvbj4KKyAgICAgIFRlc3RpbmcgbWluIGFuZCBtYXggb2NjdXJhbmNlIGF0dHJpYnV0ZXMgb24gZWxlbWVudAorICAgIDwveHNkOmRvY3VtZW50YXRpb24+CisgIDwveHNkOmFubm90YXRpb24+CisKKyAgPHhzZDplbGVtZW50IG5hbWU9ImRvYyI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSdhJyBtaW5PY2N1cnM9JzAnIG1heE9jY3Vycz0nMycvPgorICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VsZW1lbnQtZXJyXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNDNmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhtbApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGVsZW1lbnQtZXJyXzAueHNkIi8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbGVtZW50LWVycl8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjYwNGM4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbWVudC1lcnJfMC54c2QKQEAgLTAsMCArMSwzOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIKKwl4bWxuczpmb289Imh0dHA6Ly9GT08iCisJeG1sbnM6Z29vPSJodHRwOi8vR09PIj4KKwkKKwk8eHNkOmVsZW1lbnQgbmFtZT0iYmFyIiB0eXBlPSJ4c2Q6c3RyaW5nIi8+CisJPHhzZDplbGVtZW50IHR5cGU9InhzZDpzdHJpbmciLz4KKyAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIiAKKwkJcmVmPSJmb286YmFyIiBtaW5PY2N1cnM9IjMiIG1heE9jY3Vycz0iMiIgCisJCWFic3RyYWN0PSJ0cnVlIiBibG9jaz0iZmx1dGUiCisJCWZvcm09InF1YWxpZmllZCIgaWQ9ImIxMiIgbmlsbGFibGU9InRydWUiIAorCQlzdWJzdGl0dXRpb25Hcm91cD0iZm9vOmJhciIgCisJCWRlZmF1bHQ9IkppbWkiIGZpeGVkPSJIZW5kcml4IiBmaW5hbD0iZmFudGFzeSI+CisKKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDplbGVtZW50IHJlZj0iZm9vOmJhciIgbmFtZT0ibXlvbXkiIG1pbk9jY3Vycz0iMyIgCisJCQkJCW1heE9jY3Vycz0iMiIgYWJzdHJhY3Q9InRydWUiIGJsb2NrPSJmbHV0ZSIKKwkJCQkJZm9ybT0icXVhbGlmaWVkIiBpZD0iYjEzIiBuaWxsYWJsZT0idHJ1ZSIgCisJCQkJCXN1YnN0aXR1dGlvbkdyb3VwPSJmb286YmFyIiB0eXBlPSJ4c2Q6c3RyaW5nIiAKKwkJCQkJZGVmYXVsdD0iSmltaSIgZml4ZWQ9IkhlbmRyaXgiIGZpbmFsPSJmYW50YXN5Ij4KKwkJCQkJPHhzZDpjb21wbGV4VHlwZS8+CisJCQkJCTx4c2Q6c2ltcGxlVHlwZS8+CisJCQkJPC94c2Q6ZWxlbWVudD4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0ibXlvbXkiIG1heE9jY3Vycz0iMCIKKwkJCQkJYWJzdHJhY3Q9InRydWUiIGJsb2NrPSJmbHV0ZSIKKwkJCQkJZm9ybT0icXVhbGlmaWVkIiBpZD0iYjE0IiBuaWxsYWJsZT0idHJ1ZSIgCisJCQkJCXN1YnN0aXR1dGlvbkdyb3VwPSJmb286YmFyIiB0eXBlPSJ4c2Q6c3RyaW5nIiAKKwkJCQkJZGVmYXVsdD0iSmltaSIgZml4ZWQ9IkhlbmRyaXgiIGZpbmFsPSJmYW50YXN5Ij4KKwkJCQkJPHhzZDpjb21wbGV4VHlwZS8+CisJCQkJCTx4c2Q6c2ltcGxlVHlwZS8+CisJCQkJPC94c2Q6ZWxlbWVudD4KKwkJCTwveHNkOnNlcXVlbmNlPgorCQk8L3hzZDpjb21wbGV4VHlwZT4KKworCTwveHNkOmVsZW1lbnQ+CisKKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VsZW1lbnQtbWlubWF4LWVycl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VsZW1lbnQtbWlubWF4LWVycl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmM1ZWMxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbWVudC1taW5tYXgtZXJyXzAueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uPSJlbGVtZW50LW1pbm1heC1lcnJfMC54c2QiPgorCTxiYXIvPgorPC9mb28+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbWVudC1taW5tYXgtZXJyXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZWxlbWVudC1taW5tYXgtZXJyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzODRlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbGVtZW50LW1pbm1heC1lcnJfMC54c2QKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImJhciIgbWluT2NjdXJzPSIxIiBtYXhPY2N1cnM9IjAiLz4KKwkJCTwveHNkOnNlcXVlbmNlPgorCQk8L3hzZDpjb21wbGV4VHlwZT4KKwk8L3hzZDplbGVtZW50PgorCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZW1wdHktdmFsdWVfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbXB0eS12YWx1ZV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzA1OGUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZW1wdHktdmFsdWVfMC54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGVsZW1lbnQxLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZW1wdHktdmFsdWVfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc0YmE4NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzEueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxlbGVtZW50MiBhdHQ9InRlc3QiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZW1wdHktdmFsdWVfMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUxN2Q1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VtcHR5LXZhbHVlXzEueHNkCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiCisJYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIj4KKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0ibXlEb3VibGUiPgorICAgIDx4czp1bmlvbiBtZW1iZXJUeXBlcz0ieHM6ZG91YmxlIj4KKyAgICAgIDx4czpzaW1wbGVUeXBlPgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4KKwkgIDx4czpwYXR0ZXJuIHZhbHVlPSJccyooTi9BKT9ccyoiLz4KKwk8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDwveHM6dW5pb24+CisgIDwveHM6c2ltcGxlVHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZWxlbWVudDEiIHR5cGU9Im15RG91YmxlIi8+CisgIDx4czplbGVtZW50IG5hbWU9ImVsZW1lbnQyIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2ltcGxlQ29udGVudD4KKyAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJteURvdWJsZSI+CisJICA8eHM6YXR0cmlidXRlIG5hbWU9ImF0dCIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICAgIDwveHM6ZXh0ZW5zaW9uPgorICAgICAgPC94czpzaW1wbGVDb250ZW50PgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZW1wdHlfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbXB0eV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTkwNmI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZW1wdHlfMC54bWwKQEAgLTAsMCArMSBAQAorPGludGVybmF0aW9uYWxQcmljZSBjdXJyZW5jeT0iRVVSIiB2YWx1ZT0iNDIzLjQ2Ii8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbXB0eV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VtcHR5XzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2ZTVmNDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9lbXB0eV8wLnhzZApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHNkOmVsZW1lbnQgbmFtZT0iaW50ZXJuYXRpb25hbFByaWNlIj4KKyAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgPHhzZDpjb21wbGV4Q29udGVudD4KKyAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6YW55VHlwZSI+CisgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0iY3VycmVuY3kiIHR5cGU9InhzZDpzdHJpbmciLz4KKyAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOmRlY2ltYWwiLz4KKyAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICA8L3hzZDpjb21wbGV4Q29udGVudD4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VtcHR5XzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZW1wdHlfMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM4MWMwOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2VtcHR5XzEueHNkCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzZDplbGVtZW50IG5hbWU9ImludGVybmF0aW9uYWxQcmljZSI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImN1cnJlbmN5IiB0eXBlPSJ4c2Q6c3RyaW5nIi8+CisgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOmRlY2ltYWwiLz4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24wXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZGQzNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24wXzAueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8YWRkcmVzc2VlPgorICA8Zm9yZW5hbWU+QWxiZXJ0PC9mb3JlbmFtZT4KKyAgPGZvcmVuYW1lPkFybm9sZDwvZm9yZW5hbWU+CisgIDxzdXJuYW1lPkdvcmU8L3N1cm5hbWU+CisgIDxnZW5lcmF0aW9uPkpyPC9nZW5lcmF0aW9uPgorPC9hZGRyZXNzZWU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24wXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODk3NTFhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMF8wLnhzZApAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBlcnNvbk5hbWUiPgorICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgIDx4czplbGVtZW50IG5hbWU9InRpdGxlIiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgIDx4czplbGVtZW50IG5hbWU9ImZvcmVuYW1lIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzdXJuYW1lIi8+CisgICAgPC94czpzZXF1ZW5jZT4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImV4dGVuZGVkTmFtZSI+CisgICAgPHhzOmNvbXBsZXhDb250ZW50PgorICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJwZXJzb25OYW1lIj4KKyAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImdlbmVyYXRpb24iIG1pbk9jY3Vycz0iMCIvPgorICAgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgPC94czpleHRlbnNpb24+CisgICAgPC94czpjb21wbGV4Q29udGVudD4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYWRkcmVzc2VlIiB0eXBlPSJleHRlbmRlZE5hbWUiLz4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWMzYTBjOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjFfMC54bWwKQEAgLTAsMCArMSBAQAorPHRpdGxlIGxhbmc9ImZyIj5zYWx1dDwvdGl0bGU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24xXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTExZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMV8wLnhzZApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0ic3RyaW5nMjU1Ij4KKyAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6dG9rZW4iPgorICAgICAgPHhzOm1heExlbmd0aCB2YWx1ZT0iMjU1Ii8+CisgICAgPC94czpyZXN0cmljdGlvbj4KKyAgPC94czpzaW1wbGVUeXBlPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ0aXRsZSI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0ic3RyaW5nMjU1Ij4KKyAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImxhbmciIHR5cGU9InhzOmxhbmd1YWdlIi8+CisgICAgICAgIDwveHM6ZXh0ZW5zaW9uPgorICAgICAgPC94czpzaW1wbGVDb250ZW50PgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMV8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc4MGNmNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjFfMS54bWwKQEAgLTAsMCArMSBAQAorPHRpdGxlIGxhbmd1ZT0iZnIiPnNhbHV0PC90aXRsZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjFfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24xXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkNjViYjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24xXzIueG1sCkBAIC0wLDAgKzEgQEAKKzx0aXRsZSBsYW5nPSJmciI+PHNhbHV0Lz48L3RpdGxlPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZXh0ZW5zaW9uMl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAyYzk4OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjJfMC54bWwKQEAgLTAsMCArMSw0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9teW5zIgorICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9teW5zIGV4dGVuc2lvbjJfMS54c2QiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2V4dGVuc2lvbjJfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24yXzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmYTg4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9leHRlbnNpb24yXzEueHNkCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisgICA8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKyAgICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly9teW5zIgorICAgICAgICAgICAgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9teW5zIgorICAgICAgICAgICAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIKKyAgICAgICAgICAgICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIgorICAgICAgICAgICAgICB4bWw6bGFuZz0iZW4iPgorCisgICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJkYXRhSW5saW5lVHlwZSI+CisgICAgICAgPHhzOmNvbXBsZXhDb250ZW50PgorICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ4czphbnlUeXBlIi8+CisgICAgICAgPC94czpjb21wbGV4Q29udGVudD4KKyAgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICAgCisgICAgIDx4czplbGVtZW50IG5hbWU9ImZvbyIgdHlwZT0iZGF0YUlubGluZVR5cGUiLz4KKworICAgPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9mYWNldC11bmlvblNULWVycjFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9mYWNldC11bmlvblNULWVycjFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ3ZGY2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ZhY2V0LXVuaW9uU1QtZXJyMV8wLnhtbApAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGZhY2V0LXVuaW9uU1QtZXJyMV8wLnhzZCI+dGlueTwvZm9vPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9mYWNldC11bmlvblNULWVycjFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9mYWNldC11bmlvblNULWVycjFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc2NjY4YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ZhY2V0LXVuaW9uU1QtZXJyMV8wLnhzZApAQCAtMCwwICsxLDI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgeG1sbnM6Zm9vPSJodHRwOi8vRk9PIj4KKworICAJPHhzZDplbGVtZW50IG5hbWU9ImZvbyIgdHlwZT0iZm9vOmZvb1R5cGUuQiIvPgorCisJPHhzZDpzaW1wbGVUeXBlIG5hbWU9ImZvb1R5cGUuQiI+CisJCTx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0iZm9vOmZvb1R5cGUuQSI+CisJCQk8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJtZWRpdW0iLz4KKwkJPC94c2Q6cmVzdHJpY3Rpb24+CisJPC94c2Q6c2ltcGxlVHlwZT4KKworCTx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJmb29UeXBlLkEiPgorICAgIAk8eHNkOnVuaW9uPgorICAgICAgCQk8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgIAkJPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6Tk1UT0tFTiI+CisgICAgICAgICAgCQkJPHhzZDplbnVtZXJhdGlvbiB2YWx1ZT0ic21hbGwiLz4KKyAgICAgICAgICAJCQk8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJtZWRpdW0iLz4KKyAgICAgICAgICAJCQk8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJsYXJnZSIvPgorICAgICAgICAJCTwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgCQk8L3hzZDpzaW1wbGVUeXBlPgorICAgIAk8L3hzZDp1bmlvbj4KKyAgCTwveHNkOnNpbXBsZVR5cGU+CisKKworCis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9mYWNldC13aGl0ZVNwYWNlXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmEyNmNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wLnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIgCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBmYWNldC13aGl0ZVNwYWNlXzAueHNkIj5obW1tCisKKwlmCQlmCWZmCQlmCisJPC9mb28+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZmFjZXQtd2hpdGVTcGFjZV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ZhY2V0LXdoaXRlU3BhY2VfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNlZjE0MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ZhY2V0LXdoaXRlU3BhY2VfMC54c2QKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgeG1sbnM9Imh0dHA6Ly9GT08iPgorCisJPHhzZDplbGVtZW50IG5hbWU9ImZvbyI+CisJCTx4c2Q6c2ltcGxlVHlwZT4KKwkJCTx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnN0cmluZyI+CisJCQkJPHhzZDp3aGl0ZVNwYWNlIHZhbHVlPSJyZXBsYWNlIi8+CQkJCQorCQkJPC94c2Q6cmVzdHJpY3Rpb24+CisJCTwveHNkOnNpbXBsZVR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9ncm91cDBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9ncm91cDBfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY1OGJhNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2dyb3VwMF8wLnhtbApAQCAtMCwwICsxLDMgQEAKKzxhdXRob3I+CisgIDxuYW1lPkZvbyBCYXI8L25hbWU+Cis8L2F1dGhvcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2dyb3VwMF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2dyb3VwMF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGZhMzkzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvZ3JvdXAwXzAueHNkCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czpncm91cCBuYW1lPSJuYW1lIj4KKyAgICA8eHM6Y2hvaWNlPgorICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImZpcnN0LW5hbWUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJtaWRkbGUtbmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibGFzdC1uYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjaG9pY2U+CisgIDwveHM6Z3JvdXA+CisgIDx4czplbGVtZW50IG5hbWU9ImF1dGhvciI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOmdyb3VwIHJlZj0ibmFtZSIvPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1MTM0NDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9oZXhiaW5hcnlfMC54bWwKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkX2hleEJpbmFyeT4KKyAgPGhleD4wMDwvaGV4PgorICA8aGV4PjAxMjM0NTY3ODlBQkNERUY8L2hleD4KKyAgPGhleD5hYmNkZWYwMTIzNDU2Nzg5PC9oZXg+CisgIDxoZXg+MDEyMzQ1Njc4OWFiY2RlZjwvaGV4PgorICA8aGV4PjAxMjM0NTY3ODlBQkNERUY8L2hleD4KKyAgPGhleD4wMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OUFCQ0RFRjwvaGV4PgorICA8aGV4PjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlBQkNERUY8L2hleD4KKyAgPGhleD4wMTIzNDU2Nzg5OTg3NjU0MzIxMDwvaGV4PgorICA8aGV4PjAwMTEyMjMzNDQ1NTY2Nzc4ODk5YUFiQmNDZERlRWZGPC9oZXg+CisgIDxoZXg+QTBCMUMyRDNFNEY1PC9oZXg+CisgIDwhLS0gbWluTGVuZ3RoIGFuZCBtYXhMZW5ndGggLS0+CisgIDxoZXgyPjAwPC9oZXgyPgorICA8aGV4Mj4wMDAwMDAwMDAwMDAwMDAwPC9oZXgyPgorICA8aGV4Mj4xMTIyMzM0NDU1NjY3Nzg4PC9oZXgyPgorICA8IS0tIGxlbmd0aCAtLT4KKyAgPGhleDM+YWJjZDwvaGV4Mz4KKyAgPGhleDM+MGVkMDwvaGV4Mz4KKzwveHNkX2hleEJpbmFyeT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2hleGJpbmFyeV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGE2YmVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzAueHNkCkBAIC0wLDAgKzEsMzUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwkgICAgZWxlbWVudEZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCIKKwkgICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIj4KKyAgPHhzZDphbm5vdGF0aW9uPgorICAgIDx4c2Q6ZG9jdW1lbnRhdGlvbiB4bWw6bGFuZz0iZW4iPgorICAgICAgICBUZXN0aW5nIGhleEJpbmFyeSBkYXRhIHR5cGVzCisgICAgPC94c2Q6ZG9jdW1lbnRhdGlvbj4KKyAgPC94c2Q6YW5ub3RhdGlvbj4KKyAgPHhzZDplbGVtZW50IG5hbWU9InhzZF9oZXhCaW5hcnkiPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICA8eHNkOmNob2ljZSBtaW5PY2N1cnM9IjEiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iaGV4IiB0eXBlPSJ4c2Q6aGV4QmluYXJ5Ii8+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImhleDIiPgorICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpoZXhCaW5hcnkiPgorICAgICAgICAgICAgICAgIDx4c2Q6bWF4TGVuZ3RoIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICAgICAgPHhzZDptaW5MZW5ndGggdmFsdWU9IjEiLz4KKyAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImhleDMiPgorICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpoZXhCaW5hcnkiPgorICAgICAgICAgICAgICAgIDx4c2Q6bGVuZ3RoIHZhbHVlPSIyIi8+CisgICAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICA8L3hzZDpjaG9pY2U+CisgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaGV4YmluYXJ5XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmMzQ4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9oZXhiaW5hcnlfMS54bWwKQEAgLTAsMCArMSwxNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIGFsbCAoZXhjZXB0IDIgZmlyc3QpIHNob3VsZCBmYWlsIHRvIHZhbGlkYXRlIC0tPgorPHhzZF9oZXhCaW5hcnk+CisgIDxoZXg+PC9oZXg+CisgIDxoZXgvPgorICA8aGV4PjA8L2hleD4KKyAgPGhleD4wMTIzNDU2Nzg5QUJDREVGR0g8L2hleD4KKyAgPGhleD4rYWJjZGVmMDEyMzQ1Njc4OTwvaGV4PgorICA8aGV4Pi0wMTIzNDU2Nzg5YWJjZGVmPC9oZXg+CisgIDwhLS0gbWluTGVuZ3RoIGFuZCBtYXhMZW5ndGggLS0+CisgIDxoZXgyPjExMjIzMzQ0NTU2Njc3ODg5OTwvaGV4Mj4KKyAgPCEtLSBsZW5ndGggLS0+CisgIDxoZXgzPmFiPC9oZXgzPgorICA8aGV4Mz4wMGZlZGM8L2hleDM+Cis8L3hzZF9oZXhCaW5hcnk+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pZGMta2V5cmVmLWVycjFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pZGMta2V5cmVmLWVycjFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMWQwYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2lkYy1rZXlyZWYtZXJyMV8wLnhtbApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxGb28KKwl4bWxucz0idXJuOnRlc3Q6Zm9vIgorCXhtbG5zOmZvbz0idXJuOnRlc3Q6Zm9vIgorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gaWRjLWtleXJlZl8xLnhzZCI+CisKKyAgICA8RGVmPgorICAgICAgICA8TGluayBmb286bGlua0tleT0iTDQiLz4KKyAgICA8L0RlZj4KKworICAgIDxSZWYgZm9vOmxpbmtSZWY9Ikw0Ii8+CisKKzwvRm9vPiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pZGMta2V5cmVmLWVycjFfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pZGMta2V5cmVmLWVycjFfMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNjNzY5ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2lkYy1rZXlyZWYtZXJyMV8xLnhzZApAQCAtMCwwICsxLDUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEKKyAgICB0YXJnZXROYW1lc3BhY2U9InVybjp0ZXN0OmZvbyIKKyAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisgICAgeG1sbnM6Zm9vPSJ1cm46dGVzdDpmb28iCisgICAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiCisgICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InF1YWxpZmllZCI+CisgIAorICAgPHhzOmVsZW1lbnQgbmFtZT0iTGluayI+CisgICAgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICAgICA8eHM6c2ltcGxlQ29udGVudD4KKyAgICAgICAgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0ieHM6c3RyaW5nIj4KKyAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImxpbmtLZXkiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPgorICAgICAgICAgICAgICAgPC94czpleHRlbnNpb24+CisgICAgICAgICAgIDwveHM6c2ltcGxlQ29udGVudD4KKyAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgPC94czplbGVtZW50PgorICAgICAgCisgICAgCisgIDwhLS0gIC0tPgorICA8eHM6ZWxlbWVudCBuYW1lPSJGb28iPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKwkgICAgICAgICAgCisgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRlZiI+CisgICAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImZvbzpMaW5rIi8+CisgICAgICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgICAgIDwveHM6ZWxlbWVudD4KKyAgICAgICAgCisgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlZiI+CisgICAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJsaW5rUmVmIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgICAgICA8L3hzOmVsZW1lbnQ+CisKKyAgICAgIDwveHM6c2VxdWVuY2U+CisJPC94czpjb21wbGV4VHlwZT4gICAgICAKKworCTx4czprZXkgbmFtZT0iTGlua0tleSI+CisJICA8eHM6c2VsZWN0b3IgeHBhdGg9Ii4vL2ZvbzpMaW5rIHwgLi8vZm9vOkxpbmsiLz4KKwkgIDx4czpmaWVsZCB4cGF0aD0iQGZvbzpsaW5rS2V5Ii8+CisJPC94czprZXk+CisKKwk8eHM6a2V5cmVmIG5hbWU9IkxpbmtLZXlSZWYiIHJlZmVyPSJmb286TGlua0tleSI+CisJICA8eHM6c2VsZWN0b3IgeHBhdGg9Ii4vL2ZvbzpSZWYiLz4KKwkgIDx4czpmaWVsZCB4cGF0aD0iQGZvbzpsaW5rUmVmIi8+CisJPC94czprZXlyZWY+ICAgIAorICA8L3hzOmVsZW1lbnQ+CisKKzwveHM6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydC00NTU5NTMueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0LTQ1NTk1My54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYxM2Q4ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydC00NTU5NTMueHNkCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+DQorPHhzOnNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cudGVtcHVyaS5vcmcvSW1wb3J0ZWRTY2hlbWEiIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiB4bWxuczp0bnM9Imh0dHA6Ly93d3cudGVtcHVyaS5vcmcvSW1wb3J0ZWRTY2hlbWEiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorICANCisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJBbm90aGVyVHlwZSI+DQorICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJCIj4NCisgICAgICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICAgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik15QiIgdHlwZT0ieHM6c3RyaW5nIiAvPg0KKyAgICAgICAgICA8L3hzOnNlcXVlbmNlPg0KKyAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkJJRCIgdHlwZT0ieHM6aW50Ii8+DQorICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAgICAgIDwveHM6ZWxlbWVudD4NCisgICAgPC94czpzZXF1ZW5jZT4NCisgIDwveHM6Y29tcGxleFR5cGU+DQorDQorICA8eHM6ZWxlbWVudCBuYW1lPSJBbm90aGVyRWxlbWVudCIgdHlwZT0idG5zOkFub3RoZXJUeXBlIj4NCisgICAgPHhzOmtleSBuYW1lPSJBbm90aGVyS2V5Ij4NCisgICAgIDx4czpzZWxlY3RvciB4cGF0aD0idG5zOkIiLz4NCisgICAgIDx4czpmaWVsZCB4cGF0aD0iQEJJRCIvPg0KKyAgICA8L3hzOmtleT4NCisgIDwveHM6ZWxlbWVudD4NCisNCis8L3hzOnNjaGVtYT4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQtYmFkLTFfMC5pbXAgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQtYmFkLTFfMC5pbXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDcwYzAxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydC1iYWQtMV8wLmltcApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpsYWxhbGEgCisJeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9CQVIiPgorPC94c2Q6bGFsYWxhPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDBfMC5pbXAgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQwXzAuaW1wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNDQ2ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQwXzAuaW1wCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8eHM6c2NoZW1hIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUubmV0L3htbHNjaGVtYTIiCisgICAgICAgICAgIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwkgICB4bWxucz0iaHR0cDovL2V4YW1wbGUubmV0L3htbHNjaGVtYTIiCisJICAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCI+CisKKzx4czpzaW1wbGVUeXBlIG5hbWU9InRmb28iPgorICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6Tk1UT0tFTiI+CisgICAgPHhzOm1heExlbmd0aCB2YWx1ZT0iMiIvPgorICA8L3hzOnJlc3RyaWN0aW9uPgorPC94czpzaW1wbGVUeXBlPgorCis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQwXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViYTdlM2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQwXzAueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGJhciB4bWxucz0iaHR0cDovL2V4YW1wbGUubmV0L3htbHNjaGVtYSIKKyAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKyAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZXhhbXBsZS5uZXQveG1sc2NoZW1hIHRlc3RJbXBvcnRUeXBlcy54c2QiPgorICA8Zm9vMT4KKyAgICB4eQorICA8L2ZvbzE+Cis8L2Jhcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDBfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQwXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NzNkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQwXzAueHNkCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8eHM6c2NoZW1hIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUubmV0L3htbHNjaGVtYSIKKyAgICAgICAgICAgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCSAgIHhtbG5zOm5zMT0iaHR0cDovL2V4YW1wbGUubmV0L3htbHNjaGVtYSIKKwkgICB4bWxuczpuczI9Imh0dHA6Ly9leGFtcGxlLm5ldC94bWxzY2hlbWEyIgorCSAgIHhtbG5zPSJodHRwOi8vZXhhbXBsZS5uZXQveG1sc2NoZW1hIgorCSAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiPgorCis8eHM6aW1wb3J0IG5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUubmV0L3htbHNjaGVtYTIiCisgICAgICAgICAgIHNjaGVtYUxvY2F0aW9uPSJpbXBvcnQwXzAuaW1wIi8+CisKKzx4czplbGVtZW50IG5hbWU9ImJhciI+CisgIDx4czpjb21wbGV4VHlwZT4KKyAgICA8eHM6c2VxdWVuY2U+CisgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJmb28xIiB0eXBlPSJuczI6dGZvbyIvPgorICAgIDwveHM6c2VxdWVuY2U+CisgIDwveHM6Y29tcGxleFR5cGU+Cis8L3hzOmVsZW1lbnQ+CisKKworPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQxXzAuaW1wIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0MV8wLmltcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2ZkMmVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0MV8wLmltcApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgCisJeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9CQVIiPgorCisJPHhzZDplbGVtZW50IG5hbWU9ImJhci5BIi8+CQorCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0MV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA0NjUyMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDFfMC54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tIFRoaXMgb25lIHRlc3RzIHRoZSBkb2N1bWVudCBhY2Nlc3Mgc3RyYXRlZ3kgZm9yIDxpbXBvcnQ+IC0tPgorPGZvbzpmb28gCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAKKwl4bWxuczpiYXI9Imh0dHA6Ly9CQVIiCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vRk9PIGltcG9ydDFfMC54c2QiPgorCTxmb286YmFyLz4KKwk8YmFyOmJhci5BLz4KKwk8YmFyOmJhci5CLz4KKzwvZm9vOmZvbz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0MV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDkxMzljCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0MV8wLnhzZApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0gVGhpcyBvbmUgdGVzdHMgdGhlIGRvY3VtZW50IGFjY2VzcyBzdHJhdGVneSBmb3IgPGltcG9ydD4gLS0+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIKKwl4bWxuczpmb289Imh0dHA6Ly9GT08iCisJeG1sbnM6YmFyPSJodHRwOi8vQkFSIgorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKwk8eHNkOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9CQVIiIC8+CisJCQorCTwhLS0gVGhpcyBkb2N1bWVudCBkb2VzIG5vdCBleGlzdC4gLS0+CisJPHhzZDppbXBvcnQgbmFtZXNwYWNlPSJodHRwOi8vQkFSIiBzY2hlbWFMb2NhdGlvbj0iaW1wb3J0MV8wYmMuaW1wIiAvPgorCTwhLS0gVGhpcyBkb2N1bWVudCBpcyBvay4gLS0+CisJPHhzZDppbXBvcnQgbmFtZXNwYWNlPSJodHRwOi8vQkFSIiBzY2hlbWFMb2NhdGlvbj0iaW1wb3J0MV8wLmltcCIgLz4KKwk8IS0tIFRoaXMgZG9jdW1lbnQgd2lsbCBiZSBza2lwcGVkLCBzaW5jZSBhIHNjaGVtYSBmb3IgdGhlIG5hbWVzcGFjZQorCSAgICAgImh0dHA6Ly9CQVIiIHdhcyBhbHJlYWR5IGltcG9ydGVkLiAtLT4KKwk8eHNkOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9CQVIiIHNjaGVtYUxvY2F0aW9uPSJpbXBvcnQxXzBiLmltcCIgLz4KKwkKKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8eHNkOmNvbXBsZXhUeXBlPgorCQkJPHhzZDpzZXF1ZW5jZT4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iYmFyIi8+CQkJCQkJCQkKKwkJCQk8eHNkOmVsZW1lbnQgcmVmPSJiYXI6YmFyLkEiLz4KKwkJCQk8IS0tIFRoZSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkIHNpbmNlCisJCQkJICAgICAiaW1wb3J0MV8wYi5pbXAiIHdhcyBza2lwcGVkIC0tPgorCQkJCTx4c2Q6ZWxlbWVudCByZWY9ImJhcjpiYXIuQiIvPgkJCQkKKwkJCTwveHNkOnNlcXVlbmNlPgkKKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQxXzBiLmltcCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDFfMGIuaW1wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYmRkZDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQxXzBiLmltcApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgCisJeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9CQVIiPgorCisJPHhzZDplbGVtZW50IG5hbWU9ImJhci5CIi8+CQorCis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0Ml8wLmltcCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDJfMC5pbXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk4ZTZiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2ltcG9ydDJfMC5pbXAKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIgorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyIKKwl4bWxuczpiYXI9Imh0dHA6Ly9CQVIiCisJZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiPgorCisJPCEtLSBXZSBuZWVkIHRvIGltcG9ydCB0aGUgbmFtZXNwYWNlIGZvciB0aGUgc2NoZW1hIHRvIGJlIHZhbGlkLiAtLT4KKwk8eHNkOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9CQVIiLz4KKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8eHNkOmNvbXBsZXhUeXBlPgkJCQkJCQkKKwkJCTx4c2Q6c2VxdWVuY2U+CQkJCQorCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28uQiIgdHlwZT0iYmFyOmZvb1R5cGUiLz4KKwkJCQk8eHNkOmVsZW1lbnQgcmVmPSJiYXI6YmFyIi8+CQkJCQorCQkJPC94c2Q6c2VxdWVuY2U+CisJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJmb28uYXR0ciIvPgkJCQorCQkJCisJCTwveHNkOmNvbXBsZXhUeXBlPgkJCisJPC94c2Q6ZWxlbWVudD4KKworCQorCis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQyXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0Ml8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzcyM2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0Ml8wLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmb286Zm9vIHhtbG5zOmZvbz0iaHR0cDovL0ZPTyIKKwl4bWxuczpiYXI9Imh0dHA6Ly9CQVIiCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9CQVIgaW1wb3J0Ml8wLnhzZCIgZm9vLmF0dHI9Im9vIj4KKwk8Zm9vOmZvby5CLz4KKwk8YmFyOmJhci8+Cis8L2Zvbzpmb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbXBvcnQyXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0Ml8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTIyYmVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW1wb3J0Ml8wLnhzZApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0JBUiIKKwllbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCI+CisKKwk8eHNkOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly9GT08iIHNjaGVtYUxvY2F0aW9uPSJpbXBvcnQyXzAuaW1wIi8+CisKKwk8eHNkOnNpbXBsZVR5cGUgbmFtZT0iZm9vVHlwZSI+CisJCTx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnN0cmluZyI+CisJCQk8eHNkOm1heExlbmd0aCB2YWx1ZT0iMTAiLz4KKwkJPC94c2Q6cmVzdHJpY3Rpb24+CisJPC94c2Q6c2ltcGxlVHlwZT4KKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJiYXIiPgorCQk8eHNkOmNvbXBsZXhUeXBlPgorCQkJPHhzZDpzZXF1ZW5jZT4KKwkJCQk8eHNkOmVsZW1lbnQgcmVmPSJmb286Zm9vIiBtaW5PY2N1cnM9IjAiLz4KKwkJCTwveHNkOnNlcXVlbmNlPgorCQk8L3hzZDpjb21wbGV4VHlwZT4KKwk8L3hzZDplbGVtZW50PgorCisKKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUxXzAuaW5jIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW5jbHVkZTFfMC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc0NWFiZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUxXzAuaW5jCkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgPgorCisJPHhzZDpzaW1wbGVUeXBlIG5hbWU9ImJhclR5cGUiPgorCQk8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpzdHJpbmciPgorCQkJPHhzZDptYXhMZW5ndGggdmFsdWU9IjEwIiAvPgorCQk8L3hzZDpyZXN0cmljdGlvbj4KKwk8L3hzZDpzaW1wbGVUeXBlPgorCisJPHhzZDphdHRyaWJ1dGUgbmFtZT0iYmFyIiB0eXBlPSJiYXJUeXBlIiBmaXhlZD0ibyIvPgorCisJPHhzZDplbGVtZW50IG5hbWU9ImJhci5CIiB0eXBlPSJ4c2Q6YW55VVJJIiBibG9jaz0iI2FsbCIgbmlsbGFibGU9InRydWUiIGZpbmFsPSJyZXN0cmljdGlvbiBleHRlbnNpb24iLz4KKwkKKwk8eHNkOmVsZW1lbnQgbmFtZT0iYmFyIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImJhci5BIiBibG9jaz0icmVzdHJpY3Rpb24iIGZvcm09InF1YWxpZmllZCIgbmlsbGFibGU9InRydWUiIC8+CisJCQkJPHhzZDplbGVtZW50IHJlZj0iYmFyLkIiLz4KKwkJCTwveHNkOnNlcXVlbmNlPgorCQkJCisJCQk8eHNkOmF0dHJpYnV0ZSByZWY9ImJhciIgeG1sOmxhbmc9IkRFIj4KKwkJCQk8eHNkOmFubm90YXRpb24vPgorCQkJPC94c2Q6YXR0cmlidXRlPgorCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0idXJpIiB0eXBlPSJ4c2Q6dG9rZW4iIC8+CisJCTwveHNkOmNvbXBsZXhUeXBlPgorCTwveHNkOmVsZW1lbnQ+CisKKzwveHNkOnNjaGVtYT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUxXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmZmVlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlMV8wLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpmb28geG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gaW5jbHVkZTFfMC54c2QiIGZvbzpyZXE9Im9vIj4KKwk8Zm9vOmJhciBmb286YmFyPSJvIiAgdXJpPSJhc2QiPjxmb286YmFyLkEvPjxmb286YmFyLkI+YW55VVJJPC9mb286YmFyLkI+PC9mb286YmFyPgorCTxib28vPgorCQorPC9mb286Zm9vPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW5jbHVkZTFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU2ZDgzNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUxXzAueHNkCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiB2ZXJzaW9uPSIiPgorCTx4c2Q6aW5jbHVkZSBzY2hlbWFMb2NhdGlvbj0iaW5jbHVkZTFfMC5pbmMiIC8+CisJPHhzZDplbGVtZW50IG5hbWU9ImZvbyI+CisJCTx4c2Q6Y29tcGxleFR5cGU+CisJCQk8eHNkOnNlcXVlbmNlPgorCQkJCTx4c2Q6ZWxlbWVudCByZWY9ImZvbzpiYXIiLz4KKwkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iYm9vIiB0eXBlPSJ4c2Q6c3RyaW5nIi8+CisJCQk8L3hzZDpzZXF1ZW5jZT4JCisJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJyZXEiIHVzZT0icmVxdWlyZWQiIGZvcm09InF1YWxpZmllZCIvPgkJCisJCTwveHNkOmNvbXBsZXhUeXBlPgorCTwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW5jbHVkZTJfMC5pbmMgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlMl8wLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTA0Y2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW5jbHVkZTJfMC5pbmMKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSAKKwl4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorCWJsb2NrRGVmYXVsdD0iZXh0ZW5zaW9uIiBmaW5hbERlZmF1bHQ9ImV4dGVuc2lvbiI+CisKKwk8eHNkOmVsZW1lbnQgbmFtZT0iYmFyIj4KKwkJPHhzZDpjb21wbGV4VHlwZT4KKwkJCTx4c2Q6c2VxdWVuY2U+CisJCQkJPHhzZDplbGVtZW50IG5hbWU9ImJhci5CIiB0eXBlPSJ4c2Q6YW55VHlwZSIvPgorCQkJPC94c2Q6c2VxdWVuY2U+CisJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJiYXIiLz4KKwkJPC94c2Q6Y29tcGxleFR5cGU+CisJCQorCTwveHNkOmVsZW1lbnQ+CisKKzwveHNkOnNjaGVtYT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlMl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUyXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NjBiOTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlMl8wLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpmb28gCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gaW5jbHVkZTJfMC54c2QiPgorCTxmb286YmFyIGZvbzpiYXI9Im9vbyI+CisJCTxmb286YmFyLkIgZm9vOmJhcj0ib29vIi8+CisJPC9mb286YmFyPgkKKzwvZm9vOmZvbz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlMl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNjMxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlMl8wLnhzZApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIgorCXhtbG5zOmZvbz0iaHR0cDovL0ZPTyI+CisJPHhzZDppbmNsdWRlIHNjaGVtYUxvY2F0aW9uPSJpbmNsdWRlMl8wLmluYyIgLz4KKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorCQk8eHNkOmNvbXBsZXhUeXBlPgorCQkJPHhzZDpzZXF1ZW5jZT4KKwkJCQk8eHNkOmVsZW1lbnQgcmVmPSJmb286YmFyIi8+CQkJCQorCQkJPC94c2Q6c2VxdWVuY2U+CQorCQk8L3hzZDpjb21wbGV4VHlwZT4KKwk8L3hzZDplbGVtZW50PgorPC94c2Q6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUzXzAuaW5jIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW5jbHVkZTNfMC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA0MzZlOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUzXzAuaW5jCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSAKKwl4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKwk8eHNkOmVsZW1lbnQgbmFtZT0iYmFyIiAvPgorPC94c2Q6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUzXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaW5jbHVkZTNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg4MGNjNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUzXzAueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOmZvbyAKKwl4bWxuczpmb289Imh0dHA6Ly9GT08iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBpbmNsdWRlM18wLnhzZCI+CisJPGZvbzpiYXIgLz4KKzwvZm9vOmZvbz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlM18wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2luY2x1ZGUzXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMTk0ODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pbmNsdWRlM18wLnhzZApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIKKwl0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIj4KKwk8eHNkOmluY2x1ZGUgc2NoZW1hTG9jYXRpb249ImluY2x1ZGUzXzAuaW5jIiAvPgorCisJPHhzZDplbGVtZW50IG5hbWU9ImJhciIvPgorCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iLz4KKzwveHNkOnNjaGVtYT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pdGVtXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaXRlbV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWQwNzkwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaXRlbV8wLnhtbApAQCAtMCwwICsxLDYgQEAKKzxJdGVtIHBhcnROdW09IjkyNi1BQSIgc2hpcEJ5PSJhaXIiPgorPHByb2R1Y3ROYW1lPmZvbzwvcHJvZHVjdE5hbWU+Cis8cXVhbnRpdHk+MjwvcXVhbnRpdHk+Cis8VVNQcmljZT4xLjA8L1VTUHJpY2U+Cis8Y29tbWVudD5ObyBjb21tZW50ICE8L2NvbW1lbnQ+Cis8L0l0ZW0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9pdGVtXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaXRlbV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTVlMDZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaXRlbV8wLnhzZApAQCAtMCwwICsxLDM5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIvPgorICA8IS0tIFN0b2NrIEtlZXBpbmcgVW5pdCwgYSBjb2RlIGZvciBpZGVudGlmeWluZyBwcm9kdWN0cyAtLT4KKyAgPHhzZDpzaW1wbGVUeXBlIG5hbWU9IlNLVSI+CisgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6c3RyaW5nIj4KKyAgICAgIDx4c2Q6cGF0dGVybiB2YWx1ZT0iXGR7M30tW0EtWl17Mn0iLz4KKyAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgPHhzZDplbGVtZW50IG5hbWU9Ikl0ZW0iPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0icHJvZHVjdE5hbWUiIHR5cGU9InhzZDpzdHJpbmciLz4KKyAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InF1YW50aXR5Ij4KKyAgICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpwb3NpdGl2ZUludGVnZXIiPgorICAgICAgICAgICAgICA8eHNkOm1heEV4Y2x1c2l2ZSB2YWx1ZT0iMTAwIi8+CisgICAgICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iVVNQcmljZSIgdHlwZT0ieHNkOmRlY2ltYWwiLz4KKyAgICAgICAgPHhzZDplbGVtZW50IHJlZj0iY29tbWVudCIgbWluT2NjdXJzPSIwIi8+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJzaGlwRGF0ZSIgdHlwZT0ieHNkOmRhdGUiIG1pbk9jY3Vycz0iMCIvPgorICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJwYXJ0TnVtIiB0eXBlPSJTS1UiIHVzZT0icmVxdWlyZWQiLz4KKyAgICAgIDwhLS0gYWRkIHdlaWdodEtnIGFuZCBzaGlwQnkgYXR0cmlidXRlcyAtLT4KKyAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9IndlaWdodEtnIiB0eXBlPSJ4c2Q6ZGVjaW1hbCIvPgorICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ic2hpcEJ5Ij4KKyAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnN0cmluZyI+CisgICAgICAgICAgICA8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJhaXIiLz4KKyAgICAgICAgICAgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9ImxhbmQiLz4KKyAgICAgICAgICAgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9ImFueSIvPgorICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgICAgPC94c2Q6YXR0cmlidXRlPgorICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICA8L3hzZDplbGVtZW50PgorPC94c2Q6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvaXRlbV8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2l0ZW1fMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NmOTY2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2l0ZW1fMS54c2QKQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciLz4KKzwhLS0gU3RvY2sgS2VlcGluZyBVbml0LCBhIGNvZGUgZm9yIGlkZW50aWZ5aW5nIHByb2R1Y3RzIC0tPgorICA8eHNkOnNpbXBsZVR5cGUgbmFtZT0iU0tVIj4KKyAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpzdHJpbmciPgorICAgICAgPHhzZDpwYXR0ZXJuIHZhbHVlPSJcZHszfS1bQS1aXXsyfSIvPgorICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICA8L3hzZDpzaW1wbGVUeXBlPgorICA8eHNkOmVsZW1lbnQgbmFtZT0iSXRlbSI+CisgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJwcm9kdWN0TmFtZSIgdHlwZT0ieHNkOnN0cmluZyIvPgorICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0icXVhbnRpdHkiPgorICAgICAgICAgIDx4c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnBvc2l0aXZlSW50ZWdlciI+CisgICAgICAgICAgICAgIDx4c2Q6bWF4RXhjbHVzaXZlIHZhbHVlPSIxMDAiLz4KKyAgICAgICAgICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJVU1ByaWNlIiB0eXBlPSJ4c2Q6ZGVjaW1hbCIvPgorICAgICAgICA8eHNkOmVsZW1lbnQgcmVmPSJjb21tZW50IiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InNoaXBEYXRlIiB0eXBlPSJ4c2Q6ZGF0ZSIgbWluT2NjdXJzPSIwIi8+CisgICAgICA8L3hzZDpzZXF1ZW5jZT4KKzwhLS0gYXR0cmlidXRlR3JvdXAgcmVwbGFjZXMgaW5kaXZpZHVhbCBkZWNsYXJhdGlvbnMgLS0+CisgICAgICA8eHNkOmF0dHJpYnV0ZUdyb3VwIHJlZj0iSXRlbURlbGl2ZXJ5Ii8+CisgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDwveHNkOmVsZW1lbnQ+CisgIDx4c2Q6YXR0cmlidXRlR3JvdXAgbmFtZT0iSXRlbURlbGl2ZXJ5Ij4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJwYXJ0TnVtIiB0eXBlPSJTS1UiIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ3ZWlnaHRLZyIgdHlwZT0ieHNkOmRlY2ltYWwiLz4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJzaGlwQnkiPgorICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpzdHJpbmciPgorICAgICAgICAgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9ImFpciIvPgorICAgICAgICAgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9ImxhbmQiLz4KKyAgICAgICAgICA8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJhbnkiLz4KKyAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICA8L3hzZDpzaW1wbGVUeXBlPgorICAgIDwveHNkOmF0dHJpYnV0ZT4KKyAgPC94c2Q6YXR0cmlidXRlR3JvdXA+Cis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9sZW5ndGgxXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGVuZ3RoMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYThjZDNmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGVuZ3RoMV8wLnhtbApAQCAtMCwwICsxIEBACis8d2lkdGggdW5pdD0iY20iPjI1PC93aWR0aD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2xlbmd0aDFfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9sZW5ndGgxXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMWJhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9sZW5ndGgxXzAueHNkCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0ibGVuZ3RoMSI+CisgICAgPHhzOnNpbXBsZUNvbnRlbnQ+CisgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InhzOm5vbk5lZ2F0aXZlSW50ZWdlciI+CisgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0idW5pdCIgdHlwZT0ieHM6Tk1UT0tFTiIvPgorICAgICAgPC94czpleHRlbnNpb24+CisgICAgPC94czpzaW1wbGVDb250ZW50PgorICA8L3hzOmNvbXBsZXhUeXBlPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ3aWR0aCIgdHlwZT0ibGVuZ3RoMSIvPgorPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9sZW5ndGgyXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGVuZ3RoMl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Yzg1MWRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGVuZ3RoMl8wLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRlcHRoPgorICA8c2l6ZT4yNTwvc2l6ZT4KKyAgPHVuaXQ+Y208L3VuaXQ+Cis8L2RlcHRoPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGVuZ3RoMl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2xlbmd0aDJfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkNzNjMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2xlbmd0aDJfMC54c2QKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJsZW5ndGgyIj4KKyAgICA8eHM6Y29tcGxleENvbnRlbnQ+CisgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6YW55VHlwZSI+CisgICAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzaXplIiB0eXBlPSJ4czpub25OZWdhdGl2ZUludGVnZXIiLz4KKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ1bml0IiB0eXBlPSJ4czpOTVRPS0VOIi8+CisgICAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6Y29tcGxleENvbnRlbnQ+CisgIDwveHM6Y29tcGxleFR5cGU+CisgIDx4czplbGVtZW50IG5hbWU9ImRlcHRoIiB0eXBlPSJsZW5ndGgyIi8+Cis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2xlbmd0aDNfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9sZW5ndGgzXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjODUxZGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9sZW5ndGgzXzAueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZGVwdGg+CisgIDxzaXplPjI1PC9zaXplPgorICA8dW5pdD5jbTwvdW5pdD4KKzwvZGVwdGg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9sZW5ndGgzXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGVuZ3RoM18wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTdlNjg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGVuZ3RoM18wLnhzZApAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Imxlbmd0aDMiPgorICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgIDx4czplbGVtZW50IG5hbWU9InNpemUiIHR5cGU9InhzOm5vbi1wb3NpdGl2ZS1pbnRlZ2VyIi8+CisgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ1bml0IiB0eXBlPSJ4czpOTVRPS0VOIi8+CisgICAgPC94czpzZXF1ZW5jZT4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZGVwdGgiIHR5cGU9Imxlbmd0aDMiLz4KKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGlzdDBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNThmZThiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGlzdDBfMC54bWwKQEAgLTAsMCArMSw2IEBACis8dGVzdD4KKyAgPHN0cmluZz5oZWxsbyB3b3JsZDwvc3RyaW5nPgorICA8c3RyaW5nPmhlbGxvIHdvcmxkPC9zdHJpbmc+CisgIDxzdHJpbmc+aGVsbG8gd29ybGQ8L3N0cmluZz4KKyAgPHN0cmluZz5oZWxsbyB3b3JsZDwvc3RyaW5nPgorPC90ZXN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGlzdDBfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2Q3ZDY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbGlzdDBfMC54c2QKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idGVzdCI+CisgICAgPHhzOmFubm90YXRpb24+CisgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj5Db21tZW50IGRlc2NyaWJpbmcgeW91ciByb290IGVsZW1lbnQ8L3hzOmRvY3VtZW50YXRpb24+CisgICAgPC94czphbm5vdGF0aW9uPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ic3RyaW5nIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMiIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2xpc3QwXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NzhlNWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzx0ZXN0PgorICA8c3RyaW5nPmhlbGxvIHdvcmxkPC9zdHJpbmc+Cis8L3Rlc3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8xLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2xpc3QwXzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NjYwNzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8xLnhzZApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0Ij4KKyAgICA8eHM6YW5ub3RhdGlvbj4KKyAgICAgIDx4czpkb2N1bWVudGF0aW9uPkNvbW1lbnQgZGVzY3JpYmluZyB5b3VyIHJvb3QgZWxlbWVudDwveHM6ZG9jdW1lbnRhdGlvbj4KKyAgICA8L3hzOmFubm90YXRpb24+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzdHJpbmciIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIyIiBtYXhPY2N1cnM9IjMiLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL2xpc3QwXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NGQ0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9saXN0MF8yLnhtbApAQCAtMCwwICsxLDQgQEAKKzx0ZXN0PgorICA8c3RyaW5nPmhlbGxvIHdvcmxkPC9zdHJpbmc+CisgIDxzdHJpbmc+aGVsbG8gd29ybGQ8L3N0cmluZz4KKzwvdGVzdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL21peGVkMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL21peGVkMF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODY0MzQzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbWl4ZWQwXzAueG1sCkBAIC0wLDAgKzEgQEAKKzxteT54PC9teT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL21peGVkMF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL21peGVkMF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODIyMjZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbWl4ZWQwXzAueHNkCkBAIC0wLDAgKzEsNSBAQAorPHhzOnNjaGVtYSB4bWxuczp4cz0naHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEnPgorIDx4czplbGVtZW50IG5hbWU9J215Jz4KKyAgPHhzOmNvbXBsZXhUeXBlIG1peGVkPSd0cnVlJy8+CisgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9taXhlZDFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9taXhlZDFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhjZjYzMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL21peGVkMV8wLnhtbApAQCAtMCwwICsxIEBACis8bXkgbXlhdHRyPSd5Jz54PC9teT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL21peGVkMV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL21peGVkMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWVhNmNjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbWl4ZWQxXzAueHNkCkBAIC0wLDAgKzEsNyBAQAorPHhzOnNjaGVtYSB4bWxuczp4cz0naHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEnPgorIDx4czplbGVtZW50IG5hbWU9J215Jz4KKyAgPHhzOmNvbXBsZXhUeXBlIG1peGVkPSd0cnVlJz4KKyAgIDx4czphdHRyaWJ1dGUgbmFtZT0nbXlhdHRyJyB0eXBlPSd4czpzdHJpbmcnIHVzZT0ncmVxdWlyZWQnLz4KKyAgPC94czpjb21wbGV4VHlwZT4KKyA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2JhZjFmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzAueG1sCkBAIC0wLDAgKzEsMiBAQAorPGZvbyB4bWxucz0iaHR0cDovL2V4YW1wbGUuY29tL3hzZC9ucyIgaWQ9ImFiYyIvPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczBfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczBfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg5NTFkNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMF8wLnhzZApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJICAgIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2V4YW1wbGUuY29tL3hzZC9ucyIKKyAgICAgICAgICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIgorCSAgICBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiPgorICA8eHNkOmVsZW1lbnQgbmFtZT0iZm9vIj4KKyAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgPHhzZDpzaW1wbGVDb250ZW50PgorICAgICAgICA8eHNkOmV4dGVuc2lvbiBiYXNlPSJ4c2Q6c3RyaW5nIj4KKyAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHNkOklEIi8+CisgICAgICAgIDwveHNkOmV4dGVuc2lvbj4KKyAgICAgIDwveHNkOnNpbXBsZUNvbnRlbnQ+CisgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMF8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMF8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTUwZjVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzEueG1sCkBAIC0wLDAgKzEsMiBAQAorPG46Zm9vIHhtbG5zOm49Imh0dHA6Ly9leGFtcGxlLmNvbS94c2QvbnMiIGlkPSJhYmMiLz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmMmU3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczBfMS54c2QKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCSAgICB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9leGFtcGxlLmNvbS94c2QvbnMiCisgICAgICAgICAgICBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIKKwkgICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InF1YWxpZmllZCI+CisgIDx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNpbXBsZUNvbnRlbnQ+CisgICAgICAgIDx4c2Q6ZXh0ZW5zaW9uIGJhc2U9InhzZDpzdHJpbmciPgorICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4c2Q6SUQiLz4KKyAgICAgICAgPC94c2Q6ZXh0ZW5zaW9uPgorICAgICAgPC94c2Q6c2ltcGxlQ29udGVudD4KKyAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgPC94c2Q6ZWxlbWVudD4KKzwveHNkOnNjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMmJkYmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczBfMi54bWwKQEAgLTAsMCArMSwyIEBACis8Zm9vIGlkPSJhYmMiLz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNWMxZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczBfMy54bWwKQEAgLTAsMCArMSwyIEBACis8bjpmb28geG1sbnM6bj0iaHR0cDovL2V4YW1wbGUuY29tL3hzZC9ucyIgbjppZD0iYWJjIi8+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMF80LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMF80LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2RkNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMwXzQueG1sCkBAIC0wLDAgKzEsMyBAQAorPGw6Zm9vIHhtbG5zOmw9Imh0dHA6Ly9leGFtcGxlLmNvbS94c2QvbnMiCisgICAgICAgeG1sbnM6Yj0iaHR0cDovL2V4YW1wbGUuY29tL3hzZC9ucyIgYjppZD0iYWJjIi8+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTBlZDI2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMxXzAueG1sCkBAIC0wLDAgKzEsMiBAQAorPG15IHhtbG5zPSdodHRwOi8vbXkubnMvJworPnNvbWU8L215PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMxXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3N2VjNTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczFfMC54c2QKQEAgLTAsMCArMSwzIEBACis8c2NoZW1hIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYScgdGFyZ2V0TmFtZXNwYWNlPSdodHRwOi8vbXkubnMvJz4KKyA8ZWxlbWVudCBuYW1lPSdteScgdHlwZT0nc3RyaW5nJy8+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMl8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2JiMTI2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnMyXzAueG1sCkBAIC0wLDAgKzEgQEAKKzxtOm15IHhtbG5zOm09J2h0dHA6Ly9teS5ucy8nIG06b3RoZXI9JzEnPmNvbnRlbnQ8L206bXk+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9uczJfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM5M2JlYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL25zMl8wLnhzZApAQCAtMCwwICsxLDE1IEBACis8c2NoZW1hIHhtbG5zOm15PSdodHRwOi8vbXkubnMvJworICAgICAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEnCisJdGFyZ2V0TmFtZXNwYWNlPSdodHRwOi8vbXkubnMvJworCT4KKyA8YXR0cmlidXRlIG5hbWU9J290aGVyJyB0eXBlPSdzdHJpbmcnLz4KKyA8ZWxlbWVudCBuYW1lPSdteSc+CisgICA8Y29tcGxleFR5cGU+CisgICAgIDxzaW1wbGVDb250ZW50PgorICAgICAgIDxleHRlbnNpb24gYmFzZT0nc3RyaW5nJz4KKyAgICAgICAgIDxhdHRyaWJ1dGUgcmVmPSdteTpvdGhlcicvPgorICAgICAgIDwvZXh0ZW5zaW9uPgorICAgICA8L3NpbXBsZUNvbnRlbnQ+CisgICA8L2NvbXBsZXhUeXBlPgorIDwvZWxlbWVudD4KKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnZkY3ZlXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnZkY3ZlXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwYTBhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9udmRjdmVfMC54bWwKQEAgLTAsMCArMSw1MjM1IEBACis8P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSdVVEYtOCc/PgorPG52ZCB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxucz0iaHR0cDovL252ZC5uaXN0Lmdvdi9mZWVkcy9jdmUvMS4yIiBudmRfeG1sX3ZlcnNpb249IjEuMiIgcHViX2RhdGU9IjIwMDgtMTAtMTciIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL252ZC5uaXN0Lmdvdi9mZWVkcy9jdmUvMS4yIGh0dHA6Ly9udmQubmlzdC5nb3Yvc2NoZW1hL252ZGN2ZS54c2QiPgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI2LjgiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTAzIiBzZXE9IjIwMDgtNDUwMyIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI2LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTExIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VGhlIFNldHRpbmdzIE1hbmFnZXIgaW4gQWRvYmUgRmxhc2ggUGxheWVyIDkuMC4xMjQuMCBhbmQgZWFybGllciBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBjYXVzZSB2aWN0aW1zIHRvIHVua25vd2luZ2x5IGNsaWNrIG9uIGEgbGluayBvciBkaWFsb2cgdmlhIGFjY2VzcyBjb250cm9sIGRpYWxvZ3MgZGlzZ3Vpc2VkIGFzIG5vcm1hbCBncmFwaGljYWwgZWxlbWVudHMsIGFzIGRlbW9uc3RyYXRlZCBieSBoaWphY2tpbmcgdGhlIGNhbWVyYSBvciBtaWNyb3Bob25lLCBhbmQgcmVsYXRlZCB0byAiY2xpY2tqYWNraW5nLiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTcyMSI+YWRvYmUtZmxhc2gtY2xpY2staGlqYWNraW5nKDQ1NzIxKTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5dHJhY2tlci5jb20vaWQ/MTAyMDk5NiI+MTAyMDk5NjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2MjUiPjMxNjI1PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjc2NCI+QURWLTIwMDgtMjc2NDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cuYWRvYmUuY29tL3N1cHBvcnQvc2VjdXJpdHkvYWR2aXNvcmllcy9hcHNhMDgtMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3LmFkb2JlLmNvbS9zdXBwb3J0L3NlY3VyaXR5L2Fkdmlzb3JpZXMvYXBzYTA4LTA4Lmh0bWw8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjE2MyIgYWR2PSIxIj4zMjE2MzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly9oYS5ja2Vycy5vcmcvYmxvZy8yMDA4MTAwNy9jbGlja2phY2tpbmctZGV0YWlscy8iPmh0dHA6Ly9oYS5ja2Vycy5vcmcvYmxvZy8yMDA4MTAwNy9jbGlja2phY2tpbmctZGV0YWlscy88L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vYmxvZy5ndXlhLm5ldC8yMDA4LzEwLzA3L21hbGljaW91cy1jYW1lcmEtc3B5aW5nLXVzaW5nLWNsaWNramFja2luZy8iPmh0dHA6Ly9ibG9nLmd1eWEubmV0LzIwMDgvMTAvMDcvbWFsaWNpb3VzLWNhbWVyYS1zcHlpbmctdXNpbmctY2xpY2tqYWNraW5nLzwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFkb2JlIiBuYW1lPSJmbGFzaF9wbGF5ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMC4yNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjcuMC42MyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOmxpbnV4IiBudW09IjcuMC42MyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAuNjkuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAuNzAuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjcuMF9yNjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpzb2xhcmlzIiBudW09IjcuMF9yNjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpwcm9mZXNzaW9uYWwiIG51bT0iOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnBybyIgbnVtPSI4IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjAuMjQuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjAuMzQuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjAuMzUuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjAuMzkuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMC4xMTQuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAuMTE1LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4wLjEyNC4wIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI2LjgiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTA0IiBzZXE9IjIwMDgtNDUwNCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI2LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTA5Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+SGVhcC1iYXNlZCBidWZmZXIgb3ZlcmZsb3cgaW4gTXBsYXllci5leGUgaW4gSGVyb3NvZnQgSW5jLiBIZXJvIERWRCBQbGF5ZXIgMy4wLjggYWxsb3dzIHVzZXItYXNzaXN0ZWQgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhbiBNM3UgZmlsZSB3aXRoIGEgImxvbmcgZW50cnkuIiBOT1RFOiB0aGUgcHJvdmVuYW5jZSBvZiB0aGlzIGluZm9ybWF0aW9uIGlzIHVua25vd247IHRoZSBkZXRhaWxzIGFyZSBvYnRhaW5lZCBzb2xlbHkgZnJvbSB0aGlyZCBwYXJ0eSBpbmZvcm1hdGlvbi48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2MjciPjMxNjI3PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzE5MzMiIGFkdj0iMSI+MzE5MzM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJoZXJvc29mdCIgbmFtZT0iaGVyb19kdmRfcGxheWVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIzLjAuOCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpOL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjkiIG5hbWU9IkNWRS0yMDA4LTQ1MDUiIHNlcT0iMjAwOC00NTA1IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTA5Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBJQk0gTG90dXMgUXVpY2tyIDguMSBiZWZvcmUgRml4IHBhY2sgMSAoOC4xLjAuMSkgbWlnaHQgYWxsb3cgYXR0YWNrZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgKHN5c3RlbSBjcmFzaCkgdmlhIGEgIm5vbnN0YW5kYXJkIFVSTCBhcmd1bWVudCIgdG8gdGhlIE9wZW5Eb2N1bWVudCBjb21tYW5kLiBOT1RFOiBkdWUgdG8gbGFjayBvZiBkZXRhaWxzIGZyb20gdGhlIHZlbmRvciwgaXQgaXMgbm90IGNsZWFyIHdoZXRoZXIgdGhpcyBpcyBhIHZ1bG5lcmFiaWxpdHkuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTY5MiI+bG90dXMtcXVpY2tyLW9wZW5kb2N1bWVudC1kb3MoNDU2OTIpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTYwOCI+MzE2MDg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiB1cmw9Imh0dHA6Ly93d3cuZnJzaXJ0LmNvbS9lbmdsaXNoL2Fkdmlzb3JpZXMvMjAwOC8yNzUzIiBhZHY9IjEiPkFEVi0yMDA4LTI3NTM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3LTAxLmlibS5jb20vc3VwcG9ydC9kb2N2aWV3Lndzcz91aWQ9c3dnMjcwMTMzNDEiPmh0dHA6Ly93d3ctMDEuaWJtLmNvbS9zdXBwb3J0L2RvY3ZpZXcud3NzP3VpZD1zd2cyNzAxMzM0MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMDk4IiBhZHY9IjEiPjMyMDk4PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iaWJtIiBuYW1lPSJsb3R1c19xdWlja3IiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1MDYiIHNlcT0iMjAwOC00NTA2IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTExIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBJQk0gTG90dXMgUXVpY2tyIDguMSBiZWZvcmUgRml4IHBhY2sgMSAoOC4xLjAuMSkgYWxsb3dzIGEgcGxhY2UgbWFuYWdlciB0byAiZGVtb3RlIG9yIGRlbGV0ZSBhIHBsYWNlIHN1cGVydXNlciBncm91cCIgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTY5NCI+bG90dXMtcXVpY2tyLXBsYWNlbWFuYWdlci1zZWN1cml0eS1ieXBhc3MoNDU2OTQpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTYwOCI+MzE2MDg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiB1cmw9Imh0dHA6Ly93d3cuZnJzaXJ0LmNvbS9lbmdsaXNoL2Fkdmlzb3JpZXMvMjAwOC8yNzUzIiBhZHY9IjEiPkFEVi0yMDA4LTI3NTM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3LTAxLmlibS5jb20vc3VwcG9ydC9kb2N2aWV3Lndzcz91aWQ9c3dnMjcwMTMzNDEiPmh0dHA6Ly93d3ctMDEuaWJtLmNvbS9zdXBwb3J0L2RvY3ZpZXcud3NzP3VpZD1zd2cyNzAxMzM0MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMDk4IiBhZHY9IjEiPjMyMDk4PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iaWJtIiBuYW1lPSJsb3R1c19xdWlja3IiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1MDciIHNlcT0iMjAwOC00NTA3IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTA5Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBJQk0gTG90dXMgUXVpY2tyIDguMSBiZWZvcmUgRml4IHBhY2sgMSAoOC4xLjAuMSkgYWxsb3dzIGVkaXRvcnMgdG8gZGVsZXRlIHBhZ2VzIHRoYXQgd2VyZSBjcmVhdGVkIGJ5IGEgZGlmZmVyZW50IGF1dGhvciB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJYRiIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU2OTMiPmxvdHVzLXF1aWNrci1lZGl0b3Itc2VjdXJpdHktYnlwYXNzKDQ1NjkzKTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2MDgiPjMxNjA4PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjc1MyIgYWR2PSIxIj5BRFYtMjAwOC0yNzUzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy0wMS5pYm0uY29tL3N1cHBvcnQvZG9jdmlldy53c3M/dWlkPXN3ZzI3MDEzMzQxIj5odHRwOi8vd3d3LTAxLmlibS5jb20vc3VwcG9ydC9kb2N2aWV3Lndzcz91aWQ9c3dnMjcwMTMzNDE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjA5OCIgYWR2PSIxIj4zMjA5ODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImlibSIgbmFtZT0ibG90dXNfcXVpY2tyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpOL0k6Ti9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuOCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi45IiBuYW1lPSJDVkUtMjAwOC00NTA4IiBzZXE9IjIwMDgtNDUwOCIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy44IiBtb2RpZmllZD0iMjAwOC0xMC0wOSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlN0YWNrLWJhc2VkIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgZmlsZSBwYXJzaW5nIGZ1bmN0aW9uIGluIFRvbmVjIEludGVybmV0IERvd25sb2FkIE1hbmFnZXIsIHBvc3NpYmx5IDUuMTQgYW5kIGVhcmxpZXIsIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgKGNyYXNoKSBhbmQgcG9zc2libHkgZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBjcmFmdGVkIEFwcGxlRG91YmxlIGZpbGUgY29udGFpbmluZyBhIGxvbmcgc3RyaW5nLiAgTk9URTogdGhpcyBpcyBwcm9iYWJseSBhIGRpZmZlcmVudCB2dWxuZXJhYmlsaXR5IHRoYW4gQ1ZFLTIwMDUtMjIxMC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1NzExIj5pbnRlcm5ldGRvd25sb2FkbWFuYWdlci1maWxlLWJvKDQ1NzExKTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2MDMiPjMxNjAzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL2Rvd25sb2Fkcy5zZWN1cml0eWZvY3VzLmNvbS92dWxuZXJhYmlsaXRpZXMvZXhwbG9pdHMvMzE2MDMucGwiPmh0dHA6Ly9kb3dubG9hZHMuc2VjdXJpdHlmb2N1cy5jb20vdnVsbmVyYWJpbGl0aWVzL2V4cGxvaXRzLzMxNjAzLnBsPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0idG9uZWNfaW5jLiIgbmFtZT0iaW50ZXJuZXRfZG93bmxvYWRfbWFuYWdlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS4xNCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iMTAuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDUwOSIgc2VxPSIyMDA4LTQ1MDkiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0wOSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEwLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTA5Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5yZXN0cmljdGVkIGZpbGUgdXBsb2FkIHZ1bG5lcmFiaWxpdHkgaW4gcHJvY2Vzc0ZpbGVzLnBocCBpbiBGT1NTIEdhbGxlcnkgQWRtaW4gYW5kIEZPU1MgR2FsbGVyeSBQdWJsaWMgMS4wIGJldGEgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSBieSB1cGxvYWRpbmcgYSBmaWxlIHdpdGggYW4gZXhlY3V0YWJsZSBleHRlbnNpb24sIHRoZW4gYWNjZXNzaW5nIGl0IHZpYSBhIGRpcmVjdCByZXF1ZXN0IHRvIHRoZSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeS48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTY4MyI+Zm9zc2dhbGxlcnktbXVsdGlwbGUtZmlsZS11cGxvYWQoNDU2ODMpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU3NCI+MzE1NzQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2ODAiPjY2ODA8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NzQiPjY2NzQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NzAiPjY2NzA8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJmb3NzX2dhbGxlcnkiIG5hbWU9ImZvc3NfZ2FsbGVyeSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249ImJldGEiIG51bT0iMS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJiZXRhOnB1YmxpYyIgbnVtPSIxLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249ImJldGE6YWRtaW4iIG51bT0iMS4wIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6TC9BdTpOL0M6Ti9JOk4vQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI0LjkiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMy45IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi45IiBuYW1lPSJDVkUtMjAwOC00NTEwIiBzZXE9IjIwMDgtNDUxMCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI0LjkiIG1vZGlmaWVkPSIyMDA4LTEwLTA5Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+TWljcm9zb2Z0IFdpbmRvd3MgVmlzdGEgSG9tZSBhbmQgVWx0aW1hdGUgRWRpdGlvbiBTUDEgYW5kIGVhcmxpZXIgYWxsb3dzIGxvY2FsIHVzZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgKHBhZ2UgZmF1bHQgYW5kIHN5c3RlbSBjcmFzaCkgdmlhIG11bHRpcGxlIGF0dGVtcHRzIHRvIGFjY2VzcyBhIHZpcnR1YWwgYWRkcmVzcyBpbiBhIFBBR0VfTk9BQ0NFU1MgbWVtb3J5IHBhZ2UuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxsb2NhbCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE1NzAiPjMxNTcwPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NjcxIj42NjcxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxMTUiIGFkdj0iMSI+MzIxMTU8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3MtbnQiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0idmlzdGEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpob21lX3ByZW1pdW0iIG51bT0idmlzdGEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4NjQtaG9tZV9wcmVtaXVtIiBudW09InZpc3RhIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDY0LXVsdGltYXRlIiBudW09InZpc3RhIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDEiIG51bT0idmlzdGEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTp4NjQtaG9tZV9wcmVtaXVtIiBudW09InZpc3RhIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDE6dWx0aW1hdGUiIG51bT0idmlzdGEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTp4NjQtdWx0aW1hdGUiIG51bT0idmlzdGEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTpob21lX3ByZW1pdW0iIG51bT0idmlzdGEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6Ti9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTExIiBzZXE9IjIwMDgtNDUxMSIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI1LjAiIG1vZGlmaWVkPSIyMDA4LTEwLTA5Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VG9kZCBXb29sdW1zIEFTUCBOZXdzIE1hbmFnZW1lbnQsIHBvc3NpYmx5IDIuMjEsIHN0b3JlcyBkYi9uZXdzLm1kYiB1bmRlciB0aGUgd2ViIHJvb3Qgd2l0aCBpbnN1ZmZpY2llbnQgYWNjZXNzIGNvbnRyb2wsIHdoaWNoIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIG9idGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24gdmlhIGEgZGlyZWN0IHJlcXVlc3QuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk2Nzg3LzEwMC8wL3RocmVhZGVkIj4yMDA4MDkyNyBBU1AgTmV3cyBSZW1vdGUgUGFzc3dvcmQgRGlzY2xvdXNlIFZ1bG5lcmFiaWxpdHk8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJ0b2RkX3dvb2x1bXMiIG5hbWU9ImFzcF9uZXdzX21hbmFnZW1lbnQiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6Ti9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTEyIiBzZXE9IjIwMDgtNDUxMiIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI1LjAiIG1vZGlmaWVkPSIyMDA4LTEwLTA5Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+QVNQL01TIEFjY2VzcyBTaG91dGJveCwgcHJvYmFibHkgMS4xIGJldGEsIHN0b3JlcyBkYi9zaG91dGRiLm1kYiB1bmRlciB0aGUgd2ViIHJvb3Qgd2l0aCBpbnN1ZmZpY2llbnQgYWNjZXNzIGNvbnRyb2wsIHdoaWNoIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIG9idGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24gdmlhIGEgZGlyZWN0IHJlcXVlc3QuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk2Nzg5LzEwMC8wL3RocmVhZGVkIj4yMDA4MDkyNyBzaG91dGJveCBSZW1vdGUgUGFzc3dvcmQgRGlzY2xvdXNlIFZ1bG5lcmFiaWxpdHk8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDUxMyIgc2VxPSIyMDA4LTQ1MTMiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0wOSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gQkJjb2RlIEFQSSBtb2R1bGUgaW4gUGhvcnVtIDUuMi44IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGluamVjdCBhcmJpdHJhcnkgd2ViIHNjcmlwdCBvciBIVE1MIHZpYSBuZXN0ZWQgQkJjb2RlIGltYWdlIHRhZ3MuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1Njg2Ij5waG9ydW0taW1nLXhzcyg0NTY4Nik8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNTg5Ij4zMTU4OTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly90cmFjLnBob3J1bS5vcmcvY2hhbmdlc2V0LzM1MjgiPmh0dHA6Ly90cmFjLnBob3J1bS5vcmcvY2hhbmdlc2V0LzM1Mjg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vbnVsbGVkY29yZS5jb20vP3A9MTI2Ij5odHRwOi8vbnVsbGVkY29yZS5jb20vP3A9MTI2PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0icGhvcnVtIiBuYW1lPSJwaG9ydW0iPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUuMi44IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Ti9JOk4vQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDUxNCIgc2VxPSIyMDA4LTQ1MTQiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS4wIiBtb2RpZmllZD0iMjAwOC0xMC0wOSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlRoZSBIVE1MIHBhcnNlciBpbiBLREUgS29ucXVlcm9yIDMuNS45IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgKGFwcGxpY2F0aW9uIGNyYXNoKSB2aWEgYSBmb250IHRhZyB3aXRoIGEgbG9uZyBjb2xvciB2YWx1ZSwgd2hpY2ggdHJpZ2dlcnMgYW4gYXNzZXJ0aW9uIGVycm9yLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2MDUiPjMxNjA1PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82Njg5Ij42Njg5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ia29ucXVlcm9yIiBuYW1lPSJrb25xdWVyb3IiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjMuNS45IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDUxNSIgc2VxPSIyMDA4LTQ1MTUiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0wOSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMDkiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5CbHVlIENvYXQgSzkgV2ViIFByb3RlY3Rpb24gNC4wLjIzMCBCZXRhIHJlbGllcyBvbiBjbGllbnQtc2lkZSBKYXZhU2NyaXB0IGFzIGEgcHJvdGVjdGlvbiBtZWNoYW5pc20sIHdoaWNoIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGJ5cGFzcyBhdXRoZW50aWNhdGlvbiBhbmQgYWNjZXNzIHRoZSAoMSkgc3VtbWFyeSwgKDIpIGRldGFpbCwgKDMpIG92ZXJyaWRlcywgYW5kICg0KSBwd2VtYWlsIHBhZ2VzIGJ5IGRpc2FibGluZyBKYXZhU2NyaXB0LjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJYRiIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU2OTYiPms5d2VicHJvdGVjdGlvbi1tdWx0aXBsZS1hdXRoLWJ5cGFzcyg0NTY5Nik8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNTg0Ij4zMTU4NDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGVUxMRElTQyIgdXJsPSJodHRwOi8vc2VjbGlzdHMub3JnL2Z1bGxkaXNjbG9zdXJlLzIwMDgvT2N0LzAwNzAuaHRtbCI+MjAwODEwMDQgQmx1ZSBDb2F0IEs5IFdlYiBQcm90ZWN0aW9uIFY0LjAuMjMwIEJldGEgVnVsbmVyYWJpbGl0eTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly9kaWNhczMwMDAuYmxvZ3Nwb3QuY29tLzIwMDgvMTAvYmx1ZS1jb2F0LWs5LXdlYi1wcm90ZWN0aW9uLXY0MDIzMC1iZXRhLmh0bWwiPmh0dHA6Ly9kaWNhczMwMDAuYmxvZ3Nwb3QuY29tLzIwMDgvMTAvYmx1ZS1jb2F0LWs5LXdlYi1wcm90ZWN0aW9uLXY0MDIzMC1iZXRhLmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJibHVlX2NvYXRfc3lzdGVtcyIgbmFtZT0iazlfd2ViX3Byb3RlY3Rpb24iPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJiZXRhIiBudW09IjQuMC4yMzAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTE2IiBzZXE9IjIwMDgtNDUxNiIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0wOSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlNRTCBpbmplY3Rpb24gdnVsbmVyYWJpbGl0eSBpbiBnYWxlcmllLnBocCBpbiBHYWxlcmllIDMuMiBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBTUUwgY29tbWFuZHMgdmlhIHRoZSBwaWMgcGFyYW1ldGVyLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1Njk4Ij5nYWxlcmllLXBpYy1zcWwtaW5qZWN0aW9uKDQ1Njk4KTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE1OTMiPjMxNTkzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82Njc1Ij42Njc1PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZ2FsZXJpZSIgbmFtZT0iZ2FsZXJpZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4yIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDUxNyIgc2VxPSIyMDA4LTQ1MTciIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0wOSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMDkiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5TUUwgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHkgaW4gbGVnZ2kucGhwIGluIGdlY2NCQmxpdGUgMi4wIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IFNRTCBjb21tYW5kcyB2aWEgdGhlIGlkIHBhcmFtZXRlci48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU4NSI+MzE1ODU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NzciPjY2Nzc8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJnZWNjYmJsaXRlIiBuYW1lPSJnZWNjYmJsaXRlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTE4IiBzZXE9IjIwMDgtNDUxOCIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPk11bHRpcGxlIFNRTCBpbmplY3Rpb24gdnVsbmVyYWJpbGl0aWVzIGluIEZhc3RwdWJsaXNoIENNUyAxLjkuOS45LjkgZCAoMS45OTk5IGQpIGFsbG93IHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB0aGUgKDEpIHNwcmFjaGUgcGFyYW1ldGVyIHRvIGluZGV4Mi5waHAgYW5kIHRoZSAoMikgYXJ0aWtlbCBwYXJhbWV0ZXIgdG8gaW5kZXgucGhwLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNTgyIj4zMTU4MjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNjY3OCI+NjY3ODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMTI2IiBhZHY9IjEiPjMyMTI2PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZmFzdHB1Ymxpc2giIG5hbWU9ImZhc3RwdWJsaXNoX2NtcyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS45LjkuOS45ZCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjk5OTlkIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDUxOSIgc2VxPSIyMDA4LTQ1MTkiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0wOSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NdWx0aXBsZSBkaXJlY3RvcnkgdHJhdmVyc2FsIHZ1bG5lcmFiaWxpdGllcyBpbiBGYXN0cHVibGlzaCBDTVMgMS45OTk5IGQgYWxsb3cgcmVtb3RlIGF0dGFja2VycyB0byBpbmNsdWRlIGFuZCBleGVjdXRlIGFyYml0cmFyeSBsb2NhbCBmaWxlcyB2aWEgYSAuLiAoZG90IGRvdCkgaW4gdGhlIHRhcmdldCBwYXJhbWV0ZXIgdG8gKDEpIGluZGV4Mi5waHAgYW5kICgyKSBpbmRleC5waHAuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU4MiI+MzE1ODI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NzgiPjY2Nzg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjEyNiIgYWR2PSIxIj4zMjEyNjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImZhc3RwdWJsaXNoIiBuYW1lPSJmYXN0cHVibGlzaF9jbXMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuOS45LjkuOWQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS45OTk5ZCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDUyMCIgc2VxPSIyMDA4LTQ1MjAiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gYnVsa191cGRhdGUucGwgaW4gQXV0b05lc3N1cyBiZWZvcmUgMS4yLjIgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gaW5qZWN0IGFyYml0cmFyeSB3ZWIgc2NyaXB0IG9yIEhUTUwgdmlhIHRoZSByZW1hcmsgcGFyYW1ldGVyLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE1NTkiPjMxNTU5PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9zaG93bm90ZXMucGhwP2dyb3VwX2lkPTIxNjM2NyZhbXA7cmVsZWFzZV9pZD02MzAxMjQiPmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9zaG93bm90ZXMucGhwP2dyb3VwX2lkPTIxNjM2NyZhbXA7cmVsZWFzZV9pZD02MzAxMjQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1NjM0Ij5hdXRvbmVzc3VzLWJ1bGt1cGRhdGUteHNzKDQ1NjM0KTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYW1wO2FpZD0yMTQxODg0JmFtcDtncm91cF9pZD0yMTYzNjcmYW1wO2F0aWQ9MTAzNzM5NCIgYWR2PSIxIj5odHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9MjE0MTg4NCZhbXA7Z3JvdXBfaWQ9MjE2MzY3JmFtcDthdGlkPTEwMzczOTQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjA0NiIgYWR2PSIxIj4zMjA0NjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly9hdXRvbmVzc3VzLmN2cy5zb3VyY2Vmb3JnZS5uZXQvdmlld3ZjL2F1dG9uZXNzdXMvQXV0b05lc3N1cy93d3cvYnVsa191cGRhdGUucGw/cjE9MS4yJmFtcDtyMj0xLjMiPmh0dHA6Ly9hdXRvbmVzc3VzLmN2cy5zb3VyY2Vmb3JnZS5uZXQvdmlld3ZjL2F1dG9uZXNzdXMvQXV0b05lc3N1cy93d3cvYnVsa191cGRhdGUucGw/cjE9MS4yJmFtcDtyMj0xLjM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhdXRvbmVzc3VzIiBuYW1lPSJhdXRvbmVzc3VzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMSIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1MjEiIHNlcT0iMjAwOC00NTIxIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIHRoaXNyYWlkcHJvZ3Jlc3MucGhwIGluIHRoZSBXb3JsZCBvZiBXYXJjcmFmdCB0cmFja2VyIGluZnVzaW9uIChyYWlkdHJhY2tlcl9wYW5lbCkgbW9kdWxlIDIuMCBmb3IgUEhQLUZ1c2lvbiBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBTUUwgY29tbWFuZHMgdmlhIHRoZSBJTkZPX1JBSURfSUQgcGFyYW1ldGVyLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNTc5Ij4zMTU3OTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNjY4MiI+NjY4MjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9InBocC1mdXNpb24iIG5hbWU9IndvcmxkX29mX3dhcmNyYWZ0X3RyYWNrZXJfaW5mdXNpb25fbW9kdWxlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTIyIiBzZXE9IjIwMDgtNDUyMiIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPk11bHRpcGxlIGRpcmVjdG9yeSB0cmF2ZXJzYWwgdnVsbmVyYWJpbGl0aWVzIGluIEpNd2ViIE1QMyBNdXNpYyBBdWRpbyBTZWFyY2ggYW5kIERvd25sb2FkIFNjcmlwdCBhbGxvdyByZW1vdGUgYXR0YWNrZXJzIHRvIGluY2x1ZGUgYW5kIGV4ZWN1dGUgYXJiaXRyYXJ5IGxvY2FsIGZpbGVzIHZpYSBhIC4uIChkb3QgZG90KSBpbiB0aGUgc3JjIHBhcmFtZXRlciB0byAoMSkgbGlzdGVuLnBocCBhbmQgKDIpIGRvd25sb2FkLnBocC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU3MyI+MzE1NzM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NjkiPjY2Njk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjE0MSIgYWR2PSIxIj4zMjE0MTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Implc3NlLXdlYiIgbmFtZT0iam13ZWJfbXAzX211c2ljX2F1ZGlvX3NlYXJjaF9hbmRfZG93bmxvYWRfc2NyaXB0Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTIzIiBzZXE9IjIwMDgtNDUyMyIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlNRTCBpbmplY3Rpb24gdnVsbmVyYWJpbGl0eSBpbiBsb2dpbi5waHAgaW4gSVAgUmVnIDAuNCBhbmQgZWFybGllciBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBTUUwgY29tbWFuZHMgdmlhIHRoZSB1c2VyX25hbWUgcGFyYW1ldGVyLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1NjQxIj5pcHJlZy1sb2dpbi1zcWwtaW5qZWN0aW9uKDQ1NjQxKTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE1NjEiPjMxNTYxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NjU3Ij42NjU3PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iaXBfcmVnIiBuYW1lPSJpcF9yZWciPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjAuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIwLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjAuNCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1MjQiIHNlcT0iMjAwOC00NTI0IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIHRoZSAiQ2hlY2sgVXNlciIgZmVhdHVyZSAoaW5jbHVkZXMvY2hlY2tfdXNlci5waHApIGluIEFkYXB0Q01TIExpdGUgYW5kIEFkYXB0Q01TIFBybyAxLjMgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB0aGUgdXNlcl9uYW1lIHBhcmFtZXRlci48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuYWRhcHRjbXMuY29tL2FydGljbGUvNTEvTmV3cy9VUkdFTlQtQWRhcHRDTVMtMTMtU2VjdXJpdHktRml4LVJlbGVhc2VkLyIgYWR2PSIxIj5odHRwOi8vd3d3LmFkYXB0Y21zLmNvbS9hcnRpY2xlLzUxL05ld3MvVVJHRU5ULUFkYXB0Q01TLTEzLVNlY3VyaXR5LUZpeC1SZWxlYXNlZC88L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxNzEiIGFkdj0iMSI+MzIxNzE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1NjQyIj5hZGFwdGNtc2xpdGUtY2hlY2t1c2VyLXNxbC1pbmplY3Rpb24oNDU2NDIpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU1NyI+MzE1NTc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NjIiPjY2NjI8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhZGFwdGNtcyIgbmFtZT0iYWRhcHRjbXMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJ1bmtub3duIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93bjpsaXRlIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93bjpwcm8iIG51bT0iMS4zIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDUyNSIgc2VxPSIyMDA4LTQ1MjUiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0wOSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5TUUwgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHkgaW4gaW5kZXgucGhwIGluIEFtcEp1a2UgMC43LjUgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB0aGUgc3BlY2lhbCBwYXJhbWV0ZXIgaW4gYSBwZXJmb3JtZXJpZCBhY3Rpb24uPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE1OTIiPjMxNTkyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxNjgiIGFkdj0iMSI+MzIxNjg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vcGFja2V0c3Rvcm0ubGludXhzZWN1cml0eS5jb20vMDgxMC1leHBsb2l0cy9hbXBqdWtlLXNxbC50eHQiPmh0dHA6Ly9wYWNrZXRzdG9ybS5saW51eHNlY3VyaXR5LmNvbS8wODEwLWV4cGxvaXRzL2FtcGp1a2Utc3FsLnR4dDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFtcGp1a2UiIG5hbWU9ImFtcGp1a2UiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjAuNy41IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSIxMC4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00NTI2IiBzZXE9IjIwMDgtNDUyNiIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMTAuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NdWx0aXBsZSBkaXJlY3RvcnkgdHJhdmVyc2FsIHZ1bG5lcmFiaWxpdGllcyBpbiBDQ01TIDMuMSBhbGxvdyByZW1vdGUgYXR0YWNrZXJzIHRvIGluY2x1ZGUgYW5kIGV4ZWN1dGUgYXJiaXRyYXJ5IGxvY2FsIGZpbGVzIHZpYSBhIC4uIChkb3QgZG90KSBpbiB0aGUgc2tpbiBwYXJhbWV0ZXIgdG8gKDEpIGluZGV4LnBocCwgKDIpIGZvcnVtcy5waHAsICgzKSBhZG1pbi5waHAsICg0KSBoZWFkZXIucGhwLCAoNSkgcGFnZXMvc3RvcnkucGhwIGFuZCAoNikgcGFnZXMvcG9sbC5waHAuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU2NiI+MzE1NjY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NjMiPjY2NjM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjdXN0b21jbXMiIG5hbWU9ImNjbXMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjMuMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1MjciIHNlcT0iMjAwOC00NTI3IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIHJlY2VwdC5waHAgaW4gdGhlIFJlY2VwaWVzIChSZWNlcHQpIG1vZHVsZSAxLjEgZm9yIFBIUC1GdXNpb24gYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB0aGUga2F0X2lkIHBhcmFtZXRlciBpbiBhIGthdGVnb3JpZXIgYWN0aW9uLiAgTk9URTogc29tZSBvZiB0aGVzZSBkZXRhaWxzIGFyZSBvYnRhaW5lZCBmcm9tIHRoaXJkIHBhcnR5IGluZm9ybWF0aW9uLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNTc4Ij4zMTU3ODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNjY4MyI+NjY4MzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMDA0IiBhZHY9IjEiPjMyMDA0PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0icGhwLWZ1c2lvbiIgbmFtZT0icmVjZXBpZXNfbW9kdWxlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTI4IiBzZXE9IjIwMDgtNDUyOCIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkRpcmVjdG9yeSB0cmF2ZXJzYWwgdnVsbmVyYWJpbGl0eSBpbiBub3Rlcy5waHAgaW4gUGhsYXRsaW5lJ3MgUGVyc29uYWwgSW5mb3JtYXRpb24gTWFuYWdlciAocFBJTSkgMS4wMSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBpbmNsdWRlIGFuZCBleGVjdXRlIGFyYml0cmFyeSBsb2NhbCBmaWxlcyB2aWEgYSAuLiAoZG90IGRvdCkgaW4gdGhlIGlkIHBhcmFtZXRlciBpbiBhbiBlZGl0IGFjdGlvbi48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU3MSI+MzE1NzE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY2NjciPjY2Njc8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJwaGxhdGxpbmUiIG5hbWU9InBlcnNvbmFsX2luZm9ybWF0aW9uX21hbmFnZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMDEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTI5IiBzZXE9IjIwMDgtNDUyOSIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0xMSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPk11bHRpcGxlIFBIUCByZW1vdGUgZmlsZSBpbmNsdXNpb24gdnVsbmVyYWJpbGl0aWVzIGluIGFzaUNNUyBhbHBoYSAwLjIwOCBhbGxvdyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IFBIUCBjb2RlIHZpYSBhIFVSTCBpbiB0aGUgX0VOVlthc2ljbXNdW3BhdGhdIHBhcmFtZXRlciB0byAoMSkgQXNzb2NpYXRpb24ucGhwLCAoMikgQmlnTWF0aC5waHAsICgzKSBEaWZmaWVIZWxsbWFuLnBocCwgKDQpIER1bWJTdG9yZS5waHAsICg1KSBFeHRlbnNpb24ucGhwLCAoNikgRmlsZVN0b3JlLnBocCwgKDcpIEhNQUMucGhwLCAoOCkgTWVtY2FjaGVkU3RvcmUucGhwLCAoOSkgTWVzc2FnZS5waHAsICgxMCkgTm9uY2UucGhwLCAoMTEpIFNRTFN0b3JlLnBocCwgKDEyKSBTUmVnLnBocCwgKDEzKSBUcnVzdFJvb3QucGhwLCBhbmQgKDE0KSBVUklOb3JtLnBocCBpbiBjbGFzc2VzL0F1dGgvT3BlbklELzsgYW5kICgxNSkgWFJEUy5waHAsICgxNikgWFJJLnBocCBhbmQgKDE3KSBYUklSZXMucGhwIGluIGNsYXNzZXMvQXV0aC9ZYWRpcy8uPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2MDEiPjMxNjAxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82Njg1Ij42Njg1PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYXNpY21zIiBuYW1lPSJhc2ljbXMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJhbHBoYSIgbnVtPSIwLjIwOCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDUzMCIgc2VxPSIyMDA4LTQ1MzAiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTA5IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gQnJpbGxpYW50IEdhbGxlcnkgNS54IGJlZm9yZSA1LngtNC4yLCBhIG1vZHVsZSBmb3IgRHJ1cGFsLCBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgd2l0aCBwZXJtaXNzaW9ucyB0byBpbmplY3QgYXJiaXRyYXJ5IHdlYiBzY3JpcHQgb3IgSFRNTCB2aWEgdW5zcGVjaWZpZWQgdmVjdG9ycyByZWxhdGVkIHRvIHBvc3Rpbmcgb2YgYW5zd2Vycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vZHJ1cGFsLm9yZy9ub2RlLzMxNTkxOSIgYWR2PSIxIj5odHRwOi8vZHJ1cGFsLm9yZy9ub2RlLzMxNTkxOTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJYRiIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU2MzYiPmJyaWxsaWFudGdhbGxlcnktdW5zcGVjaWZpZWQteHNzKDQ1NjM2KTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE1NTQiPjMxNTU0PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxMDYiIGFkdj0iMSI+MzIxMDY8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJkcnVwYWwiIG5hbWU9ImJyaWxsaWFudF9nYWxsZXJ5Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0xLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjEyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjE0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjE1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjE2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjE3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTIuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTIuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTIuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMy4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0zLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTMuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMy4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC00LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTQuMSIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1MzEiIHNlcT0iMjAwOC00NTMxIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMDkiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIEJyaWxsaWFudCBHYWxsZXJ5IDUueCBiZWZvcmUgNS54LTQuMiwgYSBtb2R1bGUgZm9yIERydXBhbCwgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB1bnNwZWNpZmllZCB2ZWN0b3JzLCByZWxhdGVkIHRvIHF1ZXJpZXMuICBOT1RFOiB0aGlzIG1pZ2h0IGJlIHRoZSBzYW1lIGlzc3VlIGFzIENWRS0yMDA4LTQzMzguPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU2MzciPmJyaWxsaWFudGdhbGxlcnktdW5zcGVjaWZpZWQtc3FsLWluamVjdGlvbig0NTYzNyk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU1NCI+MzE1NTQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxMDYiIGFkdj0iMSI+MzIxMDY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL2RydXBhbC5vcmcvbm9kZS8zMTU5MTkiPmh0dHA6Ly9kcnVwYWwub3JnL25vZGUvMzE1OTE5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZHJ1cGFsIiBuYW1lPSJicmlsbGlhbnRfZ2FsbGVyeSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTEuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0xLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTIuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4xNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTIuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTIuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMi44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0yLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTMuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtMy4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC0zLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS54LTMuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LngtNC4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUueC00LjEiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpOL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ1MzIiIHNlcT0iMjAwOC00NTMyIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0wOSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5Dcm9zcy1zaXRlIHNjcmlwdGluZyAoWFNTKSB2dWxuZXJhYmlsaXR5IGluIGluZGV4LnBocCBpbiBNYXhpU2NyaXB0IFdlYnNpdGUgRGlyZWN0b3J5IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGluamVjdCBhcmJpdHJhcnkgd2ViIHNjcmlwdCBvciBIVE1MIHZpYSB0aGUga2V5d29yZCBwYXJhbWV0ZXIgaW4gYSBzZWFyY2ggYWN0aW9uLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTY1NyI+d2Vic2l0ZWRpcmVjdG9yeS1pbmRleC14c3MoNDU2NTcpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU2MiI+MzE1NjI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk2OTY3LzEwMC8wL3RocmVhZGVkIj4yMDA4MTAwMyBXZWJzaXRlIERpcmVjdG9yeSAtIFhTUyBFeHBsb2l0PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxNzYiIGFkdj0iMSI+MzIxNzY8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtYXhpc2NyaXB0IiBuYW1lPSJ3ZWJzaXRlX2RpcmVjdG9yeSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI2LjgiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC0zNDMyIiBzZXE9IjIwMDgtMzQzMiIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTAiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI2LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+SGVhcC1iYXNlZCBidWZmZXIgb3ZlcmZsb3cgaW4gdGhlIG1jaF9leHBhbmRfd2lsZGNhcmRzIGZ1bmN0aW9uIGluIG9zX3VuaXguYyBpbiBWaW0gNi4yIGFuZCA2LjMgYWxsb3dzIHVzZXItYXNzaXN0ZWQgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIHNoZWxsIG1ldGFjaGFyYWN0ZXJzIGluIGZpbGVuYW1lcywgYXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBuZXRydy52MyB0ZXN0IGNhc2UuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBUFBMRSIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL2xpc3RzLmFwcGxlLmNvbS9hcmNoaXZlcy9zZWN1cml0eS1hbm5vdW5jZS8yMDA4L09jdC9tc2cwMDAwMS5odG1sIj5BUFBMRS1TQS0yMDA4LTEwLTA5PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1MSVNUIiB1cmw9Imh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDA4LzA4LzAxLzEiPltvc3Mtc2VjdXJpdHldIDIwMDgwNzMxIFJlOiBSZTogTW9yZSBhcmJpdHJhcnkgY29kZSBleGVjdXRpb25zIGluIE5ldHJ3PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1MSVNUIiB1cmw9Imh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDA4LzA3LzE1LzQiPltvc3Mtc2VjdXJpdHldIDIwMDgwNzE1IFJlOiBSZTogTW9yZSBhcmJpdHJhcnkgY29kZSBleGVjdXRpb25zIGluIE5ldHJ3PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iZnRwOi8vZnRwLnZpbS5vcmcvcHViL3ZpbS9wYXRjaGVzLzYuMy82LjMuMDU5Ij5mdHA6Ly9mdHAudmltLm9yZy9wdWIvdmltL3BhdGNoZXMvNi4zLzYuMy4wNTk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJmdHA6Ly9mdHAudmltLm9yZy9wdWIvdmltL3BhdGNoZXMvNi4yLjQyOSI+ZnRwOi8vZnRwLnZpbS5vcmcvcHViL3ZpbS9wYXRjaGVzLzYuMi40Mjk8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJ2aW0iIG5hbWU9InZpbSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNi4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjYuMyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iMTAuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtMzY0MSIgc2VxPSIyMDA4LTM2NDEiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEwLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VGhlIEhld2xldHQtUGFja2FyZCBHcmFwaGljcyBMYW5ndWFnZSAoSFBHTCkgZmlsdGVyIGluIENVUFMgYmVmb3JlIDEuMy45IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGNyYWZ0ZWQgcGVuIHdpZHRoIGFuZCBwZW4gY29sb3Igb3Bjb2RlcyB0aGF0IG92ZXJ3cml0ZSBhcmJpdHJhcnkgbWVtb3J5LjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vY3Vwcy5vcmcvYXJ0aWNsZXMucGhwP0w1NzUiIGFkdj0iMSI+aHR0cDovL3d3dy5jdXBzLm9yZy9hcnRpY2xlcy5waHA/TDU3NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJSRURIQVQiIHVybD0iaHR0cDovL3d3dy5yZWRoYXQuY29tL3N1cHBvcnQvZXJyYXRhL1JIU0EtMjAwOC0wOTM3Lmh0bWwiPlJIU0EtMjAwODowOTM3PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1BTkRSSVZBIiB1cmw9Imh0dHA6Ly93d3cubWFuZHJpdmEuY29tL3NlY3VyaXR5L2Fkdmlzb3JpZXM/bmFtZT1NRFZTQS0yMDA4OjIxMSI+TURWU0EtMjAwODoyMTE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiB1cmw9Imh0dHA6Ly93d3cuZnJzaXJ0LmNvbS9lbmdsaXNoL2Fkdmlzb3JpZXMvMjAwOC8yNzgyIj5BRFYtMjAwOC0yNzgyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5jdXBzLm9yZy9zdHIucGhwP0wyOTExIj5odHRwOi8vd3d3LmN1cHMub3JnL3N0ci5waHA/TDI5MTE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjIyNiI+MzIyMjY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjA4NCI+MzIwODQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQVBQTEUiIHVybD0iaHR0cDovL2xpc3RzLmFwcGxlLmNvbS9hcmNoaXZlcy9zZWN1cml0eS1hbm5vdW5jZS8yMDA4L09jdC9tc2cwMDAwMS5odG1sIj5BUFBMRS1TQS0yMDA4LTEwLTA5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYXBwbGUiIG5hbWU9ImN1cHMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjEwLTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjE0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjE3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMzIiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM0IiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM1IiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMzIiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM0IiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM1IiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM2IiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4yMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNS0xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS41LTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjYtMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNi0yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS42LTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjktMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iYjEiIG51bT0iMS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJiMiIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjMSIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjMiIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjMyIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMi4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249ImIxIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuOCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iOS4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTM2NDIiIHNlcT0iMjAwOC0zNjQyIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTAiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI5LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+QnVmZmVyIG92ZXJmbG93IGluIENvbG9yU3luYyBpbiBNYWMgT1MgWCAxMC40LjExIGFuZCAxMC41LjUgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gY2F1c2UgYSBkZW5pYWwgb2Ygc2VydmljZSAoYXBwbGljYXRpb24gdGVybWluYXRpb24pIGFuZCBwb3NzaWJseSBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhbiBpbWFnZSB3aXRoIGEgY3JhZnRlZCBJQ0MgcHJvZmlsZS48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTY4MSI+MzE2ODE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQVBQTEUiIHVybD0iaHR0cDovL2xpc3RzLmFwcGxlLmNvbS9hcmNoaXZlcy9zZWN1cml0eS1hbm5vdW5jZS8yMDA4L09jdC9tc2cwMDAwMS5odG1sIj5BUFBMRS1TQS0yMDA4LTEwLTA5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYXBwbGUiIG5hbWU9Im1hY19vc194Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC40LjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjUuNSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhcHBsZSIgbmFtZT0ibWFjX29zX3hfc2VydmVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC40LjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjUuNSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpOL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjkiIG5hbWU9IkNWRS0yMDA4LTM2NDMiIHNlcT0iMjAwOC0zNjQzIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTAiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBGaW5kZXIgaW4gTWFjIE9TIFggMTAuNS41IGFsbG93cyB1c2VyLWFzc2lzdGVkIGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChjb250aW51b3VzIHRlcm1pbmF0aW9uIGFuZCByZXN0YXJ0KSB2aWEgYSBjcmFmdGVkIERlc2t0b3AgZmlsZSB0aGF0IGdlbmVyYXRlcyBhbiBlcnJvciB3aGVuIHByb2R1Y2luZyBpdHMgaWNvbiwgcmVsYXRlZCB0byBhbiAiZXJyb3IgcmVjb3ZlcnkgaXNzdWUuIjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBUFBMRSIgdXJsPSJodHRwOi8vbGlzdHMuYXBwbGUuY29tL2FyY2hpdmVzL3NlY3VyaXR5LWFubm91bmNlLzIwMDgvT2N0L21zZzAwMDAxLmh0bWwiIGFkdj0iMSI+QVBQTEUtU0EtMjAwOC0xMC0wOTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNS41IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeF9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjUuNSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpML0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy4yIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjMuOSIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTM2NDUiIHNlcT0iMjAwOC0zNjQ1IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTAiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjIiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+SGVhcC1iYXNlZCBidWZmZXIgb3ZlcmZsb3cgaW4gdGhlIGxvY2FsIElQQyBjb21wb25lbnQgaW4gdGhlIEVBUE9MQ29udHJvbGxlciBwbHVnaW4gZm9yIGNvbmZpZ2QgKE5ldHdvcmtpbmcgY29tcG9uZW50KSBpbiBNYWMgT1MgWCAxMC40LjExIGFuZCAxMC41LjUgYWxsb3dzIGxvY2FsIHVzZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxsb2NhbCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBUFBMRSIgdXJsPSJodHRwOi8vbGlzdHMuYXBwbGUuY29tL2FyY2hpdmVzL3NlY3VyaXR5LWFubm91bmNlLzIwMDgvT2N0L21zZzAwMDAxLmh0bWwiIGFkdj0iMSI+QVBQTEUtU0EtMjAwOC0xMC0wOTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNC4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC41LjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYXBwbGUiIG5hbWU9Im1hY19vc194X3NlcnZlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNC4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC41LjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjYuOCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTM2NDYiIHNlcT0iMjAwOC0zNjQ2IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjYuOCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5UaGUgUG9zdGZpeCBjb25maWd1cmF0aW9uIGZpbGUgaW4gTWFjIE9TIFggMTAuNS41IGNhdXNlcyBQb3N0Zml4IHRvIGJlIG5ldHdvcmstYWNjZXNzaWJsZSB3aGVuIG1haWwgaXMgc2VudCBmcm9tIGEgbG9jYWwgY29tbWFuZC1saW5lIHRvb2wsIHdoaWNoIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIHNlbmQgbWFpbCB0byBsb2NhbCBNYWMgT1MgWCB1c2Vycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTY4MSI+MzE2ODE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQVBQTEUiIHVybD0iaHR0cDovL2xpc3RzLmFwcGxlLmNvbS9hcmNoaXZlcy9zZWN1cml0eS1hbm5vdW5jZS8yMDA4L09jdC9tc2cwMDAwMS5odG1sIj5BUFBMRS1TQS0yMDA4LTEwLTA5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYXBwbGUiIG5hbWU9Im1hY19vc194Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC41LjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjkuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC0zNjQ3IiBzZXE9IjIwMDgtMzY0NyIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTEwIiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iOS4zIiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkJ1ZmZlciBvdmVyZmxvdyBpbiBQU05vcm1hbGl6ZXIgaW4gTWFjIE9TIFggMTAuNC4xMSBhbmQgMTAuNS41IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgKGFwcGxpY2F0aW9uIHRlcm1pbmF0aW9uKSBhbmQgZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBQb3N0U2NyaXB0IGZpbGUgd2l0aCBhIGNyYWZ0ZWQgYm91bmRpbmcgYm94IGNvbW1lbnQuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBUFBMRSIgdXJsPSJodHRwOi8vbGlzdHMuYXBwbGUuY29tL2FyY2hpdmVzL3NlY3VyaXR5LWFubm91bmNlLzIwMDgvT2N0L21zZzAwMDAxLmh0bWwiPkFQUExFLVNBLTIwMDgtMTAtMDk8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhcHBsZSIgbmFtZT0ibWFjX29zX3giPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjQuMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNS41IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeF9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjQuMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNS41IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSIxMC4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00MjExIiBzZXE9IjIwMDgtNDIxMSIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTEwIiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMTAuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5JbnRlZ2VyIHNpZ25lZG5lc3MgZXJyb3IgaW4gUXVpY2tMb29rIGluIE1hYyBPUyBYIDEwLjUuNSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChhcHBsaWNhdGlvbiB0ZXJtaW5hdGlvbikgYW5kIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgY3JhZnRlZCBNaWNyb3NvZnQgRXhjZWwgZmlsZSB0aGF0IHRyaWdnZXJzIGFuIG91dC1vZi1ib3VuZHMgbWVtb3J5IGFjY2Vzcy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2ODEiPjMxNjgxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkFQUExFIiB1cmw9Imh0dHA6Ly9saXN0cy5hcHBsZS5jb20vYXJjaGl2ZXMvc2VjdXJpdHktYW5ub3VuY2UvMjAwOC9PY3QvbXNnMDAwMDEuaHRtbCI+QVBQTEUtU0EtMjAwOC0xMC0wOTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNS41IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeF9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjUuNSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iMTAuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDIxMiIgc2VxPSIyMDA4LTQyMTIiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEwLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBybG9naW5kIGluIHRoZSBybG9naW4gY29tcG9uZW50IGluIE1hYyBPUyBYIDEwLjQuMTEgYW5kIDEwLjUuNSBhcHBsaWVzIGhvc3RzLmVxdWl2IGVudHJpZXMgdG8gcm9vdCBkZXNwaXRlIHdoYXQgaXMgc3RhdGVkIGluIGRvY3VtZW50YXRpb24sIHdoaWNoIG1pZ2h0IGFsbG93IHJlbW90ZSBhdHRhY2tlcnMgdG8gYnlwYXNzIGludGVuZGVkIGFjY2VzcyByZXN0cmljdGlvbnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBUFBMRSIgdXJsPSJodHRwOi8vbGlzdHMuYXBwbGUuY29tL2FyY2hpdmVzL3NlY3VyaXR5LWFubm91bmNlLzIwMDgvT2N0L21zZzAwMDAxLmh0bWwiIGFkdj0iMSI+QVBQTEUtU0EtMjAwOC0xMC0wOTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNC4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC41LjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYXBwbGUiIG5hbWU9Im1hY19vc194X3NlcnZlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNC4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC41LjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6TC9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuNiIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIzLjkiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQyMTQiIHNlcT0iMjAwOC00MjE0IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuNiIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIFNjcmlwdCBFZGl0b3IgaW4gTWFjIE9TIFggMTAuNC4xMSBhbmQgMTAuNS41IGFsbG93cyBsb2NhbCB1c2VycyB0byBjYXVzZSB0aGUgc2NyaXB0aW5nIGRpY3Rpb25hcnkgdG8gYmUgd3JpdHRlbiB0byBhcmJpdHJhcnkgbG9jYXRpb25zLCByZWxhdGVkIHRvIGFuICJpbnNlY3VyZSBmaWxlIG9wZXJhdGlvbiIgb24gdGVtcG9yYXJ5IGZpbGVzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bG9jYWwgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBUFBMRSIgdXJsPSJodHRwOi8vbGlzdHMuYXBwbGUuY29tL2FyY2hpdmVzL3NlY3VyaXR5LWFubm91bmNlLzIwMDgvT2N0L21zZzAwMDAxLmh0bWwiPkFQUExFLVNBLTIwMDgtMTAtMDk8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhcHBsZSIgbmFtZT0ibWFjX29zX3giPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjQuMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNS41IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeF9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjQuMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuNS41IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDIxNSIgc2VxPSIyMDA4LTQyMTUiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5XZWJsb2cgaW4gTWFjIE9TIFggU2VydmVyIDEwLjQuMTEgZG9lcyBub3QgcHJvcGVybHkgY2hlY2sgYW4gZXJyb3IgY29uZGl0aW9uIHdoZW4gYSB3ZWJsb2cgcG9zdGluZyBhY2Nlc3MgY29udHJvbCBsaXN0IGlzIHNwZWNpZmllZCBmb3IgYSB1c2VyIHRoYXQgaGFzIG11bHRpcGxlIHNob3J0IG5hbWVzLCB3aGljaCBtaWdodCBhbGxvdyBhdHRhY2tlcnMgdG8gYnlwYXNzIGludGVuZGVkIGFjY2VzcyByZXN0cmljdGlvbnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjgxIj4zMTY4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBUFBMRSIgdXJsPSJodHRwOi8vbGlzdHMuYXBwbGUuY29tL2FyY2hpdmVzL3NlY3VyaXR5LWFubm91bmNlLzIwMDgvT2N0L21zZzAwMDAxLmh0bWwiIGFkdj0iMSI+QVBQTEUtU0EtMjAwOC0xMC0wOTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFwcGxlIiBuYW1lPSJtYWNfb3NfeF9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjQuMTEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6TC9BQzpNL0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjYuOSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIzLjQiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00Mzk0IiBzZXE9IjIwMDgtNDM5NCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTAiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI2LjkiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+TXVsdGlwbGUgdW50cnVzdGVkIHNlYXJjaCBwYXRoIHZ1bG5lcmFiaWxpdGllcyBpbiBQb3J0YWdlIGJlZm9yZSAyLjEuNC41IGluY2x1ZGUgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgaW4gdGhlIFB5dGhvbiBzZWFyY2ggcGF0aCwgd2hpY2ggYWxsb3dzIGxvY2FsIHVzZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgbW9kaWZpZWQgUHl0aG9uIG1vZHVsZSB0aGF0IGlzIGxvYWRlZCBieSB0aGUgKDEpIHlzLWFwcHMvcG9ydGFnZSwgKDIpIG5ldC1tYWlsL2ZldGNobWFpbCwgKDMpIGFwcC1lZGl0b3JzL2xlbyBlYnVpbGRzLCBhbmQgb3RoZXIgZWJ1aWxkcy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxsb2NhbCAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjcwIj4zMTY3MDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJHRU5UT08iIHVybD0iaHR0cDovL3NlY3VyaXR5LmdlbnRvby5vcmcvZ2xzYS9nbHNhLTIwMDgxMC0wMi54bWwiPkdMU0EtMjAwODEwLTAyPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZ2VudG9vIiBuYW1lPSJwb3J0YWdlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icjMiIG51bT0iMi4wLjUxLjIyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyMiIgbnVtPSIyLjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMy4xMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuNC40IiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6Ti9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI0LjMiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTMzIiBzZXE9IjIwMDgtNDUzMyIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTAiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI0LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+Q3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgKFhTUykgdnVsbmVyYWJpbGl0eSBpbiBLYW50YW4gV0VCIFNlcnZlciAxLjggYW5kIGVhcmxpZXIgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gaW5qZWN0IGFyYml0cmFyeSB3ZWIgc2NyaXB0IG9yIEhUTUwgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPHNvbHM+DQorICAgICAgICAgICAgPHNvbCBzb3VyY2U9Im52ZCI+UGF0Y2ggSW5mb3JtYXRpb24gLSBodHRwOi8vdW55b3JhLnNha3VyYS5uZS5qcC9zb2Z0L0Vhc3lIVFRQU2VydmVyL2luZGV4Lmh0bWw8L3NvbD4NCisgICAgICAgIDwvc29scz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTI0NCI+MzEyNDQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iT1NWREIiIHVybD0iaHR0cDovL3d3dy5vc3ZkYi5vcmcvNDgyMjIiPjQ4MjIyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkpWTkRCIiB1cmw9Imh0dHA6Ly9qdm5kYi5qdm4uanAvZW4vY29udGVudHMvMjAwOC9KVk5EQi0yMDA4LTAwMDA2MC5odG1sIj5KVk5EQi0yMDA4LTAwMDA2MDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJKVk4iIHVybD0iaHR0cDovL2p2bi5qcC9lbi9qcC9KVk45NDE2MzEwNy9pbmRleC5odG1sIj5KVk4jOTQxNjMxMDc8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJrYXRhbiIgbmFtZT0id2ViX3NlcnZlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuOCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1MzQiIHNlcT0iMjAwOC00NTM0IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTAiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTEwIj4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIEVDLUNVQkUgVmVyMiAyLjEuMmEgYW5kIGVhcmxpZXIsIGFuZCBWZXIyIFJDIDIuMy4wLXJjMSBhbmQgZWFybGllciwgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB1bnNwZWNpZmllZCB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3d3dy5lYy1jdWJlLm5ldC9pbmZvLzA4MDgyOSI+aHR0cDovL3d3dy5lYy1jdWJlLm5ldC9pbmZvLzA4MDgyOTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMDY1IiBhZHY9IjEiPjMyMDY1PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkpWTkRCIiB1cmw9Imh0dHA6Ly9qdm5kYi5qdm4uanAvamEvY29udGVudHMvMjAwOC9KVk5EQi0yMDA4LTAwMDA2NS5odG1sIj5KVk5EQi0yMDA4LTAwMDA2NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJKVk4iIHVybD0iaHR0cDovL2p2bi5qcC9lbi9qcC9KVk44MTExMTU0MS9pbmRleC5odG1sIj5KVk4jODExMTE1NDE8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJlYy1jdWJlIiBuYW1lPSJlYy1jdWJlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS40LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249ImIyIiBudW09IjEuNS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4yYSIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjMuMCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDUzNSIgc2VxPSIyMDA4LTQ1MzUiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTEwIiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gRUMtQ1VCRSBWZXIyIDIuMS4yYSBhbmQgZWFybGllciwgRUMtQ1VCRSBWZXIyIEJldGEoUkMpIDIuMi4wLWJldGEgYW5kIGVhcmxpZXIsIGFuZCBFQy1DVUJFIENvbW11bml0eSBFZGl0aW9uIE5pZ2hseS1CdWlsZCByMTc2MjMgYW5kIGVhcmxpZXIgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gaW5qZWN0IGFyYml0cmFyeSB3ZWIgc2NyaXB0IG9yIEhUTUwgdmlhIHVuc3BlY2lmaWVkIHZlY3RvcnMsIGEgZGlmZmVyZW50IGlzc3VlIHRoYW4gQ1ZFLTIwMDgtNDUzNiBhbmQgQ1ZFLTIwMDgtNDUzNy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LmVjLWN1YmUubmV0L3JlbGVhc2UvZGV0YWlsLnBocD9yZWxlYXNlX2lkPTE5MyIgYWR2PSIxIj5odHRwOi8vd3d3LmVjLWN1YmUubmV0L3JlbGVhc2UvZGV0YWlsLnBocD9yZWxlYXNlX2lkPTE5MzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMDY1Ij4zMjA2NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJKVk5EQiIgdXJsPSJodHRwOi8vanZuZGIuanZuLmpwL2phL2NvbnRlbnRzLzIwMDgvSlZOREItMjAwOC0wMDAwNjQuaHRtbCI+SlZOREItMjAwOC0wMDAwNjQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iSlZOIiB1cmw9Imh0dHA6Ly9qdm4uanAvZW4vanAvSlZOOTk5MTY1NjMvaW5kZXguaHRtbCI+SlZOIzk5OTE2NTYzPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZWMtY3ViZSIgbmFtZT0iZWMtY3ViZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuNC43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJiMiIgbnVtPSIxLjUuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMmEiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4zLjAiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpOL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ1MzYiIHNlcT0iMjAwOC00NTM2IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTAiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5Dcm9zcy1zaXRlIHNjcmlwdGluZyAoWFNTKSB2dWxuZXJhYmlsaXR5IGluIEVDLUNVQkUgVmVyMSAxLjQuNiBhbmQgZWFybGllciwgVmVyMSBCZXRhIDEuNS4wLWJldGEgYW5kIGVhcmxpZXIsIFZlcjIgMi4xLjJhIGFuZCBlYXJsaWVyLCBWZXIyIEJldGEoUkMpIDIuMi4wLWJldGEgYW5kIGVhcmxpZXIsIENvbW11bml0eSBFZGl0aW9uIDEuMy40IGFuZCBlYXJsaWVyLCBhbmQgQ29tbXVuaXR5IEVkaXRpb24gTmlnaHRseS1CdWlsZCByMTczMTkgYW5kIGVhcmxpZXIgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gaW5qZWN0IGFyYml0cmFyeSB3ZWIgc2NyaXB0IG9yIEhUTUwgdmlhIHVuc3BlY2lmaWVkIHZlY3RvcnMsIGEgZGlmZmVyZW50IGlzc3VlIHRoYW4gQ1ZFLTIwMDgtNDUzNSBhbmQgQ1ZFLTIwMDgtNDUzNy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LmVjLWN1YmUubmV0L3JlbGVhc2UvZGV0YWlsLnBocD9yZWxlYXNlX2lkPTE5MyIgYWR2PSIxIj5odHRwOi8vd3d3LmVjLWN1YmUubmV0L3JlbGVhc2UvZGV0YWlsLnBocD9yZWxlYXNlX2lkPTE5MzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjA2NSIgYWR2PSIxIj4zMjA2NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJKVk4iIHVybD0iaHR0cDovL2p2bi5qcC9lbi9qcC9KVk4zNjA4NTQ4Ny9pbmRleC5odG1sIj5KVk4jMzYwODU0ODc8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJlYy1jdWJlIiBuYW1lPSJlYy1jdWJlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InVua25vd24iIG51bT0iMS4zLjQiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InVua25vd246Y29tbXVuaXR5X2VkaXRpb24iIG51bT0iMS4zLjQiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS40LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249ImIyIiBudW09IjEuNS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4yYSIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjMuMCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDUzNyIgc2VxPSIyMDA4LTQ1MzciIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTEwIiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xMCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gRUMtQ1VCRSBWZXIxIDEuNC42IGFuZCBlYXJsaWVyLCBWZXIxIEJldGEgMS41LjAtYmV0YSBhbmQgZWFybGllciwgVmVyMiAyLjEuMmEgYW5kIGVhcmxpZXIsIFZlcjIgQmV0YShSQykgMi4xLjEtYmV0YSBhbmQgZWFybGllciwgQ29tbXVuaXR5IEVkaXRpb24gMS4zLjQgYW5kIGVhcmxpZXIsIGFuZCBDb21tdW5pdHkgRWRpdGlvbiBOaWdodGx5LUJ1aWxkIHIxNzMzNiBhbmQgZWFybGllciBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBpbmplY3QgYXJiaXRyYXJ5IHdlYiBzY3JpcHQgb3IgSFRNTCB2aWEgdW5zcGVjaWZpZWQgdmVjdG9ycywgYSBkaWZmZXJlbnQgaXNzdWUgdGhhbiBDVkUtMjAwOC00NTM1IGFuZCBDVkUtMjAwOC00NTM2LjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuZWMtY3ViZS5uZXQvcmVsZWFzZS9kZXRhaWwucGhwP3JlbGVhc2VfaWQ9MTkzIiBhZHY9IjEiPmh0dHA6Ly93d3cuZWMtY3ViZS5uZXQvcmVsZWFzZS9kZXRhaWwucGhwP3JlbGVhc2VfaWQ9MTkzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIwNjUiIGFkdj0iMSI+MzIwNjU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iSlZOREIiIHVybD0iaHR0cDovL2p2bmRiLmp2bi5qcC9qYS9jb250ZW50cy8yMDA4L0pWTkRCLTIwMDgtMDAwMDYyLmh0bWwiPkpWTkRCLTIwMDgtMDAwMDYyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkpWTiIgdXJsPSJodHRwOi8vanZuLmpwL2VuL2pwL0pWTjI2NjIxNjQ2L2luZGV4Lmh0bWwiPkpWTiMyNjYyMTY0NjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImVjLWN1YmUiIG5hbWU9ImVjLWN1YmUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93biIgbnVtPSIxLjMuNCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93bjpjb21tdW5pdHlfZWRpdGlvbiIgbnVtPSIxLjMuNCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjQuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iYjIiIG51bT0iMS41LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjJhIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMy4wIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6UC9JOk4vQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI0LjMiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC0zMjcxIiBzZXE9IjIwMDgtMzI3MSIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTMiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI0LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTE0Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+QXBhY2hlIFRvbWNhdCA1LjUuMCBhbmQgNC4xLjAgdGhyb3VnaCA0LjEuMzEgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gYnlwYXNzIGFuIElQIGFkZHJlc3MgcmVzdHJpY3Rpb24gYW5kIG9idGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24gdmlhIGEgcmVxdWVzdCB0aGF0IGlzIHByb2Nlc3NlZCBjb25jdXJyZW50bHkgd2l0aCBhbm90aGVyIHJlcXVlc3QgYnV0IGluIGEgZGlmZmVyZW50IHRocmVhZCwgbGVhZGluZyB0byBhbiBpbnN0YW5jZS12YXJpYWJsZSBvdmVyd3JpdGUgYXNzb2NpYXRlZCB3aXRoIGEgInN5bmNocm9uaXphdGlvbiBwcm9ibGVtIiBhbmQgbGFjayBvZiB0aHJlYWQgc2FmZXR5LCBhbmQgcmVsYXRlZCB0byBSZW1vdGVGaWx0ZXJWYWx2ZSwgUmVtb3RlQWRkclZhbHZlLCBhbmQgUmVtb3RlSG9zdFZhbHZlLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjU4MzUiPmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI1ODM1PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTY5OCI+MzE2OTg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk3MjIwLzEwMC8wL3RocmVhZGVkIj4yMDA4MTAwOSBbU0VDVVJJVFldIENWRS0yMDA4LTMyNzEgLSBBcGFjaGUgVG9tY2F0IGluZm9ybWF0aW9uIGRpc2Nsb3N1cmU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3LmZ1aml0c3UuY29tL2dsb2JhbC9zdXBwb3J0L3NvZnR3YXJlL3NlY3VyaXR5L3Byb2R1Y3RzLWYvaW50ZXJzdGFnZS0yMDA4MDZlLmh0bWwiPmh0dHA6Ly93d3cuZnVqaXRzdS5jb20vZ2xvYmFsL3N1cHBvcnQvc29mdHdhcmUvc2VjdXJpdHkvcHJvZHVjdHMtZi9pbnRlcnN0YWdlLTIwMDgwNmUuaHRtbDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly90b21jYXQuYXBhY2hlLm9yZy9zZWN1cml0eS01Lmh0bWwiPmh0dHA6Ly90b21jYXQuYXBhY2hlLm9yZy9zZWN1cml0eS01Lmh0bWw8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vdG9tY2F0LmFwYWNoZS5vcmcvc2VjdXJpdHktNC5odG1sIiBhZHY9IjEiPmh0dHA6Ly90b21jYXQuYXBhY2hlLm9yZy9zZWN1cml0eS00Lmh0bWw8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjIzNCIgYWR2PSIxIj4zMjIzNDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJKVk4iIHVybD0iaHR0cDovL2p2bi5qcC9lbi9qcC9KVk4zMDczMjIzOS9pbmRleC5odG1sIj5KVk4jMzA3MzIyMzk8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhcGFjaGUiIG5hbWU9InRvbWNhdCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4xNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjE2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4xNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMTgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjIyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4yMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjI1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4yNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjI4IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4yOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iYmV0YSIgbnVtPSI0LjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMzAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjMxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUuNS4wIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI5LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjguNSIgbmFtZT0iQ1ZFLTIwMDgtMzU0NCIgc2VxPSIyMDA4LTM1NDQiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMyIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjkuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTQiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NdWx0aXBsZSBzdGFjay1iYXNlZCBidWZmZXIgb3ZlcmZsb3dzIGluIG92YWxhcm1zcnYgaW4gSFAgT3BlblZpZXcgTmV0d29yayBOb2RlIE1hbmFnZXIgKE9WIE5OTSkgNy41MSwgYW5kIHBvc3NpYmx5IDcuMDEsIDcuNTAsIGFuZCA3LjUzLCBhbGxvdyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgbG9uZyAoMSkgUkVRVUVTVF9TRVZfQ0hBTkdFIChha2EgbnVtYmVyIDQ3KSwgKDIpIFJFUVVFU1RfU0FWRV9TVEFURSAoYWthIG51bWJlciA2MSksIG9yICgzKSBSRVFVRVNUX1JFU1RPUkVfU1RBVEUgKGFrYSBudW1iZXIgNjIpIHJlcXVlc3QgdG8gVENQIHBvcnQgMjk1NC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iSFAiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly9oMjAwMDAud3d3Mi5ocC5jb20vYml6c3VwcG9ydC9UZWNoU3VwcG9ydC9Eb2N1bWVudC5qc3A/b2JqZWN0SUQ9YzAxNTM3Mjc1IiBhZHY9IjEiPlNTUlQwODAwNDI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzI4NjY4Ij4yODY2ODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCVUdUUkFRIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xLzQ5MDU0MSI+MjAwODA0MDcgTXVsdGlwbGUgdnVsbmVyYWJpbGl0aWVzIGluIEhQIE9wZW5WaWV3IE5OTSA3LjUzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzE2ODgiIGFkdj0iMSI+MzE2ODg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vZG93bmxvYWRzLnNlY3VyaXR5Zm9jdXMuY29tL3Z1bG5lcmFiaWxpdGllcy9leHBsb2l0cy8yODY2OC5jIj5odHRwOi8vZG93bmxvYWRzLnNlY3VyaXR5Zm9jdXMuY29tL3Z1bG5lcmFiaWxpdGllcy9leHBsb2l0cy8yODY2OC5jPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL2FsdWlnaS5hbHRlcnZpc3RhLm9yZy9hZHYvY2xvc2Vkdmlld19vbGQtYWR2LnR4dCI+aHR0cDovL2FsdWlnaS5hbHRlcnZpc3RhLm9yZy9hZHYvY2xvc2Vkdmlld19vbGQtYWR2LnR4dDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImhwIiBuYW1lPSJvcGVudmlld19uZXR3b3JrX25vZGVfbWFuYWdlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy4wMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjUwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuNTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy41MyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpOL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjkiIG5hbWU9IkNWRS0yMDA4LTM1NDUiIHNlcT0iMjAwOC0zNTQ1IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTMiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTE0Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBvdnRvcG1kIGluIEhQIE9wZW5WaWV3IE5ldHdvcmsgTm9kZSBNYW5hZ2VyIChPViBOTk0pIDcuMDEsIDcuNTEsIGFuZCA3LjUzIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgdmlhIHVua25vd24gdmVjdG9ycywgYSBkaWZmZXJlbnQgdnVsbmVyYWJpbGl0eSB0aGFuIENWRS0yMDA4LTM1MzYsIENWRS0yMDA4LTM1MzcsIGFuZCBDVkUtMjAwOC0zNTQ0LiAgTk9URTogZHVlIHRvIGluc3VmZmljaWVudCBkZXRhaWxzIGZyb20gdGhlIHZlbmRvciwgaXQgaXMgbm90IGNsZWFyIHdoZXRoZXIgdGhpcyBpcyB0aGUgc2FtZSBhcyBDVkUtMjAwOC0xODUzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJIUCIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL21hcmMuaW5mby8/bD1idWd0cmFxJmFtcDttPTEyMjM1NjkwNzAwNDA3NSZhbXA7dz0yIj5TU1JUMDgwMDQ2PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTY2OSI+MzE2Njk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVFJBQ0siIHVybD0iaHR0cDovL3NlY3VyaXR5dHJhY2tlci5jb20vaWQ/MTAyMTAxNCI+MTAyMTAxNDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzI5Nzk2IiBhZHY9IjEiPjI5Nzk2PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iaHAiIG5hbWU9Im9wZW52aWV3X25ldHdvcmtfbm9kZV9tYW5hZ2VyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuNTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy41MyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDQxMSIgc2VxPSIyMDA4LTQ0MTEiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTEzIiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xMyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gSFAgU3lzdGVtIE1hbmFnZW1lbnQgSG9tZXBhZ2UgKFNNSCkgYmVmb3JlIDIuMS4xNS4yMTAgb24gTGludXggYW5kIFdpbmRvd3MgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gaW5qZWN0IGFyYml0cmFyeSB3ZWIgc2NyaXB0IG9yIEhUTUwgdmlhIHVuc3BlY2lmaWVkIHZlY3RvcnMsIGEgZGlmZmVyZW50IHZ1bG5lcmFiaWxpdHkgdGhhbiBDVkUtMjAwOC0xNjYzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2NjMiPjMxNjYzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI3NzgiIGFkdj0iMSI+QURWLTIwMDgtMjc3ODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vc2VjdXJpdHl0cmFja2VyLmNvbS9pZD8xMDIxMDE1Ij4xMDIxMDE1PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxOTkiIGFkdj0iMSI+MzIxOTk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iSFAiIHVybD0iaHR0cDovL21hcmMuaW5mby8/bD1idWd0cmFxJmFtcDttPTEyMjM1NjU4ODQyOTYyNiZhbXA7dz0yIj5IUFNCTUEwMjM3NjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImhwIiBuYW1lPSJzeXN0ZW1fbWFuYWdlbWVudF9ob21lcGFnZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4wLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4wLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4wLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4wLTEwMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMC0xMDMoYSkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjAtMTA5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4wLTExOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjEwLTE4NiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjExLTE5NyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMTItMTE4IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4xMi0yMDAiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjItMTI3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4zLjEzMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuNC0xNDMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjUtMTQ2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS42LTE1NiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuNy0xNjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjgtMTc3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS45LTE3OCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpML0FDOkwvQXU6Ti9DOlAvSTpOL0E6TikiIENWU1NfYmFzZV9zY29yZT0iMi4xIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjMuOSIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDU0MCIgc2VxPSIyMDA4LTQ1NDAiIHNldmVyaXR5PSJMb3ciIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTEzIiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMi4xIiBtb2RpZmllZD0iMjAwOC0xMC0xNCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPldpbmRvd3MgTW9iaWxlIDYgb24gdGhlIEhUQyBIZXJtZXMgZGV2aWNlIG1ha2VzIFdMQU4gcGFzc3dvcmRzIGF2YWlsYWJsZSB0byBhbiBhdXRvLWNvbXBsZXRpb24gbWVjaGFuaXNtIGZvciB0aGUgcGFzc3dvcmQgaW5wdXQgZmllbGQsIHdoaWNoIGFsbG93cyBwaHlzaWNhbGx5IHByb3hpbWF0ZSBhdHRhY2tlcnMgdG8gYnlwYXNzIHBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uIGFuZCBvYnRhaW4gV0xBTiBhY2Nlc3MuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPGxvY2FsIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJVR1RSQVEiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9hcmNoaXZlLzEvYXJjaGl2ZS8xLzQ5NzE1MS8xMDAvMC90aHJlYWRlZCI+MjAwODEwMDggV2luZG93cyBNb2JpbGUgNiBpbnNlY3VyZSBwYXNzd29yZCBoYW5kbGluZyBhbmQgdG9vIHNob3J0IFdMQU4tcGFzc3dvcmQ8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfbW9iaWxlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI2LjAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQ1NDEiIHNlcT0iMjAwOC00NTQxIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTMiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkhlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBGVFAgc3Vic3lzdGVtIGluIFN1biBKYXZhIFN5c3RlbSBXZWIgUHJveHkgU2VydmVyIDQuMCB0aHJvdWdoIDQuMC43IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIHVuc3BlY2lmaWVkIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTc4MiI+c3VuLXdlYnByb3h5LWZ0cC1ibyg0NTc4Mik8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjkxIj4zMTY5MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI3ODEiIGFkdj0iMSI+QURWLTIwMDgtMjc4MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTVU5BTEVSVCIgdXJsPSJodHRwOi8vc3Vuc29sdmUuc3VuLmNvbS9zZWFyY2gvZG9jdW1lbnQuZG8/YXNzZXRrZXk9MS0yNi0yNDI5ODYtMSI+MjQyOTg2PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1RSQUNLIiB1cmw9Imh0dHA6Ly9zZWN1cml0eXRyYWNrZXIuY29tL2lkPzEwMjEwMzgiPjEwMjEwMzg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjIyNyIgYWR2PSIxIj4zMjIyNzwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9InN1biIgbmFtZT0iamF2YV9zeXN0ZW1fd2ViX3Byb3h5X3NlcnZlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI0LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI0LjAuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IjQuMC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iNC4wLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSI0LjAuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A1IiBudW09IjQuMC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDYiIG51bT0iNC4wLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI0LjAuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IjQuMC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iNC4wLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSI0LjAuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A1IiBudW09IjQuMC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDYiIG51bT0iNC4wLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI0LjAuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IjQuMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iNC4wLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSI0LjAuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A1IiBudW09IjQuMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDYiIG51bT0iNC4wLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI0LjAuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IjQuMC40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iNC4wLjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSI0LjAuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A1IiBudW09IjQuMC40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDYiIG51bT0iNC4wLjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI0LjAuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IjQuMC41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iNC4wLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSI0LjAuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A1IiBudW09IjQuMC41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDYiIG51bT0iNC4wLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSI0LjAuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3MiIG51bT0iNC4wLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODYiIG51bT0iNC4wLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjpocF91eCIgbnVtPSI0LjAuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnNwYXJjIiBudW09IjQuMC42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bGludXgiIG51bT0iNC4wLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSI0LjAuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnNwYXJjIiBudW09IjQuMC43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93cyIgbnVtPSI0LjAuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4NiIgbnVtPSI0LjAuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOmhwX3V4IiBudW09IjQuMC43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bGludXgiIG51bT0iNC4wLjciIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1OlMvQzpOL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjMuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI2LjgiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ1NDIiIHNlcT0iMjAwOC00NTQyIiBzZXZlcml0eT0iTG93IiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMyIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjMuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTQiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5Dcm9zcy1zaXRlIHNjcmlwdGluZyAoWFNTKSB2dWxuZXJhYmlsaXR5IGluIENpc2NvIFVuaXR5IDQueCBiZWZvcmUgNC4yKDEpRVMxNjIsIDUueCBiZWZvcmUgNS4wKDEpRVM1NiwgYW5kIDcueCBiZWZvcmUgNy4wKDIpRVM4IGFsbG93cyByZW1vdGUgYXV0aGVudGljYXRlZCBhZG1pbmlzdHJhdG9ycyB0byBpbmplY3QgYXJiaXRyYXJ5IHdlYiBzY3JpcHQgb3IgSFRNTCBieSBlbnRlcmluZyBpdCBpbiB0aGUgZGF0YWJhc2UgKGFrYSBkYXRhIHN0b3JlKS48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly93d3cudm9pcHNoaWVsZC5jb20vcmVzZWFyY2gtZGV0YWlscy5waHA/aWQ9MTI3Ij5odHRwOi8vd3d3LnZvaXBzaGllbGQuY29tL3Jlc2VhcmNoLWRldGFpbHMucGhwP2lkPTEyNzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2NDIiPjMxNjQyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjc3MSIgYWR2PSIxIj5BRFYtMjAwOC0yNzcxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNJU0NPIiB1cmw9Imh0dHA6Ly93d3cuY2lzY28uY29tL2VuL1VTL3Byb2R1Y3RzL3Byb2R1Y3RzX3NlY3VyaXR5X3Jlc3BvbnNlMDkxODZhMDA4MGEwZDg2MS5odG1sIiBhZHY9IjEiPjIwMDgxMDA4IFZvSVBzaGllbGQgUmVwb3J0ZWQgVnVsbmVyYWJpbGl0aWVzIGluIENpc2NvIFVuaXR5IFNlcnZlcjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vc2VjdXJpdHl0cmFja2VyLmNvbS9pZD8xMDIxMDEyIj4xMDIxMDEyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIyMDciIGFkdj0iMSI+MzIyMDc8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjaXNjbyIgbmFtZT0idW5pdHkiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjAoMSkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wKDIpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcjIiIG51bT0iNC4wKDMpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcjEiIG51bT0iNC4wKDQpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMCg1KSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEoMSkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4yKDEpIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LjAoMSkiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMCgyKSIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpOL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy4xIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuOSIgbmFtZT0iQ1ZFLTIwMDgtNDU0MyIgc2VxPSIyMDA4LTQ1NDMiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xMyIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuMSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTQiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5DaXNjbyBVbml0eSA0LnggYmVmb3JlIDQuMigxKUVTMTYxLCA1LnggYmVmb3JlIDUuMCgxKUVTNTMsIGFuZCA3LnggYmVmb3JlIDcuMCgyKUVTOCwgd2hlbiB1c2luZyBhbm9ueW1vdXMgYXV0aGVudGljYXRpb24gKGFrYSBuYXRpdmUgVW5pdHkgYXV0aGVudGljYXRpb24pLCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChzZXNzaW9uIGV4aGF1c3Rpb24pIHZpYSBhIGxhcmdlIG51bWJlciBvZiBjb25uZWN0aW9ucy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vd3d3LnZvaXBzaGllbGQuY29tL3Jlc2VhcmNoLWRldGFpbHMucGhwP2lkPTEyOCI+aHR0cDovL3d3dy52b2lwc2hpZWxkLmNvbS9yZXNlYXJjaC1kZXRhaWxzLnBocD9pZD0xMjg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjQyIj4zMTY0MjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI3NzEiIGFkdj0iMSI+QURWLTIwMDgtMjc3MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDSVNDTyIgdXJsPSJodHRwOi8vd3d3LmNpc2NvLmNvbS9lbi9VUy9wcm9kdWN0cy9wcm9kdWN0c19zZWN1cml0eV9yZXNwb25zZTA5MTg2YTAwODBhMGQ4NjEuaHRtbCIgYWR2PSIxIj4yMDA4MTAwOCBWb0lQc2hpZWxkIFJlcG9ydGVkIFZ1bG5lcmFiaWxpdGllcyBpbiBDaXNjbyBVbml0eSBTZXJ2ZXI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVFJBQ0siIHVybD0iaHR0cDovL3NlY3VyaXR5dHJhY2tlci5jb20vaWQ/MTAyMTAxMyI+MTAyMTAxMzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMTg3IiBhZHY9IjEiPjMyMTg3PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iY2lzY28iIG5hbWU9InVuaXR5Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wKDEpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMCgyKSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3IyIiBudW09IjQuMCgzKSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3IxIiBudW09IjQuMCg0KSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjAoNSkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xKDEpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMigxKSIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS4wKDEpIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAoMikiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpOL0k6Ti9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTQ0IiBzZXE9IjIwMDgtNDU0NCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTMiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI1LjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE0Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBhbiB1bnNwZWNpZmllZCBNaWNyb3NvZnQgQVBJLCBhcyB1c2VkIGJ5IENpc2NvIFVuaXR5IGFuZCBwb3NzaWJseSBvdGhlciBwcm9kdWN0cywgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gY2F1c2UgYSBkZW5pYWwgb2Ygc2VydmljZSBieSBzZW5kaW5nIGNyYWZ0ZWQgcGFja2V0cyB0byBkeW5hbWljIFVEUCBwb3J0cywgcmVsYXRlZCB0byBhICJwcm9jZXNzaW5nIGVycm9yLiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vd3d3LnZvaXBzaGllbGQuY29tL3Jlc2VhcmNoLWRldGFpbHMucGhwP2lkPTEyOSI+aHR0cDovL3d3dy52b2lwc2hpZWxkLmNvbS9yZXNlYXJjaC1kZXRhaWxzLnBocD9pZD0xMjk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjQyIj4zMTY0MjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI3NzEiIGFkdj0iMSI+QURWLTIwMDgtMjc3MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDSVNDTyIgdXJsPSJodHRwOi8vd3d3LmNpc2NvLmNvbS9lbi9VUy9wcm9kdWN0cy9wcm9kdWN0c19zZWN1cml0eV9yZXNwb25zZTA5MTg2YTAwODBhMGQ4NjEuaHRtbCIgYWR2PSIxIj4yMDA4MTAwOCBWb0lQc2hpZWxkIFJlcG9ydGVkIFZ1bG5lcmFiaWxpdGllcyBpbiBDaXNjbyBVbml0eSBTZXJ2ZXI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVFJBQ0siIHVybD0iaHR0cDovL3NlY3VyaXR5dHJhY2tlci5jb20vaWQ/MTAyMTAyMCI+MTAyMTAyMDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImNpc2NvIiBuYW1lPSJ1bml0eSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpTL0M6UC9JOk4vQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI0LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTQ1IiBzZXE9IjIwMDgtNDU0NSIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTMiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI0LjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE0Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+Q2lzY28gVW5pdHkgNC54IGJlZm9yZSA0LjIoMSlFUzE2MSwgNS54IGJlZm9yZSA1LjAoMSlFUzUzLCBhbmQgNy54IGJlZm9yZSA3LjAoMilFUzggdXNlcyB3ZWFrIHBlcm1pc3Npb25zIGZvciB0aGUgRDpcQ29tbVNlcnZlclxSZXBvcnRzIGRpcmVjdG9yeSwgd2hpY2ggYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIG9idGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24gYnkgcmVhZGluZyBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly93d3cudm9pcHNoaWVsZC5jb20vcmVzZWFyY2gtZGV0YWlscy5waHA/aWQ9MTMwIj5odHRwOi8vd3d3LnZvaXBzaGllbGQuY29tL3Jlc2VhcmNoLWRldGFpbHMucGhwP2lkPTEzMDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2NDIiPjMxNjQyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjc3MSIgYWR2PSIxIj5BRFYtMjAwOC0yNzcxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNJU0NPIiB1cmw9Imh0dHA6Ly93d3cuY2lzY28uY29tL2VuL1VTL3Byb2R1Y3RzL3Byb2R1Y3RzX3NlY3VyaXR5X3Jlc3BvbnNlMDkxODZhMDA4MGEwZDg2MS5odG1sIiBhZHY9IjEiPjIwMDgxMDA4IFZvSVBzaGllbGQgUmVwb3J0ZWQgVnVsbmVyYWJpbGl0aWVzIGluIENpc2NvIFVuaXR5IFNlcnZlcjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vc2VjdXJpdHl0cmFja2VyLmNvbS9pZD8xMDIxMDIyIj4xMDIxMDIyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxODciIGFkdj0iMSI+MzIxODc8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjaXNjbyIgbmFtZT0idW5pdHkiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjAoMSkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wKDIpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcjIiIG51bT0iNC4wKDMpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcjEiIG51bT0iNC4wKDQpIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMCg1KSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEoMSkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4yKDEpIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LjAoMSkiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMCgyKSIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpOL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjkiIG5hbWU9IkNWRS0yMDA4LTQ0NDEiIHNlcT0iMjAwOC00NDQxIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTE3Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VGhlIE1hcnZlbGwgZHJpdmVyIGZvciB0aGUgTGlua3N5cyBXQVA0NDAwTiBXaS1GaSBhY2Nlc3MgcG9pbnQgd2l0aCBmaXJtd2FyZSAxLjIuMTQgb24gdGhlIE1hcnZlbGwgODhXODM2MVAtQkVNMSBjaGlwc2V0LCB3aGVuIFdFUCBtb2RlIGlzIGVuYWJsZWQsIGRvZXMgbm90IHByb3Blcmx5IHBhcnNlIG1hbGZvcm1lZCA4MDIuMTEgZnJhbWVzLCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChyZWJvb3Qgb3IgaGFuZy11cCkgdmlhIGEgbWFsZm9ybWVkIGFzc29jaWF0aW9uIHJlcXVlc3QgY29udGFpbmluZyB0aGUgV0VQIGZsYWcsIGFzIGRlbW9uc3RyYXRlZCBieSBhIHJlcXVlc3QgdGhhdCBpcyB0b28gc2hvcnQsIGEgZGlmZmVyZW50IHZ1bG5lcmFiaWxpdHkgdGhhbiBDVkUtMjAwOC0xMTQ0IGFuZCBDVkUtMjAwOC0xMTk3LjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJYRiIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU4NDEiPmxpbmtzeXMtd2FwNDQwMG4tcmVxdWVzdC1kb3MoNDU4NDEpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTc0MiI+MzE3NDI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk3Mjg1LzEwMC8wL3RocmVhZGVkIj4yMDA4MTAxMyBNYXJ2ZWxsIERyaXZlciBNYWxmb3JtZWQgQXNzb2NpYXRpb24gUmVxdWVzdCBWdWxuZXJhYmlsaXR5PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjgwNSI+QURWLTIwMDgtMjgwNTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMjU5Ij4zMjI1OTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImxpbmtzeXMiIG5hbWU9IndhcDQwMG4iPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMi4xNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpOL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDU0NiIgc2VxPSIyMDA4LTQ1NDYiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xNCI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkFkb2JlIEZsYXNoIFBsYXllciA5LjAuNDUuMCwgOS4wLjExMi4wLCA5LjAuMTI0LjAsIGFuZCAxMC4wLjEyLjEwIGFsbG93cyByZW1vdGUgd2ViIHNlcnZlcnMgdG8gY2F1c2UgYSBkZW5pYWwgb2Ygc2VydmljZSAoTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGFuZCBicm93c2VyIGNyYXNoKSBieSByZXR1cm5pbmcgYSBkaWZmZXJlbnQgcmVzcG9uc2Ugd2hlbiBhbiBIVFRQIHJlcXVlc3QgaXMgc2VudCBhIHNlY29uZCB0aW1lLCBhcyBkZW1vbnN0cmF0ZWQgYnkgdHdvIHJlc3BvbnNlcyB0aGF0IHByb3ZpZGUgU1dGIGZpbGVzIHdpdGggZGlmZmVyZW50IFNXRiB2ZXJzaW9uIG51bWJlcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCVUdUUkFRIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xL2FyY2hpdmUvMS80OTY5MjkvMTAwLzAvdGhyZWFkZWQiPjIwMDgxMDAyIEFkb2JlIEZsYXNoIFBsYXllciBwbHVnLWluIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBhbmQgYnJvd3NlciBjcmFzaDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly93d3cubW9jaGltZWRpYS5jb20vfm1hdHRoZXcvZmxhc2hjcmFzaC8iPmh0dHA6Ly93d3cubW9jaGltZWRpYS5jb20vfm1hdHRoZXcvZmxhc2hjcmFzaC88L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhZG9iZSIgbmFtZT0iZmxhc2hfcGxheWVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4wLjEyLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMC4xMTIuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAuMTE1LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4wLjQ1LjAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjkuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00NTQ3IiBzZXE9IjIwMDgtNDU0NyIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iOS4zIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkhlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBQZHZyQXRsLlBkdnJPY3guMSBBY3RpdmVYIGNvbnRyb2wgKHBkdnJhdGwuZGxsKSBpbiBEVlJIT1NUIFdlYiBDTVMgT0NYIDEuMC4xLjI1IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgbG9uZyBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIFRpbWVTcGFuRm9ybWF0IG1ldGhvZC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzM5NjQwIj5kdnJob3N0LXBkdnJvY3gtYm8oMzk2NDApPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8yNzI2NyI+MjcyNjc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzQ5MDMiPjQ5MDM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8yODQ0MyIgYWR2PSIxIj4yODQ0MzwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImR2cmhvc3QiIG5hbWU9IndlYl9jbXMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4xLjI1IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI5LjMiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDU0OCIgc2VxPSIyMDA4LTQ1NDgiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjkuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5TdGFjay1iYXNlZCBidWZmZXIgb3ZlcmZsb3cgaW4gdGhlIFBUWkNhbVBhbmVsQ3RybCBBY3RpdmVYIGNvbnRyb2wgKENhbVBhbmVsLmRsbCkgaW4gUlRTIFNlbnRyeSAyLjEuMC4yIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgbG9uZyBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIENvbm5lY3RTZXJ2ZXIgbWV0aG9kLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi8zOTcyNSI+cnRzc2VudHJ5LXB0emNhbXBhbmVsY3RybC1ibygzOTcyNSk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzI3MzA0Ij4yNzMwNDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNDkxOCI+NDkxODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzI4NDM1IiBhZHY9IjEiPjI4NDM1PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0icnRzc2VudHJ5IiBuYW1lPSJydHNzZW50cnkiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMS4wLjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpIL0F1Ok4vQzpQL0k6Ti9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjIuNiIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI0LjkiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ1NDkiIHNlcT0iMjAwOC00NTQ5IiBzZXZlcml0eT0iTG93IiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjIuNiIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5UaGUgSW1hZ2VTaGFjayBUb29sYmFyIEFjdGl2ZVggY29udHJvbCAoSW1hZ2VTaGFja1Rvb2xiYXIuZGxsKSBpbiBJbWFnZVNoYWNrIFRvb2xiYXIgNC41LjcsIHBvc3NpYmx5IGluY2x1ZGluZyA0LjUuNy42OSwgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZm9yY2UgdGhlIHVwbG9hZCBvZiBhcmJpdHJhcnkgaW1hZ2UgZmlsZXMgdG8gdGhlIEltYWdlU2hhY2sgc2l0ZSB2aWEgYSBmaWxlOiBVUkkgYXJndW1lbnQgdG8gdGhlIEJ1aWxkU2xpZGVTaG93IG1ldGhvZC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzM5OTIxIj50b29sYmFyLWltYWdlc2hhY2t0b29sYmFyLWluZm8tZGlzY2xvc3VyZSgzOTkyMSk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzI3NDM5Ij4yNzQzOTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCVUdUUkFRIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xL2FyY2hpdmUvMS80ODY5NDEvMTAwLzIwMC90aHJlYWRlZCI+MjAwODAxMjQgSW1hZ2VTaGFjayBUb29sYmFyIEZpbGVVcGxvYWRlciBDbGFzcyBpbnNlY3VyaXRpZXM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzQ5ODEiPjQ5ODE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8yODY0NCIgYWR2PSIxIj4yODY0NDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImltYWdlc2hhY2siIG5hbWU9ImltYWdlc2hhY2tfdG9vbGJhciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC41LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC41LjcuNjkiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpOL0k6Ti9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTUxIiBzZXE9IjIwMDgtNDU1MSIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI1LjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+c3Ryb25nU3dhbiA0LjIuNiBhbmQgZWFybGllciBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChkYWVtb24gY3Jhc2gpIHZpYSBhbiBJS0VfU0FfSU5JVCBtZXNzYWdlIHdpdGggYSBsYXJnZSBudW1iZXIgb2YgTlVMTCB2YWx1ZXMgaW4gYSBLZXkgRXhjaGFuZ2UgcGF5bG9hZCwgd2hpY2ggdHJpZ2dlcnMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgZm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIG1wel9leHBvcnQgZnVuY3Rpb24gaW4gdGhlIEdOVSBNdWx0aXByZWNpc2lvbiBMaWJyYXJ5IChHTVApLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5dHJhY2tlci5jb20vaWQ/MTAyMDkwMyI+MTAyMDkwMzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzEyOTEiPjMxMjkxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjY2MCIgYWR2PSIxIj5BRFYtMjAwOC0yNjYwPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzE5NjMiIGFkdj0iMSI+MzE5NjM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vbGFicy5tdWR5bmFtaWNzLmNvbS9hZHZpc29yaWVzL01VLTIwMDgwOS0wMS50eHQiPmh0dHA6Ly9sYWJzLm11ZHluYW1pY3MuY29tL2Fkdmlzb3JpZXMvTVUtMjAwODA5LTAxLnR4dDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly9kb3dubG9hZC5zdHJvbmdzd2FuLm9yZy9DSEFOR0VTNC50eHQiPmh0dHA6Ly9kb3dubG9hZC5zdHJvbmdzd2FuLm9yZy9DSEFOR0VTNC50eHQ8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJzdHJvbmdzd2FuIiBuYW1lPSJzdHJvbmdzd2FuIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjAuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjAuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjAuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjMuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjMuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjMuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjQuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjQuMGEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi40LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi40LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi40LjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi43LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4wLjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjQuMS4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjEuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIuNiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1NTIiIHNlcT0iMjAwOC00NTUyIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+bmZzLXV0aWxzIDEuMC45LCBhbmQgcG9zc2libHkgb3RoZXIgdmVyc2lvbnMgYmVmb3JlIDEuMS4zLCBpbnZva2VzIHRoZSBob3N0X2N0bCBmdW5jdGlvbiB3aXRoIHRoZSB3cm9uZyBvcmRlciBvZiBhcmd1bWVudHMsIHdoaWNoIGNhdXNlcyBUQ1AgV3JhcHBlcnMgdG8gaWdub3JlIG5ldGdyb3VwcyBhbmQgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gYnlwYXNzIGludGVuZGVkIGFjY2VzcyByZXN0cmljdGlvbnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NDU4Njc2Ij5odHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTQ1ODY3NjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im5mcyIgbmFtZT0ibmZzLXV0aWxzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIwLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMC4yLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMC4zLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMC4zLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4xMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLjEyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJwcmUtMSIgbnVtPSIxLjAuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icHJlLTIiIG51bT0iMS4wLjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjLTEiIG51bT0iMS4wLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjLTIiIG51bT0iMS4wLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjLTMiIG51bT0iMS4wLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjLTQiIG51bT0iMS4wLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjLTEiIG51bT0iMS4xLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjIiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC0zNjM5IiBzZXE9IjIwMDgtMzYzOSIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkhlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93IGluIHRoZSByZWFkX3JsZTE2IGZ1bmN0aW9uIGluIGltYWdldG9wcyBpbiBDVVBTIGJlZm9yZSAxLjMuOSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhbiBTR0kgaW1hZ2Ugd2l0aCBtYWxmb3JtZWQgUnVuIExlbmd0aCBFbmNvZGVkIChSTEUpIGRhdGEgY29udGFpbmluZyBhIHNtYWxsIGltYWdlIGFuZCBhIGxhcmdlIHJvdyBjb3VudC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1RSQUNLIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHl0cmFja2VyLmNvbS9pZD8xMDIxMDMzIj4xMDIxMDMzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTY5MCI+MzE2OTA8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iUkVESEFUIiB1cmw9Imh0dHA6Ly93d3cucmVkaGF0LmNvbS9zdXBwb3J0L2VycmF0YS9SSFNBLTIwMDgtMDkzNy5odG1sIj5SSFNBLTIwMDg6MDkzNzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNQU5EUklWQSIgdXJsPSJodHRwOi8vd3d3Lm1hbmRyaXZhLmNvbS9zZWN1cml0eS9hZHZpc29yaWVzP25hbWU9TURWU0EtMjAwODoyMTEiPk1EVlNBLTIwMDg6MjExPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkZSU0lSVCIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjc4MiIgYWR2PSIxIj5BRFYtMjAwOC0yNzgyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5jdXBzLm9yZy9zdHIucGhwP0wyOTE4IiBhZHY9IjEiPmh0dHA6Ly93d3cuY3Vwcy5vcmcvc3RyLnBocD9MMjkxODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cuY3Vwcy5vcmcvYXJ0aWNsZXMucGhwP0w1NzUiPmh0dHA6Ly93d3cuY3Vwcy5vcmcvYXJ0aWNsZXMucGhwP0w1NzU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjIyNiIgYWR2PSIxIj4zMjIyNjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMDg0IiBhZHY9IjEiPjMyMDg0PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYXBwbGUiIG5hbWU9ImN1cHMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjEwLTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjE0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjE3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMzIiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM0IiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM1IiBudW09IjEuMS4xOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMzIiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM0IiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM1IiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM2IiBudW09IjEuMS4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMS4yMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMS4yMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNS0xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS41LTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjYtMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNi0yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS42LTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjktMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iYjEiIG51bT0iMS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJiMiIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjMSIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjMiIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InJjMyIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMi4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249ImIxIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMuOCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNi44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtMzY0MCIgc2VxPSIyMDA4LTM2NDAiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNi44IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkludGVnZXIgb3ZlcmZsb3cgaW4gdGhlIFdyaXRlUHJvbG9nIGZ1bmN0aW9uIGluIHRleHR0b3BzIGluIENVUFMgYmVmb3JlIDEuMy45IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgY3JhZnRlZCBQb3N0U2NyaXB0IGZpbGUgdGhhdCB0cmlnZ2VycyBhIGhlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93LjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5dHJhY2tlci5jb20vaWQ/MTAyMTAzNCI+MTAyMTAzNDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE2OTAiPjMxNjkwPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlJFREhBVCIgdXJsPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vc3VwcG9ydC9lcnJhdGEvUkhTQS0yMDA4LTA5MzcuaHRtbCI+UkhTQS0yMDA4OjA5Mzc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUFORFJJVkEiIHVybD0iaHR0cDovL3d3dy5tYW5kcml2YS5jb20vc2VjdXJpdHkvYWR2aXNvcmllcz9uYW1lPU1EVlNBLTIwMDg6MjExIj5NRFZTQS0yMDA4OjIxMTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI3ODIiIGFkdj0iMSI+QURWLTIwMDgtMjc4MjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cuY3Vwcy5vcmcvc3RyLnBocD9MMjkxOSI+aHR0cDovL3d3dy5jdXBzLm9yZy9zdHIucGhwP0wyOTE5PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5jdXBzLm9yZy9hcnRpY2xlcy5waHA/TDU3NSI+aHR0cDovL3d3dy5jdXBzLm9yZy9hcnRpY2xlcy5waHA/TDU3NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMjI2IiBhZHY9IjEiPjMyMjI2PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIwODQiIGFkdj0iMSI+MzIwODQ8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhcHBsZSIgbmFtZT0iY3VwcyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTAtMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjEyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjE1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMTciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjE4IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzEiIG51bT0iMS4xLjE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzIiIG51bT0iMS4xLjE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzMiIG51bT0iMS4xLjE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzQiIG51bT0iMS4xLjE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzUiIG51bT0iMS4xLjE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzEiIG51bT0iMS4xLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzIiIG51bT0iMS4xLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzMiIG51bT0iMS4xLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzQiIG51bT0iMS4xLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzUiIG51bT0iMS4xLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzYiIG51bT0iMS4xLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzEiIG51bT0iMS4xLjIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzIiIG51bT0iMS4xLjIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzEiIG51bT0iMS4xLjIyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzIiIG51bT0iMS4xLjIyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzEiIG51bT0iMS4xLjIzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS41LTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjUtMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNi0xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS42LTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xLjYtMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuOS0xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJiMSIgbnVtPSIxLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249ImIyIiBudW09IjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMzIiBudW09IjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4yLjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMi4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjIuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iYjEiIG51bT0iMS4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzEiIG51bT0iMS4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzIiIG51bT0iMS4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMy44IiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImN1cHMiIG5hbWU9ImN1cHMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iOS4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQzODUiIHNlcT0iMjAwOC00Mzg1IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI5LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+SHVzZGF3ZywgTExDIFN5c3RlbXMgUmVxdWlyZW1lbnRzIExhYiAzIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGZvcmNlIHRoZSBkb3dubG9hZCBhbmQgZXhlY3V0aW9uIG9mIGFyYml0cmFyeSBwcm9ncmFtcyB2aWEgdW5rbm93biB2ZWN0b3JzIGluICgxKSBBY3RpdmVYIGNvbnRyb2wgKHN5c3JlcWxhYi5kbGwsIHN5c3JlcWxhYnNsaS5kbGwsIG9yIHN5c3JlcWxhYjIuZGxsKSBhbmQgKDIpIEphdmEgYXBwbGV0IGluIFJMQXBwbGV0LmNsYXNzIGluIHN5c3JlcWxhYjIuamFyIG9yIHN5c3JlcWxhYi5qYXIuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNFUlQtVk4iIHVybD0iaHR0cDovL3d3dy5rYi5jZXJ0Lm9yZy92dWxzL2lkLzE2NjY1MSIgYWR2PSIxIj5WVSMxNjY2NTE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3LnN5c3RlbXJlcXVpcmVtZW50c2xhYi5jb20vYnVsbGV0aW5zL3NlY3VyaXR5X2J1bGxldGluXzEuaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3LnN5c3RlbXJlcXVpcmVtZW50c2xhYi5jb20vYnVsbGV0aW5zL3NlY3VyaXR5X2J1bGxldGluXzEuaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9InN5c3RlbXJlcXVpcmVtZW50c2xhYiIgbmFtZT0ic3lzdGVtX3JlcXVpcmVtZW50c19sYWIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjMiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQzOTciIHNlcT0iMjAwOC00Mzk3IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkRpcmVjdG9yeSB0cmF2ZXJzYWwgdnVsbmVyYWJpbGl0eSBpbiB0aGUgUlBDIGludGVyZmFjZSAoYXNkYmFwaS5kbGwpIGluIENBIEFSQ3NlcnZlIEJhY2t1cCAoZm9ybWVybHkgQnJpZ2h0U3RvciBBUkNzZXJ2ZSBCYWNrdXApIHIxMS4xIHRocm91Z2ggcjEyLjAgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29tbWFuZHMgdmlhIGEgLi4gKGRvdCBkb3QpIGluIGFuIFJQQyBjYWxsIHdpdGggb3BudW0gMHgxMEEuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiBwYXRjaD0iMSIgdXJsPSJodHRwczovL3N1cHBvcnQuY2EuY29tL2lyai9wb3J0YWwvYW5vbnltb3VzL3BocHN1cGNvbnRlbnQ/Y29udGVudElEPTE4ODE0MyIgYWR2PSIxIj5odHRwczovL3N1cHBvcnQuY2EuY29tL2lyai9wb3J0YWwvYW5vbnltb3VzL3BocHN1cGNvbnRlbnQ/Y29udGVudElEPTE4ODE0MzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCVUdUUkFRIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xL2FyY2hpdmUvMS80OTcyODEvMTAwLzAvdGhyZWFkZWQiPjIwMDgxMDExIENBIEJyaWdodFN0b3IgQVJDU2VydmUgQmFja1VwIE1lc3NhZ2UgRW5naW5lIFJlbW90ZSBDb21tYW5kIEluamVjdGlvbiBWdWxuZXJhYmlsaXR5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iY2EiIG5hbWU9ImFyY3NlcnZlX2JhY2t1cCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjExLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjExLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjEyLjAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iY2EiIG5hbWU9ImJ1c2luZXNzX3Byb3RlY3Rpb25fc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0icjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjptaWNyb3NvZnRfc21hbGxfYnVzaW5lc3Nfc2VydmVyX3ByZW1pdW0iIG51bT0icjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjptaWNyb3NvZnRfc21hbGxfYnVzaW5lc3Nfc2VydmVyX3N0YW5kYXJkIiBudW09InIyIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImNhIiBuYW1lPSJzZXJ2ZXJfcHJvdGVjdGlvbl9zdWl0ZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpOL0k6Ti9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00Mzk4IiBzZXE9IjIwMDgtNDM5OCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI1LjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgdGFwZSBlbmdpbmUgc2VydmljZSBpbiBhc2RiYXBpLmRsbCBpbiBDQSBBUkNzZXJ2ZSBCYWNrdXAgKGZvcm1lcmx5IEJyaWdodFN0b3IgQVJDc2VydmUgQmFja3VwKSByMTEuMSB0aHJvdWdoIHIxMi4wIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgKGNyYXNoKSB2aWEgYSBjcmFmdGVkIHJlcXVlc3QuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cHM6Ly9zdXBwb3J0LmNhLmNvbS9pcmovcG9ydGFsL2Fub255bW91cy9waHBzdXBjb250ZW50P2NvbnRlbnRJRD0xODgxNDMiIGFkdj0iMSI+aHR0cHM6Ly9zdXBwb3J0LmNhLmNvbS9pcmovcG9ydGFsL2Fub255bW91cy9waHBzdXBjb250ZW50P2NvbnRlbnRJRD0xODgxNDM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjYSIgbmFtZT0iYXJjc2VydmVfYmFja3VwIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMTEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMTEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMTIuMCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjYSIgbmFtZT0iYnVzaW5lc3NfcHJvdGVjdGlvbl9zdWl0ZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSJyMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOm1pY3Jvc29mdF9zbWFsbF9idXNpbmVzc19zZXJ2ZXJfcHJlbWl1bSIgbnVtPSJyMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOm1pY3Jvc29mdF9zbWFsbF9idXNpbmVzc19zZXJ2ZXJfc3RhbmRhcmQiIG51bT0icjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iY2EiIG5hbWU9InNlcnZlcl9wcm90ZWN0aW9uX3N1aXRlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpOL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNS4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQzOTkiIHNlcT0iMjAwOC00Mzk5IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBkYXRhYmFzZSBlbmdpbmUgc2VydmljZSBpbiBhc2RiYXBpLmRsbCBpbiBDQSBBUkNzZXJ2ZSBCYWNrdXAgKGZvcm1lcmx5IEJyaWdodFN0b3IgQVJDc2VydmUgQmFja3VwKSByMTEuMSB0aHJvdWdoIHIxMi4wIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGNhdXNlIGEgZGVuaWFsIG9mIHNlcnZpY2UgKGNyYXNoKSB2aWEgYSBjcmFmdGVkIHJlcXVlc3QsIHJlbGF0ZWQgdG8gImluc3VmZmljaWVudCB2YWxpZGF0aW9uLiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgcGF0Y2g9IjEiIHVybD0iaHR0cHM6Ly9zdXBwb3J0LmNhLmNvbS9pcmovcG9ydGFsL2Fub255bW91cy9waHBzdXBjb250ZW50P2NvbnRlbnRJRD0xODgxNDMiIGFkdj0iMSI+aHR0cHM6Ly9zdXBwb3J0LmNhLmNvbS9pcmovcG9ydGFsL2Fub255bW91cy9waHBzdXBjb250ZW50P2NvbnRlbnRJRD0xODgxNDM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjYSIgbmFtZT0iYXJjc2VydmVfYmFja3VwIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMTEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMTEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMTIuMCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjYSIgbmFtZT0iYnVzaW5lc3NfcHJvdGVjdGlvbl9zdWl0ZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSJyMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOm1pY3Jvc29mdF9zbWFsbF9idXNpbmVzc19zZXJ2ZXJfcHJlbWl1bSIgbnVtPSJyMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOm1pY3Jvc29mdF9zbWFsbF9idXNpbmVzc19zZXJ2ZXJfc3RhbmRhcmQiIG51bT0icjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iY2EiIG5hbWU9InNlcnZlcl9wcm90ZWN0aW9uX3N1aXRlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJyMiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpOL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNS4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ0MDAiIHNlcT0iMjAwOC00NDAwIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIGFzZGJhcGkuZGxsIGluIENBIEFSQ3NlcnZlIEJhY2t1cCAoZm9ybWVybHkgQnJpZ2h0U3RvciBBUkNzZXJ2ZSBCYWNrdXApIHIxMS4xIHRocm91Z2ggcjEyLjAgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gY2F1c2UgYSBkZW5pYWwgb2Ygc2VydmljZSAoY3Jhc2ggb2YgbXVsdGlwbGUgc2VydmljZXMpIHZpYSBjcmFmdGVkIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzLCByZWxhdGVkIHRvICJpbnN1ZmZpY2llbnQgdmFsaWRhdGlvbi4iPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHBhdGNoPSIxIiB1cmw9Imh0dHBzOi8vc3VwcG9ydC5jYS5jb20vaXJqL3BvcnRhbC9hbm9ueW1vdXMvcGhwc3VwY29udGVudD9jb250ZW50SUQ9MTg4MTQzIiBhZHY9IjEiPmh0dHBzOi8vc3VwcG9ydC5jYS5jb20vaXJqL3BvcnRhbC9hbm9ueW1vdXMvcGhwc3VwY29udGVudD9jb250ZW50SUQ9MTg4MTQzPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iY2EiIG5hbWU9ImFyY3NlcnZlX2JhY2t1cCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjExLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjExLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjEyLjAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iY2EiIG5hbWU9ImJ1c2luZXNzX3Byb3RlY3Rpb25fc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0icjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjptaWNyb3NvZnRfc21hbGxfYnVzaW5lc3Nfc2VydmVyX3ByZW1pdW0iIG51bT0icjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjptaWNyb3NvZnRfc21hbGxfYnVzaW5lc3Nfc2VydmVyX3N0YW5kYXJkIiBudW09InIyIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImNhIiBuYW1lPSJzZXJ2ZXJfcHJvdGVjdGlvbl9zdWl0ZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0icjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1OlMvQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjguNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI2LjgiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00NTU1IiBzZXE9IjIwMDgtNDU1NSIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iOC41IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlN0YWNrLWJhc2VkIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgcHVzaF9zdWJnIGZ1bmN0aW9uIGluIHBhcnNlci55IChsaWIvZ3JhcGgvcGFyc2VyLmMpIGluIEdyYXBodml6IDIuMjAuMiwgYW5kIHBvc3NpYmx5IGVhcmxpZXIgdmVyc2lvbnMsIGFsbG93cyB1c2VyLWFzc2lzdGVkIHJlbW90ZSBhdHRhY2tlcnMgdG8gY2F1c2UgYSBkZW5pYWwgb2Ygc2VydmljZSAobWVtb3J5IGNvcnJ1cHRpb24pIG9yIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgRE9UIGZpbGUgd2l0aCBhIGxhcmdlIG51bWJlciBvZiBBZ3JhcGhfdCBlbGVtZW50cy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNjQ4Ij4zMTY0ODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCVUdUUkFRIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xL2FyY2hpdmUvMS80OTcxNTAvMTAwLzAvdGhyZWFkZWQiPjIwMDgxMDA4IEFkdmlzb3J5OiBHcmFwaHZpeiBCdWZmZXIgT3ZlcmZsb3cgQ29kZSBFeGVjdXRpb248L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjE4NiIgYWR2PSIxIj4zMjE4NjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly9yb2VlaGF5LmJsb2dzcG90LmNvbS8yMDA4LzEwL2dyYXBodml6LWJ1ZmZlci1vdmVyZmxvdy1jb2RlLWV4ZWN1dGlvbi5odG1sIj5odHRwOi8vcm9lZWhheS5ibG9nc3BvdC5jb20vMjAwOC8xMC9ncmFwaHZpei1idWZmZXItb3ZlcmZsb3ctY29kZS1leGVjdXRpb24uaHRtbDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly9idWdzLmdlbnRvby5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDYzNiI+aHR0cDovL2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNjM2PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZ3JhcGh2aXoiIG5hbWU9ImdyYXBodml6Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEwXzIwMDMtMDktMTVfMDQxNV8xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMTBfMjAwMy0wOS0xNV8wNDE1XzIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xMi4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMTIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEyLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4xNC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMTYuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjUuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjUuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjUuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjcuMTYuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjcuMTYuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjcuNS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuNy41LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS43LjUuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjcuNS40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuNy41LjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS43LjUuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjcuNS43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuNy41XzAuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjcuNV8wLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS43LjVfMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuOC41LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS44LjUuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjguOS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjE0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMTYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4yLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4yLjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIwLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4yMC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMjAuMiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuOCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpML0FDOkwvQXU6Ti9DOlAvSTpOL0E6TikiIENWU1NfYmFzZV9zY29yZT0iMi4xIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjMuOSIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtMjU4OCIgc2VxPSIyMDA4LTI1ODgiIHNldmVyaXR5PSJMb3ciIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMi4xIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIE9yYWNsZSBKRGV2ZWxvcGVyIGNvbXBvbmVudCBpbiBPcmFjbGUgQXBwbGljYXRpb24gU2VydmVyIDEwLjEuMi4yIGFsbG93cyBsb2NhbCB1c2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPGxvY2FsIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iamRldmVsb3BlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMS4yLjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6TC9BQzpML0F1OlMvQzpOL0k6Ti9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjEuNyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIzLjEiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTI2MTkiIHNlcT0iMjAwOC0yNjE5IiBzZXZlcml0eT0iTG93IiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEuNyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgUmVwb3J0cyBEZXZlbG9wZXIgY29tcG9uZW50IGluIE9yYWNsZSBBcHBsaWNhdGlvbiBTZXJ2ZXIgMS4wLjIuMiwgOS4wLjQuMywgYW5kIDEwLjEuMi4yLCBhbmQgRS1CdXNpbmVzcyBTdWl0ZSAxMS41LjEwLjIsIGFsbG93cyByZW1vdGUgYXV0aGVudGljYXRlZCB1c2VycyB0byBhZmZlY3QgYXZhaWxhYmlsaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxsb2NhbCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImFwcGxpY2F0aW9uX3NlcnZlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLjIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4xLjIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAuNC4zIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZS1idXNpbmVzc19zdWl0ZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTEuNS4xMC4yIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpTL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI2LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC0yNjI0IiBzZXE9IjIwMDgtMjYyNCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI2LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgT3JhY2xlIE9MQVAgY29tcG9uZW50IGluIE9yYWNsZSBEYXRhYmFzZSAxMC4xLjAuNSBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSwgaW50ZWdyaXR5LCBhbmQgYXZhaWxhYmlsaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzEwZyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMS4wLjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpIL0F1Ok4vQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI0LjkiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTI2MjUiIHNlcT0iMjAwOC0yNjI1IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBDb3JlIFJEQk1TIGNvbXBvbmVudCBpbiBPcmFjbGUgRGF0YWJhc2UgOS4yLjAuOCwgOS4yLjAuOERWLCAxMC4xLjAuNSwgYW5kIDEwLjIuMC4yIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV8xMGciPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjEuMC41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjIuMC4yIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfOWkiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMi4wLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4yLjAuOGR2IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Ti9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtMzk3NSIgc2VxPSIyMDA4LTM5NzUiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIE9yYWNsZSBQb3J0YWwgY29tcG9uZW50IGluIE9yYWNsZSBBcHBsaWNhdGlvbiBTZXJ2ZXIgOS4wLjQuMyBhbmQgMTAuMS4yLjMgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gYWZmZWN0IGludGVncml0eSB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiIGFkdj0iMSI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJhcHBsaWNhdGlvbl9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjEuMi4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMC40LjMiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTM5NzYiIHNlcT0iMjAwOC0zOTc2IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgU3BhdGlhbCBjb21wb25lbnQgaW4gT3JhY2xlIERhdGFiYXNlIDkuMi4wLjgsIDkuMi4wLjhEViwgMTAuMS4wLjUsIGFuZCAxMC4yLjAuMyBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSBhbmQgaW50ZWdyaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTBnIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4xLjAuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4yLjAuMyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzlpIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjIuMC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMi4wLjhkdiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNS4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTM5NzciIHNlcT0iMjAwOC0zOTc3IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgUG9ydGFsIGNvbXBvbmVudCBpbiBPcmFjbGUgQXBwbGljYXRpb24gU2VydmVyIDkuMC40LjMgYW5kIDEwLjEuMi4zIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGFmZmVjdCBpbnRlZ3JpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iYXBwbGljYXRpb25fc2VydmVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4xLjIuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAuNC4zIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpTL0M6UC9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI0LjkiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iNi44IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNC45IiBuYW1lPSJDVkUtMjAwOC0zOTgwIiBzZXE9IjIwMDgtMzk4MCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI0LjkiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgVXBncmFkZSBjb21wb25lbnQgaW4gT3JhY2xlIERhdGFiYXNlIDEwLjEuMC41IGFuZCAxMC4yLjAuMyBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSBhbmQgaW50ZWdyaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTBnIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4xLjAuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4yLjAuMyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Uy9DOlAvSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNS41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjQuOSIgbmFtZT0iQ1ZFLTIwMDgtMzk4MiIgc2VxPSIyMDA4LTM5ODIiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS41IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIFdvcmtzcGFjZSBNYW5hZ2VyIGNvbXBvbmVudCBpbiBPcmFjbGUgRGF0YWJhc2UgOS4yLjAuOCwgOS4yLjAuOERWLCAxMC4xLjAuNSwgMTAuMi4wLjMsIGFuZCAxMS4xLjAuNiBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSBhbmQgaW50ZWdyaXR5LCByZWxhdGVkIHRvIFNZUy5MVCBhbmQgV01TWVMuTFQuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTBnIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4xLjAuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4yLjAuMyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzExaSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTEuMS4wLjYiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV85aSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4yLjAuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjIuMC44ZHYiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTM5ODMiIHNlcT0iMjAwOC0zOTgzIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBXb3Jrc3BhY2UgTWFuYWdlciBjb21wb25lbnQgaW4gT3JhY2xlIERhdGFiYXNlIDkuMi4wLjgsIDkuMi4wLjhEViwgMTAuMS4wLjUsIDEwLjIuMC4zLCBhbmQgMTEuMS4wLjYgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSwgcmVsYXRlZCB0byBTWVMuTFQgYW5kIFdNU1lTLkxULjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzEwZyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMS4wLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMi4wLjMiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV8xMWkiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjExLjEuMC42IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfOWkiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMi4wLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4yLjAuOGR2IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpTL0M6UC9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNC45IiBuYW1lPSJDVkUtMjAwOC0zOTg0IiBzZXE9IjIwMDgtMzk4NCIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI1LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgV29ya3NwYWNlIE1hbmFnZXIgY29tcG9uZW50IGluIE9yYWNsZSBEYXRhYmFzZSA5LjIuMC44LCA5LjIuMC44RFYsIDEwLjEuMC41LCAxMC4yLjAuMywgYW5kIDExLjEuMC42IGFsbG93cyByZW1vdGUgYXV0aGVudGljYXRlZCB1c2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5IGFuZCBpbnRlZ3JpdHksIHJlbGF0ZWQgdG8gU1lTLkxUIGFuZCBXTVNZUy5MVC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiIGFkdj0iMSI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV8xMGciPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjEuMC41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjIuMC4zIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTFpIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMS4xLjAuNiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzlpIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjIuMC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMi4wLjhkdiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpOL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNS4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTM5ODUiIHNlcT0iMjAwOC0zOTg1IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgQXBwbGljYXRpb25zIFRlY2hub2xvZ3kgU3RhY2sgY29tcG9uZW50IGluIE9yYWNsZSBFLUJ1c2luZXNzIFN1aXRlIDEyLjAuNCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZS1idXNpbmVzc19zdWl0ZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTIuMC40IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6SC9BdTpTL0M6UC9JOk4vQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSIxLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMS41IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC0zOTg2IiBzZXE9IjIwMDgtMzk4NiIgc2V2ZXJpdHk9IkxvdyIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgT3JhY2xlIERpc2NvdmVyZXIgQWRtaW5pc3RyYXRvciBjb21wb25lbnQgaW4gT3JhY2xlIEFwcGxpY2F0aW9uIFNlcnZlciA5LjAuNC4zIGFuZCAxMC4xLjIuMiBhbGxvd3MgbG9jYWwgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxsb2NhbCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImFwcGxpY2F0aW9uX3NlcnZlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMS4yLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4wLjQuMyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpML0FDOkgvQXU6Uy9DOlAvSTpOL0E6TikiIENWU1NfYmFzZV9zY29yZT0iMS4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEuNSIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtMzk4NyIgc2VxPSIyMDA4LTM5ODciIHNldmVyaXR5PSJMb3ciIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMS4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIE9yYWNsZSBEaXNjb3ZlcmVyIERlc2t0b3AgY29tcG9uZW50IGluIE9yYWNsZSBBcHBsaWNhdGlvbiBTZXJ2ZXIgMTAuMS4yLjMgYWxsb3dzIGxvY2FsIHVzZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bG9jYWwgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiIGFkdj0iMSI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJhcHBsaWNhdGlvbl9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjEuMi4zIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOk4vQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtMzk4OCIgc2VxPSIyMDA4LTM5ODgiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGlTdXBwbGllciBQb3J0YWwgY29tcG9uZW50IGluIE9yYWNsZSBFLUJ1c2luZXNzIFN1aXRlIDExLjUuMTAuMiBhbmQgMTIuMC40IGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImUtYnVzaW5lc3Nfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMi4wLjQiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjYuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTM5ODkiIHNlcT0iMjAwOC0zOTg5IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjYuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgRGF0YSBNaW5pbmcgY29tcG9uZW50IGluIE9yYWNsZSBEYXRhYmFzZSAxMC4yLjAuMyBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSwgaW50ZWdyaXR5LCBhbmQgYXZhaWxhYmlsaXR5LCByZWxhdGVkIHRvIERNU1lTLk9ETV9NT0RFTF9VVElMLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzEwZyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMi4wLjMiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpOL0k6Ti9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTM5OTAiIHNlcT0iMjAwOC0zOTkwIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgT0xBUCBjb21wb25lbnQgaW4gT3JhY2xlIERhdGFiYXNlIDkuMi4wOCwgOS4yLjAuOERWLCBhbmQgMTAuMS4wLjUgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBhdmFpbGFiaWxpdHksIHJlbGF0ZWQgdG8gT0xBUFNZUy5DV00yX09MQVBfQVdfQVdVVElMLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzEwZyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMS4wLjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV85aSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4yLjAuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjIuMC44ZHYiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpOL0k6Ti9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTM5OTEiIHNlcT0iMjAwOC0zOTkxIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgT0xBUCBjb21wb25lbnQgaW4gT3JhY2xlIERhdGFiYXNlIDkuMi4wOCwgOS4yLjAuOERWLCBhbmQgMTAuMS4wLjUgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBhdmFpbGFiaWxpdHksIHJlbGF0ZWQgdG8gT0xBUFNZUy5DV00yX09MQVBfQVdfQVdVVElMLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzEwZyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTAuMS4wLjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV85aSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4yLjAuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjIuMC44ZHYiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTM5OTIiIHNlcT0iMjAwOC0zOTkyIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgRGF0YSBNaW5pbmcgY29tcG9uZW50IGluIE9yYWNsZSBEYXRhYmFzZSAxMC4yLjAuNCBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSBhbmQgaW50ZWdyaXR5LCByZWxhdGVkIHRvIERNU1lTLkRCTVNfRE1fRVhQX0lOVEVSTkFMLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV8xMGciPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjIuMC40IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpTL0M6Ti9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSIzLjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iNi44IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC0zOTkzIiBzZXE9IjIwMDgtMzk5MyIgc2V2ZXJpdHk9IkxvdyIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIzLjUiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgT3JhY2xlIEFwcGxpY2F0aW9ucyBGcmFtZXdvcmsgY29tcG9uZW50IGluIE9yYWNsZSBFLUJ1c2luZXNzIFN1aXRlIDExLjUuMTAuMiBhbmQgMTIuMC40IGFsbG93cyByZW1vdGUgYXV0aGVudGljYXRlZCB1c2VycyB0byBhZmZlY3QgaW50ZWdyaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImUtYnVzaW5lc3Nfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMi4wLjQiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTM5OTQiIHNlcT0iMjAwOC0zOTk0IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBXb3Jrc3BhY2UgTWFuYWdlciBjb21wb25lbnQgaW4gT3JhY2xlIERhdGFiYXNlIDkuMi4wLjgsIDkuMi4wLjhEViwgMTAuMS4wLjUsIDEwLjIuMC4zLCBhbmQgMTEuMS4wLjYgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSwgcmVsYXRlZCB0byBXTVNZUy5MVEFETS48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiIGFkdj0iMSI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJkYXRhYmFzZV8xMGciPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjEuMC41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjIuMC4zIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTFpIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMS4xLjAuNiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzlpIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjIuMC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMi4wLjhkdiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Uy9DOlAvSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNS41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjQuOSIgbmFtZT0iQ1ZFLTIwMDgtMzk5NSIgc2VxPSIyMDA4LTM5OTUiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS41IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIENoYW5nZSBEYXRhIENhcHR1cmUgY29tcG9uZW50IGluIE9yYWNsZSBEYXRhYmFzZSAxMC4xLjAuNSwgMTAuMi4wLjQsIGFuZCAxMS4xLjAuNiBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSBhbmQgaW50ZWdyaXR5LCByZWxhdGVkIHRvIERCTVNfQ0RDX1BVQkxJU0guPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTBnIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4xLjAuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4yLjAuNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzExaSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTEuMS4wLjYiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTM5OTYiIHNlcT0iMjAwOC0zOTk2IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBDaGFuZ2UgRGF0YSBDYXB0dXJlIGNvbXBvbmVudCBpbiBPcmFjbGUgRGF0YWJhc2UgMTAuMS4wLjUsIDEwLjIuMC40LCBhbmQgMTEuMS4wLjYgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSwgcmVsYXRlZCB0byBTWVMuREJNU19DRENfSVBVQkxJU0guPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTBnIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4xLjAuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4yLjAuNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImRhdGFiYXNlXzExaSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMTEuMS4wLjYiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1OlMvQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuOSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI2LjgiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTM5OTgiIHNlcT0iMjAwOC0zOTk4IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuOSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgaVN0b3JlIGNvbXBvbmVudCBpbiBPcmFjbGUgRS1CdXNpbmVzcyBTdWl0ZSAxMi4wLjQgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImUtYnVzaW5lc3Nfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEyLjAuNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNi40IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTQwMDAiIHNlcT0iMjAwOC00MDAwIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjYuNCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBQZW9wbGVUb29scyBjb21wb25lbnQgaW4gT3JhY2xlIFBlb3BsZVNvZnQgRW50ZXJwcmlzZSBhbmQgSkQgRWR3YXJkcyBFbnRlcnByaXNlT25lIDguNDguMTggYW5kIDguNDkuMTQgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSBhbmQgaW50ZWdyaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImpkZWR3YXJkcyIgbmFtZT0iZW50ZXJwcmlzZW9uZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC40OC4xOCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImpkX2Vkd2FyZHNfZW50ZXJwcmlzZW9uZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC40OS4xNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9InBlb3BsZXNvZnRfZW50ZXJwcmlzZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC40OC4xOCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9InBlb3BsZXNvZnRfcGVvcGxldG9vbHMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNDkuMTQiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1OlMvQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuOSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI2LjgiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI0LjkiIG5hbWU9IkNWRS0yMDA4LTQwMDEiIHNlcT0iMjAwOC00MDAxIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuOSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBQZW9wbGVTb2Z0IEVudGVycHJpc2UgUG9ydGFsIGNvbXBvbmVudCBpbiBPcmFjbGUgUGVvcGxlU29mdCBFbnRlcnByaXNlIGFuZCBKRCBFZHdhcmRzIEVudGVycHJpc2VPbmUgRVAgOC45IGFuZCBFUCA5LjAgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9ImpkX2Vkd2FyZHNfZW50ZXJwcmlzZW9uZV9lcCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9InBlb3BsZXNvZnRfZW50ZXJwcmlzZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Uy9DOlAvSTpOL0E6TikiIENWU1NfYmFzZV9zY29yZT0iMy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjYuOCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDAwMiIgc2VxPSIyMDA4LTQwMDIiIHNldmVyaXR5PSJMb3ciIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMy41IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIFBlb3BsZVRvb2xzIGNvbXBvbmVudCBpbiBPcmFjbGUgUGVvcGxlU29mdCBFbnRlcnByaXNlIGFuZCBKRCBFZHdhcmRzIEVudGVycHJpc2VPbmUgOC40OC4xOCBhbmQgOC40OS4xNCBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iamRfZWR3YXJkc19lbnRlcnByaXNlb25lIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjQ4LjE4IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNDkuMTQiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJwZW9wbGVzb2Z0X2VudGVycHJpc2UiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNDguMTgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC40OS4xNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOlAvSTpOL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDAwMyIgc2VxPSIyMDA4LTQwMDMiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIFBlb3BsZVRvb2xzIGNvbXBvbmVudCBpbiBPcmFjbGUgUGVvcGxlU29mdCBFbnRlcnByaXNlIGFuZCBKRCBFZHdhcmRzIEVudGVycHJpc2VPbmUgOC40OC4xOCBhbmQgOC40OS4xNCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiIGFkdj0iMSI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ib3JhY2xlIiBuYW1lPSJqZF9lZHdhcmRzX2VudGVycHJpc2VvbmUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNDguMTgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC40OS4xNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9InBlb3BsZXNvZnRfZW50ZXJwcmlzZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC40OC4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjQ5LjE0IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6TC9BdTpTL0M6UC9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSIzLjIiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMy4xIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNC45IiBuYW1lPSJDVkUtMjAwOC00MDA0IiBzZXE9IjIwMDgtNDAwNCIgc2V2ZXJpdHk9IkxvdyIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIzLjIiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgSkRFIEVudGVycHJpc2VPbmUgQnVzaW5lc3MgU2VydmljZSBTZXJ2ZXIgY29tcG9uZW50IGluIE9yYWNsZSBQZW9wbGVTb2Z0IEVudGVycHJpc2UgYW5kIEpEIEVkd2FyZHMgRW50ZXJwcmlzZU9uZSA4Ljk3LjIuMiBhbmQgOC45OC4wLjEgYWxsb3dzIGxvY2FsIHVzZXJzIHRvIGFmZmVjdCBjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSB2aWEgdW5rbm93biB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bG9jYWwgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiIGFkdj0iMSI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iamRlZHdhcmRzIiBuYW1lPSJlbnRlcnByaXNlb25lIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4Ljk3LjIuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4Ljk4LjAuMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9InBlb3BsZXNvZnRfZW50ZXJwcmlzZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC45Ny4yLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC45OC4wLjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpIL0F1Ok0vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIzLjIiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQwMDUiIHNlcT0iMjAwOC00MDA1IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBPcmFjbGUgQXBwbGljYXRpb24gRXhwcmVzcyBjb21wb25lbnQgaW4gT3JhY2xlIERhdGFiYXNlIDExLjEuMC42IGFsbG93cyByZW1vdGUgYXV0aGVudGljYXRlZCB1c2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5LCBpbnRlZ3JpdHksIGFuZCBhdmFpbGFiaWxpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iZGF0YWJhc2VfMTFpIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMS4xLjAuNiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iMTAuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDAwOCIgc2VxPSIyMDA4LTQwMDgiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEwLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgV2ViTG9naWMgU2VydmVyIFBsdWdpbnMgZm9yIEFwYWNoZSBjb21wb25lbnQgaW4gQkVBIFByb2R1Y3QgU3VpdGUgMTAuMywgMTAuMCBNUDEsIDkuMiBNUDMsIDkuMSwgOS4wLCA4LjEgU1A2LCA3LjAgU1A3LCBhbmQgNi4xIFNQNyBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5LCBpbnRlZ3JpdHksIGFuZCBhdmFpbGFiaWxpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iYmVhX3Byb2R1Y3Rfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJtcDEiIG51bT0iMTAuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDciIG51bT0iNi4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDciIG51bT0iNy4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDYiIG51bT0iOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Im1wMyIgbnVtPSI5LjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpIL0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjUuMSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI0LjkiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQwMDkiIHNlcT0iMjAwOC00MDA5IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjUuMSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBXZWJMb2dpYyBTZXJ2ZXIgY29tcG9uZW50IGluIEJFQSBQcm9kdWN0IFN1aXRlIDkuMSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5LCBpbnRlZ3JpdHksIGFuZCBhdmFpbGFiaWxpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iYmVhX3Byb2R1Y3Rfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNi44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDAxMCIgc2VxPSIyMDA4LTQwMTAiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNi44IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIFdlYkxvZ2ljIFdvcmtzaG9wIGNvbXBvbmVudCBpbiBCRUEgUHJvZHVjdCBTdWl0ZSAxMC4zLCAxMC4yLCAxMC4wIE1QMSwgOS4yIE1QMywgYW5kIDguMSBTUDYgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSwgaW50ZWdyaXR5LCBhbmQgYXZhaWxhYmlsaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iYmVhX3Byb2R1Y3Rfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJtcDEiIG51bT0iMTAuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxMC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEwLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNiIgbnVtPSI4LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Im1wMyIgbnVtPSI5LjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpIL0F1OlMvQzpOL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjIuMSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIzLjkiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQwMTEiIHNlcT0iMjAwOC00MDExIiBzZXZlcml0eT0iTG93IiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjIuMSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5VbnNwZWNpZmllZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBXZWJMb2dpYyBTZXJ2ZXIgY29tcG9uZW50IGluIEJFQSBQcm9kdWN0IFN1aXRlIDEwLjAgTVAxLCA5LjIgTVAzLCA5LjEsIGFuZCA5LjAgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGFmZmVjdCBpbnRlZ3JpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2hub2xvZ3kvZGVwbG95L3NlY3VyaXR5L2NyaXRpY2FsLXBhdGNoLXVwZGF0ZXMvY3B1b2N0MjAwOC5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iYmVhX3Byb2R1Y3Rfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJtcDEiIG51bT0iMTAuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJtcDMiIG51bT0iOS4yIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6SC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjEiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iNC45IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00MDEyIiBzZXE9IjIwMDgtNDAxMiIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI1LjEiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiB0aGUgV2ViTG9naWMgV29ya3Nob3AgY29tcG9uZW50IGluIEJFQSBQcm9kdWN0IFN1aXRlIFdMVyA4LjFTUDUgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gYWZmZWN0IGNvbmZpZGVudGlhbGl0eSwgaW50ZWdyaXR5LCBhbmQgYXZhaWxhYmlsaXR5IHZpYSB1bmtub3duIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWw8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJiZWEiIG5hbWU9IndlYmxvZ2ljX3dvcmtzaG9wIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A1IiBudW09IjguMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJvcmFjbGUiIG5hbWU9IndlYmxvZ2ljX3dvcmtzaG9wIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A1IiBudW09IjguMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNi44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDAxMyIgc2VxPSIyMDA4LTQwMTMiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNi44IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIFdlYkxvZ2ljIFNlcnZlciBjb21wb25lbnQgaW4gQkVBIFByb2R1Y3QgU3VpdGUgMTAuMCBNUDEsIDkuMiBNUDMsIDkuMSwgOS4wLCBhbmQgOC4xIFNQNiBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBhZmZlY3QgY29uZmlkZW50aWFsaXR5LCBpbnRlZ3JpdHksIGFuZCBhdmFpbGFiaWxpdHkgdmlhIHVua25vd24gdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9kZXBsb3kvc2VjdXJpdHkvY3JpdGljYWwtcGF0Y2gtdXBkYXRlcy9jcHVvY3QyMDA4Lmh0bWwiPmh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobm9sb2d5L2RlcGxveS9zZWN1cml0eS9jcml0aWNhbC1wYXRjaC11cGRhdGVzL2NwdW9jdDIwMDguaHRtbDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im9yYWNsZSIgbmFtZT0iYmVhX3Byb2R1Y3Rfc3VpdGUiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJtcDEiIG51bT0iMTAuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A2IiBudW09IjguMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJtcDMiIG51bT0iOS4yIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSIxMC4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00NDc4IiBzZXE9IjIwMDgtNDQ3OCIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMTAuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NdWx0aXBsZSBpbnRlZ2VyIG92ZXJmbG93cyBpbiBkaG9zdC5leGUgaW4gTm92ZWxsIGVEaXJlY3RvcnkgOC44IGJlZm9yZSA4LjguMywgYW5kIDguNzMgYmVmb3JlIDguNy4zLjEwIGZ0ZjEsIGFsbG93IHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBjcmFmdGVkICgxKSBDb250ZW50LUxlbmd0aCBoZWFkZXIgaW4gYSBTT0FQIHJlcXVlc3Qgb3IgKDIpIE5ldHdhcmUgQ29yZSBQcm90b2NvbCBvcGNvZGUgMHgwRiBtZXNzYWdlLCB3aGljaCB0cmlnZ2VycyBhIGhlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93LjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vd3d3Lnplcm9kYXlpbml0aWF0aXZlLmNvbS9hZHZpc29yaWVzL1pESS0wOC0wNjUiPmh0dHA6Ly93d3cuemVyb2RheWluaXRpYXRpdmUuY29tL2Fkdmlzb3JpZXMvWkRJLTA4LTA2NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly93d3cuemVyb2RheWluaXRpYXRpdmUuY29tL2Fkdmlzb3JpZXMvWkRJLTA4LTA2MyI+aHR0cDovL3d3dy56ZXJvZGF5aW5pdGlhdGl2ZS5jb20vYWR2aXNvcmllcy9aREktMDgtMDYzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJVR1RSQVEiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9hcmNoaXZlLzEvYXJjaGl2ZS8xLzQ5NzE2NS8xMDAvMC90aHJlYWRlZCI+MjAwODEwMDggWkRJLTA4LTA2NTogTm92ZWxsIGVEaXJlY3RvcnkgQ29yZSBQcm90b2NvbCBPcGNvZGUgMHgwRiBIZWFwIE92ZXJmbG93IFZ1bG5lcmFiaWxpdHk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk3MTYzLzEwMC8wL3RocmVhZGVkIj4yMDA4MTAwOCBaREktMDgtMDYzOiBOb3ZlbGwgZURpcmVjdG9yeSBkaG9zdC5leGUgQ29udGVudC1MZW5ndGggSGVhZGVyIEhlYXAgT3ZlcmZsb3cgVnVsbmVyYWJpbGl0eTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cubm92ZWxsLmNvbS9zdXBwb3J0L3BocC9zZWFyY2guZG8/Y21kPWRpc3BsYXlLQyZhbXA7ZG9jVHlwZT1rYyZhbXA7ZXh0ZXJuYWxJZD03MDAxMTg0JmFtcDtzbGljZUlkPTEmYW1wO2RvY1R5cGVJRD1EVF9USURfMV8xJmFtcDtkaWFsb2dJRD03ODA2NjgyOSZhbXA7c3RhdGVJZD0wJTIwMCUyMDc4MDYyOTUzIiBhZHY9IjEiPmh0dHA6Ly93d3cubm92ZWxsLmNvbS9zdXBwb3J0L3BocC9zZWFyY2guZG8/Y21kPWRpc3BsYXlLQyZhbXA7ZG9jVHlwZT1rYyZhbXA7ZXh0ZXJuYWxJZD03MDAxMTg0JmFtcDtzbGljZUlkPTEmYW1wO2RvY1R5cGVJRD1EVF9USURfMV8xJmFtcDtkaWFsb2dJRD03ODA2NjgyOSZhbXA7c3RhdGVJZD0wJTIwMCUyMDc4MDYyOTUzPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibm92ZWxsIiBuYW1lPSJlZGlyZWN0b3J5Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI4LjcuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjcuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjcuMy4xMCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjcuMy44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNy4zLjhfcHJlc3A5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iOC43LjMuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOmxpbnV4IiBudW09IjguNy4zLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDMiIG51bT0iOC43LjMuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnNvbGFyaXMiIG51bT0iOC43LjMuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3NfMjAwMCIgbnVtPSI4LjcuMy45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iOC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6c29sYXJpcyIgbnVtPSI4LjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDMiIG51bT0iOC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAwIiBudW09IjguOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOmxpbnV4IiBudW09IjguOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjguOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAzIiBudW09IjguOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAwIiBudW09IjguOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bGludXgiIG51bT0iOC44LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpzb2xhcmlzIiBudW09IjguOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iOC44LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpzb2xhcmlzIiBudW09IjguOC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAwIiBudW09IjguOC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAzIiBudW09IjguOC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bGludXgiIG51bT0iOC44LjIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQ0NzkiIHNlcT0iMjAwOC00NDc5IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkhlYXAtYmFzZWQgYnVmZmVyIG92ZXJmbG93IGluIGRob3N0LmV4ZSBpbiBOb3ZlbGwgZURpcmVjdG9yeSA4LjggYmVmb3JlIDguOC4zLCBhbmQgOC43LjMgYmVmb3JlIDguNy4zLjEwIGZ0ZjEsIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgU09BUCByZXF1ZXN0IHdpdGggYSBsb25nIEFjY2VwdC1MYW5ndWFnZSBoZWFkZXIuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL3d3dy56ZXJvZGF5aW5pdGlhdGl2ZS5jb20vYWR2aXNvcmllcy9aREktMDgtMDY0Ij5odHRwOi8vd3d3Lnplcm9kYXlpbml0aWF0aXZlLmNvbS9hZHZpc29yaWVzL1pESS0wOC0wNjQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk3MTY0LzEwMC8wL3RocmVhZGVkIj4yMDA4MTAwOCBaREktMDgtMDY0OiBOb3ZlbGwgZURpcmVjdG9yeSBkaG9zdC5leGUgQWNjZXB0IExhbmd1YWdlIEhlYWRlciBIZWFwIE92ZXJmbG93IFZ1bG5lcmFiaWxpdHk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3Lm5vdmVsbC5jb20vc3VwcG9ydC9waHAvc2VhcmNoLmRvP2NtZD1kaXNwbGF5S0MmYW1wO2RvY1R5cGU9a2MmYW1wO2V4dGVybmFsSWQ9NzAwMDA4NiZhbXA7c2xpY2VJZD0xJmFtcDtkb2NUeXBlSUQ9RFRfVElEXzFfMSZhbXA7ZGlhbG9nSUQ9NzgwNjY4MjkmYW1wO3N0YXRlSWQ9MCUyMDAlMjA3ODA2Mjk1MyI+aHR0cDovL3d3dy5ub3ZlbGwuY29tL3N1cHBvcnQvcGhwL3NlYXJjaC5kbz9jbWQ9ZGlzcGxheUtDJmFtcDtkb2NUeXBlPWtjJmFtcDtleHRlcm5hbElkPTcwMDAwODYmYW1wO3NsaWNlSWQ9MSZhbXA7ZG9jVHlwZUlEPURUX1RJRF8xXzEmYW1wO2RpYWxvZ0lEPTc4MDY2ODI5JmFtcDtzdGF0ZUlkPTAlMjAwJTIwNzgwNjI5NTM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJub3ZlbGwiIG5hbWU9ImVkaXJlY3RvcnkiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNy4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNy4zLjEwIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNy4zLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC43LjMuOF9wcmVzcDkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSI4LjcuMy45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAzIiBudW09IjguNy4zLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpzb2xhcmlzIiBudW09IjguNy4zLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjpsaW51eCIgbnVtPSI4LjcuMy45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAwIiBudW09IjguNy4zLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSI4LjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpzb2xhcmlzIiBudW09IjguOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3NfMjAwMyIgbnVtPSI4LjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDAiIG51bT0iOC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bGludXgiIG51bT0iOC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iOC44LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDAiIG51bT0iOC44LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjpsaW51eCIgbnVtPSI4LjguMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3NfMjAwMyIgbnVtPSI4LjguMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnNvbGFyaXMiIG51bT0iOC44LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSI4LjguMiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOmxpbnV4IiBudW09IjguOC4yIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6c29sYXJpcyIgbnVtPSI4LjguMiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3NfMjAwMCIgbnVtPSI4LjguMiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3NfMjAwMyIgbnVtPSI4LjguMiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iMTAuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDQ4MCIgc2VxPSIyMDA4LTQ0ODAiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEwLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+SGVhcC1iYXNlZCBidWZmZXIgb3ZlcmZsb3cgaW4gZGhvc3QuZXhlIGluIE5vdmVsbCBlRGlyZWN0b3J5IDgueCBiZWZvcmUgOC44LjMsIGFuZCA4LjcuMyBiZWZvcmUgOC43LjMuMTAgZnRmMSwgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBjcmFmdGVkIE5ldHdhcmUgQ29yZSBQcm90b2NvbCBvcGNvZGUgMHgyNCBtZXNzYWdlIHRoYXQgdHJpZ2dlcnMgYSBjYWxjdWxhdGlvbiBlcnJvciB0aGF0IHVuZGVyLWFsbG9jYXRlcyBhIGhlYXAgYnVmZmVyLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly93d3cuemVyb2RheWluaXRpYXRpdmUuY29tL2Fkdmlzb3JpZXMvWkRJLTA4LTA2Ni8iPmh0dHA6Ly93d3cuemVyb2RheWluaXRpYXRpdmUuY29tL2Fkdmlzb3JpZXMvWkRJLTA4LTA2Ni88L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk3MTY5LzEwMC8wL3RocmVhZGVkIj4yMDA4MTAwOCBaREktMDgtMDY2OiBOb3ZlbGwgZURpcmVjdG9yeSBDb3JlIFByb3RvY29sIE9wY29kZSAweDI0IEhlYXAgT3ZlcmZsb3cgVnVsbmVyYWJpbGl0eTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cubm92ZWxsLmNvbS9zdXBwb3J0L3BocC9zZWFyY2guZG8/Y21kPWRpc3BsYXlLQyZhbXA7ZG9jVHlwZT1rYyZhbXA7ZXh0ZXJuYWxJZD03MDAxMTgzJmFtcDtzbGljZUlkPTEmYW1wO2RvY1R5cGVJRD1EVF9USURfMV8xJmFtcDtkaWFsb2dJRD03ODA2NjgyOSZhbXA7c3RhdGVJZD0wJTIwMCUyMDc4MDYyOTUzIiBhZHY9IjEiPmh0dHA6Ly93d3cubm92ZWxsLmNvbS9zdXBwb3J0L3BocC9zZWFyY2guZG8/Y21kPWRpc3BsYXlLQyZhbXA7ZG9jVHlwZT1rYyZhbXA7ZXh0ZXJuYWxJZD03MDAxMTgzJmFtcDtzbGljZUlkPTEmYW1wO2RvY1R5cGVJRD1EVF9USURfMV8xJmFtcDtkaWFsb2dJRD03ODA2NjgyOSZhbXA7c3RhdGVJZD0wJTIwMCUyMDc4MDYyOTUzPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibm92ZWxsIiBuYW1lPSJlZGlyZWN0b3J5Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjcuMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjcuMy4xMCIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjcuMy44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjguNy4zLjhfcHJlc3A5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iOC43LjMuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3NfMjAwMyIgbnVtPSI4LjcuMy45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6c29sYXJpcyIgbnVtPSI4LjcuMy45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bGludXgiIG51bT0iOC43LjMuOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOndpbmRvd3NfMjAwMCIgbnVtPSI4LjcuMy45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iOC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6c29sYXJpcyIgbnVtPSI4LjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDMiIG51bT0iOC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAwIiBudW09IjguOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOmxpbnV4IiBudW09IjguOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjguOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6d2luZG93c18yMDAwIiBudW09IjguOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bGludXgiIG51bT0iOC44LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDMiIG51bT0iOC44LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpzb2xhcmlzIiBudW09IjguOC4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iOC44LjIiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjpsaW51eCIgbnVtPSI4LjguMiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnNvbGFyaXMiIG51bT0iOC44LjIiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDAiIG51bT0iOC44LjIiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp3aW5kb3dzXzIwMDMiIG51bT0iOC44LjIiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQ1NTYiIHNlcT0iMjAwOC00NTU2IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlN0YWNrLWJhc2VkIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgYWRtX2J1aWxkX3BhdGggZnVuY3Rpb24gaW4gc2FkbWluZCBpbiBTdW4gU29sc3RpY2UgQWRtaW5TdWl0ZSBvbiBTb2xhcmlzIDggYW5kIDkgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBjcmFmdGVkIHJlcXVlc3QuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTc1MSI+MzE3NTE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDk3MzExLzEwMC8wL3RocmVhZGVkIj4yMDA4MTAxNCBbUklTRS0yMDA4MDAxXSBTdW4gU29sc3RpY2UgQWRtaW5TdWl0ZSBzYWRtaW5kIGFkbV9idWlsZF9wYXRoKClCdWZmZXIgT3ZlcmZsb3cgVnVsbmVyYWJpbGl0eTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly9yaXNlc2VjdXJpdHkub3JnL2Fkdmlzb3JpZXMvUklTRS0yMDA4MDAxLnR4dCI+aHR0cDovL3Jpc2VzZWN1cml0eS5vcmcvYWR2aXNvcmllcy9SSVNFLTIwMDgwMDEudHh0PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ic3VuIiBuYW1lPSJzb2xhcmlzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODYiIG51bT0iOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnNwYXJjIiBudW09IjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSI5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2IiBudW09IjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjpzcGFyYyIgbnVtPSI5IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSIxMC4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00NTU3IiBzZXE9IjIwMDgtNDU1NyIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMTAuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5wbHVnaW5zL3dhY2tvL2hpZ2hsaWdodC9odG1sLnBocCBpbiBTdHJhd2JlcnJ5IGluIEN1dGVOZXdzLnJ1IDEuMS4xIChha2EgU3RyYXdiZXJyeSkgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgUEhQIGNvZGUgdmlhIHRoZSB0ZXh0IHBhcmFtZXRlciwgd2hpY2ggaXMgaW5zZXJ0ZWQgaW50byBhbiBleGVjdXRhYmxlIHJlZ3VsYXIgZXhwcmVzc2lvbi48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzM5NDUwIj5jdXRlbmV3cy1odG1sLWNvZGUtZXhlY3V0aW9uKDM5NDUwKTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJPU1ZEQiIgdXJsPSJodHRwOi8vd3d3Lm9zdmRiLm9yZy80MDIzNiI+NDAyMzY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzQ4NTEiPjQ4NTE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8yODMzMCIgYWR2PSIxIj4yODMzMDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImN1dGVwaHAiIG5hbWU9ImN1dGVuZXdzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjEuMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNi44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDU1OCIgc2VxPSIyMDA4LTQ1NTgiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNi44IiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkFycmF5IGluZGV4IGVycm9yIGluIFZMQyBtZWRpYSBwbGF5ZXIgMC45LjIgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gb3ZlcndyaXRlIGFyYml0cmFyeSBtZW1vcnkgYW5kIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGFuIFhTUEYgcGxheWxpc3QgZmlsZSB3aXRoIGEgbmVnYXRpdmUgaWRlbnRpZmllciB0YWcsIHdoaWNoIHBhc3NlcyBhIHNpZ25lZCBjb21wYXJpc29uLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuY29yZXNlY3VyaXR5LmNvbS9jb250ZW50L3ZsYy14c3BmLW1lbW9yeS1jb3JydXB0aW9uIj5odHRwOi8vd3d3LmNvcmVzZWN1cml0eS5jb20vY29udGVudC92bGMteHNwZi1tZW1vcnktY29ycnVwdGlvbjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9InZpZGVvbGFuIiBuYW1lPSJ2bGNfbWVkaWFfcGxheWVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIwLjkuMiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Uy9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iOS4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTE0NDYiIHNlcT0iMjAwOC0xNDQ2IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI5LjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+SW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgSW50ZXJuZXQgUHJpbnRpbmcgUHJvdG9jb2wgKElQUCkgSVNBUEkgZXh0ZW5zaW9uIGluIE1pY3Jvc29mdCBJbnRlcm5ldCBJbmZvcm1hdGlvbiBTZXJ2aWNlcyAoSUlTKSA1LjAgdGhyb3VnaCA3LjAgb24gV2luZG93cyAyMDAwIFNQNCwgWFAgU1AyIGFuZCBTUDMsIFNlcnZlciAyMDAzIFNQMSBhbmQgU1AyLCBhbmQgU2VydmVyIDIwMDggYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRoYXQgdHJpZ2dlcnMgYW4gb3V0Ym91bmQgSVBQIGNvbm5lY3Rpb24gZnJvbSBhIHdlYiBzZXJ2ZXIgdG8gYSBtYWNoaW5lIG9wZXJhdGVkIGJ5IHRoZSBhdHRhY2tlciwgYWthICJJbnRlZ2VyIE92ZXJmbG93IGluIElQUCBTZXJ2aWNlIFZ1bG5lcmFiaWxpdHkuIjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA2Mi5tc3B4Ij5NUzA4LTA2MjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0iaWlzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI1LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJiZXRhIiBudW09IjYuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzXzIwMDAiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c19zZXJ2ZXJfMjAwMyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDE6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMiIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDI6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3NlcnZlcl8yMDA4Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOml0YW5pdW0iIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDMyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3hwIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMyIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6TC9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuMiIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIzLjkiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC0yMjUwIiBzZXE9IjIwMDgtMjI1MCIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy4yIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlRoZSBrZXJuZWwgaW4gTWljcm9zb2Z0IFdpbmRvd3MgMjAwMCBTUDQsIFhQIFNQMiBhbmQgU1AzLCBTZXJ2ZXIgMjAwMyBTUDEgYW5kIFNQMiwgVmlzdGEgR29sZCBhbmQgU1AxLCBhbmQgU2VydmVyIDIwMDggZG9lcyBub3QgcHJvcGVybHkgdmFsaWRhdGUgd2luZG93IHByb3BlcnRpZXMgc2VudCBmcm9tIGEgcGFyZW50IHdpbmRvdyB0byBhIGNoaWxkIHdpbmRvdyBkdXJpbmcgY3JlYXRpb24gb2YgYSBuZXcgd2luZG93LCB3aGljaCBhbGxvd3MgbG9jYWwgdXNlcnMgdG8gZ2FpbiBwcml2aWxlZ2VzIHZpYSBhIGNyYWZ0ZWQgYXBwbGljYXRpb24sIGFrYSAiV2luZG93cyBLZXJuZWwgV2luZG93IENyZWF0aW9uIFZ1bG5lcmFiaWxpdHkuIjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bG9jYWwgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTVMiIHVybD0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3RlY2huZXQvc2VjdXJpdHkvQnVsbGV0aW4vTVMwOC0wNjEubXNweCIgYWR2PSIxIj5NUzA4LTA2MTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c18yMDAwIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A0IiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3Nfc2VydmVyXzIwMDMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDEiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDE6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOml0YW5pdW0iIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDIiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyOml0YW5pdW0iIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c19zZXJ2ZXJfMjAwOCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjppdGFuaXVtIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOngzMiIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c192aXN0YSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDEiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDE6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSJzcDEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3hwIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMyIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ing2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6TC9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuMiIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIzLjkiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC0yMjUxIiBzZXE9IjIwMDgtMjI1MSIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy4yIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkRvdWJsZSBmcmVlIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGtlcm5lbCBpbiBNaWNyb3NvZnQgV2luZG93cyAyMDAwIFNQNCwgWFAgU1AyIGFuZCBTUDMsIFNlcnZlciAyMDAzIFNQMSBhbmQgU1AyLCBWaXN0YSBHb2xkIGFuZCBTUDEsIGFuZCBTZXJ2ZXIgMjAwOCBhbGxvd3MgbG9jYWwgdXNlcnMgdG8gZ2FpbiBwcml2aWxlZ2VzIHZpYSBhIGNyYWZ0ZWQgYXBwbGljYXRpb24gdGhhdCBtYWtlcyBzeXN0ZW0gY2FsbHMgd2l0aGluIG11bHRpcGxlIHRocmVhZHMsIGFrYSAiV2luZG93cyBLZXJuZWwgVW5oYW5kbGVkIEV4Y2VwdGlvbiBWdWxuZXJhYmlsaXR5LiIgTk9URTogYWNjb3JkaW5nIHRvIE1pY3Jvc29mdCwgdGhpcyBpcyBub3QgYSBkdXBsaWNhdGUgb2YgQ1ZFLTIwMDgtNDUxMC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPGxvY2FsIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1TIiB1cmw9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS90ZWNobmV0L3NlY3VyaXR5L0J1bGxldGluL01TMDgtMDYxLm1zcHgiIGFkdj0iMSI+TVMwOC0wNjE8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfMjAwMCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3NlcnZlcl8yMDAzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTppdGFuaXVtIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjppdGFuaXVtIiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3Nfc2VydmVyXzIwMDgiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4MzIiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfeHAiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDIiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AzIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ieDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpML0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy4yIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjMuOSIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTIyNTIiIHNlcT0iMjAwOC0yMjUyIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjIiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VGhlIGtlcm5lbCBpbiBNaWNyb3NvZnQgV2luZG93cyAyMDAwIFNQNCwgWFAgU1AyIGFuZCBTUDMsIFNlcnZlciAyMDAzIFNQMSBhbmQgU1AyLCBWaXN0YSBHb2xkIGFuZCBTUDEsIGFuZCBTZXJ2ZXIgMjAwOCBkb2VzIG5vdCBwcm9wZXJseSB2YWxpZGF0ZSBwYXJhbWV0ZXJzIHNlbnQgZnJvbSB1c2VyIG1vZGUgdG8gdGhlIGtlcm5lbCwgd2hpY2ggYWxsb3dzIGxvY2FsIHVzZXJzIHRvIGdhaW4gcHJpdmlsZWdlcyB2aWEgYSBjcmFmdGVkIGFwcGxpY2F0aW9uLCBha2EgIldpbmRvd3MgS2VybmVsIE1lbW9yeSBDb3JydXB0aW9uIFZ1bG5lcmFiaWxpdHkuIjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPGxvY2FsIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1TIiB1cmw9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS90ZWNobmV0L3NlY3VyaXR5L0J1bGxldGluL01TMDgtMDYxLm1zcHgiIGFkdj0iMSI+TVMwOC0wNjE8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfMjAwMCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3NlcnZlcl8yMDAzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTppdGFuaXVtIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjppdGFuaXVtIiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3Nfc2VydmVyXzIwMDgiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4MzIiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfdmlzdGEiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0ic3AxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c194cCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMiIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJ4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjIiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMy45IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtMzQ2NCIgc2VxPSIyMDA4LTM0NjQiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuMiIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5hZmQuc3lzIGluIHRoZSBBbmNpbGxhcnkgRnVuY3Rpb24gRHJpdmVyIChBRkQpIGNvbXBvbmVudCBpbiBNaWNyb3NvZnQgV2luZG93cyBYUCBTUDIgYW5kIFNQMyBhbmQgV2luZG93cyBTZXJ2ZXIgMjAwMyBTUDEgYW5kIFNQMiBkb2VzIG5vdCBwcm9wZXJseSB2YWxpZGF0ZSBpbnB1dCBzZW50IGZyb20gdXNlciBtb2RlIHRvIHRoZSBrZXJuZWwsIHdoaWNoIGFsbG93cyBsb2NhbCB1c2VycyB0byBnYWluIHByaXZpbGVnZXMgdmlhIGEgY3JhZnRlZCBhcHBsaWNhdGlvbiwgYWthICJBRkQgS2VybmVsIE92ZXJ3cml0ZSBWdWxuZXJhYmlsaXR5LiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPGxvY2FsIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1TIiB1cmw9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS90ZWNobmV0L3NlY3VyaXR5L0J1bGxldGluL01TMDgtMDY2Lm1zcHgiIGFkdj0iMSI+TVMwOC0wNjY8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfMjAwM19zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOml0YW5pdW0iIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDIiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDI6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0icHJvZmVzc2lvbmFsIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c194cCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijpwcm9mZXNzaW9uYWxfeDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyOnByb2Zlc3Npb25hbF94NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSIxMC4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC0zNDY2IiBzZXE9IjIwMDgtMzQ2NiIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMTAuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NaWNyb3NvZnQgSG9zdCBJbnRlZ3JhdGlvbiBTZXJ2ZXIgKEhJUykgMjAwMCwgMjAwNCwgYW5kIDIwMDYgZG9lcyBub3QgbGltaXQgUlBDIGFjY2VzcyB0byBhZG1pbmlzdHJhdGl2ZSBmdW5jdGlvbnMsIHdoaWNoIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGJ5cGFzcyBhdXRoZW50aWNhdGlvbiBhbmQgZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBjcmFmdGVkIFNOQSBSUEMgbWVzc2FnZSwgYWthICJISVMgQ29tbWFuZCBFeGVjdXRpb24gVnVsbmVyYWJpbGl0eS4iPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1OS5tc3B4IiBhZHY9IjEiPk1TMDgtMDU5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zZnQiIG5hbWU9Imhvc3RfaW50ZWdyYXRpb25fc2VydmVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IjIwMDAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjpzZXJ2ZXIiIG51bT0iMjAwMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93biIgbnVtPSIyMDAwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJ1bmtub3duOmFkbWluaXN0cmF0b3JfY2xpZW50IiBudW09IjIwMDAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSIyMDA0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDE6c2VydmVyIiBudW09IjIwMDQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InVua25vd24iIG51bT0iMjAwNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93bjpjbGllbnQiIG51bT0iMjAwNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93bjpzZXJ2ZXIiIG51bT0iMjAwNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93biIgbnVtPSIyMDA2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJ1bmtub3duOngzMiIgbnVtPSIyMDA2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJ4NjQiIG51bT0iMjAwNnVua25vd24iIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTM0NzEiIHNlcT0iMjAwOC0zNDcxIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPk1pY3Jvc29mdCBFeGNlbCAyMDAwIFNQMywgMjAwMiBTUDMsIDIwMDMgU1AyIGFuZCBTUDMsIGFuZCAyMDA3IEdvbGQgYW5kIFNQMTsgT2ZmaWNlIEV4Y2VsIFZpZXdlciAyMDAzIFNQMzsgT2ZmaWNlIEV4Y2VsIFZpZXdlcjsgT2ZmaWNlIENvbXBhdGliaWxpdHkgUGFjayBmb3IgV29yZCwgRXhjZWwsIGFuZCBQb3dlclBvaW50IDIwMDcgRmlsZSBGb3JtYXRzIEdvbGQgYW5kIFNQMTsgT2ZmaWNlIDIwMDQgYW5kIDIwMDggZm9yIE1hYzsgYW5kIE9wZW4gWE1MIEZpbGUgRm9ybWF0IENvbnZlcnRlciBmb3IgTWFjIGRvIG5vdCBwcm9wZXJseSBhbGxvY2F0ZSBtZW1vcnkgd2hlbiBsb2FkaW5nIEV4Y2VsIG9iamVjdHMgZHVyaW5nIHBhcnNpbmcgb2YgdGhlIEV4Y2VsIHNwcmVhZHNoZWV0IGZpbGUgZm9ybWF0LCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhIGNyYWZ0ZWQgQklGRiBmaWxlLCBha2EgIkZpbGUgRm9ybWF0IFBhcnNpbmcgVnVsbmVyYWJpbGl0eS4iPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1Ny5tc3B4Ij5NUzA4LTA1NzwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc2Z0IiBuYW1lPSJvcGVuX3htbF9maWxlX2Zvcm1hdF9jb252ZXJ0ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJtYWMiIG51bT0idW5rbm93biIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9Im9mZmljZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMyIgbnVtPSIyMDAwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDIiIG51bT0iMjAwMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AzIiBudW09IjIwMDMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyMDA0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bWFjIiBudW09IjIwMDQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSIyMDA3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMjAwOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOm1hYyIgbnVtPSIyMDA4IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0ieHAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJvZmZpY2VfY29tcGF0aWJpbGl0eV9wYWNrX2Zvcl93b3JkX2V4Y2VsX3BwdF8yMDA3Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOnNwMSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJvZmZpY2VfZXhjZWxfdmlld2VyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AzIiBudW09IjIwMDMiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJvZmZpY2Vfc2hhcmVwb2ludF9zZXJ2ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDEiIG51bT0iMjAwNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOng2NCIgbnVtPSIyMDA3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJ1bmtub3duIiBudW09IjIwMDciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InVua25vd246eDY0IiBudW09IjIwMDciIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjkuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC0zNDcyIiBzZXE9IjIwMDgtMzQ3MiIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iOS4zIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciA2IGFuZCA3IGRvZXMgbm90IHByb3Blcmx5IGRldGVybWluZSB0aGUgZG9tYWluIG9yIHNlY3VyaXR5IHpvbmUgb2Ygb3JpZ2luIG9mIHdlYiBzY3JpcHQsIHdoaWNoIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGJ5cGFzcyB0aGUgaW50ZW5kZWQgY3Jvc3MtZG9tYWluIHNlY3VyaXR5IHBvbGljeSwgYW5kIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgb3Igb2J0YWluIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiwgdmlhIGEgY3JhZnRlZCBIVE1MIGRvY3VtZW50LCBha2EgIkhUTUwgRWxlbWVudCBDcm9zcy1Eb21haW4gVnVsbmVyYWJpbGl0eS4iPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1OC5tc3B4Ij5NUzA4LTA1ODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0iaW50ZXJuZXRfZXhwbG9yZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDQiIG51bT0iNS4wMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iOS4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTM0NzMiIHNlcT0iMjAwOC0zNDczIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI5LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+TWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyIDYgYW5kIDcgZG9lcyBub3QgcHJvcGVybHkgZGV0ZXJtaW5lIHRoZSBkb21haW4gb3Igc2VjdXJpdHkgem9uZSBvZiBvcmlnaW4gb2Ygd2ViIHNjcmlwdCwgd2hpY2ggYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gYnlwYXNzIHRoZSBpbnRlbmRlZCBjcm9zcy1kb21haW4gc2VjdXJpdHkgcG9saWN5LCBhbmQgZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSBvciBvYnRhaW4gc2Vuc2l0aXZlIGluZm9ybWF0aW9uLCB2aWEgYSBjcmFmdGVkIEhUTUwgZG9jdW1lbnQsIGFrYSAiRXZlbnQgSGFuZGxpbmcgQ3Jvc3MtRG9tYWluIFZ1bG5lcmFiaWxpdHkuIjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1TIiB1cmw9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS90ZWNobmV0L3NlY3VyaXR5L0J1bGxldGluL01TMDgtMDU4Lm1zcHgiIGFkdj0iMSI+TVMwOC0wNTg8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9ImludGVybmV0X2V4cGxvcmVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A0IiBudW09IjUuMDEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSI2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjciIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpQL0k6Ti9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTM0NzQiIHNlcT0iMjAwOC0zNDc0IiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIgNiBhbmQgNyBkb2VzIG5vdCBwcm9wZXJseSBkZXRlcm1pbmUgdGhlIGRvbWFpbiBvciBzZWN1cml0eSB6b25lIG9mIG9yaWdpbiBvZiB3ZWIgc2NyaXB0LCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBieXBhc3MgdGhlIGludGVuZGVkIGNyb3NzLWRvbWFpbiBzZWN1cml0eSBwb2xpY3kgYW5kIG9idGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24gdmlhIGEgY3JhZnRlZCBIVE1MIGRvY3VtZW50LCBha2EgIkNyb3NzLURvbWFpbiBJbmZvcm1hdGlvbiBEaXNjbG9zdXJlIFZ1bG5lcmFiaWxpdHkuIjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1OC5tc3B4Ij5NUzA4LTA1ODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0iaW50ZXJuZXRfZXhwbG9yZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDQiIG51bT0iNS4wMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iOS4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTM0NzUiIHNlcT0iMjAwOC0zNDc1IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI5LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+TWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyIDYgZG9lcyBub3QgcHJvcGVybHkgaGFuZGxlIGVycm9ycyBhc3NvY2lhdGVkIHdpdGggYWNjZXNzIHRvIGFuIG9iamVjdCB0aGF0IGhhcyBiZWVuICgxKSBpbmNvcnJlY3RseSBpbml0aWFsaXplZCBvciAoMikgZGVsZXRlZCwgd2hpY2ggYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBjcmFmdGVkIEhUTUwgZG9jdW1lbnQsIGFrYSAiVW5pbml0aWFsaXplZCBNZW1vcnkgQ29ycnVwdGlvbiBWdWxuZXJhYmlsaXR5LiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1OC5tc3B4IiBhZHY9IjEiPk1TMDgtMDU4PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJpbnRlcm5ldF9leHBsb3JlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSI1LjAxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDEiIG51bT0iNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI5LjMiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtMzQ3NiIgc2VxPSIyMDA4LTM0NzYiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjkuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIgNS4wMSBTUDQgYW5kIDYgZG9lcyBub3QgcHJvcGVybHkgaGFuZGxlIGVycm9ycyBhc3NvY2lhdGVkIHdpdGggYWNjZXNzIHRvIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhIGNyYWZ0ZWQgSFRNTCBkb2N1bWVudCwgYWthICJIVE1MIE9iamVjdHMgTWVtb3J5IENvcnJ1cHRpb24gVnVsbmVyYWJpbGl0eS4iPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTVMiIHVybD0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3RlY2huZXQvc2VjdXJpdHkvQnVsbGV0aW4vTVMwOC0wNTgubXNweCIgYWR2PSIxIj5NUzA4LTA1ODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0iaW50ZXJuZXRfZXhwbG9yZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDQiIG51bT0iNS4wMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iOS4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTM0NzciIHNlcT0iMjAwOC0zNDc3IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI5LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+TWljcm9zb2Z0IEV4Y2VsIDIwMDAgU1AzLCAyMDAyIFNQMywgYW5kIDIwMDMgU1AyIGFuZCBTUDMgZG9lcyBub3QgcHJvcGVybHkgdmFsaWRhdGUgZGF0YSBpbiB0aGUgVkJBIFBlcmZvcm1hbmNlIENhY2hlLCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhIGNyYWZ0ZWQgRXhjZWwgZmlsZSwgYWthICJDYWxlbmRhciBPYmplY3QgVmFsaWRhdGlvbiBWdWxuZXJhYmlsaXR5LiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1Ny5tc3B4IiBhZHY9IjEiPk1TMDgtMDU3PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJpbnRlcm5ldF9leHBsb3JlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSI1LjAxIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDEiIG51bT0iNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSIxMC4wIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC0zNDc5IiBzZXE9IjIwMDgtMzQ3OSIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iMTAuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5UaGUgTWljcm9zb2Z0IE1lc3NhZ2UgUXVldWluZyAoTVNNUSkgc2VydmljZSBpbiBNaWNyb3NvZnQgV2luZG93cyAyMDAwIFNQNCBkb2VzIG5vdCBwcm9wZXJseSB2YWxpZGF0ZSBwYXJhbWV0ZXJzIHRvIHN0cmluZyBBUElzLCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhIGNyYWZ0ZWQgUlBDIGNhbGwgdGhhdCBvdmVyZmxvd3MgYSAiaGVhcCByZXF1ZXN0LCIgYWthICJNZXNzYWdlIFF1ZXVpbmcgU2VydmljZSBSZW1vdGUgQ29kZSBFeGVjdXRpb24gVnVsbmVyYWJpbGl0eS4iPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA2NS5tc3B4IiBhZHY9IjEiPk1TMDgtMDY1PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzXzIwMDAiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI5LjMiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDAxOSIgc2VxPSIyMDA4LTQwMTkiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjkuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTUiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5JbnRlZ2VyIG92ZXJmbG93IGluIHRoZSBSRVBUIGZ1bmN0aW9uIGluIE1pY3Jvc29mdCBFeGNlbCAyMDAwIFNQMywgMjAwMiBTUDMsIDIwMDMgU1AyIGFuZCBTUDMsIGFuZCAyMDA3IEdvbGQgYW5kIFNQMTsgT2ZmaWNlIEV4Y2VsIFZpZXdlciAyMDAzIFNQMzsgT2ZmaWNlIEV4Y2VsIFZpZXdlcjsgT2ZmaWNlIENvbXBhdGliaWxpdHkgUGFjayBmb3IgV29yZCwgRXhjZWwsIGFuZCBQb3dlclBvaW50IDIwMDcgRmlsZSBGb3JtYXRzIEdvbGQgYW5kIFNQMTsgT2ZmaWNlIFNoYXJlUG9pbnQgU2VydmVyIDIwMDcgR29sZCBhbmQgU1AxOyBPZmZpY2UgMjAwNCBhbmQgMjAwOCBmb3IgTWFjOyBhbmQgT3BlbiBYTUwgRmlsZSBGb3JtYXQgQ29udmVydGVyIGZvciBNYWMgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYW4gRXhjZWwgZmlsZSBjb250YWluaW5nIGEgZm9ybXVsYSB3aXRoaW4gYSBjZWxsLCBha2EgIkZvcm11bGEgUGFyc2luZyBWdWxuZXJhYmlsaXR5LiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1Ny5tc3B4IiBhZHY9IjEiPk1TMDgtMDU3PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zZnQiIG5hbWU9Im9wZW5feG1sX2ZpbGVfZm9ybWF0X2NvbnZlcnRlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Im1hYyIgbnVtPSJ1bmtub3duIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0ib2ZmaWNlIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AzIiBudW09IjIwMDAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMiIgbnVtPSIyMDAzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iMjAwMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIwMDQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IjptYWMiIG51bT0iMjAwNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IjIwMDciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyMDA4IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6bWFjIiBudW09IjIwMDgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMyIgbnVtPSJ4cCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9Im9mZmljZV9jb21wYXRpYmlsaXR5X3BhY2tfZm9yX3dvcmRfZXhjZWxfcHB0XzIwMDciPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6c3AxIiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9Im9mZmljZV9leGNlbF92aWV3ZXIiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iMjAwMyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9Im9mZmljZV9zaGFyZXBvaW50X3NlcnZlciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSIyMDA3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDE6eDY0IiBudW09IjIwMDciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InVua25vd24iIG51bT0iMjAwNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0idW5rbm93bjp4NjQiIG51bT0iMjAwNyIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOk4vSTpQL0E6TikiIENWU1NfYmFzZV9zY29yZT0iNC4zIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDAyMCIgc2VxPSIyMDA4LTQwMjAiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE0IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC4zIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gTWljcm9zb2Z0IE9mZmljZSBYUCBTUDMgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gaW5qZWN0IGFyYml0cmFyeSB3ZWIgc2NyaXB0IG9yIEhUTUwgdmlhIGEgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50IiBoZWFkZXIgYW5kIGlzIGFjY2Vzc2VkIHRocm91Z2ggYSBjZG86IFVSTCwgd2hpY2ggcmVuZGVycyB0aGUgY29udGVudCBpbnN0ZWFkIG9mIHJhaXNpbmcgYSBGaWxlIERvd25sb2FkIGRpYWxvZyBib3gsIGFrYSAiVnVsbmVyYWJpbGl0eSBpbiBDb250ZW50LURpc3Bvc2l0aW9uIEhlYWRlciBWdWxuZXJhYmlsaXR5LiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA1Ni5tc3B4IiBhZHY9IjEiPk1TMDgtMDU2PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJvZmZpY2UiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0ieHAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQwMjMiIHNlcT0iMjAwOC00MDIzIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkFjdGl2ZSBEaXJlY3RvcnkgaW4gTWljcm9zb2Z0IFdpbmRvd3MgMjAwMCBTUDQgZG9lcyBub3QgcHJvcGVybHkgYWxsb2NhdGUgbWVtb3J5IGZvciAoMSkgTERBUCBhbmQgKDIpIExEQVBTIHJlcXVlc3RzLCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhIGNyYWZ0ZWQgcmVxdWVzdCwgYWthICJBY3RpdmUgRGlyZWN0b3J5IE92ZXJmbG93IFZ1bG5lcmFiaWxpdHkuIjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTVMiIHVybD0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3RlY2huZXQvc2VjdXJpdHkvQnVsbGV0aW4vTVMwOC0wNjAubXNweCIgYWR2PSIxIj5NUzA4LTA2MDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c18yMDAwIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3A0IiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpML0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy4yIiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjMuOSIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQwMzYiIHNlcT0iMjAwOC00MDM2IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTQiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjIiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+SW50ZWdlciBvdmVyZmxvdyBpbiBNZW1vcnkgTWFuYWdlciBpbiBNaWNyb3NvZnQgV2luZG93cyBYUCBTUDIgYW5kIFNQMywgU2VydmVyIDIwMDMgU1AxIGFuZCBTUDIsIFZpc3RhIEdvbGQgYW5kIFNQMSwgYW5kIFNlcnZlciAyMDA4IGFsbG93cyBsb2NhbCB1c2VycyB0byBnYWluIHByaXZpbGVnZXMgdmlhIGEgY3JhZnRlZCBhcHBsaWNhdGlvbiB0aGF0IHRyaWdnZXJzIGFuIGVycm9uZW91cyBkZWNyZW1lbnQgb2YgYSB2YXJpYWJsZSwgcmVsYXRlZCB0byB2YWxpZGF0aW9uIG9mIHBhcmFtZXRlcnMgZm9yIFZpcnR1YWwgQWRkcmVzcyBEZXNjcmlwdG9ycyAoVkFEcykgYW5kIGEgIm1lbW9yeSBhbGxvY2F0aW9uIG1hcHBpbmcgZXJyb3IsIiBha2EgIlZpcnR1YWwgQWRkcmVzcyBEZXNjcmlwdG9yIEVsZXZhdGlvbiBvZiBQcml2aWxlZ2UgVnVsbmVyYWJpbGl0eS4iPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxsb2NhbCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNUyIgdXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdGVjaG5ldC9zZWN1cml0eS9CdWxsZXRpbi9NUzA4LTA2NC5tc3B4Ij5NUzA4LTA2NDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c19zZXJ2ZXJfMjAwMyI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDE6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMiIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDI6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3NlcnZlcl8yMDA4Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOml0YW5pdW0iIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDMyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3Zpc3RhIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09InNwMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfeHAiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDIiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AzIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ieDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iMTAuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDAzOCIgc2VxPSIyMDA4LTQwMzgiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNCIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEwLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE1Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+QnVmZmVyIHVuZGVyZmxvdyBpbiBNaWNyb3NvZnQgV2luZG93cyAyMDAwIFNQNCwgWFAgU1AyIGFuZCBTUDMsIFNlcnZlciAyMDAzIFNQMSBhbmQgU1AyLCBWaXN0YSBHb2xkIGFuZCBTUDEsIGFuZCBTZXJ2ZXIgMjAwOCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhIFNlcnZlciBNZXNzYWdlIEJsb2NrIChTTUIpIHJlcXVlc3QgdGhhdCBjb250YWlucyBhIGZpbGVuYW1lIHdpdGggYSBjcmFmdGVkIGxlbmd0aCwgYWthICJTTUIgQnVmZmVyIFVuZGVyZmxvdyBWdWxuZXJhYmlsaXR5LiI8L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1TIiB1cmw9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS90ZWNobmV0L3NlY3VyaXR5L0J1bGxldGluL01TMDgtMDYzLm1zcHgiIGFkdj0iMSI+TVMwOC0wNjM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfMjAwMCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwNCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibWljcm9zb2Z0IiBuYW1lPSJ3aW5kb3dzX3NlcnZlcl8yMDAzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMTppdGFuaXVtIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AyOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjppdGFuaXVtIiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3Nfc2VydmVyXzIwMDgiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6aXRhbml1bSIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4MzIiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJtaWNyb3NvZnQiIG5hbWU9IndpbmRvd3NfdmlzdGEiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDY0IiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxIiBudW09IiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0ic3AxOng2NCIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0ic3AxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Im1pY3Jvc29mdCIgbmFtZT0id2luZG93c194cCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMiIgbnVtPSIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InNwMjp4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJzcDMiIG51bT0iIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJ4NjQiIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDU2OSIgc2VxPSIyMDA4LTQ1NjkiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5TUUwgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHkgaW4geGxhY29tbWVudHMuYXNwIGluIFhJR0xBIFNvZnR3YXJlIEFic29sdXRlIFBvbGwgTWFuYWdlciBYRSA0LjEgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB0aGUgcCBwYXJhbWV0ZXIuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE3MjQiPjMxNzI0PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NzMxIj42NzMxPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ieGlnbGEiIG5hbWU9ImFic29sdXRlX3BvbGxfbWFuYWdlcl94ZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4xIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDU3MCIgc2VxPSIyMDA4LTQ1NzAiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5TUUwgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHkgaW4gaW5kZXgucGhwIGluIFJlYWwgRXN0YXRlIENsYXNzaWZpZWRzIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IFNRTCBjb21tYW5kcyB2aWEgdGhlIGNhdCBwYXJhbWV0ZXIuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE3MjMiPjMxNzIzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NzM2Ij42NzM2PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIyMjMiIGFkdj0iMSI+MzIyMjM8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJyZWFsLWVzdGF0ZS1zY3JpcHRzIiBuYW1lPSJyZWFsLWVzdGF0ZS1zY3JpcHRzIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpOL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ1NzEiIHNlcT0iMjAwOC00NTcxIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5Dcm9zcy1zaXRlIHNjcmlwdGluZyAoWFNTKSB2dWxuZXJhYmlsaXR5IGluIHRoZSBMaXZlU2VhcmNoIG1vZHVsZSBpbiBQbG9uZSBiZWZvcmUgMy4wLjQgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gaW5qZWN0IGFyYml0cmFyeSB3ZWIgc2NyaXB0IG9yIEhUTUwgdmlhIHRoZSBEZXNjcmlwdGlvbiBmaWVsZCBmb3Igc2VhcmNoIHJlc3VsdHMsIGFzIGRlbW9uc3RyYXRlZCB1c2luZyB0aGUgb25lcnJvciBKYXZhc2NyaXB0IGV2ZW4gaW4gYW4gSU1HIHRhZy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICAgICAgPHVzZXJfaW5pdCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzI3MDk4Ij4yNzA5ODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vcGxvbmUub3JnL3Byb2R1Y3RzL3Bsb25lL3JlbGVhc2VzLzMuMC40Ij5odHRwOi8vcGxvbmUub3JnL3Byb2R1Y3RzL3Bsb25lL3JlbGVhc2VzLzMuMC40PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMjgyOTMiIGFkdj0iMSI+MjgyOTM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vZGV2LnBsb25lLm9yZy9wbG9uZS90aWNrZXQvNzQzOSIgYWR2PSIxIj5odHRwOi8vZGV2LnBsb25lLm9yZy9wbG9uZS90aWNrZXQvNzQzOTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9InBsb25lIiBuYW1lPSJwbG9uZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4wLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4xLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNS4xX3JjIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNS40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNV9iZXRhMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIzLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4wLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4wLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4wLjMiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQ1NzIiIHNlcT0iMjAwOC00NTcyIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTUiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNiI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkd1aWxkRlRQZCAwLjk5OS4xNCwgYW5kIHBvc3NpYmx5IG90aGVyIHZlcnNpb25zLCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChjcmFzaCkgYW5kIHBvc3NpYmx5IGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGxvbmcgYXJndW1lbnRzIHRvIHRoZSBDV0QgYW5kIExJU1QgY29tbWFuZHMsIHdoaWNoIHRyaWdnZXJzIGhlYXAgY29ycnVwdGlvbiByZWxhdGVkIHRvIGFuIGltcHJvcGVyIGZyZWUgY2FsbCwgYW5kIHBvc3NpYmx5IHRyaWdnZXJpbmcgYSBoZWFwLWJhc2VkIGJ1ZmZlciBvdmVyZmxvdy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTcyOSI+MzE3Mjk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY3MzgiPjY3Mzg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiB1cmw9Imh0dHA6Ly93d3cuZnJzaXJ0LmNvbS9lbmdsaXNoL2Fkdmlzb3JpZXMvMjAwOC8yNzk0IiBhZHY9IjEiPkFEVi0yMDA4LTI3OTQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjIxOCIgYWR2PSIxIj4zMjIxODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Imd1aWxkZnRwZCIgbmFtZT0iZ3VpbGRmdHBkIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIwLjk5OS4xNCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1NzMiIHNlcT0iMjAwOC00NTczIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTUiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIGthdGVnb3JpLmFzcCBpbiBNdW56dXJTb2Z0IFdlcCBQb3J0YWwgVzMgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB0aGUga2F0IHBhcmFtZXRlci48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTcxMyI+MzE3MTM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY3MjUiPjY3MjU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjIzOCIgYWR2PSIxIj4zMjIzODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFzcGluZGlyIiBuYW1lPSJtdW56dXJzb2Z0X3dlYl9wb3J0YWxfdzMiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IiIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1NzQiIHNlcT0iMjAwOC00NTc0IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTUiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIGRlZmF1bHQuYXNwIGluIEF5Y28gT2t1bCBQb3J0YWxpIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IFNRTCBjb21tYW5kcyB2aWEgdGhlIGxpbmtpZCBwYXJhbWV0ZXIuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJYRiIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU4MDEiPmFvcC1saW5raWQtc3FsLWluamVjdGlvbig0NTgwMSk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNzA0Ij4zMTcwNDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNjcyMCI+NjcyMDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMjQ0Ij4zMjI0NDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFzcGluZGlyIiBuYW1lPSJheWNvX29rdWxfcG9ydGFsaSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjIiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMy45IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDU1MyIgc2VxPSIyMDA4LTQ1NTMiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuMiIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5xZW11LW1ha2UtZGViaWFuLXJvb3QgaW4gcWVtdSAwLjkuMS01IG9uIERlYmlhbiBHTlUvTGludXggYWxsb3dzIGxvY2FsIHVzZXJzIHRvIG92ZXJ3cml0ZSBhcmJpdHJhcnkgZmlsZXMgdmlhIGEgc3ltbGluayBhdHRhY2sgb24gdGVtcG9yYXJ5IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IGFkbWluPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxsb2NhbCAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNTElTVCIgdXJsPSJodHRwOi8vd3d3Lm9wZW53YWxsLmNvbS9saXN0cy9vc3Mtc2VjdXJpdHkvMjAwOC8xMC8xNC80Ij5bb3NzLXNlY3VyaXR5XSAyMDA4MTAxNCBSZTogQ1ZFIGlkIHJlcXVlc3Q6IHFlbXU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUxJU1QiIHVybD0iaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMDgvMTAvMTMvMiI+W29zcy1zZWN1cml0eV0gMjAwODEwMTMgQ1ZFIGlkIHJlcXVlc3Q6IHFlbXU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9NDk2Mzk0Ij5odHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9NDk2Mzk0PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0icWVtdSIgbmFtZT0icWVtdSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMC45LjEtNSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpML0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNC42IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjMuOSIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDU1NCIgc2VxPSIyMDA4LTQ1NTQiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE1IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNC42IiBtb2RpZmllZD0iMjAwOC0xMC0xNiI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlRoZSBkb19zcGxpY2VfZnJvbSBmdW5jdGlvbiBpbiBmcy9zcGxpY2UuYyBpbiB0aGUgTGludXgga2VybmVsIGJlZm9yZSAyLjYuMjcgZG9lcyBub3QgcmVqZWN0IGZpbGUgZGVzY3JpcHRvcnMgdGhhdCBoYXZlIHRoZSBPX0FQUEVORCBmbGFnIHNldCwgd2hpY2ggYWxsb3dzIGxvY2FsIHVzZXJzIHRvIGJ5cGFzcyBhcHBlbmQgbW9kZSBhbmQgbWFrZSBhcmJpdHJhcnkgY2hhbmdlcyB0byBvdGhlciBsb2NhdGlvbnMgaW4gdGhlIGZpbGUuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bG9jYWwgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUxJU1QiIHVybD0iaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMDgvMTAvMTQvNSI+W29zcy1zZWN1cml0eV0gMjAwODEwMTQgUmU6IENWRSByZXF1ZXN0OiBrZXJuZWw6IGRvbid0IGFsbG93IHNwbGljZSgpIHRvIGZpbGVzIG9wZW5lZCB3aXRoIE9fQVBQRU5EPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1MSVNUIiB1cmw9Imh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDA4LzEwLzEzLzEiPltvc3Mtc2VjdXJpdHldIDIwMDgxMDEzIENWRSByZXF1ZXN0OiBrZXJuZWw6IGRvbid0IGFsbG93IHNwbGljZSgpIHRvIGZpbGVzIG9wZW5lZCB3aXRoIE9fQVBQRU5EPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5rZXJuZWwub3JnL3B1Yi9saW51eC9rZXJuZWwvdjIuNi9DaGFuZ2VMb2ctMi42LjI3Ij5odHRwOi8vd3d3Lmtlcm5lbC5vcmcvcHViL2xpbnV4L2tlcm5lbC92Mi42L0NoYW5nZUxvZy0yLjYuMjc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vZ2l0Lmtlcm5lbC5vcmcvP3A9bGludXgva2VybmVsL2dpdC9zdGFibGUvbGludXgtMi42LjI2LnkuZ2l0O2E9Y29tbWl0O2g9ZWZjOTY4ZDQ1MGUwMTMwNDlhNjYyZDIyNzI3Y2YxMzI2MThkY2IyZiI+aHR0cDovL2dpdC5rZXJuZWwub3JnLz9wPWxpbnV4L2tlcm5lbC9naXQvc3RhYmxlL2xpbnV4LTIuNi4yNi55LmdpdDthPWNvbW1pdDtoPWVmYzk2OGQ0NTBlMDEzMDQ5YTY2MmQyMjcyN2NmMTMyNjE4ZGNiMmY8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJsaW51eCIgbmFtZT0ia2VybmVsIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIuMjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi40LjM2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMzIiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM0IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM1IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM2IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM3IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjAuMTYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIwLjE3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMC4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjAuMTkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIwLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMC4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjEuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjEuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4xNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjE3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMTkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyX3JjMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjJfcmM3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjMuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMy4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjMuMTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjE1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMy4xNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjMuMTciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzX3JjMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0X3JjMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjRfcmM0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNF9yYzUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4Nl82NCIgbnVtPSIyLjYuMjUuMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI1LjEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNS4xNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjUuMTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4Nl82NCIgbnVtPSIyLjYuMjUuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4Nl82NCIgbnVtPSIyLjYuMjUuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4Nl82NCIgbnVtPSIyLjYuMjUuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzQiIG51bT0iMi42LjI2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNi4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNi4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNi4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNi40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNi41IiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Ti9JOk4vQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDU3NSIgc2VxPSIyMDA4LTQ1NzUiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE1IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNSI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgRG9Db21tYW5kIGZ1bmN0aW9uIGluIGpoZWFkIGJlZm9yZSAyLjg0IG1pZ2h0IGFsbG93IGNvbnRleHQtZGVwZW5kZW50IGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChjcmFzaCkgdmlhICgxKSBhIGxvbmcgLWNtZCBhcmd1bWVudCBhbmQgKDIpIHBvc3NpYmx5IG90aGVyIHVuc3BlY2lmaWVkIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cHM6Ly9idWdzLmxhdW5jaHBhZC5uZXQvdWJ1bnR1Lytzb3VyY2UvamhlYWQvK2J1Zy8yNzEwMjAiPmh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlL2poZWFkLytidWcvMjcxMDIwPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHVybD0iaHR0cDovL3d3dy5zZW50ZXgubmV0L35td2FuZGVsL2poZWFkL2NoYW5nZXMudHh0Ij5odHRwOi8vd3d3LnNlbnRleC5uZXQvfm13YW5kZWwvamhlYWQvY2hhbmdlcy50eHQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUxJU1QiIHVybD0iaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMDgvMTAvMTUvNiI+W29zcy1zZWN1cml0eV0gMjAwODEwMTUgUmU6IENWRSByZXF1ZXN0OiBqaGVhZDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9InNlbnRleCIgbmFtZT0iamhlYWQiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjQtMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjQtMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi44MiIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOk4vSTpOL0E6QykiIENWU1NfYmFzZV9zY29yZT0iNy44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjkiIG5hbWU9IkNWRS0yMDA4LTQ1NzYiIHNlcT0iMjAwOC00NTc2IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTUiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjgiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+c2N0cCBpbiBMaW51eCBrZXJuZWwgYmVmb3JlIDIuNi4yNS4xOCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlIChPT1BTKSB2aWEgYW4gSU5JVC1BQ0sgdGhhdCBzdGF0ZXMgdGhlIHBlZXIgZG9lcyBub3Qgc3VwcG9ydCBBVVRILCB3aGljaCBjYXVzZXMgdGhlIHNjdHBfcHJvY2Vzc19pbml0IGZ1bmN0aW9uIHRvIGNsZWFuIHVwIGFjdGl2ZSB0cmFuc3BvcnRzIGFuZCB0cmlnZ2VycyB0aGUgT09QUyB3aGVuIHRoZSBUMS1Jbml0IHRpbWVyIGV4cGlyZXMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1MSVNUIiB1cmw9Imh0dHA6Ly93d3cuZ29zc2FtZXItdGhyZWFkcy5jb20vbGlzdHMvbGludXgva2VybmVsLzk4MTAxMj9wYWdlPWxhc3QiPltsaW51eC1rZXJuZWxdIDIwMDgxMDA2IFtwYXRjaCA1OC83MV0gc2N0cDogRml4IG9vcHMgd2hlbiBJTklULUFDSyBpbmRpY2F0ZXMgdGhhdCBwZWVyIGRvZXNudCBzdXBwb3J0IEFVVEg8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8va2VybmVsLm9yZy9wdWIvbGludXgva2VybmVsL3YyLjYvQ2hhbmdlTG9nLTIuNi4yNS4xOCI+aHR0cDovL2tlcm5lbC5vcmcvcHViL2xpbnV4L2tlcm5lbC92Mi42L0NoYW5nZUxvZy0yLjYuMjUuMTg8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJsaW51eCIgbmFtZT0ia2VybmVsIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjIuMjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi40LjM2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNC4zNi42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMxIiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMyIiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmMzIiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM0IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM1IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM2IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0icmM3IiBudW09IjIuNi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMTkuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjAuMTYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIwLjE3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMC4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjAuMTkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIwLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMC4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjEuNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjEuNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjEuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4xNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjE3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4xOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMTkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjIwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMi4yMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjIuMjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIyX3JjMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjJfcmM3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjMuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMy4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjMuMTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjE1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yMy4xNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjMuMTciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzLjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjIzX3JjMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0LjciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI0X3JjMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjRfcmM0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNF9yYzUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjEwIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjExIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS4xMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS4xMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4Nl82NCIgbnVtPSIyLjYuMjUuMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI1LjEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNS4xNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIyLjYuMjUuMTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMi42LjI1LjE2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuNi4yNS4xNyIgcHJldj0iMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4Nl82NCIgbnVtPSIyLjYuMjUuNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249IiIgbnVtPSIyLjYuMjUuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iOng4Nl82NCIgbnVtPSIyLjYuMjUuNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iIiBudW09IjIuNi4yNS44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSI6eDg2XzY0IiBudW09IjIuNi4yNS44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSIiIG51bT0iMi42LjI1LjkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249Ijp4ODZfNjQiIG51bT0iMi42LjI1LjkiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjYuNCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNC45IiBuYW1lPSJDVkUtMjAwOC00NTc3IiBzZXE9IjIwMDgtNDU3NyIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTUiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI2LjQiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VGhlIEFDTCBwbHVnaW4gaW4gRG92ZWNvdCBiZWZvcmUgMS4xLjQgdHJlYXRzIG5lZ2F0aXZlIGFjY2VzcyByaWdodHMgYXMgaWYgdGhleSBhcmUgcG9zaXRpdmUgYWNjZXNzIHJpZ2h0cywgd2hpY2ggYWxsb3dzIGF0dGFja2VycyB0byBieXBhc3MgaW50ZW5kZWQgYWNjZXNzIHJlc3RyaWN0aW9ucy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LmZyc2lydC5jb20vZW5nbGlzaC9hZHZpc29yaWVzLzIwMDgvMjc0NSIgYWR2PSIxIj5BRFYtMjAwOC0yNzQ1PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1MSVNUIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LmRvdmVjb3Qub3JnL2xpc3QvZG92ZWNvdC1uZXdzLzIwMDgtT2N0b2Jlci8wMDAwODUuaHRtbCI+W0RvdmVjb3QtbmV3c10gMjAwODEwMDUgdjEuMS40IHJlbGVhc2VkPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU4NyI+MzE1ODc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjE2NCIgYWR2PSIxIj4zMjE2NDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly9idWdzLmdlbnRvby5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDQwOSI+aHR0cDovL2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNDA5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZG92ZWNvdCIgbmFtZT0iZG92ZWNvdCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMC45OS4xMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIwLjk5LjE0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLjEyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5iZXRhMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuYmV0YTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLmJldGEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5iZXRhNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuYmV0YTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLmJldGE2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5iZXRhNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuYmV0YTgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLmJldGE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5yYzEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5yYzQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmM2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5yYzciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmM5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMF9yYzI5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzIiIG51bT0iMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4zIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Ti9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDU3OCIgc2VxPSIyMDA4LTQ1NzgiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE1IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNiI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlRoZSBBQ0wgcGx1Z2luIGluIERvdmVjb3QgYmVmb3JlIDEuMS40IGFsbG93cyBhdHRhY2tlcnMgdG8gYnlwYXNzIGludGVuZGVkIGFjY2VzcyByZXN0cmljdGlvbnMgYnkgdXNpbmcgdGhlICJrIiByaWdodCB0byBjcmVhdGUgdW5hdXRob3JpemVkICJwYXJlbnQvY2hpbGQvY2hpbGQiIG1haWxib3hlcy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1MSVNUIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LmRvdmVjb3Qub3JnL2xpc3QvZG92ZWNvdC1uZXdzLzIwMDgtT2N0b2Jlci8wMDAwODUuaHRtbCI+W0RvdmVjb3QtbmV3c10gMjAwODEwMDUgdjEuMS40IHJlbGVhc2VkPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTU4NyI+MzE1ODc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiB1cmw9Imh0dHA6Ly93d3cuZnJzaXJ0LmNvbS9lbmdsaXNoL2Fkdmlzb3JpZXMvMjAwOC8yNzQ1IiBhZHY9IjEiPkFEVi0yMDA4LTI3NDU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjE2NCIgYWR2PSIxIj4zMjE2NDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly9idWdzLmdlbnRvby5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDQwOSI+aHR0cDovL2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNDA5PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZG92ZWNvdCIgbmFtZT0iZG92ZWNvdCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMC45OS4xMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIwLjk5LjE0IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLjEyIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4zIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC40IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC41IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC42IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC43IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC44IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC45IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5iZXRhMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuYmV0YTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLmJldGEzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5iZXRhNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuYmV0YTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLmJldGE2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5iZXRhNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAuYmV0YTgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLmJldGE5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5yYzEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTMiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTUiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTYiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTgiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMTkiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyMyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNiIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMyOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmMzIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5yYzQiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmM2IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC5yYzciIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4wLnJjOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIxLjAucmM5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMF9yYzI5IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyYzIiIG51bT0iMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4xIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4yIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMS4zIiBwcmV2PSIxIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6TS9BdTpOL0M6Ti9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSIxLjkiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMy40IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTc5IiBzZXE9IjIwMDgtNDU3OSIgc2V2ZXJpdHk9IkxvdyIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTUiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxLjkiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VGhlICgxKSBmZW5jZV9hcGMgYW5kICgyKSBmZW5jZV9hcGNfc25tcCBwcm9ncmFtcywgYXMgdXNlZCBpbiAoYSkgZmVuY2UgMi4wMi4wMC1yMSBhbmQgcG9zc2libHkgKGIpIGNtYW4sIHdoZW4gcnVubmluZyBpbiB2ZXJib3NlIG1vZGUsIGFsbG93cyBsb2NhbCB1c2VycyB0byBhcHBlbmQgdG8gYXJiaXRyYXJ5IGZpbGVzIHZpYSBhIHN5bWxpbmsgYXR0YWNrIG9uIHRoZSBhcGNsb2cgdGVtcG9yYXJ5IGZpbGUuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bG9jYWwgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUxJU1QiIHVybD0iaHR0cDovL3d3dy5vcGVud2FsbC5jb20vbGlzdHMvb3NzLXNlY3VyaXR5LzIwMDgvMTAvMTMvMyI+W29zcy1zZWN1cml0eV0gMjAwODEwMTMgUmU6IENWRSBSZXF1ZXN0PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNTc2Ij5odHRwOi8vYnVncy5nZW50b28ub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA1NzY8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJnZW50b28iIG5hbWU9ImNtYW4iPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyMSIgbnVtPSIyLjAyLjAwIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImdlbnRvbyIgbmFtZT0iZmVuY2UiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBlZGl0aW9uPSJyMSIgbnVtPSIyLjAyLjAwIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjIiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMy45IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDU4MCIgc2VxPSIyMDA4LTQ1ODAiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuMiIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5mZW5jZV9tYW51YWwgaW4gZmVuY2UgYWxsb3dzIGxvY2FsIHVzZXJzIHRvIG1vZGlmeSBhcmJpdHJhcnkgZmlsZXMgdmlhIGEgc3ltbGluayBhdHRhY2sgb24gdGhlIGZlbmNlX21hbnVhbC5maWZvIHRlbXBvcmFyeSBmaWxlLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPGxvY2FsIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1MSVNUIiB1cmw9Imh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDA4LzEwLzEzLzMiPltvc3Mtc2VjdXJpdHldIDIwMDgxMDEzIFJlOiBDVkUgUmVxdWVzdDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImdlbnRvbyIgbmFtZT0iY21hbiI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InIxIiBudW09IjIuMDIuMDAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZ2VudG9vIiBuYW1lPSJmZW5jZSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIGVkaXRpb249InIxIiBudW09IjIuMDIuMDAiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1OlMvQzpQL0k6Ti9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ1ODEiIHNlcT0iMjAwOC00NTgxIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMCIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5UaGUgRWRpdG9yIGluIElCTSBFTk9WSUEgU21hclRlYW0gNSBiZWZvcmUgcmVsZWFzZSAxOCBTUDUsIGFuZCByZWxlYXNlIDE5IGJlZm9yZSBTUDAxLCBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gYnlwYXNzIGludGVuZGVkIGFjY2VzcyByZXN0cmljdGlvbnMgYW5kIHJlYWQgRG9jdW1lbnQgb2JqZWN0cyB2aWEgdGhlIFdvcmtmbG93IFByb2Nlc3MgKGFrYSBGbG93IFByb2Nlc3MpIHZpZXcuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNzQ4Ij4zMTc0ODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJBSVhBUEFSIiB1cmw9Imh0dHA6Ly93d3ctMS5pYm0uY29tL3N1cHBvcnQvZG9jdmlldy53c3M/dWlkPXN3ZzFIRDcxNDI1IiBhZHY9IjEiPkhENzE0MjU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3LTAxLmlibS5jb20vc3VwcG9ydC9kb2N2aWV3Lndzcz91aWQ9c3dnMjcwMTI1NjcmYW1wO2FpZD0xIj5odHRwOi8vd3d3LTAxLmlibS5jb20vc3VwcG9ydC9kb2N2aWV3Lndzcz91aWQ9c3dnMjcwMTI1NjcmYW1wO2FpZD0xPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIxMDUiPjMyMTA1PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iaWJtIiBuYW1lPSJlbm92aWFfc21hcnRlYW0iPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjUiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpQL0k6Ti9BOk4pIiBDVlNTX2Jhc2Vfc2NvcmU9IjQuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIyLjkiIG5hbWU9IkNWRS0yMDA4LTQ1ODIiIHNlcT0iMjAwOC00NTgyIiBzZXZlcml0eT0iTWVkaXVtIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjQuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5Nb3ppbGxhIEZpcmVmb3ggMy4wLjEgdGhyb3VnaCAzLjAuMyBvbiBXaW5kb3dzIGRvZXMgbm90IHByb3Blcmx5IGlkZW50aWZ5IHRoZSBjb250ZXh0IG9mIFdpbmRvd3MgLnVybCBzaG9ydGN1dCBmaWxlcywgd2hpY2ggYWxsb3dzIHVzZXItYXNzaXN0ZWQgcmVtb3RlIGF0dGFja2VycyB0byBieXBhc3MgdGhlIFNhbWUgT3JpZ2luIFBvbGljeSBhbmQgb2J0YWluIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiB2aWEgYW4gSFRNTCBkb2N1bWVudCB0aGF0IGlzIGRpcmVjdGx5IGFjY2Vzc2libGUgdGhyb3VnaCBhIGZpbGVzeXN0ZW0sIGFzIGRlbW9uc3RyYXRlZCBieSBkb2N1bWVudHMgaW4gKDEpIGxvY2FsIGZvbGRlcnMsICgyKSBXaW5kb3dzIHNoYXJlIGZvbGRlcnMsIGFuZCAoMykgUkFSIGFyY2hpdmVzLCBhbmQgYXMgZGVtb25zdHJhdGVkIGJ5IElGUkFNRXMgcmVmZXJlbmNpbmcgc2hvcnRjdXRzIHRoYXQgcG9pbnQgdG8gKGEpIGFib3V0OmNhY2hlP2RldmljZT1tZW1vcnkgYW5kIChiKSBhYm91dDpjYWNoZT9kZXZpY2U9ZGlzaywgYSB2YXJpYW50IG9mIENWRS0yMDA4LTI4MTAuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJVR1RSQVEiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9hcmNoaXZlLzEvYXJjaGl2ZS8xLzQ5NzA5MS8xMDAvMC90aHJlYWRlZCI+MjAwODEwMDcgRmlyZWZveCBQcml2YWN5IEJyb2tlbiBJZiBVc2VkIHRvIE9wZW4gV2ViIFBhZ2UgRmlsZTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMTkyIiBhZHY9IjEiPjMyMTkyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL2xpdWRpZXl1MC5ibG9nMTI0LmZjMi5jb20vYmxvZy1lbnRyeS02Lmh0bWwiPmh0dHA6Ly9saXVkaWV5dTAuYmxvZzEyNC5mYzIuY29tL2Jsb2ctZW50cnktNi5odG1sPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0ibW96aWxsYSIgbmFtZT0iZmlyZWZveCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4wLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4wLjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4wLjMiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpQL0k6UC9BOlApIiBDVlNTX2Jhc2Vfc2NvcmU9IjcuNSIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iNi40IiBuYW1lPSJDVkUtMjAwOC00NTgzIiBzZXE9IjIwMDgtNDU4MyIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE1IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNy41IiBtb2RpZmllZD0iMjAwOC0xMC0xNiI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkluc2VjdXJlIG1ldGhvZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBDaGlsa2F0IEZUUCAyLjAgQWN0aXZlWCBjb21wb25lbnQgKENoaWxrYXRDZXJ0LmRsbCkgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gb3ZlcndyaXRlIGFyYml0cmFyeSBmaWxlcyB2aWEgYSBmdWxsIHBhdGhuYW1lIGluIHRoZSBTYXZlUGtjczhGaWxlIG1ldGhvZC48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGF2YWlsIC8+DQorICAgICAgICAgICAgPGNvbmYgLz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICAgICAgPHNlY19wcm90IG90aGVyPSIxIiAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8yNzU0MCI+Mjc1NDA8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzUwMjgiPjUwMjg8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJjaGlsa2F0X3NvZnR3YXJlIiBuYW1lPSJmdHAiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjIuMCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOk0vQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNi44IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjguNiIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDU4NCIgc2VxPSIyMDA4LTQ1ODQiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE1IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNi44IiBtb2RpZmllZD0iMjAwOC0xMC0xNiI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkluc2VjdXJlIG1ldGhvZCB2dWxuZXJhYmlsaXR5IGluIENoaWxrYXQgTWFpbCA3LjggQWN0aXZlWCBjb250cm9sIChDaGlsa2F0Q2VydC5kbGwpIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIG92ZXJ3cml0ZSBhcmJpdHJhcnkgZmlsZXMgdmlhIGEgZnVsbCBwYXRobmFtZSB0byB0aGUgU2F2ZUxhc3RFcnJvciBtZXRob2QuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBvdGhlcj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQwMDQxIj5jaGlsa2F0bWFpbC1jaGlsa2F0Y2VydC1maWxlLW92ZXJ3cml0ZSg0MDA0MSk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzI3NDkzIj4yNzQ5MzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNTAwNSI+NTAwNTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImNoaWxrYXRfc29mdHdhcmUiIG5hbWU9Im1haWwiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuOCIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOlAvSTpQL0E6UCkiIENWU1NfYmFzZV9zY29yZT0iNy41IiBDVlNTX2V4cGxvaXRfc3Vic2NvcmU9IjEwLjAiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSI2LjQiIG5hbWU9IkNWRS0yMDA4LTQ1ODUiIHNlcT0iMjAwOC00NTg1IiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTUiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI3LjUiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+QmVsb25nIFNvZnR3YXJlIFNpdGUgQnVpbGRlciAwLjEgYmV0YSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBieXBhc3MgaW50ZW5kZWQgYWNjZXNzIHJlc3RyaWN0aW9ucyBhbmQgcGVyZm9ybSBhZG1pbmlzdHJhdGl2ZSBhY3Rpb25zIHZpYSBhIGRpcmVjdCByZXF1ZXN0IHRvIGFkbWluL2hvbWUucGhwLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzM5ODQyIj5iZWxvbmdzaXRlYnVpbGRlci1hZG1pbi1zZWN1cml0eS1ieXBhc3MoMzk4NDIpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8yNzQwMiI+Mjc0MDI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQlVHVFJBUSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2FyY2hpdmUvMS9hcmNoaXZlLzEvNDg2ODAzLzEwMC8yMDAvdGhyZWFkZWQiPjIwMDgwMTIyIEJlbG9uZyBTaXRlIEJ1aWxkZXIgMC4xYiBCeXBhc3MgQWRtaW5jcDwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImJlbG9uZ19zb2Z0d2FyZSIgbmFtZT0ic2l0ZV9idWlsZGVyIj4NCisgICAgICAgICAgICAgICAgPHZlcnMgZWRpdGlvbj0iYmV0YSIgbnVtPSIwLjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpNL0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjkuMyIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSI4LjYiIENWU1NfaW1wYWN0X3N1YnNjb3JlPSIxMC4wIiBuYW1lPSJDVkUtMjAwOC00NTg2IiBzZXE9IjIwMDgtNDU4NiIgc2V2ZXJpdHk9IkhpZ2giIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE1IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iOS4zIiBtb2RpZmllZD0iMjAwOC0xMC0xNiI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkluc2VjdXJlIG1ldGhvZCB2dWxuZXJhYmlsaXR5IGluIHRoZSBNVlNOQ0xpZW50V2ViQWdlbnQ2MS5XZWJBZ2VudC4xIEFjdGl2ZVggY29udHJvbCAoaXN1c3dlYi5kbGwgNi4xLjEwMC42MTM3MikgaW4gTWFjcm92aXNpb24gRkxFWG5ldCBDb25uZWN0IDYuMSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBmb3JjZSB0aGUgZG93bmxvYWQgYW5kIGV4ZWN1dGlvbiBvZiBhcmJpdHJhcnkgZmlsZXMgdmlhIHRoZSBEb3dubG9hZEFuZEV4ZWN1dGUgbWV0aG9kLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8yNzI3OSI+MjcyNzk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzQ5MTMiPjQ5MTM8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8yODQ5NiIgYWR2PSIxIj4yODQ5NjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9ImFjcmVzc28iIG5hbWU9ImZsZXhuZXRfY29ubmVjdCI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNi4xIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI5LjMiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDU4NyIgc2VxPSIyMDA4LTQ1ODciIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjkuMyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5JbnNlY3VyZSBtZXRob2QgdnVsbmVyYWJpbGl0eSBpbiB0aGUgTVNWTkNsaWVudERvd25sb2FkTWFuYWdlcjYxTGliLkRvd25sb2FkTWFuYWdlci4xIEFjdGl2ZVggY29udHJvbCAoSVNETS5leGUgNi4xLjEwMC42MTM3MikgaW4gTWFjcm92aXNpb24gRkxFWG5ldCBDb25uZWN0IDYuMSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBmb3JjZSB0aGUgZG93bmxvYWQgYW5kIGV4ZWN1dGlvbiBvZiBhcmJpdHJhcnkgZmlsZXMgdmlhIHRoZSBBZGRGaWxlIGFuZCBSdW5TY2hlZHVsZWRKb2JzIG1ldGhvZHMuICBOT1RFOiB0aGlzIGNvdWxkIGJlIGxldmVyYWdlZCBmb3IgY29kZSBleGVjdXRpb24gYnkgdXBsb2FkaW5nIGV4ZWN1dGFibGUgZmlsZXMgdG8gU3RhcnR1cCBmb2xkZXJzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgICAgIDx1c2VyX2luaXQgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzM5NjUzIj5tYWNyb3Zpc2lvbi1mbGV4bmV0LWZpbGUtb3ZlcndyaXRlKDM5NjUzKTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMjcyNzkiPjI3Mjc5PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy80OTA5Ij40OTA5PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMjg0OTYiIGFkdj0iMSI+Mjg0OTY8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJhY3Jlc3NvIiBuYW1lPSJmbGV4bmV0X2Nvbm5lY3QiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjYuMSIgLz4NCisgICAgICAgICAgICA8L3Byb2Q+DQorICAgICAgICA8L3Z1bG5fc29mdD4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgQ1ZTU192ZWN0b3I9IihBVjpOL0FDOkwvQXU6Ti9DOkMvSTpDL0E6QykiIENWU1NfYmFzZV9zY29yZT0iMTAuMCIgQ1ZTU19leHBsb2l0X3N1YnNjb3JlPSIxMC4wIiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDU4OCIgc2VxPSIyMDA4LTQ1ODgiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjEwLjAiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U3RhY2stYmFzZWQgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBGVFAgc2VydmVyIGluIEV0eXBlIEVzZXJ2IDMueCwgcG9zc2libHkgMy4yNiwgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gY2F1c2UgYSBkZW5pYWwgb2Ygc2VydmljZSAoZGFlbW9uIGNyYXNoKSBhbmQgcG9zc2libHkgZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYSBsb25nIGFyZ3VtZW50IHRvIHRoZSBBQk9SIGNvbW1hbmQuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxsb3NzX3R5cGVzPg0KKyAgICAgICAgICAgIDxhdmFpbCAvPg0KKyAgICAgICAgICAgIDxjb25mIC8+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgICAgIDxzZWNfcHJvdCBhZG1pbj0iMSIgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bmV0d29yayAvPg0KKyAgICAgICAgPC9yYW5nZT4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJYRiIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU4NjQiPmVzZXJ2ZnRwLWFib3ItYm8oNDU4NjQpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL3d3dy56ZXJvc2NpZW5jZS5vcmcvY29kZXMvZXNlcnZfYm9mLnR4dCI+aHR0cDovL3d3dy56ZXJvc2NpZW5jZS5vcmcvY29kZXMvZXNlcnZfYm9mLnR4dDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE3NTMiPjMxNzUzPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NzUyIj42NzUyPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iZXR5cGUiIG5hbWU9ImVzZXJ2Ij4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIzLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMy4yNSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSIzLjI2IiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOkwvQUM6TC9BdTpOL0M6Qy9JOkMvQTpDKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjIiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMy45IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMTAuMCIgbmFtZT0iQ1ZFLTIwMDgtNDU4OSIgc2VxPSIyMDA4LTQ1ODkiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNSIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuMiIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5IZWFwLWJhc2VkIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgdHZ0dW1pbi5zeXMga2VybmVsIGRyaXZlciBpbiBMZW5vdm8gUmVzY3VlIGFuZCBSZWNvdmVyeSA0LjIwLCBpbmNsdWRpbmcgNC4yMC4wNTExIGFuZCA0LjIwLjA1MTIsIGFsbG93cyBsb2NhbCB1c2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIHZpYSBhIGxvbmcgZmlsZSBuYW1lLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgIDwvbG9zc190eXBlcz4NCisgICAgICAgIDxyYW5nZT4NCisgICAgICAgICAgICA8bG9jYWwgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTczNyI+MzE3Mzc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgcGF0Y2g9IjEiIHVybD0iaHR0cDovL3d3dy0zMDcuaWJtLmNvbS9wYy9zdXBwb3J0L3NpdGUud3NzL01JR1ItNzA2OTkuaHRtbCIgYWR2PSIxIj5odHRwOi8vd3d3LTMwNy5pYm0uY29tL3BjL3N1cHBvcnQvc2l0ZS53c3MvTUlHUi03MDY5OS5odG1sPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3ctMzA3LmlibS5jb20vcGMvc3VwcG9ydC9zaXRlLndzcy9NSUdSLTRRMlFBSy5odG1sIiBhZHY9IjEiPmh0dHA6Ly93d3ctMzA3LmlibS5jb20vcGMvc3VwcG9ydC9zaXRlLndzcy9NSUdSLTRRMlFBSy5odG1sPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTgzOSI+bGVub3ZvLXJlc2N1ZS1yZWNvdmVyeS10dnR1bWluLWJvKDQ1ODM5KTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5dHJhY2tlci5jb20vaWQ/MTAyMTA0MSI+MTAyMTA0MTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCVUdUUkFRIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYXJjaGl2ZS8xL2FyY2hpdmUvMS80OTcyNzcvMTAwLzAvdGhyZWFkZWQiPjIwMDgxMDEwIGlTRUMgUGFydG5lcnMgU2VjdXJpdHkgQWR2aXNvcnkgLSAyMDA4LTAwMi1sZW5vdm9ybnIgLSBMZW5vdm8gUmVzY3VlIGFuZCBSZWNvdmVyeSA0LjIwPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL3d3dy5pc2VjcGFydG5lcnMuY29tL2Fkdmlzb3JpZXMvMjAwOC0wMi1sZW5vdm9ybnIudHh0Ij5odHRwOi8vd3d3LmlzZWNwYXJ0bmVycy5jb20vYWR2aXNvcmllcy8yMDA4LTAyLWxlbm92b3Juci50eHQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiB1cmw9Imh0dHA6Ly93d3cuZnJzaXJ0LmNvbS9lbmdsaXNoL2Fkdmlzb3JpZXMvMjAwOC8yODA2IiBhZHY9IjEiPkFEVi0yMDA4LTI4MDY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjI1MiIgYWR2PSIxIj4zMjI1MjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICAgICAgPHZ1bG5fc29mdD4NCisgICAgICAgICAgICA8cHJvZCB2ZW5kb3I9Imxlbm92byIgbmFtZT0icmVzdWNlX2FuZF9yZWNvdmVyeSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4yMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI0LjIwLjA1MTEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNC4yMC4wNTEyIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6UC9JOlAvQTpQKSIgQ1ZTU19iYXNlX3Njb3JlPSI3LjUiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjYuNCIgbmFtZT0iQ1ZFLTIwMDgtNDU5MCIgc2VxPSIyMDA4LTQ1OTAiIHNldmVyaXR5PSJIaWdoIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNiIgQ1ZTU192ZXJzaW9uPSIyLjAiIENWU1Nfc2NvcmU9IjcuNSIgbW9kaWZpZWQ9IjIwMDgtMTAtMTYiPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NdWx0aXBsZSBTUUwgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdGllcyBpbiBTdGFzaCAxLjAuMyBhbGxvdyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IFNRTCBjb21tYW5kcyB2aWEgKDEpIHRoZSB1c2VybmFtZSBwYXJhbWV0ZXIgdG8gYWRtaW4vbG9naW4ucGhwIGFuZCAoMikgdGhlIHBvc3QgcGFyYW1ldGVyIHRvIGFkbWluL25ld3MucGhwLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3Qgb3RoZXI9IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1Nzk5Ij5zdGFzaC1uZXdzLXNxbC1pbmplY3Rpb24oNDU3OTkpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTY4NyI+MzE2ODc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY3MTQiPjY3MTQ8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJzdGFzaCIgbmFtZT0ic3Rhc2giPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjEuMC4zIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TS9BdTpOL0M6Ti9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI0LjMiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iOC42IiBDVlNTX2ltcGFjdF9zdWJzY29yZT0iMi45IiBuYW1lPSJDVkUtMjAwOC00NTkxIiBzZXE9IjIwMDgtNDU5MSIgc2V2ZXJpdHk9Ik1lZGl1bSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTYiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSI0LjMiIG1vZGlmaWVkPSIyMDA4LTEwLTE2Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+TXVsdGlwbGUgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgKFhTUykgdnVsbmVyYWJpbGl0aWVzIGluIGFkbWluL2luY2x1ZGUvaXNhZG1pbi5pbmMucGhwIGluIFBocFdlYkdhbGxlcnkgMS4zLjQgYWxsb3cgcmVtb3RlIGF0dGFja2VycyB0byBpbmplY3QgYXJiaXRyYXJ5IHdlYiBzY3JpcHQgb3IgSFRNTCB2aWEgdGhlICgxKSBsYW5nW2FjY2Vzc19mb3JiaWRlbl0gYW5kICgyKSBsYW5nW2lkZW50X3RpdGxlXSBwYXJhbWV0ZXJzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8aW50IC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgICAgICA8dXNlcl9pbml0IC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NDI1Ij42NDI1PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0icGhwd2ViZ2FsbGVyeSIgbmFtZT0icGhwd2ViZ2FsbGVyeSI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iMS4zLjQiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IENWU1NfdmVjdG9yPSIoQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpIiBDVlNTX2Jhc2Vfc2NvcmU9IjEwLjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjEwLjAiIG5hbWU9IkNWRS0yMDA4LTQ1OTIiIHNlcT0iMjAwOC00NTkyIiBzZXZlcml0eT0iSGlnaCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTYiIENWU1NfdmVyc2lvbj0iMi4wIiBDVlNTX3Njb3JlPSIxMC4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNiI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkRpcmVjdG9yeSB0cmF2ZXJzYWwgdnVsbmVyYWJpbGl0eSBpbiBpbmRleC5waHAgaW4gU3BvcnRzIENsdWJzIFdlYiBQYW5lbCAwLjAuMSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBpbmNsdWRlIGFuZCBleGVjdXRlIGFyYml0cmFyeSBsb2NhbCBmaWxlcyB2aWEgYSAuLiAoZG90IGRvdCkgaW4gdGhlIHAgcGFyYW1ldGVyLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8bG9zc190eXBlcz4NCisgICAgICAgICAgICA8YXZhaWwgLz4NCisgICAgICAgICAgICA8Y29uZiAvPg0KKyAgICAgICAgICAgIDxpbnQgLz4NCisgICAgICAgICAgICA8c2VjX3Byb3QgYWRtaW49IjEiIC8+DQorICAgICAgICA8L2xvc3NfdHlwZXM+DQorICAgICAgICA8cmFuZ2U+DQorICAgICAgICAgICAgPG5ldHdvcmsgLz4NCisgICAgICAgIDwvcmFuZ2U+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY0MjciPjY0Mjc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iRlJTSVJUIiB1cmw9Imh0dHA6Ly93d3cuZnJzaXJ0LmNvbS9lbmdsaXNoL2Fkdmlzb3JpZXMvMjAwOC8yNTUwIiBhZHY9IjEiPkFEVi0yMDA4LTI1NTA8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgICAgIDx2dWxuX3NvZnQ+DQorICAgICAgICAgICAgPHByb2QgdmVuZG9yPSJzcG9ydHNwYW5lbCIgbmFtZT0ic3BvcnRzX2NsdWJzX3dlYl9wb3J0YWwiPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjAuMC4xIiAvPg0KKyAgICAgICAgICAgIDwvcHJvZD4NCisgICAgICAgIDwvdnVsbl9zb2Z0Pg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBDVlNTX3ZlY3Rvcj0iKEFWOk4vQUM6TC9BdTpOL0M6Ti9JOlAvQTpOKSIgQ1ZTU19iYXNlX3Njb3JlPSI1LjAiIENWU1NfZXhwbG9pdF9zdWJzY29yZT0iMTAuMCIgQ1ZTU19pbXBhY3Rfc3Vic2NvcmU9IjIuOSIgbmFtZT0iQ1ZFLTIwMDgtNDQwMSIgc2VxPSIyMDA4LTQ0MDEiIHNldmVyaXR5PSJNZWRpdW0iIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE3IiBDVlNTX3ZlcnNpb249IjIuMCIgQ1ZTU19zY29yZT0iNS4wIiBtb2RpZmllZD0iMjAwOC0xMC0xNyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkFjdGlvblNjcmlwdCBpbiBBZG9iZSBGbGFzaCBQbGF5ZXIgOS4wLjEyNC4wIGFuZCBlYXJsaWVyIGRvZXMgbm90IHJlcXVpcmUgdXNlciBpbnRlcmFjdGlvbiBpbiBjb25qdW5jdGlvbiB3aXRoICgxKSB0aGUgRmlsZVJlZmVyZW5jZS5icm93c2Ugb3BlcmF0aW9uIGluIHRoZSBGaWxlUmVmZXJlbmNlIHVwbG9hZCBBUEkgb3IgKDIpIHRoZSBGaWxlUmVmZXJlbmNlLmRvd25sb2FkIG9wZXJhdGlvbiBpbiB0aGUgRmlsZVJlZmVyZW5jZSBkb3dubG9hZCBBUEksIHdoaWNoIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGNyZWF0ZSBhIGJyb3dzZSBkaWFsb2cgYm94LCBhbmQgcG9zc2libHkgaGF2ZSB1bnNwZWNpZmllZCBvdGhlciBpbXBhY3QsIHZpYSBhbiBTV0YgZmlsZS48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPGxvc3NfdHlwZXM+DQorICAgICAgICAgICAgPGludCAvPg0KKyAgICAgICAgPC9sb3NzX3R5cGVzPg0KKyAgICAgICAgPHJhbmdlPg0KKyAgICAgICAgICAgIDxuZXR3b3JrIC8+DQorICAgICAgICA8L3JhbmdlPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU5MTMiPmFkb2JlLWZsYXNoLWZpbGVyZWZlcmVuY2UtZmlsZS11cGxvYWQoNDU5MTMpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkNPTkZJUk0iIHBhdGNoPSIxIiB1cmw9Imh0dHA6Ly93d3cuYWRvYmUuY29tL3N1cHBvcnQvc2VjdXJpdHkvYnVsbGV0aW5zL2Fwc2IwOC0xOC5odG1sIj5odHRwOi8vd3d3LmFkb2JlLmNvbS9zdXBwb3J0L3NlY3VyaXR5L2J1bGxldGlucy9hcHNiMDgtMTguaHRtbDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiBwYXRjaD0iMSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjI3MCIgYWR2PSIxIj4zMjI3MDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI4MzgiIGFkdj0iMSI+QURWLTIwMDgtMjgzODwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly93d3cuYWRvYmUuY29tL2Rldm5ldC9mbGFzaHBsYXllci9hcnRpY2xlcy9mcGxheWVyMTBfc2VjdXJpdHlfY2hhbmdlcy5odG1sIj5odHRwOi8vd3d3LmFkb2JlLmNvbS9kZXZuZXQvZmxhc2hwbGF5ZXIvYXJ0aWNsZXMvZnBsYXllcjEwX3NlY3VyaXR5X2NoYW5nZXMuaHRtbDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vc2VjdXJpdHl0cmFja2VyLmNvbS9pZD8xMDIxMDYxIj4xMDIxMDYxPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgICAgICA8dnVsbl9zb2Z0Pg0KKyAgICAgICAgICAgIDxwcm9kIHZlbmRvcj0iYWRvYmUiIG5hbWU9ImZsYXNoX3BsYXllciI+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy4wLjEiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iNy4wLjI1IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMC42MyIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAuNjkuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjAuNzAuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjBfcjY3IiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjcuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjEuMSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI3LjIiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI4LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC4wLjI0LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC4wLjM0LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC4wLjM1LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOC4wLjM5LjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOSIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAuMTEyLjAiIC8+DQorICAgICAgICAgICAgICAgIDx2ZXJzIG51bT0iOS4wLjExNC4wIiAvPg0KKyAgICAgICAgICAgICAgICA8dmVycyBudW09IjkuMC4xMTUuMCIgLz4NCisgICAgICAgICAgICAgICAgPHZlcnMgbnVtPSI5LjAuMTI0LjAiIHByZXY9IjEiIC8+DQorICAgICAgICAgICAgPC9wcm9kPg0KKyAgICAgICAgPC92dWxuX3NvZnQ+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IG5hbWU9IkNWRS0yMDA4LTQ0NzMiIHNlcT0iMjAwOC00NDczIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTciPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5NdWx0aXBsZSBoZWFwLWJhc2VkIGJ1ZmZlciBvdmVyZmxvd3MgaW4gQWRvYmUgRmxhc2ggQ1MzIFByb2Zlc3Npb25hbCBvbiBXaW5kb3dzIGFuZCBGbGFzaCBNWCAyMDA0IGFsbG93IHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSB2aWEgYW4gU1dGIGZpbGUgY29udGFpbmluZyBsb25nIGNvbnRyb2wgcGFyYW1ldGVycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTkxNCI+YWRvYmUtZmxhc2gtY3MzLWJvKDQ1OTE0KTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE3NjkiPjMxNzY5PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJVR1RSQVEiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9hcmNoaXZlLzEvYXJjaGl2ZS8xLzQ5NzM5Ny8xMDAvMC90aHJlYWRlZCI+MjAwODEwMTUgTXVsdGlwbGUgRmxhc2ggQXV0aG9yaW5nIEhlYXAgT3ZlcmZsb3dzIC0gTWFsZm9ybWVkIFNXRiBGaWxlczwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI4MzciPkFEVi0yMDA4LTI4Mzc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vd3d3LmFkb2JlLmNvbS9zdXBwb3J0L3NlY3VyaXR5L2Fkdmlzb3JpZXMvYXBzYTA4LTA5Lmh0bWwiPmh0dHA6Ly93d3cuYWRvYmUuY29tL3N1cHBvcnQvc2VjdXJpdHkvYWR2aXNvcmllcy9hcHNhMDgtMDkuaHRtbDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNUUkFDSyIgdXJsPSJodHRwOi8vc2VjdXJpdHl0cmFja2VyLmNvbS9pZD8xMDIxMDYwIj4xMDIxMDYwPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JU0MiIHVybD0iaHR0cDovL3NlY3VyaXR5LWFzc2Vzc21lbnQuY29tL2ZpbGVzL2Fkdmlzb3JpZXMvMjAwOC0xMC0xNl9NdWx0aXBsZV9GbGFzaF9BdXRob3JpbmdfSGVhcF9PdmVyZmxvd3MucGRmIj5odHRwOi8vc2VjdXJpdHktYXNzZXNzbWVudC5jb20vZmlsZXMvYWR2aXNvcmllcy8yMDA4LTEwLTE2X011bHRpcGxlX0ZsYXNoX0F1dGhvcmluZ19IZWFwX092ZXJmbG93cy5wZGY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjI0NiI+MzIyNDY8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgbmFtZT0iQ1ZFLTIwMDgtNDQxMiIgc2VxPSIyMDA4LTQ0MTIiIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE3IiBtb2RpZmllZD0iMjAwOC0xMC0xNyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gSFAgU3lzdGVtcyBJbnNpZ2h0IE1hbmFnZXIgKFNJTSkgYmVmb3JlIDUuMiBVcGRhdGUgMiAoQy4wNS4wMi4wMi4wMCkgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gb2J0YWluIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiB2aWEgdW5zcGVjaWZpZWQgdmVjdG9ycy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTkxNiI+aHAtc2ltLXVuc3BlY2lmaWVkLXNlY3VyaXR5LWJ5cGFzcyg0NTkxNik8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNzc3Ij4zMTc3NzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI4MzYiPkFEVi0yMDA4LTI4MzY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjI4NyI+MzIyODc8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iSFAiIHVybD0iaHR0cDovL2gyMDAwMC53d3cyLmhwLmNvbS9iaXpzdXBwb3J0L1RlY2hTdXBwb3J0L0RvY3VtZW50LmpzcD9vYmplY3RJRD1jMDE1NzE5NjIiPlNTUlQwODAwMzU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iSFAiIHVybD0iaHR0cDovL2gyMDAwMC53d3cyLmhwLmNvbS9iaXpzdXBwb3J0L1RlY2hTdXBwb3J0L0RvY3VtZW50LmpzcD9vYmplY3RJRD1jMDE1NzE5NjIiPkhQU0JNQTAyMzc4PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IG5hbWU9IkNWRS0yMDA4LTQ1OTMiIHNlcT0iMjAwOC00NTkzIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTciPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5BcHBsZSBpUGhvbmUgMi4xIHdpdGggZmlybXdhcmUgNUYxMzYsIHdoZW4gUmVxdWlyZSBQYXNzY29kZSBpcyBlbmFibGVkIGFuZCBTaG93IFNNUyBQcmV2aWV3IGlzIGRpc2FibGVkLCBhbGxvd3MgcGh5c2ljYWxseSBwcm94aW1hdGUgYXR0YWNrZXJzIHRvIG9idGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24gYnkgcGVyZm9ybWluZyBhbiBFbWVyZ2VuY3kgQ2FsbCB0YXAgYW5kIHRoZW4gcmVhZGluZyBTTVMgbWVzc2FnZXMgb24gdGhlIGRldmljZSBzY3JlZW4sIGFrYSBBcHBsZSBidWcgbnVtYmVyIDYyNjc0MTYuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSVNDIiB1cmw9Imh0dHA6Ly93d3cua2FybGtyYWZ0LmNvbS9pbmRleC5waHAvMjAwOC8xMC8wMy95ZXQtYW5vdGhlci1pcGhvbmUtZW1lcmdlbmN5LWNhbGwtc2VjdXJpdHktYnVnLyI+aHR0cDovL3d3dy5rYXJsa3JhZnQuY29tL2luZGV4LnBocC8yMDA4LzEwLzAzL3lldC1hbm90aGVyLWlwaG9uZS1lbWVyZ2VuY3ktY2FsbC1zZWN1cml0eS1idWcvPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1RSQUNLIiB1cmw9Imh0dHA6Ly9zZWN1cml0eXRyYWNrZXIuY29tL2lkPzEwMjEwMjEiPjEwMjEwMjE8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgbmFtZT0iQ1ZFLTIwMDgtNDU5NCIgc2VxPSIyMDA4LTQ1OTQiIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE3IiBtb2RpZmllZD0iMjAwOC0xMC0xNyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPlVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIFNOTVB2MyBjb21wb25lbnQgaW4gTGlua3N5cyBXQVA0NDAwTiBmaXJtd2FyZSAxLjIuMTQgb24gdGhlIE1hcnZlbGwgU2VtaWNvbmR1Y3RvciA4OFc4MzYxUC1CRU0xIGNoaXBzZXQgaGFzIHVua25vd24gaW1wYWN0IGFuZCBhdHRhY2sgdmVjdG9ycywgcHJvYmFibHkgcmVtb3RlLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1ODQyIj5saW5rc3lzLXdhcDQ0MDBuLXVuc3BlY2lmaWVkKDQ1ODQyKTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJGUlNJUlQiIHVybD0iaHR0cDovL3d3dy5mcnNpcnQuY29tL2VuZ2xpc2gvYWR2aXNvcmllcy8yMDA4LzI4MDUiPkFEVi0yMDA4LTI4MDU8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjI1OSI+MzIyNTk8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgbmFtZT0iQ1ZFLTIwMDgtNDU5NSIgc2VxPSIyMDA4LTQ1OTUiIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE3IiBtb2RpZmllZD0iMjAwOC0xMC0xNyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPk11bHRpcGxlIHVuc3BlY2lmaWVkIHZ1bG5lcmFiaWxpdGllcyBpbiBTbGF5dGFuaWMgU2NyaXB0cyBDb250ZW50IFBsdXMgMi4xLjEgaGF2ZSB1bmtub3duIGltcGFjdCBhbmQgcmVtb3RlIGF0dGFjayB2ZWN0b3JzLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQ09ORklSTSIgdXJsPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3Qvc2hvd25vdGVzLnBocD9yZWxlYXNlX2lkPTYzMjg0MiI+aHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3Nob3dub3Rlcy5waHA/cmVsZWFzZV9pZD02MzI4NDI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjI0NSI+MzIyNDU8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgbmFtZT0iQ1ZFLTIwMDgtNDU5NiIgc2VxPSIyMDA4LTQ1OTYiIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE3IiBtb2RpZmllZD0iMjAwOC0xMC0xNyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkNyb3NzLXNpdGUgc2NyaXB0aW5nIChYU1MpIHZ1bG5lcmFiaWxpdHkgaW4gU2hpbmRpZy1JbnRlZ3JhdG9yIDUueCwgYSBtb2R1bGUgZm9yIERydXBhbCwgYWxsb3dzIHJlbW90ZSBhdXRoZW50aWNhdGVkIHVzZXJzIHRvIGluamVjdCBhcmJpdHJhcnkgd2ViIHNjcmlwdCBvciBIVE1MIHZpYSB1bnNwZWNpZmllZCB2ZWN0b3JzIGluIGdlbmVyYXRlZCBwYWdlcy48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTkyNSI+c2hpbmRpZ2ludGVncmF0b3ItdW5zcGVjaWZpZWQteHNzKDQ1OTI1KTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMjg1Ij4zMjI4NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly9kcnVwYWwub3JnL25vZGUvMzIxNzU4Ij5odHRwOi8vZHJ1cGFsLm9yZy9ub2RlLzMyMTc1ODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBuYW1lPSJDVkUtMjAwOC00NTk3IiBzZXE9IjIwMDgtNDU5NyIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTciIG1vZGlmaWVkPSIyMDA4LTEwLTE3Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U2hpbmRpZy1JbnRlZ3JhdG9yIDUueCwgYSBtb2R1bGUgZm9yIERydXBhbCwgZG9lcyBub3QgcHJvcGVybHkgcmVzdHJpY3QgZ2VuZXJhdGVkIHBhZ2UgYWNjZXNzLCB3aGljaCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBnYWluIHByaXZpbGVnZXMgdmlhIHVuc3BlY2lmaWVkIHZlY3RvcnMuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMjg1Ij4zMjI4NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly9kcnVwYWwub3JnL25vZGUvMzIxNzU4Ij5odHRwOi8vZHJ1cGFsLm9yZy9ub2RlLzMyMTc1ODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBuYW1lPSJDVkUtMjAwOC00NTk4IiBzZXE9IjIwMDgtNDU5OCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTciIG1vZGlmaWVkPSIyMDA4LTEwLTE3Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+VW5zcGVjaWZpZWQgdnVsbmVyYWJpbGl0eSBpbiBTaGluZGlnLUludGVncmF0b3IgNS54LCBhIG1vZHVsZSBmb3IgRHJ1cGFsLCBoYXMgdW5zcGVjaWZpZWQgaW1wYWN0IGFuZCByZW1vdGUgYXR0YWNrIHZlY3RvcnMgcmVsYXRlZCB0byAibnVtZXJvdXMgZmxhd3MiIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIFhTUyBvciBhY2Nlc3MgY29udHJvbCwgYSBkaWZmZXJlbnQgdnVsbmVyYWJpbGl0eSB0aGFuIENWRS0yMDA4LTQ1OTYgYW5kIENWRS0yMDA4LTQ1OTcuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMjg1Ij4zMjI4NTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJDT05GSVJNIiB1cmw9Imh0dHA6Ly9kcnVwYWwub3JnL25vZGUvMzIxNzU4Ij5odHRwOi8vZHJ1cGFsLm9yZy9ub2RlLzMyMTc1ODwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBuYW1lPSJDVkUtMjAwOC00NTk5IiBzZXE9IjIwMDgtNDU5OSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTciIG1vZGlmaWVkPSIyMDA4LTEwLTE3Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIGNhdGVnb3J5LnBocCBpbiBNb3NhaWMgQ29tbWVyY2UgYWxsb3dzIHJlbW90ZSBhdHRhY2tlcnMgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzIHZpYSB0aGUgY2lkIHBhcmFtZXRlci48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTkyNiI+bW9zYWljY29tbWVyY2UtY2F0ZWdvcnktc3FsLWluamVjdGlvbig0NTkyNik8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNzgyIj4zMTc4MjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNjc2MyI+Njc2MzwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBuYW1lPSJDVkUtMjAwOC00NjAwIiBzZXE9IjIwMDgtNDYwMCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTciIG1vZGlmaWVkPSIyMDA4LTEwLTE3Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+Y29uZmlndXJlLnBocCBpbiBQb2tlck1heCBQb2tlciBMZWFndWUgVG91cm5hbWVudCBTY3JpcHQgMC4xMyBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBieXBhc3MgYXV0aGVudGljYXRpb24gYW5kIGdhaW4gYWRtaW5pc3RyYXRpdmUgYWNjZXNzIGJ5IHNldHRpbmcgdGhlIFZhbGlkVXNlckFkbWluIGNvb2tpZS48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlhGIiB1cmw9Imh0dHA6Ly94Zm9yY2UuaXNzLm5ldC94Zm9yY2UveGZkYi80NTkzMSI+cG9rZXJtYXgtY29va2llLXNlY3VyaXR5LWJ5cGFzcyg0NTkzMSk8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNzg0Ij4zMTc4NDwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNjc2NiI+Njc2NjwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJTRUNVTklBIiB1cmw9Imh0dHA6Ly9zZWN1bmlhLmNvbS9hZHZpc29yaWVzLzMyMzEyIj4zMjMxMjwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBuYW1lPSJDVkUtMjAwOC00NjAxIiBzZXE9IjIwMDgtNDYwMSIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTciIG1vZGlmaWVkPSIyMDA4LTEwLTE3Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+Q3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgKFhTUykgdnVsbmVyYWJpbGl0eSBpbiB0aGUgbG9naW4gZmVhdHVyZSBpbiBIYWJhcmkgQ01TIDAuNS4xIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGluamVjdCBhcmJpdHJhcnkgd2ViIHNjcmlwdCBvciBIVE1MIHZpYSB0aGUgaGFiYXJpX3VzZXJuYW1lIHBhcmFtZXRlci48L2Rlc2NyaXB0Pg0KKyAgICAgICAgPC9kZXNjPg0KKyAgICAgICAgPHJlZnM+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTc5NCI+MzE3OTQ8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjMxMSI+MzIzMTE8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlTQyIgdXJsPSJodHRwOi8vcGFja2V0c3Rvcm0ubGludXhzZWN1cml0eS5jb20vMDgxMC1leHBsb2l0cy9oYWJhcmljbXMteHNzLnR4dCI+aHR0cDovL3BhY2tldHN0b3JtLmxpbnV4c2VjdXJpdHkuY29tLzA4MTAtZXhwbG9pdHMvaGFiYXJpY21zLXhzcy50eHQ8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgbmFtZT0iQ1ZFLTIwMDgtNDYwMiIgc2VxPSIyMDA4LTQ2MDIiIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE3IiBtb2RpZmllZD0iMjAwOC0xMC0xNyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPkRpcmVjdG9yeSB0cmF2ZXJzYWwgdnVsbmVyYWJpbGl0eSBpbiBpbmRleC5waHAgaW4gUG9zdCBBZmZpbGlhdGUgUHJvIDIuMCBhbGxvd3MgcmVtb3RlIGF1dGhlbnRpY2F0ZWQgdXNlcnMgdG8gcmVhZCBhbmQgcG9zc2libHkgZXhlY3V0ZSBhcmJpdHJhcnkgbG9jYWwgZmlsZXMgdmlhIGEgLi4gKGRvdCBkb3QpIGluIHRoZSBtZCBwYXJhbWV0ZXIuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE3OTYiPjMxNzk2PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NzcyIj42NzcyPC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IG5hbWU9IkNWRS0yMDA4LTQ2MDMiIHNlcT0iMjAwOC00NjAzIiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTciPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5TUUwgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHkgaW4gc2VhcmNoLnBocCBpbiBpR2FtaW5nIENNUyAyLjAgQWxwaGEgMSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBTUUwgY29tbWFuZHMgdmlhIHRoZSBrZXl3b3JkcyBwYXJhbWV0ZXIgaW4gYSBzZWFyY2hfZ2FtZXMgYWN0aW9uLjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iQklEIiB1cmw9Imh0dHA6Ly93d3cuc2VjdXJpdHlmb2N1cy5jb20vYmlkLzMxNzkzIj4zMTc5MzwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJNSUxXMFJNIiB1cmw9Imh0dHA6Ly93d3cubWlsdzBybS5jb20vZXhwbG9pdHMvNjc2OSI+Njc2OTwvcmVmPg0KKyAgICAgICAgPC9yZWZzPg0KKyAgICA8L2VudHJ5PgorICAgIDxlbnRyeSBuYW1lPSJDVkUtMjAwOC00NjA0IiBzZXE9IjIwMDgtNDYwNCIgdHlwZT0iQ1ZFIiBwdWJsaXNoZWQ9IjIwMDgtMTAtMTciIG1vZGlmaWVkPSIyMDA4LTEwLTE3Ij4NCisgICAgICAgIDxkZXNjPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdCBzb3VyY2U9ImN2ZSI+U1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGluIGluZGV4LnBocCBpbiBFYXN5IENhZmVFbmdpbmUgMS4xIGFsbG93cyByZW1vdGUgYXR0YWNrZXJzIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IFNRTCBjb21tYW5kcyB2aWEgdGhlIGl0ZW1pZCBwYXJhbWV0ZXIuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE3ODgiPjMxNzg4PC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NzYyIj42NzYyPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IlNFQ1VOSUEiIHVybD0iaHR0cDovL3NlY3VuaWEuY29tL2Fkdmlzb3JpZXMvMzIzMDciPjMyMzA3PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgIDwvZW50cnk+CisgICAgPGVudHJ5IG5hbWU9IkNWRS0yMDA4LTQ2MDUiIHNlcT0iMjAwOC00NjA1IiB0eXBlPSJDVkUiIHB1Ymxpc2hlZD0iMjAwOC0xMC0xNyIgbW9kaWZpZWQ9IjIwMDgtMTAtMTciPg0KKyAgICAgICAgPGRlc2M+DQorICAgICAgICAgICAgPGRlc2NyaXB0IHNvdXJjZT0iY3ZlIj5TUUwgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHkgaW4gQ2FmZUVuZ2luZSBhbGxvd3MgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBTUUwgY29tbWFuZHMgdmlhIHRoZSBpZCBwYXJhbWV0ZXIgdG8gKDEpIGRpc2gucGhwIGFuZCAoMikgbWVudS5waHAuPC9kZXNjcmlwdD4NCisgICAgICAgIDwvZGVzYz4NCisgICAgICAgIDxyZWZzPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJYRiIgdXJsPSJodHRwOi8veGZvcmNlLmlzcy5uZXQveGZvcmNlL3hmZGIvNDU5MjkiPmNhZmVlbmdpbmUtZGlzaC1tZW51LXNxbC1pbmplY3Rpb24oNDU5MjkpPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9IkJJRCIgdXJsPSJodHRwOi8vd3d3LnNlY3VyaXR5Zm9jdXMuY29tL2JpZC8zMTc4NiI+MzE3ODY8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iTUlMVzBSTSIgdXJsPSJodHRwOi8vd3d3Lm1pbHcwcm0uY29tL2V4cGxvaXRzLzY3NjIiPjY3NjI8L3JlZj4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iU0VDVU5JQSIgdXJsPSJodHRwOi8vc2VjdW5pYS5jb20vYWR2aXNvcmllcy8zMjMwOCI+MzIzMDg8L3JlZj4NCisgICAgICAgIDwvcmVmcz4NCisgICAgPC9lbnRyeT4KKyAgICA8ZW50cnkgbmFtZT0iQ1ZFLTIwMDgtNDYwNiIgc2VxPSIyMDA4LTQ2MDYiIHR5cGU9IkNWRSIgcHVibGlzaGVkPSIyMDA4LTEwLTE3IiBtb2RpZmllZD0iMjAwOC0xMC0xNyI+DQorICAgICAgICA8ZGVzYz4NCisgICAgICAgICAgICA8ZGVzY3JpcHQgc291cmNlPSJjdmUiPk11bHRpcGxlIFNRTCBpbmplY3Rpb24gdnVsbmVyYWJpbGl0aWVzIGluIElQIFJlZyAwLjQgYW5kIGVhcmxpZXIgYWxsb3cgcmVtb3RlIGF0dGFja2VycyB0byBleGVjdXRlIGFyYml0cmFyeSBTUUwgY29tbWFuZHMgdmlhIHRoZSAoMSkgbG9jYXRpb25faWQgcGFyYW1ldGVyIHRvIGxvY2F0aW9uZGVsLnBocCBhbmQgKDIpIHZsYW5faWQgcGFyYW1ldGVyIHRvIGl0LnBocC4gIE5PVEU6IHRoZSB2bGFudmlldy5waHAgYW5kIHZsYW5kZWwucGhwIHZlY3RvcnMgYXJlIGFscmVhZHkgY292ZXJlZCBieSBDVkUtMjAwNy02NTc5LjwvZGVzY3JpcHQ+DQorICAgICAgICA8L2Rlc2M+DQorICAgICAgICA8cmVmcz4NCisgICAgICAgICAgICA8cmVmIHNvdXJjZT0iWEYiIHVybD0iaHR0cDovL3hmb3JjZS5pc3MubmV0L3hmb3JjZS94ZmRiLzQ1OTM0Ij5pcHJlZy1sb2NhdGlvbmlkLXZsYW5pZC1zcWwtaW5qZWN0aW9uKDQ1OTM0KTwvcmVmPg0KKyAgICAgICAgICAgIDxyZWYgc291cmNlPSJCSUQiIHVybD0iaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9iaWQvMzE3ODEiPjMxNzgxPC9yZWY+DQorICAgICAgICAgICAgPHJlZiBzb3VyY2U9Ik1JTFcwUk0iIHVybD0iaHR0cDovL3d3dy5taWx3MHJtLmNvbS9leHBsb2l0cy82NzY1Ij42NzY1PC9yZWY+DQorICAgICAgICA8L3JlZnM+DQorICAgIDwvZW50cnk+CisKKzwvbnZkPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL252ZGN2ZV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL252ZGN2ZV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjRiNTc0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvbnZkY3ZlXzAueHNkCkBAIC0wLDAgKzEsNDk4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSINCisJdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vbnZkLm5pc3QuZ292L2ZlZWRzL2N2ZS8xLjIiDQorCXhtbG5zOmN2ZT0iaHR0cDovL252ZC5uaXN0Lmdvdi9mZWVkcy9jdmUvMS4yIgorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIiBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiCisJdmVyc2lvbj0iMS4yIj4NCisJPHhzOmFubm90YXRpb24+DQorCQk8eHM6ZG9jdW1lbnRhdGlvbj5UaGlzIHNjaGVtYSBkZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIE5hdGlvbmFsDQorCQkJVnVsbmVyYWJpbGl0eSBEYXRhYmFzZSBYTUwgZmVlZCBmaWxlcyB2ZXJzaW9uOiAxLjIuIFRoZSBlbGVtZW50cyBhbmQNCisJCQlhdHRyaWJ1dGUgaW4gdGhpcyBkb2N1bWVudCBhcmUgZGVzY3JpYmVkIGJ5IHhzOmFubm90YXRpb24gdGFncy4gVGhpcw0KKwkJCWZpbGUgaXMga2VwdCBhdCBodHRwOi8vbnZkLm5pc3QuZ292L3NjaGVtYS9udmRjdmUueHNkLiBUaGUgTlZEIFhNTA0KKwkJCWZlZWRzIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL252ZC5uaXN0Lmdvdi9kb3dubG9hZC5jZm0uDQorCQkJDQorCQkJUmVsZWFzZSBOb3RlczoNCisJCQkNCisJCQlWZXJzaW9uIDEuMjoNCisJCQkqIENWU1MgdmVyc2lvbiAyIHNjb3JlcyBhbmQgdmVjdG9ycyBoYXZlIGJlZW4gYWRkZWQuICBQbGVhc2Ugc2VlDQorCQkJaHR0cDovL252ZC5uaXN0Lmdvdi9jdnNzLmNmbT92ZWN0b3JpbmZvIGFuZA0KKwkJCWh0dHA6Ly93d3cuZmlyc3Qub3JnL2N2c3MvY3Zzcy1ndWlkZS5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uDQorCQkJaG93IHRvIGludGVycHJldCB0aGlzIGRhdGEuIDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJPC94czphbm5vdGF0aW9uPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJudmQiPg0KKwkJPHhzOmFubm90YXRpb24+DQorCQkJPHhzOmRvY3VtZW50YXRpb24+VGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgTlZEIENWRSBmZWVkLiBNdWx0aXBsZSAiZW50cnkiIGNoaWxkIGVsZW1lbnRzIGRlc2NyaWJlIHNwZWNpZmljIE5WRCBDVkUgZW50cmllcy48L3hzOmRvY3VtZW50YXRpb24+DQorCQk8L3hzOmFubm90YXRpb24+DQorCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJPHhzOnNlcXVlbmNlPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImN2ZTplbnRyeSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJudmRfeG1sX3ZlcnNpb24iIHR5cGU9InhzOk5NVE9LRU4iIHVzZT0icmVxdWlyZWQiPg0KKwkJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJCTx4czpkb2N1bWVudGF0aW9uPlRoZSBzY2hlbWEgdmVyc2lvbiBudW1iZXIgc3VwcG9ydGVkIGJ5IHRoZSBmZWVkLjwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCTwveHM6YXR0cmlidXRlPg0KKwkJCTx4czphdHRyaWJ1dGUgbmFtZT0icHViX2RhdGUiIHR5cGU9ImN2ZTpkYXRlVHlwZSIgdXNlPSJyZXF1aXJlZCI+DQorCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJPHhzOmRvY3VtZW50YXRpb24+VGhlIGRhdGUgdGhlIGZlZWQgd2FzIGdlbmVyYXRlZC48L3hzOmRvY3VtZW50YXRpb24+DQorCQkJCTwveHM6YW5ub3RhdGlvbj4NCisJCQk8L3hzOmF0dHJpYnV0ZT4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisKKwk8eHM6ZWxlbWVudCBuYW1lPSJlbnRyeSIgdHlwZT0iY3ZlOmVudHJ5VHlwZSI+DQorCQk8eHM6YW5ub3RhdGlvbj4NCisJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BIENWRSBlbnRyeS48L3hzOmRvY3VtZW50YXRpb24+DQorCQk8L3hzOmFubm90YXRpb24+DQorCTwveHM6ZWxlbWVudD4NCisJDQorCTwhLS0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAtLT4NCisJPCEtLSAqIENvbXBsZXggVHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIC0tPg0KKwk8IS0tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLS0+DQorCTx4czpjb21wbGV4VHlwZSBuYW1lPSJlbnRyeVR5cGUiPg0KKwkJPHhzOmFubm90YXRpb24+DQorCQkJPHhzOmRvY3VtZW50YXRpb24+IERvY3VtZW50cyBvbmUgQ1ZFIGVudHJ5LiBUaGUgY2hpbGQgZWxlbWVudHMgc2hvdWxkIGFsd2F5cw0KKwkJCQlhcHBlYXIgaW4gdGhlIHNlcXVlbmNlIGRlZmluZWQgYmVsb3cuIFRoZXNlIGVsZW1lbnRzIGFyZSBjb21wYXRpYmxlIHdpdGgNCisJCQkJZW50cnkgZWxlbWVudHMgZnJvbSB0aGUgQ1ZFIFhNTCBmZWVkcy48L3hzOmRvY3VtZW50YXRpb24+DQorCQk8L3hzOmFubm90YXRpb24+DQorCQk8eHM6c2VxdWVuY2U+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0iZGVzYyI+DQorCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJPHhzOmRvY3VtZW50YXRpb24+RGVzY3JpcHRpb24gd3JhcHBlciB0YWcsIHBhcmVudCB0byBhbnkNCisJCQkJCQlkb2N1bWVudGVkIGRlc2NyaXB0aW9ucyBvZiB0aGlzIENWRSBlbnRyeS4gV2hpbGUgdGhlICJkZXNjIg0KKwkJCQkJCXRhZyB3aWxsIGFsd2F5cyBiZSBwcmVzZW50LCB0aGVyZSBtYXkgYmUgbm8gImRlc2NyaXB0IiBjaGlsZA0KKwkJCQkJCXRhZ3MuIE9ubHkgb25lICJkZXNjcmlwdCIgdGFnIHdpbGwgZXhpc3QgZm9yIGVhY2gNCisJCQkJCQlkZXNjcmlwdGlvbiBzb3VyY2UgKGkuZS4gQ1ZFLCBOVkQsIC4uLikuIDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJCQk8eHM6c2VxdWVuY2U+DQorCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iZGVzY3JpcHQiIHR5cGU9ImN2ZTpkZXNjcmlwdFR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSIyIj4NCisJCQkJCQkJPHhzOmFubm90YXRpb24+DQorCQkJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5BIGRlc2NyaXB0aW9uIG9mIGEgQ1ZFIGVudHJ5DQorCQkJCQkJCQkJZnJvbSB0aGUgc291cmNlIGluZGljYXRlZCBieSB0aGUgInNvdXJjZSINCisJCQkJCQkJCQlhdHRyaWJ1dGUuPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCQkJCQk8L3hzOmFubm90YXRpb24+DQorCQkJCQkJPC94czplbGVtZW50Pg0KKwkJCQkJPC94czpzZXF1ZW5jZT4NCisJCQkJPC94czpjb21wbGV4VHlwZT4NCisJCQk8L3hzOmVsZW1lbnQ+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0iaW1wYWN0cyIgbWluT2NjdXJzPSIwIj4NCisJCQkJPHhzOmFubm90YXRpb24+DQorCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj4gSW1wYWN0IHdyYXBwZXIgdGFnIChtYXkgb3IgbWF5IG5vdCBiZQ0KKwkJCQkJCXByZXNlbnQpLiBPbmx5IG9uZSAiaW1wYWN0IiB0YWcgd2lsbCBleGlzdCBmb3IgZWFjaCBpbXBhY3QNCisJCQkJCQlleHBsYW5hdGlvbiBzb3VyY2UuIDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJCQk8eHM6c2VxdWVuY2U+DQorCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0iaW1wYWN0IiB0eXBlPSJjdmU6aW1wYWN0VHlwZSI+DQorCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+IENvbnRhaW5zIGEgc3BlY2lmaWMgaW1wYWN0DQorCQkJCQkJCQlleHBsYW5hdGlvbiBvZiB0aGlzIENWRSBlbnRyeSBmcm9tIHNvdXJjZQ0KKwkJCQkJCQkJaW5kaWNhdGVkIGJ5IHRoZSAic291cmNlIiBhdHRyaWJ1dGUuDQorCQkJCQkJCQk8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJCQkJCTwveHM6YW5ub3RhdGlvbj4NCisJCQkJCQk8L3hzOmVsZW1lbnQ+DQorCQkJCQk8L3hzOnNlcXVlbmNlPg0KKwkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwkJCTwveHM6ZWxlbWVudD4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJzb2xzIiB0eXBlPSJjdmU6c29sc1R5cGUiIG1pbk9jY3Vycz0iMCI+DQorCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJPHhzOmRvY3VtZW50YXRpb24+IFNvbHV0aW9uIHdyYXBwZXIgdGFnIChtYXkgb3IgbWF5IG5vdCBiZQ0KKwkJCQkJCXByZXNlbnQpLiBPbmx5IG9uZSAic29sIiB0YWcgd2lsbCBleGlzdCBmb3IgZWFjaCBzb2x1dGlvbg0KKwkJCQkJCWV4cGxhbmF0aW9uIHNvdXJjZS4gPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCQk8L3hzOmFubm90YXRpb24+DQorCQkJPC94czplbGVtZW50Pg0KKwkJCTx4czplbGVtZW50IG5hbWU9Imxvc3NfdHlwZXMiIHR5cGU9ImN2ZTpsb3NzVHlwZVR5cGUiIG1pbk9jY3Vycz0iMCI+DQorCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJPHhzOmRvY3VtZW50YXRpb24+IExvc3MgdHlwZSB0YWcgKG1heSBvciBtYXkgbm90IGJlIHByZXNlbnQpLg0KKwkJCQkJCUNvbnRhaW5zIG9uZSBsb3NzIHR5cGUgY2hpbGQgZm9yIGVhY2ggbG9zcyB0eXBlIG9mIHRoaXMgQ1ZFDQorCQkJCQkJZW50cnkuIFBvdGVudGlhbCBsb3NzIHR5cGVzIGFyZTogImF2YWlsIiA9PiBhdmFpbGFiaWxpdHkNCisJCQkJCQkiY29uZiIgPT4gY29uZmlkZW50aWFsaXR5ICJpbnQiID0+IGludGVncml0eSAic2VjX3Byb3QiID0+DQorCQkJCQkJc2VjdXJpdHkgcHJvdGVjdGlvbiA8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJCTwveHM6YW5ub3RhdGlvbj4NCisJCQk8L3hzOmVsZW1lbnQ+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0idnVsbl90eXBlcyIgdHlwZT0iY3ZlOnZ1bG5UeXBlIiBtaW5PY2N1cnM9IjAiPg0KKwkJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJCTx4czpkb2N1bWVudGF0aW9uPiBWdWxuZXJhYmlsaXR5IHR5cGUgdGFnIChtYXkgb3IgbWF5IG5vdCBiZQ0KKwkJCQkJCXByZXNlbnQpLiBDb250YWlucyBvbmUgdnVsbmVyYWJpbGl0eSB0eXBlIGNoaWxkIGZvciBlYWNoDQorCQkJCQkJdnVsbmVyYWJpbGl0eSB0eXBlIG9mIHRoaXMgQ1ZFIGVudHJ5LiBQb3RlbnRpYWwNCisJCQkJCQl2dWxuZXJhYmlsaXR5IHR5cGVzIGFyZTogImFjY2VzcyIgPT4gQWNjZXNzIHZhbGlkYXRpb24gZXJyb3INCisJCQkJCQkiaW5wdXQiID0+IElucHV0IHZhbGlkYXRpb24gZXJyb3IgImRlc2lnbiIgPT4gRGVzaWduIGVycm9yDQorCQkJCQkJImV4Y2VwdGlvbiIgPT4gRXhjZXB0aW9uYWwgY29uZGl0aW9uIGVycm9yICJlbnYiID0+DQorCQkJCQkJRW52aXJvbm1lbnRhbCBlcnJvciAiY29uZmlnIiA9PiBDb25maWd1cmF0aW9uIGVycm9yICJyYWNlIg0KKwkJCQkJCT0+IFJhY2UgY29uZGl0aW9uIGVycm9yICJvdGhlciIgPT4gb3RoZXIgPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCQk8L3hzOmFubm90YXRpb24+DQorCQkJPC94czplbGVtZW50Pg0KKwkJCTx4czplbGVtZW50IG5hbWU9InJhbmdlIiB0eXBlPSJjdmU6cmFuZ2VUeXBlIiBtaW5PY2N1cnM9IjAiPg0KKwkJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJCTx4czpkb2N1bWVudGF0aW9uPiBWdWxuZXJhYmlsaXR5IHJhbmdlIHRhZyAobWF5IG9yIG1heSBub3QgYmUNCisJCQkJCQlwcmVzZW50KS4gQ29udGFpbnMgb25lIHZ1bG5lcmFiaWxpdHkgcmFuZ2UgY2hpbGQgZm9yIGVhY2gNCisJCQkJCQl2dWxuZXJhYmlsaXR5IHJhbmdlIG9mIHRoaXMgQ1ZFIGVudHJ5LiBQb3RlbnRpYWwNCisJCQkJCQl2dWxuZXJhYmlsaXR5IHJhbmdlcyBhcmU6ICJsb2NhbCIgPT4gTG9jYWxseSBleHBsb2l0YWJsZQ0KKwkJCQkJCSJsb2NhbF9uZXR3b3JrIiA9PiBMb2NhbCBuZXR3b3JrIGV4cGxvaXRhYmxlICJuZXR3b3JrIiA9Pg0KKwkJCQkJCU5ldHdvcmsgZXhwbG9pdGFibGUgInVzZXJfaW5pdCIgPT4gVXNlciBhY2Nlc3NlcyBhdHRhY2tlcg0KKwkJCQkJPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCQk8L3hzOmFubm90YXRpb24+DQorCQkJPC94czplbGVtZW50Pg0KKwkJCTx4czplbGVtZW50IG5hbWU9InJlZnMiPg0KKwkJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJCTx4czpkb2N1bWVudGF0aW9uPiBSZWZlcmVuY2Ugd3JhcHBlciB0YWcgKGFsd2F5cyBwcmVzZW50KS4NCisJCQkJCQlFeHRlcm5hbCByZWZlcmVuY2VzIHRvIHRoaXMgQ1ZFIGVudHJ5IGFyZSBjb250YWluZWQgd2l0aGluDQorCQkJCQkJdGhpcyB0YWcuIDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJCQk8eHM6c2VxdWVuY2U+DQorCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0icmVmIiB0eXBlPSJjdmU6cmVmVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJCQkJPHhzOmRvY3VtZW50YXRpb24+IEluZGl2aWR1YWwgcmVmZXJlbmNlIHRvIHRoaXMgQ1ZFDQorCQkJCQkJCQllbnRyeS4gVGV4dCBpcyB0aGUgbmFtZSBvZiB0aGlzIHZ1bG5lcmFiaWxpdHkgYXQNCisJCQkJCQkJCXRoaXMgcGFydGljdWxhciByZWZlcmVuY2UuIEF0dHJpYnV0ZXM6ICJzb3VyY2UiDQorCQkJCQkJCQkocmVxdWlyZWQpID0+IE5hbWUgb2YgcmVmZXJlbmNlIHNvdXJjZSAidXJsIg0KKwkJCQkJCQkJKHJlcXVpcmVkKSA9PiBoeXBlcmxpbmsgdG8gcmVmZXJlbmNlICJzaWciID0+DQorCQkJCQkJCQlpbmRpY2F0ZXMgdGhpcyByZWZlcmVuY2UgaW5jbHVkZXMgYSB0b29sDQorCQkJCQkJCQlzaWduYXR1cmUgImFkdiIgPT4gaW5kaWNhdGVzIHRoaXMgcmVmZXJlbmNlIGlzIGENCisJCQkJCQkJCVNlY3VyaXR5IEFkdmlzb3J5ICJwYXRjaCIgPT4gaW5kaWNhdGVzIHRoaXMNCisJCQkJCQkJCXJlZmVyZW5jZSBpbmNsdWRlcyBhIHBhdGNoIGZvciB0aGlzDQorCQkJCQkJCQl2dWxuZXJhYmlsaXR5IDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCQkJCTwveHM6ZWxlbWVudD4NCisJCQkJCTwveHM6c2VxdWVuY2U+DQorCQkJCTwveHM6Y29tcGxleFR5cGU+DQorCQkJPC94czplbGVtZW50Pg0KKwkJCTx4czplbGVtZW50IG5hbWU9InZ1bG5fc29mdCIgdHlwZT0iY3ZlOnZ1bG5Tb2Z0VHlwZSIgbWluT2NjdXJzPSIwIj4NCisJCQkJPHhzOmFubm90YXRpb24+DQorCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj4gVnVsbmVyYWJsZSBzb2Z0d2FyZSB3cmFwcGVyIHRhZyAobWF5IG9yIG1heQ0KKwkJCQkJCW5vdCBiZSBwcmVzZW50KS4gU29mdHdhcmUgYWZmZWN0ZWQgYnkgdGhpcyBDVkUgZW50cnkgYXJlDQorCQkJCQkJbGlzdGVkIHdpdGhpbiB0aGlzIHRhZy4gPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCQk8L3hzOmFubm90YXRpb24+DQorCQkJPC94czplbGVtZW50Pg0KKwkJPC94czpzZXF1ZW5jZT4NCisJCTx4czphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdXNlPSJyZXF1aXJlZCI+DQorCQkJPHhzOmFubm90YXRpb24+DQorCQkJCTx4czpkb2N1bWVudGF0aW9uPkNWRSBvciBDQU48L3hzOmRvY3VtZW50YXRpb24+DQorCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCTx4czpzaW1wbGVUeXBlPg0KKwkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6Tk1UT0tFTiI+DQorCQkJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkNBTiIvPg0KKwkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJDVkUiLz4NCisJCQkJPC94czpyZXN0cmljdGlvbj4NCisJCQk8L3hzOnNpbXBsZVR5cGU+DQorCQk8L3hzOmF0dHJpYnV0ZT4NCisJCTx4czphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdXNlPSJyZXF1aXJlZCI+DQorCQkJPHhzOmFubm90YXRpb24+DQorCQkJCTx4czpkb2N1bWVudGF0aW9uPnRoZSBmdWxsIENWRSBuYW1lPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCTwveHM6YW5ub3RhdGlvbj4NCisJCQk8eHM6c2ltcGxlVHlwZT4NCisJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOklEIj4NCisJCQkJCTx4czpwYXR0ZXJuIHZhbHVlPSIoQ0FOfENWRSlcLVxkXGRcZFxkXC1cZFxkXGRcZCIvPg0KKwkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwkJCTwveHM6c2ltcGxlVHlwZT4NCisJCTwveHM6YXR0cmlidXRlPg0KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJzZXEiIHVzZT0icmVxdWlyZWQiPg0KKwkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6ZG9jdW1lbnRhdGlvbj50aGUgc2VxdWVuY2UgbnVtYmVyIGZyb20gQ1ZFIG5hbWU8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCTx4czpzaW1wbGVUeXBlPg0KKwkJCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6Tk1UT0tFTiI+DQorCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iXGRcZFxkXGRcLVxkXGRcZFxkIi8+DQorCQkJCTwveHM6cmVzdHJpY3Rpb24+DQorCQkJPC94czpzaW1wbGVUeXBlPg0KKwkJPC94czphdHRyaWJ1dGU+DQorCQk8eHM6YXR0cmlidXRlIG5hbWU9Im52ZF9uYW1lIiB0eXBlPSJ4czpzdHJpbmciPg0KKwkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6ZG9jdW1lbnRhdGlvbj50aGUgTlZEIG5hbWUgKGlmIGl0IGV4aXN0cyk8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJPC94czphbm5vdGF0aW9uPg0KKwkJPC94czphdHRyaWJ1dGU+DQorCQk8eHM6YXR0cmlidXRlIG5hbWU9ImRpc2NvdmVyZWQiIHR5cGU9ImN2ZTpkYXRlVHlwZSI+DQorCQkJPHhzOmFubm90YXRpb24+DQorCQkJCTx4czpkb2N1bWVudGF0aW9uPnRoZSBkYXRlIHRoaXMgZW50cnkgd2FzIGRpc2NvdmVyZWQ8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJPC94czphbm5vdGF0aW9uPg0KKwkJPC94czphdHRyaWJ1dGU+DQorCQk8eHM6YXR0cmlidXRlIG5hbWU9InB1Ymxpc2hlZCIgdHlwZT0iY3ZlOmRhdGVUeXBlIiB1c2U9InJlcXVpcmVkIj4NCisJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJPHhzOmRvY3VtZW50YXRpb24+dGhlIGRhdGUgdGhpcyBlbnRyeSB3YXMgcHVibGlzaGVkPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCTwveHM6YW5ub3RhdGlvbj4NCisJCTwveHM6YXR0cmlidXRlPg0KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJtb2RpZmllZCIgdHlwZT0iY3ZlOmRhdGVUeXBlIj4NCisJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJPHhzOmRvY3VtZW50YXRpb24+dGhlIGRhdGUgdGhpcyBlbnRyeSB3YXMgbGFzdCBtb2RpZmllZDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQk8L3hzOmFubm90YXRpb24+DQorCQk8L3hzOmF0dHJpYnV0ZT4NCisJCTx4czphdHRyaWJ1dGUgbmFtZT0ic2V2ZXJpdHkiPg0KKwkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6ZG9jdW1lbnRhdGlvbj50aGUgZW50cnkncyBzZXZlcml0eSBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBOVkQgYW5hbHlzdHM6IEhpZ2gsIE1lZGl1bSwgb3IgTG93PC94czpkb2N1bWVudGF0aW9uPg0KKwkJCTwveHM6YW5ub3RhdGlvbj4NCisJCQk8eHM6c2ltcGxlVHlwZT4NCisJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOk5NVE9LRU4iPg0KKwkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJIaWdoIi8+DQorCQkJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9Ik1lZGl1bSIvPg0KKwkJCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJMb3ciLz4NCisJCQkJPC94czpyZXN0cmljdGlvbj4NCisJCQk8L3hzOnNpbXBsZVR5cGU+DQorCQk8L3hzOmF0dHJpYnV0ZT4NCisJCTx4czphdHRyaWJ1dGUgbmFtZT0icmVqZWN0IiB0eXBlPSJjdmU6dHJ1ZU9ubHlBdHRyaWJ1dGUiPg0KKwkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5pbmRpY2F0ZXMgdGhhdCB0aGlzIENWRSBlbnRyeSBoYXMgYmVlbiByZWplY3RlZCBieSBDVkUgb3IgTlZEPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCTwveHM6YW5ub3RhdGlvbj4NCisJCTwveHM6YXR0cmlidXRlPg0KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDVlNTX3ZlcnNpb24iIHR5cGU9InhzOnN0cmluZyI+DQorCQkJPHhzOmFubm90YXRpb24+DQorCQkJCTx4czpkb2N1bWVudGF0aW9uPnRoZSBDVlNTIFZlcnNpb24gSW5kaWNhdG9yPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCTwveHM6YW5ub3RhdGlvbj4NCisJCTwveHM6YXR0cmlidXRlPg0KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDVlNTX3Njb3JlIiB0eXBlPSJjdmU6emVyb1RvVGVuIj4NCisJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJPHhzOmRvY3VtZW50YXRpb24+U2FtZSBhcyB0aGUgQ1ZTU19iYXNlX3Njb3JlIHRvIHByb3ZpZGUgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgd2l0aCB0aGUgcHJldmlvdXMgQ1ZFIFhNTCBmZWVkIGZvcm1hdC4gVGhpcyBmaWVsZCBpcyBkZXByZWNhdGVkIGFuIG1heSBiZSByZW1vdmVkIGF0IGEgZnV0dXJlIGRhdGUuPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCTwveHM6YW5ub3RhdGlvbj4NCisJCTwveHM6YXR0cmlidXRlPg0KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDVlNTX2Jhc2Vfc2NvcmUiIHR5cGU9ImN2ZTp6ZXJvVG9UZW4iPg0KKwkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5DVlNTIHZlcnNpb24gMiBCYXNlIFNjb3JlPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCTwveHM6YW5ub3RhdGlvbj4NCisJCTwveHM6YXR0cmlidXRlPg0KKwkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDVlNTX2ltcGFjdF9zdWJzY29yZSIgdHlwZT0iY3ZlOnplcm9Ub1RlbiI+DQorCQkJPHhzOmFubm90YXRpb24+DQorCQkJCTx4czpkb2N1bWVudGF0aW9uPkNWU1MgdmVyc2lvbiAyIEltcGFjdCBTY29yZTwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQk8L3hzOmFubm90YXRpb24+DQorCQk8L3hzOmF0dHJpYnV0ZT4NCisJCTx4czphdHRyaWJ1dGUgbmFtZT0iQ1ZTU19leHBsb2l0X3N1YnNjb3JlIiB0eXBlPSJjdmU6emVyb1RvVGVuIj4NCisJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJPHhzOmRvY3VtZW50YXRpb24+Q1ZTUyB2ZXJzaW9uIDIgRXhwbG9pdCBTY29yZTwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQk8L3hzOmFubm90YXRpb24+DQorCQk8L3hzOmF0dHJpYnV0ZT4NCisJCTx4czphdHRyaWJ1dGUgbmFtZT0iQ1ZTU192ZWN0b3IiIHR5cGU9ImN2ZTpDVlNTVmVjdG9yIj4NCisJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJPHhzOmRvY3VtZW50YXRpb24+dGhlIENWU1MgdmVyc2lvbiAyIFZlY3RvciBzdHJpbmc8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJPC94czphbm5vdGF0aW9uPg0KKwkJPC94czphdHRyaWJ1dGU+DQorCTwveHM6Y29tcGxleFR5cGU+DQorDQorCTx4czpjb21wbGV4VHlwZSBuYW1lPSJkZXNjcmlwdFR5cGUiPg0KKwkJPHhzOnNpbXBsZUNvbnRlbnQ+DQorCQkJPHhzOmV4dGVuc2lvbiBiYXNlPSJ4czpzdHJpbmciPg0KKwkJCQk8eHM6YXR0cmlidXRlIG5hbWU9InNvdXJjZSIgdHlwZT0iY3ZlOmRlc2NyaXB0U291cmNlVHlwZSIgdXNlPSJyZXF1aXJlZCI+DQorCQkJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj5UaGUgc291cmNlIG9mIHRoZSBDVkUgZGVzY3JpcHRpb24uPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCQk8L3hzOmF0dHJpYnV0ZT4NCisJCQk8L3hzOmV4dGVuc2lvbj4NCisJCTwveHM6c2ltcGxlQ29udGVudD4NCisJPC94czpjb21wbGV4VHlwZT4NCisJDQorCTx4czpjb21wbGV4VHlwZSBuYW1lPSJpbXBhY3RUeXBlIj4NCisJCTx4czpzaW1wbGVDb250ZW50Pg0KKwkJCTx4czpleHRlbnNpb24gYmFzZT0ieHM6c3RyaW5nIj4NCisJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJzb3VyY2UiIHR5cGU9ImN2ZTppbXBhY3RTb3VyY2VUeXBlIiB1c2U9InJlcXVpcmVkIj4NCisJCQkJPC94czphdHRyaWJ1dGU+DQorCQkJPC94czpleHRlbnNpb24+DQorCQk8L3hzOnNpbXBsZUNvbnRlbnQ+DQorCTwveHM6Y29tcGxleFR5cGU+DQorDQorCTx4czpjb21wbGV4VHlwZSBuYW1lPSJ2dWxuVHlwZSI+DQorCQk8eHM6c2VxdWVuY2U+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0iYWNjZXNzIiBtaW5PY2N1cnM9IjAiLz4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJpbnB1dCIgbWluT2NjdXJzPSIwIj4NCisJCQkJPHhzOmFubm90YXRpb24+DQorCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj4gSW5wdXQgdmFsaWRhdGlvbiBlcnJvciB0YWcgd2l0aA0KKwkJCQkJCW9uZSBhdHRyaWJ1dGUgZm9yIGVhY2ggaW5wdXQgdmFsaWRhdGlvbiBlcnJvcg0KKwkJCQkJCXR5cGUuIFBvdGVudGlhbCBpbnB1dCB2YWxpZGF0aW9uIGVycm9yIHR5cGVzDQorCQkJCQkJYXJlOiAiYm91bmQiID0+IEJvdW5kYXJ5IGNvbmRpdGlvbiBlcnJvcg0KKwkJCQkJCSJidWZmZXIiID0+IEJ1ZmZlciBvdmVyZmxvdyA8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJCTwveHM6YW5ub3RhdGlvbj4NCisJCQkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJib3VuZCIgdHlwZT0iY3ZlOnRydWVPbmx5QXR0cmlidXRlIi8+DQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImJ1ZmZlciIgdHlwZT0iY3ZlOnRydWVPbmx5QXR0cmlidXRlIg0KKwkJCQkJLz4NCisJCQkJPC94czpjb21wbGV4VHlwZT4NCisJCQk8L3hzOmVsZW1lbnQ+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0iZGVzaWduIiBtaW5PY2N1cnM9IjAiLz4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJleGNlcHRpb24iIG1pbk9jY3Vycz0iMCIvPg0KKwkJCTx4czplbGVtZW50IG5hbWU9ImVudiIgbWluT2NjdXJzPSIwIi8+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0iY29uZmlnIiBtaW5PY2N1cnM9IjAiLz4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJyYWNlIiBtaW5PY2N1cnM9IjAiLz4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJvdGhlciIgbWluT2NjdXJzPSIwIi8+DQorCQk8L3hzOnNlcXVlbmNlPg0KKwk8L3hzOmNvbXBsZXhUeXBlPg0KKw0KKwk8eHM6Y29tcGxleFR5cGUgbmFtZT0ic29sc1R5cGUiPg0KKwkJPHhzOnNlcXVlbmNlPg0KKwkJCTx4czplbGVtZW50IG5hbWU9InNvbCI+DQorCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJPHhzOmRvY3VtZW50YXRpb24+IENvbnRhaW5zIGEgc3BlY2lmaWMgc29sdXRpb24NCisJCQkJCQlleHBsYW5hdGlvbiBvZiB0aGlzIENWRSBlbnRyeSBmcm9tIHNvdXJjZQ0KKwkJCQkJCWluZGljYXRlZCBieSB0aGUgInNvdXJjZSIgYXR0cmlidXRlLg0KKwkJCQkJPC94czpkb2N1bWVudGF0aW9uPg0KKwkJCQk8L3hzOmFubm90YXRpb24+DQorCQkJCTx4czpjb21wbGV4VHlwZSBtaXhlZD0idHJ1ZSI+DQorCQkJCQk8eHM6c2ltcGxlQ29udGVudD4NCisJCQkJCQk8eHM6ZXh0ZW5zaW9uIGJhc2U9InhzOnN0cmluZyI+DQorCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0ic291cmNlIiB0eXBlPSJjdmU6c29sc1NvdXJjZVR5cGUiIHVzZT0icmVxdWlyZWQiPg0KKwkJCQkJCQk8L3hzOmF0dHJpYnV0ZT4NCisJCQkJCQk8L3hzOmV4dGVuc2lvbj4NCisJCQkJCTwveHM6c2ltcGxlQ29udGVudD4NCisJCQkJPC94czpjb21wbGV4VHlwZT4NCisJCQk8L3hzOmVsZW1lbnQ+DQorCQk8L3hzOnNlcXVlbmNlPg0KKwk8L3hzOmNvbXBsZXhUeXBlPg0KKw0KKwk8eHM6Y29tcGxleFR5cGUgbmFtZT0ibG9zc1R5cGVUeXBlIj4NCisJCTx4czpzZXF1ZW5jZT4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJhdmFpbCIgbWluT2NjdXJzPSIwIi8+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0iY29uZiIgbWluT2NjdXJzPSIwIi8+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0iaW50IiBtaW5PY2N1cnM9IjAiLz4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJzZWNfcHJvdCIgbWluT2NjdXJzPSIwIj4NCisJCQkJPHhzOmFubm90YXRpb24+DQorCQkJCQk8eHM6ZG9jdW1lbnRhdGlvbj4gU2VjdXJpdHkgUHJvdGVjdGlvbiB0YWcgd2l0aCBvbmUNCisJCQkJCQlhdHRyaWJ1dGUgZm9yIGVhY2ggc2VjdXJpdHkgcHJvdGVjdGlvbiB0eXBlLg0KKwkJCQkJCVBvdGVudGlhbCBzZWN1cml0eSBwcm90ZWN0aW9uIHR5cGVzIGFyZTogImFkbWluIg0KKwkJCQkJCT0+IGdhaW4gYWRtaW5pc3RyYXRpdmUgYWNjZXNzICJ1c2VyIiA9PiBnYWluDQorCQkJCQkJdXNlciBhY2Nlc3MgIm90aGVyIiA9PiBvdGhlciA8L3hzOmRvY3VtZW50YXRpb24+DQorCQkJCTwveHM6YW5ub3RhdGlvbj4NCisJCQkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJhZG1pbiIgdHlwZT0iY3ZlOnRydWVPbmx5QXR0cmlidXRlIi8+DQorCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9InVzZXIiIHR5cGU9ImN2ZTp0cnVlT25seUF0dHJpYnV0ZSIvPg0KKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJvdGhlciIgdHlwZT0iY3ZlOnRydWVPbmx5QXR0cmlidXRlIg0KKwkJCQkJLz4NCisJCQkJPC94czpjb21wbGV4VHlwZT4NCisJCQk8L3hzOmVsZW1lbnQ+DQorCQk8L3hzOnNlcXVlbmNlPg0KKwk8L3hzOmNvbXBsZXhUeXBlPg0KKw0KKwk8eHM6Y29tcGxleFR5cGUgbmFtZT0icmFuZ2VUeXBlIj4NCisJCTx4czpzZXF1ZW5jZT4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJsb2NhbCIgbWluT2NjdXJzPSIwIi8+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0ibG9jYWxfbmV0d29yayIgbWluT2NjdXJzPSIwIi8+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0ibmV0d29yayIgbWluT2NjdXJzPSIwIi8+DQorCQkJPHhzOmVsZW1lbnQgbmFtZT0idXNlcl9pbml0IiBtaW5PY2N1cnM9IjAiLz4NCisJCTwveHM6c2VxdWVuY2U+DQorCTwveHM6Y29tcGxleFR5cGU+DQorDQorCTx4czpjb21wbGV4VHlwZSBuYW1lPSJyZWZUeXBlIj4NCisJCTx4czpzaW1wbGVDb250ZW50Pg0KKwkJCTx4czpleHRlbnNpb24gYmFzZT0ieHM6c3RyaW5nIj4NCisJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJzb3VyY2UiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0KKwkJCQk8eHM6YXR0cmlidXRlIG5hbWU9InVybCIgdHlwZT0iY3ZlOnVybFR5cGUiIHVzZT0icmVxdWlyZWQiLz4NCisJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJzaWciIHR5cGU9ImN2ZTp0cnVlT25seUF0dHJpYnV0ZSIvPg0KKwkJCQk8eHM6YXR0cmlidXRlIG5hbWU9ImFkdiIgdHlwZT0iY3ZlOnRydWVPbmx5QXR0cmlidXRlIi8+DQorCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0icGF0Y2giIHR5cGU9ImN2ZTp0cnVlT25seUF0dHJpYnV0ZSIvPg0KKwkJCTwveHM6ZXh0ZW5zaW9uPg0KKwkJPC94czpzaW1wbGVDb250ZW50Pg0KKwk8L3hzOmNvbXBsZXhUeXBlPg0KKw0KKwk8eHM6Y29tcGxleFR5cGUgbmFtZT0idnVsblNvZnRUeXBlIj4NCisJCTx4czpzZXF1ZW5jZT4NCisJCQk8eHM6ZWxlbWVudCBuYW1lPSJwcm9kIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCTx4czphbm5vdGF0aW9uPg0KKwkJCQkJPHhzOmRvY3VtZW50YXRpb24+IFByb2R1Y3Qgd3JhcHBlciB0YWcuIFZlcnNpb25zIG9mDQorCQkJCQkJdGhpcyBwcm9kdWN0IHRoYXQgYXJlIGFmZmVjdGVkIGJ5IHRoaXMNCisJCQkJCQl2dWxuZXJhYmlsaXR5IGFyZSBsaXN0ZWQgd2l0aGluIHRoaXMgdGFnLg0KKwkJCQkJCUF0dHJpYnV0ZXM6ICJuYW1lIiA9PiBQcm9kdWN0IG5hbWUgInZlbmRvciIgPT4NCisJCQkJCQlWZW5kb3Igb2YgdGhpcyBwcm9kdWN0IDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJCQk8eHM6c2VxdWVuY2U+DQorCQkJCQkJPHhzOmVsZW1lbnQgbmFtZT0idmVycyIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJCQk8eHM6YW5ub3RhdGlvbj4NCisJCQkJCQkJCTx4czpkb2N1bWVudGF0aW9uPiBSZXByZXNlbnRzIGEgdmVyc2lvbg0KKwkJCQkJCQkJCW9mIHRoaXMgcHJvZHVjdCB0aGF0IGlzIGFmZmVjdGVkIGJ5DQorCQkJCQkJCQkJdGhpcyB2dWxuZXJhYmlsaXR5LiBBdHRyaWJ1dGVzOg0KKwkJCQkJCQkJCSJudW0iID0+IFRoaXMgdmVyc2lvbiBudW1iZXIgInByZXYiDQorCQkJCQkJCQkJPT4gSW5kaWNhdGVzIHRoYXQgdmVyc2lvbnMgcHJldmlvdXMNCisJCQkJCQkJCQl0byB0aGlzIHZlcnNpb24gbnVtYmVyIGFyZSBhbHNvDQorCQkJCQkJCQkJYWZmZWN0ZWQgYnkgdGhpcyB2dWxuZXJhYmlsaXR5DQorCQkJCQkJCQkJImVkaXRpb24iID0+IEluZGljYXRlcyB0aGUgZWRpdGlvbg0KKwkJCQkJCQkJCWFzc29jaWF0ZWQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXINCisJCQkJCQkJCTwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCQkJCQkJPC94czphbm5vdGF0aW9uPg0KKwkJCQkJCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9Im51bSINCisJCQkJCQkJCQl0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4NCisJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0icHJldiINCisJCQkJCQkJCQl0eXBlPSJjdmU6dHJ1ZU9ubHlBdHRyaWJ1dGUiLz4NCisJCQkJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iZWRpdGlvbiINCisJCQkJCQkJCQl0eXBlPSJ4czpzdHJpbmciLz4NCisJCQkJCQkJPC94czpjb21wbGV4VHlwZT4NCisJCQkJCQk8L3hzOmVsZW1lbnQ+DQorCQkJCQk8L3hzOnNlcXVlbmNlPg0KKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciDQorCQkJCQkJdXNlPSJyZXF1aXJlZCIvPg0KKwkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJ2ZW5kb3IiIHR5cGU9InhzOnN0cmluZyINCisJCQkJCQl1c2U9InJlcXVpcmVkIi8+DQorCQkJCTwveHM6Y29tcGxleFR5cGU+DQorCQkJPC94czplbGVtZW50Pg0KKwkJPC94czpzZXF1ZW5jZT4NCisJPC94czpjb21wbGV4VHlwZT4NCisNCisJPCEtLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC0tPg0KKwk8IS0tICogU2ltcGxlIFR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogLS0+DQorCTwhLS0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAtLT4NCisJPHhzOnNpbXBsZVR5cGUgbmFtZT0iZGVzY3JpcHRTb3VyY2VUeXBlIj4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpOTVRPS0VOIj4NCisJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImN2ZSIvPg0KKwkJCTx4czplbnVtZXJhdGlvbiB2YWx1ZT0ibnZkIi8+DQorCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwk8L3hzOnNpbXBsZVR5cGU+DQorDQorCTx4czpzaW1wbGVUeXBlIG5hbWU9ImltcGFjdFNvdXJjZVR5cGUiPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOk5NVE9LRU4iPg0KKwkJCTx4czplbnVtZXJhdGlvbiB2YWx1ZT0ibnZkIi8+DQorCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwk8L3hzOnNpbXBsZVR5cGU+DQorDQorCTx4czpzaW1wbGVUeXBlIG5hbWU9InNvbHNTb3VyY2VUeXBlIj4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpOTVRPS0VOIj4NCisJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9Im52ZCIvPg0KKwkJPC94czpyZXN0cmljdGlvbj4NCisJPC94czpzaW1wbGVUeXBlPg0KKw0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJkYXRlVHlwZSI+DQorCQk8eHM6YW5ub3RhdGlvbj4NCisJCQk8eHM6ZG9jdW1lbnRhdGlvbj4gRGVmaW5lcyBkYXRlIGZvcm1hdCBmb3IgTlZELiBEYXRlcyBmb2xsb3cgdGhlIG1hc2sgInl5eXktbW0tZGQiDQorCQkJPC94czpkb2N1bWVudGF0aW9uPg0KKwkJPC94czphbm5vdGF0aW9uPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQorCQkJPHhzOnBhdHRlcm4NCisJCQkJdmFsdWU9IigxOXwyMClcZFxkLSgoMDF8MDN8MDV8MDd8MDh8MTB8MTIpLSgwWzEtOV18WzEtMl1cZHwzWzAxXSl8KDA0fDA2fDA5fDExKS0oMFsxLTldfFsxLTJdXGR8MzApfDAyLSgwWzEtOV18MVxkfDJcZCkpIg0KKwkJCS8+DQorCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwk8L3hzOnNpbXBsZVR5cGU+DQorCTx4czpzaW1wbGVUeXBlIG5hbWU9InVybFR5cGUiPg0KKwkJPHhzOmFubm90YXRpb24+DQorCQkJPHhzOmRvY3VtZW50YXRpb24+IFJlc3RyaWN0cyB1cmxzIGluIE5WRCBiZXlvbmQgdGhlIHhzOmFueVVSSSByZXN0cmljdGlvbnMuDQorCQkJPC94czpkb2N1bWVudGF0aW9uPg0KKwkJPC94czphbm5vdGF0aW9uPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmFueVVSSSI+DQorCQkJPHhzOndoaXRlU3BhY2UgdmFsdWU9ImNvbGxhcHNlIi8+DQorCQkJPHhzOnBhdHRlcm4gdmFsdWU9IihuZXdzfChodHxmKXRwKHMpPyk6Ly8uKyIvPg0KKwkJPC94czpyZXN0cmljdGlvbj4NCisJPC94czpzaW1wbGVUeXBlPg0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJ0cnVlT25seUF0dHJpYnV0ZSI+DQorCQk8eHM6YW5ub3RhdGlvbj4NCisJCQk8eHM6ZG9jdW1lbnRhdGlvbj4gc2ltcGxlVHlwZSB1c2VkIGZvciBhdHRyaWJ1dGVzIHRoYXQgYXJlIG9ubHkgcHJlc2VudCB3aGVuIHRoZXkgYXJlDQorCQkJCXRydWUuIFN1Y2ggYXR0cmlidXRlcyBhcHBlYXIgb25seSBpbiB0aGUgZm9ybSBhdHRyaWJ1dGVfbmFtZT0iMSIuDQorCQkJPC94czpkb2N1bWVudGF0aW9uPg0KKwkJPC94czphbm5vdGF0aW9uPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOk5NVE9LRU4iPg0KKwkJCTx4czplbnVtZXJhdGlvbiB2YWx1ZT0iMSIvPg0KKwkJPC94czpyZXN0cmljdGlvbj4NCisJPC94czpzaW1wbGVUeXBlPg0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJ6ZXJvVG9UZW4iPg0KKwkJPHhzOmFubm90YXRpb24+DQorCQkJPHhzOmRvY3VtZW50YXRpb24+IHNpbXBsZVR5cGUgdXNlZCB3aGVuIHNjb3Jpbmcgb24gYSBzY2FsZSBvZiAwLTEwLCBpbmNsdXNpdmUNCisJCQk8L3hzOmRvY3VtZW50YXRpb24+DQorCQk8L3hzOmFubm90YXRpb24+DQorCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6ZGVjaW1hbCI+DQorCQkJPHhzOm1pbkluY2x1c2l2ZSB2YWx1ZT0iMCIgZml4ZWQ9InRydWUiLz4NCisJCQk8eHM6bWF4SW5jbHVzaXZlIHZhbHVlPSIxMCIgZml4ZWQ9InRydWUiLz4NCisJCTwveHM6cmVzdHJpY3Rpb24+DQorCTwveHM6c2ltcGxlVHlwZT4NCisJPHhzOnNpbXBsZVR5cGUgbmFtZT0iQ1ZTU1ZlY3RvciI+DQorCQk8eHM6YW5ub3RhdGlvbj4NCisJCQk8eHM6ZG9jdW1lbnRhdGlvbj5zaW1wbGVUeXBlIHRvIGRlc2NyaWJlIHRoZSBDVlNTIEJhc2UgVmVjdG9yIDwveHM6ZG9jdW1lbnRhdGlvbj4NCisJCTwveHM6YW5ub3RhdGlvbj4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KKyAJCQk8eHM6cGF0dGVybg0KKwkJCQl2YWx1ZT0iXChBVjpbTEFOXS9BQzpbSE1MXS9BdTpbTlNNXS9DOltOUENdL0k6W05QQ10vQTpbTlBDXVwpIi8+DQorCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwk8L3hzOnNpbXBsZVR5cGU+DQorPC94czpzY2hlbWE+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcG8wXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcG8wXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NzIzMmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9wbzBfMC54bWwKQEAgLTAsMCArMSwzMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8cHVyY2hhc2VPcmRlciBvcmRlckRhdGU9IjE5OTktMTAtMjAiPgorICA8c2hpcFRvIGNvdW50cnk9IlVTIj4KKyAgICA8bmFtZT5BbGljZSBTbWl0aDwvbmFtZT4KKyAgICA8c3RyZWV0PjEyMyBNYXBsZSBTdHJlZXQ8L3N0cmVldD4KKyAgICA8Y2l0eT5NaWxsIFZhbGxleTwvY2l0eT4KKyAgICA8c3RhdGU+Q0E8L3N0YXRlPgorICAgIDx6aXA+OTA5NTI8L3ppcD4KKyAgPC9zaGlwVG8+CisgIDxiaWxsVG8gY291bnRyeT0iVVMiPgorICAgIDxuYW1lPlJvYmVydCBTbWl0aDwvbmFtZT4KKyAgICA8c3RyZWV0PjggT2FrIEF2ZW51ZTwvc3RyZWV0PgorICAgIDxjaXR5Pk9sZCBUb3duPC9jaXR5PgorICAgIDxzdGF0ZT5QQTwvc3RhdGU+CisgICAgPHppcD45NTgxOTwvemlwPgorICA8L2JpbGxUbz4KKyAgPGNvbW1lbnQ+SHVycnksIG15IGxhd24gaXMgZ29pbmcgd2lsZCE8L2NvbW1lbnQ+CisgIDxpdGVtcz4KKyAgICA8aXRlbSBwYXJ0TnVtPSI4NzItQUEiPgorICAgICAgPHByb2R1Y3ROYW1lPkxhd25tb3dlcjwvcHJvZHVjdE5hbWU+CisgICAgICA8cXVhbnRpdHk+MTwvcXVhbnRpdHk+CisgICAgICA8VVNQcmljZT4xNDguOTU8L1VTUHJpY2U+CisgICAgICA8Y29tbWVudD5Db25maXJtIHRoaXMgaXMgZWxlY3RyaWM8L2NvbW1lbnQ+CisgICAgPC9pdGVtPgorICAgIDxpdGVtIHBhcnROdW09IjkyNi1BQSI+CisgICAgICA8cHJvZHVjdE5hbWU+QmFieSBNb25pdG9yPC9wcm9kdWN0TmFtZT4KKyAgICAgIDxxdWFudGl0eT4xPC9xdWFudGl0eT4KKyAgICAgIDxVU1ByaWNlPjM5Ljk4PC9VU1ByaWNlPgorICAgICAgPHNoaXBEYXRlPjE5OTktMDUtMjE8L3NoaXBEYXRlPgorICAgIDwvaXRlbT4KKyAgPC9pdGVtcz4KKzwvcHVyY2hhc2VPcmRlcj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3BvMF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3BvMF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTFlNjYwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcG8wXzAueHNkCkBAIC0wLDAgKzEsNTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4c2Q6YW5ub3RhdGlvbj4KKyAgICA8eHNkOmRvY3VtZW50YXRpb24geG1sOmxhbmc9ImVuIj4KK1B1cmNoYXNlIG9yZGVyIHNjaGVtYSBmb3IgRXhhbXBsZS5jb20uCisgICBDb3B5cmlnaHQgMjAwMCBFeGFtcGxlLmNvbS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICA8L3hzZDpkb2N1bWVudGF0aW9uPgorICA8L3hzZDphbm5vdGF0aW9uPgorICA8eHNkOmVsZW1lbnQgbmFtZT0icHVyY2hhc2VPcmRlciIgdHlwZT0iUHVyY2hhc2VPcmRlclR5cGUiLz4KKyAgPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciLz4KKyAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJQdXJjaGFzZU9yZGVyVHlwZSI+CisgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJzaGlwVG8iIHR5cGU9IlVTQWRkcmVzcyIvPgorICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImJpbGxUbyIgdHlwZT0iVVNBZGRyZXNzIi8+CisgICAgICA8eHNkOmVsZW1lbnQgcmVmPSJjb21tZW50IiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJpdGVtcyIgdHlwZT0iSXRlbXMiLz4KKyAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJvcmRlckRhdGUiIHR5cGU9InhzZDpkYXRlIi8+CisgIDwveHNkOmNvbXBsZXhUeXBlPgorICA8eHNkOmNvbXBsZXhUeXBlIG5hbWU9IlVTQWRkcmVzcyI+CisgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIi8+CisgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0ic3RyZWV0IiB0eXBlPSJ4c2Q6c3RyaW5nIi8+CisgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iY2l0eSIgdHlwZT0ieHNkOnN0cmluZyIvPgorICAgICAgPHhzZDplbGVtZW50IG5hbWU9InN0YXRlIiB0eXBlPSJ4c2Q6c3RyaW5nIi8+CisgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iemlwIiB0eXBlPSJ4c2Q6ZGVjaW1hbCIvPgorICAgIDwveHNkOnNlcXVlbmNlPgorICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImNvdW50cnkiIHR5cGU9InhzZDpOTVRPS0VOIiBmaXhlZD0iVVMiLz4KKyAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDx4c2Q6Y29tcGxleFR5cGUgbmFtZT0iSXRlbXMiPgorICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iaXRlbSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJwcm9kdWN0TmFtZSIgdHlwZT0ieHNkOnN0cmluZyIvPgorICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InF1YW50aXR5Ij4KKyAgICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPgorICAgICAgICAgICAgICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnBvc2l0aXZlSW50ZWdlciI+CisgICAgICAgICAgICAgICAgICA8eHNkOm1heEV4Y2x1c2l2ZSB2YWx1ZT0iMTAwIi8+CisgICAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9IlVTUHJpY2UiIHR5cGU9InhzZDpkZWNpbWFsIi8+CisgICAgICAgICAgICA8eHNkOmVsZW1lbnQgcmVmPSJjb21tZW50IiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJzaGlwRGF0ZSIgdHlwZT0ieHNkOmRhdGUiIG1pbk9jY3Vycz0iMCIvPgorICAgICAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9InBhcnROdW0iIHR5cGU9IlNLVSIgdXNlPSJyZXF1aXJlZCIvPgorICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgPC94c2Q6c2VxdWVuY2U+CisgIDwveHNkOmNvbXBsZXhUeXBlPgorPCEtLSBTdG9jayBLZWVwaW5nIFVuaXQsIGEgY29kZSBmb3IgaWRlbnRpZnlpbmcgcHJvZHVjdHMgLS0+CisgIDx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJTS1UiPgorICAgIDx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0ieHNkOnN0cmluZyI+CisgICAgICA8eHNkOnBhdHRlcm4gdmFsdWU9IlxkezN9LVtBLVpdezJ9Ii8+CisgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgIDwveHNkOnNpbXBsZVR5cGU+Cis8L3hzZDpzY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3BvMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3BvMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzgxYmJmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcG8xXzAueG1sCkBAIC0wLDAgKzEsMzQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzxhcG86cHVyY2hhc2VPcmRlciB4bWxuczphcG89Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vUE8xIg0KKyAgICAgICAgICAgICAgICAgICBvcmRlckRhdGU9IjE5OTktMTAtMjAiPg0KKyAgPHNoaXBUbyBjb3VudHJ5PSJVUyI+DQorICAgIDxuYW1lPkFsaWNlIFNtaXRoPC9uYW1lPg0KKyAgICA8c3RyZWV0PjEyMyBNYXBsZSBTdHJlZXQ8L3N0cmVldD4NCisgICAgPGNpdHk+TWlsbCBWYWxsZXk8L2NpdHk+DQorICAgIDxzdGF0ZT5DQTwvc3RhdGU+DQorICAgIDx6aXA+OTA5NTI8L3ppcD4NCisgIDwvc2hpcFRvPg0KKyAgPGJpbGxUbyBjb3VudHJ5PSJVUyI+DQorICAgIDxuYW1lPlJvYmVydCBTbWl0aDwvbmFtZT4NCisgICAgPHN0cmVldD44IE9hayBBdmVudWU8L3N0cmVldD4NCisgICAgPGNpdHk+T2xkIFRvd248L2NpdHk+DQorICAgIDxzdGF0ZT5QQTwvc3RhdGU+DQorICAgIDx6aXA+OTU4MTk8L3ppcD4NCisgIDwvYmlsbFRvPg0KKyAgPGFwbzpjb21tZW50Pkh1cnJ5LCBteSBsYXduIGlzIGdvaW5nIHdpbGQhPC9hcG86Y29tbWVudD4NCisgIDxpdGVtcz4NCisgICAgPGl0ZW0gcGFydE51bT0iODcyLUFBIj4NCisgICAgICA8cHJvZHVjdE5hbWU+TGF3bm1vd2VyPC9wcm9kdWN0TmFtZT4NCisgICAgICA8cXVhbnRpdHk+MTwvcXVhbnRpdHk+DQorICAgICAgPFVTUHJpY2U+MTQ4Ljk1PC9VU1ByaWNlPg0KKyAgICAgIDxhcG86Y29tbWVudD5Db25maXJtIHRoaXMgaXMgZWxlY3RyaWM8L2Fwbzpjb21tZW50Pg0KKyAgICA8L2l0ZW0+DQorICAgIDxpdGVtIHBhcnROdW09IjkyNi1BQSI+DQorICAgICAgPHByb2R1Y3ROYW1lPkJhYnkgTW9uaXRvcjwvcHJvZHVjdE5hbWU+DQorICAgICAgPHF1YW50aXR5PjE8L3F1YW50aXR5Pg0KKyAgICAgIDxVU1ByaWNlPjM5Ljk4PC9VU1ByaWNlPg0KKyAgICAgIDxzaGlwRGF0ZT4xOTk5LTA1LTIxPC9zaGlwRGF0ZT4NCisgICAgPC9pdGVtPg0KKyAgPC9pdGVtcz4NCis8L2FwbzpwdXJjaGFzZU9yZGVyPg0KKw0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3BvMV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3BvMV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjMwNTYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcG8xXzAueHNkCkBAIC0wLDAgKzEsNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiDQorICAgICAgICAgICAgeG1sbnM6cG89Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vUE8xIg0KKwkgICAgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tL1BPMSINCisJICAgIGVsZW1lbnRGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiDQorCSAgICBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiPg0KKyAgPHhzZDphbm5vdGF0aW9uPg0KKyAgICA8eHNkOmRvY3VtZW50YXRpb24geG1sOmxhbmc9ImVuIj4NCitQdXJjaGFzZSBvcmRlciBzY2hlbWEgZm9yIEV4YW1wbGUuY29tLg0KKyAgIENvcHlyaWdodCAyMDAwIEV4YW1wbGUuY29tLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAgICA8L3hzZDpkb2N1bWVudGF0aW9uPg0KKyAgPC94c2Q6YW5ub3RhdGlvbj4NCisgIDx4c2Q6ZWxlbWVudCBuYW1lPSJwdXJjaGFzZU9yZGVyIiB0eXBlPSJwbzpQdXJjaGFzZU9yZGVyVHlwZSIvPg0KKyAgPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciLz4NCisgIDx4c2Q6Y29tcGxleFR5cGUgbmFtZT0iUHVyY2hhc2VPcmRlclR5cGUiPg0KKyAgICA8eHNkOnNlcXVlbmNlPg0KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJzaGlwVG8iIHR5cGU9InBvOlVTQWRkcmVzcyIvPg0KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJiaWxsVG8iIHR5cGU9InBvOlVTQWRkcmVzcyIvPg0KKyAgICAgIDx4c2Q6ZWxlbWVudCByZWY9InBvOmNvbW1lbnQiIG1pbk9jY3Vycz0iMCIvPg0KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJpdGVtcyIgdHlwZT0icG86SXRlbXMiLz4NCisgICAgPC94c2Q6c2VxdWVuY2U+DQorICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im9yZGVyRGF0ZSIgdHlwZT0ieHNkOmRhdGUiLz4NCisgIDwveHNkOmNvbXBsZXhUeXBlPg0KKyAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJVU0FkZHJlc3MiPg0KKyAgICA8eHNkOnNlcXVlbmNlPg0KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIi8+DQorICAgICAgPHhzZDplbGVtZW50IG5hbWU9InN0cmVldCIgdHlwZT0ieHNkOnN0cmluZyIvPg0KKyAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJjaXR5IiB0eXBlPSJ4c2Q6c3RyaW5nIi8+DQorICAgICAgPHhzZDplbGVtZW50IG5hbWU9InN0YXRlIiB0eXBlPSJ4c2Q6c3RyaW5nIi8+DQorICAgICAgPHhzZDplbGVtZW50IG5hbWU9InppcCIgdHlwZT0ieHNkOmRlY2ltYWwiLz4NCisgICAgPC94c2Q6c2VxdWVuY2U+DQorICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImNvdW50cnkiIHR5cGU9InhzZDpOTVRPS0VOIiBmaXhlZD0iVVMiLz4NCisgIDwveHNkOmNvbXBsZXhUeXBlPg0KKyAgPHhzZDpjb21wbGV4VHlwZSBuYW1lPSJJdGVtcyI+DQorICAgIDx4c2Q6c2VxdWVuY2U+DQorICAgICAgPHhzZDplbGVtZW50IG5hbWU9Iml0ZW0iIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKyAgICAgICAgPHhzZDpjb21wbGV4VHlwZT4NCisgICAgICAgICAgPHhzZDpzZXF1ZW5jZT4NCisgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0icHJvZHVjdE5hbWUiIHR5cGU9InhzZDpzdHJpbmciLz4NCisgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0icXVhbnRpdHkiPg0KKyAgICAgICAgICAgICAgPHhzZDpzaW1wbGVUeXBlPg0KKyAgICAgICAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpwb3NpdGl2ZUludGVnZXIiPg0KKyAgICAgICAgICAgICAgICAgIDx4c2Q6bWF4RXhjbHVzaXZlIHZhbHVlPSIxMDAiLz4NCisgICAgICAgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+DQorICAgICAgICAgICAgICA8L3hzZDpzaW1wbGVUeXBlPg0KKyAgICAgICAgICAgIDwveHNkOmVsZW1lbnQ+DQorICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9IlVTUHJpY2UiIHR5cGU9InhzZDpkZWNpbWFsIi8+DQorICAgICAgICAgICAgPHhzZDplbGVtZW50IHJlZj0icG86Y29tbWVudCIgbWluT2NjdXJzPSIwIi8+DQorICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InNoaXBEYXRlIiB0eXBlPSJ4c2Q6ZGF0ZSIgbWluT2NjdXJzPSIwIi8+DQorICAgICAgICAgIDwveHNkOnNlcXVlbmNlPg0KKyAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJwYXJ0TnVtIiB0eXBlPSJwbzpTS1UiIHVzZT0icmVxdWlyZWQiLz4NCisgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPg0KKyAgICAgIDwveHNkOmVsZW1lbnQ+DQorICAgIDwveHNkOnNlcXVlbmNlPg0KKyAgPC94c2Q6Y29tcGxleFR5cGU+DQorPCEtLSBTdG9jayBLZWVwaW5nIFVuaXQsIGEgY29kZSBmb3IgaWRlbnRpZnlpbmcgcHJvZHVjdHMgLS0+DQorICA8eHNkOnNpbXBsZVR5cGUgbmFtZT0iU0tVIj4NCisgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6c3RyaW5nIj4NCisgICAgICA8eHNkOnBhdHRlcm4gdmFsdWU9IlxkezN9LVtBLVpdezJ9Ii8+DQorICAgIDwveHNkOnJlc3RyaWN0aW9uPg0KKyAgPC94c2Q6c2ltcGxlVHlwZT4NCis8L3hzZDpzY2hlbWE+DQorDQorDQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcG9zY2hhcmdycDBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9wb3NjaGFyZ3JwMF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODAwYjFiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcG9zY2hhcmdycDBfMC54bWwKQEAgLTAsMCArMSwyIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPHRlc3RFbGVtIHhtbG5zPSJodHRwOi8vb2JqLXN5cy5jb20vbXlTY2hlbWEiPnZhbHVlPC90ZXN0RWxlbT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9wb3NjaGFyZ3JwMF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Bvc2NoYXJncnAwXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyNDNhMmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9wb3NjaGFyZ3JwMF8wLnhzZApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPHhzOnNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9vYmotc3lzLmNvbS9teVNjaGVtYSINCisgICAgICAgICAgICAgICAgICB4bWxuczplbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCINCisgICAgICAgICAgICAgICAgICB4bWxucz0iaHR0cDovL29iai1zeXMuY29tL215U2NoZW1hIg0KKyAgICAgICAgICAgICAgICAgIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0RWxlbSI+DQorICAgIDx4czpzaW1wbGVUeXBlPg0KKyAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KKyAgICAgICAgPHhzOnBhdHRlcm4gdmFsdWU9IlteLjovXSsiLz4NCisgICAgICA8L3hzOnJlc3RyaWN0aW9uPg0KKyAgICA8L3hzOnNpbXBsZVR5cGU+DQorICA8L3hzOmVsZW1lbnQ+DQorICANCis8L3hzOnNjaGVtYT4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZWdleHAtY2hhci1yZWZfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZWdleHAtY2hhci1yZWZfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZmNDYzZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wLnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8dGVzdCB0ZXN0MT0iNSIKKyAgICAgIHRlc3QyPSI2IgorICAgICAgdGVzdDM9IiMiCisgICAgICB0ZXN0ND0iOyIKKyAgICAgIHRlc3Q1PSImYW1wOyIgLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3JlZ2V4cC1jaGFyLXJlZl8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDkxYzZjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzAueHNkCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorCisgICAgPHhzOmVsZW1lbnQgbmFtZT0idGVzdCI+CisgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0idGVzdDEiIHR5cGU9Im15VHlwZSIvPgorICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJ0ZXN0MiIgdHlwZT0ibXlUeXBlIi8+CisgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9InRlc3QzIiB0eXBlPSJteVR5cGUiLz4KKyAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0idGVzdDQiIHR5cGU9Im15VHlwZSIvPgorICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJ0ZXN0NSIgdHlwZT0ibXlUeXBlIi8+CisgICAgICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgPC94czplbGVtZW50PgorCisgICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0ibXlUeXBlIj4KKyAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+CisgICAgICAgICAgICA8eHM6cGF0dGVybiB2YWx1ZT0iWzU2OyZhbXA7I10iLz4KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICA8L3hzOnNpbXBsZVR5cGU+CisKKzwveHM6c2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcmVnZXhwLWNoYXItcmVmXzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5OGE0ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZWdleHAtY2hhci1yZWZfMS54c2QKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisKKyAgICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0Ij4KKyAgICAgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJ0ZXN0MSIgdHlwZT0ibXlUeXBlIi8+CisgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9InRlc3QyIiB0eXBlPSJteVR5cGUiLz4KKyAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0idGVzdDMiIHR5cGU9Im15VHlwZSIvPgorICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJ0ZXN0NCIgdHlwZT0ibXlUeXBlIi8+CisgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9InRlc3Q1IiB0eXBlPSJteVR5cGUiLz4KKyAgICAgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICA8L3hzOmVsZW1lbnQ+CisKKyAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJteVR5cGUiPgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4KKyAgICAgICAgICAgIDx4czpwYXR0ZXJuIHZhbHVlPSJbJmFtcDsjNjU7XSIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6c2ltcGxlVHlwZT4KKworPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdC1DVC1hdHRyLXJlZl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0LUNULWF0dHItcmVmXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwMjFhODMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdC1DVC1hdHRyLXJlZl8wLnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGZvbzpmb28geG1sbnM6Zm9vPSJodHRwOi8vRk9PIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gcmVzdHJpY3QtQ1QtYXR0ci1yZWZfMC54c2QiIGZvbzppZD0iYjA4MzYyMTc0NjIiLz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdC1DVC1hdHRyLXJlZl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0LUNULWF0dHItcmVmXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5OGI4MmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdC1DVC1hdHRyLXJlZl8wLnhzZApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIAorCWF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyI+CisKKwk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHNkOklEIi8+CisKKwk8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InR5cGVJREF0dHIiPgorICAgIAkJPHhzZDphdHRyaWJ1dGUgcmVmPSJmb286aWQiLz4KKwk8L3hzZDpjb21wbGV4VHlwZT4KKworCTx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJmb29JRCI+CisgICAgCQk8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpJRCI+CisgICAgICAJCQk8eHNkOnBhdHRlcm4gdmFsdWU9ImJcZHsxMH0iLz4KKyAgICAJCTwveHNkOnJlc3RyaWN0aW9uPgorICAJPC94c2Q6c2ltcGxlVHlwZT4KKworCTx4c2Q6ZWxlbWVudCBuYW1lPSJmb28iPgorICAgIAkJPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgIAkJCTx4c2Q6Y29tcGxleENvbnRlbnQ+CisgICAgICAgIAkJCTx4c2Q6cmVzdHJpY3Rpb24gYmFzZT0iZm9vOnR5cGVJREF0dHIiPiAgICAgICAgIAorICAgICAgICAgIAkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0iZm9vOmZvb0lEIi8+CisgICAgICAgIAkJCTwveHNkOnJlc3RyaWN0aW9uPgorICAgICAgCQkJPC94c2Q6Y29tcGxleENvbnRlbnQ+CisgICAgCQk8L3hzZDpjb21wbGV4VHlwZT4KKyAgCTwveHNkOmVsZW1lbnQ+CisKKworPC94c2Q6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcmVzdHJpY3Rpb24tYXR0cjFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNiOGYxOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9GT08gZmlsZTovLy9sOi9saWJ4bWwyL3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbi1hdHRyMV8wLnhzZCIgYmFyQT0iaGgiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvcmVzdHJpY3Rpb24tYXR0cjFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFjMjg4ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWF0dHIxXzAueHNkCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxucz0iaHR0cDovL0ZPTyIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vRk9PIj4KKworICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJmb28iPgorICAgICAgICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4czpjb21wbGV4Q29udGVudD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InR5cGVBIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImJhckEiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJvcHRpb25hbCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPC94czpjb21wbGV4Q29udGVudD4KKyAgICAgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgICAgICA8L3hzOmVsZW1lbnQ+CisKKyAgICAgICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InR5cGVBIj4KKyAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImJhckEiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPgorICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorCis8L3hzOnNjaGVtYT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJkYjRhMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWVudW0tMV8wLnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLSBUaGlzIGluc3RhbmNlIHNob3VsZCByYWlzZSBhbiBlcnJvciwgc2luY2UgaW4KKyAgInJlc3RyaWN0aW9uLWVudW0tMV8xLnhzZCIsIHRoZSByZXN0cmljdGluZyBlbnVtZXJhdGlvbgorICBydWxlcyBvdXQgdGhlIHZhbHVlICJjIiAod2hpY2ggaXMgYWxsb3dlZCBpbiB0aGUgcmVzdHJpY3RlZAorICB0eXBlKS4KKy0tPgorPGZvbz5jPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMS54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbi1lbnVtLTFfMS54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjllMzUzZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uLWVudW0tMV8xLnhzZApAQCAtMCwwICsxLDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iZm9vVHlwZSI+DQorICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KKyAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iYSIvPg0KKyAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iYiIvPg0KKyAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iYyIvPg0KKyAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iZCIvPg0KKyAgICA8L3hzOnJlc3RyaWN0aW9uPg0KKyAgPC94czpzaW1wbGVUeXBlPg0KKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iYmFyVHlwZSI+DQorICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJmb29UeXBlIj4NCisgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImEiLz4NCisgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImIiLz4NCisgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImQiLz4gIA0KKyAgICA8L3hzOnJlc3RyaWN0aW9uPg0KKyAgPC94czpzaW1wbGVUeXBlPg0KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZm9vIiB0eXBlPSJiYXJUeXBlIiAvPgorPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbjBfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbjBfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY1NmQyYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uMF8wLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHdobz4KKyAgPGZvcmVuYW1lPkJpbGw8L2ZvcmVuYW1lPgorICA8c3VybmFtZT5DbGludG9uPC9zdXJuYW1lPgorPC93aG8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbjBfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9yZXN0cmljdGlvbjBfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIzNWI5ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Jlc3RyaWN0aW9uMF8wLnhzZApAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBlcnNvbk5hbWUiPgorICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgIDx4czplbGVtZW50IG5hbWU9InRpdGxlIiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgIDx4czplbGVtZW50IG5hbWU9ImZvcmVuYW1lIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzdXJuYW1lIi8+CisgICAgPC94czpzZXF1ZW5jZT4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InNpbXBsZU5hbWUiPgorICAgIDx4czpjb21wbGV4Q29udGVudD4KKyAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJwZXJzb25OYW1lIj4KKyAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImZvcmVuYW1lIiBtaW5PY2N1cnM9IjEiIG1heE9jY3Vycz0iMSIvPgorICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InN1cm5hbWUiLz4KKyAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpjb21wbGV4Q29udGVudD4KKyAgPC94czpjb21wbGV4VHlwZT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0id2hvIiB0eXBlPSJzaW1wbGVOYW1lIi8+Cis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NjYy1uby14bWxuc18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NjYy1uby14bWxuc18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODVjZGNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc2NjLW5vLXhtbG5zXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9mb28iLz4JCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NjYy1uby14bWxuc18wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NjYy1uby14bWxuc18wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzFjODFiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc2NjLW5vLXhtbG5zXzAueHNkCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IS0tIEMuNCBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnRzOiBuby14bWxucyAtLT4KKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9mb28iIHhtbG5zOmZvbz0iaHR0cDovL2ZvbyI+CisJCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+CisgIAkgIDxjb21wbGV4VHlwZT4KKyAgCSAgCTxhdHRyaWJ1dGUgbmFtZT0ieG1sbnMiIHR5cGU9InN0cmluZyIgLz4KKyAgCSAgPC9jb21wbGV4VHlwZT4gICAgCisgIDwvZWxlbWVudD4gIAorCis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NjYy1uby14c2lfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zY2Mtbm8teHNpXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NWNkY2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zY2Mtbm8teHNpXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9mb28iLz4JCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NjYy1uby14c2lfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zY2Mtbm8teHNpXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OGI2YTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zY2Mtbm8teHNpXzAueHNkCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IS0tIDMuMi42IFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogeHNpOiBOb3QgQWxsb3dlZCAtLT4KKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4JCQkJCQkKKworCTxlbGVtZW50IG5hbWU9ImZvbyI+CQorCQk8Y29tcGxleFR5cGU+CQkKKwkJCTxhdHRyaWJ1dGUgbmFtZT0iYmFyIiBmb3JtPSJxdWFsaWZpZWQiIHR5cGU9InN0cmluZyIvPgorCQk8L2NvbXBsZXhUeXBlPgorCTwvZWxlbWVudD4KKyAgCis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc2VxLWR1YmwtZWxlbTFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkzYzhlZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzAueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Zm9vOmZvbyB4bWxuczpmb289Imh0dHA6Ly9GT08iIAorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIAorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL0ZPTyBzZXEtZHVibC1lbGVtMV8wLnhzZCI+CisJPGZvbzpQR1BLZXlJRD5QRWhsYkd4dklIZHZjbXhrSVQ0PTwvZm9vOlBHUEtleUlEPgorCTxmb286UEdQS2V5UGFja2V0PlBFaGxiR3h2SUhkdmNteGtJVDQ9PC9mb286UEdQS2V5UGFja2V0PgorPC9mb286Zm9vPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc2VxLWR1YmwtZWxlbTFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQwNWRhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NlcS1kdWJsLWVsZW0xXzAueHNkCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCisJeG1sbnM6Zm9vPSJodHRwOi8vRk9PIgorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgdmVyc2lvbj0iMC4xIgorCWVsZW1lbnRGb3JtRGVmYXVsdD0icXVhbGlmaWVkIj4KKyAKKyAgPGNvbXBsZXhUeXBlIG5hbWU9ImZvb1R5cGUiPgorICAgIDxjaG9pY2U+CisgICAgICA8c2VxdWVuY2U+CisgICAgICAgIDxlbGVtZW50IG5hbWU9IlBHUEtleUlEIiB0eXBlPSJiYXNlNjRCaW5hcnkiLz4KKyAgICAgICAgPGVsZW1lbnQgbmFtZT0iUEdQS2V5UGFja2V0IiB0eXBlPSJiYXNlNjRCaW5hcnkiIG1pbk9jY3Vycz0iMCIvPgorICAgICAgICA8YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIKK21heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICA8L3NlcXVlbmNlPgorICAgICAgPHNlcXVlbmNlPgorICAgICAgICA8ZWxlbWVudCBuYW1lPSJQR1BLZXlQYWNrZXQiIHR5cGU9ImJhc2U2NEJpbmFyeSIvPgorICAgICAgICA8YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIKK21heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICA8L3NlcXVlbmNlPgorICAgIDwvY2hvaWNlPgorICA8L2NvbXBsZXhUeXBlPgorCisgIDxlbGVtZW50IG5hbWU9ImZvbyIgdHlwZT0iZm9vOmZvb1R5cGUiLz4gICAgIAorIAorPC9zY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc2VxMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NlcTBfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRiMWMxYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NlcTBfMC54bWwKQEAgLTAsMCArMSw2MSBAQAorPGRvYz4KKyAgPCEtLSBhdCBsZWFzdCBvbmUgcHJlc2VudCAtLT4KKyAgPHotbz4KKyAgICA8Yi8+CisgIDwvei1vPgorICA8by1vPgorICAgIDxjLz4KKyAgPC9vLW8+CisgIDx6LXU+CisgICAgPGQvPgorICA8L3otdT4KKyAgPG8tdT4KKyAgICA8ZS8+CisgIDwvby11PgorICA8ei0zPgorICAgIDxmLz4KKyAgPC96LTM+CisgIDxvLTM+CisgICAgPGcvPgorICA8L28tMz4KKyAgPCEtLSBtb3JlIHRoYW4gb25lIHByZXNlbnQgd2hlbiBhbGxvd2VkIC0tPgorICA8ei1vPgorICAgIDxiLz4KKyAgPC96LW8+CisgIDxvLW8+CisgICAgPGMvPgorICA8L28tbz4KKyAgPHotdT4KKyAgICA8ZC8+CisgICAgPGQvPgorICAgIDxkLz4KKyAgPC96LXU+CisgIDxvLXU+CisgICAgPGUvPgorICAgIDxlLz4KKyAgICA8ZS8+CisgIDwvby11PgorICA8ei0zPgorICAgIDxmLz4KKyAgICA8Zi8+CisgICAgPGYvPgorICA8L3otMz4KKyAgPG8tMz4KKyAgICA8Zy8+CisgICAgPGcvPgorICAgIDxnLz4KKyAgPC9vLTM+CisgIDwhLS0gbWluIDAgYXJlIG5vdCBwcmVzZW50IC0tPgorICA8ei1vLz4KKyAgPG8tbz4KKyAgICA8Yy8+CisgIDwvby1vPgorICA8ei11Lz4KKyAgPG8tdT4KKyAgICA8ZS8+CisgIDwvby11PgorICA8ei0zLz4KKyAgPG8tMz4KKyAgICA8Zy8+CisgIDwvby0zPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zZXEwXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc2VxMF8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGQzYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc2VxMF8wLnhzZApAQCAtMCwwICsxLDY0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgorICA8eHNkOmFubm90YXRpb24+CisgICAgPHhzZDpkb2N1bWVudGF0aW9uPgorICAgICAgVGVzdGluZyBtaW4gYW5kIG1heCBvY2N1cmFuY2UgYXR0cmlidXRlcyBvbiBzZXF1ZW5jZXMKKyAgICA8L3hzZDpkb2N1bWVudGF0aW9uPgorICA8L3hzZDphbm5vdGF0aW9uPgorCisgIDx4c2Q6ZWxlbWVudCBuYW1lPSJkb2MiPgorICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICA8eHNkOnNlcXVlbmNlIG1pbk9jY3Vycz0nMCcgbWF4T2NjdXJzPSd1bmJvdW5kZWQnPgorCisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ6LW8iPgorICAgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgICA8eHNkOnNlcXVlbmNlIG1pbk9jY3Vycz0nMCcgbWF4T2NjdXJzPScxJz4KKyAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9J2InLz4KKyAgICAgICAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgICAgICA8L3hzZDplbGVtZW50PgorCisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJvLW8iPgorICAgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgICA8eHNkOnNlcXVlbmNlIG1pbk9jY3Vycz0nMScgbWF4T2NjdXJzPScxJz4KKyAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9J2MnLz4KKyAgICAgICAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgICAgICA8L3hzZDplbGVtZW50PgorCisgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ6LXUiPgorICAgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgICA8eHNkOnNlcXVlbmNlIG1pbk9jY3Vycz0nMCcgbWF4T2NjdXJzPSd1bmJvdW5kZWQnPgorICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0nZCcvPgorICAgICAgICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgICAgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgICAgICAgIDwveHNkOmVsZW1lbnQ+CisKKyAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9Im8tdSI+CisgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDx4c2Q6c2VxdWVuY2UgbWluT2NjdXJzPScxJyBtYXhPY2N1cnM9J3VuYm91bmRlZCc+CisgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSdlJy8+CisgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgPC94c2Q6ZWxlbWVudD4KKworICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iei0zIj4KKyAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgPHhzZDpzZXF1ZW5jZSBtaW5PY2N1cnM9JzAnIG1heE9jY3Vycz0nMyc+CisgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSdmJy8+CisgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgPC94c2Q6ZWxlbWVudD4KKworICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iby0zIj4KKyAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgPHhzZDpzZXF1ZW5jZSBtaW5PY2N1cnM9JzEnIG1heE9jY3Vycz0nMyc+CisgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSdnJy8+CisgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgPC94c2Q6ZWxlbWVudD4KKworICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgIDwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUxXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MGVmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMV8wLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUxXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYThiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMV8wLnhzZApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCEtLSAzLjIuMyA6IDEgCisgICAgZGVmYXVsdCBhbmQgZml4ZWQgbXVzdCBub3QgYm90aCBiZSBwcmVzZW50CistLT4KKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9mb28iIHhtbG5zOmZvbz0iaHR0cDovL2ZvbyI+CisJCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+CisgIAkgIDxjb21wbGV4VHlwZT4KKyAgCSAgCTxhdHRyaWJ1dGUgbmFtZT0iYmFyIiB0eXBlPSJzdHJpbmciIGRlZmF1bHQ9Im1vbyIgZml4ZWQ9InRydWUiLz4KKyAgCSAgPC9jb21wbGV4VHlwZT4gICAgCisgIDwvZWxlbWVudD4gIAorCis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUyXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYwZWZkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUyXzAueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUyXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTJfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEwY2M4MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUyXzAueHNkCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IS0tIDMuMi4zIDogMiAKKyAgICBJZiBkZWZhdWx0IGFuZCB1c2UgYXJlIGJvdGggcHJlc2VudCwgdXNlIG11c3QgaGF2ZSB0aGUgt2FjdHVhbCB2YWx1Zbcgb3B0aW9uYWwKKy0tPgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2ZvbyIgeG1sbnM6Zm9vPSJodHRwOi8vZm9vIj4KKwkKKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4KKyAgCSAgPGNvbXBsZXhUeXBlPgorICAJICAJPGF0dHJpYnV0ZSBuYW1lPSJiYXIiIHR5cGU9InN0cmluZyIgdXNlPSJyZXF1aXJlZCIgZGVmYXVsdD0ibW9vIiAvPgorICAJICA8L2NvbXBsZXhUeXBlPiAgICAKKyAgPC9lbGVtZW50PiAgCisKKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYwZWZkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMC54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhlMDAzYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTFfMC54c2QKQEAgLTAsMCArMSwxNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhLS0gMy4yLjMgOiAzLjEKKyAgICBPbmUgb2YgcmVmIG9yIG5hbWUgbXVzdCBiZSBwcmVzZW50LCBidXQgbm90IGJvdGgKKy0tPgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2ZvbyIgeG1sbnM6Zm9vPSJodHRwOi8vZm9vIj4KKwkKKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4KKyAgCSAgPGNvbXBsZXhUeXBlPgorICAJICAJPGF0dHJpYnV0ZSBuYW1lPSJiYXIiIHJlZj0iZm9vOmJhciIgLz4KKyAgCSAgPC9jb21wbGV4VHlwZT4gICAgCisgIDwvZWxlbWVudD4gIAorICAKKyAgPGF0dHJpYnV0ZSBuYW1lPSJiYXIiIHR5cGU9InN0cmluZyIgLz4KKworPC9zY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYwZWZkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItZm9ybV8wLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlMy0yLWZvcm1fMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM3Y2MyMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItZm9ybV8wLnhzZApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCEtLSAzLjIuMyA6IDMuMgorICAgIElmIHJlZiBpcyBwcmVzZW50LCB0aGVuIGFsbCBvZiA8c2ltcGxlVHlwZT4sIGZvcm0gYW5kIHR5cGUgbXVzdCBiZSBhYnNlbnQKKyAgICBUaGlzIG9uZSB0ZXN0cyAiZm9ybSIKKy0tPgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2ZvbyIgeG1sbnM6Zm9vPSJodHRwOi8vZm9vIj4KKwkKKyAgPGVsZW1lbnQgbmFtZT0iZm9vIj4KKyAgCSAgPGNvbXBsZXhUeXBlPgorICAJICAJPGF0dHJpYnV0ZSByZWY9ImZvbzpiYXIiIGZvcm09InF1YWxpZmllZCIvPiAJICAJCQorICAJICA8L2NvbXBsZXhUeXBlPiAgICAKKyAgPC9lbGVtZW50PiAgCisgIAorICA8YXR0cmlidXRlIG5hbWU9ImJhciIgdHlwZT0ic3RyaW5nIi8+CisKKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi1zdF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYwZWZkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMC54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi1zdF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI1NjM4MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItc3RfMC54c2QKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhLS0gMy4yLjMgOiAzLjIKKyAgICBJZiByZWYgaXMgcHJlc2VudCwgdGhlbiBhbGwgb2YgPHNpbXBsZVR5cGU+LCBmb3JtIGFuZCB0eXBlIG11c3QgYmUgYWJzZW50CisgICAgVGhpcyBvbmUgdGVzdHMgPHNpbXBsZVR5cGU+CistLT4KKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9mb28iIHhtbG5zOmZvbz0iaHR0cDovL2ZvbyI+CisJCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+CisgIAkgIDxjb21wbGV4VHlwZT4KKyAgCSAgCTxhdHRyaWJ1dGUgcmVmPSJmb286YmFyIj4KKyAgCSAgCQk8c2ltcGxlVHlwZT4KKyAgCSAgCQkJPHJlc3RyaWN0aW9uIGJhc2U9InN0cmluZyI+CisgIAkgIAkJCQk8bWF4TGVuZ3RoIHZhbHVlPSIyMCIvPgorICAJICAJCQk8L3Jlc3RyaWN0aW9uPgorICAJICAJCTwvc2ltcGxlVHlwZT4KKyAgCSAgCTwvYXR0cmlidXRlPgorICAJICA8L2NvbXBsZXhUeXBlPiAgICAKKyAgPC9lbGVtZW50PiAgCisgIAorICA8YXR0cmlidXRlIG5hbWU9ImJhciIgdHlwZT0ic3RyaW5nIiAvPgorCis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItdHlwZV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItdHlwZV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjBlZmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi10eXBlXzAueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItdHlwZV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGUzLTItdHlwZV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGYxOTczCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWF0dHJpYnV0ZTMtMi10eXBlXzAueHNkCkBAIC0wLDAgKzEsMTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IS0tIDMuMi4zIDogMy4yCisgICAgSWYgcmVmIGlzIHByZXNlbnQsIHRoZW4gYWxsIG9mIDxzaW1wbGVUeXBlPiwgZm9ybSBhbmQgdHlwZSBtdXN0IGJlIGFic2VudAorICAgIFRoaXMgb25lIHRlc3RzICJ0eXBlIgorLS0+Cis8c2NoZW1hIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vZm9vIiB4bWxuczpmb289Imh0dHA6Ly9mb28iPgorCQorICA8ZWxlbWVudCBuYW1lPSJmb28iPgorICAJICA8Y29tcGxleFR5cGU+CisgIAkgIAk8YXR0cmlidXRlIHJlZj0iZm9vOmJhciIgdHlwZT0ic3RyaW5nIi8+IAkgIAkJCisgIAkgIDwvY29tcGxleFR5cGU+ICAgIAorICA8L2VsZW1lbnQ+ICAKKyAgCisgIDxhdHRyaWJ1dGUgbmFtZT0iYmFyIiB0eXBlPSJzdHJpbmciLz4KKworPC9zY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlNF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGU0XzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MGVmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlNF8wLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlNF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1hdHRyaWJ1dGU0XzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjOWQ4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtYXR0cmlidXRlNF8wLnhzZApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCEtLSAzLjIuMyA6IDMuMgorICAgIHR5cGUgYW5kIDxzaW1wbGVUeXBlPiBtdXN0IG5vdCBib3RoIGJlIHByZXNlbnQKKy0tPgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2ZvbyIgeG1sbnM6Zm9vPSJodHRwOi8vZm9vIj4KKwkKKwk8YXR0cmlidXRlIG5hbWU9ImJhciIgdHlwZT0ic3RyaW5nIj4JCQorCQk8c2ltcGxlVHlwZT4KKyAgCSAgCQk8cmVzdHJpY3Rpb24gYmFzZT0ic3RyaW5nIj4KKyAgCSAgCQkJPG1heExlbmd0aCB2YWx1ZT0iMjAiLz4KKyAgCSAgCQk8L3Jlc3RyaWN0aW9uPgorICAJICAJPC9zaW1wbGVUeXBlPgorCTwvYXR0cmlidXRlPiAgCQorCQorCTxlbGVtZW50IG5hbWU9ImZvbyIvPgorICAKKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MGVmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDFfMC54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQxXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZDhkNTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDFfMC54c2QKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCEtLSAzLjIuMyA6IDEgCisgICAgZGVmYXVsdCBhbmQgZml4ZWQgbXVzdCBub3QgYm90aCBiZSBwcmVzZW50CistLT4KKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9mb28iIHhtbG5zOmZvbz0iaHR0cDovL2ZvbyI+CisJCisJPGVsZW1lbnQgbmFtZT0iZm9vIiB0eXBlPSJzdHJpbmciIGRlZmF1bHQ9IkpvbmkiIGZpeGVkPSJNaXRjaGVsIi8+CSAgICAgIAorCis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0xXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTFfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYwZWZkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0xXzAueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzxmb28geG1sbnM9Imh0dHA6Ly9GT08iLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0xXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQyLTFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFjMmVkZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0xXzAueHNkCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IS0tIDMuMi4zIDogMi4xIAorICAgIE9uZSBvZiByZWYgb3IgbmFtZSBtdXN0IGJlIHByZXNlbnQsIGJ1dCBub3QgYm90aC4KKy0tPgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2ZvbyIgeG1sbnM6Zm9vPSJodHRwOi8vZm9vIj4KKwkKKyAgPGVsZW1lbnQgbmFtZT0iYmFyIiB0eXBlPSJzdHJpbmciLz4JCisJCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+CisgIAkgIDxjb21wbGV4VHlwZT4KKyAgCSAgCTxzZXF1ZW5jZT4KKyAgCSAgCQk8ZWxlbWVudCBuYW1lPSJiYXIiIHJlZj0iZm9vOmJhciIvPgkgICAKKyAgCSAgCTwvc2VxdWVuY2U+CisgIAkgIDwvY29tcGxleFR5cGU+ICAgIAorICA8L2VsZW1lbnQ+ICAKKworPC9zY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MGVmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wLnhtbApAQCAtMCwwICsxLDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3NyYy1lbGVtZW50Mi0yXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MDc0MGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDItMl8wLnhzZApAQCAtMCwwICsxLDQ4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCEtLSAzLjIuMyA6IDIuMiAKKyAgICBJZiByZWYgaXMgcHJlc2VudCwgdGhlbiBhbGwgb2YgPGNvbXBsZXhUeXBlPiwgPHNpbXBsZVR5cGU+LCA8a2V5PiwgPGtleXJlZj4sIDx1bmlxdWU+LCAKKyAgICBuaWxsYWJsZSwgZGVmYXVsdCwgZml4ZWQsIGZvcm0sIGJsb2NrIGFuZCB0eXBlIG11c3QgYmUgYWJzZW50LCBpLmUuIG9ubHkgbWluT2NjdXJzLCBtYXhPY2N1cnMsIAorICAgIGlkIGFyZSBhbGxvd2VkIGluIGFkZGl0aW9uIHRvIHJlZiwgYWxvbmcgd2l0aCA8YW5ub3RhdGlvbj4uCisKKy0tPgorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2ZvbyIgeG1sbnM6Zm9vPSJodHRwOi8vZm9vIj4KKwkKKyAgPGVsZW1lbnQgbmFtZT0iYmFyIiB0eXBlPSJzdHJpbmciLz4JCisJCisgIDxlbGVtZW50IG5hbWU9ImZvbyI+CisgIAkgIDxjb21wbGV4VHlwZT4KKyAgCSAgCTxjaG9pY2U+CisgIAkgIAkKKyAgCSAgCQk8IS0tIFRoZSBnb29kIG9uZXMuIC0tPgorICAJICAJCTxlbGVtZW50IHJlZj0iZm9vOmJhciIgbWluT2NjdXJzPSIwIi8+CisgIAkgIAkJPGVsZW1lbnQgcmVmPSJmb286YmFyIiBtYXhPY2N1cnM9IjAiLz4KKyAgCSAgCQk8ZWxlbWVudCByZWY9ImZvbzpiYXIiIGlkPSJteW9teSIvPgorICAJICAJCQorICAJICAJCTwhLS0gVGhlIGJhZCBvbmVzLiAtLT4KKyAgCSAgCQk8ZWxlbWVudCByZWY9ImZvbzpiYXIiPgorICAJICAJCQk8Y29tcGxleFR5cGU+CisgIAkgIAkJCQk8YXR0cmlidXRlIG5hbWU9ImJhciIgdHlwZT0ic3RyaW5nIi8+CisgIAkgIAkJCTwvY29tcGxleFR5cGU+CisgIAkgIAkJPC9lbGVtZW50PgorICAJICAJCQorICAJICAJCTxlbGVtZW50IHJlZj0iZm9vOmJhciI+CisgIAkgIAkJCTxzaW1wbGVUeXBlPgorICAJICAJCQkJPHJlc3RyaWN0aW9uIGJhc2U9InN0cmluZyI+CisgIAkgIAkJCQkJPG1heExlbmd0aCB2YWx1ZT0iMjAiLz4KKyAgCSAgCQkJCTwvcmVzdHJpY3Rpb24+CisgIAkgIAkJCTwvc2ltcGxlVHlwZT4KKyAgCSAgCQk8L2VsZW1lbnQ+ICAKKyAgCSAgCQkKKyAgCSAgCQk8ZWxlbWVudCByZWY9ImZvbzpiYXIiIHR5cGU9InN0cmluZyIvPgorICAJICAJCTxlbGVtZW50IHJlZj0iZm9vOmJhciIgbmlsbGFibGU9InRydWUiLz4KKyAgCSAgCQk8ZWxlbWVudCByZWY9ImZvbzpiYXIiIGRlZmF1bHQ9IkpvbmkiLz4KKyAgCSAgCQk8ZWxlbWVudCByZWY9ImZvbzpiYXIiIGZpeGVkPSJNaXRjaGVsIi8+CisgIAkgIAkJPGVsZW1lbnQgcmVmPSJmb286YmFyIiBmb3JtPSJ1bnF1YWxpZmllZCIvPgorICAJICAJCTxlbGVtZW50IHJlZj0iZm9vOmJhciIgYmxvY2s9InJlc3RyaWN0aW9uIi8+ICAJICAJCQorICAJICAJCQorICAJICAJPC9jaG9pY2U+CisgIAkgIDwvY29tcGxleFR5cGU+ICAgIAorICA8L2VsZW1lbnQ+ICAKKyAgCisKKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQzXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQzXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MGVmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDNfMC54bWwKQEAgLTAsMCArMSwyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQzXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3JjLWVsZW1lbnQzXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YjY5ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zcmMtZWxlbWVudDNfMC54c2QKQEAgLTAsMCArMSwyOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhLS0gMy4yLjMgOiAzIAorICAgIHR5cGUgYW5kIGVpdGhlciA8c2ltcGxlVHlwZT4gb3IgPGNvbXBsZXhUeXBlPiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlCistLT4KKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9mb28iIHhtbG5zOmZvbz0iaHR0cDovL2ZvbyI+CisJCisJPGVsZW1lbnQgbmFtZT0iZm9vIiB0eXBlPSJmb286c29tZVR5cGUiPgorCQk8Y29tcGxleFR5cGU+CisJCQk8c2VxdWVuY2U+CisJCQkJPGVsZW1lbnQgbmFtZT0iYmFyIiB0eXBlPSJzdHJpbmciLz4JICAgCisJCQk8L3NlcXVlbmNlPgorCQk8L2NvbXBsZXhUeXBlPiAgICAKKwk8L2VsZW1lbnQ+ICAKKwkKKwk8ZWxlbWVudCBuYW1lPSJiYXIiIHR5cGU9ImZvbzpzb21lVHlwZSI+CisJCTxzaW1wbGVUeXBlPgorICAJICAJCTxyZXN0cmljdGlvbiBiYXNlPSJzdHJpbmciPgorICAJICAJCQk8bWF4TGVuZ3RoIHZhbHVlPSIyMCIvPgorICAJICAJCTwvcmVzdHJpY3Rpb24+CisgIAkgIAk8L3NpbXBsZVR5cGU+CisJPC9lbGVtZW50PiAgCisJCisJPGNvbXBsZXhUeXBlIG5hbWU9InNvbWVUeXBlIj4KKwkJPHNlcXVlbmNlPgorCQkJPGVsZW1lbnQgbmFtZT0iYmFyIiB0eXBlPSJzdHJpbmciLz4JICAgCisJCTwvc2VxdWVuY2U+CisJPC9jb21wbGV4VHlwZT4gICAgCisKKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvc3Vic3QtZ3JvdXAtMV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3N1YnN0LWdyb3VwLTFfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWYyMWVlYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3N1YnN0LWdyb3VwLTFfMC54c2QKQEAgLTAsMCArMSw0NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gVGVzdCBmb3IgYnVnICMzNDExNTAgLS0+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgPgorCisgIDwhLS0gVGhpcyBpcyB0aGUgaGVhZCBvZiBvdXIgc3Vic3RpdHV0aW9uIGdyb3VwIGZvciBldmVudHMgdGhhdCBoYXZlIG9ubHkKKyAgICAgICAgc2ltcGxlIGNvbnRlbnQuIC0tPgorICA8eHM6ZWxlbWVudCBuYW1lPSJTaW1wbGVFdmVudCIgdHlwZT0iU2ltcGxlRXZlbnRUeXBlIi8+CisKKyAgPCEtLSBBbGwgU2ltcGxlRXZlbnQgZWxlbWVudHMgaGF2ZSB0aGUgcmVxdWlyZWQgc2V0IG9mIGF0dHJpYnV0ZXMgLS0+CisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJTaW1wbGVFdmVudFR5cGUiPgorICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ4czphbnlTaW1wbGVUeXBlIj4KKyAgICAgIDwveHM6ZXh0ZW5zaW9uPgorICAgIDwveHM6c2ltcGxlQ29udGVudD4KKyAgPC94czpjb21wbGV4VHlwZT4gIAorCisgIDwhLS0gQ29tbW9uIG1lbWJlcnMgb2YgdGhlIFNpbXBsZUV2ZW50IHN1YnN0aXR1dGlvbiBncm91cCAtLT4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iVGVzdEV2ZW50IiBzdWJzdGl0dXRpb25Hcm91cD0iU2ltcGxlRXZlbnQiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzaW1wbGVDb250ZW50PgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0iU2ltcGxlRXZlbnRUeXBlIj4KKyAgICAgICAgICA8eHM6c2ltcGxlVHlwZT4KKyAgICAgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorCisgIDwhLS0gUm9vdCBlbGVtZW50IC0tPgorICA8eHM6ZWxlbWVudCBuYW1lPSJUZXN0Um9vdCIgdHlwZT0iVGVzdFJvb3RUeXBlIi8+CisKKyAgPCEtLSBDb3JlIGRhdGEgdHlwZSBvZiBhbiBhdWRpdCB0cmFpbCAtLT4KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlRlc3RSb290VHlwZSI+CisgICAgPHhzOnNlcXVlbmNlPgorICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXZlbnRzIj4KKyAgICAgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICAgIDx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9IlNpbXBsZUV2ZW50Ii8+CisgICAgICAgICAgPC94czpjaG9pY2U+CisgICAgICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgICA8L3hzOmVsZW1lbnQ+CisgICAgPC94czpzZXF1ZW5jZT4KKyAgPC94czpjb21wbGV4VHlwZT4KKzwveHM6c2NoZW1hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3N1YnN0LWdyb3VwLTFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4N2ZlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy9zdWJzdC1ncm91cC0xXzEueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIFRlc3QgZm9yIGJ1ZyAjMzQxMTUwIC0tPgorPFRlc3RSb290IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgICAgICAgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249InN1YnN0LWdyb3VwLTEueHNkIj4KKyAgICA8RXZlbnRzPgorICAgICAgICA8VGVzdEV2ZW50PlRlc3QgMS48L1Rlc3RFdmVudD4KKyAgICAgICAgPCEtLSBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBlbGVtZW50IHRvIGNhdXNlIGxpYnhtbCdzIHhtbGxpbnQgdG8KKyAgICAgICAgICAgIGZhaWwgdG8gdmFsaWRhdGUuIC0tPgorICAgICAgICA8VGVzdEV2ZW50PlRlc3QgMi48L1Rlc3RFdmVudD4KKyAgICA8L0V2ZW50cz4KKzwvVGVzdFJvb3Q+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3VuaW9uMl8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3VuaW9uMl8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTQ4MDgwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdW5pb24yXzEueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8RUxFTUVOVFMgeG1sbnM9InVybjp0ZXN0OmZvbyIKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICAJeHNpOnNjaGVtYUxvY2F0aW9uPSJ1cm46dGVzdDpmb28gdW5pb25fMS54c2QiPgorCTUKKzwvRUxFTUVOVFM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdW5pb24yXzEueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdW5pb24yXzEueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkODM3MjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy91bmlvbjJfMS54c2QKQEAgLTAsMCArMSwyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHhzZDpzY2hlbWEgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgIHRhcmdldE5hbWVzcGFjZT0idXJuOnRlc3Q6Zm9vIj4KKyAgPHhzZDplbGVtZW50IG5hbWU9IkVMRU1FTlRTIj4KKyAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICA8eHNkOnVuaW9uPgorICAgICAgICA8eHNkOnNpbXBsZVR5cGU+CisgICAgICAgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6aW50Ij4KKyAgICAgICAgICAgIDx4c2Q6bWluSW5jbHVzaXZlIHZhbHVlPSIxMCIvPgorICAgICAgICAgICAgPHhzZDptYXhJbmNsdXNpdmUgdmFsdWU9IjIwIi8+CisgICAgICAgICAgPC94c2Q6cmVzdHJpY3Rpb24+CisgICAgICAgIDwveHNkOnNpbXBsZVR5cGU+CisgICAgICAgIDx4c2Q6c2ltcGxlVHlwZT4KKyAgICAgICAgICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDppbnQiPgorICAgICAgICAgICAgPHhzZDptaW5JbmNsdXNpdmUgdmFsdWU9IjMwIi8+CisgICAgICAgICAgICA8eHNkOm1heEluY2x1c2l2ZSB2YWx1ZT0iNDAiLz4KKyAgICAgICAgICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgICAgICAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgICAgIDwveHNkOnVuaW9uPgorICAgIDwveHNkOnNpbXBsZVR5cGU+CisgIDwveHNkOmVsZW1lbnQ+Cis8L3hzZDpzY2hlbWE+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdW5pb25fMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3VuaW9uXzBfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE0Nzc2MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3VuaW9uXzBfMC54bWwKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8Zm9vIHhtbG5zPSJodHRwOi8vZm9vIiAKKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiAKKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9mb28gdW5pb25fMF8wLnhzZCI+CisgICAgICA8ZW0+RU1QMDA5MDwvZW0+CisgICAgICA8ZW0+RU1QMDA5OTwvZW0+Cis8L2Zvbz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdW5pb25fMF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3VuaW9uXzBfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNlOTNkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3VuaW9uXzBfMC54c2QKQEAgLTAsMCArMSw1MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIAorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2ZvbyIKKwl4bWxucz0iaHR0cDovL2ZvbyIKKwl4bWxuczphPSJodHRwOi8vZm9vIj4KKwkKKyAgPHhzZDplbGVtZW50IG5hbWU9ImZvbyI+CisgIAkgIDx4c2Q6Y29tcGxleFR5cGU+CisgIAkgIAk8eHNkOnNlcXVlbmNlPiAgCisgIAkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJlbSIgCisJCQkJdHlwZT0iZW1UeXBlIiAKKwkJCQltYXhPY2N1cnM9InVuYm91bmRlZCIKKwkJCQlmb3JtPSJxdWFsaWZpZWQiLz4JICAJCisgIAkJPC94c2Q6c2VxdWVuY2U+CisgIAkgIDwveHNkOmNvbXBsZXhUeXBlPiAgICAKKyAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICAKKyAgPHhzZDpzaW1wbGVUeXBlIG5hbWU9ImVtcDAwMDFfM1R5cGUiPgorICAJICA8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpJRCI+CisgIAkgIAkgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9IkVNUDAwNDAiLz4gIAkgIAkgIAorICAJICAJICA8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJFTVAwMDAzIi8+CisgIAkgIAkgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9IkVNUDAwMDQiLz4KKyAgCSAgCSAgPHhzZDplbnVtZXJhdGlvbiB2YWx1ZT0iRU1QMDAwNSIvPgorICAJICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgCisgIDx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJlbXAwMDA0XzVUeXBlIj4KKyAgCSAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ4c2Q6SUQiPgorICAJICA8eHNkOmVudW1lcmF0aW9uIHZhbHVlPSJFTVAwMDAyIi8+CisgIAkgIAkgIDx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9IkVNUDAwOTAiLz4KKyAgCSAgCSAgPHhzZDplbnVtZXJhdGlvbiB2YWx1ZT0iRU1QMDAwNyIvPgorICAJICA8L3hzZDpyZXN0cmljdGlvbj4KKyAgPC94c2Q6c2ltcGxlVHlwZT4KKyAgCisgIDx4c2Q6c2ltcGxlVHlwZSBuYW1lPSJ1bmJvdW5kZWRFbVR5cGUiPgorICAJCTx4c2Q6dW5pb24gbWVtYmVyVHlwZXM9ImE6ZW1wMDAwMV8zVHlwZSBlbXAwMDA0XzVUeXBlIj4KKyAgCQkJPHhzZDpzaW1wbGVUeXBlPgorICAJICAJCQk8eHNkOnJlc3RyaWN0aW9uIGJhc2U9InhzZDpJRCI+CisgIAkgIAkgIAkJCTx4c2Q6ZW51bWVyYXRpb24gdmFsdWU9IkVNUDAwOTkiLz4gIAkgIAkgIAorICAJICAJCQk8L3hzZDpyZXN0cmljdGlvbj4KKyAgCQkJPC94c2Q6c2ltcGxlVHlwZT4JCQorICAJCTwveHNkOnVuaW9uPgorICA8L3hzZDpzaW1wbGVUeXBlPgorICAKKyAgPHhzZDpzaW1wbGVUeXBlIG5hbWU9ImVtVHlwZSI+CisgIAkgICAgPHhzZDpyZXN0cmljdGlvbiBiYXNlPSJ1bmJvdW5kZWRFbVR5cGUiPgorICAJICAgIAk8eHNkOnBhdHRlcm4gdmFsdWU9IkVNUFswLTldKiIvPgorICAJICAgIDwveHNkOnJlc3RyaWN0aW9uPgorICA8L3hzZDpzaW1wbGVUeXBlPgorICAKKyAgCisKKzwveHNkOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1jb21wbGV4VHlwZXMueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWNvbXBsZXhUeXBlcy54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q0MGZiOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1jb21wbGV4VHlwZXMueHNkCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvaG9tZS9jdnNyb290L3czYy14bWwtc2NoZW1hL3VzZXIvZXhhbXBsZXMvY29tcGxleFR5cGVzLnhzZCx2IDEuMSAyMDAxLzExLzI2IDEzOjI3OjA3IHZkdiBFeHAgJCAtLT4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorDQorDQorCTx4czpjb21wbGV4VHlwZSBuYW1lPSJlbGVtZW50V2l0aElEIj4NCisJCQkJCTx4czphdHRyaWJ1dGUgcmVmPSJpZCIvPg0KKwk8L3hzOmNvbXBsZXhUeXBlPg0KKwkJCQkJPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImJvb2tUbXAiPg0KKwkJCQkJCQkJCTx4czpjb21wbGV4Q29udGVudD4NCisJCQkJCQkJCQkJCQkJPHhzOmV4dGVuc2lvbiBiYXNlPSJlbGVtZW50V2l0aElEIj4NCisJCQk8eHM6c2VxdWVuY2U+DQorCQkJCTx4czplbGVtZW50IHJlZj0iaXNibiIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9InRpdGxlIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iYXV0aG9yIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iY2hhcmFjdGVyIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQorCQkJPC94czpzZXF1ZW5jZT4NCisJCQk8eHM6YXR0cmlidXRlIHJlZj0iYXZhaWxhYmxlIi8+DQorCQkJCQkJCQkJCQkJCTwveHM6ZXh0ZW5zaW9uPg0KKwkJCQkJCQkJCTwveHM6Y29tcGxleENvbnRlbnQ+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwkNCisJPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBlcnNvblR5cGUiPg0KKwkJCQkJPHhzOmNvbXBsZXhDb250ZW50Pg0KKwkJCQkJCQkJCTx4czpleHRlbnNpb24gYmFzZT0iZWxlbWVudFdpdGhJRCI+DQorCQkJPHhzOnNlcXVlbmNlPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9Im5hbWUiLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJib3JuIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iZGVhZCIgbWluT2NjdXJzPSIwIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0icXVhbGlmaWNhdGlvbiIgIG1pbk9jY3Vycz0iMCIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQkJCQkJCQkJPC94czpleHRlbnNpb24+DQorCQkJCQk8L3hzOmNvbXBsZXhDb250ZW50Pg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJCQ0KKwkNCis8L3hzOnNjaGVtYT4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QwXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0MF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTJiY2FkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0MF8wLnhtbApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0gJEhlYWRlcjogL2hvbWUvY3Zzcm9vdC93M2MteG1sLXNjaGVtYS91c2VyL2V4YW1wbGVzL2ZpcnN0LnhtbCx2IDEuMiAyMDAxLzExLzAxIDIyOjAzOjA2IHZkdiBFeHAgJCAtLT4NCis8bGlicmFyeT4NCisJPGJvb2sgaWQ9ImIwODM2MjE3NDYyIiBhdmFpbGFibGU9InRydWUiPg0KKwkJPGlzYm4+MDgzNjIxNzQ2MjwvaXNibj4NCisJCTx0aXRsZSBsYW5nPSJlbiI+QmVpbmcgYSBEb2cgSXMgYSBGdWxsLVRpbWUgSm9iPC90aXRsZT4NCisJCTxhdXRob3IgaWQ9IkNNUyI+DQorCQkJPG5hbWU+Q2hhcmxlcyBNIFNjaHVsejwvbmFtZT4NCisJCQk8Ym9ybj4xOTIyLTExLTI2PC9ib3JuPg0KKwkJCTxkZWFkPjIwMDAtMDItMTI8L2RlYWQ+DQorCQk8L2F1dGhvcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlBQIj4NCisJCQk8bmFtZT5QZXBwZXJtaW50IFBhdHR5PC9uYW1lPg0KKwkJCTxib3JuPjE5NjYtMDgtMjI8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+Ym9sZCwgYnJhc2ggYW5kIHRvbWJveWlzaDwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwkJPGNoYXJhY3RlciBpZD0iU25vb3B5Ij4NCisJCQk8bmFtZT5Tbm9vcHk8L25hbWU+DQorCQkJPGJvcm4+MTk1MC0xMC0wNDwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5leHRyb3ZlcnRlZCBiZWFnbGU8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlNjaHJvZWRlciI+DQorCQkJPG5hbWU+U2Nocm9lZGVyPC9uYW1lPg0KKwkJCTxib3JuPjE5NTEtMDUtMzA8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+YnJvdWdodCBjbGFzc2ljYWwgbXVzaWMgdG8gdGhlIFBlYW51dHMgc3RyaXA8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9Ikx1Y3kiPg0KKwkJCTxuYW1lPkx1Y3k8L25hbWU+DQorCQkJPGJvcm4+MTk1Mi0wMy0wMzwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5ib3NzeSwgY3JhYmJ5IGFuZCBzZWxmaXNoPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCTwvYm9vaz4NCis8L2xpYnJhcnk+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0MF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDBfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU4YmVkMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDBfMC54c2QKQEAgLTAsMCArMSw2NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorDQorCTx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InhzOnN0cmluZyIvPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJxdWFsaWZpY2F0aW9uIiB0eXBlPSJ4czpzdHJpbmciLz4NCisJPHhzOmVsZW1lbnQgbmFtZT0iYm9ybiIgdHlwZT0ieHM6ZGF0ZSIvPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJkZWFkIiB0eXBlPSJ4czpkYXRlIi8+DQorCTx4czplbGVtZW50IG5hbWU9ImlzYm4iIHR5cGU9InhzOmludGVnZXIiLz4NCisJDQorCTx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InhzOklEIi8+DQorCTx4czphdHRyaWJ1dGUgbmFtZT0iYXZhaWxhYmxlIiB0eXBlPSJ4czpib29sZWFuIi8+DQorCTx4czphdHRyaWJ1dGUgbmFtZT0ibGFuZyIgdHlwZT0ieHM6bGFuZ3VhZ2UiLz4NCisJDQorCTx4czplbGVtZW50IG5hbWU9InRpdGxlIj4NCisJCTx4czpjb21wbGV4VHlwZT4NCisJCQk8eHM6c2ltcGxlQ29udGVudD4NCisJCQkJPHhzOmV4dGVuc2lvbiBiYXNlPSJ4czpzdHJpbmciPg0KKwkJCQkJPHhzOmF0dHJpYnV0ZSByZWY9ImxhbmciLz4NCisJCQkJPC94czpleHRlbnNpb24+DQorCQkJPC94czpzaW1wbGVDb250ZW50Pg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJPC94czplbGVtZW50Pg0KKwkNCisJPHhzOmVsZW1lbnQgbmFtZT0ibGlicmFyeSI+DQorCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJPHhzOnNlcXVlbmNlPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImJvb2siIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQorCQkJPC94czpzZXF1ZW5jZT4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisJDQorCTx4czplbGVtZW50IG5hbWU9ImF1dGhvciI+DQorCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJPHhzOnNlcXVlbmNlPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9Im5hbWUiLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJib3JuIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iZGVhZCIgbWluT2NjdXJzPSIwIi8+DQorCQkJPC94czpzZXF1ZW5jZT4NCisJCQk8eHM6YXR0cmlidXRlIHJlZj0iaWQiLz4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisJDQorCTx4czplbGVtZW50IG5hbWU9ImJvb2siPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJpc2JuIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0idGl0bGUiLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJhdXRob3IiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJjaGFyYWN0ZXIiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCisJCQk8L3hzOnNlcXVlbmNlPg0KKwkJCTx4czphdHRyaWJ1dGUgcmVmPSJpZCIvPg0KKwkJCTx4czphdHRyaWJ1dGUgcmVmPSJhdmFpbGFibGUiLz4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisJDQorCTx4czplbGVtZW50IG5hbWU9ImNoYXJhY3RlciI+DQorCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJPHhzOnNlcXVlbmNlPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9Im5hbWUiLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJib3JuIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0icXVhbGlmaWNhdGlvbiIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQkJPHhzOmF0dHJpYnV0ZSByZWY9ImlkIi8+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorCQ0KKzwveHM6c2NoZW1hPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QxXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMmJjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QxXzAueG1sCkBAIC0wLDAgKzEsMzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvaG9tZS9jdnNyb290L3czYy14bWwtc2NoZW1hL3VzZXIvZXhhbXBsZXMvZmlyc3QueG1sLHYgMS4yIDIwMDEvMTEvMDEgMjI6MDM6MDYgdmR2IEV4cCAkIC0tPg0KKzxsaWJyYXJ5Pg0KKwk8Ym9vayBpZD0iYjA4MzYyMTc0NjIiIGF2YWlsYWJsZT0idHJ1ZSI+DQorCQk8aXNibj4wODM2MjE3NDYyPC9pc2JuPg0KKwkJPHRpdGxlIGxhbmc9ImVuIj5CZWluZyBhIERvZyBJcyBhIEZ1bGwtVGltZSBKb2I8L3RpdGxlPg0KKwkJPGF1dGhvciBpZD0iQ01TIj4NCisJCQk8bmFtZT5DaGFybGVzIE0gU2NodWx6PC9uYW1lPg0KKwkJCTxib3JuPjE5MjItMTEtMjY8L2Jvcm4+DQorCQkJPGRlYWQ+MjAwMC0wMi0xMjwvZGVhZD4NCisJCTwvYXV0aG9yPg0KKwkJPGNoYXJhY3RlciBpZD0iUFAiPg0KKwkJCTxuYW1lPlBlcHBlcm1pbnQgUGF0dHk8L25hbWU+DQorCQkJPGJvcm4+MTk2Ni0wOC0yMjwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5ib2xkLCBicmFzaCBhbmQgdG9tYm95aXNoPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJTbm9vcHkiPg0KKwkJCTxuYW1lPlNub29weTwvbmFtZT4NCisJCQk8Ym9ybj4xOTUwLTEwLTA0PC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmV4dHJvdmVydGVkIGJlYWdsZTwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwkJPGNoYXJhY3RlciBpZD0iU2Nocm9lZGVyIj4NCisJCQk8bmFtZT5TY2hyb2VkZXI8L25hbWU+DQorCQkJPGJvcm4+MTk1MS0wNS0zMDwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5icm91Z2h0IGNsYXNzaWNhbCBtdXNpYyB0byB0aGUgUGVhbnV0cyBzdHJpcDwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwkJPGNoYXJhY3RlciBpZD0iTHVjeSI+DQorCQkJPG5hbWU+THVjeTwvbmFtZT4NCisJCQk8Ym9ybj4xOTUyLTAzLTAzPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJvc3N5LCBjcmFiYnkgYW5kIHNlbGZpc2g8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJPC9ib29rPg0KKzwvbGlicmFyeT4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QxXzAueHNkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0MV8wLnhzZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGQ2ZjI3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0MV8wLnhzZApAQCAtMCwwICsxLDQ3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCisgPHhzOmVsZW1lbnQgbmFtZT0ibGlicmFyeSI+DQorICA8eHM6Y29tcGxleFR5cGU+DQorICAgPHhzOnNlcXVlbmNlPg0KKyAgICA8eHM6ZWxlbWVudCBuYW1lPSJib29rIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorICAgICA8eHM6Y29tcGxleFR5cGU+DQorICAgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJpc2JuIiB0eXBlPSJ4czppbnRlZ2VyIi8+DQorICAgICAgIDx4czplbGVtZW50IG5hbWU9InRpdGxlIj4NCisgICAgICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICAgICA8eHM6c2ltcGxlQ29udGVudD4NCisgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJ4czpzdHJpbmciPg0KKyAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJsYW5nIiB0eXBlPSJ4czpsYW5ndWFnZSIvPg0KKyAgICAgICAgICA8L3hzOmV4dGVuc2lvbj4NCisgICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+DQorICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAgICAgICA8L3hzOmVsZW1lbnQ+DQorICAgICAgIDx4czplbGVtZW50IG5hbWU9ImF1dGhvciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQorICAgICAgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4NCisgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYm9ybiIgdHlwZT0ieHM6ZGF0ZSIvPg0KKyAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkZWFkIiB0eXBlPSJ4czpkYXRlIi8+DQorICAgICAgICAgPC94czpzZXF1ZW5jZT4NCisgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpJRCIvPg0KKyAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCisgICAgICAgPC94czplbGVtZW50Pg0KKyAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJjaGFyYWN0ZXIiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKyAgICAgICAgPHhzOmNvbXBsZXhUeXBlPg0KKyAgICAgICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+DQorICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImJvcm4iIHR5cGU9InhzOmRhdGUiLz4NCisgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icXVhbGlmaWNhdGlvbiIgdHlwZT0ieHM6c3RyaW5nIi8+DQorICAgICAgICAgPC94czpzZXF1ZW5jZT4NCisgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpJRCIvPg0KKyAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCisgICAgICAgPC94czplbGVtZW50Pg0KKyAgICAgIDwveHM6c2VxdWVuY2U+DQorICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6SUQiLz4NCisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImF2YWlsYWJsZSIgdHlwZT0ieHM6Ym9vbGVhbiIvPg0KKyAgICAgPC94czpjb21wbGV4VHlwZT4NCisgICAgPC94czplbGVtZW50Pg0KKyAgIDwveHM6c2VxdWVuY2U+DQorICA8L3hzOmNvbXBsZXhUeXBlPg0KKyA8L3hzOmVsZW1lbnQ+DQorPC94czpzY2hlbWE+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0Ml8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTEyYmNhZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDJfMC54bWwKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8IS0tICRIZWFkZXI6IC9ob21lL2N2c3Jvb3QvdzNjLXhtbC1zY2hlbWEvdXNlci9leGFtcGxlcy9maXJzdC54bWwsdiAxLjIgMjAwMS8xMS8wMSAyMjowMzowNiB2ZHYgRXhwICQgLS0+DQorPGxpYnJhcnk+DQorCTxib29rIGlkPSJiMDgzNjIxNzQ2MiIgYXZhaWxhYmxlPSJ0cnVlIj4NCisJCTxpc2JuPjA4MzYyMTc0NjI8L2lzYm4+DQorCQk8dGl0bGUgbGFuZz0iZW4iPkJlaW5nIGEgRG9nIElzIGEgRnVsbC1UaW1lIEpvYjwvdGl0bGU+DQorCQk8YXV0aG9yIGlkPSJDTVMiPg0KKwkJCTxuYW1lPkNoYXJsZXMgTSBTY2h1bHo8L25hbWU+DQorCQkJPGJvcm4+MTkyMi0xMS0yNjwvYm9ybj4NCisJCQk8ZGVhZD4yMDAwLTAyLTEyPC9kZWFkPg0KKwkJPC9hdXRob3I+DQorCQk8Y2hhcmFjdGVyIGlkPSJQUCI+DQorCQkJPG5hbWU+UGVwcGVybWludCBQYXR0eTwvbmFtZT4NCisJCQk8Ym9ybj4xOTY2LTA4LTIyPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJvbGQsIGJyYXNoIGFuZCB0b21ib3lpc2g8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlNub29weSI+DQorCQkJPG5hbWU+U25vb3B5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTAtMTAtMDQ8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+ZXh0cm92ZXJ0ZWQgYmVhZ2xlPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJTY2hyb2VkZXIiPg0KKwkJCTxuYW1lPlNjaHJvZWRlcjwvbmFtZT4NCisJCQk8Ym9ybj4xOTUxLTA1LTMwPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJyb3VnaHQgY2xhc3NpY2FsIG11c2ljIHRvIHRoZSBQZWFudXRzIHN0cmlwPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJMdWN5Ij4NCisJCQk8bmFtZT5MdWN5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTItMDMtMDM8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+Ym9zc3ksIGNyYWJieSBhbmQgc2VsZmlzaDwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwk8L2Jvb2s+DQorPC9saWJyYXJ5Pg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDJfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QyXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NjhlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QyXzAueHNkCkBAIC0wLDAgKzEsODkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvaG9tZS9jdnNyb290L3czYy14bWwtc2NoZW1hL3VzZXIvZXhhbXBsZXMvZmlyc3QtdXNlci1kdC54c2QsdiAxLjEgMjAwMS8xMS8wMSAxMjoyNzo0NyB2ZHYgRXhwICQgLS0+DQorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPg0KKw0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJzdHJpbmcyNTUiPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnRva2VuIj4NCisJCQk8eHM6bWF4TGVuZ3RoIHZhbHVlPSIyNTUiLz4NCisJCTwveHM6cmVzdHJpY3Rpb24+DQorCTwveHM6c2ltcGxlVHlwZT4NCisJPHhzOnNpbXBsZVR5cGUgbmFtZT0ic3RyaW5nMzIiPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnRva2VuIj4NCisJCQk8eHM6bWF4TGVuZ3RoIHZhbHVlPSIzMiIvPg0KKwkJPC94czpyZXN0cmljdGlvbj4NCisJPC94czpzaW1wbGVUeXBlPg0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJpc2JuIj4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp1bnNpZ25lZExvbmciPg0KKwkJCTx4czp0b3RhbERpZ2l0cyB2YWx1ZT0iMTAiLz4NCisJCTwveHM6cmVzdHJpY3Rpb24+DQorCTwveHM6c2ltcGxlVHlwZT4NCisJPHhzOnNpbXBsZVR5cGUgbmFtZT0ic3VwcG9ydGVkTGFuZ3VhZ2VzIj4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpsYW5ndWFnZSI+DQorCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJlbiIvPg0KKwkJCTx4czplbnVtZXJhdGlvbiB2YWx1ZT0iZXMiLz4NCisJCTwveHM6cmVzdHJpY3Rpb24+DQorCTwveHM6c2ltcGxlVHlwZT4NCisJPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ic3RyaW5nMzIiLz4NCisJPHhzOmVsZW1lbnQgbmFtZT0icXVhbGlmaWNhdGlvbiIgdHlwZT0ic3RyaW5nMjU1Ii8+DQorCTx4czplbGVtZW50IG5hbWU9ImJvcm4iIHR5cGU9InhzOmRhdGUiLz4NCisJPHhzOmVsZW1lbnQgbmFtZT0iZGVhZCIgdHlwZT0ieHM6ZGF0ZSIvPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJpc2JuIiB0eXBlPSJpc2JuIi8+DQorCQ0KKwk8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpJRCIvPg0KKwk8eHM6YXR0cmlidXRlIG5hbWU9ImF2YWlsYWJsZSIgdHlwZT0ieHM6Ym9vbGVhbiIvPg0KKwk8eHM6YXR0cmlidXRlIG5hbWU9ImxhbmciIHR5cGU9InN1cHBvcnRlZExhbmd1YWdlcyIvPg0KKwkNCisJPHhzOmVsZW1lbnQgbmFtZT0idGl0bGUiPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzaW1wbGVDb250ZW50Pg0KKwkJCQk8eHM6ZXh0ZW5zaW9uIGJhc2U9InN0cmluZzI1NSI+DQorCQkJCQk8eHM6YXR0cmlidXRlIHJlZj0ibGFuZyIvPg0KKwkJCQk8L3hzOmV4dGVuc2lvbj4NCisJCQk8L3hzOnNpbXBsZUNvbnRlbnQ+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorCQ0KKwk8eHM6ZWxlbWVudCBuYW1lPSJsaWJyYXJ5Ij4NCisJCTx4czpjb21wbGV4VHlwZT4NCisJCQk8eHM6c2VxdWVuY2U+DQorCQkJCTx4czplbGVtZW50IHJlZj0iYm9vayIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCisJCQk8L3hzOnNlcXVlbmNlPg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJPC94czplbGVtZW50Pg0KKwkNCisJPHhzOmVsZW1lbnQgbmFtZT0iYXV0aG9yIj4NCisJCTx4czpjb21wbGV4VHlwZT4NCisJCQk8eHM6c2VxdWVuY2U+DQorCQkJCTx4czplbGVtZW50IHJlZj0ibmFtZSIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImJvcm4iLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJkZWFkIiBtaW5PY2N1cnM9IjAiLz4NCisJCQk8L3hzOnNlcXVlbmNlPg0KKwkJCTx4czphdHRyaWJ1dGUgcmVmPSJpZCIvPg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJPC94czplbGVtZW50Pg0KKwkNCisJPHhzOmVsZW1lbnQgbmFtZT0iYm9vayI+DQorCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJPHhzOnNlcXVlbmNlPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImlzYm4iLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJ0aXRsZSIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImF1dGhvciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImNoYXJhY3RlciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQkJPHhzOmF0dHJpYnV0ZSByZWY9ImlkIi8+DQorCQkJPHhzOmF0dHJpYnV0ZSByZWY9ImF2YWlsYWJsZSIvPg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJPC94czplbGVtZW50Pg0KKwkNCisJPHhzOmVsZW1lbnQgbmFtZT0iY2hhcmFjdGVyIj4NCisJCTx4czpjb21wbGV4VHlwZT4NCisJCQk8eHM6c2VxdWVuY2U+DQorCQkJCTx4czplbGVtZW50IHJlZj0ibmFtZSIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImJvcm4iLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJxdWFsaWZpY2F0aW9uIi8+DQorCQkJPC94czpzZXF1ZW5jZT4NCisJCQk8eHM6YXR0cmlidXRlIHJlZj0iaWQiLz4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisJDQorPC94czpzY2hlbWE+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0M18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTEyYmNhZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDNfMC54bWwKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8IS0tICRIZWFkZXI6IC9ob21lL2N2c3Jvb3QvdzNjLXhtbC1zY2hlbWEvdXNlci9leGFtcGxlcy9maXJzdC54bWwsdiAxLjIgMjAwMS8xMS8wMSAyMjowMzowNiB2ZHYgRXhwICQgLS0+DQorPGxpYnJhcnk+DQorCTxib29rIGlkPSJiMDgzNjIxNzQ2MiIgYXZhaWxhYmxlPSJ0cnVlIj4NCisJCTxpc2JuPjA4MzYyMTc0NjI8L2lzYm4+DQorCQk8dGl0bGUgbGFuZz0iZW4iPkJlaW5nIGEgRG9nIElzIGEgRnVsbC1UaW1lIEpvYjwvdGl0bGU+DQorCQk8YXV0aG9yIGlkPSJDTVMiPg0KKwkJCTxuYW1lPkNoYXJsZXMgTSBTY2h1bHo8L25hbWU+DQorCQkJPGJvcm4+MTkyMi0xMS0yNjwvYm9ybj4NCisJCQk8ZGVhZD4yMDAwLTAyLTEyPC9kZWFkPg0KKwkJPC9hdXRob3I+DQorCQk8Y2hhcmFjdGVyIGlkPSJQUCI+DQorCQkJPG5hbWU+UGVwcGVybWludCBQYXR0eTwvbmFtZT4NCisJCQk8Ym9ybj4xOTY2LTA4LTIyPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJvbGQsIGJyYXNoIGFuZCB0b21ib3lpc2g8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlNub29weSI+DQorCQkJPG5hbWU+U25vb3B5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTAtMTAtMDQ8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+ZXh0cm92ZXJ0ZWQgYmVhZ2xlPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJTY2hyb2VkZXIiPg0KKwkJCTxuYW1lPlNjaHJvZWRlcjwvbmFtZT4NCisJCQk8Ym9ybj4xOTUxLTA1LTMwPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJyb3VnaHQgY2xhc3NpY2FsIG11c2ljIHRvIHRoZSBQZWFudXRzIHN0cmlwPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJMdWN5Ij4NCisJCQk8bmFtZT5MdWN5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTItMDMtMDM8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+Ym9zc3ksIGNyYWJieSBhbmQgc2VsZmlzaDwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwk8L2Jvb2s+DQorPC9saWJyYXJ5Pg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDNfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QzXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4YjE0NTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QzXzAueHNkCkBAIC0wLDAgKzEsNjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvaG9tZS9jdnNyb290L3czYy14bWwtc2NoZW1hL3VzZXIvZXhhbXBsZXMvZmlyc3QtdG9rZW4ueHNkLHYgMS4yIDIwMDEvMTEvMDEgMTI6Mjc6NDcgdmR2IEV4cCAkIC0tPg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCisNCisJPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ieHM6dG9rZW4iLz4NCisJPHhzOmVsZW1lbnQgbmFtZT0icXVhbGlmaWNhdGlvbiIgdHlwZT0ieHM6dG9rZW4iLz4NCisJPHhzOmVsZW1lbnQgbmFtZT0iYm9ybiIgdHlwZT0ieHM6ZGF0ZSIvPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJkZWFkIiB0eXBlPSJ4czpkYXRlIi8+DQorCTx4czplbGVtZW50IG5hbWU9ImlzYm4iIHR5cGU9InhzOnVuc2lnbmVkTG9uZyIvPg0KKwkNCisJPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6SUQiLz4NCisJPHhzOmF0dHJpYnV0ZSBuYW1lPSJhdmFpbGFibGUiIHR5cGU9InhzOmJvb2xlYW4iLz4NCisJPHhzOmF0dHJpYnV0ZSBuYW1lPSJsYW5nIiB0eXBlPSJ4czpsYW5ndWFnZSIvPg0KKwkNCisJPHhzOmVsZW1lbnQgbmFtZT0idGl0bGUiPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzaW1wbGVDb250ZW50Pg0KKwkJCQk8eHM6ZXh0ZW5zaW9uIGJhc2U9InhzOnRva2VuIj4NCisJCQkJCTx4czphdHRyaWJ1dGUgcmVmPSJsYW5nIi8+DQorCQkJCTwveHM6ZXh0ZW5zaW9uPg0KKwkJCTwveHM6c2ltcGxlQ29udGVudD4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisJDQorCTx4czplbGVtZW50IG5hbWU9ImxpYnJhcnkiPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJib29rIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorCQ0KKwk8eHM6ZWxlbWVudCBuYW1lPSJhdXRob3IiPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJuYW1lIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iYm9ybiIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImRlYWQiIG1pbk9jY3Vycz0iMCIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQkJPHhzOmF0dHJpYnV0ZSByZWY9ImlkIi8+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorCQ0KKwk8eHM6ZWxlbWVudCBuYW1lPSJib29rIj4NCisJCTx4czpjb21wbGV4VHlwZT4NCisJCQk8eHM6c2VxdWVuY2U+DQorCQkJCTx4czplbGVtZW50IHJlZj0iaXNibiIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9InRpdGxlIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iYXV0aG9yIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iY2hhcmFjdGVyIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQorCQkJPC94czpzZXF1ZW5jZT4NCisJCQk8eHM6YXR0cmlidXRlIHJlZj0iaWQiLz4NCisJCQk8eHM6YXR0cmlidXRlIHJlZj0iYXZhaWxhYmxlIi8+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorCQ0KKwk8eHM6ZWxlbWVudCBuYW1lPSJjaGFyYWN0ZXIiPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJuYW1lIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iYm9ybiIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9InF1YWxpZmljYXRpb24iLz4NCisJCQk8L3hzOnNlcXVlbmNlPg0KKwkJCTx4czphdHRyaWJ1dGUgcmVmPSJpZCIvPg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJPC94czplbGVtZW50Pg0KKwkNCis8L3hzOnNjaGVtYT4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0NF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjJkN2UyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0NF8wLnhtbApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0gJEhlYWRlcjogL2N2cy9nbm9tZS9nbm9tZS14bWwvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDNfMC54bWwsdiAxLjEgMjAwMy8xMS8yMiAyMDozNzo1MSB2ZWlsbGFyZCBFeHAgJCAtLT4NCis8bGlicmFyeT4NCisJPGJvb2sgaWQ9ImIwODM2MjE3NDYyIiBhdmFpbGFibGU9InRydWUiPg0KKwkJPGlzYm4+MDgzNjIxNzQ2MjwvaXNibj4NCisJCTx0aXRsZSBsYW5nPSJlbiI+QmVpbmcgYSBEb2cgSXMgYSBGdWxsLVRpbWUgSm9iPC90aXRsZT4NCisJCTxhdXRob3IgaWQ9IkNNUyI+DQorCQkJPG5hbWU+Q2hhcmxlcyBNIFNjaHVsejwvbmFtZT4NCisJCQk8Ym9ybj4xOTIyLTExLTI2PC9ib3JuPg0KKwkJCTxkZWFkPjIwMDAtMDItMTI8L2RlYWQ+DQorCQk8L2F1dGhvcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlBQIj4NCisJCQk8bmFtZT5QZXBwZXJtaW50IFBhdHR5PC9uYW1lPg0KKwkJCTxib3JuPjE5NjYtMDgtMjI8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+Ym9sZCwgYnJhc2ggYW5kIHRvbWJveWlzaDwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwkJPGNoYXJhY3RlciBpZD0iU25vb3B5Ij4NCisJCQk8bmFtZT5Tbm9vcHk8L25hbWU+DQorCQkJPGJvcm4+MTk1MC0xMC0wNDwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5leHRyb3ZlcnRlZCBiZWFnbGU8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlNjaHJvZWRlciI+DQorCQkJPG5hbWU+U2Nocm9lZGVyPC9uYW1lPg0KKwkJCTxib3JuPjE5NTEtMDUtMzA8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+YnJvdWdodCBjbGFzc2ljYWwgbXVzaWMgdG8gdGhlIFBlYW51dHMgc3RyaXA8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9Ikx1Y3kiPg0KKwkJCTxuYW1lPkx1Y3k8L25hbWU+DQorCQkJPGJvcm4+MTk1Mi0wMy0wMzwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5ib3NzeSwgY3JhYmJ5IGFuZCBzZWxmaXNoPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCTwvYm9vaz4NCis8L2xpYnJhcnk+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0NF8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDRfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWU4ZTIzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDRfMC54c2QKQEAgLTAsMCArMSwxNTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvaG9tZS9jdnNyb290L3czYy14bWwtc2NoZW1hL3VzZXIvZXhhbXBsZXMvZmlyc3QtY29tcGxleC10eXBlcy54c2QsdiAxLjEgMjAwMS8xMS8xMiAyMDo1NDowMCB2ZHYgRXhwICQgLS0+DQorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPg0KKw0KKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0ic3RyaW5nMjU1Ij4NCisgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnRva2VuIj4NCisgICAgICA8eHM6bWF4TGVuZ3RoIHZhbHVlPSIyNTUiLz4NCisgICAgPC94czpyZXN0cmljdGlvbj4NCisgIDwveHM6c2ltcGxlVHlwZT4NCisNCisgIDx4czpzaW1wbGVUeXBlIG5hbWU9InN0cmluZzMyIj4NCisgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnRva2VuIj4NCisgICAgICA8eHM6bWF4TGVuZ3RoIHZhbHVlPSIzMiIvPg0KKyAgICA8L3hzOnJlc3RyaWN0aW9uPg0KKyAgPC94czpzaW1wbGVUeXBlPg0KKw0KKyAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iaXNibiI+DQorICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp1bnNpZ25lZExvbmciPg0KKyAgICAgIDx4czp0b3RhbERpZ2l0cyB2YWx1ZT0iMTAiLz4NCisgICAgICA8eHM6cGF0dGVybiB2YWx1ZT0iXGR7MTB9Ii8+DQorICAgIDwveHM6cmVzdHJpY3Rpb24+DQorICA8L3hzOnNpbXBsZVR5cGU+DQorDQorICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJib29rSUQiPg0KKyAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6SUQiPg0KKyAgICAgIDx4czpwYXR0ZXJuIHZhbHVlPSJiXGR7MTB9Ii8+DQorICAgIDwveHM6cmVzdHJpY3Rpb24+DQorICA8L3hzOnNpbXBsZVR5cGU+DQorDQorICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJzdXBwb3J0ZWRMYW5ndWFnZXMiPg0KKyAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6bGFuZ3VhZ2UiPg0KKyAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iZW4iLz4NCisgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImVzIi8+DQorICAgIDwveHM6cmVzdHJpY3Rpb24+DQorICA8L3hzOnNpbXBsZVR5cGU+DQorDQorICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJkYXRlIj4NCisgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmRhdGUiPg0KKyAgICAgIDx4czpwYXR0ZXJuIHZhbHVlPSJbXjpaXSoiLz4NCisgICAgPC94czpyZXN0cmljdGlvbj4NCisgIDwveHM6c2ltcGxlVHlwZT4NCisNCisgIDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InN0cmluZzMyIi8+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJxdWFsaWZpY2F0aW9uIiB0eXBlPSJzdHJpbmcyNTUiLz4NCisgIDx4czplbGVtZW50IG5hbWU9ImJvcm4iIHR5cGU9ImRhdGUiLz4NCisgIDx4czplbGVtZW50IG5hbWU9ImRlYWQiIHR5cGU9ImRhdGUiLz4NCisgIDx4czplbGVtZW50IG5hbWU9ImlzYm4iIHR5cGU9ImlzYm4iLz4NCisgIA0KKyAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6SUQiLz4NCisgIDx4czphdHRyaWJ1dGUgbmFtZT0iYXZhaWxhYmxlIiB0eXBlPSJ4czpib29sZWFuIi8+DQorICA8eHM6YXR0cmlidXRlIG5hbWU9ImxhbmciIHR5cGU9InN1cHBvcnRlZExhbmd1YWdlcyIvPg0KKw0KKyAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImVsZW1lbnRXaXRoSUQiPg0KKyAgICA8eHM6YXR0cmlidXRlIHJlZj0iaWQiLz4NCisgIDwveHM6Y29tcGxleFR5cGU+DQorDQorICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iYm9va1RtcCI+DQorICAgIDx4czpjb21wbGV4Q29udGVudD4NCisgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9ImVsZW1lbnRXaXRoSUQiPg0KKyAgICAgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImlzYm4iLz4NCisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJ0aXRsZSIvPg0KKyAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImF1dGhvciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KKyAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImNoYXJhY3RlciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KKyAgICAgICAgPC94czpzZXF1ZW5jZT4NCisgICAgICAgIDx4czphdHRyaWJ1dGUgcmVmPSJhdmFpbGFibGUiLz4NCisgICAgICA8L3hzOmV4dGVuc2lvbj4NCisgICAgPC94czpjb21wbGV4Q29udGVudD4NCisgIDwveHM6Y29tcGxleFR5cGU+DQorICANCisgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJwZXJzb25UeXBlIj4NCisgICAgPHhzOmNvbXBsZXhDb250ZW50Pg0KKyAgICAgIDx4czpleHRlbnNpb24gYmFzZT0iZWxlbWVudFdpdGhJRCI+DQorICAgICAgICA8eHM6c2VxdWVuY2U+DQorICAgICAgICAgIDx4czplbGVtZW50IHJlZj0ibmFtZSIvPg0KKyAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImJvcm4iLz4NCisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJkZWFkIiBtaW5PY2N1cnM9IjAiLz4NCisgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJxdWFsaWZpY2F0aW9uIiAgbWluT2NjdXJzPSIwIi8+DQorICAgICAgICA8L3hzOnNlcXVlbmNlPg0KKyAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KKyAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KKyAgPC94czpjb21wbGV4VHlwZT4NCisgICAgDQorICA8eHM6ZWxlbWVudCBuYW1lPSJ0aXRsZSI+DQorICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICA8eHM6c2ltcGxlQ29udGVudD4NCisgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0ic3RyaW5nMjU1Ij4NCisgICAgICAgICAgPHhzOmF0dHJpYnV0ZSByZWY9ImxhbmciLz4NCisgICAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KKyAgICAgIDwveHM6c2ltcGxlQ29udGVudD4NCisgICAgPC94czpjb21wbGV4VHlwZT4NCisgIDwveHM6ZWxlbWVudD4NCisgIA0KKyAgPHhzOmVsZW1lbnQgbmFtZT0ibGlicmFyeSI+DQorICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICA8eHM6c2VxdWVuY2U+DQorICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImJvb2siIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQorICAgICAgPC94czpzZXF1ZW5jZT4NCisgICAgPC94czpjb21wbGV4VHlwZT4NCisgIDwveHM6ZWxlbWVudD4NCisgIA0KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYm9vayI+DQorICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICA8eHM6Y29tcGxleENvbnRlbnQ+DQorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0iYm9va1RtcCI+DQorICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImlzYm4iLz4NCisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9InRpdGxlIi8+DQorICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJhdXRob3IiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImNoYXJhY3RlciIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KKyAgICAgICAgICA8L3hzOnNlcXVlbmNlPg0KKyAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJib29rSUQiLz4NCisgICAgICAgICAgPHhzOmF0dHJpYnV0ZSByZWY9ImF2YWlsYWJsZSIvPg0KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4NCisgICAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KKyAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAgPC94czplbGVtZW50Pg0KKw0KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYXV0aG9yIj4NCisgICAgPHhzOmNvbXBsZXhUeXBlPg0KKyAgICAgIDx4czpjb21wbGV4Q29udGVudD4NCisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJwZXJzb25UeXBlIj4NCisgICAgICAgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICAgICAgIDx4czplbGVtZW50IHJlZj0ibmFtZSIvPg0KKyAgICAgICAgICAgIDx4czplbGVtZW50IHJlZj0iYm9ybiIvPg0KKyAgICAgICAgICAgIDx4czplbGVtZW50IHJlZj0iZGVhZCIgbWluT2NjdXJzPSIwIi8+DQorICAgICAgICAgIDwveHM6c2VxdWVuY2U+DQorICAgICAgICAgIDx4czphdHRyaWJ1dGUgcmVmPSJpZCIvPg0KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4NCisgICAgICA8L3hzOmNvbXBsZXhDb250ZW50Pg0KKyAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAgPC94czplbGVtZW50Pg0KKyAgDQorICANCisgIDx4czplbGVtZW50IG5hbWU9ImNoYXJhY3RlciI+DQorICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICA8eHM6Y29tcGxleENvbnRlbnQ+DQorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0icGVyc29uVHlwZSI+DQorICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9Im5hbWUiLz4NCisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9ImJvcm4iLz4NCisgICAgICAgICAgICA8eHM6ZWxlbWVudCByZWY9InF1YWxpZmljYXRpb24iLz4NCisgICAgICAgICAgPC94czpzZXF1ZW5jZT4NCisgICAgICAgICAgPHhzOmF0dHJpYnV0ZSByZWY9ImlkIi8+DQorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPg0KKyAgICAgIDwveHM6Y29tcGxleENvbnRlbnQ+DQorICAgIDwveHM6Y29tcGxleFR5cGU+DQorICA8L3hzOmVsZW1lbnQ+DQorICANCis8L3hzOnNjaGVtYT4NCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0NF8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjU5ZWYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0NF8xLnhtbApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0gJEhlYWRlcjogL2N2cy9nbm9tZS9nbm9tZS14bWwvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDNfMC54bWwsdiAxLjEgMjAwMy8xMS8yMiAyMDozNzo1MSB2ZWlsbGFyZCBFeHAgJCAtLT4NCis8bGlicmFyeT4NCisJPGJvb2sgaWQ9ImIwODM2MjE3NDYyIiBhdmFpbGFibGU9InRydWUiPg0KKwkJPGlzYm4+MDgzNjIxNzQ2MjwvaXNibj4NCisJCTx0aXRsZSBsYW5nPSJlbiI+QmVpbmcgYSBEb2cgSXMgYSBGdWxsLVRpbWUgSm9iPC90aXRsZT4NCisJCTxhdXRob3IgaWQ9IkNNUyI+DQorCQkJPG5hbWU+Q2hhcmxlcyBNIFNjaHVsejwvbmFtZT4NCisJCQk8Ym9ybj4xOTIyLTExLTI2PC9ib3JuPg0KKwkJCTxkZWFkPjIwMDAtMDItMTI8L2RlYWQ+DQorCQk8L2F1dGhvcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlBQIj4NCisJCQk8bmFtZT5QZXBwZXJtaW50IFBhdHR5PC9uYW1lPg0KKwkJCTxib3JuPjE5NlQ2LTA4LTIyPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJvbGQsIGJyYXNoIGFuZCB0b21ib3lpc2g8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlNub29weSI+DQorCQkJPG5hbWU+U25vb3B5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTAtMTAtMDQ8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+ZXh0cm92ZXJ0ZWQgYmVhZ2xlPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJTY2hyb2VkZXIiPg0KKwkJCTxuYW1lPlNjaHJvZWRlcjwvbmFtZT4NCisJCQk8Ym9ybj4xOTUxLTA1LTMwPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJyb3VnaHQgY2xhc3NpY2FsIG11c2ljIHRvIHRoZSBQZWFudXRzIHN0cmlwPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJMdWN5Ij4NCisJCQk8bmFtZT5MdWN5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTItMDMtMDM8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+Ym9zc3ksIGNyYWJieSBhbmQgc2VsZmlzaDwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwk8L2Jvb2s+DQorPC9saWJyYXJ5Pg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDRfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0XzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0YWNjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q0XzIueG1sCkBAIC0wLDAgKzEsMzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvY3ZzL2dub21lL2dub21lLXhtbC90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0M18wLnhtbCx2IDEuMSAyMDAzLzExLzIyIDIwOjM3OjUxIHZlaWxsYXJkIEV4cCAkIC0tPg0KKzxsaWJyYXJ5Pg0KKwk8Ym9vayBpZD0iYjA4MzYyMTc0NjIiIGF2YWlsYWJsZT0idHJ1ZSI+DQorCQk8aXNibj4wODM2MjE3NDYyPC9pc2JuPg0KKwkJPHRpdGxlIGxhbmc9ImVuIj5CZWluZyBhIERvZyBJcyBhIEZ1bGwtVGltZSBKb2I8L3RpdGxlPg0KKwkJPGF1dGhvciBpZD0iQ01TIj4NCisJCQk8bmFtZT5DaGFybGVzIE0gU2NodWx6PC9uYW1lPg0KKwkJCTxib3JuPjE5MjItMTEtMjY8L2Jvcm4+DQorCQkJPGRlYWQ+MjAwMC0wMi0xMjwvZGVhZD4NCisJCTwvYXV0aG9yPg0KKwkJPGNoYXJhY3RlciBpZD0iUFAiPg0KKwkJCTxuYW1lPlBlcHBlcm1pbnQgUGF0dHk8L25hbWU+DQorCQkJPGJvcm4+MTk2Ni0wOC0yMjwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5ib2xkLCBicmFzaCBhbmQgdG9tYm95aXNoPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJTbm9vcHkiPg0KKwkJCTxuYW1lPlNub29weTwvbmFtZT4NCisJCQk8Ym9ybj4xOTUwLTEwLTA0PC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmV4dHJvdmVydGVkIGJlYWdsZTwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwkJPGNoYXJhY3RlciBpZD0iU2Nocm9lZGVyIj4NCisJCQk8bmFtZT5TY2hyb2VkZXI8L25hbWU+DQorCQkJPGJvcm4+MjAwMC0wMS0yMFo8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+YnJvdWdodCBjbGFzc2ljYWwgbXVzaWMgdG8gdGhlIFBlYW51dHMgc3RyaXA8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9Ikx1Y3kiPg0KKwkJCTxuYW1lPkx1Y3k8L25hbWU+DQorCQkJPGJvcm4+MTk1Mi0wMy0wMzwvYm9ybj4NCisJCQk8cXVhbGlmaWNhdGlvbj5ib3NzeSwgY3JhYmJ5IGFuZCBzZWxmaXNoPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCTwvYm9vaz4NCis8L2xpYnJhcnk+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMvdmR2LWZpcnN0NV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDVfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0ZTY2MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDVfMC54bWwKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8IS0tICRIZWFkZXI6IC9jdnMvZ25vbWUvZ25vbWUteG1sL3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3QwXzAueG1sLHYgMS4xIDIwMDMvMTEvMjIgMjA6Mzc6NTEgdmVpbGxhcmQgRXhwICQgLS0+DQorPGxpYnJhcnk+DQorCTxib29rIGlkPSJiMDgzNjIxNzQ2MiIgYXZhaWxhYmxlPSJ0cnVlIj4NCisJCTxpc2JuPjA4MzYyMTc0NjI8L2lzYm4+DQorCQk8dGl0bGUgbGFuZz0iZW4iPkJlaW5nIGEgRG9nIElzIGEgRnVsbC1UaW1lIEpvYjwvdGl0bGU+DQorCQk8YXV0aG9yIGlkPSJDTVMiPg0KKwkJCTxuYW1lPkNoYXJsZXMgTSBTY2h1bHo8L25hbWU+DQorCQkJPGJvcm4+MTkyMi0xMS0yNjwvYm9ybj4NCisJCQk8ZGVhZD4yMDAwLTAyLTEyPC9kZWFkPg0KKwkJPC9hdXRob3I+DQorCQk8Y2hhcmFjdGVyIGlkPSJQUCI+DQorCQkJPG5hbWU+UGVwcGVybWludCBQYXR0eTwvbmFtZT4NCisJCQk8Ym9ybj4xOTY2LTA4LTIyPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJvbGQsIGJyYXNoIGFuZCB0b21ib3lpc2g8L3F1YWxpZmljYXRpb24+DQorCQk8L2NoYXJhY3Rlcj4NCisJCTxjaGFyYWN0ZXIgaWQ9IlNub29weSI+DQorCQkJPG5hbWU+U25vb3B5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTAtMTAtMDQ8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+ZXh0cm92ZXJ0ZWQgYmVhZ2xlPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJTY2hyb2VkZXIiPg0KKwkJCTxuYW1lPlNjaHJvZWRlcjwvbmFtZT4NCisJCQk8Ym9ybj4xOTUxLTA1LTMwPC9ib3JuPg0KKwkJCTxxdWFsaWZpY2F0aW9uPmJyb3VnaHQgY2xhc3NpY2FsIG11c2ljIHRvIHRoZSBQZWFudXRzIHN0cmlwPC9xdWFsaWZpY2F0aW9uPg0KKwkJPC9jaGFyYWN0ZXI+DQorCQk8Y2hhcmFjdGVyIGlkPSJMdWN5Ij4NCisJCQk8bmFtZT5MdWN5PC9uYW1lPg0KKwkJCTxib3JuPjE5NTItMDMtMDM8L2Jvcm4+DQorCQkJPHF1YWxpZmljYXRpb24+Ym9zc3ksIGNyYWJieSBhbmQgc2VsZmlzaDwvcXVhbGlmaWNhdGlvbj4NCisJCTwvY2hhcmFjdGVyPg0KKwk8L2Jvb2s+DQorPC9saWJyYXJ5Pg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1maXJzdDVfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q1XzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkNWZmYWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtZmlyc3Q1XzAueHNkCkBAIC0wLDAgKzEsODUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvaG9tZS9jdnNyb290L3czYy14bWwtc2NoZW1hL3VzZXIvZXhhbXBsZXMvZmlyc3QtYnVpbGRpbmctYmxvY2tzLnhzZCx2IDEuMSAyMDAxLzExLzI2IDEzOjI3OjA3IHZkdiBFeHAgJCAtLT4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorDQorPHhzOmluY2x1ZGUgc2NoZW1hTG9jYXRpb249InZkdi1zaW1wbGVUeXBlcy54c2QiLz4NCis8eHM6aW5jbHVkZSBzY2hlbWFMb2NhdGlvbj0idmR2LWNvbXBsZXhUeXBlcy54c2QiLz4NCisNCisJPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ic3RyaW5nMzIiLz4NCisJPHhzOmVsZW1lbnQgbmFtZT0icXVhbGlmaWNhdGlvbiIgdHlwZT0ic3RyaW5nMjU1Ii8+DQorCTx4czplbGVtZW50IG5hbWU9ImJvcm4iIHR5cGU9ImRhdGUiLz4NCisJPHhzOmVsZW1lbnQgbmFtZT0iZGVhZCIgdHlwZT0iZGF0ZSIvPg0KKwk8eHM6ZWxlbWVudCBuYW1lPSJpc2JuIiB0eXBlPSJpc2JuIi8+DQorCQ0KKwk8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpJRCIvPg0KKwk8eHM6YXR0cmlidXRlIG5hbWU9ImF2YWlsYWJsZSIgdHlwZT0ieHM6Ym9vbGVhbiIvPg0KKwk8eHM6YXR0cmlidXRlIG5hbWU9ImxhbmciIHR5cGU9InN1cHBvcnRlZExhbmd1YWdlcyIvPg0KKw0KKwkJDQorCTx4czplbGVtZW50IG5hbWU9InRpdGxlIj4NCisJCTx4czpjb21wbGV4VHlwZT4NCisJCQk8eHM6c2ltcGxlQ29udGVudD4NCisJCQkJPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmcyNTUiPg0KKwkJCQkJPHhzOmF0dHJpYnV0ZSByZWY9ImxhbmciLz4NCisJCQkJPC94czpleHRlbnNpb24+DQorCQkJPC94czpzaW1wbGVDb250ZW50Pg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJPC94czplbGVtZW50Pg0KKwkNCisJPHhzOmVsZW1lbnQgbmFtZT0ibGlicmFyeSI+DQorCQk8eHM6Y29tcGxleFR5cGU+DQorCQkJPHhzOnNlcXVlbmNlPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImJvb2siIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQorCQkJPC94czpzZXF1ZW5jZT4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisJDQorCTx4czplbGVtZW50IG5hbWU9ImJvb2siPg0KKwkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQkJCTx4czpjb21wbGV4Q29udGVudD4NCisJCQkJCQkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9ImJvb2tUbXAiPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJpc2JuIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0idGl0bGUiLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJhdXRob3IiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJjaGFyYWN0ZXIiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCisJCQk8L3hzOnNlcXVlbmNlPg0KKwkJCTx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9ImJvb2tJRCIvPg0KKwkJCTx4czphdHRyaWJ1dGUgcmVmPSJhdmFpbGFibGUiLz4NCisJCQkJCQkJCQkJCQkJPC94czpyZXN0cmljdGlvbj4NCisJCQkJCQkJCQk8L3hzOmNvbXBsZXhDb250ZW50Pg0KKwkJPC94czpjb21wbGV4VHlwZT4NCisJPC94czplbGVtZW50Pg0KKw0KKwk8eHM6ZWxlbWVudCBuYW1lPSJhdXRob3IiPg0KKwkJCQkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQkJCTx4czpjb21wbGV4Q29udGVudD4NCisJCQkJCQkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InBlcnNvblR5cGUiPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJuYW1lIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iYm9ybiIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9ImRlYWQiIG1pbk9jY3Vycz0iMCIvPg0KKwkJCTwveHM6c2VxdWVuY2U+DQorCQkJPHhzOmF0dHJpYnV0ZSByZWY9ImlkIi8+DQorCQkJCQkJCQkJCQkJCTwveHM6cmVzdHJpY3Rpb24+DQorCQkJCQkJCQkJPC94czpjb21wbGV4Q29udGVudD4NCisJCTwveHM6Y29tcGxleFR5cGU+DQorCTwveHM6ZWxlbWVudD4NCisJDQorCQ0KKwk8eHM6ZWxlbWVudCBuYW1lPSJjaGFyYWN0ZXIiPg0KKwkJPHhzOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQkJCTx4czpjb21wbGV4Q29udGVudD4NCisJCQkJCQkJCQkJCQkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InBlcnNvblR5cGUiPg0KKwkJCTx4czpzZXF1ZW5jZT4NCisJCQkJPHhzOmVsZW1lbnQgcmVmPSJuYW1lIi8+DQorCQkJCTx4czplbGVtZW50IHJlZj0iYm9ybiIvPg0KKwkJCQk8eHM6ZWxlbWVudCByZWY9InF1YWxpZmljYXRpb24iLz4NCisJCQk8L3hzOnNlcXVlbmNlPg0KKwkJCTx4czphdHRyaWJ1dGUgcmVmPSJpZCIvPg0KKwkJCQkJCQkJCQkJCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwkJCQkJCQkJCTwveHM6Y29tcGxleENvbnRlbnQ+DQorCQk8L3hzOmNvbXBsZXhUeXBlPg0KKwk8L3hzOmVsZW1lbnQ+DQorCQ0KKzwveHM6c2NoZW1hPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3Zkdi1zaW1wbGVUeXBlcy54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtc2ltcGxlVHlwZXMueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5Zjk1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy92ZHYtc2ltcGxlVHlwZXMueHNkCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSAkSGVhZGVyOiAvaG9tZS9jdnNyb290L3czYy14bWwtc2NoZW1hL3VzZXIvZXhhbXBsZXMvc2ltcGxlVHlwZXMueHNkLHYgMS4xIDIwMDEvMTEvMjYgMTM6Mjc6MDggdmR2IEV4cCAkIC0tPg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCisNCisJPHhzOnNpbXBsZVR5cGUgbmFtZT0ic3RyaW5nMjU1Ij4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp0b2tlbiI+DQorCQkJPHhzOm1heExlbmd0aCB2YWx1ZT0iMjU1Ii8+DQorCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwk8L3hzOnNpbXBsZVR5cGU+DQorCTx4czpzaW1wbGVUeXBlIG5hbWU9InN0cmluZzMyIj4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czp0b2tlbiI+DQorCQkJPHhzOm1heExlbmd0aCB2YWx1ZT0iMzIiLz4NCisJCTwveHM6cmVzdHJpY3Rpb24+DQorCTwveHM6c2ltcGxlVHlwZT4NCisJPHhzOnNpbXBsZVR5cGUgbmFtZT0iaXNibiI+DQorCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6dW5zaWduZWRMb25nIj4NCisJCQk8eHM6dG90YWxEaWdpdHMgdmFsdWU9IjEwIi8+DQorCQkJPHhzOnBhdHRlcm4gdmFsdWU9IlxkezEwfSIvPg0KKwkJPC94czpyZXN0cmljdGlvbj4NCisJPC94czpzaW1wbGVUeXBlPg0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJib29rSUQiPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOklEIj4NCisJCQk8eHM6cGF0dGVybiB2YWx1ZT0iYlxkezEwfSIvPg0KKwkJPC94czpyZXN0cmljdGlvbj4NCisJPC94czpzaW1wbGVUeXBlPg0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJzdXBwb3J0ZWRMYW5ndWFnZXMiPg0KKwkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmxhbmd1YWdlIj4NCisJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImVuIi8+DQorCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJlcyIvPg0KKwkJPC94czpyZXN0cmljdGlvbj4NCisJPC94czpzaW1wbGVUeXBlPg0KKwk8eHM6c2ltcGxlVHlwZSBuYW1lPSJkYXRlIj4NCisJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpkYXRlIj4NCisJCQkJCQk8eHM6cGF0dGVybiB2YWx1ZT0iW146Wl0qIi8+DQorCQk8L3hzOnJlc3RyaWN0aW9uPg0KKwk8L3hzOnNpbXBsZVR5cGU+DQorDQorPC94czpzY2hlbWE+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXMveG1sLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3htbC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5ZmZmOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3htbC54c2QKQEAgLTAsMCArMSwxMTcgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhLS0hRE9DVFlQRSB4czpzY2hlbWEgUFVCTElDICItLy9XM0MvL0RURCBYTUxTQ0hFTUEgMjAwMTAyLy9FTiIgIlhNTFNjaGVtYS5kdGQiIC0tPgorPHhzOnNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWw6bGFuZz0iZW4iPgorCisgPHhzOmFubm90YXRpb24+CisgIDx4czpkb2N1bWVudGF0aW9uPgorICAgU2VlIGh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZS5odG1sIGFuZAorICAgaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBuYW1lc3BhY2UuCisKKyAgICBUaGlzIHNjaGVtYSBkb2N1bWVudCBkZXNjcmliZXMgdGhlIFhNTCBuYW1lc3BhY2UsIGluIGEgZm9ybQorICAgIHN1aXRhYmxlIGZvciBpbXBvcnQgYnkgb3RoZXIgc2NoZW1hIGRvY3VtZW50cy4gIAorCisgICAgTm90ZSB0aGF0IGxvY2FsIG5hbWVzIGluIHRoaXMgbmFtZXNwYWNlIGFyZSBpbnRlbmRlZCB0byBiZSBkZWZpbmVkCisgICAgb25seSBieSB0aGUgV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSBvciBpdHMgc3ViZ3JvdXBzLiAgVGhlCisgICAgZm9sbG93aW5nIG5hbWVzIGFyZSBjdXJyZW50bHkgZGVmaW5lZCBpbiB0aGlzIG5hbWVzcGFjZSBhbmQgc2hvdWxkCisgICAgbm90IGJlIHVzZWQgd2l0aCBjb25mbGljdGluZyBzZW1hbnRpY3MgYnkgYW55IFdvcmtpbmcgR3JvdXAsCisgICAgc3BlY2lmaWNhdGlvbiwgb3IgZG9jdW1lbnQgaW5zdGFuY2U6CisKKyAgICBiYXNlIChhcyBhbiBhdHRyaWJ1dGUgbmFtZSk6IGRlbm90ZXMgYW4gYXR0cmlidXRlIHdob3NlIHZhbHVlCisgICAgICAgICBwcm92aWRlcyBhIFVSSSB0byBiZSB1c2VkIGFzIHRoZSBiYXNlIGZvciBpbnRlcnByZXRpbmcgYW55CisgICAgICAgICByZWxhdGl2ZSBVUklzIGluIHRoZSBzY29wZSBvZiB0aGUgZWxlbWVudCBvbiB3aGljaCBpdAorICAgICAgICAgYXBwZWFyczsgaXRzIHZhbHVlIGlzIGluaGVyaXRlZC4gIFRoaXMgbmFtZSBpcyByZXNlcnZlZAorICAgICAgICAgYnkgdmlydHVlIG9mIGl0cyBkZWZpbml0aW9uIGluIHRoZSBYTUwgQmFzZSBzcGVjaWZpY2F0aW9uLgorCisgICAgbGFuZyAoYXMgYW4gYXR0cmlidXRlIG5hbWUpOiBkZW5vdGVzIGFuIGF0dHJpYnV0ZSB3aG9zZSB2YWx1ZQorICAgICAgICAgaXMgYSBsYW5ndWFnZSBjb2RlIGZvciB0aGUgbmF0dXJhbCBsYW5ndWFnZSBvZiB0aGUgY29udGVudCBvZgorICAgICAgICAgYW55IGVsZW1lbnQ7IGl0cyB2YWx1ZSBpcyBpbmhlcml0ZWQuICBUaGlzIG5hbWUgaXMgcmVzZXJ2ZWQKKyAgICAgICAgIGJ5IHZpcnR1ZSBvZiBpdHMgZGVmaW5pdGlvbiBpbiB0aGUgWE1MIHNwZWNpZmljYXRpb24uCisgIAorICAgIHNwYWNlIChhcyBhbiBhdHRyaWJ1dGUgbmFtZSk6IGRlbm90ZXMgYW4gYXR0cmlidXRlIHdob3NlCisgICAgICAgICB2YWx1ZSBpcyBhIGtleXdvcmQgaW5kaWNhdGluZyB3aGF0IHdoaXRlc3BhY2UgcHJvY2Vzc2luZworICAgICAgICAgZGlzY2lwbGluZSBpcyBpbnRlbmRlZCBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQ7IGl0cworICAgICAgICAgdmFsdWUgaXMgaW5oZXJpdGVkLiAgVGhpcyBuYW1lIGlzIHJlc2VydmVkIGJ5IHZpcnR1ZSBvZiBpdHMKKyAgICAgICAgIGRlZmluaXRpb24gaW4gdGhlIFhNTCBzcGVjaWZpY2F0aW9uLgorCisgICAgRmF0aGVyIChpbiBhbnkgY29udGV4dCBhdCBhbGwpOiBkZW5vdGVzIEpvbiBCb3NhaywgdGhlIGNoYWlyIG9mIAorICAgICAgICAgdGhlIG9yaWdpbmFsIFhNTCBXb3JraW5nIEdyb3VwLiAgVGhpcyBuYW1lIGlzIHJlc2VydmVkIGJ5IAorICAgICAgICAgdGhlIGZvbGxvd2luZyBkZWNpc2lvbiBvZiB0aGUgVzNDIFhNTCBQbGVuYXJ5IGFuZCAKKyAgICAgICAgIFhNTCBDb29yZGluYXRpb24gZ3JvdXBzOgorCisgICAgICAgICAgICAgSW4gYXBwcmVjaWF0aW9uIGZvciBoaXMgdmlzaW9uLCBsZWFkZXJzaGlwIGFuZCBkZWRpY2F0aW9uCisgICAgICAgICAgICAgdGhlIFczQyBYTUwgUGxlbmFyeSBvbiB0aGlzIDEwdGggZGF5IG9mIEZlYnJ1YXJ5LCAyMDAwCisgICAgICAgICAgICAgcmVzZXJ2ZXMgZm9yIEpvbiBCb3NhayBpbiBwZXJwZXR1aXR5IHRoZSBYTUwgbmFtZQorICAgICAgICAgICAgIHhtbDpGYXRoZXIKKyAgPC94czpkb2N1bWVudGF0aW9uPgorIDwveHM6YW5ub3RhdGlvbj4KKworIDx4czphbm5vdGF0aW9uPgorICA8eHM6ZG9jdW1lbnRhdGlvbj5UaGlzIHNjaGVtYSBkZWZpbmVzIGF0dHJpYnV0ZXMgYW5kIGFuIGF0dHJpYnV0ZSBncm91cAorICAgICAgICBzdWl0YWJsZSBmb3IgdXNlIGJ5CisgICAgICAgIHNjaGVtYXMgd2lzaGluZyB0byBhbGxvdyB4bWw6YmFzZSwgeG1sOmxhbmcgb3IgeG1sOnNwYWNlIGF0dHJpYnV0ZXMKKyAgICAgICAgb24gZWxlbWVudHMgdGhleSBkZWZpbmUuCisKKyAgICAgICAgVG8gZW5hYmxlIHRoaXMsIHN1Y2ggYSBzY2hlbWEgbXVzdCBpbXBvcnQgdGhpcyBzY2hlbWEKKyAgICAgICAgZm9yIHRoZSBYTUwgbmFtZXNwYWNlLCBlLmcuIGFzIGZvbGxvd3M6CisgICAgICAgICZsdDtzY2hlbWEgLiAuIC4+CisgICAgICAgICAuIC4gLgorICAgICAgICAgJmx0O2ltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIKKyAgICAgICAgICAgICAgICAgICAgc2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDMveG1sLnhzZCIvPgorCisgICAgICAgIFN1YnNlcXVlbnRseSwgcXVhbGlmaWVkIHJlZmVyZW5jZSB0byBhbnkgb2YgdGhlIGF0dHJpYnV0ZXMKKyAgICAgICAgb3IgdGhlIGdyb3VwIGRlZmluZWQgYmVsb3cgd2lsbCBoYXZlIHRoZSBkZXNpcmVkIGVmZmVjdCwgZS5nLgorCisgICAgICAgICZsdDt0eXBlIC4gLiAuPgorICAgICAgICAgLiAuIC4KKyAgICAgICAgICZsdDthdHRyaWJ1dGVHcm91cCByZWY9InhtbDpzcGVjaWFsQXR0cnMiLz4KKyAKKyAgICAgICAgIHdpbGwgZGVmaW5lIGEgdHlwZSB3aGljaCB3aWxsIHNjaGVtYS12YWxpZGF0ZSBhbiBpbnN0YW5jZQorICAgICAgICAgZWxlbWVudCB3aXRoIGFueSBvZiB0aG9zZSBhdHRyaWJ1dGVzPC94czpkb2N1bWVudGF0aW9uPgorIDwveHM6YW5ub3RhdGlvbj4KKworIDx4czphbm5vdGF0aW9uPgorICA8eHM6ZG9jdW1lbnRhdGlvbj5JbiBrZWVwaW5nIHdpdGggdGhlIFhNTCBTY2hlbWEgV0cncyBzdGFuZGFyZCB2ZXJzaW9uaW5nCisgICBwb2xpY3ksIHRoaXMgc2NoZW1hIGRvY3VtZW50IHdpbGwgcGVyc2lzdCBhdAorICAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wMy94bWwueHNkLgorICAgQXQgdGhlIGRhdGUgb2YgaXNzdWUgaXQgY2FuIGFsc28gYmUgZm91bmQgYXQKKyAgIGh0dHA6Ly93d3cudzMub3JnLzIwMDEveG1sLnhzZC4KKyAgIFRoZSBzY2hlbWEgZG9jdW1lbnQgYXQgdGhhdCBVUkkgbWF5IGhvd2V2ZXIgY2hhbmdlIGluIHRoZSBmdXR1cmUsCisgICBpbiBvcmRlciB0byByZW1haW4gY29tcGF0aWJsZSB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYTUwgU2NoZW1hCisgICBpdHNlbGYuICBJbiBvdGhlciB3b3JkcywgaWYgdGhlIFhNTCBTY2hlbWEgbmFtZXNwYWNlIGNoYW5nZXMsIHRoZSB2ZXJzaW9uCisgICBvZiB0aGlzIGRvY3VtZW50IGF0CisgICBodHRwOi8vd3d3LnczLm9yZy8yMDAxL3htbC54c2Qgd2lsbCBjaGFuZ2UKKyAgIGFjY29yZGluZ2x5OyB0aGUgdmVyc2lvbiBhdAorICAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wMy94bWwueHNkIHdpbGwgbm90IGNoYW5nZS4KKyAgPC94czpkb2N1bWVudGF0aW9uPgorIDwveHM6YW5ub3RhdGlvbj4KKworIDx4czphdHRyaWJ1dGUgbmFtZT0ibGFuZyIgdHlwZT0ieHM6bGFuZ3VhZ2UiPgorICA8eHM6YW5ub3RhdGlvbj4KKyAgIDx4czpkb2N1bWVudGF0aW9uPkluIGR1ZSBjb3Vyc2UsIHdlIHNob3VsZCBpbnN0YWxsIHRoZSByZWxldmFudCBJU08gMi0gYW5kIDMtbGV0dGVyCisgICAgICAgICBjb2RlcyBhcyB0aGUgZW51bWVyYXRlZCBwb3NzaWJsZSB2YWx1ZXMgLiAuIC48L3hzOmRvY3VtZW50YXRpb24+CisgIDwveHM6YW5ub3RhdGlvbj4KKyA8L3hzOmF0dHJpYnV0ZT4KKworIDx4czphdHRyaWJ1dGUgbmFtZT0ic3BhY2UiIGRlZmF1bHQ9InByZXNlcnZlIj4KKyAgPHhzOnNpbXBsZVR5cGU+CisgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6TkNOYW1lIj4KKyAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImRlZmF1bHQiLz4KKyAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9InByZXNlcnZlIi8+CisgICA8L3hzOnJlc3RyaWN0aW9uPgorICA8L3hzOnNpbXBsZVR5cGU+CisgPC94czphdHRyaWJ1dGU+CisKKyA8eHM6YXR0cmlidXRlIG5hbWU9ImJhc2UiIHR5cGU9InhzOmFueVVSSSI+CisgIDx4czphbm5vdGF0aW9uPgorICAgPHhzOmRvY3VtZW50YXRpb24+U2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbGJhc2UvIGZvcgorICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhdHRyaWJ1dGUuPC94czpkb2N1bWVudGF0aW9uPgorICA8L3hzOmFubm90YXRpb24+CisgPC94czphdHRyaWJ1dGU+CisKKyA8eHM6YXR0cmlidXRlR3JvdXAgbmFtZT0ic3BlY2lhbEF0dHJzIj4KKyAgPHhzOmF0dHJpYnV0ZSByZWY9InhtbDpiYXNlIi8+CisgIDx4czphdHRyaWJ1dGUgcmVmPSJ4bWw6bGFuZyIvPgorICA8eHM6YXR0cmlidXRlIHJlZj0ieG1sOnNwYWNlIi8+CisgPC94czphdHRyaWJ1dGVHcm91cD4KKworPC94czpzY2hlbWE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2QtbGlzdC1pdGVtVHlwZV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3hzZC1saXN0LWl0ZW1UeXBlXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyMGU0MDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2QtbGlzdC1pdGVtVHlwZV8wLnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IS0tIFRoaXMgaXMgdGhlIHRlc3QgZGF0YSBmb3IgdGhlIGNoZWNrIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgIml0ZW1UeXBlIiBhdHRyaWJ1dGUgb2YgdGhlIHhzZDpsaXN0IGVsZW1lbnQuIC0tPgorPGZvbyB4bWxucz0iaHR0cDovL0ZPTyI+dGVhIGZvciB0d28gYW5kIHR3byBmb3IgdGVhPC9mb28+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2QtbGlzdC1pdGVtVHlwZV8wLnhzZCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3hzZC1saXN0LWl0ZW1UeXBlXzAueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NmRiYjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2QtbGlzdC1pdGVtVHlwZV8wLnhzZApAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorCis8IS0tIFRoaXMgdGVzdCBjaGVja3MgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSAiaXRlbVR5cGUiIGF0dHJpYnV0ZSBvZiB0aGUgeHNkOmxpc3QgZWxlbWVudC4gLS0+CisKKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9GT08iIHhtbG5zOmZvbz0iaHR0cDovL0ZPTyI+CisgIAorIDxlbGVtZW50IG5hbWU9ImZvbyI+CisJPHNpbXBsZVR5cGU+CisgIAkJPGxpc3QgaXRlbVR5cGU9InN0cmluZyIvPgorCTwvc2ltcGxlVHlwZT4gICAJCQkgICAgICAgICAgCisgIDwvZWxlbWVudD4gICAKKworICAKKzwvc2NoZW1hPiAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2Qtc2ltcGxlVHlwZS12YXJpZXRpZXNfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2Qtc2ltcGxlVHlwZS12YXJpZXRpZXNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNhMGIyYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3hzZC1zaW1wbGVUeXBlLXZhcmlldGllc18wLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IS0tIFRoaXMgaXMgdGhlIHRlc3QgZGF0YSBmb3IgdGhlIGNoZWNrIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpZXRpZXMgb2YgeHNkOnNpbXBsZVR5cGUgZWxlbWVudC4gLS0+Cis8Zm9vIHhtbG5zPSJodHRwOi8vRk9PIj4KKwk8YmFyQT5mYWppdGE8L2JhckE+CisJPGJhckI+cHViIHB1YjwvYmFyQj4KKwk8YmFyQz48IVtDREFUQVt0ZXF1aWxsYV1dPjwvYmFyQz4KKzwvZm9vPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2Qtc2ltcGxlVHlwZS12YXJpZXRpZXNfMC54c2QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hcy94c2Qtc2ltcGxlVHlwZS12YXJpZXRpZXNfMC54c2QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE3NTJlMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWFzL3hzZC1zaW1wbGVUeXBlLXZhcmlldGllc18wLnhzZApAQCAtMCwwICsxLDQ1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorCis8IS0tIFRoaXMgdGVzdCBjaGVja3MgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSB2YXJpZXRpZXMgb2YgdGhlIHhzZDpzaW1wbGVUeXBlIGVsZW1lbnQuIC0tPgorICAgIAorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIAorCXRhcmdldE5hbWVzcGFjZT0iaHR0cDovL0ZPTyIgeG1sbnM6Zm9vPSJodHRwOi8vRk9PIiAKKwllbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCI+IAorCisJPGVsZW1lbnQgbmFtZT0iZm9vIj4KKwkJPGNvbXBsZXhUeXBlPgorCQkJPHNlcXVlbmNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKwkJCQk8ZWxlbWVudCBuYW1lPSJiYXJBIj4KKwkJCQkJPHNpbXBsZVR5cGU+CisJCQkJCQk8dW5pb24gbWVtYmVyVHlwZXM9ImZvbzp0eXBlQSBmb286dHlwZUIiLz4gICAgICAKKwkJCQkJPC9zaW1wbGVUeXBlPgorCQkJCTwvZWxlbWVudD4KKwkJCQk8ZWxlbWVudCBuYW1lPSJiYXJCIj4KKwkJCQkJPHNpbXBsZVR5cGU+CisJCQkJCQk8bGlzdCBpdGVtVHlwZT0iZm9vOnR5cGVBIi8+ICAgICAgCisJCQkJCTwvc2ltcGxlVHlwZT4KKwkJCQk8L2VsZW1lbnQ+ICAgICAgICAKKwkJCQk8ZWxlbWVudCBuYW1lPSJiYXJDIj4KKwkJCQkJPHNpbXBsZVR5cGU+CisJCQkJCQk8cmVzdHJpY3Rpb24gYmFzZT0ic3RyaW5nIj4KKwkJCQkJCQk8ZW51bWVyYXRpb24gdmFsdWU9InRlcXVpbGxhIi8+ICAJICAJICAKKwkJCQkJCTwvcmVzdHJpY3Rpb24+ICAgICAKKwkJCQkJPC9zaW1wbGVUeXBlPgorCQkJCTwvZWxlbWVudD4gICAgICAgICAgICAgICAgCisJCQk8L3NlcXVlbmNlPgorCQk8L2NvbXBsZXhUeXBlPgorCTwvZWxlbWVudD4KKyAgIAorCTxzaW1wbGVUeXBlIG5hbWU9InR5cGVBIj4KKwkJPHJlc3RyaWN0aW9uIGJhc2U9InN0cmluZyI+CisJCQk8ZW51bWVyYXRpb24gdmFsdWU9InB1YiIvPiAgCSAgCSAgCisJCTwvcmVzdHJpY3Rpb24+CisJPC9zaW1wbGVUeXBlPiAKKyAgIAorCTxzaW1wbGVUeXBlIG5hbWU9InR5cGVCIj4KKwkJPHJlc3RyaWN0aW9uIGJhc2U9InN0cmluZyI+CisJCQk8ZW51bWVyYXRpb24gdmFsdWU9ImZhaml0YSIvPiAgCSAgCSAgCisJCTwvcmVzdHJpY3Rpb24+CisJPC9zaW1wbGVUeXBlPiAgICAKKyAgCis8L3NjaGVtYT4gCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMS5zY3QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMS5zY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYxNzlkZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xLnNjdApAQCAtMCwwICsxLDIzIEBACis8c2NoZW1hIHhtbG5zPSJodHRwOi8vd3d3LmFzY2MubmV0L3htbC9zY2hlbWF0cm9uIiA+CisgICAgIDxwYXR0ZXJuIG5hbWU9IlByaW50IGJvdGggY2FzZXMiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkFBQSI+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9IkJCQiI+QkJCIGVsZW1lbnQgaXMgbWlzc2luZy48L2Fzc2VydD4KKyAgICAgICAgICAgICAgIDxyZXBvcnQgdGVzdD0iQkJCIj5CQkIgZWxlbWVudCBpcyBwcmVzZW50LjwvcmVwb3J0PgorICAgICAgICAgICAgICAgPGFzc2VydCB0ZXN0PSJAbmFtZSI+QUFBIG1pc3NlcyBhdHRyaWJ1dGUgbmFtZS48L2Fzc2VydD4KKyAgICAgICAgICAgICAgIDxyZXBvcnQgdGVzdD0iQG5hbWUiPkFBQSBjb250YWlucyBhdHRyaWJ1dGUgbmFtZS48L3JlcG9ydD4KKyAgICAgICAgICA8L3J1bGU+CisgICAgIDwvcGF0dGVybj4KKyAgICAgPHBhdHRlcm4gbmFtZT0iUHJpbnQgcG9zaXRpdmUgcmVzdWx0IG9ubHkiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkFBQSI+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9IkJCQiI+QkJCIGVsZW1lbnQgaXMgcHJlc2VudC48L3JlcG9ydD4KKyAgICAgICAgICAgICAgIDxyZXBvcnQgdGVzdD0iQG5hbWUiPkFBQSBjb250YWlucyBhdHRyaWJ1dGUgbmFtZS48L3JlcG9ydD4KKyAgICAgICAgICA8L3J1bGU+CisgICAgIDwvcGF0dGVybj4KKyAgICAgPHBhdHRlcm4gbmFtZT0iUHJpbnQgbmVnYXRpdmUgcmVzdWx0IG9ubHkiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkFBQSI+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9IkJCQiI+QkJCIGVsZW1lbnQgaXMgbWlzc2luZy48L2Fzc2VydD4KKyAgICAgICAgICAgICAgIDxhc3NlcnQgdGVzdD0iQG5hbWUiPkFBQSBtaXNzZXMgYXR0cmlidXRlIG5hbWUuPC9hc3NlcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEwLnNjdCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMC5zY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgzZmFjNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMC5zY3QKQEAgLTAsMCArMSwxNSBAQAorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy5hc2NjLm5ldC94bWwvc2NoZW1hdHJvbiIgPgorICAgICA8cGF0dGVybiBuYW1lPSJPcGVuIG1vZGVsIj4KKyAgICAgICAgICA8cnVsZSBjb250ZXh0PSJBQUEiPgorICAgICAgICAgICAgICAgPGFzc2VydCB0ZXN0PSJCQkIiPiBCQkIgZWxlbWVudCBpcyBub3QgcHJlc2VudDwvYXNzZXJ0PgorICAgICAgICAgICAgICAgPGFzc2VydCB0ZXN0PSJDQ0MiPiBDQ0MgZWxlbWVudCBpcyBub3QgcHJlc2VudDwvYXNzZXJ0PgorICAgICAgICAgIDwvcnVsZT4KKyAgICAgPC9wYXR0ZXJuPgorICAgICA8cGF0dGVybiBuYW1lPSJDbG9zZWQgbW9kZWwiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkFBQSI+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9IkJCQiI+IEJCQiBlbGVtZW50IGlzIG5vdCBwcmVzZW50PC9hc3NlcnQ+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9IkNDQyI+IENDQyBlbGVtZW50IGlzIG5vdCBwcmVzZW50PC9hc3NlcnQ+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9ImNvdW50KEJCQnxDQ0MpID0gY291bnQgKCopIj5UaGVyZSBpcyBhbiBleHRyYSBlbGVtZW50PC9hc3NlcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMF8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMF8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2FjMzg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEwXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KKyAgICAgPEJCQi8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMF8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMF8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTliZGNhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEwXzEueG1sCkBAIC0wLDAgKzEsNCBAQAorPEFBQT4KKyAgICAgPEJCQi8+CisgICAgIDxEREQvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTEuc2N0IGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjExLnNjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWIwMWZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjExLnNjdApAQCAtMCwwICsxLDggQEAKKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cuYXNjYy5uZXQveG1sL3NjaGVtYXRyb24iID4KKyAgICAgPHBhdHRlcm4gbmFtZT0iQXR0cmlidXRlcyBwcmVzZW50Ij4KKyAgICAgICAgICA8cnVsZSBjb250ZXh0PSJCQkIiPgorICAgICAgICAgICAgICAgPGFzc2VydCB0ZXN0PSJub3QoQGFhYSkgb3IgKEBhYWEgYW5kIEBiYmIpIj5UaGUgZWxlbWVudCBtdXN0IG5vdCBoYXZlIGFuIGlzb2xhdGVkIGFhYSBhdHRyaWJ1dGU8L2Fzc2VydD4KKyAgICAgICAgICAgICAgIDxhc3NlcnQgdGVzdD0ibm90KEBiYmIpIG9yIChAYWFhIGFuZCBAYmJiKSI+VGhlIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhbiBpc29sYXRlZCBiYmIgYXR0cmlidXRlPC9hc3NlcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDY1ZWVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjExXzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KKyAgICAgPEJCQiBhYWE9IkEiIGJiYj0iQiIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTFfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg4OTkzMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMV8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxBQUE+CisgICAgIDxCQkIgYmJiPSJCIi8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMV8yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMV8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmUxMjIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjExXzIueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KKyAgICAgPEJCQiBhYWE9IkEiLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjExXzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjExXzMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzYWMzODgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTFfMy54bWwKQEAgLTAsMCArMSwzIEBACis8QUFBPgorICAgICA8QkJCLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEyLnNjdCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMi5zY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ5YjEyNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMi5zY3QKQEAgLTAsMCArMSw4IEBACis8c2NoZW1hIHhtbG5zPSJodHRwOi8vd3d3LmFzY2MubmV0L3htbC9zY2hlbWF0cm9uIiA+CisgICAgIDxwYXR0ZXJuIG5hbWU9Ik51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGFuIGFiYnJldmlhdGlvbiI+CisgICAgICAgICAgPHJ1bGUgY29udGV4dD0iQkJCIj4KKyAgICAgICAgICAgICAgIDxyZXBvcnQgdGVzdD0ic3RyaW5nLWxlbmd0aChAYmJiKSAmbHQ7IDIiPlRoZXJlIGlzIG5vdCBlbm91Z2ggbGV0dGVycyBpbiB0aGUgYWJicmV2aWF0aW9uPC9yZXBvcnQ+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9InN0cmluZy1sZW5ndGgoQGJiYikgPiAzIj5UaGVyZSBpcyB0b28gbXVjaCBsZXR0ZXJzIGluIHRoZSBhYmJyZXZpYXRpb248L3JlcG9ydD4KKyAgICAgICAgICA8L3J1bGU+CisgICAgIDwvcGF0dGVybj4KKzwvc2NoZW1hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEyXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEyXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ZjI4ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTJfMC54bWwKQEAgLTAsMCArMSwzIEBACis8QUFBPgorICAgICA8QkJCIGJiYj0iQyIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTJfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTJfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUwN2Y2YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMl8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxBQUE+CisgICAgIDxCQkIgYmJiPSJDWiIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTJfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTJfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBkODFhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMl8yLnhtbApAQCAtMCwwICsxLDMgQEAKKzxBQUE+CisgICAgIDxCQkIgYmJiPSJDWkNaIi8+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xMy5zY3QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTMuc2N0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNDMzZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTMuc2N0CkBAIC0wLDAgKzEsNyBAQAorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy5hc2NjLm5ldC94bWwvc2NoZW1hdHJvbiIgPgorICAgICA8cGF0dGVybiBuYW1lPSJTdW0gZXF1YWxzIDEwMCUuIj4KKyAgICAgICAgICA8cnVsZSBjb250ZXh0PSJUb3RhbCI+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9InN1bSgvL1BlcmNlbnQpID0gMTAwIj5UaGUgdmFsdWVzIGRvIG5vdCBzdW0gdG8gMTAwJS4gPC9hc3NlcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xM18wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xM18wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjYxOWMzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEzXzAueG1sCkBAIC0wLDAgKzEsNiBAQAorPFRvdGFsPgorICAgICA8UGVyY2VudD4yMDwvUGVyY2VudD4KKyAgICAgPFBlcmNlbnQ+MzA8L1BlcmNlbnQ+CisgICAgIDxQZXJjZW50PjEwPC9QZXJjZW50PgorICAgICA8UGVyY2VudD41MDwvUGVyY2VudD4gICAgICAgICAgCis8L1RvdGFsPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEzXzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEzXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYjczNjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTNfMS54bWwKQEAgLTAsMCArMSw1IEBACis8VG90YWw+CisgICAgIDxQZXJjZW50PjIwPC9QZXJjZW50PgorICAgICA8UGVyY2VudD4xMDwvUGVyY2VudD4KKyAgICAgPFBlcmNlbnQ+NTA8L1BlcmNlbnQ+ICAgICAgICAgIAorPC9Ub3RhbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xM18yLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xM18yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjRkNzZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjEzXzIueG1sCkBAIC0wLDAgKzEsNSBAQAorPFRvdGFsPgorICAgICA8UGVyY2VudD4yMDwvUGVyY2VudD4KKyAgICAgPFBlcmNlbnQ+MzA8L1BlcmNlbnQ+CisgICAgIDxQZXJjZW50PjUwPC9QZXJjZW50PiAgICAgICAgICAKKzwvVG90YWw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTQuc2N0IGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjE0LnNjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOThiNmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjE0LnNjdApAQCAtMCwwICsxLDEwIEBACis8c2NoZW1hIHhtbG5zPSJodHRwOi8vd3d3LmFzY2MubmV0L3htbC9zY2hlbWF0cm9uIiA+CisgICAgIDxwYXR0ZXJuIG5hbWU9ImEgY2hpbGQgb2Ygc2VsZWN0ZWQgZWxlbWVudHMiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkNDQyI+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9InBhcmVudDo6KltuYW1lKCk9J0JCQicgb3IgbmFtZSgpPSdEREQnXSI+RWxlbWVudCBDQ0MgbXVzdCBub3QgYmUgYSBjaGlsZCBvZiBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgIDxuYW1lIHBhdGg9InBhcmVudDo6KiIvPgorICAgICAgICAgICAgICAgPC9hc3NlcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjE0XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjE0XzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MjcwNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTRfMC54bWwKQEAgLTAsMCArMSwxMiBAQAorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgPC9CQkI+CisgICAgIDxDQ0MvPgorICAgICA8REREPgorICAgICAgICAgIDxDQ0MvPgorICAgICAgICAgIDxFRUU+CisgICAgICAgICAgICAgICA8Q0NDLz4KKyAgICAgICAgICA8L0VFRT4KKyAgICAgPC9EREQ+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xNS5zY3QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTUuc2N0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkYTVkODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMTUuc2N0CkBAIC0wLDAgKzEsMTEgQEAKKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cuYXNjYy5uZXQveG1sL3NjaGVtYXRyb24iID4KKyAgICAgPHBhdHRlcm4gbmFtZT0iaWQgaXMgdGhlIG9ubHkgcGVybWl0ZWQgYXR0cmlidXRlIG5hbWUiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IioiPgorICAgICAgICAgICAgICAgPHJlcG9ydCB0ZXN0PSJAKltub3QobmFtZSgpPSdpZCcpXSI+QXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgIDxuYW1lIHBhdGg9IkAqW25vdChuYW1lKCk9J2lkJyldIi8+IGlzIGZvcmJpZGRlbiBpbiBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgIDxuYW1lLz4KKyAgICAgICAgICAgICAgIDwvcmVwb3J0PgorICAgICAgICAgIDwvcnVsZT4KKyAgICAgPC9wYXR0ZXJuPgorPC9zY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xNV8wLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24xNV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTBhZWRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjE1XzAueG1sCkBAIC0wLDAgKzEsNCBAQAorPEFBQSBuYW1lPSJhYWEiPgorPEJCQiBpZD0iYmJiIi8+Cis8Q0NDIGNvbG9yPSJjY2MiLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjFfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2FjMzg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjFfMC54bWwKQEAgLTAsMCArMSwzIEBACis8QUFBPgorICAgICA8QkJCLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjFfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMV8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjFjOTBhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjFfMS54bWwKQEAgLTAsMCArMSwzIEBACis8QUFBPgorICAgICA8Q0NDLz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjIuc2N0IGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjIuc2N0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OTc0YTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMi5zY3QKQEAgLTAsMCArMSw5IEBACis8c2NoZW1hIHhtbG5zPSJodHRwOi8vd3d3LmFzY2MubmV0L3htbC9zY2hlbWF0cm9uIiA+CisgICAgIDxwYXR0ZXJuIG5hbWU9IkNoYXJhY3RlciBAIGZvcmJpZGRlbiI+CisgICAgICAgICAgPHJ1bGUgY29udGV4dD0iKiI+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9ImNvbnRhaW5zKC4sJ0AnKSI+VGV4dCBpbiBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgIDxuYW1lLz4gbXVzdCBub3QgY29udGFpbiBjaGFyYWN0ZXIgQAorICAgICAgICAgICAgICAgPC9yZXBvcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24yXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjJfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMyYzUwNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24yXzAueG1sCkBAIC0wLDAgKzEsNCBAQAorPEFBQT4KKyAgICAgPEJCQj5iYmJiPC9CQkI+CisgICAgIDxDQ0M+Y2NjYzwvQ0NDPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMl8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24yXzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZGUxOTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMl8xLnhtbApAQCAtMCwwICsxLDQgQEAKKzxBQUE+CisgICAgIDxCQkI+YmJiYkBiYmIuY29tPC9CQkI+CisgICAgIDxDQ0M+Y2NjQGNjYy5jb208L0NDQz4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjJfMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uMl8yLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTJkNDRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjJfMi54bWwKQEAgLTAsMCArMSw1IEBACis8QUFBPgorICAgICA8QkJCPmJiYmI8L0JCQj4KKyAgICAgPENDQz5jY2NjPC9DQ0M+CisgICAgIGFhYUBhYWEubmV0Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24zLnNjdCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24zLnNjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzViNjdiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjMuc2N0CkBAIC0wLDAgKzEsOCBAQAorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy5hc2NjLm5ldC94bWwvc2NoZW1hdHJvbiIgPgorICAgICA8cGF0dGVybiBuYW1lPSJBdHRyaWJ1dGUgdGVzdCI+CisgICAgICAgICAgPHJ1bGUgY29udGV4dD0iQ0NDIj4KKyAgICAgICAgICAgICAgIDxhc3NlcnQgdGVzdD0iQG5hbWUiPmF0dHJpYnV0ZSBuYW1lIGlzIG5vdCBwcmVzZW50PC9hc3NlcnQ+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9IkBuYW1lIj5hdHRyaWJ1dGUgbmFtZSBpcyBwcmVzZW50PC9yZXBvcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24zXzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjNfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM4ZGM0MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b24zXzAueG1sCkBAIC0wLDAgKzEsOCBAQAorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgPC9CQkI+CisgICAgIDxDQ0MgbmFtZT0iYzEiLz4KKyAgICAgPENDQyBuYW1lPSJjMiIvPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uNC5zY3QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uNC5zY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI4YTRlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b240LnNjdApAQCAtMCwwICsxLDEwIEBACis8c2NoZW1hIHhtbG5zPSJodHRwOi8vd3d3LmFzY2MubmV0L3htbC9zY2hlbWF0cm9uIiA+CisgICAgIDxwYXR0ZXJuIG5hbWU9IlJvb3QgdGVzdCI+CisgICAgICAgICAgPHJ1bGUgY29udGV4dD0iLyoiPgorICAgICAgICAgICAgICAgPGFzc2VydCB0ZXN0PSJuYW1lKCk9J0FBQSciPlJvb3QgZWxlbWVudCBpcworICAgICAgICAgICAgICAgICAgICA8bmFtZS8+LCBub3QgQUFBCisgICAgICAgICAgICAgICA8L2Fzc2VydD4KKyAgICAgICAgICAgICAgIDxyZXBvcnQgdGVzdD0ibmFtZSgpPSdBQUEnIj5Sb290IGVsZW1lbnQgaXMgQUFBPC9yZXBvcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b240XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjRfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJhMzMyZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b240XzAueG1sCkBAIC0wLDAgKzEsNiBAQAorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b240XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjRfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJlY2JjZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b240XzEueG1sCkBAIC0wLDAgKzEsNiBAQAorPFhYWD4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgPC9CQkI+Cis8L1hYWD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241LnNjdCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241LnNjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmNiOGJiCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjUuc2N0CkBAIC0wLDAgKzEsMTIgQEAKKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cuYXNjYy5uZXQveG1sL3NjaGVtYXRyb24iID4KKyAgICAgPHBhdHRlcm4gbmFtZT0iU2VsZWN0IGVtcHR5IGVsZW1lbnRzIENDQyI+CisgICAgICAgICAgPHJ1bGUgY29udGV4dD0iQ0NDIj4KKyAgICAgICAgICAgICAgIDxhc3NlcnQgdGVzdD0ibm9ybWFsaXplLXNwYWNlKC4pIGFuZCAqIj5Tb3VyY2UgY29udGFpbnMgYW4gZW1wdHkgZWxlbWVudCBDQ0MgPC9hc3NlcnQ+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9Im5vcm1hbGl6ZS1zcGFjZSguKSA9ICcnIj5bMV1BbiBlbGVtZW50IENDQyBkb2VzIG5vdCBjb250YWluIGFueSB0ZXh0PC9yZXBvcnQ+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9Im5vcm1hbGl6ZS1zcGFjZSguKSI+WzJdQW4gZWxlbWVudCBDQ0MgZG9lcyBub3QgY29udGFpbiBhbnkgdGV4dDwvYXNzZXJ0PgorICAgICAgICAgICAgICAgPHJlcG9ydCB0ZXN0PSJub3QoKikiPlsxXUFuIGVsZW1lbnQgQ0NDIGRvZXMgbm90IGNvbnRhaW4gYW55IGNoaWxkIGVsZW1lbnQ8L3JlcG9ydD4KKyAgICAgICAgICAgICAgIDxhc3NlcnQgdGVzdD0iKiI+WzJdQW4gZWxlbWVudCBDQ0MgZG9lcyBub3QgY29udGFpbiBhbnkgY2hpbGQgZWxlbWVudDwvYXNzZXJ0PgorICAgICAgICAgIDwvcnVsZT4KKyAgICAgPC9wYXR0ZXJuPgorPC9zY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjVfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM3YzM2YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241XzAueG1sCkBAIC0wLDAgKzEsNSBAQAorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDLz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjVfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkxNWZhNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241XzEueG1sCkBAIC0wLDAgKzEsNSBAQAorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDPkkgYW0gQ0NDIGVsZW1lbnQ8L0NDQz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241XzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjVfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmExMTQwMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b241XzIueG1sCkBAIC0wLDAgKzEsNyBAQAorPEFBQT4KKyAgICAgPEJCQj4KKyAgICAgICAgICA8Q0NDPgorICAgICAgICAgICAgICAgPERERC8+CisgICAgICAgICAgPC9DQ0M+CisgICAgIDwvQkJCPgorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uNi5zY3QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uNi5zY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc4YWU1OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b242LnNjdApAQCAtMCwwICsxLDggQEAKKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cuYXNjYy5uZXQveG1sL3NjaGVtYXRyb24iID4KKyAgICAgPHBhdHRlcm4gbmFtZT0iUHJlZGVmaW5lZCB2YWx1ZXMiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkFBQSI+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9Im5vcm1hbGl6ZS1zcGFjZSguKSA9ICdhYWEnIG9yIG5vcm1hbGl6ZS1zcGFjZSguKSA9ICdiYmInIj5PLksuPC9yZXBvcnQ+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9Im5vcm1hbGl6ZS1zcGFjZSguKSA9ICdhYWEnIG9yIG5vcm1hbGl6ZS1zcGFjZSguKSA9ICdiYmInIj5UaGUgQUFBIHZhbHVlIGlzIG5vdCBwZXJtaXR0ZWQuPC9hc3NlcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b242XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjZfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNlZmI3MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b242XzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KK2FhYQorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uNl8xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b242XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkN2RhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uNl8xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxBQUE+CisgICAgICAgICAgYmJiCis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b242XzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjZfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU1ZjI0ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b242XzIueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KKyAgY2NjCis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243LnNjdCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243LnNjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjJhODllCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjcuc2N0CkBAIC0wLDAgKzEsOSBAQAorPHNjaGVtYSB4bWxucz0iaHR0cDovL3d3dy5hc2NjLm5ldC94bWwvc2NoZW1hdHJvbiIgPgorICAgICA8cGF0dGVybiBuYW1lPSJUZXN0IGludGVnZXIiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkFBQSI+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9ImZsb29yKC4pID0gbnVtYmVyKC4pIj5PLksuPC9yZXBvcnQ+CisgICAgICAgICAgICAgICA8YXNzZXJ0IHRlc3Q9ImZsb29yKC4pID0gbnVtYmVyKC4pIj5UaGUgQUFBIHZhbHVlIGlzIG5vdCBhbiBpbnRlZ2VyLjwvYXNzZXJ0PgorICAgICAgICAgIDwvcnVsZT4KKyAgICAgPC9wYXR0ZXJuPgorPC9zY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjdfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNlZmI3MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243XzAueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KK2FhYQorPC9BQUE+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uN18xLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243XzEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYTBhZTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uN18xLnhtbApAQCAtMCwwICsxLDMgQEAKKzxBQUE+CisgMTIuMjM0Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243XzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjdfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI3Y2ZlNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243XzIueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KKzQ1Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243XzMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjdfMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE3Mjk1YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b243XzMueG1sCkBAIC0wLDAgKzEsMyBAQAorPEFBQT4KKzAKKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjdfNC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uN180LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjM0ZmJlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjdfNC54bWwKQEAgLTAsMCArMSwzIEBACis8QUFBPgorLTQ1Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b244LnNjdCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b244LnNjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjQxZWNkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjguc2N0CkBAIC0wLDAgKzEsMTAgQEAKKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cuYXNjYy5uZXQveG1sL3NjaGVtYXRyb24iID4KKyAgICAgPHBhdHRlcm4gbmFtZT0iVGVzdCBjb3VudCI+CisgICAgICAgICAgPHJ1bGUgY29udGV4dD0iLyoiPgorICAgICAgICAgICAgICAgPHJlcG9ydCB0ZXN0PSJjb3VudCgvL0JCQikgPSBjb3VudCgvL0FBQSkiPk8uSy48L3JlcG9ydD4KKyAgICAgICAgICAgICAgIDxhc3NlcnQgdGVzdD0iY291bnQoLy9CQkIpICZsdDs9IGNvdW50KC8vQUFBKSI+U29tZSBBQUEgYXJlIG1pc3Npbmc8L2Fzc2VydD4KKyAgICAgICAgICAgICAgIDxyZXBvcnQgdGVzdD0iY291bnQoLy9CQkIpICZsdDsgY291bnQoLy9BQUEpIj5Tb21lIEJCQiBhcmUgbWlzc2luZzwvcmVwb3J0PgorICAgICAgICAgIDwvcnVsZT4KKyAgICAgPC9wYXR0ZXJuPgorPC9zY2hlbWE+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b244XzAueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjhfMC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3MzliYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b244XzAueG1sCkBAIC0wLDAgKzEsOCBAQAorPFhYWD4KKyAgICAgPEJCQi8+CisgICAgIDxCQkIvPgorICAgICA8QUFBLz4KKyAgICAgPEJCQi8+CisgICAgIDxBQUEvPgorICAgICA8QUFBLz4KKzwvWFhYPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjhfMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uOF8xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTZkYmUyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjhfMS54bWwKQEAgLTAsMCArMSw3IEBACis8WFhYPgorICAgICA8QkJCLz4KKyAgICAgPEFBQS8+CisgICAgIDxCQkIvPgorICAgICA8QUFBLz4KKyAgICAgPEFBQS8+Cis8L1hYWD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b244XzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjhfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg1ZGU4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b244XzIueG1sCkBAIC0wLDAgKzEsNyBAQAorPFhYWD4KKyAgICAgPEJCQi8+CisgICAgIDxCQkIvPgorICAgICA8QUFBLz4KKyAgICAgPEJCQi8+CisgICAgIDxBQUEvPgorPC9YWFg+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uOS5zY3QgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uOS5zY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY2Nzg3NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b245LnNjdApAQCAtMCwwICsxLDkgQEAKKzxzY2hlbWEgeG1sbnM9Imh0dHA6Ly93d3cuYXNjYy5uZXQveG1sL3NjaGVtYXRyb24iID4KKyAgICAgPHBhdHRlcm4gbmFtZT0iVGVzdCBhdHRyaWJ1dGUiPgorICAgICAgICAgIDxydWxlIGNvbnRleHQ9IkNDQyI+CisgICAgICAgICAgICAgICA8cmVwb3J0IHRlc3Q9InBhcmVudDo6QkJCIGFuZCBub3QoQGlkKSI+QXR0cmlidXRlIGlkIGlzIG1pc3Npbmc8L3JlcG9ydD4KKyAgICAgICAgICAgICAgIDxyZXBvcnQgdGVzdD0ibm90KHBhcmVudDo6QkJCKSBhbmQgQGlkIj5BdHRyaWJ1dGUgaWQgaXMgdXNlZCBpbiB3cm9uZyBjb250ZXh0PC9yZXBvcnQ+CisgICAgICAgICAgPC9ydWxlPgorICAgICA8L3BhdHRlcm4+Cis8L3NjaGVtYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjlfMC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NoZW1hdHJvbi96dm9uOV8wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODcxNTE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjlfMC54bWwKQEAgLTAsMCArMSw3IEBACis8QUFBPgorICAgICA8Q0NDLz4KKyAgICAgPENDQy8+CisgICAgIDxCQkI+CisgICAgICAgICAgPENDQyBpZD0iUTEiLz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b245XzEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjlfMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWMxYzFiZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b245XzEueG1sCkBAIC0wLDAgKzEsNyBAQAorPEFBQT4KKyAgICAgPENDQyBpZD0iUTIiLz4KKyAgICAgPENDQy8+CisgICAgIDxCQkI+CisgICAgICAgICAgPENDQyBpZD0iUTEiLz4KKyAgICAgPC9CQkI+Cis8L0FBQT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b245XzIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjaGVtYXRyb24venZvbjlfMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UwOWZhYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY2hlbWF0cm9uL3p2b245XzIueG1sCkBAIC0wLDAgKzEsNyBAQAorPEFBQT4KKyAgICAgPENDQy8+CisgICAgIDxDQ0MvPgorICAgICA8QkJCPgorICAgICAgICAgIDxDQ0MvPgorICAgICA8L0JCQj4KKzwvQUFBPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvYmFzZS5zY3JpcHQgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9iYXNlLnNjcmlwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmMzZjU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvYmFzZS5zY3JpcHQKQEAgLTAsMCArMSw3IEBACitiYXNlCitjZCAvL2UKK2Jhc2UKK2NkIC4vL2ltZworYmFzZQorZXhpdAorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9iYXNlLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL2Jhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxZjcxY2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9iYXNlLnhtbApAQCAtMCwwICsxLDcgQEAKKzxkb2M+CisgICAgPGUgeG1sOmJhc2U9Imh0dHA6Ly9leGFtcGxlLmNvbS9iYXNlLyI+CisJPGltYWdlcyB4bWw6YmFzZT0iaW1hZ2VzLyI+CisJICAgIDxpbWcgaHJlZj0iaW1nMS5naWYiLz4KKwk8L2ltYWdlcz4KKyAgICA8L2U+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL2Jhc2UyLnNjcmlwdCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL2Jhc2UyLnNjcmlwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmMzZjU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvYmFzZTIuc2NyaXB0CkBAIC0wLDAgKzEsNyBAQAorYmFzZQorY2QgLy9lCitiYXNlCitjZCAuLy9pbWcKK2Jhc2UKK2V4aXQKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvYmFzZTIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvYmFzZTIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlOTJhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9iYXNlMi54bWwKQEAgLTAsMCArMSw3IEBACis8ZG9jPgorICAgIDxlIHhtbDpiYXNlPSJodG1sLyI+CisJPGltYWdlcyB4bWw6YmFzZT0iLi4vaW1hZ2VzLyI+CisJICAgIDxpbWcgaHJlZj0iaW1nMS5naWYiLz4KKwk8L2ltYWdlcz4KKyAgICA8L2U+Cis8L2RvYz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL3NldDEuc2NyaXB0IGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvc2V0MS5zY3JpcHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlhM2U2OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL3NldDEuc2NyaXB0CkBAIC0wLDAgKzEsMiBAQAorc2V0IDxiLz4KK3NhdmUgLQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvc2V0MS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9zZXQxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2QwNjk0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvc2V0MS54bWwKQEAgLTAsMCArMSBAQAorPGE+Zm9vPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvc2V0My5zY3JpcHQgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9zZXQzLnNjcmlwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTk3NDVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvc2V0My5zY3JpcHQKQEAgLTAsMCArMSw1IEBACitjZCAqCit4cGF0aCAvLypbbmFtZXNwYWNlLXVyaSgpPSJiYXIiXQorc2V0IDxiLz4KK3hwYXRoIC8vKltuYW1lc3BhY2UtdXJpKCk9ImJhciJdCitzYXZlIC0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL3NldDMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvc2V0My54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjExYjRlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL3NldDMueG1sCkBAIC0wLDAgKzEgQEAKKzxhIHhtbG5zPSJiYXIiPmZvbzwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL3NldDQuc2NyaXB0IGIvbGlieG1sMi0yLjcuNy90ZXN0L3NjcmlwdHMvc2V0NC5zY3JpcHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlkNjRjYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL3NldDQuc2NyaXB0CkBAIC0wLDAgKzEsNCBAQAorY2QgYS9iCitzZXQgPGE6Yy8+Cit4cGF0aCAvLypbbmFtZXNwYWNlLXVyaSgpPSJmb28iXQorc2F2ZSAtCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9zZXQ0LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC9zY3JpcHRzL3NldDQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiYTQ0MDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2NyaXB0cy9zZXQ0LnhtbApAQCAtMCwwICsxIEBACis8YSB4bWxuczphPSJiYXIiPjxiIHhtbG5zOmE9ImZvbyIvPjwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zbGFzaGRvdC5yZGYgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2xhc2hkb3QucmRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3YTYyNGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2xhc2hkb3QucmRmCkBAIC0wLDAgKzEsNjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PjxyZGY6UkRGCit4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCit4bWxucz0iaHR0cDovL215Lm5ldHNjYXBlLmNvbS9yZGYvc2ltcGxlLzAuOS8iPgorCisgIDxjaGFubmVsPgorICAgIDx0aXRsZT5TbGFzaGRvdDpOZXdzIGZvciBOZXJkcy4gU3R1ZmYgdGhhdCBNYXR0ZXJzLjwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy88L2xpbms+CisgICAgPGRlc2NyaXB0aW9uPk5ld3MgZm9yIE5lcmRzLiAgU3R1ZmYgdGhhdCBNYXR0ZXJzPC9kZXNjcmlwdGlvbj4KKyAgPC9jaGFubmVsPgorCisgIDxpbWFnZT4KKyAgICA8dGl0bGU+U2xhc2hkb3Q8L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9pbWFnZXMvc2xhc2hkb3RsZy5naWY8L3VybD4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnPC9saW5rPgorICA8L2ltYWdlPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPjEwMCBNYml0L3Mgb24gRmlicmUgdG8gdGhlIGhvbWU8L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQ0MDIxMS5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPkdpbXAgMS4yIFByZXZpZXc8L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzODI0Ni5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPlNvbnkncyBBSUJPIHJvYm90IFNvbGQgT3V0PC90aXRsZT4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzIyNTYuc2h0bWw8L2xpbms+CisgIDwvaXRlbT4KKyAgCisgIDxpdGVtPgorICAgIDx0aXRsZT5Bc2sgU2xhc2hkb3Q6IEFub3RoZXIgV29yZCBmb3IgIkhhY2tlciI/PC90aXRsZT4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG90Lzk5LzA2LzA1LzE4MTUyMjUuc2h0bWw8L2xpbms+CisgIDwvaXRlbT4KKyAgCisgIDxpdGVtPgorICAgIDx0aXRsZT5Db3JlbCBMaW51eCBGQVE8L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTg0MjIxOC5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPlVwc2lkZSBkb3duc2lkZXMgTVAzLkNPTS48L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1ODIxMC5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPjIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoPC90aXRsZT4KKyAgICA8bGluaz5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA1LzE1NTQyNTguc2h0bWw8L2xpbms+CisgIDwvaXRlbT4KKyAgCisgIDxpdGVtPgorICAgIDx0aXRsZT5TdXBwcmVzc2lvbiBvZiBjb2xkIGZ1c2lvbiByZXNlYXJjaD88L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMjMxMzIwMC5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorICAKKyAgPGl0ZW0+CisgICAgPHRpdGxlPkNhbGlmb3JuaWEgR292LiBIYWx0cyBXYWdlIEluZm8gU2FsZTwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzUyNTYuc2h0bWw8L2xpbms+CisgIDwvaXRlbT4KKyAgCisgIDxpdGVtPgorICAgIDx0aXRsZT5SZWQgSGF0IEFubm91bmNlcyBJUE88L3RpdGxlPgorICAgIDxsaW5rPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMDg0OTIwNy5zaHRtbDwvbGluaz4KKyAgPC9pdGVtPgorPC9yZGY6UkRGPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC9zbGFzaGRvdC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2xhc2hkb3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZTc5ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2xhc2hkb3QueG1sCkBAIC0wLDAgKzEsMTEyIEBACis8dWx0cmFtb2RlPgorIDxzdG9yeT4KKyAgICA8dGl0bGU+MTAwIE1iaXQvcyBvbiBGaWJyZSB0byB0aGUgaG9tZTwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0NDAyMTEuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA2IDE0OjM5OjU5PC90aW1lPgorICAgIDxhdXRob3I+Q21kclRhY288L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD53b3VsZG4ndC1pdC1iZS1uaWNlPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5pbnRlcm5ldDwvdG9waWM+CisgICAgPGNvbW1lbnRzPjIwPC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNpbnRlcm5ldC5qcGc8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+R2ltcCAxLjIgUHJldmlldzwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA2LzE0MzgyNDYuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA2IDE0OjM4OjQwPC90aW1lPgorICAgIDxhdXRob3I+Q21kclRhY288L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD5zdHVmZi10by1yZWFkPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5naW1wPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTI8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY2dpbXAuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKyA8c3Rvcnk+CisgICAgPHRpdGxlPlNvbnkncyBBSUJPIHJvYm90IFNvbGQgT3V0PC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDYvMTQzMjI1Ni5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDYgMTQ6MzI6NTE8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnN0dWZmLXRvLXNlZTwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+dGVjaDwvdG9waWM+CisgICAgPGNvbW1lbnRzPjEwPC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWN0ZWNoMi5qcGc8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+QXNrIFNsYXNoZG90OiBBbm90aGVyIFdvcmQgZm9yICJIYWNrZXIiPzwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2Fza3NsYXNoZG90Lzk5LzA2LzA1LzE4MTUyMjUuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA1IDIwOjAwOjAwPC90aW1lPgorICAgIDxhdXRob3I+Q2xpZmY8L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD5oYWNrZXItdnMtY3JhY2tlcjwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+bmV3czwvdG9waWM+CisgICAgPGNvbW1lbnRzPjM4NTwvY29tbWVudHM+CisgICAgPHNlY3Rpb24+YXNrc2xhc2hkb3Q8L3NlY3Rpb24+CisgICAgPGltYWdlPnRvcGljbmV3cy5naWY8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+Q29yZWwgTGludXggRkFRPC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTg0MjIxOC5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDUgMTg6NDI6MDY8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnN0dWZmLXRvLXJlYWQ8L2RlcGFydG1lbnQ+CisgICAgPHRvcGljPmNvcmVsPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTY0PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNjb3JlbC5naWY8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+VXBzaWRlIGRvd25zaWRlcyBNUDMuQ09NLjwvdGl0bGU+CisgICAgPHVybD5odHRwOi8vc2xhc2hkb3Qub3JnL2FydGljbGVzLzk5LzA2LzA1LzE1NTgyMTAuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA1IDE1OjU2OjQ1PC90aW1lPgorICAgIDxhdXRob3I+Q21kclRhY288L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD5zdHVmZi10by10aGluay1hYm91dDwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+bXVzaWM8L3RvcGljPgorICAgIDxjb21tZW50cz40ODwvY29tbWVudHM+CisgICAgPHNlY3Rpb24+YXJ0aWNsZXM8L3NlY3Rpb24+CisgICAgPGltYWdlPnRvcGljbXVzaWMuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKyA8c3Rvcnk+CisgICAgPHRpdGxlPjIgVGVyYWJpdHMgb2YgQmFuZHdpZHRoPC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDUvMTU1NDI1OC5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDUgMTU6NTM6NDM8L3RpbWU+CisgICAgPGF1dGhvcj5DbWRyVGFjbzwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PmZhc3Rlci1wb3JuPC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5pbnRlcm5ldDwvdG9waWM+CisgICAgPGNvbW1lbnRzPjY2PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNpbnRlcm5ldC5qcGc8L2ltYWdlPgorICA8L3N0b3J5PgorIDxzdG9yeT4KKyAgICA8dGl0bGU+U3VwcHJlc3Npb24gb2YgY29sZCBmdXNpb24gcmVzZWFyY2g/PC90aXRsZT4KKyAgICA8dXJsPmh0dHA6Ly9zbGFzaGRvdC5vcmcvYXJ0aWNsZXMvOTkvMDYvMDQvMjMxMzIwMC5zaHRtbDwvdXJsPgorICAgIDx0aW1lPjE5OTktMDYtMDQgMjM6MTI6Mjk8L3RpbWU+CisgICAgPGF1dGhvcj5IZW1vczwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PnBvc3NpYmx5LXByb2JhYmx5PC9kZXBhcnRtZW50PgorICAgIDx0b3BpYz5zY2llbmNlPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MjE3PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNzY2llbmNlLmdpZjwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5DYWxpZm9ybmlhIEdvdi4gSGFsdHMgV2FnZSBJbmZvIFNhbGU8L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8yMzUyNTYuc2h0bWw8L3VybD4KKyAgICA8dGltZT4xOTk5LTA2LTA0IDIzOjA1OjM0PC90aW1lPgorICAgIDxhdXRob3I+SGVtb3M8L2F1dGhvcj4KKyAgICA8ZGVwYXJ0bWVudD53b28taG9vITwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+dXNhPC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTY8L2NvbW1lbnRzPgorICAgIDxzZWN0aW9uPmFydGljbGVzPC9zZWN0aW9uPgorICAgIDxpbWFnZT50b3BpY3VzLmdpZjwvaW1hZ2U+CisgIDwvc3Rvcnk+CisgPHN0b3J5PgorICAgIDx0aXRsZT5SZWQgSGF0IEFubm91bmNlcyBJUE88L3RpdGxlPgorICAgIDx1cmw+aHR0cDovL3NsYXNoZG90Lm9yZy9hcnRpY2xlcy85OS8wNi8wNC8wODQ5MjA3LnNodG1sPC91cmw+CisgICAgPHRpbWU+MTk5OS0wNi0wNCAxOTozMDoxODwvdGltZT4KKyAgICA8YXV0aG9yPkp1c3RpbjwvYXV0aG9yPgorICAgIDxkZXBhcnRtZW50PmRldGFpbHMtc2tldGNoeTwvZGVwYXJ0bWVudD4KKyAgICA8dG9waWM+cmVkaGF0PC90b3BpYz4KKyAgICA8Y29tbWVudHM+MTU1PC9jb21tZW50cz4KKyAgICA8c2VjdGlvbj5hcnRpY2xlczwvc2VjdGlvbj4KKyAgICA8aW1hZ2U+dG9waWNyZWRoYXQuZ2lmPC9pbWFnZT4KKyAgPC9zdG9yeT4KKzwvdWx0cmFtb2RlPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3NsYXNoZG90MTYueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3NsYXNoZG90MTYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2YTdmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc2xhc2hkb3QxNi54bWwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3N2ZzEgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc3ZnMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41M2JmMzhmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3N2ZzEKQEAgLTAsMCArMSwxNjMgQEAKKzw/eG1sIHZlcnNpb24gPSAiMS4wIiBzdGFuZGFsb25lID0gInllcyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyBBcHJpbCAxOTk5Ly9FTiIKKyAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHL3N2Zy0xOTk5MDQxMi5kdGQiPgorPHN2ZyB3aWR0aCA9ICIyNDJweCIgaGVpZ2h0PSIzODNweCI+Cis8ZyBzdHlsZSA9ICJzdHJva2U6ICMwMDAwMDAiID4gCis8L2c+IAorPGcgc3R5bGUgPSAiZmlsbDogI2YyY2M5OSIgPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNjksMTggODIsOCA5OSwzIDExOCw1IDEzNSwxMiAxNDksMjEgMTU2LDEzIDE2NSw5IDE3NywxMyAxODMsMjggMTgwLDUwIDE2NCw5MSAxNTUsMTA3IDE1NCwxMTQgMTUxLDEyMSAxNDEsMTI3IDEzOSwxMzYgMTU1LDIwNiAxNTcsMjUxIDEyNiwzNDIgMTMzLDM1NyAxMjgsMzc2IDgzLDM3NiA3NSwzNjggNjcsMzUwIDYxLDM1MCA1MywzNjkgNCwzNjkgMiwzNjEgNSwzNTQgMTIsMzQyIDE2LDMyMSA0LDI1NyA0LDI0NCA3LDIxOCA5LDE3OSAyNiwxMjcgNDMsOTMgMzIsNzcgMzAsNzAgMjQsNjcgMTYsNDkgMTcsMzUgMTgsMjMgMzAsMTIgNDAsNyA1Myw3IDYyLDEyIDY5LDE4IDY5LDE4IDY5LDE4Ii8+IAorPC9nPiAKKzxnIHN0eWxlID0gImZpbGw6ICNlNWIyN2YiID4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE0Miw3OSAxMzYsNzQgMTM4LDgyIDEzMyw3OCAxMzMsODQgMTI3LDc4IDEyOCw4NSAxMjQsODAgMTI1LDg3IDExOSw4MiAxMTksOTAgMTI1LDk5IDEyNSw5NiAxMjgsMTAwIDEyOCw5NCAxMzEsOTggMTMyLDkzIDEzNSw5NyAxMzYsOTMgMTM4LDk3IDEzOSw5NCAxNDEsOTggMTQzLDk0IDE0NCw4NSAxNDIsNzkgMTQyLDc5IDE0Miw3OSIvPiAKKzwvZz4gCis8ZyBzdHlsZSA9ICJmaWxsOiAjZWI4MDgwIiA+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMjcsMTAxIDEzMiwxMDAgMTM3LDk5IDE0NCwxMDEgMTQzLDEwNSAxMzUsMTEwIDEyNywxMDEgMTI3LDEwMSAxMjcsMTAxIi8+IAorPC9nPiAKKzxnIHN0eWxlID0gImZpbGw6ICNmMmNjOTkiID4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE3OCwyMjkgMTU3LDI0OCAxMzksMjk2IDEyNiwzNDkgMTM3LDM1NiAxNTgsMzU3IDE4MywzNDIgMjEyLDMzMiAyMzUsMjg4IDIzNSwyNjEgMjI4LDI1MiAyMTIsMjUwIDE4OCwyNTEgMTc4LDIyOSAxNzgsMjI5IDE3OCwyMjkiLz4gCis8L2c+IAorPGcgc3R5bGUgPSAiZmlsbDogIzljODI2YiIgPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNTYsMjI5IDQ4LDI0MSA0OCwyNTAgNTcsMjgxIDYzLDMyNSA3MSwzMzggODEsMzE1IDc2LDMyMSA3OSwzMTEgODMsMzAxIDc1LDMwOCA4MCwyOTggNzMsMzAzIDc2LDI5NiA3MSwyOTggNzQsMjkyIDY5LDI5MyA3NCwyODQgNzgsMjc4IDcxLDI3OCA3NCwyNzQgNjgsMjczIDcwLDI2OCA2NiwyNjcgNjgsMjYxIDYwLDI2NiA2MiwyNTkgNjUsMjUzIDU3LDI1OCA1OSwyNTEgNTUsMjU0IDU1LDI0OCA2MCwyMzcgNTQsMjQwIDU4LDIzNCA1NCwyMzYgNTYsMjI5IDU2LDIyOSA1NiwyMjkiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDc0LDM2MyA3OSwzNjggODEsMzY4IDg1LDM2MiA4OSwzNjMgOTIsMzcwIDk2LDM3MyAxMDEsMzcyIDEwOCwzNjEgMTEwLDM3MSAxMTMsMzczIDExNiwzNzEgMTIwLDM1OCAxMjIsMzYzIDEyMywzNzEgMTI2LDM3MSAxMjksMzY3IDEzMiwzNTcgMTM1LDM2MSAxMzAsMzc2IDEyNywzNzcgOTQsMzc4IDg0LDM3NiA3NiwzNzEgNzQsMzYzIDc0LDM2MyA3NCwzNjMiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDIxMiwyNTAgMjE5LDI1MSAyMjgsMjU4IDIzNiwyNzAgMjM1LDI4NyAyMjUsMzA0IDIwNSwzMzIgMTc3LDM0MyAxNzEsMzUyIDE1OCwzNTcgMTY2LDM1MiAxNjgsMzQ2IDE2OCwzMzkgMTY1LDMzMyAxNTUsMzI3IDE1NSwzMjMgMTYxLDMyMCAxNjUsMzE2IDE2OSwzMTYgMTY3LDMxMiAxNzEsMzEzIDE2OCwzMDggMTczLDMwOSAxNzAsMzA2IDE3NywzMDYgMTc1LDMwOCAxNzcsMzExIDE3NCwzMTEgMTc2LDMxNiAxNzEsMzE1IDE3NCwzMTkgMTY4LDMyMCAxNjgsMzIzIDE3NSwzMjcgMTc5LDMzMiAxODMsMzI2IDE4NCwzMzIgMTg5LDMyMyAxOTAsMzI4IDE5NCwzMjAgMTk0LDMyNSAxOTksMzE2IDIwMSwzMjAgMjA0LDMxMyAyMDYsMzE2IDIwOCwzMTAgMjExLDMwNSAyMTksMjk4IDIyNiwyODggMjI5LDI3OSAyMjgsMjY2IDIyNCwyNTkgMjE3LDI1MyAyMTIsMjUwIDIxMiwyNTAgMjEyLDI1MCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTUxLDIwNSAxNTEsMjM4IDE0OSwyNTIgMTQxLDI2OCAxMjgsMjgyIDEyMSwzMDEgMTMwLDMwMCAxMjYsMzEzIDExOCwzMjQgMTE2LDMzNyAxMjAsMzQ2IDEzMywzNTIgMTMzLDM0MCAxMzcsMzMzIDE0NSwzMjkgMTU2LDMyNyAxNTMsMzE5IDE1MywyOTEgMTU3LDI3MSAxNzAsMjU5IDE3OCwyNzcgMTkzLDI1MCAxNzQsMjE2IDE1MSwyMDUgMTUxLDIwNSAxNTEsMjA1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA3OCwxMjcgOTAsMTQyIDk1LDE1NSAxMDgsMTY0IDEyNSwxNjcgMTM5LDE3NSAxNTAsMjA2IDE1MiwxOTEgMTQxLDE0MCAxMjEsMTQ4IDEwMCwxMzYgNzgsMTI3IDc4LDEyNyA3OCwxMjciLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDIxLDU4IDM1LDYzIDM4LDY4IDMyLDY5IDQyLDc0IDQwLDc5IDQ3LDgwIDU0LDgzIDQ1LDk0IDM0LDgxIDMyLDczIDI0LDY2IDIxLDU4IDIxLDU4IDIxLDU4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA3MSwzNCA2NywzNCA2NiwyNyA1OSwyNCA1NCwxNyA0OCwxNyAzOSwyMiAzMCwyNiAyOCwzMSAzMSwzOSAzOCw0NiAyOSw0NSAzNiw1NCA0MSw2MSA0MSw3MCA1MCw2OSA1NCw3MSA1NSw1OCA2Nyw1MiA3Niw0MyA3NiwzOSA2OCw0NCA3MSwzNCA3MSwzNCA3MSwzNCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTM5LDc0IDE0MSw4MyAxNDMsODkgMTQ0LDEwNCAxNDgsMTA0IDE1NSwxMDYgMTU0LDg2IDE1Nyw3NyAxNTUsNzIgMTUwLDc3IDE0NCw3NyAxMzksNzQgMTM5LDc0IDEzOSw3NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTA1LDQ0IDEwMiw1MyAxMDgsNTggMTExLDYyIDExMiw1NSAxMDUsNDQgMTA1LDQ0IDEwNSw0NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTQxLDQ4IDE0MSw1NCAxNDQsNTggMTM5LDYyIDEzNyw2NiAxMzYsNTkgMTM3LDUyIDE0MSw0OCAxNDEsNDggMTQxLDQ4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA5OCwxMzUgMTA0LDEzMCAxMDUsMTM0IDEwOCwxMzIgMTA4LDEzNSAxMTIsMTM0IDExMywxMzcgMTE2LDEzNiAxMTYsMTM5IDExOSwxMzkgMTI0LDE0MSAxMjgsMTQwIDEzMywxMzggMTQwLDEzMyAxMzksMTQwIDEyNiwxNDYgMTA0LDE0NCA5OCwxMzUgOTgsMTM1IDk4LDEzNSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgOTcsMTE2IDEwMywxMTkgMTAzLDExNiAxMTEsMTE4IDExNiwxMTcgMTIyLDExNCAxMjcsMTA3IDEzNSwxMTEgMTQyLDEwNyAxNDEsMTE0IDE0NSwxMTggMTQ5LDEyMSAxNDUsMTI1IDE0MCwxMjQgMTI3LDEyMSAxMTMsMTI1IDEwMCwxMjQgOTcsMTE2IDk3LDExNiA5NywxMTYiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE0NywzMyAxNTIsMzUgMTU3LDM0IDE1MywzMSAxNjAsMzEgMTU2LDI4IDE2MSwyOCAxNTksMjQgMTYzLDI1IDE2MywyMSAxNjUsMjIgMTcwLDIzIDE2NywxNyAxNzIsMjEgMTc0LDE4IDE3NSwyMyAxNzYsMjIgMTc3LDI4IDE3NywzMyAxNzQsMzcgMTc2LDM5IDE3NCw0NCAxNzEsNDkgMTY4LDUzIDE2NCw1NyAxNTksNjggMTU2LDcwIDE1NCw2MCAxNTAsNTEgMTQ2LDQzIDE0NCwzNSAxNDcsMzMgMTQ3LDMzIDE0NywzMyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgODUsNzIgODksNzQgOTMsNzUgMTAwLDc2IDEwNSw3NSAxMDIsNzkgOTQsNzkgODgsNzYgODUsNzIgODUsNzIgODUsNzIiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDg2LDIxNCA3OSwyMjEgNzYsMjMyIDgyLDIyNSA3OCwyMzkgODIsMjM0IDc4LDI0NSA4MSwyNDMgNzksMjU1IDg0LDI1MCA4NCwyNjcgODcsMjU0IDkwLDI3MSA5MCwyNTcgOTUsMjcxIDkzLDI1NiA5NSwyNDkgOTIsMjUyIDkzLDI0MyA4OSwyNTMgODksMjQxIDg2LDI1MCA4NywyMzYgODMsMjQ1IDg3LDIzMSA4MiwyMzEgOTAsMjE5IDg0LDIyMSA4NiwyMTQgODYsMjE0IDg2LDIxNCIvPiAKKzwvZz4gCis8ZyBzdHlsZSA9ICJmaWxsOiAjZmZjYzdmIiA+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA5Myw2OCA5Niw3MiAxMDAsNzMgMTA2LDcyIDEwOCw2NiAxMDUsNjMgMTAwLDYyIDkzLDY4IDkzLDY4IDkzLDY4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNDQsNjQgMTQyLDY4IDE0Miw3MyAxNDYsNzQgMTUwLDczIDE1NCw2NCAxNDksNjIgMTQ0LDY0IDE0NCw2NCAxNDQsNjQiLz4gCis8L2c+IAorPGcgc3R5bGUgPSAiZmlsbDogIzljODI2YiIgPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNTcsOTEgNDIsMTExIDUyLDEwNSA0MSwxMTcgNTMsMTEyIDQ2LDEyMCA1MywxMTYgNTAsMTI0IDU3LDExOSA1NSwxMjcgNjEsMTIyIDYwLDEzMCA2NywxMjYgNjYsMTM0IDcxLDEyOSA3MiwxMzYgNzcsMTMwIDc2LDEzNyA4MCwxMzMgODIsMTM4IDg2LDEzNSA5NiwxMzUgOTQsMTI5IDg2LDEyNCA4MywxMTcgNzcsMTIzIDc5LDExNyA3MywxMjAgNzUsMTEyIDY4LDExNiA3MSwxMTEgNjUsMTE0IDY5LDEwNyA2MywxMTAgNjgsMTAyIDYxLDEwNyA2Niw5OCA2MSwxMDMgNjMsOTcgNTcsOTkgNTcsOTEgNTcsOTEgNTcsOTEiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDgzLDc5IDc2LDc5IDY3LDgyIDc1LDgzIDY1LDg4IDc2LDg3IDY1LDkyIDc2LDkxIDY4LDk2IDc3LDk1IDcwLDk5IDgwLDk4IDcyLDEwNCA4MCwxMDIgNzYsMTA4IDg1LDEwMyA5MiwxMDEgODcsOTggOTMsOTYgODYsOTQgOTEsOTMgODUsOTEgOTMsODkgOTksODkgMTA1LDkzIDEwNyw4NSAxMDIsODIgOTIsODAgODMsNzkgODMsNzkgODMsNzkiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEwOSw3NyAxMTEsODMgMTA5LDg5IDExMyw5NCAxMTcsOTAgMTE3LDgxIDExNCw3OCAxMDksNzcgMTA5LDc3IDEwOSw3NyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTIyLDEyOCAxMjcsMTI2IDEzNCwxMjcgMTM2LDEyOSAxMzQsMTMwIDEzMCwxMjggMTI0LDEyOSAxMjIsMTI4IDEyMiwxMjggMTIyLDEyOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNzgsMjcgODIsMzIgODAsMzMgODIsMzYgNzgsMzcgODIsNDAgNzgsNDIgODEsNDYgNzYsNDcgNzgsNDkgNzQsNTAgODIsNTIgODcsNTAgODMsNDggOTEsNDYgODYsNDUgOTEsNDIgODgsNDAgOTIsMzcgODYsMzQgOTAsMzEgODYsMjkgODksMjYgNzgsMjcgNzgsMjcgNzgsMjciLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDgyLDE3IDkyLDIwIDc5LDIxIDkwLDI1IDgxLDI1IDk0LDI4IDkzLDI2IDEwMSwzMCAxMDEsMjYgMTA3LDMzIDEwOCwyOCAxMTEsNDAgMTEzLDM0IDExNSw0NSAxMTcsMzkgMTE5LDU0IDEyMSw0NiAxMjQsNTggMTI2LDQ3IDEyOSw1OSAxMzAsNDkgMTM0LDU4IDEzMyw0NCAxMzcsNDggMTMzLDM3IDEzNyw0MCAxMzMsMzIgMTI2LDIwIDEzNSwyNiAxMzIsMTkgMTM4LDIzIDEzNSwxNyAxNDIsMTggMTMyLDExIDExNiw2IDk0LDYgNzgsMTEgOTIsMTIgODAsMTQgOTAsMTYgODIsMTcgODIsMTcgODIsMTciLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE0MiwyMzQgMTMyLDIyNyAxMjQsMjIzIDExNSwyMjAgMTEwLDIyNSAxMTgsMjI0IDEyNywyMjkgMTM1LDIzNiAxMjIsMjM0IDExNSwyMzcgMTEzLDI0MiAxMjEsMjM4IDEzOSwyNDMgMTIxLDI0NSAxMTEsMjU0IDk1LDI1NCAxMDIsMjQ0IDEwNCwyMzUgMTEwLDIyOSAxMDAsMjMxIDEwNCwyMjQgMTEzLDIxNiAxMjIsMjE1IDEzMiwyMTcgMTQxLDIyNCAxNDUsMjMwIDE0OSwyNDAgMTQyLDIzNCAxNDIsMjM0IDE0MiwyMzQiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDExNSwyNTIgMTI1LDI0OCAxMzcsMjQ5IDE0MywyNTggMTM0LDI1NSAxMjUsMjU0IDExNSwyNTIgMTE1LDI1MiAxMTUsMjUyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMTQsMjEyIDEzMCwyMTMgMTQwLDIxOSAxNDcsMjI1IDE0NCwyMTQgMTM3LDIwOSAxMjgsMjA3IDExNCwyMTIgMTE0LDIxMiAxMTQsMjEyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMDIsMjYzIDEwOCwyNTggMTE3LDI1NyAxMzEsMjU4IDExNiwyNjAgMTA5LDI2NSAxMDIsMjYzIDEwMiwyNjMgMTAyLDI2MyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNTEsMjQxIDM1LDIyNCA0MCwyMzggMjMsMjI0IDMxLDI0MiAxOSwyMzkgMjgsMjQ3IDE3LDI0NiAyNSwyNTAgMzcsMjU0IDM5LDI2MyA0NCwyNzEgNDcsMjk0IDQ4LDMxNyA1MSwzMjggNjAsMzUxIDYwLDMyMyA1MywyNjIgNDcsMjQ2IDUxLDI0MSA1MSwyNDEgNTEsMjQxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAyLDM2NCA5LDM2NyAxNCwzNjYgMTgsMzU1IDIwLDM2NCAyNiwzNjYgMzEsMzU3IDM1LDM2NCAzOSwzNjQgNDIsMzU3IDQ3LDM2MyA1MywzNjAgNTksMzU3IDU0LDM2OSA3LDM3MyAyLDM2NCAyLDM2NCAyLDM2NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNywzNDkgMTksMzQ1IDI1LDMzOSAxOCwzNDEgMjMsMzMzIDI4LDMyNiAyMywzMjYgMjcsMzIwIDIzLDMxNiAyNSwzMTEgMjAsMjk4IDE1LDI3NyAxMiwyNjQgOSwyNDkgMTAsMjIzIDMsMjQ4IDUsMjYxIDE1LDMwNyAxNywzMjYgMTEsMzQzIDcsMzQ5IDcsMzQ5IDcsMzQ5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMSwyMjYgMTUsMjMxIDI1LDIzNiAxOCwyMjcgMTEsMjI2IDExLDIyNiAxMSwyMjYiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEzLDIxNCAxOSwyMTcgMzIsMjI3IDIzLDIxNCAxNiwyMDggMTUsMTkwIDI0LDE0OCAzMSwxMjEgMjQsMTM3IDE0LDE3MCA4LDE4OSAxMywyMTQgMTMsMjE0IDEzLDIxNCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMjAyLDI1NCAxOTUsMjU4IDE5OSwyNjAgMTkzLDI2MyAxOTcsMjYzIDE5MCwyNjggMTk2LDI2OCAxOTEsMjczIDE4OCwyODIgMjAwLDI3MiAxOTQsMjcyIDIwMSwyNjYgMTk3LDI2NSAyMDQsMjYyIDIwMCwyNTggMjA0LDI1NiAyMDIsMjU0IDIwMiwyNTQgMjAyLDI1NCIvPiAKKzwvZz4gCis8ZyBzdHlsZSA9ICJmaWxsOiAjODQ1NDMzIiA+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNTEsMjEzIDE2NSwyMTIgMTc5LDIyNSAxODksMjQ2IDE4NywyNjIgMTc5LDI3NSAxNzYsMjYzIDE3NywyNDcgMTcxLDIzMyAxNjMsMjMwIDE2NSwyNTEgMTU3LDI2NCAxNDYsMjk4IDE0NSwzMjEgMTMzLDMyNiAxNDMsMjg1IDE1NCwyNjAgMTUzLDI0MCAxNTEsMjEzIDE1MSwyMTMgMTUxLDIxMyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgOTEsMTMyIDk1LDE0NSA5NywxNTQgMTA0LDE0OCAxMDcsMTU1IDEwOSwxNTAgMTExLDE1OCAxMTUsMTUyIDExOCwxNTkgMTIwLDE1MyAxMjUsMTYxIDEyNiwxNTUgMTMzLDE2NCAxMzIsMTU0IDEzNywxNjMgMTM3LDE1MiAxNDIsMTYzIDE0NywxODYgMTUyLDE5MiAxNDgsMTY3IDE0MSwxNDMgMTI0LDE0NSAxMDUsMTQzIDkxLDEzMiA5MSwxMzIgOTEsMTMyIi8+IAorPC9nPiAKKzxnIHN0eWxlID0gImZpbGw6ICM5YzgyNmIiID4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDMxLDU3IDIzLDUyIDI2LDUxIDIwLDQ0IDIzLDQyIDIxLDM2IDIyLDI5IDI1LDIzIDI0LDMyIDMwLDQzIDI2LDQxIDMwLDUwIDI2LDQ4IDMxLDU3IDMxLDU3IDMxLDU3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNDcsMjEgMTQ5LDI4IDE1NSwyMSAxNjEsMTYgMTY3LDE0IDE3NSwxNSAxNzMsMTEgMTYxLDkgMTQ3LDIxIDE0NywyMSAxNDcsMjEiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE4MSwzOSAxNzUsNTEgMTY5LDU3IDE3MSw2NSAxNjUsNjggMTY1LDc1IDE2MCw3NiAxNjIsOTEgMTcxLDcxIDE4MCw1MSAxODEsMzkgMTgxLDM5IDE4MSwzOSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTMyLDM0NiAxMzksMzQ4IDE0MSwzNDYgMTQyLDM0MSAxNDcsMzQyIDE0MywzNTUgMTMzLDM1MCAxMzIsMzQ2IDEzMiwzNDYgMTMyLDM0NiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTQ2LDM1NSAxNTEsMzUyIDE1NSwzNDggMTU3LDM0MyAxNjAsMzQ5IDE1MSwzNTYgMTQ3LDM1NyAxNDYsMzU1IDE0NiwzNTUgMTQ2LDM1NSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgOTksMjY2IDEwMCwyODEgOTQsMzA1IDg2LDMyMiA3OCwzMzIgNzIsMzQ2IDczLDMzMSA5MSwyOTEgOTksMjY2IDk5LDI2NiA5OSwyNjYiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDIwLDM0NyAzMiwzNDIgNDUsMzQwIDU0LDM0NSA0NSwzNTAgNDIsMzUzIDM4LDM1MCAzMSwzNTMgMjksMzU2IDIzLDM1MCAxOSwzNTMgMTUsMzQ5IDIwLDM0NyAyMCwzNDcgMjAsMzQ3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA3OCwzNDQgODYsMzQ0IDkyLDM0OSA4OCwzNTggODQsMzUyIDc4LDM0NCA3OCwzNDQgNzgsMzQ0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA5MywzNDcgMTA0LDM0NCAxMTcsMzQ1IDEyNCwzNTQgMTIxLDM1NyAxMTYsMzUxIDExMiwzNTEgMTA4LDM1NSAxMDIsMzUxIDkzLDM0NyA5MywzNDcgOTMsMzQ3Ii8+IAorPC9nPiAKKzxnIHN0eWxlID0gImZpbGw6ICMwMDAwMDAiID4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEwNSwxMiAxMTEsMTggMTEzLDI0IDExMywyOSAxMTksMzQgMTE2LDIzIDExMiwxNiAxMDUsMTIgMTA1LDEyIDEwNSwxMiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTIyLDI3IDEyNSwzNCAxMjcsNDMgMTI4LDM0IDEyNSwyOSAxMjIsMjcgMTIyLDI3IDEyMiwyNyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTE1LDEzIDEyMiwxOSAxMjIsMTUgMTEzLDEwIDExNSwxMyAxMTUsMTMgMTE1LDEzIi8+IAorPC9nPiAKKzxnIHN0eWxlID0gImZpbGw6ICNmZmU1YjIiID4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDExNiwxNzIgMTA3LDE4MiA5OCwxOTMgOTgsMTgzIDkwLDE5OSA4OSwxODkgODQsMjA3IDg4LDIwNiA4NywyMTUgOTUsMjA2IDkzLDIxOSA5MSwyMzAgOTgsMjE2IDk3LDIyNiAxMDQsMjE0IDExMiwyMDkgMTA0LDIwOCAxMTMsMjAyIDEyNiwyMDAgMTM5LDIwNyAxMzIsMTk4IDE0MiwyMDMgMTM0LDE5MiAxNDIsMTk1IDEzNCwxODcgMTQwLDE4NSAxMzAsMTgxIDEzNiwxNzcgMTI2LDE3NyAxMjUsMTcxIDExNiwxODAgMTE2LDE3MiAxMTYsMTcyIDExNiwxNzIiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDc0LDIyMCA2NywyMzAgNjcsMjIxIDU5LDIzNSA2MywyMzMgNjAsMjQ4IDcwLDIzMiA2NSwyNDkgNzEsMjQzIDY3LDI1NiA3MywyNTAgNjksMjYyIDczLDI1OSA3MSwyNjcgNzYsMjYyIDcyLDI3MSA3OCwyNzAgNzYsMjc1IDgyLDI3NCA3OCwyOTAgODYsMjc5IDg2LDI4OSA5MiwyNzQgODgsMjc1IDg3LDI2NCA4MiwyNzAgODIsMjU4IDc3LDI1NyA3OCwyNDcgNzMsMjQ2IDc3LDIzMyA3MiwyMzYgNzQsMjIwIDc0LDIyMCA3NCwyMjAiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEzMywyMzAgMTQ3LDI0MiAxNDgsMjUwIDE0NSwyNTQgMTM4LDI0NyAxMjksMjQ2IDE0MiwyNDUgMTM4LDI0MSAxMjgsMjM3IDEzNywyMzggMTMzLDIzMCAxMzMsMjMwIDEzMywyMzAiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEzMywyNjEgMTI1LDI2MSAxMTYsMjYzIDExMSwyNjcgMTI1LDI2NSAxMzMsMjYxIDEzMywyNjEgMTMzLDI2MSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTIxLDI3MSAxMDksMjczIDEwMywyNzkgOTksMzA1IDkyLDMxNiA4NSwzMjcgODMsMzM1IDg5LDM0MCA5NywzNDEgOTQsMzM2IDEwMSwzMzYgOTYsMzMxIDEwMywzMzAgOTcsMzI3IDEwOCwzMjUgOTksMzIyIDEwOSwzMjEgMTAwLDMxOCAxMTAsMzE3IDEwNSwzMTQgMTEwLDMxMiAxMDcsMzEwIDExMywzMDggMTA1LDMwNiAxMTQsMzAzIDEwNSwzMDEgMTE1LDI5OCAxMDcsMjk1IDExNSwyOTQgMTA4LDI5MyAxMTcsMjkxIDEwOSwyODkgMTE3LDI4NiAxMDksMjg2IDExOCwyODMgMTEyLDI4MSAxMTgsMjc5IDExNCwyNzggMTE5LDI3NiAxMTUsMjc0IDEyMSwyNzEgMTIxLDI3MSAxMjEsMjcxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA3OSwzNjQgNzQsMzU5IDc0LDM1MyA3NiwzNDcgODAsMzUxIDgzLDM1NiA4MiwzNjAgNzksMzY0IDc5LDM2NCA3OSwzNjQiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDkxLDM2MyA5MywzNTYgOTcsMzUzIDEwMywzNTUgMTA1LDM2MCAxMDMsMzY2IDk5LDM3MSA5NCwzNjggOTEsMzYzIDkxLDM2MyA5MSwzNjMiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDExMCwzNTUgMTE0LDM1MyAxMTgsMzU3IDExNywzNjMgMTEzLDM2OSAxMTEsMzYyIDExMCwzNTUgMTEwLDM1NSAxMTAsMzU1Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMjYsMzU0IDEyMywzNTggMTI0LDM2NyAxMjYsMzY5IDEyOSwzNjEgMTI5LDM1NyAxMjYsMzU0IDEyNiwzNTQgMTI2LDM1NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMzAsMTU0IDI0LDE2NiAyMCwxODIgMjMsMTk0IDI5LDIwOCAzNywyMTggNDEsMjEwIDQxLDIyMyA0NiwyMTQgNDYsMjI3IDUyLDIxNiA1MiwyMjcgNjEsMjE2IDU5LDIyNSA2OCwyMTMgNzMsMjE5IDcwLDIwNyA3NywyMTIgNjksMjAwIDc3LDIwMiA3MCwxOTQgNzgsMTk3IDY4LDE4NyA3NiwxODIgNjQsMTgyIDU4LDE3NSA1OCwxODUgNTMsMTc3IDUwLDE4NiA0NiwxNzEgNDQsMTgyIDM5LDE2NyAzNiwxNzIgMzYsMTYyIDMwLDE2NiAzMCwxNTQgMzAsMTU0IDMwLDE1NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNDQsMTMwIDQxLDEzNyA0NSwxMzYgNDMsMTUwIDQ4LDE0MiA0OCwxNTcgNTMsMTUwIDUyLDE2NCA2MCwxNTYgNjEsMTY5IDY0LDE2NSA2NiwxNzUgNzAsMTY3IDc0LDE3NiA3NywxNjggODAsMTgzIDg1LDE3MiA5MCwxODIgOTMsMTc0IDk4LDE4MSA5OSwxNzMgMTA0LDE3NSAxMDUsMTY5IDExNCwxNjggMTAyLDE2MyA5NSwxNTcgOTQsMTY2IDkwLDE1NCA4NywxNjIgODIsMTQ5IDc1LDE1OSA3MiwxNDggNjgsMTU1IDY3LDE0MyA2MiwxNDggNjIsMTM4IDU4LDE0NSA1NiwxMzMgNTIsMTQyIDUyLDEyOCA0OSwxMzQgNDcsMTI1IDQ0LDEzMCA0NCwxMzAgNDQsMTMwIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMywyMTYgMTksMjE5IDM2LDIzMSAyMiwyMjMgMTYsMjIyIDIyLDIyNyAxMiwyMjQgMTMsMjIwIDE2LDIyMCAxMywyMTYgMTMsMjE2IDEzLDIxNiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTAsMjMxIDE0LDIzNiAyNSwyMzkgMjcsMjM3IDE5LDIzNCAxMCwyMzEgMTAsMjMxIDEwLDIzMSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgOSwyNDUgMTQsMjQyIDI1LDI0NSAxMywyNDUgOSwyNDUgOSwyNDUgOSwyNDUiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDMzLDI1NSAyNiwyNTMgMTgsMjU0IDI1LDI1NiAxOCwyNTggMjcsMjYwIDE4LDI2MyAyNywyNjUgMTksMjY3IDI5LDI3MCAyMSwyNzIgMjksMjc2IDIxLDI3OCAzMCwyODEgMjIsMjgzIDMxLDI4NyAyNCwyODggMzIsMjkyIDIzLDI5MyAzNCwyOTggMjYsMjk5IDM3LDMwMyAzMiwzMDUgMzksMzA5IDMzLDMwOSAzOSwzMTQgMzQsMzE0IDQwLDMxOCAzNCwzMTcgNDAsMzIxIDM0LDMyMSA0MSwzMjYgMzMsMzI2IDQwLDMzMCAzMywzMzIgMzksMzMzIDMzLDMzNyA0MiwzMzcgNTQsMzQxIDQ5LDMzNyA1MiwzMzUgNDcsMzMwIDUwLDMzMCA0NSwzMjUgNDksMzI1IDQ1LDMyMSA0OCwzMjEgNDUsMzE2IDQ2LDMwNiA0NSwyODYgNDMsMjc0IDM2LDI2MSAzMywyNTUgMzMsMjU1IDMzLDI1NSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNywzNTggOSwzNTEgMTQsMzUxIDE3LDM1OSAxMSwzNjQgNywzNTggNywzNTggNywzNTgiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDQ0LDM1NCA0OSwzNTEgNTIsMzU1IDQ5LDM2MSA0NCwzNTQgNDQsMzU0IDQ0LDM1NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMzIsMzU3IDM3LDM1MyA0MCwzNTggMzYsMzYxIDMyLDM1NyAzMiwzNTcgMzIsMzU3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMzksMzM0IDE0NSwzMzAgMTU0LDMzMCAxNTgsMzM0IDE1NCwzNDEgMTUyLDM0OCAxNDUsMzUwIDE0OSwzNDAgMTQ3LDMzNiAxNDEsMzM5IDEzOSwzNDUgMTM2LDM0MiAxMzYsMzM5IDEzOSwzMzQgMTM5LDMzNCAxMzksMzM0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAyMDgsMjU5IDIxNSwyNTkgMjEyLDI1NSAyMjAsMjU5IDIyNCwyNjMgMjI1LDI3NCAyMjQsMjgzIDIyMCwyOTIgMjA4LDMwMCAyMDYsMzA4IDIwMywzMDQgMTk5LDMxNSAxOTcsMzA5IDE5NSwzMTggMTkzLDMxMyAxOTAsMzIyIDE5MCwzMTYgMTg1LDMyNSAxODIsMzE4IDE4MCwzMjUgMTcyLDMyMSAxNzgsMzIwIDE3NiwzMTMgMTg2LDMxMiAxODAsMzA3IDE4OCwzMDcgMTg0LDMwMyAxOTEsMzAyIDE4NiwyOTkgMTk1LDI5NCAxODcsMjkwIDE5NywyODggMTkyLDI4NiAyMDEsMjgzIDE5NCwyODAgMjAzLDI3NyAxOTgsMjc1IDIwNywyNzEgMjAwLDI2OSAyMDksMjY1IDIwNCwyNjUgMjEyLDI2MiAyMDgsMjU5IDIwOCwyNTkgMjA4LDI1OSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTA2LDEyNiAxMDYsMTMxIDEwOSwxMzIgMTExLDEzNCAxMTUsMTMyIDExNSwxMzUgMTE5LDEzMyAxMTgsMTM3IDEyMywxMzcgMTI4LDEzNyAxMzMsMTM0IDEzNiwxMzAgMTM2LDEyNyAxMzIsMTI0IDExOCwxMjggMTEyLDEyOCAxMDYsMTI2IDEwNiwxMjYgMTA2LDEyNiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTA3LDExNCAxMDEsMTEwIDk4LDEwMiAxMDUsOTcgMTExLDk4IDExOSwxMDIgMTIxLDEwOCAxMTgsMTEyIDExMywxMTUgMTA3LDExNCAxMDcsMTE0IDEwNywxMTQiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE0OCwxMDYgMTQ1LDExMCAxNDYsMTE2IDE1MCwxMTggMTUyLDExMSAxNTEsMTA3IDE0OCwxMDYgMTQ4LDEwNiAxNDgsMTA2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA4MCw1NSA3MCw1MiA3NSw1OCA2Myw1NyA3Miw2MSA1Nyw2MSA2Nyw2NiA1Nyw2NyA2Miw2OSA1NCw3MSA2MSw3MyA1NCw3NyA2Myw3OCA1Myw4NSA2MCw4NCA1Niw5MCA2OSw4NCA2Myw4MiA3NSw3NiA3MCw3NSA3Nyw3MiA3Miw3MSA3OCw2OSA3Miw2NiA4MSw2NyA3OCw2NCA4Miw2MyA4MCw2MCA4Niw2MiA4MCw1NSA4MCw1NSA4MCw1NSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgODcsNTYgOTEsNTIgOTYsNTAgMTAyLDU2IDk4LDU2IDkyLDYwIDg3LDU2IDg3LDU2IDg3LDU2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA4NSw2OCA4OSw3MyA5OCw3NiAxMDYsNzQgOTYsNzMgOTEsNzAgODUsNjggODUsNjggODUsNjgiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDExNSw1NyAxMTQsNjQgMTExLDY0IDExNSw3NSAxMjIsODEgMTIyLDc0IDEyNiw3OSAxMjYsNzQgMTMxLDc4IDEzMCw3MiAxMzMsNzcgMTMxLDY4IDEyNiw2MSAxMTksNTcgMTE1LDU3IDExNSw1NyAxMTUsNTciLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE0NSw0OCAxNDMsNTMgMTQ3LDU5IDE1MSw1OSAxNTAsNTUgMTQ1LDQ4IDE0NSw0OCAxNDUsNDgiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDI2LDIyIDM0LDE1IDQzLDEwIDUyLDEwIDU5LDE2IDQ3LDE1IDMyLDIyIDI2LDIyIDI2LDIyIDI2LDIyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNjAsMTkgMTUyLDI2IDE0OSwzNCAxNTQsMzMgMTUyLDMwIDE1NywzMCAxNTUsMjYgMTU4LDI3IDE1NywyMyAxNjEsMjMgMTYwLDE5IDE2MCwxOSAxNjAsMTkiLz4gCis8L2c+IAorPGcgc3R5bGUgPSAiZmlsbDogIzAwMDAwMCIgPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgOTgsMTE3IDEwNSwxMjIgMTA5LDEyMiAxMDUsMTE3IDExMywxMjAgMTIxLDEyMCAxMzAsMTEyIDEyOCwxMDggMTIzLDEwMyAxMjMsOTkgMTI4LDEwMSAxMzIsMTA2IDEzNSwxMDkgMTQyLDEwNSAxNDIsMTAxIDE0NSwxMDEgMTQ1LDkxIDE0OCwxMDEgMTQ1LDEwNSAxMzYsMTEyIDEzNSwxMTYgMTQzLDEyNCAxNDgsMTIwIDE1MCwxMjIgMTQyLDEyOCAxMzMsMTIyIDEyMSwxMjUgMTEyLDEyNiAxMDMsMTI1IDEwMCwxMjkgOTYsMTI0IDk4LDExNyA5OCwxMTcgOTgsMTE3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNDYsMTE4IDE1MiwxMTggMTUyLDExNSAxNDksMTE1IDE0NiwxMTggMTQ2LDExOCAxNDYsMTE4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNDgsMTEyIDE1NCwxMTEgMTU0LDEwOSAxNDksMTA5IDE0OCwxMTIgMTQ4LDExMiAxNDgsMTEyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMDYsMTEyIDEwOCwxMTUgMTE0LDExNiAxMTgsMTE0IDEwNiwxMTIgMTA2LDExMiAxMDYsMTEyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMDgsMTA4IDExMSwxMTAgMTE2LDExMCAxMTksMTA4IDEwOCwxMDggMTA4LDEwOCAxMDgsMTA4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMDYsMTA0IDEwOSwxMDUgMTE3LDEwNiAxMTUsMTA0IDEwNiwxMDQgMTA2LDEwNCAxMDYsMTA0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA1MCwyNSA0MSwyNiAzNCwzMyAzOSw0MyA0OSw1OCAzNiw1MSA0Nyw2OCA1NSw2OSA1NCw1OSA2MSw1NyA3NCw0NiA2MCw1MiA2Nyw0MiA1Nyw0OCA2MSw0MCA1NCw0NSA2MCwzNiA1OSwyOSA0OCwzOCA1MiwzMCA0NywzMiA1MCwyNSA1MCwyNSA1MCwyNSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTQ3LDM0IDE1Miw0MSAxNTUsNDkgMTYxLDUzIDE1Nyw0NyAxNjQsNDcgMTU4LDQzIDE2OCw0NCAxNTksNDAgMTY0LDM3IDE2OSwzNyAxNjQsMzMgMTY5LDM0IDE2NSwyOCAxNzAsMzAgMTcwLDI1IDE3MywyOSAxNzUsMjcgMTc2LDMyIDE3MywzNiAxNzUsMzkgMTcyLDQyIDE3Miw0NiAxNjgsNDkgMTcwLDU1IDE2Miw1NyAxNTgsNjMgMTU1LDU4IDE1Myw1MCAxNDksNDYgMTQ3LDM0IDE0NywzNCAxNDcsMzQiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE1NSw3MSAxNTksODAgMTU3LDkzIDE1NywxMDIgMTU1LDEwOCAxNTAsMTAxIDE0OSw5MyAxNTQsMTAxIDE1Miw5MSAxNTEsODMgMTU1LDc5IDE1NSw3MSAxNTUsNzEgMTU1LDcxIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMTIsNzggMTE1LDgxIDExNCw5MSAxMTIsODcgMTEzLDgyIDExMiw3OCAxMTIsNzggMTEyLDc4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA3OCwyOCA2NCwxNyA1OCwxMSA0Nyw5IDM2LDEwIDI4LDE2IDIxLDI2IDE4LDQxIDIwLDUxIDIzLDYxIDMzLDY1IDI4LDY4IDM3LDc0IDM2LDgxIDQzLDg3IDQ4LDkwIDQzLDEwMCA0MCw5OCAzOSw5MCAzMSw4MCAzMCw3MiAyMiw3MSAxNyw2MSAxNCw0NiAxNiwyOCAyMywxNyAzMyw5IDQ1LDYgNTQsNiA2NSwxMiA3OCwyOCA3OCwyOCA3OCwyOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNjcsMTggNzYsOSA4Nyw1IDEwMSwyIDExOCwzIDEzNSw4IDE0OSwyMCAxNDksMjYgMTQ0LDE5IDEzMiwxMiAxMjEsOSAxMDUsNyA4OSw4IDc2LDE0IDcwLDIwIDY3LDE4IDY3LDE4IDY3LDE4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA1Niw5OCA0OCwxMDYgNTYsMTAzIDQ3LDExMiA1NiwxMTAgNTIsMTE1IDU3LDExMyA1MiwxMjEgNjIsMTE1IDU4LDEyMyA2NSwxMTkgNjMsMTI1IDY5LDEyMSA2OCwxMjcgNzQsMTI1IDc0LDEyOSA3OSwxMjggODMsMTMyIDk0LDEzNSA5MywxMjkgODUsMTI3IDgxLDEyMiA3NiwxMjYgNzUsMTIxIDcxLDEyNCA3MSwxMTcgNjYsMTIxIDY2LDExNyA2MiwxMTcgNjQsMTEyIDYwLDExMyA2MCwxMTAgNTcsMTExIDYxLDEwNSA1NywxMDcgNjAsMTAxIDU1LDEwMiA1Niw5OCA1Niw5OCA1Niw5OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTAxLDEzMiAxMDMsMTM4IDEwNiwxMzQgMTA2LDEzOSAxMTIsMTM2IDExMSwxNDIgMTE1LDEzOSAxMTQsMTQzIDExOSwxNDIgMTI1LDE0NSAxMzEsMTQyIDEzNSwxMzggMTQwLDEzNCAxNDAsMTI5IDE0MywxMzUgMTQ1LDE0OSAxNTAsMTcxIDE0OSwxODQgMTQ1LDE2NSAxNDEsMTUwIDEzNiwxNDcgMTMyLDE1MSAxMzEsMTQ5IDEyNiwxNTIgMTI1LDE1MCAxMjEsMTUyIDExNywxNDggMTExLDE1MiAxMTAsMTQ4IDEwNSwxNDkgMTA0LDE0NSA5OCwxNTAgOTYsMTM4IDk0LDEzMiA5NCwxMzAgOTgsMTMyIDEwMSwxMzIgMTAxLDEzMiAxMDEsMTMyIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA0MSw5NCAzMiwxMTAgMjMsMTMyIDEyLDE2MyA2LDE5MCA3LDIxNyA1LDIzNiAzLDI0NyA5LDIzMCAxMiwyMTEgMTIsMTg1IDE4LDE2MCAyNiwxMzQgMzUsMTEwIDQzLDk5IDQxLDk0IDQxLDk0IDQxLDk0Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAzMiwyNDYgNDEsMjUwIDUwLDI1NyA1MiwyNjcgNTMsMjk1IDUzLDMyMyA1OSwzNTAgNTQsMzYzIDUxLDM2NSA0NCwzNjYgNDIsMzYwIDQwLDM3MiA1NCwzNzIgNTksMzY2IDYyLDM1MyA3MSwzNTIgNzUsMzM1IDczLDMzMCA2NiwzMTggNjgsMzAyIDY0LDI5NCA2NywyODggNjMsMjg2IDYzLDI3OSA1OSwyNzUgNTgsMjY3IDU2LDI2MiA1MCwyNDcgNDIsMjM1IDQ0LDI0NiAzMiwyMzYgMzUsMjQ0IDMyLDI0NiAzMiwyNDYgMzIsMjQ2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMzQsMzI0IDE0NiwzMjAgMTU5LDMyMiAxNzMsMzI3IDE3OSwzMzcgMTc5LDM0OSAxNzIsMzU1IDE1OCwzNTcgMTcwLDM1MCAxNzQsMzQzIDE3MCwzMzMgMTYzLDMyOCAxNTIsMzI2IDEzNCwzMjkgMTM0LDMyNCAxMzQsMzI0IDEzNCwzMjQiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE3MywzMzkgMTgzLDMzNCAxODQsMzM4IDE5MSwzMjkgMTk0LDMzMiAxOTksMzIzIDIwMiwzMjUgMjA2LDMxOCAyMDksMzIwIDIxMywzMDkgMjIxLDMwMyAyMjgsMjk2IDIzMiwyODkgMjM0LDI3OSAyMzMsMjY5IDIzMCwyNjIgMjI1LDI1NiAyMTksMjUzIDIwOCwyNTIgMTk4LDI1MiAyMTAsMjQ5IDIyMywyNTAgMjMyLDI1NyAyMzcsMjY1IDIzOCwyNzcgMjM4LDI5MSAyMzIsMzA1IDIyMSwzMjMgMjE4LDMzNSAyMTIsMzQyIDIwMCwzNDkgMTc4LDM0OCAxNzMsMzM5IDE3MywzMzkgMTczLDMzOSIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTY1LDI5NiAxNTgsMzAxIDE1NiwzMTAgMTU2LDMyMyAxNjIsMzI0IDE1OSwzMTggMTYyLDMwOCAxNjIsMzA0IDE2NSwyOTYgMTY1LDI5NiAxNjUsMjk2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA5OSwyNTIgMTA1LDI0NCAxMDcsMjM0IDExNSwyMjggMTIxLDIyOCAxMzEsMjM1IDEyMiwyMzMgMTEzLDIzNSAxMDksMjQ2IDEyMSwyMzkgMTMzLDI0MyAxMjEsMjQzIDExMCwyNTEgOTksMjUyIDk5LDI1MiA5OSwyNTIiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDExNywyNTIgMTI0LDI0NyAxMzQsMjQ5IDEzNiwyNTMgMTI2LDI1MiAxMTcsMjUyIDExNywyNTIgMTE3LDI1MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTE3LDIxOCAxMzIsMjI0IDE0NCwyMzMgMTQwLDIyNSAxMzIsMjE5IDExNywyMTggMTE3LDIxOCAxMTcsMjE4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMjIsMjEyIDEzNCwyMTQgMTQzLDIyMSAxNDEsMjEzIDEzMiwyMTAgMTIyLDIxMiAxMjIsMjEyIDEyMiwyMTIiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDY5LDM1MiA3MCwzNjMgNzYsMzczIDg2LDM3OCA5NywzNzkgMTA4LDM3OSAxMjAsMzc3IDEyOCwzNzggMTMyLDM3MyAxMzUsMzYxIDEzMywzNTggMTMyLDM2NiAxMjcsMzc1IDEyMSwzNzQgMTIxLDM2MiAxMTksMzY3IDExNywzNzQgMTEwLDM3NiAxMTAsMzYyIDEwNywzNTcgMTA2LDM3MSAxMDQsMzc1IDk3LDM3NiA5MCwzNzUgOTAsMzY4IDg2LDM2MiA4MywzNjQgODYsMzY5IDg1LDM3MyA3OCwzNzAgNzMsMzYyIDcxLDM1MSA2OSwzNTIgNjksMzUyIDY5LDM1MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTAwLDM2MCA5NiwzNjMgOTksMzY5IDEwMiwzNjQgMTAwLDM2MCAxMDAsMzYwIDEwMCwzNjAiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDExNSwzNjAgMTEyLDM2MyAxMTQsMzY5IDExNywzNjQgMTE1LDM2MCAxMTUsMzYwIDExNSwzNjAiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEyNywzNjIgMTI1LDM2NCAxMjYsMzY5IDEyOCwzNjUgMTI3LDM2MiAxMjcsMzYyIDEyNywzNjIiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDUsMjU1IDcsMjc2IDExLDMwNCAxNSwzMjAgMTMsMzM0IDYsMzQ4IDIsMzUzIDAsMzYzIDUsMzcyIDEyLDM3NCAyNSwzNzIgMzgsMzcyIDQ0LDM2OSA0MiwzNjcgMzYsMzY4IDMxLDM2OSAzMCwzNjAgMjcsMzY4IDIwLDM3MCAxNiwzNjEgMTUsMzY4IDEwLDM2OSAzLDM2NiAzLDM1OSA2LDM1MiAxMSwzNDggMTcsMzMxIDE5LDMxNiAxMiwyOTEgOSwyNzQgNSwyNTUgNSwyNTUgNSwyNTUiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEwLDM1OCA3LDM2MiAxMCwzNjYgMTEsMzYyIDEwLDM1OCAxMCwzNTggMTAsMzU4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAyNSwzNTcgMjIsMzYwIDI0LDM2NiAyNywzNjAgMjUsMzU3IDI1LDM1NyAyNSwzNTciLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDM3LDM1NyAzNCwzNjEgMzYsMzY1IDM4LDM2MSAzNywzNTcgMzcsMzU3IDM3LDM1NyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgNDksMzU2IDQ2LDM1OSA0NywzNjQgNTAsMzYwIDQ5LDM1NiA0OSwzNTYgNDksMzU2Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxMzAsMTAxIDEzMiwxMDIgMTM1LDEwMSAxMzksMTAyIDE0MywxMDMgMTQyLDEwMSAxMzcsMTAwIDEzMywxMDAgMTMwLDEwMSAxMzAsMTAxIDEzMCwxMDEiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEwNiw0OCAxMDUsNTIgMTA4LDU2IDEwOSw1MiAxMDYsNDggMTA2LDQ4IDEwNiw0OCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTM5LDUyIDEzOSw1NiAxNDAsNjAgMTQyLDU4IDE0MSw1NiAxMzksNTIgMTM5LDUyIDEzOSw1MiIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMjUsMzQ5IDI5LDM1MSAzMCwzNTUgMzMsMzUwIDM3LDM0OCA0MiwzNTEgNDUsMzQ3IDQ5LDM0NSA0NCwzNDMgMzYsMzQ1IDI1LDM0OSAyNSwzNDkgMjUsMzQ5Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA5OCwzNDcgMTA1LDM1MSAxMDcsMzU0IDEwOSwzNDkgMTE1LDM0OSAxMjAsMzUzIDExOCwzNDkgMTEzLDM0NiAxMDQsMzQ2IDk4LDM0NyA5OCwzNDcgOTgsMzQ3Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA4MywzNDggODcsMzUyIDg3LDM1NyA4OSwzNTEgODcsMzQ4IDgzLDM0OCA4MywzNDggODMsMzQ4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNTUsMTA3IDE2MywxMDcgMTcwLDEwNyAxODYsMTA4IDE3NSwxMDkgMTU1LDEwOSAxNTUsMTA3IDE1NSwxMDcgMTU1LDEwNyIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTUzLDExNCAxNjIsMTEzIDE3NSwxMTIgMTkyLDExNCAxNzMsMTE0IDE1NCwxMTUgMTUzLDExNCAxNTMsMTE0IDE1MywxMTQiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE1MiwxMTggMTY0LDEyMCAxODAsMTIzIDE5NywxMjkgMTY5LDEyMyAxNTEsMTIwIDE1MiwxMTggMTUyLDExOCAxNTIsMTE4Ii8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiA2OCwxMDkgODcsMTA2IDEwNywxMDYgMTA2LDEwOCA4OCwxMDggNjgsMTA5IDY4LDEwOSA2OCwxMDkiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEwNSwxMTEgOTUsMTEyIDc5LDExNCA3MSwxMTYgODUsMTE1IDEwMiwxMTMgMTA1LDExMSAxMDUsMTExIDEwNSwxMTEiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDEwOCwxMDEgOTgsOTkgODcsOTkgNzgsOTkgOTMsMTAwIDEwNSwxMDIgMTA4LDEwMSAxMDgsMTAxIDEwOCwxMDEiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDg1LDYzIDkxLDYzIDk3LDYwIDEwNCw2MCAxMDgsNjIgMTExLDY5IDExMiw3NSAxMTAsNzQgMTA4LDcxIDEwMyw3MyAxMDYsNjkgMTA1LDY1IDEwMyw2NCAxMDMsNjcgMTAyLDcwIDk5LDcwIDk3LDY2IDk0LDY3IDk3LDcyIDg4LDY3IDg0LDY2IDg1LDYzIDg1LDYzIDg1LDYzIi8+IAorICAgPHBvbHlsaW5lIHZlcnRzID0gIiAxNDAsNzQgMTQxLDY2IDE0NCw2MSAxNTAsNjEgMTU2LDYyIDE1Myw3MCAxNTAsNzMgMTUyLDY1IDE1MCw2NSAxNTEsNjggMTQ5LDcxIDE0Niw3MSAxNDQsNjYgMTQzLDcwIDE0Myw3NCAxNDAsNzQgMTQwLDc0IDE0MCw3NCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTQ2LDIwIDE1NiwxMSAxNjMsOSAxNzIsOSAxNzgsMTQgMTgyLDE4IDE4NCwzMiAxODIsNDIgMTgyLDUyIDE3Nyw1OCAxNzYsNjcgMTcxLDc2IDE2NSw5MCAxNTcsMTA1IDE2MCw5MiAxNjQsODUgMTY4LDc4IDE2Nyw3MyAxNzMsNjYgMTcyLDYyIDE3NSw1OSAxNzQsNTUgMTc3LDUzIDE4MCw0NiAxODEsMjkgMTc5LDIxIDE3MywxMyAxNjYsMTEgMTU5LDEzIDE1MywxOCAxNDgsMjMgMTQ2LDIwIDE0NiwyMCAxNDYsMjAiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE1MCwxODcgMTQ4LDIxMSAxNTAsMjMzIDE1MywyNDcgMTQ4LDI2NyAxMzUsMjgzIDEyNSwyOTkgMTM2LDI5MiAxMzEsMzEzIDEyMiwzMjggMTIyLDM0NSAxMjksMzUyIDEzMywzNTkgMTMzLDM2NyAxMzcsMzU5IDE0OCwzNTYgMTQwLDM1MCAxMzEsMzQ3IDEyOSwzNDAgMTMyLDMzMiAxNDAsMzI4IDEzNywzMjIgMTQwLDMwNCAxNTQsMjY1IDE1NywyNDQgMTU1LDIyMyAxNjEsMjIwIDE3NSwyMjkgMTg2LDI0NyAxODUsMjYwIDE3NiwyNzUgMTc4LDI4NyAxODUsMjc3IDE4OCwyNjEgMTk2LDI1MyAxODksMjM2IDE3NCwyMTMgMTUwLDE4NyAxNTAsMTg3IDE1MCwxODciLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDE0NywzMzggMTQyLDM0MSAxNDMsMzQ1IDE0MSwzNTQgMTQ3LDM0MyAxNDcsMzM4IDE0NywzMzggMTQ3LDMzOCIvPiAKKyAgIDxwb2x5bGluZSB2ZXJ0cyA9ICIgMTU3LDM0MiAxNTYsMzQ5IDE1MCwzNTYgMTU3LDM1MyAxNjMsMzQ2IDE2MiwzNDIgMTU3LDM0MiAxNTcsMzQyIDE1NywzNDIiLz4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDk5LDI2NSA5NiwyODQgOTIsMjk5IDczLDMzOSA3MywzMzMgODcsMzAwIDk5LDI2NSA5OSwyNjUgOTksMjY1Ii8+IAorPC9nPjwvc3ZnPgorDQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3N2ZzIgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc3ZnMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTFhZGFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3N2ZzIKQEAgLTAsMCArMSw1OCBAQAorPD94bWwgdmVyc2lvbiA9ICIxLjAiIHN0YW5kYWxvbmUgPSAieWVzIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIEFwcmlsIDE5OTkvL0VOIgorICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvc3ZnLTE5OTkwNDEyLmR0ZCI+Cis8c3ZnIHdpZHRoID0gIjI2OHB4IiBoZWlnaHQ9IjIwN3B4Ij4KKzxnIHN0eWxlID0gInN0cm9rZTogIzAwMDAwMCIgPiAKKyAgIDxwYXRoICBkID0gIiBNIDI5IDI4ICIvPiAKKyAgIDxwYXRoICBkID0gIiBMIDE5IDc0ICIvPiAKKzwvZz4gCis8ZyBzdHlsZSA9ICJzdHJva2U6ICM4MDAwNDAiID4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDMyLDEwMCA3Miw1MCA5MCw4MiA3MywxNiAxMjAsNjQgMTUyLDkgMTc3LDEwNyIvPiAKKzwvZz4gCis8ZyBzdHlsZSA9ICJzdHJva2U6ICMwMDAwMDAiID4gCis8L2c+IAorPGcgc3R5bGUgPSAic3Ryb2tlOiAjMDAwMGZmIiA+IAorICAgPHJlY3QgeCA9ICIzMCIgeSA9ICIxMDEiIHdpZHRoICA9ICI1MSIgaGVpZ2h0ID0gIjMzIi8+Cis8L2c+IAorPGcgc3R5bGUgPSAiZmlsbDogIzAwMDBmZiIgPiAKKyAgIDxlbGxpcHNlIGN4ID0gIjE4MiIgY3kgPSAiMTI3IiBtYWpvciAgPSAiMzciIG1pbm9yID0gIjMxIiBhbmdsZSA9ICI5MCIvPgorPC9nPiAKKzxnIHN0eWxlID0gImZpbGw6ICNmZjAwMDAiID4gCisgICA8cG9seWxpbmUgdmVydHMgPSAiIDc4LDE4MCA3NiwxNTEgMTMxLDE0OSAxMzYsMTgyIDEzNSwxODIgMTM0LDE4MyAxMjcsMTg1IDExNywxODYgMTA5LDE5MiAxMDQsMTk0IDk4LDE5OSA5NiwyMDAgOTUsMjAxIDk0LDIwMiA5MiwyMDIgODUsMjAyIDcwLDIwMCA1NCwxOTkgNDcsMTk4IDQ2LDE5NyA0NSwxOTcgMzcsMTk1IDI2LDE5MyAxNywxODcgOSwxODEgOCwxODEgNywxNzYgNiwxNzUgNiwxNzMgNiwxNzIgNiwxNzAgOCwxNjQgOCwxNjMgOCwxNjIgOSwxNjIgMTAsMTYyIDExLDE2MiAxMywxNjIgMjAsMTYyIDI2LDE2MiAyNywxNjIgMjgsMTYyIDMwLDE2MiAzMCwxNjMgMzEsMTYzIDMyLDE2NCAzNCwxNjYgMzUsMTY2IDM2LDE2NyAzNiwxNjggMzcsMTY5IDM4LDE2OSAzOSwxNjkgNDEsMTcwIDQzLDE3MCA0NSwxNzAgNDcsMTcwIDQ5LDE3MCA1MCwxNjggNTAsMTYxIDUwLDE2MCA1MCwxNTkgNDcsMTYyIDc4LDE4MCIvPiAKKyAgIDxnPgorICAgICA8ZGVzYz4gSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDA8L2Rlc2M+IAorICAgPC9nPgorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpIZWx2ZXRpY2EgMDwvZGVzYz4gCisgICA8L2c+Cis8L2c+IAorPGcgc3R5bGUgPSAic3Ryb2tlOiAjMDAwMDAwIiA+IAorICAgPHRleHQgeCA9ICIxODgiIHkgPSAiMzYiID50aGlzIGlzIHRleHQ8L3RleHQ+Cis8L2c+IAorPGcgc3R5bGUgPSAic3Ryb2tlOiAjMDAwMDAwIiA+IAorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgMDwvZGVzYz4gCisgICA8L2c+CisgICA8Zz4KKyAgICAgPGRlc2M+IEphdmEgRm9udCBkZWZpbml0aW9uOkhlbHZldGljYSA3MDA8L2Rlc2M+IAorICAgPC9nPgorPC9nPiAKKzxnIHN0eWxlID0gInN0cm9rZTogIzAwODA4MCIgPiAKKyAgIDx0ZXh0IHggPSAiMTc2IiB5ID0gIjg1IiA+c2FkZnNhZGZzYWQ8L3RleHQ+Cis8L2c+IAorPGcgc3R5bGUgPSAic3Ryb2tlOiAjMDAwMDAwIiA+IAorPC9nPiAKKzxnIHN0eWxlID0gImZpbGw6ICM4MDAwNDAiID4gCisgICA8ZWxsaXBzZSBjeCA9ICIyMDgiIGN5ID0gIjE4MCIgbWFqb3IgID0gIjQ1IiBtaW5vciA9ICIzMSIgYW5nbGUgPSAiMCIvPgorPC9nPiAKKzxnIHN0eWxlID0gInN0cm9rZTogIzAwMDAwMCIgPiAKKzwvZz4gCis8ZyBzdHlsZSA9ICJmaWxsOiAjZmZmZmZmIiA+IAorICAgPGc+CisgICAgIDxkZXNjPiBKYXZhIEZvbnQgZGVmaW5pdGlvbjpEaWFsb2cgNzAwPC9kZXNjPiAKKyAgIDwvZz4KKyAgIDxnPgorICAgICA8ZGVzYz4gSmF2YSBGb250IGRlZmluaXRpb246RGlhbG9nIDcwMDwvZGVzYz4gCisgICA8L2c+Cis8L2c+PC9zdmc+CisNCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvc3ZnMyBiL2xpYnhtbDItMi43LjcvdGVzdC9zdmczCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGRlNWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvc3ZnMwpAQCAtMCwwICsxLDcyMiBAQAorPHN2Zz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik03Ny42OTYgMjg0LjI4NUM3Ny42OTYgMjg0LjI4NSA3Ny43OTcgMjg2LjE3OSA3Ni45NzMgMjg2LjE2Qzc2LjE0OSAyODYuMTQxIDU5LjY5NSAyMzguMDY2IDM5LjE2NyAyNDAuMzA5QzM5LjE2NyAyNDAuMzA5IDU2Ljk1IDIzMi45NTYgNzcuNjk2IDI4NC4yODV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyIj4KKyAgPHBhdGggZD0iTTgxLjIyNiAyODEuMjYyQzgxLjIyNiAyODEuMjYyIDgwLjY3NyAyODMuMDc4IDc5LjkwOCAyODIuNzc5Qzc5LjE0IDI4Mi40ODEgODAuMDIzIDIzMS42NzUgNTkuOTU3IDIyNi44MDFDNTkuOTU3IDIyNi44MDEgNzkuMTggMjI1LjkzNyA4MS4yMjYgMjgxLjI2MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNMTA4LjcxNiAzMjMuNTlDMTA4LjcxNiAzMjMuNTkgMTEwLjM1MiAzMjQuNTUgMTA5Ljg4MiAzMjUuMjI3QzEwOS40MTEgMzI1LjkwNCA2MC4yMzcgMzEzLjEwMiA1MC43ODIgMzMxLjQ1OUM1MC43ODIgMzMxLjQ1OSA1NC40NjEgMzEyLjU3MiAxMDguNzE2IDMyMy41OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xNzIiPgorICA8cGF0aCBkPSJNMTA1LjkwNyAzMzMuODAxQzEwNS45MDcgMzMzLjgwMSAxMDcuNzYzIDMzNC4xOTcgMTA3LjUyOSAzMzQuOTg4QzEwNy4yOTYgMzM1Ljc3OSA1Ni41OTMgMzM5LjEyMSA1My40MDMgMzU5LjUyMkM1My40MDMgMzU5LjUyMiA1MC45NDUgMzQwLjQzNyAxMDUuOTA3IDMzMy44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyIj4KKyAgPHBhdGggZD0iTTEwMS42OTYgMzI4LjI3NkMxMDEuNjk2IDMyOC4yNzYgMTAzLjQ3NCAzMjguOTM5IDEwMy4xMjggMzI5LjY4N0MxMDIuNzgyIDMzMC40MzUgNTIuMTM0IDMyNi4zNDYgNDYuMDAyIDM0Ni4wNjRDNDYuMDAyIDM0Ni4wNjQgNDYuMzU0IDMyNi44MjUgMTAxLjY5NiAzMjguMjc2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik05MC45OTEgMzEwLjA3MkM5MC45OTEgMzEwLjA3MiA5Mi4yOTkgMzExLjQ0NiA5MS42NiAzMTEuOTY3QzkxLjAyMSAzMTIuNDg4IDQ3LjI3OCAyODYuNjM0IDMzLjEzMSAzMDEuNjc2QzMzLjEzMSAzMDEuNjc2IDQxLjg3MiAyODQuNTMzIDkwLjk5MSAzMTAuMDcyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik04My40NDYgMzE0LjI2M0M4My40NDYgMzE0LjI2MyA4NC45MDIgMzE1LjQ4IDg0LjMyNiAzMTYuMDcxQzgzLjc1IDMxNi42NjEgMzcuMzYyIDI5NS45MjIgMjUuMDA4IDMxMi40NjlDMjUuMDA4IDMxMi40NjkgMzEuNzUzIDI5NC40NDcgODMuNDQ2IDMxNC4yNjN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMTcyIj4KKyAgPHBhdGggZD0iTTgwLjg0NiAzMTguMzM1QzgwLjg0NiAzMTguMzM1IDgyLjQ1NCAzMTkuMzQzIDgxLjk2NCAzMjAuMDA2QzgxLjQ3NCAzMjAuNjY5IDMyLjY5MiAzMDYuNDQ2IDIyLjcwOSAzMjQuNTIyQzIyLjcwOSAzMjQuNTIyIDI2LjkzNCAzMDUuNzQ5IDgwLjg0NiAzMTguMzM1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik05MS41OCAzMTguOTQ5QzkxLjU4IDMxOC45NDkgOTIuNzAyIDMyMC40OCA5Mi4wMDEgMzIwLjkxNUM5MS4zIDMyMS4zNSA1MS4yMzEgMjkwLjEwMiAzNS4yNzMgMzAzLjIwN0MzNS4yNzMgMzAzLjIwNyA0Ni4xMzggMjg3LjMyNiA5MS41OCAzMTguOTQ5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik03MS44IDI5MEM3MS44IDI5MCA3Mi40IDI5MS44IDcxLjYgMjkyQzcwLjggMjkyLjIgNDIuMiAyNTAuMiAyMi45OTkgMjU3LjhDMjIuOTk5IDI1Ny44IDM4LjIgMjQ2IDcxLjggMjkweiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik03Mi40OTUgMjk2Ljk3OUM3Mi40OTUgMjk2Ljk3OSA3My40NyAyOTguNjA4IDcyLjczMSAyOTguOTc1QzcxLjk5MyAyOTkuMzQzIDM1LjAwOCAyNjQuNDk5IDE3Ljg5OSAyNzYuMDYxQzE3Ljg5OSAyNzYuMDYxIDMwLjE5NiAyNjEuMjYxIDcyLjQ5NSAyOTYuOTc5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjE3MiI+CisgIDxwYXRoIGQ9Ik03Mi4zOCAzMDEuMzQ5QzcyLjM4IDMwMS4zNDkgNzMuNTAyIDMwMi44OCA3Mi44MDEgMzAzLjMxNUM3Mi4xIDMwMy43NDkgMzIuMDMxIDI3Mi41MDIgMTYuMDczIDI4NS42MDdDMTYuMDczIDI4NS42MDcgMjYuOTM4IDI2OS43MjYgNzIuMzggMzAxLjM0OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwIj4KKyAgPHBhdGggZD0iTTcwLjE3IDMwMy4wNjVDNzAuNjczIDMwOS4xMTMgNzEuNjYxIDMxNS42ODIgNzMuNCAzMTguODAxQzczLjQgMzE4LjgwMSA2OS44IDMzMS4yMDEgNzguNiAzNDQuNDAxQzc4LjYgMzQ0LjQwMSA3OC4yIDM1MS42MDEgNzkuOCAzNTQuODAxQzc5LjggMzU0LjgwMSA4My44IDM2My4yMDEgODguNiAzNjQuMDAxQzkyLjQ4NCAzNjQuNjQ4IDEwMS4yMDcgMzY3LjcxNyAxMTEuMDY4IDM2OS4xMjFDMTExLjA2OCAzNjkuMTIxIDEyOC4yIDM4My4yMDEgMTI1IDM5Ni4wMDFDMTI1IDM5Ni4wMDEgMTI0LjYgNDEyLjQwMSAxMjEgNDE0LjAwMUMxMjEgNDE0LjAwMSAxMzIuNiA0MDIuODAxIDEyMyA0MTkuNjAxTDExOC42IDQzOC40MDFDMTE4LjYgNDM4LjQwMSAxNDQuMiA0MTYuODAxIDEyOC42IDQzNS4yMDFMMTE4LjYgNDYxLjIwMUMxMTguNiA0NjEuMjAxIDEzOC4yIDQ0Mi44MDEgMTMxIDQ1MS4yMDFMMTI3LjggNDYwLjAwMUMxMjcuOCA0NjAuMDAxIDE3MSA0MzIuODAxIDE0MC4yIDQ2Mi40MDFDMTQwLjIgNDYyLjQwMSAxNDguMiA0NTguODAxIDE1Mi42IDQ2MS42MDFDMTUyLjYgNDYxLjYwMSAxNTkuNCA0NjAuNDAxIDE1OC42IDQ2Mi4wMDFDMTU4LjYgNDYyLjAwMSAxMzcuOCA0NzIuNDAxIDEzNC4yIDQ5MC44MDFDMTM0LjIgNDkwLjgwMSAxNDIuNiA0ODAuODAxIDEzOS40IDQ5MS42MDFMMTM5LjggNTAzLjIwMUMxMzkuOCA1MDMuMjAxIDE0My44IDQ4MS42MDEgMTQzLjQgNTE5LjIwMUMxNDMuNCA1MTkuMjAxIDE2Mi42IDUwMS4yMDEgMTUxIDUyMi4wMDFMMTUxIDUzOC44MDFDMTUxIDUzOC44MDEgMTY2LjIgNTIyLjQwMSAxNTkuOCA1MzUuMjAxQzE1OS44IDUzNS4yMDEgMTY5LjggNTI2LjQwMSAxNjUuOCA1NDEuNjAxQzE2NS44IDU0MS42MDEgMTY1IDU1Mi4wMDEgMTY5LjQgNTQwLjgwMUMxNjkuNCA1NDAuODAxIDE4NS40IDUxMC4yMDEgMTc5LjQgNTM2LjQwMUMxNzkuNCA1MzYuNDAxIDE3OC42IDU1NS42MDEgMTgzLjQgNTQwLjgwMUMxODMuNCA1NDAuODAxIDE4My44IDU1MS4yMDEgMTkzIDU1OC40MDFDMTkzIDU1OC40MDEgMTkxLjggNTA3LjYwMSAyMDQuNiA1NDMuNjAxTDIwOC42IDU2MC4wMDFDMjA4LjYgNTYwLjAwMSAyMTEuNCA1NTAuODAxIDIxMSA1NDUuNjAxQzIxMSA1NDUuNjAxIDIyNS44IDUyOS4yMDEgMjE5IDU1My42MDFDMjE5IDU1My42MDEgMjM0LjIgNTMwLjgwMSAyMzEgNTQ0LjAwMUMyMzEgNTQ0LjAwMSAyMjMuNCA1NjAuMDAxIDIyNSA1NjQuODAxQzIyNSA1NjQuODAxIDI0MS44IDUzMC4wMDEgMjQzIDUyOC40MDFDMjQzIDUyOC40MDEgMjQxIDU3MC44MDIgMjUxLjggNTM0LjgwMUMyNTEuOCA1MzQuODAxIDI1Ny40IDU0Ni44MDEgMjU0LjYgNTUxLjIwMUMyNTQuNiA1NTEuMjAxIDI2Mi42IDU0My4yMDEgMjYxLjggNTQwLjAwMUMyNjEuOCA1NDAuMDAxIDI2Ni40IDUzMS44MDEgMjY5LjIgNTQ1LjQwMUMyNjkuMiA1NDUuNDAxIDI3MSA1NTQuODAxIDI3Mi42IDU1MS42MDFDMjcyLjYgNTUxLjYwMSAyNzYuNiA1NzUuNjAyIDI3Ny44IDU1Mi44MDFDMjc3LjggNTUyLjgwMSAyNzkuNCA1MzkuMjAxIDI3Mi4yIDUyNy42MDFDMjcyLjIgNTI3LjYwMSAyNzMgNTI0LjQwMSAyNzAuMiA1MjAuNDAxQzI3MC4yIDUyMC40MDEgMjgzLjggNTQyLjAwMSAyNzYuNiA1MTMuMjAxQzI3Ni42IDUxMy4yMDEgMjg3LjgwMSA1MjEuMjAxIDI4OS4wMDEgNTIxLjIwMUMyODkuMDAxIDUyMS4yMDEgMjc1LjQgNDk4LjAwMSAyODQuMiA1MDIuODAxQzI4NC4yIDUwMi44MDEgMjc5IDQ5Mi40MDEgMjk3LjAwMSA1MDQuNDAxQzI5Ny4wMDEgNTA0LjQwMSAyODEgNDg4LjQwMSAyOTguNjAxIDQ5OC4wMDFDMjk4LjYwMSA0OTguMDAxIDMwNi42MDEgNTA0LjQwMSAyOTkuMDAxIDQ5NC40MDFDMjk5LjAwMSA0OTQuNDAxIDI4NC42IDQ3OC40MDEgMzA2LjYwMSA0OTYuNDAxQzMwNi42MDEgNDk2LjQwMSAzMTguMjAxIDUxMi44MDEgMzE5LjAwMSA1MTUuNjAxQzMxOS4wMDEgNTE1LjYwMSAzMDkuMDAxIDQ4Ni40MDEgMzA0LjYwMSA0ODMuNjAxQzMwNC42MDEgNDgzLjYwMSAzMTMuMDAxIDQ0Ny4yMDEgMzU0LjIwMSA0NjIuODAxQzM1NC4yMDEgNDYyLjgwMSAzNjEuMDAxIDQ4MC4wMDEgMzY1LjQwMSA0NjEuNjAxQzM2NS40MDEgNDYxLjYwMSAzNzguMjAxIDQ1NS4yMDEgMzg5LjQwMSA0ODIuODAxQzM4OS40MDEgNDgyLjgwMSAzOTMuNDAxIDQ2OS4yMDEgMzkyLjYwMSA0NjYuNDAxQzM5Mi42MDEgNDY2LjQwMSAzOTkuNDAxIDQ2Ny42MDEgMzk4LjYwMSA0NjYuNDAxQzM5OC42MDEgNDY2LjQwMSA0MTEuODAxIDQ3MC44MDEgNDEzLjAwMSA0NzAuMDAxQzQxMy4wMDEgNDcwLjAwMSA0MTkuODAxIDQ3Ni44MDEgNDIwLjIwMSA0NzMuMjAxQzQyMC4yMDEgNDczLjIwMSA0MjkuNDAxIDQ3Ni4wMDEgNDI3LjQwMSA0NzIuNDAxQzQyNy40MDEgNDcyLjQwMSA0MzYuMjAxIDQ4OC4wMDEgNDM2LjYwMSA0OTEuNjAxTDQzOS4wMDEgNDc3LjYwMUw0NDEuMDAxIDQ4MC40MDFDNDQxLjAwMSA0ODAuNDAxIDQ0Mi42MDEgNDcyLjgwMSA0NDEuODAxIDQ3MS42MDFDNDQxLjAwMSA0NzAuNDAxIDQ2MS44MDEgNDc4LjQwMSA0NjYuNjAxIDQ5OS4yMDFMNDY4LjYwMSA1MDcuNjAxQzQ2OC42MDEgNTA3LjYwMSA0NzQuNjAxIDQ5Mi44MDEgNDczLjAwMSA0ODguODAxQzQ3My4wMDEgNDg4LjgwMSA0NzguMjAxIDQ4OS42MDEgNDc4LjYwMSA0OTQuMDAxQzQ3OC42MDEgNDk0LjAwMSA0ODIuNjAxIDQ3MC44MDEgNDc3LjgwMSA0NjQuODAxQzQ3Ny44MDEgNDY0LjgwMSA0ODIuMjAxIDQ2NC4wMDEgNDgzLjQwMSA0NjcuNjAxTDQ4My40MDEgNDYwLjQwMUM0ODMuNDAxIDQ2MC40MDEgNDkwLjYwMSA0NjEuMjAxIDQ5MC42MDEgNDU4LjgwMUM0OTAuNjAxIDQ1OC44MDEgNDk1LjAwMSA0NTQuODAxIDQ5Ny4wMDEgNDU5LjYwMUM0OTcuMDAxIDQ1OS42MDEgNDg0LjYwMSA0MjQuNDAxIDUwMy4wMDEgNDQzLjYwMUM1MDMuMDAxIDQ0My42MDEgNTEwLjIwMSA0NTQuNDAxIDUwNi42MDEgNDM1LjYwMUM1MDMuMDAxIDQxNi44MDEgNDk5LjAwMSA0MTUuMjAxIDUwMy44MDEgNDE0LjgwMUM1MDMuODAxIDQxNC44MDEgNTA0LjYwMSA0MTEuMjAxIDUwMi42MDEgNDA5LjYwMUM1MDAuNjAxIDQwOC4wMDEgNTAzLjgwMSA0MDkuNjAxIDUwMy44MDEgNDA5LjYwMUM1MDMuODAxIDQwOS42MDEgNTA4LjYwMSA0MTMuNjAxIDUwMy40MDEgMzkxLjYwMUM1MDMuNDAxIDM5MS42MDEgNTA5LjgwMSAzOTMuMjAxIDQ5Ny44MDEgMzY0LjAwMUM0OTcuODAxIDM2NC4wMDEgNTAwLjYwMSAzNjEuNjAxIDQ5Ni42MDEgMzUzLjIwMUM0OTYuNjAxIDM1My4yMDEgNTA0LjYwMSAzNTcuNjAxIDUwNy40MDEgMzU2LjAwMUM1MDcuNDAxIDM1Ni4wMDEgNTA3LjAwMSAzNTQuNDAxIDUwMy44MDEgMzUwLjQwMUM1MDMuODAxIDM1MC40MDEgNDgyLjIwMSAyOTUuNiA1MDIuNjAxIDMxNy42MDFDNTAyLjYwMSAzMTcuNjAxIDUxNC40NTEgMzMxLjE1MSA1MDguMDUxIDMwOC4zNTFDNTA4LjA1MSAzMDguMzUxIDQ5OC45NCAyODQuMzQxIDQ5OS43MTcgMjgwLjA0NUw3MC4xNyAzMDMuMDY1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNjsgc3Ryb2tlOiMwMDAwMDAiPgorICA8cGF0aCBkPSJNNDk5LjcxNyAyODAuMjQ1QzUwMC4zNDUgMjgwLjQyNiA1MDIuNTUxIDI4MS41NSA1MDMuODAxIDI4My4yQzUwMy44MDEgMjgzLjIgNTEwLjYwMSAyOTQgNTA1LjQwMSAyNzUuNkM1MDUuNDAxIDI3NS42IDQ5Ni4yMDEgMjQ2LjggNTA1LjAwMSAyNThDNTA1LjAwMSAyNTggNTExLjAwMSAyNjUuMiA1MDcuODAxIDI1MS42QzUwMy45MzYgMjM1LjE3MyA1MDEuNDAxIDIyOC44IDUwMS40MDEgMjI4LjhDNTAxLjQwMSAyMjguOCA1MTMuMDAxIDIzMy42IDQ4Ni4yMDEgMTk0TDQ5NS4wMDEgMTk3LjZDNDk1LjAwMSAxOTcuNiA0NzUuNDAxIDE1OCA0NTMuODAxIDE1Mi44TDQ0NS44MDEgMTQ2LjhDNDQ1LjgwMSAxNDYuOCA0ODQuMjAxIDEwOC44IDQ3MS40MDEgNzJDNDcxLjQwMSA3MiA0NjQuNjAxIDY2LjggNDU1LjAwMSA3NkM0NTUuMDAxIDc2IDQ0OC42MDEgODAuOCA0NDIuNjAxIDc5LjJDNDQyLjYwMSA3OS4yIDQxMS44MDEgODAuNCA0MDkuODAxIDgwLjRDNDA3LjgwMSA4MC40IDM3My4wMDEgNDMuMiAzMDcuNDAxIDYwLjhDMzA3LjQwMSA2MC44IDMwMi4yMDEgNjIuOCAyOTcuODAxIDYxLjZDMjk3LjgwMSA2MS42IDI3OS40IDQ1LjYgMjMwLjYgNjguNEMyMzAuNiA2OC40IDIyMC42IDcwLjQgMjE5IDcwLjRDMjE3LjQgNzAuNCAyMTQuNiA3MC40IDIwNi42IDc2LjhDMTk4LjYgODMuMiAxOTguMiA4NCAxOTYuMiA4NS42QzE5Ni4yIDg1LjYgMTc5LjggOTYuOCAxNzUgOTcuNkMxNzUgOTcuNiAxNjMuNCAxMDQgMTU5IDExNEwxNTUuNCAxMTUuMkMxNTUuNCAxMTUuMiAxNTMuOCAxMjIuNCAxNTMuNCAxMjMuNkMxNTMuNCAxMjMuNiAxNDguNiAxMjcuMiAxNDcuOCAxMzIuOEMxNDcuOCAxMzIuOCAxMzkgMTM4LjggMTM5LjQgMTQzLjJDMTM5LjQgMTQzLjIgMTM3LjggMTQ4LjQgMTM3IDE1My4yQzEzNyAxNTMuMiAxMjkuOCAxNTggMTMwLjYgMTYwLjhDMTMwLjYgMTYwLjggMTIzIDE3NC44IDEyNC4yIDE4MS42QzEyNC4yIDE4MS42IDExNy44IDE4MS4yIDExNSAxODMuNkMxMTUgMTgzLjYgMTE0LjIgMTg4LjQgMTEyLjYgMTg4LjhDMTEyLjYgMTg4LjggMTA5LjggMTkwIDExMi4yIDE5NEMxMTIuMiAxOTQgMTEwLjYgMTk2LjggMTEwLjIgMTk4LjRDMTEwLjIgMTk4LjQgMTExIDIwMS4yIDEwNi42IDIwNi44QzEwNi42IDIwNi44IDEwMC4yIDIyNS42IDEwMi4yIDIzMC44QzEwMi4yIDIzMC44IDEwMi42IDIzNS42IDk5LjggMjM3LjJDOTkuOCAyMzcuMiA5Ni4yIDIzNi44IDEwNC42IDI0OC44QzEwNC42IDI0OC44IDEwNS40IDI1MCAxMDIuMiAyNTIuNEMxMDIuMiAyNTIuNCA4NSAyNTYgODIuNiAyNzIuNEM4Mi42IDI3Mi40IDY5IDI4Ny4yIDY5IDI5Mi40QzY5IDI5NC43MDUgNjkuMjcxIDI5Ny44NTIgNjkuOTcgMzAyLjQ2NUM2OS45NyAzMDIuNDY1IDY5LjQgMzEwLjgwMSA5NyAzMTEuNjAxQzEyNC42IDMxMi40MDEgNDk5LjcxNyAyODAuMjQ1IDQ5OS43MTcgMjgwLjI0NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNODQuNCAzMDIuNkM1OS40IDI2My4yIDczLjggMzE5LjYwMSA3My44IDMxOS42MDFDODIuNiAzNTQuMDAxIDIxMi4yIDMxNi40MDEgMjEyLjIgMzE2LjQwMUMyMTIuMiAzMTYuNDAxIDM4MS4wMDEgMjg2IDM5Mi4yMDEgMjgyQzQwMy40MDEgMjc4IDQ5OC42MDEgMjg0LjQgNDk4LjYwMSAyODQuNEw0OTMuMDAxIDI2Ny42QzQyOC4yMDEgMjIxLjIgNDA5LjAwMSAyNDQuNCAzOTUuNDAxIDI0MC40QzM4MS44MDEgMjM2LjQgMzg0LjIwMSAyNDYgMzgxLjAwMSAyNDYuOEMzNzcuODAxIDI0Ny42IDMzOC42MDEgMjIyLjggMzMyLjIwMSAyMjMuNkMzMjUuODAxIDIyNC40IDMwMC40NTkgMjAwLjY0OSAzMTUuNDAxIDIzMi40QzMzMS40MDEgMjY2LjQgMjU3IDI3MS42IDI0MC4yIDI2MC40QzIyMy40IDI0OS4yIDI0Ny40IDI3OC44IDI0Ny40IDI3OC44QzI2NS44IDI5OC44IDIzMS40IDI4MiAyMzEuNCAyODJDMTk3IDI2OS4yIDE3MyAyOTQuOCAxNjkuOCAyOTUuNkMxNjYuNiAyOTYuNCAxNjEuOCAyOTkuNiAxNjEgMjkzLjJDMTYwLjIgMjg2LjggMTUyLjY5IDI3MC4wOTkgMTIxIDI5Ni40QzEwMSAzMTMuMDAxIDg3LjIgMjkxIDg3LjIgMjkxTDg0LjQgMzAyLjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTg3ZjNhIj4KKyAgPHBhdGggZD0iTTMzMy41MSAyMjUuMzQ2QzMyNy4xMSAyMjYuMTQ2IDMwMS43NDMgMjAyLjQwNyAzMTYuNzEgMjM0LjE0NkMzMzMuMzEgMjY5LjM0NiAyNTguMzEgMjczLjM0NiAyNDEuNTEgMjYyLjE0NkMyMjQuNzA5IDI1MC45NDYgMjQ4LjcxIDI4MC41NDYgMjQ4LjcxIDI4MC41NDZDMjY3LjExIDMwMC41NDYgMjMyLjcwOSAyODMuNzQ2IDIzMi43MDkgMjgzLjc0NkMxOTguMzA5IDI3MC45NDYgMTc0LjMwOSAyOTYuNTQ2IDE3MS4xMDkgMjk3LjM0NkMxNjcuOTA5IDI5OC4xNDYgMTYzLjEwOSAzMDEuMzQ2IDE2Mi4zMDkgMjk0Ljk0NkMxNjEuNTA5IDI4OC41NDYgMTU0LjEzIDI3Mi4wMTIgMTIyLjMwOSAyOTguMTQ2QzEwMS4wNzMgMzE1LjQ5MiA4Ny41ODIgMjk0LjAzNyA4Ny41ODIgMjk0LjAzN0w4NC4zODIgMzA0LjE0NkM1OS4zODIgMjY0LjM0NiA3NC40NTQgMzIyLjY1NSA3NC40NTQgMzIyLjY1NUM4My4yNTUgMzU3LjA1NiAyMTMuNTA5IDMxOC4xNDYgMjEzLjUwOSAzMTguMTQ2QzIxMy41MDkgMzE4LjE0NiAzODIuMzEgMjg3Ljc0NiAzOTMuNTEgMjgzLjc0NkM0MDQuNzEgMjc5Ljc0NiA0OTkuMDM4IDI4Ni4wNzMgNDk5LjAzOCAyODYuMDczTDQ5My41MSAyNjguNzY0QzQyOC43MSAyMjIuMzY0IDQxMC4zMSAyNDYuMTQ2IDM5Ni43MSAyNDIuMTQ2QzM4My4xMSAyMzguMTQ2IDM4NS41MSAyNDcuNzQ2IDM4Mi4zMSAyNDguNTQ2QzM3OS4xMSAyNDkuMzQ2IDMzOS45MSAyMjQuNTQ2IDMzMy41MSAyMjUuMzQ2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2VhOGM0ZCI+CisgIDxwYXRoIGQ9Ik0zMzQuODE5IDIyNy4wOTFDMzI4LjQxOSAyMjcuODkxIDMwMy42ODUgMjAzLjg2MiAzMTguMDE5IDIzNS44OTFDMzM0LjIxOSAyNzIuMDkyIDI1OS42MTkgMjc1LjA5MiAyNDIuODE5IDI2My44OTJDMjI2LjAxOSAyNTIuNjkyIDI1MC4wMTkgMjgyLjI5MiAyNTAuMDE5IDI4Mi4yOTJDMjY4LjQxOSAzMDIuMjkyIDIzNC4wMTkgMjg1LjQ5MiAyMzQuMDE5IDI4NS40OTJDMTk5LjYxOSAyNzIuNjkyIDE3NS42MTggMjk4LjI5MiAxNzIuNDE4IDI5OS4wOTJDMTY5LjIxOCAyOTkuODkyIDE2NC40MTggMzAzLjA5MiAxNjMuNjE4IDI5Ni42OTJDMTYyLjgxOCAyOTAuMjkyIDE1NS41NyAyNzMuOTI1IDEyMy42MTggMjk5Ljg5MkMxMDEuMTQ1IDMxNy45ODMgODcuOTY0IDI5Ny4wNzQgODcuOTY0IDI5Ny4wNzRMODQuMzY0IDMwNS42OTJDNjAuNTY0IDI2Ni42OTIgNzUuMTA5IDMyNS43MSA3NS4xMDkgMzI1LjcxQzgzLjkwOSAzNjAuMTEgMjE0LjgxOSAzMTkuODkyIDIxNC44MTkgMzE5Ljg5MkMyMTQuODE5IDMxOS44OTIgMzgzLjYxOSAyODkuNDkyIDM5NC44MTkgMjg1LjQ5MkM0MDYuMDE5IDI4MS40OTIgNDk5LjQ3NCAyODcuNzQ2IDQ5OS40NzQgMjg3Ljc0Nkw0OTQuMDIgMjY5LjkyOEM0MjkuMjE5IDIyMy41MjggNDExLjYxOSAyNDcuODkxIDM5OC4wMTkgMjQzLjg5MUMzODQuNDE5IDIzOS44OTEgMzg2LjgxOSAyNDkuNDkxIDM4My42MTkgMjUwLjI5MkMzODAuNDE5IDI1MS4wOTIgMzQxLjIxOSAyMjYuMjkxIDMzNC44MTkgMjI3LjA5MXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlYzk5NjEiPgorICA8cGF0aCBkPSJNMzM2LjEyOCAyMjguODM3QzMyOS43MjggMjI5LjYzNyAzMDQuOTk5IDIwNS42MDUgMzE5LjMyOCAyMzcuNjM3QzMzNi4xMjggMjc1LjE5MyAyNjAuMzk0IDI3Ni40ODIgMjQ0LjEyOCAyNjUuNjM3QzIyNy4zMjggMjU0LjQzNyAyNTEuMzI4IDI4NC4wMzcgMjUxLjMyOCAyODQuMDM3QzI2OS43MjggMzA0LjAzNyAyMzUuMzI4IDI4Ny4yMzcgMjM1LjMyOCAyODcuMjM3QzIwMC45MjggMjc0LjQzNyAxNzYuOTI4IDMwMC4wMzcgMTczLjcyOCAzMDAuODM3QzE3MC41MjggMzAxLjYzNyAxNjUuNzI4IDMwNC44MzcgMTY0LjkyOCAyOTguNDM3QzE2NC4xMjggMjkyLjAzNyAxNTcuMDExIDI3NS44MzkgMTI0LjkyNyAzMDEuNjM3QzEwMS4yMTggMzIwLjQ3NCA4OC4zNDUgMzAwLjExIDg4LjM0NSAzMDAuMTFMODQuMzQ1IDMwNy4yMzdDNjIuNTQ1IDI3MC40MzcgNzUuNzY0IDMyOC43NjUgNzUuNzY0IDMyOC43NjVDODQuNTY0IDM2My4xNjUgMjE2LjEyOCAzMjEuNjM3IDIxNi4xMjggMzIxLjYzN0MyMTYuMTI4IDMyMS42MzcgMzg0LjkyOCAyOTEuMjM3IDM5Ni4xMjkgMjg3LjIzN0M0MDcuMzI5IDI4My4yMzcgNDk5LjkxMSAyODkuNDE5IDQ5OS45MTEgMjg5LjQxOUw0OTQuNTI5IDI3MS4wOTJDNDI5LjcyOSAyMjQuNjkxIDQxMi45MjkgMjQ5LjYzNyAzOTkuMzI5IDI0NS42MzdDMzg1LjcyOCAyNDEuNjM3IDM4OC4xMjggMjUxLjIzNyAzODQuOTI4IDI1Mi4wMzdDMzgxLjcyOCAyNTIuODM3IDM0Mi41MjggMjI4LjAzNyAzMzYuMTI4IDIyOC44Mzd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZWVhNTc1Ij4KKyAgPHBhdGggZD0iTTMzNy40MzggMjMwLjU4M0MzMzEuMDM3IDIzMS4zODMgMzA2LjgxNCAyMDcuMTI5IDMyMC42MzcgMjM5LjM4M0MzMzcuNDM4IDI3OC41ODMgMjYyLjIzNyAyNzguNTgzIDI0NS40MzcgMjY3LjM4M0MyMjguNjM3IDI1Ni4xODMgMjUyLjYzNyAyODUuNzgzIDI1Mi42MzcgMjg1Ljc4M0MyNzEuMDM3IDMwNS43ODMgMjM2LjYzNyAyODguOTgzIDIzNi42MzcgMjg4Ljk4M0MyMDIuMjM3IDI3Ni4xODMgMTc4LjIzNyAzMDEuNzgzIDE3NS4wMzcgMzAyLjU4M0MxNzEuODM3IDMwMy4zODMgMTY3LjAzNyAzMDYuNTgzIDE2Ni4yMzcgMzAwLjE4M0MxNjUuNDM3IDI5My43ODMgMTU4LjQ1MiAyNzcuNzUyIDEyNi4yMzcgMzAzLjM4M0MxMDEuMjkxIDMyMi45NjUgODguNzI3IDMwMy4xNDYgODguNzI3IDMwMy4xNDZMODQuMzI3IDMwOC43ODNDNjQuNTI3IDI3My45ODIgNzYuNDE4IDMzMS44MTkgNzYuNDE4IDMzMS44MTlDODUuMjE4IDM2Ni4yMiAyMTcuNDM3IDMyMy4zODMgMjE3LjQzNyAzMjMuMzgzQzIxNy40MzcgMzIzLjM4MyAzODYuMjM4IDI5Mi45ODMgMzk3LjQzOCAyODguOTgzQzQwOC42MzggMjg0Ljk4MyA1MDAuMzQ3IDI5MS4wOTIgNTAwLjM0NyAyOTEuMDkyTDQ5NS4wMzggMjcyLjI1NUM0MzAuMjM4IDIyNS44NTUgNDE0LjIzOCAyNTEuMzgzIDQwMC42MzggMjQ3LjM4M0MzODcuMDM4IDI0My4zODMgMzg5LjQzOCAyNTIuOTgzIDM4Ni4yMzggMjUzLjc4M0MzODMuMDM4IDI1NC41ODMgMzQzLjgzOCAyMjkuNzgzIDMzNy40MzggMjMwLjU4M3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmMWIyODgiPgorICA8cGF0aCBkPSJNMzM4Ljc0NyAyMzIuMzI4QzMzMi4zNDcgMjMzLjEyOCAzMDYuMzgzIDIwOS42NzcgMzIxLjk0NyAyNDEuMTI4QzM0MS4xNDcgMjc5LjkyOCAyNjMuNTQ2IDI4MC4zMjggMjQ2Ljc0NiAyNjkuMTI4QzIyOS45NDYgMjU3LjkyOCAyNTMuOTQ2IDI4Ny41MjggMjUzLjk0NiAyODcuNTI4QzI3Mi4zNDYgMzA3LjUyOCAyMzcuOTQ2IDI5MC43MjggMjM3Ljk0NiAyOTAuNzI4QzIwMy41NDYgMjc3LjkyOCAxNzkuNTQ2IDMwMy41MjggMTc2LjM0NiAzMDQuMzI4QzE3My4xNDYgMzA1LjEyOCAxNjguMzQ2IDMwOC4zMjggMTY3LjU0NiAzMDEuOTI4QzE2Ni43NDYgMjk1LjUyOCAxNTkuODkyIDI3OS42NjUgMTI3LjU0NiAzMDUuMTI4QzEwMS4zNjQgMzI1LjQ1NiA4OS4xMDkgMzA2LjE4MyA4OS4xMDkgMzA2LjE4M0w4NC4zMDkgMzEwLjMyOEM2Ni4zMDkgMjc3LjEyOCA3Ny4wNzMgMzM0Ljg3NCA3Ny4wNzMgMzM0Ljg3NEM4NS44NzMgMzY5LjI3NCAyMTguNzQ2IDMyNS4xMjggMjE4Ljc0NiAzMjUuMTI4QzIxOC43NDYgMzI1LjEyOCAzODcuNTQ3IDI5NC43MjggMzk4Ljc0NyAyOTAuNzI4QzQwOS45NDcgMjg2LjcyOCA1MDAuNzgzIDI5Mi43NjQgNTAwLjc4MyAyOTIuNzY0TDQ5NS41NDcgMjczLjQxOUM0MzAuNzQ3IDIyNy4wMTkgNDE1LjU0NyAyNTMuMTI4IDQwMS45NDcgMjQ5LjEyOEMzODguMzQ3IDI0NS4xMjggMzkwLjc0NyAyNTQuNzI4IDM4Ny41NDcgMjU1LjUyOEMzODQuMzQ3IDI1Ni4zMjggMzQ1LjE0NyAyMzEuNTI4IDMzOC43NDcgMjMyLjMyOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmM2JmOWMiPgorICA8cGF0aCBkPSJNMzQwLjA1NiAyMzQuMDczQzMzMy42NTUgMjM0Ljg3MyAzMDcuMzEzIDIxMS42MTMgMzIzLjI1NSAyNDIuODczQzM0My42NTYgMjgyLjg3NCAyNjQuODU1IDI4Mi4wNzQgMjQ4LjA1NSAyNzAuODc0QzIzMS4yNTUgMjU5LjY3NCAyNTUuMjU1IDI4OS4yNzQgMjU1LjI1NSAyODkuMjc0QzI3My42NTUgMzA5LjI3NCAyMzkuMjU1IDI5Mi40NzQgMjM5LjI1NSAyOTIuNDc0QzIwNC44NTUgMjc5LjY3NCAxODAuODU1IDMwNS4yNzQgMTc3LjY1NSAzMDYuMDc0QzE3NC40NTUgMzA2Ljg3NCAxNjkuNjU1IDMxMC4wNzQgMTY4Ljg1NSAzMDMuNjc0QzE2OC4wNTUgMjk3LjI3NCAxNjEuMzMyIDI4MS41NzggMTI4Ljg1NSAzMDYuODc0QzEwMS40MzYgMzI3Ljk0NyA4OS40OTEgMzA5LjIxOSA4OS40OTEgMzA5LjIxOUw4NC4yOTEgMzExLjg3NEM2OC4yOTEgMjgxLjY3NCA3Ny43MjcgMzM3LjkyOSA3Ny43MjcgMzM3LjkyOUM4Ni41MjcgMzcyLjMyOSAyMjAuMDU1IDMyNi44NzQgMjIwLjA1NSAzMjYuODc0QzIyMC4wNTUgMzI2Ljg3NCAzODguODU2IDI5Ni40NzQgNDAwLjA1NiAyOTIuNDc0QzQxMS4yNTYgMjg4LjQ3NCA1MDEuMjIgMjk0LjQzNyA1MDEuMjIgMjk0LjQzN0w0OTYuMDU2IDI3NC41ODNDNDMxLjI1NiAyMjguMTgzIDQxNi44NTYgMjU0Ljg3NCA0MDMuMjU2IDI1MC44NzRDMzg5LjY1NiAyNDYuODczIDM5Mi4wNTYgMjU2LjQ3NCAzODguODU2IDI1Ny4yNzRDMzg1LjY1NiAyNTguMDc0IDM0Ni40NTYgMjMzLjI3MyAzNDAuMDU2IDIzNC4wNzN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZjVjY2IwIj4KKyAgPHBhdGggZD0iTTM0MS4zNjUgMjM1LjgxOUMzMzQuOTY1IDIzNi42MTkgMzA3LjUyMyAyMTMuOTQ0IDMyNC41NjUgMjQ0LjYxOUMzNDYuNTY1IDI4NC4yMTkgMjY2LjE2NCAyODMuODE5IDI0OS4zNjQgMjcyLjYxOUMyMzIuNTY0IDI2MS40MTkgMjU2LjU2NCAyOTEuMDE5IDI1Ni41NjQgMjkxLjAxOUMyNzQuOTY0IDMxMS4wMTkgMjQwLjU2NCAyOTQuMjE5IDI0MC41NjQgMjk0LjIxOUMyMDYuMTY0IDI4MS40MTkgMTgyLjE2NCAzMDcuMDE5IDE3OC45NjQgMzA3LjgxOUMxNzUuNzY0IDMwOC42MTkgMTcwLjk2NCAzMTEuODE5IDE3MC4xNjQgMzA1LjQxOUMxNjkuMzY0IDI5OS4wMTkgMTYyLjc3MyAyODMuNDkyIDEzMC4xNjQgMzA4LjYxOUMxMDEuNTA5IDMzMC40MzggODkuODczIDMxMi4yNTYgODkuODczIDMxMi4yNTZMODQuMjczIDMxMy40MTlDNjkuODcyIDI4NS4wMTkgNzguMzgyIDM0MC45ODMgNzguMzgyIDM0MC45ODNDODcuMTgyIDM3NS4zODQgMjIxLjM2NCAzMjguNjE5IDIyMS4zNjQgMzI4LjYxOUMyMjEuMzY0IDMyOC42MTkgMzkwLjE2NSAyOTguMjE5IDQwMS4zNjUgMjk0LjIxOUM0MTIuNTY1IDI5MC4yMTkgNTAxLjY1NiAyOTYuMTEgNTAxLjY1NiAyOTYuMTFMNDk2LjU2NSAyNzUuNzQ2QzQzMS43NjUgMjI5LjM0NiA0MTguMTY1IDI1Ni42MTkgNDA0LjU2NSAyNTIuNjE5QzM5MC45NjUgMjQ4LjYxOSAzOTMuMzY1IDI1OC4yMTkgMzkwLjE2NSAyNTkuMDE5QzM4Ni45NjUgMjU5LjgxOSAzNDcuNzY1IDIzNS4wMTkgMzQxLjM2NSAyMzUuODE5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2Y4ZDhjNCI+CisgIDxwYXRoIGQ9Ik0zNDIuNjc0IDIzNy41NjVDMzM2LjI3NCAyMzguMzY1IDMwOC44MzIgMjE1LjY4OSAzMjUuODc0IDI0Ni4zNjVDMzQ3Ljg3NCAyODUuOTY1IDI2Ny40NzQgMjg1LjU2NSAyNTAuNjc0IDI3NC4zNjVDMjMzLjg3NCAyNjMuMTY1IDI1Ny44NzQgMjkyLjc2NSAyNTcuODc0IDI5Mi43NjVDMjc2LjI3NCAzMTIuNzY1IDI0MS44NzQgMjk1Ljk2NSAyNDEuODc0IDI5NS45NjVDMjA3LjQ3MyAyODMuMTY1IDE4My40NzMgMzA4Ljc2NSAxODAuMjczIDMwOS41NjVDMTc3LjA3MyAzMTAuMzY1IDE3Mi4yNzMgMzEzLjU2NSAxNzEuNDczIDMwNy4xNjVDMTcwLjY3MyAzMDAuNzY1IDE2NC4yMTQgMjg1LjQwNSAxMzEuNDczIDMxMC4zNjVDMTAxLjU4MiAzMzIuOTI5IDkwLjI1NSAzMTUuMjkzIDkwLjI1NSAzMTUuMjkzTDg0LjI1NSAzMTQuOTY1QzcwLjY1NCAyODguNTY0IDc5LjAzNyAzNDQuMDM4IDc5LjAzNyAzNDQuMDM4Qzg3LjgzNyAzNzguNDM4IDIyMi42NzMgMzMwLjM2NSAyMjIuNjczIDMzMC4zNjVDMjIyLjY3MyAzMzAuMzY1IDM5MS40NzQgMjk5Ljk2NSA0MDIuNjc0IDI5NS45NjVDNDEzLjg3NCAyOTEuOTY1IDUwMi4wOTMgMjk3Ljc4MyA1MDIuMDkzIDI5Ny43ODNMNDk3LjA3NSAyNzYuOTFDNDMyLjI3NCAyMzAuNTEgNDE5LjQ3NCAyNTguMzY1IDQwNS44NzQgMjU0LjM2NUMzOTIuMjc0IDI1MC4zNjUgMzk0LjY3NCAyNTkuOTY1IDM5MS40NzQgMjYwLjc2NUMzODguMjc0IDI2MS41NjUgMzQ5LjA3NCAyMzYuNzY1IDM0Mi42NzQgMjM3LjU2NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmYWU1ZDciPgorICA8cGF0aCBkPSJNMzQzLjk4MyAyMzkuMzFDMzM3LjU4MyAyNDAuMTEgMzEwLjUyOSAyMTcuMjIzIDMyNy4xODMgMjQ4LjExQzM0OS4xODMgMjg4LjkxIDI2OC43ODMgMjg3LjMxIDI1MS45ODMgMjc2LjExQzIzNS4xODMgMjY0LjkxIDI1OS4xODMgMjk0LjUxIDI1OS4xODMgMjk0LjUxQzI3Ny41ODMgMzE0LjUxIDI0My4xODMgMjk3LjcxIDI0My4xODMgMjk3LjcxQzIwOC43ODMgMjg0LjkxIDE4NC43ODMgMzEwLjUxIDE4MS41ODMgMzExLjMxQzE3OC4zODIgMzEyLjExIDE3My41ODIgMzE1LjMxIDE3Mi43ODIgMzA4LjkxQzE3MS45ODIgMzAyLjUxIDE2NS42NTQgMjg3LjMxOCAxMzIuNzgyIDMxMi4xMUMxMDEuNjU1IDMzNS40MiA5MC42MzcgMzE4LjMyOSA5MC42MzcgMzE4LjMyOUw4NC4yMzYgMzE2LjUxQzcxLjIzNiAyOTIuNTEgNzkuNjkxIDM0Ny4wOTMgNzkuNjkxIDM0Ny4wOTNDODguNDkxIDM4MS40OTMgMjIzLjk4MyAzMzIuMTEgMjIzLjk4MyAzMzIuMTFDMjIzLjk4MyAzMzIuMTEgMzkyLjc4MyAzMDEuNzEgNDAzLjk4MyAyOTcuNzFDNDE1LjE4MyAyOTMuNzEgNTAyLjUyOSAyOTkuNDU2IDUwMi41MjkgMjk5LjQ1Nkw0OTcuNTgzIDI3OC4wNzRDNDMyLjc4MyAyMzEuNjczIDQyMC43ODMgMjYwLjExIDQwNy4xODMgMjU2LjExQzM5My41ODMgMjUyLjExIDM5NS45ODMgMjYxLjcxIDM5Mi43ODMgMjYyLjUxQzM4OS41ODMgMjYzLjMxIDM1MC4zODMgMjM4LjUxIDM0My45ODMgMjM5LjMxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZjZjJlYiI+CisgIDxwYXRoIGQ9Ik0zNDUuMjkyIDI0MS4wNTVDMzM4Ljg5MiAyNDEuODU1IDMxMi45MTcgMjE4LjQxMSAzMjguNDkyIDI0OS44NTVDMzQ5LjY5MiAyOTIuNjU2IDI3MC4wOTIgMjg5LjA1NiAyNTMuMjkyIDI3Ny44NTZDMjM2LjQ5MiAyNjYuNjU2IDI2MC40OTIgMjk2LjI1NiAyNjAuNDkyIDI5Ni4yNTZDMjc4Ljg5MiAzMTYuMjU2IDI0NC40OTIgMjk5LjQ1NiAyNDQuNDkyIDI5OS40NTZDMjEwLjA5MiAyODYuNjU2IDE4Ni4wOTIgMzEyLjI1NiAxODIuODkyIDMxMy4wNTZDMTc5LjY5MiAzMTMuODU2IDE3NC44OTIgMzE3LjA1NiAxNzQuMDkyIDMxMC42NTZDMTczLjI5MiAzMDQuMjU2IDE2Ny4wOTUgMjg5LjIzMiAxMzQuMDkyIDMxMy44NTZDMTAxLjcyNyAzMzcuOTExIDkxLjAxOCAzMjEuMzY1IDkxLjAxOCAzMjEuMzY1TDg0LjIxOCAzMTguMDU2QzcxLjQxOCAyOTQuODU2IDgwLjM0NiAzNTAuMTQ3IDgwLjM0NiAzNTAuMTQ3Qzg5LjE0NiAzODQuNTQ3IDIyNS4yOTIgMzMzLjg1NiAyMjUuMjkyIDMzMy44NTZDMjI1LjI5MiAzMzMuODU2IDM5NC4wOTMgMzAzLjQ1NiA0MDUuMjkzIDI5OS40NTZDNDE2LjQ5MyAyOTUuNDU2IDUwMi45NjUgMzAxLjEyOCA1MDIuOTY1IDMwMS4xMjhMNDk4LjA5MyAyNzkuMjM3QzQzMy4yOTIgMjMyLjgzNyA0MjIuMDkzIDI2MS44NTYgNDA4LjQ5MyAyNTcuODU2QzM5NC44OTMgMjUzLjg1NSAzOTcuMjkzIDI2My40NTYgMzk0LjA5MyAyNjQuMjU2QzM5MC44OTIgMjY1LjA1NiAzNTEuNjkyIDI0MC4yNTUgMzQ1LjI5MiAyNDEuMDU1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZiI+CisgIDxwYXRoIGQ9Ik04NC4yIDMxOS42MDFDNzEuNCAyOTcuNiA4MSAzNTMuMjAxIDgxIDM1My4yMDFDODkuOCAzODcuNjAxIDIyNi42IDMzNS42MDEgMjI2LjYgMzM1LjYwMUMyMjYuNiAzMzUuNjAxIDM5NS40MDEgMzA1LjIgNDA2LjYwMSAzMDEuMkM0MTcuODAxIDI5Ny4yIDUwMy40MDEgMzAyLjggNTAzLjQwMSAzMDIuOEw0OTguNjAxIDI4MC40QzQzMy44MDEgMjM0IDQyMy40MDEgMjYzLjYgNDA5LjgwMSAyNTkuNkMzOTYuMjAxIDI1NS42IDM5OC42MDEgMjY1LjIgMzk1LjQwMSAyNjZDMzkyLjIwMSAyNjYuOCAzNTMuMDAxIDI0MiAzNDYuNjAxIDI0Mi44QzM0MC4yMDEgMjQzLjYgMzE0Ljk4MSAyMTkuNzkzIDMyOS44MDEgMjUxLjZDMzUyLjAyOCAyOTkuMzA3IDI2OS4wNDEgMjg5LjIyNyAyNTQuNiAyNzkuNkMyMzcuOCAyNjguNCAyNjEuOCAyOTggMjYxLjggMjk4QzI4MC4yIDMxOC4wMDEgMjQ1LjggMzAxLjIgMjQ1LjggMzAxLjJDMjExLjQgMjg4LjQgMTg3LjQgMzE0LjAwMSAxODQuMiAzMTQuODAxQzE4MSAzMTUuNjAxIDE3Ni4yIDMxOC44MDEgMTc1LjQgMzEyLjQwMUMxNzQuNiAzMDYgMTY4LjUzNSAyOTEuMTQ0IDEzNS40IDMxNS42MDFDMTAxLjggMzQwLjQwMSA5MS40IDMyNC40MDEgOTEuNCAzMjQuNDAxTDg0LjIgMzE5LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTI1LjggMzQ5LjYwMUMxMjUuOCAzNDkuNjAxIDExOC42IDM2MS4yMDEgMTM5LjQgMzc0LjQwMUMxMzkuNCAzNzQuNDAxIDE0MC44IDM3NS44MDEgMTIyLjggMzcxLjYwMUMxMjIuOCAzNzEuNjAxIDExNi42IDM2OS42MDEgMTE1IDM1OS4yMDFDMTE1IDM1OS4yMDEgMTEwLjIgMzU0LjgwMSAxMDUuNCAzNDkuMjAxQzEwMC42IDM0My42MDEgMTI1LjggMzQ5LjYwMSAxMjUuOCAzNDkuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yNjUuOCAzMDJDMjY1LjggMzAyIDI4My40OTggMzI4LjgyMSAyODIuOSAzMzMuNjAxQzI4MS42IDM0NC4wMDEgMjgxLjQgMzUzLjYwMSAyODQuNiAzNTcuNjAxQzI4Ny44MDEgMzYxLjYwMSAyOTYuNjAxIDM5NC44MDEgMjk2LjYwMSAzOTQuODAxQzI5Ni42MDEgMzk0LjgwMSAyOTYuMjAxIDM5Ni4wMDEgMzA4LjYwMSAzNTguMDAxQzMwOC42MDEgMzU4LjAwMSAzMjAuMjAxIDM0Mi4wMDEgMzAwLjIwMSAzMjMuNjAxQzMwMC4yMDEgMzIzLjYwMSAyNjUgMjk0LjggMjY1LjggMzAyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xNDUuOCAzNzYuNDAxQzE0NS44IDM3Ni40MDEgMTU3IDM4My42MDEgMTQyLjYgNDE0LjgwMUwxNDkgNDEyLjQwMUMxNDkgNDEyLjQwMSAxNDguMiA0MjMuNjAxIDE0NSA0MjYuMDAxTDE1Mi4yIDQyMi44MDFDMTUyLjIgNDIyLjgwMSAxNTcgNDMwLjgwMSAxNTMgNDM1LjYwMUMxNTMgNDM1LjYwMSAxNjkuOCA0NDMuNjAxIDE2OSA0NTAuMDAxQzE2OSA0NTAuMDAxIDE3NS40IDQ0Mi4wMDEgMTcxLjQgNDM1LjYwMUMxNjcuNCA0MjkuMjAxIDE2MC4yIDQzMy4yMDEgMTYxIDQxNC44MDFMMTUyLjIgNDE4LjAwMUMxNTIuMiA0MTguMDAxIDE1Ny44IDQwOS4yMDEgMTU3LjggNDAyLjgwMUwxNDkuOCA0MDUuMjAxQzE0OS44IDQwNS4yMDEgMTY1LjI2OSAzNzguNjIzIDE1NC42IDM3Ny4yMDFDMTQ4LjYgMzc2LjQwMSAxNDUuOCAzNzYuNDAxIDE0NS44IDM3Ni40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3OC4yIDM5My4yMDFDMTc4LjIgMzkzLjIwMSAxODEgMzg4LjgwMSAxNzguMiAzODkuNjAxQzE3NS40IDM5MC40MDEgMTQ0LjIgNDA1LjIwMSAxMzguMiA0MTQuODAxQzEzOC4yIDQxNC44MDEgMTcyLjYgMzkwLjQwMSAxNzguMiAzOTMuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xODguNiA0MDEuMjAxQzE4OC42IDQwMS4yMDEgMTkxLjQgMzk2LjgwMSAxODguNiAzOTcuNjAxQzE4NS44IDM5OC40MDEgMTU0LjYgNDEzLjIwMSAxNDguNiA0MjIuODAxQzE0OC42IDQyMi44MDEgMTgzIDM5OC40MDEgMTg4LjYgNDAxLjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjAxLjggMzg2LjAwMUMyMDEuOCAzODYuMDAxIDIwNC42IDM4MS42MDEgMjAxLjggMzgyLjQwMUMxOTkgMzgzLjIwMSAxNjcuOCAzOTguMDAxIDE2MS44IDQwNy42MDFDMTYxLjggNDA3LjYwMSAxOTYuMiAzODMuMjAxIDIwMS44IDM4Ni4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3OC42IDQyOS42MDFDMTc4LjYgNDI5LjYwMSAxNzguNiA0MjMuNjAxIDE3NS44IDQyNC40MDFDMTczIDQyNS4yMDEgMTM3IDQ0Mi44MDEgMTMxIDQ1Mi40MDFDMTMxIDQ1Mi40MDEgMTczIDQyNi44MDEgMTc4LjYgNDI5LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTc5LjggNDE4LjgwMUMxNzkuOCA0MTguODAxIDE4MSA0MTQuMDAxIDE3OC4yIDQxNC44MDFDMTc2LjIgNDE0LjgwMSAxNDkuOCA0MjYuNDAxIDE0My44IDQzNi4wMDFDMTQzLjggNDM2LjAwMSAxNzMuNCA0MTQuNDAxIDE3OS44IDQxOC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE2NS40IDQ2Ni40MDFMMTU1LjQgNDc0LjAwMUMxNTUuNCA0NzQuMDAxIDE2NS44IDQ2Ni40MDEgMTY5LjQgNDY3LjYwMUMxNjkuNCA0NjcuNjAxIDE2Mi42IDQ3OC44MDEgMTYxLjggNDg0LjAwMUMxNjEuOCA0ODQuMDAxIDE3Mi4yIDQ3MS4yMDEgMTc3LjggNDcxLjYwMUMxNzcuOCA0NzEuNjAxIDE4NS40IDQ3Mi4wMDEgMTg1LjQgNDgyLjgwMUMxODUuNCA0ODIuODAxIDE5MSA0NzIuNDAxIDE5NC4yIDQ3Mi44MDFDMTk0LjIgNDcyLjgwMSAxOTUuNCA0NzkuMjAxIDE5NC4yIDQ4Ni4wMDFDMTk0LjIgNDg2LjAwMSAxOTguMiA0NzguNDAxIDIwMi4yIDQ4MC4wMDFDMjAyLjIgNDgwLjAwMSAyMDguNiA0NzguMDAxIDIwNy44IDQ4OS42MDFDMjA3LjggNDg5LjYwMSAyMDcuOCA1MDAuMDAxIDIwNyA1MDIuODAxQzIwNyA1MDIuODAxIDIxMi42IDQ3Ni40MDEgMjE1IDQ3Ni4wMDFDMjE1IDQ3Ni4wMDEgMjIzIDQ3NC44MDEgMjI3LjggNDgzLjYwMUMyMjcuOCA0ODMuNjAxIDIyMy44IDQ3Ni4wMDEgMjI4LjYgNDc4LjAwMUMyMjguNiA0NzguMDAxIDIzOS40IDQ3OS42MDEgMjQyLjYgNDg2LjQwMUMyNDIuNiA0ODYuNDAxIDIzNS44IDQ3NC40MDEgMjQxLjQgNDc3LjYwMUMyNDEuNCA0NzcuNjAxIDI0OC4yIDQ3Ny42MDEgMjQ5LjQgNDg0LjAwMUMyNDkuNCA0ODQuMDAxIDI1Ny44IDUwNS4yMDEgMjU5LjggNTA2LjgwMUMyNTkuOCA1MDYuODAxIDI1Mi4yIDQ4NS4yMDEgMjUzLjggNDg1LjIwMUMyNTMuOCA0ODUuMjAxIDI1MS44IDQ3My4yMDEgMjU3IDQ4OC4wMDFDMjU3IDQ4OC4wMDEgMjUzLjggNDc0LjAwMSAyNTkuNCA0NzQuODAxQzI2NSA0NzUuNjAxIDI2OS40IDQ4NS42MDEgMjc3LjggNDgzLjIwMUMyNzcuOCA0ODMuMjAxIDI4Ny40MDEgNDg4LjgwMSAyODkuNDAxIDQxOS42MDFMMTY1LjQgNDY2LjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTcwLjIgMzczLjYwMUMxNzAuMiAzNzMuNjAxIDE4NSAzNjcuNjAxIDIyNSAzNzMuNjAxQzIyNSAzNzMuNjAxIDIzMi4yIDM3NC4wMDEgMjM5IDM2NS4yMDFDMjQ1LjggMzU2LjQwMSAyNzIuNiAzNDkuMjAxIDI3OSAzNTEuMjAxTDI4OC42MDEgMzU3LjYwMUwyODkuNDAxIDM1OC44MDFDMjg5LjQwMSAzNTguODAxIDMwMS44MDEgMzY5LjIwMSAzMDIuMjAxIDM3Ni44MDFDMzAyLjYwMSAzODQuNDAxIDI4Ny44MDEgNDMyLjQwMSAyNzguMiA0NDguNDAxQzI2OC42IDQ2NC40MDEgMjU5IDQ3Ni44MDEgMjM5LjggNDc0LjQwMUMyMzkuOCA0NzQuNDAxIDIxOSA0NzAuNDAxIDE5My40IDQ3NC40MDFDMTkzLjQgNDc0LjQwMSAxNjQuMiA0NzIuODAxIDE2MS40IDQ2NC44MDFDMTU4LjYgNDU2LjgwMSAxNzIuNiA0NDEuNjAxIDE3Mi42IDQ0MS42MDFDMTcyLjYgNDQxLjYwMSAxNzcgNDMzLjIwMSAxNzUuOCA0MTguODAxQzE3NC42IDQwNC40MDEgMTc1IDM3Ni40MDEgMTcwLjIgMzczLjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlNTY2OGMiPgorICA8cGF0aCBkPSJNMTkyLjIgMzc1LjYwMUMyMDAuNiAzOTQuMDAxIDE3MSA0NTkuMjAxIDE3MSA0NTkuMjAxQzE2OSA0NjAuODAxIDE4My42NiA0NjYuODQ2IDE5My44IDQ2NC40MDFDMjA0Ljc0NiA0NjEuNzYzIDI0NSA0NjYuMDAxIDI0NSA0NjYuMDAxQzI2OC42IDQ1MC40MDEgMjgxLjQgNDA2LjAwMSAyODEuNCA0MDYuMDAxQzI4MS40IDQwNi4wMDEgMjkxLjgwMSAzODIuMDAxIDI3NC4yIDM3OC44MDFDMjU2LjYgMzc1LjYwMSAxOTIuMiAzNzUuNjAxIDE5Mi4yIDM3NS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjYjIzMjU5Ij4KKyAgPHBhdGggZD0iTTE5MC4xNjkgNDA2LjQ5N0MxOTMuNDk1IDM5My43MDcgMTk1LjA3OSAzODEuOTA2IDE5Mi4yIDM3NS42MDFDMTkyLjIgMzc1LjYwMSAyNTQuNiAzODIuMDAxIDI2NS44IDM2MS4yMDFDMjcwLjA0MSAzNTMuMzI2IDI4NC44MDEgMzg0LjAwMSAyODQuNCAzOTMuNjAxQzI4NC40IDM5My42MDEgMjIxLjQgNDA4LjAwMSAyMDYuNiAzOTYuODAxTDE5MC4xNjkgNDA2LjQ5N3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNhNTI2NGMiPgorICA8cGF0aCBkPSJNMTk0LjYgNDIyLjgwMUMxOTQuNiA0MjIuODAxIDE5Ni42IDQzMC4wMDEgMTk0LjIgNDM0LjAwMUMxOTQuMiA0MzQuMDAxIDE5Mi42IDQzNC44MDEgMTkxLjQgNDM1LjIwMUMxOTEuNCA0MzUuMjAxIDE5Mi42IDQzOC44MDEgMTk4LjYgNDQwLjQwMUMxOTguNiA0NDAuNDAxIDIwMC42IDQ0NC44MDEgMjAzIDQ0NS4yMDFDMjA1LjQgNDQ1LjYwMSAyMTAuMiA0NTEuMjAxIDIxNC4yIDQ1MC4wMDFDMjE4LjIgNDQ4LjgwMSAyMjkuNCA0NDQuODAxIDIyOS40IDQ0NC44MDFDMjI5LjQgNDQ0LjgwMSAyMzUgNDQxLjYwMSAyNDMuOCA0NDUuMjAxQzI0My44IDQ0NS4yMDEgMjQ2LjE3NSA0NDQuMzk5IDI0Ni42IDQ0MC40MDFDMjQ3LjEgNDM1LjcwMSAyNTAuMiA0MzIuMDAxIDI1Mi4yIDQzMC4wMDFDMjU0LjIgNDI4LjAwMSAyNjMuOCA0MTUuMjAxIDI2Mi42IDQxNC44MDFDMjYxLjQgNDE0LjQwMSAxOTQuNiA0MjIuODAxIDE5NC42IDQyMi44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmY3MjdmOyBzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTAuMiAzNzQuNDAxQzE5MC4yIDM3NC40MDEgMTg3LjQgMzk2LjgwMSAxOTAuNiA0MDUuMjAxQzE5My44IDQxMy42MDEgMTkzIDQxNS42MDEgMTkyLjIgNDE5LjYwMUMxOTEuNCA0MjMuNjAxIDE5NS44IDQzMy42MDEgMjAxLjQgNDM5LjYwMUwyMTMuNCA0NDEuMjAxQzIxMy40IDQ0MS4yMDEgMjI4LjYgNDM3LjYwMSAyMzcuOCA0NDAuNDAxQzIzNy44IDQ0MC40MDEgMjQ2Ljc5NCA0NDEuNzQ0IDI1MC4yIDQyNi44MDFDMjUwLjIgNDI2LjgwMSAyNTUgNDIwLjQwMSAyNjIuMiA0MTcuNjAxQzI2OS40IDQxNC44MDEgMjc2LjYgMzczLjIwMSAyNzIuNiAzNjUuMjAxQzI2OC42IDM1Ny4yMDEgMjU0LjIgMzUyLjgwMSAyMzguMiAzNjguNDAxQzIyMi4yIDM4NC4wMDEgMjIwLjIgMzY3LjIwMSAxOTAuMiAzNzQuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTkxLjggNDQ5LjIwMUMxOTEuOCA0NDkuMjAxIDE5MSA0NDcuMjAxIDE4Ni42IDQ0Ni44MDFDMTg2LjYgNDQ2LjgwMSAxNjQuMiA0NDMuMjAxIDE1NS44IDQzMC44MDFDMTU1LjggNDMwLjgwMSAxNDkgNDI1LjIwMSAxNTMuNCA0MzYuODAxQzE1My40IDQzNi44MDEgMTYzLjggNDU3LjIwMSAxNzAuNiA0NjAuMDAxQzE3MC42IDQ2MC4wMDEgMTg3IDQ2NC4wMDEgMTkxLjggNDQ5LjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzNmNGMiPgorICA8cGF0aCBkPSJNMjcxLjc0MiAzODUuMjI5QzI3Mi40MDEgMzc3LjMyMyAyNzQuMzU0IDM2OC43MDkgMjcyLjYgMzY1LjIwMUMyNjYuMTU0IDM1Mi4zMDcgMjQ5LjE4MSAzNTcuNjk1IDIzOC4yIDM2OC40MDFDMjIyLjIgMzg0LjAwMSAyMjAuMiAzNjcuMjAxIDE5MC4yIDM3NC40MDFDMTkwLjIgMzc0LjQwMSAxODguNDU1IDM4OC4zNjQgMTg5LjI5NSAzOTguMzc2QzE4OS4yOTUgMzk4LjM3NiAyMjYuNiAzODYuODAxIDIyNy40IDM5Mi40MDFDMjI3LjQgMzkyLjQwMSAyMjkgMzg5LjIwMSAyMzguMiAzODkuMjAxQzI0Ny40IDM4OS4yMDEgMjcwLjE0MiAzODguMDI5IDI3MS43NDIgMzg1LjIyOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojYTUxOTI2OyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yMjguNiAzNzUuMjAxQzIyOC42IDM3NS4yMDEgMjMzLjQgMzgwLjAwMSAyMjkuOCAzODkuNjAxQzIyOS44IDM4OS42MDEgMjE1LjQgNDA1LjYwMSAyMTcuNCA0MTkuNjAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xODAuNiA0NjAuMDAxQzE4MC42IDQ2MC4wMDEgMTc2LjIgNDQ3LjIwMSAxODUgNDU0LjAwMUMxODUgNDU0LjAwMSAxODkuOCA0NTYuMDAxIDE4OC42IDQ1Ny42MDFDMTg3LjQgNDU5LjIwMSAxODEuOCA0NjMuMjAxIDE4MC42IDQ2MC4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xODUuNjQgNDYxLjIwMUMxODUuNjQgNDYxLjIwMSAxODIuMTIgNDUwLjk2MSAxODkuMTYgNDU2LjQwMUMxODkuMTYgNDU2LjQwMSAxOTMuNTgxIDQ1OC44NDkgMTkyLjA0IDQ1OS4yODFDMTg3LjQ4IDQ2MC41NjEgMTkyLjA0IDQ2My4xMjEgMTg1LjY0IDQ2MS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xOTAuNDQgNDYxLjIwMUMxOTAuNDQgNDYxLjIwMSAxODYuOTIgNDUwLjk2MSAxOTMuOTYgNDU2LjQwMUMxOTMuOTYgNDU2LjQwMSAxOTguMzM1IDQ1OC43MTEgMTk2Ljg0IDQ1OS4yODFDMTkzLjQ4IDQ2MC41NjEgMTk2Ljg0IDQ2My4xMjEgMTkwLjQ0IDQ2MS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xOTcuMDQgNDYxLjQwMUMxOTcuMDQgNDYxLjQwMSAxOTMuNTIgNDUxLjE2MSAyMDAuNTYgNDU2LjYwMUMyMDAuNTYgNDU2LjYwMSAyMDQuOTQzIDQ1OC45MzMgMjAzLjQ0MSA0NTkuNDgxQzIwMC40OCA0NjAuNTYxIDIwMy40NDEgNDYzLjMyMSAxOTcuMDQgNDYxLjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTIwMy41MiA0NjEuMzIxQzIwMy41MiA0NjEuMzIxIDIwMCA0NTEuMDgxIDIwNy4wNDEgNDU2LjUyMUMyMDcuMDQxIDQ1Ni41MjEgMjEwLjg4MSA0NTguMTIxIDIwOS45MjEgNDU5LjQwMUMyMDguOTYxIDQ2MC42ODEgMjA5LjkyMSA0NjMuMjQxIDIwMy41MiA0NjEuMzIxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMjEwLjIgNDYyLjAwMUMyMTAuMiA0NjIuMDAxIDIwNS40IDQ0OS42MDEgMjE0LjYgNDU2LjAwMUMyMTQuNiA0NTYuMDAxIDIxOS40IDQ1OC4wMDEgMjE4LjIgNDU5LjYwMUMyMTcgNDYxLjIwMSAyMTguMiA0NjQuNDAxIDIxMC4yIDQ2Mi4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6I2E1MjY0Yzsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMTgxLjggNDQ0LjgwMUMxODEuOCA0NDQuODAxIDE5NSA0NDIuMDAxIDIwMSA0NDUuMjAxQzIwMSA0NDUuMjAxIDIwNyA0NDYuNDAxIDIwOC4yIDQ0Ni4wMDFDMjA5LjQgNDQ1LjYwMSAyMTIuNiA0NDUuMjAxIDIxMi42IDQ0NS4yMDEiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojYTUyNjRjOyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yMTUuOCA0NTMuNjAxQzIxNS44IDQ1My42MDEgMjI3LjggNDQwLjAwMSAyMzkuOCA0NDQuNDAxQzI0Ni44MTYgNDQ2Ljk3NCAyNDUuOCA0NDMuNjAxIDI0Ni42IDQ0MC44MDFDMjQ3LjQgNDM4LjAwMSAyNDcuNiA0MzMuODAxIDI1Mi42IDQzMC44MDEiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTIzMyA0MzcuNjAxQzIzMyA0MzcuNjAxIDIyOSA0MjYuODAxIDIyNi4yIDQzOS42MDFDMjIzLjQgNDUyLjQwMSAyMjAuMiA0NTYuMDAxIDIxOC42IDQ1OC44MDFDMjE4LjYgNDU4LjgwMSAyMTguNiA0NjQuMDAxIDIyNyA0NjMuNjAxQzIyNyA0NjMuNjAxIDIzNy44IDQ2My4yMDEgMjM4LjIgNDYwLjQwMUMyMzguNiA0NTcuNjAxIDIzNyA0NDYuMDAxIDIzMyA0MzcuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiNhNTI2NGM7IHN0cm9rZS13aWR0aDoyIj4KKyAgPHBhdGggZD0iTTI0NyA0NDQuODAxQzI0NyA0NDQuODAxIDI1MC42IDQ0Mi40MDEgMjUzIDQ0My42MDEiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojYTUyNjRjOyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yNTMuNSA0MjguNDAxQzI1My41IDQyOC40MDEgMjU2LjQgNDIzLjUwMSAyNjEuMiA0MjIuNzAxIi8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjYjJiMmIyIj4KKyAgPHBhdGggZD0iTTE3NC4yIDQ2NS4yMDFDMTc0LjIgNDY1LjIwMSAxOTIuMiA0NjguNDAxIDE5Ni42IDQ2Ni44MDFDMTk2LjYgNDY2LjgwMSAyMDUuNCA0NjYuODAxIDE5NyA0NjguODAxQzE5NyA0NjguODAxIDE4NC4yIDQ2OC44MDEgMTc2LjIgNDY3LjYwMUMxNzYuMiA0NjcuNjAxIDE2NC42IDQ2Mi4wMDEgMTc0LjIgNDY1LjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmY2M7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC41Ij4KKyAgPHBhdGggZD0iTTE4OC4yIDM3Mi4wMDFDMTg4LjIgMzcyLjAwMSAyMDUuOCAzNzIuMDAxIDIwNy44IDM3Mi44MDFDMjA3LjggMzcyLjgwMSAyMTUgNDAzLjYwMSAyMTEuNCA0MTEuMjAxQzIxMS40IDQxMS4yMDEgMjEwLjIgNDE0LjAwMSAyMDcuNCA0MDguNDAxQzIwNy40IDQwOC40MDEgMTg5IDM3NS42MDEgMTg1LjggMzczLjYwMUMxODIuNiAzNzEuNjAxIDE4NyAzNzIuMDAxIDE4OC4yIDM3Mi4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xMTEuMSAzNjkuMzAxQzExMS4xIDM2OS4zMDEgMTIwIDM3MS4wMDEgMTMyLjYgMzczLjYwMUMxMzIuNiAzNzMuNjAxIDEzNy40IDM5Ni4wMDEgMTQwLjYgNDAwLjgwMUMxNDMuOCA0MDUuNjAxIDE0MC4yIDQwNS42MDEgMTM2LjYgNDAyLjgwMUMxMzMgNDAwLjAwMSAxMTguMiAzODYuMDAxIDExNi4yIDM4MS42MDFDMTE0LjIgMzc3LjIwMSAxMTEuMSAzNjkuMzAxIDExMS4xIDM2OS4zMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xMzIuOTYxIDM3My44MThDMTMyLjk2MSAzNzMuODE4IDEzOC43NjEgMzc1LjM2NiAxMzkuNzcgMzc3LjU4MUMxNDAuNzc4IDM3OS43OTUgMTM4LjU2OCAzODMuMDkyIDEzOC41NjggMzgzLjA5MkMxMzguNTY4IDM4My4wOTIgMTM3LjU2OCAzODYuMzk3IDEzNi4zNjYgMzg0LjIzNUMxMzUuMTY0IDM4Mi4wNzIgMTMyLjI5MiAzNzQuNDEyIDEzMi45NjEgMzczLjgxOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTMzIDM3My42MDFDMTMzIDM3My42MDEgMTM2LjYgMzc4LjgwMSAxNDAuMiAzNzguODAxQzE0My44IDM3OC44MDEgMTQ0LjE4MiAzNzguMzg4IDE0NyAzNzkuMDAxQzE1MS42IDM4MC4wMDEgMTUxLjIgMzc4LjAwMSAxNTcuOCAzNzkuMjAxQzE2MC40NCAzNzkuNjgxIDE2MyAzNzguODAxIDE2NS44IDM4MC4wMDFDMTY4LjYgMzgxLjIwMSAxNzEuOCAzODAuNDAxIDE3MyAzNzguNDAxQzE3NC4yIDM3Ni40MDEgMTc5IDM3Mi4yMDEgMTc5IDM3Mi4yMDFDMTc5IDM3Mi4yMDEgMTY2LjIgMzc0LjAwMSAxNjMuNCAzNzQuODAxQzE2My40IDM3NC44MDEgMTQxIDM3Ni4wMDEgMTMzIDM3My42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xNzcuNiAzNzMuODAxQzE3Ny42IDM3My44MDEgMTcxLjE1IDM3Ny4zMDEgMTcwLjc1IDM3OS43MDFDMTcwLjM1IDM4Mi4xMDEgMTc2IDM4NS44MDEgMTc2IDM4NS44MDFDMTc2IDM4NS44MDEgMTc4Ljc1IDM5MC40MDEgMTc5LjM1IDM4OC4wMDFDMTc5Ljk1IDM4NS42MDEgMTc4LjQgMzc0LjIwMSAxNzcuNiAzNzMuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTQwLjExNSAzNzkuMjY1QzE0MC4xMTUgMzc5LjI2NSAxNDcuMTIyIDM5MC40NTMgMTQ3LjMzOSAzNzkuMjQyQzE0Ny4zMzkgMzc5LjI0MiAxNDcuODk2IDM3Ny45ODQgMTQ2LjEzNiAzNzcuOTYyQzE0MC4wNjEgMzc3Ljg4NiAxNDEuNTgyIDM3My43ODQgMTQwLjExNSAzNzkuMjY1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZjYzsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjUiPgorICA8cGF0aCBkPSJNMTQ3LjI5MyAzNzkuNTE0QzE0Ny4yOTMgMzc5LjUxNCAxNTUuMjE0IDM5MC43MDEgMTU0LjU3OCAzNzkuNDIxQzE1NC41NzggMzc5LjQyMSAxNTQuNTg1IDM3OS4wODkgMTUyLjgzMiAzNzguOTM2QzE0OC4wODUgMzc4LjUyMiAxNDguNDMgMzc0LjAwNCAxNDcuMjkzIDM3OS41MTR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xNTQuNTA2IDM3OS41MjJDMTU0LjUwNiAzNzkuNTIyIDE2Mi40NjYgMzkwLjE1IDE2MS43OTcgMzgwLjQ4NEMxNjEuNzk3IDM4MC40ODQgMTYxLjkxNiAzNzkuMjUxIDE2MC4yNjIgMzc4Ljk1QzE1Ni4zNyAzNzguMjQ0IDE1Ni4xNTkgMzc0Ljk5NSAxNTQuNTA2IDM3OS41MjJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmNjOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuNSI+CisgIDxwYXRoIGQ9Ik0xNjEuMzgyIDM3OS42MDJDMTYxLjM4MiAzNzkuNjAyIDE2OS4yODIgMzkxLjE2MyAxNjkuNjMgMzgxLjM4MkMxNjkuNjMgMzgxLjM4MiAxNzEuMjc0IDM4MC4wMDQgMTY5LjUyOCAzNzkuNzgyQzE2My43MSAzNzkuMDQyIDE2NC41MDggMzc0LjU4OCAxNjEuMzgyIDM3OS42MDJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZTVlNWIyIj4KKyAgPHBhdGggZD0iTTEyNS4yMDggMzgzLjEzMkwxMTcuNTUgMzgxLjYwMUMxMTQuOTUgMzc2LjYwMSAxMTIuODUgMzcwLjQ1MSAxMTIuODUgMzcwLjQ1MUMxMTIuODUgMzcwLjQ1MSAxMTkuMiAzNzEuNDUxIDEzMS43IDM3NC4yNTFDMTMxLjcgMzc0LjI1MSAxMzIuNTc2IDM3Ny41NjkgMTM0LjA0OCAzODMuMzY0TDEyNS4yMDggMzgzLjEzMnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlNWU1YjIiPgorICA8cGF0aCBkPSJNMTkwLjI3NiAzNzguNDdDMTg4LjYxIDM3NS45NjQgMTg3LjI5MyAzNzQuMjA2IDE4Ni42NDMgMzczLjhDMTgzLjYzIDM3MS45MTcgMTg3Ljc3MyAzNzIuMjk0IDE4OC45MDIgMzcyLjI5NEMxODguOTAyIDM3Mi4yOTQgMjA1LjQ3MyAzNzIuMjk0IDIwNy4zNTYgMzczLjA0N0MyMDcuMzU2IDM3My4wNDcgMjA3Ljg4IDM3NS4yODkgMjA4LjU2NCAzNzguNjhDMjA4LjU2NCAzNzguNjggMTk4LjQ3NiAzNzYuNjcgMTkwLjI3NiAzNzguNDd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTI0My44OCAyNDAuMzIxQzI3MS42MDEgMjQ0LjI4MSAyOTcuMTIxIDIwOC42NDEgMjk4Ljg4MSAxOTguOTZDMzAwLjY0MSAxODkuMjggMjkwLjUyMSAxNzcuNCAyOTAuNTIxIDE3Ny40QzI5MS44NDEgMTc0LjMyIDI4Ny4wMDEgMTYwLjI0IDI4MS43MjEgMTUxQzI3Ni40NDEgMTQxLjc2IDI2MC41NCAxNDIuNzM0IDI0MyAxNDEuNzZDMjI3LjE2IDE0MC44OCAyMDguNjggMTY0LjIgMjA3LjM2IDE2NS45NkMyMDYuMDQgMTY3LjcyIDIxMi4yIDIwNi4wMDEgMjEzLjUyIDIxMS43MjFDMjE0Ljg0IDIxNy40NDEgMjEyLjIgMjQzLjg0MSAyMTIuMiAyNDMuODQxQzI0Ni40NCAyMzQuNzQxIDIxNi4xNiAyMzYuMzYxIDI0My44OCAyNDAuMzIxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2VhOGU1MSI+CisgIDxwYXRoIGQ9Ik0yMDguMDg4IDE2Ni42MDhDMjA2Ljc5MiAxNjguMzM2IDIxMi44NCAyMDUuOTIxIDIxNC4xMzYgMjExLjUzN0MyMTUuNDMyIDIxNy4xNTMgMjEyLjg0IDI0My4wNzMgMjEyLjg0IDI0My4wNzNDMjQ1LjUxMiAyMzQuMTkzIDIxNi43MjggMjM1LjcyOSAyNDMuOTQ0IDIzOS42MTdDMjcxLjE2MSAyNDMuNTA1IDI5Ni4yMTcgMjA4LjUxMyAyOTcuOTQ1IDE5OS4wMDhDMjk5LjY3MyAxODkuNTA0IDI4OS43MzcgMTc3Ljg0IDI4OS43MzcgMTc3Ljg0QzI5MS4wMzMgMTc0LjgxNiAyODYuMjgxIDE2MC45OTIgMjgxLjA5NyAxNTEuOTJDMjc1LjkxMyAxNDIuODQ4IDI2MC4zMDIgMTQzLjgwNSAyNDMuMDggMTQyLjg0OEMyMjcuNTI4IDE0MS45ODQgMjA5LjM4NCAxNjQuODggMjA4LjA4OCAxNjYuNjA4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2VmYWE3YyI+CisgIDxwYXRoIGQ9Ik0yMDguODE2IDE2Ny4yNTZDMjA3LjU0NCAxNjguOTUyIDIxMy40OCAyMDUuODQxIDIxNC43NTIgMjExLjM1M0MyMTYuMDI0IDIxNi44NjUgMjEzLjQ4IDI0Mi4zMDUgMjEzLjQ4IDI0Mi4zMDVDMjQ0Ljg4NCAyMzMuMTQ1IDIxNy4yOTYgMjM1LjA5NyAyNDQuMDA4IDIzOC45MTNDMjcwLjcyMSAyNDIuNzI5IDI5NS4zMTMgMjA4LjM4NSAyOTcuMDA5IDE5OS4wNTZDMjk4LjcwNSAxODkuNzI4IDI4OC45NTMgMTc4LjI4IDI4OC45NTMgMTc4LjI4QzI5MC4yMjUgMTc1LjMxMiAyODUuNTYxIDE2MS43NDQgMjgwLjQ3MyAxNTIuODRDMjc1LjM4NSAxNDMuOTM2IDI2MC4wNjMgMTQ0Ljg3NSAyNDMuMTYgMTQzLjkzNkMyMjcuODk2IDE0My4wODggMjEwLjA4OCAxNjUuNTYgMjA4LjgxNiAxNjcuMjU2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2Y0YzZhOCI+CisgIDxwYXRoIGQ9Ik0yMDkuNTQ0IDE2Ny45MDRDMjA4LjI5NiAxNjkuNTY4IDIxNC4xMiAyMDUuNzYxIDIxNS4zNjggMjExLjE2OUMyMTYuNjE2IDIxNi41NzcgMjE0LjEyIDI0MS41MzcgMjE0LjEyIDI0MS41MzdDMjQzLjU1NiAyMzIuNDk3IDIxNy44NjQgMjM0LjQ2NSAyNDQuMDcyIDIzOC4yMDlDMjcwLjI4MSAyNDEuOTUzIDI5NC40MDkgMjA4LjI1NyAyOTYuMDczIDE5OS4xMDVDMjk3LjczNyAxODkuOTUyIDI4OC4xNjkgMTc4LjcyIDI4OC4xNjkgMTc4LjcyQzI4OS40MTcgMTc1LjgwOCAyODQuODQxIDE2Mi40OTYgMjc5Ljg0OSAxNTMuNzZDMjc0Ljg1NyAxNDUuMDI0IDI1OS44MjQgMTQ1Ljk0NSAyNDMuMjQgMTQ1LjAyNEMyMjguMjY0IDE0NC4xOTIgMjEwLjc5MiAxNjYuMjQgMjA5LjU0NCAxNjcuOTA0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2Y5ZTJkMyI+CisgIDxwYXRoIGQ9Ik0yMTAuMjcyIDE2OC41NTJDMjA5LjA0OCAxNzAuMTg0IDIxNC43NiAyMDUuNjgxIDIxNS45ODQgMjEwLjk4NUMyMTcuMjA4IDIxNi4yODkgMjE0Ljc2IDI0MC43NjkgMjE0Ljc2IDI0MC43NjlDMjQyLjYyOCAyMzEuODQ5IDIxOC40MzIgMjMzLjgzMyAyNDQuMTM2IDIzNy41MDVDMjY5Ljg0MSAyNDEuMTc3IDI5My41MDUgMjA4LjEyOSAyOTUuMTM3IDE5OS4xNTJDMjk2Ljc2OSAxOTAuMTc2IDI4Ny4zODUgMTc5LjE2IDI4Ny4zODUgMTc5LjE2QzI4OC42MDkgMTc2LjMwNCAyODQuMTIxIDE2My4yNDggMjc5LjIyNSAxNTQuNjhDMjc0LjMyOSAxNDYuMTEyIDI1OS41ODUgMTQ3LjAxNSAyNDMuMzIgMTQ2LjExMkMyMjguNjMyIDE0NS4yOTYgMjExLjQ5NiAxNjYuOTIgMjEwLjI3MiAxNjguNTUyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZiI+CisgIDxwYXRoIGQ9Ik0yNDQuMiAyMzYuOEMyNjkuNCAyNDAuNCAyOTIuNjAxIDIwOCAyOTQuMjAxIDE5OS4yQzI5NS44MDEgMTkwLjQgMjg2LjYwMSAxNzkuNiAyODYuNjAxIDE3OS42QzI4Ny44MDEgMTc2LjggMjgzLjQgMTY0IDI3OC42IDE1NS42QzI3My44IDE0Ny4yIDI1OS4zNDYgMTQ4LjA4NiAyNDMuNCAxNDcuMkMyMjkgMTQ2LjQgMjEyLjIgMTY3LjYgMjExIDE2OS4yQzIwOS44IDE3MC44IDIxNS40IDIwNS42IDIxNi42IDIxMC44QzIxNy44IDIxNiAyMTUuNCAyNDAgMjE1LjQgMjQwQzI0MC45IDIzMS40IDIxOSAyMzMuMiAyNDQuMiAyMzYuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjkwLjYwMSAyMDIuOEMyOTAuNjAxIDIwMi44IDI2Mi44IDIxMC40IDI1MS4yIDIwOC44QzI1MS4yIDIwOC44IDIzNS40IDIwMi4yIDIyNi42IDIyNEMyMjYuNiAyMjQgMjIzIDIzMS4yIDIyMSAyMzMuMkMyMTkgMjM1LjIgMjkwLjYwMSAyMDIuOCAyOTAuNjAxIDIwMi44eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yOTQuNDAxIDIwMC42QzI5NC40MDEgMjAwLjYgMjY1LjQgMjEyLjggMjU1LjQgMjEyLjRDMjU1LjQgMjEyLjQgMjM5IDIwNy44IDIzMC42IDIyMi40QzIzMC42IDIyMi40IDIyMi4yIDIzMS42IDIxOSAyMzMuMkMyMTkgMjMzLjIgMjE4LjYgMjM0LjggMjI1IDIzMC44TDIzNS40IDIzNkMyMzUuNCAyMzYgMjUwLjIgMjQ1LjYgMjU5LjggMjI5LjZDMjU5LjggMjI5LjYgMjYzLjggMjE4LjQgMjYzLjggMjE2LjRDMjYzLjggMjE0LjQgMjg1IDIwOC44IDI4Ni42MDEgMjA4LjRDMjg4LjIwMSAyMDggMjk0LjgwMSAyMDMuOCAyOTQuNDAxIDIwMC42eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5Y2MzMiI+CisgIDxwYXRoIGQ9Ik0yNDcgMjM2LjUxNEMyNDAuMTI4IDIzNi41MTQgMjMxLjc1NSAyMzIuNjQ5IDIzMS43NTUgMjI2LjRDMjMxLjc1NSAyMjAuMTUyIDI0MC4xMjggMjEzLjg4NyAyNDcgMjEzLjg4N0MyNTMuODc0IDIxMy44ODcgMjU5LjQ0NiAyMTguOTUyIDI1OS40NDYgMjI1LjJDMjU5LjQ0NiAyMzEuNDQ5IDI1My44NzQgMjM2LjUxNCAyNDcgMjM2LjUxNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM2NTk5MDAiPgorICA8cGF0aCBkPSJNMjQzLjM3NyAyMTkuODNDMjM4LjUzMSAyMjAuNTUyIDIzMy40NDIgMjIyLjA1NSAyMzMuNTE0IDIyMS44MzlDMjM1LjA1NCAyMTcuMjIgMjQxLjQxNSAyMTMuODg3IDI0NyAyMTMuODg3QzI1MS4yOTYgMjEzLjg4NyAyNTUuMDg0IDIxNS44NjUgMjU3LjMyIDIxOC44NzVDMjU3LjMyIDIxOC44NzUgMjUyLjAwNCAyMTguNTQ1IDI0My4zNzcgMjE5LjgzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZiI+CisgIDxwYXRoIGQ9Ik0yNTUuNCAyMTkuNkMyNTUuNCAyMTkuNiAyNTEgMjE2LjQgMjUxIDIxOC42QzI1MSAyMTguNiAyNTQuNiAyMjMgMjU1LjQgMjE5LjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTI0NS40IDIyNy43MjZDMjQyLjkwMSAyMjcuNzI2IDI0MC44NzUgMjI1LjcgMjQwLjg3NSAyMjMuMkMyNDAuODc1IDIyMC43MDEgMjQyLjkwMSAyMTguNjc1IDI0NS40IDIxOC42NzVDMjQ3LjkgMjE4LjY3NSAyNDkuOTI2IDIyMC43MDEgMjQ5LjkyNiAyMjMuMkMyNDkuOTI2IDIyNS43IDI0Ny45IDIyNy43MjYgMjQ1LjQgMjI3LjcyNnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNMTQxLjQgMjE0LjRDMTQxLjQgMjE0LjQgMTM4LjIgMTkzLjIgMTQwLjYgMTg4LjhDMTQwLjYgMTg4LjggMTUxLjQgMTc4LjggMTUxIDE3NS4yQzE1MSAxNzUuMiAxNTAuNiAxNTcuMiAxNDkuNCAxNTYuNEMxNDguMiAxNTUuNiAxNDAuNiAxNDkuNiAxMzQuNiAxNTZDMTM0LjYgMTU2IDEyNC4yIDE3NCAxMjUgMTgwLjRMMTI1IDE4Mi40QzEyNSAxODIuNCAxMTcuNCAxODIgMTE1LjggMTg0QzExNS44IDE4NCAxMTQuNiAxODkuMiAxMTMuNCAxODkuNkMxMTMuNCAxODkuNiAxMTAuNiAxOTIgMTEyLjYgMTk0LjhDMTEyLjYgMTk0LjggMTEwLjYgMTk3LjIgMTExIDIwMS4yTDExOC42IDIwNS4yQzExOC42IDIwNS4yIDEyMC42IDIxOS42IDEzMS40IDIyNC44QzEzNi4yMzYgMjI3LjEyOSAxMzkuNCAyMjAuNCAxNDEuNCAyMTQuNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMTQwLjQgMjEyLjU2QzE0MC40IDIxMi41NiAxMzcuNTIgMTkzLjQ4IDEzOS42OCAxODkuNTJDMTM5LjY4IDE4OS41MiAxNDkuNCAxODAuNTIgMTQ5LjA0IDE3Ny4yOEMxNDkuMDQgMTc3LjI4IDE0OC42OCAxNjEuMDggMTQ3LjYgMTYwLjM2QzE0Ni41MiAxNTkuNjQgMTM5LjY4IDE1NC4yNCAxMzQuMjggMTYwQzEzNC4yOCAxNjAgMTI0LjkyIDE3Ni4yIDEyNS42NCAxODEuOTZMMTI1LjY0IDE4My43NkMxMjUuNjQgMTgzLjc2IDExOC44IDE4My40IDExNy4zNiAxODUuMkMxMTcuMzYgMTg1LjIgMTE2LjI4IDE4OS44OCAxMTUuMiAxOTAuMjRDMTE1LjIgMTkwLjI0IDExMi42OCAxOTIuNCAxMTQuNDggMTk0LjkyQzExNC40OCAxOTQuOTIgMTEyLjY4IDE5Ny4wOCAxMTMuMDQgMjAwLjY4TDExOS44OCAyMDQuMjhDMTE5Ljg4IDIwNC4yOCAxMjEuNjggMjE3LjI0IDEzMS40IDIyMS45MkMxMzUuNzUyIDIyNC4wMTUgMTM4LjYgMjE3Ljk2IDE0MC40IDIxMi41NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlYjk1NWMiPgorICA8cGF0aCBkPSJNMTQ4Ljk1IDE1Ny4zOUMxNDcuODYgMTU2LjUzIDE0MC4zNyAxNTAuNzYgMTM0LjUyIDE1N0MxMzQuNTIgMTU3IDEyNC4zOCAxNzQuNTUgMTI1LjE2IDE4MC43OUwxMjUuMTYgMTgyLjc0QzEyNS4xNiAxODIuNzQgMTE3Ljc1IDE4Mi4zNSAxMTYuMTkgMTg0LjNDMTE2LjE5IDE4NC4zIDExNS4wMiAxODkuMzcgMTEzLjg1IDE4OS43NkMxMTMuODUgMTg5Ljc2IDExMS4xMiAxOTIuMSAxMTMuMDcgMTk0LjgzQzExMy4wNyAxOTQuODMgMTExLjEyIDE5Ny4xNyAxMTEuNTEgMjAxLjA3TDExOC45MiAyMDQuOTdDMTE4LjkyIDIwNC45NyAxMjAuODcgMjE5LjAxIDEzMS40IDIyNC4wOEMxMzYuMTE0IDIyNi4zNSAxMzkuMiAyMTkuNzkgMTQxLjE1IDIxMy45NEMxNDEuMTUgMjEzLjk0IDEzOC4wMyAxOTMuMjcgMTQwLjM3IDE4OC45OEMxNDAuMzcgMTg4Ljk4IDE1MC45IDE3OS4yMyAxNTAuNTEgMTc1LjcyQzE1MC41MSAxNzUuNzIgMTUwLjEyIDE1OC4xNyAxNDguOTUgMTU3LjM5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2YyYjg5MiI+CisgIDxwYXRoIGQ9Ik0xNDguNSAxNTguMzhDMTQ3LjUyIDE1Ny40NiAxNDAuMTQgMTUxLjkyIDEzNC40NCAxNThDMTM0LjQ0IDE1OCAxMjQuNTYgMTc1LjEgMTI1LjMyIDE4MS4xOEwxMjUuMzIgMTgzLjA4QzEyNS4zMiAxODMuMDggMTE4LjEgMTgyLjcgMTE2LjU4IDE4NC42QzExNi41OCAxODQuNiAxMTUuNDQgMTg5LjU0IDExNC4zIDE4OS45MkMxMTQuMyAxODkuOTIgMTExLjY0IDE5Mi4yIDExMy41NCAxOTQuODZDMTEzLjU0IDE5NC44NiAxMTEuNjQgMTk3LjE0IDExMi4wMiAyMDAuOTRMMTE5LjI0IDIwNC43NEMxMTkuMjQgMjA0Ljc0IDEyMS4xNCAyMTguNDIgMTMxLjQgMjIzLjM2QzEzNS45OTQgMjI1LjU3MiAxMzkgMjE5LjE4IDE0MC45IDIxMy40OEMxNDAuOSAyMTMuNDggMTM3Ljg2IDE5My4zNCAxNDAuMTQgMTg5LjE2QzE0MC4xNCAxODkuMTYgMTUwLjQgMTc5LjY2IDE1MC4wMiAxNzYuMjRDMTUwLjAyIDE3Ni4yNCAxNDkuNjQgMTU5LjE0IDE0OC41IDE1OC4zOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmOGRjYzgiPgorICA8cGF0aCBkPSJNMTQ4LjA1IDE1OS4zN0MxNDcuMTggMTU4LjM5IDEzOS45MSAxNTMuMDggMTM0LjM2IDE1OUMxMzQuMzYgMTU5IDEyNC43NCAxNzUuNjUgMTI1LjQ4IDE4MS41N0wxMjUuNDggMTgzLjQyQzEyNS40OCAxODMuNDIgMTE4LjQ1IDE4My4wNSAxMTYuOTcgMTg0LjlDMTE2Ljk3IDE4NC45IDExNS44NiAxODkuNzEgMTE0Ljc1IDE5MC4wOEMxMTQuNzUgMTkwLjA4IDExMi4xNiAxOTIuMyAxMTQuMDEgMTk0Ljg5QzExNC4wMSAxOTQuODkgMTEyLjE2IDE5Ny4xMSAxMTIuNTMgMjAwLjgxTDExOS41NiAyMDQuNTFDMTE5LjU2IDIwNC41MSAxMjEuNDEgMjE3LjgzIDEzMS40IDIyMi42NEMxMzUuODczIDIyNC43OTQgMTM4LjggMjE4LjU3IDE0MC42NSAyMTMuMDJDMTQwLjY1IDIxMy4wMiAxMzcuNjkgMTkzLjQxIDEzOS45MSAxODkuMzRDMTM5LjkxIDE4OS4zNCAxNDkuOSAxODAuMDkgMTQ5LjUzIDE3Ni43NkMxNDkuNTMgMTc2Ljc2IDE0OS4xNiAxNjAuMTEgMTQ4LjA1IDE1OS4zN3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMTQwLjQgMjEyLjQ2QzE0MC40IDIxMi40NiAxMzcuNTIgMTkzLjQ4IDEzOS42OCAxODkuNTJDMTM5LjY4IDE4OS41MiAxNDkuNCAxODAuNTIgMTQ5LjA0IDE3Ny4yOEMxNDkuMDQgMTc3LjI4IDE0OC42OCAxNjEuMDggMTQ3LjYgMTYwLjM2QzE0Ni44NCAxNTkuMzIgMTM5LjY4IDE1NC4yNCAxMzQuMjggMTYwQzEzNC4yOCAxNjAgMTI0LjkyIDE3Ni4yIDEyNS42NCAxODEuOTZMMTI1LjY0IDE4My43NkMxMjUuNjQgMTgzLjc2IDExOC44IDE4My40IDExNy4zNiAxODUuMkMxMTcuMzYgMTg1LjIgMTE2LjI4IDE4OS44OCAxMTUuMiAxOTAuMjRDMTE1LjIgMTkwLjI0IDExMi42OCAxOTIuNCAxMTQuNDggMTk0LjkyQzExNC40OCAxOTQuOTIgMTEyLjY4IDE5Ny4wOCAxMTMuMDQgMjAwLjY4TDExOS44OCAyMDQuMjhDMTE5Ljg4IDIwNC4yOCAxMjEuNjggMjE3LjI0IDEzMS40IDIyMS45MkMxMzUuNzUyIDIyNC4wMTUgMTM4LjYgMjE3Ljg2IDE0MC40IDIxMi40NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTM3LjMgMjA2LjJDMTM3LjMgMjA2LjIgMTE1LjcgMTk2IDExNC44IDE5NS4yQzExNC44IDE5NS4yIDEyMy45IDIwMy40IDEyNC43IDIwMy40QzEyNS41IDIwMy40IDEzNy4zIDIwNi4yIDEzNy4zIDIwNi4yeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMjAuMiAyMDBDMTIwLjIgMjAwIDEzOC42IDIwMy42IDEzOC42IDIwOEMxMzguNiAyMTAuOTEyIDEzOC4zNTcgMjI0LjMzMSAxMzMgMjIyLjhDMTI0LjYgMjIwLjQgMTI4LjIgMjA2IDEyMC4yIDIwMHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OWNjMzIiPgorICA8cGF0aCBkPSJNMTI4LjYgMjAzLjhDMTI4LjYgMjAzLjggMTM3LjU3OCAyMDUuMjc0IDEzOC42IDIwOEMxMzkuMiAyMDkuNiAxMzkuODYzIDIxNy45MDggMTM0LjQgMjE5QzEyOS44NDggMjE5LjkxMSAxMjcuNjE4IDIwOS42OSAxMjguNiAyMDMuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjE0LjU5NSAyNDYuMzQ5QzIxNC4wOTggMjQ0LjYwNyAyMTUuNDA5IDI0NC43MzggMjE3LjIgMjQ0LjJDMjE5LjIgMjQzLjYgMjMxLjQgMjM5LjggMjMyLjIgMjM3LjJDMjMzIDIzNC42IDI0Ni4yIDIzOSAyNDYuMiAyMzlDMjQ4IDIzOS44IDI1Mi40IDI0Mi40IDI1Mi40IDI0Mi40QzI1Ny4yIDI0My42IDI2My44IDI0NCAyNjMuOCAyNDRDMjY2LjIgMjQ1IDI2OS42IDI0Ny44IDI2OS42IDI0Ny44QzI4NC4yIDI1OCAyOTYuNjAxIDI1MC44IDI5Ni42MDEgMjUwLjhDMzE2LjYwMSAyNDQuMiAzMTAuNjAxIDIyNyAzMTAuNjAxIDIyN0MzMDcuNjAxIDIxOCAzMTAuODAxIDIxNC42IDMxMC44MDEgMjE0LjZDMzExLjAwMSAyMTAuOCAzMTguMjAxIDIxNy4yIDMxOC4yMDEgMjE3LjJDMzIwLjgwMSAyMjEuNCAzMjEuNjAxIDIyNi40IDMyMS42MDEgMjI2LjRDMzI5LjYwMSAyMzcuNiAzMjYuMjAxIDIxOS44IDMyNi4yMDEgMjE5LjhDMzI2LjQwMSAyMTguOCAzMjMuNjAxIDIxNS4yIDMyMy42MDEgMjE0QzMyMy42MDEgMjEyLjggMzIxLjgwMSAyMDkuNCAzMjEuODAxIDIwOS40QzMxOC44MDEgMjA2IDMyMS4yMDEgMTk5IDMyMS4yMDEgMTk5QzMyMy4wMDEgMTg1LjIgMzIwLjgwMSAxODcgMzIwLjgwMSAxODdDMzE5LjYwMSAxODUuMiAzMTAuNDAxIDE5NS4yIDMxMC40MDEgMTk1LjJDMzA4LjIwMSAxOTguNiAzMDIuMjAxIDIwMC4yIDMwMi4yMDEgMjAwLjJDMjk5LjQwMSAyMDIgMjk2LjAwMSAyMDAuNiAyOTYuMDAxIDIwMC42QzI5My40MDEgMjAwLjIgMjg3LjgwMSAyMDcuMiAyODcuODAxIDIwNy4yQzI5MC42MDEgMjA3IDI5My4wMDEgMjExLjQgMjk1LjQwMSAyMTEuNkMyOTcuODAxIDIxMS44IDI5OS42MDEgMjA5LjIgMzAxLjIwMSAyMDguNkMzMDIuODAxIDIwOCAzMDUuNjAxIDIxMy44IDMwNS42MDEgMjEzLjhDMzA2LjAwMSAyMTYuNCAzMDAuNDAxIDIyMS4yIDMwMC40MDEgMjIxLjJDMzAwLjAwMSAyMjUuOCAyOTguNDAxIDIyNC4yIDI5OC40MDEgMjI0LjJDMjk1LjQwMSAyMjMuNiAyOTQuMjAxIDIyNy40IDI5My4yMDEgMjMyQzI5Mi4yMDEgMjM2LjYgMjg4LjAwMSAyMzcgMjg4LjAwMSAyMzdDMjg2LjQwMSAyNDQuNCAyODUuMiAyNDEuNCAyODUuMiAyNDEuNEMyODUgMjM1LjggMjc5IDI0MS42IDI3OSAyNDEuNkMyNzcuOCAyNDMuNiAyNzMuMiAyNDEuNCAyNzMuMiAyNDEuNEMyNjYuNCAyMzkuNCAyNjguOCAyMzcuNCAyNjguOCAyMzcuNEMyNzAuNiAyMzUuMiAyODEuOCAyMzcuNCAyODEuOCAyMzcuNEMyODQgMjM1LjggMjc2IDIzMS44IDI3NiAyMzEuOEMyNzUuNCAyMzAgMjc2LjQgMjI1LjYgMjc2LjQgMjI1LjZDMjc3LjYgMjIyLjQgMjg0LjQgMjE2LjggMjg0LjQgMjE2LjhDMjkzLjgwMSAyMTUuNiAyOTEuMDAxIDIxNCAyOTEuMDAxIDIxNEMyODQuODAxIDIwOC44IDI3OSAyMTYuNCAyNzkgMjE2LjRDMjc2LjggMjIyLjYgMjU5LjQgMjM3LjYgMjU5LjQgMjM3LjZDMjU0LjYgMjQxIDI1Ny4yIDIzNC4yIDI1My4yIDIzNy42QzI0OS4yIDI0MSAyMjguNiAyMzIgMjI4LjYgMjMyQzIxNy4wMzggMjMwLjgwNyAyMTQuMzA2IDI0Ni41NDkgMjEwLjc3NyAyNDMuNDI5QzIxMC43NzcgMjQzLjQyOSAyMTYuMTk1IDI1MS45NDkgMjE0LjU5NSAyNDYuMzQ5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik00MDkuNDAxIDgwQzQwOS40MDEgODAgMzgzLjgwMSA4OCAzODEuMDAxIDEwNi44QzM4MS4wMDEgMTA2LjggMzc4LjYwMSAxMjkuNiAzOTkuMDAxIDE0Ny4yQzM5OS4wMDEgMTQ3LjIgMzk5LjQwMSAxNTMuNiA0MDEuNDAxIDE1Ni44QzQwMS40MDEgMTU2LjggMzk5LjgwMSAxNjEuNiA0MTguNjAxIDE1NEw0NDUuODAxIDE0NS42QzQ0NS44MDEgMTQ1LjYgNDUyLjIwMSAxNDMuMiA0NTcuNDAxIDEzNC40QzQ2Mi42MDEgMTI1LjYgNDc3LjgwMSAxMDYuOCA0NzQuMjAxIDgxLjZDNDc0LjIwMSA4MS42IDQ3NS40MDEgNzAuNCA0NjkuNDAxIDcwQzQ2OS40MDEgNzAgNDYxLjAwMSA2OC40IDQ1My44MDEgNzZDNDUzLjgwMSA3NiA0NDcuMDAxIDc5LjIgNDQ0LjYwMSA3OC44TDQwOS40MDEgODB6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTQ2NC4wMjIgNzkuMDFDNDY0LjAyMiA3OS4wMSA0NjYuMTIyIDcwLjA4IDQ2MS4yODIgNzQuOTJDNDYxLjI4MiA3NC45MiA0NTQuMjQyIDgwLjY0IDQ0Ni43NjEgODAuNjRDNDQ2Ljc2MSA4MC42NCA0MzIuMjQxIDgyLjg0IDQyNy44NDEgOTYuMDRDNDI3Ljg0MSA5Ni4wNCA0MjMuODgxIDEyMi44OCA0MzEuODAxIDEyOC42QzQzMS44MDEgMTI4LjYgNDM2LjY0MSAxMzYuMDggNDQzLjY4MSAxMjkuNDhDNDUwLjcyMiAxMjIuODggNDY2LjIyMiA5Mi42NSA0NjQuMDIyIDc5LjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzMyMzIzMiI+CisgIDxwYXRoIGQ9Ik00NjMuNjQ4IDc5LjM2OEM0NjMuNjQ4IDc5LjM2OCA0NjUuNzM4IDcwLjYyNCA0NjAuOTg2IDc1LjM3NkM0NjAuOTg2IDc1LjM3NiA0NTQuMDc0IDgwLjk5MiA0NDYuNzI5IDgwLjk5MkM0NDYuNzI5IDgwLjk5MiA0MzIuNDczIDgzLjE1MiA0MjguMTUzIDk2LjExMkM0MjguMTUzIDk2LjExMiA0MjQuMjY1IDEyMi40NjQgNDMyLjA0MSAxMjguMDhDNDMyLjA0MSAxMjguMDggNDM2Ljc5MyAxMzUuNDI0IDQ0My43MDUgMTI4Ljk0NEM0NTAuNjE4IDEyMi40NjQgNDY1LjgwOCA5Mi43NiA0NjMuNjQ4IDc5LjM2OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM2NjY2NjYiPgorICA8cGF0aCBkPSJNNDYzLjI3NCA3OS43MjZDNDYzLjI3NCA3OS43MjYgNDY1LjM1NCA3MS4xNjggNDYwLjY5IDc1LjgzMkM0NjAuNjkgNzUuODMyIDQ1My45MDYgODEuMzQ0IDQ0Ni42OTcgODEuMzQ0QzQ0Ni42OTcgODEuMzQ0IDQzMi43MDUgODMuNDY0IDQyOC40NjUgOTYuMTg0QzQyOC40NjUgOTYuMTg0IDQyNC42NDkgMTIyLjA0OCA0MzIuMjgxIDEyNy41NkM0MzIuMjgxIDEyNy41NiA0MzYuOTQ1IDEzNC43NjggNDQzLjcyOSAxMjguNDA4QzQ1MC41MTQgMTIyLjA0OCA0NjUuMzk0IDkyLjg3IDQ2My4yNzQgNzkuNzI2eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5OTk5OSI+CisgIDxwYXRoIGQ9Ik00NjIuOSA4MC4wODRDNDYyLjkgODAuMDg0IDQ2NC45NyA3MS43MTIgNDYwLjM5NCA3Ni4yODhDNDYwLjM5NCA3Ni4yODggNDUzLjczOCA4MS42OTYgNDQ2LjY2NSA4MS42OTZDNDQ2LjY2NSA4MS42OTYgNDMyLjkzNyA4My43NzYgNDI4Ljc3NyA5Ni4yNTZDNDI4Ljc3NyA5Ni4yNTYgNDI1LjAzMyAxMjEuNjMyIDQzMi41MjEgMTI3LjA0QzQzMi41MjEgMTI3LjA0IDQzNy4wOTcgMTM0LjExMiA0NDMuNzUzIDEyNy44NzJDNDUwLjQxIDEyMS42MzIgNDY0Ljk4IDkyLjk4IDQ2Mi45IDgwLjA4NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNDYyLjUyNiA4MC40NDJDNDYyLjUyNiA4MC40NDIgNDY0LjU4NiA3Mi4yNTYgNDYwLjA5OCA3Ni43NDRDNDYwLjA5OCA3Ni43NDQgNDUzLjU2OSA4Mi4wNDggNDQ2LjYzMyA4Mi4wNDhDNDQ2LjYzMyA4Mi4wNDggNDMzLjE2OSA4NC4wODggNDI5LjA4OSA5Ni4zMjhDNDI5LjA4OSA5Ni4zMjggNDI1LjQxNyAxMjEuMjE2IDQzMi43NjEgMTI2LjUyQzQzMi43NjEgMTI2LjUyIDQzNy4yNDkgMTMzLjQ1NiA0NDMuNzc3IDEyNy4zMzZDNDUwLjMwNSAxMjEuMjE2IDQ2NC41NjYgOTMuMDkgNDYyLjUyNiA4MC40NDJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmIj4KKyAgPHBhdGggZD0iTTQ2Mi4xNTEgODAuOEM0NjIuMTUxIDgwLjggNDY0LjIwMSA3Mi44IDQ1OS44MDEgNzcuMkM0NTkuODAxIDc3LjIgNDUzLjQwMSA4Mi40IDQ0Ni42MDEgODIuNEM0NDYuNjAxIDgyLjQgNDMzLjQwMSA4NC40IDQyOS40MDEgOTYuNEM0MjkuNDAxIDk2LjQgNDI1LjgwMSAxMjAuOCA0MzMuMDAxIDEyNkM0MzMuMDAxIDEyNiA0MzcuNDAxIDEzMi44IDQ0My44MDEgMTI2LjhDNDUwLjIwMSAxMjAuOCA0NjQuMTUxIDkzLjIgNDYyLjE1MSA4MC44eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5MjYwMCI+CisgIDxwYXRoIGQ9Ik0yNTAuNiAyODRDMjUwLjYgMjg0IDIzMC4yIDI2NC44IDIyMi4yIDI2NEMyMjIuMiAyNjQgMTg3LjggMjYwIDE3MyAyNzhDMTczIDI3OCAxOTAuNiAyNTcuNiAyMTguMiAyNjMuMkMyMTguMiAyNjMuMiAxOTYuNiAyNTguOCAxODQuMiAyNjJDMTg0LjIgMjYyIDE2Ny40IDI2MiAxNTcuOCAyNzZMMTU1IDI4MC44QzE1NSAyODAuOCAxNTkgMjY2IDE3Ny40IDI2MEMxNzcuNCAyNjAgMjAwLjIgMjU1LjIgMjExIDI2MEMyMTEgMjYwIDE4OS40IDI1My4yIDE3OS40IDI1NS4yQzE3OS40IDI1NS4yIDE0OSAyNTIuOCAxMzYuMiAyNzkuMkMxMzYuMiAyNzkuMiAxNDAuMiAyNjQuOCAxNTUgMjU3LjZDMTU1IDI1Ny42IDE2OC42IDI0OC44IDE4OSAyNTEuNkMxODkgMjUxLjYgMjAzLjQgMjU0LjggMjA4LjYgMjU3LjJDMjEzLjggMjU5LjYgMjEyLjYgMjU2LjggMjA0LjIgMjUyQzIwNC4yIDI1MiAxOTguNiAyNDIgMTg0LjYgMjQyLjRDMTg0LjYgMjQyLjQgMTQxLjggMjQ2IDEzMS40IDI1OEMxMzEuNCAyNTggMTQ1IDI0Ni44IDE1NS40IDI0NEMxNTUuNCAyNDQgMTc3LjggMjM2IDE4Ni4yIDIzNi44QzE4Ni4yIDIzNi44IDIxMSAyMzcuOCAyMTguNiAyMzMuOEMyMTguNiAyMzMuOCAyMDcuNCAyMzguOCAyMTAuNiAyNDJDMjEzLjggMjQ1LjIgMjIwLjYgMjUyLjggMjIwLjYgMjU0QzIyMC42IDI1NS4yIDI0NC44IDI3Ny4zIDI0OC40IDI4MS43TDI1MC42IDI4NHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMzg5IDQ3OEMzODkgNDc4IDM3My41IDQ0MS41IDM2MSA0MzJDMzYxIDQzMiAzODcgNDQ4IDM5MC41IDQ2NkMzOTAuNSA0NjYgMzkwLjUgNDc2IDM4OSA0Nzh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQzNiA0ODUuNUM0MzYgNDg1LjUgNDA5LjUgNDMwLjUgMzkxIDQwNi41QzM5MSA0MDYuNSA0MzQuNSA0NDQgNDM5LjUgNDcwLjVMNDQwIDQ3Nkw0MzcgNDczLjVDNDM3IDQ3My41IDQzNi41IDQ4Mi41IDQzNiA0ODUuNXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNDkyLjUgNDM3QzQ5Mi41IDQzNyA0MzAgMzc3LjUgNDI4LjUgMzc1QzQyOC41IDM3NSA0ODkgNDQxIDQ5MiA0NDguNUM0OTIgNDQ4LjUgNDkwIDQzOS41IDQ5Mi41IDQzN3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMzA0IDQ4MC41QzMwNCA0ODAuNSAzMjMuNSA0MjguNSAzNDIuNSA0NTFDMzQyLjUgNDUxIDM1Ny41IDQ2MSAzNTcgNDY0QzM1NyA0NjQgMzUzIDQ1Ny41IDMzNSA0NThDMzM1IDQ1OCAzMTYgNDU1IDMwNCA0ODAuNXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNDk0LjUgMzUzQzQ5NC41IDM1MyA0NDkuNSAzMjQuNSA0NDIgMzIzQzQzMC4xOTMgMzIwLjYzOSA0OTEuNSAzNTIgNDk2LjUgMzYyLjVDNDk2LjUgMzYyLjUgNDk4LjUgMzYwIDQ5NC41IDM1M3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMzQzLjgwMSA0NTkuNjAxQzM0My44MDEgNDU5LjYwMSAzNjQuMjAxIDQ1Ny42MDEgMzcxLjAwMSA0NTAuODAxTDM3NS40MDEgNDU0LjQwMUwzOTMuMDAxIDQxNi4wMDFMMzk2LjYwMSA0MjEuMjAxQzM5Ni42MDEgNDIxLjIwMSA0MTEuMDAxIDQwNi40MDEgNDEwLjIwMSAzOTguNDAxQzQwOS40MDEgMzkwLjQwMSA0MjMuMDAxIDQwNC40MDEgNDIzLjAwMSA0MDQuNDAxQzQyMy4wMDEgNDA0LjQwMSA0MjIuMjAxIDM5Mi44MDEgNDI5LjQwMSAzOTkuNjAxQzQyOS40MDEgMzk5LjYwMSA0MjcuMDAxIDM4NC4wMDEgNDM1LjQwMSAzOTIuMDAxQzQzNS40MDEgMzkyLjAwMSA0MjQuODY0IDM2MS44NDQgNDQ3LjQwMSAzODcuNjAxQzQ1My4wMDEgMzk0LjAwMSA0NDguNjAxIDM4Ny4yMDEgNDQ4LjYwMSAzODcuMjAxQzQ0OC42MDEgMzg3LjIwMSA0MjIuNjAxIDMzOS4yMDEgNDQ0LjIwMSAzNTMuNjAxQzQ0NC4yMDEgMzUzLjYwMSA0NDYuMjAxIDMzMC44MDEgNDQ1LjAwMSAzMjYuNDAxQzQ0My44MDEgMzIyLjAwMSA0NDEuODAxIDI5OS42IDQzNy4wMDEgMjk0LjRDNDMyLjIwMSAyODkuMiA0MzcuNDAxIDI4Ny42IDQ0My4wMDEgMjkyLjhDNDQzLjAwMSAyOTIuOCA0MzEuODAxIDI2OC44IDQ0NS4wMDEgMjgwLjhDNDQ1LjAwMSAyODAuOCA0NDEuNDAxIDI2NS42IDQzNy4wMDEgMjYyLjhDNDM3LjAwMSAyNjIuOCA0MzEuNDAxIDI0NS42IDQ0Ni42MDEgMjU2LjRDNDQ2LjYwMSAyNTYuNCA0NDIuMjAxIDI0NCA0MzkuMDAxIDI0MC44QzQzOS4wMDEgMjQwLjggNDI3LjQwMSAyMTMuMiA0MzQuNjAxIDIxOEw0MzkuMDAxIDIyMS42QzQzOS4wMDEgMjIxLjYgNDMyLjIwMSAyMDcuNiA0MzguNjAxIDIxMkM0NDUuMDAxIDIxNi40IDQ0NS4wMDEgMjE2IDQ0NS4wMDEgMjE2QzQ0NS4wMDEgMjE2IDQyMy44MDEgMTgyLjggNDQ0LjIwMSAyMDAuNEM0NDQuMjAxIDIwMC40IDQzNi4wNDIgMTg2LjQ4MiA0MzIuNjAxIDE3OS42QzQzMi42MDEgMTc5LjYgNDEzLjgwMSAxNTkuMiA0MjguMjAxIDE2NS42TDQzMy4wMDEgMTY3LjJDNDMzLjAwMSAxNjcuMiA0MjQuMjAxIDE1Ny4yIDQxNi4yMDEgMTU1LjZDNDA4LjIwMSAxNTQgNDE4LjYwMSAxNDcuNiA0MjUuMDAxIDE0OS42QzQzMS40MDEgMTUxLjYgNDQ3LjAwMSAxNTkuMiA0NDcuMDAxIDE1OS4yQzQ0Ny4wMDEgMTU5LjIgNDU5LjgwMSAxNzggNDYzLjgwMSAxNzguNEM0NjMuODAxIDE3OC40IDQ0My44MDEgMTcwLjggNDQ5LjgwMSAxNzguOEM0NDkuODAxIDE3OC44IDQ2NC4yMDEgMTkyLjggNDU3LjAwMSAxOTIuNEM0NTcuMDAxIDE5Mi40IDQ1MS4wMDEgMTk5LjYgNDU1LjgwMSAyMDguNEM0NTUuODAxIDIwOC40IDQzNy4zNDIgMTkwLjAwOSA0NTIuMjAxIDIxNS42TDQ1OS4wMDEgMjMyQzQ1OS4wMDEgMjMyIDQzNC42MDEgMjA3LjIgNDQ1LjgwMSAyMjkuMkM0NDUuODAxIDIyOS4yIDQ2My4wMDEgMjUyLjggNDY1LjAwMSAyNTMuMkM0NjcuMDAxIDI1My42IDQ3MS40MDEgMjYyLjQgNDcxLjQwMSAyNjIuNEw0NjcuMDAxIDI2MC40TDQ3Mi4yMDEgMjY5LjJDNDcyLjIwMSAyNjkuMiA0NjEuMDAxIDI1Ny4yIDQ2Ny4wMDEgMjcwLjRMNDcyLjYwMSAyODQuOEM0NzIuNjAxIDI4NC44IDQ1Mi4yMDEgMjYyLjggNDY1LjgwMSAyOTIuNEM0NjUuODAxIDI5Mi40IDQ0OS40MDEgMjg3LjIgNDU4LjIwMSAzMDQuNEM0NTguMjAxIDMwNC40IDQ1Ni42MDEgMzIwLjQwMSA0NTcuMDAxIDMyNS42MDFDNDU3LjQwMSAzMzAuODAxIDQ1OC42MDEgMzU5LjIwMSA0NTQuMjAxIDM2Ny4yMDFDNDQ5LjgwMSAzNzUuMjAxIDQ2MC4yMDEgMzk0LjQwMSA0NjIuMjAxIDM5OC40MDFDNDY0LjIwMSA0MDIuNDAxIDQ2Ny44MDEgNDEzLjIwMSA0NTkuMDAxIDQwNC4wMDFDNDUwLjIwMSAzOTQuODAxIDQ1NC42MDEgNDAwLjQwMSA0NTYuNjAxIDQwOS4yMDFDNDU4LjYwMSA0MTguMDAxIDQ2NC42MDEgNDMzLjYwMSA0NjMuODAxIDQzOS4yMDFDNDYzLjgwMSA0MzkuMjAxIDQ2Mi42MDEgNDQwLjQwMSA0NTkuNDAxIDQzNi44MDFDNDU5LjQwMSA0MzYuODAxIDQ0NC42MDEgNDE0LjAwMSA0NDYuMjAxIDQyOC40MDFDNDQ2LjIwMSA0MjguNDAxIDQ0NS4wMDEgNDM2LjQwMSA0NDEuODAxIDQ0NS4yMDFDNDQxLjgwMSA0NDUuMjAxIDQzOC42MDEgNDU2LjAwMSA0MzguNjAxIDQ0Ny4yMDFDNDM4LjYwMSA0NDcuMjAxIDQzNS40MDEgNDMwLjQwMSA0MzIuNjAxIDQzOC4wMDFDNDI5LjgwMSA0NDUuNjAxIDQyNi4yMDEgNDUxLjYwMSA0MjMuNDAxIDQ1NC4wMDFDNDIwLjYwMSA0NTYuNDAxIDQxNS40MDEgNDMzLjYwMSA0MTQuMjAxIDQ0NC4wMDFDNDE0LjIwMSA0NDQuMDAxIDQwMi4yMDEgNDMxLjYwMSAzOTcuNDAxIDQ0OC4wMDFMMzg1LjgwMSA0NjQuNDAxQzM4NS44MDEgNDY0LjQwMSAzODUuNDAxIDQ1Mi4wMDEgMzg0LjIwMSA0NTguMDAxQzM4NC4yMDEgNDU4LjAwMSAzNTQuMjAxIDQ2NC4wMDEgMzQzLjgwMSA0NTkuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0zMDkuNDAxIDEwMi44QzMwOS40MDEgMTAyLjggMjk3LjgwMSA5NC44IDI5My44MDEgOTUuMkMyODkuODAxIDk1LjYgMzIxLjQwMSA4Ni40IDM2Mi42MDEgMTE0QzM2Mi42MDEgMTE0IDM2Ny40MDEgMTE2LjggMzcxLjAwMSAxMTYuNEMzNzEuMDAxIDExNi40IDM3NC4yMDEgMTE4LjggMzcxLjQwMSAxMjIuNEMzNzEuNDAxIDEyMi40IDM2Mi42MDEgMTMyIDM3My44MDEgMTQzLjJDMzczLjgwMSAxNDMuMiAzOTIuMjAxIDE1MCAzODYuNjAxIDE0MS4yQzM4Ni42MDEgMTQxLjIgMzk3LjQwMSAxNDUuMiAzOTkuODAxIDE0OS4yQzQwMi4yMDEgMTUzLjIgNDAxLjAwMSAxNDkuMiA0MDEuMDAxIDE0OS4yQzQwMS4wMDEgMTQ5LjIgMzk0LjYwMSAxNDIgMzg4LjYwMSAxMzYuOEMzODguNjAxIDEzNi44IDM4My40MDEgMTM0LjggMzgwLjYwMSAxMjYuNEMzNzcuODAxIDExOCAzNzUuNDAxIDEwOCAzNzkuODAxIDEwNC44QzM3OS44MDEgMTA0LjggMzc1LjgwMSAxMDkuMiAzNzYuNjAxIDEwNS4yQzM3Ny40MDEgMTAxLjIgMzgxLjAwMSA5Ny42IDM4Mi42MDEgOTcuMkMzODQuMjAxIDk2LjggNDAwLjYwMSA4MSA0MDcuNDAxIDgwLjZDNDA3LjQwMSA4MC42IDM5OC4yMDEgODIgMzk1LjIwMSA4MUMzOTIuMjAxIDgwIDM2NS42MDEgNjguNiAzNTkuNjAxIDY3LjRDMzU5LjYwMSA2Ny40IDM0Mi44MDEgNjAuOCAzNTQuODAxIDYyLjhDMzU0LjgwMSA2Mi44IDM5MC42MDEgNjYuNiA0MDguODAxIDc5LjhDNDA4LjgwMSA3OS44IDQwMS42MDEgNzEuNCAzODMuMjAxIDY0LjRDMzgzLjIwMSA2NC40IDM2MS4wMDEgNTEuOCAzMjUuODAxIDU2LjhDMzI1LjgwMSA1Ni44IDMwOC4wMDEgNjAgMzAwLjIwMSA2MS44QzMwMC4yMDEgNjEuOCAyOTcuNjAxIDYxLjIgMjk3LjAwMSA2MC44QzI5Ni40MDEgNjAuNCAyODQuNiA1MS40IDI1NyA1OC40QzI1NyA1OC40IDI0MCA2MyAyMzEuNCA2Ny44QzIzMS40IDY3LjggMjE2LjIgNjkgMjEyLjYgNzIuMkMyMTIuNiA3Mi4yIDE5NCA4Ni44IDE5MiA4Ny42QzE5MCA4OC40IDE3OC42IDk2IDE3Ny44IDk2LjRDMTc3LjggOTYuNCAyMDIuNCA4OS44IDIwNC44IDg3LjRDMjA3LjIgODUgMjI0LjYgODIuNCAyMjcgODMuOEMyMjkuNCA4NS4yIDIzNy44IDg0LjYgMjI4LjIgODUuMkMyMjguMiA4NS4yIDMwMy44MDEgMTAwIDMwNC42MDEgMTAyQzMwNS40MDEgMTA0IDMwOS40MDEgMTAyLjggMzA5LjQwMSAxMDIuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNMzgwLjgwMSA5My42QzM4MC44MDEgOTMuNiAzNzAuNjAxIDg2LjIgMzY4LjYwMSA4Ni4yQzM2Ni42MDEgODYuMiAzNTQuMjAxIDc2IDM1MC4wMDEgNzYuNEMzNDUuODAxIDc2LjggMzMzLjYwMSA2Ni44IDMwNi4yMDEgNzVDMzA2LjIwMSA3NSAzMDUuNjAxIDczIDMwOS4yMDEgNzIuMkMzMDkuMjAxIDcyLjIgMzE1LjYwMSA3MCAzMTYuMDAxIDY5LjRDMzE2LjAwMSA2OS40IDMzNi4yMDEgNjUuMiAzNDMuNDAxIDY4LjhDMzQzLjQwMSA2OC44IDM1Mi42MDEgNzEuNCAzNTguODAxIDc3LjZDMzU4LjgwMSA3Ny42IDM3MC4wMDEgODAuOCAzNzMuMjAxIDc5LjhDMzczLjIwMSA3OS44IDM4Mi4wMDEgODIgMzgyLjQwMSA4My44QzM4Mi40MDEgODMuOCAzODguMjAxIDg2LjggMzg2LjQwMSA4OS40QzM4Ni40MDEgODkuNCAzODYuODAxIDkxIDM4MC44MDEgOTMuNnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjYzcyMjYiPgorICA8cGF0aCBkPSJNMzY4LjMzIDkxLjQ5MUMzNjkuMTM3IDkyLjEyMyAzNzAuMTU2IDkyLjIyMSAzNzAuNzYxIDkzLjAzQzM3MC45OTUgOTMuMzQ0IDM3MC43MDYgOTMuNjcgMzcwLjM5MSA5My43NjdDMzY5LjM0OCA5NC4wODQgMzY4LjI5MiA5My41MTQgMzY3LjE1IDk0LjEwMkMzNjYuNzQ4IDk0LjMwOSAzNjYuMTA2IDk0LjEyNyAzNjUuNTUzIDkzLjk3OEMzNjMuOTIxIDkzLjUzNyAzNjIuMDkyIDkzLjUxMiAzNjAuNDAxIDk0LjJDMzU4LjQxNiA5My4wNzEgMzU2LjA1NiA5My42NTUgMzUzLjk3NSA5Mi42NTRDMzUzLjkxNyA5Mi42MjcgMzUzLjY5NSA5Mi45NzMgMzUzLjYyMSA5Mi45NDZDMzUwLjU3NSA5MS44MDEgMzQ2LjgzMiA5Mi4wODQgMzQ0LjQwMSA4OS44QzM0MS45NzMgODkuMzg4IDMzOS42MTYgODguOTI2IDMzNy4xODggODguMjQ2QzMzNS4zNyA4Ny43MzcgMzMzLjk2MSA4Ni43NDggMzMyLjM0MSA4NS45MTZDMzMwLjk2NCA4NS4yMDggMzI5LjUwNyA4NC42ODYgMzI3Ljk3MyA4NC4zMTRDMzI2LjExIDgzLjg2MiAzMjQuMjc5IDgzLjk3NCAzMjIuMzg2IDgzLjQ1NEMzMjIuMjkzIDgzLjQyOSAzMjIuMTAxIDgzLjc3MyAzMjIuMDE5IDgzLjc0NkMzMjEuNjk1IDgzLjYzOCAzMjEuNDA1IDgzLjA1NSAzMjEuMjM0IDgzLjEwOEMzMTkuNTUzIDgzLjYzIDMxOC4wNjUgODIuNjU4IDMxNi40MDEgODNDMzE1LjIyMyA4MS43NzYgMzEzLjQ5NSA4Mi4wMjEgMzExLjk0OSA4MS41NzlDMzA4Ljk4NSA4MC43MzEgMzA1LjgzMSA4Mi4wMDEgMzAyLjgwMSA4MUMzMDYuOTE0IDc5LjE1OCAzMTEuNjAxIDgwLjM5IDMxNS42NjMgNzguMzIxQzMxNy45OTEgNzcuMTM1IDMyMC42NTMgNzguMjM3IDMyMy4yMjMgNzcuNDc3QzMyMy43MSA3Ny4zMzMgMzI0LjQwMSA3Ny4xMzEgMzI0LjgwMSA3Ny44QzMyNC45MzUgNzcuNjY1IDMyNS4xMTcgNzcuNDI2IDMyNS4xNzUgNzcuNDU0QzMyNy42MjUgNzguNjExIDMyOS45NCA3OS44ODUgMzMyLjQyMiA4MC45NTFDMzMyLjc2MyA4MS4wOTcgMzMzLjI5NSA4MC44NjUgMzMzLjU0NyA4MS4wNjdDMzM1LjA2NyA4Mi4yODMgMzM3LjAxIDgyLjE4IDMzOC40MDEgODMuNEMzNDAuMDk5IDgyLjg5OCAzNDEuODkyIDgzLjI3OCAzNDMuNjIxIDgyLjY1NEMzNDMuNjk4IDgyLjYyNyAzNDMuOTMyIDgyLjk2OCAzNDMuOTY1IDgyLjk0NkMzNDUuMDk1IDgyLjE5OCAzNDYuMjUgODIuNDY5IDM0Ny4xNDIgODIuNzczQzM0Ny40OCA4Mi44ODggMzQ4LjE0MyA4My4xMzUgMzQ4LjQ0OCA4My4yMDlDMzQ5LjU3NCA4My40ODUgMzUwLjQzIDgzLjk2NSAzNTEuNjA5IDg0LjE0OEMzNTEuNzIzIDg0LjE2NiAzNTEuOTA4IDgzLjgyNiAzNTEuOTggODMuODU0QzM1My4xMDMgODQuMjkyIDM1NC4xNDUgODQuMjM2IDM1NC44MDEgODUuNEMzNTQuOTM2IDg1LjI2NSAzNTUuMTAxIDg1LjAyNyAzNTUuMTgzIDg1LjA1NEMzNTYuMjEgODUuMzkyIDM1Ni44NTkgODYuMTQ3IDM1Ny45NiA4Ni4zODhDMzU4LjQ0NSA4Ni40OTQgMzU5LjA1NyA4Ny4xMiAzNTkuNjMzIDg3LjI5NkMzNjIuMDI1IDg4LjAyNyAzNjMuODY4IDg5LjU1NiAzNjYuMDYyIDkwLjQ1MUMzNjYuODIxIDkwLjc2MSAzNjcuNjk3IDkwLjk5NSAzNjguMzMgOTEuNDkxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yOTEuNjk2IDc3LjI2MUMyODkuMTc4IDc1LjUzNiAyODYuODEgNzQuNDMgMjg0LjM2OCA3Mi42NDRDMjg0LjE4NyA3Mi41MTEgMjgzLjgyNyA3Mi42ODEgMjgzLjYyNSA3Mi41NTlDMjgyLjYxOCA3MS45NSAyODEuNzMgNzEuMzY5IDI4MC43NDggNzAuNjczQzI4MC4yMDkgNzAuMjkxIDI3OS4zODggNzAuMzAyIDI3OC44OCA3MC4wNDRDMjc2LjMzNiA2OC43NTIgMjczLjcwNyA2OC4xOTQgMjcxLjIgNjdDMjcxLjg4MiA2Ni4zNjIgMjczLjAwNCA2Ni42MDYgMjczLjYgNjUuOEMyNzMuNzk1IDY2LjA4IDI3NC4wMzMgNjYuMzY0IDI3NC4zODYgNjYuMTczQzI3Ni4wNjQgNjUuMjY5IDI3Ny45MTQgNjUuMTE2IDI3OS41OSA2NS4yMDZDMjgxLjI5NCA2NS4yOTggMjgzLjAxNCA2NS42MDMgMjg0Ljc4OSA2NS44NzVDMjg1LjA5NiA2NS45MjIgMjg1LjI5NSA2Ni40NDUgMjg1LjYxOCA2Ni41NDJDMjg3Ljg0NiA2Ny4yMDUgMjkwLjIzNSA2Ni42OCAyOTIuMzU0IDY3LjUxOEMyOTMuOTQ1IDY4LjE0NyAyOTUuNTE1IDY4Ljk3IDI5Ni43NTQgNzAuMjQ1QzI5Ny4wMDYgNzAuNTA1IDI5Ni42ODEgNzAuODA2IDI5Ni40MDEgNzFDMjk2Ljc4OSA3MC44OTEgMjk3LjA2MiA3MS4wOTcgMjk3LjE3MyA3MS40MUMyOTcuMjU3IDcxLjY0OSAyOTcuMjU3IDcxLjk1MSAyOTcuMTczIDcyLjE5QzI5Ny4wNjEgNzIuNTAyIDI5Ni43ODIgNzIuNjAzIDI5Ni40MDggNzIuNjU0QzI5NS4wMDEgNzIuODQ0IDI5Ni43NzMgNzEuNDY0IDI5Ni4wNzMgNzEuOTEyQzI5NC44IDcyLjcyNiAyOTUuNTQ2IDc0LjEzMiAyOTQuODAxIDc1LjRDMjk0LjUyMSA3NS4yMDYgMjk0LjI5MSA3NC45ODggMjk0LjQwMSA3NC42QzI5NC42MzUgNzUuMTIyIDI5NC4wMzMgNzUuNDEyIDI5My44NjUgNzUuNzI4QzI5My40OCA3Ni40NTMgMjkyLjU4MSA3Ny44NjggMjkxLjY5NiA3Ny4yNjF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTI1OS4xOTggODQuNjA5QzI1Ni4wNDQgODMuODE1IDI1Mi45OTQgODMuOTMgMjQ5Ljk3OCA4Mi42NTRDMjQ5LjkxMSA4Mi42MjYgMjQ5LjY4OCA4Mi45NzMgMjQ5LjYyNCA4Mi45NDZDMjQ4LjI1OCA4Mi4zNTIgMjQ3LjM0IDgxLjM4NiAyNDYuMjY0IDgwLjM0QzI0NS4zNTEgNzkuNDUyIDI0My42OTMgNzkuODM5IDI0Mi40MTkgNzkuMzUyQzI0Mi4wOTUgNzkuMjI4IDI0MS44OTIgNzguNzE2IDI0MS41OTEgNzguNjc3QzI0MC4zNzIgNzguNTIgMjM5LjQ0NSA3Ny41NzEgMjM4LjQgNzdDMjQwLjczNiA3Ni4yMDUgMjQzLjE0NyA3Ni4yMzYgMjQ1LjYwOSA3NS44NTJDMjQ1LjcyMiA3NS44MzQgMjQ1Ljg2NyA3Ni4xNTUgMjQ2IDc2LjE1NUMyNDYuMTM2IDc2LjE1NSAyNDYuMjY2IDc1LjkzNCAyNDYuNCA3NS44QzI0Ni41OTUgNzYuMDggMjQ2Ljg5NyA3Ni40MDYgMjQ3LjE1NCA3Ni4xNTJDMjQ3LjcwMiA3NS42MTIgMjQ4LjI1OCA3NS44MDIgMjQ4Ljc5OCA3NS44NDJDMjQ4Ljk0MiA3NS44NTIgMjQ5LjA2NyA3Ni4xNTUgMjQ5LjIgNzYuMTU1QzI0OS4zMzYgNzYuMTU1IDI0OS40NjcgNzUuODQ0IDI0OS42IDc1Ljg0NEMyNDkuNzM2IDc1Ljg0NSAyNDkuODY3IDc2LjE1NSAyNTAgNzYuMTU1QzI1MC4xMzYgNzYuMTU1IDI1MC4yNjYgNzUuOTM0IDI1MC40IDc1LjhDMjUxLjA5MiA3Ni41ODIgMjUxLjk3NyA3Ni4wMjggMjUyLjc5OSA3Ni4yMDdDMjUzLjgzNyA3Ni40MzQgMjU0LjEwNCA3Ny41ODIgMjU1LjE3OCA3Ny44OEMyNTkuODkzIDc5LjE4NCAyNjQuMDMgODEuMzI5IDI2OC4zOTMgODMuNDE2QzI2OC43IDgzLjU2MyAyNjguOTEgODMuODExIDI2OC44IDg0LjJDMjY5LjA2NyA4NC4yIDI2OS4zOCA4NC4xMTIgMjY5LjU3IDg0LjI0NEMyNzAuNjI4IDg0Ljk3NiAyNzEuNjY5IDg1LjUyNCAyNzIuMzY2IDg2LjYyMkMyNzIuNTgyIDg2Ljk2MSAyNzIuMjUzIDg3LjM2OCAyNzIuMDIgODcuMzE2QzI2Ny41OTEgODYuMzIxIDI2My41ODUgODUuNzEzIDI1OS4xOTggODQuNjA5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjNzIyNiI+CisgIDxwYXRoIGQ9Ik0yNDUuMzM4IDEyOC44MjFDMjQzLjc0NiAxMjcuNjAyIDI0My4xNjIgMTI1LjU3MSAyNDIuMDM0IDEyMy43NzlDMjQxLjgyIDEyMy40MzkgMjQyLjA5NCAxMjMuMTI1IDI0Mi40MTEgMTIzLjAzNkMyNDIuOTcxIDEyMi44NzcgMjQzLjUxNCAxMjMuMzU1IDI0My45MjMgMTIzLjU1N0MyNDUuNjY4IDEyNC40MTkgMjQ3LjIwMyAxMjUuNjYxIDI0OS4yIDEyNS44QzI1MS4xOSAxMjguMDM0IDI1NS40NSAxMjguNDE5IDI1NS40NTcgMTMxLjhDMjU1LjQ1OCAxMzIuNjU5IDI1NC4wMyAxMzEuNzQxIDI1My42IDEzMi42QzI1MS4xNDkgMTMxLjU5NyAyNDguNzYgMTMxLjcgMjQ2LjM4IDEzMC4yMzNDMjQ1Ljc2MyAxMjkuODUyIDI0Ni4wOTMgMTI5LjM5OSAyNDUuMzM4IDEyOC44MjF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2M3MjI2Ij4KKyAgPHBhdGggZD0iTTIxNy44IDc2LjI0NEMyMTcuOTM1IDc2LjI0NSAyMjQuOTY2IDc2LjQ3OCAyMjQuOTQ5IDc2LjU5MkMyMjQuOTA0IDc2LjkwMSAyMTcuMTc0IDc3Ljk1IDIxNi44MSA3Ny43OEMyMTYuNjQ2IDc3LjcwNCAyMDkuMTM0IDgwLjEzNCAyMDkgODBDMjA5LjI2OCA3OS44NjUgMjE3LjUzNCA3Ni4yNDQgMjE3LjggNzYuMjQ0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMzMuMiA4NkMyMzMuMiA4NiAyMTguNCA4Ny44IDIxNCA4OUMyMDkuNiA5MC4yIDE5MSA5Ny44IDE4OCA5OS44QzE4OCA5OS44IDE3NC42IDEwNS4yIDE1Ny42IDEyNS4yQzE1Ny42IDEyNS4yIDE2NS4yIDEyMS44IDE2Ny40IDExOUMxNjcuNCAxMTkgMTgxIDEwNi40IDE4MC44IDEwOUMxODAuOCAxMDkgMTkzIDEwMC40IDE5Mi40IDEwMi42QzE5Mi40IDEwMi42IDIxNi44IDkxLjQgMjE0LjggOTQuNkMyMTQuOCA5NC42IDIzNi40IDkwIDIzNS40IDkyQzIzNS40IDkyIDI1NC4yIDk2LjQgMjUxLjQgOTYuNkMyNTEuNCA5Ni42IDI0NS42IDk3LjggMjUyIDEwMS40QzI1MiAxMDEuNCAyNDguNiAxMDUuOCAyNDMuMiAxMDEuOEMyMzcuOCA5Ny44IDI0MC44IDEwMCAyMzUuOCAxMDFDMjM1LjggMTAxIDIzMy4yIDEwMS44IDIyOC42IDk3LjhDMjI4LjYgOTcuOCAyMjMgOTMuMiAyMTQuMiA5Ni44QzIxNC4yIDk2LjggMTgzLjYgMTA5LjQgMTgxLjYgMTEwQzE4MS42IDExMCAxNzggMTEyLjggMTc1LjYgMTE2LjRDMTc1LjYgMTE2LjQgMTY5LjggMTIwLjggMTY2LjggMTIyLjJDMTY2LjggMTIyLjIgMTU0IDEzMy44IDE1Mi44IDEzNS4yQzE1Mi44IDEzNS4yIDE0OS40IDE0MC40IDE0OC42IDE0MC44QzE0OC42IDE0MC44IDE1NSAxMzcgMTU3IDEzNUMxNTcgMTM1IDE3MSAxMjUgMTc2LjQgMTI0LjJDMTc2LjQgMTI0LjIgMTgwLjggMTIxLjIgMTgxLjYgMTE5LjhDMTgxLjYgMTE5LjggMTk2IDExMC42IDIwMC4yIDExMC42QzIwMC4yIDExMC42IDIwOS40IDExNS44IDIxMS44IDEwOC44QzIxMS44IDEwOC44IDIxNy42IDEwNyAyMjMuMiAxMDguMkMyMjMuMiAxMDguMiAyMjYuNCAxMDUuNiAyMjUuNiAxMDMuNEMyMjUuNiAxMDMuNCAyMjcuMiAxMDEuNiAyMjguMiAxMDUuNEMyMjguMiAxMDUuNCAyMzEuNiAxMDkgMjM2LjQgMTA3QzIzNi40IDEwNyAyNDAuNCAxMDYuOCAyMzguNCAxMDkuMkMyMzguNCAxMDkuMiAyMzQgMTEzIDIyMi4yIDExMy4yQzIyMi4yIDExMy4yIDIwOS44IDExMy44IDE5My40IDEyMS40QzE5My40IDEyMS40IDE2My42IDEzMS44IDE1NC40IDE0Mi4yQzE1NC40IDE0Mi4yIDE0OCAxNTEgMTQyLjYgMTUyLjJDMTQyLjYgMTUyLjIgMTM2LjggMTUzIDEzMC44IDE2MC40QzEzMC44IDE2MC40IDE0MC42IDE1NC42IDE0OS42IDE1NC42QzE0OS42IDE1NC42IDE1My42IDE1Mi4yIDE0OS44IDE1NS44QzE0OS44IDE1NS44IDE0Ni4yIDE2My40IDE0Ny44IDE2OC44QzE0Ny44IDE2OC44IDE0Ny4yIDE3NCAxNDYuNCAxNzUuNkMxNDYuNCAxNzUuNiAxMzguNiAxODguNCAxMzguNiAxOTAuOEMxMzguNiAxOTMuMiAxMzkuOCAyMDMgMTQwLjIgMjAzLjZDMTQwLjYgMjA0LjIgMTM5LjIgMjAyIDE0MyAyMDQuNEMxNDYuOCAyMDYuOCAxNDkuNiAyMDguNCAxNTAuNCAyMTEuMkMxNTEuMiAyMTQgMTQ4LjQgMjA1LjggMTQ4LjIgMjA0QzE0OCAyMDIuMiAxNDMuOCAxOTUgMTQ0LjYgMTkyLjZDMTQ0LjYgMTkyLjYgMTQ1LjYgMTkzLjYgMTQ2LjQgMTk1QzE0Ni40IDE5NSAxNDUuOCAxOTQuNCAxNDYuNCAxOTAuOEMxNDYuNCAxOTAuOCAxNDcuMiAxODUuNiAxNDguNiAxODIuNEMxNTAgMTc5LjIgMTUyIDE3NS40IDE1Mi40IDE3NC42QzE1Mi44IDE3My44IDE1Mi44IDE2OCAxNTQuMiAxNzAuNkwxNTcuNiAxNzMuMkMxNTcuNiAxNzMuMiAxNTQuOCAxNzAuNiAxNTcgMTY4LjRDMTU3IDE2OC40IDE1NiAxNjIuOCAxNTcuOCAxNjAuMkMxNTcuOCAxNjAuMiAxNjQuOCAxNTEuOCAxNjYuNCAxNTAuOEMxNjggMTQ5LjggMTY2LjYgMTUwLjIgMTY2LjYgMTUwLjJDMTY2LjYgMTUwLjIgMTcyLjYgMTQ2IDE2Ni44IDE0Ny42QzE2Ni44IDE0Ny42IDE2Mi44IDE0OS4yIDE1OS44IDE0OS4yQzE1OS44IDE0OS4yIDE1Mi4yIDE1MS4yIDE1Ni4yIDE0N0MxNjAuMiAxNDIuOCAxNzAuMiAxMzcuNCAxNzQgMTM3LjZMMTc0LjggMTM5LjJMMTg2IDEzNi44TDE4NC44IDEzNy42QzE4NC44IDEzNy42IDE4NC42IDEzNy40IDE4OC44IDEzN0MxOTMgMTM2LjYgMTk4LjggMTM4IDIwMC4yIDEzNi4yQzIwMS42IDEzNC40IDIwNSAxMzMuNCAyMDQuNiAxMzQuOEMyMDQuMiAxMzYuMiAyMDQgMTM4LjIgMjA0IDEzOC4yQzIwNCAxMzguMiAyMDkgMTMyLjQgMjA4LjQgMTM0LjZDMjA3LjggMTM2LjggMTk5LjYgMTQyIDE5OC4yIDE0OC4yTDIwOC42IDE0MEwyMTIuMiAxMzdDMjEyLjIgMTM3IDIxNS44IDEzOS4yIDIxNiAxMzcuNkMyMTYuMiAxMzYgMjIwLjggMTMwLjIgMjIyIDEzMC40QzIyMy4yIDEzMC42IDIyNS4yIDEyNy44IDIyNSAxMzAuNEMyMjQuOCAxMzMgMjMyLjQgMTM4LjQgMjMyLjQgMTM4LjRDMjMyLjQgMTM4LjQgMjM1LjYgMTM2LjYgMjM3IDEzOEMyMzguNCAxMzkuNCAyNDIuNiAxMTguMiAyNDIuNiAxMTguMkwyNjcuNiAxMDcuNkwzMTEuMjAxIDEwNC4yTDI5NC4yMDEgOTcuNEwyMzMuMiA4NnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojNGMwMDAwOyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yNTEuNCAyODVDMjUxLjQgMjg1IDIzNi40IDI2OC4yIDIyOCAyNjUuNkMyMjggMjY1LjYgMjE0LjYgMjU4LjggMTkwIDI2Ni42Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzRjMDAwMDsgc3Ryb2tlLXdpZHRoOjIiPgorICA8cGF0aCBkPSJNMjI0LjggMjY0LjJDMjI0LjggMjY0LjIgMTk5LjYgMjU2LjIgMTg0LjIgMjYwLjRDMTg0LjIgMjYwLjQgMTY1LjggMjYyLjQgMTU3LjQgMjc2LjIiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojNGMwMDAwOyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yMjEuMiAyNjNDMjIxLjIgMjYzIDIwNC4yIDI1NS44IDE4OS40IDI1My42QzE4OS40IDI1My42IDE3Mi44IDI1MSAxNTYuMiAyNTguMkMxNTYuMiAyNTguMiAxNDQgMjY0LjIgMTM4LjYgMjc0LjQiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojNGMwMDAwOyBzdHJva2Utd2lkdGg6MiI+CisgIDxwYXRoIGQ9Ik0yMjIuMiAyNjMuNEMyMjIuMiAyNjMuNCAyMDYuOCAyNTIuNCAyMDUuOCAyNTFDMjA1LjggMjUxIDE5OC44IDI0MCAxODUuOCAyMzkuNkMxODUuOCAyMzkuNiAxNjQuNCAyNDAuNCAxNDcuMiAyNDguNCIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMjAuODk1IDI1NC40MDdDMjIyLjQzNyAyNTUuODcgMjQ5LjQgMjg0LjggMjQ5LjQgMjg0LjhDMjg0LjYgMzIxLjQwMSAyNTYuNiAyODcuMiAyNTYuNiAyODcuMkMyNDkgMjgyLjQgMjM5LjggMjYzLjYgMjM5LjggMjYzLjZDMjM4LjYgMjYwLjggMjUzLjggMjcwLjggMjUzLjggMjcwLjhDMjU3LjggMjcxLjYgMjcxLjQgMjkwLjggMjcxLjQgMjkwLjhDMjY0LjYgMjg4LjQgMjY5LjQgMjk1LjYgMjY5LjQgMjk1LjZDMjcyLjIgMjk3LjYgMjkyLjYwMSAzMTMuMjAxIDI5Mi42MDEgMzEzLjIwMUMyOTYuMjAxIDMxNy4yMDEgMzAwLjIwMSAzMTguODAxIDMwMC4yMDEgMzE4LjgwMUMzMTQuMjAxIDMxMy42MDEgMzA3LjgwMSAzMjYuODAxIDMwNy44MDEgMzI2LjgwMUMzMTAuMjAxIDMzMy42MDEgMzE1LjgwMSAzMjIuMDAxIDMxNS44MDEgMzIyLjAwMUMzMjcuMDAxIDMwNS4yIDMxMC42MDEgMzA3LjYwMSAzMTAuNjAxIDMwNy42MDFDMjgwLjYgMzEwLjQwMSAyNzMuOCAyOTQuNCAyNzMuOCAyOTQuNEMyNzEuNCAyOTIgMjgwLjIgMjk0LjQgMjgwLjIgMjk0LjRDMjg4LjYwMSAyOTYuNCAyNzMgMjgyIDI3MyAyODJDMjc1LjQgMjgyIDI4NC42IDI4OC44IDI4NC42IDI4OC44QzI5NS4wMDEgMjk4IDI5Ny4wMDEgMjk2IDI5Ny4wMDEgMjk2QzMxNS4wMDEgMjg3LjIgMzI1LjQwMSAyOTQuOCAzMjUuNDAxIDI5NC44QzMyNy40MDEgMjk2LjQgMzIxLjgwMSAzMDMuMiAzMjMuNDAxIDMwOC40MDFDMzI1LjAwMSAzMTMuNjAxIDMyOS44MDEgMzI2LjAwMSAzMjkuODAxIDMyNi4wMDFDMzI3LjQwMSAzMjcuNjAxIDMyNy44MDEgMzM4LjQwMSAzMjcuODAxIDMzOC40MDFDMzQ0LjYwMSAzNjEuNjAxIDMzNS4wMDEgMzU5LjYwMSAzMzUuMDAxIDM1OS42MDFDMzE5LjQwMSAzNTkuMjAxIDMzNC4yMDEgMzY2LjgwMSAzMzQuMjAxIDM2Ni44MDFDMzM3LjQwMSAzNjguODAxIDM0Ni4yMDEgMzc2LjAwMSAzNDYuMjAxIDM3Ni4wMDFDMzQzLjQwMSAzNzQuODAxIDM0MS44MDEgMzgwLjAwMSAzNDEuODAxIDM4MC4wMDFDMzQ2LjYwMSAzODQuMDAxIDM0My44MDEgMzg4LjgwMSAzNDMuODAxIDM4OC44MDFDMzM3LjgwMSAzOTAuMDAxIDMzNi42MDEgMzk0LjAwMSAzMzYuNjAxIDM5NC4wMDFDMzQzLjQwMSA0MDIuMDAxIDMzMy40MDEgNDAyLjQwMSAzMzMuNDAxIDQwMi40MDFDMzM3LjAwMSA0MDYuODAxIDMzMi4yMDEgNDE4LjgwMSAzMzIuMjAxIDQxOC44MDFDMzI3LjQwMSA0MTguODAxIDMyMS4wMDEgNDI0LjQwMSAzMjEuMDAxIDQyNC40MDFDMzIzLjQwMSA0MjkuMjAxIDMxMy4wMDEgNDM0LjgwMSAzMTMuMDAxIDQzNC44MDFDMzA0LjYwMSA0MzYuNDAxIDMwNy40MDEgNDQzLjIwMSAzMDcuNDAxIDQ0My4yMDFDMjk5LjQwMSA0NDkuMjAxIDI5Ny4wMDEgNDY1LjIwMSAyOTcuMDAxIDQ2NS4yMDFDMjk2LjIwMSA0NzUuNjAxIDI5My44MDEgNDc4LjgwMSAyOTkuMDAxIDQ3Ni44MDFDMzA0LjIwMSA0NzQuODAxIDMwMy40MDEgNDYyLjQwMSAzMDMuNDAxIDQ2Mi40MDFDMjk4LjYwMSA0NDYuODAxIDM0MS40MDEgNDMwLjgwMSAzNDEuNDAxIDQzMC44MDFDMzQ1LjQwMSA0MjkuMjAxIDM0Ni4yMDEgNDI0LjAwMSAzNDYuMjAxIDQyNC4wMDFDMzQ4LjIwMSA0MjQuNDAxIDM1Ny4wMDEgNDMyLjAwMSAzNTcuMDAxIDQzMi4wMDFDMzY0LjYwMSA0NDMuMjAxIDM2NS4wMDEgNDM0LjAwMSAzNjUuMDAxIDQzNC4wMDFDMzY2LjIwMSA0MzAuNDAxIDM2NC42MDEgNDI0LjQwMSAzNjQuNjAxIDQyNC40MDFDMzcwLjYwMSA0MDIuODAxIDM1Ni42MDEgMzk2LjQwMSAzNTYuNjAxIDM5Ni40MDFDMzQ2LjYwMSAzNjIuODAxIDM2MC42MDEgMzcxLjIwMSAzNjAuNjAxIDM3MS4yMDFDMzYzLjQwMSAzNzYuODAxIDM3NC4yMDEgMzgyLjAwMSAzNzQuMjAxIDM4Mi4wMDFMMzc3LjgwMSAzNzkuNjAxQzM3Ni4yMDEgMzc0LjgwMSAzODQuNjAxIDM2OC44MDEgMzg0LjYwMSAzNjguODAxQzM4Ny40MDEgMzc1LjIwMSAzOTMuNDAxIDM2Ny4yMDEgMzkzLjQwMSAzNjcuMjAxQzM5Ny4wMDEgMzQyLjgwMSA0MDkuNDAxIDM1Ny4yMDEgNDA5LjQwMSAzNTcuMjAxQzQxMy40MDEgMzU4LjQwMSA0MTQuNjAxIDM1MS42MDEgNDE0LjYwMSAzNTEuNjAxQzQxOC4yMDEgMzQxLjIwMSA0MTQuNjAxIDMyNy42MDEgNDE0LjYwMSAzMjcuNjAxQzQxOC4yMDEgMzI3LjIwMSA0MjcuODAxIDMzMy4yMDEgNDI3LjgwMSAzMzMuMjAxQzQzMC42MDEgMzI5LjYwMSA0MjEuNDAxIDMxMi44MDEgNDI1LjQwMSAzMTUuMjAxQzQyOS40MDEgMzE3LjYwMSA0MzMuODAxIDMxOS4yMDEgNDMzLjgwMSAzMTkuMjAxQzQzNC42MDEgMzE3LjIwMSA0MjQuNjAxIDMwNC44MDEgNDI0LjYwMSAzMDQuODAxQzQyMC4yMDEgMzAyIDQxNS4wMDEgMjgxLjYgNDE1LjAwMSAyODEuNkM0MjIuMjAxIDI4NS4yIDQxMi4yMDEgMjcwIDQxMi4yMDEgMjcwQzQxMi4yMDEgMjY2LjggNDE4LjIwMSAyNTUuNiA0MTguMjAxIDI1NS42QzQxNy40MDEgMjQ4LjggNDE4LjIwMSAyNDkuMiA0MTguMjAxIDI0OS4yQzQyMS4wMDEgMjUwLjQgNDI5LjAwMSAyNTIgNDIyLjIwMSAyNDUuNkM0MTUuNDAxIDIzOS4yIDQyMy4wMDEgMjM0LjQgNDIzLjAwMSAyMzQuNEM0MjcuNDAxIDIzMS42IDQxMy44MDEgMjMyIDQxMy44MDEgMjMyQzQwOC42MDEgMjI3LjYgNDA5LjAwMSAyMjMuNiA0MDkuMDAxIDIyMy42QzQxNy4wMDEgMjI1LjYgNDAyLjYwMSAyMTEuMiA0MDAuMjAxIDIwNy42QzM5Ny44MDEgMjA0IDQwNy40MDEgMTk4LjggNDA3LjQwMSAxOTguOEM0MjAuNjAxIDE5NS4yIDQwOS4wMDEgMTkyIDQwOS4wMDEgMTkyQzM4OS40MDEgMTkyLjQgNDAwLjIwMSAxODEuNiA0MDAuMjAxIDE4MS42QzQwNi4yMDEgMTgyIDQwNC42MDEgMTc5LjYgNDA0LjYwMSAxNzkuNkMzOTkuNDAxIDE3OC40IDM4OS44MDEgMTcyIDM4OS44MDEgMTcyQzM4NS44MDEgMTY4LjQgMzg5LjQwMSAxNjkuMiAzODkuNDAxIDE2OS4yQzQwNi4yMDEgMTcwLjQgMzc3LjQwMSAxNTkuMiAzNzcuNDAxIDE1OS4yQzM4NS40MDEgMTU5LjIgMzY3LjQwMSAxNDguOCAzNjcuNDAxIDE0OC44QzM2NS40MDEgMTQ3LjIgMzYyLjIwMSAxMzkuNiAzNjIuMjAxIDEzOS42QzM1Ni4yMDEgMTM0LjQgMzUxLjQwMSAxMjcuNiAzNTEuNDAxIDEyNy42QzM1MS4wMDEgMTIzLjIgMzQ2LjIwMSAxMTguNCAzNDYuMjAxIDExOC40QzMzNC42MDEgMTA0LjggMzI5LjAwMSAxMDUuMiAzMjkuMDAxIDEwNS4yQzMxNC4yMDEgMTAxLjYgMzA5LjAwMSAxMDIuNCAzMDkuMDAxIDEwMi40TDI1Ni4yIDEwNi44QzIyOS44IDExOS42IDIzNy42IDE0MC42IDIzNy42IDE0MC42QzI0NCAxNDkgMjUzLjIgMTQ1LjIgMjUzLjIgMTQ1LjJDMjU3LjggMTM5IDI2OS40IDE0MS4yIDI2OS40IDE0MS4yQzI4OS44MDEgMTQ0LjQgMjg3LjIwMSAxNDAuOCAyODcuMjAxIDE0MC44QzI4NC44MDEgMTM2LjIgMjY4LjYgMTMwIDI2OC40IDEyOS40QzI2OC4yIDEyOC44IDI1OS40IDEyNS40IDI1OS40IDEyNS40QzI1Ni40IDEyNC4yIDI1MiAxMTUgMjUyIDExNUMyNDguOCAxMTEuNiAyNjQuNiAxMTcuNCAyNjQuNiAxMTcuNEMyNjMuNCAxMTguNCAyNzAuOCAxMjIuNCAyNzAuOCAxMjIuNEMyODguMjAxIDEyMS40IDI5OC44MDEgMTMyLjIgMjk4LjgwMSAxMzIuMkMzMDkuNjAxIDE0OC44IDMwOS44MDEgMTQwLjYgMzA5LjgwMSAxNDAuNkMzMTIuNjAxIDEzMS4yIDMwMC44MDEgMTEwIDMwMC44MDEgMTEwQzMwMS4yMDEgMTA4IDMwOS40MDEgMTE0LjYgMzA5LjQwMSAxMTQuNkMzMTAuODAxIDExMi42IDMxMS42MDEgMTE4LjQgMzExLjYwMSAxMTguNEMzMTEuODAxIDEyMC44IDMxNS42MDEgMTI4LjggMzE1LjYwMSAxMjguOEMzMTguNDAxIDE0MS44IDMyMi4wMDEgMTM0LjQgMzIyLjAwMSAxMzQuNEwzMjYuNjAxIDE0My44QzMyOC4wMDEgMTQ2LjQgMzIyLjAwMSAxNTQgMzIyLjAwMSAxNTRDMzIxLjgwMSAxNTYuOCAzMjIuNjAxIDE1Ni42IDMxNy4wMDEgMTY0LjJDMzExLjQwMSAxNzEuOCAzMTQuODAxIDE3Ni4yIDMxNC44MDEgMTc2LjJDMzEzLjQwMSAxODIuOCAzMjIuMjAxIDE4Mi40IDMyMi4yMDEgMTgyLjRDMzI0LjgwMSAxODQuNiAzMjguMjAxIDE4NC42IDMyOC4yMDEgMTg0LjZDMzMwLjAwMSAxODYuNiAzMzIuNDAxIDE4NiAzMzIuNDAxIDE4NkMzMzQuMDAxIDE4Mi4yIDM0MC4yMDEgMTg0LjIgMzQwLjIwMSAxODQuMkMzNDEuNjAxIDE4MS44IDM0OS44MDEgMTgxLjQgMzQ5LjgwMSAxODEuNEMzNTAuODAxIDE3OC44IDM1MS4yMDEgMTc3LjIgMzU0LjYwMSAxNzYuNkMzNTguMDAxIDE3NiAzMzMuNDAxIDEzMyAzMzMuNDAxIDEzM0MzMzkuODAxIDEzMi4yIDMzMS42MDEgMTE5LjggMzMxLjYwMSAxMTkuOEMzMjkuNDAxIDExMy4yIDM0MC44MDEgMTI3LjggMzQzLjAwMSAxMjkuMkMzNDUuMjAxIDEzMC42IDM0Ni4yMDEgMTMyLjggMzQ0LjYwMSAxMzIuNkMzNDMuMDAxIDEzMi40IDM0MS4yMDEgMTM0LjYgMzQyLjYwMSAxMzQuOEMzNDQuMDAxIDEzNSAzNTcuMDAxIDE1MCAzNjAuNDAxIDE2MC4yQzM2My44MDEgMTcwLjQgMzY5LjgwMSAxNzQuNCAzNzYuMDAxIDE4MC40QzM4Mi4yMDEgMTg2LjQgMzgxLjQwMSAyMTAuNiAzODEuNDAxIDIxMC42QzM4MS4wMDEgMjE5LjQgMzg3LjAwMSAyMzAgMzg3LjAwMSAyMzBDMzg5LjAwMSAyMzMuOCAzODQuODAxIDI1MiAzODQuODAxIDI1MkMzODIuODAxIDI1NC4yIDM4NC4yMDEgMjU1IDM4NC4yMDEgMjU1QzM4NS4yMDEgMjU2LjIgMzkyLjAwMSAyNjkuNCAzOTIuMDAxIDI2OS40QzM5MC4yMDEgMjY5LjIgMzkzLjgwMSAyNzIuOCAzOTMuODAxIDI3Mi44QzM5OS4wMDEgMjc4LjggMzkyLjYwMSAyNzUuOCAzOTIuNjAxIDI3NS44QzM4Ni42MDEgMjc0LjIgMzkzLjYwMSAyODQgMzkzLjYwMSAyODRDMzk0LjgwMSAyODUuOCAzODUuODAxIDI4MS4yIDM4NS44MDEgMjgxLjJDMzc2LjYwMSAyODAuNiAzODguMjAxIDI4Ny44IDM4OC4yMDEgMjg3LjhDMzk2LjgwMSAyOTUgMzg1LjQwMSAyOTAuNiAzODUuNDAxIDI5MC42QzM4MC44MDEgMjg4LjggMzg0LjAwMSAyOTUuNiAzODQuMDAxIDI5NS42QzM4Ny4yMDEgMjk3LjIgNDA0LjQwMSAzMDQuMiA0MDQuNDAxIDMwNC4yQzQwNC44MDEgMzA4LjAwMSA0MDEuODAxIDMxMy4wMDEgNDAxLjgwMSAzMTMuMDAxQzQwMi4yMDEgMzE3LjAwMSA0MDAuMDAxIDMyMC40MDEgNDAwLjAwMSAzMjAuNDAxQzM5OC44MDEgMzI4LjYwMSAzOTguMjAxIDMyOS40MDEgMzk4LjIwMSAzMjkuNDAxQzM5NC4wMDEgMzI5LjYwMSAzODYuNjAxIDM0My40MDEgMzg2LjYwMSAzNDMuNDAxQzM4NC44MDEgMzQ2LjAwMSAzNzQuNjAxIDM1OC4wMDEgMzc0LjYwMSAzNTguMDAxQzM3Mi42MDEgMzY1LjAwMSAzNTQuNjAxIDM1Ny44MDEgMzU0LjYwMSAzNTcuODAxQzM0OC4wMDEgMzYxLjIwMSAzNTAuMDAxIDM1Ny44MDEgMzUwLjAwMSAzNTcuODAxQzM0OS42MDEgMzU1LjYwMSAzNTQuNDAxIDM0OS42MDEgMzU0LjQwMSAzNDkuNjAxQzM2MS40MDEgMzQ3LjAwMSAzNTguODAxIDMzNi4yMDEgMzU4LjgwMSAzMzYuMjAxQzM2Mi44MDEgMzM0LjgwMSAzNTEuNjAxIDMzMi4wMDEgMzUxLjgwMSAzMzAuODAxQzM1Mi4wMDEgMzI5LjYwMSAzNTcuODAxIDMyOC4yMDEgMzU3LjgwMSAzMjguMjAxQzM2NS44MDEgMzI2LjIwMSAzNjEuNDAxIDMyMy44MDEgMzYxLjQwMSAzMjMuODAxQzM2MC44MDEgMzE5LjgwMSAzNjMuODAxIDMxNC4yMDEgMzYzLjgwMSAzMTQuMjAxQzM3NS40MDEgMzEzLjQwMSAzNjMuODAxIDI5Ny4yIDM2My44MDEgMjk3LjJDMzUzLjAwMSAyODkuNiAzNTIuMDAxIDI4My44IDM1Mi4wMDEgMjgzLjhDMzY0LjYwMSAyNzUuNiAzNTYuNDAxIDI2My4yIDM1Ni42MDEgMjU5LjZDMzU2LjgwMSAyNTYgMzU4LjAwMSAyMzQuNCAzNTguMDAxIDIzNC40QzM1Ni4wMDEgMjI4LjIgMzUzLjAwMSAyMTQuNiAzNTMuMDAxIDIxNC42QzM1NS4yMDEgMjA5LjQgMzYyLjYwMSAxOTYuOCAzNjIuNjAxIDE5Ni44QzM2NS40MDEgMTkyLjYgMzc0LjIwMSAxODcuOCAzNzIuMDAxIDE4NC44QzM2OS44MDEgMTgxLjggMzYyLjAwMSAxODMuNiAzNjIuMDAxIDE4My42QzM1NC4yMDEgMTgyLjIgMzU0LjgwMSAxODcuNCAzNTQuODAxIDE4Ny40QzM1My4yMDEgMTg4LjQgMzUyLjQwMSAxOTMuNCAzNTIuNDAxIDE5My40QzM1MS42OCAyMDEuMzMzIDM0Mi44MDEgMjA3LjYgMzQyLjgwMSAyMDcuNkMzMzEuNjAxIDIxMy44IDM0MC44MDEgMjE3LjggMzQwLjgwMSAyMTcuOEMzNDYuODAxIDIyNC40IDMzNy4wMDEgMjI0LjYgMzM3LjAwMSAyMjQuNkMzMjYuMDAxIDIyMi44IDMzNC4yMDEgMjMzIDMzNC4yMDEgMjMzQzM0NS4wMDEgMjQ1LjggMzQyLjAwMSAyNDguNiAzNDIuMDAxIDI0OC42QzMzMS44MDEgMjQ5LjYgMzQ0LjQwMSAyNTguOCAzNDQuNDAxIDI1OC44QzM0NC40MDEgMjU4LjggMzQzLjYwMSAyNTYuOCAzNDMuODAxIDI1OC42QzM0NC4wMDEgMjYwLjQgMzQ3LjAwMSAyNjQuNiAzNDcuODAxIDI2Ni42QzM0OC42MDEgMjY4LjYgMzQ0LjYwMSAyNjguOCAzNDQuNjAxIDI2OC44QzM0NS4yMDEgMjc4LjQgMzI5LjgwMSAyNzQuMiAzMjkuODAxIDI3NC4yQzMyOS44MDEgMjc0LjIgMzI5LjgwMSAyNzQuMiAzMjguMjAxIDI3NC40QzMyNi42MDEgMjc0LjYgMzE1LjQwMSAyNzMuOCAzMDkuNjAxIDI3MS42QzMwMy44MDEgMjY5LjQgMjk3LjAwMSAyNjkuNCAyOTcuMDAxIDI2OS40QzI5Ny4wMDEgMjY5LjQgMjkzLjAwMSAyNzEuMiAyODUuNCAyNzFDMjc3LjggMjcwLjggMjY5LjggMjczLjYgMjY5LjggMjczLjZDMjY1LjQgMjczLjIgMjc0IDI2OC44IDI3NC4yIDI2OUMyNzQuNCAyNjkuMiAyODAgMjYzLjYgMjcyIDI2NC4yQzI1MC4yMDMgMjY1LjgzNSAyMzkuNCAyNTUuNiAyMzkuNCAyNTUuNkMyMzcuNCAyNTQuMiAyMzQuOCAyNTEuNCAyMzQuOCAyNTEuNEMyMjQuOCAyNDkuNCAyMzYuMiAyNjMuOCAyMzYuMiAyNjMuOEMyMzcuNCAyNjUuMiAyMzYgMjY2LjIgMjM2IDI2Ni4yQzIzNS4yIDI2NC42IDIyNy40IDI1OS4yIDIyNy40IDI1OS4yQzIyNC41ODkgMjU4LjIyNyAyMjMuMjI2IDI1Ni44OTMgMjIwLjg5NSAyNTQuNDA3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzRjMDAwMCI+CisgIDxwYXRoIGQ9Ik0xOTcgMjQyLjhDMTk3IDI0Mi44IDIwOC42IDI0OC40IDIxMS4yIDI1MS4yQzIxMy44IDI1NCAyMjcuOCAyNjUuNCAyMjcuOCAyNjUuNEMyMjcuOCAyNjUuNCAyMjIuNCAyNjMuNCAyMTkuOCAyNjEuNkMyMTcuMiAyNTkuOCAyMDYuNCAyNTEuNiAyMDYuNCAyNTEuNkMyMDYuNCAyNTEuNiAyMDIuNiAyNDUuNiAxOTcgMjQyLjh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjOTljYzMyIj4KKyAgPHBhdGggZD0iTTEzOC45OTEgMjExLjYwM0MxMzkuMzI4IDIxMS40NTUgMTM4LjgwNCAyMDguNzQzIDEzOC42IDIwOC4yQzEzNy41NzggMjA1LjQ3NCAxMjguNiAyMDQgMTI4LjYgMjA0QzEyOC4zNzMgMjA1LjM2NSAxMjguMzE4IDIwNi45NjEgMTI4LjQyNCAyMDguNTk5QzEyOC40MjQgMjA4LjU5OSAxMzMuMjkyIDIxNC4xMTggMTM4Ljk5MSAyMTEuNjAzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzY1OTkwMCI+CisgIDxwYXRoIGQ9Ik0xMzguOTkxIDIxMS40MDNDMTM4LjU0MiAyMTEuNTYxIDEzOC45NzYgMjA4LjY2OSAxMzguOCAyMDguMkMxMzcuNzc4IDIwNS40NzQgMTI4LjYgMjAzLjkgMTI4LjYgMjAzLjlDMTI4LjM3MyAyMDUuMjY1IDEyOC4zMTggMjA2Ljg2MSAxMjguNDI0IDIwOC40OTlDMTI4LjQyNCAyMDguNDk5IDEzMi42OTIgMjEzLjYxOCAxMzguOTkxIDIxMS40MDN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEzNC42IDIxMS41NDZDMTMzLjk3NSAyMTEuNTQ2IDEzMy40NjkgMjEwLjQwNiAxMzMuNDY5IDIwOUMxMzMuNDY5IDIwNy41OTUgMTMzLjk3NSAyMDYuNDU1IDEzNC42IDIwNi40NTVDMTM1LjIyNSAyMDYuNDU1IDEzNS43MzIgMjA3LjU5NSAxMzUuNzMyIDIwOUMxMzUuNzMyIDIxMC40MDYgMTM1LjIyNSAyMTEuNTQ2IDEzNC42IDIxMS41NDZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEzNC42IDIwOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNODkgMzA5LjYwMUM4OSAzMDkuNjAxIDgzLjQgMzE5LjYwMSAxMDguMiAzMTMuNjAxQzEwOC4yIDMxMy42MDEgMTIyLjIgMzEyLjQwMSAxMjQuNiAzMTAuMDAxQzEyNS44IDMxMC44MDEgMTM0LjE2NiAzMTMuNzM0IDEzNyAzMTQuNDAxQzE0My44IDMxNi4wMDEgMTUyLjIgMzA2IDE1Mi4yIDMwNkMxNTIuMiAzMDYgMTU2LjggMjk1LjUgMTU5LjYgMjk1LjVDMTYyLjQgMjk1LjUgMTU5LjIgMjk3LjEgMTU5LjIgMjk3LjFDMTU5LjIgMjk3LjEgMTUyLjYgMzA3LjIwMSAxNTMgMzA4LjgwMUMxNTMgMzA4LjgwMSAxNDcuOCAzMjguODAxIDEzMS44IDMyOS42MDFDMTMxLjggMzI5LjYwMSAxMTUuNjUgMzMwLjU1MSAxMTcgMzM2LjQwMUMxMTcgMzM2LjQwMSAxMjUuOCAzMzQuMDAxIDEyOC4yIDMzNi40MDFDMTI4LjIgMzM2LjQwMSAxMzkgMzM2LjAwMSAxMzEgMzQyLjQwMUwxMjQuMiAzNTQuMDAxQzEyNC4yIDM1NC4wMDEgMTI0LjM0IDM1Ny45MTkgMTE0LjIgMzU0LjQwMUMxMDQuNCAzNTEuMDAxIDk0LjEgMzM4LjEwMSA5NC4xIDMzOC4xMDFDOTQuMSAzMzguMTAxIDc4LjE1IDMyMy41NTEgODkgMzA5LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNlNTk5OTkiPgorICA8cGF0aCBkPSJNODcuOCAzMTMuNjAxQzg3LjggMzEzLjYwMSA4NS44IDMyMy4yMDEgMTIyLjYgMzEyLjgwMUMxMjIuNiAzMTIuODAxIDEyNyAzMTIuODAxIDEyOS40IDMxMy42MDFDMTMxLjggMzE0LjQwMSAxNDMuOCAzMTcuMjAxIDE0NS44IDMxNi4wMDFDMTQ1LjggMzE2LjAwMSAxMzguNiAzMjkuNjAxIDEyNyAzMjguMDAxQzEyNyAzMjguMDAxIDExMy44IDMyOS42MDEgMTE0LjIgMzM0LjQwMUMxMTQuMiAzMzQuNDAxIDExOC4yIDM0MS42MDEgMTIzIDM0NC4wMDFDMTIzIDM0NC4wMDEgMTI1LjggMzQ2LjQwMSAxMjUuNCAzNDkuNjAxQzEyNSAzNTIuODAxIDEyMi4yIDM1NC40MDEgMTIwLjIgMzU1LjIwMUMxMTguMiAzNTYuMDAxIDExNSAzNTIuODAxIDExMy40IDM1Mi44MDFDMTExLjggMzUyLjgwMSAxMDMuNCAzNDYuNDAxIDk5IDM0MS42MDFDOTQuNiAzMzYuODAxIDg2LjIgMzI0LjgwMSA4Ni42IDMyMi4wMDFDODcgMzE5LjIwMSA4Ny44IDMxMy42MDEgODcuOCAzMTMuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2IyNjU2NSI+CisgIDxwYXRoIGQ9Ik05MSAzMzEuMDUxQzkzLjYgMzM1LjAwMSA5Ni44IDMzOS4yMDEgOTkgMzQxLjYwMUMxMDMuNCAzNDYuNDAxIDExMS44IDM1Mi44MDEgMTEzLjQgMzUyLjgwMUMxMTUgMzUyLjgwMSAxMTguMiAzNTYuMDAxIDEyMC4yIDM1NS4yMDFDMTIyLjIgMzU0LjQwMSAxMjUgMzUyLjgwMSAxMjUuNCAzNDkuNjAxQzEyNS44IDM0Ni40MDEgMTIzIDM0NC4wMDEgMTIzIDM0NC4wMDFDMTE5LjkzNCAzNDIuNDY4IDExNy4xOTQgMzM4Ljk3NiAxMTUuNjE1IDMzNi42NTNDMTE1LjYxNSAzMzYuNjUzIDExNS44IDMzOS4yMDEgMTEwLjYgMzM4LjQwMUMxMDUuNCAzMzcuNjAxIDEwMC4yIDMzNC44MDEgOTguNiAzMzEuNjAxQzk3IDMyOC40MDEgOTQuNiAzMjYuMDAxIDk2LjIgMzI5LjYwMUM5Ny44IDMzMy4yMDEgMTAwLjIgMzM2LjgwMSAxMDEuOCAzMzcuMjAxQzEwMy40IDMzNy42MDEgMTAzIDMzOC44MDEgMTAwLjYgMzM4LjQwMUM5OC4yIDMzOC4wMDEgOTUuNCAzMzcuNjAxIDkxIDMzMi40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjOTkyNjAwIj4KKyAgPHBhdGggZD0iTTg4LjQgMzEwLjAwMUM4OC40IDMxMC4wMDEgOTAuMiAyOTYuNCA5MS40IDI5Mi40QzkxLjQgMjkyLjQgOTAuNiAyODUuNiA5MyAyODEuNEM5NS40IDI3Ny4yIDk3LjQgMjcxIDEwMC40IDI2NS42QzEwMy40IDI2MC4yIDEwMy42IDI1Ni4yIDEwNy42IDI1NC42QzExMS42IDI1MyAxMTcuNiAyNDQuNCAxMjAuNCAyNDMuNEMxMjMuMiAyNDIuNCAxMjMgMjQzLjIgMTIzIDI0My4yQzEyMyAyNDMuMiAxMjkuOCAyMjguNCAxNDMuNCAyMzIuNEMxNDMuNCAyMzIuNCAxMjcuMiAyMjkuNiAxNDMgMjIwLjJDMTQzIDIyMC4yIDEzOC4yIDIyMS4zIDE0MS41IDIxNC4zQzE0My43MDEgMjA5LjYzMiAxNDMuMiAyMTYuNCAxMzIuMiAyMjguMkMxMzIuMiAyMjguMiAxMjcuMiAyMzYuOCAxMjIgMjM5LjhDMTE2LjggMjQyLjggMTA0LjggMjQ5LjggMTAzLjYgMjUzLjZDMTAyLjQgMjU3LjQgOTkuMiAyNjMuMiA5Ny4yIDI2NC44Qzk1LjIgMjY2LjQgOTIuNCAyNzAuNiA5MiAyNzRDOTIgMjc0IDkwLjggMjc4IDg5LjQgMjc5LjJDODggMjgwLjQgODcuOCAyODMuNiA4Ny44IDI4NS42Qzg3LjggMjg3LjYgODUuOCAyOTAuNCA4NiAyOTIuOEM4NiAyOTIuOCA4Ni44IDMxMS44MDEgODYuNCAzMTMuODAxTDg4LjQgMzEwLjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNNzkuOCAzMTQuNjAxQzc5LjggMzE0LjYwMSA3Ny44IDMxMy4yMDEgNzMuNCAzMTkuMjAxQzczLjQgMzE5LjIwMSA4MC43IDM1Mi4yMDEgODAuNyAzNTMuNjAxQzgwLjcgMzUzLjYwMSA4MS44IDM1MS41MDEgODAuNSAzNDQuMzAxQzc5LjIgMzM3LjEwMSA3OC4zIDMyNC40MDEgNzguMyAzMjQuNDAxTDc5LjggMzE0LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICM5OTI2MDAiPgorICA8cGF0aCBkPSJNMTAxLjQgMjU0QzEwMS40IDI1NCA4My44IDI1Ny4yIDg0LjIgMjg2LjRMODMuNCAzMTEuMjAxQzgzLjQgMzExLjIwMSA4Mi4yIDI4NS42IDgxIDI4NEM3OS44IDI4Mi40IDgzLjggMjcxLjIgODAuNiAyNzcuMkM4MC42IDI3Ny4yIDY2LjYgMjkxLjIgNzQuNiAzMTIuNDAxQzc0LjYgMzEyLjQwMSA3Ni4xIDMxNS43MDEgNzMuMSAzMTEuMTAxQzczLjEgMzExLjEwMSA2OC41IDI5OC41IDY5LjYgMjkyLjFDNjkuNiAyOTIuMSA2OS44IDI4OS45IDcxLjcgMjg3LjFDNzEuNyAyODcuMSA4MC4zIDI3NS40IDgzIDI3My4xQzgzIDI3My4xIDg0LjggMjU4LjcgMTAwLjIgMjUzLjVDMTAwLjIgMjUzLjUgMTA1LjkgMjUxLjIgMTAxLjQgMjU0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNDAuOCAxODcuOEMyNDEuNDYgMTg3LjQ0NiAyNDEuNDUxIDE4Ni40NzYgMjQyLjAzMSAxODYuMzAzQzI0My4xOCAxODUuOTU5IDI0My4zNDQgMTg0Ljg5MiAyNDMuODYyIDE4NC4xMDhDMjQ0LjczNSAxODIuNzg5IDI0NC45MjggMTgxLjI1NiAyNDUuNTEgMTc5Ljc2NUMyNDUuNzgyIDE3OS4wNjUgMjQ1LjgwOSAxNzguMTEgMjQ1LjQ5NiAxNzcuNDVDMjQ0LjMyMiAxNzQuOTY5IDI0My42MiAxNzIuNTIgMjQyLjE3OCAxNzAuMDk0QzI0MS45MSAxNjkuNjQ0IDI0MS42NDggMTY4Ljg1IDI0MS40NDcgMTY4LjI1MkMyNDAuOTg0IDE2Ni44NjggMjM5LjcyNyAxNjUuODc3IDIzOC44NjcgMTY0LjU1N0MyMzguNTc5IDE2NC4xMTYgMjM5LjEwNCAxNjMuMTkxIDIzOC4zODggMTYzLjEwN0MyMzcuNDkxIDE2My4wMDIgMjM2LjA0MiAxNjIuNDIyIDIzNS44MDkgMTYzLjQ0OEMyMzUuMjIxIDE2Ni4wMzUgMjM2LjIzMiAxNjguNTU4IDIzNy4yIDE3MUMyMzYuNDE4IDE3MS42OTIgMjM2Ljc1MiAxNzIuNjEzIDIzNi45MDQgMTczLjM4QzIzNy42MTQgMTc2Ljk4NiAyMzYuNDE2IDE4MC4zMzggMjM1LjY1NSAxODMuODEyQzIzNS42MzIgMTgzLjkxNiAyMzUuOTc0IDE4NC4xMTQgMjM1Ljk0NiAxODQuMTc2QzIzNC43MjQgMTg2Ljg2MiAyMzMuMjcyIDE4OS4zMDcgMjMxLjQ1MyAxOTEuNjg4QzIzMC42OTUgMTkyLjY4IDIyOS44MjMgMTkzLjU5NiAyMjkuMzI2IDE5NC42NTlDMjI4Ljk1OCAxOTUuNDQ2IDIyOC41NSAxOTYuNDEyIDIyOC44IDE5Ny40QzIyNS4zNjUgMjAwLjE4IDIyMy4xMTUgMjA0LjAyNSAyMjAuNTA0IDIwNy44NzFDMjIwLjA0MiAyMDguNTUxIDIyMC4zMzMgMjA5Ljc2IDIyMC44ODQgMjEwLjAyOUMyMjEuNjk3IDIxMC40MjcgMjIyLjY1MyAyMDkuNDAzIDIyMy4xMjMgMjA4LjU1N0MyMjMuNTEyIDIwNy44NTkgMjIzLjg2NSAyMDcuMjA5IDIyNC4zNTYgMjA2LjU2NkMyMjQuNDg5IDIwNi4zOTEgMjI0LjMxIDIwNS45NzIgMjI0LjQ0NSAyMDUuODUxQzIyNy4wNzggMjAzLjUwNCAyMjguNzQ3IDIwMC41NjggMjMxLjIgMTk4LjJDMjMzLjE1IDE5Ny44NzEgMjM0LjY4NyAxOTYuODczIDIzNi40MzUgMTk1Ljg2QzIzNi43NDMgMTk1LjY4MSAyMzcuMjY3IDE5NS45MyAyMzcuNTU3IDE5NS43MzVDMjM5LjMxIDE5NC41NTggMjM5LjMwOCAxOTIuNTIyIDIzOS40MTQgMTkwLjYxMkMyMzkuNDY0IDE4OS43MjggMjM5LjY2IDE4OC40MTEgMjQwLjggMTg3Ljh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIzMS45NTkgMTgzLjMzNEMyMzIuMDgzIDE4My4yNTcgMjMxLjkyOCAxODIuODM0IDIzMi4wMzcgMTgyLjYxOEMyMzIuMTk5IDE4Mi4yOTQgMjMyLjYwMiAxODIuMTA2IDIzMi43NjQgMTgxLjc4MkMyMzIuODczIDE4MS41NjYgMjMyLjcxIDE4MS4xODYgMjMyLjg0NiAxODEuMDQ0QzIzNS4xNzkgMTc4LjU5NyAyMzUuNDM2IDE3NS41NzMgMjM0LjQgMTcyLjZDMjM1LjQyNCAxNzEuOTggMjM1LjQ4NSAxNzAuNzE4IDIzNS4wNiAxNjkuODcxQzIzNC4yMDcgMTY4LjE3MSAyMzQuMDE0IDE2Ni4yNDUgMjMzLjAzOSAxNjQuNzAyQzIzMi4yMzcgMTYzLjQzMyAyMzAuNjU5IDE2Mi4xODkgMjI5LjI4OCAxNjMuNDkyQzIyOC44NjcgMTYzLjg5MiAyMjguNTQ2IDE2NC42NzkgMjI4LjgyNCAxNjUuMzkxQzIyOC44ODggMTY1LjU1NCAyMjkuMTczIDE2NS43IDIyOS4xNDYgMTY1Ljc4MkMyMjkuMDM5IDE2Ni4xMDYgMjI4LjQ5MyAxNjYuMzMgMjI4LjQ4NyAxNjYuNjAyQzIyOC40NTcgMTY4LjA5OCAyMjcuNTAzIDE2OS42MDkgMjI4LjEzMyAxNzAuOTM4QzIyOC45MDUgMTcyLjU2NyAyMjkuNzI0IDE3NC40MjQgMjMwLjQgMTc2LjJDMjI5LjE2NiAxNzguMzE2IDIzMC4xOTkgMTgwLjc2NSAyMjguNDQ2IDE4Mi42NDJDMjI4LjMxIDE4Mi43ODggMjI4LjMxOSAxODMuMTc0IDIyOC40NDEgMTgzLjM3NkMyMjguNzMzIDE4My44NjIgMjI5LjEzOSAxODQuMjY4IDIyOS42MjUgMTg0LjU2QzIyOS44MjcgMTg0LjY4MSAyMzAuMTc1IDE4NC42ODMgMjMwLjM3NSAxODQuNTU5QzIzMC45NTMgMTg0LjE5NyAyMzEuMzUxIDE4My43MSAyMzEuOTU5IDE4My4zMzR6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTI5NC43NzEgMTczLjAyM0MyOTYuMTYgMTc0LjgxNSAyOTYuNDUgMTc3LjYxIDI5NC40MDEgMTc5QzI5NC45NTEgMTgyLjMwOSAyOTguMzAyIDE4MC4zMyAzMDAuNDAxIDE3OS44QzMwMC4yOTIgMTc5LjQxMiAzMDAuNTE5IDE3OS4wNjggMzAwLjgwMiAxNzkuMDYzQzMwMS44NTkgMTc5LjA0OCAzMDIuNTM5IDE3OC4wMTYgMzAzLjYwMSAxNzguMkMzMDQuMDM1IDE3Ni42NDMgMzA1LjY3MyAxNzUuOTQxIDMwNi4zMTcgMTc0LjU2MUMzMDguMDQzIDE3MC44NjYgMzA3LjQ1MiAxNjYuNTkzIDMwNC44NjggMTYzLjM0N0MzMDQuNjY2IDE2My4wOTMgMzA0Ljg4MyAxNjIuNTc2IDMwNC43NTkgMTYyLjIxNEMzMDQuMDAzIDE2MC4wMDMgMzAxLjkzNSAxNTkuNjg4IDMwMC4wMDEgMTU5QzI5OC44MjQgMTU1LjEyNSAyOTguMTYzIDE1MS4wOTQgMjk2LjQwMSAxNDcuNEMyOTQuNzg3IDE0Ny4xNSAyOTQuMDg5IDE0NS40MTEgMjkyLjc1MiAxNDQuNjkxQzI5MS40MTkgMTQzLjk3MiAyOTAuODUxIDE0NS41NTEgMjkwLjg5MiAxNDYuNTk3QzI5MC44OTkgMTQ2LjgwMiAyOTEuMzUxIDE0Ny4wMjYgMjkxLjE4MSAxNDcuMzkxQzI5MS4xMDUgMTQ3LjU1NSAyOTAuODQ1IDE0Ny42NjYgMjkwLjg0NSAxNDcuOEMyOTAuODQ2IDE0Ny45MzUgMjkxLjA2NyAxNDguMDY2IDI5MS4yMDEgMTQ4LjJDMjkwLjI4MyAxNDkuMDIgMjg4Ljg2IDE0OS40OTcgMjg4LjU2NSAxNTAuNjQyQzI4Ny42MTEgMTU0LjM1MiAyOTAuMTg0IDE1Ny40NzcgMjkxLjg1MiAxNjAuNjc4QzI5Mi40NDMgMTYxLjgxMyAyOTEuNzA3IDE2My4wODQgMjkwLjk0NyAxNjQuMjkyQzI5MC41MDkgMTY0Ljk4NyAyOTAuNjE3IDE2Ni4xMTQgMjkwLjg5MyAxNjYuOTdDMjkxLjY0NSAxNjkuMzAxIDI5My4yMzYgMTcxLjA0IDI5NC43NzEgMTczLjAyM3oiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjU3LjYxMSAxOTEuNDA5QzI1Ni4xMjQgMTkzLjI2IDI1Mi43MTIgMTk1LjgyOSAyNTUuNjI5IDE5Ny43NTdDMjU1LjgyMyAxOTcuODg2IDI1Ni4xOTMgMTk3Ljg5IDI1Ni4zNjYgMTk3Ljc1NkMyNTguMzg3IDE5Ni4xOTEgMjYwLjM5IDE5NS4yODggMjYyLjgyNiAxOTQuNzA2QzI2Mi45NSAxOTQuNjc3IDI2My4yMjQgMTk1LjE0NCAyNjMuNTkzIDE5NC45ODNDMjY1LjIwNiAxOTQuMjggMjY3LjIxNiAxOTQuMzM4IDI2OC40IDE5M0MyNzIuMTY3IDE5My4yMjQgMjc1LjczMiAxOTIuMTA4IDI3OS4xMjMgMTkwLjhDMjgwLjI4NCAxOTAuMzUyIDI4MS41NTQgMTg5Ljc5MyAyODIuNzU1IDE4OS4yOTFDMjg0LjEzMSAxODguNzE1IDI4NS4zMzUgMTg3Ljc4NyAyODYuNDQ3IDE4Ni42NDZDMjg2LjU4IDE4Ni41MSAyODYuOTM0IDE4Ni42IDI4Ny4yMDEgMTg2LjZDMjg3LjE2MSAxODUuNzM3IDI4OC4xMjMgMTg1LjYxIDI4OC4zNyAxODQuOTg4QzI4OC40NjIgMTg0Ljc1NiAyODguMzEyIDE4NC4zNiAyODguNDQ1IDE4NC4yNThDMjkwLjU4MyAxODIuNjI4IDI5MS41MDMgMTgwLjYxIDI5MC4zMzQgMTc4LjIzM0MyOTAuMDQ5IDE3Ny42NTUgMjg5LjggMTc3LjAzNyAyODkuMjM0IDE3Ni41NjFDMjg4LjE0OSAxNzUuNjUgMjg3LjA0NyAxNzYuNTA0IDI4NiAxNzYuMkMyODUuODQxIDE3Ni44MjggMjg1LjExMiAxNzYuNjU2IDI4NC43MjYgMTc2Ljg1NEMyODMuODY3IDE3Ny4yOTMgMjgyLjUzNCAxNzYuNzA4IDI4MS42NzUgMTc3LjE0NkMyODAuMzEzIDE3Ny44NDEgMjc5LjA3MiAxNzguMDEgMjc3LjY1IDE3OC4zODdDMjc3LjMzOCAxNzguNDY5IDI3Ni41NiAxNzguMzczIDI3Ni40IDE3OUMyNzYuMjY2IDE3OC44NjYgMjc2LjExOCAxNzguNjMyIDI3Ni4wMTIgMTc4LjY1NEMyNzQuMTA0IDE3OS4wNSAyNzIuODQ0IDE3OS4yNjQgMjcxLjU0MyAxODAuOTU2QzI3MS40NCAxODEuMDg5IDI3MC45OTggMTgwLjkxIDI3MC44MzkgMTgxLjA0NUMyNjkuODgyIDE4MS44NTMgMjY5LjQ3NyAxODMuMDg3IDI2OC4zNzYgMTgzLjc1OUMyNjguMTc1IDE4My44ODIgMjY3LjgyMyAxODMuNzE0IDI2Ny42MjkgMTgzLjg0M0MyNjYuOTgzIDE4NC4yNzQgMjY2LjYxNiAxODQuOTE1IDI2NS45NzQgMTg1LjM2MkMyNjUuNjQ1IDE4NS41OTEgMjY1LjI0NSAxODUuMjY2IDI2NS4yNzcgMTg1LjAxQzI2NS41MjIgMTgzLjA2MyAyNjYuMTc1IDE4MS4yNzYgMjY1LjYgMTc5LjRDMjY3LjY3NyAxNzYuODggMjcwLjE5NCAxNzQuOTMxIDI3MiAxNzIuMkMyNzIuMDE1IDE3MC4wMzQgMjcyLjcwNyAxNjcuODg4IDI3Mi41OTQgMTY1LjgxMUMyNzIuNTg0IDE2NS42MTggMjcyLjI5NiAxNjQuODg1IDI3Mi4xNyAxNjQuNTM4QzI3MS44NTggMTYzLjY4NCAyNzIuNzY0IDE2Mi42MTggMjcxLjkyIDE2MS44OTRDMjcwLjUxNiAxNjAuNjkxIDI2OS4yMjQgMTYxLjU2NyAyNjguNCAxNjNDMjY2LjU2MiAxNjMuMzkgMjY0LjQ5NiAxNjQuMDgzIDI2Mi45MTggMTYyLjg0OUMyNjEuOTExIDE2Mi4wNjIgMjYxLjMzMyAxNjEuMTU2IDI2MC41MzQgMTYwLjFDMjU5LjU0OSAxNTguNzk4IDI1OS44ODQgMTU3LjM2MiAyNTkuOTU0IDE1NS43OThDMjU5Ljk2IDE1NS42NyAyNTkuNjQ1IDE1NS41MzQgMjU5LjY0NSAxNTUuNEMyNTkuNjQ2IDE1NS4yNjUgMjU5Ljg2NiAxNTUuMTM0IDI2MCAxNTVDMjU5LjI5NCAxNTQuMzc0IDI1OS4wMTkgMTUzLjMxNiAyNTggMTUzQzI1OC4zMDUgMTUxLjkwOCAyNTcuNjI5IDE1MS4wMjQgMjU2Ljc1OCAxNTAuNzIyQzI1NC43NjMgMTUwLjAzMSAyNTMuMDg2IDE1MS45NDMgMjUxLjE5NCAxNTIuMDE2QzI1MC42OCAxNTIuMDM1IDI1MC4yMTMgMTUwLjk5NyAyNDkuNTY0IDE1MC42NzJDMjQ5LjEzMiAxNTAuNDU2IDI0OC40MjggMTUwLjQyMyAyNDguMDY2IDE1MC42ODlDMjQ3LjM3OCAxNTEuMTkzIDI0Ni43ODkgMTUxLjMwNyAyNDYuMDMxIDE1MS41MTJDMjQ0LjQxNCAxNTEuOTQ4IDI0My4xMzYgMTUzLjA0MiAyNDEuNjU2IDE1My44OTdDMjQwLjE3MSAxNTQuNzU0IDIzOS4yMTYgMTU2LjE5MSAyMzguMTM2IDE1Ny41MTFDMjM3LjE5NSAxNTguNjYzIDIzNy4wNTkgMTYxLjA3NyAyMzguNDc5IDE2MS41NzdDMjQwLjMyMiAxNjIuMjI3IDI0MS42MjYgMTU5LjUyNCAyNDMuNTkyIDE1OS44NUMyNDMuOTA0IDE1OS45MDEgMjQ0LjExIDE2MC4yMTIgMjQ0IDE2MC42QzI0NC4zODkgMTYwLjcwOSAyNDQuNjA3IDE2MC40OCAyNDQuOCAxNjAuMkMyNDUuNjU4IDE2MS4yMTkgMjQ2LjgyMiAxNjEuNTU2IDI0Ny43NiAxNjIuNDI5QzI0OC43MyAxNjMuMzMzIDI1MC40NzYgMTYyLjkxNSAyNTEuNDkxIDE2My45MTJDMjUzLjAyIDE2NS40MTQgMjUyLjQ2MSAxNjguMDk1IDI1NC40IDE2OS40QzI1My44MTQgMTcwLjcxMyAyNTMuMjA3IDE3MS45OSAyNTIuODcyIDE3My40MTdDMjUyLjU5IDE3NC42MjMgMjUzLjU4NCAxNzUuODIgMjU0Ljc5NSAxNzUuNzI5QzI1Ni4wNTMgMTc1LjYzNSAyNTYuMzE1IDE3NC44NzYgMjU2LjggMTczLjhDMjU3LjA2NyAxNzQuMDY3IDI1Ny41MzYgMTc0LjM2NCAyNTcuNDk1IDE3NC41OEMyNTcuMDM4IDE3Ni45NjcgMjU2LjAxMSAxNzguOTYgMjU1LjU1MyAxODEuMzkxQzI1NS40OTQgMTgxLjcwOCAyNTUuMTg5IDE4MS45MSAyNTQuOCAxODEuOEMyNTQuMzMyIDE4NS45NDkgMjUwLjI4IDE4OC4zNDMgMjQ3LjczNSAxOTEuNTA4QzI0Ny4zMzIgMTkyLjAxIDI0Ny4zMjggMTkzLjI1OSAyNDcuNzM3IDE5My42NjJDMjQ5LjE0IDE5NS4wNDkgMjUxLjEgMTkzLjUwMyAyNTIuOCAxOTNDMjUzLjAxMyAxOTEuNzk0IDI1My44NzIgMTkwLjg1MiAyNTUuMjA0IDE5MC45MDhDMjU1LjQ2IDE5MC45MTggMjU1LjY5NSAxOTAuMzc2IDI1Ni4wMTkgMTkwLjI0NkMyNTYuMzY3IDE5MC4xMDggMjU2Ljg2OSAxOTAuMzMyIDI1Ny4xNTUgMTkwLjEzNEMyNTguODg0IDE4OC45MzkgMjYwLjI5MiAxODcuODMzIDI2Mi4wMyAxODYuNjQ0QzI2Mi4yMjIgMTg2LjUxMyAyNjIuNTY2IDE4Ni42NzIgMjYyLjc4MiAxODYuNTY0QzI2My4xMDcgMTg2LjQwMiAyNjMuMjk0IDE4Ni4wMTUgMjYzLjYxNyAxODUuODNDMjYzLjk2NSAxODUuNjMgMjY0LjIwNyAxODUuOTIgMjY0LjQgMTg2LjJDMjYzLjc1NCAxODYuNTQ5IDI2My43NSAxODcuNTA2IDI2My4xNjggMTg3LjcwOEMyNjIuMzkzIDE4Ny45NzYgMjYxLjgzMiAxODguNDg5IDI2MS4xNTggMTg4LjkzNkMyNjAuODY2IDE4OS4xMjkgMjYwLjIwNyAxODguODgxIDI2MC4xMDMgMTg5LjA2QzI1OS41MDUgMTkwLjA4OCAyNTguMzIxIDE5MC41MjYgMjU3LjYxMSAxOTEuNDA5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMDIuMiAxNDJDMjAyLjIgMTQyIDE5Mi45NjIgMTM5LjEyOCAxODEuOCAxNjQuOEMxODEuOCAxNjQuOCAxNzkuNCAxNzAgMTc3IDE3MkMxNzQuNiAxNzQgMTYzLjQgMTc3LjYgMTYxLjQgMTgxLjZMMTUxIDE5Ny42QzE1MSAxOTcuNiAxNjUuOCAxODEuNiAxNjkgMTc5LjJDMTY5IDE3OS4yIDE3NyAxNzAuOCAxNzMuOCAxNzcuNkMxNzMuOCAxNzcuNiAxNTkuOCAxODguNCAxNjEgMTk3LjZDMTYxIDE5Ny42IDE1NS40IDIxMiAxNTQuNiAyMTRDMTU0LjYgMjE0IDE3MC42IDE4MiAxNzMgMTgwLjhDMTc1LjQgMTc5LjYgMTc2LjYgMTc5LjYgMTc1LjQgMTgzLjJDMTc0LjIgMTg2LjggMTczLjggMjAzLjIgMTcxIDIwNS4yQzE3MSAyMDUuMiAxNzkgMTg0LjggMTc4LjIgMTgxLjZDMTc4LjIgMTgxLjYgMTgxLjQgMTc4IDE4My44IDE4My4yTDE4Mi42IDE5OS4yTDE4NyAyMTEuMkMxODcgMjExLjIgMTg0LjYgMjAwIDE4Ni4yIDE4NC40QzE4Ni4yIDE4NC40IDE4NC4yIDE3NCAxODguMiAxNzkuNkMxOTIuMiAxODUuMiAyMDEuOCAxOTEuMiAyMDEuOCAxOTZDMjAxLjggMTk2IDE5Ni42IDE3OC40IDE4Ny40IDE3My42TDE4My40IDE3OS42TDE4Mi4yIDE3Ny42QzE4Mi4yIDE3Ny42IDE3OC42IDE3Ni44IDE4MyAxNzBDMTg3LjQgMTYzLjIgMTg3IDE2Mi40IDE4NyAxNjIuNEMxODcgMTYyLjQgMTkzLjQgMTY5LjYgMTk1IDE2OS42QzE5NSAxNjkuNiAyMDguMiAxNjIgMjA5LjQgMTg2LjRDMjA5LjQgMTg2LjQgMjE2LjIgMTcyIDIwNyAxNjUuMkMyMDcgMTY1LjIgMTkyLjIgMTYzLjIgMTkzLjQgMTU4TDIwMC42IDE0NS42QzIwNC4yIDE0MC40IDIwMi42IDE0My4yIDIwMi42IDE0My4yeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xODIuMiAxNTguNEMxODIuMiAxNTguNCAxNjkuNCAxNTguNCAxNjYuMiAxNjMuNkwxNTkgMTczLjJDMTU5IDE3My4yIDE3Ni4yIDE2My4yIDE4MC4yIDE2MkMxODQuMiAxNjAuOCAxODIuMiAxNTguNCAxODIuMiAxNTguNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTQyLjIgMTY0LjhDMTQyLjIgMTY0LjggMTQwLjIgMTY2IDEzOS44IDE2OC44QzEzOS40IDE3MS42IDEzNyAxNzIgMTM3LjggMTc0LjhDMTM4LjYgMTc3LjYgMTQwLjYgMTgwIDE0MC42IDE3NkMxNDAuNiAxNzIgMTQyLjIgMTcwIDE0MyAxNjguOEMxNDMuOCAxNjcuNiAxNDUuNCAxNjMuMiAxNDIuMiAxNjQuOHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTMzLjQgMjI2QzEzMy40IDIyNiAxMjUgMjIyIDEyMS44IDIxOC40QzExOC42IDIxNC44IDExOS4wNTIgMjE5Ljk2NiAxMTQuMiAyMTkuNkMxMDguMzUzIDIxOS4xNTkgMTA5LjQgMjAzLjIgMTA5LjQgMjAzLjJMMTA1LjQgMjEwLjhDMTA1LjQgMjEwLjggMTA0LjIgMjI1LjIgMTEyLjIgMjIyLjhDMTE2LjEwNyAyMjEuNjI4IDExNy40IDIyMy4yIDExNS44IDIyNEMxMTQuMiAyMjQuOCAxMjEuNCAyMjUuMiAxMTguNiAyMjYuOEMxMTUuOCAyMjguNCAxMzAuMiAyMjMuMiAxMjcuOCAyMzMuNkwxMzMuNCAyMjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEyMC44IDI0MC40QzEyMC44IDI0MC40IDEwNS40IDI0NC44IDEwMS44IDIzNS4yQzEwMS44IDIzNS4yIDk3IDIzNy42IDk5LjIgMjQwLjZDMTAxLjQgMjQzLjYgMTAyLjYgMjQ0IDEwMi42IDI0NEMxMDIuNiAyNDQgMTA4IDI0NS4yIDEwNy40IDI0NkMxMDYuOCAyNDYuOCAxMDQuNCAyNTAuMiAxMDQuNCAyNTAuMkMxMDQuNCAyNTAuMiAxMTQuNiAyNDQuMiAxMjAuOCAyNDAuNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMzQ5LjIwMSAzMTguNjAxQzM0OC43NzQgMzIwLjczNSAzNDcuMTAzIDMyMS41MzYgMzQ1LjIwMSAzMjIuMjAxQzM0My4yODQgMzIxLjI0MyAzNDAuNjg2IDMxOC4xMzcgMzM4LjgwMSAzMjAuMjAxQzMzOC4zMjcgMzE5LjcyMSAzMzcuNTQ4IDMxOS42NjEgMzM3LjIwNCAzMTguOTk5QzMzNi43MzkgMzE4LjEwMSAzMzcuMDExIDMxNy4wNTUgMzM2LjY2OSAzMTYuMjU3QzMzNi4xMjQgMzE0Ljk4NSAzMzUuNDE1IDMxMy42MTkgMzM1LjYwMSAzMTIuMjAxQzMzNy40MDcgMzExLjQ4OSAzMzguMDAyIDMwOS41ODMgMzM3LjUyOCAzMDcuODJDMzM3LjQ1OSAzMDcuNTYzIDMzNy4wMyAzMDcuMzY2IDMzNy4yMyAzMDcuMDE3QzMzNy40MTYgMzA2LjY5NCAzMzcuNzM0IDMwNi40NjcgMzM4LjAwMSAzMDYuMkMzMzcuODY2IDMwNi4zMzUgMzM3LjcyMSAzMDYuNTY4IDMzNy42MSAzMDYuNTQ4QzMzNyAzMDYuNDQyIDMzNy4xMjQgMzA1LjgwNSAzMzcuMjU0IDMwNS40MThDMzM3LjgzOSAzMDMuNjcyIDMzOS44NTMgMzAzLjQwOCAzNDEuMjAxIDMwNC42QzM0MS40NTcgMzA0LjAzNSAzNDEuOTY2IDMwNC4yMjkgMzQyLjQwMSAzMDQuMkMzNDIuMzUxIDMwMy42MjEgMzQyLjc1OSAzMDMuMDk0IDM0Mi45NTcgMzAyLjY3NEMzNDMuNDc1IDMwMS41NzYgMzQ1LjEwNCAzMDIuNjgyIDM0NS45MDEgMzAyLjA3QzM0Ni45NzcgMzAxLjI0NSAzNDguMDQgMzAwLjU0NiAzNDkuMTE4IDMwMS4xNDlDMzUwLjkyNyAzMDIuMTYyIDM1Mi42MzYgMzAzLjM3NCAzNTMuODM1IDMwNS4xMTVDMzU0LjQxIDMwNS45NDkgMzU0LjY1IDMwNy4yMyAzNTQuNTkyIDMwOC4xODhDMzU0LjU1NCAzMDguODM1IDM1My4xNzMgMzA4LjQ4MyAzNTIuODMgMzA5LjQxMkMzNTIuMTg1IDMxMS4xNiAzNTQuMDE2IDMxMS42NzkgMzU0Ljc3MiAzMTMuMDE3QzM1NC45NyAzMTMuMzY2IDM1NC43MDYgMzEzLjY3IDM1NC4zOTEgMzEzLjc2OEMzNTMuOTggMzEzLjg5NiAzNTMuMTk2IDMxMy43MDcgMzUzLjMzNCAzMTQuMTZDMzU0LjMwNiAzMTcuMzUzIDM1MS41NSAzMTguMDMxIDM0OS4yMDEgMzE4LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmYiPgorICA8cGF0aCBkPSJNMzM5LjYgMzM4LjIwMUMzMzkuNTkzIDMzNi40NjMgMzM3Ljk5MiAzMzQuNzA3IDMzOS4yMDEgMzMzLjAwMUMzMzkuMzM2IDMzMy4xMzUgMzM5LjQ2NyAzMzMuMzU2IDMzOS42MDEgMzMzLjM1NkMzMzkuNzM2IDMzMy4zNTYgMzM5Ljg2NyAzMzMuMTM1IDM0MC4wMDEgMzMzLjAwMUMzNDEuNDk2IDMzNS4yMTcgMzQ1LjE0OCAzMzYuMTQ1IDM0NS4wMDYgMzM4Ljk5MUMzNDQuOTg0IDMzOS40MzggMzQzLjg5NyAzNDAuMzU2IDM0NC44MDEgMzQxLjAwMUMzNDIuOTg4IDM0Mi4zNDkgMzQyLjkzMyAzNDQuNzE5IDM0Mi4wMDEgMzQ2LjYwMUMzNDAuNzYzIDM0Ni4zMTUgMzM5LjU1MSAzNDUuOTUyIDMzOC40MDEgMzQ1LjQwMUMzMzguNzUzIDM0My45MTUgMzM4LjYzNiAzNDIuMjMxIDMzOS40NTYgMzQwLjkxMUMzMzkuODkgMzQwLjIxMyAzMzkuNjAzIDMzOS4xMzQgMzM5LjYgMzM4LjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTczLjQgMzI5LjIwMUMxNzMuNCAzMjkuMjAxIDE1Ni41NDIgMzM5LjMzNyAxNzAuNiAzMjQuMDAxQzE3OS40IDMxNC40MDEgMTg5LjQgMzA4LjgwMSAxODkuNCAzMDguODAxQzE4OS40IDMwOC44MDEgMTk5LjggMzA0LjQgMjAzLjQgMzAzLjJDMjA3IDMwMiAyMjIuMiAyOTYuOCAyMjUuNCAyOTYuNEMyMjguNiAyOTYgMjM4LjIgMjkyIDI0NSAyOTZDMjUxLjggMzAwIDI1OS44IDMwNC40IDI1OS44IDMwNC40QzI1OS44IDMwNC40IDI0My40IDI5NiAyMzkuOCAyOTguNEMyMzYuMiAzMDAuOCAyMjkgMzAwLjQgMjIzIDMwMy42QzIyMyAzMDMuNiAyMDguMiAzMDguMDAxIDIwNSAzMTAuMDAxQzIwMS44IDMxMi4wMDEgMTkxLjQgMzIzLjYwMSAxODkuOCAzMjIuODAxQzE4OC4yIDMyMi4wMDEgMTkwLjIgMzIxLjYwMSAxOTEuNCAzMTguODAxQzE5Mi42IDMxNi4wMDEgMTkwLjYgMzE0LjQwMSAxODIuNiAzMjAuODAxQzE3NC42IDMyNy4yMDEgMTczLjQgMzI5LjIwMSAxNzMuNCAzMjkuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xODAuODA1IDMyMy4yMzRDMTgwLjgwNSAzMjMuMjM0IDE4Mi4yMTUgMzEwLjE5NCAxOTAuNjkzIDMxMS44NTlDMTkwLjY5MyAzMTEuODU5IDE5OC45MTkgMzA3LjY4OSAyMDEuNjQxIDMwNS43MjFDMjAxLjY0MSAzMDUuNzIxIDIwOS43OCAzMDQuMDE5IDIxMS4wOSAzMDMuNDAyQzIyOS41NjkgMjk0LjcwMiAyNDQuMjg4IDI5OS4yMjEgMjQ0LjgzNSAyOTguMTAxQzI0NS4zODEgMjk2Ljk4MiAyNjUuMDA2IDMwNC4wOTkgMjY4LjYxNSAzMDguMTg1QzI2OS4wMDYgMzA4LjYyOCAyNTguMzg0IDMwMi41ODggMjQ4LjY4NiAzMDAuNjk3QzI0MC40MTMgMjk5LjA4MyAyMTguODExIDMwMC45NDQgMjA3LjkwNSAzMDYuNDhDMjA0LjkzMiAzMDcuOTg5IDE5NS45ODcgMzEzLjc3MyAxOTMuNDU2IDMxMy42NjJDMTkwLjkyNSAzMTMuNTUgMTgwLjgwNSAzMjMuMjM0IDE4MC44MDUgMzIzLjIzNHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTc3IDM0OC44MDFDMTc3IDM0OC44MDEgMTYxLjggMzQ2LjQwMSAxNzguNiAzNDQuODAxQzE3OC42IDM0NC44MDEgMTk2LjYgMzQyLjgwMSAyMDAuNiAzMzcuNjAxQzIwMC42IDMzNy42MDEgMjE0LjIgMzI4LjQwMSAyMTcgMzI4LjAwMUMyMTkuOCAzMjcuNjAxIDI0OS44IDMyMC40MDEgMjUwLjIgMzE4LjAwMUMyNTAuNiAzMTUuNjAxIDI1Ni4yIDMxNS42MDEgMjU3LjggMzE2LjQwMUMyNTkuNCAzMTcuMjAxIDI1OC42IDMxOC40MDEgMjU1LjggMzE5LjIwMUMyNTMgMzIwLjAwMSAyMjEuOCAzMzYuNDAxIDIxNS40IDMzNy42MDFDMjA5IDMzOC44MDEgMTk3LjQgMzQ2LjQwMSAxOTIuNiAzNDcuNjAxQzE4Ny44IDM0OC44MDEgMTc3IDM0OC44MDEgMTc3IDM0OC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE5Ni41MiAzNDEuNDAzQzE5Ni41MiAzNDEuNDAzIDE4Ny45MzggMzQwLjU3NCAxOTYuNTM5IDMzOS43NTVDMTk2LjUzOSAzMzkuNzU1IDIwNS4zNTUgMzM2LjMzMSAyMDcuNDAzIDMzMy42NjhDMjA3LjQwMyAzMzMuNjY4IDIxNC4zNjcgMzI4Ljk1NyAyMTUuOCAzMjguNzUzQzIxNy4yMzQgMzI4LjU0OCAyMzEuMTk0IDMyNC44NjEgMjMxLjM5OSAzMjMuNjMzQzIzMS42MDQgMzIyLjQwNCAyNjUuNjcgMzA5LjgyMyAyNzAuMDkgMzEzLjAxM0MyNzMuMDAxIDMxNS4xMTQgMjYzLjEgMzEzLjQzNyAyNTMuNDY2IDMxNy44NDdDMjUyLjExMSAzMTguNDY3IDIxOC4yNTggMzMzLjA1NCAyMTQuOTgxIDMzMy42NjhDMjExLjcwNCAzMzQuMjgzIDIwNS43NjUgMzM4LjE3NCAyMDMuMzA3IDMzOC43ODhDMjAwLjg1IDMzOS40MDMgMTk2LjUyIDM0MS40MDMgMTk2LjUyIDM0MS40MDN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE4OC42IDM0My42MDFDMTg4LjYgMzQzLjYwMSAxOTMuOCAzNDMuMjAxIDE5Mi42IDM0NC44MDFDMTkxLjQgMzQ2LjQwMSAxODkgMzQ1LjYwMSAxODkgMzQ1LjYwMUwxODguNiAzNDMuNjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xODEuNCAzNDUuMjAxQzE4MS40IDM0NS4yMDEgMTg2LjYgMzQ0LjgwMSAxODUuNCAzNDYuNDAxQzE4NC4yIDM0OC4wMDEgMTgxLjggMzQ3LjIwMSAxODEuOCAzNDcuMjAxTDE4MS40IDM0NS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE3MSAzNDYuODAxQzE3MSAzNDYuODAxIDE3Ni4yIDM0Ni40MDEgMTc1IDM0OC4wMDFDMTczLjggMzQ5LjYwMSAxNzEuNCAzNDguODAxIDE3MS40IDM0OC44MDFMMTcxIDM0Ni44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE2My40IDM0Ny42MDFDMTYzLjQgMzQ3LjYwMSAxNjguNiAzNDcuMjAxIDE2Ny40IDM0OC44MDFDMTY2LjIgMzUwLjQwMSAxNjMuOCAzNDkuNjAxIDE2My44IDM0OS42MDFMMTYzLjQgMzQ3LjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjAxLjggMzA4LjAwMUMyMDEuOCAzMDguMDAxIDIwNi4yIDMwOC4wMDEgMjA1IDMwOS42MDFDMjAzLjggMzExLjIwMSAyMDAuNiAzMTAuODAxIDIwMC42IDMxMC44MDFMMjAxLjggMzA4LjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTkxLjggMzEzLjYwMUMxOTEuOCAzMTMuNjAxIDE5OC4zMDYgMzExLjQ2IDE5NS44IDMxNC44MDFDMTk0LjYgMzE2LjQwMSAxOTIuMiAzMTUuNjAxIDE5Mi4yIDMxNS42MDFMMTkxLjggMzEzLjYwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMTgwLjYgMzE4LjQwMUMxODAuNiAzMTguNDAxIDE4NS44IDMxOC4wMDEgMTg0LjYgMzE5LjYwMUMxODMuNCAzMjEuMjAxIDE4MSAzMjAuNDAxIDE4MSAzMjAuNDAxTDE4MC42IDMxOC40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE3MyAzMjQuNDAxQzE3MyAzMjQuNDAxIDE3OC4yIDMyNC4wMDEgMTc3IDMyNS42MDFDMTc1LjggMzI3LjIwMSAxNzMuNCAzMjYuNDAxIDE3My40IDMyNi40MDFMMTczIDMyNC40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE2Ni4yIDMyOS4yMDFDMTY2LjIgMzI5LjIwMSAxNzEuNCAzMjguODAxIDE3MC4yIDMzMC40MDFDMTY5IDMzMi4wMDEgMTY2LjYgMzMxLjIwMSAxNjYuNiAzMzEuMjAxTDE2Ni4yIDMyOS4yMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIwNS4yODIgMzM1LjU5OEMyMDUuMjgyIDMzNS41OTggMjEyLjIwMyAzMzUuMDY2IDIxMC42MDYgMzM3LjE5NUMyMDkuMDA5IDMzOS4zMjUgMjA1LjgxNCAzMzguMjYgMjA1LjgxNCAzMzguMjZMMjA1LjI4MiAzMzUuNTk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMTUuNjgyIDMzMC43OThDMjE1LjY4MiAzMzAuNzk4IDIyMi42MDMgMzMwLjI2NiAyMjEuMDA2IDMzMi4zOTVDMjE5LjQwOSAzMzQuNTI1IDIxNi4yMTQgMzMzLjQ2IDIxNi4yMTQgMzMzLjQ2TDIxNS42ODIgMzMwLjc5OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjI2LjQ4MiAzMjYuMzk4QzIyNi40ODIgMzI2LjM5OCAyMzMuNDAzIDMyNS44NjYgMjMxLjgwNiAzMjcuOTk1QzIzMC4yMDkgMzMwLjEyNSAyMjcuMDE0IDMyOS4wNiAyMjcuMDE0IDMyOS4wNkwyMjYuNDgyIDMyNi4zOTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIzNi44ODIgMzIxLjU5OEMyMzYuODgyIDMyMS41OTggMjQzLjgwMyAzMjEuMDY2IDI0Mi4yMDYgMzIzLjE5NUMyNDAuNjA5IDMyNS4zMjUgMjM3LjQxNCAzMjQuMjYgMjM3LjQxNCAzMjQuMjZMMjM2Ljg4MiAzMjEuNTk4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMDkuMjgyIDMwMy41OThDMjA5LjI4MiAzMDMuNTk4IDIxNi4yMDMgMzAzLjA2NiAyMTQuNjA2IDMwNS4xOTVDMjEzLjAwOSAzMDcuMzI1IDIwOS4wMTQgMzA3LjA2IDIwOS4wMTQgMzA3LjA2TDIwOS4yODIgMzAzLjU5OHoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjE5LjI4MiAzMDAuMzk4QzIxOS4yODIgMzAwLjM5OCAyMjYuMjAzIDI5OS44NjYgMjI0LjYwNiAzMDEuOTk1QzIyMy4wMDkgMzA0LjEyNSAyMTguNjE0IDMwMy44NiAyMTguNjE0IDMwMy44NkwyMTkuMjgyIDMwMC4zOTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE5Ni42IDM0MC40MDFDMTk2LjYgMzQwLjQwMSAyMDEuOCAzNDAuMDAxIDIwMC42IDM0MS42MDFDMTk5LjQgMzQzLjIwMSAxOTcgMzQyLjQwMSAxOTcgMzQyLjQwMUwxOTYuNiAzNDAuNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5MjYwMCI+CisgIDxwYXRoIGQ9Ik0xMjMuNCAyNDEuMkMxMjMuNCAyNDEuMiAxMTkgMjUwIDExOC42IDI1My4yQzExOC42IDI1My4yIDExOS40IDI0NC40IDEyMC42IDI0Mi40QzEyMS44IDI0MC40IDEyMy40IDI0MS4yIDEyMy40IDI0MS4yeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzk5MjYwMCI+CisgIDxwYXRoIGQ9Ik0xMDUgMjU1LjJDMTA1IDI1NS4yIDEwMS44IDI2OS42IDEwMi4yIDI3Mi40QzEwMi4yIDI3Mi40IDEwMSAyNjAuOCAxMDEuNCAyNTkuNkMxMDEuOCAyNTguNCAxMDUgMjU1LjIgMTA1IDI1NS4yeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xMjUuOCAxODAuNkwxMjUuNiAxODMuOEwxMjMuNCAxODRDMTIzLjQgMTg0IDEzNy42IDE5Ni42IDEzOC4yIDIwNC4yQzEzOC4yIDIwNC4yIDEzOSAxOTYgMTI1LjggMTgwLjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTEyOS43ODQgMTgxLjg2NUMxMjkuMzUzIDE4MS40NDkgMTI5LjU3MiAxODAuNzA0IDEyOS4xNjQgMTgwLjQ0NEMxMjguMzU1IDE3OS45MjggMTMwLjQ2MiAxNzkuODcxIDEzMC4yMzQgMTc5LjE1NUMxMjkuODUxIDE3Ny45NDkgMTMwLjAzOCAxNzcuOTI4IDEyOS45MTYgMTc2LjY1MkMxMjkuODU5IDE3Ni4wNTQgMTMwLjQ0NyAxNzQuNTE0IDEzMC44MzIgMTc0LjA3NEMxMzIuMjc4IDE3Mi40MjIgMTMwLjk1NCAxNjkuNDkgMTMyLjU5NCAxNjcuOTM5QzEzMi44OTggMTY3LjY1IDEzMy4yNzQgMTY3LjA5OCAxMzMuNTU5IDE2Ni42OEMxMzQuMjE4IDE2NS43MTcgMTM1LjQwMiAxNjUuMjI5IDEzNi4zNTIgMTY0LjQwMUMxMzYuNjcgMTY0LjEyNSAxMzYuNDY5IDE2My4yOTggMTM3LjAzOCAxNjMuMzlDMTM3Ljc1MiAxNjMuNTA1IDEzOC45OTMgMTYzLjM3NSAxMzguOTQ4IDE2NC4yMTZDMTM4LjgzNSAxNjYuMzM2IDEzNy41MDYgMTY4LjA1NiAxMzYuMjI2IDE2OS43MjRDMTM2LjY3NyAxNzAuNDI4IDEzNi4yMTkgMTcxLjA2MyAxMzUuOTM1IDE3MS42MkMxMzQuNiAxNzQuMjQgMTM0Ljc4OSAxNzcuMDgxIDEzNC42MTUgMTc5LjkyMUMxMzQuNjEgMTgwLjAwNiAxMzQuMzAzIDE4MC4wODQgMTM0LjMxMSAxODAuMTM3QzEzNC42NjQgMTgyLjQ3MiAxMzUuMjQ4IDE4NC42NzEgMTM2LjEyNyAxODYuOUMxMzYuNDkzIDE4Ny44MyAxMzYuOTY0IDE4OC43MjUgMTM3LjExNCAxODkuNjUyQzEzNy4yMjUgMTkwLjMzOCAxMzcuMzI4IDE5MS4xNzEgMTM2LjkyIDE5MS44NzZDMTM4Ljk1NSAxOTQuNzY2IDEzNy42NDYgMTk3LjQxNyAxMzguODE1IDIwMC45NDhDMTM5LjAyMiAyMDEuNTczIDE0MC43MTQgMjAzLjQ4NyAxNDAuMjUxIDIwMy4zMjZDMTM3LjczOCAyMDIuNDU1IDEzNy42MjYgMjAyLjA1NyAxMzcuNDQ5IDIwMS4zMDRDMTM3LjMwMyAyMDAuNjgxIDEzNi45NzMgMTk5LjMwNCAxMzYuNzM2IDE5OC43MDJDMTM2LjY3MiAxOTguNTM4IDEzNi41MDEgMTk2LjY1NCAxMzYuNDIzIDE5Ni41MzJDMTM0LjkxIDE5NC4xNSAxMzYuMjY4IDE5NC4zMjYgMTM0Ljg5OCAxOTEuOTY4QzEzMy40NyAxOTEuMjg4IDEzMi41MDQgMTkwLjE4NCAxMzEuMzgxIDE4OS4wMjJDMTMxLjE4MyAxODguODE4IDEzMi4zMjYgMTg4LjA5NCAxMzIuMTQ1IDE4Ny44ODFDMTMxLjA1MyAxODYuNTkyIDEyOS45IDE4NS44MjUgMTMwLjIzNiAxODQuMzMyQzEzMC4zOTEgMTgzLjY0MiAxMzAuNTI4IDE4Mi41ODUgMTI5Ljc4NCAxODEuODY1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMjYuMiAxODMuNkMxMjYuMiAxODMuNiAxMjYuNiAxOTAuNCAxMjkgMTkyQzEzMS40IDE5My42IDEzMC4yIDE5Mi44IDEyNyAxOTEuNkMxMjMuOCAxOTAuNCAxMjUgMTg5LjYgMTI1IDE4OS42QzEyNSAxODkuNiAxMjIuMiAxOTAgMTI0LjYgMTkyQzEyNyAxOTQgMTMwLjYgMTk2LjQgMTI5IDE5Ni40QzEyNy40IDE5Ni40IDExOS44IDE5Mi40IDExOS44IDE4OS42QzExOS44IDE4Ni44IDExOC44IDE4Mi43IDExOC44IDE4Mi43QzExOC44IDE4Mi43IDExOS45IDE4MS45IDEyNC43IDE4MkMxMjQuNyAxODIgMTI2LjEgMTgyLjcgMTI2LjIgMTgzLjZ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xMjUuNCAyMDIuMkMxMjUuNCAyMDIuMiAxMTYuODggMTk5LjQwOSA5OC40IDIwMi44Qzk4LjQgMjAyLjggMTA3LjQzMSAyMDAuNzIyIDEyNi4yIDIwM0MxMzYuNSAyMDQuMjUgMTI1LjQgMjAyLjIgMTI1LjQgMjAyLjJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xMjcuNDk4IDIwMi4xMjlDMTI3LjQ5OCAyMDIuMTI5IDExOS4yNTIgMTk4LjYxMSAxMDAuNTQ3IDIwMC4zOTJDMTAwLjU0NyAyMDAuMzkyIDEwOS43MjUgMTk5LjEwMyAxMjguMjI2IDIwMi45OTVDMTM4LjM4IDIwNS4xMzEgMTI3LjQ5OCAyMDIuMTI5IDEyNy40OTggMjAyLjEyOXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTEyOS4yODYgMjAyLjIyMkMxMjkuMjg2IDIwMi4yMjIgMTIxLjMyNCAxOTguMTAxIDEwMi41MzkgMTk4LjQ4NkMxMDIuNTM5IDE5OC40ODYgMTExLjc4NyAxOTcuODgyIDEyOS45NDggMjAzLjE0QzEzOS45MTQgMjA2LjAyNSAxMjkuMjg2IDIwMi4yMjIgMTI5LjI4NiAyMDIuMjIyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTMwLjU1NiAyMDIuNDQ1QzEzMC41NTYgMjAyLjQ0NSAxMjMuNzMyIDE5OC4xMzggMTA2Ljg1OCAxOTcuMDRDMTA2Ljg1OCAxOTcuMDQgMTE1LjE5NyAxOTcuMjEgMTMxLjA3OCAyMDMuMzE5QzEzOS43OTQgMjA2LjY3MiAxMzAuNTU2IDIwMi40NDUgMTMwLjU1NiAyMDIuNDQ1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjQ1Ljg0IDIxMi45NjFDMjQ1Ljg0IDIxMi45NjEgMjQ0LjkxIDIxMy42MDUgMjQ1LjEyNCAyMTIuNDI0QzI0NS4zMzkgMjExLjI0MyAyNzMuNTQ3IDE5OC4wNzMgMjc3LjE2MSAxOTguMzIzQzI3Ny4xNjEgMTk4LjMyMyAyNDYuOTEzIDIxMS41MjkgMjQ1Ljg0IDIxMi45NjF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yNDIuNDQ2IDIxMy42QzI0Mi40NDYgMjEzLjYgMjQxLjU3IDIxNC4zMTUgMjQxLjY5MSAyMTMuMTIxQzI0MS44MTIgMjExLjkyNyAyNjguODk5IDE5Ni41ODIgMjcyLjUyMSAxOTYuNTQ4QzI3Mi41MjEgMTk2LjU0OCAyNDMuNDA0IDIxMi4wODkgMjQyLjQ0NiAyMTMuNnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIzOS4xNiAyMTQuOTc1QzIzOS4xNiAyMTQuOTc1IDIzOC4zMzIgMjE1Ljc0NyAyMzguMzc0IDIxNC41NDdDMjM4LjQxNiAyMTMuMzQ4IDI1OC4yMzMgMTk3Ljg1MSAyNjguMDQ1IDE5NS45NzdDMjY4LjA0NSAxOTUuOTc3IDI1MC4wMTUgMjA0LjEwNCAyMzkuMTYgMjE0Ljk3NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIzNi4yODQgMjE2LjgzOEMyMzYuMjg0IDIxNi44MzggMjM1LjUzOSAyMTcuNTMyIDIzNS41NzcgMjE2LjQ1M0MyMzUuNjE1IDIxNS4zNzMgMjUzLjQ0OSAyMDEuNDI2IDI2Mi4yOCAxOTkuNzRDMjYyLjI4IDE5OS43NCAyNDYuMDU0IDIwNy4wNTQgMjM2LjI4NCAyMTYuODM4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yMDQuNiAzNjQuODAxQzIwNC42IDM2NC44MDEgMTg5LjQgMzYyLjQwMSAyMDYuMiAzNjAuODAxQzIwNi4yIDM2MC44MDEgMjI0LjIgMzU4LjgwMSAyMjguMiAzNTMuNjAxQzIyOC4yIDM1My42MDEgMjQxLjggMzQ0LjQwMSAyNDQuNiAzNDQuMDAxQzI0Ny40IDM0My42MDEgMjYzLjggMzQwLjAwMSAyNjQuMiAzMzcuNjAxQzI2NC42IDMzNS4yMDEgMjcwLjYgMzMyLjgwMSAyNzIuMiAzMzMuNjAxQzI3My44IDMzNC40MDEgMjczLjggMzQzLjYwMSAyNzEgMzQ0LjQwMUMyNjguMiAzNDUuMjAxIDI0OS40IDM1Mi40MDEgMjQzIDM1My42MDFDMjM2LjYgMzU0LjgwMSAyMjUgMzYyLjQwMSAyMjAuMiAzNjMuNjAxQzIxNS40IDM2NC44MDEgMjA0LjYgMzY0LjgwMSAyMDQuNiAzNjQuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNzcuNiAzMjcuNDAxQzI3Ny42IDMyNy40MDEgMjc0LjYgMzI5LjAwMSAyNzMuNCAzMzEuNjAxQzI3My40IDMzMS42MDEgMjY3IDM0Mi4yMDEgMjUyLjggMzQ1LjQwMUMyNTIuOCAzNDUuNDAxIDIyOS44IDM1NC40MDEgMjIyIDM1Ni40MDFDMjIyIDM1Ni40MDEgMjA4LjYgMzYxLjQwMSAyMDEuMiAzNjAuNjAxQzIwMS4yIDM2MC42MDEgMTk0LjIgMzYwLjgwMSAyMDAuNCAzNjIuNDAxQzIwMC40IDM2Mi40MDEgMjIwLjYgMzYwLjQwMSAyMjQgMzU4LjYwMUMyMjQgMzU4LjYwMSAyMzkuNiAzNTMuNDAxIDI0Mi42IDM1MC44MDFDMjQ1LjYgMzQ4LjIwMSAyNjMuOCAzNDMuMjAxIDI2NiAzNDEuMjAxQzI2OC4yIDMzOS4yMDEgMjc4IDMzMC44MDEgMjc3LjYgMzI3LjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjE4Ljg4MiAzNTguOTExQzIxOC44ODIgMzU4LjkxMSAyMjQuMTExIDM1OC42ODUgMjIyLjk1OCAzNjAuMjM0QzIyMS44MDUgMzYxLjc4NCAyMTkuMzU3IDM2MC45MSAyMTkuMzU3IDM2MC45MUwyMTguODgyIDM1OC45MTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIxMS42OCAzNjAuMjYzQzIxMS42OCAzNjAuMjYzIDIxNi45MDggMzYwLjAzNyAyMTUuNzU2IDM2MS41ODZDMjE0LjYwMyAzNjMuMTM2IDIxMi4xNTUgMzYyLjI2MyAyMTIuMTU1IDM2Mi4yNjNMMjExLjY4IDM2MC4yNjN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTIwMS4yNTEgMzYxLjUxMUMyMDEuMjUxIDM2MS41MTEgMjA2LjQ4IDM2MS4yODQgMjA1LjMyNyAzNjIuODM0QzIwNC4xNzQgMzY0LjM4MyAyMDEuNzI2IDM2My41MSAyMDEuNzI2IDM2My41MUwyMDEuMjUxIDM2MS41MTF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE5My42MTcgMzYyLjA1NUMxOTMuNjE3IDM2Mi4wNTUgMTk4Ljg0NiAzNjEuODI5IDE5Ny42OTMgMzYzLjM3OEMxOTYuNTQgMzY0LjkyOCAxOTQuMDkyIDM2NC4wNTQgMTk0LjA5MiAzNjQuMDU0TDE5My42MTcgMzYyLjA1NXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjM1LjQxNSAzNTEuNTEzQzIzNS40MTUgMzUxLjUxMyAyNDIuMzc1IDM1MS4yMTIgMjQwLjg0IDM1My4yNzRDMjM5LjMwNiAzNTUuMzM2IDIzNi4wNDcgMzU0LjE3NCAyMzYuMDQ3IDM1NC4xNzRMMjM1LjQxNSAzNTEuNTEzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNDUuNzMgMzQ3LjA4OEMyNDUuNzMgMzQ3LjA4OCAyNTEuNjg5IDM0My43ODcgMjUxLjE1NSAzNDguODQ5QzI1MC44ODUgMzUxLjQwNSAyNDYuMzYyIDM0OS43NDkgMjQ2LjM2MiAzNDkuNzQ5TDI0NS43MyAzNDcuMDg4eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNTQuODYyIDM0NC4yNzRDMjU0Ljg2MiAzNDQuMjc0IDI2Mi4wMjEgMzQwLjU3MyAyNjAuMjg3IDM0Ni4wMzVDMjU5LjUwOSAzNDguNDg1IDI1NS40OTMgMzQ2LjkzNSAyNTUuNDkzIDM0Ni45MzVMMjU0Ljg2MiAzNDQuMjc0eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNjQuMzc2IDMzOS40NDlDMjY0LjM3NiAzMzkuNDQ5IDI2OC43MzUgMzM0LjU0OCAyNjkuODAxIDM0MS4yMUMyNzAuMjA3IDM0My43NDggMjY1LjAwOCAzNDIuMTEgMjY1LjAwOCAzNDIuMTFMMjY0LjM3NiAzMzkuNDQ5eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yMjYuODM0IDM1NS45OTdDMjI2LjgzNCAzNTUuOTk3IDIzMi4wNjIgMzU1Ljc3IDIzMC45MSAzNTcuMzJDMjI5Ljc1NyAzNTguODY5IDIyNy4zMDggMzU3Ljk5NiAyMjcuMzA4IDM1Ny45OTZMMjI2LjgzNCAzNTUuOTk3eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjYyLjQzNCAyMzQuNjAzQzI2Mi40MzQgMjM0LjYwMyAyNjEuNzA4IDIzNS4yNjggMjYxLjcwNyAyMzQuMTk3QzI2MS43MDcgMjMzLjEyNyAyNzkuMTkxIDIxOS44NjMgMjg4LjAzNCAyMTguNDc5QzI4OC4wMzQgMjE4LjQ3OSAyNzEuOTM1IDIyNS4yMDggMjYyLjQzNCAyMzQuNjAzeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0yNjUuNCAyOTguNEMyNjUuNCAyOTguNCAyODcuNDAxIDMyMC44MDEgMjk2LjYwMSAzMjQuNDAxQzI5Ni42MDEgMzI0LjQwMSAzMDUuODAxIDMzNS42MDEgMzAxLjgwMSAzNjEuNjAxQzMwMS44MDEgMzYxLjYwMSAyOTguNjAxIDM2OS4yMDEgMjk1LjQwMSAzNDguNDAxQzI5NS40MDEgMzQ4LjQwMSAyOTguNjAxIDMyMy4yMDEgMjg3LjQwMSAzMzkuMjAxQzI4Ny40MDEgMzM5LjIwMSAyNzkgMzI5LjMwMSAyODUuNCAzMjkuNjAxQzI4NS40IDMyOS42MDEgMjg4LjYwMSAzMzEuNjAxIDI4OS4wMDEgMzMwLjAwMUMyODkuNDAxIDMyOC40MDEgMjgxLjQgMzE0LjgwMSAyNjQuMiAzMDAuNEMyNDcgMjg2IDI2NS40IDI5OC40IDI2NS40IDI5OC40eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjA3IDMzNy4yMDFDMjA3IDMzNy4yMDEgMjA2LjggMzM1LjQwMSAyMDguNiAzMzYuMjAxQzIxMC40IDMzNy4wMDEgMzA0LjYwMSAzNDMuMjAxIDMzNi4yMDEgMzY3LjIwMUMzMzYuMjAxIDM2Ny4yMDEgMjkxLjAwMSAzNDQuMDAxIDIwNyAzMzcuMjAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjE3LjQgMzMyLjgwMUMyMTcuNCAzMzIuODAxIDIxNy4yIDMzMS4wMDEgMjE5IDMzMS44MDFDMjIwLjggMzMyLjYwMSAzNTcuNDAxIDMzMS42MDEgMzgxLjAwMSAzNjQuMDAxQzM4MS4wMDEgMzY0LjAwMSAzNTkuMDAxIDMzOC44MDEgMjE3LjQgMzMyLjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIyOSAzMjguODAxQzIyOSAzMjguODAxIDIyOC44IDMyNy4wMDEgMjMwLjYgMzI3LjgwMUMyMzIuNCAzMjguNjAxIDQwNS44MDEgMzE1LjYwMSA0MjkuNDAxIDM0OC4wMDFDNDI5LjQwMSAzNDguMDAxIDQxOS44MDEgMzIyLjQwMSAyMjkgMzI4LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIzOSAzMjQuMDAxQzIzOSAzMjQuMDAxIDIzOC44IDMyMi4yMDEgMjQwLjYgMzIzLjAwMUMyNDIuNCAzMjMuODAxIDM2NC42MDEgMjg1LjIgMzg4LjIwMSAzMTcuNjAxQzM4OC4yMDEgMzE3LjYwMSAzNzQuODAxIDI5MyAyMzkgMzI0LjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE4MSAzNDYuODAxQzE4MSAzNDYuODAxIDE4MC44IDM0NS4wMDEgMTgyLjYgMzQ1LjgwMUMxODQuNCAzNDYuNjAxIDIwMi4yIDM0OC44MDEgMjA0LjIgMzg3LjYwMUMyMDQuMiAzODcuNjAxIDE5NyAzNDUuNjAxIDE4MSAzNDYuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTcyLjIgMzQ4LjQwMUMxNzIuMiAzNDguNDAxIDE3MiAzNDYuNjAxIDE3My44IDM0Ny40MDFDMTc1LjYgMzQ4LjIwMSAxODkuOCAzNDMuNjAxIDE4NyAzODIuNDAxQzE4NyAzODIuNDAxIDE4OC4yIDM0Ny4yMDEgMTcyLjIgMzQ4LjQwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE2NC4yIDM0OC44MDFDMTY0LjIgMzQ4LjgwMSAxNjQgMzQ3LjAwMSAxNjUuOCAzNDcuODAxQzE2Ny42IDM0OC42MDEgMTgzIDM0OS4yMDEgMTcwLjYgMzcxLjYwMUMxNzAuNiAzNzEuNjAxIDE4MC4yIDM0Ny42MDEgMTY0LjIgMzQ4LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIxMS41MjYgMzA0LjQ2NUMyMTEuNTI2IDMwNC40NjUgMjExLjA4MiAzMDYuNDY0IDIxMi42MzEgMzA1LjI0N0MyMjguNjk5IDI5Mi42MjIgMjYxLjE0MSAyMzMuNzIgMzE2LjgyNiAyMjguMDg2QzMxNi44MjYgMjI4LjA4NiAyNzguNTE4IDIxNS45NzYgMjExLjUyNiAzMDQuNDY1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjIyLjcyNiAzMDIuNjY1QzIyMi43MjYgMzAyLjY2NSAyMjEuMzYzIDMwMS40NzIgMjIzLjIzMSAzMDAuODQ3QzIyNS4wOTkgMzAwLjIyMiAzMzcuNTQxIDIyNy43MiAzNzYuODI2IDIzNS42ODZDMzc2LjgyNiAyMzUuNjg2IDM0OS43MTkgMjI4LjE3NiAyMjIuNzI2IDMwMi42NjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMDEuODg1IDMwOC43NjdDMjAxLjg4NSAzMDguNzY3IDIwMS4zNzYgMzEwLjM2NiAyMDMuMDg3IDMwOS4zOUMyMTIuMDYyIDMwNC4yNyAyMTUuNjc3IDI0Ny4wNTkgMjU5LjI1NCAyNDUuODA0QzI1OS4yNTQgMjQ1LjgwNCAyMjYuODQzIDIzMS4wOSAyMDEuODg1IDMwOC43Njd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xODEuOTYyIDMxOS43OTNDMTgxLjk2MiAzMTkuNzkzIDE4MC44ODUgMzIxLjA3OSAxODIuODM4IDMyMC44MjVDMTkzLjA4NCAzMTkuNDkzIDIxNC40ODkgMjc4LjIyMiAyNTguOTI4IDI4My4zMDFDMjU4LjkyOCAyODMuMzAxIDIyNi45NjIgMjY4Ljk1NSAxODEuOTYyIDMxOS43OTN6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xOTMuMiAzMTMuNjY3QzE5My4yIDMxMy42NjcgMTkyLjM4OSAzMTUuMTM2IDE5NC4yNTggMzE0LjUxMUMyMDQuMDU3IDMxMS4yMzcgMjE3LjE0MSAyNjYuNjI1IDI2MS43MjkgMjYzLjA3OEMyNjEuNzI5IDI2My4wNzggMjI3LjYwMyAyNTUuMTM1IDE5My4yIDMxMy42Njd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0xNzQuOTIyIDMyNC45MTJDMTc0LjkyMiAzMjQuOTEyIDE3NC4wNDkgMzI1Ljk1NCAxNzUuNjMxIDMyNS43NDhDMTgzLjkzIDMyNC42NjkgMjAxLjI2OCAyOTEuMjQgMjM3LjI2NCAyOTUuMzU0QzIzNy4yNjQgMjk1LjM1NCAyMTEuMzcxIDI4My43MzQgMTc0LjkyMiAzMjQuOTEyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTY3LjMyMyAzMzAuODIxQzE2Ny4zMjMgMzMwLjgyMSAxNjYuMzE4IDMzMS44NjYgMTY3LjkwOSAzMzEuNzQ4QzE3Mi4wNzcgMzMxLjQzOSAyMDIuNzE1IDI5OC4zNiAyMjEuMTgzIDMxMy44NjJDMjIxLjE4MyAzMTMuODYyIDIwOS4xNjggMjk1LjEzOSAxNjcuMzIzIDMzMC44MjF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMzYuODU1IDI5OC44OThDMjM2Ljg1NSAyOTguODk4IDIzNS42NTQgMjk3LjU0MyAyMzcuNTg2IDI5Ny4xNThDMjM5LjUxOCAyOTYuNzc0IDM2MC4yMjEgMjM5LjA2MSAzOTguMTg0IDI1MS45MjdDMzk4LjE4NCAyNTEuOTI3IDM3Mi4yNDMgMjQxLjA1MyAyMzYuODU1IDI5OC44OTh6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMDMuNCAzNjMuMjAxQzIwMy40IDM2My4yMDEgMjAzLjIgMzYxLjQwMSAyMDUgMzYyLjIwMUMyMDYuOCAzNjMuMDAxIDIyMi4yIDM2My42MDEgMjA5LjggMzg2LjAwMUMyMDkuOCAzODYuMDAxIDIxOS40IDM2Mi4wMDEgMjAzLjQgMzYzLjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIxMy44IDM2MS42MDFDMjEzLjggMzYxLjYwMSAyMTMuNiAzNTkuODAxIDIxNS40IDM2MC42MDFDMjE3LjIgMzYxLjQwMSAyMzUgMzYzLjYwMSAyMzcgNDAyLjQwMUMyMzcgNDAyLjQwMSAyMjkuOCAzNjAuNDAxIDIxMy44IDM2MS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yMjAuNiAzNjAuMDAxQzIyMC42IDM2MC4wMDEgMjIwLjQgMzU4LjIwMSAyMjIuMiAzNTkuMDAxQzIyNCAzNTkuODAxIDI0OC42IDM2My4yMDEgMjcyLjIgMzk1LjYwMUMyNzIuMiAzOTUuNjAxIDIzNi42IDM1OC44MDEgMjIwLjYgMzYwLjAwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIyOC4yMjUgMzU3Ljk3MkMyMjguMjI1IDM1Ny45NzIgMjI3Ljc4OCAzNTYuMjE0IDIyOS42NzggMzU2Ljc2OEMyMzEuNTY4IDM1Ny4zMjIgMjUyLjAwMiAzNTUuNDIzIDI5MC4wOTkgMzg5LjU5OUMyOTAuMDk5IDM4OS41OTkgMjQzLjkyNCAzNTQuNjU2IDIyOC4yMjUgMzU3Ljk3MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTIzOC42MjUgMzUzLjU3MkMyMzguNjI1IDM1My41NzIgMjM4LjE4OCAzNTEuODE0IDI0MC4wNzggMzUyLjM2OEMyNDEuOTY4IDM1Mi45MjIgMjc2LjgwMiAzNTcuNDIzIDMyOC40OTkgMzkyLjM5OUMzMjguNDk5IDM5Mi4zOTkgMjU0LjMyNCAzNTAuMjU2IDIzOC42MjUgMzUzLjU3MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTE5OC4yIDM0Mi4wMDFDMTk4LjIgMzQyLjAwMSAxOTggMzQwLjIwMSAxOTkuOCAzNDEuMDAxQzIwMS42IDM0MS44MDEgMjU1IDM0NC40MDEgMjg1LjQgMzcxLjIwMUMyODUuNCAzNzEuMjAxIDI1MC40OTkgMzQ2LjQyNiAxOTguMiAzNDIuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMTg4LjIgMzQ2LjAwMUMxODguMiAzNDYuMDAxIDE4OCAzNDQuMjAxIDE4OS44IDM0NS4wMDFDMTkxLjYgMzQ1LjgwMSAyMTYuMiAzNDkuMjAxIDIzOS44IDM4MS42MDFDMjM5LjggMzgxLjYwMSAyMDQuMiAzNDQuODAxIDE4OC4yIDM0Ni4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjZmZmZmZmOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjAuMSI+CisgIDxwYXRoIGQ9Ik0yNDkuNTAzIDM0OC45NjJDMjQ5LjUwMyAzNDguOTYyIDI0OC45MzggMzQ3LjI0MSAyNTAuODY0IDM0Ny42NTVDMjUyLjc5IDM0OC4wNjggMjg3Ljg2IDM1MC4wMDQgMzQxLjk4MSAzODEuMDk4QzM0MS45ODEgMzgxLjA5OCAyNjQuMzE3IDM0Ni43MDQgMjQ5LjUwMyAzNDguOTYyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2ZmZmZmZjsgc3Ryb2tlOiMwMDAwMDA7IHN0cm9rZS13aWR0aDowLjEiPgorICA8cGF0aCBkPSJNMjU3LjkwMyAzNDYuNTYyQzI1Ny45MDMgMzQ2LjU2MiAyNTcuMzM4IDM0NC44NDEgMjU5LjI2NCAzNDUuMjU1QzI2MS4xOSAzNDUuNjY4IDI5Ni4yNiAzNDcuNjA0IDM1MC4zODEgMzc4LjY5OEMzNTAuMzgxIDM3OC42OTggMjczLjMxNyAzNDMuOTA0IDI1Ny45MDMgMzQ2LjU2MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNmZmZmZmY7IHN0cm9rZTojMDAwMDAwOyBzdHJva2Utd2lkdGg6MC4xIj4KKyAgPHBhdGggZD0iTTI2Ny41MDMgMzQxLjU2MkMyNjcuNTAzIDM0MS41NjIgMjY2LjkzOCAzMzkuODQxIDI2OC44NjQgMzQwLjI1NUMyNzAuNzkgMzQwLjY2OCAzMTMuODYgMzQ1LjAwNCA0MDMuNTgyIDM3OS4yOThDNDAzLjU4MiAzNzkuMjk4IDI4Mi45MTcgMzM4LjkwNCAyNjcuNTAzIDM0MS41NjJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE1Ni4yIDM0OC40MDFDMTU2LjIgMzQ4LjQwMSAxNjEuNCAzNDguMDAxIDE2MC4yIDM0OS42MDFDMTU5IDM1MS4yMDEgMTU2LjYgMzUwLjQwMSAxNTYuNiAzNTAuNDAxTDE1Ni4yIDM0OC40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE4NyAzNjIuNDAxQzE4NyAzNjIuNDAxIDE5Mi4yIDM2Mi4wMDEgMTkxIDM2My42MDFDMTg5LjggMzY1LjIwMSAxODcuNCAzNjQuNDAxIDE4Ny40IDM2NC40MDFMMTg3IDM2Mi40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE3OC4yIDM2Mi4wMDFDMTc4LjIgMzYyLjAwMSAxODMuNCAzNjEuNjAxIDE4Mi4yIDM2My4yMDFDMTgxIDM2NC44MDEgMTc4LjYgMzY0LjAwMSAxNzguNiAzNjQuMDAxTDE3OC4yIDM2Mi4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjMDAwMDAwIj4KKyAgPHBhdGggZD0iTTgyLjgzMSAzNTAuMTgyQzgyLjgzMSAzNTAuMTgyIDg3Ljg3NiAzNTEuNTA1IDg2LjIxOCAzNTIuNjI0Qzg0LjU2MSAzNTMuNzQ0IDgyLjU1NCAzNTIuMjAyIDgyLjU1NCAzNTIuMjAyTDgyLjgzMSAzNTAuMTgyeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogIzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik04NC44MzEgMzQwLjU4MkM4NC44MzEgMzQwLjU4MiA4OS44NzYgMzQxLjkwNSA4OC4yMTggMzQzLjAyNEM4Ni41NjEgMzQ0LjE0NCA4NC41NTQgMzQyLjYwMiA4NC41NTQgMzQyLjYwMkw4NC44MzEgMzQwLjU4MnoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICMwMDAwMDAiPgorICA8cGF0aCBkPSJNNzcuNjMxIDMzNi4xODJDNzcuNjMxIDMzNi4xODIgODIuNjc2IDMzNy41MDUgODEuMDE4IDMzOC42MjRDNzkuMzYxIDMzOS43NDQgNzcuMzU0IDMzOC4yMDIgNzcuMzU0IDMzOC4yMDJMNzcuNjMxIDMzNi4xODJ6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE1Ny40IDQxMS4yMDFDMTU3LjQgNDExLjIwMSAxNTUuOCA0MTEuMjAxIDE1MS44IDQxMy4yMDFDMTQ5LjggNDEzLjIwMSAxMzguNiA0MTYuODAxIDEzMyA0MjYuODAxQzEzMyA0MjYuODAxIDE0NS40IDQxNy4yMDEgMTU3LjQgNDExLjIwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjQ1LjExNiA1MDMuODQ3QzI0NS4yNTcgNTA0LjEwNSAyNDUuMzEyIDUwNC41MjUgMjQ1LjYwNCA1MDQuNTQyQzI0Ni4yNjIgNTA0LjU4MiAyNDcuNDk1IDUwNC44ODMgMjQ3LjM3IDUwNC4yNDdDMjQ2LjUyMiA0OTkuOTQxIDI0NS42NDggNDk1LjAwNCAyNDEuNTE1IDQ5My4xOTdDMjQwLjg3NiA0OTIuOTE4IDIzOS40MzQgNDkzLjMzMSAyMzkuMzYgNDk0LjIxNUMyMzkuMjMzIDQ5NS43MzkgMjM5LjExNiA0OTcuMDg4IDIzOS40MjUgNDk4LjU1NEMyMzkuNzI1IDQ5OS45NzUgMjQxLjg4MyA0OTkuOTg1IDI0Mi44IDQ5OC42MDFDMjQzLjczNiA1MDAuMjczIDI0NC4xNjggNTAyLjExNiAyNDUuMTE2IDUwMy44NDd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTIzNC4wMzggNTA4LjU4MUMyMzQuNzg2IDUwOS45OTQgMjM0LjY1OSA1MTEuODUzIDIzNi4wNzQgNTEyLjQxNkMyMzYuODE0IDUxMi43MSAyMzguNjY0IDUxMS43MzUgMjM4LjI0NiA1MTAuNjYxQzIzNy40NDQgNTA4LjYgMjM3LjA1NiA1MDYuMzYxIDIzNS42NjcgNTA0LjU1QzIzNS40NjcgNTA0LjI4OCAyMzUuNzA3IDUwMy43NTUgMjM1LjU0NyA1MDMuNDI3QzIzNC45NTMgNTAyLjIwNyAyMzMuODA4IDUwMS40NzIgMjMyLjQgNTAxLjgwMUMyMzEuMjg1IDUwNC4wMDQgMjMyLjQzMyA1MDYuMTMzIDIzMy45NTUgNTA3Ljg0MkMyMzQuMDkxIDUwNy45OTQgMjMzLjkyNSA1MDguMzcgMjM0LjAzOCA1MDguNTgxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0xOTQuNDM2IDUwMy4zOTFDMTk0LjMyOCA1MDMuMDE0IDE5NC4yOSA1MDIuNTUxIDE5NC40NTUgNTAyLjIzQzE5NC45ODYgNTAxLjE5NyAxOTUuNzc5IDUwMC4wNzUgMTk1LjQ0MiA0OTkuMDUzQzE5NS4wOTQgNDk3Ljk5NyAxOTMuOTc4IDQ5OC4xNzkgMTkzLjMyOCA0OTguNzQ4QzE5Mi4xOTMgNDk5Ljc0MiAxOTIuMTQ0IDUwMS41NjggMTkxLjQ1MyA1MDIuOTI3QzE5MS4yNTcgNTAzLjMxMyAxOTEuMzA4IDUwMy44ODYgMTkwLjg2NyA1MDQuMjc3QzE5MC4zOTMgNTA0LjY5OCAxODkuOTUzIDUwNi4yMjIgMTkwLjA0OSA1MDYuNzkzQzE5MC4xMDIgNTA3LjEwNiAxODkuOTE5IDUxNy4wMTQgMTkwLjE0MSA1MTYuNzUxQzE5MC43NiA1MTYuMDE4IDE5My44MSA1MDYuMjg0IDE5My44NzkgNTA1LjM5MkMxOTMuOTM2IDUwNC42NjEgMTk0LjY2OCA1MDQuMTk2IDE5NC40MzYgNTAzLjM5MXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTY4Ljc5OCA0OTYuNTk5QzE3MS40MzIgNDk0LjEgMTc0LjIyMiA0OTEuMTM5IDE3My43OCA0ODcuNDI3QzE3My42NjQgNDg2LjQ1MSAxNzEuODg5IDQ4Ni45NzggMTcxLjcwMiA0ODcuODI0QzE3MC45IDQ5MS40NDkgMTY4Ljg2MSA0OTQuMTEgMTY2LjI5MyA0OTYuNTAyQzE2NC4wOTcgNDk4LjU0OSAxNjIuMjM1IDUwNC44OTMgMTYyIDUwNS40MDFDMTY1LjY5NyA1MDAuMTQ1IDE2Ny45NTQgNDk3LjM5OSAxNjguNzk4IDQ5Ni41OTl6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE1NS4yMjQgNDkwLjYzNUMxNTUuNzQ3IDQ5MC4yNjUgMTU1LjQ0NSA0ODkuNzc0IDE1NS42NjIgNDg5LjQ0MkMxNTYuNjE1IDQ4Ny45ODQgMTU3LjkxNiA0ODYuNzM4IDE1Ny45MzQgNDg1QzE1Ny45MzcgNDg0LjcyMyAxNTcuNTU5IDQ4NC40MTQgMTU3LjIyNCA0ODQuNjM4QzE1Ni45NDcgNDg0LjgyMiAxNTYuNjA1IDQ4NC45NTIgMTU2LjQ5NyA0ODUuMDgyQzE1NC40NjcgNDg3LjUzMSAxNTMuMDY3IDQ5MC4yMDIgMTUxLjYyNCA0OTMuMDE0QzE1MS40NDEgNDkzLjM3MSAxNTAuMjk3IDQ5Ny44NjIgMTUwLjYxIDQ5Ny45NzNDMTUwLjg0OSA0OTguMDU4IDE1Mi41NjkgNDkzLjg3NyAxNTIuNzc5IDQ5My43NjNDMTU0LjA0MiA0OTMuMDc3IDE1NC4wNTQgNDkxLjQ2MiAxNTUuMjI0IDQ5MC42MzV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE3MS45NTcgNTEwLjE3OUMxNzIuNDAxIDUwOS4zMSAxNzMuOTc3IDUwOC4xMDggMTczLjg2NCA1MDcuMjE5QzE3My43NDYgNTA2LjI5MSAxNzQuMjE0IDUwNC44NDggMTczLjMwMiA1MDUuNTM2QzE3Mi4wNDUgNTA2LjQ4NCAxNjguNTk2IDUwNy44MzMgMTY4LjMyNiA1MTMuNjQxQzE2OC4zIDUxNC4yMTIgMTcxLjI3NCA1MTEuNTE5IDE3MS45NTcgNTEwLjE3OXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTg2LjQgNDkzLjAwMUMxODYuOCA0OTIuMzMzIDE4Ny41MDggNDkyLjgwNiAxODcuOTY3IDQ5Mi41NDNDMTg4LjYxNSA0OTIuMTcxIDE4OS4yMjYgNDkxLjYxMyAxODkuNTE4IDQ5MC45NjRDMTkwLjQ4OCA0ODguODE1IDE5Mi4yNTcgNDg2Ljk5NSAxOTIuNCA0ODQuNjAxQzE5MC45MDkgNDgzLjE5NiAxOTAuMjMgNDg1LjIzNiAxODkuNiA0ODYuMjAxQzE4OC4yNzcgNDg0LjU1NCAxODcuMjc4IDQ4Ni40MjggMTg1Ljk3OCA0ODYuOTQ3QzE4NS45MDggNDg2Ljk3NSAxODUuNjk1IDQ4Ni42MjggMTg1LjYyIDQ4Ni42NTVDMTg0LjQ0MyA0ODcuMDk1IDE4My43NjMgNDg4LjE3NiAxODIuNzY1IDQ4OC45NTdDMTgyLjU5NCA0ODkuMDkxIDE4Mi4xODkgNDg4LjkxMSAxODIuMDQyIDQ4OS4wNDdDMTgxLjM5IDQ4OS42NSAxODAuNDE3IDQ4OS45NzUgMTgwLjEzNyA0OTAuNjU3QzE3OS4wMjcgNDkzLjM2NCAxNzUuODg3IDQ5NS40NTkgMTc0IDUwMy4wMDFDMTc0LjM4MSA1MDMuOTEgMTc4LjUxMiA0OTYuMzU5IDE3OC45OTkgNDk1LjY2MUMxNzkuODM1IDQ5NC40NjUgMTc5Ljk1MyA0OTcuMzIyIDE4MS4yMjkgNDk2LjY1NkMxODEuMjggNDk2LjYyOSAxODEuNDY2IDQ5Ni44NjcgMTgxLjYgNDk3LjAwMUMxODEuNzk0IDQ5Ni43MjEgMTgyLjAxMiA0OTYuNDkyIDE4Mi40IDQ5Ni42MDFDMTgyLjQgNDk2LjIwMSAxODIuMjY2IDQ5NS42NDUgMTgyLjQ2NyA0OTUuNDg2QzE4My43MDQgNDk0LjUwOSAxODMuNjIgNDkzLjQ0MSAxODQuNCA0OTIuMjAxQzE4NC44NTggNDkyLjk5IDE4NS45MTkgNDkyLjI3MSAxODYuNCA0OTMuMDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yNDYuMiA1NDcuNDAxQzI0Ni4yIDU0Ny40MDEgMjUzLjYgNTI3LjAwMSAyNDkuMiA1MTUuODAxQzI0OS4yIDUxNS44MDEgMjYwLjYgNTM3LjQwMSAyNTYgNTQ4LjYwMUMyNTYgNTQ4LjYwMSAyNTUuNiA1MzguMjAxIDI1MS42IDUzMy4yMDFDMjUxLjYgNTMzLjIwMSAyNDcuNiA1NDYuMDAxIDI0Ni4yIDU0Ny40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTIzMS40IDU0NC44MDFDMjMxLjQgNTQ0LjgwMSAyMzYuOCA1MzYuMDAxIDIyOC44IDUxNy42MDFDMjI4LjggNTE3LjYwMSAyMjggNTM4LjAwMSAyMjEuMiA1NDkuMDAxQzIyMS4yIDU0OS4wMDEgMjM1LjQgNTI4LjgwMSAyMzEuNCA1NDQuODAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik0yMjEuNCA1NDIuODAxQzIyMS40IDU0Mi44MDEgMjIxLjIgNTIyLjgwMSAyMjEuNiA1MTkuODAxQzIyMS42IDUxOS44MDEgMjE3LjggNTM2LjQwMSAyMDcuNiA1NDYuMDAxQzIwNy42IDU0Ni4wMDEgMjIyIDUzNC4wMDEgMjIxLjQgNTQyLjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMjExLjggNTEwLjgwMUMyMTEuOCA1MTAuODAxIDIxNy44IDUyNC40MDEgMjA3LjggNTQyLjgwMUMyMDcuOCA1NDIuODAxIDIxNC4yIDUzMC42MDEgMjA5LjQgNTIzLjYwMUMyMDkuNCA1MjMuNjAxIDIxMiA1MjAuMjAxIDIxMS44IDUxMC44MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE5Mi42IDU0Mi40MDFDMTkyLjYgNTQyLjQwMSAxOTEuNiA1MjYuODAxIDE5My40IDUyNC42MDFDMTkzLjQgNTI0LjYwMSAxOTMuNiA1MTguMjAxIDE5My4yIDUxNy4yMDFDMTkzLjIgNTE3LjIwMSAxOTcuMiA1MTEuMDAxIDE5Ny40IDUxOC40MDFDMTk3LjQgNTE4LjQwMSAxOTguOCA1MjYuMjAxIDIwMS42IDUzMC44MDFDMjAxLjYgNTMwLjgwMSAyMDUuMiA1MzYuMjAxIDIwNSA1NDIuNjAxQzIwNSA1NDIuNjAxIDE5NSA1MTIuNDAxIDE5Mi42IDU0Mi40MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE4OSA1MTQuODAxQzE4OSA1MTQuODAxIDE4Mi40IDUyNS42MDEgMTgwLjYgNTQ0LjYwMUMxODAuNiA1NDQuNjAxIDE3OS4yIDUzOC40MDEgMTgzIDUyNC4wMDFDMTgzIDUyNC4wMDEgMTg3LjIgNTA4LjYwMSAxODkgNTE0LjgwMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNMTY3LjIgNTM0LjYwMUMxNjcuMiA1MzQuNjAxIDE3Mi4yIDUyOS4yMDEgMTczLjYgNTI0LjIwMUMxNzMuNiA1MjQuMjAxIDE3Ny4yIDUwOC40MDEgMTcwLjggNTE3LjAwMUMxNzAuOCA1MTcuMDAxIDE3MSA1MjUuMDAxIDE2Mi44IDUzMi40MDFDMTYyLjggNTMyLjQwMSAxNjcuNiA1MzAuMDAxIDE2Ny4yIDUzNC42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE2MS40IDUyOS42MDFDMTYxLjQgNTI5LjYwMSAxNjQuOCA1MTIuMjAxIDE2NS42IDUxMS40MDFDMTY1LjYgNTExLjQwMSAxNjcuNCA1MDguMDAxIDE2NC42IDUxMS4yMDFDMTY0LjYgNTExLjIwMSAxNTUuOCA1MzAuNDAxIDE1MS44IDUzNy4wMDFDMTUxLjggNTM3LjAwMSAxNTkuOCA1MjcuODAxIDE2MS40IDUyOS42MDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE1NS42IDUxMy4wMDFDMTU1LjYgNTEzLjAwMSAxNjcuMiA0OTAuNjAxIDE0NS40IDUxNi40MDFDMTQ1LjQgNTE2LjQwMSAxNTYuNCA1MDYuNjAxIDE1NS42IDUxMy4wMDF6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTE0MC4yIDQ5OC40MDFDMTQwLjIgNDk4LjQwMSAxNDUgNDc5LjYwMSAxNDcuNiA0NzkuODAxQzE0Ny42IDQ3OS44MDEgMTU1LjggNDcwLjgwMSAxNDkuMiA0ODEuNDAxQzE0OS4yIDQ4MS40MDEgMTQzLjIgNDkxLjAwMSAxNDMuOCA1MDAuODAxQzE0My44IDUwMC44MDEgMTQzLjIgNDkxLjIwMSAxNDAuMiA0OTguNDAxeiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik00NzAuNSA0ODdDNDcwLjUgNDg3IDQ1OC41IDQ3NyA0NTYgNDczLjVDNDU2IDQ3My41IDQ2OS41IDQ5MiA0NjkuNSA0OTlDNDY5LjUgNDk5IDQ3MiA0OTEuNSA0NzAuNSA0ODd6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJmaWxsOiAjY2NjY2NjIj4KKyAgPHBhdGggZD0iTTQ3NiA0NjVDNDc2IDQ2NSA0NTUgNDUwIDQ1MS41IDQ0Mi41QzQ1MS41IDQ0Mi41IDQ3OCA0NzIgNDc4IDQ3Ni41QzQ3OCA0NzYuNSA0NzguNSA0NjcuNSA0NzYgNDY1eiIvPgorIDwvZz4KKyA8ZyBzdHlsZT0iZmlsbDogI2NjY2NjYyI+CisgIDxwYXRoIGQ9Ik00OTMgMzExQzQ5MyAzMTEgNDgxIDMwMyA0NzkuNSAzMDVDNDc5LjUgMzA1IDQ5MCAzMTEuNSA0OTIuNSAzMjBDNDkyLjUgMzIwIDQ5MSAzMTEgNDkzIDMxMXoiLz4KKyA8L2c+CisgPGcgc3R5bGU9ImZpbGw6ICNjY2NjY2MiPgorICA8cGF0aCBkPSJNNTAxLjUgMzkxLjVMNDg0IDM3OS41QzQ4NCAzNzkuNSA1MDMgMzk2LjUgNTAzLjUgNDAwLjVMNTAxLjUgMzkxLjV6Ii8+CisgPC9nPgorIDxnIHN0eWxlPSJzdHJva2U6IzAwMDAwMCI+CisgIDxwYXRoIGQ9Ik0xMTAuNzUgMzY5TDEzMi43NSAzNzMuNzUiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE2MSA1MzFDMTYxIDUzMSAxNjAuNSA1MjcuNSAxNTEuNSA1MzgiLz4KKyA8L2c+CisgPGcgc3R5bGU9InN0cm9rZTojMDAwMDAwIj4KKyAgPHBhdGggZD0iTTE2Ni41IDUzNkMxNjYuNSA1MzYgMTY4LjUgNTI5LjUgMTYyIDUzNCIvPgorIDwvZz4KKyA8ZyBzdHlsZT0ic3Ryb2tlOiMwMDAwMDAiPgorICA8cGF0aCBkPSJNMjIwLjUgNTQ0LjVDMjIwLjUgNTQ0LjUgMjIyIDUzMy41IDIxMC41IDU0Ni41Ii8+CisgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9hLmV4YW1wbGUub3JnLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2EuZXhhbXBsZS5vcmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkZTJjNDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9hLmV4YW1wbGUub3JnLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCI+Cis8Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyI+Cis8cmV3cml0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vZXhhbXBsZS5vcmcvYSIgcmV3cml0ZVByZWZpeD0iYSIvPgorPG5leHRDYXRhbG9nIGNhdGFsb2c9ImMuZXhhbXBsZS5vcmcueG1sIi8+Cis8L2NhdGFsb2c+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9hL2EuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYS9hLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjk4MDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYS9hLmR0ZApAQCAtMCwwICsxIEBACis8IUVMRU1FTlQgYSAoI1BDREFUQSk+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9hYmMuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYWJjLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2EwOGZlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYWJjLmR0ZApAQCAtMCwwICsxLDcgQEAKKzwhRU5USVRZICUgYSBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9hL2EuZHRkIj4KKyVhOworPCFFTlRJVFkgJSBiIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2IvYi5kdGQiPgorJWI7Cis8IUVOVElUWSAlIGMgU1lTVEVNICJodHRwOi8vZXhhbXBsZS5vcmcvYy9jLmR0ZCI+CislYzsKKzwhRUxFTUVOVCBhYmMgKGEsIGIsIGMpPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYWJjLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2FiYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU5ODE0NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2FiYy54bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgYWJjIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2FiYy5kdGQiPgorPGFiYz4KKyAgPGE+TGV0J3MgdXNlIHByZWRlZmluZWQgZW50aXRlcyAmYW1wOyAmbHQ7ICZndDs8L2E+CisgIDxiPkxldCdzIHVzZSBhIERURCBkZWZpbmVkIGVudGl0eSAmYmVudDs8L2I+CisgIDxjLz4KKzwvYWJjPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9hY2IuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYWNiLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmM3N2M1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYWNiLmR0ZApAQCAtMCwwICsxLDcgQEAKKzwhRU5USVRZICUgYSBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9hL2EuZHRkIj4KKyVhOworPCFFTlRJVFkgJSBjIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2MvYy5kdGQiPgorJWM7Cis8IUVOVElUWSAlIGIgU1lTVEVNICJodHRwOi8vZXhhbXBsZS5vcmcvYi9iLmR0ZCI+CislYjsKKzwhRUxFTUVOVCBhY2IgKGEsIGMsIGIpPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYWNiLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2FjYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE0ZTM2MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2FjYi54bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgYWNiIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2FjYi5kdGQiPgorPGFjYj4KKyAgPGE+TGV0J3MgdXNlIHByZWRlZmluZWQgZW50aXRlcyAmYW1wOyAmbHQ7ICZndDs8L2E+CisgIDxjLz4KKyAgPGI+TGV0J3MgdXNlIGEgRFREIGRlZmluZWQgZW50aXR5ICZiZW50OzwvYj4KKzwvYWNiPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9iLmV4YW1wbGUub3JnLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2IuZXhhbXBsZS5vcmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZmU1ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9iLmV4YW1wbGUub3JnLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCI+Cis8Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyI+Cis8cmV3cml0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vZXhhbXBsZS5vcmcvYiIgcmV3cml0ZVByZWZpeD0iYiIvPgorPG5leHRDYXRhbG9nIGNhdGFsb2c9ImMuZXhhbXBsZS5vcmcueG1sIi8+Cis8L2NhdGFsb2c+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9iL2IuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYi9iLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWRlODhlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYi9iLmR0ZApAQCAtMCwwICsxLDIgQEAKKzwhRUxFTUVOVCBiICgjUENEQVRBKT4KKzwhRU5USVRZIGJlbnQgInRoZSBiIGVudGl0eSI+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9iYWMuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYmFjLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzZhNGU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYmFjLmR0ZApAQCAtMCwwICsxLDcgQEAKKzwhRU5USVRZICUgYiBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9iL2IuZHRkIj4KKyViOworPCFFTlRJVFkgJSBhIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2EvYS5kdGQiPgorJWE7Cis8IUVOVElUWSAlIGMgU1lTVEVNICJodHRwOi8vZXhhbXBsZS5vcmcvYy9jLmR0ZCI+CislYzsKKzwhRUxFTUVOVCBiYWMgKGIsIGEsIGMpPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYmFjLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2JhYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNkNmVmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2JhYy54bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgYmFjIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2JhYy5kdGQiPgorPGJhYz4KKyAgPGI+TGV0J3MgdXNlIGEgRFREIGRlZmluZWQgZW50aXR5ICZiZW50OzwvYj4KKyAgPGE+TGV0J3MgdXNlIHByZWRlZmluZWQgZW50aXRlcyAmYW1wOyAmbHQ7ICZndDs8L2E+CisgIDxjLz4KKzwvYmFjPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9iY2EuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYmNhLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzkxOTJhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYmNhLmR0ZApAQCAtMCwwICsxLDcgQEAKKzwhRU5USVRZICUgYiBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9iL2IuZHRkIj4KKyViOworPCFFTlRJVFkgJSBjIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2MvYy5kdGQiPgorJWM7Cis8IUVOVElUWSAlIGEgU1lTVEVNICJodHRwOi8vZXhhbXBsZS5vcmcvYS9hLmR0ZCI+CislYTsKKzwhRUxFTUVOVCBiY2EgKGIsIGMsIGEpPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvYmNhLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2JjYS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U2MGQwMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2JjYS54bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgYmNhIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2JjYS5kdGQiPgorPGJjYT4KKyAgPGI+TGV0J3MgdXNlIGEgRFREIGRlZmluZWQgZW50aXR5ICZiZW50OzwvYj4KKyAgPGMvPgorICA8YT5MZXQncyB1c2UgcHJlZGVmaW5lZCBlbnRpdGVzICZhbXA7ICZsdDsgJmd0OzwvYT4KKzwvYmNhPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jLmV4YW1wbGUub3JnLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2MuZXhhbXBsZS5vcmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMzQ4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jLmV4YW1wbGUub3JnLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCI+Cis8Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyI+Cis8cmV3cml0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vZXhhbXBsZS5vcmcvYyIgcmV3cml0ZVByZWZpeD0iYyIvPgorPHJld3JpdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL2V4YW1wbGUub3JnLyIgcmV3cml0ZVByZWZpeD0iLi8iLz4KKzwvY2F0YWxvZz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2MvYy5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jL2MuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNDhhNWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jL2MuZHRkCkBAIC0wLDAgKzEgQEAKKzwhRUxFTUVOVCBjIEVNUFRZPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvY2FiLmR0ZCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2NhYi5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE2MmU5MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2NhYi5kdGQKQEAgLTAsMCArMSw3IEBACis8IUVOVElUWSAlIGMgU1lTVEVNICJodHRwOi8vZXhhbXBsZS5vcmcvYy9jLmR0ZCI+CislYzsKKzwhRU5USVRZICUgYSBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9hL2EuZHRkIj4KKyVhOworPCFFTlRJVFkgJSBiIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2IvYi5kdGQiPgorJWI7Cis8IUVMRU1FTlQgY2FiIChjLCBhLCBiKT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2NhYi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jYWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExNjMxZDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jYWIueG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGNhYiBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9jYWIuZHRkIj4KKzxjYWI+CisgIDxjLz4KKyAgPGE+TGV0J3MgdXNlIHByZWRlZmluZWQgZW50aXRlcyAmYW1wOyAmbHQ7ICZndDs8L2E+CisgIDxiPkxldCdzIHVzZSBhIERURCBkZWZpbmVkIGVudGl0eSAmYmVudDs8L2I+Cis8L2NhYj4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvY2JhLmR0ZCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2NiYS5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFiOTZiNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2NiYS5kdGQKQEAgLTAsMCArMSw3IEBACis8IUVOVElUWSAlIGMgU1lTVEVNICJodHRwOi8vZXhhbXBsZS5vcmcvYy9jLmR0ZCI+CislYzsKKzwhRU5USVRZICUgYiBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9iL2IuZHRkIj4KKyViOworPCFFTlRJVFkgJSBhIFNZU1RFTSAiaHR0cDovL2V4YW1wbGUub3JnL2EvYS5kdGQiPgorJWE7Cis8IUVMRU1FTlQgY2JhIChjLCBiLCBhKT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2NiYS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jYmEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NzA4ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jYmEueG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGNiYSBTWVNURU0gImh0dHA6Ly9leGFtcGxlLm9yZy9jYmEuZHRkIj4KKzxjYmE+CisgIDxjLz4KKyAgPGI+TGV0J3MgdXNlIGEgRFREIGRlZmluZWQgZW50aXR5ICZiZW50OzwvYj4KKyAgPGE+TGV0J3MgdXNlIHByZWRlZmluZWQgZW50aXRlcyAmYW1wOyAmbHQ7ICZndDs8L2E+Cis8L2NiYT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvY29tcGxleC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9jb21wbGV4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTc0ZTkwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3RocmVhZHMvY29tcGxleC54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBjYXRhbG9nIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBFbnRpdHkgUmVzb2x1dGlvbiBYTUwgQ2F0YWxvZyBWMS4wLy9FTiIgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvY29tbWl0dGVlcy9lbnRpdHkvcmVsZWFzZS8xLjAvY2F0YWxvZy5kdGQiPgorPGNhdGFsb2cgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciPgorPGRlbGVnYXRlU3lzdGVtIHN5c3RlbUlkU3RhcnRTdHJpbmc9Imh0dHA6Ly9leGFtcGxlLm9yZy8iCisgICAgICAgICAgICAgICAgY2F0YWxvZz0iZXhhbXBsZS5vcmcueG1sIi8+Cis8L2NhdGFsb2c+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9leGFtcGxlLm9yZy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9leGFtcGxlLm9yZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjFjMjYwMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2V4YW1wbGUub3JnLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGNhdGFsb2cgUFVCTElDICItLy9PQVNJUy8vRFREIEVudGl0eSBSZXNvbHV0aW9uIFhNTCBDYXRhbG9nIFYxLjAvL0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL2VudGl0eS9yZWxlYXNlLzEuMC9jYXRhbG9nLmR0ZCI+Cis8Y2F0YWxvZyB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOmVudGl0eTp4bWxuczp4bWw6Y2F0YWxvZyI+Cis8ZGVsZWdhdGVTeXN0ZW0gc3lzdGVtSWRTdGFydFN0cmluZz0iaHR0cDovL2V4YW1wbGUub3JnL2EiCisgICAgICAgICAgICAgICAgY2F0YWxvZz0iYS5leGFtcGxlLm9yZy54bWwiLz4KKzxkZWxlZ2F0ZVN5c3RlbSBzeXN0ZW1JZFN0YXJ0U3RyaW5nPSJodHRwOi8vZXhhbXBsZS5vcmcvYiIKKyAgICAgICAgICAgICAgICBjYXRhbG9nPSJiLmV4YW1wbGUub3JnLnhtbCIvPgorPG5leHRDYXRhbG9nIGNhdGFsb2c9ImMuZXhhbXBsZS5vcmcueG1sIi8+Cis8L2NhdGFsb2c+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9pbnZhbGlkLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90aHJlYWRzL2ludmFsaWQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMjMyNzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGhyZWFkcy9pbnZhbGlkLnhtbApAQCAtMCwwICsxLDIgQEAKKzwhLS0gV2VsbCBmb3JtZWQgYnV0IGludmFsaWQgLS0+Cis8ZG9jLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC90aXRsZS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGl0bGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiM2ZlMDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdGl0bGUueG1sCkBAIC0wLDAgKzEsMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzx0aXRsZT5teSB0aXRsZTwvdGl0bGU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdHN0YmxhbmtzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC90c3RibGFua3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNWEyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdHN0YmxhbmtzLnhtbApAQCAtMCwwICsxLDQ5NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAordGVzdD0icGFzc2VkIj5jb250ZW50PC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3V0ZjE2YmVib20ueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3V0ZjE2YmVib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjNDAyZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdXRmMTZiZWJvbS54bWwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3V0ZjE2Ym9tLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC91dGYxNmJvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkxNmRjMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC91dGYxNmJvbS54bWwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3V0ZjE2bGVib20ueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3V0ZjE2bGVib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMzY0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdXRmMTZsZWJvbS54bWwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3V0Zjhib20ueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3V0Zjhib20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0Y2RmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdXRmOGJvbS54bWwKQEAgLTAsMCArMSBAQAor77u/PGZvby8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvMTI3NzcyLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC8xMjc3NzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhMzkxOTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvMTI3NzcyLnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGEgU1lTVEVNICJkdGRzLzEyNzc3Mi5kdGQiPgorCis8YT4KKyAgPGIgeGxpbms6aHJlZj0iaHR0cDovL2Zha2V1cmwubmV0Ij5iIHRleHQ8L2I+Cis8L2E+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTkzZmIzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sCkBAIC0wLDAgKzEsNDE5NyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nSVNPLTg4NTktMScgc3RhbmRhbG9uZT0nbm8nPz4KKzwhRE9DVFlQRSBzcGVjIFNZU1RFTSAiZHRkcy9zcGVjLmR0ZCIgWworCis8IS0tIExBU1QgVE9VQ0hFRCBCWTogVGltIEJyYXksIDggRmVicnVhcnkgMTk5NyAtLT4KKworPCEtLSBUaGUgd29yZHMgJ0ZJTkFMIEVESVQnIGluIGNvbW1lbnRzIG1hcmsgcGxhY2VzIHdoZXJlIGNoYW5nZXMKK25lZWQgdG8gYmUgbWFkZSBhZnRlciBhcHByb3ZhbCBvZiB0aGUgZG9jdW1lbnQgYnkgdGhlIEVSQiwgYmVmb3JlCitwdWJsaWNhdGlvbi4gIC0tPgorCis8IUVOVElUWSBYTUwudmVyc2lvbiAiMS4wIj4KKzwhRU5USVRZIGRvYy5kYXRlICIxMCBGZWJydWFyeSAxOTk4Ij4KKzwhRU5USVRZIGlzbzYuZG9jLmRhdGUgIjE5OTgwMjEwIj4KKzwhRU5USVRZIHczYy5kb2MuZGF0ZSAiMDItRmViLTE5OTgiPgorPCFFTlRJVFkgZHJhZnQuZGF5ICcxMCc+Cis8IUVOVElUWSBkcmFmdC5tb250aCAnRmVicnVhcnknPgorPCFFTlRJVFkgZHJhZnQueWVhciAnMTk5OCc+CisKKzwhRU5USVRZIFdlYlNHTUwgCisgJ1dlYlNHTUwgQWRhcHRhdGlvbnMgQW5uZXggdG8gSVNPIDg4NzknPgorCis8IUVOVElUWSBsdCAgICAgIjwiPiAKKzwhRU5USVRZIGd0ICAgICAiPiI+IAorPCFFTlRJVFkgeG1scGlvICInJmx0Oz94bWwnIj4KKzwhRU5USVRZIHBpYyAgICAiJz8+JyI+Cis8IUVOVElUWSBiciAgICAgIlxuIj4KKzwhRU5USVRZIGNlbGxiYWNrICcjYzBkOWMwJz4KKzwhRU5USVRZIG1kYXNoICAiLS0iPiA8IS0tICYjeDIwMTQsIGJ1dCBuc2dtbHMgZG9lc24ndCBncm9rIGhleCAtLT4KKzwhRU5USVRZIGNvbSAgICAiLS0iPgorPCFFTlRJVFkgY29tbyAgICItLSI+Cis8IUVOVElUWSBjb21jICAgIi0tIj4KKzwhRU5USVRZIGhjcm8gICAiJmFtcDsjeCI+Cis8IS0tIDwhRU5USVRZIG5ic3AgIqAiPiAtLT4KKzwhRU5USVRZIG5ic3AgICAiJiMxNjA7Ij4KKzwhRU5USVRZIG1hZ2ljZW50cyAiPGNvZGU+YW1wPC9jb2RlPiwKKzxjb2RlPmx0PC9jb2RlPiwKKzxjb2RlPmd0PC9jb2RlPiwKKzxjb2RlPmFwb3M8L2NvZGU+LAorPGNvZGU+cXVvdDwvY29kZT4iPgorIAorPCEtLSBhdWRpZW5jZSBhbmQgZGlzdHJpYnV0aW9uIHN0YXR1czogIGZvciB1c2UgYXQgcHVibGljYXRpb24gdGltZSAtLT4KKzwhRU5USVRZIGRvYy5hdWRpZW5jZSAicHVibGljIHJldmlldyBhbmQgZGlzY3Vzc2lvbiI+Cis8IUVOVElUWSBkb2MuZGlzdHJpYnV0aW9uICJtYXkgYmUgZGlzdHJpYnV0ZWQgZnJlZWx5LCBhcyBsb25nIGFzCithbGwgdGV4dCBhbmQgbGVnYWwgbm90aWNlcyByZW1haW4gaW50YWN0Ij4KKworXT4KKworPCEtLSBmb3IgUGFub3JhbWEgKi0tPgorPD9WRVJCQVRJTSAiZWciID8+CisKKzxzcGVjPgorPGhlYWRlcj4KKzx0aXRsZT5FeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSAoWE1MKSAxLjA8L3RpdGxlPgorPHZlcnNpb24+PC92ZXJzaW9uPgorPHczYy1kZXNpZ25hdGlvbj5SRUMteG1sLSZpc282LmRvYy5kYXRlOzwvdzNjLWRlc2lnbmF0aW9uPgorPHczYy1kb2N0eXBlPlczQyBSZWNvbW1lbmRhdGlvbjwvdzNjLWRvY3R5cGU+Cis8cHViZGF0ZT48ZGF5PiZkcmFmdC5kYXk7PC9kYXk+PG1vbnRoPiZkcmFmdC5tb250aDs8L21vbnRoPjx5ZWFyPiZkcmFmdC55ZWFyOzwveWVhcj48L3B1YmRhdGU+CisKKzxwdWJsb2M+Cis8bG9jICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7Ij4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTs8L2xvYz4KKzxsb2MgIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsueG1sIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTgvUkVDLXhtbC0maXNvNi5kb2MuZGF0ZTsueG1sPC9sb2M+Cis8bG9jICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7Lmh0bWwiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5odG1sPC9sb2M+Cis8bG9jICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnBkZiI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnBkZjwvbG9jPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9SRUMteG1sLSZpc282LmRvYy5kYXRlOy5wcyI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk4L1JFQy14bWwtJmlzbzYuZG9jLmRhdGU7LnBzPC9sb2M+Cis8L3B1YmxvYz4KKzxsYXRlc3Rsb2M+Cis8bG9jICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWw8L2xvYz4KKzwvbGF0ZXN0bG9jPgorPHByZXZsb2NzPgorPGxvYyAgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUFIteG1sLTk3MTIwOCI+CitodHRwOi8vd3d3LnczLm9yZy9UUi9QUi14bWwtOTcxMjA4PC9sb2M+Cis8IS0tCis8bG9jICBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTYxMTE0Jz4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NjExMTQ8L2xvYz4KKzxsb2MgIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC1sYW5nLTk3MDMzMSc+CitodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGFuZy05NzAzMzE8L2xvYz4KKzxsb2MgIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC1sYW5nLTk3MDYzMCc+CitodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGFuZy05NzA2MzA8L2xvYz4KKzxsb2MgIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1dELXhtbC05NzA4MDcnPgoraHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk3MDgwNzwvbG9jPgorPGxvYyAgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLTk3MTExNyc+CitodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtOTcxMTE3PC9sb2M+LS0+Cis8L3ByZXZsb2NzPgorPGF1dGhsaXN0PgorPGF1dGhvcj48bmFtZT5UaW0gQnJheTwvbmFtZT4KKzxhZmZpbGlhdGlvbj5UZXh0dWFsaXR5IGFuZCBOZXRzY2FwZTwvYWZmaWxpYXRpb24+Cis8ZW1haWwgCitocmVmPSJtYWlsdG86dGJyYXlAdGV4dHVhbGl0eS5jb20iPnRicmF5QHRleHR1YWxpdHkuY29tPC9lbWFpbD48L2F1dGhvcj4KKzxhdXRob3I+PG5hbWU+SmVhbiBQYW9saTwvbmFtZT4KKzxhZmZpbGlhdGlvbj5NaWNyb3NvZnQ8L2FmZmlsaWF0aW9uPgorPGVtYWlsIGhyZWY9Im1haWx0bzpqZWFucGFAbWljcm9zb2Z0LmNvbSI+amVhbnBhQG1pY3Jvc29mdC5jb208L2VtYWlsPjwvYXV0aG9yPgorPGF1dGhvcj48bmFtZT5DLiBNLiBTcGVyYmVyZy1NY1F1ZWVuPC9uYW1lPgorPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgb2YgSWxsaW5vaXMgYXQgQ2hpY2FnbzwvYWZmaWxpYXRpb24+Cis8ZW1haWwgaHJlZj0ibWFpbHRvOmNtc21jcUB1aWMuZWR1Ij5jbXNtY3FAdWljLmVkdTwvZW1haWw+PC9hdXRob3I+Cis8L2F1dGhsaXN0PgorPGFic3RyYWN0PgorPHA+VGhlIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIChYTUwpIGlzIGEgc3Vic2V0IG9mCitTR01MIHRoYXQgaXMgY29tcGxldGVseSBkZXNjcmliZWQgaW4gdGhpcyBkb2N1bWVudC4gSXRzIGdvYWwgaXMgdG8KK2VuYWJsZSBnZW5lcmljIFNHTUwgdG8gYmUgc2VydmVkLCByZWNlaXZlZCwgYW5kIHByb2Nlc3NlZCBvbiB0aGUgV2ViCitpbiB0aGUgd2F5IHRoYXQgaXMgbm93IHBvc3NpYmxlIHdpdGggSFRNTC4gWE1MIGhhcyBiZWVuIGRlc2lnbmVkIGZvcgorZWFzZSBvZiBpbXBsZW1lbnRhdGlvbiBhbmQgZm9yIGludGVyb3BlcmFiaWxpdHkgd2l0aCBib3RoIFNHTUwgYW5kCitIVE1MLjwvcD4KKzwvYWJzdHJhY3Q+Cis8c3RhdHVzPgorPHA+VGhpcyBkb2N1bWVudCBoYXMgYmVlbiByZXZpZXdlZCBieSBXM0MgTWVtYmVycyBhbmQKK290aGVyIGludGVyZXN0ZWQgcGFydGllcyBhbmQgaGFzIGJlZW4gZW5kb3JzZWQgYnkgdGhlCitEaXJlY3RvciBhcyBhIFczQyBSZWNvbW1lbmRhdGlvbi4gSXQgaXMgYSBzdGFibGUKK2RvY3VtZW50IGFuZCBtYXkgYmUgdXNlZCBhcyByZWZlcmVuY2UgbWF0ZXJpYWwgb3IgY2l0ZWQKK2FzIGEgbm9ybWF0aXZlIHJlZmVyZW5jZSBmcm9tIGFub3RoZXIgZG9jdW1lbnQuIFczQydzCityb2xlIGluIG1ha2luZyB0aGUgUmVjb21tZW5kYXRpb24gaXMgdG8gZHJhdyBhdHRlbnRpb24KK3RvIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCB0byBwcm9tb3RlIGl0cyB3aWRlc3ByZWFkCitkZXBsb3ltZW50LiBUaGlzIGVuaGFuY2VzIHRoZSBmdW5jdGlvbmFsaXR5IGFuZAoraW50ZXJvcGVyYWJpbGl0eSBvZiB0aGUgV2ViLjwvcD4KKzxwPgorVGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgYSBzeW50YXggY3JlYXRlZCBieSBzdWJzZXR0aW5nIGFuIGV4aXN0aW5nLAord2lkZWx5IHVzZWQgaW50ZXJuYXRpb25hbCB0ZXh0IHByb2Nlc3Npbmcgc3RhbmRhcmQgKFN0YW5kYXJkCitHZW5lcmFsaXplZCBNYXJrdXAgTGFuZ3VhZ2UsIElTTyA4ODc5OjE5ODYoRSkgYXMgYW1lbmRlZCBhbmQKK2NvcnJlY3RlZCkgZm9yIHVzZSBvbiB0aGUgV29ybGQgV2lkZSBXZWIuICBJdCBpcyBhIHByb2R1Y3Qgb2YgdGhlIFczQworWE1MIEFjdGl2aXR5LCBkZXRhaWxzIG9mIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCA8bG9jCitocmVmPSdodHRwOi8vd3d3LnczLm9yZy9YTUwnPmh0dHA6Ly93d3cudzMub3JnL1hNTDwvbG9jPi4gIEEgbGlzdCBvZgorY3VycmVudCBXM0MgUmVjb21tZW5kYXRpb25zIGFuZCBvdGhlciB0ZWNobmljYWwgZG9jdW1lbnRzIGNhbiBiZSBmb3VuZAorYXQgPGxvYyBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUic+aHR0cDovL3d3dy53My5vcmcvVFI8L2xvYz4uCis8L3A+Cis8cD5UaGlzIHNwZWNpZmljYXRpb24gdXNlcyB0aGUgdGVybSBVUkksIHdoaWNoIGlzIGRlZmluZWQgYnkgPGJpYnJlZgorcmVmPSJCZXJuZXJzLUxlZSIvPiwgYSB3b3JrIGluIHByb2dyZXNzIGV4cGVjdGVkIHRvIHVwZGF0ZSA8YmlicmVmCityZWY9IlJGQzE3MzgiLz4gYW5kIDxiaWJyZWYgcmVmPSJSRkMxODA4Ii8+LiAKKzwvcD4KKzxwPlRoZSBsaXN0IG9mIGtub3duIGVycm9ycyBpbiB0aGlzIHNwZWNpZmljYXRpb24gaXMgCithdmFpbGFibGUgYXQgCis8bG9jIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1hNTC94bWwtMTk5ODAyMTAtZXJyYXRhJz5odHRwOi8vd3d3LnczLm9yZy9YTUwveG1sLTE5OTgwMjEwLWVycmF0YTwvbG9jPi48L3A+Cis8cD5QbGVhc2UgcmVwb3J0IGVycm9ycyBpbiB0aGlzIGRvY3VtZW50IHRvIAorPGxvYyBocmVmPSdtYWlsdG86eG1sLWVkaXRvckB3My5vcmcnPnhtbC1lZGl0b3JAdzMub3JnPC9sb2M+LgorPC9wPgorPC9zdGF0dXM+CisKKworPHB1YnN0bXQ+Cis8cD5DaGljYWdvLCBWYW5jb3V2ZXIsIE1vdW50YWluIFZpZXcsIGV0IGFsLjoKK1dvcmxkLVdpZGUgV2ViIENvbnNvcnRpdW0sIFhNTCBXb3JraW5nIEdyb3VwLCAxOTk2LCAxOTk3LjwvcD4KKzwvcHVic3RtdD4KKzxzb3VyY2VkZXNjPgorPHA+Q3JlYXRlZCBpbiBlbGVjdHJvbmljIGZvcm0uPC9wPgorPC9zb3VyY2VkZXNjPgorPGxhbmd1c2FnZT4KKzxsYW5ndWFnZSBpZD0nRU4nPkVuZ2xpc2g8L2xhbmd1YWdlPgorPGxhbmd1YWdlIGlkPSdlYm5mJz5FeHRlbmRlZCBCYWNrdXMtTmF1ciBGb3JtIChmb3JtYWwgZ3JhbW1hcik8L2xhbmd1YWdlPgorPC9sYW5ndXNhZ2U+Cis8cmV2aXNpb25kZXNjPgorPHNsaXN0PgorPHNpdGVtPjE5OTctMTItMDMgOiBDTVNNY1EgOiB5ZXQgZnVydGhlciBjaGFuZ2VzPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEyLTAyIDogVEIgOiBmdXJ0aGVyIGNoYW5nZXMgKHNlZSBUQiB0byBYTUwgV0csCisyIERlY2VtYmVyIDE5OTcpPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEyLTAyIDogQ01TTWNRIDogZGVhbCB3aXRoIGFzIG1hbnkgY29ycmVjdGlvbnMgYW5kCitjb21tZW50cyBmcm9tIHRoZSBwcm9vZnJlYWRlcnMgYXMgcG9zc2libGU6CitlbnRpZnkgaGFyZC1jb2RlZCBkb2N1bWVudCBkYXRlIGluIHB1YmRhdGUgZWxlbWVudCwKK2NoYW5nZSBleHBhbnNpb24gb2YgZW50aXR5IFdlYlNHTUwsCit1cGRhdGUgc3RhdHVzIGRlc2NyaXB0aW9uIGFzIHBlciBEYW4gQ29ubm9sbHkgKGFtIG5vdCBzdXJlCithYm91dCByZWZlcm5lY2UgdG8gQmVybmVycy1MZWUgZXQgYWwuKSwKK2FkZCAnVGhlJyB0byBhYnN0cmFjdCBhcyBwZXIgV0cgZGVjaXNpb24sCittb3ZlIFJlbGF0aW9uc2hpcCB0byBFeGlzdGluZyBTdGFuZGFyZHMgdG8gYmFjayBtYXR0ZXIgYW5kCitjb21iaW5lIHdpdGggUmVmZXJlbmNlcywKK3JlLW9yZGVyIGJhY2sgbWF0dGVyIHNvIG5vcm1hdGl2ZSBhcHBlbmRpY2VzIGNvbWUgZmlyc3QsCityZS10YWcgYmFjayBtYXR0ZXIgc28gaW5mb3JtYXRpdmUgYXBwZW5kaWNlcyBhcmUgdGFnZ2VkIGluZm9ybWRpdjEsCityZW1vdmUgWFhYIFhYWCBmcm9tIGxpc3Qgb2YgJ25vcm1hdGl2ZScgc3BlY3MgaW4gcHJvc2UsCittb3ZlIHNvbWUgcmVmZXJlbmNlcyBmcm9tIE90aGVyIFJlZmVyZW5jZXMgdG8gTm9ybWF0aXZlIFJlZmVyZW5jZXMsCithZGQgUkZDIDE3MzgsIDE4MDgsIGFuZCAyMTQxIHRvIE90aGVyIFJlZmVyZW5jZXMgKHRoZXkgYXJlIG5vdAorbm9ybWF0aXZlIHNpbmNlIHdlIGRvIG5vdCByZXF1aXJlIHRoZSBwcm9jZXNzb3IgdG8gZW5mb3JjZSBhbnkgCitydWxlcyBiYXNlZCBvbiB0aGVtKSwKK2FkZCByZWZlcmVuY2UgdG8gJ0ZpZWxkaW5nIGRyYWZ0JyAoQmVybmVycy1MZWUgZXQgYWwuKSwKK21vdmUgbm90YXRpb24gc2VjdGlvbiB0byBlbmQgb2YgYm9keSwKK2Ryb3AgVVJJY2hhciBub24tdGVybWluYWwgYW5kIHVzZSBTa2lwTGl0IGluc3RlYWQsCitsb3NlIHN0cmF5IHJlZmVyZW5jZSB0byBkZWZ1bmN0IG5vbnRlcm1pbmFsICdtYXJrdXBkZWNscycsCittb3ZlIHJlZmVyZW5jZSB0byBBaG8gZXQgYWwuIGludG8gYXBwZW5kaXggKFRpbSdzIHJpZ2h0KSwKK2FkZCBwcm9zZSBub3RlIHNheWluZyB0aGF0IGhhc2ggbWFya3MgYW5kIGZyYWdtZW50IGlkZW50aWZpZXJzIGFyZQorTk9UIHBhcnQgb2YgdGhlIFVSSSBmb3JtYWxseSBzcGVha2luZywgYW5kIGFyZSBOT1QgbGVnYWwgaW4gCitzeXN0ZW0gaWRlbnRpZmllcnMgKHByb2Nlc3NvciAnbWF5JyBzaWduYWwgYW4gZXJyb3IpLgorV29yayB0aHJvdWdoOgorVGltIEJyYXkgcmVhY3RpbmcgdG8gSmFtZXMgQ2xhcmssCitUaW0gQnJheSBvbiBoaXMgb3duLAorRXZlIE1hbGVyLAorCitOT1QgRE9ORSBZRVQ6CitjaGFuZ2UgYmluYXJ5IC8gdGV4dCB0byB1bnBhcnNlZCAvIHBhcnNlZC4KK2hhbmRsZSBKYW1lcydzIHN1Z2dlc3Rpb24gYWJvdXQgJmx0OyBpbiBhdHRyaXVidGUgdmFsdWVzCit1cHBlcmNhc2UgaGV4IGNoYXJhY3RlcnMsCituYW1lY2hhciBsaXN0LAorPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEyLTAxIDogSkIgOiBhZGQgc29tZSBjb2x1bW4td2lkdGggcGFyYW1ldGVyczwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMi0wMSA6IENNU01jUSA6IGJlZ2luIHJvdW5kIG9mIGNoYW5nZXMgdG8gaW5jb3Jwb3JhdGUKK3JlY2VudCBXRyBkZWNpc2lvbnMgYW5kIG90aGVyIGNvcnJlY3Rpb25zOgorYmluZGluZyBzb3VyY2VzIG9mIGNoYXJhY3RlciBlbmNvZGluZyBpbmZvICgyNyBBdWcgLyAzIFNlcHQpLAorY29ycmVjdCB3b3JkaW5nIG9mIEZhdXN0IHF1b3RhdGlvbiAocmVzdG9yZSBkcm9wcGVkIGxpbmUpLAorZHJvcCBTREQgZnJvbSBFbmNvZGluZ0RlY2wsCitjaGFuZ2UgdGV4dCBhdCB2ZXJzaW9uIG51bWJlciAxLjAsCitkcm9wIG1pc2xlYWRpbmcgKHdyb25nISkgc2VudGVuY2UgYWJvdXQgaWdub3JhYmxlcyBhbmQgZXh0ZW5kZXJzLAorbW9kaWZ5IGRlZmluaXRpb24gb2YgUENEYXRhIHRvIG1ha2UgYmFyIG9uIG1zYyBncmFtbWF0aWNhbCwKK2NoYW5nZSBncmFtbWFyJ3MgaGFuZGxpbmcgb2YgaW50ZXJuYWwgc3Vic2V0IChkcm9wIG5vbi10ZXJtaW5hbCBtYXJrdXBkZWNscyksCitjaGFuZ2UgZGVmaW5pdGlvbiBvZiBpbmNsdWRlU2VjdCB0byBhbGxvdyBjb25kaXRpb25hbCBzZWN0aW9ucywKK2FkZCBpbnRlZ3JhbC1kZWNsYXJhdGlvbiBjb25zdHJhaW50IG9uIGludGVybmFsIHN1YnNldCwKK2Ryb3AgbWlzbGVhZGluZyAvIGRhbmdlcm91cyBzZW50ZW5jZSBhYm91dCByZWxhdGlvbnNoaXAgb2YKK2VudGl0aWVzIHdpdGggc3lzdGVtIHN0b3JhZ2Ugb2JqZWN0cywKK2NoYW5nZSB0YWJsZSBib2R5IHRhZyB0byBodGJvZHkgYXMgcGVyIEVNIGNoYW5nZSB0byBEVEQsCithZGQgcnVsZSBhYm91dCBzcGFjZSBub3JtYWxpemF0aW9uIGluIHB1YmxpYyBpZGVudGlmaWVycywKK2FkZCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gZ2VuZXJhdGUgb3VyIG5hbWUtc3BhY2UgcnVsZXMgZnJvbSAKK1VuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlIChuZWVkcyBmdXJ0aGVyIHdvcmshKS4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0xMC0wOCA6IFRCIDogUmVtb3ZlZCAlLWNvbnN0cnVjdHMgYWdhaW4sIG5ldyBydWxlcworZm9yIFBFIGFwcGVhcmFuY2UuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTEwLTAxIDogVEIgOiBDYXNlLXNlbnNpdGl2ZSBtYXJrdXA7IGNsZWFuZWQgdXAKK2VsZW1lbnQtdHlwZSBkZWZzLCBsb3RzYSBsaXR0bGUgZWRpdHMgZm9yIHN0eWxlPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTA5LTI1IDogVEIgOiBDaGFuZ2UgdG8gZWxtJ3MgbmV3IERURCwgd2l0aAorc3Vic3RhbnRpYWwgZGV0YWlsIGNsZWFudXAgYXMgYSBzaWRlLWVmZmVjdDwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNy0yNCA6IENNU01jUSA6IGNvcnJlY3QgZXJyb3IgKGxvc3QgKikgaW4gZGVmaW5pdGlvbiAKK29mIGlnbm9yZVNlY3RDb250ZW50cyAodGhhbmtzIHRvIE1ha290byBNdXJhdGEpPC9zaXRlbT4KKzxzaXRlbT5BbGxvdyBhbGwgZW1wdHkgZWxlbWVudHMgdG8gaGF2ZSBlbmQtdGFncywgY29uc2lzdGVudCB3aXRoCitTR01MIFRDIChhcyBwZXIgSkpDKS48L3NpdGVtPgorPHNpdGVtPjE5OTctMDctMjMgOiBDTVNNY1EgOiBwcmUtZW1wdGl2ZSBzdHJpa2Ugb24gcGVuZGluZyBjb3JyZWN0aW9uczoKK2ludHJvZHVjZSB0aGUgdGVybSAnZW1wdHktZWxlbWVudCB0YWcnLCBub3RlIHRoYXQgYWxsIGVtcHR5IGVsZW1lbnRzCittYXkgdXNlIGl0LCBhbmQgZWxlbWVudHMgZGVjbGFyZWQgRU1QVFkgbXVzdCB1c2UgaXQuCitBZGQgV0ZDIHJlcXVpcmluZyBlbmNvZGluZyBkZWNsIHRvIGNvbWUgZmlyc3QgaW4gYW4gZW50aXR5LgorUmVkZWZpbmUgbm90YXRpb25zIHRvIHBvaW50IHRvIFBJcyBhcyB3ZWxsIGFzIGJpbmFyeSBlbnRpdGllcy4KK0NoYW5nZSBhdXRvZGV0ZWN0aW9uIHRhYmxlIGJ5IHJlbW92aW5nIGJ5dGVzIDMgYW5kIDQgZnJvbSAKK2V4YW1wbGVzIHdpdGggQnl0ZSBPcmRlciBNYXJrLgorQWRkIGNvbnRlbnQgbW9kZWwgYXMgYSB0ZXJtIGFuZCBjbGFyaWZ5IHRoYXQgaXQgYXBwbGllcyB0byBib3RoCittaXhlZCBhbmQgZWxlbWVudCBjb250ZW50LgorPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTA2LTMwIDogQ01TTWNRIDogY2hhbmdlIGRhdGUsIHNvbWUgY29zbWV0aWMgY2hhbmdlcywKK2NoYW5nZXMgdG8gcHJvZHVjdGlvbnMgZm9yIGNob2ljZSwgc2VxLCBNaXhlZCwgTm90YXRpb25UeXBlLAorRW51bWVyYXRpb24uICBGb2xsb3cgSmFtZXMgQ2xhcmsncyBzdWdnZXN0aW9uIGFuZCBwcm9oaWJpdCAKK2NvbmRpdGlvbmFsIHNlY3Rpb25zIGluIGludGVybmFsIHN1YnNldC4gIFRPIERPOiAgc2ltcGxpZnkKK3Byb2R1Y3Rpb24gZm9yIGlnbm9yZWQgc2VjdGlvbnMgYXMgYSByZXN1bHQsIHNpbmNlIHdlIGRvbid0IAorbmVlZCB0byB3b3JyeSBhYm91dCBwYXJzZXJzIHdoaWNoIGRvbid0IGV4cGFuZCBQRXJlZnMgZmluZGluZworYSBjb25kaXRpb25hbCBzZWN0aW9uLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0yOSA6IFRCIDogdmFyaW91cyBlZGl0czwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0yOSA6IENNU01jUSA6IGZ1cnRoZXIgY2hhbmdlczoKK1N1cHByZXNzIG9sZCBGSU5BTCBFRElUIGNvbW1lbnRzIGFuZCBzb21lIGRlYWQgbWF0ZXJpYWwuCitSZXZpc2Ugb2NjdXJyZW5jZXMgb2YgJSBpbiBncmFtbWFyIHRvIGV4cGxvaXQgSGVucnkgVGhvbXBzb24ncyBwdW4sCitlc3BlY2lhbGx5IG1hcmt1cGRlY2wgYW5kIGF0dGRlZi4KK1JlbW92ZSBSTUQgcmVxdWlyZW1lbnQgcmVsYXRpbmcgdG8gZWxlbWVudCBjb250ZW50ICg/KS4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNi0yOCA6IENNU01jUSA6IFZhcmlvdXMgY2hhbmdlcyBmb3IgMSBKdWx5IGRyYWZ0OgorQWRkIHRleHQgZm9yIGRyYWNvbmlhbiBlcnJvciBoYW5kbGluZyAoaW50cm9kdWNlCit0aGUgdGVybSBGYXRhbCBFcnJvcikuCitSRSBkZWxldGEgZXN0IChjaGFuZ2luZyB3b3JkaW5nIGZyb20gCitvcmlnaW5hbCBhbm5vdW5jZW1lbnQgdG8gcmVzdHJpY3QgdGhlIHJlcXVpcmVtZW50IHRvIHZhbGlkYXRpbmcKK3BhcnNlcnMpLgorVGFnIGRlZmluaXRpb24gb2YgdmFsaWRhdGluZyBwcm9jZXNzb3IgYW5kIGxpbmsgdG8gaXQuCitBZGQgY29sb24gYXMgbmFtZSBjaGFyYWN0ZXIuCitDaGFuZ2UgZGVmIG9mICVvcGVyYXRvci4KK0NoYW5nZSBzdGFuZGFyZCBkZWZpbml0aW9ucyBvZiBsdCwgZ3QsIGFtcC4KK1N0cmlwIGxlYWRpbmcgemVyb3MgZnJvbSAjeDAwbm4gZm9ybXMuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTA0LTAyIDogQ01TTWNRIDogZmluYWwgY29ycmVjdGlvbnMgb2YgZWRpdG9yaWFsIGVycm9ycworZm91bmQgaW4gbGFzdCBuaWdodCdzIHByb29mcmVhZGluZy4gIFJldmVyc2UgY291cnNlIG9uY2UgbW9yZSBvbgord2VsbC1mb3JtZWQ6ICAgV2Vic3RlcidzIFNlY29uZCBoeXBoZW5hdGVzIGl0LCBhbmQgdGhhdCdzIGVub3VnaAorZm9yIG1lLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wNC0wMSA6IENNU01jUSA6IGNvcnJlY3Rpb25zIGZyb20gSkpDLCBFTSwgSFQsIGFuZCBzZWxmPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTMxIDogVGltIEJyYXkgOiBtYW55IGNoYW5nZXM8L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjkgOiBDTVNNY1EgOiBzb21lIEhlbnJ5IFRob21wc29uIChvbiBlbnRpdHkgaGFuZGxpbmcpLAorc29tZSBDaGFybGVzIEdvbGRmYXJiLCBzb21lIEVSQiBkZWNpc2lvbnMgKFBFIGhhbmRsaW5nIGluIG1pc2NlbGxhbmVvdXMKK2RlY2xhcmF0aW9ucy4gIENoYW5nZWQgSWRlbnQgZWxlbWVudCB0byBhY2NlcHQgZGVmIGF0dHJpYnV0ZS4KK0FsbG93IG5vcm1hbGl6YXRpb24gb2YgVW5pY29kZSBjaGFyYWN0ZXJzLiAgbW92ZSBkZWYgb2Ygc3lzdGVtbGl0ZXJhbAoraW50byBzZWN0aW9uIG9uIGxpdGVyYWxzLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yOCA6IENNU01jUSA6IG1ha2UgYXMgbWFueSBjb3JyZWN0aW9ucyBhcyBwb3NzaWJsZSwgZnJvbQorVGVycnkgQWxsZW4sIE5vcmJlcnQgTWlrdWxhLCBKYW1lcyBDbGFyaywgSm9uIEJvc2FrLCBIZW5yeSBUaG9tcHNvbiwKK1BhdWwgR3Jvc3NvLCBhbmQgc2VsZi4gIEFtb25nIG90aGVyIHRoaW5nczogIGdpdmUgaW4gb24gIndlbGwgZm9ybWVkIgorKFRlcnJ5IGlzIHJpZ2h0KSwgdGVudGF0aXZlbHkgcmVuYW1lIFF1b3RlZENEYXRhIGFzIEF0dFZhbHVlCithbmQgTGl0ZXJhbCBhcyBFbnRpdHlWYWx1ZSB0byBiZSBtb3JlIGluZm9ybWF0aXZlLCBzaW5jZSBhdHRyaWJ1dGUKK3ZhbHVlcyBhcmUgdGhlIDxlbXBoPm9ubHk8L2VtcGg+IHBsYWNlIFF1b3RlZENEYXRhIHdhcyB1c2VkLCBhbmQKK3ZpY2UgdmVyc2EgZm9yIGVudGl0eSB0ZXh0IGFuZCBMaXRlcmFsLiAoSSdkIGNhbGwgaXQgRW50aXR5IFRleHQsIAorYnV0IDg4NzkgdXNlcyB0aGF0IG5hbWUgZm9yIGJvdGggaW50ZXJuYWwgYW5kIGV4dGVybmFsIGVudGl0aWVzLik8L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjYgOiBDTVNNY1EgOiByZXN5bmNoIHRoZSB0d28gZm9ya3Mgb2YgdGhpcyBkcmFmdCwgcmVhcHBseQorbXkgY2hhbmdlcyBkYXRlZCAwMy0yMCBhbmQgMDMtMjEuICBOb3JtYWxpemUgb2xkICdtYXkgbm90JyB0byAnbXVzdCBub3QnCitleGNlcHQgaW4gdGhlIG9uZSBjYXNlIHdoZXJlIGl0IG1lYW50ICdtYXkgb3IgbWF5IG5vdCcuPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTIxIDogVEIgOiBtYXNzaXZlIGNoYW5nZXMgb24gcGxhbmUgZmxpZ2h0IGZyb20gQ2hpY2FnbwordG8gVmFuY291dmVyPC9zaXRlbT4KKzxzaXRlbT4xOTk3LTAzLTIxIDogQ01TTWNRIDogY29ycmVjdCBhcyBtYW55IHJlcG9ydGVkIGVycm9ycyBhcyBwb3NzaWJsZS4KKzwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ny0wMy0yMCA6IENNU01jUSA6IGNvcnJlY3QgdHlwb3MgbGlzdGVkIGluIENNU01jUSBoYW5kIGNvcHkgb2Ygc3BlYy48L3NpdGVtPgorPHNpdGVtPjE5OTctMDMtMjAgOiBDTVNNY1EgOiBjb3NtZXRpYyBjaGFuZ2VzIHByZXBhcmF0b3J5IHRvIHJldmlzaW9uIGZvcgorV1dXIGNvbmZlcmVuY2UgQXByaWwgMTk5NzogIHJlc3RvcmUgc29tZSBvZiB0aGUgaW50ZXJuYWwgZW50aXR5IAorcmVmZXJlbmNlcyAoZS5nLiB0byBkb2NkYXRlLCBldGMuKSwgY2hhbmdlIGNoYXJhY3RlciB4QTAgdG8gJmFtcDtuYnNwOworYW5kIGRlZmluZSBuYnNwIGFzICZhbXA7IzE2MDssIGFuZCByZWZpbGwgYSBsb3Qgb2YgcGFyYWdyYXBocyBmb3IKK2xlZ2liaWxpdHkuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTExLTEyIDogQ01TTWNRIDogcmV2aXNlIHVzaW5nIFRpbSdzIGVkaXRzOgorQWRkIGxpc3QgdHlwZSBvZiBOVU1CRVJFRCBhbmQgY2hhbmdlIG1vc3QgbGlzdHMgZWl0aGVyIHRvCitCVUxMRVRTIG9yIHRvIE5VTUJFUkVELgorU3VwcHJlc3MgUXVvdGVkTmFtZXMsIE5hbWVzIChub3QgdXNlZCkuCitDb3JyZWN0IHRyaXZpYWwtZ3JhbW1hciBkb2MgdHlwZSBkZWNsLgorUmVuYW1lICdtYXJrZWQgc2VjdGlvbicgYXMgJ0NEQVRBIHNlY3Rpb24nIHBhc3NpbS4KK0Fsc28gZWRpdHMgZnJvbSBKYW1lcyBDbGFyazoKK0RlZmluZSB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgZnJvbSB3aGljaCBbXmFiY10gc3VidHJhY3RzLgorQ2hhcnJlZiBzaG91bGQgdXNlIGp1c3QgWzAtOV0gbm90IERpZ2l0LgorTG9jYXRpb24gaW5mbyBuZWVkcyBjbGVhbmVyIHRyZWF0bWVudDogIHJlbW92ZT8gIChFUkIKK3F1ZXN0aW9uKS4KK09uZSBleGFtcGxlIG9mIGEgUEkgaGFzIHdyb25nIHBpYy4KK0NsYXJpZnkgZGlzY3Vzc2lvbiBvZiBlbmNvZGluZyBuYW1lcy4KK0VuY29kaW5nIGZhaWx1cmUgc2hvdWxkIGxlYWQgdG8gdW5zcGVjaWZpZWQgcmVzdWx0czsgZG9uJ3QKK3ByZXNjcmliZSBlcnJvciByZWNvdmVyeS4KK0Rvbid0IHJlcXVpcmUgZXhwb3N1cmUgb2YgZW50aXR5IGJvdW5kYXJpZXMuCitJZ25vcmUgd2hpdGUgc3BhY2UgaW4gZWxlbWVudCBjb250ZW50LgorUmVzZXJ2ZSBlbnRpdHkgbmFtZXMgb2YgdGhlIGZvcm0gdS1OTk5OLgorQ2xhcmlmeSByZWxhdGl2ZSBVUkxzLgorQW5kIHNvbWUgb2YgbXkgb3duOgorQ29ycmVjdCBwcm9kdWN0aW9ucyBmb3IgY29udGVudCBtb2RlbDogIG1vZGVsIGNhbm5vdAorY29uc2lzdCBvZiBhIG5hbWUsIHNvICJlbGVtZW50cyA6Oj0gY3AiIGlzIG5vIGdvb2QuCis8L3NpdGVtPgorPHNpdGVtPjE5OTYtMTEtMTEgOiBDTVNNY1EgOiByZXZpc2UgZm9yIHN0eWxlLgorQWRkIG5ldyByaHMgdG8gZW50aXR5IGRlY2xhcmF0aW9uLCBmb3IgcGFyYW1ldGVyIGVudGl0aWVzLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMS0xMCA6IENNU01jUSA6IHJldmlzZSBmb3Igc3R5bGUuCitGaXggLyBjb21wbGV0ZSBzZWN0aW9uIG9uIG5hbWVzLCBjaGFyYWN0ZXJzLgorQWRkIHNlY3Rpb25zIG9uIHBhcmFtZXRlciBlbnRpdGllcywgY29uZGl0aW9uYWwgc2VjdGlvbnMuCitTdGlsbCB0byBkbzogIEFkZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gZGV0ZXJtaW5pc3RpYyBjb250ZW50IG1vZGVscy4KK0ZpbmlzaCBzdHlsaXN0aWMgcmV2aXNpb24uPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTMxIDogVEIgOiBBZGQgRW50aXR5IEhhbmRsaW5nIHNlY3Rpb248L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMzAgOiBUQiA6IENsZWFuIHVwIHRlcm0gJmFtcDsgdGVybWRlZi4gIFNsaXAgaW4KK0VSQiBkZWNpc2lvbiByZSBFTVBUWS48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMjggOiBUQiA6IENoYW5nZSBEVEQuICBJbXBsZW1lbnQgc29tZSBvZiBNaWNoYWVsJ3MKK3N1Z2dlc3Rpb25zLiAgQ2hhbmdlIGNvbW1lbnRzIGJhY2sgdG8gLy8uICBJbnRyb2R1Y2UgbGFuZ3VhZ2UgZm9yCitYTUwgbmFtZXNwYWNlIHJlc2VydmF0aW9uLiAgQWRkIHNlY3Rpb24gb24gd2hpdGUtc3BhY2UgaGFuZGxpbmcuCitMb3RzIG1vcmUgY2xlYW51cC48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMjQgOiBDTVNNY1EgOiBxdWljayB0d2Vha3MsIGltcGxlbWVudCBzb21lIEVSQgorZGVjaXNpb25zLiAgQ2hhcmFjdGVycyBhcmUgbm90IGludGVnZXJzLiAgQ29tbWVudHMgYXJlIC8qICovIG5vdCAvLy4KK0FkZCBiaWJsaW9ncmFwaGljIHJlZnMgdG8gMTA2NDYsIEh5VGltZSwgVW5pY29kZS4KK1JlbmFtZSBvbGQgQ2RhdGEgYXMgTXNEYXRhIHNpbmNlIGl0J3MgPGVtcGg+b25seTwvZW1waD4gc2VlbgoraW4gbWFya2VkIHNlY3Rpb25zLiAgQ2FsbCB0aGVtIGF0dHJpYnV0ZS12YWx1ZSBwYWlycyBub3QKK25hbWUtdmFsdWUgcGFpcnMsIGV4Y2VwdCBvbmNlLiAgSW50ZXJuYWwgc3Vic2V0IGlzIG9wdGlvbmFsLCBuZWVkcworJz8nLiAgSW1wbGllZCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzaWduYWxlZCB0byB0aGUgYXBwLCBub3QKK2hhdmUgdmFsdWVzIHN1cHBsaWVkIGJ5IHByb2Nlc3Nvci48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMTYgOiBUQiA6IHRyYWNrIGRvd24gJmFtcDsgZXhjaXNlIGFsbCBEU0QgcmVmZXJlbmNlczsKK2ludHJvZHVjZSBzb21lIEVCTkYgZm9yIGVudGl0eSBkZWNsYXJhdGlvbnMuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLT8/IDogVEIgOiBjb25zaXN0ZW5jeSBjaGVjaywgZml4IHVwIHNjcmFwcyBzbwordGhleSBhbGwgcGFyc2UsIGdldCBmb3JtYXR0ZXIgd29ya2luZywgY29ycmVjdCBhIGZldyBwcm9kdWN0aW9ucy48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMTAvMTEgOiBDTVNNY1EgOiB2YXJpb3VzIG1haW50ZW5hbmNlLCBzdHlsaXN0aWMsIGFuZAorb3JnYW5pemF0aW9uYWwgY2hhbmdlczoKK1JlcGxhY2UgYSBmZXcgbGl0ZXJhbHMgd2l0aCB4bWxwaW8gYW5kCitwaWMgZW50aXRpZXMsIHRvIG1ha2UgdGhlbSBjb25zaXN0ZW50IGFuZCBlbnN1cmUgd2UgY2FuIGNoYW5nZSBwaWMKK3JlbGlhYmx5IHdoZW4gdGhlIEVSQiB2b3Rlcy4KK0Ryb3AgcGFyYWdyYXBoIG9uIHJlY29nbml6ZXJzIGZyb20gbm90YXRpb24gc2VjdGlvbi4KK0FkZCBtYXRjaCwgZXhhY3QgbWF0Y2ggdG8gdGVybWlub2xvZ3kuCitNb3ZlIG9sZCAyLjIgWE1MIFByb2Nlc3NvcnMgYW5kIEFwcHMgaW50byBpbnRyby4KK01lbnRpb24gY29tbWVudHMsIFBJcywgYW5kIG1hcmtlZCBzZWN0aW9ucyBpbiBkaXNjdXNzaW9uIG9mCitkZWxpbWl0ZXIgZXNjYXBpbmcuCitTdHJlYW1saW5lIGRpc2N1c3Npb24gb2YgZG9jdHlwZSBkZWNsIHN5bnRheC4KK0Ryb3Agb2xkIHNlY3Rpb24gb2YgJ1BJIHN5bnRheCcgZm9yIGRvY3R5cGUgZGVjbCwgYW5kIGFkZAorc2VjdGlvbiBvbiBwYXJ0aWFsLURURCBzdW1tYXJ5IFBJcyB0byBlbmQgb2YgTG9naWNhbCBTdHJ1Y3R1cmVzCitzZWN0aW9uLgorUmV2aXNlIERTRCBzeW50YXggc2VjdGlvbiB0byB1c2UgVGltJ3Mgc3Vic2V0LWluLWEtUEkKK21lY2hhbmlzbS48L3NpdGVtPgorPHNpdGVtPjE5OTYtMTAtMTAgOiBUQiA6IGVsaW1pbmF0ZSBuYW1lIHJlY29nbml6ZXJzIChhbmQgbW9yZT8pPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTEwLTA5IDogQ01TTWNRIDogcmV2aXNlIGZvciBzdHlsZSwgY29uc2lzdGVuY3kgdGhyb3VnaCAyLjMKKyhDaGFyYWN0ZXJzKTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wOSA6IENNU01jUSA6IHJlLXVuaXRlIGV2ZXJ5dGhpbmcgZm9yIGNvbnZlbmllbmNlLAorYXQgbGVhc3QgdGVtcG9yYXJpbHksIGFuZCByZXZpc2UgcXVpY2tseTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wOCA6IFRCIDogZmlyc3QgbWFqb3IgaG9tb2dlbml6YXRpb24gcGFzczwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wOCA6IFRCIDogdHVybiAiY3VycmVudCIgYXR0cmlidXRlIG9uIGRpdiB0eXBlIGludG8gCitDREFUQTwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0xMC0wMiA6IFRCIDogcmVtb3VsZCBpbnRvIHNrZWxldG9uICsgZW50aXRpZXM8L3NpdGVtPgorPHNpdGVtPjE5OTYtMDktMzAgOiBDTVNNY1EgOiBhZGQgYSBmZXcgbW9yZSBzZWN0aW9ucyBwcmlvciB0byBleGNoYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggVGltLjwvc2l0ZW0+Cis8c2l0ZW0+MTk5Ni0wOS0yMCA6IENNU01jUSA6IGZpbmlzaCB0cmFuc2NyaWJpbmcgbm90ZXMuPC9zaXRlbT4KKzxzaXRlbT4xOTk2LTA5LTE5IDogQ01TTWNRIDogYmVnaW4gdHJhbnNjcmliaW5nIG5vdGVzIGZvciBkcmFmdC48L3NpdGVtPgorPHNpdGVtPjE5OTYtMDktMTMgOiBDTVNNY1EgOiBtYWRlIG91dGxpbmUgZnJvbSBub3RlcyBvZiAwOS0wNiwKK2RvIHNvbWUgaG91c2VrZWVwaW5nPC9zaXRlbT4KKzwvc2xpc3Q+Cis8L3JldmlzaW9uZGVzYz4KKzwvaGVhZGVyPgorPGJvZHk+IAorPGRpdjEgaWQ9J3NlYy1pbnRybyc+Cis8aGVhZD5JbnRyb2R1Y3Rpb248L2hlYWQ+Cis8cD5FeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSwgYWJicmV2aWF0ZWQgWE1MLCBkZXNjcmliZXMgYSBjbGFzcyBvZgorZGF0YSBvYmplY3RzIGNhbGxlZCA8dGVybXJlZiBkZWY9ImR0LXhtbC1kb2MiPlhNTCBkb2N1bWVudHM8L3Rlcm1yZWY+IGFuZAorcGFydGlhbGx5IGRlc2NyaWJlcyB0aGUgYmVoYXZpb3Igb2YgCitjb21wdXRlciBwcm9ncmFtcyB3aGljaCBwcm9jZXNzIHRoZW0uIFhNTCBpcyBhbiBhcHBsaWNhdGlvbiBwcm9maWxlIG9yCityZXN0cmljdGVkIGZvcm0gb2YgU0dNTCwgdGhlIFN0YW5kYXJkIEdlbmVyYWxpemVkIE1hcmt1cCAKK0xhbmd1YWdlIDxiaWJyZWYgcmVmPSdJU084ODc5Jy8+LgorQnkgY29uc3RydWN0aW9uLCBYTUwgZG9jdW1lbnRzIAorYXJlIGNvbmZvcm1pbmcgU0dNTCBkb2N1bWVudHMuCis8L3A+Cis8cD5YTUwgZG9jdW1lbnRzIGFyZSBtYWRlIHVwIG9mIHN0b3JhZ2UgdW5pdHMgY2FsbGVkIDx0ZXJtcmVmCitkZWY9ImR0LWVudGl0eSI+ZW50aXRpZXM8L3Rlcm1yZWY+LCB3aGljaCBjb250YWluIGVpdGhlciBwYXJzZWQKK29yIHVucGFyc2VkIGRhdGEuCitQYXJzZWQgZGF0YSBpcyBtYWRlIHVwIG9mIDx0ZXJtcmVmIGRlZj0iZHQtY2hhcmFjdGVyIj5jaGFyYWN0ZXJzPC90ZXJtcmVmPiwKK3NvbWUgCitvZiB3aGljaCBmb3JtIDx0ZXJtcmVmIGRlZj0iZHQtY2hhcmRhdGEiPmNoYXJhY3RlciBkYXRhPC90ZXJtcmVmPiwgCithbmQgc29tZSBvZiB3aGljaCBmb3JtIDx0ZXJtcmVmIGRlZj0iZHQtbWFya3VwIj5tYXJrdXA8L3Rlcm1yZWY+LgorTWFya3VwIGVuY29kZXMgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZG9jdW1lbnQncyBzdG9yYWdlIGxheW91dCBhbmQKK2xvZ2ljYWwgc3RydWN0dXJlLiBYTUwgcHJvdmlkZXMgYSBtZWNoYW5pc20gdG8gaW1wb3NlIGNvbnN0cmFpbnRzIG9uCit0aGUgc3RvcmFnZSBsYXlvdXQgYW5kIGxvZ2ljYWwgc3RydWN0dXJlLjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC14bWwtcHJvYyIgdGVybT0iWE1MIFByb2Nlc3NvciI+QSBzb2Z0d2FyZSBtb2R1bGUKK2NhbGxlZCBhbiA8dGVybT5YTUwgcHJvY2Vzc29yPC90ZXJtPiBpcyB1c2VkIHRvIHJlYWQgWE1MIGRvY3VtZW50cworYW5kIHByb3ZpZGUgYWNjZXNzIHRvIHRoZWlyIGNvbnRlbnQgYW5kIHN0cnVjdHVyZS48L3Rlcm1kZWY+IDx0ZXJtZGVmCitpZD0iZHQtYXBwIiB0ZXJtPSJBcHBsaWNhdGlvbiI+SXQgaXMgYXNzdW1lZCB0aGF0IGFuIFhNTCBwcm9jZXNzb3IgaXMKK2RvaW5nIGl0cyB3b3JrIG9uIGJlaGFsZiBvZiBhbm90aGVyIG1vZHVsZSwgY2FsbGVkIHRoZQorPHRlcm0+YXBwbGljYXRpb248L3Rlcm0+LjwvdGVybWRlZj4gVGhpcyBzcGVjaWZpY2F0aW9uIGRlc2NyaWJlcyB0aGUKK3JlcXVpcmVkIGJlaGF2aW9yIG9mIGFuIFhNTCBwcm9jZXNzb3IgaW4gdGVybXMgb2YgaG93IGl0IG11c3QgcmVhZCBYTUwKK2RhdGEgYW5kIHRoZSBpbmZvcm1hdGlvbiBpdCBtdXN0IHByb3ZpZGUgdG8gdGhlIGFwcGxpY2F0aW9uLjwvcD4KKyAKKzxkaXYyIGlkPSdzZWMtb3JpZ2luLWdvYWxzJz4KKzxoZWFkPk9yaWdpbiBhbmQgR29hbHM8L2hlYWQ+Cis8cD5YTUwgd2FzIGRldmVsb3BlZCBieSBhbiBYTUwgV29ya2luZyBHcm91cCAob3JpZ2luYWxseSBrbm93biBhcyB0aGUKK1NHTUwgRWRpdG9yaWFsIFJldmlldyBCb2FyZCkgZm9ybWVkIHVuZGVyIHRoZSBhdXNwaWNlcyBvZiB0aGUgV29ybGQKK1dpZGUgV2ViIENvbnNvcnRpdW0gKFczQykgaW4gMTk5Ni4KK0l0IHdhcyBjaGFpcmVkIGJ5IEpvbiBCb3NhayBvZiBTdW4KK01pY3Jvc3lzdGVtcyB3aXRoIHRoZSBhY3RpdmUgcGFydGljaXBhdGlvbiBvZiBhbiBYTUwgU3BlY2lhbAorSW50ZXJlc3QgR3JvdXAgKHByZXZpb3VzbHkga25vd24gYXMgdGhlIFNHTUwgV29ya2luZyBHcm91cCkgYWxzbworb3JnYW5pemVkIGJ5IHRoZSBXM0MuIFRoZSBtZW1iZXJzaGlwIG9mIHRoZSBYTUwgV29ya2luZyBHcm91cCBpcyBnaXZlbgoraW4gYW4gYXBwZW5kaXguIERhbiBDb25ub2xseSBzZXJ2ZWQgYXMgdGhlIFdHJ3MgY29udGFjdCB3aXRoIHRoZSBXM0MuCis8L3A+Cis8cD5UaGUgZGVzaWduIGdvYWxzIGZvciBYTUwgYXJlOjxvbGlzdD4KKzxpdGVtPjxwPlhNTCBzaGFsbCBiZSBzdHJhaWdodGZvcndhcmRseSB1c2FibGUgb3ZlciB0aGUKK0ludGVybmV0LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5YTUwgc2hhbGwgc3VwcG9ydCBhIHdpZGUgdmFyaWV0eSBvZiBhcHBsaWNhdGlvbnMuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlhNTCBzaGFsbCBiZSBjb21wYXRpYmxlIHdpdGggU0dNTC48L3A+PC9pdGVtPgorPGl0ZW0+PHA+SXQgc2hhbGwgYmUgZWFzeSB0byB3cml0ZSBwcm9ncmFtcyB3aGljaCBwcm9jZXNzIFhNTAorZG9jdW1lbnRzLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgbnVtYmVyIG9mIG9wdGlvbmFsIGZlYXR1cmVzIGluIFhNTCBpcyB0byBiZSBrZXB0IHRvIHRoZQorYWJzb2x1dGUgbWluaW11bSwgaWRlYWxseSB6ZXJvLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5YTUwgZG9jdW1lbnRzIHNob3VsZCBiZSBodW1hbi1sZWdpYmxlIGFuZCByZWFzb25hYmx5CitjbGVhci48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VGhlIFhNTCBkZXNpZ24gc2hvdWxkIGJlIHByZXBhcmVkIHF1aWNrbHkuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRoZSBkZXNpZ24gb2YgWE1MIHNoYWxsIGJlIGZvcm1hbCBhbmQgY29uY2lzZS48L3A+PC9pdGVtPgorPGl0ZW0+PHA+WE1MIGRvY3VtZW50cyBzaGFsbCBiZSBlYXN5IHRvIGNyZWF0ZS48L3A+PC9pdGVtPgorPGl0ZW0+PHA+VGVyc2VuZXNzIGluIFhNTCBtYXJrdXAgaXMgb2YgbWluaW1hbCBpbXBvcnRhbmNlLjwvcD48L2l0ZW0+PC9vbGlzdD4KKzwvcD4KKzxwPlRoaXMgc3BlY2lmaWNhdGlvbiwgCit0b2dldGhlciB3aXRoIGFzc29jaWF0ZWQgc3RhbmRhcmRzCisoVW5pY29kZSBhbmQgSVNPL0lFQyAxMDY0NiBmb3IgY2hhcmFjdGVycywKK0ludGVybmV0IFJGQyAxNzY2IGZvciBsYW5ndWFnZSBpZGVudGlmaWNhdGlvbiB0YWdzLCAKK0lTTyA2MzkgZm9yIGxhbmd1YWdlIG5hbWUgY29kZXMsIGFuZCAKK0lTTyAzMTY2IGZvciBjb3VudHJ5IG5hbWUgY29kZXMpLAorcHJvdmlkZXMgYWxsIHRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgdG8gdW5kZXJzdGFuZCAKK1hNTCBWZXJzaW9uICZYTUwudmVyc2lvbjsKK2FuZCBjb25zdHJ1Y3QgY29tcHV0ZXIgcHJvZ3JhbXMgdG8gcHJvY2VzcyBpdC48L3A+Cis8cD5UaGlzIHZlcnNpb24gb2YgdGhlIFhNTCBzcGVjaWZpY2F0aW9uCis8IS0tIGlzIGZvciAmZG9jLmF1ZGllbmNlOy4tLT4KKyZkb2MuZGlzdHJpYnV0aW9uOy48L3A+CisKKzwvZGl2Mj4KKyAKKworCisgCis8ZGl2MiBpZD0nc2VjLXRlcm1pbm9sb2d5Jz4KKzxoZWFkPlRlcm1pbm9sb2d5PC9oZWFkPgorIAorPHA+VGhlIHRlcm1pbm9sb2d5IHVzZWQgdG8gZGVzY3JpYmUgWE1MIGRvY3VtZW50cyBpcyBkZWZpbmVkIGluIHRoZSBib2R5IG9mCit0aGlzIHNwZWNpZmljYXRpb24uCitUaGUgdGVybXMgZGVmaW5lZCBpbiB0aGUgZm9sbG93aW5nIGxpc3QgYXJlIHVzZWQgaW4gYnVpbGRpbmcgdGhvc2UKK2RlZmluaXRpb25zIGFuZCBpbiBkZXNjcmliaW5nIHRoZSBhY3Rpb25zIG9mIGFuIFhNTCBwcm9jZXNzb3I6Cis8Z2xpc3Q+Cis8Z2l0ZW0+Cis8bGFiZWw+bWF5PC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LW1heSIgdGVybT0iTWF5Ij5Db25mb3JtaW5nIGRvY3VtZW50cyBhbmQgWE1MCitwcm9jZXNzb3JzIGFyZSBwZXJtaXR0ZWQgdG8gYnV0IG5lZWQgbm90IGJlaGF2ZSBhcworZGVzY3JpYmVkLjwvdGVybWRlZj48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPm11c3Q8L2xhYmVsPgorPGRlZj48cD5Db25mb3JtaW5nIGRvY3VtZW50cyBhbmQgWE1MIHByb2Nlc3NvcnMgCithcmUgcmVxdWlyZWQgdG8gYmVoYXZlIGFzIGRlc2NyaWJlZDsgb3RoZXJ3aXNlIHRoZXkgYXJlIGluIGVycm9yLgorPCEtLSBkbyBOT1QgY2hhbmdlIHRoaXMhIHRoaXMgaXMgd2hhdCBkZWZpbmVzIGEgdmlvbGF0aW9uIG9mCithICdtdXN0JyBjbGF1c2UgYXMgJ2FuIGVycm9yJy4gLU1TTSAtLT4KKzwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+ZXJyb3I8L2xhYmVsPgorPGRlZj48cD48dGVybWRlZiBpZD0nZHQtZXJyb3InIHRlcm09J0Vycm9yJworPkEgdmlvbGF0aW9uIG9mIHRoZSBydWxlcyBvZiB0aGlzCitzcGVjaWZpY2F0aW9uOyByZXN1bHRzIGFyZQordW5kZWZpbmVkLiAgQ29uZm9ybWluZyBzb2Z0d2FyZSBtYXkgZGV0ZWN0IGFuZCByZXBvcnQgYW4gZXJyb3IgYW5kIG1heQorcmVjb3ZlciBmcm9tIGl0LjwvdGVybWRlZj48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPmZhdGFsIGVycm9yPC9sYWJlbD4KKzxkZWY+PHA+PHRlcm1kZWYgaWQ9ImR0LWZhdGFsIiB0ZXJtPSJGYXRhbCBFcnJvciI+QW4gZXJyb3IKK3doaWNoIGEgY29uZm9ybWluZyA8dGVybXJlZiBkZWY9ImR0LXhtbC1wcm9jIj5YTUwgcHJvY2Vzc29yPC90ZXJtcmVmPgorbXVzdCBkZXRlY3QgYW5kIHJlcG9ydCB0byB0aGUgYXBwbGljYXRpb24uCitBZnRlciBlbmNvdW50ZXJpbmcgYSBmYXRhbCBlcnJvciwgdGhlCitwcm9jZXNzb3IgbWF5IGNvbnRpbnVlCitwcm9jZXNzaW5nIHRoZSBkYXRhIHRvIHNlYXJjaCBmb3IgZnVydGhlciBlcnJvcnMgYW5kIG1heSByZXBvcnQgc3VjaAorZXJyb3JzIHRvIHRoZSBhcHBsaWNhdGlvbi4gIEluIG9yZGVyIHRvIHN1cHBvcnQgY29ycmVjdGlvbiBvZiBlcnJvcnMsCit0aGUgcHJvY2Vzc29yIG1heSBtYWtlIHVucHJvY2Vzc2VkIGRhdGEgZnJvbSB0aGUgZG9jdW1lbnQgKHdpdGgKK2ludGVybWluZ2xlZCBjaGFyYWN0ZXIgZGF0YSBhbmQgbWFya3VwKSBhdmFpbGFibGUgdG8gdGhlIGFwcGxpY2F0aW9uLgorT25jZSBhIGZhdGFsIGVycm9yIGlzIGRldGVjdGVkLCBob3dldmVyLCB0aGUgcHJvY2Vzc29yIG11c3Qgbm90Citjb250aW51ZSBub3JtYWwgcHJvY2Vzc2luZyAoaS5lLiwgaXQgbXVzdCBub3QKK2NvbnRpbnVlIHRvIHBhc3MgY2hhcmFjdGVyIGRhdGEgYW5kIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkb2N1bWVudCdzCitsb2dpY2FsIHN0cnVjdHVyZSB0byB0aGUgYXBwbGljYXRpb24gaW4gdGhlIG5vcm1hbCB3YXkpLgorPC90ZXJtZGVmPjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+YXQgdXNlciBvcHRpb248L2xhYmVsPgorPGRlZj48cD5Db25mb3JtaW5nIHNvZnR3YXJlIG1heSBvciBtdXN0IChkZXBlbmRpbmcgb24gdGhlIG1vZGFsIHZlcmIgaW4gdGhlCitzZW50ZW5jZSkgYmVoYXZlIGFzIGRlc2NyaWJlZDsgaWYgaXQgZG9lcywgaXQgbXVzdAorcHJvdmlkZSB1c2VycyBhIG1lYW5zIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBiZWhhdmlvcgorZGVzY3JpYmVkLjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+dmFsaWRpdHkgY29uc3RyYWludDwvbGFiZWw+Cis8ZGVmPjxwPkEgcnVsZSB3aGljaCBhcHBsaWVzIHRvIGFsbCAKKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkPC90ZXJtcmVmPiBYTUwgZG9jdW1lbnRzLgorVmlvbGF0aW9ucyBvZiB2YWxpZGl0eSBjb25zdHJhaW50cyBhcmUgZXJyb3JzOyB0aGV5IG11c3QsIGF0IHVzZXIgb3B0aW9uLCAKK2JlIHJlcG9ydGVkIGJ5IAorPHRlcm1yZWYgZGVmPSJkdC12YWxpZGF0aW5nIj52YWxpZGF0aW5nIFhNTCBwcm9jZXNzb3JzPC90ZXJtcmVmPi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPndlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50PC9sYWJlbD4KKzxkZWY+PHA+QSBydWxlIHdoaWNoIGFwcGxpZXMgdG8gYWxsIDx0ZXJtcmVmCitkZWY9ImR0LXdlbGxmb3JtZWQiPndlbGwtZm9ybWVkPC90ZXJtcmVmPiBYTUwgZG9jdW1lbnRzLgorVmlvbGF0aW9ucyBvZiB3ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludHMgYXJlIAorPHRlcm1yZWYgZGVmPSJkdC1mYXRhbCI+ZmF0YWwgZXJyb3JzPC90ZXJtcmVmPi48L3A+PC9kZWY+Cis8L2dpdGVtPgorCis8Z2l0ZW0+Cis8bGFiZWw+bWF0Y2g8L2xhYmVsPgorPGRlZj48cD48dGVybWRlZiBpZD0iZHQtbWF0Y2giIHRlcm09Im1hdGNoIj4oT2Ygc3RyaW5ncyBvciBuYW1lczopIAorVHdvIHN0cmluZ3Mgb3IgbmFtZXMgYmVpbmcgY29tcGFyZWQgbXVzdCBiZSBpZGVudGljYWwuCitDaGFyYWN0ZXJzIHdpdGggbXVsdGlwbGUgcG9zc2libGUgcmVwcmVzZW50YXRpb25zIGluIElTTy9JRUMgMTA2NDYgKGUuZy4KK2NoYXJhY3RlcnMgd2l0aCAKK2JvdGggcHJlY29tcG9zZWQgYW5kIGJhc2UrZGlhY3JpdGljIGZvcm1zKSBtYXRjaCBvbmx5IGlmIHRoZXkgaGF2ZSB0aGUKK3NhbWUgcmVwcmVzZW50YXRpb24gaW4gYm90aCBzdHJpbmdzLgorQXQgdXNlciBvcHRpb24sIHByb2Nlc3NvcnMgbWF5IG5vcm1hbGl6ZSBzdWNoIGNoYXJhY3RlcnMgdG8KK3NvbWUgY2Fub25pY2FsIGZvcm0uCitObyBjYXNlIGZvbGRpbmcgaXMgcGVyZm9ybWVkLiAKKyhPZiBzdHJpbmdzIGFuZCBydWxlcyBpbiB0aGUgZ3JhbW1hcjopICAKK0Egc3RyaW5nIG1hdGNoZXMgYSBncmFtbWF0aWNhbCBwcm9kdWN0aW9uIGlmIGl0IGJlbG9uZ3MgdG8gdGhlCitsYW5ndWFnZSBnZW5lcmF0ZWQgYnkgdGhhdCBwcm9kdWN0aW9uLgorKE9mIGNvbnRlbnQgYW5kIGNvbnRlbnQgbW9kZWxzOikKK0FuIGVsZW1lbnQgbWF0Y2hlcyBpdHMgZGVjbGFyYXRpb24gd2hlbiBpdCBjb25mb3JtcworaW4gdGhlIGZhc2hpb24gZGVzY3JpYmVkIGluIHRoZSBjb25zdHJhaW50Cis8c3BlY3JlZiByZWY9J2VsZW1lbnR2YWxpZCcvPi4KKzwvdGVybWRlZj4KKzwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+Zm9yIGNvbXBhdGliaWxpdHk8L2xhYmVsPgorPGRlZj48cD48dGVybWRlZiBpZD0iZHQtY29tcGF0IiB0ZXJtPSJGb3IgQ29tcGF0aWJpbGl0eSI+QSBmZWF0dXJlIG9mCitYTUwgaW5jbHVkZWQgc29sZWx5IHRvIGVuc3VyZSB0aGF0IFhNTCByZW1haW5zIGNvbXBhdGlibGUgd2l0aCBTR01MLgorPC90ZXJtZGVmPjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+Zm9yIGludGVyb3BlcmFiaWxpdHk8L2xhYmVsPgorPGRlZj48cD48dGVybWRlZiBpZD0iZHQtaW50ZXJvcCIgdGVybT0iRm9yIGludGVyb3BlcmFiaWxpdHkiPkEKK25vbi1iaW5kaW5nIHJlY29tbWVuZGF0aW9uIGluY2x1ZGVkIHRvIGluY3JlYXNlIHRoZSBjaGFuY2VzIHRoYXQgWE1MCitkb2N1bWVudHMgY2FuIGJlIHByb2Nlc3NlZCBieSB0aGUgZXhpc3RpbmcgaW5zdGFsbGVkIGJhc2Ugb2YgU0dNTAorcHJvY2Vzc29ycyB3aGljaCBwcmVkYXRlIHRoZQorJldlYlNHTUw7LjwvdGVybWRlZj48L3A+PC9kZWY+Cis8L2dpdGVtPgorPC9nbGlzdD4KKzwvcD4KKzwvZGl2Mj4KKworIAorPC9kaXYxPgorPCEtLSAmRG9jczsgLS0+CisgCis8ZGl2MSBpZD0nc2VjLWRvY3VtZW50cyc+Cis8aGVhZD5Eb2N1bWVudHM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQteG1sLWRvYyIgdGVybT0iWE1MIERvY3VtZW50Ij4KK0EgZGF0YSBvYmplY3QgaXMgYW4KKzx0ZXJtPlhNTCBkb2N1bWVudDwvdGVybT4gaWYgaXQgaXMKKzx0ZXJtcmVmIGRlZj0iZHQtd2VsbGZvcm1lZCI+d2VsbC1mb3JtZWQ8L3Rlcm1yZWY+LCBhcworZGVmaW5lZCBpbiB0aGlzIHNwZWNpZmljYXRpb24uCitBIHdlbGwtZm9ybWVkIFhNTCBkb2N1bWVudCBtYXkgaW4gYWRkaXRpb24gYmUKKzx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkPC90ZXJtcmVmPiBpZiBpdCBtZWV0cyBjZXJ0YWluIGZ1cnRoZXIgCitjb25zdHJhaW50cy48L3Rlcm1kZWY+PC9wPgorIAorPHA+RWFjaCBYTUwgZG9jdW1lbnQgaGFzIGJvdGggYSBsb2dpY2FsIGFuZCBhIHBoeXNpY2FsIHN0cnVjdHVyZS4KK1BoeXNpY2FsbHksIHRoZSBkb2N1bWVudCBpcyBjb21wb3NlZCBvZiB1bml0cyBjYWxsZWQgPHRlcm1yZWYKK2RlZj0iZHQtZW50aXR5Ij5lbnRpdGllczwvdGVybXJlZj4uICBBbiBlbnRpdHkgbWF5IDx0ZXJtcmVmCitkZWY9ImR0LWVudHJlZiI+cmVmZXI8L3Rlcm1yZWY+IHRvIG90aGVyIGVudGl0aWVzIHRvIGNhdXNlIHRoZWlyCitpbmNsdXNpb24gaW4gdGhlIGRvY3VtZW50LiBBIGRvY3VtZW50IGJlZ2lucyBpbiBhICJyb290IiAgb3IgPHRlcm1yZWYKK2RlZj0iZHQtZG9jZW50Ij5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LgorTG9naWNhbGx5LCB0aGUgZG9jdW1lbnQgaXMgY29tcG9zZWQgb2YgZGVjbGFyYXRpb25zLCBlbGVtZW50cywgCitjb21tZW50cywKK2NoYXJhY3RlciByZWZlcmVuY2VzLCBhbmQKK3Byb2Nlc3NpbmcKK2luc3RydWN0aW9ucywgYWxsIG9mIHdoaWNoIGFyZSBpbmRpY2F0ZWQgaW4gdGhlIGRvY3VtZW50IGJ5IGV4cGxpY2l0CittYXJrdXAuCitUaGUgbG9naWNhbCBhbmQgcGh5c2ljYWwgc3RydWN0dXJlcyBtdXN0IG5lc3QgcHJvcGVybHksIGFzIGRlc2NyaWJlZCAgCitpbiA8c3BlY3JlZiByZWY9J3dmLWVudGl0aWVzJy8+LgorPC9wPgorIAorPGRpdjIgaWQ9J3NlYy13ZWxsLWZvcm1lZCc+Cis8aGVhZD5XZWxsLUZvcm1lZCBYTUwgRG9jdW1lbnRzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LXdlbGxmb3JtZWQiIHRlcm09IldlbGwtRm9ybWVkIj4KK0EgdGV4dHVhbCBvYmplY3QgaXMgCithIHdlbGwtZm9ybWVkIFhNTCBkb2N1bWVudCBpZjo8L3Rlcm1kZWY+Cis8b2xpc3Q+Cis8aXRlbT48cD5UYWtlbiBhcyBhIHdob2xlLCBpdAorbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkIDxudCBkZWY9J05ULWRvY3VtZW50Jz5kb2N1bWVudDwvbnQ+LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5JdAorbWVldHMgYWxsIHRoZSB3ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludHMgZ2l2ZW4gaW4gdGhpcyBzcGVjaWZpY2F0aW9uLjwvcD4KKzwvaXRlbT4KKzxpdGVtPjxwPkVhY2ggb2YgdGhlIDx0ZXJtcmVmIGRlZj0nZHQtcGFyc2VkZW50Jz5wYXJzZWQgZW50aXRpZXM8L3Rlcm1yZWY+IAord2hpY2ggaXMgcmVmZXJlbmNlZCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHdpdGhpbiB0aGUgZG9jdW1lbnQgaXMKKzx0aXRsZXJlZiBocmVmPSd3Zi1lbnRpdGllcyc+d2VsbC1mb3JtZWQ8L3RpdGxlcmVmPi48L3A+PC9pdGVtPgorPC9vbGlzdD48L3A+Cis8cD4KKzxzY3JhcCBsYW5nPSdlYm5mJyBpZD0nZG9jdW1lbnQnPgorPGhlYWQ+RG9jdW1lbnQ8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtZG9jdW1lbnQnPjxsaHM+ZG9jdW1lbnQ8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtcHJvbG9nJz5wcm9sb2c8L250PiAKKzxudCBkZWY9J05ULWVsZW1lbnQnPmVsZW1lbnQ8L250PiAKKzxudCBkZWY9J05ULU1pc2MnPk1pc2M8L250Pio8L3Jocz48L3Byb2Q+Cis8L3NjcmFwPgorPC9wPgorPHA+TWF0Y2hpbmcgdGhlIDxudCBkZWY9Ik5ULWRvY3VtZW50Ij5kb2N1bWVudDwvbnQ+IHByb2R1Y3Rpb24gCitpbXBsaWVzIHRoYXQ6Cis8b2xpc3Q+Cis8aXRlbT48cD5JdCBjb250YWlucyBvbmUgb3IgbW9yZQorPHRlcm1yZWYgZGVmPSJkdC1lbGVtZW50Ij5lbGVtZW50czwvdGVybXJlZj4uPC9wPgorPC9pdGVtPgorPCEtLSogTi5CLiBzb21lIHJlYWRlcnMgKG5vdGFibHkgSkMpIGZpbmQgdGhlIGZvbGxvd2luZworcGFyYWdyYXBoIGF3a3dhcmQgYW5kIHJlZHVuZGFudC4gIEkgYWdyZWUgaXQncyBsb2dpY2FsbHkgcmVkdW5kYW50OgoraXQgKnNheXMqIGl0IGlzIHN1bW1hcml6aW5nIHRoZSBsb2dpY2FsIGltcGxpY2F0aW9ucyBvZgorbWF0Y2hpbmcgdGhlIGdyYW1tYXIsIGFuZCB0aGF0IG1lYW5zIGJ5IGRlZmluaXRpb24gaXQncworbG9naWNhbGx5IHJlZHVuZGFudC4gIEkgZG9uJ3QgdGhpbmsgaXQncyByaGV0b3JpY2FsbHkKK3JlZHVuZGFudCBvciB1bm5lY2Vzc2FyeSwgdGhvdWdoLCBzbyBJJ20ga2VlcGluZyBpdC4gIEl0Citjb3VsZCBob3dldmVyIHVzZSBzb21lIHJlY2FzdGluZyB3aGVuIHRoZSBlZGl0b3JzIGFyZSBmZWVsaW5nCitzdHJvbmdlci4gLU1TTSAqLS0+Cis8aXRlbT48cD48dGVybWRlZiBpZD0iZHQtcm9vdCIgdGVybT0iUm9vdCBFbGVtZW50Ij5UaGVyZSBpcyAgZXhhY3RseQorb25lIGVsZW1lbnQsIGNhbGxlZCB0aGUgPHRlcm0+cm9vdDwvdGVybT4sIG9yIGRvY3VtZW50IGVsZW1lbnQsICBubworcGFydCBvZiB3aGljaCBhcHBlYXJzIGluIHRoZSA8dGVybXJlZgorZGVmPSJkdC1jb250ZW50Ij5jb250ZW50PC90ZXJtcmVmPiBvZiBhbnkgb3RoZXIgZWxlbWVudC48L3Rlcm1kZWY+CitGb3IgYWxsIG90aGVyIGVsZW1lbnRzLCBpZiB0aGUgc3RhcnQtdGFnIGlzIGluIHRoZSBjb250ZW50IG9mIGFub3RoZXIKK2VsZW1lbnQsIHRoZSBlbmQtdGFnIGlzIGluIHRoZSBjb250ZW50IG9mIHRoZSBzYW1lIGVsZW1lbnQuICBNb3JlCitzaW1wbHkgc3RhdGVkLCB0aGUgZWxlbWVudHMsIGRlbGltaXRlZCBieSBzdGFydC0gYW5kIGVuZC10YWdzLCBuZXN0Citwcm9wZXJseSB3aXRoaW4gZWFjaCBvdGhlci4KKzwvcD48L2l0ZW0+Cis8L29saXN0PgorPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LXBhcmVudGNoaWxkIiB0ZXJtPSJQYXJlbnQvQ2hpbGQiPkFzIGEgY29uc2VxdWVuY2UgCitvZiB0aGlzLAorZm9yIGVhY2ggbm9uLXJvb3QgZWxlbWVudAorPGNvZGU+QzwvY29kZT4gaW4gdGhlIGRvY3VtZW50LCB0aGVyZSBpcyBvbmUgb3RoZXIgZWxlbWVudCA8Y29kZT5QPC9jb2RlPgoraW4gdGhlIGRvY3VtZW50IHN1Y2ggdGhhdCAKKzxjb2RlPkM8L2NvZGU+IGlzIGluIHRoZSBjb250ZW50IG9mIDxjb2RlPlA8L2NvZGU+LCBidXQgaXMgbm90IGluCit0aGUgY29udGVudCBvZiBhbnkgb3RoZXIgZWxlbWVudCB0aGF0IGlzIGluIHRoZSBjb250ZW50IG9mCis8Y29kZT5QPC9jb2RlPi4gIAorPGNvZGU+UDwvY29kZT4gaXMgcmVmZXJyZWQgdG8gYXMgdGhlCis8dGVybT5wYXJlbnQ8L3Rlcm0+IG9mIDxjb2RlPkM8L2NvZGU+LCBhbmQgPGNvZGU+QzwvY29kZT4gYXMgYQorPHRlcm0+Y2hpbGQ8L3Rlcm0+IG9mIDxjb2RlPlA8L2NvZGU+LjwvdGVybWRlZj48L3A+PC9kaXYyPgorIAorPGRpdjIgaWQ9ImNoYXJzZXRzIj4KKzxoZWFkPkNoYXJhY3RlcnM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtdGV4dCIgdGVybT0iVGV4dCI+QSBwYXJzZWQgZW50aXR5IGNvbnRhaW5zCis8dGVybT50ZXh0PC90ZXJtPiwgYSBzZXF1ZW5jZSBvZiAKKzx0ZXJtcmVmIGRlZj0iZHQtY2hhcmFjdGVyIj5jaGFyYWN0ZXJzPC90ZXJtcmVmPiwgCit3aGljaCBtYXkgcmVwcmVzZW50IG1hcmt1cCBvciBjaGFyYWN0ZXIgZGF0YS48L3Rlcm1kZWY+IAorPHRlcm1kZWYgaWQ9ImR0LWNoYXJhY3RlciIgdGVybT0iQ2hhcmFjdGVyIj5BIDx0ZXJtPmNoYXJhY3RlcjwvdGVybT4gCitpcyBhbiBhdG9taWMgdW5pdCBvZiB0ZXh0IGFzIHNwZWNpZmllZCBieQorSVNPL0lFQyAxMDY0NiA8YmlicmVmIHJlZj0iSVNPMTA2NDYiLz4uCitMZWdhbCBjaGFyYWN0ZXJzIGFyZSB0YWIsIGNhcnJpYWdlIHJldHVybiwgbGluZSBmZWVkLCBhbmQgdGhlIGxlZ2FsCitncmFwaGljIGNoYXJhY3RlcnMgb2YgVW5pY29kZSBhbmQgSVNPL0lFQyAxMDY0Ni4KK1RoZSB1c2Ugb2YgImNvbXBhdGliaWxpdHkgY2hhcmFjdGVycyIsIGFzIGRlZmluZWQgaW4gc2VjdGlvbiA2LjgKK29mIDxiaWJyZWYgcmVmPSdVbmljb2RlJy8+LCBpcyBkaXNjb3VyYWdlZC4KKzwvdGVybWRlZj4gCis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9ImNoYXIzMiI+Cis8aGVhZD5DaGFyYWN0ZXIgUmFuZ2U8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjQiIHBjdzQ9IjE3LjUiIHBjdzU9IjExIj4KKzxwcm9kIGlkPSJOVC1DaGFyIj48bGhzPkNoYXI8L2xocz4gCis8cmhzPiN4OSB8ICN4QSB8ICN4RCB8IFsjeDIwLSN4RDdGRl0gfCBbI3hFMDAwLSN4RkZGRF0gCit8IFsjeDEwMDAwLSN4MTBGRkZGXTwvcmhzPiAKKzxjb20+YW55IFVuaWNvZGUgY2hhcmFjdGVyLCBleGNsdWRpbmcgdGhlCitzdXJyb2dhdGUgYmxvY2tzLCBGRkZFLCBhbmQgRkZGRi48L2NvbT4gPC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC9wPgorCis8cD5UaGUgbWVjaGFuaXNtIGZvciBlbmNvZGluZyBjaGFyYWN0ZXIgY29kZSBwb2ludHMgaW50byBiaXQgcGF0dGVybnMgbWF5Cit2YXJ5IGZyb20gZW50aXR5IHRvIGVudGl0eS4gQWxsIFhNTCBwcm9jZXNzb3JzIG11c3QgYWNjZXB0IHRoZSBVVEYtOAorYW5kIFVURi0xNiBlbmNvZGluZ3Mgb2YgMTA2NDY7IHRoZSBtZWNoYW5pc21zIGZvciBzaWduYWxpbmcgd2hpY2ggb2YKK3RoZSB0d28gaXMgaW4gdXNlLCBvciBmb3IgYnJpbmdpbmcgb3RoZXIgZW5jb2RpbmdzIGludG8gcGxheSwgYXJlCitkaXNjdXNzZWQgbGF0ZXIsIGluIDxzcGVjcmVmIHJlZj0nY2hhcmVuY29kaW5nJy8+LgorPC9wPgorPCEtLQorPHA+UmVnYXJkbGVzcyBvZiB0aGUgc3BlY2lmaWMgZW5jb2RpbmcgdXNlZCwgYW55IGNoYXJhY3RlciBpbiB0aGUgSVNPL0lFQworMTA2NDYgY2hhcmFjdGVyIHNldCBtYXkgYmUgcmVmZXJyZWQgdG8gYnkgdGhlIGRlY2ltYWwgb3IgaGV4YWRlY2ltYWwKK2VxdWl2YWxlbnQgb2YgaXRzIAorVUNTLTQgY29kZSB2YWx1ZS4KKzwvcD4tLT4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSdzZWMtY29tbW9uLXN5bic+Cis8aGVhZD5Db21tb24gU3ludGFjdGljIENvbnN0cnVjdHM8L2hlYWQ+CisgCis8cD5UaGlzIHNlY3Rpb24gZGVmaW5lcyBzb21lIHN5bWJvbHMgdXNlZCB3aWRlbHkgaW4gdGhlIGdyYW1tYXIuPC9wPgorPHA+PG50IGRlZj0iTlQtUyI+UzwvbnQ+ICh3aGl0ZSBzcGFjZSkgY29uc2lzdHMgb2Ygb25lIG9yIG1vcmUgc3BhY2UgKCN4MjApCitjaGFyYWN0ZXJzLCBjYXJyaWFnZSByZXR1cm5zLCBsaW5lIGZlZWRzLCBvciB0YWJzLgorCis8c2NyYXAgbGFuZz0iZWJuZiIgaWQ9J3doaXRlJz4KKzxoZWFkPldoaXRlIFNwYWNlPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI0IiBwY3c0PSIxNy41IiBwY3c1PSIxMSI+Cis8cHJvZCBpZD0nTlQtUyc+PGxocz5TPC9saHM+Cis8cmhzPigjeDIwIHwgI3g5IHwgI3hEIHwgI3hBKSs8L3Jocz4KKzwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD48L3A+Cis8cD5DaGFyYWN0ZXJzIGFyZSBjbGFzc2lmaWVkIGZvciBjb252ZW5pZW5jZSBhcyBsZXR0ZXJzLCBkaWdpdHMsIG9yIG90aGVyCitjaGFyYWN0ZXJzLiAgTGV0dGVycyBjb25zaXN0IG9mIGFuIGFscGhhYmV0aWMgb3Igc3lsbGFiaWMgCitiYXNlIGNoYXJhY3RlciBwb3NzaWJseQorZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY29tYmluaW5nIGNoYXJhY3RlcnMsIG9yIG9mIGFuIGlkZW9ncmFwaGljCitjaGFyYWN0ZXIuICAKK0Z1bGwgZGVmaW5pdGlvbnMgb2YgdGhlIHNwZWNpZmljIGNoYXJhY3RlcnMgaW4gZWFjaCBjbGFzcworYXJlIGdpdmVuIGluIDxzcGVjcmVmIHJlZj0nQ2hhckNsYXNzZXMnLz4uPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LW5hbWUiIHRlcm09Ik5hbWUiPkEgPHRlcm0+TmFtZTwvdGVybT4gaXMgYSB0b2tlbgorYmVnaW5uaW5nIHdpdGggYSBsZXR0ZXIgb3Igb25lIG9mIGEgZmV3IHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMsIGFuZCBjb250aW51aW5nCit3aXRoIGxldHRlcnMsIGRpZ2l0cywgaHlwaGVucywgdW5kZXJzY29yZXMsIGNvbG9ucywgb3IgZnVsbCBzdG9wcywgdG9nZXRoZXIKK2tub3duIGFzIG5hbWUgY2hhcmFjdGVycy48L3Rlcm1kZWY+CitOYW1lcyBiZWdpbm5pbmcgd2l0aCB0aGUgc3RyaW5nICI8Y29kZT54bWw8L2NvZGU+Iiwgb3IgYW55IHN0cmluZword2hpY2ggd291bGQgbWF0Y2ggPGNvZGU+KCgnWCd8J3gnKSAoJ00nfCdtJykgKCdMJ3wnbCcpKTwvY29kZT4sIGFyZQorcmVzZXJ2ZWQgZm9yIHN0YW5kYXJkaXphdGlvbiBpbiB0aGlzIG9yIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzCitzcGVjaWZpY2F0aW9uLgorPC9wPgorPG5vdGU+Cis8cD5UaGUgY29sb24gY2hhcmFjdGVyIHdpdGhpbiBYTUwgbmFtZXMgaXMgcmVzZXJ2ZWQgZm9yIGV4cGVyaW1lbnRhdGlvbiB3aXRoCituYW1lIHNwYWNlcy4gIAorSXRzIG1lYW5pbmcgaXMgZXhwZWN0ZWQgdG8gYmUKK3N0YW5kYXJkaXplZCBhdCBzb21lIGZ1dHVyZSBwb2ludCwgYXQgd2hpY2ggcG9pbnQgdGhvc2UgZG9jdW1lbnRzIAordXNpbmcgdGhlIGNvbG9uIGZvciBleHBlcmltZW50YWwgcHVycG9zZXMgbWF5IG5lZWQgdG8gYmUgdXBkYXRlZC4KKyhUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBhbnkgbmFtZS1zcGFjZSBtZWNoYW5pc20KK2Fkb3B0ZWQgZm9yIFhNTCB3aWxsIGluIGZhY3QgdXNlIHRoZSBjb2xvbiBhcyBhIG5hbWUtc3BhY2UgZGVsaW1pdGVyLikKK0luIHByYWN0aWNlLCB0aGlzIG1lYW5zIHRoYXQgYXV0aG9ycyBzaG91bGQgbm90IHVzZSB0aGUgY29sb24gaW4gWE1MCituYW1lcyBleGNlcHQgYXMgcGFydCBvZiBuYW1lLXNwYWNlIGV4cGVyaW1lbnRzLCBidXQgdGhhdCBYTUwgcHJvY2Vzc29ycworc2hvdWxkIGFjY2VwdCB0aGUgY29sb24gYXMgYSBuYW1lIGNoYXJhY3Rlci48L3A+Cis8L25vdGU+Cis8cD5BbgorPG50IGRlZj0nTlQtTm10b2tlbic+Tm10b2tlbjwvbnQ+IChuYW1lIHRva2VuKSBpcyBhbnkgbWl4dHVyZSBvZgorbmFtZSBjaGFyYWN0ZXJzLgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+TmFtZXMgYW5kIFRva2VuczwvaGVhZD4KKzxwcm9kIGlkPSdOVC1OYW1lQ2hhcic+PGxocz5OYW1lQ2hhcjwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1MZXR0ZXIiPkxldHRlcjwvbnQ+IAorfCA8bnQgZGVmPSdOVC1EaWdpdCc+RGlnaXQ8L250PiAKK3wgJy4nIHwgJy0nIHwgJ18nIHwgJzonCit8IDxudCBkZWY9J05ULUNvbWJpbmluZ0NoYXInPkNvbWJpbmluZ0NoYXI8L250PiAKK3wgPG50IGRlZj0nTlQtRXh0ZW5kZXInPkV4dGVuZGVyPC9udD48L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1OYW1lJz48bGhzPk5hbWU8L2xocz4KKzxyaHM+KDxudCBkZWY9J05ULUxldHRlcic+TGV0dGVyPC9udD4gfCAnXycgfCAnOicpCisoPG50IGRlZj0nTlQtTmFtZUNoYXInPk5hbWVDaGFyPC9udD4pKjwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1OYW1lcyc+PGxocz5OYW1lczwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gCisoPG50IGRlZj0nTlQtUyc+UzwvbnQ+IDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PikqPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULU5tdG9rZW4nPjxsaHM+Tm10b2tlbjwvbGhzPgorPHJocz4oPG50IGRlZj0nTlQtTmFtZUNoYXInPk5hbWVDaGFyPC9udD4pKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1ObXRva2Vucyc+PGxocz5ObXRva2VuczwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1ObXRva2VuJz5ObXRva2VuPC9udD4gKDxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1ObXRva2VuJz5ObXRva2VuPC9udD4pKjwvcmhzPjwvcHJvZD4KKzwvc2NyYXA+Cis8L3A+Cis8cD5MaXRlcmFsIGRhdGEgaXMgYW55IHF1b3RlZCBzdHJpbmcgbm90IGNvbnRhaW5pbmcKK3RoZSBxdW90YXRpb24gbWFyayB1c2VkIGFzIGEgZGVsaW1pdGVyIGZvciB0aGF0IHN0cmluZy4KK0xpdGVyYWxzIGFyZSB1c2VkCitmb3Igc3BlY2lmeWluZyB0aGUgY29udGVudCBvZiBpbnRlcm5hbCBlbnRpdGllcworKDxudCBkZWY9J05ULUVudGl0eVZhbHVlJz5FbnRpdHlWYWx1ZTwvbnQ+KSwKK3RoZSB2YWx1ZXMgb2YgYXR0cmlidXRlcyAoPG50IGRlZj0nTlQtQXR0VmFsdWUnPkF0dFZhbHVlPC9udD4pLCAKK2FuZCBleHRlcm5hbCBpZGVudGlmaWVycyAKKyg8bnQgZGVmPSJOVC1TeXN0ZW1MaXRlcmFsIj5TeXN0ZW1MaXRlcmFsPC9udD4pLiAgCitOb3RlIHRoYXQgYSA8bnQgZGVmPSdOVC1TeXN0ZW1MaXRlcmFsJz5TeXN0ZW1MaXRlcmFsPC9udD4KK2NhbiBiZSBwYXJzZWQgd2l0aG91dCBzY2FubmluZyBmb3IgbWFya3VwLgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+TGl0ZXJhbHM8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtRW50aXR5VmFsdWUnPjxsaHM+RW50aXR5VmFsdWU8L2xocz4KKzxyaHM+JyInIAorKFteJSZhbXA7Il0gCit8IDxudCBkZWY9J05ULVBFUmVmZXJlbmNlJz5QRVJlZmVyZW5jZTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1SZWZlcmVuY2UnPlJlZmVyZW5jZTwvbnQ+KSoKKyciJyAKKzwvcmhzPgorPHJocz58Jm5ic3A7IAorIiciIAorKFteJSZhbXA7J10gCit8IDxudCBkZWY9J05ULVBFUmVmZXJlbmNlJz5QRVJlZmVyZW5jZTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1SZWZlcmVuY2UnPlJlZmVyZW5jZTwvbnQ+KSogCisiJyI8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1BdHRWYWx1ZSc+PGxocz5BdHRWYWx1ZTwvbGhzPgorPHJocz4nIicgCisoW14mbHQ7JmFtcDsiXSAKK3wgPG50IGRlZj0nTlQtUmVmZXJlbmNlJz5SZWZlcmVuY2U8L250PikqIAorJyInIAorPC9yaHM+Cis8cmhzPnwmbmJzcDsgCisiJyIgCisoW14mbHQ7JmFtcDsnXSAKK3wgPG50IGRlZj0nTlQtUmVmZXJlbmNlJz5SZWZlcmVuY2U8L250PikqIAorIiciPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtU3lzdGVtTGl0ZXJhbCI+PGxocz5TeXN0ZW1MaXRlcmFsPC9saHM+Cis8cmhzPignIicgW14iXSogJyInKSB8Jm5ic3A7KCInIiBbXiddKiAiJyIpCis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSJOVC1QdWJpZExpdGVyYWwiPjxsaHM+UHViaWRMaXRlcmFsPC9saHM+Cis8cmhzPiciJyA8bnQgZGVmPSdOVC1QdWJpZENoYXInPlB1YmlkQ2hhcjwvbnQ+KiAKKyciJyAKK3wgIiciICg8bnQgZGVmPSdOVC1QdWJpZENoYXInPlB1YmlkQ2hhcjwvbnQ+IC0gIiciKSogIiciPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0iTlQtUHViaWRDaGFyIj48bGhzPlB1YmlkQ2hhcjwvbGhzPgorPHJocz4jeDIwIHwgI3hEIHwgI3hBIAorfCZuYnNwO1thLXpBLVowLTldCit8Jm5ic3A7Wy0nKCkrLC4vOj0/OyEqI0AkXyVdPC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorPC9wPgorCis8L2RpdjI+CisKKzxkaXYyIGlkPSdzeW50YXgnPgorPGhlYWQ+Q2hhcmFjdGVyIERhdGEgYW5kIE1hcmt1cDwvaGVhZD4KKyAKKzxwPjx0ZXJtcmVmIGRlZj0nZHQtdGV4dCc+VGV4dDwvdGVybXJlZj4gY29uc2lzdHMgb2YgaW50ZXJtaW5nbGVkIAorPHRlcm1yZWYgZGVmPSJkdC1jaGFyZGF0YSI+Y2hhcmFjdGVyCitkYXRhPC90ZXJtcmVmPiBhbmQgbWFya3VwLgorPHRlcm1kZWYgaWQ9ImR0LW1hcmt1cCIgdGVybT0iTWFya3VwIj48dGVybT5NYXJrdXA8L3Rlcm0+IHRha2VzIHRoZSBmb3JtIG9mCis8dGVybXJlZiBkZWY9ImR0LXN0YWciPnN0YXJ0LXRhZ3M8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1ldGFnIj5lbmQtdGFnczwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWVtcHR5Ij5lbXB0eS1lbGVtZW50IHRhZ3M8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1lbnRyZWYiPmVudGl0eSByZWZlcmVuY2VzPC90ZXJtcmVmPiwKKzx0ZXJtcmVmIGRlZj0iZHQtY2hhcnJlZiI+Y2hhcmFjdGVyIHJlZmVyZW5jZXM8L3Rlcm1yZWY+LAorPHRlcm1yZWYgZGVmPSJkdC1jb21tZW50Ij5jb21tZW50czwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWNkc2VjdGlvbiI+Q0RBVEEgc2VjdGlvbjwvdGVybXJlZj4gZGVsaW1pdGVycywKKzx0ZXJtcmVmIGRlZj0iZHQtZG9jdHlwZSI+ZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbnM8L3Rlcm1yZWY+LCBhbmQKKzx0ZXJtcmVmIGRlZj0iZHQtcGkiPnByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zPC90ZXJtcmVmPi4KKzwvdGVybWRlZj4KKzwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1jaGFyZGF0YSIgdGVybT0iQ2hhcmFjdGVyIERhdGEiPkFsbCB0ZXh0IHRoYXQgaXMgbm90IG1hcmt1cAorY29uc3RpdHV0ZXMgdGhlIDx0ZXJtPmNoYXJhY3RlciBkYXRhPC90ZXJtPiBvZgordGhlIGRvY3VtZW50LjwvdGVybWRlZj48L3A+Cis8cD5UaGUgYW1wZXJzYW5kIGNoYXJhY3RlciAoJmFtcDspIGFuZCB0aGUgbGVmdCBhbmdsZSBicmFja2V0ICgmbHQ7KQorbWF5IGFwcGVhciBpbiB0aGVpciBsaXRlcmFsIGZvcm0gPGVtcGg+b25seTwvZW1waD4gd2hlbiB1c2VkIGFzIG1hcmt1cAorZGVsaW1pdGVycywgb3Igd2l0aGluIGEgPHRlcm1yZWYgZGVmPSJkdC1jb21tZW50Ij5jb21tZW50PC90ZXJtcmVmPiwgYQorPHRlcm1yZWYgZGVmPSJkdC1waSI+cHJvY2Vzc2luZyBpbnN0cnVjdGlvbjwvdGVybXJlZj4sIAorb3IgYSA8dGVybXJlZiBkZWY9ImR0LWNkc2VjdGlvbiI+Q0RBVEEgc2VjdGlvbjwvdGVybXJlZj4uICAKKworVGhleSBhcmUgYWxzbyBsZWdhbCB3aXRoaW4gdGhlIDx0ZXJtcmVmIGRlZj0nZHQtbGl0ZW50dmFsJz5saXRlcmFsIGVudGl0eQordmFsdWU8L3Rlcm1yZWY+IG9mIGFuIGludGVybmFsIGVudGl0eSBkZWNsYXJhdGlvbjsgc2VlCis8c3BlY3JlZiByZWY9J3dmLWVudGl0aWVzJy8+LgorPCEtLSBGSU5BTCBFRElUOiAgcmVzdG9yZSBpbnRlcm5hbCBlbnRpdHkgZGVjbCBvciBsZWF2ZSBpdCBvdXQuIC0tPgorSWYgdGhleSBhcmUgbmVlZGVkIGVsc2V3aGVyZSwKK3RoZXkgbXVzdCBiZSA8dGVybXJlZiBkZWY9ImR0LWVzY2FwZSI+ZXNjYXBlZDwvdGVybXJlZj4KK3VzaW5nIGVpdGhlciA8dGVybXJlZiBkZWY9J2R0LWNoYXJyZWYnPm51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L3Rlcm1yZWY+CitvciB0aGUgc3RyaW5ncworIjxjb2RlPiZhbXA7YW1wOzwvY29kZT4iIGFuZCAiPGNvZGU+JmFtcDtsdDs8L2NvZGU+IiByZXNwZWN0aXZlbHkuIAorVGhlIHJpZ2h0IGFuZ2xlCiticmFja2V0ICg+KSBtYXkgYmUgcmVwcmVzZW50ZWQgdXNpbmcgdGhlIHN0cmluZworIjxjb2RlPiZhbXA7Z3Q7PC9jb2RlPiIsIGFuZCBtdXN0LCA8dGVybXJlZiBkZWY9J2R0LWNvbXBhdCc+Zm9yCitjb21wYXRpYmlsaXR5PC90ZXJtcmVmPiwgCitiZSBlc2NhcGVkIHVzaW5nCisiPGNvZGU+JmFtcDtndDs8L2NvZGU+IiBvciBhIGNoYXJhY3RlciByZWZlcmVuY2UgCit3aGVuIGl0IGFwcGVhcnMgaW4gdGhlIHN0cmluZworIjxjb2RlPl1dJmd0OzwvY29kZT4iCitpbiBjb250ZW50LCAKK3doZW4gdGhhdCBzdHJpbmcgaXMgbm90IG1hcmtpbmcgdGhlIGVuZCBvZiAKK2EgPHRlcm1yZWYgZGVmPSJkdC1jZHNlY3Rpb24iPkNEQVRBIHNlY3Rpb248L3Rlcm1yZWY+LiAKKzwvcD4KKzxwPgorSW4gdGhlIGNvbnRlbnQgb2YgZWxlbWVudHMsIGNoYXJhY3RlciBkYXRhIAoraXMgYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGRvZXMKK25vdCBjb250YWluIHRoZSBzdGFydC1kZWxpbWl0ZXIgb2YgYW55IG1hcmt1cC4gIAorSW4gYSBDREFUQSBzZWN0aW9uLCBjaGFyYWN0ZXIgZGF0YQoraXMgYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIG5vdCBpbmNsdWRpbmcgdGhlIENEQVRBLXNlY3Rpb24tY2xvc2UKK2RlbGltaXRlciwgIjxjb2RlPl1dJmd0OzwvY29kZT4iLjwvcD4KKzxwPgorVG8gYWxsb3cgYXR0cmlidXRlIHZhbHVlcyB0byBjb250YWluIGJvdGggc2luZ2xlIGFuZCBkb3VibGUgcXVvdGVzLCB0aGUKK2Fwb3N0cm9waGUgb3Igc2luZ2xlLXF1b3RlIGNoYXJhY3RlciAoJykgbWF5IGJlIHJlcHJlc2VudGVkIGFzCisiPGNvZGU+JmFtcDthcG9zOzwvY29kZT4iLCBhbmQgdGhlIGRvdWJsZS1xdW90ZSBjaGFyYWN0ZXIgKCIpIGFzCisiPGNvZGU+JmFtcDtxdW90OzwvY29kZT4iLgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+Q2hhcmFjdGVyIERhdGE8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtQ2hhckRhdGEnPgorPGxocz5DaGFyRGF0YTwvbGhzPgorPHJocz5bXiZsdDsmYW1wO10qIC0gKFteJmx0OyZhbXA7XSogJ11dJmd0OycgW14mbHQ7JmFtcDtdKik8L3Jocz4KKzwvcHJvZD4KKzwvc2NyYXA+Cis8L3A+Cis8L2RpdjI+CisgCis8ZGl2MiBpZD0nc2VjLWNvbW1lbnRzJz4KKzxoZWFkPkNvbW1lbnRzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LWNvbW1lbnQiIHRlcm09IkNvbW1lbnQiPjx0ZXJtPkNvbW1lbnRzPC90ZXJtPiBtYXkgCithcHBlYXIgYW55d2hlcmUgaW4gYSBkb2N1bWVudCBvdXRzaWRlIG90aGVyIAorPHRlcm1yZWYgZGVmPSdkdC1tYXJrdXAnPm1hcmt1cDwvdGVybXJlZj47IGluIGFkZGl0aW9uLAordGhleSBtYXkgYXBwZWFyIHdpdGhpbiB0aGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbgorYXQgcGxhY2VzIGFsbG93ZWQgYnkgdGhlIGdyYW1tYXIuCitUaGV5IGFyZSBub3QgcGFydCBvZiB0aGUgZG9jdW1lbnQncyA8dGVybXJlZiBkZWY9ImR0LWNoYXJkYXRhIj5jaGFyYWN0ZXIKK2RhdGE8L3Rlcm1yZWY+OyBhbiBYTUwKK3Byb2Nlc3NvciBtYXksIGJ1dCBuZWVkIG5vdCwgbWFrZSBpdCBwb3NzaWJsZSBmb3IgYW4gYXBwbGljYXRpb24gdG8KK3JldHJpZXZlIHRoZSB0ZXh0IG9mIGNvbW1lbnRzLgorPHRlcm1yZWYgZGVmPSJkdC1jb21wYXQiPkZvciBjb21wYXRpYmlsaXR5PC90ZXJtcmVmPiwgdGhlIHN0cmluZworIjxjb2RlPi0tPC9jb2RlPiIgKGRvdWJsZS1oeXBoZW4pIG11c3Qgbm90IG9jY3VyIHdpdGhpbgorY29tbWVudHMuCis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5Db21tZW50czwvaGVhZD4KKzxwcm9kIGlkPSdOVC1Db21tZW50Jz48bGhzPkNvbW1lbnQ8L2xocz4KKzxyaHM+JyZsdDshLS0nCisoKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiAtICctJykgCit8ICgnLScgKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiAtICctJykpKSogCisnLS0+JzwvcmhzPgorPC9wcm9kPgorPC9zY3JhcD4KKzwvdGVybWRlZj48L3A+Cis8cD5BbiBleGFtcGxlIG9mIGEgY29tbWVudDoKKzxlZz4mbHQ7ISZjb21vOyBkZWNsYXJhdGlvbnMgZm9yICZsdDtoZWFkPiAmYW1wOyAmbHQ7Ym9keT4gJmNvbWM7Jmd0OzwvZWc+Cis8L3A+Cis8L2RpdjI+CisgCis8ZGl2MiBpZD0nc2VjLXBpJz4KKzxoZWFkPlByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb25zPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9ImR0LXBpIiB0ZXJtPSJQcm9jZXNzaW5nIGluc3RydWN0aW9uIj48dGVybT5Qcm9jZXNzaW5nCitpbnN0cnVjdGlvbnM8L3Rlcm0+IChQSXMpIGFsbG93IGRvY3VtZW50cyB0byBjb250YWluIGluc3RydWN0aW9ucworZm9yIGFwcGxpY2F0aW9ucy4KKyAKKzxzY3JhcCBsYW5nPSJlYm5mIj4KKzxoZWFkPlByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb25zPC9oZWFkPgorPHByb2QgaWQ9J05ULVBJJz48bGhzPlBJPC9saHM+Cis8cmhzPicmbHQ7PycgPG50IGRlZj0nTlQtUElUYXJnZXQnPlBJVGFyZ2V0PC9udD4gCisoPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorKDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiogLSAKKyg8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qICZwaWM7IDxudCBkZWY9J05ULUNoYXInPkNoYXI8L250PiopKSk/CismcGljOzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1QSVRhcmdldCc+PGxocz5QSVRhcmdldDwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gLSAKKygoJ1gnIHwgJ3gnKSAoJ00nIHwgJ20nKSAoJ0wnIHwgJ2wnKSk8L3Jocz4KKzwvcHJvZD4KKzwvc2NyYXA+PC90ZXJtZGVmPgorUElzIGFyZSBub3QgcGFydCBvZiB0aGUgZG9jdW1lbnQncyA8dGVybXJlZiBkZWY9ImR0LWNoYXJkYXRhIj5jaGFyYWN0ZXIKK2RhdGE8L3Rlcm1yZWY+LCBidXQgbXVzdCBiZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgYXBwbGljYXRpb24uIFRoZQorUEkgYmVnaW5zIHdpdGggYSB0YXJnZXQgKDxudCBkZWY9J05ULVBJVGFyZ2V0Jz5QSVRhcmdldDwvbnQ+KSB1c2VkCit0byBpZGVudGlmeSB0aGUgYXBwbGljYXRpb24gdG8gd2hpY2ggdGhlIGluc3RydWN0aW9uIGlzIGRpcmVjdGVkLiAgCitUaGUgdGFyZ2V0IG5hbWVzICI8Y29kZT5YTUw8L2NvZGU+IiwgIjxjb2RlPnhtbDwvY29kZT4iLCBhbmQgc28gb24gYXJlCityZXNlcnZlZCBmb3Igc3RhbmRhcmRpemF0aW9uIGluIHRoaXMgb3IgZnV0dXJlIHZlcnNpb25zIG9mIHRoaXMKK3NwZWNpZmljYXRpb24uCitUaGUgCitYTUwgPHRlcm1yZWYgZGVmPSdkdC1ub3RhdGlvbic+Tm90YXRpb248L3Rlcm1yZWY+IG1lY2hhbmlzbQorbWF5IGJlIHVzZWQgZm9yCitmb3JtYWwgZGVjbGFyYXRpb24gb2YgUEkgdGFyZ2V0cy4KKzwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSdzZWMtY2RhdGEtc2VjdCc+Cis8aGVhZD5DREFUQSBTZWN0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1jZHNlY3Rpb24iIHRlcm09IkNEQVRBIFNlY3Rpb24iPjx0ZXJtPkNEQVRBIHNlY3Rpb25zPC90ZXJtPgorbWF5IG9jY3VyIAorYW55d2hlcmUgY2hhcmFjdGVyIGRhdGEgbWF5IG9jY3VyOyB0aGV5IGFyZQordXNlZCB0byBlc2NhcGUgYmxvY2tzIG9mIHRleHQgY29udGFpbmluZyBjaGFyYWN0ZXJzIHdoaWNoIHdvdWxkCitvdGhlcndpc2UgYmUgcmVjb2duaXplZCBhcyBtYXJrdXAuICBDREFUQSBzZWN0aW9ucyBiZWdpbiB3aXRoIHRoZQorc3RyaW5nICI8Y29kZT4mbHQ7IVtDREFUQVs8L2NvZGU+IiBhbmQgZW5kIHdpdGggdGhlIHN0cmluZworIjxjb2RlPl1dJmd0OzwvY29kZT4iOgorPHNjcmFwIGxhbmc9ImVibmYiPgorPGhlYWQ+Q0RBVEEgU2VjdGlvbnM8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtQ0RTZWN0Jz48bGhzPkNEU2VjdDwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1DRFN0YXJ0Jz5DRFN0YXJ0PC9udD4gCis8bnQgZGVmPSdOVC1DRGF0YSc+Q0RhdGE8L250PiAKKzxudCBkZWY9J05ULUNERW5kJz5DREVuZDwvbnQ+PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULUNEU3RhcnQnPjxsaHM+Q0RTdGFydDwvbGhzPgorPHJocz4nJmx0OyFbQ0RBVEFbJzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULUNEYXRhJz48bGhzPkNEYXRhPC9saHM+Cis8cmhzPig8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qIC0gCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAnXV0mZ3Q7JyA8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKSkKKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULUNERW5kJz48bGhzPkNERW5kPC9saHM+Cis8cmhzPiddXSZndDsnPC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorCitXaXRoaW4gYSBDREFUQSBzZWN0aW9uLCBvbmx5IHRoZSA8bnQgZGVmPSdOVC1DREVuZCc+Q0RFbmQ8L250PiBzdHJpbmcgaXMKK3JlY29nbml6ZWQgYXMgbWFya3VwLCBzbyB0aGF0IGxlZnQgYW5nbGUgYnJhY2tldHMgYW5kIGFtcGVyc2FuZHMgbWF5IG9jY3VyIGluCit0aGVpciBsaXRlcmFsIGZvcm07IHRoZXkgbmVlZCBub3QgKGFuZCBjYW5ub3QpIGJlIGVzY2FwZWQgdXNpbmcKKyI8Y29kZT4mYW1wO2x0OzwvY29kZT4iIGFuZCAiPGNvZGU+JmFtcDthbXA7PC9jb2RlPiIuICBDREFUQSBzZWN0aW9ucworY2Fubm90IG5lc3QuPC90ZXJtZGVmPgorPC9wPgorCis8cD5BbiBleGFtcGxlIG9mIGEgQ0RBVEEgc2VjdGlvbiwgaW4gd2hpY2ggIjxjb2RlPiZsdDtncmVldGluZz48L2NvZGU+IiBhbmQgCisiPGNvZGU+Jmx0Oy9ncmVldGluZz48L2NvZGU+IgorYXJlIHJlY29nbml6ZWQgYXMgPHRlcm1yZWYgZGVmPSdkdC1jaGFyZGF0YSc+Y2hhcmFjdGVyIGRhdGE8L3Rlcm1yZWY+LCBub3QKKzx0ZXJtcmVmIGRlZj0nZHQtbWFya3VwJz5tYXJrdXA8L3Rlcm1yZWY+OgorPGVnPiZsdDshW0NEQVRBWyZsdDtncmVldGluZz5IZWxsbywgd29ybGQhJmx0Oy9ncmVldGluZz5dXSZndDs8L2VnPgorPC9wPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9J3NlYy1wcm9sb2ctZHRkJz4KKzxoZWFkPlByb2xvZyBhbmQgRG9jdW1lbnQgVHlwZSBEZWNsYXJhdGlvbjwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSdkdC14bWxkZWNsJyB0ZXJtPSdYTUwgRGVjbGFyYXRpb24nPlhNTCBkb2N1bWVudHMgCittYXksIGFuZCBzaG91bGQsIAorYmVnaW4gd2l0aCBhbiA8dGVybT5YTUwgZGVjbGFyYXRpb248L3Rlcm0+IHdoaWNoIHNwZWNpZmllcwordGhlIHZlcnNpb24gb2YKK1hNTCBiZWluZyB1c2VkLjwvdGVybWRlZj4KK0ZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGlzIGEgY29tcGxldGUgWE1MIGRvY3VtZW50LCA8dGVybXJlZgorZGVmPSJkdC13ZWxsZm9ybWVkIj53ZWxsLWZvcm1lZDwvdGVybXJlZj4gYnV0IG5vdAorPHRlcm1yZWYgZGVmPSJkdC12YWxpZCI+dmFsaWQ8L3Rlcm1yZWY+OgorPGVnPjwhW0NEQVRBWzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGdyZWV0aW5nPkhlbGxvLCB3b3JsZCE8L2dyZWV0aW5nPgorXV0+PC9lZz4KK2FuZCBzbyBpcyB0aGlzOgorPGVnPjwhW0NEQVRBWzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz4KK11dPjwvZWc+Cis8L3A+CisKKzxwPlRoZSB2ZXJzaW9uIG51bWJlciAiPGNvZGU+MS4wPC9jb2RlPiIgc2hvdWxkIGJlIHVzZWQgdG8gaW5kaWNhdGUKK2NvbmZvcm1hbmNlIHRvIHRoaXMgdmVyc2lvbiBvZiB0aGlzIHNwZWNpZmljYXRpb247IGl0IGlzIGFuIGVycm9yCitmb3IgYSBkb2N1bWVudCB0byB1c2UgdGhlIHZhbHVlICI8Y29kZT4xLjA8L2NvZGU+IiAKK2lmIGl0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhpcyB2ZXJzaW9uIG9mIHRoaXMgc3BlY2lmaWNhdGlvbi4KK0l0IGlzIHRoZSBpbnRlbnQKK29mIHRoZSBYTUwgd29ya2luZyBncm91cCB0byBnaXZlIGxhdGVyIHZlcnNpb25zIG9mIHRoaXMgc3BlY2lmaWNhdGlvbgorbnVtYmVycyBvdGhlciB0aGFuICI8Y29kZT4xLjA8L2NvZGU+IiwgYnV0IHRoaXMgaW50ZW50IGRvZXMgbm90CitpbmRpY2F0ZSBhCitjb21taXRtZW50IHRvIHByb2R1Y2UgYW55IGZ1dHVyZSB2ZXJzaW9ucyBvZiBYTUwsIG5vciBpZiBhbnkgYXJlIHByb2R1Y2VkLCB0bwordXNlIGFueSBwYXJ0aWN1bGFyIG51bWJlcmluZyBzY2hlbWUuCitTaW5jZSBmdXR1cmUgdmVyc2lvbnMgYXJlIG5vdCBydWxlZCBvdXQsIHRoaXMgY29uc3RydWN0IGlzIHByb3ZpZGVkIAorYXMgYSBtZWFucyB0byBhbGxvdyB0aGUgcG9zc2liaWxpdHkgb2YgYXV0b21hdGljIHZlcnNpb24gcmVjb2duaXRpb24sIHNob3VsZAoraXQgYmVjb21lIG5lY2Vzc2FyeS4KK1Byb2Nlc3NvcnMgbWF5IHNpZ25hbCBhbiBlcnJvciBpZiB0aGV5IHJlY2VpdmUgZG9jdW1lbnRzIGxhYmVsZWQgd2l0aCAKK3ZlcnNpb25zIHRoZXkgZG8gbm90IHN1cHBvcnQuIAorPC9wPgorPHA+VGhlIGZ1bmN0aW9uIG9mIHRoZSBtYXJrdXAgaW4gYW4gWE1MIGRvY3VtZW50IGlzIHRvIGRlc2NyaWJlIGl0cworc3RvcmFnZSBhbmQgbG9naWNhbCBzdHJ1Y3R1cmUgYW5kIHRvIGFzc29jaWF0ZSBhdHRyaWJ1dGUtdmFsdWUgcGFpcnMKK3dpdGggaXRzIGxvZ2ljYWwgc3RydWN0dXJlcy4gIFhNTCBwcm92aWRlcyBhIG1lY2hhbmlzbSwgdGhlIDx0ZXJtcmVmCitkZWY9ImR0LWRvY3R5cGUiPmRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb248L3Rlcm1yZWY+LCB0byBkZWZpbmUKK2NvbnN0cmFpbnRzIG9uIHRoZSBsb2dpY2FsIHN0cnVjdHVyZSBhbmQgdG8gc3VwcG9ydCB0aGUgdXNlIG9mCitwcmVkZWZpbmVkIHN0b3JhZ2UgdW5pdHMuCisKKzx0ZXJtZGVmIGlkPSJkdC12YWxpZCIgdGVybT0iVmFsaWRpdHkiPkFuIFhNTCBkb2N1bWVudCBpcyAKKzx0ZXJtPnZhbGlkPC90ZXJtPiBpZiBpdCBoYXMgYW4gYXNzb2NpYXRlZCBkb2N1bWVudCB0eXBlCitkZWNsYXJhdGlvbiBhbmQgaWYgdGhlIGRvY3VtZW50Citjb21wbGllcyB3aXRoIHRoZSBjb25zdHJhaW50cyBleHByZXNzZWQgaW4gaXQuPC90ZXJtZGVmPjwvcD4KKzxwPlRoZSBkb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uIG11c3QgYXBwZWFyIGJlZm9yZQordGhlIGZpcnN0IDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWVudCI+ZWxlbWVudDwvdGVybXJlZj4gaW4gdGhlIGRvY3VtZW50LgorPHNjcmFwIGxhbmc9ImVibmYiIGlkPSd4bWxkb2MnPgorPGhlYWQ+UHJvbG9nPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNy41IiBwY3c1PSI5Ij4KKzxwcm9kIGlkPSdOVC1wcm9sb2cnPjxsaHM+cHJvbG9nPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULVhNTERlY2wnPlhNTERlY2w8L250Pj8gCis8bnQgZGVmPSdOVC1NaXNjJz5NaXNjPC9udD4qIAorKDxudCBkZWY9J05ULWRvY3R5cGVkZWNsJz5kb2N0eXBlZGVjbDwvbnQ+IAorPG50IGRlZj0nTlQtTWlzYyc+TWlzYzwvbnQ+Kik/PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULVhNTERlY2wnPjxsaHM+WE1MRGVjbDwvbGhzPgorPHJocz4meG1scGlvOyAKKzxudCBkZWY9J05ULVZlcnNpb25JbmZvJz5WZXJzaW9uSW5mbzwvbnQ+IAorPG50IGRlZj0nTlQtRW5jb2RpbmdEZWNsJz5FbmNvZGluZ0RlY2w8L250Pj8gCis8bnQgZGVmPSdOVC1TRERlY2wnPlNERGVjbDwvbnQ+PyAKKzxudCBkZWY9Ik5ULVMiPlM8L250Pj8gCismcGljOzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULVZlcnNpb25JbmZvJz48bGhzPlZlcnNpb25JbmZvPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULVMiPlM8L250PiAndmVyc2lvbicgPG50IGRlZj0nTlQtRXEnPkVxPC9udD4gCisoJyA8bnQgZGVmPSJOVC1WZXJzaW9uTnVtIj5WZXJzaW9uTnVtPC9udD4gJyAKK3wgIiA8bnQgZGVmPSJOVC1WZXJzaW9uTnVtIj5WZXJzaW9uTnVtPC9udD4gIik8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1FcSc+PGxocz5FcTwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1TJz5TPC9udD4/ICc9JyA8bnQgZGVmPSdOVC1TJz5TPC9udD4/PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9Ik5ULVZlcnNpb25OdW0iPgorPGxocz5WZXJzaW9uTnVtPC9saHM+Cis8cmhzPihbYS16QS1aMC05Xy46XSB8ICctJykrPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtTWlzYyc+PGxocz5NaXNjPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULUNvbW1lbnQnPkNvbW1lbnQ8L250PiB8IDxudCBkZWY9J05ULVBJJz5QSTwvbnQ+IHwgCis8bnQgZGVmPSdOVC1TJz5TPC9udD48L3Jocz48L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+PC9wPgorCis8cD48dGVybWRlZiBpZD0iZHQtZG9jdHlwZSIgdGVybT0iRG9jdW1lbnQgVHlwZSBEZWNsYXJhdGlvbiI+VGhlIFhNTAorPHRlcm0+ZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbjwvdGVybT4gCitjb250YWlucyBvciBwb2ludHMgdG8gCis8dGVybXJlZiBkZWY9J2R0LW1hcmt1cGRlY2wnPm1hcmt1cCBkZWNsYXJhdGlvbnM8L3Rlcm1yZWY+IAordGhhdCBwcm92aWRlIGEgZ3JhbW1hciBmb3IgYQorY2xhc3Mgb2YgZG9jdW1lbnRzLiAgCitUaGlzIGdyYW1tYXIgaXMga25vd24gYXMgYSBkb2N1bWVudCB0eXBlIGRlZmluaXRpb24sCitvciA8dGVybT5EVEQ8L3Rlcm0+LiAgCitUaGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbiBjYW4gcG9pbnQgdG8gYW4gZXh0ZXJuYWwgc3Vic2V0IChhCitzcGVjaWFsIGtpbmQgb2YgCis8dGVybXJlZiBkZWY9J2R0LWV4dGVudCc+ZXh0ZXJuYWwgZW50aXR5PC90ZXJtcmVmPikgY29udGFpbmluZyBtYXJrdXAKK2RlY2xhcmF0aW9ucywgb3IgY2FuIAorY29udGFpbiB0aGUgbWFya3VwIGRlY2xhcmF0aW9ucyBkaXJlY3RseSBpbiBhbiBpbnRlcm5hbCBzdWJzZXQsIG9yIGNhbiBkbworYm90aC4gICAKK1RoZSBEVEQgZm9yIGEgZG9jdW1lbnQgY29uc2lzdHMgb2YgYm90aCBzdWJzZXRzIHRha2VuCit0b2dldGhlci48L3Rlcm1kZWY+Cis8L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtbWFya3VwZGVjbCIgdGVybT0ibWFya3VwIGRlY2xhcmF0aW9uIj4KK0EgPHRlcm0+bWFya3VwIGRlY2xhcmF0aW9uPC90ZXJtPiBpcyAKK2FuIDx0ZXJtcmVmIGRlZj0iZHQtZWxkZWNsIj5lbGVtZW50IHR5cGUgZGVjbGFyYXRpb248L3Rlcm1yZWY+LCAKK2FuIDx0ZXJtcmVmIGRlZj0iZHQtYXR0ZGVjbCI+YXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb248L3Rlcm1yZWY+LCAKK2FuIDx0ZXJtcmVmIGRlZj0iZHQtZW50ZGVjbCI+ZW50aXR5IGRlY2xhcmF0aW9uPC90ZXJtcmVmPiwgb3IKK2EgPHRlcm1yZWYgZGVmPSJkdC1ub3RkZWNsIj5ub3RhdGlvbiBkZWNsYXJhdGlvbjwvdGVybXJlZj4uCis8L3Rlcm1kZWY+CitUaGVzZSBkZWNsYXJhdGlvbnMgbWF5IGJlIGNvbnRhaW5lZCBpbiB3aG9sZSBvciBpbiBwYXJ0Cit3aXRoaW4gPHRlcm1yZWYgZGVmPSdkdC1QRSc+cGFyYW1ldGVyIGVudGl0aWVzPC90ZXJtcmVmPiwKK2FzIGRlc2NyaWJlZCBpbiB0aGUgd2VsbC1mb3JtZWRuZXNzIGFuZCB2YWxpZGl0eSBjb25zdHJhaW50cyBiZWxvdy4KK0ZvciBmdWxsZXIgaW5mb3JtYXRpb24sIHNlZQorPHNwZWNyZWYgcmVmPSJzZWMtcGh5c2ljYWwtc3RydWN0Ii8+LjwvcD4KKzxzY3JhcCBsYW5nPSJlYm5mIiBpZD0nZHRkJz4KKzxoZWFkPkRvY3VtZW50IFR5cGUgRGVmaW5pdGlvbjwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNiIgcGN3ND0iMTcuNSIgcGN3NT0iOSI+Cis8cHJvZCBpZD0nTlQtZG9jdHlwZWRlY2wnPjxsaHM+ZG9jdHlwZWRlY2w8L2xocz4KKzxyaHM+JyZsdDshRE9DVFlQRScgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+ICg8bnQgZGVmPSdOVC1TJz5TPC9udD4gCis8bnQgZGVmPSdOVC1FeHRlcm5hbElEJz5FeHRlcm5hbElEPC9udD4pPyAKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gKCdbJyAKKyg8bnQgZGVmPSdOVC1tYXJrdXBkZWNsJz5tYXJrdXBkZWNsPC9udD4gCit8IDxudCBkZWY9J05ULVBFUmVmZXJlbmNlJz5QRVJlZmVyZW5jZTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1TJz5TPC9udD4pKgorJ10nIAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+Pyk/ICc+JzwvcmhzPgorPHZjIGRlZj0idmMtcm9vdHR5cGUiLz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1tYXJrdXBkZWNsJz48bGhzPm1hcmt1cGRlY2w8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtZWxlbWVudGRlY2wnPmVsZW1lbnRkZWNsPC9udD4gCit8IDxudCBkZWY9J05ULUF0dGxpc3REZWNsJz5BdHRsaXN0RGVjbDwvbnQ+IAorfCA8bnQgZGVmPSdOVC1FbnRpdHlEZWNsJz5FbnRpdHlEZWNsPC9udD4gCit8IDxudCBkZWY9J05ULU5vdGF0aW9uRGVjbCc+Tm90YXRpb25EZWNsPC9udD4gCit8IDxudCBkZWY9J05ULVBJJz5QSTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1Db21tZW50Jz5Db21tZW50PC9udD4KKzwvcmhzPgorPHZjIGRlZj0ndmMtUEVpbk1hcmt1cERlY2wnLz4KKzx3ZmMgZGVmPSJ3ZmMtUEVpbkludGVybmFsU3Vic2V0Ii8+Cis8L3Byb2Q+CisKKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKworPHA+VGhlIG1hcmt1cCBkZWNsYXJhdGlvbnMgbWF5IGJlIG1hZGUgdXAgaW4gd2hvbGUgb3IgaW4gcGFydCBvZgordGhlIDx0ZXJtcmVmIGRlZj0nZHQtcmVwbHRleHQnPnJlcGxhY2VtZW50IHRleHQ8L3Rlcm1yZWY+IG9mIAorPHRlcm1yZWYgZGVmPSdkdC1QRSc+cGFyYW1ldGVyIGVudGl0aWVzPC90ZXJtcmVmPi4KK1RoZSBwcm9kdWN0aW9ucyBsYXRlciBpbiB0aGlzIHNwZWNpZmljYXRpb24gZm9yCitpbmRpdmlkdWFsIG5vbnRlcm1pbmFscyAoPG50IGRlZj0nTlQtZWxlbWVudGRlY2wnPmVsZW1lbnRkZWNsPC9udD4sCis8bnQgZGVmPSdOVC1BdHRsaXN0RGVjbCc+QXR0bGlzdERlY2w8L250PiwgYW5kIHNvIG9uKSBkZXNjcmliZSAKK3RoZSBkZWNsYXJhdGlvbnMgPGVtcGg+YWZ0ZXI8L2VtcGg+IGFsbCB0aGUgcGFyYW1ldGVyIGVudGl0aWVzIGhhdmUgYmVlbiAKKzx0ZXJtcmVmIGRlZj0nZHQtaW5jbHVkZSc+aW5jbHVkZWQ8L3Rlcm1yZWY+LjwvcD4KKworPHZjbm90ZSBpZD0idmMtcm9vdHR5cGUiPgorPGhlYWQ+Um9vdCBFbGVtZW50IFR5cGU8L2hlYWQ+Cis8cD4KK1RoZSA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gaW4gdGhlIGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24gbXVzdAorbWF0Y2ggdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgPHRlcm1yZWYgZGVmPSdkdC1yb290Jz5yb290IGVsZW1lbnQ8L3Rlcm1yZWY+LgorPC9wPgorPC92Y25vdGU+CisKKzx2Y25vdGUgaWQ9J3ZjLVBFaW5NYXJrdXBEZWNsJz4KKzxoZWFkPlByb3BlciBEZWNsYXJhdGlvbi9QRSBOZXN0aW5nPC9oZWFkPgorPHA+UGFyYW1ldGVyLWVudGl0eSAKKzx0ZXJtcmVmIGRlZj0nZHQtcmVwbHRleHQnPnJlcGxhY2VtZW50IHRleHQ8L3Rlcm1yZWY+IG11c3QgYmUgcHJvcGVybHkgbmVzdGVkCit3aXRoIG1hcmt1cCBkZWNsYXJhdGlvbnMuIAorVGhhdCBpcyB0byBzYXksIGlmIGVpdGhlciB0aGUgZmlyc3QgY2hhcmFjdGVyCitvciB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBtYXJrdXAKK2RlY2xhcmF0aW9uICg8bnQgZGVmPSdOVC1tYXJrdXBkZWNsJz5tYXJrdXBkZWNsPC9udD4gYWJvdmUpCitpcyBjb250YWluZWQgaW4gdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIGEgCis8dGVybXJlZiBkZWY9J2R0LVBFUmVmJz5wYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZTwvdGVybXJlZj4sCitib3RoIG11c3QgYmUgY29udGFpbmVkIGluIHRoZSBzYW1lIHJlcGxhY2VtZW50IHRleHQuPC9wPgorPC92Y25vdGU+Cis8d2Zjbm90ZSBpZD0id2ZjLVBFaW5JbnRlcm5hbFN1YnNldCI+Cis8aGVhZD5QRXMgaW4gSW50ZXJuYWwgU3Vic2V0PC9oZWFkPgorPHA+SW4gdGhlIGludGVybmFsIERURCBzdWJzZXQsIAorPHRlcm1yZWYgZGVmPSdkdC1QRVJlZic+cGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzPC90ZXJtcmVmPgorY2FuIG9jY3VyIG9ubHkgd2hlcmUgbWFya3VwIGRlY2xhcmF0aW9ucyBjYW4gb2NjdXIsIG5vdAord2l0aGluIG1hcmt1cCBkZWNsYXJhdGlvbnMuICAoVGhpcyBkb2VzIG5vdCBhcHBseSB0bworcmVmZXJlbmNlcyB0aGF0IG9jY3VyIGluCitleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMgb3IgdG8gdGhlIGV4dGVybmFsIHN1YnNldC4pCis8L3A+Cis8L3dmY25vdGU+Cis8cD4KK0xpa2UgdGhlIGludGVybmFsIHN1YnNldCwgdGhlIGV4dGVybmFsIHN1YnNldCBhbmQgCithbnkgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIHJlZmVycmVkIHRvIGluIHRoZSBEVEQgCittdXN0IGNvbnNpc3Qgb2YgYSBzZXJpZXMgb2YgY29tcGxldGUgbWFya3VwIGRlY2xhcmF0aW9ucyBvZiB0aGUgdHlwZXMgCithbGxvd2VkIGJ5IHRoZSBub24tdGVybWluYWwgc3ltYm9sCis8bnQgZGVmPSJOVC1tYXJrdXBkZWNsIj5tYXJrdXBkZWNsPC9udD4sIGludGVyc3BlcnNlZCB3aXRoIHdoaXRlIHNwYWNlCitvciA8dGVybXJlZiBkZWY9ImR0LVBFUmVmIj5wYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZXM8L3Rlcm1yZWY+LgorSG93ZXZlciwgcG9ydGlvbnMgb2YgdGhlIGNvbnRlbnRzCitvZiB0aGUgCitleHRlcm5hbCBzdWJzZXQgb3Igb2YgZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIG1heSBjb25kaXRpb25hbGx5IGJlIGlnbm9yZWQKK2J5IHVzaW5nIAordGhlIDx0ZXJtcmVmIGRlZj0iZHQtY29uZC1zZWN0aW9uIj5jb25kaXRpb25hbCBzZWN0aW9uPC90ZXJtcmVmPgorY29uc3RydWN0OyB0aGlzIGlzIG5vdCBhbGxvd2VkIGluIHRoZSBpbnRlcm5hbCBzdWJzZXQuCisKKzxzY3JhcCBpZD0iZXh0LVN1YnNldCI+Cis8aGVhZD5FeHRlcm5hbCBTdWJzZXQ8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjYiIHBjdzQ9IjE3LjUiIHBjdzU9IjkiPgorPHByb2QgaWQ9J05ULWV4dFN1YnNldCc+PGxocz5leHRTdWJzZXQ8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtVGV4dERlY2wnPlRleHREZWNsPC9udD4/Cis8bnQgZGVmPSdOVC1leHRTdWJzZXREZWNsJz5leHRTdWJzZXREZWNsPC9udD48L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtZXh0U3Vic2V0RGVjbCc+PGxocz5leHRTdWJzZXREZWNsPC9saHM+Cis8cmhzPigKKzxudCBkZWY9J05ULW1hcmt1cGRlY2wnPm1hcmt1cGRlY2w8L250PiAKK3wgPG50IGRlZj0nTlQtY29uZGl0aW9uYWxTZWN0Jz5jb25kaXRpb25hbFNlY3Q8L250PiAKK3wgPG50IGRlZj0nTlQtUEVSZWZlcmVuY2UnPlBFUmVmZXJlbmNlPC9udD4gCit8IDxudCBkZWY9J05ULVMnPlM8L250PgorKSo8L3Jocz4KKzwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD48L3A+Cis8cD5UaGUgZXh0ZXJuYWwgc3Vic2V0IGFuZCBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXRpZXMgYWxzbyBkaWZmZXIgCitmcm9tIHRoZSBpbnRlcm5hbCBzdWJzZXQgaW4gdGhhdCBpbiB0aGVtLAorPHRlcm1yZWYgZGVmPSJkdC1QRVJlZiI+cGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2VzPC90ZXJtcmVmPgorYXJlIHBlcm1pdHRlZCA8ZW1waD53aXRoaW48L2VtcGg+IG1hcmt1cCBkZWNsYXJhdGlvbnMsCitub3Qgb25seSA8ZW1waD5iZXR3ZWVuPC9lbXBoPiBtYXJrdXAgZGVjbGFyYXRpb25zLjwvcD4KKzxwPkFuIGV4YW1wbGUgb2YgYW4gWE1MIGRvY3VtZW50IHdpdGggYSBkb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uOgorPGVnPjwhW0NEQVRBWzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGdyZWV0aW5nIFNZU1RFTSAiaGVsbG8uZHRkIj4KKzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz4KK11dPjwvZWc+CitUaGUgPHRlcm1yZWYgZGVmPSJkdC1zeXNpZCI+c3lzdGVtIGlkZW50aWZpZXI8L3Rlcm1yZWY+IAorIjxjb2RlPmhlbGxvLmR0ZDwvY29kZT4iIGdpdmVzIHRoZSBVUkkgb2YgYSBEVEQgZm9yIHRoZSBkb2N1bWVudC48L3A+Cis8cD5UaGUgZGVjbGFyYXRpb25zIGNhbiBhbHNvIGJlIGdpdmVuIGxvY2FsbHksIGFzIGluIHRoaXMgCitleGFtcGxlOgorPGVnPjwhW0NEQVRBWzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFET0NUWVBFIGdyZWV0aW5nIFsKKyAgPCFFTEVNRU5UIGdyZWV0aW5nICgjUENEQVRBKT4KK10+Cis8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+CitdXT48L2VnPgorSWYgYm90aCB0aGUgZXh0ZXJuYWwgYW5kIGludGVybmFsIHN1YnNldHMgYXJlIHVzZWQsIHRoZSAKK2ludGVybmFsIHN1YnNldCBpcyBjb25zaWRlcmVkIHRvIG9jY3VyIGJlZm9yZSB0aGUgZXh0ZXJuYWwgc3Vic2V0LgorPCEtLSAnaXMgY29uc2lkZXJlZCB0byc/IGJvby4gd2hhenphdCBtZWFuPyAtLT4KK1RoaXMgaGFzIHRoZSBlZmZlY3QgdGhhdCBlbnRpdHkgYW5kIGF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9ucyBpbiB0aGUKK2ludGVybmFsIHN1YnNldCB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aG9zZSBpbiB0aGUgZXh0ZXJuYWwgc3Vic2V0LgorPC9wPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9J3NlYy1ybWQnPgorPGhlYWQ+U3RhbmRhbG9uZSBEb2N1bWVudCBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwPk1hcmt1cCBkZWNsYXJhdGlvbnMgY2FuIGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgZG9jdW1lbnQsCithcyBwYXNzZWQgZnJvbSBhbiA8dGVybXJlZiBkZWY9ImR0LXhtbC1wcm9jIj5YTUwgcHJvY2Vzc29yPC90ZXJtcmVmPiAKK3RvIGFuIGFwcGxpY2F0aW9uOyBleGFtcGxlcyBhcmUgYXR0cmlidXRlIGRlZmF1bHRzIGFuZCBlbnRpdHkKK2RlY2xhcmF0aW9ucy4KK1RoZSBzdGFuZGFsb25lIGRvY3VtZW50IGRlY2xhcmF0aW9uLAord2hpY2ggbWF5IGFwcGVhciBhcyBhIGNvbXBvbmVudCBvZiB0aGUgWE1MIGRlY2xhcmF0aW9uLCBzaWduYWxzCit3aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUgc3VjaCBkZWNsYXJhdGlvbnMgd2hpY2ggYXBwZWFyIGV4dGVybmFsIHRvIAordGhlIDx0ZXJtcmVmIGRlZj0nZHQtZG9jZW50Jz5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LgorPHNjcmFwIGxhbmc9ImVibmYiIGlkPSdmdWxsZHRkJz4KKzxoZWFkPlN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjQiIHBjdzQ9IjE5LjUiIHBjdzU9IjkiPgorPHByb2QgaWQ9J05ULVNERGVjbCc+PGxocz5TRERlY2w8L2xocz4KKzxyaHM+Cis8bnQgZGVmPSJOVC1TIj5TPC9udD4gCisnc3RhbmRhbG9uZScgPG50IGRlZj0nTlQtRXEnPkVxPC9udD4gCisoKCInIiAoJ3llcycgfCAnbm8nKSAiJyIpIHwgKCciJyAoJ3llcycgfCAnbm8nKSAnIicpKQorPC9yaHM+Cis8dmMgZGVmPSd2Yy1jaGVjay1ybWQnLz48L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+PC9wPgorPHA+CitJbiBhIHN0YW5kYWxvbmUgZG9jdW1lbnQgZGVjbGFyYXRpb24sIHRoZSB2YWx1ZSAiPGNvZGU+eWVzPC9jb2RlPiIgaW5kaWNhdGVzCit0aGF0IHRoZXJlIAorYXJlIG5vIG1hcmt1cCBkZWNsYXJhdGlvbnMgZXh0ZXJuYWwgdG8gdGhlIDx0ZXJtcmVmIGRlZj0nZHQtZG9jZW50Jz5kb2N1bWVudAorZW50aXR5PC90ZXJtcmVmPiAoZWl0aGVyIGluIHRoZSBEVEQgZXh0ZXJuYWwgc3Vic2V0LCBvciBpbiBhbgorZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2VkIGZyb20gdGhlIGludGVybmFsIHN1YnNldCkKK3doaWNoIGFmZmVjdCB0aGUgaW5mb3JtYXRpb24gcGFzc2VkIGZyb20gdGhlIFhNTCBwcm9jZXNzb3IgdG8KK3RoZSBhcHBsaWNhdGlvbi4gIAorVGhlIHZhbHVlICI8Y29kZT5ubzwvY29kZT4iIGluZGljYXRlcyB0aGF0IHRoZXJlIGFyZSBvciBtYXkgYmUgc3VjaAorZXh0ZXJuYWwgbWFya3VwIGRlY2xhcmF0aW9ucy4KK05vdGUgdGhhdCB0aGUgc3RhbmRhbG9uZSBkb2N1bWVudCBkZWNsYXJhdGlvbiBvbmx5IAorZGVub3RlcyB0aGUgcHJlc2VuY2Ugb2YgZXh0ZXJuYWwgPGVtcGg+ZGVjbGFyYXRpb25zPC9lbXBoPjsgdGhlIHByZXNlbmNlLCBpbiBhCitkb2N1bWVudCwgb2YgCityZWZlcmVuY2VzIHRvIGV4dGVybmFsIDxlbXBoPmVudGl0aWVzPC9lbXBoPiwgd2hlbiB0aG9zZSBlbnRpdGllcyBhcmUKK2ludGVybmFsbHkgZGVjbGFyZWQsIAorZG9lcyBub3QgY2hhbmdlIGl0cyBzdGFuZGFsb25lIHN0YXR1cy48L3A+Cis8cD5JZiB0aGVyZSBhcmUgbm8gZXh0ZXJuYWwgbWFya3VwIGRlY2xhcmF0aW9ucywgdGhlIHN0YW5kYWxvbmUgZG9jdW1lbnQKK2RlY2xhcmF0aW9uIGhhcyBubyBtZWFuaW5nLiAKK0lmIHRoZXJlIGFyZSBleHRlcm5hbCBtYXJrdXAgZGVjbGFyYXRpb25zIGJ1dCB0aGVyZSBpcyBubyBzdGFuZGFsb25lCitkb2N1bWVudCBkZWNsYXJhdGlvbiwgdGhlIHZhbHVlICI8Y29kZT5ubzwvY29kZT4iIGlzIGFzc3VtZWQuPC9wPgorPHA+QW55IFhNTCBkb2N1bWVudCBmb3Igd2hpY2ggPGNvZGU+c3RhbmRhbG9uZT0ibm8iPC9jb2RlPiBob2xkcyBjYW4gCitiZSBjb252ZXJ0ZWQgYWxnb3JpdGhtaWNhbGx5IHRvIGEgc3RhbmRhbG9uZSBkb2N1bWVudCwgCit3aGljaCBtYXkgYmUgZGVzaXJhYmxlIGZvciBzb21lIG5ldHdvcmsgZGVsaXZlcnkgYXBwbGljYXRpb25zLjwvcD4KKzx2Y25vdGUgaWQ9J3ZjLWNoZWNrLXJtZCc+Cis8aGVhZD5TdGFuZGFsb25lIERvY3VtZW50IERlY2xhcmF0aW9uPC9oZWFkPgorPHA+VGhlIHN0YW5kYWxvbmUgZG9jdW1lbnQgZGVjbGFyYXRpb24gbXVzdCBoYXZlCit0aGUgdmFsdWUgIjxjb2RlPm5vPC9jb2RlPiIgaWYgYW55IGV4dGVybmFsIG1hcmt1cCBkZWNsYXJhdGlvbnMKK2NvbnRhaW4gZGVjbGFyYXRpb25zIG9mOjwvcD48dWxpc3Q+Cis8aXRlbT48cD5hdHRyaWJ1dGVzIHdpdGggPHRlcm1yZWYgZGVmPSJkdC1kZWZhdWx0Ij5kZWZhdWx0PC90ZXJtcmVmPiB2YWx1ZXMsIGlmCitlbGVtZW50cyB0byB3aGljaAordGhlc2UgYXR0cmlidXRlcyBhcHBseSBhcHBlYXIgaW4gdGhlIGRvY3VtZW50IHdpdGhvdXQKK3NwZWNpZmljYXRpb25zIG9mIHZhbHVlcyBmb3IgdGhlc2UgYXR0cmlidXRlcywgb3I8L3A+PC9pdGVtPgorPGl0ZW0+PHA+ZW50aXRpZXMgKG90aGVyIHRoYW4gJm1hZ2ljZW50czspLCAKK2lmIDx0ZXJtcmVmIGRlZj0iZHQtZW50cmVmIj5yZWZlcmVuY2VzPC90ZXJtcmVmPiB0byB0aG9zZQorZW50aXRpZXMgYXBwZWFyIGluIHRoZSBkb2N1bWVudCwgb3I8L3A+Cis8L2l0ZW0+Cis8aXRlbT48cD5hdHRyaWJ1dGVzIHdpdGggdmFsdWVzIHN1YmplY3QgdG8KKzx0aXRsZXJlZiBocmVmPSdBVk5vcm1hbGl6ZSc+bm9ybWFsaXphdGlvbjwvdGl0bGVyZWY+LCB3aGVyZSB0aGUKK2F0dHJpYnV0ZSBhcHBlYXJzIGluIHRoZSBkb2N1bWVudCB3aXRoIGEgdmFsdWUgd2hpY2ggd2lsbAorY2hhbmdlIGFzIGEgcmVzdWx0IG9mIG5vcm1hbGl6YXRpb24sIG9yPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5lbGVtZW50IHR5cGVzIHdpdGggPHRlcm1yZWYgZGVmPSJkdC1lbGVtY29udGVudCI+ZWxlbWVudCBjb250ZW50PC90ZXJtcmVmPiwgCitpZiB3aGl0ZSBzcGFjZSBvY2N1cnMKK2RpcmVjdGx5IHdpdGhpbiBhbnkgaW5zdGFuY2Ugb2YgdGhvc2UgdHlwZXMuCis8L3A+PC9pdGVtPgorPC91bGlzdD4KKworPC92Y25vdGU+Cis8cD5BbiBleGFtcGxlIFhNTCBkZWNsYXJhdGlvbiB3aXRoIGEgc3RhbmRhbG9uZSBkb2N1bWVudCBkZWNsYXJhdGlvbjo8ZWcKKz4mbHQ7P3htbCB2ZXJzaW9uPSImWE1MLnZlcnNpb247IiBzdGFuZGFsb25lPSd5ZXMnPz48L2VnPjwvcD4KKzwvZGl2Mj4KKzxkaXYyIGlkPSdzZWMtd2hpdGUtc3BhY2UnPgorPGhlYWQ+V2hpdGUgU3BhY2UgSGFuZGxpbmc8L2hlYWQ+CisKKzxwPkluIGVkaXRpbmcgWE1MIGRvY3VtZW50cywgaXQgaXMgb2Z0ZW4gY29udmVuaWVudCB0byB1c2UgIndoaXRlIHNwYWNlIgorKHNwYWNlcywgdGFicywgYW5kIGJsYW5rIGxpbmVzLCBkZW5vdGVkIGJ5IHRoZSBub250ZXJtaW5hbCAKKzxudCBkZWY9J05ULVMnPlM8L250PiBpbiB0aGlzIHNwZWNpZmljYXRpb24pIHRvCitzZXQgYXBhcnQgdGhlIG1hcmt1cCBmb3IgZ3JlYXRlciByZWFkYWJpbGl0eS4gIFN1Y2ggd2hpdGUgc3BhY2UgaXMgdHlwaWNhbGx5Citub3QgaW50ZW5kZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgZGVsaXZlcmVkIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50LgorT24gdGhlIG90aGVyIGhhbmQsICJzaWduaWZpY2FudCIgd2hpdGUgc3BhY2UgdGhhdCBzaG91bGQgYmUgcHJlc2VydmVkIGluIHRoZQorZGVsaXZlcmVkIHZlcnNpb24gaXMgY29tbW9uLCBmb3IgZXhhbXBsZSBpbiBwb2V0cnkgYW5kCitzb3VyY2UgY29kZS48L3A+Cis8cD5BbiA8dGVybXJlZiBkZWY9J2R0LXhtbC1wcm9jJz5YTUwgcHJvY2Vzc29yPC90ZXJtcmVmPiAKK211c3QgYWx3YXlzIHBhc3MgYWxsIGNoYXJhY3RlcnMgaW4gYSBkb2N1bWVudCB0aGF0IGFyZSBub3QKK21hcmt1cCB0aHJvdWdoIHRvIHRoZSBhcHBsaWNhdGlvbi4gICBBIDx0ZXJtcmVmIGRlZj0nZHQtdmFsaWRhdGluZyc+Cit2YWxpZGF0aW5nIFhNTCBwcm9jZXNzb3I8L3Rlcm1yZWY+IG11c3QgYWxzbyBpbmZvcm0gdGhlIGFwcGxpY2F0aW9uCit3aGljaCAgb2YgdGhlc2UgY2hhcmFjdGVycyBjb25zdGl0dXRlIHdoaXRlIHNwYWNlIGFwcGVhcmluZworaW4gPHRlcm1yZWYgZGVmPSJkdC1lbGVtY29udGVudCI+ZWxlbWVudCBjb250ZW50PC90ZXJtcmVmPi4KKzwvcD4KKzxwPkEgc3BlY2lhbCA8dGVybXJlZiBkZWY9J2R0LWF0dHInPmF0dHJpYnV0ZTwvdGVybXJlZj4gCituYW1lZCA8a3c+eG1sOnNwYWNlPC9rdz4gbWF5IGJlIGF0dGFjaGVkIHRvIGFuIGVsZW1lbnQKK3RvIHNpZ25hbCBhbiBpbnRlbnRpb24gdGhhdCBpbiB0aGF0IGVsZW1lbnQsCit3aGl0ZSBzcGFjZSBzaG91bGQgYmUgcHJlc2VydmVkIGJ5IGFwcGxpY2F0aW9ucy4KK0luIHZhbGlkIGRvY3VtZW50cywgdGhpcyBhdHRyaWJ1dGUsIGxpa2UgYW55IG90aGVyLCBtdXN0IGJlIAorPHRlcm1yZWYgZGVmPSJkdC1hdHRkZWNsIj5kZWNsYXJlZDwvdGVybXJlZj4gaWYgaXQgaXMgdXNlZC4KK1doZW4gZGVjbGFyZWQsIGl0IG11c3QgYmUgZ2l2ZW4gYXMgYW4gCis8dGVybXJlZiBkZWY9J2R0LWVudW1lcmF0ZWQnPmVudW1lcmF0ZWQgdHlwZTwvdGVybXJlZj4gd2hvc2Ugb25seQorcG9zc2libGUgdmFsdWVzIGFyZSAiPGNvZGU+ZGVmYXVsdDwvY29kZT4iIGFuZCAiPGNvZGU+cHJlc2VydmU8L2NvZGU+Ii4KK0ZvciBleGFtcGxlOjxlZz48IVtDREFUQVsgICAgPCFBVFRMSVNUIHBvZW0gICB4bWw6c3BhY2UgKGRlZmF1bHR8cHJlc2VydmUpICdwcmVzZXJ2ZSc+XV0+PC9lZz48L3A+Cis8cD5UaGUgdmFsdWUgIjxjb2RlPmRlZmF1bHQ8L2NvZGU+IiBzaWduYWxzIHRoYXQgYXBwbGljYXRpb25zJworZGVmYXVsdCB3aGl0ZS1zcGFjZSBwcm9jZXNzaW5nIG1vZGVzIGFyZSBhY2NlcHRhYmxlIGZvciB0aGlzIGVsZW1lbnQ7IHRoZQordmFsdWUgIjxjb2RlPnByZXNlcnZlPC9jb2RlPiIgaW5kaWNhdGVzIHRoZSBpbnRlbnQgdGhhdCBhcHBsaWNhdGlvbnMgcHJlc2VydmUKK2FsbCB0aGUgd2hpdGUgc3BhY2UuCitUaGlzIGRlY2xhcmVkIGludGVudCBpcyBjb25zaWRlcmVkIHRvIGFwcGx5IHRvIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGNvbnRlbnQKK29mIHRoZSBlbGVtZW50IHdoZXJlIGl0IGlzIHNwZWNpZmllZCwgdW5sZXNzIG92ZXJyaWRlbiB3aXRoIGFub3RoZXIgaW5zdGFuY2UKK29mIHRoZSA8a3c+eG1sOnNwYWNlPC9rdz4gYXR0cmlidXRlLgorPC9wPgorPHA+VGhlIDx0ZXJtcmVmIGRlZj0nZHQtcm9vdCc+cm9vdCBlbGVtZW50PC90ZXJtcmVmPiBvZiBhbnkgZG9jdW1lbnQKK2lzIGNvbnNpZGVyZWQgdG8gaGF2ZSBzaWduYWxlZCBubyBpbnRlbnRpb25zIGFzIHJlZ2FyZHMgYXBwbGljYXRpb24gc3BhY2UKK2hhbmRsaW5nLCB1bmxlc3MgaXQgcHJvdmlkZXMgYSB2YWx1ZSBmb3IgCit0aGlzIGF0dHJpYnV0ZSBvciB0aGUgYXR0cmlidXRlIGlzIGRlY2xhcmVkIHdpdGggYSBkZWZhdWx0IHZhbHVlLgorPC9wPgorCis8L2RpdjI+Cis8ZGl2MiBpZD0nc2VjLWxpbmUtZW5kcyc+Cis8aGVhZD5FbmQtb2YtTGluZSBIYW5kbGluZzwvaGVhZD4KKzxwPlhNTCA8dGVybXJlZiBkZWY9J2R0LXBhcnNlZGVudCc+cGFyc2VkIGVudGl0aWVzPC90ZXJtcmVmPiBhcmUgb2Z0ZW4gc3RvcmVkIGluCitjb21wdXRlciBmaWxlcyB3aGljaCwgZm9yIGVkaXRpbmcgY29udmVuaWVuY2UsIGFyZSBvcmdhbml6ZWQgaW50byBsaW5lcy4KK1RoZXNlIGxpbmVzIGFyZSB0eXBpY2FsbHkgc2VwYXJhdGVkIGJ5IHNvbWUgY29tYmluYXRpb24gb2YgdGhlIGNoYXJhY3RlcnMKK2NhcnJpYWdlLXJldHVybiAoI3hEKSBhbmQgbGluZS1mZWVkICgjeEEpLjwvcD4KKzxwPlRvIHNpbXBsaWZ5IHRoZSB0YXNrcyBvZiA8dGVybXJlZiBkZWY9J2R0LWFwcCc+YXBwbGljYXRpb25zPC90ZXJtcmVmPiwKK3doZXJldmVyIGFuIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkgb3IgdGhlIGxpdGVyYWwgZW50aXR5IHZhbHVlCitvZiBhbiBpbnRlcm5hbCBwYXJzZWQgZW50aXR5IGNvbnRhaW5zIGVpdGhlciB0aGUgbGl0ZXJhbCAKK3R3by1jaGFyYWN0ZXIgc2VxdWVuY2UgIiN4RCN4QSIgb3IgYSBzdGFuZGFsb25lIGxpdGVyYWwKKyN4RCwgYW4gPHRlcm1yZWYgZGVmPSdkdC14bWwtcHJvYyc+WE1MIHByb2Nlc3NvcjwvdGVybXJlZj4gbXVzdCAKK3Bhc3MgdG8gdGhlIGFwcGxpY2F0aW9uIHRoZSBzaW5nbGUgY2hhcmFjdGVyICN4QS4KKyhUaGlzIGJlaGF2aW9yIGNhbiAKK2NvbnZlbmllbnRseSBiZSBwcm9kdWNlZCBieSBub3JtYWxpemluZyBhbGwgCitsaW5lIGJyZWFrcyB0byAjeEEgb24gaW5wdXQsIGJlZm9yZSBwYXJzaW5nLikKKzwvcD4KKzwvZGl2Mj4KKzxkaXYyIGlkPSdzZWMtbGFuZy10YWcnPgorPGhlYWQ+TGFuZ3VhZ2UgSWRlbnRpZmljYXRpb248L2hlYWQ+Cis8cD5JbiBkb2N1bWVudCBwcm9jZXNzaW5nLCBpdCBpcyBvZnRlbiB1c2VmdWwgdG8KK2lkZW50aWZ5IHRoZSBuYXR1cmFsIG9yIGZvcm1hbCBsYW5ndWFnZSAKK2luIHdoaWNoIHRoZSBjb250ZW50IGlzIAord3JpdHRlbi4KK0Egc3BlY2lhbCA8dGVybXJlZiBkZWY9ImR0LWF0dHIiPmF0dHJpYnV0ZTwvdGVybXJlZj4gbmFtZWQKKzxrdz54bWw6bGFuZzwva3c+IG1heSBiZSBpbnNlcnRlZCBpbgorZG9jdW1lbnRzIHRvIHNwZWNpZnkgdGhlIAorbGFuZ3VhZ2UgdXNlZCBpbiB0aGUgY29udGVudHMgYW5kIGF0dHJpYnV0ZSB2YWx1ZXMgCitvZiBhbnkgZWxlbWVudCBpbiBhbiBYTUwgZG9jdW1lbnQuCitJbiB2YWxpZCBkb2N1bWVudHMsIHRoaXMgYXR0cmlidXRlLCBsaWtlIGFueSBvdGhlciwgbXVzdCBiZSAKKzx0ZXJtcmVmIGRlZj0iZHQtYXR0ZGVjbCI+ZGVjbGFyZWQ8L3Rlcm1yZWY+IGlmIGl0IGlzIHVzZWQuCitUaGUgdmFsdWVzIG9mIHRoZSBhdHRyaWJ1dGUgYXJlIGxhbmd1YWdlIGlkZW50aWZpZXJzIGFzIGRlZmluZWQKK2J5IDxiaWJyZWYgcmVmPSJSRkMxNzY2Ii8+LCAiVGFncyBmb3IgdGhlIElkZW50aWZpY2F0aW9uIG9mIExhbmd1YWdlcyI6Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5MYW5ndWFnZSBJZGVudGlmaWNhdGlvbjwvaGVhZD4KKzxwcm9kIGlkPSdOVC1MYW5ndWFnZUlEJz48bGhzPkxhbmd1YWdlSUQ8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtTGFuZ2NvZGUnPkxhbmdjb2RlPC9udD4gCisoJy0nIDxudCBkZWY9J05ULVN1YmNvZGUnPlN1YmNvZGU8L250PikqPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULUxhbmdjb2RlJz48bGhzPkxhbmdjb2RlPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULUlTTzYzOUNvZGUnPklTTzYzOUNvZGU8L250PiB8IAorPG50IGRlZj0nTlQtSWFuYUNvZGUnPklhbmFDb2RlPC9udD4gfCAKKzxudCBkZWY9J05ULVVzZXJDb2RlJz5Vc2VyQ29kZTwvbnQ+PC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtSVNPNjM5Q29kZSc+PGxocz5JU082MzlDb2RlPC9saHM+Cis8cmhzPihbYS16XSB8IFtBLVpdKSAoW2Etel0gfCBbQS1aXSk8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtSWFuYUNvZGUnPjxsaHM+SWFuYUNvZGU8L2xocz4KKzxyaHM+KCdpJyB8ICdJJykgJy0nIChbYS16XSB8IFtBLVpdKSs8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtVXNlckNvZGUnPjxsaHM+VXNlckNvZGU8L2xocz4KKzxyaHM+KCd4JyB8ICdYJykgJy0nIChbYS16XSB8IFtBLVpdKSs8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtU3ViY29kZSc+PGxocz5TdWJjb2RlPC9saHM+Cis8cmhzPihbYS16XSB8IFtBLVpdKSs8L3Jocz48L3Byb2Q+Cis8L3NjcmFwPgorVGhlIDxudCBkZWY9J05ULUxhbmdjb2RlJz5MYW5nY29kZTwvbnQ+IG1heSBiZSBhbnkgb2YgdGhlIGZvbGxvd2luZzoKKzx1bGlzdD4KKzxpdGVtPjxwPmEgdHdvLWxldHRlciBsYW5ndWFnZSBjb2RlIGFzIGRlZmluZWQgYnkgCis8YmlicmVmIHJlZj0iSVNPNjM5Ii8+LCAiQ29kZXMKK2ZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgbmFtZXMgb2YgbGFuZ3VhZ2VzIjwvcD48L2l0ZW0+Cis8aXRlbT48cD5hIGxhbmd1YWdlIGlkZW50aWZpZXIgcmVnaXN0ZXJlZCB3aXRoIHRoZSBJbnRlcm5ldAorQXNzaWduZWQgTnVtYmVycyBBdXRob3JpdHkgPGJpYnJlZiByZWY9J0lBTkEnLz47IHRoZXNlIGJlZ2luIHdpdGggdGhlIAorcHJlZml4ICI8Y29kZT5pLTwvY29kZT4iIChvciAiPGNvZGU+SS08L2NvZGU+Iik8L3A+PC9pdGVtPgorPGl0ZW0+PHA+YSBsYW5ndWFnZSBpZGVudGlmaWVyIGFzc2lnbmVkIGJ5IHRoZSB1c2VyLCBvciBhZ3JlZWQgb24KK2JldHdlZW4gcGFydGllcyBpbiBwcml2YXRlIHVzZTsgdGhlc2UgbXVzdCBiZWdpbiB3aXRoIHRoZQorcHJlZml4ICI8Y29kZT54LTwvY29kZT4iIG9yICI8Y29kZT5YLTwvY29kZT4iIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZXkgZG8gbm90IGNvbmZsaWN0IAord2l0aCBuYW1lcyBsYXRlciBzdGFuZGFyZGl6ZWQgb3IgcmVnaXN0ZXJlZCB3aXRoIElBTkE8L3A+PC9pdGVtPgorPC91bGlzdD48L3A+Cis8cD5UaGVyZSBtYXkgYmUgYW55IG51bWJlciBvZiA8bnQgZGVmPSdOVC1TdWJjb2RlJz5TdWJjb2RlPC9udD4gc2VnbWVudHM7IGlmCit0aGUgZmlyc3QgCitzdWJjb2RlIHNlZ21lbnQgZXhpc3RzIGFuZCB0aGUgU3ViY29kZSBjb25zaXN0cyBvZiB0d28gCitsZXR0ZXJzLCB0aGVuIGl0IG11c3QgYmUgYSBjb3VudHJ5IGNvZGUgZnJvbSAKKzxiaWJyZWYgcmVmPSJJU08zMTY2Ii8+LCAiQ29kZXMgCitmb3IgdGhlIHJlcHJlc2VudGF0aW9uIG9mIG5hbWVzIG9mIGNvdW50cmllcy4iCitJZiB0aGUgZmlyc3QgCitzdWJjb2RlIGNvbnNpc3RzIG9mIG1vcmUgdGhhbiB0d28gbGV0dGVycywgaXQgbXVzdCBiZQorYSBzdWJjb2RlIGZvciB0aGUgbGFuZ3VhZ2UgaW4gcXVlc3Rpb24gcmVnaXN0ZXJlZCB3aXRoIElBTkEsCit1bmxlc3MgdGhlIDxudCBkZWY9J05ULUxhbmdjb2RlJz5MYW5nY29kZTwvbnQ+IGJlZ2lucyB3aXRoIHRoZSBwcmVmaXggCisiPGNvZGU+eC08L2NvZGU+IiBvcgorIjxjb2RlPlgtPC9jb2RlPiIuIDwvcD4KKzxwPkl0IGlzIGN1c3RvbWFyeSB0byBnaXZlIHRoZSBsYW5ndWFnZSBjb2RlIGluIGxvd2VyIGNhc2UsIGFuZAordGhlIGNvdW50cnkgY29kZSAoaWYgYW55KSBpbiB1cHBlciBjYXNlLgorTm90ZSB0aGF0IHRoZXNlIHZhbHVlcywgdW5saWtlIG90aGVyIG5hbWVzIGluIFhNTCBkb2N1bWVudHMsCithcmUgY2FzZSBpbnNlbnNpdGl2ZS48L3A+Cis8cD5Gb3IgZXhhbXBsZToKKzxlZz48IVtDREFUQVs8cCB4bWw6bGFuZz0iZW4iPlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuPC9wPgorPHAgeG1sOmxhbmc9ImVuLUdCIj5XaGF0IGNvbG91ciBpcyBpdD88L3A+Cis8cCB4bWw6bGFuZz0iZW4tVVMiPldoYXQgY29sb3IgaXMgaXQ/PC9wPgorPHNwIHdobz0iRmF1c3QiIGRlc2M9J2xlaXNlJyB4bWw6bGFuZz0iZGUiPgorICA8bD5IYWJlIG51biwgYWNoISBQaGlsb3NvcGhpZSw8L2w+CisgIDxsPkp1cmlzdGVyZWksIHVuZCBNZWRpemluPC9sPgorICA8bD51bmQgbGVpZGVyIGF1Y2ggVGhlb2xvZ2llPC9sPgorICA8bD5kdXJjaGF1cyBzdHVkaWVydCBtaXQgaGVp32VtIEJlbfxoJ24uPC9sPgorICA8L3NwPl1dPjwvZWc+PC9wPgorPCEtLTxwPlRoZSB4bWw6bGFuZyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGFwcGx5IGJvdGggdG8gdGhlIGNvbnRlbnRzIG9mIGFuCitlbGVtZW50IGFuZCAKKyh1bmxlc3Mgb3RoZXJ3aXNlIHZpYSBhdHRyaWJ1dGUgZGVmYXVsdCB2YWx1ZXMpIHRvIHRoZQordmFsdWVzIG9mIGFsbCBvZiBpdHMgYXR0cmlidXRlcyB3aXRoIGZyZWUtdGV4dCAoQ0RBVEEpIHZhbHVlcy4gIC0tPgorPHA+VGhlIGludGVudCBkZWNsYXJlZCB3aXRoIDxrdz54bWw6bGFuZzwva3c+IGlzIGNvbnNpZGVyZWQgdG8gYXBwbHkgdG8KK2FsbCBhdHRyaWJ1dGVzIGFuZCBjb250ZW50IG9mIHRoZSBlbGVtZW50IHdoZXJlIGl0IGlzIHNwZWNpZmllZCwKK3VubGVzcyBvdmVycmlkZGVuIHdpdGggYW4gaW5zdGFuY2Ugb2YgPGt3PnhtbDpsYW5nPC9rdz4KK29uIGFub3RoZXIgZWxlbWVudCB3aXRoaW4gdGhhdCBjb250ZW50LjwvcD4KKzwhLS0KK0lmIG5vCit2YWx1ZSBpcyBzcGVjaWZpZWQgZm9yIHhtbDpsYW5nIG9uIGFuIGVsZW1lbnQsIGFuZCBubyBkZWZhdWx0IHZhbHVlIGlzCitkZWZpbmVkIGZvciBpdCBpbiB0aGUgRFRELCB0aGVuIHRoZSB4bWw6bGFuZyBhdHRyaWJ1dGUgb2YgYW55IGVsZW1lbnQKK3Rha2VzIHRoZSBzYW1lIHZhbHVlIGl0IGhhcyBpbiB0aGUgcGFyZW50IGVsZW1lbnQsIGlmIGFueS4gIFRoZSB0d28KK3RlY2huaWNhbCB0ZXJtcyBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUgYm90aCBoYXZlIHRoZSBzYW1lIGVmZmVjdGl2ZQordmFsdWUgZm9yIHhtbDpsYW5nOgorCisgIDxwIHhtbDpsYW5nPSJlbiI+SGVyZSB0aGUga2V5d29yZHMgYXJlCisgIDx0ZXJtIHhtbDpsYW5nPSJlbiI+c2hpZnQ8L3Rlcm0+IGFuZAorICA8dGVybT5yZWR1Y2U8L3Rlcm0+LiAuLi48L3A+CisKK1RoZSBhcHBsaWNhdGlvbiwgbm90IHRoZSBYTUwgcHJvY2Vzc29yLCBpcyByZXNwb25zaWJsZSBmb3IgdGhpcyAnCitpbmhlcml0YW5jZScgb2YgYXR0cmlidXRlIHZhbHVlcy4KKy0tPgorPHA+QSBzaW1wbGUgZGVjbGFyYXRpb24gZm9yIDxrdz54bWw6bGFuZzwva3c+IG1pZ2h0IHRha2UKK3RoZSBmb3JtCis8ZWc+eG1sOmxhbmcgIE5NVE9LRU4gICNJTVBMSUVEPC9lZz4KK2J1dCBzcGVjaWZpYyBkZWZhdWx0IHZhbHVlcyBtYXkgYWxzbyBiZSBnaXZlbiwgaWYgYXBwcm9wcmlhdGUuICBJbiBhCitjb2xsZWN0aW9uIG9mIEZyZW5jaCBwb2VtcyBmb3IgRW5nbGlzaCBzdHVkZW50cywgd2l0aCBnbG9zc2VzIGFuZAorbm90ZXMgaW4gRW5nbGlzaCwgdGhlIHhtbDpsYW5nIGF0dHJpYnV0ZSBtaWdodCBiZSBkZWNsYXJlZCB0aGlzIHdheToKKzxlZz48IVtDREFUQVsgICAgPCFBVFRMSVNUIHBvZW0gICB4bWw6bGFuZyBOTVRPS0VOICdmcic+CisgICAgPCFBVFRMSVNUIGdsb3NzICB4bWw6bGFuZyBOTVRPS0VOICdlbic+CisgICAgPCFBVFRMSVNUIG5vdGUgICB4bWw6bGFuZyBOTVRPS0VOICdlbic+XV0+PC9lZz4KKzwvcD4KKworPC9kaXYyPgorPC9kaXYxPgorPCEtLSAmRWxlbWVudHM7IC0tPgorIAorPGRpdjEgaWQ9J3NlYy1sb2dpY2FsLXN0cnVjdCc+Cis8aGVhZD5Mb2dpY2FsIFN0cnVjdHVyZXM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtZWxlbWVudCIgdGVybT0iRWxlbWVudCI+RWFjaCA8dGVybXJlZgorZGVmPSJkdC14bWwtZG9jIj5YTUwgZG9jdW1lbnQ8L3Rlcm1yZWY+IGNvbnRhaW5zIG9uZSBvciBtb3JlCis8dGVybT5lbGVtZW50czwvdGVybT4sIHRoZSBib3VuZGFyaWVzIG9mIHdoaWNoIGFyZSAKK2VpdGhlciBkZWxpbWl0ZWQgYnkgPHRlcm1yZWYgZGVmPSJkdC1zdGFnIj5zdGFydC10YWdzPC90ZXJtcmVmPiAKK2FuZCA8dGVybXJlZiBkZWY9ImR0LWV0YWciPmVuZC10YWdzPC90ZXJtcmVmPiwgb3IsIGZvciA8dGVybXJlZgorZGVmPSJkdC1lbXB0eSI+ZW1wdHk8L3Rlcm1yZWY+IGVsZW1lbnRzLCBieSBhbiA8dGVybXJlZgorZGVmPSJkdC1lZXRhZyI+ZW1wdHktZWxlbWVudCB0YWc8L3Rlcm1yZWY+LiBFYWNoIGVsZW1lbnQgaGFzIGEgdHlwZSwKK2lkZW50aWZpZWQgYnkgbmFtZSwgc29tZXRpbWVzIGNhbGxlZCBpdHMgImdlbmVyaWMKK2lkZW50aWZpZXIiIChHSSksIGFuZCBtYXkgaGF2ZSBhIHNldCBvZgorYXR0cmlidXRlIHNwZWNpZmljYXRpb25zLjwvdGVybWRlZj4gIEVhY2ggYXR0cmlidXRlIHNwZWNpZmljYXRpb24gCitoYXMgYSA8dGVybXJlZgorZGVmPSJkdC1hdHRybmFtZSI+bmFtZTwvdGVybXJlZj4gYW5kIGEgPHRlcm1yZWYKK2RlZj0iZHQtYXR0cnZhbCI+dmFsdWU8L3Rlcm1yZWY+LgorPC9wPgorPHNjcmFwIGxhbmc9J2VibmYnPjxoZWFkPkVsZW1lbnQ8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtZWxlbWVudCc+PGxocz5lbGVtZW50PC9saHM+Cis8cmhzPjxudCBkZWY9J05ULUVtcHR5RWxlbVRhZyc+RW1wdHlFbGVtVGFnPC9udD48L3Jocz4KKzxyaHM+fCA8bnQgZGVmPSdOVC1TVGFnJz5TVGFnPC9udD4gPG50IGRlZj0nTlQtY29udGVudCc+Y29udGVudDwvbnQ+IAorPG50IGRlZj0nTlQtRVRhZyc+RVRhZzwvbnQ+PC9yaHM+Cis8d2ZjIGRlZj0nR0lNYXRjaCcvPgorPHZjIGRlZj0nZWxlbWVudHZhbGlkJy8+Cis8L3Byb2Q+Cis8L3NjcmFwPgorPHA+VGhpcyBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IGNvbnN0cmFpbiB0aGUgc2VtYW50aWNzLCB1c2UsIG9yIChiZXlvbmQKK3N5bnRheCkgbmFtZXMgb2YgdGhlIGVsZW1lbnQgdHlwZXMgYW5kIGF0dHJpYnV0ZXMsIGV4Y2VwdCB0aGF0IG5hbWVzCitiZWdpbm5pbmcgd2l0aCBhIG1hdGNoIHRvIDxjb2RlPigoJ1gnfCd4JykoJ00nfCdtJykoJ0wnfCdsJykpPC9jb2RlPgorYXJlIHJlc2VydmVkIGZvciBzdGFuZGFyZGl6YXRpb24gaW4gdGhpcyBvciBmdXR1cmUgdmVyc2lvbnMgb2YgdGhpcworc3BlY2lmaWNhdGlvbi4KKzwvcD4KKzx3ZmNub3RlIGlkPSdHSU1hdGNoJz4KKzxoZWFkPkVsZW1lbnQgVHlwZSBNYXRjaDwvaGVhZD4KKzxwPgorVGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBpbiBhbiBlbGVtZW50J3MgZW5kLXRhZyBtdXN0IG1hdGNoIAordGhlIGVsZW1lbnQgdHlwZSBpbgordGhlIHN0YXJ0LXRhZy4KKzwvcD4KKzwvd2Zjbm90ZT4KKzx2Y25vdGUgaWQ9J2VsZW1lbnR2YWxpZCc+Cis8aGVhZD5FbGVtZW50IFZhbGlkPC9oZWFkPgorPHA+QW4gZWxlbWVudCBpcwordmFsaWQgaWYKK3RoZXJlIGlzIGEgZGVjbGFyYXRpb24gbWF0Y2hpbmcgCis8bnQgZGVmPSdOVC1lbGVtZW50ZGVjbCc+ZWxlbWVudGRlY2w8L250PiB3aGVyZSB0aGUKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBtYXRjaGVzIHRoZSBlbGVtZW50IHR5cGUsIGFuZAorb25lIG9mIHRoZSBmb2xsb3dpbmcgaG9sZHM6PC9wPgorPG9saXN0PgorPGl0ZW0+PHA+VGhlIGRlY2xhcmF0aW9uIG1hdGNoZXMgPGt3PkVNUFRZPC9rdz4gYW5kIHRoZSBlbGVtZW50IGhhcyBubyAKKzx0ZXJtcmVmIGRlZj0nZHQtY29udGVudCc+Y29udGVudDwvdGVybXJlZj4uPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRoZSBkZWNsYXJhdGlvbiBtYXRjaGVzIDxudCBkZWY9J05ULWNoaWxkcmVuJz5jaGlsZHJlbjwvbnQ+IGFuZAordGhlIHNlcXVlbmNlIG9mIAorPHRlcm1yZWYgZGVmPSJkdC1wYXJlbnRjaGlsZCI+Y2hpbGQgZWxlbWVudHM8L3Rlcm1yZWY+CitiZWxvbmdzIHRvIHRoZSBsYW5ndWFnZSBnZW5lcmF0ZWQgYnkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbgordGhlIGNvbnRlbnQgbW9kZWwsIHdpdGggb3B0aW9uYWwgd2hpdGUgc3BhY2UgKGNoYXJhY3RlcnMgCittYXRjaGluZyB0aGUgbm9udGVybWluYWwgPG50IGRlZj0nTlQtUyc+UzwvbnQ+KSBiZXR3ZWVuIGVhY2ggcGFpcgorb2YgY2hpbGQgZWxlbWVudHMuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRoZSBkZWNsYXJhdGlvbiBtYXRjaGVzIDxudCBkZWY9J05ULU1peGVkJz5NaXhlZDwvbnQ+IGFuZCAKK3RoZSBjb250ZW50IGNvbnNpc3RzIG9mIDx0ZXJtcmVmIGRlZj0nZHQtY2hhcmRhdGEnPmNoYXJhY3RlciAKK2RhdGE8L3Rlcm1yZWY+IGFuZCA8dGVybXJlZiBkZWY9J2R0LXBhcmVudGNoaWxkJz5jaGlsZCBlbGVtZW50czwvdGVybXJlZj4KK3dob3NlIHR5cGVzIG1hdGNoIG5hbWVzIGluIHRoZSBjb250ZW50IG1vZGVsLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgZGVjbGFyYXRpb24gbWF0Y2hlcyA8a3c+QU5ZPC9rdz4sIGFuZCB0aGUgdHlwZXMKK29mIGFueSA8dGVybXJlZiBkZWY9J2R0LXBhcmVudGNoaWxkJz5jaGlsZCBlbGVtZW50czwvdGVybXJlZj4gaGF2ZQorYmVlbiBkZWNsYXJlZC48L3A+PC9pdGVtPgorPC9vbGlzdD4KKzwvdmNub3RlPgorCis8ZGl2MiBpZD0nc2VjLXN0YXJ0dGFncyc+Cis8aGVhZD5TdGFydC1UYWdzLCBFbmQtVGFncywgYW5kIEVtcHR5LUVsZW1lbnQgVGFnczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1zdGFnIiB0ZXJtPSJTdGFydC1UYWciPlRoZSBiZWdpbm5pbmcgb2YgZXZlcnkKK25vbi1lbXB0eSBYTUwgZWxlbWVudCBpcyBtYXJrZWQgYnkgYSA8dGVybT5zdGFydC10YWc8L3Rlcm0+LgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+U3RhcnQtdGFnPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNSIgcGN3NT0iMTEuNSI+Cis8cHJvZCBpZD0nTlQtU1RhZyc+PGxocz5TVGFnPC9saHM+Cis8cmhzPicmbHQ7JyA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gCisoPG50IGRlZj0nTlQtUyc+UzwvbnQ+IDxudCBkZWY9J05ULUF0dHJpYnV0ZSc+QXR0cmlidXRlPC9udD4pKiAKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gJz4nPC9yaHM+Cis8d2ZjIGRlZj0idW5pcWF0dHNwZWMiLz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1BdHRyaWJ1dGUnPjxsaHM+QXR0cmlidXRlPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiA8bnQgZGVmPSdOVC1FcSc+RXE8L250PiAKKzxudCBkZWY9J05ULUF0dFZhbHVlJz5BdHRWYWx1ZTwvbnQ+PC9yaHM+Cis8dmMgZGVmPSdWYWx1ZVR5cGUnLz4KKzx3ZmMgZGVmPSdOb0V4dGVybmFsUmVmcycvPgorPHdmYyBkZWY9J0NsZWFuQXR0clZhbHMnLz48L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+CitUaGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IGluCit0aGUgc3RhcnQtIGFuZCBlbmQtdGFncyBnaXZlcyB0aGUgCitlbGVtZW50J3MgPHRlcm0+dHlwZTwvdGVybT4uPC90ZXJtZGVmPgorPHRlcm1kZWYgaWQ9ImR0LWF0dHIiIHRlcm09IkF0dHJpYnV0ZSI+CitUaGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+LTxudCBkZWY9J05ULUF0dFZhbHVlJz5BdHRWYWx1ZTwvbnQ+IHBhaXJzIGFyZQorcmVmZXJyZWQgdG8gYXMgCit0aGUgPHRlcm0+YXR0cmlidXRlIHNwZWNpZmljYXRpb25zPC90ZXJtPiBvZiB0aGUgZWxlbWVudDwvdGVybWRlZj4sCis8dGVybWRlZiBpZD0iZHQtYXR0cm5hbWUiIHRlcm09IkF0dHJpYnV0ZSBOYW1lIj53aXRoIHRoZSAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBpbiBlYWNoIHBhaXIKK3JlZmVycmVkIHRvIGFzIHRoZSA8dGVybT5hdHRyaWJ1dGUgbmFtZTwvdGVybT48L3Rlcm1kZWY+IGFuZAorPHRlcm1kZWYgaWQ9ImR0LWF0dHJ2YWwiIHRlcm09IkF0dHJpYnV0ZSBWYWx1ZSI+dGhlIGNvbnRlbnQgb2YgdGhlCis8bnQgZGVmPSdOVC1BdHRWYWx1ZSc+QXR0VmFsdWU8L250PiAodGhlIHRleHQgYmV0d2VlbiB0aGUKKzxjb2RlPic8L2NvZGU+IG9yIDxjb2RlPiI8L2NvZGU+IGRlbGltaXRlcnMpCithcyB0aGUgPHRlcm0+YXR0cmlidXRlIHZhbHVlPC90ZXJtPi48L3Rlcm1kZWY+Cis8L3A+Cis8d2Zjbm90ZSBpZD0ndW5pcWF0dHNwZWMnPgorPGhlYWQ+VW5pcXVlIEF0dCBTcGVjPC9oZWFkPgorPHA+CitObyBhdHRyaWJ1dGUgbmFtZSBtYXkgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIHN0YXJ0LXRhZworb3IgZW1wdHktZWxlbWVudCB0YWcuCis8L3A+Cis8L3dmY25vdGU+Cis8dmNub3RlIGlkPSdWYWx1ZVR5cGUnPgorPGhlYWQ+QXR0cmlidXRlIFZhbHVlIFR5cGU8L2hlYWQ+Cis8cD4KK1RoZSBhdHRyaWJ1dGUgbXVzdCBoYXZlIGJlZW4gZGVjbGFyZWQ7IHRoZSB2YWx1ZSBtdXN0IGJlIG9mIHRoZSB0eXBlIAorZGVjbGFyZWQgZm9yIGl0LgorKEZvciBhdHRyaWJ1dGUgdHlwZXMsIHNlZSA8c3BlY3JlZiByZWY9J2F0dGRlY2xzJy8+LikKKzwvcD4KKzwvdmNub3RlPgorPHdmY25vdGUgaWQ9J05vRXh0ZXJuYWxSZWZzJz4KKzxoZWFkPk5vIEV4dGVybmFsIEVudGl0eSBSZWZlcmVuY2VzPC9oZWFkPgorPHA+CitBdHRyaWJ1dGUgdmFsdWVzIGNhbm5vdCBjb250YWluIGRpcmVjdCBvciBpbmRpcmVjdCBlbnRpdHkgcmVmZXJlbmNlcyAKK3RvIGV4dGVybmFsIGVudGl0aWVzLgorPC9wPgorPC93ZmNub3RlPgorPHdmY25vdGUgaWQ9J0NsZWFuQXR0clZhbHMnPgorPGhlYWQ+Tm8gPGNvZGU+Jmx0OzwvY29kZT4gaW4gQXR0cmlidXRlIFZhbHVlczwvaGVhZD4KKzxwPlRoZSA8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBvZiBhbnkgZW50aXR5CityZWZlcnJlZCB0byBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluIGFuIGF0dHJpYnV0ZQordmFsdWUgKG90aGVyIHRoYW4gIjxjb2RlPiZhbXA7bHQ7PC9jb2RlPiIpIG11c3Qgbm90IGNvbnRhaW4KK2EgPGNvZGU+Jmx0OzwvY29kZT4uCis8L3A+PC93ZmNub3RlPgorPHA+QW4gZXhhbXBsZSBvZiBhIHN0YXJ0LXRhZzoKKzxlZz4mbHQ7dGVybWRlZiBpZD0iZHQtZG9nIiB0ZXJtPSJkb2ciPjwvZWc+PC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWV0YWciIHRlcm09IkVuZCBUYWciPlRoZSBlbmQgb2YgZXZlcnkgZWxlbWVudCAKK3RoYXQgYmVnaW5zIHdpdGggYSBzdGFydC10YWcgbXVzdAorYmUgbWFya2VkIGJ5IGFuIDx0ZXJtPmVuZC10YWc8L3Rlcm0+Citjb250YWluaW5nIGEgbmFtZSB0aGF0IGVjaG9lcyB0aGUgZWxlbWVudCdzIHR5cGUgYXMgZ2l2ZW4gaW4gdGhlCitzdGFydC10YWc6Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5FbmQtdGFnPC9oZWFkPgorPHByb2Rncm91cCBwY3cyPSI2IiBwY3c0PSIxNSIgcGN3NT0iMTEuNSI+Cis8cHJvZCBpZD0nTlQtRVRhZyc+PGxocz5FVGFnPC9saHM+Cis8cmhzPicmbHQ7LycgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnPic8L3Jocz48L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cis8L3Rlcm1kZWY+PC9wPgorPHA+QW4gZXhhbXBsZSBvZiBhbiBlbmQtdGFnOjxlZz4mbHQ7L3Rlcm1kZWY+PC9lZz48L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtY29udGVudCIgdGVybT0iQ29udGVudCI+VGhlIAorPHRlcm1yZWYgZGVmPSdkdC10ZXh0Jz50ZXh0PC90ZXJtcmVmPiBiZXR3ZWVuIHRoZSBzdGFydC10YWcgYW5kCitlbmQtdGFnIGlzIGNhbGxlZCB0aGUgZWxlbWVudCdzCis8dGVybT5jb250ZW50PC90ZXJtPjoKKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkNvbnRlbnQgb2YgRWxlbWVudHM8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjYiIHBjdzQ9IjE1IiBwY3c1PSIxMS41Ij4KKzxwcm9kIGlkPSdOVC1jb250ZW50Jz48bGhzPmNvbnRlbnQ8L2xocz4KKzxyaHM+KDxudCBkZWY9J05ULWVsZW1lbnQnPmVsZW1lbnQ8L250PiB8IDxudCBkZWY9J05ULUNoYXJEYXRhJz5DaGFyRGF0YTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1SZWZlcmVuY2UnPlJlZmVyZW5jZTwvbnQ+IHwgPG50IGRlZj0nTlQtQ0RTZWN0Jz5DRFNlY3Q8L250PiAKK3wgPG50IGRlZj0nTlQtUEknPlBJPC9udD4gfCA8bnQgZGVmPSdOVC1Db21tZW50Jz5Db21tZW50PC9udD4pKjwvcmhzPgorPC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC90ZXJtZGVmPjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbXB0eSIgdGVybT0iRW1wdHkiPklmIGFuIGVsZW1lbnQgaXMgPHRlcm0+ZW1wdHk8L3Rlcm0+LAoraXQgbXVzdCBiZSByZXByZXNlbnRlZCBlaXRoZXIgYnkgYSBzdGFydC10YWcgaW1tZWRpYXRlbHkgZm9sbG93ZWQKK2J5IGFuIGVuZC10YWcgb3IgYnkgYW4gZW1wdHktZWxlbWVudCB0YWcuPC90ZXJtZGVmPgorPHRlcm1kZWYgaWQ9ImR0LWVldGFnIiB0ZXJtPSJlbXB0eS1lbGVtZW50IHRhZyI+QW4gCis8dGVybT5lbXB0eS1lbGVtZW50IHRhZzwvdGVybT4gdGFrZXMgYSBzcGVjaWFsIGZvcm06Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5UYWdzIGZvciBFbXB0eSBFbGVtZW50czwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iNiIgcGN3ND0iMTUiIHBjdzU9IjExLjUiPgorPHByb2QgaWQ9J05ULUVtcHR5RWxlbVRhZyc+PGxocz5FbXB0eUVsZW1UYWc8L2xocz4KKzxyaHM+JyZsdDsnIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAoPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtQXR0cmlidXRlJz5BdHRyaWJ1dGU8L250PikqIDxudCBkZWY9J05ULVMnPlM8L250Pj8gCisnLyZndDsnPC9yaHM+Cis8d2ZjIGRlZj0idW5pcWF0dHNwZWMiLz4KKzwvcHJvZD4KKzwvcHJvZGdyb3VwPgorPC9zY3JhcD4KKzwvdGVybWRlZj48L3A+Cis8cD5FbXB0eS1lbGVtZW50IHRhZ3MgbWF5IGJlIHVzZWQgZm9yIGFueSBlbGVtZW50IHdoaWNoIGhhcyBubworY29udGVudCwgd2hldGhlciBvciBub3QgaXQgaXMgZGVjbGFyZWQgdXNpbmcgdGhlIGtleXdvcmQKKzxrdz5FTVBUWTwva3c+LgorPHRlcm1yZWYgZGVmPSdkdC1pbnRlcm9wJz5Gb3IgaW50ZXJvcGVyYWJpbGl0eTwvdGVybXJlZj4sIHRoZSBlbXB0eS1lbGVtZW50Cit0YWcgbXVzdCBiZSB1c2VkLCBhbmQgY2FuIG9ubHkgYmUgdXNlZCwgZm9yIGVsZW1lbnRzIHdoaWNoIGFyZQorPHRlcm1yZWYgZGVmPSdkdC1lbGRlY2wnPmRlY2xhcmVkPC90ZXJtcmVmPiA8a3c+RU1QVFk8L2t3Pi48L3A+Cis8cD5FeGFtcGxlcyBvZiBlbXB0eSBlbGVtZW50czoKKzxlZz4mbHQ7SU1HIGFsaWduPSJsZWZ0IgorIHNyYz0iaHR0cDovL3d3dy53My5vcmcvSWNvbnMvV1dXL3czY19ob21lIiAvPgorJmx0O2JyPiZsdDsvYnI+CismbHQ7YnIvPjwvZWc+PC9wPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9J2VsZW1kZWNscyc+Cis8aGVhZD5FbGVtZW50IFR5cGUgRGVjbGFyYXRpb25zPC9oZWFkPgorIAorPHA+VGhlIDx0ZXJtcmVmIGRlZj0iZHQtZWxlbWVudCI+ZWxlbWVudDwvdGVybXJlZj4gc3RydWN0dXJlIG9mIGFuCis8dGVybXJlZiBkZWY9ImR0LXhtbC1kb2MiPlhNTCBkb2N1bWVudDwvdGVybXJlZj4gbWF5LCBmb3IgCis8dGVybXJlZiBkZWY9ImR0LXZhbGlkIj52YWxpZGF0aW9uPC90ZXJtcmVmPiBwdXJwb3NlcywgCitiZSBjb25zdHJhaW5lZAordXNpbmcgZWxlbWVudCB0eXBlIGFuZCBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnMuCitBbiBlbGVtZW50IHR5cGUgZGVjbGFyYXRpb24gY29uc3RyYWlucyB0aGUgZWxlbWVudCdzCis8dGVybXJlZiBkZWY9ImR0LWNvbnRlbnQiPmNvbnRlbnQ8L3Rlcm1yZWY+LgorPC9wPgorCis8cD5FbGVtZW50IHR5cGUgZGVjbGFyYXRpb25zIG9mdGVuIGNvbnN0cmFpbiB3aGljaCBlbGVtZW50IHR5cGVzIGNhbgorYXBwZWFyIGFzIDx0ZXJtcmVmIGRlZj0iZHQtcGFyZW50Y2hpbGQiPmNoaWxkcmVuPC90ZXJtcmVmPiBvZiB0aGUgZWxlbWVudC4KK0F0IHVzZXIgb3B0aW9uLCBhbiBYTUwgcHJvY2Vzc29yIG1heSBpc3N1ZSBhIHdhcm5pbmcKK3doZW4gYSBkZWNsYXJhdGlvbiBtZW50aW9ucyBhbiBlbGVtZW50IHR5cGUgZm9yIHdoaWNoIG5vIGRlY2xhcmF0aW9uCitpcyBwcm92aWRlZCwgYnV0IHRoaXMgaXMgbm90IGFuIGVycm9yLjwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbGRlY2wiIHRlcm09IkVsZW1lbnQgVHlwZSBkZWNsYXJhdGlvbiI+QW4gPHRlcm0+ZWxlbWVudAordHlwZSBkZWNsYXJhdGlvbjwvdGVybT4gdGFrZXMgdGhlIGZvcm06Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5FbGVtZW50IFR5cGUgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjUuNSIgcGN3ND0iMTgiIHBjdzU9IjkiPgorPHByb2QgaWQ9J05ULWVsZW1lbnRkZWNsJz48bGhzPmVsZW1lbnRkZWNsPC9saHM+Cis8cmhzPicmbHQ7IUVMRU1FTlQnIDxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULWNvbnRlbnRzcGVjJz5jb250ZW50c3BlYzwvbnQ+Cis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICc+JzwvcmhzPgorPHZjIGRlZj0nRURVbmlxdWUnLz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtY29udGVudHNwZWMnPjxsaHM+Y29udGVudHNwZWM8L2xocz4KKzxyaHM+J0VNUFRZJyAKK3wgJ0FOWScgCit8IDxudCBkZWY9J05ULU1peGVkJz5NaXhlZDwvbnQ+IAorfCA8bnQgZGVmPSdOVC1jaGlsZHJlbic+Y2hpbGRyZW48L250PgorPC9yaHM+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cit3aGVyZSB0aGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IGdpdmVzIHRoZSBlbGVtZW50IHR5cGUgCitiZWluZyBkZWNsYXJlZC48L3Rlcm1kZWY+Cis8L3A+CisKKzx2Y25vdGUgaWQ9J0VEVW5pcXVlJz4KKzxoZWFkPlVuaXF1ZSBFbGVtZW50IFR5cGUgRGVjbGFyYXRpb248L2hlYWQ+Cis8cD4KK05vIGVsZW1lbnQgdHlwZSBtYXkgYmUgZGVjbGFyZWQgbW9yZSB0aGFuIG9uY2UuCis8L3A+Cis8L3Zjbm90ZT4KKworPHA+RXhhbXBsZXMgb2YgZWxlbWVudCB0eXBlIGRlY2xhcmF0aW9uczoKKzxlZz4mbHQ7IUVMRU1FTlQgYnIgRU1QVFk+CismbHQ7IUVMRU1FTlQgcCAoI1BDREFUQXxlbXBoKSogPgorJmx0OyFFTEVNRU5UICVuYW1lLnBhcmE7ICVjb250ZW50LnBhcmE7ID4KKyZsdDshRUxFTUVOVCBjb250YWluZXIgQU5ZPjwvZWc+PC9wPgorIAorPGRpdjMgaWQ9J3NlYy1lbGVtZW50LWNvbnRlbnQnPgorPGhlYWQ+RWxlbWVudCBDb250ZW50PC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9J2R0LWVsZW1jb250ZW50JyB0ZXJtPSdFbGVtZW50IGNvbnRlbnQnPkFuIGVsZW1lbnQgPHRlcm1yZWYKK2RlZj0iZHQtc3RhZyI+dHlwZTwvdGVybXJlZj4gaGFzCis8dGVybT5lbGVtZW50IGNvbnRlbnQ8L3Rlcm0+IHdoZW4gZWxlbWVudHMgb2YgdGhhdAordHlwZSBtdXN0IGNvbnRhaW4gb25seSA8dGVybXJlZiBkZWY9J2R0LXBhcmVudGNoaWxkJz5jaGlsZDwvdGVybXJlZj4gCitlbGVtZW50cyAobm8gY2hhcmFjdGVyIGRhdGEpLCBvcHRpb25hbGx5IHNlcGFyYXRlZCBieSAKK3doaXRlIHNwYWNlIChjaGFyYWN0ZXJzIG1hdGNoaW5nIHRoZSBub250ZXJtaW5hbCAKKzxudCBkZWY9J05ULVMnPlM8L250PikuCis8L3Rlcm1kZWY+CitJbiB0aGlzIGNhc2UsIHRoZQorY29uc3RyYWludCBpbmNsdWRlcyBhIGNvbnRlbnQgbW9kZWwsIGEgc2ltcGxlIGdyYW1tYXIgZ292ZXJuaW5nCit0aGUgYWxsb3dlZCB0eXBlcyBvZiB0aGUgY2hpbGQKK2VsZW1lbnRzIGFuZCB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcmUgYWxsb3dlZCB0byBhcHBlYXIuICAKK1RoZSBncmFtbWFyIGlzIGJ1aWx0IG9uCitjb250ZW50IHBhcnRpY2xlcyAoPG50IGRlZj0nTlQtY3AnPmNwPC9udD5zKSwgd2hpY2ggY29uc2lzdCBvZiBuYW1lcywgCitjaG9pY2UgbGlzdHMgb2YgY29udGVudCBwYXJ0aWNsZXMsIG9yCitzZXF1ZW5jZSBsaXN0cyBvZiBjb250ZW50IHBhcnRpY2xlczoKKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkVsZW1lbnQtY29udGVudCBNb2RlbHM8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjUuNSIgcGN3ND0iMTYiIHBjdzU9IjExIj4KKzxwcm9kIGlkPSdOVC1jaGlsZHJlbic+PGxocz5jaGlsZHJlbjwvbGhzPgorPHJocz4oPG50IGRlZj0nTlQtY2hvaWNlJz5jaG9pY2U8L250PiAKK3wgPG50IGRlZj0nTlQtc2VxJz5zZXE8L250PikgCisoJz8nIHwgJyonIHwgJysnKT88L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtY3AnPjxsaHM+Y3A8L2xocz4KKzxyaHM+KDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKK3wgPG50IGRlZj0nTlQtY2hvaWNlJz5jaG9pY2U8L250PiAKK3wgPG50IGRlZj0nTlQtc2VxJz5zZXE8L250PikgCisoJz8nIHwgJyonIHwgJysnKT88L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtY2hvaWNlJz48bGhzPmNob2ljZTwvbGhzPgorPHJocz4nKCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyBjcCAKKyggPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnfCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyA8bnQgZGVmPSdOVC1jcCc+Y3A8L250PiApKgorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnKSc8L3Jocz4KKzx2YyBkZWY9J3ZjLVBFaW5Hcm91cCcvPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1zZXEnPjxsaHM+c2VxPC9saHM+Cis8cmhzPicoJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4/IGNwIAorKCA8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICcsJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4/IDxudCBkZWY9J05ULWNwJz5jcDwvbnQ+ICkqCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICcpJzwvcmhzPgorPHZjIGRlZj0ndmMtUEVpbkdyb3VwJy8+PC9wcm9kPgorCis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cit3aGVyZSBlYWNoIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBpcyB0aGUgdHlwZSBvZiBhbiBlbGVtZW50IHdoaWNoIG1heQorYXBwZWFyIGFzIGEgPHRlcm1yZWYgZGVmPSJkdC1wYXJlbnRjaGlsZCI+Y2hpbGQ8L3Rlcm1yZWY+LiAgCitBbnkgY29udGVudAorcGFydGljbGUgaW4gYSBjaG9pY2UgbGlzdCBtYXkgYXBwZWFyIGluIHRoZSA8dGVybXJlZgorZGVmPSJkdC1lbGVtY29udGVudCI+ZWxlbWVudCBjb250ZW50PC90ZXJtcmVmPiBhdCB0aGUgbG9jYXRpb24gd2hlcmUKK3RoZSBjaG9pY2UgbGlzdCBhcHBlYXJzIGluIHRoZSBncmFtbWFyOworY29udGVudCBwYXJ0aWNsZXMgb2NjdXJyaW5nIGluIGEgc2VxdWVuY2UgbGlzdCBtdXN0IGVhY2gKK2FwcGVhciBpbiB0aGUgPHRlcm1yZWYgZGVmPSJkdC1lbGVtY29udGVudCI+ZWxlbWVudCBjb250ZW50PC90ZXJtcmVmPiBpbiB0aGUKK29yZGVyIGdpdmVuIGluIHRoZSBsaXN0LiAgCitUaGUgb3B0aW9uYWwgY2hhcmFjdGVyIGZvbGxvd2luZyBhIG5hbWUgb3IgbGlzdCBnb3Zlcm5zCit3aGV0aGVyIHRoZSBlbGVtZW50IG9yIHRoZSBjb250ZW50IHBhcnRpY2xlcyBpbiB0aGUgbGlzdCBtYXkgb2NjdXIgb25lCitvciBtb3JlICg8Y29kZT4rPC9jb2RlPiksIHplcm8gb3IgbW9yZSAoPGNvZGU+KjwvY29kZT4pLCBvciB6ZXJvIG9yIAorb25lIHRpbWVzICg8Y29kZT4/PC9jb2RlPikuICAKK1RoZSBhYnNlbmNlIG9mIHN1Y2ggYW4gb3BlcmF0b3IgbWVhbnMgdGhhdCB0aGUgZWxlbWVudCBvciBjb250ZW50IHBhcnRpY2xlCittdXN0IGFwcGVhciBleGFjdGx5IG9uY2UuCitUaGlzIHN5bnRheAorYW5kIG1lYW5pbmcgYXJlIGlkZW50aWNhbCB0byB0aG9zZSB1c2VkIGluIHRoZSBwcm9kdWN0aW9ucyBpbiB0aGlzCitzcGVjaWZpY2F0aW9uLjwvcD4KKzxwPgorVGhlIGNvbnRlbnQgb2YgYW4gZWxlbWVudCBtYXRjaGVzIGEgY29udGVudCBtb2RlbCBpZiBhbmQgb25seSBpZiBpdCBpcworcG9zc2libGUgdG8gdHJhY2Ugb3V0IGEgcGF0aCB0aHJvdWdoIHRoZSBjb250ZW50IG1vZGVsLCBvYmV5aW5nIHRoZQorc2VxdWVuY2UsIGNob2ljZSwgYW5kIHJlcGV0aXRpb24gb3BlcmF0b3JzIGFuZCBtYXRjaGluZyBlYWNoIGVsZW1lbnQgaW4KK3RoZSBjb250ZW50IGFnYWluc3QgYW4gZWxlbWVudCB0eXBlIGluIHRoZSBjb250ZW50IG1vZGVsLiAgPHRlcm1yZWYKK2RlZj0nZHQtY29tcGF0Jz5Gb3IgY29tcGF0aWJpbGl0eTwvdGVybXJlZj4sIGl0IGlzIGFuIGVycm9yCitpZiBhbiBlbGVtZW50IGluIHRoZSBkb2N1bWVudCBjYW4KK21hdGNoIG1vcmUgdGhhbiBvbmUgb2NjdXJyZW5jZSBvZiBhbiBlbGVtZW50IHR5cGUgaW4gdGhlIGNvbnRlbnQgbW9kZWwuCitGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxzcGVjcmVmIHJlZj0iZGV0ZXJtaW5pc20iLz4uCis8IS0tIGFwcGVuZGl4IDxzcGVjcmVmIHJlZj0iZGV0ZXJtaW5pc20iLz4uIC0tPgorPCEtLSBhcHBlbmRpeCBvbiBkZXRlcm1pbmlzdGljIGNvbnRlbnQgbW9kZWxzLiAtLT4KKzwvcD4KKzx2Y25vdGUgaWQ9J3ZjLVBFaW5Hcm91cCc+Cis8aGVhZD5Qcm9wZXIgR3JvdXAvUEUgTmVzdGluZzwvaGVhZD4KKzxwPlBhcmFtZXRlci1lbnRpdHkgCis8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudCB0ZXh0PC90ZXJtcmVmPiBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZAord2l0aCBwYXJlbnRoZXRpemVkIGdyb3Vwcy4KK1RoYXQgaXMgdG8gc2F5LCBpZiBlaXRoZXIgb2YgdGhlIG9wZW5pbmcgb3IgY2xvc2luZyBwYXJlbnRoZXNlcworaW4gYSA8bnQgZGVmPSdOVC1jaG9pY2UnPmNob2ljZTwvbnQ+LCA8bnQgZGVmPSdOVC1zZXEnPnNlcTwvbnQ+LCBvcgorPG50IGRlZj0nTlQtTWl4ZWQnPk1peGVkPC9udD4gY29uc3RydWN0IAoraXMgY29udGFpbmVkIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciBhIAorPHRlcm1yZWYgZGVmPSdkdC1QRVJlZic+cGFyYW1ldGVyIGVudGl0eTwvdGVybXJlZj4sCitib3RoIG11c3QgYmUgY29udGFpbmVkIGluIHRoZSBzYW1lIHJlcGxhY2VtZW50IHRleHQuPC9wPgorPHA+PHRlcm1yZWYgZGVmPSdkdC1pbnRlcm9wJz5Gb3IgaW50ZXJvcGVyYWJpbGl0eTwvdGVybXJlZj4sIAoraWYgYSBwYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZSBhcHBlYXJzIGluIGEgCis8bnQgZGVmPSdOVC1jaG9pY2UnPmNob2ljZTwvbnQ+LCA8bnQgZGVmPSdOVC1zZXEnPnNlcTwvbnQ+LCBvcgorPG50IGRlZj0nTlQtTWl4ZWQnPk1peGVkPC9udD4gY29uc3RydWN0LCBpdHMgcmVwbGFjZW1lbnQgdGV4dAorc2hvdWxkIG5vdCBiZSBlbXB0eSwgYW5kIAorbmVpdGhlciB0aGUgZmlyc3Qgbm9yIGxhc3Qgbm9uLWJsYW5rCitjaGFyYWN0ZXIgb2YgdGhlIHJlcGxhY2VtZW50IHRleHQgc2hvdWxkIGJlIGEgY29ubmVjdG9yIAorKDxjb2RlPnw8L2NvZGU+IG9yIDxjb2RlPiw8L2NvZGU+KS4KKzwvcD4KKzwvdmNub3RlPgorPHA+RXhhbXBsZXMgb2YgZWxlbWVudC1jb250ZW50IG1vZGVsczoKKzxlZz4mbHQ7IUVMRU1FTlQgc3BlYyAoZnJvbnQsIGJvZHksIGJhY2s/KT4KKyZsdDshRUxFTUVOVCBkaXYxIChoZWFkLCAocCB8IGxpc3QgfCBub3RlKSosIGRpdjIqKT4KKyZsdDshRUxFTUVOVCBkaWN0aW9uYXJ5LWJvZHkgKCVkaXYubWl4OyB8ICVkaWN0Lm1peDspKj48L2VnPjwvcD4KKzwvZGl2Mz4KKworPGRpdjMgaWQ9J3NlYy1taXhlZC1jb250ZW50Jz4KKzxoZWFkPk1peGVkIENvbnRlbnQ8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0nZHQtbWl4ZWQnIHRlcm09J01peGVkIENvbnRlbnQnPkFuIGVsZW1lbnQgCis8dGVybXJlZiBkZWY9J2R0LXN0YWcnPnR5cGU8L3Rlcm1yZWY+IGhhcyAKKzx0ZXJtPm1peGVkIGNvbnRlbnQ8L3Rlcm0+IHdoZW4gZWxlbWVudHMgb2YgdGhhdCB0eXBlIG1heSBjb250YWluCitjaGFyYWN0ZXIgZGF0YSwgb3B0aW9uYWxseSBpbnRlcnNwZXJzZWQgd2l0aAorPHRlcm1yZWYgZGVmPSJkdC1wYXJlbnRjaGlsZCI+Y2hpbGQ8L3Rlcm1yZWY+IGVsZW1lbnRzLjwvdGVybWRlZj4KK0luIHRoaXMgY2FzZSwgdGhlIHR5cGVzIG9mIHRoZSBjaGlsZCBlbGVtZW50cworbWF5IGJlIGNvbnN0cmFpbmVkLCBidXQgbm90IHRoZWlyIG9yZGVyIG9yIHRoZWlyIG51bWJlciBvZiBvY2N1cnJlbmNlczoKKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPk1peGVkLWNvbnRlbnQgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjUuNSIgcGN3ND0iMTYiIHBjdzU9IjExIj4KKzxwcm9kIGlkPSdOVC1NaXhlZCc+PGxocz5NaXhlZDwvbGhzPgorPHJocz4nKCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAKKycjUENEQVRBJworKDxudCBkZWY9J05ULVMnPlM8L250Pj8gCisnfCcgCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/IAorPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+KSogCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/IAorJykqJyA8L3Jocz4KKzxyaHM+fCAnKCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnI1BDREFUQScgPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnKScKKzwvcmhzPjx2YyBkZWY9J3ZjLVBFaW5Hcm91cCcvPgorPHZjIGRlZj0ndmMtTWl4ZWRDaGlsZHJlblVuaXF1ZScvPgorPC9wcm9kPgorCis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cit3aGVyZSB0aGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+cyBnaXZlIHRoZSB0eXBlcyBvZiBlbGVtZW50cwordGhhdCBtYXkgYXBwZWFyIGFzIGNoaWxkcmVuLgorPC9wPgorPHZjbm90ZSBpZD0ndmMtTWl4ZWRDaGlsZHJlblVuaXF1ZSc+Cis8aGVhZD5ObyBEdXBsaWNhdGUgVHlwZXM8L2hlYWQ+Cis8cD5UaGUgc2FtZSBuYW1lIG11c3Qgbm90IGFwcGVhciBtb3JlIHRoYW4gb25jZSBpbiBhIHNpbmdsZSBtaXhlZC1jb250ZW50CitkZWNsYXJhdGlvbi4KKzwvcD48L3Zjbm90ZT4KKzxwPkV4YW1wbGVzIG9mIG1peGVkIGNvbnRlbnQgZGVjbGFyYXRpb25zOgorPGVnPiZsdDshRUxFTUVOVCBwICgjUENEQVRBfGF8dWx8YnxpfGVtKSo+CismbHQ7IUVMRU1FTlQgcCAoI1BDREFUQSB8ICVmb250OyB8ICVwaHJhc2U7IHwgJXNwZWNpYWw7IHwgJWZvcm07KSogPgorJmx0OyFFTEVNRU5UIGIgKCNQQ0RBVEEpPjwvZWc+PC9wPgorPC9kaXYzPgorPC9kaXYyPgorIAorPGRpdjIgaWQ9J2F0dGRlY2xzJz4KKzxoZWFkPkF0dHJpYnV0ZS1MaXN0IERlY2xhcmF0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtcmVmIGRlZj0iZHQtYXR0ciI+QXR0cmlidXRlczwvdGVybXJlZj4gYXJlIHVzZWQgdG8gYXNzb2NpYXRlCituYW1lLXZhbHVlIHBhaXJzIHdpdGggPHRlcm1yZWYgZGVmPSJkdC1lbGVtZW50Ij5lbGVtZW50czwvdGVybXJlZj4uCitBdHRyaWJ1dGUgc3BlY2lmaWNhdGlvbnMgbWF5IGFwcGVhciBvbmx5IHdpdGhpbiA8dGVybXJlZgorZGVmPSJkdC1zdGFnIj5zdGFydC10YWdzPC90ZXJtcmVmPgorYW5kIDx0ZXJtcmVmIGRlZj0iZHQtZWV0YWciPmVtcHR5LWVsZW1lbnQgdGFnczwvdGVybXJlZj47IAordGh1cywgdGhlIHByb2R1Y3Rpb25zIHVzZWQgdG8KK3JlY29nbml6ZSB0aGVtIGFwcGVhciBpbiA8c3BlY3JlZiByZWY9J3NlYy1zdGFydHRhZ3MnLz4uICAKK0F0dHJpYnV0ZS1saXN0CitkZWNsYXJhdGlvbnMgbWF5IGJlIHVzZWQ6Cis8dWxpc3Q+Cis8aXRlbT48cD5UbyBkZWZpbmUgdGhlIHNldCBvZiBhdHRyaWJ1dGVzIHBlcnRhaW5pbmcgdG8gYSBnaXZlbgorZWxlbWVudCB0eXBlLjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UbyBlc3RhYmxpc2ggdHlwZSBjb25zdHJhaW50cyBmb3IgdGhlc2UKK2F0dHJpYnV0ZXMuPC9wPjwvaXRlbT4KKzxpdGVtPjxwPlRvIHByb3ZpZGUgPHRlcm1yZWYgZGVmPSJkdC1kZWZhdWx0Ij5kZWZhdWx0IHZhbHVlczwvdGVybXJlZj4KK2ZvciBhdHRyaWJ1dGVzLjwvcD48L2l0ZW0+Cis8L3VsaXN0PgorPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWF0dGRlY2wiIHRlcm09IkF0dHJpYnV0ZS1MaXN0IERlY2xhcmF0aW9uIj4KKzx0ZXJtPkF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uczwvdGVybT4gc3BlY2lmeSB0aGUgbmFtZSwgZGF0YSB0eXBlLCBhbmQgZGVmYXVsdAordmFsdWUgKGlmIGFueSkgb2YgZWFjaCBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gZWxlbWVudCB0eXBlOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+QXR0cmlidXRlLWxpc3QgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZCBpZD0nTlQtQXR0bGlzdERlY2wnPjxsaHM+QXR0bGlzdERlY2w8L2xocz4KKzxyaHM+JyZsdDshQVRUTElTVCcgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IAorPG50IGRlZj0nTlQtQXR0RGVmJz5BdHREZWY8L250PioKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gJyZndDsnPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtQXR0RGVmJz48bGhzPkF0dERlZjwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1TJz5TPC9udD4gPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+IDxudCBkZWY9J05ULUF0dFR5cGUnPkF0dFR5cGU8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1EZWZhdWx0RGVjbCc+RGVmYXVsdERlY2w8L250PjwvcmhzPgorPC9wcm9kPgorPC9zY3JhcD4KK1RoZSA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gaW4gdGhlCis8bnQgZGVmPSdOVC1BdHRsaXN0RGVjbCc+QXR0bGlzdERlY2w8L250PiBydWxlIGlzIHRoZSB0eXBlIG9mIGFuIGVsZW1lbnQuICBBdAordXNlciBvcHRpb24sIGFuIFhNTCBwcm9jZXNzb3IgbWF5IGlzc3VlIGEgd2FybmluZyBpZiBhdHRyaWJ1dGVzIGFyZQorZGVjbGFyZWQgZm9yIGFuIGVsZW1lbnQgdHlwZSBub3QgaXRzZWxmIGRlY2xhcmVkLCBidXQgdGhpcyBpcyBub3QgYW4KK2Vycm9yLiAgVGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBpbiB0aGUgCis8bnQgZGVmPSdOVC1BdHREZWYnPkF0dERlZjwvbnQ+IHJ1bGUgaXMKK3RoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUuPC90ZXJtZGVmPjwvcD4KKzxwPgorV2hlbiBtb3JlIHRoYW4gb25lIDxudCBkZWY9J05ULUF0dGxpc3REZWNsJz5BdHRsaXN0RGVjbDwvbnQ+IGlzIHByb3ZpZGVkIGZvciBhCitnaXZlbiBlbGVtZW50IHR5cGUsIHRoZSBjb250ZW50cyBvZiBhbGwgdGhvc2UgcHJvdmlkZWQgYXJlIG1lcmdlZC4gIFdoZW4KK21vcmUgdGhhbiBvbmUgZGVmaW5pdGlvbiBpcyBwcm92aWRlZCBmb3IgdGhlIHNhbWUgYXR0cmlidXRlIG9mIGEKK2dpdmVuIGVsZW1lbnQgdHlwZSwgdGhlIGZpcnN0IGRlY2xhcmF0aW9uIGlzIGJpbmRpbmcgYW5kIGxhdGVyCitkZWNsYXJhdGlvbnMgYXJlIGlnbm9yZWQuICAKKzx0ZXJtcmVmIGRlZj0nZHQtaW50ZXJvcCc+Rm9yIGludGVyb3BlcmFiaWxpdHksPC90ZXJtcmVmPiB3cml0ZXJzIG9mIERURHMKK21heSBjaG9vc2UgdG8gcHJvdmlkZSBhdCBtb3N0IG9uZSBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbgorZm9yIGEgZ2l2ZW4gZWxlbWVudCB0eXBlLCBhdCBtb3N0IG9uZSBhdHRyaWJ1dGUgZGVmaW5pdGlvbgorZm9yIGEgZ2l2ZW4gYXR0cmlidXRlIG5hbWUsIGFuZCBhdCBsZWFzdCBvbmUgYXR0cmlidXRlIGRlZmluaXRpb24KK2luIGVhY2ggYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24uCitGb3IgaW50ZXJvcGVyYWJpbGl0eSwgYW4gWE1MIHByb2Nlc3NvciBtYXkgYXQgdXNlciBvcHRpb24KK2lzc3VlIGEgd2FybmluZyB3aGVuIG1vcmUgdGhhbiBvbmUgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb24gaXMKK3Byb3ZpZGVkIGZvciBhIGdpdmVuIGVsZW1lbnQgdHlwZSwgb3IgbW9yZSB0aGFuIG9uZSBhdHRyaWJ1dGUgZGVmaW5pdGlvbgoraXMgcHJvdmlkZWQgCitmb3IgYSBnaXZlbiBhdHRyaWJ1dGUsIGJ1dCB0aGlzIGlzIG5vdCBhbiBlcnJvci4KKzwvcD4KKworPGRpdjMgaWQ9J3NlYy1hdHRyaWJ1dGUtdHlwZXMnPgorPGhlYWQ+QXR0cmlidXRlIFR5cGVzPC9oZWFkPgorIAorPHA+WE1MIGF0dHJpYnV0ZSB0eXBlcyBhcmUgb2YgdGhyZWUga2luZHM6ICBhIHN0cmluZyB0eXBlLCBhCitzZXQgb2YgdG9rZW5pemVkIHR5cGVzLCBhbmQgZW51bWVyYXRlZCB0eXBlcy4gIFRoZSBzdHJpbmcgdHlwZSBtYXkgdGFrZQorYW55IGxpdGVyYWwgc3RyaW5nIGFzIGEgdmFsdWU7IHRoZSB0b2tlbml6ZWQgdHlwZXMgaGF2ZSB2YXJ5aW5nIGxleGljYWwKK2FuZCBzZW1hbnRpYyBjb25zdHJhaW50cywgYXMgbm90ZWQ6Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5BdHRyaWJ1dGUgVHlwZXM8L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzQ9IjE0IiBwY3c1PSIxMS41Ij4KKzxwcm9kIGlkPSdOVC1BdHRUeXBlJz48bGhzPkF0dFR5cGU8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtU3RyaW5nVHlwZSc+U3RyaW5nVHlwZTwvbnQ+IAorfCA8bnQgZGVmPSdOVC1Ub2tlbml6ZWRUeXBlJz5Ub2tlbml6ZWRUeXBlPC9udD4gCit8IDxudCBkZWY9J05ULUVudW1lcmF0ZWRUeXBlJz5FbnVtZXJhdGVkVHlwZTwvbnQ+Cis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1TdHJpbmdUeXBlJz48bGhzPlN0cmluZ1R5cGU8L2xocz4KKzxyaHM+J0NEQVRBJzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULVRva2VuaXplZFR5cGUnPjxsaHM+VG9rZW5pemVkVHlwZTwvbGhzPgorPHJocz4nSUQnPC9yaHM+Cis8dmMgZGVmPSdpZCcvPgorPHZjIGRlZj0nb25lLWlkLXBlci1lbCcvPgorPHZjIGRlZj0naWQtZGVmYXVsdCcvPgorPHJocz58ICdJRFJFRic8L3Jocz4KKzx2YyBkZWY9J2lkcmVmJy8+Cis8cmhzPnwgJ0lEUkVGUyc8L3Jocz4KKzx2YyBkZWY9J2lkcmVmJy8+Cis8cmhzPnwgJ0VOVElUWSc8L3Jocz4KKzx2YyBkZWY9J2VudG5hbWUnLz4KKzxyaHM+fCAnRU5USVRJRVMnPC9yaHM+Cis8dmMgZGVmPSdlbnRuYW1lJy8+Cis8cmhzPnwgJ05NVE9LRU4nPC9yaHM+Cis8dmMgZGVmPSdubXRvaycvPgorPHJocz58ICdOTVRPS0VOUyc8L3Jocz4KKzx2YyBkZWY9J25tdG9rJy8+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC9wPgorPHZjbm90ZSBpZD0naWQnID4KKzxoZWFkPklEPC9oZWFkPgorPHA+CitWYWx1ZXMgb2YgdHlwZSA8a3c+SUQ8L2t3PiBtdXN0IG1hdGNoIHRoZSAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBwcm9kdWN0aW9uLiAgCitBIG5hbWUgbXVzdCBub3QgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluCithbiBYTUwgZG9jdW1lbnQgYXMgYSB2YWx1ZSBvZiB0aGlzIHR5cGU7IGkuZS4sIElEIHZhbHVlcyBtdXN0IHVuaXF1ZWx5CitpZGVudGlmeSB0aGUgZWxlbWVudHMgd2hpY2ggYmVhciB0aGVtLiAgIAorPC9wPgorPC92Y25vdGU+Cis8dmNub3RlIGlkPSdvbmUtaWQtcGVyLWVsJz4KKzxoZWFkPk9uZSBJRCBwZXIgRWxlbWVudCBUeXBlPC9oZWFkPgorPHA+Tm8gZWxlbWVudCB0eXBlIG1heSBoYXZlIG1vcmUgdGhhbiBvbmUgSUQgYXR0cmlidXRlIHNwZWNpZmllZC48L3A+Cis8L3Zjbm90ZT4KKzx2Y25vdGUgaWQ9J2lkLWRlZmF1bHQnPgorPGhlYWQ+SUQgQXR0cmlidXRlIERlZmF1bHQ8L2hlYWQ+Cis8cD5BbiBJRCBhdHRyaWJ1dGUgbXVzdCBoYXZlIGEgZGVjbGFyZWQgZGVmYXVsdCBvZiA8a3c+I0lNUExJRUQ8L2t3PiBvcgorPGt3PiNSRVFVSVJFRDwva3c+LjwvcD4KKzwvdmNub3RlPgorPHZjbm90ZSBpZD0naWRyZWYnPgorPGhlYWQ+SURSRUY8L2hlYWQ+Cis8cD4KK1ZhbHVlcyBvZiB0eXBlIDxrdz5JRFJFRjwva3c+IG11c3QgbWF0Y2gKK3RoZSA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gcHJvZHVjdGlvbiwgYW5kCit2YWx1ZXMgb2YgdHlwZSA8a3c+SURSRUZTPC9rdz4gbXVzdCBtYXRjaAorPG50IGRlZj0iTlQtTmFtZXMiPk5hbWVzPC9udD47IAorZWFjaCA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gbXVzdCBtYXRjaCB0aGUgdmFsdWUgb2YgYW4gSUQgYXR0cmlidXRlIG9uIAorc29tZSBlbGVtZW50IGluIHRoZSBYTUwgZG9jdW1lbnQ7IGkuZS4gPGt3PklEUkVGPC9rdz4gdmFsdWVzIG11c3QgCittYXRjaCB0aGUgdmFsdWUgb2Ygc29tZSBJRCBhdHRyaWJ1dGUuIAorPC9wPgorPC92Y25vdGU+Cis8dmNub3RlIGlkPSdlbnRuYW1lJz4KKzxoZWFkPkVudGl0eSBOYW1lPC9oZWFkPgorPHA+CitWYWx1ZXMgb2YgdHlwZSA8a3c+RU5USVRZPC9rdz4gCittdXN0IG1hdGNoIHRoZSA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gcHJvZHVjdGlvbiwKK3ZhbHVlcyBvZiB0eXBlIDxrdz5FTlRJVElFUzwva3c+IG11c3QgbWF0Y2gKKzxudCBkZWY9Ik5ULU5hbWVzIj5OYW1lczwvbnQ+OworZWFjaCA8bnQgZGVmPSJOVC1OYW1lIj5OYW1lPC9udD4gbXVzdCAKK21hdGNoIHRoZQorbmFtZSBvZiBhbiA8dGVybXJlZiBkZWY9ImR0LXVucGFyc2VkIj51bnBhcnNlZCBlbnRpdHk8L3Rlcm1yZWY+IGRlY2xhcmVkIGluIHRoZQorPHRlcm1yZWYgZGVmPSJkdC1kb2N0eXBlIj5EVEQ8L3Rlcm1yZWY+LgorPC9wPgorPC92Y25vdGU+Cis8dmNub3RlIGlkPSdubXRvayc+Cis8aGVhZD5OYW1lIFRva2VuPC9oZWFkPgorPHA+CitWYWx1ZXMgb2YgdHlwZSA8a3c+Tk1UT0tFTjwva3c+IG11c3QgbWF0Y2ggdGhlCis8bnQgZGVmPSJOVC1ObXRva2VuIj5ObXRva2VuPC9udD4gcHJvZHVjdGlvbjsKK3ZhbHVlcyBvZiB0eXBlIDxrdz5OTVRPS0VOUzwva3c+IG11c3QgCittYXRjaCA8dGVybXJlZiBkZWY9Ik5ULU5tdG9rZW5zIj5ObXRva2VuczwvdGVybXJlZj4uCis8L3A+Cis8L3Zjbm90ZT4KKzwhLS0gd2h5PworPHA+VGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBub3JtYWxpemUgYXR0cmlidXRlIHZhbHVlcyBiZWZvcmUKK3Bhc3NpbmcgdGhlbSB0byB0aGUgYXBwbGljYXRpb24sIGFzIGRlc2NyaWJlZCBpbiAKKzxzcGVjcmVmIHJlZj0iQVZOb3JtYWxpemUiLz4uPC9wPi0tPgorPHA+PHRlcm1kZWYgaWQ9J2R0LWVudW1lcmF0ZWQnIHRlcm09J0VudW1lcmF0ZWQgQXR0cmlidXRlCitWYWx1ZXMnPjx0ZXJtPkVudW1lcmF0ZWQgYXR0cmlidXRlczwvdGVybT4gY2FuIHRha2Ugb25lIAorb2YgYSBsaXN0IG9mIHZhbHVlcyBwcm92aWRlZCBpbiB0aGUgZGVjbGFyYXRpb248L3Rlcm1kZWY+LiBUaGVyZSBhcmUgdHdvCitraW5kcyBvZiBlbnVtZXJhdGVkIHR5cGVzOgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+RW51bWVyYXRlZCBBdHRyaWJ1dGUgVHlwZXM8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtRW51bWVyYXRlZFR5cGUnPjxsaHM+RW51bWVyYXRlZFR5cGU8L2xocz4gCis8cmhzPjxudCBkZWY9J05ULU5vdGF0aW9uVHlwZSc+Tm90YXRpb25UeXBlPC9udD4gCit8IDxudCBkZWY9J05ULUVudW1lcmF0aW9uJz5FbnVtZXJhdGlvbjwvbnQ+Cis8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtTm90YXRpb25UeXBlJz48bGhzPk5vdGF0aW9uVHlwZTwvbGhzPiAKKzxyaHM+J05PVEFUSU9OJyAKKzxudCBkZWY9J05ULVMnPlM8L250PiAKKycoJyAKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gIAorPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IAorKDxudCBkZWY9J05ULVMnPlM8L250Pj8gJ3wnIDxudCBkZWY9J05ULVMnPlM8L250Pj8gIAorPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+KSoKKzxudCBkZWY9J05ULVMnPlM8L250Pj8gJyknCis8L3Jocz4KKzx2YyBkZWY9J25vdGF0bicgLz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtRW51bWVyYXRpb24nPjxsaHM+RW51bWVyYXRpb248L2xocz4gCis8cmhzPicoJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4/Cis8bnQgZGVmPSdOVC1ObXRva2VuJz5ObXRva2VuPC9udD4gCisoPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnfCcgCis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICAKKzxudCBkZWY9J05ULU5tdG9rZW4nPk5tdG9rZW48L250PikqIAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAKKycpJzwvcmhzPiAKKzx2YyBkZWY9J2VudW0nLz48L3Byb2Q+Cis8L3NjcmFwPgorQSA8a3c+Tk9UQVRJT048L2t3PiBhdHRyaWJ1dGUgaWRlbnRpZmllcyBhIAorPHRlcm1yZWYgZGVmPSdkdC1ub3RhdGlvbic+bm90YXRpb248L3Rlcm1yZWY+LCBkZWNsYXJlZCBpbiB0aGUgCitEVEQgd2l0aCBhc3NvY2lhdGVkIHN5c3RlbSBhbmQvb3IgcHVibGljIGlkZW50aWZpZXJzLCB0bworYmUgdXNlZCBpbiBpbnRlcnByZXRpbmcgdGhlIGVsZW1lbnQgdG8gd2hpY2ggdGhlIGF0dHJpYnV0ZQoraXMgYXR0YWNoZWQuCis8L3A+CisKKzx2Y25vdGUgaWQ9J25vdGF0bic+Cis8aGVhZD5Ob3RhdGlvbiBBdHRyaWJ1dGVzPC9oZWFkPgorPHA+CitWYWx1ZXMgb2YgdGhpcyB0eXBlIG11c3QgbWF0Y2gKK29uZSBvZiB0aGUgPHRpdGxlcmVmIGhyZWY9J05vdGF0aW9ucyc+bm90YXRpb248L3RpdGxlcmVmPiBuYW1lcyBpbmNsdWRlZCBpbgordGhlIGRlY2xhcmF0aW9uOyBhbGwgbm90YXRpb24gbmFtZXMgaW4gdGhlIGRlY2xhcmF0aW9uIG11c3QKK2JlIGRlY2xhcmVkLgorPC9wPgorPC92Y25vdGU+Cis8dmNub3RlIGlkPSdlbnVtJz4KKzxoZWFkPkVudW1lcmF0aW9uPC9oZWFkPgorPHA+CitWYWx1ZXMgb2YgdGhpcyB0eXBlCittdXN0IG1hdGNoIG9uZSBvZiB0aGUgPG50IGRlZj0nTlQtTm10b2tlbic+Tm10b2tlbjwvbnQ+IHRva2VucyBpbiB0aGUKK2RlY2xhcmF0aW9uLiAKKzwvcD4KKzwvdmNub3RlPgorPHA+PHRlcm1yZWYgZGVmPSdkdC1pbnRlcm9wJz5Gb3IgaW50ZXJvcGVyYWJpbGl0eSw8L3Rlcm1yZWY+IHRoZSBzYW1lCis8bnQgZGVmPSdOVC1ObXRva2VuJz5ObXRva2VuPC9udD4gc2hvdWxkIG5vdCBvY2N1ciBtb3JlIHRoYW4gb25jZSBpbiB0aGUKK2VudW1lcmF0ZWQgYXR0cmlidXRlIHR5cGVzIG9mIGEgc2luZ2xlIGVsZW1lbnQgdHlwZS4KKzwvcD4KKzwvZGl2Mz4KKworPGRpdjMgaWQ9J3NlYy1hdHRyLWRlZmF1bHRzJz4KKzxoZWFkPkF0dHJpYnV0ZSBEZWZhdWx0czwvaGVhZD4KKyAKKzxwPkFuIDx0ZXJtcmVmIGRlZj0iZHQtYXR0ZGVjbCI+YXR0cmlidXRlIGRlY2xhcmF0aW9uPC90ZXJtcmVmPiBwcm92aWRlcworaW5mb3JtYXRpb24gb24gd2hldGhlcgordGhlIGF0dHJpYnV0ZSdzIHByZXNlbmNlIGlzIHJlcXVpcmVkLCBhbmQgaWYgbm90LCBob3cgYW4gWE1MIHByb2Nlc3NvciBzaG91bGQKK3JlYWN0IGlmIGEgZGVjbGFyZWQgYXR0cmlidXRlIGlzIGFic2VudCBpbiBhIGRvY3VtZW50LgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+QXR0cmlidXRlIERlZmF1bHRzPC9oZWFkPgorPHByb2Rncm91cCBwY3c0PSIxNCIgcGN3NT0iMTEuNSI+Cis8cHJvZCBpZD0nTlQtRGVmYXVsdERlY2wnPjxsaHM+RGVmYXVsdERlY2w8L2xocz4KKzxyaHM+JyNSRVFVSVJFRCcgCit8Jm5ic3A7JyNJTVBMSUVEJyA8L3Jocz4KKzxyaHM+fCAoKCcjRklYRUQnIFMpPyA8bnQgZGVmPSdOVC1BdHRWYWx1ZSc+QXR0VmFsdWU8L250Pik8L3Jocz4KKzx2YyBkZWY9J1JlcXVpcmVkQXR0cicvPgorPHZjIGRlZj0nZGVmYXR0cnZhbGlkJy8+Cis8d2ZjIGRlZj0iQ2xlYW5BdHRyVmFscyIvPgorPHZjIGRlZj0nRml4ZWRBdHRyJy8+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+CisKKzwvcD4KKzxwPkluIGFuIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiwgPGt3PiNSRVFVSVJFRDwva3c+IG1lYW5zIHRoYXQgdGhlCithdHRyaWJ1dGUgbXVzdCBhbHdheXMgYmUgcHJvdmlkZWQsIDxrdz4jSU1QTElFRDwva3c+IHRoYXQgbm8gZGVmYXVsdCAKK3ZhbHVlIGlzIHByb3ZpZGVkLgorPCEtLSBub3QgYW55IG1vcmUhIQorPGt3PiNJTVBMSUVEPC9rdz4gbWVhbnMgdGhhdCBpZiB0aGUgYXR0cmlidXRlIGlzIG9taXR0ZWQKK2Zyb20gYW4gZWxlbWVudCBvZiB0aGlzIHR5cGUsCit0aGUgWE1MIHByb2Nlc3NvciBtdXN0IGluZm9ybSB0aGUgYXBwbGljYXRpb24KK3RoYXQgbm8gdmFsdWUgd2FzIHNwZWNpZmllZDsgbm8gY29uc3RyYWludCBpcyBwbGFjZWQgb24gdGhlIGJlaGF2aW9yCitvZiB0aGUgYXBwbGljYXRpb24uIC0tPgorPHRlcm1kZWYgaWQ9ImR0LWRlZmF1bHQiIHRlcm09IkF0dHJpYnV0ZSBEZWZhdWx0Ij5JZiB0aGUgCitkZWNsYXJhdGlvbgoraXMgbmVpdGhlciA8a3c+I1JFUVVJUkVEPC9rdz4gbm9yIDxrdz4jSU1QTElFRDwva3c+LCB0aGVuIHRoZQorPG50IGRlZj0nTlQtQXR0VmFsdWUnPkF0dFZhbHVlPC9udD4gdmFsdWUgY29udGFpbnMgdGhlIGRlY2xhcmVkCis8dGVybT5kZWZhdWx0PC90ZXJtPiB2YWx1ZTsgdGhlIDxrdz4jRklYRUQ8L2t3PiBrZXl3b3JkIHN0YXRlcyB0aGF0Cit0aGUgYXR0cmlidXRlIG11c3QgYWx3YXlzIGhhdmUgdGhlIGRlZmF1bHQgdmFsdWUuCitJZiBhIGRlZmF1bHQgdmFsdWUKK2lzIGRlY2xhcmVkLCB3aGVuIGFuIFhNTCBwcm9jZXNzb3IgZW5jb3VudGVycyBhbiBvbWl0dGVkIGF0dHJpYnV0ZSwgaXQKK2lzIHRvIGJlaGF2ZSBhcyB0aG91Z2ggdGhlIGF0dHJpYnV0ZSB3ZXJlIHByZXNlbnQgd2l0aCAKK3RoZSBkZWNsYXJlZCBkZWZhdWx0IHZhbHVlLjwvdGVybWRlZj48L3A+Cis8dmNub3RlIGlkPSdSZXF1aXJlZEF0dHInPgorPGhlYWQ+UmVxdWlyZWQgQXR0cmlidXRlPC9oZWFkPgorPHA+SWYgdGhlIGRlZmF1bHQgZGVjbGFyYXRpb24gaXMgdGhlIGtleXdvcmQgPGt3PiNSRVFVSVJFRDwva3c+LCB0aGVuCit0aGUgYXR0cmlidXRlIG11c3QgYmUgc3BlY2lmaWVkIGZvcgorYWxsIGVsZW1lbnRzIG9mIHRoZSB0eXBlIGluIHRoZSBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbi4KKzwvcD48L3Zjbm90ZT4KKzx2Y25vdGUgaWQ9J2RlZmF0dHJ2YWxpZCc+Cis8aGVhZD5BdHRyaWJ1dGUgRGVmYXVsdCBMZWdhbDwvaGVhZD4KKzxwPgorVGhlIGRlY2xhcmVkCitkZWZhdWx0IHZhbHVlIG11c3QgbWVldCB0aGUgbGV4aWNhbCBjb25zdHJhaW50cyBvZiB0aGUgZGVjbGFyZWQgYXR0cmlidXRlIHR5cGUuCis8L3A+Cis8L3Zjbm90ZT4KKzx2Y25vdGUgaWQ9J0ZpeGVkQXR0cic+Cis8aGVhZD5GaXhlZCBBdHRyaWJ1dGUgRGVmYXVsdDwvaGVhZD4KKzxwPklmIGFuIGF0dHJpYnV0ZSBoYXMgYSBkZWZhdWx0IHZhbHVlIGRlY2xhcmVkIHdpdGggdGhlIAorPGt3PiNGSVhFRDwva3c+IGtleXdvcmQsIGluc3RhbmNlcyBvZiB0aGF0IGF0dHJpYnV0ZSBtdXN0CittYXRjaCB0aGUgZGVmYXVsdCB2YWx1ZS4KKzwvcD48L3Zjbm90ZT4KKworPHA+RXhhbXBsZXMgb2YgYXR0cmlidXRlLWxpc3QgZGVjbGFyYXRpb25zOgorPGVnPiZsdDshQVRUTElTVCB0ZXJtZGVmCisgICAgICAgICAgaWQgICAgICBJRCAgICAgICNSRVFVSVJFRAorICAgICAgICAgIG5hbWUgICAgQ0RBVEEgICAjSU1QTElFRD4KKyZsdDshQVRUTElTVCBsaXN0CisgICAgICAgICAgdHlwZSAgICAoYnVsbGV0c3xvcmRlcmVkfGdsb3NzYXJ5KSAgIm9yZGVyZWQiPgorJmx0OyFBVFRMSVNUIGZvcm0KKyAgICAgICAgICBtZXRob2QgIENEQVRBICAgI0ZJWEVEICJQT1NUIj48L2VnPjwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSdBVk5vcm1hbGl6ZSc+Cis8aGVhZD5BdHRyaWJ1dGUtVmFsdWUgTm9ybWFsaXphdGlvbjwvaGVhZD4KKzxwPkJlZm9yZSB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIGlzIHBhc3NlZCB0byB0aGUgYXBwbGljYXRpb24KK29yIGNoZWNrZWQgZm9yIHZhbGlkaXR5LCB0aGUKK1hNTCBwcm9jZXNzb3IgbXVzdCBub3JtYWxpemUgaXQgYXMgZm9sbG93czoKKzx1bGlzdD4KKzxpdGVtPjxwPmEgY2hhcmFjdGVyIHJlZmVyZW5jZSBpcyBwcm9jZXNzZWQgYnkgYXBwZW5kaW5nIHRoZSByZWZlcmVuY2VkICAgIAorY2hhcmFjdGVyIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWU8L3A+PC9pdGVtPgorPGl0ZW0+PHA+YW4gZW50aXR5IHJlZmVyZW5jZSBpcyBwcm9jZXNzZWQgYnkgcmVjdXJzaXZlbHkgcHJvY2Vzc2luZyB0aGUKK3JlcGxhY2VtZW50IHRleHQgb2YgdGhlIGVudGl0eTwvcD48L2l0ZW0+Cis8aXRlbT48cD5hIHdoaXRlc3BhY2UgY2hhcmFjdGVyICgjeDIwLCAjeEQsICN4QSwgI3g5KSBpcyBwcm9jZXNzZWQgYnkKK2FwcGVuZGluZyAjeDIwIHRvIHRoZSBub3JtYWxpemVkIHZhbHVlLCBleGNlcHQgdGhhdCBvbmx5IGEgc2luZ2xlICN4MjAKK2lzIGFwcGVuZGVkIGZvciBhICIjeEQjeEEiIHNlcXVlbmNlIHRoYXQgaXMgcGFydCBvZiBhbiBleHRlcm5hbAorcGFyc2VkIGVudGl0eSBvciB0aGUgbGl0ZXJhbCBlbnRpdHkgdmFsdWUgb2YgYW4gaW50ZXJuYWwgcGFyc2VkCitlbnRpdHk8L3A+PC9pdGVtPgorPGl0ZW0+PHA+b3RoZXIgY2hhcmFjdGVycyBhcmUgcHJvY2Vzc2VkIGJ5IGFwcGVuZGluZyB0aGVtIHRvIHRoZSBub3JtYWxpemVkCit2YWx1ZTwvcD4KKzwvaXRlbT48L3VsaXN0PgorPC9wPgorPHA+SWYgdGhlIGRlY2xhcmVkIHZhbHVlIGlzIG5vdCBDREFUQSwgdGhlbiB0aGUgWE1MIHByb2Nlc3NvciBtdXN0CitmdXJ0aGVyIHByb2Nlc3MgdGhlIG5vcm1hbGl6ZWQgYXR0cmlidXRlIHZhbHVlIGJ5IGRpc2NhcmRpbmcgYW55CitsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZSAoI3gyMCkgY2hhcmFjdGVycywgYW5kIGJ5IHJlcGxhY2luZworc2VxdWVuY2VzIG9mIHNwYWNlICgjeDIwKSBjaGFyYWN0ZXJzIGJ5IGEgc2luZ2xlIHNwYWNlICgjeDIwKQorY2hhcmFjdGVyLjwvcD4KKzxwPgorQWxsIGF0dHJpYnV0ZXMgZm9yIHdoaWNoIG5vIGRlY2xhcmF0aW9uIGhhcyBiZWVuIHJlYWQgc2hvdWxkIGJlIHRyZWF0ZWQKK2J5IGEgbm9uLXZhbGlkYXRpbmcgcGFyc2VyIGFzIGlmIGRlY2xhcmVkCis8a3c+Q0RBVEE8L2t3Pi4KKzwvcD4KKzwvZGl2Mz4KKzwvZGl2Mj4KKzxkaXYyIGlkPSdzZWMtY29uZGl0aW9uLXNlY3QnPgorPGhlYWQ+Q29uZGl0aW9uYWwgU2VjdGlvbnM8L2hlYWQ+Cis8cD48dGVybWRlZiBpZD0nZHQtY29uZC1zZWN0aW9uJyB0ZXJtPSdjb25kaXRpb25hbCBzZWN0aW9uJz4KKzx0ZXJtPkNvbmRpdGlvbmFsIHNlY3Rpb25zPC90ZXJtPiBhcmUgcG9ydGlvbnMgb2YgdGhlCis8dGVybXJlZiBkZWY9J2R0LWRvY3R5cGUnPmRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24gZXh0ZXJuYWwgc3Vic2V0PC90ZXJtcmVmPgord2hpY2ggYXJlIAoraW5jbHVkZWQgaW4sIG9yIGV4Y2x1ZGVkIGZyb20sIHRoZSBsb2dpY2FsIHN0cnVjdHVyZSBvZiB0aGUgRFREIGJhc2VkIG9uCit0aGUga2V5d29yZCB3aGljaCBnb3Zlcm5zIHRoZW0uPC90ZXJtZGVmPgorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+Q29uZGl0aW9uYWwgU2VjdGlvbjwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3Mj0iOSIgcGN3ND0iMTQuNSI+Cis8cHJvZCBpZD0nTlQtY29uZGl0aW9uYWxTZWN0Jz48bGhzPmNvbmRpdGlvbmFsU2VjdDwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1pbmNsdWRlU2VjdCc+aW5jbHVkZVNlY3Q8L250PgorfCA8bnQgZGVmPSdOVC1pZ25vcmVTZWN0Jz5pZ25vcmVTZWN0PC9udD4KKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULWluY2x1ZGVTZWN0Jz48bGhzPmluY2x1ZGVTZWN0PC9saHM+Cis8cmhzPicmbHQ7IVsnIFM/ICdJTkNMVURFJyBTPyAnWycgCisKKzxudCBkZWY9Ik5ULWV4dFN1YnNldERlY2wiPmV4dFN1YnNldERlY2w8L250PgorJ11dJmd0OycKKzwvcmhzPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULWlnbm9yZVNlY3QnPjxsaHM+aWdub3JlU2VjdDwvbGhzPgorPHJocz4nJmx0OyFbJyBTPyAnSUdOT1JFJyBTPyAnWycgCis8bnQgZGVmPSJOVC1pZ25vcmVTZWN0Q29udGVudHMiPmlnbm9yZVNlY3RDb250ZW50czwvbnQ+KgorJ11dJmd0Oyc8L3Jocz4KKzwvcHJvZD4KKworPHByb2QgaWQ9J05ULWlnbm9yZVNlY3RDb250ZW50cyc+PGxocz5pZ25vcmVTZWN0Q29udGVudHM8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtSWdub3JlJz5JZ25vcmU8L250PgorKCcmbHQ7IVsnIDxudCBkZWY9J05ULWlnbm9yZVNlY3RDb250ZW50cyc+aWdub3JlU2VjdENvbnRlbnRzPC9udD4gJ11dJmd0OycgCis8bnQgZGVmPSdOVC1JZ25vcmUnPklnbm9yZTwvbnQ+KSo8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtSWdub3JlJz48bGhzPklnbm9yZTwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qIC0gCisoPG50IGRlZj0nTlQtQ2hhcic+Q2hhcjwvbnQ+KiAoJyZsdDshWycgfCAnXV0mZ3Q7JykgCis8bnQgZGVmPSdOVC1DaGFyJz5DaGFyPC9udD4qKQorPC9yaHM+PC9wcm9kPgorCis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cis8L3A+Cis8cD5MaWtlIHRoZSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgRFREIHN1YnNldHMsIGEgY29uZGl0aW9uYWwgc2VjdGlvbgorbWF5IGNvbnRhaW4gb25lIG9yIG1vcmUgY29tcGxldGUgZGVjbGFyYXRpb25zLAorY29tbWVudHMsIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLCAKK29yIG5lc3RlZCBjb25kaXRpb25hbCBzZWN0aW9ucywgaW50ZXJtaW5nbGVkIHdpdGggd2hpdGUgc3BhY2UuCis8L3A+Cis8cD5JZiB0aGUga2V5d29yZCBvZiB0aGUKK2NvbmRpdGlvbmFsIHNlY3Rpb24gaXMgPGt3PklOQ0xVREU8L2t3PiwgdGhlbiB0aGUgY29udGVudHMgb2YgdGhlIGNvbmRpdGlvbmFsCitzZWN0aW9uIGFyZSBwYXJ0IG9mIHRoZSBEVEQuCitJZiB0aGUga2V5d29yZCBvZiB0aGUgY29uZGl0aW9uYWwKK3NlY3Rpb24gaXMgPGt3PklHTk9SRTwva3c+LCB0aGVuIHRoZSBjb250ZW50cyBvZiB0aGUgY29uZGl0aW9uYWwgc2VjdGlvbiBhcmUKK25vdCBsb2dpY2FsbHkgcGFydCBvZiB0aGUgRFRELgorTm90ZSB0aGF0IGZvciByZWxpYWJsZSBwYXJzaW5nLCB0aGUgY29udGVudHMgb2YgZXZlbiBpZ25vcmVkCitjb25kaXRpb25hbCBzZWN0aW9ucyBtdXN0IGJlIHJlYWQgaW4gb3JkZXIgdG8KK2RldGVjdCBuZXN0ZWQgY29uZGl0aW9uYWwgc2VjdGlvbnMgYW5kIGVuc3VyZSB0aGF0IHRoZSBlbmQgb2YgdGhlCitvdXRlcm1vc3QgKGlnbm9yZWQpIGNvbmRpdGlvbmFsIHNlY3Rpb24gaXMgcHJvcGVybHkgZGV0ZWN0ZWQuCitJZiBhIGNvbmRpdGlvbmFsIHNlY3Rpb24gd2l0aCBhCitrZXl3b3JkIG9mIDxrdz5JTkNMVURFPC9rdz4gb2NjdXJzIHdpdGhpbiBhIGxhcmdlciBjb25kaXRpb25hbAorc2VjdGlvbiB3aXRoIGEga2V5d29yZCBvZiA8a3c+SUdOT1JFPC9rdz4sIGJvdGggdGhlIG91dGVyIGFuZCB0aGUKK2lubmVyIGNvbmRpdGlvbmFsIHNlY3Rpb25zIGFyZSBpZ25vcmVkLjwvcD4KKzxwPklmIHRoZSBrZXl3b3JkIG9mIHRoZSBjb25kaXRpb25hbCBzZWN0aW9uIGlzIGEgCitwYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZSwgdGhlIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBiZSByZXBsYWNlZCBieSBpdHMKK2NvbnRlbnQgYmVmb3JlIHRoZSBwcm9jZXNzb3IgZGVjaWRlcyB3aGV0aGVyIHRvCitpbmNsdWRlIG9yIGlnbm9yZSB0aGUgY29uZGl0aW9uYWwgc2VjdGlvbi48L3A+Cis8cD5BbiBleGFtcGxlOgorPGVnPiZsdDshRU5USVRZICUgZHJhZnQgJ0lOQ0xVREUnID4KKyZsdDshRU5USVRZICUgZmluYWwgJ0lHTk9SRScgPgorIAorJmx0OyFbJWRyYWZ0O1sKKyZsdDshRUxFTUVOVCBib29rIChjb21tZW50cyosIHRpdGxlLCBib2R5LCBzdXBwbGVtZW50cz8pPgorXV0mZ3Q7CismbHQ7IVslZmluYWw7WworJmx0OyFFTEVNRU5UIGJvb2sgKHRpdGxlLCBib2R5LCBzdXBwbGVtZW50cz8pPgorXV0mZ3Q7Cis8L2VnPgorPC9wPgorPC9kaXYyPgorCisKKzwhLS0gCis8ZGl2MiBpZD0nc2VjLXBhc3MtdG8tYXBwJz4KKzxoZWFkPlhNTCBQcm9jZXNzb3IgVHJlYXRtZW50IG9mIExvZ2ljYWwgU3RydWN0dXJlPC9oZWFkPgorPHA+V2hlbiBhbiBYTUwgcHJvY2Vzc29yIGVuY291bnRlcnMgYSBzdGFydC10YWcsIGl0IG11c3QgbWFrZQorYXQgbGVhc3QgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBhdmFpbGFibGUgdG8gdGhlIGFwcGxpY2F0aW9uOgorPHVsaXN0PgorPGl0ZW0+Cis8cD50aGUgZWxlbWVudCB0eXBlJ3MgZ2VuZXJpYyBpZGVudGlmaWVyPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD50aGUgbmFtZXMgb2YgYXR0cmlidXRlcyBrbm93biB0byBhcHBseSB0byB0aGlzIGVsZW1lbnQgdHlwZQorKHZhbGlkYXRpbmcgcHJvY2Vzc29ycyBtdXN0IG1ha2UgYXZhaWxhYmxlIG5hbWVzIG9mIGFsbCBhdHRyaWJ1dGVzCitkZWNsYXJlZCBmb3IgdGhlIGVsZW1lbnQgdHlwZTsgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29ycyBtdXN0CittYWtlIGF2YWlsYWJsZSBhdCBsZWFzdCB0aGUgbmFtZXMgb2YgdGhlIGF0dHJpYnV0ZXMgZm9yIHdoaWNoCit2YWx1ZXMgYXJlIHNwZWNpZmllZC4KKzwvcD4KKzwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8L2RpdjI+CistLT4gCisKKzwvZGl2MT4KKzwhLS0gJkVudGl0aWVzOyAtLT4KKyAKKzxkaXYxIGlkPSdzZWMtcGh5c2ljYWwtc3RydWN0Jz4KKzxoZWFkPlBoeXNpY2FsIFN0cnVjdHVyZXM8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtZW50aXR5IiB0ZXJtPSJFbnRpdHkiPkFuIFhNTCBkb2N1bWVudCBtYXkgY29uc2lzdAorb2Ygb25lIG9yIG1hbnkgc3RvcmFnZSB1bml0cy4gICBUaGVzZSBhcmUgY2FsbGVkCis8dGVybT5lbnRpdGllczwvdGVybT47IHRoZXkgYWxsIGhhdmUgPHRlcm0+Y29udGVudDwvdGVybT4gYW5kIGFyZSBhbGwKKyhleGNlcHQgZm9yIHRoZSBkb2N1bWVudCBlbnRpdHksIHNlZSBiZWxvdywgYW5kIAordGhlIDx0ZXJtcmVmIGRlZj0nZHQtZG9jdHlwZSc+ZXh0ZXJuYWwgRFREIHN1YnNldDwvdGVybXJlZj4pIAoraWRlbnRpZmllZCBieSA8dGVybT5uYW1lPC90ZXJtPi4KKzwvdGVybWRlZj4KK0VhY2ggWE1MIGRvY3VtZW50IGhhcyBvbmUgZW50aXR5CitjYWxsZWQgdGhlIDx0ZXJtcmVmIGRlZj0iZHQtZG9jZW50Ij5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LCB3aGljaCBzZXJ2ZXMKK2FzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgdGhlIDx0ZXJtcmVmIGRlZj0iZHQteG1sLXByb2MiPlhNTAorcHJvY2Vzc29yPC90ZXJtcmVmPiBhbmQgbWF5IGNvbnRhaW4gdGhlIHdob2xlIGRvY3VtZW50LjwvcD4KKzxwPkVudGl0aWVzIG1heSBiZSBlaXRoZXIgcGFyc2VkIG9yIHVucGFyc2VkLgorPHRlcm1kZWYgaWQ9ImR0LXBhcnNlZGVudCIgdGVybT0iVGV4dCBFbnRpdHkiPkEgPHRlcm0+cGFyc2VkIGVudGl0eSdzPC90ZXJtPgorY29udGVudHMgYXJlIHJlZmVycmVkIHRvIGFzIGl0cyAKKzx0ZXJtcmVmIGRlZj0nZHQtcmVwbHRleHQnPnJlcGxhY2VtZW50IHRleHQ8L3Rlcm1yZWY+OwordGhpcyA8dGVybXJlZiBkZWY9ImR0LXRleHQiPnRleHQ8L3Rlcm1yZWY+IGlzIGNvbnNpZGVyZWQgYW4KK2ludGVncmFsIHBhcnQgb2YgdGhlIGRvY3VtZW50LjwvdGVybWRlZj48L3A+CisKKzxwPjx0ZXJtZGVmIGlkPSJkdC11bnBhcnNlZCIgdGVybT0iVW5wYXJzZWQgRW50aXR5Ij5BbiAKKzx0ZXJtPnVucGFyc2VkIGVudGl0eTwvdGVybT4gCitpcyBhIHJlc291cmNlIHdob3NlIGNvbnRlbnRzIG1heSBvciBtYXkgbm90IGJlCis8dGVybXJlZiBkZWY9J2R0LXRleHQnPnRleHQ8L3Rlcm1yZWY+LCBhbmQgaWYgdGV4dCwgbWF5IG5vdCBiZSBYTUwuCitFYWNoIHVucGFyc2VkIGVudGl0eQoraGFzIGFuIGFzc29jaWF0ZWQgPHRlcm1yZWYKK2RlZj0iZHQtbm90YXRpb24iPm5vdGF0aW9uPC90ZXJtcmVmPiwgaWRlbnRpZmllZCBieSBuYW1lLgorQmV5b25kIGEgcmVxdWlyZW1lbnQKK3RoYXQgYW4gWE1MIHByb2Nlc3NvciBtYWtlIHRoZSBpZGVudGlmaWVycyBmb3IgdGhlIGVudGl0eSBhbmQgCitub3RhdGlvbiBhdmFpbGFibGUgdG8gdGhlIGFwcGxpY2F0aW9uLAorWE1MIHBsYWNlcyBubyBjb25zdHJhaW50cyBvbiB0aGUgY29udGVudHMgb2YgdW5wYXJzZWQgZW50aXRpZXMuPC90ZXJtZGVmPiAKKzwvcD4KKzxwPgorUGFyc2VkIGVudGl0aWVzIGFyZSBpbnZva2VkIGJ5IG5hbWUgdXNpbmcgZW50aXR5IHJlZmVyZW5jZXM7Cit1bnBhcnNlZCBlbnRpdGllcyBieSBuYW1lLCBnaXZlbiBpbiB0aGUgdmFsdWUgb2YgPGt3PkVOVElUWTwva3c+CitvciA8a3c+RU5USVRJRVM8L2t3PgorYXR0cmlidXRlcy48L3A+Cis8cD48dGVybWRlZiBpZD0nZ2VuLWVudGl0eScgdGVybT0nZ2VuZXJhbCBlbnRpdHknCis+PHRlcm0+R2VuZXJhbCBlbnRpdGllczwvdGVybT4KK2FyZSBlbnRpdGllcyBmb3IgdXNlIHdpdGhpbiB0aGUgZG9jdW1lbnQgY29udGVudC4KK0luIHRoaXMgc3BlY2lmaWNhdGlvbiwgZ2VuZXJhbCBlbnRpdGllcyBhcmUgc29tZXRpbWVzIHJlZmVycmVkIAordG8gd2l0aCB0aGUgdW5xdWFsaWZpZWQgdGVybSA8ZW1waD5lbnRpdHk8L2VtcGg+IHdoZW4gdGhpcyBsZWFkcwordG8gbm8gYW1iaWd1aXR5LjwvdGVybWRlZj4gCis8dGVybWRlZiBpZD0nZHQtUEUnIHRlcm09J1BhcmFtZXRlciBlbnRpdHknPlBhcmFtZXRlciBlbnRpdGllcyAKK2FyZSBwYXJzZWQgZW50aXRpZXMgZm9yIHVzZSB3aXRoaW4gdGhlIERURC48L3Rlcm1kZWY+CitUaGVzZSB0d28gdHlwZXMgb2YgZW50aXRpZXMgdXNlIGRpZmZlcmVudCBmb3JtcyBvZiByZWZlcmVuY2UgYW5kCithcmUgcmVjb2duaXplZCBpbiBkaWZmZXJlbnQgY29udGV4dHMuCitGdXJ0aGVybW9yZSwgdGhleSBvY2N1cHkgZGlmZmVyZW50IG5hbWVzcGFjZXM7IGEgcGFyYW1ldGVyIGVudGl0eSBhbmQKK2EgZ2VuZXJhbCBlbnRpdHkgd2l0aCB0aGUgc2FtZSBuYW1lIGFyZSB0d28gZGlzdGluY3QgZW50aXRpZXMuCis8L3A+CisKKzxkaXYyIGlkPSdzZWMtcmVmZXJlbmNlcyc+Cis8aGVhZD5DaGFyYWN0ZXIgYW5kIEVudGl0eSBSZWZlcmVuY2VzPC9oZWFkPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWNoYXJyZWYiIHRlcm09IkNoYXJhY3RlciBSZWZlcmVuY2UiPgorQSA8dGVybT5jaGFyYWN0ZXIgcmVmZXJlbmNlPC90ZXJtPiByZWZlcnMgdG8gYSBzcGVjaWZpYyBjaGFyYWN0ZXIgaW4gdGhlCitJU08vSUVDIDEwNjQ2IGNoYXJhY3RlciBzZXQsIGZvciBleGFtcGxlIG9uZSBub3QgZGlyZWN0bHkgYWNjZXNzaWJsZSBmcm9tCithdmFpbGFibGUgaW5wdXQgZGV2aWNlcy4KKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkNoYXJhY3RlciBSZWZlcmVuY2U8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtQ2hhclJlZic+PGxocz5DaGFyUmVmPC9saHM+Cis8cmhzPicmYW1wOyMnIFswLTldKyAnOycgPC9yaHM+Cis8cmhzPnwgJyZoY3JvOycgWzAtOWEtZkEtRl0rICc7JzwvcmhzPgorPHdmYyBkZWY9IndmLUxlZ2FsY2hhciIvPgorPC9wcm9kPgorPC9zY3JhcD4KKzx3ZmNub3RlIGlkPSJ3Zi1MZWdhbGNoYXIiPgorPGhlYWQ+TGVnYWwgQ2hhcmFjdGVyPC9oZWFkPgorPHA+Q2hhcmFjdGVycyByZWZlcnJlZCB0byB1c2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0CittYXRjaCB0aGUgcHJvZHVjdGlvbiBmb3IKKzx0ZXJtcmVmIGRlZj0iTlQtQ2hhciI+Q2hhcjwvdGVybXJlZj4uPC9wPgorPC93ZmNub3RlPgorSWYgdGhlIGNoYXJhY3RlciByZWZlcmVuY2UgYmVnaW5zIHdpdGggIjxjb2RlPiZhbXA7I3g8L2NvZGU+IiwgdGhlIGRpZ2l0cyBhbmQKK2xldHRlcnMgdXAgdG8gdGhlIHRlcm1pbmF0aW5nIDxjb2RlPjs8L2NvZGU+IHByb3ZpZGUgYSBoZXhhZGVjaW1hbAorcmVwcmVzZW50YXRpb24gb2YgdGhlIGNoYXJhY3RlcidzIGNvZGUgcG9pbnQgaW4gSVNPL0lFQyAxMDY0Ni4KK0lmIGl0IGJlZ2lucyBqdXN0IHdpdGggIjxjb2RlPiZhbXA7IzwvY29kZT4iLCB0aGUgZGlnaXRzIHVwIHRvIHRoZSB0ZXJtaW5hdGluZworPGNvZGU+OzwvY29kZT4gcHJvdmlkZSBhIGRlY2ltYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNoYXJhY3RlcidzIAorY29kZSBwb2ludC4KKzwvdGVybWRlZj4KKzwvcD4KKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbnRyZWYiIHRlcm09IkVudGl0eSBSZWZlcmVuY2UiPkFuIDx0ZXJtPmVudGl0eQorcmVmZXJlbmNlPC90ZXJtPiByZWZlcnMgdG8gdGhlIGNvbnRlbnQgb2YgYSBuYW1lZCBlbnRpdHkuPC90ZXJtZGVmPgorPHRlcm1kZWYgaWQ9J2R0LUdFUmVmJyB0ZXJtPSdHZW5lcmFsIEVudGl0eSBSZWZlcmVuY2UnPlJlZmVyZW5jZXMgdG8gCitwYXJzZWQgZ2VuZXJhbCBlbnRpdGllcwordXNlIGFtcGVyc2FuZCAoPGNvZGU+JmFtcDs8L2NvZGU+KSBhbmQgc2VtaWNvbG9uICg8Y29kZT47PC9jb2RlPikgYXMKK2RlbGltaXRlcnMuPC90ZXJtZGVmPgorPHRlcm1kZWYgaWQ9J2R0LVBFUmVmJyB0ZXJtPSdQYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZSc+Cis8dGVybT5QYXJhbWV0ZXItZW50aXR5IHJlZmVyZW5jZXM8L3Rlcm0+IHVzZSBwZXJjZW50LXNpZ24gKDxjb2RlPiU8L2NvZGU+KSBhbmQKK3NlbWljb2xvbiAKKyg8Y29kZT47PC9jb2RlPikgYXMgZGVsaW1pdGVycy48L3Rlcm1kZWY+Cis8L3A+Cis8c2NyYXAgbGFuZz0iZWJuZiI+Cis8aGVhZD5FbnRpdHkgUmVmZXJlbmNlPC9oZWFkPgorPHByb2QgaWQ9J05ULVJlZmVyZW5jZSc+PGxocz5SZWZlcmVuY2U8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtRW50aXR5UmVmJz5FbnRpdHlSZWY8L250PiAKK3wgPG50IGRlZj0nTlQtQ2hhclJlZic+Q2hhclJlZjwvbnQ+PC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULUVudGl0eVJlZic+PGxocz5FbnRpdHlSZWY8L2xocz4KKzxyaHM+JyZhbXA7JyA8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gJzsnPC9yaHM+Cis8d2ZjIGRlZj0nd2YtZW50ZGVjbGFyZWQnLz4KKzx2YyBkZWY9J3ZjLWVudGRlY2xhcmVkJy8+Cis8d2ZjIGRlZj0ndGV4dGVudCcvPgorPHdmYyBkZWY9J25vcmVjdXJzaW9uJy8+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtUEVSZWZlcmVuY2UnPjxsaHM+UEVSZWZlcmVuY2U8L2xocz4KKzxyaHM+JyUnIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAnOyc8L3Jocz4KKzx2YyBkZWY9J3ZjLWVudGRlY2xhcmVkJy8+Cis8d2ZjIGRlZj0nbm9yZWN1cnNpb24nLz4KKzx3ZmMgZGVmPSdpbmR0ZCcvPgorPC9wcm9kPgorPC9zY3JhcD4KKworPHdmY25vdGUgaWQ9J3dmLWVudGRlY2xhcmVkJz4KKzxoZWFkPkVudGl0eSBEZWNsYXJlZDwvaGVhZD4KKzxwPkluIGEgZG9jdW1lbnQgd2l0aG91dCBhbnkgRFRELCBhIGRvY3VtZW50IHdpdGggb25seSBhbiBpbnRlcm5hbAorRFREIHN1YnNldCB3aGljaCBjb250YWlucyBubyBwYXJhbWV0ZXIgZW50aXR5IHJlZmVyZW5jZXMsIG9yIGEgZG9jdW1lbnQgd2l0aAorIjxjb2RlPnN0YW5kYWxvbmU9J3llcyc8L2NvZGU+IiwgCit0aGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IGdpdmVuIGluIHRoZSBlbnRpdHkgcmVmZXJlbmNlIG11c3QgCis8dGVybXJlZiBkZWY9ImR0LW1hdGNoIj5tYXRjaDwvdGVybXJlZj4gdGhhdCBpbiBhbiAKKzx0aXRsZXJlZiBocmVmPSdzZWMtZW50aXR5LWRlY2wnPmVudGl0eSBkZWNsYXJhdGlvbjwvdGl0bGVyZWY+LCBleGNlcHQgdGhhdAord2VsbC1mb3JtZWQgZG9jdW1lbnRzIG5lZWQgbm90IGRlY2xhcmUgCithbnkgb2YgdGhlIGZvbGxvd2luZyBlbnRpdGllczogJm1hZ2ljZW50czsuICAKK1RoZSBkZWNsYXJhdGlvbiBvZiBhIHBhcmFtZXRlciBlbnRpdHkgbXVzdCBwcmVjZWRlIGFueSByZWZlcmVuY2UgdG8gaXQuCitTaW1pbGFybHksIHRoZSBkZWNsYXJhdGlvbiBvZiBhIGdlbmVyYWwgZW50aXR5IG11c3QgcHJlY2VkZSBhbnkKK3JlZmVyZW5jZSB0byBpdCB3aGljaCBhcHBlYXJzIGluIGEgZGVmYXVsdCB2YWx1ZSBpbiBhbiBhdHRyaWJ1dGUtbGlzdAorZGVjbGFyYXRpb24uPC9wPgorPHA+Tm90ZSB0aGF0IGlmIGVudGl0aWVzIGFyZSBkZWNsYXJlZCBpbiB0aGUgZXh0ZXJuYWwgc3Vic2V0IG9yIGluIAorZXh0ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzLCBhIG5vbi12YWxpZGF0aW5nIHByb2Nlc3NvciBpcyAKKzx0aXRsZXJlZiBocmVmPSdpbmNsdWRlLWlmLXZhbGlkJz5ub3Qgb2JsaWdhdGVkIHRvPC90aXRsZXJlZj4gcmVhZAorYW5kIHByb2Nlc3MgdGhlaXIgZGVjbGFyYXRpb25zOyBmb3Igc3VjaCBkb2N1bWVudHMsIHRoZSBydWxlIHRoYXQKK2FuIGVudGl0eSBtdXN0IGJlIGRlY2xhcmVkIGlzIGEgd2VsbC1mb3JtZWRuZXNzIGNvbnN0cmFpbnQgb25seQoraWYgPHRpdGxlcmVmIGhyZWY9J3NlYy1ybWQnPnN0YW5kYWxvbmU9J3llcyc8L3RpdGxlcmVmPi48L3A+Cis8L3dmY25vdGU+Cis8dmNub3RlIGlkPSJ2Yy1lbnRkZWNsYXJlZCI+Cis8aGVhZD5FbnRpdHkgRGVjbGFyZWQ8L2hlYWQ+Cis8cD5JbiBhIGRvY3VtZW50IHdpdGggYW4gZXh0ZXJuYWwgc3Vic2V0IG9yIGV4dGVybmFsIHBhcmFtZXRlcgorZW50aXRpZXMgd2l0aCAiPGNvZGU+c3RhbmRhbG9uZT0nbm8nPC9jb2RlPiIsCit0aGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IGdpdmVuIGluIHRoZSBlbnRpdHkgcmVmZXJlbmNlIG11c3QgPHRlcm1yZWYKK2RlZj0iZHQtbWF0Y2giPm1hdGNoPC90ZXJtcmVmPiB0aGF0IGluIGFuIAorPHRpdGxlcmVmIGhyZWY9J3NlYy1lbnRpdHktZGVjbCc+ZW50aXR5IGRlY2xhcmF0aW9uPC90aXRsZXJlZj4uCitGb3IgaW50ZXJvcGVyYWJpbGl0eSwgdmFsaWQgZG9jdW1lbnRzIHNob3VsZCBkZWNsYXJlIHRoZSBlbnRpdGllcyAKKyZtYWdpY2VudHM7LCBpbiB0aGUgZm9ybQorc3BlY2lmaWVkIGluIDxzcGVjcmVmIHJlZj0ic2VjLXByZWRlZmluZWQtZW50Ii8+LgorVGhlIGRlY2xhcmF0aW9uIG9mIGEgcGFyYW1ldGVyIGVudGl0eSBtdXN0IHByZWNlZGUgYW55IHJlZmVyZW5jZSB0byBpdC4KK1NpbWlsYXJseSwgdGhlIGRlY2xhcmF0aW9uIG9mIGEgZ2VuZXJhbCBlbnRpdHkgbXVzdCBwcmVjZWRlIGFueQorcmVmZXJlbmNlIHRvIGl0IHdoaWNoIGFwcGVhcnMgaW4gYSBkZWZhdWx0IHZhbHVlIGluIGFuIGF0dHJpYnV0ZS1saXN0CitkZWNsYXJhdGlvbi48L3A+Cis8L3Zjbm90ZT4KKzwhLS0gRklOQUwgRURJVDogIGlzIHRoaXMgZHVwbGljYXRpb24gdG9vIGNsdW1zeT8gLS0+Cis8d2Zjbm90ZSBpZD0ndGV4dGVudCc+Cis8aGVhZD5QYXJzZWQgRW50aXR5PC9oZWFkPgorPHA+CitBbiBlbnRpdHkgcmVmZXJlbmNlIG11c3Qgbm90IGNvbnRhaW4gdGhlIG5hbWUgb2YgYW4gPHRlcm1yZWYKK2RlZj0iZHQtdW5wYXJzZWQiPnVucGFyc2VkIGVudGl0eTwvdGVybXJlZj4uIFVucGFyc2VkIGVudGl0aWVzIG1heSBiZSByZWZlcnJlZAordG8gb25seSBpbiA8dGVybXJlZiBkZWY9ImR0LWF0dHJ2YWwiPmF0dHJpYnV0ZSB2YWx1ZXM8L3Rlcm1yZWY+IGRlY2xhcmVkIHRvCitiZSBvZiB0eXBlIDxrdz5FTlRJVFk8L2t3PiBvciA8a3c+RU5USVRJRVM8L2t3Pi4KKzwvcD4KKzwvd2Zjbm90ZT4KKzx3ZmNub3RlIGlkPSdub3JlY3Vyc2lvbic+Cis8aGVhZD5ObyBSZWN1cnNpb248L2hlYWQ+Cis8cD4KK0EgcGFyc2VkIGVudGl0eSBtdXN0IG5vdCBjb250YWluIGEgcmVjdXJzaXZlIHJlZmVyZW5jZSB0byBpdHNlbGYsCitlaXRoZXIgZGlyZWN0bHkgb3IgaW5kaXJlY3RseS4KKzwvcD4KKzwvd2Zjbm90ZT4KKzx3ZmNub3RlIGlkPSdpbmR0ZCc+Cis8aGVhZD5JbiBEVEQ8L2hlYWQ+Cis8cD4KK1BhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlcyBtYXkgb25seSBhcHBlYXIgaW4gdGhlIAorPHRlcm1yZWYgZGVmPSdkdC1kb2N0eXBlJz5EVEQ8L3Rlcm1yZWY+LgorPC9wPgorPC93ZmNub3RlPgorPHA+RXhhbXBsZXMgb2YgY2hhcmFjdGVyIGFuZCBlbnRpdHkgcmVmZXJlbmNlczoKKzxlZz5UeXBlICZsdDtrZXk+bGVzcy10aGFuJmx0Oy9rZXk+ICgmaGNybzszQzspIHRvIHNhdmUgb3B0aW9ucy4KK1RoaXMgZG9jdW1lbnQgd2FzIHByZXBhcmVkIG9uICZhbXA7ZG9jZGF0ZTsgYW5kCitpcyBjbGFzc2lmaWVkICZhbXA7c2VjdXJpdHktbGV2ZWw7LjwvZWc+PC9wPgorPHA+RXhhbXBsZSBvZiBhIHBhcmFtZXRlci1lbnRpdHkgcmVmZXJlbmNlOgorPGVnPjwhW0NEQVRBWzwhLS0gZGVjbGFyZSB0aGUgcGFyYW1ldGVyIGVudGl0eSAiSVNPTGF0MiIuLi4gLS0+Cis8IUVOVElUWSAlIElTT0xhdDIKKyAgICAgICAgIFNZU1RFTSAiaHR0cDovL3d3dy54bWwuY29tL2lzby9pc29sYXQyLXhtbC5lbnRpdGllcyIgPgorPCEtLSAuLi4gbm93IHJlZmVyZW5jZSBpdC4gLS0+CislSVNPTGF0MjtdXT48L2VnPjwvcD4KKzwvZGl2Mj4KKyAKKzxkaXYyIGlkPSdzZWMtZW50aXR5LWRlY2wnPgorPGhlYWQ+RW50aXR5IERlY2xhcmF0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1lbnRkZWNsIiB0ZXJtPSJlbnRpdHkgZGVjbGFyYXRpb24iPgorRW50aXRpZXMgYXJlIGRlY2xhcmVkIHRodXM6Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5FbnRpdHkgRGVjbGFyYXRpb248L2hlYWQ+Cis8cHJvZGdyb3VwIHBjdzI9IjUiIHBjdzQ9IjE4LjUiPgorPHByb2QgaWQ9J05ULUVudGl0eURlY2wnPjxsaHM+RW50aXR5RGVjbDwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1HRURlY2wiPkdFRGVjbDwvbnQ+PCEtLTwvcmhzPjxjb20+R2VuZXJhbCBlbnRpdGllczwvY29tPgorPHJocz4tLT4gfCA8bnQgZGVmPSJOVC1QRURlY2wiPlBFRGVjbDwvbnQ+PC9yaHM+Cis8IS0tPGNvbT5QYXJhbWV0ZXIgZW50aXRpZXM8L2NvbT4tLT4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1HRURlY2wnPjxsaHM+R0VEZWNsPC9saHM+Cis8cmhzPicmbHQ7IUVOVElUWScgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250PiA8bnQgZGVmPSdOVC1FbnRpdHlEZWYnPkVudGl0eURlZjwvbnQ+IAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnJmd0Oyc8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1QRURlY2wnPjxsaHM+UEVEZWNsPC9saHM+Cis8cmhzPicmbHQ7IUVOVElUWScgPG50IGRlZj0nTlQtUyc+UzwvbnQ+ICclJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4gCis8bnQgZGVmPSdOVC1OYW1lJz5OYW1lPC9udD4gPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtUEVEZWYnPlBFRGVmPC9udD4gPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnJmd0Oyc8L3Jocz4KKzwhLS08Y29tPlBhcmFtZXRlciBlbnRpdGllczwvY29tPi0tPgorPC9wcm9kPgorPHByb2QgaWQ9J05ULUVudGl0eURlZic+PGxocz5FbnRpdHlEZWY8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4KKzwhLS08L3Jocz4KKzxyaHM+LS0+fCAoPG50IGRlZj0nTlQtRXh0ZXJuYWxJRCc+RXh0ZXJuYWxJRDwvbnQ+IAorPG50IGRlZj0nTlQtTkRhdGFEZWNsJz5ORGF0YURlY2w8L250Pj8pPC9yaHM+Cis8IS0tIDxudCBkZWY9J05ULUV4dGVybmFsRGVmJz5FeHRlcm5hbERlZjwvbnQ+PC9yaHM+IC0tPgorPC9wcm9kPgorPCEtLSBGSU5BTCBFRElUOiB3aGF0IGhhcHBlbmVkIHRvIFdGcyBoZXJlPyAtLT4KKzxwcm9kIGlkPSdOVC1QRURlZic+PGxocz5QRURlZjwvbGhzPgorPHJocz48bnQgZGVmPSdOVC1FbnRpdHlWYWx1ZSc+RW50aXR5VmFsdWU8L250PiAKK3wgPG50IGRlZj0nTlQtRXh0ZXJuYWxJRCc+RXh0ZXJuYWxJRDwvbnQ+PC9yaHM+PC9wcm9kPgorPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorVGhlIDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiBpZGVudGlmaWVzIHRoZSBlbnRpdHkgaW4gYW4KKzx0ZXJtcmVmIGRlZj0iZHQtZW50cmVmIj5lbnRpdHkgcmVmZXJlbmNlPC90ZXJtcmVmPiBvciwgaW4gdGhlIGNhc2Ugb2YgYW4KK3VucGFyc2VkIGVudGl0eSwgaW4gdGhlIHZhbHVlIG9mIGFuIDxrdz5FTlRJVFk8L2t3PiBvciA8a3c+RU5USVRJRVM8L2t3PgorYXR0cmlidXRlLgorSWYgdGhlIHNhbWUgZW50aXR5IGlzIGRlY2xhcmVkIG1vcmUgdGhhbiBvbmNlLCB0aGUgZmlyc3QgZGVjbGFyYXRpb24KK2VuY291bnRlcmVkIGlzIGJpbmRpbmc7IGF0IHVzZXIgb3B0aW9uLCBhbiBYTUwgcHJvY2Vzc29yIG1heSBpc3N1ZSBhCit3YXJuaW5nIGlmIGVudGl0aWVzIGFyZSBkZWNsYXJlZCBtdWx0aXBsZSB0aW1lcy48L3Rlcm1kZWY+Cis8L3A+CisKKzxkaXYzIGlkPSdzZWMtaW50ZXJuYWwtZW50Jz4KKzxoZWFkPkludGVybmFsIEVudGl0aWVzPC9oZWFkPgorIAorPHA+PHRlcm1kZWYgaWQ9J2R0LWludGVybmVudCcgdGVybT0iSW50ZXJuYWwgRW50aXR5IFJlcGxhY2VtZW50IFRleHQiPklmIAordGhlIGVudGl0eSBkZWZpbml0aW9uIGlzIGFuIAorPG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4sICAKK3RoZSBkZWZpbmVkIGVudGl0eSBpcyBjYWxsZWQgYW4gPHRlcm0+aW50ZXJuYWwgZW50aXR5PC90ZXJtPi4gIAorVGhlcmUgaXMgbm8gc2VwYXJhdGUgcGh5c2ljYWwKK3N0b3JhZ2Ugb2JqZWN0LCBhbmQgdGhlIGNvbnRlbnQgb2YgdGhlIGVudGl0eSBpcyBnaXZlbiBpbiB0aGUKK2RlY2xhcmF0aW9uLiA8L3Rlcm1kZWY+CitOb3RlIHRoYXQgc29tZSBwcm9jZXNzaW5nIG9mIGVudGl0eSBhbmQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgaW4gdGhlCis8dGVybXJlZiBkZWY9J2R0LWxpdGVudHZhbCc+bGl0ZXJhbCBlbnRpdHkgdmFsdWU8L3Rlcm1yZWY+IG1heSBiZSByZXF1aXJlZCB0bworcHJvZHVjZSB0aGUgY29ycmVjdCA8dGVybXJlZiBkZWY9J2R0LXJlcGx0ZXh0Jz5yZXBsYWNlbWVudCAKK3RleHQ8L3Rlcm1yZWY+OiBzZWUgPHNwZWNyZWYgcmVmPSdpbnRlcm4tcmVwbGFjZW1lbnQnLz4uCis8L3A+Cis8cD5BbiBpbnRlcm5hbCBlbnRpdHkgaXMgYSA8dGVybXJlZiBkZWY9ImR0LXBhcnNlZGVudCI+cGFyc2VkCitlbnRpdHk8L3Rlcm1yZWY+LjwvcD4KKzxwPkV4YW1wbGUgb2YgYW4gaW50ZXJuYWwgZW50aXR5IGRlY2xhcmF0aW9uOgorPGVnPiZsdDshRU5USVRZIFB1Yi1TdGF0dXMgIlRoaXMgaXMgYSBwcmUtcmVsZWFzZSBvZiB0aGUKKyBzcGVjaWZpY2F0aW9uLiI+PC9lZz48L3A+Cis8L2RpdjM+CisgCis8ZGl2MyBpZD0nc2VjLWV4dGVybmFsLWVudCc+Cis8aGVhZD5FeHRlcm5hbCBFbnRpdGllczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1leHRlbnQiIHRlcm09IkV4dGVybmFsIEVudGl0eSI+SWYgdGhlIGVudGl0eSBpcyBub3QKK2ludGVybmFsLCBpdCBpcyBhbiA8dGVybT5leHRlcm5hbAorZW50aXR5PC90ZXJtPiwgZGVjbGFyZWQgYXMgZm9sbG93czoKKzxzY3JhcCBsYW5nPSdlYm5mJz4KKzxoZWFkPkV4dGVybmFsIEVudGl0eSBEZWNsYXJhdGlvbjwvaGVhZD4KKzwhLS0KKzxwcm9kIGlkPSdOVC1FeHRlcm5hbERlZic+PGxocz5FeHRlcm5hbERlZjwvbGhzPgorPHJocz48L3Byb2Q+IC0tPgorPHByb2QgaWQ9J05ULUV4dGVybmFsSUQnPjxsaHM+RXh0ZXJuYWxJRDwvbGhzPgorPHJocz4nU1lTVEVNJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4gCis8bnQgZGVmPSdOVC1TeXN0ZW1MaXRlcmFsJz5TeXN0ZW1MaXRlcmFsPC9udD48L3Jocz4KKzxyaHM+fCAnUFVCTElDJyA8bnQgZGVmPSdOVC1TJz5TPC9udD4gCis8bnQgZGVmPSdOVC1QdWJpZExpdGVyYWwnPlB1YmlkTGl0ZXJhbDwvbnQ+IAorPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtU3lzdGVtTGl0ZXJhbCc+U3lzdGVtTGl0ZXJhbDwvbnQ+Cis8L3Jocz4KKzwvcHJvZD4KKzxwcm9kIGlkPSdOVC1ORGF0YURlY2wnPjxsaHM+TkRhdGFEZWNsPC9saHM+Cis8cmhzPjxudCBkZWY9J05ULVMnPlM8L250PiAnTkRBVEEnIDxudCBkZWY9J05ULVMnPlM8L250PiAKKzxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PjwvcmhzPgorPHZjIGRlZj0nbm90LWRlY2xhcmVkJy8+PC9wcm9kPgorPC9zY3JhcD4KK0lmIHRoZSA8bnQgZGVmPSdOVC1ORGF0YURlY2wnPk5EYXRhRGVjbDwvbnQ+IGlzIHByZXNlbnQsIHRoaXMgaXMgYQorZ2VuZXJhbCA8dGVybXJlZiBkZWY9ImR0LXVucGFyc2VkIj51bnBhcnNlZAorZW50aXR5PC90ZXJtcmVmPjsgb3RoZXJ3aXNlIGl0IGlzIGEgcGFyc2VkIGVudGl0eS48L3Rlcm1kZWY+PC9wPgorPHZjbm90ZSBpZD0nbm90LWRlY2xhcmVkJz4KKzxoZWFkPk5vdGF0aW9uIERlY2xhcmVkPC9oZWFkPgorPHA+CitUaGUgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+IG11c3QgbWF0Y2ggdGhlIGRlY2xhcmVkIG5hbWUgb2YgYQorPHRlcm1yZWYgZGVmPSJkdC1ub3RhdGlvbiI+bm90YXRpb248L3Rlcm1yZWY+LgorPC9wPgorPC92Y25vdGU+Cis8cD48dGVybWRlZiBpZD0iZHQtc3lzaWQiIHRlcm09IlN5c3RlbSBJZGVudGlmaWVyIj5UaGUKKzxudCBkZWY9J05ULVN5c3RlbUxpdGVyYWwnPlN5c3RlbUxpdGVyYWw8L250PiAKK2lzIGNhbGxlZCB0aGUgZW50aXR5J3MgPHRlcm0+c3lzdGVtIGlkZW50aWZpZXI8L3Rlcm0+LiBJdCBpcyBhIFVSSSwKK3doaWNoIG1heSBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBlbnRpdHkuPC90ZXJtZGVmPgorTm90ZSB0aGF0IHRoZSBoYXNoIG1hcmsgKDxjb2RlPiM8L2NvZGU+KSBhbmQgZnJhZ21lbnQgaWRlbnRpZmllciAKK2ZyZXF1ZW50bHkgdXNlZCB3aXRoIFVSSXMgYXJlIG5vdCwgZm9ybWFsbHksIHBhcnQgb2YgdGhlIFVSSSBpdHNlbGY7IAorYW4gWE1MIHByb2Nlc3NvciBtYXkgc2lnbmFsIGFuIGVycm9yIGlmIGEgZnJhZ21lbnQgaWRlbnRpZmllciBpcyAKK2dpdmVuIGFzIHBhcnQgb2YgYSBzeXN0ZW0gaWRlbnRpZmllci4KK1VubGVzcyBvdGhlcndpc2UgcHJvdmlkZWQgYnkgaW5mb3JtYXRpb24gb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhpcworc3BlY2lmaWNhdGlvbiAoZS5nLiBhIHNwZWNpYWwgWE1MIGVsZW1lbnQgdHlwZSBkZWZpbmVkIGJ5IGEgcGFydGljdWxhcgorRFRELCBvciBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gZGVmaW5lZCBieSBhIHBhcnRpY3VsYXIgYXBwbGljYXRpb24KK3NwZWNpZmljYXRpb24pLCByZWxhdGl2ZSBVUklzIGFyZSByZWxhdGl2ZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlCityZXNvdXJjZSB3aXRoaW4gd2hpY2ggdGhlIGVudGl0eSBkZWNsYXJhdGlvbiBvY2N1cnMuCitBIFVSSSBtaWdodCB0aHVzIGJlIHJlbGF0aXZlIHRvIHRoZSAKKzx0ZXJtcmVmIGRlZj0nZHQtZG9jZW50Jz5kb2N1bWVudCBlbnRpdHk8L3Rlcm1yZWY+LCB0byB0aGUgZW50aXR5Citjb250YWluaW5nIHRoZSA8dGVybXJlZiBkZWY9J2R0LWRvY3R5cGUnPmV4dGVybmFsIERURCBzdWJzZXQ8L3Rlcm1yZWY+LCAKK29yIHRvIHNvbWUgb3RoZXIgPHRlcm1yZWYgZGVmPSdkdC1leHRlbnQnPmV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHk8L3Rlcm1yZWY+LgorPC9wPgorPHA+QW4gWE1MIHByb2Nlc3NvciBzaG91bGQgaGFuZGxlIGEgbm9uLUFTQ0lJIGNoYXJhY3RlciBpbiBhIFVSSSBieQorcmVwcmVzZW50aW5nIHRoZSBjaGFyYWN0ZXIgaW4gVVRGLTggYXMgb25lIG9yIG1vcmUgYnl0ZXMsIGFuZCB0aGVuIAorZXNjYXBpbmcgdGhlc2UgYnl0ZXMgd2l0aCB0aGUgVVJJIGVzY2FwaW5nIG1lY2hhbmlzbSAoaS5lLiwgYnkKK2NvbnZlcnRpbmcgZWFjaCBieXRlIHRvICVISCwgd2hlcmUgSEggaXMgdGhlIGhleGFkZWNpbWFsIG5vdGF0aW9uIG9mIHRoZQorYnl0ZSB2YWx1ZSkuPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LXB1YmlkIiB0ZXJtPSJQdWJsaWMgaWRlbnRpZmllciI+CitJbiBhZGRpdGlvbiB0byBhIHN5c3RlbSBpZGVudGlmaWVyLCBhbiBleHRlcm5hbCBpZGVudGlmaWVyIG1heQoraW5jbHVkZSBhIDx0ZXJtPnB1YmxpYyBpZGVudGlmaWVyPC90ZXJtPi48L3Rlcm1kZWY+ICAKK0FuIFhNTCBwcm9jZXNzb3IgYXR0ZW1wdGluZyB0byByZXRyaWV2ZSB0aGUgZW50aXR5J3MgY29udGVudCBtYXkgdXNlIHRoZSBwdWJsaWMKK2lkZW50aWZpZXIgdG8gdHJ5IHRvIGdlbmVyYXRlIGFuIGFsdGVybmF0aXZlIFVSSS4gIElmIHRoZSBwcm9jZXNzb3IKK2lzIHVuYWJsZSB0byBkbyBzbywgaXQgbXVzdCB1c2UgdGhlIFVSSSBzcGVjaWZpZWQgaW4gdGhlIHN5c3RlbQorbGl0ZXJhbC4gIEJlZm9yZSBhIG1hdGNoIGlzIGF0dGVtcHRlZCwgYWxsIHN0cmluZ3MKK29mIHdoaXRlIHNwYWNlIGluIHRoZSBwdWJsaWMgaWRlbnRpZmllciBtdXN0IGJlIG5vcm1hbGl6ZWQgdG8gc2luZ2xlIHNwYWNlIGNoYXJhY3RlcnMgKCN4MjApLAorYW5kIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlIG11c3QgYmUgcmVtb3ZlZC48L3A+Cis8cD5FeGFtcGxlcyBvZiBleHRlcm5hbCBlbnRpdHkgZGVjbGFyYXRpb25zOgorPGVnPiZsdDshRU5USVRZIG9wZW4taGF0Y2gKKyAgICAgICAgIFNZU1RFTSAiaHR0cDovL3d3dy50ZXh0dWFsaXR5LmNvbS9ib2lsZXJwbGF0ZS9PcGVuSGF0Y2gueG1sIj4KKyZsdDshRU5USVRZIG9wZW4taGF0Y2gKKyAgICAgICAgIFBVQkxJQyAiLS8vVGV4dHVhbGl0eS8vVEVYVCBTdGFuZGFyZCBvcGVuLWhhdGNoIGJvaWxlcnBsYXRlLy9FTiIKKyAgICAgICAgICJodHRwOi8vd3d3LnRleHR1YWxpdHkuY29tL2JvaWxlcnBsYXRlL09wZW5IYXRjaC54bWwiPgorJmx0OyFFTlRJVFkgaGF0Y2gtcGljCisgICAgICAgICBTWVNURU0gIi4uL2dyYWZpeC9PcGVuSGF0Y2guZ2lmIgorICAgICAgICAgTkRBVEEgZ2lmID48L2VnPjwvcD4KKzwvZGl2Mz4KKyAKKzwvZGl2Mj4KKworPGRpdjIgaWQ9J1RleHRFbnRpdGllcyc+Cis8aGVhZD5QYXJzZWQgRW50aXRpZXM8L2hlYWQ+Cis8ZGl2MyBpZD0nc2VjLVRleHREZWNsJz4KKzxoZWFkPlRoZSBUZXh0IERlY2xhcmF0aW9uPC9oZWFkPgorPHA+RXh0ZXJuYWwgcGFyc2VkIGVudGl0aWVzIG1heSBlYWNoIGJlZ2luIHdpdGggYSA8dGVybT50ZXh0CitkZWNsYXJhdGlvbjwvdGVybT4uIAorPHNjcmFwIGxhbmc9J2VibmYnPgorPGhlYWQ+VGV4dCBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwcm9kZ3JvdXAgcGN3ND0iMTIuNSIgcGN3NT0iMTMiPgorPHByb2QgaWQ9J05ULVRleHREZWNsJz48bGhzPlRleHREZWNsPC9saHM+Cis8cmhzPiZ4bWxwaW87IAorPG50IGRlZj0nTlQtVmVyc2lvbkluZm8nPlZlcnNpb25JbmZvPC9udD4/Cis8bnQgZGVmPSdOVC1FbmNvZGluZ0RlY2wnPkVuY29kaW5nRGVjbDwvbnQ+Cis8bnQgZGVmPSdOVC1TJz5TPC9udD4/ICZwaWM7PC9yaHM+Cis8L3Byb2Q+Cis8L3Byb2Rncm91cD4KKzwvc2NyYXA+Cis8L3A+Cis8cD5UaGUgdGV4dCBkZWNsYXJhdGlvbiBtdXN0IGJlIHByb3ZpZGVkIGxpdGVyYWxseSwgbm90CitieSByZWZlcmVuY2UgdG8gYSBwYXJzZWQgZW50aXR5LgorTm8gdGV4dCBkZWNsYXJhdGlvbiBtYXkgYXBwZWFyIGF0IGFueSBwb3NpdGlvbiBvdGhlciB0aGFuIHRoZSBiZWdpbm5pbmcgb2YKK2FuIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkuPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9J3dmLWVudGl0aWVzJz4KKzxoZWFkPldlbGwtRm9ybWVkIFBhcnNlZCBFbnRpdGllczwvaGVhZD4KKzxwPlRoZSBkb2N1bWVudCBlbnRpdHkgaXMgd2VsbC1mb3JtZWQgaWYgaXQgbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkCis8bnQgZGVmPSdOVC1kb2N1bWVudCc+ZG9jdW1lbnQ8L250Pi4KK0FuIGV4dGVybmFsIGdlbmVyYWwgCitwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZAorPG50IGRlZj0nTlQtZXh0UGFyc2VkRW50Jz5leHRQYXJzZWRFbnQ8L250Pi4KK0FuIGV4dGVybmFsIHBhcmFtZXRlcgorZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0IG1hdGNoZXMgdGhlIHByb2R1Y3Rpb24gbGFiZWxlZAorPG50IGRlZj0nTlQtZXh0UEUnPmV4dFBFPC9udD4uCis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5XZWxsLUZvcm1lZCBFeHRlcm5hbCBQYXJzZWQgRW50aXR5PC9oZWFkPgorPHByb2QgaWQ9J05ULWV4dFBhcnNlZEVudCc+PGxocz5leHRQYXJzZWRFbnQ8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtVGV4dERlY2wnPlRleHREZWNsPC9udD4/IAorPG50IGRlZj0nTlQtY29udGVudCc+Y29udGVudDwvbnQ+PC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtZXh0UEUnPjxsaHM+ZXh0UEU8L2xocz4KKzxyaHM+PG50IGRlZj0nTlQtVGV4dERlY2wnPlRleHREZWNsPC9udD4/IAorPG50IGRlZj0nTlQtZXh0U3Vic2V0RGVjbCc+ZXh0U3Vic2V0RGVjbDwvbnQ+PC9yaHM+Cis8L3Byb2Q+Cis8L3NjcmFwPgorQW4gaW50ZXJuYWwgZ2VuZXJhbCBwYXJzZWQgZW50aXR5IGlzIHdlbGwtZm9ybWVkIGlmIGl0cyByZXBsYWNlbWVudCB0ZXh0IAorbWF0Y2hlcyB0aGUgcHJvZHVjdGlvbiBsYWJlbGVkCis8bnQgZGVmPSdOVC1jb250ZW50Jz5jb250ZW50PC9udD4uCitBbGwgaW50ZXJuYWwgcGFyYW1ldGVyIGVudGl0aWVzIGFyZSB3ZWxsLWZvcm1lZCBieSBkZWZpbml0aW9uLgorPC9wPgorPHA+QSBjb25zZXF1ZW5jZSBvZiB3ZWxsLWZvcm1lZG5lc3MgaW4gZW50aXRpZXMgaXMgdGhhdCB0aGUgbG9naWNhbCAKK2FuZCBwaHlzaWNhbCBzdHJ1Y3R1cmVzIGluIGFuIFhNTCBkb2N1bWVudCBhcmUgcHJvcGVybHkgbmVzdGVkOyBubyAKKzx0ZXJtcmVmIGRlZj0nZHQtc3RhZyc+c3RhcnQtdGFnPC90ZXJtcmVmPiwKKzx0ZXJtcmVmIGRlZj0nZHQtZXRhZyc+ZW5kLXRhZzwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9ImR0LWVtcHR5Ij5lbXB0eS1lbGVtZW50IHRhZzwvdGVybXJlZj4sCis8dGVybXJlZiBkZWY9J2R0LWVsZW1lbnQnPmVsZW1lbnQ8L3Rlcm1yZWY+LCAKKzx0ZXJtcmVmIGRlZj0nZHQtY29tbWVudCc+Y29tbWVudDwvdGVybXJlZj4sIAorPHRlcm1yZWYgZGVmPSdkdC1waSc+cHJvY2Vzc2luZyBpbnN0cnVjdGlvbjwvdGVybXJlZj4sIAorPHRlcm1yZWYgZGVmPSdkdC1jaGFycmVmJz5jaGFyYWN0ZXIKK3JlZmVyZW5jZTwvdGVybXJlZj4sIG9yCis8dGVybXJlZiBkZWY9J2R0LWVudHJlZic+ZW50aXR5IHJlZmVyZW5jZTwvdGVybXJlZj4gCitjYW4gYmVnaW4gaW4gb25lIGVudGl0eSBhbmQgZW5kIGluIGFub3RoZXIuPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9J2NoYXJlbmNvZGluZyc+Cis8aGVhZD5DaGFyYWN0ZXIgRW5jb2RpbmcgaW4gRW50aXRpZXM8L2hlYWQ+CisgCis8cD5FYWNoIGV4dGVybmFsIHBhcnNlZCBlbnRpdHkgaW4gYW4gWE1MIGRvY3VtZW50IG1heSB1c2UgYSBkaWZmZXJlbnQKK2VuY29kaW5nIGZvciBpdHMgY2hhcmFjdGVycy4gQWxsIFhNTCBwcm9jZXNzb3JzIG11c3QgYmUgYWJsZSB0byByZWFkCitlbnRpdGllcyBpbiBlaXRoZXIgVVRGLTggb3IgVVRGLTE2LiAKKworPC9wPgorPHA+RW50aXRpZXMgZW5jb2RlZCBpbiBVVEYtMTYgbXVzdAorYmVnaW4gd2l0aCB0aGUgQnl0ZSBPcmRlciBNYXJrIGRlc2NyaWJlZCBieSBJU08vSUVDIDEwNjQ2IEFubmV4IEUgYW5kCitVbmljb2RlIEFwcGVuZGl4IEIgKHRoZSBaRVJPIFdJRFRIIE5PLUJSRUFLIFNQQUNFIGNoYXJhY3RlciwgI3hGRUZGKS4KK1RoaXMgaXMgYW4gZW5jb2Rpbmcgc2lnbmF0dXJlLCBub3QgcGFydCBvZiBlaXRoZXIgdGhlIG1hcmt1cCBvciB0aGUKK2NoYXJhY3RlciBkYXRhIG9mIHRoZSBYTUwgZG9jdW1lbnQuCitYTUwgcHJvY2Vzc29ycyBtdXN0IGJlIGFibGUgdG8gdXNlIHRoaXMgY2hhcmFjdGVyIHRvCitkaWZmZXJlbnRpYXRlIGJldHdlZW4gVVRGLTggYW5kIFVURi0xNiBlbmNvZGVkIGRvY3VtZW50cy48L3A+Cis8cD5BbHRob3VnaCBhbiBYTUwgcHJvY2Vzc29yIGlzIHJlcXVpcmVkIHRvIHJlYWQgb25seSBlbnRpdGllcyBpbgordGhlIFVURi04IGFuZCBVVEYtMTYgZW5jb2RpbmdzLCBpdCBpcyByZWNvZ25pemVkIHRoYXQgb3RoZXIgZW5jb2RpbmdzIGFyZQordXNlZCBhcm91bmQgdGhlIHdvcmxkLCBhbmQgaXQgbWF5IGJlIGRlc2lyZWQgZm9yIFhNTCBwcm9jZXNzb3JzCit0byByZWFkIGVudGl0aWVzIHRoYXQgdXNlIHRoZW0uCitQYXJzZWQgZW50aXRpZXMgd2hpY2ggYXJlIHN0b3JlZCBpbiBhbiBlbmNvZGluZyBvdGhlciB0aGFuCitVVEYtOCBvciBVVEYtMTYgbXVzdCBiZWdpbiB3aXRoIGEgPHRpdGxlcmVmIGhyZWY9J1RleHREZWNsJz50ZXh0CitkZWNsYXJhdGlvbjwvdGl0bGVyZWY+IGNvbnRhaW5pbmcgYW4gZW5jb2RpbmcgZGVjbGFyYXRpb246Cis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5FbmNvZGluZyBEZWNsYXJhdGlvbjwvaGVhZD4KKzxwcm9kIGlkPSdOVC1FbmNvZGluZ0RlY2wnPjxsaHM+RW5jb2RpbmdEZWNsPC9saHM+Cis8cmhzPjxudCBkZWY9Ik5ULVMiPlM8L250PgorJ2VuY29kaW5nJyA8bnQgZGVmPSdOVC1FcSc+RXE8L250PiAKKygnIicgPG50IGRlZj0nTlQtRW5jTmFtZSc+RW5jTmFtZTwvbnQ+ICciJyB8IAorIiciIDxudCBkZWY9J05ULUVuY05hbWUnPkVuY05hbWU8L250PiAiJyIgKQorPC9yaHM+Cis8L3Byb2Q+Cis8cHJvZCBpZD0nTlQtRW5jTmFtZSc+PGxocz5FbmNOYW1lPC9saHM+Cis8cmhzPltBLVphLXpdIChbQS1aYS16MC05Ll9dIHwgJy0nKSo8L3Jocz4KKzxjb20+RW5jb2RpbmcgbmFtZSBjb250YWlucyBvbmx5IExhdGluIGNoYXJhY3RlcnM8L2NvbT4KKzwvcHJvZD4KKzwvc2NyYXA+CitJbiB0aGUgPHRlcm1yZWYgZGVmPSdkdC1kb2NlbnQnPmRvY3VtZW50IGVudGl0eTwvdGVybXJlZj4sIHRoZSBlbmNvZGluZworZGVjbGFyYXRpb24gaXMgcGFydCBvZiB0aGUgPHRlcm1yZWYgZGVmPSJkdC14bWxkZWNsIj5YTUwgZGVjbGFyYXRpb248L3Rlcm1yZWY+LgorVGhlIDxudCBkZWY9Ik5ULUVuY05hbWUiPkVuY05hbWU8L250PiBpcyB0aGUgbmFtZSBvZiB0aGUgZW5jb2RpbmcgdXNlZC4KKzwvcD4KKzwhLS0gRklOQUwgRURJVDogIGNoZWNrIG5hbWUgb2YgSUFOQSBhbmQgY2hhcnNldCBuYW1lcyAtLT4KKzxwPkluIGFuIGVuY29kaW5nIGRlY2xhcmF0aW9uLCB0aGUgdmFsdWVzCisiPGNvZGU+VVRGLTg8L2NvZGU+IiwKKyI8Y29kZT5VVEYtMTY8L2NvZGU+IiwKKyI8Y29kZT5JU08tMTA2NDYtVUNTLTI8L2NvZGU+IiwgYW5kCisiPGNvZGU+SVNPLTEwNjQ2LVVDUy00PC9jb2RlPiIgc2hvdWxkIGJlIAordXNlZCBmb3IgdGhlIHZhcmlvdXMgZW5jb2RpbmdzIGFuZCB0cmFuc2Zvcm1hdGlvbnMgb2YgVW5pY29kZSAvCitJU08vSUVDIDEwNjQ2LCB0aGUgdmFsdWVzCisiPGNvZGU+SVNPLTg4NTktMTwvY29kZT4iLAorIjxjb2RlPklTTy04ODU5LTI8L2NvZGU+IiwgLi4uCisiPGNvZGU+SVNPLTg4NTktOTwvY29kZT4iIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgcGFydHMgb2YgSVNPIDg4NTksIGFuZAordGhlIHZhbHVlcworIjxjb2RlPklTTy0yMDIyLUpQPC9jb2RlPiIsCisiPGNvZGU+U2hpZnRfSklTPC9jb2RlPiIsIGFuZAorIjxjb2RlPkVVQy1KUDwvY29kZT4iCitzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHZhcmlvdXMgZW5jb2RlZCBmb3JtcyBvZiBKSVMgWC0wMjA4LTE5OTcuICBYTUwKK3Byb2Nlc3NvcnMgbWF5IHJlY29nbml6ZSBvdGhlciBlbmNvZGluZ3M7IGl0IGlzIHJlY29tbWVuZGVkIHRoYXQKK2NoYXJhY3RlciBlbmNvZGluZ3MgcmVnaXN0ZXJlZCAoYXMgPGVtcGg+Y2hhcnNldDwvZW1waD5zKSAKK3dpdGggdGhlIEludGVybmV0IEFzc2lnbmVkIE51bWJlcnMKK0F1dGhvcml0eSA8YmlicmVmIHJlZj0nSUFOQScvPiwgb3RoZXIgdGhhbiB0aG9zZSBqdXN0IGxpc3RlZCwgc2hvdWxkIGJlCityZWZlcnJlZCB0bwordXNpbmcgdGhlaXIgcmVnaXN0ZXJlZCBuYW1lcy4KK05vdGUgdGhhdCB0aGVzZSByZWdpc3RlcmVkIG5hbWVzIGFyZSBkZWZpbmVkIHRvIGJlIAorY2FzZS1pbnNlbnNpdGl2ZSwgc28gcHJvY2Vzc29ycyB3aXNoaW5nIHRvIG1hdGNoIGFnYWluc3QgdGhlbSAKK3Nob3VsZCBkbyBzbyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUKK3dheS48L3A+Cis8cD5JbiB0aGUgYWJzZW5jZSBvZiBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBhbiBleHRlcm5hbAordHJhbnNwb3J0IHByb3RvY29sIChlLmcuIEhUVFAgb3IgTUlNRSksIAoraXQgaXMgYW4gPHRlcm1yZWYgZGVmPSJkdC1lcnJvciI+ZXJyb3I8L3Rlcm1yZWY+IGZvciBhbiBlbnRpdHkgaW5jbHVkaW5nCithbiBlbmNvZGluZyBkZWNsYXJhdGlvbiB0byBiZSBwcmVzZW50ZWQgdG8gdGhlIFhNTCBwcm9jZXNzb3IgCitpbiBhbiBlbmNvZGluZyBvdGhlciB0aGFuIHRoYXQgbmFtZWQgaW4gdGhlIGRlY2xhcmF0aW9uLCAKK2ZvciBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbiB0byBvY2N1ciBvdGhlciB0aGFuIGF0IHRoZSBiZWdpbm5pbmcgCitvZiBhbiBleHRlcm5hbCBlbnRpdHksIG9yIGZvcgorYW4gZW50aXR5IHdoaWNoIGJlZ2lucyB3aXRoIG5laXRoZXIgYSBCeXRlIE9yZGVyIE1hcmsgbm9yIGFuIGVuY29kaW5nCitkZWNsYXJhdGlvbiB0byB1c2UgYW4gZW5jb2Rpbmcgb3RoZXIgdGhhbiBVVEYtOC4KK05vdGUgdGhhdCBzaW5jZSBBU0NJSQoraXMgYSBzdWJzZXQgb2YgVVRGLTgsIG9yZGluYXJ5IEFTQ0lJIGVudGl0aWVzIGRvIG5vdCBzdHJpY3RseSBuZWVkCithbiBlbmNvZGluZyBkZWNsYXJhdGlvbi48L3A+CisKKzxwPkl0IGlzIGEgPHRlcm1yZWYgZGVmPSdkdC1mYXRhbCc+ZmF0YWwgZXJyb3I8L3Rlcm1yZWY+IHdoZW4gYW4gWE1MIHByb2Nlc3NvcgorZW5jb3VudGVycyBhbiBlbnRpdHkgd2l0aCBhbiBlbmNvZGluZyB0aGF0IGl0IGlzIHVuYWJsZSB0byBwcm9jZXNzLjwvcD4KKzxwPkV4YW1wbGVzIG9mIGVuY29kaW5nIGRlY2xhcmF0aW9uczoKKzxlZz4mbHQ7P3htbCBlbmNvZGluZz0nVVRGLTgnPz4KKyZsdDs/eG1sIGVuY29kaW5nPSdFVUMtSlAnPz48L2VnPjwvcD4KKzwvZGl2Mz4KKzwvZGl2Mj4KKzxkaXYyIGlkPSdlbnRwcm9jJz4KKzxoZWFkPlhNTCBQcm9jZXNzb3IgVHJlYXRtZW50IG9mIEVudGl0aWVzIGFuZCBSZWZlcmVuY2VzPC9oZWFkPgorPHA+VGhlIHRhYmxlIGJlbG93IHN1bW1hcml6ZXMgdGhlIGNvbnRleHRzIGluIHdoaWNoIGNoYXJhY3RlciByZWZlcmVuY2VzLAorZW50aXR5IHJlZmVyZW5jZXMsIGFuZCBpbnZvY2F0aW9ucyBvZiB1bnBhcnNlZCBlbnRpdGllcyBtaWdodCBhcHBlYXIgYW5kIHRoZQorcmVxdWlyZWQgYmVoYXZpb3Igb2YgYW4gPHRlcm1yZWYgZGVmPSdkdC14bWwtcHJvYyc+WE1MIHByb2Nlc3NvcjwvdGVybXJlZj4gaW4KK2VhY2ggY2FzZS4gIAorVGhlIGxhYmVscyBpbiB0aGUgbGVmdG1vc3QgY29sdW1uIGRlc2NyaWJlIHRoZSByZWNvZ25pdGlvbiBjb250ZXh0OgorPGdsaXN0PgorPGdpdGVtPjxsYWJlbD5SZWZlcmVuY2UgaW4gQ29udGVudDwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgcmVmZXJlbmNlCithbnl3aGVyZSBhZnRlciB0aGUgPHRlcm1yZWYgZGVmPSdkdC1zdGFnJz5zdGFydC10YWc8L3Rlcm1yZWY+IGFuZAorYmVmb3JlIHRoZSA8dGVybXJlZiBkZWY9J2R0LWV0YWcnPmVuZC10YWc8L3Rlcm1yZWY+IG9mIGFuIGVsZW1lbnQ7IGNvcnJlc3BvbmRzCit0byB0aGUgbm9udGVybWluYWwgPG50IGRlZj0nTlQtY29udGVudCc+Y29udGVudDwvbnQ+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+UmVmZXJlbmNlIGluIEF0dHJpYnV0ZSBWYWx1ZTwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgcmVmZXJlbmNlIHdpdGhpbiBlaXRoZXIgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBpbiBhIAorPHRlcm1yZWYgZGVmPSdkdC1zdGFnJz5zdGFydC10YWc8L3Rlcm1yZWY+LCBvciBhIGRlZmF1bHQKK3ZhbHVlIGluIGFuIDx0ZXJtcmVmIGRlZj0nZHQtYXR0ZGVjbCc+YXR0cmlidXRlIGRlY2xhcmF0aW9uPC90ZXJtcmVmPjsKK2NvcnJlc3BvbmRzIHRvIHRoZSBub250ZXJtaW5hbAorPG50IGRlZj0nTlQtQXR0VmFsdWUnPkF0dFZhbHVlPC9udD4uPC9wPjwvZGVmPjwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+T2NjdXJzIGFzIEF0dHJpYnV0ZSBWYWx1ZTwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgPG50IGRlZj0nTlQtTmFtZSc+TmFtZTwvbnQ+LCBub3QgYSByZWZlcmVuY2UsIGFwcGVhcmluZyBlaXRoZXIgYXMKK3RoZSB2YWx1ZSBvZiBhbiAKK2F0dHJpYnV0ZSB3aGljaCBoYXMgYmVlbiBkZWNsYXJlZCBhcyB0eXBlIDxrdz5FTlRJVFk8L2t3Piwgb3IgYXMgb25lIG9mCit0aGUgc3BhY2Utc2VwYXJhdGVkIHRva2VucyBpbiB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIHdoaWNoIGhhcyBiZWVuCitkZWNsYXJlZCBhcyB0eXBlIDxrdz5FTlRJVElFUzwva3c+LjwvcD4KKzwvZGVmPjwvZ2l0ZW0+Cis8Z2l0ZW0+PGxhYmVsPlJlZmVyZW5jZSBpbiBFbnRpdHkgVmFsdWU8L2xhYmVsPgorPGRlZj48cD5hcyBhIHJlZmVyZW5jZQord2l0aGluIGEgcGFyYW1ldGVyIG9yIGludGVybmFsIGVudGl0eSdzIAorPHRlcm1yZWYgZGVmPSdkdC1saXRlbnR2YWwnPmxpdGVyYWwgZW50aXR5IHZhbHVlPC90ZXJtcmVmPiBpbgordGhlIGVudGl0eSdzIGRlY2xhcmF0aW9uOyBjb3JyZXNwb25kcyB0byB0aGUgbm9udGVybWluYWwgCis8bnQgZGVmPSdOVC1FbnRpdHlWYWx1ZSc+RW50aXR5VmFsdWU8L250Pi48L3A+PC9kZWY+PC9naXRlbT4KKzxnaXRlbT48bGFiZWw+UmVmZXJlbmNlIGluIERURDwvbGFiZWw+Cis8ZGVmPjxwPmFzIGEgcmVmZXJlbmNlIHdpdGhpbiBlaXRoZXIgdGhlIGludGVybmFsIG9yIGV4dGVybmFsIHN1YnNldHMgb2YgdGhlIAorPHRlcm1yZWYgZGVmPSdkdC1kb2N0eXBlJz5EVEQ8L3Rlcm1yZWY+LCBidXQgb3V0c2lkZQorb2YgYW4gPG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4gb3IKKzxudCBkZWY9Ik5ULUF0dFZhbHVlIj5BdHRWYWx1ZTwvbnQ+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8L2dsaXN0PjwvcD4KKzxodGFibGUgYm9yZGVyPScxJyBjZWxscGFkZGluZz0nNycgYWxpZ249J2NlbnRlcic+Cis8aHRib2R5PgorPHRyPjx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7JyByb3dzcGFuPScyJyBjb2xzcGFuPScxJz48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnIGFsaWduPSdjZW50ZXInIHZhbGlnbj0nYm90dG9tJyBjb2xzcGFuPSc0Jz5FbnRpdHkgVHlwZTwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOycgcm93c3Bhbj0nMicgYWxpZ249J2NlbnRlcic+Q2hhcmFjdGVyPC90ZD4KKzwvdHI+Cis8dHIgYWxpZ249J2NlbnRlcicgdmFsaWduPSdib3R0b20nPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPlBhcmFtZXRlcjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+SW50ZXJuYWwKK0dlbmVyYWw8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPkV4dGVybmFsIFBhcnNlZAorR2VuZXJhbDwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+VW5wYXJzZWQ8L3RkPgorPC90cj4KKzx0ciBhbGlnbj0nY2VudGVyJyB2YWxpZ249J21pZGRsZSc+CisKKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7JyBhbGlnbj0ncmlnaHQnPlJlZmVyZW5jZQoraW4gQ29udGVudDwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J25vdC1yZWNvZ25pemVkJz5Ob3QgcmVjb2duaXplZDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0naW5jbHVkZWQnPkluY2x1ZGVkPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdpbmNsdWRlLWlmLXZhbGlkJz5JbmNsdWRlZCBpZiB2YWxpZGF0aW5nPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdmb3JiaWRkZW4nPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0naW5jbHVkZWQnPkluY2x1ZGVkPC90aXRsZXJlZj48L3RkPgorPC90cj4KKzx0ciBhbGlnbj0nY2VudGVyJyB2YWxpZ249J21pZGRsZSc+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOycgYWxpZ249J3JpZ2h0Jz5SZWZlcmVuY2UKK2luIEF0dHJpYnV0ZSBWYWx1ZTwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J25vdC1yZWNvZ25pemVkJz5Ob3QgcmVjb2duaXplZDwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0naW5saXRlcmFsJz5JbmNsdWRlZCBpbiBsaXRlcmFsPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdmb3JiaWRkZW4nPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nZm9yYmlkZGVuJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2luY2x1ZGVkJz5JbmNsdWRlZDwvdGl0bGVyZWY+PC90ZD4KKzwvdHI+Cis8dHIgYWxpZ249J2NlbnRlcicgdmFsaWduPSdtaWRkbGUnPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnIGFsaWduPSdyaWdodCc+T2NjdXJzIGFzCitBdHRyaWJ1dGUgVmFsdWU8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdub3QtcmVjb2duaXplZCc+Tm90IHJlY29nbml6ZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J25vdC1yZWNvZ25pemVkJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J25vdC1yZWNvZ25pemVkJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J25vdGlmeSc+Tm90aWZ5PC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdub3QgcmVjb2duaXplZCc+Tm90IHJlY29nbml6ZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8L3RyPgorPHRyIGFsaWduPSdjZW50ZXInIHZhbGlnbj0nbWlkZGxlJz4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7JyBhbGlnbj0ncmlnaHQnPlJlZmVyZW5jZQoraW4gRW50aXR5VmFsdWU8L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdpbmxpdGVyYWwnPkluY2x1ZGVkIGluIGxpdGVyYWw8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2J5cGFzcyc+QnlwYXNzZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2J5cGFzcyc+QnlwYXNzZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2ZvcmJpZGRlbic+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdpbmNsdWRlZCc+SW5jbHVkZWQ8L3RpdGxlcmVmPjwvdGQ+Cis8L3RyPgorPHRyIGFsaWduPSdjZW50ZXInIHZhbGlnbj0nbWlkZGxlJz4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7JyBhbGlnbj0ncmlnaHQnPlJlZmVyZW5jZQoraW4gRFREPC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nYXMtUEUnPkluY2x1ZGVkIGFzIFBFPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdmb3JiaWRkZW4nPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzx0ZCBiZ2NvbG9yPScmY2VsbGJhY2s7Jz48dGl0bGVyZWYgaHJlZj0nZm9yYmlkZGVuJz5Gb3JiaWRkZW48L3RpdGxlcmVmPjwvdGQ+Cis8dGQgYmdjb2xvcj0nJmNlbGxiYWNrOyc+PHRpdGxlcmVmIGhyZWY9J2ZvcmJpZGRlbic+Rm9yYmlkZGVuPC90aXRsZXJlZj48L3RkPgorPHRkIGJnY29sb3I9JyZjZWxsYmFjazsnPjx0aXRsZXJlZiBocmVmPSdmb3JiaWRkZW4nPkZvcmJpZGRlbjwvdGl0bGVyZWY+PC90ZD4KKzwvdHI+Cis8L2h0Ym9keT4KKzwvaHRhYmxlPgorPGRpdjMgaWQ9J25vdC1yZWNvZ25pemVkJz4KKzxoZWFkPk5vdCBSZWNvZ25pemVkPC9oZWFkPgorPHA+T3V0c2lkZSB0aGUgRFRELCB0aGUgPGNvZGU+JTwvY29kZT4gY2hhcmFjdGVyIGhhcyBubworc3BlY2lhbCBzaWduaWZpY2FuY2U7IHRodXMsIHdoYXQgd291bGQgYmUgcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2VzIGluIHRoZQorRFREIGFyZSBub3QgcmVjb2duaXplZCBhcyBtYXJrdXAgaW4gPG50IGRlZj0nTlQtY29udGVudCc+Y29udGVudDwvbnQ+LgorU2ltaWxhcmx5LCB0aGUgbmFtZXMgb2YgdW5wYXJzZWQgZW50aXRpZXMgYXJlIG5vdCByZWNvZ25pemVkIGV4Y2VwdAord2hlbiB0aGV5IGFwcGVhciBpbiB0aGUgdmFsdWUgb2YgYW4gYXBwcm9wcmlhdGVseSBkZWNsYXJlZCBhdHRyaWJ1dGUuCis8L3A+Cis8L2RpdjM+Cis8ZGl2MyBpZD0naW5jbHVkZWQnPgorPGhlYWQ+SW5jbHVkZWQ8L2hlYWQ+Cis8cD48dGVybWRlZiBpZD0iZHQtaW5jbHVkZSIgdGVybT0iSW5jbHVkZSI+QW4gZW50aXR5IGlzIAorPHRlcm0+aW5jbHVkZWQ8L3Rlcm0+IHdoZW4gaXRzIAorPHRlcm1yZWYgZGVmPSdkdC1yZXBsdGV4dCc+cmVwbGFjZW1lbnQgdGV4dDwvdGVybXJlZj4gaXMgcmV0cmlldmVkIAorYW5kIHByb2Nlc3NlZCwgaW4gcGxhY2Ugb2YgdGhlIHJlZmVyZW5jZSBpdHNlbGYsCithcyB0aG91Z2ggaXQgd2VyZSBwYXJ0IG9mIHRoZSBkb2N1bWVudCBhdCB0aGUgbG9jYXRpb24gdGhlCityZWZlcmVuY2Ugd2FzIHJlY29nbml6ZWQuCitUaGUgcmVwbGFjZW1lbnQgdGV4dCBtYXkgY29udGFpbiBib3RoIAorPHRlcm1yZWYgZGVmPSdkdC1jaGFyZGF0YSc+Y2hhcmFjdGVyIGRhdGE8L3Rlcm1yZWY+CithbmQgKGV4Y2VwdCBmb3IgcGFyYW1ldGVyIGVudGl0aWVzKSA8dGVybXJlZiBkZWY9ImR0LW1hcmt1cCI+bWFya3VwPC90ZXJtcmVmPiwKK3doaWNoIG11c3QgYmUgcmVjb2duaXplZCBpbgordGhlIHVzdWFsIHdheSwgZXhjZXB0IHRoYXQgdGhlIHJlcGxhY2VtZW50IHRleHQgb2YgZW50aXRpZXMgdXNlZCB0byBlc2NhcGUKK21hcmt1cCBkZWxpbWl0ZXJzICh0aGUgZW50aXRpZXMgJm1hZ2ljZW50czspIGlzIGFsd2F5cyB0cmVhdGVkIGFzCitkYXRhLiAgKFRoZSBzdHJpbmcgIjxjb2RlPkFUJmFtcDthbXA7VDs8L2NvZGU+IiBleHBhbmRzIHRvCisiPGNvZGU+QVQmYW1wO1Q7PC9jb2RlPiIgYW5kIHRoZSByZW1haW5pbmcgYW1wZXJzYW5kIGlzIG5vdCByZWNvZ25pemVkCithcyBhbiBlbnRpdHktcmVmZXJlbmNlIGRlbGltaXRlci4pIAorQSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGlzIDx0ZXJtPmluY2x1ZGVkPC90ZXJtPiB3aGVuIHRoZSBpbmRpY2F0ZWQKK2NoYXJhY3RlciBpcyBwcm9jZXNzZWQgaW4gcGxhY2Ugb2YgdGhlIHJlZmVyZW5jZSBpdHNlbGYuCis8L3Rlcm1kZWY+PC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9J2luY2x1ZGUtaWYtdmFsaWQnPgorPGhlYWQ+SW5jbHVkZWQgSWYgVmFsaWRhdGluZzwvaGVhZD4KKzxwPldoZW4gYW4gWE1MIHByb2Nlc3NvciByZWNvZ25pemVzIGEgcmVmZXJlbmNlIHRvIGEgcGFyc2VkIGVudGl0eSwgaW4gb3JkZXIKK3RvIDx0ZXJtcmVmIGRlZj0iZHQtdmFsaWQiPnZhbGlkYXRlPC90ZXJtcmVmPgordGhlIGRvY3VtZW50LCB0aGUgcHJvY2Vzc29yIG11c3QgCis8dGVybXJlZiBkZWY9ImR0LWluY2x1ZGUiPmluY2x1ZGU8L3Rlcm1yZWY+IGl0cworcmVwbGFjZW1lbnQgdGV4dC4KK0lmIHRoZSBlbnRpdHkgaXMgZXh0ZXJuYWwsIGFuZCB0aGUgcHJvY2Vzc29yIGlzIG5vdAorYXR0ZW1wdGluZyB0byB2YWxpZGF0ZSB0aGUgWE1MIGRvY3VtZW50LCB0aGUKK3Byb2Nlc3NvciA8dGVybXJlZiBkZWY9ImR0LW1heSI+bWF5PC90ZXJtcmVmPiwgYnV0IG5lZWQgbm90LCAKK2luY2x1ZGUgdGhlIGVudGl0eSdzIHJlcGxhY2VtZW50IHRleHQuCitJZiBhIG5vbi12YWxpZGF0aW5nIHBhcnNlciBkb2VzIG5vdCBpbmNsdWRlIHRoZSByZXBsYWNlbWVudCB0ZXh0LAoraXQgbXVzdCBpbmZvcm0gdGhlIGFwcGxpY2F0aW9uIHRoYXQgaXQgcmVjb2duaXplZCwgYnV0IGRpZCBub3QKK3JlYWQsIHRoZSBlbnRpdHkuPC9wPgorPHA+VGhpcyBydWxlIGlzIGJhc2VkIG9uIHRoZSByZWNvZ25pdGlvbiB0aGF0IHRoZSBhdXRvbWF0aWMgaW5jbHVzaW9uCitwcm92aWRlZCBieSB0aGUgU0dNTCBhbmQgWE1MIGVudGl0eSBtZWNoYW5pc20sIHByaW1hcmlseSBkZXNpZ25lZAordG8gc3VwcG9ydCBtb2R1bGFyaXR5IGluIGF1dGhvcmluZywgaXMgbm90IG5lY2Vzc2FyaWx5IAorYXBwcm9wcmlhdGUgZm9yIG90aGVyIGFwcGxpY2F0aW9ucywgaW4gcGFydGljdWxhciBkb2N1bWVudCBicm93c2luZy4KK0Jyb3dzZXJzLCBmb3IgZXhhbXBsZSwgd2hlbiBlbmNvdW50ZXJpbmcgYW4gZXh0ZXJuYWwgcGFyc2VkIGVudGl0eSByZWZlcmVuY2UsCittaWdodCBjaG9vc2UgdG8gcHJvdmlkZSBhIHZpc3VhbCBpbmRpY2F0aW9uIG9mIHRoZSBlbnRpdHkncworcHJlc2VuY2UgYW5kIHJldHJpZXZlIGl0IGZvciBkaXNwbGF5IG9ubHkgb24gZGVtYW5kLgorPC9wPgorPC9kaXYzPgorPGRpdjMgaWQ9J2ZvcmJpZGRlbic+Cis8aGVhZD5Gb3JiaWRkZW48L2hlYWQ+Cis8cD5UaGUgZm9sbG93aW5nIGFyZSBmb3JiaWRkZW4sIGFuZCBjb25zdGl0dXRlCis8dGVybXJlZiBkZWY9J2R0LWZhdGFsJz5mYXRhbDwvdGVybXJlZj4gZXJyb3JzOgorPHVsaXN0PgorPGl0ZW0+PHA+dGhlIGFwcGVhcmFuY2Ugb2YgYSByZWZlcmVuY2UgdG8gYW4KKzx0ZXJtcmVmIGRlZj0nZHQtdW5wYXJzZWQnPnVucGFyc2VkIGVudGl0eTwvdGVybXJlZj4uCis8L3A+PC9pdGVtPgorPGl0ZW0+PHA+dGhlIGFwcGVhcmFuY2Ugb2YgYW55IGNoYXJhY3RlciBvciBnZW5lcmFsLWVudGl0eSByZWZlcmVuY2UgaW4gdGhlCitEVEQgZXhjZXB0IHdpdGhpbiBhbiA8bnQgZGVmPSdOVC1FbnRpdHlWYWx1ZSc+RW50aXR5VmFsdWU8L250PiBvciAKKzxudCBkZWY9Ik5ULUF0dFZhbHVlIj5BdHRWYWx1ZTwvbnQ+LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5hIHJlZmVyZW5jZSB0byBhbiBleHRlcm5hbCBlbnRpdHkgaW4gYW4gYXR0cmlidXRlIHZhbHVlLjwvcD4KKzwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8L2RpdjM+Cis8ZGl2MyBpZD0naW5saXRlcmFsJz4KKzxoZWFkPkluY2x1ZGVkIGluIExpdGVyYWw8L2hlYWQ+Cis8cD5XaGVuIGFuIDx0ZXJtcmVmIGRlZj0nZHQtZW50cmVmJz5lbnRpdHkgcmVmZXJlbmNlPC90ZXJtcmVmPiBhcHBlYXJzIGluIGFuCithdHRyaWJ1dGUgdmFsdWUsIG9yIGEgcGFyYW1ldGVyIGVudGl0eSByZWZlcmVuY2UgYXBwZWFycyBpbiBhIGxpdGVyYWwgZW50aXR5Cit2YWx1ZSwgaXRzIDx0ZXJtcmVmIGRlZj0nZHQtcmVwbHRleHQnPnJlcGxhY2VtZW50IHRleHQ8L3Rlcm1yZWY+IGlzCitwcm9jZXNzZWQgaW4gcGxhY2Ugb2YgdGhlIHJlZmVyZW5jZSBpdHNlbGYgYXMgdGhvdWdoIGl0Cit3ZXJlIHBhcnQgb2YgdGhlIGRvY3VtZW50IGF0IHRoZSBsb2NhdGlvbiB0aGUgcmVmZXJlbmNlIHdhcyByZWNvZ25pemVkLAorZXhjZXB0IHRoYXQgYSBzaW5nbGUgb3IgZG91YmxlIHF1b3RlIGNoYXJhY3RlciBpbiB0aGUgcmVwbGFjZW1lbnQgdGV4dAoraXMgYWx3YXlzIHRyZWF0ZWQgYXMgYSBub3JtYWwgZGF0YSBjaGFyYWN0ZXIgYW5kIHdpbGwgbm90IHRlcm1pbmF0ZSB0aGUKK2xpdGVyYWwuIAorRm9yIGV4YW1wbGUsIHRoaXMgaXMgd2VsbC1mb3JtZWQ6Cis8ZWc+PCFbQ0RBVEFbPCFFTlRJVFkgJSBZTiAnIlllcyInID4KKzwhRU5USVRZIFdoYXRIZVNhaWQgIkhlIHNhaWQgJllOOyIgPl1dPjwvZWc+Cit3aGlsZSB0aGlzIGlzIG5vdDoKKzxlZz4mbHQ7IUVOVElUWSBFbmRBdHRyICIyNyciID4KKyZsdDtlbGVtZW50IGF0dHJpYnV0ZT0nYS0mYW1wO0VuZEF0dHI7PjwvZWc+Cis8L3A+PC9kaXYzPgorPGRpdjMgaWQ9J25vdGlmeSc+Cis8aGVhZD5Ob3RpZnk8L2hlYWQ+Cis8cD5XaGVuIHRoZSBuYW1lIG9mIGFuIDx0ZXJtcmVmIGRlZj0nZHQtdW5wYXJzZWQnPnVucGFyc2VkCitlbnRpdHk8L3Rlcm1yZWY+IGFwcGVhcnMgYXMgYSB0b2tlbiBpbiB0aGUKK3ZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBvZiBkZWNsYXJlZCB0eXBlIDxrdz5FTlRJVFk8L2t3PiBvciA8a3c+RU5USVRJRVM8L2t3PiwKK2EgdmFsaWRhdGluZyBwcm9jZXNzb3IgbXVzdCBpbmZvcm0gdGhlCithcHBsaWNhdGlvbiBvZiB0aGUgPHRlcm1yZWYgZGVmPSdkdC1zeXNpZCc+c3lzdGVtPC90ZXJtcmVmPiAKK2FuZCA8dGVybXJlZiBkZWY9J2R0LXB1YmlkJz5wdWJsaWM8L3Rlcm1yZWY+IChpZiBhbnkpCitpZGVudGlmaWVycyBmb3IgYm90aCB0aGUgZW50aXR5IGFuZCBpdHMgYXNzb2NpYXRlZAorPHRlcm1yZWYgZGVmPSJkdC1ub3RhdGlvbiI+bm90YXRpb248L3Rlcm1yZWY+LjwvcD4KKzwvZGl2Mz4KKzxkaXYzIGlkPSdieXBhc3MnPgorPGhlYWQ+QnlwYXNzZWQ8L2hlYWQ+Cis8cD5XaGVuIGEgZ2VuZXJhbCBlbnRpdHkgcmVmZXJlbmNlIGFwcGVhcnMgaW4gdGhlCis8bnQgZGVmPSdOVC1FbnRpdHlWYWx1ZSc+RW50aXR5VmFsdWU8L250PiBpbiBhbiBlbnRpdHkgZGVjbGFyYXRpb24sCitpdCBpcyBieXBhc3NlZCBhbmQgbGVmdCBhcyBpcy48L3A+Cis8L2RpdjM+Cis8ZGl2MyBpZD0nYXMtUEUnPgorPGhlYWQ+SW5jbHVkZWQgYXMgUEU8L2hlYWQ+Cis8cD5KdXN0IGFzIHdpdGggZXh0ZXJuYWwgcGFyc2VkIGVudGl0aWVzLCBwYXJhbWV0ZXIgZW50aXRpZXMKK25lZWQgb25seSBiZSA8dGl0bGVyZWYgaHJlZj0naW5jbHVkZS1pZi12YWxpZCc+aW5jbHVkZWQgaWYKK3ZhbGlkYXRpbmc8L3RpdGxlcmVmPi4gCitXaGVuIGEgcGFyYW1ldGVyLWVudGl0eSByZWZlcmVuY2UgaXMgcmVjb2duaXplZCBpbiB0aGUgRFRECithbmQgaW5jbHVkZWQsIGl0cyAKKzx0ZXJtcmVmIGRlZj0nZHQtcmVwbHRleHQnPnJlcGxhY2VtZW50Cit0ZXh0PC90ZXJtcmVmPiBpcyBlbmxhcmdlZCBieSB0aGUgYXR0YWNobWVudCBvZiBvbmUgbGVhZGluZyBhbmQgb25lIGZvbGxvd2luZworc3BhY2UgKCN4MjApIGNoYXJhY3RlcjsgdGhlIGludGVudCBpcyB0byBjb25zdHJhaW4gdGhlIHJlcGxhY2VtZW50Cit0ZXh0IG9mIHBhcmFtZXRlciAKK2VudGl0aWVzIHRvIGNvbnRhaW4gYW4gaW50ZWdyYWwgbnVtYmVyIG9mIGdyYW1tYXRpY2FsIHRva2VucyBpbiB0aGUgRFRELgorPC9wPgorPC9kaXYzPgorCis8L2RpdjI+Cis8ZGl2MiBpZD0naW50ZXJuLXJlcGxhY2VtZW50Jz4KKzxoZWFkPkNvbnN0cnVjdGlvbiBvZiBJbnRlcm5hbCBFbnRpdHkgUmVwbGFjZW1lbnQgVGV4dDwvaGVhZD4KKzxwPkluIGRpc2N1c3NpbmcgdGhlIHRyZWF0bWVudAorb2YgaW50ZXJuYWwgZW50aXRpZXMsIGl0IGlzICAKK3VzZWZ1bCB0byBkaXN0aW5ndWlzaCB0d28gZm9ybXMgb2YgdGhlIGVudGl0eSdzIHZhbHVlLgorPHRlcm1kZWYgaWQ9ImR0LWxpdGVudHZhbCIgdGVybT0nTGl0ZXJhbCBFbnRpdHkgVmFsdWUnPlRoZSA8dGVybT5saXRlcmFsCitlbnRpdHkgdmFsdWU8L3Rlcm0+IGlzIHRoZSBxdW90ZWQgc3RyaW5nIGFjdHVhbGx5CitwcmVzZW50IGluIHRoZSBlbnRpdHkgZGVjbGFyYXRpb24sIGNvcnJlc3BvbmRpbmcgdG8gdGhlCitub24tdGVybWluYWwgPG50IGRlZj0nTlQtRW50aXR5VmFsdWUnPkVudGl0eVZhbHVlPC9udD4uPC90ZXJtZGVmPgorPHRlcm1kZWYgaWQ9J2R0LXJlcGx0ZXh0JyB0ZXJtPSdSZXBsYWNlbWVudCBUZXh0Jz5UaGUgPHRlcm0+cmVwbGFjZW1lbnQKK3RleHQ8L3Rlcm0+IGlzIHRoZSBjb250ZW50IG9mIHRoZSBlbnRpdHksIGFmdGVyCityZXBsYWNlbWVudCBvZiBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBhbmQgcGFyYW1ldGVyLWVudGl0eQorcmVmZXJlbmNlcy4KKzwvdGVybWRlZj48L3A+CisKKzxwPlRoZSBsaXRlcmFsIGVudGl0eSB2YWx1ZSAKK2FzIGdpdmVuIGluIGFuIGludGVybmFsIGVudGl0eSBkZWNsYXJhdGlvbgorKDxudCBkZWY9J05ULUVudGl0eVZhbHVlJz5FbnRpdHlWYWx1ZTwvbnQ+KSBtYXkgY29udGFpbiBjaGFyYWN0ZXIsCitwYXJhbWV0ZXItZW50aXR5LCBhbmQgZ2VuZXJhbC1lbnRpdHkgcmVmZXJlbmNlcy4KK1N1Y2ggcmVmZXJlbmNlcyBtdXN0IGJlIGNvbnRhaW5lZCBlbnRpcmVseSB3aXRoaW4gdGhlCitsaXRlcmFsIGVudGl0eSB2YWx1ZS4KK1RoZSBhY3R1YWwgcmVwbGFjZW1lbnQgdGV4dCB0aGF0IGlzIAorPHRlcm1yZWYgZGVmPSdkdC1pbmNsdWRlJz5pbmNsdWRlZDwvdGVybXJlZj4gYXMgZGVzY3JpYmVkIGFib3ZlCittdXN0IGNvbnRhaW4gdGhlIDxlbXBoPnJlcGxhY2VtZW50IHRleHQ8L2VtcGg+IG9mIGFueSAKK3BhcmFtZXRlciBlbnRpdGllcyByZWZlcnJlZCB0bywgYW5kIG11c3QgY29udGFpbiB0aGUgY2hhcmFjdGVyCityZWZlcnJlZCB0bywgaW4gcGxhY2Ugb2YgYW55IGNoYXJhY3RlciByZWZlcmVuY2VzIGluIHRoZQorbGl0ZXJhbCBlbnRpdHkgdmFsdWU7IGhvd2V2ZXIsCitnZW5lcmFsLWVudGl0eSByZWZlcmVuY2VzIG11c3QgYmUgbGVmdCBhcy1pcywgdW5leHBhbmRlZC4KK0ZvciBleGFtcGxlLCBnaXZlbiB0aGUgZm9sbG93aW5nIGRlY2xhcmF0aW9uczoKKworPGVnPjwhW0NEQVRBWzwhRU5USVRZICUgcHViICAgICImI3hjOTtkaXRpb25zIEdhbGxpbWFyZCIgPgorPCFFTlRJVFkgICByaWdodHMgIkFsbCByaWdodHMgcmVzZXJ2ZWQiID4KKzwhRU5USVRZICAgYm9vayAgICJMYSBQZXN0ZTogQWxiZXJ0IENhbXVzLCAKKyYjeEE5OyAxOTQ3ICVwdWI7LiAmcmlnaHRzOyIgPl1dPjwvZWc+Cit0aGVuIHRoZSByZXBsYWNlbWVudCB0ZXh0IGZvciB0aGUgZW50aXR5ICI8Y29kZT5ib29rPC9jb2RlPiIgaXM6Cis8ZWc+TGEgUGVzdGU6IEFsYmVydCBDYW11cywgCismIzE2OTsgMTk0NyAmIzIwMTtkaXRpb25zIEdhbGxpbWFyZC4gJmFtcDtyaWdodHM7PC9lZz4KK1RoZSBnZW5lcmFsLWVudGl0eSByZWZlcmVuY2UgIjxjb2RlPiZhbXA7cmlnaHRzOzwvY29kZT4iIHdvdWxkIGJlIGV4cGFuZGVkCitzaG91bGQgdGhlIHJlZmVyZW5jZSAiPGNvZGU+JmFtcDtib29rOzwvY29kZT4iIGFwcGVhciBpbiB0aGUgZG9jdW1lbnQncworY29udGVudCBvciBhbiBhdHRyaWJ1dGUgdmFsdWUuPC9wPgorPHA+VGhlc2Ugc2ltcGxlIHJ1bGVzIG1heSBoYXZlIGNvbXBsZXggaW50ZXJhY3Rpb25zOyBmb3IgYSBkZXRhaWxlZAorZGlzY3Vzc2lvbiBvZiBhIGRpZmZpY3VsdCBleGFtcGxlLCBzZWUKKzxzcGVjcmVmIHJlZj0nc2VjLWVudGV4cGFuZCcvPi4KKzwvcD4KKworPC9kaXYyPgorPGRpdjIgaWQ9J3NlYy1wcmVkZWZpbmVkLWVudCc+Cis8aGVhZD5QcmVkZWZpbmVkIEVudGl0aWVzPC9oZWFkPgorPHA+PHRlcm1kZWYgaWQ9ImR0LWVzY2FwZSIgdGVybT0iZXNjYXBlIj5FbnRpdHkgYW5kIGNoYXJhY3RlcgorcmVmZXJlbmNlcyBjYW4gYm90aCBiZSB1c2VkIHRvIDx0ZXJtPmVzY2FwZTwvdGVybT4gdGhlIGxlZnQgYW5nbGUgYnJhY2tldCwKK2FtcGVyc2FuZCwgYW5kIG90aGVyIGRlbGltaXRlcnMuICAgQSBzZXQgb2YgZ2VuZXJhbCBlbnRpdGllcworKCZtYWdpY2VudHM7KSBpcyBzcGVjaWZpZWQgZm9yIHRoaXMgcHVycG9zZS4KK051bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgbWF5IGFsc28gYmUgdXNlZDsgdGhleSBhcmUKK2V4cGFuZGVkIGltbWVkaWF0ZWx5IHdoZW4gcmVjb2duaXplZCBhbmQgbXVzdCBiZSB0cmVhdGVkIGFzCitjaGFyYWN0ZXIgZGF0YSwgc28gdGhlIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMKKyI8Y29kZT4mYW1wOyM2MDs8L2NvZGU+IiBhbmQgIjxjb2RlPiZhbXA7IzM4OzwvY29kZT4iIG1heSBiZSB1c2VkIHRvIAorZXNjYXBlIDxjb2RlPiZsdDs8L2NvZGU+IGFuZCA8Y29kZT4mYW1wOzwvY29kZT4gd2hlbiB0aGV5IG9jY3VyCitpbiBjaGFyYWN0ZXIgZGF0YS48L3Rlcm1kZWY+PC9wPgorPHA+QWxsIFhNTCBwcm9jZXNzb3JzIG11c3QgcmVjb2duaXplIHRoZXNlIGVudGl0aWVzIHdoZXRoZXIgdGhleQorYXJlIGRlY2xhcmVkIG9yIG5vdC4gIAorPHRlcm1yZWYgZGVmPSdkdC1pbnRlcm9wJz5Gb3IgaW50ZXJvcGVyYWJpbGl0eTwvdGVybXJlZj4sCit2YWxpZCBYTUwgZG9jdW1lbnRzIHNob3VsZCBkZWNsYXJlIHRoZXNlCitlbnRpdGllcywgbGlrZSBhbnkgb3RoZXJzLCBiZWZvcmUgdXNpbmcgdGhlbS4KK0lmIHRoZSBlbnRpdGllcyBpbiBxdWVzdGlvbiBhcmUgZGVjbGFyZWQsIHRoZXkgbXVzdCBiZSBkZWNsYXJlZAorYXMgaW50ZXJuYWwgZW50aXRpZXMgd2hvc2UgcmVwbGFjZW1lbnQgdGV4dCBpcyB0aGUgc2luZ2xlCitjaGFyYWN0ZXIgYmVpbmcgZXNjYXBlZCBvciBhIGNoYXJhY3RlciByZWZlcmVuY2UgdG8KK3RoYXQgY2hhcmFjdGVyLCBhcyBzaG93biBiZWxvdy4KKzxlZz48IVtDREFUQVs8IUVOVElUWSBsdCAgICAgIiYjMzg7IzYwOyI+IAorPCFFTlRJVFkgZ3QgICAgICImIzYyOyI+IAorPCFFTlRJVFkgYW1wICAgICImIzM4OyMzODsiPiAKKzwhRU5USVRZIGFwb3MgICAiJiMzOTsiPiAKKzwhRU5USVRZIHF1b3QgICAiJiMzNDsiPiAKK11dPjwvZWc+CitOb3RlIHRoYXQgdGhlIDxjb2RlPiZsdDs8L2NvZGU+IGFuZCA8Y29kZT4mYW1wOzwvY29kZT4gY2hhcmFjdGVycworaW4gdGhlIGRlY2xhcmF0aW9ucyBvZiAiPGNvZGU+bHQ8L2NvZGU+IiBhbmQgIjxjb2RlPmFtcDwvY29kZT4iCithcmUgZG91Ymx5IGVzY2FwZWQgdG8gbWVldCB0aGUgcmVxdWlyZW1lbnQgdGhhdCBlbnRpdHkgcmVwbGFjZW1lbnQKK2JlIHdlbGwtZm9ybWVkLgorPC9wPgorPC9kaXYyPgorCis8ZGl2MiBpZD0nTm90YXRpb25zJz4KKzxoZWFkPk5vdGF0aW9uIERlY2xhcmF0aW9uczwvaGVhZD4KKyAKKzxwPjx0ZXJtZGVmIGlkPSJkdC1ub3RhdGlvbiIgdGVybT0iTm90YXRpb24iPjx0ZXJtPk5vdGF0aW9uczwvdGVybT4gaWRlbnRpZnkgYnkKK25hbWUgdGhlIGZvcm1hdCBvZiA8dGVybXJlZiBkZWY9ImR0LWV4dGVudCI+dW5wYXJzZWQKK2VudGl0aWVzPC90ZXJtcmVmPiwgdGhlCitmb3JtYXQgb2YgZWxlbWVudHMgd2hpY2ggYmVhciBhIG5vdGF0aW9uIGF0dHJpYnV0ZSwgCitvciB0aGUgYXBwbGljYXRpb24gdG8gd2hpY2ggIAorYSA8dGVybXJlZiBkZWY9ImR0LXBpIj5wcm9jZXNzaW5nIGluc3RydWN0aW9uPC90ZXJtcmVmPiBpcworYWRkcmVzc2VkLjwvdGVybWRlZj48L3A+Cis8cD48dGVybWRlZiBpZD0iZHQtbm90ZGVjbCIgdGVybT0iTm90YXRpb24gRGVjbGFyYXRpb24iPgorPHRlcm0+Tm90YXRpb24gZGVjbGFyYXRpb25zPC90ZXJtPgorcHJvdmlkZSBhIG5hbWUgZm9yIHRoZSBub3RhdGlvbiwgZm9yIHVzZSBpbgorZW50aXR5IGFuZCBhdHRyaWJ1dGUtbGlzdCBkZWNsYXJhdGlvbnMgYW5kIGluIGF0dHJpYnV0ZSBzcGVjaWZpY2F0aW9ucywKK2FuZCBhbiBleHRlcm5hbCBpZGVudGlmaWVyIGZvciB0aGUgbm90YXRpb24gd2hpY2ggbWF5IGFsbG93IGFuIFhNTAorcHJvY2Vzc29yIG9yIGl0cyBjbGllbnQgYXBwbGljYXRpb24gdG8gbG9jYXRlIGEgaGVscGVyIGFwcGxpY2F0aW9uCitjYXBhYmxlIG9mIHByb2Nlc3NpbmcgZGF0YSBpbiB0aGUgZ2l2ZW4gbm90YXRpb24uCis8c2NyYXAgbGFuZz0nZWJuZic+Cis8aGVhZD5Ob3RhdGlvbiBEZWNsYXJhdGlvbnM8L2hlYWQ+Cis8cHJvZCBpZD0nTlQtTm90YXRpb25EZWNsJz48bGhzPk5vdGF0aW9uRGVjbDwvbGhzPgorPHJocz4nJmx0OyFOT1RBVElPTicgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IDxudCBkZWY9J05ULU5hbWUnPk5hbWU8L250PiAKKzxudCBkZWY9J05ULVMnPlM8L250PiAKKyg8bnQgZGVmPSdOVC1FeHRlcm5hbElEJz5FeHRlcm5hbElEPC9udD4gfCAKKzxudCBkZWY9J05ULVB1YmxpY0lEJz5QdWJsaWNJRDwvbnQ+KQorPG50IGRlZj0nTlQtUyc+UzwvbnQ+PyAnPic8L3Jocz48L3Byb2Q+Cis8cHJvZCBpZD0nTlQtUHVibGljSUQnPjxsaHM+UHVibGljSUQ8L2xocz4KKzxyaHM+J1BVQkxJQycgPG50IGRlZj0nTlQtUyc+UzwvbnQ+IAorPG50IGRlZj0nTlQtUHViaWRMaXRlcmFsJz5QdWJpZExpdGVyYWw8L250PiAKKzwvcmhzPjwvcHJvZD4KKzwvc2NyYXA+Cis8L3Rlcm1kZWY+PC9wPgorPHA+WE1MIHByb2Nlc3NvcnMgbXVzdCBwcm92aWRlIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSBuYW1lIGFuZCBleHRlcm5hbAoraWRlbnRpZmllcihzKSBvZiBhbnkgbm90YXRpb24gZGVjbGFyZWQgYW5kIHJlZmVycmVkIHRvIGluIGFuIGF0dHJpYnV0ZQordmFsdWUsIGF0dHJpYnV0ZSBkZWZpbml0aW9uLCBvciBlbnRpdHkgZGVjbGFyYXRpb24uICBUaGV5IG1heQorYWRkaXRpb25hbGx5IHJlc29sdmUgdGhlIGV4dGVybmFsIGlkZW50aWZpZXIgaW50byB0aGUKKzx0ZXJtcmVmIGRlZj0iZHQtc3lzaWQiPnN5c3RlbSBpZGVudGlmaWVyPC90ZXJtcmVmPiwKK2ZpbGUgbmFtZSwgb3Igb3RoZXIgaW5mb3JtYXRpb24gbmVlZGVkIHRvIGFsbG93IHRoZQorYXBwbGljYXRpb24gdG8gY2FsbCBhIHByb2Nlc3NvciBmb3IgZGF0YSBpbiB0aGUgbm90YXRpb24gZGVzY3JpYmVkLiAgKEl0CitpcyBub3QgYW4gZXJyb3IsIGhvd2V2ZXIsIGZvciBYTUwgZG9jdW1lbnRzIHRvIGRlY2xhcmUgYW5kIHJlZmVyIHRvCitub3RhdGlvbnMgZm9yIHdoaWNoIG5vdGF0aW9uLXNwZWNpZmljIGFwcGxpY2F0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSBvbgordGhlIHN5c3RlbSB3aGVyZSB0aGUgWE1MIHByb2Nlc3NvciBvciBhcHBsaWNhdGlvbiBpcyBydW5uaW5nLik8L3A+Cis8L2RpdjI+CisKKyAKKzxkaXYyIGlkPSdzZWMtZG9jLWVudGl0eSc+Cis8aGVhZD5Eb2N1bWVudCBFbnRpdHk8L2hlYWQ+CisgCis8cD48dGVybWRlZiBpZD0iZHQtZG9jZW50IiB0ZXJtPSJEb2N1bWVudCBFbnRpdHkiPlRoZSA8dGVybT5kb2N1bWVudAorZW50aXR5PC90ZXJtPiBzZXJ2ZXMgYXMgdGhlIHJvb3Qgb2YgdGhlIGVudGl0eQordHJlZSBhbmQgYSBzdGFydGluZy1wb2ludCBmb3IgYW4gPHRlcm1yZWYgZGVmPSJkdC14bWwtcHJvYyI+WE1MCitwcm9jZXNzb3I8L3Rlcm1yZWY+LjwvdGVybWRlZj4KK1RoaXMgc3BlY2lmaWNhdGlvbiBkb2VzCitub3Qgc3BlY2lmeSBob3cgdGhlIGRvY3VtZW50IGVudGl0eSBpcyB0byBiZSBsb2NhdGVkIGJ5IGFuIFhNTAorcHJvY2Vzc29yOyB1bmxpa2Ugb3RoZXIgZW50aXRpZXMsIHRoZSBkb2N1bWVudCBlbnRpdHkgaGFzIG5vIG5hbWUgYW5kIG1pZ2h0Cit3ZWxsIGFwcGVhciBvbiBhIHByb2Nlc3NvciBpbnB1dCBzdHJlYW0gCit3aXRob3V0IGFueSBpZGVudGlmaWNhdGlvbiBhdCBhbGwuPC9wPgorPC9kaXYyPgorCisKKzwvZGl2MT4KKzwhLS0gJkNvbmZvcm1hbmNlOyAtLT4KKyAKKzxkaXYxIGlkPSdzZWMtY29uZm9ybWFuY2UnPgorPGhlYWQ+Q29uZm9ybWFuY2U8L2hlYWQ+CisgCis8ZGl2MiBpZD0ncHJvYy10eXBlcyc+Cis8aGVhZD5WYWxpZGF0aW5nIGFuZCBOb24tVmFsaWRhdGluZyBQcm9jZXNzb3JzPC9oZWFkPgorPHA+Q29uZm9ybWluZyA8dGVybXJlZiBkZWY9ImR0LXhtbC1wcm9jIj5YTUwgcHJvY2Vzc29yczwvdGVybXJlZj4gZmFsbCBpbnRvIHR3bworY2xhc3NlczogdmFsaWRhdGluZyBhbmQgbm9uLXZhbGlkYXRpbmcuPC9wPgorPHA+VmFsaWRhdGluZyBhbmQgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29ycyBhbGlrZSBtdXN0IHJlcG9ydAordmlvbGF0aW9ucyBvZiB0aGlzIHNwZWNpZmljYXRpb24ncyB3ZWxsLWZvcm1lZG5lc3MgY29uc3RyYWludHMKK2luIHRoZSBjb250ZW50IG9mIHRoZQorPHRlcm1yZWYgZGVmPSdkdC1kb2NlbnQnPmRvY3VtZW50IGVudGl0eTwvdGVybXJlZj4gYW5kIGFueSAKK290aGVyIDx0ZXJtcmVmIGRlZj0nZHQtcGFyc2VkZW50Jz5wYXJzZWQgZW50aXRpZXM8L3Rlcm1yZWY+IHRoYXQgCit0aGV5IHJlYWQuPC9wPgorPHA+PHRlcm1kZWYgaWQ9ImR0LXZhbGlkYXRpbmciIHRlcm09IlZhbGlkYXRpbmcgUHJvY2Vzc29yIj4KKzx0ZXJtPlZhbGlkYXRpbmcgcHJvY2Vzc29yczwvdGVybT4gbXVzdCByZXBvcnQKK3Zpb2xhdGlvbnMgb2YgdGhlIGNvbnN0cmFpbnRzIGV4cHJlc3NlZCBieSB0aGUgZGVjbGFyYXRpb25zIGluIHRoZQorPHRlcm1yZWYgZGVmPSJkdC1kb2N0eXBlIj5EVEQ8L3Rlcm1yZWY+LCBhbmQKK2ZhaWx1cmVzIHRvIGZ1bGZpbGwgdGhlIHZhbGlkaXR5IGNvbnN0cmFpbnRzIGdpdmVuCitpbiB0aGlzIHNwZWNpZmljYXRpb24uCis8L3Rlcm1kZWY+CitUbyBhY2NvbXBsaXNoIHRoaXMsIHZhbGlkYXRpbmcgWE1MIHByb2Nlc3NvcnMgbXVzdCByZWFkIGFuZCBwcm9jZXNzIHRoZSBlbnRpcmUKK0RURCBhbmQgYWxsIGV4dGVybmFsIHBhcnNlZCBlbnRpdGllcyByZWZlcmVuY2VkIGluIHRoZSBkb2N1bWVudC4KKzwvcD4KKzxwPk5vbi12YWxpZGF0aW5nIHByb2Nlc3NvcnMgYXJlIHJlcXVpcmVkIHRvIGNoZWNrIG9ubHkgdGhlIAorPHRlcm1yZWYgZGVmPSdkdC1kb2NlbnQnPmRvY3VtZW50IGVudGl0eTwvdGVybXJlZj4sIGluY2x1ZGluZwordGhlIGVudGlyZSBpbnRlcm5hbCBEVEQgc3Vic2V0LCBmb3Igd2VsbC1mb3JtZWRuZXNzLgorPHRlcm1kZWYgaWQ9J2R0LXVzZS1tZGVjbCcgdGVybT0nUHJvY2VzcyBEZWNsYXJhdGlvbnMnPgorV2hpbGUgdGhleSBhcmUgbm90IHJlcXVpcmVkIHRvIGNoZWNrIHRoZSBkb2N1bWVudCBmb3IgdmFsaWRpdHksCit0aGV5IGFyZSByZXF1aXJlZCB0byAKKzx0ZXJtPnByb2Nlc3M8L3Rlcm0+IGFsbCB0aGUgZGVjbGFyYXRpb25zIHRoZXkgcmVhZCBpbiB0aGUKK2ludGVybmFsIERURCBzdWJzZXQgYW5kIGluIGFueSBwYXJhbWV0ZXIgZW50aXR5IHRoYXQgdGhleQorcmVhZCwgdXAgdG8gdGhlIGZpcnN0IHJlZmVyZW5jZQordG8gYSBwYXJhbWV0ZXIgZW50aXR5IHRoYXQgdGhleSBkbyA8ZW1waD5ub3Q8L2VtcGg+IHJlYWQ7IHRoYXQgaXMgdG8gCitzYXksIHRoZXkgbXVzdAordXNlIHRoZSBpbmZvcm1hdGlvbiBpbiB0aG9zZSBkZWNsYXJhdGlvbnMgdG8KKzx0aXRsZXJlZiBocmVmPSdBVk5vcm1hbGl6ZSc+bm9ybWFsaXplPC90aXRsZXJlZj4gYXR0cmlidXRlIHZhbHVlcywKKzx0aXRsZXJlZiBocmVmPSdpbmNsdWRlZCc+aW5jbHVkZTwvdGl0bGVyZWY+IHRoZSByZXBsYWNlbWVudCB0ZXh0IG9mIAoraW50ZXJuYWwgZW50aXRpZXMsIGFuZCBzdXBwbHkgCis8dGl0bGVyZWYgaHJlZj0nc2VjLWF0dHItZGVmYXVsdHMnPmRlZmF1bHQgYXR0cmlidXRlIHZhbHVlczwvdGl0bGVyZWY+LgorPC90ZXJtZGVmPgorVGhleSBtdXN0IG5vdCA8dGVybXJlZiBkZWY9J2R0LXVzZS1tZGVjbCc+cHJvY2VzczwvdGVybXJlZj4KKzx0ZXJtcmVmIGRlZj0nZHQtZW50ZGVjbCc+ZW50aXR5IGRlY2xhcmF0aW9uczwvdGVybXJlZj4gb3IgCis8dGVybXJlZiBkZWY9J2R0LWF0dGRlY2wnPmF0dHJpYnV0ZS1saXN0IGRlY2xhcmF0aW9uczwvdGVybXJlZj4gCitlbmNvdW50ZXJlZCBhZnRlciBhIHJlZmVyZW5jZSB0byBhIHBhcmFtZXRlciBlbnRpdHkgdGhhdCBpcyBub3QKK3JlYWQsIHNpbmNlIHRoZSBlbnRpdHkgbWF5IGhhdmUgY29udGFpbmVkIG92ZXJyaWRpbmcgZGVjbGFyYXRpb25zLgorPC9wPgorPC9kaXYyPgorPGRpdjIgaWQ9J3NhZmUtYmVoYXZpb3InPgorPGhlYWQ+VXNpbmcgWE1MIFByb2Nlc3NvcnM8L2hlYWQ+Cis8cD5UaGUgYmVoYXZpb3Igb2YgYSB2YWxpZGF0aW5nIFhNTCBwcm9jZXNzb3IgaXMgaGlnaGx5IHByZWRpY3RhYmxlOyBpdAorbXVzdCByZWFkIGV2ZXJ5IHBpZWNlIG9mIGEgZG9jdW1lbnQgYW5kIHJlcG9ydCBhbGwgd2VsbC1mb3JtZWRuZXNzIGFuZAordmFsaWRpdHkgdmlvbGF0aW9ucy4KK0xlc3MgaXMgcmVxdWlyZWQgb2YgYSBub24tdmFsaWRhdGluZyBwcm9jZXNzb3I7IGl0IG5lZWQgbm90IHJlYWQgYW55CitwYXJ0IG9mIHRoZSBkb2N1bWVudCBvdGhlciB0aGFuIHRoZSBkb2N1bWVudCBlbnRpdHkuCitUaGlzIGhhcyB0d28gZWZmZWN0cyB0aGF0IG1heSBiZSBpbXBvcnRhbnQgdG8gdXNlcnMgb2YgWE1MIHByb2Nlc3NvcnM6Cis8dWxpc3Q+Cis8aXRlbT48cD5DZXJ0YWluIHdlbGwtZm9ybWVkbmVzcyBlcnJvcnMsIHNwZWNpZmljYWxseSB0aG9zZSB0aGF0IHJlcXVpcmUKK3JlYWRpbmcgZXh0ZXJuYWwgZW50aXRpZXMsIG1heSBub3QgYmUgZGV0ZWN0ZWQgYnkgYSBub24tdmFsaWRhdGluZyBwcm9jZXNzb3IuCitFeGFtcGxlcyBpbmNsdWRlIHRoZSBjb25zdHJhaW50cyBlbnRpdGxlZCAKKzx0aXRsZXJlZiBocmVmPSd3Zi1lbnRkZWNsYXJlZCc+RW50aXR5IERlY2xhcmVkPC90aXRsZXJlZj4sIAorPHRpdGxlcmVmIGhyZWY9J3dmLXRleHRlbnQnPlBhcnNlZCBFbnRpdHk8L3RpdGxlcmVmPiwgYW5kCis8dGl0bGVyZWYgaHJlZj0nd2Ytbm9yZWN1cnNpb24nPk5vIFJlY3Vyc2lvbjwvdGl0bGVyZWY+LCBhcyB3ZWxsCithcyBzb21lIG9mIHRoZSBjYXNlcyBkZXNjcmliZWQgYXMKKzx0aXRsZXJlZiBocmVmPSdmb3JiaWRkZW4nPmZvcmJpZGRlbjwvdGl0bGVyZWY+IGluIAorPHNwZWNyZWYgcmVmPSdlbnRwcm9jJy8+LjwvcD48L2l0ZW0+Cis8aXRlbT48cD5UaGUgaW5mb3JtYXRpb24gcGFzc2VkIGZyb20gdGhlIHByb2Nlc3NvciB0byB0aGUgYXBwbGljYXRpb24gbWF5Cit2YXJ5LCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgcHJvY2Vzc29yIHJlYWRzCitwYXJhbWV0ZXIgYW5kIGV4dGVybmFsIGVudGl0aWVzLgorRm9yIGV4YW1wbGUsIGEgbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29yIG1heSBub3QgCis8dGl0bGVyZWYgaHJlZj0nQVZOb3JtYWxpemUnPm5vcm1hbGl6ZTwvdGl0bGVyZWY+IGF0dHJpYnV0ZSB2YWx1ZXMsCis8dGl0bGVyZWYgaHJlZj0naW5jbHVkZWQnPmluY2x1ZGU8L3RpdGxlcmVmPiB0aGUgcmVwbGFjZW1lbnQgdGV4dCBvZiAKK2ludGVybmFsIGVudGl0aWVzLCBvciBzdXBwbHkgCis8dGl0bGVyZWYgaHJlZj0nc2VjLWF0dHItZGVmYXVsdHMnPmRlZmF1bHQgYXR0cmlidXRlIHZhbHVlczwvdGl0bGVyZWY+LAord2hlcmUgZG9pbmcgc28gZGVwZW5kcyBvbiBoYXZpbmcgcmVhZCBkZWNsYXJhdGlvbnMgaW4gCitleHRlcm5hbCBvciBwYXJhbWV0ZXIgZW50aXRpZXMuPC9wPjwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8cD5Gb3IgbWF4aW11bSByZWxpYWJpbGl0eSBpbiBpbnRlcm9wZXJhdGluZyBiZXR3ZWVuIGRpZmZlcmVudCBYTUwKK3Byb2Nlc3NvcnMsIGFwcGxpY2F0aW9ucyB3aGljaCB1c2Ugbm9uLXZhbGlkYXRpbmcgcHJvY2Vzc29ycyBzaG91bGQgbm90IAorcmVseSBvbiBhbnkgYmVoYXZpb3JzIG5vdCByZXF1aXJlZCBvZiBzdWNoIHByb2Nlc3NvcnMuCitBcHBsaWNhdGlvbnMgd2hpY2ggcmVxdWlyZSBmYWNpbGl0aWVzIHN1Y2ggYXMgdGhlIHVzZSBvZiBkZWZhdWx0CithdHRyaWJ1dGVzIG9yIGludGVybmFsIGVudGl0aWVzIHdoaWNoIGFyZSBkZWNsYXJlZCBpbiBleHRlcm5hbAorZW50aXRpZXMgc2hvdWxkIHVzZSB2YWxpZGF0aW5nIFhNTCBwcm9jZXNzb3JzLjwvcD4KKzwvZGl2Mj4KKzwvZGl2MT4KKworPGRpdjEgaWQ9J3NlYy1ub3RhdGlvbic+Cis8aGVhZD5Ob3RhdGlvbjwvaGVhZD4KKyAKKzxwPlRoZSBmb3JtYWwgZ3JhbW1hciBvZiBYTUwgaXMgZ2l2ZW4gaW4gdGhpcyBzcGVjaWZpY2F0aW9uIHVzaW5nIGEgc2ltcGxlCitFeHRlbmRlZCBCYWNrdXMtTmF1ciBGb3JtIChFQk5GKSBub3RhdGlvbi4gIEVhY2ggcnVsZSBpbiB0aGUgZ3JhbW1hciBkZWZpbmVzCitvbmUgc3ltYm9sLCBpbiB0aGUgZm9ybQorPGVnPnN5bWJvbCA6Oj0gZXhwcmVzc2lvbjwvZWc+PC9wPgorPHA+U3ltYm9scyBhcmUgd3JpdHRlbiB3aXRoIGFuIGluaXRpYWwgY2FwaXRhbCBsZXR0ZXIgaWYgdGhleSBhcmUKK2RlZmluZWQgYnkgYSByZWd1bGFyIGV4cHJlc3Npb24sIG9yIHdpdGggYW4gaW5pdGlhbCBsb3dlciBjYXNlIGxldHRlciAKK290aGVyd2lzZS4KK0xpdGVyYWwgc3RyaW5ncyBhcmUgcXVvdGVkLgorCis8L3A+CisKKzxwPldpdGhpbiB0aGUgZXhwcmVzc2lvbiBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mIGEgcnVsZSwgdGhlIGZvbGxvd2luZworZXhwcmVzc2lvbnMgYXJlIHVzZWQgdG8gbWF0Y2ggc3RyaW5ncyBvZiBvbmUgb3IgbW9yZSBjaGFyYWN0ZXJzOgorPGdsaXN0PgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPiN4TjwvY29kZT48L2xhYmVsPgorPGRlZj48cD53aGVyZSA8Y29kZT5OPC9jb2RlPiBpcyBhIGhleGFkZWNpbWFsIGludGVnZXIsIHRoZQorZXhwcmVzc2lvbiBtYXRjaGVzIHRoZSBjaGFyYWN0ZXIgaW4gSVNPL0lFQyAxMDY0NiB3aG9zZSBjYW5vbmljYWwKKyhVQ1MtNCkgCitjb2RlIHZhbHVlLCB3aGVuIGludGVycHJldGVkIGFzIGFuIHVuc2lnbmVkIGJpbmFyeSBudW1iZXIsIGhhcwordGhlIHZhbHVlIGluZGljYXRlZC4gIFRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcyBpbiB0aGUKKzxjb2RlPiN4TjwvY29kZT4gZm9ybSBpcyBpbnNpZ25pZmljYW50OyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcKK3plcm9zIGluIHRoZSBjb3JyZXNwb25kaW5nIGNvZGUgdmFsdWUgCitpcyBnb3Zlcm5lZCBieSB0aGUgY2hhcmFjdGVyCitlbmNvZGluZyBpbiB1c2UgYW5kIGlzIG5vdCBzaWduaWZpY2FudCBmb3IgWE1MLjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+W2EtekEtWl08L2NvZGU+LCA8Y29kZT5bI3hOLSN4Tl08L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyBhbnkgPHRlcm1yZWYgZGVmPSdkdC1jaGFyYWN0ZXInPmNoYXJhY3RlcjwvdGVybXJlZj4gCit3aXRoIGEgdmFsdWUgaW4gdGhlIHJhbmdlKHMpIGluZGljYXRlZCAoaW5jbHVzaXZlKS48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPlteYS16XTwvY29kZT4sIDxjb2RlPlteI3hOLSN4Tl08L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyBhbnkgPHRlcm1yZWYgZGVmPSdkdC1jaGFyYWN0ZXInPmNoYXJhY3RlcjwvdGVybXJlZj4gCit3aXRoIGEgdmFsdWUgPGVtcGg+b3V0c2lkZTwvZW1waD4gdGhlCityYW5nZSBpbmRpY2F0ZWQuPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5bXmFiY108L2NvZGU+LCA8Y29kZT5bXiN4TiN4TiN4Tl08L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyBhbnkgPHRlcm1yZWYgZGVmPSdkdC1jaGFyYWN0ZXInPmNoYXJhY3RlcjwvdGVybXJlZj4KK3dpdGggYSB2YWx1ZSBub3QgYW1vbmcgdGhlIGNoYXJhY3RlcnMgZ2l2ZW4uPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT4ic3RyaW5nIjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIGEgbGl0ZXJhbCBzdHJpbmcgPHRlcm1yZWYgZGVmPSJkdC1tYXRjaCI+bWF0Y2hpbmc8L3Rlcm1yZWY+Cit0aGF0IGdpdmVuIGluc2lkZSB0aGUgZG91YmxlIHF1b3Rlcy48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPidzdHJpbmcnPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYSBsaXRlcmFsIHN0cmluZyA8dGVybXJlZiBkZWY9ImR0LW1hdGNoIj5tYXRjaGluZzwvdGVybXJlZj4KK3RoYXQgZ2l2ZW4gaW5zaWRlIHRoZSBzaW5nbGUgcXVvdGVzLjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8L2dsaXN0PgorVGhlc2Ugc3ltYm9scyBtYXkgYmUgY29tYmluZWQgdG8gbWF0Y2ggbW9yZSBjb21wbGV4IHBhdHRlcm5zIGFzIGZvbGxvd3MsCit3aGVyZSA8Y29kZT5BPC9jb2RlPiBhbmQgPGNvZGU+QjwvY29kZT4gcmVwcmVzZW50IHNpbXBsZSBleHByZXNzaW9uczoKKzxnbGlzdD4KKzxnaXRlbT4KKzxsYWJlbD4oPGNvZGU+ZXhwcmVzc2lvbjwvY29kZT4pPC9sYWJlbD4KKzxkZWY+PHA+PGNvZGU+ZXhwcmVzc2lvbjwvY29kZT4gaXMgdHJlYXRlZCBhcyBhIHVuaXQgCithbmQgbWF5IGJlIGNvbWJpbmVkIGFzIGRlc2NyaWJlZCBpbiB0aGlzIGxpc3QuPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5BPzwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIDxjb2RlPkE8L2NvZGU+IG9yIG5vdGhpbmc7IG9wdGlvbmFsIDxjb2RlPkE8L2NvZGU+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+QSBCPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgPGNvZGU+QTwvY29kZT4gZm9sbG93ZWQgYnkgPGNvZGU+QjwvY29kZT4uPC9wPjwvZGVmPgorPC9naXRlbT4KKzxnaXRlbT4KKzxsYWJlbD48Y29kZT5BIHwgQjwvY29kZT48L2xhYmVsPgorPGRlZj48cD5tYXRjaGVzIDxjb2RlPkE8L2NvZGU+IG9yIDxjb2RlPkI8L2NvZGU+IGJ1dCBub3QgYm90aC48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPkEgLSBCPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgYW55IHN0cmluZyB0aGF0IG1hdGNoZXMgPGNvZGU+QTwvY29kZT4gYnV0IGRvZXMgbm90IG1hdGNoCis8Y29kZT5CPC9jb2RlPi4KKzwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+QSs8L2NvZGU+PC9sYWJlbD4KKzxkZWY+PHA+bWF0Y2hlcyBvbmUgb3IgbW9yZSBvY2N1cnJlbmNlcyBvZiA8Y29kZT5BPC9jb2RlPi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPkEqPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPm1hdGNoZXMgemVybyBvciBtb3JlIG9jY3VycmVuY2VzIG9mIDxjb2RlPkE8L2NvZGU+LjwvcD48L2RlZj4KKzwvZ2l0ZW0+CisKKzwvZ2xpc3Q+CitPdGhlciBub3RhdGlvbnMgdXNlZCBpbiB0aGUgcHJvZHVjdGlvbnMgYXJlOgorPGdsaXN0PgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPi8qIC4uLiAqLzwvY29kZT48L2xhYmVsPgorPGRlZj48cD5jb21tZW50LjwvcD48L2RlZj4KKzwvZ2l0ZW0+Cis8Z2l0ZW0+Cis8bGFiZWw+PGNvZGU+WyB3ZmM6IC4uLiBdPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPndlbGwtZm9ybWVkbmVzcyBjb25zdHJhaW50OyB0aGlzIGlkZW50aWZpZXMgYnkgbmFtZSBhIAorY29uc3RyYWludCBvbiAKKzx0ZXJtcmVmIGRlZj0iZHQtd2VsbGZvcm1lZCI+d2VsbC1mb3JtZWQ8L3Rlcm1yZWY+IGRvY3VtZW50cworYXNzb2NpYXRlZCB3aXRoIGEgcHJvZHVjdGlvbi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPGdpdGVtPgorPGxhYmVsPjxjb2RlPlsgdmM6IC4uLiBdPC9jb2RlPjwvbGFiZWw+Cis8ZGVmPjxwPnZhbGlkaXR5IGNvbnN0cmFpbnQ7IHRoaXMgaWRlbnRpZmllcyBieSBuYW1lIGEgY29uc3RyYWludCBvbgorPHRlcm1yZWYgZGVmPSJkdC12YWxpZCI+dmFsaWQ8L3Rlcm1yZWY+IGRvY3VtZW50cyBhc3NvY2lhdGVkIHdpdGgKK2EgcHJvZHVjdGlvbi48L3A+PC9kZWY+Cis8L2dpdGVtPgorPC9nbGlzdD4KKzwvcD48L2RpdjE+CisKKzwvYm9keT4KKzxiYWNrPgorPCEtLSAmU0dNTDsgLS0+CisgCisKKzwhLS0gJkJpYmxpbzsgLS0+Cis8ZGl2MSBpZD0nc2VjLWJpYmxpb2dyYXBoeSc+CisKKzxoZWFkPlJlZmVyZW5jZXM8L2hlYWQ+Cis8ZGl2MiBpZD0nc2VjLWV4aXN0aW5nLXN0ZHMnPgorPGhlYWQ+Tm9ybWF0aXZlIFJlZmVyZW5jZXM8L2hlYWQ+CisKKzxibGlzdD4KKzxiaWJsIGlkPSdJQU5BJyBrZXk9J0lBTkEnPgorKEludGVybmV0IEFzc2lnbmVkIE51bWJlcnMgQXV0aG9yaXR5KSA8ZW1waD5PZmZpY2lhbCBOYW1lcyBmb3IgCitDaGFyYWN0ZXIgU2V0czwvZW1waD4sCitlZC4gS2VsZCBTaW1vbnNlbiBldCBhbC4KK1NlZSA8bG9jIGhyZWY9J2Z0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL2lhbmEvYXNzaWdubWVudHMvY2hhcmFjdGVyLXNldHMnPmZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL2lhbmEvYXNzaWdubWVudHMvY2hhcmFjdGVyLXNldHM8L2xvYz4uCis8L2JpYmw+CisKKzxiaWJsIGlkPSdSRkMxNzY2JyBrZXk9J0lFVEYgUkZDIDE3NjYnPgorSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSkuCis8ZW1waD5SRkMgMTc2NjogIFRhZ3MgZm9yIHRoZSBJZGVudGlmaWNhdGlvbiBvZiBMYW5ndWFnZXM8L2VtcGg+LAorZWQuIEguIEFsdmVzdHJhbmQuCisxOTk1LgorPC9iaWJsPgorCis8YmlibCBpZD0nSVNPNjM5JyBrZXk9J0lTTyA2MzknPgorKEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24pLgorPGVtcGg+SVNPIDYzOToxOTg4IChFKS4KK0NvZGUgZm9yIHRoZSByZXByZXNlbnRhdGlvbiBvZiBuYW1lcyBvZiBsYW5ndWFnZXMuPC9lbXBoPgorW0dlbmV2YV06ICBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IKK1N0YW5kYXJkaXphdGlvbiwgMTk4OC48L2JpYmw+CisKKzxiaWJsIGlkPSdJU08zMTY2JyBrZXk9J0lTTyAzMTY2Jz4KKyhJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKS4KKzxlbXBoPklTTyAzMTY2LTE6MTk5NyAoRSkuCitDb2RlcyBmb3IgdGhlIHJlcHJlc2VudGF0aW9uIG9mIG5hbWVzIG9mIGNvdW50cmllcyBhbmQgdGhlaXIgc3ViZGl2aXNpb25zIAorJm1kYXNoOyBQYXJ0IDE6IENvdW50cnkgY29kZXM8L2VtcGg+CitbR2VuZXZhXTogIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvcgorU3RhbmRhcmRpemF0aW9uLCAxOTk3LjwvYmlibD4KKworPGJpYmwgaWQ9J0lTTzEwNjQ2JyBrZXk9J0lTTy9JRUMgMTA2NDYnPklTTworKEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24pLgorPGVtcGg+SVNPL0lFQyAxMDY0Ni0xOTkzIChFKS4gIEluZm9ybWF0aW9uIHRlY2hub2xvZ3kgJm1kYXNoOyBVbml2ZXJzYWwKK011bHRpcGxlLU9jdGV0IENvZGVkIENoYXJhY3RlciBTZXQgKFVDUykgJm1kYXNoOyBQYXJ0IDE6CitBcmNoaXRlY3R1cmUgYW5kIEJhc2ljIE11bHRpbGluZ3VhbCBQbGFuZS48L2VtcGg+CitbR2VuZXZhXTogIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvcgorU3RhbmRhcmRpemF0aW9uLCAxOTkzIChwbHVzIGFtZW5kbWVudHMgQU0gMSB0aHJvdWdoIEFNIDcpLgorPC9iaWJsPgorCis8YmlibCBpZD0nVW5pY29kZScga2V5PSdVbmljb2RlJz5UaGUgVW5pY29kZSBDb25zb3J0aXVtLgorPGVtcGg+VGhlIFVuaWNvZGUgU3RhbmRhcmQsIFZlcnNpb24gMi4wLjwvZW1waD4KK1JlYWRpbmcsIE1hc3MuOiAgQWRkaXNvbi1XZXNsZXkgRGV2ZWxvcGVycyBQcmVzcywgMTk5Ni48L2JpYmw+CisKKzwvYmxpc3Q+CisKKzwvZGl2Mj4KKworPGRpdjI+PGhlYWQ+T3RoZXIgUmVmZXJlbmNlczwvaGVhZD4gCisKKzxibGlzdD4KKworPGJpYmwgaWQ9J0Fobycga2V5PSdBaG8vVWxsbWFuJz5BaG8sIEFsZnJlZCBWLiwgCitSYXZpIFNldGhpLCBhbmQgSmVmZnJleSBELiBVbGxtYW4uCis8ZW1waD5Db21waWxlcnM6ICBQcmluY2lwbGVzLCBUZWNobmlxdWVzLCBhbmQgVG9vbHM8L2VtcGg+LgorUmVhZGluZzogIEFkZGlzb24tV2VzbGV5LCAxOTg2LCBycHQuIGNvcnIuIDE5ODguPC9iaWJsPgorCis8YmlibCBpZD0iQmVybmVycy1MZWUiIHhtbC1saW5rPSJzaW1wbGUiIGtleT0iQmVybmVycy1MZWUgZXQgYWwuIj4KK0Jlcm5lcnMtTGVlLCBULiwgUi4gRmllbGRpbmcsIGFuZCBMLiBNYXNpbnRlci4KKzxlbXBoPlVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcnMgKFVSSSk6ICBHZW5lcmljIFN5bnRheCBhbmQKK1NlbWFudGljczwvZW1waD4uCisxOTk3LgorKFdvcmsgaW4gcHJvZ3Jlc3M7IHNlZSB1cGRhdGVzIHRvIFJGQzE3MzguKTwvYmlibD4KKworPGJpYmwgaWQ9J0FCSycga2V5PSdCcvxnZ2VtYW5uLUtsZWluJz5CcvxnZ2VtYW5uLUtsZWluLCBBbm5lLgorPGVtcGg+UmVndWxhciBFeHByZXNzaW9ucyBpbnRvIEZpbml0ZSBBdXRvbWF0YTwvZW1waD4uCitFeHRlbmRlZCBhYnN0cmFjdCBpbiBJLiBTaW1vbiwgSHJzZy4sIExBVElOIDE5OTIsIAorUy4gOTctOTguIFNwcmluZ2VyLVZlcmxhZywgQmVybGluIDE5OTIuIAorRnVsbCBWZXJzaW9uIGluIFRoZW9yZXRpY2FsIENvbXB1dGVyIFNjaWVuY2UgMTIwOiAxOTctMjEzLCAxOTkzLgorCis8L2JpYmw+CisKKzxiaWJsIGlkPSdBQktEVycga2V5PSdCcvxnZ2VtYW5uLUtsZWluIGFuZCBXb29kJz5CcvxnZ2VtYW5uLUtsZWluLCBBbm5lLAorYW5kIERlcmljayBXb29kLgorPGVtcGg+RGV0ZXJtaW5pc3RpYyBSZWd1bGFyIExhbmd1YWdlczwvZW1waD4uCitVbml2ZXJzaXTkdCBGcmVpYnVyZywgSW5zdGl0dXQgZvxyIEluZm9ybWF0aWssCitCZXJpY2h0IDM4LCBPa3RvYmVyIDE5OTEuCis8L2JpYmw+CisKKzxiaWJsIGlkPSdDbGFyaycga2V5PSdDbGFyayc+SmFtZXMgQ2xhcmsuCitDb21wYXJpc29uIG9mIFNHTUwgYW5kIFhNTC4gU2VlCis8bG9jIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL05PVEUtc2dtbC14bWwtOTcxMjE1Jz5odHRwOi8vd3d3LnczLm9yZy9UUi9OT1RFLXNnbWwteG1sLTk3MTIxNTwvbG9jPi4KKzwvYmlibD4KKzxiaWJsIGlkPSJSRkMxNzM4IiB4bWwtbGluaz0ic2ltcGxlIiBrZXk9IklFVEYgUkZDMTczOCI+CitJRVRGIChJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmNlKS4KKzxlbXBoPlJGQyAxNzM4OiAgVW5pZm9ybSBSZXNvdXJjZSBMb2NhdG9ycyAoVVJMKTwvZW1waD4sIAorZWQuIFQuIEJlcm5lcnMtTGVlLCBMLiBNYXNpbnRlciwgTS4gTWNDYWhpbGwuCisxOTk0LgorPC9iaWJsPgorCis8YmlibCBpZD0iUkZDMTgwOCIgeG1sLWxpbms9InNpbXBsZSIga2V5PSJJRVRGIFJGQzE4MDgiPgorSUVURiAoSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZSkuCis8ZW1waD5SRkMgMTgwODogIFJlbGF0aXZlIFVuaWZvcm0gUmVzb3VyY2UgTG9jYXRvcnM8L2VtcGg+LCAKK2VkLiBSLiBGaWVsZGluZy4KKzE5OTUuCis8L2JpYmw+CisKKzxiaWJsIGlkPSJSRkMyMTQxIiB4bWwtbGluaz0ic2ltcGxlIiBrZXk9IklFVEYgUkZDMjE0MSI+CitJRVRGIChJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmNlKS4KKzxlbXBoPlJGQyAyMTQxOiAgVVJOIFN5bnRheDwvZW1waD4sIAorZWQuIFIuIE1vYXRzLgorMTk5Ny4KKzwvYmlibD4KKworPGJpYmwgaWQ9J0lTTzg4NzknIGtleT0nSVNPIDg4NzknPklTTworKEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24pLgorPGVtcGg+SVNPIDg4Nzk6MTk4NihFKS4gIEluZm9ybWF0aW9uIHByb2Nlc3NpbmcgJm1kYXNoOyBUZXh0IGFuZCBPZmZpY2UKK1N5c3RlbXMgJm1kYXNoOyBTdGFuZGFyZCBHZW5lcmFsaXplZCBNYXJrdXAgTGFuZ3VhZ2UgKFNHTUwpLjwvZW1waD4gIEZpcnN0CitlZGl0aW9uICZtZGFzaDsgMTk4Ni0xMC0xNS4gIFtHZW5ldmFdOiAgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yCitTdGFuZGFyZGl6YXRpb24sIDE5ODYuCis8L2JpYmw+CisKKworPGJpYmwgaWQ9J0lTTzEwNzQ0JyBrZXk9J0lTTy9JRUMgMTA3NDQnPklTTworKEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24pLgorPGVtcGg+SVNPL0lFQyAxMDc0NC0xOTkyIChFKS4gIEluZm9ybWF0aW9uIHRlY2hub2xvZ3kgJm1kYXNoOworSHlwZXJtZWRpYS9UaW1lLWJhc2VkIFN0cnVjdHVyaW5nIExhbmd1YWdlIChIeVRpbWUpLgorPC9lbXBoPgorW0dlbmV2YV06ICBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IKK1N0YW5kYXJkaXphdGlvbiwgMTk5Mi4KKzxlbXBoPkV4dGVuZGVkIEZhY2lsaXRpZXMgQW5uZXhlLjwvZW1waD4KK1tHZW5ldmFdOiAgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yCitTdGFuZGFyZGl6YXRpb24sIDE5OTYuIAorPC9iaWJsPgorCisKKworPC9ibGlzdD4KKzwvZGl2Mj4KKzwvZGl2MT4KKzxkaXYxIGlkPSdDaGFyQ2xhc3Nlcyc+Cis8aGVhZD5DaGFyYWN0ZXIgQ2xhc3NlczwvaGVhZD4KKzxwPkZvbGxvd2luZyB0aGUgY2hhcmFjdGVyaXN0aWNzIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgc3RhbmRhcmQsCitjaGFyYWN0ZXJzIGFyZSBjbGFzc2VkIGFzIGJhc2UgY2hhcmFjdGVycyAoYW1vbmcgb3RoZXJzLCB0aGVzZQorY29udGFpbiB0aGUgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIG9mIHRoZSBMYXRpbiBhbHBoYWJldCwgd2l0aG91dAorZGlhY3JpdGljcyksIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFuZCBjb21iaW5pbmcgY2hhcmFjdGVycyAoYW1vbmcKK290aGVycywgdGhpcyBjbGFzcyBjb250YWlucyBtb3N0IGRpYWNyaXRpY3MpOyB0aGVzZSBjbGFzc2VzIGNvbWJpbmUKK3RvIGZvcm0gdGhlIGNsYXNzIG9mIGxldHRlcnMuICBEaWdpdHMgYW5kIGV4dGVuZGVycyBhcmUKK2Fsc28gZGlzdGluZ3Vpc2hlZC4KKzxzY3JhcCBsYW5nPSJlYm5mIiBpZD0iQ0hBUkFDVEVSUyI+Cis8aGVhZD5DaGFyYWN0ZXJzPC9oZWFkPgorPHByb2Rncm91cCBwY3czPSIzIiBwY3c0PSIxNSI+Cis8cHJvZCBpZD0iTlQtTGV0dGVyIj48bGhzPkxldHRlcjwvbGhzPgorPHJocz48bnQgZGVmPSJOVC1CYXNlQ2hhciI+QmFzZUNoYXI8L250PiAKK3wgPG50IGRlZj0iTlQtSWRlb2dyYXBoaWMiPklkZW9ncmFwaGljPC9udD48L3Jocz4gPC9wcm9kPgorPHByb2QgaWQ9J05ULUJhc2VDaGFyJz48bGhzPkJhc2VDaGFyPC9saHM+Cis8cmhzPlsjeDAwNDEtI3gwMDVBXQorfCZuYnNwO1sjeDAwNjEtI3gwMDdBXQorfCZuYnNwO1sjeDAwQzAtI3gwMEQ2XQorfCZuYnNwO1sjeDAwRDgtI3gwMEY2XQorfCZuYnNwO1sjeDAwRjgtI3gwMEZGXQorfCZuYnNwO1sjeDAxMDAtI3gwMTMxXQorfCZuYnNwO1sjeDAxMzQtI3gwMTNFXQorfCZuYnNwO1sjeDAxNDEtI3gwMTQ4XQorfCZuYnNwO1sjeDAxNEEtI3gwMTdFXQorfCZuYnNwO1sjeDAxODAtI3gwMUMzXQorfCZuYnNwO1sjeDAxQ0QtI3gwMUYwXQorfCZuYnNwO1sjeDAxRjQtI3gwMUY1XQorfCZuYnNwO1sjeDAxRkEtI3gwMjE3XQorfCZuYnNwO1sjeDAyNTAtI3gwMkE4XQorfCZuYnNwO1sjeDAyQkItI3gwMkMxXQorfCZuYnNwOyN4MDM4NgorfCZuYnNwO1sjeDAzODgtI3gwMzhBXQorfCZuYnNwOyN4MDM4QworfCZuYnNwO1sjeDAzOEUtI3gwM0ExXQorfCZuYnNwO1sjeDAzQTMtI3gwM0NFXQorfCZuYnNwO1sjeDAzRDAtI3gwM0Q2XQorfCZuYnNwOyN4MDNEQQorfCZuYnNwOyN4MDNEQworfCZuYnNwOyN4MDNERQorfCZuYnNwOyN4MDNFMAorfCZuYnNwO1sjeDAzRTItI3gwM0YzXQorfCZuYnNwO1sjeDA0MDEtI3gwNDBDXQorfCZuYnNwO1sjeDA0MEUtI3gwNDRGXQorfCZuYnNwO1sjeDA0NTEtI3gwNDVDXQorfCZuYnNwO1sjeDA0NUUtI3gwNDgxXQorfCZuYnNwO1sjeDA0OTAtI3gwNEM0XQorfCZuYnNwO1sjeDA0QzctI3gwNEM4XQorfCZuYnNwO1sjeDA0Q0ItI3gwNENDXQorfCZuYnNwO1sjeDA0RDAtI3gwNEVCXQorfCZuYnNwO1sjeDA0RUUtI3gwNEY1XQorfCZuYnNwO1sjeDA0RjgtI3gwNEY5XQorfCZuYnNwO1sjeDA1MzEtI3gwNTU2XQorfCZuYnNwOyN4MDU1OQorfCZuYnNwO1sjeDA1NjEtI3gwNTg2XQorfCZuYnNwO1sjeDA1RDAtI3gwNUVBXQorfCZuYnNwO1sjeDA1RjAtI3gwNUYyXQorfCZuYnNwO1sjeDA2MjEtI3gwNjNBXQorfCZuYnNwO1sjeDA2NDEtI3gwNjRBXQorfCZuYnNwO1sjeDA2NzEtI3gwNkI3XQorfCZuYnNwO1sjeDA2QkEtI3gwNkJFXQorfCZuYnNwO1sjeDA2QzAtI3gwNkNFXQorfCZuYnNwO1sjeDA2RDAtI3gwNkQzXQorfCZuYnNwOyN4MDZENQorfCZuYnNwO1sjeDA2RTUtI3gwNkU2XQorfCZuYnNwO1sjeDA5MDUtI3gwOTM5XQorfCZuYnNwOyN4MDkzRAorfCZuYnNwO1sjeDA5NTgtI3gwOTYxXQorfCZuYnNwO1sjeDA5ODUtI3gwOThDXQorfCZuYnNwO1sjeDA5OEYtI3gwOTkwXQorfCZuYnNwO1sjeDA5OTMtI3gwOUE4XQorfCZuYnNwO1sjeDA5QUEtI3gwOUIwXQorfCZuYnNwOyN4MDlCMgorfCZuYnNwO1sjeDA5QjYtI3gwOUI5XQorfCZuYnNwO1sjeDA5REMtI3gwOUREXQorfCZuYnNwO1sjeDA5REYtI3gwOUUxXQorfCZuYnNwO1sjeDA5RjAtI3gwOUYxXQorfCZuYnNwO1sjeDBBMDUtI3gwQTBBXQorfCZuYnNwO1sjeDBBMEYtI3gwQTEwXQorfCZuYnNwO1sjeDBBMTMtI3gwQTI4XQorfCZuYnNwO1sjeDBBMkEtI3gwQTMwXQorfCZuYnNwO1sjeDBBMzItI3gwQTMzXQorfCZuYnNwO1sjeDBBMzUtI3gwQTM2XQorfCZuYnNwO1sjeDBBMzgtI3gwQTM5XQorfCZuYnNwO1sjeDBBNTktI3gwQTVDXQorfCZuYnNwOyN4MEE1RQorfCZuYnNwO1sjeDBBNzItI3gwQTc0XQorfCZuYnNwO1sjeDBBODUtI3gwQThCXQorfCZuYnNwOyN4MEE4RAorfCZuYnNwO1sjeDBBOEYtI3gwQTkxXQorfCZuYnNwO1sjeDBBOTMtI3gwQUE4XQorfCZuYnNwO1sjeDBBQUEtI3gwQUIwXQorfCZuYnNwO1sjeDBBQjItI3gwQUIzXQorfCZuYnNwO1sjeDBBQjUtI3gwQUI5XQorfCZuYnNwOyN4MEFCRAorfCZuYnNwOyN4MEFFMAorfCZuYnNwO1sjeDBCMDUtI3gwQjBDXQorfCZuYnNwO1sjeDBCMEYtI3gwQjEwXQorfCZuYnNwO1sjeDBCMTMtI3gwQjI4XQorfCZuYnNwO1sjeDBCMkEtI3gwQjMwXQorfCZuYnNwO1sjeDBCMzItI3gwQjMzXQorfCZuYnNwO1sjeDBCMzYtI3gwQjM5XQorfCZuYnNwOyN4MEIzRAorfCZuYnNwO1sjeDBCNUMtI3gwQjVEXQorfCZuYnNwO1sjeDBCNUYtI3gwQjYxXQorfCZuYnNwO1sjeDBCODUtI3gwQjhBXQorfCZuYnNwO1sjeDBCOEUtI3gwQjkwXQorfCZuYnNwO1sjeDBCOTItI3gwQjk1XQorfCZuYnNwO1sjeDBCOTktI3gwQjlBXQorfCZuYnNwOyN4MEI5QworfCZuYnNwO1sjeDBCOUUtI3gwQjlGXQorfCZuYnNwO1sjeDBCQTMtI3gwQkE0XQorfCZuYnNwO1sjeDBCQTgtI3gwQkFBXQorfCZuYnNwO1sjeDBCQUUtI3gwQkI1XQorfCZuYnNwO1sjeDBCQjctI3gwQkI5XQorfCZuYnNwO1sjeDBDMDUtI3gwQzBDXQorfCZuYnNwO1sjeDBDMEUtI3gwQzEwXQorfCZuYnNwO1sjeDBDMTItI3gwQzI4XQorfCZuYnNwO1sjeDBDMkEtI3gwQzMzXQorfCZuYnNwO1sjeDBDMzUtI3gwQzM5XQorfCZuYnNwO1sjeDBDNjAtI3gwQzYxXQorfCZuYnNwO1sjeDBDODUtI3gwQzhDXQorfCZuYnNwO1sjeDBDOEUtI3gwQzkwXQorfCZuYnNwO1sjeDBDOTItI3gwQ0E4XQorfCZuYnNwO1sjeDBDQUEtI3gwQ0IzXQorfCZuYnNwO1sjeDBDQjUtI3gwQ0I5XQorfCZuYnNwOyN4MENERQorfCZuYnNwO1sjeDBDRTAtI3gwQ0UxXQorfCZuYnNwO1sjeDBEMDUtI3gwRDBDXQorfCZuYnNwO1sjeDBEMEUtI3gwRDEwXQorfCZuYnNwO1sjeDBEMTItI3gwRDI4XQorfCZuYnNwO1sjeDBEMkEtI3gwRDM5XQorfCZuYnNwO1sjeDBENjAtI3gwRDYxXQorfCZuYnNwO1sjeDBFMDEtI3gwRTJFXQorfCZuYnNwOyN4MEUzMAorfCZuYnNwO1sjeDBFMzItI3gwRTMzXQorfCZuYnNwO1sjeDBFNDAtI3gwRTQ1XQorfCZuYnNwO1sjeDBFODEtI3gwRTgyXQorfCZuYnNwOyN4MEU4NAorfCZuYnNwO1sjeDBFODctI3gwRTg4XQorfCZuYnNwOyN4MEU4QQorfCZuYnNwOyN4MEU4RAorfCZuYnNwO1sjeDBFOTQtI3gwRTk3XQorfCZuYnNwO1sjeDBFOTktI3gwRTlGXQorfCZuYnNwO1sjeDBFQTEtI3gwRUEzXQorfCZuYnNwOyN4MEVBNQorfCZuYnNwOyN4MEVBNworfCZuYnNwO1sjeDBFQUEtI3gwRUFCXQorfCZuYnNwO1sjeDBFQUQtI3gwRUFFXQorfCZuYnNwOyN4MEVCMAorfCZuYnNwO1sjeDBFQjItI3gwRUIzXQorfCZuYnNwOyN4MEVCRAorfCZuYnNwO1sjeDBFQzAtI3gwRUM0XQorfCZuYnNwO1sjeDBGNDAtI3gwRjQ3XQorfCZuYnNwO1sjeDBGNDktI3gwRjY5XQorfCZuYnNwO1sjeDEwQTAtI3gxMEM1XQorfCZuYnNwO1sjeDEwRDAtI3gxMEY2XQorfCZuYnNwOyN4MTEwMAorfCZuYnNwO1sjeDExMDItI3gxMTAzXQorfCZuYnNwO1sjeDExMDUtI3gxMTA3XQorfCZuYnNwOyN4MTEwOQorfCZuYnNwO1sjeDExMEItI3gxMTBDXQorfCZuYnNwO1sjeDExMEUtI3gxMTEyXQorfCZuYnNwOyN4MTEzQworfCZuYnNwOyN4MTEzRQorfCZuYnNwOyN4MTE0MAorfCZuYnNwOyN4MTE0QworfCZuYnNwOyN4MTE0RQorfCZuYnNwOyN4MTE1MAorfCZuYnNwO1sjeDExNTQtI3gxMTU1XQorfCZuYnNwOyN4MTE1OQorfCZuYnNwO1sjeDExNUYtI3gxMTYxXQorfCZuYnNwOyN4MTE2MworfCZuYnNwOyN4MTE2NQorfCZuYnNwOyN4MTE2NworfCZuYnNwOyN4MTE2OQorfCZuYnNwO1sjeDExNkQtI3gxMTZFXQorfCZuYnNwO1sjeDExNzItI3gxMTczXQorfCZuYnNwOyN4MTE3NQorfCZuYnNwOyN4MTE5RQorfCZuYnNwOyN4MTFBOAorfCZuYnNwOyN4MTFBQgorfCZuYnNwO1sjeDExQUUtI3gxMUFGXQorfCZuYnNwO1sjeDExQjctI3gxMUI4XQorfCZuYnNwOyN4MTFCQQorfCZuYnNwO1sjeDExQkMtI3gxMUMyXQorfCZuYnNwOyN4MTFFQgorfCZuYnNwOyN4MTFGMAorfCZuYnNwOyN4MTFGOQorfCZuYnNwO1sjeDFFMDAtI3gxRTlCXQorfCZuYnNwO1sjeDFFQTAtI3gxRUY5XQorfCZuYnNwO1sjeDFGMDAtI3gxRjE1XQorfCZuYnNwO1sjeDFGMTgtI3gxRjFEXQorfCZuYnNwO1sjeDFGMjAtI3gxRjQ1XQorfCZuYnNwO1sjeDFGNDgtI3gxRjREXQorfCZuYnNwO1sjeDFGNTAtI3gxRjU3XQorfCZuYnNwOyN4MUY1OQorfCZuYnNwOyN4MUY1QgorfCZuYnNwOyN4MUY1RAorfCZuYnNwO1sjeDFGNUYtI3gxRjdEXQorfCZuYnNwO1sjeDFGODAtI3gxRkI0XQorfCZuYnNwO1sjeDFGQjYtI3gxRkJDXQorfCZuYnNwOyN4MUZCRQorfCZuYnNwO1sjeDFGQzItI3gxRkM0XQorfCZuYnNwO1sjeDFGQzYtI3gxRkNDXQorfCZuYnNwO1sjeDFGRDAtI3gxRkQzXQorfCZuYnNwO1sjeDFGRDYtI3gxRkRCXQorfCZuYnNwO1sjeDFGRTAtI3gxRkVDXQorfCZuYnNwO1sjeDFGRjItI3gxRkY0XQorfCZuYnNwO1sjeDFGRjYtI3gxRkZDXQorfCZuYnNwOyN4MjEyNgorfCZuYnNwO1sjeDIxMkEtI3gyMTJCXQorfCZuYnNwOyN4MjEyRQorfCZuYnNwO1sjeDIxODAtI3gyMTgyXQorfCZuYnNwO1sjeDMwNDEtI3gzMDk0XQorfCZuYnNwO1sjeDMwQTEtI3gzMEZBXQorfCZuYnNwO1sjeDMxMDUtI3gzMTJDXQorfCZuYnNwO1sjeEFDMDAtI3hEN0EzXQorPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULUlkZW9ncmFwaGljJz48bGhzPklkZW9ncmFwaGljPC9saHM+Cis8cmhzPlsjeDRFMDAtI3g5RkE1XQorfCZuYnNwOyN4MzAwNworfCZuYnNwO1sjeDMwMjEtI3gzMDI5XQorPC9yaHM+PC9wcm9kPgorPHByb2QgaWQ9J05ULUNvbWJpbmluZ0NoYXInPjxsaHM+Q29tYmluaW5nQ2hhcjwvbGhzPgorPHJocz5bI3gwMzAwLSN4MDM0NV0KK3wmbmJzcDtbI3gwMzYwLSN4MDM2MV0KK3wmbmJzcDtbI3gwNDgzLSN4MDQ4Nl0KK3wmbmJzcDtbI3gwNTkxLSN4MDVBMV0KK3wmbmJzcDtbI3gwNUEzLSN4MDVCOV0KK3wmbmJzcDtbI3gwNUJCLSN4MDVCRF0KK3wmbmJzcDsjeDA1QkYKK3wmbmJzcDtbI3gwNUMxLSN4MDVDMl0KK3wmbmJzcDsjeDA1QzQKK3wmbmJzcDtbI3gwNjRCLSN4MDY1Ml0KK3wmbmJzcDsjeDA2NzAKK3wmbmJzcDtbI3gwNkQ2LSN4MDZEQ10KK3wmbmJzcDtbI3gwNkRELSN4MDZERl0KK3wmbmJzcDtbI3gwNkUwLSN4MDZFNF0KK3wmbmJzcDtbI3gwNkU3LSN4MDZFOF0KK3wmbmJzcDtbI3gwNkVBLSN4MDZFRF0KK3wmbmJzcDtbI3gwOTAxLSN4MDkwM10KK3wmbmJzcDsjeDA5M0MKK3wmbmJzcDtbI3gwOTNFLSN4MDk0Q10KK3wmbmJzcDsjeDA5NEQKK3wmbmJzcDtbI3gwOTUxLSN4MDk1NF0KK3wmbmJzcDtbI3gwOTYyLSN4MDk2M10KK3wmbmJzcDtbI3gwOTgxLSN4MDk4M10KK3wmbmJzcDsjeDA5QkMKK3wmbmJzcDsjeDA5QkUKK3wmbmJzcDsjeDA5QkYKK3wmbmJzcDtbI3gwOUMwLSN4MDlDNF0KK3wmbmJzcDtbI3gwOUM3LSN4MDlDOF0KK3wmbmJzcDtbI3gwOUNCLSN4MDlDRF0KK3wmbmJzcDsjeDA5RDcKK3wmbmJzcDtbI3gwOUUyLSN4MDlFM10KK3wmbmJzcDsjeDBBMDIKK3wmbmJzcDsjeDBBM0MKK3wmbmJzcDsjeDBBM0UKK3wmbmJzcDsjeDBBM0YKK3wmbmJzcDtbI3gwQTQwLSN4MEE0Ml0KK3wmbmJzcDtbI3gwQTQ3LSN4MEE0OF0KK3wmbmJzcDtbI3gwQTRCLSN4MEE0RF0KK3wmbmJzcDtbI3gwQTcwLSN4MEE3MV0KK3wmbmJzcDtbI3gwQTgxLSN4MEE4M10KK3wmbmJzcDsjeDBBQkMKK3wmbmJzcDtbI3gwQUJFLSN4MEFDNV0KK3wmbmJzcDtbI3gwQUM3LSN4MEFDOV0KK3wmbmJzcDtbI3gwQUNCLSN4MEFDRF0KK3wmbmJzcDtbI3gwQjAxLSN4MEIwM10KK3wmbmJzcDsjeDBCM0MKK3wmbmJzcDtbI3gwQjNFLSN4MEI0M10KK3wmbmJzcDtbI3gwQjQ3LSN4MEI0OF0KK3wmbmJzcDtbI3gwQjRCLSN4MEI0RF0KK3wmbmJzcDtbI3gwQjU2LSN4MEI1N10KK3wmbmJzcDtbI3gwQjgyLSN4MEI4M10KK3wmbmJzcDtbI3gwQkJFLSN4MEJDMl0KK3wmbmJzcDtbI3gwQkM2LSN4MEJDOF0KK3wmbmJzcDtbI3gwQkNBLSN4MEJDRF0KK3wmbmJzcDsjeDBCRDcKK3wmbmJzcDtbI3gwQzAxLSN4MEMwM10KK3wmbmJzcDtbI3gwQzNFLSN4MEM0NF0KK3wmbmJzcDtbI3gwQzQ2LSN4MEM0OF0KK3wmbmJzcDtbI3gwQzRBLSN4MEM0RF0KK3wmbmJzcDtbI3gwQzU1LSN4MEM1Nl0KK3wmbmJzcDtbI3gwQzgyLSN4MEM4M10KK3wmbmJzcDtbI3gwQ0JFLSN4MENDNF0KK3wmbmJzcDtbI3gwQ0M2LSN4MENDOF0KK3wmbmJzcDtbI3gwQ0NBLSN4MENDRF0KK3wmbmJzcDtbI3gwQ0Q1LSN4MENENl0KK3wmbmJzcDtbI3gwRDAyLSN4MEQwM10KK3wmbmJzcDtbI3gwRDNFLSN4MEQ0M10KK3wmbmJzcDtbI3gwRDQ2LSN4MEQ0OF0KK3wmbmJzcDtbI3gwRDRBLSN4MEQ0RF0KK3wmbmJzcDsjeDBENTcKK3wmbmJzcDsjeDBFMzEKK3wmbmJzcDtbI3gwRTM0LSN4MEUzQV0KK3wmbmJzcDtbI3gwRTQ3LSN4MEU0RV0KK3wmbmJzcDsjeDBFQjEKK3wmbmJzcDtbI3gwRUI0LSN4MEVCOV0KK3wmbmJzcDtbI3gwRUJCLSN4MEVCQ10KK3wmbmJzcDtbI3gwRUM4LSN4MEVDRF0KK3wmbmJzcDtbI3gwRjE4LSN4MEYxOV0KK3wmbmJzcDsjeDBGMzUKK3wmbmJzcDsjeDBGMzcKK3wmbmJzcDsjeDBGMzkKK3wmbmJzcDsjeDBGM0UKK3wmbmJzcDsjeDBGM0YKK3wmbmJzcDtbI3gwRjcxLSN4MEY4NF0KK3wmbmJzcDtbI3gwRjg2LSN4MEY4Ql0KK3wmbmJzcDtbI3gwRjkwLSN4MEY5NV0KK3wmbmJzcDsjeDBGOTcKK3wmbmJzcDtbI3gwRjk5LSN4MEZBRF0KK3wmbmJzcDtbI3gwRkIxLSN4MEZCN10KK3wmbmJzcDsjeDBGQjkKK3wmbmJzcDtbI3gyMEQwLSN4MjBEQ10KK3wmbmJzcDsjeDIwRTEKK3wmbmJzcDtbI3gzMDJBLSN4MzAyRl0KK3wmbmJzcDsjeDMwOTkKK3wmbmJzcDsjeDMwOUEKKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1EaWdpdCc+PGxocz5EaWdpdDwvbGhzPgorPHJocz5bI3gwMDMwLSN4MDAzOV0KK3wmbmJzcDtbI3gwNjYwLSN4MDY2OV0KK3wmbmJzcDtbI3gwNkYwLSN4MDZGOV0KK3wmbmJzcDtbI3gwOTY2LSN4MDk2Rl0KK3wmbmJzcDtbI3gwOUU2LSN4MDlFRl0KK3wmbmJzcDtbI3gwQTY2LSN4MEE2Rl0KK3wmbmJzcDtbI3gwQUU2LSN4MEFFRl0KK3wmbmJzcDtbI3gwQjY2LSN4MEI2Rl0KK3wmbmJzcDtbI3gwQkU3LSN4MEJFRl0KK3wmbmJzcDtbI3gwQzY2LSN4MEM2Rl0KK3wmbmJzcDtbI3gwQ0U2LSN4MENFRl0KK3wmbmJzcDtbI3gwRDY2LSN4MEQ2Rl0KK3wmbmJzcDtbI3gwRTUwLSN4MEU1OV0KK3wmbmJzcDtbI3gwRUQwLSN4MEVEOV0KK3wmbmJzcDtbI3gwRjIwLSN4MEYyOV0KKzwvcmhzPjwvcHJvZD4KKzxwcm9kIGlkPSdOVC1FeHRlbmRlcic+PGxocz5FeHRlbmRlcjwvbGhzPgorPHJocz4jeDAwQjcKK3wmbmJzcDsjeDAyRDAKK3wmbmJzcDsjeDAyRDEKK3wmbmJzcDsjeDAzODcKK3wmbmJzcDsjeDA2NDAKK3wmbmJzcDsjeDBFNDYKK3wmbmJzcDsjeDBFQzYKK3wmbmJzcDsjeDMwMDUKK3wmbmJzcDtbI3gzMDMxLSN4MzAzNV0KK3wmbmJzcDtbI3gzMDlELSN4MzA5RV0KK3wmbmJzcDtbI3gzMEZDLSN4MzBGRV0KKzwvcmhzPjwvcHJvZD4KKworPC9wcm9kZ3JvdXA+Cis8L3NjcmFwPgorPC9wPgorPHA+VGhlIGNoYXJhY3RlciBjbGFzc2VzIGRlZmluZWQgaGVyZSBjYW4gYmUgZGVyaXZlZCBmcm9tIHRoZQorVW5pY29kZSBjaGFyYWN0ZXIgZGF0YWJhc2UgYXMgZm9sbG93czoKKzx1bGlzdD4KKzxpdGVtPgorPHA+TmFtZSBzdGFydCBjaGFyYWN0ZXJzIG11c3QgaGF2ZSBvbmUgb2YgdGhlIGNhdGVnb3JpZXMgTGwsIEx1LAorTG8sIEx0LCBObC48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPk5hbWUgY2hhcmFjdGVycyBvdGhlciB0aGFuIE5hbWUtc3RhcnQgY2hhcmFjdGVycyAKK211c3QgaGF2ZSBvbmUgb2YgdGhlIGNhdGVnb3JpZXMgTWMsIE1lLCBNbiwgTG0sIG9yIE5kLjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+Q2hhcmFjdGVycyBpbiB0aGUgY29tcGF0aWJpbGl0eSBhcmVhIChpLmUuIHdpdGggY2hhcmFjdGVyIGNvZGUKK2dyZWF0ZXIgdGhhbiAjeEY5MDAgYW5kIGxlc3MgdGhhbiAjeEZGRkUpIGFyZSBub3QgYWxsb3dlZCBpbiBYTUwKK25hbWVzLjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+Q2hhcmFjdGVycyB3aGljaCBoYXZlIGEgZm9udCBvciBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gKGkuZS4gdGhvc2UKK3dpdGggYSAiY29tcGF0aWJpbGl0eSBmb3JtYXR0aW5nIHRhZyIgaW4gZmllbGQgNSBvZiB0aGUgZGF0YWJhc2UgLS0KK21hcmtlZCBieSBmaWVsZCA1IGJlZ2lubmluZyB3aXRoIGEgIiZsdDsiKSBhcmUgbm90IGFsbG93ZWQuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD5UaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgYXJlIHRyZWF0ZWQgYXMgbmFtZS1zdGFydCBjaGFyYWN0ZXJzCityYXRoZXIgdGhhbiBuYW1lIGNoYXJhY3RlcnMsIGJlY2F1c2UgdGhlIHByb3BlcnR5IGZpbGUgY2xhc3NpZmllcwordGhlbSBhcyBBbHBoYWJldGljOiAgWyN4MDJCQi0jeDAyQzFdLCAjeDA1NTksICN4MDZFNSwgI3gwNkU2LjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+Q2hhcmFjdGVycyAjeDIwREQtI3gyMEUwIGFyZSBleGNsdWRlZCAoaW4gYWNjb3JkYW5jZSB3aXRoIAorVW5pY29kZSwgc2VjdGlvbiA1LjE0KS48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlciAjeDAwQjcgaXMgY2xhc3NpZmllZCBhcyBhbiBleHRlbmRlciwgYmVjYXVzZSB0aGUKK3Byb3BlcnR5IGxpc3Qgc28gaWRlbnRpZmllcyBpdC48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlciAjeDAzODcgaXMgYWRkZWQgYXMgYSBuYW1lIGNoYXJhY3RlciwgYmVjYXVzZSAjeDAwQjcKK2lzIGl0cyBjYW5vbmljYWwgZXF1aXZhbGVudC48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPkNoYXJhY3RlcnMgJzonIGFuZCAnXycgYXJlIGFsbG93ZWQgYXMgbmFtZS1zdGFydCBjaGFyYWN0ZXJzLjwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+Q2hhcmFjdGVycyAnLScgYW5kICcuJyBhcmUgYWxsb3dlZCBhcyBuYW1lIGNoYXJhY3RlcnMuPC9wPgorPC9pdGVtPgorPC91bGlzdD4KKzwvcD4KKzwvZGl2MT4KKzxpbmZvcm0tZGl2MSBpZD0ic2VjLXhtbC1hbmQtc2dtbCI+Cis8aGVhZD5YTUwgYW5kIFNHTUw8L2hlYWQ+CisgCis8cD5YTUwgaXMgZGVzaWduZWQgdG8gYmUgYSBzdWJzZXQgb2YgU0dNTCwgaW4gdGhhdCBldmVyeQorPHRlcm1yZWYgZGVmPSJkdC12YWxpZCI+dmFsaWQ8L3Rlcm1yZWY+IFhNTCBkb2N1bWVudCBzaG91bGQgYWxzbyBiZSBhCitjb25mb3JtYW50IFNHTUwgZG9jdW1lbnQuCitGb3IgYSBkZXRhaWxlZCBjb21wYXJpc29uIG9mIHRoZSBhZGRpdGlvbmFsIHJlc3RyaWN0aW9ucyB0aGF0IFhNTCBwbGFjZXMgb24KK2RvY3VtZW50cyBiZXlvbmQgdGhvc2Ugb2YgU0dNTCwgc2VlIDxiaWJyZWYgcmVmPSdDbGFyaycvPi4KKzwvcD4KKzwvaW5mb3JtLWRpdjE+Cis8aW5mb3JtLWRpdjEgaWQ9InNlYy1lbnRleHBhbmQiPgorPGhlYWQ+RXhwYW5zaW9uIG9mIEVudGl0eSBhbmQgQ2hhcmFjdGVyIFJlZmVyZW5jZXM8L2hlYWQ+Cis8cD5UaGlzIGFwcGVuZGl4IGNvbnRhaW5zIHNvbWUgZXhhbXBsZXMgaWxsdXN0cmF0aW5nIHRoZQorc2VxdWVuY2Ugb2YgZW50aXR5LSBhbmQgY2hhcmFjdGVyLXJlZmVyZW5jZSByZWNvZ25pdGlvbiBhbmQKK2V4cGFuc2lvbiwgYXMgc3BlY2lmaWVkIGluIDxzcGVjcmVmIHJlZj0nZW50cHJvYycvPi48L3A+Cis8cD4KK0lmIHRoZSBEVEQgY29udGFpbnMgdGhlIGRlY2xhcmF0aW9uIAorPGVnPjwhW0NEQVRBWzwhRU5USVRZIGV4YW1wbGUgIjxwPkFuIGFtcGVyc2FuZCAoJiMzODsjMzg7KSBtYXkgYmUgZXNjYXBlZAorbnVtZXJpY2FsbHkgKCYjMzg7IzM4OyMzODspIG9yIHdpdGggYSBnZW5lcmFsIGVudGl0eQorKCZhbXA7YW1wOykuPC9wPiIgPgorXV0+PC9lZz4KK3RoZW4gdGhlIFhNTCBwcm9jZXNzb3Igd2lsbCByZWNvZ25pemUgdGhlIGNoYXJhY3RlciByZWZlcmVuY2VzIAord2hlbiBpdCBwYXJzZXMgdGhlIGVudGl0eSBkZWNsYXJhdGlvbiwgYW5kIHJlc29sdmUgdGhlbSBiZWZvcmUgCitzdG9yaW5nIHRoZSBmb2xsb3dpbmcgc3RyaW5nIGFzIHRoZQordmFsdWUgb2YgdGhlIGVudGl0eSAiPGNvZGU+ZXhhbXBsZTwvY29kZT4iOgorPGVnPjwhW0NEQVRBWzxwPkFuIGFtcGVyc2FuZCAoJiMzODspIG1heSBiZSBlc2NhcGVkCitudW1lcmljYWxseSAoJiMzODsjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKygmYW1wO2FtcDspLjwvcD4KK11dPjwvZWc+CitBIHJlZmVyZW5jZSBpbiB0aGUgZG9jdW1lbnQgdG8gIjxjb2RlPiZhbXA7ZXhhbXBsZTs8L2NvZGU+IiAKK3dpbGwgY2F1c2UgdGhlIHRleHQgdG8gYmUgcmVwYXJzZWQsIGF0IHdoaWNoIHRpbWUgdGhlIAorc3RhcnQtIGFuZCBlbmQtdGFncyBvZiB0aGUgIjxjb2RlPnA8L2NvZGU+IiBlbGVtZW50IHdpbGwgYmUgcmVjb2duaXplZCAKK2FuZCB0aGUgdGhyZWUgcmVmZXJlbmNlcyB3aWxsIGJlIHJlY29nbml6ZWQgYW5kIGV4cGFuZGVkLCAKK3Jlc3VsdGluZyBpbiBhICI8Y29kZT5wPC9jb2RlPiIgZWxlbWVudCB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVudAorKGFsbCBkYXRhLCBubyBkZWxpbWl0ZXJzIG9yIG1hcmt1cCk6Cis8ZWc+PCFbQ0RBVEFbQW4gYW1wZXJzYW5kICgmKSBtYXkgYmUgZXNjYXBlZAorbnVtZXJpY2FsbHkgKCYjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKygmYW1wOykuCitdXT48L2VnPgorPC9wPgorPHA+QSBtb3JlIGNvbXBsZXggZXhhbXBsZSB3aWxsIGlsbHVzdHJhdGUgdGhlIHJ1bGVzIGFuZCB0aGVpcgorZWZmZWN0cyBmdWxseS4gIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIGxpbmUgbnVtYmVycyBhcmUKK3NvbGVseSBmb3IgcmVmZXJlbmNlLgorPGVnPjwhW0NEQVRBWzEgPD94bWwgdmVyc2lvbj0nMS4wJz8+CisyIDwhRE9DVFlQRSB0ZXN0IFsKKzMgPCFFTEVNRU5UIHRlc3QgKCNQQ0RBVEEpID4KKzQgPCFFTlRJVFkgJSB4eCAnJiMzNzt6ejsnPgorNSA8IUVOVElUWSAlIHp6ICcmIzYwOyFFTlRJVFkgdHJpY2t5ICJlcnJvci1wcm9uZSIgPicgPgorNiAleHg7Cis3IF0+Cis4IDx0ZXN0PlRoaXMgc2FtcGxlIHNob3dzIGEgJnRyaWNreTsgbWV0aG9kLjwvdGVzdD4KK11dPjwvZWc+CitUaGlzIHByb2R1Y2VzIHRoZSBmb2xsb3dpbmc6Cis8dWxpc3Qgc3BhY2luZz0iY29tcGFjdCI+Cis8aXRlbT48cD5pbiBsaW5lIDQsIHRoZSByZWZlcmVuY2UgdG8gY2hhcmFjdGVyIDM3IGlzIGV4cGFuZGVkIGltbWVkaWF0ZWx5LAorYW5kIHRoZSBwYXJhbWV0ZXIgZW50aXR5ICI8Y29kZT54eDwvY29kZT4iIGlzIHN0b3JlZCBpbiB0aGUgc3ltYm9sCit0YWJsZSB3aXRoIHRoZSB2YWx1ZSAiPGNvZGU+JXp6OzwvY29kZT4iLiAgU2luY2UgdGhlIHJlcGxhY2VtZW50IHRleHQKK2lzIG5vdCByZXNjYW5uZWQsIHRoZSByZWZlcmVuY2UgdG8gcGFyYW1ldGVyIGVudGl0eSAiPGNvZGU+eno8L2NvZGU+IgoraXMgbm90IHJlY29nbml6ZWQuICAoQW5kIGl0IHdvdWxkIGJlIGFuIGVycm9yIGlmIGl0IHdlcmUsIHNpbmNlCisiPGNvZGU+eno8L2NvZGU+IiBpcyBub3QgeWV0IGRlY2xhcmVkLik8L3A+PC9pdGVtPgorPGl0ZW0+PHA+aW4gbGluZSA1LCB0aGUgY2hhcmFjdGVyIHJlZmVyZW5jZSAiPGNvZGU+JmFtcDsjNjA7PC9jb2RlPiIgaXMKK2V4cGFuZGVkIGltbWVkaWF0ZWx5IGFuZCB0aGUgcGFyYW1ldGVyIGVudGl0eSAiPGNvZGU+eno8L2NvZGU+IiBpcworc3RvcmVkIHdpdGggdGhlIHJlcGxhY2VtZW50IHRleHQgCisiPGNvZGU+Jmx0OyFFTlRJVFkgdHJpY2t5ICJlcnJvci1wcm9uZSIgPjwvY29kZT4iLAord2hpY2ggaXMgYSB3ZWxsLWZvcm1lZCBlbnRpdHkgZGVjbGFyYXRpb24uPC9wPjwvaXRlbT4KKzxpdGVtPjxwPmluIGxpbmUgNiwgdGhlIHJlZmVyZW5jZSB0byAiPGNvZGU+eHg8L2NvZGU+IiBpcyByZWNvZ25pemVkLAorYW5kIHRoZSByZXBsYWNlbWVudCB0ZXh0IG9mICI8Y29kZT54eDwvY29kZT4iIChuYW1lbHkgCisiPGNvZGU+JXp6OzwvY29kZT4iKSBpcyBwYXJzZWQuICBUaGUgcmVmZXJlbmNlIHRvICI8Y29kZT56ejwvY29kZT4iCitpcyByZWNvZ25pemVkIGluIGl0cyB0dXJuLCBhbmQgaXRzIHJlcGxhY2VtZW50IHRleHQgCisoIjxjb2RlPiZsdDshRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID48L2NvZGU+IikgaXMgcGFyc2VkLgorVGhlIGdlbmVyYWwgZW50aXR5ICI8Y29kZT50cmlja3k8L2NvZGU+IiBoYXMgbm93IGJlZW4KK2RlY2xhcmVkLCB3aXRoIHRoZSByZXBsYWNlbWVudCB0ZXh0ICI8Y29kZT5lcnJvci1wcm9uZTwvY29kZT4iLjwvcD48L2l0ZW0+Cis8aXRlbT48cD4KK2luIGxpbmUgOCwgdGhlIHJlZmVyZW5jZSB0byB0aGUgZ2VuZXJhbCBlbnRpdHkgIjxjb2RlPnRyaWNreTwvY29kZT4iIGlzCityZWNvZ25pemVkLCBhbmQgaXQgaXMgZXhwYW5kZWQsIHNvIHRoZSBmdWxsIGNvbnRlbnQgb2YgdGhlCisiPGNvZGU+dGVzdDwvY29kZT4iIGVsZW1lbnQgaXMgdGhlIHNlbGYtZGVzY3JpYmluZyAoYW5kIHVuZ3JhbW1hdGljYWwpIHN0cmluZworPGVtcGg+VGhpcyBzYW1wbGUgc2hvd3MgYSBlcnJvci1wcm9uZSBtZXRob2QuPC9lbXBoPgorPC9wPjwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8L2luZm9ybS1kaXYxPiAKKzxpbmZvcm0tZGl2MSBpZD0iZGV0ZXJtaW5pc20iPgorPGhlYWQ+RGV0ZXJtaW5pc3RpYyBDb250ZW50IE1vZGVsczwvaGVhZD4KKzxwPjx0ZXJtcmVmIGRlZj0nZHQtY29tcGF0Jz5Gb3IgY29tcGF0aWJpbGl0eTwvdGVybXJlZj4sIGl0IGlzCityZXF1aXJlZAordGhhdCBjb250ZW50IG1vZGVscyBpbiBlbGVtZW50IHR5cGUgZGVjbGFyYXRpb25zIGJlIGRldGVybWluaXN0aWMuICAKKzwvcD4KKzwhLS0gRklOQUwgRURJVDogIFdlYlNHTUwgYWxsb3dzIGFtYmlndWl0eT8gLS0+Cis8cD5TR01MCityZXF1aXJlcyBkZXRlcm1pbmlzdGljIGNvbnRlbnQgbW9kZWxzIChpdCBjYWxscyB0aGVtCisidW5hbWJpZ3VvdXMiKTsgWE1MIHByb2Nlc3NvcnMgYnVpbHQgdXNpbmcgU0dNTCBzeXN0ZW1zIG1heQorZmxhZyBub24tZGV0ZXJtaW5pc3RpYyBjb250ZW50IG1vZGVscyBhcyBlcnJvcnMuPC9wPgorPHA+Rm9yIGV4YW1wbGUsIHRoZSBjb250ZW50IG1vZGVsIDxjb2RlPigoYiwgYykgfCAoYiwgZCkpPC9jb2RlPiBpcworbm9uLWRldGVybWluaXN0aWMsIGJlY2F1c2UgZ2l2ZW4gYW4gaW5pdGlhbCA8Y29kZT5iPC9jb2RlPiB0aGUgcGFyc2VyCitjYW5ub3Qga25vdyB3aGljaCA8Y29kZT5iPC9jb2RlPiBpbiB0aGUgbW9kZWwgaXMgYmVpbmcgbWF0Y2hlZCB3aXRob3V0Citsb29raW5nIGFoZWFkIHRvIHNlZSB3aGljaCBlbGVtZW50IGZvbGxvd3MgdGhlIDxjb2RlPmI8L2NvZGU+LgorSW4gdGhpcyBjYXNlLCB0aGUgdHdvIHJlZmVyZW5jZXMgdG8KKzxjb2RlPmI8L2NvZGU+IGNhbiBiZSBjb2xsYXBzZWQgCitpbnRvIGEgc2luZ2xlIHJlZmVyZW5jZSwgbWFraW5nIHRoZSBtb2RlbCByZWFkCis8Y29kZT4oYiwgKGMgfCBkKSk8L2NvZGU+LiAgQW4gaW5pdGlhbCA8Y29kZT5iPC9jb2RlPiBub3cgY2xlYXJseQorbWF0Y2hlcyBvbmx5IGEgc2luZ2xlIG5hbWUgaW4gdGhlIGNvbnRlbnQgbW9kZWwuICBUaGUgcGFyc2VyIGRvZXNuJ3QKK25lZWQgdG8gbG9vayBhaGVhZCB0byBzZWUgd2hhdCBmb2xsb3dzOyBlaXRoZXIgPGNvZGU+YzwvY29kZT4gb3IKKzxjb2RlPmQ8L2NvZGU+IHdvdWxkIGJlIGFjY2VwdGVkLjwvcD4KKzxwPk1vcmUgZm9ybWFsbHk6ICBhIGZpbml0ZSBzdGF0ZSBhdXRvbWF0b24gbWF5IGJlIGNvbnN0cnVjdGVkIGZyb20gdGhlCitjb250ZW50IG1vZGVsIHVzaW5nIHRoZSBzdGFuZGFyZCBhbGdvcml0aG1zLCBlLmcuIGFsZ29yaXRobSAzLjUgCitpbiBzZWN0aW9uIDMuOQorb2YgQWhvLCBTZXRoaSwgYW5kIFVsbG1hbiA8YmlicmVmIHJlZj0nQWhvJy8+LgorSW4gbWFueSBzdWNoIGFsZ29yaXRobXMsIGEgZm9sbG93IHNldCBpcyBjb25zdHJ1Y3RlZCBmb3IgZWFjaCAKK3Bvc2l0aW9uIGluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gKGkuZS4sIGVhY2ggbGVhZiAKK25vZGUgaW4gdGhlIAorc3ludGF4IHRyZWUgZm9yIHRoZSByZWd1bGFyIGV4cHJlc3Npb24pOworaWYgYW55IHBvc2l0aW9uIGhhcyBhIGZvbGxvdyBzZXQgaW4gd2hpY2ggCittb3JlIHRoYW4gb25lIGZvbGxvd2luZyBwb3NpdGlvbiBpcyAKK2xhYmVsZWQgd2l0aCB0aGUgc2FtZSBlbGVtZW50IHR5cGUgbmFtZSwgCit0aGVuIHRoZSBjb250ZW50IG1vZGVsIGlzIGluIGVycm9yCithbmQgbWF5IGJlIHJlcG9ydGVkIGFzIGFuIGVycm9yLgorPC9wPgorPHA+QWxnb3JpdGhtcyBleGlzdCB3aGljaCBhbGxvdyBtYW55IGJ1dCBub3QgYWxsIG5vbi1kZXRlcm1pbmlzdGljCitjb250ZW50IG1vZGVscyB0byBiZSByZWR1Y2VkIGF1dG9tYXRpY2FsbHkgdG8gZXF1aXZhbGVudCBkZXRlcm1pbmlzdGljCittb2RlbHM7IHNlZSBCcvxnZ2VtYW5uLUtsZWluIDE5OTEgPGJpYnJlZiByZWY9J0FCSycvPi48L3A+Cis8L2luZm9ybS1kaXYxPgorPGluZm9ybS1kaXYxIGlkPSJzZWMtZ3Vlc3NpbmciPgorPGhlYWQ+QXV0b2RldGVjdGlvbiBvZiBDaGFyYWN0ZXIgRW5jb2RpbmdzPC9oZWFkPgorPHA+VGhlIFhNTCBlbmNvZGluZyBkZWNsYXJhdGlvbiBmdW5jdGlvbnMgYXMgYW4gaW50ZXJuYWwgbGFiZWwgb24gZWFjaAorZW50aXR5LCBpbmRpY2F0aW5nIHdoaWNoIGNoYXJhY3RlciBlbmNvZGluZyBpcyBpbiB1c2UuICBCZWZvcmUgYW4gWE1MCitwcm9jZXNzb3IgY2FuIHJlYWQgdGhlIGludGVybmFsIGxhYmVsLCBob3dldmVyLCBpdCBhcHBhcmVudGx5IGhhcyB0bwora25vdyB3aGF0IGNoYXJhY3RlciBlbmNvZGluZyBpcyBpbiB1c2UmbWRhc2g7d2hpY2ggaXMgd2hhdCB0aGUgaW50ZXJuYWwgbGFiZWwKK2lzIHRyeWluZyB0byBpbmRpY2F0ZS4gIEluIHRoZSBnZW5lcmFsIGNhc2UsIHRoaXMgaXMgYSBob3BlbGVzcworc2l0dWF0aW9uLiBJdCBpcyBub3QgZW50aXJlbHkgaG9wZWxlc3MgaW4gWE1MLCBob3dldmVyLCBiZWNhdXNlIFhNTAorbGltaXRzIHRoZSBnZW5lcmFsIGNhc2UgaW4gdHdvIHdheXM6ICBlYWNoIGltcGxlbWVudGF0aW9uIGlzIGFzc3VtZWQKK3RvIHN1cHBvcnQgb25seSBhICBmaW5pdGUgc2V0IG9mIGNoYXJhY3RlciBlbmNvZGluZ3MsIGFuZCB0aGUgWE1MCitlbmNvZGluZyBkZWNsYXJhdGlvbiBpcyByZXN0cmljdGVkIGluIHBvc2l0aW9uIGFuZCBjb250ZW50IGluIG9yZGVyIHRvCittYWtlIGl0IGZlYXNpYmxlIHRvIGF1dG9kZXRlY3QgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBpbiB1c2UgaW4gZWFjaAorZW50aXR5IGluIG5vcm1hbCBjYXNlcy4gIEFsc28sIGluIG1hbnkgY2FzZXMgb3RoZXIgc291cmNlcyBvZiBpbmZvcm1hdGlvbgorYXJlIGF2YWlsYWJsZSBpbiBhZGRpdGlvbiB0byB0aGUgWE1MIGRhdGEgc3RyZWFtIGl0c2VsZi4gIAorVHdvIGNhc2VzIG1heSBiZSBkaXN0aW5ndWlzaGVkLCAKK2RlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBYTUwgZW50aXR5IGlzIHByZXNlbnRlZCB0byB0aGUKK3Byb2Nlc3NvciB3aXRob3V0LCBvciB3aXRoLCBhbnkgYWNjb21wYW55aW5nCisoZXh0ZXJuYWwpIGluZm9ybWF0aW9uLiAgV2UgY29uc2lkZXIgdGhlIGZpcnN0IGNhc2UgZmlyc3QuCis8L3A+Cis8cD4KK0JlY2F1c2UgZWFjaCBYTUwgZW50aXR5IG5vdCBpbiBVVEYtOCBvciBVVEYtMTYgZm9ybWF0IDxlbXBoPm11c3Q8L2VtcGg+CitiZWdpbiB3aXRoIGFuIFhNTCBlbmNvZGluZyBkZWNsYXJhdGlvbiwgaW4gd2hpY2ggdGhlIGZpcnN0ICBjaGFyYWN0ZXJzCittdXN0IGJlICc8Y29kZT4mbHQ7P3htbDwvY29kZT4nLCBhbnkgY29uZm9ybWluZyBwcm9jZXNzb3IgY2FuIGRldGVjdCwKK2FmdGVyIHR3byB0byBmb3VyIG9jdGV0cyBvZiBpbnB1dCwgd2hpY2ggb2YgdGhlIGZvbGxvd2luZyBjYXNlcyBhcHBseS4gCitJbiByZWFkaW5nIHRoaXMgbGlzdCwgaXQgbWF5IGhlbHAgdG8ga25vdyB0aGF0IGluIFVDUy00LCAnJmx0OycgaXMKKyI8Y29kZT4jeDAwMDAwMDNDPC9jb2RlPiIgYW5kICc/JyBpcyAiPGNvZGU+I3gwMDAwMDAzRjwvY29kZT4iLCBhbmQgdGhlIEJ5dGUKK09yZGVyIE1hcmsgcmVxdWlyZWQgb2YgVVRGLTE2IGRhdGEgc3RyZWFtcyBpcyAiPGNvZGU+I3hGRUZGPC9jb2RlPiIuPC9wPgorPHA+Cis8dWxpc3Q+Cis8aXRlbT4KKzxwPjxjb2RlPjAwIDAwIDAwIDNDPC9jb2RlPjogVUNTLTQsIGJpZy1lbmRpYW4gbWFjaGluZSAoMTIzNCBvcmRlcik8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPjNDIDAwIDAwIDAwPC9jb2RlPjogVUNTLTQsIGxpdHRsZS1lbmRpYW4gbWFjaGluZSAoNDMyMSBvcmRlcik8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPjAwIDAwIDNDIDAwPC9jb2RlPjogVUNTLTQsIHVudXN1YWwgb2N0ZXQgb3JkZXIgKDIxNDMpPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4wMCAzQyAwMCAwMDwvY29kZT46IFVDUy00LCB1bnVzdWFsIG9jdGV0IG9yZGVyICgzNDEyKTwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+PGNvZGU+RkUgRkY8L2NvZGU+OiBVVEYtMTYsIGJpZy1lbmRpYW48L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPkZGIEZFPC9jb2RlPjogVVRGLTE2LCBsaXR0bGUtZW5kaWFuPC9wPgorPC9pdGVtPgorPGl0ZW0+Cis8cD48Y29kZT4wMCAzQyAwMCAzRjwvY29kZT46IFVURi0xNiwgYmlnLWVuZGlhbiwgbm8gQnl0ZSBPcmRlciBNYXJrCisoYW5kIHRodXMsIHN0cmljdGx5IHNwZWFraW5nLCBpbiBlcnJvcik8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPjNDIDAwIDNGIDAwPC9jb2RlPjogVVRGLTE2LCBsaXR0bGUtZW5kaWFuLCBubyBCeXRlIE9yZGVyIE1hcmsKKyhhbmQgdGh1cywgc3RyaWN0bHkgc3BlYWtpbmcsIGluIGVycm9yKTwvcD4KKzwvaXRlbT4KKzxpdGVtPgorPHA+PGNvZGU+M0MgM0YgNzggNkQ8L2NvZGU+OiBVVEYtOCwgSVNPIDY0NiwgQVNDSUksIHNvbWUgcGFydCBvZiBJU08gODg1OSwgCitTaGlmdC1KSVMsIEVVQywgb3IgYW55IG90aGVyIDctYml0LCA4LWJpdCwgb3IgbWl4ZWQtd2lkdGggZW5jb2RpbmcKK3doaWNoIGVuc3VyZXMgdGhhdCB0aGUgY2hhcmFjdGVycyBvZiBBU0NJSSBoYXZlIHRoZWlyIG5vcm1hbCBwb3NpdGlvbnMsCit3aWR0aCwKK2FuZCB2YWx1ZXM7IHRoZSBhY3R1YWwgZW5jb2RpbmcgZGVjbGFyYXRpb24gbXVzdCBiZSByZWFkIHRvIAorZGV0ZWN0IHdoaWNoIG9mIHRoZXNlIGFwcGxpZXMsIGJ1dCBzaW5jZSBhbGwgb2YgdGhlc2UgZW5jb2RpbmdzCit1c2UgdGhlIHNhbWUgYml0IHBhdHRlcm5zIGZvciB0aGUgQVNDSUkgY2hhcmFjdGVycywgdGhlIGVuY29kaW5nIAorZGVjbGFyYXRpb24gaXRzZWxmIG1heSBiZSByZWFkIHJlbGlhYmx5Cis8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPjxjb2RlPjRDIDZGIEE3IDk0PC9jb2RlPjogRUJDRElDIChpbiBzb21lIGZsYXZvcjsgdGhlIGZ1bGwKK2VuY29kaW5nIGRlY2xhcmF0aW9uIG11c3QgYmUgcmVhZCB0byB0ZWxsIHdoaWNoIGNvZGUgcGFnZSBpcyBpbiAKK3VzZSk8L3A+Cis8L2l0ZW0+Cis8aXRlbT4KKzxwPm90aGVyOiBVVEYtOCB3aXRob3V0IGFuIGVuY29kaW5nIGRlY2xhcmF0aW9uLCBvciBlbHNlIAordGhlIGRhdGEgc3RyZWFtIGlzIGNvcnJ1cHQsIGZyYWdtZW50YXJ5LCBvciBlbmNsb3NlZCBpbgorYSB3cmFwcGVyIG9mIHNvbWUga2luZDwvcD4KKzwvaXRlbT4KKzwvdWxpc3Q+Cis8L3A+Cis8cD4KK1RoaXMgbGV2ZWwgb2YgYXV0b2RldGVjdGlvbiBpcyBlbm91Z2ggdG8gcmVhZCB0aGUgWE1MIGVuY29kaW5nCitkZWNsYXJhdGlvbiBhbmQgcGFyc2UgdGhlIGNoYXJhY3Rlci1lbmNvZGluZyBpZGVudGlmaWVyLCB3aGljaCBpcworc3RpbGwgbmVjZXNzYXJ5IHRvIGRpc3Rpbmd1aXNoIHRoZSBpbmRpdmlkdWFsIG1lbWJlcnMgb2YgZWFjaCBmYW1pbHkKK29mIGVuY29kaW5ncyAoZS5nLiB0byB0ZWxsICBVVEYtOCBmcm9tIDg4NTksIGFuZCB0aGUgcGFydHMgb2YgODg1OQorZnJvbSBlYWNoIG90aGVyLCBvciB0byBkaXN0aW5ndWlzaCB0aGUgc3BlY2lmaWMgRUJDRElDIGNvZGUgcGFnZSBpbgordXNlLCBhbmQgc28gb24pLgorPC9wPgorPHA+CitCZWNhdXNlIHRoZSBjb250ZW50cyBvZiB0aGUgZW5jb2RpbmcgZGVjbGFyYXRpb24gYXJlIHJlc3RyaWN0ZWQgdG8KK0FTQ0lJIGNoYXJhY3RlcnMsIGEgcHJvY2Vzc29yIGNhbiByZWxpYWJseSByZWFkIHRoZSBlbnRpcmUgZW5jb2RpbmcKK2RlY2xhcmF0aW9uIGFzIHNvb24gYXMgaXQgaGFzIGRldGVjdGVkIHdoaWNoIGZhbWlseSBvZiBlbmNvZGluZ3MgaXMgaW4KK3VzZS4gIFNpbmNlIGluIHByYWN0aWNlLCBhbGwgd2lkZWx5IHVzZWQgY2hhcmFjdGVyIGVuY29kaW5ncyBmYWxsIGludG8KK29uZSBvZiB0aGUgY2F0ZWdvcmllcyBhYm92ZSwgdGhlIFhNTCBlbmNvZGluZyBkZWNsYXJhdGlvbiBhbGxvd3MKK3JlYXNvbmFibHkgcmVsaWFibGUgaW4tYmFuZCBsYWJlbGluZyBvZiBjaGFyYWN0ZXIgZW5jb2RpbmdzLCBldmVuIHdoZW4KK2V4dGVybmFsIHNvdXJjZXMgb2YgaW5mb3JtYXRpb24gYXQgdGhlIG9wZXJhdGluZy1zeXN0ZW0gb3IKK3RyYW5zcG9ydC1wcm90b2NvbCBsZXZlbCBhcmUgdW5yZWxpYWJsZS4KKzwvcD4KKzxwPgorT25jZSB0aGUgcHJvY2Vzc29yIGhhcyBkZXRlY3RlZCB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIGluIHVzZSwgaXQgY2FuCithY3QgYXBwcm9wcmlhdGVseSwgd2hldGhlciBieSBpbnZva2luZyBhIHNlcGFyYXRlIGlucHV0IHJvdXRpbmUgZm9yCitlYWNoIGNhc2UsIG9yIGJ5IGNhbGxpbmcgdGhlIHByb3BlciBjb252ZXJzaW9uIGZ1bmN0aW9uIG9uIGVhY2gKK2NoYXJhY3RlciBvZiBpbnB1dC4gCis8L3A+Cis8cD4KK0xpa2UgYW55IHNlbGYtbGFiZWxpbmcgc3lzdGVtLCB0aGUgWE1MIGVuY29kaW5nIGRlY2xhcmF0aW9uIHdpbGwgbm90Cit3b3JrIGlmIGFueSBzb2Z0d2FyZSBjaGFuZ2VzIHRoZSBlbnRpdHkncyBjaGFyYWN0ZXIgc2V0IG9yIGVuY29kaW5nCit3aXRob3V0IHVwZGF0aW5nIHRoZSBlbmNvZGluZyBkZWNsYXJhdGlvbi4gIEltcGxlbWVudG9ycyBvZgorY2hhcmFjdGVyLWVuY29kaW5nIHJvdXRpbmVzIHNob3VsZCBiZSBjYXJlZnVsIHRvIGVuc3VyZSB0aGUgYWNjdXJhY3kKK29mIHRoZSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgaW5mb3JtYXRpb24gdXNlZCB0byBsYWJlbCB0aGUgZW50aXR5LgorPC9wPgorPHA+VGhlIHNlY29uZCBwb3NzaWJsZSBjYXNlIG9jY3VycyB3aGVuIHRoZSBYTUwgZW50aXR5IGlzIGFjY29tcGFuaWVkCitieSBlbmNvZGluZyBpbmZvcm1hdGlvbiwgYXMgaW4gc29tZSBmaWxlIHN5c3RlbXMgYW5kIHNvbWUgbmV0d29yaworcHJvdG9jb2xzLgorV2hlbiBtdWx0aXBsZSBzb3VyY2VzIG9mIGluZm9ybWF0aW9uIGFyZSBhdmFpbGFibGUsCisKK3RoZWlyIHJlbGF0aXZlCitwcmlvcml0eSBhbmQgdGhlIHByZWZlcnJlZCBtZXRob2Qgb2YgaGFuZGxpbmcgY29uZmxpY3Qgc2hvdWxkIGJlCitzcGVjaWZpZWQgYXMgcGFydCBvZiB0aGUgaGlnaGVyLWxldmVsIHByb3RvY29sIHVzZWQgdG8gZGVsaXZlciBYTUwuCitSdWxlcyBmb3IgdGhlIHJlbGF0aXZlIHByaW9yaXR5IG9mIHRoZSBpbnRlcm5hbCBsYWJlbCBhbmQgdGhlCitNSU1FLXR5cGUgbGFiZWwgaW4gYW4gZXh0ZXJuYWwgaGVhZGVyLCBmb3IgZXhhbXBsZSwgc2hvdWxkIGJlIHBhcnQgb2YgdGhlCitSRkMgZG9jdW1lbnQgZGVmaW5pbmcgdGhlIHRleHQveG1sIGFuZCBhcHBsaWNhdGlvbi94bWwgTUlNRSB0eXBlcy4gSW4KK3RoZSBpbnRlcmVzdHMgb2YgaW50ZXJvcGVyYWJpbGl0eSwgaG93ZXZlciwgdGhlIGZvbGxvd2luZyBydWxlcworYXJlIHJlY29tbWVuZGVkLgorPHVsaXN0PgorPGl0ZW0+PHA+SWYgYW4gWE1MIGVudGl0eSBpcyBpbiBhIGZpbGUsIHRoZSBCeXRlLU9yZGVyIE1hcmsKK2FuZCBlbmNvZGluZy1kZWNsYXJhdGlvbiBQSSBhcmUgdXNlZCAoaWYgcHJlc2VudCkgdG8gZGV0ZXJtaW5lIHRoZQorY2hhcmFjdGVyIGVuY29kaW5nLiAgQWxsIG90aGVyIGhldXJpc3RpY3MgYW5kIHNvdXJjZXMgb2YgaW5mb3JtYXRpb24KK2FyZSBzb2xlbHkgZm9yIGVycm9yIHJlY292ZXJ5LgorPC9wPjwvaXRlbT4KKzxpdGVtPjxwPklmIGFuIFhNTCBlbnRpdHkgaXMgZGVsaXZlcmVkIHdpdGggYQorTUlNRSB0eXBlIG9mIHRleHQveG1sLCB0aGVuIHRoZSA8Y29kZT5jaGFyc2V0PC9jb2RlPiBwYXJhbWV0ZXIKK29uIHRoZSBNSU1FIHR5cGUgZGV0ZXJtaW5lcyB0aGUKK2NoYXJhY3RlciBlbmNvZGluZyBtZXRob2Q7IGFsbCBvdGhlciBoZXVyaXN0aWNzIGFuZCBzb3VyY2VzIG9mCitpbmZvcm1hdGlvbiBhcmUgc29sZWx5IGZvciBlcnJvciByZWNvdmVyeS4KKzwvcD48L2l0ZW0+Cis8aXRlbT48cD5JZiBhbiBYTUwgZW50aXR5IGlzIGRlbGl2ZXJlZCAKK3dpdGggYQorTUlNRSB0eXBlIG9mIGFwcGxpY2F0aW9uL3htbCwgdGhlbiB0aGUgQnl0ZS1PcmRlciBNYXJrIGFuZAorZW5jb2RpbmctZGVjbGFyYXRpb24gUEkgYXJlIHVzZWQgKGlmIHByZXNlbnQpIHRvIGRldGVybWluZSB0aGUKK2NoYXJhY3RlciBlbmNvZGluZy4gIEFsbCBvdGhlciBoZXVyaXN0aWNzIGFuZCBzb3VyY2VzIG9mCitpbmZvcm1hdGlvbiBhcmUgc29sZWx5IGZvciBlcnJvciByZWNvdmVyeS4KKzwvcD48L2l0ZW0+Cis8L3VsaXN0PgorVGhlc2UgcnVsZXMgYXBwbHkgb25seSBpbiB0aGUgYWJzZW5jZSBvZiBwcm90b2NvbC1sZXZlbCBkb2N1bWVudGF0aW9uOworaW4gcGFydGljdWxhciwgd2hlbiB0aGUgTUlNRSB0eXBlcyB0ZXh0L3htbCBhbmQgYXBwbGljYXRpb24veG1sIGFyZQorZGVmaW5lZCwgdGhlIHJlY29tbWVuZGF0aW9ucyBvZiB0aGUgcmVsZXZhbnQgUkZDIHdpbGwgc3VwZXJzZWRlCit0aGVzZSBydWxlcy4KKzwvcD4KKworPC9pbmZvcm0tZGl2MT4KKworPGluZm9ybS1kaXYxIGlkPSJzZWMteG1sLXdnIj4KKzxoZWFkPlczQyBYTUwgV29ya2luZyBHcm91cDwvaGVhZD4KKyAKKzxwPlRoaXMgc3BlY2lmaWNhdGlvbiB3YXMgcHJlcGFyZWQgYW5kIGFwcHJvdmVkIGZvciBwdWJsaWNhdGlvbiBieSB0aGUKK1czQyBYTUwgV29ya2luZyBHcm91cCAoV0cpLiAgV0cgYXBwcm92YWwgb2YgdGhpcyBzcGVjaWZpY2F0aW9uIGRvZXMKK25vdCBuZWNlc3NhcmlseSBpbXBseSB0aGF0IGFsbCBXRyBtZW1iZXJzIHZvdGVkIGZvciBpdHMgYXBwcm92YWwuICAKK1RoZSBjdXJyZW50IGFuZCBmb3JtZXIgbWVtYmVycyBvZiB0aGUgWE1MIFdHIGFyZTo8L3A+CisgCis8b3JnbGlzdD4KKzxtZW1iZXI+PG5hbWU+Sm9uIEJvc2FrLCBTdW48L25hbWU+PHJvbGU+Q2hhaXI8L3JvbGU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkphbWVzIENsYXJrPC9uYW1lPjxyb2xlPlRlY2huaWNhbCBMZWFkPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5UaW0gQnJheSwgVGV4dHVhbGl0eSBhbmQgTmV0c2NhcGU8L25hbWU+PHJvbGU+WE1MIENvLWVkaXRvcjwvcm9sZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+SmVhbiBQYW9saSwgTWljcm9zb2Z0PC9uYW1lPjxyb2xlPlhNTCBDby1lZGl0b3I8L3JvbGU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkMuIE0uIFNwZXJiZXJnLU1jUXVlZW4sIFUuIG9mIElsbC48L25hbWU+PHJvbGU+WE1MCitDby1lZGl0b3I8L3JvbGU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkRhbiBDb25ub2xseSwgVzNDPC9uYW1lPjxyb2xlPlczQyBMaWFpc29uPC9yb2xlPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5QYXVsYSBBbmdlcnN0ZWluLCBUZXhjZWw8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPlN0ZXZlIERlUm9zZSwgSU5TTzwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+RGF2ZSBIb2xsYW5kZXIsIEhQPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5FbGlvdCBLaW1iZXIsIElTT0dFTjwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+RXZlIE1hbGVyLCBBcmJvclRleHQ8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPlRvbSBNYWdsaWVyeSwgTkNTQTwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+TXVycmF5IE1hbG9uZXksIE11em1vIGFuZCBHcmlmPC9uYW1lPjwvbWVtYmVyPgorPG1lbWJlcj48bmFtZT5NYWtvdG8gTXVyYXRhLCBGdWppIFhlcm94IEluZm9ybWF0aW9uIFN5c3RlbXM8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkpvZWwgTmF2YSwgQWRvYmU8L25hbWU+PC9tZW1iZXI+Cis8bWVtYmVyPjxuYW1lPkNvbmxldGggTydDb25uZWxsLCBWaWduZXR0ZTwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+UGV0ZXIgU2hhcnBlLCBTb2Z0UXVhZDwvbmFtZT48L21lbWJlcj4KKzxtZW1iZXI+PG5hbWU+Sm9obiBUaWd1ZSwgRGF0YUNoYW5uZWw8L25hbWU+PC9tZW1iZXI+Cis8L29yZ2xpc3Q+CisKKzwvaW5mb3JtLWRpdjE+Cis8L2JhY2s+Cis8L3NwZWM+Cis8IS0tIEtlZXAgdGhpcyBjb21tZW50IGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUKK0xvY2FsIHZhcmlhYmxlczoKK21vZGU6IHNnbWwKK3NnbWwtZGVmYXVsdC1kdGQtZmlsZToifi9zZ21sL3NwZWMuY2VkIgorc2dtbC1vbWl0dGFnOnQKK3NnbWwtc2hvcnR0YWc6dAorRW5kOgorLS0+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvVVRGMTZFbnRpdHkueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL1VURjE2RW50aXR5LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmIyOWFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL1VURjE2RW50aXR5LnhtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBmb28gWworPCFFTEVNRU5UIGZvbyAocm9vdCopPgorPCFFTEVNRU5UIHJvb3QgRU1QVFk+Cis8IUVOVElUWSB1dGYxNmIgU1lTVEVNICJkdGRzL3V0ZjE2Yi5lbnQiPgorPCFFTlRJVFkgdXRmMTZsIFNZU1RFTSAiZHRkcy91dGYxNmwuZW50Ij4KK10+CisKKzxmb28+ICZ1dGYxNmI7ICZ1dGYxNmw7IDwvZm9vPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2RpYS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZGlhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWIzZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2RpYS54bWwKQEAgLTAsMCArMSwxNjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRpYTpkaWFncmFtIFsKKzwhRUxFTUVOVCBkaWE6ZGlhZ3JhbSAoZGlhOmRpYWdyYW1kYXRhLCAoZGlhOmxheWVyKSopID4KKzwhQVRUTElTVCBkaWE6ZGlhZ3JhbQorICAgICAgICAgIHhtbG5zOmRpYSBDREFUQSAjRklYRUQgImh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyI+CisgICAgICAgICAgCisKKzwhRUxFTUVOVCBkaWE6ZGlhZ3JhbWRhdGEgKGRpYTphdHRyaWJ1dGUpKiA+CisKKzwhRUxFTUVOVCBkaWE6bGF5ZXIgKGRpYTpvYmplY3QgfCBkaWE6Z3JvdXApKj4KKzwhQVRUTElTVCBkaWE6bGF5ZXIKKyAgIGRpYTpuYW1lIENEQVRBICNSRVFVSVJFRAorICAgZGlhOnZpc2libGUgKHRydWV8ZmFsc2UpICNSRVFVSVJFRCA+CisKKzwhRUxFTUVOVCBkaWE6b2JqZWN0ICgoZGlhOmF0dHJpYnV0ZSkqLCBkaWE6Y29ubmVjdGlvbnM/KT4KKzwhQVRUTElTVCBkaWE6b2JqZWN0CisgICBkaWE6dHlwZSBDREFUQSAjUkVRVUlSRUQKKyAgIGRpYTp2ZXJzaW9uIE5NVE9LRU4gI1JFUVVJUkVECisgICBkaWE6aWQgSUQgI1JFUVVJUkVEID4KKworPCFFTEVNRU5UIGRpYTpjb25uZWN0aW9ucyAoZGlhOmNvbm5lY3Rpb24pKj4KKworPCFFTEVNRU5UIGRpYTpjb25uZWN0aW9uIEVNUFRZPgorPCFBVFRMSVNUIGRpYTpjb25uZWN0aW9uCisgICBkaWE6aGFuZGxlIE5NVE9LRU4gI1JFUVVJUkVECisgICBkaWE6dG8gSURSRUYgI1JFUVVJUkVECisgICBkaWE6Y29ubmVjdGlvbiBOTVRPS0VOICNSRVFVSVJFRD4KKworPCFFTEVNRU5UIGRpYTpncm91cCAoZGlhOm9iamVjdCB8IGRpYTpncm91cCkqPgorCis8IUVMRU1FTlQgZGlhOmF0dHJpYnV0ZSAoZGlhOmNvbXBvc2l0ZSB8IGRpYTppbnQgfCBkaWE6ZW51bSB8IGRpYTpyZWFsIHwgZGlhOmJvb2xlYW4gfAorICAgICAgICAgICAgICAgICAgICAgZGlhOmNvbG9yIHwgZGlhOnBvaW50IHwgZGlhOnJlY3RhbmdsZSB8IGRpYTpzdHJpbmcgfCBkaWE6Zm9udCkqPgorPCFBVFRMSVNUIGRpYTphdHRyaWJ1dGUgIGRpYTpuYW1lIENEQVRBICNSRVFVSVJFRCA+CisKKzwhRUxFTUVOVCBkaWE6Y29tcG9zaXRlIChkaWE6YXR0cmlidXRlKSo+Cis8IUFUVExJU1QgZGlhOmNvbXBvc2l0ZSAgZGlhOnR5cGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaWE6aW50IEVNUFRZPgorPCFBVFRMSVNUIGRpYTppbnQgIGRpYTp2YWwgTk1UT0tFTiAjUkVRVUlSRUQ+CisKKzwhRUxFTUVOVCBkaWE6ZW51bSBFTVBUWT4KKzwhQVRUTElTVCBkaWE6ZW51bSAgZGlhOnZhbCBOTVRPS0VOICNSRVFVSVJFRD4KKworPCFFTEVNRU5UIGRpYTpyZWFsIEVNUFRZPgorPCFBVFRMSVNUIGRpYTpyZWFsICBkaWE6dmFsIENEQVRBICNSRVFVSVJFRD4KKworPCFFTEVNRU5UIGRpYTpib29sZWFuIEVNUFRZPgorPCFBVFRMSVNUIGRpYTpib29sZWFuICBkaWE6dmFsICh0cnVlfGZhbHNlKSAjUkVRVUlSRUQ+CisKKzwhRUxFTUVOVCBkaWE6Y29sb3IgRU1QVFk+Cis8IUFUVExJU1QgZGlhOmNvbG9yICBkaWE6dmFsIENEQVRBICNSRVFVSVJFRD4KKworPCFFTEVNRU5UIGRpYTpwb2ludCBFTVBUWT4KKzwhQVRUTElTVCBkaWE6cG9pbnQgIGRpYTp2YWwgQ0RBVEEgI1JFUVVJUkVEPgorCis8IUVMRU1FTlQgZGlhOnJlY3RhbmdsZSBFTVBUWT4KKzwhQVRUTElTVCBkaWE6cmVjdGFuZ2xlICBkaWE6dmFsIENEQVRBICNSRVFVSVJFRD4KKworPCFFTEVNRU5UIGRpYTpzdHJpbmcgRU1QVFk+Cis8IUFUVExJU1QgZGlhOnN0cmluZyAgZGlhOnZhbCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpYTpmb250IEVNUFRZPgorPCFBVFRMSVNUIGRpYTpmb250IGRpYTpuYW1lIENEQVRBICNSRVFVSVJFRD4KK10+CisKKzxkaWE6ZGlhZ3JhbSB4bWxuczpkaWE9Imh0dHA6Ly93d3cubHlzYXRvci5saXUuc2UvfmFsbGEvZGlhLyI+CisgIDxkaWE6ZGlhZ3JhbWRhdGE+CisgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImJhY2tncm91bmQiPgorICAgICAgPGRpYTpjb2xvciBkaWE6dmFsPSIjZmZmZmZmIi8+CisgICAgPC9kaWE6YXR0cmlidXRlPgorICA8L2RpYTpkaWFncmFtZGF0YT4KKyAgPGRpYTpsYXllciBkaWE6bmFtZT0iQmFja2dyb3VuZCIgZGlhOnZpc2libGU9InRydWUiPgorICAgIDxkaWE6b2JqZWN0IGRpYTp0eXBlPSJTdGFuZGFyZCAtIExpbmUiIGRpYTp2ZXJzaW9uPSIwIiBkaWE6aWQ9Ik8wIj4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJvYmpfcG9zIj4KKyAgICAgICAgPGRpYTpwb2ludCBkaWE6dmFsPSIxLjk1LDYuODUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSBkaWE6dmFsPSIxLjksNi44OzExLDguNTUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJjb25uX2VuZHBvaW50cyI+CisgICAgICAgIDxkaWE6cG9pbnQgZGlhOnZhbD0iMS45NSw2Ljg1Ii8+CisgICAgICAgIDxkaWE6cG9pbnQgZGlhOnZhbD0iMTAuOTUsOC41Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0ibGluZV9jb2xvciI+CisgICAgICAgIDxkaWE6Y29sb3IgZGlhOnZhbD0iIzAwMDAwMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImxpbmVfd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgZGlhOnZhbD0iMC4xIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0ibGluZV9zdHlsZSI+CisgICAgICAgIDxkaWE6ZW51bSBkaWE6dmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0ic3RhcnRfYXJyb3ciPgorICAgICAgICA8ZGlhOmVudW0gZGlhOnZhbD0iMCIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImVuZF9hcnJvdyI+CisgICAgICAgIDxkaWE6ZW51bSBkaWE6dmFsPSIwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmNvbm5lY3Rpb25zPgorICAgICAgICA8ZGlhOmNvbm5lY3Rpb24gZGlhOmhhbmRsZT0iMSIgZGlhOnRvPSJPMiIgZGlhOmNvbm5lY3Rpb249IjMiLz4KKyAgICAgIDwvZGlhOmNvbm5lY3Rpb25zPgorICAgIDwvZGlhOm9iamVjdD4KKyAgICA8ZGlhOm9iamVjdCBkaWE6dHlwZT0iU3RhbmRhcmQgLSBUZXh0IiBkaWE6dmVyc2lvbj0iMCIgZGlhOmlkPSJPMSI+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0ib2JqX3BvcyI+CisgICAgICAgIDxkaWE6cG9pbnQgZGlhOnZhbD0iNC44LDQuNzUiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJvYmpfYmIiPgorICAgICAgICA8ZGlhOnJlY3RhbmdsZSBkaWE6dmFsPSIyLjU3OSwzLjk2MzU5OzcuMDIxLDQuOTYzNTkiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgPGRpYTpjb21wb3NpdGUgZGlhOnR5cGU9InRleHQiPgorICAgICAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJzdHJpbmciPgorICAgICAgICAgICAgPGRpYTpzdHJpbmcgZGlhOnZhbD0ic2Rmc2RmZyIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iZm9udCI+CisgICAgICAgICAgICA8ZGlhOmZvbnQgZGlhOm5hbWU9IkNvdXJpZXIiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImhlaWdodCI+CisgICAgICAgICAgICA8ZGlhOnJlYWwgZGlhOnZhbD0iMSIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0icG9zIj4KKyAgICAgICAgICAgIDxkaWE6cG9pbnQgZGlhOnZhbD0iNC44LDQuNzUiLz4KKyAgICAgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImNvbG9yIj4KKyAgICAgICAgICAgIDxkaWE6Y29sb3IgZGlhOnZhbD0iIzAwMDAwMCIvPgorICAgICAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iYWxpZ25tZW50Ij4KKyAgICAgICAgICAgIDxkaWE6ZW51bSBkaWE6dmFsPSIxIi8+CisgICAgICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgICA8L2RpYTpjb21wb3NpdGU+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgPC9kaWE6b2JqZWN0PgorICAgIDxkaWE6b2JqZWN0IGRpYTp0eXBlPSJTdGFuZGFyZCAtIEJveCIgZGlhOnZlcnNpb249IjAiIGRpYTppZD0iTzIiPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9Im9ial9wb3MiPgorICAgICAgICA8ZGlhOnBvaW50IGRpYTp2YWw9IjEwLjk1LDcuNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9Im9ial9iYiI+CisgICAgICAgIDxkaWE6cmVjdGFuZ2xlIGRpYTp2YWw9IjEwLjksNy40NTsxMy4wNSw5LjU1Ii8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iZWxlbV9jb3JuZXIiPgorICAgICAgICA8ZGlhOnBvaW50IGRpYTp2YWw9IjEwLjk1LDcuNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImVsZW1fd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgZGlhOnZhbD0iMi4wNSIvPgorICAgICAgPC9kaWE6YXR0cmlidXRlPgorICAgICAgPGRpYTphdHRyaWJ1dGUgZGlhOm5hbWU9ImVsZW1faGVpZ2h0Ij4KKyAgICAgICAgPGRpYTpyZWFsIGRpYTp2YWw9IjIiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJib3JkZXJfd2lkdGgiPgorICAgICAgICA8ZGlhOnJlYWwgZGlhOnZhbD0iMC4xIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iYm9yZGVyX2NvbG9yIj4KKyAgICAgICAgPGRpYTpjb2xvciBkaWE6dmFsPSIjMDAwMDAwIi8+CisgICAgICA8L2RpYTphdHRyaWJ1dGU+CisgICAgICA8ZGlhOmF0dHJpYnV0ZSBkaWE6bmFtZT0iaW5uZXJfY29sb3IiPgorICAgICAgICA8ZGlhOmNvbG9yIGRpYTp2YWw9IiNmZmZmZmYiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICAgIDxkaWE6YXR0cmlidXRlIGRpYTpuYW1lPSJsaW5lX3N0eWxlIj4KKyAgICAgICAgPGRpYTplbnVtIGRpYTp2YWw9IjAiLz4KKyAgICAgIDwvZGlhOmF0dHJpYnV0ZT4KKyAgICA8L2RpYTpvYmplY3Q+CisgIDwvZGlhOmxheWVyPgorPC9kaWE6ZGlhZ3JhbT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzLzEyNzc3Mi5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy8xMjc3NzIuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3M2ZiMzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy8xMjc3NzIuZHRkCkBAIC0wLDAgKzEsNyBAQAorPCFFTEVNRU5UIGEgKGIqKT4KKworPCFFTEVNRU5UIGIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGIgeG1sbnM6eGxpbmsgIENEQVRBICAgICAjRklYRUQgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnCisgICAgICAgICAgICB4bGluazp0eXBlICAgKHNpbXBsZSkgICNGSVhFRCAnc2ltcGxlJworICAgICAgICAgICAgeGxpbms6aHJlZiAgIENEQVRBICAgICAjSU1QTElFRD4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvTmV3c01MdjEuMC5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy9OZXdzTUx2MS4wLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Nzk5YjI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvTmV3c01MdjEuMC5kdGQKQEAgLTAsMCArMSwxNTc4IEBACis8IS0tIA0KKyAgICAgICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAgICAgICAgICAgIE5ld3NNTCBEb2N1bWVudCBUeXBlIERlZmluaXRpb24gVmVyc2lvbiAxLjANCisgICAgICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgICAgICAgICAgSW50ZXJuYXRpb25hbCBQcmVzcyBUZWxlY29tbXVuaWNhdGlvbnMgQ291bmNpbA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiBPY3RvYmVyIDIwMDANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSBJUFRDLCAyMDAwDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICBOZXdzTUwgaXMgYSB0cmFkZW1hcmsgb2YgSVBUQw0KKw0KKyAgICAgICAgICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAgICAgICAgICAgICAgRE8gTk9UIFJFTU9WRSBUSEVTRSBMSUNFTkNFIENPTkRJVElPTlMNCisgICAgICAgICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgIExJQ0VOQ0UgT0YgVEhFIElQVEMgTmV3c01MIFRSQURFTUFSSyBUTyBOT04tTUVNQkVSUyBPRiBUSEUgSVBUQw0KKw0KK1VzZSBvZiB0aGUgSVBUQyB0cmFkZW1hcmsgc2hhbGwgYmUgbGljZW5zZWQgYnkgdGhlIElQVEMgKCJ0aGUgTGljZW5zb3IiKSB0byBhDQorTm9uLU1lbWJlciAoInRoZSBMaWNlbnNlZSIpIGluIGNvbnNpZGVyYXRpb24gb2YgdGhlIGZvbGxvd2luZyBvYmxpZ2F0aW9ucw0KK3VuZGVydGFrZW4gYnkgdGhlIExpY2Vuc2VlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIGNvbnRyYWN0Lg0KKw0KKyAxLiBUaGUgTGljZW5zZWUgcmVjb2duaXNlcyB0aGUgTGljZW5zb3IgYXMgdGhlIHNvbGUgb3duZXIgb2YgdGhlIGludGVsbGVjdHVhbA0KKyAgICBwcm9wZXJ0eSBwcm90ZWN0ZWQgYnkgdGhlIHRyYWRlbWFyay4NCisNCisgMi4gVGhlIExpY2Vuc2VlIHJlY29nbmlzZXMgdGhhdCB0aGUgTGljZW5zb3IgaGFzIHRoZSByaWdodCB0byBncmFudCBsaWNlbnNlcw0KKyAgICBvZiB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHByb3RlY3RlZCBieSB0aGUgdHJhZGVtYXJrIGFuZCBoYXMgYWdyZWVkIHRvDQorICAgIGdyYW50IHN1Y2ggYSBsaWNlbmNlIHRvIHRoZSBMaWNlbnNlZSBpbiB0aGUgdGVybXMgc2V0IG91dCBpbiB0aGlzIGNvbnRyYWN0Lg0KKw0KKyAzLiBUaGUgTGljZW5zZWUgc2hhbGwgbm90IGR1cmluZyB0aGUgc3Vic2lzdGVuY2Ugb2YgdGhpcyBjb250cmFjdCBvciBhdCBhbnkNCisgICAgZnV0dXJlIHRpbWUgcmVnaXN0ZXIgdG8gdXNlIGluIGl0cyBvd24gbmFtZSBhcyBwcm9wcmlldG9yIGFueSBvZiB0aGUNCisgICAgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHByb3RlY3RlZCBieSB0aGUgdHJhZGVtYXJrLiANCisNCisgNC4gVGhlIExpY2Vuc2VlIHNoYWxsIG5vdCBjbGFpbSBhbnkgcmlnaHQgdGl0bGUgb3IgaW50ZXJlc3QgaW4gdGhlDQorICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvciBhbnkgcGFydCBvZiBpdCBzYXZlIGFzIGlzIGdyYW50ZWQgYnkgdGhpcyBjb250cmFjdC4NCisNCisgNS4gVGhlIExpY2Vuc2VlIHNoYWxsIGltbWVkaWF0ZWx5IGNhbGwgdG8gdGhlIGF0dGVudGlvbiBvZiB0aGUgTGljZW5zb3IgdGhlIHVzZQ0KKyAgICBvZiBhbnkgcGFydCBvZiB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGJ5IGFueSB0aGlyZCBwYXJ0eSBvciBhbnkgYWN0aXZpdHkNCisgICAgb2YgYW55IHRoaXJkIHBhcnR5IHdoaWNoIG1pZ2h0IGluIHRoZSBvcGluaW9uIG9mIHRoZSBMaWNlbnNlZSBhbW91bnQgdG8NCisgICAgaW5mcmluZ2VtZW50IG9mIHRoZSByaWdodHMgcHJvdGVjdGVkIGJ5IHRoZSB0cmFkZW1hcmsuDQorDQorIDYuIFRoZSBMaWNlbnNlZSBzaGFsbCBub3QgYXNzaWduIHRoZSBiZW5lZml0IG9mIHRoaXMgY29udHJhY3Qgb3IgZ3JhbnQgYW55DQorICAgIHN1Yi1saWNlbmNlIHdpdGhvdXQgdGhlIHByaW9yIHdyaXR0ZW4gY29uc2VudCBvZiB0aGUgTGljZW5zb3IuDQorDQorIDcuIFVzZSBvZiB0aGUgSVBUQyB0cmFkZW1hcmsgaXMgbGljZW5zZWQgb25seSB0byB0aG9zZSBMaWNlbnNlZXMgd2hvIGNvbXBseQ0KKyAgICB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhlIG9mZmljaWFsIHB1Ymxpc2hlZCBkZXNjcmlwdGlvbiBvZiBOZXdzTUwuDQorDQorIDguIFRoZSBMaWNlbnNlZSBwcm9taXNlcyB0byByZXNwZWN0IHRoZSBpbnRlZ3JpdHkgYW5kIHF1YWxpdHkgc3RhbmRhcmQgb2YgdGhlDQorICAgIHRyYWRlbWFyayBhbmQgc2hhbGwgcmVmcmFpbiBmcm9tIGFsbCBhY3RzIGFuZCBvbWlzc2lvbnMgd2hpY2ggdGhyZWF0ZW4gdGhlDQorICAgIGludGVncml0eSBvZiB0aGUgdHJhZGVtYXJrIGFzIGEgbWFyayBvZiBxdWFsaXR5Lg0KKw0KKyA5LiBUaGUgTGljZW5zZWUgc2hhbGwgY29tbXVuaWNhdGUgaW1tZWRpYXRlbHkgdG8gdGhlIElQVEMgYW55IGluc3RhbmNlcyBvZg0KKyAgICBhY3R1YWwgb3Igc3VzcGVjdGVkIG1pc3VzZSBvciBub24tY29tcGxpYW5jZSB3aXRoIHRoZSBvZmZpY2lhbCBwdWJsaXNoZWQNCisgICAgZGVzY3JpcHRpb24gb2YgTmV3c01MIHdoaWNoIGNvbWUgdG8gdGhlIGF0dGVudGlvbiBvZiB0aGUgTGljZW5zZWUuDQorDQorMTAuIFRoZSBMaWNlbnNlZSBzaGFsbCwgYXQgdGhlIHJlcXVlc3Qgb2YgdGhlIElQVEMgTWFuYWdlbWVudCBDb21taXR0ZWUgYWN0aW5nDQorICAgIHVuYW5pbW91c2x5LCBhY2NlZGUgdG8gYW55IHJlYXNvbmFibGUgcmVxdWVzdCBvZiB0aGUgSVBUQyB0byBpbnNwZWN0IHRoZQ0KKyAgICBhZGRyZXNzIG9mIHRoZSBMaWNlbnNlZSB0byB2ZXJpZnkgY29tcGxpYW5jZSBhbmQgZWFjaCBMaWNlbnNlZSBzaGFsbCBhZmZvcmQNCisgICAgdG8gdGhlIElQVEMgc3VjaCBhc3Npc3RhbmNlIGFzIGlzIHJlcXVlc3RlZCBieSB0aGUgSVBUQyBpbiByZXNwb25zZSB0byB0aGUNCisgICAgbGF0dGVyJ3MgcmVhc29uYWJsZSBlbnF1aXJpZXMgaW4gaW5zdGFuY2VzIG9mIHN1c3BlY3RlZCBub24tY29tcGxpYW5jZSB3aXRoDQorICAgIHRoZSBvZmZpY2lhbCBwdWJsaXNoZWQgZGVzY3JpcHRpb24gb2YgTmV3c01MIHJlcXVpcmVtZW50cy4NCisNCitUaGUgTGljZW5zZWUgc2hhbGwgZnJvbSB0aW1lIHRvIHRpbWUgcHJvdmlkZSB0aGUgSVBUQyB3aXRoIHRoZSBmdWxsIGFkZHJlc3Mgb2YNCitpdHMgcGxhY2Ugb2YgYnVzaW5lc3MgYW5kIHRoYXQgcGxhY2Ugd2lsbCBiZSBkZWVtZWQgdGhlIExpY2Vuc2VlJ3MgYWRkcmVzcy4NCisNCitUaGUgSVBUQyByZXNlcnZlcyB0aGUgcmlnaHQgdG8gdGVybWluYXRlIHRoZSB1c2Ugb2YgdGhlIHRyYWRlbWFyayBieSB0aGUNCitMaWNlbnNlZSBhdCBhbnkgdGltZSB3aXRob3V0IG5vdGljZSBvciB3aXRob3V0IHRoZSBuZWVkIHRvIGdpdmUgcmVhc29ucyB0byB0aGUNCitMaWNlbnNlZSBmb3Igc3VjaCB0ZXJtaW5hdGlvbi4NCisNCitUaGlzIGNvbnRyYWN0IHNoYWxsIGJlIGdvdmVybmVkIGFuZCBjb25zdHJ1ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBsYXdzIG9mDQorRW5nbGFuZCBhbmQgV2FsZXMgd2hvc2UgY291cnRzIHNoYWxsIGJlIGNvdXJ0cyBvZiBjb21wZXRlbnQganVyaXNkaWN0aW9uLg0KKy0tPg0KKzwhLS0gDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RFIE9OIFNQRUxMSU5HDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09DQorTmV3c01MIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZSBuYW1lcyB1c2UgVVMtRW5nbGlzaCBzcGVsbGluZ3MuIFdpdGggdGhpcw0KK2V4Y2VwdGlvbiwgdGhpcyBEVEQgYW5kIGl0cyBhY2NvbXBhbnlpbmcgc3BlY2lmaWNhdGlvbiB1c2UgQnJpdGlzaCBFbmdsaXNoDQorc3BlbGxpbmdzLg0KKy0tPg0KKzwhLS0gDQorICAgICAgICAgICAgICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAgICAgICAgICAgICAgICAgIFBBUkFNRVRFUiBFTlRJVFkgREVDTEFSQVRJT05TIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGUgc2V0cyANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBhc3NpZ25tZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBc3NpZ25lZEJ5DQorPT09PT09PT09PQ0KK0FuIGlkZW50aWZpZXIgZm9yIHRoZSBwYXJ0eSBhc3NpZ25pbmcgYSBwaWVjZSBvZiBtZXRhZGF0YS4gVGhpcyBjYW4gYmUgYQ0KK3N0cmluZyB0aGF0IGRlc2lnbmF0ZXMgdGhlIHBhcnR5IGluZm9ybWFsbHkgKGZvciBleGFtcGxlLCBhIHBlcnNvbidzIG5hbWUpLA0KK29yIGEgcG9pbnRlciBpbiB0aGUgZm9ybSBhIGZyYWdtZW50IGlkZW50aWZpZXIgY29uc2lzdGluZyBvZiBhICMgY2hhcmFjdGVyDQorZm9sbG93ZWQgYnkgdGhlIER1aWQgb2YgYSBUb3BpYyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJ0eS4NCisNCitJbXBvcnRhbmNlDQorPT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gb2YgdGhlIGltcG9ydGFuY2UgdGhlIHBhcnR5IGFzc2lnbmluZyBhIHBpZWNlIG9mIG1ldGFkYXRhDQorYXR0YWNoZXMgdG8gaXQuIFRoZSB2YWx1ZSBvZiB0aGUgSW1wb3J0YW5jZSBhdHRyaWJ1dGUgaXMgYSBmb3JtYWwgbmFtZSBmb3IgYQ0KK2xldmVsIG9mIGltcG9ydGFuY2UuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGENCitjb250cm9sbGVkIHZvY2FidWxhcnkuDQorDQorQ29uZmlkZW5jZQ0KKz09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBjb25maWRlbmNlIHdpdGggd2hpY2ggYSBwaWVjZSBvZiBtZXRhZGF0YSBoYXMgYmVlbg0KK2Fzc2lnbmVkLiBUaGUgdmFsdWUgb2YgdGhlIENvbmZpZGVuY2UgYXR0cmlidXRlIGlzIGEgZm9ybWFsIG5hbWUgZm9yIGENCitkZWdyZWUgb2YgY29uZmlkZW5jZS4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgYQ0KK2NvbnRyb2xsZWQgdm9jYWJ1bGFyeS4NCisNCitIb3dQcmVzZW50DQorPT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gb2YgdGhlIHdheSBpbiB3aGljaCBhIHBpZWNlIG9mIG1ldGFkYXRhIGFwcGxpZXMuIFRoZSB2YWx1ZSBvZg0KK3RoZSBIb3dQcmVzZW50IGF0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgd2F5IHRoZSBtZXRhZGF0YSBhcHBsaWVzLg0KK0l0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5Lg0KKw0KK0RhdGVBbmRUaW1lDQorPT09PT09PT09PT0NCitUaGUgZGF0ZSBhbmQgKG9wdGlvbmFsbHkpIHRpbWUgYXQgd2hpY2ggYSBwaWVjZSBvZiBtZXRhZGF0YSB3YXMgYXNzaWduZWQuIA0KKw0KK1VzZXMgdGhlIGZvcm1hdCBDQ1lZTU1ERFRISE1NU1N7K29yLX1ISE1NIChjZW50dXJ5LCB5ZWFyLCBtb250aCwgZGF5LCB0aW1lDQorc2VwYXJhdG9yLCBob3VycywgbWludXRlcywgc2Vjb25kcywgdGltZXpvbmUgc2VwYXJhdG9yLCBob3VycywgbWludXRlcykuIElmDQorb25seSB0aGUgRGF0ZSBpcyBuZWVkZWQsIHRoZW4gdGhlIHN1YnN0cmluZyBmcm9tIFQgb253YXJkcyBtYXkgYmUgb21pdHRlZC4NCisNCitUaGlzIGlzIHRoZSBCYXNpYyBGb3JtYXQgZGVmaW5lZCBieSBJU08gODYwMS4gQ0NZWSBpcyBhIDQtZGlnaXQgeWVhciBudW1iZXIuDQorTU0gaXMgYSAyLWRpZ2l0IG1vbnRoIG51bWJlci4gREQgaXMgYSAyLWRpZ2l0IGRheSBudW1iZXIuIFQgaXMgdGhlIGxldHRlciAnVCcuDQorSEggaXMgYSAyLWRpZ2l0IGhvdXIgbnVtYmVyICh1c2luZyBhIDI0LWhvdXIgY2xvY2spLiBNTSBpcyBhIDIgZGlnaXQgbWludXRlDQorbnVtYmVyLiAoTm90ZSB0aGF0IG1pZG5pZ2h0IG1heSBiZSByZXByZXNlbnRlZCBhcyAyNDAwIG9yIDI0MDAwMCBvbiB0aGUgZGF0ZQ0KK29mIHRoZSBkYXkgdGhhdCBpcyBlbmRpbmcsIG9yIGFzIDAwMDAgb3IgMDAwMDAwIG9uIHRoZSBkYXRlIG9mIHRoZSBkYXkgdGhhdCBpcw0KK2JlZ2lubmluZy4pDQorDQoreytvci19IGlzIHRoZSAnKycgY2hhcmFjdGVyIG9yIHRoZSAnLScgY2hhcmFjdGVyLCBhbmQgdGhlIGZvbGxvd2luZyBISE1NIGFyZQ0KK2hvdXJzIGFuZCBtaW51dGVzIG9mIG9mZnNldCBmcm9tIFVuaXZlcnNhbCBDby1vcmRpbmF0ZWQgVGltZSAoVVRDKSBhcyBkZWZpbmVkDQorYnkgSVNPIDg2MDEuIElmIHRoZSB0aW1lIGlzIGJlaW5nIGV4cHJlc3NlZCBpbiBVVEMsIHRoZW4gdGhlIHRpbWV6b25lIG9mZnNldA0KK21heSBiZSAnKzAwMDAnIG9yICctMDAwMCcuIElmIHRoZSB0aW1lIGlzIGJlaGluZCBVVEMsIHRoZSB0aW1lem9uZSBzZXBhcmF0b3INCitpcyAnLScuIElmIHRoZSB0aW1lIGlzIGFoZWFkIG9mIFVUQyB0aGUgdGltZXpvbmUgc2VwYXJhdG9yIGlzICcrJy4NCisNCitFeGFtcGxlOiAxMDoyNyBwLm0uIGluIE5ldyBZb3JrIG9uIDMxIERlY2VtYmVyIDIwMDAgd291bGQgYmUgZXhwcmVzc2VkIGFzIA0KKyIyMDAwMTIzMVQyMjI3MDAtMDUwMCIgYXMgTmV3IFlvcmsgaXMgZml2ZSBob3VycyBiZWhpbmQgVVRDIGluIHdpbnRlci4NCitBdCB0aGUgc2FtZSBtb21lbnQgaW4gTG9uZG9uLCB0aGUgZGF0ZSBhbmQgdGltZSB3b3VsZCBiZSBleHByZXNzZWQgYXMgDQordGltZSB3b3VsZCBiZSBleHByZXNzZWQgYXMgIjIwMDEwMTAxVDAzMjcwMCswMDAwIiBvciBhcyAsICIyMDAxMDEwMVQwMCswMDAwIiwgYXMNCitpbiBMb25kb24sIGl0IGlzIG5vdyAzOjI3IGEubS4gIG9uIDEgSmFudWFyeSAyMDAxLiBBdCB0aGUgc2FtZSBtb21lbnQgaW4gUGFyaXMsDQordGhlIGRhdGUgYW5kIHRpbWUgd291bGQgYmUgZXhwcmVzc2VkIGFzICIyMDAxMDEwMVQwNDI3MDArMDEwMCIsIGFzIFBhcmlzIGlzIG9uZQ0KK2hvdXIgYWhlYWQgb2YgVVRDIGluIHdpbnRlciwgYW5kIGl0IGlzIG5vdyA0OjI3IGEubS4gb24gMSBKYW51YXJ5IDIwMDEuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisNCistLT4NCis8IUVOVElUWSAlIGFzc2lnbm1lbnQgIiBBc3NpZ25lZEJ5ICBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgICBJbXBvcnRhbmNlICBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgICBDb25maWRlbmNlICBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgICBIb3dQcmVzZW50ICBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgICBEYXRlQW5kVGltZSBDREFUQSAgI0lNUExJRUQiPg0KKw0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IGZvcm1hbG5hbWUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisNCitGb3JtYWxOYW1lDQorPT09PT09PT09PQ0KK0Egc3RyaW5nIG9mIGNoYXJhY3RlcnMgd2hvc2UgbWVhbmluZyBpcyBkZXRlcm1pbmVkIGJ5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5Lg0KKw0KK1ZvY2FidWxhcnkNCis9PT09PT09PT09DQorVGhlIFZvY2FidWxhcnkgYXR0cmlidXRlLCBpZiBwcmVzZW50LCBwcm92aWRlcyBhIHBvaW50ZXIgdG8gYSBUb3BpY1NldCB3aGljaCBpcw0KK3RoZSBjb250cm9sbGVkIHZvY2FidWxhcnkgdGhhdCBjYW4gYmUgdXNlZCB0byByZXNvbHZlIHRoZSBtZWFuaW5nIG9mIHRoZQ0KK0Zvcm1hbE5hbWUuIFRoZSB2YWx1ZSBvZiB0aGUgVm9jYWJ1bGFyeSBhdHRyaWJ1dGUgaXMgYW4gaHR0cCBVUkwgb3IgYSBOZXdzTUwNCitVUk4sIG9yIHRoZSAjIGNoYXJhY3RlciBmb2xsb3dlZCBieSB0aGUgdmFsdWUgb2YgdGhlIER1aWQgYXR0cmlidXRlIG9mIHRoZSBhDQorVG9waWNTZXQgaW4gdGhlIGN1cnJlbnQgZG9jdW1lbnQuDQorDQorSWYgdGhlcmUgaXMgbm8gVm9jYWJ1bGFyeSBhdHRyaWJ1dGUsIHRoZW4gdGhlIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSB0byBiZSB1c2VkDQoraXMgbG9jYXRlZCBieSB0aGUgZm9sbG93aW5nIGFsZ29yaXRobToNCistIFByb2NlZWQgdG8gdGhlIHBhcmVudCBvZiB0aGUgY3VycmVudCBlbGVtZW50Lg0KKy0gSWYgaXQgaGFzIGEgQ2F0YWxvZyBlbGVtZW50IGFzIGl0cyBpbW1lZGlhdGUgY2hpbGQsIHNlZSB3aGV0aGVyIHRoYXQgQ2F0YWxvZw0KKyAgY29udGFpbnMgYSBSZXNvdXJjZSBlbGVtZW50IHdob3NlIERlZmF1bHRWb2NhYnVsYXJ5Rm9yIGNoaWxkIGNvbnRhaW5zIGFuIFhQYXRoDQorICBwYXR0ZXJuIHRoYXQgaXMgbWF0Y2hlZCBieSB0aGUgY3VycmVudCBlbGVtZW50LiBJZiBzbywgdGhlbiB0aGUgY29udHJvbGxlZA0KKyAgdm9jYWJ1bGFyeSBpcyB0aGUgcmVzb3VyY2UgaWRlbnRpZmllZCBieSB0aGF0IFJlc291cmNlIGVsZW1lbnQuDQorLSBJZiB0aGUgcGFyZW50IGRvZXMgbm90IG1lZXQgdGhlIGFib3ZlIGNvbmRpdGlvbiwgcHJvY2VlZCB0byBpdHMgcGFyZW50IGFuZA0KKyAgY2hlY2sgdGhlIHNhbWUgY29uZGl0aW9uLg0KKy0gQ29udGludWUgdW50aWwgYSB2b2NhYnVsYXJ5IGlzIGZvdW5kLCBvciBubyBmdXJ0aGVyIHBhcmVudCBlbGVtZW50cyBhcmUNCisgIGF2YWlsYWJsZSBiZWNhdXNlIHRoZSByb290IGVsZW1lbnQgaGFzIGJlZW4gcmVhY2hlZCBhbmQgaXQgdG9vIGZhaWxzIHRvIG1lZXQNCisgIHRoZSBjb25kaXRpb24uDQorDQorSWYgdGhlcmUgaXMgbm8gVm9jYWJ1bGFyeSBhdHRyaWJ1dGUgYW5kIHRoZSBhYm92ZSBhbGdvcml0aG0gZmFpbHMgdG8gaWRlbnRpZnkNCithIHJlc291cmNlIHRoYXQgc2VydmVzIGFzIHRoZSBjb250cm9sbGVkIHZvY2FidWxhcnksIHRoZXJlIGlzIGFuIGVycm9yLCB3aGljaA0KK3RoZSBOZXdzTUwgc3lzdGVtIG1heSBzaWduYWwgdG8gdGhlIHVzZXIuDQorDQorVGhlIE5ld3NNTCBzeXN0ZW0gbWF5IGFsc28gc2lnbmFsIGFuIGVycm9yIGlmIGEgdm9jYWJ1bGFyeSBpcyBzdWNjZXNzZnVsbHkNCitpZGVudGlmaWVkLCBidXQgaXQgY29udGFpbnMgbm8gaXRlbSB0aGF0IG1hdGNoZXMgdGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lDQord2hvc2UgbWVhbmluZyBpcyBzb3VnaHQuDQorDQorU2NoZW1lDQorPT09PT09DQorVGhlIFNjaGVtZSBhdHRyaWJ1dGUsIGlmIHByZXNlbnQsIHNlcnZlcyB0byBkaXN0aW5ndWlzaCB3aGljaCBvZiBwb3NzaWJseQ0KK211bHRpcGxlIG5hbWluZyBzY2hlbWVzIGluIHRoZSBjb250cm9sbGVkIHZvY2FidWxhcnkgaXMgdGhlIG9uZSB0aGF0IGdvdmVybnMNCit0aGlzIEZvcm1hbE5hbWUuIEZvciBhIG1hdGNoIHRvIGJlIG9idGFpbmVkIHdpdGhpbiB0aGUgY29udHJvbGxlZCB2b2NhYnVsYXJ5LA0KK3RoZSBydWxlIGlzIHRoYXQgdGhlIEZvcm1hbE5hbWUgYW5kIHRoZSBTY2hlbWUgbXVzdCBib3RoIG1hdGNoLiBJZiB0aGVyZSBpcw0KK25vIFNjaGVtZSBhdHRyaWJ1dGUgb24gdGhlIGN1cnJlbnQgZWxlbWVudCwgdGhlIG1hdGNoIHdpbGwgYmUgdG8gYW4gaXRlbSBpbg0KK3RoZSB2b2NhYnVsYXJ5IHRoYXQgaGFzIHRoZSBjdXJyZW50IGZvcm1hbCBuYW1lIGFuZCBubyBzY2hlbWUuIElmIHRoZXJlIGlzIGENCitTY2hlbWUgYXR0cmlidXRlIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQsIHRoZW4gYm90aCB0aGUgZm9ybWFsIG5hbWUgYW5kIHRoZQ0KK3NjaGVtZSBpbiB0aGUgY29udHJvbGxlZCB2b2NhYnVsYXJ5IG11c3QgbWF0Y2guDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVOVElUWSAlIGZvcm1hbG5hbWUgIiBGb3JtYWxOYW1lIENEQVRBICAjUkVRVUlSRUQNCisgICAgICAgICAgICAgICAgICAgICBWb2NhYnVsYXJ5IENEQVRBICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICAgIFNjaGVtZSAgICAgQ0RBVEEgICNJTVBMSUVEIj4NCisNCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IGxvY2FsaWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorRHVpZA0KKz09PT0NCitEdWlkIGlzIGEgIkRvY3VtZW50LXVuaXF1ZSBJZGVudGlmaWVyIi4gSXQgbXVzdCBzYXRpc2Z5IHRoZSBydWxlcyBmb3IgWE1MIElEDQorYXR0cmlidXRlczogaXQgbXVzdCBvbmx5IGNvbnRhaW4gbmFtZSBjaGFyYWN0ZXJzLCBhbmQgaXQgbXVzdCBzdGFydCB3aXRoIGEgDQorbmFtZS1zdGFydCBjaGFyYWN0ZXIgKG5vdCBhIGRpZ2l0KS4gSXRzIHZhbHVlIG11c3QgYmUgdW5pcXVlIHdpdGhpbiBhbnkgTmV3c01MDQorZG9jdW1lbnQuDQorDQorRXZlcnkgTmV3c01MIGVsZW1lbnQgdHlwZSBoYXMgRHVpZCBhcyBhbiBvcHRpb25hbCBhdHRyaWJ1dGUuIENvbWJpbmVkIHdpdGggdGhlDQorSWRlbnRpZmllciBlbGVtZW50LCBwcm92aWRpbmcgYSB2YWx1ZSBmb3IgdGhlIER1aWQgb2YgYW55IGVsZW1lbnQgaW4gYSBOZXdzTUwNCitkb2N1bWVudCBtYWtlcyB0aGUgZWxlbWVudCBnbG9iYWxseSBpZGVudGlmaWFibGUuIFRoZSBJZGVudGlmaWVyIGVsZW1lbnQgZ2l2ZXMNCitnbG9iYWwgaWRlbnRpZmljYXRpb24gdG8gdGhlIGRvY3VtZW50LCBhbmQgdGhlIER1aWQgcHJvdmlkZXMgbG9jYWwNCitpZGVudGlmaWNhdGlvbiBmb3IgdGhlIGVsZW1lbnQgd2l0aGluIHRoZSBkb2N1bWVudC4NCisNCitFdWlkDQorPT09PQ0KK0V1aWQgaXMgYW4gIkVsZW1lbnQtdW5pcXVlIElkZW50aWZpZXIiLiBJdHMgdmFsdWUgbXVzdCBiZSB1bmlxdWUgYW1vbmcgZWxlbWVudHMNCitvZiB0aGUgc2FtZSBlbGVtZW50LXR5cGUgYW5kIGhhdmluZyB0aGUgc2FtZSBwYXJlbnQgZWxlbWVudC4NCisNCitVc2Ugb2YgRXVpZCBhdHRyaWJ1dGUgbWFrZXMgaXQgcG9zc2libGUgdG8gaWRlbnRpZnkgYW55IE5ld3NNTCBlbGVtZW50IHdpdGhpbg0KK3RoZSBjb250ZXh0IG9mIGl0cyBsb2NhbCBicmFuY2ggb2YgdGhlIE5ld3NNTCBkb2N1bWVudCB0cmVlLiBUaGlzIG1ha2VzIGl0DQorcG9zc2libGUgdG8gY29weSwgb3IgaW5jbHVkZSBieSByZWZlcmVuY2UsIHN1YnRyZWVzIGludG8gbmV3IGNvbWJpbmF0aW9ucyBpbg0KK3dheXMgdGhhdCB3b3VsZCBicmVhayB0aGUgdW5pcXVlbmVzcyBvZiBEdWlkcyAodGhlcmVieSBmb3JjaW5nIG5ldyBEdWlkcyB0byBiZQ0KK2FsbG9jYXRlZCksIGJ1dCBzdGlsbCBiZWluZyBhYmxlIHRvIHJldGFpbiB0aGUgaWRlbnRpdHkgb2YgZWFjaCBlbGVtZW50LiBJZg0KK0V1aWRzIGFyZSBtYWludGFpbmVkIGF0IGV2ZXJ5IGxldmVsLCBpdCBpcyBwb3NzaWJsZSB0byBpZGVudGlmeSwgZm9yIGV4YW1wbGUNCisiVGhlIENvbnRlbnRJdGVtIHdob3NlIEV1aWQgaXMgYWJjIHdpdGhpbiB0aGUgTmV3c0NvbXBvbmVudCB3aG9zZSBFdWlkIGlzIGRlZiIuDQorU3VjaCBpZGVudGlmaWNhdGlvbiBwYXR0ZXJucyB3b3VsZCBiZSBwcmVzZXJ2ZWQgZXZlbiBhZnRlciAicHJ1bmluZyBhbmQNCitncmFmdGluZyIgb2Ygc3VidHJlZXMuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVOVElUWSAlIGxvY2FsaWQgIiBEdWlkIElEICAgICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICAgIEV1aWQgQ0RBVEEgICNJTVBMSUVEIj4NCisNCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBNb2RlbHMgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gZGF0YSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorV2hlcmUgZGF0YSBpcyBpbmNsdWRlZCwgaXQgbWF5IGJlIGRpcmVjdGx5IGluIHRoZSBmb3JtIG9mIGEgRGF0YUNvbnRlbnQgZWxlbWVudCwNCitvciBpbiB0aGUgZm9ybSBvZiBEYXRhQ29udGVudCB3cmFwcGVkIGluIGFuIEVuY29kaW5nIGVsZW1lbnQsIG9yIGJ5IHJlZmVyZW5jZQ0KK3Rocm91Z2ggYW4gSHJlZiBhdHRyaWJ1dGUsIGluIHdoaWNoIGNhc2UgbmVpdGhlciBhIERhdGFDb250ZW50IG5vciBhbiBFbmNvZGluZw0KK2VsZW1lbnQgd2lsbCBiZSBwcmVzZW50Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTlRJVFkgJSBkYXRhICIgKEVuY29kaW5nDQorICAgICAgICAgICAgICAgICB8IERhdGFDb250ZW50ICk/Ij4NCisNCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBwYXJ0eSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorUGVyc29uLCBvcmdhbmlzYXRpb24gb3IgY29tcGFueSBwbGF5aW5nIGEgc3BlY2lmaWMgcm9sZSBpbiB0aGUNCituZXdzIHdvcmtmbG93LiBUaGUgcm9sZSBiZWluZyBwbGF5ZWQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgcGFyZW50IGVsZW1lbnQuIE1vcmUNCitpbmZvcm1hdGlvbiBhYm91dCBpdCBjYW4gYmUgcHJvdmlkZWQgaW4gdGhlIG9wdGlvbmFsIENvbW1lbnQgc3ViZWxlbWVudHMuIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorLS0+DQorPCFFTlRJVFkgJSBwYXJ0eSAiIChDb21tZW50Kg0KKyAgICAgICAgICAgICAgICAgICwgUGFydHkrICkiPg0KKw0KKzwhLS0gDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMRU1FTlQgVFlQRSBERUNMQVJBVElPTlMgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBBZG1pbmlzdHJhdGl2ZU1ldGFkYXRhID09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitJbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvdmVuYW5jZSBvZiBhIE5ld3NDb21wb25lbnQuIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIEFkbWluaXN0cmF0aXZlTWV0YWRhdGEgIChDYXRhbG9nPyAsIEZpbGVOYW1lPyAsIFN5c3RlbUlkZW50aWZpZXI/ICwgUHJvdmlkZXI/ICwgQ3JlYXRvcj8gLCBTb3VyY2UqICwgQ29udHJpYnV0b3IqICwgUHJvcGVydHkqICk+DQorPCFBVFRMSVNUIEFkbWluaXN0cmF0aXZlTWV0YWRhdGEgICVsb2NhbGlkOyA+DQorPCEtLSANCisNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBBc3NvY2lhdGVkV2l0aCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgcmVmZXJlbmNlIHRvIGEgTmV3c0l0ZW0gd2l0aCB3aGljaCB0aGlzIG9uZSBpcyBhc3NvY2lhdGVkIChmb3IgZXhhbXBsZSwgYQ0KK3NlcmllcyBvZiBhcnRpY2xlcywgb3IgYSBjb2xsZWN0aW9uIG9mIHBob3Rvcywgb2Ygd2hpY2ggaXQgaXMgYSBwYXJ0KS4gVGhlIA0KK05ld3NJdGVtIGF0dHJpYnV0ZSBpZGVudGlmaWVzIHRoZSByZWxldmFudCBOZXdzSXRlbS4gSXRzIHZhbHVlIGNhbiBiZSBhbg0KK2h0dHAgVVJMIG9yIGEgTmV3c01MIFVSTiBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gUHVibGljSWRlbnRpZmllci4gVGhlDQorQ29tbWVudCBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGUgbmF0dXJlIG9mIHRoZSBhc3NvY2lhdGlvbi4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKy0tPg0KKzwhRUxFTUVOVCBBc3NvY2lhdGVkV2l0aCAgKENvbW1lbnQqICk+DQorPCFBVFRMSVNUIEFzc29jaWF0ZWRXaXRoICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5ld3NJdGVtIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBCYXNpc0ZvckNob2ljZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1RoZSBjb250ZW50IG9mIHRoaXMgZWxlbWVudCBpcyBhbiBYUGF0aCBzdGF0ZW1lbnQgb3IgZWxlbWVudC10eXBlIG5hbWUNCitpZGVudGlmeWluZyBpbmZvcm1hdGlvbiB3aXRoaW4gZWFjaCBOZXdzQ29tcG9uZW50IG9yIENvbnRlbnRJdGVtIHRoYXQgY2FuIGJlDQordXNlZCBhcyBhIGJhc2lzIGZvciBjaG9pY2UgYmV0d2VlbiBlcXVpdmFsZW50IE5ld3NDb21wb25lbnRzIG9yIENvbnRlbnRJdGVtcy4NCitUaGUgcm9vdCBvZiB0aGUgWFBhdGggY29ycmVzcG9uZHMgdG8gdGhlIE5ld3NDb21wb25lbnQgb3IgQ29udGVudEl0ZW0gaXRzZWxmLg0KK1RoZSBvcHRpb25hbCBSYW5rIGF0dHJpYnV0ZSBhbGxvd3MgcHJvdmlkZXJzIHRvIHBsYWNlIGEgbnVtZXJpY2FsIG9yZGVyIG9uIHRoZQ0KK2ltcG9ydGFuY2UgdGhleSB0aGluayBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGRpZmZlcmVudCBiYXNlcyBmb3IgY2hvaWNlLg0KK1NtYWxsZXIgbnVtYmVycyByZXByZXNlbnQgaGlnaGVyIGltcG9ydGFuY2UuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgQmFzaXNGb3JDaG9pY2UgICgjUENEQVRBICk+DQorPCFBVFRMSVNUIEJhc2lzRm9yQ2hvaWNlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJhbmsgICAgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBCeUxpbmUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBuYXR1cmFsLWxhbmd1YWdlIHN0YXRlbWVudCBvZiB0aGUgYXV0aG9yL2NyZWF0b3IgaW5mb3JtYXRpb24uDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgQnlMaW5lICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgQnlMaW5lICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICB4bWw6bGFuZyBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ2F0YWxvZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIGNvbnRhaW5lciBmb3IgUmVzb3VyY2UgYW5kIFRvcGljVXNlIGVsZW1lbnRzLiBSZXNvdXJjZSBlbGVtZW50cyBtYXAgVVJOcyB0bw0KK1VSTHMgYW5kIGluZGljYXRlIGRlZmF1bHQgdm9jYWJ1bGFyaWVzIHdoaWNoIGFwcGx5IHRvIHRoZSBmb3JtYWwgbmFtZXMgb2YNCitjZXJ0YWluIGVsZW1lbnRzIHdpdGhpbiB0aGUgc3VidHJlZSB0aGF0IGJlZ2lucyB3aXRoIHRoZSBpbW1lZGlhdGUgcGFyZW50IG9mDQordGhlIENhdGFsb2cgZWxlbWVudC4gVG9waWNVc2UgZWxlbWVudHMgaW5kaWNhdGUgd2hlcmUgaW4gdGhlIE5ld3NNTCBkb2N1bWVudA0KK2NlcnRhaW4gVG9waWNzIGFyZSB1c2VkLiBUaGUgb3B0aW9uYWwgSHJlZiBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBwb2ludGVyIHRvDQorYSBDYXRhbG9nIGVsZW1lbnQgZWxzZXdoZXJlIGluIHRoaXMgb3IgYW5vdGhlciBkb2N1bWVudC4gSXRzIHZhbHVlIGNvbnNpc3RzIG9mDQorYSAjIGNoYXJhY3RlciBmb2xsb3dlZCBieSB0aGUgdmFsdWUgb2YgdGhlIER1aWQgYXR0cmlidXRlIG9mIHRoZSByZWZlcmVuY2VkDQorQ2F0YWxvZyBlbGVtZW50IGFuZCBwcmVjZWRlZCwgaWYgdGhlIHJlZmVyZW5jZWQgQ2F0YWxvZyBpcyBub3QgaW4gdGhlIGN1cnJlbnQNCitkb2N1bWVudCwgYnkgYW4gaHR0cCBVUkwgb3IgYSBOZXdzTUwgVVJOIGlkZW50aWZ5aW5nIHRoZSBkb2N1bWVudCBvciBOZXdzSXRlbQ0KK2luIHdoaWNoIHRoZSBDYXRhbG9nIGFwcGVhcnMuIElmIHRoZSBIcmVmIGF0dHJpYnV0ZSBpcyBwcmVzZW50IG9uIGEgQ2F0YWxvZw0KK2VsZW1lbnQsIHRoZW4gdGhhdCBlbGVtZW50IHNob3VsZCBiZSBlbXB0eS4gSWYgaXQgY29udGFpbnMgc3ViZWxlbWVudHMsIHRoZQ0KK05ld3NNTCBzeXN0ZW0gbWF5IHNpZ25hbCBhbiBlcnJvci4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBDYXRhbG9nICAoUmVzb3VyY2UqICwgVG9waWNVc2UqICk+DQorPCFBVFRMSVNUIENhdGFsb2cgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICBIcmVmICAgIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IENoYXJhY3RlcmlzdGljcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0luZm9ybWF0aW9uIGFib3V0IHRoZSBwaHlzaWNhbCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYSBDb250ZW50SXRlbS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBDaGFyYWN0ZXJpc3RpY3MgIChTaXplSW5CeXRlcz8gLCBQcm9wZXJ0eSogKT4NCis8IUFUVExJU1QgQ2hhcmFjdGVyaXN0aWNzICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ29tbWVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIG5hdHVyYWwtbGFuZ3VhZ2UgZGVzY3JpcHRpb24gb2YsIG9yIHN0YXRlbWVudCBhYm91dCwgdGhlIGN1cnJlbnQgZWxlbWVudC4gVGhlDQorb3B0aW9uYWwgVHJhbnNsYXRpb25PZiBhdHRyaWJ1dGUgaXMgYSBwb2ludGVyIHRvIGFub3RoZXIgQ29tbWVudCBlbGVtZW50LCBvZg0KK3doaWNoIHRoaXMgb25lIGlzIGEgZGlyZWN0IHRyYW5zbGF0aW9uLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIENvbW1lbnQgICgjUENEQVRBICk+DQorPCFBVFRMSVNUIENvbW1lbnQgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyAgICAgIENEQVRBICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbk9mIElEUkVGICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ29udGVudEl0ZW0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgbmV3cyBvYmplY3QgdGhhdCBjYXJyaWVzIG9yIGlkZW50aWZpZXMgY29udGVudCBpbnRlbmRlZCBmb3IgcHJlc2VudGF0aW9uIHRvDQoraHVtYW5zLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIENvbnRlbnRJdGVtICAoQ29tbWVudCogLCBDYXRhbG9nPyAsIE1lZGlhVHlwZT8gLCBGb3JtYXQ/ICwgTWltZVR5cGU/ICwgTm90YXRpb24/ICwgQ2hhcmFjdGVyaXN0aWNzPyAsICVkYXRhOyApPg0KKzwhQVRUTElTVCBDb250ZW50SXRlbSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICBIcmVmICAgIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ29udHJpYnV0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluZGl2aWR1YWwgYW5kL29yIGNvbXBhbnkgb3Igb3JnYW5pc2F0aW9uIHRoYXQgbW9kaWZpZWQgb3IgZW5oYW5jZWQgYSBuZXdzDQorb2JqZWN0IGFmdGVyIGl0cyBjcmVhdGlvbi4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBDb250cmlidXRvciAgKCVwYXJ0eTsgKT4NCis8IUFUVExJU1QgQ29udHJpYnV0b3IgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IENvcHlyaWdodCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1RoZSBjb3B5cmlnaHQgdGhhdCBwZXJ0YWlucyB0byBhIG5ld3Mgb2JqZWN0Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIENvcHlyaWdodCAgKENvbW1lbnQqICwgQ29weXJpZ2h0SG9sZGVyICwgQ29weXJpZ2h0RGF0ZSApPg0KKzwhQVRUTElTVCBDb3B5cmlnaHQgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50OyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBDb3B5cmlnaHREYXRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgbmF0dXJhbC1sYW5ndWFnZSBzdGF0ZW1lbnQgb2YgdGhlIGNvcHlyaWdodCBkYXRlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorLS0+DQorPCFFTEVNRU5UIENvcHlyaWdodERhdGUgICgjUENEQVRBIHwgT3JpZ2luICkqPg0KKzwhQVRUTElTVCBDb3B5cmlnaHREYXRlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sOmxhbmcgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ29weXJpZ2h0SG9sZGVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBuYXR1cmFsLWxhbmd1YWdlIHN0YXRlbWVudCBpbmRpY2F0aW5nIHdobyBvd25zIHRoZSBjb3B5cmlnaHQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgQ29weXJpZ2h0SG9sZGVyICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgQ29weXJpZ2h0SG9sZGVyICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ29weXJpZ2h0TGluZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIG5hdHVyYWwtbGFuZ3VhZ2Ugc3RhdGVtZW50IG9mIHRoZSBjb3B5cmlnaHQgaW5mb3JtYXRpb24uDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgQ29weXJpZ2h0TGluZSAgKCNQQ0RBVEEgfCBPcmlnaW4gKSo+DQorPCFBVFRMSVNUIENvcHlyaWdodExpbmUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ3JlYXRvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpdmlkdWFsIGFuZC9vciBjb21wYW55IG9yIG9yZ2FuaXNhdGlvbiB0aGF0IGNyZWF0ZWQgYSBuZXdzIG9iamVjdC4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBDcmVhdG9yICAoJXBhcnR5OyApPg0KKzwhQVRUTElTVCBDcmVhdG9yICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBDcmVkaXRMaW5lID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIG5hdHVyYWwtbGFuZ3VhZ2Ugc3RhdGVtZW50IG9mIGNyZWRpdCBpbmZvcm1hdGlvbi4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBDcmVkaXRMaW5lICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgQ3JlZGl0TGluZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgIHhtbDpsYW5nIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRGF0YUNvbnRlbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1RoZSBkYXRhIHRoYXQgY2FycmllcyB0aGUgY29udGVudCBvZiBhIENvbnRlbnRJdGVtLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIERhdGFDb250ZW50IEFOWT4NCis8IUFUVExJU1QgRGF0YUNvbnRlbnQgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRGF0ZUFuZFRpbWUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgZm9ybWFsIHJlcHJlc2VudGF0aW9uIG9mIGEgZGF0ZSBhbmQsIG9wdGlvbmFsbHksIHRpbWUsIGV4cHJlc3NlZCBpbiBJU08gODYwMQ0KK0Jhc2ljIEZvcm1hdCwgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZSBEYXRlQW5kVGltZSBhdHRyaWJ1dGUgd2l0aGluDQordGhlIGFzc2lnbm1lbnQgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIERhdGVBbmRUaW1lICAoI1BDREFUQSApPg0KKzwhQVRUTElTVCBEYXRlQW5kVGltZSAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBEYXRlSWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBkYXRlIGlkZW50aWZpZXIgb2YgYSBOZXdzSXRlbSBpbiBzaG9ydCBJU08gODYwMSBCYXNpYyBGb3JtYXQgKENDWVlNTUREKSwgYXMNCitkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlIERhdGVBbmRUaW1lIGF0dHJpYnV0ZSB3aXRoaW4gdGhlIGFzc2lnbm1lbnQNCitFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuIFRoZSBEYXRlSWQgaXMgcGFydCBvZiB0aGUgZm9ybWFsIGlkZW50aWZpY2F0aW9uIG9mIHRoZQ0KK05ld3NJdGVtLCBhbmQgbXVzdCByZW1haW4gdGhlIHNhbWUgdGhyb3VnaCBzdWNjZXNzaXZlIHJldmlzaW9ucyBvZiB0aGUgc2FtZQ0KK05ld3NJdGVtLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIERhdGVJZCAgKCNQQ0RBVEEgKT4NCisNCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRGF0ZUxhYmVsID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBkYXRlIG9yIGRhdGUgYW5kIHRpbWUsIHVzZWQgYnkgaHVtYW4gdXNlcnMgdG8gaGVscA0KK2lkZW50aWZ5IGEgTmV3c0l0ZW0uDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRGF0ZUxhYmVsICAoI1BDREFUQSApPg0KKzwhQVRUTElTVCBEYXRlTGFiZWwgICVsb2NhbGlkOyA+DQorPCEtLQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IERhdGVMaW5lID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBuYXR1cmFsLWxhbmd1YWdlIHN0YXRlbWVudCBvZiB0aGUgZGF0ZSBhbmQvb3IgcGxhY2Ugb2YgY3JlYXRpb24uDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRGF0ZUxpbmUgICgjUENEQVRBIHwgT3JpZ2luICkqPg0KKzwhQVRUTElTVCBEYXRlTGluZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBEZWZhdWx0Vm9jYWJ1bGFyeUZvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIHRoYXQgdGhlIHBhcmVudCBSZXNvdXJjZSBwcm92aWRlcyB0aGUgZGVmYXVsdCB2b2NhYnVsYXJ5IHRoYXQNCitkZXRlcm1pbmVzIHRoZSBtZWFuaW5ncyBhbmQgcGVybWl0dGVkIHZhbHVlcyBvZiB0aGUgZGF0YSBvY2N1cnJpbmcgaW4gYQ0KK3BhcnRpY3VsYXIgcGFydCBvZiBhIE5ld3NNTCBkb2N1bWVudCBzdWJ0cmVlLiBUaGUgQ29udGV4dCBhdHRyaWJ1dGUgaXMgYW4NCitYUGF0aCBzdGF0ZW1lbnQgaWRlbnRpZnlpbmcgdGhlIGRhdGEgdG8gd2hpY2ggdGhlIGRlZmF1bHQgdm9jYWJ1bGFyeSBhcHBsaWVzLg0KK1RoZSBvcHRpb25hbCBTY2hlbWUgYXR0cmlidXRlIGlkZW50aWZpZXMgdGhlIHJlbGV2YW50IG5hbWluZyBzY2hlbWUgaWYgdGhlDQorUmVzb3VyY2UgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBuYW1pbmcgc2NoZW1lLiBJZiB0aGUgUmVzb3VyY2UgaXMgYSBOZXdzTUwNCitUb3BpY1NldCwgdGhlbiB0aGUgbWVhbmluZyBvZiB0aGUgZGF0YSBpZGVudGlmaWVkIGJ5IHRoZSBDb250ZXh0IGlzIHByb3ZpZGVkDQorYnkgdGhlIFRvcGljIHdob3NlIEZvcm1hbE5hbWUgc3ViZWxlbWVudCBtYXRjaGVzIHRoYXQgZGF0YS4gSWYgdGhlIFJlc291cmNlIGlzDQorbm90IGEgTmV3c01MIFRvcGljU2V0LCB0aGVuIHRoZSB3YXkgaW4gd2hpY2ggaXQgaXMgaW50ZXJwcmV0ZWQgaW4gb3JkZXIgdG8NCitwcm92aWRlIGEgbWVhbmluZyBmb3IgdGhlIGRhdGEgaXMgbm90IGRlZmluZWQgYnkgTmV3c01MIGJ1dCBieSB0aGUgYXV0aG9yaXR5DQordGhhdCBnb3Zlcm5zIHdoYXRldmVyIGZvcm1hdCB0aGUgUmVzb3VyY2UgdXNlcy4NCisNCitFeGFtcGxlOg0KKzxEZXNjcmlwdGl2ZU1ldGFkYXRhPg0KKyA8Q2F0YWxvZz4NCisgIDxSZXNvdXJjZSBEdWlkPSJyZXNvdXJjZTEiPg0KKyAgIDxVcm4+dXJuOm5ld3NtbDppcHRjLm9yZzoyMDAwMTAwNjpSYW5raW5nOjE8L1Vybj4NCisgICA8VXJsPnd3dy5pcHRjLmNvbS92b2NhYnVsYXJpZXMvaXB0Yy1yYW5rLnhtbDwvVXJsPg0KKyAgIDxEZWZhdWx0Vm9jYWJ1bGFyeUZvciBDb250ZXh0PSJAQ29uZmlkZW5jZSIvPg0KKyAgIDxEZWZhdWx0Vm9jYWJ1bGFyeUZvciBDb250ZXh0PSJASW1wb3J0YW5jZSIvPg0KKyAgPC9SZXNvdXJjZT4NCisgIDxSZXNvdXJjZSBEdWlkPSJyZXNvdXJjZTIiPg0KKyAgIDxVcm4+dXJuOm5ld3NtbDppcHRjLm9yZzoyMDAwMTAwNjpUb3BpY1R5cGVzOjE8L1Vybj4NCisgICA8VXJsPnd3dy5pcHRjLmNvbS92b2NhYnVsYXJpZXMvaXB0Yy10b3BpY3R5cGUueG1sPC9Vcmw+DQorICAgPERlZmF1bHRWb2NhYnVsYXJ5Rm9yIENvbnRleHQ9IlRvcGljVHlwZUBGb3JtYWxOYW1lIi8+DQorICA8L1Jlc291cmNlPg0KKyA8L0NhdGFsb2c+DQorIDxUb3BpY1NldD4NCisgIDxUb3BpYyBEdWlkPSJ0b3BpYzEiPg0KKyAgIDxUb3BpY1R5cGUgRm9ybWFsTmFtZT0iUGVyc29uIj4NCisgICA8RGVzY3JpcHRpb24gVmFyaWFudD0iTmFtZSI+QmlsbCBDbGludG9uPC9EZXNjcmlwdGlvbj4NCisgICA8RGVzY3JpcHRpb24gVmFyaWFudD0iUG9zaXRpb24iPlByZXNpZGVudCBvZiB0aGUgVVNBPC9EZXNjcmlwdGlvbj4NCisgIDwvVG9waWM+DQorIDwvVG9waWNTZXQ+DQorIDxUb3BpY09jY3VycmVuY2UNCisgIEFzc2lnbmVkQnk9IkRlc2sgRWRpdG9yIg0KKyAgQ29uZmlkZW5jZT0iSGlnaCINCisgIEhvd1ByZXNlbnQ9InByaW5jaXBhbCBzdWJqZWN0Ig0KKyAgVG9waWM9IiN0b3BpYzEiLz4NCis8L0Rlc2NyaXB0aXZlTWV0YWRhdGE+DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRGVmYXVsdFZvY2FidWxhcnlGb3IgRU1QVFk+DQorPCFBVFRMSVNUIERlZmF1bHRWb2NhYnVsYXJ5Rm9yICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRleHQgQ0RBVEEgICNSRVFVSVJFRA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NoZW1lICBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRGVsZXRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluc3RydWN0aW9uIHRvIGRlbGV0ZSBhbiBlbGVtZW50IHdpdGhpbiBhIE5ld3NJdGVtLiBUaGUgTmV3c0l0ZW0gaXMNCit0aGUgcHJldmlvdXMgcmV2aXNpb24gb2YgdGhlIGN1cnJlbnQgb25lLCBhbmQgdGhlIGVsZW1lbnQgdG8gYmUgZGVsZXRlZCBpcyB0aGUNCitvbmUgd2hvc2UgRHVpZCB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgdmFsdWUgb2YgdGhlIERlbGV0ZSBlbGVtZW50J3MgRHVpZFJlZg0KK2F0dHJpYnV0ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBEZWxldGUgRU1QVFk+DQorPCFBVFRMSVNUIERlbGV0ZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgRHVpZFJlZiBDREFUQSAgI1JFUVVJUkVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBEZXJpdmVkRnJvbSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSByZWZlcmVuY2UgdG8gYW4gTmV3c0l0ZW0gZnJvbSB3aGljaCB0aGlzIG9uZSBpcyBkZXJpdmVkLiBUaGUgTmV3c0l0ZW0gYXR0cmlidXRlDQoraWRlbnRpZmllcyB0aGUgcmVsZXZhbnQgTmV3c0l0ZW0uIEl0cyB2YWx1ZSBjYW4gYmUgYW4gaHR0cCBVUkwgb3IgYSBOZXdzTUwgVVJODQorYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIFB1YmxpY0lkZW50aWZpZXIuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRGVyaXZlZEZyb20gIChDb21tZW50KiApPg0KKzwhQVRUTElTVCBEZXJpdmVkRnJvbSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICBOZXdzSXRlbSBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IERlc2NyaXB0aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIGRlc2NyaXB0aW9uIHRoYXQgaWRlbnRpZmllcyBhIFRvcGljLCB0aGVyZWJ5IGluZGljYXRpbmcgdGhlIG1lYW5pbmcgb2YgYQ0KK2Zvcm1hbCBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGF0IFRvcGljLiBUaGUgeG1sOmxhbmcgYXR0cmlidXRlIGluZGljYXRlcyB3aGF0DQorbGFuZ3VhZ2UgdGhlIGRlc2NyaXB0aW9uIGlzIGluLiBUaGUgb3B0aW9uYWwgVmFyaWFudCBhdHRyaWJ1dGUgYWxsb3dzIG11bHRpcGxlDQorZGVzY3JpcHRpb25zIHRvIGJlIGdpdmVuIGluIHRoZSBzYW1lIGxhbmd1YWdlLCBhbmQgbWVhbmluZ2Z1bGx5IGRpc3Rpbmd1aXNoZWQNCitmcm9tIG9uZSBhbm90aGVyLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIERlc2NyaXB0aW9uICAoI1BDREFUQSApPg0KKzwhQVRUTElTVCBEZXNjcmlwdGlvbiAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhbnQgIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBEZXNjcmlwdGl2ZU1ldGFkYXRhID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0luZm9ybWF0aW9uIGRlc2NyaWJpbmcgdGhlIGNvbnRlbnQgb2YgYSBOZXdzQ29tcG9uZW50LiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBEZXNjcmlwdGl2ZU1ldGFkYXRhICAoQ2F0YWxvZz8gLCBMYW5ndWFnZSogLCBHZW5yZT8gLCBTdWJqZWN0Q29kZSogLCBPZkludGVyZXN0VG8qICwgVG9waWNPY2N1cnJlbmNlKiAsIFByb3BlcnR5KiApPg0KKzwhQVRUTElTVCBEZXNjcmlwdGl2ZU1ldGFkYXRhICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWFzc2lnbm1lbnQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVuY29kaW5nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorVGhlIGVuY29kaW5nIG9mIHRoZSBkYXRhIGNvbXByaXNpbmcgdGhlIGNvbnRlbnQgb2YgYSBDb250ZW50SXRlbS4gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRW5jb2RpbmcgJWRhdGE7Pg0KKzwhQVRUTElTVCBFbmNvZGluZyAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICBOb3RhdGlvbiBDREFUQSAgI1JFUVVJUkVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVuZERhdGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBuYXR1cmFsLWxhbmd1YWdlIHN0YXRlbWVudCBvZiB0aGUgZGF0ZSBhdCB3aGljaCBzcGVjaWZpZWQgdXNhZ2UgcmlnaHRzIGNvbWUNCit0byBhbiBlbmQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRW5kRGF0ZSAgKCNQQ0RBVEEgfCBPcmlnaW4gKSo+DQorPCFBVFRMSVNUIEVuZERhdGUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyAgIENEQVRBICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRmlsZU5hbWUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitUaGUgc3VnZ2VzdGVkIG9yIGFjdHVhbCBzdG9yYWdlIGZpbGUgbmFtZSBmb3IgYSBOZXdzSXRlbS4gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRmlsZU5hbWUgICgjUENEQVRBICk+DQorPCFBVFRMSVNUIEZpbGVOYW1lICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZpcnN0Q3JlYXRlZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitUaGUgZGF0ZSBhbmQsIG9wdGlvbmFsbHksIHRpbWUgYXQgd2hpY2ggYSBOZXdzSXRlbSB3YXMgZmlyc3QgY3JlYXRlZCwgZXhwcmVzc2VkDQoraW4gSVNPIDg2MDEgQmFzaWMgRm9ybWF0LCBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlIERhdGVBbmRUaW1lDQorYXR0cmlidXRlIHdpdGhpbiB0aGUgYXNzaWdubWVudCBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgRmlyc3RDcmVhdGVkICAoI1BDREFUQSApPg0KKzwhQVRUTElTVCBGaXJzdENyZWF0ZWQgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRm9ybWFsTmFtZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0Egc3RyaW5nIG9mIGNoYXJhY3RlcnMgd2hvc2UgbWVhbmluZyBpcyBkZXRlcm1pbmVkIGJ5IGEgbmFtaW5nIHNjaGVtZSB3aXRoaW4gYQ0KK2NvbnRyb2xsZWQgdm9jYWJ1bGFyeS4gVGhlIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBtYXkgKGJ1dCBpcyBub3QgcmVxdWlyZWQgdG8pDQordGFrZSB0aGUgZm9ybSBvZiBhIE5ld3NNTCBUb3BpY1NldC4gVGhlIG9wdGlvbmFsIFNjaGVtZSBhdHRyaWJ1dGUgZGV0ZXJtaW5lcw0KK3doaWNoIG5hbWluZyBzY2hlbWUgYXBwbGllcywgd2hlbiBzZXZlcmFsIGV4aXN0IHdpdGhpbiB0aGUgc2FtZSBjb250cm9sbGVkDQordm9jYWJ1bGFyeS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBGb3JtYWxOYW1lICAoI1BDREFUQSApPg0KKzwhQVRUTElTVCBGb3JtYWxOYW1lICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgU2NoZW1lICBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZvcm1hdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBmb3JtYXQgb2YgYSBDb250ZW50SXRlbS4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lDQorYXR0cmlidXRlIGlzIGEgZm9ybWFsIG5hbWUgZm9yIHRoZSBGb3JtYXQuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzIGFyZQ0KK2RldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZQ0KK2Zvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIEZvcm1hdCBFTVBUWT4NCis8IUFUVExJU1QgRm9ybWF0ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZ1dHVyZVN0YXR1cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBzdGF0dXMgYSBOZXdzSXRlbSB3aWxsIGhhdmUgYXQgYSBzcGVjaWZpZWQgZnV0dXJlIGRhdGUuIFRoZQ0KK3ZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lIGF0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgRnV0dXJlU3RhdHVzLiBJdHMNCittZWFuaW5nIGlzIGRldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50DQordG8gdGhlIGZvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIEZ1dHVyZVN0YXR1cyBFTVBUWT4NCis8IUFUVExJU1QgRnV0dXJlU3RhdHVzICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEdlbnJlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBHZW5yZSBvZiBhIE5ld3NDb21wb25lbnQuIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZQ0KK2F0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgR2VucmUuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzIGFyZQ0KK2RldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZQ0KK2Zvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIEdlbnJlIEVNUFRZPg0KKzwhQVRUTElTVCBHZW5yZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsNCisgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50OyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEdlb2dyYXBoeSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgbmF0dXJhbC1sYW5ndWFnZSBzdGF0ZW1lbnQgb2YgdGhlIGdlb2dyYXBoaWNhbCBhcmVhIG9yIGFyZWFzIHRvIHdoaWNoDQorc3BlY2lmaWVkIHVzYWdlIHJpZ2h0cyBhcHBseS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBHZW9ncmFwaHkgICgjUENEQVRBIHwgT3JpZ2luICkqPg0KKzwhQVRUTElTVCBHZW9ncmFwaHkgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgIHhtbDpsYW5nICAgQ0RBVEEgICNJTVBMSUVEDQorICAgICAgICAgICAgICAgICAgICAgJWFzc2lnbm1lbnQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEhlYWRMaW5lID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBkaXNwbGF5YWJsZSBoZWFkbGluZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBIZWFkTGluZSAgKCNQQ0RBVEEgfCBPcmlnaW4gKSo+DQorPCFBVFRMSVNUIEhlYWRMaW5lICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgIHhtbDpsYW5nIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBJZGVudGlmaWNhdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0lkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgTmV3c0l0ZW0uDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgSWRlbnRpZmljYXRpb24gIChOZXdzSWRlbnRpZmllciAsIE5hbWVMYWJlbD8gLCBEYXRlTGFiZWw/ICwgTGFiZWwqICk+DQorPCFBVFRMSVNUIElkZW50aWZpY2F0aW9uICAlbG9jYWxpZDsgPg0KKzwhLS0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gSW5zZXJ0QWZ0ZXIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluc3RydWN0aW9uIHRvIGluc2VydCBjb250ZW50IGFmdGVyIGEgZGVzaWduYXRlZCBlbGVtZW50IHdpdGhpbiBhIE5ld3NJdGVtLg0KK1RoZSBjb250ZW50IHRvIGJlIGluc2VydGVkIGlzIHRoZSBjb250ZW50IG9mIHRoZSBJbnNlcnRBZnRlciBlbGVtZW50LiBUaGUNCitOZXdzSXRlbSBpbnRvIHdoaWNoIGl0IGlzIHRvIGJlIGluc2VydGVkIGlzIHRoZSBwcmV2aW91cyByZXZpc2lvbiBvZiB0aGUgY3VycmVudA0KK29uZSwgYW5kIHRoZSBlbGVtZW50IGFmdGVyIHdoaWNoIGl0IGlzIHRvIGJlIGluc2VydGVkIGlzIHRoZSBvbmUgd2hvc2UgRHVpZA0KK3ZhbHVlIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiB0aGUgSW5zZXJ0QWZ0ZXIgZWxlbWVudCdzIER1aWRSZWYgYXR0cmlidXRlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIEluc2VydEFmdGVyIEFOWT4NCis8IUFUVExJU1QgSW5zZXJ0QWZ0ZXIgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICAgRHVpZFJlZiBDREFUQSAgI1JFUVVJUkVEID4NCis8IS0tDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEluc2VydEJlZm9yZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbnN0cnVjdGlvbiB0byBpbnNlcnQgY29udGVudCBiZWZvcmUgYSBkZXNpZ25hdGVkIGVsZW1lbnQgd2l0aGluIGEgTmV3c0l0ZW0uDQorVGhlIGNvbnRlbnQgdG8gYmUgaW5zZXJ0ZWQgaXMgdGhlIGNvbnRlbnQgb2YgdGhlIEluc2VydEJlZm9yZSBlbGVtZW50LiBUaGUNCitOZXdzSXRlbSBpbnRvIHdoaWNoIGl0IGlzIHRvIGJlIGluc2VydGVkIGlzIHRoZSBwcmV2aW91cyByZXZpc2lvbiBvZiB0aGUgY3VycmVudA0KK29uZSwgYW5kIHRoZSBlbGVtZW50IGJlZm9yZSB3aGljaCBpdCBpcyB0byBiZSBpbnNlcnRlZCBpcyB0aGUgb25lIHdob3NlIER1aWQNCit2YWx1ZSBpcyBlcXVhbCB0byB0aGUgdmFsdWUgb2YgdGhlIEluc2VydEJlZm9yZSBlbGVtZW50J3MgRHVpZFJlZiBhdHRyaWJ1dGUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgSW5zZXJ0QmVmb3JlIEFOWT4NCis8IUFUVExJU1QgSW5zZXJ0QmVmb3JlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICBEdWlkUmVmIENEQVRBICAjUkVRVUlSRUQgPg0KKzwhLS0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gSW5zdHJ1Y3Rpb24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluc3RydWN0aW9uIGZyb20gYSBuZXdzIHByb3ZpZGVyIHRvIHRoZSByZWNpcGllbnQgb2YgYSBOZXdzSXRlbS4gQSBzcGVjaWFsDQorY2FzZSBvZiBJbnN0cnVjdGlvbiBpcyBhbiBpbmRpY2F0aW9uIG9mIHRoZSBlZmZlY3QgdGhlIGN1cnJlbnQgcmV2aXNpb24gb2YgYQ0KK05ld3NJdGVtIGhhcyBvbiB0aGUgc3RhdHVzIG9mIGFueSBwcmV2aW91cyByZXZpc2lvbnMgb2YgdGhlIE5ld3NJdGVtIHRoYXQgbWF5DQorc3RpbGwgYmUgb24gdGhlIHJlY2lwaWVudCdzIHN5c3RlbS4gSW4gdGhpcyBjYXNlLCBpdCB3aWxsIGNvbnRhaW4gb25lIG9yIG1vcmUNCitSZXZpc2lvblN0YXR1cyBlbGVtZW50cy4gT3RoZXJ3aXNlLCB0aGUgdmFsdWUgb2YgdGhlIEZvcm1hbE5hbWUgYXR0cmlidXRlIGlzIGENCitmb3JtYWwgbmFtZSBmb3IgdGhlIEluc3RydWN0aW9uLCBhbmQgaXRzIG1lYW5pbmcgaXMgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQNCit2b2NhYnVsYXJ5IGFzIGRlc2NyaWJlZCBpbiB0aGUgY29tbWVudCB0byB0aGUgZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24NCithYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBJbnN0cnVjdGlvbiAgKFJldmlzaW9uU3RhdHVzKiApPg0KKzwhQVRUTElTVCBJbnN0cnVjdGlvbiAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEtleXdvcmRMaW5lID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIGRpc3BsYXlhYmxlIHNldCBvZiBrZXl3b3JkcyByZWxldmFudCB0byBhIG5ld3Mgb2JqZWN0LiBUaGlzIGNhbiBiZSB1c2VkIGJ5IGENCitOZXdzTUwgc3lzdGVtIHRvIGFzc2lzdCBtYW51YWwgb3IgYXV0b21hdGVkIHNlYXJjaGVzLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIEtleXdvcmRMaW5lICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgS2V5d29yZExpbmUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICAgeG1sOmxhbmcgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBMYWJlbCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgYSBOZXdzSXRlbS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBMYWJlbCAgKExhYmVsVHlwZSAsIExhYmVsVGV4dCApPg0KKzwhQVRUTElTVCBMYWJlbCAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IExhYmVsVGV4dCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorVGhlIHRleHQgdGhhdCBjb25zdGl0dXRlcyBhIExhYmVsIG9mIGEgZ2l2ZW4gTGFiZWxUeXBlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIExhYmVsVGV4dCAgKCNQQ0RBVEEgKT4NCis8IUFUVExJU1QgTGFiZWxUZXh0ICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IExhYmVsVHlwZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIHVzZXItZGVmaW5lZCB0eXBlIG9mIGxhYmVsLiBUaGUgdmFsdWUgb2YgdGhlIEZvcm1hbE5hbWUgYXR0cmlidXRlIGlzIGEgZm9ybWFsDQorbmFtZSBmb3IgdGhlIExhYmVsVHlwZS4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgYQ0KK2NvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlIGZvcm1hbG5hbWUgRU5USVRZDQorZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTGFiZWxUeXBlIEVNUFRZPg0KKzwhQVRUTElTVCBMYWJlbFR5cGUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBMYW5ndWFnZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gb2YgdGhlLCBvciBhLCBsYW5ndWFnZSB1c2VkIGluIGEgY29udGVudCBpdGVtLiBUaGUgdmFsdWUgb2YgdGhlDQorRm9ybWFsTmFtZSBhdHRyaWJ1dGUgaXMgYSBmb3JtYWwgbmFtZSBmb3IgdGhlIExhbmd1YWdlLiBJdHMgbWVhbmluZyBhbmQNCitwZXJtaXR0ZWQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5IGFzIGRlc2NyaWJlZCBpbiB0aGUNCitjb21tZW50IHRvIHRoZSBmb3JtYWxuYW1lIEVOVElUWSBkZWNsYXJhdGlvbiBhYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBMYW5ndWFnZSBFTVBUWT4NCis8IUFUVExJU1QgTGFuZ3VhZ2UgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgJWZvcm1hbG5hbWU7DQorICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IExpbWl0YXRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIG5hdHVyYWwtbGFuZ3VhZ2Ugc3RhdGVtZW50IG9mIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGFwcGx5IHRvIHRoZQ0KK3NwZWNpZmllZCB1c2FnZSByaWdodHMuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTGltaXRhdGlvbnMgICgjUENEQVRBIHwgT3JpZ2luICkqPg0KKzwhQVRUTElTVCBMaW1pdGF0aW9ucyAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyAgIENEQVRBICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICAgICAgJWFzc2lnbm1lbnQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTWVkaWFUeXBlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5kaWNhdGlvbiBvZiB0aGUgbWVkaWEgdHlwZSBvZiBhIENvbnRlbnRJdGVtLiBUaGUgdmFsdWUgb2YgdGhlIEZvcm1hbE5hbWUNCithdHRyaWJ1dGUgaXMgYSBmb3JtYWwgbmFtZSBmb3IgdGhlIE1lZGlhVHlwZS4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMNCithcmUgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlDQorZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTWVkaWFUeXBlIEVNUFRZPg0KKzwhQVRUTElTVCBNZWRpYVR5cGUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNZXRhZGF0YSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGNvbnRhaW5lciBmb3IgYSB1c2VyLWRlZmluZWQgdHlwZSBvZiBtZXRhZGF0YS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBNZXRhZGF0YSAgKENhdGFsb2c/ICwgTWV0YWRhdGFUeXBlICwgUHJvcGVydHkrICk+DQorPCFBVFRMSVNUIE1ldGFkYXRhICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNZXRhZGF0YVR5cGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSB0eXBlIG9mIG1ldGFkYXRhIHRoYXQgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIFByb3BlcnR5DQorZWxlbWVudHMgd2l0aGluIHRoaXMgTWV0YWRhdGEgZWxlbWVudC4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lIGF0dHJpYnV0ZSBpcw0KK2EgZm9ybWFsIG5hbWUgZm9yIHRoZSBNZXRhZGF0YVR5cGUuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzIGFyZQ0KK2RldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZQ0KK2Zvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE1ldGFkYXRhVHlwZSBFTVBUWT4NCis8IUFUVExJU1QgTWV0YWRhdGFUeXBlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTWltZVR5cGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBNSU1FLXR5cGUgb2YgYSBDb250ZW50SXRlbS4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lDQorYXR0cmlidXRlIGlzIGEgZm9ybWFsIG5hbWUgZm9yIHRoZSBNaW1lVHlwZS4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMNCithcmUgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlDQorZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTWltZVR5cGUgRU1QVFk+DQorPCFBVFRMSVNUIE1pbWVUeXBlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE5hbWVMYWJlbCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0Egc3RyaW5nIHVzZWQgYnkgaHVtYW4gdXNlcnMgYXMgYSBuYW1lIHRvIGhlbHAgaWRlbnRpZnkgYSBOZXdzSXRlbS4gSXRzIGZvcm0gaXMNCitkZXRlcm1pbmVkIGJ5IHRoZSBwcm92aWRlci4gSXQgbWlnaHQgYmUgaWRlbnRpY2FsIHRvIHRoZSB0ZXh0dWFsIGNvbnRlbnQgb2YNCit0aGUgU2x1Z0xpbmUgZWxlbWVudCwgZm9yIGV4YW1wbGUsIGJ1dCBldmVuIGlmIHRoaXMgaXMgc28sIHRoZSBzeXN0ZW0gc2hvdWxkIG5vdA0KK3Byb2Nlc3MgdGhlIE5hbWVMYWJlbCBhcyBhIHNsdWdsaW5lLiBOb3RoaW5nIGNhbiBiZSBhc3N1bWVkIGFib3V0IHRoZSBuYXR1cmUgb2YNCit0aGUgc3RyaW5nIHdpdGhpbiBOYW1lTGFiZWwgYmV5b25kIHRoZSBmYWN0IHRoYXQgaXQgY2FuIGhlbHAgdG8gaWRlbnRpZnkgdGhlDQorTmV3c0l0ZW0gdG8gaHVtYW5zLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5hbWVMYWJlbCAgKCNQQ0RBVEEgKT4NCis8IUFUVExJU1QgTmFtZUxhYmVsICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c0NvbXBvbmVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIGNvbnRhaW5lciBmb3IgbmV3cyBvYmplY3RzLCB1c2VkIHRvIGlkZW50aWZ5IHRoZSByb2xlIG9mIG5ld3Mgb2JqZWN0cyBpbg0KK3JlbGF0aW9uIHRvIG9uZSBhbm90aGVyLCBhbmQgdG8gYXNjcmliZSBtZXRhZGF0YSB0byB0aGVtLiBUaGUgRXNzZW50aWFsDQorYXR0cmlidXRlIGluZGljYXRlcyB3aGV0aGVyIHRoZSBwcm92aWRlciBjb25zaWRlcnMgdGhhdCB0aGlzIE5ld3NDb21wb25lbnQNCitpcyBlc3NlbnRpYWwgdG8gdGhlIG1lYW5pbmcgb2YgdGhlIE5ld3NDb21wb25lbnQgd2l0aGluIHdoaWNoIGl0IGlzIGNvbnRhaW5lZC4NCitUaGUgRXF1aXZhbGVudHNMaXN0IGF0dHJpYnV0ZSBpbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIE5ld3NJdGVtcyBvcg0KK05ld3NJdGVtUmVmcywgTmV3c0NvbXBvbmVudHMgb3IgQ29udGVudEl0ZW1zIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBvbmUgYXJlDQorZXF1aXZhbGVudCB0byBvbmUgYW5vdGhlciBpbiBjb250ZW50IGFuZC9vciBtZWFuaW5nDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTmV3c0NvbXBvbmVudCAgKENvbW1lbnQqICwgQ2F0YWxvZz8gLCBUb3BpY1NldCogLCBSb2xlPyAsIEJhc2lzRm9yQ2hvaWNlKiAsIE5ld3NMaW5lcz8gLCBBZG1pbmlzdHJhdGl2ZU1ldGFkYXRhPyAsIFJpZ2h0c01ldGFkYXRhPyAsIERlc2NyaXB0aXZlTWV0YWRhdGE/ICwgTWV0YWRhdGEqICwgICggKE5ld3NJdGVtIHwgTmV3c0l0ZW1SZWYgKSsgfCBOZXdzQ29tcG9uZW50KyB8IENvbnRlbnRJdGVtKyApPyApPg0KKzwhQVRUTElTVCBOZXdzQ29tcG9uZW50ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgRXNzZW50aWFsICAgICAgICAoeWVzIHwgbm8gKSAgJ25vJw0KKyAgICAgICAgICAgICAgICAgICAgICAgICBFcXVpdmFsZW50c0xpc3QgICh5ZXMgfCBubyApICAnbm8nDQorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbDpsYW5nICAgICAgICBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE5ld3NFbnZlbG9wZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitJbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhbnNtaXNzaW9uIG9mIG9uZSBvciBtb3JlIE5ld3NJdGVtcyBhcyBhIE5ld3NNTA0KK2RvY3VtZW50Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5ld3NFbnZlbG9wZSAgKFRyYW5zbWlzc2lvbklkPyAsIFNlbnRGcm9tPyAsIFNlbnRUbz8gLCBEYXRlQW5kVGltZSAsIE5ld3NTZXJ2aWNlKiAsIE5ld3NQcm9kdWN0KiAsIFByaW9yaXR5PyApPg0KKzwhQVRUTElTVCBOZXdzRW52ZWxvcGUgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBOZXdzSWRlbnRpZmllciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgZ2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgTmV3c0l0ZW0uIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5ld3NJZGVudGlmaWVyICAoUHJvdmlkZXJJZCAsIERhdGVJZCAsIE5ld3NJdGVtSWQgLCBSZXZpc2lvbklkICwgUHVibGljSWRlbnRpZmllciApPg0KKw0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c0l0ZW0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIG1hbmFnZWQgc2V0IG9mIGluZm9ybWF0aW9uIHJlcHJlc2VudGluZyBhIHBvaW50IG9mIHZpZXcsIGF0IGEgZ2l2ZW4gdGltZSwgb24NCitzb21lIGV2ZW50IG9yIGV2ZW50cy4gSXRzIElkZW50aWZpY2F0aW9uIGFuZCBOZXdzTWFuYWdlbWVudCBwcm92aWRlDQorbWFuYWdlYWJpbGl0eS4gSXQgbWF5IGNvbnRhaW4gZWl0aGVyIGEgTmV3c0NvbXBvbmVudCwgb3Igb25lIG9yIG1vcmUgVXBkYXRlcw0KK3RoYXQgbW9kaWZ5IGFzcGVjdHMgb2YgYSBwcmV2aW91cyBSZXZpc2lvbiBvZiB0aGUgc2FtZSBOZXdzSXRlbSwgb3IgYQ0KK1RvcGljU2V0Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5ld3NJdGVtICAoQ29tbWVudCogLCBDYXRhbG9nPyAsIElkZW50aWZpY2F0aW9uICwgTmV3c01hbmFnZW1lbnQgLCAgKE5ld3NDb21wb25lbnQgfCBVcGRhdGUrIHwgVG9waWNTZXQgKT8gKT4NCis8IUFUVExJU1QgTmV3c0l0ZW0gICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgeG1sOmxhbmcgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c0l0ZW1JZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaWRlbnRpZmllciBmb3IgdGhlIE5ld3NJdGVtLiBUaGUgY29tYmluYXRpb24gb2YgTmV3c0l0ZW1JZCBhbmQgRGF0ZUlkIG11c3QNCitiZSB1bmlxdWUgYW1vbmcgTmV3c0l0ZW1zIHRoYXQgZW1hbmF0ZSBmcm9tIHRoZSBzYW1lIHByb3ZpZGVyLiBXaXRoaW4gdGhlc2UNCitjb25zdHJhaW50cywgdGhlIE5ld3NJdGVtSWQgY2FuIHRha2UgYW55IGZvcm0gdGhlIHByb3ZpZGVyIHdpc2hlcy4gSXQgbWF5IHRha2UNCit0aGUgZm9ybSBvZiBhIG5hbWUgZm9yIHRoZSBOZXdzSXRlbSB0aGF0IHdpbGwgYmUgbWVhbmluZ2Z1bCB0byBodW1hbnMsIGJ1dCB0aGlzDQoraXMgbm90IGEgcmVxdWlyZW1lbnQuIFRoZSBwcm92aWRlciBtYXkgb3B0aW9uYWxseSByZWxhdGUgdGhlIHZhbHVlcyBvZg0KK05ld3NJdGVtSWQgdG8gYSBjb250cm9sbGVkIHZvY2FidWxhcnksIHdoaWNoIGlzIGludm9rZWQgYnkgdGhlIFZvY2FidWxhcnkNCithdHRyaWJ1dGUuIFRoZSB2YWx1ZSBvZnRoZSBWb2NhYnVsYXJ5IGF0dHJpYnV0ZSBtYXkgYmUgYW4gaHR0cCBVUkwsIGEgTmV3c01MDQorVVJOLCBvciB0aGUgIyBjaGFyYWN0ZXIgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIHRoZSBEdWlkIGF0dHJpYnV0ZSBvZiBhDQorVG9waWNTZXQgaW4gdGhlIGN1cnJlbnQgZG9jdW1lbnQuIFRoZSBTY2hlbWUgYXR0cmlidXRlLCBpZiBwcmVzZW50LCBzZXJ2ZXMgdG8NCitkaXN0aW5ndWlzaCB3aGljaCBvZiBwb3NzaWJseSBtdWx0aXBsZSBuYW1pbmcgc2NoZW1lcyBpbiB0aGUgY29udHJvbGxlZA0KK3ZvY2FidWxhcnkgaXMgdGhlIG9uZSB0aGF0IGdvdmVybnMgdGhlIE5ld3NJdGVtSWQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTmV3c0l0ZW1JZCAgKCNQQ0RBVEEgKT4NCis8IUFUVExJU1QgTmV3c0l0ZW1JZCAgVm9jYWJ1bGFyeSBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgICAgU2NoZW1lICAgICBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE5ld3NJdGVtUmVmID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIHBvaW50ZXIgdG8gYSBOZXdzSXRlbSB0aGF0IGlzIGRlZW1lZCB0byByZXBsYWNlIHRoZSBOZXdzSXRlbVJlZiBlbGVtZW50LiBUaGUNCitOZXdzSXRlbSBhdHRyaWJ1dGUgaXMgYSBwb2ludGVyIHRvIHRoZSByZWxldmFudCBOZXdzSXRlbS4gSXRzIHZhbHVlIGNhbiBiZSBhbg0KK2h0dHAgVVJMLCBvciBhIE5ld3NNTCBVUk4gYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIFB1YmxpY0lkZW50aWZpZXIsIG9yIGENCitmcmFnbWVudCBpZGVudGlmaWVyIGNvbnNpc3Rpbmcgb2YgYSAjIGNoYXJhY3RlciBmb2xsb3dlZCBieSB0aGUgRHVpZCBvZiBhDQorTmV3c0l0ZW0gaW4gdGhlIGN1cnJlbnQgZG9jdW1lbnQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTmV3c0l0ZW1SZWYgIChDb21tZW50KiApPg0KKzwhQVRUTElTVCBOZXdzSXRlbVJlZiAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICBOZXdzSXRlbSBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c0l0ZW1UeXBlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gb2YgdGhlIHR5cGUgb2YgYSBOZXdzSXRlbS4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lIGF0dHJpYnV0ZQ0KK2lzIGEgZm9ybWFsIG5hbWUgZm9yIHRoZSBOZXdzSXRlbVR5cGUuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzIGFyZQ0KK2RldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZQ0KK2Zvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5ld3NJdGVtVHlwZSBFTVBUWT4NCis8IUFUVExJU1QgTmV3c0l0ZW1UeXBlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c0xpbmUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIG5ld3NsaW5lIG9mIGEgdHlwZSBub3QgaW5jbHVkZWQgaW4gdGhlIE5ld3NNTCBzcGVjaWZpY2F0aW9uLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5ld3NMaW5lICAoTmV3c0xpbmVUeXBlICwgTmV3c0xpbmVUZXh0KyApPg0KKzwhQVRUTElTVCBOZXdzTGluZSAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE5ld3NMaW5lVGV4dCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1RoZSB0ZXh0IG9mIGEgTmV3c0xpbmUgb2YgdXNlci1kZWZpbmVkIHR5cGUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTmV3c0xpbmVUZXh0ICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgTmV3c0xpbmVUZXh0ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c0xpbmVUeXBlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIGEgdXNlci1kZWZpbmVkIE5ld3NMaW5lIHR5cGUuIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZQ0KK2F0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgTmV3c0xpbmVUeXBlLiBJdHMgbWVhbmluZyBhbmQgcGVybWl0dGVkDQordmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5IGFzIGRlc2NyaWJlZCBpbiB0aGUgY29tbWVudA0KK3RvIHRoZSBmb3JtYWxuYW1lIEVOVElUWSBkZWNsYXJhdGlvbiBhYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBOZXdzTGluZVR5cGUgRU1QVFk+DQorPCFBVFRMSVNUIE5ld3NMaW5lVHlwZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgJWZvcm1hbG5hbWU7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c0xpbmVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBjb250YWluZXIgZm9yIGFsbCB0aGUgTmV3c0xpbmVzIHRoYXQgYSBOZXdzQ29tcG9uZW50IGhhcy4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBOZXdzTGluZXMgICggKEhlYWRMaW5lICwgU3ViSGVhZExpbmU/ICkqICwgQnlMaW5lKiAsIERhdGVMaW5lKiAsIENyZWRpdExpbmUqICwgQ29weXJpZ2h0TGluZSogLCBSaWdodHNMaW5lKiAsIFNlcmllc0xpbmUqICwgU2x1Z0xpbmUqICwgS2V5d29yZExpbmUqICwgTmV3c0xpbmUqICk+DQorPCFBVFRMSVNUIE5ld3NMaW5lcyAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE5ld3NNYW5hZ2VtZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorSW5mb3JtYXRpb24gcmVsZXZhbnQgdG8gdGhlIG1hbmFnZW1lbnQgb2YgYSBOZXdzSXRlbS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBOZXdzTWFuYWdlbWVudCAgKE5ld3NJdGVtVHlwZSAsIEZpcnN0Q3JlYXRlZCAsIFRoaXNSZXZpc2lvbkNyZWF0ZWQgLCBTdGF0dXMgLCBTdGF0dXNXaWxsQ2hhbmdlPyAsIFVyZ2VuY3k/ICwgUmV2aXNpb25IaXN0b3J5PyAsIERlcml2ZWRGcm9tKiAsIEFzc29jaWF0ZWRXaXRoKiAsIEluc3RydWN0aW9uKiAsIFByb3BlcnR5KiApPg0KKzwhQVRUTElTVCBOZXdzTWFuYWdlbWVudCAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBOZXdzTUwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBOZXdzTUwgZG9jdW1lbnQsIHdoaWNoIG11c3QgY29udGFpbiBhIE5ld3NFbnZlbG9wZSBhbmQgb25lIG9yIG1vcmUgTmV3c0l0ZW1zLA0KK2FuZCBtYXkgaW5jbHVkZSBhIENhdGFsb2cgZWxlbWVudCBhbmQgYSBUb3BpY1NldCBlbGVtZW50Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5ld3NNTCAgKENhdGFsb2c/ICwgVG9waWNTZXQqICwgIChOZXdzRW52ZWxvcGUgLCBOZXdzSXRlbSsgKSApPg0KKzwhQVRUTElTVCBOZXdzTUwgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c1Byb2R1Y3QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGlkZW50aWZpZXIgZm9yIGEgcHJvZHVjdCB0byB3aGljaCBhbGwgdGhlIE5ld3NJdGVtcyBpbiBhIE5ld3NNTCBkb2N1bWVudA0KK2JlbG9uZy4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lIGF0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUNCitOZXdzUHJvZHVjdC4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgYSBjb250cm9sbGVkDQordm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlIGZvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uDQorYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTmV3c1Byb2R1Y3QgRU1QVFk+DQorPCFBVFRMSVNUIE5ld3NQcm9kdWN0ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTmV3c1NlcnZpY2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGlkZW50aWZpZXIgZm9yIGEgc2VydmljZSB0byB3aGljaCBhbGwgdGhlIE5ld3NJdGVtcyBpbiBhIE5ld3NNTCBkb2N1bWVudA0KK2JlbG9uZy4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lIGF0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUNCitOZXdzU2VydmljZS4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgYSBjb250cm9sbGVkDQordm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlIGZvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uDQorYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgTmV3c1NlcnZpY2UgRU1QVFk+DQorPCFBVFRMSVNUIE5ld3NTZXJ2aWNlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBOb3RhdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gb2YgdGhlIG5vdGF0aW9uIG9mIGEgQ29udGVudEl0ZW0uIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZQ0KK2F0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgTm90YXRpb24uIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzDQorYXJlIGRldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZQ0KK2Zvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE5vdGF0aW9uIEVNUFRZPg0KKzwhQVRUTElTVCBOb3RhdGlvbiAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE9mSW50ZXJlc3RUbyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSB0YXJnZXQgYXVkaWVuY2Ugb2YgYSBOZXdzSXRlbS4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lDQorYXR0cmlidXRlIGlzIGEgZm9ybWFsIG5hbWUgZm9yIHRoZSB0YXJnZXQgYXVkaWVuY2UuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQNCit2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvDQordGhlIGZvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIE9mSW50ZXJlc3RUbyAgKFJlbGV2YW5jZT8gKT4NCis8IUFUVExJU1QgT2ZJbnRlcmVzdFRvICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsNCisgICAgICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE9yaWdpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIHdyYXBwZXIgZm9yIGFsbCBvciBwYXJ0IG9mIHRoZSB0ZXh0IG9mIGEgcGllY2Ugb2YgdGV4dCwgd2hpY2ggcHJvdmlkZXMgYQ0KK3BvaW50ZXIgdG8gYW4gaXRlbSBvZiBkYXRhIGNvcnJlc3BvbmRpbmcgZm9ybWFsbHkgdG8gd2hhdCBpcyBiZWluZyBkZXNjcmliZWQNCitoZXJlIGluIG5hdHVyYWwgbGFuZ3VhZ2UuIFRoZSBIcmVmIGF0dHJpYnV0ZSBpZGVudGlmaWVzIHRoZSByZWxldmFudCBkYXRhLCBhbmQNCittYXkgYmUgYW4gaHR0cCBVUkwgb3IgYSBOZXdzTUwgVVJOIGFzIGRlc2NyaWJlZCBpbiB0aGUgY29tbWVudCB0bw0KK1B1YmxpY0lkZW50aWZpZXIsIG9wdGlvbmFsbHkgaW5jbHVkaW5nIGEgZnJhZ21lbnQgaWRlbnRpZmllci4gQWx0ZXJuYXRpdmVseSwgaXQNCitjYW4gYmUgYSBzaW1wbGUgZnJhZ21lbnQgaWRlbnRpZmllciBjb25zaXN0aW5nIG9mIGEgIyBjaGFyYWN0ZXIgZm9sbG93ZWQgYnkgdGhlDQordmFsdWUgb2YgdGhlIER1aWQgb2YgYW4gZWxlbWVudCBpbiB0aGUgY3VycmVudCBkb2N1bWVudC4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBPcmlnaW4gICgjUENEQVRBIHwgT3JpZ2luICkqPg0KKzwhQVRUTElTVCBPcmlnaW4gICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50Ow0KKyAgICAgICAgICAgICAgICAgIEhyZWYgICAgICAgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFBhcnR5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5kaWNhdGlvbiBvZiB0aGUgcGVyc29uLCBjb21wYW55IG9yIG9yZ2FuaXNhdGlvbiB0aGF0IGhhcyBhIHBhcnRpY3VsYXINCityZWxhdGlvbnNoaXAgdG8gdGhpcyBOZXdzSXRlbSBpbiB0aGUgbmV3cyB3b3JrZmxvdy4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lDQorYXR0cmlidXRlIGlzIGEgZm9ybWFsIG5hbWUgZm9yIHRoZSBQYXJ0eS4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMNCithcmUgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlDQorZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgUGFydHkgRU1QVFk+DQorPCFBVFRMSVNUIFBhcnR5ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOw0KKyAgICAgICAgICAgICAgICAgVG9waWMgICAgICBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUHJpb3JpdHkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBwcmlvcml0eSBub3RhdGlvbiBvZiBhIE5ld3NJdGVtLiBUaGUgdmFsdWUgb2YgdGhlDQorRm9ybWFsTmFtZSBhdHRyaWJ1dGUgaXMgYSBmb3JtYWwgbmFtZSBmb3IgdGhlIFByaW9yaXR5LiBJdHMgbWVhbmluZyBhbmQNCitwZXJtaXR0ZWQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5IGFzIGRlc2NyaWJlZCBpbg0KK3RoZSBjb21tZW50IHRvIHRoZSBmb3JtYWxuYW1lIEVOVElUWSBkZWNsYXJhdGlvbiBhYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBQcmlvcml0eSBFTVBUWT4NCis8IUFUVExJU1QgUHJpb3JpdHkgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgJWZvcm1hbG5hbWU7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFByb3BlcnR5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBwcm9wZXJ0eSBvZiBhIE5ld3NDb21wb25lbnQgb3Igb2YgYSBUb3BpYy4gVGhlIHByb3BlcnR5IGhhcyBhIG5hbWUgYW5kIGVpdGhlcg0KK2Egc2ltcGxlIFZhbHVlIG9yIGEgY29tcGxleCB2YWx1ZSBjb25zaXN0aW5nIG9mIGEgc2V0IG9mIGZ1cnRoZXIgcHJvcGVydGllcy4NCisNCitWYWx1ZQ0KKz09PT09DQorQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIG9mIGEgUHJvcGVydHkuDQorDQorVmFsdWVSZWYNCis9PT09PT09PQ0KK0EgcG9pbnRlciB0byB0aGUgdmFsdWUgb2YgdGhlIFByb3BlcnR5LiBUaGlzIG1pZ2h0IGJlIGEgVG9waWMgaW4gYSBUb3BpY1NldCwgb3INCithbnkgb3RoZXIgcGllY2Ugb2YgZGF0YS4gSWYgYm90aCBWYWx1ZSBhbmQgVmFsdWVSZWYgYXJlIHByb3ZpZGVkLCB0aGVuIFZhbHVlUmVmDQoraWRlbnRpZmllcyB0aGUgYWN0dWFsIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSwgd2l0aCBWYWx1ZSBzaW1wbHkgcHJvdmlkaW5nIGENCitzdHJpbmcgcmVwcmVzZW50YXRpb24gb3IgbW5lbW9uaWMgZm9yIGl0Lg0KKw0KKw0KK0V4YW1wbGU6DQorPENhdGFsb2c+DQorIDxSZXNvdXJjZSBEdWlkPSJyZXNvdXJjZTEiPg0KKyAgPFVybj51cm46bmV3c21sOnJldXRlcnMuY29tOjIwMDAxMDAxOlBoeXNpY2FsIENoYXJhY3RlcmlzdGljczozPC9Vcm4+DQorICA8VXJsPnd3dy5yZXV0ZXJzLmNvbS92b2NhYnMvcGh5c2ljYWwueG1sPC9Vcmw+DQorICA8VXJsPnd3dy5pcHRjLmNvbS92b2NhYnVsYXJpZXMvbWVtYmVyZGVmaW5lZC9yZXV0ZXJzL3BoeXNpY2FsLnhtbDwvVXJsPg0KKyAgPERlZmF1bHRWb2NhYnVsYXJ5Rm9yIFNjaGVtZT0ic2hvcnQiIENvbnRleHQ9Ik1ldGFkYXRhL1Byb3BlcnR5W0BGb3JtYWxOYW1lPSdXaWR0aCddIi8+DQorIDwvUmVzb3VyY2U+DQorPC9DYXRhbG9nPg0KKzxQcm9wZXJ0eSBGb3JtYWxOYW1lPSJXaWR0aCIgVm9jYWJ1bGFyeT0iI3Jlc291cmNlMSI+DQorIDxQcm9wZXJ0eSBGb3JtYWxOYW1lPSJVbml0IiBWYWx1ZVJlZj0idXJuOm5ld3NtbDppcHRjLm9yZzoyMDAwMTAwNjp1bml0czoxI2NtIi8+DQorIDxQcm9wZXJ0eSBGb3JtYWxOYW1lPSJRdWFudGl0eSIgVmFsdWU9IjcuNSIvPg0KKzwvUHJvcGVydHk+DQorDQorQWxsb3dlZFZhbHVlcw0KKz09PT09PT09PT09PT0NCitUaGUgQWxsb3dlZFZhbHVlcyBhdHRyaWJ1dGUsIGlmIHByZXNlbnQsIGlzIGEgcG9pbnRlciB0byBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeQ0KK3RoYXQgZGVsaW1pdHMgdGhlIHNldCBvZiBhbGxvd2VkIHZhbHVlcyBmb3IgdGhlIHByb3BlcnR5LiBUaGlzIG1heSBiZSBhbiBodHRwDQorVVJMLCBvciBhIE5ld3NNTCBVUk4sIG9yIGEgZnJhZ21lbnQgaWRlbnRpZmllciBjb25zaXN0aW5nIG9mIGEgIyBjaGFyYWN0Z2VyDQorZm9sbG93ZWQgYnkgdGhlIER1aWQgb2YgYW4gZWxlbWVudCBpbiB0aGUgY3VycmVudCBkb2N1bWVudC4gVGhlIHBvaW50ZXIgbXVzdA0KK3JlZmVyZW5jZSBlaXRoZXIgYSBSZXNvdXJjZSBlbGVtZW50IHRoYXQgZGVzaWduYXRlcyBhbiBleHRlcm5hbCBjb250cm9sbGVkDQordm9jYWJ1bGFyeSwgb3IgYSBUb3BpY1NldCBlbGVtZW50LCB0aGF0IGlzIGl0c2VsZiB0aGUgY29udHJvbGxlZCB2b2NhYnVsYXJ5Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFByb3BlcnR5ICAoUHJvcGVydHkqICk+DQorPCFBVFRMSVNUIFByb3BlcnR5ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOw0KKyAgICAgICAgICAgICAgICAgICAgJWFzc2lnbm1lbnQ7DQorICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgIENEQVRBICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICAgVmFsdWVSZWYgICAgICBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgIEFsbG93ZWRWYWx1ZXMgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFByb3ZpZGVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5kaXZpZHVhbCBhbmQvb3IgY29tcGFueSBvciBvcmdhbmlzYXRpb24gdGhhdCByZWxlYXNlZCBhIG5ld3Mgb2JqZWN0IGZvcg0KK3B1YmxpY2F0aW9uLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFByb3ZpZGVyICAoJXBhcnR5OyApPg0KKzwhQVRUTElTVCBQcm92aWRlciAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUHJvdmlkZXJJZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaWRlbnRpZmllciBmb3IgdGhlIG5ld3MgcHJvdmlkZXIgdGhhdCBwcm9kdWNlZCB0aGUgTmV3c0l0ZW0uIFRoZQ0KK3Byb3ZpZGVyJ3MgSUQgaXMgc3BlY2lmaWVkIGluIHRoZSBlbGVtZW50IGNvbnRlbnQuIFRoaXMgc2hvdWxkIGJlIGFuIEludGVybmV0DQorZG9tYWluIG5hbWUgdGhhdCBpcyBvd25lZCBieSB0aGUgcHJvdmlkZXIgYXQgdGhlIGRhdGUgaWRlbnRpZmllZCBieSB0aGUgRGF0ZUlkDQorc3ViZWxlbWVudCBvZiB0aGUgTmV3c0lkZW50aWZpZXIsIG9yIHRoZSBuYW1lIGZvciB0aGUgUHJvdmlkZXIgZHJhd24gZnJvbSBhDQorY29udHJvbGxlZCB2b2NhYnVsYXJ5IGlkZW50aWZpZWQgYnkgYSBVUk4gc3BlY2lmaWVkIGluIHRoZSBWb2NhYnVsYXJ5IGF0dHJpYnV0ZS4NCitUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIGlkZW50aXR5IG9mIHRoZSBwcm92aWRlciBjYW4gYmUgaW5mZXJyZWQgdW5hbWJpZ3VvdXNseQ0KK2Zyb20gdGhlIGZ1bGwgTmV3c0lkZW50aWZpZXIuDQorDQorRXhhbXBsZTogDQorPE5ld3NJZGVudGlmaWVyPg0KKyA8UHJvdmlkZXJJZD5pcHRjLm9yZzwvUHJvdmlkZXJJZD4NCisgPERhdGVJZD4yMDAwMTAwMTwvRGF0ZUlkPg0KKyA8TmV3c0l0ZW1JZD5OZXdzTUwgdmVyc2lvbiAxLjA8L05ld3NJdGVtSWQ+DQorIDxSZXZpc2lvbklkPjE8L1JldmlzaW9uSWQNCis8L05ld3NJZGVudGlmaWVyPg0KKw0KK0JlY2F1c2UgdGhlIGRvbWFpbiBuYW1lICJpcHRjLm9yZyIgd2FzIG93bmVkIG9uIDEgT2N0b2JlciAyMDAwIGJ5IHRoZQ0KK0ludGVybmF0aW9uYWwgUHJlc3MgVGVsZWNvbW11bmljYXRpb25zIENvdW5jaWwgKElQVEMpIGFuZCBuby1vbmUgZWxzZSwgaXQgaXMNCitjZXJ0YWluIHRoYXQgSVBUQyBpcyB0aGUgcHJvdmlkZXIgaW4gdGhpcyBjYXNlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFByb3ZpZGVySWQgICgjUENEQVRBICk+DQorPCFBVFRMSVNUIFByb3ZpZGVySWQgIFZvY2FidWxhcnkgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUHVibGljSWRlbnRpZmllciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBwdWJsaWMgaWRlbnRpZmllciAoaW4gdGhlIHNlbnNlIGRlZmluZWQgYnkgdGhlIFhNTCAxLDAgU3BlY2lmaWNhdGlvbikgZm9yIGENCitOZXdzSXRlbS4gVGhpcyBpcyB0aGUgTmV3c01MIFVSTiwgYW5kIG11c3QgYmUgY29uc3RydWN0ZWQgYXMgZm9sbG93czogDQorDQorSWYgdGhlIFByb3ZpZGVySWQgaXMgYSBkb21haW4gbmFtZQ0KKw0KK3VybjpuZXdzbWw6e1Byb3ZpZGVySWR9OntEYXRlSWR9OntOZXdzSXRlbUlkfTp7UmV2aXNpb25JZH17UmV2aXNpb25JZEBVcGRhdGV9DQorDQorSWYgdGhlIFByb3ZpZGVySWQgaXMgbmFtZSBkcmF3biBmcm9tIGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5DQorDQordXJuOm5ld3NtbDp8e1Byb3ZpZGVySWRAVm9jYWJ1bGFyeX18e1Byb3ZpZGVySWR9fDp7RGF0ZUlkfTp7TmV3c0l0ZW1JZH06e1JldmlzaW9uSWR9e1JldmlzaW9uSWRAVXBkYXRlfQ0KKw0KK3doZXJlIHt4fSBtZWFucyAidGhlIGNvbnRlbnQgb2YgdGhlIHggc3ViZWxlbWVudCBvZiB0aGUgTmV3c0lkZW50aWZpZXIiIGFuZA0KK3t4QHl9IG1lYW5zICJ0aGUgdmFsdWUgb2YgdGhlIHkgYXR0cmlidXRlIG9mIHRoZSB4IHN1YmVsZW1lbnQgb2YgdGhlDQorTmV3c0lkZW50aWZpZXIiLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCBpZiB0aGUgVXBkYXRlIGF0dHJpYnV0ZSBvZiB0aGUNCitSZXZpc2lvbklkIGVsZW1lbnQgaGFzIGl0cyBkZWZhdWx0IHZhbHVlIG9mIE4sIGl0IGlzIG9taXR0ZWQgZnJvbSB0aGUgVVJOLCBhbmQNCit0aGF0IHRoZSBWb2NhYnVsYXJ5IGF0dHJpYnV0ZSBvZiB0aGUgUHJvdmlkZXJJZCBlbGVtZW50IGlzIHN0cmlwcGVkIG9mIHRoZQ0KK3N1YnN0cmluZyAidXJuOiIgd2l0aCB3aGljaCBpdCBiZWdpbnMuIFRoZSBWb2NhYnVsYXJ5IGF0dHJpYnV0ZSBvZiBQcm92aWRlcklkDQorbmVjZXNzYXJpbHkgYmVnaW5zIHdpdGggdGhlIGNoYXJhY3RlcnMgInVybjoiIGJlY2F1c2UsIGFzIHN0YXRlZCBpbiB0aGUNCitjb21tZW50IHRvIHRoZSBQcm92aWRlcklkIGVsZW1lbnQgYWJvdmUsIGl0IG11c3QgdGFrZSB0aGUgZm9ybSBvZiBhIFVSTg0KK2lkZW50aWZ5aW5nIGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5Lg0KKw0KK05vdGUgdGhhdCB0aGUgZXhpc3RlbmNlIG9mIHRoaXMgVVJOIGVuYWJsZXMgdGhlIE5ld3NJdGVtIHRvIGJlIHJlZmVyZW5jZWQNCit1bmFtYmlndW91c2x5IGJ5IHBvaW50ZXJzIGZyb20gb3RoZXIgWE1MIGVsZW1lbnRzIG9yIHJlc291cmNlcy4gV2l0aGluIHN1Y2gNCitwb2ludGVycywgaWYgIHRoZSBSZXZpc2lvbklkLCBpdHMgcHJlY2VkaW5nIDogY2hhcmFjdGVyIGFuZCBpdHMgZm9sbG93aW5nIFVwZGF0ZQ0KK3F1YWxpZmllciBhcmUgb21pdHRlZCwgdGhlbiB0aGUgcG9pbnRlciBkZXNpZ25hdGVzIHRoZSBtb3N0IHJlY2VudCByZXZpc2lvbiBhdA0KK3RoZSB0aW1lIGl0IGlzIHJlc29sdmVkLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFB1YmxpY0lkZW50aWZpZXIgICgjUENEQVRBICk+DQorDQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJlbGV2YW5jZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gb2YgdGhlIHJlbGV2YW5jZSBvZiBhIE5ld3NJdGVtIHRvIGEgZ2l2ZW4gdGFyZ2V0IGF1ZGllbmNlLiBUaGUNCit2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZSBhdHRyaWJ1dGUgaXMgYSBmb3JtYWwgbmFtZSBmb3IgdGhlIFJlbGV2YW5jZS4gSXRzDQorbWVhbmluZyBhbmQgcGVybWl0dGVkIHZhbHVlcyBhcmUgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcw0KK2Rlc2NyaWJlZCBpbiB0aGUgY29tbWVudCB0byB0aGUgZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgUmVsZXZhbmNlIEVNUFRZPg0KKzwhQVRUTElTVCBSZWxldmFuY2UgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOw0KKyAgICAgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50OyA+DQorPCEtLQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJlcGxhY2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5zdHJ1Y3Rpb24gdG8gcmVwbGFjZSBhIGRlc2lnbmF0ZWQgZWxlbWVudCB3aXRoaW4gYSBOZXdzSXRlbS4gVGhlIGVsZW1lbnQNCit0aGF0IGlzIHRvIHJlcGxhY2UgdGhlIGRlc2lnbmF0ZWQgZWxlbWVudCBpcyB0aGUgY29udGVudCBvZiB0aGUgUmVwbGFjZSBlbGVtZW50Lg0KK1RoZSBOZXdzSXRlbSB3aXRoaW4gd2hpY2ggdGhlIHJlcGxhY2VtZW50IHRha2VzIHBsYWNlIGlzIHRoZSBwcmV2aW91cyByZXZpc2lvbg0KK29mIHRoZSBjdXJyZW50IG9uZSwgYW5kIHRoZSBlbGVtZW50IHRvIGJlIHJlcGxhY2VkIGlzIHRoZSBvbmUgd2hvc2UgRHVpZA0KK3ZhbHVlIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiB0aGUgUmVwbGFjZSBlbGVtZW50J3MgRHVpZFJlZiBhdHRyaWJ1dGUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgUmVwbGFjZSBBTlk+DQorPCFBVFRMSVNUIFJlcGxhY2UgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICBEdWlkUmVmIENEQVRBICAjUkVRVUlSRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBSZXNvdXJjZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIHdoZXJlIGEgZ2l2ZW4gcmVzb3VyY2UgY2FuIGJlIGZvdW5kLCBhbmQgd2hldGhlciBpdCBpcyB0byBiZSB1c2VkDQorYXMgdGhlIGRlZmF1bHQgdm9jYWJ1bGFyeSBmb3IgY2VydGFpbiBmb3JtYWwgbmFtZXMgd2l0aGluIHRoZSBjdXJyZW50IHN1YnRyZWUNCitvZiBhIE5ld3NNTCBkb2N1bWVudC4gVGhlIFVybiBhdHRyaWJ1dGUgcHJvdmlkZXMgYSBOZXdzTUwgVVJOIGZvciB0aGUgcmVzb3VyY2UuDQorVEhlIFVybCBhdHRyaWJ1dGUocykgcHJvdmlkZShzKSBhIGxvY2F0aW9uIG9yIGxvY2F0aW9ucyB3aGVyZSB0aGUgcmVzb3VyY2UgbWF5DQorYmUgZm91bmQuIFRoZSBEZWZhdWx0Vm9jYWJ1bGFyeUZvciBlbGVtZW50IGNvbnRhaW5zIGFuIFhQYXRoIHBhdHRlcm4uIFRoZQ0KK2lkZW50aWZpZWQgcmVzb3VyY2UgYWN0cyBhcyBkZWZhdWx0IHZvY2FidWxhcnkgZm9yIGFueSBlbGVtZW50IHdpdGhpbiB0aGUNCitzdWJ0cmVlIHdob3NlIHJvb3QgaXMgdGhlIHBhcmVudCBvZiB0aGUgY3VycmVudCBDYXRhbG9nLCB0aGF0IG1hdGNoZXMgdGhpcyBYUGF0aA0KK3BhdHRlcm4uDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgUmVzb3VyY2UgIChVcm4/ICwgVXJsKiAsIERlZmF1bHRWb2NhYnVsYXJ5Rm9yKiApPg0KKzwhQVRUTElTVCBSZXNvdXJjZSAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmV2aXNpb25IaXN0b3J5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBwb2ludGVyIHRvIGEgZmlsZSBjb250YWluaW5nIHRoZSByZXZpc2lvbiBoaXN0b3J5IG9mIHRoZSBOZXdzSXRlbS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBSZXZpc2lvbkhpc3RvcnkgRU1QVFk+DQorPCFBVFRMSVNUIFJldmlzaW9uSGlzdG9yeSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgSHJlZiAgICBDREFUQSAgI1JFUVVJUkVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmV2aXNpb25JZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBwb3NpdGl2ZSBpbnRlZ2VyIGluZGljYXRpbmcgd2hpY2ggUmV2aXNpb24gb2YgYSBnaXZlbiBOZXdzSXRlbSB0aGlzIGlzLiBBbnkNCitwb3NpdGl2ZSBpbnRlZ2VyIG1heSBiZSB1c2VkLCBidXQgaXQgbXVzdCBhbHdheXMgYmUgdGhlIGNhc2UgdGhhdCBvZiB0d28NCitpbnN0YW5jZXMgb2YgYSBOZXdzSXRlbSB0aGF0IGhhdmUgdGhlIHNhbWUgUHJvdmlkZXJJZCwgRGF0ZUlkIGFuZCBOZXdzSXRlbUlkLA0KK3RoZSBvbmUgd2hvc2UgUmV2aXNpb25JZCBoYXMgdGhlIGxhcmdlciB2YWx1ZSBtdXN0IGJlIHRoZSBtb3JlIHJlY2VudCByZXZpc2lvbi4NCitBIFJldmlzaW9uSWQgb2YgMCBpcyBub3QgcGVybWl0dGVkLiBUaGUgUHJldmlvdXNSZXZpc2lvbiBhdHRyaWJ1dGUgbXVzdCBiZQ0KK3ByZXNlbnQsIGFuZCBpdHMgdmFsdWUgbXVzdCBiZSBlcXVhbCB0byB0aGUgY29udGVudCBvZiB0aGUgUmV2aXNpb25JZCBlbGVtZW50DQorb2YgdGhlIE5ld3NJdGVtJ3MgcHJldmlvdXMgcmV2aXNpb24sIGlmIHRoZXJlIGlzIG9uZSwgYW5kIDAgaWYgdGhlIE5ld3NJdGVtIGhhcw0KK25vIHByZXZpb3VzIHJldmlzaW9uLiBJZiB0aGUgTmV3c0l0ZW0gY29udGFpbnMgYW4gVXBkYXRlIGVsZW1lbnQgb3IgZWxlbWVudHMsDQordGhlbiB0aGUgVXBkYXRlIGF0dHJpYnV0ZSBtdXN0IGJlIHNldCB0byBVLiBJZiB0aGUgTmV3c0l0ZW0gY29uc2lzdHMgb25seSBvZiBhDQorcmVwbGFjZW1lbnQgc2V0IG9mIE5ld3NNYW5hZ2VtZW50IGRhdGEsIHRoZW4gdGhlIFVwZGF0ZSBhdHRyaWJ1dGUgbXVzdCBiZSBzZXQNCit0byBBLiBJZiBuZWl0aGVyIG9mIHRoZXNlIGlzIHRoZSBjYXNlLCB0aGVuIHRoZSBVcGRhdGUgYXR0cmlidXRlIG11c3QgYmUgc2V0DQordG8gTi4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBSZXZpc2lvbklkICAoI1BDREFUQSApPg0KKzwhQVRUTElTVCBSZXZpc2lvbklkICBQcmV2aW91c1JldmlzaW9uIENEQVRBICAjUkVRVUlSRUQNCisgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlICAgICAgICAgICBDREFUQSAgI1JFUVVJUkVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJldmlzaW9uU3RhdHVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorSW5kaWNhdGVzIHRoZSBzdGF0dXMgdGhhdCBwcmV2aW91cyByZXZpc2lvbnMgbm93IGhhcyBhcyBhIHJlc3VsdCBvZiB0aGUgcmVsZWFzZQ0KK29mIHRoZSBjdXJyZW50IHJldmlzaW9uLiBUaGUgb3B0aW9uYWwgUmV2aXNpb24gYXR0cmlidXRlIGlzIGFuIGludGVnZXIsIGVxdWFsIHRvDQordGhlIFJldmlzaW9uSWQgb2YgdGhlIHJldmlzaW9uIGluIHF1ZXN0aW9uLiBJZiBpdCBpcyBub3QgcHJlc2VudCwgdGhlbiB0aGUNCitzdGF0dXMgYXBwbGllcyB0byBBTEwgcHJldmlvdXMgcmV2aXNpb25zLCB3aXRob3V0IGV4Y2VwdGlvbi4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBSZXZpc2lvblN0YXR1cyAgKFN0YXR1cyApPg0KKzwhQVRUTElTVCBSZXZpc2lvblN0YXR1cyAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgICBSZXZpc2lvbiBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJpZ2h0c0hvbGRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIHN0cmluZyBvZiB0ZXh0IGluZGljYXRpbmcgd2hvIGhhcyB0aGUgdXNhZ2UgcmlnaHRzLCBvcHRpb25hbGx5IGVucmljaGVkIHdpdGgNCitwb2ludGVycyB0byBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZWxldmFudCBwZW9wbGUsIGNvbXBhbmllcyBvcg0KK29yZ2FuaXNhdGlvbnMuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgUmlnaHRzSG9sZGVyICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgUmlnaHRzSG9sZGVyICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyAgIENEQVRBICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50OyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJpZ2h0c0xpbmUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgZGlzcGxheWFibGUgdmVyc2lvbiBvZiByaWdodHMgaW5mb3JtYXRpb24uIE5vdGUgdGhhdCB0aGlzIGlzIGRpc3RpbmN0IGZyb20NCitjb3B5cmlnaHQgaW5mb3JtYXRpb24uIENvcHlyaWdodCBpbmZvcm1hdGlvbiBpcyBhYm91dCB3aG8gb3ducyBhIG5ld3Mgb2JqZWN0Ow0KK3JpZ2h0cyBpbmZvcm1hdGlvbiBpcyBhYm91dCB3aG8gaXMgYWxsb3dlZCB0byB1c2UgaXQsIGluIHdoYXQgd2F5IGFuZCB1bmRlcg0KK3doYXQgY2lyY3Vtc3RhbmNlcy4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBSaWdodHNMaW5lICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgUmlnaHRzTGluZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgIHhtbDpsYW5nIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBSaWdodHNNZXRhZGF0YSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0luZm9ybWF0aW9uIGFib3V0IHRoZSByaWdodHMgcGVydGFpbmluZyB0byBhIE5ld3NDb21wb25lbnQuIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFJpZ2h0c01ldGFkYXRhICAoQ2F0YWxvZz8gLCBDb3B5cmlnaHQqICwgVXNhZ2VSaWdodHMqICwgUHJvcGVydHkqICk+DQorPCFBVFRMSVNUIFJpZ2h0c01ldGFkYXRhICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50OyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJvbGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGlkZW50aWZpZXIgb2YgdGhlIHJvbGUgcGxheWVkIGJ5IGEgTmV3c0NvbXBvbmVudCB3aXRoaW4gYSBOZXdzQ29tcG9uZW50DQordGhhdCBjb250YWlucyBpdC4gVGhlIG91dGVybW9zdCBOZXdzQ29tcG9uZW50IHdpdGhpbiBhIE5ld3NJdGVtIG5lZWQgbm90DQorc3BlY2lmeSBhIFJvbGUgYXR0cmlidXRlIHZhbHVlLiBUaGUgdmFsdWUgb2YgdGhlIEZvcm1hbE5hbWUgYXR0cmlidXRlIGlzIGENCitmb3JtYWwgbmFtZSBmb3IgdGhlIFJvbGUuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5DQorYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZSBmb3JtYWxuYW1lIEVOVElUWQ0KK2RlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFJvbGUgRU1QVFk+DQorPCFBVFRMSVNUIFJvbGUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU2VudEZyb20gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpdmlkdWFsIGFuZC9vciBjb21wYW55IG9yIG9yZ2FuaXNhdGlvbiBmcm9tIHdob20gdGhlIE5ld3NNTCBkb2N1bWVudCBpcw0KK2JlaW5nIHNlbnQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgU2VudEZyb20gICglcGFydHk7ICk+DQorPCFBVFRMSVNUIFNlbnRGcm9tICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFNlbnRUbyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpdmlkdWFsIGFuZC9vciBjb21wYW55IG9yIG9yZ2FuaXNhdGlvbiB0byB3aG9tIHRoZSBOZXdzTUwgZG9jdW1lbnQgaXMNCitiZWluZyBzZW50Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFNlbnRUbyAgKCVwYXJ0eTsgKT4NCis8IUFUVExJU1QgU2VudFRvICAlbG9jYWxpZDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTZXJpZXNMaW5lID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIGRpc3BsYXlhYmxlIHZlcnNpb24gb2YgaW5mb3JtYXRpb24gYWJvdXQgYSBuZXdzIG9iamVjdCdzIHBsYWNlIGluIGEgc2VyaWVzLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFNlcmllc0xpbmUgICgjUENEQVRBIHwgT3JpZ2luICkqPg0KKzwhQVRUTElTVCBTZXJpZXNMaW5lICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgeG1sOmxhbmcgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU2l6ZUluQnl0ZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorVGhlIGV4YWN0IHNpemUgaW4gYnl0ZXMgb2YgYSBDb250ZW50SXRlbSdzIGlubGluZSBvciByZWZlcmVuY2VkIGRhdGEgb2JqZWN0LiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBTaXplSW5CeXRlcyAgKCNQQ0RBVEEgKT4NCis8IUFUVExJU1QgU2l6ZUluQnl0ZXMgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTbHVnTGluZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0Egc3RyaW5nIG9mIHRleHQsIHBvc3NpYmx5IGVtYmVsbGlzaGVkIGJ5IGh5cGVybGlua3MgYW5kL29yIGZvcm1hdHRpbmcsIHVzZWQgdG8NCitkaXNwbGF5IGEgTmV3c0l0ZW0ncyBzbHVnIGxpbmUuIChOb3RlIHRoYXQgdGhlIG1lYW5pbmcgb2YgdGhlIHRlcm0gInNsdWcgbGluZSIsDQorYW5kIHRoZSB1c2VzIHRvIHdoaWNoIGl0IGlzIHB1dCwgYXJlIGEgbWF0dGVyIGZvciBpbmRpdmlkdWFsIHByb3ZpZGVycyB0bw0KK2RlZmluZSB3aXRoaW4gdGhlaXIgb3duIHdvcmtmbG93IGFuZCBidXNpbmVzcyBwcmFjdGljZS4pIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFNsdWdMaW5lICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgU2x1Z0xpbmUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgeG1sOmxhbmcgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTb3VyY2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5kaXZpZHVhbCBhbmQvb3IgY29tcGFueSBvciBvcmdhbmlzYXRpb24gdGhhdCBwcm92aWRlZCBzb3VyY2UgbWF0ZXJpYWwgZm9yDQorYSBuZXdzIG9iamVjdC4gVGhlIG9wdGlvbmFsIE5ld3NJdGVtIGF0dHJpYnV0ZSBtdXN0IGJlIHByZXNlbnQgaW4gdGhlIGNhc2Ugb2YNCithIHN5bmRpY2F0ZWQgTmV3c0l0ZW0uIEl0IHByb3ZpZGVzIHRoZSBVUk4gb2YgdGhlIE5ld3NJdGVtIHRoYXQgaXMgYmVpbmcNCitzeW5kaWNhdGVkLiBOb3RlIHRoYXQgYSBzZXF1ZW5jZSBvZiBTb3VyY2UgZWxlbWVudHMgY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhlDQorc2VxdWVuY2Ugb2Ygc3luZGljYXRvcnMgdGhyb3VnaCB3aGljaCBhIE5ld3NJdGVtIGhhcyBwYXNzZWQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgU291cmNlICAoJXBhcnR5OyApPg0KKzwhQVRUTElTVCBTb3VyY2UgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgIE5ld3NJdGVtIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFN0YXJ0RGF0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgbmF0dXJhbC1sYW5ndWFnZSBzdGF0ZW1lbnQgb2YgdGhlIGRhdGUgYXQgd2hpY2ggc3BlY2lmaWVkIHVzYWdlIHJpZ2h0cyBjb21lDQoraW50byBlZmZlY3QuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgU3RhcnREYXRlICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgU3RhcnREYXRlICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICB4bWw6bGFuZyAgIENEQVRBICAjSU1QTElFRA0KKyAgICAgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50OyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU3RhdHVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5kaWNhdGlvbiBvZiB0aGUgU3RhdHVzIG9mIGEgTmV3c0l0ZW0uIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZQ0KK2F0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgU3RhdHVzLiBJdHMgbWVhbmluZyBhbmQgcGVybWl0dGVkIHZhbHVlcw0KK2FyZSBkZXRlcm1pbmVkIGJ5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5IGFzIGRlc2NyaWJlZCBpbiB0aGUgY29tbWVudCB0byB0aGUNCitmb3JtYWxuYW1lIEVOVElUWSBkZWNsYXJhdGlvbiBhYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBTdGF0dXMgRU1QVFk+DQorPCFBVFRMSVNUIFN0YXR1cyAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgJWZvcm1hbG5hbWU7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU3RhdHVzV2lsbENoYW5nZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQWR2YW5jZSBub3RpZmljYXRpb24gb2YgYSBzdGF0dXMgY2hhbmdlIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IG9jY3VyIGF0IHRoZQ0KK3NwZWNpZmllZCBkYXRlIGFuZCB0aW1lLiBGb3IgZXhhbXBsZSwgYW4gaXRlbSB3aXRoIGEgU3RhdHVzIG9mICJlbWJhcmdvZWQiIG1pZ2h0DQoraGF2ZSBhIFN0YXR1c1dpbGxDaGFuZ2UgZWxlbWVudCBzdGF0aW5nIHRoYXQgdGhlIHN0YXR1cyB3aWxsIGJlY29tZSAidXNhYmxlIiBhdA0KK2Egc3BlY2lmaWVkIHRpbWUuIFRoaXMgaXMgZXF1aXZhbGVudCB0byBhbm5vdW5jaW5nIGluIGFkdmFuY2UgdGhlIHRpbWUgYXQgd2hpY2gNCit0aGUgZW1iYXJnbyB3aWxsIGVuZCBhbmQgdGhlIGl0ZW0gd2lsbCBiZSByZWxlYXNlZC4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBTdGF0dXNXaWxsQ2hhbmdlICAoRnV0dXJlU3RhdHVzICwgRGF0ZUFuZFRpbWUgKT4NCis8IUFUVExJU1QgU3RhdHVzV2lsbENoYW5nZSAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTdWJIZWFkTGluZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBkaXNwbGF5YWJsZSBzdWJzaWRpYXJ5IGhlYWRsaW5lLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFN1YkhlYWRMaW5lICAoI1BDREFUQSB8IE9yaWdpbiApKj4NCis8IUFUVExJU1QgU3ViSGVhZExpbmUgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICAgeG1sOmxhbmcgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFN1YmplY3QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5kaWNhdGlvbiBvZiB0aGUgU3ViamVjdCBvZiBhIE5ld3NJdGVtLiBUaGUgdmFsdWUgb2YgdGhlIEZvcm1hbE5hbWUNCithdHRyaWJ1dGUgaXMgYSBmb3JtYWwgbmFtZSBmb3IgdGhlIFN1YmplY3QuIEl0cyBtZWFuaW5nIGFuZCBwZXJtaXR0ZWQgdmFsdWVzDQorYXJlIGRldGVybWluZWQgYnkgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIHRoZQ0KK2Zvcm1hbG5hbWUgRU5USVRZIGRlY2xhcmF0aW9uIGFib3ZlLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFN1YmplY3QgRU1QVFk+DQorPCFBVFRMSVNUIFN1YmplY3QgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAlZm9ybWFsbmFtZTsNCisgICAgICAgICAgICAgICAgICAgJWFzc2lnbm1lbnQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTdWJqZWN0Q29kZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBjb250YWluZXIgZm9yIHRoZSBJUFRDIFN1YmplY3QgQ29kZXMgdGhhdCBpbmRpY2F0ZSB0aGUgc3ViamVjdCBvZiBhIE5ld3NJdGVtLA0KK2FzIGRlZmluZWQgaW4gdGhlIElQVEMgSW5mb3JtYXRpb24gSW50ZXJjaGFuZ2UgTW9kZWwuIEl0IGNvbnNpc3RzIG9mIG9uZSBtb3JlDQorU3ViamVjdCwgU3ViamVjdE1hdHRlciBhbmQgU3ViamVjdERldGFpbCBlbGVtZW50cywgb3B0aW9uYWxseSBhbXBsaWZpZWQgYnkgb25lDQorb3IgbW9yZSBTdWJqZWN0UXVhbGlmaWVyIGVsZW1lbnRzLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFN1YmplY3RDb2RlICAoIChTdWJqZWN0IHwgU3ViamVjdE1hdHRlciB8IFN1YmplY3REZXRhaWwgKSAsIFN1YmplY3RRdWFsaWZpZXIqICkqPg0KKzwhQVRUTElTVCBTdWJqZWN0Q29kZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU3ViamVjdERldGFpbCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBTdWJqZWN0RGV0YWlsIG9mIGEgTmV3c0l0ZW0uIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZQ0KK2F0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgU3ViamVjdERldGFpbC4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZA0KK3ZhbHVlcyBhcmUgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQNCit0byB0aGUgZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgU3ViamVjdERldGFpbCBFTVBUWT4NCis8IUFUVExJU1QgU3ViamVjdERldGFpbCAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU3ViamVjdE1hdHRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBTdWJqZWN0TWF0dGVyIG9mIGEgTmV3c0l0ZW0uIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZQ0KK2F0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgU3ViamVjdE1hdHRlci4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZA0KK3ZhbHVlcyBhcmUgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8NCit0aGUgZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgU3ViamVjdE1hdHRlciBFTVBUWT4NCis8IUFUVExJU1QgU3ViamVjdE1hdHRlciAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTdWJqZWN0UXVhbGlmaWVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSBTdWJqZWN0UXVhbGlmaWVyIG9mIGEgTmV3c0l0ZW0uIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZQ0KK2F0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lIGZvciB0aGUgU3ViamVjdFF1YWxpZmllci4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZA0KK3ZhbHVlcyBhcmUgZGV0ZXJtaW5lZCBieSBhIGNvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8NCit0aGUgZm9ybWFsbmFtZSBFTlRJVFkgZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgU3ViamVjdFF1YWxpZmllciBFTVBUWT4NCis8IUFUVExJU1QgU3ViamVjdFF1YWxpZmllciAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTeXN0ZW1JZGVudGlmaWVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIHN5c3RlbSBpZGVudGlmaWVyIChpbiB0aGUgc2Vuc2UgZGVmaW5lZCBieSB0aGUgWE1MIDEsMCBTcGVjaWZpY2F0aW9uKSBmb3IgYQ0KK05ld3NJdGVtLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFN5c3RlbUlkZW50aWZpZXIgICgjUENEQVRBICk+DQorPCFBVFRMSVNUIFN5c3RlbUlkZW50aWZpZXIgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBUaGlzUmV2aXNpb25DcmVhdGVkID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1RoZSBkYXRlIGFuZCwgb3B0aW9uYWxseSwgdGltZSBhdCB3aGljaCB0aGUgY3VycmVudCByZXZpc2lvbiBvZiBhIE5ld3NJdGVtIHdhcw0KK2NyZWF0ZWQsIGV4cHJlc3NlZCBpbiBJU08gODYwMSBCYXNpYyBGb3JtYXQsIGFzIGRlc2NyaWJlZCBpbiB0aGUgY29tbWVudCB0byB0aGUNCitEYXRlQW5kVGltZSBhdHRyaWJ1dGUgd2l0aGluIHRoZSBhc3NpZ25tZW50IEVOVElUWSBkZWNsYXJhdGlvbiBhYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBUaGlzUmV2aXNpb25DcmVhdGVkICAoI1BDREFUQSApPg0KKzwhQVRUTElTVCBUaGlzUmV2aXNpb25DcmVhdGVkICAlbG9jYWxpZDsgPg0KKzwhLS0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVG9waWMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1RoaXMgZWxlbWVudCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHRoaW5nIChUb3BpYykgbmFtZWQgYnkgYSBmb3JtYWwNCituYW1lIG9yIG9jY3VycmluZyBpbiBhIE5ld3NDb21wb25lbnQuIEEgVG9waWMgbXVzdCBoYXZlIG9uZSBvciBtb3JlIFRvcGljVHlwZQ0KK3N1YmVsZW1lbnRzLCB3aGljaCBzdGF0ZSB3aGF0IHR5cGUgb2YgVG9waWMgaXQgaXMuIFRoZSBvcHRpb25hbCBEZXRhaWxzDQorYXR0cmlidXRlIHByb3ZpZGVzIGEgcG9pbnRlciwgaW4gdGhlIGZvcm0gb2YgYSBVUkwgb3IgVVJOLCB0byBhZGRpdGlvbmFsDQoraW5mb3JtYXRpb24gYWJvdXQgdGhlIFRvcGljLg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFRvcGljICAoQ29tbWVudCogLCBDYXRhbG9nPyAsIFRvcGljVHlwZSsgLCBGb3JtYWxOYW1lKiAsIERlc2NyaXB0aW9uKiAsIFByb3BlcnR5KiApPg0KKzwhQVRUTElTVCBUb3BpYyAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICBEZXRhaWxzIENEQVRBICAjSU1QTElFRCA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFRvcGljT2NjdXJyZW5jZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gdGhhdCBhIHBhcnRpY3VsYXIgdG9waWMgb2NjdXJzIHdpdGhpbiB0aGUgY29udGVudCBvZiBhDQorTmV3c0NvbXBvbmVudC4gVGhlIG9wdGlvbmFsIEhvd1ByZXNlbnQgYXR0cmlidXRlIGluZGljYXRlcyB0aGUgbmF0dXJlIG9mIHRoYXQNCit0b3BpYydzIG9jY3VycmVuY2UuIFRoZSB2YWx1ZSBvZiB0aGUgVG9waWMgYXR0cmlidXRlIG11c3QgY29uc2lzdCBvZiBhICMNCitjaGFyYWN0ZXIgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIHRoZSBEdWlkIGF0dHJpYnV0ZSBvZiBhIFRvcGljIGluIHRoZSBjdXJyZW50DQorZG9jdW1lbnQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgVG9waWNPY2N1cnJlbmNlIEVNUFRZPg0KKzwhQVRUTElTVCBUb3BpY09jY3VycmVuY2UgICVsb2NhbGlkOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICVhc3NpZ25tZW50Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvcGljICAgICAgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVG9waWNTZXQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBjb250YWluZXIgZm9yIFRvcGljcy4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lIGF0dHJpYnV0ZSBpcyBhIGZvcm1hbCBuYW1lDQorZm9yIHRoZSBUb3BpY1NldC4gSXRzIG1lYW5pbmcgYW5kIHBlcm1pdHRlZCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgYQ0KK2NvbnRyb2xsZWQgdm9jYWJ1bGFyeSBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gdGhlIGZvcm1hbG5hbWUgRU5USVRZDQorZGVjbGFyYXRpb24gYWJvdmUuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgVG9waWNTZXQgIChDb21tZW50KiAsIENhdGFsb2c/ICwgVG9waWNTZXRSZWYqICwgVG9waWMqICk+DQorPCFBVFRMSVNUIFRvcGljU2V0ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICVmb3JtYWxuYW1lOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVG9waWNTZXRSZWYgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0EgcG9pbnRlciB0byBhIFRvcGljU2V0IHRoYXQgaXMgdG8gYmUgbWVyZ2VkIHdpdGggdGhlIGN1cnJlbnQgb25lLiBUaGUgVG9waWNTZXQNCithdHRyaWJ1dGUgaXMgYSBwb2ludGVyIHRvIHRoZSByZWxldmFudCBUb3BpY1NldC4gSXRzIHZhbHVlIGNhbiBiZSBhbiBodHRwIFVSTCwNCitvciBhIE5ld3NNTCBVUk4gYXMgZGVzY3JpYmVkIGluIHRoZSBjb21tZW50IHRvIFB1YmxpY0lkZW50aWZpZXIsIG9yIGEgZnJhZ21lbnQNCitpZGVudGlmaWVyIGNvbnNpc3Rpbmcgb2YgYSAjIGNoYXJhY3RlciBmb2xsb3dlZCBieSB0aGUgRHVpZCBvZiBhIFRvcGljU2V0IGluIHRoZQ0KK2N1cnJlbnQgZG9jdW1lbnQuIFRoZSBwcmVzZW5jZSBvZiBhIFRvcGljU2V0UmVmIGNoaWxkIGluIGEgVG9waWNTZXQgaGFzIHRoZQ0KK2VmZmVjdCB0aGF0IGFsbCB0aGUgVG9waWNzIGluIHRoZSByZWZlcmVuY2VkIFRvcGljU2V0IGFyZSBpbmNsdWRlZCBieSByZWZlcmVuY2UNCit3aXRoaW4gdGhlIGN1cnJlbnQgVG9waWNTZXQuIFdoZW4gdGhpcyBtZXJnaW5nIHJlc3VsdHMgaW4gdGhlcmUgZXhpc2luZyB0d28NCitGb3JtYWxOYW1lIGdyYW5kY2hpbGRyZW4gb2YgdGhlIHNhbWUgVG9waWNTZXQgdGhhdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQgYW5kDQordGhlIHNhbWUgU2NoZW1lIGF0dHJpYnV0ZSB2YWx1ZSwgdGhlbiB0aGUgVG9waWNzIHdob3NlIGNoaWxkcmVuIGFyZSBpbiBmYWN0IHRoZQ0KK3NhbWUgdG9waWMsIGFuZCBhcmUgZGVlbWVkIHRvIGJlIG1lcmdlZC4gVGhlIG1lcmdpbmcgb2YgVG9waWNzIG5lZWQgbm90IGJlDQorcGVyZm9ybWVkIHBoeXNpY2FsbHkgYnkgdGhlIHN5c3RlbSwgYnV0IHRoZSBtZWFuaW5nIG9mIHRoZSBkYXRhIGlzDQorZXhhY3RseSB0aGUgc2FtZSBhcyBpZiB0aGUgbWVyZ2luZyB3ZXJlIGFjdHVhbGx5IHBlcmZvcm1lZC4gTWVyZ2luZyB0d28NCitUb3BjaXMgY29uc2lzdHMgb2YgY3JlYXRpbmcgYSBzaW5nbGUgVG9waWMgdGhhdCBjb250YWlucyBhbGwgdGhlIGNoaWxkcmVuIG9mDQorYm90aCwgYW5kIGVsaW1pbmF0aW5nIGR1cGxpY2F0ZXMuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgVG9waWNTZXRSZWYgIChDb21tZW50KiApPg0KKzwhQVRUTElTVCBUb3BpY1NldFJlZiAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICBUb3BpY1NldCBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBUb3BpY1R5cGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpbmRpY2F0aW9uIG9mIHRoZSB0eXBlIG9mIGEgVG9waWMuIFRoZSB2YWx1ZSBvZiB0aGUgRm9ybWFsTmFtZSBhdHRyaWJ1dGUgaXMNCithIGZvcm1hbCBuYW1lIGZvciB0aGUgVG9waWNUeXBlLiBJdHMgbWVhbmluZyBhbmQgcGVybWl0dGVkIHZhbHVlcyBhcmUgZGV0ZXJtaW5lZA0KK2J5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5IGFzIGRlc2NyaWJlZCBpbiB0aGUgY29tbWVudCB0byB0aGUgZm9ybWFsbmFtZSBFTlRJVFkNCitkZWNsYXJhdGlvbiBhYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBUb3BpY1R5cGUgRU1QVFk+DQorPCFBVFRMSVNUIFRvcGljVHlwZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgJWZvcm1hbG5hbWU7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVG9waWNVc2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQW4gaW5kaWNhdGlvbiBvZiB3aGVyZSBhIHBhcnRpY3VsYXIgVG9waWMgaXMgdXNlZCBpbiBhIE5ld3NNTCBkb2N1bWVudC4gVGhlDQordmFsdWUgb2YgdGhlIFRvcGljIGF0dHJpYnV0ZSBtdXN0IGNvbnNpc3Qgb2YgYSAjIGNoYXJhY3RlciBmb2xsb3dlZCBieSB0aGUNCit2YWx1ZSBvZiB0aGUgRHVpZCBvZiBhIFRvcGljIGluIHRoZSBjdXJyZW50IGRvY3VtZW50LiBUaGUgdmFsdWUgb2YgdGhlIENvbnRleHQNCithdHRyaWJ1dGUgaXMgYW4gWFBhdGggcGF0dGVybiBpbmRpY2F0aW5nIHRoZSBjb250ZXh0IHdoZXJlIHRoZSByZWZlcmVuY2VkIHRvcGljDQoraXMgdXNlZCB3aXRoaW4gdGhlIHN1YnRyZWUgdG8gd2hpY2ggdGhlIGN1cnJlbnQgQ2F0YWxvZyBhcHBsaWVzLiBJZiB0aGUgQ29udGV4dA0KK2F0dHJpYnV0ZSBpcyBub3QgcHJlc2VudCwgdGhlIFRvcGljVXNlIGVsZW1lbnQgc2ltcGx5IHN0YXRlcyB0aGF0IHRoaXMgdG9waWMgaXMNCitwcmVzZW50IHNvbWV3aGVyZSBpbiB0aGUgc3VidHJlZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBUb3BpY1VzZSBFTVBUWT4NCis8IUFUVExJU1QgVG9waWNVc2UgIFRvcGljICAgQ0RBVEEgICNSRVFVSVJFRA0KKyAgICAgICAgICAgICAgICAgICAgQ29udGV4dCBDREFUQSAgI0lNUExJRUQgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVHJhbnNtaXNzaW9uSWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBbiBpZGVudGlmaWVyIGZvciB0aGUgTmV3c01MIGRvY3VtZW50IHRyYW5zbWlzc2lvbi4gVGhpcyBzaG91bGQgYmUgdW5pcXVlIGFtb25nDQorYWxsIGRpc3RpbmN0IHRyYW5zbWlzc2lvbnMgZnJvbSB0aGUgc2FtZSBwdWJsaXNoZXIuIElmIGEgdHJhbnNtaXNzaW9uIGlzDQorcmVwZWF0ZWQgKHBlcmhhcHMgYmVjYXVzZSB0aGUgc2VuZGVyIGlzIG5vdCBjb25maWRlbnQgdGhhdCBpdCB3YXMgc3VjY2Vzc2Z1bGx5DQorcmVjZWl2ZWQpIHRoZW4gdGhlIHNhbWUgVHJhbnNtaXNzaW9uSWQgY29udGVudCBtYXkgYmUgdXNlZCwgYnV0IGEgUmVwZWF0DQorYXR0cmlidXRlIHNob3VsZCBiZSBwcm92aWRlZCB0byBkaXN0aW5ndWlzaCB0aGUgc2Vjb25kIHRyYW5zbWlzc2lvbiBmcm9tIHRoZQ0KK2ZpcnN0LiBUaGUgZm9ybSB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgUmVwZWF0IGF0dHJpYnV0ZSB0YWtlcyBpcyBkZXRlcm1pbmVkIGJ5DQordGhlIHByb3ZpZGVyLiBMaWtld2lzZSwgdGhlIGZvcm1hdCBmb3IgdGhlIFRyYW5zbWlzc2lvbklkIGl0c2VsZiBpcyBmb3IgdGhlDQorcHJvdmlkZXIgdG8gZGVjaWRlLiBJdCBjb3VsZCBmb3IgZXhhbXBsZSBjb25zaXN0IG9mIGEgY2hhbm5lbCBpZGVudGlmaWVyDQorZm9sbG93ZWQgYnkgYSBzZXF1ZW5jZSBudW1iZXIuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgVHJhbnNtaXNzaW9uSWQgICgjUENEQVRBICk+DQorPCFBVFRMSVNUIFRyYW5zbWlzc2lvbklkICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcGVhdCAgQ0RBVEEgICNJTVBMSUVEID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBVcGRhdGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBtb2RpZmljYXRpb24gdG8gYW4gZXhpc3RpbmcgTmV3c0l0ZW0uIFRoaXMgY2FuIGJlIGFuIGluc2VydGlvbiwgcmVwbGFjZW1lbnQNCitvciBkZWxldGlvbi4gTm90ZSB0aGF0IHRoZSBVcGRhdGUgZWxlbWVudCBjYW5ub3QgYmUgdXNlZCB0byBtb2RpZnkgdGhlDQorTmV3c01hbmFnZW1lbnQgb3IgSWRlbnRpZmljYXRpb24gZWxlbWVudCwgb3IgYW55IG9mIHRoZWlyIGRlc2NlbmRhbnRzLg0KK01vZGlmaWNhdGlvbnMgdG8gdGhlc2UgcGFydHMgb2YgdGhlIE5ld3NJdGVtIGNhbiBiZSBtYWRlIGJ5IGlzc3VpbmcgdGhlDQorTmV3c0l0ZW0gdW5kZXIgdGhlIGN1cnJlbnQgcmV2aXNpb24gbnVtYmVyLCB3aXRoIG9ubHkgdGhlIElkZW50aWZpY2F0aW9uIGFuZA0KK05ld3NNYW5hZ2VtZW50IGVsZW1lbnRzIHByZXNlbnQuIFRoZXNlIHdpbGwgcmVwbGFjZSB0aGUgcHJldmlvdXMgSWRlbnRpZmljYXRpb24NCithbmQgTmV3c01hbmFnZW1lbnQgZWxlbWVudHMgaW4gdGhlaXIgdG90YWxpdHkuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCistLT4NCis8IUVMRU1FTlQgVXBkYXRlICAoSW5zZXJ0QmVmb3JlIHwgSW5zZXJ0QWZ0ZXIgfCBSZXBsYWNlIHwgRGVsZXRlICkqPg0KKzwhQVRUTElTVCBVcGRhdGUgICVsb2NhbGlkOyA+DQorPCEtLSANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBVcmdlbmN5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0FuIGluZGljYXRpb24gb2YgdGhlIHVyZ2VuY3kgb2YgYSBOZXdzSXRlbS4gVGhlIHZhbHVlIG9mIHRoZSBGb3JtYWxOYW1lDQorYXR0cmlidXRlIGlzIGEgZm9ybWFsIG5hbWUgZm9yIHRoZSBVcmdlbmN5LiBJdHMgbWVhbmluZyBhbmQgcGVybWl0dGVkIHZhbHVlcw0KK2FyZSBkZXRlcm1pbmVkIGJ5IGEgY29udHJvbGxlZCB2b2NhYnVsYXJ5IGFzIGRlc2NyaWJlZCBpbiB0aGUgY29tbWVudCB0byB0aGUNCitmb3JtYWxuYW1lIEVOVElUWSBkZWNsYXJhdGlvbiBhYm92ZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBVcmdlbmN5IEVNUFRZPg0KKzwhQVRUTElTVCBVcmdlbmN5ICAlbG9jYWxpZDsNCisgICAgICAgICAgICAgICAgICAgJWZvcm1hbG5hbWU7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVXJsID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBVUkwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb2NhdGUgYSBSZXNvdXJjZS4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBVcmwgICgjUENEQVRBICk+DQorPCFBVFRMSVNUIFVybCAgJWxvY2FsaWQ7ID4NCis8IS0tIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVXJuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorQSBVUk4gdGhhdCBwcm92aWRlcyBhIGdsb2JhbCBpZGVudGlmaWVyIGZvciBhIHJlc291cmNlLiBUaGlzIHdpbGwgdHlwaWNhbGx5IChidXQNCitub3QgbmVjZXNzYXJpbHkpIGJlIGEgTmV3c01MIFVSTiBhcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnQgdG8gUHVibGljSWRlbnRpZmllci4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBVcm4gICgjUENEQVRBICk+DQorPCFBVFRMSVNUIFVybiAgJWxvY2FsaWQ7ID4NCis8IS0tDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFVzYWdlUmlnaHRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitJbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNhZ2UgcmlnaHRzIHBlcnRhaW5pbmcgdG8gYSBOZXdzQ29tcG9uZW50LiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy0tPg0KKzwhRUxFTUVOVCBVc2FnZVJpZ2h0cyAgKFVzYWdlVHlwZT8gLCBHZW9ncmFwaHk/ICwgUmlnaHRzSG9sZGVyPyAsIExpbWl0YXRpb25zPyAsIFN0YXJ0RGF0ZT8gLCBFbmREYXRlPyApPg0KKzwhQVRUTElTVCBVc2FnZVJpZ2h0cyAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KKzwhLS0gDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBVc2FnZVR5cGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitBIG5hdHVyYWwtbGFuZ3VhZ2UgaW5kaWNhdGlvbiBvZiB0aGUgdHlwZSBvZiB1c2FnZSB0byB3aGljaCB0aGUgcmlnaHRzIGFwcGx5Lg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLS0+DQorPCFFTEVNRU5UIFVzYWdlVHlwZSAgKCNQQ0RBVEEgfCBPcmlnaW4gKSo+DQorPCFBVFRMSVNUIFVzYWdlVHlwZSAgJWxvY2FsaWQ7DQorICAgICAgICAgICAgICAgICAgICAgeG1sOmxhbmcgICBDREFUQSAgI0lNUExJRUQNCisgICAgICAgICAgICAgICAgICAgICAlYXNzaWdubWVudDsgPg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL2Rlc3Rmb28uZW50IGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvZGVzdGZvby5lbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc5MWUxYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL2Rlc3Rmb28uZW50CkBAIC0wLDAgKzEgQEAKKzxkZXN0IGlkPSdmb28nLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL2V4dGVybmFsLmVudCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL2V4dGVybmFsLmVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTQ0OTVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvZXh0ZXJuYWwuZW50CkBAIC0wLDAgKzEsMyBAQAorPCFFTEVNRU5UIHJvb3QgKCNQQ0RBVEEpPgorPCFFTlRJVFkgJSBwZUluQ2RhdGEgU1lTVEVNICJleHRlcm5hbDIuZW50Ij4KKzwhRU5USVRZIHBlSW5DZGF0YSAiPCFbQ0RBVEFbJXBlSW5DZGF0YTtdXT4iPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvZXh0ZXJuYWwyLmVudCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL2V4dGVybmFsMi5lbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ4ZTFkYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL2V4dGVybmFsMi5lbnQKQEAgLTAsMCArMSBAQAorPCFBVFRMSVNUIHJvb3QgYXR0cjEgTk1UT0tFTiAiYXR0cnZhbHVlIj4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL25pdGYtMi01LmR0ZCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL25pdGYtMi01LmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTNlNjIwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvbml0Zi0yLTUuZHRkCkBAIC0wLDAgKzEsMTAwNCBAQAorIDwhLS0NCisJTmV3cyBJbmR1c3RyeSBUZXh0IEZvcm1hdA0KKwlEb2N1bWVudCBUeXBlIERlZmluaXRpb24gLSBWZXJzaW9uIDIuNQ0KKwlodHRwOi8vd3d3Lm5pdGYub3JnLw0KKw0KKwlDb3B5cmlnaHQgKGMpIDIwMDAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQorCUludGVybmF0aW9uYWwgUHJlc3MgVGVsZWNvbW11bmljYXRpb25zIENvdW5jaWwNCisJaHR0cDovL3d3dy5pcHRjLm9yZw0KKwkJDQorCUxhc3QgY2hhbmdlZDogOSBBdWd1c3QgMjAwMCAgd2Iva3IvYWsNCisJDQorCUZvciB0aGUgbGlzdCBvZiBtb2RpZmljYXRpb25zIGZyb20gcHJldmlvdXMgcmVsZWFzZXMsIHNlZToNCisJCWh0dHA6Ly93d3cubml0Zi5vcmcvcmVjZW50LW1vZGlmaWNhdGlvbnMuaHRtbCANCisNCisJRm9yIHRoZSBsaXN0IG9mIHByb3Bvc2VkIG1vZGlmaWNhdGlvbnMsIHNlZToNCisJCWh0dHA6Ly93d3cubml0Zi5vcmcvcHJvcG9zZWQtY2hhbmdlcy5odG1sIA0KKy0tPg0KKw0KKw0KKw0KKzwhRU5USVRZICUgZW5yaWNoZWQtdGV4dCAnDQorCSNQQ0RBVEENCisJfCBjaHJvbg0KKwl8IGNvcHlyaXRlDQorCXwgZXZlbnQNCisJfCBmdW5jdGlvbg0KKwl8IGxvY2F0aW9uDQorCXwgbW9uZXkNCisJfCBudW0NCisJfCBvYmplY3QudGl0bGUNCisJfCBvcmcNCisJfCBwZXJzb24NCisJfCBwb3N0YWRkcg0KKwl8IHZpcnRsb2MNCisJfCBhDQorCXwgYnINCisJfCBlbQ0KKwl8IGxhbmcNCisJfCBwcm9ub3VuY2UNCisJfCBxDQorCSc+DQorDQorPCFFTlRJVFkgJSBibG9jay5oZWFkICJkYXRlbGluZT8sIGNvcHlyaXRlPywgYWJzdHJhY3Q/Ij4NCis8IUVOVElUWSAlIGJsb2NrLmNvbnRlbnQgInAgfCBobDIgfCB0YWJsZSB8IG1lZGlhIHwgb2wgfCB1bCB8IGRsIHwgYnEgfCBmbiB8IG5vdGUgfCBwcmUgfCBociI+DQorPCFFTlRJVFkgJSBibG9jay5lbmQgImRhdGFzb3VyY2U/Ij4NCisNCisNCis8IUVOVElUWSAlIGdsb2JhbC1hdHRyaWJ1dGVzICcNCisJaWQgCUlEIAkJCQkJCSNJTVBMSUVEDQorCSc+DQorPCFFTlRJVFkgJSBjb21tb24tYXR0cmlidXRlcyAnDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJY2xhc3MgCU5NVE9LRU5TIAkJCQkJI0lNUExJRUQNCisJc3R5bGUgCUNEQVRBIAkJCQkJCSNJTVBMSUVEDQorCWxhbmcgCU5NVE9LRU4gCQkJCQkjSU1QTElFRA0KKwlkaXIgCShsdHIgfCBydGwpIAkJCQkJI0lNUExJRUQNCisJJz4NCis8IUVOVElUWSAlIGNlbGwuYWxpZ24gJw0KKwlhbGlnbiAJKGxlZnQgfCBjZW50ZXIgfCByaWdodCB8IGp1c3RpZnkgfCBjaGFyKSAJI0lNUExJRUQNCisJY2hhciAJQ0RBVEEgCQkJCQkJI0lNUExJRUQNCisJY2hhcm9mZiBDREFUQSAJCQkJCQkjSU1QTElFRA0KKwknPg0KKzwhRU5USVRZICUgY2VsbC52YWxpZ24gJw0KKwl2YWxpZ24gCSh0b3AgfCBtaWRkbGUgfCBib3R0b20gfCBiYXNlbGluZSkgCQkjSU1QTElFRA0KKwknPg0KKzwhRU5USVRZICUgdXJsLmxpbmsgJw0KKwltZCAJQ0RBVEEgCQkJCQkJI0lNUExJRUQNCisJJz4NCis8IUVOVElUWSAlIGJvb2xlYW4gJyh0cnVlIHwgZmFsc2UpJz4NCisNCisNCis8IUVMRU1FTlQgbml0ZiAoaGVhZCwgYm9keSk+DQorPCFBVFRMSVNUIG5pdGYNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwl1bm8gCQlDREFUQSAJCSNJTVBMSUVEDQorCXZlcnNpb24gCUNEQVRBIAkJI0ZJWEVEIAkJIi0vL0lQVEMtTkFBLy9EVEQgTklURi1YTUwgMi4xLy9FTiINCisJY2hhbmdlLmRhdGUgCUNEQVRBIAkJI0ZJWEVEIAkJIjQgSnVseSAyMDAwIg0KKwljaGFuZ2UudGltZSAJQ0RBVEEgCQkjRklYRUQgCQkiMTkwMCINCisJYmFzZWxhbmcgCUNEQVRBIAkJI0lNUExJRUQNCisJY2xhc3MgCQlOTVRPS0VOUyAJI0lNUExJRUQNCisJPg0KKwkNCisNCis8IUVMRU1FTlQgaGVhZCAodGl0bGU/LCBtZXRhKiwgdG9iamVjdD8sIGlpbT8sIGRvY2RhdGE/LCBwdWJkYXRhKiwgcmV2aXNpb24taGlzdG9yeSopPg0KKzwhQVRUTElTVCBoZWFkDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJPg0KKwkNCis8IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPg0KKzwhQVRUTElTVCB0aXRsZQ0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCXR5cGUgCSgNCisJCW1haW4NCisJCXwgc3VidGl0bGUNCisJCXwgcGFydHRpdGxlDQorCQl8IGFsdGVybmF0ZQ0KKwkJfCBhYmJyZXYNCisJCXwgb3RoZXINCisJCSkgCSNJTVBMSUVEDQorCT4NCisJDQorPCFFTEVNRU5UIG1ldGEgRU1QVFk+DQorPCFBVFRMSVNUIG1ldGENCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwlodHRwLWVxdWl2IAlOTVRPS0VOIAkjSU1QTElFRA0KKwluYW1lIAkJTk1UT0tFTiAJI0lNUExJRUQNCisJY29udGVudCAJQ0RBVEEgCQkjUkVRVUlSRUQNCisJPg0KKwkNCis8IUVMRU1FTlQgdG9iamVjdCAodG9iamVjdC5wcm9wZXJ0eSosIHRvYmplY3Quc3ViamVjdCopPg0KKzwhQVRUTElTVCB0b2JqZWN0DQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJdG9iamVjdC50eXBlIAkJQ0RBVEEgCSJuZXdzIg0KKwk+DQorCQ0KKwk8IUVMRU1FTlQgdG9iamVjdC5wcm9wZXJ0eSBFTVBUWT4NCisJPCFBVFRMSVNUIHRvYmplY3QucHJvcGVydHkNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCXRvYmplY3QucHJvcGVydHkudHlwZSAJQ0RBVEEgCSJjdXJyZW50Ig0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCB0b2JqZWN0LnN1YmplY3QgIEVNUFRZPg0KKwk8IUFUVExJU1QgdG9iamVjdC5zdWJqZWN0DQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQl0b2JqZWN0LnN1YmplY3QuaXByIAkJQ0RBVEEgCQkiSVBUQyINCisJCXRvYmplY3Quc3ViamVjdC5yZWZudW0gCQlOTVRPS0VOIAkjUkVRVUlSRUQNCisJCXRvYmplY3Quc3ViamVjdC5jb2RlIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJdG9iamVjdC5zdWJqZWN0LnR5cGUgCQlDREFUQSAJCSNJTVBMSUVEDQorCQl0b2JqZWN0LnN1YmplY3QubWF0dGVyIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJdG9iamVjdC5zdWJqZWN0LmRldGFpbCAJCUNEQVRBIAkJI0lNUExJRUQNCisJCT4NCisJCQ0KKzwhRUxFTUVOVCBpaW0gKGRzKik+DQorPCFBVFRMSVNUIGlpbQ0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCXZlciAJTk1UT0tFTiAJI0lNUExJRUQNCisJPg0KKwkNCisJPCFFTEVNRU5UIGRzIEVNUFRZPg0KKwk8IUFUVExJU1QgZHMNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCW51bSAJCU5NVE9LRU4gCSNSRVFVSVJFRA0KKwkJdmFsdWUgCQlDREFUQSAJCSNJTVBMSUVEDQorCQk+DQorCQkNCis8IUVMRU1FTlQgZG9jZGF0YSAoDQorCWNvcnJlY3Rpb24NCisJfCBldmxvYw0KKwl8IGRvYy1pZA0KKwl8IGRlbC1saXN0DQorCXwgdXJnZW5jeQ0KKwl8IGZpeHR1cmUNCisJfCBkYXRlLmlzc3VlDQorCXwgZGF0ZS5yZWxlYXNlDQorCXwgZGF0ZS5leHBpcmUNCisJfCBkb2Mtc2NvcGUNCisJfCBzZXJpZXMNCisJfCBlZC1tc2cNCisJfCBkdS1rZXkNCisJfCBkb2MuY29weXJpZ2h0DQorCXwgZG9jLnJpZ2h0cw0KKwl8IGtleS1saXN0DQorCSkqPg0KKzwhQVRUTElTVCBkb2NkYXRhDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJPg0KKwkNCisJPCFFTEVNRU5UIGNvcnJlY3Rpb24gRU1QVFk+DQorCTwhQVRUTElTVCBjb3JyZWN0aW9uDQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQlpbmZvIAkJQ0RBVEEgCSNJTVBMSUVEDQorCQlpZC1zdHJpbmcgCUNEQVRBIAkjSU1QTElFRA0KKwkJcmVnLXNyYyAJQ0RBVEEgCSNJTVBMSUVEDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIGV2bG9jIEVNUFRZPg0KKwk8IUFUVExJU1QgZXZsb2MNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCWlzby1jYyAJCUNEQVRBIAkjSU1QTElFRA0KKwkJc3RhdGUtcHJvdiAJQ0RBVEEgCSNJTVBMSUVEDQorCQljb3VudHktZGlzdCAJQ0RBVEEgCSNJTVBMSUVEDQorCQljaXR5IAkJQ0RBVEEgCSNJTVBMSUVEDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIGRvYy1pZCBFTVBUWT4NCisJPCFBVFRMSVNUIGRvYy1pZA0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJcmVnc3JjIAkJQ0RBVEEgCSNJTVBMSUVEDQorCQlpZC1zdHJpbmcgCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBkZWwtbGlzdCAoZnJvbS1zcmMpKj4NCisJPCFBVFRMSVNUIGRlbC1saXN0DQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQk+DQorCQkNCisJCTwhRUxFTUVOVCBmcm9tLXNyYyBFTVBUWT4NCisJCTwhQVRUTElTVCBmcm9tLXNyYw0KKwkJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCQlzcmMtbmFtZSAJQ0RBVEEgCSNJTVBMSUVEDQorCQkJbGV2ZWwtbnVtYmVyIAlDREFUQSAJI0lNUExJRUQNCisJCQk+DQorCQkJDQorCTwhRUxFTUVOVCB1cmdlbmN5IEVNUFRZPg0KKwk8IUFUVExJU1QgdXJnZW5jeQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJZWQtdXJnIAkJTk1UT0tFTiAJI0lNUExJRUQNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgZml4dHVyZSBFTVBUWT4NCisJPCFBVFRMSVNUIGZpeHR1cmUNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCWZpeC1pZCAJCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBkYXRlLmlzc3VlIEVNUFRZPg0KKwk8IUFUVExJU1QgZGF0ZS5pc3N1ZQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJbm9ybSAJCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBkYXRlLnJlbGVhc2UgRU1QVFk+DQorCTwhQVRUTElTVCBkYXRlLnJlbGVhc2UNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCW5vcm0gCQlDREFUQSAJI0lNUExJRUQNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgZGF0ZS5leHBpcmUgRU1QVFk+DQorCTwhQVRUTElTVCBkYXRlLmV4cGlyZQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJbm9ybSAJCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBkb2Mtc2NvcGUgRU1QVFk+DQorCTwhQVRUTElTVCBkb2Mtc2NvcGUNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCXNjb3BlIAkJQ0RBVEEgCSNJTVBMSUVEDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIHNlcmllcyBFTVBUWT4NCisJPCFBVFRMSVNUIHNlcmllcw0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJc2VyaWVzLm5hbWUgCQlDREFUQSAJCSNJTVBMSUVEDQorCQlzZXJpZXMucGFydCAJCU5NVE9LRU4gCSIwIg0KKwkJc2VyaWVzLnRvdGFscGFydCAJTk1UT0tFTiAJIjAiDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIGVkLW1zZyBFTVBUWT4NCisJPCFBVFRMSVNUIGVkLW1zZw0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJbXNnLXR5cGUgCUNEQVRBIAkjSU1QTElFRA0KKwkJaW5mbyAJCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBkdS1rZXkgRU1QVFk+DQorCTwhQVRUTElTVCBkdS1rZXkNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCWdlbmVyYXRpb24gCU5NVE9LRU4gCSNJTVBMSUVEDQorCQlwYXJ0IAkJTk1UT0tFTiAJI0lNUExJRUQNCisJCXZlcnNpb24gCU5NVE9LRU4gCSNJTVBMSUVEDQorCQlrZXkgCQlDREFUQSAJCSNJTVBMSUVEDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIGRvYy5jb3B5cmlnaHQgRU1QVFk+DQorCTwhQVRUTElTVCBkb2MuY29weXJpZ2h0DQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQl5ZWFyIAkJTk1UT0tFTiAJI0lNUExJRUQNCisJCWhvbGRlciAJCUNEQVRBIAkJI0lNUExJRUQNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgZG9jLnJpZ2h0cyBFTVBUWT4NCisJPCFBVFRMSVNUIGRvYy5yaWdodHMNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCW93bmVyIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJc3RhcnRkYXRlIAlDREFUQSAJCSNJTVBMSUVEDQorCQllbmRkYXRlIAlDREFUQSAJCSNJTVBMSUVEDQorCQlhZ2VudCAJCUNEQVRBIAkJI0lNUExJRUQNCisJCWdlb2dyYXBoeSAJQ0RBVEEgCQkjSU1QTElFRA0KKwkJbG9jYXRpb24tY29kZSAJQ0RBVEEgCQkjSU1QTElFRA0KKwkJY29kZS1zb3VyY2UgCUNEQVRBIAkJI0lNUExJRUQNCisJCXR5cGUgCQlDREFUQSAJCSNJTVBMSUVEDQorCQlsaW1pdGF0aW9ucyAJQ0RBVEEgCQkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBrZXktbGlzdCAoa2V5d29yZCkqPg0KKwk8IUFUVExJU1Qga2V5LWxpc3QNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCT4NCisJCQ0KKwkJPCFFTEVNRU5UIGtleXdvcmQgRU1QVFk+DQorCQk8IUFUVExJU1Qga2V5d29yZA0KKwkJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCQlrZXkgCQlDREFUQSAJI0lNUExJRUQNCisJCQk+DQorCQkJDQorPCFFTEVNRU5UIHB1YmRhdGEgRU1QVFk+DQorPCFBVFRMSVNUIHB1YmRhdGENCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwl0eXBlIAkJCSgNCisJCQkJcHJpbnQNCisJCQkJfCBhdWRpbw0KKwkJCQl8IHZpZGVvDQorCQkJCXwgd2ViDQorCQkJCXwgYXBwbGlhbmNlDQorCQkJCXwgb3RoZXINCisJCQkJKSAJCSNJTVBMSUVEDQorCWl0ZW0tbGVuZ3RoIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwl1bml0LW9mLW1lYXN1cmUgCSgNCisJCQkJd29yZA0KKwkJCQl8IGNoYXJhY3Rlcg0KKwkJCQl8IGJ5dGUNCisJCQkJfCBpbmNoDQorCQkJCXwgcGljYQ0KKwkJCQl8IGNtDQorCQkJCXwgaG91cg0KKwkJCQl8IG1pbnV0ZQ0KKwkJCQl8IHNlY29uZA0KKwkJCQl8IG90aGVyDQorCQkJCSkgCQkjSU1QTElFRA0KKwlkYXRlLnB1YmxpY2F0aW9uIAlDREFUQSAJCSNJTVBMSUVEDQorCW5hbWUgCQkJQ0RBVEEgCQkjSU1QTElFRA0KKwlpc3NuIAkJCUNEQVRBIAkJI0lNUExJRUQNCisJdm9sdW1lIAkJCUNEQVRBIAkJI0lNUExJRUQNCisJbnVtYmVyIAkJCUNEQVRBIAkJI0lNUExJRUQNCisJaXNzdWUgCQkJQ0RBVEEgCQkjSU1QTElFRA0KKwllZGl0aW9uLm5hbWUgCQlDREFUQSAJCSNJTVBMSUVEDQorCWVkaXRpb24uYXJlYSAJCUNEQVRBIAkJI0lNUExJRUQNCisJcG9zaXRpb24uc2VjdGlvbiAJQ0RBVEEgCQkjSU1QTElFRA0KKwlwb3NpdGlvbi5zZXF1ZW5jZSAJQ0RBVEEgCQkjSU1QTElFRA0KKwlleC1yZWYgCQkJQ0RBVEEgCQkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCByZXZpc2lvbi1oaXN0b3J5IEVNUFRZPg0KKzwhQVRUTElTVCByZXZpc2lvbi1oaXN0b3J5DQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJbmFtZSAJCUNEQVRBIAkJCSNJTVBMSUVEDQorCWZ1bmN0aW9uIAkoDQorCQkJd3JpdGVyLWF1dGhvcg0KKwkJCXwgZWRpdG9yDQorCQkJfCBwcm9kdWNlcg0KKwkJCXwgYXJjaGl2aXN0DQorCQkJfCB2aWRlb2dyYXBoZXINCisJCQl8IGdyYXBoaWMtYXJ0aXN0DQorCQkJfCBwaG90b2dyYXBoZXINCisJCQl8IHN0YXRpc3RpY2lhbg0KKwkJCXwgb3RoZXINCisJCQkpIAkJCSNJTVBMSUVEDQorCW5vcm0gCQlDREFUQSAJCQkjSU1QTElFRA0KKwljb21tZW50IAlDREFUQSAJCQkjSU1QTElFRA0KKwk+DQorCQ0KKw0KKzwhRUxFTUVOVCBib2R5IChib2R5LmhlYWQ/LCBib2R5LmNvbnRlbnQqLCBib2R5LmVuZD8pPg0KKzwhQVRUTElTVCBib2R5DQorCSVjb21tb24tYXR0cmlidXRlczsNCisJYmFja2dyb3VuZCAJQ0RBVEEgCQkjSU1QTElFRA0KKwk+DQorCQ0KKw0KKzwhRUxFTUVOVCBib2R5LmhlYWQgKA0KKwloZWRsaW5lPywNCisJbm90ZSosDQorCXJpZ2h0cz8sDQorCWJ5bGluZSosDQorCWRpc3RyaWJ1dG9yPywNCisJZGF0ZWxpbmUqLA0KKwlhYnN0cmFjdD8sDQorCXNlcmllcz8NCisJKT4NCis8IUFUVExJU1QgYm9keS5oZWFkDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJPg0KKwkNCis8IUVMRU1FTlQgaGVkbGluZSAoaGwxLCBobDIqKT4NCis8IUFUVExJU1QgaGVkbGluZQ0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCT4NCisJDQorCTwhRUxFTUVOVCBobDEgKCVlbnJpY2hlZC10ZXh0OykqPg0KKwk8IUFUVExJU1QgaGwxICVjb21tb24tYXR0cmlidXRlczs+DQorCQ0KKwk8IUVMRU1FTlQgaGwyICglZW5yaWNoZWQtdGV4dDspKj4NCisJPCFBVFRMSVNUIGhsMiAlY29tbW9uLWF0dHJpYnV0ZXM7Pg0KKwkNCis8IUVMRU1FTlQgbm90ZSAoYm9keS5jb250ZW50KSs+DQorPCFBVFRMSVNUIG5vdGUNCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwlub3RlY2xhc3MgCSgNCisJCQljcHlydA0KKwkJCXwgZW5kDQorCQkJfCBoZA0KKwkJCXwgZWRpdG9yc25vdGUNCisJCQl8IHRyYWRlbWsNCisJCQl8IHVuZGVmDQorCQkJKSAJCQkjSU1QTElFRA0KKwl0eXBlIAkJKHN0ZCB8IHBhIHwgbnBhKSAJInN0ZCINCisJc3JjIAkJQ0RBVEEgCQkJI0lNUExJRUQNCisJJXVybC5saW5rOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCByaWdodHMgKA0KKwkjUENEQVRBDQorCXwgcmlnaHRzLm93bmVyDQorCXwgcmlnaHRzLnN0YXJ0ZGF0ZQ0KKwl8IHJpZ2h0cy5lbmRkYXRlDQorCXwgcmlnaHRzLmFnZW50DQorCXwgcmlnaHRzLmdlb2dyYXBoeQ0KKwl8IHJpZ2h0cy50eXBlDQorCXwgcmlnaHRzLmxpbWl0YXRpb25zDQorCSkqPg0KKzwhQVRUTElTVCByaWdodHMNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKwk8IUVMRU1FTlQgcmlnaHRzLm93bmVyICgjUENEQVRBKT4NCisJPCFBVFRMSVNUIHJpZ2h0cy5vd25lcg0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJY29udGFjdCAJQ0RBVEEgCSNJTVBMSUVEDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIHJpZ2h0cy5zdGFydGRhdGUgKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1QgcmlnaHRzLnN0YXJ0ZGF0ZQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJbm9ybSAJCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCByaWdodHMuZW5kZGF0ZSAoI1BDREFUQSk+DQorCTwhQVRUTElTVCByaWdodHMuZW5kZGF0ZQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJbm9ybSAJCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCByaWdodHMuYWdlbnQgKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1QgcmlnaHRzLmFnZW50DQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQljb250YWN0IAlDREFUQSAJI0lNUExJRUQNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgcmlnaHRzLmdlb2dyYXBoeSAoI1BDREFUQSk+DQorCTwhQVRUTElTVCByaWdodHMuZ2VvZ3JhcGh5DQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQlsb2NhdGlvbi1jb2RlIAlDREFUQSAJI0lNUExJRUQNCisJCWNvZGUtc291cmNlIAlDREFUQSAJI0lNUExJRUQNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgcmlnaHRzLnR5cGUgKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1QgcmlnaHRzLnR5cGUNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgcmlnaHRzLmxpbWl0YXRpb25zICgjUENEQVRBKT4NCisJPCFBVFRMSVNUIHJpZ2h0cy5saW1pdGF0aW9ucw0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJPg0KKwkJDQorPCFFTEVNRU5UIGJ5bGluZSAoI1BDREFUQSB8IHBlcnNvbiB8IGJ5dHRsIHwgbG9jYXRpb24gfCB2aXJ0bG9jKSo+DQorPCFBVFRMSVNUIGJ5bGluZQ0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCT4NCisJDQorCTwhRUxFTUVOVCBieXR0bCAoI1BDREFUQSB8IG9yZyApKj4NCisJPCFBVFRMSVNUIGJ5dHRsDQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQk+DQorCQkNCis8IUVMRU1FTlQgZGlzdHJpYnV0b3IgKCNQQ0RBVEEgfCBvcmcpKj4NCis8IUFUVExJU1QgZGlzdHJpYnV0b3INCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCBkYXRlbGluZSAoI1BDREFUQSB8IGxvY2F0aW9uIHwgc3RvcnkuZGF0ZSkqPg0KKzwhQVRUTElTVCBkYXRlbGluZSAlY29tbW9uLWF0dHJpYnV0ZXM7Pg0KKwkNCisJPCFFTEVNRU5UIHN0b3J5LmRhdGUgKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1Qgc3RvcnkuZGF0ZQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJbm9ybSAJCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorPCFFTEVNRU5UIGFic3RyYWN0ICglYmxvY2suY29udGVudDspKz4NCis8IUFUVExJU1QgYWJzdHJhY3QNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKw0KKzwhRUxFTUVOVCBjb3B5cml0ZSAoI1BDREFUQSB8IGNvcHlyaXRlLnllYXIgfCBjb3B5cml0ZS5ob2xkZXIpKj4NCis8IUFUVExJU1QgY29weXJpdGUNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKwk8IUVMRU1FTlQgY29weXJpdGUueWVhciAoI1BDREFUQSk+DQorCTwhQVRUTElTVCBjb3B5cml0ZS55ZWFyDQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQk+DQorCQkNCisJPCFFTEVNRU5UIGNvcHlyaXRlLmhvbGRlciAoI1BDREFUQSk+DQorCTwhQVRUTElTVCBjb3B5cml0ZS5ob2xkZXINCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCT4NCisJCQ0KKw0KKzwhRUxFTUVOVCBib2R5LmNvbnRlbnQgKGJsb2NrIHwgJWJsb2NrLmNvbnRlbnQ7KSo+DQorPCFBVFRMSVNUIGJvZHkuY29udGVudA0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCT4NCisJDQorPCFFTEVNRU5UIGJsb2NrICgoJWJsb2NrLmhlYWQ7KT8sICglYmxvY2suY29udGVudDspKiwgKCVibG9jay5lbmQ7KT8pPg0KKzwhQVRUTElTVCBibG9jayAlY29tbW9uLWF0dHJpYnV0ZXM7Pg0KKwkNCis8IUVMRU1FTlQgcCAoJWVucmljaGVkLXRleHQ7KSo+DQorPCFBVFRMSVNUIHANCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwlsZWRlIAkJJWJvb2xlYW47IAkjSU1QTElFRA0KKwlzdW1tYXJ5IAklYm9vbGVhbjsgCSNJTVBMSUVEDQorCW9wdGlvbmFsLXRleHQgCSVib29sZWFuOyAJI0lNUExJRUQNCisJPg0KKwkNCisNCis8IUVMRU1FTlQgdGFibGUgKGNhcHRpb24/LCAoY29sKiB8IGNvbGdyb3VwKiksIHRoZWFkPywgdGZvb3Q/LCB0Ym9keSspPg0KKzwhQVRUTElTVCB0YWJsZQ0KKwklY29tbW9uLWF0dHJpYnV0ZXM7DQorCXRhYmxldHlwZSAJRU5USVRZIAkJI0lNUExJRUQNCisJYWxpZ24gCQkoDQorCQkJbGVmdA0KKwkJCXwgY2VudGVyDQorCQkJfCByaWdodA0KKwkJCSkgCQkjSU1QTElFRA0KKwl3aWR0aCAJCUNEQVRBIAkJI0lNUExJRUQNCisJY29scyAJCU5NVE9LRU4gCSNJTVBMSUVEDQorCWJvcmRlciAJCUNEQVRBIAkJI0lNUExJRUQNCisJZnJhbWUgCQkoDQorCQkJdm9pZA0KKwkJCXwgYWJvdmUNCisJCQl8IGJlbG93DQorCQkJfCBoc2lkZXMNCisJCQl8IGxocw0KKwkJCXwgcmhzDQorCQkJfCB2c2lkZXMNCisJCQl8IGJveA0KKwkJCXwgYm9yZGVyDQorCQkJKSAJCSNJTVBMSUVEDQorCXJ1bGVzIAkJKA0KKwkJCW5vbmUNCisJCQl8IGJhc2ljDQorCQkJfCByb3dzDQorCQkJfCBjb2xzDQorCQkJfCBhbGwNCisJCQkpIAkJI0lNUExJRUQNCisJY2VsbHNwYWNpbmcgCUNEQVRBIAkJI0lNUExJRUQNCisJY2VsbHBhZGRpbmcgCUNEQVRBIAkJI0lNUExJRUQNCisJdGFibGUuZm10IAlDREFUQSAJCSNJTVBMSUVEDQorCXRhYmxlLmRvbWFpbiAJQ0RBVEEgCQkjSU1QTElFRA0KKwl0YWJsZS5pbnN0IAlDREFUQSAJCSNJTVBMSUVEDQorCT4NCisJDQorPCFFTEVNRU5UIG1lZGlhIChtZWRpYS1tZXRhZGF0YSosIG1lZGlhLXJlZmVyZW5jZSwgbWVkaWEtb2JqZWN0PywgbWVkaWEtY2FwdGlvbiosIG1lZGlhLXByb2R1Y2VyPyk+DQorPCFBVFRMSVNUIG1lZGlhDQorCSVjb21tb24tYXR0cmlidXRlczsNCisJbWVkaWEtdHlwZSAJKA0KKwkJCXRleHQNCisJCQl8IGF1ZGlvDQorCQkJfCBpbWFnZQ0KKwkJCXwgdmlkZW8NCisJCQl8IGRhdGENCisJCQl8IGFwcGxpY2F0aW9uDQorCQkJfCBvdGhlcg0KKwkJCSkJCSNSRVFVSVJFRA0KKwk+DQorCQ0KKwk8IUVMRU1FTlQgbWVkaWEtcmVmZXJlbmNlICgjUENEQVRBKT4NCisJPCFBVFRMSVNUIG1lZGlhLXJlZmVyZW5jZQ0KKwkJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwkJZGF0YS1sb2NhdGlvbgkJQ0RBVEEJCSNSRVFVSVJFRA0KKwkJbmFtZQkJCUNEQVRBIAkJI0lNUExJRUQNCisJCXNvdXJjZSAJCQlDREFUQSAJCSNJTVBMSUVEDQorCQltaW1lLXR5cGUgCQlDREFUQSAJCSNSRVFVSVJFRA0KKwkJY29kaW5nIAkJCUNEQVRBIAkJI0lNUExJRUQNCisJCXRpbWUgCQkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJdGltZS11bml0LW9mLW1lYXN1cmUgCUNEQVRBIAkJI0lNUExJRUQNCisJCW91dGN1ZSAJCQlDREFUQSAJCSNJTVBMSUVEDQorCQlzb3VyY2UtY3JlZGl0IAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJY29weXJpZ2h0IAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJYWx0ZXJuYXRlLXRleHQgCQlDREFUQSAJCSNJTVBMSUVEDQorCQloZWlnaHQgCQkJTk1UT0tFTiAJI0lNUExJRUQNCisJCXdpZHRoIAkJCU5NVE9LRU4gCSNJTVBMSUVEDQorCQl1bml0cyAJCQkocGl4ZWxzKSAJInBpeGVscyINCisJCWltYWdlbWFwIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJbm9mbG93IAkJCShub2Zsb3cpIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBtZWRpYS1tZXRhZGF0YSBFTVBUWT4NCisJPCFBVFRMSVNUIG1lZGlhLW1ldGFkYXRhDQorCQklY29tbW9uLWF0dHJpYnV0ZXM7DQorCQluYW1lIAkJQ0RBVEEgCQkjUkVRVUlSRUQNCisJCXZhbHVlIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBtZWRpYS1vYmplY3QgKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1QgbWVkaWEtb2JqZWN0DQorCQklY29tbW9uLWF0dHJpYnV0ZXM7DQorCQllbmNvZGluZyAJQ0RBVEEgCSNSRVFVSVJFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBtZWRpYS1jYXB0aW9uICglZW5yaWNoZWQtdGV4dDsgfCAlYmxvY2suY29udGVudDspKj4NCisJPCFBVFRMSVNUIG1lZGlhLWNhcHRpb24NCisJCSVjb21tb24tYXR0cmlidXRlczsNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgbWVkaWEtcHJvZHVjZXIgKCVlbnJpY2hlZC10ZXh0OykqPg0KKwk8IUFUVExJU1QgbWVkaWEtcHJvZHVjZXINCisJCSVjb21tb24tYXR0cmlidXRlczsNCisJCT4NCisJCQ0KKzwhRUxFTUVOVCBvbCAobGkpKz4NCis8IUFUVExJU1Qgb2wNCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwljb250aW51ZSAJKGNvbnRpbnVlKSAJI0lNUExJRUQNCisJc2VxbnVtIAkJTk1UT0tFTiAJI0lNUExJRUQNCisJY29tcGFjdCAJKGNvbXBhY3QpIAkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCB1bCAobGkpKz4NCis8IUFUVExJU1QgdWwNCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwl3cmFwIAkJKHZlcnQgfCBob3JpeiB8IG5vbmUpIAkibm9uZSINCisJcGxhaW4gCQkocGxhaW4pIAkJI0lNUExJRUQNCisJZGluZ2JhdCAJRU5USVRZIAkJCSNJTVBMSUVEDQorCXNyYyAJCUNEQVRBIAkJCSNJTVBMSUVEDQorCSV1cmwubGluazsNCisJY29tcGFjdCAJKGNvbXBhY3QpIAkJI0lNUExJRUQNCisJPg0KKwkNCisJPCFFTEVNRU5UIGxpICglZW5yaWNoZWQtdGV4dDsgfCAlYmxvY2suY29udGVudDspKj4NCisJPCFBVFRMSVNUIGxpDQorCQklY29tbW9uLWF0dHJpYnV0ZXM7DQorCQlkaW5nYmF0IAlFTlRJVFkgCQkjSU1QTElFRA0KKwkJc3JjIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwkJJXVybC5saW5rOw0KKwkJc2tpcCAJCU5NVE9LRU4gCSIwIg0KKwkJPg0KKwkJDQorPCFFTEVNRU5UIGRsIChkdCB8IGRkKSs+DQorPCFBVFRMSVNUIGRsICVjb21tb24tYXR0cmlidXRlczs+DQorCQ0KKwk8IUVMRU1FTlQgZHQgKCVlbnJpY2hlZC10ZXh0OykqPg0KKwk8IUFUVExJU1QgZHQgJWNvbW1vbi1hdHRyaWJ1dGVzOz4NCisJCQ0KKwk8IUVMRU1FTlQgZGQgKGJsb2NrKSo+DQorCTwhQVRUTElTVCBkZCAlY29tbW9uLWF0dHJpYnV0ZXM7Pg0KKwkJDQorPCFFTEVNRU5UIGJxIChibG9jayssIGNyZWRpdD8pKj4NCis8IUFUVExJU1QgYnENCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwlub3dyYXAgCQkobm93cmFwKSAJI0lNUExJRUQNCisJcXVvdGUtc291cmNlIAlDREFUQSAJCSNJTVBMSUVEDQorCT4NCisJDQorCTwhRUxFTUVOVCBjcmVkaXQgKCVlbnJpY2hlZC10ZXh0OykqPg0KKwk8IUFUVExJU1QgY3JlZGl0ICVjb21tb24tYXR0cmlidXRlczs+DQorCQ0KKzwhRUxFTUVOVCBmbiAoYm9keS5jb250ZW50KSs+DQorPCFBVFRMSVNUIGZuICVjb21tb24tYXR0cmlidXRlczs+DQorCQ0KKw0KKzwhRUxFTUVOVCBwcmUgKCNQQ0RBVEEpPg0KKzwhQVRUTElTVCBwcmUNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCBociBFTVBUWT4NCis8IUFUVExJU1QgaHINCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwlzcmMgCQlDREFUQSAJI0lNUExJRUQNCisJPg0KKwkNCisNCis8IUVMRU1FTlQgZGF0YXNvdXJjZSAoI1BDREFUQSk+DQorPCFBVFRMSVNUIGRhdGFzb3VyY2UNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKw0KKw0KKzwhRUxFTUVOVCBjYXB0aW9uICglZW5yaWNoZWQtdGV4dDsgfCAlYmxvY2suY29udGVudDspKj4NCis8IUFUVExJU1QgY2FwdGlvbg0KKwklY29tbW9uLWF0dHJpYnV0ZXM7DQorCWFsaWduIAkJKA0KKwkJCXRvcA0KKwkJCXwgYm90dG9tDQorCQkJfCBsZWZ0DQorCQkJfCByaWdodA0KKwkJCSkgCQkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCBjb2wgRU1QVFk+DQorPCFBVFRMSVNUIGNvbA0KKwklY29tbW9uLWF0dHJpYnV0ZXM7DQorCXNwYW4gCQlOTVRPS0VOIAkiMSINCisJd2lkdGggCQlDREFUQSAJCSNJTVBMSUVEDQorCSVjZWxsLmFsaWduOw0KKwklY2VsbC52YWxpZ247DQorCT4NCisJDQorPCFFTEVNRU5UIGNvbGdyb3VwIChjb2wrKT4NCis8IUFUVExJU1QgY29sZ3JvdXANCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwklY2VsbC5hbGlnbjsNCisJJWNlbGwudmFsaWduOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCB0aGVhZCAodHIrKT4NCis8IUFUVExJU1QgdGhlYWQNCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwklY2VsbC5hbGlnbjsNCisJJWNlbGwudmFsaWduOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCB0Ym9keSAodHIrKT4NCis8IUFUVExJU1QgdGJvZHkNCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwklY2VsbC5hbGlnbjsNCisJJWNlbGwudmFsaWduOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCB0Zm9vdCAodHIrKT4NCis8IUFUVExJU1QgdGZvb3QNCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwklY2VsbC5hbGlnbjsNCisJJWNlbGwudmFsaWduOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCB0ciAodGggfCB0ZCkrPg0KKzwhQVRUTElTVCB0cg0KKwklY29tbW9uLWF0dHJpYnV0ZXM7DQorCSVjZWxsLmFsaWduOw0KKwklY2VsbC52YWxpZ247DQorCT4NCisJDQorPCFFTEVNRU5UIHRoICglZW5yaWNoZWQtdGV4dDsgfCAlYmxvY2suY29udGVudDspKj4NCis8IUFUVExJU1QgdGgNCisJJWNvbW1vbi1hdHRyaWJ1dGVzOw0KKwlheGlzIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwlheGVzIAkJQ0RBVEEgCQkjSU1QTElFRA0KKwlub3dyYXAgCQkobm93cmFwKSAJI0lNUExJRUQNCisJcm93c3BhbiAJTk1UT0tFTiAJIjEiDQorCWNvbHNwYW4gCU5NVE9LRU4gCSIxIg0KKwklY2VsbC5hbGlnbjsNCisJJWNlbGwudmFsaWduOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCB0ZCAoJWVucmljaGVkLXRleHQ7IHwgJWJsb2NrLmNvbnRlbnQ7KSo+DQorPCFBVFRMSVNUIHRkDQorCSVjb21tb24tYXR0cmlidXRlczsNCisJYXhpcyAJCUNEQVRBIAkJI0lNUExJRUQNCisJYXhlcyAJCUNEQVRBIAkJI0lNUExJRUQNCisJbm93cmFwIAkJKG5vd3JhcCkgCSNJTVBMSUVEDQorCXJvd3NwYW4gCU5NVE9LRU4gCSIxIg0KKwljb2xzcGFuIAlOTVRPS0VOIAkiMSINCisJJWNlbGwuYWxpZ247DQorCSVjZWxsLnZhbGlnbjsNCisJPg0KKwkNCisNCis8IUVMRU1FTlQgY2hyb24gKCNQQ0RBVEEpPg0KKzwhQVRUTElTVCBjaHJvbg0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCW5vcm0gCQlDREFUQSAJI0lNUExJRUQNCisJPg0KKwkNCisNCis8IUVMRU1FTlQgZXZlbnQgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPg0KKzwhQVRUTElTVCBldmVudA0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCXN0YXJ0LWRhdGUgCUNEQVRBIAkJI0lNUExJRUQNCisJZW5kLWRhdGUgCUNEQVRBIAkJI0lNUExJRUQNCisJaWRzcmMgCQlDREFUQSAJCSNSRVFVSVJFRA0KKwl2YWx1ZSAJCUNEQVRBIAkJI1JFUVVJUkVEDQorCT4NCisJDQorPCFFTEVNRU5UIGZ1bmN0aW9uICgjUENEQVRBIHwgYWx0LWNvZGUpKj4NCis8IUFUVExJU1QgZnVuY3Rpb24NCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwlpZHNyYyAJCUNEQVRBIAkJI1JFUVVJUkVEDQorCXZhbHVlIAkJQ0RBVEEgCQkjUkVRVUlSRUQNCisJPg0KKwkNCis8IUVMRU1FTlQgbG9jYXRpb24gKCNQQ0RBVEEgfCBzdWJsb2NhdGlvbiB8IGNpdHkgfCBzdGF0ZSB8IHJlZ2lvbiB8IGNvdW50cnkgfCBhbHQtY29kZSkqPg0KKzwhQVRUTElTVCBsb2NhdGlvbg0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCWxvY2F0aW9uLWNvZGUgCUNEQVRBIAkjSU1QTElFRA0KKwljb2RlLXNvdXJjZSAJQ0RBVEEgCSNJTVBMSUVEDQorCT4NCisJDQorCTwhRUxFTUVOVCBzdWJsb2NhdGlvbiAoI1BDREFUQSB8IGFsdC1jb2RlKSo+DQorCTwhQVRUTElTVCBzdWJsb2NhdGlvbg0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJbG9jYXRpb24tY29kZSAJQ0RBVEEgCSNJTVBMSUVEDQorCQljb2RlLXNvdXJjZSAJQ0RBVEEgCSNJTVBMSUVEDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIGNpdHkgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPg0KKwk8IUFUVExJU1QgY2l0eQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJY2l0eS1jb2RlIAlDREFUQSAJI0lNUExJRUQNCisJCWNvZGUtc291cmNlIAlDREFUQSAJI0lNUExJRUQNCisJCT4NCisJCQ0KKwk8IUVMRU1FTlQgc3RhdGUgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPg0KKwk8IUFUVExJU1Qgc3RhdGUNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCXN0YXRlLWNvZGUgCUNEQVRBIAkjSU1QTElFRA0KKwkJY29kZS1zb3VyY2UgCUNEQVRBIAkjSU1QTElFRA0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCByZWdpb24gKCNQQ0RBVEEgfCBhbHQtY29kZSkqPg0KKwk8IUFUVExJU1QgcmVnaW9uDQorCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQlyZWdpb24tY29kZSAJQ0RBVEEgCSNJTVBMSUVEDQorCQljb2RlLXNvdXJjZSAJQ0RBVEEgCSNJTVBMSUVEDQorCQk+DQorCQkNCisJPCFFTEVNRU5UIGNvdW50cnkgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPg0KKwk8IUFUVExJU1QgY291bnRyeQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJaXNvLWNjIAkJQ0RBVEEgCSNJTVBMSUVEDQorCQk+DQorCQkNCis8IUVMRU1FTlQgbW9uZXkgKCNQQ0RBVEEpPg0KKzwhQVRUTElTVCBtb25leQ0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCXVuaXQgCQlDREFUQSAJI0lNUExJRUQNCisJZGF0ZSAJCUNEQVRBIAkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCBudW0gKCNQQ0RBVEEgfCBmcmFjIHwgc3ViIHwgc3VwKSo+DQorPCFBVFRMSVNUIG51bQ0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCXVuaXRzIAkJQ0RBVEEgCSNJTVBMSUVEDQorCWRlY2ltYWwtY2ggCUNEQVRBIAkjSU1QTElFRA0KKwl0aG91c2FuZHMtY2ggCUNEQVRBIAkjSU1QTElFRA0KKwk+DQorCQ0KKwk8IUVMRU1FTlQgZnJhYyAobnVtZXIsIGZyYWMtc2VwPywgZGVub20pPg0KKwk8IUFUVExJU1QgZnJhYw0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJPg0KKwkJDQorCQk8IUVMRU1FTlQgbnVtZXIgKCNQQ0RBVEEpPg0KKwkJPCFBVFRMSVNUIG51bWVyDQorCQkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJCT4NCisJCQkNCisJCTwhRUxFTUVOVCBmcmFjLXNlcCAoI1BDREFUQSk+DQorCQk8IUFUVExJU1QgZnJhYy1zZXANCisJCQklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCQkJPg0KKwkJCQ0KKwkJPCFFTEVNRU5UIGRlbm9tICgjUENEQVRBKT4NCisJCTwhQVRUTElTVCBkZW5vbQ0KKwkJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCQk+DQorCQkJDQorCTwhRUxFTUVOVCBzdWIgKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1Qgc3ViICVjb21tb24tYXR0cmlidXRlczs+DQorCQkNCisJPCFFTEVNRU5UIHN1cCAoI1BDREFUQSk+DQorCTwhQVRUTElTVCBzdXAgJWNvbW1vbi1hdHRyaWJ1dGVzOz4NCisJCQ0KKzwhRUxFTUVOVCBvYmplY3QudGl0bGUgKCNQQ0RBVEEgfCBhbHQtY29kZSkqPg0KKzwhQVRUTElTVCBvYmplY3QudGl0bGUgDQorCSVjb21tb24tYXR0cmlidXRlczsNCisJaWRzcmMgCUNEQVRBIAkjUkVRVUlSRUQNCisJdmFsdWUgCUNEQVRBIAkjUkVRVUlSRUQNCisJPg0KKwkNCis8IUVMRU1FTlQgb3JnICgjUENEQVRBIHwgYWx0LWNvZGUpKj4NCis8IUFUVExJU1Qgb3JnDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJaWRzcmMgCUNEQVRBIAkjUkVRVUlSRUQNCisJdmFsdWUgCUNEQVRBIAkjUkVRVUlSRUQNCisJPg0KKwkNCisJPCFFTEVNRU5UIGFsdC1jb2RlIEVNUFRZPg0KKwk8IUFUVExJU1QgYWx0LWNvZGUNCisJCSVnbG9iYWwtYXR0cmlidXRlczsNCisJCWlkc3JjIAlDREFUQSAJI1JFUVVJUkVEDQorCQl2YWx1ZSAJQ0RBVEEgCSNSRVFVSVJFRA0KKwkJPg0KKwkJDQorPCFFTEVNRU5UIHBlcnNvbiAoI1BDREFUQSB8IG5hbWUuZ2l2ZW4gfCBuYW1lLmZhbWlseSB8IGZ1bmN0aW9uIHwgYWx0LWNvZGUpKj4NCis8IUFUVExJU1QgcGVyc29uDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJaWRzcmMgCUNEQVRBIAkjUkVRVUlSRUQNCisJdmFsdWUgCUNEQVRBIAkjUkVRVUlSRUQNCisJPg0KKwkNCisJPCFFTEVNRU5UIG5hbWUuZ2l2ZW4gKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1QgbmFtZS5naXZlbg0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJPg0KKwkJDQorCTwhRUxFTUVOVCBuYW1lLmZhbWlseSAoI1BDREFUQSk+DQorCTwhQVRUTElTVCBuYW1lLmZhbWlseQ0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJPg0KKwkJDQorPCFFTEVNRU5UIHBvc3RhZGRyIChhZGRyZXNzZWUsIGRlbGl2ZXJ5LnBvaW50PywgKHBvc3Rjb2RlIHwgZGVsaXZlcnkub2ZmaWNlIHwgcmVnaW9uIHwgY291bnRyeSkqKT4NCis8IUFUVExJU1QgcG9zdGFkZHINCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCB2aXJ0bG9jICgjUENEQVRBIHwgYWx0LWNvZGUpKj4NCis8IUFUVExJU1QgdmlydGxvYw0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCWlkc3JjIAkJQ0RBVEEgCQkjUkVRVUlSRUQNCisJdmFsdWUgCQlDREFUQSAJCSNSRVFVSVJFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCBhICglZW5yaWNoZWQtdGV4dDspKj4NCis8IUFUVExJU1QgYQ0KKwklY29tbW9uLWF0dHJpYnV0ZXM7DQorCWhyZWYgCQlDREFUQSAJCSNJTVBMSUVEDQorCW5hbWUgCQlDREFUQSAJCSNJTVBMSUVEDQorCSV1cmwubGluazsNCisJcmVsIAkJTk1UT0tFTiAJI0lNUExJRUQNCisJcmV2IAkJTk1UT0tFTiAJI0lNUExJRUQNCisJdGl0bGUgCQlDREFUQSAJCSNJTVBMSUVEDQorCW1ldGhvZHMgCU5NVE9LRU5TIAkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCBiciBFTVBUWT4NCis8IUFUVExJU1QgYnINCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCBlbSAoJWVucmljaGVkLXRleHQ7KSo+DQorPCFBVFRMSVNUIGVtICVjb21tb24tYXR0cmlidXRlczs+DQorCQ0KKzwhRUxFTUVOVCBsYW5nICglZW5yaWNoZWQtdGV4dDspKj4NCis8IUFUVExJU1QgbGFuZyAlY29tbW9uLWF0dHJpYnV0ZXM7Pg0KKwkNCis8IUVMRU1FTlQgcHJvbm91bmNlICglZW5yaWNoZWQtdGV4dDspKj4NCis8IUFUVExJU1QgcHJvbm91bmNlDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJZ3VpZGUgCQlDREFUQSAJI0lNUExJRUQNCisJcGhvbmV0aWMgCUNEQVRBIAkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCBxICglZW5yaWNoZWQtdGV4dDspKj4NCis8IUFUVExJU1QgcQ0KKwklY29tbW9uLWF0dHJpYnV0ZXM7DQorCXF1b3RlLXNvdXJjZSAJQ0RBVEEgCSNJTVBMSUVEDQorCT4NCisJDQorDQorPCFFTEVNRU5UIGFkZHJlc3NlZSAocGVyc29uLCBmdW5jdGlvbj8sIGNhcmUub2Y/KT4NCis8IUFUVExJU1QgYWRkcmVzc2VlDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJPg0KKwkNCisJPCFFTEVNRU5UIGNhcmUub2YgKCNQQ0RBVEEpPg0KKwk8IUFUVExJU1QgY2FyZS5vZg0KKwkJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwkJPg0KKwkJDQorPCFFTEVNRU5UIGRlbGl2ZXJ5LnBvaW50ICgjUENEQVRBIHwgYnIpKj4NCis8IUFUVExJU1QgZGVsaXZlcnkucG9pbnQNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwlwb2ludC1jb2RlIAlDREFUQSAJI0lNUExJRUQNCisJY29kZS1zb3VyY2UgCUNEQVRBIAkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCBwb3N0Y29kZSAoI1BDREFUQSk+DQorPCFBVFRMSVNUIHBvc3Rjb2RlDQorCSVnbG9iYWwtYXR0cmlidXRlczsNCisJY29kZS1zb3VyY2UgCUNEQVRBIAkjSU1QTElFRA0KKwk+DQorCQ0KKzwhRUxFTUVOVCBkZWxpdmVyeS5vZmZpY2UgKCNQQ0RBVEEgfCBicikqPg0KKzwhQVRUTElTVCBkZWxpdmVyeS5vZmZpY2UNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwlvZmZpY2UtY29kZSAJQ0RBVEEgCSNJTVBMSUVEDQorCWNvZGUtc291cmNlIAlDREFUQSAJI0lNUExJRUQNCisJPg0KKwkNCisNCisNCisNCis8IUVMRU1FTlQgYm9keS5lbmQgKHRhZ2xpbmU/LCBiaWJsaW9ncmFwaHk/KT4NCis8IUFUVExJU1QgYm9keS5lbmQNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KKzwhRUxFTUVOVCB0YWdsaW5lICglZW5yaWNoZWQtdGV4dDspKj4NCis8IUFUVExJU1QgdGFnbGluZQ0KKwklZ2xvYmFsLWF0dHJpYnV0ZXM7DQorCXR5cGUgCQkoc3RkIHwgcGEgfCBucGEpIAkic3RkIg0KKwk+DQorCQ0KKzwhRUxFTUVOVCBiaWJsaW9ncmFwaHkgKCNQQ0RBVEEpPg0KKzwhQVRUTElTVCBiaWJsaW9ncmFwaHkNCisJJWdsb2JhbC1hdHRyaWJ1dGVzOw0KKwk+DQorCQ0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL25vdGVzLmR0ZCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL25vdGVzLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDBhOGFjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvbm90ZXMuZHRkCkBAIC0wLDAgKzEsMTkgQEAKKzwhLS0KK1RoaXMgZ2V0cyBwYXJzZWQgd2l0aG91dCBjb21wbGFpbnQ6Cis8IUVMRU1FTlQgcGZ4Om5vdGVzICAoICNQQ0RBVEEgfCBub3RlIHwgcGZ4Om5vdGUgKSogPgorLS0+CisKKzwhLS0KK1RoaXMgdHJpZ2dlcnMgYSBkaWFnbm9zdGljOgorbm90ZXMuZHRkOjEzOiB2YWxpZGl0eSBlcnJvciA6IERlZmluaXRpb24gb2Ygbm90ZXMgaGFzIGR1cGxpY2F0ZSAKK3JlZmVyZW5jZXMgb2Ygbm90ZQorPCFFTEVNRU5UIHBmeDpub3RlcyAgKCAjUENEQVRBIHwgcGZ4Om5vdGUgfCBub3RlICkqID4KKy0tPgorCis8IUVMRU1FTlQgcGZ4Om5vdGVzICAoICNQQ0RBVEEgfCBwZng6bm90ZSB8IG5vdGUgKSogPgorCis8IUFUVExJU1Qgbm90ZXMKKwl4bWxuczpwZnggQ0RBVEEgI0ZJWEVEICdodHRwOi8vbmFtZXNwYWNlL3VyaS9oZXJlJworPgorPCFFTEVNRU5UIG5vdGUgRU1QVFkgPgorPCFFTEVNRU5UIHBmeDpub3RlIEVNUFRZID4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL29iamVkbmF2a2EuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvb2JqZWRuYXZrYS5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM2M2RmMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL29iamVkbmF2a2EuZHRkCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCFFTEVNRU5UIG9iamVkbmF2a2EgKEFkRG9ydcSNZW5pLCBBZMOaxI10b3ZhY8OtLCBacMWvc29iRG9wcmF2eSwgWnDFr3NvYlBsYXRieSwgRGF0dW1QxZlpamV0w60sIERhdHVtRG9ydcSNZW7DrSwgT2JzYWhPYmplZG7DoXZreSwgS29tZW50w6HFmT8pPg0KKzwhRUxFTUVOVCAgQWREb3J1xI1lbmkgKEptw6lubywgIFVsaWNlLCBNxJtzdG8sIFBTxIwpPg0KKzwhRUxFTUVOVCAgQWTDmsSNdG92YWPDrSAoSm3DqW5vLCAgVWxpY2UsIE3Em3N0bywgUFPEjCk+DQorPCFFTEVNRU5UICBKbcOpbm8gICAgICgjUENEQVRBKT4NCis8IUVMRU1FTlQgIFVsaWNlICAgICAgICAoI1BDREFUQSk+DQorPCFFTEVNRU5UICBNxJtzdG8gICAgICAoI1BDREFUQSk+DQorPCFFTEVNRU5UICBQU8SMICAgICAgICAoI1BDREFUQSk+DQorPCFFTEVNRU5UIFpwxa9zb2JEb3ByYXZ5ICgjUENEQVRBKSA+DQorPCFFTEVNRU5UIFpwxa9zb2JQbGF0YnkgKCNQQ0RBVEEpID4NCis8IUVMRU1FTlQgIERhdHVtUMWZaWpldMOtICgjUENEQVRBKT4NCis8IUVMRU1FTlQgIERhdHVtRG9ydcSNZW7DrSAoI1BDREFUQSk+DQorPCFFTEVNRU5UIE9ic2FoT2JqZWRuw6F2a3kgKFpib8W+w60rKSA+DQorPCFFTEVNRU5UIFpib8W+w60gKEvDs2QsIE7DoXpldiwgUG/EjWV0LCBDZW5hLCBQb3Bpcz8pID4NCis8IUVMRU1FTlQgIEvDs2QgKCNQQ0RBVEEpPg0KKzwhRUxFTUVOVCBOw6F6ZXYgKCNQQ0RBVEEpID4NCis8IUVMRU1FTlQgIFBvxI1ldCAoI1BDREFUQSk+DQorPCFFTEVNRU5UIENlbmEgKCNQQ0RBVEEpID4NCis8IUVMRU1FTlQgUG9waXMgKCNQQ0RBVEEpID4NCis8IUVMRU1FTlQgS29tZW50w6HFmSAoxZjDoWRrYSopID4NCis8IUVMRU1FTlQgIMWYw6Fka2EgKCNQQ0RBVEEpPg0KKzwhQVRUTElTVCBQb8SNZXQNCisgICAgICAgICAgICAgICAgICAgIGplZG5vdGthICAgICAgKGtzIHwga2cgfCBtMiB8IG0pICAgICAgI0lNUExJRUQ+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvc3BlYy5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy9zcGVjLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZmRmYjg2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvc3BlYy5kdGQKQEAgLTAsMCArMSw5NzIgQEAKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBYTUwgc3BlY2lmaWNhdGlvbiBEVEQgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorVFlQSUNBTCBJTlZPQ0FUSU9OOgorIyAgPCFET0NUWVBFIHNwZWMgUFVCTElDCisjICAgICAgICItLy9XM0MvL0RURCBTcGVjaWZpY2F0aW9uOjoxOTk4MDMyMy8vRU4iCisjICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9YTUwvR3JvdXAvRFREL3htbHNwZWMuZHRkIj4KKworUFVSUE9TRToKKyAgVGhpcyBEVEQgd2FzIGRldmVsb3BlZCBmb3IgdXNlIHdpdGggdGhlIFhNTCBmYW1pbHkgb2YgVzNDCisgIHNwZWNpZmljYXRpb25zLiAgSXQgaXMgYW4gWE1MLWNvbXBsaWFudCBEVEQgYmFzZWQgaW4gcGFydCBvbgorICB0aGUgVEVJIExpdGUgYW5kIFN3ZWIgRFREcy4KKworREVQRU5ERU5DSUVTOgorICBOb25lLgorCitDSEFOR0UgSElTVE9SWToKKyAgVGhlIGxpc3Qgb2YgY2hhbmdlcyBpcyBhdCB0aGUgZW5kIG9mIHRoZSBEVEQuCisKKyAgRm9yIGFsbCBkZXRhaWxzLCBzZWUgdGhlIGRlc2lnbiByZXBvcnQgYXQ6CisKKyAgICA8aHR0cDovL3d3dy53My5vcmcvWE1ML0dyb3VwL0RURC94bWxzcGVjLXJlcG9ydC5odG0+CisKKyAgVGhlICJ0eXBpY2FsIGludm9jYXRpb24iIEZQSSBhbHdheXMgZ2V0cyB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlCisgIGRhdGUgb2YgdGhlIG1vc3QgcmVjZW50IGNoYW5nZXMuCisKKyAgU2VhcmNoIHRoaXMgZmlsZSBmb3IgIiMiIGluIHRoZSBmaXJzdCBjb2x1bW4gdG8gc2VlIGNoYW5nZSBoaXN0b3J5CisgIGNvbW1lbnRzLgorCitNQUlOVEFJTkVSOgorICBFdmUgTWFsZXIKKyAgQXJib3JUZXh0IEluYy4KKyAgZWxtQGFyYm9ydGV4dC5jb20KKyAgdm9pY2U6ICsxIDc4MSAyNzAgNTc1MAorICBmYXg6ICAgKzEgNzgxIDI3MyAzNzYwCistLT4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBjaGFyYWN0ZXJzIGFuZCBzeW1ib2xzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBBZGRlZCAmbGRxdW87IGFuZCAmcmRxdW87LgorIyAgICAgICAgICAgICAgICAgICBVc2VkIDg4Nzk6MTk4Ni1jb21wYXRpYmxlIGRlY2ltYWwgY2hhcmFjdGVyCisjICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMuCisjICAgICAgICAgICAgICAgICAgIE1lcmdlZCBjaGFyZW50Lm1vZCBmaWxlIGJhY2sgaW50byBtYWluIGZpbGUuCistLT4KKworPCFFTlRJVFkgbHQgICAgICImIzM4OyM2MDsiPgorPCFFTlRJVFkgZ3QgICAgICImIzYyOyI+Cis8IUVOVElUWSBhbXAgICAgIiYjMzg7IzM4OyI+Cis8IUVOVElUWSBhcG9zICAgIiYjMzk7Ij4KKzwhRU5USVRZIHF1b3QgICAiJiMzNDsiPgorPCFFTlRJVFkgbWRhc2ggICItLSI+Cis8IUVOVElUWSBuYnNwICAgIiYjMTYwOyI+Cis8IUVOVElUWSBsZHF1byAgIiN4MjAxQzsiPgorPCFFTlRJVFkgcmRxdW8gICIjeDIwMUQ7Ij4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBjbGFzc2VzIG9mIHN0YW5kYWxvbmUgZWxlbWVudHMgLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTctMTAtMTY6IG1hbGVyOiBBZGRlZCB0YWJsZSB0byAlaWxsdXMuY2xhc3M7LgorIzE5OTctMTEtMjg6IG1hbGVyOiBBZGRlZCBodGFibGUgdG8gJWlsbHVzLmNsYXNzOy4KKyMxOTk3LTEyLTI5OiBtYWxlcjogSUdOT1JFZCB0YWJsZS4KKyMxOTk4LTAzLTEwOiBtYWxlcjogUmVtb3ZlZCBTR01MIE9wZW4tc3BlY2lmaWMgJWlsbHVzLmNsYXNzOy4KKyMgICAgICAgICAgICAgICAgICAgQWRkZWQgImxvY2FsIiBlbnRpdGllcyBmb3IgY3VzdG9taXphdGlvbi4KKy0tPgorCis8IUVOVElUWSAlIGxvY2FsLnAuY2xhc3MgICAgICAgICIiPgorPCFFTlRJVFkgJSBwLmNsYXNzICAgICAgICAgICAgICAicAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwucC5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLnN0YXR1c3AuY2xhc3MgICIiPgorPCFFTlRJVFkgJSBzdGF0dXNwLmNsYXNzICAgICAgICAic3RhdHVzcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwuc3RhdHVzcC5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLmxpc3QuY2xhc3MgICAgICIiPgorPCFFTlRJVFkgJSBsaXN0LmNsYXNzICAgICAgICAgICAidWxpc3R8b2xpc3R8c2xpc3R8Z2xpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLmxpc3QuY2xhc3M7Ij4KKworPCFFTlRJVFkgJSBsb2NhbC5zcGVjbGlzdC5jbGFzcyAiIj4KKzwhRU5USVRZICUgc3BlY2xpc3QuY2xhc3MgICAgICAgIm9yZ2xpc3R8Ymxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLnNwZWNsaXN0LmNsYXNzOyI+CisKKzwhRU5USVRZICUgbG9jYWwubm90ZS5jbGFzcyAgICAgIiI+Cis8IUVOVElUWSAlIG5vdGUuY2xhc3MgICAgICAgICAgICJub3RlfHdmY25vdGV8dmNub3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5ub3RlLmNsYXNzOyI+CisKKzwhRU5USVRZICUgbG9jYWwuaWxsdXMuY2xhc3MgICAgIiI+Cis8IUVOVElUWSAlIGlsbHVzLmNsYXNzICAgICAgICAgICJlZ3xncmFwaGljfHNjcmFwfGh0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwuaWxsdXMuY2xhc3M7Ij4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBjbGFzc2VzIG9mIHBocmFzZS1sZXZlbCBlbGVtZW50cyAuLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTctMTItMjk6IG1hbGVyOiBBZGRlZCB4c3BlY3JlZiB0byAlcmVmLmNsYXNzOy4KKyMxOTk4LTAzLTEwOiBtYWxlcjogQWRkZWQgJWVkbm90ZS5jbGFzczsuCisjICAgICAgICAgICAgICAgICAgIEFkZGVkICJsb2NhbCIgZW50aXRpZXMgZm9yIGN1c3RvbWl6YXRpb24uCistLT4KKworPCFFTlRJVFkgJSBsb2NhbC5hbm5vdC5jbGFzcyAgICAiIj4KKzwhRU5USVRZICUgYW5ub3QuY2xhc3MgICAgICAgICAgImZvb3Rub3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5hbm5vdC5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLnRlcm1kZWYuY2xhc3MgICAgIiI+Cis8IUVOVElUWSAlIHRlcm1kZWYuY2xhc3MgICAgICAgICJ0ZXJtZGVmfHRlcm0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLnRlcm1kZWYuY2xhc3M7Ij4KKworPCFFTlRJVFkgJSBsb2NhbC5lbXBoLmNsYXNzICAgICIiPgorPCFFTlRJVFkgJSBlbXBoLmNsYXNzICAgICAgICAgICAiZW1waHxxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwuZW1waC5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLnJlZi5jbGFzcyAgICAiIj4KKzwhRU5USVRZICUgcmVmLmNsYXNzICAgICAgICAgICAgImJpYnJlZnxzcGVjcmVmfHRlcm1yZWZ8dGl0bGVyZWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHhzcGVjcmVmfHh0ZXJtcmVmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5yZWYuY2xhc3M7Ij4KKworPCFFTlRJVFkgJSBsb2NhbC5sb2MuY2xhc3MgICAgIiI+Cis8IUVOVElUWSAlIGxvYy5jbGFzcyAgICAgICAgICAgICJsb2MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLmxvYy5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLnRlY2guY2xhc3MgICAgIiI+Cis8IUVOVElUWSAlIHRlY2guY2xhc3MgICAgICAgICAgICJrd3xudHx4bnR8Y29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwudGVjaC5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLmVkbm90ZS5jbGFzcyAgICAiIj4KKzwhRU5USVRZICUgZWRub3RlLmNsYXNzICAgICAgICAgImVkbm90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwuZWRub3RlLmNsYXNzOyI+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBFbnRpdGllcyBmb3IgbWl4dHVyZXMgb2Ygc3RhbmRhbG9uZSBlbGVtZW50cyAuLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQ3JlYXRlZCAlcC5taXg7IHRvIGVsaW1pbmF0ZSBwIGZyb20gc2VsZi4KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgJXNwZWNsaXN0LmNsYXNzOyB0byAlb2JqLm1peDsgYW5kICVwLm1peDsuCisjMTk5Ny0wOS0zMDogbWFsZXI6IEFkZGVkICVub3RlLmNsYXNzOyB0byAlb2JqLm1peDsgYW5kICVwLm1peDsuCisjMTk5Ny0xMC0xNjogbWFsZXI6IENyZWF0ZWQgJWVudHJ5Lm1peDsuICBOb3RlIHRoYXQgc29tZSBlbGVtZW50cworIyAgICAgICAgICAgICAgICAgICBsZWZ0IG91dCBoZXJlIGFyZSBzdGlsbCBhbGxvd2VkIGluIHRlcm1kZWYsCisjICAgICAgICAgICAgICAgICAgIHdoaWNoIGVudHJ5IGNhbiBjb250YWluIHRocm91Z2ggJXAucGNkLm1peDsuCisjMTk5Ny0xMS0yODogbWFsZXI6IEFkZGVkICVwLmNsYXNzOyB0byAlc3RhdHVzb2JqLm1peDsuCisjMTk5OC0wMy0xMDogbWFsZXI6IEFkZGVkICVlZG5vdGUuY2xhc3M7IHRvIGFsbCBtaXh0dXJlcywgZXhjZXB0CisjICAgICAgICAgICAgICAgICAgICVwLm1peDsgYW5kICVzdGF0dXNvYmoubWl4OywgYmVjYXVzZSBwYXJhZ3JhcGhzCisjICAgICAgICAgICAgICAgICAgIGFuZCBzdGF0dXMgcGFyYWdyYXBocyB3aWxsIGNvbnRhaW4gZWRub3RlCisjICAgICAgICAgICAgICAgICAgIHRocm91Z2ggJXAucGNkLm1peDsuCisjMTk5OC0wMy0xMjM6IG1hbGVyOiBBZGRlZCAldGVybWRlZi5taXg7IChicm9rZW4gb3V0IGZyb20KKyMgICAgICAgICAgICAgICAgICAgICV0ZXJtZGVmLnBjZC5taXg7KS4KKy0tPgorCis8IUVOVElUWSAlIGRpdi5taXgKKyAgICAgICAgIiVwLmNsYXNzO3wlbGlzdC5jbGFzczt8JXNwZWNsaXN0LmNsYXNzO3wlbm90ZS5jbGFzczsKKyAgICAgICAgfCVpbGx1cy5jbGFzczt8JWVkbm90ZS5jbGFzczsiPgorPCFFTlRJVFkgJSBvYmoubWl4CisgICAgICAgICIlcC5jbGFzczt8JWxpc3QuY2xhc3M7fCVzcGVjbGlzdC5jbGFzczt8JW5vdGUuY2xhc3M7CisgICAgICAgIHwlaWxsdXMuY2xhc3M7fCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgcC5taXgKKyAgICAgICAgIiVsaXN0LmNsYXNzO3wlc3BlY2xpc3QuY2xhc3M7fCVub3RlLmNsYXNzO3wlaWxsdXMuY2xhc3M7Ij4KKzwhRU5USVRZICUgZW50cnkubWl4CisgICAgICAgICIlbGlzdC5jbGFzczt8bm90ZXxlZ3xncmFwaGljfCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgc3RhdHVzb2JqLm1peAorICAgICAgICAiJXAuY2xhc3M7fCVzdGF0dXNwLmNsYXNzO3wlbGlzdC5jbGFzczsiPgorPCFFTlRJVFkgJSBoZHIubWl4CisgICAgICAgICIlcC5jbGFzczt8JWxpc3QuY2xhc3M7fCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgdGVybWRlZi5taXgKKyAgICAgICAgIiVub3RlLmNsYXNzO3wlaWxsdXMuY2xhc3M7Ij4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBtaXh0dXJlcyBvZiAjUENEQVRBIGFuZCBwaHJhc2UtbGV2ZWwgZWxlbWVudHMgLi4uLiAtLT4KKworPCEtLSAgICBOb3RlIHRoYXQgJXRlcm1kZWYucGNkLm1peCBjb250YWlucyAlbm90ZS5jbGFzczsKKyAgICAgICAgYW5kICVpbGx1cy5jbGFzczssIGNvbnNpZGVyZWQgc3RhbmRhbG9uZSBlbGVtZW50cy4gLS0+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgc2NyYXAgYW5kICVub3RlLmNsYXNzOyB0byAldGVybWRlZi5wY2QubWl4Oy4KKyMxOTk3LTExLTI4OiBtYWxlcjogQWRkZWQgJWxvYy5jbGFzczsgdG8gJXAucGNkLm1peDsuCisjMTk5OC0wMy0xMDogbWFsZXI6IEFkZGVkICVlZG5vdGUuY2xhc3M7IHRvIGFsbCBtaXh0dXJlcy4KKyMxOTk4LTAzLTIzOiBtYWxlcjogTW92ZWQgc29tZSAldGVybWRlZi5wY2QubWl4OyBzdHVmZiBvdXQgdG8KKyMgICAgICAgICAgICAgICAgICAgJXRlcm1kZWYubWl4Oy4KKy0tPgorCis8IUVOVElUWSAlIHAucGNkLm1peAorICAgICAgICAiI1BDREFUQXwlYW5ub3QuY2xhc3M7fCV0ZXJtZGVmLmNsYXNzO3wlZW1waC5jbGFzczsKKyAgICAgICAgfCVyZWYuY2xhc3M7fCV0ZWNoLmNsYXNzO3wlbG9jLmNsYXNzO3wlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIHN0YXR1c3AucGNkLm1peAorICAgICAgICAiI1BDREFUQXwlYW5ub3QuY2xhc3M7fCV0ZXJtZGVmLmNsYXNzO3wlZW1waC5jbGFzczsKKyAgICAgICAgfCVyZWYuY2xhc3M7fCV0ZWNoLmNsYXNzO3wlbG9jLmNsYXNzO3wlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIGhlYWQucGNkLm1peAorICAgICAgICAiI1BDREFUQXwlYW5ub3QuY2xhc3M7fCVlbXBoLmNsYXNzO3wldGVjaC5jbGFzczt8JWVkbm90ZS5jbGFzczsiPgorPCFFTlRJVFkgJSBsYWJlbC5wY2QubWl4CisgICAgICAgICIjUENEQVRBfCVhbm5vdC5jbGFzczt8JXRlcm1kZWYuY2xhc3M7fCVlbXBoLmNsYXNzO3wldGVjaC5jbGFzczsKKyAgICAgICAgfCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgZWcucGNkLm1peAorICAgICAgICAiI1BDREFUQXwlYW5ub3QuY2xhc3M7fCVlbXBoLmNsYXNzO3wlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIHRlcm1kZWYucGNkLm1peAorICAgICAgICAiI1BDREFUQXx0ZXJtfCVlbXBoLmNsYXNzO3wlcmVmLmNsYXNzO3wldGVjaC5jbGFzczsKKyAgICAgICAgfCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgYmlibC5wY2QubWl4CisgICAgICAgICIjUENEQVRBfCVlbXBoLmNsYXNzO3wlcmVmLmNsYXNzO3wlbG9jLmNsYXNzO3wlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIHRlY2gucGNkLm1peAorICAgICAgICAiI1BDREFUQXwlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIGxvYy5wY2QubWl4CisgICAgICAgICIjUENEQVRBfCVsb2MuY2xhc3M7fCVlZG5vdGUuY2xhc3M7Ij4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBjdXN0b21pemFibGUgY29udGVudCBtb2RlbHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBBZGRlZCBjdXN0b21pemF0aW9uIGVudGl0aWVzLgorLS0+CisKKzwhRU5USVRZICUgc3BlYy5tZGwKKyAgICAgICAgImhlYWRlciwgZnJvbnQ/LCBib2R5LCBiYWNrPyI+CisKKzwhRU5USVRZICUgaGVhZGVyLm1kbAorICAgICAgICAidGl0bGUsIHN1YnRpdGxlPywgdmVyc2lvbiwgdzNjLWRlc2lnbmF0aW9uLCB3M2MtZG9jdHlwZSwKKyAgICAgICAgcHViZGF0ZSwgbm90aWNlKiwgcHVibG9jLCBsYXRlc3Rsb2M/LCBwcmV2bG9jcz8sIGF1dGhsaXN0LAorICAgICAgICBhYnN0cmFjdCwgc3RhdHVzLCBwdWJzdG10Pywgc291cmNlZGVzYz8sIGxhbmd1c2FnZSwKKyAgICAgICAgcmV2aXNpb25kZXNjIj4KKworPCFFTlRJVFkgJSBwdWJkYXRlLm1kbAorICAgICAgICAiZGF5PywgbW9udGgsIHllYXIiPgorCis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gRW50aXRpZXMgZm9yIGNvbW1vbiBhdHRyaWJ1dGVzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tICAgIGtleSBhdHRyaWJ1dGU6CisgICAgICAgIE9wdGlvbmFsbHkgcHJvdmlkZXMgYSBzb3J0aW5nIG9yIGluZGV4aW5nIGtleSwgZm9yIGNhc2VzIHdoZW4KKyAgICAgICAgdGhlIGVsZW1lbnQgY29udGVudCBpcyBpbmFwcHJvcHJpYXRlIGZvciB0aGlzIHB1cnBvc2UuIC0tPgorPCFFTlRJVFkgJSBrZXkuYXR0CisgICAgICAgICdrZXkgICAgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRCc+CisKKzwhLS0gICAgZGVmIGF0dHJpYnV0ZToKKyAgICAgICAgUG9pbnRzIHRvIHRoZSBlbGVtZW50IHdoZXJlIHRoZSByZWxldmFudCBkZWZpbml0aW9uIGNhbiBiZQorICAgICAgICBmb3VuZCwgdXNpbmcgdGhlIElEUkVGIG1lY2hhbmlzbS4gICVkZWYuYXR0OyBpcyBmb3Igb3B0aW9uYWwKKyAgICAgICAgZGVmIGF0dHJpYnV0ZXMsIGFuZCAlZGVmLXJlcS5hdHQ7IGlzIGZvciByZXF1aXJlZCBkZWYKKyAgICAgICAgYXR0cmlidXRlcy4gLS0+Cis8IUVOVElUWSAlIGRlZi5hdHQKKyAgICAgICAgJ2RlZiAgICAgICAgICAgICAgICAgICAgSURSRUYgICAgICAgICAgICNJTVBMSUVEJz4KKzwhRU5USVRZICUgZGVmLXJlcS5hdHQKKyAgICAgICAgJ2RlZiAgICAgICAgICAgICAgICAgICAgSURSRUYgICAgICAgICAgICNSRVFVSVJFRCc+CisKKzwhLS0gICAgcmVmIGF0dHJpYnV0ZToKKyAgICAgICAgUG9pbnRzIHRvIHRoZSBlbGVtZW50IHdoZXJlIG1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kLAorICAgICAgICB1c2luZyB0aGUgSURSRUYgbWVjaGFuaXNtLiAgJXJlZi5hdHQ7IGlzIGZvciBvcHRpb25hbAorICAgICAgICByZWYgYXR0cmlidXRlcywgYW5kICVyZWYtcmVxLmF0dDsgaXMgZm9yIHJlcXVpcmVkIHJlZgorICAgICAgICBhdHRyaWJ1dGVzLiAtLT4KKzwhRU5USVRZICUgcmVmLmF0dAorICAgICAgICAncmVmICAgICAgICAgICAgICAgICAgICBJRFJFRiAgICAgICAgICAgI0lNUExJRUQnPgorPCFFTlRJVFkgJSByZWYtcmVxLmF0dAorICAgICAgICAncmVmICAgICAgICAgICAgICAgICAgICBJRFJFRiAgICAgICAgICAgI1JFUVVJUkVEJz4KKworPCEtLQorIzE5OTgtMDMtMjM6IG1hbGVyOiBBZGRlZCBzaG93IGFuZCBhY3R1YXRlIGF0dHJpYnV0ZXMgdG8gaHJlZi4KKyMgICAgICAgICAgICAgICAgICAgQWRkZWQgc2VtaS1jb21tb24geG1sOnNwYWNlIGF0dHJpYnV0ZS4KKy0tPgorCis8IS0tICAgIEhSRUYgYW5kIHNvdXJjZSBhdHRyaWJ1dGVzOgorICAgICAgICBQb2ludHMgdG8gdGhlIGVsZW1lbnQgd2hlcmUgbW9yZSBpbmZvcm1hdGlvbiBvciBzb3VyY2UgZGF0YQorICAgICAgICBjYW4gYmUgZm91bmQsIHVzaW5nIHRoZSBVUkwgKFhMTCBzaW1wbGUgbGluaykgbWVjaGFuaXNtLgorICAgICAgICBGb3Igc29tZSBwdXJwb3NlcywgaXMgYXNzb2NpYXRlZCB3aXRoIGFkZGl0aW9uYWwgWExMCisgICAgICAgIGF0dHJpYnV0ZXMuICVocmVmLmF0dDsgaXMgZm9yIG9wdGlvbmFsIEhSRUYgYXR0cmlidXRlcywKKyAgICAgICAgYW5kICVocmVmLXJlcS5hdHQ7IGlzIGZvciByZXF1aXJlZCBIUkVGIGF0dHJpYnV0ZXMuCisgICAgICAgICVzb3VyY2UtcmVxLmF0dDsgaXMgZm9yIHRoZSBzb3VyY2UgYXR0cmlidXRlLCB3aGljaAorICAgICAgICBpcyBhbHdheXMgcmVxdWlyZWQuIC0tPgorPCFFTlRJVFkgJSBocmVmLmF0dAorICAgICAgICAneG1sLWxpbmsgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0ZJWEVEICJzaW1wbGUiCisgICAgICAgIGhyZWYgICAgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRAorICAgICAgICBzaG93ICAgICAgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0ZJWEVEICJlbWJlZCIKKyAgICAgICAgYWN0dWF0ZSAgICAgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNGSVhFRCAiYXV0byInPgorCis8IUVOVElUWSAlIGhyZWYtcmVxLmF0dAorICAgICAgICAneG1sLWxpbmsgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0ZJWEVEICJzaW1wbGUiCisgICAgICAgIGhyZWYgICAgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjUkVRVUlSRUQKKyAgICAgICAgc2hvdyAgICAgICAgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNGSVhFRCAiZW1iZWQiCisgICAgICAgIGFjdHVhdGUgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjRklYRUQgImF1dG8iJz4KKworPCFFTlRJVFkgJSBzb3VyY2UtcmVxLmF0dAorICAgICAgICAneG1sLWxpbmsgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0ZJWEVEICJzaW1wbGUiCisgICAgICAgIHhtbDphdHRyaWJ1dGVzICAgICAgICAgIE5NVE9LRU5TICAgICAgICAjRklYRUQgImhyZWYgc291cmNlIgorICAgICAgICBzb3VyY2UgICAgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI1JFUVVJUkVECisgICAgICAgIHNob3cgICAgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjRklYRUQgImVtYmVkIgorICAgICAgICBhY3R1YXRlICAgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0ZJWEVEICJhdXRvIic+CisKKzwhLS0gICAgeG1sOnNwYWNlIGF0dHJpYnV0ZToKKyAgICAgICAgSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgY29udGFpbnMgd2hpdGUgc3BhY2UKKyAgICAgICAgdGhhdCB0aGUgZm9ybWF0dGVyIG9yIG90aGVyIGFwcGxpY2F0aW9uIHNob3VsZCByZXRhaW4sCisgICAgICAgIGFzIGFwcHJvcHJpYXRlIHRvIGl0cyBmdW5jdGlvbi4gLS0+Cis8IUVOVElUWSAlIHhtbHNwYWNlLmF0dAorICAgICAgICAneG1sOnNwYWNlICAgICAgICAgICAgICAoZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8cHJlc2VydmUpICAgICAgI0ZJWEVEICJwcmVzZXJ2ZSInPgorCis8IS0tICAgIENvbW1vbiBhdHRyaWJ1dGVzOgorICAgICAgICBFdmVyeSBlbGVtZW50IGhhcyBhbiBJRCBhdHRyaWJ1dGUgKHNvbWV0aW1lcyByZXF1aXJlZCwKKyAgICAgICAgYnV0IHVzdWFsbHkgb3B0aW9uYWwpIGZvciBsaW5rcywgYW5kIGEgUm9sZSBhdHRyaWJ1dGUKKyAgICAgICAgZm9yIGV4dGVuZGluZyB0aGUgdXNlZnVsIGxpZmUgb2YgdGhlIERURCBieSBhbGxvd2luZworICAgICAgICBhdXRob3JzIHRvIG1ha2Ugc3ViY2xhc3NlcyBmb3IgYW55IGVsZW1lbnQuICVjb21tb24uYXR0OworICAgICAgICBpcyBmb3IgY29tbW9uIGF0dHJpYnV0ZXMgd2hlcmUgdGhlIElEIGlzIG9wdGlvbmFsLCBhbmQKKyAgICAgICAgJWNvbW1vbi1pZHJlcS5hdHQ7IGlzIGZvciBjb21tb24gYXR0cmlidXRlcyB3aGVyZSB0aGUKKyAgICAgICAgSUQgaXMgcmVxdWlyZWQuIC0tPgorPCFFTlRJVFkgJSBjb21tb24uYXR0CisgICAgICAgICdpZCAgICAgICAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRAorICAgICAgICByb2xlICAgICAgICAgICAgICAgICAgICBOTVRPS0VOICAgICAgICAgI0lNUExJRUQnPgorPCFFTlRJVFkgJSBjb21tb24taWRyZXEuYXR0CisgICAgICAgICdpZCAgICAgICAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjUkVRVUlSRUQKKyAgICAgICAgcm9sZSAgICAgICAgICAgICAgICAgICAgTk1UT0tFTiAgICAgICAgICNJTVBMSUVEJz4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIENvbW1vbiBlbGVtZW50cyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLSAgICBoZWFkOiBUaXRsZSBvbiBkaXZpc2lvbnMsIHByb2R1Y3Rpb25zLCBhbmQgdGhlIGxpa2UgLS0+Cis8IUVMRU1FTlQgaGVhZCAoJWhlYWQucGNkLm1peDspKj4KKzwhQVRUTElTVCBoZWFkICVjb21tb24uYXR0Oz4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIE1ham9yIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBNYWRlIHNwZWMgY29udGVudCBtb2RlbCBlYXNpbHkgY3VzdG9taXphYmxlLgorLS0+CisKKzwhRUxFTUVOVCBzcGVjICglc3BlYy5tZGw7KT4KKzwhQVRUTElTVCBzcGVjICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGZyb250IChkaXYxKyk+Cis8IUFUVExJU1QgZnJvbnQgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgYm9keSAoZGl2MSspPgorPCFBVFRMSVNUIGJvZHkgJWNvbW1vbi5hdHQ7PgorCis8IS0tCisjMTk5Ny0wOS0zMDogbWFsZXI6IEFkZGVkIGluZm9ybS1kaXYxIHRvIGJhY2sgY29udGVudC4KKy0tPgorCis8IUVMRU1FTlQgYmFjayAoKGRpdjErLCBpbmZvcm0tZGl2MSopIHwgaW5mb3JtLWRpdjErKT4KKzwhQVRUTElTVCBiYWNrICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGRpdjEgKGhlYWQsICglZGl2Lm1peDspKiwgZGl2MiopPgorPCFBVFRMSVNUIGRpdjEgJWNvbW1vbi5hdHQ7PgorCis8IS0tCisjMTk5Ny0wOS0zMDogbWFsZXI6IEFkZGVkIGluZm9ybS1kaXYxIGRlY2xhcmF0aW9ucy4KKy0tPgorCis8IS0tICAgIGluZm9ybS1kaXYxOiBOb24tbm9ybWF0aXZlIGRpdmlzaW9uIGluIGJhY2sgbWF0dGVyIC0tPgorPCFFTEVNRU5UIGluZm9ybS1kaXYxIChoZWFkLCAoJWRpdi5taXg7KSosIGRpdjIqKT4KKzwhQVRUTElTVCBpbmZvcm0tZGl2MSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBkaXYyIChoZWFkLCAoJWRpdi5taXg7KSosIGRpdjMqKT4KKzwhQVRUTElTVCBkaXYyICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGRpdjMgKGhlYWQsICglZGl2Lm1peDspKiwgZGl2NCopPgorPCFBVFRMSVNUIGRpdjMgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGl2NCAoaGVhZCwgKCVkaXYubWl4OykqKT4KKzwhQVRUTElTVCBkaXY0ICVjb21tb24uYXR0Oz4KKworPCEtLSBTcGVjaWZpY2F0aW9uIGhlYWRlciAuLi4uLi4uLi4uIC0tPgorCis8IS0tCisjMTk5OC0wMy0xMDogbWFsZXI6IE1hZGUgaGVhZGVyIGNvbnRlbnQgbW9kZWwgZWFzaWx5IGN1c3RvbWl6YWJsZS4KKy0tPgorCis8IUVMRU1FTlQgaGVhZGVyICglaGVhZGVyLm1kbDspPgorPCFBVFRMSVNUIGhlYWRlciAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgRXhhbXBsZSBvZiB0aXRsZTogIkV4dGVuc2libGUgQ2hlZXNlIExhbmd1YWdlIChYQ0wpIiAtLT4KKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGl0bGUgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIEV4YW1wbGUgb2Ygc3VidGl0bGU6ICJBIENoZWVzeSBTcGVjaWZpY2F0aW9uIiAtLT4KKzwhRUxFTUVOVCBzdWJ0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc3VidGl0bGUgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIEV4YW1wbGUgb2YgdmVyc2lvbjogIlZlcnNpb24gNjY2LjAiIC0tPgorPCFFTEVNRU5UIHZlcnNpb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHZlcnNpb24gJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIEV4YW1wbGUgb2YgdzNjLWRlc2lnbmF0aW9uOiAiV0QteGNsLTE5OTkxMjMxIiAtLT4KKzwhRUxFTUVOVCB3M2MtZGVzaWduYXRpb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHczYy1kZXNpZ25hdGlvbiAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgRXhhbXBsZSBvZiB3M2MtZG9jdHlwZTogIldvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0gV29ya2luZworICAgICAgICBEcmFmdCIgLS0+Cis8IUVMRU1FTlQgdzNjLWRvY3R5cGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHczYy1kb2N0eXBlICVjb21tb24uYXR0Oz4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBNYWRlIHB1YmRhdGUgY29udGVudCBtb2RlbCBlYXNpbHkgY3VzdG9taXphYmxlLgorLS0+CisKKzwhRUxFTUVOVCBwdWJkYXRlICglcHViZGF0ZS5tZGw7KT4KKzwhQVRUTElTVCBwdWJkYXRlICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGRheSAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGF5ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIG1vbnRoICgjUENEQVRBKT4KKzwhQVRUTElTVCBtb250aCAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCB5ZWFyICgjUENEQVRBKT4KKzwhQVRUTElTVCB5ZWFyICVjb21tb24uYXR0Oz4KKworPCEtLSAgICBFeGFtcGxlIG9mIG5vdGljZTogIlRoaXMgZHJhZnQgaXMgZm9yIHB1YmxpYyBjb21tZW50Li4uIiAtLT4KKzwhRUxFTUVOVCBub3RpY2UgKCVoZHIubWl4OykrPgorPCFBVFRMSVNUIG5vdGljZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBwdWJsb2MgKGxvYyspPgorPCFBVFRMSVNUIHB1YmxvYyAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBwcmV2bG9jcyAobG9jKyk+Cis8IUFUVExJU1QgcHJldmxvY3MgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgbGF0ZXN0bG9jIChsb2MrKT4KKzwhQVRUTElTVCBsYXRlc3Rsb2MgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgICAgbG9jIChkZWZpbmVkIGluICJQaHJhc2UtbGV2ZWwgZWxlbWVudHMiIGJlbG93KSAtLT4KKworPCFFTEVNRU5UIGF1dGhsaXN0IChhdXRob3IrKT4KKzwhQVRUTElTVCBhdXRobGlzdCAlY29tbW9uLmF0dDs+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogTWFkZSBhZmZpbGlhdGlvbiBvcHRpb25hbC4KKyMxOTk4LTAzLTEwOiBtYWxlcjogTWFkZSBlbWFpbCBvcHRpb25hbC4KKy0tPgorCis8IUVMRU1FTlQgYXV0aG9yIChuYW1lLCBhZmZpbGlhdGlvbj8sIGVtYWlsPyk+Cis8IUFUVExJU1QgYXV0aG9yICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIG5hbWUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIG5hbWUKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICVrZXkuYXR0Oz4KKworPCFFTEVNRU5UIGFmZmlsaWF0aW9uICgjUENEQVRBKT4KKzwhQVRUTElTVCBhZmZpbGlhdGlvbiAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBlbWFpbCAoI1BDREFUQSk+Cis8IS0tICAgIEhSRUYgYXR0cmlidXRlOgorICAgICAgICBlbWFpbCBmdW5jdGlvbnMgYXMgYSBoeXBlcnRleHQgcmVmZXJlbmNlIHRocm91Z2ggdGhpcworICAgICAgICByZXF1aXJlZCBhdHRyaWJ1dGUuICBUeXBpY2FsbHkgdGhlIHJlZmVyZW5jZSB3b3VsZCB1c2UKKyAgICAgICAgdGhlIG1haWx0bzogc2NoZW1lLiAtLT4KKzwhQVRUTElTVCBlbWFpbAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWhyZWYtcmVxLmF0dDs+CisKKzwhLS0gICAgVGhlIHN0YXR1cyBlbGVtZW50IG5vdyBjb250YWlucyBib3RoIHN0YXR1c3AgYW5kIHAsIGFuZAorICAgICAgICB0aGUgbGF0dGVyIG5vdyBhbGxvd3MgbG9jLiAgVXNlIHA7IHN0YXR1c3Agd2lsbCBiZSByZW1vdmVkCisgICAgICAgIGV2ZW50dWFsbHkuIC0tPgorPCFFTEVNRU5UIHN0YXR1cyAoJXN0YXR1c29iai5taXg7KSs+Cis8IUFUVExJU1Qgc3RhdHVzICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGFic3RyYWN0ICglaGRyLm1peDspKj4KKzwhQVRUTElTVCBhYnN0cmFjdCAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBwdWJzdG10ICglaGRyLm1peDspKz4KKzwhQVRUTElTVCBwdWJzdG10ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHNvdXJjZWRlc2MgKCVoZHIubWl4OykrPgorPCFBVFRMSVNUIHNvdXJjZWRlc2MgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgbGFuZ3VzYWdlIChsYW5ndWFnZSspPgorPCFBVFRMSVNUIGxhbmd1c2FnZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBsYW5ndWFnZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgbGFuZ3VhZ2UgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgcmV2aXNpb25kZXNjICglaGRyLm1peDspKz4KKzwhQVRUTElTVCByZXZpc2lvbmRlc2MgJWNvbW1vbi5hdHQ7PgorCis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gU3RhbmRhbG9uZSBlbGVtZW50cyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tIFBhcmFncmFwaHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQ2hhbmdlZCBmcm9tICVvYmoubWl4OyB0byAlcC5taXg7LgorIzE5OTctMTItMjk6IG1hbGVyOiBDaGFuZ2VkIG9yZGVyIG9mICVwLm1peDsgYW5kICVwLnBjZC5taXg7IHJlZmVyZW5jZXMuCisjMTk5Ny0xMi0yOTogbWFsZXI6IENoYW5nZWQgb3JkZXIgb2YgJXN0YXR1c29iai5taXg7IGFuZCAlc3RhdHVzcC5wY2QubWl4OworIyAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzLgorLS0+CisKKzwhRUxFTUVOVCBwICglcC5wY2QubWl4O3wlcC5taXg7KSo+Cis8IUFUVExJU1QgcCAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgc3RhdHVzcDogU3BlY2lhbCBwYXJhZ3JhcGggdGhhdCBhbGxvd3MgbG9jIGluc2lkZSBpdCAobm90ZSB0aGF0CisgICAgICAgIHAgbm93IGFsc28gYWxsb3dzIGxvYykgLS0+Cis8IUVMRU1FTlQgc3RhdHVzcCAoJXN0YXR1c3AucGNkLm1peDt8JXN0YXR1c29iai5taXg7KSo+Cis8IUFUVExJU1Qgc3RhdHVzcCAlY29tbW9uLmF0dDs+CisKKzwhLS0gTGlzdHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCFFTEVNRU5UIHVsaXN0IChpdGVtKyk+Cis8IS0tICAgIHNwYWNpbmcgYXR0cmlidXRlOgorICAgICAgICBVc2UgIm5vcm1hbCIgdG8gZ2V0IG5vcm1hbCB2ZXJ0aWNhbCBzcGFjaW5nIGZvciBpdGVtczsKKyAgICAgICAgdXNlICJjb21wYWN0IiB0byBnZXQgbGVzcyBzcGFjaW5nLiAgVGhlIGRlZmF1bHQgaXMgZGVwZW5kZW50CisgICAgICAgIG9uIHRoZSBzdHlsZXNoZWV0LiAtLT4KKzwhQVRUTElTVCB1bGlzdAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgc3BhY2luZyAgICAgICAgIChub3JtYWx8Y29tcGFjdCkgICAgICAgICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb2xpc3QgKGl0ZW0rKT4KKzwhLS0gICAgc3BhY2luZyBhdHRyaWJ1dGU6CisgICAgICAgIFVzZSAibm9ybWFsIiB0byBnZXQgbm9ybWFsIHZlcnRpY2FsIHNwYWNpbmcgZm9yIGl0ZW1zOworICAgICAgICB1c2UgImNvbXBhY3QiIHRvIGdldCBsZXNzIHNwYWNpbmcuICBUaGUgZGVmYXVsdCBpcyBkZXBlbmRlbnQKKyAgICAgICAgb24gdGhlIHN0eWxlc2hlZXQuIC0tPgorPCFBVFRMSVNUIG9saXN0CisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICBzcGFjaW5nICAgICAgICAgKG5vcm1hbHxjb21wYWN0KSAgICAgICAgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpdGVtICglb2JqLm1peDspKz4KKzwhQVRUTElTVCBpdGVtICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHNsaXN0IChzaXRlbSspPgorPCFBVFRMSVNUIHNsaXN0ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHNpdGVtICglcC5wY2QubWl4OykqPgorPCFBVFRMSVNUIHNpdGVtICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGdsaXN0IChnaXRlbSspPgorPCFBVFRMSVNUIGdsaXN0ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGdpdGVtIChsYWJlbCwgZGVmKT4KKzwhQVRUTElTVCBnaXRlbSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBsYWJlbCAoJWxhYmVsLnBjZC5taXg7KSo+Cis8IUFUVExJU1QgbGFiZWwgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGVmICglb2JqLm1peDspKj4KKzwhQVRUTElTVCBkZWYgJWNvbW1vbi5hdHQ7PgorCis8IS0tIFNwZWNpYWwgbGlzdHMgLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhRUxFTUVOVCBibGlzdCAoYmlibCspPgorPCFBVFRMSVNUIGJsaXN0ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGJpYmwgKCViaWJsLnBjZC5taXg7KSo+CisKKzwhLS0gICAgSFJFRiBhdHRyaWJ1dGU6CisgICAgICAgIGJpYmwgb3B0aW9uYWxseSBmdW5jdGlvbnMgYXMgYSBoeXBlcnRleHQgcmVmZXJlbmNlIHRvIHRoZQorICAgICAgICByZWZlcnJlZC10byByZXNvdXJjZSB0aHJvdWdoIHRoaXMgYXR0cmlidXRlLiAtLT4KKworPCFBVFRMSVNUIGJpYmwKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICVocmVmLmF0dDsKKyAgICAgICAgJWtleS5hdHQ7PgorCis8IUVMRU1FTlQgb3JnbGlzdCAobWVtYmVyKyk+Cis8IUFUVExJU1Qgb3JnbGlzdCAlY29tbW9uLmF0dDs+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgb3B0aW9uYWwgYWZmaWxpYXRpb24uCistLT4KKworPCFFTEVNRU5UIG1lbWJlciAobmFtZSwgYWZmaWxpYXRpb24/LCByb2xlPyk+Cis8IUFUVExJU1QgbWVtYmVyICVjb21tb24uYXR0Oz4KKworPCEtLSAgICAgIG5hbWUgKGRlZmluZWQgaW4gIlNwZWNpZmljYXRpb24gaGVhZGVyIiBhYm92ZSkgLS0+Cis8IS0tICAgICAgYWZmaWxpYXRpb24gKGRlZmluZWQgaW4gIlNwZWNpZmljYXRpb24gaGVhZGVyIiBhYm92ZSkgLS0+CisKKzwhRUxFTUVOVCByb2xlICgjUENEQVRBKT4KKzwhQVRUTElTVCByb2xlICVjb21tb24uYXR0Oz4KKworPCEtLSBOb3RlcyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IUVMRU1FTlQgbm90ZSAoJW9iai5taXg7KSs+Cis8IUFUVExJU1Qgbm90ZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCB3ZmNub3RlIChoZWFkLCAoJW9iai5taXg7KSspPgorPCEtLSAgICBJRCBhdHRyaWJ1dGU6CisgICAgICAgIHdmY25vdGUgbXVzdCBoYXZlIGFuIElEIHNvIHRoYXQgaXQgY2FuIGJlIHBvaW50ZWQgdG8KKyAgICAgICAgZnJvbSBhIHdmYyBlbGVtZW50IGluIGEgcHJvZHVjdGlvbi4gLS0+Cis8IUFUVExJU1Qgd2Zjbm90ZQorICAgICAgICAlY29tbW9uLWlkcmVxLmF0dDs+CisKKzwhRUxFTUVOVCB2Y25vdGUgKGhlYWQsICglb2JqLm1peDspKyk+Cis8IS0tICAgIElEIGF0dHJpYnV0ZToKKyAgICAgICAgdmNub3RlIG11c3QgaGF2ZSBhbiBJRCBzbyB0aGF0IGl0IGNhbiBiZSBwb2ludGVkIHRvCisgICAgICAgIGZyb20gYSB2YyBlbGVtZW50IGluIGEgcHJvZHVjdGlvbi4gLS0+Cis8IUFUVExJU1QgdmNub3RlCisgICAgICAgICVjb21tb24taWRyZXEuYXR0Oz4KKworPCEtLSBJbGx1c3RyYXRpb25zIC4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tCisjMTk5OC0wMy0yMzogbWFsZXI6IEFkZGVkIHhtbDpzcGFjZSBhdHRyaWJ1dGUuCistLT4KKworPCFFTEVNRU5UIGVnICglZWcucGNkLm1peDspKj4KKzwhQVRUTElTVCBlZworICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXhtbHNwYWNlLmF0dDs+CisKKzwhRUxFTUVOVCBncmFwaGljIEVNUFRZPgorPCEtLSAgICBzb3VyY2UgYXR0cmlidXRlOgorICAgICAgICBUaGUgZ3JhcGhpYyBkYXRhIG11c3QgcmVzaWRlIGF0IHRoZSBsb2NhdGlvbiBwb2ludGVkIHRvLgorICAgICAgICBUaGlzIGlzIGEgaHlwZXJ0ZXh0IHJlZmVyZW5jZSwgYnV0IGZvciBwcmFjdGljYWwgcHVycG9zZXMsCisgICAgICAgIGZvciBub3cgaXQgc2hvdWxkIGp1c3QgYmUgYSBwYXRobmFtZS4gLS0+Cis8IUFUVExJU1QgZ3JhcGhpYworICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXNvdXJjZS1yZXEuYXR0OworICAgICAgICBhbHQgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorCis8IS0tCisjMTk5Ny0xMS0yODogbWFsZXI6IEFkZGVkIHByb2Rncm91cCB0byBzY3JhcCBhbmQgZGVmaW5lZCBpdC4KKy0tPgorCis8IUVMRU1FTlQgc2NyYXAgKGhlYWQsIChwcm9kZ3JvdXArIHwgcHJvZCsgfCBibmYpKT4KKzwhLS0gICAgbGFuZyBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBzY3JhcCBjYW4gbGluayB0byBhIGRlc2NyaXB0aW9uIG9mIHRoZSBsYW5ndWFnZSB1c2VkLAorICAgICAgICBmb3VuZCBpbiBhIGxhbmd1YWdlIGVsZW1lbnQgaW4gdGhlIGhlYWRlci4gLS0+Cis8IUFUVExJU1Qgc2NyYXAKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgIGxhbmcgICAgICAgICAgICBJRFJFRiAgICAgICAgICAgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9kZ3JvdXAgKHByb2QrKT4KKzwhLS0gICAgcGN3PG4+IGF0dHJpYnV0ZXM6CisgICAgICAgIFByZXNlbnRhdGlvbmFsIGF0dHJpYnV0ZXMgdG8gY29udHJvbCB0aGUgd2lkdGgKKyAgICAgICAgb2YgdGhlICJwc2V1ZG8tdGFibGUiIGNvbHVtbnMgdXNlZCB0byBvdXRwdXQKKyAgICAgICAgZ3JvdXBzIG9mIHByb2R1Y3Rpb25zLiAtLT4KKzwhQVRUTElTVCBwcm9kZ3JvdXAKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgIHBjdzEgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQKKyAgICAgICAgcGN3MiAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRAorICAgICAgICBwY3czICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVECisgICAgICAgIHBjdzQgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQKKyAgICAgICAgcGN3NSAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRAorPgorCis8IUVMRU1FTlQgcHJvZCAobGhzLCAocmhzLCAoY29tfHdmY3x2YykqKSspPgorPCEtLSAgICBJRCBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBwcm9kdWN0aW9uIG11c3QgaGF2ZSBhbiBJRCBzbyB0aGF0IGNyb3NzLXJlZmVyZW5jZXMKKyAgICAgICAgKHNwZWNyZWYpIGFuZCBtZW50aW9ucyBvZiBub250ZXJtaW5hbHMgKG50KSBjYW4gbGluayB0bworICAgICAgICBpdC4gLS0+Cis8IUFUVExJU1QgcHJvZAorICAgICAgICAlY29tbW9uLWlkcmVxLmF0dDs+CisKKzwhRUxFTUVOVCBsaHMgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGxocyAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCByaHMgKCNQQ0RBVEF8bnR8eG50fGNvbSkqPgorPCFBVFRMSVNUIHJocyAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgICBudCBhbmQgeG50IChkZWZpbmVkIGluICJQaHJhc2UtbGV2ZWwgZWxlbWVudHMiIGJlbG93KSAtLT4KKworPCEtLQorIzE5OTctMTEtMjg6IG1hbGVyOiBBZGRlZCBsb2MgYW5kIGJpYnJlZiB0byBjb20gY29udGVudC4KKy0tPgorCis8IUVMRU1FTlQgY29tICgjUENEQVRBfGxvY3xiaWJyZWYpKj4KKzwhQVRUTElTVCBjb20gJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIHdmYzogU2hvdWxkIGdlbmVyYXRlIHRoZSBoZWFkIG9mIHRoZSB3ZmNub3RlIHBvaW50ZWQgdG8gLS0+Cis8IUVMRU1FTlQgd2ZjIEVNUFRZPgorPCEtLSAgICBkZWYgYXR0cmlidXRlOgorICAgICAgICBFYWNoIHdlbGwgZm9ybWVkbmVzcyB0YWdsaW5lIGluIGEgcHJvZHVjdGlvbiBtdXN0IGxpbmsgdG8gdGhlCisgICAgICAgIHdmY25vdGUgdGhhdCBkZWZpbmVzIGl0LiAtLT4KKzwhQVRUTElTVCB3ZmMKKyAgICAgICAgJWRlZi1yZXEuYXR0OworICAgICAgICAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgdmM6IFNob3VsZCBnZW5lcmF0ZSB0aGUgaGVhZCBvZiB0aGUgdmNub3RlIHBvaW50ZWQgdG8gLS0+Cis8IUVMRU1FTlQgdmMgRU1QVFk+Cis8IS0tICAgIGRlZiBhdHRyaWJ1dGU6CisgICAgICAgIEVhY2ggdmFsaWRpdHkgdGFnbGluZSBpbiBhIHByb2R1Y3Rpb24gbXVzdCBsaW5rIHRvIHRoZSB2Y25vdGUKKyAgICAgICAgdGhhdCBkZWZpbmVzIGl0LiAtLT4KKzwhQVRUTElTVCB2YworICAgICAgICAlZGVmLXJlcS5hdHQ7CisgICAgICAgICVjb21tb24uYXR0Oz4KKworPCEtLQorIzE5OTgtMDMtMjM6IG1hbGVyOiBBZGRlZCB4bWw6c3BhY2UgYXR0cmlidXRlLgorLS0+CisKKzwhLS0gICAgYm5mOiBVbi1tYXJrZWQtdXAgcHJvZHVjdGlvbiAtLT4KKzwhRUxFTUVOVCBibmYgKCVlZy5wY2QubWl4OykqPgorPCFBVFRMSVNUIGJuZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXhtbHNwYWNlLmF0dDs+CisKKzwhLS0KKyMxOTk3LTEwLTE2OiBtYWxlcjogQWRkZWQgdGFibGUgbWVjaGFuaXNtLgorIzE5OTctMTEtMjg6IG1hbGVyOiBBZGRlZCBub24tbnVsbCBzeXN0ZW0gSUQgdG8gZW50aXR5IGRlY2xhcmF0aW9uLgorIyAgICAgICAgICAgICAgICAgICBBZGRlZCBIVE1MIHRhYmxlIG1vZHVsZS4KKyMxOTk3LTEyLTI5OiBtYWxlcjogSUdOT1JFZCBTR01MIE9wZW4gdGFibGUgbW9kZWwuCisjMTk5OC0wMy0xMDogbWFsZXI6IFJlbW92ZWQgU0dNTCBPcGVuIHRhYmxlIG1vZGVsLgorIyAgICAgICAgICAgICAgICAgICBNZXJnZWQgaHRtbC10YmwubW9kIGZpbGUgaW50byBtYWluIGZpbGUuCisjICAgICAgICAgICAgICAgICAgIEFkZGVkICVjb21tb24uYXR0OyB0byBhbGwgSFRNTCB0YWJsZSBlbGVtZW50cy4KKy0tPgorCis8IS0tICAgIFRSIGFuZCBURCBhdHRyaWJ1dGVzOgorICAgICAgICBBbGlnbm1lbnQgYXR0cmlidXRlcy4gIE5vIGRlZmF1bHQuIC0tPgorPCFFTlRJVFkgJSB0cnRkLmF0dAorICAgICAgICAiYWxpZ24gICAgICAgICAgKGxlZnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHxjZW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHxyaWdodCkgICAgICAgICAjSU1QTElFRAorICAgICAgICB2YWxpZ24gICAgICAgICAgKHRvcAorICAgICAgICAgICAgICAgICAgICAgICAgfG1pZGRsZQorICAgICAgICAgICAgICAgICAgICAgICAgfGJvdHRvbSkgICAgICAgICNJTVBMSUVEIj4KKworPCFFTEVNRU5UIGh0YWJsZSAoaHRib2R5Kyk+Cis8IUFUVExJU1QgaHRhYmxlCisgICAgICAgICAgYm9yZGVyICAgICAgICBDREFUQSAgICAgICAgICAgIjAiCisgICAgICAgICAgY2VsbHBhZGRpbmcgICBDREFUQSAgICAgICAgICAgIjAiCisgICAgICAgICAgYWxpZ24gICAgICAgICAobGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgfGNlbnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgfHJpZ2h0KSAgICAgICAgICJsZWZ0Ij4KKworPCFFTEVNRU5UIGh0Ym9keSAodHIrKT4KKzwhQVRUTElTVCBodGJvZHkgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgdHIgICAgICh0ZCspPgorPCFBVFRMSVNUIHRyCisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAldHJ0ZC5hdHQ7PgorCis8IUVMRU1FTlQgdGQgICAgICglcC5wY2QubWl4OykqPgorPCFBVFRMSVNUIHRkCisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAldHJ0ZC5hdHQ7CisgICAgICAgIGJnY29sb3IgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQKKyAgICAgICAgcm93c3BhbiAgICAgICAgIENEQVRBICAgICAgICAgICAiMSIKKyAgICAgICAgY29sc3BhbiAgICAgICAgIENEQVRBICAgICAgICAgICAiMSI+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBQaHJhc2UtbGV2ZWwgZWxlbWVudHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0gICAgYmlicmVmOiBTaG91bGQgZ2VuZXJhdGUsIGluIHNxdWFyZSBicmFja2V0cywgImtleSIgb24gYmlibCAtLT4KKzwhRUxFTUVOVCBiaWJyZWYgRU1QVFk+Cis8IS0tICAgIHJlZiBhdHRyaWJ1dGU6CisgICAgICAgIEEgYmlibGlvZ3JhcGh5IHJlZmVyZW5jZSBtdXN0IGxpbmsgdG8gdGhlIGJpYmwgZWxlbWVudCB0aGF0CisgICAgICAgIGRlc2NyaWJlcyB0aGUgcmVzb3VyY2UuIC0tPgorPCFBVFRMSVNUIGJpYnJlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXJlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIGNvZGUgKCV0ZWNoLnBjZC5taXg7KSo+Cis8IUFUVExJU1QgY29kZSAlY29tbW9uLmF0dDs+CisKKzwhLS0KKyMxOTk4LTAzLTEwOiBtYWxlcjogRGVjbGFyZWQgZWRub3RlIGFuZCByZWxhdGVkIGVsZW1lbnRzLgorLS0+CisKKzwhRUxFTUVOVCBlZG5vdGUgKG5hbWU/LCBkYXRlPywgZWR0ZXh0KT4KKzwhQVRUTElTVCBlZG5vdGUgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGF0ZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGF0ZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBlZHRleHQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGVkdGV4dCAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBlbXBoICgjUENEQVRBKT4KKzwhQVRUTElTVCBlbXBoICVjb21tb24uYXR0Oz4KKworPCEtLSAgICBmb290bm90ZTogQm90aCBmb290bm90ZSBjb250ZW50IGFuZCBjYWxsIHRvIGZvb3Rub3RlIC0tPgorPCFFTEVNRU5UIGZvb3Rub3RlICglb2JqLm1peDspKz4KKzwhQVRUTElTVCBmb290bm90ZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBrdyAoJXRlY2gucGNkLm1peDspKj4KKzwhQVRUTElTVCBrdyAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBsb2MgKCNQQ0RBVEEpPgorPCEtLSAgICBIUkVGIGF0dHJpYnV0ZToKKyAgICAgICAgVGhlIHB1cnBvc2Ugb2YgYSBsb2MgZWxlbWVudCBpcyB0byBmdW5jdGlvbiBhcyBhIGh5cGVydGV4dAorICAgICAgICBsaW5rIHRvIGEgcmVzb3VyY2UuICAoSWRlYWxseSwgdGhlIGNvbnRlbnQgb2YgbG9jIHdpbGwgYWxzbworICAgICAgICBtZW50aW9uIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlLCBzbyB0aGF0IHJlYWRlcnMgb2YgdGhlCisgICAgICAgIHByaW50ZWQgdmVyc2lvbiB3aWxsIGJlIGFibGUgdG8gbG9jYXRlIHRoZSByZXNvdXJjZS4pIC0tPgorPCFBVFRMSVNUIGxvYworICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWhyZWYtcmVxLmF0dDs+CisKKzwhRUxFTUVOVCBudCAoI1BDREFUQSk+Cis8IS0tICAgIGRlZiBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBub250ZXJtaW5hbCBtdXN0IGxpbmsgdG8gdGhlIHByb2R1Y3Rpb24gdGhhdCBkZWZpbmVzCisgICAgICAgIGl0LiAtLT4KKzwhQVRUTElTVCBudAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWRlZi1yZXEuYXR0Oz4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBEZWNsYXJlZCBxdW90ZS4KKy0tPgorCis8IS0tICAgIHF1b3RlOiBTY2FyZSBxdW90ZXMgYW5kIG90aGVyIHB1cmVseSBwcmVzZW50YXRpb25hbCBxdW90ZXMgLS0+Cis8IUVMRU1FTlQgcXVvdGUgKCVwLnBjZC5taXg7KSo+Cis8IUFUVExJU1QgcXVvdGUgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIHNwZWNyZWY6IFNob3VsZCBnZW5lcmF0ZSBpdGFsaWMgIltuLm5dLCBTZWN0aW9uIFRpdGxlIiBmb3IKKyAgICAgICAgZGl2LCAibiIgZm9yIG51bWJlcmVkIGl0ZW0sIG9yICJbbl0iIGZvciBwcm9kdWN0aW9uIC0tPgorPCFFTEVNRU5UIHNwZWNyZWYgRU1QVFk+Cis8IS0tICAgIHJlZiBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBwdXJwb3NlIG9mIGEgc3BlY3JlZiBlbGVtZW50IGlzIHRvIGxpbmsgdG8gYSBkaXYsIGl0ZW0KKyAgICAgICAgaW4gYW4gb2xpc3QsIG9yIHByb2R1Y3Rpb24gaW4gdGhlIGN1cnJlbnQgc3BlYy4gLS0+Cis8IUFUVExJU1Qgc3BlY3JlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXJlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIHRlcm0gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRlcm0gJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgdGVybWRlZiAoJXRlcm1kZWYucGNkLm1peDt8JXRlcm1kZWYubWl4OykqPgorPCEtLSAgICBJRCBhdHRyaWJ1dGU6CisgICAgICAgIEEgdGVybSBkZWZpbml0aW9uIG11c3QgaGF2ZSBhbiBJRCBzbyB0aGF0IGl0IGNhbiBiZSBsaW5rZWQKKyAgICAgICAgdG8gZnJvbSB0ZXJtcmVmIGVsZW1lbnRzLiAtLT4KKzwhLS0gICAgdGVybSBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBjYW5vbmljYWwgZm9ybSBvZiB0aGUgdGVybSBvciBwaHJhc2UgYmVpbmcgZGVmaW5lZCBtdXN0CisgICAgICAgIGFwcGVhciBpbiB0aGlzIGF0dHJpYnV0ZSwgZXZlbiBpZiB0aGUgdGVybSBvciBwaHJhc2UgYWxzbworICAgICAgICBhcHBlYXJzIGluIHRoZSBlbGVtZW50IGNvbnRlbnQgaW4gaWRlbnRpY2FsIGZvcm0gKGUuZy4sIGluCisgICAgICAgIHRoZSB0ZXJtIGVsZW1lbnQpLiAtLT4KKzwhQVRUTElTVCB0ZXJtZGVmCisgICAgICAgICVjb21tb24taWRyZXEuYXR0OworICAgICAgICB0ZXJtICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNSRVFVSVJFRD4KKworPCFFTEVNRU5UIHRlcm1yZWYgKCNQQ0RBVEEpPgorPCEtLSAgICByZWYgYXR0cmlidXRlOgorICAgICAgICBBIHRlcm0gcmVmZXJlbmNlIG11c3QgbGluayB0byB0aGUgdGVybWRlZiBlbGVtZW50IHRoYXQKKyAgICAgICAgZGVmaW5lcyB0aGUgdGVybS4gLS0+Cis8IUFUVExJU1QgdGVybXJlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWRlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIHRpdGxlcmVmICgjUENEQVRBKT4KKzwhLS0gICAgSFJFRiBhdHRyaWJ1dGU6CisgICAgICAgIEEgdGl0bGUgcmVmZXJlbmNlIGNhbiBvcHRpb25hbGx5IGZ1bmN0aW9uIGFzIGEgaHlwZXJ0ZXh0CisgICAgICAgIGxpbmsgdG8gdGhlIHJlc291cmNlIHdpdGggdGhpcyB0aXRsZS4gLS0+Cis8IUFUVExJU1QgdGl0bGVyZWYKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICVocmVmLmF0dDs+CisKKzwhRUxFTUVOVCB4bnQgKCNQQ0RBVEEpPgorPCEtLSAgICBIUkVGIGF0dHJpYnV0ZToKKyAgICAgICAgVGhlIG5vbnRlcm1pbmFsIG11c3QgaHlwZXJsaW5rIHRvIGEgcmVzb3VyY2UgdGhhdCBzZXJ2ZXMKKyAgICAgICAgdG8gZGVmaW5lIGl0IChlLmcuLCBhIHByb2R1Y3Rpb24gaW4gYSByZWxhdGVkIFhNTAorICAgICAgICBzcGVjaWZpY2F0aW9uKS4gLS0+Cis8IUFUVExJU1QgeG50CisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAlaHJlZi1yZXEuYXR0Oz4KKworPCEtLQorIzE5OTctMTItMjk6IG1hbGVyOiBEZWNsYXJlZCB4c3BlY3JlZi4KKy0tPgorCis8IUVMRU1FTlQgeHNwZWNyZWYgKCNQQ0RBVEEpPgorPCEtLSAgICBIUkVGIGF0dHJpYnV0ZToKKyAgICAgICAgVGhlIHNwZWMgcmVmZXJlbmNlIG11c3QgaHlwZXJsaW5rIHRvIHRoZSByZXNvdXJjZSB0bworICAgICAgICBjcm9zcy1yZWZlciB0byAoZS5nLiwgYSBzZWN0aW9uIGluIGEgcmVsYXRlZCBYTUwKKyAgICAgICAgc3BlY2lmaWNhdGlvbikuIC0tPgorPCFBVFRMSVNUIHhzcGVjcmVmCisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAlaHJlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIHh0ZXJtcmVmICgjUENEQVRBKT4KKzwhLS0gICAgSFJFRiBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSB0ZXJtIHJlZmVyZW5jZSBtdXN0IGh5cGVybGluayB0byB0aGUgcmVzb3VyY2UgdGhhdAorICAgICAgICBzZXJ2ZXMgdG8gZGVmaW5lIHRoZSB0ZXJtIChlLmcuLCBhIHRlcm0gZGVmaW5pdGlvbiBpbgorICAgICAgICBhIHJlbGF0ZWQgWE1MIHNwZWNpZmljYXRpb24pLiAtLT4KKzwhQVRUTElTVCB4dGVybXJlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWhyZWYtcmVxLmF0dDs+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBVbnVzZWQgZWxlbWVudHMgZm9yIEFERVBUIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgdW51c3VlZCBlbGVtZW50cy4KKyMxOTk3LTEwLTE0OiBtYWxlcjogRml4ZWQgZGl2IHRvIG1vdmUgbmVzdGVkIGRpdiB0byB0aGUgbWl4dHVyZS4KKy0tPgorCis8IS0tICAgIFRoZSBmb2xsb3dpbmcgZWxlbWVudHMgYXJlIHB1cnBvc2VseSBkZWNsYXJlZCBidXQgbmV2ZXIKKyAgICAgICAgcmVmZXJlbmNlZC4gIERlY2xhcmluZyB0aGVtIGFsbG93cyB0aGVtIHRvIGJlIHBhc3RlZCBmcm9tCisgICAgICAgIGFuIEhUTUwgZG9jdW1lbnQgaW50byBhIGRvY3VtZW50IHVzaW5nIHRoaXMgRFREIGluIEFERVBULgorICAgICAgICBUaGUgQVREIENvbnRleHQgVHJhbnNmb3JtYXRpb24gbWVjaGFuaXNtIHdpbGwgdHJ5IHRvIGNvbnZlcnQKKyAgICAgICAgdGhlbSB0byB0aGUgYXBwcm9wcmlhdGUgZWxlbWVudCBmb3IgdGhpcyBEVEQuICBXaGlsZSB0aGlzCisgICAgICAgIGNvbnZlcnNpb24gd2lsbCBub3Qgd29yayBmb3IgYWxsIGZyYWdtZW50cywgaXQgZG9lcyBhbGxvdworICAgICAgICBtYW55IGNhc2VzIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLiAtLT4KKworPCFFTEVNRU5UIGRpdgorICAgICAgICAoaGVhZD8sICglZGl2Lm1peDt8dWx8b2x8aDF8aDJ8aDN8aDR8aDV8aDZ8ZGl2KSopPgorPCFFTEVNRU5UIGgxICglaGVhZC5wY2QubWl4O3xlbXxhKSo+Cis8IUVMRU1FTlQgaDIgKCVoZWFkLnBjZC5taXg7fGVtfGEpKj4KKzwhRUxFTUVOVCBoMyAoJWhlYWQucGNkLm1peDt8ZW18YSkqPgorPCFFTEVNRU5UIGg0ICglaGVhZC5wY2QubWl4O3xlbXxhKSo+Cis8IUVMRU1FTlQgaDUgKCVoZWFkLnBjZC5taXg7fGVtfGEpKj4KKzwhRUxFTUVOVCBoNiAoJWhlYWQucGNkLm1peDt8ZW18YSkqPgorPCFFTEVNRU5UIHByZSAoJWVnLnBjZC5taXg7fGVtKSo+Cis8IUVMRU1FTlQgdWwgKGl0ZW18bGkpKj4KKzwhRUxFTUVOVCBvbCAoaXRlbXxsaSkqPgorPCFFTEVNRU5UIGxpICgjUENEQVRBfCVvYmoubWl4OykqPgorPCFFTEVNRU5UIGVtICgjUENEQVRBKT4KKzwhRUxFTUVOVCBhICgjUENEQVRBKT4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIENoYW5nZSBoaXN0b3J5IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTctMDgtMTg6IG1hbGVyCisjLSBEaWQgYSBtYWpvciByZXZpc2lvbi4KKyMxOTk3LTA5LTEwOiBtYWxlcgorIy0gVXBkYXRlZCBGUEkuCisjLSBSZW1vdmVkIG5hbWVrZXkgZWxlbWVudCBhbmQgcHV0IGtleSBhdHRyaWJ1dGUgb24gbmFtZSBlbGVtZW50LgorIy0gTWFkZSBzdGF0dXNwIGVsZW1lbnQgYW5kIHN1cHBvcnRpbmcgZW50aXRpZXMuCisjLSBBZGRlZCBzbGlzdCBlbGVtZW50IHdpdGggc2l0ZW0rIGNvbnRlbnQuCisjLSBSZXF1aXJlZCBoZWFkIG9uIHNjcmFwIGFuZCBhZGRlZCBuZXcgYm5mIHN1YmVsZW1lbnQuCisjLSBBZGRlZCBhbiB4bnQgZWxlbWVudCBhbmQgYWxsb3dlZCBpdCBhbmQgbnQgaW4gcmVndWxhciB0ZXh0IGFuZCByaHMuCisjLSBSZW1vdmVkIHRoZSBudHJlZiBlbGVtZW50LgorIy0gQWRkZWQgYmFjayB0aGUgY29tIGVsZW1lbnQgdG8gdGhlIGNvbnRlbnQgb2YgcmhzLgorIy0gQWRkZWQgYSBrZXkgYXR0cmlidXRlIHRvIGJpYmwuCisjLSBSZW1vdmVkIHRoZSBpZGVudCBlbGVtZW50LgorIy0gQWRkZWQgYSB0ZXJtIGVsZW1lbnQgdG8gYmUgdXNlZCBpbnNpZGUgdGVybWRlZi4KKyMtIEFkZGVkIGFuIHh0ZXJtcmVmIGVsZW1lbnQgcGFyYWxsZWwgdG8gdGVybXJlZi4KKyMtIEJlZWZlZCB1cCBEVEQgY29tbWVudHMuCisjMTk5Ny0wOS0xMjogbWFsZXIKKyMtIEFsbG93ZWQgdGVybSBlbGVtZW50IGluIGdlbmVyYWwgdGV4dC4KKyMtIENoYW5nZWQgYmlicmVmIHRvIEVNUFRZLgorIy0gQWRkZWQgcmVmLmNsYXNzIHRvIHRlcm1kZWYucGNkLm1peC4KKyMxOTk3LTA5LTE0OiBtYWxlcgorIy0gQ2hhbmdlZCBtYWluIGF0dHJpYnV0ZSBvZiB4dGVybXJlZiBmcm9tIGRlZiB0byBocmVmLgorIy0gQWRkZWQgdGVybWRlZi5jbGFzcyB0byBsYWJlbCBjb250ZW50cy4KKyMxOTk3LTA5LTMwOiBtYWxlcgorIy0gQWRkZWQgY2hhcmFjdGVyIGVudGl0eSBtb2R1bGUgYW5kIGFkZGVkIG5ldyBlbnRpdGllcy4KKyMtIFJlbW92ZWQgcCBmcm9tIGFwcGVhcmluZyBkaXJlY3RseSBpbiBzZWxmOyBjcmVhdGVkICVwLm1peDsuCisjLSBBZGRlZCBpbmZvcm0tZGl2IChub24tbm9ybWF0aXZlIGRpdmlzaW9uKSBlbGVtZW50LgorIy0gRml4ZWQgeHRlcm1yZWYgY29tbWVudCB0byBtZW50aW9uIEhSRUYsIG5vdCByZWYuCisjLSBFeHRlbmRlZCBvcmdsaXN0IG1vZGVsIHRvIGFsbG93IG9wdGlvbmFsIGFmZmlsaWF0aW9uLgorIy0gTW9kaWZpZWQgYXV0aG9yIHRvIG1ha2UgYWZmaWxpYXRpb24gb3B0aW9uYWwuCisjLSBBZGRlZCAlc3BlY2xpc3QuY2xhc3M7IGFuZCAlbm90ZS5jbGFzczsgdG8gJW9iai5taXg7IGFuZCAlcC5taXg7LgorIy0gQWRkZWQgJW5vdGUuY2xhc3M7IGFuZCAlaWxsdXMuY2xhc3M7IHRvICV0ZXJtZGVmLnBjZC5taXg7LgorIy0gQWRkZWQgdW51c2VkIEhUTUwgZWxlbWVudHMuCisjLSBQdXQgZW1wdHkgc3lzdGVtIElEIG5leHQgdG8gcHVibGljIElEIGluIGVudGl0eSBkZWNsYXJhdGlvbnMuCisjMTk5Ny0xMC0xNDogbWFsZXIKKyMtIEZpeGVkICJ1bnVzZWQiIGRpdiBjb250ZW50IG1vZGVsIHRvIG1vdmUgbmVzdGVkIGRpdiB0byBtaXh0dXJlLgorIzE5OTctMTAtMTY6IG1hbGVyCisjLSBBZGRlZCBTR01MIE9wZW4gRXhjaGFuZ2UgdGFibGVzLgorIzE5OTctMTEtMjg6IG1hbGVyCisjLSBBZGRlZCBzdXBwb3J0IGZvciBwcm9kZ3JvdXAgYW5kIGl0cyBhdHRyaWJ1dGVzLgorIy0gQWRkZWQgc3VwcG9ydCBmb3IgSFRNTCB0YWJsZXMuCisjLSBBZGRlZCBsb2MgYW5kIGJpYnJlZiB0byBjb250ZW50IG9mIGNvbS4KKyMtIEFkZGVkIGxvYyB0byBnZW5lcmFsIHAgY29udGVudCBtb2RlbHMuCisjLSBBbGxvd2VkIHAgYXMgYWx0ZXJuYXRpdmUgdG8gc3RhdHVzcCBpbiBzdGF0dXMuCisjLSBBZGRlZCBub24tbnVsbCBzeXN0ZW0gSURzIHRvIGV4dGVybmFsIHBhcmFtZXRlciBlbnRpdHkgZGVjbGFyYXRpb25zLgorIy0gKE1vZGlmaWVkIHRoZSBTR01MIE9wZW4gdGFibGUgbW9kdWxlIHRvIG1ha2UgaXQgWE1MLWNvbXBsaWFudC4pCisjLSAoTW9kaWZpZWQgdGhlIGNoYXJhY3RlciBlbnRpdHkgbW9kdWxlLikKKyMxOTk3LTEyLTI5OiBtYWxlcgorIy0gTW92ZWQgI1BDREFUQSBvY2N1cnJlbmNlcyB0byBjb21lIGJlZm9yZSBHSXMgaW4gY29udGVudCBtb2RlbHMuCisjLSBSZW1vdmVkIHVzZSBvZiB0aGUgU0dNTCBPcGVuIHRhYmxlIG1vZHVsZS4KKyMtIEFkZGVkIHhzcGVjcmVmIGVsZW1lbnQuCisjLSBFbnN1cmVkIHRoYXQgYWxsIEZQSXMgY29udGFpbiA0LWRpZ2l0IHllYXIuCisjLSAoTW9kaWZpZWQgdGhlIGNoYXJhY3RlciBlbnRpdHkgbW9kdWxlLikKKyMxOTk3LTAzLTEwOiBtYWxlcgorIy0gTWVyZ2VkIHRoZSBjaGFyYWN0ZXIgZW50aXR5IGFuZCB0YWJsZSBtb2R1bGVzIGludG8gdGhlIG1haW4gZmlsZS4KKyMtIEFkZGVkIGxkcXVvIGFuZCByZHF1byBlbnRpdGllcy4KKyMtIEFkZGVkIGNvbW1vbiBhdHRyaWJ1dGVzIHRvIHByb2Rncm91cC4KKyMtIE1hZGUgdGhlIGVtYWlsIGVsZW1lbnQgaW4gaGVhZGVyIG9wdGlvbmFsLgorIy0gUmVtb3ZlZCByZWZlcmVuY2UgdG8gdGhlIFNHTUwgT3BlbiB0YWJsZSBtb2RlbC4KKyMtIEFkZGVkIGVkbm90ZSBlbGVtZW50LgorIy0gQWRkZWQgcXVvdGUgZWxlbWVudC4KKyMtIFVwZGF0ZWQgWExpbmsgdXNhZ2UgdG8gcmVmbGVjdCAzIE1hcmNoIDE5OTggV0QuCisjLSBBZGRlZCAibG9jYWwiIGVudGl0aWVzIHRvIHRoZSBjbGFzcyBlbnRpdGllcyBmb3IgY3VzdG9taXphdGlvbi4KKyMtIFBhcmFtZXRlcml6ZWQgc2V2ZXJhbCBjb250ZW50IG1vZGVscyB0byBhbGxvdyBmb3IgY3VzdG9taXphdGlvbi4KKyMxOTk3LTAzLTIzOiBtYWxlcgorIy0gQ2xlYW5lZCB1cCBzb21lIGNvbW1lbnRzIGFuZCByZW1vdmVkIHNvbWUgb3RoZXJzLgorIy0gQWRkZWQgeG1sOnNwYWNlIHNlbWktY29tbW9uIGF0dHJpYnV0ZSB0byBlZyBhbmQgYm5mIGVsZW1lbnRzLgorIy0gQWRkZWQgc2hvdyBhbmQgZW1iZWQgYXR0cmlidXRlcyBvbiBhbGwgdGhlIHVzZXMgb2YgaHJlZi4KKyMtIEFkZGVkICVjb21tb24uYXR0OyB0byBhbGwgSFRNTCB0YWJsZSBlbGVtZW50cy4KKyMtIEFkZGVkIGEgcmVhbCBVUkkgdG8gdGhlICJ0eXBpY2FsIGludm9jYXRpb24iIGNvbW1lbnQuCistLT4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVuZCBvZiBYTUwgc3BlY2lmaWNhdGlvbiBEVEQgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvdXRmMTZiLmVudCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3V0ZjE2Yi5lbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJjN2UyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3V0ZjE2Yi5lbnQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMvdXRmMTZsLmVudCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3V0ZjE2bC5lbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNhZDQwYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3V0ZjE2bC5lbnQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwtbGF0MS5lbnQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy94aHRtbC1sYXQxLmVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWFlNzM4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwtbGF0MS5lbnQKQEAgLTAsMCArMSwxOTYgQEAKKzwhLS0gUG9ydGlvbnMgKEMpIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gMTk4NgorICAgICBQZXJtaXNzaW9uIHRvIGNvcHkgaW4gYW55IGZvcm0gaXMgZ3JhbnRlZCBmb3IgdXNlIHdpdGgKKyAgICAgY29uZm9ybWluZyBTR01MIHN5c3RlbXMgYW5kIGFwcGxpY2F0aW9ucyBhcyBkZWZpbmVkIGluCisgICAgIElTTyA4ODc5LCBwcm92aWRlZCB0aGlzIG5vdGljZSBpcyBpbmNsdWRlZCBpbiBhbGwgY29waWVzLgorLS0+Cis8IS0tIENoYXJhY3RlciBlbnRpdHkgc2V0LiBUeXBpY2FsIGludm9jYXRpb246CisgICAgPCFFTlRJVFkgJSBIVE1MbGF0MSBQVUJMSUMKKyAgICAgICAiLS8vVzNDLy9FTlRJVElFUyBMYXRpbiAxIGZvciBYSFRNTC8vRU4iCisgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwtbGF0MS5lbnQiPgorICAgICVIVE1MbGF0MTsKKy0tPgorCis8IUVOVElUWSBuYnNwICAgIiYjMTYwOyI+IDwhLS0gbm8tYnJlYWsgc3BhY2UgPSBub24tYnJlYWtpbmcgc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEEwIElTT251bSAtLT4KKzwhRU5USVRZIGlleGNsICAiJiMxNjE7Ij4gPCEtLSBpbnZlcnRlZCBleGNsYW1hdGlvbiBtYXJrLCBVKzAwQTEgSVNPbnVtIC0tPgorPCFFTlRJVFkgY2VudCAgICImIzE2MjsiPiA8IS0tIGNlbnQgc2lnbiwgVSswMEEyIElTT251bSAtLT4KKzwhRU5USVRZIHBvdW5kICAiJiMxNjM7Ij4gPCEtLSBwb3VuZCBzaWduLCBVKzAwQTMgSVNPbnVtIC0tPgorPCFFTlRJVFkgY3VycmVuICImIzE2NDsiPiA8IS0tIGN1cnJlbmN5IHNpZ24sIFUrMDBBNCBJU09udW0gLS0+Cis8IUVOVElUWSB5ZW4gICAgIiYjMTY1OyI+IDwhLS0geWVuIHNpZ24gPSB5dWFuIHNpZ24sIFUrMDBBNSBJU09udW0gLS0+Cis8IUVOVElUWSBicnZiYXIgIiYjMTY2OyI+IDwhLS0gYnJva2VuIGJhciA9IGJyb2tlbiB2ZXJ0aWNhbCBiYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEE2IElTT251bSAtLT4KKzwhRU5USVRZIHNlY3QgICAiJiMxNjc7Ij4gPCEtLSBzZWN0aW9uIHNpZ24sIFUrMDBBNyBJU09udW0gLS0+Cis8IUVOVElUWSB1bWwgICAgIiYjMTY4OyI+IDwhLS0gZGlhZXJlc2lzID0gc3BhY2luZyBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEE4IElTT2RpYSAtLT4KKzwhRU5USVRZIGNvcHkgICAiJiMxNjk7Ij4gPCEtLSBjb3B5cmlnaHQgc2lnbiwgVSswMEE5IElTT251bSAtLT4KKzwhRU5USVRZIG9yZGYgICAiJiMxNzA7Ij4gPCEtLSBmZW1pbmluZSBvcmRpbmFsIGluZGljYXRvciwgVSswMEFBIElTT251bSAtLT4KKzwhRU5USVRZIGxhcXVvICAiJiMxNzE7Ij4gPCEtLSBsZWZ0LXBvaW50aW5nIGRvdWJsZSBhbmdsZSBxdW90YXRpb24gbWFyaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbGVmdCBwb2ludGluZyBndWlsbGVtZXQsIFUrMDBBQiBJU09udW0gLS0+Cis8IUVOVElUWSBub3QgICAgIiYjMTcyOyI+IDwhLS0gbm90IHNpZ24gPSBkaXNjcmV0aW9uYXJ5IGh5cGhlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQUMgSVNPbnVtIC0tPgorPCFFTlRJVFkgc2h5ICAgICImIzE3MzsiPiA8IS0tIHNvZnQgaHlwaGVuID0gZGlzY3JldGlvbmFyeSBoeXBoZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEFEIElTT251bSAtLT4KKzwhRU5USVRZIHJlZyAgICAiJiMxNzQ7Ij4gPCEtLSByZWdpc3RlcmVkIHNpZ24gPSByZWdpc3RlcmVkIHRyYWRlIG1hcmsgc2lnbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQUUgSVNPbnVtIC0tPgorPCFFTlRJVFkgbWFjciAgICImIzE3NTsiPiA8IS0tIG1hY3JvbiA9IHNwYWNpbmcgbWFjcm9uID0gb3ZlcmxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFQTCBvdmVyYmFyLCBVKzAwQUYgSVNPZGlhIC0tPgorPCFFTlRJVFkgZGVnICAgICImIzE3NjsiPiA8IS0tIGRlZ3JlZSBzaWduLCBVKzAwQjAgSVNPbnVtIC0tPgorPCFFTlRJVFkgcGx1c21uICImIzE3NzsiPiA8IS0tIHBsdXMtbWludXMgc2lnbiA9IHBsdXMtb3ItbWludXMgc2lnbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQjEgSVNPbnVtIC0tPgorPCFFTlRJVFkgc3VwMiAgICImIzE3ODsiPiA8IS0tIHN1cGVyc2NyaXB0IHR3byA9IHN1cGVyc2NyaXB0IGRpZ2l0IHR3bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc3F1YXJlZCwgVSswMEIyIElTT251bSAtLT4KKzwhRU5USVRZIHN1cDMgICAiJiMxNzk7Ij4gPCEtLSBzdXBlcnNjcmlwdCB0aHJlZSA9IHN1cGVyc2NyaXB0IGRpZ2l0IHRocmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBjdWJlZCwgVSswMEIzIElTT251bSAtLT4KKzwhRU5USVRZIGFjdXRlICAiJiMxODA7Ij4gPCEtLSBhY3V0ZSBhY2NlbnQgPSBzcGFjaW5nIGFjdXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBCNCBJU09kaWEgLS0+Cis8IUVOVElUWSBtaWNybyAgIiYjMTgxOyI+IDwhLS0gbWljcm8gc2lnbiwgVSswMEI1IElTT251bSAtLT4KKzwhRU5USVRZIHBhcmEgICAiJiMxODI7Ij4gPCEtLSBwaWxjcm93IHNpZ24gPSBwYXJhZ3JhcGggc2lnbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQjYgSVNPbnVtIC0tPgorPCFFTlRJVFkgbWlkZG90ICImIzE4MzsiPiA8IS0tIG1pZGRsZSBkb3QgPSBHZW9yZ2lhbiBjb21tYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gR3JlZWsgbWlkZGxlIGRvdCwgVSswMEI3IElTT251bSAtLT4KKzwhRU5USVRZIGNlZGlsICAiJiMxODQ7Ij4gPCEtLSBjZWRpbGxhID0gc3BhY2luZyBjZWRpbGxhLCBVKzAwQjggSVNPZGlhIC0tPgorPCFFTlRJVFkgc3VwMSAgICImIzE4NTsiPiA8IS0tIHN1cGVyc2NyaXB0IG9uZSA9IHN1cGVyc2NyaXB0IGRpZ2l0IG9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQjkgSVNPbnVtIC0tPgorPCFFTlRJVFkgb3JkbSAgICImIzE4NjsiPiA8IS0tIG1hc2N1bGluZSBvcmRpbmFsIGluZGljYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQkEgSVNPbnVtIC0tPgorPCFFTlRJVFkgcmFxdW8gICImIzE4NzsiPiA8IS0tIHJpZ2h0LXBvaW50aW5nIGRvdWJsZSBhbmdsZSBxdW90YXRpb24gbWFyaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gcmlnaHQgcG9pbnRpbmcgZ3VpbGxlbWV0LCBVKzAwQkIgSVNPbnVtIC0tPgorPCFFTlRJVFkgZnJhYzE0ICImIzE4ODsiPiA8IS0tIHZ1bGdhciBmcmFjdGlvbiBvbmUgcXVhcnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZnJhY3Rpb24gb25lIHF1YXJ0ZXIsIFUrMDBCQyBJU09udW0gLS0+Cis8IUVOVElUWSBmcmFjMTIgIiYjMTg5OyI+IDwhLS0gdnVsZ2FyIGZyYWN0aW9uIG9uZSBoYWxmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmcmFjdGlvbiBvbmUgaGFsZiwgVSswMEJEIElTT251bSAtLT4KKzwhRU5USVRZIGZyYWMzNCAiJiMxOTA7Ij4gPCEtLSB2dWxnYXIgZnJhY3Rpb24gdGhyZWUgcXVhcnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGZyYWN0aW9uIHRocmVlIHF1YXJ0ZXJzLCBVKzAwQkUgSVNPbnVtIC0tPgorPCFFTlRJVFkgaXF1ZXN0ICImIzE5MTsiPiA8IS0tIGludmVydGVkIHF1ZXN0aW9uIG1hcmsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHR1cm5lZCBxdWVzdGlvbiBtYXJrLCBVKzAwQkYgSVNPbnVtIC0tPgorPCFFTlRJVFkgQWdyYXZlICImIzE5MjsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIEEgd2l0aCBncmF2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgQSBncmF2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQzAgSVNPbGF0MSAtLT4KKzwhRU5USVRZIEFhY3V0ZSAiJiMxOTM7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBBIHdpdGggYWN1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEMxIElTT2xhdDEgLS0+Cis8IUVOVElUWSBBY2lyYyAgIiYjMTk0OyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgQSB3aXRoIGNpcmN1bWZsZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEMyIElTT2xhdDEgLS0+Cis8IUVOVElUWSBBdGlsZGUgIiYjMTk1OyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgQSB3aXRoIHRpbGRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBDMyBJU09sYXQxIC0tPgorPCFFTlRJVFkgQXVtbCAgICImIzE5NjsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIEEgd2l0aCBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEM0IElTT2xhdDEgLS0+Cis8IUVOVElUWSBBcmluZyAgIiYjMTk3OyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgQSB3aXRoIHJpbmcgYWJvdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGxhdGluIGNhcGl0YWwgbGV0dGVyIEEgcmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQzUgSVNPbGF0MSAtLT4KKzwhRU5USVRZIEFFbGlnICAiJiMxOTg7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBBRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbGF0aW4gY2FwaXRhbCBsaWdhdHVyZSBBRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQzYgSVNPbGF0MSAtLT4KKzwhRU5USVRZIENjZWRpbCAiJiMxOTk7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBDIHdpdGggY2VkaWxsYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQzcgSVNPbGF0MSAtLT4KKzwhRU5USVRZIEVncmF2ZSAiJiMyMDA7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBFIHdpdGggZ3JhdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEM4IElTT2xhdDEgLS0+Cis8IUVOVElUWSBFYWN1dGUgIiYjMjAxOyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgRSB3aXRoIGFjdXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBDOSBJU09sYXQxIC0tPgorPCFFTlRJVFkgRWNpcmMgICImIzIwMjsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIEUgd2l0aCBjaXJjdW1mbGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBDQSBJU09sYXQxIC0tPgorPCFFTlRJVFkgRXVtbCAgICImIzIwMzsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIEUgd2l0aCBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMENCIElTT2xhdDEgLS0+Cis8IUVOVElUWSBJZ3JhdmUgIiYjMjA0OyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgSSB3aXRoIGdyYXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBDQyBJU09sYXQxIC0tPgorPCFFTlRJVFkgSWFjdXRlICImIzIwNTsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIEkgd2l0aCBhY3V0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQ0QgSVNPbGF0MSAtLT4KKzwhRU5USVRZIEljaXJjICAiJiMyMDY7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBJIHdpdGggY2lyY3VtZmxleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwQ0UgSVNPbGF0MSAtLT4KKzwhRU5USVRZIEl1bWwgICAiJiMyMDc7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBJIHdpdGggZGlhZXJlc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBDRiBJU09sYXQxIC0tPgorPCFFTlRJVFkgRVRIICAgICImIzIwODsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIEVUSCwgVSswMEQwIElTT2xhdDEgLS0+Cis8IUVOVElUWSBOdGlsZGUgIiYjMjA5OyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgTiB3aXRoIHRpbGRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBEMSBJU09sYXQxIC0tPgorPCFFTlRJVFkgT2dyYXZlICImIzIxMDsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIE8gd2l0aCBncmF2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRDIgSVNPbGF0MSAtLT4KKzwhRU5USVRZIE9hY3V0ZSAiJiMyMTE7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBPIHdpdGggYWN1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEQzIElTT2xhdDEgLS0+Cis8IUVOVElUWSBPY2lyYyAgIiYjMjEyOyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgTyB3aXRoIGNpcmN1bWZsZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEQ0IElTT2xhdDEgLS0+Cis8IUVOVElUWSBPdGlsZGUgIiYjMjEzOyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgTyB3aXRoIHRpbGRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBENSBJU09sYXQxIC0tPgorPCFFTlRJVFkgT3VtbCAgICImIzIxNDsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIE8gd2l0aCBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEQ2IElTT2xhdDEgLS0+Cis8IUVOVElUWSB0aW1lcyAgIiYjMjE1OyI+IDwhLS0gbXVsdGlwbGljYXRpb24gc2lnbiwgVSswMEQ3IElTT251bSAtLT4KKzwhRU5USVRZIE9zbGFzaCAiJiMyMTY7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBPIHdpdGggc3Ryb2tlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBsYXRpbiBjYXBpdGFsIGxldHRlciBPIHNsYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBEOCBJU09sYXQxIC0tPgorPCFFTlRJVFkgVWdyYXZlICImIzIxNzsiPiA8IS0tIGxhdGluIGNhcGl0YWwgbGV0dGVyIFUgd2l0aCBncmF2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRDkgSVNPbGF0MSAtLT4KKzwhRU5USVRZIFVhY3V0ZSAiJiMyMTg7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBVIHdpdGggYWN1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMERBIElTT2xhdDEgLS0+Cis8IUVOVElUWSBVY2lyYyAgIiYjMjE5OyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgVSB3aXRoIGNpcmN1bWZsZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMERCIElTT2xhdDEgLS0+Cis8IUVOVElUWSBVdW1sICAgIiYjMjIwOyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgVSB3aXRoIGRpYWVyZXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwREMgSVNPbGF0MSAtLT4KKzwhRU5USVRZIFlhY3V0ZSAiJiMyMjE7Ij4gPCEtLSBsYXRpbiBjYXBpdGFsIGxldHRlciBZIHdpdGggYWN1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEREIElTT2xhdDEgLS0+Cis8IUVOVElUWSBUSE9STiAgIiYjMjIyOyI+IDwhLS0gbGF0aW4gY2FwaXRhbCBsZXR0ZXIgVEhPUk4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMERFIElTT2xhdDEgLS0+Cis8IUVOVElUWSBzemxpZyAgIiYjMjIzOyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIHNoYXJwIHMgPSBlc3MtemVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBERiBJU09sYXQxIC0tPgorPCFFTlRJVFkgYWdyYXZlICImIzIyNDsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggZ3JhdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGxhdGluIHNtYWxsIGxldHRlciBhIGdyYXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBFMCBJU09sYXQxIC0tPgorPCFFTlRJVFkgYWFjdXRlICImIzIyNTsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggYWN1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEUxIElTT2xhdDEgLS0+Cis8IUVOVElUWSBhY2lyYyAgIiYjMjI2OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIGEgd2l0aCBjaXJjdW1mbGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBFMiBJU09sYXQxIC0tPgorPCFFTlRJVFkgYXRpbGRlICImIzIyNzsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBhIHdpdGggdGlsZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEUzIElTT2xhdDEgLS0+Cis8IUVOVElUWSBhdW1sICAgIiYjMjI4OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIGEgd2l0aCBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEU0IElTT2xhdDEgLS0+Cis8IUVOVElUWSBhcmluZyAgIiYjMjI5OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIGEgd2l0aCByaW5nIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBsYXRpbiBzbWFsbCBsZXR0ZXIgYSByaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBFNSBJU09sYXQxIC0tPgorPCFFTlRJVFkgYWVsaWcgICImIzIzMDsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBhZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbGF0aW4gc21hbGwgbGlnYXR1cmUgYWUsIFUrMDBFNiBJU09sYXQxIC0tPgorPCFFTlRJVFkgY2NlZGlsICImIzIzMTsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBjIHdpdGggY2VkaWxsYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRTcgSVNPbGF0MSAtLT4KKzwhRU5USVRZIGVncmF2ZSAiJiMyMzI7Ij4gPCEtLSBsYXRpbiBzbWFsbCBsZXR0ZXIgZSB3aXRoIGdyYXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBFOCBJU09sYXQxIC0tPgorPCFFTlRJVFkgZWFjdXRlICImIzIzMzsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBlIHdpdGggYWN1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEU5IElTT2xhdDEgLS0+Cis8IUVOVElUWSBlY2lyYyAgIiYjMjM0OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIGUgd2l0aCBjaXJjdW1mbGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBFQSBJU09sYXQxIC0tPgorPCFFTlRJVFkgZXVtbCAgICImIzIzNTsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBlIHdpdGggZGlhZXJlc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBFQiBJU09sYXQxIC0tPgorPCFFTlRJVFkgaWdyYXZlICImIzIzNjsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBpIHdpdGggZ3JhdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEVDIElTT2xhdDEgLS0+Cis8IUVOVElUWSBpYWN1dGUgIiYjMjM3OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIGkgd2l0aCBhY3V0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRUQgSVNPbGF0MSAtLT4KKzwhRU5USVRZIGljaXJjICAiJiMyMzg7Ij4gPCEtLSBsYXRpbiBzbWFsbCBsZXR0ZXIgaSB3aXRoIGNpcmN1bWZsZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEVFIElTT2xhdDEgLS0+Cis8IUVOVElUWSBpdW1sICAgIiYjMjM5OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIGkgd2l0aCBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEVGIElTT2xhdDEgLS0+Cis8IUVOVElUWSBldGggICAgIiYjMjQwOyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIGV0aCwgVSswMEYwIElTT2xhdDEgLS0+Cis8IUVOVElUWSBudGlsZGUgIiYjMjQxOyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIG4gd2l0aCB0aWxkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRjEgSVNPbGF0MSAtLT4KKzwhRU5USVRZIG9ncmF2ZSAiJiMyNDI7Ij4gPCEtLSBsYXRpbiBzbWFsbCBsZXR0ZXIgbyB3aXRoIGdyYXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBGMiBJU09sYXQxIC0tPgorPCFFTlRJVFkgb2FjdXRlICImIzI0MzsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBvIHdpdGggYWN1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEYzIElTT2xhdDEgLS0+Cis8IUVOVElUWSBvY2lyYyAgIiYjMjQ0OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIG8gd2l0aCBjaXJjdW1mbGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBGNCBJU09sYXQxIC0tPgorPCFFTlRJVFkgb3RpbGRlICImIzI0NTsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciBvIHdpdGggdGlsZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEY1IElTT2xhdDEgLS0+Cis8IUVOVElUWSBvdW1sICAgIiYjMjQ2OyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIG8gd2l0aCBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEY2IElTT2xhdDEgLS0+Cis8IUVOVElUWSBkaXZpZGUgIiYjMjQ3OyI+IDwhLS0gZGl2aXNpb24gc2lnbiwgVSswMEY3IElTT251bSAtLT4KKzwhRU5USVRZIG9zbGFzaCAiJiMyNDg7Ij4gPCEtLSBsYXRpbiBzbWFsbCBsZXR0ZXIgbyB3aXRoIHN0cm9rZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGxhdGluIHNtYWxsIGxldHRlciBvIHNsYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDBGOCBJU09sYXQxIC0tPgorPCFFTlRJVFkgdWdyYXZlICImIzI0OTsiPiA8IS0tIGxhdGluIHNtYWxsIGxldHRlciB1IHdpdGggZ3JhdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEY5IElTT2xhdDEgLS0+Cis8IUVOVElUWSB1YWN1dGUgIiYjMjUwOyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIHUgd2l0aCBhY3V0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRkEgSVNPbGF0MSAtLT4KKzwhRU5USVRZIHVjaXJjICAiJiMyNTE7Ij4gPCEtLSBsYXRpbiBzbWFsbCBsZXR0ZXIgdSB3aXRoIGNpcmN1bWZsZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEZCIElTT2xhdDEgLS0+Cis8IUVOVElUWSB1dW1sICAgIiYjMjUyOyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIHUgd2l0aCBkaWFlcmVzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMEZDIElTT2xhdDEgLS0+Cis8IUVOVElUWSB5YWN1dGUgIiYjMjUzOyI+IDwhLS0gbGF0aW4gc21hbGwgbGV0dGVyIHkgd2l0aCBhY3V0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRkQgSVNPbGF0MSAtLT4KKzwhRU5USVRZIHRob3JuICAiJiMyNTQ7Ij4gPCEtLSBsYXRpbiBzbWFsbCBsZXR0ZXIgdGhvcm4gd2l0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRkUgSVNPbGF0MSAtLT4KKzwhRU5USVRZIHl1bWwgICAiJiMyNTU7Ij4gPCEtLSBsYXRpbiBzbWFsbCBsZXR0ZXIgeSB3aXRoIGRpYWVyZXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAwRkYgSVNPbGF0MSAtLT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sLXNwZWNpYWwuZW50IGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwtc3BlY2lhbC5lbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y3MDlkMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sLXNwZWNpYWwuZW50CkBAIC0wLDAgKzEsNzkgQEAKKzwhLS0gU3BlY2lhbCBjaGFyYWN0ZXJzIGZvciBIVE1MIC0tPgorCis8IS0tIENoYXJhY3RlciBlbnRpdHkgc2V0LiBUeXBpY2FsIGludm9jYXRpb246CisgICAgIDwhRU5USVRZICUgSFRNTHNwZWNpYWwgUFVCTElDCisgICAgICAgICItLy9XM0MvL0VOVElUSUVTIFNwZWNpYWwgZm9yIFhIVE1MLy9FTiIKKyAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwtc3BlY2lhbC5lbnQiPgorICAgICAlSFRNTHNwZWNpYWw7CistLT4KKworPCEtLSBQb3J0aW9ucyAoQykgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiAxOTg2OgorICAgICBQZXJtaXNzaW9uIHRvIGNvcHkgaW4gYW55IGZvcm0gaXMgZ3JhbnRlZCBmb3IgdXNlIHdpdGgKKyAgICAgY29uZm9ybWluZyBTR01MIHN5c3RlbXMgYW5kIGFwcGxpY2F0aW9ucyBhcyBkZWZpbmVkIGluCisgICAgIElTTyA4ODc5LCBwcm92aWRlZCB0aGlzIG5vdGljZSBpcyBpbmNsdWRlZCBpbiBhbGwgY29waWVzLgorLS0+CisKKzwhLS0gUmVsZXZhbnQgSVNPIGVudGl0eSBzZXQgaXMgZ2l2ZW4gdW5sZXNzIG5hbWVzIGFyZSBuZXdseSBpbnRyb2R1Y2VkLgorICAgICBOZXcgbmFtZXMgKGkuZS4sIG5vdCBpbiBJU08gODg3OSBsaXN0KSBkbyBub3QgY2xhc2ggd2l0aCBhbnkKKyAgICAgZXhpc3RpbmcgSVNPIDg4NzkgZW50aXR5IG5hbWVzLiBJU08gMTA2NDYgY2hhcmFjdGVyIG51bWJlcnMKKyAgICAgYXJlIGdpdmVuIGZvciBlYWNoIGNoYXJhY3RlciwgaW4gaGV4LiB2YWx1ZXMgYXJlIGRlY2ltYWwKKyAgICAgY29udmVyc2lvbnMgb2YgdGhlIElTTyAxMDY0NiB2YWx1ZXMgYW5kIHJlZmVyIHRvIHRoZSBkb2N1bWVudAorICAgICBjaGFyYWN0ZXIgc2V0LiBOYW1lcyBhcmUgVW5pY29kZSBuYW1lcy4gCistLT4KKworPCEtLSBDMCBDb250cm9scyBhbmQgQmFzaWMgTGF0aW4gLS0+Cis8IUVOVElUWSBxdW90ICAgICImIzM0OyI+IDwhLS0gIHF1b3RhdGlvbiBtYXJrID0gQVBMIHF1b3RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMDIyIElTT251bSAtLT4KKzwhRU5USVRZIGFtcCAgICAgIiYjMzg7IzM4OyI+IDwhLS0gIGFtcGVyc2FuZCwgVSswMDI2IElTT251bSAtLT4KKzwhRU5USVRZIGx0ICAgICAgIiYjMzg7IzYwOyI+IDwhLS0gIGxlc3MtdGhhbiBzaWduLCBVKzAwM0MgSVNPbnVtIC0tPgorPCFFTlRJVFkgZ3QgICAgICAiJiM2MjsiPiA8IS0tICBncmVhdGVyLXRoYW4gc2lnbiwgVSswMDNFIElTT251bSAtLT4KKzwhRU5USVRZIGFwb3MJICImIzM5OyI+IDwhLS0gIGFwb3N0cm9waGUgbWFyaywgVSswMDI3IElTT251bSAtLT4KKworPCEtLSBMYXRpbiBFeHRlbmRlZC1BIC0tPgorPCFFTlRJVFkgT0VsaWcgICAiJiMzMzg7Ij4gPCEtLSAgbGF0aW4gY2FwaXRhbCBsaWdhdHVyZSBPRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDE1MiBJU09sYXQyIC0tPgorPCFFTlRJVFkgb2VsaWcgICAiJiMzMzk7Ij4gPCEtLSAgbGF0aW4gc21hbGwgbGlnYXR1cmUgb2UsIFUrMDE1MyBJU09sYXQyIC0tPgorPCEtLSBsaWdhdHVyZSBpcyBhIG1pc25vbWVyLCB0aGlzIGlzIGEgc2VwYXJhdGUgY2hhcmFjdGVyIGluIHNvbWUgbGFuZ3VhZ2VzIC0tPgorPCFFTlRJVFkgU2Nhcm9uICAiJiMzNTI7Ij4gPCEtLSAgbGF0aW4gY2FwaXRhbCBsZXR0ZXIgUyB3aXRoIGNhcm9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMTYwIElTT2xhdDIgLS0+Cis8IUVOVElUWSBzY2Fyb24gICImIzM1MzsiPiA8IS0tICBsYXRpbiBzbWFsbCBsZXR0ZXIgcyB3aXRoIGNhcm9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMTYxIElTT2xhdDIgLS0+Cis8IUVOVElUWSBZdW1sICAgICImIzM3NjsiPiA8IS0tICBsYXRpbiBjYXBpdGFsIGxldHRlciBZIHdpdGggZGlhZXJlc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMTc4IElTT2xhdDIgLS0+CisKKzwhLS0gU3BhY2luZyBNb2RpZmllciBMZXR0ZXJzIC0tPgorPCFFTlRJVFkgY2lyYyAgICAiJiM3MTA7Ij4gPCEtLSAgbW9kaWZpZXIgbGV0dGVyIGNpcmN1bWZsZXggYWNjZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswMkM2IElTT3B1YiAtLT4KKzwhRU5USVRZIHRpbGRlICAgIiYjNzMyOyI+IDwhLS0gIHNtYWxsIHRpbGRlLCBVKzAyREMgSVNPZGlhIC0tPgorCis8IS0tIEdlbmVyYWwgUHVuY3R1YXRpb24gLS0+Cis8IUVOVElUWSBlbnNwICAgICImIzgxOTQ7Ij4gPCEtLSBlbiBzcGFjZSwgVSsyMDAyIElTT3B1YiAtLT4KKzwhRU5USVRZIGVtc3AgICAgIiYjODE5NTsiPiA8IS0tIGVtIHNwYWNlLCBVKzIwMDMgSVNPcHViIC0tPgorPCFFTlRJVFkgdGhpbnNwICAiJiM4MjAxOyI+IDwhLS0gdGhpbiBzcGFjZSwgVSsyMDA5IElTT3B1YiAtLT4KKzwhRU5USVRZIHp3bmogICAgIiYjODIwNDsiPiA8IS0tIHplcm8gd2lkdGggbm9uLWpvaW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjAwQyBORVcgUkZDIDIwNzAgLS0+Cis8IUVOVElUWSB6d2ogICAgICImIzgyMDU7Ij4gPCEtLSB6ZXJvIHdpZHRoIGpvaW5lciwgVSsyMDBEIE5FVyBSRkMgMjA3MCAtLT4KKzwhRU5USVRZIGxybSAgICAgIiYjODIwNjsiPiA8IS0tIGxlZnQtdG8tcmlnaHQgbWFyaywgVSsyMDBFIE5FVyBSRkMgMjA3MCAtLT4KKzwhRU5USVRZIHJsbSAgICAgIiYjODIwNzsiPiA8IS0tIHJpZ2h0LXRvLWxlZnQgbWFyaywgVSsyMDBGIE5FVyBSRkMgMjA3MCAtLT4KKzwhRU5USVRZIG5kYXNoICAgIiYjODIxMTsiPiA8IS0tIGVuIGRhc2gsIFUrMjAxMyBJU09wdWIgLS0+Cis8IUVOVElUWSBtZGFzaCAgICImIzgyMTI7Ij4gPCEtLSBlbSBkYXNoLCBVKzIwMTQgSVNPcHViIC0tPgorPCFFTlRJVFkgbHNxdW8gICAiJiM4MjE2OyI+IDwhLS0gbGVmdCBzaW5nbGUgcXVvdGF0aW9uIG1hcmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIwMTggSVNPbnVtIC0tPgorPCFFTlRJVFkgcnNxdW8gICAiJiM4MjE3OyI+IDwhLS0gcmlnaHQgc2luZ2xlIHF1b3RhdGlvbiBtYXJrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMDE5IElTT251bSAtLT4KKzwhRU5USVRZIHNicXVvICAgIiYjODIxODsiPiA8IS0tIHNpbmdsZSBsb3ctOSBxdW90YXRpb24gbWFyaywgVSsyMDFBIE5FVyAtLT4KKzwhRU5USVRZIGxkcXVvICAgIiYjODIyMDsiPiA8IS0tIGxlZnQgZG91YmxlIHF1b3RhdGlvbiBtYXJrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMDFDIElTT251bSAtLT4KKzwhRU5USVRZIHJkcXVvICAgIiYjODIyMTsiPiA8IS0tIHJpZ2h0IGRvdWJsZSBxdW90YXRpb24gbWFyaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjAxRCBJU09udW0gLS0+Cis8IUVOVElUWSBiZHF1byAgICImIzgyMjI7Ij4gPCEtLSBkb3VibGUgbG93LTkgcXVvdGF0aW9uIG1hcmssIFUrMjAxRSBORVcgLS0+Cis8IUVOVElUWSBkYWdnZXIgICImIzgyMjQ7Ij4gPCEtLSBkYWdnZXIsIFUrMjAyMCBJU09wdWIgLS0+Cis8IUVOVElUWSBEYWdnZXIgICImIzgyMjU7Ij4gPCEtLSBkb3VibGUgZGFnZ2VyLCBVKzIwMjEgSVNPcHViIC0tPgorPCFFTlRJVFkgcGVybWlsICAiJiM4MjQwOyI+IDwhLS0gcGVyIG1pbGxlIHNpZ24sIFUrMjAzMCBJU090ZWNoIC0tPgorPCFFTlRJVFkgbHNhcXVvICAiJiM4MjQ5OyI+IDwhLS0gc2luZ2xlIGxlZnQtcG9pbnRpbmcgYW5nbGUgcXVvdGF0aW9uIG1hcmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIwMzkgSVNPIHByb3Bvc2VkIC0tPgorPCEtLSBsc2FxdW8gaXMgcHJvcG9zZWQgYnV0IG5vdCB5ZXQgSVNPIHN0YW5kYXJkaXplZCAtLT4KKzwhRU5USVRZIHJzYXF1byAgIiYjODI1MDsiPiA8IS0tIHNpbmdsZSByaWdodC1wb2ludGluZyBhbmdsZSBxdW90YXRpb24gbWFyaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjAzQSBJU08gcHJvcG9zZWQgLS0+Cis8IS0tIHJzYXF1byBpcyBwcm9wb3NlZCBidXQgbm90IHlldCBJU08gc3RhbmRhcmRpemVkIC0tPgorPCFFTlRJVFkgZXVybyAgICImIzgzNjQ7Ij4gPCEtLSAgZXVybyBzaWduLCBVKzIwQUMgTkVXIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwtc3ltYm9sLmVudCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sLXN5bWJvbC5lbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZmODc2YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sLXN5bWJvbC5lbnQKQEAgLTAsMCArMSwyNDIgQEAKKzwhLS0gTWF0aGVtYXRpY2FsLCBHcmVlayBhbmQgU3ltYm9saWMgY2hhcmFjdGVycyBmb3IgSFRNTCAtLT4KKworPCEtLSBDaGFyYWN0ZXIgZW50aXR5IHNldC4gVHlwaWNhbCBpbnZvY2F0aW9uOgorICAgICA8IUVOVElUWSAlIEhUTUxzeW1ib2wgUFVCTElDCisgICAgICAgICItLy9XM0MvL0VOVElUSUVTIFN5bWJvbHMgZm9yIFhIVE1MLy9FTiIKKyAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwtc3ltYm9sLmVudCI+CisgICAgICVIVE1Mc3ltYm9sOworLS0+CisKKzwhLS0gUG9ydGlvbnMgKEMpIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gMTk4NjoKKyAgICAgUGVybWlzc2lvbiB0byBjb3B5IGluIGFueSBmb3JtIGlzIGdyYW50ZWQgZm9yIHVzZSB3aXRoCisgICAgIGNvbmZvcm1pbmcgU0dNTCBzeXN0ZW1zIGFuZCBhcHBsaWNhdGlvbnMgYXMgZGVmaW5lZCBpbgorICAgICBJU08gODg3OSwgcHJvdmlkZWQgdGhpcyBub3RpY2UgaXMgaW5jbHVkZWQgaW4gYWxsIGNvcGllcy4KKy0tPgorCis8IS0tIFJlbGV2YW50IElTTyBlbnRpdHkgc2V0IGlzIGdpdmVuIHVubGVzcyBuYW1lcyBhcmUgbmV3bHkgaW50cm9kdWNlZC4KKyAgICAgTmV3IG5hbWVzIChpLmUuLCBub3QgaW4gSVNPIDg4NzkgbGlzdCkgZG8gbm90IGNsYXNoIHdpdGggYW55CisgICAgIGV4aXN0aW5nIElTTyA4ODc5IGVudGl0eSBuYW1lcy4gSVNPIDEwNjQ2IGNoYXJhY3RlciBudW1iZXJzCisgICAgIGFyZSBnaXZlbiBmb3IgZWFjaCBjaGFyYWN0ZXIsIGluIGhleC4gdmFsdWVzIGFyZSBkZWNpbWFsCisgICAgIGNvbnZlcnNpb25zIG9mIHRoZSBJU08gMTA2NDYgdmFsdWVzIGFuZCByZWZlciB0byB0aGUgZG9jdW1lbnQKKyAgICAgY2hhcmFjdGVyIHNldC4gTmFtZXMgYXJlIFVuaWNvZGUgbmFtZXMuIAorLS0+CisKKzwhLS0gTGF0aW4gRXh0ZW5kZWQtQiAtLT4KKzwhRU5USVRZIGZub2YgICAgICImIzQwMjsiPiA8IS0tIGxhdGluIHNtYWxsIGYgd2l0aCBob29rID0gZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmxvcmluLCBVKzAxOTIgSVNPdGVjaCAtLT4KKworPCEtLSBHcmVlayAtLT4KKzwhRU5USVRZIEFscGhhICAgICImIzkxMzsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIGFscGhhLCBVKzAzOTEgLS0+Cis8IUVOVElUWSBCZXRhICAgICAiJiM5MTQ7Ij4gPCEtLSBncmVlayBjYXBpdGFsIGxldHRlciBiZXRhLCBVKzAzOTIgLS0+Cis8IUVOVElUWSBHYW1tYSAgICAiJiM5MTU7Ij4gPCEtLSBncmVlayBjYXBpdGFsIGxldHRlciBnYW1tYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDM5MyBJU09ncmszIC0tPgorPCFFTlRJVFkgRGVsdGEgICAgIiYjOTE2OyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgZGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzOTQgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIEVwc2lsb24gICImIzkxNzsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIGVwc2lsb24sIFUrMDM5NSAtLT4KKzwhRU5USVRZIFpldGEgICAgICImIzkxODsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIHpldGEsIFUrMDM5NiAtLT4KKzwhRU5USVRZIEV0YSAgICAgICImIzkxOTsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIGV0YSwgVSswMzk3IC0tPgorPCFFTlRJVFkgVGhldGEgICAgIiYjOTIwOyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgdGhldGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzOTggSVNPZ3JrMyAtLT4KKzwhRU5USVRZIElvdGEgICAgICImIzkyMTsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIGlvdGEsIFUrMDM5OSAtLT4KKzwhRU5USVRZIEthcHBhICAgICImIzkyMjsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIGthcHBhLCBVKzAzOUEgLS0+Cis8IUVOVElUWSBMYW1iZGEgICAiJiM5MjM7Ij4gPCEtLSBncmVlayBjYXBpdGFsIGxldHRlciBsYW1iZGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzOUIgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIE11ICAgICAgICImIzkyNDsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIG11LCBVKzAzOUMgLS0+Cis8IUVOVElUWSBOdSAgICAgICAiJiM5MjU7Ij4gPCEtLSBncmVlayBjYXBpdGFsIGxldHRlciBudSwgVSswMzlEIC0tPgorPCFFTlRJVFkgWGkgICAgICAgIiYjOTI2OyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgeGksIFUrMDM5RSBJU09ncmszIC0tPgorPCFFTlRJVFkgT21pY3JvbiAgIiYjOTI3OyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgb21pY3JvbiwgVSswMzlGIC0tPgorPCFFTlRJVFkgUGkgICAgICAgIiYjOTI4OyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgcGksIFUrMDNBMCBJU09ncmszIC0tPgorPCFFTlRJVFkgUmhvICAgICAgIiYjOTI5OyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgcmhvLCBVKzAzQTEgLS0+Cis8IS0tIHRoZXJlIGlzIG5vIFNpZ21hZiwgYW5kIG5vIFUrMDNBMiBjaGFyYWN0ZXIgZWl0aGVyIC0tPgorPCFFTlRJVFkgU2lnbWEgICAgIiYjOTMxOyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgc2lnbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQTMgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIFRhdSAgICAgICImIzkzMjsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIHRhdSwgVSswM0E0IC0tPgorPCFFTlRJVFkgVXBzaWxvbiAgIiYjOTMzOyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgdXBzaWxvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDNBNSBJU09ncmszIC0tPgorPCFFTlRJVFkgUGhpICAgICAgIiYjOTM0OyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgcGhpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswM0E2IElTT2dyazMgLS0+Cis8IUVOVElUWSBDaGkgICAgICAiJiM5MzU7Ij4gPCEtLSBncmVlayBjYXBpdGFsIGxldHRlciBjaGksIFUrMDNBNyAtLT4KKzwhRU5USVRZIFBzaSAgICAgICImIzkzNjsiPiA8IS0tIGdyZWVrIGNhcGl0YWwgbGV0dGVyIHBzaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDNBOCBJU09ncmszIC0tPgorPCFFTlRJVFkgT21lZ2EgICAgIiYjOTM3OyI+IDwhLS0gZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgb21lZ2EsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQTkgSVNPZ3JrMyAtLT4KKworPCFFTlRJVFkgYWxwaGEgICAgIiYjOTQ1OyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIGFscGhhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswM0IxIElTT2dyazMgLS0+Cis8IUVOVElUWSBiZXRhICAgICAiJiM5NDY7Ij4gPCEtLSBncmVlayBzbWFsbCBsZXR0ZXIgYmV0YSwgVSswM0IyIElTT2dyazMgLS0+Cis8IUVOVElUWSBnYW1tYSAgICAiJiM5NDc7Ij4gPCEtLSBncmVlayBzbWFsbCBsZXR0ZXIgZ2FtbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQjMgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIGRlbHRhICAgICImIzk0ODsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciBkZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDNCNCBJU09ncmszIC0tPgorPCFFTlRJVFkgZXBzaWxvbiAgIiYjOTQ5OyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIGVwc2lsb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQjUgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIHpldGEgICAgICImIzk1MDsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciB6ZXRhLCBVKzAzQjYgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIGV0YSAgICAgICImIzk1MTsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciBldGEsIFUrMDNCNyBJU09ncmszIC0tPgorPCFFTlRJVFkgdGhldGEgICAgIiYjOTUyOyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIHRoZXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswM0I4IElTT2dyazMgLS0+Cis8IUVOVElUWSBpb3RhICAgICAiJiM5NTM7Ij4gPCEtLSBncmVlayBzbWFsbCBsZXR0ZXIgaW90YSwgVSswM0I5IElTT2dyazMgLS0+Cis8IUVOVElUWSBrYXBwYSAgICAiJiM5NTQ7Ij4gPCEtLSBncmVlayBzbWFsbCBsZXR0ZXIga2FwcGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQkEgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIGxhbWJkYSAgICImIzk1NTsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciBsYW1iZGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQkIgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIG11ICAgICAgICImIzk1NjsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciBtdSwgVSswM0JDIElTT2dyazMgLS0+Cis8IUVOVElUWSBudSAgICAgICAiJiM5NTc7Ij4gPCEtLSBncmVlayBzbWFsbCBsZXR0ZXIgbnUsIFUrMDNCRCBJU09ncmszIC0tPgorPCFFTlRJVFkgeGkgICAgICAgIiYjOTU4OyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIHhpLCBVKzAzQkUgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIG9taWNyb24gICImIzk1OTsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciBvbWljcm9uLCBVKzAzQkYgTkVXIC0tPgorPCFFTlRJVFkgcGkgICAgICAgIiYjOTYwOyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIHBpLCBVKzAzQzAgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIHJobyAgICAgICImIzk2MTsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciByaG8sIFUrMDNDMSBJU09ncmszIC0tPgorPCFFTlRJVFkgc2lnbWFmICAgIiYjOTYyOyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIGZpbmFsIHNpZ21hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSswM0MyIElTT2dyazMgLS0+Cis8IUVOVElUWSBzaWdtYSAgICAiJiM5NjM7Ij4gPCEtLSBncmVlayBzbWFsbCBsZXR0ZXIgc2lnbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQzMgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIHRhdSAgICAgICImIzk2NDsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciB0YXUsIFUrMDNDNCBJU09ncmszIC0tPgorPCFFTlRJVFkgdXBzaWxvbiAgIiYjOTY1OyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIHVwc2lsb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzQzUgSVNPZ3JrMyAtLT4KKzwhRU5USVRZIHBoaSAgICAgICImIzk2NjsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciBwaGksIFUrMDNDNiBJU09ncmszIC0tPgorPCFFTlRJVFkgY2hpICAgICAgIiYjOTY3OyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIGNoaSwgVSswM0M3IElTT2dyazMgLS0+Cis8IUVOVElUWSBwc2kgICAgICAiJiM5Njg7Ij4gPCEtLSBncmVlayBzbWFsbCBsZXR0ZXIgcHNpLCBVKzAzQzggSVNPZ3JrMyAtLT4KKzwhRU5USVRZIG9tZWdhICAgICImIzk2OTsiPiA8IS0tIGdyZWVrIHNtYWxsIGxldHRlciBvbWVnYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDNDOSBJU09ncmszIC0tPgorPCFFTlRJVFkgdGhldGFzeW0gIiYjOTc3OyI+IDwhLS0gZ3JlZWsgc21hbGwgbGV0dGVyIHRoZXRhIHN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMDNEMSBORVcgLS0+Cis8IUVOVElUWSB1cHNpaCAgICAiJiM5Nzg7Ij4gPCEtLSBncmVlayB1cHNpbG9uIHdpdGggaG9vayBzeW1ib2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzAzRDIgTkVXIC0tPgorPCFFTlRJVFkgcGl2ICAgICAgIiYjOTgyOyI+IDwhLS0gZ3JlZWsgcGkgc3ltYm9sLCBVKzAzRDYgSVNPZ3JrMyAtLT4KKworPCEtLSBHZW5lcmFsIFB1bmN0dWF0aW9uIC0tPgorPCFFTlRJVFkgYnVsbCAgICAgIiYjODIyNjsiPiA8IS0tIGJ1bGxldCA9IGJsYWNrIHNtYWxsIGNpcmNsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIwMjIgSVNPcHViICAtLT4KKzwhLS0gYnVsbGV0IGlzIE5PVCB0aGUgc2FtZSBhcyBidWxsZXQgb3BlcmF0b3IsIFUrMjIxOSAtLT4KKzwhRU5USVRZIGhlbGxpcCAgICImIzgyMzA7Ij4gPCEtLSBob3Jpem9udGFsIGVsbGlwc2lzID0gdGhyZWUgZG90IGxlYWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIwMjYgSVNPcHViICAtLT4KKzwhRU5USVRZIHByaW1lICAgICImIzgyNDI7Ij4gPCEtLSBwcmltZSA9IG1pbnV0ZXMgPSBmZWV0LCBVKzIwMzIgSVNPdGVjaCAtLT4KKzwhRU5USVRZIFByaW1lICAgICImIzgyNDM7Ij4gPCEtLSBkb3VibGUgcHJpbWUgPSBzZWNvbmRzID0gaW5jaGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjAzMyBJU090ZWNoIC0tPgorPCFFTlRJVFkgb2xpbmUgICAgIiYjODI1NDsiPiA8IS0tIG92ZXJsaW5lID0gc3BhY2luZyBvdmVyc2NvcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMDNFIE5FVyAtLT4KKzwhRU5USVRZIGZyYXNsICAgICImIzgyNjA7Ij4gPCEtLSBmcmFjdGlvbiBzbGFzaCwgVSsyMDQ0IE5FVyAtLT4KKworPCEtLSBMZXR0ZXJsaWtlIFN5bWJvbHMgLS0+Cis8IUVOVElUWSB3ZWllcnAgICAiJiM4NDcyOyI+IDwhLS0gc2NyaXB0IGNhcGl0YWwgUCA9IHBvd2VyIHNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gV2VpZXJzdHJhc3MgcCwgVSsyMTE4IElTT2Ftc28gLS0+Cis8IUVOVElUWSBpbWFnZSAgICAiJiM4NDY1OyI+IDwhLS0gYmxhY2tsZXR0ZXIgY2FwaXRhbCBJID0gaW1hZ2luYXJ5IHBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMTExIElTT2Ftc28gLS0+Cis8IUVOVElUWSByZWFsICAgICAiJiM4NDc2OyI+IDwhLS0gYmxhY2tsZXR0ZXIgY2FwaXRhbCBSID0gcmVhbCBwYXJ0IHN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIxMUMgSVNPYW1zbyAtLT4KKzwhRU5USVRZIHRyYWRlICAgICImIzg0ODI7Ij4gPCEtLSB0cmFkZSBtYXJrIHNpZ24sIFUrMjEyMiBJU09udW0gLS0+Cis8IUVOVElUWSBhbGVmc3ltICAiJiM4NTAxOyI+IDwhLS0gYWxlZiBzeW1ib2wgPSBmaXJzdCB0cmFuc2Zpbml0ZSBjYXJkaW5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIxMzUgTkVXIC0tPgorPCEtLSBhbGVmIHN5bWJvbCBpcyBOT1QgdGhlIHNhbWUgYXMgaGVicmV3IGxldHRlciBhbGVmLAorICAgICBVKzA1RDAgYWx0aG91Z2ggdGhlIHNhbWUgZ2x5cGggY291bGQgYmUgdXNlZCB0byBkZXBpY3QgYm90aCBjaGFyYWN0ZXJzIC0tPgorCis8IS0tIEFycm93cyAtLT4KKzwhRU5USVRZIGxhcnIgICAgICImIzg1OTI7Ij4gPCEtLSBsZWZ0d2FyZHMgYXJyb3csIFUrMjE5MCBJU09udW0gLS0+Cis8IUVOVElUWSB1YXJyICAgICAiJiM4NTkzOyI+IDwhLS0gdXB3YXJkcyBhcnJvdywgVSsyMTkxIElTT251bS0tPgorPCFFTlRJVFkgcmFyciAgICAgIiYjODU5NDsiPiA8IS0tIHJpZ2h0d2FyZHMgYXJyb3csIFUrMjE5MiBJU09udW0gLS0+Cis8IUVOVElUWSBkYXJyICAgICAiJiM4NTk1OyI+IDwhLS0gZG93bndhcmRzIGFycm93LCBVKzIxOTMgSVNPbnVtIC0tPgorPCFFTlRJVFkgaGFyciAgICAgIiYjODU5NjsiPiA8IS0tIGxlZnQgcmlnaHQgYXJyb3csIFUrMjE5NCBJU09hbXNhIC0tPgorPCFFTlRJVFkgY3JhcnIgICAgIiYjODYyOTsiPiA8IS0tIGRvd253YXJkcyBhcnJvdyB3aXRoIGNvcm5lciBsZWZ0d2FyZHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNhcnJpYWdlIHJldHVybiwgVSsyMUI1IE5FVyAtLT4KKzwhRU5USVRZIGxBcnIgICAgICImIzg2NTY7Ij4gPCEtLSBsZWZ0d2FyZHMgZG91YmxlIGFycm93LCBVKzIxRDAgSVNPdGVjaCAtLT4KKzwhLS0gVW5pY29kZSBkb2VzIG5vdCBzYXkgdGhhdCBsQXJyIGlzIHRoZSBzYW1lIGFzIHRoZSAnaXMgaW1wbGllZCBieScgYXJyb3cKKyAgICBidXQgYWxzbyBkb2VzIG5vdCBoYXZlIGFueSBvdGhlciBjaGFyYWN0ZXIgZm9yIHRoYXQgZnVuY3Rpb24uIFNvID8gbEFyciBjYW4KKyAgICBiZSB1c2VkIGZvciAnaXMgaW1wbGllZCBieScgYXMgSVNPdGVjaCBzdWdnZXN0cyAtLT4KKzwhRU5USVRZIHVBcnIgICAgICImIzg2NTc7Ij4gPCEtLSB1cHdhcmRzIGRvdWJsZSBhcnJvdywgVSsyMUQxIElTT2Ftc2EgLS0+Cis8IUVOVElUWSByQXJyICAgICAiJiM4NjU4OyI+IDwhLS0gcmlnaHR3YXJkcyBkb3VibGUgYXJyb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMUQyIElTT3RlY2ggLS0+Cis8IS0tIFVuaWNvZGUgZG9lcyBub3Qgc2F5IHRoaXMgaXMgdGhlICdpbXBsaWVzJyBjaGFyYWN0ZXIgYnV0IGRvZXMgbm90IGhhdmUgCisgICAgIGFub3RoZXIgY2hhcmFjdGVyIHdpdGggdGhpcyBmdW5jdGlvbiBzbyA/CisgICAgIHJBcnIgY2FuIGJlIHVzZWQgZm9yICdpbXBsaWVzJyBhcyBJU090ZWNoIHN1Z2dlc3RzIC0tPgorPCFFTlRJVFkgZEFyciAgICAgIiYjODY1OTsiPiA8IS0tIGRvd253YXJkcyBkb3VibGUgYXJyb3csIFUrMjFEMyBJU09hbXNhIC0tPgorPCFFTlRJVFkgaEFyciAgICAgIiYjODY2MDsiPiA8IS0tIGxlZnQgcmlnaHQgZG91YmxlIGFycm93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjFENCBJU09hbXNhIC0tPgorCis8IS0tIE1hdGhlbWF0aWNhbCBPcGVyYXRvcnMgLS0+Cis8IUVOVElUWSBmb3JhbGwgICAiJiM4NzA0OyI+IDwhLS0gZm9yIGFsbCwgVSsyMjAwIElTT3RlY2ggLS0+Cis8IUVOVElUWSBwYXJ0ICAgICAiJiM4NzA2OyI+IDwhLS0gcGFydGlhbCBkaWZmZXJlbnRpYWwsIFUrMjIwMiBJU090ZWNoICAtLT4KKzwhRU5USVRZIGV4aXN0ICAgICImIzg3MDc7Ij4gPCEtLSB0aGVyZSBleGlzdHMsIFUrMjIwMyBJU090ZWNoIC0tPgorPCFFTlRJVFkgZW1wdHkgICAgIiYjODcwOTsiPiA8IS0tIGVtcHR5IHNldCA9IG51bGwgc2V0ID0gZGlhbWV0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMjA1IElTT2Ftc28gLS0+Cis8IUVOVElUWSBuYWJsYSAgICAiJiM4NzExOyI+IDwhLS0gbmFibGEgPSBiYWNrd2FyZCBkaWZmZXJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjIwNyBJU090ZWNoIC0tPgorPCFFTlRJVFkgaXNpbiAgICAgIiYjODcxMjsiPiA8IS0tIGVsZW1lbnQgb2YsIFUrMjIwOCBJU090ZWNoIC0tPgorPCFFTlRJVFkgbm90aW4gICAgIiYjODcxMzsiPiA8IS0tIG5vdCBhbiBlbGVtZW50IG9mLCBVKzIyMDkgSVNPdGVjaCAtLT4KKzwhRU5USVRZIG5pICAgICAgICImIzg3MTU7Ij4gPCEtLSBjb250YWlucyBhcyBtZW1iZXIsIFUrMjIwQiBJU090ZWNoIC0tPgorPCEtLSBzaG91bGQgdGhlcmUgYmUgYSBtb3JlIG1lbW9yYWJsZSBuYW1lIHRoYW4gJ25pJz8gLS0+Cis8IUVOVElUWSBwcm9kICAgICAiJiM4NzE5OyI+IDwhLS0gbi1hcnkgcHJvZHVjdCA9IHByb2R1Y3Qgc2lnbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIyMEYgSVNPYW1zYiAtLT4KKzwhLS0gcHJvZCBpcyBOT1QgdGhlIHNhbWUgY2hhcmFjdGVyIGFzIFUrMDNBMCAnZ3JlZWsgY2FwaXRhbCBsZXR0ZXIgcGknIHRob3VnaAorICAgICB0aGUgc2FtZSBnbHlwaCBtaWdodCBiZSB1c2VkIGZvciBib3RoIC0tPgorPCFFTlRJVFkgc3VtICAgICAgIiYjODcyMTsiPiA8IS0tIG4tYXJ5IHN1bWF0aW9uLCBVKzIyMTEgSVNPYW1zYiAtLT4KKzwhLS0gc3VtIGlzIE5PVCB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgVSswM0EzICdncmVlayBjYXBpdGFsIGxldHRlciBzaWdtYScKKyAgICAgdGhvdWdoIHRoZSBzYW1lIGdseXBoIG1pZ2h0IGJlIHVzZWQgZm9yIGJvdGggLS0+Cis8IUVOVElUWSBtaW51cyAgICAiJiM4NzIyOyI+IDwhLS0gbWludXMgc2lnbiwgVSsyMjEyIElTT3RlY2ggLS0+Cis8IUVOVElUWSBsb3dhc3QgICAiJiM4NzI3OyI+IDwhLS0gYXN0ZXJpc2sgb3BlcmF0b3IsIFUrMjIxNyBJU090ZWNoIC0tPgorPCFFTlRJVFkgcmFkaWMgICAgIiYjODczMDsiPiA8IS0tIHNxdWFyZSByb290ID0gcmFkaWNhbCBzaWduLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjIxQSBJU090ZWNoIC0tPgorPCFFTlRJVFkgcHJvcCAgICAgIiYjODczMzsiPiA8IS0tIHByb3BvcnRpb25hbCB0bywgVSsyMjFEIElTT3RlY2ggLS0+Cis8IUVOVElUWSBpbmZpbiAgICAiJiM4NzM0OyI+IDwhLS0gaW5maW5pdHksIFUrMjIxRSBJU090ZWNoIC0tPgorPCFFTlRJVFkgYW5nICAgICAgIiYjODczNjsiPiA8IS0tIGFuZ2xlLCBVKzIyMjAgSVNPYW1zbyAtLT4KKzwhRU5USVRZIGFuZCAgICAgICImIzg3NDM7Ij4gPCEtLSBsb2dpY2FsIGFuZCA9IHdlZGdlLCBVKzIyMjcgSVNPdGVjaCAtLT4KKzwhRU5USVRZIG9yICAgICAgICImIzg3NDQ7Ij4gPCEtLSBsb2dpY2FsIG9yID0gdmVlLCBVKzIyMjggSVNPdGVjaCAtLT4KKzwhRU5USVRZIGNhcCAgICAgICImIzg3NDU7Ij4gPCEtLSBpbnRlcnNlY3Rpb24gPSBjYXAsIFUrMjIyOSBJU090ZWNoIC0tPgorPCFFTlRJVFkgY3VwICAgICAgIiYjODc0NjsiPiA8IS0tIHVuaW9uID0gY3VwLCBVKzIyMkEgSVNPdGVjaCAtLT4KKzwhRU5USVRZIGludCAgICAgICImIzg3NDc7Ij4gPCEtLSBpbnRlZ3JhbCwgVSsyMjJCIElTT3RlY2ggLS0+Cis8IUVOVElUWSB0aGVyZTQgICAiJiM4NzU2OyI+IDwhLS0gdGhlcmVmb3JlLCBVKzIyMzQgSVNPdGVjaCAtLT4KKzwhRU5USVRZIHNpbSAgICAgICImIzg3NjQ7Ij4gPCEtLSB0aWxkZSBvcGVyYXRvciA9IHZhcmllcyB3aXRoID0gc2ltaWxhciB0bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIyM0MgSVNPdGVjaCAtLT4KKzwhLS0gdGlsZGUgb3BlcmF0b3IgaXMgTk9UIHRoZSBzYW1lIGNoYXJhY3RlciBhcyB0aGUgdGlsZGUsIFUrMDA3RSwKKyAgICAgYWx0aG91Z2ggdGhlIHNhbWUgZ2x5cGggbWlnaHQgYmUgdXNlZCB0byByZXByZXNlbnQgYm90aCAgLS0+Cis8IUVOVElUWSBjb25nICAgICAiJiM4NzczOyI+IDwhLS0gYXBwcm94aW1hdGVseSBlcXVhbCB0bywgVSsyMjQ1IElTT3RlY2ggLS0+Cis8IUVOVElUWSBhc3ltcCAgICAiJiM4Nzc2OyI+IDwhLS0gYWxtb3N0IGVxdWFsIHRvID0gYXN5bXB0b3RpYyB0bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIyNDggSVNPYW1zciAtLT4KKzwhRU5USVRZIG5lICAgICAgICImIzg4MDA7Ij4gPCEtLSBub3QgZXF1YWwgdG8sIFUrMjI2MCBJU090ZWNoIC0tPgorPCFFTlRJVFkgZXF1aXYgICAgIiYjODgwMTsiPiA8IS0tIGlkZW50aWNhbCB0bywgVSsyMjYxIElTT3RlY2ggLS0+Cis8IUVOVElUWSBsZSAgICAgICAiJiM4ODA0OyI+IDwhLS0gbGVzcy10aGFuIG9yIGVxdWFsIHRvLCBVKzIyNjQgSVNPdGVjaCAtLT4KKzwhRU5USVRZIGdlICAgICAgICImIzg4MDU7Ij4gPCEtLSBncmVhdGVyLXRoYW4gb3IgZXF1YWwgdG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMjY1IElTT3RlY2ggLS0+Cis8IUVOVElUWSBzdWIgICAgICAiJiM4ODM0OyI+IDwhLS0gc3Vic2V0IG9mLCBVKzIyODIgSVNPdGVjaCAtLT4KKzwhRU5USVRZIHN1cCAgICAgICImIzg4MzU7Ij4gPCEtLSBzdXBlcnNldCBvZiwgVSsyMjgzIElTT3RlY2ggLS0+Cis8IS0tIG5vdGUgdGhhdCBuc3VwLCAnbm90IGEgc3VwZXJzZXQgb2YsIFUrMjI4MycgaXMgbm90IGNvdmVyZWQgYnkgdGhlIFN5bWJvbCAKKyAgICAgZm9udCBlbmNvZGluZyBhbmQgaXMgbm90IGluY2x1ZGVkLiBTaG91bGQgaXQgYmUsIGZvciBzeW1tZXRyeT8KKyAgICAgSXQgaXMgaW4gSVNPYW1zbiAgLS0+IAorPCFFTlRJVFkgbnN1YiAgICAgIiYjODgzNjsiPiA8IS0tIG5vdCBhIHN1YnNldCBvZiwgVSsyMjg0IElTT2Ftc24gLS0+Cis8IUVOVElUWSBzdWJlICAgICAiJiM4ODM4OyI+IDwhLS0gc3Vic2V0IG9mIG9yIGVxdWFsIHRvLCBVKzIyODYgSVNPdGVjaCAtLT4KKzwhRU5USVRZIHN1cGUgICAgICImIzg4Mzk7Ij4gPCEtLSBzdXBlcnNldCBvZiBvciBlcXVhbCB0bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIyODcgSVNPdGVjaCAtLT4KKzwhRU5USVRZIG9wbHVzICAgICImIzg4NTM7Ij4gPCEtLSBjaXJjbGVkIHBsdXMgPSBkaXJlY3Qgc3VtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjI5NSBJU09hbXNiIC0tPgorPCFFTlRJVFkgb3RpbWVzICAgIiYjODg1NTsiPiA8IS0tIGNpcmNsZWQgdGltZXMgPSB2ZWN0b3IgcHJvZHVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIyOTcgSVNPYW1zYiAtLT4KKzwhRU5USVRZIHBlcnAgICAgICImIzg4Njk7Ij4gPCEtLSB1cCB0YWNrID0gb3J0aG9nb25hbCB0byA9IHBlcnBlbmRpY3VsYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMkE1IElTT3RlY2ggLS0+Cis8IUVOVElUWSBzZG90ICAgICAiJiM4OTAxOyI+IDwhLS0gZG90IG9wZXJhdG9yLCBVKzIyQzUgSVNPYW1zYiAtLT4KKzwhLS0gZG90IG9wZXJhdG9yIGlzIE5PVCB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgVSswMEI3IG1pZGRsZSBkb3QgLS0+CisKKzwhLS0gTWlzY2VsbGFuZW91cyBUZWNobmljYWwgLS0+Cis8IUVOVElUWSBsY2VpbCAgICAiJiM4OTY4OyI+IDwhLS0gbGVmdCBjZWlsaW5nID0gYXBsIHVwc3RpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMzA4IElTT2Ftc2MgIC0tPgorPCFFTlRJVFkgcmNlaWwgICAgIiYjODk2OTsiPiA8IS0tIHJpZ2h0IGNlaWxpbmcsIFUrMjMwOSBJU09hbXNjICAtLT4KKzwhRU5USVRZIGxmbG9vciAgICImIzg5NzA7Ij4gPCEtLSBsZWZ0IGZsb29yID0gYXBsIGRvd25zdGlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVKzIzMEEgSVNPYW1zYyAgLS0+Cis8IUVOVElUWSByZmxvb3IgICAiJiM4OTcxOyI+IDwhLS0gcmlnaHQgZmxvb3IsIFUrMjMwQiBJU09hbXNjICAtLT4KKzwhRU5USVRZIGxhbmcgICAgICImIzkwMDE7Ij4gPCEtLSBsZWZ0LXBvaW50aW5nIGFuZ2xlIGJyYWNrZXQgPSBicmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMzI5IElTT3RlY2ggLS0+Cis8IS0tIGxhbmcgaXMgTk9UIHRoZSBzYW1lIGNoYXJhY3RlciBhcyBVKzAwM0MgJ2xlc3MgdGhhbicgCisgICAgIG9yIFUrMjAzOSAnc2luZ2xlIGxlZnQtcG9pbnRpbmcgYW5nbGUgcXVvdGF0aW9uIG1hcmsnIC0tPgorPCFFTlRJVFkgcmFuZyAgICAgIiYjOTAwMjsiPiA8IS0tIHJpZ2h0LXBvaW50aW5nIGFuZ2xlIGJyYWNrZXQgPSBrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyMzJBIElTT3RlY2ggLS0+Cis8IS0tIHJhbmcgaXMgTk9UIHRoZSBzYW1lIGNoYXJhY3RlciBhcyBVKzAwM0UgJ2dyZWF0ZXIgdGhhbicgCisgICAgIG9yIFUrMjAzQSAnc2luZ2xlIHJpZ2h0LXBvaW50aW5nIGFuZ2xlIHF1b3RhdGlvbiBtYXJrJyAtLT4KKworPCEtLSBHZW9tZXRyaWMgU2hhcGVzIC0tPgorPCFFTlRJVFkgbG96ICAgICAgIiYjOTY3NDsiPiA8IS0tIGxvemVuZ2UsIFUrMjVDQSBJU09wdWIgLS0+CisKKzwhLS0gTWlzY2VsbGFuZW91cyBTeW1ib2xzIC0tPgorPCFFTlRJVFkgc3BhZGVzICAgIiYjOTgyNDsiPiA8IS0tIGJsYWNrIHNwYWRlIHN1aXQsIFUrMjY2MCBJU09wdWIgLS0+Cis8IS0tIGJsYWNrIGhlcmUgc2VlbXMgdG8gbWVhbiBmaWxsZWQgYXMgb3Bwb3NlZCB0byBob2xsb3cgLS0+Cis8IUVOVElUWSBjbHVicyAgICAiJiM5ODI3OyI+IDwhLS0gYmxhY2sgY2x1YiBzdWl0ID0gc2hhbXJvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVSsyNjYzIElTT3B1YiAtLT4KKzwhRU5USVRZIGhlYXJ0cyAgICImIzk4Mjk7Ij4gPCEtLSBibGFjayBoZWFydCBzdWl0ID0gdmFsZW50aW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUrMjY2NSBJU09wdWIgLS0+Cis8IUVOVElUWSBkaWFtcyAgICAiJiM5ODMwOyI+IDwhLS0gYmxhY2sgZGlhbW9uZCBzdWl0LCBVKzI2NjYgSVNPcHViIC0tPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwuY2F0IGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwuY2F0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MjRkZWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy94aHRtbC5jYXQKQEAgLTAsMCArMSwxNCBAQAorT1ZFUlJJREUJWUVTCisgICAgICAgIC0tIE9hc2lzIGVudGl0eSBjYXRhbG9nIGZvciBFeHRlbnNpYmxlIEhUTUwgMS4wIC0tCisKK1BVQkxJQyAgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAgICAgICAgInhodG1sMS1zdHJpY3QuZHRkIgorUFVCTElDICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICAieGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiCitQVUJMSUMgICItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIiAgICAgICJ4aHRtbDEtZnJhbWVzZXQuZHRkIgorCisgICAgICAgIC0tIElTTyBsYXRpbiAxIGVudGl0eSBzZXQgZm9yIEV4dGVuc2libGUgSFRNTCAoWE1MIDEuMCBmb3JtYXQpIC0tCisKK1BVQkxJQwkiLS8vVzNDLy9FTlRJVElFUyBMYXRpbiAxIGZvciBYSFRNTC8vRU4iICAieGh0bWwtbGF0MS5lbnQiCitQVUJMSUMJIi0vL1czQy8vRU5USVRJRVMgU3ltYm9scyBmb3IgWEhUTUwvL0VOIiAieGh0bWwtc3ltYm9sLmVudCIKK1BVQkxJQwkiLS8vVzNDLy9FTlRJVElFUyBTcGVjaWFsIGZvciBYSFRNTC8vRU4iICJ4aHRtbC1zcGVjaWFsLmVudCIKKworU0dNTERFQ0wgInhodG1sMS5kY2wiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy94aHRtbDEtZnJhbWVzZXQuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwxLWZyYW1lc2V0LmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGQ0NGU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwxLWZyYW1lc2V0LmR0ZApAQCAtMCwwICsxLDEyMjMgQEAKKzwhLS0KKyAgIEV4dGVuc2libGUgSFRNTCB2ZXJzaW9uIDEuMCBGcmFtZXNldCBEVEQKKworICAgVGhpcyBpcyB0aGUgc2FtZSBhcyBIVE1MIDQuMCBGcmFtZXNldCBleGNlcHQgZm9yCisgICBjaGFuZ2VzIGR1ZSB0byB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBYTUwgYW5kIFNHTUwuCisKKyAgIE5hbWVzcGFjZSA9IGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwKKworICAgRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24sIHNlZTogaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxCisKKyAgIENvcHlyaWdodCAoYykgMTk5OC0xOTk5IFczQyAoTUlULCBJTlJJQSwgS2VpbyksCisgICBBbGwgUmlnaHRzIFJlc2VydmVkLiAKKworICAgVGhpcyBEVEQgbW9kdWxlIGlzIGlkZW50aWZpZWQgYnkgdGhlIFBVQkxJQyBhbmQgU1lTVEVNIGlkZW50aWZpZXJzOgorCisgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBGcmFtZXNldC8vRU4iCisgICBTWVNURU0gImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLWZyYW1lc2V0LmR0ZCIKKworCistLT4KKworPCEtLT09PT09PT09PT09PT09PT0gQ2hhcmFjdGVyIG1uZW1vbmljIGVudGl0aWVzID09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTlRJVFkgJSBIVE1MbGF0MSBQVUJMSUMKKyAgICItLy9XM0MvL0VOVElUSUVTIExhdGluIDEgZm9yIFhIVE1MLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sLWxhdDEuZW50Ij4KKyVIVE1MbGF0MTsKKworPCFFTlRJVFkgJSBIVE1Mc3ltYm9sIFBVQkxJQworICAgIi0vL1czQy8vRU5USVRJRVMgU3ltYm9scyBmb3IgWEhUTUwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwtc3ltYm9sLmVudCI+CislSFRNTHN5bWJvbDsKKworPCFFTlRJVFkgJSBIVE1Mc3BlY2lhbCBQVUJMSUMKKyAgICItLy9XM0MvL0VOVElUSUVTIFNwZWNpYWwgZm9yIFhIVE1MLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sLXNwZWNpYWwuZW50Ij4KKyVIVE1Mc3BlY2lhbDsKKworPCEtLT09PT09PT09PT09PT09PT09PSBJbXBvcnRlZCBOYW1lcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTlRJVFkgJSBDb250ZW50VHlwZSAiQ0RBVEEiPgorICAgIDwhLS0gbWVkaWEgdHlwZSwgYXMgcGVyIFtSRkMyMDQ1XSAtLT4KKworPCFFTlRJVFkgJSBDb250ZW50VHlwZXMgIkNEQVRBIj4KKyAgICA8IS0tIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1lZGlhIHR5cGVzLCBhcyBwZXIgW1JGQzIwNDVdIC0tPgorCis8IUVOVElUWSAlIENoYXJzZXQgIkNEQVRBIj4KKyAgICA8IS0tIGEgY2hhcmFjdGVyIGVuY29kaW5nLCBhcyBwZXIgW1JGQzIwNDVdIC0tPgorCis8IUVOVElUWSAlIENoYXJzZXRzICJDREFUQSI+CisgICAgPCEtLSBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mIGNoYXJhY3RlciBlbmNvZGluZ3MsIGFzIHBlciBbUkZDMjA0NV0gLS0+CisKKzwhRU5USVRZICUgTGFuZ3VhZ2VDb2RlICJOTVRPS0VOIj4KKyAgICA8IS0tIGEgbGFuZ3VhZ2UgY29kZSwgYXMgcGVyIFtSRkMxNzY2XSAtLT4KKworPCFFTlRJVFkgJSBDaGFyYWN0ZXIgIkNEQVRBIj4KKyAgICA8IS0tIGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tIFtJU08xMDY0Nl0gLS0+CisKKzwhRU5USVRZICUgTnVtYmVyICJDREFUQSI+CisgICAgPCEtLSBvbmUgb3IgbW9yZSBkaWdpdHMgLS0+CisKKzwhRU5USVRZICUgTGlua1R5cGVzICJDREFUQSI+CisgICAgPCEtLSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBsaW5rIHR5cGVzIC0tPgorCis8IUVOVElUWSAlIE1lZGlhRGVzYyAiQ0RBVEEiPgorICAgIDwhLS0gc2luZ2xlIG9yIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1lZGlhIGRlc2NyaXB0b3JzIC0tPgorCis8IUVOVElUWSAlIFVSSSAiQ0RBVEEiPgorICAgIDwhLS0gYSBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIsIHNlZSBbUkZDMjM5Nl0gLS0+CisKKzwhRU5USVRZICUgVXJpTGlzdCAiQ0RBVEEiPgorICAgIDwhLS0gYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIC0tPgorCis8IUVOVElUWSAlIERhdGV0aW1lICJDREFUQSI+CisgICAgPCEtLSBkYXRlIGFuZCB0aW1lIGluZm9ybWF0aW9uLiBJU08gZGF0ZSBmb3JtYXQgLS0+CisKKzwhRU5USVRZICUgU2NyaXB0ICJDREFUQSI+CisgICAgPCEtLSBzY3JpcHQgZXhwcmVzc2lvbiAtLT4KKworPCFFTlRJVFkgJSBTdHlsZVNoZWV0ICJDREFUQSI+CisgICAgPCEtLSBzdHlsZSBzaGVldCBkYXRhIC0tPgorCis8IUVOVElUWSAlIFRleHQgIkNEQVRBIj4KKyAgICA8IS0tIHVzZWQgZm9yIHRpdGxlcyBldGMuIC0tPgorCis8IUVOVElUWSAlIEZyYW1lVGFyZ2V0ICJOTVRPS0VOIj4KKyAgICA8IS0tIHJlbmRlciBpbiB0aGlzIGZyYW1lIC0tPgorCis8IUVOVElUWSAlIExlbmd0aCAiQ0RBVEEiPgorICAgIDwhLS0gbm4gZm9yIHBpeGVscyBvciBubiUgZm9yIHBlcmNlbnRhZ2UgbGVuZ3RoIC0tPgorCis8IUVOVElUWSAlIE11bHRpTGVuZ3RoICJDREFUQSI+CisgICAgPCEtLSBwaXhlbCwgcGVyY2VudGFnZSwgb3IgcmVsYXRpdmUgLS0+CisKKzwhRU5USVRZICUgTXVsdGlMZW5ndGhzICJDREFUQSI+CisgICAgPCEtLSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBNdWx0aUxlbmd0aCAtLT4KKworPCFFTlRJVFkgJSBQaXhlbHMgIkNEQVRBIj4KKyAgICA8IS0tIGludGVnZXIgcmVwcmVzZW50aW5nIGxlbmd0aCBpbiBwaXhlbHMgLS0+CisKKzwhLS0gdGhlc2UgYXJlIHVzZWQgZm9yIGltYWdlIG1hcHMgLS0+CisKKzwhRU5USVRZICUgU2hhcGUgIihyZWN0fGNpcmNsZXxwb2x5fGRlZmF1bHQpIj4KKworPCFFTlRJVFkgJSBDb29yZHMgIkNEQVRBIj4KKyAgICA8IS0tIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGxlbmd0aHMgLS0+CisKKzwhLS0gdXNlZCBmb3Igb2JqZWN0LCBhcHBsZXQsIGltZywgaW5wdXQgYW5kIGlmcmFtZSAtLT4KKzwhRU5USVRZICUgSW1nQWxpZ24gIih0b3B8bWlkZGxlfGJvdHRvbXxsZWZ0fHJpZ2h0KSI+CisKKzwhLS0gYSBjb2xvciB1c2luZyBzUkdCOiAjUlJHR0JCIGFzIEhleCB2YWx1ZXMgLS0+Cis8IUVOVElUWSAlIENvbG9yICJDREFUQSI+CisKKzwhLS0gVGhlcmUgYXJlIGFsc28gMTYgd2lkZWx5IGtub3duIGNvbG9yIG5hbWVzIHdpdGggdGhlaXIgc1JHQiB2YWx1ZXM6CisKKyAgICBCbGFjayAgPSAjMDAwMDAwICAgIEdyZWVuICA9ICMwMDgwMDAKKyAgICBTaWx2ZXIgPSAjQzBDMEMwICAgIExpbWUgICA9ICMwMEZGMDAKKyAgICBHcmF5ICAgPSAjODA4MDgwICAgIE9saXZlICA9ICM4MDgwMDAKKyAgICBXaGl0ZSAgPSAjRkZGRkZGICAgIFllbGxvdyA9ICNGRkZGMDAKKyAgICBNYXJvb24gPSAjODAwMDAwICAgIE5hdnkgICA9ICMwMDAwODAKKyAgICBSZWQgICAgPSAjRkYwMDAwICAgIEJsdWUgICA9ICMwMDAwRkYKKyAgICBQdXJwbGUgPSAjODAwMDgwICAgIFRlYWwgICA9ICMwMDgwODAKKyAgICBGdWNoc2lhPSAjRkYwMEZGICAgIEFxdWEgICA9ICMwMEZGRkYKKy0tPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBHZW5lcmljIEF0dHJpYnV0ZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvcmUgYXR0cmlidXRlcyBjb21tb24gdG8gbW9zdCBlbGVtZW50cworICBpZCAgICAgICBkb2N1bWVudC13aWRlIHVuaXF1ZSBpZAorICBjbGFzcyAgICBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBjbGFzc2VzCisgIHN0eWxlICAgIGFzc29jaWF0ZWQgc3R5bGUgaW5mbworICB0aXRsZSAgICBhZHZpc29yeSB0aXRsZS9hbXBsaWZpY2F0aW9uCistLT4KKzwhRU5USVRZICUgY29yZWF0dHJzCisgImlkICAgICAgICAgIElEICAgICAgICAgICAgICNJTVBMSUVECisgIGNsYXNzICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHN0eWxlICAgICAgICVTdHlsZVNoZWV0OyAgICNJTVBMSUVECisgIHRpdGxlICAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVEIgorICA+CisKKzwhLS0gaW50ZXJuYXRpb25hbGl6YXRpb24gYXR0cmlidXRlcworICBsYW5nICAgICAgICBsYW5ndWFnZSBjb2RlIChiYWNrd2FyZHMgY29tcGF0aWJsZSkKKyAgeG1sOmxhbmcgICAgbGFuZ3VhZ2UgY29kZSAoYXMgcGVyIFhNTCAxLjAgc3BlYykKKyAgZGlyICAgICAgICAgZGlyZWN0aW9uIGZvciB3ZWFrL25ldXRyYWwgdGV4dAorLS0+Cis8IUVOVElUWSAlIGkxOG4KKyAibGFuZyAgICAgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgeG1sOmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgZGlyICAgICAgICAgKGx0cnxydGwpICAgICAgI0lNUExJRUQiCisgID4KKworPCEtLSBhdHRyaWJ1dGVzIGZvciBjb21tb24gVUkgZXZlbnRzCisgIG9uY2xpY2sgICAgIGEgcG9pbnRlciBidXR0b24gd2FzIGNsaWNrZWQKKyAgb25kYmxjbGljayAgYSBwb2ludGVyIGJ1dHRvbiB3YXMgZG91YmxlIGNsaWNrZWQKKyAgb25tb3VzZWRvd24gYSBwb2ludGVyIGJ1dHRvbiB3YXMgcHJlc3NlZCBkb3duCisgIG9ubW91c2V1cCAgIGEgcG9pbnRlciBidXR0b24gd2FzIHJlbGVhc2VkCisgIG9ubW91c2Vtb3ZlIGEgcG9pbnRlciB3YXMgbW92ZWQgb250byB0aGUgZWxlbWVudAorICBvbm1vdXNlb3V0ICBhIHBvaW50ZXIgd2FzIG1vdmVkIGF3YXkgZnJvbSB0aGUgZWxlbWVudAorICBvbmtleXByZXNzICBhIGtleSB3YXMgcHJlc3NlZCBhbmQgcmVsZWFzZWQKKyAgb25rZXlkb3duICAgYSBrZXkgd2FzIHByZXNzZWQgZG93bgorICBvbmtleXVwICAgICBhIGtleSB3YXMgcmVsZWFzZWQKKy0tPgorPCFFTlRJVFkgJSBldmVudHMKKyAib25jbGljayAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25kYmxjbGljayAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZWRvd24gJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZXVwICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW92ZXIgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW1vdmUgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW91dCAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXlwcmVzcyAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXlkb3duICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXl1cCAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQiCisgID4KKworPCEtLSBhdHRyaWJ1dGVzIGZvciBlbGVtZW50cyB0aGF0IGNhbiBnZXQgdGhlIGZvY3VzCisgIGFjY2Vzc2tleSAgIGFjY2Vzc2liaWxpdHkga2V5IGNoYXJhY3RlcgorICB0YWJpbmRleCAgICBwb3NpdGlvbiBpbiB0YWJiaW5nIG9yZGVyCisgIG9uZm9jdXMgICAgIHRoZSBlbGVtZW50IGdvdCB0aGUgZm9jdXMKKyAgb25ibHVyICAgICAgdGhlIGVsZW1lbnQgbG9zdCB0aGUgZm9jdXMKKy0tPgorPCFFTlRJVFkgJSBmb2N1cworICJhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRCIKKyAgPgorCis8IUVOVElUWSAlIGF0dHJzICIlY29yZWF0dHJzOyAlaTE4bjsgJWV2ZW50czsiPgorCis8IS0tIHRleHQgYWxpZ25tZW50IGZvciBwLCBkaXYsIGgxLWg2LiBUaGUgZGVmYXVsdCBpcworICAgICBhbGlnbj0ibGVmdCIgZm9yIGx0ciBoZWFkaW5ncywgInJpZ2h0IiBmb3IgcnRsIC0tPgorCis8IUVOVElUWSAlIFRleHRBbGlnbiAiYWxpZ24gKGxlZnR8Y2VudGVyfHJpZ2h0KSAjSU1QTElFRCI+CisKKzwhLS09PT09PT09PT09PT09PT09PT09IFRleHQgRWxlbWVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRU5USVRZICUgc3BlY2lhbAorICAgImJyIHwgc3BhbiB8IGJkbyB8b2JqZWN0IHwgYXBwbGV0IHwgaW1nIHwgbWFwIHwgaWZyYW1lIj4KKworPCFFTlRJVFkgJSBmb250c3R5bGUgInR0IHwgaSB8IGIgfCBiaWcgfCBzbWFsbCB8IHUKKyAgICAgICAgICAgICAgICAgICAgICB8IHMgfCBzdHJpa2UgfGZvbnQgfCBiYXNlZm9udCI+CisKKzwhRU5USVRZICUgcGhyYXNlICJlbSB8IHN0cm9uZyB8IGRmbiB8IGNvZGUgfCBxIHwgc3ViIHwgc3VwIHwKKyAgICAgICAgICAgICAgICAgICBzYW1wIHwga2JkIHwgdmFyIHwgY2l0ZSB8IGFiYnIgfCBhY3JvbnltIj4KKworPCFFTlRJVFkgJSBpbmxpbmUuZm9ybXMgImlucHV0IHwgc2VsZWN0IHwgdGV4dGFyZWEgfCBsYWJlbCB8IGJ1dHRvbiI+CisKKzwhLS0gdGhlc2UgY2FuIG9jY3VyIGF0IGJsb2NrIG9yIGlubGluZSBsZXZlbCAtLT4KKzwhRU5USVRZICUgbWlzYyAiaW5zIHwgZGVsIHwgc2NyaXB0IHwgbm9zY3JpcHQiPgorCis8IUVOVElUWSAlIGlubGluZSAiYSB8ICVzcGVjaWFsOyB8ICVmb250c3R5bGU7IHwgJXBocmFzZTsgfCAlaW5saW5lLmZvcm1zOyI+CisKKzwhLS0gJUlubGluZTsgY292ZXJzIGlubGluZSBvciAidGV4dC1sZXZlbCIgZWxlbWVudHMgLS0+Cis8IUVOVElUWSAlIElubGluZSAiKCNQQ0RBVEEgfCAlaW5saW5lOyB8ICVtaXNjOykqIj4KKworPCEtLT09PT09PT09PT09PT09PT09PSBCbG9jayBsZXZlbCBlbGVtZW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTlRJVFkgJSBoZWFkaW5nICJoMXxoMnxoM3xoNHxoNXxoNiI+Cis8IUVOVElUWSAlIGxpc3RzICJ1bCB8IG9sIHwgZGwgfCBtZW51IHwgZGlyIj4KKzwhRU5USVRZICUgYmxvY2t0ZXh0ICJwcmUgfCBociB8IGJsb2NrcXVvdGUgfCBhZGRyZXNzIHwgY2VudGVyIj4KKworPCFFTlRJVFkgJSBibG9jaworICAgICJwIHwgJWhlYWRpbmc7IHwgZGl2IHwgJWxpc3RzOyB8ICVibG9ja3RleHQ7IHwgaXNpbmRleCB8IGZpZWxkc2V0IHwgdGFibGUiPgorCis8IUVOVElUWSAlIEJsb2NrICIoJWJsb2NrOyB8IGZvcm0gfCAlbWlzYzspKiI+CisKKzwhLS0gJUZsb3c7IG1peGVzIEJsb2NrIGFuZCBJbmxpbmUgYW5kIGlzIHVzZWQgZm9yIGxpc3QgaXRlbXMgZXRjLiAtLT4KKzwhRU5USVRZICUgRmxvdyAiKCNQQ0RBVEEgfCAlYmxvY2s7IHwgZm9ybSB8ICVpbmxpbmU7IHwgJW1pc2M7KSoiPgorCis8IS0tPT09PT09PT09PT09PT09PT09IENvbnRlbnQgbW9kZWxzIGZvciBleGNsdXNpb25zID09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGEgZWxlbWVudHMgdXNlICVJbmxpbmU7IGV4Y2x1ZGluZyBhIC0tPgorCis8IUVOVElUWSAlIGEuY29udGVudAorICAgIigjUENEQVRBIHwgJXNwZWNpYWw7IHwgJWZvbnRzdHlsZTsgfCAlcGhyYXNlOyB8ICVpbmxpbmUuZm9ybXM7IHwgJW1pc2M7KSoiPgorCis8IS0tIHByZSB1c2VzICVJbmxpbmUgZXhjbHVkaW5nIGltZywgb2JqZWN0LCBhcHBsZXQsIGJpZywgc21hbGwsCisgICAgIHN1Yiwgc3VwLCBmb250LCBvciBiYXNlZm9udCAtLT4KKworPCFFTlRJVFkgJSBwcmUuY29udGVudAorICAgIigjUENEQVRBIHwgYSB8IGJyIHwgc3BhbiB8IGJkbyB8IG1hcCB8IHR0IHwgaSB8IGIgfCB1IHwgcyB8CisgICAgICAlcGhyYXNlOyB8ICVpbmxpbmUuZm9ybXM7KSoiPgorCis8IS0tIGZvcm0gdXNlcyAlRmxvdzsgZXhjbHVkaW5nIGZvcm0gLS0+CisKKzwhRU5USVRZICUgZm9ybS5jb250ZW50ICIoI1BDREFUQSB8ICVibG9jazsgfCAlaW5saW5lOyB8ICVtaXNjOykqIj4KKworPCEtLSBidXR0b24gdXNlcyAlRmxvdzsgYnV0IGV4Y2x1ZGVzIGEsIGZvcm0sIGZvcm0gY29udHJvbHMsIGlmcmFtZSAtLT4KKworPCFFTlRJVFkgJSBidXR0b24uY29udGVudAorICAgIigjUENEQVRBIHwgcCB8ICVoZWFkaW5nOyB8IGRpdiB8ICVsaXN0czsgfCAlYmxvY2t0ZXh0OyB8CisgICAgICB0YWJsZSB8IGJyIHwgc3BhbiB8IGJkbyB8IG9iamVjdCB8IGFwcGxldCB8IGltZyB8IG1hcCB8CisgICAgICAlZm9udHN0eWxlOyB8ICVwaHJhc2U7IHwgJW1pc2M7KSoiPgorCis8IS0tPT09PT09PT09PT09PT09PSBEb2N1bWVudCBTdHJ1Y3R1cmUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIHRoZSBuYW1lc3BhY2UgVVJJIGRlc2lnbmF0ZXMgdGhlIGRvY3VtZW50IHByb2ZpbGUgLS0+CisKKzwhRUxFTUVOVCBodG1sIChoZWFkLCBmcmFtZXNldCk+Cis8IUFUVExJU1QgaHRtbAorICAlaTE4bjsKKyAgeG1sbnMgICAgICAgJVVSSTsgICAgICAgICAgI0ZJWEVEICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJworICA+CisKKzwhLS09PT09PT09PT09PT09PT09IERvY3VtZW50IEhlYWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRU5USVRZICUgaGVhZC5taXNjICIoc2NyaXB0fHN0eWxlfG1ldGF8bGlua3xvYmplY3R8aXNpbmRleCkqIj4KKworPCEtLSBjb250ZW50IG1vZGVsIGlzICVoZWFkLm1pc2M7IGNvbWJpbmVkIHdpdGggYSBzaW5nbGUKKyAgICAgdGl0bGUgYW5kIGFuIG9wdGlvbmFsIGJhc2UgZWxlbWVudCBpbiBhbnkgb3JkZXIgLS0+CisKKzwhRUxFTUVOVCBoZWFkICglaGVhZC5taXNjOywKKyAgICAgKCh0aXRsZSwgJWhlYWQubWlzYzssIChiYXNlLCAlaGVhZC5taXNjOyk/KSB8CisgICAgICAoYmFzZSwgJWhlYWQubWlzYzssICh0aXRsZSwgJWhlYWQubWlzYzspKSkpPgorCis8IUFUVExJU1QgaGVhZAorICAlaTE4bjsKKyAgcHJvZmlsZSAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIFRoZSB0aXRsZSBlbGVtZW50IGlzIG5vdCBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIGZsb3cgb2YgdGV4dC4KKyAgICAgICBJdCBzaG91bGQgYmUgZGlzcGxheWVkLCBmb3IgZXhhbXBsZSBhcyB0aGUgcGFnZSBoZWFkZXIgb3IKKyAgICAgICB3aW5kb3cgdGl0bGUuIEV4YWN0bHkgb25lIHRpdGxlIGlzIHJlcXVpcmVkIHBlciBkb2N1bWVudC4KKyAgICAtLT4KKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGl0bGUgJWkxOG47PgorCis8IS0tIGRvY3VtZW50IGJhc2UgVVJJIC0tPgorCis8IUVMRU1FTlQgYmFzZSBFTVBUWT4KKzwhQVRUTElTVCBiYXNlCisgIGhyZWYgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIHRhcmdldCAgICAgICVGcmFtZVRhcmdldDsgICNJTVBMSUVECisgID4KKworPCEtLSBnZW5lcmljIG1ldGFpbmZvcm1hdGlvbiAtLT4KKzwhRUxFTUVOVCBtZXRhIEVNUFRZPgorPCFBVFRMSVNUIG1ldGEKKyAgJWkxOG47CisgIGh0dHAtZXF1aXYgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIG5hbWUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGNvbnRlbnQgICAgIENEQVRBICAgICAgICAgICNSRVFVSVJFRAorICBzY2hlbWUgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0KKyAgUmVsYXRpb25zaGlwIHZhbHVlcyBjYW4gYmUgdXNlZCBpbiBwcmluY2lwbGU6CisKKyAgIGEpIGZvciBkb2N1bWVudCBzcGVjaWZpYyB0b29sYmFycy9tZW51cyB3aGVuIHVzZWQKKyAgICAgIHdpdGggdGhlIGxpbmsgZWxlbWVudCBpbiBkb2N1bWVudCBoZWFkIGUuZy4KKyAgICAgICAgc3RhcnQsIGNvbnRlbnRzLCBwcmV2aW91cywgbmV4dCwgaW5kZXgsIGVuZCwgaGVscAorICAgYikgdG8gbGluayB0byBhIHNlcGFyYXRlIHN0eWxlIHNoZWV0IChyZWw9InN0eWxlc2hlZXQiKQorICAgYykgdG8gbWFrZSBhIGxpbmsgdG8gYSBzY3JpcHQgKHJlbD0ic2NyaXB0IikKKyAgIGQpIGJ5IHN0eWxlc2hlZXRzIHRvIGNvbnRyb2wgaG93IGNvbGxlY3Rpb25zIG9mCisgICAgICBodG1sIG5vZGVzIGFyZSByZW5kZXJlZCBpbnRvIHByaW50ZWQgZG9jdW1lbnRzCisgICBlKSB0byBtYWtlIGEgbGluayB0byBhIHByaW50YWJsZSB2ZXJzaW9uIG9mIHRoaXMgZG9jdW1lbnQKKyAgICAgIGUuZy4gYSBQb3N0U2NyaXB0IG9yIFBERiB2ZXJzaW9uIChyZWw9ImFsdGVybmF0ZSIgbWVkaWE9InByaW50IikKKy0tPgorCis8IUVMRU1FTlQgbGluayBFTVBUWT4KKzwhQVRUTElTVCBsaW5rCisgICVhdHRyczsKKyAgY2hhcnNldCAgICAgJUNoYXJzZXQ7ICAgICAgI0lNUExJRUQKKyAgaHJlZiAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgaHJlZmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI0lNUExJRUQKKyAgcmVsICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgcmV2ICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgbWVkaWEgICAgICAgJU1lZGlhRGVzYzsgICAgI0lNUExJRUQKKyAgdGFyZ2V0ICAgICAgJUZyYW1lVGFyZ2V0OyAgI0lNUExJRUQKKyAgPgorCis8IS0tIHN0eWxlIGluZm8sIHdoaWNoIG1heSBpbmNsdWRlIENEQVRBIHNlY3Rpb25zIC0tPgorPCFFTEVNRU5UIHN0eWxlICgjUENEQVRBKT4KKzwhQVRUTElTVCBzdHlsZQorICAlaTE4bjsKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI1JFUVVJUkVECisgIG1lZGlhICAgICAgICVNZWRpYURlc2M7ICAgICNJTVBMSUVECisgIHRpdGxlICAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgIHhtbDpzcGFjZSAgIChwcmVzZXJ2ZSkgICAgICNGSVhFRCAncHJlc2VydmUnCisgID4KKworPCEtLSBzY3JpcHQgc3RhdGVtZW50cywgd2hpY2ggbWF5IGluY2x1ZGUgQ0RBVEEgc2VjdGlvbnMgLS0+Cis8IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHQKKyAgY2hhcnNldCAgICAgJUNoYXJzZXQ7ICAgICAgI0lNUExJRUQKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI1JFUVVJUkVECisgIGxhbmd1YWdlICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHNyYyAgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRlZmVyICAgICAgIChkZWZlcikgICAgICAgICNJTVBMSUVECisgIHhtbDpzcGFjZSAgIChwcmVzZXJ2ZSkgICAgICNGSVhFRCAncHJlc2VydmUnCisgID4KKworPCEtLSBhbHRlcm5hdGUgY29udGVudCBjb250YWluZXIgZm9yIG5vbiBzY3JpcHQtYmFzZWQgcmVuZGVyaW5nIC0tPgorCis8IUVMRU1FTlQgbm9zY3JpcHQgJUZsb3c7PgorPCFBVFRMSVNUIG5vc2NyaXB0CisgICVhdHRyczsKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PT09PT0gRnJhbWVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIG9ubHkgb25lIG5vZnJhbWVzIGVsZW1lbnQgcGVybWl0dGVkIHBlciBkb2N1bWVudCAtLT4KKworPCFFTEVNRU5UIGZyYW1lc2V0IChmcmFtZXNldHxmcmFtZXxub2ZyYW1lcykqPgorPCFBVFRMSVNUIGZyYW1lc2V0CisgICVjb3JlYXR0cnM7CisgIHJvd3MgICAgICAgICVNdWx0aUxlbmd0aHM7ICNJTVBMSUVECisgIGNvbHMgICAgICAgICVNdWx0aUxlbmd0aHM7ICNJTVBMSUVECisgIG9ubG9hZCAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9udW5sb2FkICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLSByZXNlcnZlZCBmcmFtZSBuYW1lcyBzdGFydCB3aXRoICJfIiBvdGhlcndpc2Ugc3RhcnRzIHdpdGggbGV0dGVyIC0tPgorCis8IS0tIHRpbGVkIHdpbmRvdyB3aXRoaW4gZnJhbWVzZXQgLS0+CisKKzwhRUxFTUVOVCBmcmFtZSBFTVBUWT4KKzwhQVRUTElTVCBmcmFtZQorICAlY29yZWF0dHJzOworICBsb25nZGVzYyAgICAlVVJJOyAgICAgICAgICAjSU1QTElFRAorICBuYW1lICAgICAgICBOTVRPS0VOICAgICAgICAjSU1QTElFRAorICBzcmMgICAgICAgICAlVVJJOyAgICAgICAgICAjSU1QTElFRAorICBmcmFtZWJvcmRlciAoMXwwKSAgICAgICAgICAiMSIKKyAgbWFyZ2lud2lkdGggJVBpeGVsczsgICAgICAgI0lNUExJRUQKKyAgbWFyZ2luaGVpZ2h0ICVQaXhlbHM7ICAgICAgI0lNUExJRUQKKyAgbm9yZXNpemUgICAgKG5vcmVzaXplKSAgICAgI0lNUExJRUQKKyAgc2Nyb2xsaW5nICAgKHllc3xub3xhdXRvKSAgImF1dG8iCisgID4KKworPCEtLSBpbmxpbmUgc3Vid2luZG93IC0tPgorCis8IUVMRU1FTlQgaWZyYW1lICVGbG93Oz4KKzwhQVRUTElTVCBpZnJhbWUKKyAgJWNvcmVhdHRyczsKKyAgbG9uZ2Rlc2MgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgTk1UT0tFTiAgICAgICAgI0lNUExJRUQKKyAgc3JjICAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgZnJhbWVib3JkZXIgKDF8MCkgICAgICAgICAgIjEiCisgIG1hcmdpbndpZHRoICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIG1hcmdpbmhlaWdodCAlUGl4ZWxzOyAgICAgICNJTVBMSUVECisgIHNjcm9sbGluZyAgICh5ZXN8bm98YXV0bykgICJhdXRvIgorICBhbGlnbiAgICAgICAlSW1nQWxpZ247ICAgICAjSU1QTElFRAorICBoZWlnaHQgICAgICAlTGVuZ3RoOyAgICAgICAjSU1QTElFRAorICB3aWR0aCAgICAgICAlTGVuZ3RoOyAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0gYWx0ZXJuYXRlIGNvbnRlbnQgY29udGFpbmVyIGZvciBub24gZnJhbWUtYmFzZWQgcmVuZGVyaW5nIC0tPgorCis8IUVMRU1FTlQgbm9mcmFtZXMgKGJvZHkpPgorPCFBVFRMSVNUIG5vZnJhbWVzCisgICVhdHRyczsKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBEb2N1bWVudCBCb2R5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVMRU1FTlQgYm9keSAlRmxvdzs+Cis8IUFUVExJU1QgYm9keQorICAlYXR0cnM7CisgIG9ubG9hZCAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9udW5sb2FkICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIGJhY2tncm91bmQgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGJnY29sb3IgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHRleHQgICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIGxpbmsgICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHZsaW5rICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIGFsaW5rICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIGRpdiAlRmxvdzs+ICA8IS0tIGdlbmVyaWMgbGFuZ3VhZ2Uvc3R5bGUgY29udGFpbmVyIC0tPgorPCFBVFRMSVNUIGRpdgorICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gUGFyYWdyYXBocyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTEVNRU5UIHAgJUlubGluZTs+Cis8IUFUVExJU1QgcAorICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSGVhZGluZ3MgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLQorICBUaGVyZSBhcmUgc2l4IGxldmVscyBvZiBoZWFkaW5ncyBmcm9tIGgxICh0aGUgbW9zdCBpbXBvcnRhbnQpCisgIHRvIGg2ICh0aGUgbGVhc3QgaW1wb3J0YW50KS4KKy0tPgorCis8IUVMRU1FTlQgaDEgICVJbmxpbmU7PgorPCFBVFRMSVNUIGgxCisgICVhdHRyczsKKyAgJVRleHRBbGlnbjsKKyAgPgorCis8IUVMRU1FTlQgaDIgJUlubGluZTs+Cis8IUFUVExJU1QgaDIKKyAgJWF0dHJzOworICAlVGV4dEFsaWduOworICA+CisKKzwhRUxFTUVOVCBoMyAlSW5saW5lOz4KKzwhQVRUTElTVCBoMworICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCFFTEVNRU5UIGg0ICVJbmxpbmU7PgorPCFBVFRMSVNUIGg0CisgICVhdHRyczsKKyAgJVRleHRBbGlnbjsKKyAgPgorCis8IUVMRU1FTlQgaDUgJUlubGluZTs+Cis8IUFUVExJU1QgaDUKKyAgJWF0dHJzOworICAlVGV4dEFsaWduOworICA+CisKKzwhRUxFTUVOVCBoNiAlSW5saW5lOz4KKzwhQVRUTElTVCBoNgorICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gTGlzdHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBVbm9yZGVyZWQgbGlzdCBidWxsZXQgc3R5bGVzIC0tPgorCis8IUVOVElUWSAlIFVMU3R5bGUgIihkaXNjfHNxdWFyZXxjaXJjbGUpIj4KKworPCEtLSBVbm9yZGVyZWQgbGlzdCAtLT4KKworPCFFTEVNRU5UIHVsIChsaSkrPgorPCFBVFRMSVNUIHVsCisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJVVMU3R5bGU7ICAgICAjSU1QTElFRAorICBjb21wYWN0ICAgICAoY29tcGFjdCkgICAgICNJTVBMSUVECisgID4KKworPCEtLSBPcmRlcmVkIGxpc3QgbnVtYmVyaW5nIHN0eWxlCisKKyAgICAxICAgYXJhYmljIG51bWJlcnMgICAgICAxLCAyLCAzLCAuLi4KKyAgICBhICAgbG93ZXIgYWxwaGEgICAgICAgICBhLCBiLCBjLCAuLi4KKyAgICBBICAgdXBwZXIgYWxwaGEgICAgICAgICBBLCBCLCBDLCAuLi4KKyAgICBpICAgbG93ZXIgcm9tYW4gICAgICAgICBpLCBpaSwgaWlpLCAuLi4KKyAgICBJICAgdXBwZXIgcm9tYW4gICAgICAgICBJLCBJSSwgSUlJLCAuLi4KKworICAgIFRoZSBzdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSBzZXF1ZW5jZSBudW1iZXIgd2hpY2ggYnkgZGVmYXVsdAorICAgIGlzIHJlc2V0IHRvIDEgZm9yIHRoZSBmaXJzdCBsaXN0IGl0ZW0gaW4gYW4gb3JkZXJlZCBsaXN0LgorLS0+Cis8IUVOVElUWSAlIE9MU3R5bGUgIkNEQVRBIj4KKworPCEtLSBPcmRlcmVkIChudW1iZXJlZCkgbGlzdCAtLT4KKworPCFFTEVNRU5UIG9sIChsaSkrPgorPCFBVFRMSVNUIG9sCisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJU9MU3R5bGU7ICAgICAgI0lNUExJRUQKKyAgY29tcGFjdCAgICAgKGNvbXBhY3QpICAgICAgI0lNUExJRUQKKyAgc3RhcnQgICAgICAgJU51bWJlcjsgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIHNpbmdsZSBjb2x1bW4gbGlzdCAoREVQUkVDQVRFRCkgLS0+IAorPCFFTEVNRU5UIG1lbnUgKGxpKSs+Cis8IUFUVExJU1QgbWVudQorICAlYXR0cnM7CisgIGNvbXBhY3QgICAgIChjb21wYWN0KSAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIG11bHRpcGxlIGNvbHVtbiBsaXN0IChERVBSRUNBVEVEKSAtLT4gCis8IUVMRU1FTlQgZGlyIChsaSkrPgorPCFBVFRMSVNUIGRpcgorICAlYXR0cnM7CisgIGNvbXBhY3QgICAgIChjb21wYWN0KSAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIExJU3R5bGUgaXMgY29uc3RyYWluZWQgdG86ICIoJVVMU3R5bGU7fCVPTFN0eWxlOykiIC0tPgorPCFFTlRJVFkgJSBMSVN0eWxlICJDREFUQSI+CisKKzwhLS0gbGlzdCBpdGVtIC0tPgorCis8IUVMRU1FTlQgbGkgJUZsb3c7PgorPCFBVFRMSVNUIGxpCisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJUxJU3R5bGU7ICAgICAgI0lNUExJRUQKKyAgdmFsdWUgICAgICAgJU51bWJlcjsgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIGRlZmluaXRpb24gbGlzdHMgLSBkdCBmb3IgdGVybSwgZGQgZm9yIGl0cyBkZWZpbml0aW9uIC0tPgorCis8IUVMRU1FTlQgZGwgKGR0fGRkKSs+Cis8IUFUVExJU1QgZGwKKyAgJWF0dHJzOworICBjb21wYWN0ICAgICAoY29tcGFjdCkgICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBkdCAlSW5saW5lOz4KKzwhQVRUTElTVCBkdAorICAlYXR0cnM7CisgID4KKworPCFFTEVNRU5UIGRkICVGbG93Oz4KKzwhQVRUTElTVCBkZAorICAlYXR0cnM7CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gQWRkcmVzcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBpbmZvcm1hdGlvbiBvbiBhdXRob3IgLS0+CisKKzwhRUxFTUVOVCBhZGRyZXNzICVJbmxpbmU7PgorPCFBVFRMSVNUIGFkZHJlc3MKKyAgJWF0dHJzOworICA+CisKKzwhLS09PT09PT09PT09PT09PT09PT09IEhvcml6b250YWwgUnVsZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRUxFTUVOVCBociBFTVBUWT4KKzwhQVRUTElTVCBocgorICAlYXR0cnM7CisgIGFsaWduICAgICAgIChsZWZ0fGNlbnRlcnxyaWdodCkgI0lNUExJRUQKKyAgbm9zaGFkZSAgICAgKG5vc2hhZGUpICAgICAgI0lNUExJRUQKKyAgc2l6ZSAgICAgICAgJVBpeGVsczsgICAgICAgI0lNUExJRUQKKyAgd2lkdGggICAgICAgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBQcmVmb3JtYXR0ZWQgVGV4dCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvbnRlbnQgaXMgJUlubGluZTsgZXhjbHVkaW5nIAorICAgICAgICAiaW1nfG9iamVjdHxhcHBsZXR8YmlnfHNtYWxsfHN1YnxzdXB8Zm9udHxiYXNlZm9udCIgLS0+CisKKzwhRUxFTUVOVCBwcmUgJXByZS5jb250ZW50Oz4KKzwhQVRUTElTVCBwcmUKKyAgJWF0dHJzOworICB3aWR0aCAgICAgICAlTnVtYmVyOyAgICAgICNJTVBMSUVECisgIHhtbDpzcGFjZSAgIChwcmVzZXJ2ZSkgICAgI0ZJWEVEICdwcmVzZXJ2ZScKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBCbG9jay1saWtlIFF1b3RlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVMRU1FTlQgYmxvY2txdW90ZSAlRmxvdzs+Cis8IUFUVExJU1QgYmxvY2txdW90ZQorICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gVGV4dCBhbGlnbm1lbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBjZW50ZXIgY29udGVudCAtLT4KKzwhRUxFTUVOVCBjZW50ZXIgJUZsb3c7PgorPCFBVFRMSVNUIGNlbnRlcgorICAlYXR0cnM7CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSW5zZXJ0ZWQvRGVsZXRlZCBUZXh0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworCis8IS0tCisgIGlucy9kZWwgYXJlIGFsbG93ZWQgaW4gYmxvY2sgYW5kIGlubGluZSBjb250ZW50LCBidXQgaXRzCisgIGluYXBwcm9wcmlhdGUgdG8gaW5jbHVkZSBibG9jayBjb250ZW50IHdpdGhpbiBhbiBpbnMgZWxlbWVudAorICBvY2N1cnJpbmcgaW4gaW5saW5lIGNvbnRlbnQuCistLT4KKzwhRUxFTUVOVCBpbnMgJUZsb3c7PgorPCFBVFRMSVNUIGlucworICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRhdGV0aW1lICAgICVEYXRldGltZTsgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIGRlbCAlRmxvdzs+Cis8IUFUVExJU1QgZGVsCisgICVhdHRyczsKKyAgY2l0ZSAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgZGF0ZXRpbWUgICAgJURhdGV0aW1lOyAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09IFRoZSBBbmNob3IgRWxlbWVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvbnRlbnQgaXMgJUlubGluZTsgZXhjZXB0IHRoYXQgYW5jaG9ycyBzaG91bGRuJ3QgYmUgbmVzdGVkIC0tPgorCis8IUVMRU1FTlQgYSAlYS5jb250ZW50Oz4KKzwhQVRUTElTVCBhCisgICVhdHRyczsKKyAgY2hhcnNldCAgICAgJUNoYXJzZXQ7ICAgICAgI0lNUExJRUQKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgTk1UT0tFTiAgICAgICAgI0lNUExJRUQKKyAgaHJlZiAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgaHJlZmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgcmVsICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgcmV2ICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgYWNjZXNza2V5ICAgJUNoYXJhY3RlcjsgICAgI0lNUExJRUQKKyAgc2hhcGUgICAgICAgJVNoYXBlOyAgICAgICAgInJlY3QiCisgIGNvb3JkcyAgICAgICVDb29yZHM7ICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIHRhcmdldCAgICAgICVGcmFtZVRhcmdldDsgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT09PSBJbmxpbmUgRWxlbWVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTEVNRU5UIHNwYW4gJUlubGluZTs+IDwhLS0gZ2VuZXJpYyBsYW5ndWFnZS9zdHlsZSBjb250YWluZXIgLS0+Cis8IUFUVExJU1Qgc3BhbgorICAlYXR0cnM7CisgID4KKworPCFFTEVNRU5UIGJkbyAlSW5saW5lOz4gIDwhLS0gSTE4TiBCaURpIG92ZXItcmlkZSAtLT4KKzwhQVRUTElTVCBiZG8KKyAgJWNvcmVhdHRyczsKKyAgJWV2ZW50czsKKyAgbGFuZyAgICAgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgeG1sOmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgZGlyICAgICAgICAgKGx0cnxydGwpICAgICAgI1JFUVVJUkVECisgID4KKworPCFFTEVNRU5UIGJyIEVNUFRZPiAgIDwhLS0gZm9yY2VkIGxpbmUgYnJlYWsgLS0+Cis8IUFUVExJU1QgYnIKKyAgJWNvcmVhdHRyczsKKyAgY2xlYXIgICAgICAgKGxlZnR8YWxsfHJpZ2h0fG5vbmUpICJub25lIgorICA+CisKKzwhRUxFTUVOVCBlbSAlSW5saW5lOz4gICA8IS0tIGVtcGhhc2lzIC0tPgorPCFBVFRMSVNUIGVtICVhdHRyczs+CisKKzwhRUxFTUVOVCBzdHJvbmcgJUlubGluZTs+ICAgPCEtLSBzdHJvbmcgZW1waGFzaXMgLS0+Cis8IUFUVExJU1Qgc3Ryb25nICVhdHRyczs+CisKKzwhRUxFTUVOVCBkZm4gJUlubGluZTs+ICAgPCEtLSBkZWZpbml0aW9uYWwgLS0+Cis8IUFUVExJU1QgZGZuICVhdHRyczs+CisKKzwhRUxFTUVOVCBjb2RlICVJbmxpbmU7PiAgIDwhLS0gcHJvZ3JhbSBjb2RlIC0tPgorPCFBVFRMSVNUIGNvZGUgJWF0dHJzOz4KKworPCFFTEVNRU5UIHNhbXAgJUlubGluZTs+ICAgPCEtLSBzYW1wbGUgLS0+Cis8IUFUVExJU1Qgc2FtcCAlYXR0cnM7PgorCis8IUVMRU1FTlQga2JkICVJbmxpbmU7PiAgPCEtLSBzb21ldGhpbmcgdXNlciB3b3VsZCB0eXBlIC0tPgorPCFBVFRMSVNUIGtiZCAlYXR0cnM7PgorCis8IUVMRU1FTlQgdmFyICVJbmxpbmU7PiAgIDwhLS0gdmFyaWFibGUgLS0+Cis8IUFUVExJU1QgdmFyICVhdHRyczs+CisKKzwhRUxFTUVOVCBjaXRlICVJbmxpbmU7PiAgIDwhLS0gY2l0YXRpb24gLS0+Cis8IUFUVExJU1QgY2l0ZSAlYXR0cnM7PgorCis8IUVMRU1FTlQgYWJiciAlSW5saW5lOz4gICA8IS0tIGFiYnJldmlhdGlvbiAtLT4KKzwhQVRUTElTVCBhYmJyICVhdHRyczs+CisKKzwhRUxFTUVOVCBhY3JvbnltICVJbmxpbmU7PiAgIDwhLS0gYWNyb255bSAtLT4KKzwhQVRUTElTVCBhY3JvbnltICVhdHRyczs+CisKKzwhRUxFTUVOVCBxICVJbmxpbmU7PiAgIDwhLS0gaW5saW5lZCBxdW90ZSAtLT4KKzwhQVRUTElTVCBxCisgICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgICA+CisKKzwhRUxFTUVOVCBzdWIgJUlubGluZTs+IDwhLS0gc3Vic2NyaXB0IC0tPgorPCFBVFRMSVNUIHN1YiAlYXR0cnM7PgorCis8IUVMRU1FTlQgc3VwICVJbmxpbmU7PiA8IS0tIHN1cGVyc2NyaXB0IC0tPgorPCFBVFRMSVNUIHN1cCAlYXR0cnM7PgorCis8IUVMRU1FTlQgdHQgJUlubGluZTs+ICAgPCEtLSBmaXhlZCBwaXRjaCBmb250IC0tPgorPCFBVFRMSVNUIHR0ICVhdHRyczs+CisKKzwhRUxFTUVOVCBpICVJbmxpbmU7PiAgIDwhLS0gaXRhbGljIGZvbnQgLS0+Cis8IUFUVExJU1QgaSAlYXR0cnM7PgorCis8IUVMRU1FTlQgYiAlSW5saW5lOz4gICA8IS0tIGJvbGQgZm9udCAtLT4KKzwhQVRUTElTVCBiICVhdHRyczs+CisKKzwhRUxFTUVOVCBiaWcgJUlubGluZTs+ICAgPCEtLSBiaWdnZXIgZm9udCAtLT4KKzwhQVRUTElTVCBiaWcgJWF0dHJzOz4KKworPCFFTEVNRU5UIHNtYWxsICVJbmxpbmU7PiAgIDwhLS0gc21hbGxlciBmb250IC0tPgorPCFBVFRMSVNUIHNtYWxsICVhdHRyczs+CisKKzwhRUxFTUVOVCB1ICVJbmxpbmU7PiAgIDwhLS0gdW5kZXJsaW5lIC0tPgorPCFBVFRMSVNUIHUgJWF0dHJzOz4KKworPCFFTEVNRU5UIHMgJUlubGluZTs+ICAgPCEtLSBzdHJpa2UtdGhyb3VnaCAtLT4KKzwhQVRUTElTVCBzICVhdHRyczs+CisKKzwhRUxFTUVOVCBzdHJpa2UgJUlubGluZTs+ICAgPCEtLSBzdHJpa2UtdGhyb3VnaCAtLT4KKzwhQVRUTElTVCBzdHJpa2UgJWF0dHJzOz4KKworPCFFTEVNRU5UIGJhc2Vmb250IEVNUFRZPiAgPCEtLSBiYXNlIGZvbnQgc2l6ZSAtLT4KKzwhQVRUTElTVCBiYXNlZm9udAorICBpZCAgICAgICAgICBJRCAgICAgICAgICAgICAjSU1QTElFRAorICBzaXplICAgICAgICBDREFUQSAgICAgICAgICAjUkVRVUlSRUQKKyAgY29sb3IgICAgICAgJUNvbG9yOyAgICAgICAgI0lNUExJRUQKKyAgZmFjZSAgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVMRU1FTlQgZm9udCAlSW5saW5lOz4gPCEtLSBsb2NhbCBjaGFuZ2UgdG8gZm9udCAtLT4KKzwhQVRUTElTVCBmb250CisgICVjb3JlYXR0cnM7CisgICVpMThuOworICBzaXplICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBjb2xvciAgICAgICAlQ29sb3I7ICAgICAgICAjSU1QTElFRAorICBmYWNlICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS09PT09PT09PT09PT09PT09PT09PSBPYmplY3QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKzwhLS0KKyAgb2JqZWN0IGlzIHVzZWQgdG8gZW1iZWQgb2JqZWN0cyBhcyBwYXJ0IG9mIEhUTUwgcGFnZXMuCisgIHBhcmFtIGVsZW1lbnRzIHNob3VsZCBwcmVjZWRlIG90aGVyIGNvbnRlbnQuIFBhcmFtZXRlcnMKKyAgY2FuIGFsc28gYmUgZXhwcmVzc2VkIGFzIGF0dHJpYnV0ZS92YWx1ZSBwYWlycyBvbiB0aGUKKyAgb2JqZWN0IGVsZW1lbnQgaXRzZWxmIHdoZW4gYnJldml0eSBpcyBkZXNpcmVkLgorLS0+CisKKzwhRUxFTUVOVCBvYmplY3QgKCNQQ0RBVEEgfCBwYXJhbSB8ICVibG9jazsgfCBmb3JtIHwlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIG9iamVjdAorICAlYXR0cnM7CisgIGRlY2xhcmUgICAgIChkZWNsYXJlKSAgICAgICNJTVBMSUVECisgIGNsYXNzaWQgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGNvZGViYXNlICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRhdGEgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIGNvZGV0eXBlICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIGFyY2hpdmUgICAgICVVcmlMaXN0OyAgICAgICNJTVBMSUVECisgIHN0YW5kYnkgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIG5hbWUgICAgICAgIE5NVE9LRU4gICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgIGJvcmRlciAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIGhzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIHZzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorICBwYXJhbSBpcyB1c2VkIHRvIHN1cHBseSBhIG5hbWVkIHByb3BlcnR5IHZhbHVlLgorICBJbiBYTUwgaXQgd291bGQgc2VlbSBuYXR1cmFsIHRvIGZvbGxvdyBSREYgYW5kIHN1cHBvcnQgYW4KKyAgYWJicmV2aWF0ZWQgc3ludGF4IHdoZXJlIHRoZSBwYXJhbSBlbGVtZW50cyBhcmUgcmVwbGFjZWQKKyAgYnkgYXR0cmlidXRlIHZhbHVlIHBhaXJzIG9uIHRoZSBvYmplY3Qgc3RhcnQgdGFnLgorLS0+Cis8IUVMRU1FTlQgcGFyYW0gRU1QVFk+Cis8IUFUVExJU1QgcGFyYW0KKyAgaWQgICAgICAgICAgSUQgICAgICAgICAgICAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgQ0RBVEEgICAgICAgICAgI1JFUVVJUkVECisgIHZhbHVlICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHZhbHVldHlwZSAgIChkYXRhfHJlZnxvYmplY3QpICJkYXRhIgorICB0eXBlICAgICAgICAlQ29udGVudFR5cGU7ICAjSU1QTElFRAorICA+CisKKzwhLS09PT09PT09PT09PT09PT09PT09IEphdmEgYXBwbGV0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKzwhLS0KKyAgT25lIG9mIGNvZGUgb3Igb2JqZWN0IGF0dHJpYnV0ZXMgbXVzdCBiZSBwcmVzZW50LgorICBQbGFjZSBwYXJhbSBlbGVtZW50cyBiZWZvcmUgb3RoZXIgY29udGVudC4KKy0tPgorPCFFTEVNRU5UIGFwcGxldCAoI1BDREFUQSB8IHBhcmFtIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIGFwcGxldAorICAlY29yZWF0dHJzOworICBjb2RlYmFzZSAgICAlVVJJOyAgICAgICAgICAjSU1QTElFRAorICBhcmNoaXZlICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBjb2RlICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBvYmplY3QgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBhbHQgICAgICAgICAlVGV4dDsgICAgICAgICAjSU1QTElFRAorICBuYW1lICAgICAgICBOTVRPS0VOICAgICAgICAjSU1QTElFRAorICB3aWR0aCAgICAgICAlTGVuZ3RoOyAgICAgICAjUkVRVUlSRUQKKyAgaGVpZ2h0ICAgICAgJUxlbmd0aDsgICAgICAgI1JFUVVJUkVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgIGhzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIHZzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSW1hZ2VzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLQorICAgVG8gYXZvaWQgYWNjZXNzaWJpbGl0eSBwcm9ibGVtcyBmb3IgcGVvcGxlIHdobyBhcmVuJ3QKKyAgIGFibGUgdG8gc2VlIHRoZSBpbWFnZSwgeW91IHNob3VsZCBwcm92aWRlIGEgdGV4dAorICAgZGVzY3JpcHRpb24gdXNpbmcgdGhlIGFsdCBhbmQgbG9uZ2Rlc2MgYXR0cmlidXRlcy4KKyAgIEluIGFkZGl0aW9uLCBhdm9pZCB0aGUgdXNlIG9mIHNlcnZlci1zaWRlIGltYWdlIG1hcHMuCistLT4KKworPCFFTEVNRU5UIGltZyBFTVBUWT4KKzwhQVRUTElTVCBpbWcKKyAgJWF0dHJzOworICBzcmMgICAgICAgICAlVVJJOyAgICAgICAgICAjUkVRVUlSRUQKKyAgYWx0ICAgICAgICAgJVRleHQ7ICAgICAgICAgI1JFUVVJUkVECisgIG5hbWUgICAgICAgIE5NVE9LRU4gICAgICAgICNJTVBMSUVECisgIGxvbmdkZXNjICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGlzbWFwICAgICAgIChpc21hcCkgICAgICAgICNJTVBMSUVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgIGJvcmRlciAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIGhzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIHZzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLSB1c2VtYXAgcG9pbnRzIHRvIGEgbWFwIGVsZW1lbnQgd2hpY2ggbWF5IGJlIGluIHRoaXMgZG9jdW1lbnQKKyAgb3IgYW4gZXh0ZXJuYWwgZG9jdW1lbnQsIGFsdGhvdWdoIHRoZSBsYXR0ZXIgaXMgbm90IHdpZGVseSBzdXBwb3J0ZWQgLS0+CisKKzwhLS09PT09PT09PT09PT09PT09PT0gQ2xpZW50LXNpZGUgaW1hZ2UgbWFwcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhLS0gVGhlc2UgY2FuIGJlIHBsYWNlZCBpbiB0aGUgc2FtZSBkb2N1bWVudCBvciBncm91cGVkIGluIGEKKyAgICAgc2VwYXJhdGUgZG9jdW1lbnQgYWx0aG91Z2ggdGhpcyBpc24ndCB5ZXQgd2lkZWx5IHN1cHBvcnRlZCAtLT4KKworPCFFTEVNRU5UIG1hcCAoKCVibG9jazsgfCBmb3JtIHwgJW1pc2M7KSsgfCBhcmVhKyk+Cis8IUFUVExJU1QgbWFwCisgICVpMThuOworICAlZXZlbnRzOworICBpZCAgICAgICAgICBJRCAgICAgICAgICAgICAjUkVRVUlSRUQKKyAgY2xhc3MgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgc3R5bGUgICAgICAgJVN0eWxlU2hlZXQ7ICAgI0lNUExJRUQKKyAgdGl0bGUgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgTk1UT0tFTiAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVMRU1FTlQgYXJlYSBFTVBUWT4KKzwhQVRUTElTVCBhcmVhCisgICVhdHRyczsKKyAgc2hhcGUgICAgICAgJVNoYXBlOyAgICAgICAgInJlY3QiCisgIGNvb3JkcyAgICAgICVDb29yZHM7ICAgICAgICNJTVBMSUVECisgIGhyZWYgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIG5vaHJlZiAgICAgIChub2hyZWYpICAgICAgICNJTVBMSUVECisgIGFsdCAgICAgICAgICVUZXh0OyAgICAgICAgICNSRVFVSVJFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICB0YXJnZXQgICAgICAlRnJhbWVUYXJnZXQ7ICAjSU1QTElFRAorICA+CisKKzwhLS09PT09PT09PT09PT09PT09IEZvcm1zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRUxFTUVOVCBmb3JtICVmb3JtLmNvbnRlbnQ7PiAgIDwhLS0gZm9ybXMgc2hvdWxkbid0IGJlIG5lc3RlZCAtLT4KKworPCFBVFRMSVNUIGZvcm0KKyAgJWF0dHJzOworICBhY3Rpb24gICAgICAlVVJJOyAgICAgICAgICAjUkVRVUlSRUQKKyAgbWV0aG9kICAgICAgKGdldHxwb3N0KSAgICAgImdldCIKKyAgbmFtZSAgICAgICAgTk1UT0tFTiAgICAgICAgI0lNUExJRUQKKyAgZW5jdHlwZSAgICAgJUNvbnRlbnRUeXBlOyAgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKKyAgb25zdWJtaXQgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25yZXNldCAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgYWNjZXB0ICAgICAgJUNvbnRlbnRUeXBlczsgI0lNUExJRUQKKyAgYWNjZXB0LWNoYXJzZXQgJUNoYXJzZXRzOyAgI0lNUExJRUQKKyAgdGFyZ2V0ICAgICAgJUZyYW1lVGFyZ2V0OyAgI0lNUExJRUQKKyAgPgorCis8IS0tCisgIEVhY2ggbGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gT05FIGZpZWxkCisgIExhYmVsIGVsZW1lbnRzIHNob3VsZG4ndCBiZSBuZXN0ZWQuCistLT4KKzwhRUxFTUVOVCBsYWJlbCAlSW5saW5lOz4KKzwhQVRUTElTVCBsYWJlbAorICAlYXR0cnM7CisgIGZvciAgICAgICAgIElEUkVGICAgICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCFFTlRJVFkgJSBJbnB1dFR5cGUKKyAgIih0ZXh0IHwgcGFzc3dvcmQgfCBjaGVja2JveCB8CisgICAgcmFkaW8gfCBzdWJtaXQgfCByZXNldCB8CisgICAgZmlsZSB8IGhpZGRlbiB8IGltYWdlIHwgYnV0dG9uKSIKKyAgID4KKworPCEtLSB0aGUgbmFtZSBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIGFsbCBidXQgc3VibWl0ICYgcmVzZXQgLS0+CisKKzwhRUxFTUVOVCBpbnB1dCBFTVBUWT4gICAgIDwhLS0gZm9ybSBjb250cm9sIC0tPgorPCFBVFRMSVNUIGlucHV0CisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJUlucHV0VHlwZTsgICAgInRleHQiCisgIG5hbWUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHZhbHVlICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGNoZWNrZWQgICAgIChjaGVja2VkKSAgICAgICNJTVBMSUVECisgIGRpc2FibGVkICAgIChkaXNhYmxlZCkgICAgICNJTVBMSUVECisgIHJlYWRvbmx5ICAgIChyZWFkb25seSkgICAgICNJTVBMSUVECisgIHNpemUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIG1heGxlbmd0aCAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIHNyYyAgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGFsdCAgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uc2VsZWN0ICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uY2hhbmdlICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIGFjY2VwdCAgICAgICVDb250ZW50VHlwZXM7ICNJTVBMSUVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIHNlbGVjdCAob3B0Z3JvdXB8b3B0aW9uKSs+ICA8IS0tIG9wdGlvbiBzZWxlY3RvciAtLT4KKzwhQVRUTElTVCBzZWxlY3QKKyAgJWF0dHJzOworICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBzaXplICAgICAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBtdWx0aXBsZSAgICAobXVsdGlwbGUpICAgICAjSU1QTElFRAorICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmNoYW5nZSAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBvcHRncm91cCAob3B0aW9uKSs+ICAgPCEtLSBvcHRpb24gZ3JvdXAgLS0+Cis8IUFUVExJU1Qgb3B0Z3JvdXAKKyAgJWF0dHJzOworICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICBsYWJlbCAgICAgICAlVGV4dDsgICAgICAgICAjUkVRVUlSRUQKKyAgPgorCis8IUVMRU1FTlQgb3B0aW9uICgjUENEQVRBKT4gICAgIDwhLS0gc2VsZWN0YWJsZSBjaG9pY2UgLS0+Cis8IUFUVExJU1Qgb3B0aW9uCisgICVhdHRyczsKKyAgc2VsZWN0ZWQgICAgKHNlbGVjdGVkKSAgICAgI0lNUExJRUQKKyAgZGlzYWJsZWQgICAgKGRpc2FibGVkKSAgICAgI0lNUExJRUQKKyAgbGFiZWwgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgdmFsdWUgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVMRU1FTlQgdGV4dGFyZWEgKCNQQ0RBVEEpPiAgICAgPCEtLSBtdWx0aS1saW5lIHRleHQgZmllbGQgLS0+Cis8IUFUVExJU1QgdGV4dGFyZWEKKyAgJWF0dHJzOworICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICByb3dzICAgICAgICAlTnVtYmVyOyAgICAgICAjUkVRVUlSRUQKKyAgY29scyAgICAgICAgJU51bWJlcjsgICAgICAgI1JFUVVJUkVECisgIGRpc2FibGVkICAgIChkaXNhYmxlZCkgICAgICNJTVBMSUVECisgIHJlYWRvbmx5ICAgIChyZWFkb25seSkgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uc2VsZWN0ICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uY2hhbmdlICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorICBUaGUgZmllbGRzZXQgZWxlbWVudCBpcyB1c2VkIHRvIGdyb3VwIGZvcm0gZmllbGRzLgorICBPbmx5IG9uZSBsZWdlbmQgZWxlbWVudCBzaG91bGQgb2NjdXIgaW4gdGhlIGNvbnRlbnQKKyAgYW5kIGlmIHByZXNlbnQgc2hvdWxkIG9ubHkgYmUgcHJlY2VkZWQgYnkgd2hpdGVzcGFjZS4KKy0tPgorPCFFTEVNRU5UIGZpZWxkc2V0ICgjUENEQVRBIHwgbGVnZW5kIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIGZpZWxkc2V0CisgICVhdHRyczsKKyAgPgorCis8IUVOVElUWSAlIExBbGlnbiAiKHRvcHxib3R0b218bGVmdHxyaWdodCkiPgorCis8IUVMRU1FTlQgbGVnZW5kICVJbmxpbmU7PiAgICAgPCEtLSBmaWVsZHNldCBsYWJlbCAtLT4KKzwhQVRUTElTVCBsZWdlbmQKKyAgJWF0dHJzOworICBhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICBhbGlnbiAgICAgICAlTEFsaWduOyAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0KKyBDb250ZW50IGlzICVGbG93OyBleGNsdWRpbmcgYSwgZm9ybSwgZm9ybSBjb250cm9scywgaWZyYW1lCistLT4gCis8IUVMRU1FTlQgYnV0dG9uICVidXR0b24uY29udGVudDs+ICA8IS0tIHB1c2ggYnV0dG9uIC0tPgorPCFBVFRMSVNUIGJ1dHRvbgorICAlYXR0cnM7CisgIG5hbWUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHZhbHVlICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHR5cGUgICAgICAgIChidXR0b258c3VibWl0fHJlc2V0KSAic3VibWl0IgorICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0gc2luZ2xlLWxpbmUgdGV4dCBpbnB1dCBjb250cm9sIChERVBSRUNBVEVEKSAtLT4KKzwhRUxFTUVOVCBpc2luZGV4IEVNUFRZPgorPCFBVFRMSVNUIGlzaW5kZXgKKyAgJWNvcmVhdHRyczsKKyAgJWkxOG47CisgIHByb21wdCAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT09PT09IFRhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBEZXJpdmVkIGZyb20gSUVURiBIVE1MIHRhYmxlIHN0YW5kYXJkLCBzZWUgW1JGQzE5NDJdIC0tPgorCis8IS0tCisgVGhlIGJvcmRlciBhdHRyaWJ1dGUgc2V0cyB0aGUgdGhpY2tuZXNzIG9mIHRoZSBmcmFtZSBhcm91bmQgdGhlCisgdGFibGUuIFRoZSBkZWZhdWx0IHVuaXRzIGFyZSBzY3JlZW4gcGl4ZWxzLgorCisgVGhlIGZyYW1lIGF0dHJpYnV0ZSBzcGVjaWZpZXMgd2hpY2ggcGFydHMgb2YgdGhlIGZyYW1lIGFyb3VuZAorIHRoZSB0YWJsZSBzaG91bGQgYmUgcmVuZGVyZWQuIFRoZSB2YWx1ZXMgYXJlIG5vdCB0aGUgc2FtZSBhcworIENBTFMgdG8gYXZvaWQgYSBuYW1lIGNsYXNoIHdpdGggdGhlIHZhbGlnbiBhdHRyaWJ1dGUuCistLT4KKzwhRU5USVRZICUgVEZyYW1lICIodm9pZHxhYm92ZXxiZWxvd3xoc2lkZXN8bGhzfHJoc3x2c2lkZXN8Ym94fGJvcmRlcikiPgorCis8IS0tCisgVGhlIHJ1bGVzIGF0dHJpYnV0ZSBkZWZpbmVzIHdoaWNoIHJ1bGVzIHRvIGRyYXcgYmV0d2VlbiBjZWxsczoKKworIElmIHJ1bGVzIGlzIGFic2VudCB0aGVuIGFzc3VtZToKKyAgICAgIm5vbmUiIGlmIGJvcmRlciBpcyBhYnNlbnQgb3IgYm9yZGVyPSIwIiBvdGhlcndpc2UgImFsbCIKKy0tPgorCis8IUVOVElUWSAlIFRSdWxlcyAiKG5vbmUgfCBncm91cHMgfCByb3dzIHwgY29scyB8IGFsbCkiPgorICAKKzwhLS0gaG9yaXpvbnRhbCBwbGFjZW1lbnQgb2YgdGFibGUgcmVsYXRpdmUgdG8gZG9jdW1lbnQgLS0+Cis8IUVOVElUWSAlIFRBbGlnbiAiKGxlZnR8Y2VudGVyfHJpZ2h0KSI+CisKKzwhLS0gaG9yaXpvbnRhbCBhbGlnbm1lbnQgYXR0cmlidXRlcyBmb3IgY2VsbCBjb250ZW50cworCisgIGNoYXIgICAgICAgIGFsaWdubWVudCBjaGFyLCBlLmcuIGNoYXI9IjoiCisgIGNoYXJvZmYgICAgIG9mZnNldCBmb3IgYWxpZ25tZW50IGNoYXIKKy0tPgorPCFFTlRJVFkgJSBjZWxsaGFsaWduCisgICJhbGlnbiAgICAgIChsZWZ0fGNlbnRlcnxyaWdodHxqdXN0aWZ5fGNoYXIpICNJTVBMSUVECisgICBjaGFyICAgICAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgICBjaGFyb2ZmICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVEIgorICA+CisKKzwhLS0gdmVydGljYWwgYWxpZ25tZW50IGF0dHJpYnV0ZXMgZm9yIGNlbGwgY29udGVudHMgLS0+Cis8IUVOVElUWSAlIGNlbGx2YWxpZ24KKyAgInZhbGlnbiAgICAgKHRvcHxtaWRkbGV8Ym90dG9tfGJhc2VsaW5lKSAjSU1QTElFRCIKKyAgPgorCis8IUVMRU1FTlQgdGFibGUKKyAgICAgKGNhcHRpb24/LCAoY29sKnxjb2xncm91cCopLCB0aGVhZD8sIHRmb290PywgKHRib2R5K3x0cispKT4KKzwhRUxFTUVOVCBjYXB0aW9uICAlSW5saW5lOz4KKzwhRUxFTUVOVCB0aGVhZCAgICAodHIpKz4KKzwhRUxFTUVOVCB0Zm9vdCAgICAodHIpKz4KKzwhRUxFTUVOVCB0Ym9keSAgICAodHIpKz4KKzwhRUxFTUVOVCBjb2xncm91cCAoY29sKSo+Cis8IUVMRU1FTlQgY29sICAgICAgRU1QVFk+Cis8IUVMRU1FTlQgdHIgICAgICAgKHRofHRkKSs+Cis8IUVMRU1FTlQgdGggICAgICAgJUZsb3c7PgorPCFFTEVNRU5UIHRkICAgICAgICVGbG93Oz4KKworPCFBVFRMSVNUIHRhYmxlCisgICVhdHRyczsKKyAgc3VtbWFyeSAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgd2lkdGggICAgICAgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgYm9yZGVyICAgICAgJVBpeGVsczsgICAgICAgI0lNUExJRUQKKyAgZnJhbWUgICAgICAgJVRGcmFtZTsgICAgICAgI0lNUExJRUQKKyAgcnVsZXMgICAgICAgJVRSdWxlczsgICAgICAgI0lNUExJRUQKKyAgY2VsbHNwYWNpbmcgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgY2VsbHBhZGRpbmcgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgYWxpZ24gICAgICAgJVRBbGlnbjsgICAgICAgI0lNUExJRUQKKyAgYmdjb2xvciAgICAgJUNvbG9yOyAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVOVElUWSAlIENBbGlnbiAiKHRvcHxib3R0b218bGVmdHxyaWdodCkiPgorCis8IUFUVExJU1QgY2FwdGlvbgorICAlYXR0cnM7CisgIGFsaWduICAgICAgICVDQWxpZ247ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorY29sZ3JvdXAgZ3JvdXBzIGEgc2V0IG9mIGNvbCBlbGVtZW50cy4gSXQgYWxsb3dzIHlvdSB0byBncm91cAorc2V2ZXJhbCBzZW1hbnRpY2FsbHkgcmVsYXRlZCBjb2x1bW5zIHRvZ2V0aGVyLgorLS0+Cis8IUFUVExJU1QgY29sZ3JvdXAKKyAgJWF0dHJzOworICBzcGFuICAgICAgICAlTnVtYmVyOyAgICAgICAiMSIKKyAgd2lkdGggICAgICAgJU11bHRpTGVuZ3RoOyAgI0lNUExJRUQKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICA+CisKKzwhLS0KKyBjb2wgZWxlbWVudHMgZGVmaW5lIHRoZSBhbGlnbm1lbnQgcHJvcGVydGllcyBmb3IgY2VsbHMgaW4KKyBvbmUgb3IgbW9yZSBjb2x1bW5zLgorCisgVGhlIHdpZHRoIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW5zLCBlLmcuCisKKyAgICAgd2lkdGg9NjQgICAgICAgIHdpZHRoIGluIHNjcmVlbiBwaXhlbHMKKyAgICAgd2lkdGg9MC41KiAgICAgIHJlbGF0aXZlIHdpZHRoIG9mIDAuNQorCisgVGhlIHNwYW4gYXR0cmlidXRlIGNhdXNlcyB0aGUgYXR0cmlidXRlcyBvZiBvbmUKKyBjb2wgZWxlbWVudCB0byBhcHBseSB0byBtb3JlIHRoYW4gb25lIGNvbHVtbi4KKy0tPgorPCFBVFRMSVNUIGNvbAorICAlYXR0cnM7CisgIHNwYW4gICAgICAgICVOdW1iZXI7ICAgICAgICIxIgorICB3aWR0aCAgICAgICAlTXVsdGlMZW5ndGg7ICAjSU1QTElFRAorICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgID4KKworPCEtLQorICAgIFVzZSB0aGVhZCB0byBkdXBsaWNhdGUgaGVhZGVycyB3aGVuIGJyZWFraW5nIHRhYmxlCisgICAgYWNyb3NzIHBhZ2UgYm91bmRhcmllcywgb3IgZm9yIHN0YXRpYyBoZWFkZXJzIHdoZW4KKyAgICB0Ym9keSBzZWN0aW9ucyBhcmUgcmVuZGVyZWQgaW4gc2Nyb2xsaW5nIHBhbmVsLgorCisgICAgVXNlIHRmb290IHRvIGR1cGxpY2F0ZSBmb290ZXJzIHdoZW4gYnJlYWtpbmcgdGFibGUKKyAgICBhY3Jvc3MgcGFnZSBib3VuZGFyaWVzLCBvciBmb3Igc3RhdGljIGZvb3RlcnMgd2hlbgorICAgIHRib2R5IHNlY3Rpb25zIGFyZSByZW5kZXJlZCBpbiBzY3JvbGxpbmcgcGFuZWwuCisKKyAgICBVc2UgbXVsdGlwbGUgdGJvZHkgc2VjdGlvbnMgd2hlbiBydWxlcyBhcmUgbmVlZGVkCisgICAgYmV0d2VlbiBncm91cHMgb2YgdGFibGUgcm93cy4KKy0tPgorPCFBVFRMSVNUIHRoZWFkCisgICVhdHRyczsKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICA+CisKKzwhQVRUTElTVCB0Zm9vdAorICAlYXR0cnM7CisgICVjZWxsaGFsaWduOworICAlY2VsbHZhbGlnbjsKKyAgPgorCis8IUFUVExJU1QgdGJvZHkKKyAgJWF0dHJzOworICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgID4KKworPCFBVFRMSVNUIHRyCisgICVhdHRyczsKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICBiZ2NvbG9yICAgICAlQ29sb3I7ICAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0gU2NvcGUgaXMgc2ltcGxlciB0aGFuIGhlYWRlcnMgYXR0cmlidXRlIGZvciBjb21tb24gdGFibGVzIC0tPgorPCFFTlRJVFkgJSBTY29wZSAiKHJvd3xjb2x8cm93Z3JvdXB8Y29sZ3JvdXApIj4KKworPCEtLSB0aCBpcyBmb3IgaGVhZGVycywgdGQgZm9yIGRhdGEgYW5kIGZvciBjZWxscyBhY3RpbmcgYXMgYm90aCAtLT4KKworPCFBVFRMSVNUIHRoCisgICVhdHRyczsKKyAgYWJiciAgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgYXhpcyAgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgaGVhZGVycyAgICAgSURSRUZTICAgICAgICAgI0lNUExJRUQKKyAgc2NvcGUgICAgICAgJVNjb3BlOyAgICAgICAgI0lNUExJRUQKKyAgcm93c3BhbiAgICAgJU51bWJlcjsgICAgICAgIjEiCisgIGNvbHNwYW4gICAgICVOdW1iZXI7ICAgICAgICIxIgorICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgIG5vd3JhcCAgICAgIChub3dyYXApICAgICAgICNJTVBMSUVECisgIGJnY29sb3IgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCFBVFRMSVNUIHRkCisgICVhdHRyczsKKyAgYWJiciAgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgYXhpcyAgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgaGVhZGVycyAgICAgSURSRUZTICAgICAgICAgI0lNUExJRUQKKyAgc2NvcGUgICAgICAgJVNjb3BlOyAgICAgICAgI0lNUExJRUQKKyAgcm93c3BhbiAgICAgJU51bWJlcjsgICAgICAgIjEiCisgIGNvbHNwYW4gICAgICVOdW1iZXI7ICAgICAgICIxIgorICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgIG5vd3JhcCAgICAgIChub3dyYXApICAgICAgICNJTVBMSUVECisgIGJnY29sb3IgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwxLXN0cmljdC5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy94aHRtbDEtc3RyaWN0LmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2MzZGEyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwxLXN0cmljdC5kdGQKQEAgLTAsMCArMSw5ODYgQEAKKzwhLS0KKyAgIEV4dGVuc2libGUgSFRNTCB2ZXJzaW9uIDEuMCBTdHJpY3QgRFRECisKKyAgIFRoaXMgaXMgdGhlIHNhbWUgYXMgSFRNTCA0LjAgU3RyaWN0IGV4Y2VwdCBmb3IKKyAgIGNoYW5nZXMgZHVlIHRvIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIFhNTCBhbmQgU0dNTC4KKworICAgTmFtZXNwYWNlID0gaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbAorCisgICBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiwgc2VlOiBodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEKKworICAgQ29weXJpZ2h0IChjKSAxOTk4LTE5OTkgVzNDIChNSVQsIElOUklBLCBLZWlvKSwKKyAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIAorCisgICBUaGlzIERURCBtb2R1bGUgaXMgaWRlbnRpZmllZCBieSB0aGUgUFVCTElDIGFuZCBTWVNURU0gaWRlbnRpZmllcnM6CisKKyAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICBTWVNURU0gImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiCisKKworLS0+CisKKzwhLS09PT09PT09PT09PT09PT09IENoYXJhY3RlciBtbmVtb25pYyBlbnRpdGllcyA9PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRU5USVRZICUgSFRNTGxhdDEgUFVCTElDCisgICAiLS8vVzNDLy9FTlRJVElFUyBMYXRpbiAxIGZvciBYSFRNTC8vRU4iCisgICAieGh0bWwtbGF0MS5lbnQiPgorJUhUTUxsYXQxOworCis8IUVOVElUWSAlIEhUTUxzeW1ib2wgUFVCTElDCisgICAiLS8vVzNDLy9FTlRJVElFUyBTeW1ib2xzIGZvciBYSFRNTC8vRU4iCisgICAieGh0bWwtc3ltYm9sLmVudCI+CislSFRNTHN5bWJvbDsKKworPCFFTlRJVFkgJSBIVE1Mc3BlY2lhbCBQVUJMSUMKKyAgICItLy9XM0MvL0VOVElUSUVTIFNwZWNpYWwgZm9yIFhIVE1MLy9FTiIKKyAgICJ4aHRtbC1zcGVjaWFsLmVudCI+CislSFRNTHNwZWNpYWw7CisKKzwhLS09PT09PT09PT09PT09PT09PT0gSW1wb3J0ZWQgTmFtZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRU5USVRZICUgQ29udGVudFR5cGUgIkNEQVRBIj4KKyAgICA8IS0tIG1lZGlhIHR5cGUsIGFzIHBlciBbUkZDMjA0NV0gLS0+CisKKzwhRU5USVRZICUgQ29udGVudFR5cGVzICJDREFUQSI+CisgICAgPCEtLSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBtZWRpYSB0eXBlcywgYXMgcGVyIFtSRkMyMDQ1XSAtLT4KKworPCFFTlRJVFkgJSBDaGFyc2V0ICJDREFUQSI+CisgICAgPCEtLSBhIGNoYXJhY3RlciBlbmNvZGluZywgYXMgcGVyIFtSRkMyMDQ1XSAtLT4KKworPCFFTlRJVFkgJSBDaGFyc2V0cyAiQ0RBVEEiPgorICAgIDwhLS0gYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBjaGFyYWN0ZXIgZW5jb2RpbmdzLCBhcyBwZXIgW1JGQzIwNDVdIC0tPgorCis8IUVOVElUWSAlIExhbmd1YWdlQ29kZSAiTk1UT0tFTiI+CisgICAgPCEtLSBhIGxhbmd1YWdlIGNvZGUsIGFzIHBlciBbUkZDMTc2Nl0gLS0+CisKKzwhRU5USVRZICUgQ2hhcmFjdGVyICJDREFUQSI+CisgICAgPCEtLSBhIHNpbmdsZSBjaGFyYWN0ZXIgZnJvbSBbSVNPMTA2NDZdIC0tPgorCis8IUVOVElUWSAlIE51bWJlciAiQ0RBVEEiPgorICAgIDwhLS0gb25lIG9yIG1vcmUgZGlnaXRzIC0tPgorCis8IUVOVElUWSAlIExpbmtUeXBlcyAiQ0RBVEEiPgorICAgIDwhLS0gc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgbGluayB0eXBlcyAtLT4KKworPCFFTlRJVFkgJSBNZWRpYURlc2MgIkNEQVRBIj4KKyAgICA8IS0tIHNpbmdsZSBvciBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBtZWRpYSBkZXNjcmlwdG9ycyAtLT4KKworPCFFTlRJVFkgJSBVUkkgIkNEQVRBIj4KKyAgICA8IS0tIGEgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyLCBzZWUgW1JGQzIzOTZdIC0tPgorCis8IUVOVElUWSAlIFVyaUxpc3QgIkNEQVRBIj4KKyAgICA8IS0tIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVycyAtLT4KKworPCFFTlRJVFkgJSBEYXRldGltZSAiQ0RBVEEiPgorICAgIDwhLS0gZGF0ZSBhbmQgdGltZSBpbmZvcm1hdGlvbi4gSVNPIGRhdGUgZm9ybWF0IC0tPgorCis8IUVOVElUWSAlIFNjcmlwdCAiQ0RBVEEiPgorICAgIDwhLS0gc2NyaXB0IGV4cHJlc3Npb24gLS0+CisKKzwhRU5USVRZICUgU3R5bGVTaGVldCAiQ0RBVEEiPgorICAgIDwhLS0gc3R5bGUgc2hlZXQgZGF0YSAtLT4KKworPCFFTlRJVFkgJSBUZXh0ICJDREFUQSI+CisgICAgPCEtLSB1c2VkIGZvciB0aXRsZXMgZXRjLiAtLT4KKworPCFFTlRJVFkgJSBGcmFtZVRhcmdldCAiTk1UT0tFTiI+CisgICAgPCEtLSByZW5kZXIgaW4gdGhpcyBmcmFtZSAtLT4KKworPCFFTlRJVFkgJSBMZW5ndGggIkNEQVRBIj4KKyAgICA8IS0tIG5uIGZvciBwaXhlbHMgb3Igbm4lIGZvciBwZXJjZW50YWdlIGxlbmd0aCAtLT4KKworPCFFTlRJVFkgJSBNdWx0aUxlbmd0aCAiQ0RBVEEiPgorICAgIDwhLS0gcGl4ZWwsIHBlcmNlbnRhZ2UsIG9yIHJlbGF0aXZlIC0tPgorCis8IUVOVElUWSAlIE11bHRpTGVuZ3RocyAiQ0RBVEEiPgorICAgIDwhLS0gY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgTXVsdGlMZW5ndGggLS0+CisKKzwhRU5USVRZICUgUGl4ZWxzICJDREFUQSI+CisgICAgPCEtLSBpbnRlZ2VyIHJlcHJlc2VudGluZyBsZW5ndGggaW4gcGl4ZWxzIC0tPgorCis8IS0tIHRoZXNlIGFyZSB1c2VkIGZvciBpbWFnZSBtYXBzIC0tPgorCis8IUVOVElUWSAlIFNoYXBlICIocmVjdHxjaXJjbGV8cG9seXxkZWZhdWx0KSI+CisKKzwhRU5USVRZICUgQ29vcmRzICJDREFUQSI+CisgICAgPCEtLSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBsZW5ndGhzIC0tPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBHZW5lcmljIEF0dHJpYnV0ZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvcmUgYXR0cmlidXRlcyBjb21tb24gdG8gbW9zdCBlbGVtZW50cworICBpZCAgICAgICBkb2N1bWVudC13aWRlIHVuaXF1ZSBpZAorICBjbGFzcyAgICBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBjbGFzc2VzCisgIHN0eWxlICAgIGFzc29jaWF0ZWQgc3R5bGUgaW5mbworICB0aXRsZSAgICBhZHZpc29yeSB0aXRsZS9hbXBsaWZpY2F0aW9uCistLT4KKzwhRU5USVRZICUgY29yZWF0dHJzCisgImlkICAgICAgICAgIElEICAgICAgICAgICAgICNJTVBMSUVECisgIGNsYXNzICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHN0eWxlICAgICAgICVTdHlsZVNoZWV0OyAgICNJTVBMSUVECisgIHRpdGxlICAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVEIgorICA+CisKKzwhLS0gaW50ZXJuYXRpb25hbGl6YXRpb24gYXR0cmlidXRlcworICBsYW5nICAgICAgICBsYW5ndWFnZSBjb2RlIChiYWNrd2FyZHMgY29tcGF0aWJsZSkKKyAgeG1sOmxhbmcgICAgbGFuZ3VhZ2UgY29kZSAoYXMgcGVyIFhNTCAxLjAgc3BlYykKKyAgZGlyICAgICAgICAgZGlyZWN0aW9uIGZvciB3ZWFrL25ldXRyYWwgdGV4dAorLS0+Cis8IUVOVElUWSAlIGkxOG4KKyAibGFuZyAgICAgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgeG1sOmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgZGlyICAgICAgICAgKGx0cnxydGwpICAgICAgI0lNUExJRUQiCisgID4KKworPCEtLSBhdHRyaWJ1dGVzIGZvciBjb21tb24gVUkgZXZlbnRzCisgIG9uY2xpY2sgICAgIGEgcG9pbnRlciBidXR0b24gd2FzIGNsaWNrZWQKKyAgb25kYmxjbGljayAgYSBwb2ludGVyIGJ1dHRvbiB3YXMgZG91YmxlIGNsaWNrZWQKKyAgb25tb3VzZWRvd24gYSBwb2ludGVyIGJ1dHRvbiB3YXMgcHJlc3NlZCBkb3duCisgIG9ubW91c2V1cCAgIGEgcG9pbnRlciBidXR0b24gd2FzIHJlbGVhc2VkCisgIG9ubW91c2Vtb3ZlIGEgcG9pbnRlciB3YXMgbW92ZWQgb250byB0aGUgZWxlbWVudAorICBvbm1vdXNlb3V0ICBhIHBvaW50ZXIgd2FzIG1vdmVkIGF3YXkgZnJvbSB0aGUgZWxlbWVudAorICBvbmtleXByZXNzICBhIGtleSB3YXMgcHJlc3NlZCBhbmQgcmVsZWFzZWQKKyAgb25rZXlkb3duICAgYSBrZXkgd2FzIHByZXNzZWQgZG93bgorICBvbmtleXVwICAgICBhIGtleSB3YXMgcmVsZWFzZWQKKy0tPgorPCFFTlRJVFkgJSBldmVudHMKKyAib25jbGljayAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25kYmxjbGljayAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZWRvd24gJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZXVwICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW92ZXIgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW1vdmUgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW91dCAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXlwcmVzcyAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXlkb3duICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXl1cCAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQiCisgID4KKworPCEtLSBhdHRyaWJ1dGVzIGZvciBlbGVtZW50cyB0aGF0IGNhbiBnZXQgdGhlIGZvY3VzCisgIGFjY2Vzc2tleSAgIGFjY2Vzc2liaWxpdHkga2V5IGNoYXJhY3RlcgorICB0YWJpbmRleCAgICBwb3NpdGlvbiBpbiB0YWJiaW5nIG9yZGVyCisgIG9uZm9jdXMgICAgIHRoZSBlbGVtZW50IGdvdCB0aGUgZm9jdXMKKyAgb25ibHVyICAgICAgdGhlIGVsZW1lbnQgbG9zdCB0aGUgZm9jdXMKKy0tPgorPCFFTlRJVFkgJSBmb2N1cworICJhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRCIKKyAgPgorCis8IUVOVElUWSAlIGF0dHJzICIlY29yZWF0dHJzOyAlaTE4bjsgJWV2ZW50czsiPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBUZXh0IEVsZW1lbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVOVElUWSAlIHNwZWNpYWwKKyAgICJiciB8IHNwYW4gfCBiZG8gfCBvYmplY3QgfCBpbWcgfCBtYXAiPgorCis8IUVOVElUWSAlIGZvbnRzdHlsZSAidHQgfCBpIHwgYiB8IGJpZyB8IHNtYWxsIj4KKworPCFFTlRJVFkgJSBwaHJhc2UgImVtIHwgc3Ryb25nIHwgZGZuIHwgY29kZSB8IHEgfCBzdWIgfCBzdXAgfAorICAgICAgICAgICAgICAgICAgIHNhbXAgfCBrYmQgfCB2YXIgfCBjaXRlIHwgYWJiciB8IGFjcm9ueW0iPgorCis8IUVOVElUWSAlIGlubGluZS5mb3JtcyAiaW5wdXQgfCBzZWxlY3QgfCB0ZXh0YXJlYSB8IGxhYmVsIHwgYnV0dG9uIj4KKworPCEtLSB0aGVzZSBjYW4gb2NjdXIgYXQgYmxvY2sgb3IgaW5saW5lIGxldmVsIC0tPgorPCFFTlRJVFkgJSBtaXNjICJpbnMgfCBkZWwgfCBzY3JpcHQgfCBub3NjcmlwdCI+CisKKzwhRU5USVRZICUgaW5saW5lICJhIHwgJXNwZWNpYWw7IHwgJWZvbnRzdHlsZTsgfCAlcGhyYXNlOyB8ICVpbmxpbmUuZm9ybXM7Ij4KKworPCEtLSAlSW5saW5lOyBjb3ZlcnMgaW5saW5lIG9yICJ0ZXh0LWxldmVsIiBlbGVtZW50cyAtLT4KKzwhRU5USVRZICUgSW5saW5lICIoI1BDREFUQSB8ICVpbmxpbmU7IHwgJW1pc2M7KSoiPgorCis8IS0tPT09PT09PT09PT09PT09PT09IEJsb2NrIGxldmVsIGVsZW1lbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVOVElUWSAlIGhlYWRpbmcgImgxfGgyfGgzfGg0fGg1fGg2Ij4KKzwhRU5USVRZICUgbGlzdHMgInVsIHwgb2wgfCBkbCI+Cis8IUVOVElUWSAlIGJsb2NrdGV4dCAicHJlIHwgaHIgfCBibG9ja3F1b3RlIHwgYWRkcmVzcyI+CisKKzwhRU5USVRZICUgYmxvY2sKKyAgICAgInAgfCAlaGVhZGluZzsgfCBkaXYgfCAlbGlzdHM7IHwgJWJsb2NrdGV4dDsgfCBmaWVsZHNldCB8IHRhYmxlIj4KKworPCFFTlRJVFkgJSBCbG9jayAiKCVibG9jazsgfCBmb3JtIHwgJW1pc2M7KSoiPgorCis8IS0tICVGbG93OyBtaXhlcyBCbG9jayBhbmQgSW5saW5lIGFuZCBpcyB1c2VkIGZvciBsaXN0IGl0ZW1zIGV0Yy4gLS0+Cis8IUVOVElUWSAlIEZsb3cgIigjUENEQVRBIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqIj4KKworPCEtLT09PT09PT09PT09PT09PT09PSBDb250ZW50IG1vZGVscyBmb3IgZXhjbHVzaW9ucyA9PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBhIGVsZW1lbnRzIHVzZSAlSW5saW5lOyBleGNsdWRpbmcgYSAtLT4KKworPCFFTlRJVFkgJSBhLmNvbnRlbnQKKyAgICIoI1BDREFUQSB8ICVzcGVjaWFsOyB8ICVmb250c3R5bGU7IHwgJXBocmFzZTsgfCAlaW5saW5lLmZvcm1zOyB8ICVtaXNjOykqIj4KKworPCEtLSBwcmUgdXNlcyAlSW5saW5lIGV4Y2x1ZGluZyBpbWcsIG9iamVjdCwgYmlnLCBzbWFsbCwgc3VwIG9yIHN1cCAtLT4KKworPCFFTlRJVFkgJSBwcmUuY29udGVudAorICAgIigjUENEQVRBIHwgYSB8IGJyIHwgc3BhbiB8IGJkbyB8IG1hcCB8IHR0IHwgaSB8IGIgfAorICAgICAgJXBocmFzZTsgfCAlaW5saW5lLmZvcm1zOykqIj4KKworPCEtLSBmb3JtIHVzZXMgJUJsb2NrOyBleGNsdWRpbmcgZm9ybSAtLT4KKworPCFFTlRJVFkgJSBmb3JtLmNvbnRlbnQgIiglYmxvY2s7IHwgJW1pc2M7KSoiPgorCis8IS0tIGJ1dHRvbiB1c2VzICVGbG93OyBidXQgZXhjbHVkZXMgYSwgZm9ybSBhbmQgZm9ybSBjb250cm9scyAtLT4KKworPCFFTlRJVFkgJSBidXR0b24uY29udGVudAorICAgIigjUENEQVRBIHwgcCB8ICVoZWFkaW5nOyB8IGRpdiB8ICVsaXN0czsgfCAlYmxvY2t0ZXh0OyB8CisgICAgdGFibGUgfCAlc3BlY2lhbDsgfCAlZm9udHN0eWxlOyB8ICVwaHJhc2U7IHwgJW1pc2M7KSoiPgorCis8IS0tPT09PT09PT09PT09PT09PSBEb2N1bWVudCBTdHJ1Y3R1cmUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIHRoZSBuYW1lc3BhY2UgVVJJIGRlc2lnbmF0ZXMgdGhlIGRvY3VtZW50IHByb2ZpbGUgLS0+CisKKzwhRUxFTUVOVCBodG1sIChoZWFkLCBib2R5KT4KKzwhQVRUTElTVCBodG1sCisgICVpMThuOworICB4bWxucyAgICAgICAlVVJJOyAgICAgICAgICAjRklYRUQgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnCisgID4KKworPCEtLT09PT09PT09PT09PT09PT0gRG9jdW1lbnQgSGVhZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTlRJVFkgJSBoZWFkLm1pc2MgIihzY3JpcHR8c3R5bGV8bWV0YXxsaW5rfG9iamVjdCkqIj4KKworPCEtLSBjb250ZW50IG1vZGVsIGlzICVoZWFkLm1pc2M7IGNvbWJpbmVkIHdpdGggYSBzaW5nbGUKKyAgICAgdGl0bGUgYW5kIGFuIG9wdGlvbmFsIGJhc2UgZWxlbWVudCBpbiBhbnkgb3JkZXIgLS0+CisKKzwhRUxFTUVOVCBoZWFkICglaGVhZC5taXNjOywKKyAgICAgKCh0aXRsZSwgJWhlYWQubWlzYzssIChiYXNlLCAlaGVhZC5taXNjOyk/KSB8CisgICAgICAoYmFzZSwgJWhlYWQubWlzYzssICh0aXRsZSwgJWhlYWQubWlzYzspKSkpPgorCis8IUFUVExJU1QgaGVhZAorICAlaTE4bjsKKyAgcHJvZmlsZSAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIFRoZSB0aXRsZSBlbGVtZW50IGlzIG5vdCBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIGZsb3cgb2YgdGV4dC4KKyAgICAgICBJdCBzaG91bGQgYmUgZGlzcGxheWVkLCBmb3IgZXhhbXBsZSBhcyB0aGUgcGFnZSBoZWFkZXIgb3IKKyAgICAgICB3aW5kb3cgdGl0bGUuIEV4YWN0bHkgb25lIHRpdGxlIGlzIHJlcXVpcmVkIHBlciBkb2N1bWVudC4KKyAgICAtLT4KKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGl0bGUgJWkxOG47PgorCis8IS0tIGRvY3VtZW50IGJhc2UgVVJJIC0tPgorCis8IUVMRU1FTlQgYmFzZSBFTVBUWT4KKzwhQVRUTElTVCBiYXNlCisgIGhyZWYgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgID4KKworPCEtLSBnZW5lcmljIG1ldGFpbmZvcm1hdGlvbiAtLT4KKzwhRUxFTUVOVCBtZXRhIEVNUFRZPgorPCFBVFRMSVNUIG1ldGEKKyAgJWkxOG47CisgIGh0dHAtZXF1aXYgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIG5hbWUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGNvbnRlbnQgICAgIENEQVRBICAgICAgICAgICNSRVFVSVJFRAorICBzY2hlbWUgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0KKyAgUmVsYXRpb25zaGlwIHZhbHVlcyBjYW4gYmUgdXNlZCBpbiBwcmluY2lwbGU6CisKKyAgIGEpIGZvciBkb2N1bWVudCBzcGVjaWZpYyB0b29sYmFycy9tZW51cyB3aGVuIHVzZWQKKyAgICAgIHdpdGggdGhlIGxpbmsgZWxlbWVudCBpbiBkb2N1bWVudCBoZWFkIGUuZy4KKyAgICAgICAgc3RhcnQsIGNvbnRlbnRzLCBwcmV2aW91cywgbmV4dCwgaW5kZXgsIGVuZCwgaGVscAorICAgYikgdG8gbGluayB0byBhIHNlcGFyYXRlIHN0eWxlIHNoZWV0IChyZWw9InN0eWxlc2hlZXQiKQorICAgYykgdG8gbWFrZSBhIGxpbmsgdG8gYSBzY3JpcHQgKHJlbD0ic2NyaXB0IikKKyAgIGQpIGJ5IHN0eWxlc2hlZXRzIHRvIGNvbnRyb2wgaG93IGNvbGxlY3Rpb25zIG9mCisgICAgICBodG1sIG5vZGVzIGFyZSByZW5kZXJlZCBpbnRvIHByaW50ZWQgZG9jdW1lbnRzCisgICBlKSB0byBtYWtlIGEgbGluayB0byBhIHByaW50YWJsZSB2ZXJzaW9uIG9mIHRoaXMgZG9jdW1lbnQKKyAgICAgIGUuZy4gYSBQb3N0U2NyaXB0IG9yIFBERiB2ZXJzaW9uIChyZWw9ImFsdGVybmF0ZSIgbWVkaWE9InByaW50IikKKy0tPgorCis8IUVMRU1FTlQgbGluayBFTVBUWT4KKzwhQVRUTElTVCBsaW5rCisgICVhdHRyczsKKyAgY2hhcnNldCAgICAgJUNoYXJzZXQ7ICAgICAgI0lNUExJRUQKKyAgaHJlZiAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgaHJlZmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI0lNUExJRUQKKyAgcmVsICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgcmV2ICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgbWVkaWEgICAgICAgJU1lZGlhRGVzYzsgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIHN0eWxlIGluZm8sIHdoaWNoIG1heSBpbmNsdWRlIENEQVRBIHNlY3Rpb25zIC0tPgorPCFFTEVNRU5UIHN0eWxlICgjUENEQVRBKT4KKzwhQVRUTElTVCBzdHlsZQorICAlaTE4bjsKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI1JFUVVJUkVECisgIG1lZGlhICAgICAgICVNZWRpYURlc2M7ICAgICNJTVBMSUVECisgIHRpdGxlICAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgIHhtbDpzcGFjZSAgIChwcmVzZXJ2ZSkgICAgICNGSVhFRCAncHJlc2VydmUnCisgID4KKworPCEtLSBzY3JpcHQgc3RhdGVtZW50cywgd2hpY2ggbWF5IGluY2x1ZGUgQ0RBVEEgc2VjdGlvbnMgLS0+Cis8IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHQKKyAgY2hhcnNldCAgICAgJUNoYXJzZXQ7ICAgICAgI0lNUExJRUQKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI1JFUVVJUkVECisgIHNyYyAgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRlZmVyICAgICAgIChkZWZlcikgICAgICAgICNJTVBMSUVECisgIHhtbDpzcGFjZSAgIChwcmVzZXJ2ZSkgICAgICNGSVhFRCAncHJlc2VydmUnCisgID4KKworPCEtLSBhbHRlcm5hdGUgY29udGVudCBjb250YWluZXIgZm9yIG5vbiBzY3JpcHQtYmFzZWQgcmVuZGVyaW5nIC0tPgorCis8IUVMRU1FTlQgbm9zY3JpcHQgJUJsb2NrOz4KKzwhQVRUTElTVCBub3NjcmlwdAorICAlYXR0cnM7CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gRG9jdW1lbnQgQm9keSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTEVNRU5UIGJvZHkgJUJsb2NrOz4KKzwhQVRUTElTVCBib2R5CisgICVhdHRyczsKKyAgb25sb2FkICAgICAgICAgICVTY3JpcHQ7ICAgI0lNUExJRUQKKyAgb251bmxvYWQgICAgICAgICVTY3JpcHQ7ICAgI0lNUExJRUQKKyAgPgorCis8IUVMRU1FTlQgZGl2ICVGbG93Oz4gIDwhLS0gZ2VuZXJpYyBsYW5ndWFnZS9zdHlsZSBjb250YWluZXIgLS0+Cis8IUFUVExJU1QgZGl2CisgICVhdHRyczsKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBQYXJhZ3JhcGhzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVMRU1FTlQgcCAlSW5saW5lOz4KKzwhQVRUTElTVCBwCisgICVhdHRyczsKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBIZWFkaW5ncyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tCisgIFRoZXJlIGFyZSBzaXggbGV2ZWxzIG9mIGhlYWRpbmdzIGZyb20gaDEgKHRoZSBtb3N0IGltcG9ydGFudCkKKyAgdG8gaDYgKHRoZSBsZWFzdCBpbXBvcnRhbnQpLgorLS0+CisKKzwhRUxFTUVOVCBoMSAgJUlubGluZTs+Cis8IUFUVExJU1QgaDEKKyAgICVhdHRyczsKKyAgID4KKworPCFFTEVNRU5UIGgyICVJbmxpbmU7PgorPCFBVFRMSVNUIGgyCisgICAlYXR0cnM7CisgICA+CisKKzwhRUxFTUVOVCBoMyAlSW5saW5lOz4KKzwhQVRUTElTVCBoMworICAgJWF0dHJzOworICAgPgorCis8IUVMRU1FTlQgaDQgJUlubGluZTs+Cis8IUFUVExJU1QgaDQKKyAgICVhdHRyczsKKyAgID4KKworPCFFTEVNRU5UIGg1ICVJbmxpbmU7PgorPCFBVFRMSVNUIGg1CisgICAlYXR0cnM7CisgICA+CisKKzwhRUxFTUVOVCBoNiAlSW5saW5lOz4KKzwhQVRUTElTVCBoNgorICAgJWF0dHJzOworICAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBMaXN0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIFVub3JkZXJlZCBsaXN0IC0tPgorCis8IUVMRU1FTlQgdWwgKGxpKSs+Cis8IUFUVExJU1QgdWwKKyAgJWF0dHJzOworICA+CisKKzwhLS0gT3JkZXJlZCAobnVtYmVyZWQpIGxpc3QgLS0+CisKKzwhRUxFTUVOVCBvbCAobGkpKz4KKzwhQVRUTElTVCBvbAorICAlYXR0cnM7CisgID4KKworPCEtLSBsaXN0IGl0ZW0gLS0+CisKKzwhRUxFTUVOVCBsaSAlRmxvdzs+Cis8IUFUVExJU1QgbGkKKyAgJWF0dHJzOworICA+CisKKzwhLS0gZGVmaW5pdGlvbiBsaXN0cyAtIGR0IGZvciB0ZXJtLCBkZCBmb3IgaXRzIGRlZmluaXRpb24gLS0+CisKKzwhRUxFTUVOVCBkbCAoZHR8ZGQpKz4KKzwhQVRUTElTVCBkbAorICAlYXR0cnM7CisgID4KKworPCFFTEVNRU5UIGR0ICVJbmxpbmU7PgorPCFBVFRMSVNUIGR0CisgICVhdHRyczsKKyAgPgorCis8IUVMRU1FTlQgZGQgJUZsb3c7PgorPCFBVFRMSVNUIGRkCisgICVhdHRyczsKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBBZGRyZXNzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGluZm9ybWF0aW9uIG9uIGF1dGhvciAtLT4KKworPCFFTEVNRU5UIGFkZHJlc3MgJUlubGluZTs+Cis8IUFUVExJU1QgYWRkcmVzcworICAlYXR0cnM7CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSG9yaXpvbnRhbCBSdWxlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTEVNRU5UIGhyIEVNUFRZPgorPCFBVFRMSVNUIGhyCisgICVhdHRyczsKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBQcmVmb3JtYXR0ZWQgVGV4dCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvbnRlbnQgaXMgJUlubGluZTsgZXhjbHVkaW5nICJpbWd8b2JqZWN0fGJpZ3xzbWFsbHxzdWJ8c3VwIiAtLT4KKworPCFFTEVNRU5UIHByZSAlcHJlLmNvbnRlbnQ7PgorPCFBVFRMSVNUIHByZQorICAlYXR0cnM7CisgIHhtbDpzcGFjZSAocHJlc2VydmUpICNGSVhFRCAncHJlc2VydmUnCisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gQmxvY2stbGlrZSBRdW90ZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTEVNRU5UIGJsb2NrcXVvdGUgJUJsb2NrOz4KKzwhQVRUTElTVCBibG9ja3F1b3RlCisgICVhdHRyczsKKyAgY2l0ZSAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBJbnNlcnRlZC9EZWxldGVkIFRleHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tCisgIGlucy9kZWwgYXJlIGFsbG93ZWQgaW4gYmxvY2sgYW5kIGlubGluZSBjb250ZW50LCBidXQgaXRzCisgIGluYXBwcm9wcmlhdGUgdG8gaW5jbHVkZSBibG9jayBjb250ZW50IHdpdGhpbiBhbiBpbnMgZWxlbWVudAorICBvY2N1cnJpbmcgaW4gaW5saW5lIGNvbnRlbnQuCistLT4KKzwhRUxFTUVOVCBpbnMgJUZsb3c7PgorPCFBVFRMSVNUIGlucworICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRhdGV0aW1lICAgICVEYXRldGltZTsgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIGRlbCAlRmxvdzs+Cis8IUFUVExJU1QgZGVsCisgICVhdHRyczsKKyAgY2l0ZSAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgZGF0ZXRpbWUgICAgJURhdGV0aW1lOyAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09IFRoZSBBbmNob3IgRWxlbWVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvbnRlbnQgaXMgJUlubGluZTsgZXhjZXB0IHRoYXQgYW5jaG9ycyBzaG91bGRuJ3QgYmUgbmVzdGVkIC0tPgorCis8IUVMRU1FTlQgYSAlYS5jb250ZW50Oz4KKzwhQVRUTElTVCBhCisgICVhdHRyczsKKyAgY2hhcnNldCAgICAgJUNoYXJzZXQ7ICAgICAgI0lNUExJRUQKKyAgdHlwZSAgICAgICAgJUNvbnRlbnRUeXBlOyAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgTk1UT0tFTiAgICAgICAgI0lNUExJRUQKKyAgaHJlZiAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgaHJlZmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgcmVsICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgcmV2ICAgICAgICAgJUxpbmtUeXBlczsgICAgI0lNUExJRUQKKyAgYWNjZXNza2V5ICAgJUNoYXJhY3RlcjsgICAgI0lNUExJRUQKKyAgc2hhcGUgICAgICAgJVNoYXBlOyAgICAgICAgInJlY3QiCisgIGNvb3JkcyAgICAgICVDb29yZHM7ICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT09PSBJbmxpbmUgRWxlbWVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTEVNRU5UIHNwYW4gJUlubGluZTs+IDwhLS0gZ2VuZXJpYyBsYW5ndWFnZS9zdHlsZSBjb250YWluZXIgLS0+Cis8IUFUVExJU1Qgc3BhbgorICAlYXR0cnM7CisgID4KKworPCFFTEVNRU5UIGJkbyAlSW5saW5lOz4gIDwhLS0gSTE4TiBCaURpIG92ZXItcmlkZSAtLT4KKzwhQVRUTElTVCBiZG8KKyAgJWNvcmVhdHRyczsKKyAgJWV2ZW50czsKKyAgbGFuZyAgICAgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgeG1sOmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgZGlyICAgICAgICAgKGx0cnxydGwpICAgICAgI1JFUVVJUkVECisgID4KKworPCFFTEVNRU5UIGJyIEVNUFRZPiAgIDwhLS0gZm9yY2VkIGxpbmUgYnJlYWsgLS0+Cis8IUFUVExJU1QgYnIKKyAgJWNvcmVhdHRyczsKKyAgPgorCis8IUVMRU1FTlQgZW0gJUlubGluZTs+ICAgPCEtLSBlbXBoYXNpcyAtLT4KKzwhQVRUTElTVCBlbSAlYXR0cnM7PgorCis8IUVMRU1FTlQgc3Ryb25nICVJbmxpbmU7PiAgIDwhLS0gc3Ryb25nIGVtcGhhc2lzIC0tPgorPCFBVFRMSVNUIHN0cm9uZyAlYXR0cnM7PgorCis8IUVMRU1FTlQgZGZuICVJbmxpbmU7PiAgIDwhLS0gZGVmaW5pdGlvbmFsIC0tPgorPCFBVFRMSVNUIGRmbiAlYXR0cnM7PgorCis8IUVMRU1FTlQgY29kZSAlSW5saW5lOz4gICA8IS0tIHByb2dyYW0gY29kZSAtLT4KKzwhQVRUTElTVCBjb2RlICVhdHRyczs+CisKKzwhRUxFTUVOVCBzYW1wICVJbmxpbmU7PiAgIDwhLS0gc2FtcGxlIC0tPgorPCFBVFRMSVNUIHNhbXAgJWF0dHJzOz4KKworPCFFTEVNRU5UIGtiZCAlSW5saW5lOz4gIDwhLS0gc29tZXRoaW5nIHVzZXIgd291bGQgdHlwZSAtLT4KKzwhQVRUTElTVCBrYmQgJWF0dHJzOz4KKworPCFFTEVNRU5UIHZhciAlSW5saW5lOz4gICA8IS0tIHZhcmlhYmxlIC0tPgorPCFBVFRMSVNUIHZhciAlYXR0cnM7PgorCis8IUVMRU1FTlQgY2l0ZSAlSW5saW5lOz4gICA8IS0tIGNpdGF0aW9uIC0tPgorPCFBVFRMSVNUIGNpdGUgJWF0dHJzOz4KKworPCFFTEVNRU5UIGFiYnIgJUlubGluZTs+ICAgPCEtLSBhYmJyZXZpYXRpb24gLS0+Cis8IUFUVExJU1QgYWJiciAlYXR0cnM7PgorCis8IUVMRU1FTlQgYWNyb255bSAlSW5saW5lOz4gICA8IS0tIGFjcm9ueW0gLS0+Cis8IUFUVExJU1QgYWNyb255bSAlYXR0cnM7PgorCis8IUVMRU1FTlQgcSAlSW5saW5lOz4gICA8IS0tIGlubGluZWQgcXVvdGUgLS0+Cis8IUFUVExJU1QgcQorICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIHN1YiAlSW5saW5lOz4gPCEtLSBzdWJzY3JpcHQgLS0+Cis8IUFUVExJU1Qgc3ViICVhdHRyczs+CisKKzwhRUxFTUVOVCBzdXAgJUlubGluZTs+IDwhLS0gc3VwZXJzY3JpcHQgLS0+Cis8IUFUVExJU1Qgc3VwICVhdHRyczs+CisKKzwhRUxFTUVOVCB0dCAlSW5saW5lOz4gICA8IS0tIGZpeGVkIHBpdGNoIGZvbnQgLS0+Cis8IUFUVExJU1QgdHQgJWF0dHJzOz4KKworPCFFTEVNRU5UIGkgJUlubGluZTs+ICAgPCEtLSBpdGFsaWMgZm9udCAtLT4KKzwhQVRUTElTVCBpICVhdHRyczs+CisKKzwhRUxFTUVOVCBiICVJbmxpbmU7PiAgIDwhLS0gYm9sZCBmb250IC0tPgorPCFBVFRMSVNUIGIgJWF0dHJzOz4KKworPCFFTEVNRU5UIGJpZyAlSW5saW5lOz4gICA8IS0tIGJpZ2dlciBmb250IC0tPgorPCFBVFRMSVNUIGJpZyAlYXR0cnM7PgorCis8IUVMRU1FTlQgc21hbGwgJUlubGluZTs+ICAgPCEtLSBzbWFsbGVyIGZvbnQgLS0+Cis8IUFUVExJU1Qgc21hbGwgJWF0dHJzOz4KKworPCEtLT09PT09PT09PT09PT09PT09PT09IE9iamVjdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorPCEtLQorICBvYmplY3QgaXMgdXNlZCB0byBlbWJlZCBvYmplY3RzIGFzIHBhcnQgb2YgSFRNTCBwYWdlcy4KKyAgcGFyYW0gZWxlbWVudHMgc2hvdWxkIHByZWNlZGUgb3RoZXIgY29udGVudC4gUGFyYW1ldGVycworICBjYW4gYWxzbyBiZSBleHByZXNzZWQgYXMgYXR0cmlidXRlL3ZhbHVlIHBhaXJzIG9uIHRoZQorICBvYmplY3QgZWxlbWVudCBpdHNlbGYgd2hlbiBicmV2aXR5IGlzIGRlc2lyZWQuCistLT4KKworPCFFTEVNRU5UIG9iamVjdCAoI1BDREFUQSB8IHBhcmFtIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIG9iamVjdAorICAlYXR0cnM7CisgIGRlY2xhcmUgICAgIChkZWNsYXJlKSAgICAgICNJTVBMSUVECisgIGNsYXNzaWQgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGNvZGViYXNlICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRhdGEgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIGNvZGV0eXBlICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIGFyY2hpdmUgICAgICVVcmlMaXN0OyAgICAgICNJTVBMSUVECisgIHN0YW5kYnkgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIG5hbWUgICAgICAgIE5NVE9LRU4gICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorICBwYXJhbSBpcyB1c2VkIHRvIHN1cHBseSBhIG5hbWVkIHByb3BlcnR5IHZhbHVlLgorICBJbiBYTUwgaXQgd291bGQgc2VlbSBuYXR1cmFsIHRvIGZvbGxvdyBSREYgYW5kIHN1cHBvcnQgYW4KKyAgYWJicmV2aWF0ZWQgc3ludGF4IHdoZXJlIHRoZSBwYXJhbSBlbGVtZW50cyBhcmUgcmVwbGFjZWQKKyAgYnkgYXR0cmlidXRlIHZhbHVlIHBhaXJzIG9uIHRoZSBvYmplY3Qgc3RhcnQgdGFnLgorLS0+Cis8IUVMRU1FTlQgcGFyYW0gRU1QVFk+Cis8IUFUVExJU1QgcGFyYW0KKyAgaWQgICAgICAgICAgSUQgICAgICAgICAgICAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgdmFsdWUgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgdmFsdWV0eXBlICAgKGRhdGF8cmVmfG9iamVjdCkgImRhdGEiCisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSW1hZ2VzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLQorICAgVG8gYXZvaWQgYWNjZXNzaWJpbGl0eSBwcm9ibGVtcyBmb3IgcGVvcGxlIHdobyBhcmVuJ3QKKyAgIGFibGUgdG8gc2VlIHRoZSBpbWFnZSwgeW91IHNob3VsZCBwcm92aWRlIGEgdGV4dAorICAgZGVzY3JpcHRpb24gdXNpbmcgdGhlIGFsdCBhbmQgbG9uZ2Rlc2MgYXR0cmlidXRlcy4KKyAgIEluIGFkZGl0aW9uLCBhdm9pZCB0aGUgdXNlIG9mIHNlcnZlci1zaWRlIGltYWdlIG1hcHMuCisgICBOb3RlIHRoYXQgaW4gdGhpcyBEVEQgdGhlcmUgaXMgbm8gbmFtZSBhdHRyaWJ1dGUuIFRoYXQKKyAgIGlzIG9ubHkgYXZhaWxhYmxlIGluIHRoZSB0cmFuc2l0aW9uYWwgYW5kIGZyYW1lc2V0IERURC4KKy0tPgorCis8IUVMRU1FTlQgaW1nIEVNUFRZPgorPCFBVFRMSVNUIGltZworICAlYXR0cnM7CisgIHNyYyAgICAgICAgICVVUkk7ICAgICAgICAgICNSRVFVSVJFRAorICBhbHQgICAgICAgICAlVGV4dDsgICAgICAgICAjUkVRVUlSRUQKKyAgbG9uZ2Rlc2MgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgaGVpZ2h0ICAgICAgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgd2lkdGggICAgICAgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgdXNlbWFwICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgaXNtYXAgICAgICAgKGlzbWFwKSAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIHVzZW1hcCBwb2ludHMgdG8gYSBtYXAgZWxlbWVudCB3aGljaCBtYXkgYmUgaW4gdGhpcyBkb2N1bWVudAorICBvciBhbiBleHRlcm5hbCBkb2N1bWVudCwgYWx0aG91Z2ggdGhlIGxhdHRlciBpcyBub3Qgd2lkZWx5IHN1cHBvcnRlZCAtLT4KKworPCEtLT09PT09PT09PT09PT09PT09PSBDbGllbnQtc2lkZSBpbWFnZSBtYXBzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBUaGVzZSBjYW4gYmUgcGxhY2VkIGluIHRoZSBzYW1lIGRvY3VtZW50IG9yIGdyb3VwZWQgaW4gYQorICAgICBzZXBhcmF0ZSBkb2N1bWVudCBhbHRob3VnaCB0aGlzIGlzbid0IHlldCB3aWRlbHkgc3VwcG9ydGVkIC0tPgorCis8IUVMRU1FTlQgbWFwICgoJWJsb2NrOyB8IGZvcm0gfCAlbWlzYzspKyB8IGFyZWErKT4KKzwhQVRUTElTVCBtYXAKKyAgJWkxOG47CisgICVldmVudHM7CisgIGlkICAgICAgICAgIElEICAgICAgICAgICAgICNSRVFVSVJFRAorICBjbGFzcyAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBzdHlsZSAgICAgICAlU3R5bGVTaGVldDsgICAjSU1QTElFRAorICB0aXRsZSAgICAgICAlVGV4dDsgICAgICAgICAjSU1QTElFRAorICBuYW1lICAgICAgICBOTVRPS0VOICAgICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBhcmVhIEVNUFRZPgorPCFBVFRMSVNUIGFyZWEKKyAgJWF0dHJzOworICBzaGFwZSAgICAgICAlU2hhcGU7ICAgICAgICAicmVjdCIKKyAgY29vcmRzICAgICAgJUNvb3JkczsgICAgICAgI0lNUExJRUQKKyAgaHJlZiAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgbm9ocmVmICAgICAgKG5vaHJlZikgICAgICAgI0lNUExJRUQKKyAgYWx0ICAgICAgICAgJVRleHQ7ICAgICAgICAgI1JFUVVJUkVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT0gRm9ybXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKzwhRUxFTUVOVCBmb3JtICVmb3JtLmNvbnRlbnQ7PiAgIDwhLS0gZm9ybXMgc2hvdWxkbid0IGJlIG5lc3RlZCAtLT4KKworPCFBVFRMSVNUIGZvcm0KKyAgJWF0dHJzOworICBhY3Rpb24gICAgICAlVVJJOyAgICAgICAgICAjUkVRVUlSRUQKKyAgbWV0aG9kICAgICAgKGdldHxwb3N0KSAgICAgImdldCIKKyAgZW5jdHlwZSAgICAgJUNvbnRlbnRUeXBlOyAgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKKyAgb25zdWJtaXQgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25yZXNldCAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgYWNjZXB0ICAgICAgJUNvbnRlbnRUeXBlczsgI0lNUExJRUQKKyAgYWNjZXB0LWNoYXJzZXQgJUNoYXJzZXRzOyAgI0lNUExJRUQKKyAgPgorCis8IS0tCisgIEVhY2ggbGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gT05FIGZpZWxkCisgIExhYmVsIGVsZW1lbnRzIHNob3VsZG4ndCBiZSBuZXN0ZWQuCistLT4KKzwhRUxFTUVOVCBsYWJlbCAlSW5saW5lOz4KKzwhQVRUTElTVCBsYWJlbAorICAlYXR0cnM7CisgIGZvciAgICAgICAgIElEUkVGICAgICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCFFTlRJVFkgJSBJbnB1dFR5cGUKKyAgIih0ZXh0IHwgcGFzc3dvcmQgfCBjaGVja2JveCB8CisgICAgcmFkaW8gfCBzdWJtaXQgfCByZXNldCB8CisgICAgZmlsZSB8IGhpZGRlbiB8IGltYWdlIHwgYnV0dG9uKSIKKyAgID4KKworPCEtLSB0aGUgbmFtZSBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIGFsbCBidXQgc3VibWl0ICYgcmVzZXQgLS0+CisKKzwhRUxFTUVOVCBpbnB1dCBFTVBUWT4gICAgIDwhLS0gZm9ybSBjb250cm9sIC0tPgorPCFBVFRMSVNUIGlucHV0CisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJUlucHV0VHlwZTsgICAgInRleHQiCisgIG5hbWUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHZhbHVlICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGNoZWNrZWQgICAgIChjaGVja2VkKSAgICAgICNJTVBMSUVECisgIGRpc2FibGVkICAgIChkaXNhYmxlZCkgICAgICNJTVBMSUVECisgIHJlYWRvbmx5ICAgIChyZWFkb25seSkgICAgICNJTVBMSUVECisgIHNpemUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIG1heGxlbmd0aCAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIHNyYyAgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGFsdCAgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uc2VsZWN0ICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uY2hhbmdlICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIGFjY2VwdCAgICAgICVDb250ZW50VHlwZXM7ICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIHNlbGVjdCAob3B0Z3JvdXB8b3B0aW9uKSs+ICA8IS0tIG9wdGlvbiBzZWxlY3RvciAtLT4KKzwhQVRUTElTVCBzZWxlY3QKKyAgJWF0dHJzOworICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBzaXplICAgICAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBtdWx0aXBsZSAgICAobXVsdGlwbGUpICAgICAjSU1QTElFRAorICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmNoYW5nZSAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBvcHRncm91cCAob3B0aW9uKSs+ICAgPCEtLSBvcHRpb24gZ3JvdXAgLS0+Cis8IUFUVExJU1Qgb3B0Z3JvdXAKKyAgJWF0dHJzOworICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICBsYWJlbCAgICAgICAlVGV4dDsgICAgICAgICAjUkVRVUlSRUQKKyAgPgorCis8IUVMRU1FTlQgb3B0aW9uICgjUENEQVRBKT4gICAgIDwhLS0gc2VsZWN0YWJsZSBjaG9pY2UgLS0+Cis8IUFUVExJU1Qgb3B0aW9uCisgICVhdHRyczsKKyAgc2VsZWN0ZWQgICAgKHNlbGVjdGVkKSAgICAgI0lNUExJRUQKKyAgZGlzYWJsZWQgICAgKGRpc2FibGVkKSAgICAgI0lNUExJRUQKKyAgbGFiZWwgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgdmFsdWUgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVMRU1FTlQgdGV4dGFyZWEgKCNQQ0RBVEEpPiAgICAgPCEtLSBtdWx0aS1saW5lIHRleHQgZmllbGQgLS0+Cis8IUFUVExJU1QgdGV4dGFyZWEKKyAgJWF0dHJzOworICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICByb3dzICAgICAgICAlTnVtYmVyOyAgICAgICAjUkVRVUlSRUQKKyAgY29scyAgICAgICAgJU51bWJlcjsgICAgICAgI1JFUVVJUkVECisgIGRpc2FibGVkICAgIChkaXNhYmxlZCkgICAgICNJTVBMSUVECisgIHJlYWRvbmx5ICAgIChyZWFkb25seSkgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uc2VsZWN0ICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uY2hhbmdlICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorICBUaGUgZmllbGRzZXQgZWxlbWVudCBpcyB1c2VkIHRvIGdyb3VwIGZvcm0gZmllbGRzLgorICBPbmx5IG9uZSBsZWdlbmQgZWxlbWVudCBzaG91bGQgb2NjdXIgaW4gdGhlIGNvbnRlbnQKKyAgYW5kIGlmIHByZXNlbnQgc2hvdWxkIG9ubHkgYmUgcHJlY2VkZWQgYnkgd2hpdGVzcGFjZS4KKy0tPgorPCFFTEVNRU5UIGZpZWxkc2V0ICgjUENEQVRBIHwgbGVnZW5kIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIGZpZWxkc2V0CisgICVhdHRyczsKKyAgPgorCis8IUVMRU1FTlQgbGVnZW5kICVJbmxpbmU7PiAgICAgPCEtLSBmaWVsZHNldCBsYWJlbCAtLT4KKzwhQVRUTElTVCBsZWdlbmQKKyAgJWF0dHJzOworICBhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICA+CisKKzwhLS0KKyBDb250ZW50IGlzICVGbG93OyBleGNsdWRpbmcgYSwgZm9ybSBhbmQgZm9ybSBjb250cm9scworLS0+IAorPCFFTEVNRU5UIGJ1dHRvbiAlYnV0dG9uLmNvbnRlbnQ7PiAgPCEtLSBwdXNoIGJ1dHRvbiAtLT4KKzwhQVRUTElTVCBidXR0b24KKyAgJWF0dHJzOworICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICB2YWx1ZSAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICB0eXBlICAgICAgICAoYnV0dG9ufHN1Ym1pdHxyZXNldCkgInN1Ym1pdCIKKyAgZGlzYWJsZWQgICAgKGRpc2FibGVkKSAgICAgI0lNUExJRUQKKyAgdGFiaW5kZXggICAgJU51bWJlcjsgICAgICAgI0lNUExJRUQKKyAgYWNjZXNza2V5ICAgJUNoYXJhY3RlcjsgICAgI0lNUExJRUQKKyAgb25mb2N1cyAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25ibHVyICAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PT09PT0gVGFibGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIERlcml2ZWQgZnJvbSBJRVRGIEhUTUwgdGFibGUgc3RhbmRhcmQsIHNlZSBbUkZDMTk0Ml0gLS0+CisKKzwhLS0KKyBUaGUgYm9yZGVyIGF0dHJpYnV0ZSBzZXRzIHRoZSB0aGlja25lc3Mgb2YgdGhlIGZyYW1lIGFyb3VuZCB0aGUKKyB0YWJsZS4gVGhlIGRlZmF1bHQgdW5pdHMgYXJlIHNjcmVlbiBwaXhlbHMuCisKKyBUaGUgZnJhbWUgYXR0cmlidXRlIHNwZWNpZmllcyB3aGljaCBwYXJ0cyBvZiB0aGUgZnJhbWUgYXJvdW5kCisgdGhlIHRhYmxlIHNob3VsZCBiZSByZW5kZXJlZC4gVGhlIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lIGFzCisgQ0FMUyB0byBhdm9pZCBhIG5hbWUgY2xhc2ggd2l0aCB0aGUgdmFsaWduIGF0dHJpYnV0ZS4KKy0tPgorPCFFTlRJVFkgJSBURnJhbWUgIih2b2lkfGFib3ZlfGJlbG93fGhzaWRlc3xsaHN8cmhzfHZzaWRlc3xib3h8Ym9yZGVyKSI+CisKKzwhLS0KKyBUaGUgcnVsZXMgYXR0cmlidXRlIGRlZmluZXMgd2hpY2ggcnVsZXMgdG8gZHJhdyBiZXR3ZWVuIGNlbGxzOgorCisgSWYgcnVsZXMgaXMgYWJzZW50IHRoZW4gYXNzdW1lOgorICAgICAibm9uZSIgaWYgYm9yZGVyIGlzIGFic2VudCBvciBib3JkZXI9IjAiIG90aGVyd2lzZSAiYWxsIgorLS0+CisKKzwhRU5USVRZICUgVFJ1bGVzICIobm9uZSB8IGdyb3VwcyB8IHJvd3MgfCBjb2xzIHwgYWxsKSI+CisgIAorPCEtLSBob3Jpem9udGFsIHBsYWNlbWVudCBvZiB0YWJsZSByZWxhdGl2ZSB0byBkb2N1bWVudCAtLT4KKzwhRU5USVRZICUgVEFsaWduICIobGVmdHxjZW50ZXJ8cmlnaHQpIj4KKworPCEtLSBob3Jpem9udGFsIGFsaWdubWVudCBhdHRyaWJ1dGVzIGZvciBjZWxsIGNvbnRlbnRzCisKKyAgY2hhciAgICAgICAgYWxpZ25tZW50IGNoYXIsIGUuZy4gY2hhcj0nOicKKyAgY2hhcm9mZiAgICAgb2Zmc2V0IGZvciBhbGlnbm1lbnQgY2hhcgorLS0+Cis8IUVOVElUWSAlIGNlbGxoYWxpZ24KKyAgImFsaWduICAgICAgKGxlZnR8Y2VudGVyfHJpZ2h0fGp1c3RpZnl8Y2hhcikgI0lNUExJRUQKKyAgIGNoYXIgICAgICAgJUNoYXJhY3RlcjsgICAgI0lNUExJRUQKKyAgIGNoYXJvZmYgICAgJUxlbmd0aDsgICAgICAgI0lNUExJRUQiCisgID4KKworPCEtLSB2ZXJ0aWNhbCBhbGlnbm1lbnQgYXR0cmlidXRlcyBmb3IgY2VsbCBjb250ZW50cyAtLT4KKzwhRU5USVRZICUgY2VsbHZhbGlnbgorICAidmFsaWduICAgICAodG9wfG1pZGRsZXxib3R0b218YmFzZWxpbmUpICNJTVBMSUVEIgorICA+CisKKzwhRUxFTUVOVCB0YWJsZQorICAgICAoY2FwdGlvbj8sIChjb2wqfGNvbGdyb3VwKiksIHRoZWFkPywgdGZvb3Q/LCAodGJvZHkrfHRyKykpPgorPCFFTEVNRU5UIGNhcHRpb24gICVJbmxpbmU7PgorPCFFTEVNRU5UIHRoZWFkICAgICh0cikrPgorPCFFTEVNRU5UIHRmb290ICAgICh0cikrPgorPCFFTEVNRU5UIHRib2R5ICAgICh0cikrPgorPCFFTEVNRU5UIGNvbGdyb3VwIChjb2wpKj4KKzwhRUxFTUVOVCBjb2wgICAgICBFTVBUWT4KKzwhRUxFTUVOVCB0ciAgICAgICAodGh8dGQpKz4KKzwhRUxFTUVOVCB0aCAgICAgICAlRmxvdzs+Cis8IUVMRU1FTlQgdGQgICAgICAgJUZsb3c7PgorCis8IUFUVExJU1QgdGFibGUKKyAgJWF0dHJzOworICBzdW1tYXJ5ICAgICAlVGV4dDsgICAgICAgICAjSU1QTElFRAorICB3aWR0aCAgICAgICAlTGVuZ3RoOyAgICAgICAjSU1QTElFRAorICBib3JkZXIgICAgICAlUGl4ZWxzOyAgICAgICAjSU1QTElFRAorICBmcmFtZSAgICAgICAlVEZyYW1lOyAgICAgICAjSU1QTElFRAorICBydWxlcyAgICAgICAlVFJ1bGVzOyAgICAgICAjSU1QTElFRAorICBjZWxsc3BhY2luZyAlTGVuZ3RoOyAgICAgICAjSU1QTElFRAorICBjZWxscGFkZGluZyAlTGVuZ3RoOyAgICAgICAjSU1QTElFRAorICA+CisKKzwhRU5USVRZICUgQ0FsaWduICIodG9wfGJvdHRvbXxsZWZ0fHJpZ2h0KSI+CisKKzwhQVRUTElTVCBjYXB0aW9uCisgICVhdHRyczsKKyAgPgorCis8IS0tCitjb2xncm91cCBncm91cHMgYSBzZXQgb2YgY29sIGVsZW1lbnRzLiBJdCBhbGxvd3MgeW91IHRvIGdyb3VwCitzZXZlcmFsIHNlbWFudGljYWxseSByZWxhdGVkIGNvbHVtbnMgdG9nZXRoZXIuCistLT4KKzwhQVRUTElTVCBjb2xncm91cAorICAlYXR0cnM7CisgIHNwYW4gICAgICAgICVOdW1iZXI7ICAgICAgICIxIgorICB3aWR0aCAgICAgICAlTXVsdGlMZW5ndGg7ICAjSU1QTElFRAorICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgID4KKworPCEtLQorIGNvbCBlbGVtZW50cyBkZWZpbmUgdGhlIGFsaWdubWVudCBwcm9wZXJ0aWVzIGZvciBjZWxscyBpbgorIG9uZSBvciBtb3JlIGNvbHVtbnMuCisKKyBUaGUgd2lkdGggYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnMsIGUuZy4KKworICAgICB3aWR0aD02NCAgICAgICAgd2lkdGggaW4gc2NyZWVuIHBpeGVscworICAgICB3aWR0aD0wLjUqICAgICAgcmVsYXRpdmUgd2lkdGggb2YgMC41CisKKyBUaGUgc3BhbiBhdHRyaWJ1dGUgY2F1c2VzIHRoZSBhdHRyaWJ1dGVzIG9mIG9uZQorIGNvbCBlbGVtZW50IHRvIGFwcGx5IHRvIG1vcmUgdGhhbiBvbmUgY29sdW1uLgorLS0+Cis8IUFUVExJU1QgY29sCisgICVhdHRyczsKKyAgc3BhbiAgICAgICAgJU51bWJlcjsgICAgICAgIjEiCisgIHdpZHRoICAgICAgICVNdWx0aUxlbmd0aDsgICNJTVBMSUVECisgICVjZWxsaGFsaWduOworICAlY2VsbHZhbGlnbjsKKyAgPgorCis8IS0tCisgICAgVXNlIHRoZWFkIHRvIGR1cGxpY2F0ZSBoZWFkZXJzIHdoZW4gYnJlYWtpbmcgdGFibGUKKyAgICBhY3Jvc3MgcGFnZSBib3VuZGFyaWVzLCBvciBmb3Igc3RhdGljIGhlYWRlcnMgd2hlbgorICAgIHRib2R5IHNlY3Rpb25zIGFyZSByZW5kZXJlZCBpbiBzY3JvbGxpbmcgcGFuZWwuCisKKyAgICBVc2UgdGZvb3QgdG8gZHVwbGljYXRlIGZvb3RlcnMgd2hlbiBicmVha2luZyB0YWJsZQorICAgIGFjcm9zcyBwYWdlIGJvdW5kYXJpZXMsIG9yIGZvciBzdGF0aWMgZm9vdGVycyB3aGVuCisgICAgdGJvZHkgc2VjdGlvbnMgYXJlIHJlbmRlcmVkIGluIHNjcm9sbGluZyBwYW5lbC4KKworICAgIFVzZSBtdWx0aXBsZSB0Ym9keSBzZWN0aW9ucyB3aGVuIHJ1bGVzIGFyZSBuZWVkZWQKKyAgICBiZXR3ZWVuIGdyb3VwcyBvZiB0YWJsZSByb3dzLgorLS0+Cis8IUFUVExJU1QgdGhlYWQKKyAgJWF0dHJzOworICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgID4KKworPCFBVFRMSVNUIHRmb290CisgICVhdHRyczsKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICA+CisKKzwhQVRUTElTVCB0Ym9keQorICAlYXR0cnM7CisgICVjZWxsaGFsaWduOworICAlY2VsbHZhbGlnbjsKKyAgPgorCis8IUFUVExJU1QgdHIKKyAgJWF0dHJzOworICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgID4KKworCis8IS0tIFNjb3BlIGlzIHNpbXBsZXIgdGhhbiBoZWFkZXJzIGF0dHJpYnV0ZSBmb3IgY29tbW9uIHRhYmxlcyAtLT4KKzwhRU5USVRZICUgU2NvcGUgIihyb3d8Y29sfHJvd2dyb3VwfGNvbGdyb3VwKSI+CisKKzwhLS0gdGggaXMgZm9yIGhlYWRlcnMsIHRkIGZvciBkYXRhIGFuZCBmb3IgY2VsbHMgYWN0aW5nIGFzIGJvdGggLS0+CisKKzwhQVRUTElTVCB0aAorICAlYXR0cnM7CisgIGFiYnIgICAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgIGF4aXMgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGhlYWRlcnMgICAgIElEUkVGUyAgICAgICAgICNJTVBMSUVECisgIHNjb3BlICAgICAgICVTY29wZTsgICAgICAgICNJTVBMSUVECisgIHJvd3NwYW4gICAgICVOdW1iZXI7ICAgICAgICIxIgorICBjb2xzcGFuICAgICAlTnVtYmVyOyAgICAgICAiMSIKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICA+CisKKzwhQVRUTElTVCB0ZAorICAlYXR0cnM7CisgIGFiYnIgICAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgIGF4aXMgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGhlYWRlcnMgICAgIElEUkVGUyAgICAgICAgICNJTVBMSUVECisgIHNjb3BlICAgICAgICVTY29wZTsgICAgICAgICNJTVBMSUVECisgIHJvd3NwYW4gICAgICVOdW1iZXI7ICAgICAgICIxIgorICBjb2xzcGFuICAgICAlTnVtYmVyOyAgICAgICAiMSIKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICA+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVmOGQ2NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkCkBAIC0wLDAgKzEsMTE5NCBAQAorPCEtLQorICAgRXh0ZW5zaWJsZSBIVE1MIHZlcnNpb24gMS4wIFRyYW5zaXRpb25hbCBEVEQKKworICAgVGhpcyBpcyB0aGUgc2FtZSBhcyBIVE1MIDQuMCBUcmFuc2l0aW9uYWwgZXhjZXB0IGZvcgorICAgY2hhbmdlcyBkdWUgdG8gdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gWE1MIGFuZCBTR01MLgorCisgICBOYW1lc3BhY2UgPSBodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sCisKKyAgIEZvciBmdXJ0aGVyIGluZm9ybWF0aW9uLCBzZWU6IGh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMQorCisgICBDb3B5cmlnaHQgKGMpIDE5OTgtMTk5OSBXM0MgKE1JVCwgSU5SSUEsIEtlaW8pLAorICAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gCisKKyAgIFRoaXMgRFREIG1vZHVsZSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBQVUJMSUMgYW5kIFNZU1RFTSBpZGVudGlmaWVyczoKKworICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgIFNZU1RFTSAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCIKKworCistLT4KKworPCEtLT09PT09PT09PT09PT09PT0gQ2hhcmFjdGVyIG1uZW1vbmljIGVudGl0aWVzID09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTlRJVFkgJSBIVE1MbGF0MSBQVUJMSUMKKyAgICItLy9XM0MvL0VOVElUSUVTIExhdGluIDEgZm9yIFhIVE1MLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sLWxhdDEuZW50Ij4KKyVIVE1MbGF0MTsKKworPCFFTlRJVFkgJSBIVE1Mc3ltYm9sIFBVQkxJQworICAgIi0vL1czQy8vRU5USVRJRVMgU3ltYm9scyBmb3IgWEhUTUwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwtc3ltYm9sLmVudCI+CislSFRNTHN5bWJvbDsKKworPCFFTlRJVFkgJSBIVE1Mc3BlY2lhbCBQVUJMSUMKKyAgICItLy9XM0MvL0VOVElUSUVTIFNwZWNpYWwgZm9yIFhIVE1MLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sLXNwZWNpYWwuZW50Ij4KKyVIVE1Mc3BlY2lhbDsKKworPCEtLT09PT09PT09PT09PT09PT09PSBJbXBvcnRlZCBOYW1lcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTlRJVFkgJSBDb250ZW50VHlwZSAiQ0RBVEEiPgorICAgIDwhLS0gbWVkaWEgdHlwZSwgYXMgcGVyIFtSRkMyMDQ1XSAtLT4KKworPCFFTlRJVFkgJSBDb250ZW50VHlwZXMgIkNEQVRBIj4KKyAgICA8IS0tIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1lZGlhIHR5cGVzLCBhcyBwZXIgW1JGQzIwNDVdIC0tPgorCis8IUVOVElUWSAlIENoYXJzZXQgIkNEQVRBIj4KKyAgICA8IS0tIGEgY2hhcmFjdGVyIGVuY29kaW5nLCBhcyBwZXIgW1JGQzIwNDVdIC0tPgorCis8IUVOVElUWSAlIENoYXJzZXRzICJDREFUQSI+CisgICAgPCEtLSBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mIGNoYXJhY3RlciBlbmNvZGluZ3MsIGFzIHBlciBbUkZDMjA0NV0gLS0+CisKKzwhRU5USVRZICUgTGFuZ3VhZ2VDb2RlICJOTVRPS0VOIj4KKyAgICA8IS0tIGEgbGFuZ3VhZ2UgY29kZSwgYXMgcGVyIFtSRkMxNzY2XSAtLT4KKworPCFFTlRJVFkgJSBDaGFyYWN0ZXIgIkNEQVRBIj4KKyAgICA8IS0tIGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tIFtJU08xMDY0Nl0gLS0+CisKKzwhRU5USVRZICUgTnVtYmVyICJDREFUQSI+CisgICAgPCEtLSBvbmUgb3IgbW9yZSBkaWdpdHMgLS0+CisKKzwhRU5USVRZICUgTGlua1R5cGVzICJDREFUQSI+CisgICAgPCEtLSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBsaW5rIHR5cGVzIC0tPgorCis8IUVOVElUWSAlIE1lZGlhRGVzYyAiQ0RBVEEiPgorICAgIDwhLS0gc2luZ2xlIG9yIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1lZGlhIGRlc2NyaXB0b3JzIC0tPgorCis8IUVOVElUWSAlIFVSSSAiQ0RBVEEiPgorICAgIDwhLS0gYSBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIsIHNlZSBbUkZDMjM5Nl0gLS0+CisKKzwhRU5USVRZICUgVXJpTGlzdCAiQ0RBVEEiPgorICAgIDwhLS0gYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIC0tPgorCis8IUVOVElUWSAlIERhdGV0aW1lICJDREFUQSI+CisgICAgPCEtLSBkYXRlIGFuZCB0aW1lIGluZm9ybWF0aW9uLiBJU08gZGF0ZSBmb3JtYXQgLS0+CisKKzwhRU5USVRZICUgU2NyaXB0ICJDREFUQSI+CisgICAgPCEtLSBzY3JpcHQgZXhwcmVzc2lvbiAtLT4KKworPCFFTlRJVFkgJSBTdHlsZVNoZWV0ICJDREFUQSI+CisgICAgPCEtLSBzdHlsZSBzaGVldCBkYXRhIC0tPgorCis8IUVOVElUWSAlIFRleHQgIkNEQVRBIj4KKyAgICA8IS0tIHVzZWQgZm9yIHRpdGxlcyBldGMuIC0tPgorCis8IUVOVElUWSAlIEZyYW1lVGFyZ2V0ICJOTVRPS0VOIj4KKyAgICA8IS0tIHJlbmRlciBpbiB0aGlzIGZyYW1lIC0tPgorCis8IUVOVElUWSAlIExlbmd0aCAiQ0RBVEEiPgorICAgIDwhLS0gbm4gZm9yIHBpeGVscyBvciBubiUgZm9yIHBlcmNlbnRhZ2UgbGVuZ3RoIC0tPgorCis8IUVOVElUWSAlIE11bHRpTGVuZ3RoICJDREFUQSI+CisgICAgPCEtLSBwaXhlbCwgcGVyY2VudGFnZSwgb3IgcmVsYXRpdmUgLS0+CisKKzwhRU5USVRZICUgTXVsdGlMZW5ndGhzICJDREFUQSI+CisgICAgPCEtLSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBNdWx0aUxlbmd0aCAtLT4KKworPCFFTlRJVFkgJSBQaXhlbHMgIkNEQVRBIj4KKyAgICA8IS0tIGludGVnZXIgcmVwcmVzZW50aW5nIGxlbmd0aCBpbiBwaXhlbHMgLS0+CisKKzwhLS0gdGhlc2UgYXJlIHVzZWQgZm9yIGltYWdlIG1hcHMgLS0+CisKKzwhRU5USVRZICUgU2hhcGUgIihyZWN0fGNpcmNsZXxwb2x5fGRlZmF1bHQpIj4KKworPCFFTlRJVFkgJSBDb29yZHMgIkNEQVRBIj4KKyAgICA8IS0tIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGxlbmd0aHMgLS0+CisKKzwhLS0gdXNlZCBmb3Igb2JqZWN0LCBhcHBsZXQsIGltZywgaW5wdXQgYW5kIGlmcmFtZSAtLT4KKzwhRU5USVRZICUgSW1nQWxpZ24gIih0b3B8bWlkZGxlfGJvdHRvbXxsZWZ0fHJpZ2h0KSI+CisKKzwhLS0gYSBjb2xvciB1c2luZyBzUkdCOiAjUlJHR0JCIGFzIEhleCB2YWx1ZXMgLS0+Cis8IUVOVElUWSAlIENvbG9yICJDREFUQSI+CisKKzwhLS0gVGhlcmUgYXJlIGFsc28gMTYgd2lkZWx5IGtub3duIGNvbG9yIG5hbWVzIHdpdGggdGhlaXIgc1JHQiB2YWx1ZXM6CisKKyAgICBCbGFjayAgPSAjMDAwMDAwICAgIEdyZWVuICA9ICMwMDgwMDAKKyAgICBTaWx2ZXIgPSAjQzBDMEMwICAgIExpbWUgICA9ICMwMEZGMDAKKyAgICBHcmF5ICAgPSAjODA4MDgwICAgIE9saXZlICA9ICM4MDgwMDAKKyAgICBXaGl0ZSAgPSAjRkZGRkZGICAgIFllbGxvdyA9ICNGRkZGMDAKKyAgICBNYXJvb24gPSAjODAwMDAwICAgIE5hdnkgICA9ICMwMDAwODAKKyAgICBSZWQgICAgPSAjRkYwMDAwICAgIEJsdWUgICA9ICMwMDAwRkYKKyAgICBQdXJwbGUgPSAjODAwMDgwICAgIFRlYWwgICA9ICMwMDgwODAKKyAgICBGdWNoc2lhPSAjRkYwMEZGICAgIEFxdWEgICA9ICMwMEZGRkYKKy0tPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBHZW5lcmljIEF0dHJpYnV0ZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvcmUgYXR0cmlidXRlcyBjb21tb24gdG8gbW9zdCBlbGVtZW50cworICBpZCAgICAgICBkb2N1bWVudC13aWRlIHVuaXF1ZSBpZAorICBjbGFzcyAgICBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBjbGFzc2VzCisgIHN0eWxlICAgIGFzc29jaWF0ZWQgc3R5bGUgaW5mbworICB0aXRsZSAgICBhZHZpc29yeSB0aXRsZS9hbXBsaWZpY2F0aW9uCistLT4KKzwhRU5USVRZICUgY29yZWF0dHJzCisgImlkICAgICAgICAgIElEICAgICAgICAgICAgICNJTVBMSUVECisgIGNsYXNzICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHN0eWxlICAgICAgICVTdHlsZVNoZWV0OyAgICNJTVBMSUVECisgIHRpdGxlICAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVEIgorICA+CisKKzwhLS0gaW50ZXJuYXRpb25hbGl6YXRpb24gYXR0cmlidXRlcworICBsYW5nICAgICAgICBsYW5ndWFnZSBjb2RlIChiYWNrd2FyZHMgY29tcGF0aWJsZSkKKyAgeG1sOmxhbmcgICAgbGFuZ3VhZ2UgY29kZSAoYXMgcGVyIFhNTCAxLjAgc3BlYykKKyAgZGlyICAgICAgICAgZGlyZWN0aW9uIGZvciB3ZWFrL25ldXRyYWwgdGV4dAorLS0+Cis8IUVOVElUWSAlIGkxOG4KKyAibGFuZyAgICAgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgeG1sOmxhbmcgICAgJUxhbmd1YWdlQ29kZTsgI0lNUExJRUQKKyAgZGlyICAgICAgICAgKGx0cnxydGwpICAgICAgI0lNUExJRUQiCisgID4KKworPCEtLSBhdHRyaWJ1dGVzIGZvciBjb21tb24gVUkgZXZlbnRzCisgIG9uY2xpY2sgICAgIGEgcG9pbnRlciBidXR0b24gd2FzIGNsaWNrZWQKKyAgb25kYmxjbGljayAgYSBwb2ludGVyIGJ1dHRvbiB3YXMgZG91YmxlIGNsaWNrZWQKKyAgb25tb3VzZWRvd24gYSBwb2ludGVyIGJ1dHRvbiB3YXMgcHJlc3NlZCBkb3duCisgIG9ubW91c2V1cCAgIGEgcG9pbnRlciBidXR0b24gd2FzIHJlbGVhc2VkCisgIG9ubW91c2Vtb3ZlIGEgcG9pbnRlciB3YXMgbW92ZWQgb250byB0aGUgZWxlbWVudAorICBvbm1vdXNlb3V0ICBhIHBvaW50ZXIgd2FzIG1vdmVkIGF3YXkgZnJvbSB0aGUgZWxlbWVudAorICBvbmtleXByZXNzICBhIGtleSB3YXMgcHJlc3NlZCBhbmQgcmVsZWFzZWQKKyAgb25rZXlkb3duICAgYSBrZXkgd2FzIHByZXNzZWQgZG93bgorICBvbmtleXVwICAgICBhIGtleSB3YXMgcmVsZWFzZWQKKy0tPgorPCFFTlRJVFkgJSBldmVudHMKKyAib25jbGljayAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25kYmxjbGljayAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZWRvd24gJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZXVwICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW92ZXIgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW1vdmUgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25tb3VzZW91dCAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXlwcmVzcyAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXlkb3duICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25rZXl1cCAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQiCisgID4KKworPCEtLSBhdHRyaWJ1dGVzIGZvciBlbGVtZW50cyB0aGF0IGNhbiBnZXQgdGhlIGZvY3VzCisgIGFjY2Vzc2tleSAgIGFjY2Vzc2liaWxpdHkga2V5IGNoYXJhY3RlcgorICB0YWJpbmRleCAgICBwb3NpdGlvbiBpbiB0YWJiaW5nIG9yZGVyCisgIG9uZm9jdXMgICAgIHRoZSBlbGVtZW50IGdvdCB0aGUgZm9jdXMKKyAgb25ibHVyICAgICAgdGhlIGVsZW1lbnQgbG9zdCB0aGUgZm9jdXMKKy0tPgorPCFFTlRJVFkgJSBmb2N1cworICJhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRCIKKyAgPgorCis8IUVOVElUWSAlIGF0dHJzICIlY29yZWF0dHJzOyAlaTE4bjsgJWV2ZW50czsiPgorCis8IS0tIHRleHQgYWxpZ25tZW50IGZvciBwLCBkaXYsIGgxLWg2LiBUaGUgZGVmYXVsdCBpcworICAgICBhbGlnbj0ibGVmdCIgZm9yIGx0ciBoZWFkaW5ncywgInJpZ2h0IiBmb3IgcnRsIC0tPgorCis8IUVOVElUWSAlIFRleHRBbGlnbiAiYWxpZ24gKGxlZnR8Y2VudGVyfHJpZ2h0KSAjSU1QTElFRCI+CisKKzwhLS09PT09PT09PT09PT09PT09PT09IFRleHQgRWxlbWVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRU5USVRZICUgc3BlY2lhbAorICAgImJyIHwgc3BhbiB8IGJkbyB8IG9iamVjdCB8IGFwcGxldCB8IGltZyB8IG1hcCB8IGlmcmFtZSI+CisKKzwhRU5USVRZICUgZm9udHN0eWxlICJ0dCB8IGkgfCBiIHwgYmlnIHwgc21hbGwgfCB1CisgICAgICAgICAgICAgICAgICAgICAgfCBzIHwgc3RyaWtlIHxmb250IHwgYmFzZWZvbnQiPgorCis8IUVOVElUWSAlIHBocmFzZSAiZW0gfCBzdHJvbmcgfCBkZm4gfCBjb2RlIHwgcSB8IHN1YiB8IHN1cCB8CisgICAgICAgICAgICAgICAgICAgc2FtcCB8IGtiZCB8IHZhciB8IGNpdGUgfCBhYmJyIHwgYWNyb255bSI+CisKKzwhRU5USVRZICUgaW5saW5lLmZvcm1zICJpbnB1dCB8IHNlbGVjdCB8IHRleHRhcmVhIHwgbGFiZWwgfCBidXR0b24iPgorCis8IS0tIHRoZXNlIGNhbiBvY2N1ciBhdCBibG9jayBvciBpbmxpbmUgbGV2ZWwgLS0+Cis8IUVOVElUWSAlIG1pc2MgImlucyB8IGRlbCB8IHNjcmlwdCB8IG5vc2NyaXB0Ij4KKworPCFFTlRJVFkgJSBpbmxpbmUgImEgfCAlc3BlY2lhbDsgfCAlZm9udHN0eWxlOyB8ICVwaHJhc2U7IHwgJWlubGluZS5mb3JtczsiPgorCis8IS0tICVJbmxpbmU7IGNvdmVycyBpbmxpbmUgb3IgInRleHQtbGV2ZWwiIGVsZW1lbnRzIC0tPgorPCFFTlRJVFkgJSBJbmxpbmUgIigjUENEQVRBIHwgJWlubGluZTsgfCAlbWlzYzspKiI+CisKKzwhLS09PT09PT09PT09PT09PT09PT0gQmxvY2sgbGV2ZWwgZWxlbWVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRU5USVRZICUgaGVhZGluZyAiaDF8aDJ8aDN8aDR8aDV8aDYiPgorPCFFTlRJVFkgJSBsaXN0cyAidWwgfCBvbCB8IGRsIHwgbWVudSB8IGRpciI+Cis8IUVOVElUWSAlIGJsb2NrdGV4dCAicHJlIHwgaHIgfCBibG9ja3F1b3RlIHwgYWRkcmVzcyB8IGNlbnRlciB8IG5vZnJhbWVzIj4KKworPCFFTlRJVFkgJSBibG9jaworICAgICJwIHwgJWhlYWRpbmc7IHwgZGl2IHwgJWxpc3RzOyB8ICVibG9ja3RleHQ7IHwgaXNpbmRleCB8ZmllbGRzZXQgfCB0YWJsZSI+CisKKzwhRU5USVRZICUgQmxvY2sgIiglYmxvY2s7IHwgZm9ybSB8ICVtaXNjOykqIj4KKworPCEtLSAlRmxvdzsgbWl4ZXMgQmxvY2sgYW5kIElubGluZSBhbmQgaXMgdXNlZCBmb3IgbGlzdCBpdGVtcyBldGMuIC0tPgorPCFFTlRJVFkgJSBGbG93ICIoI1BDREFUQSB8ICVibG9jazsgfCBmb3JtIHwgJWlubGluZTsgfCAlbWlzYzspKiI+CisKKzwhLS09PT09PT09PT09PT09PT09PT0gQ29udGVudCBtb2RlbHMgZm9yIGV4Y2x1c2lvbnMgPT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhLS0gYSBlbGVtZW50cyB1c2UgJUlubGluZTsgZXhjbHVkaW5nIGEgLS0+CisKKzwhRU5USVRZICUgYS5jb250ZW50CisgICAiKCNQQ0RBVEEgfCAlc3BlY2lhbDsgfCAlZm9udHN0eWxlOyB8ICVwaHJhc2U7IHwgJWlubGluZS5mb3JtczsgfCAlbWlzYzspKiI+CisKKzwhLS0gcHJlIHVzZXMgJUlubGluZSBleGNsdWRpbmcgaW1nLCBvYmplY3QsIGFwcGxldCwgYmlnLCBzbWFsbCwKKyAgICAgc3ViLCBzdXAsIGZvbnQsIG9yIGJhc2Vmb250IC0tPgorCis8IUVOVElUWSAlIHByZS5jb250ZW50CisgICAiKCNQQ0RBVEEgfCBhIHwgYnIgfCBzcGFuIHwgYmRvIHwgbWFwIHwgdHQgfCBpIHwgYiB8IHUgfCBzIHwKKyAgICAgICVwaHJhc2U7IHwgJWlubGluZS5mb3JtczspKiI+CisKKzwhLS0gZm9ybSB1c2VzICVGbG93OyBleGNsdWRpbmcgZm9ybSAtLT4KKworPCFFTlRJVFkgJSBmb3JtLmNvbnRlbnQgIigjUENEQVRBIHwgJWJsb2NrOyB8ICVpbmxpbmU7IHwgJW1pc2M7KSoiPgorCis8IS0tIGJ1dHRvbiB1c2VzICVGbG93OyBidXQgZXhjbHVkZXMgYSwgZm9ybSwgZm9ybSBjb250cm9scywgaWZyYW1lIC0tPgorCis8IUVOVElUWSAlIGJ1dHRvbi5jb250ZW50CisgICAiKCNQQ0RBVEEgfCBwIHwgJWhlYWRpbmc7IHwgZGl2IHwgJWxpc3RzOyB8ICVibG9ja3RleHQ7IHwKKyAgICAgIHRhYmxlIHwgYnIgfCBzcGFuIHwgYmRvIHwgb2JqZWN0IHwgYXBwbGV0IHwgaW1nIHwgbWFwIHwKKyAgICAgICVmb250c3R5bGU7IHwgJXBocmFzZTsgfCAlbWlzYzspKiI+CisKKzwhLS09PT09PT09PT09PT09PT09IERvY3VtZW50IFN0cnVjdHVyZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhLS0gdGhlIG5hbWVzcGFjZSBVUkkgZGVzaWduYXRlcyB0aGUgZG9jdW1lbnQgcHJvZmlsZSAtLT4KKworPCFFTEVNRU5UIGh0bWwgKGhlYWQsIGJvZHkpPgorPCFBVFRMSVNUIGh0bWwKKyAgJWkxOG47CisgIHhtbG5zICAgICAgICVVUkk7ICAgICAgICAgICNGSVhFRCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PSBEb2N1bWVudCBIZWFkID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVOVElUWSAlIGhlYWQubWlzYyAiKHNjcmlwdHxzdHlsZXxtZXRhfGxpbmt8b2JqZWN0fGlzaW5kZXgpKiI+CisKKzwhLS0gY29udGVudCBtb2RlbCBpcyAlaGVhZC5taXNjOyBjb21iaW5lZCB3aXRoIGEgc2luZ2xlCisgICAgIHRpdGxlIGFuZCBhbiBvcHRpb25hbCBiYXNlIGVsZW1lbnQgaW4gYW55IG9yZGVyIC0tPgorCis8IUVMRU1FTlQgaGVhZCAoJWhlYWQubWlzYzssCisgICAgICgodGl0bGUsICVoZWFkLm1pc2M7LCAoYmFzZSwgJWhlYWQubWlzYzspPykgfAorICAgICAgKGJhc2UsICVoZWFkLm1pc2M7LCAodGl0bGUsICVoZWFkLm1pc2M7KSkpKT4KKworPCFBVFRMSVNUIGhlYWQKKyAgJWkxOG47CisgIHByb2ZpbGUgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgID4KKworPCEtLSBUaGUgdGl0bGUgZWxlbWVudCBpcyBub3QgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBmbG93IG9mIHRleHQuCisgICAgICAgSXQgc2hvdWxkIGJlIGRpc3BsYXllZCwgZm9yIGV4YW1wbGUgYXMgdGhlIHBhZ2UgaGVhZGVyIG9yCisgICAgICAgd2luZG93IHRpdGxlLiBFeGFjdGx5IG9uZSB0aXRsZSBpcyByZXF1aXJlZCBwZXIgZG9jdW1lbnQuCisgICAgLS0+Cis8IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRpdGxlICVpMThuOz4KKworPCEtLSBkb2N1bWVudCBiYXNlIFVSSSAtLT4KKworPCFFTEVNRU5UIGJhc2UgRU1QVFk+Cis8IUFUVExJU1QgYmFzZQorICBocmVmICAgICAgICAlVVJJOyAgICAgICAgICAjSU1QTElFRAorICB0YXJnZXQgICAgICAlRnJhbWVUYXJnZXQ7ICAjSU1QTElFRAorICA+CisKKzwhLS0gZ2VuZXJpYyBtZXRhaW5mb3JtYXRpb24gLS0+Cis8IUVMRU1FTlQgbWV0YSBFTVBUWT4KKzwhQVRUTElTVCBtZXRhCisgICVpMThuOworICBodHRwLWVxdWl2ICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBjb250ZW50ICAgICBDREFUQSAgICAgICAgICAjUkVRVUlSRUQKKyAgc2NoZW1lICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tCisgIFJlbGF0aW9uc2hpcCB2YWx1ZXMgY2FuIGJlIHVzZWQgaW4gcHJpbmNpcGxlOgorCisgICBhKSBmb3IgZG9jdW1lbnQgc3BlY2lmaWMgdG9vbGJhcnMvbWVudXMgd2hlbiB1c2VkCisgICAgICB3aXRoIHRoZSBsaW5rIGVsZW1lbnQgaW4gZG9jdW1lbnQgaGVhZCBlLmcuCisgICAgICAgIHN0YXJ0LCBjb250ZW50cywgcHJldmlvdXMsIG5leHQsIGluZGV4LCBlbmQsIGhlbHAKKyAgIGIpIHRvIGxpbmsgdG8gYSBzZXBhcmF0ZSBzdHlsZSBzaGVldCAocmVsPSJzdHlsZXNoZWV0IikKKyAgIGMpIHRvIG1ha2UgYSBsaW5rIHRvIGEgc2NyaXB0IChyZWw9InNjcmlwdCIpCisgICBkKSBieSBzdHlsZXNoZWV0cyB0byBjb250cm9sIGhvdyBjb2xsZWN0aW9ucyBvZgorICAgICAgaHRtbCBub2RlcyBhcmUgcmVuZGVyZWQgaW50byBwcmludGVkIGRvY3VtZW50cworICAgZSkgdG8gbWFrZSBhIGxpbmsgdG8gYSBwcmludGFibGUgdmVyc2lvbiBvZiB0aGlzIGRvY3VtZW50CisgICAgICBlLmcuIGEgUG9zdFNjcmlwdCBvciBQREYgdmVyc2lvbiAocmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJwcmludCIpCistLT4KKworPCFFTEVNRU5UIGxpbmsgRU1QVFk+Cis8IUFUVExJU1QgbGluaworICAlYXR0cnM7CisgIGNoYXJzZXQgICAgICVDaGFyc2V0OyAgICAgICNJTVBMSUVECisgIGhyZWYgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGhyZWZsYW5nICAgICVMYW5ndWFnZUNvZGU7ICNJTVBMSUVECisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIHJlbCAgICAgICAgICVMaW5rVHlwZXM7ICAgICNJTVBMSUVECisgIHJldiAgICAgICAgICVMaW5rVHlwZXM7ICAgICNJTVBMSUVECisgIG1lZGlhICAgICAgICVNZWRpYURlc2M7ICAgICNJTVBMSUVECisgIHRhcmdldCAgICAgICVGcmFtZVRhcmdldDsgICNJTVBMSUVECisgID4KKworPCEtLSBzdHlsZSBpbmZvLCB3aGljaCBtYXkgaW5jbHVkZSBDREFUQSBzZWN0aW9ucyAtLT4KKzwhRUxFTUVOVCBzdHlsZSAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc3R5bGUKKyAgJWkxOG47CisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNSRVFVSVJFRAorICBtZWRpYSAgICAgICAlTWVkaWFEZXNjOyAgICAjSU1QTElFRAorICB0aXRsZSAgICAgICAlVGV4dDsgICAgICAgICAjSU1QTElFRAorICB4bWw6c3BhY2UgICAocHJlc2VydmUpICAgICAjRklYRUQgJ3ByZXNlcnZlJworICA+CisKKzwhLS0gc2NyaXB0IHN0YXRlbWVudHMsIHdoaWNoIG1heSBpbmNsdWRlIENEQVRBIHNlY3Rpb25zIC0tPgorPCFFTEVNRU5UIHNjcmlwdCAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc2NyaXB0CisgIGNoYXJzZXQgICAgICVDaGFyc2V0OyAgICAgICNJTVBMSUVECisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNSRVFVSVJFRAorICBsYW5ndWFnZSAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBzcmMgICAgICAgICAlVVJJOyAgICAgICAgICAjSU1QTElFRAorICBkZWZlciAgICAgICAoZGVmZXIpICAgICAgICAjSU1QTElFRAorICB4bWw6c3BhY2UgICAocHJlc2VydmUpICAgICAjRklYRUQgJ3ByZXNlcnZlJworICA+CisKKzwhLS0gYWx0ZXJuYXRlIGNvbnRlbnQgY29udGFpbmVyIGZvciBub24gc2NyaXB0LWJhc2VkIHJlbmRlcmluZyAtLT4KKworPCFFTEVNRU5UIG5vc2NyaXB0ICVGbG93Oz4KKzwhQVRUTElTVCBub3NjcmlwdAorICAlYXR0cnM7CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT09PT09IEZyYW1lcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBpbmxpbmUgc3Vid2luZG93IC0tPgorCis8IUVMRU1FTlQgaWZyYW1lICVGbG93Oz4KKzwhQVRUTElTVCBpZnJhbWUKKyAgJWNvcmVhdHRyczsKKyAgbG9uZ2Rlc2MgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgTk1UT0tFTiAgICAgICAgI0lNUExJRUQKKyAgc3JjICAgICAgICAgJVVSSTsgICAgICAgICAgI0lNUExJRUQKKyAgZnJhbWVib3JkZXIgKDF8MCkgICAgICAgICAgIjEiCisgIG1hcmdpbndpZHRoICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIG1hcmdpbmhlaWdodCAlUGl4ZWxzOyAgICAgICNJTVBMSUVECisgIHNjcm9sbGluZyAgICh5ZXN8bm98YXV0bykgICJhdXRvIgorICBhbGlnbiAgICAgICAlSW1nQWxpZ247ICAgICAjSU1QTElFRAorICBoZWlnaHQgICAgICAlTGVuZ3RoOyAgICAgICAjSU1QTElFRAorICB3aWR0aCAgICAgICAlTGVuZ3RoOyAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0gYWx0ZXJuYXRlIGNvbnRlbnQgY29udGFpbmVyIGZvciBub24gZnJhbWUtYmFzZWQgcmVuZGVyaW5nIC0tPgorCis8IUVMRU1FTlQgbm9mcmFtZXMgJUZsb3c7PgorPCFBVFRMSVNUIG5vZnJhbWVzCisgICVhdHRyczsKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBEb2N1bWVudCBCb2R5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVMRU1FTlQgYm9keSAlRmxvdzs+Cis8IUFUVExJU1QgYm9keQorICAlYXR0cnM7CisgIG9ubG9hZCAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9udW5sb2FkICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIGJhY2tncm91bmQgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGJnY29sb3IgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHRleHQgICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIGxpbmsgICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHZsaW5rICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIGFsaW5rICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIGRpdiAlRmxvdzs+ICA8IS0tIGdlbmVyaWMgbGFuZ3VhZ2Uvc3R5bGUgY29udGFpbmVyIC0tPgorPCFBVFRMSVNUIGRpdgorICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gUGFyYWdyYXBocyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCFFTEVNRU5UIHAgJUlubGluZTs+Cis8IUFUVExJU1QgcAorICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSGVhZGluZ3MgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLQorICBUaGVyZSBhcmUgc2l4IGxldmVscyBvZiBoZWFkaW5ncyBmcm9tIGgxICh0aGUgbW9zdCBpbXBvcnRhbnQpCisgIHRvIGg2ICh0aGUgbGVhc3QgaW1wb3J0YW50KS4KKy0tPgorCis8IUVMRU1FTlQgaDEgICVJbmxpbmU7PgorPCFBVFRMSVNUIGgxCisgICVhdHRyczsKKyAgJVRleHRBbGlnbjsKKyAgPgorCis8IUVMRU1FTlQgaDIgJUlubGluZTs+Cis8IUFUVExJU1QgaDIKKyAgJWF0dHJzOworICAlVGV4dEFsaWduOworICA+CisKKzwhRUxFTUVOVCBoMyAlSW5saW5lOz4KKzwhQVRUTElTVCBoMworICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCFFTEVNRU5UIGg0ICVJbmxpbmU7PgorPCFBVFRMSVNUIGg0CisgICVhdHRyczsKKyAgJVRleHRBbGlnbjsKKyAgPgorCis8IUVMRU1FTlQgaDUgJUlubGluZTs+Cis8IUFUVExJU1QgaDUKKyAgJWF0dHJzOworICAlVGV4dEFsaWduOworICA+CisKKzwhRUxFTUVOVCBoNiAlSW5saW5lOz4KKzwhQVRUTElTVCBoNgorICAlYXR0cnM7CisgICVUZXh0QWxpZ247CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gTGlzdHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBVbm9yZGVyZWQgbGlzdCBidWxsZXQgc3R5bGVzIC0tPgorCis8IUVOVElUWSAlIFVMU3R5bGUgIihkaXNjfHNxdWFyZXxjaXJjbGUpIj4KKworPCEtLSBVbm9yZGVyZWQgbGlzdCAtLT4KKworPCFFTEVNRU5UIHVsIChsaSkrPgorPCFBVFRMSVNUIHVsCisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJVVMU3R5bGU7ICAgICAjSU1QTElFRAorICBjb21wYWN0ICAgICAoY29tcGFjdCkgICAgICNJTVBMSUVECisgID4KKworPCEtLSBPcmRlcmVkIGxpc3QgbnVtYmVyaW5nIHN0eWxlCisKKyAgICAxICAgYXJhYmljIG51bWJlcnMgICAgICAxLCAyLCAzLCAuLi4KKyAgICBhICAgbG93ZXIgYWxwaGEgICAgICAgICBhLCBiLCBjLCAuLi4KKyAgICBBICAgdXBwZXIgYWxwaGEgICAgICAgICBBLCBCLCBDLCAuLi4KKyAgICBpICAgbG93ZXIgcm9tYW4gICAgICAgICBpLCBpaSwgaWlpLCAuLi4KKyAgICBJICAgdXBwZXIgcm9tYW4gICAgICAgICBJLCBJSSwgSUlJLCAuLi4KKworICAgIFRoZSBzdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSBzZXF1ZW5jZSBudW1iZXIgd2hpY2ggYnkgZGVmYXVsdAorICAgIGlzIHJlc2V0IHRvIDEgZm9yIHRoZSBmaXJzdCBsaXN0IGl0ZW0gaW4gYW4gb3JkZXJlZCBsaXN0LgorLS0+Cis8IUVOVElUWSAlIE9MU3R5bGUgIkNEQVRBIj4KKworPCEtLSBPcmRlcmVkIChudW1iZXJlZCkgbGlzdCAtLT4KKworPCFFTEVNRU5UIG9sIChsaSkrPgorPCFBVFRMSVNUIG9sCisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJU9MU3R5bGU7ICAgICAgI0lNUExJRUQKKyAgY29tcGFjdCAgICAgKGNvbXBhY3QpICAgICAgI0lNUExJRUQKKyAgc3RhcnQgICAgICAgJU51bWJlcjsgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIHNpbmdsZSBjb2x1bW4gbGlzdCAoREVQUkVDQVRFRCkgLS0+IAorPCFFTEVNRU5UIG1lbnUgKGxpKSs+Cis8IUFUVExJU1QgbWVudQorICAlYXR0cnM7CisgIGNvbXBhY3QgICAgIChjb21wYWN0KSAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIG11bHRpcGxlIGNvbHVtbiBsaXN0IChERVBSRUNBVEVEKSAtLT4gCis8IUVMRU1FTlQgZGlyIChsaSkrPgorPCFBVFRMSVNUIGRpcgorICAlYXR0cnM7CisgIGNvbXBhY3QgICAgIChjb21wYWN0KSAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIExJU3R5bGUgaXMgY29uc3RyYWluZWQgdG86ICIoJVVMU3R5bGU7fCVPTFN0eWxlOykiIC0tPgorPCFFTlRJVFkgJSBMSVN0eWxlICJDREFUQSI+CisKKzwhLS0gbGlzdCBpdGVtIC0tPgorCis8IUVMRU1FTlQgbGkgJUZsb3c7PgorPCFBVFRMSVNUIGxpCisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJUxJU3R5bGU7ICAgICAgI0lNUExJRUQKKyAgdmFsdWUgICAgICAgJU51bWJlcjsgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tIGRlZmluaXRpb24gbGlzdHMgLSBkdCBmb3IgdGVybSwgZGQgZm9yIGl0cyBkZWZpbml0aW9uIC0tPgorCis8IUVMRU1FTlQgZGwgKGR0fGRkKSs+Cis8IUFUVExJU1QgZGwKKyAgJWF0dHJzOworICBjb21wYWN0ICAgICAoY29tcGFjdCkgICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBkdCAlSW5saW5lOz4KKzwhQVRUTElTVCBkdAorICAlYXR0cnM7CisgID4KKworPCFFTEVNRU5UIGRkICVGbG93Oz4KKzwhQVRUTElTVCBkZAorICAlYXR0cnM7CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gQWRkcmVzcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBpbmZvcm1hdGlvbiBvbiBhdXRob3IgLS0+CisKKzwhRUxFTUVOVCBhZGRyZXNzICVJbmxpbmU7PgorPCFBVFRMSVNUIGFkZHJlc3MKKyAgJWF0dHJzOworICA+CisKKzwhLS09PT09PT09PT09PT09PT09PT09IEhvcml6b250YWwgUnVsZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRUxFTUVOVCBociBFTVBUWT4KKzwhQVRUTElTVCBocgorICAlYXR0cnM7CisgIGFsaWduICAgICAgIChsZWZ0fGNlbnRlcnxyaWdodCkgI0lNUExJRUQKKyAgbm9zaGFkZSAgICAgKG5vc2hhZGUpICAgICAgI0lNUExJRUQKKyAgc2l6ZSAgICAgICAgJVBpeGVsczsgICAgICAgI0lNUExJRUQKKyAgd2lkdGggICAgICAgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBQcmVmb3JtYXR0ZWQgVGV4dCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IS0tIGNvbnRlbnQgaXMgJUlubGluZTsgZXhjbHVkaW5nIAorICAgICAgICAiaW1nfG9iamVjdHxhcHBsZXR8YmlnfHNtYWxsfHN1YnxzdXB8Zm9udHxiYXNlZm9udCIgLS0+CisKKzwhRUxFTUVOVCBwcmUgJXByZS5jb250ZW50Oz4KKzwhQVRUTElTVCBwcmUKKyAgJWF0dHJzOworICB3aWR0aCAgICAgICAlTnVtYmVyOyAgICAgICNJTVBMSUVECisgIHhtbDpzcGFjZSAgIChwcmVzZXJ2ZSkgICAgI0ZJWEVEICdwcmVzZXJ2ZScKKyAgPgorCis8IS0tPT09PT09PT09PT09PT09PT09PSBCbG9jay1saWtlIFF1b3RlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorCis8IUVMRU1FTlQgYmxvY2txdW90ZSAlRmxvdzs+Cis8IUFUVExJU1QgYmxvY2txdW90ZQorICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gVGV4dCBhbGlnbm1lbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBjZW50ZXIgY29udGVudCAtLT4KKzwhRUxFTUVOVCBjZW50ZXIgJUZsb3c7PgorPCFBVFRMSVNUIGNlbnRlcgorICAlYXR0cnM7CisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSW5zZXJ0ZWQvRGVsZXRlZCBUZXh0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLQorICBpbnMvZGVsIGFyZSBhbGxvd2VkIGluIGJsb2NrIGFuZCBpbmxpbmUgY29udGVudCwgYnV0IGl0cworICBpbmFwcHJvcHJpYXRlIHRvIGluY2x1ZGUgYmxvY2sgY29udGVudCB3aXRoaW4gYW4gaW5zIGVsZW1lbnQKKyAgb2NjdXJyaW5nIGluIGlubGluZSBjb250ZW50LgorLS0+Cis8IUVMRU1FTlQgaW5zICVGbG93Oz4KKzwhQVRUTElTVCBpbnMKKyAgJWF0dHJzOworICBjaXRlICAgICAgICAlVVJJOyAgICAgICAgICAjSU1QTElFRAorICBkYXRldGltZSAgICAlRGF0ZXRpbWU7ICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBkZWwgJUZsb3c7PgorPCFBVFRMSVNUIGRlbAorICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRhdGV0aW1lICAgICVEYXRldGltZTsgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PSBUaGUgQW5jaG9yIEVsZW1lbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBjb250ZW50IGlzICVJbmxpbmU7IGV4Y2VwdCB0aGF0IGFuY2hvcnMgc2hvdWxkbid0IGJlIG5lc3RlZCAtLT4KKworPCFFTEVNRU5UIGEgJWEuY29udGVudDs+Cis8IUFUVExJU1QgYQorICAlYXR0cnM7CisgIGNoYXJzZXQgICAgICVDaGFyc2V0OyAgICAgICNJTVBMSUVECisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIG5hbWUgICAgICAgIE5NVE9LRU4gICAgICAgICNJTVBMSUVECisgIGhyZWYgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGhyZWZsYW5nICAgICVMYW5ndWFnZUNvZGU7ICNJTVBMSUVECisgIHJlbCAgICAgICAgICVMaW5rVHlwZXM7ICAgICNJTVBMSUVECisgIHJldiAgICAgICAgICVMaW5rVHlwZXM7ICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIHNoYXBlICAgICAgICVTaGFwZTsgICAgICAgICJyZWN0IgorICBjb29yZHMgICAgICAlQ29vcmRzOyAgICAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICB0YXJnZXQgICAgICAlRnJhbWVUYXJnZXQ7ICAjSU1QTElFRAorICA+CisKKzwhLS09PT09PT09PT09PT09PT09PT09PT0gSW5saW5lIEVsZW1lbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRUxFTUVOVCBzcGFuICVJbmxpbmU7PiA8IS0tIGdlbmVyaWMgbGFuZ3VhZ2Uvc3R5bGUgY29udGFpbmVyIC0tPgorPCFBVFRMSVNUIHNwYW4KKyAgJWF0dHJzOworICA+CisKKzwhRUxFTUVOVCBiZG8gJUlubGluZTs+ICA8IS0tIEkxOE4gQmlEaSBvdmVyLXJpZGUgLS0+Cis8IUFUVExJU1QgYmRvCisgICVjb3JlYXR0cnM7CisgICVldmVudHM7CisgIGxhbmcgICAgICAgICVMYW5ndWFnZUNvZGU7ICNJTVBMSUVECisgIHhtbDpsYW5nICAgICVMYW5ndWFnZUNvZGU7ICNJTVBMSUVECisgIGRpciAgICAgICAgIChsdHJ8cnRsKSAgICAgICNSRVFVSVJFRAorICA+CisKKzwhRUxFTUVOVCBiciBFTVBUWT4gICA8IS0tIGZvcmNlZCBsaW5lIGJyZWFrIC0tPgorPCFBVFRMSVNUIGJyCisgICVjb3JlYXR0cnM7CisgIGNsZWFyICAgICAgIChsZWZ0fGFsbHxyaWdodHxub25lKSAibm9uZSIKKyAgPgorCis8IUVMRU1FTlQgZW0gJUlubGluZTs+ICAgPCEtLSBlbXBoYXNpcyAtLT4KKzwhQVRUTElTVCBlbSAlYXR0cnM7PgorCis8IUVMRU1FTlQgc3Ryb25nICVJbmxpbmU7PiAgIDwhLS0gc3Ryb25nIGVtcGhhc2lzIC0tPgorPCFBVFRMSVNUIHN0cm9uZyAlYXR0cnM7PgorCis8IUVMRU1FTlQgZGZuICVJbmxpbmU7PiAgIDwhLS0gZGVmaW5pdGlvbmFsIC0tPgorPCFBVFRMSVNUIGRmbiAlYXR0cnM7PgorCis8IUVMRU1FTlQgY29kZSAlSW5saW5lOz4gICA8IS0tIHByb2dyYW0gY29kZSAtLT4KKzwhQVRUTElTVCBjb2RlICVhdHRyczs+CisKKzwhRUxFTUVOVCBzYW1wICVJbmxpbmU7PiAgIDwhLS0gc2FtcGxlIC0tPgorPCFBVFRMSVNUIHNhbXAgJWF0dHJzOz4KKworPCFFTEVNRU5UIGtiZCAlSW5saW5lOz4gIDwhLS0gc29tZXRoaW5nIHVzZXIgd291bGQgdHlwZSAtLT4KKzwhQVRUTElTVCBrYmQgJWF0dHJzOz4KKworPCFFTEVNRU5UIHZhciAlSW5saW5lOz4gICA8IS0tIHZhcmlhYmxlIC0tPgorPCFBVFRMSVNUIHZhciAlYXR0cnM7PgorCis8IUVMRU1FTlQgY2l0ZSAlSW5saW5lOz4gICA8IS0tIGNpdGF0aW9uIC0tPgorPCFBVFRMSVNUIGNpdGUgJWF0dHJzOz4KKworPCFFTEVNRU5UIGFiYnIgJUlubGluZTs+ICAgPCEtLSBhYmJyZXZpYXRpb24gLS0+Cis8IUFUVExJU1QgYWJiciAlYXR0cnM7PgorCis8IUVMRU1FTlQgYWNyb255bSAlSW5saW5lOz4gICA8IS0tIGFjcm9ueW0gLS0+Cis8IUFUVExJU1QgYWNyb255bSAlYXR0cnM7PgorCis8IUVMRU1FTlQgcSAlSW5saW5lOz4gICA8IS0tIGlubGluZWQgcXVvdGUgLS0+Cis8IUFUVExJU1QgcQorICAlYXR0cnM7CisgIGNpdGUgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIHN1YiAlSW5saW5lOz4gPCEtLSBzdWJzY3JpcHQgLS0+Cis8IUFUVExJU1Qgc3ViICVhdHRyczs+CisKKzwhRUxFTUVOVCBzdXAgJUlubGluZTs+IDwhLS0gc3VwZXJzY3JpcHQgLS0+Cis8IUFUVExJU1Qgc3VwICVhdHRyczs+CisKKzwhRUxFTUVOVCB0dCAlSW5saW5lOz4gICA8IS0tIGZpeGVkIHBpdGNoIGZvbnQgLS0+Cis8IUFUVExJU1QgdHQgJWF0dHJzOz4KKworPCFFTEVNRU5UIGkgJUlubGluZTs+ICAgPCEtLSBpdGFsaWMgZm9udCAtLT4KKzwhQVRUTElTVCBpICVhdHRyczs+CisKKzwhRUxFTUVOVCBiICVJbmxpbmU7PiAgIDwhLS0gYm9sZCBmb250IC0tPgorPCFBVFRMSVNUIGIgJWF0dHJzOz4KKworPCFFTEVNRU5UIGJpZyAlSW5saW5lOz4gICA8IS0tIGJpZ2dlciBmb250IC0tPgorPCFBVFRMSVNUIGJpZyAlYXR0cnM7PgorCis8IUVMRU1FTlQgc21hbGwgJUlubGluZTs+ICAgPCEtLSBzbWFsbGVyIGZvbnQgLS0+Cis8IUFUVExJU1Qgc21hbGwgJWF0dHJzOz4KKworPCFFTEVNRU5UIHUgJUlubGluZTs+ICAgPCEtLSB1bmRlcmxpbmUgLS0+Cis8IUFUVExJU1QgdSAlYXR0cnM7PgorCis8IUVMRU1FTlQgcyAlSW5saW5lOz4gICA8IS0tIHN0cmlrZS10aHJvdWdoIC0tPgorPCFBVFRMSVNUIHMgJWF0dHJzOz4KKworPCFFTEVNRU5UIHN0cmlrZSAlSW5saW5lOz4gICA8IS0tIHN0cmlrZS10aHJvdWdoIC0tPgorPCFBVFRMSVNUIHN0cmlrZSAlYXR0cnM7PgorCis8IUVMRU1FTlQgYmFzZWZvbnQgRU1QVFk+ICA8IS0tIGJhc2UgZm9udCBzaXplIC0tPgorPCFBVFRMSVNUIGJhc2Vmb250CisgIGlkICAgICAgICAgIElEICAgICAgICAgICAgICNJTVBMSUVECisgIHNpemUgICAgICAgIENEQVRBICAgICAgICAgICNSRVFVSVJFRAorICBjb2xvciAgICAgICAlQ29sb3I7ICAgICAgICAjSU1QTElFRAorICBmYWNlICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBmb250ICVJbmxpbmU7PiA8IS0tIGxvY2FsIGNoYW5nZSB0byBmb250IC0tPgorPCFBVFRMSVNUIGZvbnQKKyAgJWNvcmVhdHRyczsKKyAgJWkxOG47CisgIHNpemUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGNvbG9yICAgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIGZhY2UgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT09IE9iamVjdCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorPCEtLQorICBvYmplY3QgaXMgdXNlZCB0byBlbWJlZCBvYmplY3RzIGFzIHBhcnQgb2YgSFRNTCBwYWdlcy4KKyAgcGFyYW0gZWxlbWVudHMgc2hvdWxkIHByZWNlZGUgb3RoZXIgY29udGVudC4gUGFyYW1ldGVycworICBjYW4gYWxzbyBiZSBleHByZXNzZWQgYXMgYXR0cmlidXRlL3ZhbHVlIHBhaXJzIG9uIHRoZQorICBvYmplY3QgZWxlbWVudCBpdHNlbGYgd2hlbiBicmV2aXR5IGlzIGRlc2lyZWQuCistLT4KKworPCFFTEVNRU5UIG9iamVjdCAoI1BDREFUQSB8IHBhcmFtIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIG9iamVjdAorICAlYXR0cnM7CisgIGRlY2xhcmUgICAgIChkZWNsYXJlKSAgICAgICNJTVBMSUVECisgIGNsYXNzaWQgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGNvZGViYXNlICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGRhdGEgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIHR5cGUgICAgICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIGNvZGV0eXBlICAgICVDb250ZW50VHlwZTsgICNJTVBMSUVECisgIGFyY2hpdmUgICAgICVVcmlMaXN0OyAgICAgICNJTVBMSUVECisgIHN0YW5kYnkgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIG5hbWUgICAgICAgIE5NVE9LRU4gICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgIGJvcmRlciAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIGhzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIHZzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorICBwYXJhbSBpcyB1c2VkIHRvIHN1cHBseSBhIG5hbWVkIHByb3BlcnR5IHZhbHVlLgorICBJbiBYTUwgaXQgd291bGQgc2VlbSBuYXR1cmFsIHRvIGZvbGxvdyBSREYgYW5kIHN1cHBvcnQgYW4KKyAgYWJicmV2aWF0ZWQgc3ludGF4IHdoZXJlIHRoZSBwYXJhbSBlbGVtZW50cyBhcmUgcmVwbGFjZWQKKyAgYnkgYXR0cmlidXRlIHZhbHVlIHBhaXJzIG9uIHRoZSBvYmplY3Qgc3RhcnQgdGFnLgorLS0+Cis8IUVMRU1FTlQgcGFyYW0gRU1QVFk+Cis8IUFUVExJU1QgcGFyYW0KKyAgaWQgICAgICAgICAgSUQgICAgICAgICAgICAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgQ0RBVEEgICAgICAgICAgI1JFUVVJUkVECisgIHZhbHVlICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHZhbHVldHlwZSAgIChkYXRhfHJlZnxvYmplY3QpICJkYXRhIgorICB0eXBlICAgICAgICAlQ29udGVudFR5cGU7ICAjSU1QTElFRAorICA+CisKKzwhLS09PT09PT09PT09PT09PT09PT09IEphdmEgYXBwbGV0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKzwhLS0KKyAgT25lIG9mIGNvZGUgb3Igb2JqZWN0IGF0dHJpYnV0ZXMgbXVzdCBiZSBwcmVzZW50LgorICBQbGFjZSBwYXJhbSBlbGVtZW50cyBiZWZvcmUgb3RoZXIgY29udGVudC4KKy0tPgorPCFFTEVNRU5UIGFwcGxldCAoI1BDREFUQSB8IHBhcmFtIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIGFwcGxldAorICAlY29yZWF0dHJzOworICBjb2RlYmFzZSAgICAlVVJJOyAgICAgICAgICAjSU1QTElFRAorICBhcmNoaXZlICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBjb2RlICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBvYmplY3QgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBhbHQgICAgICAgICAlVGV4dDsgICAgICAgICAjSU1QTElFRAorICBuYW1lICAgICAgICBOTVRPS0VOICAgICAgICAjSU1QTElFRAorICB3aWR0aCAgICAgICAlTGVuZ3RoOyAgICAgICAjUkVRVUlSRUQKKyAgaGVpZ2h0ICAgICAgJUxlbmd0aDsgICAgICAgI1JFUVVJUkVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgIGhzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIHZzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT0gSW1hZ2VzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLQorICAgVG8gYXZvaWQgYWNjZXNzaWJpbGl0eSBwcm9ibGVtcyBmb3IgcGVvcGxlIHdobyBhcmVuJ3QKKyAgIGFibGUgdG8gc2VlIHRoZSBpbWFnZSwgeW91IHNob3VsZCBwcm92aWRlIGEgdGV4dAorICAgZGVzY3JpcHRpb24gdXNpbmcgdGhlIGFsdCBhbmQgbG9uZ2Rlc2MgYXR0cmlidXRlcy4KKyAgIEluIGFkZGl0aW9uLCBhdm9pZCB0aGUgdXNlIG9mIHNlcnZlci1zaWRlIGltYWdlIG1hcHMuCistLT4KKworPCFFTEVNRU5UIGltZyBFTVBUWT4KKzwhQVRUTElTVCBpbWcKKyAgJWF0dHJzOworICBzcmMgICAgICAgICAlVVJJOyAgICAgICAgICAjUkVRVUlSRUQKKyAgYWx0ICAgICAgICAgJVRleHQ7ICAgICAgICAgI1JFUVVJUkVECisgIG5hbWUgICAgICAgIE5NVE9LRU4gICAgICAgICNJTVBMSUVECisgIGxvbmdkZXNjICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGlzbWFwICAgICAgIChpc21hcCkgICAgICAgICNJTVBMSUVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgIGJvcmRlciAgICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVECisgIGhzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIHZzcGFjZSAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLSB1c2VtYXAgcG9pbnRzIHRvIGEgbWFwIGVsZW1lbnQgd2hpY2ggbWF5IGJlIGluIHRoaXMgZG9jdW1lbnQKKyAgb3IgYW4gZXh0ZXJuYWwgZG9jdW1lbnQsIGFsdGhvdWdoIHRoZSBsYXR0ZXIgaXMgbm90IHdpZGVseSBzdXBwb3J0ZWQgLS0+CisKKzwhLS09PT09PT09PT09PT09PT09PT0gQ2xpZW50LXNpZGUgaW1hZ2UgbWFwcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhLS0gVGhlc2UgY2FuIGJlIHBsYWNlZCBpbiB0aGUgc2FtZSBkb2N1bWVudCBvciBncm91cGVkIGluIGEKKyAgICAgc2VwYXJhdGUgZG9jdW1lbnQgYWx0aG91Z2ggdGhpcyBpc24ndCB5ZXQgd2lkZWx5IHN1cHBvcnRlZCAtLT4KKworPCFFTEVNRU5UIG1hcCAoKCVibG9jazsgfCBmb3JtIHwgJW1pc2M7KSsgfCBhcmVhKyk+Cis8IUFUVExJU1QgbWFwCisgICVpMThuOworICAlZXZlbnRzOworICBpZCAgICAgICAgICBJRCAgICAgICAgICAgICAjUkVRVUlSRUQKKyAgY2xhc3MgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgc3R5bGUgICAgICAgJVN0eWxlU2hlZXQ7ICAgI0lNUExJRUQKKyAgdGl0bGUgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgbmFtZSAgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVMRU1FTlQgYXJlYSBFTVBUWT4KKzwhQVRUTElTVCBhcmVhCisgICVhdHRyczsKKyAgc2hhcGUgICAgICAgJVNoYXBlOyAgICAgICAgInJlY3QiCisgIGNvb3JkcyAgICAgICVDb29yZHM7ICAgICAgICNJTVBMSUVECisgIGhyZWYgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIG5vaHJlZiAgICAgIChub2hyZWYpICAgICAgICNJTVBMSUVECisgIGFsdCAgICAgICAgICVUZXh0OyAgICAgICAgICNSRVFVSVJFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICB0YXJnZXQgICAgICAlRnJhbWVUYXJnZXQ7ICAjSU1QTElFRAorICA+CisKKzwhLS09PT09PT09PT09PT09PT09IEZvcm1zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisKKzwhRUxFTUVOVCBmb3JtICVmb3JtLmNvbnRlbnQ7PiAgIDwhLS0gZm9ybXMgc2hvdWxkbid0IGJlIG5lc3RlZCAtLT4KKworPCFBVFRMSVNUIGZvcm0KKyAgJWF0dHJzOworICBhY3Rpb24gICAgICAlVVJJOyAgICAgICAgICAjUkVRVUlSRUQKKyAgbWV0aG9kICAgICAgKGdldHxwb3N0KSAgICAgImdldCIKKyAgbmFtZSAgICAgICAgTk1UT0tFTiAgICAgICAgI0lNUExJRUQKKyAgZW5jdHlwZSAgICAgJUNvbnRlbnRUeXBlOyAgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKKyAgb25zdWJtaXQgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgb25yZXNldCAgICAgJVNjcmlwdDsgICAgICAgI0lNUExJRUQKKyAgYWNjZXB0ICAgICAgJUNvbnRlbnRUeXBlczsgI0lNUExJRUQKKyAgYWNjZXB0LWNoYXJzZXQgJUNoYXJzZXRzOyAgI0lNUExJRUQKKyAgdGFyZ2V0ICAgICAgJUZyYW1lVGFyZ2V0OyAgI0lNUExJRUQKKyAgPgorCis8IS0tCisgIEVhY2ggbGFiZWwgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gT05FIGZpZWxkCisgIExhYmVsIGVsZW1lbnRzIHNob3VsZG4ndCBiZSBuZXN0ZWQuCistLT4KKzwhRUxFTUVOVCBsYWJlbCAlSW5saW5lOz4KKzwhQVRUTElTVCBsYWJlbAorICAlYXR0cnM7CisgIGZvciAgICAgICAgIElEUkVGICAgICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCFFTlRJVFkgJSBJbnB1dFR5cGUKKyAgIih0ZXh0IHwgcGFzc3dvcmQgfCBjaGVja2JveCB8CisgICAgcmFkaW8gfCBzdWJtaXQgfCByZXNldCB8CisgICAgZmlsZSB8IGhpZGRlbiB8IGltYWdlIHwgYnV0dG9uKSIKKyAgID4KKworPCEtLSB0aGUgbmFtZSBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIGFsbCBidXQgc3VibWl0ICYgcmVzZXQgLS0+CisKKzwhRUxFTUVOVCBpbnB1dCBFTVBUWT4gICAgIDwhLS0gZm9ybSBjb250cm9sIC0tPgorPCFBVFRMSVNUIGlucHV0CisgICVhdHRyczsKKyAgdHlwZSAgICAgICAgJUlucHV0VHlwZTsgICAgInRleHQiCisgIG5hbWUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHZhbHVlICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIGNoZWNrZWQgICAgIChjaGVja2VkKSAgICAgICNJTVBMSUVECisgIGRpc2FibGVkICAgIChkaXNhYmxlZCkgICAgICNJTVBMSUVECisgIHJlYWRvbmx5ICAgIChyZWFkb25seSkgICAgICNJTVBMSUVECisgIHNpemUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIG1heGxlbmd0aCAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIHNyYyAgICAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIGFsdCAgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHVzZW1hcCAgICAgICVVUkk7ICAgICAgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uc2VsZWN0ICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uY2hhbmdlICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIGFjY2VwdCAgICAgICVDb250ZW50VHlwZXM7ICNJTVBMSUVECisgIGFsaWduICAgICAgICVJbWdBbGlnbjsgICAgICNJTVBMSUVECisgID4KKworPCFFTEVNRU5UIHNlbGVjdCAob3B0Z3JvdXB8b3B0aW9uKSs+ICA8IS0tIG9wdGlvbiBzZWxlY3RvciAtLT4KKzwhQVRUTElTVCBzZWxlY3QKKyAgJWF0dHJzOworICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICBzaXplICAgICAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBtdWx0aXBsZSAgICAobXVsdGlwbGUpICAgICAjSU1QTElFRAorICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmNoYW5nZSAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICA+CisKKzwhRUxFTUVOVCBvcHRncm91cCAob3B0aW9uKSs+ICAgPCEtLSBvcHRpb24gZ3JvdXAgLS0+Cis8IUFUVExJU1Qgb3B0Z3JvdXAKKyAgJWF0dHJzOworICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICBsYWJlbCAgICAgICAlVGV4dDsgICAgICAgICAjUkVRVUlSRUQKKyAgPgorCis8IUVMRU1FTlQgb3B0aW9uICgjUENEQVRBKT4gICAgIDwhLS0gc2VsZWN0YWJsZSBjaG9pY2UgLS0+Cis8IUFUVExJU1Qgb3B0aW9uCisgICVhdHRyczsKKyAgc2VsZWN0ZWQgICAgKHNlbGVjdGVkKSAgICAgI0lNUExJRUQKKyAgZGlzYWJsZWQgICAgKGRpc2FibGVkKSAgICAgI0lNUExJRUQKKyAgbGFiZWwgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgdmFsdWUgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVMRU1FTlQgdGV4dGFyZWEgKCNQQ0RBVEEpPiAgICAgPCEtLSBtdWx0aS1saW5lIHRleHQgZmllbGQgLS0+Cis8IUFUVExJU1QgdGV4dGFyZWEKKyAgJWF0dHJzOworICBuYW1lICAgICAgICBDREFUQSAgICAgICAgICAjSU1QTElFRAorICByb3dzICAgICAgICAlTnVtYmVyOyAgICAgICAjUkVRVUlSRUQKKyAgY29scyAgICAgICAgJU51bWJlcjsgICAgICAgI1JFUVVJUkVECisgIGRpc2FibGVkICAgIChkaXNhYmxlZCkgICAgICNJTVBMSUVECisgIHJlYWRvbmx5ICAgIChyZWFkb25seSkgICAgICNJTVBMSUVECisgIHRhYmluZGV4ICAgICVOdW1iZXI7ICAgICAgICNJTVBMSUVECisgIGFjY2Vzc2tleSAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgIG9uZm9jdXMgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uYmx1ciAgICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uc2VsZWN0ICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgIG9uY2hhbmdlICAgICVTY3JpcHQ7ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorICBUaGUgZmllbGRzZXQgZWxlbWVudCBpcyB1c2VkIHRvIGdyb3VwIGZvcm0gZmllbGRzLgorICBPbmx5IG9uZSBsZWdlbmQgZWxlbWVudCBzaG91bGQgb2NjdXIgaW4gdGhlIGNvbnRlbnQKKyAgYW5kIGlmIHByZXNlbnQgc2hvdWxkIG9ubHkgYmUgcHJlY2VkZWQgYnkgd2hpdGVzcGFjZS4KKy0tPgorPCFFTEVNRU5UIGZpZWxkc2V0ICgjUENEQVRBIHwgbGVnZW5kIHwgJWJsb2NrOyB8IGZvcm0gfCAlaW5saW5lOyB8ICVtaXNjOykqPgorPCFBVFRMSVNUIGZpZWxkc2V0CisgICVhdHRyczsKKyAgPgorCis8IUVOVElUWSAlIExBbGlnbiAiKHRvcHxib3R0b218bGVmdHxyaWdodCkiPgorCis8IUVMRU1FTlQgbGVnZW5kICVJbmxpbmU7PiAgICAgPCEtLSBmaWVsZHNldCBsYWJlbCAtLT4KKzwhQVRUTElTVCBsZWdlbmQKKyAgJWF0dHJzOworICBhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICBhbGlnbiAgICAgICAlTEFsaWduOyAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0KKyBDb250ZW50IGlzICVGbG93OyBleGNsdWRpbmcgYSwgZm9ybSwgZm9ybSBjb250cm9scywgaWZyYW1lCistLT4gCis8IUVMRU1FTlQgYnV0dG9uICVidXR0b24uY29udGVudDs+ICA8IS0tIHB1c2ggYnV0dG9uIC0tPgorPCFBVFRMSVNUIGJ1dHRvbgorICAlYXR0cnM7CisgIG5hbWUgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHZhbHVlICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVECisgIHR5cGUgICAgICAgIChidXR0b258c3VibWl0fHJlc2V0KSAic3VibWl0IgorICBkaXNhYmxlZCAgICAoZGlzYWJsZWQpICAgICAjSU1QTElFRAorICB0YWJpbmRleCAgICAlTnVtYmVyOyAgICAgICAjSU1QTElFRAorICBhY2Nlc3NrZXkgICAlQ2hhcmFjdGVyOyAgICAjSU1QTElFRAorICBvbmZvY3VzICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICBvbmJsdXIgICAgICAlU2NyaXB0OyAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0gc2luZ2xlLWxpbmUgdGV4dCBpbnB1dCBjb250cm9sIChERVBSRUNBVEVEKSAtLT4KKzwhRUxFTUVOVCBpc2luZGV4IEVNUFRZPgorPCFBVFRMSVNUIGlzaW5kZXgKKyAgJWNvcmVhdHRyczsKKyAgJWkxOG47CisgIHByb21wdCAgICAgICVUZXh0OyAgICAgICAgICNJTVBMSUVECisgID4KKworPCEtLT09PT09PT09PT09PT09PT09PT09PT09IFRhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKworPCEtLSBEZXJpdmVkIGZyb20gSUVURiBIVE1MIHRhYmxlIHN0YW5kYXJkLCBzZWUgW1JGQzE5NDJdIC0tPgorCis8IS0tCisgVGhlIGJvcmRlciBhdHRyaWJ1dGUgc2V0cyB0aGUgdGhpY2tuZXNzIG9mIHRoZSBmcmFtZSBhcm91bmQgdGhlCisgdGFibGUuIFRoZSBkZWZhdWx0IHVuaXRzIGFyZSBzY3JlZW4gcGl4ZWxzLgorCisgVGhlIGZyYW1lIGF0dHJpYnV0ZSBzcGVjaWZpZXMgd2hpY2ggcGFydHMgb2YgdGhlIGZyYW1lIGFyb3VuZAorIHRoZSB0YWJsZSBzaG91bGQgYmUgcmVuZGVyZWQuIFRoZSB2YWx1ZXMgYXJlIG5vdCB0aGUgc2FtZSBhcworIENBTFMgdG8gYXZvaWQgYSBuYW1lIGNsYXNoIHdpdGggdGhlIHZhbGlnbiBhdHRyaWJ1dGUuCistLT4KKzwhRU5USVRZICUgVEZyYW1lICIodm9pZHxhYm92ZXxiZWxvd3xoc2lkZXN8bGhzfHJoc3x2c2lkZXN8Ym94fGJvcmRlcikiPgorCis8IS0tCisgVGhlIHJ1bGVzIGF0dHJpYnV0ZSBkZWZpbmVzIHdoaWNoIHJ1bGVzIHRvIGRyYXcgYmV0d2VlbiBjZWxsczoKKworIElmIHJ1bGVzIGlzIGFic2VudCB0aGVuIGFzc3VtZToKKyAgICAgIm5vbmUiIGlmIGJvcmRlciBpcyBhYnNlbnQgb3IgYm9yZGVyPSIwIiBvdGhlcndpc2UgImFsbCIKKy0tPgorCis8IUVOVElUWSAlIFRSdWxlcyAiKG5vbmUgfCBncm91cHMgfCByb3dzIHwgY29scyB8IGFsbCkiPgorICAKKzwhLS0gaG9yaXpvbnRhbCBwbGFjZW1lbnQgb2YgdGFibGUgcmVsYXRpdmUgdG8gZG9jdW1lbnQgLS0+Cis8IUVOVElUWSAlIFRBbGlnbiAiKGxlZnR8Y2VudGVyfHJpZ2h0KSI+CisKKzwhLS0gaG9yaXpvbnRhbCBhbGlnbm1lbnQgYXR0cmlidXRlcyBmb3IgY2VsbCBjb250ZW50cworCisgIGNoYXIgICAgICAgIGFsaWdubWVudCBjaGFyLCBlLmcuIGNoYXI9JzonCisgIGNoYXJvZmYgICAgIG9mZnNldCBmb3IgYWxpZ25tZW50IGNoYXIKKy0tPgorPCFFTlRJVFkgJSBjZWxsaGFsaWduCisgICJhbGlnbiAgICAgIChsZWZ0fGNlbnRlcnxyaWdodHxqdXN0aWZ5fGNoYXIpICNJTVBMSUVECisgICBjaGFyICAgICAgICVDaGFyYWN0ZXI7ICAgICNJTVBMSUVECisgICBjaGFyb2ZmICAgICVMZW5ndGg7ICAgICAgICNJTVBMSUVEIgorICA+CisKKzwhLS0gdmVydGljYWwgYWxpZ25tZW50IGF0dHJpYnV0ZXMgZm9yIGNlbGwgY29udGVudHMgLS0+Cis8IUVOVElUWSAlIGNlbGx2YWxpZ24KKyAgInZhbGlnbiAgICAgKHRvcHxtaWRkbGV8Ym90dG9tfGJhc2VsaW5lKSAjSU1QTElFRCIKKyAgPgorCis8IUVMRU1FTlQgdGFibGUKKyAgICAgKGNhcHRpb24/LCAoY29sKnxjb2xncm91cCopLCB0aGVhZD8sIHRmb290PywgKHRib2R5K3x0cispKT4KKzwhRUxFTUVOVCBjYXB0aW9uICAlSW5saW5lOz4KKzwhRUxFTUVOVCB0aGVhZCAgICAodHIpKz4KKzwhRUxFTUVOVCB0Zm9vdCAgICAodHIpKz4KKzwhRUxFTUVOVCB0Ym9keSAgICAodHIpKz4KKzwhRUxFTUVOVCBjb2xncm91cCAoY29sKSo+Cis8IUVMRU1FTlQgY29sICAgICAgRU1QVFk+Cis8IUVMRU1FTlQgdHIgICAgICAgKHRofHRkKSs+Cis8IUVMRU1FTlQgdGggICAgICAgJUZsb3c7PgorPCFFTEVNRU5UIHRkICAgICAgICVGbG93Oz4KKworPCFBVFRMSVNUIHRhYmxlCisgICVhdHRyczsKKyAgc3VtbWFyeSAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgd2lkdGggICAgICAgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgYm9yZGVyICAgICAgJVBpeGVsczsgICAgICAgI0lNUExJRUQKKyAgZnJhbWUgICAgICAgJVRGcmFtZTsgICAgICAgI0lNUExJRUQKKyAgcnVsZXMgICAgICAgJVRSdWxlczsgICAgICAgI0lNUExJRUQKKyAgY2VsbHNwYWNpbmcgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgY2VsbHBhZGRpbmcgJUxlbmd0aDsgICAgICAgI0lNUExJRUQKKyAgYWxpZ24gICAgICAgJVRBbGlnbjsgICAgICAgI0lNUExJRUQKKyAgYmdjb2xvciAgICAgJUNvbG9yOyAgICAgICAgI0lNUExJRUQKKyAgPgorCis8IUVOVElUWSAlIENBbGlnbiAiKHRvcHxib3R0b218bGVmdHxyaWdodCkiPgorCis8IUFUVExJU1QgY2FwdGlvbgorICAlYXR0cnM7CisgIGFsaWduICAgICAgICVDQWxpZ247ICAgICAgICNJTVBMSUVECisgID4KKworPCEtLQorY29sZ3JvdXAgZ3JvdXBzIGEgc2V0IG9mIGNvbCBlbGVtZW50cy4gSXQgYWxsb3dzIHlvdSB0byBncm91cAorc2V2ZXJhbCBzZW1hbnRpY2FsbHkgcmVsYXRlZCBjb2x1bW5zIHRvZ2V0aGVyLgorLS0+Cis8IUFUVExJU1QgY29sZ3JvdXAKKyAgJWF0dHJzOworICBzcGFuICAgICAgICAlTnVtYmVyOyAgICAgICAiMSIKKyAgd2lkdGggICAgICAgJU11bHRpTGVuZ3RoOyAgI0lNUExJRUQKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICA+CisKKzwhLS0KKyBjb2wgZWxlbWVudHMgZGVmaW5lIHRoZSBhbGlnbm1lbnQgcHJvcGVydGllcyBmb3IgY2VsbHMgaW4KKyBvbmUgb3IgbW9yZSBjb2x1bW5zLgorCisgVGhlIHdpZHRoIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW5zLCBlLmcuCisKKyAgICAgd2lkdGg9NjQgICAgICAgIHdpZHRoIGluIHNjcmVlbiBwaXhlbHMKKyAgICAgd2lkdGg9MC41KiAgICAgIHJlbGF0aXZlIHdpZHRoIG9mIDAuNQorCisgVGhlIHNwYW4gYXR0cmlidXRlIGNhdXNlcyB0aGUgYXR0cmlidXRlcyBvZiBvbmUKKyBjb2wgZWxlbWVudCB0byBhcHBseSB0byBtb3JlIHRoYW4gb25lIGNvbHVtbi4KKy0tPgorPCFBVFRMSVNUIGNvbAorICAlYXR0cnM7CisgIHNwYW4gICAgICAgICVOdW1iZXI7ICAgICAgICIxIgorICB3aWR0aCAgICAgICAlTXVsdGlMZW5ndGg7ICAjSU1QTElFRAorICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgID4KKworPCEtLQorICAgIFVzZSB0aGVhZCB0byBkdXBsaWNhdGUgaGVhZGVycyB3aGVuIGJyZWFraW5nIHRhYmxlCisgICAgYWNyb3NzIHBhZ2UgYm91bmRhcmllcywgb3IgZm9yIHN0YXRpYyBoZWFkZXJzIHdoZW4KKyAgICB0Ym9keSBzZWN0aW9ucyBhcmUgcmVuZGVyZWQgaW4gc2Nyb2xsaW5nIHBhbmVsLgorCisgICAgVXNlIHRmb290IHRvIGR1cGxpY2F0ZSBmb290ZXJzIHdoZW4gYnJlYWtpbmcgdGFibGUKKyAgICBhY3Jvc3MgcGFnZSBib3VuZGFyaWVzLCBvciBmb3Igc3RhdGljIGZvb3RlcnMgd2hlbgorICAgIHRib2R5IHNlY3Rpb25zIGFyZSByZW5kZXJlZCBpbiBzY3JvbGxpbmcgcGFuZWwuCisKKyAgICBVc2UgbXVsdGlwbGUgdGJvZHkgc2VjdGlvbnMgd2hlbiBydWxlcyBhcmUgbmVlZGVkCisgICAgYmV0d2VlbiBncm91cHMgb2YgdGFibGUgcm93cy4KKy0tPgorPCFBVFRMSVNUIHRoZWFkCisgICVhdHRyczsKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICA+CisKKzwhQVRUTElTVCB0Zm9vdAorICAlYXR0cnM7CisgICVjZWxsaGFsaWduOworICAlY2VsbHZhbGlnbjsKKyAgPgorCis8IUFUVExJU1QgdGJvZHkKKyAgJWF0dHJzOworICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgID4KKworPCFBVFRMSVNUIHRyCisgICVhdHRyczsKKyAgJWNlbGxoYWxpZ247CisgICVjZWxsdmFsaWduOworICBiZ2NvbG9yICAgICAlQ29sb3I7ICAgICAgICAjSU1QTElFRAorICA+CisKKzwhLS0gU2NvcGUgaXMgc2ltcGxlciB0aGFuIGhlYWRlcnMgYXR0cmlidXRlIGZvciBjb21tb24gdGFibGVzIC0tPgorPCFFTlRJVFkgJSBTY29wZSAiKHJvd3xjb2x8cm93Z3JvdXB8Y29sZ3JvdXApIj4KKworPCEtLSB0aCBpcyBmb3IgaGVhZGVycywgdGQgZm9yIGRhdGEgYW5kIGZvciBjZWxscyBhY3RpbmcgYXMgYm90aCAtLT4KKworPCFBVFRMSVNUIHRoCisgICVhdHRyczsKKyAgYWJiciAgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgYXhpcyAgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgaGVhZGVycyAgICAgSURSRUZTICAgICAgICAgI0lNUExJRUQKKyAgc2NvcGUgICAgICAgJVNjb3BlOyAgICAgICAgI0lNUExJRUQKKyAgcm93c3BhbiAgICAgJU51bWJlcjsgICAgICAgIjEiCisgIGNvbHNwYW4gICAgICVOdW1iZXI7ICAgICAgICIxIgorICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgIG5vd3JhcCAgICAgIChub3dyYXApICAgICAgICNJTVBMSUVECisgIGJnY29sb3IgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKworPCFBVFRMSVNUIHRkCisgICVhdHRyczsKKyAgYWJiciAgICAgICAgJVRleHQ7ICAgICAgICAgI0lNUExJRUQKKyAgYXhpcyAgICAgICAgQ0RBVEEgICAgICAgICAgI0lNUExJRUQKKyAgaGVhZGVycyAgICAgSURSRUZTICAgICAgICAgI0lNUExJRUQKKyAgc2NvcGUgICAgICAgJVNjb3BlOyAgICAgICAgI0lNUExJRUQKKyAgcm93c3BhbiAgICAgJU51bWJlcjsgICAgICAgIjEiCisgIGNvbHNwYW4gICAgICVOdW1iZXI7ICAgICAgICIxIgorICAlY2VsbGhhbGlnbjsKKyAgJWNlbGx2YWxpZ247CisgIG5vd3JhcCAgICAgIChub3dyYXApICAgICAgICNJTVBMSUVECisgIGJnY29sb3IgICAgICVDb2xvcjsgICAgICAgICNJTVBMSUVECisgIHdpZHRoICAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgIGhlaWdodCAgICAgICVQaXhlbHM7ICAgICAgICNJTVBMSUVECisgID4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveGh0bWwxLmRjbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sMS5kY2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVkMjEwMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9kdGRzL3hodG1sMS5kY2wKQEAgLTAsMCArMSwxNzkgQEAKKzwhU0dNTCAtLSBTR01MIERlY2xhcmF0aW9uIGZvciB2YWxpZCBYTUwgZG9jdW1lbnRzIC0tCisgICAgICJJU08gODg3OToxOTg2IChXV1cpIgorCisgICAgIENIQVJTRVQKKyAgICAgICAgIEJBU0VTRVQKKyAgICAgICAgICAgICAiSVNPIFJlZ2lzdHJhdGlvbiBOdW1iZXIgMTc2Ly9DSEFSU0VUCisgICAgICAgICAgICAgSVNPL0lFQyAxMDY0Ni0xOjE5OTMgVUNTLTQgd2l0aCBpbXBsZW1lbnRhdGlvbiAKKyAgICAgICAgICAgICBsZXZlbCAzLy9FU0MgMi81IDIvMTUgNC82IgorICAgICAgICAgREVTQ1NFVAorICAgICAgICAgICAgICAgIDAgICAgICAgOSAgICAgICBVTlVTRUQKKyAgICAgICAgICAgICAgICA5ICAgICAgIDIgICAgICAgOQorICAgICAgICAgICAgICAgIDExICAgICAgMiAgICAgICBVTlVTRUQKKyAgICAgICAgICAgICAgICAxMyAgICAgIDEgICAgICAgMTMKKyAgICAgICAgICAgICAgICAxNCAgICAgIDE4ICAgICAgVU5VU0VECisgICAgICAgICAgICAgICAgMzIgICAgICA5NSAgICAgIDMyCisgICAgICAgICAgICAgICAgMTI3ICAgICAxICAgICAgIFVOVVNFRAorICAgICAgICAgICAgICAgIDEyOCAgICAgMzIgICAgICBVTlVTRUQKKyAgICAgICAgICAgICAtLSB1c2UgdGhpcyBpbnN0ZWFkIG9mIHRoZSBvZmZpY2lhbCBkZWNsYXJhdGlvbiBiZWNhdXNlIFNQIG9ubHkKKyAgICAgICAgICAgICAgICBzdXBwb3J0cyAxNi1iaXQgY2hhcmFjdGVycyAtLQorICAgICAgICAgICAgICAgIDE2MCAgICAgNjUzNzQgICAxNjAKKyAgICAgICAgICAgICAgICA2NTUzNCAgIDIgICAgICAgVU5VU0VEIAorICAgICAgICAgICAgIC0tIDU1Mjk2ICAgMjA0OCAgICBVTlVTRUQKKyAgICAgICAgICAgICAgICA1NzM0NCAgIDgxOTAgICAgNTczNDQKKyAgICAgICAgICAgICAgICA2NTUzNCAgIDIgICAgICAgVU5VU0VECisgICAgICAgICAgICAgICAgNjU1MzYgICAxMDQ4NTc2IDY1NTM2IC0tCisgICAgIENBUEFDSVRZIE5PTkUKKworICAgICBTQ09QRSBET0NVTUVOVAorCisgICAgIFNZTlRBWAorICAgICAgICAgU0hVTkNIQVIgTk9ORQorICAgICAgICAgQkFTRVNFVCAiSVNPIFJlZ2lzdHJhdGlvbiBOdW1iZXIgMTc2Ly9DSEFSU0VUCisgICAgICAgICAgICAgICAgIElTTy9JRUMgMTA2NDYtMToxOTkzIFVDUy00IHdpdGggaW1wbGVtZW50YXRpb24gCisgICAgICAgICAgICAgICAgIGxldmVsIDMvL0VTQyAyLzUgMi8xNSA0LzYiCisgICAgICAgICBERVNDU0VUCisgICAgICAgICAgICAgMCAxMTE0MTEyIDAKKyAgICAgICAgIEZVTkNUSU9OCisgICAgICAgICAgICAgUkUgICAgMTMKKyAgICAgICAgICAgICBSUyAgICAxMAorICAgICAgICAgICAgIFNQQUNFIDMyCisgICAgICAgICAgICAgVEFCICAgU0VQQ0hBUiA5CisKKyAgICAgICAgIE5BTUlORworICAgICAgICAgICAgIExDTk1TVFJUICIiCisgICAgICAgICAgICAgVUNOTVNUUlQgIiIKKyAgICAgICAgICAgICBOQU1FU1RSVAorICAgICAgICAgICAgICAgICA1OCA5NSAxOTItMjE0IDIxNi0yNDYgMjQ4LTMwNSAzMDgtMzE4IDMyMS0zMjgKKyAgICAgICAgICAgICAgICAgMzMwLTM4MiAzODQtNDUxIDQ2MS00OTYgNTAwLTUwMSA1MDYtNTM1IDU5Mi02ODAKKyAgICAgICAgICAgICAgICAgNjk5LTcwNSA5MDIgOTA0LTkwNiA5MDggOTEwLTkyOSA5MzEtOTc0IDk3Ni05ODIKKyAgICAgICAgICAgICAgICAgOTg2IDk4OCA5OTAgOTkyIDk5NC0xMDExIDEwMjUtMTAzNiAxMDM4LTExMDMKKyAgICAgICAgICAgICAgICAgMTEwNS0xMTE2IDExMTgtMTE1MyAxMTY4LTEyMjAgMTIyMy0xMjI0CisgICAgICAgICAgICAgICAgIDEyMjctMTIyOCAxMjMyLTEyNTkgMTI2Mi0xMjY5IDEyNzItMTI3MworICAgICAgICAgICAgICAgICAxMzI5LTEzNjYgMTM2OSAxMzc3LTE0MTQgMTQ4OC0xNTE0IDE1MjAtMTUyMgorICAgICAgICAgICAgICAgICAxNTY5LTE1OTQgMTYwMS0xNjEwIDE2NDktMTcxOSAxNzIyLTE3MjYKKyAgICAgICAgICAgICAgICAgMTcyOC0xNzQyIDE3NDQtMTc0NyAxNzQ5IDE3NjUtMTc2NiAyMzA5LTIzNjEKKyAgICAgICAgICAgICAgICAgMjM2NSAyMzkyLTI0MDEgMjQzNy0yNDQ0IDI0NDctMjQ0OCAyNDUxLTI0NzIKKyAgICAgICAgICAgICAgICAgMjQ3NC0yNDgwIDI0ODIgMjQ4Ni0yNDg5IDI1MjQtMjUyNSAyNTI3LTI1MjkKKyAgICAgICAgICAgICAgICAgMjU0NC0yNTQ1IDI1NjUtMjU3MCAyNTc1LTI1NzYgMjU3OS0yNjAwCisgICAgICAgICAgICAgICAgIDI2MDItMjYwOCAyNjEwLTI2MTEgMjYxMy0yNjE0IDI2MTYtMjYxNworICAgICAgICAgICAgICAgICAyNjQ5LTI2NTIgMjY1NCAyNjc0LTI2NzYgMjY5My0yNjk5IDI3MDEKKyAgICAgICAgICAgICAgICAgMjcwMy0yNzA1IDI3MDctMjcyOCAyNzMwLTI3MzYgMjczOC0yNzM5CisgICAgICAgICAgICAgICAgIDI3NDEtMjc0NSAyNzQ5IDI3ODQgMjgyMS0yODI4IDI4MzEtMjgzMgorICAgICAgICAgICAgICAgICAyODM1LTI4NTYgMjg1OC0yODY0IDI4NjYtMjg2NyAyODcwLTI4NzMgMjg3NworICAgICAgICAgICAgICAgICAyOTA4LTI5MDkgMjkxMS0yOTEzIDI5NDktMjk1NCAyOTU4LTI5NjAKKyAgICAgICAgICAgICAgICAgMjk2Mi0yOTY1IDI5NjktMjk3MCAyOTcyIDI5NzQtMjk3NSAyOTc5LTI5ODAKKyAgICAgICAgICAgICAgICAgMjk4NC0yOTg2IDI5OTAtMjk5NyAyOTk5LTMwMDEgMzA3Ny0zMDg0CisgICAgICAgICAgICAgICAgIDMwODYtMzA4OCAzMDkwLTMxMTIgMzExNC0zMTIzIDMxMjUtMzEyOQorICAgICAgICAgICAgICAgICAzMTY4LTMxNjkgMzIwNS0zMjEyIDMyMTQtMzIxNiAzMjE4LTMyNDAKKyAgICAgICAgICAgICAgICAgMzI0Mi0zMjUxIDMyNTMtMzI1NyAzMjk0IDMyOTYtMzI5NyAzMzMzLTMzNDAKKyAgICAgICAgICAgICAgICAgMzM0Mi0zMzQ0IDMzNDYtMzM2OCAzMzcwLTMzODUgMzQyNC0zNDI1CisgICAgICAgICAgICAgICAgIDM1ODUtMzYzMCAzNjMyIDM2MzQtMzYzNSAzNjQ4LTM2NTMgMzcxMy0zNzE0CisgICAgICAgICAgICAgICAgIDM3MTYgMzcxOS0zNzIwIDM3MjIgMzcyNSAzNzMyLTM3MzUgMzczNy0zNzQzCisgICAgICAgICAgICAgICAgIDM3NDUtMzc0NyAzNzQ5IDM3NTEgMzc1NC0zNzU1IDM3NTctMzc1OCAzNzYwCisgICAgICAgICAgICAgICAgIDM3NjItMzc2MyAzNzczIDM3NzYtMzc4MCAzOTA0LTM5MTEgMzkxMy0zOTQ1CisgICAgICAgICAgICAgICAgIDQyNTYtNDI5MyA0MzA0LTQzNDIgNDM1MiA0MzU0LTQzNTUgNDM1Ny00MzU5CisgICAgICAgICAgICAgICAgIDQzNjEgNDM2My00MzY0IDQzNjYtNDM3MCA0NDEyIDQ0MTQgNDQxNiA0NDI4CisgICAgICAgICAgICAgICAgIDQ0MzAgNDQzMiA0NDM2LTQ0MzcgNDQ0MSA0NDQ3LTQ0NDkgNDQ1MSA0NDUzCisgICAgICAgICAgICAgICAgIDQ0NTUgNDQ1NyA0NDYxLTQ0NjIgNDQ2Ni00NDY3IDQ0NjkgNDUxMCA0NTIwCisgICAgICAgICAgICAgICAgIDQ1MjMgNDUyNi00NTI3IDQ1MzUtNDUzNiA0NTM4IDQ1NDAtNDU0NiA0NTg3CisgICAgICAgICAgICAgICAgIDQ1OTIgNDYwMSA3NjgwLTc4MzUgNzg0MC03OTI5IDc5MzYtNzk1NworICAgICAgICAgICAgICAgICA3OTYwLTc5NjUgNzk2OC04MDA1IDgwMDgtODAxMyA4MDE2LTgwMjMgODAyNQorICAgICAgICAgICAgICAgICA4MDI3IDgwMjkgODAzMS04MDYxIDgwNjQtODExNiA4MTE4LTgxMjQgODEyNgorICAgICAgICAgICAgICAgICA4MTMwLTgxMzIgODEzNC04MTQwIDgxNDQtODE0NyA4MTUwLTgxNTUKKyAgICAgICAgICAgICAgICAgODE2MC04MTcyIDgxNzgtODE4MCA4MTgyLTgxODggODQ4NiA4NDkwLTg0OTEKKyAgICAgICAgICAgICAgICAgODQ5NCA4NTc2LTg1NzggMTIyOTUgMTIzMjEtMTIzMjkgMTIzNTMtMTI0MzYKKyAgICAgICAgICAgICAgICAgMTI0NDktMTI1MzggMTI1NDktMTI1ODggMTk5NjgtNDA4NjkgNDQwMzItNTUyMDMKKworICAgICAgICAgICAgIExDTk1DSEFSICIiCisgICAgICAgICAgICAgVUNOTUNIQVIgIiIKKyAgICAgICAgICAgICBOQU1FQ0hBUgorICAgICAgICAgICAgICAgICA0NS00NiAxODMgNzIwLTcyMSA3NjgtODM3IDg2NC04NjUgOTAzIDExNTUtMTE1OAorICAgICAgICAgICAgICAgICAxNDI1LTE0NDEgMTQ0My0xNDY1IDE0NjctMTQ2OSAxNDcxIDE0NzMtMTQ3NAorICAgICAgICAgICAgICAgICAxNDc2IDE2MDAgMTYxMS0xNjE4IDE2MzItMTY0MSAxNjQ4IDE3NTAtMTc2NAorICAgICAgICAgICAgICAgICAxNzY3LTE3NjggMTc3MC0xNzczIDE3NzYtMTc4NSAyMzA1LTIzMDcgMjM2NAorICAgICAgICAgICAgICAgICAyMzY2LTIzODEgMjM4NS0yMzg4IDI0MDItMjQwMyAyNDA2LTI0MTUKKyAgICAgICAgICAgICAgICAgMjQzMy0yNDM1IDI0OTIgMjQ5NC0yNTAwIDI1MDMtMjUwNCAyNTA3LTI1MDkKKyAgICAgICAgICAgICAgICAgMjUxOSAyNTMwLTI1MzEgMjUzNC0yNTQzIDI1NjIgMjYyMCAyNjIyLTI2MjYKKyAgICAgICAgICAgICAgICAgMjYzMS0yNjMyIDI2MzUtMjYzNyAyNjYyLTI2NzMgMjY4OS0yNjkxIDI3NDgKKyAgICAgICAgICAgICAgICAgMjc1MC0yNzU3IDI3NTktMjc2MSAyNzYzLTI3NjUgMjc5MC0yNzk5CisgICAgICAgICAgICAgICAgIDI4MTctMjgxOSAyODc2IDI4NzgtMjg4MyAyODg3LTI4ODggMjg5MS0yODkzCisgICAgICAgICAgICAgICAgIDI5MDItMjkwMyAyOTE4LTI5MjcgMjk0Ni0yOTQ3IDMwMDYtMzAxMAorICAgICAgICAgICAgICAgICAzMDE0LTMwMTYgMzAxOC0zMDIxIDMwMzEgMzA0Ny0zMDU1IDMwNzMtMzA3NQorICAgICAgICAgICAgICAgICAzMTM0LTMxNDAgMzE0Mi0zMTQ0IDMxNDYtMzE0OSAzMTU3LTMxNTgKKyAgICAgICAgICAgICAgICAgMzE3NC0zMTgzIDMyMDItMzIwMyAzMjYyLTMyNjggMzI3MC0zMjcyCisgICAgICAgICAgICAgICAgIDMyNzQtMzI3NyAzMjg1LTMyODYgMzMwMi0zMzExIDMzMzAtMzMzMQorICAgICAgICAgICAgICAgICAzMzkwLTMzOTUgMzM5OC0zNDAwIDM0MDItMzQwNSAzNDE1IDM0MzAtMzQzOQorICAgICAgICAgICAgICAgICAzNjMzIDM2MzYtMzY0MiAzNjU0LTM2NjIgMzY2NC0zNjczIDM3NjEKKyAgICAgICAgICAgICAgICAgMzc2NC0zNzY5IDM3NzEtMzc3MiAzNzgyIDM3ODQtMzc4OSAzNzkyLTM4MDEKKyAgICAgICAgICAgICAgICAgMzg2NC0zODY1IDM4NzItMzg4MSAzODkzIDM4OTUgMzg5NyAzOTAyLTM5MDMKKyAgICAgICAgICAgICAgICAgMzk1My0zOTcyIDM5NzQtMzk3OSAzOTg0LTM5ODkgMzk5MSAzOTkzLTQwMTMKKyAgICAgICAgICAgICAgICAgNDAxNy00MDIzIDQwMjUgODQwMC04NDEyIDg0MTcgMTIyOTMgMTIzMzAtMTIzMzUKKyAgICAgICAgICAgICAgICAgMTIzMzctMTIzNDEgMTI0NDEtMTI0NDIgMTI0NDUtMTI0NDYgMTI1NDAtMTI1NDIKKworICAgICAgICAgICAgIE5BTUVDQVNFCisgICAgICAgICAgICAgICAgIEdFTkVSQUwgTk8KKyAgICAgICAgICAgICAgICAgRU5USVRZICBOTworCisgICAgICAgICBERUxJTQorICAgICAgICAgICAgIEdFTkVSQUwgU0dNTFJFRgorICAgICAgICAgICAgIEhDUk8gIiYjMzg7I3giIC0tIDM4IGlzIHRoZSBudW1iZXIgZm9yIGFtcGVyc2FuZCAtLQorICAgICAgICAgICAgIE5FU1RDICIvIgorICAgICAgICAgICAgIE5FVCAiPiIKKyAgICAgICAgICAgICBQSUMgIj8+IgorICAgICAgICAgICAgIFNIT1JUUkVGIE5PTkUKKworICAgICAgICAgTkFNRVMKKyAgICAgICAgICAgICBTR01MUkVGCisKKyAgICAgICAgIFFVQU5USVRZIE5PTkUKKworICAgICAgICAgRU5USVRJRVMKKyAgICAgICAgICAgICAiYW1wIiAzOAorICAgICAgICAgICAgICJsdCIgNjAKKyAgICAgICAgICAgICAiZ3QiIDYyCisgICAgICAgICAgICAgInF1b3QiIDM0CisgICAgICAgICAgICAgImFwb3MiIDM5CisKKyAgICAgRkVBVFVSRVMKKyAgICAgICAgIE1JTklNSVpFCisgICAgICAgICAgICAgREFUQVRBRyBOTworICAgICAgICAgICAgIE9NSVRUQUcgTk8KKyAgICAgICAgICAgICBSQU5LIE5PCisgICAgICAgICAgICAgU0hPUlRUQUcKKyAgICAgICAgICAgICAgICAgU1RBUlRUQUcKKyAgICAgICAgICAgICAgICAgICAgIEVNUFRZIE5PCisgICAgICAgICAgICAgICAgICAgICBVTkNMT1NFRCBOTyAKKyAgICAgICAgICAgICAgICAgICAgIE5FVEVOQUJMIElNTUVETkVUCisgICAgICAgICAgICAgICAgIEVORFRBRworICAgICAgICAgICAgICAgICAgICAgRU1QVFkgTk8gCisgICAgICAgICAgICAgICAgICAgICBVTkNMT1NFRCBOTworICAgICAgICAgICAgICAgICBBVFRSSUIKKyAgICAgICAgICAgICAgICAgICAgIERFRkFVTFQgWUVTCisgICAgICAgICAgICAgICAgICAgICBPTUlUTkFNRSBOTworICAgICAgICAgICAgICAgICAgICAgVkFMVUUgTk8KKyAgICAgICAgICAgICBFTVBUWU5STSBZRVMKKyAgICAgICAgICAgICBJTVBMWURFRgorICAgICAgICAgICAgICAgICBBVFRMSVNUIE5PCisgICAgICAgICAgICAgICAgIERPQ1RZUEUgTk8KKyAgICAgICAgICAgICAgICAgRUxFTUVOVCBOTworICAgICAgICAgICAgICAgICBFTlRJVFkgTk8KKyAgICAgICAgICAgICAgICAgTk9UQVRJT04gTk8KKyAgICAgICAgIExJTksKKyAgICAgICAgICAgICBTSU1QTEUgTk8KKyAgICAgICAgICAgICBJTVBMSUNJVCBOTworICAgICAgICAgICAgIEVYUExJQ0lUIE5PCisgICAgICAgICBPVEhFUgorICAgICAgICAgICAgIENPTkNVUiBOTworICAgICAgICAgICAgIFNVQkRPQyBOTworICAgICAgICAgICAgIEZPUk1BTCBOTworICAgICAgICAgICAgIFVSTiBOTworICAgICAgICAgICAgIEtFRVBSU1JFIFlFUworICAgICAgICAgICAgIFZBTElESVRZIFRZUEUKKyAgICAgICAgICAgICBFTlRJVElFUworICAgICAgICAgICAgICAgICBSRUYgQU5ZCisgICAgICAgICAgICAgICAgIElOVEVHUkFMIFlFUworICAgICBBUFBJTkZPIE5PTkUKKyAgICAgU0VFQUxTTyAiSVNPIDg4Nzk6MTk4Ni8vTk9UQVRJT04KKyAgICAgICAgICAgICBFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSAoWE1MKSAxLjAvL0VOIgorPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveG1sc3BlYy5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvZHRkcy94bWxzcGVjLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWNmYmE2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2R0ZHMveG1sc3BlYy5kdGQKQEAgLTAsMCArMSwxMTAyIEBACis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gWE1MIHNwZWNpZmljYXRpb24gRFREIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0KK1RZUElDQUwgSU5WT0NBVElPTjoKKyMgIDwhRE9DVFlQRSBzcGVjIFBVQkxJQworIyAgICAgICAiLS8vVzNDLy9EVEQgU3BlY2lmaWNhdGlvbjo6MTk5ODA1MjEvL0VOIgorIyAgICAgICAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvMDYveG1sc3BlYy0xOTk4MDUyMS5kdGQiPgorCitQVVJQT1NFOgorICBUaGlzIERURCB3YXMgZGV2ZWxvcGVkIGZvciB1c2Ugd2l0aCB0aGUgWE1MIGZhbWlseSBvZiBXM0MKKyAgc3BlY2lmaWNhdGlvbnMuICBJdCBpcyBhbiBYTUwtY29tcGxpYW50IERURCBiYXNlZCBpbiBwYXJ0IG9uCisgIHRoZSBURUkgTGl0ZSBhbmQgU3dlYiBEVERzLgorCitERVBFTkRFTkNJRVM6CisgIE5vbmUuCisKK0NIQU5HRSBISVNUT1JZOgorICBUaGUgbGlzdCBvZiBjaGFuZ2VzIGlzIGF0IHRoZSBlbmQgb2YgdGhlIERURC4KKworICBGb3IgYWxsIGRldGFpbHMsIHNlZSB0aGUgZGVzaWduIHJlcG9ydCBhdDoKKworIyAgIDxodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC8wNi94bWxzcGVjLXJlcG9ydC0xOTk4MDUyMS5odG0+CisKKyAgVGhlICJ0eXBpY2FsIGludm9jYXRpb24iIEZQSSBhbHdheXMgZ2V0cyB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlCisgIGRhdGUgb2YgdGhlIG1vc3QgcmVjZW50IGNoYW5nZXMuCisKKyAgU2VhcmNoIHRoaXMgZmlsZSBmb3IgIiMiIGluIHRoZSBmaXJzdCBjb2x1bW4gdG8gc2VlIGNoYW5nZSBoaXN0b3J5CisgIGNvbW1lbnRzLgorCitNQUlOVEFJTkVSOgorICBFdmUgTWFsZXIKKyAgQXJib3JUZXh0IEluYy4KKyAgZWxtQGFyYm9ydGV4dC5jb20KKyAgdm9pY2U6ICsxIDc4MSAyNzAgNTc1MAorICBmYXg6ICAgKzEgNzgxIDI3MyAzNzYwCistLT4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBjaGFyYWN0ZXJzIGFuZCBzeW1ib2xzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBBZGRlZCAmbGRxdW87IGFuZCAmcmRxdW87LgorIyAgICAgICAgICAgICAgICAgICBVc2VkIDg4Nzk6MTk4Ni1jb21wYXRpYmxlIGRlY2ltYWwgY2hhcmFjdGVyCisjICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMuCisjICAgICAgICAgICAgICAgICAgIE1lcmdlZCBjaGFyZW50Lm1vZCBmaWxlIGJhY2sgaW50byBtYWluIGZpbGUuCisjMTk5OC0wNS0xNDogbWFsZXI6IEZpeGVkIGxkcXVvIGFuZCByZHF1by4gIEdhdmUgbWRhc2ggYSByZWFsIG51bWJlci4KKy0tPgorCis8IUVOVElUWSBsdCAgICAgIiYjMzg7IzYwOyI+Cis8IUVOVElUWSBndCAgICAgIiYjNjI7Ij4KKzwhRU5USVRZIGFtcCAgICAiJiMzODsjMzg7Ij4KKzwhRU5USVRZIGFwb3MgICAiJiMzOTsiPgorPCFFTlRJVFkgcXVvdCAgICImIzM0OyI+Cis8IUVOVElUWSBuYnNwICAgIiYjMTYwOyI+Cis8IS0tCis8IUVOVElUWSBtZGFzaCAgIiYjeDIwMTQ7Ij4KKzwhRU5USVRZIGxkcXVvICAiJiN4MjAxQzsiPgorPCFFTlRJVFkgcmRxdW8gICImI3gyMDFEOyI+CistLT4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBjbGFzc2VzIG9mIHN0YW5kYWxvbmUgZWxlbWVudHMgLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTctMTAtMTY6IG1hbGVyOiBBZGRlZCB0YWJsZSB0byAlaWxsdXMuY2xhc3M7LgorIzE5OTctMTEtMjg6IG1hbGVyOiBBZGRlZCBodGFibGUgdG8gJWlsbHVzLmNsYXNzOy4KKyMxOTk3LTEyLTI5OiBtYWxlcjogSUdOT1JFZCB0YWJsZS4KKyMxOTk4LTAzLTEwOiBtYWxlcjogUmVtb3ZlZCBTR01MIE9wZW4tc3BlY2lmaWMgJWlsbHVzLmNsYXNzOy4KKyMgICAgICAgICAgICAgICAgICAgQWRkZWQgImxvY2FsIiBlbnRpdGllcyBmb3IgY3VzdG9taXphdGlvbi4KKyMxOTk4LTA1LTE0OiBtYWxlcjogQWRkZWQgaXNzdWUgdG8gJW5vdGUuY2xhc3M7LgorIyAgICAgICAgICAgICAgICAgICBSZW1vdmVkICVbbG9jYWwuXXN0YXR1c3AuY2xhc3M7LgorIzE5OTgtMDUtMjE6IG1hbGVyOiBBZGRlZCBjb25zdHJhaW50bm90ZSB0byAlbm90ZS5jbGFzczsuCistLT4KKworPCFFTlRJVFkgJSBsb2NhbC5wLmNsYXNzICAgICAgICAiIj4KKzwhRU5USVRZICUgcC5jbGFzcyAgICAgICAgICAgICAgInAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLnAuY2xhc3M7Ij4KKworPCFFTlRJVFkgJSBsb2NhbC5saXN0LmNsYXNzICAgICAiIj4KKzwhRU5USVRZICUgbGlzdC5jbGFzcyAgICAgICAgICAgInVsaXN0fG9saXN0fHNsaXN0fGdsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5saXN0LmNsYXNzOyI+CisKKzwhRU5USVRZICUgbG9jYWwuc3BlY2xpc3QuY2xhc3MgIiI+Cis8IUVOVElUWSAlIHNwZWNsaXN0LmNsYXNzICAgICAgICJvcmdsaXN0fGJsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5zcGVjbGlzdC5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLm5vdGUuY2xhc3MgICAgICIiPgorPCFFTlRJVFkgJSBub3RlLmNsYXNzICAgICAgICAgICAibm90ZXxpc3N1ZXx3ZmNub3RlfHZjbm90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Y29uc3RyYWludG5vdGUgJWxvY2FsLm5vdGUuY2xhc3M7Ij4KKworPCFFTlRJVFkgJSBsb2NhbC5pbGx1cy5jbGFzcyAgICAiIj4KKzwhRU5USVRZICUgaWxsdXMuY2xhc3MgICAgICAgICAgImVnfGdyYXBoaWN8c2NyYXB8aHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5pbGx1cy5jbGFzczsiPgorCis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gRW50aXRpZXMgZm9yIGNsYXNzZXMgb2YgcGhyYXNlLWxldmVsIGVsZW1lbnRzIC4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tCisjMTk5Ny0xMi0yOTogbWFsZXI6IEFkZGVkIHhzcGVjcmVmIHRvICVyZWYuY2xhc3M7LgorIzE5OTgtMDMtMTA6IG1hbGVyOiBBZGRlZCAlZWRub3RlLmNsYXNzOy4KKyMgICAgICAgICAgICAgICAgICAgQWRkZWQgImxvY2FsIiBlbnRpdGllcyBmb3IgY3VzdG9taXphdGlvbi4KKy0tPgorCis8IUVOVElUWSAlIGxvY2FsLmFubm90LmNsYXNzICAgICIiPgorPCFFTlRJVFkgJSBhbm5vdC5jbGFzcyAgICAgICAgICAiZm9vdG5vdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLmFubm90LmNsYXNzOyI+CisKKzwhRU5USVRZICUgbG9jYWwudGVybWRlZi5jbGFzcyAgICAiIj4KKzwhRU5USVRZICUgdGVybWRlZi5jbGFzcyAgICAgICAgInRlcm1kZWZ8dGVybQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwudGVybWRlZi5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLmVtcGguY2xhc3MgICAgIiI+Cis8IUVOVElUWSAlIGVtcGguY2xhc3MgICAgICAgICAgICJlbXBofHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5lbXBoLmNsYXNzOyI+CisKKzwhRU5USVRZICUgbG9jYWwucmVmLmNsYXNzICAgICIiPgorPCFFTlRJVFkgJSByZWYuY2xhc3MgICAgICAgICAgICAiYmlicmVmfHNwZWNyZWZ8dGVybXJlZnx0aXRsZXJlZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8eHNwZWNyZWZ8eHRlcm1yZWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWxvY2FsLnJlZi5jbGFzczsiPgorCis8IUVOVElUWSAlIGxvY2FsLmxvYy5jbGFzcyAgICAiIj4KKzwhRU5USVRZICUgbG9jLmNsYXNzICAgICAgICAgICAgImxvYworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbG9jYWwubG9jLmNsYXNzOyI+CisKKzwhRU5USVRZICUgbG9jYWwudGVjaC5jbGFzcyAgICAiIj4KKzwhRU5USVRZICUgdGVjaC5jbGFzcyAgICAgICAgICAgImt3fG50fHhudHxjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC50ZWNoLmNsYXNzOyI+CisKKzwhRU5USVRZICUgbG9jYWwuZWRub3RlLmNsYXNzICAgICIiPgorPCFFTlRJVFkgJSBlZG5vdGUuY2xhc3MgICAgICAgICAiZWRub3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVsb2NhbC5lZG5vdGUuY2xhc3M7Ij4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBtaXh0dXJlcyBvZiBzdGFuZGFsb25lIGVsZW1lbnRzIC4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTctMDktMzA6IG1hbGVyOiBDcmVhdGVkICVwLm1peDsgdG8gZWxpbWluYXRlIHAgZnJvbSBzZWxmLgorIzE5OTctMDktMzA6IG1hbGVyOiBBZGRlZCAlc3BlY2xpc3QuY2xhc3M7IHRvICVvYmoubWl4OyBhbmQgJXAubWl4Oy4KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgJW5vdGUuY2xhc3M7IHRvICVvYmoubWl4OyBhbmQgJXAubWl4Oy4KKyMxOTk3LTEwLTE2OiBtYWxlcjogQ3JlYXRlZCAlZW50cnkubWl4Oy4gIE5vdGUgdGhhdCBzb21lIGVsZW1lbnRzCisjICAgICAgICAgICAgICAgICAgIGxlZnQgb3V0IGhlcmUgYXJlIHN0aWxsIGFsbG93ZWQgaW4gdGVybWRlZiwKKyMgICAgICAgICAgICAgICAgICAgd2hpY2ggZW50cnkgY2FuIGNvbnRhaW4gdGhyb3VnaCAlcC5wY2QubWl4Oy4KKyMxOTk3LTExLTI4OiBtYWxlcjogQWRkZWQgJXAuY2xhc3M7IHRvICVzdGF0dXNvYmoubWl4Oy4KKyMxOTk4LTAzLTEwOiBtYWxlcjogQWRkZWQgJWVkbm90ZS5jbGFzczsgdG8gYWxsIG1peHR1cmVzLCBleGNlcHQKKyMgICAgICAgICAgICAgICAgICAgJXAubWl4OyBhbmQgJXN0YXR1c29iai5taXg7LCBiZWNhdXNlIHBhcmFncmFwaHMKKyMgICAgICAgICAgICAgICAgICAgYW5kIHN0YXR1cyBwYXJhZ3JhcGhzIHdpbGwgY29udGFpbiBlZG5vdGUKKyMgICAgICAgICAgICAgICAgICAgdGhyb3VnaCAlcC5wY2QubWl4Oy4KKyMxOTk4LTAzLTIzOiBtYWxlcjogQWRkZWQgJXRlcm1kZWYubWl4OyAoYnJva2VuIG91dCBmcm9tCisjICAgICAgICAgICAgICAgICAgICAldGVybWRlZi5wY2QubWl4OykuCisjMTk5OC0wNS0xNDogbWFsZXI6IFJlbW92ZWQgJXN0YXR1c29iai5taXg7IGFuZCBhbGwgbWVudGlvbnMgb2YKKyMgICAgICAgICAgICAgICAgICAgJXN0YXR1c3AubWl4Oy4KKy0tPgorCis8IUVOVElUWSAlIGRpdi5taXgKKyAgICAgICAgIiVwLmNsYXNzO3wlbGlzdC5jbGFzczt8JXNwZWNsaXN0LmNsYXNzO3wlbm90ZS5jbGFzczsKKyAgICAgICAgfCVpbGx1cy5jbGFzczt8JWVkbm90ZS5jbGFzczsiPgorPCFFTlRJVFkgJSBvYmoubWl4CisgICAgICAgICIlcC5jbGFzczt8JWxpc3QuY2xhc3M7fCVzcGVjbGlzdC5jbGFzczt8JW5vdGUuY2xhc3M7CisgICAgICAgIHwlaWxsdXMuY2xhc3M7fCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgcC5taXgKKyAgICAgICAgIiVsaXN0LmNsYXNzO3wlc3BlY2xpc3QuY2xhc3M7fCVub3RlLmNsYXNzO3wlaWxsdXMuY2xhc3M7Ij4KKzwhRU5USVRZICUgZW50cnkubWl4CisgICAgICAgICIlbGlzdC5jbGFzczt8bm90ZXxlZ3xncmFwaGljfCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgaGRyLm1peAorICAgICAgICAiJXAuY2xhc3M7fCVsaXN0LmNsYXNzO3wlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIHRlcm1kZWYubWl4CisgICAgICAgICIlbm90ZS5jbGFzczt8JWlsbHVzLmNsYXNzOyI+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBFbnRpdGllcyBmb3IgbWl4dHVyZXMgb2YgI1BDREFUQSBhbmQgcGhyYXNlLWxldmVsIGVsZW1lbnRzIC4uLi4gLS0+CisKKzwhLS0gICAgTm90ZSB0aGF0ICV0ZXJtZGVmLnBjZC5taXggY29udGFpbnMgJW5vdGUuY2xhc3M7CisgICAgICAgIGFuZCAlaWxsdXMuY2xhc3M7LCBjb25zaWRlcmVkIHN0YW5kYWxvbmUgZWxlbWVudHMuIC0tPgorCis8IS0tCisjMTk5Ny0wOS0zMDogbWFsZXI6IEFkZGVkIHNjcmFwIGFuZCAlbm90ZS5jbGFzczsgdG8gJXRlcm1kZWYucGNkLm1peDsuCisjMTk5Ny0xMS0yODogbWFsZXI6IEFkZGVkICVsb2MuY2xhc3M7IHRvICVwLnBjZC5taXg7LgorIzE5OTgtMDMtMTA6IG1hbGVyOiBBZGRlZCAlZWRub3RlLmNsYXNzOyB0byBhbGwgbWl4dHVyZXMuCisjMTk5OC0wMy0yMzogbWFsZXI6IE1vdmVkIHNvbWUgJXRlcm1kZWYucGNkLm1peDsgc3R1ZmYgb3V0IHRvCisjICAgICAgICAgICAgICAgICAgICV0ZXJtZGVmLm1peDsuCisjMTk5OC0wNS0xNDogbWFsZXI6IFJlbW92ZWQgJXN0YXR1c3AucGNkLm1peDsuCisjMTk5OC0wNS0yMTogbWFsZXI6IEFkZGVkIGNvbnN0cmFpbnQgZWxlbWVudCB0byAlZWcucGNkLm1peDsuCistLT4KKworPCFFTlRJVFkgJSBwLnBjZC5taXgKKyAgICAgICAgIiNQQ0RBVEF8JWFubm90LmNsYXNzO3wldGVybWRlZi5jbGFzczt8JWVtcGguY2xhc3M7CisgICAgICAgIHwlcmVmLmNsYXNzO3wldGVjaC5jbGFzczt8JWxvYy5jbGFzczt8JWVkbm90ZS5jbGFzczsiPgorPCFFTlRJVFkgJSBoZWFkLnBjZC5taXgKKyAgICAgICAgIiNQQ0RBVEF8JWFubm90LmNsYXNzO3wlZW1waC5jbGFzczt8JXRlY2guY2xhc3M7fCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgbGFiZWwucGNkLm1peAorICAgICAgICAiI1BDREFUQXwlYW5ub3QuY2xhc3M7fCV0ZXJtZGVmLmNsYXNzO3wlZW1waC5jbGFzczt8JXRlY2guY2xhc3M7CisgICAgICAgIHwlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIGVnLnBjZC5taXgKKyAgICAgICAgIiNQQ0RBVEF8JWFubm90LmNsYXNzO3wlZW1waC5jbGFzczt8JWVkbm90ZS5jbGFzczt8Y29uc3RyYWludCI+Cis8IUVOVElUWSAlIHRlcm1kZWYucGNkLm1peAorICAgICAgICAiI1BDREFUQXx0ZXJtfCVlbXBoLmNsYXNzO3wlcmVmLmNsYXNzO3wldGVjaC5jbGFzczsKKyAgICAgICAgfCVlZG5vdGUuY2xhc3M7Ij4KKzwhRU5USVRZICUgYmlibC5wY2QubWl4CisgICAgICAgICIjUENEQVRBfCVlbXBoLmNsYXNzO3wlcmVmLmNsYXNzO3wlbG9jLmNsYXNzO3wlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIHRlY2gucGNkLm1peAorICAgICAgICAiI1BDREFUQXwlZWRub3RlLmNsYXNzOyI+Cis8IUVOVElUWSAlIGxvYy5wY2QubWl4CisgICAgICAgICIjUENEQVRBfCVsb2MuY2xhc3M7fCVlZG5vdGUuY2xhc3M7Ij4KKworPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+Cis8IS0tIEVudGl0aWVzIGZvciBjdXN0b21pemFibGUgY29udGVudCBtb2RlbHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBBZGRlZCBjdXN0b21pemF0aW9uIGVudGl0aWVzLgorIzE5OTgtMDUtMTQ6IG1hbGVyOiBBbGxvd2VkIHByZXZsb2NzIGFuZCBsYXRlc3Rsb2MgaW4gZWl0aGVyIG9yZGVyLgorLS0+CisKKzwhRU5USVRZICUgc3BlYy5tZGwKKyAgICAgICAgImhlYWRlciwgZnJvbnQ/LCBib2R5LCBiYWNrPyI+CisKKzwhRU5USVRZICUgaGVhZGVyLm1kbAorICAgICAgICAidGl0bGUsIHN1YnRpdGxlPywgdmVyc2lvbiwgdzNjLWRlc2lnbmF0aW9uLCB3M2MtZG9jdHlwZSwKKyAgICAgICAgcHViZGF0ZSwgbm90aWNlKiwgcHVibG9jLCAoKHByZXZsb2NzLCBsYXRlc3Rsb2M/KSB8CisgICAgICAgIChsYXRlc3Rsb2MsIHByZXZsb2NzPykpPywgYXV0aGxpc3QsIHN0YXR1cywgYWJzdHJhY3QsCisgICAgICAgIHB1YnN0bXQ/LCBzb3VyY2VkZXNjPywgbGFuZ3VzYWdlLCByZXZpc2lvbmRlc2MiPgorCis8IUVOVElUWSAlIHB1YmRhdGUubWRsCisgICAgICAgICJkYXk/LCBtb250aCwgeWVhciI+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBFbnRpdGllcyBmb3IgY29tbW9uIGF0dHJpYnV0ZXMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0gICAga2V5IGF0dHJpYnV0ZToKKyAgICAgICAgT3B0aW9uYWxseSBwcm92aWRlcyBhIHNvcnRpbmcgb3IgaW5kZXhpbmcga2V5LCBmb3IgY2FzZXMgd2hlbgorICAgICAgICB0aGUgZWxlbWVudCBjb250ZW50IGlzIGluYXBwcm9wcmlhdGUgZm9yIHRoaXMgcHVycG9zZS4gLS0+Cis8IUVOVElUWSAlIGtleS5hdHQKKyAgICAgICAgJ2tleSAgICAgICAgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEJz4KKworPCEtLSAgICBkZWYgYXR0cmlidXRlOgorICAgICAgICBQb2ludHMgdG8gdGhlIGVsZW1lbnQgd2hlcmUgdGhlIHJlbGV2YW50IGRlZmluaXRpb24gY2FuIGJlCisgICAgICAgIGZvdW5kLCB1c2luZyB0aGUgSURSRUYgbWVjaGFuaXNtLiAgJWRlZi5hdHQ7IGlzIGZvciBvcHRpb25hbAorICAgICAgICBkZWYgYXR0cmlidXRlcywgYW5kICVkZWYtcmVxLmF0dDsgaXMgZm9yIHJlcXVpcmVkIGRlZgorICAgICAgICBhdHRyaWJ1dGVzLiAtLT4KKzwhRU5USVRZICUgZGVmLmF0dAorICAgICAgICAnZGVmICAgICAgICAgICAgICAgICAgICBJRFJFRiAgICAgICAgICAgI0lNUExJRUQnPgorPCFFTlRJVFkgJSBkZWYtcmVxLmF0dAorICAgICAgICAnZGVmICAgICAgICAgICAgICAgICAgICBJRFJFRiAgICAgICAgICAgI1JFUVVJUkVEJz4KKworPCEtLSAgICByZWYgYXR0cmlidXRlOgorICAgICAgICBQb2ludHMgdG8gdGhlIGVsZW1lbnQgd2hlcmUgbW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQsCisgICAgICAgIHVzaW5nIHRoZSBJRFJFRiBtZWNoYW5pc20uICAlcmVmLmF0dDsgaXMgZm9yIG9wdGlvbmFsCisgICAgICAgIHJlZiBhdHRyaWJ1dGVzLCBhbmQgJXJlZi1yZXEuYXR0OyBpcyBmb3IgcmVxdWlyZWQgcmVmCisgICAgICAgIGF0dHJpYnV0ZXMuIC0tPgorPCFFTlRJVFkgJSByZWYuYXR0CisgICAgICAgICdyZWYgICAgICAgICAgICAgICAgICAgIElEUkVGICAgICAgICAgICAjSU1QTElFRCc+Cis8IUVOVElUWSAlIHJlZi1yZXEuYXR0CisgICAgICAgICdyZWYgICAgICAgICAgICAgICAgICAgIElEUkVGICAgICAgICAgICAjUkVRVUlSRUQnPgorCis8IS0tCisjMTk5OC0wMy0yMzogbWFsZXI6IEFkZGVkIHNob3cgYW5kIGFjdHVhdGUgYXR0cmlidXRlcyB0byBocmVmLgorIyAgICAgICAgICAgICAgICAgICBBZGRlZCBzZW1pLWNvbW1vbiB4bWw6c3BhY2UgYXR0cmlidXRlLgorLS0+CisKKzwhLS0gICAgSFJFRiBhbmQgc291cmNlIGF0dHJpYnV0ZXM6CisgICAgICAgIFBvaW50cyB0byB0aGUgZWxlbWVudCB3aGVyZSBtb3JlIGluZm9ybWF0aW9uIG9yIHNvdXJjZSBkYXRhCisgICAgICAgIGNhbiBiZSBmb3VuZCwgdXNpbmcgdGhlIFVSTCAoWExMIHNpbXBsZSBsaW5rKSBtZWNoYW5pc20uCisgICAgICAgIEZvciBzb21lIHB1cnBvc2VzLCBpcyBhc3NvY2lhdGVkIHdpdGggYWRkaXRpb25hbCBYTEwKKyAgICAgICAgYXR0cmlidXRlcy4gJWhyZWYuYXR0OyBpcyBmb3Igb3B0aW9uYWwgSFJFRiBhdHRyaWJ1dGVzLAorICAgICAgICBhbmQgJWhyZWYtcmVxLmF0dDsgaXMgZm9yIHJlcXVpcmVkIEhSRUYgYXR0cmlidXRlcy4KKyAgICAgICAgJXNvdXJjZS1yZXEuYXR0OyBpcyBmb3IgdGhlIHNvdXJjZSBhdHRyaWJ1dGUsIHdoaWNoCisgICAgICAgIGlzIGFsd2F5cyByZXF1aXJlZC4gLS0+Cis8IUVOVElUWSAlIGhyZWYuYXR0CisgICAgICAgICd4bWw6bGluayAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjRklYRUQgInNpbXBsZSIKKyAgICAgICAgaHJlZiAgICAgICAgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVECisgICAgICAgIHNob3cgICAgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjRklYRUQgImVtYmVkIgorICAgICAgICBhY3R1YXRlICAgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0ZJWEVEICJhdXRvIic+CisKKzwhRU5USVRZICUgaHJlZi1yZXEuYXR0CisgICAgICAgICd4bWw6bGluayAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjRklYRUQgInNpbXBsZSIKKyAgICAgICAgaHJlZiAgICAgICAgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNSRVFVSVJFRAorICAgICAgICBzaG93ICAgICAgICAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0ZJWEVEICJlbWJlZCIKKyAgICAgICAgYWN0dWF0ZSAgICAgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNGSVhFRCAiYXV0byInPgorCis8IUVOVElUWSAlIHNvdXJjZS1yZXEuYXR0CisgICAgICAgICd4bWw6bGluayAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjRklYRUQgInNpbXBsZSIKKyAgICAgICAgeG1sOmF0dHJpYnV0ZXMgICAgICAgICAgTk1UT0tFTlMgICAgICAgICNGSVhFRCAiaHJlZiBzb3VyY2UiCisgICAgICAgIHNvdXJjZSAgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjUkVRVUlSRUQKKyAgICAgICAgc2hvdyAgICAgICAgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNGSVhFRCAiZW1iZWQiCisgICAgICAgIGFjdHVhdGUgICAgICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjRklYRUQgImF1dG8iJz4KKworPCEtLSAgICB4bWw6c3BhY2UgYXR0cmlidXRlOgorICAgICAgICBJbmRpY2F0ZXMgdGhhdCB0aGUgZWxlbWVudCBjb250YWlucyB3aGl0ZSBzcGFjZQorICAgICAgICB0aGF0IHRoZSBmb3JtYXR0ZXIgb3Igb3RoZXIgYXBwbGljYXRpb24gc2hvdWxkIHJldGFpbiwKKyAgICAgICAgYXMgYXBwcm9wcmlhdGUgdG8gaXRzIGZ1bmN0aW9uLiAtLT4KKzwhRU5USVRZICUgeG1sc3BhY2UuYXR0CisgICAgICAgICd4bWw6c3BhY2UgICAgICAgICAgICAgIChkZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxwcmVzZXJ2ZSkgICAgICAjRklYRUQgInByZXNlcnZlIic+CisKKzwhLS0gICAgQ29tbW9uIGF0dHJpYnV0ZXM6CisgICAgICAgIEV2ZXJ5IGVsZW1lbnQgaGFzIGFuIElEIGF0dHJpYnV0ZSAoc29tZXRpbWVzIHJlcXVpcmVkLAorICAgICAgICBidXQgdXN1YWxseSBvcHRpb25hbCkgZm9yIGxpbmtzLCBhbmQgYSBSb2xlIGF0dHJpYnV0ZQorICAgICAgICBmb3IgZXh0ZW5kaW5nIHRoZSB1c2VmdWwgbGlmZSBvZiB0aGUgRFREIGJ5IGFsbG93aW5nCisgICAgICAgIGF1dGhvcnMgdG8gbWFrZSBzdWJjbGFzc2VzIGZvciBhbnkgZWxlbWVudC4gJWNvbW1vbi5hdHQ7CisgICAgICAgIGlzIGZvciBjb21tb24gYXR0cmlidXRlcyB3aGVyZSB0aGUgSUQgaXMgb3B0aW9uYWwsIGFuZAorICAgICAgICAlY29tbW9uLWlkcmVxLmF0dDsgaXMgZm9yIGNvbW1vbiBhdHRyaWJ1dGVzIHdoZXJlIHRoZQorICAgICAgICBJRCBpcyByZXF1aXJlZC4gLS0+Cis8IUVOVElUWSAlIGNvbW1vbi5hdHQKKyAgICAgICAgJ2lkICAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICNJTVBMSUVECisgICAgICAgIHJvbGUgICAgICAgICAgICAgICAgICAgIE5NVE9LRU4gICAgICAgICAjSU1QTElFRCc+Cis8IUVOVElUWSAlIGNvbW1vbi1pZHJlcS5hdHQKKyAgICAgICAgJ2lkICAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICNSRVFVSVJFRAorICAgICAgICByb2xlICAgICAgICAgICAgICAgICAgICBOTVRPS0VOICAgICAgICAgI0lNUExJRUQnPgorCis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gQ29tbW9uIGVsZW1lbnRzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tICAgIGhlYWQ6IFRpdGxlIG9uIGRpdmlzaW9ucywgcHJvZHVjdGlvbnMsIGFuZCB0aGUgbGlrZSAtLT4KKzwhRUxFTUVOVCBoZWFkICglaGVhZC5wY2QubWl4OykqPgorPCFBVFRMSVNUIGhlYWQgJWNvbW1vbi5hdHQ7PgorCis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gTWFqb3Igc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tCisjMTk5OC0wMy0xMDogbWFsZXI6IE1hZGUgc3BlYyBjb250ZW50IG1vZGVsIGVhc2lseSBjdXN0b21pemFibGUuCistLT4KKworPCFFTEVNRU5UIHNwZWMgKCVzcGVjLm1kbDspPgorPCFBVFRMSVNUIHNwZWMgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZnJvbnQgKGRpdjErKT4KKzwhQVRUTElTVCBmcm9udCAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBib2R5IChkaXYxKyk+Cis8IUFUVExJU1QgYm9keSAlY29tbW9uLmF0dDs+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgaW5mb3JtLWRpdjEgdG8gYmFjayBjb250ZW50LgorLS0+CisKKzwhRUxFTUVOVCBiYWNrICgoZGl2MSssIGluZm9ybS1kaXYxKikgfCBpbmZvcm0tZGl2MSspPgorPCFBVFRMSVNUIGJhY2sgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGl2MSAoaGVhZCwgKCVkaXYubWl4OykqLCBkaXYyKik+Cis8IUFUVExJU1QgZGl2MSAlY29tbW9uLmF0dDs+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgaW5mb3JtLWRpdjEgZGVjbGFyYXRpb25zLgorLS0+CisKKzwhLS0gICAgaW5mb3JtLWRpdjE6IE5vbi1ub3JtYXRpdmUgZGl2aXNpb24gaW4gYmFjayBtYXR0ZXIgLS0+Cis8IUVMRU1FTlQgaW5mb3JtLWRpdjEgKGhlYWQsICglZGl2Lm1peDspKiwgZGl2MiopPgorPCFBVFRMSVNUIGluZm9ybS1kaXYxICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGRpdjIgKGhlYWQsICglZGl2Lm1peDspKiwgZGl2MyopPgorPCFBVFRMSVNUIGRpdjIgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGl2MyAoaGVhZCwgKCVkaXYubWl4OykqLCBkaXY0Kik+Cis8IUFUVExJU1QgZGl2MyAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBkaXY0IChoZWFkLCAoJWRpdi5taXg7KSopPgorPCFBVFRMSVNUIGRpdjQgJWNvbW1vbi5hdHQ7PgorCis8IS0tIFNwZWNpZmljYXRpb24gaGVhZGVyIC4uLi4uLi4uLi4gLS0+CisKKzwhLS0KKyMxOTk4LTAzLTEwOiBtYWxlcjogTWFkZSBoZWFkZXIgY29udGVudCBtb2RlbCBlYXNpbHkgY3VzdG9taXphYmxlLgorLS0+CisKKzwhRUxFTUVOVCBoZWFkZXIgKCVoZWFkZXIubWRsOyk+Cis8IUFUVExJU1QgaGVhZGVyICVjb21tb24uYXR0Oz4KKworPCEtLSAgICBFeGFtcGxlIG9mIHRpdGxlOiAiRXh0ZW5zaWJsZSBDaGVlc2UgTGFuZ3VhZ2UgKFhDTCkiIC0tPgorPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KKzwhQVRUTElTVCB0aXRsZSAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgRXhhbXBsZSBvZiBzdWJ0aXRsZTogIkEgQ2hlZXN5IFNwZWNpZmljYXRpb24iIC0tPgorPCFFTEVNRU5UIHN1YnRpdGxlICgjUENEQVRBKT4KKzwhQVRUTElTVCBzdWJ0aXRsZSAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgRXhhbXBsZSBvZiB2ZXJzaW9uOiAiVmVyc2lvbiA2NjYuMCIgLS0+Cis8IUVMRU1FTlQgdmVyc2lvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgdmVyc2lvbiAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgRXhhbXBsZSBvZiB3M2MtZGVzaWduYXRpb246ICJXRC14Y2wtMTk5OTEyMzEiIC0tPgorPCFFTEVNRU5UIHczYy1kZXNpZ25hdGlvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgdzNjLWRlc2lnbmF0aW9uICVjb21tb24uYXR0Oz4KKworPCEtLSAgICBFeGFtcGxlIG9mIHczYy1kb2N0eXBlOiAiV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSBXb3JraW5nCisgICAgICAgIERyYWZ0IiAtLT4KKzwhRUxFTUVOVCB3M2MtZG9jdHlwZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgdzNjLWRvY3R5cGUgJWNvbW1vbi5hdHQ7PgorCis8IS0tCisjMTk5OC0wMy0xMDogbWFsZXI6IE1hZGUgcHViZGF0ZSBjb250ZW50IG1vZGVsIGVhc2lseSBjdXN0b21pemFibGUuCistLT4KKworPCFFTEVNRU5UIHB1YmRhdGUgKCVwdWJkYXRlLm1kbDspPgorPCFBVFRMSVNUIHB1YmRhdGUgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGF5ICgjUENEQVRBKT4KKzwhQVRUTElTVCBkYXkgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgbW9udGggKCNQQ0RBVEEpPgorPCFBVFRMSVNUIG1vbnRoICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHllYXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHllYXIgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIEV4YW1wbGUgb2Ygbm90aWNlOiAiVGhpcyBkcmFmdCBpcyBmb3IgcHVibGljIGNvbW1lbnQuLi4iIC0tPgorPCFFTEVNRU5UIG5vdGljZSAoJWhkci5taXg7KSs+Cis8IUFUVExJU1Qgbm90aWNlICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHB1YmxvYyAobG9jKyk+Cis8IUFUVExJU1QgcHVibG9jICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHByZXZsb2NzIChsb2MrKT4KKzwhQVRUTElTVCBwcmV2bG9jcyAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBsYXRlc3Rsb2MgKGxvYyspPgorPCFBVFRMSVNUIGxhdGVzdGxvYyAlY29tbW9uLmF0dDs+CisKKzwhLS0gICAgICBsb2MgKGRlZmluZWQgaW4gIlBocmFzZS1sZXZlbCBlbGVtZW50cyIgYmVsb3cpIC0tPgorCis8IUVMRU1FTlQgYXV0aGxpc3QgKGF1dGhvcispPgorPCFBVFRMSVNUIGF1dGhsaXN0ICVjb21tb24uYXR0Oz4KKworPCEtLQorIzE5OTctMDktMzA6IG1hbGVyOiBNYWRlIGFmZmlsaWF0aW9uIG9wdGlvbmFsLgorIzE5OTgtMDMtMTA6IG1hbGVyOiBNYWRlIGVtYWlsIG9wdGlvbmFsLgorLS0+CisKKzwhRUxFTUVOVCBhdXRob3IgKG5hbWUsIGFmZmlsaWF0aW9uPywgZW1haWw/KT4KKzwhQVRUTElTVCBhdXRob3IgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgbmFtZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgbmFtZQorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWtleS5hdHQ7PgorCis8IUVMRU1FTlQgYWZmaWxpYXRpb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGFmZmlsaWF0aW9uICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGVtYWlsICgjUENEQVRBKT4KKzwhLS0gICAgSFJFRiBhdHRyaWJ1dGU6CisgICAgICAgIGVtYWlsIGZ1bmN0aW9ucyBhcyBhIGh5cGVydGV4dCByZWZlcmVuY2UgdGhyb3VnaCB0aGlzCisgICAgICAgIHJlcXVpcmVkIGF0dHJpYnV0ZS4gIFR5cGljYWxseSB0aGUgcmVmZXJlbmNlIHdvdWxkIHVzZQorICAgICAgICB0aGUgbWFpbHRvOiBzY2hlbWUuIC0tPgorPCFBVFRMSVNUIGVtYWlsCisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAlaHJlZi1yZXEuYXR0Oz4KKworPCEtLQorIzE5OTgtMDUtMTU6IG1hbGVyOiBDaGFuZ2VkIHN0YXR1cyBjb250ZW50IGZyb20gJXN0YXR1c29iai5taXg7CisjICAgICAgICAgICAgICAgICAgIHRvIHBsYWluICVvYmoubWl4Oy4gIHN0YXR1c3AgaXMgb2Jzb2xldGUuCistLT4KKworPCFFTEVNRU5UIHN0YXR1cyAoJW9iai5taXg7KSs+Cis8IUFUVExJU1Qgc3RhdHVzICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGFic3RyYWN0ICglaGRyLm1peDspKj4KKzwhQVRUTElTVCBhYnN0cmFjdCAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBwdWJzdG10ICglaGRyLm1peDspKz4KKzwhQVRUTElTVCBwdWJzdG10ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHNvdXJjZWRlc2MgKCVoZHIubWl4OykrPgorPCFBVFRMSVNUIHNvdXJjZWRlc2MgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgbGFuZ3VzYWdlIChsYW5ndWFnZSspPgorPCFBVFRMSVNUIGxhbmd1c2FnZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBsYW5ndWFnZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgbGFuZ3VhZ2UgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgcmV2aXNpb25kZXNjICglaGRyLm1peDspKz4KKzwhQVRUTElTVCByZXZpc2lvbmRlc2MgJWNvbW1vbi5hdHQ7PgorCis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gU3RhbmRhbG9uZSBlbGVtZW50cyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tIFBhcmFncmFwaHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQ2hhbmdlZCBmcm9tICVvYmoubWl4OyB0byAlcC5taXg7LgorIzE5OTctMTItMjk6IG1hbGVyOiBDaGFuZ2VkIG9yZGVyIG9mICVwLm1peDsgYW5kICVwLnBjZC5taXg7CisjICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMuCisjMTk5Ny0xMi0yOTogbWFsZXI6IENoYW5nZWQgb3JkZXIgb2YgJXN0YXR1c29iai5taXg7IGFuZAorIyAgICAgICAgICAgICAgICAgICAlc3RhdHVzcC5wY2QubWl4OyByZWZlcmVuY2VzLgorIzE5OTgtMDUtMTQ6IG1hbGVyOiBSZW1vdmVkIHN0YXR1c3AgZGVjbGFyYXRpb25zLgorLS0+CisKKzwhRUxFTUVOVCBwICglcC5wY2QubWl4O3wlcC5taXg7KSo+Cis8IUFUVExJU1QgcCAlY29tbW9uLmF0dDs+CisKKzwhLS0gTGlzdHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKworPCFFTEVNRU5UIHVsaXN0IChpdGVtKyk+Cis8IS0tICAgIHNwYWNpbmcgYXR0cmlidXRlOgorICAgICAgICBVc2UgIm5vcm1hbCIgdG8gZ2V0IG5vcm1hbCB2ZXJ0aWNhbCBzcGFjaW5nIGZvciBpdGVtczsKKyAgICAgICAgdXNlICJjb21wYWN0IiB0byBnZXQgbGVzcyBzcGFjaW5nLiAgVGhlIGRlZmF1bHQgaXMgZGVwZW5kZW50CisgICAgICAgIG9uIHRoZSBzdHlsZXNoZWV0LiAtLT4KKzwhQVRUTElTVCB1bGlzdAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgc3BhY2luZyAgICAgICAgIChub3JtYWx8Y29tcGFjdCkgICAgICAgICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb2xpc3QgKGl0ZW0rKT4KKzwhLS0gICAgc3BhY2luZyBhdHRyaWJ1dGU6CisgICAgICAgIFVzZSAibm9ybWFsIiB0byBnZXQgbm9ybWFsIHZlcnRpY2FsIHNwYWNpbmcgZm9yIGl0ZW1zOworICAgICAgICB1c2UgImNvbXBhY3QiIHRvIGdldCBsZXNzIHNwYWNpbmcuICBUaGUgZGVmYXVsdCBpcyBkZXBlbmRlbnQKKyAgICAgICAgb24gdGhlIHN0eWxlc2hlZXQuIC0tPgorPCFBVFRMSVNUIG9saXN0CisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICBzcGFjaW5nICAgICAgICAgKG5vcm1hbHxjb21wYWN0KSAgICAgICAgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpdGVtICglb2JqLm1peDspKz4KKzwhQVRUTElTVCBpdGVtICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHNsaXN0IChzaXRlbSspPgorPCFBVFRMSVNUIHNsaXN0ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIHNpdGVtICglcC5wY2QubWl4OykqPgorPCFBVFRMSVNUIHNpdGVtICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGdsaXN0IChnaXRlbSspPgorPCFBVFRMSVNUIGdsaXN0ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGdpdGVtIChsYWJlbCwgZGVmKT4KKzwhQVRUTElTVCBnaXRlbSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBsYWJlbCAoJWxhYmVsLnBjZC5taXg7KSo+Cis8IUFUVExJU1QgbGFiZWwgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGVmICglb2JqLm1peDspKj4KKzwhQVRUTElTVCBkZWYgJWNvbW1vbi5hdHQ7PgorCis8IS0tIFNwZWNpYWwgbGlzdHMgLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhRUxFTUVOVCBibGlzdCAoYmlibCspPgorPCFBVFRMSVNUIGJsaXN0ICVjb21tb24uYXR0Oz4KKworPCFFTEVNRU5UIGJpYmwgKCViaWJsLnBjZC5taXg7KSo+Cis8IS0tICAgIEhSRUYgYXR0cmlidXRlOgorICAgICAgICBiaWJsIG9wdGlvbmFsbHkgZnVuY3Rpb25zIGFzIGEgaHlwZXJ0ZXh0IHJlZmVyZW5jZSB0byB0aGUKKyAgICAgICAgcmVmZXJyZWQtdG8gcmVzb3VyY2UgdGhyb3VnaCB0aGlzIGF0dHJpYnV0ZS4gLS0+Cis8IUFUVExJU1QgYmlibAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWhyZWYuYXR0OworICAgICAgICAla2V5LmF0dDs+CisKKzwhRUxFTUVOVCBvcmdsaXN0IChtZW1iZXIrKT4KKzwhQVRUTElTVCBvcmdsaXN0ICVjb21tb24uYXR0Oz4KKworPCEtLQorIzE5OTctMDktMzA6IG1hbGVyOiBBZGRlZCBvcHRpb25hbCBhZmZpbGlhdGlvbi4KKy0tPgorCis8IUVMRU1FTlQgbWVtYmVyIChuYW1lLCBhZmZpbGlhdGlvbj8sIHJvbGU/KT4KKzwhQVRUTElTVCBtZW1iZXIgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgICAgbmFtZSAoZGVmaW5lZCBpbiAiU3BlY2lmaWNhdGlvbiBoZWFkZXIiIGFib3ZlKSAtLT4KKzwhLS0gICAgICBhZmZpbGlhdGlvbiAoZGVmaW5lZCBpbiAiU3BlY2lmaWNhdGlvbiBoZWFkZXIiIGFib3ZlKSAtLT4KKworPCFFTEVNRU5UIHJvbGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHJvbGUgJWNvbW1vbi5hdHQ7PgorCis8IS0tIE5vdGVzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhRUxFTUVOVCBub3RlICglb2JqLm1peDspKz4KKzwhQVRUTElTVCBub3RlICVjb21tb24uYXR0Oz4KKworPCEtLQorIzE5OTgtMDUtMTQ6IG1hbGVyOiBEZWNsYXJlZCBpc3N1ZSBlbGVtZW50LgorLS0+CisKKzwhRUxFTUVOVCBpc3N1ZSAoJW9iai5taXg7KSs+Cis8IUFUVExJU1QgaXNzdWUgJWNvbW1vbi1pZHJlcS5hdHQ7PgorCis8IUVMRU1FTlQgd2Zjbm90ZSAoaGVhZCwgKCVvYmoubWl4OykrKT4KKzwhLS0gICAgSUQgYXR0cmlidXRlOgorICAgICAgICB3ZmNub3RlIG11c3QgaGF2ZSBhbiBJRCBzbyB0aGF0IGl0IGNhbiBiZSBwb2ludGVkIHRvCisgICAgICAgIGZyb20gYSB3ZmMgZWxlbWVudCBpbiBhIHByb2R1Y3Rpb24uIC0tPgorPCFBVFRMSVNUIHdmY25vdGUKKyAgICAgICAgJWNvbW1vbi1pZHJlcS5hdHQ7PgorCis8IUVMRU1FTlQgdmNub3RlIChoZWFkLCAoJW9iai5taXg7KSspPgorPCEtLSAgICBJRCBhdHRyaWJ1dGU6CisgICAgICAgIHZjbm90ZSBtdXN0IGhhdmUgYW4gSUQgc28gdGhhdCBpdCBjYW4gYmUgcG9pbnRlZCB0bworICAgICAgICBmcm9tIGEgdmMgZWxlbWVudCBpbiBhIHByb2R1Y3Rpb24uIC0tPgorPCFBVFRMSVNUIHZjbm90ZQorICAgICAgICAlY29tbW9uLWlkcmVxLmF0dDs+CisKKzwhLS0KKyMxOTk4LTA1LTIxOiBtYWxlcjogRGVjbGFyZWQgZ2VuZXJpYyBjb25zdHJhaW50bm90ZSBlbGVtZW50LgorLS0+CisKKzwhRUxFTUVOVCBjb25zdHJhaW50bm90ZSAoaGVhZCwgKCVvYmoubWl4OykrKT4KKzwhLS0gICAgSUQgYXR0cmlidXRlOgorICAgICAgICBjbm90ZSBtdXN0IGhhdmUgYW4gSUQgc28gdGhhdCBpdCBjYW4gYmUgcG9pbnRlZCB0bworICAgICAgICBmcm9tIGEgY29uc3RyYWludCBlbGVtZW50IGluIGEgcHJvZHVjdGlvbi4gLS0+Cis8IS0tICAgIHR5cGUgYXR0cmlidXRlOgorICAgICAgICBjbm90ZSBtdXN0IGhhdmUgYSB0eXBlIHZhbHVlIGtleXdvcmQgc28gdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgY29ycmVjdGx5IGNoYXJhY3Rlcml6ZWQgaW4gdGhlIHNwZWNpZmljYXRpb24uIC0tPgorPCFBVFRMSVNUIGNvbnN0cmFpbnRub3RlCisgICAgICAgICVjb21tb24taWRyZXEuYXR0OworICAgICAgICB0eXBlICAgICAgICAgICAgTk1UT0tFTiAgICAgICAgICNSRVFVSVJFRD4KKworPCEtLSBJbGx1c3RyYXRpb25zIC4uLi4uLi4uLi4uLi4uLi4uIC0tPgorCis8IS0tCisjMTk5OC0wMy0yMzogbWFsZXI6IEFkZGVkIHhtbDpzcGFjZSBhdHRyaWJ1dGUuCistLT4KKworPCFFTEVNRU5UIGVnICglZWcucGNkLm1peDspKj4KKzwhQVRUTElTVCBlZworICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXhtbHNwYWNlLmF0dDs+CisKKzwhRUxFTUVOVCBncmFwaGljIEVNUFRZPgorPCEtLSAgICBzb3VyY2UgYXR0cmlidXRlOgorICAgICAgICBUaGUgZ3JhcGhpYyBkYXRhIG11c3QgcmVzaWRlIGF0IHRoZSBsb2NhdGlvbiBwb2ludGVkIHRvLgorICAgICAgICBUaGlzIGlzIGEgaHlwZXJ0ZXh0IHJlZmVyZW5jZSwgYnV0IGZvciBwcmFjdGljYWwgcHVycG9zZXMsCisgICAgICAgIGZvciBub3cgaXQgc2hvdWxkIGp1c3QgYmUgYSBwYXRobmFtZS4gLS0+Cis8IUFUVExJU1QgZ3JhcGhpYworICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXNvdXJjZS1yZXEuYXR0OworICAgICAgICBhbHQgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorCis8IS0tCisjMTk5Ny0xMS0yODogbWFsZXI6IEFkZGVkIHByb2Rncm91cCB0byBzY3JhcCBhbmQgZGVmaW5lZCBpdC4KKyMxOTk4LTA1LTIxOiBtYWxlcjogQWRkZWQgY29uc3RyYWludCB0byBwcm9kLgorLS0+CisKKzwhRUxFTUVOVCBzY3JhcCAoaGVhZCwgKHByb2Rncm91cCsgfCBwcm9kKyB8IGJuZikpPgorPCEtLSAgICBsYW5nIGF0dHJpYnV0ZToKKyAgICAgICAgVGhlIHNjcmFwIGNhbiBsaW5rIHRvIGEgZGVzY3JpcHRpb24gb2YgdGhlIGxhbmd1YWdlIHVzZWQsCisgICAgICAgIGZvdW5kIGluIGEgbGFuZ3VhZ2UgZWxlbWVudCBpbiB0aGUgaGVhZGVyLiAtLT4KKzwhQVRUTElTVCBzY3JhcAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgbGFuZyAgICAgICAgICAgIElEUkVGICAgICAgICAgICAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb2Rncm91cCAocHJvZCspPgorPCEtLSAgICBwY3c8bj4gYXR0cmlidXRlczoKKyAgICAgICAgUHJlc2VudGF0aW9uYWwgYXR0cmlidXRlcyB0byBjb250cm9sIHRoZSB3aWR0aAorICAgICAgICBvZiB0aGUgInBzZXVkby10YWJsZSIgY29sdW1ucyB1c2VkIHRvIG91dHB1dAorICAgICAgICBncm91cHMgb2YgcHJvZHVjdGlvbnMuIC0tPgorPCFBVFRMSVNUIHByb2Rncm91cAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgcGN3MSAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRAorICAgICAgICBwY3cyICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVECisgICAgICAgIHBjdzMgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQKKyAgICAgICAgcGN3NCAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRAorICAgICAgICBwY3c1ICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVECis+CisKKzwhRUxFTUVOVCBwcm9kIChsaHMsIChyaHMsIChjb218d2ZjfHZjfGNvbnN0cmFpbnQpKikrKT4KKzwhLS0gICAgSUQgYXR0cmlidXRlOgorICAgICAgICBUaGUgcHJvZHVjdGlvbiBtdXN0IGhhdmUgYW4gSUQgc28gdGhhdCBjcm9zcy1yZWZlcmVuY2VzCisgICAgICAgIChzcGVjcmVmKSBhbmQgbWVudGlvbnMgb2Ygbm9udGVybWluYWxzIChudCkgY2FuIGxpbmsgdG8KKyAgICAgICAgaXQuIC0tPgorPCFBVFRMSVNUIHByb2QKKyAgICAgICAgJWNvbW1vbi1pZHJlcS5hdHQ7PgorCis8IUVMRU1FTlQgbGhzICgjUENEQVRBKT4KKzwhQVRUTElTVCBsaHMgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgcmhzICgjUENEQVRBfG50fHhudHxjb20pKj4KKzwhQVRUTElTVCByaHMgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgICAgbnQgYW5kIHhudCAoZGVmaW5lZCBpbiAiUGhyYXNlLWxldmVsIGVsZW1lbnRzIiBiZWxvdykgLS0+CisKKzwhLS0KKyMxOTk3LTExLTI4OiBtYWxlcjogQWRkZWQgbG9jIGFuZCBiaWJyZWYgdG8gY29tIGNvbnRlbnQuCistLT4KKworPCFFTEVNRU5UIGNvbSAoI1BDREFUQXxsb2N8YmlicmVmKSo+Cis8IUFUVExJU1QgY29tICVjb21tb24uYXR0Oz4KKworPCEtLSAgICB3ZmM6IFNob3VsZCBnZW5lcmF0ZSB0aGUgaGVhZCBvZiB0aGUgd2Zjbm90ZSBwb2ludGVkIHRvIC0tPgorPCFFTEVNRU5UIHdmYyBFTVBUWT4KKzwhLS0gICAgZGVmIGF0dHJpYnV0ZToKKyAgICAgICAgRWFjaCB3ZWxsIGZvcm1lZG5lc3MgdGFnbGluZSBpbiBhIHByb2R1Y3Rpb24gbXVzdCBsaW5rIHRvIHRoZQorICAgICAgICB3ZmNub3RlIHRoYXQgZGVmaW5lcyBpdC4gLS0+Cis8IUFUVExJU1Qgd2ZjCisgICAgICAgICVkZWYtcmVxLmF0dDsKKyAgICAgICAgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIHZjOiBTaG91bGQgZ2VuZXJhdGUgdGhlIGhlYWQgb2YgdGhlIHZjbm90ZSBwb2ludGVkIHRvIC0tPgorPCFFTEVNRU5UIHZjIEVNUFRZPgorPCEtLSAgICBkZWYgYXR0cmlidXRlOgorICAgICAgICBFYWNoIHZhbGlkaXR5IHRhZ2xpbmUgaW4gYSBwcm9kdWN0aW9uIG11c3QgbGluayB0byB0aGUgdmNub3RlCisgICAgICAgIHRoYXQgZGVmaW5lcyBpdC4gLS0+Cis8IUFUVExJU1QgdmMKKyAgICAgICAgJWRlZi1yZXEuYXR0OworICAgICAgICAlY29tbW9uLmF0dDs+CisKKzwhLS0KKyMxOTk4LTA1LTIxOiBtYWxlcjogRGVjbGFyZWQgZ2VuZXJpYyBjb25zdHJhaW50IGVsZW1lbnQuCistLT4KKworPCEtLSAgICBjb25zdHJhaW50OiBTaG91bGQgZ2VuZXJhdGUgdGhlIGhlYWQgb2YgdGhlIGNvbnN0cmFpbnRub3RlCisgICAgICAgIHBvaW50ZWQgdG8gLS0+Cis8IUVMRU1FTlQgY29uc3RyYWludCBFTVBUWT4KKzwhLS0gICAgZGVmIGF0dHJpYnV0ZToKKyAgICAgICAgRWFjaCBjb25zdHJhaW50IHRhZ2xpbmUgaW4gYSBwcm9kdWN0aW9uIG11c3QgbGluayB0byB0aGUKKyAgICAgICAgY29uc3RyYWludCBub3RlIHRoYXQgZGVmaW5lcyBpdC4gLS0+Cis8IUFUVExJU1QgY29uc3RyYWludAorICAgICAgICAlZGVmLXJlcS5hdHQ7CisgICAgICAgICVjb21tb24uYXR0Oz4KKworPCEtLQorIzE5OTgtMDMtMjM6IG1hbGVyOiBBZGRlZCB4bWw6c3BhY2UgYXR0cmlidXRlLgorLS0+CisKKzwhLS0gICAgYm5mOiBVbi1tYXJrZWQtdXAgcHJvZHVjdGlvbiAtLT4KKzwhRUxFTUVOVCBibmYgKCVlZy5wY2QubWl4OykqPgorPCFBVFRMSVNUIGJuZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXhtbHNwYWNlLmF0dDs+CisKKzwhLS0KKyMxOTk3LTEwLTE2OiBtYWxlcjogQWRkZWQgdGFibGUgbWVjaGFuaXNtLgorIzE5OTctMTEtMjg6IG1hbGVyOiBBZGRlZCBub24tbnVsbCBzeXN0ZW0gSUQgdG8gZW50aXR5IGRlY2xhcmF0aW9uLgorIyAgICAgICAgICAgICAgICAgICBBZGRlZCBIVE1MIHRhYmxlIG1vZHVsZS4KKyMxOTk3LTEyLTI5OiBtYWxlcjogSUdOT1JFZCBTR01MIE9wZW4gdGFibGUgbW9kZWwuCisjMTk5OC0wMy0xMDogbWFsZXI6IFJlbW92ZWQgU0dNTCBPcGVuIHRhYmxlIG1vZGVsLgorIyAgICAgICAgICAgICAgICAgICBNZXJnZWQgaHRtbC10YmwubW9kIGZpbGUgaW50byBtYWluIGZpbGUuCisjICAgICAgICAgICAgICAgICAgIEFkZGVkICVjb21tb24uYXR0OyB0byBhbGwgSFRNTCB0YWJsZSBlbGVtZW50cy4KKyMxOTk4LTA1LTE0OiBtYWxlcjogUmVwbGFjZWQgdGFibGUgbW9kZWwgd2l0aCBmdWxsIEhUTUwgNC4wIG1vZGVsLgorIyAgICAgICAgICAgICAgICAgICBSZW1vdmVkIGh0YWJsZSBpbiBmYXZvciBvZiB0YWJsZS4KKyMgICAgICAgICAgICAgICAgICAgUmVtb3ZlZCBodGJvZHkgaW4gZmF2b3Igb2YgdGJvZHkuCistLT4KKworPCFFTlRJVFkgJSBjZWxsaGFsaWduLmF0dAorICAgICAgICAnYWxpZ24gICAgICAgICAgKGxlZnR8Y2VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICB8cmlnaHR8anVzdGlmeQorICAgICAgICAgICAgICAgICAgICAgICAgfGNoYXIpICAgICAgICAgICNJTVBMSUVECisgICAgICAgIGNoYXIgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQKKyAgICAgICAgY2hhcm9mZiAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRCc+CisKKzwhRU5USVRZICUgY2VsbHZhbGlnbi5hdHQKKyAgICAgICAgJ3ZhbGlnbiAgICAgICAgICh0b3B8bWlkZGxlCisgICAgICAgICAgICAgICAgICAgICAgICB8Ym90dG9tCisgICAgICAgICAgICAgICAgICAgICAgICB8YmFzZWxpbmUpICAgICAgI0lNUExJRUQnPgorCis8IUVOVElUWSAlIHRodGQuYXR0CisgICAgICAgICdhYmJyICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQKKyAgICAgICAgYXhpcyAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRAorICAgICAgICBoZWFkZXJzICAgICAgICAgSURSRUZTICAgICAgICAgICNJTVBMSUVECisgICAgICAgIHNjb3BlICAgICAgICAgICAocm93CisgICAgICAgICAgICAgICAgICAgICAgICB8Y29sCisgICAgICAgICAgICAgICAgICAgICAgICB8cm93Z3JvdXAKKyAgICAgICAgICAgICAgICAgICAgICAgIHxjb2xncm91cCkgICAgICAjSU1QTElFRAorICAgICAgICByb3dzcGFuICAgICAgICAgTk1UT0tFTiAgICAgICAgICIxIgorICAgICAgICBjb2xzcGFuICAgICAgICAgTk1UT0tFTiAgICAgICAgICIxIic+CisKKzwhRU5USVRZICUgd2lkdGguYXR0CisgICAgICAgICd3aWR0aCAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQnPgorCis8IUVOVElUWSAlIHNwYW4uYXR0CisgICAgICAgICdzcGFuICAgICAgICAgICBOTVRPS0VOICAgICAgICAgIjEiJz4KKworPCFFTEVNRU5UIHRhYmxlCisgICAgICAgIChjYXB0aW9uPywgKGNvbCp8Y29sZ3JvdXAqKSwgdGhlYWQ/LCB0Zm9vdD8sIHRib2R5Kyk+Cis8IUFUVExJU1QgdGFibGUKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICV3aWR0aC5hdHQ7CisgICAgICAgIHN1bW1hcnkgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQKKyAgICAgICAgYm9yZGVyICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRAorICAgICAgICBmcmFtZSAgICAgICAgICAgKHZvaWR8YWJvdmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHxiZWxvd3xoc2lkZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHxsaHN8cmhzCisgICAgICAgICAgICAgICAgICAgICAgICB8dnNpZGVzfGJveAorICAgICAgICAgICAgICAgICAgICAgICAgfGJvcmRlcikgICAgICAgICNJTVBMSUVECisgICAgICAgIHJ1bGVzICAgICAgICAgICAobm9uZXxncm91cHMKKyAgICAgICAgICAgICAgICAgICAgICAgIHxyb3dzfGNvbHMKKyAgICAgICAgICAgICAgICAgICAgICAgIHxhbGwpICAgICAgICAgICAjSU1QTElFRAorICAgICAgICBjZWxsc3BhY2luZyAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVECisgICAgICAgIGNlbGxwYWRkaW5nICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjYXB0aW9uICglcC5wY2QubWl4OykqPgorPCFBVFRMSVNUIGNhcHRpb24gJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgY29sIEVNUFRZPgorPCFBVFRMSVNUIGNvbAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXNwYW4uYXR0OworICAgICAgICAld2lkdGguYXR0OworICAgICAgICAlY2VsbGhhbGlnbi5hdHQ7CisgICAgICAgICVjZWxsdmFsaWduLmF0dDs+CisKKzwhRUxFTUVOVCBjb2xncm91cCAoY29sKSo+Cis8IUFUVExJU1QgY29sZ3JvdXAKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICVzcGFuLmF0dDsKKyAgICAgICAgJXdpZHRoLmF0dDsKKyAgICAgICAgJWNlbGxoYWxpZ24uYXR0OworICAgICAgICAlY2VsbHZhbGlnbi5hdHQ7PgorCis8IUVMRU1FTlQgdGhlYWQgKHRyKSs+Cis8IUFUVExJU1QgdGhlYWQKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICVjZWxsaGFsaWduLmF0dDsKKyAgICAgICAgJWNlbGx2YWxpZ24uYXR0Oz4KKworPCFFTEVNRU5UIHRmb290ICh0cikrPgorPCFBVFRMSVNUIHRmb290CisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAlY2VsbGhhbGlnbi5hdHQ7CisgICAgICAgICVjZWxsdmFsaWduLmF0dDs+CisKKzwhRUxFTUVOVCB0Ym9keSAodHIpKz4KKzwhQVRUTElTVCB0Ym9keQorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWNlbGxoYWxpZ24uYXR0OworICAgICAgICAlY2VsbHZhbGlnbi5hdHQ7PgorCis8IUVMRU1FTlQgdHIgKHRofHRkKSs+Cis8IUFUVExJU1QgdHIKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICVjZWxsaGFsaWduLmF0dDsKKyAgICAgICAgJWNlbGx2YWxpZ24uYXR0Oz4KKworPCFFTEVNRU5UIHRoICglcC5wY2QubWl4O3wlcC5taXg7KSo+Cis8IUFUVExJU1QgdGgKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICV0aHRkLmF0dDsKKyAgICAgICAgJWNlbGxoYWxpZ24uYXR0OworICAgICAgICAlY2VsbHZhbGlnbi5hdHQ7PgorCis8IUVMRU1FTlQgdGQgKCVwLnBjZC5taXg7fCVwLm1peDspKj4KKzwhQVRUTElTVCB0ZAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXRodGQuYXR0OworICAgICAgICAlY2VsbGhhbGlnbi5hdHQ7CisgICAgICAgICVjZWxsdmFsaWduLmF0dDs+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBQaHJhc2UtbGV2ZWwgZWxlbWVudHMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0gICAgYmlicmVmOiBTaG91bGQgZ2VuZXJhdGUsIGluIHNxdWFyZSBicmFja2V0cywgImtleSIgb24gYmlibCAtLT4KKzwhRUxFTUVOVCBiaWJyZWYgRU1QVFk+Cis8IS0tICAgIHJlZiBhdHRyaWJ1dGU6CisgICAgICAgIEEgYmlibGlvZ3JhcGh5IHJlZmVyZW5jZSBtdXN0IGxpbmsgdG8gdGhlIGJpYmwgZWxlbWVudCB0aGF0CisgICAgICAgIGRlc2NyaWJlcyB0aGUgcmVzb3VyY2UuIC0tPgorPCFBVFRMSVNUIGJpYnJlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXJlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIGNvZGUgKCV0ZWNoLnBjZC5taXg7KSo+Cis8IUFUVExJU1QgY29kZSAlY29tbW9uLmF0dDs+CisKKzwhLS0KKyMxOTk4LTAzLTEwOiBtYWxlcjogRGVjbGFyZWQgZWRub3RlIGFuZCByZWxhdGVkIGVsZW1lbnRzLgorLS0+CisKKzwhRUxFTUVOVCBlZG5vdGUgKG5hbWU/LCBkYXRlPywgZWR0ZXh0KT4KKzwhQVRUTElTVCBlZG5vdGUgJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgZGF0ZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGF0ZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBlZHRleHQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGVkdGV4dCAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBlbXBoICgjUENEQVRBKT4KKzwhQVRUTElTVCBlbXBoICVjb21tb24uYXR0Oz4KKworPCEtLSAgICBmb290bm90ZTogQm90aCBmb290bm90ZSBjb250ZW50IGFuZCBjYWxsIHRvIGZvb3Rub3RlIC0tPgorPCFFTEVNRU5UIGZvb3Rub3RlICglb2JqLm1peDspKz4KKzwhQVRUTElTVCBmb290bm90ZSAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBrdyAoJXRlY2gucGNkLm1peDspKj4KKzwhQVRUTElTVCBrdyAlY29tbW9uLmF0dDs+CisKKzwhRUxFTUVOVCBsb2MgKCNQQ0RBVEEpPgorPCEtLSAgICBIUkVGIGF0dHJpYnV0ZToKKyAgICAgICAgVGhlIHB1cnBvc2Ugb2YgYSBsb2MgZWxlbWVudCBpcyB0byBmdW5jdGlvbiBhcyBhIGh5cGVydGV4dAorICAgICAgICBsaW5rIHRvIGEgcmVzb3VyY2UuICAoSWRlYWxseSwgdGhlIGNvbnRlbnQgb2YgbG9jIHdpbGwgYWxzbworICAgICAgICBtZW50aW9uIHRoZSBVUkkgb2YgdGhlIHJlc291cmNlLCBzbyB0aGF0IHJlYWRlcnMgb2YgdGhlCisgICAgICAgIHByaW50ZWQgdmVyc2lvbiB3aWxsIGJlIGFibGUgdG8gbG9jYXRlIHRoZSByZXNvdXJjZS4pIC0tPgorPCFBVFRMSVNUIGxvYworICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWhyZWYtcmVxLmF0dDs+CisKKzwhRUxFTUVOVCBudCAoI1BDREFUQSk+Cis8IS0tICAgIGRlZiBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBub250ZXJtaW5hbCBtdXN0IGxpbmsgdG8gdGhlIHByb2R1Y3Rpb24gdGhhdCBkZWZpbmVzCisgICAgICAgIGl0LiAtLT4KKzwhQVRUTElTVCBudAorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWRlZi1yZXEuYXR0Oz4KKworPCEtLQorIzE5OTgtMDMtMTA6IG1hbGVyOiBEZWNsYXJlZCBxdW90ZS4KKy0tPgorCis8IS0tICAgIHF1b3RlOiBTY2FyZSBxdW90ZXMgYW5kIG90aGVyIHB1cmVseSBwcmVzZW50YXRpb25hbCBxdW90ZXMgLS0+Cis8IUVMRU1FTlQgcXVvdGUgKCVwLnBjZC5taXg7KSo+Cis8IUFUVExJU1QgcXVvdGUgJWNvbW1vbi5hdHQ7PgorCis8IS0tICAgIHNwZWNyZWY6IFNob3VsZCBnZW5lcmF0ZSBpdGFsaWMgIltuLm5dLCBTZWN0aW9uIFRpdGxlIiBmb3IKKyAgICAgICAgZGl2LCAibiIgZm9yIG51bWJlcmVkIGl0ZW0sICJbbl0iIGZvciBwcm9kdWN0aW9uLCBvcgorICAgICAgICAiSXNzdWUgbiIgZm9yIGlzc3VlIC0tPgorPCFFTEVNRU5UIHNwZWNyZWYgRU1QVFk+Cis8IS0tICAgIHJlZiBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBwdXJwb3NlIG9mIGEgc3BlY3JlZiBlbGVtZW50IGlzIHRvIGxpbmsgdG8gYSBkaXYsIGl0ZW0KKyAgICAgICAgaW4gYW4gb2xpc3QsIG9yIHByb2R1Y3Rpb24gaW4gdGhlIGN1cnJlbnQgc3BlYy4gLS0+Cis8IUFUVExJU1Qgc3BlY3JlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJXJlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIHRlcm0gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRlcm0gJWNvbW1vbi5hdHQ7PgorCis8IUVMRU1FTlQgdGVybWRlZiAoJXRlcm1kZWYucGNkLm1peDt8JXRlcm1kZWYubWl4OykqPgorPCEtLSAgICBJRCBhdHRyaWJ1dGU6CisgICAgICAgIEEgdGVybSBkZWZpbml0aW9uIG11c3QgaGF2ZSBhbiBJRCBzbyB0aGF0IGl0IGNhbiBiZSBsaW5rZWQKKyAgICAgICAgdG8gZnJvbSB0ZXJtcmVmIGVsZW1lbnRzLiAtLT4KKzwhLS0gICAgdGVybSBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSBjYW5vbmljYWwgZm9ybSBvZiB0aGUgdGVybSBvciBwaHJhc2UgYmVpbmcgZGVmaW5lZCBtdXN0CisgICAgICAgIGFwcGVhciBpbiB0aGlzIGF0dHJpYnV0ZSwgZXZlbiBpZiB0aGUgdGVybSBvciBwaHJhc2UgYWxzbworICAgICAgICBhcHBlYXJzIGluIHRoZSBlbGVtZW50IGNvbnRlbnQgaW4gaWRlbnRpY2FsIGZvcm0gKGUuZy4sIGluCisgICAgICAgIHRoZSB0ZXJtIGVsZW1lbnQpLiAtLT4KKzwhQVRUTElTVCB0ZXJtZGVmCisgICAgICAgICVjb21tb24taWRyZXEuYXR0OworICAgICAgICB0ZXJtICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNSRVFVSVJFRD4KKworPCFFTEVNRU5UIHRlcm1yZWYgKCNQQ0RBVEEpPgorPCEtLSAgICByZWYgYXR0cmlidXRlOgorICAgICAgICBBIHRlcm0gcmVmZXJlbmNlIG11c3QgbGluayB0byB0aGUgdGVybWRlZiBlbGVtZW50IHRoYXQKKyAgICAgICAgZGVmaW5lcyB0aGUgdGVybS4gLS0+Cis8IUFUVExJU1QgdGVybXJlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWRlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIHRpdGxlcmVmICgjUENEQVRBKT4KKzwhLS0gICAgSFJFRiBhdHRyaWJ1dGU6CisgICAgICAgIEEgdGl0bGUgcmVmZXJlbmNlIGNhbiBvcHRpb25hbGx5IGZ1bmN0aW9uIGFzIGEgaHlwZXJ0ZXh0CisgICAgICAgIGxpbmsgdG8gdGhlIHJlc291cmNlIHdpdGggdGhpcyB0aXRsZS4gLS0+Cis8IUFUVExJU1QgdGl0bGVyZWYKKyAgICAgICAgJWNvbW1vbi5hdHQ7CisgICAgICAgICVocmVmLmF0dDs+CisKKzwhRUxFTUVOVCB4bnQgKCNQQ0RBVEEpPgorPCEtLSAgICBIUkVGIGF0dHJpYnV0ZToKKyAgICAgICAgVGhlIG5vbnRlcm1pbmFsIG11c3QgaHlwZXJsaW5rIHRvIGEgcmVzb3VyY2UgdGhhdCBzZXJ2ZXMKKyAgICAgICAgdG8gZGVmaW5lIGl0IChlLmcuLCBhIHByb2R1Y3Rpb24gaW4gYSByZWxhdGVkIFhNTAorICAgICAgICBzcGVjaWZpY2F0aW9uKS4gLS0+Cis8IUFUVExJU1QgeG50CisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAlaHJlZi1yZXEuYXR0Oz4KKworPCEtLQorIzE5OTctMTItMjk6IG1hbGVyOiBEZWNsYXJlZCB4c3BlY3JlZi4KKy0tPgorCis8IUVMRU1FTlQgeHNwZWNyZWYgKCNQQ0RBVEEpPgorPCEtLSAgICBIUkVGIGF0dHJpYnV0ZToKKyAgICAgICAgVGhlIHNwZWMgcmVmZXJlbmNlIG11c3QgaHlwZXJsaW5rIHRvIHRoZSByZXNvdXJjZSB0bworICAgICAgICBjcm9zcy1yZWZlciB0byAoZS5nLiwgYSBzZWN0aW9uIGluIGEgcmVsYXRlZCBYTUwKKyAgICAgICAgc3BlY2lmaWNhdGlvbikuIC0tPgorPCFBVFRMSVNUIHhzcGVjcmVmCisgICAgICAgICVjb21tb24uYXR0OworICAgICAgICAlaHJlZi1yZXEuYXR0Oz4KKworPCFFTEVNRU5UIHh0ZXJtcmVmICgjUENEQVRBKT4KKzwhLS0gICAgSFJFRiBhdHRyaWJ1dGU6CisgICAgICAgIFRoZSB0ZXJtIHJlZmVyZW5jZSBtdXN0IGh5cGVybGluayB0byB0aGUgcmVzb3VyY2UgdGhhdAorICAgICAgICBzZXJ2ZXMgdG8gZGVmaW5lIHRoZSB0ZXJtIChlLmcuLCBhIHRlcm0gZGVmaW5pdGlvbiBpbgorICAgICAgICBhIHJlbGF0ZWQgWE1MIHNwZWNpZmljYXRpb24pLiAtLT4KKzwhQVRUTElTVCB4dGVybXJlZgorICAgICAgICAlY29tbW9uLmF0dDsKKyAgICAgICAgJWhyZWYtcmVxLmF0dDs+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBVbnVzZWQgZWxlbWVudHMgZm9yIEFERVBUIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0KKyMxOTk3LTA5LTMwOiBtYWxlcjogQWRkZWQgdW51c3VlZCBlbGVtZW50cy4KKyMxOTk3LTEwLTE0OiBtYWxlcjogRml4ZWQgZGl2IHRvIG1vdmUgbmVzdGVkIGRpdiB0byB0aGUgbWl4dHVyZS4KKyMxOTk4LTA1LTE0OiBtYWxlcjogQWRkZWQga2V5LXRlcm0sIGh0YWJsZSwgYW5kIGh0Ym9keS4KKy0tPgorCis8IS0tICAgIFRoZSBmb2xsb3dpbmcgZWxlbWVudHMgYXJlIHB1cnBvc2VseSBkZWNsYXJlZCBidXQgbmV2ZXIKKyAgICAgICAgcmVmZXJlbmNlZC4gIERlY2xhcmluZyB0aGVtIGFsbG93cyB0aGVtIHRvIGJlIHBhc3RlZCBmcm9tCisgICAgICAgIGFuIEhUTUwgZG9jdW1lbnQgb3IgYW4gZWFybGllciB2ZXJzaW9uIG9mIGFuIFhNTCBzcGVjIGRvY3VtZW50CisgICAgICAgIGludG8gYSBkb2N1bWVudCB1c2luZyB0aGlzIERURCBpbiBBREVQVC4gIFRoZSBBVEQgQ29udGV4dAorICAgICAgICBUcmFuc2Zvcm1hdGlvbiBtZWNoYW5pc20gd2lsbCB0cnkgdG8gY29udmVydCB0aGVtIHRvIHRoZQorICAgICAgICBhcHByb3ByaWF0ZSBlbGVtZW50IGZvciB0aGlzIERURC4gIFdoaWxlIHRoaXMgY29udmVyc2lvbgorICAgICAgICB3aWxsIG5vdCB3b3JrIGZvciBhbGwgZnJhZ21lbnRzLCBpdCBkb2VzIGFsbG93IG1hbnkgY2FzZXMKKyAgICAgICAgdG8gd29yayByZWFzb25hYmx5IHdlbGwuIC0tPgorCis8IUVMRU1FTlQgZGl2CisgICAgICAgIChoZWFkPywgKCVkaXYubWl4O3x1bHxvbHxoMXxoMnxoM3xoNHxoNXxoNnxkaXYpKik+Cis8IUVMRU1FTlQgaDEgKCVoZWFkLnBjZC5taXg7fGVtfGEpKj4KKzwhRUxFTUVOVCBoMiAoJWhlYWQucGNkLm1peDt8ZW18YSkqPgorPCFFTEVNRU5UIGgzICglaGVhZC5wY2QubWl4O3xlbXxhKSo+Cis8IUVMRU1FTlQgaDQgKCVoZWFkLnBjZC5taXg7fGVtfGEpKj4KKzwhRUxFTUVOVCBoNSAoJWhlYWQucGNkLm1peDt8ZW18YSkqPgorPCFFTEVNRU5UIGg2ICglaGVhZC5wY2QubWl4O3xlbXxhKSo+Cis8IUVMRU1FTlQgcHJlICglZWcucGNkLm1peDt8ZW0pKj4KKzwhRUxFTUVOVCB1bCAoaXRlbXxsaSkqPgorPCFFTEVNRU5UIG9sIChpdGVtfGxpKSo+Cis8IUVMRU1FTlQgbGkgKCNQQ0RBVEF8JW9iai5taXg7KSo+Cis8IUVMRU1FTlQgZW0gKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGEgKCNQQ0RBVEEpPgorCis8IUVMRU1FTlQga2V5LXRlcm0gKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGh0YWJsZQorICAgICAgICAoY2FwdGlvbj8sIChjb2wqfGNvbGdyb3VwKiksIHRoZWFkPywgdGZvb3Q/LCB0Ym9keSspPgorPCFFTEVNRU5UIGh0Ym9keSAodHIpKz4KKzwhRUxFTUVOVCBzdGF0dXNwICglcC5wY2QubWl4O3wlcC5taXg7KSo+CisKKzwhLS0gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSBDaGFuZ2UgaGlzdG9yeSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+CisKKzwhLS0KKyMxOTk3LTA4LTE4OiBtYWxlcgorIy0gRGlkIGEgbWFqb3IgcmV2aXNpb24uCisjMTk5Ny0wOS0xMDogbWFsZXIKKyMtIFVwZGF0ZWQgRlBJLgorIy0gUmVtb3ZlZCBuYW1la2V5IGVsZW1lbnQgYW5kIHB1dCBrZXkgYXR0cmlidXRlIG9uIG5hbWUgZWxlbWVudC4KKyMtIE1hZGUgc3RhdHVzcCBlbGVtZW50IGFuZCBzdXBwb3J0aW5nIGVudGl0aWVzLgorIy0gQWRkZWQgc2xpc3QgZWxlbWVudCB3aXRoIHNpdGVtKyBjb250ZW50LgorIy0gUmVxdWlyZWQgaGVhZCBvbiBzY3JhcCBhbmQgYWRkZWQgbmV3IGJuZiBzdWJlbGVtZW50LgorIy0gQWRkZWQgYW4geG50IGVsZW1lbnQgYW5kIGFsbG93ZWQgaXQgYW5kIG50IGluIHJlZ3VsYXIgdGV4dCBhbmQgcmhzLgorIy0gUmVtb3ZlZCB0aGUgbnRyZWYgZWxlbWVudC4KKyMtIEFkZGVkIGJhY2sgdGhlIGNvbSBlbGVtZW50IHRvIHRoZSBjb250ZW50IG9mIHJocy4KKyMtIEFkZGVkIGEga2V5IGF0dHJpYnV0ZSB0byBiaWJsLgorIy0gUmVtb3ZlZCB0aGUgaWRlbnQgZWxlbWVudC4KKyMtIEFkZGVkIGEgdGVybSBlbGVtZW50IHRvIGJlIHVzZWQgaW5zaWRlIHRlcm1kZWYuCisjLSBBZGRlZCBhbiB4dGVybXJlZiBlbGVtZW50IHBhcmFsbGVsIHRvIHRlcm1yZWYuCisjLSBCZWVmZWQgdXAgRFREIGNvbW1lbnRzLgorIzE5OTctMDktMTI6IG1hbGVyCisjLSBBbGxvd2VkIHRlcm0gZWxlbWVudCBpbiBnZW5lcmFsIHRleHQuCisjLSBDaGFuZ2VkIGJpYnJlZiB0byBFTVBUWS4KKyMtIEFkZGVkIHJlZi5jbGFzcyB0byB0ZXJtZGVmLnBjZC5taXguCisjMTk5Ny0wOS0xNDogbWFsZXIKKyMtIENoYW5nZWQgbWFpbiBhdHRyaWJ1dGUgb2YgeHRlcm1yZWYgZnJvbSBkZWYgdG8gaHJlZi4KKyMtIEFkZGVkIHRlcm1kZWYuY2xhc3MgdG8gbGFiZWwgY29udGVudHMuCisjMTk5Ny0wOS0zMDogbWFsZXIKKyMtIEFkZGVkIGNoYXJhY3RlciBlbnRpdHkgbW9kdWxlIGFuZCBhZGRlZCBuZXcgZW50aXRpZXMuCisjLSBSZW1vdmVkIHAgZnJvbSBhcHBlYXJpbmcgZGlyZWN0bHkgaW4gc2VsZjsgY3JlYXRlZCAlcC5taXg7LgorIy0gQWRkZWQgaW5mb3JtLWRpdiAobm9uLW5vcm1hdGl2ZSBkaXZpc2lvbikgZWxlbWVudC4KKyMtIEZpeGVkIHh0ZXJtcmVmIGNvbW1lbnQgdG8gbWVudGlvbiBIUkVGLCBub3QgcmVmLgorIy0gRXh0ZW5kZWQgb3JnbGlzdCBtb2RlbCB0byBhbGxvdyBvcHRpb25hbCBhZmZpbGlhdGlvbi4KKyMtIE1vZGlmaWVkIGF1dGhvciB0byBtYWtlIGFmZmlsaWF0aW9uIG9wdGlvbmFsLgorIy0gQWRkZWQgJXNwZWNsaXN0LmNsYXNzOyBhbmQgJW5vdGUuY2xhc3M7IHRvICVvYmoubWl4OyBhbmQgJXAubWl4Oy4KKyMtIEFkZGVkICVub3RlLmNsYXNzOyBhbmQgJWlsbHVzLmNsYXNzOyB0byAldGVybWRlZi5wY2QubWl4Oy4KKyMtIEFkZGVkIHVudXNlZCBIVE1MIGVsZW1lbnRzLgorIy0gUHV0IGVtcHR5IHN5c3RlbSBJRCBuZXh0IHRvIHB1YmxpYyBJRCBpbiBlbnRpdHkgZGVjbGFyYXRpb25zLgorIzE5OTctMTAtMTQ6IG1hbGVyCisjLSBGaXhlZCAidW51c2VkIiBkaXYgY29udGVudCBtb2RlbCB0byBtb3ZlIG5lc3RlZCBkaXYgdG8gbWl4dHVyZS4KKyMxOTk3LTEwLTE2OiBtYWxlcgorIy0gQWRkZWQgU0dNTCBPcGVuIEV4Y2hhbmdlIHRhYmxlcy4KKyMxOTk3LTExLTI4OiBtYWxlcgorIy0gQWRkZWQgc3VwcG9ydCBmb3IgcHJvZGdyb3VwIGFuZCBpdHMgYXR0cmlidXRlcy4KKyMtIEFkZGVkIHN1cHBvcnQgZm9yIEhUTUwgdGFibGVzLgorIy0gQWRkZWQgbG9jIGFuZCBiaWJyZWYgdG8gY29udGVudCBvZiBjb20uCisjLSBBZGRlZCBsb2MgdG8gZ2VuZXJhbCBwIGNvbnRlbnQgbW9kZWxzLgorIy0gQWxsb3dlZCBwIGFzIGFsdGVybmF0aXZlIHRvIHN0YXR1c3AgaW4gc3RhdHVzLgorIy0gQWRkZWQgbm9uLW51bGwgc3lzdGVtIElEcyB0byBleHRlcm5hbCBwYXJhbWV0ZXIgZW50aXR5IGRlY2xhcmF0aW9ucy4KKyMtIChNb2RpZmllZCB0aGUgU0dNTCBPcGVuIHRhYmxlIG1vZHVsZSB0byBtYWtlIGl0IFhNTC1jb21wbGlhbnQuKQorIy0gKE1vZGlmaWVkIHRoZSBjaGFyYWN0ZXIgZW50aXR5IG1vZHVsZS4pCisjMTk5Ny0xMi0yOTogbWFsZXIKKyMtIE1vdmVkICNQQ0RBVEEgb2NjdXJyZW5jZXMgdG8gY29tZSBiZWZvcmUgR0lzIGluIGNvbnRlbnQgbW9kZWxzLgorIy0gUmVtb3ZlZCB1c2Ugb2YgdGhlIFNHTUwgT3BlbiB0YWJsZSBtb2R1bGUuCisjLSBBZGRlZCB4c3BlY3JlZiBlbGVtZW50LgorIy0gRW5zdXJlZCB0aGF0IGFsbCBGUElzIGNvbnRhaW4gNC1kaWdpdCB5ZWFyLgorIy0gKE1vZGlmaWVkIHRoZSBjaGFyYWN0ZXIgZW50aXR5IG1vZHVsZS4pCisjMTk5OC0wMy0xMDogbWFsZXIKKyMtIE1lcmdlZCB0aGUgY2hhcmFjdGVyIGVudGl0eSBhbmQgdGFibGUgbW9kdWxlcyBpbnRvIHRoZSBtYWluIGZpbGUuCisjLSBBZGRlZCBsZHF1byBhbmQgcmRxdW8gZW50aXRpZXMuCisjLSBBZGRlZCBjb21tb24gYXR0cmlidXRlcyB0byBwcm9kZ3JvdXAuCisjLSBNYWRlIHRoZSBlbWFpbCBlbGVtZW50IGluIGhlYWRlciBvcHRpb25hbC4KKyMtIFJlbW92ZWQgcmVmZXJlbmNlIHRvIHRoZSBTR01MIE9wZW4gdGFibGUgbW9kZWwuCisjLSBBZGRlZCBlZG5vdGUgZWxlbWVudC4KKyMtIEFkZGVkIHF1b3RlIGVsZW1lbnQuCisjLSBVcGRhdGVkIFhMaW5rIHVzYWdlIHRvIHJlZmxlY3QgMyBNYXJjaCAxOTk4IFdELgorIy0gQWRkZWQgImxvY2FsIiBlbnRpdGllcyB0byB0aGUgY2xhc3MgZW50aXRpZXMgZm9yIGN1c3RvbWl6YXRpb24uCisjLSBQYXJhbWV0ZXJpemVkIHNldmVyYWwgY29udGVudCBtb2RlbHMgdG8gYWxsb3cgZm9yIGN1c3RvbWl6YXRpb24uCisjMTk5OC0wMy0yMzogbWFsZXIKKyMtIENsZWFuZWQgdXAgc29tZSBjb21tZW50cyBhbmQgcmVtb3ZlZCBzb21lIG90aGVycy4KKyMtIEFkZGVkIHhtbDpzcGFjZSBzZW1pLWNvbW1vbiBhdHRyaWJ1dGUgdG8gZWcgYW5kIGJuZiBlbGVtZW50cy4KKyMtIEFkZGVkIHNob3cgYW5kIGVtYmVkIGF0dHJpYnV0ZXMgb24gYWxsIHRoZSB1c2VzIG9mIGhyZWYuCisjLSBBZGRlZCAlY29tbW9uLmF0dDsgdG8gYWxsIEhUTUwgdGFibGUgZWxlbWVudHMuCisjLSBBZGRlZCBhIHJlYWwgVVJJIHRvIHRoZSAidHlwaWNhbCBpbnZvY2F0aW9uIiBjb21tZW50LgorIzE5OTgtMDUtMTQ6IG1hbGVyCisjLSBGaXhlZCBtZGFzaCwgbGRxdW8sIGFuZCByZHF1byBjaGFyYWN0ZXIgZW50aXRpZXMuCisjLSBTd2l0Y2hlZCB0byB0aGUgZnVsbCBIVE1MIDQuMCB0YWJsZSBtb2RlbC4KKyMtIFJlbW92ZWQgaHRhYmxlL2h0Ym9keSBlbGVtZW50cyBhbmQgcmVwbGFjZWQgdGhlbSB3aXRoIHRhYmxlL3Rib2R5LgorIy0gQWRkZWQgaXNzdWUgZWxlbWVudCB0byAlbm90ZS5jbGFzczsgYW5kIGRlY2xhcmVkIGl0LgorIy0gQWxsb3dlZCBwcmV2bG9jcyBhbmQgbGF0ZXN0bG9jIGluIGVpdGhlciBvcmRlci4KKyMtIEFkZGVkIGtleS10ZXJtLCBodGFibGUsIGh0Ym9keSwgYW5kIHN0YXR1c3AgYXMgdW51c2VkIGVsZW1lbnRzLgorIy0gUmVtb3ZlZCByZWFsIHN0YXR1c3AgZWxlbWVudCBpbiBmYXZvciBvZiBwbGFpbiBwLgorIzE5OTgtMDUtMjE6IG1hbGVyCisjLSBEZWNsYXJlZCBnZW5lcmljIGNvbnN0cmFpbnQgYW5kIGNvbnN0cmFpbnRub3RlIGVsZW1lbnRzLgorIy0gQWRkZWQgY29uc3RyYWludG5vdGUgdG8gJW5vdGUuY2xhc3M7LgorIy0gQWRkZWQgY29uc3RyYWludCB0byAlZWcucGNkLm1peDsgYW5kIHByb2QgY29udGVudCBtb2RlbC4KKy0tPgorCis8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4KKzwhLS0gRW5kIG9mIFhNTCBzcGVjaWZpY2F0aW9uIERURCAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC0tPgorPCEtLSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2lkMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvaWQxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzkwZjVlCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2lkMS54bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChzcmMgfCBkZXN0KSo+Cis8IUVMRU1FTlQgc3JjIEVNUFRZPgorPCFFTEVNRU5UIGRlc3QgRU1QVFk+Cis8IUFUVExJU1Qgc3JjIHJlZiBJRFJFRiAjSU1QTElFRD4KKzwhQVRUTElTVCBkZXN0IGlkIElEICNJTVBMSUVEPgorXT4KKzxkb2M+CisgIDxzcmMgcmVmPSJmb28iLz4KKyAgPGRlc3QgaWQ9ImZvbyIvPgorICA8c3JjIHJlZj0iZm9vIi8+Cis8L2RvYz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2lkMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvaWQyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjRhNzdhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2lkMi54bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGRvYyBbCis8IUVMRU1FTlQgZG9jIChzcmMgfCBkZXN0KSo+Cis8IUVMRU1FTlQgc3JjIEVNUFRZPgorPCFFTEVNRU5UIGRlc3QgRU1QVFk+Cis8IUFUVExJU1Qgc3JjIHJlZiBJRFJFRiAjSU1QTElFRD4KKzwhQVRUTElTVCBkZXN0IGlkIElEICNJTVBMSUVEPgorPCFFTlRJVFkgZGVzdCAiPGRlc3QgaWQ9J2ZvbycvPiI+CitdPgorPGRvYz4KKyAgPHNyYyByZWY9ImZvbyIvPgorICAmZGVzdDsKKyAgPHNyYyByZWY9ImZvbyIvPgorPC9kb2M+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9pZDMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2lkMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMzZDA2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9pZDMueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBkb2MgWworPCFFTEVNRU5UIGRvYyAoc3JjIHwgZGVzdCkqPgorPCFFTEVNRU5UIHNyYyBFTVBUWT4KKzwhRUxFTUVOVCBkZXN0IEVNUFRZPgorPCFBVFRMSVNUIHNyYyByZWYgSURSRUYgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVzdCBpZCBJRCAjSU1QTElFRD4KKzwhRU5USVRZIGRlc3QgU1lTVEVNICJkdGRzL2Rlc3Rmb28uZW50Ij4KK10+Cis8ZG9jPgorICA8c3JjIHJlZj0iZm9vIi8+CisgICZkZXN0OworICA8c3JjIHJlZj0iZm9vIi8+Cis8L2RvYz4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL2luZGV4LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9pbmRleC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmEwZTY3MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9pbmRleC54bWwKQEAgLTAsMCArMSwxMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4KKzwhRE9DVFlQRSBOZXdzTUwgUFVCTElDICJ1cm46bmV3c21sOmlwdGMub3JnOjIwMDAxMDA2Ok5ld3NNTHYxLjA6MSIgImR0ZHMvTmV3c01MdjEuMC5kdGQiIFsKKyAgPCFFTlRJVFkgJSBuaXRmIFNZU1RFTSAiZHRkcy9uaXRmLTItNS5kdGQiPgorICAlbml0ZjsKK10+Cis8TmV3c01MPgorICA8Q2F0YWxvZyBIcmVmPSJodHRwOi8vd3d3LmFmcC5jb20vZHRkL0FGUENhdGFsb2cueG1sIi8+CisgIDxOZXdzRW52ZWxvcGU+CisgICAgPERhdGVBbmRUaW1lPjIwMDExMDIyVDE1NDUwOFo8L0RhdGVBbmRUaW1lPgorICA8L05ld3NFbnZlbG9wZT4KKyAgPE5ld3NJdGVtPgorICAgIDxJZGVudGlmaWNhdGlvbj4KKyAgICAgIDxOZXdzSWRlbnRpZmllcj4KKyAgICAgICAgPFByb3ZpZGVySWQ+YWZwLmNvbTwvUHJvdmlkZXJJZD4KKyAgICAgICAgPERhdGVJZD4yMDAxMTAyMjwvRGF0ZUlkPgorICAgICAgICA8TmV3c0l0ZW1JZD5tbWQtLWRldXRzY2gtLWpvdXJuYWwtLXNwbzwvTmV3c0l0ZW1JZD4KKyAgICAgICAgPFJldmlzaW9uSWQgUHJldmlvdXNSZXZpc2lvbj0iMCIgVXBkYXRlPSJOIj4xPC9SZXZpc2lvbklkPgorICAgICAgICA8UHVibGljSWRlbnRpZmllcj51cm46TmV3c01MOmFmcC5jb206MjAwMTEwMjI6bW1kLS1kZXV0c2NoLS1qb3VybmFsLS1zcG86MTwvUHVibGljSWRlbnRpZmllcj4KKyAgICAgIDwvTmV3c0lkZW50aWZpZXI+CisgICAgICA8TmFtZUxhYmVsPkhJTlRFUkdSVU5EPC9OYW1lTGFiZWw+CisgICAgPC9JZGVudGlmaWNhdGlvbj4KKyAgICA8TmV3c01hbmFnZW1lbnQ+CisgICAgICA8TmV3c0l0ZW1UeXBlIEZvcm1hbE5hbWU9Ik5ld3MiLz4KKyAgICAgIDxGaXJzdENyZWF0ZWQ+MjAwMTEwMjJUMTU0NTA4WjwvRmlyc3RDcmVhdGVkPgorICAgICAgPFRoaXNSZXZpc2lvbkNyZWF0ZWQ+MjAwMTEwMjJUMTU0NTA4WjwvVGhpc1JldmlzaW9uQ3JlYXRlZD4KKyAgICAgIDxTdGF0dXMgRm9ybWFsTmFtZT0iVXNhYmxlIi8+CisgICAgPC9OZXdzTWFuYWdlbWVudD4KKyAgICA8TmV3c0NvbXBvbmVudD4KKyAgICAgIDxBZG1pbmlzdHJhdGl2ZU1ldGFkYXRhPgorICAgICAgICA8UHJvdmlkZXI+CisgICAgICAgICAgPFBhcnR5IEZvcm1hbE5hbWU9IkFGUCIvPgorICAgICAgICA8L1Byb3ZpZGVyPgorICAgICAgPC9BZG1pbmlzdHJhdGl2ZU1ldGFkYXRhPgorICAgICAgPERlc2NyaXB0aXZlTWV0YWRhdGE+CisgICAgICAgIDxMYW5ndWFnZSBGb3JtYWxOYW1lPSJkZSIvPiAKKyAgICAgIDwvRGVzY3JpcHRpdmVNZXRhZGF0YT4KKyAgICAgIDxOZXdzQ29tcG9uZW50PgorICAgICAgICA8TmV3c0xpbmVzPgorICAgICAgICAgIDxIZWFkTGluZT5CZXJsaW5lciBTUEQgZvxocnQgR2VzcHLkY2hlIG1pdCBGRFAgdW5kIEdy/G5lbjwvSGVhZExpbmU+CisgICAgICAgIDwvTmV3c0xpbmVzPgorICAgICAgICA8TmV3c0l0ZW1SZWYgTmV3c0l0ZW09IjAxMTAyMjE1NDQ1MC5zcTgwYnA5aC54bWwiLz4KKyAgICAgIDwvTmV3c0NvbXBvbmVudD4KKyAgICAgIDxOZXdzQ29tcG9uZW50PgorICAgICAgICA8TmV3c0xpbmVzPgorICAgICAgICAgIDxIZWFkTGluZT5JTkZPR1JBRklLOiBEYXMgQmVybGluZXIgV2FobGVyZ2VibmlzPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIyMTEzMDMyLnJlbW8wMG03LnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPlNjaHdpZXJpZ2UgS29hbGl0aW9uc3ZlcmhhbmRsdW5nZW4gaW4gQmVybGluPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIyMTI0MzE0LjlodjJrb3prLnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPkRpZSBMaWVibGluZ3NmYXJiZW4gZGVzIEthbnpsZXJzIHNpbmQgUm90IEdlbGIgR3L8bjwvSGVhZExpbmU+CisgICAgICAgIDwvTmV3c0xpbmVzPgorICAgICAgICA8TmV3c0l0ZW1SZWYgTmV3c0l0ZW09IjAxMTAyMjEzNDU0MS5jbW1hb2ltNy54bWwiLz4KKyAgICAgIDwvTmV3c0NvbXBvbmVudD4KKyAgICAgIDxOZXdzQ29tcG9uZW50PgorICAgICAgICA8TmV3c0xpbmVzPgorICAgICAgICAgIDxIZWFkTGluZT5JTkZPR1JBRklLOiBXZW4gd+RobHQgV293ZXJlaXQ/PC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIyMTIyNTQ1LmhsM3oyYXM2LnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPkNEVSBpc3QgYXVjaCBpbiBrb21tdW5hbGVuIFJhdGjkdXNlcm4gZGVyIFZlcmxpZXJlcjwvSGVhZExpbmU+CisgICAgICAgIDwvTmV3c0xpbmVzPgorICAgICAgICA8TmV3c0l0ZW1SZWYgTmV3c0l0ZW09IjAxMTAyMjEyMDIwNS5iOHN5a2Z2dS54bWwiLz4KKyAgICAgIDwvTmV3c0NvbXBvbmVudD4KKyAgICAgIDxOZXdzQ29tcG9uZW50PgorICAgICAgICA8TmV3c0xpbmVzPgorICAgICAgICAgIDxIZWFkTGluZT5HdXRlcyBBYnNjaG5laWRlbiBkZXIgUERTIGhhdCB2ZXJzY2hpZWRlbmUgR3L8bmRlPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIyMTM0MTU5LmFndm5lMDQ4LnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPkFucyBSZWdpZXJlbiBoYXQgc2ljaCBLbGF1cyBXb3dlcmVpdCBnZXf2aG50PC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIxMTYxMDMxLjFvcTdxeXViLnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPlN0ZWZmZWwgYnJhY2h0ZSBDRFUgbmljaHQgYXVmIEVyZm9sZ3NrdXJzPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIxMTY1MDA3Lmt0OXFvZzltLnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPlNpYnlsbCBLbG90ejogVm9sbGJsdXRwb2xpdGlrZXJpbiBtaXQgIkJlcmxpbmVyIFNjaG5hdXplIjwvSGVhZExpbmU+CisgICAgICAgIDwvTmV3c0xpbmVzPgorICAgICAgICA8TmV3c0l0ZW1SZWYgTmV3c0l0ZW09IjAxMTAyMTE4NDY1OC5sY3RldmVzdC54bWwiLz4KKyAgICAgIDwvTmV3c0NvbXBvbmVudD4KKyAgICAgIDxOZXdzQ29tcG9uZW50PgorICAgICAgICA8TmV3c0xpbmVzPgorICAgICAgICAgIDxIZWFkTGluZT5NaXQgR3lzaSBtdXNzIHdlaXRlciBnZXJlY2huZXQgd2VyZGVuPC9IZWFkTGluZT4KKyAgICAgICAgPC9OZXdzTGluZXM+CisgICAgICAgIDxOZXdzSXRlbVJlZiBOZXdzSXRlbT0iMDExMDIxMTgwNDQxLjZ0cHZneDB5LnhtbCIvPgorICAgICAgPC9OZXdzQ29tcG9uZW50PgorICAgICAgPE5ld3NDb21wb25lbnQ+CisgICAgICAgIDxOZXdzTGluZXM+CisgICAgICAgICAgPEhlYWRMaW5lPlJleHJvZHQgLSBkYXMgU3RlaGF1Zm3kbm5jaGVuIGRlciBCZXJsaW5lciBGRFA8L0hlYWRMaW5lPgorICAgICAgICA8L05ld3NMaW5lcz4KKyAgICAgICAgPE5ld3NJdGVtUmVmIE5ld3NJdGVtPSIwMTEwMjExNjU1NTguZ3Vqcno1OW0ueG1sIi8+CisgICAgICA8L05ld3NDb21wb25lbnQ+CisgICAgPC9OZXdzQ29tcG9uZW50PgorICA8L05ld3NJdGVtPgorPC9OZXdzTUw+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvbWl4ZWRfbnMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL21peGVkX25zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmQ4ZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL21peGVkX25zLnhtbApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBhIFsKKzwhRUxFTUVOVCBhICgjUENEQVRBfGJ8czpiKSo+Cis8IUFUVExJU1QgYSB4bWxuczpzIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIGIgRU1QVFk+Cis8IUFUVExJU1QgYiB4bWxuczpzIENEQVRBICNJTVBMSUVEPgorPCFFTEVNRU5UIHM6YiBFTVBUWT4KKzwhQVRUTElTVCBzOmIgeG1sbnM6cyBDREFUQSAjSU1QTElFRD4KK10+Cis8YSB4bWxuczpzPSJodHRwOi8vc29tZS50ZXN0Lm5zL2EiPgorICBTb21lIHRleHQuCisJPGIvPgorICBTb21lIHRleHQuCisJPHM6Yi8+CisgIFNvbWUgdGV4dC4KKzwvYT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC9ub3Rlcy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvbm90ZXMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1N2QxNzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvbm90ZXMueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+Cis8IURPQ1RZUEUgbm90ZXMgU1lTVEVNICJkdGRzL25vdGVzLmR0ZCI+Cis8cGZ4Om5vdGVzCit4bWxuczpwZng9Imh0dHA6Ly9uYW1lc3BhY2UvdXJpL2hlcmUiCis+PG5vdGUvPjxwZng6bm90ZS8+PC9wZng6bm90ZXM+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvbnMueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL25zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTdjMzBmCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL25zLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzwhRE9DVFlQRSBhOm91dGVyIFsNCisNCis8IUVMRU1FTlQgYTpvdXRlciBFTVBUWT4NCis8IUFUVExJU1QgYTpvdXRlciB4bWxuczphIENEQVRBICNGSVhFRCAndXJuOm5hbWVzcGFjZSc+DQorPCFBVFRMSVNUIGE6b3V0ZXIgeG1sbnM6YiBDREFUQSAjRklYRUQgJ3VybjpuYW1lc3BhY2ViJz4NCitdPg0KKw0KKzxhOm91dGVyIC8+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL25zMi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvbnMyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmFiNjlhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL25zMi54bWwKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYTpvdXRlciBbCisKKzwhRUxFTUVOVCBhOm91dGVyIChhOmlubmVyKT4KKzwhQVRUTElTVCBhOm91dGVyIHhtbG5zOmEgQ0RBVEEgI0ZJWEVEICd1cm46bmFtZXNwYWNlJz4KKworPCFFTEVNRU5UIGE6aW5uZXIgRU1QVFk+Cis8IUFUVExJU1QgYTppbm5lciB4bWxuczphIENEQVRBICNGSVhFRCAndXJuOm5hbWVzcGFjZSc+Cis8IUFUVExJU1QgYTppbm5lciBhdHRyIENEQVRBICNGSVhFRCAneWVzJz4KK10+CisKKzxhOm91dGVyIHhtbG5zOmE9InVybjpuYW1lc3BhY2UiPgorICA8YTppbm5lciAvPgorPC9hOm91dGVyPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL29iamVkbmF2a2EueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL29iamVkbmF2a2EueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ODViMWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvb2JqZWRuYXZrYS54bWwKQEAgLTAsMCArMSwzOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8IURPQ1RZUEUgb2JqZWRuYXZrYSBTWVNURU0gImR0ZHMvb2JqZWRuYXZrYS5kdGQiPg0KKzxvYmplZG5hdmthPg0KKyAgICA8QWREb3J1xI1lbmk+DQorICAgICAgICA8Sm3DqW5vPkphbiBOb3bDoWs8L0ptw6lubz4NCisgICAgICAgIDxVbGljZT5CxJtsZWhyYWRza8OhIDE0NzwvVWxpY2U+DQorICAgICAgICA8TcSbc3RvPlByYWhhIDI8L03Em3N0bz4NCisgICAgICAgIDxQU8SMPjEyMDAwPC9QU8SMPg0KKyAgICA8L0FkRG9ydcSNZW5pPg0KKyAgICA8QWTDmsSNdG92YWPDrT4NCisgICAgICAgIDxKbcOpbm8+UGV0cmEgTm92w6Frb3bDoTwvSm3DqW5vPg0KKyAgICAgICAgPFVsaWNlPkFuZ2xpY2vDoSAxNTwvVWxpY2U+DQorICAgICAgICA8TcSbc3RvPlByYWhhIDI8L03Em3N0bz4NCisgICAgICAgIDxQU8SMPjEyMDAwPC9QU8SMPg0KKyAgICA8L0Fkw5rEjXRvdmFjw60+DQorICAgIDxacMWvc29iRG9wcmF2eT5EUEQ8L1pwxa9zb2JEb3ByYXZ5Pg0KKyAgICA8WnDFr3NvYlBsYXRieT5kb2LDrXJrYTwvWnDFr3NvYlBsYXRieT4NCisgICAgPERhdHVtUMWZaWpldMOtPjIwMDQtMTEtMTQ8L0RhdHVtUMWZaWpldMOtPg0KKyAgICA8RGF0dW1Eb3J1xI1lbsOtPjIwMDQtMTEtMTk8L0RhdHVtRG9ydcSNZW7DrT4NCisgICAgPE9ic2FoT2JqZWRuw6F2a3k+DQorICAgICAgICA8WmJvxb7DrT4NCisgICAgICAgICAgICA8S8OzZD4yTjctNTE2PC9Lw7NkPg0KKyAgICAgICAgICAgIDxOw6F6ZXY+U2VrYcSNa2EgbmEgdHLDoXZ1PC9Ow6F6ZXY+DQorICAgICAgICAgICAgPFBvxI1ldCAgamVkbm90a2E9ImtzIj4xPC9Qb8SNZXQ+DQorICAgICAgICAgICAgPENlbmE+Mjk5OTwvQ2VuYT4NCisgICAgICAgICAgICA8UG9waXM+aHR0cDovL2V4YW1wbGUub3JnL3Nla2Fja2EuaHRtbDwvUG9waXM+DQorICAgICAgICA8L1pib8W+w60+DQorICAgICAgICA8WmJvxb7DrT4NCisgICAgICAgICAgICA8S8OzZD5RM1ktMTE2PC9Lw7NkPg0KKyAgICAgICAgICAgIDxOw6F6ZXY+VHJhdm7DrSBzZW1lbm88L07DoXpldj4NCisgICAgICAgICAgICA8UG/EjWV0ICBqZWRub3RrYT0ia2ciPjIuNTwvUG/EjWV0Pg0KKyAgICAgICAgICAgIDxDZW5hPjEyNy41MDwvQ2VuYT4NCisgICAgICAgIDwvWmJvxb7DrT4NCisgICAgPC9PYnNhaE9iamVkbsOhdmt5Pg0KKyAgICA8S29tZW50w6HFmT4NCisgICAgICAgIDzFmMOhZGthPk8gZG9kw6F2a3UgbcOhbSB6w6FqZW0gcG91emUgdiBwxZnDrXBhZMSbLCDFvmUgc2UgamVkbsOhIG8gdHLDoXZ1IHYgb2Ryxa9kxJsga29ub3DDrS48L8WYw6Fka2E+DQorICAgICAgICA8xZjDoWRrYT5Ew6FsZSBqc2VtIHNlIGNodMSbbCB6ZXB0YXQsIHpkYSBqZSBkb3ByYXZhIHpkYXJtYS48L8WYw6Fka2E+DQorICAgIDwvS29tZW50w6HFmT4NCis8L29iamVkbmF2a2E+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Jzcy54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvcnNzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDYxMDJkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Jzcy54bWwKQEAgLTAsMCArMSwxNzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSByc3MgWworPCEtLQorCisgIFJpY2ggU2l0ZSBTdW1tYXJ5IChSU1MpIDAuOTEgb2ZmaWNpYWwgRFRELCBwcm9wb3NlZC4KKyAgCisgIFJTUyBpcyBhbiBYTUwgdm9jYWJ1bGFyeSBmb3IgZGVzY3JpYmluZworICBtZXRhZGF0YSBhYm91dCB3ZWJzaXRlcywgYW5kIGVuYWJsaW5nIHRoZSBkaXNwbGF5IG9mCisgICJjaGFubmVscyIgb24gdGhlICJNeSBOZXRzY2FwZSIgd2Vic2l0ZS4KKyAgCisgIFJTUyBJbmZvIGNhbiBiZSBmb3VuZCBhdCBodHRwOi8vbXkubmV0c2NhcGUuY29tL3B1Ymxpc2gvCisgIFhNTCBJbmZvIGNhbiBiZSBmb3VuZCBhdCBodHRwOi8vd3d3LnczLm9yZy9YTUwvIAorICAKKyAgY29weXJpZ2h0IE5ldHNjYXBlIENvbW11bmljYXRpb25zLCAxOTk5CisKKyAgRGFuIExpYmJ5IC0gZGFuZGFAbmV0c2NhcGUuY29tCisgIAorICBCYXNlZCBvbiBSU1MgRFREIG9yaWdpbmFsbHkgY3JlYXRlZCBieQorICBMYXJzIE1hcml1cyBHYXJzaG9sIC0gbGFyc2dhQGlmaS51aW8ubm8uCisgIAorLS0+Cis8IUVMRU1FTlQgcnNzIChjaGFubmVsKT4KKzwhQVRUTElTVCByc3MgdmVyc2lvbiBDREFUQSAjUkVRVUlSRUQ+Cis8IS0tIG11c3QgYmUgIjAuOTEiPiAtLT48IUVMRU1FTlQgY2hhbm5lbCAodGl0bGUgfCBkZXNjcmlwdGlvbiB8IGxpbmsgCit8IGxhbmd1YWdlIHwgaXRlbSsgfCByYXRpbmc/IHwgaW1hZ2U/IHwgdGV4dGlucHV0PyB8IGNvcHlyaWdodD8gfCAKK3B1YkRhdGU/IHwgbGFzdEJ1aWxkRGF0ZT8gfCBkb2NzPyB8IG1hbmFnaW5nRWRpdG9yPyB8IHdlYk1hc3Rlcj8gfCAKK3NraXBIb3Vycz8gfCBza2lwRGF5cz8pKj4KKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgZGVzY3JpcHRpb24gKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGxpbmsgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGltYWdlICh0aXRsZSB8IHVybCB8IGxpbmsgfCB3aWR0aD8gfCBoZWlnaHQ/IHwgZGVzY3JpcHRpb24/KSo+Cis8IUVMRU1FTlQgdXJsICgjUENEQVRBKT4KKzwhRUxFTUVOVCBpdGVtICh0aXRsZSB8IGxpbmsgfCBkZXNjcmlwdGlvbikqPgorPCFFTEVNRU5UIHRleHRpbnB1dCAodGl0bGUgfCBkZXNjcmlwdGlvbiB8IG5hbWUgfCBsaW5rKSo+Cis8IUVMRU1FTlQgbmFtZSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgcmF0aW5nICgjUENEQVRBKT4KKzwhRUxFTUVOVCBsYW5ndWFnZSAoI1BDREFUQSk+Cis8IUVMRU1FTlQgd2lkdGggKCNQQ0RBVEEpPgorPCFFTEVNRU5UIGhlaWdodCAoI1BDREFUQSk+Cis8IUVMRU1FTlQgY29weXJpZ2h0ICgjUENEQVRBKT4KKzwhRUxFTUVOVCBwdWJEYXRlICgjUENEQVRBKT4KKzwhRUxFTUVOVCBsYXN0QnVpbGREYXRlICgjUENEQVRBKT4KKzwhRUxFTUVOVCBkb2NzICgjUENEQVRBKT4KKzwhRUxFTUVOVCBtYW5hZ2luZ0VkaXRvciAoI1BDREFUQSk+Cis8IUVMRU1FTlQgd2ViTWFzdGVyICgjUENEQVRBKT4KKzwhRUxFTUVOVCBob3VyICgjUENEQVRBKT4KKzwhRUxFTUVOVCBkYXkgKCNQQ0RBVEEpPgorPCFFTEVNRU5UIHNraXBIb3VycyAoaG91cikrPgorPCFFTEVNRU5UIHNraXBEYXlzIChkYXkpKz4KKzwhLS0KKyAgICAgQ29waWVkIGZyb20gSFRNTCAzLjIgRFRELCB3aXRoIG1vZGlmaWNhdGlvbnMgKHJlbW92ZWQgQ0RBVEEpCisgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sMzIuaHRtbCNkdGQKKyAgICAgPT09PT09PT09PT09PT09IEJFR0lOID09PT09PT09PT09PT09PT09PT0KKy0tPgorPCEtLSAKKyAgICAgQ2hhcmFjdGVyIEVudGl0aWVzIGZvciBJU08gTGF0aW4tMQorICAgICAKKyAgICAgKEMpIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gMTk4NgorICAgICBQZXJtaXNzaW9uIHRvIGNvcHkgaW4gYW55IGZvcm0gaXMgZ3JhbnRlZCBmb3IgdXNlIHdpdGgKKyAgICAgY29uZm9ybWluZyBTR01MIHN5c3RlbXMgYW5kIGFwcGxpY2F0aW9ucyBhcyBkZWZpbmVkIGluCisgICAgIElTTyA4ODc5LCBwcm92aWRlZCB0aGlzIG5vdGljZSBpcyBpbmNsdWRlZCBpbiBhbGwgY29waWVzLgorICAgICBUaGlzIGhhcyBiZWVuIGV4dGVuZGVkIGZvciB1c2Ugd2l0aCBIVE1MIHRvIGNvdmVyIHRoZSBmdWxsCisgICAgIHNldCBvZiBjb2RlcyBpbiB0aGUgcmFuZ2UgMTYwLTI1NSBkZWNpbWFsLgorLS0+Cis8IS0tIENoYXJhY3RlciBlbnRpdHkgc2V0LiBUeXBpY2FsIGludm9jYXRpb246CisgICAgIDwhRU5USVRZICUgSVNPbGF0MSBQVUJMSUMKKyAgICAgICAiSVNPIDg4NzktMTk4Ni8vRU5USVRJRVMgQWRkZWQgTGF0aW4gMS8vRU4vL0hUTUwiPgorICAgICAlSVNPbGF0MTsKKy0tPgorPCFFTlRJVFkgbmJzcCAiJiMxNjA7Ij4gPCEtLSBuby1icmVhayBzcGFjZSAtLT4KKzwhRU5USVRZIGlleGNsICImIzE2MTsiPgorPCEtLSBpbnZlcnRlZCBleGNsYW1hdGlvbiBtYXJrIC0tPjwhRU5USVRZIGNlbnQgIiYjMTYyOyI+Cis8IS0tIGNlbnQgc2lnbiAtLT48IUVOVElUWSBwb3VuZCAiJiMxNjM7Ij4KKzwhLS0gcG91bmQgc3Rlcmxpbmcgc2lnbiAtLT48IUVOVElUWSBjdXJyZW4gIiYjMTY0OyI+Cis8IS0tIGdlbmVyYWwgY3VycmVuY3kgc2lnbiAtLT48IUVOVElUWSB5ZW4gIiYjMTY1OyI+Cis8IS0tIHllbiBzaWduIC0tPjwhRU5USVRZIGJydmJhciAiJiMxNjY7Ij4KKzwhLS0gYnJva2VuICh2ZXJ0aWNhbCkgYmFyIC0tPjwhRU5USVRZIHNlY3QgIiYjMTY3OyI+Cis8IS0tIHNlY3Rpb24gc2lnbiAtLT48IUVOVElUWSB1bWwgIiYjMTY4OyI+Cis8IS0tIHVtbGF1dCAoZGllcmVzaXMpIC0tPjwhRU5USVRZIGNvcHkgIiYjMTY5OyI+Cis8IS0tIGNvcHlyaWdodCBzaWduIC0tPjwhRU5USVRZIG9yZGYgIiYjMTcwOyI+Cis8IS0tIG9yZGluYWwgaW5kaWNhdG9yLCBmZW1pbmluZSAtLT48IUVOVElUWSBsYXF1byAiJiMxNzE7Ij4KKzwhLS0gYW5nbGUgcXVvdGF0aW9uIG1hcmssIGxlZnQgLS0+PCFFTlRJVFkgbm90ICImIzE3MjsiPgorPCEtLSBub3Qgc2lnbiAtLT48IUVOVElUWSBzaHkgIiYjMTczOyI+Cis8IS0tIHNvZnQgaHlwaGVuIC0tPjwhRU5USVRZIHJlZyAiJiMxNzQ7Ij4KKzwhLS0gcmVnaXN0ZXJlZCBzaWduIC0tPjwhRU5USVRZIG1hY3IgIiYjMTc1OyI+Cis8IS0tIG1hY3JvbiAtLT48IUVOVElUWSBkZWcgIiYjMTc2OyI+Cis8IS0tIGRlZ3JlZSBzaWduIC0tPjwhRU5USVRZIHBsdXNtbiAiJiMxNzc7Ij4KKzwhLS0gcGx1cy1vci1taW51cyBzaWduIC0tPjwhRU5USVRZIHN1cDIgIiYjMTc4OyI+Cis8IS0tIHN1cGVyc2NyaXB0IHR3byAtLT48IUVOVElUWSBzdXAzICImIzE3OTsiPgorPCEtLSBzdXBlcnNjcmlwdCB0aHJlZSAtLT48IUVOVElUWSBhY3V0ZSAiJiMxODA7Ij4KKzwhLS0gYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIG1pY3JvICImIzE4MTsiPgorPCEtLSBtaWNybyBzaWduIC0tPjwhRU5USVRZIHBhcmEgIiYjMTgyOyI+Cis8IS0tIHBpbGNyb3cgKHBhcmFncmFwaCBzaWduKSAtLT48IUVOVElUWSBtaWRkb3QgIiYjMTgzOyI+Cis8IS0tIG1pZGRsZSBkb3QgLS0+PCFFTlRJVFkgY2VkaWwgIiYjMTg0OyI+Cis8IS0tIGNlZGlsbGEgLS0+PCFFTlRJVFkgc3VwMSAiJiMxODU7Ij4KKzwhLS0gc3VwZXJzY3JpcHQgb25lIC0tPjwhRU5USVRZIG9yZG0gIiYjMTg2OyI+Cis8IS0tIG9yZGluYWwgaW5kaWNhdG9yLCBtYXNjdWxpbmUgLS0+PCFFTlRJVFkgcmFxdW8gIiYjMTg3OyI+Cis8IS0tIGFuZ2xlIHF1b3RhdGlvbiBtYXJrLCByaWdodCAtLT48IUVOVElUWSBmcmFjMTQgIiYjMTg4OyI+Cis8IS0tIGZyYWN0aW9uIG9uZS1xdWFydGVyIC0tPjwhRU5USVRZIGZyYWMxMiAiJiMxODk7Ij4KKzwhLS0gZnJhY3Rpb24gb25lLWhhbGYgLS0+PCFFTlRJVFkgZnJhYzM0ICImIzE5MDsiPgorPCEtLSBmcmFjdGlvbiB0aHJlZS1xdWFydGVycyAtLT48IUVOVElUWSBpcXVlc3QgIiYjMTkxOyI+Cis8IS0tIGludmVydGVkIHF1ZXN0aW9uIG1hcmsgLS0+PCFFTlRJVFkgQWdyYXZlICImIzE5MjsiPgorPCEtLSBjYXBpdGFsIEEsIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBBYWN1dGUgIiYjMTkzOyI+Cis8IS0tIGNhcGl0YWwgQSwgYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIEFjaXJjICImIzE5NDsiPgorPCEtLSBjYXBpdGFsIEEsIGNpcmN1bWZsZXggYWNjZW50IC0tPjwhRU5USVRZIEF0aWxkZSAiJiMxOTU7Ij4KKzwhLS0gY2FwaXRhbCBBLCB0aWxkZSAtLT48IUVOVElUWSBBdW1sICImIzE5NjsiPgorPCEtLSBjYXBpdGFsIEEsIGRpZXJlc2lzIG9yIHVtbGF1dCBtYXJrIC0tPjwhRU5USVRZIEFyaW5nICImIzE5NzsiPgorPCEtLSBjYXBpdGFsIEEsIHJpbmcgLS0+PCFFTlRJVFkgQUVsaWcgIiYjMTk4OyI+Cis8IS0tIGNhcGl0YWwgQUUgZGlwaHRob25nIChsaWdhdHVyZSkgLS0+PCFFTlRJVFkgQ2NlZGlsICImIzE5OTsiPgorPCEtLSBjYXBpdGFsIEMsIGNlZGlsbGEgLS0+PCFFTlRJVFkgRWdyYXZlICImIzIwMDsiPgorPCEtLSBjYXBpdGFsIEUsIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBFYWN1dGUgIiYjMjAxOyI+Cis8IS0tIGNhcGl0YWwgRSwgYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIEVjaXJjICImIzIwMjsiPgorPCEtLSBjYXBpdGFsIEUsIGNpcmN1bWZsZXggYWNjZW50IC0tPjwhRU5USVRZIEV1bWwgIiYjMjAzOyI+Cis8IS0tIGNhcGl0YWwgRSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgSWdyYXZlICImIzIwNDsiPgorPCEtLSBjYXBpdGFsIEksIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBJYWN1dGUgIiYjMjA1OyI+Cis8IS0tIGNhcGl0YWwgSSwgYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIEljaXJjICImIzIwNjsiPgorPCEtLSBjYXBpdGFsIEksIGNpcmN1bWZsZXggYWNjZW50IC0tPjwhRU5USVRZIEl1bWwgIiYjMjA3OyI+Cis8IS0tIGNhcGl0YWwgSSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgRVRIICImIzIwODsiPgorPCEtLSBjYXBpdGFsIEV0aCwgSWNlbGFuZGljIC0tPjwhRU5USVRZIE50aWxkZSAiJiMyMDk7Ij4KKzwhLS0gY2FwaXRhbCBOLCB0aWxkZSAtLT48IUVOVElUWSBPZ3JhdmUgIiYjMjEwOyI+Cis8IS0tIGNhcGl0YWwgTywgZ3JhdmUgYWNjZW50IC0tPjwhRU5USVRZIE9hY3V0ZSAiJiMyMTE7Ij4KKzwhLS0gY2FwaXRhbCBPLCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgT2NpcmMgIiYjMjEyOyI+Cis8IS0tIGNhcGl0YWwgTywgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgT3RpbGRlICImIzIxMzsiPgorPCEtLSBjYXBpdGFsIE8sIHRpbGRlIC0tPjwhRU5USVRZIE91bWwgIiYjMjE0OyI+Cis8IS0tIGNhcGl0YWwgTywgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgdGltZXMgIiYjMjE1OyI+Cis8IS0tIG11bHRpcGx5IHNpZ24gLS0+PCFFTlRJVFkgT3NsYXNoICImIzIxNjsiPgorPCEtLSBjYXBpdGFsIE8sIHNsYXNoIC0tPjwhRU5USVRZIFVncmF2ZSAiJiMyMTc7Ij4KKzwhLS0gY2FwaXRhbCBVLCBncmF2ZSBhY2NlbnQgLS0+PCFFTlRJVFkgVWFjdXRlICImIzIxODsiPgorPCEtLSBjYXBpdGFsIFUsIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSBVY2lyYyAiJiMyMTk7Ij4KKzwhLS0gY2FwaXRhbCBVLCBjaXJjdW1mbGV4IGFjY2VudCAtLT48IUVOVElUWSBVdW1sICImIzIyMDsiPgorPCEtLSBjYXBpdGFsIFUsIGRpZXJlc2lzIG9yIHVtbGF1dCBtYXJrIC0tPjwhRU5USVRZIFlhY3V0ZSAiJiMyMjE7Ij4KKzwhLS0gY2FwaXRhbCBZLCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgVEhPUk4gIiYjMjIyOyI+Cis8IS0tIGNhcGl0YWwgVEhPUk4sIEljZWxhbmRpYyAtLT48IUVOVElUWSBzemxpZyAiJiMyMjM7Ij4KKzwhLS0gc21hbGwgc2hhcnAgcywgR2VybWFuIChzeiBsaWdhdHVyZSkgLS0+PCFFTlRJVFkgYWdyYXZlICImIzIyNDsiPgorPCEtLSBzbWFsbCBhLCBncmF2ZSBhY2NlbnQgLS0+PCFFTlRJVFkgYWFjdXRlICImIzIyNTsiPgorPCEtLSBzbWFsbCBhLCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgYWNpcmMgIiYjMjI2OyI+Cis8IS0tIHNtYWxsIGEsIGNpcmN1bWZsZXggYWNjZW50IC0tPjwhRU5USVRZIGF0aWxkZSAiJiMyMjc7Ij4KKzwhLS0gc21hbGwgYSwgdGlsZGUgLS0+PCFFTlRJVFkgYXVtbCAiJiMyMjg7Ij4KKzwhLS0gc21hbGwgYSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgYXJpbmcgIiYjMjI5OyI+Cis8IS0tIHNtYWxsIGEsIHJpbmcgLS0+PCFFTlRJVFkgYWVsaWcgIiYjMjMwOyI+Cis8IS0tIHNtYWxsIGFlIGRpcGh0aG9uZyAobGlnYXR1cmUpIC0tPjwhRU5USVRZIGNjZWRpbCAiJiMyMzE7Ij4KKzwhLS0gc21hbGwgYywgY2VkaWxsYSAtLT48IUVOVElUWSBlZ3JhdmUgIiYjMjMyOyI+Cis8IS0tIHNtYWxsIGUsIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBlYWN1dGUgIiYjMjMzOyI+Cis8IS0tIHNtYWxsIGUsIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSBlY2lyYyAiJiMyMzQ7Ij4KKzwhLS0gc21hbGwgZSwgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgZXVtbCAiJiMyMzU7Ij4KKzwhLS0gc21hbGwgZSwgZGllcmVzaXMgb3IgdW1sYXV0IG1hcmsgLS0+PCFFTlRJVFkgaWdyYXZlICImIzIzNjsiPgorPCEtLSBzbWFsbCBpLCBncmF2ZSBhY2NlbnQgLS0+PCFFTlRJVFkgaWFjdXRlICImIzIzNzsiPgorPCEtLSBzbWFsbCBpLCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgaWNpcmMgIiYjMjM4OyI+Cis8IS0tIHNtYWxsIGksIGNpcmN1bWZsZXggYWNjZW50IC0tPjwhRU5USVRZIGl1bWwgIiYjMjM5OyI+Cis8IS0tIHNtYWxsIGksIGRpZXJlc2lzIG9yIHVtbGF1dCBtYXJrIC0tPjwhRU5USVRZIGV0aCAiJiMyNDA7Ij4KKzwhLS0gc21hbGwgZXRoLCBJY2VsYW5kaWMgLS0+PCFFTlRJVFkgbnRpbGRlICImIzI0MTsiPgorPCEtLSBzbWFsbCBuLCB0aWxkZSAtLT48IUVOVElUWSBvZ3JhdmUgIiYjMjQyOyI+Cis8IS0tIHNtYWxsIG8sIGdyYXZlIGFjY2VudCAtLT48IUVOVElUWSBvYWN1dGUgIiYjMjQzOyI+Cis8IS0tIHNtYWxsIG8sIGFjdXRlIGFjY2VudCAtLT48IUVOVElUWSBvY2lyYyAiJiMyNDQ7Ij4KKzwhLS0gc21hbGwgbywgY2lyY3VtZmxleCBhY2NlbnQgLS0+PCFFTlRJVFkgb3RpbGRlICImIzI0NTsiPgorPCEtLSBzbWFsbCBvLCB0aWxkZSAtLT48IUVOVElUWSBvdW1sICImIzI0NjsiPgorPCEtLSBzbWFsbCBvLCBkaWVyZXNpcyBvciB1bWxhdXQgbWFyayAtLT48IUVOVElUWSBkaXZpZGUgIiYjMjQ3OyI+Cis8IS0tIGRpdmlkZSBzaWduIC0tPjwhRU5USVRZIG9zbGFzaCAiJiMyNDg7Ij4KKzwhLS0gc21hbGwgbywgc2xhc2ggLS0+PCFFTlRJVFkgdWdyYXZlICImIzI0OTsiPgorPCEtLSBzbWFsbCB1LCBncmF2ZSBhY2NlbnQgLS0+PCFFTlRJVFkgdWFjdXRlICImIzI1MDsiPgorPCEtLSBzbWFsbCB1LCBhY3V0ZSBhY2NlbnQgLS0+PCFFTlRJVFkgdWNpcmMgIiYjMjUxOyI+Cis8IS0tIHNtYWxsIHUsIGNpcmN1bWZsZXggYWNjZW50IC0tPjwhRU5USVRZIHV1bWwgIiYjMjUyOyI+Cis8IS0tIHNtYWxsIHUsIGRpZXJlc2lzIG9yIHVtbGF1dCBtYXJrIC0tPjwhRU5USVRZIHlhY3V0ZSAiJiMyNTM7Ij4KKzwhLS0gc21hbGwgeSwgYWN1dGUgYWNjZW50IC0tPjwhRU5USVRZIHRob3JuICImIzI1NDsiPgorPCEtLSBzbWFsbCB0aG9ybiwgSWNlbGFuZGljIC0tPjwhRU5USVRZIHl1bWwgIiYjMjU1OyI+Cis8IS0tIHNtYWxsIHksIGRpZXJlc2lzIG9yIHVtbGF1dCBtYXJrIC0tPjwhLS0KKyAgICAgQ29waWVkIGZyb20gSFRNTCAzLjIgRFRELCB3aXRoIG1vZGlmaWNhdGlvbnMgKHJlbW92ZWQgQ0RBVEEpCisgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sMzIuaHRtbCNkdGQKKyAgICAgPT09PT09PT09PT09PT09PT0gRU5EID09PT09PT09PT09PT09PT09PT0KKy0tPgorXT4KKzxyc3M+Cis8Y2hhbm5lbD4KKzxpbWFnZS8+Cis8dGl0bGU+UFA8L3RpdGxlPgorPC9jaGFubmVsPgorPC9yc3M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDEwLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90MTAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMDY2ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDEwLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/PgorPCFET0NUWVBFIHJvb3QgWworPCFFTEVNRU5UIHJvb3QgIChjb250MSwgKGNvbnQxLCBjb250Mj8pKyk+CisgIDwhRUxFTUVOVCBjb250MSAgRU1QVFk+CisgIDwhRUxFTUVOVCBjb250MiAgRU1QVFk+CitdPgorPHJvb3Q+CisgIDxjb250MS8+CisgIDxjb250MS8+CisgIDxjb250MS8+CisgIDxjb250MS8+Cis8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDExLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90MTEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjM2ZiMzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDExLnhtbApAQCAtMCwwICsxLDIgQEAKKzwhRE9DVFlQRSByb290IFNZU1RFTSAiZHRkcy9leHRlcm5hbC5lbnQiPgorPHJvb3Q+JnBlSW5DZGF0YTs8L3Jvb3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDQuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q0LmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzI5MmJjCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q0LmR0ZApAQCAtMCwwICsxLDQgQEAKKzwhRU5USVRZICUgcGVyY2VudCAiJiN4MjU7Ij4KKzwhRU5USVRZICVwZXJjZW50OyBkZWYgImdoaSI+Cis8IUVOVElUWSBhYmMgIiVkZWY7Ij4KKzwhRUxFTUVOVCByb290ICgjUENEQVRBKT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90NC54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhZWI5ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+Cis8IURPQ1RZUEUgcm9vdCBTWVNURU0gJ3Q0LmR0ZCc+Cis8cm9vdD4mYWJjOzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90NGEuZHRkIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q0YS5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdjZGM3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90NGEuZHRkCkBAIC0wLDAgKzEsNSBAQAorPCFFTlRJVFkgJSBwZXJjZW50ICImI3gyNTsiPgorPCFFTlRJVFklcGVyY2VudDtkZWYgImdoaSI+Cis8IUVOVElUWSBhYmMgIiVkZWY7Ij4KKzwhRUxFTUVOVCByb290ICgjUENEQVRBKT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q0YS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2ZhNjAzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q0YS54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzwhRE9DVFlQRSByb290IFNZU1RFTSAndDRhLmR0ZCc+Cis8cm9vdD4mYWJjOzwvcm9vdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90Ni5kdGQgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDYuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTdjMjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQvdDYuZHRkCkBAIC0wLDAgKzEsNSBAQAorPCFFTlRJVFkgJSB4ZGVmICJkZWYiPgorPCFFTlRJVFkgJSAleGRlZjsgImdoaSI+Cis8IUVOVElUWSBhYmMgIiVkZWY7Ij4KKzwhRUxFTUVOVCByb290ICgjUENEQVRBKT4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q2LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90Ni54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjlmNjJjYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90Ni54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzwhRE9DVFlQRSByb290IFNZU1RFTSAndDYuZHRkJz4KKzxyb290PiZhYmM7PC9yb290PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q4LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdjMmIwYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OC54bWwKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4NCis8IURPQ1RZUEUgcm9vdCBbDQorPCFFTlRJVFkgJSBkZWZ0ZXN0ICcmbHQ7IUVMRU1FTlQgdGVzdCAoI1BDREFUQSkgPicgPg0KKzwhRU5USVRZICUgZGVmbWlkZGxlICcmbHQ7IUVMRU1FTlQgbWlkZGxlICh0ZXN0KSA+JyA+DQorPCFFTlRJVFkgJSBkZWZyb290ICcmbHQ7IUVMRU1FTlQgcm9vdCAobWlkZGxlKSA+JyA+DQorJWRlZnJvb3Q7ICVkZWZtaWRkbGU7ICVkZWZ0ZXN0Ow0KK10+DQorPHJvb3Q+PG1pZGRsZT48dGVzdD5zYW1wbGU8L3Rlc3Q+PC9taWRkbGU+PC9yb290Pg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OGEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q4YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM0NzBlYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OGEueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+DQorPCFET0NUWVBFIHJvb3QgWw0KKzwhRU5USVRZICUgZGVmdGVzdCAnJmx0OyFFTEVNRU5UIHRlc3QgKCNQQ0RBVEEpID4nID4NCis8IUVOVElUWSAlIGRlZm1pZGRsZSAnJmx0OyFFTEVNRU5UIG1pZGRsZSAodGVzdCkgPicgPg0KKzwhRU5USVRZICUgZGVmcm9vdCAnJmx0OyFFTEVNRU5UIHJvb3QgKG1pZGRsZSkgPicgPg0KKyVkZWZyb290OyVkZWZtaWRkbGU7JWRlZnRlc3Q7DQorXT4NCis8cm9vdD48bWlkZGxlPjx0ZXN0PnNhbXBsZTwvdGVzdD48L21pZGRsZT48L3Jvb3Q+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q5LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ1ZDM1YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OS54bWwKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4NCis8IURPQ1RZUEUgcm9vdCBbDQorPCFFTlRJVFkgJSBkZWZ0ZXN0ICcmIzYwOyFFTEVNRU5UIHRlc3QgKCNQQ0RBVEEpID4nID4NCis8IUVOVElUWSAlIGRlZm1pZGRsZSAnJiM2MDshRUxFTUVOVCBtaWRkbGUgKHRlc3QpID4nID4NCis8IUVOVElUWSAlIGRlZnJvb3QgJyYjNjA7IUVMRU1FTlQgcm9vdCAobWlkZGxlKSA+JyA+DQorJWRlZnJvb3Q7ICVkZWZtaWRkbGU7ICVkZWZ0ZXN0Ow0KK10+DQorPHJvb3Q+PG1pZGRsZT48dGVzdD5zYW1wbGU8L3Rlc3Q+PC9taWRkbGU+PC9yb290Pg0KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OWEueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3Q5YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNkM2MwNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC90OWEueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+DQorPCFET0NUWVBFIHJvb3QgWw0KKzwhRU5USVRZICUgZGVmdGVzdCAnJiM2MDshRUxFTUVOVCB0ZXN0ICgjUENEQVRBKSA+JyA+DQorPCFFTlRJVFkgJSBkZWZtaWRkbGUgJyYjNjA7IUVMRU1FTlQgbWlkZGxlICh0ZXN0KSA+JyA+DQorPCFFTlRJVFkgJSBkZWZyb290ICcmIzYwOyFFTEVNRU5UIHJvb3QgKG1pZGRsZSkgPicgPg0KKyVkZWZyb290OyVkZWZtaWRkbGU7JWRlZnRlc3Q7DQorXT4NCis8cm9vdD48bWlkZGxlPjx0ZXN0PnNhbXBsZTwvdGVzdD48L21pZGRsZT48L3Jvb3Q+DQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3ZhbGlkL3hodG1sMS54aHRtbCBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC94aHRtbDEueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRkNjhmNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC94aHRtbDEueGh0bWwKQEAgLTAsMCArMSwxNTA1IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiZHRkcy94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8P3htbC1zdHlsZXNoZWV0IGhyZWY9IlczQy1QUi5jc3MiIHR5cGU9InRleHQvY3NzIj8+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+Cis8aGVhZD4KKzx0aXRsZT5YSFRNTCAxLjA6IFRoZSBFeHRlbnNpYmxlIEh5cGVyVGV4dCBNYXJrdXAKK0xhbmd1YWdlPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIKK2hyZWY9IlczQy1QUi5jc3MiIHR5cGU9InRleHQvY3NzIiAvPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK3NwYW4udGVybSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgY29sb3I6IHJnYigwLCAwLCAxOTIpIH0KK2NvZGUgeworCWNvbG9yOiBncmVlbjsKKwlmb250LWZhbWlseTogbW9ub3NwYWNlOworCWZvbnQtd2VpZ2h0OiBib2xkOworfQorCitjb2RlLmdyZWVubW9ubyB7CisJY29sb3I6IGdyZWVuOworCWZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisJZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisuZ29vZCB7CisJYm9yZGVyOiBzb2xpZCBncmVlbjsKKwlib3JkZXItd2lkdGg6IDJweDsKKwljb2xvcjogZ3JlZW47CisJZm9udC13ZWlnaHQ6IGJvbGQ7CisJbWFyZ2luLXJpZ2h0OiA1JTsKKwltYXJnaW4tbGVmdDogMDsKK30KKy5iYWQgIHsKKwlib3JkZXI6IHNvbGlkIHJlZDsKKwlib3JkZXItd2lkdGg6IDJweDsKKwltYXJnaW4tbGVmdDogMDsKKwltYXJnaW4tcmlnaHQ6IDUlOworCWNvbG9yOiByZ2IoMTkyLCAxMDEsIDEwMSk7Cit9CisKK2ltZyB7CisJY29sb3I6IHdoaXRlOworCWJvcmRlcjogbm9uZTsKK30KKworZGl2Lm5hdmJhciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorZGl2LmNvbnRlbnRzIHsKKwliYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA0LDIwNCwyNTUpOworCXBhZGRpbmc6IDAuNWVtOworCWJvcmRlcjogbm9uZTsKKwltYXJnaW4tcmlnaHQ6IDUlOworfQorLnRvY2xpbmUgeyBsaXN0LXN0eWxlOiBub25lOyB9Cit0YWJsZS5leGNlcHRpb25zIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMTUzKTsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0ibmF2YmFyIj4KKyAgPGEgaHJlZj0iI3RvYyI+dGFibGUgb2YgY29udGVudHM8L2E+IAorICA8aHIgLz4KKzwvZGl2PgorPGRpdiBjbGFzcz0iaGVhZCI+PHA+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvIj48aW1nIGNsYXNzPSJoZWFkIgorc3JjPSJ3M2NfaG9tZS5naWYiIGFsdD0iVzNDIiAvPjwvYT48L3A+CisKKzxoMSBjbGFzcz0iaGVhZCI+PGEgbmFtZT0idGl0bGUiIGlkPSJ0aXRsZSI+WEhUTUw8L2E+PHN1cD4mIzg0ODI7PC9zdXA+IDEuMDoKK1RoZSBFeHRlbnNpYmxlIEh5cGVyVGV4dCBNYXJrdXAgTGFuZ3VhZ2U8L2gxPgorCis8aDI+QSBSZWZvcm11bGF0aW9uIG9mIEhUTUwgNC4wIGluIFhNTCAxLjA8L2gyPgorCis8aDM+VzNDIFByb3Bvc2VkIFJlY29tbWVuZGF0aW9uIDEwIERlY2VtYmVyIDE5OTk8L2gzPgorCis8ZGw+Cis8ZHQ+VGhpcyB2ZXJzaW9uOjwvZHQ+CisKKzxkZD48YSBocmVmPQorImh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFIteGh0bWwxLTE5OTkxMjEwIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFIteGh0bWwxLTE5OTkxMjEwPC9hPiA8YnIgLz4KKyg8YSBocmVmPSJ4aHRtbDEucHMiPlBvc3RzY3JpcHQgdmVyc2lvbjwvYT4sCis8YSBocmVmPSJ4aHRtbDEucGRmIj5QREYgdmVyc2lvbjwvYT4sCis8YSBocmVmPSJ4aHRtbDEuemlwIj5aSVAgYXJjaGl2ZTwvYT4sIG9yCis8YSBocmVmPSJ4aHRtbDEudGd6Ij5HemlwJ2QgVEFSIGFyY2hpdmU8L2E+KQorPC9kZD4KKworPGR0PkxhdGVzdCB2ZXJzaW9uOjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEiPgoraHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxPC9hPjwvZGQ+CisKKzxkdD5QcmV2aW91cyB2ZXJzaW9uczo8L2R0PgorCis8ZGQ+PGEgaHJlZj0KKyJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1dELXhodG1sMS0xOTk5MTEyNCI+CitodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1dELXhodG1sMS0xOTk5MTEyNDwvYT48L2RkPgorPGRkPjxhIGhyZWY9CisiaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi14aHRtbDEtMTk5OTA4MjQiPgoraHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi14aHRtbDEtMTk5OTA4MjQ8L2E+PC9kZD4KKworPGR0PkF1dGhvcnM6PC9kdD4KKworPGRkPlNlZSA8YSBocmVmPSIjYWNrcyI+YWNrbm93bGVkZ2VtZW50czwvYT4uPC9kZD4KKzwvZGw+CisKKzxwIGNsYXNzPSJjb3B5cmlnaHQiPjxhIGhyZWY9IAorImh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvaXByLW5vdGljZSNDb3B5cmlnaHQiPgorQ29weXJpZ2h0PC9hPiAmY29weTsgMTk5OSA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy8iPlczQzwvYT48c3VwPiZyZWc7PC9zdXA+CisoPGEgaHJlZj0iaHR0cDovL3d3dy5sY3MubWl0LmVkdS8iPk1JVDwvYT4sIDxhIGhyZWY9IAorImh0dHA6Ly93d3cuaW5yaWEuZnIvIj5JTlJJQTwvYT4sIDxhIGhyZWY9CisiaHR0cDovL3d3dy5rZWlvLmFjLmpwLyI+S2VpbzwvYT4pLCBBbGwgUmlnaHRzIFJlc2VydmVkLiA8YWJicgordGl0bGU9IldvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0iPlczQzwvYWJicj4gPGEKK2hyZWY9IAorImh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvaXByLW5vdGljZSNMZWdhbF9EaXNjbGFpbWVyIj4KK2xpYWJpbGl0eTwvYT4sIDxhIGhyZWY9IAorImh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvaXByLW5vdGljZSNXM0NfVHJhZGVtYXJrcyI+Cit0cmFkZW1hcms8L2E+LCA8YSBocmVmPSAKKyJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1kb2N1bWVudHMiPmRvY3VtZW50Cit1c2U8L2E+IGFuZCA8YSBocmVmPSAKKyJodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1zb2Z0d2FyZSI+c29mdHdhcmUKK2xpY2Vuc2luZzwvYT4gcnVsZXMgYXBwbHkuPC9wPgorPGhyIC8+Cis8L2Rpdj4KKworPGgyIGNsYXNzPSJub3RvYyI+QWJzdHJhY3Q8L2gyPgorCis8cD5UaGlzIHNwZWNpZmljYXRpb24gZGVmaW5lcyA8YWJiciB0aXRsZT0iRXh0ZW5zaWJsZSBIeXBlcnRleHQgTWFya3VwCitMYW5ndWFnZSI+WEhUTUw8L2FiYnI+IDEuMCwgYSByZWZvcm11bGF0aW9uIG9mIEhUTUwKKzQuMCBhcyBhbiBYTUwgMS4wIGFwcGxpY2F0aW9uLCBhbmQgdGhyZWUgPGFiYnIgdGl0bGU9IkRvY3VtZW50IFR5cGUKK0RlZmluaXRpb24iPkRURHM8L2FiYnI+IGNvcnJlc3BvbmRpbmcgdG8KK3RoZSBvbmVzIGRlZmluZWQgYnkgSFRNTCA0LjAuIFRoZSBzZW1hbnRpY3Mgb2YgdGhlIGVsZW1lbnRzIGFuZAordGhlaXIgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBpbiB0aGUgVzNDIFJlY29tbWVuZGF0aW9uIGZvciBIVE1MCis0LjAuIFRoZXNlIHNlbWFudGljcyBwcm92aWRlIHRoZSBmb3VuZGF0aW9uIGZvciBmdXR1cmUKK2V4dGVuc2liaWxpdHkgb2YgWEhUTUwuIENvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBIVE1MIHVzZXIKK2FnZW50cyBpcyBwb3NzaWJsZSBieSBmb2xsb3dpbmcgYSBzbWFsbCBzZXQgb2YgZ3VpZGVsaW5lcy48L3A+CisKKzxoMj5TdGF0dXMgb2YgdGhpcyBkb2N1bWVudDwvaDI+CisKKzxwPjxlbT5UaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBzdGF0dXMgb2YgdGhpcyBkb2N1bWVudCBhdCB0aGUgdGltZQorb2YgaXRzIHB1YmxpY2F0aW9uLiBPdGhlciBkb2N1bWVudHMgbWF5IHN1cGVyc2VkZSB0aGlzIGRvY3VtZW50LiBUaGUKK2xhdGVzdCBzdGF0dXMgb2YgdGhpcyBkb2N1bWVudCBzZXJpZXMgaXMgbWFpbnRhaW5lZCBhdCB0aGUgVzNDLjwvZW0+PC9wPgorCis8cD5UaGlzIHNwZWNpZmljYXRpb24gaXMgYSBQcm9wb3NlZCBSZWNvbW1lbmRhdGlvbiBvZiB0aGUgSFRNTCBXb3JraW5nIEdyb3VwLiBJdCBpcyAKK2EgcmV2aXNpb24gb2YgdGhlIFByb3Bvc2VkIFJlY29tbWVuZGF0aW9uIGRhdGVkIDxhCitocmVmPSAiaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9QUi14aHRtbDEtMTk5OTA4MjQvIj4yNCBBdWd1c3QKKzE5OTk8L2E+IGluY29ycG9yYXRpbmcgY2hhbmdlcyBhcyBhIHJlc3VsdCBvZiBjb21tZW50cyBmcm9tIHRoZSBQcm9wb3NlZAorUmVjb21tZW5kYXRpb24gcmV2aWV3LCBhbmQgCitjb21tZW50cyBhbmQgZnVydGhlciBkZWxpYmVyYXRpb25zIG9mIHRoZSBXM0MgSFRNTCBXb3JraW5nIEdyb3VwLiBBIAorPGEgaHJlZj0ieGh0bWwxLWRpZmYtMTk5OTEyMTAuaHRtbCI+ZGlmZi1tYXJrZWQgdmVyc2lvbjwvYT4gZnJvbSB0aGUgcHJldmlvdXMKK3Byb3Bvc2VkIHJlY29tbWVuZGF0aW9uIGlzIGF2YWlsYWJsZSBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy48L3A+CisKKzxwPk9uIDEwIERlY2VtYmVyIDE5OTksIHRoaXMgZG9jdW1lbnQgZW50ZXJzIGEKKzxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vUHJvY2Vzcy8jUmVjc1BSIj4KK1Byb3Bvc2VkIFJlY29tbWVuZGF0aW9uPC9hPiByZXZpZXcgcGVyaW9kLiBGcm9tIHRoYXQgZGF0ZSB1bnRpbCA4IEphbnVhcnkKKzIwMDAsCitXM0MgQWR2aXNvcnkgQ29tbWl0dGVlIHJlcHJlc2VudGF0aXZlcyBhcmUgZW5jb3VyYWdlZAordG8gcmV2aWV3IHRoaXMgc3BlY2lmaWNhdGlvbiBhbmQgcmV0dXJuIGNvbW1lbnRzIGluIHRoZWlyIGNvbXBsZXRlZAorYmFsbG90cyB0byB3M2MtaHRtbC1yZXZpZXdAdzMub3JnLiBQbGVhc2Ugc2VuZCBhbnkgY29tbWVudHMgb2YgYQorY29uZmlkZW50aWFsIG5hdHVyZSBpbiBzZXBhcmF0ZSBlbWFpbCB0byB3M3QtaHRtbEB3My5vcmcsIHdoaWNoIGlzCit2aXNpYmxlIHRvIHRoZSBUZWFtIG9ubHkuPC9wPgorCis8cD5ObyBzb29uZXIgdGhhbiAxNCBkYXlzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHJldmlldyBwZXJpb2QsIHRoZQorRGlyZWN0b3Igd2lsbCBhbm5vdW5jZSB0aGUgZG9jdW1lbnQncyBkaXNwb3NpdGlvbjogaXQgbWF5IGJlY29tZSBhIFczQworUmVjb21tZW5kYXRpb24gKHBvc3NpYmx5IHdpdGggbWlub3IgY2hhbmdlcyksIGl0IG1heSByZXZlcnQgdG8gV29ya2luZworRHJhZnQgc3RhdHVzLCBvciBpdCBtYXkgYmUgZHJvcHBlZCBhcyBhIFczQyB3b3JrIGl0ZW0uPC9wPgorCis8cD5QdWJsaWNhdGlvbiBhcyBhIFByb3Bvc2VkIFJlY29tbWVuZGF0aW9uIGRvZXMgbm90IGltcGx5IGVuZG9yc2VtZW50CitieSB0aGUgVzNDIG1lbWJlcnNoaXAuICBUaGlzIGlzIHN0aWxsIGEgZHJhZnQgZG9jdW1lbnQgYW5kIG1heSBiZQordXBkYXRlZCwgcmVwbGFjZWQgb3Igb2Jzb2xldGVkIGJ5IG90aGVyIGRvY3VtZW50cyBhdCBhbnkgdGltZS4gSXQgaXMKK2luYXBwcm9wcmlhdGUgdG8gY2l0ZSBXM0MgUHJvcG9zZWQgUmVjb21tZW5kYXRpb24gYXMgb3RoZXIgdGhhbiAid29yaworaW4gcHJvZ3Jlc3MuIjwvcD4KKworPHA+VGhpcyBkb2N1bWVudCBoYXMgYmVlbiBwcm9kdWNlZCBhcyBwYXJ0IG9mIHRoZSA8YSBocmVmPSAKKyJodHRwOi8vd3d3LnczLm9yZy9NYXJrVXAvIj5XM0MgSFRNTCBBY3Rpdml0eTwvYT4uIFRoZSBnb2FscyBvZgordGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL01hcmtVcC9Hcm91cC8iPkhUTUwgV29ya2luZworR3JvdXA8L2E+IDxpPig8YSBocmVmPSJodHRwOi8vY2dpLnczLm9yZy9NZW1iZXJBY2Nlc3MvIj5tZW1iZXJzCitvbmx5PC9hPik8L2k+IGFyZSBkaXNjdXNzZWQgaW4gdGhlIDxhIGhyZWY9IAorImh0dHA6Ly93d3cudzMub3JnL01hcmtVcC9Hcm91cC9IVE1MY2hhcnRlciI+SFRNTCBXb3JraW5nIEdyb3VwCitjaGFydGVyPC9hPiA8aT4oPGEgaHJlZj0iaHR0cDovL2NnaS53My5vcmcvTWVtYmVyQWNjZXNzLyI+bWVtYmVycworb25seTwvYT4pPC9pPi48L3A+CisKKzxwPkEgbGlzdCBvZiBjdXJyZW50IFczQyBSZWNvbW1lbmRhdGlvbnMgYW5kIG90aGVyIHRlY2huaWNhbCBkb2N1bWVudHMKK2NhbiBiZSBmb3VuZCBhdCA8YQoraHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIiPmh0dHA6Ly93d3cudzMub3JnL1RSPC9hPi48L3A+CisKKzxwPlB1YmxpYyBkaXNjdXNzaW9uIG9uIDxhYmJyIHRpdGxlPSJIeXBlclRleHQgTWFya3VwCitMYW5ndWFnZSI+SFRNTDwvYWJicj4gZmVhdHVyZXMgdGFrZXMgcGxhY2Ugb24gdGhlIG1haWxpbmcgbGlzdCA8YQoraHJlZj0ibWFpbHRvOnd3dy1odG1sQHczLm9yZyI+IHd3dy1odG1sQHczLm9yZzwvYT4gKDxhIGhyZWY9CisiaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWh0bWwvIj5hcmNoaXZlPC9hPikuIFRoZSBXM0MKK3N0YWZmIGNvbnRhY3QgZm9yIHdvcmsgb24gSFRNTCBpcyA8YSBocmVmPSAibWFpbHRvOmRzckB3My5vcmciPkRhdmUKK1JhZ2dldHQ8L2E+LjwvcD4KKworPHA+UGxlYXNlIHJlcG9ydCBlcnJvcnMgaW4gdGhpcyBkb2N1bWVudCB0byA8YQoraHJlZj0ibWFpbHRvOnd3dy1odG1sLWVkaXRvckB3My5vcmciPnd3dy1odG1sLWVkaXRvckB3My5vcmc8L2E+LjwvcD4KKworPHA+VGhlIGxpc3Qgb2Yga25vd24gZXJyb3JzIGluIHRoaXMgc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgYXQgPGEKK2hyZWY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMTIvUFIteGh0bWwxLTE5OTkxMjEwLWVycmF0YSI+aHR0cDovL3d3dy53My5vcmcvMTk5OS8xMi9QUi14aHRtbDEtMTk5OTEyMTAtZXJyYXRhPC9hPi48L3A+CisKKzxoMiBjbGFzcz0ibm90b2MiPjxhIGlkPSJ0b2MiIG5hbWU9InRvYyI+Q29udGVudHM8L2E+PC9oMj4KKworPGRpdiBjbGFzcz0iY29udGVudHMiPgorPHVsIGNsYXNzPSJ0b2MiPgorPGxpIGNsYXNzPSJ0b2NsaW5lIj4xLiA8YSBocmVmPSIjeGh0bWwiPldoYXQgaXMgWEhUTUw/PC9hPiAKKworPHVsIGNsYXNzPSJ0b2MiPgorPGxpIGNsYXNzPSJ0b2NsaW5lIj4xLjEgPGEgaHJlZj0iI2h0bWw0Ij5XaGF0IGlzIEhUTUwgNC4wPzwvYT48L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjEuMiA8YSBocmVmPSIjeG1sIj5XaGF0IGlzIFhNTD88L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj4xLjMgPGEgaHJlZj0iI3doeSI+V2h5IHRoZSBuZWVkIGZvciBYSFRNTD88L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjIuIDxhIGhyZWY9IiNkZWZzIj5EZWZpbml0aW9uczwvYT4gCisKKzx1bCBjbGFzcz0idG9jIj4KKzxsaSBjbGFzcz0idG9jbGluZSI+Mi4xIDxhIGhyZWY9IiN0ZXJtcyI+VGVybWlub2xvZ3k8L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj4yLjIgPGEgaHJlZj0iI2dlbmVyYWwiPkdlbmVyYWwgVGVybXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjMuIDxhIGhyZWY9IiNub3JtYXRpdmUiPk5vcm1hdGl2ZSBEZWZpbml0aW9uIG9mIFhIVE1MIDEuMDwvYT4KKworCis8dWwgY2xhc3M9InRvYyI+Cis8bGkgY2xhc3M9InRvY2xpbmUiPjMuMSA8YSBocmVmPSIjZG9jY29uZiI+RG9jdW1lbnQgQ29uZm9ybWFuY2U8L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj4zLjIgPGEgaHJlZj0iI3VhY29uZiI+VXNlciBBZ2VudCBDb25mb3JtYW5jZTwvYT48L2xpPgorPC91bD4KKzwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+NC4gPGEgaHJlZj0iI2RpZmZzIj5EaWZmZXJlbmNlcyB3aXRoIEhUTUwgNC4wPC9hPiAKKworPC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj41LiA8YSBocmVmPSIjaXNzdWVzIj5Db21wYXRpYmlsaXR5IElzc3VlczwvYT4gCisKKzx1bCBjbGFzcz0idG9jIj4KKzxsaSBjbGFzcz0idG9jbGluZSI+NS4xIDxhIGhyZWY9IiNtZWRpYSI+SW50ZXJuZXQgTWVkaWEgVHlwZXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjYuIDxhIGhyZWY9IiNmdXR1cmUiPkZ1dHVyZSBEaXJlY3Rpb25zPC9hPiAKKworPHVsIGNsYXNzPSJ0b2MiPgorPGxpIGNsYXNzPSJ0b2NsaW5lIj42LjEgPGEgaHJlZj0iI21vZHMiPk1vZHVsYXJpemluZyBIVE1MPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+Ni4yIDxhIGhyZWY9IiNleHRlbnNpb25zIj5TdWJzZXRzIGFuZCBFeHRlbnNpYmlsaXR5PC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+Ni4zIDxhIGhyZWY9IiNwcm9maWxlcyI+RG9jdW1lbnQgUHJvZmlsZXM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGkgY2xhc3M9InRvY2xpbmUiPjxhIGhyZWY9IiNkdGRzIj5BcHBlbmRpeCBBLiBEVERzPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+PGEgaHJlZj0iI3Byb2hpYml0aW9ucyI+QXBwZW5kaXggQi4gRWxlbWVudAorUHJvaGliaXRpb25zPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+PGEgaHJlZj0iI2d1aWRlbGluZXMiPkFwcGVuZGl4IEMuIEhUTUwgQ29tcGF0aWJpbGl0eSBHdWlkZWxpbmVzPC9hPjwvbGk+CisKKzxsaSBjbGFzcz0idG9jbGluZSI+PGEgaHJlZj0iI2Fja3MiPkFwcGVuZGl4IEQuIEFja25vd2xlZGdlbWVudHM8L2E+PC9saT4KKworPGxpIGNsYXNzPSJ0b2NsaW5lIj48YSBocmVmPSIjcmVmcyI+QXBwZW5kaXggRS4gUmVmZXJlbmNlczwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9InhodG1sIiBpZD0ieGh0bWwiPjEuIFdoYXQgaXMgWEhUTUw/PC9hPjwvaDE+CisKKzxwPlhIVE1MIGlzIGEgZmFtaWx5IG9mIGN1cnJlbnQgYW5kIGZ1dHVyZSBkb2N1bWVudCB0eXBlcyBhbmQgbW9kdWxlcyB0aGF0CityZXByb2R1Y2UsIHN1YnNldCwgYW5kIGV4dGVuZCBIVE1MIDQuMCA8YSBocmVmPSIjcmVmLWh0bWw0Ij5bSFRNTF08L2E+LiBYSFRNTCBmYW1pbHkgZG9jdW1lbnQgdHlwZXMgYXJlIDxhYmJyIHRpdGxlPSJFeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZSI+WE1MPC9hYmJyPiBiYXNlZCwKK2FuZCB1bHRpbWF0ZWx5IGFyZSBkZXNpZ25lZCB0byB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggWE1MLWJhc2VkIHVzZXIgYWdlbnRzLgorVGhlIGRldGFpbHMgb2YgdGhpcyBmYW1pbHkgYW5kIGl0cyBldm9sdXRpb24gYXJlCitkaXNjdXNzZWQgaW4gbW9yZSBkZXRhaWwgaW4gdGhlIHNlY3Rpb24gb24gPGEgaHJlZj0iI2Z1dHVyZSI+RnV0dXJlCitEaXJlY3Rpb25zPC9hPi4gPC9wPgorCis8cD5YSFRNTCAxLjAgKHRoaXMgc3BlY2lmaWNhdGlvbikgaXMgdGhlIGZpcnN0IGRvY3VtZW50IHR5cGUgaW4gdGhlIFhIVE1MCitmYW1pbHkuIEl0IGlzIGEgcmVmb3JtdWxhdGlvbiBvZiB0aGUgdGhyZWUgSFRNTCA0LjAgZG9jdW1lbnQgdHlwZXMgYXMKK2FwcGxpY2F0aW9ucyBvZiBYTUwgMS4wIDxhIGhyZWY9IiNyZWYteG1sIj4gW1hNTF08L2E+LiBJdCBpcyBpbnRlbmRlZAordG8gYmUgdXNlZCBhcyBhIGxhbmd1YWdlIGZvciBjb250ZW50IHRoYXQgaXMgYm90aCBYTUwtY29uZm9ybWluZyBhbmQsIGlmIHNvbWUKK3NpbXBsZSA8YSBocmVmPSIjZ3VpZGVsaW5lcyI+Z3VpZGVsaW5lczwvYT4gYXJlIGZvbGxvd2VkLCAKK29wZXJhdGVzIGluIEhUTUwgNC4wIGNvbmZvcm1pbmcgdXNlciBhZ2VudHMuIERldmVsb3BlcnMgd2hvIG1pZ3JhdGUKK3RoZWlyIGNvbnRlbnQgdG8gWEhUTUwgMS4wIHdpbGwgcmVhbGl6ZSB0aGUgZm9sbG93aW5nIGJlbmVmaXRzOjwvcD4KKworPHVsPgorPGxpPlhIVE1MIGRvY3VtZW50cyBhcmUgWE1MIGNvbmZvcm1pbmcuIEFzIHN1Y2gsIHRoZXkgYXJlIHJlYWRpbHkgdmlld2VkLAorZWRpdGVkLCBhbmQgdmFsaWRhdGVkIHdpdGggc3RhbmRhcmQgWE1MIHRvb2xzLjwvbGk+Cis8bGk+WEhUTUwgZG9jdW1lbnRzIGNhbiBiZSB3cml0dGVuIHRvCit0byBvcGVyYXRlIGFzIHdlbGwgb3IgYmV0dGVyIHRoYW4gdGhleSBkaWQgYmVmb3JlIGluIGV4aXN0aW5nCitIVE1MIDQuMC1jb25mb3JtaW5nIHVzZXIgYWdlbnRzIGFzIHdlbGwgYXMgaW4gbmV3LCBYSFRNTCAxLjAgY29uZm9ybWluZyB1c2VyCithZ2VudHMuPC9saT4KKzxsaT5YSFRNTCBkb2N1bWVudHMgY2FuIHV0aWxpemUgYXBwbGljYXRpb25zIChlLmcuIHNjcmlwdHMgYW5kIGFwcGxldHMpIHRoYXQgcmVseQordXBvbiBlaXRoZXIgdGhlIEhUTUwgRG9jdW1lbnQgT2JqZWN0IE1vZGVsIG9yIHRoZSBYTUwgRG9jdW1lbnQgT2JqZWN0IE1vZGVsIDxhCitocmVmPSIjcmVmLWRvbSI+W0RPTV08L2E+LjwvbGk+Cis8bGk+QXMgdGhlIFhIVE1MIGZhbWlseSBldm9sdmVzLCBkb2N1bWVudHMgY29uZm9ybWluZyB0byBYSFRNTCAxLjAgd2lsbCBiZSBtb3JlCitsaWtlbHkgdG8gaW50ZXJvcGVyYXRlIHdpdGhpbiBhbmQgYW1vbmcgdmFyaW91cyBYSFRNTCBlbnZpcm9ubWVudHMuPC9saT4KKzwvdWw+CisKKzxwPlRoZSBYSFRNTCBmYW1pbHkgaXMgdGhlIG5leHQgc3RlcCBpbiB0aGUgZXZvbHV0aW9uIG9mIHRoZSBJbnRlcm5ldC4gQnkKK21pZ3JhdGluZyB0byBYSFRNTCB0b2RheSwgY29udGVudCBkZXZlbG9wZXJzIGNhbiBlbnRlciB0aGUgWE1MIHdvcmxkIHdpdGggYWxsCitvZiBpdHMgYXR0ZW5kYW50IGJlbmVmaXRzLCB3aGlsZSBzdGlsbCByZW1haW5pbmcgY29uZmlkZW50IGluIHRoZWlyCitjb250ZW50J3MgYmFja3dhcmQgYW5kIGZ1dHVyZSBjb21wYXRpYmlsaXR5LjwvcD4KKworPGgyPjxhIG5hbWU9Imh0bWw0IiBpZD0iaHRtbDQiPjEuMSBXaGF0IGlzIEhUTUwgNC4wPzwvYT48L2gyPgorCis8cD5IVE1MIDQuMCA8YSBocmVmPSIjcmVmLWh0bWw0Ij5bSFRNTF08L2E+IGlzIGFuIDxhYmJyIHRpdGxlPSJTdGFuZGFyZAorR2VuZXJhbGl6ZWQgTWFya3VwIExhbmd1YWdlIj5TR01MPC9hYmJyPiAoU3RhbmRhcmQKK0dlbmVyYWxpemVkIE1hcmt1cCBMYW5ndWFnZSkgYXBwbGljYXRpb24gY29uZm9ybWluZyB0bworSW50ZXJuYXRpb25hbCBTdGFuZGFyZCA8YWJiciB0aXRsZT0iT3JnYW5pemF0aW9uIGZvciBJbnRlcm5hdGlvbmFsCitTdGFuZGFyZGl6YXRpb24iPklTTzwvYWJicj4gODg3OSwgYW5kIGlzIHdpZGVseSByZWdhcmRlZCBhcyB0aGUKK3N0YW5kYXJkIHB1Ymxpc2hpbmcgbGFuZ3VhZ2Ugb2YgdGhlIFdvcmxkIFdpZGUgV2ViLjwvcD4KKworPHA+U0dNTCBpcyBhIGxhbmd1YWdlIGZvciBkZXNjcmliaW5nIG1hcmt1cCBsYW5ndWFnZXMsCitwYXJ0aWN1bGFybHkgdGhvc2UgdXNlZCBpbiBlbGVjdHJvbmljIGRvY3VtZW50IGV4Y2hhbmdlLCBkb2N1bWVudAorbWFuYWdlbWVudCwgYW5kIGRvY3VtZW50IHB1Ymxpc2hpbmcuIEhUTUwgaXMgYW4gZXhhbXBsZSBvZiBhCitsYW5ndWFnZSBkZWZpbmVkIGluIFNHTUwuPC9wPgorCis8cD5TR01MIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgbWlkZGxlIDE5ODAncyBhbmQgaGFzIHJlbWFpbmVkCitxdWl0ZSBzdGFibGUuIE11Y2ggb2YgdGhpcyBzdGFiaWxpdHkgc3RlbXMgZnJvbSB0aGUgZmFjdCB0aGF0IHRoZQorbGFuZ3VhZ2UgaXMgYm90aCBmZWF0dXJlLXJpY2ggYW5kIGZsZXhpYmxlLiBUaGlzIGZsZXhpYmlsaXR5LAoraG93ZXZlciwgY29tZXMgYXQgYSBwcmljZSwgYW5kIHRoYXQgcHJpY2UgaXMgYSBsZXZlbCBvZgorY29tcGxleGl0eSB0aGF0IGhhcyBpbmhpYml0ZWQgaXRzIGFkb3B0aW9uIGluIGEgZGl2ZXJzaXR5IG9mCitlbnZpcm9ubWVudHMsIGluY2x1ZGluZyB0aGUgV29ybGQgV2lkZSBXZWIuPC9wPgorCis8cD5IVE1MLCBhcyBvcmlnaW5hbGx5IGNvbmNlaXZlZCwgd2FzIHRvIGJlIGEgbGFuZ3VhZ2UgZm9yIHRoZQorZXhjaGFuZ2Ugb2Ygc2NpZW50aWZpYyBhbmQgb3RoZXIgdGVjaG5pY2FsIGRvY3VtZW50cywgc3VpdGFibGUKK2ZvciB1c2UgYnkgbm9uLWRvY3VtZW50IHNwZWNpYWxpc3RzLiBIVE1MIGFkZHJlc3NlZCB0aGUgcHJvYmxlbQorb2YgU0dNTCBjb21wbGV4aXR5IGJ5IHNwZWNpZnlpbmcgYSBzbWFsbCBzZXQgb2Ygc3RydWN0dXJhbCBhbmQKK3NlbWFudGljIHRhZ3Mgc3VpdGFibGUgZm9yIGF1dGhvcmluZyByZWxhdGl2ZWx5IHNpbXBsZSBkb2N1bWVudHMuCitJbiBhZGRpdGlvbiB0byBzaW1wbGlmeWluZyB0aGUgZG9jdW1lbnQgc3RydWN0dXJlLCBIVE1MIGFkZGVkCitzdXBwb3J0IGZvciBoeXBlcnRleHQuIE11bHRpbWVkaWEgY2FwYWJpbGl0aWVzIHdlcmUgYWRkZWQKK2xhdGVyLjwvcD4KKworPHA+SW4gYSByZW1hcmthYmx5IHNob3J0IHNwYWNlIG9mIHRpbWUsIEhUTUwgYmVjYW1lIHdpbGRseQorcG9wdWxhciBhbmQgcmFwaWRseSBvdXRncmV3IGl0cyBvcmlnaW5hbCBwdXJwb3NlLiBTaW5jZSBIVE1MJ3MKK2luY2VwdGlvbiwgdGhlcmUgaGFzIGJlZW4gcmFwaWQgaW52ZW50aW9uIG9mIG5ldyBlbGVtZW50cyBmb3IgdXNlCit3aXRoaW4gSFRNTCAoYXMgYSBzdGFuZGFyZCkgYW5kIGZvciBhZGFwdGluZyBIVE1MIHRvIHZlcnRpY2FsLAoraGlnaGx5IHNwZWNpYWxpemVkLCBtYXJrZXRzLiBUaGlzIHBsZXRob3JhIG9mIG5ldyBlbGVtZW50cyBoYXMKK2xlZCB0byBjb21wYXRpYmlsaXR5IHByb2JsZW1zIGZvciBkb2N1bWVudHMgYWNyb3NzIGRpZmZlcmVudAorcGxhdGZvcm1zLjwvcD4KKworPHA+QXMgdGhlIGhldGVyb2dlbmVpdHkgb2YgYm90aCBzb2Z0d2FyZSBhbmQgcGxhdGZvcm1zIHJhcGlkbHkKK3Byb2xpZmVyYXRlLCBpdCBpcyBjbGVhciB0aGF0IHRoZSBzdWl0YWJpbGl0eSBvZiAnY2xhc3NpYycgSFRNTAorNC4wIGZvciB1c2Ugb24gdGhlc2UgcGxhdGZvcm1zIGlzIHNvbWV3aGF0IGxpbWl0ZWQuPC9wPgorCis8aDI+PGEgbmFtZT0ieG1sIiBpZD0ieG1sIj4xLjIgV2hhdCBpcyBYTUw/PC9hPjwvaDI+CisKKzxwPlhNTDxzdXA+JiM4NDgyOzwvc3VwPiBpcyB0aGUgc2hvcnRoYW5kIGZvciBFeHRlbnNpYmxlIE1hcmt1cAorTGFuZ3VhZ2UsIGFuZCBpcyBhbiBhY3JvbnltIG9mIEV4dGVuc2libGUgTWFya3VwIExhbmd1YWdlIDxhCitocmVmPSIjcmVmLXhtbCI+W1hNTF08L2E+LjwvcD4KKworPHA+WE1MIHdhcyBjb25jZWl2ZWQgYXMgYSBtZWFucyBvZiByZWdhaW5pbmcgdGhlIHBvd2VyIGFuZAorZmxleGliaWxpdHkgb2YgU0dNTCB3aXRob3V0IG1vc3Qgb2YgaXRzIGNvbXBsZXhpdHkuIEFsdGhvdWdoIGEKK3Jlc3RyaWN0ZWQgZm9ybSBvZiBTR01MLCBYTUwgbm9uZXRoZWxlc3MgcHJlc2VydmVzIG1vc3Qgb2YgU0dNTCdzCitwb3dlciBhbmQgcmljaG5lc3MsIGFuZCB5ZXQgc3RpbGwgcmV0YWlucyBhbGwgb2YgU0dNTCdzIGNvbW1vbmx5Cit1c2VkIGZlYXR1cmVzLjwvcD4KKworPHA+V2hpbGUgcmV0YWluaW5nIHRoZXNlIGJlbmVmaWNpYWwgZmVhdHVyZXMsIFhNTCByZW1vdmVzIG1hbnkgb2YKK3RoZSBtb3JlIGNvbXBsZXggZmVhdHVyZXMgb2YgU0dNTCB0aGF0IG1ha2UgdGhlIGF1dGhvcmluZyBhbmQKK2Rlc2lnbiBvZiBzdWl0YWJsZSBzb2Z0d2FyZSBib3RoIGRpZmZpY3VsdCBhbmQgY29zdGx5LjwvcD4KKworPGgyPjxhIG5hbWU9IndoeSIgaWQ9IndoeSI+MS4zIFdoeSB0aGUgbmVlZCBmb3IgWEhUTUw/PC9hPjwvaDI+CisKKzxwPlRoZSBiZW5lZml0cyBvZiBtaWdyYXRpbmcgdG8gWEhUTUwgMS4wIGFyZSBkZXNjcmliZWQgYWJvdmUuIFNvbWUgb2YgdGhlCitiZW5lZml0cyBvZiBtaWdyYXRpbmcgdG8gWEhUTUwgaW4gZ2VuZXJhbCBhcmU6PC9wPgorCis8dWw+Cis8bGk+RG9jdW1lbnQgZGV2ZWxvcGVycyBhbmQgdXNlciBhZ2VudCBkZXNpZ25lcnMgYXJlIGNvbnN0YW50bHkKK2Rpc2NvdmVyaW5nIG5ldyB3YXlzIHRvIGV4cHJlc3MgdGhlaXIgaWRlYXMgdGhyb3VnaCBuZXcgbWFya3VwLiBJbiBYTUwsIGl0IGlzCityZWxhdGl2ZWx5IGVhc3kgdG8gaW50cm9kdWNlIG5ldyBlbGVtZW50cyBvciBhZGRpdGlvbmFsIGVsZW1lbnQKK2F0dHJpYnV0ZXMuICBUaGUgWEhUTUwgZmFtaWx5IGlzIGRlc2lnbmVkIHRvIGFjY29tbW9kYXRlIHRoZXNlIGV4dGVuc2lvbnMKK3Rocm91Z2ggWEhUTUwgbW9kdWxlcyBhbmQgdGVjaG5pcXVlcyBmb3IgZGV2ZWxvcGluZyBuZXcgWEhUTUwtY29uZm9ybWluZworbW9kdWxlcyAoZGVzY3JpYmVkIGluIHRoZSBmb3J0aGNvbWluZyBYSFRNTCBNb2R1bGFyaXphdGlvbiBzcGVjaWZpY2F0aW9uKS4KK1RoZXNlIG1vZHVsZXMgd2lsbCBwZXJtaXQgdGhlIGNvbWJpbmF0aW9uIG9mIGV4aXN0aW5nIGFuZAorbmV3IGZlYXR1cmUgc2V0cyB3aGVuIGRldmVsb3BpbmcgY29udGVudCBhbmQgd2hlbiBkZXNpZ25pbmcgbmV3IHVzZXIKK2FnZW50cy48L2xpPgorCis8bGk+QWx0ZXJuYXRlIHdheXMgb2YgYWNjZXNzaW5nIHRoZSBJbnRlcm5ldCBhcmUgY29uc3RhbnRseSBiZWluZworaW50cm9kdWNlZC4gIFNvbWUgZXN0aW1hdGVzIGluZGljYXRlIHRoYXQgYnkgdGhlIHllYXIgMjAwMiwgNzUlIG9mCitJbnRlcm5ldCBkb2N1bWVudCB2aWV3aW5nIHdpbGwgYmUgY2FycmllZCBvdXQgb24gdGhlc2UgYWx0ZXJuYXRlCitwbGF0Zm9ybXMuICBUaGUgWEhUTUwgZmFtaWx5IGlzIGRlc2lnbmVkIHdpdGggZ2VuZXJhbCB1c2VyIGFnZW50CitpbnRlcm9wZXJhYmlsaXR5IGluIG1pbmQuIFRocm91Z2ggYSBuZXcgdXNlciBhZ2VudCBhbmQgZG9jdW1lbnQgcHJvZmlsaW5nCittZWNoYW5pc20sIHNlcnZlcnMsIHByb3hpZXMsIGFuZCB1c2VyIGFnZW50cyB3aWxsIGJlIGFibGUgdG8gcGVyZm9ybQorYmVzdCBlZmZvcnQgY29udGVudCB0cmFuc2Zvcm1hdGlvbi4gVWx0aW1hdGVseSwgaXQgd2lsbCBiZSBwb3NzaWJsZSB0bworZGV2ZWxvcCBYSFRNTC1jb25mb3JtaW5nIGNvbnRlbnQgdGhhdCBpcyB1c2FibGUgYnkgYW55IFhIVE1MLWNvbmZvcm1pbmcKK3VzZXIgYWdlbnQuPC9saT4KKworPC91bD4KKzwhLS1PZGRQYWdlLS0+Cis8aDE+PGEgbmFtZT0iZGVmcyIgaWQ9ImRlZnMiPjIuIERlZmluaXRpb25zPC9hPjwvaDE+CisKKzxoMj48YSBuYW1lPSJ0ZXJtcyIgaWQ9InRlcm1zIj4yLjEgVGVybWlub2xvZ3k8L2E+PC9oMj4KKworPHA+VGhlIGZvbGxvd2luZyB0ZXJtcyBhcmUgdXNlZCBpbiB0aGlzIHNwZWNpZmljYXRpb24uIFRoZXNlCit0ZXJtcyBleHRlbmQgdGhlIGRlZmluaXRpb25zIGluIDxhIGhyZWY9IiNyZWYtcmZjMjExOSI+CitbUkZDMjExOV08L2E+IGluIHdheXMgYmFzZWQgdXBvbiBzaW1pbGFyIGRlZmluaXRpb25zIGluIElTTy88YWJicgordGl0bGU9IkludGVybmF0aW9uYWwgRWxlY3Ryby10ZWNobmljYWwgQ29tbWlzc2lvbiI+SUVDPC9hYmJyPgorOTk0NS0xOjE5OTAgPGEgaHJlZj0iI3JlZi1wb3NpeCI+W1BPU0lYLjFdPC9hPjo8L3A+CisKKzxkbD4KKzxkdD5JbXBsZW1lbnRhdGlvbi1kZWZpbmVkPC9kdD4KKworPGRkPkEgdmFsdWUgb3IgYmVoYXZpb3IgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZCB3aGVuIGl0IGlzIGxlZnQKK3RvIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBkZWZpbmUgW2FuZCBkb2N1bWVudF0gdGhlIGNvcnJlc3BvbmRpbmcKK3JlcXVpcmVtZW50cyBmb3IgY29ycmVjdCBkb2N1bWVudCBjb25zdHJ1Y3Rpb24uPC9kZD4KKworPGR0Pk1heTwvZHQ+CisKKzxkZD5XaXRoIHJlc3BlY3QgdG8gaW1wbGVtZW50YXRpb25zLCB0aGUgd29yZCAibWF5IiBpcyB0byBiZQoraW50ZXJwcmV0ZWQgYXMgYW4gb3B0aW9uYWwgZmVhdHVyZSB0aGF0IGlzIG5vdCByZXF1aXJlZCBpbiB0aGlzCitzcGVjaWZpY2F0aW9uIGJ1dCBjYW4gYmUgcHJvdmlkZWQuIFdpdGggcmVzcGVjdCB0byA8YSBocmVmPSAKKyIjZG9jY29uZiI+RG9jdW1lbnQgQ29uZm9ybWFuY2U8L2E+LCB0aGUgd29yZCAibWF5IiBtZWFucyB0aGF0Cit0aGUgb3B0aW9uYWwgZmVhdHVyZSBtdXN0IG5vdCBiZSB1c2VkLiBUaGUgdGVybSAib3B0aW9uYWwiIGhhcwordGhlIHNhbWUgZGVmaW5pdGlvbiBhcyAibWF5Ii48L2RkPgorCis8ZHQ+TXVzdDwvZHQ+CisKKzxkZD5JbiB0aGlzIHNwZWNpZmljYXRpb24sIHRoZSB3b3JkICJtdXN0IiBpcyB0byBiZSBpbnRlcnByZXRlZAorYXMgYSBtYW5kYXRvcnkgcmVxdWlyZW1lbnQgb24gdGhlIGltcGxlbWVudGF0aW9uIG9yIG9uIFN0cmljdGx5CitDb25mb3JtaW5nIFhIVE1MIERvY3VtZW50cywgZGVwZW5kaW5nIHVwb24gdGhlIGNvbnRleHQuIFRoZSB0ZXJtCisic2hhbGwiIGhhcyB0aGUgc2FtZSBkZWZpbml0aW9uIGFzICJtdXN0Ii48L2RkPgorCis8ZHQ+UmVzZXJ2ZWQ8L2R0PgorCis8ZGQ+QSB2YWx1ZSBvciBiZWhhdmlvciBpcyB1bnNwZWNpZmllZCwgYnV0IGl0IGlzIG5vdCBhbGxvd2VkIHRvCitiZSB1c2VkIGJ5IENvbmZvcm1pbmcgRG9jdW1lbnRzIG5vciB0byBiZSBzdXBwb3J0ZWQgYnkgYQorQ29uZm9ybWluZyBVc2VyIEFnZW50cy48L2RkPgorCis8ZHQ+U2hvdWxkPC9kdD4KKworPGRkPldpdGggcmVzcGVjdCB0byBpbXBsZW1lbnRhdGlvbnMsIHRoZSB3b3JkICJzaG91bGQiIGlzIHRvIGJlCitpbnRlcnByZXRlZCBhcyBhbiBpbXBsZW1lbnRhdGlvbiByZWNvbW1lbmRhdGlvbiwgYnV0IG5vdCBhCityZXF1aXJlbWVudC4gV2l0aCByZXNwZWN0IHRvIGRvY3VtZW50cywgdGhlIHdvcmQgInNob3VsZCIgaXMgdG8KK2JlIGludGVycHJldGVkIGFzIHJlY29tbWVuZGVkIHByb2dyYW1taW5nIHByYWN0aWNlIGZvciBkb2N1bWVudHMKK2FuZCBhIHJlcXVpcmVtZW50IGZvciBTdHJpY3RseSBDb25mb3JtaW5nIFhIVE1MIERvY3VtZW50cy48L2RkPgorCis8ZHQ+U3VwcG9ydGVkPC9kdD4KKworPGRkPkNlcnRhaW4gZmFjaWxpdGllcyBpbiB0aGlzIHNwZWNpZmljYXRpb24gYXJlIG9wdGlvbmFsLiBJZiBhCitmYWNpbGl0eSBpcyBzdXBwb3J0ZWQsIGl0IGJlaGF2ZXMgYXMgc3BlY2lmaWVkIGJ5IHRoaXMKK3NwZWNpZmljYXRpb24uPC9kZD4KKworPGR0PlVuc3BlY2lmaWVkPC9kdD4KKworPGRkPldoZW4gYSB2YWx1ZSBvciBiZWhhdmlvciBpcyB1bnNwZWNpZmllZCwgdGhlIHNwZWNpZmljYXRpb24KK2RlZmluZXMgbm8gcG9ydGFiaWxpdHkgcmVxdWlyZW1lbnRzIGZvciBhIGZhY2lsaXR5IG9uIGFuCitpbXBsZW1lbnRhdGlvbiBldmVuIHdoZW4gZmFjZWQgd2l0aCBhIGRvY3VtZW50IHRoYXQgdXNlcyB0aGUKK2ZhY2lsaXR5LiBBIGRvY3VtZW50IHRoYXQgcmVxdWlyZXMgc3BlY2lmaWMgYmVoYXZpb3IgaW4gc3VjaCBhbgoraW5zdGFuY2UsIHJhdGhlciB0aGFuIHRvbGVyYXRpbmcgYW55IGJlaGF2aW9yIHdoZW4gdXNpbmcgdGhhdAorZmFjaWxpdHksIGlzIG5vdCBhIFN0cmljdGx5IENvbmZvcm1pbmcgWEhUTUwgRG9jdW1lbnQuPC9kZD4KKzwvZGw+CisKKzxoMj48YSBuYW1lPSJnZW5lcmFsIiBpZD0iZ2VuZXJhbCI+Mi4yIEdlbmVyYWwgVGVybXM8L2E+PC9oMj4KKworPGRsPgorPGR0PkF0dHJpYnV0ZTwvZHQ+CisKKzxkZD5BbiBhdHRyaWJ1dGUgaXMgYSBwYXJhbWV0ZXIgdG8gYW4gZWxlbWVudCBkZWNsYXJlZCBpbiB0aGUKK0RURC4gQW4gYXR0cmlidXRlJ3MgdHlwZSBhbmQgdmFsdWUgcmFuZ2UsIGluY2x1ZGluZyBhIHBvc3NpYmxlCitkZWZhdWx0IHZhbHVlLCBhcmUgZGVmaW5lZCBpbiB0aGUgRFRELjwvZGQ+CisKKzxkdD5EVEQ8L2R0PgorCis8ZGQ+QSBEVEQsIG9yIGRvY3VtZW50IHR5cGUgZGVmaW5pdGlvbiwgaXMgYSBjb2xsZWN0aW9uIG9mIFhNTAorZGVjbGFyYXRpb25zIHRoYXQsIGFzIGEgY29sbGVjdGlvbiwgZGVmaW5lcyB0aGUgbGVnYWwgc3RydWN0dXJlLAorPHNwYW4gY2xhc3M9InRlcm0iPmVsZW1lbnRzPC9zcGFuPiwgYW5kIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KK2F0dHJpYnV0ZXM8L3NwYW4+IHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIGluIGEgZG9jdW1lbnQgdGhhdAorY29tcGxpZXMgdG8gdGhlIERURC48L2RkPgorCis8ZHQ+RG9jdW1lbnQ8L2R0PgorCis8ZGQ+QSBkb2N1bWVudCBpcyBhIHN0cmVhbSBvZiBkYXRhIHRoYXQsIGFmdGVyIGJlaW5nIGNvbWJpbmVkCit3aXRoIGFueSBvdGhlciBzdHJlYW1zIGl0IHJlZmVyZW5jZXMsIGlzIHN0cnVjdHVyZWQgc3VjaCB0aGF0IGl0Citob2xkcyBpbmZvcm1hdGlvbiBjb250YWluZWQgd2l0aGluIDxzcGFuIGNsYXNzPSJ0ZXJtIj4KK2VsZW1lbnRzPC9zcGFuPiB0aGF0IGFyZSBvcmdhbml6ZWQgYXMgZGVmaW5lZCBpbiB0aGUgYXNzb2NpYXRlZAorPHNwYW4gY2xhc3M9InRlcm0iPkRURDwvc3Bhbj4uIFNlZSA8YSBocmVmPSIjZG9jY29uZiI+RG9jdW1lbnQKK0NvbmZvcm1hbmNlPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L2RkPgorCis8ZHQ+RWxlbWVudDwvZHQ+CisKKzxkZD5BbiBlbGVtZW50IGlzIGEgZG9jdW1lbnQgc3RydWN0dXJpbmcgdW5pdCBkZWNsYXJlZCBpbiB0aGUKKzxzcGFuIGNsYXNzPSJ0ZXJtIj5EVEQ8L3NwYW4+LiBUaGUgZWxlbWVudCdzIGNvbnRlbnQgbW9kZWwgaXMKK2RlZmluZWQgaW4gdGhlIDxzcGFuIGNsYXNzPSJ0ZXJtIj5EVEQ8L3NwYW4+LCBhbmQgYWRkaXRpb25hbAorc2VtYW50aWNzIG1heSBiZSBkZWZpbmVkIGluIHRoZSBwcm9zZSBkZXNjcmlwdGlvbiBvZiB0aGUKK2VsZW1lbnQuPC9kZD4KKworPGR0PjxhIG5hbWU9ImZhY2lsaXRpZXMiIGlkPSJmYWNpbGl0aWVzIj5GYWNpbGl0aWVzPC9hPjwvZHQ+CisKKzxkZD5GdW5jdGlvbmFsaXR5IGluY2x1ZGVzIDxzcGFuIGNsYXNzPSJ0ZXJtIj5lbGVtZW50czwvc3Bhbj4sCis8c3BhbiBjbGFzcz0idGVybSI+YXR0cmlidXRlczwvc3Bhbj4sIGFuZCB0aGUgc2VtYW50aWNzCithc3NvY2lhdGVkIHdpdGggdGhvc2UgPHNwYW4gY2xhc3M9InRlcm0iPmVsZW1lbnRzPC9zcGFuPiBhbmQKKzxzcGFuIGNsYXNzPSJ0ZXJtIj5hdHRyaWJ1dGVzPC9zcGFuPi4gQW4gaW1wbGVtZW50YXRpb24KK3N1cHBvcnRpbmcgdGhhdCBmdW5jdGlvbmFsaXR5IGlzIHNhaWQgdG8gcHJvdmlkZSB0aGUgbmVjZXNzYXJ5CitmYWNpbGl0aWVzLjwvZGQ+CisKKzxkdD5JbXBsZW1lbnRhdGlvbjwvZHQ+CisKKzxkZD5BbiBpbXBsZW1lbnRhdGlvbiBpcyBhIHN5c3RlbSB0aGF0IHByb3ZpZGVzIGNvbGxlY3Rpb24gb2YKKzxzcGFuIGNsYXNzPSJ0ZXJtIj5mYWNpbGl0aWVzPC9zcGFuPiBhbmQgc2VydmljZXMgdGhhdCBzdXBwb3J0cwordGhpcyBzcGVjaWZpY2F0aW9uLiBTZWUgPGEgaHJlZj0iI3VhY29uZiI+VXNlciBBZ2VudAorQ29uZm9ybWFuY2U8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uLjwvZGQ+CisKKzxkdD5QYXJzaW5nPC9kdD4KKworPGRkPlBhcnNpbmcgaXMgdGhlIGFjdCB3aGVyZWJ5IGEgPHNwYW4gY2xhc3M9InRlcm0iPgorZG9jdW1lbnQ8L3NwYW4+IGlzIHNjYW5uZWQsIGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIHdpdGhpbgordGhlIDxzcGFuIGNsYXNzPSJ0ZXJtIj5kb2N1bWVudDwvc3Bhbj4gaXMgZmlsdGVyZWQgaW50byB0aGUKK2NvbnRleHQgb2YgdGhlIDxzcGFuIGNsYXNzPSJ0ZXJtIj5lbGVtZW50czwvc3Bhbj4gaW4gd2hpY2ggdGhlCitpbmZvcm1hdGlvbiBpcyBzdHJ1Y3R1cmVkLjwvZGQ+CisKKzxkdD5SZW5kZXJpbmc8L2R0PgorCis8ZGQ+UmVuZGVyaW5nIGlzIHRoZSBhY3Qgd2hlcmVieSB0aGUgaW5mb3JtYXRpb24gaW4gYSA8c3BhbgorY2xhc3M9InRlcm0iPmRvY3VtZW50PC9zcGFuPiBpcyBwcmVzZW50ZWQuIFRoaXMgcHJlc2VudGF0aW9uIGlzCitkb25lIGluIHRoZSBmb3JtIG1vc3QgYXBwcm9wcmlhdGUgdG8gdGhlIGVudmlyb25tZW50IChlLmcuCithdXJhbGx5LCB2aXN1YWxseSwgaW4gcHJpbnQpLjwvZGQ+CisKKzxkdD5Vc2VyIEFnZW50PC9kdD4KKworPGRkPkEgdXNlciBhZ2VudCBpcyBhbiA8c3BhbiBjbGFzcz0idGVybSI+aW1wbGVtZW50YXRpb248L3NwYW4+Cit0aGF0IHJldHJpZXZlcyBhbmQgcHJvY2Vzc2VzIFhIVE1MIGRvY3VtZW50cy4gU2VlIDxhIGhyZWY9CisiI3VhY29uZiI+VXNlciBBZ2VudCBDb25mb3JtYW5jZTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9kZD4KKworPGR0PlZhbGlkYXRpb248L2R0PgorCis8ZGQ+VmFsaWRhdGlvbiBpcyBhIHByb2Nlc3Mgd2hlcmVieSA8c3BhbiBjbGFzcz0idGVybSI+Citkb2N1bWVudHM8L3NwYW4+IGFyZSB2ZXJpZmllZCBhZ2FpbnN0IHRoZSBhc3NvY2lhdGVkIDxzcGFuIGNsYXNzPSAKKyJ0ZXJtIj5EVEQ8L3NwYW4+LCBlbnN1cmluZyB0aGF0IHRoZSBzdHJ1Y3R1cmUsIHVzZSBvZiA8c3BhbgorY2xhc3M9InRlcm0iPmVsZW1lbnRzPC9zcGFuPiwgYW5kIHVzZSBvZiA8c3BhbiBjbGFzcz0idGVybSI+CithdHRyaWJ1dGVzPC9zcGFuPiBhcmUgY29uc2lzdGVudCB3aXRoIHRoZSBkZWZpbml0aW9ucyBpbiB0aGUKKzxzcGFuIGNsYXNzPSJ0ZXJtIj5EVEQ8L3NwYW4+LjwvZGQ+CisKKzxkdD48YSBuYW1lPSJ3ZWxsZm9ybWVkIiBpZD0id2VsbGZvcm1lZCI+V2VsbC1mb3JtZWQ8L2E+PC9kdD4KKworPGRkPkEgPHNwYW4gY2xhc3M9InRlcm0iPmRvY3VtZW50PC9zcGFuPiBpcyB3ZWxsLWZvcm1lZCB3aGVuIGl0CitpcyBzdHJ1Y3R1cmVkIGFjY29yZGluZyB0byB0aGUgcnVsZXMgZGVmaW5lZCBpbiA8YSBocmVmPSAKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI3NlYy13ZWxsLWZvcm1lZCI+U2VjdGlvbiAyLjE8L2E+IG9mCit0aGUgWE1MIDEuMCBSZWNvbW1lbmRhdGlvbiA8YSBocmVmPSIjcmVmLXhtbCI+W1hNTF08L2E+LgorQmFzaWNhbGx5LCB0aGlzIGRlZmluaXRpb24gc3RhdGVzIHRoYXQgZWxlbWVudHMsIGRlbGltaXRlZCBieQordGhlaXIgc3RhcnQgYW5kIGVuZCB0YWdzLCBhcmUgbmVzdGVkIHByb3Blcmx5IHdpdGhpbiBvbmUKK2Fub3RoZXIuPC9kZD4KKzwvZGw+CisKKzwhLS1PZGRQYWdlLS0+Cis8aDE+PGEgbmFtZT0ibm9ybWF0aXZlIiBpZD0ibm9ybWF0aXZlIj4zLiBOb3JtYXRpdmUgRGVmaW5pdGlvbiBvZgorWEhUTUwgMS4wPC9hPjwvaDE+CisKKzxoMj48YSBuYW1lPSJkb2Njb25mIiBpZD0iZG9jY29uZiI+My4xIERvY3VtZW50CitDb25mb3JtYW5jZTwvYT48L2gyPgorCis8cD5UaGlzIHZlcnNpb24gb2YgWEhUTUwgcHJvdmlkZXMgYSBkZWZpbml0aW9uIG9mIHN0cmljdGx5Citjb25mb3JtaW5nIFhIVE1MIGRvY3VtZW50cywgd2hpY2ggYXJlIHJlc3RyaWN0ZWQgdG8gdGFncyBhbmQKK2F0dHJpYnV0ZXMgZnJvbSB0aGUgWEhUTUwgbmFtZXNwYWNlLiBTZWUgPGEgaHJlZj0KKyIjd2VsbC1mb3JtZWQiPlNlY3Rpb24gMy4xLjI8L2E+IGZvciBpbmZvcm1hdGlvbiBvbiB1c2luZyBYSFRNTAord2l0aCBvdGhlciBuYW1lc3BhY2VzLCBmb3IgaW5zdGFuY2UsIHRvIGluY2x1ZGUgbWV0YWRhdGEKK2V4cHJlc3NlZCBpbiA8YWJiciB0aXRsZT0iUmVzb3VyY2UgRGVzY3JpcHRpb24gRm9ybWF0Ij5SREY8L2FiYnI+IHdpdGhpbiBYSFRNTCBkb2N1bWVudHMuPC9wPgorCis8aDM+PGEgbmFtZT0ic3RyaWN0IiBpZD0ic3RyaWN0Ij4zLjEuMSBTdHJpY3RseSBDb25mb3JtaW5nCitEb2N1bWVudHM8L2E+PC9oMz4KKworPHA+QSBTdHJpY3RseSBDb25mb3JtaW5nIFhIVE1MIERvY3VtZW50IGlzIGEgZG9jdW1lbnQgdGhhdAorcmVxdWlyZXMgb25seSB0aGUgZmFjaWxpdGllcyBkZXNjcmliZWQgYXMgbWFuZGF0b3J5IGluIHRoaXMKK3NwZWNpZmljYXRpb24uIFN1Y2ggYSBkb2N1bWVudCBtdXN0IG1lZXQgYWxsIG9mIHRoZSBmb2xsb3dpbmcKK2NyaXRlcmlhOjwvcD4KKworPG9sPgorPGxpPgorPHA+SXQgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSBvZiB0aGUgdGhyZWUgRFREcyBmb3VuZCBpbiA8YQoraHJlZj0iI2R0ZHMiPkFwcGVuZGl4JiMxNjA7QTwvYT4uPC9wPgorPC9saT4KKworPGxpPgorPHA+VGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgbXVzdCBiZSA8Y29kZT4KKyZsdDtodG1sJmd0OzwvY29kZT4uPC9wPgorPC9saT4KKworPGxpPgorPHA+VGhlIHJvb3QgZWxlbWVudCBvZiB0aGUgZG9jdW1lbnQgbXVzdCBkZXNpZ25hdGUgdGhlIFhIVE1MCituYW1lc3BhY2UgdXNpbmcgdGhlIDxjb2RlPnhtbG5zPC9jb2RlPiBhdHRyaWJ1dGUgPGEgaHJlZj0gCisiI3JlZi14bWxucyI+W1hNTE5BTUVTXTwvYT4uIFRoZSBuYW1lc3BhY2UgZm9yIFhIVE1MIGlzCitkZWZpbmVkIHRvIGJlIAorPGNvZGU+aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbDwvY29kZT4uPC9wPgorPC9saT4KKworPGxpPgorPHA+VGhlcmUgbXVzdCBiZSBhIERPQ1RZUEUgZGVjbGFyYXRpb24gaW4gdGhlIGRvY3VtZW50IHByaW9yIHRvCit0aGUgcm9vdCBlbGVtZW50LiBUaGUgcHVibGljIGlkZW50aWZpZXIgaW5jbHVkZWQgaW4KK3RoZSBET0NUWVBFIGRlY2xhcmF0aW9uIG11c3QgcmVmZXJlbmNlIG9uZSBvZiB0aGUgdGhyZWUgRFREcworZm91bmQgaW4gPGEgaHJlZj0iI2R0ZHMiPkFwcGVuZGl4JiMxNjA7QTwvYT4gdXNpbmcgdGhlIHJlc3BlY3RpdmUKK0Zvcm1hbCBQdWJsaWMgSWRlbnRpZmllci4gVGhlIHN5c3RlbSBpZGVudGlmaWVyIG1heSBiZSBjaGFuZ2VkIHRvIHJlZmxlY3QKK2xvY2FsIHN5c3RlbSBjb252ZW50aW9ucy48L3A+CisKKzxwcmU+CismbHQ7IURPQ1RZUEUgaHRtbCAKKyAgICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFIteGh0bWwxLTE5OTkxMjEwL0RURC94aHRtbDEtc3RyaWN0LmR0ZCZndDsKKworJmx0OyFET0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1BSLXhodG1sMS0xOTk5MTIxMC9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQmZ3Q7CisKKyZsdDshRE9DVFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBGcmFtZXNldC8vRU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1BSLXhodG1sMS0xOTk5MTIxMC9EVEQveGh0bWwxLWZyYW1lc2V0LmR0ZCZndDsKKzwvcHJlPgorPC9saT4KKzwvb2w+CisKKzxwPkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIG1pbmltYWwgWEhUTUwgZG9jdW1lbnQuPC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwcmU+CismbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Jmd0OworJmx0OyFET0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFIteGh0bWwxLTE5OTkxMjEwL0RURC94aHRtbDEtc3RyaWN0LmR0ZCImZ3Q7CismbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiImZ3Q7CisgICZsdDtoZWFkJmd0OworICAgICZsdDt0aXRsZSZndDtWaXJ0dWFsIExpYnJhcnkmbHQ7L3RpdGxlJmd0OworICAmbHQ7L2hlYWQmZ3Q7CisgICZsdDtib2R5Jmd0OworICAgICZsdDtwJmd0O01vdmVkIHRvICZsdDthIGhyZWY9Imh0dHA6Ly92bGliLm9yZy8iJmd0O3ZsaWIub3JnJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CisgICZsdDsvYm9keSZndDsKKyZsdDsvaHRtbCZndDs8L3ByZT4KKzwvZGl2PgorCis8cD5Ob3RlIHRoYXQgaW4gdGhpcyBleGFtcGxlLCB0aGUgWE1MIGRlY2xhcmF0aW9uIGlzIGluY2x1ZGVkLiBBbiBYTUwKK2RlY2xhcmF0aW9uIGxpa2UgdGhlIG9uZSBhYm92ZSBpcworbm90IHJlcXVpcmVkIGluIGFsbCBYTUwgZG9jdW1lbnRzLiBYSFRNTCBkb2N1bWVudCBhdXRob3JzIGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIHVzZSBYTUwgZGVjbGFyYXRpb25zIGluIGFsbCB0aGVpciBkb2N1bWVudHMuIFN1Y2ggYSBkZWNsYXJhdGlvbiBpcyByZXF1aXJlZAord2hlbiB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIHRoZSBkb2N1bWVudCBpcyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0IFVURi04IG9yCitVVEYtMTYuPC9wPgorCis8aDM+PGEgbmFtZT0id2VsbC1mb3JtZWQiIGlkPSJ3ZWxsLWZvcm1lZCI+My4xLjIgVXNpbmcgWEhUTUwgd2l0aAorb3RoZXIgbmFtZXNwYWNlczwvYT48L2gzPgorCis8cD5UaGUgWEhUTUwgbmFtZXNwYWNlIG1heSBiZSB1c2VkIHdpdGggb3RoZXIgWE1MIG5hbWVzcGFjZXMKK2FzIHBlciA8YSBocmVmPSIjcmVmLXhtbG5zIj5bWE1MTkFNRVNdPC9hPiwgYWx0aG91Z2ggc3VjaAorZG9jdW1lbnRzIGFyZSBub3Qgc3RyaWN0bHkgY29uZm9ybWluZyBYSFRNTCAxLjAgZG9jdW1lbnRzIGFzCitkZWZpbmVkIGFib3ZlLiBGdXR1cmUgd29yayBieSBXM0Mgd2lsbCBhZGRyZXNzIHdheXMgdG8gc3BlY2lmeQorY29uZm9ybWFuY2UgZm9yIGRvY3VtZW50cyBpbnZvbHZpbmcgbXVsdGlwbGUgbmFtZXNwYWNlcy48L3A+CisKKzxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyB0aGUgd2F5IGluIHdoaWNoIFhIVE1MIDEuMCBjb3VsZAorYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBNYXRoTUwgUmVjb21tZW5kYXRpb246PC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwcmU+CismbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiImZ3Q7CisgICZsdDtoZWFkJmd0OworICAgICZsdDt0aXRsZSZndDtBIE1hdGggRXhhbXBsZSZsdDsvdGl0bGUmZ3Q7CisgICZsdDsvaGVhZCZndDsKKyAgJmx0O2JvZHkmZ3Q7CisgICAgJmx0O3AmZ3Q7VGhlIGZvbGxvd2luZyBpcyBNYXRoTUwgbWFya3VwOiZsdDsvcCZndDsKKyAgICAmbHQ7bWF0aCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCImZ3Q7CisgICAgICAmbHQ7YXBwbHkmZ3Q7ICZsdDtsb2cvJmd0OworICAgICAgICAmbHQ7bG9nYmFzZSZndDsKKyAgICAgICAgICAmbHQ7Y24mZ3Q7IDMgJmx0Oy9jbiZndDsKKyAgICAgICAgJmx0Oy9sb2diYXNlJmd0OworICAgICAgICAmbHQ7Y2kmZ3Q7IHggJmx0Oy9jaSZndDsKKyAgICAgICZsdDsvYXBwbHkmZ3Q7CisgICAgJmx0Oy9tYXRoJmd0OworICAmbHQ7L2JvZHkmZ3Q7CismbHQ7L2h0bWwmZ3Q7Cis8L3ByZT4KKzwvZGl2PgorCis8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgdGhlIHdheSBpbiB3aGljaCBYSFRNTCAxLjAgbWFya3VwCitjb3VsZCBiZSBpbmNvcnBvcmF0ZWQgaW50byBhbm90aGVyIFhNTCBuYW1lc3BhY2U6PC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwcmU+CismbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Jmd0OworJmx0OyEtLSBpbml0aWFsbHksIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBpcyAiYm9va3MiIC0tJmd0OworJmx0O2Jvb2sgeG1sbnM9J3Vybjpsb2MuZ292OmJvb2tzJworICAgIHhtbG5zOmlzYm49J3VybjpJU0JOOjAtMzk1LTM2MzQxLTYnIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iJmd0OworICAmbHQ7dGl0bGUmZ3Q7Q2hlYXBlciBieSB0aGUgRG96ZW4mbHQ7L3RpdGxlJmd0OworICAmbHQ7aXNibjpudW1iZXImZ3Q7MTU2ODQ5MTM3OSZsdDsvaXNibjpudW1iZXImZ3Q7CisgICZsdDtub3RlcyZndDsKKyAgICAmbHQ7IS0tIG1ha2UgSFRNTCB0aGUgZGVmYXVsdCBuYW1lc3BhY2UgZm9yIGEgaHlwZXJ0ZXh0IGNvbW1lbnRhcnkgLS0mZ3Q7CisgICAgJmx0O3AgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnJmd0OworICAgICAgICBUaGlzIGlzIGFsc28gYXZhaWxhYmxlICZsdDthIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLyImZ3Q7b25saW5lJmx0Oy9hJmd0Oy4KKyAgICAmbHQ7L3AmZ3Q7CisgICZsdDsvbm90ZXMmZ3Q7CismbHQ7L2Jvb2smZ3Q7Cis8L3ByZT4KKzwvZGl2PgorCis8aDI+PGEgbmFtZT0idWFjb25mIiBpZD0idWFjb25mIj4zLjIgVXNlciBBZ2VudAorQ29uZm9ybWFuY2U8L2E+PC9oMj4KKworPHA+QSBjb25mb3JtaW5nIHVzZXIgYWdlbnQgbXVzdCBtZWV0IGFsbCBvZiB0aGUgZm9sbG93aW5nCitjcml0ZXJpYTo8L3A+CisKKzxvbD4KKzxsaT5JbiBvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFhNTCAxLjAgUmVjb21tZW5kYXRpb24gPGEKK2hyZWY9IiNyZWYteG1sIj5bWE1MXTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgcGFyc2UgYW5kIGV2YWx1YXRlCithbiBYSFRNTCBkb2N1bWVudCBmb3Igd2VsbC1mb3JtZWRuZXNzLiBJZiB0aGUgdXNlciBhZ2VudCBjbGFpbXMKK3RvIGJlIGEgdmFsaWRhdGluZyB1c2VyIGFnZW50LCBpdCBtdXN0IGFsc28gdmFsaWRhdGUgZG9jdW1lbnRzCithZ2FpbnN0IHRoZWlyIHJlZmVyZW5jZWQgRFREcyBhY2NvcmRpbmcgdG8gPGEgaHJlZj0iI3JlZi14bWwiPgorW1hNTF08L2E+LjwvbGk+CisKKzxsaT5XaGVuIHRoZSB1c2VyIGFnZW50IGNsYWltcyB0byBzdXBwb3J0IDxhIGhyZWY9IiNmYWNpbGl0aWVzIj4KK2ZhY2lsaXRpZXM8L2E+IGRlZmluZWQgd2l0aGluIHRoaXMgc3BlY2lmaWNhdGlvbiBvciByZXF1aXJlZCBieQordGhpcyBzcGVjaWZpY2F0aW9uIHRocm91Z2ggbm9ybWF0aXZlIHJlZmVyZW5jZSwgaXQgbXVzdCBkbyBzbyBpbgord2F5cyBjb25zaXN0ZW50IHdpdGggdGhlIGZhY2lsaXRpZXMnIGRlZmluaXRpb24uPC9saT4KKworPGxpPldoZW4gYSB1c2VyIGFnZW50IHByb2Nlc3NlcyBhbiBYSFRNTCBkb2N1bWVudCBhcyBnZW5lcmljIFhNTCwKK2l0IHNoYWxsIG9ubHkgcmVjb2duaXplIGF0dHJpYnV0ZXMgb2YgdHlwZQorPGNvZGU+SUQ8L2NvZGU+IChlLmcuIHRoZSA8Y29kZT5pZDwvY29kZT4gYXR0cmlidXRlIG9uIG1vc3QgWEhUTUwgZWxlbWVudHMpCithcyBmcmFnbWVudCBpZGVudGlmaWVycy48L2xpPgorCis8bGk+SWYgYSB1c2VyIGFnZW50IGVuY291bnRlcnMgYW4gZWxlbWVudCBpdCBkb2VzIG5vdCByZWNvZ25pemUsCitpdCBtdXN0IHJlbmRlciB0aGUgZWxlbWVudCdzIGNvbnRlbnQuPC9saT4KKworPGxpPklmIGEgdXNlciBhZ2VudCBlbmNvdW50ZXJzIGFuIGF0dHJpYnV0ZSBpdCBkb2VzIG5vdAorcmVjb2duaXplLCBpdCBtdXN0IGlnbm9yZSB0aGUgZW50aXJlIGF0dHJpYnV0ZSBzcGVjaWZpY2F0aW9uCisoaS5lLiwgdGhlIGF0dHJpYnV0ZSBhbmQgaXRzIHZhbHVlKS48L2xpPgorCis8bGk+SWYgYSB1c2VyIGFnZW50IGVuY291bnRlcnMgYW4gYXR0cmlidXRlIHZhbHVlIGl0IGRvZXNuJ3QKK3JlY29nbml6ZSwgaXQgbXVzdCB1c2UgdGhlIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlLjwvbGk+CisKKzxsaT5JZiBpdCBlbmNvdW50ZXJzIGFuIGVudGl0eSByZWZlcmVuY2UgKG90aGVyIHRoYW4gb25lCitvZiB0aGUgcHJlZGVmaW5lZCBlbnRpdGllcykgZm9yIHdoaWNoIHRoZSBVc2VyIEFnZW50IGhhcyAKK3Byb2Nlc3NlZCBubyBkZWNsYXJhdGlvbiAod2hpY2ggY291bGQgaGFwcGVuIGlmIHRoZSBkZWNsYXJhdGlvbgoraXMgaW4gdGhlIGV4dGVybmFsIHN1YnNldCB3aGljaCB0aGUgVXNlciBBZ2VudCBoYXNuJ3QgcmVhZCksIHRoZSBlbnRpdHkgCityZWZlcmVuY2Ugc2hvdWxkIGJlIHJlbmRlcmVkIGFzIHRoZSBjaGFyYWN0ZXJzIChzdGFydGluZword2l0aCB0aGUgYW1wZXJzYW5kIGFuZCBlbmRpbmcgd2l0aCB0aGUgc2VtaS1jb2xvbikgdGhhdAorbWFrZSB1cCB0aGUgZW50aXR5IHJlZmVyZW5jZS48L2xpPgorCis8bGk+V2hlbiByZW5kZXJpbmcgY29udGVudCwgVXNlciBBZ2VudHMgdGhhdCBlbmNvdW50ZXIgCitjaGFyYWN0ZXJzIG9yIGNoYXJhY3RlciBlbnRpdHkgcmVmZXJlbmNlcyB0aGF0IGFyZSByZWNvZ25pemVkIGJ1dCBub3QgcmVuZGVyYWJsZSBzaG91bGQgZGlzcGxheSB0aGUgZG9jdW1lbnQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGlzIG9idmlvdXMgdG8gdGhlIHVzZXIgdGhhdCBub3JtYWwgcmVuZGVyaW5nIGhhcyBub3QgdGFrZW4gcGxhY2UuPC9saT4KKworPGxpPgorVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIFtYTUxdIGFzIHdoaXRlc3BhY2UgY2hhcmFjdGVyczoKKworPHVsPgorPGxpPlNwYWNlICgmYW1wOyN4MDAyMDspPC9saT4KKzxsaT5UYWIgKCZhbXA7I3gwMDA5Oyk8L2xpPgorPGxpPkNhcnJpYWdlIHJldHVybiAoJmFtcDsjeDAwMEQ7KTwvbGk+Cis8bGk+TGluZSBmZWVkICgmYW1wOyN4MDAwQTspPC9saT4KKzwvdWw+CisKKzxwPgorVGhlIFhNTCBwcm9jZXNzb3Igbm9ybWFsaXplcyBkaWZmZXJlbnQgc3lzdGVtJ3MgbGluZSBlbmQgY29kZXMgaW50byBvbmUKK3NpbmdsZSBsaW5lLWZlZWQgY2hhcmFjdGVyLCB0aGF0IGlzIHBhc3NlZCB1cCB0byB0aGUgYXBwbGljYXRpb24uIFRoZSBYSFRNTAordXNlciBhZ2VudCBpbiBhZGRpdGlvbiwgbXVzdCB0cmVhdCB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgYXMgd2hpdGVzcGFjZToKKzwvcD4KKworPHVsPgorPGxpPkZvcm0gZmVlZCAoJmFtcDsjeDAwMEM7KTwvbGk+Cis8bGk+WmVyby13aWR0aCBzcGFjZSAoJmFtcDsjeDIwMEI7KTwvbGk+Cis8L3VsPgorCis8cD4KK0luIGVsZW1lbnRzIHdoZXJlIHRoZSAneG1sOnNwYWNlJyBhdHRyaWJ1dGUgaXMgc2V0IHRvICdwcmVzZXJ2ZScsIHRoZSB1c2VyCithZ2VudCBtdXN0IGxlYXZlIGFsbCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW50YWN0ICh3aXRoIHRoZSBleGNlcHRpb24gb2YKK2xlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycywgd2hpY2ggc2hvdWxkIGJlIHJlbW92ZWQpLgorT3RoZXJ3aXNlLCB3aGl0ZXNwYWNlCitpcyBoYW5kbGVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHJ1bGVzOgorPC9wPgorCis8dWw+Cis8bGk+CitBbGwgd2hpdGVzcGFjZSBzdXJyb3VuZGluZyBibG9jayBlbGVtZW50cyBzaG91bGQgYmUgcmVtb3ZlZC4KKzwvbGk+Cis8bGk+CitDb21tZW50cyBhcmUgcmVtb3ZlZCBlbnRpcmVseSBhbmQgZG8gbm90IGFmZmVjdCB3aGl0ZXNwYWNlIGhhbmRsaW5nLiBPbmUKK3doaXRlc3BhY2UgY2hhcmFjdGVyIG9uIGVpdGhlciBzaWRlIG9mIGEgY29tbWVudCBpcyB0cmVhdGVkIGFzIHR3byB3aGl0ZQorc3BhY2UgY2hhcmFjdGVycy4KKzwvbGk+Cis8bGk+CitMZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGluc2lkZSBhIGJsb2NrIGVsZW1lbnQgbXVzdCBiZSByZW1vdmVkLgorPC9saT4KKzxsaT5MaW5lIGZlZWQgY2hhcmFjdGVycyB3aXRoaW4gYSBibG9jayBlbGVtZW50IG11c3QgYmUgY29udmVydGVkIGludG8gYQorc3BhY2UgKGV4Y2VwdCB3aGVuIHRoZSAneG1sOnNwYWNlJyBhdHRyaWJ1dGUgaXMgc2V0IHRvICdwcmVzZXJ2ZScpLgorPC9saT4KKzxsaT4KK0Egc2VxdWVuY2Ugb2Ygd2hpdGUgc3BhY2UgY2hhcmFjdGVycyBtdXN0IGJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgc3BhY2UKK2NoYXJhY3RlciAoZXhjZXB0IHdoZW4gdGhlICd4bWw6c3BhY2UnIGF0dHJpYnV0ZSBpcyBzZXQgdG8gJ3ByZXNlcnZlJykuCis8L2xpPgorPGxpPgorV2l0aCByZWdhcmQgdG8gcmVuZGl0aW9uLAordGhlIFVzZXIgQWdlbnQgc2hvdWxkIHJlbmRlciB0aGUgY29udGVudCBpbiBhCittYW5uZXIgYXBwcm9wcmlhdGUgdG8gdGhlIGxhbmd1YWdlIGluIHdoaWNoIHRoZSBjb250ZW50IGlzIHdyaXR0ZW4uCitJbiBsYW5ndWFnZXMgd2hvc2UgcHJpbWFyeSBzY3JpcHQgaXMgTGF0aW5hdGUsIHRoZSBBU0NJSSBzcGFjZQorY2hhcmFjdGVyIGlzIHR5cGljYWxseSB1c2VkIHRvIGVuY29kZSBib3RoIGdyYW1tYXRpY2FsIHdvcmQgYm91bmRhcmllcyBhbmQKK3R5cG9ncmFwaGljIHdoaXRlc3BhY2U7IGluIGxhbmd1YWdlcyB3aG9zZSBzY3JpcHQgaXMgcmVsYXRlZCB0byBOYWdhcmkKKyhlLmcuLCBTYW5za3JpdCwgVGhhaSwgZXRjLiksIGdyYW1tYXRpY2FsIGJvdW5kYXJpZXMgbWF5IGJlIGVuY29kZWQgdXNpbmcKK3RoZSBaVyAnc3BhY2UnIGNoYXJhY3RlciwgYnV0IHdpbGwgbm90IHR5cGljYWxseSBiZSByZXByZXNlbnRlZCBieQordHlwb2dyYXBoaWMgd2hpdGVzcGFjZSBpbiByZW5kZXJlZCBvdXRwdXQ7IGxhbmd1YWdlcyB1c2luZyBBcmFiaWZvcm0gc2NyaXB0cworbWF5IGVuY29kZSB0eXBvZ3JhcGhpYyB3aGl0ZXNwYWNlIHVzaW5nIGEgc3BhY2UgY2hhcmFjdGVyLCBidXQgbWF5IGFsc28gdXNlCit0aGUgWlcgc3BhY2UgY2hhcmFjdGVyIHRvIGRlbGltaXQgJ2ludGVybmFsJyBncmFtbWF0aWNhbCBib3VuZGFyaWVzICh3aGF0Citsb29rIGxpa2Ugd29yZHMgaW4gQXJhYmljIHRvIGFuIEVuZ2xpc2ggZXllIGZyZXF1ZW50bHkgZW5jb2RlIHNldmVyYWwgd29yZHMsCitlLmcuICdraXRBYnVodW0nID0gJ2tpdEFidS1odW0nID0gJ2Jvb2sgdGhlbScgPT0gdGhlaXIgYm9vayk7IGFuZCBsYW5ndWFnZXMKK2luIHRoZSBDaGluZXNlIHNjcmlwdCB0cmFkaXRpb24gdHlwaWNhbGx5IG5laXRoZXIgZW5jb2RlIHN1Y2ggZGVsaW1pdGVycyBub3IKK3VzZSB0eXBvZ3JhcGhpYyB3aGl0ZXNwYWNlIGluIHRoaXMgd2F5LiAKKzwvbGk+Cis8L3VsPgorCis8cD5XaGl0ZXNwYWNlIGluIGF0dHJpYnV0ZSB2YWx1ZXMgaXMgcHJvY2Vzc2VkIGFjY29yZGluZyB0byA8YQoraHJlZj0iI3JlZi14bWwiPltYTUxdPC9hPi48L3A+Cis8L2xpPgorPC9vbD4KKworPCEtLU9kZFBhZ2UtLT4KKzxoMT48YSBuYW1lPSJkaWZmcyIgaWQ9ImRpZmZzIj40LiBEaWZmZXJlbmNlcyB3aXRoIEhUTUwKKzQuMDwvYT48L2gxPgorCis8cD5EdWUgdG8gdGhlIGZhY3QgdGhhdCBYSFRNTCBpcyBhbiBYTUwgYXBwbGljYXRpb24sIGNlcnRhaW4KK3ByYWN0aWNlcyB0aGF0IHdlcmUgcGVyZmVjdGx5IGxlZ2FsIGluIFNHTUwtYmFzZWQgSFRNTCA0LjAgPGEKK2hyZWY9IiNyZWYtaHRtbDQiPltIVE1MXTwvYT4gbXVzdCBiZSBjaGFuZ2VkLjwvcD4KKworPGgyPjxhIG5hbWU9ImgtNC4xIiBpZD0iaC00LjEiPjQuMSBEb2N1bWVudHMgbXVzdCBiZQord2VsbC1mb3JtZWQ8L2E+PC9oMj4KKworPHA+PGEgaHJlZj0iI3dlbGxmb3JtZWQiPldlbGwtZm9ybWVkbmVzczwvYT4gaXMgYSBuZXcgY29uY2VwdAoraW50cm9kdWNlZCBieSA8YSBocmVmPSIjcmVmLXhtbCI+W1hNTF08L2E+LiBFc3NlbnRpYWxseSB0aGlzCittZWFucyB0aGF0IGFsbCBlbGVtZW50cyBtdXN0IGVpdGhlciBoYXZlIGNsb3NpbmcgdGFncyBvciBiZQord3JpdHRlbiBpbiBhIHNwZWNpYWwgZm9ybSAoYXMgZGVzY3JpYmVkIGJlbG93KSwgYW5kIHRoYXQgYWxsIHRoZQorZWxlbWVudHMgbXVzdCBuZXN0LjwvcD4KKworPHA+QWx0aG91Z2ggb3ZlcmxhcHBpbmcgaXMgaWxsZWdhbCBpbiBTR01MLCBpdCB3YXMgd2lkZWx5Cit0b2xlcmF0ZWQgaW4gZXhpc3RpbmcgYnJvd3NlcnMuPC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwPjxzdHJvbmc+PGVtPkNPUlJFQ1Q6IG5lc3RlZCBlbGVtZW50cy48L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O3AmZ3Q7aGVyZSBpcyBhbiBlbXBoYXNpemVkCismbHQ7ZW0mZ3Q7cGFyYWdyYXBoJmx0Oy9lbSZndDsuJmx0Oy9wJmd0OzwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJiYWQiPgorPHA+PHN0cm9uZz48ZW0+SU5DT1JSRUNUOiBvdmVybGFwcGluZyBlbGVtZW50czwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7cCZndDtoZXJlIGlzIGFuIGVtcGhhc2l6ZWQKKyZsdDtlbSZndDtwYXJhZ3JhcGguJmx0Oy9wJmd0OyZsdDsvZW0mZ3Q7PC9wPgorPC9kaXY+CisKKzxoMj48YSBuYW1lPSJoLTQuMiIgaWQ9ImgtNC4yIj40LjIgRWxlbWVudCBhbmQgYXR0cmlidXRlCituYW1lcyBtdXN0IGJlIGluIGxvd2VyIGNhc2U8L2E+PC9oMj4KKworPHA+WEhUTUwgZG9jdW1lbnRzIG11c3QgdXNlIGxvd2VyIGNhc2UgZm9yIGFsbCBIVE1MIGVsZW1lbnQgYW5kCithdHRyaWJ1dGUgbmFtZXMuIFRoaXMgZGlmZmVyZW5jZSBpcyBuZWNlc3NhcnkgYmVjYXVzZSBYTUwgaXMKK2Nhc2Utc2Vuc2l0aXZlIGUuZy4gJmx0O2xpJmd0OyBhbmQgJmx0O0xJJmd0OyBhcmUgZGlmZmVyZW50Cit0YWdzLjwvcD4KKworPGgyPjxhIG5hbWU9ImgtNC4zIiBpZD0iaC00LjMiPjQuMyBGb3Igbm9uLWVtcHR5IGVsZW1lbnRzLAorZW5kIHRhZ3MgYXJlIHJlcXVpcmVkPC9hPjwvaDI+CisKKzxwPkluIFNHTUwtYmFzZWQgSFRNTCA0LjAgY2VydGFpbiBlbGVtZW50cyB3ZXJlIHBlcm1pdHRlZCB0byBvbWl0Cit0aGUgZW5kIHRhZzsgd2l0aCB0aGUgZWxlbWVudHMgdGhhdCBmb2xsb3dlZCBpbXBseWluZyBjbG9zdXJlLgorVGhpcyBvbWlzc2lvbiBpcyBub3QgcGVybWl0dGVkIGluIFhNTC1iYXNlZCBYSFRNTC4gQWxsIGVsZW1lbnRzCitvdGhlciB0aGFuIHRob3NlIGRlY2xhcmVkIGluIHRoZSBEVEQgYXMgPGNvZGU+RU1QVFk8L2NvZGU+IG11c3QKK2hhdmUgYW4gZW5kIHRhZy48L3A+CisKKzxkaXYgY2xhc3M9Imdvb2QiPgorPHA+PHN0cm9uZz48ZW0+Q09SUkVDVDogdGVybWluYXRlZCBlbGVtZW50czwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7cCZndDtoZXJlIGlzIGEgcGFyYWdyYXBoLiZsdDsvcCZndDsmbHQ7cCZndDtoZXJlIGlzCithbm90aGVyIHBhcmFncmFwaC4mbHQ7L3AmZ3Q7PC9wPgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImJhZCI+Cis8cD48c3Ryb25nPjxlbT5JTkNPUlJFQ1Q6IHVudGVybWluYXRlZCBlbGVtZW50czwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7cCZndDtoZXJlIGlzIGEgcGFyYWdyYXBoLiZsdDtwJmd0O2hlcmUgaXMgYW5vdGhlcgorcGFyYWdyYXBoLjwvcD4KKzwvZGl2PgorCis8aDI+PGEgbmFtZT0iaC00LjQiIGlkPSJoLTQuNCI+NC40IEF0dHJpYnV0ZSB2YWx1ZXMgbXVzdAorYWx3YXlzIGJlIHF1b3RlZDwvYT48L2gyPgorCis8cD5BbGwgYXR0cmlidXRlIHZhbHVlcyBtdXN0IGJlIHF1b3RlZCwgZXZlbiB0aG9zZSB3aGljaCBhcHBlYXIKK3RvIGJlIG51bWVyaWMuPC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwPjxzdHJvbmc+PGVtPkNPUlJFQ1Q6IHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWVzPC9lbT48L3N0cm9uZz48L3A+CisKKzxwPiZsdDt0YWJsZSByb3dzPSIzIiZndDs8L3A+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iYmFkIj4KKzxwPjxzdHJvbmc+PGVtPklOQ09SUkVDVDogdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlczwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7dGFibGUgcm93cz0zJmd0OzwvcD4KKzwvZGl2PgorCis8aDI+PGEgbmFtZT0iaC00LjUiIGlkPSJoLTQuNSI+NC41IEF0dHJpYnV0ZQorTWluaW1pemF0aW9uPC9hPjwvaDI+CisKKzxwPlhNTCBkb2VzIG5vdCBzdXBwb3J0IGF0dHJpYnV0ZSBtaW5pbWl6YXRpb24uIEF0dHJpYnV0ZS12YWx1ZQorcGFpcnMgbXVzdCBiZSB3cml0dGVuIGluIGZ1bGwuIEF0dHJpYnV0ZSBuYW1lcyBzdWNoIGFzIDxjb2RlPgorY29tcGFjdDwvY29kZT4gYW5kIDxjb2RlPmNoZWNrZWQ8L2NvZGU+IGNhbm5vdCBvY2N1ciBpbiBlbGVtZW50cword2l0aG91dCB0aGVpciB2YWx1ZSBiZWluZyBzcGVjaWZpZWQuPC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwPjxzdHJvbmc+PGVtPkNPUlJFQ1Q6IHVubWluaW1pemVkIGF0dHJpYnV0ZXM8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O2RsIGNvbXBhY3Q9ImNvbXBhY3QiJmd0OzwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJiYWQiPgorPHA+PHN0cm9uZz48ZW0+SU5DT1JSRUNUOiBtaW5pbWl6ZWQgYXR0cmlidXRlczwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7ZGwgY29tcGFjdCZndDs8L3A+Cis8L2Rpdj4KKworPGgyPjxhIG5hbWU9ImgtNC42IiBpZD0iaC00LjYiPjQuNiBFbXB0eSBFbGVtZW50czwvYT48L2gyPgorCis8cD5FbXB0eSBlbGVtZW50cyBtdXN0IGVpdGhlciBoYXZlIGFuIGVuZCB0YWcgb3IgdGhlIHN0YXJ0IHRhZyBtdXN0IGVuZCB3aXRoIDxjb2RlPi8mZ3Q7PC9jb2RlPi4gRm9yIGluc3RhbmNlLAorPGNvZGU+Jmx0O2JyLyZndDs8L2NvZGU+IG9yIDxjb2RlPiZsdDtociZndDsmbHQ7L2hyJmd0OzwvY29kZT4uIFNlZSA8YQoraHJlZj0iI2d1aWRlbGluZXMiPkhUTUwgQ29tcGF0aWJpbGl0eSBHdWlkZWxpbmVzPC9hPiBmb3IgaW5mb3JtYXRpb24gb24gd2F5cyB0bworZW5zdXJlIHRoaXMgaXMgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIEhUTUwgNC4wIHVzZXIgYWdlbnRzLjwvcD4KKworPGRpdiBjbGFzcz0iZ29vZCI+Cis8cD48c3Ryb25nPjxlbT5DT1JSRUNUOiB0ZXJtaW5hdGVkIGVtcHR5IHRhZ3M8L2VtPjwvc3Ryb25nPjwvcD4KKworPHA+Jmx0O2JyLyZndDsmbHQ7aHIvJmd0OzwvcD4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJiYWQiPgorPHA+PHN0cm9uZz48ZW0+SU5DT1JSRUNUOiB1bnRlcm1pbmF0ZWQgZW1wdHkgdGFnczwvZW0+PC9zdHJvbmc+PC9wPgorCis8cD4mbHQ7YnImZ3Q7Jmx0O2hyJmd0OzwvcD4KKzwvZGl2PgorCis8aDI+PGEgbmFtZT0iaC00LjciIGlkPSJoLTQuNyI+NC43IFdoaXRlc3BhY2UgaGFuZGxpbmcgaW4KK2F0dHJpYnV0ZSB2YWx1ZXM8L2E+PC9oMj4KKworPHA+SW4gYXR0cmlidXRlIHZhbHVlcywgdXNlciBhZ2VudHMgd2lsbCBzdHJpcCBsZWFkaW5nIGFuZAordHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tIGF0dHJpYnV0ZSB2YWx1ZXMgYW5kIG1hcCBzZXF1ZW5jZXMKK29mIG9uZSBvciBtb3JlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyAoaW5jbHVkaW5nIGxpbmUgYnJlYWtzKSB0bworYSBzaW5nbGUgaW50ZXItd29yZCBzcGFjZSAoYW4gQVNDSUkgc3BhY2UgY2hhcmFjdGVyIGZvciB3ZXN0ZXJuCitzY3JpcHRzKS4gU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjQVZOb3JtYWxpemUiPgorU2VjdGlvbiAzLjMuMzwvYT4gb2YgPGEgaHJlZj0iI3JlZi14bWwiPltYTUxdPC9hPi48L3A+CisKKzxoMj48YSBuYW1lPSJoLTQuOCIgaWQ9ImgtNC44Ij40LjggU2NyaXB0IGFuZCBTdHlsZQorZWxlbWVudHM8L2E+PC9oMj4KKworPHA+SW4gWEhUTUwsIHRoZSBzY3JpcHQgYW5kIHN0eWxlIGVsZW1lbnRzIGFyZSBkZWNsYXJlZCBhcyBoYXZpbmcKKzxjb2RlPiNQQ0RBVEE8L2NvZGU+IGNvbnRlbnQuIEFzIGEgcmVzdWx0LCA8Y29kZT4mbHQ7PC9jb2RlPiBhbmQKKzxjb2RlPiZhbXA7PC9jb2RlPiB3aWxsIGJlIHRyZWF0ZWQgYXMgdGhlIHN0YXJ0IG9mIG1hcmt1cCwgYW5kCitlbnRpdGllcyBzdWNoIGFzIDxjb2RlPiZhbXA7bHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDthbXA7PC9jb2RlPgord2lsbCBiZSByZWNvZ25pemVkIGFzIGVudGl0eSByZWZlcmVuY2VzIGJ5IHRoZSBYTUwgcHJvY2Vzc29yIHRvCis8Y29kZT4mbHQ7PC9jb2RlPiBhbmQgPGNvZGU+JmFtcDs8L2NvZGU+IHJlc3BlY3RpdmVseS4gV3JhcHBpbmcKK3RoZSBjb250ZW50IG9mIHRoZSBzY3JpcHQgb3Igc3R5bGUgZWxlbWVudCB3aXRoaW4gYSA8Y29kZT4KK0NEQVRBPC9jb2RlPiBtYXJrZWQgc2VjdGlvbiBhdm9pZHMgdGhlIGV4cGFuc2lvbiBvZiB0aGVzZQorZW50aXRpZXMuPC9wPgorCis8ZGl2IGNsYXNzPSJnb29kIj4KKzxwcmU+CismbHQ7c2NyaXB0Jmd0OworICZsdDshW0NEQVRBWworIC4uLiB1bmVzY2FwZWQgc2NyaXB0IGNvbnRlbnQgLi4uCisgXV0mZ3Q7CisgJmx0Oy9zY3JpcHQmZ3Q7Cis8L3ByZT4KKzwvZGl2PgorCis8cD48Y29kZT5DREFUQTwvY29kZT4gc2VjdGlvbnMgYXJlIHJlY29nbml6ZWQgYnkgdGhlIFhNTAorcHJvY2Vzc29yIGFuZCBhcHBlYXIgYXMgbm9kZXMgaW4gdGhlIERvY3VtZW50IE9iamVjdCBNb2RlbCwgc2VlCis8YSBocmVmPSAKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtRE9NLUxldmVsLTEvbGV2ZWwtb25lLWNvcmUuaHRtbCNJRC1FMDY3RDU5NyI+CitTZWN0aW9uIDEuMzwvYT4gb2YgdGhlIERPTSBMZXZlbCAxIFJlY29tbWVuZGF0aW9uIDxhIGhyZWY9IAorIiNyZWYtZG9tIj5bRE9NXTwvYT4uPC9wPgorCis8cD5BbiBhbHRlcm5hdGl2ZSBpcyB0byB1c2UgZXh0ZXJuYWwgc2NyaXB0IGFuZCBzdHlsZQorZG9jdW1lbnRzLjwvcD4KKworPGgyPjxhIG5hbWU9ImgtNC45IiBpZD0iaC00LjkiPjQuOSBTR01MIGV4Y2x1c2lvbnM8L2E+PC9oMj4KKworPHA+U0dNTCBnaXZlcyB0aGUgd3JpdGVyIG9mIGEgRFREIHRoZSBhYmlsaXR5IHRvIGV4Y2x1ZGUgc3BlY2lmaWMKK2VsZW1lbnRzIGZyb20gYmVpbmcgY29udGFpbmVkIHdpdGhpbiBhbiBlbGVtZW50LiBTdWNoCitwcm9oaWJpdGlvbnMgKGNhbGxlZCAiZXhjbHVzaW9ucyIpIGFyZSBub3QgcG9zc2libGUgaW4gWE1MLjwvcD4KKworPHA+Rm9yIGV4YW1wbGUsIHRoZSBIVE1MIDQuMCBTdHJpY3QgRFREIGZvcmJpZHMgdGhlIG5lc3Rpbmcgb2YgYW4KKyc8Y29kZT5hPC9jb2RlPicgZWxlbWVudCB3aXRoaW4gYW5vdGhlciAnPGNvZGU+YTwvY29kZT4nIGVsZW1lbnQKK3RvIGFueSBkZXNjZW5kYW50IGRlcHRoLiBJdCBpcyBub3QgcG9zc2libGUgdG8gc3BlbGwgb3V0IHN1Y2gKK3Byb2hpYml0aW9ucyBpbiBYTUwuIEV2ZW4gdGhvdWdoIHRoZXNlIHByb2hpYml0aW9ucyBjYW5ub3QgYmUKK2RlZmluZWQgaW4gdGhlIERURCwgY2VydGFpbiBlbGVtZW50cyBzaG91bGQgbm90IGJlIG5lc3RlZC4gQQorc3VtbWFyeSBvZiBzdWNoIGVsZW1lbnRzIGFuZCB0aGUgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGJlCituZXN0ZWQgaW4gdGhlbSBpcyBmb3VuZCBpbiB0aGUgbm9ybWF0aXZlIDxhIGhyZWY9IiNwcm9oaWJpdGlvbnMiPgorQXBwZW5kaXgmIzE2MDtCPC9hPi48L3A+CisKKzxoMj48YSBuYW1lPSJoLTQuMTAiIGlkPSJoLTQuMTAiPjQuMTAgVGhlIGVsZW1lbnRzIHdpdGggJ2lkJyBhbmQgJ25hbWUnCithdHRyaWJ1dGVzPC9hPjwvaDI+CisKKzxwPkhUTUwgNC4wIGRlZmluZWQgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBmb3IgdGhlIGVsZW1lbnRzCis8Y29kZT5hPC9jb2RlPiwKKzxjb2RlPmFwcGxldDwvY29kZT4sIDxjb2RlPmZyYW1lPC9jb2RlPiwKKzxjb2RlPmlmcmFtZTwvY29kZT4sIDxjb2RlPmltZzwvY29kZT4sIGFuZCA8Y29kZT5tYXA8L2NvZGU+LgorSFRNTCA0LjAgYWxzbyBpbnRyb2R1Y2VkCit0aGUgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZS4gQm90aCBvZiB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBkZXNpZ25lZCB0byBiZQordXNlZCBhcyBmcmFnbWVudCBpZGVudGlmaWVycy48L3A+Cis8cD5JbiBYTUwsIGZyYWdtZW50IGlkZW50aWZpZXJzIGFyZSBvZiB0eXBlIDxjb2RlPklEPC9jb2RlPiwgYW5kCit0aGVyZSBjYW4gb25seSBiZSBhIHNpbmdsZSBhdHRyaWJ1dGUgb2YgdHlwZSA8Y29kZT5JRDwvY29kZT4gcGVyIGVsZW1lbnQuCitUaGVyZWZvcmUsIGluIFhIVE1MIDEuMCB0aGUgPGNvZGU+aWQ8L2NvZGU+CithdHRyaWJ1dGUgaXMgZGVmaW5lZCB0byBiZSBvZiB0eXBlIDxjb2RlPklEPC9jb2RlPi4gSW4gb3JkZXIgdG8KK2Vuc3VyZSB0aGF0IFhIVE1MIDEuMCBkb2N1bWVudHMgYXJlIHdlbGwtc3RydWN0dXJlZCBYTUwgZG9jdW1lbnRzLCBYSFRNTCAxLjAKK2RvY3VtZW50cyBNVVNUIHVzZSB0aGUgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZSB3aGVuIGRlZmluaW5nIGZyYWdtZW50CitpZGVudGlmaWVycywgZXZlbiBvbiBlbGVtZW50cyB0aGF0IGhpc3RvcmljYWxseSBoYXZlIGFsc28gaGFkIGEKKzxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4KK1NlZSB0aGUgPGEgaHJlZj0iI2d1aWRlbGluZXMiPkhUTUwgQ29tcGF0aWJpbGl0eQorR3VpZGVsaW5lczwvYT4gZm9yIGluZm9ybWF0aW9uIG9uIGVuc3VyaW5nIHN1Y2ggYW5jaG9ycyBhcmUgYmFja3dhcmRzCitjb21wYXRpYmxlIHdoZW4gc2VydmluZyBYSFRNTCBkb2N1bWVudHMgYXMgbWVkaWEgdHlwZSA8Y29kZT50ZXh0L2h0bWw8L2NvZGU+LgorPC9wPgorPHA+Tm90ZSB0aGF0IGluIFhIVE1MIDEuMCwgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGVzZQorZWxlbWVudHMgaXMgZm9ybWFsbHkgZGVwcmVjYXRlZCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhCitzdWJzZXF1ZW50IHZlcnNpb24gb2YgWEhUTUwuPC9wPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9Imlzc3VlcyIgaWQ9Imlzc3VlcyI+NS4gQ29tcGF0aWJpbGl0eSBJc3N1ZXM8L2E+PC9oMT4KKworPHA+QWx0aG91Z2ggdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgZm9yIFhIVE1MIDEuMCBkb2N1bWVudHMgdG8gYmUKK2NvbXBhdGlibGUgd2l0aCBleGlzdGluZyB1c2VyIGFnZW50cywgaW4gcHJhY3RpY2UgdGhpcyBpcyBlYXN5IHRvCithY2NvbXBsaXNoLiBHdWlkZWxpbmVzIGZvciBjcmVhdGluZyBjb21wYXRpYmxlIGRvY3VtZW50cyBjYW4gYmUKK2ZvdW5kIGluIDxhIGhyZWY9IiNndWlkZWxpbmVzIj5BcHBlbmRpeCYjMTYwO0M8L2E+LjwvcD4KKworPGgyPjxhIG5hbWU9Im1lZGlhIiBpZD0ibWVkaWEiPjUuMSBJbnRlcm5ldCBNZWRpYSBUeXBlPC9hPjwvaDI+Cis8cD5BcyBvZiB0aGUgcHVibGljYXRpb24gb2YgdGhpcyByZWNvbW1lbmRhdGlvbiwgdGhlIGdlbmVyYWwKK3JlY29tbWVuZGVkIE1JTUUgbGFiZWxpbmcgZm9yIFhNTC1iYXNlZCBhcHBsaWNhdGlvbnMKK2hhcyB5ZXQgdG8gYmUgcmVzb2x2ZWQuPC9wPgorCis8cD5Ib3dldmVyLCBYSFRNTCBEb2N1bWVudHMgd2hpY2ggZm9sbG93IHRoZSBndWlkZWxpbmVzIHNldCBmb3J0aAoraW4gPGEgaHJlZj0iI2d1aWRlbGluZXMiPkFwcGVuZGl4IEM8L2E+LCAiSFRNTCBDb21wYXRpYmlsaXR5IEd1aWRlbGluZXMiIG1heSBiZQorbGFiZWxlZCB3aXRoIHRoZSBJbnRlcm5ldCBNZWRpYSBUeXBlICJ0ZXh0L2h0bWwiLCBhcyB0aGV5CithcmUgY29tcGF0aWJsZSB3aXRoIG1vc3QgSFRNTCBicm93c2Vycy4gVGhpcyBkb2N1bWVudAorbWFrZXMgbm8gcmVjb21tZW5kYXRpb24gYWJvdXQgTUlNRSBsYWJlbGluZyBvZiBvdGhlcgorWEhUTUwgZG9jdW1lbnRzLjwvcD4KKworPCEtLU9kZFBhZ2UtLT4KKzxoMT48YSBuYW1lPSJmdXR1cmUiIGlkPSJmdXR1cmUiPjYuIEZ1dHVyZSBEaXJlY3Rpb25zPC9hPjwvaDE+CisKKzxwPlhIVE1MIDEuMCBwcm92aWRlcyB0aGUgYmFzaXMgZm9yIGEgZmFtaWx5IG9mIGRvY3VtZW50IHR5cGVzCit0aGF0IHdpbGwgZXh0ZW5kIGFuZCBzdWJzZXQgWEhUTUwsIGluIG9yZGVyIHRvIHN1cHBvcnQgYSB3aWRlCityYW5nZSBvZiBuZXcgZGV2aWNlcyBhbmQgYXBwbGljYXRpb25zLCBieSBkZWZpbmluZyBtb2R1bGVzIGFuZAorc3BlY2lmeWluZyBhIG1lY2hhbmlzbSBmb3IgY29tYmluaW5nIHRoZXNlIG1vZHVsZXMuIFRoaXMKK21lY2hhbmlzbSB3aWxsIGVuYWJsZSB0aGUgZXh0ZW5zaW9uIGFuZCBzdWItc2V0dGluZyBvZiBYSFRNTCAxLjAKK2luIGEgdW5pZm9ybSB3YXkgdGhyb3VnaCB0aGUgZGVmaW5pdGlvbiBvZiBuZXcgbW9kdWxlcy48L3A+CisKKzxoMj48YSBuYW1lPSJtb2RzIiBpZD0ibW9kcyI+Ni4xIE1vZHVsYXJpemluZyBIVE1MPC9hPjwvaDI+CisKKzxwPkFzIHRoZSB1c2Ugb2YgWEhUTUwgbW92ZXMgZnJvbSB0aGUgdHJhZGl0aW9uYWwgZGVza3RvcCB1c2VyCithZ2VudHMgdG8gb3RoZXIgcGxhdGZvcm1zLCBpdCBpcyBjbGVhciB0aGF0IG5vdCBhbGwgb2YgdGhlIFhIVE1MCitlbGVtZW50cyB3aWxsIGJlIHJlcXVpcmVkIG9uIGFsbCBwbGF0Zm9ybXMuIEZvciBleGFtcGxlIGEgaGFuZAoraGVsZCBkZXZpY2Ugb3IgYSBjZWxsLXBob25lIG1heSBvbmx5IHN1cHBvcnQgYSBzdWJzZXQgb2YgWEhUTUwKK2VsZW1lbnRzLjwvcD4KKworPHA+VGhlIHByb2Nlc3Mgb2YgbW9kdWxhcml6YXRpb24gYnJlYWtzIFhIVE1MIHVwIGludG8gYSBzZXJpZXMgb2YKK3NtYWxsZXIgZWxlbWVudCBzZXRzLiBUaGVzZSBlbGVtZW50cyBjYW4gdGhlbiBiZSByZWNvbWJpbmVkIHRvCittZWV0IHRoZSBuZWVkcyBvZiBkaWZmZXJlbnQgY29tbXVuaXRpZXMuPC9wPgorCis8cD5UaGVzZSBtb2R1bGVzIHdpbGwgYmUgZGVmaW5lZCBpbiBhIGxhdGVyIFczQyBkb2N1bWVudC48L3A+CisKKzxoMj48YSBuYW1lPSJleHRlbnNpb25zIiBpZD0iZXh0ZW5zaW9ucyI+Ni4yIFN1YnNldHMgYW5kCitFeHRlbnNpYmlsaXR5PC9hPjwvaDI+CisKKzxwPk1vZHVsYXJpemF0aW9uIGJyaW5ncyB3aXRoIGl0IHNldmVyYWwgYWR2YW50YWdlczo8L3A+CisKKzx1bD4KKzxsaT4KKzxwPkl0IHByb3ZpZGVzIGEgZm9ybWFsIG1lY2hhbmlzbSBmb3Igc3ViLXNldHRpbmcgWEhUTUwuPC9wPgorPC9saT4KKworPGxpPgorPHA+SXQgcHJvdmlkZXMgYSBmb3JtYWwgbWVjaGFuaXNtIGZvciBleHRlbmRpbmcgWEhUTUwuPC9wPgorPC9saT4KKworPGxpPgorPHA+SXQgc2ltcGxpZmllcyB0aGUgdHJhbnNmb3JtYXRpb24gYmV0d2VlbiBkb2N1bWVudCB0eXBlcy48L3A+Cis8L2xpPgorCis8bGk+Cis8cD5JdCBwcm9tb3RlcyB0aGUgcmV1c2Ugb2YgbW9kdWxlcyBpbiBuZXcgZG9jdW1lbnQgdHlwZXMuPC9wPgorPC9saT4KKzwvdWw+CisKKzxoMj48YSBuYW1lPSJwcm9maWxlcyIgaWQ9InByb2ZpbGVzIj42LjMgRG9jdW1lbnQKK1Byb2ZpbGVzPC9hPjwvaDI+CisKKzxwPkEgZG9jdW1lbnQgcHJvZmlsZSBzcGVjaWZpZXMgdGhlIHN5bnRheCBhbmQgc2VtYW50aWNzIG9mIGEgc2V0CitvZiBkb2N1bWVudHMuIENvbmZvcm1hbmNlIHRvIGEgZG9jdW1lbnQgcHJvZmlsZSBwcm92aWRlcyBhIGJhc2lzCitmb3IgaW50ZXJvcGVyYWJpbGl0eSBndWFyYW50ZWVzLiBUaGUgZG9jdW1lbnQgcHJvZmlsZSBzcGVjaWZpZXMKK3RoZSBmYWNpbGl0aWVzIHJlcXVpcmVkIHRvIHByb2Nlc3MgZG9jdW1lbnRzIG9mIHRoYXQgdHlwZSwgZS5nLgord2hpY2ggaW1hZ2UgZm9ybWF0cyBjYW4gYmUgdXNlZCwgbGV2ZWxzIG9mIHNjcmlwdGluZywgc3R5bGUgc2hlZXQKK3N1cHBvcnQsIGFuZCBzbyBvbi48L3A+CisKKzxwPkZvciBwcm9kdWN0IGRlc2lnbmVycyB0aGlzIGVuYWJsZXMgdmFyaW91cyBncm91cHMgdG8gZGVmaW5lCit0aGVpciBvd24gc3RhbmRhcmQgcHJvZmlsZS48L3A+CisKKzxwPkZvciBhdXRob3JzIHRoaXMgd2lsbCBvYnZpYXRlIHRoZSBuZWVkIHRvIHdyaXRlIHNldmVyYWwKK2RpZmZlcmVudCB2ZXJzaW9ucyBvZiBkb2N1bWVudHMgZm9yIGRpZmZlcmVudCBjbGllbnRzLjwvcD4KKworPHA+Rm9yIHNwZWNpYWwgZ3JvdXBzIHN1Y2ggYXMgY2hlbWlzdHMsIG1lZGljYWwgZG9jdG9ycywgb3IKK21hdGhlbWF0aWNpYW5zIHRoaXMgYWxsb3dzIGEgc3BlY2lhbCBwcm9maWxlIHRvIGJlIGJ1aWx0IHVzaW5nCitzdGFuZGFyZCBIVE1MIGVsZW1lbnRzIHBsdXMgYSBncm91cCBvZiBlbGVtZW50cyBnZWFyZWQgdG8gdGhlCitzcGVjaWFsaXN0J3MgbmVlZHMuPC9wPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9ImFwcGVuZGljZXMiIGlkPSJhcHBlbmRpY2VzIj48L2E+Cis8YSBuYW1lPSJkdGRzIiBpZD0iZHRkcyI+QXBwZW5kaXggQS4gRFREczwvYT48L2gxPgorCis8cD48Yj5UaGlzIGFwcGVuZGl4IGlzIG5vcm1hdGl2ZS48L2I+PC9wPgorCis8cD5UaGVzZSBEVERzIGFuZCBlbnRpdHkgc2V0cyBmb3JtIGEgbm9ybWF0aXZlIHBhcnQgb2YgdGhpcworc3BlY2lmaWNhdGlvbi4gVGhlIGNvbXBsZXRlIHNldCBvZiBEVEQgZmlsZXMgdG9nZXRoZXIgd2l0aCBhbiBYTUwKK2RlY2xhcmF0aW9uIGFuZCBTR01MIE9wZW4gQ2F0YWxvZyBpcyBpbmNsdWRlZCBpbiB0aGUgPGEgaHJlZj0gCisieGh0bWwxLnppcCI+emlwIGZpbGU8L2E+IGZvciB0aGlzIHNwZWNpZmljYXRpb24uPC9wPgorCis8aDI+PGEgbmFtZT0iaC1BMSIgaWQ9ImgtQTEiPkEuMSBEb2N1bWVudCBUeXBlCitEZWZpbml0aW9uczwvYT48L2gyPgorCis8cD5UaGVzZSBEVERzIGFwcHJveGltYXRlIHRoZSBIVE1MIDQuMCBEVERzLiBJdCBpcyBsaWtlbHkgdGhhdAord2hlbiB0aGUgRFREcyBhcmUgbW9kdWxhcml6ZWQsIGEgbWV0aG9kIG9mIERURCBjb25zdHJ1Y3Rpb24gd2lsbAorYmUgZW1wbG95ZWQgdGhhdCBjb3JyZXNwb25kcyBtb3JlIGNsb3NlbHkgdG8gSFRNTCA0LjAuPC9wPgorCis8dWw+Cis8bGk+Cis8cD48YSBocmVmPSJEVEQveGh0bWwxLXN0cmljdC5kdGQiIHR5cGU9InRleHQvcGxhaW4iPgorWEhUTUwtMS4wLVN0cmljdDwvYT48L3A+Cis8L2xpPgorCis8bGk+Cis8cD48YSBocmVmPSJEVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiIHR5cGU9InRleHQvcGxhaW4iPgorWEhUTUwtMS4wLVRyYW5zaXRpb25hbDwvYT48L3A+Cis8L2xpPgorCis8bGk+Cis8cD48YSBocmVmPSJEVEQveGh0bWwxLWZyYW1lc2V0LmR0ZCIgdHlwZT0idGV4dC9wbGFpbiI+CitYSFRNTC0xLjAtRnJhbWVzZXQ8L2E+PC9wPgorPC9saT4KKzwvdWw+CisKKzxoMj48YSBuYW1lPSJoLUEyIiBpZD0iaC1BMiI+QS4yIEVudGl0eSBTZXRzPC9hPjwvaDI+CisKKzxwPlRoZSBYSFRNTCBlbnRpdHkgc2V0cyBhcmUgdGhlIHNhbWUgYXMgZm9yIEhUTUwgNC4wLCBidXQgaGF2ZQorYmVlbiBtb2RpZmllZCB0byBiZSB2YWxpZCBYTUwgMS4wIGVudGl0eSBkZWNsYXJhdGlvbnMuIE5vdGUgdGhlCitlbnRpdHkgZm9yIHRoZSBFdXJvIGN1cnJlbmN5IHNpZ24gKDxjb2RlPiZhbXA7ZXVybzs8L2NvZGU+IG9yCis8Y29kZT4mYW1wOyM4MzY0OzwvY29kZT4gb3IgPGNvZGU+JmFtcDsjeDIwQUM7PC9jb2RlPikgaXMgZGVmaW5lZAorYXMgcGFydCBvZiB0aGUgc3BlY2lhbCBjaGFyYWN0ZXJzLjwvcD4KKworPHVsPgorPGxpPgorPHA+PGEgaHJlZj0iRFREL3hodG1sLWxhdDEuZW50Ij5MYXRpbi0xIGNoYXJhY3RlcnM8L2E+PC9wPgorPC9saT4KKworPGxpPgorPHA+PGEgaHJlZj0iRFREL3hodG1sLXNwZWNpYWwuZW50Ij5TcGVjaWFsIGNoYXJhY3RlcnM8L2E+PC9wPgorPC9saT4KKworPGxpPgorPHA+PGEgaHJlZj0iRFREL3hodG1sLXN5bWJvbC5lbnQiPlN5bWJvbHM8L2E+PC9wPgorPC9saT4KKzwvdWw+CisKKzwhLS1PZGRQYWdlLS0+Cis8aDE+PGEgbmFtZT0icHJvaGliaXRpb25zIiBpZD0icHJvaGliaXRpb25zIj5BcHBlbmRpeCBCLiBFbGVtZW50CitQcm9oaWJpdGlvbnM8L2E+PC9oMT4KKworPHA+PGI+VGhpcyBhcHBlbmRpeCBpcyBub3JtYXRpdmUuPC9iPjwvcD4KKworPHA+VGhlIGZvbGxvd2luZyBlbGVtZW50cyBoYXZlIHByb2hpYml0aW9ucyBvbiB3aGljaCBlbGVtZW50cwordGhleSBjYW4gY29udGFpbiAoc2VlIDxhIGhyZWY9IiNoLTQuOSI+U2VjdGlvbiA0Ljk8L2E+KS4gVGhpcworcHJvaGliaXRpb24gYXBwbGllcyB0byBhbGwgZGVwdGhzIG9mIG5lc3RpbmcsIGkuZS4gaXQgY29udGFpbnMKK2FsbCB0aGUgZGVzY2VuZGFudCBlbGVtZW50cy48L3A+CisKKzxkbD48ZHQ+PGNvZGUgY2xhc3M9InRhZyI+YTwvY29kZT48L2R0PgorPGRkPgorY2Fubm90IGNvbnRhaW4gb3RoZXIgPGNvZGU+YTwvY29kZT4gZWxlbWVudHMuPC9kZD4KKzxkdD48Y29kZSBjbGFzcz0idGFnIj5wcmU8L2NvZGU+PC9kdD4KKzxkZD5jYW5ub3QgY29udGFpbiB0aGUgPGNvZGU+aW1nPC9jb2RlPiwgPGNvZGU+b2JqZWN0PC9jb2RlPiwKKzxjb2RlPmJpZzwvY29kZT4sIDxjb2RlPnNtYWxsPC9jb2RlPiwgPGNvZGU+c3ViPC9jb2RlPiwgb3IgPGNvZGU+CitzdXA8L2NvZGU+IGVsZW1lbnRzLjwvZGQ+CisKKzxkdD48Y29kZSBjbGFzcz0idGFnIj5idXR0b248L2NvZGU+PC9kdD4KKzxkZD5jYW5ub3QgY29udGFpbiB0aGUgPGNvZGU+aW5wdXQ8L2NvZGU+LCA8Y29kZT5zZWxlY3Q8L2NvZGU+LAorPGNvZGU+dGV4dGFyZWE8L2NvZGU+LCA8Y29kZT5sYWJlbDwvY29kZT4sIDxjb2RlPmJ1dHRvbjwvY29kZT4sCis8Y29kZT5mb3JtPC9jb2RlPiwgPGNvZGU+ZmllbGRzZXQ8L2NvZGU+LCA8Y29kZT5pZnJhbWU8L2NvZGU+IG9yCis8Y29kZT5pc2luZGV4PC9jb2RlPiBlbGVtZW50cy48L2RkPgorPGR0Pjxjb2RlIGNsYXNzPSJ0YWciPmxhYmVsPC9jb2RlPjwvZHQ+Cis8ZGQ+Y2Fubm90IGNvbnRhaW4gb3RoZXIgPGNvZGUgY2xhc3M9InRhZyI+bGFiZWw8L2NvZGU+IGVsZW1lbnRzLjwvZGQ+Cis8ZHQ+PGNvZGUgY2xhc3M9InRhZyI+Zm9ybTwvY29kZT48L2R0PgorPGRkPmNhbm5vdCBjb250YWluIG90aGVyIDxjb2RlPmZvcm08L2NvZGU+IGVsZW1lbnRzLjwvZGQ+Cis8L2RsPgorCis8IS0tT2RkUGFnZS0tPgorPGgxPjxhIG5hbWU9Imd1aWRlbGluZXMiIGlkPSJndWlkZWxpbmVzIj5BcHBlbmRpeCBDLgorSFRNTCBDb21wYXRpYmlsaXR5IEd1aWRlbGluZXM8L2E+PC9oMT4KKworPHA+PGI+VGhpcyBhcHBlbmRpeCBpcyBpbmZvcm1hdGl2ZS48L2I+PC9wPgorCis8cD5UaGlzIGFwcGVuZGl4IHN1bW1hcml6ZXMgZGVzaWduIGd1aWRlbGluZXMgZm9yIGF1dGhvcnMgd2hvCit3aXNoIHRoZWlyIFhIVE1MIGRvY3VtZW50cyB0byByZW5kZXIgb24gZXhpc3RpbmcgSFRNTCB1c2VyCithZ2VudHMuPC9wPgorCis8aDI+Qy4xIFByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb25zPC9oMj4KKzxwPkJlIGF3YXJlIHRoYXQgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMgYXJlIHJlbmRlcmVkIG9uIHNvbWUKK3VzZXIgYWdlbnRzLiBIb3dldmVyLCBhbHNvIG5vdGUgdGhhdCB3aGVuIHRoZSBYTUwgZGVjbGFyYXRpb24gaXMgbm90IGluY2x1ZGVkCitpbiBhIGRvY3VtZW50LCB0aGUgZG9jdW1lbnQgY2FuIG9ubHkgdXNlIHRoZSBkZWZhdWx0IGNoYXJhY3RlciBlbmNvZGluZ3MgVVRGLTgKK29yIFVURi0xNi48L3A+CisKKzxoMj5DLjIgRW1wdHkgRWxlbWVudHM8L2gyPgorPHA+SW5jbHVkZSBhIHNwYWNlIGJlZm9yZSB0aGUgdHJhaWxpbmcgPGNvZGU+LzwvY29kZT4gYW5kIDxjb2RlPgorJmd0OzwvY29kZT4gb2YgZW1wdHkgZWxlbWVudHMsIGUuZy4gPGNvZGUgY2xhc3M9ImdyZWVubW9ubyI+CismbHQ7YnImIzE2MDsvJmd0OzwvY29kZT4sIDxjb2RlIGNsYXNzPSJncmVlbm1vbm8iPgorJmx0O2hyJiMxNjA7LyZndDs8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iZ3JlZW5tb25vIj4mbHQ7aW1nCitzcmM9ImthcmVuLmpwZyIgYWx0PSJLYXJlbiImIzE2MDsvJmd0OzwvY29kZT4uIEFsc28sIHVzZSB0aGUKK21pbmltaXplZCB0YWcgc3ludGF4IGZvciBlbXB0eSBlbGVtZW50cywgZS5nLiA8Y29kZSBjbGFzcz0gCisiZ3JlZW5tb25vIj4mbHQ7YnIgLyZndDs8L2NvZGU+LCBhcyB0aGUgYWx0ZXJuYXRpdmUgc3ludGF4IDxjb2RlCitjbGFzcz0iZ3JlZW5tb25vIj4mbHQ7YnImZ3Q7Jmx0Oy9iciZndDs8L2NvZGU+IGFsbG93ZWQgYnkgWE1MCitnaXZlcyB1bmNlcnRhaW4gcmVzdWx0cyBpbiBtYW55IGV4aXN0aW5nIHVzZXIgYWdlbnRzLjwvcD4KKworPGgyPkMuMyBFbGVtZW50IE1pbmltaXphdGlvbiBhbmQgRW1wdHkgRWxlbWVudCBDb250ZW50PC9oMj4KKzxwPkdpdmVuIGFuIGVtcHR5IGluc3RhbmNlIG9mIGFuIGVsZW1lbnQgd2hvc2UgY29udGVudCBtb2RlbCBpcworbm90IDxjb2RlPkVNUFRZPC9jb2RlPiAoZm9yIGV4YW1wbGUsIGFuIGVtcHR5IHRpdGxlIG9yIHBhcmFncmFwaCkKK2RvIG5vdCB1c2UgdGhlIG1pbmltaXplZCBmb3JtIChlLmcuIHVzZSA8Y29kZSBjbGFzcz0iZ3JlZW5tb25vIj4KKyZsdDtwJmd0OyAmbHQ7L3AmZ3Q7PC9jb2RlPiBhbmQgbm90IDxjb2RlIGNsYXNzPSJncmVlbm1vbm8iPgorJmx0O3AmIzE2MDsvJmd0OzwvY29kZT4pLjwvcD4KKworPGgyPkMuNCBFbWJlZGRlZCBTdHlsZSBTaGVldHMgYW5kIFNjcmlwdHM8L2gyPgorPHA+VXNlIGV4dGVybmFsIHN0eWxlIHNoZWV0cyBpZiB5b3VyIHN0eWxlIHNoZWV0IHVzZXMgPGNvZGU+CismbHQ7PC9jb2RlPiBvciA8Y29kZT4mYW1wOzwvY29kZT4gb3IgPGNvZGU+XV0mZ3Q7PC9jb2RlPiBvciA8Y29kZT4tLTwvY29kZT4uIFVzZQorZXh0ZXJuYWwgc2NyaXB0cyBpZiB5b3VyIHNjcmlwdCB1c2VzIDxjb2RlPiZsdDs8L2NvZGU+IG9yIDxjb2RlPgorJmFtcDs8L2NvZGU+IG9yIDxjb2RlPl1dJmd0OzwvY29kZT4gb3IgPGNvZGU+LS08L2NvZGU+LiBOb3RlIHRoYXQgWE1MIHBhcnNlcnMKK2FyZSBwZXJtaXR0ZWQgdG8gc2lsZW50bHkgcmVtb3ZlIHRoZSBjb250ZW50cyBvZiBjb21tZW50cy4gVGhlcmVmb3JlLCB0aGUgaGlzdG9yaWNhbAorcHJhY3RpY2Ugb2YgImhpZGluZyIgc2NyaXB0cyBhbmQgc3R5bGUgc2hlZXRzIHdpdGhpbiBjb21tZW50cyB0byBtYWtlIHRoZQorZG9jdW1lbnRzIGJhY2t3YXJkIGNvbXBhdGlibGUgaXMgbGlrZWx5IHRvIG5vdCB3b3JrIGFzIGV4cGVjdGVkIGluIFhNTC1iYXNlZAoraW1wbGVtZW50YXRpb25zLjwvcD4KKworPGgyPkMuNSBMaW5lIEJyZWFrcyB3aXRoaW4gQXR0cmlidXRlIFZhbHVlczwvaDI+Cis8cD5Bdm9pZCBsaW5lIGJyZWFrcyBhbmQgbXVsdGlwbGUgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHdpdGhpbgorYXR0cmlidXRlIHZhbHVlcy4gVGhlc2UgYXJlIGhhbmRsZWQgaW5jb25zaXN0ZW50bHkgYnkgdXNlcgorYWdlbnRzLjwvcD4KKworPGgyPkMuNiBJc2luZGV4PC9oMj4KKzxwPkRvbid0IGluY2x1ZGUgbW9yZSB0aGFuIG9uZSA8Y29kZT5pc2luZGV4PC9jb2RlPiBlbGVtZW50IGluCit0aGUgZG9jdW1lbnQgPGNvZGU+aGVhZDwvY29kZT4uIFRoZSA8Y29kZT5pc2luZGV4PC9jb2RlPiBlbGVtZW50CitpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZSA8Y29kZT5pbnB1dDwvY29kZT4gZWxlbWVudC48L3A+CisKKzxoMj5DLjcgVGhlIDxjb2RlPmxhbmc8L2NvZGU+IGFuZCA8Y29kZT54bWw6bGFuZzwvY29kZT4gQXR0cmlidXRlczwvaDI+Cis8cD5Vc2UgYm90aCB0aGUgPGNvZGU+bGFuZzwvY29kZT4gYW5kIDxjb2RlPnhtbDpsYW5nPC9jb2RlPgorYXR0cmlidXRlcyB3aGVuIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIGFuIGVsZW1lbnQuIFRoZSB2YWx1ZQorb2YgdGhlIDxjb2RlPnhtbDpsYW5nPC9jb2RlPiBhdHRyaWJ1dGUgdGFrZXMgcHJlY2VkZW5jZS48L3A+CisKKzxoMj5DLjggRnJhZ21lbnQgSWRlbnRpZmllcnM8L2gyPgorPHA+SW4gWE1MLCA8YWJiciB0aXRsZT0iVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVycyI+VVJJczwvYWJicj4gWzxhIGhyZWY9IiNyZWYtcmZjMjM5NiI+UkZDMjM5NjwvYT5dIHRoYXQgZW5kIHdpdGggZnJhZ21lbnQgaWRlbnRpZmllcnMgb2YgdGhlIGZvcm0KKzxjb2RlPiIjZm9vIjwvY29kZT4gZG8gbm90IHJlZmVyIHRvIGVsZW1lbnRzIHdpdGggYW4gYXR0cmlidXRlCis8Y29kZT5uYW1lPSJmb28iPC9jb2RlPjsgcmF0aGVyLCB0aGV5IHJlZmVyIHRvIGVsZW1lbnRzIHdpdGggYW4KK2F0dHJpYnV0ZSBkZWZpbmVkIHRvIGJlIG9mIHR5cGUgPGNvZGU+SUQ8L2NvZGU+LCBlLmcuLCB0aGUgPGNvZGU+CitpZDwvY29kZT4gYXR0cmlidXRlIGluIEhUTUwgNC4wLiBNYW55IGV4aXN0aW5nIEhUTUwgY2xpZW50cyBkb24ndAorc3VwcG9ydCB0aGUgdXNlIG9mIDxjb2RlPklEPC9jb2RlPi10eXBlIGF0dHJpYnV0ZXMgaW4gdGhpcyB3YXksCitzbyBpZGVudGljYWwgdmFsdWVzIG1heSBiZSBzdXBwbGllZCBmb3IgYm90aCBvZiB0aGVzZSBhdHRyaWJ1dGVzIHRvIGVuc3VyZQorbWF4aW11bSBmb3J3YXJkIGFuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IChlLmcuLCA8Y29kZSBjbGFzcz0gCisiZ3JlZW5tb25vIj4mbHQ7YSBpZD0iZm9vIiBuYW1lPSJmb28iJmd0Oy4uLiZsdDsvYSZndDs8L2NvZGU+KS48L3A+CisKKzxwPkZ1cnRoZXIsIHNpbmNlIHRoZSBzZXQgb2YKK2xlZ2FsIHZhbHVlcyBmb3IgYXR0cmlidXRlcyBvZiB0eXBlIDxjb2RlPklEPC9jb2RlPiBpcyBtdWNoIHNtYWxsZXIgdGhhbgorZm9yIHRob3NlIG9mIHR5cGUgPGNvZGU+Q0RBVEE8L2NvZGU+LCB0aGUgdHlwZSBvZiB0aGUgPGNvZGU+bmFtZTwvY29kZT4KK2F0dHJpYnV0ZSBoYXMgYmVlbiBjaGFuZ2VkIHRvIDxjb2RlPk5NVE9LRU48L2NvZGU+LiBUaGlzIGF0dHJpYnV0ZSBpcyAKK2NvbnN0cmFpbmVkIHN1Y2ggdGhhdCBpdCBjYW4gb25seSBoYXZlIHRoZSBzYW1lIHZhbHVlcyBhcyB0eXBlCis8Y29kZT5JRDwvY29kZT4sIG9yIGFzIHRoZSA8Y29kZT5OYW1lPC9jb2RlPiBwcm9kdWN0aW9uIGluIFhNTCAxLjAgU2VjdGlvbgorMi41LCBwcm9kdWN0aW9uIDUuIFVuZm9ydHVuYXRlbHksIHRoaXMgY29uc3RyYWludCBjYW5ub3QgYmUgZXhwcmVzc2VkIGluIHRoZQorWEhUTUwgMS4wIERURHMuICBCZWNhdXNlIG9mIHRoaXMgY2hhbmdlLCBjYXJlIG11c3QgYmUgdGFrZW4gd2hlbgorY29udmVydGluZyBleGlzdGluZyBIVE1MIGRvY3VtZW50cy4gVGhlIHZhbHVlcyBvZiB0aGVzZSBhdHRyaWJ1dGVzCittdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGRvY3VtZW50LCB2YWxpZCwgYW5kIGFueSByZWZlcmVuY2VzIHRvIHRoZXNlIAorZnJhZ21lbnQgaWRlbnRpZmllcnMgKGJvdGgKK2ludGVybmFsIGFuZCBleHRlcm5hbCkgbXVzdCBiZSB1cGRhdGVkIHNob3VsZCB0aGUgdmFsdWVzIGJlIGNoYW5nZWQgZHVyaW5nCitjb252ZXJzaW9uLjwvcD4KKzxwPkZpbmFsbHksIG5vdGUgdGhhdCBYSFRNTCAxLjAgaGFzIGRlcHJlY2F0ZWQgdGhlCis8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIDxjb2RlPmE8L2NvZGU+LCA8Y29kZT5hcHBsZXQ8L2NvZGU+LCA8Y29kZT5mcmFtZTwvY29kZT4sIDxjb2RlPmlmcmFtZTwvY29kZT4sIDxjb2RlPmltZzwvY29kZT4sIGFuZCA8Y29kZT5tYXA8L2NvZGU+CitlbGVtZW50cywgYW5kIGl0IHdpbGwgYmUKK3JlbW92ZWQgZnJvbSBYSFRNTCBpbiBzdWJzZXF1ZW50IHZlcnNpb25zLjwvcD4KKworPGgyPkMuOSBDaGFyYWN0ZXIgRW5jb2Rpbmc8L2gyPgorPHA+VG8gc3BlY2lmeSBhIGNoYXJhY3RlciBlbmNvZGluZyBpbiB0aGUgZG9jdW1lbnQsIHVzZSBib3RoIHRoZQorZW5jb2RpbmcgYXR0cmlidXRlIHNwZWNpZmljYXRpb24gb24gdGhlIHhtbCBkZWNsYXJhdGlvbiAoZS5nLgorPGNvZGUgY2xhc3M9ImdyZWVubW9ubyI+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIgorZW5jb2Rpbmc9IkVVQy1KUCI/Jmd0OzwvY29kZT4pIGFuZCBhIG1ldGEgaHR0cC1lcXVpdiBzdGF0ZW1lbnQKKyhlLmcuIDxjb2RlIGNsYXNzPSJncmVlbm1vbm8iPiZsdDttZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIKK2NvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD0iRVVDLUpQIicmIzE2MDsvJmd0OzwvY29kZT4pLiBUaGUKK3ZhbHVlIG9mIHRoZSBlbmNvZGluZyBhdHRyaWJ1dGUgb2YgdGhlIHhtbCBwcm9jZXNzaW5nIGluc3RydWN0aW9uCit0YWtlcyBwcmVjZWRlbmNlLjwvcD4KKworPGgyPkMuMTAgQm9vbGVhbiBBdHRyaWJ1dGVzPC9oMj4KKzxwPlNvbWUgSFRNTCB1c2VyIGFnZW50cyBhcmUgdW5hYmxlIHRvIGludGVycHJldCBib29sZWFuCithdHRyaWJ1dGVzIHdoZW4gdGhlc2UgYXBwZWFyIGluIHRoZWlyIGZ1bGwgKG5vbi1taW5pbWl6ZWQpIGZvcm0sCithcyByZXF1aXJlZCBieSBYTUwgMS4wLiBOb3RlIHRoaXMgcHJvYmxlbSBkb2Vzbid0IGVmZmVjdCB1c2VyCithZ2VudHMgY29tcGxpYW50IHdpdGggSFRNTCA0LjAuIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUKK2ludm9sdmVkOiA8Y29kZT5jb21wYWN0PC9jb2RlPiwgPGNvZGU+bm93cmFwPC9jb2RlPiwgPGNvZGU+Citpc21hcDwvY29kZT4sIDxjb2RlPmRlY2xhcmU8L2NvZGU+LCA8Y29kZT5ub3NoYWRlPC9jb2RlPiwgPGNvZGU+CitjaGVja2VkPC9jb2RlPiwgPGNvZGU+ZGlzYWJsZWQ8L2NvZGU+LCA8Y29kZT5yZWFkb25seTwvY29kZT4sCis8Y29kZT5tdWx0aXBsZTwvY29kZT4sIDxjb2RlPnNlbGVjdGVkPC9jb2RlPiwgPGNvZGU+Citub3Jlc2l6ZTwvY29kZT4sIDxjb2RlPmRlZmVyPC9jb2RlPi48L3A+CisKKzxoMj5DLjExIERvY3VtZW50IE9iamVjdCBNb2RlbCBhbmQgWEhUTUw8L2gyPgorPHA+CitUaGUgRG9jdW1lbnQgT2JqZWN0IE1vZGVsIGxldmVsIDEgUmVjb21tZW5kYXRpb24gWzxhIGhyZWY9IiNyZWYtZG9tIj5ET008L2E+XQorZGVmaW5lcyBkb2N1bWVudCBvYmplY3QgbW9kZWwgaW50ZXJmYWNlcyBmb3IgWE1MIGFuZCBIVE1MIDQuMC4gVGhlIEhUTUwgNC4wCitkb2N1bWVudCBvYmplY3QgbW9kZWwgc3BlY2lmaWVzIHRoYXQgSFRNTCBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgbmFtZXMgYXJlCityZXR1cm5lZCBpbiB1cHBlci1jYXNlLiBUaGUgWE1MIGRvY3VtZW50IG9iamVjdCBtb2RlbCBzcGVjaWZpZXMgdGhhdCAKK2VsZW1lbnQgYW5kIGF0dHJpYnV0ZSBuYW1lcyBhcmUgcmV0dXJuZWQgaW4gdGhlIGNhc2UgdGhleSBhcmUgc3BlY2lmaWVkLiBJbgorWEhUTUwgMS4wLCBlbGVtZW50cyBhbmQgYXR0cmlidXRlcyBhcmUgc3BlY2lmaWVkIGluIGxvd2VyLWNhc2UuIFRoaXMgYXBwYXJlbnQgZGlmZmVyZW5jZSBjYW4gYmUKK2FkZHJlc3NlZCBpbiB0d28gd2F5czoKKzwvcD4KKzxvbD4KKzxsaT5BcHBsaWNhdGlvbnMgdGhhdCBhY2Nlc3MgWEhUTUwgZG9jdW1lbnRzIHNlcnZlZCBhcyBJbnRlcm5ldCBtZWRpYSB0eXBlCis8Y29kZT50ZXh0L2h0bWw8L2NvZGU+Cit2aWEgdGhlIDxhYmJyIHRpdGxlPSJEb2N1bWVudCBPYmplY3QgTW9kZWwiPkRPTTwvYWJicj4gY2FuIHVzZSB0aGUgSFRNTCBET00sCithbmQgY2FuIHJlbHkgdXBvbiBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgbmFtZXMgYmVpbmcgcmV0dXJuZWQgaW4KK3VwcGVyLWNhc2UgZnJvbSB0aG9zZSBpbnRlcmZhY2VzLjwvbGk+Cis8bGk+QXBwbGljYXRpb25zIHRoYXQgYWNjZXNzIFhIVE1MIGRvY3VtZW50cyBzZXJ2ZWQgYXMgSW50ZXJuZXQgbWVkaWEgdHlwZXMKKzxjb2RlPnRleHQveG1sPC9jb2RlPiBvciA8Y29kZT5hcHBsaWNhdGlvbi94bWw8L2NvZGU+CitjYW4gYWxzbyB1c2UgdGhlIFhNTCBET00uIEVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIHdpbGwgYmUgcmV0dXJuZWQgaW4gbG93ZXItY2FzZS4KK0Fsc28sIHNvbWUgWEhUTUwgZWxlbWVudHMgbWF5IG9yIG1heQorbm90IGFwcGVhcgoraW4gdGhlIG9iamVjdCB0cmVlIGJlY2F1c2UgdGhleSBhcmUgb3B0aW9uYWwgaW4gdGhlIGNvbnRlbnQgbW9kZWwKKyhlLmcuIHRoZSA8Y29kZT50Ym9keTwvY29kZT4gZWxlbWVudCB3aXRoaW4KKzxjb2RlPnRhYmxlPC9jb2RlPikuICBUaGlzIG9jY3VycyBiZWNhdXNlIGluIEhUTUwgNC4wIHNvbWUgZWxlbWVudHMgd2VyZQorcGVybWl0dGVkIHRvIGJlIG1pbmltaXplZCBzdWNoIHRoYXQgdGhlaXIgc3RhcnQgYW5kIGVuZCB0YWdzIGFyZSBib3RoIG9taXR0ZWQKKyhhbiBTR01MIGZlYXR1cmUpLgorVGhpcyBpcyBub3QgcG9zc2libGUgaW4gWE1MLiBSYXRoZXIgdGhhbiByZXF1aXJlIGRvY3VtZW50IGF1dGhvcnMgdG8gaW5zZXJ0CitleHRyYW5lb3VzIGVsZW1lbnRzLCBYSFRNTCBoYXMgbWFkZSB0aGUgZWxlbWVudHMgb3B0aW9uYWwuIAorQXBwbGljYXRpb25zIG5lZWQgdG8gYWRhcHQgdG8gdGhpcworYWNjb3JkaW5nbHkuPC9saT4KKzwvb2w+CisKKzxoMj5DLjEyIFVzaW5nIEFtcGVyc2FuZHMgaW4gQXR0cmlidXRlIFZhbHVlczwvaDI+Cis8cD4KK1doZW4gYW4gYXR0cmlidXRlIHZhbHVlIGNvbnRhaW5zIGFuIGFtcGVyc2FuZCwgaXQgbXVzdCBiZSBleHByZXNzZWQgYXMgYSBjaGFyYWN0ZXIKK2VudGl0eSByZWZlcmVuY2UKKyhlLmcuICI8Y29kZT4mYW1wO2FtcDs8L2NvZGU+IikuIEZvciBleGFtcGxlLCB3aGVuIHRoZQorPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlCitvZiB0aGUgPGNvZGU+YTwvY29kZT4gZWxlbWVudCByZWZlcnMgdG8gYQorQ0dJIHNjcmlwdCB0aGF0IHRha2VzIHBhcmFtZXRlcnMsIGl0IG11c3QgYmUgZXhwcmVzc2VkIGFzCis8Y29kZT5odHRwOi8vbXkuc2l0ZS5kb20vY2dpLWJpbi9teXNjcmlwdC5wbD9jbGFzcz1ndWVzdCZhbXA7YW1wO25hbWU9dXNlcjwvY29kZT4KK3JhdGhlciB0aGFuIGFzCis8Y29kZT5odHRwOi8vbXkuc2l0ZS5kb20vY2dpLWJpbi9teXNjcmlwdC5wbD9jbGFzcz1ndWVzdCZhbXA7bmFtZT11c2VyPC9jb2RlPi4KKzwvcD4KKworPGgyPkMuMTMgQ2FzY2FkaW5nIFN0eWxlIFNoZWV0cyAoQ1NTKSBhbmQgWEhUTUw8L2gyPgorCis8cD5UaGUgQ2FzY2FkaW5nIFN0eWxlIFNoZWV0cyBsZXZlbCAyIFJlY29tbWVuZGF0aW9uIFs8YSBocmVmPSIjcmVmLWNzczIiPkNTUzI8L2E+XSBkZWZpbmVzIHN0eWxlCitwcm9wZXJ0aWVzIHdoaWNoIGFyZSBhcHBsaWVkIHRvIHRoZSBwYXJzZSB0cmVlIG9mIHRoZSBIVE1MIG9yIFhNTAorZG9jdW1lbnQuICBEaWZmZXJlbmNlcyBpbiBwYXJzaW5nIHdpbGwgcHJvZHVjZSBkaWZmZXJlbnQgdmlzdWFsIG9yCithdXJhbCByZXN1bHRzLCBkZXBlbmRpbmcgb24gdGhlIHNlbGVjdG9ycyB1c2VkLiBUaGUgZm9sbG93aW5nIGhpbnRzCit3aWxsIHJlZHVjZSB0aGlzIGVmZmVjdCBmb3IgZG9jdW1lbnRzIHdoaWNoIGFyZSBzZXJ2ZWQgd2l0aG91dAorbW9kaWZpY2F0aW9uIGFzIGJvdGggbWVkaWEgdHlwZXM6PC9wPgorCis8b2w+Cis8bGk+CitDU1Mgc3R5bGUgc2hlZXRzIGZvciBYSFRNTCBzaG91bGQgdXNlIGxvd2VyIGNhc2UgZWxlbWVudCBhbmQKK2F0dHJpYnV0ZSBuYW1lcy48L2xpPgorCisKKzxsaT5JbiB0YWJsZXMsIHRoZSB0Ym9keSBlbGVtZW50IHdpbGwgYmUgaW5mZXJyZWQgYnkgdGhlIHBhcnNlciBvZiBhbgorSFRNTCB1c2VyIGFnZW50LCBidXQgbm90IGJ5IHRoZSBwYXJzZXIgb2YgYW4gWE1MIHVzZXIgYWdlbnQuIFRoZXJlZm9yZQoreW91IHNob3VsZCBhbHdheXMgZXhwbGljaXRlbHkgYWRkIGEgdGJvZHkgZWxlbWVudCBpZiBpdCBpcyByZWZlcnJlZCB0bworaW4gYSBDU1Mgc2VsZWN0b3IuPC9saT4KKworPGxpPldpdGhpbiB0aGUgWEhUTUwgbmFtZSBzcGFjZSwgdXNlciBhZ2VudHMgYXJlIGV4cGVjdGVkIHRvCityZWNvZ25pemUgdGhlICJpZCIgYXR0cmlidXRlIGFzIGFuIGF0dHJpYnV0ZSBvZiB0eXBlIElELgorVGhlcmVmb3JlLCBzdHlsZSBzaGVldHMgc2hvdWxkIGJlIGFibGUgdG8gY29udGludWUgdXNpbmcgdGhlCitzaG9ydGhhbmQgIiMiIHNlbGVjdG9yIHN5bnRheCBldmVuIGlmIHRoZSB1c2VyIGFnZW50IGRvZXMgbm90IHJlYWQKK3RoZSBEVEQuPC9saT4KKworPGxpPldpdGhpbiB0aGUgWEhUTUwgbmFtZSBzcGFjZSwgdXNlciBhZ2VudHMgYXJlIGV4cGVjdGVkIHRvCityZWNvZ25pemUgdGhlICJjbGFzcyIgYXR0cmlidXRlLiBUaGVyZWZvcmUsIHN0eWxlIHNoZWV0cyBzaG91bGQgYmUKK2FibGUgdG8gY29udGludWUgdXNpbmcgdGhlIHNob3J0aGFuZCAiLiIgc2VsZWN0b3Igc3ludGF4LjwvbGk+CisKKzxsaT4KK0NTUyBkZWZpbmVzIGRpZmZlcmVudCBjb25mb3JtYW5jZSBydWxlcyBmb3IgSFRNTCBhbmQgWE1MIGRvY3VtZW50czsKK2JlIGF3YXJlIHRoYXQgdGhlIEhUTUwgcnVsZXMgYXBwbHkgdG8gWEhUTUwgZG9jdW1lbnRzIGRlbGl2ZXJlZCBhcworSFRNTCBhbmQgdGhlIFhNTCBydWxlcyBhcHBseSB0byBYSFRNTCBkb2N1bWVudHMgZGVsaXZlcmVkIGFzIFhNTC48L2xpPgorPC9vbD4KKzwhLS1PZGRQYWdlLS0+Cis8aDE+PGEgbmFtZT0iYWNrcyIgaWQ9ImFja3MiPkFwcGVuZGl4IEQuCitBY2tub3dsZWRnZW1lbnRzPC9hPjwvaDE+CisKKzxwPjxiPlRoaXMgYXBwZW5kaXggaXMgaW5mb3JtYXRpdmUuPC9iPjwvcD4KKworPHA+VGhpcyBzcGVjaWZpY2F0aW9uIHdhcyB3cml0dGVuIHdpdGggdGhlIHBhcnRpY2lwYXRpb24gb2YgdGhlCittZW1iZXJzIG9mIHRoZSBXM0MgSFRNTCB3b3JraW5nIGdyb3VwOjwvcD4KKworPGRsPgorPGRkPlN0ZXZlbiBQZW1iZXJ0b24sIENXSSAoSFRNTCBXb3JraW5nIEdyb3VwIENoYWlyKTxiciAvPgorTXVycmF5IEFsdGhlaW0sIFN1biBNaWNyb3N5c3RlbXM8YnIgLz4KK0RhbmllbCBBdXN0aW4sIENORVQ6IFRoZSBDb21wdXRlciBOZXR3b3JrPGJyIC8+CitGcmFuayBCb3VtcGhyZXksIEhUTUwgV3JpdGVycyBHdWlsZDxiciAvPgorSm9obiBCdXJnZXIsIE1pdHJlPGJyIC8+CitBbmRyZXcgVy4gRG9ub2hvLCBJQk08YnIgLz4KK1NhbSBEb29sZXksIElCTTxiciAvPgorS2xhdXMgSG9mcmljaHRlciwgR01EPGJyIC8+CitQaGlsaXBwIEhvc2Noa2EsIFczQzxiciAvPgorTWFzYXlhc3UgSXNoaWthd2EsIFczQzxiciAvPgorV2FybmVyIHRlbiBLYXRlLCBQaGlsaXBzIEVsZWN0cm9uaWNzPGJyIC8+CitQZXRlciBLaW5nLCBQaG9uZS5jb208YnIgLz4KK1BhdWxhIEtsYW50ZSwgSmV0Rm9ybTxiciAvPgorU2hpbidpY2hpIE1hdHN1aSwgVzNDL1BhbmFzb25pYzxiciAvPgorU2hhbmUgTWNDYXJyb24sIEFwcGxpZWQgVGVzdGluZyBhbmQgVGVjaG5vbG9neSAoVGhlIE9wZW4gR3JvdXAgdGhyb3VnaCBBdWd1c3QKKzE5OTkpPGJyIC8+CitBbm4gTmF2YXJybywgSFRNTCBXcml0ZXJzIEd1aWxkPGJyIC8+CitaYWNoIE5pZXMsIFF1YXJrPGJyIC8+CitEYXZlIFJhZ2dldHQsIFczQy9IUCAoVzNDIGxlYWQgZm9yIEhUTUwpPGJyIC8+CitQYXRyaWNrIFNjaG1pdHosIE1pY3Jvc29mdDxiciAvPgorU2ViYXN0aWFuIFNjaG5pdHplbmJhdW1lciwgU3RhY2sgT3ZlcmZsb3c8YnIgLz4KK0NocmlzIFdpbHNvbiwgTWljcm9zb2Z0PGJyIC8+CitUZWQgV3Vnb2Zza2ksIEdhdGV3YXkgMjAwMDxiciAvPgorRGFuIFppZ21vbmQsIFdlYlRWIE5ldHdvcmtzPC9kZD4KKzwvZGw+CisKKzwhLS1PZGRQYWdlLS0+Cis8aDE+PGEgbmFtZT0icmVmcyIgaWQ9InJlZnMiPkFwcGVuZGl4IEUuIFJlZmVyZW5jZXM8L2E+PC9oMT4KKworPHA+PGI+VGhpcyBhcHBlbmRpeCBpcyBpbmZvcm1hdGl2ZS48L2I+PC9wPgorCis8ZGw+CisKKzxkdD48YSBuYW1lPSJyZWYtY3NzMiIgaWQ9InJlZi1jc3MyIj48Yj5bQ1NTMl08L2I+PC9hPjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtQ1NTMiI+IkNhc2NhZGluZyBTdHlsZSBTaGVldHMsIGxldmVsIDIgKENTUzIpIFNwZWNpZmljYXRpb24iPC9hPiwgQi4KK0JvcywgSC4gVy4gTGllLCBDLiBMaWxsZXksIEkuIEphY29icywgMTIgTWF5IDE5OTguPGJyIC8+CitBdmFpbGFibGUgYXQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1DU1MyIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1DU1MyPC9hPjwvZGQ+CisKKzxkdD48YSBuYW1lPSJyZWYtZG9tIiBpZD0icmVmLWRvbSI+PGI+W0RPTV08L2I+PC9hPjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtRE9NLUxldmVsLTEiPiJEb2N1bWVudCBPYmplY3QgTW9kZWwgKERPTSkgTGV2ZWwgMSBTcGVjaWZpY2F0aW9uIjwvYT4sIExhdXJlbgorV29vZCA8aT5ldCBhbC48L2k+LCAxIE9jdG9iZXIgMTk5OC48YnIgLz4KK0F2YWlsYWJsZSBhdDogPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLURPTS1MZXZlbC0xIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1ET00tTGV2ZWwtMTwvYT48L2RkPgorCis8ZHQ+PGEgbmFtZT0icmVmLWh0bWw0IiBpZD0icmVmLWh0bWw0Ij48Yj5bSFRNTF08L2I+PC9hPjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1BSLWh0bWw0MC0xOTk5MDgyNCI+IkhUTUwgNC4wMSBTcGVjaWZpY2F0aW9uIjwvYT4sIEQuIFJhZ2dldHQsIEEuIExlJiMxNjA7SG9ycywgSS4KK0phY29icywgMjQgQXVndXN0IDE5OTkuPGJyIC8+CitBdmFpbGFibGUgYXQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFItaHRtbDQwLTE5OTkwODI0Ij4KK2h0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUFItaHRtbDQwLTE5OTkwODI0PC9hPjwvZGQ+CisKKzxkdD48YSBuYW1lPSJyZWYtcG9zaXgiIGlkPSJyZWYtcG9zaXgiPjxiPltQT1NJWC4xXTwvYj48L2E+PC9kdD4KKworPGRkPiJJU08vSUVDIDk5NDUtMToxOTkwIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgLSBQb3J0YWJsZQorT3BlcmF0aW5nIFN5c3RlbSBJbnRlcmZhY2UgKFBPU0lYKSAtIFBhcnQgMTogU3lzdGVtIEFwcGxpY2F0aW9uCitQcm9ncmFtIEludGVyZmFjZSAoQVBJKSBbQyBMYW5ndWFnZV0iLCBJbnN0aXR1dGUgb2YgRWxlY3RyaWNhbAorYW5kIEVsZWN0cm9uaWNzIEVuZ2luZWVycywgSW5jLCAxOTkwLjwvZGQ+CisKKzxkdD48YSBuYW1lPSJyZWYtcmZjMjA0NiIgaWQ9InJlZi1yZmMyMDQ2Ij48Yj4KK1tSRkMyMDQ2XTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIwNDYudHh0Ij4iUkZDMjA0NjogTXVsdGlwdXJwb3NlIEludGVybmV0IE1haWwgRXh0ZW5zaW9ucyAoTUlNRSkgUGFydAorVHdvOiBNZWRpYSBUeXBlcyI8L2E+LCBOLiBGcmVlZCBhbmQgTi4gQm9yZW5zdGVpbiwgTm92ZW1iZXIKKzE5OTYuPGJyIC8+CitBdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjA0Ni50eHQiPgoraHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjA0Ni50eHQ8L2E+LiBOb3RlIHRoYXQgdGhpcyBSRkMKK29ic29sZXRlcyBSRkMxNTIxLCBSRkMxNTIyLCBhbmQgUkZDMTU5MC48L2RkPgorCis8ZHQ+PGEgbmFtZT0icmVmLXJmYzIxMTkiIGlkPSJyZWYtcmZjMjExOSI+PGI+CitbUkZDMjExOV08L2I+PC9hPjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMTE5LnR4dCI+IlJGQzIxMTk6IEtleSB3b3JkcyBmb3IgdXNlIGluIFJGQ3MgdG8gSW5kaWNhdGUgUmVxdWlyZW1lbnQKK0xldmVscyI8L2E+LCBTLiBCcmFkbmVyLCBNYXJjaCAxOTk3LjxiciAvPgorQXZhaWxhYmxlIGF0OiA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMTE5LnR4dCI+CitodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMTE5LnR4dDwvYT48L2RkPgorCis8ZHQ+PGEgbmFtZT0icmVmLXJmYzIzNzYiIGlkPSJyZWYtcmZjMjM3NiI+PGI+CitbUkZDMjM3Nl08L2I+PC9hPjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzc2LnR4dCI+IlJGQzIzNzY6IFhNTCBNZWRpYSBUeXBlcyI8L2E+LCBFLiBXaGl0ZWhlYWQsIE0uIE11cmF0YSwgSnVseQorMTk5OC48YnIgLz4KK0F2YWlsYWJsZSBhdDogPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM3Ni50eHQiPgoraHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM3Ni50eHQ8L2E+PC9kZD4KKworPGR0PjxhIG5hbWU9InJlZi1yZmMyMzk2IiBpZD0icmVmLXJmYzIzOTYiPjxiPgorW1JGQzIzOTZdPC9iPjwvYT48L2R0PgorCis8ZGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjM5Ni50eHQiPiJSRkMyMzk2OiBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIChVUkkpOiBHZW5lcmljCitTeW50YXgiPC9hPiwgVC4gQmVybmVycy1MZWUsIFIuIEZpZWxkaW5nLCBMLiBNYXNpbnRlciwgQXVndXN0CisxOTk4LjxiciAvPgorVGhpcyBkb2N1bWVudCB1cGRhdGVzIFJGQzE3MzggYW5kIFJGQzE4MDguPGJyIC8+CitBdmFpbGFibGUgYXQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIzOTYudHh0Ij4KK2h0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIzOTYudHh0PC9hPjwvZGQ+CisKKzxkdD48YSBuYW1lPSJyZWYteG1sIiBpZD0icmVmLXhtbCI+PGI+W1hNTF08L2I+PC9hPjwvZHQ+CisKKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj4iRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgKFhNTCkgMS4wIFNwZWNpZmljYXRpb24iPC9hPiwgVC4KK0JyYXksIEouIFBhb2xpLCBDLiBNLiBTcGVyYmVyZy1NY1F1ZWVuLCAxMCBGZWJydWFyeSAxOTk4LjxiciAvPgorQXZhaWxhYmxlIGF0OiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWw8L2E+PC9kZD4KKworPGR0PjxhIG5hbWU9InJlZi14bWxucyIgaWQ9InJlZi14bWxucyI+PGI+W1hNTE5BTUVTXTwvYj48L2E+PC9kdD4KKworPGRkPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMiPiJOYW1lc3BhY2VzIGluIFhNTCI8L2E+LCBULiBCcmF5LCBELiBIb2xsYW5kZXIsIEEuIExheW1hbiwgMTQKK0phbnVhcnkgMTk5OS48YnIgLz4KK1hNTCBuYW1lc3BhY2VzIHByb3ZpZGUgYSBzaW1wbGUgbWV0aG9kIGZvciBxdWFsaWZ5aW5nIG5hbWVzIHVzZWQKK2luIFhNTCBkb2N1bWVudHMgYnkgYXNzb2NpYXRpbmcgdGhlbSB3aXRoIG5hbWVzcGFjZXMgaWRlbnRpZmllZAorYnkgVVJJLjxiciAvPgorQXZhaWxhYmxlIGF0OiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLW5hbWVzIj4KK2h0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXM8L2E+PC9kZD4KKworPC9kbD4KKzxwPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1dBSS9XQ0FHMUFBQS1Db25mb3JtYW5jZSIKK3RpdGxlPSJFeHBsYW5hdGlvbiBvZiBMZXZlbCBUcmlwbGUtQSBDb25mb3JtYW5jZSI+Cis8aW1nIGhlaWdodD0iMzIiIHdpZHRoPSI4OCIgCitzcmM9IndjYWcxQUFBLmdpZiIKK2FsdD0iTGV2ZWwgVHJpcGxlLUEgY29uZm9ybWFuY2UgaWNvbiwgVzNDLVdBSSBXZWIgQ29udGVudCBBY2Nlc3NpYmlsaXR5IEd1aWRlbGluZXMgMS4wIiAvPjwvYT48L3A+Cis8ZGl2IGNsYXNzPSJuYXZiYXIiPgorICA8aHIgLz4KKyAgPGEgaHJlZj0iI3RvYyI+dGFibGUgb2YgY29udGVudHM8L2E+IAorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC92YWxpZC94bGluay54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQveGxpbmsueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MTk0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QvdmFsaWQveGxpbmsueG1sCkBAIC0wLDAgKzEsNTI5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCFET0NUWVBFIHNwZWMgUFVCTElDICItLy9XM0MvL0RURCBTcGVjaWZpY2F0aW9uOjoxOTk5MDIwNS8vRU4iICJkdGRzL3htbHNwZWMuZHRkIiBbCis8IUVOVElUWSBkb2MtdHlwZSAiV0QiPgorPCFFTlRJVFkgaXNvNi5kb2MuZGF0ZSAnMjktTWF5LTE5OTknPgorXT4KKzwhLS1BcmJvclRleHQsIEluYy4sIDE5ODgtMTk5OCwgdi40MDAyLS0+Cis8P1B1YiBVRFQgX2Jvb2ttYXJrIF90YXJnZXQ/PgorPD9QdWIgSW5jPz4KKzw/eG1sLXN0eWxlc2hlZXQKK2hyZWY9ImZpbGU6Ly8vQ3wvUHJvZ3JhbSUyMEZpbGVzL1NvZnRRdWFkL1hNZXRhTCUyMDEvZGlzcGxheS94bWxzcGVjLmNzcyIKK3R5cGU9InRleHQvY3NzIj8+Cis8c3BlYz4KKworPCEtLSBMYXN0IGVkaXRlZDogMjcgTWF5IDE5OTkgYnkgYmVudCAtLT4KKzxoZWFkZXI+PD9QdWIgRHRsPz4KKwk8dGl0bGU+WE1MIExpbmtpbmcgTGFuZ3VhZ2UgKFhMaW5rKTwvdGl0bGU+CisJPHZlcnNpb24+VmVyc2lvbiAxLjA8L3ZlcnNpb24+CisJPHczYy1kZXNpZ25hdGlvbj48IS0tICZkb2MtdHlwZTstJmlzbzYuZG9jLmRhdGU7IC0tPiBXRC14bGluay0xOTk5MDUyNzwvdzNjLWRlc2lnbmF0aW9uPgorCTx3M2MtZG9jdHlwZT5Xb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtIFdvcmtpbmcgRHJhZnQ8L3czYy1kb2N0eXBlPgorCTxwdWJkYXRlPjxkYXk+Mjk8L2RheT48bW9udGg+TWF5PC9tb250aD48eWVhcj4xOTk5PC95ZWFyPjwvcHViZGF0ZT4KKwk8bm90aWNlPgorCTxwPlRoaXMgZHJhZnQgaXMgZm9yIHB1YmxpYyBkaXNjdXNzaW9uLjwvcD4KKwk8L25vdGljZT4KKwk8cHVibG9jPjxsb2MgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvWE1ML0dyb3VwLzE5OTkvMDUvV0QteGxpbmstY3VycmVudCI+aHR0cDovL3d3dy53My5vcmcvWE1ML0dyb3VwLzE5OTkvMDUvV0QteGxpbmstY3VycmVudDwvbG9jPjwvcHVibG9jPgorCTxwcmV2bG9jcz4KKwk8IS0tQ2hlY2s6IHdhcyBpdCBhY3R1YWxseSBBdWd1c3Q/LS0+CisJPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvR3JvdXAvMTk5OS8wNS9XRC14bGluay0xOTk5MDUyNyI+aHR0cDovL3d3dy53My5vcmcvWE1ML0dyb3VwLzE5OTkvMDUvV0QteGxpbmstMTk5OTA1Mjc8L2xvYz4KKwk8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1hNTC9Hcm91cC8xOTk5LzA1L1dELXhsaW5rLTE5OTkwNTA1Ij5odHRwOi8vd3d3LnczLm9yZy9YTUwvR3JvdXAvMTk5OS8wNS9XRC14bGluay0xOTk5MDUwNTwvbG9jPgorCTxsb2MgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9XRC14bGluay0xOTk4MDMwMyI+aHR0cDovL3d3dy53My5vcmcvVFIvMTk5OC9XRC14bGluay0xOTk4MDMwMzwvbG9jPgorCTxsb2MgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvV0QteG1sLWxpbmstOTcwNjMwIj5odHRwOi8vd3d3LnczLm9yZy9UUi9XRC14bWwtbGluay05NzA2MzA8L2xvYz48L3ByZXZsb2NzPgorCisJPGF1dGhsaXN0PgorCQk8IS0tVXBkYXRlZCBhdXRob3IgaHJlZnMgIGRvcmNoYXJkLS0+CisJCTwhLS0gVXBkYXRlIFN0ZXZlJ3MgZW1haWwgLSBiZW50IC0tPiAKKwkJPGF1dGhvcj4KKwkJCTxuYW1lPlN0ZXZlIERlUm9zZTwvbmFtZT4KKwkJCTxhZmZpbGlhdGlvbj5JbnNvIENvcnAuIGFuZCBCcm93biBVbml2ZXJzaXR5PC9hZmZpbGlhdGlvbj4KKwkJCTxlbWFpbCBocmVmPSJtYWlsdG86U3RldmVuX0RlUm9zZUBCcm93bi5lZHUiPlN0ZXZlbl9EZVJvc2VAQnJvd24uZWR1PC9lbWFpbD4KKwkJPC9hdXRob3I+CisJCTxhdXRob3I+CisJCQk8bmFtZT5EYXZpZCBPcmNoYXJkPC9uYW1lPgorCQkJPGFmZmlsaWF0aW9uPklCTSBDb3JwLjwvYWZmaWxpYXRpb24+CisJCQk8ZW1haWwgaHJlZj0ibWFpbHRvOmRvcmNoYXJkQGNhLmlibS5jb20iPmRvcmNoYXJkQGNhLmlibS5jb208L2VtYWlsPgorCQk8L2F1dGhvcj4KKwkJPGF1dGhvcj4KKwkJCTxuYW1lPkJlbiBUcmFmZm9yZDwvbmFtZT4KKwkJCTxhZmZpbGlhdGlvbj5JbnZpdGVkIEV4cGVydDwvYWZmaWxpYXRpb24+CisJCQk8ZW1haWwgaHJlZj0ibWFpbHRvOmJlbnRAZXhlbXBsYXJ5Lm5ldCI+YmVudEBleGVtcGxhcnkubmV0PC9lbWFpbD4KKwkJPC9hdXRob3I+CisJCTwhLS0gSSBzdWdnZXN0IHdlIG1vdmUgRXZlIGFuZCBUaW0gZG93biB0byB0aGUgQWNrbm93bGVkZ2VtZW50cyBzZWN0aW9uLiBXZQorCQlhbHNvIG91Z2h0IHRvIGFkZCBHYWJlIEJlZ2VkLURvdiB0aGVyZSwgYXMgd2VsbC4gYmVudAorCQlob3cgc2hhbGwgd2UgY2l0ZSBUaW0/IHNqZCBXaGF0IGFib3V0IHdpdGggYW4gQWNrbm93bGVkZ21lbnRzIHNlY3Rpb24/CisJCS1lbG0gPEFVVEhPUj4gPE5BTUU+VGltIEJyYXk8L05BTUU+IDxBRkZJTElBVElPTj5UZXh0dWFsaXR5PC9BRkZJTElBVElPTj4KKwkJPEVNQUlMPnRicmF5QHRleHR1YWxpdHkuY29tPC9FTUFJTD4gPC9BVVRIT1I+LS0+CisJPC9hdXRobGlzdD4KKworCTxzdGF0dXM+CisJCTxwPlRoaXMgaXMgYSBXM0MgV29ya2luZyBEcmFmdCBmb3IgcmV2aWV3IGJ5IFczQyBtZW1iZXJzIGFuZCBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMuIEl0IGlzIGEgZHJhZnQgZG9jdW1lbnQgYW5kIG1heSBiZSB1cGRhdGVkLCByZXBsYWNlZCwgb3Igb2Jzb2xldGVkIGJ5IG90aGVyIGRvY3VtZW50cyBhdCBhbnkgdGltZS4gSXQgaXMgaW5hcHByb3ByaWF0ZSB0byB1c2UgVzNDIFdvcmtpbmcgRHJhZnRzIGFzIHJlZmVyZW5jZSBtYXRlcmlhbCBvciB0byBjaXRlIHRoZW0gYXMgb3RoZXIgdGhhbiAid29yayBpbiBwcm9ncmVzcyIuIEEgbGlzdCBvZiBjdXJyZW50IFczQyB3b3JraW5nIGRyYWZ0cyBjYW4gYmUgZm91bmQgYXQgPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUiI+aHR0cDovL3d3dy53My5vcmcvVFI8L2xvYz4uPC9wPgorCQk8cD48ZW1waD5Ob3RlOjwvZW1waD4gU2luY2Ugd29ya2luZyBkcmFmdHMgYXJlIHN1YmplY3QgdG8gZnJlcXVlbnQgY2hhbmdlLCB5b3UgYXJlIGFkdmlzZWQgdG8gcmVmZXJlbmNlIHRoZSBhYm92ZSBVUkksIHJhdGhlciB0aGFuIHRoZSBVUklzIGZvciB3b3JraW5nIGRyYWZ0cyB0aGVtc2VsdmVzLiBTb21lIG9mIHRoZSB3b3JrIHJlbWFpbmluZyBpcyBkZXNjcmliZWQgaW4gPHNwZWNyZWYgcmVmPSJ1bmZpbmlzaGVkIi8+LiA8L3A+CisJCTxwPlRoaXMgd29yayBpcyBwYXJ0IG9mIHRoZSBXM0MgWE1MIEFjdGl2aXR5IChmb3IgY3VycmVudCBzdGF0dXMsIHNlZSA8bG9jIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL01hcmtVcC9TR01ML0FjdGl2aXR5Ij5odHRwOi8vd3d3LnczLm9yZy9YTUwvQWN0aXZpdHkgCQkgIDwvbG9jPikuIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgWFBvaW50ZXIgbGFuZ3VhZ2Ugd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgdXNlZCB3aXRoIFhMaW5rLCBzZWUgPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9NYXJrVXAvU0dNTC9BY3Rpdml0eSI+aHR0cDovL3d3dy53My5vcmcvVFIvV0QteHB0cjwvbG9jPi4KKwkJPC9wPgorCQk8cD5TZWUgPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9OT1RFLXhsaW5rLXByaW5jaXBsZXMiPmh0dHA6Ly93d3cudzMub3JnL1RSL05PVEUteGxpbmstcHJpbmNpcGxlcyA8L2xvYz4gZm9yIGFkZGl0aW9uYWwgYmFja2dyb3VuZCBvbiB0aGUgZGVzaWduIHByaW5jaXBsZXMgaW5mb3JtaW5nIFhMaW5rLjwvcD4KKwkJPHA+QWxzbyBzZWUgPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9OT1RFLXhsaW5rLXJlcS8iPmh0dHA6Ly93d3cudzMub3JnL1RSL05PVEUteGxpbmstcmVxLzwvbG9jPiBmb3IgdGhlIFhMaW5rIHJlcXVpcmVtZW50cyB0aGF0IHRoaXMgZG9jdW1lbnQgYXR0ZW1wdHMgdG8gc2F0aXNmeS48L3A+CisJPC9zdGF0dXM+CisKKwk8YWJzdHJhY3Q+CisJCTwhLS0gZWRpdGVkIHRoZSBhYnN0cmFjdCBmb3IgZnVydGhlciBjbGFyaXR5IC0gYmVudCAtLT4KKwkJPHA+VGhpcyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgY29uc3RydWN0cyB0aGF0IG1heSBiZSBpbnNlcnRlZCBpbnRvIFhNTCBEVERzLCBzY2hlbWFzIGFuZCBkb2N1bWVudCBpbnN0YW5jZXMgdG8gZGVzY3JpYmUgbGlua3MgYmV0d2VlbiBvYmplY3RzLiBJdCB1c2VzIFhNTCBzeW50YXggdG8gY3JlYXRlIHN0cnVjdHVyZXMgdGhhdCBjYW4gZGVzY3JpYmUgdGhlIHNpbXBsZSB1bmlkaXJlY3Rpb25hbCBoeXBlcmxpbmtzIG9mIHRvZGF5J3MgSFRNTCBhcyB3ZWxsIGFzIG1vcmUgc29waGlzdGljYXRlZCBsaW5rcy48L3A+CisJPC9hYnN0cmFjdD4KKworCTxwdWJzdG10PgorCQk8cD5CdXJsaW5ndG9uLCBTZWVrb25rLCBldCBhbC46IFdvcmxkLVdpZGUgV2ViIENvbnNvcnRpdW0sIFhNTCBXb3JraW5nIEdyb3VwLCAxOTk4LjwvcD4KKwk8L3B1YnN0bXQ+CisKKwk8c291cmNlZGVzYz4KKwkJPHA+Q3JlYXRlZCBpbiBlbGVjdHJvbmljIGZvcm0uPC9wPgorCTwvc291cmNlZGVzYz4KKworCTxsYW5ndXNhZ2U+CisJCTxsYW5ndWFnZSBpZD0iZW4iPkVuZ2xpc2g8L2xhbmd1YWdlPgorCQk8bGFuZ3VhZ2UgaWQ9ImVibmYiPkV4dGVuZGVkIEJhY2t1cy1OYXVyIEZvcm0gKGZvcm1hbCBncmFtbWFyKTwvbGFuZ3VhZ2U+CisJPC9sYW5ndXNhZ2U+CisKKwk8cmV2aXNpb25kZXNjPgorCQk8c2xpc3Q+CisJCQk8c2l0ZW0+MTk5Ny0wMS0xNSA6IFNrZWxldG9uIGRyYWZ0IGJ5IFRCPC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk3LTAxLTI0IDogRmxlc2hlZCBvdXQgYnkgc2pkPC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk3LTA0LTA4IDogU3Vic3RhbnRpdmUgZHJhZnQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTctMDYtMzAgOiBQdWJsaWMgZHJhZnQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTctMDgtMDEgOiBQdWJsaWMgZHJhZnQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTctMDgtMDUgOiBQcm9zZS9vcmdhbml6YXRpb24gd29yayBieSBzamQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTctMTAtMTQ6IENvbmZvcm1hbmNlIGFuZCBkZXNpZ24gcHJpbmNpcGxlczsgYSBiaXQgb2YgY2xlYW51cCBieSBlbG08L3NpdGVtPgorCQkJPHNpdGVtPjE5OTctMTEtMDc6IFVwZGF0ZSBmb3IgZWRpdG9yaWFsIGlzc3VlcyBwZXIgaXNzdWVzIGRvYywgYnkgc2pkLjwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5Ny0xMi0wMTogVXBkYXRlIGZvciBlZGl0b3JpYWwgaXNzdWVzIHBlciBpc3N1ZXMgZG9jIGluIHByZXBhcmF0aW9uIGZvciBGMkYgbWVldGluZywgYnkgc2pkLjwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OC0wMS0xMzogRWRpdG9yaWFsIGNsZWFudXAsIGFkZGl0aW9uIG9mIG5ldyBkZXNpZ24gcHJpbmNpcGxlcywgYnkgZWxtLjwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OC0wMi0yNzogU3BsaXR0aW5nIG91dCBvZiBYTGluayBhbmQgWFBvaW50ZXIsIGJ5IGVsbS48L3NpdGVtPgorCQkJPHNpdGVtPjE5OTgtMDMtMDM6IE1vdmVkIG1vc3Qgb2YgdGhlIFhQb2ludGVyIGxvY2F0b3Igc3R1ZmYgaGVyZS4gZWxtPC9zaXRlbT4KKwkJCTxzaXRlbT4xOTk5LTA0LTI0OiBFZGl0b3JpYWwgcmV3cml0ZXMgdG8gcmVwcmVzZW50IG5ldyBpZGVhcyBvbiBYTGluaywgZXNwZWNpYWxseSB0aGUgaW5jbHVzaW9uIG9mIGFyY3MuIGJlbnQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTktMDUtMDU6IFByb3NlL29yZ2FuaXphdGlvbiB3b3JrIGJ5IGRvcmNoYXJkLiBNb3ZlZCBtdWNoIG9mIHRoZSBzZW1hbnRpY3Mgc2VjdGlvbiBhcm91bmQsIGZyb206IGxvY2F0b3JzLCBsaW5rIHNlbWFudGljcywgcmVtb3RlIHJlc291cmNlIHNlbWFudGljcywgbG9jYWwgcmVzb3VyY2Ugc2VtYW50aWNzOyB0bzogcmVzb3VyY2Ugc2VtYW50aWNzLCBsb2NhdG9ycywgYmVoYXZpb3Igc2VtYW50aWNzLCBsaW5rIHNlbWFudGljcywgYXJjIHNlbWFudGljczwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OS0wNS0xMjogUHJvc2Uvb3JnYW5pemF0aW9uIHdvcmsuIFJlLW9yZ2FuaXplZCBzb21lIG9mIHRoZSBzZWN0aW9ucywgcmVtb3ZlZCBYTUwgY29uc3RydWN0cyBmcm9tIHRoZSBkb2N1bWVudCwgYWRkZWQgZGVzY3JpcHRpdmUgcHJvc2UsIGVkaXRlZCBkb2N1bWVudCB0ZXh0IGZvciBjbGFyaXR5LiBSZXdyb3RlIHRoZSBsaW5rIHJlY29nbml0aW9uIHNlY3Rpb24uIGJlbnQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTktMDUtMTc6IEZ1cnRoZXIgcHJvc2Ugd29yay4gQWRkZWQgbm9uLW5vcm1hdGl2ZSBleGFtcGxlcy4gQ2xhcmlmaWVkIGFyY3MuIGJlbnQ8L3NpdGVtPgorCQkJPHNpdGVtPjE5OTktMDUtMjM6IEVkaXRlZCBmb3IgZ3JhbW1hciBhbmQgY2xhcml0eS4gYmVudDwvc2l0ZW0+CisJCQk8c2l0ZW0+MTk5OS0wNS0yNzogRmluYWwgb25jZS1vdmVyIGJlZm9yZSBzZW5kaW5nIHRvIGdyb3VwLiBGaXhlZCBzamQncyBlbWFpbCBhZGRyZXNzLiBiZW50PC9zaXRlbT4KKwkJPC9zbGlzdD4KKwk8L3JldmlzaW9uZGVzYz4KKzwvaGVhZGVyPgorCis8Ym9keT4KKwk8ZGl2MT48P1B1YiBEdGw/PgorCQk8aGVhZD5JbnRyb2R1Y3Rpb248L2hlYWQ+CisJCTxwPlRoaXMgc3BlY2lmaWNhdGlvbiBkZWZpbmVzIGNvbnN0cnVjdHMgdGhhdCBtYXkgYmUgaW5zZXJ0ZWQgaW50byBYTUwgRFREcywgc2NoZW1hcywgYW5kIGRvY3VtZW50IGluc3RhbmNlcyB0byBkZXNjcmliZSBsaW5rcyBiZXR3ZWVuIG9iamVjdHMuIEEgPHRlcm1yZWYgZGVmPSJkdC1saW5rIj5saW5rPC90ZXJtcmVmPiwgYXMgdGhlIHRlcm0gaXMgdXNlZCBoZXJlLCBpcyBhbiBleHBsaWNpdCByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gb3IgbW9yZSBkYXRhIG9iamVjdHMgb3IgcG9ydGlvbnMgb2YgZGF0YSBvYmplY3RzLiBUaGlzIHNwZWNpZmljYXRpb24gaXMgY29uY2VybmVkIHdpdGggdGhlIHN5bnRheCB1c2VkIHRvIGFzc2VydCBsaW5rIGV4aXN0ZW5jZSBhbmQgZGVzY3JpYmUgbGluayBjaGFyYWN0ZXJpc3RpY3MuIEltcGxpY2l0ICh1bmFzc2VydGVkKSByZWxhdGlvbnNoaXBzLCBmb3IgZXhhbXBsZSB0aGF0IG9mIG9uZSB3b3JkIHRvIHRoZSBuZXh0IG9yIHRoYXQgb2YgYSB3b3JkIGluIGEgdGV4dCB0byBpdHMgZW50cnkgaW4gYW4gb24tbGluZSBkaWN0aW9uYXJ5IGFyZSBvYnZpb3VzbHkgaW1wb3J0YW50LCBidXQgb3V0c2lkZSBpdHMgc2NvcGUuPC9wPgorCQk8cD5MaW5rcyBhcmUgYXNzZXJ0ZWQgYnkgPHh0ZXJtcmVmIGhyZWY9IldELXhtbC1sYW5nLmh0bWwjZHQtZWxlbWVudCI+ZWxlbWVudHMgPC94dGVybXJlZj4gY29udGFpbmVkIGluIDx4dGVybXJlZiBocmVmPSJXRC14bWwtbGFuZy5odG1sI2R0LXhtbC1kb2MiPlhNTCBkb2N1bWVudCBpbnN0YW5jZXM8L3h0ZXJtcmVmPi4gVGhlIHNpbXBsZXN0IGNhc2UgaXMgdmVyeSBsaWtlIGFuIEhUTUwgPGNvZGU+QTwvY29kZT4gbGluaywgYW5kIGhhcyB0aGVzZSBjaGFyYWN0ZXJpc3RpY3M6CisJCQk8dWxpc3Q+CisJCQkJPGl0ZW0+PHA+VGhlIGxpbmsgaXMgZXhwcmVzc2VkIGF0IG9uZSBvZiBpdHMgZW5kcyAoc2ltaWxhciB0byB0aGUgPGNvZGU+QTwvY29kZT4gZWxlbWVudCBpbiBzb21lIGRvY3VtZW50KTwvcD48L2l0ZW0+CisJCQkJPGl0ZW0+PHA+VXNlcnMgY2FuIG9ubHkgaW5pdGlhdGUgdHJhdmVsIGZyb20gdGhhdCBlbmQgdG8gdGhlIG90aGVyPC9wPjwvaXRlbT4KKwkJCQk8aXRlbT48cD5UaGUgbGluaydzIGVmZmVjdCBvbiB3aW5kb3dzLCBmcmFtZXMsIGdvLWJhY2sgbGlzdHMsIHN0eWxlc2hlZXRzIGluIHVzZSwgYW5kIHNvIG9uIGlzIG1haW5seSBkZXRlcm1pbmVkIGJ5IGJyb3dzZXJzLCBub3QgYnkgdGhlIGxpbmsgaXRzZWxmLiBGb3IgZXhhbXBsZSwgdHJhdmVyYWwgb2YgPGNvZGU+QTwvY29kZT4gbGlua3Mgbm9ybWFsbHkgcmVwbGFjZXMgdGhlIGN1cnJlbnQgdmlldywgcGVyaGFwcyB3aXRoIGEgdXNlciBvcHRpb24gdG8gb3BlbiBhIG5ldyB3aW5kb3cuPC9wPjwvaXRlbT4KKwkJCQk8aXRlbT48cD5UaGUgbGluayBnb2VzIHRvIG9ubHkgb25lIGRlc3RpbmF0aW9uIChhbHRob3VnaCBhIHNlcnZlciBtYXkgaGF2ZSBncmVhdCBmcmVlZG9tIGluIGZpbmRpbmcgb3IgZHluYW1pY2FsbHkgY3JlYXRpbmcgdGhhdCBkZXN0aW5hdGlvbikuPC9wPjwvaXRlbT4KKwkJCTwvdWxpc3Q+CisJCTwvcD4KKwkJPHA+V2hpbGUgdGhpcyBzZXQgb2YgY2hhcmFjdGVyaXN0aWNzIGlzIGFscmVhZHkgdmVyeSBwb3dlcmZ1bCBhbmQgb2J2aW91c2x5IGhhcyBwcm92ZW4gaXRzZWxmIGhpZ2hseSB1c2VmdWwgYW5kIGVmZmVjdGl2ZSwgZWFjaCBvZiB0aGVzZSBhc3N1bXB0aW9ucyBhbHNvIGxpbWl0cyB0aGUgcmFuZ2Ugb2YgaHlwZXJ0ZXh0IGZ1bmN0aW9uYWxpdHkuIFRoZSBsaW5raW5nIG1vZGVsIGRlZmluZWQgaGVyZSBwcm92aWRlcyB3YXlzIHRvIGNyZWF0ZSBsaW5rcyB0aGF0IGdvIGJleW9uZCBlYWNoIG9mIHRoZXNlIHNwZWNpZmljIGNoYXJhY3RlcmlzdGljcywgdGh1cyBwcm92aWRpbmcgZmVhdHVyZXMgcHJldmlvdXNseSBhdmFpbGFibGUgbW9zdGx5IGluIGRlZGljYXRlZCBoeXBlcm1lZGlhIHN5c3RlbXMuCisJCTwvcD4KKworPGRpdjI+CisJPGhlYWQ+T3JpZ2luIGFuZCBHb2FsczwvaGVhZD4KKwk8cD5Gb2xsb3dpbmcgaXMgYSBzdW1tYXJ5IG9mIHRoZSBkZXNpZ24gcHJpbmNpcGxlcyBnb3Zlcm5pbmcgWExpbms6CisJCTxvbGlzdD4KKwkJCTxpdGVtPjxwPlhMaW5rIG11c3QgYmUgc3RyYWlnaHRmb3J3YXJkbHkgdXNhYmxlIG92ZXIgdGhlIEludGVybmV0LiA8L3A+PC9pdGVtPgorCQkJPGl0ZW0+PHA+WExpbmsgbXVzdCBiZSB1c2FibGUgYnkgYSB3aWRlIHZhcmlldHkgb2YgbGluayB1c2FnZSBkb21haW5zIGFuZCBjbGFzc2VzIG9mIGxpbmtpbmcgYXBwbGljYXRpb24gc29mdHdhcmUuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlhMaW5rIG11c3Qgc3VwcG9ydCBIVE1MIDQuMCBsaW5raW5nIGNvbnN0cnVjdHMuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlRoZSBYTGluayBleHByZXNzaW9uIGxhbmd1YWdlIG11c3QgYmUgWE1MLjwvcD48L2l0ZW0+CisJCQk8aXRlbT48cD5UaGUgWExpbmsgZGVzaWduIG11c3QgYmUgZm9ybWFsLCBjb25jaXNlLCBhbmQgaWxsdXN0cmF0aXZlLjwvcD48L2l0ZW0+CisJCQk8aXRlbT48cD5YTGlua3MgbXVzdCBiZSBodW1hbi1yZWFkYWJsZSBhbmQgaHVtYW4td3JpdGFibGUuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlhMaW5rcyBtYXkgcmVzaWRlIHdpdGhpbiBvciBvdXRzaWRlIHRoZSBkb2N1bWVudHMgaW4gd2hpY2ggdGhlCisJCQlwYXJ0aWNpcGF0aW5nIHJlc291cmNlcyByZXNpZGUuIDwvcD48L2l0ZW0+CisJCQk8aXRlbT48cD5YTGluayBtdXN0IHJlcHJlc2VudCB0aGUgYWJzdHJhY3Qgc3RydWN0dXJlIGFuZCBzaWduaWZpY2FuY2Ugb2YgbGlua3MuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPlhMaW5rIG11c3QgYmUgZmVhc2libGUgdG8gaW1wbGVtZW50LjwvcD48L2l0ZW0+CisJCQk8aXRlbT48cD5YTGluayBtdXN0IGJlIGluZm9ybWVkIGJ5IGtub3dsZWRnZSBvZiBlc3RhYmxpc2hlZCBoeXBlcm1lZGlhIHN5c3RlbXMgYW5kIHN0YW5kYXJkcy48L3A+PC9pdGVtPgorCQk8L29saXN0PgorCTwvcD4KKzwvZGl2Mj4KKzwhLS1DaGFuZ2VkIHRoZSBsaXN0IG9mIHJlcXVpcmVtZW50cyB0byByZWZsZWN0IGN1cnJlbnQgWExpbmsgcmVxdWlyZW1lbnRzCitkb2N1bWVudC4gYmVudC0tPgorCis8ZGl2Mj4KKwk8aGVhZD5SZWxhdGlvbnNoaXAgdG8gRXhpc3RpbmcgU3RhbmRhcmRzPC9oZWFkPgorCTxwPlRocmVlIHN0YW5kYXJkcyBoYXZlIGJlZW4gZXNwZWNpYWxseSBpbmZsdWVudGlhbDoKKwkJPHVsaXN0PgorCQkJPGl0ZW0+PHA+PGVtcGg+SFRNTDo8L2VtcGg+IERlZmluZXMgc2V2ZXJhbCBTR01MIGVsZW1lbnQgdHlwZXMgdGhhdCByZXByZXNlbnQgbGlua3MuPC9wPjwvaXRlbT4KKwkJCTxpdGVtPjxwPjxlbXBoPkh5VGltZTo8L2VtcGg+IERlZmluZXMgaW5saW5lIGFuZCBvdXQtb2YtbGluZSBsaW5rIHN0cnVjdHVyZXMgYW5kIHNvbWUgc2VtYW50aWMgZmVhdHVyZXMsIGluY2x1ZGluZyB0cmF2ZXJzYWwgY29udHJvbCBhbmQgcHJlc2VudGF0aW9uIG9mIG9iamVjdHMuIDwhLS1DaGFuZ2VkIGZyb20gInBsYWNlbWVudCBvZiBvYmplY3RzIGludG8gYSBkaXNwbGF5IG9yIG90aGVyIHNwYWNlIiAtZWxtLS0+CisJCQk8L3A+PC9pdGVtPgorCQkJPGl0ZW0+PHA+PGVtcGg+VGV4dCBFbmNvZGluZyBJbml0aWF0aXZlIEd1aWRlbGluZXMgKFRFSSBQMyk6PC9lbXBoPiBQcm92aWRlcyBzdHJ1Y3R1cmVzIGZvciBjcmVhdGluZyBsaW5rcywgYWdncmVnYXRlIG9iamVjdHMsIGFuZCBsaW5rIGNvbGxlY3Rpb25zIG91dCBvZiB0aGVtLjwvcD48L2l0ZW0+CisJCTwvdWxpc3Q+CisJPC9wPgorCTxwPk1hbnkgb3RoZXIgbGlua2luZyBzeXN0ZW1zIGhhdmUgYWxzbyBpbmZvcm1lZCB0aGlzIGRlc2lnbiwgZXNwZWNpYWxseSBEZXh0ZXIsIEZSRVNTLCBNaWNyb0Nvc20sIGFuZCBJbnRlck1lZGlhLjwvcD4KKzwvZGl2Mj4KKworPGRpdjI+CisJPGhlYWQ+VGVybWlub2xvZ3k8L2hlYWQ+CisJPHA+VGhlIGZvbGxvd2luZyBiYXNpYyB0ZXJtcyBhcHBseSBpbiB0aGlzIGRvY3VtZW50LiA8IS0tPElNRworCVNSQz0ibG9jYWw6Ly8uL2xpbmtkaWFnLmdpZiI+KGZpZ3VyZSB0byBiZSBpbnNlcnRlZCktLT4KKwkJPGdsaXN0PgorCQkJPGdpdGVtPgorCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1hcmMiIHRlcm09IkFyYyI+YXJjPC90ZXJtZGVmPjwvbGFiZWw+CisJCQk8ZGVmPjxwPkEgc3ltYm9saWMgcmVwcmVzZW50YXRpb24gb2YgdHJhdmVyc2FsIGJlaGF2aW9yIGluIGxpbmtzLCBlc3BlY2lhbGx5IHRoZSBkaXJlY3Rpb24sIGNvbnRleHQgYW5kIHRpbWluZyBvZiB0cmF2ZXJzYWwuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LWVsdHJlZSIgdGVybT0iRWxlbWVudCBUcmVlIj5lbGVtZW50IHRyZWU8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkEgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlbGV2YW50IHN0cnVjdHVyZSBzcGVjaWZpZWQgYnkgdGhlIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgaW4gYW4gWE1MIGRvY3VtZW50LCBiYXNlZCBvbiAiZ3JvdmVzIiBhcyBkZWZpbmVkIGluIHRoZSBJU08gRFNTU0wgc3RhbmRhcmQuIDwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1pbmxpbmUiIHRlcm09IkluLUxpbmUgTGluayI+aW5saW5lIGxpbms8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkFic3RyYWN0bHksIGEgPHRlcm1yZWYgZGVmPSJkdC1saW5rIj5saW5rPC90ZXJtcmVmPiB3aGljaCBzZXJ2ZXMgYXMgb25lIG9mIGl0cyBvd24gPHRlcm1yZWYgZGVmPSJkdC1yZXNvdXJjZSI+cmVzb3VyY2VzPC90ZXJtcmVmPi4gQ29uY3JldGVseSwgYSBsaW5rIHdoZXJlIHRoZSBjb250ZW50IG9mIHRoZSA8dGVybXJlZiBkZWY9ImR0LWxpbmtlbCI+bGlua2luZwllbGVtZW50PC90ZXJtcmVmPiBzZXJ2ZXMgYXMgYSA8dGVybXJlZiBkZWY9ImR0LXBhcnRpY2lwLXJlc291cmNlIj5wYXJ0aWNpcGF0aW5nIHJlc291cmNlPC90ZXJtcmVmPi4KKwkJCQlIVE1MIDxjb2RlPkE8L2NvZGU+LCBIeVRpbWUgPGNvZGU+Y2xpbms8L2NvZGU+LCBhbmQgVEVJCTxjb2RlPlhSRUY8L2NvZGU+CisJCQkJYXJlIGFsbCBpbmxpbmUgbGlua3MuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LWxpbmsiIHRlcm09IkxpbmsiPmxpbms8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPkFuIGV4cGxpY2l0IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBvciBtb3JlIGRhdGEgb2JqZWN0cyBvciBwb3J0aW9ucyBvZiBkYXRhIG9iamVjdHMuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LWxpbmtlbCIgdGVybT0iTGlua2luZyBFbGVtZW50Ij5saW5raW5nIGVsZW1lbnQgPC90ZXJtZGVmPjwvbGFiZWw+CisJCQkJPGRlZj48cD5BbiA8eHRlcm1yZWYgaHJlZj0iV0QteG1sLWxhbmcuaHRtbCNkdC1lbGVtZW50Ij5lbGVtZW50PC94dGVybXJlZj4gdGhhdCBhc3NlcnRzIHRoZSBleGlzdGVuY2UgYW5kIGRlc2NyaWJlcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIGEgPHRlcm1yZWYgZGVmPSJkdC1saW5rIj4gbGluazwvdGVybXJlZj4uPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LWxvY2FsLXJlc291cmNlIiB0ZXJtPSJMb2NhbCBSZXNvdXJjZSI+bG9jYWwgcmVzb3VyY2U8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPlRoZSBjb250ZW50IG9mIGFuIDx0ZXJtcmVmIGRlZj0iZHQtaW5saW5lIj5pbmxpbmU8L3Rlcm1yZWY+bGlua2luZyBlbGVtZW50LiBOb3RlIHRoYXQgdGhlIGNvbnRlbnQgb2YgdGhlIGxpbmtpbmcgZWxlbWVudCBjb3VsZCBiZSBleHBsaWNpdGx5IHBvaW50ZWQgdG8gYnkgbWVhbnMgb2YgYSByZWd1bGFyIDx0ZXJtcmVmIGRlZj0iZHQtbG9jYXRvciI+bG9jYXRvcjwvdGVybXJlZj4gaW4gdGhlIHNhbWUgbGlua2luZyBlbGVtZW50LCBpbiB3aGljaCBjYXNlIHRoZSByZXNvdXJjZSBpcyBjb25zaWRlcmVkIDx0ZXJtcmVmIGRlZj0iZHQtcmVtb3RlLXJlc291cmNlIj4gcmVtb3RlPC90ZXJtcmVmPiwgbm90IGxvY2FsLjwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1sb2NhdG9yIiB0ZXJtPSJMb2NhdG9yIj5sb2NhdG9yPC90ZXJtZGVmPiA8L2xhYmVsPgorCQkJCTxkZWY+PHA+RGF0YSwgcHJvdmlkZWQgYXMgcGFydCBvZiBhIGxpbmssIHdoaWNoIGlkZW50aWZpZXMgYQorCQkJCTx0ZXJtcmVmIGRlZj0iZHQtcmVzb3VyY2UiPnJlc291cmNlPC90ZXJtcmVmPi48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtbXVsdGlkaXIiIHRlcm09Ik11bHRpLURpcmVjdGlvbmFsIExpbmsiPm11bHRpZGlyZWN0aW9uYWwgbGluazwvdGVybWRlZj48L2xhYmVsPgorCQkJCTxkZWY+PHA+QSA8dGVybXJlZiBkZWY9ImR0LWxpbmsiPmxpbms8L3Rlcm1yZWY+IHdob3NlIDx0ZXJtcmVmIGRlZj0iZHQtdHJhdmVyc2FsIj4gdHJhdmVyc2FsPC90ZXJtcmVmPiBjYW4gYmUgaW5pdGlhdGVkIGZyb20gbW9yZSB0aGFuIG9uZSBvZiBpdHMgPHRlcm1yZWYJZGVmPSJkdC1wYXJ0aWNpcC1yZXNvdXJjZSI+IHBhcnRpY2lwYXRpbmcgcmVzb3VyY2VzPC90ZXJtcmVmPi4gTm90ZSB0aGF0IGJlaW5nIGFibGUgdG8gImdvIGJhY2siIGFmdGVyIGZvbGxvd2luZyBhIG9uZS1kaXJlY3Rpb25hbCBsaW5rIGRvZXMgbm90IG1ha2UgdGhlIGxpbmsgbXVsdGlkaXJlY3Rpb25hbC48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtb3V0b2ZsaW5lIiB0ZXJtPSJPdXQtb2YtbGluZSBMaW5rIj5vdXQtb2YtbGluZSBsaW5rPC90ZXJtZGVmPjwvbGFiZWw+CisJCQkJPGRlZj48cD5BIDx0ZXJtcmVmIGRlZj0iZHQtbGluayI+bGluazwvdGVybXJlZj4gd2hvc2UgY29udGVudCBkb2VzIG5vdCBzZXJ2ZSBhcyBvbmUgb2YgdGhlIGxpbmsncyA8dGVybXJlZiBkZWY9ImR0LXBhcnRpY2lwLXJlc291cmNlIj5wYXJ0aWNpcGF0aW5nIHJlc291cmNlcyA8L3Rlcm1yZWY+LiBTdWNoIGxpbmtzIAkJCQkJCXByZXN1cHBvc2UgYSBub3Rpb24gbGlrZSA8dGVybXJlZiBkZWY9ImR0LXhsZyI+ZXh0ZW5kZWQgbGluayBncm91cHM8L3Rlcm1yZWY+LCB3aGljaCBpbnN0cnVjdCBhcHBsaWNhdGlvbiBzb2Z0d2FyZSB3aGVyZSB0byBsb29rIGZvciBsaW5rcy4gT3V0LW9mLWxpbmUgbGlua3MgYXJlIGdlbmVyYWxseSByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyBtdWx0aWRpcmVjdGlvbmFsIDx0ZXJtcmVmIGRlZj0iZHQtdHJhdmVyc2FsIj50cmF2ZXJzYWw8L3Rlcm1yZWY+IGFuZCBmb3IgYWxsb3dpbmcgcmVhZC1vbmx5IHJlc291cmNlcyB0byBoYXZlIG91dGdvaW5nIGxpbmtzLjwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1wYXJzZWRxIiB0ZXJtPSJQYXJzZWQiPnBhcnNlZDwvdGVybWRlZj48L2xhYmVsPiA8ZGVmPjxwPkluIHRoZSBjb250ZXh0IG9mIGxpbmsgYmVoYXZpb3IsIGEgcGFyc2VkIGxpbmsgaXMgYW55IGxpbmsJCQl3aG9zZSBjb250ZW50IGlzIHRyYW5zY2x1ZGVkIGludG8gdGhlIGRvY3VtZW50IHdoZXJlIHRoZSBsaW5rIG9yaWdpbmF0ZWQuIFRoZQl1c2Ugb2YgdGhlIHRlcm0gInBhcnNlZCIgZGlyZWN0bHkgcmVmZXJzIHRvIHRoZSBjb25jZXB0IGluIFhNTCBvZiBhCisJCQkJcGFyc2VkIGVudGl0eS48L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtcGFydGljaXAtcmVzb3VyY2UiIHRlcm09IlBhcnRpY2lwYXRpbmcgUmVzb3VyY2UiPiBwYXJ0aWNpcGF0aW5nIHJlc291cmNlPC90ZXJtZGVmPjwvbGFiZWw+CisJCQkJPGRlZj48cD5BIDx0ZXJtcmVmIGRlZj0iZHQtcmVzb3VyY2UiPnJlc291cmNlPC90ZXJtcmVmPiB0aGF0IGJlbG9uZ3MgdG8gYSBsaW5rLiBBbGwgcmVzb3VyY2VzIGFyZSBwb3RlbnRpYWwgY29udHJpYnV0b3JzIHRvIGEgbGluazsgcGFydGljaXBhdGluZwlyZXNvdXJjZXMgYXJlIHRoZSBhY3R1YWwgY29udHJpYnV0b3JzIHRvIGEgcGFydGljdWxhciBsaW5rLjwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCQk8Z2l0ZW0+CisJCQkJPGxhYmVsPjx0ZXJtZGVmIGlkPSJkdC1yZW1vdGUtcmVzb3VyY2UiIHRlcm09IlJlbW90ZSBSZXNvdXJjZSI+cmVtb3RlIHJlc291cmNlPC90ZXJtZGVmPjwvbGFiZWw+CisJCQkJPGRlZj48cD5BbnkgcGFydGljaXBhdGluZyByZXNvdXJjZSBvZiBhIGxpbmsgdGhhdCBpcyBwb2ludGVkIHRvIHdpdGggYSBsb2NhdG9yLiA8L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtcmVzb3VyY2UiIHRlcm09IlJlc291cmNlIj5yZXNvdXJjZTwvdGVybWRlZj48L2xhYmVsPgorCQkJCTxkZWY+PHA+SW4gdGhlIGFic3RyYWN0IHNlbnNlLCBhbiBhZGRyZXNzYWJsZSB1bml0IG9mIGluZm9ybWF0aW9uIG9yIHNlcnZpY2UgdGhhdCBpcyBwYXJ0aWNpcGF0aW5nIGluIGEgPHRlcm1yZWYgZGVmPSJkdC1saW5rIj5saW5rPC90ZXJtcmVmPi4gRXhhbXBsZXMgaW5jbHVkZSBmaWxlcywgaW1hZ2VzLCBkb2N1bWVudHMsIHByb2dyYW1zLCBhbmQgcXVlcnkgcmVzdWx0cy4gQ29uY3JldGVseSwgYW55dGhpbmcgcmVhY2hhYmxlIGJ5IHRoZSB1c2Ugb2YgYSA8dGVybXJlZiBkZWY9ImR0LWxvY2F0b3IiPmxvY2F0b3I8L3Rlcm1yZWY+IGluIHNvbWUgPHRlcm1yZWYgZGVmPSJkdC1saW5rZWwiPmxpbmtpbmcJZWxlbWVudDwvdGVybXJlZj4uIE5vdGUgdGhhdCB0aGlzIHRlcm0gYW5kIGl0cyBkZWZpbml0aW9uIGFyZSB0YWtlbiBmcm9tIHRoZSBiYXNpYyBzcGVjaWZpY2F0aW9ucyBnb3Zlcm5pbmcgdGhlIFdvcmxkIFdpZGUgV2ViLiA8IS0tSm9lbCBub3RlczogbmVlZCBsaW5rIGhlcmUuIGJlbnQgYXNrczogQSBsaW5rPy0tPgorCQkJCSA8L3A+PC9kZWY+CisJCQk8L2dpdGVtPgorCQkJPGdpdGVtPgorCQkJCTxsYWJlbD48dGVybWRlZiBpZD0iZHQtc3VicmVzb3VyY2UiIHRlcm09InN1Yi1SZXNvdXJjZSI+c3ViLXJlc291cmNlPC90ZXJtZGVmPjwvbGFiZWw+CisJCQkJPGRlZj48cD5BIHBvcnRpb24gb2YgYSByZXNvdXJjZSwgcG9pbnRlZCB0byBhcyB0aGUgcHJlY2lzZQlkZXN0aW5hdGlvbiBvZiBhIGxpbmsuIEFzIG9uZSBleGFtcGxlLCBhIGxpbmsgbWlnaHQgc3BlY2lmeSB0aGF0IGFuIGVudGlyZQlkb2N1bWVudCBiZSByZXRyaWV2ZWQgYW5kIGRpc3BsYXllZCwgYnV0IHRoYXQgc29tZSBzcGVjaWZpYyBwYXJ0KHMpIG9mIGl0IGlzIHRoZSBzcGVjaWZpYyBsaW5rZWQgZGF0YSwgdG8gYmUgdHJlYXRlZCBpbiBhbiBhcHBsaWNhdGlvbi1hcHByb3ByaWF0ZSBtYW5uZXIgc3VjaCBhcyBpbmRpY2F0aW9uIGJ5IGhpZ2hsaWdodGluZywgc2Nyb2xsaW5nLCBldGMuPC9wPjwvZGVmPgorCQkJPC9naXRlbT4KKwkJCTxnaXRlbT4KKwkJCQk8bGFiZWw+PHRlcm1kZWYgaWQ9ImR0LXRyYXZlcnNhbCIgdGVybT0iVHJhdmVyc2FsIj50cmF2ZXJzYWw8L3Rlcm1kZWY+PC9sYWJlbD4KKwkJCQk8ZGVmPjxwPlRoZSBhY3Rpb24gb2YgdXNpbmcgYSA8dGVybXJlZiBkZWY9ImR0LWxpbmsiPmxpbms8L3Rlcm1yZWY+OyB0aGF0IGlzLCBvZiBhY2Nlc3NpbmcgYSA8dGVybXJlZiBkZWY9ImR0LXJlc291cmNlIj5yZXNvdXJjZTwvdGVybXJlZj4uIFRyYXZlcnNhbCBtYXkgYmUgaW5pdGlhdGVkIGJ5IGEgdXNlciBhY3Rpb24gKGZvciBleGFtcGxlLCBjbGlja2luZyBvbiB0aGUgZGlzcGxheWVkIGNvbnRlbnQgb2YgYSA8dGVybXJlZiBkZWY9ImR0LWxpbmtlbCI+bGlua2luZyBlbGVtZW50PC90ZXJtcmVmPikgb3Igb2NjdXIgdW5kZXIgcHJvZ3JhbSBjb250cm9sLjwvcD48L2RlZj4KKwkJCTwvZ2l0ZW0+CisJCTwvZ2xpc3Q+CisJPC9wPgorPC9kaXYyPgorCis8ZGl2Mj4KKwk8aGVhZD5Ob3RhdGlvbjwvaGVhZD4KKwk8cD5UaGUgZm9ybWFsIGdyYW1tYXIgZm9yIDx0ZXJtcmVmIGRlZj0iZHQtbG9jYXRvciI+bG9jYXRvcnM8L3Rlcm1yZWY+IGlzIGdpdmVuIHVzaW5nIGEgc2ltcGxlIEV4dGVuZGVkIEJhY2t1cy1OYXVyIEZvcm0gKEVCTkYpIGxvY2F0aW9uLCBhcyBkZXNjcmliZWQgaW4gPHhzcGVjcmVmIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjc2VjLW5vdGF0aW9uIj50aGUgWE1MIHNwZWNpZmljYXRpb248L3hzcGVjcmVmPi48L3A+CisJPCEtLSBmaXhlZCBsaW5rIHRvIFhNTCBzcGVjIC0gYmVudCAtLT4KKzwvZGl2Mj4KKzwvZGl2MT4KKworPGRpdjEgaWQ9ImFkZHJlc3NpbmciPjw/UHViIER0bD8+CisJPGhlYWQ+TG9jYXRvciBTeW50YXg8L2hlYWQ+CisJPHA+VGhlIGxvY2F0b3IgZm9yIGEgPHRlcm1yZWYgZGVmPSJkdC1yZXNvdXJjZSI+cmVzb3VyY2U8L3Rlcm1yZWY+IGlzIHR5cGljYWxseSBwcm92aWRlZCBieSBtZWFucyBvZiBhIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciwgb3IgVVJJLiBYUG9pbnRlcnMgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgVVJJIHN0cnVjdHVyZSwgYXMgZnJhZ21lbnQgaWRlbnRpZmllcnMsIHRvIHNwZWNpZnkgYSBtb3JlIHByZWNpc2Ugc3ViLXJlc291cmNlLiA8L3A+CisJPCEtLSBSZW1vdmVkIHRoZSBkaXNjdXNzaW9uIG9mIHF1ZXJpZXMgZnJvbSB0aGUgcHJldmlvdXMgcGFyYWdyYXBoLCBkdWUgdG8gY29udGVudGlvbiB3aXRoaW4gdGhlIFdHLiBiZW50IC0tPgorCTxwPkEgbG9jYXRvciBnZW5lcmFsbHkgY29udGFpbnMgYSBVUkksIGFzIGRlc2NyaWJlZCBpbiBJRVRGIFJGQ3MgPGJpYnJlZiByZWY9InJmYzE3MzgiLz4gYW5kIDxiaWJyZWYgcmVmPSJyZmMxODA4Ii8+LiBBcyB0aGVzZSBSRkNzIHN0YXRlLCB0aGUgVVJJIG1heSBpbmNsdWRlIGEgdHJhaWxpbmcgPGVtcGg+cXVlcnk8L2VtcGg+IChtYXJrZWQgYnkgYSBsZWFkaW5nICI8Y29kZT4/PC9jb2RlPiIpLCBhbmQgYmUgZm9sbG93ZWQgYnkgYSAiPGNvZGU+IzwvY29kZT4iIGFuZCBhIDxlbXBoPmZyYWdtZW50IGlkZW50aWZpZXI8L2VtcGg+LCB3aXRoIHRoZSBxdWVyeSBpbnRlcnByZXRlZCBieSB0aGUgaG9zdCBwcm92aWRpbmcgdGhlIGluZGljYXRlZCByZXNvdXJjZSwgYW5kIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciBkZXBlbmRlbnQgb24gdGhlIGRhdGEgdHlwZSBvZiB0aGUgaW5kaWNhdGVkIHJlc291cmNlLjwvcD4KKwk8IS0tSXMgdGhlcmUgc29tZSByZXN0cmljdGlvbiBvbiBVUk5zIGhhdmluZyBxdWVyaWVzIGFuZC9vciBmcmFnbWVudCBpZGVudGlmaWVycz8gIFNpbmNlIHRoZXNlIFJGQ3MgZG9uJ3QgbWVudGlvbiBVUklzIGV4cGxpY2l0bHksIHNob3VsZCB0aGUgd29yZGluZyBoZXJlIGxlYWQgZnJvbSBVUkxzIHRvIFVSSXMgbW9yZSBleHBsaWNpdGx5PyAtZWxtLS0+CisJPHA+SW4gb3JkZXIgdG8gbG9jYXRlIFhNTCBkb2N1bWVudHMgYW5kIHBvcnRpb25zIG9mIGRvY3VtZW50cywgYSBsb2NhdG9yIHZhbHVlIG1heSBjb250YWluIGVpdGhlciBhIDx4dGVybXJlZiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9BZGRyZXNzaW5nL3JmYzE3MzgudHh0Ij4gVVJJPC94dGVybXJlZj4gb3IgYSBmcmFnbWVudCBpZGVudGlmaWVyLCBvciBib3RoLiBBbnkgZnJhZ21lbnQgaWRlbnRpZmllciBmb3IgcG9pbnRpbmcgaW50byBYTUwgbXVzdCBiZSBhbiA8eHRlcm1yZWYgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvV0QteHB0ciNkdC14cG9pbnRlciI+IFhQb2ludGVyPC94dGVybXJlZj4uPC9wPgorCTxwPlNwZWNpYWwgc3ludGF4IG1heSBiZSB1c2VkIHRvIHJlcXVlc3QgdGhlIHVzZSBvZiBwYXJ0aWN1bGFyIHByb2Nlc3NpbmcgbW9kZWxzIGluIGFjY2Vzc2luZyB0aGUgbG9jYXRvcidzIHJlc291cmNlLiBUaGlzIGlzIGRlc2lnbmVkIHRvIHJlZmxlY3QgdGhlIHJlYWxpdGllcyBvZiBuZXR3b3JrIG9wZXJhdGlvbiwgd2hlcmUgaXQgbWF5IG9yIG1heSBub3QgYmUgZGVzaXJhYmxlIHRvIGV4ZXJjaXNlIGZpbmUgY29udHJvbCBvdmVyIHRoZSBkaXN0cmlidXRpb24gb2Ygd29yayBiZXR3ZWVuIGxvY2FsIGFuZCByZW1vdGUgcHJvY2Vzc29ycy4gCisJCTxzY3JhcCBpZD0ibG9jYXRvciIgbGFuZz0iZWJuZiI+CisJCQk8aGVhZD5Mb2NhdG9yPC9oZWFkPgorCQkJPHByb2QgaWQ9Im50LWxvY2F0b3IiPgorCQkJCTxsaHM+TG9jYXRvcjwvbGhzPgorCQkJCTxyaHM+PG50IGRlZj0ibnQtdXJpIj5VUkk8L250PjwvcmhzPgorCQkJCTxyaHM+fCA8bnQgZGVmPSJudC1jb25uZWN0b3IiPkNvbm5lY3RvcjwvbnQ+ICg8eG50IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1dELXhwdHIiPlhQb2ludGVyPC94bnQ+IHwgPHhudCBocmVmPSJXRC14bWwtbGFuZy5odG1sI05ULU5hbWUiPk5hbWU8L3hudD4pPC9yaHM+CisJCQkJPHJocz58IDxudCBkZWY9Im50LXVyaSI+VVJJPC9udD4gPG50IGRlZj0ibnQtY29ubmVjdG9yIj5Db25uZWN0b3I8L250PiAoPHhudCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14cHRyIj5YUG9pbnRlcjwveG50PiB8IDx4bnQgaHJlZj0iV0QteG1sLWxhbmcuaHRtbCNOVC1OYW1lIj5OYW1lPC94bnQ+KTwvcmhzPgorCQkJPC9wcm9kPgorCQkJPHByb2QgaWQ9Im50LWNvbm5lY3RvciI+CisJCQkJPGxocz5Db25uZWN0b3I8L2xocz48cmhzPicjJyB8ICd8JzwvcmhzPgorCQkJPC9wcm9kPgorCQkJPHByb2QgaWQ9Im50LXVyaSI+CisJCQkJPGxocz5VUkk8L2xocz48cmhzPjx4bnQgaHJlZj0iV0QteG1sLWxhbmcuaHRtbCNOVC1VUkxjaGFyIj5VUkljaGFyKjwveG50PjwvcmhzPgorCQkJPC9wcm9kPgorCQk8L3NjcmFwPgorCTwvcD4KKwk8cD48dGVybWRlZiBpZD0iZHQtZGVzaWduYXRlZCIgdGVybT0iRGVzaWduYXRlZCBSZXNvdXJjZSI+SW4gdGhpcyBkaXNjdXNzaW9uLCB0aGUgdGVybSA8dGVybT5kZXNpZ25hdGVkIHJlc291cmNlPC90ZXJtPiByZWZlcnMgdG8gdGhlIHJlc291cmNlIHdoaWNoIGFuIGVudGlyZSBsb2NhdG9yIHNlcnZlcyB0byBsb2NhdGUuPC90ZXJtZGVmPiBUaGUgZm9sbG93aW5nIHJ1bGVzIGFwcGx5OgorCQk8dWxpc3Q+CisJCQk8aXRlbT4KKwkJCQk8cD48dGVybWRlZiBpZD0iZHQtY29udGFpbmluZy1yZXNvdXJjZSIgdGVybT0iQ29udGFpbmluZyBSZXNvdXJjZSI+CQkgIFRoZSBVUkksIGlmIHByb3ZpZGVkLCBsb2NhdGVzIGEgcmVzb3VyY2UgY2FsbGVkIHRoZSA8dGVybT5jb250YWluaW5nIHJlc291cmNlPC90ZXJtPi48L3Rlcm1kZWY+PC9wPgorCQkJPC9pdGVtPgorCQkJPGl0ZW0+CisJCQkJPHA+SWYgdGhlIFVSSSBpcyBub3QgcHJvdmlkZWQsIHRoZSBjb250YWluaW5nIHJlc291cmNlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSBsaW5raW5nIGVsZW1lbnQgaXMgY29udGFpbmVkLiAKKwkJCQk8L3A+PC9pdGVtPgorCQkJPGl0ZW0+CisJCQkJPHA+PHRlcm1kZWYgaWQ9ImR0LXN1Yi1yZXNvdXJjZSIgdGVybT0iU3ViLVJlc291cmNlIj5JZiBhbiBYUG9pbnRlcgkJCQkgIGlzIHByb3ZpZGVkLCB0aGUgZGVzaWduYXRlZCByZXNvdXJjZSBpcyBhIDx0ZXJtPnN1Yi1yZXNvdXJjZTwvdGVybT4KKwkJCQlvZiB0aGUgY29udGFpbmluZyByZXNvdXJjZTsgb3RoZXJ3aXNlIHRoZSBkZXNpZ25hdGVkIHJlc291cmNlIGlzIHRoZQorCQkJCWNvbnRhaW5pbmcgcmVzb3VyY2UuPC90ZXJtZGVmPjwvcD4KKwkJCTwvaXRlbT4KKwkJCTwhLS1JcyB0aGlzIG5vdyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIHN3aXRjaCBmcm9tIGhlcmUoKSB0byBvcmlnaW4oKT8gLWVsbSAKKwkJCU95LCB5ZXMsIGkgdGhpbmsgc28uIGl0IHdpbGwgcmVxdWlyZSBzb21lIGZ1biB3b3JkaW5nLCB0aG91Z2gsIHNvIGkgaGF2ZW4ndCBmaXhlZCBpdCB5ZXQgaGVyZSAtc2pkLS0+CisJCQk8aXRlbT4KKwkJCQk8cD5JZiB0aGUgPG50IGRlZj0ibnQtY29ubmVjdG9yIj5Db25uZWN0b3I8L250PiBpcyBmb2xsb3dlZCBkaXJlY3RseSBieSBhIDx4bnQgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNOVC1OYW1lIj5OYW1lPC94bnQ+LCB0aGUgPHhudCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI05ULU5hbWUiPk5hbWU8L3hudD4gaXMgc2hvcnRoYW5kIGZvciB0aGUgWFBvaW50ZXIiPGNvZGU+aWQoTmFtZSk8L2NvZGU+IjsgdGhhdCBpcywgdGhlIHN1Yi1yZXNvdXJjZSBpcyB0aGUgZWxlbWVudCBpbiB0aGUgY29udGFpbmluZyByZXNvdXJjZSB0aGF0IGhhcyBhbiBYTUwgPHh0ZXJtcmVmIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjc2VjLWF0dHJ0eXBlcyI+SUQgYXR0cmlidXRlPC94dGVybXJlZj4gd2hvc2UgdmFsdWUgPHh0ZXJtcmVmIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjZHQtbWF0Y2giPm1hdGNoZXM8L3h0ZXJtcmVmPiB0aGUgCQkJCSAgPHhudCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI05ULU5hbWUiPk5hbWU8L3hudD4uIFRoaXMgc2hvcnRoYW5kIGlzIHRvIGVuY291cmFnZSB1c2Ugb2YgdGhlIHJvYnVzdCA8Y29kZT5pZDwvY29kZT4gYWRkcmVzc2luZyBtb2RlLjwvcD4KKwkJCTwvaXRlbT4KKwkJCTwhLS0gZml4ZWQgbGlua3MgdG8gdGhlIFhNTCByZWNvbW1lbmRhdGlvbiAtIGJlbnQgLS0+CisJCQk8aXRlbT4KKwkJCQk8cD5JZiB0aGUgY29ubmVjdG9yIGlzICI8Y29kZT4jPC9jb2RlPiIsIHRoaXMgc2lnbmFscyBhbiBpbnRlbnQgdGhhdCB0aGUgY29udGFpbmluZyByZXNvdXJjZSBpcyB0byBiZSBmZXRjaGVkIGFzIGEgd2hvbGUgZnJvbSB0aGUgaG9zdCB0aGF0IHByb3ZpZGVzIGl0LCBhbmQgdGhhdCB0aGUgWFBvaW50ZXIgcHJvY2Vzc2luZyB0byBleHRyYWN0IHRoZSBzdWItcmVzb3VyY2UKKwkJCQlpcyB0byBiZSBwZXJmb3JtZWQgb24gdGhlIGNsaWVudCwgdGhhdCBpcyB0byBzYXkgb24gdGhlIHNhbWUgc3lzdGVtIHdoZXJlIHRoZSBsaW5raW5nIGVsZW1lbnQgaXMgcmVjb2duaXplZCBhbmQgcHJvY2Vzc2VkLjwvcD4KKwkJCTwvaXRlbT4KKwkJCTxpdGVtPgorCQkJCTxwPklmIHRoZSBjb25uZWN0b3IgaXMgIjxjb2RlPnw8L2NvZGU+Iiwgbm8gaW50ZW50IGlzIHNpZ25hbGVkIGFzIHRvIHdoYXQgcHJvY2Vzc2luZyBtb2RlbCBpcyB0byBiZSB1c2VkIHRvIGdvIGFib3V0IGFjY2Vzc2luZyB0aGUgZGVzaWduYXRlZCByZXNvdXJjZS48L3A+CisJCQk8L2l0ZW0+CisJCTwvdWxpc3Q+CisJPC9wPgorCTxwPk5vdGUgdGhhdCB0aGUgZGVmaW5pdGlvbiBvZiBhIFVSSSBpbmNsdWRlcyBhbiBvcHRpb25hbCBxdWVyeSBjb21wb25lbnQuIDwvcD4KKwk8cD5JbiB0aGUgY2FzZSB3aGVyZSB0aGUgVVJJIGNvbnRhaW5zIGEgcXVlcnkgKHRvIGJlIGludGVycHJldGVkIGJ5IHRoZSBzZXJ2ZXIpLCBpbmZvcm1hdGlvbiBwcm92aWRlcnMgYW5kIGF1dGhvcnMgb2Ygc2VydmVyIHNvZnR3YXJlIGFyZSB1cmdlZCB0byB1c2UgcXVlcmllcyBhcyBmb2xsb3dzOiAKKwkJPHNjcmFwIGlkPSJxdWVyeXN5bnRheCIgbGFuZz0iZWJuZiI+CisJCQk8aGVhZD5RdWVyeTwvaGVhZD4KKwkJCTxwcm9kIGlkPSJudC1xdWVyeSI+CisJCQkJPGxocz5RdWVyeTwvbGhzPjxyaHM+J1hNTC1YUFRSPScgKDx4bnQgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvV0QteHB0ciI+IFhQb2ludGVyPC94bnQ+IHwgPHhudCBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI05ULU5hbWUiPk5hbWU8L3hudD4pPC9yaHM+CisJCQk8L3Byb2Q+CisJCTwvc2NyYXA+CisJPC9wPgorCTwhLS0gZml4ZWQgbGluayB0byBYTUwgcmVjb21tZW5kYXRpb24gLSBiZW50IC0tPgorPC9kaXYxPgorCis8ZGl2MT48P1B1YiBEdGw/PgorCTxoZWFkPkxpbmsgUmVjb2duaXRpb248L2hlYWQ+CisJPHA+VGhlIGV4aXN0ZW5jZSBvZiBhIDx0ZXJtcmVmIGRlZj0iZHQtbGluayI+bGluazwvdGVybXJlZj4gaXMgYXNzZXJ0ZWQgYnkgYSA8dGVybXJlZiBkZWY9ImR0LWxpbmtlbCI+bGlua2luZyBlbGVtZW50PC90ZXJtcmVmPi4gTGlua2luZyBlbGVtZW50cyBtdXN0IGJlIHJlY29nbml6ZWQgcmVsaWFibHkgYnkgYXBwbGljYXRpb24gc29mdHdhcmUgaW4gb3JkZXIgdG8gcHJvdmlkZSBhcHByb3ByaWF0ZSBkaXNwbGF5IGFuZCBiZWhhdmlvci4gVGhlcmUgYXJlIHNldmVyYWwgd2F5cyBsaW5rIHJlY29nbml0aW9uIGNvdWxkIGJlIGFjY29tcGxpc2hlZDogZm9yIGV4YW1wbGUsIHJlc2VydmluZyBlbGVtZW50IHR5cGUgbmFtZXMsIHJlc2VydmluZyBhdHRyaWJ1dGVzIG5hbWVzLCBsZWF2aW5nIHRoZSBtYXR0ZXIgb2YgcmVjb2duaXRpb24gZW50aXJlbHkgdXAgdG8gc3R5bGVzaGVldHMgYW5kIGFwcGxpY2F0aW9uIHNvZnR3YXJlLCBvciB1c2luZyB0aGUgWExpbmsgPHh0ZXJtcmVmIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMvIj5uYW1lc3BhY2U8L3h0ZXJtcmVmPiB0byBzcGVjaWZ5IGVsZW1lbnQgbmFtZXMgYW5kIGF0dHJpYnV0ZSBuYW1lcyB0aGF0IHdvdWxkIGJlIHJlY29nbml6ZWQgYnkgbmFtZXNwYWNlIGFuZCBYTGluay1hd2FyZSBwcm9jZXNzb3JzLiBVc2luZyBlbGVtZW50IGFuZCBhdHRyaWJ1dGUgbmFtZXMgd2l0aGluIHRoZSBYTGluayBuYW1lc3BhY2UgcHJvdmlkZXMgYSBiYWxhbmNlIGJldHdlZW4gZ2l2aW5nIHVzZXJzIGNvbnRyb2wgb2YgdGhlaXIgb3duIG1hcmt1cCBsYW5ndWFnZSBkZXNpZ24gYW5kIGtlZXBpbmcgdGhlIGlkZW50aWZpY2F0aW9uIG9mIGxpbmtpbmcgZWxlbWVudHMgc2ltcGxlIGFuZCB1bmFtYmlndW91cy48L3A+CisJPHA+VGhlIHR3byBhcHByb2FjaGVzIHRvIGlkZW50aWZ5aW5nIGxpbmtpbmcgZWxlbWVudHMgYXJlIHJlbGF0aXZlbHkgc2ltcGxlIHRvIGltcGxlbWVudC4gRm9yIGV4YW1wbGUsIGhlcmUncyBob3cgdGhlIEhUTUwgPGNvZGU+QTwvY29kZT4gZWxlbWVudCB3b3VsZCBiZSBkZWNsYXJlZCB1c2luZyBhdHRyaWJ1dGVzIHdpdGhpbiB0aGUgWExpbmsgbmFtZXNwYWNlLCBhbmQgdGhlbiBob3cgYW4gZWxlbWVudCB3aXRoaW4gdGhlIFhMaW5rIG5hbWVzcGFjZSBtaWdodCBkbyB0aGUgc2FtZToKKwkJPGVnPiZsdDtBIHhsaW5rOnR5cGU9InNpbXBsZSIgeGxpbms6aHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvd2QteGxpbmsvIgoreGxpbms6dGl0bGU9IlRoZSBYbGluayBXb3JraW5nIERyYWZ0IiZndDtUaGUgWExpbmsgV29ya2luZyBEcmFmdC4mbHQ7L0EmZ3Q7PC9lZz4KKwkJPGVnPiZsdDt4bGluazpzaW1wbGUgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvd2QteGxpbmsvIgordGl0bGU9IlRoZSBYTGluayBXb3JraW5nIERyYWZ0IiZndDtUaGUgWExpbmsgV29ya2luZyBEcmFmdCZsdDsveGxpbms6c2ltcGxlJmd0OzwvZWc+CisJQW55IGFyYml0cmFyeSBlbGVtZW50IGNhbiBiZSBtYWRlIGludG8gYW4gWExpbmsgYnkgdXNpbmcgdGhlIDxjb2RlPnhsaW5rOnR5cGU8L2NvZGU+IGF0dHJpYnV0ZS4gQW5kLCBvZiBjb3Vyc2UsIHRoZSBleHBsaWNpdCBYTGluayBlbGVtZW50cyBtYXkgYmUgdXNlZCwgYXMgd2VsbC4gVGhpcyBkb2N1bWVudCB3aWxsIGdvIG9uIHRvIGRlc2NyaWJlIHRoZSBsaW5raW5nIGF0dHJpYnV0ZXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIGxpbmtpbmcgZWxlbWVudHMuIEl0IG1heSBiZSBhc3N1bWVkIGJ5IHRoZSByZWFkZXIgdGhhdCB0aGVzZSBhdHRyaWJ1dGVzIHdvdWxkIHJlcXVpcmUgdGhlIDxjb2RlPnhsaW5rPC9jb2RlPiBuYW1lc3BhY2UgcHJlZml4IGlmIHRoZXkgZXhpc3RlZCB3aXRoaW4gYW4gYXJiaXRyYXJ5IGVsZW1lbnQsIG9yIHRoYXQgdGhleSBtYXkgYmUgdXNlZCBkaXJlY3RseSBpZiB0aGV5IGV4aXN0IHdpdGhpbiBhbiBleHBsaWNpdCBYbGluayBlbGVtZW50LjwvcD4KKwkJPCEtLSBoZWF2aWx5IG1vZGlmaWVkIHRoaXMgc2VjdGlvbiB0byBhY2NvbW9kYXRlIG5hbWVzcGFjZS1hd2FyZSBsaW5rIHJlY29nbml0aW9uIC0gYmVudCAtLT4KKzwvZGl2MT4KKworPCEtLSBSZXdyb3RlIHRoaXMgZW50aXJlIHNlY3Rpb24uIC0gYmVudCAtLT4KKzxkaXYxPgorCTxoZWFkPkxpbmtpbmcgQXR0cmlidXRlczwvaGVhZD4KKwk8cD5YTGluayBoYXMgc2V2ZXJhbCBhdHRyaWJ1dGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFyaWV0eSBvZiBsaW5rcyBpdCBtYXkgcmVwcmVzZW50LiBUaGVzZSBhdHRyaWJ1dGVzIGRlZmluZSBmb3VyIG1haW4gY29uY2VwdHM6IGxvY2F0b3JzLCBhcmNzLCBiZWhhdmlvcnMsIGFuZCBzZW1hbnRpY3MuIDxlbXBoPkxvY2F0b3JzPC9lbXBoPiBkZWZpbmUgd2hlcmUgdGhlIGFjdHVhbCByZXNvdXJjZSBpcyBsb2NhdGVkLiA8ZW1waD5BcmNzPC9lbXBoPiBkZWZpbmUgdGhlIHRyYXZlcnNhbCBvZiBsaW5rcy4gV2hlcmUgZG9lcyB0aGUgbGluayBjb21lIGZyb20/IFdoZXJlIGRvZXMgaXQgZ28gdG8/IEFsbCB0aGlzIGluZm9ybWF0aW9uIGNhbiBiZSBzdG9yZWQgaW4gdGhlIGFyYyBhdHRyaWJ1dGVzLiA8ZW1waD5CZWhhdmlvcnM8L2VtcGg+IGRlZmluZSBob3cgdGhlIGxpbmsgaXMgYWN0aXZhdGVkLCBhbmQgd2hhdCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGRvIHdpdGggdGhlIHJlc291cmNlIGJlaW5nIGxpbmtlZCB0by4gPGVtcGg+U2VtYW50aWNzPC9lbXBoPiBkZWZpbmUgdXNlZnVsIGluZm9ybWF0aW9uIHRoYXQgdGhlIGFwcGxpY2F0aW9uIG1heSB1c2UsIGFuZCBlbmFibGVzIHRoZSBsaW5rIGZvciBzdWNoIHNwZWNhbGl6ZWQgdGFyZ2V0cyBhcyBjb25zdHJpY3RlZCBkZXZpY2VzIGFuZCBhY2Nlc3NpYmlsaXR5IHNvZnR3YXJlLjwvcD4KKwkKKwk8ZGl2MiBpZD0ibGluay1sb2NhdG9ycyI+CisJCTxoZWFkPkxvY2F0b3IgQXR0cmlidXRlczwvaGVhZD4KKwkJPHA+VGhlIG9ubHkgbG9jYXRvciBhdHRyaWJ1dGUgYXQgdGhpcyB0aW1lIGlzIDxjb2RlPmhyZWY8L2NvZGU+LiBUaGlzIGF0dHJpYnV0ZSBtdXN0IGNvbnRhaW4gZWl0aGVyIGEgc3RyaW5nIGluIHRoZSBmb3JtIG9mIGEgVVJJIHRoYXQgZGVmaW5lcyB0aGUgcmVtb3RlIHJlc291cmNlIGJlaW5nIGxpbmtlZCB0bywgYSBzdHJpbmcgY29udGFpbmluZyBhIGZyYWdtZW50IGlkZW50aWZpZXIgdGhhdCBsaW5rcyB0byBhIGxvY2FsIHJlc291cmNlLCBvciBhIHN0cmluZyBjb250YWluaW5nIGEgVVJJIHdpdGggYSBmcmFnbWVudCBpZGVudGlmaWVyIGNvbmNhY2VuYXRlZCBvbnRvIGl0LjwvcD4KKwk8L2RpdjI+CisKKwk8ZGl2MiBpZD0ibGluay1hcmNzIj4KKwkJPGhlYWQ+QXJjIEF0dHJpYnV0ZXM8L2hlYWQ+CisJCTxwPkFyY3MgY29udGFpbiB0d28gYXR0cmlidXRlcywgPGNvZGU+ZnJvbTwvY29kZT4gYW5kIDxjb2RlPnRvPC9jb2RlPi4gVGhlIDxjb2RlPmZyb208L2NvZGU+IGF0dHJpYnV0ZSBtYXkgY29udGFpbiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBjb250ZW50IG9mIGEgPGNvZGU+cm9sZTwvY29kZT4gYXR0cmlidXRlIGZyb20gdGhlIHJlc291cmNlIGJlaW5nIGxpbmtlZCBmcm9tLiBUaGUgcHVycG9zZSBvZiB0aGUgPGNvZGU+ZnJvbTwvY29kZT4gYXR0cmlidXRlIGlzIHRvIGRlZmluZSB3aGVyZSB0aGlzIGxpbmsgaXMgYmVpbmcgYWN0dWF0ZWQgZnJvbS48L3A+CisJCTxwPlRoZSA8Y29kZT50bzwvY29kZT4gYXR0cmlidXRlIG1heSBjb250YWluIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGNvbnRlbnQgb2YgYSA8Y29kZT5yb2xlPC9jb2RlPiBhdHRyaWJ1dGUgZnJvbSB0aGUgcmVzb3VyY2UgYmVpbmcgbGlua2VkIHRvLiBUaGUgcHVycG9zZSBvZiB0aGUgPGNvZGU+dG88L2NvZGU+IGF0dHJpYnV0ZSBpcyB0byBkZWZpbmUgd2hlcmUgdGhpcyBsaW5rIHRyYXZlcnNlcyB0by48L3A+CisJCTxwPlRoZSBhcHBsaWNhdGlvbiBtYXkgdXNlIHRoaXMgaW5mb3JtYXRpb24gaW4gYSBudW1iZXIgb2Ygd2F5cywgZXNwZWNpYWxseSBpbiBhIGNvbXBsZXggaHlwZXJ0ZXh0IHN5c3RlbSwgYnV0IGl0IGlzIG1haW5seSB1c2VmdWwgaW4gcHJvdmlkaW5nIGNvbnRleHQgZm9yIGFwcGxpY2F0aW9uIGJlaGF2aW9yLjwvcD4KKwkJPCEtLSBJJ20gYXQgYSBsb3NzIGFzIHRvIGhvdyB0byBkZXNjcmliZSBhcmNzIG1vcmUgY2xlYXJseSB0aGFuIHRoaXMuIEkgZG9uJ3Qgd2FudCB0byBkZXZvbHZlIGludG8gZGlzY3Vzc2lvbnMgb2YgZGlyZWN0ZWQgZ3JhcGhzIGFuZCBuLWFyeSBsaW5rcy4gLWJlbnQgLS0+CisJPC9kaXYyPgorCisJPGRpdjIgaWQ9ImxpbmstYmVoYXZpb3JzIj4KKwkJPGhlYWQ+QmVoYXZpb3IgQXR0cmlidXRlczwvaGVhZD4KKwkJPHA+VGhlcmUgYXJlIHR3byBhdHRyaWJ1dGVzIGFzc29jaWF0ZWQgd2l0aCBiZWhhdmlvcjogPGNvZGU+c2hvdzwvY29kZT4gYW5kIDxjb2RlPmFjdHVhdGU8L2NvZGU+LiBUaGUgPGNvZGU+c2hvdzwvY29kZT4gYXR0cmlidXRlIGRlZmluZXMgaG93IHRoZSByZW1vdGUgcmVzb3VyY2UgaXMgdG8gYmUgcmV2ZWFsZWQgdG8gdGhlIHVzZXIuIEl0IGhhcyB0aHJlZSBvcHRpb25zOiA8Y29kZT5uZXc8L2NvZGU+LCA8Y29kZT5wYXJzZWQ8L2NvZGU+LCBhbmQgPGNvZGU+cmVwbGFjZTwvY29kZT4uIFRoZSA8Y29kZT5uZXc8L2NvZGU+IG9wdGlvbiBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVtb3RlIHJlc291cmNlIHNob3VsZCBiZSBzaG93biBpbiBhIG5ldyB3aW5kb3cgKG9yIG90aGVyIGRldmljZSBjb250ZXh0KSB3aXRob3V0IHJlcGxhY2luZyB0aGUgcHJldmlvdXMgY29udGVudC4gVGhlIDxjb2RlPnBhcnNlZDwvY29kZT4gb3B0aW9uLCByZWxhdGluZyBkaXJlY3RseSB0byB0aGUgWE1MIGNvbmNlcHQgb2YgYSBwYXJzZWQgZW50aXR5LCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29udGVudCBzaG91bGQgYmUgaW50ZWdyYXRlZCBpbnRvIHRoZSBkb2N1bWVudCBmcm9tIHdoaWNoIHRoZSBsaW5rIHdhcyBhY3R1YXRlZC4gVGhlIDxjb2RlPnJlcGxhY2U8L2NvZGU+IG9wdGlvbiBpcyB0aGUgb25lIG1vc3QgY29tbW9ubHkgc2VlbiBvbiB0aGUgV29ybGQgV2lkZSBXZWIsIHdoZXJlIHRoZSBkb2N1bWVudCBiZWluZyBsaW5rZWQgZnJvbSBpcyBlbnRpcmVseSByZXBsYWNlZCBieSB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZCB0by48L3A+CisJCTxwPlRoZSA8Y29kZT5hY3R1YXRlPC9jb2RlPiBhdHRyaWJ1dGUgZGVmaW5lcyBob3cgdGhlIGxpbmsgaXMgaW5pdGlhdGVkLiBJdCBoYXMgdHdvIG9wdGlvbnM6IDxjb2RlPnVzZXI8L2NvZGU+IGFuZCA8Y29kZT5hdXRvPC9jb2RlPi4gVGhlIDxjb2RlPnVzZXI8L2NvZGU+IG9wdGlvbiBpbmRpY2F0ZXMgdGhhdCB0aGUgbGluayBtdXN0IGJlIGluaXRpYXRlZCBieSBzb21lIHNvcnQgb2YgaHVtYW4taW5pdGlhdGVkIHNlbGVjdGlvbiwgc3VjaCBhcyBjbGlja2luZyBvbiBhbiBIVE1MIGFuY2hvci4gVGhlIDxjb2RlPmF1dG88L2NvZGU+IG9wdGlvbiBpbmRpY2F0ZXMgdGhhdCB0aGUgbGluayBpcyBhdXRvbWF0aWNhbGx5IGluaXRpYXRlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBkZWVtcyB0aGF0IHRoZSB1c2VyIGhhcyByZWFjaGVkIHRoZSBsaW5rLiBJdCB0aGVuIGZvbGxvd3MgdGhlIGJlaGF2aW9yIHNldCBvdXQgaW4gdGhlIDxjb2RlPnNob3c8L2NvZGU+IG9wdGlvbi48L3A+CisJCTwhLS0gU29tZXRoaW5nIHNob3VsZCBiZSBwdXQgaGVyZSBpbiB0ZXJtcyBvZiBhbiBleGFtcGxlLiBJZGVhOiAiQSIgbGluayB2ZXJzdXMgYXV0b21hdGljYWxseSB1cGRhdGluZyBlbmN5Y2xvcGVkaWEuIC1iZW50IC0tPgorCTwvZGl2Mj4KKworCTxkaXYyIGlkPSJsaW5rLXNlbWFudGljcyI+CisJCTxoZWFkPlNlbWFudGljIEF0dHJpYnV0ZXM8L2hlYWQ+CisJCTxwPlRoZXJlIGFyZSB0d28gYXR0cmlidXRlcyBhc3NvY2lhdGVkIHdpdGggc2VtYW50aWNzLCA8Y29kZT5yb2xlPC9jb2RlPiBhbmQgPGNvZGU+dGl0bGU8L2NvZGU+LiBUaGUgPGNvZGU+cm9sZTwvY29kZT4gYXR0cmlidXRlIGlzIGEgZ2VuZXJpYyBzdHJpbmcgdXNlZCB0byBkZXNjcmliZSB0aGUgZnVuY3Rpb24gb2YgdGhlIGxpbmsncyBjb250ZW50LiBGb3IgZXhhbXBsZSwgYSBwb2VtIG1pZ2h0IGhhdmUgYSBsaW5rIHdpdGggYSA8Y29kZT5yb2xlPSJzdGFuemEiPC9jb2RlPi4gVGhlIDxjb2RlPnJvbGU8L2NvZGU+IGlzIGFsc28gdXNlZCBhcyBhbiBpZGVudGlmaWVyIGZvciB0aGUgPGNvZGU+ZnJvbTwvY29kZT4gYW5kIDxjb2RlPnRvPC9jb2RlPiBhdHRyaWJ1dGVzIG9mIGFyY3MuPC9wPgorCQk8cD5UaGUgPGNvZGU+dGl0bGU8L2NvZGU+IGF0dHJpYnV0ZSBpcyBkZXNpZ25lZCB0byBwcm92aWRlIGh1bWFuLXJlYWRhYmxlIHRleHQgZGVzY3JpYmluZyB0aGUgbGluay4gSXQgaXMgdmVyeSB1c2VmdWwgZm9yIHRob3NlIHdobyBoYXZlIHRleHQtYmFzZWQgYXBwbGljYXRpb25zLCB3aGV0aGVyIHRoYXQgYmUgZHVlIHRvIGEgY29uc3RyaWN0ZWQgZGV2aWNlIHRoYXQgY2Fubm90IGRpc3BsYXkgdGhlIGxpbmsncyBjb250ZW50LCBvciBpZiBpdCdzIGJlaW5nIHJlYWQgYnkgYW4gYXBwbGljYXRpb24gdG8gYSB2aXN1YWxseS1pbXBhaXJlZCB1c2VyLCBvciBpZiBpdCdzIGJlaW5nIHVzZWQgdG8gY3JlYXRlIGEgdGFibGUgb2YgbGlua3MuIFRoZSA8Y29kZT50aXRsZTwvY29kZT4gYXR0cmlidXRlIGNvbnRhaW5zIGEgc2ltcGxlLCBkZXNjcmlwdGl2ZSBzdHJpbmcuPC9wPgorCTwvZGl2Mj4KKzwvZGl2MT4KKworPGRpdjEgaWQ9ImxpbmtpbmctZWxlbWVudHMiPgorCTxoZWFkPkxpbmtpbmcgRWxlbWVudHM8L2hlYWQ+CisJPHA+VGhlcmUgYXJlIHNldmVyYWwga2luZHMgb2YgbGlua2luZyBlbGVtZW50cyBpbiBYTGluazogPGNvZGU+c2ltcGxlPC9jb2RlPiBsaW5rcywgPGNvZGU+bG9jYXRvcnM8L2NvZGU+LCA8Y29kZT5hcmNzPC9jb2RlPiwgYW5kIDxjb2RlPmV4dGVuZGVkPC9jb2RlPiBsaW5rcy4gVGhlc2UgZWxlbWVudHMgbWF5IGJlIGluc3RhbnRpYXRlZCB2aWEgZWxlbWVudCBkZWNsYXJhdGlvbnMgZnJvbSB0aGUgWExpbmsgbmFtZXNwYWNlLCBvciB0aGV5IG1heSBiZSBpbnN0YW50aWF0ZWQgdmlhIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbnMgZnJvbSB0aGUgWExpbmsgbmFtZXNwYWNlLiBCb3RoIGtpbmRzIG9mIGluc3RhbnRpYXRpb24gYXJlIGRlc2NyaWJlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZiBlYWNoIGxpbmtpbmcgZWxlbWVudC48L3A+CisJPHA+VGhlIDxjb2RlPnNpbXBsZTwvY29kZT4gbGluayBpcyB1c2VkIHRvIGRlY2xhcmUgYSBsaW5rIHRoYXQgYXBwcm94aW1hdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBIVE1MIDxjb2RlPkE8L2NvZGU+IGVsZW1lbnQuIEl0IGhhcywgaG93ZXZlciwgYSBmZXcgYWRkZWQgZmVhdHVyZXMgdG8gaW5jcmVhc2UgaXRzIHZhbHVlLCBpbmNsdWRpbmcgdGhlIHBvdGVudGlhbCBkZWNsYXJhdGlvbiBvZiBzZW1hbnRpY3MgYW5kIGJlaGF2aW9yLiBUaGUgPGNvZGU+bG9jYXRvcjwvY29kZT4gZWxlbWVudHMgYXJlIHVzZWQgdG8gZGVmaW5lIHRoZSByZXNvdXJjZSBiZWluZyBsaW5rZWQgdG8uIFNvbWUgbGlua3MgbWF5IGNvbnRhaW4gbXVsdGlwbGUgbG9jYXRvcnMsIHJlcHJlc2VudGluZyBhIGNob2ljZSBvZiBwb3RlbnRpYWwgbGlua3MgdG8gYmUgdHJhdmVyc2VkLiBUaGUgPGNvZGU+YXJjczwvY29kZT4gYXJlIHVzZWQgdG8gZGVmaW5lIHRoZSB0cmF2ZXJzYWwgc2VtYW50aWNzIG9mIHRoZSBsaW5rLiBGaW5hbGx5LCBhbiA8Y29kZT5leHRlbmRlZDwvY29kZT4gbGlua2luZyBlbGVtZW50IGRpZmZlcnMgZnJvbSBhIHNpbXBsZSBsaW5rIGluIHRoYXQgaXQgY2FuIGNvbm5lY3QgYW55IG51bWJlciBvZiByZXNvdXJjZXMsIG5vdCBqdXN0IG9uZSBsb2NhbCByZXNvdXJjZSAob3B0aW9uYWxseSkgYW5kIG9uZSByZW1vdGUgcmVzb3VyY2UsIGFuZCBpbiB0aGF0IGV4dGVuZGVkIGxpbmtzIGFyZSBtb3JlIG9mdGVuIG91dC1vZi1saW5lIHRoYW4gc2ltcGxlIGxpbmtzLjwvcD4KKworPGRpdjIgaWQ9InNpbXBsZS1saW5rcyI+CisJPGhlYWQ+U2ltcGxlIExpbmtzPC9oZWFkPgorCTxwIGlkPSJkdC1zaW1wbGVsaW5rIj48dGVybWRlZiBpZD0iZHQtc2ltcGxlbGluZSIgdGVybT0iU2ltcGxlIExpbmsiPjx0ZXJtPlNpbXBsZSBsaW5rczwvdGVybT4gY2FuIGJlIHVzZWQgZm9yIHB1cnBvc2VzIHRoYXQgYXBwcm94aW1hdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYSBiYXNpYyBIVE1MIDxjb2RlPkE8L2NvZGU+IGxpbmssIGJ1dCB0aGV5IGNhbiBhbHNvIHN1cHBvcnQgYSBsaW1pdGVkIGFtb3VudCBvZiBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkuIFNpbXBsZSBsaW5rcyBoYXZlIG9ubHkgb25lIGxvY2F0b3IgYW5kIHRodXMsIGZvciBjb252ZW5pZW5jZSwgY29tYmluZSB0aGUgZnVuY3Rpb25zIG9mIGEgbGlua2luZyBlbGVtZW50IGFuZCBhIGxvY2F0b3IgaW50byBhIHNpbmdsZSBlbGVtZW50LjwvdGVybWRlZj4gQXMgYSByZXN1bHQgb2YgdGhpcyBjb21iaW5hdGlvbiwgdGhlIHNpbXBsZSBsaW5raW5nIGVsZW1lbnQgb2ZmZXJzIGJvdGggYSBsb2NhdG9yIGF0dHJpYnV0ZSBhbmQgYWxsIHRoZSBiZWhhdmlvciBhbmQgc2VtYW50aWMgYXR0cmlidXRlcy48L3A+CisJPHA+VGhlIGZvbGxvd2luZyBhcmUgdHdvIGV4YW1wbGVzIG9mIGxpbmtpbmcgZWxlbWVudHMsIGVhY2ggc2hvd2luZyBhbGwgdGhlIHBvc3NpYmxlIGF0dHJpYnV0ZXMgdGhhdCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGEgc2ltcGxlIGxpbmsuIEhlcmUgaXMgdGhlIGV4cGxpY2l0IFhMaW5rIHNpbXBsZSBsaW5raW5nIGVsZW1lbnQuCisJPGVnPiZsdDshRUxFTUVOVCB4bGluazpzaW1wbGUgQU5ZJmd0OworJmx0OyFBVFRMSVNUIHhsaW5rOnNsaW5rCisgICAgaHJlZiAgICAgICAgICAgQ0RBVEEgICAgCQkJCSNSRVFVSVJFRAorICAgIHJvbGUgICAgICAgICAgIENEQVRBICAgIAkJCQkjSU1QTElFRAorICAgIHRpdGxlICAgICAgICAgIENEQVRBICAgIAkJCQkjSU1QTElFRAorICAgIHNob3cgICAgICAgICAgIChuZXd8cGFyc2VkfHJlcGxhY2UpICAJInJlcGxhY2UiCisgICAgYWN0dWF0ZSAgICAgICAgKHVzZXJ8YXV0bykgCQkJCSJ1c2VyIgorJmd0OzwvZWc+CisJQW5kIGhlcmUgaXMgaG93IHRvIG1ha2UgYW4gYXJiaXRyYXJ5IGVsZW1lbnQgaW50byBhIHNpbXBsZSBsaW5rLgorCTxlZz4mbHQ7IUVMRU1FTlQgeGxpbms6c2ltcGxlIEFOWSZndDsKKyZsdDshQVRUTElTVCBmb28KKwl4bGluazp0eXBlICAgICAoc2ltcGxlfGV4dGVuZGVkfGxvY2F0b3J8YXJjKSAjRklYRUQgInNpbXBsZSIJCQorICAgIHhsaW5rOmhyZWYgICAgIENEQVRBICAgIAkJCQkjUkVRVUlSRUQKKyAgICB4bGluazpyb2xlICAgICBDREFUQSAgICAJCQkJI0lNUExJRUQKKyAgICB4bGluazp0aXRsZSAgICBDREFUQSAgICAJCQkJI0lNUExJRUQKKyAgICB4bGluazpzaG93ICAgICAobmV3fHBhcnNlZHxyZXBsYWNlKSAgCSJyZXBsYWNlIgorICAgIHhsaW5rOmFjdHVhdGUgICh1c2VyfGF1dG8pIAkJCQkidXNlciIKKyZndDs8L2VnPgorCUhlcmUgaXMgaG93IHRoZSBmaXJzdCBleGFtcGxlIG1pZ2h0IGxvb2sgaW4gYSBkb2N1bWVudDoKKzxlZz4mbHQ7eGxpbms6c2ltcGxlIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3dkLXhsaW5rIiByb2xlPSJ3b3JraW5nIGRyYWZ0IiAKKwl0aXRsZT0iVGhlIFhMaW5rIFdvcmtpbmcgRHJhZnQiIHNob3c9InJlcGxhY2UiIGFjdHVhdGU9InVzZXIiJmd0OworVGhlIFhMaW5rIFdvcmtpbmcgRHJhZnQuJmx0Oy94bGluazpzaW1wbGUmZ3Q7PC9lZz4KKzxlZz4mbHQ7Zm9vIHhsaW5rOmhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3dkLXhsaW5rIiB4bGluazpyb2xlPSJ3b3JraW5nIGRyYWZ0IgorCXhsaW5rOnRpdGxlPSJUaGUgWExpbmsgV29ya2luZyBEcmFmdCIgeGxpbms6c2hvdz0ibmV3IiB4bGluazphY3R1YXRlPSJ1c2VyIiZndDsKK1RoZSBYTGluayBXb3JraW5nIERyYWZ0LiZsdDsvZm9vJmd0OzwvZWc+CisJQWx0ZXJuYXRlbHksIGEgc2ltcGxlIGxpbmsgY291bGQgYmUgYXMgdGVyc2UgYXMgdGhpczoKKzxlZz4mbHQ7Zm9vIHhsaW5rOmhyZWY9IiNzdGFuemExIiZndDtUaGUgRmlyc3QgU3RhbnphLiZsdDsvZm9vJmd0OzwvZWc+CisJPC9wPgorCTxwPgorCVRoZXJlIGFyZSBubyBjb25zdHJhaW50cyBvbiB0aGUgY29udGVudHMgb2YgYSBzaW1wbGUgbGlua2luZyBlbGVtZW50LiBJbgorCXRoZSBzYW1wbGUgZGVjbGFyYXRpb24gYWJvdmUsIGl0IGlzIGdpdmVuIGEgY29udGVudCBtb2RlbCBvZiA8Y29kZT5BTlk8L2NvZGU+CisJdG8gaWxsdXN0cmF0ZSB0aGF0IGFueSBjb250ZW50IG1vZGVsIG9yIGRlY2xhcmVkIGNvbnRlbnQgaXMgYWNjZXB0YWJsZS4gSW4KKwlhIHZhbGlkIGRvY3VtZW50LCBldmVyeSBlbGVtZW50IHRoYXQgaXMgc2lnbmlmaWNhbnQgdG8gWExpbmsgbXVzdCBzdGlsbCBjb25mb3JtCisJdG8gdGhlIGNvbnN0cmFpbnRzIGV4cHJlc3NlZCBpbiBpdHMgZ292ZXJuaW5nIERURC48L3A+CisJPHA+Tm90ZSB0aGF0IGl0IGlzIG1lYW5pbmdmdWwgdG8gaGF2ZSBhbiBvdXQtb2YtbGluZSBzaW1wbGUgbGluaywgYWx0aG91Z2gKKwlzdWNoIGxpbmtzIGFyZSB1bmNvbW1vbi4gVGhleSBhcmUgY2FsbGVkICJvbmUtZW5kZWQiIGFuZCBhcmUgdHlwaWNhbGx5IHVzZWQKKwl0byBhc3NvY2lhdGUgZGlzY3JldGUgc2VtYW50aWMgcHJvcGVydGllcyB3aXRoIGxvY2F0aW9ucy4gVGhlIHByb3BlcnRpZXMgbWlnaHQKKwliZSBleHByZXNzZWQgYnkgYXR0cmlidXRlcyBvbiB0aGUgbGluaywgdGhlIGxpbmsncyBlbGVtZW50IHR5cGUgbmFtZSwgb3IgaW4KKwlzb21lIG90aGVyIHdheSwgYW5kIGFyZSBub3QgY29uc2lkZXJlZCBmdWxsLWZsZWRnZWQgcmVzb3VyY2VzIG9mIHRoZSBsaW5rLgorCU1vc3Qgb3V0LW9mLWxpbmUgbGlua3MgYXJlIGV4dGVuZGVkIGxpbmtzLCBhcyB0aGVzZSBoYXZlIGEgZmFyIHdpZGVyIHJhbmdlCisJb2YgdXNlcy48L3A+Cis8L2RpdjI+CisKKzxkaXYyIGlkPSJleHRlbmRlZC1saW5rIj4KKzxoZWFkPkV4dGVuZGVkIExpbmtzPC9oZWFkPgorCTxwPjx0ZXJtZGVmIGlkPSJkdC1leHRlbmRlZGxpbmsiIHRlcm09IkV4dGVuZGVkIExpbmsiPkFuIDx0ZXJtPmV4dGVuZGVkIGxpbms8L3Rlcm0+IGRpZmZlcnMgZnJvbSBhIHNpbXBsZSBsaW5rIGluIHRoYXQgaXQgY2FuIGNvbm5lY3QgYW55IG51bWJlciBvZiByZXNvdXJjZXMsIG5vdCBqdXN0IG9uZSBsb2NhbCByZXNvdXJjZSAob3B0aW9uYWxseSkgYW5kIG9uZSByZW1vdGUgcmVzb3VyY2UsIGFuZCBpbiB0aGF0IGV4dGVuZGVkIGxpbmtzIGFyZSBtb3JlIG9mdGVuIG91dC1vZi1saW5lIHRoYW4gc2ltcGxlIGxpbmtzLjwvdGVybWRlZj48L3A+CisJPHA+VGhlc2UgYWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgb2YgZXh0ZW5kZWQgbGlua3MgYXJlIHJlcXVpcmVkIGZvcjogIAorCQk8dWxpc3Q+CisJCQk8aXRlbT4KKwkJCQk8cD5FbmFibGluZyBvdXRnb2luZyBsaW5rcyBpbiBkb2N1bWVudHMgdGhhdCBjYW5ub3QgYmUgbW9kaWZpZWQgdG8gYWRkIGFuIGlubGluZSBsaW5rPC9wPgorCQkJPC9pdGVtPgorCQkJPGl0ZW0+CisJCQkJPHA+Q3JlYXRpbmcgbGlua3MgdG8gYW5kIGZyb20gcmVzb3VyY2VzIGluIGZvcm1hdHMgd2l0aCBubyBuYXRpdmUgc3VwcG9ydCBmb3IgZW1iZWRkZWQgbGlua3MgKHN1Y2ggYXMgbW9zdCBtdWx0aW1lZGlhIGZvcm1hdHMpPC9wPgorCQkJPC9pdGVtPgorCQkJPGl0ZW0+CisJCQkJPHA+QXBwbHlpbmcgYW5kIGZpbHRlcmluZyBzZXRzIG9mIHJlbGV2YW50IGxpbmtzIG9uIGRlbWFuZDwvcD4KKwkJCTwvaXRlbT4KKwkJCTxpdGVtPjxwPkVuYWJsaW5nIG90aGVyIGFkdmFuY2VkIGh5cGVybWVkaWEgY2FwYWJpbGl0aWVzPC9wPjwvaXRlbT4KKwkJPC91bGlzdD4KKwk8L3A+CisJPHA+QXBwbGljYXRpb24gc29mdHdhcmUgbWlnaHQgYmUgZXhwZWN0ZWQgdG8gcHJvdmlkZSB0cmF2ZXJzYWwgYW1vbmcgYWxsIG9mIGEgbGluaydzIHBhcnRpY2lwYXRpbmcgcmVzb3VyY2VzIChzdWJqZWN0IHRvIHNlbWFudGljIGNvbnN0cmFpbnRzIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoaXMgc3BlY2lmaWNhdGlvbikgYW5kIHRvIHNpZ25hbCB0aGUgZmFjdCB0aGF0IGEgZ2l2ZW4gcmVzb3VyY2Ugb3Igc3ViLXJlc291cmNlIHBhcnRpY2lwYXRlcyBpbiBvbmUgb3IgbW9yZSBsaW5rcyB3aGVuIGl0IGlzIGRpc3BsYXllZCAoZXZlbiB0aG91Z2ggdGhlcmUgaXMgbm8gbWFya3VwIGF0IGV4YWN0bHkgdGhhdCBwb2ludCB0byBzaWduYWwgaXQpLjwvcD4KKwk8cD5BIGxpbmtpbmcgZWxlbWVudCBmb3IgYW4gZXh0ZW5kZWQgbGluayBjb250YWlucyBhIHNlcmllcyBvZiA8eHRlcm1yZWYgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC8jZHQtcGFyZW50Y2hpbGQiPmNoaWxkIGVsZW1lbnRzPC94dGVybXJlZj4gdGhhdCBzZXJ2ZSBhcyBsb2NhdG9ycyBhbmQgYXJjcy4gQmVjYXVzZSBhbiBleHRlbmRlZCBsaW5rIGNhbiBoYXZlIG1vcmUgdGhhbiBvbmUgcmVtb3RlIHJlc291cmNlLCBpdCBzZXBhcmF0ZXMgb3V0IGxpbmtpbmcgaXRzZWxmIGZyb20gdGhlIG1lY2hhbmlzbXMgdXNlZCB0byBsb2NhdGUgZWFjaCByZXNvdXJjZSAod2hlcmVhcyBhIHNpbXBsZSBsaW5rIGNvbWJpbmVzIHRoZSB0d28pLjwvcD4KKwk8cD5UaGUgPGNvZGU+eGxpbms6dHlwZTwvY29kZT4gYXR0cmlidXRlIHZhbHVlIGZvciBhbiBleHRlbmRlZCBsaW5rIG11c3QgYmUgPGNvZGU+IGV4dGVuZGVkPC9jb2RlPiwgaWYgdGhlIGxpbmsgaXMgYmVpbmcgaW5zdGFudGlhdGVkIG9uIGFuIGFyYml0cmFyeSBlbGVtZW50LiBOb3RlIHRoYXQgZXh0ZW5kZWQgbGlua3MgaW50cm9kdWNlIHZhcmlhbnRzIG9mIHRoZSA8Y29kZT5zaG93PC9jb2RlPiBhbmQgPGNvZGU+YWN0dWF0ZTwvY29kZT4gYmVoYXZpb3IgYXR0cmlidXRlcy4gVGhlc2UgYXR0cmlidXRlcywgdGhlIDxjb2RlPnNob3dkZWZhdWx0PC9jb2RlPiBhbmQgPGNvZGU+YWN0dWF0ZWRlZmF1bHQ8L2NvZGU+IGRlZmluZSB0aGUgc2FtZSBiZWhhdmlvciBhcyB0aGVpciBjb3VudGVycGFydHMuIEhvd2V2ZXIsIGluIHRoaXMgY2FzZSwgdGhleSBhcmUgY29uc2lkZXJlZCB0byBkZWZpbmUgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGFsbCB0aGUgbGlua2luZyBlbGVtZW50cyB0aGF0IHRoZXkgY29udGFpbi48L3A+CisJPHA+SG93ZXZlciwgd2hlbiBhIGxpbmtpbmcgZWxlbWVudCB3aXRoaW4gYW4gZXh0ZW5kZWQgbGluayBoYXMgYSA8Y29kZT5zaG93PC9jb2RlPiBvciA8Y29kZT5hY3R1YXRlPC9jb2RlPiBhdHRyaWJ1dGUgb2YgaXRzIG93biwgdGhhdCBhdHRyaWJ1dGUgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0cyBzZXQgb24gdGhlIGV4dGVuZGVkIGxpbmtpbmcgZWxlbWVudC48L3A+CisJPHA+VGhlIGV4dGVuZGVkIGxpbmtpbmcgZWxlbWVudCBpdHNlbGYgcmV0YWlucyB0aG9zZSBhdHRyaWJ1dGVzIHJlbGV2YW50IHRvIHRoZSBsaW5rIGFzIGEgd2hvbGUsIGFuZCB0byBpdHMgbG9jYWwgcmVzb3VyY2UgaWYgYW55LiBGb2xsb3dpbmcgYXJlIHR3byBzYW1wbGUgZGVjbGFyYXRpb24gZm9yIGFuIGV4dGVuZGVkIGxpbmsuIFRoZSBmaXJzdCBpcyBhbiBleGFtcGxlIG9mIHRoZSBleHBsaWNpdCBYTGluayBleHRlbmRlZCBsaW5rOgorCQorPGVnPiZsdDshRUxFTUVOVCB4bGluazpleHRlbmRlZCAoKHhsaW5rOmFyYyB8IHhsaW5rOmxvY2F0b3IpKik+CismbHQ7IUFUVExJU1QgeGxpbms6ZXh0ZW5kZWQKKwlyb2xlICAgICAgICAgICBDREFUQSAgICAJCQkJI0lNUExJRUQKKwl0aXRsZSAgICAgICAgICBDREFUQSAgICAJCQkJI0lNUExJRUQKKwlzaG93ZGVmYXVsdCAgICAobmV3fHBhcnNlZHxyZXBsYWNlKSAgICAJI0lNUExJRUQgCisgICAgYWN0dWF0ZWRlZmF1bHQgKHVzZXJ8YXV0bykgCQkJCSNJTVBMSUVEICZndDs8L2VnPgorCisJVGhlIHNlY29uZCBpcyBhbiBleGFtcGxlIG9mIGFuIGFyYml0cmFyeSBlbGVtZW50IGJlaW5nIHVzZWQgYW4gZXh0ZW5kZWQgbGluazoKKworPGVnPiZsdDshRUxFTUVOVCBmb28gKCh4bGluazphcmMgfCB4bGluazpsb2NhdG9yKSopPgorJmx0OyFBVFRMSVNUIGZvbworCXhsaW5rOnR5cGUgICAgIAkoc2ltcGxlfGV4dGVuZGVkfGxvY2F0b3J8YXJjKSAJI0ZJWEVEICJleHRlbmRlZCIKKwl4bGluazpyb2xlICAgICAgICAgICBDREFUQSAgICAJCQkJCSNJTVBMSUVECisJeGxpbms6dGl0bGUgICAgICAgICAgQ0RBVEEgICAgCQkJCQkjSU1QTElFRAorCXhsaW5rOnNob3dkZWZhdWx0ICAgIChuZXd8cGFyc2VkfHJlcGxhY2UpICAgIAkjSU1QTElFRCAKKyAgICB4bGluazphY3R1YXRlZGVmYXVsdCAodXNlcnxhdXRvKSAJCQkJI0lNUExJRUQgJmd0OzwvZWc+CisKKwlUaGUgZm9sbG93aW5nIHR3byBleGFtcGxlcyBkZW1vbnN0cmF0ZSBob3cgZWFjaCBvZiB0aGUgYWJvdmUgbWlnaHQgYXBwZWFyIHdpdGhpbiBhIGRvY3VtZW50IGluc3RhbmNlLiBOb3RlIHRoYXQgdGhlIGNvbnRlbnQgb2YgdGhlc2UgZXhhbXBsZXMgd291bGQgYmUgb3RoZXIgZWxlbWVudHMuIEZvciBicmV2aXR5J3Mgc2FrZSwgdGhleSd2ZSBiZWVuIGxlZnQgYmxhbmsuIFRoZSBmaXJzdCBleGFtcGxlIHNob3dzIGhvdyB0aGUgbGluayBtaWdodCBhcHBlYXIsIHVzaW5nIGFuIGV4cGxpY2l0IFhMaW5rIGV4dGVuZGVkIGxpbms6CisKKzxlZz4mbHQ7eGxpbms6ZXh0ZW5kZWQgcm9sZT0iYWRkcmVzcyBib29rIiB0aXRsZT0iQmVuJ3MgQWRkcmVzcyBCb29rIiBzaG93ZGVmYXVsdD0icmVwbGFjZSIgYWN0dWF0ZWRlZmF1bHQ9InVzZXIiJmd0OyAuLi4gJmx0Oy94bGluazpleHRlbmRlZCZndDs8L2VnPgorCisJQW5kIHRoZSBzZWNvbmQgc2hvd3MgaG93IHRoZSBsaW5rIG1pZ2h0IGFwcGVhciwgdXNpbmcgYW4gYXJiaXRyYXJ5IGVsZW1lbnQ6CisKKzxlZz4mbHQ7Zm9vIHhsaW5rOnR5cGU9ImV4dGVuZGVkIiB4bGluazpyb2xlPSJhZGRyZXNzIGJvb2siIHhsaW5rOnRpdGxlPSJCZW4ncyBBZGRyZXNzIEJvb2siIHhsaW5rOnNob3dkZWZhdWx0PSJyZXBsYWNlIiB4bGluazphY3R1YXRlZGVmYXVsdD0idXNlciImZ3Q7IC4uLiAmbHQ7L2ZvbyZndDs8L2VnPgorCTwvcD4KKworPC9kaXYyPgorCis8ZGl2MiBpZD0ieGxpbmstYXJjcyI+CisJPGhlYWQ+QXJjIEVsZW1lbnRzPC9oZWFkPgorCTxwPjx0ZXJtZGVmIGlkPSJkdC1hcmMiIHRlcm09IkFyYyI+QW4gPHRlcm0+YXJjPC90ZXJtPiBpcyBjb250YWluZWQgd2l0aGluIGFuIGV4dGVuZGVkIGxpbmsgZm9yIHRoZSBwdXJwb3NlIG9mIGRlZmluaW5nIHRyYXZlcnNhbCBiZWhhdmlvci48L3Rlcm1kZWY+IE1vcmUgdGhhbiBvbmUgYXJjIG1heSBiZSBhc3NvY2lhdGVkIHdpdGggYSBsaW5rLiBPdGhlcndpc2UsIGFyYyBlbGVtZW50cyBmdW5jdGlvbiBleGFjdGx5IGFzIHRoZSBhcmMgYXR0cmlidXRlcyBtaWdodCBsZWFkIG9uIHRvIGV4cGVjdC48L3A+CisJPCEtLSBNb3JlIGhlcmU/IC1iZW50IC0tPgorPC9kaXYyPgorCis8L2RpdjE+Cis8ZGl2MT4KKzxoZWFkPkNvbmZvcm1hbmNlPC9oZWFkPgorPHA+QW4gZWxlbWVudCBjb25mb3JtcyB0byBYTGluayBpZjogIDxvbGlzdD4KKzxpdGVtPjxwPlRoZSBlbGVtZW50IGhhcyBhbiA8Y29kZT54bWw6bGluazwvY29kZT4gYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzCitvbmUgb2YgdGhlIGF0dHJpYnV0ZSB2YWx1ZXMgcHJlc2NyaWJlZCBieSB0aGlzIHNwZWNpZmljYXRpb24sIGFuZDwvcD48L2l0ZW0+Cis8aXRlbT48cD50aGUgZWxlbWVudCBhbmQgYWxsIG9mIGl0cyBhdHRyaWJ1dGVzIGFuZCBjb250ZW50IGFkaGVyZSB0byB0aGUKK3N5bnRhY3RpYworcmVxdWlyZW1lbnRzIGltcG9zZWQgYnkgdGhlIGNob3NlbiA8Y29kZT54bWw6bGluazwvY29kZT4gYXR0cmlidXRlIHZhbHVlLAorYXMgcHJlc2NyaWJlZCBpbiB0aGlzIHNwZWNpZmljYXRpb24uPC9wPjwvaXRlbT4KKzwvb2xpc3Q+PC9wPgorPHA+Tm90ZSB0aGF0IGNvbmZvcm1hbmNlIGlzIGFzc2Vzc2VkIGF0IHRoZSBsZXZlbCBvZiBpbmRpdmlkdWFsIGVsZW1lbnRzLAorcmF0aGVyIHRoYW4gd2hvbGUgWE1MIGRvY3VtZW50cywgYmVjYXVzZSBYTGluayBhbmQgbm9uLVhMaW5rIGxpbmtpbmcgbWVjaGFuaXNtcworbWF5IGJlIHVzZWQgc2lkZSBieSBzaWRlIGluIGFueSBvbmUgZG9jdW1lbnQuPC9wPgorPHA+QW4gYXBwbGljYXRpb24gY29uZm9ybXMgdG8gWExpbmsgaWYgaXQgaW50ZXJwcmV0cyBYTGluay1jb25mb3JtaW5nIGVsZW1lbnRzCithY2NvcmRpbmcgdG8gYWxsIHJlcXVpcmVkIHNlbWFudGljcyBwcmVzY3JpYmVkIGJ5IHRoaXMgc3BlY2lmaWNhdGlvbiBhbmQsCitmb3IgYW55IG9wdGlvbmFsIHNlbWFudGljcyBpdCBjaG9vc2VzIHRvIHN1cHBvcnQsIHN1cHBvcnRzIHRoZW0gaW4gdGhlIHdheQorcHJlc2NyaWJlZC4gPCEtLUlmL3doZW4gd2Ugc3BsaXQgb3V0IHRoZSBYTGlua2Z1bmN0aW9uYWxpdHkKKyhlLmcuIGlubGluZSBsaW5rcyBhbmQgb3V0LW9mLWxpbmUgbGlua3MpLCB0aGUKK2NvbmZvcm1hbmNlIGxhbmd1YWdlIHdpbGwgaGF2ZSB0byBhZGRyZXNzIHRoZSBkaWZmZXJlbnQKK2xldmVscyBvZiBzdXBwb3J0LiAtZWxtLS0+IDwvcD4KKzwvZGl2MT4KKzwvYm9keT48YmFjaz4KKzxkaXYxIGlkPSJ1bmZpbmlzaGVkIj4KKzxoZWFkPlVuZmluaXNoZWQgV29yazwvaGVhZD4KKzxkaXYyPgorPGhlYWQ+U3RydWN0dXJlZCBUaXRsZXM8L2hlYWQ+Cis8cD5UaGUgc2ltcGxlIHRpdGxlIG1lY2hhbmlzbSBkZXNjcmliZWQgaW4gdGhpcyBkcmFmdCBpcyBpbnN1ZmZpY2llbnQgdG8gY29wZQord2l0aCBpbnRlcm5hdGlvbmFsaXphdGlvbiBvciB0aGUgdXNlIG9mIG11bHRpbWVkaWEgaW4gbGluayB0aXRsZXMuIEEgZnV0dXJlCit2ZXJzaW9uIHdpbGwgcHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgdGhlIHVzZSBvZiBzdHJ1Y3R1cmVkIGxpbmsgdGl0bGVzLjwvcD4KKzwvZGl2Mj4KKzwvZGl2MT4KKzxkaXYxPgorPGhlYWQ+UmVmZXJlbmNlczwvaGVhZD4KKzxibGlzdD4KKzxiaWJsIGlkPSJ4cHRyIiBrZXk9IlhQVFIiPkV2ZSBNYWxlciBhbmQgU3RldmUgRGVSb3NlLCBlZGl0b3JzLiA8dGl0bGVyZWY+CitYTUwgUG9pbnRlciBMYW5ndWFnZSAoWFBvaW50ZXIpIFYxLjA8L3RpdGxlcmVmPi4gQXJib3JUZXh0LCBJbnNvLCBhbmQgQnJvd24KK1VuaXZlcnNpdHkuIEJ1cmxpbmd0b24sIFNlZWtvbmssIGV0IGFsLjogV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgMTk5OC4KKyhTZWUgPGxvYyBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9XRC14cHRyIj5odHRwOi8vd3d3LnczLm9yZy9UUi9XRC14cHRyCisgPC9sb2M+Lik8L2JpYmw+Cis8YmlibCBpZD0iaXNvMTA3NDQiIGtleT0iSVNPL0lFQyAxMDc0NCI+SVNPIChJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IKK1N0YW5kYXJkaXphdGlvbikuIDx0aXRsZXJlZj5JU08vSUVDIDEwNzQ0LTE5OTIgKEUpLiBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5CistIEh5cGVybWVkaWEvVGltZS1iYXNlZCBTdHJ1Y3R1cmluZyBMYW5ndWFnZSAoSHlUaW1lKS48L3RpdGxlcmVmPiBbR2VuZXZhXToKK0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24sIDE5OTIuIDx0aXRsZXJlZj5FeHRlbmRlZAorRmFjaWxpdGllcworQW5uZXguPC90aXRsZXJlZj4gW0dlbmV2YV06IEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24sCisxOTk2LiAoU2VlICA8bG9jCitocmVmPSJodHRwOi8vd3d3Lm9ybmwuZ292L3NnbWwvd2c4L2h5dGltZS9odG1sL2lzMTA3NDRyLmh0bWwiPmh0dHA6Ly93d3cub3JubC5nbwordi9zZ21sL3dnOC9oeXRpbWUvaHRtbC9pczEwNzQ0ci5odG1sIDwvbG9jPiA8IS0tcCBtLXIgc2F5cyB0aGlzIGxpbmsgaXMKK2Jyb2tlbi4gZWxtIC0tPiApLjwvYmlibD4KKzxiaWJsIGlkPSJyZmMxNzM4IiBrZXk9IklFVEYgUkZDIDE3MzgiPklFVEYgKEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sKK0ZvcmNlKS4gPHRpdGxlcmVmPgorUkZDIDE3Mzg6IFVuaWZvcm0gUmVzb3VyY2UgTG9jYXRvcnM8L3RpdGxlcmVmPi4gMTk5MS4gKFNlZSAgPGxvYworaHJlZj0iaHR0cDovL3d3dy53My5vcmcvQWRkcmVzc2luZy9yZmMxNzM4LnR4dCI+CitodHRwOi8vd3d3LnczLm9yZy9BZGRyZXNzaW5nL3JmYzE3MzgudHh0PC9sb2M+KS48L2JpYmw+Cis8YmlibCBpZD0icmZjMTgwOCIga2V5PSJJRVRGIFJGQyAxODA4Ij5JRVRGIChJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrCitGb3JjZSkuIDx0aXRsZXJlZj4KK1JGQyAxODA4OiBSZWxhdGl2ZSBVbmlmb3JtIFJlc291cmNlIExvY2F0b3JzPC90aXRsZXJlZj4uIDE5OTUuIChTZWUgIDxsb2MKK2hyZWY9Imh0dHA6Ly93d3cudzMub3JnL0FkZHJlc3NpbmcvcmZjMTgwOC50eHQiPmh0dHA6Ly93d3cudzMub3JnL0FkZHJlc3NpbmcvcmZjCisxODA4LnR4dCA8L2xvYz4pLjwvYmlibD4KKzxiaWJsIGlkPSJ0ZWkiIGtleT0iVEVJIj5DLiBNLiBTcGVyYmVyZy1NY1F1ZWVuIGFuZCBMb3UgQnVybmFyZCwgZWRpdG9ycy4KKzx0aXRsZXJlZj4KK0d1aWRlbGluZXMgZm9yIEVsZWN0cm9uaWMgVGV4dCBFbmNvZGluZyBhbmQgSW50ZXJjaGFuZ2U8L3RpdGxlcmVmPi4gQXNzb2NpYXRpb24KK2ZvciBDb21wdXRlcnMgYW5kIHRoZSBIdW1hbml0aWVzIChBQ0gpLCBBc3NvY2lhdGlvbiBmb3IgQ29tcHV0YXRpb25hbAorTGluZ3Vpc3RpY3MKKyhBQ0wpLCBhbmQgQXNzb2NpYXRpb24gZm9yIExpdGVyYXJ5IGFuZCBMaW5ndWlzdGljIENvbXB1dGluZyAoQUxMQykuIENoaWNhZ28sCitPeGZvcmQ6IFRleHQgRW5jb2RpbmcgSW5pdGlhdGl2ZSwgMTk5NC4gPCEtLSBhZGQgY2l0ZSB0byBET00gd29yayAtLT4gPC9iaWJsPgorPGJpYmwgaWQ9ImNodW0iIGtleT0iQ0hVTSI+XVN0ZXZlbiBKLiBEZVJvc2UgYW5kIERhdmlkIEcuIER1cmFuZC4gMTk5NS4gIlRoZQorVEVJIEh5cGVydGV4dCBHdWlkZWxpbmVzLiIgSW4gPHRpdGxlcmVmPkNvbXB1dGluZyBhbmQgdGhlIEh1bWFuaXRpZXMKKzwvdGl0bGVyZWY+MjkoMykuCitSZXByaW50ZWQgaW4gPHRpdGxlcmVmPlRleHQgRW5jb2RpbmcgSW5pdGlhdGl2ZTogQmFja2dyb3VuZCBhbmQKK0NvbnRleHQ8L3RpdGxlcmVmPiwKK2VkLiBOYW5jeSBJZGUgYW5kIEplYW4gcm9uaXMgPCEtLSBmaXggdGhpcyBuYW1lIC0tPiwgSVNCTiAwLTc5MjMtMzcwNC0yLiA8L2JpYmw+Cis8L2JsaXN0PjwvZGl2MT4KKzwvYmFjaz48L3NwZWM+Cis8P1B1YiAqMDAwMDA1MjU3NT8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvd2FwLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC93YXAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTU1MDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvd2FwLnhtbApAQCAtMCwwICsxLDI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB3bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFdNTCAxLjEvL0VOIgorImh0dHA6Ly9kYXJrLndhcGl0LmNvbS92c3dhcC90ZXN0cy93YXAvRFREL3dtbDExLmR0ZCI+Cis8IS0tIChDKSAxOTk5LCAyMDAwIFdBUCBGb3J1bSBMdGQuICBBbGwgcmlnaHRzIHJlc2VydmVkIC0tPgorPHdtbD4KKzxjYXJkIGlkPSJjYXJkMSI+Cis8b25ldmVudCB0eXBlPSJvbmVudGVyZm9yd2FyZCI+Cis8Z28gaHJlZj0iL3Zzd2FwL3J1bi9yZXN1bHQuZW1sIj4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ2YXIiIHZhbHVlPSImIzM2O3Rlc3QiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ2IiB2YWx1ZT0iZGFyayIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InRzIiB2YWx1ZT0iMDAwMyIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InRwIiB2YWx1ZT0id21sL3N0YXRlL3ZhcmlhYmxlcy9wYXJzaW5nLzEiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ0aSIgdmFsdWU9IjEiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJleHBlY3RlZCIgdmFsdWU9InZhcjpwYXNzIi8+Cis8L2dvPgorPC9vbmV2ZW50PgorPHA+SWYgYXV0b21hdGljIHRlc3RpbmcgZmFpbGVkLCBzZWxlY3QgPGFuY2hvcj5GYWlsZWQ8Z28KK2hyZWY9Jy92c3dhcC9ydW4vcmVzdWx0LmVtbCc+CisgICAgICAgIDxwb3N0ZmllbGQgbmFtZT0iU1VCTUlUIiB2YWx1ZT0iTm8iLz48cG9zdGZpZWxkIG5hbWU9InYiCit2YWx1ZT0iZGFyayIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InRzIiB2YWx1ZT0iMDAwMyIvPgorICAgICAgICA8cG9zdGZpZWxkIG5hbWU9InRwIiB2YWx1ZT0id21sL3N0YXRlL3ZhcmlhYmxlcy9wYXJzaW5nLzEiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJ0aSIgdmFsdWU9IjEiLz4KKyAgICAgICAgPHBvc3RmaWVsZCBuYW1lPSJleHBlY3RlZCIgdmFsdWU9InZhcjpwYXNzIi8+PC9nbz48L2FuY2hvcj4uPC9wPgorPC9jYXJkPgorCis8L3dtbD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC93YXJuaW5nL2VudDggYi9saWJ4bWwyLTIuNy43L3Rlc3Qvd2FybmluZy9lbnQ4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNDA5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvd2FybmluZy9lbnQ4CkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgYSBTWVNURU0gImEuZHRkIj4KKzxhPiAmdW5rbm93bjsgYnV0IE9rYXkgPC9hPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3dhcm5pbmcvZW50OSBiL2xpYnhtbDItMi43LjcvdGVzdC93YXJuaW5nL2VudDkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA5ZTMyMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC93YXJuaW5nL2VudDkKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBFWEFNUExFIFNZU1RFTSAiZXhhbXBsZS5kdGQiIFsKKzwhRU5USVRZIHhtbCAiPHByZWZpeDpub2RlPnByZWZpeCBpcyBpbmRlY2xhcmVkIGhlcmU8L3ByZWZpeDpub2RlPiI+CitdPgorPEVYQU1QTEUgeG1sbnM6cHJlZml4PSJodHRwOi8vZXhhbXBsZS5jb20iPgorICAgICZ4bWw7Cis8L0VYQU1QTEU+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3Qvd2luYmxhbmtzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC93aW5ibGFua3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmOTM3ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3Qvd2luYmxhbmtzLnhtbApAQCAtMCwwICsxLDUgQEAKKzxhPg0KKyAgICA8Qj4NCisgICAgICAgIDxDLz4gICANCis8L0I+DQorPC9hPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC93bWwueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3dtbC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNmZWNjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC93bWwueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzwhRE9DVFlQRSB3bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFdNTCAxLjEvL0VOIiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcvRFREL3dtbF8xLjEueG1sIj4KKzx3bWw+CisgIDxjYXJkIGlkPSJjYXJkMSIgdGl0bGU9IlJ1YnJpcXVlcyA3NTAwOCI+CisJPHA+CisJCTxhIGhyZWY9InJ1Ym1lbnUuYXNwP0NQPTc1MDA4JiMzODtSQj0wMSI+Q2luJiMyMzM7bWE8L2E+PGJyLz4KKwk8L3A+CisKKzwvY2FyZD4KKzwvd21sPgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QveGh0bWwxIGIvbGlieG1sMi0yLjcuNy90ZXN0L3hodG1sMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGUzYTM0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3hodG1sMQpAQCAtMCwwICsxLDM0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPCEtLSAzLjEuMSAzLyAtLT4KKzxodG1sIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICA8aGVhZD4KKyAgICA8dGl0bGU+VmlydHVhbCBMaWJyYXJ5PC90aXRsZT4KKyAgPC9oZWFkPgorICA8IS0tIDQuOCAtLT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAuLi4gdW5lc2NhcGVkIHNjcmlwdCAmbHQ7IGNvbnRlbnQgLi4uCisgIDwvc2NyaXB0PgorICA8Ym9keT4KKyAgICA8cD5Nb3ZlZCB0byA8YSBocmVmPSJodHRwOi8vZXhhbXBsZS5vcmcvIj5leGFtcGxlLm9yZzwvYT4uPC9wPgorICA8L2JvZHk+CisgIDwhLS0gQzIgLS0+CisgIDxpbWcgc3JjPSJmb28uZ2lmIiBhbHQ9ImZvbyIvPgorICA8IS0tIEMzIC0tPgorICA8cC8+CisgIDwhLS0gQzcgLS0+CisgIDxwIGxhbmc9ImZyIj5jb3Vjb3U8L3A+CisgIDxwIHhtbDpsYW5nPSJmciI+c2FsdXQ8L3A+CisgIDwhLS0gQzggLS0+CisgIDxwIG5hbWU9ImZyYWdpZCI+dGVzdDwvcD4KKyAgPCEtLSA0LjUgLS0+CisgIDxkbCBjb21wYWN0PSIiPgorICA8ZHQ+SW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZTwvZHQ+CisgIDxkZD5BbiBvcmdhbml6YXRpb24gd2hpY2ggZXN0YWJsaXNoZXMgdGVjaG5pY2FsIHN0YW5kYXJkcyBmb3IgdGhlIEludGVybmV0PC9kZD4KKyAgPC9kbD4KKworPC9odG1sPgorCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC94aHRtbGNvbXAgYi9saWJ4bWwyLTIuNy43L3Rlc3QveGh0bWxjb21wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZGQyYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QveGh0bWxjb21wCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWw+CisgIDxib2R5PgorICAgIDxoMT48YWJicj5hPC9hYmJyPiBiPC9oMT4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3htbDEgYi9saWJ4bWwyLTIuNy43L3Rlc3QveG1sMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGRmMjRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3htbDEKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSB0ZXN0IFsKKzwhRU5USVRZIGV4YW1wbGUgIjxwPkFuIGFtcGVyc2FuZCAoJiMzODsjMzg7KSBtYXkgYmUgZXNjYXBlZAorIG51bWVyaWNhbGx5ICgmIzM4OyMzODsjMzg7KSBvciB3aXRoIGEgZ2VuZXJhbCBlbnRpdHkKKyAgKCZhbXA7YW1wOykuPC9wPiIgPgorXT4KKzx0ZXN0PiZleGFtcGxlOzwvdGVzdD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC94bWwyIGIvbGlieG1sMi0yLjcuNy90ZXN0L3htbDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIyMzE0YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC94bWwyCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+Cis8IURPQ1RZUEUgdGVzdCBbCis8IUVMRU1FTlQgdGVzdCAoI1BDREFUQSkgPgorPCFFTlRJVFkgJSB4eCAnJiMzNzt6ejsnPgorPCFFTlRJVFkgJSB6eiAnJiM2MDshRU5USVRZIHRyaWNreSAiZXJyb3ItcHJvbmUiID4nID4KKyV4eDsKK10+Cis8dGVzdD5UaGlzIHNhbXBsZSBzaG93cyBhICZ0cmlja3k7IG1ldGhvZC48L3Rlc3Q+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfZXJyMS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfZXJyMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhjNDdjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC94bWxpZC9pZF9lcnIxLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIHhtbDppZD0iMGJhciIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3htbGlkL2lkX2VycjIueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3htbGlkL2lkX2VycjIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MDEwYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfZXJyMi54bWwKQEAgLTAsMCArMSw1IEBACis8IURPQ1RZUEUgZm9vIFsKKzwhRUxFTUVOVCBmb28gRU1QVFk+Cis8IUFUVExJU1QgZm9vIHhtbDppZCBDREFUQSAjSU1QTElFRD4KK10+Cis8Zm9vIHhtbDppZD0iYmFyIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfdHN0MS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfdHN0MS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MzMjQ5YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC94bWxpZC9pZF90c3QxLnhtbApAQCAtMCwwICsxIEBACis8Zm9vIHhtbDppZD0iYmFyIi8+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfdHN0Mi54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfdHN0Mi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJmNTg2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdC94bWxpZC9pZF90c3QyLnhtbApAQCAtMCwwICsxIEBACis8bjpmb28geG1sOmlkPSJiYXIiLz4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC94bWxpZC9pZF90c3QzLnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC94bWxpZC9pZF90c3QzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzE2YTEzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3htbGlkL2lkX3RzdDMueG1sCkBAIC0wLDAgKzEgQEAKKzxmOm86byB4bWw6aWQ9ImJhciIvPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3htbGlkL2lkX3RzdDQueG1sIGIvbGlieG1sMi0yLjcuNy90ZXN0L3htbGlkL2lkX3RzdDQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMDU3YTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QveG1saWQvaWRfdHN0NC54bWwKQEAgLTAsMCArMSw0IEBACis8ZG9jPgorPGZvbyB4bWw6aWQ9ImJhciIvPgorPGVyciB4bWw6aWQ9ImJhciIvPgorPC9kb2M+CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3QveHNkdGVzdC94c2R0ZXN0LnhtbCBiL2xpYnhtbDItMi43LjcvdGVzdC94c2R0ZXN0L3hzZHRlc3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4YTZkZTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QveHNkdGVzdC94c2R0ZXN0LnhtbApAQCAtMCwwICsxLDgwNiBAQAorPHhzZHRlc3Q+Cis8ZGF0YXR5cGUgbmFtZT0iZGF0ZVRpbWUiPgorPHZhbGlkPjIwMDEtMTItMDFUMTk6NDU6MDA8L3ZhbGlkPgorPHZhbGlkPjIwMDEtMTItMDFUMTk6NDU6MDBaPC92YWxpZD4KKzx2YWxpZD4yMDAxLTEyLTAxVDE5OjQ1OjAwLTExOjU5PC92YWxpZD4KKzx2YWxpZD4wMDAxLTAxLTEyVDAwOjAwOjAwKzEyOjAwPC92YWxpZD4KKzxpbnZhbGlkPjIwMDEtMTItMVQxOTo0NTowMCsyNDowMDwvaW52YWxpZD4KKzxpbnZhbGlkPjIwMDEtMTItMVQxOTo0NTowMDwvaW52YWxpZD4KKzxlcXVpdj4KKzxjbGFzcz4KKyAgPHZhbHVlPjIwMDEtMTItMDFUMTk6NDU6MDA8L3ZhbHVlPgorICA8dmFsdWU+MjAwMS0xMi0wMVQxOTo0NTowMC4wMDwvdmFsdWU+Cis8L2NsYXNzPgorPGNsYXNzPgorICA8dmFsdWU+MjAwMS0xMi0wMVQxOTo0NTowMFo8L3ZhbHVlPgorICA8dmFsdWU+MjAwMS0xMi0wMVQxOTo0NTowMC4wMFo8L3ZhbHVlPgorICA8dmFsdWU+MjAwMS0xMi0wMVQyMDo0NTowMCswMTowMDwvdmFsdWU+Cis8L2NsYXNzPgorPC9lcXVpdj4KKzwvZGF0YXR5cGU+Cis8ZGF0YXR5cGUgbmFtZT0iYW55VVJJIj4KKzx2YWxpZD5mb29iYXI8L3ZhbGlkPgorPHZhbGlkPmh0dHA6Ly93d3cuZXhhbXBsZS5jb208L3ZhbGlkPgorPHZhbGlkPmh0dHA6Ly9qaSU2ZEB3d3cuZXhhbXBsZS5jb208L3ZhbGlkPgorPHZhbGlkPmh0dHA6Ly93d3cuZXhhbXBsZS5jbyU2ZDwvdmFsaWQ+Cis8dmFsaWQ+bm9zdWNoc2NoZW1lOnN0dWZmPC92YWxpZD4KKzxpbnZhbGlkPmZvbyRiYXI6c3R1ZmY8L2ludmFsaWQ+Cis8aW52YWxpZD5mJW9vYmFyPC9pbnZhbGlkPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJpbnRlZ2VyIj4KKzx2YWxpZD4xMDwvdmFsaWQ+Cis8dmFsaWQ+MDE8L3ZhbGlkPgorPHZhbGlkPjAxMjM0NTY3ODk8L3ZhbGlkPgorPHZhbGlkPisxMDwvdmFsaWQ+Cis8dmFsaWQ+LTEwPC92YWxpZD4KKzxpbnZhbGlkPjEuMDwvaW52YWxpZD4KKzxpbnZhbGlkPi4xPC9pbnZhbGlkPgorPHZhbGlkPjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk8L3ZhbGlkPgorPGludmFsaWQ+MS48L2ludmFsaWQ+Cis8aW52YWxpZD4wLjwvaW52YWxpZD4KKzxlcXVpdj4KKzxjbGFzcz4KKyAgPHZhbHVlPjA8L3ZhbHVlPgorICA8dmFsdWU+KzA8L3ZhbHVlPgorICA8dmFsdWU+LTA8L3ZhbHVlPgorICA8dmFsdWU+MDA8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPjEwPC92YWx1ZT4KKyAgPHZhbHVlPisxMDwvdmFsdWU+CisgIDx2YWx1ZT4rMDAxMDwvdmFsdWU+CisgIDx2YWx1ZT4wMTA8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPi0xMDwvdmFsdWU+CisgIDx2YWx1ZT4tMDAxMDwvdmFsdWU+CisgIDx2YWx1ZT4tMDEwPC92YWx1ZT4KKzwvY2xhc3M+Cis8L2VxdWl2PgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJkdXJhdGlvbiI+Cis8dmFsaWQ+UDFZPC92YWxpZD4KKzx2YWxpZD5QMVkwTTJEVDE3SDVNMTJTPC92YWxpZD4KKzx2YWxpZD4tUDFZPC92YWxpZD4KKzx2YWxpZD5QNjBEPC92YWxpZD4KKzx2YWxpZD5QVDI0SDwvdmFsaWQ+Cis8dmFsaWQ+UFQxLjJTPC92YWxpZD4KKzxpbnZhbGlkPlAyNGg8L2ludmFsaWQ+Cis8aW52YWxpZD5QMjRIPC9pbnZhbGlkPgorPGludmFsaWQ+UDFZVDwvaW52YWxpZD4KKzxpbnZhbGlkPlA8L2ludmFsaWQ+Cis8aW52YWxpZD4tUDwvaW52YWxpZD4KKzxlcXVpdj4KKyAgPGNsYXNzPgorICAgIDx2YWx1ZT4tUDZNPC92YWx1ZT4KKyAgPC9jbGFzcz4KKyAgPGNsYXNzPgorICAgIDx2YWx1ZT5QMFk8L3ZhbHVlPgorICAgIDx2YWx1ZT4tUDBZPC92YWx1ZT4KKyAgPC9jbGFzcz4KKyAgPGNsYXNzPgorICAgIDx2YWx1ZT5QMVk8L3ZhbHVlPgorICAgIDx2YWx1ZT5QMDAxWTwvdmFsdWU+CisgICAgPHZhbHVlPlAwMDFZME08L3ZhbHVlPgorICAgIDx2YWx1ZT5QMVkwTTBEVDBIME0wLjBTPC92YWx1ZT4KKyAgPC9jbGFzcz4KKyAgPGNsYXNzPgorICAgIDx2YWx1ZT5QNk08L3ZhbHVlPgorICA8L2NsYXNzPgorICA8Y2xhc3M+CisgICAgPHZhbHVlPlBUNk08L3ZhbHVlPgorICA8L2NsYXNzPgorICA8Y2xhc3M+CisgICAgPHZhbHVlPlBUMVM8L3ZhbHVlPgorICAgIDx2YWx1ZT5QVDEuMFM8L3ZhbHVlPgorICA8L2NsYXNzPgorPC9lcXVpdj4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPlBUMU08L3ZhbHVlPgorICA8dmFsdWU+UFQ2MVM8L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPlBUNTlTPC92YWx1ZT4KKyAgPHZhbHVlPlBUMU08L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzxpbmNvbXBhcmFibGU+CisgIDx2YWx1ZT5QVDYwUzwvdmFsdWU+CisgIDx2YWx1ZT5QVDFNPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGxlc3NUaGFuPgorICA8dmFsdWU+UFQxSDwvdmFsdWU+CisgIDx2YWx1ZT5QVDYxTTwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+UFQ1OU08L3ZhbHVlPgorICA8dmFsdWU+UFQxSDwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlBUNjBNPC92YWx1ZT4KKyAgPHZhbHVlPlBUMUg8L3ZhbHVlPgorPC9pbmNvbXBhcmFibGU+Cis8bGVzc1RoYW4+CisgIDx2YWx1ZT5QMUQ8L3ZhbHVlPgorICA8dmFsdWU+UFQyNUg8L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPlBUMjNIPC92YWx1ZT4KKyAgPHZhbHVlPlAxRDwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAxRDwvdmFsdWU+CisgIDx2YWx1ZT5QVDI0SDwvdmFsdWU+Cis8L2luY29tcGFyYWJsZT4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPlAxWTwvdmFsdWU+CisgIDx2YWx1ZT5QMTNNPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8bGVzc1RoYW4+CisgIDx2YWx1ZT5QMTFNPC92YWx1ZT4KKyAgPHZhbHVlPlAxWTwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAxMk08L3ZhbHVlPgorICA8dmFsdWU+UDFZPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGxlc3NUaGFuPgorICA8dmFsdWU+UDM2NEQ8L3ZhbHVlPgorICA8dmFsdWU+UDFZPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8aW5jb21wYXJhYmxlPgorICA8dmFsdWU+UDFZPC92YWx1ZT4KKyAgPHZhbHVlPlAzNjVEPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAxWTwvdmFsdWU+CisgIDx2YWx1ZT5QMzY2RDwvdmFsdWU+Cis8L2luY29tcGFyYWJsZT4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPlAxWTwvdmFsdWU+CisgIDx2YWx1ZT5QMzY3RDwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+UDE0OUQ8L3ZhbHVlPgorICA8dmFsdWU+UDVNPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8aW5jb21wYXJhYmxlPgorICA8dmFsdWU+UDE1MEQ8L3ZhbHVlPgorICA8dmFsdWU+UDVNPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAxNTFEPC92YWx1ZT4KKyAgPHZhbHVlPlA1TTwvdmFsdWU+Cis8L2luY29tcGFyYWJsZT4KKzxpbmNvbXBhcmFibGU+CisgIDx2YWx1ZT5QMTUyRDwvdmFsdWU+CisgIDx2YWx1ZT5QNU08L3ZhbHVlPgorPC9pbmNvbXBhcmFibGU+Cis8aW5jb21wYXJhYmxlPgorICA8dmFsdWU+UDE1M0Q8L3ZhbHVlPgorICA8dmFsdWU+UDVNPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGxlc3NUaGFuPgorICA8dmFsdWU+UDVNPC92YWx1ZT4KKyAgPHZhbHVlPlAxNTREPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8bGVzc1RoYW4+CisgIDx2YWx1ZT5QMjdEPC92YWx1ZT4KKyAgPHZhbHVlPlAxTTwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAyOEQ8L3ZhbHVlPgorICA8dmFsdWU+UDFNPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAyOUQ8L3ZhbHVlPgorICA8dmFsdWU+UDFNPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAzMEQ8L3ZhbHVlPgorICA8dmFsdWU+UDFNPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGluY29tcGFyYWJsZT4KKyAgPHZhbHVlPlAzMUQ8L3ZhbHVlPgorICA8dmFsdWU+UDFNPC92YWx1ZT4KKzwvaW5jb21wYXJhYmxlPgorPGxlc3NUaGFuPgorICA8dmFsdWU+UDFNPC92YWx1ZT4KKyAgPHZhbHVlPlAzMkQ8L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzwvZGF0YXR5cGU+Cis8ZGF0YXR5cGUgbmFtZT0idGltZSI+Cis8dmFsaWQ+MTI6NDU6MDA8L3ZhbGlkPgorPHZhbGlkPjEyOjQ1OjAwWjwvdmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImRhdGUiPgorPHZhbGlkPjE4ODYtMTItMDE8L3ZhbGlkPgorPHZhbGlkPjE4ODYtMTItMDFaPC92YWxpZD4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPjEwNjYtMTItMzE8L3ZhbHVlPgorICA8dmFsdWU+MTkwMC0wMS0wMTwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+MTkwMC0wMS0wMTwvdmFsdWU+CisgIDx2YWx1ZT4xOTAwLTAxLTAyPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImdZZWFyTW9udGgiPgorPHZhbGlkPjE5OTYtMTI8L3ZhbGlkPgorPHZhbGlkPjE5OTYtMDE8L3ZhbGlkPgorPHZhbGlkPjE5OTYtMDFaPC92YWxpZD4KKzxpbnZhbGlkPjE5OTYtMDA8L2ludmFsaWQ+Cis8ZXF1aXY+Cis8Y2xhc3M+PHZhbHVlPjE5OTYtMDE8L3ZhbHVlPjwvY2xhc3M+Cis8Y2xhc3M+CisgIDx2YWx1ZT4xOTk2LTAxWjwvdmFsdWU+CisgIDx2YWx1ZT4xOTk2LTAxKzAwOjAwPC92YWx1ZT4KKyAgPHZhbHVlPjE5OTYtMDEtMDA6MDA8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz48dmFsdWU+MTk5Ni0wMSswMTowMDwvdmFsdWU+PC9jbGFzcz4KKzxjbGFzcz48dmFsdWU+MTk5Ni0wMS0wMTowMDwvdmFsdWU+PC9jbGFzcz4KKzwvZXF1aXY+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImdZZWFyIj4KKzx2YWxpZD4yMDAxPC92YWxpZD4KKzx2YWxpZD4yMDAxWjwvdmFsaWQ+Cis8bGVzc1RoYW4+CisgIDx2YWx1ZT4xOTk5PC92YWx1ZT4KKyAgPHZhbHVlPjIwMDA8L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPjE5OTkrMDc6MDA8L3ZhbHVlPgorICA8dmFsdWU+MjAwMCswNzowMDwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJnTW9udGhEYXkiPgorPHZhbGlkPi0tMTItMDE8L3ZhbGlkPgorPHZhbGlkPi0tMTItMDFaPC92YWxpZD4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPi0tMTItMDE8L3ZhbHVlPgorICA8dmFsdWU+LS0xMi0wNDwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+LS0xMS0xNzwvdmFsdWU+CisgIDx2YWx1ZT4tLTEyLTA0PC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImdEYXkiPgorPHZhbGlkPi0tLTIwPC92YWxpZD4KKzx2YWxpZD4tLS0yMFo8L3ZhbGlkPgorPGxlc3NUaGFuPgorICA8dmFsdWU+LS0tMDE8L3ZhbHVlPgorICA8dmFsdWU+LS0tMzE8L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzwvZGF0YXR5cGU+Cis8ZGF0YXR5cGUgbmFtZT0iZ01vbnRoIj4KKzx2YWxpZD4tLTEyPC92YWxpZD4KKzx2YWxpZD4tLTAxPC92YWxpZD4KKzx2YWxpZD4tLTAxWjwvdmFsaWQ+Cis8dmFsaWQ+IC0tMTIgPC92YWxpZD4KKzxpbnZhbGlkPi0tLTAxPC9pbnZhbGlkPgorPGludmFsaWQ+LS0wMDwvaW52YWxpZD4KKzxpbnZhbGlkPi0tMTM8L2ludmFsaWQ+Cis8aW52YWxpZD4tIC0xMzwvaW52YWxpZD4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPi0tMDE8L3ZhbHVlPgorICA8dmFsdWU+LS0xMjwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+LS0wMTwvdmFsdWU+CisgIDx2YWx1ZT4tLTAyPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImJvb2xlYW4iPgorPHZhbGlkPnRydWU8L3ZhbGlkPgorPHZhbGlkPmZhbHNlPC92YWxpZD4KKzx2YWxpZD4wPC92YWxpZD4KKzx2YWxpZD4xPC92YWxpZD4KKzxpbnZhbGlkPjAwPC9pbnZhbGlkPgorPGludmFsaWQ+MDA8L2ludmFsaWQ+Cis8aW52YWxpZD4wMTwvaW52YWxpZD4KKzxlcXVpdj4KKzxjbGFzcz48dmFsdWU+dHJ1ZTwvdmFsdWU+PHZhbHVlPjE8L3ZhbHVlPjwvY2xhc3M+Cis8Y2xhc3M+PHZhbHVlPmZhbHNlPC92YWx1ZT48dmFsdWU+MDwvdmFsdWU+PC9jbGFzcz4KKzwvZXF1aXY+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImJhc2U2NEJpbmFyeSI+Cis8dmFsaWQ+QUFBQTwvdmFsaWQ+Cis8dmFsaWQ+YWJjZCBlZmdoIGlqa2wgbW5vcCBxcnN0IHV2d3ggeXpBQiBDREVGIEdISUogS0xNTiBPUFFSCitTVFVWIFdYWVogMDEyMyA0NTY3IDg5Ky88L3ZhbGlkPgorPHZhbGlkPkJBPT08L3ZhbGlkPgorPHZhbGlkPjwvdmFsaWQ+Cis8dmFsaWQ+QkE9PTwvdmFsaWQ+Cis8dmFsaWQ+QlE9PTwvdmFsaWQ+Cis8dmFsaWQ+Qmc9PTwvdmFsaWQ+Cis8dmFsaWQ+Qnc9PTwvdmFsaWQ+Cis8dmFsaWQ+QkJBPTwvdmFsaWQ+Cis8dmFsaWQ+QkJBPTwvdmFsaWQ+Cis8dmFsaWQ+QkJFPTwvdmFsaWQ+Cis8dmFsaWQ+QkJJPTwvdmFsaWQ+Cis8dmFsaWQ+QkJNPTwvdmFsaWQ+Cis8dmFsaWQ+QkJRPTwvdmFsaWQ+Cis8dmFsaWQ+QkJVPTwvdmFsaWQ+Cis8dmFsaWQ+QkJZPTwvdmFsaWQ+Cis8dmFsaWQ+QkJjPTwvdmFsaWQ+Cis8dmFsaWQ+QkJnPTwvdmFsaWQ+Cis8dmFsaWQ+QkJrPTwvdmFsaWQ+Cis8dmFsaWQ+QkJvPTwvdmFsaWQ+Cis8dmFsaWQ+QkJzPTwvdmFsaWQ+Cis8dmFsaWQ+QkJ3PTwvdmFsaWQ+Cis8dmFsaWQ+QkIwPTwvdmFsaWQ+Cis8dmFsaWQ+QkI0PTwvdmFsaWQ+Cis8dmFsaWQ+QkI4PTwvdmFsaWQ+Cis8aW52YWxpZD49PT09PC9pbnZhbGlkPgorPGludmFsaWQ+QkI9PTwvaW52YWxpZD4KKzxpbnZhbGlkPkJCQj08L2ludmFsaWQ+Cis8aW52YWxpZD5CPT09PC9pbnZhbGlkPgorPGludmFsaWQ+QjwvaW52YWxpZD4KKzxlcXVpdj4KKzxjbGFzcz4KKzx2YWx1ZT5kZWFkYmVlZjwvdmFsdWU+Cis8dmFsdWU+ZCYjeEE7JiN4RDsmI3g5O2UgYSBkCitiIGVlZiA8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKzx2YWx1ZT5ERUFEQkVFRjwvdmFsdWU+Cis8dmFsdWU+RCYjeEE7JiN4RDsmI3g5O0UgQSBECitCIEVFRiA8L3ZhbHVlPgorPC9jbGFzcz4KKzwvZXF1aXY+Cis8bGVuZ3RoIHZhbHVlPSIwIj48L2xlbmd0aD4KKzxsZW5ndGggdmFsdWU9IjYiPmRlYWRiZWVmPC9sZW5ndGg+Cis8bGVuZ3RoIHZhbHVlPSIxIj5CQT09PC9sZW5ndGg+Cis8bGVuZ3RoIHZhbHVlPSIyIj5CQkE9PC9sZW5ndGg+Cis8bGVuZ3RoIHZhbHVlPSIzIj5kZWFkPC9sZW5ndGg+Cis8bGVuZ3RoIHZhbHVlPSI0Ij5kZWFkQkE9PTwvbGVuZ3RoPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJoZXhCaW5hcnkiPgorPHZhbGlkPmRlYWRiZWVmPC92YWxpZD4KKzx2YWxpZD48L3ZhbGlkPgorPHZhbGlkPjAxMjM0NTY3ODlBQkNERUZhYmNkZWY8L3ZhbGlkPgorPGludmFsaWQ+MDAgMDA8L2ludmFsaWQ+Cis8aW52YWxpZD4wMC4wMDwvaW52YWxpZD4KKzxpbnZhbGlkPjBHPC9pbnZhbGlkPgorPGVxdWl2PgorIDxjbGFzcz4KKyAgIDx2YWx1ZT4wMDwvdmFsdWU+CisgICA8dmFsdWU+CisJMDAKKyAgIDwvdmFsdWU+CisgPC9jbGFzcz4KKyA8Y2xhc3M+CisgICA8dmFsdWU+MDE8L3ZhbHVlPgorIDwvY2xhc3M+CisgPGNsYXNzPgorICAgPHZhbHVlPjEwPC92YWx1ZT4KKyA8L2NsYXNzPgorIDxjbGFzcz4KKyAgIDx2YWx1ZT4wYTwvdmFsdWU+CisgICA8dmFsdWU+MEE8L3ZhbHVlPgorIDwvY2xhc3M+Cis8L2VxdWl2PgorPGxlbmd0aCB2YWx1ZT0iMCI+PC9sZW5ndGg+Cis8bGVuZ3RoIHZhbHVlPSIxIj4wMDwvbGVuZ3RoPgorPGxlbmd0aCB2YWx1ZT0iMiI+MDAwMDwvbGVuZ3RoPgorPGxlbmd0aCB2YWx1ZT0iMiI+IDAwMDAgPC9sZW5ndGg+Cis8bGVuZ3RoIHZhbHVlPSIyIj5BQUFBPC9sZW5ndGg+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImZsb2F0Ij4KKzx2YWxpZD4xLjA8L3ZhbGlkPgorPHZhbGlkPjEuPC92YWxpZD4KKzx2YWxpZD4uMTwvdmFsaWQ+Cis8aW52YWxpZD4tIDE8L2ludmFsaWQ+Cis8aW52YWxpZD4xIC4wPC9pbnZhbGlkPgorPGludmFsaWQ+K0lORjwvaW52YWxpZD4KKzxpbnZhbGlkPitOYU48L2ludmFsaWQ+Cis8aW52YWxpZD4tTmFOPC9pbnZhbGlkPgorPGVxdWl2PgorPGNsYXNzPgorICA8dmFsdWU+MDwvdmFsdWU+CisgIDx2YWx1ZT4tMDwvdmFsdWU+CisgIDx2YWx1ZT4rMDwvdmFsdWU+CisgIDx2YWx1ZT4gMCA8L3ZhbHVlPgorICA8dmFsdWU+IDAuIDwvdmFsdWU+CisgIDx2YWx1ZT4gLjAgPC92YWx1ZT4KKyAgPHZhbHVlPiAwLjAgPC92YWx1ZT4KKyAgPHZhbHVlPiAwZTAgPC92YWx1ZT4KKyAgPHZhbHVlPiAwRTAgPC92YWx1ZT4KKyAgPHZhbHVlPiAwRSswIDwvdmFsdWU+CisgIDx2YWx1ZT4gMEUtMCA8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPjFFMDwvdmFsdWU+CisgIDx2YWx1ZT4wLjFFMTwvdmFsdWU+CisgIDx2YWx1ZT4xMEUtMTwvdmFsdWU+CisgIDx2YWx1ZT4rMTwvdmFsdWU+Cis8L2NsYXNzPgorPGNsYXNzPgorICA8dmFsdWU+LTE8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPklORjwvdmFsdWU+CisgIDx2YWx1ZT5JTkYgPC92YWx1ZT4KKzwvY2xhc3M+Cis8Y2xhc3M+CisgIDx2YWx1ZT4tSU5GPC92YWx1ZT4KKyAgPHZhbHVlPi1JTkYgPC92YWx1ZT4KKzwvY2xhc3M+Cis8Y2xhc3M+CisgIDx2YWx1ZT5OYU48L3ZhbHVlPgorICA8dmFsdWU+IE5hTiA8L3ZhbHVlPgorPC9jbGFzcz4KKzwvZXF1aXY+Cis8bGVzc1RoYW4+CisgIDx2YWx1ZT4tSU5GPC92YWx1ZT4KKyAgPHZhbHVlPi0xMDAwPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8bGVzc1RoYW4+CisgIDx2YWx1ZT4xMDAwPC92YWx1ZT4KKyAgPHZhbHVlPklORjwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+LTE8L3ZhbHVlPgorICA8dmFsdWU+MTwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+MDwvdmFsdWU+CisgIDx2YWx1ZT4xPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8bGVzc1RoYW4+CisgIDx2YWx1ZT4tMTwvdmFsdWU+CisgIDx2YWx1ZT4wPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImRvdWJsZSI+Cis8dmFsaWQ+MS4wPC92YWxpZD4KKzx2YWxpZD4xLjwvdmFsaWQ+Cis8dmFsaWQ+LjE8L3ZhbGlkPgorPGludmFsaWQ+LSAxPC9pbnZhbGlkPgorPGludmFsaWQ+MSAuMDwvaW52YWxpZD4KKzxpbnZhbGlkPitJTkY8L2ludmFsaWQ+Cis8aW52YWxpZD4rTmFOPC9pbnZhbGlkPgorPGludmFsaWQ+LU5hTjwvaW52YWxpZD4KKzxlcXVpdj4KKzxjbGFzcz4KKyAgPHZhbHVlPjA8L3ZhbHVlPgorICA8dmFsdWU+LTA8L3ZhbHVlPgorICA8dmFsdWU+KzA8L3ZhbHVlPgorICA8dmFsdWU+IDAgPC92YWx1ZT4KKyAgPHZhbHVlPiAwLiA8L3ZhbHVlPgorICA8dmFsdWU+IC4wIDwvdmFsdWU+CisgIDx2YWx1ZT4gMC4wIDwvdmFsdWU+CisgIDx2YWx1ZT4gMGUwIDwvdmFsdWU+CisgIDx2YWx1ZT4gMEUwIDwvdmFsdWU+CisgIDx2YWx1ZT4gMEUrMCA8L3ZhbHVlPgorICA8dmFsdWU+IDBFLTAgPC92YWx1ZT4KKzwvY2xhc3M+Cis8Y2xhc3M+CisgIDx2YWx1ZT4xRTA8L3ZhbHVlPgorICA8dmFsdWU+MC4xRTE8L3ZhbHVlPgorICA8dmFsdWU+MTBFLTE8L3ZhbHVlPgorICA8dmFsdWU+KzE8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPi0xPC92YWx1ZT4KKzwvY2xhc3M+Cis8Y2xhc3M+CisgIDx2YWx1ZT5JTkY8L3ZhbHVlPgorICA8dmFsdWU+SU5GIDwvdmFsdWU+Cis8L2NsYXNzPgorPGNsYXNzPgorICA8dmFsdWU+LUlORjwvdmFsdWU+CisgIDx2YWx1ZT4tSU5GIDwvdmFsdWU+Cis8L2NsYXNzPgorPGNsYXNzPgorICA8dmFsdWU+TmFOPC92YWx1ZT4KKyAgPHZhbHVlPiBOYU4gPC92YWx1ZT4KKzwvY2xhc3M+Cis8L2VxdWl2PgorPGxlc3NUaGFuPgorICA8dmFsdWU+LUlORjwvdmFsdWU+CisgIDx2YWx1ZT4tMTAwMDwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+MTAwMDwvdmFsdWU+CisgIDx2YWx1ZT5JTkY8L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPi0xPC92YWx1ZT4KKyAgPHZhbHVlPjE8L3ZhbHVlPgorPC9sZXNzVGhhbj4KKzxsZXNzVGhhbj4KKyAgPHZhbHVlPjA8L3ZhbHVlPgorICA8dmFsdWU+MTwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPGxlc3NUaGFuPgorICA8dmFsdWU+LTE8L3ZhbHVlPgorICA8dmFsdWU+MDwvdmFsdWU+Cis8L2xlc3NUaGFuPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJRTmFtZSI+Cis8dmFsaWQ+Zm9vPC92YWxpZD4KKzx2YWxpZCB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj54OmZvbzwvdmFsaWQ+Cis8aW52YWxpZD55OmZvbzwvaW52YWxpZD4KKzxlcXVpdiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIgorICAgICAgIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIgorICAgICAgIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPgorPGNsYXNzPgorICA8dmFsdWU+Zm9vPC92YWx1ZT4KKyAgPHZhbHVlPiBmb288L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPng6Zm9vPC92YWx1ZT4KKyAgPHZhbHVlPiB4OmZvbyA8L3ZhbHVlPgorICA8dmFsdWU+ejpmb288L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPng6YmFyPC92YWx1ZT4KKyAgPHZhbHVlPno6YmFyPC92YWx1ZT4KKzwvY2xhc3M+Cis8Y2xhc3M+CisgIDx2YWx1ZT55OmZvbzwvdmFsdWU+Cis8L2NsYXNzPgorPGNsYXNzPgorICA8dmFsdWU+eTpiYXI8L3ZhbHVlPgorPC9jbGFzcz4KKzwvZXF1aXY+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9Ik5PVEFUSU9OIj4KKzx2YWxpZD5mb288L3ZhbGlkPgorPHZhbGlkIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPng6Zm9vPC92YWxpZD4KKzxpbnZhbGlkPnk6Zm9vPC9pbnZhbGlkPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJkZWNpbWFsIj4KKzx2YWxpZD4xLjA8L3ZhbGlkPgorPHZhbGlkPjEuPC92YWxpZD4KKzx2YWxpZD4uMTwvdmFsaWQ+Cis8dmFsaWQ+KzEuMDwvdmFsaWQ+Cis8dmFsaWQ+LTEuMDwvdmFsaWQ+Cis8dmFsaWQ+IDEgPC92YWxpZD4KKzx2YWxpZD45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTwvdmFsaWQ+Cis8dmFsaWQ+LTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5PC92YWxpZD4KKzxpbnZhbGlkPmp1bms8L2ludmFsaWQ+Cis8aW52YWxpZD4tLTE8L2ludmFsaWQ+Cis8aW52YWxpZD4rKzE8L2ludmFsaWQ+Cis8aW52YWxpZD4rLTE8L2ludmFsaWQ+Cis8aW52YWxpZD4xLjIuPC9pbnZhbGlkPgorPGludmFsaWQ+Li4xPC9pbnZhbGlkPgorPGludmFsaWQ+MS4uPC9pbnZhbGlkPgorPGludmFsaWQ+MSAuMjwvaW52YWxpZD4KKzxpbnZhbGlkPjErPC9pbnZhbGlkPgorPGludmFsaWQ+KyAxPC9pbnZhbGlkPgorPGxlc3NUaGFuPgorICA8dmFsdWU+MDwvdmFsdWU+CisgIDx2YWx1ZT4xPC92YWx1ZT4KKzwvbGVzc1RoYW4+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9Im5vblBvc2l0aXZlSW50ZWdlciI+Cis8dmFsaWQ+LTE8L3ZhbGlkPgorPHZhbGlkPjA8L3ZhbGlkPgorPHZhbGlkPi0wPC92YWxpZD4KKzxpbnZhbGlkPjE8L2ludmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9Im5vbk5lZ2F0aXZlSW50ZWdlciI+Cis8dmFsaWQ+MTwvdmFsaWQ+Cis8dmFsaWQ+MDwvdmFsaWQ+Cis8dmFsaWQ+KzE8L3ZhbGlkPgorPHZhbGlkPiswPC92YWxpZD4KKzxpbnZhbGlkPi0xPC9pbnZhbGlkPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJwb3NpdGl2ZUludGVnZXIiPgorPHZhbGlkPisxPC92YWxpZD4KKzx2YWxpZD4xPC92YWxpZD4KKzxpbnZhbGlkPjA8L2ludmFsaWQ+Cis8aW52YWxpZD4tMTwvaW52YWxpZD4KKzwvZGF0YXR5cGU+Cis8ZGF0YXR5cGUgbmFtZT0ibmVnYXRpdmVJbnRlZ2VyIj4KKzx2YWxpZD4tMTwvdmFsaWQ+Cis8aW52YWxpZD4rMTwvaW52YWxpZD4KKzxpbnZhbGlkPjA8L2ludmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImxvbmciPgorPHZhbGlkPjE8L3ZhbGlkPgorPHZhbGlkPisxPC92YWxpZD4KKzx2YWxpZD4wPC92YWxpZD4KKzx2YWxpZD4gMCA8L3ZhbGlkPgorPGludmFsaWQ+MSAyPC9pbnZhbGlkPgorPGludmFsaWQ+OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTwvaW52YWxpZD4KKzx2YWxpZD45MjIzMzcyMDM2ODU0Nzc1ODA3PC92YWxpZD4KKzx2YWxpZD4tOTIyMzM3MjAzNjg1NDc3NTgwODwvdmFsaWQ+Cis8aW52YWxpZD45MjIzMzcyMDM2ODU0Nzc1ODA4PC9pbnZhbGlkPgorPGludmFsaWQ+LTkyMjMzNzIwMzY4NTQ3NzU4MDk8L2ludmFsaWQ+Cis8aW52YWxpZC8+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImludCI+Cis8dmFsaWQ+MTwvdmFsaWQ+Cis8dmFsaWQ+MDE8L3ZhbGlkPgorPHZhbGlkPiAxIDwvdmFsaWQ+Cis8dmFsaWQ+MjE0NzQ4MzY0NzwvdmFsaWQ+Cis8dmFsaWQ+LTIxNDc0ODM2NDg8L3ZhbGlkPgorPGludmFsaWQ+MjE0NzQ4MzY0ODwvaW52YWxpZD4KKzxpbnZhbGlkPi0yMTQ3NDgzNjQ5PC9pbnZhbGlkPgorPGludmFsaWQ+OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTwvaW52YWxpZD4KKzxlcXVpdj4KKzxjbGFzcz4KKyA8dmFsdWU+MTwvdmFsdWU+CisgPHZhbHVlPisxPC92YWx1ZT4KKyA8dmFsdWU+IDEgPC92YWx1ZT4KKyA8dmFsdWU+MDAxPC92YWx1ZT4KKzwvY2xhc3M+Cis8Y2xhc3M+CisgPHZhbHVlPi0xPC92YWx1ZT4KKyA8dmFsdWU+IC0xIDwvdmFsdWU+CisgPHZhbHVlPi0wMDE8L3ZhbHVlPgorPC9jbGFzcz4KKzwvZXF1aXY+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9InNob3J0Ij4KKzx2YWxpZD4xPC92YWxpZD4KKzx2YWxpZD4zMjc2NzwvdmFsaWQ+Cis8dmFsaWQ+LTMyNzY4PC92YWxpZD4KKzxpbnZhbGlkPjMyNzY4PC9pbnZhbGlkPgorPGludmFsaWQ+LTMyNzY5PC9pbnZhbGlkPgorPGludmFsaWQ+OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTwvaW52YWxpZD4KKzxlcXVpdj4KKzxjbGFzcz4KKyA8dmFsdWU+MTwvdmFsdWU+CisgPHZhbHVlPisxPC92YWx1ZT4KKyA8dmFsdWU+IDEgPC92YWx1ZT4KKyA8dmFsdWU+MDAxPC92YWx1ZT4KKzwvY2xhc3M+Cis8Y2xhc3M+CisgPHZhbHVlPi0xPC92YWx1ZT4KKyA8dmFsdWU+IC0xIDwvdmFsdWU+CisgPHZhbHVlPi0wMDE8L3ZhbHVlPgorPC9jbGFzcz4KKzwvZXF1aXY+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9ImJ5dGUiPgorPHZhbGlkPjE8L3ZhbGlkPgorPHZhbGlkPjEyNzwvdmFsaWQ+Cis8dmFsaWQ+LTEyODwvdmFsaWQ+Cis8aW52YWxpZD4xMjg8L2ludmFsaWQ+Cis8aW52YWxpZD4tMTI5PC9pbnZhbGlkPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJ1bnNpZ25lZExvbmciPgorPHZhbGlkPjE8L3ZhbGlkPgorPHZhbGlkPisxPC92YWxpZD4KKzxpbnZhbGlkPi0xPC9pbnZhbGlkPgorPHZhbGlkPjA8L3ZhbGlkPgorPHZhbGlkPjE4NDQ2NzQ0MDczNzA5NTUxNjE1PC92YWxpZD4KKzxpbnZhbGlkPjE4NDQ2NzQ0MDczNzA5NTUxNjE2PC9pbnZhbGlkPgorPGludmFsaWQ+LTE8L2ludmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9InVuc2lnbmVkSW50Ij4KKzx2YWxpZD4xPC92YWxpZD4KKzx2YWxpZD4rMTwvdmFsaWQ+Cis8dmFsaWQ+MDwvdmFsaWQ+Cis8dmFsaWQ+NDI5NDk2NzI5NTwvdmFsaWQ+Cis8aW52YWxpZD40Mjk0OTY3Mjk2PC9pbnZhbGlkPgorPGludmFsaWQ+LTE8L2ludmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9InVuc2lnbmVkU2hvcnQiPgorPHZhbGlkPjE8L3ZhbGlkPgorPHZhbGlkPisxPC92YWxpZD4KKzx2YWxpZD4wPC92YWxpZD4KKzx2YWxpZD42NTUzNTwvdmFsaWQ+Cis8aW52YWxpZD42NTUzNjwvaW52YWxpZD4KKzxpbnZhbGlkPi0xPC9pbnZhbGlkPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJ1bnNpZ25lZEJ5dGUiPgorPHZhbGlkPjE8L3ZhbGlkPgorPHZhbGlkPisxPC92YWxpZD4KKzx2YWxpZD4wPC92YWxpZD4KKzx2YWxpZD4yNTU8L3ZhbGlkPgorPGludmFsaWQ+MjU2PC9pbnZhbGlkPgorPGludmFsaWQ+LTE8L2ludmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9InN0cmluZyI+Cis8dmFsaWQ+YW55IHRoaW5nIGF0IGFsbCE8L3ZhbGlkPgorPC9kYXRhdHlwZT4KKzxkYXRhdHlwZSBuYW1lPSJub3JtYWxpemVkU3RyaW5nIj4KKzx2YWxpZD5hbnkgdGhpbmcgYXQgYWxsITwvdmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9InRva2VuIj4KKzx2YWxpZD5hbnkgdGhpbmcgYXQgYWxsITwvdmFsaWQ+Cis8ZXF1aXY+Cis8Y2xhc3M+CisgIDx2YWx1ZS8+CisgIDx2YWx1ZT4gPC92YWx1ZT4KKyAgPHZhbHVlPiYjeDk7JiN4QTsmI3hEOyYjeDIwOzwvdmFsdWU+Cis8L2NsYXNzPgorPGNsYXNzPgorICA8dmFsdWU+eCYjeDIwOzwvdmFsdWU+CisgIDx2YWx1ZT54JiN4QTs8L3ZhbHVlPgorICA8dmFsdWU+eCYjeEQ7PC92YWx1ZT4KKyAgPHZhbHVlPngmI3g5OzwvdmFsdWU+CisgIDx2YWx1ZT4mI3gyMDt4PC92YWx1ZT4KKyAgPHZhbHVlPiYjeEE7eDwvdmFsdWU+CisgIDx2YWx1ZT4mI3hEO3g8L3ZhbHVlPgorICA8dmFsdWU+JiN4OTt4PC92YWx1ZT4KKyAgPHZhbHVlPiYjeDk7JiN4QTsmI3hEOyYjeDIwO3gmI3g5OyYjeEE7JiN4RDsmI3gyMDs8L3ZhbHVlPgorPC9jbGFzcz4KKzxjbGFzcz4KKyAgPHZhbHVlPnggeSYjeDIwOzwvdmFsdWU+CisgIDx2YWx1ZT54IHkmI3hBOzwvdmFsdWU+CisgIDx2YWx1ZT54IHkmI3hEOzwvdmFsdWU+CisgIDx2YWx1ZT54IHkmI3g5OzwvdmFsdWU+CisgIDx2YWx1ZT54JiN4MjA7eTwvdmFsdWU+CisgIDx2YWx1ZT54JiN4QTt5PC92YWx1ZT4KKyAgPHZhbHVlPngmI3hEO3k8L3ZhbHVlPgorICA8dmFsdWU+eCYjeDk7eTwvdmFsdWU+CisgIDx2YWx1ZT4mI3gyMDt4IHk8L3ZhbHVlPgorICA8dmFsdWU+JiN4QTt4IHk8L3ZhbHVlPgorICA8dmFsdWU+JiN4RDt4IHk8L3ZhbHVlPgorICA8dmFsdWU+JiN4OTt4IHk8L3ZhbHVlPgorICA8dmFsdWU+JiN4OTsmI3hBOyYjeEQ7JiN4MjA7eCYjeDk7JiN4QTsmI3hEOyYjeDIwO3kmI3g5OyYjeEE7JiN4RDsmI3gyMDs8L3ZhbHVlPgorPC9jbGFzcz4KKzwvZXF1aXY+Cis8bGVuZ3RoIHZhbHVlPSIwIj48L2xlbmd0aD4KKzxsZW5ndGggdmFsdWU9IjEiPng8L2xlbmd0aD4KKzxsZW5ndGggdmFsdWU9IjEiPiB4IDwvbGVuZ3RoPgorPGxlbmd0aCB2YWx1ZT0iMSI+JiN4MTA4MDA7PC9sZW5ndGg+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9Imxhbmd1YWdlIj4KKzx2YWxpZD5lbjwvdmFsaWQ+Cis8dmFsaWQ+ZW4tVUs8L3ZhbGlkPgorPHZhbGlkPmktY2hlcm9rZWU8L3ZhbGlkPgorPHZhbGlkPngta2xpbmdvbjwvdmFsaWQ+Cis8dmFsaWQ+ZW4tdWstc2NvdGxhbmQ8L3ZhbGlkPgorPGludmFsaWQ+ZW4uVUs8L2ludmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9Ik5hbWUiPgorPHZhbGlkPmZvbzwvdmFsaWQ+Cis8dmFsaWQ+XzAxMjM0NTY3ODk8L3ZhbGlkPgorPGludmFsaWQ+LjwvaW52YWxpZD4KKzx2YWxpZD46PC92YWxpZD4KKzxpbnZhbGlkPi08L2ludmFsaWQ+Cis8aW52YWxpZD4xMjM0PC9pbnZhbGlkPgorPHZhbGlkPiBmb28gPC92YWxpZD4KKzwvZGF0YXR5cGU+Cis8ZGF0YXR5cGUgbmFtZT0iTkNOYW1lIj4KKzx2YWxpZD5mb288L3ZhbGlkPgorPGludmFsaWQ+Zm9vOmJhcjwvaW52YWxpZD4KKzxpbnZhbGlkPjBmb288L2ludmFsaWQ+Cis8ZXF1aXY+Cis8Y2xhc3M+PHZhbHVlPmZvbzwvdmFsdWU+PHZhbHVlPiBmb28gPC92YWx1ZT48L2NsYXNzPgorPGNsYXNzPjx2YWx1ZT5GT088L3ZhbHVlPjx2YWx1ZT4gRk9PIDwvdmFsdWU+PC9jbGFzcz4KKzwvZXF1aXY+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9Ik5NVE9LRU4iPgorPHZhbGlkPmZvbzwvdmFsaWQ+Cis8dmFsaWQ+XzwvdmFsaWQ+Cis8dmFsaWQ+LjwvdmFsaWQ+Cis8dmFsaWQ+OjwvdmFsaWQ+Cis8dmFsaWQ+LTwvdmFsaWQ+Cis8dmFsaWQ+MTIzNDwvdmFsaWQ+Cis8dmFsaWQ+IGZvbyA8L3ZhbGlkPgorPGxlbmd0aCB2YWx1ZT0iMyI+IGZvbyA8L2xlbmd0aD4KKzxsZW5ndGggdmFsdWU9IjIiPmZvPC9sZW5ndGg+Cis8bGVuZ3RoIHZhbHVlPSIxIj5mPC9sZW5ndGg+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9Ik5NVE9LRU5TIj4KKzx2YWxpZD5mb28gYmFyPC92YWxpZD4KKzxpbnZhbGlkLz4KKzx2YWxpZD4xIDIgMyA0PC92YWxpZD4KKzwvZGF0YXR5cGU+Cis8ZGF0YXR5cGUgbmFtZT0iSUQiPgorPHZhbGlkPmZvb2JhcjwvdmFsaWQ+Cis8aW52YWxpZD5mb286YmFyPC9pbnZhbGlkPgorPGludmFsaWQ+Zm9vIGJhcjwvaW52YWxpZD4KKzwvZGF0YXR5cGU+Cis8ZGF0YXR5cGUgbmFtZT0iRU5USVRZIj4KKzxpbnZhbGlkLz4KKzxpbnZhbGlkPmZvbzwvaW52YWxpZD4KKzx2YWxpZCBpbnRlcm5hbFN1YnNldD0iJmx0OyFFTlRJVFkgZm9vIFNZU1RFTSAnd2hhdGV2ZXInIE5EQVRBIGpwZWc+IgorPmZvbzwvdmFsaWQ+Cis8L2RhdGF0eXBlPgorPGRhdGF0eXBlIG5hbWU9IkVOVElUSUVTIj4KKzxpbnZhbGlkPjwvaW52YWxpZD4KKzxpbnZhbGlkPmZvbzwvaW52YWxpZD4KKzx2YWxpZCBpbnRlcm5hbFN1YnNldD0iJmx0OyFFTlRJVFkgZm9vIFNZU1RFTSAnd2hhdGV2ZXInIE5EQVRBIGpwZWc+CismI3hBOyZsdDshRU5USVRZIGJhciBTWVNURU0gJ3doYXRldmVyJyBOREFUQSBqcGVnPgorIgorPiBmb28gYmFyIDwvdmFsaWQ+Cis8L2RhdGF0eXBlPgorPC94c2R0ZXN0PgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0L3hzZHRlc3QveHNkdGVzdC54c2wgYi9saWJ4bWwyLTIuNy43L3Rlc3QveHNkdGVzdC94c2R0ZXN0LnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTdhZGYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0L3hzZHRlc3QveHNkdGVzdC54c2wKQEAgLTAsMCArMSwyMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzbDpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCIgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iPgorCis8eHNsOnN0cmlwLXNwYWNlIGVsZW1lbnRzPSJ4c2R0ZXN0IGRhdGF0eXBlIGVxdWl2IGNsYXNzIi8+CisKKzx4c2w6b3V0cHV0IGluZGVudD0ieWVzIiBlbmNvZGluZz0idXRmLTgiLz4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ieHNkdGVzdCI+CisgIDx0ZXN0U3VpdGU+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPgorICA8L3Rlc3RTdWl0ZT4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJkYXRhdHlwZSI+Cis8dGVzdFN1aXRlPgorPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9kb2N1bWVudGF0aW9uPgorPHRlc3RDYXNlPgorPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+Cis8Y29ycmVjdD4KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIgorICAgICAgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICA8ZGF0YSB0eXBlPSJ7QG5hbWV9Ij4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0icGFyYW0iPgorICAgICAgPHBhcmFtIG5hbWU9IntAbmFtZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC9wYXJhbT4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgPC9kYXRhPgorPC9lbGVtZW50PgorPC9jb3JyZWN0PgorPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJ2YWxpZHxpbnZhbGlkIi8+Cis8L3Rlc3RDYXNlPgorPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJlcXVpdi9jbGFzc3xsZW5ndGh8bGVzc1RoYW58aW5jb21wYXJhYmxlIi8+Cis8L3Rlc3RTdWl0ZT4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ2YWxpZCI+CisgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InZhbGlkIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iaW52YWxpZCI+CisgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImludmFsaWQiLz4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG5hbWU9InZhbGlkIj4KKyAgPHZhbGlkPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQGludGVybmFsU3Vic2V0Ii8+CisgICAgPGRvYz4KKyAgICAgIDx4c2w6Y29weS1vZiBzZWxlY3Q9Im5hbWVzcGFjZTo6KiIvPgorICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz4KKyAgICA8L2RvYz4KKyAgPC92YWxpZD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG5hbWU9ImludmFsaWQiPgorICA8aW52YWxpZD4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBpbnRlcm5hbFN1YnNldCIvPgorICAgIDxkb2M+CisgICAgICA8eHNsOmNvcHktb2Ygc2VsZWN0PSJuYW1lc3BhY2U6OioiLz4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+CisgICAgPC9kb2M+CisgIDwvaW52YWxpZD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJAaW50ZXJuYWxTdWJzZXQiPgorICA8eHNsOnBhcmFtIG5hbWU9ImRvYyIgc2VsZWN0PSInZG9jJyIvPgorICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJkdGQiPgorICAgIDx4c2w6dGV4dD4KKyZsdDshRE9DVFlQRSA8L3hzbDp0ZXh0PgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZG9jIi8+CisgICAgPHhzbDp0ZXh0PiBbCis8L3hzbDp0ZXh0PgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+CisgICAgPHhzbDp0ZXh0PgorXT48L3hzbDp0ZXh0PgorICA8L3hzbDphdHRyaWJ1dGU+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY2xhc3MiPgorPHRlc3RDYXNlPgorPGNvcnJlY3Q+CisgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJ2YWx1ZVsxXSI+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAaW50ZXJuYWxTdWJzZXQiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9ImRvYyI+ZWxlbWVudDwveHNsOndpdGgtcGFyYW0+CisgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIgorICAgICAgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgPHZhbHVlPgorICAgICAgICA8eHNsOmNvcHktb2Ygc2VsZWN0PSJuYW1lc3BhY2U6OioiLz4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0idHlwZSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4uLy4uLy4uL0BuYW1lIi8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPgorICAgICAgPC92YWx1ZT4KKyAgICA8L2VsZW1lbnQ+CisgIDwveHNsOmZvci1lYWNoPgorPC9jb3JyZWN0PgorPHhzbDpmb3ItZWFjaCBzZWxlY3Q9InZhbHVlW3Bvc2l0aW9uKCkgIT0gMV0iPgorICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idmFsaWQiLz4KKzwveHNsOmZvci1lYWNoPgorPHhzbDpmb3ItZWFjaCBzZWxlY3Q9InByZWNlZGluZy1zaWJsaW5nOjpjbGFzcy92YWx1ZXxmb2xsb3dpbmctc2libGluZzo6Y2xhc3MvdmFsdWUiPgorICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iaW52YWxpZCIvPgorPC94c2w6Zm9yLWVhY2g+Cis8L3Rlc3RDYXNlPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9Imxlbmd0aCI+Cis8dGVzdENhc2U+Cis8Y29ycmVjdD4KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIgorICAgICAgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICA8ZGF0YSB0eXBlPSJ7Li4vQG5hbWV9Ij4KKyAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHZhbHVlIi8+PC9wYXJhbT4KKyAgPC9kYXRhPgorPC9lbGVtZW50PgorPC9jb3JyZWN0PgorPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InZhbGlkIi8+Cis8L3Rlc3RDYXNlPgorCis8dGVzdENhc2U+Cis8Y29ycmVjdD4KKzxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIgorICAgICAgICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICA8ZGF0YSB0eXBlPSJ7Li4vQG5hbWV9Ij4KKyAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHZhbHVlICsgMSIvPjwvcGFyYW0+CisgIDwvZGF0YT4KKzwvZWxlbWVudD4KKzwvY29ycmVjdD4KKzx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJpbnZhbGlkIi8+Cis8L3Rlc3RDYXNlPgorCis8eHNsOmlmIHRlc3Q9IkB2YWx1ZSAhPSAwIj4KKyAgPHRlc3RDYXNlPgorICA8Y29ycmVjdD4KKyAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiCisJICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgIDxkYXRhIHR5cGU9InsuLi9AbmFtZX0iPgorICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB2YWx1ZSAtIDEiLz48L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgPC9lbGVtZW50PgorICA8L2NvcnJlY3Q+CisgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJpbnZhbGlkIi8+CisgIDwvdGVzdENhc2U+Cis8L3hzbDppZj4KKworPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9Imxlc3NUaGFuIj4KKzx0ZXN0Q2FzZT4KKzxjb3JyZWN0PgorICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIKKwkgICBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgPGRhdGEgdHlwZT0iey4uL0BuYW1lfSI+CisgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InZhbHVlWzFdIi8+CisgICAgICA8L3BhcmFtPgorICAgIDwvZGF0YT4KKyAgIDwvZWxlbWVudD4KKzwvY29ycmVjdD4KKzx2YWxpZD4KKzxkb2M+Cis8eHNsOnZhbHVlLW9mIHNlbGVjdD0idmFsdWVbMl0iLz4KKzwvZG9jPgorPC92YWxpZD4KKzxpbnZhbGlkPgorPGRvYz4KKzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ2YWx1ZVsxXSIvPgorPC9kb2M+Cis8L2ludmFsaWQ+Cis8L3Rlc3RDYXNlPgorPHRlc3RDYXNlPgorPGNvcnJlY3Q+CisgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIgorCSAgIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICA8ZGF0YSB0eXBlPSJ7Li4vQG5hbWV9Ij4KKyAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0idmFsdWVbMl0iLz4KKyAgICAgIDwvcGFyYW0+CisgICAgPC9kYXRhPgorICAgPC9lbGVtZW50PgorPC9jb3JyZWN0PgorPGludmFsaWQ+Cis8ZG9jPgorPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InZhbHVlWzFdIi8+Cis8L2RvYz4KKzwvaW52YWxpZD4KKzxpbnZhbGlkPgorPGRvYz4KKzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ2YWx1ZVsyXSIvPgorPC9kb2M+Cis8L2ludmFsaWQ+Cis8L3Rlc3RDYXNlPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImluY29tcGFyYWJsZSI+Cis8dGVzdENhc2U+Cis8Y29ycmVjdD4KKyAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiCisJICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgIDxkYXRhIHR5cGU9InsuLi9AbmFtZX0iPgorICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ2YWx1ZVsxXSIvPgorICAgICAgPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgICA8L2VsZW1lbnQ+Cis8L2NvcnJlY3Q+Cis8aW52YWxpZD4KKzxkb2M+Cis8eHNsOnZhbHVlLW9mIHNlbGVjdD0idmFsdWVbMl0iLz4KKzwvZG9jPgorPC9pbnZhbGlkPgorPGludmFsaWQ+Cis8ZG9jPgorPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InZhbHVlWzFdIi8+Cis8L2RvYz4KKzwvaW52YWxpZD4KKzwvdGVzdENhc2U+Cis8dGVzdENhc2U+Cis8Y29ycmVjdD4KKyAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiCisJICAgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgIDxkYXRhIHR5cGU9InsuLi9AbmFtZX0iPgorICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ2YWx1ZVsyXSIvPgorICAgICAgPC9wYXJhbT4KKyAgICA8L2RhdGE+CisgICA8L2VsZW1lbnQ+Cis8L2NvcnJlY3Q+Cis8aW52YWxpZD4KKzxkb2M+Cis8eHNsOnZhbHVlLW9mIHNlbGVjdD0idmFsdWVbMV0iLz4KKzwvZG9jPgorPC9pbnZhbGlkPgorPGludmFsaWQ+Cis8ZG9jPgorPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InZhbHVlWzJdIi8+Cis8L2RvYz4KKzwvaW52YWxpZD4KKzwvdGVzdENhc2U+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdC94c2R0ZXN0L3hzZHRlc3RzdWl0ZS54bWwgYi9saWJ4bWwyLTIuNy43L3Rlc3QveHNkdGVzdC94c2R0ZXN0c3VpdGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjOTFjYjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3QveHNkdGVzdC94c2R0ZXN0c3VpdGUueG1sCkBAIC0wLDAgKzEsNTI4NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzx0ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgZGF0ZVRpbWU8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkYXRlVGltZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MjAwMS0xMi0wMVQxOTo0NTowMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4yMDAxLTEyLTAxVDE5OjQ1OjAwWjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4yMDAxLTEyLTAxVDE5OjQ1OjAwLTExOjU5PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjAwMDEtMDEtMTJUMDA6MDA6MDArMTI6MDA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4yMDAxLTEyLTFUMTk6NDU6MDArMjQ6MDA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjIwMDEtMTItMVQxOTo0NTowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImRhdGVUaW1lIj4yMDAxLTEyLTAxVDE5OjQ1OjAwPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjIwMDEtMTItMDFUMTk6NDU6MDAuMDA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4yMDAxLTEyLTAxVDE5OjQ1OjAwWjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MjAwMS0xMi0wMVQxOTo0NTowMC4wMFo8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjIwMDEtMTItMDFUMjA6NDU6MDArMDE6MDA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJkYXRlVGltZSI+MjAwMS0xMi0wMVQxOTo0NTowMFo8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MjAwMS0xMi0wMVQxOTo0NTowMC4wMFo8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MjAwMS0xMi0wMVQyMDo0NTowMCswMTowMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjIwMDEtMTItMDFUMTk6NDU6MDA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjIwMDEtMTItMDFUMTk6NDU6MDAuMDA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBhbnlVUkk8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJhbnlVUkkiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmZvb2JhcjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmh0dHA6Ly9qaSU2ZEB3d3cuZXhhbXBsZS5jb208L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+aHR0cDovL3d3dy5leGFtcGxlLmNvJTZkPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPm5vc3VjaHNjaGVtZTpzdHVmZjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmZvbyRiYXI6c3R1ZmY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmYlb29iYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBpbnRlZ2VyPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iaW50ZWdlciIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDEyMzQ1Njc4OTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMTA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LTEwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MS4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4uMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xLjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MC48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJpbnRlZ2VyIj4wPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0wPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPisxMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzAwMTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAxMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTEwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMDAxMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTAxMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImludGVnZXIiPjEwPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPisxMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMDAxMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4wMTA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0wMDEwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMDEwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iaW50ZWdlciI+LTEwPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0wMDEwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0wMTA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzEwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMDAxMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDEwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgZHVyYXRpb248L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlAxWTBNMkRUMTdINU0xMlM8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LVAxWTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5QNjBEPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlBUMjRIPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlBUMS4yUzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAyNGg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAyNEg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWVQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1QPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iZHVyYXRpb24iPi1QNk08L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMFk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1QMFk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDAwMVk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAwMDFZME08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTBNMERUMEgwTTAuMFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlA2TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQ2TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQxUzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQxLjBTPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iZHVyYXRpb24iPlAwWTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4tUDBZPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LVA2TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMDAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDAwMVkwTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZME0wRFQwSDBNMC4wUzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDZNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDZNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDFTPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDEuMFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJkdXJhdGlvbiI+UDFZPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlAwMDFZPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlAwMDFZME08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+UDFZME0wRFQwSDBNMC4wUzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1QNk08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAwWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LVAwWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDZNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDZNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDFTPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDEuMFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJkdXJhdGlvbiI+UDZNPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LVA2TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDBZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tUDBZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMVk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAwMDFZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMDAxWTBNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMVkwTTBEVDBIME0wLjBTPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDZNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDFTPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDEuMFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJkdXJhdGlvbiI+UFQ2TTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1QNk08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAwWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LVAwWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMDAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDAwMVkwTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZME0wRFQwSDBNMC4wUzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDZNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDFTPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDEuMFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJkdXJhdGlvbiI+UFQxUzwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5QVDEuMFM8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tUDZNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMFk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1QMFk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDAwMVk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAwMDFZME08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTBNMERUMEgwTTAuMFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlA2TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQ2TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UFQxTTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+UFQ2MVM8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDFNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QVDYxUzwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDFNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDYxUzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UFQ1OVM8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlBUMU08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDU5UzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UFQxTTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDU5UzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQxTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UFQ2MFM8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQxTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQ2MFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlBUMU08L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQ2MFM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlBUMU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlBUMUg8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlBUNjFNPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQxSDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UFQ2MU08L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQxSDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQ2MU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlBUNTlNPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5QVDFIPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQ1OU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlBUMUg8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQ1OU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlBUMUg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlBUNjBNPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlBUMUg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlBUNjBNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QVDFIPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlBUNjBNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDFIPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMUQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlBUMjVIPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QVDI1SDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMUQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlBUMjVIPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QVDIzSDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+UDFEPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQyM0g8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAxRDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDIzSDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMUQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UFQyNEg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxRDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UFQyNEg8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QVDI0SDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDFZPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5QMTNNPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMTNNPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDEzTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDExTTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDExTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDFZPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxMU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDEyTTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMVk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxMk08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAxWTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMTJNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMVk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAzNjREPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5QMVk8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMzY0RDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDFZPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAzNjREPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMVk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAxWTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMzY1RDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMzY1RDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMVk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAzNjVEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMVk8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDM2NkQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDM2NkQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMzY2RDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDFZPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5QMzY3RDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxWTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDM2N0Q8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFZPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMzY3RDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDE0OUQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlA1TTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxNDlEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QNU08L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDE0OUQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlA1TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDE1MEQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDVNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMTUwRDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDVNPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxNTBEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QNU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAxNTFEPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlA1TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDE1MUQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlA1TTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMTUxRDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDVNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMTUyRDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QNU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxNTJEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QNU08L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDE1MkQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlA1TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDE1M0Q8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDVNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMTUzRDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDVNPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxNTNEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QNU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlA1TTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+UDE1NEQ8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QNU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAxNTREPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlA1TTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDE1NEQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAyN0Q8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlAxTTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAyN0Q8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAxTTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMjdEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAyOEQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMjhEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMU08L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDI4RDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMjlEPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDI5RDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDFNPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAyOUQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAxTTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZHVyYXRpb24iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+UDMwRDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPlAzMEQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAxTTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMzBEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAzMUQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMzFEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMU08L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDMxRDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkdXJhdGlvbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5QMU08L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPlAzMkQ8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMU08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImR1cmF0aW9uIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPlAzMkQ8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+UDFNPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5QMzJEPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgdGltZTwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InRpbWUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjEyOjQ1OjAwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjEyOjQ1OjAwWjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBkYXRlPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZGF0ZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTg4Ni0xMi0wMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xODg2LTEyLTAxWjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImRhdGUiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MTA2Ni0xMi0zMTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTkwMC0wMS0wMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjEwNjYtMTItMzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImRhdGUiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MTkwMC0wMS0wMTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMDY2LTEyLTMxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTAwLTAxLTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkYXRlIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPjE5MDAtMDEtMDE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE5MDAtMDEtMDI8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTAwLTAxLTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkYXRlIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPjE5MDAtMDEtMDI8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTkwMC0wMS0wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTkwMC0wMS0wMjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIGdZZWFyTW9udGg8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJnWWVhck1vbnRoIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTEyPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE5OTYtMDE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMVo8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iZ1llYXJNb250aCI+MTk5Ni0wMTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjE5OTYtMDFaPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxKzAwOjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxLTAwOjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxKzAxOjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxLTAxOjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iZ1llYXJNb250aCI+MTk5Ni0wMVo8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMSswMDowMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxLTAwOjAwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMSswMTowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMS0wMTowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImdZZWFyTW9udGgiPjE5OTYtMDErMDE6MDA8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxWjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMSswMDowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMS0wMDowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMS0wMTowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImdZZWFyTW9udGgiPjE5OTYtMDEtMDE6MDA8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk2LTAxWjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMSswMDowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMS0wMDowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5Ni0wMSswMTowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIGdZZWFyPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ1llYXIiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjIwMDE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MjAwMVo8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJnWWVhciI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4xOTk5PC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4yMDAwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5OTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ1llYXIiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MjAwMDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk5PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4yMDAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJnWWVhciI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4xOTk5KzA3OjAwPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4yMDAwKzA3OjAwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTk5OSswNzowMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ1llYXIiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MjAwMCswNzowMDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xOTk5KzA3OjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4yMDAwKzA3OjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgZ01vbnRoRGF5PC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ01vbnRoRGF5Ii8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4tLTEyLTAxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0tMTItMDFaPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ01vbnRoRGF5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPi0tMTItMDE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0tMTItMDQ8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLTEyLTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJnTW9udGhEYXkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+LS0xMi0wNDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLTEyLTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLTEyLTA0PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJnTW9udGhEYXkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+LS0xMS0xNzwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LS0xMi0wNDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0tMTEtMTc8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImdNb250aERheSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tLTEyLTA0PC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0tMTEtMTc8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0tMTItMDQ8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBnRGF5PC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ0RheSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LS0tMjA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LS0tMjBaPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ0RheSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tLS0wMTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LS0tMzE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLS0wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ0RheSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tLS0zMTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLS0wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LS0tMzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBnTW9udGg8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJnTW9udGgiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0tMTI8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LS0wMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4tLTAxWjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gLS0xMiA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLS0wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LS0wMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LS0xMzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LSAtMTM8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImdNb250aCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tLTAxPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4tLTEyPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LS0wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ01vbnRoIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPi0tMTI8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LS0wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LS0xMjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZ01vbnRoIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPi0tMDE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0tMDI8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJnTW9udGgiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+LS0wMjwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLTAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tLTAyPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgYm9vbGVhbjwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImJvb2xlYW4iLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPnRydWU8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+ZmFsc2U8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImJvb2xlYW4iPnRydWU8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmZhbHNlPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iYm9vbGVhbiI+ZmFsc2U8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPnRydWU8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBiYXNlNjRCaW5hcnk8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJiYXNlNjRCaW5hcnkiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkFBQUE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+YWJjZCBlZmdoIGlqa2wgbW5vcCBxcnN0IHV2d3ggeXpBQiBDREVGIEdISUogS0xNTiBPUFFSCitTVFVWIFdYWVogMDEyMyA0NTY3IDg5Ky88L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkE9PTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz48L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkE9PTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CUT09PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkJnPT08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+Qnc9PTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CQkE9PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkJCQT08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkJFPTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CQkk9PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkJCTT08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkJRPTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CQlU9PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkJCWT08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkJjPTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CQmc9PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkJCaz08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkJvPTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CQnM9PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkJCdz08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkIwPTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CQjQ9PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkJCOD08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz49PT09PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5CQj09PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5CQkI9PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5CPT09PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5CPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iYmFzZTY0QmluYXJ5Ij5kZWFkYmVlZjwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5kCismIzEzOwllIGEgZAorYiBlZWYgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+REVBREJFRUY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPkQKKyYjMTM7CUUgQSBECitCIEVFRiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJiYXNlNjRCaW5hcnkiPkRFQURCRUVGPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPkQKKyYjMTM7CUUgQSBECitCIEVFRiA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5kZWFkYmVlZjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+ZAorJiMxMzsJZSBhIGQKK2IgZWVmIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iYmFzZTY0QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjA8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImJhc2U2NEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4xPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iYmFzZTY0QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjY8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmRlYWRiZWVmPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iYmFzZTY0QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjc8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+ZGVhZGJlZWY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImJhc2U2NEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj41PC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmRlYWRiZWVmPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJiYXNlNjRCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+QkE9PTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImJhc2U2NEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4yPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPkJBPT08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImJhc2U2NEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4wPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPkJBPT08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImJhc2U2NEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4yPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5CQkE9PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iYmFzZTY0QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjM8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+QkJBPTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iYmFzZTY0QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+QkJBPTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iYmFzZTY0QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjM8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmRlYWQ8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJiYXNlNjRCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+NDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5kZWFkPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJiYXNlNjRCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MjwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5kZWFkPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJiYXNlNjRCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+NDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+ZGVhZEJBPT08L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJiYXNlNjRCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+NTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5kZWFkQkE9PTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iYmFzZTY0QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjM8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+ZGVhZEJBPT08L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBoZXhCaW5hcnk8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJoZXhCaW5hcnkiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmRlYWRiZWVmPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4wMTIzNDU2Nzg5QUJDREVGYWJjZGVmPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDAgMDA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwLjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wRzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImhleEJpbmFyeSI+MDA8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+CisJMDAKKyAgIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MGE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjBBPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iaGV4QmluYXJ5Ij4wMTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4KKwkwMAorICAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MGE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjBBPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iaGV4QmluYXJ5Ij4xMDwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4KKwkwMAorICAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MGE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjBBPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iaGV4QmluYXJ5Ij4wYTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4wQTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4KKwkwMAorICAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImhleEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4wPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz48L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJoZXhCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImhleEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4xPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4wMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImhleEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4yPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJoZXhCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iaGV4QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjI8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjAwMDA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJoZXhCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MzwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wMDAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJoZXhCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wMDAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJoZXhCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MjwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDAwMDAgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iaGV4QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjM8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDAwMDAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJoZXhCaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMDAwMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImhleEJpbmFyeSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4yPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5BQUFBPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iaGV4QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjM8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+QUFBQTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iaGV4QmluYXJ5Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+QUFBQTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIGZsb2F0PC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZmxvYXQiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjEuMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xLjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4uMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0gMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MSAuMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+K0lORjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+K05hTjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LU5hTjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImZsb2F0Ij4wPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0wPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiAwIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gMC4gPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiAuMCA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDAuMCA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDBlMCA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDBFMCA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDBFKzAgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiAwRS0wIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjFFMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MC4xRTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjEwRS0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPklORjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+SU5GIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LUlORjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LUlORiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPk5hTjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IE5hTiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJmbG9hdCI+MUUwPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjAuMUUxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjEwRS0xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPisxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMGUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRSswIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFLTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+SU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+TmFOPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gTmFOIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImZsb2F0Ij4tMTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMC4gPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMC4wIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBlMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMEUrMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRS0wIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MUUwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wLjFFMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTBFLTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPisxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPklORiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5OYU48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiBOYU4gPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iZmxvYXQiPklORjwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5JTkYgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMGUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRSswIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFLTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xRTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAuMUUxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMEUtMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+TmFOPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gTmFOIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImZsb2F0Ij4tSU5GPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi1JTkYgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMGUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRSswIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFLTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xRTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAuMUUxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMEUtMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPklORiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPk5hTjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IE5hTiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJmbG9hdCI+TmFOPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiBOYU4gPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMGUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRSswIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFLTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xRTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAuMUUxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMEUtMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPklORiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tSU5GPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4tMTAwMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImZsb2F0Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPi0xMDAwPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xMDAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4xMDAwPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5JTkY8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMDAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj5JTkY8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTAwMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+SU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tMTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4xPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4wPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZmxvYXQiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tMTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJmbG9hdCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4wPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgZG91YmxlPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZG91YmxlIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xLjA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MS48L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LjE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tIDE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjEgLjA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPitJTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPitOYU48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1OYU48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJkb3VibGUiPjA8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+KzA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDAgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiAwLiA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IC4wIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gMC4wIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gMGUwIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gMEUwIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gMEUrMCA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDBFLTAgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MUUwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wLjFFMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTBFLTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPisxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+SU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+TmFOPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gTmFOIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImRvdWJsZSI+MUUwPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjAuMUUxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjEwRS0xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPisxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMGUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRSswIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFLTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+SU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+TmFOPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gTmFOIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImRvdWJsZSI+LTE8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDAuIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IC4wIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwZTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMEUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFKzAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMEUtMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjFFMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MC4xRTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjEwRS0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+SU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+TmFOPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gTmFOIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9ImRvdWJsZSI+SU5GPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPklORiA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDAuIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IC4wIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwZTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMEUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFKzAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMEUtMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjFFMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MC4xRTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjEwRS0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5OYU48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiBOYU4gPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iZG91YmxlIj4tSU5GPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi1JTkYgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiswPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAuMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMGUwIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRSswIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBFLTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xRTA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjAuMUUxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMEUtMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPklORiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPk5hTjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IE5hTiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJkb3VibGUiPk5hTjwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gTmFOIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMC4gPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gLjAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMC4wIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDBlMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRTAgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gMEUrMCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAwRS0wIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MUUwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wLjFFMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTBFLTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPisxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+SU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkYgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tSU5GIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZG91YmxlIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPi1JTkY8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0xMDAwPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LUlORjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZG91YmxlIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPi0xMDAwPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi1JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xMDAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkb3VibGUiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MTAwMDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+SU5GPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTAwMDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZG91YmxlIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPklORjwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMDAwPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5JTkY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImRvdWJsZSI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluRXhjbHVzaXZlIj4tMTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkb3VibGUiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZG91YmxlIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPjA8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkb3VibGUiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkb3VibGUiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkV4Y2x1c2l2ZSI+LTE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iZG91YmxlIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPjA8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBRTmFtZTwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9IlFOYW1lIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5mb288L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eDpmb288L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz55OmZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB0eXBlPSJRTmFtZSI+Zm9vPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4gZm9vPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPng6Zm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+IHg6Zm9vIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPno6Zm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eDpiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj56OmJhcjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPnk6Zm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eTpiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgdHlwZT0iUU5hbWUiPng6Zm9vPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4geDpmb28gPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj56OmZvbzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj5mb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4gZm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eDpiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj56OmJhcjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPnk6Zm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eTpiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgdHlwZT0iUU5hbWUiPng6YmFyPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj56OmJhcjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj5mb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4gZm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eDpmb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4geDpmb28gPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+ejpmb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj55OmZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPnk6YmFyPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHR5cGU9IlFOYW1lIj55OmZvbzwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj5mb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4gZm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eDpmb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj4geDpmb28gPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+ejpmb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj54OmJhcjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPno6YmFyPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+eTpiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgdHlwZT0iUU5hbWUiPnk6YmFyPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPmZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPiBmb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj54OmZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPiB4OmZvbyA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj56OmZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2MgeG1sbnM6ej0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSIgeG1sbnM6eT0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iIHhtbG5zOng9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iPng6YmFyPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp6PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiB4bWxuczp5PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIgeG1sbnM6eD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbSI+ejpiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jIHhtbG5zOno9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iIHhtbG5zOnk9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj55OmZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIE5PVEFUSU9OPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTk9UQVRJT04iLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmZvbzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYyB4bWxuczp4PSJodHRwOi8vd3d3LmV4YW1wbGUuY29tIj54OmZvbzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPnk6Zm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgZGVjaW1hbDwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImRlY2ltYWwiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjEuMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xLjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4uMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMS4wPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0xLjA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDEgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi05OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmp1bms8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KysxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rLTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjEuMi48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi4uMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MS4uPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xIC4yPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xKzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KyAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkZWNpbWFsIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPjA8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJkZWNpbWFsIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5FeGNsdXNpdmUiPjE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIG5vblBvc2l0aXZlSW50ZWdlcjwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9Im5vblBvc2l0aXZlSW50ZWdlciIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4tMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBub25OZWdhdGl2ZUludGVnZXI8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJub25OZWdhdGl2ZUludGVnZXIiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgcG9zaXRpdmVJbnRlZ2VyPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0icG9zaXRpdmVJbnRlZ2VyIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBuZWdhdGl2ZUludGVnZXI8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJuZWdhdGl2ZUludGVnZXIiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBsb25nPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0ibG9uZyIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiAwIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjEgMjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjkyMjMzNzIwMzY4NTQ3NzU4MDc8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LTkyMjMzNzIwMzY4NTQ3NzU4MDg8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz45MjIzMzcyMDM2ODU0Nzc1ODA4PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tOTIyMzM3MjAzNjg1NDc3NTgwOTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgaW50PC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iaW50Ii8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjAxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiAxIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4yMTQ3NDgzNjQ3PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0yMTQ3NDgzNjQ4PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MjE0NzQ4MzY0ODwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTIxNDc0ODM2NDk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJpbnQiPjE8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IDEgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjAwMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gLTEgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMDAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0iaW50Ij4tMTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gLTEgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0wMDE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDEgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4wMDE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBzaG9ydDwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InNob3J0Ii8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjMyNzY3PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0zMjc2ODwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjMyNzY4PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMzI3Njk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJzaG9ydCI+MTwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gMSA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDAxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAtMSA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0wMDE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJzaG9ydCI+LTE8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IC0xIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4tMDAxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiAxIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MDAxPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgYnl0ZTwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9ImJ5dGUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTI3PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPi0xMjg8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xMjg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xMjk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSB1bnNpZ25lZExvbmc8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJ1bnNpZ25lZExvbmciLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTg0NDY3NDQwNzM3MDk1NTE2MTU8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4xODQ0Njc0NDA3MzcwOTU1MTYxNjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSB1bnNpZ25lZEludDwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InVuc2lnbmVkSW50Ii8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPisxPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+NDI5NDk2NzI5NTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjQyOTQ5NjcyOTY8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi0xPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgdW5zaWduZWRTaG9ydDwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InVuc2lnbmVkU2hvcnQiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+KzE8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz42NTUzNTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjY1NTM2PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4tMTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIHVuc2lnbmVkQnl0ZTwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InVuc2lnbmVkQnl0ZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+MTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4rMTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4wPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjI1NTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjI1NjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTE8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBzdHJpbmc8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJzdHJpbmciLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmFueSB0aGluZyBhdCBhbGwhPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIG5vcm1hbGl6ZWRTdHJpbmc8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJub3JtYWxpemVkU3RyaW5nIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5hbnkgdGhpbmcgYXQgYWxsITwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSB0b2tlbjwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5hbnkgdGhpbmcgYXQgYWxsITwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDx2YWx1ZSB0eXBlPSJ0b2tlbiI+PC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+CQorJiMxMzsgPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPngKKzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCYjMTM7PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz54CTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IHg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPgoreDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+JiMxMzt4PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4JeDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+CQorJiMxMzsgeAkKKyYjMTM7IDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCB5IDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCB5Cis8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPnggeSYjMTM7PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz54IHkJPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz54IHk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPngKK3k8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPngmIzEzO3k8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPngJeTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IHggeTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+Cit4IHk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiYjMTM7eCB5PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4JeCB5PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4JCismIzEzOyB4CQorJiMxMzsgeQkKKyYjMTM7IDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9InRva2VuIj54IDwvdmFsdWU+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz54Cis8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+eCYjMTM7PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPngJPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiB4PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPgoreDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4mIzEzO3g8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+CXg8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+CQorJiMxMzsgeAkKKyYjMTM7IDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+CQorJiMxMzsgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz54IHkgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz54IHkKKzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCB5JiMxMzs8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPnggeQk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPnggeTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eAoreTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCYjMTM7eTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eAl5PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4geCB5PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4KK3ggeTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+JiMxMzt4IHk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPgl4IHk8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPgkKKyYjMTM7IHgJCismIzEzOyB5CQorJiMxMzsgPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8dmFsdWUgdHlwZT0idG9rZW4iPnggeSA8L3ZhbHVlPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+eCB5Cis8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+eCB5JiMxMzs8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+eCB5CTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz54IHk8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+eAoreTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz54JiMxMzt5PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPngJeTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4geCB5PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPgoreCB5PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiYjMTM7eCB5PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPgl4IHk8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+CQorJiMxMzsgeAkKKyYjMTM7IHkJCismIzEzOyA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPgkKKyYjMTM7IDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPngKKzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eCYjMTM7PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz54CTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IHg8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPgoreDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+JiMxMzt4PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4JeDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+CQorJiMxMzsgeAkKKyYjMTM7IDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPng8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4yPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPng8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjA8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+eDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+IHggPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MjwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4geCA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9InRva2VuIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjA8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+IHggPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4xPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz7wkKCAPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0idG9rZW4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MjwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz7wkKCAPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJ0b2tlbiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4wPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPvCQoIA8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBsYW5ndWFnZTwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9Imxhbmd1YWdlIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5lbjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5lbi1VSzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5pLWNoZXJva2VlPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPngta2xpbmdvbjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5lbi11ay1zY290bGFuZDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmVuLlVLPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgTmFtZTwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9Ik5hbWUiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmZvbzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5fMDEyMzQ1Njc4OTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPi48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz46PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+LTwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MTIzNDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiBmb28gPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIE5DTmFtZTwvZG9jdW1lbnRhdGlvbj4KKyAgICA8dGVzdENhc2U+CisgICAgICA8cmVxdWlyZXMgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiLz4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9Ik5DTmFtZSIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+Zm9vPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+Zm9vOmJhcjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+MGZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9Ik5DTmFtZSI+Zm9vPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiBmb28gPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+Rk9PPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gRk9PIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPHZhbHVlIHR5cGU9Ik5DTmFtZSI+Rk9PPC92YWx1ZT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiBGT08gPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+Zm9vPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gZm9vIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIE5NVE9LRU48L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJOTVRPS0VOIi8+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz5mb288L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+XzwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4uPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPjo8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+LTwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xMjM0PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPiBmb28gPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4zPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4gZm9vIDwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9Ik5NVE9LRU4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+NDwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz4gZm9vIDwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4yPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPiBmb28gPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJOTVRPS0VOIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjI8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmZvPC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgICAgPHRlc3RDYXNlPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTiI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibGVuZ3RoIj4zPC9wYXJhbT4KKyAgICAgICAgICA8L2RhdGE+CisgICAgICAgIDwvZWxlbWVudD4KKyAgICAgIDwvY29ycmVjdD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmZvPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJOTVRPS0VOIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjE8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+Zm88L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9Ik5NVE9LRU4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MTwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8dmFsaWQ+CisgICAgICAgIDxkb2M+ZjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxjb3JyZWN0PgorICAgICAgICA8ZWxlbWVudCB4bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiIG5hbWU9ImRvYyIgZGF0YXR5cGVMaWJyYXJ5PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1kYXRhdHlwZXMiPgorICAgICAgICAgIDxkYXRhIHR5cGU9Ik5NVE9LRU4iPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Imxlbmd0aCI+MjwvcGFyYW0+CisgICAgICAgICAgPC9kYXRhPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5mPC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgICA8dGVzdENhc2U+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJOTVRPS0VOIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJsZW5ndGgiPjA8L3BhcmFtPgorICAgICAgICAgIDwvZGF0YT4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+ZjwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIE5NVE9LRU5TPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iTk1UT0tFTlMiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmZvbyBiYXI8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDx2YWxpZD4KKyAgICAgICAgPGRvYz4xIDIgMyA0PC9kb2M+CisgICAgICA8L3ZhbGlkPgorICAgIDwvdGVzdENhc2U+CisgIDwvdGVzdFN1aXRlPgorICA8dGVzdFN1aXRlPgorICAgIDxkb2N1bWVudGF0aW9uPkRhdGF0eXBlIElEPC9kb2N1bWVudGF0aW9uPgorICAgIDx0ZXN0Q2FzZT4KKyAgICAgIDxyZXF1aXJlcyBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyIvPgorICAgICAgPGNvcnJlY3Q+CisgICAgICAgIDxlbGVtZW50IHhtbG5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCIgbmFtZT0iZG9jIiBkYXRhdHlwZUxpYnJhcnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+CisgICAgICAgICAgPGRhdGEgdHlwZT0iSUQiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPHZhbGlkPgorICAgICAgICA8ZG9jPmZvb2JhcjwvZG9jPgorICAgICAgPC92YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmZvbzpiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmZvbyBiYXI8L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICA8L3Rlc3RDYXNlPgorICA8L3Rlc3RTdWl0ZT4KKyAgPHRlc3RTdWl0ZT4KKyAgICA8ZG9jdW1lbnRhdGlvbj5EYXRhdHlwZSBFTlRJVFk8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJFTlRJVFkiLz4KKyAgICAgICAgPC9lbGVtZW50PgorICAgICAgPC9jb3JyZWN0PgorICAgICAgPGludmFsaWQ+CisgICAgICAgIDxkb2M+PC9kb2M+CisgICAgICA8L2ludmFsaWQ+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz5mb288L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDx2YWxpZCBkdGQ9IiYjMTA7Jmx0OyFET0NUWVBFIGRvYyBbJiMxMDsmbHQ7IUVOVElUWSBmb28gU1lTVEVNICd3aGF0ZXZlcicgTkRBVEEganBlZyZndDsmIzEwO10mZ3Q7Ij4KKyAgICAgICAgPGRvYz5mb288L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+CisgIDx0ZXN0U3VpdGU+CisgICAgPGRvY3VtZW50YXRpb24+RGF0YXR5cGUgRU5USVRJRVM8L2RvY3VtZW50YXRpb24+CisgICAgPHRlc3RDYXNlPgorICAgICAgPHJlcXVpcmVzIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIi8+CisgICAgICA8Y29ycmVjdD4KKyAgICAgICAgPGVsZW1lbnQgeG1sbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIiBuYW1lPSJkb2MiIGRhdGF0eXBlTGlicmFyeT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtZGF0YXR5cGVzIj4KKyAgICAgICAgICA8ZGF0YSB0eXBlPSJFTlRJVElFUyIvPgorICAgICAgICA8L2VsZW1lbnQ+CisgICAgICA8L2NvcnJlY3Q+CisgICAgICA8aW52YWxpZD4KKyAgICAgICAgPGRvYz48L2RvYz4KKyAgICAgIDwvaW52YWxpZD4KKyAgICAgIDxpbnZhbGlkPgorICAgICAgICA8ZG9jPmZvbzwvZG9jPgorICAgICAgPC9pbnZhbGlkPgorICAgICAgPHZhbGlkIGR0ZD0iJiMxMDsmbHQ7IURPQ1RZUEUgZG9jIFsmIzEwOyZsdDshRU5USVRZIGZvbyBTWVNURU0gJ3doYXRldmVyJyBOREFUQSBqcGVnJmd0OyAmIzEwOyZsdDshRU5USVRZIGJhciBTWVNURU0gJ3doYXRldmVyJyBOREFUQSBqcGVnJmd0OyAmIzEwO10mZ3Q7Ij4KKyAgICAgICAgPGRvYz4gZm9vIGJhciA8L2RvYz4KKyAgICAgIDwvdmFsaWQ+CisgICAgPC90ZXN0Q2FzZT4KKyAgPC90ZXN0U3VpdGU+Cis8L3Rlc3RTdWl0ZT4KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdEF1dG9tYXRhLmMgYi9saWJ4bWwyLTIuNy43L3Rlc3RBdXRvbWF0YS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNTc1Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RBdXRvbWF0YS5jCkBAIC0wLDAgKzEsMzA5IEBACisvKgorICogdGVzdFJlZ2V4cC5jOiBzaW1wbGUgbW9kdWxlIGZvciB0ZXN0aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbnMKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgorICovCisKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sYXV0b21hdGEuaD4KKworc3RhdGljIGludCBzY2FuTnVtYmVyKGNoYXIgKipwdHIpIHsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBjaGFyICpjdXI7CisKKyAgICBjdXIgPSAqcHRyOworICAgIHdoaWxlICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpIHsKKwlyZXQgPSByZXQgKiAxMCArICgqY3VyIC0gJzAnKTsKKwljdXIrKzsKKyAgICB9CisgICAgKnB0ciA9IGN1cjsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHZvaWQKK3Rlc3RSZWdleHBGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgRklMRSAqaW5wdXQ7CisgICAgY2hhciBleHByWzUwMDBdOworICAgIGludCBsZW47CisgICAgaW50IHJldDsKKyAgICBpbnQgaTsKKyAgICB4bWxBdXRvbWF0YVB0ciBhbTsKKyAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIHN0YXRlc1sxMDAwXTsKKyAgICB4bWxSZWdleHBQdHIgcmVnZXhwID0gTlVMTDsKKyAgICB4bWxSZWdFeGVjQ3R4dFB0ciBleGVjID0gTlVMTDsKKworICAgIGZvciAoaSA9IDA7aTwxMDAwO2krKykKKwlzdGF0ZXNbaV0gPSBOVUxMOworCisgICAgaW5wdXQgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuOworICAgIH0KKworICAgIGFtID0geG1sTmV3QXV0b21hdGEoKTsKKyAgICBpZiAoYW0gPT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkNhbm5vdCBjcmVhdGUgYXV0b21hdGFcbiIpOworCWZjbG9zZShpbnB1dCk7CisJcmV0dXJuOworICAgIH0KKyAgICBzdGF0ZXNbMF0gPSB4bWxBdXRvbWF0YUdldEluaXRTdGF0ZShhbSk7CisgICAgaWYgKHN0YXRlc1swXSA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiQ2Fubm90IGdldCBzdGFydCBzdGF0ZVxuIik7CisJeG1sRnJlZUF1dG9tYXRhKGFtKTsKKwlmY2xvc2UoaW5wdXQpOworCXJldHVybjsKKyAgICB9CisgICAgcmV0ID0gMDsKKworICAgIHdoaWxlIChmZ2V0cyhleHByLCA0NTAwLCBpbnB1dCkgIT0gTlVMTCkgeworCWlmIChleHByWzBdID09ICcjJykKKwkgICAgY29udGludWU7CisJbGVuID0gc3RybGVuKGV4cHIpOworCWxlbi0tOworCXdoaWxlICgobGVuID49IDApICYmIAorCSAgICAgICAoKGV4cHJbbGVuXSA9PSAnXG4nKSB8fCAoZXhwcltsZW5dID09ICdcdCcpIHx8CisJCShleHByW2xlbl0gPT0gJ1xyJykgfHwgKGV4cHJbbGVuXSA9PSAnICcpKSkgbGVuLS07CisJZXhwcltsZW4gKyAxXSA9IDA7ICAgICAgCisJaWYgKGxlbiA+PSAwKSB7CisJICAgIGlmICgoYW0gIT0gTlVMTCkgJiYgKGV4cHJbMF0gPT0gJ3QnKSAmJiAoZXhwclsxXSA9PSAnICcpKSB7CisJCWNoYXIgKnB0ciA9ICZleHByWzJdOworCQlpbnQgZnJvbSwgdG87CisKKwkJZnJvbSA9IHNjYW5OdW1iZXIoJnB0cik7CisJCWlmICgqcHRyICE9ICcgJykgeworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkJhZCBsaW5lICVzXG4iLCBleHByKTsKKwkJICAgIGJyZWFrOworCQl9CisJCWlmIChzdGF0ZXNbZnJvbV0gPT0gTlVMTCkKKwkJICAgIHN0YXRlc1tmcm9tXSA9IHhtbEF1dG9tYXRhTmV3U3RhdGUoYW0pOworCQlwdHIrKzsKKwkJdG8gPSBzY2FuTnVtYmVyKCZwdHIpOworCQlpZiAoKnB0ciAhPSAnICcpIHsKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJCYWQgbGluZSAlc1xuIiwgZXhwcik7CisJCSAgICBicmVhazsKKwkJfQorCQlpZiAoc3RhdGVzW3RvXSA9PSBOVUxMKQorCQkgICAgc3RhdGVzW3RvXSA9IHhtbEF1dG9tYXRhTmV3U3RhdGUoYW0pOworCQlwdHIrKzsKKwkJeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uKGFtLCBzdGF0ZXNbZnJvbV0sIHN0YXRlc1t0b10sCisJCQkgICAgICAgICAgICAgICAgIEJBRF9DQVNUIHB0ciwgTlVMTCk7CisJICAgIH0gZWxzZSBpZiAoKGFtICE9IE5VTEwpICYmIChleHByWzBdID09ICdlJykgJiYgKGV4cHJbMV0gPT0gJyAnKSkgeworCQljaGFyICpwdHIgPSAmZXhwclsyXTsKKwkJaW50IGZyb20sIHRvOworCisJCWZyb20gPSBzY2FuTnVtYmVyKCZwdHIpOworCQlpZiAoKnB0ciAhPSAnICcpIHsKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJCYWQgbGluZSAlc1xuIiwgZXhwcik7CisJCSAgICBicmVhazsKKwkJfQorCQlpZiAoc3RhdGVzW2Zyb21dID09IE5VTEwpCisJCSAgICBzdGF0ZXNbZnJvbV0gPSB4bWxBdXRvbWF0YU5ld1N0YXRlKGFtKTsKKwkJcHRyKys7CisJCXRvID0gc2Nhbk51bWJlcigmcHRyKTsKKwkJaWYgKHN0YXRlc1t0b10gPT0gTlVMTCkKKwkJICAgIHN0YXRlc1t0b10gPSB4bWxBdXRvbWF0YU5ld1N0YXRlKGFtKTsKKwkJeG1sQXV0b21hdGFOZXdFcHNpbG9uKGFtLCBzdGF0ZXNbZnJvbV0sIHN0YXRlc1t0b10pOworCSAgICB9IGVsc2UgaWYgKChhbSAhPSBOVUxMKSAmJiAoZXhwclswXSA9PSAnZicpICYmIChleHByWzFdID09ICcgJykpIHsKKwkJY2hhciAqcHRyID0gJmV4cHJbMl07CisJCWludCBzdGF0ZTsKKworCQlzdGF0ZSA9IHNjYW5OdW1iZXIoJnB0cik7CisJCWlmIChzdGF0ZXNbc3RhdGVdID09IE5VTEwpIHsKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJCYWQgc3RhdGUgJWQgOiAlc1xuIiwgc3RhdGUsIGV4cHIpOworCQkgICAgYnJlYWs7CisJCX0KKwkJeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlKGFtLCBzdGF0ZXNbc3RhdGVdKTsKKwkgICAgfSBlbHNlIGlmICgoYW0gIT0gTlVMTCkgJiYgKGV4cHJbMF0gPT0gJ2MnKSAmJiAoZXhwclsxXSA9PSAnICcpKSB7CisJCWNoYXIgKnB0ciA9ICZleHByWzJdOworCQlpbnQgZnJvbSwgdG87CisJCWludCBtaW4sIG1heDsKKworCQlmcm9tID0gc2Nhbk51bWJlcigmcHRyKTsKKwkJaWYgKCpwdHIgIT0gJyAnKSB7CisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiQmFkIGxpbmUgJXNcbiIsIGV4cHIpOworCQkgICAgYnJlYWs7CisJCX0KKwkJaWYgKHN0YXRlc1tmcm9tXSA9PSBOVUxMKQorCQkgICAgc3RhdGVzW2Zyb21dID0geG1sQXV0b21hdGFOZXdTdGF0ZShhbSk7CisJCXB0cisrOworCQl0byA9IHNjYW5OdW1iZXIoJnB0cik7CisJCWlmICgqcHRyICE9ICcgJykgeworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkJhZCBsaW5lICVzXG4iLCBleHByKTsKKwkJICAgIGJyZWFrOworCQl9CisJCWlmIChzdGF0ZXNbdG9dID09IE5VTEwpCisJCSAgICBzdGF0ZXNbdG9dID0geG1sQXV0b21hdGFOZXdTdGF0ZShhbSk7CisJCXB0cisrOworCQltaW4gPSBzY2FuTnVtYmVyKCZwdHIpOworCQlpZiAoKnB0ciAhPSAnICcpIHsKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJCYWQgbGluZSAlc1xuIiwgZXhwcik7CisJCSAgICBicmVhazsKKwkJfQorCQlwdHIrKzsKKwkJbWF4ID0gc2Nhbk51bWJlcigmcHRyKTsKKwkJaWYgKCpwdHIgIT0gJyAnKSB7CisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiQmFkIGxpbmUgJXNcbiIsIGV4cHIpOworCQkgICAgYnJlYWs7CisJCX0KKwkJcHRyKys7CisJCXhtbEF1dG9tYXRhTmV3Q291bnRUcmFucyhhbSwgc3RhdGVzW2Zyb21dLCBzdGF0ZXNbdG9dLAorCQkJICAgICAgICAgICAgICAgICBCQURfQ0FTVCBwdHIsIG1pbiwgbWF4LCBOVUxMKTsKKwkgICAgfSBlbHNlIGlmICgoYW0gIT0gTlVMTCkgJiYgKGV4cHJbMF0gPT0gJy0nKSAmJiAoZXhwclsxXSA9PSAnLScpKSB7CisJCS8qIGVuZCBvZiB0aGUgYXV0b21hdGEgKi8KKwkJcmVnZXhwID0geG1sQXV0b21hdGFDb21waWxlKGFtKTsKKwkJeG1sRnJlZUF1dG9tYXRhKGFtKTsKKwkJYW0gPSBOVUxMOworCQlpZiAocmVnZXhwID09IE5VTEwpIHsKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJGYWlsZWQgdG8gY29tcGlsZSB0aGUgYXV0b21hdGEiKTsKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0gZWxzZSBpZiAoKGV4cHJbMF0gPT0gJz0nKSAmJiAoZXhwclsxXSA9PSAnPicpKSB7CisJCWlmIChyZWdleHAgPT0gTlVMTCkgeworCQkgICAgcHJpbnRmKCI9PiBmYWlsZWQgbm90IGNvbXBpbGVkXG4iKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmIChleGVjID09IE5VTEwpCisJCQlleGVjID0geG1sUmVnTmV3RXhlY0N0eHQocmVnZXhwLCBOVUxMLCBOVUxMKTsKKwkJICAgIGlmIChyZXQgPT0gMCkgeworCQkJcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgTlVMTCwgTlVMTCk7CisJCSAgICB9CisJCSAgICBpZiAocmV0ID09IDEpCisJCQlwcmludGYoIj0+IFBhc3NlZFxuIik7CisJCSAgICBlbHNlIGlmICgocmV0ID09IDApIHx8IChyZXQgPT0gLTEpKQorCQkJcHJpbnRmKCI9PiBGYWlsZWRcbiIpOworCQkgICAgZWxzZSBpZiAocmV0IDwgMCkKKwkJCXByaW50ZigiPT4gRXJyb3JcbiIpOworCQkgICAgeG1sUmVnRnJlZUV4ZWNDdHh0KGV4ZWMpOworCQkgICAgZXhlYyA9IE5VTEw7CisJCX0KKwkJcmV0ID0gMDsKKwkgICAgfSBlbHNlIGlmIChyZWdleHAgIT0gTlVMTCkgeworCQlpZiAoZXhlYyA9PSBOVUxMKQorCQkgICAgZXhlYyA9IHhtbFJlZ05ld0V4ZWNDdHh0KHJlZ2V4cCwgTlVMTCwgTlVMTCk7CisJCXJldCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIEJBRF9DQVNUIGV4cHIsIE5VTEwpOworCSAgICB9IGVsc2UgeworCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJVbmV4cGVjdGVkIGxpbmUgJXNcbiIsIGV4cHIpOworCSAgICB9CisJfQorICAgIH0KKyAgICBmY2xvc2UoaW5wdXQpOworICAgIGlmIChyZWdleHAgIT0gTlVMTCkKKwl4bWxSZWdGcmVlUmVnZXhwKHJlZ2V4cCk7CisgICAgaWYgKGV4ZWMgIT0gTlVMTCkKKwl4bWxSZWdGcmVlRXhlY0N0eHQoZXhlYyk7CisgICAgaWYgKGFtICE9IE5VTEwpCisJeG1sRnJlZUF1dG9tYXRhKGFtKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisKKyAgICB4bWxJbml0TWVtb3J5KCk7CisKKyAgICBpZiAoYXJnYyA9PSAxKSB7CisJaW50IHJldDsKKwl4bWxBdXRvbWF0YVB0ciBhbTsKKwl4bWxBdXRvbWF0YVN0YXRlUHRyIHN0YXJ0LCBjdXI7CisJeG1sUmVnZXhwUHRyIHJlZ2V4cDsKKwl4bWxSZWdFeGVjQ3R4dFB0ciBleGVjOworCisJYW0gPSB4bWxOZXdBdXRvbWF0YSgpOworCXN0YXJ0ID0geG1sQXV0b21hdGFHZXRJbml0U3RhdGUoYW0pOworCisJLyogZ2VuZXJhdGUgYVtiYV0qYSAqLworCWN1ciA9IHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbihhbSwgc3RhcnQsIE5VTEwsIEJBRF9DQVNUImEiLCBOVUxMKTsKKwl4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24oYW0sIGN1ciwgY3VyLCBCQURfQ0FTVCJiIiwgTlVMTCk7CisJeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uKGFtLCBjdXIsIGN1ciwgQkFEX0NBU1QiYSIsIE5VTEwpOworCWN1ciA9IHhtbEF1dG9tYXRhTmV3Q291bnRUcmFucyhhbSwgY3VyLCBOVUxMLCBCQURfQ0FTVCJhIiwgMiwgMywgTlVMTCk7CisJeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlKGFtLCBjdXIpOworCisJLyogY29tcGlsZSBpdCBpbiBhIHJlZ2V4cCBhbmQgZnJlZSB0aGUgYXV0b21hdGEgKi8KKwlyZWdleHAgPSB4bWxBdXRvbWF0YUNvbXBpbGUoYW0pOworCXhtbEZyZWVBdXRvbWF0YShhbSk7CisKKwkvKiB0ZXN0IHRoZSByZWdleHAgKi8KKwl4bWxSZWdleHBQcmludChzdGRvdXQsIHJlZ2V4cCk7CisJZXhlYyA9IHhtbFJlZ05ld0V4ZWNDdHh0KHJlZ2V4cCwgTlVMTCwgTlVMTCk7CisJcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgQkFEX0NBU1QiYSIsIE5VTEwpOworCWlmIChyZXQgPT0gMSkKKwkgICAgcHJpbnRmKCJmaW5hbFxuIik7CisJZWxzZSBpZiAocmV0IDwgMCkKKwkgICAgcHJpbnRmKCJlcnJvclxuIik7CisJcmV0ID14bWxSZWdFeGVjUHVzaFN0cmluZyhleGVjLCBCQURfQ0FTVCJhIiwgTlVMTCk7CisJaWYgKHJldCA9PSAxKQorCSAgICBwcmludGYoImZpbmFsXG4iKTsKKwllbHNlIGlmIChyZXQgPCAwKQorCSAgICBwcmludGYoImVycm9yXG4iKTsKKwlyZXQgPXhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIEJBRF9DQVNUImIiLCBOVUxMKTsKKwlpZiAocmV0ID09IDEpCisJICAgIHByaW50ZigiZmluYWxcbiIpOworCWVsc2UgaWYgKHJldCA8IDApCisJICAgIHByaW50ZigiZXJyb3JcbiIpOworCXJldCA9eG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgQkFEX0NBU1QiYSIsIE5VTEwpOworCWlmIChyZXQgPT0gMSkKKwkgICAgcHJpbnRmKCJmaW5hbFxuIik7CisJZWxzZSBpZiAocmV0IDwgMCkKKwkgICAgcHJpbnRmKCJlcnJvclxuIik7CisJcmV0ID14bWxSZWdFeGVjUHVzaFN0cmluZyhleGVjLCBCQURfQ0FTVCJhIiwgTlVMTCk7CisJaWYgKHJldCA9PSAxKQorCSAgICBwcmludGYoImZpbmFsXG4iKTsKKwllbHNlIGlmIChyZXQgPCAwKQorCSAgICBwcmludGYoImVycm9yXG4iKTsKKwlyZXQgPXhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIEJBRF9DQVNUImEiLCBOVUxMKTsKKwlpZiAocmV0ID09IDEpCisJICAgIHByaW50ZigiZmluYWxcbiIpOworCWVsc2UgaWYgKHJldCA8IDApCisJICAgIHByaW50ZigiZXJyb3JcbiIpOworCXJldCA9eG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgQkFEX0NBU1QiYSIsIE5VTEwpOworCWlmIChyZXQgPT0gMSkKKwkgICAgcHJpbnRmKCJmaW5hbFxuIik7CisJZWxzZSBpZiAocmV0IDwgMCkKKwkgICAgcHJpbnRmKCJlcnJvclxuIik7CisJaWYgKHJldCA9PSAwKSB7CisJICAgIHJldCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIE5VTEwsIE5VTEwpOworCSAgICBpZiAocmV0ID09IDEpCisJCXByaW50ZigiZmluYWxcbiIpOworCSAgICBlbHNlIGlmIChyZXQgPCAwKQorCQlwcmludGYoImVycm9yXG4iKTsKKwl9CisJeG1sUmVnRnJlZUV4ZWNDdHh0KGV4ZWMpOworCisJLyogZnJlZSB0aGUgcmVnZXhwICovCisJeG1sUmVnRnJlZVJlZ2V4cChyZWdleHApOworICAgIH0gZWxzZSB7CisJaW50IGk7CisKKwlmb3IgKGkgPSAxO2kgPCBhcmdjO2krKykKKwkgICAgdGVzdFJlZ2V4cEZpbGUoYXJndltpXSk7CisgICAgfQorCisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIHhtbE1lbW9yeUR1bXAoKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKyNlbHNlCisjaW5jbHVkZSA8c3RkaW8uaD4KK2ludCBtYWluKGludCBhcmdjIEFUVFJJQlVURV9VTlVTRUQsIGNoYXIgKiphcmd2IEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBwcmludGYoIiVzIDogQXV0b21hdGEgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIsIGFyZ3ZbMF0pOworICAgIHJldHVybigwKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0QzE0Ti5jIGIvbGlieG1sMi0yLjcuNy90ZXN0QzE0Ti5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiZmE4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RDMTROLmMKQEAgLTAsMCArMSwzNjQgQEAKKy8qCisgKiBDYW5vbmljYWwgWE1MIGltcGxlbWVudGF0aW9uIHRlc3QgcHJvZ3JhbQorICogKGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1KQorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqIAorICogQXV0aG9yOiBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPgorICovCisjaW5jbHVkZSAibGlieG1sLmgiCisjaWYgZGVmaW5lZChMSUJYTUxfQzE0Tl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaWZkZWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aEludGVybmFscy5oPgorCisjaW5jbHVkZSA8bGlieG1sL2MxNG4uaD4KKworCitzdGF0aWMgdm9pZCB1c2FnZShjb25zdCBjaGFyICpuYW1lKSB7CisgICAgZnByaW50ZihzdGRlcnIsCisJIlVzYWdlOiAlcyA8bW9kZT4gPHhtbC1maWxlPiBbPHhwYXRoLWV4cHI+XSBbPGluY2x1c2l2ZS1ucy1saXN0Pl1cbiIsCisJICAgIG5hbWUpOworICAgIGZwcmludGYoc3RkZXJyLCAid2hlcmUgPG1vZGU+IGlzIG9uZSBvZiBmb2xsb3dpbmc6XG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKwkiLS13aXRoLWNvbW1lbnRzICAgICAgIFx0IFhNTCBmaWxlIGNhbm9uaWNhbGl6YXRpb24gdjEuMCB3IGNvbW1lbnRzIFxuIik7CisgICAgZnByaW50ZihzdGRlcnIsCisJIi0td2l0aG91dC1jb21tZW50cyAgICBcdCBYTUwgZmlsZSBjYW5vbmljYWxpemF0aW9uIHYxLjAgdy9vIGNvbW1lbnRzXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKwkiLS0xLTEtd2l0aC1jb21tZW50cyAgICAgICBcdCBYTUwgZmlsZSBjYW5vbmljYWxpemF0aW9uIHYxLjEgdyBjb21tZW50c1xuIik7CisgICAgZnByaW50ZihzdGRlcnIsCisJIi0tMS0xLXdpdGhvdXQtY29tbWVudHMgICAgXHQgWE1MIGZpbGUgY2Fub25pY2FsaXphdGlvbiB2MS4xIHcvbyBjb21tZW50c1xuIik7CisgICAgZnByaW50ZihzdGRlcnIsCisgICAgIi0tZXhjLXdpdGgtY29tbWVudHMgICBcdCBFeGNsdXNpdmUgWE1MIGZpbGUgY2Fub25pY2FsaXphdGlvbiB2MS4wIHcgY29tbWVudHNcbiIpOworICAgIGZwcmludGYoc3RkZXJyLAorICAgICItLWV4Yy13aXRob3V0LWNvbW1lbnRzXHQgRXhjbHVzaXZlIFhNTCBmaWxlIGNhbm9uaWNhbGl6YXRpb24gdjEuMCB3L28gY29tbWVudHNcbiIpOworfQorCitzdGF0aWMgeG1sWFBhdGhPYmplY3RQdHIKK2xvYWRfeHBhdGhfZXhwciAoeG1sRG9jUHRyIHBhcmVudF9kb2MsIGNvbnN0IGNoYXIqIGZpbGVuYW1lKTsKKworc3RhdGljIHhtbENoYXIgKipwYXJzZV9saXN0KHhtbENoYXIgKnN0cik7CisKKy8qIHN0YXRpYyB2b2lkIHByaW50X3hwYXRoX25vZGVzKHhtbE5vZGVTZXRQdHIgbm9kZXMpOyAqLworCitzdGF0aWMgaW50IAordGVzdF9jMTRuKGNvbnN0IGNoYXIqIHhtbF9maWxlbmFtZSwgaW50IHdpdGhfY29tbWVudHMsIGludCBtb2RlLAorCWNvbnN0IGNoYXIqIHhwYXRoX2ZpbGVuYW1lLCB4bWxDaGFyICoqaW5jbHVzaXZlX25hbWVzcGFjZXMpIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHhwYXRoID0gTlVMTDsgCisgICAgeG1sQ2hhciAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgcmV0OworCisgICAgLyoKKyAgICAgKiBidWlsZCBhbiBYTUwgdHJlZSBmcm9tIGEgdGhlIGZpbGU7IHdlIG5lZWQgdG8gYWRkIGRlZmF1bHQKKyAgICAgKiBhdHRyaWJ1dGVzIGFuZCByZXNvbHZlIGFsbCBjaGFyYWN0ZXIgYW5kIGVudGl0aWVzIHJlZmVyZW5jZXMKKyAgICAgKi8KKyAgICB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlID0gWE1MX0RFVEVDVF9JRFMgfCBYTUxfQ09NUExFVEVfQVRUUlM7CisgICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKTsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKHhtbF9maWxlbmFtZSwgTlVMTCwgWE1MX1BBUlNFX0RUREFUVFIgfCBYTUxfUEFSU0VfTk9FTlQpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLCAiRXJyb3I6IHVuYWJsZSB0byBwYXJzZSBmaWxlIFwiJXNcIlxuIiwgeG1sX2ZpbGVuYW1lKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIENoZWNrIHRoZSBkb2N1bWVudCBpcyBvZiB0aGUgcmlnaHQga2luZAorICAgICAqLyAgICAKKyAgICBpZih4bWxEb2NHZXRSb290RWxlbWVudChkb2MpID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiBlbXB0eSBkb2N1bWVudCBmb3IgZmlsZSBcIiVzXCJcbiIsIHhtbF9maWxlbmFtZSk7CisJeG1sRnJlZURvYyhkb2MpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgLyogCisgICAgICogbG9hZCB4cGF0aCBmaWxlIGlmIHNwZWNpZmllZCAKKyAgICAgKi8KKyAgICBpZih4cGF0aF9maWxlbmFtZSkgeworCXhwYXRoID0gbG9hZF94cGF0aF9leHByKGRvYywgeHBhdGhfZmlsZW5hbWUpOworCWlmKHhwYXRoID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiB1bmFibGUgdG8gZXZhbHVhdGUgeHBhdGggZXhwcmVzc2lvblxuIik7CisJICAgIHhtbEZyZWVEb2MoZG9jKTsgCisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogQ2Fub25pY2FsIGZvcm0KKyAgICAgKi8gICAgICAKKyAgICAvKiBmcHJpbnRmKHN0ZGVyciwiRmlsZSBcIiVzXCIgbG9hZGVkOiBzdGFydCBjYW5vbml6YXRpb25cbiIsIHhtbF9maWxlbmFtZSk7ICovCisgICAgcmV0ID0geG1sQzE0TkRvY0R1bXBNZW1vcnkoZG9jLCAKKwkgICAgKHhwYXRoKSA/IHhwYXRoLT5ub2Rlc2V0dmFsIDogTlVMTCwgCisJICAgIG1vZGUsIGluY2x1c2l2ZV9uYW1lc3BhY2VzLAorCSAgICB3aXRoX2NvbW1lbnRzLCAmcmVzdWx0KTsKKyAgICBpZihyZXQgPj0gMCkgeworCWlmKHJlc3VsdCAhPSBOVUxMKSB7CisJICAgIHdyaXRlKDEsIHJlc3VsdCwgcmV0KTsKKwkgICAgeG1sRnJlZShyZXN1bHQpOyAgICAgICAgICAKKwl9CisgICAgfSBlbHNlIHsKKwlmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IGZhaWxlZCB0byBjYW5vbmljYWxpemUgWE1MIGZpbGUgXCIlc1wiIChyZXQ9JWQpXG4iLCB4bWxfZmlsZW5hbWUsIHJldCk7CisJaWYocmVzdWx0ICE9IE5VTEwpIHhtbEZyZWUocmVzdWx0KTsKKwl4bWxGcmVlRG9jKGRvYyk7IAorCXJldHVybigtMSk7CisgICAgfQorICAgICAgICAKKyAgICAvKgorICAgICAqIENsZWFudXAKKyAgICAgKi8gCisgICAgaWYoeHBhdGggIT0gTlVMTCkgeG1sWFBhdGhGcmVlT2JqZWN0KHhwYXRoKTsKKyAgICB4bWxGcmVlRG9jKGRvYyk7ICAgIAorCisgICAgcmV0dXJuKHJldCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIGludCByZXQgPSAtMTsKKyAgICAKKyAgICAvKgorICAgICAqIEluaXQgbGlieG1sCisgICAgICovICAgICAKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgLyoKKyAgICAgKiBQYXJzZSBjb21tYW5kIGxpbmUgYW5kIHByb2Nlc3MgZmlsZQorICAgICAqLworICAgIGlmKCBhcmdjIDwgMyApIHsKKwlmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzLlxuIik7CisJdXNhZ2UoYXJndlswXSk7CisgICAgfSBlbHNlIGlmKHN0cmNtcChhcmd2WzFdLCAiLS13aXRoLWNvbW1lbnRzIikgPT0gMCkgeworCXJldCA9IHRlc3RfYzE0bihhcmd2WzJdLCAxLCBYTUxfQzE0Tl8xXzAsIChhcmdjID4gMykgPyBhcmd2WzNdIDogTlVMTCwgTlVMTCk7CisgICAgfSBlbHNlIGlmKHN0cmNtcChhcmd2WzFdLCAiLS13aXRob3V0LWNvbW1lbnRzIikgPT0gMCkgeworCXJldCA9IHRlc3RfYzE0bihhcmd2WzJdLCAwLCBYTUxfQzE0Tl8xXzAsIChhcmdjID4gMykgPyBhcmd2WzNdIDogTlVMTCwgTlVMTCk7CisgICAgfSBlbHNlIGlmKHN0cmNtcChhcmd2WzFdLCAiLS0xLTEtd2l0aC1jb21tZW50cyIpID09IDApIHsKKwlyZXQgPSB0ZXN0X2MxNG4oYXJndlsyXSwgMSwgWE1MX0MxNE5fMV8xLCAoYXJnYyA+IDMpID8gYXJndlszXSA6IE5VTEwsIE5VTEwpOworICAgIH0gZWxzZSBpZihzdHJjbXAoYXJndlsxXSwgIi0tMS0xLXdpdGhvdXQtY29tbWVudHMiKSA9PSAwKSB7CisJcmV0ID0gdGVzdF9jMTRuKGFyZ3ZbMl0sIDAsIFhNTF9DMTROXzFfMSwgKGFyZ2MgPiAzKSA/IGFyZ3ZbM10gOiBOVUxMLCBOVUxMKTsKKyAgICB9IGVsc2UgaWYoc3RyY21wKGFyZ3ZbMV0sICItLWV4Yy13aXRoLWNvbW1lbnRzIikgPT0gMCkgeworCXhtbENoYXIgKipsaXN0OworCQorCS8qIGxvYWQgZXhjbHVzaXZlIG5hbWVzcGFjZSBmcm9tIGNvbW1hbmQgbGluZSAqLworCWxpc3QgPSAoYXJnYyA+IDQpID8gcGFyc2VfbGlzdCgoeG1sQ2hhciAqKWFyZ3ZbNF0pIDogTlVMTDsKKwlyZXQgPSB0ZXN0X2MxNG4oYXJndlsyXSwgMSwgWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCwgKGFyZ2MgPiAzKSA/IGFyZ3ZbM10gOiBOVUxMLCBsaXN0KTsKKwlpZihsaXN0ICE9IE5VTEwpIHhtbEZyZWUobGlzdCk7CisgICAgfSBlbHNlIGlmKHN0cmNtcChhcmd2WzFdLCAiLS1leGMtd2l0aG91dC1jb21tZW50cyIpID09IDApIHsKKwl4bWxDaGFyICoqbGlzdDsKKwkKKwkvKiBsb2FkIGV4Y2x1c2l2ZSBuYW1lc3BhY2UgZnJvbSBjb21tYW5kIGxpbmUgKi8KKwlsaXN0ID0gKGFyZ2MgPiA0KSA/IHBhcnNlX2xpc3QoKHhtbENoYXIgKilhcmd2WzRdKSA6IE5VTEw7CisJcmV0ID0gdGVzdF9jMTRuKGFyZ3ZbMl0sIDAsIFhNTF9DMTROX0VYQ0xVU0lWRV8xXzAsIChhcmdjID4gMykgPyBhcmd2WzNdIDogTlVMTCwgbGlzdCk7CisJaWYobGlzdCAhPSBOVUxMKSB4bWxGcmVlKGxpc3QpOworICAgIH0gZWxzZSB7CisJZnByaW50ZihzdGRlcnIsICJFcnJvcjogYmFkIG9wdGlvbi5cbiIpOworCXVzYWdlKGFyZ3ZbMF0pOworICAgIH0KKworICAgIC8qIAorICAgICAqIFNodXRkb3duIGxpYnhtbAorICAgICAqLworICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisKKyAgICByZXR1cm4oKHJldCA+PSAwKSA/IDAgOiAxKTsKK30KKworLyoKKyAqIE1hY3JvIHVzZWQgdG8gZ3JvdyB0aGUgY3VycmVudCBidWZmZXIuCisgKi8KKyNkZWZpbmUgZ3Jvd0J1ZmZlclJlZW50cmFudCgpIHsJCQkJCQlcCisgICAgYnVmZmVyX3NpemUgKj0gMjsJCQkJCQkJXAorICAgIGJ1ZmZlciA9ICh4bWxDaGFyICoqKQkJCQkJCVwKKwkJeG1sUmVhbGxvYyhidWZmZXIsIGJ1ZmZlcl9zaXplICogc2l6ZW9mKHhtbENoYXIqKSk7CVwKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpIHsJCQkJCQlcCisJcGVycm9yKCJyZWFsbG9jIGZhaWxlZCIpOwkJCQkJXAorCXJldHVybihOVUxMKTsJCQkJCQkJXAorICAgIH0JCQkJCQkJCQlcCit9CisKK3N0YXRpYyB4bWxDaGFyICoqCitwYXJzZV9saXN0KHhtbENoYXIgKnN0cikgeworICAgIHhtbENoYXIgKipidWZmZXI7CisgICAgeG1sQ2hhciAqKm91dCA9IE5VTEw7CisgICAgaW50IGJ1ZmZlcl9zaXplID0gMDsKKyAgICBpbnQgbGVuOworCisgICAgaWYoc3RyID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgbGVuID0geG1sU3RybGVuKHN0cik7CisgICAgaWYoKHN0clswXSA9PSAnXCcnKSAmJiAoc3RyW2xlbiAtIDFdID09ICdcJycpKSB7CisJc3RyW2xlbiAtIDFdID0gJ1wwJzsKKwlzdHIrKzsKKyAgICB9CisgICAgLyoKKyAgICAgKiBhbGxvY2F0ZSBhbiB0cmFuc2xhdGlvbiBidWZmZXIuCisgICAgICovCisgICAgYnVmZmVyX3NpemUgPSAxMDAwOworICAgIGJ1ZmZlciA9ICh4bWxDaGFyICoqKSB4bWxNYWxsb2MoYnVmZmVyX3NpemUgKiBzaXplb2YoeG1sQ2hhciopKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpIHsKKwlwZXJyb3IoIm1hbGxvYyBmYWlsZWQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG91dCA9IGJ1ZmZlcjsKKworICAgIHdoaWxlKCpzdHIgIT0gJ1wwJykgeworCWlmIChvdXQgLSBidWZmZXIgPiBidWZmZXJfc2l6ZSAtIDEwKSB7CisJICAgIGludCBpbmR4ID0gb3V0IC0gYnVmZmVyOworCisJICAgIGdyb3dCdWZmZXJSZWVudHJhbnQoKTsKKwkgICAgb3V0ID0gJmJ1ZmZlcltpbmR4XTsKKwl9CisJKCpvdXQrKykgPSBzdHI7CisJd2hpbGUoKnN0ciAhPSAnLCcgJiYgKnN0ciAhPSAnXDAnKSArK3N0cjsKKwlpZigqc3RyID09ICcsJykgKihzdHIrKykgPSAnXDAnOworICAgIH0KKyAgICAoKm91dCkgPSBOVUxMOworICAgIHJldHVybiBidWZmZXI7Cit9CisKK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgorbG9hZF94cGF0aF9leHByICh4bWxEb2NQdHIgcGFyZW50X2RvYywgY29uc3QgY2hhciogZmlsZW5hbWUpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB4cGF0aDsgCisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxDaGFyICpleHByOworICAgIHhtbFhQYXRoQ29udGV4dFB0ciBjdHg7IAorICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICB4bWxOc1B0ciBuczsKKyAgICAKKyAgICAvKgorICAgICAqIGxvYWQgWFBhdGggZXhwciBhcyBhIGZpbGUKKyAgICAgKi8KKyAgICB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlID0gWE1MX0RFVEVDVF9JRFMgfCBYTUxfQ09NUExFVEVfQVRUUlM7CisgICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKTsKKworICAgIGRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBYTUxfUEFSU0VfRFREQVRUUiB8IFhNTF9QQVJTRV9OT0VOVCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisJZnByaW50ZihzdGRlcnIsICJFcnJvcjogdW5hYmxlIHRvIHBhcnNlIGZpbGUgXCIlc1wiXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIENoZWNrIHRoZSBkb2N1bWVudCBpcyBvZiB0aGUgcmlnaHQga2luZAorICAgICAqLyAgICAKKyAgICBpZih4bWxEb2NHZXRSb290RWxlbWVudChkb2MpID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiBlbXB0eSBkb2N1bWVudCBmb3IgZmlsZSBcIiVzXCJcbiIsIGZpbGVuYW1lKTsKKwl4bWxGcmVlRG9jKGRvYyk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIG5vZGUgPSBkb2MtPmNoaWxkcmVuOworICAgIHdoaWxlKG5vZGUgIT0gTlVMTCAmJiAheG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgKGNvbnN0IHhtbENoYXIgKikiWFBhdGgiKSkgeworCW5vZGUgPSBub2RlLT5uZXh0OworICAgIH0KKyAgICAKKyAgICBpZihub2RlID09IE5VTEwpIHsgICAKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiBYUGF0aCBlbGVtZW50IGV4cGVjdGVkIGluIHRoZSBmaWxlICBcIiVzXCJcbiIsIGZpbGVuYW1lKTsKKwl4bWxGcmVlRG9jKGRvYyk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGV4cHIgPSB4bWxOb2RlR2V0Q29udGVudChub2RlKTsKKyAgICBpZihleHByID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiBYUGF0aCBjb250ZW50IGVsZW1lbnQgaXMgTlVMTCBcIiVzXCJcbiIsIGZpbGVuYW1lKTsKKwl4bWxGcmVlRG9jKGRvYyk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGN0eCA9IHhtbFhQYXRoTmV3Q29udGV4dChwYXJlbnRfZG9jKTsKKyAgICBpZihjdHggPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IHVuYWJsZSB0byBjcmVhdGUgbmV3IGNvbnRleHRcbiIpOworICAgICAgICB4bWxGcmVlKGV4cHIpOyAKKyAgICAgICAgeG1sRnJlZURvYyhkb2MpOyAKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogUmVnaXN0ZXIgbmFtZXNwYWNlcworICAgICAqLworICAgIG5zID0gbm9kZS0+bnNEZWY7CisgICAgd2hpbGUobnMgIT0gTlVMTCkgeworCWlmKHhtbFhQYXRoUmVnaXN0ZXJOcyhjdHgsIG5zLT5wcmVmaXgsIG5zLT5ocmVmKSAhPSAwKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCJFcnJvcjogdW5hYmxlIHRvIHJlZ2lzdGVyIE5TIHdpdGggcHJlZml4PVwiJXNcIiBhbmQgaHJlZj1cIiVzXCJcbiIsIG5zLT5wcmVmaXgsIG5zLT5ocmVmKTsKKyAgICAJICAgIHhtbEZyZWUoZXhwcik7IAorCSAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eCk7IAorCSAgICB4bWxGcmVlRG9jKGRvYyk7IAorCSAgICByZXR1cm4oTlVMTCk7CisJfQorCW5zID0gbnMtPm5leHQ7CisgICAgfQorCisgICAgLyogIAorICAgICAqIEV2YWx1YXRlIHhwYXRoCisgICAgICovCisgICAgeHBhdGggPSB4bWxYUGF0aEV2YWxFeHByZXNzaW9uKGV4cHIsIGN0eCk7CisgICAgaWYoeHBhdGggPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IHVuYWJsZSB0byBldmFsdWF0ZSB4cGF0aCBleHByZXNzaW9uXG4iKTsKKyAgICAJeG1sRnJlZShleHByKTsgCisgICAgICAgIHhtbFhQYXRoRnJlZUNvbnRleHQoY3R4KTsgCisgICAgICAgIHhtbEZyZWVEb2MoZG9jKTsgCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKiBwcmludF94cGF0aF9ub2Rlcyh4cGF0aC0+bm9kZXNldHZhbCk7ICovCisKKyAgICB4bWxGcmVlKGV4cHIpOyAKKyAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eCk7IAorICAgIHhtbEZyZWVEb2MoZG9jKTsgCisgICAgcmV0dXJuKHhwYXRoKTsKK30KKworLyoKK3N0YXRpYyB2b2lkCitwcmludF94cGF0aF9ub2Rlcyh4bWxOb2RlU2V0UHRyIG5vZGVzKSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgaW50IGk7CisgICAgCisgICAgaWYobm9kZXMgPT0gTlVMTCApeyAKKwlmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiBubyBub2RlcyBzZXQgZGVmaW5lZFxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBmcHJpbnRmKHN0ZGVyciwgIk5vZGVzIFNldDpcbi0tLS0tXG4iKTsKKyAgICBmb3IoaSA9IDA7IGkgPCBub2Rlcy0+bm9kZU5yOyArK2kpIHsKKwlpZihub2Rlcy0+bm9kZVRhYltpXS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwkgICAgeG1sTnNQdHIgbnM7CisJICAgIAorCSAgICBucyA9ICh4bWxOc1B0cilub2Rlcy0+bm9kZVRhYltpXTsKKwkgICAgY3VyID0gKHhtbE5vZGVQdHIpbnMtPm5leHQ7CisJICAgIGZwcmludGYoc3RkZXJyLCAibmFtZXNwYWNlIFwiJXNcIj1cIiVzXCIgZm9yIG5vZGUgJXM6JXNcbiIsIAorCQkgICAgbnMtPnByZWZpeCwgbnMtPmhyZWYsCisJCSAgICAoY3VyLT5ucykgPyBjdXItPm5zLT5wcmVmaXggOiBCQURfQ0FTVCAiIiwgY3VyLT5uYW1lKTsKKwl9IGVsc2UgaWYobm9kZXMtPm5vZGVUYWJbaV0tPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCSAgICBjdXIgPSBub2Rlcy0+bm9kZVRhYltpXTsgICAgCisJICAgIGZwcmludGYoc3RkZXJyLCAiZWxlbWVudCBub2RlIFwiJXM6JXNcIlxuIiwgCisJCSAgICAoY3VyLT5ucykgPyBjdXItPm5zLT5wcmVmaXggOiBCQURfQ0FTVCAiIiwgY3VyLT5uYW1lKTsKKwl9IGVsc2UgeworCSAgICBjdXIgPSBub2Rlcy0+bm9kZVRhYltpXTsgICAgCisJICAgIGZwcmludGYoc3RkZXJyLCAibm9kZSBcIiVzXCI6IHR5cGUgJWRcbiIsIGN1ci0+bmFtZSwgY3VyLT50eXBlKTsKKwl9CisgICAgfQorfQorKi8KKworI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgoraW50IG1haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHByaW50ZigiJXMgOiBYUGF0aC9DYW5vbmljYWxpemF0aW9uIGFuZCBvdXRwdXQgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIsIGFyZ3ZbMF0pOworICAgIHJldHVybigwKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfQzE0Tl9FTkFCTEVEICovCisKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0SFRNTC5jIGIvbGlieG1sMi0yLjcuNy90ZXN0SFRNTC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNTAzNDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RIVE1MLmMKQEAgLTAsMCArMSw4ODAgQEAKKy8qCisgKiB0ZXN0SFRNTC5jIDogYSBzbWFsbCB0ZXN0ZXIgcHJvZ3JhbSBmb3IgSFRNTCBpbnB1dC4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisKKyNpZmRlZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9GQ05UTF9ICisjaW5jbHVkZSA8ZmNudGwuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfVU5JU1REX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9IVE1McGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUx0cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL2RlYnVnWE1MLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECitzdGF0aWMgaW50IGRlYnVnID0gMDsKKyNlbmRpZgorc3RhdGljIGludCBjb3B5ID0gMDsKK3N0YXRpYyBpbnQgc2F4ID0gMDsKK3N0YXRpYyBpbnQgcmVwZWF0ID0gMDsKK3N0YXRpYyBpbnQgbm9vdXQgPSAwOworI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKK3N0YXRpYyBpbnQgcHVzaCA9IDA7CisjZW5kaWYgLyogTElCWE1MX1BVU0hfRU5BQkxFRCAqLworc3RhdGljIGNoYXIgKmVuY29kaW5nID0gTlVMTDsKK3N0YXRpYyBpbnQgb3B0aW9ucyA9IDA7CisKK3N0YXRpYyB4bWxTQVhIYW5kbGVyIGVtcHR5U0FYSGFuZGxlclN0cnVjdCA9IHsKKyAgICBOVUxMLCAvKiBpbnRlcm5hbFN1YnNldCAqLworICAgIE5VTEwsIC8qIGlzU3RhbmRhbG9uZSAqLworICAgIE5VTEwsIC8qIGhhc0ludGVybmFsU3Vic2V0ICovCisgICAgTlVMTCwgLyogaGFzRXh0ZXJuYWxTdWJzZXQgKi8KKyAgICBOVUxMLCAvKiByZXNvbHZlRW50aXR5ICovCisgICAgTlVMTCwgLyogZ2V0RW50aXR5ICovCisgICAgTlVMTCwgLyogZW50aXR5RGVjbCAqLworICAgIE5VTEwsIC8qIG5vdGF0aW9uRGVjbCAqLworICAgIE5VTEwsIC8qIGF0dHJpYnV0ZURlY2wgKi8KKyAgICBOVUxMLCAvKiBlbGVtZW50RGVjbCAqLworICAgIE5VTEwsIC8qIHVucGFyc2VkRW50aXR5RGVjbCAqLworICAgIE5VTEwsIC8qIHNldERvY3VtZW50TG9jYXRvciAqLworICAgIE5VTEwsIC8qIHN0YXJ0RG9jdW1lbnQgKi8KKyAgICBOVUxMLCAvKiBlbmREb2N1bWVudCAqLworICAgIE5VTEwsIC8qIHN0YXJ0RWxlbWVudCAqLworICAgIE5VTEwsIC8qIGVuZEVsZW1lbnQgKi8KKyAgICBOVUxMLCAvKiByZWZlcmVuY2UgKi8KKyAgICBOVUxMLCAvKiBjaGFyYWN0ZXJzICovCisgICAgTlVMTCwgLyogaWdub3JhYmxlV2hpdGVzcGFjZSAqLworICAgIE5VTEwsIC8qIHByb2Nlc3NpbmdJbnN0cnVjdGlvbiAqLworICAgIE5VTEwsIC8qIGNvbW1lbnQgKi8KKyAgICBOVUxMLCAvKiB4bWxQYXJzZXJXYXJuaW5nICovCisgICAgTlVMTCwgLyogeG1sUGFyc2VyRXJyb3IgKi8KKyAgICBOVUxMLCAvKiB4bWxQYXJzZXJFcnJvciAqLworICAgIE5VTEwsIC8qIGdldFBhcmFtZXRlckVudGl0eSAqLworICAgIE5VTEwsIC8qIGNkYXRhQmxvY2sgKi8KKyAgICBOVUxMLCAvKiBleHRlcm5hbFN1YnNldCAqLworICAgIDEsICAgIC8qIGluaXRpYWxpemVkICovCisgICAgTlVMTCwgLyogcHJpdmF0ZSAqLworICAgIE5VTEwsIC8qIHN0YXJ0RWxlbWVudE5zU0FYMkZ1bmMgKi8KKyAgICBOVUxMLCAvKiBlbmRFbGVtZW50TnNTQVgyRnVuYyAqLworICAgIE5VTEwgIC8qIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgKi8KK307CisKK3N0YXRpYyB4bWxTQVhIYW5kbGVyUHRyIGVtcHR5U0FYSGFuZGxlciA9ICZlbXB0eVNBWEhhbmRsZXJTdHJ1Y3Q7CitleHRlcm4geG1sU0FYSGFuZGxlclB0ciBkZWJ1Z1NBWEhhbmRsZXI7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQkJRGVidWcgSGFuZGxlcnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIGlzU3RhbmRhbG9uZURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBJcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lID8KKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZQorICovCitzdGF0aWMgaW50Citpc1N0YW5kYWxvbmVEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5pc1N0YW5kYWxvbmUoKVxuIik7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGhhc0ludGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworc3RhdGljIGludAoraGFzSW50ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5oYXNJbnRlcm5hbFN1YnNldCgpXG4iKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogaGFzRXh0ZXJuYWxTdWJzZXREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogRG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBleHRlcm5hbCBzdWJzZXQKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZQorICovCitzdGF0aWMgaW50CitoYXNFeHRlcm5hbFN1YnNldERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmhhc0V4dGVybmFsU3Vic2V0KClcbiIpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiBoYXNJbnRlcm5hbFN1YnNldERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBEb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGludGVybmFsIHN1YnNldAorICovCitzdGF0aWMgdm9pZAoraW50ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpCit7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguaW50ZXJuYWxTdWJzZXQoJXMsIiwgbmFtZSk7CisgICAgaWYgKEV4dGVybmFsSUQgPT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiAsIik7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiICVzLCIsIEV4dGVybmFsSUQpOworICAgIGlmIChTeXN0ZW1JRCA9PSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiIClcbiIpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIiAlcylcbiIsIFN5c3RlbUlEKTsKK30KKworLyoqCisgKiByZXNvbHZlRW50aXR5RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHB1YmxpY0lkOiBUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBzeXN0ZW1JZDogVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5CisgKgorICogU3BlY2lhbCBlbnRpdHkgcmVzb2x2ZXIsIGJldHRlciBsZWZ0IHRvIHRoZSBwYXJzZXIsIGl0IGhhcworICogbW9yZSBjb250ZXh0IHRoYW4gdGhlIGFwcGxpY2F0aW9uIGxheWVyLgorICogVGhlIGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIE5PVCByZXNvbHZlIHRoZSBlbnRpdGllcywgaW4gdGhhdCBjYXNlCisgKiB0aGUgRU5USVRZX1JFRiBub2RlcyBhcmUgYnVpbHQgaW4gdGhlIHN0cnVjdHVyZSAoYW5kIHRoZSBwYXJhbWV0ZXIKKyAqIHZhbHVlcykuCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIgaWYgaW5saW5lZCBvciBOVUxMIGZvciBET00gYmVoYXZpb3VyLgorICovCitzdGF0aWMgeG1sUGFyc2VySW5wdXRQdHIKK3Jlc29sdmVFbnRpdHlEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkKQoreworICAgIC8qIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7ICovCisKKyAgICAKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5yZXNvbHZlRW50aXR5KCIpOworICAgIGlmIChwdWJsaWNJZCAhPSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiJXMiLCAoY2hhciAqKXB1YmxpY0lkKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIgIik7CisgICAgaWYgKHN5c3RlbUlkICE9IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIsICVzKVxuIiwgKGNoYXIgKilzeXN0ZW1JZCk7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiLCApXG4iKTsKKy8qKioqKioqKioKKyAgICBpZiAoc3lzdGVtSWQgIT0gTlVMTCkgeworICAgICAgICByZXR1cm4oeG1sTmV3SW5wdXRGcm9tRmlsZShjdHh0LCAoY2hhciAqKSBzeXN0ZW1JZCkpOworICAgIH0KKyAqKioqKioqKiovCisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIGdldEVudGl0eURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiBUaGUgZW50aXR5IG5hbWUKKyAqCisgKiBHZXQgYW4gZW50aXR5IGJ5IG5hbWUKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxQYXJzZXJJbnB1dFB0ciBpZiBpbmxpbmVkIG9yIE5VTEwgZm9yIERPTSBiZWhhdmlvdXIuCisgKi8KK3N0YXRpYyB4bWxFbnRpdHlQdHIKK2dldEVudGl0eURlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lKQoreworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmdldEVudGl0eSglcylcbiIsIG5hbWUpOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiBnZXRQYXJhbWV0ZXJFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogVGhlIGVudGl0eSBuYW1lCisgKgorICogR2V0IGEgcGFyYW1ldGVyIGVudGl0eSBieSBuYW1lCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIKKyAqLworc3RhdGljIHhtbEVudGl0eVB0cgorZ2V0UGFyYW1ldGVyRW50aXR5RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguZ2V0UGFyYW1ldGVyRW50aXR5KCVzKVxuIiwgbmFtZSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCisKKy8qKgorICogZW50aXR5RGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGVudGl0eSBuYW1lIAorICogQHR5cGU6ICB0aGUgZW50aXR5IHR5cGUgCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBjb250ZW50OiB0aGUgZW50aXR5IHZhbHVlICh3aXRob3V0IHByb2Nlc3NpbmcpLgorICoKKyAqIEFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZAorICovCitzdGF0aWMgdm9pZAorZW50aXR5RGVjbERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgdHlwZSwKKyAgICAgICAgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQsIHhtbENoYXIgKmNvbnRlbnQpCit7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguZW50aXR5RGVjbCglcywgJWQsICVzLCAlcywgJXMpXG4iLAorICAgICAgICAgICAgbmFtZSwgdHlwZSwgcHVibGljSWQsIHN5c3RlbUlkLCBjb250ZW50KTsKK30KKworLyoqCisgKiBhdHRyaWJ1dGVEZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUgCisgKiBAdHlwZTogIHRoZSBhdHRyaWJ1dGUgdHlwZSAKKyAqCisgKiBBbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQKKyAqLworc3RhdGljIHZvaWQKK2F0dHJpYnV0ZURlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqZWxlbSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgaW50IHR5cGUsIGludCBkZWYsIGNvbnN0IHhtbENoYXIgKmRlZmF1bHRWYWx1ZSwKKwkgICAgICB4bWxFbnVtZXJhdGlvblB0ciB0cmVlIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguYXR0cmlidXRlRGVjbCglcywgJXMsICVkLCAlZCwgJXMsIC4uLilcbiIsCisgICAgICAgICAgICBlbGVtLCBuYW1lLCB0eXBlLCBkZWYsIGRlZmF1bHRWYWx1ZSk7Cit9CisKKy8qKgorICogZWxlbWVudERlY2xEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBlbGVtZW50IG5hbWUgCisgKiBAdHlwZTogIHRoZSBlbGVtZW50IHR5cGUgCisgKiBAY29udGVudDogdGhlIGVsZW1lbnQgdmFsdWUgKHdpdGhvdXQgcHJvY2Vzc2luZykuCisgKgorICogQW4gZWxlbWVudCBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZAorICovCitzdGF0aWMgdm9pZAorZWxlbWVudERlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IHR5cGUsCisJICAgIHhtbEVsZW1lbnRDb250ZW50UHRyIGNvbnRlbnQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5lbGVtZW50RGVjbCglcywgJWQsIC4uLilcbiIsCisgICAgICAgICAgICBuYW1lLCB0eXBlKTsKK30KKworLyoqCisgKiBub3RhdGlvbkRlY2xEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogVGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqCisgKiBXaGF0IHRvIGRvIHdoZW4gYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBoYXMgYmVlbiBwYXJzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitub3RhdGlvbkRlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCkKK3sKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5ub3RhdGlvbkRlY2woJXMsICVzLCAlcylcbiIsCisgICAgICAgICAgICAoY2hhciAqKSBuYW1lLCAoY2hhciAqKSBwdWJsaWNJZCwgKGNoYXIgKikgc3lzdGVtSWQpOworfQorCisvKioKKyAqIHVucGFyc2VkRW50aXR5RGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZW50aXR5CisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBub3RhdGlvbk5hbWU6IHRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbgorICoKKyAqIFdoYXQgdG8gZG8gd2hlbiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb24gaXMgcGFyc2VkCisgKi8KK3N0YXRpYyB2b2lkCit1bnBhcnNlZEVudGl0eURlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJICAgY29uc3QgeG1sQ2hhciAqcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkLAorCQkgICBjb25zdCB4bWxDaGFyICpub3RhdGlvbk5hbWUpCit7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVgudW5wYXJzZWRFbnRpdHlEZWNsKCVzLCAlcywgJXMsICVzKVxuIiwKKyAgICAgICAgICAgIChjaGFyICopIG5hbWUsIChjaGFyICopIHB1YmxpY0lkLCAoY2hhciAqKSBzeXN0ZW1JZCwKKwkgICAgKGNoYXIgKikgbm90YXRpb25OYW1lKTsKK30KKworLyoqCisgKiBzZXREb2N1bWVudExvY2F0b3JEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbG9jOiBBIFNBWCBMb2NhdG9yCisgKgorICogUmVjZWl2ZSB0aGUgZG9jdW1lbnQgbG9jYXRvciBhdCBzdGFydHVwLCBhY3R1YWxseSB4bWxEZWZhdWx0U0FYTG9jYXRvcgorICogRXZlcnl0aGluZyBpcyBhdmFpbGFibGUgb24gdGhlIGNvbnRleHQsIHNvIHRoaXMgaXMgdXNlbGVzcyBpbiBvdXIgY2FzZS4KKyAqLworc3RhdGljIHZvaWQKK3NldERvY3VtZW50TG9jYXRvckRlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCB4bWxTQVhMb2NhdG9yUHRyIGxvYyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnNldERvY3VtZW50TG9jYXRvcigpXG4iKTsKK30KKworLyoqCisgKiBzdGFydERvY3VtZW50RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIGNhbGxlZCB3aGVuIHRoZSBkb2N1bWVudCBzdGFydCBiZWluZyBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzdGFydERvY3VtZW50RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguc3RhcnREb2N1bWVudCgpXG4iKTsKK30KKworLyoqCisgKiBlbmREb2N1bWVudERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBjYWxsZWQgd2hlbiB0aGUgZG9jdW1lbnQgZW5kIGhhcyBiZWVuIGRldGVjdGVkLgorICovCitzdGF0aWMgdm9pZAorZW5kRG9jdW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5lbmREb2N1bWVudCgpXG4iKTsKK30KKworLyoqCisgKiBzdGFydEVsZW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzdGFydEVsZW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqKmF0dHMpCit7CisgICAgaW50IGk7CisKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5zdGFydEVsZW1lbnQoJXMiLCAoY2hhciAqKSBuYW1lKTsKKyAgICBpZiAoYXR0cyAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaSA9IDA7KGF0dHNbaV0gIT0gTlVMTCk7aSsrKSB7CisJICAgIGZwcmludGYoc3Rkb3V0LCAiLCAlcyIsIGF0dHNbaSsrXSk7CisJICAgIGlmIChhdHRzW2ldICE9IE5VTEwpIHsKKwkJdW5zaWduZWQgY2hhciBvdXRwdXRbNDBdOworCQljb25zdCB1bnNpZ25lZCBjaGFyICphdHQgPSBhdHRzW2ldOworCQlpbnQgb3V0bGVuLCBhdHRsZW47CisJICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIj0nIik7CisJCXdoaWxlICgoYXR0bGVuID0gc3RybGVuKChjaGFyKilhdHQpKSA+IDApIHsKKwkJICAgIG91dGxlbiA9IHNpemVvZiBvdXRwdXQgLSAxOworCQkgICAgaHRtbEVuY29kZUVudGl0aWVzKG91dHB1dCwgJm91dGxlbiwgYXR0LCAmYXR0bGVuLCAnXCcnKTsKKwkJICAgIG91dHB1dFtvdXRsZW5dID0gMDsKKwkJICAgIGZwcmludGYoc3Rkb3V0LCAiJXMiLCAoY2hhciAqKSBvdXRwdXQpOworCQkgICAgYXR0ICs9IGF0dGxlbjsKKwkJfQorCQlmcHJpbnRmKHN0ZG91dCwgIiciKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgZnByaW50ZihzdGRvdXQsICIpXG4iKTsKK30KKworLyoqCisgKiBlbmRFbGVtZW50RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICBUaGUgZWxlbWVudCBuYW1lCisgKgorICogY2FsbGVkIHdoZW4gdGhlIGVuZCBvZiBhbiBlbGVtZW50IGhhcyBiZWVuIGRldGVjdGVkLgorICovCitzdGF0aWMgdm9pZAorZW5kRWxlbWVudERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lKQoreworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmVuZEVsZW1lbnQoJXMpXG4iLCAoY2hhciAqKSBuYW1lKTsKK30KKworLyoqCisgKiBjaGFyYWN0ZXJzRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGNoOiAgYSB4bWxDaGFyIHN0cmluZworICogQGxlbjogdGhlIG51bWJlciBvZiB4bWxDaGFyCisgKgorICogcmVjZWl2aW5nIHNvbWUgY2hhcnMgZnJvbSB0aGUgcGFyc2VyLgorICogUXVlc3Rpb246IGhvdyBtdWNoIGF0IGEgdGltZSA/Pz8KKyAqLworc3RhdGljIHZvaWQKK2NoYXJhY3RlcnNEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqY2gsIGludCBsZW4pCit7CisgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbNDBdOworICAgIGludCBpbmxlbiA9IGxlbiwgb3V0bGVuID0gMzA7CisKKyAgICBodG1sRW5jb2RlRW50aXRpZXMob3V0cHV0LCAmb3V0bGVuLCBjaCwgJmlubGVuLCAwKTsKKyAgICBvdXRwdXRbb3V0bGVuXSA9IDA7CisKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5jaGFyYWN0ZXJzKCVzLCAlZClcbiIsIG91dHB1dCwgbGVuKTsKK30KKworLyoqCisgKiBjZGF0YURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIHJlY2VpdmluZyBzb21lIGNkYXRhIGNoYXJzIGZyb20gdGhlIHBhcnNlci4KKyAqIFF1ZXN0aW9uOiBob3cgbXVjaCBhdCBhIHRpbWUgPz8/CisgKi8KK3N0YXRpYyB2b2lkCitjZGF0YURlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpjaCwgaW50IGxlbikKK3sKKyAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFs0MF07CisgICAgaW50IGlubGVuID0gbGVuLCBvdXRsZW4gPSAzMDsKKworICAgIGh0bWxFbmNvZGVFbnRpdGllcyhvdXRwdXQsICZvdXRsZW4sIGNoLCAmaW5sZW4sIDApOworICAgIG91dHB1dFtvdXRsZW5dID0gMDsKKworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmNkYXRhKCVzLCAlZClcbiIsIG91dHB1dCwgbGVuKTsKK30KKworLyoqCisgKiByZWZlcmVuY2VEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbnRpdHkgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIGFuIGVudGl0eSByZWZlcmVuY2UgaXMgZGV0ZWN0ZWQuIAorICovCitzdGF0aWMgdm9pZAorcmVmZXJlbmNlRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVgucmVmZXJlbmNlKCVzKVxuIiwgbmFtZSk7Cit9CisKKy8qKgorICogaWdub3JhYmxlV2hpdGVzcGFjZURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBjaDogIGEgeG1sQ2hhciBzdHJpbmcKKyAqIEBzdGFydDogdGhlIGZpcnN0IGNoYXIgaW4gdGhlIHN0cmluZworICogQGxlbjogdGhlIG51bWJlciBvZiB4bWxDaGFyCisgKgorICogcmVjZWl2aW5nIHNvbWUgaWdub3JhYmxlIHdoaXRlc3BhY2VzIGZyb20gdGhlIHBhcnNlci4KKyAqIFF1ZXN0aW9uOiBob3cgbXVjaCBhdCBhIHRpbWUgPz8/CisgKi8KK3N0YXRpYyB2b2lkCitpZ25vcmFibGVXaGl0ZXNwYWNlRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKmNoLCBpbnQgbGVuKQoreworICAgIGNoYXIgb3V0cHV0WzQwXTsKKyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7KGk8bGVuKSAmJiAoaSA8IDMwKTtpKyspCisJb3V0cHV0W2ldID0gY2hbaV07CisgICAgb3V0cHV0W2ldID0gMDsKKworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmlnbm9yYWJsZVdoaXRlc3BhY2UoJXMsICVkKVxuIiwgb3V0cHV0LCBsZW4pOworfQorCisvKioKKyAqIHByb2Nlc3NpbmdJbnN0cnVjdGlvbkRlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEB0YXJnZXQ6ICB0aGUgdGFyZ2V0IG5hbWUKKyAqIEBkYXRhOiB0aGUgUEkgZGF0YSdzCisgKiBAbGVuOiB0aGUgbnVtYmVyIG9mIHhtbENoYXIKKyAqCisgKiBBIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gaGFzIGJlZW4gcGFyc2VkLgorICovCitzdGF0aWMgdm9pZAorcHJvY2Vzc2luZ0luc3RydWN0aW9uRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpkYXRhKQoreworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnByb2Nlc3NpbmdJbnN0cnVjdGlvbiglcywgJXMpXG4iLAorICAgICAgICAgICAgKGNoYXIgKikgdGFyZ2V0LCAoY2hhciAqKSBkYXRhKTsKK30KKworLyoqCisgKiBjb21tZW50RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHZhbHVlOiAgdGhlIGNvbW1lbnQgY29udGVudAorICoKKyAqIEEgY29tbWVudCBoYXMgYmVlbiBwYXJzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitjb21tZW50RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKnZhbHVlKQoreworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmNvbW1lbnQoJXMpXG4iLCB2YWx1ZSk7Cit9CisKKy8qKgorICogd2FybmluZ0RlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3dhcm5pbmdEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworCisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC53YXJuaW5nOiAiKTsKKyAgICB2ZnByaW50ZihzdGRvdXQsIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworfQorCisvKioKKyAqIGVycm9yRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG1zZzogIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKgorICogRGlzcGxheSBhbmQgZm9ybWF0IGEgZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK2Vycm9yRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguZXJyb3I6ICIpOworICAgIHZmcHJpbnRmKHN0ZG91dCwgbXNnLCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7Cit9CisKKy8qKgorICogZmF0YWxFcnJvckRlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIGZhdGFsRXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK2ZhdGFsRXJyb3JEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworCisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5mYXRhbEVycm9yOiAiKTsKKyAgICB2ZnByaW50ZihzdGRvdXQsIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworfQorCitzdGF0aWMgeG1sU0FYSGFuZGxlciBkZWJ1Z1NBWEhhbmRsZXJTdHJ1Y3QgPSB7CisgICAgaW50ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICBpc1N0YW5kYWxvbmVEZWJ1ZywKKyAgICBoYXNJbnRlcm5hbFN1YnNldERlYnVnLAorICAgIGhhc0V4dGVybmFsU3Vic2V0RGVidWcsCisgICAgcmVzb2x2ZUVudGl0eURlYnVnLAorICAgIGdldEVudGl0eURlYnVnLAorICAgIGVudGl0eURlY2xEZWJ1ZywKKyAgICBub3RhdGlvbkRlY2xEZWJ1ZywKKyAgICBhdHRyaWJ1dGVEZWNsRGVidWcsCisgICAgZWxlbWVudERlY2xEZWJ1ZywKKyAgICB1bnBhcnNlZEVudGl0eURlY2xEZWJ1ZywKKyAgICBzZXREb2N1bWVudExvY2F0b3JEZWJ1ZywKKyAgICBzdGFydERvY3VtZW50RGVidWcsCisgICAgZW5kRG9jdW1lbnREZWJ1ZywKKyAgICBzdGFydEVsZW1lbnREZWJ1ZywKKyAgICBlbmRFbGVtZW50RGVidWcsCisgICAgcmVmZXJlbmNlRGVidWcsCisgICAgY2hhcmFjdGVyc0RlYnVnLAorICAgIGlnbm9yYWJsZVdoaXRlc3BhY2VEZWJ1ZywKKyAgICBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25EZWJ1ZywKKyAgICBjb21tZW50RGVidWcsCisgICAgd2FybmluZ0RlYnVnLAorICAgIGVycm9yRGVidWcsCisgICAgZmF0YWxFcnJvckRlYnVnLAorICAgIGdldFBhcmFtZXRlckVudGl0eURlYnVnLAorICAgIGNkYXRhRGVidWcsCisgICAgTlVMTCwKKyAgICAxLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwKK307CisKK3htbFNBWEhhbmRsZXJQdHIgZGVidWdTQVhIYW5kbGVyID0gJmRlYnVnU0FYSGFuZGxlclN0cnVjdDsKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQkJRGVidWcJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHZvaWQKK3BhcnNlU0FYRmlsZShjaGFyICpmaWxlbmFtZSkgeworICAgIGh0bWxEb2NQdHIgZG9jID0gTlVMTDsKKworICAgIC8qCisgICAgICogRW1wdHkgY2FsbGJhY2tzIGZvciBjaGVja2luZworICAgICAqLworI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKyAgICBpZiAocHVzaCkgeworCUZJTEUgKmY7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKwlmID0gZm9wZW4oZmlsZW5hbWUsICJyYiIpOworI2Vsc2UKKwlmID0gZm9wZW4oZmlsZW5hbWUsICJyIik7CisjZW5kaWYKKwlpZiAoZiAhPSBOVUxMKSB7CisJICAgIGludCByZXMsIHNpemUgPSAzOworCSAgICBjaGFyIGNoYXJzWzQwOTZdOworCSAgICBodG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworCisJICAgIC8qIGlmIChyZXBlYXQpICovCisJCXNpemUgPSA0MDk2OworCSAgICByZXMgPSBmcmVhZChjaGFycywgMSwgNCwgZik7CisJICAgIGlmIChyZXMgPiAwKSB7CisJCWN0eHQgPSBodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoZW1wdHlTQVhIYW5kbGVyLCBOVUxMLAorCQkJICAgIGNoYXJzLCByZXMsIGZpbGVuYW1lLCBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKwkJd2hpbGUgKChyZXMgPSBmcmVhZChjaGFycywgMSwgc2l6ZSwgZikpID4gMCkgeworCQkgICAgaHRtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIHJlcywgMCk7CisJCX0KKwkJaHRtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworCQlkb2MgPSBjdHh0LT5teURvYzsKKwkJaHRtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCSAgICB9CisJICAgIGlmIChkb2MgIT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZG91dCwgImh0bWxTQVhQYXJzZUZpbGUgcmV0dXJuZWQgbm9uLU5VTExcbiIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJICAgIH0KKwkgICAgZmNsb3NlKGYpOworCX0KKwlpZiAoIW5vb3V0KSB7CisjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQgKF9fQ1lHV0lOX18pCisJCWYgPSBmb3BlbihmaWxlbmFtZSwgInJiIik7CisjZWxzZQorCQlmID0gZm9wZW4oZmlsZW5hbWUsICJyIik7CisjZW5kaWYKKwkgICAgaWYgKGYgIT0gTlVMTCkgeworCQlpbnQgcmVzLCBzaXplID0gMzsKKwkJY2hhciBjaGFyc1s0MDk2XTsKKwkJaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworCQkvKiBpZiAocmVwZWF0KSAqLworCQkgICAgc2l6ZSA9IDQwOTY7CisJCXJlcyA9IGZyZWFkKGNoYXJzLCAxLCA0LCBmKTsKKwkJaWYgKHJlcyA+IDApIHsKKwkJICAgIGN0eHQgPSBodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoZGVidWdTQVhIYW5kbGVyLCBOVUxMLAorCQkJCWNoYXJzLCByZXMsIGZpbGVuYW1lLCBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKwkJICAgIHdoaWxlICgocmVzID0gZnJlYWQoY2hhcnMsIDEsIHNpemUsIGYpKSA+IDApIHsKKwkJCWh0bWxQYXJzZUNodW5rKGN0eHQsIGNoYXJzLCByZXMsIDApOworCQkgICAgfQorCQkgICAgaHRtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworCQkgICAgZG9jID0gY3R4dC0+bXlEb2M7CisJCSAgICBodG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJCX0KKwkJaWYgKGRvYyAhPSBOVUxMKSB7CisJCSAgICBmcHJpbnRmKHN0ZG91dCwgImh0bWxTQVhQYXJzZUZpbGUgcmV0dXJuZWQgbm9uLU5VTExcbiIpOworCQkgICAgeG1sRnJlZURvYyhkb2MpOworCQl9CisJCWZjbG9zZShmKTsKKwkgICAgfQorCX0KKyAgICB9IGVsc2UgewkKKyNlbmRpZiAvKiBMSUJYTUxfUFVTSF9FTkFCTEVEICovCisJZG9jID0gaHRtbFNBWFBhcnNlRmlsZShmaWxlbmFtZSwgTlVMTCwgZW1wdHlTQVhIYW5kbGVyLCBOVUxMKTsKKwlpZiAoZG9jICE9IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRvdXQsICJodG1sU0FYUGFyc2VGaWxlIHJldHVybmVkIG5vbi1OVUxMXG4iKTsKKwkgICAgeG1sRnJlZURvYyhkb2MpOworCX0KKworCWlmICghbm9vdXQpIHsKKwkgICAgLyoKKwkgICAgICogRGVidWcgY2FsbGJhY2sKKwkgICAgICovCisJICAgIGRvYyA9IGh0bWxTQVhQYXJzZUZpbGUoZmlsZW5hbWUsIE5VTEwsIGRlYnVnU0FYSGFuZGxlciwgTlVMTCk7CisJICAgIGlmIChkb2MgIT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZG91dCwgImh0bWxTQVhQYXJzZUZpbGUgcmV0dXJuZWQgbm9uLU5VTExcbiIpOworCQl4bWxGcmVlRG9jKGRvYyk7CisJICAgIH0KKwl9CisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfUFVTSF9FTkFCTEVEICovCit9CisKK3N0YXRpYyB2b2lkCitwYXJzZUFuZFByaW50RmlsZShjaGFyICpmaWxlbmFtZSkgeworICAgIGh0bWxEb2NQdHIgZG9jID0gTlVMTDsKKworICAgIC8qCisgICAgICogYnVpbGQgYW4gSFRNTCB0cmVlIGZyb20gYSBzdHJpbmc7CisgICAgICovCisjaWZkZWYgTElCWE1MX1BVU0hfRU5BQkxFRAorICAgIGlmIChwdXNoKSB7CisJRklMRSAqZjsKKworI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pICYmICFkZWZpbmVkIChfX0NZR1dJTl9fKQorCWYgPSBmb3BlbihmaWxlbmFtZSwgInJiIik7CisjZWxzZQorCWYgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyNlbmRpZgorCWlmIChmICE9IE5VTEwpIHsKKwkgICAgaW50IHJlcywgc2l6ZSA9IDM7CisJICAgIGNoYXIgY2hhcnNbNDA5Nl07CisJICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKwkgICAgLyogaWYgKHJlcGVhdCkgKi8KKwkJc2l6ZSA9IDQwOTY7CisJICAgIHJlcyA9IGZyZWFkKGNoYXJzLCAxLCA0LCBmKTsKKwkgICAgaWYgKHJlcyA+IDApIHsKKwkJY3R4dCA9IGh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dChOVUxMLCBOVUxMLAorCQkJICAgIGNoYXJzLCByZXMsIGZpbGVuYW1lLCBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKwkJd2hpbGUgKChyZXMgPSBmcmVhZChjaGFycywgMSwgc2l6ZSwgZikpID4gMCkgeworCQkgICAgaHRtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIHJlcywgMCk7CisJCX0KKwkJaHRtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworCQlkb2MgPSBjdHh0LT5teURvYzsKKwkJaHRtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCSAgICB9CisJICAgIGZjbG9zZShmKTsKKwl9CisgICAgfSBlbHNlIHsJCisJZG9jID0gaHRtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKyAgICB9CisjZWxzZQorCWRvYyA9IGh0bWxSZWFkRmlsZShmaWxlbmFtZSxOVUxMLG9wdGlvbnMpOworI2VuZGlmCisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiQ291bGQgbm90IHBhcnNlICVzXG4iLCBmaWxlbmFtZSk7CisgICAgfQorCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorICAgIC8qCisgICAgICogdGVzdCBpbnRlcm1lZGlhdGUgY29weSBpZiBuZWVkZWQuCisgICAgICovCisgICAgaWYgKGNvcHkpIHsKKyAgICAgICAgaHRtbERvY1B0ciB0bXA7CisKKyAgICAgICAgdG1wID0gZG9jOworCWRvYyA9IHhtbENvcHlEb2MoZG9jLCAxKTsKKwl4bWxGcmVlRG9jKHRtcCk7CisgICAgfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyAgICAvKgorICAgICAqIHByaW50IGl0LgorICAgICAqLworICAgIGlmICghbm9vdXQpIHsgCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKwlpZiAoIWRlYnVnKSB7CisJICAgIGlmIChlbmNvZGluZykKKwkJaHRtbFNhdmVGaWxlRW5jKCItIiwgZG9jLCBlbmNvZGluZyk7CisJICAgIGVsc2UKKwkJaHRtbERvY0R1bXAoc3Rkb3V0LCBkb2MpOworCX0gZWxzZQorCSAgICB4bWxEZWJ1Z0R1bXBEb2N1bWVudChzdGRvdXQsIGRvYyk7CisjZWxzZQorCWlmIChlbmNvZGluZykKKwkgICAgaHRtbFNhdmVGaWxlRW5jKCItIiwgZG9jLCBlbmNvZGluZyk7CisJZWxzZQorCSAgICBodG1sRG9jRHVtcChzdGRvdXQsIGRvYyk7CisjZW5kaWYKKyAgICB9CQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisgICAgLyoKKyAgICAgKiBmcmVlIGl0LgorICAgICAqLworICAgIHhtbEZyZWVEb2MoZG9jKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaW50IGksIGNvdW50OworICAgIGludCBmaWxlcyA9IDA7CisKKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZGVidWciKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tZGVidWciKSkpCisJICAgIGRlYnVnKys7CisJZWxzZQorI2VuZGlmCisJICAgIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWNvcHkiKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tY29weSIpKSkKKwkgICAgY29weSsrOworI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXB1c2giKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tcHVzaCIpKSkKKwkgICAgcHVzaCsrOworI2VuZGlmIC8qIExJQlhNTF9QVVNIX0VOQUJMRUQgKi8KKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXNheCIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS1zYXgiKSkpCisJICAgIHNheCsrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbm9vdXQiKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9vdXQiKSkpCisJICAgIG5vb3V0Kys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1yZXBlYXQiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1yZXBlYXQiKSkpCisJICAgIHJlcGVhdCsrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZW5jb2RlIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZW5jb2RlIikpKSB7CisJICAgIGkrKzsKKwkgICAgZW5jb2RpbmcgPSBhcmd2W2ldOworICAgICAgICB9CisgICAgfQorICAgIGZvciAoaSA9IDE7IGkgPCBhcmdjIDsgaSsrKSB7CisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZW5jb2RlIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZW5jb2RlIikpKSB7CisJICAgIGkrKzsKKwkgICAgY29udGludWU7CisgICAgICAgIH0KKwlpZiAoYXJndltpXVswXSAhPSAnLScpIHsKKwkgICAgaWYgKHJlcGVhdCkgeworCQlmb3IgKGNvdW50ID0gMDtjb3VudCA8IDEwMCAqIHJlcGVhdDtjb3VudCsrKSB7CisJCSAgICBpZiAoc2F4KQorCQkJcGFyc2VTQVhGaWxlKGFyZ3ZbaV0pOworCQkgICAgZWxzZSAgIAorCQkJcGFyc2VBbmRQcmludEZpbGUoYXJndltpXSk7CisJCX0gICAgCisJICAgIH0gZWxzZSB7CisJCWlmIChzYXgpCisJCSAgICBwYXJzZVNBWEZpbGUoYXJndltpXSk7CisJCWVsc2UgICAKKwkJICAgIHBhcnNlQW5kUHJpbnRGaWxlKGFyZ3ZbaV0pOworCSAgICB9CisJICAgIGZpbGVzICsrOworCX0KKyAgICB9CisgICAgaWYgKGZpbGVzID09IDApIHsKKwlwcmludGYoIlVzYWdlIDogJXMgWy0tZGVidWddIFstLWNvcHldIFstLWNvcHldIEhUTUxmaWxlcyAuLi5cbiIsCisJICAgICAgIGFyZ3ZbMF0pOworCXByaW50ZigiXHRQYXJzZSB0aGUgSFRNTCBmaWxlcyBhbmQgb3V0cHV0IHRoZSByZXN1bHQgb2YgdGhlIHBhcnNpbmdcbiIpOworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisJcHJpbnRmKCJcdC0tZGVidWcgOiBkdW1wIGEgZGVidWcgdHJlZSBvZiB0aGUgaW4tbWVtb3J5IGRvY3VtZW50XG4iKTsKKyNlbmRpZgorCXByaW50ZigiXHQtLWNvcHkgOiB1c2VkIHRvIHRlc3QgdGhlIGludGVybmFsIGNvcHkgaW1wbGVtZW50YXRpb25cbiIpOworCXByaW50ZigiXHQtLXNheCA6IGRlYnVnIHRoZSBzZXF1ZW5jZSBvZiBTQVggY2FsbGJhY2tzXG4iKTsKKwlwcmludGYoIlx0LS1yZXBlYXQgOiBwYXJzZSB0aGUgZmlsZSAxMDAgdGltZXMsIGZvciB0aW1pbmdcbiIpOworCXByaW50ZigiXHQtLW5vb3V0IDogZG8gbm90IHByaW50IHRoZSByZXN1bHRcbiIpOworI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKwlwcmludGYoIlx0LS1wdXNoIDogdXNlIHRoZSBwdXNoIG1vZGUgcGFyc2VyXG4iKTsKKyNlbmRpZiAvKiBMSUJYTUxfUFVTSF9FTkFCTEVEICovCisJcHJpbnRmKCJcdC0tZW5jb2RlIGVuY29kaW5nIDogb3V0cHV0IGluIHRoZSBnaXZlbiBlbmNvZGluZ1xuIik7CisgICAgfQorICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisKKyAgICByZXR1cm4oMCk7Cit9CisjZWxzZSAvKiAhTElCWE1MX0hUTUxfRU5BQkxFRCAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CitpbnQgbWFpbihpbnQgYXJnYyBBVFRSSUJVVEVfVU5VU0VELCBjaGFyICoqYXJndiBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcHJpbnRmKCIlcyA6IEhUTUwgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIsIGFyZ3ZbMF0pOworICAgIHJldHVybigwKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0TW9kdWxlLmMgYi9saWJ4bWwyLTIuNy43L3Rlc3RNb2R1bGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjkzYzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0TW9kdWxlLmMKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIHRlc3RNb2R1bGUuYyA6IGEgc21hbGwgdGVzdGVyIHByb2dyYW0gZm9yIHhtbE1vZHVsZQorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBqb2Vsd3JlZWRAY29tY2FzdC5uZXQKKyAqLworCisjaW5jbHVkZSAibGlieG1sLmgiCisjaWZkZWYgTElCWE1MX01PRFVMRVNfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9kZWJ1Z1hNTC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtb2R1bGUuaD4KKworI2lmZGVmIF9XSU4zMgorI2RlZmluZSBNT0RVTEVfUEFUSCAiLiIKKyNpbmNsdWRlIDxzdGRsaWIuaD4gLyogZm9yIF9NQVhfUEFUSCAqLworI2lmbmRlZiBfX01JTkdXMzJfXworI2RlZmluZSBQQVRIX01BWCBfTUFYX1BBVEgKKyNlbmRpZgorI2Vsc2UKKyNkZWZpbmUgTU9EVUxFX1BBVEggIi5saWJzIgorI2VuZGlmCisKKy8qIFVzZWQgZm9yIFNDTyBPcGVuc2VydmVyKi8KKyNpZm5kZWYgUEFUSF9NQVgKKyNpZmRlZiBfUE9TSVhfUEFUSF9NQVgKKyNkZWZpbmUgUEFUSF9NQVggX1BPU0lYX1BBVEhfTUFYCisjZWxzZQorI2RlZmluZSBQQVRIX01BWCA0MDk2CisjZW5kaWYKKyNlbmRpZgorCit0eXBlZGVmIGludCAoKmhlbGxvX3dvcmxkX3QpKHZvaWQpOworIAoraW50IG1haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHhtbENoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOworICAgIHhtbE1vZHVsZVB0ciBtb2R1bGUgPSBOVUxMOworICAgIGhlbGxvX3dvcmxkX3QgaGVsbG9fd29ybGQgPSBOVUxMOworCisgICAgLyogYnVpbGQgdGhlIG1vZHVsZSBmaWxlbmFtZSwgYW5kIGNvbmZpcm0gdGhlIG1vZHVsZSBleGlzdHMgKi8KKyAgICB4bWxTdHJQcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgIChjb25zdCB4bWxDaGFyKikgIiVzL3Rlc3Rkc28lcyIsCisgICAgICAgICAgICAgICAgIChjb25zdCB4bWxDaGFyKilNT0RVTEVfUEFUSCwKKwkJIChjb25zdCB4bWxDaGFyKilMSUJYTUxfTU9EVUxFX0VYVEVOU0lPTik7CisKKyAgICBtb2R1bGUgPSB4bWxNb2R1bGVPcGVuKChjb25zdCBjaGFyKilmaWxlbmFtZSwgMCk7CisgICAgaWYgKG1vZHVsZSkKKyAgICAgIHsKKyAgICAgICAgaWYgKHhtbE1vZHVsZVN5bWJvbChtb2R1bGUsICJoZWxsb193b3JsZCIsICh2b2lkICoqKSAmaGVsbG9fd29ybGQpKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbHVyZSB0byBsb29rdXBcbiIpOworCSAgICByZXR1cm4oMSk7CisJfQorCWlmIChoZWxsb193b3JsZCA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiTG9va3VwIHJldHVybmVkIE5VTExcbiIpOworCSAgICByZXR1cm4oMSk7CisJfQorCQorICAgICAgICAoKmhlbGxvX3dvcmxkKSgpOworCisgICAgICAgIHhtbE1vZHVsZUNsb3NlKG1vZHVsZSk7CisgICAgICB9CisKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisKKyAgICByZXR1cm4oMCk7Cit9CisKKyNlbHNlCisjaW5jbHVkZSA8c3RkaW8uaD4KK2ludCBtYWluKGludCBhcmdjIEFUVFJJQlVURV9VTlVTRUQsIGNoYXIgKiphcmd2IEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBwcmludGYoIiVzIDogTW9kdWxlIHN1cHBvcnQgbm90IGNvbXBpbGVkIGluXG4iLCBhcmd2WzBdKTsKKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1NDSEVNQVNfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0UmVhZGVyLmMgYi9saWJ4bWwyLTIuNy43L3Rlc3RSZWFkZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjhlMjZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0UmVhZGVyLmMKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiB0ZXN0U0FYLmMgOiBhIHNtYWxsIHRlc3RlciBwcm9ncmFtIGZvciBwYXJzaW5nIHVzaW5nIHRoZSBTQVggQVBJLgorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKyNpZmRlZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9GQ05UTF9ICisjaW5jbHVkZSA8ZmNudGwuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfVU5JU1REX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RSSU5HX0gKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNlbmRpZgorCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVhZGVyLmg+CisKK3N0YXRpYyBpbnQgZGVidWcgPSAwOworc3RhdGljIGludCBkdW1wID0gMDsKK3N0YXRpYyBpbnQgbm9lbnQgPSAwOworc3RhdGljIGludCBjb3VudCA9IDA7CitzdGF0aWMgaW50IHZhbGlkID0gMDsKK3N0YXRpYyBpbnQgY29uc3VtZWQgPSAwOworCitzdGF0aWMgdm9pZCB1c2FnZShjb25zdCBjaGFyICpwcm9nbmFtZSkgeworICAgIHByaW50ZigiVXNhZ2UgOiAlcyBbb3B0aW9uc10gWE1MZmlsZXMgLi4uXG4iLCBwcm9nbmFtZSk7CisgICAgcHJpbnRmKCJcdFBhcnNlIHRoZSBYTUwgZmlsZXMgdXNpbmcgdGhlIHhtbFRleHRSZWFkZXIgQVBJXG4iKTsKKyAgICBwcmludGYoIlx0IC0tY291bnQ6IGNvdW50IHRoZSBudW1iZXIgb2YgYXR0cmlidXRlIGFuZCBlbGVtZW50c1xuIik7CisgICAgcHJpbnRmKCJcdCAtLXZhbGlkOiB2YWxpZGF0ZSB0aGUgZG9jdW1lbnRcbiIpOworICAgIHByaW50ZigiXHQgLS1jb25zdW1lZDogY291bnQgdGhlIG51bWJlciBvZiBieXRlcyBjb25zdW1lZFxuIik7CisgICAgZXhpdCgxKTsKK30KK3N0YXRpYyBpbnQgZWxlbSwgYXR0cnM7CisKK3N0YXRpYyB2b2lkIHByb2Nlc3NOb2RlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaW50IHR5cGU7CisKKyAgICB0eXBlID0geG1sVGV4dFJlYWRlck5vZGVUeXBlKHJlYWRlcik7CisgICAgaWYgKGNvdW50KSB7CisJaWYgKHR5cGUgPT0gMSkgeworCSAgICBlbGVtKys7CisJICAgIGF0dHJzICs9IHhtbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudChyZWFkZXIpOworCX0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKGNvdW50KSB7CisJZWxlbSA9IDA7CisJYXR0cnMgPSAwOworICAgIH0KKworICAgIHJlYWRlciA9IHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZShmaWxlbmFtZSk7CisgICAgaWYgKHJlYWRlciAhPSBOVUxMKSB7CisJaWYgKHZhbGlkKQorCSAgICB4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcChyZWFkZXIsIFhNTF9QQVJTRVJfVkFMSURBVEUsIDEpOworCisJLyoKKwkgKiBQcm9jZXNzIGFsbCBub2RlcyBpbiBzZXF1ZW5jZQorCSAqLworCXJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcik7CisJd2hpbGUgKHJldCA9PSAxKSB7CisJICAgIHByb2Nlc3NOb2RlKHJlYWRlcik7CisJICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcik7CisJfQorCisJLyoKKwkgKiBEb25lLCBjbGVhbnVwIGFuZCBzdGF0dXMKKwkgKi8KKwlpZiAoY29uc3VtZWQpCisJCXByaW50ZigiJWxkIGJ5dGVzIGNvbnN1bWVkIGJ5IHBhcnNlclxuIiwgeG1sVGV4dFJlYWRlckJ5dGVDb25zdW1lZChyZWFkZXIpKTsKKwl4bWxGcmVlVGV4dFJlYWRlcihyZWFkZXIpOworCWlmIChyZXQgIT0gMCkgeworCSAgICBwcmludGYoIiVzIDogZmFpbGVkIHRvIHBhcnNlXG4iLCBmaWxlbmFtZSk7CisJfSBlbHNlIGlmIChjb3VudCkKKwkgICAgcHJpbnRmKCIlcyA6ICVkIGVsZW1lbnRzLCAlZCBhdHRyaWJ1dGVzXG4iLCBmaWxlbmFtZSwgZWxlbSwgYXR0cnMpOworICAgIH0gZWxzZSB7CisJZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gb3BlbiAlc1xuIiwgZmlsZW5hbWUpOworICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaW50IGk7CisgICAgaW50IGZpbGVzID0gMDsKKworICAgIGlmIChhcmdjIDw9IDEpIHsKKwl1c2FnZShhcmd2WzBdKTsKKwlyZXR1cm4oMSk7CisgICAgfQorICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlYnVnIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWRlYnVnIikpKQorCSAgICBkZWJ1ZysrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZHVtcCIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS1kdW1wIikpKQorCSAgICBkdW1wKys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1jb3VudCIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS1jb3VudCIpKSkKKwkgICAgY291bnQrKzsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWNvbnN1bWVkIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWNvbnN1bWVkIikpKQorCSAgICBjb25zdW1lZCsrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItdmFsaWQiKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tdmFsaWQiKSkpCisJICAgIHZhbGlkKys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1ub2VudCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW5vZW50IikpKQorCSAgICBub2VudCsrOworICAgIH0KKyAgICBpZiAobm9lbnQgIT0gMCkgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKTsKKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworCWlmIChhcmd2W2ldWzBdICE9ICctJykgeworCSAgICBoYW5kbGVGaWxlKGFyZ3ZbaV0pOworCSAgICBmaWxlcyArKzsKKwl9CisgICAgfQorICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisKKyAgICByZXR1cm4oMCk7Cit9CisjZWxzZQoraW50IG1haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHByaW50ZigiJXMgOiB4bWxSZWFkZXIgcGFyc2VyIHN1cHBvcnQgbm90IGNvbXBpbGVkIGluXG4iLCBhcmd2WzBdKTsKKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1JFQURFUl9FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3RSZWdleHAuYyBiL2xpYnhtbDItMi43LjcvdGVzdFJlZ2V4cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNjUzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RSZWdleHAuYwpAQCAtMCwwICsxLDQwMiBAQAorLyoKKyAqIHRlc3RSZWdleHAuYzogc2ltcGxlIG1vZHVsZSBmb3IgdGVzdGluZyByZWd1bGFyIGV4cHJlc3Npb25zCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIERhbmllbCBWZWlsbGFyZCA8dmVpbGxhcmRAcmVkaGF0LmNvbT4KKyAqLworCisjaW5jbHVkZSAibGlieG1sLmgiCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWdleHAuaD4KKworc3RhdGljIGludCByZXBlYXQgPSAwOworc3RhdGljIGludCBkZWJ1ZyA9IDA7CisKK3N0YXRpYyB2b2lkIHRlc3RSZWdleHAoeG1sUmVnZXhwUHRyIGNvbXAsIGNvbnN0IGNoYXIgKnZhbHVlKSB7CisgICAgaW50IHJldDsKKworICAgIHJldCA9IHhtbFJlZ2V4cEV4ZWMoY29tcCwgKGNvbnN0IHhtbENoYXIgKikgdmFsdWUpOworICAgIGlmIChyZXQgPT0gMSkKKwlwcmludGYoIiVzOiBPa1xuIiwgdmFsdWUpOworICAgIGVsc2UgaWYgKHJldCA9PSAwKQorCXByaW50ZigiJXM6IEZhaWxcbiIsIHZhbHVlKTsKKyAgICBlbHNlCisJcHJpbnRmKCIlczogRXJyb3I6ICVkXG4iLCB2YWx1ZSwgcmV0KTsKKyAgICBpZiAocmVwZWF0KSB7CisJaW50IGo7CisJZm9yIChqID0gMDtqIDwgOTk5OTk5O2orKykKKwkgICAgeG1sUmVnZXhwRXhlYyhjb21wLCAoY29uc3QgeG1sQ2hhciAqKSB2YWx1ZSk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAordGVzdFJlZ2V4cEZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxSZWdleHBQdHIgY29tcCA9IE5VTEw7CisgICAgRklMRSAqaW5wdXQ7CisgICAgY2hhciBleHByZXNzaW9uWzUwMDBdOworICAgIGludCBsZW47CisKKyAgICBpbnB1dCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiQ2Fubm90IG9wZW4gJXMgZm9yIHJlYWRpbmdcbiIsIGZpbGVuYW1lKTsKKwlyZXR1cm47CisgICAgfQorICAgIHdoaWxlIChmZ2V0cyhleHByZXNzaW9uLCA0NTAwLCBpbnB1dCkgIT0gTlVMTCkgeworCWxlbiA9IHN0cmxlbihleHByZXNzaW9uKTsKKwlsZW4tLTsKKwl3aGlsZSAoKGxlbiA+PSAwKSAmJiAKKwkgICAgICAgKChleHByZXNzaW9uW2xlbl0gPT0gJ1xuJykgfHwgKGV4cHJlc3Npb25bbGVuXSA9PSAnXHQnKSB8fAorCQkoZXhwcmVzc2lvbltsZW5dID09ICdccicpIHx8IChleHByZXNzaW9uW2xlbl0gPT0gJyAnKSkpIGxlbi0tOworCWV4cHJlc3Npb25bbGVuICsgMV0gPSAwOyAgICAgIAorCWlmIChsZW4gPj0gMCkgeworCSAgICBpZiAoZXhwcmVzc2lvblswXSA9PSAnIycpCisJCWNvbnRpbnVlOworCSAgICBpZiAoKGV4cHJlc3Npb25bMF0gPT0gJz0nKSAmJiAoZXhwcmVzc2lvblsxXSA9PSAnPicpKSB7CisJCWNoYXIgKnBhdHRlcm4gPSAmZXhwcmVzc2lvblsyXTsKKworCQlpZiAoY29tcCAhPSBOVUxMKSB7CisJCSAgICB4bWxSZWdGcmVlUmVnZXhwKGNvbXApOworCQkgICAgY29tcCA9IE5VTEw7CisJCX0KKwkJcHJpbnRmKCJSZWdleHA6ICVzXG4iLCBwYXR0ZXJuKSA7CisJCWNvbXAgPSB4bWxSZWdleHBDb21waWxlKChjb25zdCB4bWxDaGFyICopIHBhdHRlcm4pOworCQlpZiAoY29tcCA9PSBOVUxMKSB7CisJCSAgICBwcmludGYoIiAgIGZhaWxlZCB0byBjb21waWxlXG4iKTsKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0gZWxzZSBpZiAoY29tcCA9PSBOVUxMKSB7CisJCXByaW50ZigiUmVnZXhwOiAlc1xuIiwgZXhwcmVzc2lvbikgOworCQljb21wID0geG1sUmVnZXhwQ29tcGlsZSgoY29uc3QgeG1sQ2hhciAqKSBleHByZXNzaW9uKTsKKwkJaWYgKGNvbXAgPT0gTlVMTCkgeworCQkgICAgcHJpbnRmKCIgICBmYWlsZWQgdG8gY29tcGlsZVxuIik7CisJCSAgICBicmVhazsKKwkJfQorCSAgICB9IGVsc2UgaWYgKGNvbXAgIT0gTlVMTCkgeworCQl0ZXN0UmVnZXhwKGNvbXAsIGV4cHJlc3Npb24pOworCSAgICB9CisJfQorICAgIH0KKyAgICBmY2xvc2UoaW5wdXQpOworICAgIGlmIChjb21wICE9IE5VTEwpCisJeG1sUmVnRnJlZVJlZ2V4cChjb21wKTsKK30KKworI2lmZGVmIExJQlhNTF9FWFBSX0VOQUJMRUQKK3N0YXRpYyB2b2lkCitydW5GaWxlVGVzdCh4bWxFeHBDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgeG1sRXhwTm9kZVB0ciBleHByID0gTlVMTCwgc3ViOworICAgIEZJTEUgKmlucHV0OworICAgIGNoYXIgZXhwcmVzc2lvbls1MDAwXTsKKyAgICBpbnQgbGVuOworCisgICAgaW5wdXQgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkNhbm5vdCBvcGVuICVzIGZvciByZWFkaW5nXG4iLCBmaWxlbmFtZSk7CisJcmV0dXJuOworICAgIH0KKyAgICB3aGlsZSAoZmdldHMoZXhwcmVzc2lvbiwgNDUwMCwgaW5wdXQpICE9IE5VTEwpIHsKKwlsZW4gPSBzdHJsZW4oZXhwcmVzc2lvbik7CisJbGVuLS07CisJd2hpbGUgKChsZW4gPj0gMCkgJiYgCisJICAgICAgICgoZXhwcmVzc2lvbltsZW5dID09ICdcbicpIHx8IChleHByZXNzaW9uW2xlbl0gPT0gJ1x0JykgfHwKKwkJKGV4cHJlc3Npb25bbGVuXSA9PSAnXHInKSB8fCAoZXhwcmVzc2lvbltsZW5dID09ICcgJykpKSBsZW4tLTsKKwlleHByZXNzaW9uW2xlbiArIDFdID0gMDsgICAgICAKKwlpZiAobGVuID49IDApIHsKKwkgICAgaWYgKGV4cHJlc3Npb25bMF0gPT0gJyMnKQorCQljb250aW51ZTsKKwkgICAgaWYgKChleHByZXNzaW9uWzBdID09ICc9JykgJiYgKGV4cHJlc3Npb25bMV0gPT0gJz4nKSkgeworCQljaGFyICpzdHIgPSAmZXhwcmVzc2lvblsyXTsKKworCQlpZiAoZXhwciAhPSBOVUxMKSB7CisJCSAgICB4bWxFeHBGcmVlKGN0eHQsIGV4cHIpOworCQkgICAgaWYgKHhtbEV4cEN0eHROYk5vZGVzKGN0eHQpICE9IDApIAorCQkgICAgICAgIHByaW50ZigiIFBhcnNlL2ZyZWUgb2YgRXhwcmVzc2lvbiBsZWFrZWQgJWRcbiIsCisJCQkgICAgICAgeG1sRXhwQ3R4dE5iTm9kZXMoY3R4dCkpOworCQkgICAgZXhwciA9IE5VTEw7CisJCX0KKwkJcHJpbnRmKCJFeHByZXNzaW9uOiAlc1xuIiwgc3RyKSA7CisJCWV4cHIgPSB4bWxFeHBQYXJzZShjdHh0LCBzdHIpOworCQlpZiAoZXhwciA9PSBOVUxMKSB7CisJCSAgICBwcmludGYoIiAgIHBhcnNpbmcgRmFpbGVkXG4iKTsKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0gZWxzZSBpZiAoZXhwciAhPSBOVUxMKSB7CisJICAgICAgICBpbnQgZXhwZWN0ID0gLTE7CisJCWludCBub2RlczEsIG5vZGVzMjsKKworCQlpZiAoZXhwcmVzc2lvblswXSA9PSAnMCcpCisJCSAgICBleHBlY3QgPSAwOworCQlpZiAoZXhwcmVzc2lvblswXSA9PSAnMScpCisJCSAgICBleHBlY3QgPSAxOworCQlwcmludGYoIlN1YmV4cDogJXMiLCBleHByZXNzaW9uICsgMikgOworCQlub2RlczEgPSB4bWxFeHBDdHh0TmJOb2RlcyhjdHh0KTsKKwkJc3ViID0geG1sRXhwUGFyc2UoY3R4dCwgZXhwcmVzc2lvbiArIDIpOworCQlpZiAoc3ViID09IE5VTEwpIHsKKwkJICAgIHByaW50ZigiICAgcGFyc2luZyBGYWlsZWRcbiIpOworCQkgICAgYnJlYWs7CisJCX0gZWxzZSB7CisJCSAgICBpbnQgcmV0OworCQkgICAgCisJCSAgICBub2RlczIgPSB4bWxFeHBDdHh0TmJOb2RlcyhjdHh0KTsKKwkJICAgIHJldCA9IHhtbEV4cFN1YnN1bWUoY3R4dCwgZXhwciwgc3ViKTsKKworCQkgICAgaWYgKChleHBlY3QgPT0gMSkgJiYgKHJldCA9PSAxKSkgeworCQkJcHJpbnRmKCIgPT4gYWNjZXB0LCBPa1xuIik7CisJCSAgICB9IGVsc2UgaWYgKChleHBlY3QgPT0gMCkgJiYgKHJldCA9PSAwKSkgeworCQkgICAgICAgIHByaW50ZigiID0+IHJlamVjdCwgT2tcbiIpOworCQkgICAgfSBlbHNlIGlmICgoZXhwZWN0ID09IDEpICYmIChyZXQgPT0gMCkpIHsKKwkJCXByaW50ZigiID0+IHJlamVjdCwgRmFpbGVkXG4iKTsKKwkJICAgIH0gZWxzZSBpZiAoKGV4cGVjdCA9PSAwKSAmJiAocmV0ID09IDEpKSB7CisJCQlwcmludGYoIiA9PiBhY2NlcHQsIEZhaWxlZFxuIik7CisJCSAgICB9IGVsc2UgeworCQkgICAgICAgIHByaW50ZigiID0+IGZhaWwgaW50ZXJuYWxseVxuIik7CisJCSAgICB9CisJCSAgICBpZiAoeG1sRXhwQ3R4dE5iTm9kZXMoY3R4dCkgPiBub2RlczIpIHsKKwkJICAgICAgICBwcmludGYoIiBTdWJzdW1lIGxlYWtlZCAlZFxuIiwKKwkJCSAgICAgICB4bWxFeHBDdHh0TmJOb2RlcyhjdHh0KSAtIG5vZGVzMik7CisJCQlub2RlczEgKz0geG1sRXhwQ3R4dE5iTm9kZXMoY3R4dCkgLSBub2RlczI7CisJCSAgICB9CisJCSAgICB4bWxFeHBGcmVlKGN0eHQsIHN1Yik7CisJCSAgICBpZiAoeG1sRXhwQ3R4dE5iTm9kZXMoY3R4dCkgPiBub2RlczEpIHsKKwkJICAgICAgICBwcmludGYoIiBQYXJzZS9mcmVlIGxlYWtlZCAlZFxuIiwKKwkJCSAgICAgICB4bWxFeHBDdHh0TmJOb2RlcyhjdHh0KSAtIG5vZGVzMSk7CisJCSAgICB9CisJCX0KKworCSAgICB9CisJfQorICAgIH0KKyAgICBpZiAoZXhwciAhPSBOVUxMKSB7CisJeG1sRXhwRnJlZShjdHh0LCBleHByKTsKKwlpZiAoeG1sRXhwQ3R4dE5iTm9kZXMoY3R4dCkgIT0gMCkgCisJICAgIHByaW50ZigiIFBhcnNlL2ZyZWUgb2YgRXhwcmVzc2lvbiBsZWFrZWQgJWRcbiIsCisJCSAgIHhtbEV4cEN0eHROYk5vZGVzKGN0eHQpKTsKKyAgICB9CisgICAgZmNsb3NlKGlucHV0KTsKK30KKworc3RhdGljIHZvaWQgCit0ZXN0UmVkdWNlKHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHByLCBjb25zdCBjaGFyICp0c3QpIHsKKyAgICB4bWxCdWZmZXJQdHIgeG1sRXhwQnVmOworICAgIHhtbEV4cE5vZGVQdHIgc3ViLCBkZXJpdjsKKyAgICB4bWxFeHBCdWYgPSB4bWxCdWZmZXJDcmVhdGUoKTsKKworICAgIHN1YiA9IHhtbEV4cFBhcnNlKGN0eHQsIHRzdCk7CisgICAgaWYgKHN1YiA9PSBOVUxMKSB7CisgICAgICAgIHByaW50ZigiU3Vic2V0ICVzIGZhaWxlZCB0byBwYXJzZVxuIiwgdHN0KTsKKwlyZXR1cm47CisgICAgfQorICAgIHhtbEV4cER1bXAoeG1sRXhwQnVmLCBzdWIpOworICAgIHByaW50ZigiU3Vic2V0IHBhcnNlZCBhczogJXNcbiIsCisgICAgICAgICAgIChjb25zdCBjaGFyICopIHhtbEJ1ZmZlckNvbnRlbnQoeG1sRXhwQnVmKSk7CisgICAgZGVyaXYgPSB4bWxFeHBFeHBEZXJpdmUoY3R4dCwgZXhwciwgc3ViKTsKKyAgICBpZiAoZGVyaXYgPT0gTlVMTCkgeworICAgICAgICBwcmludGYoIkRlcml2YXRpb24gbGVkIHRvIGFuIGludGVybmFsIGVycm9yLCByZXBvcnQgdGhpcyAhXG4iKTsKKwlyZXR1cm47CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sQnVmZmVyRW1wdHkoeG1sRXhwQnVmKTsKKwl4bWxFeHBEdW1wKHhtbEV4cEJ1ZiwgZGVyaXYpOworCWlmICh4bWxFeHBJc05pbGxhYmxlKGRlcml2KSkKKwkgICAgcHJpbnRmKCJSZXN1bHRpbmcgbmlsbGFibGUgZGVyaXZhdGlvbjogJXNcbiIsCisJICAgICAgICAgICAoY29uc3QgY2hhciAqKSB4bWxCdWZmZXJDb250ZW50KHhtbEV4cEJ1ZikpOworCWVsc2UKKwkgICAgcHJpbnRmKCJSZXN1bHRpbmcgZGVyaXZhdGlvbjogJXNcbiIsCisJICAgICAgICAgICAoY29uc3QgY2hhciAqKSB4bWxCdWZmZXJDb250ZW50KHhtbEV4cEJ1ZikpOworCXhtbEV4cEZyZWUoY3R4dCwgZGVyaXYpOworICAgIH0KKyAgICB4bWxFeHBGcmVlKGN0eHQsIHN1Yik7Cit9CisKK3N0YXRpYyB2b2lkIAorZXhwckRlYnVnKHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHByKSB7CisgICAgeG1sQnVmZmVyUHRyIHhtbEV4cEJ1ZjsKKyAgICB4bWxFeHBOb2RlUHRyIGRlcml2OworICAgIGNvbnN0IGNoYXIgKmxpc3RbNDBdOworICAgIGludCByZXQ7CisKKyAgICB4bWxFeHBCdWYgPSB4bWxCdWZmZXJDcmVhdGUoKTsKKworICAgIGlmIChleHByID09IE5VTEwpIHsKKyAgICAgICAgcHJpbnRmKCJGYWlsZWQgdG8gcGFyc2VcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgeG1sRXhwRHVtcCh4bWxFeHBCdWYsIGV4cHIpOworICAgIHByaW50ZigiUGFyc2VkIGFzOiAlc1xuIiwgKGNvbnN0IGNoYXIgKikgeG1sQnVmZmVyQ29udGVudCh4bWxFeHBCdWYpKTsKKyAgICBwcmludGYoIk1heCB0b2tlbiBpbnB1dCA9ICVkXG4iLCB4bWxFeHBNYXhUb2tlbihleHByKSk7CisgICAgaWYgKHhtbEV4cElzTmlsbGFibGUoZXhwcikgPT0gMSkKKwlwcmludGYoIklzIG5pbGxhYmxlXG4iKTsKKyAgICByZXQgPSB4bWxFeHBHZXRMYW5ndWFnZShjdHh0LCBleHByLCAoY29uc3QgeG1sQ2hhciAqKikgJmxpc3RbMF0sIDQwKTsKKyAgICBpZiAocmV0IDwgMCkKKwlwcmludGYoIkZhaWxlZCB0byBnZXQgbGlzdDogJWRcbiIsIHJldCk7CisgICAgZWxzZSB7CisJaW50IGk7CisKKwlwcmludGYoIkxhbmd1YWdlIGhhcyAlZCBzdHJpbmdzLCB0ZXN0aW5nIHN0cmluZyBkZXJpdmF0aW9uc1xuIiwgcmV0KTsKKwlmb3IgKGkgPSAwO2kgPCByZXQ7aSsrKSB7CisJICAgIGRlcml2ID0geG1sRXhwU3RyaW5nRGVyaXZlKGN0eHQsIGV4cHIsIEJBRF9DQVNUIGxpc3RbaV0sIC0xKTsKKwkgICAgaWYgKGRlcml2ID09IE5VTEwpIHsKKwkJcHJpbnRmKCIgICVzIC0+IGRlcml2YXRpb24gZmFpbGVkXG4iLCBsaXN0W2ldKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sQnVmZmVyRW1wdHkoeG1sRXhwQnVmKTsKKwkJeG1sRXhwRHVtcCh4bWxFeHBCdWYsIGRlcml2KTsKKwkJcHJpbnRmKCIgICVzIC0+ICVzXG4iLCBsaXN0W2ldLAorCQkgICAgICAgKGNvbnN0IGNoYXIgKikgeG1sQnVmZmVyQ29udGVudCh4bWxFeHBCdWYpKTsKKwkgICAgfQorCSAgICB4bWxFeHBGcmVlKGN0eHQsIGRlcml2KTsKKwl9CisgICAgfQorICAgIHhtbEJ1ZmZlckZyZWUoeG1sRXhwQnVmKTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZCB1c2FnZShjb25zdCBjaGFyICpuYW1lKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTogJXMgW2ZsYWdzXVxuIiwgbmFtZSk7CisgICAgZnByaW50ZihzdGRlcnIsICJUZXN0aW5nIHRvb2wgZm9yIGxpYnhtbDIgc3RyaW5nIGFuZCBwYXR0ZXJuIHJlZ2V4cHNcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAgLS1kZWJ1Zzogc3dpdGNoIG9uIGRlYnVnZ2luZ1xuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgICAtLXJlcGVhdDogbG9vcCBvbiB0aGUgb3BlcmF0aW9uXG4iKTsKKyNpZmRlZiBMSUJYTUxfRVhQUl9FTkFCTEVECisgICAgZnByaW50ZihzdGRlcnIsICIgICAtLWV4cHI6IHRlc3QgeG1sRXhwIGFuZCBub3QgeG1sUmVnZXhwXG4iKTsKKyNlbmRpZgorICAgIGZwcmludGYoc3RkZXJyLCAiICAgLS1pbnB1dCBmaWxlbmFtZTogdXNlIHRoZSBnaXZlbiBmaWxlbmFtZSBmb3IgcmVnZXhwXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgIC0taW5wdXQgZmlsZW5hbWU6IHVzZSB0aGUgZ2l2ZW4gZmlsZW5hbWUgZm9yIGV4cFxuIik7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIHhtbFJlZ2V4cFB0ciBjb21wID0gTlVMTDsKKyNpZmRlZiBMSUJYTUxfRVhQUl9FTkFCTEVECisgICAgeG1sRXhwTm9kZVB0ciBleHByID0gTlVMTDsKKyAgICBpbnQgdXNlX2V4cCA9IDA7CisgICAgeG1sRXhwQ3R4dFB0ciBjdHh0ID0gTlVMTDsKKyNlbmRpZgorICAgIGNvbnN0IGNoYXIgKnBhdHRlcm4gPSBOVUxMOworICAgIGNoYXIgKmZpbGVuYW1lID0gTlVMTDsKKyAgICBpbnQgaTsKKworICAgIHhtbEluaXRNZW1vcnkoKTsKKworICAgIGlmIChhcmdjIDw9IDEpIHsKKwl1c2FnZShhcmd2WzBdKTsKKwlyZXR1cm4oMSk7CisgICAgfQorICAgIGZvciAoaSA9IDE7IGkgPCBhcmdjIDsgaSsrKSB7CisJaWYgKCFzdHJjbXAoYXJndltpXSwgIi0iKSkKKwkgICAgYnJlYWs7CisKKwlpZiAoYXJndltpXVswXSAhPSAnLScpCisJICAgIGNvbnRpbnVlOworCWlmICghc3RyY21wKGFyZ3ZbaV0sICItLSIpKQorCSAgICBicmVhazsKKworCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlYnVnIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWRlYnVnIikpKSB7CisJICAgIGRlYnVnKys7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXJlcGVhdCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXJlcGVhdCIpKSkgeworCSAgICByZXBlYXQrKzsKKyNpZmRlZiBMSUJYTUxfRVhQUl9FTkFCTEVECisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWV4cHIiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1leHByIikpKSB7CisJICAgIHVzZV9leHArKzsKKyNlbmRpZgorCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1pIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItZiIpKSB8fAorCQkgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1pbnB1dCIpKSkKKwkgICAgZmlsZW5hbWUgPSBhcmd2WysraV07CisgICAgICAgIGVsc2UgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gb3B0aW9uICVzXG4iLCBhcmd2W2ldKTsKKwkgICAgdXNhZ2UoYXJndlswXSk7CisJfQorICAgIH0KKworI2lmZGVmIExJQlhNTF9FWFBSX0VOQUJMRUQKKyAgICBpZiAodXNlX2V4cCkKKwljdHh0ID0geG1sRXhwTmV3Q3R4dCgwLCBOVUxMKTsKKyNlbmRpZgorCisgICAgaWYgKGZpbGVuYW1lICE9IE5VTEwpIHsKKyNpZmRlZiBMSUJYTUxfRVhQUl9FTkFCTEVECisgICAgICAgIGlmICh1c2VfZXhwKQorCSAgICBydW5GaWxlVGVzdChjdHh0LCBmaWxlbmFtZSk7CisJZWxzZQorI2VuZGlmCisJICAgIHRlc3RSZWdleHBGaWxlKGZpbGVuYW1lKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnQgIGRhdGEgPSAwOworI2lmZGVmIExJQlhNTF9FWFBSX0VOQUJMRUQKKworICAgICAgICBpZiAodXNlX2V4cCkgeworCSAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworCSAgICAgICAgaWYgKHN0cmNtcChhcmd2W2ldLCAiLS0iKSA9PSAwKQorCQkgICAgZGF0YSA9IDE7CisJCWVsc2UgaWYgKChhcmd2W2ldWzBdICE9ICctJykgfHwgKHN0cmNtcChhcmd2W2ldLCAiLSIpID09IDApIHx8CisJCSAgICAoZGF0YSA9PSAxKSkgeworCQkgICAgaWYgKHBhdHRlcm4gPT0gTlVMTCkgeworCQkJcGF0dGVybiA9IGFyZ3ZbaV07CisJCQlwcmludGYoIlRlc3RpbmcgZXhwciAlczpcbiIsIHBhdHRlcm4pOworCQkJZXhwciA9IHhtbEV4cFBhcnNlKGN0eHQsIHBhdHRlcm4pOworCQkJaWYgKGV4cHIgPT0gTlVMTCkgeworCQkJICAgIHByaW50ZigiICAgZmFpbGVkIHRvIGNvbXBpbGVcbiIpOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJaWYgKGRlYnVnKSB7CisJCQkgICAgZXhwckRlYnVnKGN0eHQsIGV4cHIpOworCQkJfQorCQkgICAgfSBlbHNlIHsKKwkJCXRlc3RSZWR1Y2UoY3R4dCwgZXhwciwgYXJndltpXSk7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBpZiAoZXhwciAhPSBOVUxMKSB7CisJCXhtbEV4cEZyZWUoY3R4dCwgZXhwcik7CisJCWV4cHIgPSBOVUxMOworCSAgICB9CisJfSBlbHNlCisjZW5kaWYKKyAgICAgICAgeworCSAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworCSAgICAgICAgaWYgKHN0cmNtcChhcmd2W2ldLCAiLS0iKSA9PSAwKQorCQkgICAgZGF0YSA9IDE7CisJCWVsc2UgaWYgKChhcmd2W2ldWzBdICE9ICctJykgfHwgKHN0cmNtcChhcmd2W2ldLCAiLSIpID09IDApIHx8CisJCSAgICAgICAgIChkYXRhID09IDEpKSB7CisJCSAgICBpZiAocGF0dGVybiA9PSBOVUxMKSB7CisJCQlwYXR0ZXJuID0gYXJndltpXTsKKwkJCXByaW50ZigiVGVzdGluZyAlczpcbiIsIHBhdHRlcm4pOworCQkJY29tcCA9IHhtbFJlZ2V4cENvbXBpbGUoKGNvbnN0IHhtbENoYXIgKikgcGF0dGVybik7CisJCQlpZiAoY29tcCA9PSBOVUxMKSB7CisJCQkgICAgcHJpbnRmKCIgICBmYWlsZWQgdG8gY29tcGlsZVxuIik7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCQlpZiAoZGVidWcpCisJCQkgICAgeG1sUmVnZXhwUHJpbnQoc3Rkb3V0LCBjb21wKTsKKwkJICAgIH0gZWxzZSB7CisJCQl0ZXN0UmVnZXhwKGNvbXAsIGFyZ3ZbaV0pOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgICAgaWYgKGNvbXAgIT0gTlVMTCkKKwkJeG1sUmVnRnJlZVJlZ2V4cChjb21wKTsKKyAgICAgICAgfQorICAgIH0KKyNpZmRlZiBMSUJYTUxfRVhQUl9FTkFCTEVECisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCXByaW50ZigiT3BzOiAlZCBub2RlcywgJWQgY29uc1xuIiwKKwkgICAgICAgeG1sRXhwQ3R4dE5iTm9kZXMoY3R4dCksIHhtbEV4cEN0eHROYkNvbnMoY3R4dCkpOworCXhtbEV4cEZyZWVDdHh0KGN0eHQpOworICAgIH0KKyNlbmRpZgorICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuKDApOworfQorCisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CitpbnQgbWFpbihpbnQgYXJnYyBBVFRSSUJVVEVfVU5VU0VELCBjaGFyICoqYXJndiBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcHJpbnRmKCIlcyA6IFJlZ2V4cCBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIiwgYXJndlswXSk7CisgICAgcmV0dXJuKDApOworfQorI2VuZGlmIC8qIExJQlhNTF9SRUdFWFBfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0UmVsYXguYyBiL2xpYnhtbDItMi43LjcvdGVzdFJlbGF4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE4YjNjMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdFJlbGF4LmMKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiB0ZXN0UmVsYXguYyA6IGEgc21hbGwgdGVzdGVyIHByb2dyYW0gZm9yIFJlbGF4TkcgdmFsaWRhdGlvbgorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBEYW5pZWwuVmVpbGxhcmRAdzMub3JnCisgKi8KKworI2luY2x1ZGUgImxpYnhtbC5oIgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKworI2luY2x1ZGUgPGxpYnhtbC94bWx2ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKworCisjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkNOVExfSAorI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLyogc2VlbXMgbmVlZGVkIGZvciBTb2xhcmlzICovCisjaWZuZGVmIE1BUF9GQUlMRUQKKyNkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQgKikgLTEpCisjZW5kaWYKKyNlbmRpZgorCisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9kZWJ1Z1hNTC5oPgorI2luY2x1ZGUgPGxpYnhtbC9yZWxheG5nLmg+CisKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorc3RhdGljIGludCBkZWJ1ZyA9IDA7CisjZW5kaWYKK3N0YXRpYyBpbnQgbm9vdXQgPSAwOworc3RhdGljIGludCB0cmVlID0gMDsKKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKK3N0YXRpYyBpbnQgbWVtb3J5ID0gMDsKKyNlbmRpZgorCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIGludCBpOworICAgIGludCBmaWxlcyA9IDA7CisgICAgeG1sUmVsYXhOR1B0ciBzY2hlbWEgPSBOVUxMOworCisgICAgZm9yIChpID0gMTsgaSA8IGFyZ2MgOyBpKyspIHsKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlYnVnIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWRlYnVnIikpKQorCSAgICBkZWJ1ZysrOworCWVsc2UKKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX01NQU5fSAorCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW1lbW9yeSIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS1tZW1vcnkiKSkpIHsKKwkgICAgbWVtb3J5Kys7CisgICAgICAgIH0gZWxzZQorI2VuZGlmCisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbm9vdXQiKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9vdXQiKSkpIHsKKwkgICAgbm9vdXQrKzsKKyAgICAgICAgfSBlbHNlCisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItdHJlZSIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS10cmVlIikpKSB7CisJICAgIHRyZWUrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICB4bWxMaW5lTnVtYmVyc0RlZmF1bHQoMSk7CisgICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKTsKKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworCWlmIChhcmd2W2ldWzBdICE9ICctJykgeworCSAgICBpZiAoc2NoZW1hID09IE5VTEwpIHsKKwkJeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dDsKKworI2lmZGVmIEhBVkVfU1lTX01NQU5fSAorCQlpZiAobWVtb3J5KSB7CisJCSAgICBpbnQgZmQ7CisJCSAgICBzdHJ1Y3Qgc3RhdCBpbmZvOworCQkgICAgY29uc3QgY2hhciAqYmFzZTsKKwkJICAgIGlmIChzdGF0KGFyZ3ZbaV0sICZpbmZvKSA8IDApIAorCQkJYnJlYWs7CisJCSAgICBpZiAoKGZkID0gb3Blbihhcmd2W2ldLCBPX1JET05MWSkpIDwgMCkKKwkJCWJyZWFrOworCQkgICAgYmFzZSA9IG1tYXAoTlVMTCwgaW5mby5zdF9zaXplLCBQUk9UX1JFQUQsCisJCQkgICAgICAgIE1BUF9TSEFSRUQsIGZkLCAwKSA7CisJCSAgICBpZiAoYmFzZSA9PSAodm9pZCAqKSBNQVBfRkFJTEVEKQorCQkJYnJlYWs7CisKKwkJICAgIGN0eHQgPSB4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCgoY2hhciAqKWJhc2UsaW5mby5zdF9zaXplKTsKKworCQkgICAgeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyhjdHh0LAorCQkJICAgICh4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGYsCisJCQkgICAgKHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jKSBmcHJpbnRmLAorCQkJICAgIHN0ZGVycik7CisJCSAgICBzY2hlbWEgPSB4bWxSZWxheE5HUGFyc2UoY3R4dCk7CisJCSAgICB4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJCSAgICBtdW5tYXAoKGNoYXIgKikgYmFzZSwgaW5mby5zdF9zaXplKTsKKwkJfSBlbHNlCisjZW5kaWYKKwkJeworCQkgICAgY3R4dCA9IHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0KGFyZ3ZbaV0pOworCQkgICAgeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyhjdHh0LAorCQkJICAgICh4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGYsCisJCQkgICAgKHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jKSBmcHJpbnRmLAorCQkJICAgIHN0ZGVycik7CisJCSAgICBzY2hlbWEgPSB4bWxSZWxheE5HUGFyc2UoY3R4dCk7CisJCSAgICB4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJCX0KKwkJaWYgKHNjaGVtYSA9PSBOVUxMKSB7CisJCSAgICBwcmludGYoIlJlbGF4LU5HIHNjaGVtYSAlcyBmYWlsZWQgdG8gY29tcGlsZVxuIiwgYXJndltpXSk7CisJCSAgICBmaWxlcyA9IC0xOworCQkgICAgYnJlYWs7CisJCX0KKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorCQlpZiAoZGVidWcpCisJCSAgICB4bWxSZWxheE5HRHVtcChzdGRvdXQsIHNjaGVtYSk7CisjZW5kaWYKKwkJaWYgKHRyZWUpCisJCSAgICB4bWxSZWxheE5HRHVtcFRyZWUoc3Rkb3V0LCBzY2hlbWEpOworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCSAgICB9IGVsc2UgeworCQl4bWxEb2NQdHIgZG9jOworCisJCWRvYyA9IHhtbFJlYWRGaWxlKGFyZ3ZbaV0sTlVMTCwwKTsKKworCQlpZiAoZG9jID09IE5VTEwpIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IHBhcnNlICVzXG4iLCBhcmd2W2ldKTsKKwkJfSBlbHNlIHsKKwkJICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dDsKKwkJICAgIGludCByZXQ7CisKKwkJICAgIGN0eHQgPSB4bWxSZWxheE5HTmV3VmFsaWRDdHh0KHNjaGVtYSk7CisJCSAgICB4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoY3R4dCwKKwkJCSAgICAoeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jKSBmcHJpbnRmLAorCQkJICAgICh4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYykgZnByaW50ZiwKKwkJCSAgICBzdGRlcnIpOworCQkgICAgcmV0ID0geG1sUmVsYXhOR1ZhbGlkYXRlRG9jKGN0eHQsIGRvYyk7CisJCSAgICBpZiAocmV0ID09IDApIHsKKwkJCXByaW50ZigiJXMgdmFsaWRhdGVzXG4iLCBhcmd2W2ldKTsKKwkJICAgIH0gZWxzZSBpZiAocmV0ID4gMCkgeworCQkJcHJpbnRmKCIlcyBmYWlscyB0byB2YWxpZGF0ZVxuIiwgYXJndltpXSk7CisJCSAgICB9IGVsc2UgeworCQkJcHJpbnRmKCIlcyB2YWxpZGF0aW9uIGdlbmVyYXRlZCBhbiBpbnRlcm5hbCBlcnJvclxuIiwKKwkJCSAgICAgICBhcmd2W2ldKTsKKwkJICAgIH0KKwkJICAgIHhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KGN0eHQpOworCQkgICAgeG1sRnJlZURvYyhkb2MpOworCQl9CisJICAgIH0KKwkgICAgZmlsZXMgKys7CisJfQorICAgIH0KKyAgICBpZiAoc2NoZW1hICE9IE5VTEwpCisJeG1sUmVsYXhOR0ZyZWUoc2NoZW1hKTsKKyAgICBpZiAoZmlsZXMgPT0gMCkgeworCXByaW50ZigiVXNhZ2UgOiAlcyBbLS1kZWJ1Z10gWy0tbm9vdXRdIHNjaGVtYXMgWE1MZmlsZXMgLi4uXG4iLAorCSAgICAgICBhcmd2WzBdKTsKKwlwcmludGYoIlx0UGFyc2UgdGhlIEhUTUwgZmlsZXMgYW5kIG91dHB1dCB0aGUgcmVzdWx0IG9mIHRoZSBwYXJzaW5nXG4iKTsKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorCXByaW50ZigiXHQtLWRlYnVnIDogZHVtcCBhIGRlYnVnIHRyZWUgb2YgdGhlIGluLW1lbW9yeSBkb2N1bWVudFxuIik7CisjZW5kaWYKKwlwcmludGYoIlx0LS1ub291dCA6IGRvIG5vdCBwcmludCB0aGUgcmVzdWx0XG4iKTsKKwlwcmludGYoIlx0LS10cmVlIDogcHJpbnQgdGhlIGludGVybWVkaWF0ZSBSZWxheC1ORyBkb2N1bWVudCB0cmVlXG4iKTsKKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKKwlwcmludGYoIlx0LS1tZW1vcnkgOiB0ZXN0IHRoZSBzY2hlbWFzIGluIG1lbW9yeSBwYXJzaW5nXG4iKTsKKyNlbmRpZgorICAgIH0KKyAgICB4bWxSZWxheE5HQ2xlYW51cFR5cGVzKCk7CisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIHhtbE1lbW9yeUR1bXAoKTsKKworICAgIHJldHVybigwKTsKK30KKworI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgoraW50IG1haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHByaW50ZigiJXMgOiBSZWxheE5HIHN1cHBvcnQgbm90IGNvbXBpbGVkIGluXG4iLCBhcmd2WzBdKTsKKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1NDSEVNQVNfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0U0FYLmMgYi9saWJ4bWwyLTIuNy43L3Rlc3RTQVguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDE2MjY4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0U0FYLmMKQEAgLTAsMCArMSwxMTk4IEBACisvKgorICogdGVzdFNBWC5jIDogYSBzbWFsbCB0ZXN0ZXIgcHJvZ3JhbSBmb3IgcGFyc2luZyB1c2luZyB0aGUgU0FYIEFQSS4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIEhBVkVfU1lTX1RJTUVfSAorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19USU1FQl9ICisjaW5jbHVkZSA8c3lzL3RpbWViLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1RJTUVfSAorI2luY2x1ZGUgPHRpbWUuaD4KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkNOVExfSAorI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NUUklOR19ICisjaW5jbHVkZSA8c3RyaW5nLmg+CisjZW5kaWYKKworCisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPiAvKiBvbmx5IGZvciB4bWxOZXdJbnB1dEZyb21GaWxlKCkgKi8KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9kZWJ1Z1hNTC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKworc3RhdGljIGludCBkZWJ1ZyA9IDA7CitzdGF0aWMgaW50IGNvcHkgPSAwOworc3RhdGljIGludCByZWNvdmVyeSA9IDA7CitzdGF0aWMgaW50IHB1c2ggPSAwOworc3RhdGljIGludCBzcGVlZCA9IDA7CitzdGF0aWMgaW50IG5vZW50ID0gMDsKK3N0YXRpYyBpbnQgcXVpZXQgPSAwOworc3RhdGljIGludCBub251bGwgPSAwOworc3RhdGljIGludCBzYXgyID0gMDsKK3N0YXRpYyBpbnQgcmVwZWF0ID0gMDsKK3N0YXRpYyBpbnQgY2FsbGJhY2tzID0gMDsKK3N0YXRpYyBpbnQgdGltaW5nID0gMDsKKworLyoKKyAqIFRpbWluZyByb3V0aW5lcy4KKyAqLworLyoKKyAqIEludGVybmFsIHRpbWluZyByb3V0aW5lcyB0byByZW1vdmUgdGhlIG5lY2Vzc2l0eSB0byBoYXZlIHVuaXgtc3BlY2lmaWMKKyAqIGZ1bmN0aW9uIGNhbGxzCisgKi8KKworI2lmbmRlZiBIQVZFX0dFVFRJTUVPRkRBWSAKKyNpZmRlZiBIQVZFX1NZU19USU1FQl9ICisjaWZkZWYgSEFWRV9TWVNfVElNRV9ICisjaWZkZWYgSEFWRV9GVElNRQorCitzdGF0aWMgaW50CitteV9nZXR0aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2cCwgdm9pZCAqdHpwKQoreworCXN0cnVjdCB0aW1lYiB0aW1lYnVmZmVyOworCisJZnRpbWUoJnRpbWVidWZmZXIpOworCWlmICh0dnApIHsKKwkJdHZwLT50dl9zZWMgPSB0aW1lYnVmZmVyLnRpbWU7CisJCXR2cC0+dHZfdXNlYyA9IHRpbWVidWZmZXIubWlsbGl0bSAqIDEwMDBMOworCX0KKwlyZXR1cm4gKDApOworfQorI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCisjZGVmaW5lIGdldHRpbWVvZmRheSBteV9nZXR0aW1lb2ZkYXkKKworI2VuZGlmIC8qIEhBVkVfRlRJTUUgKi8KKyNlbmRpZiAvKiBIQVZFX1NZU19USU1FX0ggKi8KKyNlbmRpZiAvKiBIQVZFX1NZU19USU1FQl9IICovCisjZW5kaWYgLyogIUhBVkVfR0VUVElNRU9GREFZICovCisKKyNpZiBkZWZpbmVkKEhBVkVfR0VUVElNRU9GREFZKQorc3RhdGljIHN0cnVjdCB0aW1ldmFsIGJlZ2luLCBlbmQ7CisKKy8qCisgKiBzdGFydFRpbWVyOiBjYWxsIHdoZXJlIHlvdSB3YW50IHRvIHN0YXJ0IHRpbWluZworICovCitzdGF0aWMgdm9pZAorc3RhcnRUaW1lcih2b2lkKQoreworICAgIGdldHRpbWVvZmRheSgmYmVnaW4sIE5VTEwpOworfQorCisvKgorICogZW5kVGltZXI6IGNhbGwgd2hlcmUgeW91IHdhbnQgdG8gc3RvcCB0aW1pbmcgYW5kIHRvIHByaW50IG91dCBhCisgKiAgICAgICAgICAgbWVzc2FnZSBhYm91dCB0aGUgdGltaW5nIHBlcmZvcm1lZDsgZm9ybWF0IGlzIGEgcHJpbnRmCisgKiAgICAgICAgICAgdHlwZSBhcmd1bWVudAorICovCitzdGF0aWMgdm9pZCBYTUxDREVDTAorZW5kVGltZXIoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgICAgbG9uZyBtc2VjOworICAgIHZhX2xpc3QgYXA7CisKKyAgICBnZXR0aW1lb2ZkYXkoJmVuZCwgTlVMTCk7CisgICAgbXNlYyA9IGVuZC50dl9zZWMgLSBiZWdpbi50dl9zZWM7CisgICAgbXNlYyAqPSAxMDAwOworICAgIG1zZWMgKz0gKGVuZC50dl91c2VjIC0gYmVnaW4udHZfdXNlYykgLyAxMDAwOworCisjaWZuZGVmIEhBVkVfU1REQVJHX0gKKyNlcnJvciAiZW5kVGltZXIgcmVxdWlyZWQgc3RkYXJnIGZ1bmN0aW9ucyIKKyNlbmRpZgorICAgIHZhX3N0YXJ0KGFwLCBmbXQpOworICAgIHZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7CisgICAgdmFfZW5kKGFwKTsKKworICAgIGZwcmludGYoc3RkZXJyLCAiIHRvb2sgJWxkIG1zXG4iLCBtc2VjKTsKK30KKyNlbGlmIGRlZmluZWQoSEFWRV9USU1FX0gpCisvKgorICogTm8gZ2V0dGltZW9mZGF5IGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvIG1ha2UgZG8gd2l0aCBjYWxsaW5nIGNsb2NrLgorICogVGhpcyBpcyBvYnZpb3VzbHkgbGVzcyBhY2N1cmF0ZSwgYnV0IHRoZXJlJ3MgbGl0dGxlIHdlIGNhbiBkbyBhYm91dAorICogdGhhdC4KKyAqLworI2lmbmRlZiBDTE9DS1NfUEVSX1NFQworI2RlZmluZSBDTE9DS1NfUEVSX1NFQyAxMDAKKyNlbmRpZgorCitzdGF0aWMgY2xvY2tfdCBiZWdpbiwgZW5kOworc3RhdGljIHZvaWQKK3N0YXJ0VGltZXIodm9pZCkKK3sKKyAgICBiZWdpbiA9IGNsb2NrKCk7Cit9CitzdGF0aWMgdm9pZCBYTUxDREVDTAorZW5kVGltZXIoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgICAgbG9uZyBtc2VjOworICAgIHZhX2xpc3QgYXA7CisKKyAgICBlbmQgPSBjbG9jaygpOworICAgIG1zZWMgPSAoKGVuZCAtIGJlZ2luKSAqIDEwMDApIC8gQ0xPQ0tTX1BFUl9TRUM7CisKKyNpZm5kZWYgSEFWRV9TVERBUkdfSAorI2Vycm9yICJlbmRUaW1lciByZXF1aXJlZCBzdGRhcmcgZnVuY3Rpb25zIgorI2VuZGlmCisgICAgdmFfc3RhcnQoYXAsIGZtdCk7CisgICAgdmZwcmludGYoc3RkZXJyLCBmbXQsIGFwKTsKKyAgICB2YV9lbmQoYXApOworICAgIGZwcmludGYoc3RkZXJyLCAiIHRvb2sgJWxkIG1zXG4iLCBtc2VjKTsKK30KKyNlbHNlCisKKy8qCisgKiBXZSBkb24ndCBoYXZlIGEgZ2V0dGltZW9mZGF5IG9yIHRpbWUuaCwgc28gd2UganVzdCBkb24ndCBkbyB0aW1pbmcKKyAqLworc3RhdGljIHZvaWQKK3N0YXJ0VGltZXIodm9pZCkKK3sKKyAgICAvKgorICAgICAqIERvIG5vdGhpbmcKKyAgICAgKi8KK30KK3N0YXRpYyB2b2lkIFhNTENERUNMCitlbmRUaW1lcihjaGFyICpmb3JtYXQsIC4uLikKK3sKKyAgICAvKgorICAgICAqIFdlIGNhbm5vdCBkbyBhbnl0aGluZyBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSB0aW1pbmcgZnVuY3Rpb24KKyAgICAgKi8KKyNpZmRlZiBIQVZFX1NUREFSR19ICisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisgICAgdmZwcmludGYoc3RkZXJyLCBmb3JtYXQsIGFwKTsKKyAgICB2YV9lbmQoYXApOworICAgIGZwcmludGYoc3RkZXJyLCAiIHdhcyBub3QgdGltZWRcbiIsIG1zZWMpOworI2Vsc2UKKyAgICAvKiBXZSBkb24ndCBoYXZlIGdldHRpbWVvZmRheSwgdGltZSBvciBzdGRhcmcuaCwgd2hhdCBjcmF6eSB3b3JsZCBpcworICAgICAqIHRoaXMgPyEKKyAgICAgKi8KKyNlbmRpZgorfQorI2VuZGlmCisKKy8qCisgKiBlbXB0eSBTQVggYmxvY2sKKyAqLworc3RhdGljIHhtbFNBWEhhbmRsZXIgZW1wdHlTQVhIYW5kbGVyU3RydWN0ID0geworICAgIE5VTEwsIC8qIGludGVybmFsU3Vic2V0ICovCisgICAgTlVMTCwgLyogaXNTdGFuZGFsb25lICovCisgICAgTlVMTCwgLyogaGFzSW50ZXJuYWxTdWJzZXQgKi8KKyAgICBOVUxMLCAvKiBoYXNFeHRlcm5hbFN1YnNldCAqLworICAgIE5VTEwsIC8qIHJlc29sdmVFbnRpdHkgKi8KKyAgICBOVUxMLCAvKiBnZXRFbnRpdHkgKi8KKyAgICBOVUxMLCAvKiBlbnRpdHlEZWNsICovCisgICAgTlVMTCwgLyogbm90YXRpb25EZWNsICovCisgICAgTlVMTCwgLyogYXR0cmlidXRlRGVjbCAqLworICAgIE5VTEwsIC8qIGVsZW1lbnREZWNsICovCisgICAgTlVMTCwgLyogdW5wYXJzZWRFbnRpdHlEZWNsICovCisgICAgTlVMTCwgLyogc2V0RG9jdW1lbnRMb2NhdG9yICovCisgICAgTlVMTCwgLyogc3RhcnREb2N1bWVudCAqLworICAgIE5VTEwsIC8qIGVuZERvY3VtZW50ICovCisgICAgTlVMTCwgLyogc3RhcnRFbGVtZW50ICovCisgICAgTlVMTCwgLyogZW5kRWxlbWVudCAqLworICAgIE5VTEwsIC8qIHJlZmVyZW5jZSAqLworICAgIE5VTEwsIC8qIGNoYXJhY3RlcnMgKi8KKyAgICBOVUxMLCAvKiBpZ25vcmFibGVXaGl0ZXNwYWNlICovCisgICAgTlVMTCwgLyogcHJvY2Vzc2luZ0luc3RydWN0aW9uICovCisgICAgTlVMTCwgLyogY29tbWVudCAqLworICAgIE5VTEwsIC8qIHhtbFBhcnNlcldhcm5pbmcgKi8KKyAgICBOVUxMLCAvKiB4bWxQYXJzZXJFcnJvciAqLworICAgIE5VTEwsIC8qIHhtbFBhcnNlckVycm9yICovCisgICAgTlVMTCwgLyogZ2V0UGFyYW1ldGVyRW50aXR5ICovCisgICAgTlVMTCwgLyogY2RhdGFCbG9jazsgKi8KKyAgICBOVUxMLCAvKiBleHRlcm5hbFN1YnNldDsgKi8KKyAgICAxLAorICAgIE5VTEwsCisgICAgTlVMTCwgLyogc3RhcnRFbGVtZW50TnMgKi8KKyAgICBOVUxMLCAvKiBlbmRFbGVtZW50TnMgKi8KKyAgICBOVUxMICAvKiB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jICovCit9OworCitzdGF0aWMgeG1sU0FYSGFuZGxlclB0ciBlbXB0eVNBWEhhbmRsZXIgPSAmZW1wdHlTQVhIYW5kbGVyU3RydWN0OworZXh0ZXJuIHhtbFNBWEhhbmRsZXJQdHIgZGVidWdTQVhIYW5kbGVyOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJCURlYnVnIEhhbmRsZXJzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBpc1N0YW5kYWxvbmVEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogSXMgdGhpcyBkb2N1bWVudCB0YWdnZWQgc3RhbmRhbG9uZSA/CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworc3RhdGljIGludAoraXNTdGFuZGFsb25lRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybigwKTsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5pc1N0YW5kYWxvbmUoKVxuIik7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGhhc0ludGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gaW50ZXJuYWwgc3Vic2V0CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworc3RhdGljIGludAoraGFzSW50ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuKDApOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmhhc0ludGVybmFsU3Vic2V0KClcbiIpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiBoYXNFeHRlcm5hbFN1YnNldERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBEb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGV4dGVybmFsIHN1YnNldAorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlCisgKi8KK3N0YXRpYyBpbnQKK2hhc0V4dGVybmFsU3Vic2V0RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybigwKTsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5oYXNFeHRlcm5hbFN1YnNldCgpXG4iKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogaW50ZXJuYWxTdWJzZXREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogRG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBpbnRlcm5hbCBzdWJzZXQKKyAqLworc3RhdGljIHZvaWQKK2ludGVybmFsU3Vic2V0RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICAgIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIgKlN5c3RlbUlEKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguaW50ZXJuYWxTdWJzZXQoJXMsIiwgbmFtZSk7CisgICAgaWYgKEV4dGVybmFsSUQgPT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiAsIik7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiICVzLCIsIEV4dGVybmFsSUQpOworICAgIGlmIChTeXN0ZW1JRCA9PSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiIClcbiIpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIiAlcylcbiIsIFN5c3RlbUlEKTsKK30KKworLyoqCisgKiBleHRlcm5hbFN1YnNldERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBEb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGV4dGVybmFsIHN1YnNldAorICovCitzdGF0aWMgdm9pZAorZXh0ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5leHRlcm5hbFN1YnNldCglcywiLCBuYW1lKTsKKyAgICBpZiAoRXh0ZXJuYWxJRCA9PSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiICwiKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIgJXMsIiwgRXh0ZXJuYWxJRCk7CisgICAgaWYgKFN5c3RlbUlEID09IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIgKVxuIik7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiICVzKVxuIiwgU3lzdGVtSUQpOworfQorCisvKioKKyAqIHJlc29sdmVFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqCisgKiBTcGVjaWFsIGVudGl0eSByZXNvbHZlciwgYmV0dGVyIGxlZnQgdG8gdGhlIHBhcnNlciwgaXQgaGFzCisgKiBtb3JlIGNvbnRleHQgdGhhbiB0aGUgYXBwbGljYXRpb24gbGF5ZXIuCisgKiBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgaXMgdG8gTk9UIHJlc29sdmUgdGhlIGVudGl0aWVzLCBpbiB0aGF0IGNhc2UKKyAqIHRoZSBFTlRJVFlfUkVGIG5vZGVzIGFyZSBidWlsdCBpbiB0aGUgc3RydWN0dXJlIChhbmQgdGhlIHBhcmFtZXRlcgorICogdmFsdWVzKS4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxQYXJzZXJJbnB1dFB0ciBpZiBpbmxpbmVkIG9yIE5VTEwgZm9yIERPTSBiZWhhdmlvdXIuCisgKi8KK3N0YXRpYyB4bWxQYXJzZXJJbnB1dFB0cgorcmVzb2x2ZUVudGl0eURlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybihOVUxMKTsKKyAgICAvKiB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OyAqLworCisgICAgCisgICAgZnByaW50ZihzdGRvdXQsICJTQVgucmVzb2x2ZUVudGl0eSgiKTsKKyAgICBpZiAocHVibGljSWQgIT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiVzIiwgKGNoYXIgKilwdWJsaWNJZCk7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiICIpOworICAgIGlmIChzeXN0ZW1JZCAhPSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiLCAlcylcbiIsIChjaGFyICopc3lzdGVtSWQpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIiwgKVxuIik7CisvKioqKioqKioqCisgICAgaWYgKHN5c3RlbUlkICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuKHhtbE5ld0lucHV0RnJvbUZpbGUoY3R4dCwgKGNoYXIgKikgc3lzdGVtSWQpKTsKKyAgICB9CisgKioqKioqKioqLworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiBnZXRFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogVGhlIGVudGl0eSBuYW1lCisgKgorICogR2V0IGFuIGVudGl0eSBieSBuYW1lCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIgaWYgaW5saW5lZCBvciBOVUxMIGZvciBET00gYmVoYXZpb3VyLgorICovCitzdGF0aWMgeG1sRW50aXR5UHRyCitnZXRFbnRpdHlEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuKE5VTEwpOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmdldEVudGl0eSglcylcbiIsIG5hbWUpOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiBnZXRQYXJhbWV0ZXJFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogVGhlIGVudGl0eSBuYW1lCisgKgorICogR2V0IGEgcGFyYW1ldGVyIGVudGl0eSBieSBuYW1lCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIKKyAqLworc3RhdGljIHhtbEVudGl0eVB0cgorZ2V0UGFyYW1ldGVyRW50aXR5RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybihOVUxMKTsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5nZXRQYXJhbWV0ZXJFbnRpdHkoJXMpXG4iLCBuYW1lKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKworLyoqCisgKiBlbnRpdHlEZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgZW50aXR5IG5hbWUgCisgKiBAdHlwZTogIHRoZSBlbnRpdHkgdHlwZSAKKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICogQGNvbnRlbnQ6IHRoZSBlbnRpdHkgdmFsdWUgKHdpdGhvdXQgcHJvY2Vzc2luZykuCisgKgorICogQW4gZW50aXR5IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkCisgKi8KK3N0YXRpYyB2b2lkCitlbnRpdHlEZWNsRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGludCB0eXBlLAorICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCwgeG1sQ2hhciAqY29udGVudCkKK3sKK2NvbnN0IHhtbENoYXIgKm51bGxzdHIgPSBCQURfQ0FTVCAiKG51bGwpIjsKKyAgICAvKiBub3QgYWxsIGxpYnJhcmllcyBoYW5kbGUgcHJpbnRpbmcgbnVsbCBwb2ludGVycyBuaWNlbHkgKi8KKyAgICBpZiAocHVibGljSWQgPT0gTlVMTCkKKyAgICAgICAgcHVibGljSWQgPSBudWxsc3RyOworICAgIGlmIChzeXN0ZW1JZCA9PSBOVUxMKQorICAgICAgICBzeXN0ZW1JZCA9IG51bGxzdHI7CisgICAgaWYgKGNvbnRlbnQgPT0gTlVMTCkKKyAgICAgICAgY29udGVudCA9ICh4bWxDaGFyICopbnVsbHN0cjsKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmVudGl0eURlY2woJXMsICVkLCAlcywgJXMsICVzKVxuIiwKKyAgICAgICAgICAgIG5hbWUsIHR5cGUsIHB1YmxpY0lkLCBzeXN0ZW1JZCwgY29udGVudCk7Cit9CisKKy8qKgorICogYXR0cmlidXRlRGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lIAorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUgCisgKgorICogQW4gYXR0cmlidXRlIGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkCisgKi8KK3N0YXRpYyB2b2lkCithdHRyaWJ1dGVEZWNsRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKiBlbGVtLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLCBpbnQgdHlwZSwgaW50IGRlZiwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogZGVmYXVsdFZhbHVlLCB4bWxFbnVtZXJhdGlvblB0ciB0cmVlKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChkZWZhdWx0VmFsdWUgPT0gTlVMTCkKKyAgICAgICAgZnByaW50ZihzdGRvdXQsICJTQVguYXR0cmlidXRlRGVjbCglcywgJXMsICVkLCAlZCwgTlVMTCwgLi4uKVxuIiwKKyAgICAgICAgICAgICAgICBlbGVtLCBuYW1lLCB0eXBlLCBkZWYpOworICAgIGVsc2UKKyAgICAgICAgZnByaW50ZihzdGRvdXQsICJTQVguYXR0cmlidXRlRGVjbCglcywgJXMsICVkLCAlZCwgJXMsIC4uLilcbiIsCisgICAgICAgICAgICAgICAgZWxlbSwgbmFtZSwgdHlwZSwgZGVmLCBkZWZhdWx0VmFsdWUpOworICAgIHhtbEZyZWVFbnVtZXJhdGlvbih0cmVlKTsKK30KKworLyoqCisgKiBlbGVtZW50RGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGVsZW1lbnQgbmFtZSAKKyAqIEB0eXBlOiAgdGhlIGVsZW1lbnQgdHlwZSAKKyAqIEBjb250ZW50OiB0aGUgZWxlbWVudCB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS4KKyAqCisgKiBBbiBlbGVtZW50IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkCisgKi8KK3N0YXRpYyB2b2lkCitlbGVtZW50RGVjbERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgdHlwZSwKKwkgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguZWxlbWVudERlY2woJXMsICVkLCAuLi4pXG4iLAorICAgICAgICAgICAgbmFtZSwgdHlwZSk7Cit9CisKKy8qKgorICogbm90YXRpb25EZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbgorICogQHB1YmxpY0lkOiBUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBzeXN0ZW1JZDogVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5CisgKgorICogV2hhdCB0byBkbyB3aGVuIGEgbm90YXRpb24gZGVjbGFyYXRpb24gaGFzIGJlZW4gcGFyc2VkLgorICovCitzdGF0aWMgdm9pZAorbm90YXRpb25EZWNsRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5ub3RhdGlvbkRlY2woJXMsICVzLCAlcylcbiIsCisgICAgICAgICAgICAoY2hhciAqKSBuYW1lLCAoY2hhciAqKSBwdWJsaWNJZCwgKGNoYXIgKikgc3lzdGVtSWQpOworfQorCisvKioKKyAqIHVucGFyc2VkRW50aXR5RGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZW50aXR5CisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBub3RhdGlvbk5hbWU6IHRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbgorICoKKyAqIFdoYXQgdG8gZG8gd2hlbiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb24gaXMgcGFyc2VkCisgKi8KK3N0YXRpYyB2b2lkCit1bnBhcnNlZEVudGl0eURlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJICAgY29uc3QgeG1sQ2hhciAqcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkLAorCQkgICBjb25zdCB4bWxDaGFyICpub3RhdGlvbk5hbWUpCit7Citjb25zdCB4bWxDaGFyICpudWxsc3RyID0gQkFEX0NBU1QgIihudWxsKSI7CisKKyAgICBpZiAocHVibGljSWQgPT0gTlVMTCkKKyAgICAgICAgcHVibGljSWQgPSBudWxsc3RyOworICAgIGlmIChzeXN0ZW1JZCA9PSBOVUxMKQorICAgICAgICBzeXN0ZW1JZCA9IG51bGxzdHI7CisgICAgaWYgKG5vdGF0aW9uTmFtZSA9PSBOVUxMKQorICAgICAgICBub3RhdGlvbk5hbWUgPSBudWxsc3RyOworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVgudW5wYXJzZWRFbnRpdHlEZWNsKCVzLCAlcywgJXMsICVzKVxuIiwKKyAgICAgICAgICAgIChjaGFyICopIG5hbWUsIChjaGFyICopIHB1YmxpY0lkLCAoY2hhciAqKSBzeXN0ZW1JZCwKKwkgICAgKGNoYXIgKikgbm90YXRpb25OYW1lKTsKK30KKworLyoqCisgKiBzZXREb2N1bWVudExvY2F0b3JEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbG9jOiBBIFNBWCBMb2NhdG9yCisgKgorICogUmVjZWl2ZSB0aGUgZG9jdW1lbnQgbG9jYXRvciBhdCBzdGFydHVwLCBhY3R1YWxseSB4bWxEZWZhdWx0U0FYTG9jYXRvcgorICogRXZlcnl0aGluZyBpcyBhdmFpbGFibGUgb24gdGhlIGNvbnRleHQsIHNvIHRoaXMgaXMgdXNlbGVzcyBpbiBvdXIgY2FzZS4KKyAqLworc3RhdGljIHZvaWQKK3NldERvY3VtZW50TG9jYXRvckRlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCB4bWxTQVhMb2NhdG9yUHRyIGxvYyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguc2V0RG9jdW1lbnRMb2NhdG9yKClcbiIpOworfQorCisvKioKKyAqIHN0YXJ0RG9jdW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogY2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IHN0YXJ0IGJlaW5nIHByb2Nlc3NlZC4KKyAqLworc3RhdGljIHZvaWQKK3N0YXJ0RG9jdW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnN0YXJ0RG9jdW1lbnQoKVxuIik7Cit9CisKKy8qKgorICogZW5kRG9jdW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogY2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLworc3RhdGljIHZvaWQKK2VuZERvY3VtZW50RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5lbmREb2N1bWVudCgpXG4iKTsKK30KKworLyoqCisgKiBzdGFydEVsZW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzdGFydEVsZW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqKmF0dHMpCit7CisgICAgaW50IGk7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnN0YXJ0RWxlbWVudCglcyIsIChjaGFyICopIG5hbWUpOworICAgIGlmIChhdHRzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDsoYXR0c1tpXSAhPSBOVUxMKTtpKyspIHsKKwkgICAgZnByaW50ZihzdGRvdXQsICIsICVzPSciLCBhdHRzW2krK10pOworCSAgICBpZiAoYXR0c1tpXSAhPSBOVUxMKQorCSAgICAgICAgZnByaW50ZihzdGRvdXQsICIlcyciLCBhdHRzW2ldKTsKKwl9CisgICAgfQorICAgIGZwcmludGYoc3Rkb3V0LCAiKVxuIik7Cit9CisKKy8qKgorICogZW5kRWxlbWVudERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLworc3RhdGljIHZvaWQKK2VuZEVsZW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmVuZEVsZW1lbnQoJXMpXG4iLCAoY2hhciAqKSBuYW1lKTsKK30KKworLyoqCisgKiBjaGFyYWN0ZXJzRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGNoOiAgYSB4bWxDaGFyIHN0cmluZworICogQGxlbjogdGhlIG51bWJlciBvZiB4bWxDaGFyCisgKgorICogcmVjZWl2aW5nIHNvbWUgY2hhcnMgZnJvbSB0aGUgcGFyc2VyLgorICogUXVlc3Rpb246IGhvdyBtdWNoIGF0IGEgdGltZSA/Pz8KKyAqLworc3RhdGljIHZvaWQKK2NoYXJhY3RlcnNEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqY2gsIGludCBsZW4pCit7CisgICAgY2hhciBvdXRwdXRbNDBdOworICAgIGludCBpOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmb3IgKGkgPSAwOyhpPGxlbikgJiYgKGkgPCAzMCk7aSsrKQorCW91dHB1dFtpXSA9IGNoW2ldOworICAgIG91dHB1dFtpXSA9IDA7CisKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5jaGFyYWN0ZXJzKCVzLCAlZClcbiIsIG91dHB1dCwgbGVuKTsKK30KKworLyoqCisgKiByZWZlcmVuY2VEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbnRpdHkgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIGFuIGVudGl0eSByZWZlcmVuY2UgaXMgZGV0ZWN0ZWQuIAorICovCitzdGF0aWMgdm9pZAorcmVmZXJlbmNlRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5yZWZlcmVuY2UoJXMpXG4iLCBuYW1lKTsKK30KKworLyoqCisgKiBpZ25vcmFibGVXaGl0ZXNwYWNlRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGNoOiAgYSB4bWxDaGFyIHN0cmluZworICogQHN0YXJ0OiB0aGUgZmlyc3QgY2hhciBpbiB0aGUgc3RyaW5nCisgKiBAbGVuOiB0aGUgbnVtYmVyIG9mIHhtbENoYXIKKyAqCisgKiByZWNlaXZpbmcgc29tZSBpZ25vcmFibGUgd2hpdGVzcGFjZXMgZnJvbSB0aGUgcGFyc2VyLgorICogUXVlc3Rpb246IGhvdyBtdWNoIGF0IGEgdGltZSA/Pz8KKyAqLworc3RhdGljIHZvaWQKK2lnbm9yYWJsZVdoaXRlc3BhY2VEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqY2gsIGludCBsZW4pCit7CisgICAgY2hhciBvdXRwdXRbNDBdOworICAgIGludCBpOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmb3IgKGkgPSAwOyhpPGxlbikgJiYgKGkgPCAzMCk7aSsrKQorCW91dHB1dFtpXSA9IGNoW2ldOworICAgIG91dHB1dFtpXSA9IDA7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguaWdub3JhYmxlV2hpdGVzcGFjZSglcywgJWQpXG4iLCBvdXRwdXQsIGxlbik7Cit9CisKKy8qKgorICogcHJvY2Vzc2luZ0luc3RydWN0aW9uRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHRhcmdldDogIHRoZSB0YXJnZXQgbmFtZQorICogQGRhdGE6IHRoZSBQSSBkYXRhJ3MKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIEEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBoYXMgYmVlbiBwYXJzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25EZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmRhdGEpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBpZiAoZGF0YSAhPSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiU0FYLnByb2Nlc3NpbmdJbnN0cnVjdGlvbiglcywgJXMpXG4iLAorCQkoY2hhciAqKSB0YXJnZXQsIChjaGFyICopIGRhdGEpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIlNBWC5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJXMsIE5VTEwpXG4iLAorCQkoY2hhciAqKSB0YXJnZXQpOworfQorCisvKioKKyAqIGNkYXRhQmxvY2tEZWJ1ZzoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEB2YWx1ZTogIFRoZSBwY2RhdGEgY29udGVudAorICogQGxlbjogIHRoZSBibG9jayBsZW5ndGgKKyAqCisgKiBjYWxsZWQgd2hlbiBhIHBjZGF0YSBibG9jayBoYXMgYmVlbiBwYXJzZWQKKyAqLworc3RhdGljIHZvaWQKK2NkYXRhQmxvY2tEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqdmFsdWUsIGludCBsZW4pCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5wY2RhdGEoJS4yMHMsICVkKVxuIiwKKwkgICAgKGNoYXIgKikgdmFsdWUsIGxlbik7Cit9CisKKy8qKgorICogY29tbWVudERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEB2YWx1ZTogIHRoZSBjb21tZW50IGNvbnRlbnQKKyAqCisgKiBBIGNvbW1lbnQgaGFzIGJlZW4gcGFyc2VkLgorICovCitzdGF0aWMgdm9pZAorY29tbWVudERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICp2YWx1ZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmNvbW1lbnQoJXMpXG4iLCB2YWx1ZSk7Cit9CisKKy8qKgorICogd2FybmluZ0RlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3dhcm5pbmdEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICB2YV9zdGFydChhcmdzLCBtc2cpOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLndhcm5pbmc6ICIpOworICAgIHZmcHJpbnRmKHN0ZG91dCwgbXNnLCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7Cit9CisKKy8qKgorICogZXJyb3JEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdAorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqCisgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYSBlcnJvciBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwgcG9zaXRpb24gYW5kCisgKiBleHRyYSBwYXJhbWV0ZXJzLgorICovCitzdGF0aWMgdm9pZCBYTUxDREVDTAorZXJyb3JEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKHF1aWV0KQorCXJldHVybjsKKyAgICB2YV9zdGFydChhcmdzLCBtc2cpOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmVycm9yOiAiKTsKKyAgICB2ZnByaW50ZihzdGRvdXQsIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworfQorCisvKioKKyAqIGZhdGFsRXJyb3JEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdAorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqCisgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYSBmYXRhbEVycm9yIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQKKyAqIGV4dHJhIHBhcmFtZXRlcnMuCisgKi8KK3N0YXRpYyB2b2lkIFhNTENERUNMCitmYXRhbEVycm9yRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5mYXRhbEVycm9yOiAiKTsKKyAgICB2ZnByaW50ZihzdGRvdXQsIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworfQorCitzdGF0aWMgeG1sU0FYSGFuZGxlciBkZWJ1Z1NBWEhhbmRsZXJTdHJ1Y3QgPSB7CisgICAgaW50ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICBpc1N0YW5kYWxvbmVEZWJ1ZywKKyAgICBoYXNJbnRlcm5hbFN1YnNldERlYnVnLAorICAgIGhhc0V4dGVybmFsU3Vic2V0RGVidWcsCisgICAgcmVzb2x2ZUVudGl0eURlYnVnLAorICAgIGdldEVudGl0eURlYnVnLAorICAgIGVudGl0eURlY2xEZWJ1ZywKKyAgICBub3RhdGlvbkRlY2xEZWJ1ZywKKyAgICBhdHRyaWJ1dGVEZWNsRGVidWcsCisgICAgZWxlbWVudERlY2xEZWJ1ZywKKyAgICB1bnBhcnNlZEVudGl0eURlY2xEZWJ1ZywKKyAgICBzZXREb2N1bWVudExvY2F0b3JEZWJ1ZywKKyAgICBzdGFydERvY3VtZW50RGVidWcsCisgICAgZW5kRG9jdW1lbnREZWJ1ZywKKyAgICBzdGFydEVsZW1lbnREZWJ1ZywKKyAgICBlbmRFbGVtZW50RGVidWcsCisgICAgcmVmZXJlbmNlRGVidWcsCisgICAgY2hhcmFjdGVyc0RlYnVnLAorICAgIGlnbm9yYWJsZVdoaXRlc3BhY2VEZWJ1ZywKKyAgICBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25EZWJ1ZywKKyAgICBjb21tZW50RGVidWcsCisgICAgd2FybmluZ0RlYnVnLAorICAgIGVycm9yRGVidWcsCisgICAgZmF0YWxFcnJvckRlYnVnLAorICAgIGdldFBhcmFtZXRlckVudGl0eURlYnVnLAorICAgIGNkYXRhQmxvY2tEZWJ1ZywKKyAgICBleHRlcm5hbFN1YnNldERlYnVnLAorICAgIDEsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTAorfTsKKworeG1sU0FYSGFuZGxlclB0ciBkZWJ1Z1NBWEhhbmRsZXIgPSAmZGVidWdTQVhIYW5kbGVyU3RydWN0OworCisvKgorICogU0FYMiBzcGVjaWZpYyBjYWxsYmFja3MKKyAqLworLyoqCisgKiBzdGFydEVsZW1lbnROc0RlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIGFuIG9wZW5pbmcgdGFnIGhhcyBiZWVuIHByb2Nlc3NlZC4KKyAqLworc3RhdGljIHZvaWQKK3N0YXJ0RWxlbWVudE5zRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmxvY2FsbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4LAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpVUkksCisJCSAgICBpbnQgbmJfbmFtZXNwYWNlcywKKwkJICAgIGNvbnN0IHhtbENoYXIgKipuYW1lc3BhY2VzLAorCQkgICAgaW50IG5iX2F0dHJpYnV0ZXMsCisJCSAgICBpbnQgbmJfZGVmYXVsdGVkLAorCQkgICAgY29uc3QgeG1sQ2hhciAqKmF0dHJpYnV0ZXMpCit7CisgICAgaW50IGk7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAocXVpZXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnN0YXJ0RWxlbWVudE5zKCVzIiwgKGNoYXIgKikgbG9jYWxuYW1lKTsKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIsIE5VTEwiKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIsICVzIiwgKGNoYXIgKikgcHJlZml4KTsKKyAgICBpZiAoVVJJID09IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIsIE5VTEwiKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIsICclcyciLCAoY2hhciAqKSBVUkkpOworICAgIGZwcmludGYoc3Rkb3V0LCAiLCAlZCIsIG5iX25hbWVzcGFjZXMpOworICAgIAorICAgIGlmIChuYW1lc3BhY2VzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDtpIDwgbmJfbmFtZXNwYWNlcyAqIDI7aSsrKSB7CisJICAgIGZwcmludGYoc3Rkb3V0LCAiLCB4bWxucyIpOworCSAgICBpZiAobmFtZXNwYWNlc1tpXSAhPSBOVUxMKQorCSAgICAgICAgZnByaW50ZihzdGRvdXQsICI6JXMiLCBuYW1lc3BhY2VzW2ldKTsKKwkgICAgaSsrOworCSAgICBmcHJpbnRmKHN0ZG91dCwgIj0nJXMnIiwgbmFtZXNwYWNlc1tpXSk7CisJfQorICAgIH0KKyAgICBmcHJpbnRmKHN0ZG91dCwgIiwgJWQsICVkIiwgbmJfYXR0cmlidXRlcywgbmJfZGVmYXVsdGVkKTsKKyAgICBpZiAoYXR0cmlidXRlcyAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaSA9IDA7aSA8IG5iX2F0dHJpYnV0ZXMgKiA1O2kgKz0gNSkgeworCSAgICBpZiAoYXR0cmlidXRlc1tpICsgMV0gIT0gTlVMTCkKKwkJZnByaW50ZihzdGRvdXQsICIsICVzOiVzPSciLCBhdHRyaWJ1dGVzW2kgKyAxXSwgYXR0cmlidXRlc1tpXSk7CisJICAgIGVsc2UKKwkJZnByaW50ZihzdGRvdXQsICIsICVzPSciLCBhdHRyaWJ1dGVzW2ldKTsKKwkgICAgZnByaW50ZihzdGRvdXQsICIlLjRzLi4uJywgJWQiLCBhdHRyaWJ1dGVzW2kgKyAzXSwKKwkJICAgIChpbnQpKGF0dHJpYnV0ZXNbaSArIDRdIC0gYXR0cmlidXRlc1tpICsgM10pKTsKKwl9CisgICAgfQorICAgIGZwcmludGYoc3Rkb3V0LCAiKVxuIik7Cit9CisKKy8qKgorICogZW5kRWxlbWVudERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLworc3RhdGljIHZvaWQKK2VuZEVsZW1lbnROc0RlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbG9jYWxuYW1lLAorICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4LAorICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqVVJJKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChxdWlldCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguZW5kRWxlbWVudE5zKCVzIiwgKGNoYXIgKikgbG9jYWxuYW1lKTsKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIsIE5VTEwiKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIsICVzIiwgKGNoYXIgKikgcHJlZml4KTsKKyAgICBpZiAoVVJJID09IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIsIE5VTEwpXG4iKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIsICclcycpXG4iLCAoY2hhciAqKSBVUkkpOworfQorCitzdGF0aWMgeG1sU0FYSGFuZGxlciBkZWJ1Z1NBWDJIYW5kbGVyU3RydWN0ID0geworICAgIGludGVybmFsU3Vic2V0RGVidWcsCisgICAgaXNTdGFuZGFsb25lRGVidWcsCisgICAgaGFzSW50ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICBoYXNFeHRlcm5hbFN1YnNldERlYnVnLAorICAgIHJlc29sdmVFbnRpdHlEZWJ1ZywKKyAgICBnZXRFbnRpdHlEZWJ1ZywKKyAgICBlbnRpdHlEZWNsRGVidWcsCisgICAgbm90YXRpb25EZWNsRGVidWcsCisgICAgYXR0cmlidXRlRGVjbERlYnVnLAorICAgIGVsZW1lbnREZWNsRGVidWcsCisgICAgdW5wYXJzZWRFbnRpdHlEZWNsRGVidWcsCisgICAgc2V0RG9jdW1lbnRMb2NhdG9yRGVidWcsCisgICAgc3RhcnREb2N1bWVudERlYnVnLAorICAgIGVuZERvY3VtZW50RGVidWcsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIHJlZmVyZW5jZURlYnVnLAorICAgIGNoYXJhY3RlcnNEZWJ1ZywKKyAgICBpZ25vcmFibGVXaGl0ZXNwYWNlRGVidWcsCisgICAgcHJvY2Vzc2luZ0luc3RydWN0aW9uRGVidWcsCisgICAgY29tbWVudERlYnVnLAorICAgIHdhcm5pbmdEZWJ1ZywKKyAgICBlcnJvckRlYnVnLAorICAgIGZhdGFsRXJyb3JEZWJ1ZywKKyAgICBnZXRQYXJhbWV0ZXJFbnRpdHlEZWJ1ZywKKyAgICBjZGF0YUJsb2NrRGVidWcsCisgICAgZXh0ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICBYTUxfU0FYMl9NQUdJQywKKyAgICBOVUxMLAorICAgIHN0YXJ0RWxlbWVudE5zRGVidWcsCisgICAgZW5kRWxlbWVudE5zRGVidWcsCisgICAgTlVMTAorfTsKKworc3RhdGljIHhtbFNBWEhhbmRsZXJQdHIgZGVidWdTQVgySGFuZGxlciA9ICZkZWJ1Z1NBWDJIYW5kbGVyU3RydWN0OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJCURlYnVnCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB2b2lkCitwYXJzZUFuZFByaW50RmlsZShjaGFyICpmaWxlbmFtZSkgeworICAgIGludCByZXM7CisKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECisgICAgaWYgKHB1c2gpIHsKKwlGSUxFICpmOworCisgICAgICAgIGlmICgoIXF1aWV0KSAmJiAoIW5vbnVsbCkpIHsKKwkgICAgLyoKKwkgICAgICogRW1wdHkgY2FsbGJhY2tzIGZvciBjaGVja2luZworCSAgICAgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKwkgICAgZiA9IGZvcGVuKGZpbGVuYW1lLCAicmIiKTsKKyNlbHNlCisJICAgIGYgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyNlbmRpZgorCSAgICBpZiAoZiAhPSBOVUxMKSB7CisJCWludCByZXQ7CisJCWNoYXIgY2hhcnNbMTBdOworCQl4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKwkJcmV0ID0gZnJlYWQoY2hhcnMsIDEsIDQsIGYpOworCQlpZiAocmV0ID4gMCkgeworCQkgICAgY3R4dCA9IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KGVtcHR5U0FYSGFuZGxlciwgTlVMTCwKKwkJCQljaGFycywgcmV0LCBmaWxlbmFtZSk7CisJCSAgICB3aGlsZSAoKHJldCA9IGZyZWFkKGNoYXJzLCAxLCAzLCBmKSkgPiAwKSB7CisJCQl4bWxQYXJzZUNodW5rKGN0eHQsIGNoYXJzLCByZXQsIDApOworCQkgICAgfQorCQkgICAgeG1sUGFyc2VDaHVuayhjdHh0LCBjaGFycywgMCwgMSk7CisJCSAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwkJfQorCQlmY2xvc2UoZik7CisJICAgIH0gZWxzZSB7CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkNhbm5vdCByZWFkIGZpbGUgJXNcbiIsIGZpbGVuYW1lKTsKKwkgICAgfQorCX0KKwkvKgorCSAqIERlYnVnIGNhbGxiYWNrCisJICovCisjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQgKF9fQ1lHV0lOX18pCisJZiA9IGZvcGVuKGZpbGVuYW1lLCAicmIiKTsKKyNlbHNlCisJZiA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworI2VuZGlmCisJaWYgKGYgIT0gTlVMTCkgeworCSAgICBpbnQgcmV0OworCSAgICBjaGFyIGNoYXJzWzEwXTsKKwkgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworCisJICAgIHJldCA9IGZyZWFkKGNoYXJzLCAxLCA0LCBmKTsKKwkgICAgaWYgKHJldCA+IDApIHsKKwkgICAgICAgIGlmIChzYXgyKQorCQkgICAgY3R4dCA9IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KGRlYnVnU0FYMkhhbmRsZXIsIE5VTEwsCisJCQkJY2hhcnMsIHJldCwgZmlsZW5hbWUpOworCQllbHNlCisJCSAgICBjdHh0ID0geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoZGVidWdTQVhIYW5kbGVyLCBOVUxMLAorCQkJCWNoYXJzLCByZXQsIGZpbGVuYW1lKTsKKwkJd2hpbGUgKChyZXQgPSBmcmVhZChjaGFycywgMSwgMywgZikpID4gMCkgeworCQkgICAgeG1sUGFyc2VDaHVuayhjdHh0LCBjaGFycywgcmV0LCAwKTsKKwkJfQorCQlyZXQgPSB4bWxQYXJzZUNodW5rKGN0eHQsIGNoYXJzLCAwLCAxKTsKKwkJeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJCWlmIChyZXQgIT0gMCkgeworCQkgICAgZnByaW50ZihzdGRvdXQsCisJCSAgICAgICAgICAgICJ4bWxTQVhVc2VyUGFyc2VGaWxlIHJldHVybmVkIGVycm9yICVkXG4iLCByZXQpOworCQl9CisJICAgIH0KKwkgICAgZmNsb3NlKGYpOworCX0KKyAgICB9IGVsc2UgeworI2VuZGlmIC8qIExJQlhNTF9QVVNIX0VOQUJMRUQgKi8KKwlpZiAoIXNwZWVkKSB7CisJICAgIC8qCisJICAgICAqIEVtcHR5IGNhbGxiYWNrcyBmb3IgY2hlY2tpbmcKKwkgICAgICovCisJICAgIGlmICgoIXF1aWV0KSAmJiAoIW5vbnVsbCkpIHsKKwkJcmVzID0geG1sU0FYVXNlclBhcnNlRmlsZShlbXB0eVNBWEhhbmRsZXIsIE5VTEwsIGZpbGVuYW1lKTsKKwkJaWYgKHJlcyAhPSAwKSB7CisJCSAgICBmcHJpbnRmKHN0ZG91dCwgInhtbFNBWFVzZXJQYXJzZUZpbGUgcmV0dXJuZWQgZXJyb3IgJWRcbiIsIHJlcyk7CisJCX0KKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIERlYnVnIGNhbGxiYWNrCisJICAgICAqLworCSAgICBjYWxsYmFja3MgPSAwOworCSAgICBpZiAocmVwZWF0KSB7CisJICAgICAgICBpbnQgaTsKKwkJZm9yIChpID0gMDtpIDwgOTk7aSsrKSB7CisJCSAgICBpZiAoc2F4MikKKwkJCXJlcyA9IHhtbFNBWFVzZXJQYXJzZUZpbGUoZGVidWdTQVgySGFuZGxlciwgTlVMTCwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUpOworCQkgICAgZWxzZQorCQkJcmVzID0geG1sU0FYVXNlclBhcnNlRmlsZShkZWJ1Z1NBWEhhbmRsZXIsIE5VTEwsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lKTsKKwkJfQorCSAgICB9CisJICAgIGlmIChzYXgyKQorCSAgICAgICAgcmVzID0geG1sU0FYVXNlclBhcnNlRmlsZShkZWJ1Z1NBWDJIYW5kbGVyLCBOVUxMLCBmaWxlbmFtZSk7CisJICAgIGVsc2UKKwkJcmVzID0geG1sU0FYVXNlclBhcnNlRmlsZShkZWJ1Z1NBWEhhbmRsZXIsIE5VTEwsIGZpbGVuYW1lKTsKKwkgICAgaWYgKHJlcyAhPSAwKSB7CisJCWZwcmludGYoc3Rkb3V0LCAieG1sU0FYVXNlclBhcnNlRmlsZSByZXR1cm5lZCBlcnJvciAlZFxuIiwgcmVzKTsKKwkgICAgfQorCSAgICBpZiAocXVpZXQpCisJCWZwcmludGYoc3Rkb3V0LCAiJWQgY2FsbGJhY2tzIGdlbmVyYXRlZFxuIiwgY2FsbGJhY2tzKTsKKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiB0ZXN0IDEwMHggdGhlIFNBWCBwYXJzZQorCSAgICAgKi8KKwkgICAgaW50IGk7CisKKwkgICAgZm9yIChpID0gMDsgaTwxMDA7aSsrKQorCQlyZXMgPSB4bWxTQVhVc2VyUGFyc2VGaWxlKGVtcHR5U0FYSGFuZGxlciwgTlVMTCwgZmlsZW5hbWUpOworCSAgICBpZiAocmVzICE9IDApIHsKKwkJZnByaW50ZihzdGRvdXQsICJ4bWxTQVhVc2VyUGFyc2VGaWxlIHJldHVybmVkIGVycm9yICVkXG4iLCByZXMpOworCSAgICB9CisJfQorI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKyAgICB9CisjZW5kaWYKK30KKworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBpbnQgaTsKKyAgICBpbnQgZmlsZXMgPSAwOworCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgkvKiBiZSBzYWZlLCBwbHVzIGNhbGxzIHhtbEluaXRQYXJzZXIgKi8KKyAgICAKKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlYnVnIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWRlYnVnIikpKQorCSAgICBkZWJ1ZysrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItY29weSIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS1jb3B5IikpKQorCSAgICBjb3B5Kys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1yZWNvdmVyIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tcmVjb3ZlciIpKSkKKwkgICAgcmVjb3ZlcnkrKzsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXB1c2giKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1wdXNoIikpKQorI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKwkgICAgcHVzaCsrOworI2Vsc2UKKwkgICAgZnByaW50ZihzdGRlcnIsIidwdXNoJyBub3QgZW5hYmxlZCBpbiBsaWJyYXJ5IC0gaWdub3JpbmdcbiIpOworI2VuZGlmIC8qIExJQlhNTF9QVVNIX0VOQUJMRUQgKi8KKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXNwZWVkIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tc3BlZWQiKSkpCisJICAgIHNwZWVkKys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi10aW1pbmciKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS10aW1pbmciKSkpIHsKKwkgICAgbm9udWxsKys7CisJICAgIHRpbWluZysrOworCSAgICBxdWlldCsrOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1yZXBlYXQiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1yZXBlYXQiKSkpIHsKKwkgICAgcmVwZWF0Kys7CisJICAgIHF1aWV0Kys7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vZW50IikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9lbnQiKSkpCisJICAgIG5vZW50Kys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1xdWlldCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXF1aWV0IikpKQorCSAgICBxdWlldCsrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItc2F4MiIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXNheDIiKSkpCisJICAgIHNheDIrKzsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vbnVsbCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW5vbnVsbCIpKSkKKwkgICAgbm9udWxsKys7CisgICAgfQorICAgIGlmIChub2VudCAhPSAwKSB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0KDEpOworICAgIGZvciAoaSA9IDE7IGkgPCBhcmdjIDsgaSsrKSB7CisJaWYgKGFyZ3ZbaV1bMF0gIT0gJy0nKSB7CisJICAgIGlmICh0aW1pbmcpIHsKKwkJc3RhcnRUaW1lcigpOworCSAgICB9CisJICAgIHBhcnNlQW5kUHJpbnRGaWxlKGFyZ3ZbaV0pOworCSAgICBpZiAodGltaW5nKSB7CisJCWVuZFRpbWVyKCJQYXJzaW5nIik7CisJICAgIH0KKwkgICAgZmlsZXMgKys7CisJfQorICAgIH0KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisgICAgcmV0dXJuKDApOworfQorI2Vsc2UKK2ludCBtYWluKGludCBhcmdjIEFUVFJJQlVURV9VTlVTRUQsIGNoYXIgKiphcmd2IEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBwcmludGYoIiVzIDogU0FYMSBwYXJzaW5nIHN1cHBvcnQgbm90IGNvbXBpbGVkIGluXG4iLCBhcmd2WzBdKTsKKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0U2NoZW1hcy5jIGIvbGlieG1sMi0yLjcuNy90ZXN0U2NoZW1hcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZjhiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RTY2hlbWFzLmMKQEAgLTAsMCArMSwxODUgQEAKKy8qCisgKiB0ZXN0U2NoZW1hcy5jIDogYSBzbWFsbCB0ZXN0ZXIgcHJvZ3JhbSBmb3IgU2NoZW1hIHZhbGlkYXRpb24KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsLlZlaWxsYXJkQHczLm9yZworICovCisKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKworI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0ZDTlRMX0gKKyNpbmNsdWRlIDxmY250bC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfTU1BTl9ICisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKy8qIHNlZW1zIG5lZWRlZCBmb3IgU29sYXJpcyAqLworI2lmbmRlZiBNQVBfRkFJTEVECisjZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkICopIC0xKQorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGVidWdYTUwuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzdHlwZXMuaD4KKworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECitzdGF0aWMgaW50IGRlYnVnID0gMDsKKyNlbmRpZgorc3RhdGljIGludCBub291dCA9IDA7CisjaWZkZWYgSEFWRV9TWVNfTU1BTl9ICitzdGF0aWMgaW50IG1lbW9yeSA9IDA7CisjZW5kaWYKKworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBpbnQgaTsKKyAgICBpbnQgZmlsZXMgPSAwOworICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEgPSBOVUxMOworCisgICAgZm9yIChpID0gMTsgaSA8IGFyZ2MgOyBpKyspIHsKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlYnVnIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWRlYnVnIikpKQorCSAgICBkZWJ1ZysrOworCWVsc2UKKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX01NQU5fSAorCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW1lbW9yeSIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS1tZW1vcnkiKSkpIHsKKwkgICAgbWVtb3J5Kys7CisgICAgICAgIH0gZWxzZQorI2VuZGlmCisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbm9vdXQiKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9vdXQiKSkpIHsKKwkgICAgbm9vdXQrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICB4bWxMaW5lTnVtYmVyc0RlZmF1bHQoMSk7CisgICAgZm9yIChpID0gMTsgaSA8IGFyZ2MgOyBpKyspIHsKKwlpZiAoYXJndltpXVswXSAhPSAnLScpIHsKKwkgICAgaWYgKHNjaGVtYSA9PSBOVUxMKSB7CisJCXhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dDsKKworI2lmZGVmIEhBVkVfU1lTX01NQU5fSAorCQlpZiAobWVtb3J5KSB7CisJCSAgICBpbnQgZmQ7CisJCSAgICBzdHJ1Y3Qgc3RhdCBpbmZvOworCQkgICAgY29uc3QgY2hhciAqYmFzZTsKKwkJICAgIGlmIChzdGF0KGFyZ3ZbaV0sICZpbmZvKSA8IDApIAorCQkJYnJlYWs7CisJCSAgICBpZiAoKGZkID0gb3Blbihhcmd2W2ldLCBPX1JET05MWSkpIDwgMCkKKwkJCWJyZWFrOworCQkgICAgYmFzZSA9IG1tYXAoTlVMTCwgaW5mby5zdF9zaXplLCBQUk9UX1JFQUQsCisJCQkgICAgICAgIE1BUF9TSEFSRUQsIGZkLCAwKSA7CisJCSAgICBpZiAoYmFzZSA9PSAodm9pZCAqKSBNQVBfRkFJTEVEKQorCQkJYnJlYWs7CisKKwkJICAgIGN0eHQgPSB4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0KChjaGFyICopYmFzZSxpbmZvLnN0X3NpemUpOworCisJCSAgICB4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMoY3R4dCwKKwkJCSAgICAoeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGYsCisJCQkgICAgKHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMpIGZwcmludGYsCisJCQkgICAgc3RkZXJyKTsKKwkJICAgIHNjaGVtYSA9IHhtbFNjaGVtYVBhcnNlKGN0eHQpOworCQkgICAgeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJCSAgICBtdW5tYXAoKGNoYXIgKikgYmFzZSwgaW5mby5zdF9zaXplKTsKKwkJfSBlbHNlCisjZW5kaWYKKwkJeworCQkgICAgY3R4dCA9IHhtbFNjaGVtYU5ld1BhcnNlckN0eHQoYXJndltpXSk7CisJCSAgICB4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMoY3R4dCwKKwkJCSAgICAoeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGYsCisJCQkgICAgKHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMpIGZwcmludGYsCisJCQkgICAgc3RkZXJyKTsKKwkJICAgIHNjaGVtYSA9IHhtbFNjaGVtYVBhcnNlKGN0eHQpOworCQkgICAgeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJCX0KKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorCQlpZiAoZGVidWcpCisJCSAgICB4bWxTY2hlbWFEdW1wKHN0ZG91dCwgc2NoZW1hKTsKKyNlbmRpZgorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCQlpZiAoc2NoZW1hID09IE5VTEwpCisJCSAgICBnb3RvIGZhaWxlZF9zY2hlbWFzOworCSAgICB9IGVsc2UgeworCQl4bWxEb2NQdHIgZG9jOworCisJCWRvYyA9IHhtbFJlYWRGaWxlKGFyZ3ZbaV0sTlVMTCwwKTsKKworCQlpZiAoZG9jID09IE5VTEwpIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IHBhcnNlICVzXG4iLCBhcmd2W2ldKTsKKwkJfSBlbHNlIHsKKwkJICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OworCQkgICAgaW50IHJldDsKKworCQkgICAgY3R4dCA9IHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dChzY2hlbWEpOworCQkgICAgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMoY3R4dCwKKwkJCSAgICAoeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGYsCisJCQkgICAgKHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMpIGZwcmludGYsCisJCQkgICAgc3RkZXJyKTsKKwkJICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRG9jKGN0eHQsIGRvYyk7CisJCSAgICBpZiAocmV0ID09IDApIHsKKwkJCXByaW50ZigiJXMgdmFsaWRhdGVzXG4iLCBhcmd2W2ldKTsKKwkJICAgIH0gZWxzZSBpZiAocmV0ID4gMCkgeworCQkJcHJpbnRmKCIlcyBmYWlscyB0byB2YWxpZGF0ZVxuIiwgYXJndltpXSk7CisJCSAgICB9IGVsc2UgeworCQkJcHJpbnRmKCIlcyB2YWxpZGF0aW9uIGdlbmVyYXRlZCBhbiBpbnRlcm5hbCBlcnJvclxuIiwKKwkJCSAgICAgICBhcmd2W2ldKTsKKwkJICAgIH0KKwkJICAgIHhtbFNjaGVtYUZyZWVWYWxpZEN0eHQoY3R4dCk7CisJCSAgICB4bWxGcmVlRG9jKGRvYyk7CisJCX0KKwkgICAgfQorCSAgICBmaWxlcyArKzsKKwl9CisgICAgfQorICAgIGlmIChzY2hlbWEgIT0gTlVMTCkKKwl4bWxTY2hlbWFGcmVlKHNjaGVtYSk7CisgICAgaWYgKGZpbGVzID09IDApIHsKKwlwcmludGYoIlVzYWdlIDogJXMgWy0tZGVidWddIFstLW5vb3V0XSBzY2hlbWFzIFhNTGZpbGVzIC4uLlxuIiwKKwkgICAgICAgYXJndlswXSk7CisJcHJpbnRmKCJcdFBhcnNlIHRoZSBIVE1MIGZpbGVzIGFuZCBvdXRwdXQgdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2luZ1xuIik7CisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKwlwcmludGYoIlx0LS1kZWJ1ZyA6IGR1bXAgYSBkZWJ1ZyB0cmVlIG9mIHRoZSBpbi1tZW1vcnkgZG9jdW1lbnRcbiIpOworI2VuZGlmCisJcHJpbnRmKCJcdC0tbm9vdXQgOiBkbyBub3QgcHJpbnQgdGhlIHJlc3VsdFxuIik7CisjaWZkZWYgSEFWRV9TWVNfTU1BTl9ICisJcHJpbnRmKCJcdC0tbWVtb3J5IDogdGVzdCB0aGUgc2NoZW1hcyBpbiBtZW1vcnkgcGFyc2luZ1xuIik7CisjZW5kaWYKKyAgICB9CitmYWlsZWRfc2NoZW1hczoKKyAgICB4bWxTY2hlbWFDbGVhbnVwVHlwZXMoKTsKKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisgICAgcmV0dXJuKDApOworfQorCisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CitpbnQgbWFpbihpbnQgYXJnYyBBVFRSSUJVVEVfVU5VU0VELCBjaGFyICoqYXJndiBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcHJpbnRmKCIlcyA6IFNjaGVtYXMgc3VwcG9ydCBub3QgY29tcGlsZWQgaW5cbiIsIGFyZ3ZbMF0pOworICAgIHJldHVybigwKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3RUaHJlYWRzLmMgYi9saWJ4bWwyLTIuNy43L3Rlc3RUaHJlYWRzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQzY2JkMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdFRocmVhZHMuYwpAQCAtMCwwICsxLDIwMiBAQAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2lmIGRlZmluZWQoTElCWE1MX1RIUkVBRF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC90aHJlYWRzLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9jYXRhbG9nLmg+CisjaWZkZWYgSEFWRV9QVEhSRUFEX0gKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjZWxpZiBkZWZpbmVkIEhBVkVfQkVPU19USFJFQURTCisjaW5jbHVkZSA8T1MuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lmICFkZWZpbmVkKF9NU0NfVkVSKQorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKKyNkZWZpbmUJTUFYX0FSR0MJMjAKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorc3RhdGljIHB0aHJlYWRfdCB0aWRbTUFYX0FSR0NdOworI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworc3RhdGljIHRocmVhZF9pZCB0aWRbTUFYX0FSR0NdOworI2VuZGlmCisKK3N0YXRpYyBjb25zdCBjaGFyICpjYXRhbG9nID0gInRlc3QvdGhyZWFkcy9jb21wbGV4LnhtbCI7CitzdGF0aWMgY29uc3QgY2hhciAqdGVzdGZpbGVzW10gPSB7CisgICAgInRlc3QvdGhyZWFkcy9hYmMueG1sIiwKKyAgICAidGVzdC90aHJlYWRzL2FjYi54bWwiLAorICAgICJ0ZXN0L3RocmVhZHMvYmFjLnhtbCIsCisgICAgInRlc3QvdGhyZWFkcy9iY2EueG1sIiwKKyAgICAidGVzdC90aHJlYWRzL2NhYi54bWwiLAorICAgICJ0ZXN0L3RocmVhZHMvY2JhLnhtbCIsCisgICAgInRlc3QvdGhyZWFkcy9pbnZhbGlkLnhtbCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqT2theSA9ICJPSyI7CitzdGF0aWMgY29uc3QgY2hhciAqRmFpbGVkID0gIkZhaWxlZCI7CisKKyNpZm5kZWYgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlCisjZXJyb3IgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIGlzIG5vdCBhIG1hY3JvCisjZW5kaWYKKyNpZm5kZWYgeG1sR2VuZXJpY0Vycm9yQ29udGV4dAorI2Vycm9yIHhtbEdlbmVyaWNFcnJvckNvbnRleHQgaXMgbm90IGEgbWFjcm8KKyNlbmRpZgorCitzdGF0aWMgdm9pZCAqCit0aHJlYWRfc3BlY2lmaWNfZGF0YSh2b2lkICpwcml2YXRlX2RhdGEpCit7CisgICAgeG1sRG9jUHRyIG15RG9jOworICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lID0gKGNvbnN0IGNoYXIgKikgcHJpdmF0ZV9kYXRhOworICAgIGludCBva2F5ID0gMTsKKworICAgIGlmICghc3RyY21wKGZpbGVuYW1lLCAidGVzdC90aHJlYWRzL2ludmFsaWQueG1sIikpIHsKKyAgICAgICAgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yQ29udGV4dCA9IHN0ZG91dDsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgPSAxOworICAgICAgICB4bWxHZW5lcmljRXJyb3JDb250ZXh0ID0gc3RkZXJyOworICAgIH0KKyAgICBteURvYyA9IHhtbFBhcnNlRmlsZShmaWxlbmFtZSk7CisgICAgaWYgKG15RG9jKSB7CisgICAgICAgIHhtbEZyZWVEb2MobXlEb2MpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ZigicGFyc2UgZmFpbGVkXG4iKTsKKwlva2F5ID0gMDsKKyAgICB9CisgICAgaWYgKCFzdHJjbXAoZmlsZW5hbWUsICJ0ZXN0L3RocmVhZHMvaW52YWxpZC54bWwiKSkgeworICAgICAgICBpZiAoeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlICE9IDApIHsKKwkgICAgcHJpbnRmKCJWYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIG92ZXJyaWRlIGZhaWxlZFxuIik7CisJICAgIG9rYXkgPSAwOworCX0KKyAgICAgICAgaWYgKHhtbEdlbmVyaWNFcnJvckNvbnRleHQgIT0gc3Rkb3V0KSB7CisJICAgIHByaW50ZigieG1sR2VuZXJpY0Vycm9yQ29udGV4dCBvdmVycmlkZSBmYWlsZWRcbiIpOworCSAgICBva2F5ID0gMDsKKwl9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSAhPSAxKSB7CisJICAgIHByaW50ZigiVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSBvdmVycmlkZSBmYWlsZWRcbiIpOworCSAgICBva2F5ID0gMDsKKwl9CisgICAgICAgIGlmICh4bWxHZW5lcmljRXJyb3JDb250ZXh0ICE9IHN0ZGVycikgeworCSAgICBwcmludGYoInhtbEdlbmVyaWNFcnJvckNvbnRleHQgb3ZlcnJpZGUgZmFpbGVkXG4iKTsKKwkgICAgb2theSA9IDA7CisJfQorICAgIH0KKyAgICBpZiAob2theSA9PSAwKQorCXJldHVybigodm9pZCAqKSBGYWlsZWQpOworICAgIHJldHVybiAoKHZvaWQgKikgT2theSk7Cit9CisKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAoraW50CittYWluKHZvaWQpCit7CisgICAgdW5zaWduZWQgaW50IGksIHJlcGVhdDsKKyAgICB1bnNpZ25lZCBpbnQgbnVtX3RocmVhZHMgPSBzaXplb2YodGVzdGZpbGVzKSAvIHNpemVvZih0ZXN0ZmlsZXNbMF0pOworICAgIHZvaWQgKnJlc3VsdHNbTUFYX0FSR0NdOworICAgIGludCByZXQ7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgZm9yIChyZXBlYXQgPSAwO3JlcGVhdCA8IDUwMDtyZXBlYXQrKykgeworCXhtbExvYWRDYXRhbG9nKGNhdGFsb2cpOworCisJZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspIHsKKwkgICAgcmVzdWx0c1tpXSA9IE5VTEw7CisJICAgIHRpZFtpXSA9IChwdGhyZWFkX3QpIC0xOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisJICAgIHJldCA9IHB0aHJlYWRfY3JlYXRlKCZ0aWRbaV0sIE5VTEwsIHRocmVhZF9zcGVjaWZpY19kYXRhLAorCQkJCSAodm9pZCAqKSB0ZXN0ZmlsZXNbaV0pOworCSAgICBpZiAocmV0ICE9IDApIHsKKwkJcGVycm9yKCJwdGhyZWFkX2NyZWF0ZSIpOworCQlleGl0KDEpOworCSAgICB9CisJfQorCWZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisJICAgIHJldCA9IHB0aHJlYWRfam9pbih0aWRbaV0sICZyZXN1bHRzW2ldKTsKKwkgICAgaWYgKHJldCAhPSAwKSB7CisJCXBlcnJvcigicHRocmVhZF9qb2luIik7CisJCWV4aXQoMSk7CisJICAgIH0KKwl9CisKKwl4bWxDYXRhbG9nQ2xlYW51cCgpOworCWZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKQorCSAgICBpZiAocmVzdWx0c1tpXSAhPSAodm9pZCAqKSBPa2F5KQorCQlwcmludGYoIlRocmVhZCAlZCBoYW5kbGluZyAlcyBmYWlsZWRcbiIsIGksIHRlc3RmaWxlc1tpXSk7CisgICAgfQorICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuICgwKTsKK30KKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKK2ludAorbWFpbih2b2lkKQoreworICAgIHVuc2lnbmVkIGludCBpLCByZXBlYXQ7CisgICAgdW5zaWduZWQgaW50IG51bV90aHJlYWRzID0gc2l6ZW9mKHRlc3RmaWxlcykgLyBzaXplb2YodGVzdGZpbGVzWzBdKTsKKyAgICB2b2lkICpyZXN1bHRzW01BWF9BUkdDXTsKKyAgICBzdGF0dXNfdCByZXQ7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisgICAgcHJpbnRmKCJQYXJzZXIgaW5pdGlhbGl6ZWRcbiIpOworICAgIGZvciAocmVwZWF0ID0gMDtyZXBlYXQgPCA1MDA7cmVwZWF0KyspIHsKKyAgICBwcmludGYoInJlcGVhdDogJWRcbiIscmVwZWF0KTsKKwl4bWxMb2FkQ2F0YWxvZyhjYXRhbG9nKTsKKwlwcmludGYoImxvYWRlZCBjYXRhbG9nOiAlc1xuIiwgY2F0YWxvZyk7CisJZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspIHsKKwkgICAgcmVzdWx0c1tpXSA9IE5VTEw7CisJICAgIHRpZFtpXSA9ICh0aHJlYWRfaWQpIC0xOworCX0KKwlwcmludGYoImNsZWFuZWQgdGhyZWFkc1xuIik7CisJZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspIHsKKwkJdGlkW2ldID0gc3Bhd25fdGhyZWFkKHRocmVhZF9zcGVjaWZpY19kYXRhLCAieG1sVGVzdFRocmVhZCIsIEJfTk9STUFMX1BSSU9SSVRZLCAodm9pZCAqKSB0ZXN0ZmlsZXNbaV0pOworCQlpZiAodGlkW2ldIDwgQl9PSykgeworCQkJcGVycm9yKCJiZW9zX3RocmVhZF9jcmVhdGUiKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJcHJpbnRmKCJiZW9zX3RocmVhZF9jcmVhdGUgJWQgLT4gJWRcbiIsIGksIHRpZFtpXSk7CisJfQorCWZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisJICAgIHJldCA9IHdhaXRfZm9yX3RocmVhZCh0aWRbaV0sICZyZXN1bHRzW2ldKTsKKwkgICAgcHJpbnRmKCJiZW9zX3RocmVhZF93YWl0ICVkIC0+ICVkXG4iLCBpLCByZXQpOworCSAgICBpZiAocmV0ICE9IEJfT0spIHsKKwkJCXBlcnJvcigiYmVvc190aHJlYWRfd2FpdCIpOworCQkJZXhpdCgxKTsKKwkgICAgfQorCX0KKworCXhtbENhdGFsb2dDbGVhbnVwKCk7CisJcmV0ID0gQl9PSzsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3RocmVhZHM7IGkrKykKKwkgICAgaWYgKHJlc3VsdHNbaV0gIT0gKHZvaWQgKikgT2theSkgeworCQkJcHJpbnRmKCJUaHJlYWQgJWQgaGFuZGxpbmcgJXMgZmFpbGVkXG4iLCBpLCB0ZXN0ZmlsZXNbaV0pOworCQkJcmV0ID0gQl9FUlJPUjsKKwkJfQorICAgIH0KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisJaWYgKHJldCA9PSBCX09LKQorCQlwcmludGYoInRlc3RUaHJlYWQgOiBCZU9TIDogU1VDQ0VTUyFcbiIpOworCWVsc2UKKwkJcHJpbnRmKCJ0ZXN0VGhyZWFkIDogQmVPUyA6IEZBSUxFRCFcbiIpOworCisgICAgcmV0dXJuICgwKTsKK30KKyNlbmRpZiAvKiBwdGhyZWFkcyBvciBCZU9TIHRocmVhZHMgKi8KKworI2Vsc2UgLyogIUxJQlhNTF9USFJFQURTX0VOQUJMRUQgKi8KK2ludAorbWFpbih2b2lkKQoreworICAgIGZwcmludGYoc3RkZXJyLCAibGlieG1sIHdhcyBub3QgY29tcGlsZWQgd2l0aCB0aHJlYWQgb3IgY2F0YWxvZyBzdXBwb3J0XG4iKTsKKyAgICByZXR1cm4gKDApOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3RUaHJlYWRzV2luMzIuYyBiL2xpYnhtbDItMi43LjcvdGVzdFRocmVhZHNXaW4zMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZDcwMmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RUaHJlYWRzV2luMzIuYwpAQCAtMCwwICsxLDE1MCBAQAorI2luY2x1ZGUgImxpYnhtbC5oIgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZiBkZWZpbmVkKExJQlhNTF9USFJFQURfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3RocmVhZHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL2NhdGFsb2cuaD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKKyNkZWZpbmUJTUFYX0FSR0MJMjAKKyNkZWZpbmUgVEVTVF9SRVBFQVRfQ09VTlQgNTAwCisKK3N0YXRpYyBIQU5ETEUgdGlkW01BWF9BUkdDXTsKKworc3RhdGljIGNvbnN0IGNoYXIgKmNhdGFsb2cgPSAidGVzdC90aHJlYWRzL2NvbXBsZXgueG1sIjsKK3N0YXRpYyBjaGFyICp0ZXN0ZmlsZXNbXSA9IHsKKyAgICAidGVzdC90aHJlYWRzL2FiYy54bWwiLAorICAgICJ0ZXN0L3RocmVhZHMvYWNiLnhtbCIsCisgICAgInRlc3QvdGhyZWFkcy9iYWMueG1sIiwKKyAgICAidGVzdC90aHJlYWRzL2JjYS54bWwiLAorICAgICJ0ZXN0L3RocmVhZHMvY2FiLnhtbCIsCisgICAgInRlc3QvdGhyZWFkcy9jYmEueG1sIiwKKyAgICAidGVzdC90aHJlYWRzL2ludmFsaWQueG1sIiwKK307CisKK2NvbnN0IGNoYXIgKk9rYXkgPSAiT0siOworY29uc3QgY2hhciAqRmFpbGVkID0gIkZhaWxlZCI7CisKKyNpZm5kZWYgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlCisjZXJyb3IgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIGlzIG5vdCBhIG1hY3JvCisjZW5kaWYKKyNpZm5kZWYgeG1sR2VuZXJpY0Vycm9yQ29udGV4dAorI2Vycm9yIHhtbEdlbmVyaWNFcnJvckNvbnRleHQgaXMgbm90IGEgbWFjcm8KKyNlbmRpZgorCitzdGF0aWMgRFdPUkQgV0lOQVBJCit0aHJlYWRfc3BlY2lmaWNfZGF0YSh2b2lkICpwcml2YXRlX2RhdGEpCit7CisgICAgeG1sRG9jUHRyIG15RG9jOworICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lID0gKGNvbnN0IGNoYXIgKikgcHJpdmF0ZV9kYXRhOworICAgIGludCBva2F5ID0gMTsKKworICAgIGlmICghc3RyY21wKGZpbGVuYW1lLCAidGVzdC90aHJlYWRzL2ludmFsaWQueG1sIikpIHsKKyAgICAgICAgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yQ29udGV4dCA9IHN0ZG91dDsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgPSAxOworICAgICAgICB4bWxHZW5lcmljRXJyb3JDb250ZXh0ID0gc3RkZXJyOworICAgIH0KKyAgICBteURvYyA9IHhtbFBhcnNlRmlsZShmaWxlbmFtZSk7CisgICAgaWYgKG15RG9jKSB7CisgICAgICAgIHhtbEZyZWVEb2MobXlEb2MpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ZigicGFyc2UgZmFpbGVkXG4iKTsKKwlva2F5ID0gMDsKKyAgICB9CisgICAgaWYgKCFzdHJjbXAoZmlsZW5hbWUsICJ0ZXN0L3RocmVhZHMvaW52YWxpZC54bWwiKSkgeworICAgICAgICBpZiAoeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlICE9IDApIHsKKwkgICAgcHJpbnRmKCJWYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIG92ZXJyaWRlIGZhaWxlZFxuIik7CisJICAgIG9rYXkgPSAwOworCX0KKyAgICAgICAgaWYgKHhtbEdlbmVyaWNFcnJvckNvbnRleHQgIT0gc3Rkb3V0KSB7CisJICAgIHByaW50ZigieG1sR2VuZXJpY0Vycm9yQ29udGV4dCBvdmVycmlkZSBmYWlsZWRcbiIpOworCSAgICBva2F5ID0gMDsKKwl9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSAhPSAxKSB7CisJICAgIHByaW50ZigiVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSBvdmVycmlkZSBmYWlsZWRcbiIpOworCSAgICBva2F5ID0gMDsKKwl9CisgICAgICAgIGlmICh4bWxHZW5lcmljRXJyb3JDb250ZXh0ICE9IHN0ZGVycikgeworCSAgICBwcmludGYoInhtbEdlbmVyaWNFcnJvckNvbnRleHQgb3ZlcnJpZGUgZmFpbGVkXG4iKTsKKwkgICAgb2theSA9IDA7CisJfQorICAgIH0KKyAgICBpZiAob2theSA9PSAwKQorCXJldHVybiAoKERXT1JEKSBGYWlsZWQpOworICAgIHJldHVybiAoKERXT1JEKSBPa2F5KTsKK30KKworaW50CittYWluKCkKK3sKKwl1bnNpZ25lZCBpbnQgaSwgcmVwZWF0OworCXVuc2lnbmVkIGludCBudW1fdGhyZWFkcyA9IHNpemVvZih0ZXN0ZmlsZXMpIC8gc2l6ZW9mKHRlc3RmaWxlc1swXSk7CisJRFdPUkQgcmVzdWx0c1tNQVhfQVJHQ107CisJQk9PTCByZXQ7CisKKwl4bWxJbml0UGFyc2VyKCk7CisJZm9yIChyZXBlYXQgPSAwO3JlcGVhdCA8IFRFU1RfUkVQRUFUX0NPVU5UO3JlcGVhdCsrKQorCXsKKwkJeG1sTG9hZENhdGFsb2coY2F0YWxvZyk7CisKKwkJZm9yIChpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspCisJCXsKKwkJCXJlc3VsdHNbaV0gPSAwOworCQkJdGlkW2ldID0gKEhBTkRMRSkgLTE7CisJCX0KKworCQlmb3IgKGkgPSAwOyBpIDwgbnVtX3RocmVhZHM7IGkrKykKKwkJeworCQkJRFdPUkQgdXNlbGVzczsKKwkJCXRpZFtpXSA9IENyZWF0ZVRocmVhZChOVUxMLCAwLCAKKwkJCQl0aHJlYWRfc3BlY2lmaWNfZGF0YSwgdGVzdGZpbGVzW2ldLCAwLCAmdXNlbGVzcyk7CisJCQlpZiAodGlkW2ldID09IE5VTEwpCisJCQl7CisJCQkJcGVycm9yKCJDcmVhdGVUaHJlYWQiKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQl9CisKKwkJaWYgKFdhaXRGb3JNdWx0aXBsZU9iamVjdHMgKG51bV90aHJlYWRzLCB0aWQsIFRSVUUsIElORklOSVRFKSA9PSBXQUlUX0ZBSUxFRCkgCisJCQlwZXJyb3IgKCJXYWl0Rm9yTXVsdGlwbGVPYmplY3RzIGZhaWxlZCIpOworCisJCWZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKQorCQl7CisJCQlyZXQgPSBHZXRFeGl0Q29kZVRocmVhZCAodGlkW2ldLCAmcmVzdWx0c1tpXSk7CisJCQlpZiAocmV0ID09IDApCisJCQl7CisJCQkJcGVycm9yKCJHZXRFeGl0Q29kZVRocmVhZCIpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQlDbG9zZUhhbmRsZSAodGlkW2ldKTsKKwkJfQorCisJCXhtbENhdGFsb2dDbGVhbnVwKCk7CisJCWZvciAoaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7CisJCSAgICBpZiAocmVzdWx0c1tpXSAhPSAoRFdPUkQpIE9rYXkpIAorCQkJcHJpbnRmKCJUaHJlYWQgJWQgaGFuZGxpbmcgJXMgZmFpbGVkXG4iLCBpLCB0ZXN0ZmlsZXNbaV0pOworCQl9CisJfQorCisJeG1sQ2xlYW51cFBhcnNlcigpOworCXhtbE1lbW9yeUR1bXAoKTsKKworCXJldHVybiAoMCk7Cit9CisKKyNlbHNlIC8qICFMSUJYTUxfVEhSRUFEU19FTkFCTEVEICovCitpbnQKK21haW4oKQoreworICAgIGZwcmludGYoc3RkZXJyLCAibGlieG1sIHdhcyBub3QgY29tcGlsZWQgd2l0aCB0aHJlYWQgb3IgY2F0YWxvZyBzdXBwb3J0XG4iKTsKKyAgICByZXR1cm4gKDApOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3RVUkkuYyBiL2xpYnhtbDItMi43LjcvdGVzdFVSSS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMDk4OWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RVUkkuYwpAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIHRlc3RVUkkuYyA6IGEgc21hbGwgdGVzdGVyIHByb2dyYW0gZm9yIFhNTCBpbnB1dC4KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisKK3N0YXRpYyBjb25zdCBjaGFyICpiYXNlID0gTlVMTDsKK3N0YXRpYyBpbnQgZXNjYXBlID0gMDsKK3N0YXRpYyBpbnQgZGVidWcgPSAwOworCitzdGF0aWMgdm9pZCBoYW5kbGVVUkkoY29uc3QgY2hhciAqc3RyKSB7CisgICAgaW50IHJldDsKKyAgICB4bWxVUklQdHIgdXJpOworICAgIHhtbENoYXIgKnJlcyA9IE5VTEwsICpwYXJzZWQgPSBOVUxMOworCisgICAgdXJpID0geG1sQ3JlYXRlVVJJKCk7CisKKyAgICBpZiAoYmFzZSA9PSBOVUxMKSB7CisJcmV0ID0geG1sUGFyc2VVUklSZWZlcmVuY2UodXJpLCBzdHIpOworCWlmIChyZXQgIT0gMCkKKwkgICAgcHJpbnRmKCIlcyA6IGVycm9yICVkXG4iLCBzdHIsIHJldCk7CisJZWxzZSB7CisJICAgIGlmIChkZWJ1ZykgeworCSAgICAgICAgaWYgKHVyaS0+c2NoZW1lKSBwcmludGYoInNjaGVtZTogJXNcbiIsIHVyaS0+c2NoZW1lKTsKKwkgICAgICAgIGlmICh1cmktPm9wYXF1ZSkgcHJpbnRmKCJvcGFxdWU6ICVzXG4iLCB1cmktPm9wYXF1ZSk7CisJICAgICAgICBpZiAodXJpLT5hdXRob3JpdHkpIHByaW50ZigiYXV0aG9yaXR5OiAlc1xuIiwgdXJpLT5hdXRob3JpdHkpOworCSAgICAgICAgaWYgKHVyaS0+c2VydmVyKSBwcmludGYoInNlcnZlcjogJXNcbiIsIHVyaS0+c2VydmVyKTsKKwkgICAgICAgIGlmICh1cmktPnVzZXIpIHByaW50ZigidXNlcjogJXNcbiIsIHVyaS0+dXNlcik7CisJICAgICAgICBpZiAodXJpLT5wb3J0ICE9IDApIHByaW50ZigicG9ydDogJWRcbiIsIHVyaS0+cG9ydCk7CisJICAgICAgICBpZiAodXJpLT5wYXRoKSBwcmludGYoInBhdGg6ICVzXG4iLCB1cmktPnBhdGgpOworCSAgICAgICAgaWYgKHVyaS0+cXVlcnkpIHByaW50ZigicXVlcnk6ICVzXG4iLCB1cmktPnF1ZXJ5KTsKKwkgICAgICAgIGlmICh1cmktPmZyYWdtZW50KSBwcmludGYoImZyYWdtZW50OiAlc1xuIiwgdXJpLT5mcmFnbWVudCk7CisJICAgICAgICBpZiAodXJpLT5xdWVyeV9yYXcpIHByaW50ZigicXVlcnlfcmF3OiAlc1xuIiwgdXJpLT5xdWVyeV9yYXcpOworCSAgICAgICAgaWYgKHVyaS0+Y2xlYW51cCAhPSAwKSBwcmludGYoImNsZWFudXBcbiIpOworCSAgICB9CisJICAgIHhtbE5vcm1hbGl6ZVVSSVBhdGgodXJpLT5wYXRoKTsKKwkgICAgaWYgKGVzY2FwZSAhPSAwKSB7CisJCXBhcnNlZCA9IHhtbFNhdmVVcmkodXJpKTsKKwkJcmVzID0geG1sVVJJRXNjYXBlKHBhcnNlZCk7CisJCXByaW50ZigiJXNcbiIsIChjaGFyICopIHJlcyk7CisKKwkgICAgfSBlbHNlIHsKKwkJeG1sUHJpbnRVUkkoc3Rkb3V0LCB1cmkpOworCQlwcmludGYoIlxuIik7CisJICAgIH0KKwl9CisgICAgfSBlbHNlIHsKKwlyZXMgPSB4bWxCdWlsZFVSSSgoeG1sQ2hhciAqKXN0ciwgKHhtbENoYXIgKikgYmFzZSk7CisJaWYgKHJlcyAhPSBOVUxMKSB7CisJICAgIHByaW50ZigiJXNcbiIsIChjaGFyICopIHJlcyk7CisJfQorCWVsc2UKKwkgICAgcHJpbnRmKCI6OkVSUk9SOjpcbiIpOworICAgIH0KKyAgICBpZiAocmVzICE9IE5VTEwpCisJeG1sRnJlZShyZXMpOworICAgIGlmIChwYXJzZWQgIT0gTlVMTCkKKwl4bWxGcmVlKHBhcnNlZCk7CisgICAgeG1sRnJlZVVSSSh1cmkpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBpbnQgaSwgYXJnID0gMTsKKworICAgIGlmICgoYXJnYyA+IGFyZykgJiYgKGFyZ3ZbYXJnXSAhPSBOVUxMKSAmJgorCSgoIXN0cmNtcChhcmd2W2FyZ10sICItYmFzZSIpKSB8fCAoIXN0cmNtcChhcmd2W2FyZ10sICItLWJhc2UiKSkpKSB7CisJYXJnKys7CisJYmFzZSA9IGFyZ3ZbYXJnXTsKKwlpZiAoYmFzZSAhPSBOVUxMKQorCSAgICBhcmcrKzsKKyAgICB9CisgICAgaWYgKChhcmdjID4gYXJnKSAmJiAoYXJndlthcmddICE9IE5VTEwpICYmCisJKCghc3RyY21wKGFyZ3ZbYXJnXSwgIi1lc2NhcGUiKSkgfHwgKCFzdHJjbXAoYXJndlthcmddLCAiLS1lc2NhcGUiKSkpKSB7CisJYXJnKys7CisJZXNjYXBlKys7CisgICAgfQorICAgIGlmICgoYXJnYyA+IGFyZykgJiYgKGFyZ3ZbYXJnXSAhPSBOVUxMKSAmJgorCSgoIXN0cmNtcChhcmd2W2FyZ10sICItZGVidWciKSkgfHwgKCFzdHJjbXAoYXJndlthcmddLCAiLS1kZWJ1ZyIpKSkpIHsKKwlhcmcrKzsKKwlkZWJ1ZysrOworICAgIH0KKyAgICBpZiAoYXJndlthcmddID09IE5VTEwpIHsKKwljaGFyIHN0clsxMDI0XTsKKworICAgICAgICB3aGlsZSAoMSkgeworCSAgICAvKgorCSAgICAgKiByZWFkIG9uZSBsaW5lIGluIHN0cmluZyBidWZmZXIuCisJICAgICAqLworCSAgICBpZiAoZmdldHMgKCZzdHJbMF0sIHNpemVvZiAoc3RyKSAtIDEsIHN0ZGluKSA9PSBOVUxMKQorCSAgICAgICBicmVhazsKKworCSAgICAvKgorCSAgICAgKiByZW1vdmUgdGhlIGVuZGluZyBzcGFjZXMKKwkgICAgICovCisJICAgIGkgPSBzdHJsZW4oc3RyKTsKKwkgICAgd2hpbGUgKChpID4gMCkgJiYKKwkJICAgKChzdHJbaSAtIDFdID09ICdcbicpIHx8IChzdHJbaSAtIDFdID09ICdccicpIHx8CisJCSAgICAoc3RyW2kgLSAxXSA9PSAnICcpIHx8IChzdHJbaSAtIDFdID09ICdcdCcpKSkgeworCQlpLS07CisJCXN0cltpXSA9IDA7CisJICAgIH0KKwkgICAgaGFuZGxlVVJJKHN0cik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworCXdoaWxlIChhcmd2W2FyZ10gIT0gTlVMTCkgeworCSAgICBoYW5kbGVVUkkoYXJndlthcmddKTsKKwkgICAgYXJnKys7CisJfQorICAgIH0KKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuKDApOworfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0WFBhdGguYyBiL2xpYnhtbDItMi43LjcvdGVzdFhQYXRoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc3NDE5YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdGVzdFhQYXRoLmMKQEAgLTAsMCArMSwyMjcgQEAKKy8qCisgKiB0ZXN0WFBhdGguYyA6IGEgc21hbGwgdGVzdGVyIHByb2dyYW0gZm9yIFhQYXRoLgorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2luY2x1ZGUgImxpYnhtbC5oIgorI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0ZDTlRMX0gKKyNpbmNsdWRlIDxmY250bC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisKKworI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9kZWJ1Z1hNTC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisjaW5jbHVkZSA8bGlieG1sL3hwb2ludGVyLmg+CitzdGF0aWMgaW50IHhwdHIgPSAwOworI2VuZGlmCitzdGF0aWMgaW50IGRlYnVnID0gMDsKK3N0YXRpYyBpbnQgdmFsaWQgPSAwOworc3RhdGljIGludCBleHByID0gMDsKK3N0YXRpYyBpbnQgdHJlZSA9IDA7CitzdGF0aWMgaW50IG5vY2RhdGEgPSAwOworc3RhdGljIHhtbERvY1B0ciBkb2N1bWVudCA9IE5VTEw7CisKKy8qCisgKiBEZWZhdWx0IGRvY3VtZW50CisgKi8KK3N0YXRpYyB4bWxDaGFyIGJ1ZmZlcltdID0gCisiPD94bWwgdmVyc2lvbj1cIjEuMFwiPz5cblwKKzxFWEFNUExFIHByb3AxPVwiZ25vbWUgaXMgZ3JlYXRcIiBwcm9wMj1cIiZhbXA7IGxpbnV4IHRvb1wiPlxuXAorICA8aGVhZD5cblwKKyAgIDx0aXRsZT5XZWxjb21lIHRvIEdub21lPC90aXRsZT5cblwKKyAgPC9oZWFkPlxuXAorICA8Y2hhcHRlcj5cblwKKyAgIDx0aXRsZT5UaGUgTGludXggYWR2ZW50dXJlPC90aXRsZT5cblwKKyAgIDxwPmJsYSBibGEgYmxhIC4uLjwvcD5cblwKKyAgIDxpbWFnZSBocmVmPVwibGludXMuZ2lmXCIvPlxuXAorICAgPHA+Li4uPC9wPlxuXAorICA8L2NoYXB0ZXI+XG5cCisgIDxjaGFwdGVyPlxuXAorICAgPHRpdGxlPkNoYXB0ZXIgMjwvdGl0bGU+XG5cCisgICA8cD50aGlzIGlzIGNoYXB0ZXIgMiAuLi48L3A+XG5cCisgIDwvY2hhcHRlcj5cblwKKyAgPGNoYXB0ZXI+XG5cCisgICA8dGl0bGU+Q2hhcHRlciAzPC90aXRsZT5cblwKKyAgIDxwPnRoaXMgaXMgY2hhcHRlciAzIC4uLjwvcD5cblwKKyAgPC9jaGFwdGVyPlxuXAorPC9FWEFNUExFPlxuXAorIjsKKworCitzdGF0aWMgdm9pZAordGVzdFhQYXRoKGNvbnN0IGNoYXIgKnN0cikgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlczsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsKKyAgICAKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisgICAgaWYgKHhwdHIpIHsKKwljdHh0ID0geG1sWFB0ck5ld0NvbnRleHQoZG9jdW1lbnQsIE5VTEwsIE5VTEwpOworCXJlcyA9IHhtbFhQdHJFdmFsKEJBRF9DQVNUIHN0ciwgY3R4dCk7CisgICAgfSBlbHNlIHsKKyNlbmRpZgorCWN0eHQgPSB4bWxYUGF0aE5ld0NvbnRleHQoZG9jdW1lbnQpOworCWN0eHQtPm5vZGUgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2N1bWVudCk7CisJaWYgKGV4cHIpCisJICAgIHJlcyA9IHhtbFhQYXRoRXZhbEV4cHJlc3Npb24oQkFEX0NBU1Qgc3RyLCBjdHh0KTsKKwllbHNlIHsKKwkgICAgLyogcmVzID0geG1sWFBhdGhFdmFsKEJBRF9DQVNUIHN0ciwgY3R4dCk7ICovCisJICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcDsKKworCSAgICBjb21wID0geG1sWFBhdGhDb21waWxlKEJBRF9DQVNUIHN0cik7CisJICAgIGlmIChjb21wICE9IE5VTEwpIHsKKwkJaWYgKHRyZWUpIAorCQkgICAgeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcihzdGRvdXQsIGNvbXAsIDApOworCisJCXJlcyA9IHhtbFhQYXRoQ29tcGlsZWRFdmFsKGNvbXAsIGN0eHQpOworCQl4bWxYUGF0aEZyZWVDb21wRXhwcihjb21wKTsKKwkgICAgfSBlbHNlCisJCXJlcyA9IE5VTEw7CisJfQorI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyAgICB9CisjZW5kaWYKKyAgICB4bWxYUGF0aERlYnVnRHVtcE9iamVjdChzdGRvdXQsIHJlcywgMCk7CisgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHJlcyk7CisgICAgeG1sWFBhdGhGcmVlQ29udGV4dChjdHh0KTsKK30KKworc3RhdGljIHZvaWQKK3Rlc3RYUGF0aEZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICBGSUxFICppbnB1dDsKKyAgICBjaGFyIGV4cHJlc3Npb25bNTAwMF07CisgICAgaW50IGxlbjsKKworICAgIGlucHV0ID0gZm9wZW4oZmlsZW5hbWUsICJyIik7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJDYW5ub3Qgb3BlbiAlcyBmb3IgcmVhZGluZ1xuIiwgZmlsZW5hbWUpOworCXJldHVybjsKKyAgICB9CisgICAgd2hpbGUgKGZnZXRzKGV4cHJlc3Npb24sIDQ1MDAsIGlucHV0KSAhPSBOVUxMKSB7CisJbGVuID0gc3RybGVuKGV4cHJlc3Npb24pOworCWxlbi0tOworCXdoaWxlICgobGVuID49IDApICYmIAorCSAgICAgICAoKGV4cHJlc3Npb25bbGVuXSA9PSAnXG4nKSB8fCAoZXhwcmVzc2lvbltsZW5dID09ICdcdCcpIHx8CisJCShleHByZXNzaW9uW2xlbl0gPT0gJ1xyJykgfHwgKGV4cHJlc3Npb25bbGVuXSA9PSAnICcpKSkgbGVuLS07CisJZXhwcmVzc2lvbltsZW4gKyAxXSA9IDA7ICAgICAgCisJaWYgKGxlbiA+PSAwKSB7CisJICAgIHByaW50ZigiXG49PT09PT09PT09PT09PT09PT09PT09PT1cbkV4cHJlc3Npb246ICVzXG4iLCBleHByZXNzaW9uKSA7CisJICAgIHRlc3RYUGF0aChleHByZXNzaW9uKTsKKwl9CisgICAgfQorCisgICAgZmNsb3NlKGlucHV0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaW50IGk7CisgICAgaW50IHN0cmluZ3MgPSAwOworICAgIGludCB1c2VmaWxlID0gMDsKKyAgICBjaGFyICpmaWxlbmFtZSA9IE5VTEw7CisKKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKwlpZiAoKCFzdHJjbXAoYXJndltpXSwgIi14cHRyIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLXhwdHIiKSkpCisJICAgIHhwdHIrKzsKKwllbHNlIAorI2VuZGlmCisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZGVidWciKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tZGVidWciKSkpCisJICAgIGRlYnVnKys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi12YWxpZCIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS12YWxpZCIpKSkKKwkgICAgdmFsaWQrKzsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWV4cHIiKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tZXhwciIpKSkKKwkgICAgZXhwcisrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItdHJlZSIpKSB8fCAoIXN0cmNtcChhcmd2W2ldLCAiLS10cmVlIikpKQorCSAgICB0cmVlKys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1ub2NkYXRhIikpIHx8CisJCSAoIXN0cmNtcChhcmd2W2ldLCAiLS1ub2NkYXRhIikpKQorCSAgICBub2NkYXRhKys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1pIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWlucHV0IikpKQorCSAgICBmaWxlbmFtZSA9IGFyZ3ZbKytpXTsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWYiKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tZmlsZSIpKSkKKwkgICAgdXNlZmlsZSsrOworICAgIH0KKyAgICBpZiAodmFsaWQgIT0gMCkgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlID0gMTsKKyAgICB4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIHw9IFhNTF9ERVRFQ1RfSURTOworICAgIHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUgfD0gWE1MX0NPTVBMRVRFX0FUVFJTOworICAgIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSA9IDE7CisgICAgaWYgKG5vY2RhdGEgIT0gMCkgeworCXhtbERlZmF1bHRTQVhIYW5kbGVySW5pdCgpOworCXhtbERlZmF1bHRTQVhIYW5kbGVyLmNkYXRhQmxvY2sgPSBOVUxMOworICAgIH0KKyAgICBpZiAoZG9jdW1lbnQgPT0gTlVMTCkgeworICAgICAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKKwkgICAgZG9jdW1lbnQgPSB4bWxSZWFkRG9jKGJ1ZmZlcixOVUxMLE5VTEwsWE1MX1BBUlNFX0NPTVBBQ1QpOworCWVsc2UKKwkgICAgZG9jdW1lbnQgPSB4bWxSZWFkRmlsZShmaWxlbmFtZSxOVUxMLFhNTF9QQVJTRV9DT01QQUNUKTsKKyAgICB9CisgICAgZm9yIChpID0gMTsgaSA8IGFyZ2MgOyBpKyspIHsKKwlpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1pIikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWlucHV0IikpKSB7CisJICAgIGkrKzsgY29udGludWU7CisJfQorCWlmIChhcmd2W2ldWzBdICE9ICctJykgeworCSAgICBpZiAodXNlZmlsZSkKKwkgICAgICAgIHRlc3RYUGF0aEZpbGUoYXJndltpXSk7CisJICAgIGVsc2UKKwkJdGVzdFhQYXRoKGFyZ3ZbaV0pOworCSAgICBzdHJpbmdzICsrOworCX0KKyAgICB9CisgICAgaWYgKHN0cmluZ3MgPT0gMCkgeworCXByaW50ZigiVXNhZ2UgOiAlcyBbLS1kZWJ1Z10gWy0tY29weV0gc3RyaW5nc29yZmlsZXMgLi4uXG4iLAorCSAgICAgICBhcmd2WzBdKTsKKwlwcmludGYoIlx0UGFyc2UgdGhlIFhQYXRoIHN0cmluZ3MgYW5kIG91dHB1dCB0aGUgcmVzdWx0IG9mIHRoZSBwYXJzaW5nXG4iKTsKKwlwcmludGYoIlx0LS1kZWJ1ZyA6IGR1bXAgYSBkZWJ1ZyB2ZXJzaW9uIG9mIHRoZSByZXN1bHRcbiIpOworCXByaW50ZigiXHQtLXZhbGlkIDogc3dpdGNoIG9uIERURCBzdXBwb3J0IGluIHRoZSBwYXJzZXJcbiIpOworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKwlwcmludGYoIlx0LS14cHRyIDogZXhwcmVzc2lvbnMgYXJlIFhQb2ludGVyIGV4cHJlc3Npb25zXG4iKTsKKyNlbmRpZgorCXByaW50ZigiXHQtLWV4cHIgOiBkZWJ1ZyBYUGF0aCBleHByZXNzaW9ucyBvbmx5XG4iKTsKKwlwcmludGYoIlx0LS10cmVlIDogc2hvdyB0aGUgY29tcGlsZWQgWFBhdGggdHJlZVxuIik7CisJcHJpbnRmKCJcdC0tbm9jZGF0YSA6IGRvIG5vdCBnZW5lcmF0ZSBDREFUQSBub2Rlc1xuIik7CisJcHJpbnRmKCJcdC0taW5wdXQgZmlsZW5hbWUgOiBvclxuIik7CisJcHJpbnRmKCJcdC1pIGZpbGVuYW1lICAgICAgOiByZWFkIHRoZSBkb2N1bWVudCBmcm9tIGZpbGVuYW1lXG4iKTsKKwlwcmludGYoIlx0LS1maWxlIDogb3JcbiIpOworCXByaW50ZigiXHQtZiAgICAgOiByZWFkIHF1ZXJpZXMgZnJvbSBmaWxlcywgYXJnc1xuIik7CisgICAgfQorICAgIGlmIChkb2N1bWVudCAhPSBOVUxMKSAKKwl4bWxGcmVlRG9jKGRvY3VtZW50KTsKKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisgICAgcmV0dXJuKDApOworfQorI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgoraW50IG1haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHByaW50ZigiJXMgOiBYUGF0aC9EZWJ1ZyBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIiwgYXJndlswXSk7CisgICAgcmV0dXJuKDApOworfQorI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Rlc3RhcGkuYyBiL2xpYnhtbDItMi43LjcvdGVzdGFwaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNmNlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RhcGkuYwpAQCAtMCwwICsxLDUxNjkxIEBACisvKgorICogdGVzdGFwaS5jOiBsaWJ4bWwyIEFQSSB0ZXN0ZXIgcHJvZ3JhbS4KKyAqCisgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnZW50ZXN0LnB5IGZyb20gbGlieG1sMi1hcGkueG1sCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjaWZkZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgImxpYnhtbC5oIgorI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4gLyogZm9yIHB1dGVudigpICovCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKworI2lmIGRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQorI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKKyNlbmRpZgorCitzdGF0aWMgaW50IHRlc3RsaWJ4bWwyKHZvaWQpOworc3RhdGljIGludCB0ZXN0X21vZHVsZShjb25zdCBjaGFyICptb2R1bGUpOworCitzdGF0aWMgaW50IGdlbmVyaWNfZXJyb3JzID0gMDsKK3N0YXRpYyBpbnQgY2FsbF90ZXN0cyA9IDA7CitzdGF0aWMgaW50IGZ1bmN0aW9uX3Rlc3RzID0gMDsKKworc3RhdGljIHhtbENoYXIgY2hhcnRhYlsxMDI0XTsKK3N0YXRpYyBpbnQgaW50dGFiWzEwMjRdOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZ3RhYlsxMDI0XTsKKworc3RhdGljIHhtbERvY1B0ciBhcGlfZG9jID0gTlVMTDsKK3N0YXRpYyB4bWxEdGRQdHIgYXBpX2R0ZCA9IE5VTEw7CitzdGF0aWMgeG1sTm9kZVB0ciBhcGlfcm9vdCA9IE5VTEw7CitzdGF0aWMgeG1sQXR0clB0ciBhcGlfYXR0ciA9IE5VTEw7CitzdGF0aWMgeG1sTnNQdHIgYXBpX25zID0gTlVMTDsKKworc3RhdGljIHZvaWQKK3N0cnVjdHVyZWRfZXJyb3JzKHZvaWQgKnVzZXJEYXRhIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICB4bWxFcnJvclB0ciBlcnJvciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgZ2VuZXJpY19lcnJvcnMrKzsKK30KKworc3RhdGljIHZvaWQKK2ZyZWVfYXBpX2RvYyh2b2lkKSB7CisgICAgeG1sRnJlZURvYyhhcGlfZG9jKTsKKyAgICBhcGlfZG9jID0gTlVMTDsKKyAgICBhcGlfZHRkID0gTlVMTDsKKyAgICBhcGlfcm9vdCA9IE5VTEw7CisgICAgYXBpX2F0dHIgPSBOVUxMOworICAgIGFwaV9ucyA9IE5VTEw7Cit9CisKK3N0YXRpYyB4bWxEb2NQdHIKK2dldF9hcGlfZG9jKHZvaWQpIHsKKyAgICBpZiAoYXBpX2RvYyA9PSBOVUxMKSB7CisgICAgICAgIGFwaV9kb2MgPSB4bWxSZWFkTWVtb3J5KCI8IURPQ1RZUEUgcm9vdCBbPCFFTEVNRU5UIHJvb3QgRU1QVFk+XT48cm9vdCB4bWxuczpoPSdodHRwOi8vZXhhbXBsZS5jb20vJyBoOmZvbz0nYmFyJy8+IiwgODgsICJyb290X3Rlc3QiLCBOVUxMLCAwKTsKKwlhcGlfcm9vdCA9IE5VTEw7CisJYXBpX2F0dHIgPSBOVUxMOworICAgIH0KKyAgICByZXR1cm4oYXBpX2RvYyk7Cit9CisKK3N0YXRpYyB4bWxEdGRQdHIKK2dldF9hcGlfZHRkKHZvaWQpIHsKKyAgICBpZiAoKGFwaV9kdGQgPT0gTlVMTCkgfHwgKGFwaV9kdGQtPnR5cGUgIT0gWE1MX0RURF9OT0RFKSkgeworICAgICAgICBnZXRfYXBpX2RvYygpOworCWlmICgoYXBpX2RvYyAhPSBOVUxMKSAmJiAoYXBpX2RvYy0+Y2hpbGRyZW4gIT0gTlVMTCkgJiYKKwkgICAgKGFwaV9kb2MtPmNoaWxkcmVuLT50eXBlID09IFhNTF9EVERfTk9ERSkpCisJICAgIGFwaV9kdGQgPSAoeG1sRHRkUHRyKSBhcGlfZG9jLT5jaGlsZHJlbjsKKyAgICB9CisgICAgcmV0dXJuKGFwaV9kdGQpOworfQorCitzdGF0aWMgeG1sTm9kZVB0cgorZ2V0X2FwaV9yb290KHZvaWQpIHsKKyAgICBpZiAoKGFwaV9yb290ID09IE5VTEwpIHx8IChhcGlfcm9vdC0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSkgeworICAgICAgICBnZXRfYXBpX2RvYygpOworCWlmICgoYXBpX2RvYyAhPSBOVUxMKSAmJiAoYXBpX2RvYy0+Y2hpbGRyZW4gIT0gTlVMTCkgJiYKKwkgICAgKGFwaV9kb2MtPmNoaWxkcmVuLT5uZXh0ICE9IE5VTEwpICYmCisJICAgIChhcGlfZG9jLT5jaGlsZHJlbi0+bmV4dC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSkKKwkgICAgYXBpX3Jvb3QgPSBhcGlfZG9jLT5jaGlsZHJlbi0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKGFwaV9yb290KTsKK30KKworc3RhdGljIHhtbE5zUHRyCitnZXRfYXBpX25zKHZvaWQpIHsKKyAgICBnZXRfYXBpX3Jvb3QoKTsKKyAgICBpZiAoYXBpX3Jvb3QgIT0gTlVMTCkKKyAgICAgICAgYXBpX25zID0gYXBpX3Jvb3QtPm5zRGVmOworICAgIHJldHVybihhcGlfbnMpOworfQorCitzdGF0aWMgeG1sQXR0clB0cgorZ2V0X2FwaV9hdHRyKHZvaWQpIHsKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIHN0YXRpYyBpbnQgbnIgPSAwOworICAgIHhtbENoYXIgbmFtZVsyMF07CisjZW5kaWYKKworICAgIGlmICgoYXBpX3Jvb3QgPT0gTlVMTCkgfHwgKGFwaV9yb290LT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgIGdldF9hcGlfcm9vdCgpOworICAgIH0KKyAgICBpZiAoYXBpX3Jvb3QgPT0gTlVMTCkgCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoYXBpX3Jvb3QtPnByb3BlcnRpZXMgIT0gTlVMTCkgeworICAgICAgICBhcGlfYXR0ciA9IGFwaV9yb290LT5wcm9wZXJ0aWVzOworICAgICAgICByZXR1cm4oYXBpX3Jvb3QtPnByb3BlcnRpZXMpOworICAgIH0KKyAgICBhcGlfYXR0ciA9IE5VTEw7CisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBzbnByaW50ZigoY2hhciAqKSBuYW1lLCAyMCwgImZvbyVkIiwgbnIrKyk7CisgICAgYXBpX2F0dHIgPSB4bWxTZXRQcm9wKGFwaV9yb290LCBuYW1lLCAoY29uc3QgeG1sQ2hhciAqKSAiYmFyIik7CisjZW5kaWYKKyAgICByZXR1cm4oYXBpX2F0dHIpOworfQorCitzdGF0aWMgaW50IHF1aWV0ID0gMDsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaW50IHJldDsKKyAgICBpbnQgYmxvY2tzLCBtZW07CisKKyAgICAvKiBhY2Nlc3MgdG8gdGhlIHByb3h5IGNhbiBzbG93IHVwIHJlZ3Jlc3Npb24gdGVzdHMgYSBsb3QgKi8KKyAgICBwdXRlbnYoKGNoYXIgKikgImh0dHBfcHJveHk9Iik7CisKKyAgICBtZW1zZXQoY2hhcnRhYiwgMCwgc2l6ZW9mKGNoYXJ0YWIpKTsKKyAgICBzdHJuY3B5KChjaGFyICopIGNoYXJ0YWIsICIgIGNoYXJ0YWJcbiIsIDIwKTsKKyAgICBtZW1zZXQoaW50dGFiLCAwLCBzaXplb2YoaW50dGFiKSk7CisgICAgbWVtc2V0KGxvbmd0YWIsIDAsIHNpemVvZihsb25ndGFiKSk7CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIHhtbFJlbGF4TkdJbml0VHlwZXMoKTsKKyNlbmRpZgorCisgICAgTElCWE1MX1RFU1RfVkVSU0lPTgorCisgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhOVUxMLCBzdHJ1Y3R1cmVkX2Vycm9ycyk7CisKKyAgICBpZiAoYXJnYyA+PSAyKSB7CisgICAgICAgIGlmICghc3RyY21wKGFyZ3ZbMV0sICItcSIpKSB7CisJICAgIHF1aWV0ID0gMTsKKwkgICAgaWYgKGFyZ2MgPj0gMykKKwkgICAgICAgIHJldCA9IHRlc3RfbW9kdWxlKGFyZ3ZbMl0pOworCSAgICBlbHNlCisJCXJldCA9IHRlc3RsaWJ4bWwyKCk7CisgICAgICAgIH0gZWxzZSB7CisJICAgcmV0ID0gdGVzdF9tb2R1bGUoYXJndlsxXSk7CisJfQorICAgIH0gZWxzZQorCXJldCA9IHRlc3RsaWJ4bWwyKCk7CisKKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgYmxvY2tzID0geG1sTWVtQmxvY2tzKCk7CisgICAgbWVtID0geG1sTWVtVXNlZCgpOworICAgIGlmICgoYmxvY2tzICE9IDApIHx8IChtZW0gIT0gMCkpIHsKKyAgICAgICAgcHJpbnRmKCJ0ZXN0YXBpIGxlYWtlZCAlZCBieXRlcyBpbiAlZCBibG9ja3NcbiIsIG1lbSwgYmxvY2tzKTsKKyAgICB9CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisgICAgcmV0dXJuIChyZXQgIT0gMCk7Cit9CisKKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHBhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9IVE1MdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9jYXRhbG9nLmg+CisjaW5jbHVkZSA8bGlieG1sL2NodmFsaWQuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGljdC5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbmNvZGluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC9oYXNoLmg+CisjaW5jbHVkZSA8bGlieG1sL2xpc3QuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvbmFub2Z0cC5oPgorI2luY2x1ZGUgPGxpYnhtbC9uYW5vaHR0cC5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhdHRlcm4uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcmVsYXhuZy5oPgorI2luY2x1ZGUgPGxpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3NjaGVtYXRyb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdmFsaWQuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveGluY2x1ZGUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sSU8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVhZGVyLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHNhdmUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzdHlwZXMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc3RyaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHdyaXRlci5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorI2luY2x1ZGUgPGxpYnhtbC94cG9pbnRlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9kZWJ1Z1hNTC5oPgorCisvKiAKKyAgV2UgbWFudWFsbHkgZGVmaW5lIHhtbEVyck1lbW9yeSBiZWNhdXNlIGl0J3Mgbm9ybWFsIGRlY2xhcmF0aW9uCisgIGlzICJoaWRkZW4iIGJ5ICNpZmRlZiBJTl9MSUJYTUwKKyovCit2b2lkIHhtbEVyck1lbW9yeSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmV4dHJhKTsKKworLyoKKyBXZSBuZWVkIHNvbWUgInJlbW90ZSIgYWRkcmVzc2VzLCBidXQgd2FudCB0byBhdm9pZCBnZXR0aW5nIGludG8KKyBuYW1lIHJlc29sdXRpb24gZGVsYXlzLCBzbyB3ZSB1c2UgdGhlc2UKKyovCisjZGVmaW5lCVJFTU9URTFHT09ECSJodHRwOi8vbG9jYWxob3N0LyIKKyNkZWZpbmUJUkVNT1RFMUJBRAkiaHR0cDpodHRwOi8vaHR0cCIKKyNkZWZpbmUJUkVNT1RFMkdPT0QJImZ0cDovL2xvY2FsaG9zdC9mb28iCisKKyNkZWZpbmUgZ2VuX25iX3ZvaWRfcHRyIDIKKworc3RhdGljIHZvaWQgKmdlbl92b2lkX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfdm9pZF9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHZvaWQgKnZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjaWYgMAorI2RlZmluZSBnZW5fbmJfY29uc3Rfdm9pZF9wdHIgMgorCitzdGF0aWMgY29uc3Qgdm9pZCAqZ2VuX2NvbnN0X3ZvaWRfcHRyKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKChjb25zdCB2b2lkICopICJpbW11dGFibGUgc3RyaW5nIik7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX2NvbnN0X3ZvaWRfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB2b2lkICp2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisjZGVmaW5lIGdlbl9uYl91c2VyZGF0YSAzCisKK3N0YXRpYyB2b2lkICpnZW5fdXNlcmRhdGEoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oKHZvaWQgKikgJmNhbGxfdGVzdHMpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oKHZvaWQgKikgLTEpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc191c2VyZGF0YShpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgdm9pZCAqdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKworI2RlZmluZSBnZW5fbmJfaW50IDQKKworc3RhdGljIGludCBnZW5faW50KGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKDApOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oMSk7CisgICAgaWYgKG5vID09IDIpIHJldHVybigtMSk7CisgICAgaWYgKG5vID09IDMpIHJldHVybigxMjIpOworICAgIHJldHVybigtMSk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc19pbnQoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2RlZmluZSBnZW5fbmJfcGFyc2Vyb3B0aW9ucyA1CisKK3N0YXRpYyBpbnQgZ2VuX3BhcnNlcm9wdGlvbnMoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oWE1MX1BBUlNFX05PQkxBTktTIHwgWE1MX1BBUlNFX1JFQ09WRVIpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oWE1MX1BBUlNFX05PRU5UIHwgWE1MX1BBUlNFX0RURExPQUQgfCBYTUxfUEFSU0VfRFREQVRUUiB8IFhNTF9QQVJTRV9EVERWQUxJRCB8IFhNTF9QQVJTRV9OT0NEQVRBKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKFhNTF9QQVJTRV9YSU5DTFVERSB8IFhNTF9QQVJTRV9OT1hJTkNOT0RFIHwgWE1MX1BBUlNFX05TQ0xFQU4pOworICAgIGlmIChubyA9PSAzKSByZXR1cm4oWE1MX1BBUlNFX1hJTkNMVURFIHwgWE1MX1BBUlNFX05PRElDVCk7CisgICAgcmV0dXJuKFhNTF9QQVJTRV9TQVgxKTsKK30KKworc3RhdGljIHZvaWQgZGVzX3BhcnNlcm9wdGlvbnMoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2lmIDAKKyNkZWZpbmUgZ2VuX25iX2xvbmcgNQorCitzdGF0aWMgbG9uZyBnZW5fbG9uZyhpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybigwKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKDEpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oLTEpOworICAgIGlmIChubyA9PSAzKSByZXR1cm4oMTIyKTsKKyAgICByZXR1cm4oLTEpOworfQorCitzdGF0aWMgdm9pZCBkZXNfbG9uZyhpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgbG9uZyB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisjZGVmaW5lIGdlbl9uYl94bWxDaGFyIDQKKworc3RhdGljIHhtbENoYXIgZ2VuX3htbENoYXIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oJ2EnKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKCcgJyk7CisgICAgaWYgKG5vID09IDIpIHJldHVybigoeG1sQ2hhcikgJ/gnKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc194bWxDaGFyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxDaGFyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl91bnNpZ25lZF9pbnQgMworCitzdGF0aWMgdW5zaWduZWQgaW50IGdlbl91bnNpZ25lZF9pbnQoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oMCk7CisgICAgaWYgKG5vID09IDEpIHJldHVybigxKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKDEyMik7CisgICAgcmV0dXJuKCh1bnNpZ25lZCBpbnQpIC0xKTsKK30KKworc3RhdGljIHZvaWQgZGVzX3Vuc2lnbmVkX2ludChpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgdW5zaWduZWQgaW50IHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl91bnNpZ25lZF9sb25nIDQKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2VuX3Vuc2lnbmVkX2xvbmcoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oMCk7CisgICAgaWYgKG5vID09IDEpIHJldHVybigxKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKDEyMik7CisgICAgcmV0dXJuKCh1bnNpZ25lZCBsb25nKSAtMSk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc191bnNpZ25lZF9sb25nKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB1bnNpZ25lZCBsb25nIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl9kb3VibGUgNAorCitzdGF0aWMgZG91YmxlIGdlbl9kb3VibGUoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oMCk7CisgICAgaWYgKG5vID09IDEpIHJldHVybigtMS4xKTsKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGlmIChubyA9PSAyKSByZXR1cm4oeG1sWFBhdGhOQU4pOworI2VuZGlmCisgICAgcmV0dXJuKC0xKTsKK30KKworc3RhdGljIHZvaWQgZGVzX2RvdWJsZShpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgZG91YmxlIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl91bnNpZ25lZF9sb25nX3B0ciAyCisKK3N0YXRpYyB1bnNpZ25lZCBsb25nICpnZW5fdW5zaWduZWRfbG9uZ19wdHIoaW50IG5vLCBpbnQgbnIpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKCZsb25ndGFiW25yXSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCitzdGF0aWMgdm9pZCBkZXNfdW5zaWduZWRfbG9uZ19wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHVuc2lnbmVkIGxvbmcgKnZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl9pbnRfcHRyIDIKKworc3RhdGljIGludCAqZ2VuX2ludF9wdHIoaW50IG5vLCBpbnQgbnIpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKCZpbnR0YWJbbnJdKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc19pbnRfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgKnZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl9jb25zdF9jaGFyX3B0ciA0CisKK3N0YXRpYyBjaGFyICpnZW5fY29uc3RfY2hhcl9wdHIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oKGNoYXIgKikgImZvbyIpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oKGNoYXIgKikgIjxmb28vPiIpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oKGNoYXIgKikgInRlc3QvZW50MiIpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19jb25zdF9jaGFyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNkZWZpbmUgZ2VuX25iX3htbENoYXJfcHRyIDIKKworc3RhdGljIHhtbENoYXIgKmdlbl94bWxDaGFyX3B0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybigmY2hhcnRhYlswXSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbENoYXJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxDaGFyICp2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2RlZmluZSBnZW5fbmJfRklMRV9wdHIgMgorCitzdGF0aWMgRklMRSAqZ2VuX0ZJTEVfcHRyKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKGZvcGVuKCJ0ZXN0Lm91dCIsICJhKyIpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfRklMRV9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIEZJTEUgKnZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpIGZjbG9zZSh2YWwpOworfQorCisjZGVmaW5lIGdlbl9uYl9kZWJ1Z19GSUxFX3B0ciAyCitzdGF0aWMgRklMRSAqZ2VuX2RlYnVnX0ZJTEVfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihmb3BlbigidGVzdC5vdXQiLCAiYSsiKSk7Cit9CitzdGF0aWMgdm9pZCBkZXNfZGVidWdfRklMRV9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIEZJTEUgKnZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpIGZjbG9zZSh2YWwpOworfQorCisjZGVmaW5lIGdlbl9uYl9jb25zdF94bWxDaGFyX3B0ciA1CisKK3N0YXRpYyB4bWxDaGFyICpnZW5fY29uc3RfeG1sQ2hhcl9wdHIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oKHhtbENoYXIgKikgImZvbyIpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oKHhtbENoYXIgKikgIjxmb28vPiIpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oKHhtbENoYXIgKikgIm74bmUiKTsKKyAgICBpZiAobm8gPT0gMykgcmV0dXJuKCh4bWxDaGFyICopICIgMmFiICIpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19jb25zdF94bWxDaGFyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNkZWZpbmUgZ2VuX25iX2ZpbGVwYXRoIDgKKworc3RhdGljIGNvbnN0IGNoYXIgKmdlbl9maWxlcGF0aChpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybigibWlzc2luZy54bWwiKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKCI8Zm9vLz4iKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKCJ0ZXN0L2VudDIiKTsKKyAgICBpZiAobm8gPT0gMykgcmV0dXJuKCJ0ZXN0L3ZhbGlkL1JFQy14bWwtMTk5ODAyMTAueG1sIik7CisgICAgaWYgKG5vID09IDQpIHJldHVybigidGVzdC92YWxpZC9kdGRzL3hodG1sMS1zdHJpY3QuZHRkIik7CisgICAgaWYgKG5vID09IDUpIHJldHVybihSRU1PVEUxR09PRCk7CisgICAgaWYgKG5vID09IDYpIHJldHVybihSRU1PVEUxQkFEKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfZmlsZXBhdGgoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGNoYXIgKnZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl9lYXRlbl9uYW1lIDIKKworc3RhdGljIHhtbENoYXIgKmdlbl9lYXRlbl9uYW1lKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKHhtbFN0cmR1cChCQURfQ0FTVCAiZWF0ZW4iKSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX2VhdGVuX25hbWUoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbENoYXIgKnZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl9maWxlb3V0cHV0IDYKKworc3RhdGljIGNvbnN0IGNoYXIgKmdlbl9maWxlb3V0cHV0KGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKCIvbWlzc2luZy54bWwiKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKCI8Zm9vLz4iKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKFJFTU9URTJHT09EKTsKKyAgICBpZiAobm8gPT0gMykgcmV0dXJuKFJFTU9URTFHT09EKTsKKyAgICBpZiAobm8gPT0gNCkgcmV0dXJuKFJFTU9URTFCQUQpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19maWxlb3V0cHV0KGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICp2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2RlZmluZSBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0ciAzCitzdGF0aWMgeG1sUGFyc2VyQ3R4dFB0ciBnZW5feG1sUGFyc2VyQ3R4dFB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxOZXdQYXJzZXJDdHh0KCkpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oeG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCgiPGRvYy8+IiwgNikpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxQYXJzZXJDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxQYXJzZXJDdHh0UHRyIHZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVQYXJzZXJDdHh0KHZhbCk7Cit9CisKKyNkZWZpbmUgZ2VuX25iX3htbFNBWEhhbmRsZXJQdHIgMgorc3RhdGljIHhtbFNBWEhhbmRsZXJQdHIgZ2VuX3htbFNBWEhhbmRsZXJQdHIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKCh4bWxTQVhIYW5kbGVyUHRyKSAmeG1sRGVmYXVsdFNBWEhhbmRsZXIpOworI2VuZGlmCisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFNBWEhhbmRsZXJQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFNBWEhhbmRsZXJQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNkZWZpbmUgZ2VuX25iX3htbFZhbGlkQ3R4dFB0ciAyCitzdGF0aWMgeG1sVmFsaWRDdHh0UHRyIGdlbl94bWxWYWxpZEN0eHRQdHIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxOZXdWYWxpZEN0eHQoKSk7CisjZW5kaWYKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sVmFsaWRDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxWYWxpZEN0eHRQdHIgdmFsLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKHZhbCAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlVmFsaWRDdHh0KHZhbCk7CisjZW5kaWYKK30KKworI2RlZmluZSBnZW5fbmJfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgOAorCitzdGF0aWMgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgZ2VuX3htbFBhcnNlcklucHV0QnVmZmVyUHRyKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoIm1pc3NpbmcueG1sIiwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSgiPGZvby8+IiwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSgidGVzdC9lbnQyIiwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkpOworICAgIGlmIChubyA9PSAzKSByZXR1cm4oeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSgidGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbCIsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpKTsKKyAgICBpZiAobm8gPT0gNCkgcmV0dXJuKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoInRlc3QvdmFsaWQvZHRkcy94aHRtbDEtc3RyaWN0LmR0ZCIsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpKTsKKyAgICBpZiAobm8gPT0gNSkgcmV0dXJuKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoUkVNT1RFMUdPT0QsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpKTsKKyAgICBpZiAobm8gPT0gNikgcmV0dXJuKHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoUkVNT1RFMUJBRCwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgdmFsLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcih2YWwpOworfQorCisjZGVmaW5lIGdlbl9uYl94bWxEb2NQdHIgNAorc3RhdGljIHhtbERvY1B0ciBnZW5feG1sRG9jUHRyKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKHhtbE5ld0RvYyhCQURfQ0FTVCAiMS4wIikpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oeG1sUmVhZE1lbW9yeSgiPGZvby8+IiwgNiwgInRlc3QiLCBOVUxMLCAwKSk7CisgICAgaWYgKG5vID09IDIpIHJldHVybih4bWxSZWFkTWVtb3J5KCI8IURPQ1RZUEUgZm9vIFtdPiA8Zm9vLz4iLCAyNCwgInRlc3QiLCBOVUxMLCAwKSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbERvY1B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sRG9jUHRyIHZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAoKHZhbCAhPSBOVUxMKSAmJiAodmFsICE9IGFwaV9kb2MpICYmICh2YWwtPmRvYyAhPSBhcGlfZG9jKSkKKyAgICAgICAgeG1sRnJlZURvYyh2YWwpOworfQorCisjZGVmaW5lIGdlbl9uYl94bWxBdHRyUHRyIDIKK3N0YXRpYyB4bWxBdHRyUHRyIGdlbl94bWxBdHRyUHRyKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKGdldF9hcGlfYXR0cigpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sQXR0clB0cihpbnQgbm8sIHhtbEF0dHJQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIGZyZWVfYXBpX2RvYygpOworfQorCisjZGVmaW5lIGdlbl9uYl94bWxEaWN0UHRyIDIKK3N0YXRpYyB4bWxEaWN0UHRyIGdlbl94bWxEaWN0UHRyKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKHhtbERpY3RDcmVhdGUoKSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbERpY3RQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbERpY3RQdHIgdmFsLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmICh2YWwgIT0gTlVMTCkKKyAgICAgICAgeG1sRGljdEZyZWUodmFsKTsKK30KKworI2RlZmluZSBnZW5fbmJfeG1sTm9kZVB0ciAzCitzdGF0aWMgeG1sTm9kZVB0ciBnZW5feG1sTm9kZVB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxOZXdQSShCQURfQ0FTVCAidGVzdCIsIE5VTEwpKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKGdldF9hcGlfcm9vdCgpKTsKKyAgICByZXR1cm4oTlVMTCk7CisvKiAgICAgaWYgKG5vID09IDIpIHJldHVybigoeG1sTm9kZVB0cikgZ2V0X2FwaV9kb2MoKSk7ICovCit9CitzdGF0aWMgdm9pZCBkZXNfeG1sTm9kZVB0cihpbnQgbm8sIHhtbE5vZGVQdHIgdmFsLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAxKSB7CisgICAgICAgIGZyZWVfYXBpX2RvYygpOworICAgIH0gZWxzZSBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgeG1sVW5saW5rTm9kZSh2YWwpOworICAgICAgICB4bWxGcmVlTm9kZSh2YWwpOworICAgIH0KK30KKworI2RlZmluZSBnZW5fbmJfeG1sRHRkUHRyIDMKK3N0YXRpYyB4bWxEdGRQdHIgZ2VuX3htbER0ZFB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIAorICAgICAgICByZXR1cm4oeG1sTmV3RHRkKE5VTEwsIEJBRF9DQVNUICJkdGQiLCBCQURfQ0FTVCJmb28iLCBCQURfQ0FTVCJiYXIiKSk7CisgICAgaWYgKG5vID09IDEpIHJldHVybihnZXRfYXBpX2R0ZCgpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sRHRkUHRyKGludCBubywgeG1sRHRkUHRyIHZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMSkgZnJlZV9hcGlfZG9jKCk7CisgICAgZWxzZSBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgdmFsKTsKKyAgICAgICAgeG1sRnJlZU5vZGUoKHhtbE5vZGVQdHIpIHZhbCk7CisgICAgfQorfQorCisjZGVmaW5lIGdlbl9uYl94bWxOc1B0ciAyCitzdGF0aWMgeG1sTnNQdHIgZ2VuX3htbE5zUHRyKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKGdldF9hcGlfbnMoKSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbE5zUHRyKGludCBubywgeG1sTnNQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIGZyZWVfYXBpX2RvYygpOworfQorCisjZGVmaW5lIGdlbl9uYl94bWxOb2RlUHRyX2luIDMKK3N0YXRpYyB4bWxOb2RlUHRyIGdlbl94bWxOb2RlUHRyX2luKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKHhtbE5ld1BJKEJBRF9DQVNUICJ0ZXN0IiwgTlVMTCkpOworICAgIGlmIChubyA9PSAwKSByZXR1cm4oeG1sTmV3VGV4dChCQURfQ0FTVCAidGV4dCIpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sTm9kZVB0cl9pbihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sTm9kZVB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2lmZGVmIExJQlhNTF9XUklURVJfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sVGV4dFdyaXRlclB0ciAyCitzdGF0aWMgeG1sVGV4dFdyaXRlclB0ciBnZW5feG1sVGV4dFdyaXRlclB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUoInRlc3Qub3V0IiwgMCkpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxUZXh0V3JpdGVyUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxUZXh0V3JpdGVyUHRyIHZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpIHhtbEZyZWVUZXh0V3JpdGVyKHZhbCk7Cit9CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sVGV4dFJlYWRlclB0ciA0CitzdGF0aWMgeG1sVGV4dFJlYWRlclB0ciBnZW5feG1sVGV4dFJlYWRlclB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUoInRlc3QvZW50MiIpKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZSgidGVzdC92YWxpZC9SRUMteG1sLTE5OTgwMjEwLnhtbCIpKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKHhtbE5ld1RleHRSZWFkZXJGaWxlbmFtZSgidGVzdC92YWxpZC9kdGRzL3hodG1sMS1zdHJpY3QuZHRkIikpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxUZXh0UmVhZGVyUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxUZXh0UmVhZGVyUHRyIHZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpIHhtbEZyZWVUZXh0UmVhZGVyKHZhbCk7Cit9CisjZW5kaWYKKworI2RlZmluZSBnZW5fbmJfeG1sQnVmZmVyUHRyIDMKK3N0YXRpYyBjb25zdCBjaGFyICpzdGF0aWNfYnVmX2NvbnRlbnQgPSAiYSBzdGF0aWMgYnVmZmVyIjsKK3N0YXRpYyB4bWxCdWZmZXJQdHIgZ2VuX3htbEJ1ZmZlclB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxCdWZmZXJDcmVhdGUoKSk7CisgICAgaWYgKG5vID09IDEpIHJldHVybih4bWxCdWZmZXJDcmVhdGVTdGF0aWMoKHZvaWQgKilzdGF0aWNfYnVmX2NvbnRlbnQsIDEzKSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbEJ1ZmZlclB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sQnVmZmVyUHRyIHZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQnVmZmVyRnJlZSh2YWwpOworICAgIH0KK30KKworI2RlZmluZSBnZW5fbmJfeG1sTGlzdFB0ciAyCitzdGF0aWMgeG1sTGlzdFB0ciBnZW5feG1sTGlzdFB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxMaXN0Q3JlYXRlKE5VTEwsIE5VTEwpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sTGlzdFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sTGlzdFB0ciB2YWwsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgIHhtbExpc3REZWxldGUodmFsKTsKKyAgICB9Cit9CisKKyNkZWZpbmUgZ2VuX25iX3htbEhhc2hUYWJsZVB0ciAyCitzdGF0aWMgeG1sSGFzaFRhYmxlUHRyIGdlbl94bWxIYXNoVGFibGVQdHIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oeG1sSGFzaENyZWF0ZSgxMCkpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxIYXNoVGFibGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbEhhc2hUYWJsZVB0ciB2YWwsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgIHhtbEhhc2hGcmVlKHZhbCwgTlVMTCk7CisgICAgfQorfQorCisjaW5jbHVkZSA8bGlieG1sL3hwYXRoSW50ZXJuYWxzLmg+CisKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sWFBhdGhPYmplY3RQdHIgNQorc3RhdGljIHhtbFhQYXRoT2JqZWN0UHRyIGdlbl94bWxYUGF0aE9iamVjdFB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxYUGF0aE5ld1N0cmluZyhCQURfQ0FTVCAic3RyaW5nIG9iamVjdCIpKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKHhtbFhQYXRoTmV3RmxvYXQoMS4xKSk7CisgICAgaWYgKG5vID09IDIpIHJldHVybih4bWxYUGF0aE5ld0Jvb2xlYW4oMSkpOworICAgIGlmIChubyA9PSAzKSByZXR1cm4oeG1sWFBhdGhOZXdOb2RlU2V0KE5VTEwpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sWFBhdGhPYmplY3RQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFhQYXRoT2JqZWN0UHRyIHZhbCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHZhbCk7CisgICAgfQorfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyNkZWZpbmUgZ2VuX25iX3htbE91dHB1dEJ1ZmZlclB0ciAyCitzdGF0aWMgeG1sT3V0cHV0QnVmZmVyUHRyIGdlbl94bWxPdXRwdXRCdWZmZXJQdHIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoInRlc3Qub3V0IiwgTlVMTCwgMCkpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxPdXRwdXRCdWZmZXJQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbE91dHB1dEJ1ZmZlclB0ciB2YWwsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlckNsb3NlKHZhbCk7CisgICAgfQorfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKKyNkZWZpbmUgZ2VuX25iX3htbE5hbm9GVFBDdHh0UHRyIDQKK3N0YXRpYyB2b2lkICpnZW5feG1sTmFub0ZUUEN0eHRQdHIoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oeG1sTmFub0ZUUE5ld0N0eHQoUkVNT1RFMkdPT0QpKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKHhtbE5hbm9GVFBOZXdDdHh0KFJFTU9URTFHT09EKSk7CisgICAgaWYgKG5vID09IDIpIHJldHVybih4bWxOYW5vRlRQTmV3Q3R4dCgiZm9vIikpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxOYW5vRlRQQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgdm9pZCAqdmFsLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmICh2YWwgIT0gTlVMTCkgeworICAgICAgICB4bWxOYW5vRlRQRnJlZUN0eHQodmFsKTsKKyAgICB9Cit9CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKKyNkZWZpbmUgZ2VuX25iX3htbE5hbm9IVFRQQ3R4dFB0ciAxCitzdGF0aWMgdm9pZCAqZ2VuX3htbE5hbm9IVFRQQ3R4dFB0cihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDApIHJldHVybih4bWxOYW5vSFRUUE9wZW4oUkVNT1RFMUdPT0QsIE5VTEwpKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKHhtbE5hbm9IVFRQT3BlbihSRU1PVEUyR09PRCwgTlVMTCkpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oeG1sTmFub0hUVFBPcGVuKFJFTU9URTFCQUQsIE5VTEwpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sTmFub0hUVFBDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB2b2lkICp2YWwsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisJeG1sTmFub0hUVFBDbG9zZSh2YWwpOworICAgIH0KK30KKyNlbmRpZgorCisjZGVmaW5lIGdlbl9uYl94bWxDaGFyRW5jb2RpbmcgNAorc3RhdGljIHhtbENoYXJFbmNvZGluZyBnZW5feG1sQ2hhckVuY29kaW5nKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpOworICAgIGlmIChubyA9PSAxKSByZXR1cm4oWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKG5vID09IDIpIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR184ODU5XzEpOworICAgIHJldHVybihYTUxfQ0hBUl9FTkNPRElOR19FUlJPUik7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sQ2hhckVuY29kaW5nKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxDaGFyRW5jb2RpbmcgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKQorCisjZGVmaW5lIGdlbl9uYl94bWxFeHBDdHh0UHRyIDEKK3N0YXRpYyB4bWxFeHBDdHh0UHRyIGdlbl94bWxFeHBDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxFeHBDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxFeHBDdHh0UHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl94bWxFeHBOb2RlUHRyIDEKK3N0YXRpYyB4bWxFeHBOb2RlUHRyIGdlbl94bWxFeHBOb2RlUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxFeHBOb2RlUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxFeHBOb2RlUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNkZWZpbmUgZ2VuX25iX3htbFNjaGVtYVB0ciAxCitzdGF0aWMgeG1sU2NoZW1hUHRyIGdlbl94bWxTY2hlbWFQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFNjaGVtYVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU2NoZW1hUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl94bWxTY2hlbWFWYWxpZEN0eHRQdHIgMQorc3RhdGljIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBnZW5feG1sU2NoZW1hVmFsaWRDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxTY2hlbWFWYWxpZEN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2VuZGlmIC8qIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQgKi8KKworI2RlZmluZSBnZW5fbmJfeG1sSGFzaERlYWxsb2NhdG9yIDIKK3N0YXRpYyB2b2lkIAordGVzdF94bWxIYXNoRGVhbGxvY2F0b3Iodm9pZCAqcGF5bG9hZCBBVFRSSUJVVEVfVU5VU0VELCB4bWxDaGFyICpuYW1lIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIHhtbEhhc2hEZWFsbG9jYXRvciBnZW5feG1sSGFzaERlYWxsb2NhdG9yKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMCkgcmV0dXJuKHRlc3RfeG1sSGFzaERlYWxsb2NhdG9yKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sSGFzaERlYWxsb2NhdG9yKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxIYXNoRGVhbGxvY2F0b3IgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKworc3RhdGljIHZvaWQgZGVzcmV0X2ludChpbnQgdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF94bWxDaGFyKHhtbENoYXIgdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF9sb25nKGxvbmcgdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF91bnNpZ25lZF9sb25nKHVuc2lnbmVkIGxvbmcgdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF9kb3VibGUoZG91YmxlIHZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sQ2hhckVuY29kaW5nKHhtbENoYXJFbmNvZGluZyB2YWwgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2lmIDAKK3N0YXRpYyB2b2lkIGRlc3JldF9jb25zdF92b2lkX3B0cih2b2lkICp2YWwgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCitzdGF0aWMgdm9pZCBkZXNyZXRfdm9pZF9wdHIodm9pZCAqdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF9jb25zdF9jaGFyX3B0cihjb25zdCBjaGFyICp2YWwgQVRUUklCVVRFX1VOVVNFRCkgeworfQorc3RhdGljIHZvaWQgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKGNvbnN0IHhtbENoYXIgKnZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sQ2hhcl9wdHIoeG1sQ2hhciAqdmFsKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKQorCXhtbEZyZWUodmFsKTsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF94bWxEb2NQdHIoeG1sRG9jUHRyIHZhbCkgeworICAgIGlmICh2YWwgIT0gYXBpX2RvYykKKwl4bWxGcmVlRG9jKHZhbCk7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sRGljdFB0cih4bWxEaWN0UHRyIHZhbCkgeworICAgIHhtbERpY3RGcmVlKHZhbCk7Cit9CisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sT3V0cHV0QnVmZmVyUHRyKHhtbE91dHB1dEJ1ZmZlclB0ciB2YWwpIHsKKyAgICB4bWxPdXRwdXRCdWZmZXJDbG9zZSh2YWwpOworfQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sVGV4dFJlYWRlclB0cih4bWxUZXh0UmVhZGVyUHRyIHZhbCkgeworICAgIHhtbEZyZWVUZXh0UmVhZGVyKHZhbCk7Cit9CisjZW5kaWYKK3N0YXRpYyB2b2lkIGRlc3JldF94bWxOb2RlUHRyKHhtbE5vZGVQdHIgdmFsKSB7CisgICAgaWYgKCh2YWwgIT0gTlVMTCkgJiYgKHZhbCAhPSBhcGlfcm9vdCkgJiYgKHZhbCAhPSAoeG1sTm9kZVB0cikgYXBpX2RvYykpIHsKKwl4bWxVbmxpbmtOb2RlKHZhbCk7CisJeG1sRnJlZU5vZGUodmFsKTsKKyAgICB9Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sQXR0clB0cih4bWxBdHRyUHRyIHZhbCkgeworICAgIGlmICh2YWwgIT0gTlVMTCkgeworCXhtbFVubGlua05vZGUoKHhtbE5vZGVQdHIpIHZhbCk7CisJeG1sRnJlZU5vZGUoKHhtbE5vZGVQdHIpIHZhbCk7CisgICAgfQorfQorc3RhdGljIHZvaWQgZGVzcmV0X3htbEVudGl0eVB0cih4bWxFbnRpdHlQdHIgdmFsKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisJeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgdmFsKTsKKwl4bWxGcmVlTm9kZSgoeG1sTm9kZVB0cikgdmFsKTsKKyAgICB9Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sRWxlbWVudFB0cih4bWxFbGVtZW50UHRyIHZhbCkgeworICAgIGlmICh2YWwgIT0gTlVMTCkgeworCXhtbFVubGlua05vZGUoKHhtbE5vZGVQdHIpIHZhbCk7CisgICAgfQorfQorc3RhdGljIHZvaWQgZGVzcmV0X3htbEF0dHJpYnV0ZVB0cih4bWxBdHRyaWJ1dGVQdHIgdmFsKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisJeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgdmFsKTsKKyAgICB9Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sTnNQdHIoeG1sTnNQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF94bWxEdGRQdHIoeG1sRHRkUHRyIHZhbCkgeworICAgIGRlc3JldF94bWxOb2RlUHRyKCh4bWxOb2RlUHRyKXZhbCk7Cit9CisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3N0YXRpYyB2b2lkIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cih4bWxYUGF0aE9iamVjdFB0ciB2YWwpIHsKKyAgICB4bWxYUGF0aEZyZWVPYmplY3QodmFsKTsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF94bWxOb2RlU2V0UHRyKHhtbE5vZGVTZXRQdHIgdmFsKSB7CisgICAgeG1sWFBhdGhGcmVlTm9kZVNldCh2YWwpOworfQorI2VuZGlmCitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sUGFyc2VyQ3R4dFB0cih4bWxQYXJzZXJDdHh0UHRyIHZhbCkgeworICAgIHhtbEZyZWVQYXJzZXJDdHh0KHZhbCk7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgdmFsKSB7CisgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKHZhbCk7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sUGFyc2VySW5wdXRQdHIoeG1sUGFyc2VySW5wdXRQdHIgdmFsKSB7CisgICAgeG1sRnJlZUlucHV0U3RyZWFtKHZhbCk7Cit9CisjaWZkZWYgTElCWE1MX1dSSVRFUl9FTkFCTEVECitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sVGV4dFdyaXRlclB0cih4bWxUZXh0V3JpdGVyUHRyIHZhbCkgeworICAgIHhtbEZyZWVUZXh0V3JpdGVyKHZhbCk7Cit9CisjZW5kaWYKK3N0YXRpYyB2b2lkIGRlc3JldF94bWxCdWZmZXJQdHIoeG1sQnVmZmVyUHRyIHZhbCkgeworICAgIHhtbEJ1ZmZlckZyZWUodmFsKTsKK30KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHZhbCkgeworICAgIHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0KHZhbCk7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sU2NoZW1hVHlwZVB0cih4bWxTY2hlbWFUeXBlUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIoeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgdmFsKSB7CisgICAgeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0KHZhbCk7Cit9CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitzdGF0aWMgdm9pZCBkZXNyZXRfY29uc3RfaHRtbEVudGl0eURlc2NfcHRyKGNvbnN0IGh0bWxFbnRpdHlEZXNjICogdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKK3N0YXRpYyB2b2lkIGRlc3JldF94bWxOYW5vSFRUUEN0eHRQdHIodm9pZCAqdmFsKSB7CisgICAgeG1sTmFub0hUVFBDbG9zZSh2YWwpOworfQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sTmFub0ZUUEN0eHRQdHIodm9pZCAqdmFsKSB7CisgICAgeG1sTmFub0ZUUENsb3NlKHZhbCk7Cit9CisjZW5kaWYKKy8qIGN1dCBhbmQgcGFzdGVkIGZyb20gYXV0b2dlbmVyYXRlZCB0byBhdm9pZCB0cm91YmxlcyAqLworI2RlZmluZSBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHJfcHRyIDEKK3N0YXRpYyB4bWxDaGFyICoqIGdlbl9jb25zdF94bWxDaGFyX3B0cl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX2NvbnN0X3htbENoYXJfcHRyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqKiB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2RlZmluZSBnZW5fbmJfdW5zaWduZWRfY2hhcl9wdHIgMQorc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBnZW5fdW5zaWduZWRfY2hhcl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3Vuc2lnbmVkX2NoYXJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB1bnNpZ25lZCBjaGFyICogdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNkZWZpbmUgZ2VuX25iX2NvbnN0X3Vuc2lnbmVkX2NoYXJfcHRyIDEKK3N0YXRpYyB1bnNpZ25lZCBjaGFyICogZ2VuX2NvbnN0X3Vuc2lnbmVkX2NoYXJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19jb25zdF91bnNpZ25lZF9jaGFyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgdW5zaWduZWQgY2hhciAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfY29uc3RfaHRtbE5vZGVQdHIgMQorc3RhdGljIGh0bWxOb2RlUHRyIGdlbl9jb25zdF9odG1sTm9kZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfY29uc3RfaHRtbE5vZGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGh0bWxOb2RlUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisjZGVmaW5lIGdlbl9uYl9odG1sRG9jUHRyIDMKK3N0YXRpYyBodG1sRG9jUHRyIGdlbl9odG1sRG9jUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oaHRtbE5ld0RvYyhOVUxMLCBOVUxMKSk7CisgICAgaWYgKG5vID09IDEpIHJldHVybihodG1sUmVhZE1lbW9yeSgiPGh0bWwvPiIsIDcsICJ0ZXN0IiwgTlVMTCwgMCkpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19odG1sRG9jUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBodG1sRG9jUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmICgodmFsICE9IE5VTEwpICYmICh2YWwgIT0gYXBpX2RvYykgJiYgKHZhbC0+ZG9jICE9IGFwaV9kb2MpKQorICAgICAgICB4bWxGcmVlRG9jKHZhbCk7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfaHRtbERvY1B0cihodG1sRG9jUHRyIHZhbCkgeworICAgIGlmICgodmFsICE9IE5VTEwpICYmICh2YWwgIT0gYXBpX2RvYykgJiYgKHZhbC0+ZG9jICE9IGFwaV9kb2MpKQorICAgICAgICB4bWxGcmVlRG9jKHZhbCk7Cit9CisjZGVmaW5lIGdlbl9uYl9odG1sUGFyc2VyQ3R4dFB0ciAzCitzdGF0aWMgaHRtbFBhcnNlckN0eHRQdHIgZ2VuX2h0bWxQYXJzZXJDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAwKSByZXR1cm4oeG1sTmV3UGFyc2VyQ3R4dCgpKTsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKGh0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KCI8aHRtbC8+IiwgNykpOworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19odG1sUGFyc2VyQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaHRtbFBhcnNlckN0eHRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKQorICAgICAgICBodG1sRnJlZVBhcnNlckN0eHQodmFsKTsKK30KK3N0YXRpYyB2b2lkIGRlc3JldF9odG1sUGFyc2VyQ3R4dFB0cihodG1sUGFyc2VyQ3R4dFB0ciB2YWwpIHsKKyAgICBpZiAodmFsICE9IE5VTEwpCisgICAgICAgIGh0bWxGcmVlUGFyc2VyQ3R4dCh2YWwpOworfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sTm9kZVNldFB0ciAxCitzdGF0aWMgeG1sTm9kZVNldFB0ciBnZW5feG1sTm9kZVNldFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sTm9kZVNldFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sTm9kZVNldFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sU2hlbGxDdHh0UHRyIDEKK3N0YXRpYyB4bWxTaGVsbEN0eHRQdHIgZ2VuX3htbFNoZWxsQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU2hlbGxDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTaGVsbEN0eHRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sUGF0dGVyblB0ciAxCitzdGF0aWMgeG1sUGF0dGVyblB0ciBnZW5feG1sUGF0dGVyblB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sUGF0dGVyblB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sUGF0dGVyblB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisjZGVmaW5lIGdlbl9uYl94bWxFbGVtZW50Q29udGVudFB0ciAxCitzdGF0aWMgeG1sRWxlbWVudENvbnRlbnRQdHIgZ2VuX3htbEVsZW1lbnRDb250ZW50UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxFbGVtZW50Q29udGVudFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sRWxlbWVudENvbnRlbnRQdHIgdmFsLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmICh2YWwgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZUVsZW1lbnRDb250ZW50KHZhbCk7Cit9CitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sRWxlbWVudENvbnRlbnRQdHIoeG1sRWxlbWVudENvbnRlbnRQdHIgdmFsKSB7CisgICAgaWYgKHZhbCAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlRWxlbWVudENvbnRlbnQodmFsKTsKK30KKworI2RlZmluZSBnZW5fbmJfeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgMQorc3RhdGljIHhtbFBhcnNlck5vZGVJbmZvU2VxUHRyIGdlbl94bWxQYXJzZXJOb2RlSW5mb1NlcVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFBhcnNlck5vZGVJbmZvU2VxUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgdm9pZCBkZXNyZXRfY29uc3RfeG1sUGFyc2VyTm9kZUluZm9fcHRyKGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvICp2YWwgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl92b2lkX3B0cl9wdHIgMQorc3RhdGljIHZvaWQgKiogZ2VuX3ZvaWRfcHRyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfdm9pZF9wdHJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB2b2lkICoqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqICAgV0FSTklORzogZW5kIG9mIHRoZSBtYW51YWxseSBtYWludGFpbmVkIHBhcnQgb2YgdGhlIHRlc3QgY29kZQkqCisgKiAgICAgICAgICAgIGRvIG5vdCByZW1vdmUgb3IgYWx0ZXIgdGhlIENVVCBIRVJFIGxpbmUJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIENVVCBIRVJFOiBldmVyeXRoaW5nIGJlbG93IHRoYXQgbGluZSBpcyBnZW5lcmF0ZWQgKi8KKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitzdGF0aWMgdm9pZCBkZXNyZXRfaHRtbFN0YXR1cyhodG1sU3RhdHVzIHZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNlbmRpZgorCisjZGVmaW5lIGdlbl9uYl94bWxBdHRyaWJ1dGVEZWZhdWx0IDQKK3N0YXRpYyB4bWxBdHRyaWJ1dGVEZWZhdWx0IGdlbl94bWxBdHRyaWJ1dGVEZWZhdWx0KGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKFhNTF9BVFRSSUJVVEVfRklYRUQpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oWE1MX0FUVFJJQlVURV9JTVBMSUVEKTsKKyAgICBpZiAobm8gPT0gMykgcmV0dXJuKFhNTF9BVFRSSUJVVEVfTk9ORSk7CisgICAgaWYgKG5vID09IDQpIHJldHVybihYTUxfQVRUUklCVVRFX1JFUVVJUkVEKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc194bWxBdHRyaWJ1dGVEZWZhdWx0KGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxBdHRyaWJ1dGVEZWZhdWx0IHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl94bWxBdHRyaWJ1dGVUeXBlIDQKK3N0YXRpYyB4bWxBdHRyaWJ1dGVUeXBlIGdlbl94bWxBdHRyaWJ1dGVUeXBlKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKFhNTF9BVFRSSUJVVEVfQ0RBVEEpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oWE1MX0FUVFJJQlVURV9FTlRJVElFUyk7CisgICAgaWYgKG5vID09IDMpIHJldHVybihYTUxfQVRUUklCVVRFX0VOVElUWSk7CisgICAgaWYgKG5vID09IDQpIHJldHVybihYTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc194bWxBdHRyaWJ1dGVUeXBlKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxBdHRyaWJ1dGVUeXBlIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl94bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIDQKK3N0YXRpYyB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIGdlbl94bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKFhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oWE1MX0JVRkZFUl9BTExPQ19FWEFDVCk7CisgICAgaWYgKG5vID09IDMpIHJldHVybihYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSk7CisgICAgaWYgKG5vID09IDQpIHJldHVybihYTUxfQlVGRkVSX0FMTE9DX0lPKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc194bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSh4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECisjZGVmaW5lIGdlbl9uYl94bWxDYXRhbG9nQWxsb3cgNAorc3RhdGljIHhtbENhdGFsb2dBbGxvdyBnZW5feG1sQ2F0YWxvZ0FsbG93KGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKFhNTF9DQVRBX0FMTE9XX0FMTCk7CisgICAgaWYgKG5vID09IDIpIHJldHVybihYTUxfQ0FUQV9BTExPV19ET0NVTUVOVCk7CisgICAgaWYgKG5vID09IDMpIHJldHVybihYTUxfQ0FUQV9BTExPV19HTE9CQUwpOworICAgIGlmIChubyA9PSA0KSByZXR1cm4oWE1MX0NBVEFfQUxMT1dfTk9ORSk7CisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgdm9pZCBkZXNfeG1sQ2F0YWxvZ0FsbG93KGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxDYXRhbG9nQWxsb3cgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyB2b2lkIGRlc3JldF94bWxDYXRhbG9nQWxsb3coeG1sQ2F0YWxvZ0FsbG93IHZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sQ2F0YWxvZ1ByZWZlciAzCitzdGF0aWMgeG1sQ2F0YWxvZ1ByZWZlciBnZW5feG1sQ2F0YWxvZ1ByZWZlcihpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDEpIHJldHVybihYTUxfQ0FUQV9QUkVGRVJfTk9ORSk7CisgICAgaWYgKG5vID09IDIpIHJldHVybihYTUxfQ0FUQV9QUkVGRVJfUFVCTElDKTsKKyAgICBpZiAobm8gPT0gMykgcmV0dXJuKFhNTF9DQVRBX1BSRUZFUl9TWVNURU0pOworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIHZvaWQgZGVzX3htbENhdGFsb2dQcmVmZXIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbENhdGFsb2dQcmVmZXIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyB2b2lkIGRlc3JldF94bWxDYXRhbG9nUHJlZmVyKHhtbENhdGFsb2dQcmVmZXIgdmFsIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2VuZGlmCisKKyNkZWZpbmUgZ2VuX25iX3htbEVsZW1lbnRDb250ZW50VHlwZSA0CitzdGF0aWMgeG1sRWxlbWVudENvbnRlbnRUeXBlIGdlbl94bWxFbGVtZW50Q29udGVudFR5cGUoaW50IG5vLCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChubyA9PSAxKSByZXR1cm4oWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpOworICAgIGlmIChubyA9PSAzKSByZXR1cm4oWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEpOworICAgIGlmIChubyA9PSA0KSByZXR1cm4oWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpOworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIHZvaWQgZGVzX3htbEVsZW1lbnRDb250ZW50VHlwZShpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sRWxlbWVudENvbnRlbnRUeXBlIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZGVmaW5lIGdlbl9uYl94bWxFbGVtZW50VHlwZVZhbCA0CitzdGF0aWMgeG1sRWxlbWVudFR5cGVWYWwgZ2VuX3htbEVsZW1lbnRUeXBlVmFsKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKFhNTF9FTEVNRU5UX1RZUEVfQU5ZKTsKKyAgICBpZiAobm8gPT0gMikgcmV0dXJuKFhNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVCk7CisgICAgaWYgKG5vID09IDMpIHJldHVybihYTUxfRUxFTUVOVF9UWVBFX0VNUFRZKTsKKyAgICBpZiAobm8gPT0gNCkgcmV0dXJuKFhNTF9FTEVNRU5UX1RZUEVfTUlYRUQpOworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIHZvaWQgZGVzX3htbEVsZW1lbnRUeXBlVmFsKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxFbGVtZW50VHlwZVZhbCB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworI2RlZmluZSBnZW5fbmJfeG1sRmVhdHVyZSA0CitzdGF0aWMgeG1sRmVhdHVyZSBnZW5feG1sRmVhdHVyZShpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDEpIHJldHVybihYTUxfV0lUSF9BVVRPTUFUQSk7CisgICAgaWYgKG5vID09IDIpIHJldHVybihYTUxfV0lUSF9DMTROKTsKKyAgICBpZiAobm8gPT0gMykgcmV0dXJuKFhNTF9XSVRIX0NBVEFMT0cpOworICAgIGlmIChubyA9PSA0KSByZXR1cm4oWE1MX1dJVEhfREVCVUcpOworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIHZvaWQgZGVzX3htbEZlYXR1cmUoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbEZlYXR1cmUgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyB2b2lkIGRlc3JldF94bWxQYXJzZXJFcnJvcnMoeG1sUGFyc2VyRXJyb3JzIHZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisjZGVmaW5lIGdlbl9uYl94bWxTY2hlbWFWYWxUeXBlIDQKK3N0YXRpYyB4bWxTY2hlbWFWYWxUeXBlIGdlbl94bWxTY2hlbWFWYWxUeXBlKGludCBubywgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAobm8gPT0gMSkgcmV0dXJuKFhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oWE1MX1NDSEVNQVNfQU5ZVFlQRSk7CisgICAgaWYgKG5vID09IDMpIHJldHVybihYTUxfU0NIRU1BU19BTllVUkkpOworICAgIGlmIChubyA9PSA0KSByZXR1cm4oWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc194bWxTY2hlbWFWYWxUeXBlKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTY2hlbWFWYWxUeXBlIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgdm9pZCBkZXNyZXRfeG1sU2NoZW1hVmFsVHlwZSh4bWxTY2hlbWFWYWxUeXBlIHZhbCBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorI2RlZmluZSBnZW5fbmJfeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSA0CitzdGF0aWMgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSBnZW5feG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShpbnQgbm8sIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKG5vID09IDEpIHJldHVybihYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UpOworICAgIGlmIChubyA9PSAyKSByZXR1cm4oWE1MX1NDSEVNQV9XSElURVNQQUNFX1BSRVNFUlZFKTsKKyAgICBpZiAobm8gPT0gMykgcmV0dXJuKFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFKTsKKyAgICBpZiAobm8gPT0gNCkgcmV0dXJuKFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyB2b2lkIGRlc194bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC9IVE1McGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL0hUTUx0cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL1NBWDIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvYzE0bi5oPgorI2luY2x1ZGUgPGxpYnhtbC9jYXRhbG9nLmg+CisjaW5jbHVkZSA8bGlieG1sL2NodmFsaWQuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGVidWdYTUwuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZGljdC5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbmNvZGluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbnRpdGllcy5oPgorI2luY2x1ZGUgPGxpYnhtbC9oYXNoLmg+CisjaW5jbHVkZSA8bGlieG1sL2xpc3QuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvbmFub2Z0cC5oPgorI2luY2x1ZGUgPGxpYnhtbC9uYW5vaHR0cC5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhdHRlcm4uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcmVsYXhuZy5oPgorI2luY2x1ZGUgPGxpYnhtbC9zY2hlbWFzSW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL3NjaGVtYXRyb24uaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdmFsaWQuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveGluY2x1ZGUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sSU8uaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sYXV0b21hdGEuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbW9kdWxlLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHJlYWRlci5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWdleHAuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2F2ZS5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHNjaGVtYXN0eXBlcy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdW5pY29kZS5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx3cml0ZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGguaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBvaW50ZXIuaD4KK3N0YXRpYyBpbnQgdGVzdF9IVE1McGFyc2VyKHZvaWQpOworc3RhdGljIGludCB0ZXN0X0hUTUx0cmVlKHZvaWQpOworc3RhdGljIGludCB0ZXN0X1NBWDIodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfYzE0bih2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF9jYXRhbG9nKHZvaWQpOworc3RhdGljIGludCB0ZXN0X2NodmFsaWQodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfZGVidWdYTUwodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfZGljdCh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF9lbmNvZGluZyh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF9lbnRpdGllcyh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF9oYXNoKHZvaWQpOworc3RhdGljIGludCB0ZXN0X2xpc3Qodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfbmFub2Z0cCh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF9uYW5vaHR0cCh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF9wYXJzZXIodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfcGFyc2VySW50ZXJuYWxzKHZvaWQpOworc3RhdGljIGludCB0ZXN0X3BhdHRlcm4odm9pZCk7CitzdGF0aWMgaW50IHRlc3RfcmVsYXhuZyh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF9zY2hlbWFzSW50ZXJuYWxzKHZvaWQpOworc3RhdGljIGludCB0ZXN0X3NjaGVtYXRyb24odm9pZCk7CitzdGF0aWMgaW50IHRlc3RfdHJlZSh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF91cmkodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfdmFsaWQodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeGluY2x1ZGUodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeG1sSU8odm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeG1sYXV0b21hdGEodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeG1sZXJyb3Iodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeG1sbW9kdWxlKHZvaWQpOworc3RhdGljIGludCB0ZXN0X3htbHJlYWRlcih2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF94bWxyZWdleHAodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeG1sc2F2ZSh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF94bWxzY2hlbWFzKHZvaWQpOworc3RhdGljIGludCB0ZXN0X3htbHNjaGVtYXN0eXBlcyh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF94bWxzdHJpbmcodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeG1sdW5pY29kZSh2b2lkKTsKK3N0YXRpYyBpbnQgdGVzdF94bWx3cml0ZXIodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeHBhdGgodm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeHBhdGhJbnRlcm5hbHModm9pZCk7CitzdGF0aWMgaW50IHRlc3RfeHBvaW50ZXIodm9pZCk7CisKKy8qKgorICogdGVzdGxpYnhtbDI6CisgKgorICogTWFpbiBlbnRyeSBwb2ludCBvZiB0aGUgdGVzdGVyIGZvciB0aGUgZnVsbCBsaWJ4bWwyIG1vZHVsZSwKKyAqIGl0IGNhbGxzIGFsbCB0aGUgdGVzdGVyIGVudHJ5IHBvaW50IGZvciBlYWNoIG1vZHVsZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZXJyb3IgZm91bmQKKyAqLworc3RhdGljIGludAordGVzdGxpYnhtbDIodm9pZCkKK3sKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgdGVzdF9yZXQgKz0gdGVzdF9IVE1McGFyc2VyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9IVE1MdHJlZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfU0FYMigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfYzE0bigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfY2F0YWxvZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfY2h2YWxpZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfZGVidWdYTUwoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2RpY3QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2VuY29kaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9lbnRpdGllcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaGFzaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfbGlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfbmFub2Z0cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfbmFub2h0dHAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3BhcnNlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfcGFyc2VySW50ZXJuYWxzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9wYXR0ZXJuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9yZWxheG5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9zY2hlbWFzSW50ZXJuYWxzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9zY2hlbWF0cm9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF90cmVlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF91cmkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3ZhbGlkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94aW5jbHVkZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSU8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbGF1dG9tYXRhKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxlcnJvcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sbW9kdWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxyZWFkZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbHJlZ2V4cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sc2F2ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sc2NoZW1hcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sc2NoZW1hc3R5cGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxzdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbHVuaWNvZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbHdyaXRlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeHBhdGgoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3hwYXRoSW50ZXJuYWxzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94cG9pbnRlcigpOworCisgICAgcHJpbnRmKCJUb3RhbDogJWQgZnVuY3Rpb25zLCAlZCB0ZXN0cywgJWQgZXJyb3JzXG4iLAorICAgICAgICAgICBmdW5jdGlvbl90ZXN0cywgY2FsbF90ZXN0cywgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9VVEY4VG9IdG1sKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBjaGFyICogb3V0OyAvKiBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdCAqLworICAgIGludCBuX291dDsKKyAgICBpbnQgKiBvdXRsZW47IC8qIHRoZSBsZW5ndGggb2YgQG91dCAqLworICAgIGludCBuX291dGxlbjsKKyAgICB1bnNpZ25lZCBjaGFyICogaW47IC8qIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycyAqLworICAgIGludCBuX2luOworICAgIGludCAqIGlubGVuOyAvKiB0aGUgbGVuZ3RoIG9mIEBpbiAqLworICAgIGludCBuX2lubGVuOworCisgICAgZm9yIChuX291dCA9IDA7bl9vdXQgPCBnZW5fbmJfdW5zaWduZWRfY2hhcl9wdHI7bl9vdXQrKykgeworICAgIGZvciAobl9vdXRsZW4gPSAwO25fb3V0bGVuIDwgZ2VuX25iX2ludF9wdHI7bl9vdXRsZW4rKykgeworICAgIGZvciAobl9pbiA9IDA7bl9pbiA8IGdlbl9uYl9jb25zdF91bnNpZ25lZF9jaGFyX3B0cjtuX2luKyspIHsKKyAgICBmb3IgKG5faW5sZW4gPSAwO25faW5sZW4gPCBnZW5fbmJfaW50X3B0cjtuX2lubGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0ID0gZ2VuX3Vuc2lnbmVkX2NoYXJfcHRyKG5fb3V0LCAwKTsKKyAgICAgICAgb3V0bGVuID0gZ2VuX2ludF9wdHIobl9vdXRsZW4sIDEpOworICAgICAgICBpbiA9IGdlbl9jb25zdF91bnNpZ25lZF9jaGFyX3B0cihuX2luLCAyKTsKKyAgICAgICAgaW5sZW4gPSBnZW5faW50X3B0cihuX2lubGVuLCAzKTsKKworICAgICAgICByZXRfdmFsID0gVVRGOFRvSHRtbChvdXQsIG91dGxlbiwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilpbiwgaW5sZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc191bnNpZ25lZF9jaGFyX3B0cihuX291dCwgb3V0LCAwKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9vdXRsZW4sIG91dGxlbiwgMSk7CisgICAgICAgIGRlc19jb25zdF91bnNpZ25lZF9jaGFyX3B0cihuX2luLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKWluLCAyKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9pbmxlbiwgaW5sZW4sIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gVVRGOFRvSHRtbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dGxlbik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2lubGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl9jb25zdF9odG1sRWxlbURlc2NfcHRyIDEKK3N0YXRpYyBodG1sRWxlbURlc2MgKiBnZW5fY29uc3RfaHRtbEVsZW1EZXNjX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfY29uc3RfaHRtbEVsZW1EZXNjX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgaHRtbEVsZW1EZXNjICogdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxBdHRyQWxsb3dlZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaHRtbFN0YXR1cyByZXRfdmFsOworICAgIGh0bWxFbGVtRGVzYyAqIGVsdDsgLyogSFRNTCBlbGVtZW50ICovCisgICAgaW50IG5fZWx0OworICAgIHhtbENoYXIgKiBhdHRyOyAvKiBIVE1MIGF0dHJpYnV0ZSAqLworICAgIGludCBuX2F0dHI7CisgICAgaW50IGxlZ2FjeTsgLyogd2hldGhlciB0byBhbGxvdyBkZXByZWNhdGVkIGF0dHJpYnV0ZXMgKi8KKyAgICBpbnQgbl9sZWdhY3k7CisKKyAgICBmb3IgKG5fZWx0ID0gMDtuX2VsdCA8IGdlbl9uYl9jb25zdF9odG1sRWxlbURlc2NfcHRyO25fZWx0KyspIHsKKyAgICBmb3IgKG5fYXR0ciA9IDA7bl9hdHRyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fYXR0cisrKSB7CisgICAgZm9yIChuX2xlZ2FjeSA9IDA7bl9sZWdhY3kgPCBnZW5fbmJfaW50O25fbGVnYWN5KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZWx0ID0gZ2VuX2NvbnN0X2h0bWxFbGVtRGVzY19wdHIobl9lbHQsIDApOworICAgICAgICBhdHRyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fYXR0ciwgMSk7CisgICAgICAgIGxlZ2FjeSA9IGdlbl9pbnQobl9sZWdhY3ksIDIpOworCisgICAgICAgIHJldF92YWwgPSBodG1sQXR0ckFsbG93ZWQoKGNvbnN0IGh0bWxFbGVtRGVzYyAqKWVsdCwgKGNvbnN0IHhtbENoYXIgKilhdHRyLCBsZWdhY3kpOworICAgICAgICBkZXNyZXRfaHRtbFN0YXR1cyhyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfaHRtbEVsZW1EZXNjX3B0cihuX2VsdCwgKGNvbnN0IGh0bWxFbGVtRGVzYyAqKWVsdCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2F0dHIsIChjb25zdCB4bWxDaGFyICopYXR0ciwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZWdhY3ksIGxlZ2FjeSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sQXR0ckFsbG93ZWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWx0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hdHRyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZWdhY3kpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfaHRtbE5vZGVQdHIgMQorc3RhdGljIGh0bWxOb2RlUHRyIGdlbl9odG1sTm9kZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfaHRtbE5vZGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGh0bWxOb2RlUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF9odG1sQXV0b0Nsb3NlVGFnKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBodG1sRG9jUHRyIGRvYzsgLyogdGhlIEhUTUwgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIFRoZSB0YWcgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgaHRtbE5vZGVQdHIgZWxlbTsgLyogdGhlIEhUTUwgZWxlbWVudCAqLworICAgIGludCBuX2VsZW07CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl9odG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2VsZW0gPSAwO25fZWxlbSA8IGdlbl9uYl9odG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5faHRtbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgZWxlbSA9IGdlbl9odG1sTm9kZVB0cihuX2VsZW0sIDIpOworCisgICAgICAgIHJldF92YWwgPSBodG1sQXV0b0Nsb3NlVGFnKGRvYywgKGNvbnN0IHhtbENoYXIgKiluYW1lLCBlbGVtKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaHRtbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2h0bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sQXV0b0Nsb3NlVGFnIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGh0bWxQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgY2hhciAqIGJ1ZmZlcjsgLyogYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheSAqLworICAgIGludCBuX2J1ZmZlcjsKKyAgICBpbnQgc2l6ZTsgLyogdGhlIHNpemUgb2YgdGhlIGFycmF5ICovCisgICAgaW50IG5fc2l6ZTsKKworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWZmZXIgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIDApOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDEpOworCisgICAgICAgIHJldF92YWwgPSBodG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgc2l6ZSk7CisgICAgICAgIGRlc3JldF9odG1sUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfaHRtbFNBWEhhbmRsZXJQdHIgMQorc3RhdGljIGh0bWxTQVhIYW5kbGVyUHRyIGdlbl9odG1sU0FYSGFuZGxlclB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfaHRtbFNBWEhhbmRsZXJQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGh0bWxTQVhIYW5kbGVyUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF9odG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1BVU0hfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgcmV0X3ZhbDsKKyAgICBodG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIGEgU0FYIGhhbmRsZXIgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgdm9pZCAqIHVzZXJfZGF0YTsgLyogVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzICovCisgICAgaW50IG5fdXNlcl9kYXRhOworICAgIGNoYXIgKiBjaHVuazsgLyogYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGNoYXJzICovCisgICAgaW50IG5fY2h1bms7CisgICAgaW50IHNpemU7IC8qIG51bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgbl9zaXplOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogYW4gb3B0aW9uYWwgZmlsZSBuYW1lIG9yIFVSSSAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIHhtbENoYXJFbmNvZGluZyBlbmM7IC8qIGFuIG9wdGlvbmFsIGVuY29kaW5nICovCisgICAgaW50IG5fZW5jOworCisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfaHRtbFNBWEhhbmRsZXJQdHI7bl9zYXgrKykgeworICAgIGZvciAobl91c2VyX2RhdGEgPSAwO25fdXNlcl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fdXNlcl9kYXRhKyspIHsKKyAgICBmb3IgKG5fY2h1bmsgPSAwO25fY2h1bmsgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9jaHVuaysrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZW91dHB1dDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fZW5jID0gMDtuX2VuYyA8IGdlbl9uYl94bWxDaGFyRW5jb2Rpbmc7bl9lbmMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzYXggPSBnZW5faHRtbFNBWEhhbmRsZXJQdHIobl9zYXgsIDApOworICAgICAgICB1c2VyX2RhdGEgPSBnZW5fdXNlcmRhdGEobl91c2VyX2RhdGEsIDEpOworICAgICAgICBjaHVuayA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2NodW5rLCAyKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnQobl9zaXplLCAzKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZW91dHB1dChuX2ZpbGVuYW1lLCA0KTsKKyAgICAgICAgZW5jID0gZ2VuX3htbENoYXJFbmNvZGluZyhuX2VuYywgNSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dChzYXgsIHVzZXJfZGF0YSwgKGNvbnN0IGNoYXIgKiljaHVuaywgc2l6ZSwgZmlsZW5hbWUsIGVuYyk7CisgICAgICAgIGRlc3JldF9odG1sUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaHRtbFNBWEhhbmRsZXJQdHIobl9zYXgsIHNheCwgMCk7CisgICAgICAgIGRlc191c2VyZGF0YShuX3VzZXJfZGF0YSwgdXNlcl9kYXRhLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fY2h1bmssIChjb25zdCBjaGFyICopY2h1bmssIDIpOworICAgICAgICBkZXNfaW50KG5fc2l6ZSwgc2l6ZSwgMyk7CisgICAgICAgIGRlc19maWxlb3V0cHV0KG5fZmlsZW5hbWUsIGZpbGVuYW1lLCA0KTsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZyhuX2VuYywgZW5jLCA1KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zYXgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3VzZXJfZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2h1bmspOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxDdHh0UmVhZERvYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaHRtbERvY1B0ciByZXRfdmFsOworICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbENoYXIgKiBjdXI7IC8qIGEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmcgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fVVJMOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKSAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX2h0bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jdXIrKykgeworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2ZpbGVwYXRoO25fVVJMKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9pbnQ7bl9vcHRpb25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl9odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBjdXIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIDEpOworICAgICAgICBVUkwgPSBnZW5fZmlsZXBhdGgobl9VUkwsIDIpOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAzKTsKKyAgICAgICAgb3B0aW9ucyA9IGdlbl9pbnQobl9vcHRpb25zLCA0KTsKKworICAgICAgICByZXRfdmFsID0gaHRtbEN0eHRSZWFkRG9jKGN0eHQsIChjb25zdCB4bWxDaGFyICopY3VyLCBVUkwsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfaHRtbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaHRtbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAoY29uc3QgeG1sQ2hhciAqKWN1ciwgMSk7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDMpOworICAgICAgICBkZXNfaW50KG5fb3B0aW9ucywgb3B0aW9ucywgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sQ3R4dFJlYWREb2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxDdHh0UmVhZEZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaHRtbERvY1B0ciByZXRfdmFsOworICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogYSBmaWxlIG9yIFVSTCAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKSAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX2h0bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBjdHh0ID0gZ2VuX2h0bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIDEpOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAyKTsKKyAgICAgICAgb3B0aW9ucyA9IGdlbl9pbnQobl9vcHRpb25zLCAzKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbEN0eHRSZWFkRmlsZShjdHh0LCBmaWxlbmFtZSwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9odG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMik7CisgICAgICAgIGRlc19pbnQobl9vcHRpb25zLCBvcHRpb25zLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxDdHh0UmVhZE1lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaHRtbERvY1B0ciByZXRfdmFsOworICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIEhUTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBidWZmZXI7IC8qIGEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGludCBuX3NpemU7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fVVJMOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgaHRtbFBhcnNlck9wdGlvbihzKSAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX2h0bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2J1ZmZlciA9IDA7bl9idWZmZXIgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9idWZmZXIrKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50O25fc2l6ZSsrKSB7CisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkwrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX2h0bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMSk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMik7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMyk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDQpOworICAgICAgICBvcHRpb25zID0gZ2VuX2ludChuX29wdGlvbnMsIDUpOworCisgICAgICAgIHJldF92YWwgPSBodG1sQ3R4dFJlYWRNZW1vcnkoY3R4dCwgKGNvbnN0IGNoYXIgKilidWZmZXIsIHNpemUsIFVSTCwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9odG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAxKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDIpOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMyk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCA0KTsKKyAgICAgICAgZGVzX2ludChuX29wdGlvbnMsIG9wdGlvbnMsIDUpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEN0eHRSZWFkTWVtb3J5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1ZmZlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJMKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEN0eHRSZXNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gSFRNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX2h0bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5faHRtbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICBodG1sQ3R4dFJlc2V0KGN0eHQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEN0eHRSZXNldCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEN0eHRVc2VPcHRpb25zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBodG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBIVE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfaHRtbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX2h0bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG9wdGlvbnMgPSBnZW5faW50KG5fb3B0aW9ucywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxDdHh0VXNlT3B0aW9ucyhjdHh0LCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaHRtbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX29wdGlvbnMsIG9wdGlvbnMsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEN0eHRVc2VPcHRpb25zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaHRtbEVsZW1EZXNjICogcGFyZW50OyAvKiBIVE1MIHBhcmVudCBlbGVtZW50ICovCisgICAgaW50IG5fcGFyZW50OworICAgIHhtbENoYXIgKiBlbHQ7IC8qIEhUTUwgZWxlbWVudCAqLworICAgIGludCBuX2VsdDsKKworICAgIGZvciAobl9wYXJlbnQgPSAwO25fcGFyZW50IDwgZ2VuX25iX2NvbnN0X2h0bWxFbGVtRGVzY19wdHI7bl9wYXJlbnQrKykgeworICAgIGZvciAobl9lbHQgPSAwO25fZWx0IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fZWx0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGFyZW50ID0gZ2VuX2NvbnN0X2h0bWxFbGVtRGVzY19wdHIobl9wYXJlbnQsIDApOworICAgICAgICBlbHQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9lbHQsIDEpOworCisgICAgICAgIHJldF92YWwgPSBodG1sRWxlbWVudEFsbG93ZWRIZXJlKChjb25zdCBodG1sRWxlbURlc2MgKilwYXJlbnQsIChjb25zdCB4bWxDaGFyICopZWx0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfaHRtbEVsZW1EZXNjX3B0cihuX3BhcmVudCwgKGNvbnN0IGh0bWxFbGVtRGVzYyAqKXBhcmVudCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2VsdCwgKGNvbnN0IHhtbENoYXIgKillbHQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEVsZW1lbnRBbGxvd2VkSGVyZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wYXJlbnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsdCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sRWxlbWVudFN0YXR1c0hlcmUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGh0bWxTdGF0dXMgcmV0X3ZhbDsKKyAgICBodG1sRWxlbURlc2MgKiBwYXJlbnQ7IC8qIEhUTUwgcGFyZW50IGVsZW1lbnQgKi8KKyAgICBpbnQgbl9wYXJlbnQ7CisgICAgaHRtbEVsZW1EZXNjICogZWx0OyAvKiBIVE1MIGVsZW1lbnQgKi8KKyAgICBpbnQgbl9lbHQ7CisKKyAgICBmb3IgKG5fcGFyZW50ID0gMDtuX3BhcmVudCA8IGdlbl9uYl9jb25zdF9odG1sRWxlbURlc2NfcHRyO25fcGFyZW50KyspIHsKKyAgICBmb3IgKG5fZWx0ID0gMDtuX2VsdCA8IGdlbl9uYl9jb25zdF9odG1sRWxlbURlc2NfcHRyO25fZWx0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGFyZW50ID0gZ2VuX2NvbnN0X2h0bWxFbGVtRGVzY19wdHIobl9wYXJlbnQsIDApOworICAgICAgICBlbHQgPSBnZW5fY29uc3RfaHRtbEVsZW1EZXNjX3B0cihuX2VsdCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxFbGVtZW50U3RhdHVzSGVyZSgoY29uc3QgaHRtbEVsZW1EZXNjICopcGFyZW50LCAoY29uc3QgaHRtbEVsZW1EZXNjICopZWx0KTsKKyAgICAgICAgZGVzcmV0X2h0bWxTdGF0dXMocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2h0bWxFbGVtRGVzY19wdHIobl9wYXJlbnQsIChjb25zdCBodG1sRWxlbURlc2MgKilwYXJlbnQsIDApOworICAgICAgICBkZXNfY29uc3RfaHRtbEVsZW1EZXNjX3B0cihuX2VsdCwgKGNvbnN0IGh0bWxFbGVtRGVzYyAqKWVsdCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sRWxlbWVudFN0YXR1c0hlcmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcGFyZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEVuY29kZUVudGl0aWVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBjaGFyICogb3V0OyAvKiBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdCAqLworICAgIGludCBuX291dDsKKyAgICBpbnQgKiBvdXRsZW47IC8qIHRoZSBsZW5ndGggb2YgQG91dCAqLworICAgIGludCBuX291dGxlbjsKKyAgICB1bnNpZ25lZCBjaGFyICogaW47IC8qIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycyAqLworICAgIGludCBuX2luOworICAgIGludCAqIGlubGVuOyAvKiB0aGUgbGVuZ3RoIG9mIEBpbiAqLworICAgIGludCBuX2lubGVuOworICAgIGludCBxdW90ZUNoYXI7IC8qIHRoZSBxdW90ZSBjaGFyYWN0ZXIgdG8gZXNjYXBlICgnIG9yICIpIG9yIHplcm8uICovCisgICAgaW50IG5fcXVvdGVDaGFyOworCisgICAgZm9yIChuX291dCA9IDA7bl9vdXQgPCBnZW5fbmJfdW5zaWduZWRfY2hhcl9wdHI7bl9vdXQrKykgeworICAgIGZvciAobl9vdXRsZW4gPSAwO25fb3V0bGVuIDwgZ2VuX25iX2ludF9wdHI7bl9vdXRsZW4rKykgeworICAgIGZvciAobl9pbiA9IDA7bl9pbiA8IGdlbl9uYl9jb25zdF91bnNpZ25lZF9jaGFyX3B0cjtuX2luKyspIHsKKyAgICBmb3IgKG5faW5sZW4gPSAwO25faW5sZW4gPCBnZW5fbmJfaW50X3B0cjtuX2lubGVuKyspIHsKKyAgICBmb3IgKG5fcXVvdGVDaGFyID0gMDtuX3F1b3RlQ2hhciA8IGdlbl9uYl9pbnQ7bl9xdW90ZUNoYXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXQgPSBnZW5fdW5zaWduZWRfY2hhcl9wdHIobl9vdXQsIDApOworICAgICAgICBvdXRsZW4gPSBnZW5faW50X3B0cihuX291dGxlbiwgMSk7CisgICAgICAgIGluID0gZ2VuX2NvbnN0X3Vuc2lnbmVkX2NoYXJfcHRyKG5faW4sIDIpOworICAgICAgICBpbmxlbiA9IGdlbl9pbnRfcHRyKG5faW5sZW4sIDMpOworICAgICAgICBxdW90ZUNoYXIgPSBnZW5faW50KG5fcXVvdGVDaGFyLCA0KTsKKworICAgICAgICByZXRfdmFsID0gaHRtbEVuY29kZUVudGl0aWVzKG91dCwgb3V0bGVuLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKWluLCBpbmxlbiwgcXVvdGVDaGFyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfY2hhcl9wdHIobl9vdXQsIG91dCwgMCk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fb3V0bGVuLCBvdXRsZW4sIDEpOworICAgICAgICBkZXNfY29uc3RfdW5zaWduZWRfY2hhcl9wdHIobl9pbiwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilpbiwgMik7CisgICAgICAgIGRlc19pbnRfcHRyKG5faW5sZW4sIGlubGVuLCAzKTsKKyAgICAgICAgZGVzX2ludChuX3F1b3RlQ2hhciwgcXVvdGVDaGFyLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxFbmNvZGVFbnRpdGllcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dGxlbik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2lubGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9xdW90ZUNoYXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEVudGl0eUxvb2t1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgaHRtbEVudGl0eURlc2MgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgZW50aXR5IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxFbnRpdHlMb29rdXAoKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X2h0bWxFbnRpdHlEZXNjX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEVudGl0eUxvb2t1cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEVudGl0eVZhbHVlTG9va3VwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCBodG1sRW50aXR5RGVzYyAqIHJldF92YWw7CisgICAgdW5zaWduZWQgaW50IHZhbHVlOyAvKiB0aGUgZW50aXR5J3MgdW5pY29kZSB2YWx1ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX3Vuc2lnbmVkX2ludDtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fdW5zaWduZWRfaW50KG5fdmFsdWUsIDApOworCisgICAgICAgIHJldF92YWwgPSBodG1sRW50aXR5VmFsdWVMb29rdXAodmFsdWUpOworICAgICAgICBkZXNyZXRfY29uc3RfaHRtbEVudGl0eURlc2NfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc191bnNpZ25lZF9pbnQobl92YWx1ZSwgdmFsdWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEVudGl0eVZhbHVlTG9va3VwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEhhbmRsZU9taXR0ZWRFbGVtKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgdmFsOyAvKiBpbnQgMCBvciAxICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfaW50O25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX2ludChuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxIYW5kbGVPbWl0dGVkRWxlbSh2YWwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sSGFuZGxlT21pdHRlZEVsZW0iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbElzQXV0b0Nsb3NlZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaHRtbERvY1B0ciBkb2M7IC8qIHRoZSBIVE1MIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIGh0bWxOb2RlUHRyIGVsZW07IC8qIHRoZSBIVE1MIGVsZW1lbnQgKi8KKyAgICBpbnQgbl9lbGVtOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfaHRtbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2VsZW0gPSAwO25fZWxlbSA8IGdlbl9uYl9odG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5faHRtbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIGVsZW0gPSBnZW5faHRtbE5vZGVQdHIobl9lbGVtLCAxKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbElzQXV0b0Nsb3NlZChkb2MsIGVsZW0pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfaHRtbE5vZGVQdHIobl9lbGVtLCBlbGVtLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxJc0F1dG9DbG9zZWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxJc1NjcmlwdEF0dHJpYnV0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIGFuIGF0dHJpYnV0ZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDApOworCisgICAgICAgIHJldF92YWwgPSBodG1sSXNTY3JpcHRBdHRyaWJ1dGUoKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbElzU2NyaXB0QXR0cmlidXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sTmV3UGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgcmV0X3ZhbDsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHJldF92YWwgPSBodG1sTmV3UGFyc2VyQ3R4dCgpOworICAgICAgICBkZXNyZXRfaHRtbFBhcnNlckN0eHRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxOZXdQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxOb2RlU3RhdHVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBodG1sU3RhdHVzIHJldF92YWw7CisgICAgaHRtbE5vZGVQdHIgbm9kZTsgLyogYW4gaHRtbE5vZGVQdHIgaW4gYSB0cmVlICovCisgICAgaW50IG5fbm9kZTsKKyAgICBpbnQgbGVnYWN5OyAvKiB3aGV0aGVyIHRvIGFsbG93IGRlcHJlY2F0ZWQgZWxlbWVudHMgKFlFUyBpcyBmYXN0ZXIgaGVyZSBmb3IgRWxlbWVudCBub2RlcykgKi8KKyAgICBpbnQgbl9sZWdhY3k7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX2NvbnN0X2h0bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2xlZ2FjeSA9IDA7bl9sZWdhY3kgPCBnZW5fbmJfaW50O25fbGVnYWN5KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl9jb25zdF9odG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBsZWdhY3kgPSBnZW5faW50KG5fbGVnYWN5LCAxKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbE5vZGVTdGF0dXMoKGNvbnN0IGh0bWxOb2RlUHRyKW5vZGUsIGxlZ2FjeSk7CisgICAgICAgIGRlc3JldF9odG1sU3RhdHVzKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF9odG1sTm9kZVB0cihuX25vZGUsIChjb25zdCBodG1sTm9kZVB0cilub2RlLCAwKTsKKyAgICAgICAgZGVzX2ludChuX2xlZ2FjeSwgbGVnYWN5LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxOb2RlU3RhdHVzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlZ2FjeSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sUGFyc2VDaGFyUmVmKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBodG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBIVE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfaHRtbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl9odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSBodG1sUGFyc2VDaGFyUmVmKGN0eHQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbFBhcnNlQ2hhclJlZiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbFBhcnNlQ2h1bmsodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1BVU0hfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gSFRNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY2hhciAqIGNodW5rOyAvKiBhbiBjaGFyIGFycmF5ICovCisgICAgaW50IG5fY2h1bms7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIGluIGJ5dGUgb2YgdGhlIGNodW5rICovCisgICAgaW50IG5fc2l6ZTsKKyAgICBpbnQgdGVybWluYXRlOyAvKiBsYXN0IGNodW5rIGluZGljYXRvciAqLworICAgIGludCBuX3Rlcm1pbmF0ZTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfaHRtbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY2h1bmsgPSAwO25fY2h1bmsgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9jaHVuaysrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICBmb3IgKG5fdGVybWluYXRlID0gMDtuX3Rlcm1pbmF0ZSA8IGdlbl9uYl9pbnQ7bl90ZXJtaW5hdGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX2h0bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGNodW5rID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fY2h1bmssIDEpOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDIpOworICAgICAgICB0ZXJtaW5hdGUgPSBnZW5faW50KG5fdGVybWluYXRlLCAzKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbFBhcnNlQ2h1bmsoY3R4dCwgKGNvbnN0IGNoYXIgKiljaHVuaywgc2l6ZSwgdGVybWluYXRlKTsKKyAgICAgICAgaWYgKGN0eHQgIT0gTlVMTCkge3htbEZyZWVEb2MoY3R4dC0+bXlEb2MpOyBjdHh0LT5teURvYyA9IE5VTEw7fQorICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9jaHVuaywgKGNvbnN0IGNoYXIgKiljaHVuaywgMSk7CisgICAgICAgIGRlc19pbnQobl9zaXplLCBzaXplLCAyKTsKKyAgICAgICAgZGVzX2ludChuX3Rlcm1pbmF0ZSwgdGVybWluYXRlLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxQYXJzZUNodW5rIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NodW5rKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90ZXJtaW5hdGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sUGFyc2VEb2Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGh0bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogY3VyOyAvKiBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhciAqLworICAgIGludCBuX2N1cjsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIGEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbENoYXJfcHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxDaGFyX3B0cihuX2N1ciwgMCk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDEpOworCisgICAgICAgIHJldF92YWwgPSBodG1sUGFyc2VEb2MoY3VyLCAoY29uc3QgY2hhciAqKWVuY29kaW5nKTsKKyAgICAgICAgZGVzcmV0X2h0bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sUGFyc2VEb2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sUGFyc2VEb2N1bWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaHRtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gSFRNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX2h0bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5faHRtbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbFBhcnNlRG9jdW1lbnQoY3R4dCk7CisgICAgICAgIGlmIChjdHh0ICE9IE5VTEwpIHt4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsgY3R4dC0+bXlEb2MgPSBOVUxMO30KKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaHRtbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxQYXJzZURvY3VtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sUGFyc2VFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBodG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBIVE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfaHRtbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl9odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIGh0bWxQYXJzZUVsZW1lbnQoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2h0bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sUGFyc2VFbGVtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sUGFyc2VFbnRpdHlSZWYodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IGh0bWxFbnRpdHlEZXNjICogcmV0X3ZhbDsKKyAgICBodG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBIVE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxDaGFyICoqIHN0cjsgLyogbG9jYXRpb24gdG8gc3RvcmUgdGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fc3RyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl9odG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyX3B0cjtuX3N0cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5faHRtbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX3N0ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxQYXJzZUVudGl0eVJlZihjdHh0LCAoY29uc3QgeG1sQ2hhciAqKilzdHIpOworICAgICAgICBkZXNyZXRfY29uc3RfaHRtbEVudGl0eURlc2NfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fc3RyLCAoY29uc3QgeG1sQ2hhciAqKilzdHIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbFBhcnNlRW50aXR5UmVmIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sUGFyc2VGaWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGh0bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgSFRNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMCk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDEpOworCisgICAgICAgIHJldF92YWwgPSBodG1sUGFyc2VGaWxlKGZpbGVuYW1lLCAoY29uc3QgY2hhciAqKWVuY29kaW5nKTsKKyAgICAgICAgZGVzcmV0X2h0bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxSZWFkRG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBodG1sRG9jUHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIGN1cjsgLyogYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZyAqLworICAgIGludCBuX2N1cjsKKyAgICBjb25zdCBjaGFyICogVVJMOyAvKiB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9VUkw7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiBodG1sUGFyc2VyT3B0aW9uKHMpICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfaW50O25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgMCk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworICAgICAgICBvcHRpb25zID0gZ2VuX2ludChuX29wdGlvbnMsIDMpOworCisgICAgICAgIHJldF92YWwgPSBodG1sUmVhZERvYygoY29uc3QgeG1sQ2hhciAqKWN1ciwgVVJMLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X2h0bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAoY29uc3QgeG1sQ2hhciAqKWN1ciwgMCk7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDIpOworICAgICAgICBkZXNfaW50KG5fb3B0aW9ucywgb3B0aW9ucywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sUmVhZERvYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sUmVhZEZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGh0bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIGEgZmlsZSBvciBVUkwgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBvcHRpb25zOyAvKiBhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocykgKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlcGF0aChuX2ZpbGVuYW1lLCAwKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgMSk7CisgICAgICAgIG9wdGlvbnMgPSBnZW5faW50KG5fb3B0aW9ucywgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxSZWFkRmlsZShmaWxlbmFtZSwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9odG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAxKTsKKyAgICAgICAgZGVzX2ludChuX29wdGlvbnMsIG9wdGlvbnMsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbFJlYWRGaWxlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbFJlYWRNZW1vcnkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGh0bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICBjaGFyICogYnVmZmVyOyAvKiBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5ICovCisgICAgaW50IG5fYnVmZmVyOworICAgIGludCBzaXplOyAvKiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgbl9zaXplOworICAgIGNvbnN0IGNoYXIgKiBVUkw7IC8qIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX1VSTDsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBvcHRpb25zOyAvKiBhIGNvbWJpbmF0aW9uIG9mIGh0bWxQYXJzZXJPcHRpb24ocykgKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2J1ZmZlciA9IDA7bl9idWZmZXIgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9idWZmZXIrKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50O25fc2l6ZSsrKSB7CisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkwrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWZmZXIgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIDApOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDEpOworICAgICAgICBVUkwgPSBnZW5fZmlsZXBhdGgobl9VUkwsIDIpOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAzKTsKKyAgICAgICAgb3B0aW9ucyA9IGdlbl9pbnQobl9vcHRpb25zLCA0KTsKKworICAgICAgICByZXRfdmFsID0gaHRtbFJlYWRNZW1vcnkoKGNvbnN0IGNoYXIgKilidWZmZXIsIHNpemUsIFVSTCwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9odG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgKGNvbnN0IGNoYXIgKilidWZmZXIsIDApOworICAgICAgICBkZXNfaW50KG5fc2l6ZSwgc2l6ZSwgMSk7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDMpOworICAgICAgICBkZXNfaW50KG5fb3B0aW9ucywgb3B0aW9ucywgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sUmVhZE1lbW9yeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbFNBWFBhcnNlRG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBodG1sRG9jUHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIGN1cjsgLyogYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiBhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaHRtbFNBWEhhbmRsZXJQdHIgc2F4OyAvKiB0aGUgU0FYIGhhbmRsZXIgYmxvY2sgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgdm9pZCAqIHVzZXJEYXRhOyAvKiBpZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy4gKi8KKyAgICBpbnQgbl91c2VyRGF0YTsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbENoYXJfcHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfaHRtbFNBWEhhbmRsZXJQdHI7bl9zYXgrKykgeworICAgIGZvciAobl91c2VyRGF0YSA9IDA7bl91c2VyRGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX3VzZXJEYXRhKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbENoYXJfcHRyKG5fY3VyLCAwKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgMSk7CisgICAgICAgIHNheCA9IGdlbl9odG1sU0FYSGFuZGxlclB0cihuX3NheCwgMik7CisgICAgICAgIHVzZXJEYXRhID0gZ2VuX3VzZXJkYXRhKG5fdXNlckRhdGEsIDMpOworCisgICAgICAgIHJldF92YWwgPSBodG1sU0FYUGFyc2VEb2MoY3VyLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBzYXgsIHVzZXJEYXRhKTsKKyAgICAgICAgZGVzcmV0X2h0bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMSk7CisgICAgICAgIGRlc19odG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAyKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fdXNlckRhdGEsIHVzZXJEYXRhLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxTQVhQYXJzZURvYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zYXgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3VzZXJEYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbFNBWFBhcnNlRmlsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaHRtbERvY1B0ciByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIGZpbGVuYW1lICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiBhIGZyZWUgZm9ybSBDIHN0cmluZyBkZXNjcmliaW5nIHRoZSBIVE1MIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaHRtbFNBWEhhbmRsZXJQdHIgc2F4OyAvKiB0aGUgU0FYIGhhbmRsZXIgYmxvY2sgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgdm9pZCAqIHVzZXJEYXRhOyAvKiBpZiB1c2luZyBTQVgsIHRoaXMgcG9pbnRlciB3aWxsIGJlIHByb3ZpZGVkIG9uIGNhbGxiYWNrcy4gKi8KKyAgICBpbnQgbl91c2VyRGF0YTsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfaHRtbFNBWEhhbmRsZXJQdHI7bl9zYXgrKykgeworICAgIGZvciAobl91c2VyRGF0YSA9IDA7bl91c2VyRGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX3VzZXJEYXRhKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMCk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDEpOworICAgICAgICBzYXggPSBnZW5faHRtbFNBWEhhbmRsZXJQdHIobl9zYXgsIDIpOworICAgICAgICB1c2VyRGF0YSA9IGdlbl91c2VyZGF0YShuX3VzZXJEYXRhLCAzKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbFNBWFBhcnNlRmlsZShmaWxlbmFtZSwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgc2F4LCB1c2VyRGF0YSk7CisgICAgICAgIGRlc3JldF9odG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAxKTsKKyAgICAgICAgZGVzX2h0bWxTQVhIYW5kbGVyUHRyKG5fc2F4LCBzYXgsIDIpOworICAgICAgICBkZXNfdXNlcmRhdGEobl91c2VyRGF0YSwgdXNlckRhdGEsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbFNBWFBhcnNlRmlsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXNlckRhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sVGFnTG9va3VwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfSFRNTHBhcnNlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgSFRNTHBhcnNlciA6IDMyIG9mIDM4IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfVVRGOFRvSHRtbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbEF0dHJBbGxvd2VkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sQXV0b0Nsb3NlVGFnKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sQ3R4dFJlYWREb2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxDdHh0UmVhZEZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxDdHh0UmVhZE1lbW9yeSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbEN0eHRSZXNldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbEN0eHRVc2VPcHRpb25zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sRWxlbWVudEFsbG93ZWRIZXJlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sRWxlbWVudFN0YXR1c0hlcmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxFbmNvZGVFbnRpdGllcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbEVudGl0eUxvb2t1cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbEVudGl0eVZhbHVlTG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sSGFuZGxlT21pdHRlZEVsZW0oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxJc0F1dG9DbG9zZWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxJc1NjcmlwdEF0dHJpYnV0ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbE5ld1BhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxOb2RlU3RhdHVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sUGFyc2VDaGFyUmVmKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sUGFyc2VDaHVuaygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbFBhcnNlRG9jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sUGFyc2VEb2N1bWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbFBhcnNlRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbFBhcnNlRW50aXR5UmVmKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sUGFyc2VGaWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sUmVhZERvYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbFJlYWRGaWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sUmVhZE1lbW9yeSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbFNBWFBhcnNlRG9jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sU0FYUGFyc2VGaWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sVGFnTG9va3VwKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBIVE1McGFyc2VyOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQgKi8KKyAgICBpbnQgbl9idWY7CisgICAgeG1sRG9jUHRyIGN1cjsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fY3VyOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGVuY29kaW5nIHN0cmluZyAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBmb3JtYXQ7IC8qIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkICovCisgICAgaW50IG5fZm9ybWF0OworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sT3V0cHV0QnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxEb2NQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fZm9ybWF0ID0gMDtuX2Zvcm1hdCA8IGdlbl9uYl9pbnQ7bl9mb3JtYXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sT3V0cHV0QnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbERvY1B0cihuX2N1ciwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworICAgICAgICBmb3JtYXQgPSBnZW5faW50KG5fZm9ybWF0LCAzKTsKKworICAgICAgICBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQoYnVmLCBjdXIsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIGZvcm1hdCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE91dHB1dEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDIpOworICAgICAgICBkZXNfaW50KG5fZm9ybWF0LCBmb3JtYXQsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZm9ybWF0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsgLyogdGhlIEhUTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZW5jb2Rpbmcgc3RyaW5nICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxPdXRwdXRCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbERvY1B0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sT3V0cHV0QnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbERvY1B0cihuX2N1ciwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworCisgICAgICAgIGh0bWxEb2NDb250ZW50RHVtcE91dHB1dChidWYsIGN1ciwgKGNvbnN0IGNoYXIgKillbmNvZGluZyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE91dHB1dEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbERvY0R1bXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBGSUxFICogZjsgLyogdGhlIEZJTEUqICovCisgICAgaW50IG5fZjsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fZiA9IDA7bl9mIDwgZ2VuX25iX0ZJTEVfcHRyO25fZisrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZiA9IGdlbl9GSUxFX3B0cihuX2YsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sRG9jUHRyKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbERvY0R1bXAoZiwgY3VyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfRklMRV9wdHIobl9mLCBmLCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxEb2NEdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2YpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfeG1sQ2hhcl9wdHJfcHRyIDEKK3N0YXRpYyB4bWxDaGFyICoqIGdlbl94bWxDaGFyX3B0cl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbENoYXJfcHRyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sQ2hhciAqKiB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIGludAordGVzdF9odG1sRG9jRHVtcE1lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciBjdXI7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxDaGFyICoqIG1lbTsgLyogT1VUOiB0aGUgbWVtb3J5IHBvaW50ZXIgKi8KKyAgICBpbnQgbl9tZW07CisgICAgaW50ICogc2l6ZTsgLyogT1VUOiB0aGUgbWVtb3J5IGxlbmd0aCAqLworICAgIGludCBuX3NpemU7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxEb2NQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9tZW0gPSAwO25fbWVtIDwgZ2VuX25iX3htbENoYXJfcHRyX3B0cjtuX21lbSsrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnRfcHRyO25fc2l6ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDApOworICAgICAgICBtZW0gPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5fbWVtLCAxKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnRfcHRyKG5fc2l6ZSwgMik7CisKKyAgICAgICAgaHRtbERvY0R1bXBNZW1vcnkoY3VyLCBtZW0sIHNpemUpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9jdXIsIGN1ciwgMCk7CisgICAgICAgIGRlc194bWxDaGFyX3B0cl9wdHIobl9tZW0sIG1lbSwgMSk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fc2l6ZSwgc2l6ZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sRG9jRHVtcE1lbW9yeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX21lbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbERvY0R1bXBNZW1vcnlGb3JtYXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sQ2hhciAqKiBtZW07IC8qIE9VVDogdGhlIG1lbW9yeSBwb2ludGVyICovCisgICAgaW50IG5fbWVtOworICAgIGludCAqIHNpemU7IC8qIE9VVDogdGhlIG1lbW9yeSBsZW5ndGggKi8KKyAgICBpbnQgbl9zaXplOworICAgIGludCBmb3JtYXQ7IC8qIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkICovCisgICAgaW50IG5fZm9ybWF0OworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fbWVtID0gMDtuX21lbSA8IGdlbl9uYl94bWxDaGFyX3B0cl9wdHI7bl9tZW0rKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50X3B0cjtuX3NpemUrKykgeworICAgIGZvciAobl9mb3JtYXQgPSAwO25fZm9ybWF0IDwgZ2VuX25iX2ludDtuX2Zvcm1hdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDApOworICAgICAgICBtZW0gPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5fbWVtLCAxKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnRfcHRyKG5fc2l6ZSwgMik7CisgICAgICAgIGZvcm1hdCA9IGdlbl9pbnQobl9mb3JtYXQsIDMpOworCisgICAgICAgIGh0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0KGN1ciwgbWVtLCBzaXplLCBmb3JtYXQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9jdXIsIGN1ciwgMCk7CisgICAgICAgIGRlc194bWxDaGFyX3B0cl9wdHIobl9tZW0sIG1lbSwgMSk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fc2l6ZSwgc2l6ZSwgMik7CisgICAgICAgIGRlc19pbnQobl9mb3JtYXQsIGZvcm1hdCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sRG9jRHVtcE1lbW9yeUZvcm1hdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX21lbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZm9ybWF0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEdldE1ldGFFbmNvZGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgaHRtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX2h0bWxEb2NQdHI7bl9kb2MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5faHRtbERvY1B0cihuX2RvYywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxHZXRNZXRhRW5jb2RpbmcoZG9jKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19odG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEdldE1ldGFFbmNvZGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sSXNCb29sZWFuQXR0cih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxJc0Jvb2xlYW5BdHRyKChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxJc0Jvb2xlYW5BdHRyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sTmV3RG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBodG1sRG9jUHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIFVSSTsgLyogVVJJIGZvciB0aGUgZHRkLCBvciBOVUxMICovCisgICAgaW50IG5fVVJJOworICAgIHhtbENoYXIgKiBFeHRlcm5hbElEOyAvKiB0aGUgZXh0ZXJuYWwgSUQgb2YgdGhlIERURCwgb3IgTlVMTCAqLworICAgIGludCBuX0V4dGVybmFsSUQ7CisKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1VSSSsrKSB7CisgICAgZm9yIChuX0V4dGVybmFsSUQgPSAwO25fRXh0ZXJuYWxJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0V4dGVybmFsSUQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkkgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9VUkksIDApOworICAgICAgICBFeHRlcm5hbElEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fRXh0ZXJuYWxJRCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxOZXdEb2MoKGNvbnN0IHhtbENoYXIgKilVUkksIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCk7CisgICAgICAgIGRlc3JldF9odG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1VSSSwgKGNvbnN0IHhtbENoYXIgKilVUkksIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbE5ld0RvYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkkpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX0V4dGVybmFsSUQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbE5ld0RvY05vRHREKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBodG1sRG9jUHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIFVSSTsgLyogVVJJIGZvciB0aGUgZHRkLCBvciBOVUxMICovCisgICAgaW50IG5fVVJJOworICAgIHhtbENoYXIgKiBFeHRlcm5hbElEOyAvKiB0aGUgZXh0ZXJuYWwgSUQgb2YgdGhlIERURCwgb3IgTlVMTCAqLworICAgIGludCBuX0V4dGVybmFsSUQ7CisKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1VSSSsrKSB7CisgICAgZm9yIChuX0V4dGVybmFsSUQgPSAwO25fRXh0ZXJuYWxJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0V4dGVybmFsSUQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkkgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9VUkksIDApOworICAgICAgICBFeHRlcm5hbElEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fRXh0ZXJuYWxJRCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxOZXdEb2NOb0R0RCgoY29uc3QgeG1sQ2hhciAqKVVSSSwgKGNvbnN0IHhtbENoYXIgKilFeHRlcm5hbElEKTsKKyAgICAgICAgZGVzcmV0X2h0bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fVVJJLCAoY29uc3QgeG1sQ2hhciAqKVVSSSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX0V4dGVybmFsSUQsIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sTmV3RG9jTm9EdEQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJJKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9FeHRlcm5hbElEKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxOb2RlRHVtcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQgKi8KKyAgICBpbnQgbl9idWY7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBub2RlICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAyKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbE5vZGVEdW1wKGJ1ZiwgZG9jLCBjdXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbE5vZGVEdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxOb2RlRHVtcEZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBGSUxFICogb3V0OyAvKiB0aGUgRklMRSBwb2ludGVyICovCisgICAgaW50IG5fb3V0OworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9vdXQgPSAwO25fb3V0IDwgZ2VuX25iX0ZJTEVfcHRyO25fb3V0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXQgPSBnZW5fRklMRV9wdHIobl9vdXQsIDApOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAxKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDIpOworCisgICAgICAgIGh0bWxOb2RlRHVtcEZpbGUob3V0LCBkb2MsIGN1cik7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fb3V0LCBvdXQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxOb2RlRHVtcEZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIEZJTEUgKiBvdXQ7IC8qIHRoZSBGSUxFIHBvaW50ZXIgKi8KKyAgICBpbnQgbl9vdXQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBub2RlICovCisgICAgaW50IG5fY3VyOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IGZvcm1hdDsgLyogc2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQgKi8KKyAgICBpbnQgbl9mb3JtYXQ7CisKKyAgICBmb3IgKG5fb3V0ID0gMDtuX291dCA8IGdlbl9uYl9GSUxFX3B0cjtuX291dCsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX2Zvcm1hdCA9IDA7bl9mb3JtYXQgPCBnZW5fbmJfaW50O25fZm9ybWF0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0ID0gZ2VuX0ZJTEVfcHRyKG5fb3V0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAyKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgMyk7CisgICAgICAgIGZvcm1hdCA9IGdlbl9pbnQobl9mb3JtYXQsIDQpOworCisgICAgICAgIHJldF92YWwgPSBodG1sTm9kZUR1bXBGaWxlRm9ybWF0KG91dCwgZG9jLCBjdXIsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIGZvcm1hdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fb3V0LCBvdXQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDMpOworICAgICAgICBkZXNfaW50KG5fZm9ybWF0LCBmb3JtYXQsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbE5vZGVEdW1wRmlsZUZvcm1hdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZm9ybWF0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBIVE1MIGJ1ZmZlciBvdXRwdXQgKi8KKyAgICBpbnQgbl9idWY7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBub2RlICovCisgICAgaW50IG5fY3VyOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGVuY29kaW5nIHN0cmluZyAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBmb3JtYXQ7IC8qIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkICovCisgICAgaW50IG5fZm9ybWF0OworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sT3V0cHV0QnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fZm9ybWF0ID0gMDtuX2Zvcm1hdCA8IGdlbl9uYl9pbnQ7bl9mb3JtYXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sT3V0cHV0QnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAyKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgMyk7CisgICAgICAgIGZvcm1hdCA9IGdlbl9pbnQobl9mb3JtYXQsIDQpOworCisgICAgICAgIGh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dChidWYsIGRvYywgY3VyLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBmb3JtYXQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxPdXRwdXRCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDIpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMyk7CisgICAgICAgIGRlc19pbnQobl9mb3JtYXQsIGZvcm1hdCwgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Zvcm1hdCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sTm9kZUR1bXBPdXRwdXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOyAvKiB0aGUgSFRNTCBidWZmZXIgb3V0cHV0ICovCisgICAgaW50IG5fYnVmOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBlbmNvZGluZyBzdHJpbmcgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbE91dHB1dEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZiA9IGdlbl94bWxPdXRwdXRCdWZmZXJQdHIobl9idWYsIDApOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAxKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDIpOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAzKTsKKworICAgICAgICBodG1sTm9kZUR1bXBPdXRwdXQoYnVmLCBkb2MsIGN1ciwgKGNvbnN0IGNoYXIgKillbmNvZGluZyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE91dHB1dEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMik7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxOb2RlRHVtcE91dHB1dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxTYXZlRmlsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIGZpbGVuYW1lIChvciBVUkwpICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgeG1sRG9jUHRyIGN1cjsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVvdXRwdXQ7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZW91dHB1dChuX2ZpbGVuYW1lLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbERvY1B0cihuX2N1ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxTYXZlRmlsZShmaWxlbmFtZSwgY3VyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sU2F2ZUZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sU2F2ZUZpbGVFbmModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIHhtbERvY1B0ciBjdXI7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2N1cjsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZyAqLworICAgIGludCBuX2VuY29kaW5nOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVvdXRwdXQ7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDEpOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAyKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbFNhdmVGaWxlRW5jKGZpbGVuYW1lLCBjdXIsIChjb25zdCBjaGFyICopZW5jb2RpbmcpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlb3V0cHV0KG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbFNhdmVGaWxlRW5jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sU2F2ZUZpbGVGb3JtYXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIHhtbERvY1B0ciBjdXI7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2N1cjsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZyAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBmb3JtYXQ7IC8qIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkICovCisgICAgaW50IG5fZm9ybWF0OworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVvdXRwdXQ7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX2Zvcm1hdCA9IDA7bl9mb3JtYXQgPCBnZW5fbmJfaW50O25fZm9ybWF0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZW91dHB1dChuX2ZpbGVuYW1lLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbERvY1B0cihuX2N1ciwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworICAgICAgICBmb3JtYXQgPSBnZW5faW50KG5fZm9ybWF0LCAzKTsKKworICAgICAgICByZXRfdmFsID0gaHRtbFNhdmVGaWxlRm9ybWF0KGZpbGVuYW1lLCBjdXIsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIGZvcm1hdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgZmlsZW5hbWUsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMik7CisgICAgICAgIGRlc19pbnQobl9mb3JtYXQsIGZvcm1hdCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBodG1sU2F2ZUZpbGVGb3JtYXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Zvcm1hdCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X2h0bWxTZXRNZXRhRW5jb2Rpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGh0bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZW5jb2Rpbmcgc3RyaW5nICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl9odG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl9odG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9lbmNvZGluZywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxTZXRNZXRhRW5jb2RpbmcoZG9jLCAoY29uc3QgeG1sQ2hhciAqKWVuY29kaW5nKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaHRtbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCB4bWxDaGFyICopZW5jb2RpbmcsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbFNldE1ldGFFbmNvZGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9IVE1MdHJlZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgSFRNTHRyZWUgOiAxOCBvZiAxOCBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxEb2NDb250ZW50RHVtcEZvcm1hdE91dHB1dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbERvY0NvbnRlbnREdW1wT3V0cHV0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sRG9jRHVtcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbERvY0R1bXBNZW1vcnkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxEb2NEdW1wTWVtb3J5Rm9ybWF0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sR2V0TWV0YUVuY29kaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sSXNCb29sZWFuQXR0cigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbE5ld0RvYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbE5ld0RvY05vRHREKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sTm9kZUR1bXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxOb2RlRHVtcEZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxOb2RlRHVtcEZpbGVGb3JtYXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxOb2RlRHVtcEZvcm1hdE91dHB1dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbE5vZGVEdW1wT3V0cHV0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sU2F2ZUZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2h0bWxTYXZlRmlsZUVuYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbFNhdmVGaWxlRm9ybWF0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sU2V0TWV0YUVuY29kaW5nKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBIVE1MdHJlZTogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9kb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICBkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0KCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGRvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF9odG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICBodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWZhdWx0U0FYSGFuZGxlckluaXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICB4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfeG1sRW51bWVyYXRpb25QdHIgMQorc3RhdGljIHhtbEVudW1lcmF0aW9uUHRyIGdlbl94bWxFbnVtZXJhdGlvblB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sRW51bWVyYXRpb25QdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbEVudW1lcmF0aW9uUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJBdHRyaWJ1dGVEZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIGVsZW07IC8qIHRoZSBuYW1lIG9mIHRoZSBlbGVtZW50ICovCisgICAgaW50IG5fZWxlbTsKKyAgICB4bWxDaGFyICogZnVsbG5hbWU7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX2Z1bGxuYW1lOworICAgIGludCB0eXBlOyAvKiB0aGUgYXR0cmlidXRlIHR5cGUgKi8KKyAgICBpbnQgbl90eXBlOworICAgIGludCBkZWY7IC8qIHRoZSB0eXBlIG9mIGRlZmF1bHQgdmFsdWUgKi8KKyAgICBpbnQgbl9kZWY7CisgICAgeG1sQ2hhciAqIGRlZmF1bHRWYWx1ZTsgLyogdGhlIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlICovCisgICAgaW50IG5fZGVmYXVsdFZhbHVlOworICAgIHhtbEVudW1lcmF0aW9uUHRyIHRyZWU7IC8qIHRoZSB0cmVlIG9mIGVudW1lcmF0ZWQgdmFsdWUgc2V0ICovCisgICAgaW50IG5fdHJlZTsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fZWxlbSsrKSB7CisgICAgZm9yIChuX2Z1bGxuYW1lID0gMDtuX2Z1bGxuYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fZnVsbG5hbWUrKykgeworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfaW50O25fdHlwZSsrKSB7CisgICAgZm9yIChuX2RlZiA9IDA7bl9kZWYgPCBnZW5fbmJfaW50O25fZGVmKyspIHsKKyAgICBmb3IgKG5fZGVmYXVsdFZhbHVlID0gMDtuX2RlZmF1bHRWYWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2RlZmF1bHRWYWx1ZSsrKSB7CisgICAgZm9yIChuX3RyZWUgPSAwO25fdHJlZSA8IGdlbl9uYl94bWxFbnVtZXJhdGlvblB0cjtuX3RyZWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworICAgICAgICBlbGVtID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fZWxlbSwgMSk7CisgICAgICAgIGZ1bGxuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fZnVsbG5hbWUsIDIpOworICAgICAgICB0eXBlID0gZ2VuX2ludChuX3R5cGUsIDMpOworICAgICAgICBkZWYgPSBnZW5faW50KG5fZGVmLCA0KTsKKyAgICAgICAgZGVmYXVsdFZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fZGVmYXVsdFZhbHVlLCA1KTsKKyAgICAgICAgdHJlZSA9IGdlbl94bWxFbnVtZXJhdGlvblB0cihuX3RyZWUsIDYpOworCisgICAgICAgIHhtbFNBWDJBdHRyaWJ1dGVEZWNsKGN0eCwgKGNvbnN0IHhtbENoYXIgKillbGVtLCAoY29uc3QgeG1sQ2hhciAqKWZ1bGxuYW1lLCB0eXBlLCBkZWYsIChjb25zdCB4bWxDaGFyICopZGVmYXVsdFZhbHVlLCB0cmVlKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2VsZW0sIChjb25zdCB4bWxDaGFyICopZWxlbSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2Z1bGxuYW1lLCAoY29uc3QgeG1sQ2hhciAqKWZ1bGxuYW1lLCAyKTsKKyAgICAgICAgZGVzX2ludChuX3R5cGUsIHR5cGUsIDMpOworICAgICAgICBkZXNfaW50KG5fZGVmLCBkZWYsIDQpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9kZWZhdWx0VmFsdWUsIChjb25zdCB4bWxDaGFyICopZGVmYXVsdFZhbHVlLCA1KTsKKyAgICAgICAgZGVzX3htbEVudW1lcmF0aW9uUHRyKG5fdHJlZSwgdHJlZSwgNik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgyQXR0cmlidXRlRGVjbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Z1bGxuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90eXBlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RlZmF1bHRWYWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHJlZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgyQ0RhdGFCbG9jayh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogVGhlIHBjZGF0YSBjb250ZW50ICovCisgICAgaW50IG5fdmFsdWU7CisgICAgaW50IGxlbjsgLyogdGhlIGJsb2NrIGxlbmd0aCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHhtbFNBWDJDRGF0YUJsb2NrKGN0eCwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgbGVuKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJDRGF0YUJsb2NrIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJDaGFyYWN0ZXJzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIGNoOyAvKiBhIHhtbENoYXIgc3RyaW5nICovCisgICAgaW50IG5fY2g7CisgICAgaW50IGxlbjsgLyogdGhlIG51bWJlciBvZiB4bWxDaGFyICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgIGZvciAobl9jaCA9IDA7bl9jaCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NoKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworICAgICAgICBjaCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NoLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgeG1sU0FYMkNoYXJhY3RlcnMoY3R4LCAoY29uc3QgeG1sQ2hhciAqKWNoLCBsZW4pOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY2gsIChjb25zdCB4bWxDaGFyICopY2gsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkNoYXJhY3RlcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jaCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMkNvbW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSB4bWxTQVgyQ29tbWVudCBjb250ZW50ICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl92b2lkX3B0cjtuX2N0eCsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKworICAgICAgICB4bWxTQVgyQ29tbWVudChjdHgsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkNvbW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMkVsZW1lbnREZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBlbGVtZW50IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIGludCB0eXBlOyAvKiB0aGUgZWxlbWVudCB0eXBlICovCisgICAgaW50IG5fdHlwZTsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50OyAvKiB0aGUgZWxlbWVudCB2YWx1ZSB0cmVlICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl9pbnQ7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX3htbEVsZW1lbnRDb250ZW50UHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgdHlwZSA9IGdlbl9pbnQobl90eXBlLCAyKTsKKyAgICAgICAgY29udGVudCA9IGdlbl94bWxFbGVtZW50Q29udGVudFB0cihuX2NvbnRlbnQsIDMpOworCisgICAgICAgIHhtbFNBWDJFbGVtZW50RGVjbChjdHgsIChjb25zdCB4bWxDaGFyICopbmFtZSwgdHlwZSwgY29udGVudCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfaW50KG5fdHlwZSwgdHlwZSwgMik7CisgICAgICAgIGRlc194bWxFbGVtZW50Q29udGVudFB0cihuX2NvbnRlbnQsIGNvbnRlbnQsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkVsZW1lbnREZWNsIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgyRW5kRG9jdW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKworICAgICAgICB4bWxTQVgyRW5kRG9jdW1lbnQoY3R4KTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgyRW5kRG9jdW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJFbmRFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ET0NCX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBUaGUgZWxlbWVudCBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICB4bWxTQVgyRW5kRWxlbWVudChjdHgsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkVuZEVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMkVuZEVsZW1lbnROcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiBsb2NhbG5hbWU7IC8qIHRoZSBsb2NhbCBuYW1lIG9mIHRoZSBlbGVtZW50ICovCisgICAgaW50IG5fbG9jYWxuYW1lOworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlICovCisgICAgaW50IG5fcHJlZml4OworICAgIHhtbENoYXIgKiBVUkk7IC8qIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZSAqLworICAgIGludCBuX1VSSTsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbG9jYWxuYW1lID0gMDtuX2xvY2FsbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2xvY2FsbmFtZSsrKSB7CisgICAgZm9yIChuX3ByZWZpeCA9IDA7bl9wcmVmaXggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgrKykgeworICAgIGZvciAobl9VUkkgPSAwO25fVVJJIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fVVJJKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgbG9jYWxuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbG9jYWxuYW1lLCAxKTsKKyAgICAgICAgcHJlZml4ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAyKTsKKyAgICAgICAgVVJJID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fVVJJLCAzKTsKKworICAgICAgICB4bWxTQVgyRW5kRWxlbWVudE5zKGN0eCwgKGNvbnN0IHhtbENoYXIgKilsb2NhbG5hbWUsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKVVSSSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9sb2NhbG5hbWUsIChjb25zdCB4bWxDaGFyICopbG9jYWxuYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1VSSSwgKGNvbnN0IHhtbENoYXIgKilVUkksIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkVuZEVsZW1lbnROcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xvY2FsbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJlZml4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkkpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMkVudGl0eURlY2wodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICBpbnQgdHlwZTsgLyogdGhlIGVudGl0eSB0eXBlICovCisgICAgaW50IG5fdHlwZTsKKyAgICB4bWxDaGFyICogcHVibGljSWQ7IC8qIFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eSAqLworICAgIGludCBuX3B1YmxpY0lkOworICAgIHhtbENoYXIgKiBzeXN0ZW1JZDsgLyogVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5ICovCisgICAgaW50IG5fc3lzdGVtSWQ7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIHRoZSBlbnRpdHkgdmFsdWUgKHdpdGhvdXQgcHJvY2Vzc2luZykuICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl9pbnQ7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fcHVibGljSWQgPSAwO25fcHVibGljSWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wdWJsaWNJZCsrKSB7CisgICAgZm9yIChuX3N5c3RlbUlkID0gMDtuX3N5c3RlbUlkIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3lzdGVtSWQrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICB0eXBlID0gZ2VuX2ludChuX3R5cGUsIDIpOworICAgICAgICBwdWJsaWNJZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3B1YmxpY0lkLCAzKTsKKyAgICAgICAgc3lzdGVtSWQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zeXN0ZW1JZCwgNCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5feG1sQ2hhcl9wdHIobl9jb250ZW50LCA1KTsKKworICAgICAgICB4bWxTQVgyRW50aXR5RGVjbChjdHgsIChjb25zdCB4bWxDaGFyICopbmFtZSwgdHlwZSwgKGNvbnN0IHhtbENoYXIgKilwdWJsaWNJZCwgKGNvbnN0IHhtbENoYXIgKilzeXN0ZW1JZCwgY29udGVudCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfaW50KG5fdHlwZSwgdHlwZSwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3B1YmxpY0lkLCAoY29uc3QgeG1sQ2hhciAqKXB1YmxpY0lkLCAzKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzdGVtSWQsIChjb25zdCB4bWxDaGFyICopc3lzdGVtSWQsIDQpOworICAgICAgICBkZXNfeG1sQ2hhcl9wdHIobl9jb250ZW50LCBjb250ZW50LCA1KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJFbnRpdHlEZWNsIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHVibGljSWQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N5c3RlbUlkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMkV4dGVybmFsU3Vic2V0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSByb290IGVsZW1lbnQgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIEV4dGVybmFsSUQ7IC8qIHRoZSBleHRlcm5hbCBJRCAqLworICAgIGludCBuX0V4dGVybmFsSUQ7CisgICAgeG1sQ2hhciAqIFN5c3RlbUlEOyAvKiB0aGUgU1lTVEVNIElEIChlLmcuIGZpbGVuYW1lIG9yIFVSTCkgKi8KKyAgICBpbnQgbl9TeXN0ZW1JRDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX0V4dGVybmFsSUQgPSAwO25fRXh0ZXJuYWxJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0V4dGVybmFsSUQrKykgeworICAgIGZvciAobl9TeXN0ZW1JRCA9IDA7bl9TeXN0ZW1JRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1N5c3RlbUlEKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBFeHRlcm5hbElEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fRXh0ZXJuYWxJRCwgMik7CisgICAgICAgIFN5c3RlbUlEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fU3lzdGVtSUQsIDMpOworCisgICAgICAgIHhtbFNBWDJFeHRlcm5hbFN1YnNldChjdHgsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKilFeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKVN5c3RlbUlEKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX0V4dGVybmFsSUQsIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1N5c3RlbUlELCAoY29uc3QgeG1sQ2hhciAqKVN5c3RlbUlELCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJFeHRlcm5hbFN1YnNldCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX0V4dGVybmFsSUQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1N5c3RlbUlEKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJHZXRDb2x1bW5OdW1iZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYMkdldENvbHVtbk51bWJlcihjdHgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJHZXRDb2x1bW5OdW1iZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJHZXRFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRW50aXR5UHRyIHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogVGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYMkdldEVudGl0eShjdHgsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxFbnRpdHlQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkdldEVudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJHZXRMaW5lTnVtYmVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl92b2lkX3B0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNBWDJHZXRMaW5lTnVtYmVyKGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkdldExpbmVOdW1iZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRW50aXR5UHRyIHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogVGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYMkdldFBhcmFtZXRlckVudGl0eShjdHgsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxFbnRpdHlQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJHZXRQdWJsaWNJZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxTQVgyR2V0UHVibGljSWQoY3R4KTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJHZXRQdWJsaWNJZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMkdldFN5c3RlbUlkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IHhtbENoYXIgKiByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl92b2lkX3B0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNBWDJHZXRTeXN0ZW1JZChjdHgpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkdldFN5c3RlbUlkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0KGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkhhc0V4dGVybmFsU3Vic2V0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgySGFzSW50ZXJuYWxTdWJzZXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYMkhhc0ludGVybmFsU3Vic2V0KGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkhhc0ludGVybmFsU3Vic2V0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiBjaDsgLyogYSB4bWxDaGFyIHN0cmluZyAqLworICAgIGludCBuX2NoOworICAgIGludCBsZW47IC8qIHRoZSBudW1iZXIgb2YgeG1sQ2hhciAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fY2ggPSAwO25fY2ggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jaCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgY2ggPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jaCwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlKGN0eCwgKGNvbnN0IHhtbENoYXIgKiljaCwgbGVuKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NoLCAoY29uc3QgeG1sQ2hhciAqKWNoLCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJJZ25vcmFibGVXaGl0ZXNwYWNlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxTQVhIYW5kbGVyX3B0ciAxCitzdGF0aWMgeG1sU0FYSGFuZGxlciAqIGdlbl94bWxTQVhIYW5kbGVyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU0FYSGFuZGxlcl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFNBWEhhbmRsZXIgKiB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIGludAordGVzdF94bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFNBWEhhbmRsZXIgKiBoZGxyOyAvKiB0aGUgU0FYIGhhbmRsZXIgKi8KKyAgICBpbnQgbl9oZGxyOworICAgIGludCB3YXJuaW5nOyAvKiBmbGFnIGlmIG5vbi16ZXJvIHNldHMgdGhlIGhhbmRsZXIgd2FybmluZyBwcm9jZWR1cmUgKi8KKyAgICBpbnQgbl93YXJuaW5nOworCisgICAgZm9yIChuX2hkbHIgPSAwO25faGRsciA8IGdlbl9uYl94bWxTQVhIYW5kbGVyX3B0cjtuX2hkbHIrKykgeworICAgIGZvciAobl93YXJuaW5nID0gMDtuX3dhcm5pbmcgPCBnZW5fbmJfaW50O25fd2FybmluZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGhkbHIgPSBnZW5feG1sU0FYSGFuZGxlcl9wdHIobl9oZGxyLCAwKTsKKyAgICAgICAgd2FybmluZyA9IGdlbl9pbnQobl93YXJuaW5nLCAxKTsKKworICAgICAgICB4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyKGhkbHIsIHdhcm5pbmcpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTQVhIYW5kbGVyX3B0cihuX2hkbHIsIGhkbHIsIDApOworICAgICAgICBkZXNfaW50KG5fd2FybmluZywgd2FybmluZywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2hkbHIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dhcm5pbmcpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxTQVhIYW5kbGVyICogaGRscjsgLyogdGhlIFNBWCBoYW5kbGVyICovCisgICAgaW50IG5faGRscjsKKworICAgIGZvciAobl9oZGxyID0gMDtuX2hkbHIgPCBnZW5fbmJfeG1sU0FYSGFuZGxlcl9wdHI7bl9oZGxyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaGRsciA9IGdlbl94bWxTQVhIYW5kbGVyX3B0cihuX2hkbHIsIDApOworCisgICAgICAgIHhtbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyKGhkbHIpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTQVhIYW5kbGVyX3B0cihuX2hkbHIsIGhkbHIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faGRscik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxTQVhIYW5kbGVyICogaGRscjsgLyogdGhlIFNBWCBoYW5kbGVyICovCisgICAgaW50IG5faGRscjsKKworICAgIGZvciAobl9oZGxyID0gMDtuX2hkbHIgPCBnZW5fbmJfeG1sU0FYSGFuZGxlcl9wdHI7bl9oZGxyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaGRsciA9IGdlbl94bWxTQVhIYW5kbGVyX3B0cihuX2hkbHIsIDApOworCisgICAgICAgIHhtbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyKGhkbHIpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTQVhIYW5kbGVyX3B0cihuX2hkbHIsIGhkbHIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMkluaXRIdG1sRGVmYXVsdFNBWEhhbmRsZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faGRscik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJJbnRlcm5hbFN1YnNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgcm9vdCBlbGVtZW50IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBFeHRlcm5hbElEOyAvKiB0aGUgZXh0ZXJuYWwgSUQgKi8KKyAgICBpbnQgbl9FeHRlcm5hbElEOworICAgIHhtbENoYXIgKiBTeXN0ZW1JRDsgLyogdGhlIFNZU1RFTSBJRCAoZS5nLiBmaWxlbmFtZSBvciBVUkwpICovCisgICAgaW50IG5fU3lzdGVtSUQ7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl92b2lkX3B0cjtuX2N0eCsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9FeHRlcm5hbElEID0gMDtuX0V4dGVybmFsSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9FeHRlcm5hbElEKyspIHsKKyAgICBmb3IgKG5fU3lzdGVtSUQgPSAwO25fU3lzdGVtSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9TeXN0ZW1JRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgRXh0ZXJuYWxJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX0V4dGVybmFsSUQsIDIpOworICAgICAgICBTeXN0ZW1JRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX1N5c3RlbUlELCAzKTsKKworICAgICAgICB4bWxTQVgySW50ZXJuYWxTdWJzZXQoY3R4LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgySW50ZXJuYWxTdWJzZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9FeHRlcm5hbElEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9TeXN0ZW1JRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgySXNTdGFuZGFsb25lKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl92b2lkX3B0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNBWDJJc1N0YW5kYWxvbmUoY3R4KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgySXNTdGFuZGFsb25lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgyTm90YXRpb25EZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIFRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbiAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIHB1YmxpY0lkOyAvKiBUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHkgKi8KKyAgICBpbnQgbl9wdWJsaWNJZDsKKyAgICB4bWxDaGFyICogc3lzdGVtSWQ7IC8qIFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eSAqLworICAgIGludCBuX3N5c3RlbUlkOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fcHVibGljSWQgPSAwO25fcHVibGljSWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wdWJsaWNJZCsrKSB7CisgICAgZm9yIChuX3N5c3RlbUlkID0gMDtuX3N5c3RlbUlkIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3lzdGVtSWQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHB1YmxpY0lkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHVibGljSWQsIDIpOworICAgICAgICBzeXN0ZW1JZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c3RlbUlkLCAzKTsKKworICAgICAgICB4bWxTQVgyTm90YXRpb25EZWNsKGN0eCwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXB1YmxpY0lkLCAoY29uc3QgeG1sQ2hhciAqKXN5c3RlbUlkKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3B1YmxpY0lkLCAoY29uc3QgeG1sQ2hhciAqKXB1YmxpY0lkLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzdGVtSWQsIChjb25zdCB4bWxDaGFyICopc3lzdGVtSWQsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMk5vdGF0aW9uRGVjbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YmxpY0lkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXN0ZW1JZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIHRhcmdldDsgLyogdGhlIHRhcmdldCBuYW1lICovCisgICAgaW50IG5fdGFyZ2V0OworICAgIHhtbENoYXIgKiBkYXRhOyAvKiB0aGUgUEkgZGF0YSdzICovCisgICAgaW50IG5fZGF0YTsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fdGFyZ2V0ID0gMDtuX3RhcmdldCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3RhcmdldCsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworICAgICAgICB0YXJnZXQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl90YXJnZXQsIDEpOworICAgICAgICBkYXRhID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fZGF0YSwgMik7CisKKyAgICAgICAgeG1sU0FYMlByb2Nlc3NpbmdJbnN0cnVjdGlvbihjdHgsIChjb25zdCB4bWxDaGFyICopdGFyZ2V0LCAoY29uc3QgeG1sQ2hhciAqKWRhdGEpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdGFyZ2V0LCAoY29uc3QgeG1sQ2hhciAqKXRhcmdldCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2RhdGEsIChjb25zdCB4bWxDaGFyICopZGF0YSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFyZ2V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMlJlZmVyZW5jZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBUaGUgZW50aXR5IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworCisgICAgICAgIHhtbFNBWDJSZWZlcmVuY2UoY3R4LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJSZWZlcmVuY2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgyUmVzb2x2ZUVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIHB1YmxpY0lkOyAvKiBUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHkgKi8KKyAgICBpbnQgbl9wdWJsaWNJZDsKKyAgICB4bWxDaGFyICogc3lzdGVtSWQ7IC8qIFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eSAqLworICAgIGludCBuX3N5c3RlbUlkOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgIGZvciAobl9wdWJsaWNJZCA9IDA7bl9wdWJsaWNJZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3B1YmxpY0lkKyspIHsKKyAgICBmb3IgKG5fc3lzdGVtSWQgPSAwO25fc3lzdGVtSWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXN0ZW1JZCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cihuX2N0eCwgMCk7CisgICAgICAgIHB1YmxpY0lkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHVibGljSWQsIDEpOworICAgICAgICBzeXN0ZW1JZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c3RlbUlkLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYMlJlc29sdmVFbnRpdHkoY3R4LCAoY29uc3QgeG1sQ2hhciAqKXB1YmxpY0lkLCAoY29uc3QgeG1sQ2hhciAqKXN5c3RlbUlkKTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlcklucHV0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHVibGljSWQsIChjb25zdCB4bWxDaGFyICopcHVibGljSWQsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zeXN0ZW1JZCwgKGNvbnN0IHhtbENoYXIgKilzeXN0ZW1JZCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgyUmVzb2x2ZUVudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YmxpY0lkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXN0ZW1JZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxTQVhMb2NhdG9yUHRyIDEKK3N0YXRpYyB4bWxTQVhMb2NhdG9yUHRyIGdlbl94bWxTQVhMb2NhdG9yUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxTQVhMb2NhdG9yUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTQVhMb2NhdG9yUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJTZXREb2N1bWVudExvY2F0b3Iodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKyAgICB4bWxTQVhMb2NhdG9yUHRyIGxvYzsgLyogQSBTQVggTG9jYXRvciAqLworICAgIGludCBuX2xvYzsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fbG9jID0gMDtuX2xvYyA8IGdlbl9uYl94bWxTQVhMb2NhdG9yUHRyO25fbG9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgbG9jID0gZ2VuX3htbFNBWExvY2F0b3JQdHIobl9sb2MsIDEpOworCisgICAgICAgIHhtbFNBWDJTZXREb2N1bWVudExvY2F0b3IoY3R4LCBsb2MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX3htbFNBWExvY2F0b3JQdHIobl9sb2MsIGxvYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgyU3RhcnREb2N1bWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworCisgICAgICAgIHhtbFNBWDJTdGFydERvY3VtZW50KGN0eCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMlN0YXJ0RG9jdW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWDJTdGFydEVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgeG1sQ2hhciAqIGZ1bGxuYW1lOyAvKiBUaGUgZWxlbWVudCBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeCAqLworICAgIGludCBuX2Z1bGxuYW1lOworICAgIHhtbENoYXIgKiogYXR0czsgLyogQW4gYXJyYXkgb2YgbmFtZS92YWx1ZSBhdHRyaWJ1dGVzIHBhaXJzLCBOVUxMIHRlcm1pbmF0ZWQgKi8KKyAgICBpbnQgbl9hdHRzOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgIGZvciAobl9mdWxsbmFtZSA9IDA7bl9mdWxsbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2Z1bGxuYW1lKyspIHsKKyAgICBmb3IgKG5fYXR0cyA9IDA7bl9hdHRzIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyX3B0cjtuX2F0dHMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworICAgICAgICBmdWxsbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2Z1bGxuYW1lLCAxKTsKKyAgICAgICAgYXR0cyA9IGdlbl9jb25zdF94bWxDaGFyX3B0cl9wdHIobl9hdHRzLCAyKTsKKworICAgICAgICB4bWxTQVgyU3RhcnRFbGVtZW50KGN0eCwgKGNvbnN0IHhtbENoYXIgKilmdWxsbmFtZSwgKGNvbnN0IHhtbENoYXIgKiopYXR0cyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9mdWxsbmFtZSwgKGNvbnN0IHhtbENoYXIgKilmdWxsbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cl9wdHIobl9hdHRzLCAoY29uc3QgeG1sQ2hhciAqKilhdHRzLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWDJTdGFydEVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mdWxsbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXR0cyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVgyU3RhcnRFbGVtZW50TnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KSAqLworICAgIGludCBuX2N0eDsKKyAgICB4bWxDaGFyICogbG9jYWxuYW1lOyAvKiB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudCAqLworICAgIGludCBuX2xvY2FsbmFtZTsKKyAgICB4bWxDaGFyICogcHJlZml4OyAvKiB0aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZSAqLworICAgIGludCBuX3ByZWZpeDsKKyAgICB4bWxDaGFyICogVVJJOyAvKiB0aGUgZWxlbWVudCBuYW1lc3BhY2UgbmFtZSBpZiBhdmFpbGFibGUgKi8KKyAgICBpbnQgbl9VUkk7CisgICAgaW50IG5iX25hbWVzcGFjZXM7IC8qIG51bWJlciBvZiBuYW1lc3BhY2UgZGVmaW5pdGlvbnMgb24gdGhhdCBub2RlICovCisgICAgaW50IG5fbmJfbmFtZXNwYWNlczsKKyAgICB4bWxDaGFyICoqIG5hbWVzcGFjZXM7IC8qIHBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHByZWZpeC9VUkkgcGFpcnMgbmFtZXNwYWNlIGRlZmluaXRpb25zICovCisgICAgaW50IG5fbmFtZXNwYWNlczsKKyAgICBpbnQgbmJfYXR0cmlidXRlczsgLyogdGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzIG9uIHRoYXQgbm9kZSAqLworICAgIGludCBuX25iX2F0dHJpYnV0ZXM7CisgICAgaW50IG5iX2RlZmF1bHRlZDsgLyogdGhlIG51bWJlciBvZiBkZWZhdWx0ZWQgYXR0cmlidXRlcy4gKi8KKyAgICBpbnQgbl9uYl9kZWZhdWx0ZWQ7CisgICAgeG1sQ2hhciAqKiBhdHRyaWJ1dGVzOyAvKiBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiAobG9jYWxuYW1lL3ByZWZpeC9VUkkvdmFsdWUvZW5kKSBhdHRyaWJ1dGUgdmFsdWVzLiAqLworICAgIGludCBuX2F0dHJpYnV0ZXM7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl92b2lkX3B0cjtuX2N0eCsrKSB7CisgICAgZm9yIChuX2xvY2FsbmFtZSA9IDA7bl9sb2NhbG5hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9sb2NhbG5hbWUrKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1VSSSsrKSB7CisgICAgZm9yIChuX25iX25hbWVzcGFjZXMgPSAwO25fbmJfbmFtZXNwYWNlcyA8IGdlbl9uYl9pbnQ7bl9uYl9uYW1lc3BhY2VzKyspIHsKKyAgICBmb3IgKG5fbmFtZXNwYWNlcyA9IDA7bl9uYW1lc3BhY2VzIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyX3B0cjtuX25hbWVzcGFjZXMrKykgeworICAgIGZvciAobl9uYl9hdHRyaWJ1dGVzID0gMDtuX25iX2F0dHJpYnV0ZXMgPCBnZW5fbmJfaW50O25fbmJfYXR0cmlidXRlcysrKSB7CisgICAgZm9yIChuX25iX2RlZmF1bHRlZCA9IDA7bl9uYl9kZWZhdWx0ZWQgPCBnZW5fbmJfaW50O25fbmJfZGVmYXVsdGVkKyspIHsKKyAgICBmb3IgKG5fYXR0cmlidXRlcyA9IDA7bl9hdHRyaWJ1dGVzIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyX3B0cjtuX2F0dHJpYnV0ZXMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworICAgICAgICBsb2NhbG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9sb2NhbG5hbWUsIDEpOworICAgICAgICBwcmVmaXggPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgsIDIpOworICAgICAgICBVUkkgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9VUkksIDMpOworICAgICAgICBuYl9uYW1lc3BhY2VzID0gZ2VuX2ludChuX25iX25hbWVzcGFjZXMsIDQpOworICAgICAgICBuYW1lc3BhY2VzID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX25hbWVzcGFjZXMsIDUpOworICAgICAgICBuYl9hdHRyaWJ1dGVzID0gZ2VuX2ludChuX25iX2F0dHJpYnV0ZXMsIDYpOworICAgICAgICBuYl9kZWZhdWx0ZWQgPSBnZW5faW50KG5fbmJfZGVmYXVsdGVkLCA3KTsKKyAgICAgICAgYXR0cmlidXRlcyA9IGdlbl9jb25zdF94bWxDaGFyX3B0cl9wdHIobl9hdHRyaWJ1dGVzLCA4KTsKKworICAgICAgICB4bWxTQVgyU3RhcnRFbGVtZW50TnMoY3R4LCAoY29uc3QgeG1sQ2hhciAqKWxvY2FsbmFtZSwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIChjb25zdCB4bWxDaGFyICopVVJJLCBuYl9uYW1lc3BhY2VzLCAoY29uc3QgeG1sQ2hhciAqKiluYW1lc3BhY2VzLCBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0ZWQsIChjb25zdCB4bWxDaGFyICoqKWF0dHJpYnV0ZXMpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbG9jYWxuYW1lLCAoY29uc3QgeG1sQ2hhciAqKWxvY2FsbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9VUkksIChjb25zdCB4bWxDaGFyICopVVJJLCAzKTsKKyAgICAgICAgZGVzX2ludChuX25iX25hbWVzcGFjZXMsIG5iX25hbWVzcGFjZXMsIDQpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fbmFtZXNwYWNlcywgKGNvbnN0IHhtbENoYXIgKiopbmFtZXNwYWNlcywgNSk7CisgICAgICAgIGRlc19pbnQobl9uYl9hdHRyaWJ1dGVzLCBuYl9hdHRyaWJ1dGVzLCA2KTsKKyAgICAgICAgZGVzX2ludChuX25iX2RlZmF1bHRlZCwgbmJfZGVmYXVsdGVkLCA3KTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX2F0dHJpYnV0ZXMsIChjb25zdCB4bWxDaGFyICoqKWF0dHJpYnV0ZXMsIDgpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMlN0YXJ0RWxlbWVudE5zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbG9jYWxuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmaXgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSSSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmJfbmFtZXNwYWNlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZXNwYWNlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmJfYXR0cmlidXRlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmJfZGVmYXVsdGVkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBUaGUgbmFtZSBvZiB0aGUgZW50aXR5ICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogcHVibGljSWQ7IC8qIFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eSAqLworICAgIGludCBuX3B1YmxpY0lkOworICAgIHhtbENoYXIgKiBzeXN0ZW1JZDsgLyogVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5ICovCisgICAgaW50IG5fc3lzdGVtSWQ7CisgICAgeG1sQ2hhciAqIG5vdGF0aW9uTmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIG5vdGF0aW9uICovCisgICAgaW50IG5fbm90YXRpb25OYW1lOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fcHVibGljSWQgPSAwO25fcHVibGljSWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wdWJsaWNJZCsrKSB7CisgICAgZm9yIChuX3N5c3RlbUlkID0gMDtuX3N5c3RlbUlkIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3lzdGVtSWQrKykgeworICAgIGZvciAobl9ub3RhdGlvbk5hbWUgPSAwO25fbm90YXRpb25OYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbm90YXRpb25OYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3ZvaWRfcHRyKG5fY3R4LCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBwdWJsaWNJZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3B1YmxpY0lkLCAyKTsKKyAgICAgICAgc3lzdGVtSWQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zeXN0ZW1JZCwgMyk7CisgICAgICAgIG5vdGF0aW9uTmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25vdGF0aW9uTmFtZSwgNCk7CisKKyAgICAgICAgeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbChjdHgsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKilwdWJsaWNJZCwgKGNvbnN0IHhtbENoYXIgKilzeXN0ZW1JZCwgKGNvbnN0IHhtbENoYXIgKilub3RhdGlvbk5hbWUpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHVibGljSWQsIChjb25zdCB4bWxDaGFyICopcHVibGljSWQsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zeXN0ZW1JZCwgKGNvbnN0IHhtbENoYXIgKilzeXN0ZW1JZCwgMyk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25vdGF0aW9uTmFtZSwgKGNvbnN0IHhtbENoYXIgKilub3RhdGlvbk5hbWUsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YmxpY0lkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXN0ZW1JZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm90YXRpb25OYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVhEZWZhdWx0VmVyc2lvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCB2ZXJzaW9uOyAvKiB0aGUgdmVyc2lvbiwgMSBvciAyICovCisgICAgaW50IG5fdmVyc2lvbjsKKworICAgIGZvciAobl92ZXJzaW9uID0gMDtuX3ZlcnNpb24gPCBnZW5fbmJfaW50O25fdmVyc2lvbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZlcnNpb24gPSBnZW5faW50KG5fdmVyc2lvbiwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNBWERlZmF1bHRWZXJzaW9uKHZlcnNpb24pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl92ZXJzaW9uLCB2ZXJzaW9uLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWERlZmF1bHRWZXJzaW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZlcnNpb24pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWFZlcnNpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU0FYSGFuZGxlciAqIGhkbHI7IC8qIHRoZSBTQVggaGFuZGxlciAqLworICAgIGludCBuX2hkbHI7CisgICAgaW50IHZlcnNpb247IC8qIHRoZSB2ZXJzaW9uLCAxIG9yIDIgKi8KKyAgICBpbnQgbl92ZXJzaW9uOworCisgICAgZm9yIChuX2hkbHIgPSAwO25faGRsciA8IGdlbl9uYl94bWxTQVhIYW5kbGVyX3B0cjtuX2hkbHIrKykgeworICAgIGZvciAobl92ZXJzaW9uID0gMDtuX3ZlcnNpb24gPCBnZW5fbmJfaW50O25fdmVyc2lvbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGhkbHIgPSBnZW5feG1sU0FYSGFuZGxlcl9wdHIobl9oZGxyLCAwKTsKKyAgICAgICAgdmVyc2lvbiA9IGdlbl9pbnQobl92ZXJzaW9uLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYVmVyc2lvbihoZGxyLCB2ZXJzaW9uKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlcl9wdHIobl9oZGxyLCBoZGxyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3ZlcnNpb24sIHZlcnNpb24sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYVmVyc2lvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9oZGxyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92ZXJzaW9uKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfU0FYMih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgU0FYMiA6IDM4IG9mIDM4IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyQXR0cmlidXRlRGVjbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkNEYXRhQmxvY2soKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJDaGFyYWN0ZXJzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyQ29tbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkVsZW1lbnREZWNsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyRW5kRG9jdW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJFbmRFbGVtZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyRW5kRWxlbWVudE5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyRW50aXR5RGVjbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkV4dGVybmFsU3Vic2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyR2V0Q29sdW1uTnVtYmVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyR2V0RW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyR2V0TGluZU51bWJlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkdldFBhcmFtZXRlckVudGl0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkdldFB1YmxpY0lkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyR2V0U3lzdGVtSWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJIYXNFeHRlcm5hbFN1YnNldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkhhc0ludGVybmFsU3Vic2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgySWdub3JhYmxlV2hpdGVzcGFjZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkluaXREZWZhdWx0U0FYSGFuZGxlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMkluaXREb2NiRGVmYXVsdFNBWEhhbmRsZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJJbml0SHRtbERlZmF1bHRTQVhIYW5kbGVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgySW50ZXJuYWxTdWJzZXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJJc1N0YW5kYWxvbmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJOb3RhdGlvbkRlY2woKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJSZWZlcmVuY2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWDJSZXNvbHZlRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyU2V0RG9jdW1lbnRMb2NhdG9yKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyU3RhcnREb2N1bWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMlN0YXJ0RWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYMlN0YXJ0RWxlbWVudE5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVgyVW5wYXJzZWRFbnRpdHlEZWNsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVhEZWZhdWx0VmVyc2lvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYVmVyc2lvbigpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgU0FYMjogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxDMTRORG9jRHVtcE1lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0MxNE5fRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbiAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzOyAvKiB0aGUgbm9kZXMgc2V0IHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb3IgTlVMTCBpZiBhbGwgZG9jdW1lbnQgbm9kZXMgc2hvdWxkIGJlIGluY2x1ZGVkICovCisgICAgaW50IG5fbm9kZXM7CisgICAgaW50IG1vZGU7IC8qIHRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpICovCisgICAgaW50IG5fbW9kZTsKKyAgICB4bWxDaGFyICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlczsgLyogdGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyBlbmRlZCB3aXRoIGEgTlVMTCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vIGluY2x1c2l2ZSBuYW1lc3BhY2VzIChvbmx5IGZvciBleGNsdXNpdmUgY2Fub25pY2FsaXphdGlvbiwgaWdub3JlZCBvdGhlcndpc2UpICovCisgICAgaW50IG5faW5jbHVzaXZlX25zX3ByZWZpeGVzOworICAgIGludCB3aXRoX2NvbW1lbnRzOyAvKiBpbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90ICg9PTApICovCisgICAgaW50IG5fd2l0aF9jb21tZW50czsKKyAgICB4bWxDaGFyICoqIGRvY190eHRfcHRyOyAvKiB0aGUgbWVtb3J5IHBvaW50ZXIgZm9yIGFsbG9jYXRlZCBjYW5vbmljYWwgWE1MIHRleHQ7IHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbnMgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgeG1sRnJlZSgpIHRvIGZyZWUgYWxsb2NhdGVkIG1lbW9yeSAqLworICAgIGludCBuX2RvY190eHRfcHRyOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbm9kZXMgPSAwO25fbm9kZXMgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzKyspIHsKKyAgICBmb3IgKG5fbW9kZSA9IDA7bl9tb2RlIDwgZ2VuX25iX2ludDtuX21vZGUrKykgeworICAgIGZvciAobl9pbmNsdXNpdmVfbnNfcHJlZml4ZXMgPSAwO25faW5jbHVzaXZlX25zX3ByZWZpeGVzIDwgZ2VuX25iX3htbENoYXJfcHRyX3B0cjtuX2luY2x1c2l2ZV9uc19wcmVmaXhlcysrKSB7CisgICAgZm9yIChuX3dpdGhfY29tbWVudHMgPSAwO25fd2l0aF9jb21tZW50cyA8IGdlbl9uYl9pbnQ7bl93aXRoX2NvbW1lbnRzKyspIHsKKyAgICBmb3IgKG5fZG9jX3R4dF9wdHIgPSAwO25fZG9jX3R4dF9wdHIgPCBnZW5fbmJfeG1sQ2hhcl9wdHJfcHRyO25fZG9jX3R4dF9wdHIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbm9kZXMgPSBnZW5feG1sTm9kZVNldFB0cihuX25vZGVzLCAxKTsKKyAgICAgICAgbW9kZSA9IGdlbl9pbnQobl9tb2RlLCAyKTsKKyAgICAgICAgaW5jbHVzaXZlX25zX3ByZWZpeGVzID0gZ2VuX3htbENoYXJfcHRyX3B0cihuX2luY2x1c2l2ZV9uc19wcmVmaXhlcywgMyk7CisgICAgICAgIHdpdGhfY29tbWVudHMgPSBnZW5faW50KG5fd2l0aF9jb21tZW50cywgNCk7CisgICAgICAgIGRvY190eHRfcHRyID0gZ2VuX3htbENoYXJfcHRyX3B0cihuX2RvY190eHRfcHRyLCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sQzE0TkRvY0R1bXBNZW1vcnkoZG9jLCBub2RlcywgbW9kZSwgaW5jbHVzaXZlX25zX3ByZWZpeGVzLCB3aXRoX2NvbW1lbnRzLCBkb2NfdHh0X3B0cik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl9ub2Rlcywgbm9kZXMsIDEpOworICAgICAgICBkZXNfaW50KG5fbW9kZSwgbW9kZSwgMik7CisgICAgICAgIGRlc194bWxDaGFyX3B0cl9wdHIobl9pbmNsdXNpdmVfbnNfcHJlZml4ZXMsIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgMyk7CisgICAgICAgIGRlc19pbnQobl93aXRoX2NvbW1lbnRzLCB3aXRoX2NvbW1lbnRzLCA0KTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyX3B0cihuX2RvY190eHRfcHRyLCBkb2NfdHh0X3B0ciwgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDMTRORG9jRHVtcE1lbW9yeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbmNsdXNpdmVfbnNfcHJlZml4ZXMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dpdGhfY29tbWVudHMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvY190eHRfcHRyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDMTRORG9jU2F2ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0MxNE5fRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBYTUwgZG9jdW1lbnQgZm9yIGNhbm9uaXphdGlvbiAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzOyAvKiB0aGUgbm9kZXMgc2V0IHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjYW5vbml6ZWQgaW1hZ2Ugb3IgTlVMTCBpZiBhbGwgZG9jdW1lbnQgbm9kZXMgc2hvdWxkIGJlIGluY2x1ZGVkICovCisgICAgaW50IG5fbm9kZXM7CisgICAgaW50IG1vZGU7IC8qIHRoZSBjMTRuIG1vZGUgKHNlZSBAeG1sQzE0Tk1vZGUpICovCisgICAgaW50IG5fbW9kZTsKKyAgICB4bWxDaGFyICoqIGluY2x1c2l2ZV9uc19wcmVmaXhlczsgLyogdGhlIGxpc3Qgb2YgaW5jbHVzaXZlIG5hbWVzcGFjZSBwcmVmaXhlcyBlbmRlZCB3aXRoIGEgTlVMTCBvciBOVUxMIGlmIHRoZXJlIGlzIG5vIGluY2x1c2l2ZSBuYW1lc3BhY2VzIChvbmx5IGZvciBleGNsdXNpdmUgY2Fub25pY2FsaXphdGlvbiwgaWdub3JlZCBvdGhlcndpc2UpICovCisgICAgaW50IG5faW5jbHVzaXZlX25zX3ByZWZpeGVzOworICAgIGludCB3aXRoX2NvbW1lbnRzOyAvKiBpbmNsdWRlIGNvbW1lbnRzIGluIHRoZSByZXN1bHQgKCE9MCkgb3Igbm90ICg9PTApICovCisgICAgaW50IG5fd2l0aF9jb21tZW50czsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSB0byBzdG9yZSBjYW5vbmljYWwgWE1MIGltYWdlICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgaW50IGNvbXByZXNzaW9uOyAvKiB0aGUgY29tcHJlc3Npb24gbGV2ZWwgKHpsaWIgcmVxdXJlZCk6IC0xIC0gbGlieG1sIGRlZmF1bHQsIDAgLSB1bmNvbXByZXNzZWQsID4wIC0gY29tcHJlc3Npb24gbGV2ZWwgKi8KKyAgICBpbnQgbl9jb21wcmVzc2lvbjsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25vZGVzID0gMDtuX25vZGVzIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlcysrKSB7CisgICAgZm9yIChuX21vZGUgPSAwO25fbW9kZSA8IGdlbl9uYl9pbnQ7bl9tb2RlKyspIHsKKyAgICBmb3IgKG5faW5jbHVzaXZlX25zX3ByZWZpeGVzID0gMDtuX2luY2x1c2l2ZV9uc19wcmVmaXhlcyA8IGdlbl9uYl94bWxDaGFyX3B0cl9wdHI7bl9pbmNsdXNpdmVfbnNfcHJlZml4ZXMrKykgeworICAgIGZvciAobl93aXRoX2NvbW1lbnRzID0gMDtuX3dpdGhfY29tbWVudHMgPCBnZW5fbmJfaW50O25fd2l0aF9jb21tZW50cysrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVvdXRwdXQ7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX2NvbXByZXNzaW9uID0gMDtuX2NvbXByZXNzaW9uIDwgZ2VuX25iX2ludDtuX2NvbXByZXNzaW9uKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5vZGVzID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlcywgMSk7CisgICAgICAgIG1vZGUgPSBnZW5faW50KG5fbW9kZSwgMik7CisgICAgICAgIGluY2x1c2l2ZV9uc19wcmVmaXhlcyA9IGdlbl94bWxDaGFyX3B0cl9wdHIobl9pbmNsdXNpdmVfbnNfcHJlZml4ZXMsIDMpOworICAgICAgICB3aXRoX2NvbW1lbnRzID0gZ2VuX2ludChuX3dpdGhfY29tbWVudHMsIDQpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlb3V0cHV0KG5fZmlsZW5hbWUsIDUpOworICAgICAgICBjb21wcmVzc2lvbiA9IGdlbl9pbnQobl9jb21wcmVzc2lvbiwgNik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEMxNE5Eb2NTYXZlKGRvYywgbm9kZXMsIG1vZGUsIGluY2x1c2l2ZV9uc19wcmVmaXhlcywgd2l0aF9jb21tZW50cywgZmlsZW5hbWUsIGNvbXByZXNzaW9uKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzLCBub2RlcywgMSk7CisgICAgICAgIGRlc19pbnQobl9tb2RlLCBtb2RlLCAyKTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyX3B0cihuX2luY2x1c2l2ZV9uc19wcmVmaXhlcywgaW5jbHVzaXZlX25zX3ByZWZpeGVzLCAzKTsKKyAgICAgICAgZGVzX2ludChuX3dpdGhfY29tbWVudHMsIHdpdGhfY29tbWVudHMsIDQpOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgNSk7CisgICAgICAgIGRlc19pbnQobl9jb21wcmVzc2lvbiwgY29tcHJlc3Npb24sIDYpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQzE0TkRvY1NhdmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2Rlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbW9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW5jbHVzaXZlX25zX3ByZWZpeGVzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93aXRoX2NvbW1lbnRzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29tcHJlc3Npb24pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDMTRORG9jU2F2ZVRvKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQzE0Tl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIFhNTCBkb2N1bWVudCBmb3IgY2Fub25pemF0aW9uICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXM7IC8qIHRoZSBub2RlcyBzZXQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaXplZCBpbWFnZSBvciBOVUxMIGlmIGFsbCBkb2N1bWVudCBub2RlcyBzaG91bGQgYmUgaW5jbHVkZWQgKi8KKyAgICBpbnQgbl9ub2RlczsKKyAgICBpbnQgbW9kZTsgLyogdGhlIGMxNG4gbW9kZSAoc2VlIEB4bWxDMTROTW9kZSkgKi8KKyAgICBpbnQgbl9tb2RlOworICAgIHhtbENoYXIgKiogaW5jbHVzaXZlX25zX3ByZWZpeGVzOyAvKiB0aGUgbGlzdCBvZiBpbmNsdXNpdmUgbmFtZXNwYWNlIHByZWZpeGVzIGVuZGVkIHdpdGggYSBOVUxMIG9yIE5VTEwgaWYgdGhlcmUgaXMgbm8gaW5jbHVzaXZlIG5hbWVzcGFjZXMgKG9ubHkgZm9yIGV4Y2x1c2l2ZSBjYW5vbmljYWxpemF0aW9uLCBpZ25vcmVkIG90aGVyd2lzZSkgKi8KKyAgICBpbnQgbl9pbmNsdXNpdmVfbnNfcHJlZml4ZXM7CisgICAgaW50IHdpdGhfY29tbWVudHM7IC8qIGluY2x1ZGUgY29tbWVudHMgaW4gdGhlIHJlc3VsdCAoIT0wKSBvciBub3QgKD09MCkgKi8KKyAgICBpbnQgbl93aXRoX2NvbW1lbnRzOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBvdXRwdXQgYnVmZmVyIHRvIHN0b3JlIGNhbm9uaWNhbCBYTUw7IHRoaXMgYnVmZmVyIE1VU1QgaGF2ZSBlbmNvZGVyPT1OVUxMIGJlY2F1c2UgQzE0TiByZXF1aXJlcyBVVEYtOCBvdXRwdXQgKi8KKyAgICBpbnQgbl9idWY7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9ub2RlcyA9IDA7bl9ub2RlcyA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fbm9kZXMrKykgeworICAgIGZvciAobl9tb2RlID0gMDtuX21vZGUgPCBnZW5fbmJfaW50O25fbW9kZSsrKSB7CisgICAgZm9yIChuX2luY2x1c2l2ZV9uc19wcmVmaXhlcyA9IDA7bl9pbmNsdXNpdmVfbnNfcHJlZml4ZXMgPCBnZW5fbmJfeG1sQ2hhcl9wdHJfcHRyO25faW5jbHVzaXZlX25zX3ByZWZpeGVzKyspIHsKKyAgICBmb3IgKG5fd2l0aF9jb21tZW50cyA9IDA7bl93aXRoX2NvbW1lbnRzIDwgZ2VuX25iX2ludDtuX3dpdGhfY29tbWVudHMrKykgeworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbE91dHB1dEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBub2RlcyA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMsIDEpOworICAgICAgICBtb2RlID0gZ2VuX2ludChuX21vZGUsIDIpOworICAgICAgICBpbmNsdXNpdmVfbnNfcHJlZml4ZXMgPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5faW5jbHVzaXZlX25zX3ByZWZpeGVzLCAzKTsKKyAgICAgICAgd2l0aF9jb21tZW50cyA9IGdlbl9pbnQobl93aXRoX2NvbW1lbnRzLCA0KTsKKyAgICAgICAgYnVmID0gZ2VuX3htbE91dHB1dEJ1ZmZlclB0cihuX2J1ZiwgNSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEMxNE5Eb2NTYXZlVG8oZG9jLCBub2RlcywgbW9kZSwgaW5jbHVzaXZlX25zX3ByZWZpeGVzLCB3aXRoX2NvbW1lbnRzLCBidWYpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMsIG5vZGVzLCAxKTsKKyAgICAgICAgZGVzX2ludChuX21vZGUsIG1vZGUsIDIpOworICAgICAgICBkZXNfeG1sQ2hhcl9wdHJfcHRyKG5faW5jbHVzaXZlX25zX3ByZWZpeGVzLCBpbmNsdXNpdmVfbnNfcHJlZml4ZXMsIDMpOworICAgICAgICBkZXNfaW50KG5fd2l0aF9jb21tZW50cywgd2l0aF9jb21tZW50cywgNCk7CisgICAgICAgIGRlc194bWxPdXRwdXRCdWZmZXJQdHIobl9idWYsIGJ1ZiwgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDMTRORG9jU2F2ZVRvIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZXMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX21vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luY2x1c2l2ZV9uc19wcmVmaXhlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd2l0aF9jb21tZW50cyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDMTRORXhlY3V0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X2MxNG4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIGMxNG4gOiAzIG9mIDQgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDMTRORG9jRHVtcE1lbW9yeSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQzE0TkRvY1NhdmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEMxNE5Eb2NTYXZlVG8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEMxNE5FeGVjdXRlKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBjMTRuOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sQ2F0YWxvZ1B0ciAxCitzdGF0aWMgeG1sQ2F0YWxvZ1B0ciBnZW5feG1sQ2F0YWxvZ1B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sQ2F0YWxvZ1B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sQ2F0YWxvZ1B0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQUNhdGFsb2dBZGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENhdGFsb2dQdHIgY2F0YWw7IC8qIGEgQ2F0YWxvZyAqLworICAgIGludCBuX2NhdGFsOworICAgIHhtbENoYXIgKiB0eXBlOyAvKiB0aGUgdHlwZSBvZiByZWNvcmQgdG8gYWRkIHRvIHRoZSBjYXRhbG9nICovCisgICAgaW50IG5fdHlwZTsKKyAgICB4bWxDaGFyICogb3JpZzsgLyogdGhlIHN5c3RlbSwgcHVibGljIG9yIHByZWZpeCB0byBtYXRjaCAqLworICAgIGludCBuX29yaWc7CisgICAgeG1sQ2hhciAqIHJlcGxhY2U7IC8qIHRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIG1hdGNoICovCisgICAgaW50IG5fcmVwbGFjZTsKKworICAgIGZvciAobl9jYXRhbCA9IDA7bl9jYXRhbCA8IGdlbl9uYl94bWxDYXRhbG9nUHRyO25fY2F0YWwrKykgeworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fb3JpZyA9IDA7bl9vcmlnIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fb3JpZysrKSB7CisgICAgZm9yIChuX3JlcGxhY2UgPSAwO25fcmVwbGFjZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3JlcGxhY2UrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjYXRhbCA9IGdlbl94bWxDYXRhbG9nUHRyKG5fY2F0YWwsIDApOworICAgICAgICB0eXBlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdHlwZSwgMSk7CisgICAgICAgIG9yaWcgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9vcmlnLCAyKTsKKyAgICAgICAgcmVwbGFjZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3JlcGxhY2UsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxBQ2F0YWxvZ0FkZChjYXRhbCwgKGNvbnN0IHhtbENoYXIgKil0eXBlLCAoY29uc3QgeG1sQ2hhciAqKW9yaWcsIChjb25zdCB4bWxDaGFyICopcmVwbGFjZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbENhdGFsb2dQdHIobl9jYXRhbCwgY2F0YWwsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl90eXBlLCAoY29uc3QgeG1sQ2hhciAqKXR5cGUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9vcmlnLCAoY29uc3QgeG1sQ2hhciAqKW9yaWcsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9yZXBsYWNlLCAoY29uc3QgeG1sQ2hhciAqKXJlcGxhY2UsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQUNhdGFsb2dBZGQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2F0YWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3R5cGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29yaWcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlcGxhY2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBQ2F0YWxvZ0R1bXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDYXRhbG9nUHRyIGNhdGFsOyAvKiBhIENhdGFsb2cgKi8KKyAgICBpbnQgbl9jYXRhbDsKKyAgICBGSUxFICogb3V0OyAvKiB0aGUgZmlsZS4gKi8KKyAgICBpbnQgbl9vdXQ7CisKKyAgICBmb3IgKG5fY2F0YWwgPSAwO25fY2F0YWwgPCBnZW5fbmJfeG1sQ2F0YWxvZ1B0cjtuX2NhdGFsKyspIHsKKyAgICBmb3IgKG5fb3V0ID0gMDtuX291dCA8IGdlbl9uYl9GSUxFX3B0cjtuX291dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNhdGFsID0gZ2VuX3htbENhdGFsb2dQdHIobl9jYXRhbCwgMCk7CisgICAgICAgIG91dCA9IGdlbl9GSUxFX3B0cihuX291dCwgMSk7CisKKyAgICAgICAgeG1sQUNhdGFsb2dEdW1wKGNhdGFsLCBvdXQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDYXRhbG9nUHRyKG5fY2F0YWwsIGNhdGFsLCAwKTsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fb3V0LCBvdXQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQUNhdGFsb2dEdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NhdGFsKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQUNhdGFsb2dSZW1vdmUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENhdGFsb2dQdHIgY2F0YWw7IC8qIGEgQ2F0YWxvZyAqLworICAgIGludCBuX2NhdGFsOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIHZhbHVlIHRvIHJlbW92ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX2NhdGFsID0gMDtuX2NhdGFsIDwgZ2VuX25iX3htbENhdGFsb2dQdHI7bl9jYXRhbCsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjYXRhbCA9IGdlbl94bWxDYXRhbG9nUHRyKG5fY2F0YWwsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQUNhdGFsb2dSZW1vdmUoY2F0YWwsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDYXRhbG9nUHRyKG5fY2F0YWwsIGNhdGFsLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQUNhdGFsb2dSZW1vdmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2F0YWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEFDYXRhbG9nUmVzb2x2ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2F0YWxvZ1B0ciBjYXRhbDsgLyogYSBDYXRhbG9nICovCisgICAgaW50IG5fY2F0YWw7CisgICAgeG1sQ2hhciAqIHB1YklEOyAvKiB0aGUgcHVibGljIElEIHN0cmluZyAqLworICAgIGludCBuX3B1YklEOworICAgIHhtbENoYXIgKiBzeXNJRDsgLyogdGhlIHN5c3RlbSBJRCBzdHJpbmcgKi8KKyAgICBpbnQgbl9zeXNJRDsKKworICAgIGZvciAobl9jYXRhbCA9IDA7bl9jYXRhbCA8IGdlbl9uYl94bWxDYXRhbG9nUHRyO25fY2F0YWwrKykgeworICAgIGZvciAobl9wdWJJRCA9IDA7bl9wdWJJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3B1YklEKyspIHsKKyAgICBmb3IgKG5fc3lzSUQgPSAwO25fc3lzSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXNJRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNhdGFsID0gZ2VuX3htbENhdGFsb2dQdHIobl9jYXRhbCwgMCk7CisgICAgICAgIHB1YklEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHViSUQsIDEpOworICAgICAgICBzeXNJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c0lELCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sQUNhdGFsb2dSZXNvbHZlKGNhdGFsLCAoY29uc3QgeG1sQ2hhciAqKXB1YklELCAoY29uc3QgeG1sQ2hhciAqKXN5c0lEKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDYXRhbG9nUHRyKG5fY2F0YWwsIGNhdGFsLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHViSUQsIChjb25zdCB4bWxDaGFyICopcHViSUQsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zeXNJRCwgKGNvbnN0IHhtbENoYXIgKilzeXNJRCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxBQ2F0YWxvZ1Jlc29sdmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2F0YWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YklEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXNJRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQUNhdGFsb2dSZXNvbHZlUHVibGljKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDYXRhbG9nUHRyIGNhdGFsOyAvKiBhIENhdGFsb2cgKi8KKyAgICBpbnQgbl9jYXRhbDsKKyAgICB4bWxDaGFyICogcHViSUQ7IC8qIHRoZSBwdWJsaWMgSUQgc3RyaW5nICovCisgICAgaW50IG5fcHViSUQ7CisKKyAgICBmb3IgKG5fY2F0YWwgPSAwO25fY2F0YWwgPCBnZW5fbmJfeG1sQ2F0YWxvZ1B0cjtuX2NhdGFsKyspIHsKKyAgICBmb3IgKG5fcHViSUQgPSAwO25fcHViSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wdWJJRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNhdGFsID0gZ2VuX3htbENhdGFsb2dQdHIobl9jYXRhbCwgMCk7CisgICAgICAgIHB1YklEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHViSUQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMoY2F0YWwsIChjb25zdCB4bWxDaGFyICopcHViSUQpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbENhdGFsb2dQdHIobl9jYXRhbCwgY2F0YWwsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJJRCwgKGNvbnN0IHhtbENoYXIgKilwdWJJRCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxBQ2F0YWxvZ1Jlc29sdmVQdWJsaWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2F0YWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YklEKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEFDYXRhbG9nUmVzb2x2ZVN5c3RlbSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2F0YWxvZ1B0ciBjYXRhbDsgLyogYSBDYXRhbG9nICovCisgICAgaW50IG5fY2F0YWw7CisgICAgeG1sQ2hhciAqIHN5c0lEOyAvKiB0aGUgc3lzdGVtIElEIHN0cmluZyAqLworICAgIGludCBuX3N5c0lEOworCisgICAgZm9yIChuX2NhdGFsID0gMDtuX2NhdGFsIDwgZ2VuX25iX3htbENhdGFsb2dQdHI7bl9jYXRhbCsrKSB7CisgICAgZm9yIChuX3N5c0lEID0gMDtuX3N5c0lEIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3lzSUQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjYXRhbCA9IGdlbl94bWxDYXRhbG9nUHRyKG5fY2F0YWwsIDApOworICAgICAgICBzeXNJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c0lELCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtKGNhdGFsLCAoY29uc3QgeG1sQ2hhciAqKXN5c0lEKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDYXRhbG9nUHRyKG5fY2F0YWwsIGNhdGFsLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzSUQsIChjb25zdCB4bWxDaGFyICopc3lzSUQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NhdGFsKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXNJRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBQ2F0YWxvZ1Jlc29sdmVVUkkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENhdGFsb2dQdHIgY2F0YWw7IC8qIGEgQ2F0YWxvZyAqLworICAgIGludCBuX2NhdGFsOworICAgIHhtbENoYXIgKiBVUkk7IC8qIHRoZSBVUkkgKi8KKyAgICBpbnQgbl9VUkk7CisKKyAgICBmb3IgKG5fY2F0YWwgPSAwO25fY2F0YWwgPCBnZW5fbmJfeG1sQ2F0YWxvZ1B0cjtuX2NhdGFsKyspIHsKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1VSSSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNhdGFsID0gZ2VuX3htbENhdGFsb2dQdHIobl9jYXRhbCwgMCk7CisgICAgICAgIFVSSSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX1VSSSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEFDYXRhbG9nUmVzb2x2ZVVSSShjYXRhbCwgKGNvbnN0IHhtbENoYXIgKilVUkkpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbENhdGFsb2dQdHIobl9jYXRhbCwgY2F0YWwsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9VUkksIChjb25zdCB4bWxDaGFyICopVVJJLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEFDYXRhbG9nUmVzb2x2ZVVSSSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jYXRhbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJJKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENhdGFsb2dBZGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiB0eXBlOyAvKiB0aGUgdHlwZSBvZiByZWNvcmQgdG8gYWRkIHRvIHRoZSBjYXRhbG9nICovCisgICAgaW50IG5fdHlwZTsKKyAgICB4bWxDaGFyICogb3JpZzsgLyogdGhlIHN5c3RlbSwgcHVibGljIG9yIHByZWZpeCB0byBtYXRjaCAqLworICAgIGludCBuX29yaWc7CisgICAgeG1sQ2hhciAqIHJlcGxhY2U7IC8qIHRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIG1hdGNoICovCisgICAgaW50IG5fcmVwbGFjZTsKKworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fb3JpZyA9IDA7bl9vcmlnIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fb3JpZysrKSB7CisgICAgZm9yIChuX3JlcGxhY2UgPSAwO25fcmVwbGFjZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3JlcGxhY2UrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0eXBlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdHlwZSwgMCk7CisgICAgICAgIG9yaWcgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9vcmlnLCAxKTsKKyAgICAgICAgcmVwbGFjZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3JlcGxhY2UsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDYXRhbG9nQWRkKChjb25zdCB4bWxDaGFyICopdHlwZSwgKGNvbnN0IHhtbENoYXIgKilvcmlnLCAoY29uc3QgeG1sQ2hhciAqKXJlcGxhY2UpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3R5cGUsIChjb25zdCB4bWxDaGFyICopdHlwZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX29yaWcsIChjb25zdCB4bWxDaGFyICopb3JpZywgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3JlcGxhY2UsIChjb25zdCB4bWxDaGFyICopcmVwbGFjZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDYXRhbG9nQWRkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3R5cGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29yaWcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlcGxhY2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENhdGFsb2dDbGVhbnVwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorCisKKyAgICAgICAgeG1sQ2F0YWxvZ0NsZWFudXAoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDYXRhbG9nQ29udmVydCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgcmV0X3ZhbDsKKworCisgICAgICAgIHJldF92YWwgPSB4bWxDYXRhbG9nQ29udmVydCgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENhdGFsb2dEdW1wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgRklMRSAqIG91dDsgLyogdGhlIGZpbGUuICovCisgICAgaW50IG5fb3V0OworCisgICAgZm9yIChuX291dCA9IDA7bl9vdXQgPCBnZW5fbmJfRklMRV9wdHI7bl9vdXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXQgPSBnZW5fRklMRV9wdHIobl9vdXQsIDApOworCisgICAgICAgIHhtbENhdGFsb2dEdW1wKG91dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fb3V0LCBvdXQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2F0YWxvZ0R1bXAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ0dldERlZmF1bHRzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDYXRhbG9nQWxsb3cgcmV0X3ZhbDsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDYXRhbG9nR2V0RGVmYXVsdHMoKTsKKyAgICAgICAgZGVzcmV0X3htbENhdGFsb2dBbGxvdyhyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2F0YWxvZ0dldERlZmF1bHRzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENhdGFsb2dJc0VtcHR5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDYXRhbG9nUHRyIGNhdGFsOyAvKiBzaG91bGQgdGhpcyBjcmVhdGUgYW4gU0dNTCBjYXRhbG9nICovCisgICAgaW50IG5fY2F0YWw7CisKKyAgICBmb3IgKG5fY2F0YWwgPSAwO25fY2F0YWwgPCBnZW5fbmJfeG1sQ2F0YWxvZ1B0cjtuX2NhdGFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY2F0YWwgPSBnZW5feG1sQ2F0YWxvZ1B0cihuX2NhdGFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ2F0YWxvZ0lzRW1wdHkoY2F0YWwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDYXRhbG9nUHRyKG5fY2F0YWwsIGNhdGFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENhdGFsb2dJc0VtcHR5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NhdGFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgdm9pZCAqIGNhdGFsb2dzOyAvKiBhIGRvY3VtZW50J3MgbGlzdCBvZiBjYXRhbG9ncyAqLworICAgIGludCBuX2NhdGFsb2dzOworICAgIHhtbENoYXIgKiBwdWJJRDsgLyogdGhlIHB1YmxpYyBJRCBzdHJpbmcgKi8KKyAgICBpbnQgbl9wdWJJRDsKKyAgICB4bWxDaGFyICogc3lzSUQ7IC8qIHRoZSBzeXN0ZW0gSUQgc3RyaW5nICovCisgICAgaW50IG5fc3lzSUQ7CisKKyAgICBmb3IgKG5fY2F0YWxvZ3MgPSAwO25fY2F0YWxvZ3MgPCBnZW5fbmJfdm9pZF9wdHI7bl9jYXRhbG9ncysrKSB7CisgICAgZm9yIChuX3B1YklEID0gMDtuX3B1YklEIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHViSUQrKykgeworICAgIGZvciAobl9zeXNJRCA9IDA7bl9zeXNJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N5c0lEKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY2F0YWxvZ3MgPSBnZW5fdm9pZF9wdHIobl9jYXRhbG9ncywgMCk7CisgICAgICAgIHB1YklEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHViSUQsIDEpOworICAgICAgICBzeXNJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c0lELCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZShjYXRhbG9ncywgKGNvbnN0IHhtbENoYXIgKilwdWJJRCwgKGNvbnN0IHhtbENoYXIgKilzeXNJRCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jYXRhbG9ncywgY2F0YWxvZ3MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJJRCwgKGNvbnN0IHhtbENoYXIgKilwdWJJRCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N5c0lELCAoY29uc3QgeG1sQ2hhciAqKXN5c0lELCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENhdGFsb2dMb2NhbFJlc29sdmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2F0YWxvZ3MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YklEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXNJRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgdm9pZCAqIGNhdGFsb2dzOyAvKiBhIGRvY3VtZW50J3MgbGlzdCBvZiBjYXRhbG9ncyAqLworICAgIGludCBuX2NhdGFsb2dzOworICAgIHhtbENoYXIgKiBVUkk7IC8qIHRoZSBVUkkgKi8KKyAgICBpbnQgbl9VUkk7CisKKyAgICBmb3IgKG5fY2F0YWxvZ3MgPSAwO25fY2F0YWxvZ3MgPCBnZW5fbmJfdm9pZF9wdHI7bl9jYXRhbG9ncysrKSB7CisgICAgZm9yIChuX1VSSSA9IDA7bl9VUkkgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9VUkkrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjYXRhbG9ncyA9IGdlbl92b2lkX3B0cihuX2NhdGFsb2dzLCAwKTsKKyAgICAgICAgVVJJID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fVVJJLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSShjYXRhbG9ncywgKGNvbnN0IHhtbENoYXIgKilVUkkpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY2F0YWxvZ3MsIGNhdGFsb2dzLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fVVJJLCAoY29uc3QgeG1sQ2hhciAqKVVSSSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NhdGFsb2dzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkkpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ1JlbW92ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSB2YWx1ZSB0byByZW1vdmUgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENhdGFsb2dSZW1vdmUoKGNvbnN0IHhtbENoYXIgKil2YWx1ZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ1Jlc29sdmUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHB1YklEOyAvKiB0aGUgcHVibGljIElEIHN0cmluZyAqLworICAgIGludCBuX3B1YklEOworICAgIHhtbENoYXIgKiBzeXNJRDsgLyogdGhlIHN5c3RlbSBJRCBzdHJpbmcgKi8KKyAgICBpbnQgbl9zeXNJRDsKKworICAgIGZvciAobl9wdWJJRCA9IDA7bl9wdWJJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3B1YklEKyspIHsKKyAgICBmb3IgKG5fc3lzSUQgPSAwO25fc3lzSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXNJRCsrKSB7CisgICAgICAgIHB1YklEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHViSUQsIDApOworICAgICAgICBzeXNJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c0lELCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ2F0YWxvZ1Jlc29sdmUoKGNvbnN0IHhtbENoYXIgKilwdWJJRCwgKGNvbnN0IHhtbENoYXIgKilzeXNJRCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJJRCwgKGNvbnN0IHhtbENoYXIgKilwdWJJRCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N5c0lELCAoY29uc3QgeG1sQ2hhciAqKXN5c0lELCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHB1YklEOyAvKiB0aGUgcHVibGljIElEIHN0cmluZyAqLworICAgIGludCBuX3B1YklEOworCisgICAgZm9yIChuX3B1YklEID0gMDtuX3B1YklEIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHViSUQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwdWJJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3B1YklELCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ2F0YWxvZ1Jlc29sdmVQdWJsaWMoKGNvbnN0IHhtbENoYXIgKilwdWJJRCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJJRCwgKGNvbnN0IHhtbENoYXIgKilwdWJJRCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wdWJJRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENhdGFsb2dSZXNvbHZlU3lzdGVtKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3lzSUQ7IC8qIHRoZSBzeXN0ZW0gSUQgc3RyaW5nICovCisgICAgaW50IG5fc3lzSUQ7CisKKyAgICBmb3IgKG5fc3lzSUQgPSAwO25fc3lzSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXNJRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN5c0lEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzSUQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbSgoY29uc3QgeG1sQ2hhciAqKXN5c0lEKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N5c0lELCAoY29uc3QgeG1sQ2hhciAqKXN5c0lELCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N5c0lEKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ1Jlc29sdmVVUkkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBVUkk7IC8qIHRoZSBVUkkgKi8KKyAgICBpbnQgbl9VUkk7CisKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1VSSSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIFVSSSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX1VSSSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENhdGFsb2dSZXNvbHZlVVJJKChjb25zdCB4bWxDaGFyICopVVJJKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1VSSSwgKGNvbnN0IHhtbENoYXIgKilVUkksIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2F0YWxvZ1Jlc29sdmVVUkkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJJKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENhdGFsb2dQcmVmZXIgcmV0X3ZhbDsKKyAgICB4bWxDYXRhbG9nUHJlZmVyIHByZWZlcjsgLyogdGhlIGRlZmF1bHQgcHJlZmVyZW5jZSBmb3IgZGVsZWdhdGlvbiAqLworICAgIGludCBuX3ByZWZlcjsKKworICAgIGZvciAobl9wcmVmZXIgPSAwO25fcHJlZmVyIDwgZ2VuX25iX3htbENhdGFsb2dQcmVmZXI7bl9wcmVmZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwcmVmZXIgPSBnZW5feG1sQ2F0YWxvZ1ByZWZlcihuX3ByZWZlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENhdGFsb2dTZXREZWZhdWx0UHJlZmVyKHByZWZlcik7CisgICAgICAgIGRlc3JldF94bWxDYXRhbG9nUHJlZmVyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDYXRhbG9nUHJlZmVyKG5fcHJlZmVyLCBwcmVmZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJlZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2F0YWxvZ1NldERlZmF1bHRzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDYXRhbG9nQWxsb3cgYWxsb3c7IC8qIHdoYXQgY2F0YWxvZ3Mgc2hvdWxkIGJlIGFjY2VwdGVkICovCisgICAgaW50IG5fYWxsb3c7CisKKyAgICBmb3IgKG5fYWxsb3cgPSAwO25fYWxsb3cgPCBnZW5fbmJfeG1sQ2F0YWxvZ0FsbG93O25fYWxsb3crKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBhbGxvdyA9IGdlbl94bWxDYXRhbG9nQWxsb3cobl9hbGxvdywgMCk7CisKKyAgICAgICAgeG1sQ2F0YWxvZ1NldERlZmF1bHRzKGFsbG93KTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQ2F0YWxvZ0FsbG93KG5fYWxsb3csIGFsbG93LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENhdGFsb2dTZXREZWZhdWx0cyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hbGxvdyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENvbnZlcnRTR01MQ2F0YWxvZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2F0YWxvZ1B0ciBjYXRhbDsgLyogdGhlIGNhdGFsb2cgKi8KKyAgICBpbnQgbl9jYXRhbDsKKworICAgIGZvciAobl9jYXRhbCA9IDA7bl9jYXRhbCA8IGdlbl9uYl94bWxDYXRhbG9nUHRyO25fY2F0YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjYXRhbCA9IGdlbl94bWxDYXRhbG9nUHRyKG5fY2F0YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxDb252ZXJ0U0dNTENhdGFsb2coY2F0YWwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDYXRhbG9nUHRyKG5fY2F0YWwsIGNhdGFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENvbnZlcnRTR01MQ2F0YWxvZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jYXRhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEluaXRpYWxpemVDYXRhbG9nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfQ0FUQUxPR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHhtbEluaXRpYWxpemVDYXRhbG9nKCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEluaXRpYWxpemVDYXRhbG9nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExvYWRBQ2F0YWxvZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTG9hZENhdGFsb2codm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgaW50IHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiBhIGZpbGUgcGF0aCAqLworICAgIGludCBuX2ZpbGVuYW1lOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlcGF0aChuX2ZpbGVuYW1lLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTG9hZENhdGFsb2coZmlsZW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMb2FkQ2F0YWxvZ3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpCisgICAgY2hhciAqIHBhdGhzczsgLyogYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHNlcGFyYXRlZCBieSBhIGNvbG9uIG9yIGEgc3BhY2UuICovCisgICAgaW50IG5fcGF0aHNzOworCisgICAgZm9yIChuX3BhdGhzcyA9IDA7bl9wYXRoc3MgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9wYXRoc3MrKykgeworICAgICAgICBwYXRoc3MgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9wYXRoc3MsIDApOworCisgICAgICAgIHhtbExvYWRDYXRhbG9ncygoY29uc3QgY2hhciAqKXBhdGhzcyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fcGF0aHNzLCAoY29uc3QgY2hhciAqKXBhdGhzcywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3Q2F0YWxvZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VDYXRhbG9nRmlsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0NBVEFMT0dfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlQ2F0YWxvZ0ZpbGUoZmlsZW5hbWUpOworICAgICAgICBkZXNyZXRfeG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZUNhdGFsb2dGaWxlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X2NhdGFsb2codm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIGNhdGFsb2cgOiAyNyBvZiAzNiBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEFDYXRhbG9nQWRkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBQ2F0YWxvZ0R1bXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEFDYXRhbG9nUmVtb3ZlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBQ2F0YWxvZ1Jlc29sdmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEFDYXRhbG9nUmVzb2x2ZVB1YmxpYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQUNhdGFsb2dSZXNvbHZlU3lzdGVtKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBQ2F0YWxvZ1Jlc29sdmVVUkkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dBZGQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dDbGVhbnVwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDYXRhbG9nQ29udmVydCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2F0YWxvZ0R1bXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dHZXREZWZhdWx0cygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2F0YWxvZ0lzRW1wdHkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dMb2NhbFJlc29sdmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dMb2NhbFJlc29sdmVVUkkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dSZW1vdmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dSZXNvbHZlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDYXRhbG9nUmVzb2x2ZVB1YmxpYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENhdGFsb2dSZXNvbHZlVVJJKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDYXRhbG9nU2V0RGVmYXVsdFByZWZlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2F0YWxvZ1NldERlZmF1bHRzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDb252ZXJ0U0dNTENhdGFsb2coKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEluaXRpYWxpemVDYXRhbG9nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMb2FkQUNhdGFsb2coKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExvYWRDYXRhbG9nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMb2FkQ2F0YWxvZ3MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExvYWRTR01MU3VwZXJDYXRhbG9nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdDYXRhbG9nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZUNhdGFsb2dGaWxlKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBjYXRhbG9nOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjZGVmaW5lIGdlbl9uYl9jb25zdF94bWxDaFJhbmdlR3JvdXBfcHRyIDEKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgKiBnZW5fY29uc3RfeG1sQ2hSYW5nZUdyb3VwX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfY29uc3RfeG1sQ2hSYW5nZUdyb3VwX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hSYW5nZUdyb3VwICogdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hhckluUmFuZ2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdW5zaWduZWQgaW50IHZhbDsgLyogY2hhcmFjdGVyIHRvIGJlIHZhbGlkYXRlZCAqLworICAgIGludCBuX3ZhbDsKKyAgICB4bWxDaFJhbmdlR3JvdXAgKiBycHRyOyAvKiBwb2ludGVyIHRvIHJhbmdlIHRvIGJlIHVzZWQgdG8gdmFsaWRhdGUgKi8KKyAgICBpbnQgbl9ycHRyOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfdW5zaWduZWRfaW50O25fdmFsKyspIHsKKyAgICBmb3IgKG5fcnB0ciA9IDA7bl9ycHRyIDwgZ2VuX25iX2NvbnN0X3htbENoUmFuZ2VHcm91cF9wdHI7bl9ycHRyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3Vuc2lnbmVkX2ludChuX3ZhbCwgMCk7CisgICAgICAgIHJwdHIgPSBnZW5fY29uc3RfeG1sQ2hSYW5nZUdyb3VwX3B0cihuX3JwdHIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDaGFySW5SYW5nZSh2YWwsIChjb25zdCB4bWxDaFJhbmdlR3JvdXAgKilycHRyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfaW50KG5fdmFsLCB2YWwsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hSYW5nZUdyb3VwX3B0cihuX3JwdHIsIChjb25zdCB4bWxDaFJhbmdlR3JvdXAgKilycHRyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENoYXJJblJhbmdlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcnB0cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNCYXNlQ2hhcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBpbnQgY2g7IC8qIGNoYXJhY3RlciB0byB2YWxpZGF0ZSAqLworICAgIGludCBuX2NoOworCisgICAgZm9yIChuX2NoID0gMDtuX2NoIDwgZ2VuX25iX3Vuc2lnbmVkX2ludDtuX2NoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY2ggPSBnZW5fdW5zaWduZWRfaW50KG5fY2gsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxJc0Jhc2VDaGFyKGNoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfaW50KG5fY2gsIGNoLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElzQmFzZUNoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNCbGFuayh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBpbnQgY2g7IC8qIGNoYXJhY3RlciB0byB2YWxpZGF0ZSAqLworICAgIGludCBuX2NoOworCisgICAgZm9yIChuX2NoID0gMDtuX2NoIDwgZ2VuX25iX3Vuc2lnbmVkX2ludDtuX2NoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY2ggPSBnZW5fdW5zaWduZWRfaW50KG5fY2gsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxJc0JsYW5rKGNoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfaW50KG5fY2gsIGNoLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElzQmxhbmsiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNDaGFyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHVuc2lnbmVkIGludCBjaDsgLyogY2hhcmFjdGVyIHRvIHZhbGlkYXRlICovCisgICAgaW50IG5fY2g7CisKKyAgICBmb3IgKG5fY2ggPSAwO25fY2ggPCBnZW5fbmJfdW5zaWduZWRfaW50O25fY2grKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjaCA9IGdlbl91bnNpZ25lZF9pbnQobl9jaCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbElzQ2hhcihjaCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3Vuc2lnbmVkX2ludChuX2NoLCBjaCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJc0NoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNDb21iaW5pbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdW5zaWduZWQgaW50IGNoOyAvKiBjaGFyYWN0ZXIgdG8gdmFsaWRhdGUgKi8KKyAgICBpbnQgbl9jaDsKKworICAgIGZvciAobl9jaCA9IDA7bl9jaCA8IGdlbl9uYl91bnNpZ25lZF9pbnQ7bl9jaCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNoID0gZ2VuX3Vuc2lnbmVkX2ludChuX2NoLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sSXNDb21iaW5pbmcoY2gpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc191bnNpZ25lZF9pbnQobl9jaCwgY2gsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSXNDb21iaW5pbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNEaWdpdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBpbnQgY2g7IC8qIGNoYXJhY3RlciB0byB2YWxpZGF0ZSAqLworICAgIGludCBuX2NoOworCisgICAgZm9yIChuX2NoID0gMDtuX2NoIDwgZ2VuX25iX3Vuc2lnbmVkX2ludDtuX2NoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY2ggPSBnZW5fdW5zaWduZWRfaW50KG5fY2gsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxJc0RpZ2l0KGNoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfaW50KG5fY2gsIGNoLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElzRGlnaXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNFeHRlbmRlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBpbnQgY2g7IC8qIGNoYXJhY3RlciB0byB2YWxpZGF0ZSAqLworICAgIGludCBuX2NoOworCisgICAgZm9yIChuX2NoID0gMDtuX2NoIDwgZ2VuX25iX3Vuc2lnbmVkX2ludDtuX2NoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY2ggPSBnZW5fdW5zaWduZWRfaW50KG5fY2gsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxJc0V4dGVuZGVyKGNoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfaW50KG5fY2gsIGNoLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElzRXh0ZW5kZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNJZGVvZ3JhcGhpYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBpbnQgY2g7IC8qIGNoYXJhY3RlciB0byB2YWxpZGF0ZSAqLworICAgIGludCBuX2NoOworCisgICAgZm9yIChuX2NoID0gMDtuX2NoIDwgZ2VuX25iX3Vuc2lnbmVkX2ludDtuX2NoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY2ggPSBnZW5fdW5zaWduZWRfaW50KG5fY2gsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxJc0lkZW9ncmFwaGljKGNoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfaW50KG5fY2gsIGNoLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElzSWRlb2dyYXBoaWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNQdWJpZENoYXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdW5zaWduZWQgaW50IGNoOyAvKiBjaGFyYWN0ZXIgdG8gdmFsaWRhdGUgKi8KKyAgICBpbnQgbl9jaDsKKworICAgIGZvciAobl9jaCA9IDA7bl9jaCA8IGdlbl9uYl91bnNpZ25lZF9pbnQ7bl9jaCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNoID0gZ2VuX3Vuc2lnbmVkX2ludChuX2NoLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sSXNQdWJpZENoYXIoY2gpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc191bnNpZ25lZF9pbnQobl9jaCwgY2gsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSXNQdWJpZENoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2gpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X2NodmFsaWQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIGNodmFsaWQgOiA5IG9mIDkgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDaGFySW5SYW5nZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNCYXNlQ2hhcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNCbGFuaygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNDaGFyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJc0NvbWJpbmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNEaWdpdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNFeHRlbmRlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNJZGVvZ3JhcGhpYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNQdWJpZENoYXIoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIGNodmFsaWQ6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQm9vbFRvVGV4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IGNoYXIgKiByZXRfdmFsOworICAgIGludCBib29sdmFsOyAvKiBhIGJvb2wgdG8gdHVybiBpbnRvIHRleHQgKi8KKyAgICBpbnQgbl9ib29sdmFsOworCisgICAgZm9yIChuX2Jvb2x2YWwgPSAwO25fYm9vbHZhbCA8IGdlbl9uYl9pbnQ7bl9ib29sdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYm9vbHZhbCA9IGdlbl9pbnQobl9ib29sdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sQm9vbFRvVGV4dChib29sdmFsKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X2NoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9ib29sdmFsLCBib29sdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJvb2xUb1RleHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYm9vbHZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERlYnVnQ2hlY2tEb2N1bWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXRwdXQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX291dHB1dCA9IDA7bl9vdXRwdXQgPCBnZW5fbmJfZGVidWdfRklMRV9wdHI7bl9vdXRwdXQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxEZWJ1Z0NoZWNrRG9jdW1lbnQob3V0cHV0LCBkb2MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERlYnVnQ2hlY2tEb2N1bWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRwdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWJ1Z0R1bXBBdHRyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgRklMRSAqIG91dHB1dDsgLyogdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCAqLworICAgIGludCBuX291dHB1dDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7IC8qIHRoZSBhdHRyaWJ1dGUgKi8KKyAgICBpbnQgbl9hdHRyOworICAgIGludCBkZXB0aDsgLyogdGhlIGluZGVudGF0aW9uIGxldmVsLiAqLworICAgIGludCBuX2RlcHRoOworCisgICAgZm9yIChuX291dHB1dCA9IDA7bl9vdXRwdXQgPCBnZW5fbmJfZGVidWdfRklMRV9wdHI7bl9vdXRwdXQrKykgeworICAgIGZvciAobl9hdHRyID0gMDtuX2F0dHIgPCBnZW5fbmJfeG1sQXR0clB0cjtuX2F0dHIrKykgeworICAgIGZvciAobl9kZXB0aCA9IDA7bl9kZXB0aCA8IGdlbl9uYl9pbnQ7bl9kZXB0aCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIGF0dHIgPSBnZW5feG1sQXR0clB0cihuX2F0dHIsIDEpOworICAgICAgICBkZXB0aCA9IGdlbl9pbnQobl9kZXB0aCwgMik7CisKKyAgICAgICAgeG1sRGVidWdEdW1wQXR0cihvdXRwdXQsIGF0dHIsIGRlcHRoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZGVidWdfRklMRV9wdHIobl9vdXRwdXQsIG91dHB1dCwgMCk7CisgICAgICAgIGRlc194bWxBdHRyUHRyKG5fYXR0ciwgYXR0ciwgMSk7CisgICAgICAgIGRlc19pbnQobl9kZXB0aCwgZGVwdGgsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRGVidWdEdW1wQXR0ciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRwdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2F0dHIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RlcHRoKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWJ1Z0R1bXBBdHRyTGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXRwdXQ7CisgICAgeG1sQXR0clB0ciBhdHRyOyAvKiB0aGUgYXR0cmlidXRlIGxpc3QgKi8KKyAgICBpbnQgbl9hdHRyOworICAgIGludCBkZXB0aDsgLyogdGhlIGluZGVudGF0aW9uIGxldmVsLiAqLworICAgIGludCBuX2RlcHRoOworCisgICAgZm9yIChuX291dHB1dCA9IDA7bl9vdXRwdXQgPCBnZW5fbmJfZGVidWdfRklMRV9wdHI7bl9vdXRwdXQrKykgeworICAgIGZvciAobl9hdHRyID0gMDtuX2F0dHIgPCBnZW5fbmJfeG1sQXR0clB0cjtuX2F0dHIrKykgeworICAgIGZvciAobl9kZXB0aCA9IDA7bl9kZXB0aCA8IGdlbl9uYl9pbnQ7bl9kZXB0aCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIGF0dHIgPSBnZW5feG1sQXR0clB0cihuX2F0dHIsIDEpOworICAgICAgICBkZXB0aCA9IGdlbl9pbnQobl9kZXB0aCwgMik7CisKKyAgICAgICAgeG1sRGVidWdEdW1wQXR0ckxpc3Qob3V0cHV0LCBhdHRyLCBkZXB0aCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2RlYnVnX0ZJTEVfcHRyKG5fb3V0cHV0LCBvdXRwdXQsIDApOworICAgICAgICBkZXNfeG1sQXR0clB0cihuX2F0dHIsIGF0dHIsIDEpOworICAgICAgICBkZXNfaW50KG5fZGVwdGgsIGRlcHRoLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERlYnVnRHVtcEF0dHJMaXN0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dHB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXR0cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGVwdGgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERlYnVnRHVtcERURCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXRwdXQ7CisgICAgeG1sRHRkUHRyIGR0ZDsgLyogdGhlIERURCAqLworICAgIGludCBuX2R0ZDsKKworICAgIGZvciAobl9vdXRwdXQgPSAwO25fb3V0cHV0IDwgZ2VuX25iX2RlYnVnX0ZJTEVfcHRyO25fb3V0cHV0KyspIHsKKyAgICBmb3IgKG5fZHRkID0gMDtuX2R0ZCA8IGdlbl9uYl94bWxEdGRQdHI7bl9kdGQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXRwdXQgPSBnZW5fZGVidWdfRklMRV9wdHIobl9vdXRwdXQsIDApOworICAgICAgICBkdGQgPSBnZW5feG1sRHRkUHRyKG5fZHRkLCAxKTsKKworICAgICAgICB4bWxEZWJ1Z0R1bXBEVEQob3V0cHV0LCBkdGQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX3htbER0ZFB0cihuX2R0ZCwgZHRkLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERlYnVnRHVtcERURCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRwdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2R0ZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWJ1Z0R1bXBEb2N1bWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXRwdXQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX291dHB1dCA9IDA7bl9vdXRwdXQgPCBnZW5fbmJfZGVidWdfRklMRV9wdHI7bl9vdXRwdXQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworCisgICAgICAgIHhtbERlYnVnRHVtcERvY3VtZW50KG91dHB1dCwgZG9jKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZGVidWdfRklMRV9wdHIobl9vdXRwdXQsIG91dHB1dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEZWJ1Z0R1bXBEb2N1bWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRwdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBGSUxFICogb3V0cHV0OyAvKiB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0ICovCisgICAgaW50IG5fb3V0cHV0OworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKworICAgIGZvciAobl9vdXRwdXQgPSAwO25fb3V0cHV0IDwgZ2VuX25iX2RlYnVnX0ZJTEVfcHRyO25fb3V0cHV0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXRwdXQgPSBnZW5fZGVidWdfRklMRV9wdHIobl9vdXRwdXQsIDApOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAxKTsKKworICAgICAgICB4bWxEZWJ1Z0R1bXBEb2N1bWVudEhlYWQob3V0cHV0LCBkb2MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERlYnVnRHVtcERvY3VtZW50SGVhZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRwdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWJ1Z0R1bXBFbnRpdGllcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXRwdXQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX291dHB1dCA9IDA7bl9vdXRwdXQgPCBnZW5fbmJfZGVidWdfRklMRV9wdHI7bl9vdXRwdXQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworCisgICAgICAgIHhtbERlYnVnRHVtcEVudGl0aWVzKG91dHB1dCwgZG9jKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZGVidWdfRklMRV9wdHIobl9vdXRwdXQsIG91dHB1dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEZWJ1Z0R1bXBFbnRpdGllcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRwdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWJ1Z0R1bXBOb2RlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgRklMRSAqIG91dHB1dDsgLyogdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCAqLworICAgIGludCBuX291dHB1dDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICBpbnQgZGVwdGg7IC8qIHRoZSBpbmRlbnRhdGlvbiBsZXZlbC4gKi8KKyAgICBpbnQgbl9kZXB0aDsKKworICAgIGZvciAobl9vdXRwdXQgPSAwO25fb3V0cHV0IDwgZ2VuX25iX2RlYnVnX0ZJTEVfcHRyO25fb3V0cHV0KyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fZGVwdGggPSAwO25fZGVwdGggPCBnZW5fbmJfaW50O25fZGVwdGgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXRwdXQgPSBnZW5fZGVidWdfRklMRV9wdHIobl9vdXRwdXQsIDApOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAxKTsKKyAgICAgICAgZGVwdGggPSBnZW5faW50KG5fZGVwdGgsIDIpOworCisgICAgICAgIHhtbERlYnVnRHVtcE5vZGUob3V0cHV0LCBub2RlLCBkZXB0aCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2RlYnVnX0ZJTEVfcHRyKG5fb3V0cHV0LCBvdXRwdXQsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDEpOworICAgICAgICBkZXNfaW50KG5fZGVwdGgsIGRlcHRoLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERlYnVnRHVtcE5vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0cHV0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZXB0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRGVidWdEdW1wTm9kZUxpc3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBGSUxFICogb3V0cHV0OyAvKiB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0ICovCisgICAgaW50IG5fb3V0cHV0OworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgbGlzdCAqLworICAgIGludCBuX25vZGU7CisgICAgaW50IGRlcHRoOyAvKiB0aGUgaW5kZW50YXRpb24gbGV2ZWwuICovCisgICAgaW50IG5fZGVwdGg7CisKKyAgICBmb3IgKG5fb3V0cHV0ID0gMDtuX291dHB1dCA8IGdlbl9uYl9kZWJ1Z19GSUxFX3B0cjtuX291dHB1dCsrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2RlcHRoID0gMDtuX2RlcHRoIDwgZ2VuX25iX2ludDtuX2RlcHRoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0cHV0ID0gZ2VuX2RlYnVnX0ZJTEVfcHRyKG5fb3V0cHV0LCAwKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMSk7CisgICAgICAgIGRlcHRoID0gZ2VuX2ludChuX2RlcHRoLCAyKTsKKworICAgICAgICB4bWxEZWJ1Z0R1bXBOb2RlTGlzdChvdXRwdXQsIG5vZGUsIGRlcHRoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZGVidWdfRklMRV9wdHIobl9vdXRwdXQsIG91dHB1dCwgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMSk7CisgICAgICAgIGRlc19pbnQobl9kZXB0aCwgZGVwdGgsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRGVidWdEdW1wTm9kZUxpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0cHV0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZXB0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRGVidWdEdW1wT25lTm9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXRwdXQ7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgaW50IGRlcHRoOyAvKiB0aGUgaW5kZW50YXRpb24gbGV2ZWwuICovCisgICAgaW50IG5fZGVwdGg7CisKKyAgICBmb3IgKG5fb3V0cHV0ID0gMDtuX291dHB1dCA8IGdlbl9uYl9kZWJ1Z19GSUxFX3B0cjtuX291dHB1dCsrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2RlcHRoID0gMDtuX2RlcHRoIDwgZ2VuX25iX2ludDtuX2RlcHRoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0cHV0ID0gZ2VuX2RlYnVnX0ZJTEVfcHRyKG5fb3V0cHV0LCAwKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMSk7CisgICAgICAgIGRlcHRoID0gZ2VuX2ludChuX2RlcHRoLCAyKTsKKworICAgICAgICB4bWxEZWJ1Z0R1bXBPbmVOb2RlKG91dHB1dCwgbm9kZSwgZGVwdGgpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAxKTsKKyAgICAgICAgZGVzX2ludChuX2RlcHRoLCBkZXB0aCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEZWJ1Z0R1bXBPbmVOb2RlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dHB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGVwdGgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERlYnVnRHVtcFN0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXRwdXQ7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlIHN0cmluZyAqLworICAgIGludCBuX3N0cjsKKworICAgIGZvciAobl9vdXRwdXQgPSAwO25fb3V0cHV0IDwgZ2VuX25iX2RlYnVnX0ZJTEVfcHRyO25fb3V0cHV0KyspIHsKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMSk7CisKKyAgICAgICAgeG1sRGVidWdEdW1wU3RyaW5nKG91dHB1dCwgKGNvbnN0IHhtbENoYXIgKilzdHIpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAoY29uc3QgeG1sQ2hhciAqKXN0ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEZWJ1Z0R1bXBTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0cHV0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTHNDb3VudE5vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlIHRvIGNvdW50ICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTHNDb3VudE5vZGUobm9kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExzQ291bnROb2RlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMc09uZU5vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBGSUxFICogb3V0cHV0OyAvKiB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0ICovCisgICAgaW50IG5fb3V0cHV0OworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgdG8gZHVtcCAqLworICAgIGludCBuX25vZGU7CisKKyAgICBmb3IgKG5fb3V0cHV0ID0gMDtuX291dHB1dCA8IGdlbl9uYl9kZWJ1Z19GSUxFX3B0cjtuX291dHB1dCsrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDEpOworCisgICAgICAgIHhtbExzT25lTm9kZShvdXRwdXQsIG5vZGUpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19kZWJ1Z19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExzT25lTm9kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRwdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX2NoYXJfcHRyIDEKK3N0YXRpYyBjaGFyICogZ2VuX2NoYXJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19jaGFyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbFNoZWxsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTaGVsbEJhc2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTaGVsbEN0eHRQdHIgY3R4dDsgLyogdGhlIHNoZWxsIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBhcmc7IC8qIHVudXNlZCAqLworICAgIGludCBuX2FyZzsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIGEgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTm9kZVB0ciBub2RlMjsgLyogdW51c2VkICovCisgICAgaW50IG5fbm9kZTI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNoZWxsQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9hcmcgPSAwO25fYXJnIDwgZ2VuX25iX2NoYXJfcHRyO25fYXJnKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbm9kZTIgPSAwO25fbm9kZTIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTaGVsbEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgYXJnID0gZ2VuX2NoYXJfcHRyKG5fYXJnLCAxKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMik7CisgICAgICAgIG5vZGUyID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlMiwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNoZWxsQmFzZShjdHh0LCBhcmcsIG5vZGUsIG5vZGUyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2hlbGxDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jaGFyX3B0cihuX2FyZywgYXJnLCAxKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAyKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlMiwgbm9kZTIsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2hlbGxCYXNlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2FyZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZTIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTaGVsbENhdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTaGVsbEN0eHRQdHIgY3R4dDsgLyogdGhlIHNoZWxsIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBhcmc7IC8qIHVudXNlZCAqLworICAgIGludCBuX2FyZzsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIGEgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTm9kZVB0ciBub2RlMjsgLyogdW51c2VkICovCisgICAgaW50IG5fbm9kZTI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNoZWxsQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9hcmcgPSAwO25fYXJnIDwgZ2VuX25iX2NoYXJfcHRyO25fYXJnKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbm9kZTIgPSAwO25fbm9kZTIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTaGVsbEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgYXJnID0gZ2VuX2NoYXJfcHRyKG5fYXJnLCAxKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMik7CisgICAgICAgIG5vZGUyID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlMiwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNoZWxsQ2F0KGN0eHQsIGFyZywgbm9kZSwgbm9kZTIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTaGVsbEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NoYXJfcHRyKG5fYXJnLCBhcmcsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDIpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUyLCBub2RlMiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTaGVsbENhdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hcmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2hlbGxEaXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTaGVsbEN0eHRQdHIgY3R4dDsgLyogdGhlIHNoZWxsIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBhcmc7IC8qIHVudXNlZCAqLworICAgIGludCBuX2FyZzsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIGEgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTm9kZVB0ciBub2RlMjsgLyogdW51c2VkICovCisgICAgaW50IG5fbm9kZTI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNoZWxsQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9hcmcgPSAwO25fYXJnIDwgZ2VuX25iX2NoYXJfcHRyO25fYXJnKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbm9kZTIgPSAwO25fbm9kZTIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTaGVsbEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgYXJnID0gZ2VuX2NoYXJfcHRyKG5fYXJnLCAxKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMik7CisgICAgICAgIG5vZGUyID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlMiwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNoZWxsRGlyKGN0eHQsIGFyZywgbm9kZSwgbm9kZTIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTaGVsbEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NoYXJfcHRyKG5fYXJnLCBhcmcsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDIpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUyLCBub2RlMiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTaGVsbERpciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hcmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2hlbGxEdSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNoZWxsQ3R4dFB0ciBjdHh0OyAvKiB0aGUgc2hlbGwgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY2hhciAqIGFyZzsgLyogdW51c2VkICovCisgICAgaW50IG5fYXJnOworICAgIHhtbE5vZGVQdHIgdHJlZTsgLyogYSBub2RlIGRlZmluaW5nIGEgc3VidHJlZSAqLworICAgIGludCBuX3RyZWU7CisgICAgeG1sTm9kZVB0ciBub2RlMjsgLyogdW51c2VkICovCisgICAgaW50IG5fbm9kZTI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNoZWxsQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9hcmcgPSAwO25fYXJnIDwgZ2VuX25iX2NoYXJfcHRyO25fYXJnKyspIHsKKyAgICBmb3IgKG5fdHJlZSA9IDA7bl90cmVlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl90cmVlKyspIHsKKyAgICBmb3IgKG5fbm9kZTIgPSAwO25fbm9kZTIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTaGVsbEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgYXJnID0gZ2VuX2NoYXJfcHRyKG5fYXJnLCAxKTsKKyAgICAgICAgdHJlZSA9IGdlbl94bWxOb2RlUHRyKG5fdHJlZSwgMik7CisgICAgICAgIG5vZGUyID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlMiwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNoZWxsRHUoY3R4dCwgYXJnLCB0cmVlLCBub2RlMik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNoZWxsQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY2hhcl9wdHIobl9hcmcsIGFyZywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fdHJlZSwgdHJlZSwgMik7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZTIsIG5vZGUyLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNoZWxsRHUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXJnKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90cmVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNoZWxsTGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNoZWxsQ3R4dFB0ciBjdHh0OyAvKiB0aGUgc2hlbGwgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY2hhciAqIGFyZzsgLyogdW51c2VkICovCisgICAgaW50IG5fYXJnOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogYSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxOb2RlUHRyIG5vZGUyOyAvKiB1bnVzZWQgKi8KKyAgICBpbnQgbl9ub2RlMjsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sU2hlbGxDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2FyZyA9IDA7bl9hcmcgPCBnZW5fbmJfY2hhcl9wdHI7bl9hcmcrKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgIGZvciAobl9ub2RlMiA9IDA7bl9ub2RlMiA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZTIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFNoZWxsQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBhcmcgPSBnZW5fY2hhcl9wdHIobl9hcmcsIDEpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAyKTsKKyAgICAgICAgbm9kZTIgPSBnZW5feG1sTm9kZVB0cihuX25vZGUyLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2hlbGxMaXN0KGN0eHQsIGFyZywgbm9kZSwgbm9kZTIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTaGVsbEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NoYXJfcHRyKG5fYXJnLCBhcmcsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDIpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUyLCBub2RlMiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTaGVsbExpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXJnKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNoZWxsTG9hZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNoZWxsQ3R4dFB0ciBjdHh0OyAvKiB0aGUgc2hlbGwgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZSBuYW1lICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB1bnVzZWQgKi8KKyAgICBpbnQgbl9ub2RlOworICAgIHhtbE5vZGVQdHIgbm9kZTI7IC8qIHVudXNlZCAqLworICAgIGludCBuX25vZGUyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTaGVsbEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfY2hhcl9wdHI7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25vZGUyID0gMDtuX25vZGUyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2hlbGxDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2NoYXJfcHRyKG5fZmlsZW5hbWUsIDEpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAyKTsKKyAgICAgICAgbm9kZTIgPSBnZW5feG1sTm9kZVB0cihuX25vZGUyLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2hlbGxMb2FkKGN0eHQsIGZpbGVuYW1lLCBub2RlLCBub2RlMik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNoZWxsQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY2hhcl9wdHIobl9maWxlbmFtZSwgZmlsZW5hbWUsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDIpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUyLCBub2RlMiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTaGVsbExvYWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgbGlzdDsgLyogYSB2YWxpZCByZXN1bHQgZ2VuZXJhdGVkIGJ5IGFuIHhwYXRoIGV2YWx1YXRpb24gKi8KKyAgICBpbnQgbl9saXN0OworCisgICAgZm9yIChuX2xpc3QgPSAwO25fbGlzdCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX2xpc3QrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsaXN0ID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fbGlzdCwgMCk7CisKKyAgICAgICAgeG1sU2hlbGxQcmludFhQYXRoUmVzdWx0KGxpc3QpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aE9iamVjdFB0cihuX2xpc3QsIGxpc3QsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2hlbGxQcmludFhQYXRoUmVzdWx0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xpc3QpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTaGVsbFB3ZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNoZWxsQ3R4dFB0ciBjdHh0OyAvKiB0aGUgc2hlbGwgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY2hhciAqIGJ1ZmZlcjsgLyogdGhlIG91dHB1dCBidWZmZXIgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiBhIG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlOworICAgIHhtbE5vZGVQdHIgbm9kZTI7IC8qIHVudXNlZCAqLworICAgIGludCBuX25vZGUyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTaGVsbEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25vZGUyID0gMDtuX25vZGUyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2hlbGxDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jaGFyX3B0cihuX2J1ZmZlciwgMSk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDIpOworICAgICAgICBub2RlMiA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZTIsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTaGVsbFB3ZChjdHh0LCBidWZmZXIsIG5vZGUsIG5vZGUyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2hlbGxDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jaGFyX3B0cihuX2J1ZmZlciwgYnVmZmVyLCAxKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAyKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlMiwgbm9kZTIsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2hlbGxQd2QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNoZWxsU2F2ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTaGVsbEN0eHRQdHIgY3R4dDsgLyogdGhlIHNoZWxsIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIGZpbGUgbmFtZSAob3B0aW9uYWwpICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB1bnVzZWQgKi8KKyAgICBpbnQgbl9ub2RlOworICAgIHhtbE5vZGVQdHIgbm9kZTI7IC8qIHVudXNlZCAqLworICAgIGludCBuX25vZGUyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTaGVsbEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfY2hhcl9wdHI7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25vZGUyID0gMDtuX25vZGUyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2hlbGxDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2NoYXJfcHRyKG5fZmlsZW5hbWUsIDEpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAyKTsKKyAgICAgICAgbm9kZTIgPSBnZW5feG1sTm9kZVB0cihuX25vZGUyLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2hlbGxTYXZlKGN0eHQsIGZpbGVuYW1lLCBub2RlLCBub2RlMik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNoZWxsQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY2hhcl9wdHIobl9maWxlbmFtZSwgZmlsZW5hbWUsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDIpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUyLCBub2RlMiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTaGVsbFNhdmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2hlbGxWYWxpZGF0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNoZWxsQ3R4dFB0ciBjdHh0OyAvKiB0aGUgc2hlbGwgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY2hhciAqIGR0ZDsgLyogdGhlIERURCBVUkkgKG9wdGlvbmFsKSAqLworICAgIGludCBuX2R0ZDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHVudXNlZCAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTm9kZVB0ciBub2RlMjsgLyogdW51c2VkICovCisgICAgaW50IG5fbm9kZTI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNoZWxsQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kdGQgPSAwO25fZHRkIDwgZ2VuX25iX2NoYXJfcHRyO25fZHRkKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbm9kZTIgPSAwO25fbm9kZTIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTaGVsbEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZHRkID0gZ2VuX2NoYXJfcHRyKG5fZHRkLCAxKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMik7CisgICAgICAgIG5vZGUyID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlMiwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNoZWxsVmFsaWRhdGUoY3R4dCwgZHRkLCBub2RlLCBub2RlMik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNoZWxsQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY2hhcl9wdHIobl9kdGQsIGR0ZCwgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMik7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZTIsIG5vZGUyLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNoZWxsVmFsaWRhdGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZHRkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNoZWxsV3JpdGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2hlbGxDdHh0UHRyIGN0eHQ7IC8qIHRoZSBzaGVsbCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlIG5hbWUgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIGEgbm9kZSBpbiB0aGUgdHJlZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTm9kZVB0ciBub2RlMjsgLyogdW51c2VkICovCisgICAgaW50IG5fbm9kZTI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNoZWxsQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9jaGFyX3B0cjtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbm9kZTIgPSAwO25fbm9kZTIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTaGVsbEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fY2hhcl9wdHIobl9maWxlbmFtZSwgMSk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDIpOworICAgICAgICBub2RlMiA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZTIsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTaGVsbFdyaXRlKGN0eHQsIGZpbGVuYW1lLCBub2RlLCBub2RlMik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNoZWxsQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY2hhcl9wdHIobl9maWxlbmFtZSwgZmlsZW5hbWUsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDIpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUyLCBub2RlMiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTaGVsbFdyaXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9kZWJ1Z1hNTCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgZGVidWdYTUwgOiAyNSBvZiAyOCBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJvb2xUb1RleHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERlYnVnQ2hlY2tEb2N1bWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRGVidWdEdW1wQXR0cigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRGVidWdEdW1wQXR0ckxpc3QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERlYnVnRHVtcERURCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRGVidWdEdW1wRG9jdW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERlYnVnRHVtcERvY3VtZW50SGVhZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRGVidWdEdW1wRW50aXRpZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERlYnVnRHVtcE5vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERlYnVnRHVtcE5vZGVMaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEZWJ1Z0R1bXBPbmVOb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEZWJ1Z0R1bXBTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExzQ291bnROb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMc09uZU5vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNoZWxsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTaGVsbEJhc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNoZWxsQ2F0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTaGVsbERpcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2hlbGxEdSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2hlbGxMaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTaGVsbExvYWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNoZWxsUHJpbnRYUGF0aFJlc3VsdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2hlbGxQd2QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNoZWxsU2F2ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2hlbGxWYWxpZGF0ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2hlbGxXcml0ZSgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgZGVidWdYTUw6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRGljdENsZWFudXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICB4bWxEaWN0Q2xlYW51cCgpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEaWN0Q2xlYW51cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRGljdENyZWF0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEaWN0UHRyIHJldF92YWw7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICByZXRfdmFsID0geG1sRGljdENyZWF0ZSgpOworICAgICAgICBkZXNyZXRfeG1sRGljdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRGljdENyZWF0ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRGljdENyZWF0ZVN1Yih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEaWN0UHRyIHJldF92YWw7CisgICAgeG1sRGljdFB0ciBzdWI7IC8qIGFuIGV4aXN0aW5nIGRpY3Rpb25uYXJ5ICovCisgICAgaW50IG5fc3ViOworCisgICAgZm9yIChuX3N1YiA9IDA7bl9zdWIgPCBnZW5fbmJfeG1sRGljdFB0cjtuX3N1YisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN1YiA9IGdlbl94bWxEaWN0UHRyKG5fc3ViLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sRGljdENyZWF0ZVN1YihzdWIpOworICAgICAgICBkZXNyZXRfeG1sRGljdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRGljdFB0cihuX3N1Yiwgc3ViLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERpY3RDcmVhdGVTdWIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3ViKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERpY3RFeGlzdHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sRGljdFB0ciBkaWN0OyAvKiB0aGUgZGljdGlvbm5hcnkgKi8KKyAgICBpbnQgbl9kaWN0OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIGludCBsZW47IC8qIHRoZSBsZW5ndGggb2YgdGhlIG5hbWUsIGlmIC0xIGl0IGlzIHJlY29tcHV0ZWQgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fZGljdCA9IDA7bl9kaWN0IDwgZ2VuX25iX3htbERpY3RQdHI7bl9kaWN0KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZGljdCA9IGdlbl94bWxEaWN0UHRyKG5fZGljdCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbERpY3RFeGlzdHMoZGljdCwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCBsZW4pOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERpY3RQdHIobl9kaWN0LCBkaWN0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERpY3RFeGlzdHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGljdCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRGljdExvb2t1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9ubmFyeSAqLworICAgIGludCBuX2RpY3Q7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWU7CisgICAgaW50IGxlbjsgLyogdGhlIGxlbmd0aCBvZiB0aGUgbmFtZSwgaWYgLTEgaXQgaXMgcmVjb21wdXRlZCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9kaWN0ID0gMDtuX2RpY3QgPCBnZW5fbmJfeG1sRGljdFB0cjtuX2RpY3QrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkaWN0ID0gZ2VuX3htbERpY3RQdHIobl9kaWN0LCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sRGljdExvb2t1cChkaWN0LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIGxlbik7CisgICAgICAgIGRlc3JldF9jb25zdF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRGljdFB0cihuX2RpY3QsIGRpY3QsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRGljdExvb2t1cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kaWN0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEaWN0T3ducyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9ubmFyeSAqLworICAgIGludCBuX2RpY3Q7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlIHN0cmluZyAqLworICAgIGludCBuX3N0cjsKKworICAgIGZvciAobl9kaWN0ID0gMDtuX2RpY3QgPCBnZW5fbmJfeG1sRGljdFB0cjtuX2RpY3QrKykgeworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZGljdCA9IGdlbl94bWxEaWN0UHRyKG5fZGljdCwgMCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbERpY3RPd25zKGRpY3QsIChjb25zdCB4bWxDaGFyICopc3RyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRGljdFB0cihuX2RpY3QsIGRpY3QsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIChjb25zdCB4bWxDaGFyICopc3RyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERpY3RPd25zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RpY3QpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRGljdFFMb29rdXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sRGljdFB0ciBkaWN0OyAvKiB0aGUgZGljdGlvbm5hcnkgKi8KKyAgICBpbnQgbl9kaWN0OworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIHRoZSBwcmVmaXggKi8KKyAgICBpbnQgbl9wcmVmaXg7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9kaWN0ID0gMDtuX2RpY3QgPCBnZW5fbmJfeG1sRGljdFB0cjtuX2RpY3QrKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRpY3QgPSBnZW5feG1sRGljdFB0cihuX2RpY3QsIDApOworICAgICAgICBwcmVmaXggPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgsIDEpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbERpY3RRTG9va3VwKGRpY3QsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERpY3RQdHIobl9kaWN0LCBkaWN0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEaWN0UUxvb2t1cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kaWN0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmaXgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEaWN0UmVmZXJlbmNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERpY3RQdHIgZGljdDsgLyogdGhlIGRpY3Rpb25uYXJ5ICovCisgICAgaW50IG5fZGljdDsKKworICAgIGZvciAobl9kaWN0ID0gMDtuX2RpY3QgPCBnZW5fbmJfeG1sRGljdFB0cjtuX2RpY3QrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkaWN0ID0gZ2VuX3htbERpY3RQdHIobl9kaWN0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sRGljdFJlZmVyZW5jZShkaWN0KTsKKyAgICAgICAgeG1sRGljdEZyZWUoZGljdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERpY3RQdHIobl9kaWN0LCBkaWN0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERpY3RSZWZlcmVuY2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGljdCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEaWN0U2l6ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7IC8qIHRoZSBkaWN0aW9ubmFyeSAqLworICAgIGludCBuX2RpY3Q7CisKKyAgICBmb3IgKG5fZGljdCA9IDA7bl9kaWN0IDwgZ2VuX25iX3htbERpY3RQdHI7bl9kaWN0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZGljdCA9IGdlbl94bWxEaWN0UHRyKG5fZGljdCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbERpY3RTaXplKGRpY3QpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEaWN0UHRyKG5fZGljdCwgZGljdCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEaWN0U2l6ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kaWN0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9kaWN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyBkaWN0IDogOSBvZiAxMCBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERpY3RDbGVhbnVwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEaWN0Q3JlYXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEaWN0Q3JlYXRlU3ViKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEaWN0RXhpc3RzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEaWN0TG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEaWN0T3ducygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRGljdFFMb29rdXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERpY3RSZWZlcmVuY2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERpY3RTaXplKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBkaWN0OiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X1VURjhUb2lzb2xhdDEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdW5zaWduZWQgY2hhciAqIG91dDsgLyogYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQgKi8KKyAgICBpbnQgbl9vdXQ7CisgICAgaW50ICogb3V0bGVuOyAvKiB0aGUgbGVuZ3RoIG9mIEBvdXQgKi8KKyAgICBpbnQgbl9vdXRsZW47CisgICAgdW5zaWduZWQgY2hhciAqIGluOyAvKiBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVVRGLTggY2hhcnMgKi8KKyAgICBpbnQgbl9pbjsKKyAgICBpbnQgKiBpbmxlbjsgLyogdGhlIGxlbmd0aCBvZiBAaW4gKi8KKyAgICBpbnQgbl9pbmxlbjsKKworICAgIGZvciAobl9vdXQgPSAwO25fb3V0IDwgZ2VuX25iX3Vuc2lnbmVkX2NoYXJfcHRyO25fb3V0KyspIHsKKyAgICBmb3IgKG5fb3V0bGVuID0gMDtuX291dGxlbiA8IGdlbl9uYl9pbnRfcHRyO25fb3V0bGVuKyspIHsKKyAgICBmb3IgKG5faW4gPSAwO25faW4gPCBnZW5fbmJfY29uc3RfdW5zaWduZWRfY2hhcl9wdHI7bl9pbisrKSB7CisgICAgZm9yIChuX2lubGVuID0gMDtuX2lubGVuIDwgZ2VuX25iX2ludF9wdHI7bl9pbmxlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dCA9IGdlbl91bnNpZ25lZF9jaGFyX3B0cihuX291dCwgMCk7CisgICAgICAgIG91dGxlbiA9IGdlbl9pbnRfcHRyKG5fb3V0bGVuLCAxKTsKKyAgICAgICAgaW4gPSBnZW5fY29uc3RfdW5zaWduZWRfY2hhcl9wdHIobl9pbiwgMik7CisgICAgICAgIGlubGVuID0gZ2VuX2ludF9wdHIobl9pbmxlbiwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IFVURjhUb2lzb2xhdDEob3V0LCBvdXRsZW4sIChjb25zdCB1bnNpZ25lZCBjaGFyICopaW4sIGlubGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdW5zaWduZWRfY2hhcl9wdHIobl9vdXQsIG91dCwgMCk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fb3V0bGVuLCBvdXRsZW4sIDEpOworICAgICAgICBkZXNfY29uc3RfdW5zaWduZWRfY2hhcl9wdHIobl9pbiwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilpbiwgMik7CisgICAgICAgIGRlc19pbnRfcHRyKG5faW5sZW4sIGlubGVuLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIFVURjhUb2lzb2xhdDEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXRsZW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbmxlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaXNvbGF0MVRvVVRGOCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBjaGFyICogb3V0OyAvKiBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdCAqLworICAgIGludCBuX291dDsKKyAgICBpbnQgKiBvdXRsZW47IC8qIHRoZSBsZW5ndGggb2YgQG91dCAqLworICAgIGludCBuX291dGxlbjsKKyAgICB1bnNpZ25lZCBjaGFyICogaW47IC8qIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBJU08gTGF0aW4gMSBjaGFycyAqLworICAgIGludCBuX2luOworICAgIGludCAqIGlubGVuOyAvKiB0aGUgbGVuZ3RoIG9mIEBpbiAqLworICAgIGludCBuX2lubGVuOworCisgICAgZm9yIChuX291dCA9IDA7bl9vdXQgPCBnZW5fbmJfdW5zaWduZWRfY2hhcl9wdHI7bl9vdXQrKykgeworICAgIGZvciAobl9vdXRsZW4gPSAwO25fb3V0bGVuIDwgZ2VuX25iX2ludF9wdHI7bl9vdXRsZW4rKykgeworICAgIGZvciAobl9pbiA9IDA7bl9pbiA8IGdlbl9uYl9jb25zdF91bnNpZ25lZF9jaGFyX3B0cjtuX2luKyspIHsKKyAgICBmb3IgKG5faW5sZW4gPSAwO25faW5sZW4gPCBnZW5fbmJfaW50X3B0cjtuX2lubGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0ID0gZ2VuX3Vuc2lnbmVkX2NoYXJfcHRyKG5fb3V0LCAwKTsKKyAgICAgICAgb3V0bGVuID0gZ2VuX2ludF9wdHIobl9vdXRsZW4sIDEpOworICAgICAgICBpbiA9IGdlbl9jb25zdF91bnNpZ25lZF9jaGFyX3B0cihuX2luLCAyKTsKKyAgICAgICAgaW5sZW4gPSBnZW5faW50X3B0cihuX2lubGVuLCAzKTsKKworICAgICAgICByZXRfdmFsID0gaXNvbGF0MVRvVVRGOChvdXQsIG91dGxlbiwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilpbiwgaW5sZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc191bnNpZ25lZF9jaGFyX3B0cihuX291dCwgb3V0LCAwKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9vdXRsZW4sIG91dGxlbiwgMSk7CisgICAgICAgIGRlc19jb25zdF91bnNpZ25lZF9jaGFyX3B0cihuX2luLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKWluLCAyKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9pbmxlbiwgaW5sZW4sIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaXNvbGF0MVRvVVRGOCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dGxlbik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2lubGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEFkZEVuY29kaW5nQWxpYXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjaGFyICogbmFtZTsgLyogdGhlIGVuY29kaW5nIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KSAqLworICAgIGludCBuX25hbWU7CisgICAgY2hhciAqIGFsaWFzOyAvKiB0aGUgYWxpYXMgbmFtZSBhcyBwYXJzZWQsIGluIFVURi04IGZvcm1hdCAoQVNDSUkgYWN0dWFsbHkpICovCisgICAgaW50IG5fYWxpYXM7CisKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2FsaWFzID0gMDtuX2FsaWFzIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYWxpYXMrKykgeworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgMCk7CisgICAgICAgIGFsaWFzID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fYWxpYXMsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxBZGRFbmNvZGluZ0FsaWFzKChjb25zdCBjaGFyICopbmFtZSwgKGNvbnN0IGNoYXIgKilhbGlhcyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IGNoYXIgKiluYW1lLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fYWxpYXMsIChjb25zdCBjaGFyICopYWxpYXMsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfeG1sQ2hhckVuY29kaW5nSGFuZGxlcl9wdHIgMQorc3RhdGljIHhtbENoYXJFbmNvZGluZ0hhbmRsZXIgKiBnZW5feG1sQ2hhckVuY29kaW5nSGFuZGxlcl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbENoYXJFbmNvZGluZ0hhbmRsZXJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICogdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hhckVuY0Nsb3NlRnVuYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICogaGFuZGxlcjsgLyogY2hhciBlbmNvbmRpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmUgKi8KKyAgICBpbnQgbl9oYW5kbGVyOworCisgICAgZm9yIChuX2hhbmRsZXIgPSAwO25faGFuZGxlciA8IGdlbl9uYl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cjtuX2hhbmRsZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBoYW5kbGVyID0gZ2VuX3htbENoYXJFbmNvZGluZ0hhbmRsZXJfcHRyKG5faGFuZGxlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENoYXJFbmNDbG9zZUZ1bmMoaGFuZGxlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZ0hhbmRsZXJfcHRyKG5faGFuZGxlciwgaGFuZGxlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDaGFyRW5jQ2xvc2VGdW5jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2hhbmRsZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hhckVuY0ZpcnN0TGluZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyICogaGFuZGxlcjsgLyogY2hhciBlbmNvbmRpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmUgKi8KKyAgICBpbnQgbl9oYW5kbGVyOworICAgIHhtbEJ1ZmZlclB0ciBvdXQ7IC8qIGFuIHhtbEJ1ZmZlciBmb3IgdGhlIG91dHB1dC4gKi8KKyAgICBpbnQgbl9vdXQ7CisgICAgeG1sQnVmZmVyUHRyIGluOyAvKiBhbiB4bWxCdWZmZXIgZm9yIHRoZSBpbnB1dCAqLworICAgIGludCBuX2luOworCisgICAgZm9yIChuX2hhbmRsZXIgPSAwO25faGFuZGxlciA8IGdlbl9uYl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cjtuX2hhbmRsZXIrKykgeworICAgIGZvciAobl9vdXQgPSAwO25fb3V0IDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX291dCsrKSB7CisgICAgZm9yIChuX2luID0gMDtuX2luIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2luKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaGFuZGxlciA9IGdlbl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cihuX2hhbmRsZXIsIDApOworICAgICAgICBvdXQgPSBnZW5feG1sQnVmZmVyUHRyKG5fb3V0LCAxKTsKKyAgICAgICAgaW4gPSBnZW5feG1sQnVmZmVyUHRyKG5faW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDaGFyRW5jRmlyc3RMaW5lKGhhbmRsZXIsIG91dCwgaW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cihuX2hhbmRsZXIsIGhhbmRsZXIsIDApOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fb3V0LCBvdXQsIDEpOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5faW4sIGluLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENoYXJFbmNGaXJzdExpbmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faGFuZGxlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENoYXJFbmNJbkZ1bmModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlciAqIGhhbmRsZXI7IC8qIGNoYXIgZW5jb2RpbmcgdHJhbnNmb3JtYXRpb24gZGF0YSBzdHJ1Y3R1cmUgKi8KKyAgICBpbnQgbl9oYW5kbGVyOworICAgIHhtbEJ1ZmZlclB0ciBvdXQ7IC8qIGFuIHhtbEJ1ZmZlciBmb3IgdGhlIG91dHB1dC4gKi8KKyAgICBpbnQgbl9vdXQ7CisgICAgeG1sQnVmZmVyUHRyIGluOyAvKiBhbiB4bWxCdWZmZXIgZm9yIHRoZSBpbnB1dCAqLworICAgIGludCBuX2luOworCisgICAgZm9yIChuX2hhbmRsZXIgPSAwO25faGFuZGxlciA8IGdlbl9uYl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cjtuX2hhbmRsZXIrKykgeworICAgIGZvciAobl9vdXQgPSAwO25fb3V0IDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX291dCsrKSB7CisgICAgZm9yIChuX2luID0gMDtuX2luIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2luKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaGFuZGxlciA9IGdlbl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cihuX2hhbmRsZXIsIDApOworICAgICAgICBvdXQgPSBnZW5feG1sQnVmZmVyUHRyKG5fb3V0LCAxKTsKKyAgICAgICAgaW4gPSBnZW5feG1sQnVmZmVyUHRyKG5faW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDaGFyRW5jSW5GdW5jKGhhbmRsZXIsIG91dCwgaW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cihuX2hhbmRsZXIsIGhhbmRsZXIsIDApOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fb3V0LCBvdXQsIDEpOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5faW4sIGluLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENoYXJFbmNJbkZ1bmMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faGFuZGxlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENoYXJFbmNPdXRGdW5jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXIgKiBoYW5kbGVyOyAvKiBjaGFyIGVuY29uZGluZyB0cmFuc2Zvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZSAqLworICAgIGludCBuX2hhbmRsZXI7CisgICAgeG1sQnVmZmVyUHRyIG91dDsgLyogYW4geG1sQnVmZmVyIGZvciB0aGUgb3V0cHV0LiAqLworICAgIGludCBuX291dDsKKyAgICB4bWxCdWZmZXJQdHIgaW47IC8qIGFuIHhtbEJ1ZmZlciBmb3IgdGhlIGlucHV0ICovCisgICAgaW50IG5faW47CisKKyAgICBmb3IgKG5faGFuZGxlciA9IDA7bl9oYW5kbGVyIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZ0hhbmRsZXJfcHRyO25faGFuZGxlcisrKSB7CisgICAgZm9yIChuX291dCA9IDA7bl9vdXQgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fb3V0KyspIHsKKyAgICBmb3IgKG5faW4gPSAwO25faW4gPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25faW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBoYW5kbGVyID0gZ2VuX3htbENoYXJFbmNvZGluZ0hhbmRsZXJfcHRyKG5faGFuZGxlciwgMCk7CisgICAgICAgIG91dCA9IGdlbl94bWxCdWZmZXJQdHIobl9vdXQsIDEpOworICAgICAgICBpbiA9IGdlbl94bWxCdWZmZXJQdHIobl9pbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENoYXJFbmNPdXRGdW5jKGhhbmRsZXIsIG91dCwgaW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2RpbmdIYW5kbGVyX3B0cihuX2hhbmRsZXIsIGhhbmRsZXIsIDApOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fb3V0LCBvdXQsIDEpOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5faW4sIGluLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENoYXJFbmNPdXRGdW5jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2hhbmRsZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDbGVhbnVwQ2hhckVuY29kaW5nSGFuZGxlcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworCisgICAgICAgIHhtbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycygpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcygpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEZWxFbmNvZGluZ0FsaWFzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGNoYXIgKiBhbGlhczsgLyogdGhlIGFsaWFzIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KSAqLworICAgIGludCBuX2FsaWFzOworCisgICAgZm9yIChuX2FsaWFzID0gMDtuX2FsaWFzIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYWxpYXMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBhbGlhcyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2FsaWFzLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sRGVsRW5jb2RpbmdBbGlhcygoY29uc3QgY2hhciAqKWFsaWFzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9hbGlhcywgKGNvbnN0IGNoYXIgKilhbGlhcywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEZWxFbmNvZGluZ0FsaWFzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2FsaWFzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERldGVjdENoYXJFbmNvZGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyRW5jb2RpbmcgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBjaGFyICogaW47IC8qIGEgcG9pbnRlciB0byB0aGUgZmlyc3QgYnl0ZXMgb2YgdGhlIFhNTCBlbnRpdHksIG11c3QgYmUgYXQgbGVhc3QgMiBieXRlcyBsb25nIChhdCBsZWFzdCA0IGlmIGVuY29kaW5nIGlzIFVURjQgdmFyaWFudCkuICovCisgICAgaW50IG5faW47CisgICAgaW50IGxlbjsgLyogcG9pbnRlciB0byB0aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5faW4gPSAwO25faW4gPCBnZW5fbmJfY29uc3RfdW5zaWduZWRfY2hhcl9wdHI7bl9pbisrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaW4gPSBnZW5fY29uc3RfdW5zaWduZWRfY2hhcl9wdHIobl9pbiwgMCk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxEZXRlY3RDaGFyRW5jb2RpbmcoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilpbiwgbGVuKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJFbmNvZGluZyhyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfdW5zaWduZWRfY2hhcl9wdHIobl9pbiwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilpbiwgMCk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEZXRlY3RDaGFyRW5jb2RpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldENoYXJFbmNvZGluZ0hhbmRsZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldENoYXJFbmNvZGluZ05hbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgY2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsgLyogdGhlIGVuY29kaW5nICovCisgICAgaW50IG5fZW5jOworCisgICAgZm9yIChuX2VuYyA9IDA7bl9lbmMgPCBnZW5fbmJfeG1sQ2hhckVuY29kaW5nO25fZW5jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZW5jID0gZ2VuX3htbENoYXJFbmNvZGluZyhuX2VuYywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldENoYXJFbmNvZGluZ05hbWUoZW5jKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X2NoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2Rpbmcobl9lbmMsIGVuYywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxHZXRDaGFyRW5jb2RpbmdOYW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxHZXRFbmNvZGluZ0FsaWFzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IGNoYXIgKiByZXRfdmFsOworICAgIGNoYXIgKiBhbGlhczsgLyogdGhlIGFsaWFzIG5hbWUgYXMgcGFyc2VkLCBpbiBVVEYtOCBmb3JtYXQgKEFTQ0lJIGFjdHVhbGx5KSAqLworICAgIGludCBuX2FsaWFzOworCisgICAgZm9yIChuX2FsaWFzID0gMDtuX2FsaWFzIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYWxpYXMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBhbGlhcyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2FsaWFzLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0RW5jb2RpbmdBbGlhcygoY29uc3QgY2hhciAqKWFsaWFzKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X2NoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2FsaWFzLCAoY29uc3QgY2hhciAqKWFsaWFzLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEdldEVuY29kaW5nQWxpYXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYWxpYXMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSW5pdENoYXJFbmNvZGluZ0hhbmRsZXJzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKworICAgICAgICB4bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3Q2hhckVuY29kaW5nSGFuZGxlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VDaGFyRW5jb2Rpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhckVuY29kaW5nIHJldF92YWw7CisgICAgY2hhciAqIG5hbWU7IC8qIHRoZSBlbmNvZGluZyBuYW1lIGFzIHBhcnNlZCwgaW4gVVRGLTggZm9ybWF0IChBU0NJSSBhY3R1YWxseSkgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlQ2hhckVuY29kaW5nKChjb25zdCBjaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyRW5jb2RpbmcocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IGNoYXIgKiluYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlQ2hhckVuY29kaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgMQorc3RhdGljIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZ2VuX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlcjsgLyogdGhlIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciBibG9jayAqLworICAgIGludCBuX2hhbmRsZXI7CisKKyAgICBmb3IgKG5faGFuZGxlciA9IDA7bl9oYW5kbGVyIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI7bl9oYW5kbGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaGFuZGxlciA9IGdlbl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5faGFuZGxlciwgMCk7CisKKyAgICAgICAgeG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyKGhhbmRsZXIpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5faGFuZGxlciwgaGFuZGxlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faGFuZGxlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfZW5jb2Rpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIGVuY29kaW5nIDogMTYgb2YgMTkgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9VVEY4VG9pc29sYXQxKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9pc29sYXQxVG9VVEY4KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBZGRFbmNvZGluZ0FsaWFzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDaGFyRW5jQ2xvc2VGdW5jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDaGFyRW5jRmlyc3RMaW5lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDaGFyRW5jSW5GdW5jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDaGFyRW5jT3V0RnVuYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2xlYW51cENoYXJFbmNvZGluZ0hhbmRsZXJzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDbGVhbnVwRW5jb2RpbmdBbGlhc2VzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEZWxFbmNvZGluZ0FsaWFzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEZXRlY3RDaGFyRW5jb2RpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXRDaGFyRW5jb2RpbmdOYW1lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXRFbmNvZGluZ0FsaWFzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJbml0Q2hhckVuY29kaW5nSGFuZGxlcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0NoYXJFbmNvZGluZ0hhbmRsZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlQ2hhckVuY29kaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWdpc3RlckNoYXJFbmNvZGluZ0hhbmRsZXIoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIGVuY29kaW5nOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbEFkZERvY0VudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFbnRpdHlQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBlbnRpdHkgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgaW50IHR5cGU7IC8qIHRoZSBlbnRpdHkgdHlwZSBYTUxfeHh4X3l5eV9FTlRJVFkgKi8KKyAgICBpbnQgbl90eXBlOworICAgIHhtbENoYXIgKiBFeHRlcm5hbElEOyAvKiB0aGUgZW50aXR5IGV4dGVybmFsIElEIGlmIGF2YWlsYWJsZSAqLworICAgIGludCBuX0V4dGVybmFsSUQ7CisgICAgeG1sQ2hhciAqIFN5c3RlbUlEOyAvKiB0aGUgZW50aXR5IHN5c3RlbSBJRCBpZiBhdmFpbGFibGUgKi8KKyAgICBpbnQgbl9TeXN0ZW1JRDsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIGVudGl0eSBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfaW50O25fdHlwZSsrKSB7CisgICAgZm9yIChuX0V4dGVybmFsSUQgPSAwO25fRXh0ZXJuYWxJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0V4dGVybmFsSUQrKykgeworICAgIGZvciAobl9TeXN0ZW1JRCA9IDA7bl9TeXN0ZW1JRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1N5c3RlbUlEKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHR5cGUgPSBnZW5faW50KG5fdHlwZSwgMik7CisgICAgICAgIEV4dGVybmFsSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAzKTsKKyAgICAgICAgU3lzdGVtSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgNCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sQWRkRG9jRW50aXR5KGRvYywgKGNvbnN0IHhtbENoYXIgKiluYW1lLCB0eXBlLCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIChjb25zdCB4bWxDaGFyICopU3lzdGVtSUQsIChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF94bWxFbnRpdHlQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2ludChuX3R5cGUsIHR5cGUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIDMpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCwgNCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxBZGREb2NFbnRpdHkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90eXBlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9FeHRlcm5hbElEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9TeXN0ZW1JRCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEFkZER0ZEVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFbnRpdHlQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBlbnRpdHkgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgaW50IHR5cGU7IC8qIHRoZSBlbnRpdHkgdHlwZSBYTUxfeHh4X3l5eV9FTlRJVFkgKi8KKyAgICBpbnQgbl90eXBlOworICAgIHhtbENoYXIgKiBFeHRlcm5hbElEOyAvKiB0aGUgZW50aXR5IGV4dGVybmFsIElEIGlmIGF2YWlsYWJsZSAqLworICAgIGludCBuX0V4dGVybmFsSUQ7CisgICAgeG1sQ2hhciAqIFN5c3RlbUlEOyAvKiB0aGUgZW50aXR5IHN5c3RlbSBJRCBpZiBhdmFpbGFibGUgKi8KKyAgICBpbnQgbl9TeXN0ZW1JRDsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIGVudGl0eSBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfaW50O25fdHlwZSsrKSB7CisgICAgZm9yIChuX0V4dGVybmFsSUQgPSAwO25fRXh0ZXJuYWxJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0V4dGVybmFsSUQrKykgeworICAgIGZvciAobl9TeXN0ZW1JRCA9IDA7bl9TeXN0ZW1JRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1N5c3RlbUlEKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHR5cGUgPSBnZW5faW50KG5fdHlwZSwgMik7CisgICAgICAgIEV4dGVybmFsSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAzKTsKKyAgICAgICAgU3lzdGVtSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgNCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sQWRkRHRkRW50aXR5KGRvYywgKGNvbnN0IHhtbENoYXIgKiluYW1lLCB0eXBlLCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIChjb25zdCB4bWxDaGFyICopU3lzdGVtSUQsIChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF94bWxFbnRpdHlQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2ludChuX3R5cGUsIHR5cGUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIDMpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCwgNCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxBZGREdGRFbnRpdHkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90eXBlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9FeHRlcm5hbElEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9TeXN0ZW1JRCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9MRUdBQ1lfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfTEVHQUNZX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICB4bWxDbGVhbnVwUHJlZGVmaW5lZEVudGl0aWVzKCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfeG1sRW50aXRpZXNUYWJsZVB0ciAxCitzdGF0aWMgeG1sRW50aXRpZXNUYWJsZVB0ciBnZW5feG1sRW50aXRpZXNUYWJsZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sRW50aXRpZXNUYWJsZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sRW50aXRpZXNUYWJsZVB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIGludAordGVzdF94bWxDb3B5RW50aXRpZXNUYWJsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ3JlYXRlRW50aXRpZXNUYWJsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRHVtcEVudGl0aWVzVGFibGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogQW4gWE1MIGJ1ZmZlci4gKi8KKyAgICBpbnQgbl9idWY7CisgICAgeG1sRW50aXRpZXNUYWJsZVB0ciB0YWJsZTsgLyogQW4gZW50aXR5IHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxFbnRpdGllc1RhYmxlUHRyO25fdGFibGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgdGFibGUgPSBnZW5feG1sRW50aXRpZXNUYWJsZVB0cihuX3RhYmxlLCAxKTsKKworICAgICAgICB4bWxEdW1wRW50aXRpZXNUYWJsZShidWYsIHRhYmxlKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sRW50aXRpZXNUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEdW1wRW50aXRpZXNUYWJsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxFbnRpdHlQdHIgMQorc3RhdGljIHhtbEVudGl0eVB0ciBnZW5feG1sRW50aXR5UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxFbnRpdHlQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbEVudGl0eVB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIGludAordGVzdF94bWxEdW1wRW50aXR5RGVjbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxCdWZmZXJQdHIgYnVmOyAvKiBBbiBYTUwgYnVmZmVyLiAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxFbnRpdHlQdHIgZW50OyAvKiBBbiBlbnRpdHkgdGFibGUgKi8KKyAgICBpbnQgbl9lbnQ7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9lbnQgPSAwO25fZW50IDwgZ2VuX25iX3htbEVudGl0eVB0cjtuX2VudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZiA9IGdlbl94bWxCdWZmZXJQdHIobl9idWYsIDApOworICAgICAgICBlbnQgPSBnZW5feG1sRW50aXR5UHRyKG5fZW50LCAxKTsKKworICAgICAgICB4bWxEdW1wRW50aXR5RGVjbChidWYsIGVudCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3htbEVudGl0eVB0cihuX2VudCwgZW50LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbER1bXBFbnRpdHlEZWNsIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCBjb250YWluaW5nIHRoZSBzdHJpbmcgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIGlucHV0OyAvKiBBIHN0cmluZyB0byBjb252ZXJ0IHRvIFhNTC4gKi8KKyAgICBpbnQgbl9pbnB1dDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2lucHV0ID0gMDtuX2lucHV0IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25faW5wdXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgaW5wdXQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9pbnB1dCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KGRvYywgKGNvbnN0IHhtbENoYXIgKilpbnB1dCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9pbnB1dCwgKGNvbnN0IHhtbENoYXIgKilpbnB1dCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2lucHV0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFbmNvZGVTcGVjaWFsQ2hhcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50IGNvbnRhaW5pbmcgdGhlIHN0cmluZyAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogaW5wdXQ7IC8qIEEgc3RyaW5nIHRvIGNvbnZlcnQgdG8gWE1MLiAqLworICAgIGludCBuX2lucHV0OworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5faW5wdXQgPSAwO25faW5wdXQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9pbnB1dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBpbnB1dCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2lucHV0LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sRW5jb2RlU3BlY2lhbENoYXJzKGRvYywgKGNvbnN0IHhtbENoYXIgKilpbnB1dCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9pbnB1dCwgKGNvbnN0IHhtbENoYXIgKilpbnB1dCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbnB1dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0RG9jRW50aXR5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEVudGl0eVB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCByZWZlcmVuY2luZyB0aGUgZW50aXR5ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgZW50aXR5IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldERvY0VudGl0eShkb2MsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxFbnRpdHlQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEdldERvY0VudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldER0ZEVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFbnRpdHlQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgcmVmZXJlbmNpbmcgdGhlIGVudGl0eSAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxHZXREdGRFbnRpdHkoZG9jLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfeG1sRW50aXR5UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxHZXREdGRFbnRpdHkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxHZXRQYXJhbWV0ZXJFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRW50aXR5UHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50IHJlZmVyZW5jaW5nIHRoZSBlbnRpdHkgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBlbnRpdHkgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0UGFyYW1ldGVyRW50aXR5KGRvYywgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X3htbEVudGl0eVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0UGFyYW1ldGVyRW50aXR5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0UHJlZGVmaW5lZEVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFbnRpdHlQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxHZXRQcmVkZWZpbmVkRW50aXR5KChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxFbnRpdHlQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEdldFByZWRlZmluZWRFbnRpdHkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX0xFR0FDWV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgeG1sSW5pdGlhbGl6ZVByZWRlZmluZWRFbnRpdGllcygpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3RW50aXR5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEVudGl0eVB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICBpbnQgdHlwZTsgLyogdGhlIGVudGl0eSB0eXBlIFhNTF94eHhfeXl5X0VOVElUWSAqLworICAgIGludCBuX3R5cGU7CisgICAgeG1sQ2hhciAqIEV4dGVybmFsSUQ7IC8qIHRoZSBlbnRpdHkgZXh0ZXJuYWwgSUQgaWYgYXZhaWxhYmxlICovCisgICAgaW50IG5fRXh0ZXJuYWxJRDsKKyAgICB4bWxDaGFyICogU3lzdGVtSUQ7IC8qIHRoZSBlbnRpdHkgc3lzdGVtIElEIGlmIGF2YWlsYWJsZSAqLworICAgIGludCBuX1N5c3RlbUlEOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiB0aGUgZW50aXR5IGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl9pbnQ7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fRXh0ZXJuYWxJRCA9IDA7bl9FeHRlcm5hbElEIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fRXh0ZXJuYWxJRCsrKSB7CisgICAgZm9yIChuX1N5c3RlbUlEID0gMDtuX1N5c3RlbUlEIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fU3lzdGVtSUQrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgdHlwZSA9IGdlbl9pbnQobl90eXBlLCAyKTsKKyAgICAgICAgRXh0ZXJuYWxJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX0V4dGVybmFsSUQsIDMpOworICAgICAgICBTeXN0ZW1JRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX1N5c3RlbUlELCA0KTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDUpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdFbnRpdHkoZG9jLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIHR5cGUsIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X3htbEVudGl0eVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfaW50KG5fdHlwZSwgdHlwZSwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX0V4dGVybmFsSUQsIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgMyk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1N5c3RlbUlELCAoY29uc3QgeG1sQ2hhciAqKVN5c3RlbUlELCA0KTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCA1KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld0VudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3R5cGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX0V4dGVybmFsSUQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1N5c3RlbUlEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X2VudGl0aWVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyBlbnRpdGllcyA6IDEzIG9mIDE3IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQWRkRG9jRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBZGREdGRFbnRpdHkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENsZWFudXBQcmVkZWZpbmVkRW50aXRpZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlFbnRpdGllc1RhYmxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDcmVhdGVFbnRpdGllc1RhYmxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEdW1wRW50aXRpZXNUYWJsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRHVtcEVudGl0eURlY2woKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxFbmNvZGVTcGVjaWFsQ2hhcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldERvY0VudGl0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0RHRkRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXRQYXJhbWV0ZXJFbnRpdHkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldFByZWRlZmluZWRFbnRpdHkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEluaXRpYWxpemVQcmVkZWZpbmVkRW50aXRpZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0VudGl0eSgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgZW50aXRpZXM6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaEFkZEVudHJ5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEhhc2hUYWJsZVB0ciB0YWJsZTsgLyogdGhlIGhhc2ggdGFibGUgKi8KKyAgICBpbnQgbl90YWJsZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTsKKyAgICB2b2lkICogdXNlcmRhdGE7IC8qIGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl91c2VyZGF0YTsKKworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxIYXNoVGFibGVQdHI7bl90YWJsZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl91c2VyZGF0YSA9IDA7bl91c2VyZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX3VzZXJkYXRhKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdGFibGUgPSBnZW5feG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHVzZXJkYXRhID0gZ2VuX3VzZXJkYXRhKG5fdXNlcmRhdGEsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoQWRkRW50cnkodGFibGUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgdXNlcmRhdGEpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxIYXNoVGFibGVQdHIobl90YWJsZSwgdGFibGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfdXNlcmRhdGEobl91c2VyZGF0YSwgdXNlcmRhdGEsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSGFzaEFkZEVudHJ5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl91c2VyZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hBZGRFbnRyeTIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sSGFzaFRhYmxlUHRyIHRhYmxlOyAvKiB0aGUgaGFzaCB0YWJsZSAqLworICAgIGludCBuX3RhYmxlOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuYW1lMjsgLyogYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lMjsKKyAgICB2b2lkICogdXNlcmRhdGE7IC8qIGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl91c2VyZGF0YTsKKworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxIYXNoVGFibGVQdHI7bl90YWJsZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9uYW1lMiA9IDA7bl9uYW1lMiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUyKyspIHsKKyAgICBmb3IgKG5fdXNlcmRhdGEgPSAwO25fdXNlcmRhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl91c2VyZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBuYW1lMiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUyLCAyKTsKKyAgICAgICAgdXNlcmRhdGEgPSBnZW5fdXNlcmRhdGEobl91c2VyZGF0YSwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEhhc2hBZGRFbnRyeTIodGFibGUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lMiwgdXNlcmRhdGEpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxIYXNoVGFibGVQdHIobl90YWJsZSwgdGFibGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMiwgKGNvbnN0IHhtbENoYXIgKiluYW1lMiwgMik7CisgICAgICAgIGRlc191c2VyZGF0YShuX3VzZXJkYXRhLCB1c2VyZGF0YSwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNoQWRkRW50cnkyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXNlcmRhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaEFkZEVudHJ5Myh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgdGFibGU7IC8qIHRoZSBoYXNoIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5hbWUyOyAvKiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWUyOworICAgIHhtbENoYXIgKiBuYW1lMzsgLyogYSB0aGlyZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWUzOworICAgIHZvaWQgKiB1c2VyZGF0YTsgLyogYSBwb2ludGVyIHRvIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX3VzZXJkYXRhOworCisgICAgZm9yIChuX3RhYmxlID0gMDtuX3RhYmxlIDwgZ2VuX25iX3htbEhhc2hUYWJsZVB0cjtuX3RhYmxlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25hbWUyID0gMDtuX25hbWUyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZTIrKykgeworICAgIGZvciAobl9uYW1lMyA9IDA7bl9uYW1lMyA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUzKyspIHsKKyAgICBmb3IgKG5fdXNlcmRhdGEgPSAwO25fdXNlcmRhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl91c2VyZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBuYW1lMiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUyLCAyKTsKKyAgICAgICAgbmFtZTMgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMywgMyk7CisgICAgICAgIHVzZXJkYXRhID0gZ2VuX3VzZXJkYXRhKG5fdXNlcmRhdGEsIDQpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoQWRkRW50cnkzKHRhYmxlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZTIsIChjb25zdCB4bWxDaGFyICopbmFtZTMsIHVzZXJkYXRhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIHRhYmxlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIChjb25zdCB4bWxDaGFyICopbmFtZTIsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMywgKGNvbnN0IHhtbENoYXIgKiluYW1lMywgMyk7CisgICAgICAgIGRlc191c2VyZGF0YShuX3VzZXJkYXRhLCB1c2VyZGF0YSwgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNoQWRkRW50cnkzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZTMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3VzZXJkYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNoQ29weSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaENyZWF0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaENyZWF0ZURpY3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hMb29rdXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgeG1sSGFzaFRhYmxlUHRyIHRhYmxlOyAvKiB0aGUgaGFzaCB0YWJsZSAqLworICAgIGludCBuX3RhYmxlOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX3RhYmxlID0gMDtuX3RhYmxlIDwgZ2VuX25iX3htbEhhc2hUYWJsZVB0cjtuX3RhYmxlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoTG9va3VwKHRhYmxlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfdm9pZF9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNoTG9va3VwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNoTG9va3VwMih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogcmV0X3ZhbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgdGFibGU7IC8qIHRoZSBoYXNoIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5hbWUyOyAvKiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWUyOworCisgICAgZm9yIChuX3RhYmxlID0gMDtuX3RhYmxlIDwgZ2VuX25iX3htbEhhc2hUYWJsZVB0cjtuX3RhYmxlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25hbWUyID0gMDtuX25hbWUyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZTIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0YWJsZSA9IGdlbl94bWxIYXNoVGFibGVQdHIobl90YWJsZSwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgbmFtZTIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEhhc2hMb29rdXAyKHRhYmxlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZTIpOworICAgICAgICBkZXNyZXRfdm9pZF9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEhhc2hMb29rdXAyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hMb29rdXAzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiByZXRfdmFsOworICAgIHhtbEhhc2hUYWJsZVB0ciB0YWJsZTsgLyogdGhlIGhhc2ggdGFibGUgKi8KKyAgICBpbnQgbl90YWJsZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogbmFtZTI7IC8qIGEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTI7CisgICAgeG1sQ2hhciAqIG5hbWUzOyAvKiBhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTM7CisKKyAgICBmb3IgKG5fdGFibGUgPSAwO25fdGFibGUgPCBnZW5fbmJfeG1sSGFzaFRhYmxlUHRyO25fdGFibGUrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbmFtZTIgPSAwO25fbmFtZTIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lMisrKSB7CisgICAgZm9yIChuX25hbWUzID0gMDtuX25hbWUzIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZTMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0YWJsZSA9IGdlbl94bWxIYXNoVGFibGVQdHIobl90YWJsZSwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgbmFtZTIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMiwgMik7CisgICAgICAgIG5hbWUzID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTMsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoTG9va3VwMyh0YWJsZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUzKTsKKyAgICAgICAgZGVzcmV0X3ZvaWRfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxIYXNoVGFibGVQdHIobl90YWJsZSwgdGFibGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMiwgKGNvbnN0IHhtbENoYXIgKiluYW1lMiwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUzLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUzLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEhhc2hMb29rdXAzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZTMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaFFMb29rdXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgeG1sSGFzaFRhYmxlUHRyIHRhYmxlOyAvKiB0aGUgaGFzaCB0YWJsZSAqLworICAgIGludCBuX3RhYmxlOworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIHRoZSBwcmVmaXggb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fcHJlZml4OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX3RhYmxlID0gMDtuX3RhYmxlIDwgZ2VuX25iX3htbEhhc2hUYWJsZVB0cjtuX3RhYmxlKyspIHsKKyAgICBmb3IgKG5fcHJlZml4ID0gMDtuX3ByZWZpeCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ByZWZpeCsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0YWJsZSA9IGdlbl94bWxIYXNoVGFibGVQdHIobl90YWJsZSwgMCk7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sSGFzaFFMb29rdXAodGFibGUsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfdm9pZF9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSGFzaFFMb29rdXAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFibGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hRTG9va3VwMih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogcmV0X3ZhbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgdGFibGU7IC8qIHRoZSBoYXNoIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisgICAgeG1sQ2hhciAqIHByZWZpeDsgLyogdGhlIHByZWZpeCBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9wcmVmaXg7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIHByZWZpeDI7IC8qIHRoZSBzZWNvbmQgcHJlZml4IG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX3ByZWZpeDI7CisgICAgeG1sQ2hhciAqIG5hbWUyOyAvKiBhIHNlY29uZCBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWUyOworCisgICAgZm9yIChuX3RhYmxlID0gMDtuX3RhYmxlIDwgZ2VuX25iX3htbEhhc2hUYWJsZVB0cjtuX3RhYmxlKyspIHsKKyAgICBmb3IgKG5fcHJlZml4ID0gMDtuX3ByZWZpeCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ByZWZpeCsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9wcmVmaXgyID0gMDtuX3ByZWZpeDIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgyKyspIHsKKyAgICBmb3IgKG5fbmFtZTIgPSAwO25fbmFtZTIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCAwKTsKKyAgICAgICAgcHJlZml4ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICBwcmVmaXgyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4MiwgMyk7CisgICAgICAgIG5hbWUyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIDQpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoUUxvb2t1cDIodGFibGUsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopcHJlZml4MiwgKGNvbnN0IHhtbENoYXIgKiluYW1lMik7CisgICAgICAgIGRlc3JldF92b2lkX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIHRhYmxlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeDIsIChjb25zdCB4bWxDaGFyICopcHJlZml4MiwgMyk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEhhc2hRTG9va3VwMiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90YWJsZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJlZml4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmaXgyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaFFMb29rdXAzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiByZXRfdmFsOworICAgIHhtbEhhc2hUYWJsZVB0ciB0YWJsZTsgLyogdGhlIGhhc2ggdGFibGUgKi8KKyAgICBpbnQgbl90YWJsZTsKKyAgICB4bWxDaGFyICogcHJlZml4OyAvKiB0aGUgcHJlZml4IG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX3ByZWZpeDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogcHJlZml4MjsgLyogdGhlIHNlY29uZCBwcmVmaXggb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fcHJlZml4MjsKKyAgICB4bWxDaGFyICogbmFtZTI7IC8qIGEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTI7CisgICAgeG1sQ2hhciAqIHByZWZpeDM7IC8qIHRoZSB0aGlyZCBwcmVmaXggb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fcHJlZml4MzsKKyAgICB4bWxDaGFyICogbmFtZTM7IC8qIGEgdGhpcmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lMzsKKworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxIYXNoVGFibGVQdHI7bl90YWJsZSsrKSB7CisgICAgZm9yIChuX3ByZWZpeCA9IDA7bl9wcmVmaXggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fcHJlZml4MiA9IDA7bl9wcmVmaXgyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4MisrKSB7CisgICAgZm9yIChuX25hbWUyID0gMDtuX25hbWUyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZTIrKykgeworICAgIGZvciAobl9wcmVmaXgzID0gMDtuX3ByZWZpeDMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgzKyspIHsKKyAgICBmb3IgKG5fbmFtZTMgPSAwO25fbmFtZTMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lMysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCAwKTsKKyAgICAgICAgcHJlZml4ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICBwcmVmaXgyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4MiwgMyk7CisgICAgICAgIG5hbWUyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIDQpOworICAgICAgICBwcmVmaXgzID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4MywgNSk7CisgICAgICAgIG5hbWUzID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTMsIDYpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoUUxvb2t1cDModGFibGUsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopcHJlZml4MiwgKGNvbnN0IHhtbENoYXIgKiluYW1lMiwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgzLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUzKTsKKyAgICAgICAgZGVzcmV0X3ZvaWRfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxIYXNoVGFibGVQdHIobl90YWJsZSwgdGFibGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4MiwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgyLCAzKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIChjb25zdCB4bWxDaGFyICopbmFtZTIsIDQpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgzLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeDMsIDUpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMywgKGNvbnN0IHhtbENoYXIgKiluYW1lMywgNik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNoUUxvb2t1cDMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFibGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJlZml4Mik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZTIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeDMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hSZW1vdmVFbnRyeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgdGFibGU7IC8qIHRoZSBoYXNoIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sSGFzaERlYWxsb2NhdG9yIGY7IC8qIHRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVtb3ZlZCBpdGVtIChpZiBhbnkpICovCisgICAgaW50IG5fZjsKKworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxIYXNoVGFibGVQdHI7bl90YWJsZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9mID0gMDtuX2YgPCBnZW5fbmJfeG1sSGFzaERlYWxsb2NhdG9yO25fZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBmID0gZ2VuX3htbEhhc2hEZWFsbG9jYXRvcihuX2YsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoUmVtb3ZlRW50cnkodGFibGUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgZik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc194bWxIYXNoRGVhbGxvY2F0b3Iobl9mLCBmLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEhhc2hSZW1vdmVFbnRyeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90YWJsZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hSZW1vdmVFbnRyeTIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sSGFzaFRhYmxlUHRyIHRhYmxlOyAvKiB0aGUgaGFzaCB0YWJsZSAqLworICAgIGludCBuX3RhYmxlOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuYW1lMjsgLyogYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lMjsKKyAgICB4bWxIYXNoRGVhbGxvY2F0b3IgZjsgLyogdGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZW1vdmVkIGl0ZW0gKGlmIGFueSkgKi8KKyAgICBpbnQgbl9mOworCisgICAgZm9yIChuX3RhYmxlID0gMDtuX3RhYmxlIDwgZ2VuX25iX3htbEhhc2hUYWJsZVB0cjtuX3RhYmxlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25hbWUyID0gMDtuX25hbWUyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZTIrKykgeworICAgIGZvciAobl9mID0gMDtuX2YgPCBnZW5fbmJfeG1sSGFzaERlYWxsb2NhdG9yO25fZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBuYW1lMiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUyLCAyKTsKKyAgICAgICAgZiA9IGdlbl94bWxIYXNoRGVhbGxvY2F0b3Iobl9mLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sSGFzaFJlbW92ZUVudHJ5Mih0YWJsZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCBmKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIHRhYmxlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIChjb25zdCB4bWxDaGFyICopbmFtZTIsIDIpOworICAgICAgICBkZXNfeG1sSGFzaERlYWxsb2NhdG9yKG5fZiwgZiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNoUmVtb3ZlRW50cnkyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNoUmVtb3ZlRW50cnkzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEhhc2hUYWJsZVB0ciB0YWJsZTsgLyogdGhlIGhhc2ggdGFibGUgKi8KKyAgICBpbnQgbl90YWJsZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogbmFtZTI7IC8qIGEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTI7CisgICAgeG1sQ2hhciAqIG5hbWUzOyAvKiBhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTM7CisgICAgeG1sSGFzaERlYWxsb2NhdG9yIGY7IC8qIHRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVtb3ZlZCBpdGVtIChpZiBhbnkpICovCisgICAgaW50IG5fZjsKKworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxIYXNoVGFibGVQdHI7bl90YWJsZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9uYW1lMiA9IDA7bl9uYW1lMiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUyKyspIHsKKyAgICBmb3IgKG5fbmFtZTMgPSAwO25fbmFtZTMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lMysrKSB7CisgICAgZm9yIChuX2YgPSAwO25fZiA8IGdlbl9uYl94bWxIYXNoRGVhbGxvY2F0b3I7bl9mKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdGFibGUgPSBnZW5feG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIG5hbWUyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIDIpOworICAgICAgICBuYW1lMyA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUzLCAzKTsKKyAgICAgICAgZiA9IGdlbl94bWxIYXNoRGVhbGxvY2F0b3Iobl9mLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sSGFzaFJlbW92ZUVudHJ5Myh0YWJsZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUzLCBmKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIHRhYmxlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIChjb25zdCB4bWxDaGFyICopbmFtZTIsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMywgKGNvbnN0IHhtbENoYXIgKiluYW1lMywgMyk7CisgICAgICAgIGRlc194bWxIYXNoRGVhbGxvY2F0b3Iobl9mLCBmLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEhhc2hSZW1vdmVFbnRyeTMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFibGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaFNjYW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hTY2FuMyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSGFzaFNjYW5GdWxsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNoU2NhbkZ1bGwzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNoU2l6ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgdGFibGU7IC8qIHRoZSBoYXNoIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisKKyAgICBmb3IgKG5fdGFibGUgPSAwO25fdGFibGUgPCBnZW5fbmJfeG1sSGFzaFRhYmxlUHRyO25fdGFibGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0YWJsZSA9IGdlbl94bWxIYXNoVGFibGVQdHIobl90YWJsZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEhhc2hTaXplKHRhYmxlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIHRhYmxlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEhhc2hTaXplIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hVcGRhdGVFbnRyeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxIYXNoVGFibGVQdHIgdGFibGU7IC8qIHRoZSBoYXNoIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX25hbWU7CisgICAgdm9pZCAqIHVzZXJkYXRhOyAvKiBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fdXNlcmRhdGE7CisgICAgeG1sSGFzaERlYWxsb2NhdG9yIGY7IC8qIHRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVwbGFjZWQgaXRlbSAoaWYgYW55KSAqLworICAgIGludCBuX2Y7CisKKyAgICBmb3IgKG5fdGFibGUgPSAwO25fdGFibGUgPCBnZW5fbmJfeG1sSGFzaFRhYmxlUHRyO25fdGFibGUrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fdXNlcmRhdGEgPSAwO25fdXNlcmRhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl91c2VyZGF0YSsrKSB7CisgICAgZm9yIChuX2YgPSAwO25fZiA8IGdlbl9uYl94bWxIYXNoRGVhbGxvY2F0b3I7bl9mKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdGFibGUgPSBnZW5feG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHVzZXJkYXRhID0gZ2VuX3VzZXJkYXRhKG5fdXNlcmRhdGEsIDIpOworICAgICAgICBmID0gZ2VuX3htbEhhc2hEZWFsbG9jYXRvcihuX2YsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNoVXBkYXRlRW50cnkodGFibGUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgdXNlcmRhdGEsIGYpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxIYXNoVGFibGVQdHIobl90YWJsZSwgdGFibGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfdXNlcmRhdGEobl91c2VyZGF0YSwgdXNlcmRhdGEsIDIpOworICAgICAgICBkZXNfeG1sSGFzaERlYWxsb2NhdG9yKG5fZiwgZiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNoVXBkYXRlRW50cnkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFibGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3VzZXJkYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc2hVcGRhdGVFbnRyeTIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sSGFzaFRhYmxlUHRyIHRhYmxlOyAvKiB0aGUgaGFzaCB0YWJsZSAqLworICAgIGludCBuX3RhYmxlOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuYW1lMjsgLyogYSBzZWNvbmQgbmFtZSBvZiB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl9uYW1lMjsKKyAgICB2b2lkICogdXNlcmRhdGE7IC8qIGEgcG9pbnRlciB0byB0aGUgdXNlcmRhdGEgKi8KKyAgICBpbnQgbl91c2VyZGF0YTsKKyAgICB4bWxIYXNoRGVhbGxvY2F0b3IgZjsgLyogdGhlIGRlYWxsb2NhdG9yIGZ1bmN0aW9uIGZvciByZXBsYWNlZCBpdGVtIChpZiBhbnkpICovCisgICAgaW50IG5fZjsKKworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxIYXNoVGFibGVQdHI7bl90YWJsZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9uYW1lMiA9IDA7bl9uYW1lMiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUyKyspIHsKKyAgICBmb3IgKG5fdXNlcmRhdGEgPSAwO25fdXNlcmRhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl91c2VyZGF0YSsrKSB7CisgICAgZm9yIChuX2YgPSAwO25fZiA8IGdlbl9uYl94bWxIYXNoRGVhbGxvY2F0b3I7bl9mKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdGFibGUgPSBnZW5feG1sSGFzaFRhYmxlUHRyKG5fdGFibGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIG5hbWUyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTIsIDIpOworICAgICAgICB1c2VyZGF0YSA9IGdlbl91c2VyZGF0YShuX3VzZXJkYXRhLCAzKTsKKyAgICAgICAgZiA9IGdlbl94bWxIYXNoRGVhbGxvY2F0b3Iobl9mLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sSGFzaFVwZGF0ZUVudHJ5Mih0YWJsZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCB1c2VyZGF0YSwgZik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCAyKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fdXNlcmRhdGEsIHVzZXJkYXRhLCAzKTsKKyAgICAgICAgZGVzX3htbEhhc2hEZWFsbG9jYXRvcihuX2YsIGYsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSGFzaFVwZGF0ZUVudHJ5MiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90YWJsZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZTIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3VzZXJkYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNoVXBkYXRlRW50cnkzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEhhc2hUYWJsZVB0ciB0YWJsZTsgLyogdGhlIGhhc2ggdGFibGUgKi8KKyAgICBpbnQgbl90YWJsZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogbmFtZTI7IC8qIGEgc2Vjb25kIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTI7CisgICAgeG1sQ2hhciAqIG5hbWUzOyAvKiBhIHRoaXJkIG5hbWUgb2YgdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fbmFtZTM7CisgICAgdm9pZCAqIHVzZXJkYXRhOyAvKiBhIHBvaW50ZXIgdG8gdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fdXNlcmRhdGE7CisgICAgeG1sSGFzaERlYWxsb2NhdG9yIGY7IC8qIHRoZSBkZWFsbG9jYXRvciBmdW5jdGlvbiBmb3IgcmVwbGFjZWQgaXRlbSAoaWYgYW55KSAqLworICAgIGludCBuX2Y7CisKKyAgICBmb3IgKG5fdGFibGUgPSAwO25fdGFibGUgPCBnZW5fbmJfeG1sSGFzaFRhYmxlUHRyO25fdGFibGUrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbmFtZTIgPSAwO25fbmFtZTIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lMisrKSB7CisgICAgZm9yIChuX25hbWUzID0gMDtuX25hbWUzIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZTMrKykgeworICAgIGZvciAobl91c2VyZGF0YSA9IDA7bl91c2VyZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX3VzZXJkYXRhKyspIHsKKyAgICBmb3IgKG5fZiA9IDA7bl9mIDwgZ2VuX25iX3htbEhhc2hEZWFsbG9jYXRvcjtuX2YrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0YWJsZSA9IGdlbl94bWxIYXNoVGFibGVQdHIobl90YWJsZSwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgbmFtZTIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lMiwgMik7CisgICAgICAgIG5hbWUzID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTMsIDMpOworICAgICAgICB1c2VyZGF0YSA9IGdlbl91c2VyZGF0YShuX3VzZXJkYXRhLCA0KTsKKyAgICAgICAgZiA9IGdlbl94bWxIYXNoRGVhbGxvY2F0b3Iobl9mLCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sSGFzaFVwZGF0ZUVudHJ5Myh0YWJsZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUzLCB1c2VyZGF0YSwgZik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEhhc2hUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUyLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZTMsIChjb25zdCB4bWxDaGFyICopbmFtZTMsIDMpOworICAgICAgICBkZXNfdXNlcmRhdGEobl91c2VyZGF0YSwgdXNlcmRhdGEsIDQpOworICAgICAgICBkZXNfeG1sSGFzaERlYWxsb2NhdG9yKG5fZiwgZiwgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNoVXBkYXRlRW50cnkzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lMik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZTMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3VzZXJkYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X2hhc2godm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIGhhc2ggOiAxNiBvZiAyNCBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hBZGRFbnRyeSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzaEFkZEVudHJ5MigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzaEFkZEVudHJ5MygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzaENvcHkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hDcmVhdGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hDcmVhdGVEaWN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoTG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoTG9va3VwMigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzaExvb2t1cDMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hRTG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoUUxvb2t1cDIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hRTG9va3VwMygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzaFJlbW92ZUVudHJ5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoUmVtb3ZlRW50cnkyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoUmVtb3ZlRW50cnkzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoU2NhbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzaFNjYW4zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoU2NhbkZ1bGwoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hTY2FuRnVsbDMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hTaXplKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxIYXNoVXBkYXRlRW50cnkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hVcGRhdGVFbnRyeTIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc2hVcGRhdGVFbnRyeTMoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIGhhc2g6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKyNkZWZpbmUgZ2VuX25iX3htbExpbmtQdHIgMQorc3RhdGljIHhtbExpbmtQdHIgZ2VuX3htbExpbmtQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbExpbmtQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbExpbmtQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlua0dldERhdGEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgeG1sTGlua1B0ciBsazsgLyogYSBsaW5rICovCisgICAgaW50IG5fbGs7CisKKyAgICBmb3IgKG5fbGsgPSAwO25fbGsgPCBnZW5fbmJfeG1sTGlua1B0cjtuX2xrKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbGsgPSBnZW5feG1sTGlua1B0cihuX2xrLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTGlua0dldERhdGEobGspOworICAgICAgICBkZXNyZXRfdm9pZF9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExpbmtQdHIobl9saywgbGssIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTGlua0dldERhdGEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGspOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdEFwcGVuZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxMaXN0UHRyIGw7IC8qIGEgbGlzdCAqLworICAgIGludCBuX2w7CisgICAgdm9pZCAqIGRhdGE7IC8qIHRoZSBkYXRhICovCisgICAgaW50IG5fZGF0YTsKKworICAgIGZvciAobl9sID0gMDtuX2wgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wrKykgeworICAgIGZvciAobl9kYXRhID0gMDtuX2RhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl9kYXRhKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbCA9IGdlbl94bWxMaXN0UHRyKG5fbCwgMCk7CisgICAgICAgIGRhdGEgPSBnZW5fdXNlcmRhdGEobl9kYXRhLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTGlzdEFwcGVuZChsLCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTGlzdFB0cihuX2wsIGwsIDApOworICAgICAgICBkZXNfdXNlcmRhdGEobl9kYXRhLCBkYXRhLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RBcHBlbmQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdENsZWFyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbExpc3RQdHIgbDsgLyogYSBsaXN0ICovCisgICAgaW50IG5fbDsKKworICAgIGZvciAobl9sID0gMDtuX2wgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsID0gZ2VuX3htbExpc3RQdHIobl9sLCAwKTsKKworICAgICAgICB4bWxMaXN0Q2xlYXIobCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExpc3RQdHIobl9sLCBsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RDbGVhciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl9jb25zdF94bWxMaXN0UHRyIDEKK3N0YXRpYyB4bWxMaXN0UHRyIGdlbl9jb25zdF94bWxMaXN0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19jb25zdF94bWxMaXN0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxMaXN0UHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RDb3B5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbExpc3RQdHIgY3VyOyAvKiB0aGUgbmV3IGxpc3QgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sTGlzdFB0ciBvbGQ7IC8qIHRoZSBvbGQgbGlzdCAqLworICAgIGludCBuX29sZDsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbExpc3RQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9vbGQgPSAwO25fb2xkIDwgZ2VuX25iX2NvbnN0X3htbExpc3RQdHI7bl9vbGQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5feG1sTGlzdFB0cihuX2N1ciwgMCk7CisgICAgICAgIG9sZCA9IGdlbl9jb25zdF94bWxMaXN0UHRyKG5fb2xkLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTGlzdENvcHkoY3VyLCAoY29uc3QgeG1sTGlzdFB0cilvbGQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxMaXN0UHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sTGlzdFB0cihuX29sZCwgKGNvbnN0IHhtbExpc3RQdHIpb2xkLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RDb3B5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb2xkKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMaXN0Q3JlYXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMaXN0RHVwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMaXN0RW1wdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTGlzdFB0ciBsOyAvKiBhIGxpc3QgKi8KKyAgICBpbnQgbl9sOworCisgICAgZm9yIChuX2wgPSAwO25fbCA8IGdlbl9uYl94bWxMaXN0UHRyO25fbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGwgPSBnZW5feG1sTGlzdFB0cihuX2wsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxMaXN0RW1wdHkobCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExpc3RQdHIobl9sLCBsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RFbXB0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RFbmQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RGcm9udCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdEluc2VydCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxMaXN0UHRyIGw7IC8qIGEgbGlzdCAqLworICAgIGludCBuX2w7CisgICAgdm9pZCAqIGRhdGE7IC8qIHRoZSBkYXRhICovCisgICAgaW50IG5fZGF0YTsKKworICAgIGZvciAobl9sID0gMDtuX2wgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wrKykgeworICAgIGZvciAobl9kYXRhID0gMDtuX2RhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl9kYXRhKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbCA9IGdlbl94bWxMaXN0UHRyKG5fbCwgMCk7CisgICAgICAgIGRhdGEgPSBnZW5fdXNlcmRhdGEobl9kYXRhLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTGlzdEluc2VydChsLCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTGlzdFB0cihuX2wsIGwsIDApOworICAgICAgICBkZXNfdXNlcmRhdGEobl9kYXRhLCBkYXRhLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RJbnNlcnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdE1lcmdlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbExpc3RQdHIgbDE7IC8qIHRoZSBvcmlnaW5hbCBsaXN0ICovCisgICAgaW50IG5fbDE7CisgICAgeG1sTGlzdFB0ciBsMjsgLyogdGhlIG5ldyBsaXN0ICovCisgICAgaW50IG5fbDI7CisKKyAgICBmb3IgKG5fbDEgPSAwO25fbDEgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wxKyspIHsKKyAgICBmb3IgKG5fbDIgPSAwO25fbDIgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbDEgPSBnZW5feG1sTGlzdFB0cihuX2wxLCAwKTsKKyAgICAgICAgbDIgPSBnZW5feG1sTGlzdFB0cihuX2wyLCAxKTsKKworICAgICAgICB4bWxMaXN0TWVyZ2UobDEsIGwyKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTGlzdFB0cihuX2wxLCBsMSwgMCk7CisgICAgICAgIGRlc194bWxMaXN0UHRyKG5fbDIsIGwyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RNZXJnZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sMSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbDIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RQb3BCYWNrKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbExpc3RQdHIgbDsgLyogYSBsaXN0ICovCisgICAgaW50IG5fbDsKKworICAgIGZvciAobl9sID0gMDtuX2wgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsID0gZ2VuX3htbExpc3RQdHIobl9sLCAwKTsKKworICAgICAgICB4bWxMaXN0UG9wQmFjayhsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTGlzdFB0cihuX2wsIGwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTGlzdFBvcEJhY2siLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMaXN0UG9wRnJvbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTGlzdFB0ciBsOyAvKiBhIGxpc3QgKi8KKyAgICBpbnQgbl9sOworCisgICAgZm9yIChuX2wgPSAwO25fbCA8IGdlbl9uYl94bWxMaXN0UHRyO25fbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGwgPSBnZW5feG1sTGlzdFB0cihuX2wsIDApOworCisgICAgICAgIHhtbExpc3RQb3BGcm9udChsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTGlzdFB0cihuX2wsIGwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTGlzdFBvcEZyb250IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2wpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdFB1c2hCYWNrKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbExpc3RQdHIgbDsgLyogYSBsaXN0ICovCisgICAgaW50IG5fbDsKKyAgICB2b2lkICogZGF0YTsgLyogbmV3IGRhdGEgKi8KKyAgICBpbnQgbl9kYXRhOworCisgICAgZm9yIChuX2wgPSAwO25fbCA8IGdlbl9uYl94bWxMaXN0UHRyO25fbCsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsID0gZ2VuX3htbExpc3RQdHIobl9sLCAwKTsKKyAgICAgICAgZGF0YSA9IGdlbl91c2VyZGF0YShuX2RhdGEsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxMaXN0UHVzaEJhY2sobCwgZGF0YSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExpc3RQdHIobl9sLCBsLCAwKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fZGF0YSwgZGF0YSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxMaXN0UHVzaEJhY2siLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdFB1c2hGcm9udCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxMaXN0UHRyIGw7IC8qIGEgbGlzdCAqLworICAgIGludCBuX2w7CisgICAgdm9pZCAqIGRhdGE7IC8qIG5ldyBkYXRhICovCisgICAgaW50IG5fZGF0YTsKKworICAgIGZvciAobl9sID0gMDtuX2wgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wrKykgeworICAgIGZvciAobl9kYXRhID0gMDtuX2RhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl9kYXRhKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbCA9IGdlbl94bWxMaXN0UHRyKG5fbCwgMCk7CisgICAgICAgIGRhdGEgPSBnZW5fdXNlcmRhdGEobl9kYXRhLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTGlzdFB1c2hGcm9udChsLCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTGlzdFB0cihuX2wsIGwsIDApOworICAgICAgICBkZXNfdXNlcmRhdGEobl9kYXRhLCBkYXRhLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RQdXNoRnJvbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdFJlbW92ZUFsbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxMaXN0UHRyIGw7IC8qIGEgbGlzdCAqLworICAgIGludCBuX2w7CisgICAgdm9pZCAqIGRhdGE7IC8qIGxpc3QgZGF0YSAqLworICAgIGludCBuX2RhdGE7CisKKyAgICBmb3IgKG5fbCA9IDA7bl9sIDwgZ2VuX25iX3htbExpc3RQdHI7bl9sKyspIHsKKyAgICBmb3IgKG5fZGF0YSA9IDA7bl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGwgPSBnZW5feG1sTGlzdFB0cihuX2wsIDApOworICAgICAgICBkYXRhID0gZ2VuX3VzZXJkYXRhKG5fZGF0YSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbExpc3RSZW1vdmVBbGwobCwgZGF0YSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExpc3RQdHIobl9sLCBsLCAwKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fZGF0YSwgZGF0YSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxMaXN0UmVtb3ZlQWxsIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2wpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RSZW1vdmVGaXJzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxMaXN0UHRyIGw7IC8qIGEgbGlzdCAqLworICAgIGludCBuX2w7CisgICAgdm9pZCAqIGRhdGE7IC8qIGxpc3QgZGF0YSAqLworICAgIGludCBuX2RhdGE7CisKKyAgICBmb3IgKG5fbCA9IDA7bl9sIDwgZ2VuX25iX3htbExpc3RQdHI7bl9sKyspIHsKKyAgICBmb3IgKG5fZGF0YSA9IDA7bl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGwgPSBnZW5feG1sTGlzdFB0cihuX2wsIDApOworICAgICAgICBkYXRhID0gZ2VuX3VzZXJkYXRhKG5fZGF0YSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbExpc3RSZW1vdmVGaXJzdChsLCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTGlzdFB0cihuX2wsIGwsIDApOworICAgICAgICBkZXNfdXNlcmRhdGEobl9kYXRhLCBkYXRhLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RSZW1vdmVGaXJzdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMaXN0UmVtb3ZlTGFzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxMaXN0UHRyIGw7IC8qIGEgbGlzdCAqLworICAgIGludCBuX2w7CisgICAgdm9pZCAqIGRhdGE7IC8qIGxpc3QgZGF0YSAqLworICAgIGludCBuX2RhdGE7CisKKyAgICBmb3IgKG5fbCA9IDA7bl9sIDwgZ2VuX25iX3htbExpc3RQdHI7bl9sKyspIHsKKyAgICBmb3IgKG5fZGF0YSA9IDA7bl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGwgPSBnZW5feG1sTGlzdFB0cihuX2wsIDApOworICAgICAgICBkYXRhID0gZ2VuX3VzZXJkYXRhKG5fZGF0YSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbExpc3RSZW1vdmVMYXN0KGwsIGRhdGEpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxMaXN0UHRyKG5fbCwgbCwgMCk7CisgICAgICAgIGRlc191c2VyZGF0YShuX2RhdGEsIGRhdGEsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTGlzdFJlbW92ZUxhc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdFJldmVyc2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTGlzdFB0ciBsOyAvKiBhIGxpc3QgKi8KKyAgICBpbnQgbl9sOworCisgICAgZm9yIChuX2wgPSAwO25fbCA8IGdlbl9uYl94bWxMaXN0UHRyO25fbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGwgPSBnZW5feG1sTGlzdFB0cihuX2wsIDApOworCisgICAgICAgIHhtbExpc3RSZXZlcnNlKGwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxMaXN0UHRyKG5fbCwgbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxMaXN0UmV2ZXJzZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RSZXZlcnNlU2VhcmNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiByZXRfdmFsOworICAgIHhtbExpc3RQdHIgbDsgLyogYSBsaXN0ICovCisgICAgaW50IG5fbDsKKyAgICB2b2lkICogZGF0YTsgLyogYSBzZWFyY2ggdmFsdWUgKi8KKyAgICBpbnQgbl9kYXRhOworCisgICAgZm9yIChuX2wgPSAwO25fbCA8IGdlbl9uYl94bWxMaXN0UHRyO25fbCsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsID0gZ2VuX3htbExpc3RQdHIobl9sLCAwKTsKKyAgICAgICAgZGF0YSA9IGdlbl91c2VyZGF0YShuX2RhdGEsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxMaXN0UmV2ZXJzZVNlYXJjaChsLCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X3ZvaWRfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxMaXN0UHRyKG5fbCwgbCwgMCk7CisgICAgICAgIGRlc191c2VyZGF0YShuX2RhdGEsIGRhdGEsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTGlzdFJldmVyc2VTZWFyY2giLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdFJldmVyc2VXYWxrKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMaXN0U2VhcmNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiByZXRfdmFsOworICAgIHhtbExpc3RQdHIgbDsgLyogYSBsaXN0ICovCisgICAgaW50IG5fbDsKKyAgICB2b2lkICogZGF0YTsgLyogYSBzZWFyY2ggdmFsdWUgKi8KKyAgICBpbnQgbl9kYXRhOworCisgICAgZm9yIChuX2wgPSAwO25fbCA8IGdlbl9uYl94bWxMaXN0UHRyO25fbCsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsID0gZ2VuX3htbExpc3RQdHIobl9sLCAwKTsKKyAgICAgICAgZGF0YSA9IGdlbl91c2VyZGF0YShuX2RhdGEsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxMaXN0U2VhcmNoKGwsIGRhdGEpOworICAgICAgICBkZXNyZXRfdm9pZF9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExpc3RQdHIobl9sLCBsLCAwKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fZGF0YSwgZGF0YSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxMaXN0U2VhcmNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2wpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RTaXplKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbExpc3RQdHIgbDsgLyogYSBsaXN0ICovCisgICAgaW50IG5fbDsKKworICAgIGZvciAobl9sID0gMDtuX2wgPCBnZW5fbmJfeG1sTGlzdFB0cjtuX2wrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsID0gZ2VuX3htbExpc3RQdHIobl9sLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTGlzdFNpemUobCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExpc3RQdHIobl9sLCBsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbExpc3RTaXplIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2wpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGlzdFNvcnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTGlzdFB0ciBsOyAvKiBhIGxpc3QgKi8KKyAgICBpbnQgbl9sOworCisgICAgZm9yIChuX2wgPSAwO25fbCA8IGdlbl9uYl94bWxMaXN0UHRyO25fbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGwgPSBnZW5feG1sTGlzdFB0cihuX2wsIDApOworCisgICAgICAgIHhtbExpc3RTb3J0KGwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxMaXN0UHRyKG5fbCwgbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxMaXN0U29ydCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbExpc3RXYWxrKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfbGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgbGlzdCA6IDE5IG9mIDI2IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlua0dldERhdGEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RBcHBlbmQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RDbGVhcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdENvcHkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RDcmVhdGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3REdXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RFbXB0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdEVuZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdEZyb250KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMaXN0SW5zZXJ0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMaXN0TWVyZ2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RQb3BCYWNrKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMaXN0UG9wRnJvbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RQdXNoQmFjaygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdFB1c2hGcm9udCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdFJlbW92ZUFsbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdFJlbW92ZUZpcnN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMaXN0UmVtb3ZlTGFzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdFJldmVyc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RSZXZlcnNlU2VhcmNoKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMaXN0UmV2ZXJzZVdhbGsoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RTZWFyY2goKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpc3RTaXplKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxMaXN0U29ydCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTGlzdFdhbGsoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIGxpc3Q6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUENoZWNrUmVzcG9uc2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogYW4gRlRQIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl94bWxOYW5vRlRQQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl94bWxOYW5vRlRQQ3R4dFB0cihuX2N0eCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5hbm9GVFBDaGVja1Jlc3BvbnNlKGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5hbm9GVFBDdHh0UHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmFub0ZUUENoZWNrUmVzcG9uc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUENsZWFudXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICB4bWxOYW5vRlRQQ2xlYW51cCgpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vRlRQQ2xlYW51cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIGFuIEZUUCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sTmFub0ZUUEN0eHRQdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5feG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uKGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5hbm9GVFBDdHh0UHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vRlRQQ3dkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIGFuIEZUUCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworICAgIGNoYXIgKiBkaXJlY3Rvcnk7IC8qIGEgZGlyZWN0b3J5IG9uIHRoZSBzZXJ2ZXIgKi8KKyAgICBpbnQgbl9kaXJlY3Rvcnk7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl94bWxOYW5vRlRQQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgZm9yIChuX2RpcmVjdG9yeSA9IDA7bl9kaXJlY3RvcnkgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9kaXJlY3RvcnkrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5feG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIDApOworICAgICAgICBkaXJlY3RvcnkgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9kaXJlY3RvcnksIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vRlRQQ3dkKGN0eCwgKGNvbnN0IGNoYXIgKilkaXJlY3RvcnkpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vRlRQQ3R4dFB0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZGlyZWN0b3J5LCAoY29uc3QgY2hhciAqKWRpcmVjdG9yeSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vRlRQQ3dkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9GVFBEZWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIGFuIEZUUCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworICAgIGNvbnN0IGNoYXIgKiBmaWxlOyAvKiBhIGZpbGUgb3IgZGlyZWN0b3J5IG9uIHRoZSBzZXJ2ZXIgKi8KKyAgICBpbnQgbl9maWxlOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sTmFub0ZUUEN0eHRQdHI7bl9jdHgrKykgeworICAgIGZvciAobl9maWxlID0gMDtuX2ZpbGUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3htbE5hbm9GVFBDdHh0UHRyKG5fY3R4LCAwKTsKKyAgICAgICAgZmlsZSA9IGdlbl9maWxlcGF0aChuX2ZpbGUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vRlRQRGVsZShjdHgsIGZpbGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vRlRQQ3R4dFB0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZSwgZmlsZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vRlRQRGVsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUEdldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUEdldENvbm5lY3Rpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogYW4gRlRQIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl94bWxOYW5vRlRQQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl94bWxOYW5vRlRQQ3R4dFB0cihuX2N0eCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5hbm9GVFBHZXRDb25uZWN0aW9uKGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5hbm9GVFBDdHh0UHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmFub0ZUUEdldENvbm5lY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUEdldFJlc3BvbnNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIGFuIEZUUCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sTmFub0ZUUEN0eHRQdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5feG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vRlRQR2V0UmVzcG9uc2UoY3R4KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vRlRQR2V0UmVzcG9uc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUEdldFNvY2tldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB2b2lkICogY3R4OyAvKiBhbiBGVFAgY29udGV4dCAqLworICAgIGludCBuX2N0eDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlIHRvIHJldHJpZXZlIChvciBOVUxMIGlmIHBhdGggaXMgaW4gY29udGV4dCkuICovCisgICAgaW50IG5fZmlsZW5hbWU7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl94bWxOYW5vRlRQQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5feG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIDApOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlcGF0aChuX2ZpbGVuYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmFub0ZUUEdldFNvY2tldChjdHgsIGZpbGVuYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vRlRQR2V0U29ja2V0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUEluaXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICB4bWxOYW5vRlRQSW5pdCgpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vRlRQSW5pdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vRlRQTGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0ZUUE5ld0N0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogVGhlIFVSTCB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGNvbnRleHQgKi8KKyAgICBpbnQgbl9VUkw7CisKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5hbm9GVFBOZXdDdHh0KFVSTCk7CisgICAgICAgIGRlc3JldF94bWxOYW5vRlRQQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vRlRQTmV3Q3R4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vRlRQT3Blbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogVVJMOyAvKiB0aGUgVVJMIHRvIHRoZSByZXNvdXJjZSAqLworICAgIGludCBuX1VSTDsKKworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2ZpbGVwYXRoO25fVVJMKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgVVJMID0gZ2VuX2ZpbGVwYXRoKG5fVVJMLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmFub0ZUUE9wZW4oVVJMKTsKKyAgICAgICAgZGVzcmV0X3htbE5hbm9GVFBDdHh0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5hbm9GVFBPcGVuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9GVFBQcm94eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0ZUUF9FTkFCTEVEKQorICAgIGNoYXIgKiBob3N0OyAvKiB0aGUgcHJveHkgaG9zdCBuYW1lICovCisgICAgaW50IG5faG9zdDsKKyAgICBpbnQgcG9ydDsgLyogdGhlIHByb3h5IHBvcnQgKi8KKyAgICBpbnQgbl9wb3J0OworICAgIGNoYXIgKiB1c2VyOyAvKiB0aGUgcHJveHkgdXNlciBuYW1lICovCisgICAgaW50IG5fdXNlcjsKKyAgICBjaGFyICogcGFzc3dkOyAvKiB0aGUgcHJveHkgcGFzc3dvcmQgKi8KKyAgICBpbnQgbl9wYXNzd2Q7CisgICAgaW50IHR5cGU7IC8qIHRoZSB0eXBlIG9mIHByb3h5IDEgZm9yIHVzaW5nIFNJVEUsIDIgZm9yIFVTRVIgYUBiICovCisgICAgaW50IG5fdHlwZTsKKworICAgIGZvciAobl9ob3N0ID0gMDtuX2hvc3QgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9ob3N0KyspIHsKKyAgICBmb3IgKG5fcG9ydCA9IDA7bl9wb3J0IDwgZ2VuX25iX2ludDtuX3BvcnQrKykgeworICAgIGZvciAobl91c2VyID0gMDtuX3VzZXIgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl91c2VyKyspIHsKKyAgICBmb3IgKG5fcGFzc3dkID0gMDtuX3Bhc3N3ZCA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX3Bhc3N3ZCsrKSB7CisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl9pbnQ7bl90eXBlKyspIHsKKyAgICAgICAgaG9zdCA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2hvc3QsIDApOworICAgICAgICBwb3J0ID0gZ2VuX2ludChuX3BvcnQsIDEpOworICAgICAgICB1c2VyID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fdXNlciwgMik7CisgICAgICAgIHBhc3N3ZCA9IGdlbl9jb25zdF9jaGFyX3B0cihuX3Bhc3N3ZCwgMyk7CisgICAgICAgIHR5cGUgPSBnZW5faW50KG5fdHlwZSwgNCk7CisKKyAgICAgICAgeG1sTmFub0ZUUFByb3h5KChjb25zdCBjaGFyICopaG9zdCwgcG9ydCwgKGNvbnN0IGNoYXIgKil1c2VyLCAoY29uc3QgY2hhciAqKXBhc3N3ZCwgdHlwZSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5faG9zdCwgKGNvbnN0IGNoYXIgKilob3N0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX3BvcnQsIHBvcnQsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl91c2VyLCAoY29uc3QgY2hhciAqKXVzZXIsIDIpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9wYXNzd2QsIChjb25zdCBjaGFyICopcGFzc3dkLCAzKTsKKyAgICAgICAgZGVzX2ludChuX3R5cGUsIHR5cGUsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9GVFBRdWl0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIGFuIEZUUCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sTmFub0ZUUEN0eHRQdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5feG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vRlRQUXVpdChjdHgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vRlRQQ3R4dFB0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5hbm9GVFBRdWl0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9GVFBSZWFkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSBGVFAgY29udGV4dCAqLworICAgIGludCBuX2N0eDsKKyAgICB2b2lkICogZGVzdDsgLyogYSBidWZmZXIgKi8KKyAgICBpbnQgbl9kZXN0OworICAgIGludCBsZW47IC8qIHRoZSBidWZmZXIgbGVuZ3RoICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sTmFub0ZUUEN0eHRQdHI7bl9jdHgrKykgeworICAgIGZvciAobl9kZXN0ID0gMDtuX2Rlc3QgPCBnZW5fbmJfdm9pZF9wdHI7bl9kZXN0KyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5feG1sTmFub0ZUUEN0eHRQdHIobl9jdHgsIDApOworICAgICAgICBkZXN0ID0gZ2VuX3ZvaWRfcHRyKG5fZGVzdCwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vRlRQUmVhZChjdHgsIGRlc3QsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5hbm9GVFBDdHh0UHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICBkZXNfdm9pZF9wdHIobl9kZXN0LCBkZXN0LCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5hbm9GVFBSZWFkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGVzdCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vRlRQU2NhblByb3h5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogVGhlIHByb3h5IFVSTCB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHByb3h5IGNvbnRleHQgKi8KKyAgICBpbnQgbl9VUkw7CisKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMCk7CisKKyAgICAgICAgeG1sTmFub0ZUUFNjYW5Qcm94eShVUkwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9GVFBVcGRhdGVVUkwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9GVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogYW4gRlRQIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogVGhlIFVSTCB1c2VkIHRvIHVwZGF0ZSB0aGUgY29udGV4dCAqLworICAgIGludCBuX1VSTDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3htbE5hbm9GVFBDdHh0UHRyO25fY3R4KyspIHsKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl94bWxOYW5vRlRQQ3R4dFB0cihuX2N0eCwgMCk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5hbm9GVFBVcGRhdGVVUkwoY3R4LCBVUkwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vRlRQQ3R4dFB0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fVVJMLCBVUkwsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmFub0ZUUFVwZGF0ZVVSTCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfbmFub2Z0cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgbmFub2Z0cCA6IDE2IG9mIDIyIGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0ZUUENoZWNrUmVzcG9uc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9GVFBDbGVhbnVwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vRlRQQ2xvc2VDb25uZWN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vRlRQQ3dkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vRlRQRGVsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0ZUUEdldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0ZUUEdldENvbm5lY3Rpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9GVFBHZXRSZXNwb25zZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0ZUUEdldFNvY2tldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0ZUUEluaXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9GVFBMaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vRlRQTmV3Q3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0ZUUE9wZW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9GVFBQcm94eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0ZUUFF1aXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9GVFBSZWFkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vRlRQU2NhblByb3h5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vRlRQVXBkYXRlVVJMKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBuYW5vZnRwOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9IVFRQQXV0aEhlYWRlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgY2hhciAqIHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIEhUVFAgY29udGV4dCAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3htbE5hbm9IVFRQQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl94bWxOYW5vSFRUUEN0eHRQdHIobl9jdHgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vSFRUUEF1dGhIZWFkZXIoY3R4KTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X2NoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vSFRUUEN0eHRQdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vSFRUUEF1dGhIZWFkZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0hUVFBDbGVhbnVwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHhtbE5hbm9IVFRQQ2xlYW51cCgpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vSFRUUENsZWFudXAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0hUVFBDb250ZW50TGVuZ3RoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgSFRUUCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sTmFub0hUVFBDdHh0UHRyO25fY3R4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3htbE5hbm9IVFRQQ3R4dFB0cihuX2N0eCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5hbm9IVFRQQ29udGVudExlbmd0aChjdHgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vSFRUUEN0eHRQdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vSFRUUENvbnRlbnRMZW5ndGgiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmFub0hUVFBFbmNvZGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgY2hhciAqIHJldF92YWw7CisgICAgdm9pZCAqIGN0eDsgLyogdGhlIEhUVFAgY29udGV4dCAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3htbE5hbm9IVFRQQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl94bWxOYW5vSFRUUEN0eHRQdHIobl9jdHgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vSFRUUEVuY29kaW5nKGN0eCk7CisgICAgICAgIGRlc3JldF9jb25zdF9jaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTmFub0hUVFBDdHh0UHRyKG5fY3R4LCBjdHgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmFub0hUVFBFbmNvZGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfY2hhcl9wdHJfcHRyIDEKK3N0YXRpYyBjaGFyICoqIGdlbl9jaGFyX3B0cl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX2NoYXJfcHRyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKiB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUEZldGNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogVVJMOyAvKiBUaGUgVVJMIHRvIGxvYWQgKi8KKyAgICBpbnQgbl9VUkw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNhdmVkICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgY2hhciAqKiBjb250ZW50VHlwZTsgLyogaWYgYXZhaWxhYmxlIHRoZSBDb250ZW50LVR5cGUgaW5mb3JtYXRpb24gd2lsbCBiZSByZXR1cm5lZCBhdCB0aGF0IGxvY2F0aW9uICovCisgICAgaW50IG5fY29udGVudFR5cGU7CisKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlb3V0cHV0O25fVVJMKyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZW91dHB1dDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fY29udGVudFR5cGUgPSAwO25fY29udGVudFR5cGUgPCBnZW5fbmJfY2hhcl9wdHJfcHRyO25fY29udGVudFR5cGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkwgPSBnZW5fZmlsZW91dHB1dChuX1VSTCwgMCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgMSk7CisgICAgICAgIGNvbnRlbnRUeXBlID0gZ2VuX2NoYXJfcHRyX3B0cihuX2NvbnRlbnRUeXBlLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmFub0hUVFBGZXRjaChVUkwsIGZpbGVuYW1lLCBjb250ZW50VHlwZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVvdXRwdXQobl9VUkwsIFVSTCwgMCk7CisgICAgICAgIGRlc19maWxlb3V0cHV0KG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAxKTsKKyAgICAgICAgZGVzX2NoYXJfcHRyX3B0cihuX2NvbnRlbnRUeXBlLCBjb250ZW50VHlwZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vSFRUUEZldGNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnRUeXBlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUEluaXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgeG1sTmFub0hUVFBJbml0KCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5hbm9IVFRQSW5pdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUE1pbWVUeXBlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCBjaGFyICogcmV0X3ZhbDsKKyAgICB2b2lkICogY3R4OyAvKiB0aGUgSFRUUCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sTmFub0hUVFBDdHh0UHRyO25fY3R4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4ID0gZ2VuX3htbE5hbm9IVFRQQ3R4dFB0cihuX2N0eCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5hbm9IVFRQTWltZVR5cGUoY3R4KTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X2NoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vSFRUUEN0eHRQdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vSFRUUE1pbWVUeXBlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9IVFRQT3Blbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogVGhlIFVSTCB0byBsb2FkICovCisgICAgaW50IG5fVVJMOworICAgIGNoYXIgKiogY29udGVudFR5cGU7IC8qIGlmIGF2YWlsYWJsZSB0aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIHdpbGwgYmUgcmV0dXJuZWQgYXQgdGhhdCBsb2NhdGlvbiAqLworICAgIGludCBuX2NvbnRlbnRUeXBlOworCisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkwrKykgeworICAgIGZvciAobl9jb250ZW50VHlwZSA9IDA7bl9jb250ZW50VHlwZSA8IGdlbl9uYl9jaGFyX3B0cl9wdHI7bl9jb250ZW50VHlwZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMCk7CisgICAgICAgIGNvbnRlbnRUeXBlID0gZ2VuX2NoYXJfcHRyX3B0cihuX2NvbnRlbnRUeXBlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmFub0hUVFBPcGVuKFVSTCwgY29udGVudFR5cGUpOworICAgICAgICBkZXNyZXRfeG1sTmFub0hUVFBDdHh0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAwKTsKKyAgICAgICAgZGVzX2NoYXJfcHRyX3B0cihuX2NvbnRlbnRUeXBlLCBjb250ZW50VHlwZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOYW5vSFRUUE9wZW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJMKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50VHlwZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUE9wZW5SZWRpcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogVGhlIFVSTCB0byBsb2FkICovCisgICAgaW50IG5fVVJMOworICAgIGNoYXIgKiogY29udGVudFR5cGU7IC8qIGlmIGF2YWlsYWJsZSB0aGUgQ29udGVudC1UeXBlIGluZm9ybWF0aW9uIHdpbGwgYmUgcmV0dXJuZWQgYXQgdGhhdCBsb2NhdGlvbiAqLworICAgIGludCBuX2NvbnRlbnRUeXBlOworICAgIGNoYXIgKiogcmVkaXI7IC8qIGlmIGF2YWlsYWJsZSB0aGUgcmVkaXJlY3RlZCBVUkwgd2lsbCBiZSByZXR1cm5lZCAqLworICAgIGludCBuX3JlZGlyOworCisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkwrKykgeworICAgIGZvciAobl9jb250ZW50VHlwZSA9IDA7bl9jb250ZW50VHlwZSA8IGdlbl9uYl9jaGFyX3B0cl9wdHI7bl9jb250ZW50VHlwZSsrKSB7CisgICAgZm9yIChuX3JlZGlyID0gMDtuX3JlZGlyIDwgZ2VuX25iX2NoYXJfcHRyX3B0cjtuX3JlZGlyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgVVJMID0gZ2VuX2ZpbGVwYXRoKG5fVVJMLCAwKTsKKyAgICAgICAgY29udGVudFR5cGUgPSBnZW5fY2hhcl9wdHJfcHRyKG5fY29udGVudFR5cGUsIDEpOworICAgICAgICByZWRpciA9IGdlbl9jaGFyX3B0cl9wdHIobl9yZWRpciwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5hbm9IVFRQT3BlblJlZGlyKFVSTCwgY29udGVudFR5cGUsIHJlZGlyKTsKKyAgICAgICAgZGVzcmV0X3htbE5hbm9IVFRQQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMCk7CisgICAgICAgIGRlc19jaGFyX3B0cl9wdHIobl9jb250ZW50VHlwZSwgY29udGVudFR5cGUsIDEpOworICAgICAgICBkZXNfY2hhcl9wdHJfcHRyKG5fcmVkaXIsIHJlZGlyLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5hbm9IVFRQT3BlblJlZGlyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudFR5cGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlZGlyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUFJlYWQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSBIVFRQIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHg7CisgICAgdm9pZCAqIGRlc3Q7IC8qIGEgYnVmZmVyICovCisgICAgaW50IG5fZGVzdDsKKyAgICBpbnQgbGVuOyAvKiB0aGUgYnVmZmVyIGxlbmd0aCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3htbE5hbm9IVFRQQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgZm9yIChuX2Rlc3QgPSAwO25fZGVzdCA8IGdlbl9uYl92b2lkX3B0cjtuX2Rlc3QrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl94bWxOYW5vSFRUUEN0eHRQdHIobl9jdHgsIDApOworICAgICAgICBkZXN0ID0gZ2VuX3ZvaWRfcHRyKG5fZGVzdCwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOYW5vSFRUUFJlYWQoY3R4LCBkZXN0LCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOYW5vSFRUUEN0eHRQdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc192b2lkX3B0cihuX2Rlc3QsIGRlc3QsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmFub0hUVFBSZWFkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGVzdCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUFJlZGlyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUFJldHVybkNvZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjdHg7IC8qIHRoZSBIVFRQIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl94bWxOYW5vSFRUUEN0eHRQdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5feG1sTmFub0hUVFBDdHh0UHRyKG5fY3R4LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmFub0hUVFBSZXR1cm5Db2RlKGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5hbm9IVFRQQ3R4dFB0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5hbm9IVFRQUmV0dXJuQ29kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOYW5vSFRUUFNhdmUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB2b2lkICogY3R4dDsgLyogdGhlIEhUVFAgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNhdmVkICovCisgICAgaW50IG5fZmlsZW5hbWU7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3ZvaWRfcHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVvdXRwdXQ7bl9maWxlbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5fdm9pZF9wdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZW91dHB1dChuX2ZpbGVuYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmFub0hUVFBTYXZlKGN0eHQsIGZpbGVuYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgZmlsZW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmFub0hUVFBTYXZlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5hbm9IVFRQU2NhblByb3h5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGNvbnN0IGNoYXIgKiBVUkw7IC8qIFRoZSBwcm94eSBVUkwgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwcm94eSBjb250ZXh0ICovCisgICAgaW50IG5fVVJMOworCisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkwrKykgeworICAgICAgICBVUkwgPSBnZW5fZmlsZXBhdGgobl9VUkwsIDApOworCisgICAgICAgIHhtbE5hbm9IVFRQU2NhblByb3h5KFVSTCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fVVJMLCBVUkwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X25hbm9odHRwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyBuYW5vaHR0cCA6IDEzIG9mIDE3IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0hUVFBBdXRoSGVhZGVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vSFRUUENsZWFudXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9IVFRQQ29udGVudExlbmd0aCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0hUVFBFbmNvZGluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0hUVFBGZXRjaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0hUVFBJbml0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vSFRUUE1pbWVUeXBlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vSFRUUE9wZW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9IVFRQT3BlblJlZGlyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vSFRUUFJlYWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9IVFRQUmVkaXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5hbm9IVFRQUmV0dXJuQ29kZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmFub0hUVFBTYXZlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOYW5vSFRUUFNjYW5Qcm94eSgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgbmFub2h0dHA6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnl0ZUNvbnN1bWVkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGxvbmcgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ5dGVDb25zdW1lZChjdHh0KTsKKyAgICAgICAgZGVzcmV0X2xvbmcocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJ5dGVDb25zdW1lZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENsZWFyTm9kZUluZm9TZXEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgc2VxOyAvKiBhIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyICovCisgICAgaW50IG5fc2VxOworCisgICAgZm9yIChuX3NlcSA9IDA7bl9zZXEgPCBnZW5fbmJfeG1sUGFyc2VyTm9kZUluZm9TZXFQdHI7bl9zZXErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzZXEgPSBnZW5feG1sUGFyc2VyTm9kZUluZm9TZXFQdHIobl9zZXEsIDApOworCisgICAgICAgIHhtbENsZWFyTm9kZUluZm9TZXEoc2VxKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIobl9zZXEsIHNlcSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDbGVhck5vZGVJbmZvU2VxIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NlcSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDbGVhclBhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHhtbENsZWFyUGFyc2VyQ3R4dChjdHh0KTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2xlYXJQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ3JlYXRlRG9jUGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIGN1cjsgLyogYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENyZWF0ZURvY1BhcnNlckN0eHQoKGNvbnN0IHhtbENoYXIgKiljdXIpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIChjb25zdCB4bWxDaGFyICopY3VyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENyZWF0ZURvY1BhcnNlckN0eHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUFVTSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgeG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIGEgU0FYIGhhbmRsZXIgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgdm9pZCAqIHVzZXJfZGF0YTsgLyogVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzICovCisgICAgaW50IG5fdXNlcl9kYXRhOworICAgIGNoYXIgKiBjaHVuazsgLyogYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGNoYXJzICovCisgICAgaW50IG5fY2h1bms7CisgICAgaW50IHNpemU7IC8qIG51bWJlciBvZiBjaGFycyBpbiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgbl9zaXplOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogYW4gb3B0aW9uYWwgZmlsZSBuYW1lIG9yIFVSSSAqLworICAgIGludCBuX2ZpbGVuYW1lOworCisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfeG1sU0FYSGFuZGxlclB0cjtuX3NheCsrKSB7CisgICAgZm9yIChuX3VzZXJfZGF0YSA9IDA7bl91c2VyX2RhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl91c2VyX2RhdGErKykgeworICAgIGZvciAobl9jaHVuayA9IDA7bl9jaHVuayA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2NodW5rKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlb3V0cHV0O25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzYXggPSBnZW5feG1sU0FYSGFuZGxlclB0cihuX3NheCwgMCk7CisgICAgICAgIHVzZXJfZGF0YSA9IGdlbl91c2VyZGF0YShuX3VzZXJfZGF0YSwgMSk7CisgICAgICAgIGNodW5rID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fY2h1bmssIDIpOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDMpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlb3V0cHV0KG5fZmlsZW5hbWUsIDQpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dChzYXgsIHVzZXJfZGF0YSwgKGNvbnN0IGNoYXIgKiljaHVuaywgc2l6ZSwgZmlsZW5hbWUpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAwKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fdXNlcl9kYXRhLCB1c2VyX2RhdGEsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9jaHVuaywgKGNvbnN0IGNoYXIgKiljaHVuaywgMik7CisgICAgICAgIGRlc19pbnQobl9zaXplLCBzaXplLCAzKTsKKyAgICAgICAgZGVzX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgZmlsZW5hbWUsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2F4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl91c2VyX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NodW5rKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDdHh0UmVhZERvYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sQ2hhciAqIGN1cjsgLyogYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZyAqLworICAgIGludCBuX2N1cjsKKyAgICBjb25zdCBjaGFyICogVVJMOyAvKiB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9VUkw7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24gKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jdXIrKykgeworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2ZpbGVwYXRoO25fVVJMKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBjdXIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIDEpOworICAgICAgICBVUkwgPSBnZW5fZmlsZXBhdGgobl9VUkwsIDIpOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAzKTsKKyAgICAgICAgb3B0aW9ucyA9IGdlbl9wYXJzZXJvcHRpb25zKG5fb3B0aW9ucywgNCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEN0eHRSZWFkRG9jKGN0eHQsIChjb25zdCB4bWxDaGFyICopY3VyLCBVUkwsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfeG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgKGNvbnN0IHhtbENoYXIgKiljdXIsIDEpOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMik7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAzKTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEN0eHRSZWFkRG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJMKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ3R4dFJlYWRGaWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIGEgZmlsZSBvciBVUkwgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBvcHRpb25zOyAvKiBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbiAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfcGFyc2Vyb3B0aW9ucztuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ3R4dFJlYWRGaWxlKGN0eHQsIGZpbGVuYW1lLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMik7CisgICAgICAgIGRlc19wYXJzZXJvcHRpb25zKG5fb3B0aW9ucywgb3B0aW9ucywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDdHh0UmVhZEZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEN0eHRSZWFkTWVtb3J5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBjaGFyICogYnVmZmVyOyAvKiBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5ICovCisgICAgaW50IG5fYnVmZmVyOworICAgIGludCBzaXplOyAvKiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgbl9zaXplOworICAgIGNvbnN0IGNoYXIgKiBVUkw7IC8qIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX1VSTDsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBvcHRpb25zOyAvKiBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbiAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfcGFyc2Vyb3B0aW9ucztuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgYnVmZmVyID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fYnVmZmVyLCAxKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnQobl9zaXplLCAyKTsKKyAgICAgICAgVVJMID0gZ2VuX2ZpbGVwYXRoKG5fVVJMLCAzKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgNCk7CisgICAgICAgIG9wdGlvbnMgPSBnZW5fcGFyc2Vyb3B0aW9ucyhuX29wdGlvbnMsIDUpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDdHh0UmVhZE1lbW9yeShjdHh0LCAoY29uc3QgY2hhciAqKWJ1ZmZlciwgc2l6ZSwgVVJMLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAxKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDIpOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMyk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCA0KTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCA1KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEN0eHRSZWFkTWVtb3J5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1ZmZlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJMKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEN0eHRSZXNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sQ3R4dFJlc2V0KGN0eHQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDdHh0UmVzZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDdHh0UmVzZXRQdXNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBjaGFyICogY2h1bms7IC8qIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBjaGFycyAqLworICAgIGludCBuX2NodW5rOworICAgIGludCBzaXplOyAvKiBudW1iZXIgb2YgY2hhcnMgaW4gdGhlIGFycmF5ICovCisgICAgaW50IG5fc2l6ZTsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIGFuIG9wdGlvbmFsIGZpbGUgbmFtZSBvciBVUkkgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2NodW5rID0gMDtuX2NodW5rIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fY2h1bmsrKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50O25fc2l6ZSsrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGNodW5rID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fY2h1bmssIDEpOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDIpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlcGF0aChuX2ZpbGVuYW1lLCAzKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgNCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEN0eHRSZXNldFB1c2goY3R4dCwgKGNvbnN0IGNoYXIgKiljaHVuaywgc2l6ZSwgZmlsZW5hbWUsIChjb25zdCBjaGFyICopZW5jb2RpbmcpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2NodW5rLCAoY29uc3QgY2hhciAqKWNodW5rLCAxKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDIpOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDMpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDdHh0UmVzZXRQdXNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NodW5rKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEN0eHRVc2VPcHRpb25zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24gKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ3R4dFVzZU9wdGlvbnMoY3R4dCwgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEN0eHRVc2VPcHRpb25zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldEV4dGVybmFsRW50aXR5TG9hZGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxHZXRGZWF0dXJlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX0xFR0FDWV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1ML0hUTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBuYW1lOyAvKiB0aGUgZmVhdHVyZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB2b2lkICogcmVzdWx0OyAvKiBsb2NhdGlvbiB0byBzdG9yZSB0aGUgcmVzdWx0ICovCisgICAgaW50IG5fcmVzdWx0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9yZXN1bHQgPSAwO25fcmVzdWx0IDwgZ2VuX25iX3ZvaWRfcHRyO25fcmVzdWx0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuX3ZvaWRfcHRyKG5fcmVzdWx0LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0RmVhdHVyZShjdHh0LCAoY29uc3QgY2hhciAqKW5hbWUsIHJlc3VsdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IGNoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fcmVzdWx0LCByZXN1bHQsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0RmVhdHVyZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZXN1bHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX2NvbnN0X2NoYXJfcHRyX3B0ciAxCitzdGF0aWMgY2hhciAqKiBnZW5fY29uc3RfY2hhcl9wdHJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19jb25zdF9jaGFyX3B0cl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGNoYXIgKiogdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0RmVhdHVyZXNMaXN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX0xFR0FDWV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCAqIGxlbjsgLyogdGhlIGxlbmd0aCBvZiB0aGUgZmVhdHVyZXMgbmFtZSBhcnJheSAoaW5wdXQvb3V0cHV0KSAqLworICAgIGludCBuX2xlbjsKKyAgICBjaGFyICoqIHJlc3VsdDsgLyogYW4gYXJyYXkgb2Ygc3RyaW5nIHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBmZWF0dXJlcyBuYW1lLiAqLworICAgIGludCBuX3Jlc3VsdDsKKworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludF9wdHI7bl9sZW4rKykgeworICAgIGZvciAobl9yZXN1bHQgPSAwO25fcmVzdWx0IDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyX3B0cjtuX3Jlc3VsdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGxlbiA9IGdlbl9pbnRfcHRyKG5fbGVuLCAwKTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuX2NvbnN0X2NoYXJfcHRyX3B0cihuX3Jlc3VsdCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldEZlYXR1cmVzTGlzdChsZW4sIChjb25zdCBjaGFyICoqKXJlc3VsdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludF9wdHIobl9sZW4sIGxlbiwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cl9wdHIobl9yZXN1bHQsIChjb25zdCBjaGFyICoqKXJlc3VsdCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxHZXRGZWF0dXJlc0xpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZXN1bHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNGZWF0dXJlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEZlYXR1cmUgZmVhdHVyZTsgLyogdGhlIGZlYXR1cmUgdG8gYmUgZXhhbWluZWQgKi8KKyAgICBpbnQgbl9mZWF0dXJlOworCisgICAgZm9yIChuX2ZlYXR1cmUgPSAwO25fZmVhdHVyZSA8IGdlbl9uYl94bWxGZWF0dXJlO25fZmVhdHVyZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZlYXR1cmUgPSBnZW5feG1sRmVhdHVyZShuX2ZlYXR1cmUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxIYXNGZWF0dXJlKGZlYXR1cmUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxGZWF0dXJlKG5fZmVhdHVyZSwgZmVhdHVyZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxIYXNGZWF0dXJlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZlYXR1cmUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSU9QYXJzZURURCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICB4bWxEdGRQdHIgcmV0X3ZhbDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIHNheDsgLyogdGhlIFNBWCBoYW5kbGVyIGJsb2NrIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7IC8qIGFuIElucHV0IEJ1ZmZlciAqLworICAgIGludCBuX2lucHV0OworICAgIHhtbENoYXJFbmNvZGluZyBlbmM7IC8qIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duICovCisgICAgaW50IG5fZW5jOworCisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfeG1sU0FYSGFuZGxlclB0cjtuX3NheCsrKSB7CisgICAgZm9yIChuX2lucHV0ID0gMDtuX2lucHV0IDwgZ2VuX25iX3htbFBhcnNlcklucHV0QnVmZmVyUHRyO25faW5wdXQrKykgeworICAgIGZvciAobl9lbmMgPSAwO25fZW5jIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZztuX2VuYysrKSB7CisgICAgICAgIHNheCA9IGdlbl94bWxTQVhIYW5kbGVyUHRyKG5fc2F4LCAwKTsKKyAgICAgICAgaW5wdXQgPSBnZW5feG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbnB1dCwgMSk7CisgICAgICAgIGVuYyA9IGdlbl94bWxDaGFyRW5jb2Rpbmcobl9lbmMsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxJT1BhcnNlRFREKHNheCwgaW5wdXQsIGVuYyk7CisgICAgICAgIGlucHV0ID0gTlVMTDsKKyAgICAgICAgZGVzcmV0X3htbER0ZFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAwKTsKKyAgICAgICAgZGVzX3htbFBhcnNlcklucHV0QnVmZmVyUHRyKG5faW5wdXQsIGlucHV0LCAxKTsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZyhuX2VuYywgZW5jLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxJbml0Tm9kZUluZm9TZXEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgc2VxOyAvKiBhIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyICovCisgICAgaW50IG5fc2VxOworCisgICAgZm9yIChuX3NlcSA9IDA7bl9zZXEgPCBnZW5fbmJfeG1sUGFyc2VyTm9kZUluZm9TZXFQdHI7bl9zZXErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzZXEgPSBnZW5feG1sUGFyc2VyTm9kZUluZm9TZXFQdHIobl9zZXEsIDApOworCisgICAgICAgIHhtbEluaXROb2RlSW5mb1NlcShzZXEpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJOb2RlSW5mb1NlcVB0cihuX3NlcSwgc2VxLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEluaXROb2RlSW5mb1NlcSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zZXEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSW5pdFBhcnNlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHhtbEluaXRQYXJzZXIoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSW5pdFBhcnNlciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSW5pdFBhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxJbml0UGFyc2VyQ3R4dChjdHh0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSW5pdFBhcnNlckN0eHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxLZWVwQmxhbmtzRGVmYXVsdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgdmFsOyAvKiBpbnQgMCBvciAxICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfaW50O25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX2ludChuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEtlZXBCbGFua3NEZWZhdWx0KHZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEtlZXBCbGFua3NEZWZhdWx0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMaW5lTnVtYmVyc0RlZmF1bHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IHZhbDsgLyogaW50IDAgb3IgMSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2ludDtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl9pbnQobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxMaW5lTnVtYmVyc0RlZmF1bHQodmFsKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fdmFsLCB2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTGluZU51bWJlcnNEZWZhdWx0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxMb2FkRXh0ZXJuYWxFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogVVJMOyAvKiB0aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQgKi8KKyAgICBpbnQgbl9VUkw7CisgICAgY2hhciAqIElEOyAvKiB0aGUgUHVibGljIElEIGZvciB0aGUgZW50aXR5IHRvIGxvYWQgKi8KKyAgICBpbnQgbl9JRDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIHRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBlbnRpdHkgaXMgY2FsbGVkIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkwrKykgeworICAgIGZvciAobl9JRCA9IDA7bl9JRCA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX0lEKyspIHsKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgVVJMID0gZ2VuX2ZpbGVwYXRoKG5fVVJMLCAwKTsKKyAgICAgICAgSUQgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9JRCwgMSk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxMb2FkRXh0ZXJuYWxFbnRpdHkoVVJMLCAoY29uc3QgY2hhciAqKUlELCBjdHh0KTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlcklucHV0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fSUQsIChjb25zdCBjaGFyICopSUQsIDEpOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTG9hZEV4dGVybmFsRW50aXR5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fSUQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdJT0lucHV0U3RyZWFtKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0OyAvKiBhbiBJL08gSW5wdXQgKi8KKyAgICBpbnQgbl9pbnB1dDsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jOyAvKiB0aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93biAqLworICAgIGludCBuX2VuYzsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9pbnB1dCA9IDA7bl9pbnB1dCA8IGdlbl9uYl94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjtuX2lucHV0KyspIHsKKyAgICBmb3IgKG5fZW5jID0gMDtuX2VuYyA8IGdlbl9uYl94bWxDaGFyRW5jb2Rpbmc7bl9lbmMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgaW5wdXQgPSBnZW5feG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbnB1dCwgMSk7CisgICAgICAgIGVuYyA9IGdlbl94bWxDaGFyRW5jb2Rpbmcobl9lbmMsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdJT0lucHV0U3RyZWFtKGN0eHQsIGlucHV0LCBlbmMpOworICAgICAgICBpZiAocmV0X3ZhbCAhPSBOVUxMKSBpbnB1dCA9IE5VTEw7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJJbnB1dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbnB1dCwgaW5wdXQsIDEpOworICAgICAgICBkZXNfeG1sQ2hhckVuY29kaW5nKG5fZW5jLCBlbmMsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3SU9JbnB1dFN0cmVhbSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbnB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3UGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIHJldF92YWw7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3UGFyc2VyQ3R4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX3htbE5vZGVQdHJfcHRyIDEKK3N0YXRpYyB4bWxOb2RlUHRyICogZ2VuX3htbE5vZGVQdHJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxOb2RlUHRyX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sTm9kZVB0ciAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCB0aGUgY2h1bmsgcGVydGFpbnMgdG8gKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIHRoZSBTQVggaGFuZGxlciBibG9jIChwb3NzaWJseSBOVUxMKSAqLworICAgIGludCBuX3NheDsKKyAgICB2b2lkICogdXNlcl9kYXRhOyAvKiBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MgKHBvc3NpYmx5IE5VTEwpICovCisgICAgaW50IG5fdXNlcl9kYXRhOworICAgIGludCBkZXB0aDsgLyogVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwICovCisgICAgaW50IG5fZGVwdGg7CisgICAgeG1sQ2hhciAqIHN0cmluZzsgLyogdGhlIGlucHV0IHN0cmluZyBpbiBVVEY4IG9yIElTTy1MYXRpbiAoemVybyB0ZXJtaW5hdGVkKSAqLworICAgIGludCBuX3N0cmluZzsKKyAgICB4bWxOb2RlUHRyICogbHN0OyAvKiB0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlcyAqLworICAgIGludCBuX2xzdDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfeG1sU0FYSGFuZGxlclB0cjtuX3NheCsrKSB7CisgICAgZm9yIChuX3VzZXJfZGF0YSA9IDA7bl91c2VyX2RhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl91c2VyX2RhdGErKykgeworICAgIGZvciAobl9kZXB0aCA9IDA7bl9kZXB0aCA8IGdlbl9uYl9pbnQ7bl9kZXB0aCsrKSB7CisgICAgZm9yIChuX3N0cmluZyA9IDA7bl9zdHJpbmcgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHJpbmcrKykgeworICAgIGZvciAobl9sc3QgPSAwO25fbHN0IDwgZ2VuX25iX3htbE5vZGVQdHJfcHRyO25fbHN0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIHNheCA9IGdlbl94bWxTQVhIYW5kbGVyUHRyKG5fc2F4LCAxKTsKKyAgICAgICAgdXNlcl9kYXRhID0gZ2VuX3VzZXJkYXRhKG5fdXNlcl9kYXRhLCAyKTsKKyAgICAgICAgZGVwdGggPSBnZW5faW50KG5fZGVwdGgsIDMpOworICAgICAgICBzdHJpbmcgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHJpbmcsIDQpOworICAgICAgICBsc3QgPSBnZW5feG1sTm9kZVB0cl9wdHIobl9sc3QsIDUpOworICAgICAgICAKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgICAgIGlmIChzYXggPT0gKHhtbFNBWEhhbmRsZXJQdHIpJnhtbERlZmF1bHRTQVhIYW5kbGVyKSB1c2VyX2RhdGEgPSBOVUxMOworI2VuZGlmCisKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5KGRvYywgc2F4LCB1c2VyX2RhdGEsIGRlcHRoLCAoY29uc3QgeG1sQ2hhciAqKXN0cmluZywgbHN0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAxKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fdXNlcl9kYXRhLCB1c2VyX2RhdGEsIDIpOworICAgICAgICBkZXNfaW50KG5fZGVwdGgsIGRlcHRoLCAzKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyaW5nLCAoY29uc3QgeG1sQ2hhciAqKXN0cmluZywgNCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyX3B0cihuX2xzdCwgbHN0LCA1KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXNlcl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZXB0aCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sc3QpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3Zlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCB0aGUgY2h1bmsgcGVydGFpbnMgdG8gKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIHRoZSBTQVggaGFuZGxlciBibG9jIChwb3NzaWJseSBOVUxMKSAqLworICAgIGludCBuX3NheDsKKyAgICB2b2lkICogdXNlcl9kYXRhOyAvKiBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MgKHBvc3NpYmx5IE5VTEwpICovCisgICAgaW50IG5fdXNlcl9kYXRhOworICAgIGludCBkZXB0aDsgLyogVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwICovCisgICAgaW50IG5fZGVwdGg7CisgICAgeG1sQ2hhciAqIHN0cmluZzsgLyogdGhlIGlucHV0IHN0cmluZyBpbiBVVEY4IG9yIElTTy1MYXRpbiAoemVybyB0ZXJtaW5hdGVkKSAqLworICAgIGludCBuX3N0cmluZzsKKyAgICB4bWxOb2RlUHRyICogbHN0OyAvKiB0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgc2V0IG9mIHBhcnNlZCBub2RlcyAqLworICAgIGludCBuX2xzdDsKKyAgICBpbnQgcmVjb3ZlcjsgLyogcmV0dXJuIG5vZGVzIGV2ZW4gaWYgdGhlIGRhdGEgaXMgYnJva2VuICh1c2UgMCkgKi8KKyAgICBpbnQgbl9yZWNvdmVyOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fc2F4ID0gMDtuX3NheCA8IGdlbl9uYl94bWxTQVhIYW5kbGVyUHRyO25fc2F4KyspIHsKKyAgICBmb3IgKG5fdXNlcl9kYXRhID0gMDtuX3VzZXJfZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX3VzZXJfZGF0YSsrKSB7CisgICAgZm9yIChuX2RlcHRoID0gMDtuX2RlcHRoIDwgZ2VuX25iX2ludDtuX2RlcHRoKyspIHsKKyAgICBmb3IgKG5fc3RyaW5nID0gMDtuX3N0cmluZyA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cmluZysrKSB7CisgICAgZm9yIChuX2xzdCA9IDA7bl9sc3QgPCBnZW5fbmJfeG1sTm9kZVB0cl9wdHI7bl9sc3QrKykgeworICAgIGZvciAobl9yZWNvdmVyID0gMDtuX3JlY292ZXIgPCBnZW5fbmJfaW50O25fcmVjb3ZlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBzYXggPSBnZW5feG1sU0FYSGFuZGxlclB0cihuX3NheCwgMSk7CisgICAgICAgIHVzZXJfZGF0YSA9IGdlbl91c2VyZGF0YShuX3VzZXJfZGF0YSwgMik7CisgICAgICAgIGRlcHRoID0gZ2VuX2ludChuX2RlcHRoLCAzKTsKKyAgICAgICAgc3RyaW5nID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyaW5nLCA0KTsKKyAgICAgICAgbHN0ID0gZ2VuX3htbE5vZGVQdHJfcHRyKG5fbHN0LCA1KTsKKyAgICAgICAgcmVjb3ZlciA9IGdlbl9pbnQobl9yZWNvdmVyLCA2KTsKKyAgICAgICAgCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgICAgICBpZiAoc2F4ID09ICh4bWxTQVhIYW5kbGVyUHRyKSZ4bWxEZWZhdWx0U0FYSGFuZGxlcikgdXNlcl9kYXRhID0gTlVMTDsKKyNlbmRpZgorCisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIoZG9jLCBzYXgsIHVzZXJfZGF0YSwgZGVwdGgsIChjb25zdCB4bWxDaGFyICopc3RyaW5nLCBsc3QsIHJlY292ZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxTQVhIYW5kbGVyUHRyKG5fc2F4LCBzYXgsIDEpOworICAgICAgICBkZXNfdXNlcmRhdGEobl91c2VyX2RhdGEsIHVzZXJfZGF0YSwgMik7CisgICAgICAgIGRlc19pbnQobl9kZXB0aCwgZGVwdGgsIDMpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHJpbmcsIChjb25zdCB4bWxDaGFyICopc3RyaW5nLCA0KTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHJfcHRyKG5fbHN0LCBsc3QsIDUpOworICAgICAgICBkZXNfaW50KG5fcmVjb3ZlciwgcmVjb3ZlciwgNik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnlSZWNvdmVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2F4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl91c2VyX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RlcHRoKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHJpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xzdCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVjb3Zlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VDaHVuayh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1BVU0hfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBjaHVuazsgLyogYW4gY2hhciBhcnJheSAqLworICAgIGludCBuX2NodW5rOworICAgIGludCBzaXplOyAvKiB0aGUgc2l6ZSBpbiBieXRlIG9mIHRoZSBjaHVuayAqLworICAgIGludCBuX3NpemU7CisgICAgaW50IHRlcm1pbmF0ZTsgLyogbGFzdCBjaHVuayBpbmRpY2F0b3IgKi8KKyAgICBpbnQgbl90ZXJtaW5hdGU7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY2h1bmsgPSAwO25fY2h1bmsgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9jaHVuaysrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICBmb3IgKG5fdGVybWluYXRlID0gMDtuX3Rlcm1pbmF0ZSA8IGdlbl9uYl9pbnQ7bl90ZXJtaW5hdGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY2h1bmsgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9jaHVuaywgMSk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMik7CisgICAgICAgIHRlcm1pbmF0ZSA9IGdlbl9pbnQobl90ZXJtaW5hdGUsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZUNodW5rKGN0eHQsIChjb25zdCBjaGFyICopY2h1bmssIHNpemUsIHRlcm1pbmF0ZSk7CisgICAgICAgIGlmIChjdHh0ICE9IE5VTEwpIHt4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsgY3R4dC0+bXlEb2MgPSBOVUxMO30KKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9jaHVuaywgKGNvbnN0IGNoYXIgKiljaHVuaywgMSk7CisgICAgICAgIGRlc19pbnQobl9zaXplLCBzaXplLCAyKTsKKyAgICAgICAgZGVzX2ludChuX3Rlcm1pbmF0ZSwgdGVybWluYXRlLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlQ2h1bmsiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2h1bmspOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3Rlcm1pbmF0ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4OyAvKiB0aGUgZXhpc3RpbmcgcGFyc2luZyBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworICAgIHhtbENoYXIgKiBVUkw7IC8qIHRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZCAqLworICAgIGludCBuX1VSTDsKKyAgICB4bWxDaGFyICogSUQ7IC8qIHRoZSBTeXN0ZW0gSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZCAqLworICAgIGludCBuX0lEOworICAgIHhtbE5vZGVQdHIgKiBsc3Q7IC8qIHRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzICovCisgICAgaW50IG5fbHN0OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eCsrKSB7CisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9VUkwrKykgeworICAgIGZvciAobl9JRCA9IDA7bl9JRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0lEKyspIHsKKyAgICBmb3IgKG5fbHN0ID0gMDtuX2xzdCA8IGdlbl9uYl94bWxOb2RlUHRyX3B0cjtuX2xzdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4LCAwKTsKKyAgICAgICAgVVJMID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fVVJMLCAxKTsKKyAgICAgICAgSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9JRCwgMik7CisgICAgICAgIGxzdCA9IGdlbl94bWxOb2RlUHRyX3B0cihuX2xzdCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5KGN0eCwgKGNvbnN0IHhtbENoYXIgKilVUkwsIChjb25zdCB4bWxDaGFyICopSUQsIGxzdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHgsIGN0eCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1VSTCwgKGNvbnN0IHhtbENoYXIgKilVUkwsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9JRCwgKGNvbnN0IHhtbENoYXIgKilJRCwgMik7CisgICAgICAgIGRlc194bWxOb2RlUHRyX3B0cihuX2xzdCwgbHN0LCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJMKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9JRCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbHN0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlRFREKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEdGRQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogRXh0ZXJuYWxJRDsgLyogYSBOQU1FKiBjb250YWluaW5nIHRoZSBFeHRlcm5hbCBJRCBvZiB0aGUgRFREICovCisgICAgaW50IG5fRXh0ZXJuYWxJRDsKKyAgICB4bWxDaGFyICogU3lzdGVtSUQ7IC8qIGEgTkFNRSogY29udGFpbmluZyB0aGUgVVJMIHRvIHRoZSBEVEQgKi8KKyAgICBpbnQgbl9TeXN0ZW1JRDsKKworICAgIGZvciAobl9FeHRlcm5hbElEID0gMDtuX0V4dGVybmFsSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9FeHRlcm5hbElEKyspIHsKKyAgICBmb3IgKG5fU3lzdGVtSUQgPSAwO25fU3lzdGVtSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9TeXN0ZW1JRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIEV4dGVybmFsSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAwKTsKKyAgICAgICAgU3lzdGVtSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlRFREKChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCk7CisgICAgICAgIGRlc3JldF94bWxEdGRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fRXh0ZXJuYWxJRCwgKGNvbnN0IHhtbENoYXIgKilFeHRlcm5hbElELCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fU3lzdGVtSUQsIChjb25zdCB4bWxDaGFyICopU3lzdGVtSUQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VEVEQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fRXh0ZXJuYWxJRCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fU3lzdGVtSUQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZURvYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbENoYXIgKiBjdXI7IC8qIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZURvYygoY29uc3QgeG1sQ2hhciAqKWN1cik7CisgICAgICAgIGRlc3JldF94bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAoY29uc3QgeG1sQ2hhciAqKWN1ciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZURvYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlRG9jdW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZURvY3VtZW50KGN0eHQpOworICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKSB7eG1sRnJlZURvYyhjdHh0LT5teURvYyk7IGN0eHQtPm15RG9jID0gTlVMTDt9CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlRG9jdW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZUVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIGZpbGVuYW1lICovCisgICAgaW50IG5fZmlsZW5hbWU7CisKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZUVudGl0eShmaWxlbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlRW50aXR5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZUV4dFBhcnNlZEVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlRXh0UGFyc2VkRW50KGN0eHQpOworICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKSB7eG1sRnJlZURvYyhjdHh0LT5teURvYyk7IGN0eHQtPm15RG9jID0gTlVMTDt9CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlRXh0UGFyc2VkRW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VFeHRlcm5hbEVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCB0aGUgY2h1bmsgcGVydGFpbnMgdG8gKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIHRoZSBTQVggaGFuZGxlciBibG9jIChwb3NzaWJseSBOVUxMKSAqLworICAgIGludCBuX3NheDsKKyAgICB2b2lkICogdXNlcl9kYXRhOyAvKiBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MgKHBvc3NpYmx5IE5VTEwpICovCisgICAgaW50IG5fdXNlcl9kYXRhOworICAgIGludCBkZXB0aDsgLyogVXNlZCBmb3IgbG9vcCBkZXRlY3Rpb24sIHVzZSAwICovCisgICAgaW50IG5fZGVwdGg7CisgICAgeG1sQ2hhciAqIFVSTDsgLyogdGhlIFVSTCBmb3IgdGhlIGVudGl0eSB0byBsb2FkICovCisgICAgaW50IG5fVVJMOworICAgIHhtbENoYXIgKiBJRDsgLyogdGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkICovCisgICAgaW50IG5fSUQ7CisgICAgeG1sTm9kZVB0ciAqIGxzdDsgLyogdGhlIHJldHVybiB2YWx1ZSBmb3IgdGhlIHNldCBvZiBwYXJzZWQgbm9kZXMgKi8KKyAgICBpbnQgbl9sc3Q7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9zYXggPSAwO25fc2F4IDwgZ2VuX25iX3htbFNBWEhhbmRsZXJQdHI7bl9zYXgrKykgeworICAgIGZvciAobl91c2VyX2RhdGEgPSAwO25fdXNlcl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fdXNlcl9kYXRhKyspIHsKKyAgICBmb3IgKG5fZGVwdGggPSAwO25fZGVwdGggPCBnZW5fbmJfaW50O25fZGVwdGgrKykgeworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fVVJMKyspIHsKKyAgICBmb3IgKG5fSUQgPSAwO25fSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9JRCsrKSB7CisgICAgZm9yIChuX2xzdCA9IDA7bl9sc3QgPCBnZW5fbmJfeG1sTm9kZVB0cl9wdHI7bl9sc3QrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgc2F4ID0gZ2VuX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIDEpOworICAgICAgICB1c2VyX2RhdGEgPSBnZW5fdXNlcmRhdGEobl91c2VyX2RhdGEsIDIpOworICAgICAgICBkZXB0aCA9IGdlbl9pbnQobl9kZXB0aCwgMyk7CisgICAgICAgIFVSTCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX1VSTCwgNCk7CisgICAgICAgIElEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fSUQsIDUpOworICAgICAgICBsc3QgPSBnZW5feG1sTm9kZVB0cl9wdHIobl9sc3QsIDYpOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZUV4dGVybmFsRW50aXR5KGRvYywgc2F4LCB1c2VyX2RhdGEsIGRlcHRoLCAoY29uc3QgeG1sQ2hhciAqKVVSTCwgKGNvbnN0IHhtbENoYXIgKilJRCwgbHN0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAxKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fdXNlcl9kYXRhLCB1c2VyX2RhdGEsIDIpOworICAgICAgICBkZXNfaW50KG5fZGVwdGgsIGRlcHRoLCAzKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fVVJMLCAoY29uc3QgeG1sQ2hhciAqKVVSTCwgNCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX0lELCAoY29uc3QgeG1sQ2hhciAqKUlELCA1KTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHJfcHRyKG5fbHN0LCBsc3QsIDYpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VFeHRlcm5hbEVudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXNlcl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZXB0aCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJMKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9JRCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbHN0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZUZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSAqLworICAgIGludCBuX2ZpbGVuYW1lOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlcGF0aChuX2ZpbGVuYW1lLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VGaWxlKGZpbGVuYW1lKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VGaWxlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZUluTm9kZUNvbnRleHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyRXJyb3JzIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgY29udGV4dCBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICBjaGFyICogZGF0YTsgLyogdGhlIGlucHV0IHN0cmluZyAqLworICAgIGludCBuX2RhdGE7CisgICAgaW50IGRhdGFsZW47IC8qIHRoZSBpbnB1dCBzdHJpbmcgbGVuZ3RoIGluIGJ5dGVzICovCisgICAgaW50IG5fZGF0YWxlbjsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24gKi8KKyAgICBpbnQgbl9vcHRpb25zOworICAgIHhtbE5vZGVQdHIgKiBsc3Q7IC8qIHRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBzZXQgb2YgcGFyc2VkIG5vZGVzICovCisgICAgaW50IG5fbHN0OworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2RhdGErKykgeworICAgIGZvciAobl9kYXRhbGVuID0gMDtuX2RhdGFsZW4gPCBnZW5fbmJfaW50O25fZGF0YWxlbisrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgZm9yIChuX2xzdCA9IDA7bl9sc3QgPCBnZW5fbmJfeG1sTm9kZVB0cl9wdHI7bl9sc3QrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKyAgICAgICAgZGF0YSA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2RhdGEsIDEpOworICAgICAgICBkYXRhbGVuID0gZ2VuX2ludChuX2RhdGFsZW4sIDIpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCAzKTsKKyAgICAgICAgbHN0ID0gZ2VuX3htbE5vZGVQdHJfcHRyKG5fbHN0LCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VJbk5vZGVDb250ZXh0KG5vZGUsIChjb25zdCBjaGFyICopZGF0YSwgZGF0YWxlbiwgb3B0aW9ucywgbHN0KTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlckVycm9ycyhyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9kYXRhLCAoY29uc3QgY2hhciAqKWRhdGEsIDEpOworICAgICAgICBkZXNfaW50KG5fZGF0YWxlbiwgZGF0YWxlbiwgMik7CisgICAgICAgIGRlc19wYXJzZXJvcHRpb25zKG5fb3B0aW9ucywgb3B0aW9ucywgMyk7CisgICAgICAgIGRlc194bWxOb2RlUHRyX3B0cihuX2xzdCwgbHN0LCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlSW5Ob2RlQ29udGV4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kYXRhbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sc3QpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlTWVtb3J5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIHJldF92YWw7CisgICAgY2hhciAqIGJ1ZmZlcjsgLyogYW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGludCBuX3NpemU7CisKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmZmVyID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fYnVmZmVyLCAwKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnQobl9zaXplLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VNZW1vcnkoKGNvbnN0IGNoYXIgKilidWZmZXIsIHNpemUpOworICAgICAgICBkZXNyZXRfeG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgKGNvbnN0IGNoYXIgKilidWZmZXIsIDApOworICAgICAgICBkZXNfaW50KG5fc2l6ZSwgc2l6ZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZU1lbW9yeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfY29uc3RfeG1sUGFyc2VyTm9kZUluZm9QdHIgMQorc3RhdGljIHhtbFBhcnNlck5vZGVJbmZvUHRyIGdlbl9jb25zdF94bWxQYXJzZXJOb2RlSW5mb1B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfY29uc3RfeG1sUGFyc2VyTm9kZUluZm9QdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlckFkZE5vZGVJbmZvKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxQYXJzZXJOb2RlSW5mb1B0ciBpbmZvOyAvKiBhIG5vZGUgaW5mbyBzZXF1ZW5jZSBwb2ludGVyICovCisgICAgaW50IG5faW5mbzsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9pbmZvID0gMDtuX2luZm8gPCBnZW5fbmJfY29uc3RfeG1sUGFyc2VyTm9kZUluZm9QdHI7bl9pbmZvKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGluZm8gPSBnZW5fY29uc3RfeG1sUGFyc2VyTm9kZUluZm9QdHIobl9pbmZvLCAxKTsKKworICAgICAgICB4bWxQYXJzZXJBZGROb2RlSW5mbyhjdHh0LCAoY29uc3QgeG1sUGFyc2VyTm9kZUluZm9QdHIpaW5mbyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbFBhcnNlck5vZGVJbmZvUHRyKG5faW5mbywgKGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvUHRyKWluZm8sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VyQWRkTm9kZUluZm8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW5mbyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX2NvbnN0X3htbFBhcnNlckN0eHRQdHIgMQorc3RhdGljIHhtbFBhcnNlckN0eHRQdHIgZ2VuX2NvbnN0X3htbFBhcnNlckN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX2NvbnN0X3htbFBhcnNlckN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbFBhcnNlckN0eHRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKKyNkZWZpbmUgZ2VuX25iX2NvbnN0X3htbE5vZGVQdHIgMQorc3RhdGljIHhtbE5vZGVQdHIgZ2VuX2NvbnN0X3htbE5vZGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX2NvbnN0X3htbE5vZGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbE5vZGVQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VyRmluZE5vZGVJbmZvKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvICogcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogYW4gWE1MIG5vZGUgd2l0aGluIHRoZSB0cmVlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX2NvbnN0X3htbFBhcnNlckN0eHRQdHI7bl9jdHgrKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfY29uc3RfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fY29uc3RfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eCwgMCk7CisgICAgICAgIG5vZGUgPSBnZW5fY29uc3RfeG1sTm9kZVB0cihuX25vZGUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZXJGaW5kTm9kZUluZm8oKGNvbnN0IHhtbFBhcnNlckN0eHRQdHIpY3R4LCAoY29uc3QgeG1sTm9kZVB0cilub2RlKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbFBhcnNlck5vZGVJbmZvX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eCwgKGNvbnN0IHhtbFBhcnNlckN0eHRQdHIpY3R4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbE5vZGVQdHIobl9ub2RlLCAoY29uc3QgeG1sTm9kZVB0cilub2RlLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlckZpbmROb2RlSW5mbyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl9jb25zdF94bWxQYXJzZXJOb2RlSW5mb1NlcVB0ciAxCitzdGF0aWMgeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgZ2VuX2NvbnN0X3htbFBhcnNlck5vZGVJbmZvU2VxUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc19jb25zdF94bWxQYXJzZXJOb2RlSW5mb1NlcVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdW5zaWduZWQgbG9uZyByZXRfdmFsOworICAgIHhtbFBhcnNlck5vZGVJbmZvU2VxUHRyIHNlcTsgLyogYSBub2RlIGluZm8gc2VxdWVuY2UgcG9pbnRlciAqLworICAgIGludCBuX3NlcTsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIGFuIFhNTCBub2RlIHBvaW50ZXIgKi8KKyAgICBpbnQgbl9ub2RlOworCisgICAgZm9yIChuX3NlcSA9IDA7bl9zZXEgPCBnZW5fbmJfY29uc3RfeG1sUGFyc2VyTm9kZUluZm9TZXFQdHI7bl9zZXErKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfY29uc3RfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzZXEgPSBnZW5fY29uc3RfeG1sUGFyc2VyTm9kZUluZm9TZXFQdHIobl9zZXEsIDApOworICAgICAgICBub2RlID0gZ2VuX2NvbnN0X3htbE5vZGVQdHIobl9ub2RlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgoKGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvU2VxUHRyKXNlcSwgKGNvbnN0IHhtbE5vZGVQdHIpbm9kZSk7CisgICAgICAgIGRlc3JldF91bnNpZ25lZF9sb25nKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxQYXJzZXJOb2RlSW5mb1NlcVB0cihuX3NlcSwgKGNvbnN0IHhtbFBhcnNlck5vZGVJbmZvU2VxUHRyKXNlcSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxOb2RlUHRyKG5fbm9kZSwgKGNvbnN0IHhtbE5vZGVQdHIpbm9kZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zZXEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxQYXJzZXJJbnB1dFB0ciAxCitzdGF0aWMgeG1sUGFyc2VySW5wdXRQdHIgZ2VuX3htbFBhcnNlcklucHV0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxQYXJzZXJJbnB1dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sUGFyc2VySW5wdXRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VySW5wdXRHcm93KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlcklucHV0UHRyIGluOyAvKiBhbiBYTUwgcGFyc2VyIGlucHV0ICovCisgICAgaW50IG5faW47CisgICAgaW50IGxlbjsgLyogYW4gaW5kaWNhdGl2ZSBzaXplIGZvciB0aGUgbG9va2FoZWFkICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2luID0gMDtuX2luIDwgZ2VuX25iX3htbFBhcnNlcklucHV0UHRyO25faW4rKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGluID0gZ2VuX3htbFBhcnNlcklucHV0UHRyKG5faW4sIDApOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VySW5wdXRHcm93KGluLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJJbnB1dFB0cihuX2luLCBpbiwgMCk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZXJJbnB1dEdyb3ciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VySW5wdXRSZWFkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlcklucHV0UHRyIGluOyAvKiBhbiBYTUwgcGFyc2VyIGlucHV0ICovCisgICAgaW50IG5faW47CisgICAgaW50IGxlbjsgLyogYW4gaW5kaWNhdGl2ZSBzaXplIGZvciB0aGUgbG9va2FoZWFkICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2luID0gMDtuX2luIDwgZ2VuX25iX3htbFBhcnNlcklucHV0UHRyO25faW4rKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGluID0gZ2VuX3htbFBhcnNlcklucHV0UHRyKG5faW4sIDApOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VySW5wdXRSZWFkKGluLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJJbnB1dFB0cihuX2luLCBpbiwgMCk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZXJJbnB1dFJlYWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCB2YWw7IC8qIGludCAwIG9yIDEgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl9pbnQ7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5faW50KG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0KHZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBlZGFudGljUGFyc2VyRGVmYXVsdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVhZERvYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogY3VyOyAvKiBhIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nICovCisgICAgaW50IG5fY3VyOworICAgIGNvbnN0IGNoYXIgKiBVUkw7IC8qIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX1VSTDsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBvcHRpb25zOyAvKiBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbiAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkwrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX3BhcnNlcm9wdGlvbnM7bl9vcHRpb25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAwKTsKKyAgICAgICAgVVJMID0gZ2VuX2ZpbGVwYXRoKG5fVVJMLCAxKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgMik7CisgICAgICAgIG9wdGlvbnMgPSBnZW5fcGFyc2Vyb3B0aW9ucyhuX29wdGlvbnMsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWFkRG9jKChjb25zdCB4bWxDaGFyICopY3VyLCBVUkwsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfeG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgKGNvbnN0IHhtbENoYXIgKiljdXIsIDApOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMSk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAyKTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlYWREb2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlYWRGaWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogYSBmaWxlIG9yIFVSTCAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIDApOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAxKTsKKyAgICAgICAgb3B0aW9ucyA9IGdlbl9wYXJzZXJvcHRpb25zKG5fb3B0aW9ucywgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMSk7CisgICAgICAgIGRlc19wYXJzZXJvcHRpb25zKG5fb3B0aW9ucywgb3B0aW9ucywgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWFkRmlsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWFkTWVtb3J5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIGNoYXIgKiBidWZmZXI7IC8qIGEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGludCBuX3NpemU7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fVVJMOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2ZpbGVwYXRoO25fVVJMKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMCk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMSk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMik7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDMpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZE1lbW9yeSgoY29uc3QgY2hhciAqKWJ1ZmZlciwgc2l6ZSwgVVJMLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDEpOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMik7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAzKTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlYWRNZW1vcnkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWNvdmVyRG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIGN1cjsgLyogYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFJlY292ZXJEb2MoKGNvbnN0IHhtbENoYXIgKiljdXIpOworICAgICAgICBkZXNyZXRfeG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgKGNvbnN0IHhtbENoYXIgKiljdXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVjb3ZlckRvYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlY292ZXJGaWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFJlY292ZXJGaWxlKGZpbGVuYW1lKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVjb3ZlckZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlY292ZXJNZW1vcnkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICBjaGFyICogYnVmZmVyOyAvKiBhbiBwb2ludGVyIHRvIGEgY2hhciBhcnJheSAqLworICAgIGludCBuX2J1ZmZlcjsKKyAgICBpbnQgc2l6ZTsgLyogdGhlIHNpemUgb2YgdGhlIGFycmF5ICovCisgICAgaW50IG5fc2l6ZTsKKworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWZmZXIgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIDApOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWNvdmVyTWVtb3J5KChjb25zdCBjaGFyICopYnVmZmVyLCBzaXplKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVjb3Zlck1lbW9yeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVhQYXJzZURURCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEdGRQdHIgcmV0X3ZhbDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIHNheDsgLyogdGhlIFNBWCBoYW5kbGVyIGJsb2NrICovCisgICAgaW50IG5fc2F4OworICAgIHhtbENoYXIgKiBFeHRlcm5hbElEOyAvKiBhIE5BTUUqIGNvbnRhaW5pbmcgdGhlIEV4dGVybmFsIElEIG9mIHRoZSBEVEQgKi8KKyAgICBpbnQgbl9FeHRlcm5hbElEOworICAgIHhtbENoYXIgKiBTeXN0ZW1JRDsgLyogYSBOQU1FKiBjb250YWluaW5nIHRoZSBVUkwgdG8gdGhlIERURCAqLworICAgIGludCBuX1N5c3RlbUlEOworCisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfeG1sU0FYSGFuZGxlclB0cjtuX3NheCsrKSB7CisgICAgZm9yIChuX0V4dGVybmFsSUQgPSAwO25fRXh0ZXJuYWxJRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0V4dGVybmFsSUQrKykgeworICAgIGZvciAobl9TeXN0ZW1JRCA9IDA7bl9TeXN0ZW1JRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1N5c3RlbUlEKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc2F4ID0gZ2VuX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIDApOworICAgICAgICBFeHRlcm5hbElEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fRXh0ZXJuYWxJRCwgMSk7CisgICAgICAgIFN5c3RlbUlEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fU3lzdGVtSUQsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTQVhQYXJzZURURChzYXgsIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCk7CisgICAgICAgIGRlc3JldF94bWxEdGRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIHNheCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX0V4dGVybmFsSUQsIChjb25zdCB4bWxDaGFyICopRXh0ZXJuYWxJRCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1N5c3RlbUlELCAoY29uc3QgeG1sQ2hhciAqKVN5c3RlbUlELCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWFBhcnNlRFREIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fRXh0ZXJuYWxJRCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fU3lzdGVtSUQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYUGFyc2VEb2Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIHNheDsgLyogdGhlIFNBWCBoYW5kbGVyIGJsb2NrICovCisgICAgaW50IG5fc2F4OworICAgIHhtbENoYXIgKiBjdXI7IC8qIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyICovCisgICAgaW50IG5fY3VyOworICAgIGludCByZWNvdmVyeTsgLyogd29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm8gV2VsbCBGb3JtZWQgZG9jdW1lbnRzICovCisgICAgaW50IG5fcmVjb3Zlcnk7CisKKyAgICBmb3IgKG5fc2F4ID0gMDtuX3NheCA8IGdlbl9uYl94bWxTQVhIYW5kbGVyUHRyO25fc2F4KyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX3JlY292ZXJ5ID0gMDtuX3JlY292ZXJ5IDwgZ2VuX25iX2ludDtuX3JlY292ZXJ5KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc2F4ID0gZ2VuX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIDApOworICAgICAgICBjdXIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIDEpOworICAgICAgICByZWNvdmVyeSA9IGdlbl9pbnQobl9yZWNvdmVyeSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNBWFBhcnNlRG9jKHNheCwgKGNvbnN0IHhtbENoYXIgKiljdXIsIHJlY292ZXJ5KTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAoY29uc3QgeG1sQ2hhciAqKWN1ciwgMSk7CisgICAgICAgIGRlc19pbnQobl9yZWNvdmVyeSwgcmVjb3ZlcnksIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYUGFyc2VEb2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2F4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlY292ZXJ5KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWFBhcnNlRW50aXR5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIHJldF92YWw7CisgICAgeG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIHRoZSBTQVggaGFuZGxlciBibG9jayAqLworICAgIGludCBuX3NheDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSAqLworICAgIGludCBuX2ZpbGVuYW1lOworCisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfeG1sU0FYSGFuZGxlclB0cjtuX3NheCsrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzYXggPSBnZW5feG1sU0FYSGFuZGxlclB0cihuX3NheCwgMCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTQVhQYXJzZUVudGl0eShzYXgsIGZpbGVuYW1lKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAwKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWFBhcnNlRW50aXR5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVhQYXJzZUZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgcmV0X3ZhbDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIHNheDsgLyogdGhlIFNBWCBoYW5kbGVyIGJsb2NrICovCisgICAgaW50IG5fc2F4OworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIGZpbGVuYW1lICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgaW50IHJlY292ZXJ5OyAvKiB3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZCBkb2N1bWVudHMgKi8KKyAgICBpbnQgbl9yZWNvdmVyeTsKKworICAgIGZvciAobl9zYXggPSAwO25fc2F4IDwgZ2VuX25iX3htbFNBWEhhbmRsZXJQdHI7bl9zYXgrKykgeworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fcmVjb3ZlcnkgPSAwO25fcmVjb3ZlcnkgPCBnZW5fbmJfaW50O25fcmVjb3ZlcnkrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzYXggPSBnZW5feG1sU0FYSGFuZGxlclB0cihuX3NheCwgMCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIDEpOworICAgICAgICByZWNvdmVyeSA9IGdlbl9pbnQobl9yZWNvdmVyeSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNBWFBhcnNlRmlsZShzYXgsIGZpbGVuYW1lLCByZWNvdmVyeSk7CisgICAgICAgIGRlc3JldF94bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIHNheCwgMCk7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMSk7CisgICAgICAgIGRlc19pbnQobl9yZWNvdmVyeSwgcmVjb3ZlcnksIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYUGFyc2VGaWxlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlY292ZXJ5KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIHJldF92YWw7CisgICAgeG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIHRoZSBTQVggaGFuZGxlciBibG9jayAqLworICAgIGludCBuX3NheDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIGludCByZWNvdmVyeTsgLyogd29yayBpbiByZWNvdmVyeSBtb2RlLCBpLmUuIHRyaWVzIHRvIHJlYWQgbm8gV2VsbCBGb3JtZWQgZG9jdW1lbnRzICovCisgICAgaW50IG5fcmVjb3Zlcnk7CisgICAgdm9pZCAqIGRhdGE7IC8qIHRoZSB1c2VyZGF0YSAqLworICAgIGludCBuX2RhdGE7CisKKyAgICBmb3IgKG5fc2F4ID0gMDtuX3NheCA8IGdlbl9uYl94bWxTQVhIYW5kbGVyUHRyO25fc2F4KyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX3JlY292ZXJ5ID0gMDtuX3JlY292ZXJ5IDwgZ2VuX25iX2ludDtuX3JlY292ZXJ5KyspIHsKKyAgICBmb3IgKG5fZGF0YSA9IDA7bl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHNheCA9IGdlbl94bWxTQVhIYW5kbGVyUHRyKG5fc2F4LCAwKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMSk7CisgICAgICAgIHJlY292ZXJ5ID0gZ2VuX2ludChuX3JlY292ZXJ5LCAyKTsKKyAgICAgICAgZGF0YSA9IGdlbl91c2VyZGF0YShuX2RhdGEsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTQVhQYXJzZUZpbGVXaXRoRGF0YShzYXgsIGZpbGVuYW1lLCByZWNvdmVyeSwgZGF0YSk7CisgICAgICAgIGRlc3JldF94bWxEb2NQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIHNheCwgMCk7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMSk7CisgICAgICAgIGRlc19pbnQobl9yZWNvdmVyeSwgcmVjb3ZlcnksIDIpOworICAgICAgICBkZXNfdXNlcmRhdGEobl9kYXRhLCBkYXRhLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWFBhcnNlRmlsZVdpdGhEYXRhIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlY292ZXJ5KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVhQYXJzZU1lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbFNBWEhhbmRsZXJQdHIgc2F4OyAvKiB0aGUgU0FYIGhhbmRsZXIgYmxvY2sgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgY2hhciAqIGJ1ZmZlcjsgLyogYW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGludCBuX3NpemU7CisgICAgaW50IHJlY292ZXJ5OyAvKiB3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBub3QgV2VsbCBGb3JtZWQgZG9jdW1lbnRzICovCisgICAgaW50IG5fcmVjb3Zlcnk7CisKKyAgICBmb3IgKG5fc2F4ID0gMDtuX3NheCA8IGdlbl9uYl94bWxTQVhIYW5kbGVyUHRyO25fc2F4KyspIHsKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICBmb3IgKG5fcmVjb3ZlcnkgPSAwO25fcmVjb3ZlcnkgPCBnZW5fbmJfaW50O25fcmVjb3ZlcnkrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzYXggPSBnZW5feG1sU0FYSGFuZGxlclB0cihuX3NheCwgMCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMSk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMik7CisgICAgICAgIHJlY292ZXJ5ID0gZ2VuX2ludChuX3JlY292ZXJ5LCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU0FYUGFyc2VNZW1vcnkoc2F4LCAoY29uc3QgY2hhciAqKWJ1ZmZlciwgc2l6ZSwgcmVjb3ZlcnkpOworICAgICAgICBkZXNyZXRfeG1sRG9jUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTQVhIYW5kbGVyUHRyKG5fc2F4LCBzYXgsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAxKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDIpOworICAgICAgICBkZXNfaW50KG5fcmVjb3ZlcnksIHJlY292ZXJ5LCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWFBhcnNlTWVtb3J5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWNvdmVyeSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbFNBWEhhbmRsZXJQdHIgc2F4OyAvKiB0aGUgU0FYIGhhbmRsZXIgYmxvY2sgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgY2hhciAqIGJ1ZmZlcjsgLyogYW4gcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGludCBuX3NpemU7CisgICAgaW50IHJlY292ZXJ5OyAvKiB3b3JrIGluIHJlY292ZXJ5IG1vZGUsIGkuZS4gdHJpZXMgdG8gcmVhZCBubyBXZWxsIEZvcm1lZCBkb2N1bWVudHMgKi8KKyAgICBpbnQgbl9yZWNvdmVyeTsKKyAgICB2b2lkICogZGF0YTsgLyogdGhlIHVzZXJkYXRhICovCisgICAgaW50IG5fZGF0YTsKKworICAgIGZvciAobl9zYXggPSAwO25fc2F4IDwgZ2VuX25iX3htbFNBWEhhbmRsZXJQdHI7bl9zYXgrKykgeworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgIGZvciAobl9yZWNvdmVyeSA9IDA7bl9yZWNvdmVyeSA8IGdlbl9uYl9pbnQ7bl9yZWNvdmVyeSsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzYXggPSBnZW5feG1sU0FYSGFuZGxlclB0cihuX3NheCwgMCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMSk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMik7CisgICAgICAgIHJlY292ZXJ5ID0gZ2VuX2ludChuX3JlY292ZXJ5LCAzKTsKKyAgICAgICAgZGF0YSA9IGdlbl91c2VyZGF0YShuX2RhdGEsIDQpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhKHNheCwgKGNvbnN0IGNoYXIgKilidWZmZXIsIHNpemUsIHJlY292ZXJ5LCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fYnVmZmVyLCAoY29uc3QgY2hhciAqKWJ1ZmZlciwgMSk7CisgICAgICAgIGRlc19pbnQobl9zaXplLCBzaXplLCAyKTsKKyAgICAgICAgZGVzX2ludChuX3JlY292ZXJ5LCByZWNvdmVyeSwgMyk7CisgICAgICAgIGRlc191c2VyZGF0YShuX2RhdGEsIGRhdGEsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zYXgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1ZmZlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVjb3ZlcnkpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTQVhVc2VyUGFyc2VGaWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU0FYSGFuZGxlclB0ciBzYXg7IC8qIGEgU0FYIGhhbmRsZXIgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgdm9pZCAqIHVzZXJfZGF0YTsgLyogVGhlIHVzZXIgZGF0YSByZXR1cm5lZCBvbiBTQVggY2FsbGJhY2tzICovCisgICAgaW50IG5fdXNlcl9kYXRhOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogYSBmaWxlIG5hbWUgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKworICAgIGZvciAobl9zYXggPSAwO25fc2F4IDwgZ2VuX25iX3htbFNBWEhhbmRsZXJQdHI7bl9zYXgrKykgeworICAgIGZvciAobl91c2VyX2RhdGEgPSAwO25fdXNlcl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fdXNlcl9kYXRhKyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHNheCA9IGdlbl94bWxTQVhIYW5kbGVyUHRyKG5fc2F4LCAwKTsKKyAgICAgICAgdXNlcl9kYXRhID0gZ2VuX3VzZXJkYXRhKG5fdXNlcl9kYXRhLCAxKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMik7CisgICAgICAgIAorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICAgICAgaWYgKHNheCA9PSAoeG1sU0FYSGFuZGxlclB0cikmeG1sRGVmYXVsdFNBWEhhbmRsZXIpIHVzZXJfZGF0YSA9IE5VTEw7CisjZW5kaWYKKworCisgICAgICAgIHJldF92YWwgPSB4bWxTQVhVc2VyUGFyc2VGaWxlKHNheCwgdXNlcl9kYXRhLCBmaWxlbmFtZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIHNheCwgMCk7CisgICAgICAgIGRlc191c2VyZGF0YShuX3VzZXJfZGF0YSwgdXNlcl9kYXRhLCAxKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNBWFVzZXJQYXJzZUZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2F4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl91c2VyX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNBWFVzZXJQYXJzZU1lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNBWEhhbmRsZXJQdHIgc2F4OyAvKiBhIFNBWCBoYW5kbGVyICovCisgICAgaW50IG5fc2F4OworICAgIHZvaWQgKiB1c2VyX2RhdGE7IC8qIFRoZSB1c2VyIGRhdGEgcmV0dXJuZWQgb24gU0FYIGNhbGxiYWNrcyAqLworICAgIGludCBuX3VzZXJfZGF0YTsKKyAgICBjaGFyICogYnVmZmVyOyAvKiBhbiBpbi1tZW1vcnkgWE1MIGRvY3VtZW50IGlucHV0ICovCisgICAgaW50IG5fYnVmZmVyOworICAgIGludCBzaXplOyAvKiB0aGUgbGVuZ3RoIG9mIHRoZSBYTUwgZG9jdW1lbnQgaW4gYnl0ZXMgKi8KKyAgICBpbnQgbl9zaXplOworCisgICAgZm9yIChuX3NheCA9IDA7bl9zYXggPCBnZW5fbmJfeG1sU0FYSGFuZGxlclB0cjtuX3NheCsrKSB7CisgICAgZm9yIChuX3VzZXJfZGF0YSA9IDA7bl91c2VyX2RhdGEgPCBnZW5fbmJfdXNlcmRhdGE7bl91c2VyX2RhdGErKykgeworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzYXggPSBnZW5feG1sU0FYSGFuZGxlclB0cihuX3NheCwgMCk7CisgICAgICAgIHVzZXJfZGF0YSA9IGdlbl91c2VyZGF0YShuX3VzZXJfZGF0YSwgMSk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMik7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMyk7CisgICAgICAgIAorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICAgICAgaWYgKHNheCA9PSAoeG1sU0FYSGFuZGxlclB0cikmeG1sRGVmYXVsdFNBWEhhbmRsZXIpIHVzZXJfZGF0YSA9IE5VTEw7CisjZW5kaWYKKworCisgICAgICAgIHJldF92YWwgPSB4bWxTQVhVc2VyUGFyc2VNZW1vcnkoc2F4LCB1c2VyX2RhdGEsIChjb25zdCBjaGFyICopYnVmZmVyLCBzaXplKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAwKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fdXNlcl9kYXRhLCB1c2VyX2RhdGEsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAyKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU0FYVXNlclBhcnNlTWVtb3J5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NheCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXNlcl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTZXRGZWF0dXJlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfTEVHQUNZX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX0xFR0FDWV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1ML0hUTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBuYW1lOyAvKiB0aGUgZmVhdHVyZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB2b2lkICogdmFsdWU7IC8qIHBvaW50ZXIgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXcgdmFsdWUgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfdm9pZF9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHZhbHVlID0gZ2VuX3ZvaWRfcHRyKG5fdmFsdWUsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTZXRGZWF0dXJlKGN0eHQsIChjb25zdCBjaGFyICopbmFtZSwgdmFsdWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX25hbWUsIChjb25zdCBjaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc192b2lkX3B0cihuX3ZhbHVlLCB2YWx1ZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTZXRGZWF0dXJlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNldHVwUGFyc2VyRm9yQnVmZmVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0FYMV9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbENoYXIgKiBidWZmZXI7IC8qIGEgeG1sQ2hhciAqIGJ1ZmZlciAqLworICAgIGludCBuX2J1ZmZlcjsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIGEgZmlsZSBuYW1lICovCisgICAgaW50IG5fZmlsZW5hbWU7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgYnVmZmVyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fYnVmZmVyLCAxKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMik7CisKKyAgICAgICAgeG1sU2V0dXBQYXJzZXJGb3JCdWZmZXIoY3R4dCwgKGNvbnN0IHhtbENoYXIgKilidWZmZXIsIGZpbGVuYW1lKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9idWZmZXIsIChjb25zdCB4bWxDaGFyICopYnVmZmVyLCAxKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNldHVwUGFyc2VyRm9yQnVmZmVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1ZmZlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3RvcFBhcnNlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHhtbFN0b3BQYXJzZXIoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN0b3BQYXJzZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IHZhbDsgLyogaW50IDAgb3IgMSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2ludDtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl9pbnQobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0KHZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9wYXJzZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHBhcnNlciA6IDYxIG9mIDcwIGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQnl0ZUNvbnN1bWVkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDbGVhck5vZGVJbmZvU2VxKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDbGVhclBhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENyZWF0ZURvY1BhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENyZWF0ZVB1c2hQYXJzZXJDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDdHh0UmVhZERvYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ3R4dFJlYWRGaWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDdHh0UmVhZE1lbW9yeSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ3R4dFJlc2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDdHh0UmVzZXRQdXNoKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDdHh0VXNlT3B0aW9ucygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldEZlYXR1cmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldEZlYXR1cmVzTGlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzRmVhdHVyZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSU9QYXJzZURURCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSW5pdE5vZGVJbmZvU2VxKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJbml0UGFyc2VyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJbml0UGFyc2VyQ3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sS2VlcEJsYW5rc0RlZmF1bHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExpbmVOdW1iZXJzRGVmYXVsdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTG9hZEV4dGVybmFsRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdJT0lucHV0U3RyZWFtKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlQ2h1bmsoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlQ3R4dEV4dGVybmFsRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZURURCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VEb2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlRG9jdW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZUV4dFBhcnNlZEVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VFeHRlcm5hbEVudGl0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VGaWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZUluTm9kZUNvbnRleHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlTWVtb3J5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJBZGROb2RlSW5mbygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VyRmluZE5vZGVJbmZvKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJGaW5kTm9kZUluZm9JbmRleCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VySW5wdXRHcm93KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJJbnB1dFJlYWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBlZGFudGljUGFyc2VyRGVmYXVsdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVhZERvYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVhZEZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlYWRNZW1vcnkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlY292ZXJEb2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlY292ZXJGaWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWNvdmVyTWVtb3J5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVhQYXJzZURURCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYUGFyc2VEb2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWFBhcnNlRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVhQYXJzZUZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNBWFBhcnNlRmlsZVdpdGhEYXRhKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTQVhQYXJzZU1lbW9yeSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYUGFyc2VNZW1vcnlXaXRoRGF0YSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYVXNlclBhcnNlRmlsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU0FYVXNlclBhcnNlTWVtb3J5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2V0RmVhdHVyZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2V0dXBQYXJzZXJGb3JCdWZmZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN0b3BQYXJzZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIHBhcnNlcjogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9odG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGh0bWxQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIGEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIEhUTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlb3V0cHV0O25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZW91dHB1dChuX2ZpbGVuYW1lLCAwKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dChmaWxlbmFtZSwgKGNvbnN0IGNoYXIgKillbmNvZGluZyk7CisgICAgICAgIGRlc3JldF9odG1sUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGh0bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaHRtbEluaXRBdXRvQ2xvc2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgaHRtbEluaXRBdXRvQ2xvc2UoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gaHRtbEluaXRBdXRvQ2xvc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaW5wdXRQb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGlucHV0UG9wKGN0eHQpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VySW5wdXRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGlucHV0UG9wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfaW5wdXRQdXNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciB2YWx1ZTsgLyogdGhlIHBhcnNlciBpbnB1dCAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX3htbFBhcnNlcklucHV0UHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgdmFsdWUgPSBnZW5feG1sUGFyc2VySW5wdXRQdHIobl92YWx1ZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IGlucHV0UHVzaChjdHh0LCB2YWx1ZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbFBhcnNlcklucHV0UHRyKG5fdmFsdWUsIHZhbHVlLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIGlucHV0UHVzaCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfbmFtZVBvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IG5hbWVQb3AoY3R4dCk7CisgICAgICAgIGRlc3JldF9jb25zdF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gbmFtZVBvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X25hbWVQdXNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSBlbGVtZW50IG5hbWUgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSBuYW1lUHVzaChjdHh0LCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBuYW1lUHVzaCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3Rfbm9kZVBvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSBub2RlUG9wKGN0eHQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4gbm9kZVBvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X25vZGVQdXNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxOb2RlUHRyIHZhbHVlOyAvKiB0aGUgZWxlbWVudCBub2RlICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHZhbHVlID0gZ2VuX3htbE5vZGVQdHIobl92YWx1ZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IG5vZGVQdXNoKGN0eHQsIHZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3ZhbHVlLCB2YWx1ZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBub2RlUHVzaCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hlY2tMYW5ndWFnZUlEKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiBsYW5nOyAvKiBwb2ludGVyIHRvIHRoZSBzdHJpbmcgdmFsdWUgKi8KKyAgICBpbnQgbl9sYW5nOworCisgICAgZm9yIChuX2xhbmcgPSAwO25fbGFuZyA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2xhbmcrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBsYW5nID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbGFuZywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENoZWNrTGFuZ3VhZ2VJRCgoY29uc3QgeG1sQ2hhciAqKWxhbmcpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2xhbmcsIChjb25zdCB4bWxDaGFyICopbGFuZywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDaGVja0xhbmd1YWdlSUQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGFuZyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5Q2hhcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgbGVuOyAvKiBJZ25vcmVkLCBjb21wYXRpYmlsaXR5ICovCisgICAgaW50IG5fbGVuOworICAgIHhtbENoYXIgKiBvdXQ7IC8qIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhciAqLworICAgIGludCBuX291dDsKKyAgICBpbnQgdmFsOyAvKiB0aGUgY2hhciB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgZm9yIChuX291dCA9IDA7bl9vdXQgPCBnZW5fbmJfeG1sQ2hhcl9wdHI7bl9vdXQrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2ludDtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDApOworICAgICAgICBvdXQgPSBnZW5feG1sQ2hhcl9wdHIobl9vdXQsIDEpOworICAgICAgICB2YWwgPSBnZW5faW50KG5fdmFsLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ29weUNoYXIobGVuLCBvdXQsIHZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyKG5fb3V0LCBvdXQsIDEpOworICAgICAgICBkZXNfaW50KG5fdmFsLCB2YWwsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ29weUNoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENvcHlDaGFyTXVsdGlCeXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiBvdXQ7IC8qIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgeG1sQ2hhciAqLworICAgIGludCBuX291dDsKKyAgICBpbnQgdmFsOyAvKiB0aGUgY2hhciB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl9vdXQgPSAwO25fb3V0IDwgZ2VuX25iX3htbENoYXJfcHRyO25fb3V0KyspIHsKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl9pbnQ7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXQgPSBnZW5feG1sQ2hhcl9wdHIobl9vdXQsIDApOworICAgICAgICB2YWwgPSBnZW5faW50KG5fdmFsLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ29weUNoYXJNdWx0aUJ5dGUob3V0LCB2YWwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxDaGFyX3B0cihuX291dCwgb3V0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX3ZhbCwgdmFsLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENvcHlDaGFyTXVsdGlCeXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlckN0eHRQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogVVJMOyAvKiB0aGUgZW50aXR5IFVSTCAqLworICAgIGludCBuX1VSTDsKKyAgICB4bWxDaGFyICogSUQ7IC8qIHRoZSBlbnRpdHkgUFVCTElDIElEICovCisgICAgaW50IG5fSUQ7CisgICAgeG1sQ2hhciAqIGJhc2U7IC8qIGEgcG9zc2libGUgYmFzZSBmb3IgdGhlIHRhcmdldCBVUkkgKi8KKyAgICBpbnQgbl9iYXNlOworCisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9VUkwrKykgeworICAgIGZvciAobl9JRCA9IDA7bl9JRCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX0lEKyspIHsKKyAgICBmb3IgKG5fYmFzZSA9IDA7bl9iYXNlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fYmFzZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIFVSTCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX1VSTCwgMCk7CisgICAgICAgIElEID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fSUQsIDEpOworICAgICAgICBiYXNlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fYmFzZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENyZWF0ZUVudGl0eVBhcnNlckN0eHQoKGNvbnN0IHhtbENoYXIgKilVUkwsIChjb25zdCB4bWxDaGFyICopSUQsIChjb25zdCB4bWxDaGFyICopYmFzZSk7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJDdHh0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1VSTCwgKGNvbnN0IHhtbENoYXIgKilVUkwsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9JRCwgKGNvbnN0IHhtbENoYXIgKilJRCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2Jhc2UsIChjb25zdCB4bWxDaGFyICopYmFzZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fSUQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Jhc2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlb3V0cHV0O25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlb3V0cHV0KG5fZmlsZW5hbWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxDcmVhdGVGaWxlUGFyc2VyQ3R4dChmaWxlbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJDdHh0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlb3V0cHV0KG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENyZWF0ZUZpbGVQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciByZXRfdmFsOworICAgIGNoYXIgKiBidWZmZXI7IC8qIGEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGludCBuX3NpemU7CisKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmZmVyID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fYnVmZmVyLCAwKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnQobl9zaXplLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgc2l6ZSk7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJDdHh0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgKGNvbnN0IGNoYXIgKilidWZmZXIsIDApOworICAgICAgICBkZXNfaW50KG5fc2l6ZSwgc2l6ZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1ZmZlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ3JlYXRlVVJMUGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgb3IgVVJMICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlb3V0cHV0O25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfaW50O25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgMCk7CisgICAgICAgIG9wdGlvbnMgPSBnZW5faW50KG5fb3B0aW9ucywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENyZWF0ZVVSTFBhcnNlckN0eHQoZmlsZW5hbWUsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc19pbnQobl9vcHRpb25zLCBvcHRpb25zLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENyZWF0ZVVSTFBhcnNlckN0eHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEN1cnJlbnRDaGFyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogdGhlIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50ICogbGVuOyAvKiBwb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIGNoYXIgcmVhZCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludF9wdHI7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludF9wdHIobl9sZW4sIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDdXJyZW50Q2hhcihjdHh0LCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fbGVuLCBsZW4sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ3VycmVudENoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFcnJNZW1vcnkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNoYXIgKiBleHRyYTsgLyogZXh0cmEgaW5mb3JtYXRpb25zICovCisgICAgaW50IG5fZXh0cmE7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZXh0cmEgPSAwO25fZXh0cmEgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9leHRyYSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBleHRyYSA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2V4dHJhLCAxKTsKKworICAgICAgICB4bWxFcnJNZW1vcnkoY3R4dCwgKGNvbnN0IGNoYXIgKilleHRyYSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZXh0cmEsIChjb25zdCBjaGFyICopZXh0cmEsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRXJyTWVtb3J5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2V4dHJhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxJc0xldHRlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgYzsgLyogYW4gdW5pY29kZSBjaGFyYWN0ZXIgKGludCkgKi8KKyAgICBpbnQgbl9jOworCisgICAgZm9yIChuX2MgPSAwO25fYyA8IGdlbl9uYl9pbnQ7bl9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYyA9IGdlbl9pbnQobl9jLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sSXNMZXR0ZXIoYyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2MsIGMsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSXNMZXR0ZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxFbnRpdHlQdHIgZW50aXR5OyAvKiBhbiBFbnRpdHkgcG9pbnRlciAqLworICAgIGludCBuX2VudGl0eTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9lbnRpdHkgPSAwO25fZW50aXR5IDwgZ2VuX25iX3htbEVudGl0eVB0cjtuX2VudGl0eSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBlbnRpdHkgPSBnZW5feG1sRW50aXR5UHRyKG5fZW50aXR5LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3RW50aXR5SW5wdXRTdHJlYW0oY3R4dCwgZW50aXR5KTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlcklucHV0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxFbnRpdHlQdHIobl9lbnRpdHksIGVudGl0eSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbnRpdHkpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld0lucHV0RnJvbUZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgdG8gdXNlIGFzIGVudGl0eSAqLworICAgIGludCBuX2ZpbGVuYW1lOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0lucHV0RnJvbUZpbGUoY3R4dCwgZmlsZW5hbWUpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VySW5wdXRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld0lucHV0RnJvbUZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld0lucHV0U3RyZWFtKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdJbnB1dFN0cmVhbShjdHh0KTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlcklucHV0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdJbnB1dFN0cmVhbSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld1N0cmluZ0lucHV0U3RyZWFtKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbENoYXIgKiBidWZmZXI7IC8qIGFuIG1lbW9yeSBidWZmZXIgKi8KKyAgICBpbnQgbl9idWZmZXI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBidWZmZXIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9idWZmZXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdTdHJpbmdJbnB1dFN0cmVhbShjdHh0LCAoY29uc3QgeG1sQ2hhciAqKWJ1ZmZlcik7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJJbnB1dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9idWZmZXIsIChjb25zdCB4bWxDaGFyICopYnVmZmVyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld1N0cmluZ0lucHV0U3RyZWFtIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1ZmZlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV4dENoYXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiB0aGUgWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICB4bWxOZXh0Q2hhcihjdHh0KTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV4dENoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZXJJbnB1dFNocmluayh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbjsgLyogYW4gWE1MIHBhcnNlciBpbnB1dCAqLworICAgIGludCBuX2luOworCisgICAgZm9yIChuX2luID0gMDtuX2luIDwgZ2VuX25iX3htbFBhcnNlcklucHV0UHRyO25faW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBpbiA9IGdlbl94bWxQYXJzZXJJbnB1dFB0cihuX2luLCAwKTsKKworICAgICAgICB4bWxQYXJzZXJJbnB1dFNocmluayhpbik7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlcklucHV0UHRyKG5faW4sIGluLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlcklucHV0U2hyaW5rIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBvcElucHV0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBvcElucHV0KGN0eHQpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUG9wSW5wdXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQdXNoSW5wdXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OyAvKiBhbiBYTUwgcGFyc2VyIGlucHV0IGZyYWdtZW50IChlbnRpdHksIFhNTCBmcmFnbWVudCAuLi4pLiAqLworICAgIGludCBuX2lucHV0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2lucHV0ID0gMDtuX2lucHV0IDwgZ2VuX25iX3htbFBhcnNlcklucHV0UHRyO25faW5wdXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgaW5wdXQgPSBnZW5feG1sUGFyc2VySW5wdXRQdHIobl9pbnB1dCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFB1c2hJbnB1dChjdHh0LCBpbnB1dCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbFBhcnNlcklucHV0UHRyKG5faW5wdXQsIGlucHV0LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFB1c2hJbnB1dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbnB1dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2V0RW50aXR5UmVmZXJlbmNlRnVuYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3BsaXRRTmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIGFuIFhNTCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqKiBwcmVmaXg7IC8qIGEgeG1sQ2hhciAqKiAqLworICAgIGludCBuX3ByZWZpeDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fcHJlZml4ID0gMDtuX3ByZWZpeCA8IGdlbl9uYl94bWxDaGFyX3B0cl9wdHI7bl9wcmVmaXgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBwcmVmaXggPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5fcHJlZml4LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3BsaXRRTmFtZShjdHh0LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIHByZWZpeCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfeG1sQ2hhcl9wdHJfcHRyKG5fcHJlZml4LCBwcmVmaXgsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3BsaXRRTmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmaXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJpbmdDdXJyZW50Q2hhcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIHRoZSBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbENoYXIgKiBjdXI7IC8qIHBvaW50ZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY2hhciAqLworICAgIGludCBuX2N1cjsKKyAgICBpbnQgKiBsZW47IC8qIHBvaW50ZXIgdG8gdGhlIGxlbmd0aCBvZiB0aGUgY2hhciByZWFkICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jdXIrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludF9wdHI7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFBhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludF9wdHIobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihjdHh0LCAoY29uc3QgeG1sQ2hhciAqKWN1ciwgbGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIChjb25zdCB4bWxDaGFyICopY3VyLCAxKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJpbmdDdXJyZW50Q2hhciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cmluZ0RlY29kZUVudGl0aWVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogdGhlIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgaW5wdXQgc3RyaW5nICovCisgICAgaW50IG5fc3RyOworICAgIGludCB3aGF0OyAvKiBjb21iaW5hdGlvbiBvZiBYTUxfU1VCU1RJVFVURV9SRUYgYW5kIFhNTF9TVUJTVElUVVRFX1BFUkVGICovCisgICAgaW50IG5fd2hhdDsKKyAgICB4bWxDaGFyIGVuZDsgLyogYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUgKi8KKyAgICBpbnQgbl9lbmQ7CisgICAgeG1sQ2hhciBlbmQyOyAvKiBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZSAqLworICAgIGludCBuX2VuZDI7CisgICAgeG1sQ2hhciBlbmQzOyAvKiBhbiBlbmQgbWFya2VyIHhtbENoYXIsIDAgaWYgbm9uZSAqLworICAgIGludCBuX2VuZDM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgZm9yIChuX3doYXQgPSAwO25fd2hhdCA8IGdlbl9uYl9pbnQ7bl93aGF0KyspIHsKKyAgICBmb3IgKG5fZW5kID0gMDtuX2VuZCA8IGdlbl9uYl94bWxDaGFyO25fZW5kKyspIHsKKyAgICBmb3IgKG5fZW5kMiA9IDA7bl9lbmQyIDwgZ2VuX25iX3htbENoYXI7bl9lbmQyKyspIHsKKyAgICBmb3IgKG5fZW5kMyA9IDA7bl9lbmQzIDwgZ2VuX25iX3htbENoYXI7bl9lbmQzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMSk7CisgICAgICAgIHdoYXQgPSBnZW5faW50KG5fd2hhdCwgMik7CisgICAgICAgIGVuZCA9IGdlbl94bWxDaGFyKG5fZW5kLCAzKTsKKyAgICAgICAgZW5kMiA9IGdlbl94bWxDaGFyKG5fZW5kMiwgNCk7CisgICAgICAgIGVuZDMgPSBnZW5feG1sQ2hhcihuX2VuZDMsIDUpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdHJpbmdEZWNvZGVFbnRpdGllcyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKXN0ciwgd2hhdCwgZW5kLCBlbmQyLCBlbmQzKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDEpOworICAgICAgICBkZXNfaW50KG5fd2hhdCwgd2hhdCwgMik7CisgICAgICAgIGRlc194bWxDaGFyKG5fZW5kLCBlbmQsIDMpOworICAgICAgICBkZXNfeG1sQ2hhcihuX2VuZDIsIGVuZDIsIDQpOworICAgICAgICBkZXNfeG1sQ2hhcihuX2VuZDMsIGVuZDMsIDUpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyaW5nRGVjb2RlRW50aXRpZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93aGF0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuZDIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuZDMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJpbmdMZW5EZWNvZGVFbnRpdGllcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIHRoZSBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlIGlucHV0IHN0cmluZyAqLworICAgIGludCBuX3N0cjsKKyAgICBpbnQgbGVuOyAvKiB0aGUgc3RyaW5nIGxlbmd0aCAqLworICAgIGludCBuX2xlbjsKKyAgICBpbnQgd2hhdDsgLyogY29tYmluYXRpb24gb2YgWE1MX1NVQlNUSVRVVEVfUkVGIGFuZCBYTUxfU1VCU1RJVFVURV9QRVJFRiAqLworICAgIGludCBuX3doYXQ7CisgICAgeG1sQ2hhciBlbmQ7IC8qIGFuIGVuZCBtYXJrZXIgeG1sQ2hhciwgMCBpZiBub25lICovCisgICAgaW50IG5fZW5kOworICAgIHhtbENoYXIgZW5kMjsgLyogYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUgKi8KKyAgICBpbnQgbl9lbmQyOworICAgIHhtbENoYXIgZW5kMzsgLyogYW4gZW5kIG1hcmtlciB4bWxDaGFyLCAwIGlmIG5vbmUgKi8KKyAgICBpbnQgbl9lbmQzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX3N0ciA9IDA7bl9zdHIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgZm9yIChuX3doYXQgPSAwO25fd2hhdCA8IGdlbl9uYl9pbnQ7bl93aGF0KyspIHsKKyAgICBmb3IgKG5fZW5kID0gMDtuX2VuZCA8IGdlbl9uYl94bWxDaGFyO25fZW5kKyspIHsKKyAgICBmb3IgKG5fZW5kMiA9IDA7bl9lbmQyIDwgZ2VuX25iX3htbENoYXI7bl9lbmQyKyspIHsKKyAgICBmb3IgKG5fZW5kMyA9IDA7bl9lbmQzIDwgZ2VuX25iX3htbENoYXI7bl9lbmQzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworICAgICAgICB3aGF0ID0gZ2VuX2ludChuX3doYXQsIDMpOworICAgICAgICBlbmQgPSBnZW5feG1sQ2hhcihuX2VuZCwgNCk7CisgICAgICAgIGVuZDIgPSBnZW5feG1sQ2hhcihuX2VuZDIsIDUpOworICAgICAgICBlbmQzID0gZ2VuX3htbENoYXIobl9lbmQzLCA2KTsKKworICAgICAgICByZXRfdmFsID0geG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKilzdHIsIGxlbiwgd2hhdCwgZW5kLCBlbmQyLCBlbmQzKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICBkZXNfaW50KG5fd2hhdCwgd2hhdCwgMyk7CisgICAgICAgIGRlc194bWxDaGFyKG5fZW5kLCBlbmQsIDQpOworICAgICAgICBkZXNfeG1sQ2hhcihuX2VuZDIsIGVuZDIsIDUpOworICAgICAgICBkZXNfeG1sQ2hhcihuX2VuZDMsIGVuZDMsIDYpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3doYXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5kMik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5kMyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTd2l0Y2hFbmNvZGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIHRoZSBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsgLyogdGhlIGVuY29kaW5nIHZhbHVlIChudW1iZXIpICovCisgICAgaW50IG5fZW5jOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2VuYyA9IDA7bl9lbmMgPCBnZW5fbmJfeG1sQ2hhckVuY29kaW5nO25fZW5jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGVuYyA9IGdlbl94bWxDaGFyRW5jb2Rpbmcobl9lbmMsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTd2l0Y2hFbmNvZGluZyhjdHh0LCBlbmMpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2Rpbmcobl9lbmMsIGVuYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTd2l0Y2hFbmNvZGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN3aXRjaElucHV0RW5jb2Rpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiB0aGUgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OyAvKiB0aGUgaW5wdXQgc3RyZWFtICovCisgICAgaW50IG5faW5wdXQ7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyOyAvKiB0aGUgZW5jb2RpbmcgaGFuZGxlciAqLworICAgIGludCBuX2hhbmRsZXI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5faW5wdXQgPSAwO25faW5wdXQgPCBnZW5fbmJfeG1sUGFyc2VySW5wdXRQdHI7bl9pbnB1dCsrKSB7CisgICAgZm9yIChuX2hhbmRsZXIgPSAwO25faGFuZGxlciA8IGdlbl9uYl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyO25faGFuZGxlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBpbnB1dCA9IGdlbl94bWxQYXJzZXJJbnB1dFB0cihuX2lucHV0LCAxKTsKKyAgICAgICAgaGFuZGxlciA9IGdlbl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5faGFuZGxlciwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN3aXRjaElucHV0RW5jb2RpbmcoY3R4dCwgaW5wdXQsIGhhbmRsZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxQYXJzZXJJbnB1dFB0cihuX2lucHV0LCBpbnB1dCwgMSk7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5faGFuZGxlciwgaGFuZGxlciwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTd2l0Y2hJbnB1dEVuY29kaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2lucHV0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9oYW5kbGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3dpdGNoVG9FbmNvZGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7IC8qIHRoZSBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyOyAvKiB0aGUgZW5jb2RpbmcgaGFuZGxlciAqLworICAgIGludCBuX2hhbmRsZXI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFBhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5faGFuZGxlciA9IDA7bl9oYW5kbGVyIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI7bl9oYW5kbGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGhhbmRsZXIgPSBnZW5feG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cihuX2hhbmRsZXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTd2l0Y2hUb0VuY29kaW5nKGN0eHQsIGhhbmRsZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5faGFuZGxlciwgaGFuZGxlciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTd2l0Y2hUb0VuY29kaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2hhbmRsZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9wYXJzZXJJbnRlcm5hbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHBhcnNlckludGVybmFscyA6IDMzIG9mIDkwIGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9odG1sSW5pdEF1dG9DbG9zZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfaW5wdXRQb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X2lucHV0UHVzaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfbmFtZVBvcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfbmFtZVB1c2goKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X25vZGVQb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X25vZGVQdXNoKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDaGVja0xhbmd1YWdlSUQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlDaGFyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDb3B5Q2hhck11bHRpQnl0ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ3JlYXRlRW50aXR5UGFyc2VyQ3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENyZWF0ZVVSTFBhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEN1cnJlbnRDaGFyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxFcnJNZW1vcnkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbElzTGV0dGVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdFbnRpdHlJbnB1dFN0cmVhbSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3SW5wdXRGcm9tRmlsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3SW5wdXRTdHJlYW0oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld1N0cmluZ0lucHV0U3RyZWFtKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXh0Q2hhcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VySW5wdXRTaHJpbmsoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBvcElucHV0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQdXNoSW5wdXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNldEVudGl0eVJlZmVyZW5jZUZ1bmMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNwbGl0UU5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN0cmluZ0N1cnJlbnRDaGFyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTdHJpbmdEZWNvZGVFbnRpdGllcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyaW5nTGVuRGVjb2RlRW50aXRpZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN3aXRjaEVuY29kaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTd2l0Y2hJbnB1dEVuY29kaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTd2l0Y2hUb0VuY29kaW5nKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBwYXJzZXJJbnRlcm5hbHM6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGF0dGVybkZyb21Sb290KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxQYXR0ZXJuUHRyIGNvbXA7IC8qIHRoZSBwcmVjb21waWxlZCBwYXR0ZXJuICovCisgICAgaW50IG5fY29tcDsKKworICAgIGZvciAobl9jb21wID0gMDtuX2NvbXAgPCBnZW5fbmJfeG1sUGF0dGVyblB0cjtuX2NvbXArKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb21wID0gZ2VuX3htbFBhdHRlcm5QdHIobl9jb21wLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGF0dGVybkZyb21Sb290KGNvbXApOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXR0ZXJuUHRyKG5fY29tcCwgY29tcCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXR0ZXJuRnJvbVJvb3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29tcCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhdHRlcm5HZXRTdHJlYW1DdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXR0ZXJuTWF0Y2godm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhdHRlcm5QdHIgY29tcDsgLyogdGhlIHByZWNvbXBpbGVkIHBhdHRlcm4gKi8KKyAgICBpbnQgbl9jb21wOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogYSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9jb21wID0gMDtuX2NvbXAgPCBnZW5fbmJfeG1sUGF0dGVyblB0cjtuX2NvbXArKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb21wID0gZ2VuX3htbFBhdHRlcm5QdHIobl9jb21wLCAwKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhdHRlcm5NYXRjaChjb21wLCBub2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGF0dGVyblB0cihuX2NvbXAsIGNvbXAsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGF0dGVybk1hdGNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbXApOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGF0dGVybk1heERlcHRoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxQYXR0ZXJuUHRyIGNvbXA7IC8qIHRoZSBwcmVjb21waWxlZCBwYXR0ZXJuICovCisgICAgaW50IG5fY29tcDsKKworICAgIGZvciAobl9jb21wID0gMDtuX2NvbXAgPCBnZW5fbmJfeG1sUGF0dGVyblB0cjtuX2NvbXArKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb21wID0gZ2VuX3htbFBhdHRlcm5QdHIobl9jb21wLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGF0dGVybk1heERlcHRoKGNvbXApOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXR0ZXJuUHRyKG5fY29tcCwgY29tcCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXR0ZXJuTWF4RGVwdGgiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29tcCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhdHRlcm5NaW5EZXB0aCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUGF0dGVyblB0ciBjb21wOyAvKiB0aGUgcHJlY29tcGlsZWQgcGF0dGVybiAqLworICAgIGludCBuX2NvbXA7CisKKyAgICBmb3IgKG5fY29tcCA9IDA7bl9jb21wIDwgZ2VuX25iX3htbFBhdHRlcm5QdHI7bl9jb21wKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29tcCA9IGdlbl94bWxQYXR0ZXJuUHRyKG5fY29tcCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhdHRlcm5NaW5EZXB0aChjb21wKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGF0dGVyblB0cihuX2NvbXAsIGNvbXAsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGF0dGVybk1pbkRlcHRoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbXApOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXR0ZXJuU3RyZWFtYWJsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUGF0dGVyblB0ciBjb21wOyAvKiB0aGUgcHJlY29tcGlsZWQgcGF0dGVybiAqLworICAgIGludCBuX2NvbXA7CisKKyAgICBmb3IgKG5fY29tcCA9IDA7bl9jb21wIDwgZ2VuX25iX3htbFBhdHRlcm5QdHI7bl9jb21wKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29tcCA9IGdlbl94bWxQYXR0ZXJuUHRyKG5fY29tcCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhdHRlcm5TdHJlYW1hYmxlKGNvbXApOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXR0ZXJuUHRyKG5fY29tcCwgY29tcCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXR0ZXJuU3RyZWFtYWJsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb21wKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGF0dGVybmNvbXBpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sU3RyZWFtQ3R4dFB0ciAxCitzdGF0aWMgeG1sU3RyZWFtQ3R4dFB0ciBnZW5feG1sU3RyZWFtQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU3RyZWFtQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU3RyZWFtQ3R4dFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3RyZWFtUG9wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUEFUVEVSTl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTdHJlYW1DdHh0UHRyIHN0cmVhbTsgLyogdGhlIHN0cmVhbSBjb250ZXh0ICovCisgICAgaW50IG5fc3RyZWFtOworCisgICAgZm9yIChuX3N0cmVhbSA9IDA7bl9zdHJlYW0gPCBnZW5fbmJfeG1sU3RyZWFtQ3R4dFB0cjtuX3N0cmVhbSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0cmVhbSA9IGdlbl94bWxTdHJlYW1DdHh0UHRyKG5fc3RyZWFtLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3RyZWFtUG9wKHN0cmVhbSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFN0cmVhbUN0eHRQdHIobl9zdHJlYW0sIHN0cmVhbSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJlYW1Qb3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyZWFtKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3RyZWFtUHVzaCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW07IC8qIHRoZSBzdHJlYW0gY29udGV4dCAqLworICAgIGludCBuX3N0cmVhbTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGN1cnJlbnQgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5zOyAvKiB0aGUgbmFtZXNwYWNlIG5hbWUgKi8KKyAgICBpbnQgbl9uczsKKworICAgIGZvciAobl9zdHJlYW0gPSAwO25fc3RyZWFtIDwgZ2VuX25iX3htbFN0cmVhbUN0eHRQdHI7bl9zdHJlYW0rKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0cmVhbSA9IGdlbl94bWxTdHJlYW1DdHh0UHRyKG5fc3RyZWFtLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBucyA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25zLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3RyZWFtUHVzaChzdHJlYW0sIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKilucyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFN0cmVhbUN0eHRQdHIobl9zdHJlYW0sIHN0cmVhbSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25zLCAoY29uc3QgeG1sQ2hhciAqKW5zLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN0cmVhbVB1c2giLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyZWFtKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3RyZWFtUHVzaEF0dHIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFN0cmVhbUN0eHRQdHIgc3RyZWFtOyAvKiB0aGUgc3RyZWFtIGNvbnRleHQgKi8KKyAgICBpbnQgbl9zdHJlYW07CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBjdXJyZW50IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuczsgLyogdGhlIG5hbWVzcGFjZSBuYW1lICovCisgICAgaW50IG5fbnM7CisKKyAgICBmb3IgKG5fc3RyZWFtID0gMDtuX3N0cmVhbSA8IGdlbl9uYl94bWxTdHJlYW1DdHh0UHRyO25fc3RyZWFtKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdHJlYW0gPSBnZW5feG1sU3RyZWFtQ3R4dFB0cihuX3N0cmVhbSwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgbnMgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9ucywgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0cmVhbVB1c2hBdHRyKHN0cmVhbSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5zKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU3RyZWFtQ3R4dFB0cihuX3N0cmVhbSwgc3RyZWFtLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbnMsIChjb25zdCB4bWxDaGFyICopbnMsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyZWFtUHVzaEF0dHIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyZWFtKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3RyZWFtUHVzaE5vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9QQVRURVJOX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFN0cmVhbUN0eHRQdHIgc3RyZWFtOyAvKiB0aGUgc3RyZWFtIGNvbnRleHQgKi8KKyAgICBpbnQgbl9zdHJlYW07CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBjdXJyZW50IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuczsgLyogdGhlIG5hbWVzcGFjZSBuYW1lICovCisgICAgaW50IG5fbnM7CisgICAgaW50IG5vZGVUeXBlOyAvKiB0aGUgdHlwZSBvZiB0aGUgbm9kZSBiZWluZyBwdXNoZWQgKi8KKyAgICBpbnQgbl9ub2RlVHlwZTsKKworICAgIGZvciAobl9zdHJlYW0gPSAwO25fc3RyZWFtIDwgZ2VuX25iX3htbFN0cmVhbUN0eHRQdHI7bl9zdHJlYW0rKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9ucysrKSB7CisgICAgZm9yIChuX25vZGVUeXBlID0gMDtuX25vZGVUeXBlIDwgZ2VuX25iX2ludDtuX25vZGVUeXBlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RyZWFtID0gZ2VuX3htbFN0cmVhbUN0eHRQdHIobl9zdHJlYW0sIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIG5zID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbnMsIDIpOworICAgICAgICBub2RlVHlwZSA9IGdlbl9pbnQobl9ub2RlVHlwZSwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0cmVhbVB1c2hOb2RlKHN0cmVhbSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5zLCBub2RlVHlwZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFN0cmVhbUN0eHRQdHIobl9zdHJlYW0sIHN0cmVhbSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25zLCAoY29uc3QgeG1sQ2hhciAqKW5zLCAyKTsKKyAgICAgICAgZGVzX2ludChuX25vZGVUeXBlLCBub2RlVHlwZSwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJlYW1QdXNoTm9kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHJlYW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlVHlwZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cmVhbVdhbnRzQW55Tm9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU3RyZWFtQ3R4dFB0ciBzdHJlYW1DdHh0OyAvKiB0aGUgc3RyZWFtIGNvbnRleHQgKi8KKyAgICBpbnQgbl9zdHJlYW1DdHh0OworCisgICAgZm9yIChuX3N0cmVhbUN0eHQgPSAwO25fc3RyZWFtQ3R4dCA8IGdlbl9uYl94bWxTdHJlYW1DdHh0UHRyO25fc3RyZWFtQ3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0cmVhbUN0eHQgPSBnZW5feG1sU3RyZWFtQ3R4dFB0cihuX3N0cmVhbUN0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdHJlYW1XYW50c0FueU5vZGUoc3RyZWFtQ3R4dCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFN0cmVhbUN0eHRQdHIobl9zdHJlYW1DdHh0LCBzdHJlYW1DdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN0cmVhbVdhbnRzQW55Tm9kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHJlYW1DdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3BhdHRlcm4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHBhdHRlcm4gOiAxMCBvZiAxNSBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhdHRlcm5Gcm9tUm9vdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGF0dGVybkdldFN0cmVhbUN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhdHRlcm5NYXRjaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGF0dGVybk1heERlcHRoKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXR0ZXJuTWluRGVwdGgoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhdHRlcm5TdHJlYW1hYmxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXR0ZXJuY29tcGlsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyZWFtUG9wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTdHJlYW1QdXNoKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTdHJlYW1QdXNoQXR0cigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyZWFtUHVzaE5vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN0cmVhbVdhbnRzQW55Tm9kZSgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgcGF0dGVybjogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFJlbGF4TkdQdHIgMQorc3RhdGljIHhtbFJlbGF4TkdQdHIgZ2VuX3htbFJlbGF4TkdQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFJlbGF4TkdQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFJlbGF4TkdQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdEdW1wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgRklMRSAqIG91dHB1dDsgLyogdGhlIGZpbGUgb3V0cHV0ICovCisgICAgaW50IG5fb3V0cHV0OworICAgIHhtbFJlbGF4TkdQdHIgc2NoZW1hOyAvKiBhIHNjaGVtYSBzdHJ1Y3R1cmUgKi8KKyAgICBpbnQgbl9zY2hlbWE7CisKKyAgICBmb3IgKG5fb3V0cHV0ID0gMDtuX291dHB1dCA8IGdlbl9uYl9GSUxFX3B0cjtuX291dHB1dCsrKSB7CisgICAgZm9yIChuX3NjaGVtYSA9IDA7bl9zY2hlbWEgPCBnZW5fbmJfeG1sUmVsYXhOR1B0cjtuX3NjaGVtYSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIHNjaGVtYSA9IGdlbl94bWxSZWxheE5HUHRyKG5fc2NoZW1hLCAxKTsKKworICAgICAgICB4bWxSZWxheE5HRHVtcChvdXRwdXQsIHNjaGVtYSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fb3V0cHV0LCBvdXRwdXQsIDApOworICAgICAgICBkZXNfeG1sUmVsYXhOR1B0cihuX3NjaGVtYSwgc2NoZW1hLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlbGF4TkdEdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dHB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2NoZW1hKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdEdW1wVHJlZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBmaWxlIG91dHB1dCAqLworICAgIGludCBuX291dHB1dDsKKyAgICB4bWxSZWxheE5HUHRyIHNjaGVtYTsgLyogYSBzY2hlbWEgc3RydWN0dXJlICovCisgICAgaW50IG5fc2NoZW1hOworCisgICAgZm9yIChuX291dHB1dCA9IDA7bl9vdXRwdXQgPCBnZW5fbmJfRklMRV9wdHI7bl9vdXRwdXQrKykgeworICAgIGZvciAobl9zY2hlbWEgPSAwO25fc2NoZW1hIDwgZ2VuX25iX3htbFJlbGF4TkdQdHI7bl9zY2hlbWErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXRwdXQgPSBnZW5fRklMRV9wdHIobl9vdXRwdXQsIDApOworICAgICAgICBzY2hlbWEgPSBnZW5feG1sUmVsYXhOR1B0cihuX3NjaGVtYSwgMSk7CisKKyAgICAgICAgeG1sUmVsYXhOR0R1bXBUcmVlKG91dHB1dCwgc2NoZW1hKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfRklMRV9wdHIobl9vdXRwdXQsIG91dHB1dCwgMCk7CisgICAgICAgIGRlc194bWxSZWxheE5HUHRyKG5fc2NoZW1hLCBzY2hlbWEsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVsYXhOR0R1bXBUcmVlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dHB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2NoZW1hKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgMQorc3RhdGljIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIGdlbl94bWxSZWxheE5HUGFyc2VyQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuY19wdHIgMQorc3RhdGljIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyAqIGdlbl94bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmNfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmNfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMgKiB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuY19wdHIgMQorc3RhdGljIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jICogZ2VuX3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmNfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhIFJlbGF4LU5HIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jICogZXJyOyAvKiB0aGUgZXJyb3IgY2FsbGJhY2sgcmVzdWx0ICovCisgICAgaW50IG5fZXJyOworICAgIHhtbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jICogd2FybjsgLyogdGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0ICovCisgICAgaW50IG5fd2FybjsKKyAgICB2b2lkICoqIGN0eDsgLyogY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzIHJlc3VsdCAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUmVsYXhOR1BhcnNlckN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZXJyID0gMDtuX2VyciA8IGdlbl9uYl94bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmNfcHRyO25fZXJyKyspIHsKKyAgICBmb3IgKG5fd2FybiA9IDA7bl93YXJuIDwgZ2VuX25iX3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cjtuX3dhcm4rKykgeworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyX3B0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUmVsYXhOR1BhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZXJyID0gZ2VuX3htbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuY19wdHIobl9lcnIsIDEpOworICAgICAgICB3YXJuID0gZ2VuX3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cihuX3dhcm4sIDIpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHJfcHRyKG5fY3R4LCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVsYXhOR0dldFBhcnNlckVycm9ycyhjdHh0LCBlcnIsIHdhcm4sIGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFJlbGF4TkdQYXJzZXJDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmNfcHRyKG5fZXJyLCBlcnIsIDEpOworICAgICAgICBkZXNfeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmNfcHRyKG5fd2Fybiwgd2FybiwgMik7CisgICAgICAgIGRlc192b2lkX3B0cl9wdHIobl9jdHgsIGN0eCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Vycik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd2Fybik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxSZWxheE5HVmFsaWRDdHh0UHRyIDEKK3N0YXRpYyB4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGdlbl94bWxSZWxheE5HVmFsaWRDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxSZWxheE5HVmFsaWRDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxSZWxheE5HVmFsaWRDdHh0UHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxSZWxheE5HR2V0VmFsaWRFcnJvcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dDsgLyogYSBSZWxheC1ORyB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbFJlbGF4TkdWYWxpZGl0eUVycm9yRnVuYyAqIGVycjsgLyogdGhlIGVycm9yIGZ1bmN0aW9uIHJlc3VsdCAqLworICAgIGludCBuX2VycjsKKyAgICB4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYyAqIHdhcm47IC8qIHRoZSB3YXJuaW5nIGZ1bmN0aW9uIHJlc3VsdCAqLworICAgIGludCBuX3dhcm47CisgICAgdm9pZCAqKiBjdHg7IC8qIHRoZSBmdW5jdGlvbnMgY29udGV4dCByZXN1bHQgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFJlbGF4TkdWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZXJyID0gMDtuX2VyciA8IGdlbl9uYl94bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmNfcHRyO25fZXJyKyspIHsKKyAgICBmb3IgKG5fd2FybiA9IDA7bl93YXJuIDwgZ2VuX25iX3htbFJlbGF4TkdWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cjtuX3dhcm4rKykgeworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyX3B0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBlcnIgPSBnZW5feG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jX3B0cihuX2VyciwgMSk7CisgICAgICAgIHdhcm4gPSBnZW5feG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmNfcHRyKG5fd2FybiwgMik7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cl9wdHIobl9jdHgsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMoY3R4dCwgZXJyLCB3YXJuLCBjdHgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxSZWxheE5HVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmNfcHRyKG5fZXJyLCBlcnIsIDEpOworICAgICAgICBkZXNfeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmNfcHRyKG5fd2Fybiwgd2FybiwgMik7CisgICAgICAgIGRlc192b2lkX3B0cl9wdHIobl9jdHgsIGN0eCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZXJyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93YXJuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWxheE5HSW5pdFR5cGVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HSW5pdFR5cGVzKCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlbGF4TkdJbml0VHlwZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVsYXhOR05ld0RvY1BhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFJlbGF4TkdQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBwcmVwYXJzZWQgZG9jdW1lbnQgdHJlZSAqLworICAgIGludCBuX2RvYzsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dChkb2MpOworICAgICAgICBkZXNyZXRfeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdOZXdNZW1QYXJzZXJDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciByZXRfdmFsOworICAgIGNoYXIgKiBidWZmZXI7IC8qIGEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgY29udGFpbmluZyB0aGUgc2NoZW1hcyAqLworICAgIGludCBuX2J1ZmZlcjsKKyAgICBpbnQgc2l6ZTsgLyogdGhlIHNpemUgb2YgdGhlIGFycmF5ICovCisgICAgaW50IG5fc2l6ZTsKKworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWZmZXIgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIDApOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgc2l6ZSk7CisgICAgICAgIGRlc3JldF94bWxSZWxheE5HUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdOZXdQYXJzZXJDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciByZXRfdmFsOworICAgIGNoYXIgKiBVUkw7IC8qIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hICovCisgICAgaW50IG5fVVJMOworCisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9VUkwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkwgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9VUkwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HTmV3UGFyc2VyQ3R4dCgoY29uc3QgY2hhciAqKVVSTCk7CisgICAgICAgIGRlc3JldF94bWxSZWxheE5HUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9VUkwsIChjb25zdCBjaGFyICopVVJMLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlbGF4TkdOZXdQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdOZXdWYWxpZEN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdQYXJzZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdTZXRWYWxpZEVycm9ycyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVsYXhOR1ZhbGlkYXRlRG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIGEgUmVsYXgtTkcgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIHBhcnNlZCBkb2N1bWVudCB0cmVlICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxSZWxheE5HVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxSZWxheE5HVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HVmFsaWRhdGVEb2MoY3R4dCwgZG9jKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVsYXhOR1ZhbGlkYXRlRG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgZWxlbTsgLyogYW4gZWxlbWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2VsZW07CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFJlbGF4TkdWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFJlbGF4TkdWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudChjdHh0LCBkb2MsIGVsZW0pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxSZWxheE5HVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgZWxlbTsgLyogYW4gZWxlbWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2VsZW07CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFJlbGF4TkdWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFJlbGF4TkdWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HVmFsaWRhdGVQb3BFbGVtZW50KGN0eHQsIGRvYywgZWxlbSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFJlbGF4TkdWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9lbGVtLCBlbGVtLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFJlbGF4TkdWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxDaGFyICogZGF0YTsgLyogc29tZSBjaGFyYWN0ZXIgZGF0YSByZWFkICovCisgICAgaW50IG5fZGF0YTsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbGVuZ2h0IG9mIHRoZSBkYXRhICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxSZWxheE5HVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2RhdGErKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUmVsYXhOR1ZhbGlkQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBkYXRhID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fZGF0YSwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEoY3R4dCwgKGNvbnN0IHhtbENoYXIgKilkYXRhLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxSZWxheE5HVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2RhdGEsIChjb25zdCB4bWxDaGFyICopZGF0YSwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWxheE5HVmFsaWRhdGVQdXNoQ0RhdGEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgZWxlbTsgLyogYW4gZWxlbWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2VsZW07CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFJlbGF4TkdWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFJlbGF4TkdWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudChjdHh0LCBkb2MsIGVsZW0pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxSZWxheE5HVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlbGF4UGFyc2VyU2V0RmxhZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dDsgLyogYSBSZWxheE5HIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgZmxhZ3M7IC8qIGEgc2V0IG9mIGZsYWdzIHZhbHVlcyAqLworICAgIGludCBuX2ZsYWdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxSZWxheE5HUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9mbGFncyA9IDA7bl9mbGFncyA8IGdlbl9uYl9pbnQ7bl9mbGFncysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sUmVsYXhOR1BhcnNlckN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZmxhZ3MgPSBnZW5faW50KG5fZmxhZ3MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWxheFBhcnNlclNldEZsYWcoY3R4dCwgZmxhZ3MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxSZWxheE5HUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fZmxhZ3MsIGZsYWdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlbGF4UGFyc2VyU2V0RmxhZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mbGFncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfcmVsYXhuZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgcmVsYXhuZyA6IDE0IG9mIDI0IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVsYXhOR0R1bXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdEdW1wVHJlZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVsYXhOR0dldFBhcnNlckVycm9ycygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVsYXhOR0dldFZhbGlkRXJyb3JzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWxheE5HSW5pdFR5cGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWxheE5HTmV3RG9jUGFyc2VyQ3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVsYXhOR05ld01lbVBhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdOZXdQYXJzZXJDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWxheE5HTmV3VmFsaWRDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWxheE5HUGFyc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdWYWxpZGF0ZURvYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVsYXhOR1ZhbGlkYXRlRnVsbEVsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVsYXhOR1ZhbGlkYXRlUHVzaEVsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlbGF4UGFyc2VyU2V0RmxhZygpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgcmVsYXhuZzogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KK3N0YXRpYyBpbnQKK3Rlc3Rfc2NoZW1hc0ludGVybmFscyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3Rpbmcgc2NoZW1hc0ludGVybmFscyA6IDAgb2YgMiBmdW5jdGlvbnMgLi4uXG4iKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIHNjaGVtYXNJbnRlcm5hbHM6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hdHJvbk5ld0RvY1BhcnNlckN0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYXRyb25OZXdNZW1QYXJzZXJDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWF0cm9uTmV3UGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjaWZkZWYgTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxTY2hlbWF0cm9uUHRyIDEKK3N0YXRpYyB4bWxTY2hlbWF0cm9uUHRyIGdlbl94bWxTY2hlbWF0cm9uUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxTY2hlbWF0cm9uUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTY2hlbWF0cm9uUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyIDEKK3N0YXRpYyB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBnZW5feG1sU2NoZW1hdHJvblBhcnNlckN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFNjaGVtYXRyb25QYXJzZXJDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hdHJvblBhcnNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgMQorc3RhdGljIHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgZ2VuX3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYXRyb25TZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYXRyb25WYWxpZGF0ZURvYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2NoZW1hdHJvblZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGluc3RhbmNlOyAvKiB0aGUgZG9jdW1lbnQgaW5zdGFjZSB0cmVlICovCisgICAgaW50IG5faW5zdGFuY2U7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5faW5zdGFuY2UgPSAwO25faW5zdGFuY2UgPCBnZW5fbmJfeG1sRG9jUHRyO25faW5zdGFuY2UrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgaW5zdGFuY2UgPSBnZW5feG1sRG9jUHRyKG5faW5zdGFuY2UsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MoY3R4dCwgaW5zdGFuY2UpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTY2hlbWF0cm9uVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9pbnN0YW5jZSwgaW5zdGFuY2UsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luc3RhbmNlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF9zY2hlbWF0cm9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyBzY2hlbWF0cm9uIDogMSBvZiAxMCBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYXRyb25QYXJzZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSBzY2hlbWF0cm9uOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbEFkZENoaWxkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHBhcmVudDsgLyogdGhlIHBhcmVudCBub2RlICovCisgICAgaW50IG5fcGFyZW50OworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY2hpbGQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9wYXJlbnQgPSAwO25fcGFyZW50IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9wYXJlbnQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHJfaW47bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwYXJlbnQgPSBnZW5feG1sTm9kZVB0cihuX3BhcmVudCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyX2luKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQWRkQ2hpbGQocGFyZW50LCBjdXIpOworICAgICAgICBpZiAocmV0X3ZhbCA9PSBOVUxMKSB7IHhtbEZyZWVOb2RlKGN1cikgOyBjdXIgPSBOVUxMIDsgfQorICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3BhcmVudCwgcGFyZW50LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHJfaW4obl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxBZGRDaGlsZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wYXJlbnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQWRkQ2hpbGRMaXN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHBhcmVudDsgLyogdGhlIHBhcmVudCBub2RlICovCisgICAgaW50IG5fcGFyZW50OworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdCAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9wYXJlbnQgPSAwO25fcGFyZW50IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9wYXJlbnQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHJfaW47bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwYXJlbnQgPSBnZW5feG1sTm9kZVB0cihuX3BhcmVudCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyX2luKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQWRkQ2hpbGRMaXN0KHBhcmVudCwgY3VyKTsKKyAgICAgICAgaWYgKHJldF92YWwgPT0gTlVMTCkgeyB4bWxGcmVlTm9kZUxpc3QoY3VyKSA7IGN1ciA9IE5VTEwgOyB9CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fcGFyZW50LCBwYXJlbnQsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cl9pbihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEFkZENoaWxkTGlzdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wYXJlbnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQWRkTmV4dFNpYmxpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY2hpbGQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxOb2RlUHRyIGVsZW07IC8qIHRoZSBuZXcgbm9kZSAqLworICAgIGludCBuX2VsZW07CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbE5vZGVQdHJfaW47bl9lbGVtKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDApOworICAgICAgICBlbGVtID0gZ2VuX3htbE5vZGVQdHJfaW4obl9lbGVtLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQWRkTmV4dFNpYmxpbmcoY3VyLCBlbGVtKTsKKyAgICAgICAgaWYgKHJldF92YWwgPT0gTlVMTCkgeyB4bWxGcmVlTm9kZShlbGVtKSA7IGVsZW0gPSBOVUxMIDsgfQorICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHJfaW4obl9lbGVtLCBlbGVtLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEFkZE5leHRTaWJsaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQWRkUHJldlNpYmxpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBjaGlsZCBub2RlICovCisgICAgaW50IG5fY3VyOworICAgIHhtbE5vZGVQdHIgZWxlbTsgLyogdGhlIG5ldyBub2RlICovCisgICAgaW50IG5fZWxlbTsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cl9pbjtuX2VsZW0rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMCk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cl9pbihuX2VsZW0sIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxBZGRQcmV2U2libGluZyhjdXIsIGVsZW0pOworICAgICAgICBpZiAocmV0X3ZhbCA9PSBOVUxMKSB7IHhtbEZyZWVOb2RlKGVsZW0pIDsgZWxlbSA9IE5VTEwgOyB9CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cl9pbihuX2VsZW0sIGVsZW0sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQWRkUHJldlNpYmxpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEFkZFNpYmxpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY2hpbGQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxOb2RlUHRyIGVsZW07IC8qIHRoZSBuZXcgbm9kZSAqLworICAgIGludCBuX2VsZW07CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbE5vZGVQdHJfaW47bl9lbGVtKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDApOworICAgICAgICBlbGVtID0gZ2VuX3htbE5vZGVQdHJfaW4obl9lbGVtLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQWRkU2libGluZyhjdXIsIGVsZW0pOworICAgICAgICBpZiAocmV0X3ZhbCA9PSBOVUxMKSB7IHhtbEZyZWVOb2RlKGVsZW0pIDsgZWxlbSA9IE5VTEwgOyB9CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cl9pbihuX2VsZW0sIGVsZW0sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQWRkU2libGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEF0dHJTZXJpYWxpemVUeHRDb250ZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQXR0clB0ciBhdHRyOyAvKiB0aGUgYXR0cmlidXRlIG5vZGUgKi8KKyAgICBpbnQgbl9hdHRyOworICAgIHhtbENoYXIgKiBzdHJpbmc7IC8qIHRoZSB0ZXh0IGNvbnRlbnQgKi8KKyAgICBpbnQgbl9zdHJpbmc7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2F0dHIgPSAwO25fYXR0ciA8IGdlbl9uYl94bWxBdHRyUHRyO25fYXR0cisrKSB7CisgICAgZm9yIChuX3N0cmluZyA9IDA7bl9zdHJpbmcgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHJpbmcrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGF0dHIgPSBnZW5feG1sQXR0clB0cihuX2F0dHIsIDIpOworICAgICAgICBzdHJpbmcgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHJpbmcsIDMpOworCisgICAgICAgIHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50KGJ1ZiwgZG9jLCBhdHRyLCAoY29uc3QgeG1sQ2hhciAqKXN0cmluZyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgZGVzX3htbEF0dHJQdHIobl9hdHRyLCBhdHRyLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyaW5nLCAoY29uc3QgeG1sQ2hhciAqKXN0cmluZywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXR0cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxCdWZmZXJBZGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogdGhlIGJ1ZmZlciB0byBkdW1wICovCisgICAgaW50IG5fYnVmOworICAgIHhtbENoYXIgKiBzdHI7IC8qIHRoZSAjeG1sQ2hhciBzdHJpbmcgKi8KKyAgICBpbnQgbl9zdHI7CisgICAgaW50IGxlbjsgLyogdGhlIG51bWJlciBvZiAjeG1sQ2hhciB0byBhZGQgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1ZmZlckFkZChidWYsIChjb25zdCB4bWxDaGFyICopc3RyLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQnVmZmVyQWRkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxCdWZmZXJBZGRIZWFkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBidWZmZXIgKi8KKyAgICBpbnQgbl9idWY7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlICN4bWxDaGFyIHN0cmluZyAqLworICAgIGludCBuX3N0cjsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbnVtYmVyIG9mICN4bWxDaGFyIHRvIGFkZCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX3N0ciA9IDA7bl9zdHIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZiA9IGdlbl94bWxCdWZmZXJQdHIobl9idWYsIDApOworICAgICAgICBzdHIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sQnVmZmVyQWRkSGVhZChidWYsIChjb25zdCB4bWxDaGFyICopc3RyLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQnVmZmVyQWRkSGVhZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyQ0NhdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxCdWZmZXJQdHIgYnVmOyAvKiB0aGUgYnVmZmVyIHRvIGR1bXAgKi8KKyAgICBpbnQgbl9idWY7CisgICAgY2hhciAqIHN0cjsgLyogdGhlIEMgY2hhciBzdHJpbmcgKi8KKyAgICBpbnQgbl9zdHI7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fc3RyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX3N0ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1ZmZlckNDYXQoYnVmLCAoY29uc3QgY2hhciAqKXN0cik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fc3RyLCAoY29uc3QgY2hhciAqKXN0ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxCdWZmZXJDQ2F0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxCdWZmZXJDYXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogdGhlIGJ1ZmZlciB0byBhZGQgdG8gKi8KKyAgICBpbnQgbl9idWY7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlICN4bWxDaGFyIHN0cmluZyAqLworICAgIGludCBuX3N0cjsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX3N0ciA9IDA7bl9zdHIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQnVmZmVyQ2F0KGJ1ZiwgKGNvbnN0IHhtbENoYXIgKilzdHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQnVmZmVyQ2F0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfY29uc3RfeG1sQnVmZmVyUHRyIDEKK3N0YXRpYyB4bWxCdWZmZXJQdHIgZ2VuX2NvbnN0X3htbEJ1ZmZlclB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfY29uc3RfeG1sQnVmZmVyUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxCdWZmZXJQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyQ29udGVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxCdWZmZXJQdHIgYnVmOyAvKiB0aGUgYnVmZmVyICovCisgICAgaW50IG5fYnVmOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfY29uc3RfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX2NvbnN0X3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1ZmZlckNvbnRlbnQoKGNvbnN0IHhtbEJ1ZmZlclB0cilidWYpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbEJ1ZmZlclB0cihuX2J1ZiwgKGNvbnN0IHhtbEJ1ZmZlclB0cilidWYsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQnVmZmVyQ29udGVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyQ3JlYXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciByZXRfdmFsOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgICAgICBkZXNyZXRfeG1sQnVmZmVyUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxCdWZmZXJDcmVhdGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEJ1ZmZlckNyZWF0ZVNpemUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEJ1ZmZlckNyZWF0ZVN0YXRpYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyRW1wdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogdGhlIGJ1ZmZlciAqLworICAgIGludCBuX2J1ZjsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZiA9IGdlbl94bWxCdWZmZXJQdHIobl9idWYsIDApOworCisgICAgICAgIHhtbEJ1ZmZlckVtcHR5KGJ1Zik7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJ1ZmZlckVtcHR5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxCdWZmZXJHcm93KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBidWZmZXIgKi8KKyAgICBpbnQgbl9idWY7CisgICAgdW5zaWduZWQgaW50IGxlbjsgLyogdGhlIG1pbmltdW0gZnJlZSBzaXplIHRvIGFsbG9jYXRlICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl91bnNpZ25lZF9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgbGVuID0gZ2VuX3Vuc2lnbmVkX2ludChuX2xlbiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1ZmZlckdyb3coYnVmLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc191bnNpZ25lZF9pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxCdWZmZXJHcm93IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxCdWZmZXJMZW5ndGgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogdGhlIGJ1ZmZlciAqLworICAgIGludCBuX2J1ZjsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX2NvbnN0X3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZiA9IGdlbl9jb25zdF94bWxCdWZmZXJQdHIobl9idWYsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxCdWZmZXJMZW5ndGgoKGNvbnN0IHhtbEJ1ZmZlclB0cilidWYpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxCdWZmZXJQdHIobl9idWYsIChjb25zdCB4bWxCdWZmZXJQdHIpYnVmLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJ1ZmZlckxlbmd0aCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyUmVzaXplKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBidWZmZXIgdG8gcmVzaXplICovCisgICAgaW50IG5fYnVmOworICAgIHVuc2lnbmVkIGludCBzaXplOyAvKiB0aGUgZGVzaXJlZCBzaXplICovCisgICAgaW50IG5fc2l6ZTsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl91bnNpZ25lZF9pbnQ7bl9zaXplKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIHNpemUgPSBnZW5fdW5zaWduZWRfaW50KG5fc2l6ZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1ZmZlclJlc2l6ZShidWYsIHNpemUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc191bnNpZ25lZF9pbnQobl9zaXplLCBzaXplLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJ1ZmZlclJlc2l6ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogdGhlIGJ1ZmZlciB0byB0dW5lICovCisgICAgaW50IG5fYnVmOworICAgIHhtbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUgc2NoZW1lOyAvKiBhbGxvY2F0aW9uIHNjaGVtZSB0byB1c2UgKi8KKyAgICBpbnQgbl9zY2hlbWU7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9zY2hlbWUgPSAwO25fc2NoZW1lIDwgZ2VuX25iX3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU7bl9zY2hlbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgc2NoZW1lID0gZ2VuX3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUobl9zY2hlbWUsIDEpOworCisgICAgICAgIHhtbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUoYnVmLCBzY2hlbWUpOworICAgICAgICBpZiAoKGJ1ZiAhPSBOVUxMKSAmJiAoc2NoZW1lID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSAmJiAoYnVmLT5jb250ZW50ICE9IE5VTEwpICYmIChidWYtPmNvbnRlbnQgIT0gc3RhdGljX2J1Zl9jb250ZW50KSkgeyB4bWxGcmVlKGJ1Zi0+Y29udGVudCk7IGJ1Zi0+Y29udGVudCA9IE5VTEw7fQorICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc194bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lKG5fc2NoZW1lLCBzY2hlbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NjaGVtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyU2hyaW5rKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBidWZmZXIgdG8gZHVtcCAqLworICAgIGludCBuX2J1ZjsKKyAgICB1bnNpZ25lZCBpbnQgbGVuOyAvKiB0aGUgbnVtYmVyIG9mIHhtbENoYXIgdG8gcmVtb3ZlICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl91bnNpZ25lZF9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgbGVuID0gZ2VuX3Vuc2lnbmVkX2ludChuX2xlbiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1ZmZlclNocmluayhidWYsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3Vuc2lnbmVkX2ludChuX2xlbiwgbGVuLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJ1ZmZlclNocmluayIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyV3JpdGVDSEFSKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyICovCisgICAgaW50IG5fYnVmOworICAgIHhtbENoYXIgKiBzdHJpbmc7IC8qIHRoZSBzdHJpbmcgdG8gYWRkICovCisgICAgaW50IG5fc3RyaW5nOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fc3RyaW5nID0gMDtuX3N0cmluZyA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cmluZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZiA9IGdlbl94bWxCdWZmZXJQdHIobl9idWYsIDApOworICAgICAgICBzdHJpbmcgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHJpbmcsIDEpOworCisgICAgICAgIHhtbEJ1ZmZlcldyaXRlQ0hBUihidWYsIChjb25zdCB4bWxDaGFyICopc3RyaW5nKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHJpbmcsIChjb25zdCB4bWxDaGFyICopc3RyaW5nLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJ1ZmZlcldyaXRlQ0hBUiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cmluZyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQnVmZmVyV3JpdGVDaGFyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICBjaGFyICogc3RyaW5nOyAvKiB0aGUgc3RyaW5nIHRvIGFkZCAqLworICAgIGludCBuX3N0cmluZzsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX3N0cmluZyA9IDA7bl9zdHJpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9zdHJpbmcrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgc3RyaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fc3RyaW5nLCAxKTsKKworICAgICAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAoY29uc3QgY2hhciAqKXN0cmluZyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fc3RyaW5nLCAoY29uc3QgY2hhciAqKXN0cmluZywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxCdWZmZXJXcml0ZUNoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHJpbmcpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxDaGFyICogc3RyaW5nOyAvKiB0aGUgc3RyaW5nIHRvIGFkZCAqLworICAgIGludCBuX3N0cmluZzsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX3N0cmluZyA9IDA7bl9zdHJpbmcgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHJpbmcrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgc3RyaW5nID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyaW5nLCAxKTsKKworICAgICAgICB4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyhidWYsIChjb25zdCB4bWxDaGFyICopc3RyaW5nKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHJpbmcsIChjb25zdCB4bWxDaGFyICopc3RyaW5nLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxCdWlsZFFOYW1lKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBuY25hbWU7IC8qIHRoZSBOYW1lICovCisgICAgaW50IG5fbmNuYW1lOworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIHRoZSBwcmVmaXggKi8KKyAgICBpbnQgbl9wcmVmaXg7CisgICAgeG1sQ2hhciAqIG1lbW9yeTsgLyogcHJlYWxsb2NhdGVkIG1lbW9yeSAqLworICAgIGludCBuX21lbW9yeTsKKyAgICBpbnQgbGVuOyAvKiBwcmVhbGxvY2F0ZWQgbWVtb3J5IGxlbmd0aCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9uY25hbWUgPSAwO25fbmNuYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmNuYW1lKyspIHsKKyAgICBmb3IgKG5fcHJlZml4ID0gMDtuX3ByZWZpeCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ByZWZpeCsrKSB7CisgICAgZm9yIChuX21lbW9yeSA9IDA7bl9tZW1vcnkgPCBnZW5fbmJfeG1sQ2hhcl9wdHI7bl9tZW1vcnkrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5jbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25jbmFtZSwgMCk7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMSk7CisgICAgICAgIG1lbW9yeSA9IGdlbl94bWxDaGFyX3B0cihuX21lbW9yeSwgMik7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxCdWlsZFFOYW1lKChjb25zdCB4bWxDaGFyICopbmNuYW1lLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgbWVtb3J5LCBsZW4pOworICAgICAgICBpZiAoKHJldF92YWwgIT0gTlVMTCkgJiYgKHJldF92YWwgIT0gbmNuYW1lKSAmJgorICAgICAgICAgICAgICAocmV0X3ZhbCAhPSBwcmVmaXgpICYmIChyZXRfdmFsICE9IG1lbW9yeSkpCisgICAgICAgICAgICAgIHhtbEZyZWUocmV0X3ZhbCk7CisJICByZXRfdmFsID0gTlVMTDsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25jbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluY25hbWUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAxKTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyKG5fbWVtb3J5LCBtZW1vcnksIDIpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQnVpbGRRTmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uY25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbWVtb3J5KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hpbGRFbGVtZW50Q291bnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHVuc2lnbmVkIGxvbmcgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHBhcmVudDsgLyogdGhlIHBhcmVudCBub2RlICovCisgICAgaW50IG5fcGFyZW50OworCisgICAgZm9yIChuX3BhcmVudCA9IDA7bl9wYXJlbnQgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX3BhcmVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHBhcmVudCA9IGdlbl94bWxOb2RlUHRyKG5fcGFyZW50LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ2hpbGRFbGVtZW50Q291bnQocGFyZW50KTsKKyAgICAgICAgZGVzcmV0X3Vuc2lnbmVkX2xvbmcocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9wYXJlbnQsIHBhcmVudCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDaGlsZEVsZW1lbnRDb3VudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wYXJlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5RG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICBpbnQgcmVjdXJzaXZlOyAvKiBpZiBub3QgemVybyBkbyBhIHJlY3Vyc2l2ZSBjb3B5LiAqLworICAgIGludCBuX3JlY3Vyc2l2ZTsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX3JlY3Vyc2l2ZSA9IDA7bl9yZWN1cnNpdmUgPCBnZW5fbmJfaW50O25fcmVjdXJzaXZlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIHJlY3Vyc2l2ZSA9IGdlbl9pbnQobl9yZWN1cnNpdmUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDb3B5RG9jKGRvYywgcmVjdXJzaXZlKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfaW50KG5fcmVjdXJzaXZlLCByZWN1cnNpdmUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ29weURvYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlY3Vyc2l2ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5RHRkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEdGRQdHIgcmV0X3ZhbDsKKyAgICB4bWxEdGRQdHIgZHRkOyAvKiB0aGUgZHRkICovCisgICAgaW50IG5fZHRkOworCisgICAgZm9yIChuX2R0ZCA9IDA7bl9kdGQgPCBnZW5fbmJfeG1sRHRkUHRyO25fZHRkKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZHRkID0gZ2VuX3htbER0ZFB0cihuX2R0ZCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENvcHlEdGQoZHRkKTsKKyAgICAgICAgZGVzcmV0X3htbER0ZFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRHRkUHRyKG5fZHRkLCBkdGQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ29weUR0ZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kdGQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5TmFtZXNwYWNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5zUHRyIHJldF92YWw7CisgICAgeG1sTnNQdHIgY3VyOyAvKiB0aGUgbmFtZXNwYWNlICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTnNQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5feG1sTnNQdHIobl9jdXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxDb3B5TmFtZXNwYWNlKGN1cik7CisgICAgICAgIGlmIChyZXRfdmFsICE9IE5VTEwpIHhtbEZyZWVOcyhyZXRfdmFsKTsKKyAgICAgICAgZGVzcmV0X3htbE5zUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOc1B0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENvcHlOYW1lc3BhY2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENvcHlOYW1lc3BhY2VMaXN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5zUHRyIHJldF92YWw7CisgICAgeG1sTnNQdHIgY3VyOyAvKiB0aGUgZmlyc3QgbmFtZXNwYWNlICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTnNQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5feG1sTnNQdHIobl9jdXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxDb3B5TmFtZXNwYWNlTGlzdChjdXIpOworICAgICAgICBpZiAocmV0X3ZhbCAhPSBOVUxMKSB4bWxGcmVlTnNMaXN0KHJldF92YWwpOworICAgICAgICBkZXNyZXRfeG1sTnNQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5zUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ29weU5hbWVzcGFjZUxpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENvcHlOb2RlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICBpbnQgZXh0ZW5kZWQ7IC8qIGlmIDEgZG8gYSByZWN1cnNpdmUgY29weSAocHJvcGVydGllcywgbmFtZXNwYWNlcyBhbmQgY2hpbGRyZW4gd2hlbiBhcHBsaWNhYmxlKSBpZiAyIGNvcHkgcHJvcGVydGllcyBhbmQgbmFtZXNwYWNlcyAod2hlbiBhcHBsaWNhYmxlKSAqLworICAgIGludCBuX2V4dGVuZGVkOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl9jb25zdF94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2V4dGVuZGVkID0gMDtuX2V4dGVuZGVkIDwgZ2VuX25iX2ludDtuX2V4dGVuZGVkKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl9jb25zdF94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisgICAgICAgIGV4dGVuZGVkID0gZ2VuX2ludChuX2V4dGVuZGVkLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ29weU5vZGUoKGNvbnN0IHhtbE5vZGVQdHIpbm9kZSwgZXh0ZW5kZWQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sTm9kZVB0cihuX25vZGUsIChjb25zdCB4bWxOb2RlUHRyKW5vZGUsIDApOworICAgICAgICBkZXNfaW50KG5fZXh0ZW5kZWQsIGV4dGVuZGVkLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENvcHlOb2RlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2V4dGVuZGVkKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5Tm9kZUxpc3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIGZpcnN0IG5vZGUgaW4gdGhlIGxpc3QuICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfY29uc3RfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX2NvbnN0X3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ29weU5vZGVMaXN0KChjb25zdCB4bWxOb2RlUHRyKW5vZGUpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sTm9kZVB0cihuX25vZGUsIChjb25zdCB4bWxOb2RlUHRyKW5vZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ29weU5vZGVMaXN0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ29weVByb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQXR0clB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgdGFyZ2V0OyAvKiB0aGUgZWxlbWVudCB3aGVyZSB0aGUgYXR0cmlidXRlIHdpbGwgYmUgZ3JhZnRlZCAqLworICAgIGludCBuX3RhcmdldDsKKyAgICB4bWxBdHRyUHRyIGN1cjsgLyogdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl90YXJnZXQgPSAwO25fdGFyZ2V0IDwgZ2VuX25iX3htbE5vZGVQdHI7bl90YXJnZXQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbEF0dHJQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0YXJnZXQgPSBnZW5feG1sTm9kZVB0cihuX3RhcmdldCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxBdHRyUHRyKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ29weVByb3AodGFyZ2V0LCBjdXIpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3RhcmdldCwgdGFyZ2V0LCAwKTsKKyAgICAgICAgZGVzX3htbEF0dHJQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDb3B5UHJvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90YXJnZXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ29weVByb3BMaXN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEF0dHJQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHRhcmdldDsgLyogdGhlIGVsZW1lbnQgd2hlcmUgdGhlIGF0dHJpYnV0ZXMgd2lsbCBiZSBncmFmdGVkICovCisgICAgaW50IG5fdGFyZ2V0OworICAgIHhtbEF0dHJQdHIgY3VyOyAvKiB0aGUgZmlyc3QgYXR0cmlidXRlICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX3RhcmdldCA9IDA7bl90YXJnZXQgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX3RhcmdldCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sQXR0clB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHRhcmdldCA9IGdlbl94bWxOb2RlUHRyKG5fdGFyZ2V0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbEF0dHJQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDb3B5UHJvcExpc3QodGFyZ2V0LCBjdXIpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3RhcmdldCwgdGFyZ2V0LCAwKTsKKyAgICAgICAgZGVzX3htbEF0dHJQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDb3B5UHJvcExpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFyZ2V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENyZWF0ZUludFN1YnNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEdGRQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgcG9pbnRlciAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIERURCBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogRXh0ZXJuYWxJRDsgLyogdGhlIGV4dGVybmFsIChQVUJMSUMpIElEICovCisgICAgaW50IG5fRXh0ZXJuYWxJRDsKKyAgICB4bWxDaGFyICogU3lzdGVtSUQ7IC8qIHRoZSBzeXN0ZW0gSUQgKi8KKyAgICBpbnQgbl9TeXN0ZW1JRDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9FeHRlcm5hbElEID0gMDtuX0V4dGVybmFsSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9FeHRlcm5hbElEKyspIHsKKyAgICBmb3IgKG5fU3lzdGVtSUQgPSAwO25fU3lzdGVtSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9TeXN0ZW1JRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIEV4dGVybmFsSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAyKTsKKyAgICAgICAgU3lzdGVtSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENyZWF0ZUludFN1YnNldChkb2MsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKilFeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKVN5c3RlbUlEKTsKKyAgICAgICAgZGVzcmV0X3htbER0ZFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDcmVhdGVJbnRTdWJzZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9FeHRlcm5hbElEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9TeXN0ZW1JRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfeG1sRE9NV3JhcEN0eHRQdHIgMQorc3RhdGljIHhtbERPTVdyYXBDdHh0UHRyIGdlbl94bWxET01XcmFwQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sRE9NV3JhcEN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbERPTVdyYXBDdHh0UHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbERPTVdyYXBBZG9wdE5vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sRE9NV3JhcEN0eHRQdHIgY3R4dDsgLyogdGhlIG9wdGlvbmFsIGNvbnRleHQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgc291cmNlRG9jOyAvKiB0aGUgb3B0aW9uYWwgc291cmNlRG9jICovCisgICAgaW50IG5fc291cmNlRG9jOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgdG8gc3RhcnQgd2l0aCAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sRG9jUHRyIGRlc3REb2M7IC8qIHRoZSBkZXN0aW5hdGlvbiBkb2MgKi8KKyAgICBpbnQgbl9kZXN0RG9jOworICAgIHhtbE5vZGVQdHIgZGVzdFBhcmVudDsgLyogdGhlIG9wdGlvbmFsIG5ldyBwYXJlbnQgb2YgQG5vZGUgaW4gQGRlc3REb2MgKi8KKyAgICBpbnQgbl9kZXN0UGFyZW50OworICAgIGludCBvcHRpb25zOyAvKiBvcHRpb24gZmxhZ3MgKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxET01XcmFwQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9zb3VyY2VEb2MgPSAwO25fc291cmNlRG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX3NvdXJjZURvYysrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2Rlc3REb2MgPSAwO25fZGVzdERvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kZXN0RG9jKyspIHsKKyAgICBmb3IgKG5fZGVzdFBhcmVudCA9IDA7bl9kZXN0UGFyZW50IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9kZXN0UGFyZW50KyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbERPTVdyYXBDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHNvdXJjZURvYyA9IGdlbl94bWxEb2NQdHIobl9zb3VyY2VEb2MsIDEpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAyKTsKKyAgICAgICAgZGVzdERvYyA9IGdlbl94bWxEb2NQdHIobl9kZXN0RG9jLCAzKTsKKyAgICAgICAgZGVzdFBhcmVudCA9IGdlbl94bWxOb2RlUHRyKG5fZGVzdFBhcmVudCwgNCk7CisgICAgICAgIG9wdGlvbnMgPSBnZW5faW50KG5fb3B0aW9ucywgNSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbERPTVdyYXBBZG9wdE5vZGUoY3R4dCwgc291cmNlRG9jLCBub2RlLCBkZXN0RG9jLCBkZXN0UGFyZW50LCBvcHRpb25zKTsKKyAgICAgICAgaWYgKChub2RlICE9IE5VTEwpICYmIChub2RlLT5wYXJlbnQgPT0gTlVMTCkpIHt4bWxVbmxpbmtOb2RlKG5vZGUpO3htbEZyZWVOb2RlKG5vZGUpO25vZGUgPSBOVUxMO30KKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRE9NV3JhcEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX3NvdXJjZURvYywgc291cmNlRG9jLCAxKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAyKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2Rlc3REb2MsIGRlc3REb2MsIDMpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2Rlc3RQYXJlbnQsIGRlc3RQYXJlbnQsIDQpOworICAgICAgICBkZXNfaW50KG5fb3B0aW9ucywgb3B0aW9ucywgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxET01XcmFwQWRvcHROb2RlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NvdXJjZURvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGVzdERvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGVzdFBhcmVudCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERPTVdyYXBDbG9uZU5vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sRE9NV3JhcEN0eHRQdHIgY3R4dDsgLyogdGhlIG9wdGlvbmFsIGNvbnRleHQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgc291cmNlRG9jOyAvKiB0aGUgb3B0aW9uYWwgc291cmNlRG9jICovCisgICAgaW50IG5fc291cmNlRG9jOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgdG8gc3RhcnQgd2l0aCAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTm9kZVB0ciAqIHJlc05vZGU7IC8qIHRoZSBjbG9uZSBvZiB0aGUgZ2l2ZW4gQG5vZGUgKi8KKyAgICBpbnQgbl9yZXNOb2RlOworICAgIHhtbERvY1B0ciBkZXN0RG9jOyAvKiB0aGUgZGVzdGluYXRpb24gZG9jICovCisgICAgaW50IG5fZGVzdERvYzsKKyAgICB4bWxOb2RlUHRyIGRlc3RQYXJlbnQ7IC8qIHRoZSBvcHRpb25hbCBuZXcgcGFyZW50IG9mIEBub2RlIGluIEBkZXN0RG9jICovCisgICAgaW50IG5fZGVzdFBhcmVudDsKKyAgICBpbnQgZGVlcDsgLyogZGVzY2VuZCBpbnRvIGNoaWxkIGlmIHNldCAqLworICAgIGludCBuX2RlZXA7CisgICAgaW50IG9wdGlvbnM7IC8qIG9wdGlvbiBmbGFncyAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbERPTVdyYXBDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX3NvdXJjZURvYyA9IDA7bl9zb3VyY2VEb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fc291cmNlRG9jKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fcmVzTm9kZSA9IDA7bl9yZXNOb2RlIDwgZ2VuX25iX3htbE5vZGVQdHJfcHRyO25fcmVzTm9kZSsrKSB7CisgICAgZm9yIChuX2Rlc3REb2MgPSAwO25fZGVzdERvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kZXN0RG9jKyspIHsKKyAgICBmb3IgKG5fZGVzdFBhcmVudCA9IDA7bl9kZXN0UGFyZW50IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9kZXN0UGFyZW50KyspIHsKKyAgICBmb3IgKG5fZGVlcCA9IDA7bl9kZWVwIDwgZ2VuX25iX2ludDtuX2RlZXArKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfaW50O25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sRE9NV3JhcEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgc291cmNlRG9jID0gZ2VuX3htbERvY1B0cihuX3NvdXJjZURvYywgMSk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDIpOworICAgICAgICByZXNOb2RlID0gZ2VuX3htbE5vZGVQdHJfcHRyKG5fcmVzTm9kZSwgMyk7CisgICAgICAgIGRlc3REb2MgPSBnZW5feG1sRG9jUHRyKG5fZGVzdERvYywgNCk7CisgICAgICAgIGRlc3RQYXJlbnQgPSBnZW5feG1sTm9kZVB0cihuX2Rlc3RQYXJlbnQsIDUpOworICAgICAgICBkZWVwID0gZ2VuX2ludChuX2RlZXAsIDYpOworICAgICAgICBvcHRpb25zID0gZ2VuX2ludChuX29wdGlvbnMsIDcpOworCisgICAgICAgIHJldF92YWwgPSB4bWxET01XcmFwQ2xvbmVOb2RlKGN0eHQsIHNvdXJjZURvYywgbm9kZSwgcmVzTm9kZSwgZGVzdERvYywgZGVzdFBhcmVudCwgZGVlcCwgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERPTVdyYXBDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9zb3VyY2VEb2MsIHNvdXJjZURvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMik7CisgICAgICAgIGRlc194bWxOb2RlUHRyX3B0cihuX3Jlc05vZGUsIHJlc05vZGUsIDMpOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZGVzdERvYywgZGVzdERvYywgNCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZGVzdFBhcmVudCwgZGVzdFBhcmVudCwgNSk7CisgICAgICAgIGRlc19pbnQobl9kZWVwLCBkZWVwLCA2KTsKKyAgICAgICAgZGVzX2ludChuX29wdGlvbnMsIG9wdGlvbnMsIDcpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRE9NV3JhcENsb25lTm9kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zb3VyY2VEb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3Jlc05vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Rlc3REb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Rlc3RQYXJlbnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RlZXApOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERPTVdyYXBOZXdDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxET01XcmFwQ3R4dFB0ciBjdHh0OyAvKiBET00gd3JhcHBlciBjb250ZXh0LCB1bnVzZWQgYXQgdGhlIG1vbWVudCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sTm9kZVB0ciBlbGVtOyAvKiB0aGUgZWxlbWVudC1ub2RlICovCisgICAgaW50IG5fZWxlbTsKKyAgICBpbnQgb3B0aW9uczsgLyogb3B0aW9uIGZsYWdzICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sRE9NV3JhcEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9lbGVtKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbERPTVdyYXBDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDEpOworICAgICAgICBvcHRpb25zID0gZ2VuX2ludChuX29wdGlvbnMsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxET01XcmFwUmVjb25jaWxlTmFtZXNwYWNlcyhjdHh0LCBlbGVtLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRE9NV3JhcEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9lbGVtLCBlbGVtLCAxKTsKKyAgICAgICAgZGVzX2ludChuX29wdGlvbnMsIG9wdGlvbnMsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERPTVdyYXBSZW1vdmVOb2RlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERPTVdyYXBDdHh0UHRyIGN0eHQ7IC8qIGEgRE9NIHdyYXBwZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvYyAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlIHRvIGJlIHJlbW92ZWQuICovCisgICAgaW50IG5fbm9kZTsKKyAgICBpbnQgb3B0aW9uczsgLyogc2V0IG9mIG9wdGlvbnMsIHVudXNlZCBhdCB0aGUgbW9tZW50ICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sRE9NV3JhcEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfaW50O25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sRE9NV3JhcEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDIpOworICAgICAgICBvcHRpb25zID0gZ2VuX2ludChuX29wdGlvbnMsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxET01XcmFwUmVtb3ZlTm9kZShjdHh0LCBkb2MsIG5vZGUsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxET01XcmFwQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDIpOworICAgICAgICBkZXNfaW50KG5fb3B0aW9ucywgb3B0aW9ucywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxET01XcmFwUmVtb3ZlTm9kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRG9jQ29weU5vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICBpbnQgZXh0ZW5kZWQ7IC8qIGlmIDEgZG8gYSByZWN1cnNpdmUgY29weSAocHJvcGVydGllcywgbmFtZXNwYWNlcyBhbmQgY2hpbGRyZW4gd2hlbiBhcHBsaWNhYmxlKSBpZiAyIGNvcHkgcHJvcGVydGllcyBhbmQgbmFtZXNwYWNlcyAod2hlbiBhcHBsaWNhYmxlKSAqLworICAgIGludCBuX2V4dGVuZGVkOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl9jb25zdF94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fZXh0ZW5kZWQgPSAwO25fZXh0ZW5kZWQgPCBnZW5fbmJfaW50O25fZXh0ZW5kZWQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX2NvbnN0X3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGV4dGVuZGVkID0gZ2VuX2ludChuX2V4dGVuZGVkLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sRG9jQ29weU5vZGUoKGNvbnN0IHhtbE5vZGVQdHIpbm9kZSwgZG9jLCBleHRlbmRlZCk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxOb2RlUHRyKG5fbm9kZSwgKGNvbnN0IHhtbE5vZGVQdHIpbm9kZSwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc19pbnQobl9leHRlbmRlZCwgZXh0ZW5kZWQsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRG9jQ29weU5vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9leHRlbmRlZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERvY0NvcHlOb2RlTGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIHRhcmdldCBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0LiAqLworICAgIGludCBuX25vZGU7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfY29uc3RfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbm9kZSA9IGdlbl9jb25zdF94bWxOb2RlUHRyKG5fbm9kZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbERvY0NvcHlOb2RlTGlzdChkb2MsIChjb25zdCB4bWxOb2RlUHRyKW5vZGUpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sTm9kZVB0cihuX25vZGUsIChjb25zdCB4bWxOb2RlUHRyKW5vZGUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRG9jQ29weU5vZGVMaXN0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRG9jRHVtcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBGSUxFICogZjsgLyogdGhlIEZJTEUqICovCisgICAgaW50IG5fZjsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fZiA9IDA7bl9mIDwgZ2VuX25iX0ZJTEVfcHRyO25fZisrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZiA9IGdlbl9GSUxFX3B0cihuX2YsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sRG9jUHRyKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sRG9jRHVtcChmLCBjdXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19GSUxFX3B0cihuX2YsIGYsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRG9jRHVtcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRG9jRHVtcEZvcm1hdE1lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sQ2hhciAqKiBtZW07IC8qIE9VVDogdGhlIG1lbW9yeSBwb2ludGVyICovCisgICAgaW50IG5fbWVtOworICAgIGludCAqIHNpemU7IC8qIE9VVDogdGhlIG1lbW9yeSBsZW5ndGggKi8KKyAgICBpbnQgbl9zaXplOworICAgIGludCBmb3JtYXQ7IC8qIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkICovCisgICAgaW50IG5fZm9ybWF0OworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fbWVtID0gMDtuX21lbSA8IGdlbl9uYl94bWxDaGFyX3B0cl9wdHI7bl9tZW0rKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50X3B0cjtuX3NpemUrKykgeworICAgIGZvciAobl9mb3JtYXQgPSAwO25fZm9ybWF0IDwgZ2VuX25iX2ludDtuX2Zvcm1hdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDApOworICAgICAgICBtZW0gPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5fbWVtLCAxKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnRfcHRyKG5fc2l6ZSwgMik7CisgICAgICAgIGZvcm1hdCA9IGdlbl9pbnQobl9mb3JtYXQsIDMpOworCisgICAgICAgIHhtbERvY0R1bXBGb3JtYXRNZW1vcnkoY3VyLCBtZW0sIHNpemUsIGZvcm1hdCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyX3B0cihuX21lbSwgbWVtLCAxKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9zaXplLCBzaXplLCAyKTsKKyAgICAgICAgZGVzX2ludChuX2Zvcm1hdCwgZm9ybWF0LCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERvY0R1bXBGb3JtYXRNZW1vcnkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tZW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Zvcm1hdCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIG91dF9kb2M7IC8qIERvY3VtZW50IHRvIGdlbmVyYXRlIFhNTCB0ZXh0IGZyb20gKi8KKyAgICBpbnQgbl9vdXRfZG9jOworICAgIHhtbENoYXIgKiogZG9jX3R4dF9wdHI7IC8qIE1lbW9yeSBwb2ludGVyIGZvciBhbGxvY2F0ZWQgWE1MIHRleHQgKi8KKyAgICBpbnQgbl9kb2NfdHh0X3B0cjsKKyAgICBpbnQgKiBkb2NfdHh0X2xlbjsgLyogTGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQgKi8KKyAgICBpbnQgbl9kb2NfdHh0X2xlbjsKKyAgICBjaGFyICogdHh0X2VuY29kaW5nOyAvKiBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBYTUwgdGV4dCAqLworICAgIGludCBuX3R4dF9lbmNvZGluZzsKKyAgICBpbnQgZm9ybWF0OyAvKiBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZCAqLworICAgIGludCBuX2Zvcm1hdDsKKworICAgIGZvciAobl9vdXRfZG9jID0gMDtuX291dF9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fb3V0X2RvYysrKSB7CisgICAgZm9yIChuX2RvY190eHRfcHRyID0gMDtuX2RvY190eHRfcHRyIDwgZ2VuX25iX3htbENoYXJfcHRyX3B0cjtuX2RvY190eHRfcHRyKyspIHsKKyAgICBmb3IgKG5fZG9jX3R4dF9sZW4gPSAwO25fZG9jX3R4dF9sZW4gPCBnZW5fbmJfaW50X3B0cjtuX2RvY190eHRfbGVuKyspIHsKKyAgICBmb3IgKG5fdHh0X2VuY29kaW5nID0gMDtuX3R4dF9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX3R4dF9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX2Zvcm1hdCA9IDA7bl9mb3JtYXQgPCBnZW5fbmJfaW50O25fZm9ybWF0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0X2RvYyA9IGdlbl94bWxEb2NQdHIobl9vdXRfZG9jLCAwKTsKKyAgICAgICAgZG9jX3R4dF9wdHIgPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5fZG9jX3R4dF9wdHIsIDEpOworICAgICAgICBkb2NfdHh0X2xlbiA9IGdlbl9pbnRfcHRyKG5fZG9jX3R4dF9sZW4sIDIpOworICAgICAgICB0eHRfZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl90eHRfZW5jb2RpbmcsIDMpOworICAgICAgICBmb3JtYXQgPSBnZW5faW50KG5fZm9ybWF0LCA0KTsKKworICAgICAgICB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jKG91dF9kb2MsIGRvY190eHRfcHRyLCBkb2NfdHh0X2xlbiwgKGNvbnN0IGNoYXIgKil0eHRfZW5jb2RpbmcsIGZvcm1hdCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX291dF9kb2MsIG91dF9kb2MsIDApOworICAgICAgICBkZXNfeG1sQ2hhcl9wdHJfcHRyKG5fZG9jX3R4dF9wdHIsIGRvY190eHRfcHRyLCAxKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9kb2NfdHh0X2xlbiwgZG9jX3R4dF9sZW4sIDIpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl90eHRfZW5jb2RpbmcsIChjb25zdCBjaGFyICopdHh0X2VuY29kaW5nLCAzKTsKKyAgICAgICAgZGVzX2ludChuX2Zvcm1hdCwgZm9ybWF0LCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0X2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jX3R4dF9wdHIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvY190eHRfbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90eHRfZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Zvcm1hdCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEb2NEdW1wTWVtb3J5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciBjdXI7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxDaGFyICoqIG1lbTsgLyogT1VUOiB0aGUgbWVtb3J5IHBvaW50ZXIgKi8KKyAgICBpbnQgbl9tZW07CisgICAgaW50ICogc2l6ZTsgLyogT1VUOiB0aGUgbWVtb3J5IGxlbmd0aCAqLworICAgIGludCBuX3NpemU7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxEb2NQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9tZW0gPSAwO25fbWVtIDwgZ2VuX25iX3htbENoYXJfcHRyX3B0cjtuX21lbSsrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnRfcHRyO25fc2l6ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDApOworICAgICAgICBtZW0gPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5fbWVtLCAxKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnRfcHRyKG5fc2l6ZSwgMik7CisKKyAgICAgICAgeG1sRG9jRHVtcE1lbW9yeShjdXIsIG1lbSwgc2l6ZSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyX3B0cihuX21lbSwgbWVtLCAxKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9zaXplLCBzaXplLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbERvY0R1bXBNZW1vcnkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tZW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbERvY0R1bXBNZW1vcnlFbmModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIG91dF9kb2M7IC8qIERvY3VtZW50IHRvIGdlbmVyYXRlIFhNTCB0ZXh0IGZyb20gKi8KKyAgICBpbnQgbl9vdXRfZG9jOworICAgIHhtbENoYXIgKiogZG9jX3R4dF9wdHI7IC8qIE1lbW9yeSBwb2ludGVyIGZvciBhbGxvY2F0ZWQgWE1MIHRleHQgKi8KKyAgICBpbnQgbl9kb2NfdHh0X3B0cjsKKyAgICBpbnQgKiBkb2NfdHh0X2xlbjsgLyogTGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQgKi8KKyAgICBpbnQgbl9kb2NfdHh0X2xlbjsKKyAgICBjaGFyICogdHh0X2VuY29kaW5nOyAvKiBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBYTUwgdGV4dCAqLworICAgIGludCBuX3R4dF9lbmNvZGluZzsKKworICAgIGZvciAobl9vdXRfZG9jID0gMDtuX291dF9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fb3V0X2RvYysrKSB7CisgICAgZm9yIChuX2RvY190eHRfcHRyID0gMDtuX2RvY190eHRfcHRyIDwgZ2VuX25iX3htbENoYXJfcHRyX3B0cjtuX2RvY190eHRfcHRyKyspIHsKKyAgICBmb3IgKG5fZG9jX3R4dF9sZW4gPSAwO25fZG9jX3R4dF9sZW4gPCBnZW5fbmJfaW50X3B0cjtuX2RvY190eHRfbGVuKyspIHsKKyAgICBmb3IgKG5fdHh0X2VuY29kaW5nID0gMDtuX3R4dF9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX3R4dF9lbmNvZGluZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dF9kb2MgPSBnZW5feG1sRG9jUHRyKG5fb3V0X2RvYywgMCk7CisgICAgICAgIGRvY190eHRfcHRyID0gZ2VuX3htbENoYXJfcHRyX3B0cihuX2RvY190eHRfcHRyLCAxKTsKKyAgICAgICAgZG9jX3R4dF9sZW4gPSBnZW5faW50X3B0cihuX2RvY190eHRfbGVuLCAyKTsKKyAgICAgICAgdHh0X2VuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fdHh0X2VuY29kaW5nLCAzKTsKKworICAgICAgICB4bWxEb2NEdW1wTWVtb3J5RW5jKG91dF9kb2MsIGRvY190eHRfcHRyLCBkb2NfdHh0X2xlbiwgKGNvbnN0IGNoYXIgKil0eHRfZW5jb2RpbmcpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9vdXRfZG9jLCBvdXRfZG9jLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyX3B0cihuX2RvY190eHRfcHRyLCBkb2NfdHh0X3B0ciwgMSk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fZG9jX3R4dF9sZW4sIGRvY190eHRfbGVuLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fdHh0X2VuY29kaW5nLCAoY29uc3QgY2hhciAqKXR4dF9lbmNvZGluZywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEb2NEdW1wTWVtb3J5RW5jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dF9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvY190eHRfcHRyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2NfdHh0X2xlbik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHh0X2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRG9jRm9ybWF0RHVtcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBGSUxFICogZjsgLyogdGhlIEZJTEUqICovCisgICAgaW50IG5fZjsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgaW50IGZvcm1hdDsgLyogc2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQgKi8KKyAgICBpbnQgbl9mb3JtYXQ7CisKKyAgICBmb3IgKG5fZiA9IDA7bl9mIDwgZ2VuX25iX0ZJTEVfcHRyO25fZisrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sRG9jUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fZm9ybWF0ID0gMDtuX2Zvcm1hdCA8IGdlbl9uYl9pbnQ7bl9mb3JtYXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmID0gZ2VuX0ZJTEVfcHRyKG5fZiwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDEpOworICAgICAgICBmb3JtYXQgPSBnZW5faW50KG5fZm9ybWF0LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sRG9jRm9ybWF0RHVtcChmLCBjdXIsIGZvcm1hdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fZiwgZiwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIGRlc19pbnQobl9mb3JtYXQsIGZvcm1hdCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEb2NGb3JtYXREdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2YpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZm9ybWF0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxEb2NHZXRSb290RWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEb2NHZXRSb290RWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRG9jU2V0Um9vdEVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgcm9vdDsgLyogdGhlIG5ldyBkb2N1bWVudCByb290IGVsZW1lbnQsIGlmIHJvb3QgaXMgTlVMTCBubyBhY3Rpb24gaXMgdGFrZW4sIHRvIHJlbW92ZSBhIG5vZGUgZnJvbSBhIGRvY3VtZW50IHVzZSB4bWxVbmxpbmtOb2RlKHJvb3QpIGluc3RlYWQuICovCisgICAgaW50IG5fcm9vdDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX3Jvb3QgPSAwO25fcm9vdCA8IGdlbl9uYl94bWxOb2RlUHRyX2luO25fcm9vdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICByb290ID0gZ2VuX3htbE5vZGVQdHJfaW4obl9yb290LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sRG9jU2V0Um9vdEVsZW1lbnQoZG9jLCByb290KTsKKyAgICAgICAgaWYgKGRvYyA9PSBOVUxMKSB7IHhtbEZyZWVOb2RlKHJvb3QpIDsgcm9vdCA9IE5VTEwgOyB9CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyX2luKG5fcm9vdCwgcm9vdCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEb2NTZXRSb290RWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3Jvb3QpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRWxlbUR1bXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgRklMRSAqIGY7IC8qIHRoZSBGSUxFICogZm9yIHRoZSBvdXRwdXQgKi8KKyAgICBpbnQgbl9mOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9mID0gMDtuX2YgPCBnZW5fbmJfRklMRV9wdHI7bl9mKyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmID0gZ2VuX0ZJTEVfcHRyKG5fZiwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMik7CisKKyAgICAgICAgeG1sRWxlbUR1bXAoZiwgZG9jLCBjdXIpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19GSUxFX3B0cihuX2YsIGYsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEVsZW1EdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2YpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxGaXJzdEVsZW1lbnRDaGlsZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgcGFyZW50OyAvKiB0aGUgcGFyZW50IG5vZGUgKi8KKyAgICBpbnQgbl9wYXJlbnQ7CisKKyAgICBmb3IgKG5fcGFyZW50ID0gMDtuX3BhcmVudCA8IGdlbl9uYl94bWxOb2RlUHRyO25fcGFyZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGFyZW50ID0gZ2VuX3htbE5vZGVQdHIobl9wYXJlbnQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxGaXJzdEVsZW1lbnRDaGlsZChwYXJlbnQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3BhcmVudCwgcGFyZW50LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEZpcnN0RWxlbWVudENoaWxkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3BhcmVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSByZXRfdmFsOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUoKTsKKyAgICAgICAgZGVzcmV0X3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldENvbXByZXNzTW9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHJldF92YWwgPSB4bWxHZXRDb21wcmVzc01vZGUoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0Q29tcHJlc3NNb2RlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxHZXREb2NDb21wcmVzc01vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldERvY0NvbXByZXNzTW9kZShkb2MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxHZXREb2NDb21wcmVzc01vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldEludFN1YnNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEdGRQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgcG9pbnRlciAqLworICAgIGludCBuX2RvYzsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxHZXRJbnRTdWJzZXQoZG9jKTsKKyAgICAgICAgZGVzcmV0X3htbER0ZFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0SW50U3Vic2V0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxHZXRMYXN0Q2hpbGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgcGFyZW50OyAvKiB0aGUgcGFyZW50IG5vZGUgKi8KKyAgICBpbnQgbl9wYXJlbnQ7CisKKyAgICBmb3IgKG5fcGFyZW50ID0gMDtuX3BhcmVudCA8IGdlbl9uYl94bWxOb2RlUHRyO25fcGFyZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGFyZW50ID0gZ2VuX3htbE5vZGVQdHIobl9wYXJlbnQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxHZXRMYXN0Q2hpbGQocGFyZW50KTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9wYXJlbnQsIHBhcmVudCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxHZXRMYXN0Q2hpbGQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcGFyZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldExpbmVObyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBsb25nIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB2YWxpZCBub2RlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0TGluZU5vKG5vZGUpOworICAgICAgICBkZXNyZXRfbG9uZyhyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0TGluZU5vIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0Tm9Oc1Byb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldE5vTnNQcm9wKG5vZGUsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0Tm9Oc1Byb3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0Tm9kZVBhdGgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogYSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0Tm9kZVBhdGgobm9kZSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0Tm9kZVBhdGgiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldE5zTGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0TnNQcm9wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgYXR0cmlidXRlIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuYW1lU3BhY2U7IC8qIHRoZSBVUkkgb2YgdGhlIG5hbWVzcGFjZSAqLworICAgIGludCBuX25hbWVTcGFjZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbmFtZVNwYWNlID0gMDtuX25hbWVTcGFjZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWVTcGFjZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIG5hbWVTcGFjZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWVTcGFjZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldE5zUHJvcChub2RlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZVNwYWNlKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWVTcGFjZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lU3BhY2UsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0TnNQcm9wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWVTcGFjZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldFByb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldFByb3Aobm9kZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxHZXRQcm9wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEhhc05zUHJvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxBdHRyUHRyIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5hbWVTcGFjZTsgLyogdGhlIFVSSSBvZiB0aGUgbmFtZXNwYWNlICovCisgICAgaW50IG5fbmFtZVNwYWNlOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9uYW1lU3BhY2UgPSAwO25fbmFtZVNwYWNlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZVNwYWNlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgbmFtZVNwYWNlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZVNwYWNlLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sSGFzTnNQcm9wKG5vZGUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lU3BhY2UpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lU3BhY2UsIChjb25zdCB4bWxDaGFyICopbmFtZVNwYWNlLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEhhc05zUHJvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lU3BhY2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxIYXNQcm9wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEF0dHJQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGF0dHJpYnV0ZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sSGFzUHJvcChub2RlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSGFzUHJvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxJc0JsYW5rTm9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sSXNCbGFua05vZGUobm9kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElzQmxhbmtOb2RlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNYSFRNTCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3lzdGVtSUQ7IC8qIHRoZSBzeXN0ZW0gaWRlbnRpZmllciAqLworICAgIGludCBuX3N5c3RlbUlEOworICAgIHhtbENoYXIgKiBwdWJsaWNJRDsgLyogdGhlIHB1YmxpYyBpZGVudGlmaWVyICovCisgICAgaW50IG5fcHVibGljSUQ7CisKKyAgICBmb3IgKG5fc3lzdGVtSUQgPSAwO25fc3lzdGVtSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXN0ZW1JRCsrKSB7CisgICAgZm9yIChuX3B1YmxpY0lEID0gMDtuX3B1YmxpY0lEIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHVibGljSUQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzeXN0ZW1JRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c3RlbUlELCAwKTsKKyAgICAgICAgcHVibGljSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJsaWNJRCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbElzWEhUTUwoKGNvbnN0IHhtbENoYXIgKilzeXN0ZW1JRCwgKGNvbnN0IHhtbENoYXIgKilwdWJsaWNJRCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzdGVtSUQsIChjb25zdCB4bWxDaGFyICopc3lzdGVtSUQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJsaWNJRCwgKGNvbnN0IHhtbENoYXIgKilwdWJsaWNJRCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJc1hIVE1MIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N5c3RlbUlEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wdWJsaWNJRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTGFzdEVsZW1lbnRDaGlsZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgcGFyZW50OyAvKiB0aGUgcGFyZW50IG5vZGUgKi8KKyAgICBpbnQgbl9wYXJlbnQ7CisKKyAgICBmb3IgKG5fcGFyZW50ID0gMDtuX3BhcmVudCA8IGdlbl9uYl94bWxOb2RlUHRyO25fcGFyZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGFyZW50ID0gZ2VuX3htbE5vZGVQdHIobl9wYXJlbnQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxMYXN0RWxlbWVudENoaWxkKHBhcmVudCk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fcGFyZW50LCBwYXJlbnQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTGFzdEVsZW1lbnRDaGlsZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wYXJlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdDRGF0YUJsb2NrKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIHRoZSBDREFUQSBibG9jayBjb250ZW50IGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworICAgIGludCBsZW47IC8qIHRoZSBsZW5ndGggb2YgdGhlIGJsb2NrICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0NEYXRhQmxvY2soZG9jLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIGxlbik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdDRGF0YUJsb2NrIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3Q2hhclJlZih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgY2hhciByZWYgc3RyaW5nLCBzdGFydGluZyB3aXRoICMgb3IgIiYjIC4uLiA7IiAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3Q2hhclJlZihkb2MsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdDaGFyUmVmIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3Q2hpbGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHBhcmVudDsgLyogdGhlIHBhcmVudCBub2RlICovCisgICAgaW50IG5fcGFyZW50OworICAgIHhtbE5zUHRyIG5zOyAvKiBhIG5hbWVzcGFjZSBpZiBhbnkgKi8KKyAgICBpbnQgbl9uczsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIGNoaWxkICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIFhNTCBjb250ZW50IG9mIHRoZSBjaGlsZCBpZiBhbnkuICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9wYXJlbnQgPSAwO25fcGFyZW50IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9wYXJlbnQrKykgeworICAgIGZvciAobl9ucyA9IDA7bl9ucyA8IGdlbl9uYl94bWxOc1B0cjtuX25zKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwYXJlbnQgPSBnZW5feG1sTm9kZVB0cihuX3BhcmVudCwgMCk7CisgICAgICAgIG5zID0gZ2VuX3htbE5zUHRyKG5fbnMsIDEpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMik7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3Q2hpbGQocGFyZW50LCBucywgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3BhcmVudCwgcGFyZW50LCAwKTsKKyAgICAgICAgZGVzX3htbE5zUHRyKG5fbnMsIG5zLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld0NoaWxkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3BhcmVudCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld0NvbW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiB0aGUgY29tbWVudCBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdDb21tZW50KChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdDb21tZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3RG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbENoYXIgKiB2ZXJzaW9uOyAvKiB4bWxDaGFyIHN0cmluZyBnaXZpbmcgdGhlIHZlcnNpb24gb2YgWE1MICIxLjAiICovCisgICAgaW50IG5fdmVyc2lvbjsKKworICAgIGZvciAobl92ZXJzaW9uID0gMDtuX3ZlcnNpb24gPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92ZXJzaW9uKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmVyc2lvbiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZlcnNpb24sIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdEb2MoKGNvbnN0IHhtbENoYXIgKil2ZXJzaW9uKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92ZXJzaW9uLCAoY29uc3QgeG1sQ2hhciAqKXZlcnNpb24sIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3RG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZlcnNpb24pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3RG9jQ29tbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiB0aGUgY29tbWVudCBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdEb2NDb21tZW50KGRvYywgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld0RvY0NvbW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdEb2NGcmFnbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCBvd25pbmcgdGhlIGZyYWdtZW50ICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0RvY0ZyYWdtZW50KGRvYyk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdEb2NGcmFnbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdEb2NOb2RlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTnNQdHIgbnM7IC8qIG5hbWVzcGFjZSBpZiBhbnkgKi8KKyAgICBpbnQgbl9uczsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5vZGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIHRoZSBYTUwgdGV4dCBjb250ZW50IGlmIGFueSAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9ucyA9IDA7bl9ucyA8IGdlbl9uYl94bWxOc1B0cjtuX25zKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbnMgPSBnZW5feG1sTnNQdHIobl9ucywgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAyKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdEb2NOb2RlKGRvYywgbnMsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX3htbE5zUHRyKG5fbnMsIG5zLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld0RvY05vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ucyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdEb2NOb2RlRWF0TmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5zUHRyIG5zOyAvKiBuYW1lc3BhY2UgaWYgYW55ICovCisgICAgaW50IG5fbnM7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBub2RlIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiB0aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnkgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTnNQdHI7bl9ucysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9lYXRlbl9uYW1lO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbnMgPSBnZW5feG1sTnNQdHIobl9ucywgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fZWF0ZW5fbmFtZShuX25hbWUsIDIpOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0RvY05vZGVFYXROYW1lKGRvYywgbnMsIG5hbWUsIChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOc1B0cihuX25zLCBucywgMSk7CisgICAgICAgIGRlc19lYXRlbl9uYW1lKG5fbmFtZSwgbmFtZSwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdEb2NOb2RlRWF0TmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld0RvY1BJKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgdGFyZ2V0IGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIFBJIGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0RvY1BJKGRvYywgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3RG9jUEkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3RG9jUHJvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxBdHRyUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdEb2NQcm9wKGRvYywgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X3htbEF0dHJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3RG9jUHJvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3RG9jUmF3Tm9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTnNQdHIgbnM7IC8qIG5hbWVzcGFjZSBpZiBhbnkgKi8KKyAgICBpbnQgbl9uczsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5vZGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIHRoZSB0ZXh0IGNvbnRlbnQgaWYgYW55ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX3htbE5zUHRyO25fbnMrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBucyA9IGdlbl94bWxOc1B0cihuX25zLCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0RvY1Jhd05vZGUoZG9jLCBucywgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sTnNQdHIobl9ucywgbnMsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3RG9jUmF3Tm9kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdEb2NUZXh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIHRoZSB0ZXh0IGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0RvY1RleHQoZG9jLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3RG9jVGV4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld0RvY1RleHRMZW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIHRleHQgY29udGVudCAqLworICAgIGludCBuX2NvbnRlbnQ7CisgICAgaW50IGxlbjsgLyogdGhlIHRleHQgbGVuLiAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdEb2NUZXh0TGVuKGRvYywgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCBsZW4pOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3RG9jVGV4dExlbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld0R0ZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxEdGRQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgcG9pbnRlciAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIERURCBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogRXh0ZXJuYWxJRDsgLyogdGhlIGV4dGVybmFsIElEICovCisgICAgaW50IG5fRXh0ZXJuYWxJRDsKKyAgICB4bWxDaGFyICogU3lzdGVtSUQ7IC8qIHRoZSBzeXN0ZW0gSUQgKi8KKyAgICBpbnQgbl9TeXN0ZW1JRDsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9FeHRlcm5hbElEID0gMDtuX0V4dGVybmFsSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9FeHRlcm5hbElEKyspIHsKKyAgICBmb3IgKG5fU3lzdGVtSUQgPSAwO25fU3lzdGVtSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9TeXN0ZW1JRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIEV4dGVybmFsSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAyKTsKKyAgICAgICAgU3lzdGVtSUQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld0R0ZChkb2MsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKilFeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKVN5c3RlbUlEKTsKKyAgICAgICAgZGVzcmV0X3htbER0ZFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9FeHRlcm5hbElELCAoY29uc3QgeG1sQ2hhciAqKUV4dGVybmFsSUQsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9TeXN0ZW1JRCwgKGNvbnN0IHhtbENoYXIgKilTeXN0ZW1JRCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdEdGQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9FeHRlcm5hbElEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9TeXN0ZW1JRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdOb2RlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOc1B0ciBuczsgLyogbmFtZXNwYWNlIGlmIGFueSAqLworICAgIGludCBuX25zOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbm9kZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9ucyA9IDA7bl9ucyA8IGdlbl9uYl94bWxOc1B0cjtuX25zKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5zID0gZ2VuX3htbE5zUHRyKG5fbnMsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld05vZGUobnMsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOc1B0cihuX25zLCBucywgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdOb2RlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdOb2RlRWF0TmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sTnNQdHIgbnM7IC8qIG5hbWVzcGFjZSBpZiBhbnkgKi8KKyAgICBpbnQgbl9uczsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5vZGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTnNQdHI7bl9ucysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9lYXRlbl9uYW1lO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5zID0gZ2VuX3htbE5zUHRyKG5fbnMsIDApOworICAgICAgICBuYW1lID0gZ2VuX2VhdGVuX25hbWUobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3Tm9kZUVhdE5hbWUobnMsIG5hbWUpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTnNQdHIobl9ucywgbnMsIDApOworICAgICAgICBkZXNfZWF0ZW5fbmFtZShuX25hbWUsIG5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3Tm9kZUVhdE5hbWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld05zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5zUHRyIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgbmFtZXNwYWNlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxDaGFyICogaHJlZjsgLyogdGhlIFVSSSBhc3NvY2lhdGVkICovCisgICAgaW50IG5faHJlZjsKKyAgICB4bWxDaGFyICogcHJlZml4OyAvKiB0aGUgcHJlZml4IGZvciB0aGUgbmFtZXNwYWNlICovCisgICAgaW50IG5fcHJlZml4OworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2hyZWYgPSAwO25faHJlZiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2hyZWYrKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisgICAgICAgIGhyZWYgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9ocmVmLCAxKTsKKyAgICAgICAgcHJlZml4ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3TnMobm9kZSwgKGNvbnN0IHhtbENoYXIgKilocmVmLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCk7CisgICAgICAgIGlmICgobm9kZSA9PSBOVUxMKSAmJiAocmV0X3ZhbCAhPSBOVUxMKSkgeG1sRnJlZU5zKHJldF92YWwpOworICAgICAgICBkZXNyZXRfeG1sTnNQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5faHJlZiwgKGNvbnN0IHhtbENoYXIgKilocmVmLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdOcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ocmVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmaXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdOc1Byb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQXR0clB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIGhvbGRpbmcgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTnNQdHIgbnM7IC8qIHRoZSBuYW1lc3BhY2UgKi8KKyAgICBpbnQgbl9uczsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX3htbE5zUHRyO25fbnMrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBucyA9IGdlbl94bWxOc1B0cihuX25zLCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3TnNQcm9wKG5vZGUsIG5zLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfeG1sTnNQdHIobl9ucywgbnMsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdOc1Byb3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld05zUHJvcEVhdE5hbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQXR0clB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIGhvbGRpbmcgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTnNQdHIgbnM7IC8qIHRoZSBuYW1lc3BhY2UgKi8KKyAgICBpbnQgbl9uczsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX3htbE5zUHRyO25fbnMrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfZWF0ZW5fbmFtZTtuX25hbWUrKykgeworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisgICAgICAgIG5zID0gZ2VuX3htbE5zUHRyKG5fbnMsIDEpOworICAgICAgICBuYW1lID0gZ2VuX2VhdGVuX25hbWUobl9uYW1lLCAyKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld05zUHJvcEVhdE5hbWUobm9kZSwgbnMsIG5hbWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfeG1sTnNQdHIobl9ucywgbnMsIDEpOworICAgICAgICBkZXNfZWF0ZW5fbmFtZShuX25hbWUsIG5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdOc1Byb3BFYXROYW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdQSSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiB0aGUgUEkgY29udGVudCAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3UEkoKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3UEkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3UHJvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxBdHRyUHRyIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgaG9sZGluZyBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld1Byb3Aobm9kZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X3htbEF0dHJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3UHJvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdSZWZlcmVuY2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIHJlZmVyZW5jZSBuYW1lLCBvciB0aGUgcmVmZXJlbmNlIHN0cmluZyB3aXRoICYgYW5kIDsgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld1JlZmVyZW5jZShkb2MsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdSZWZlcmVuY2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdUZXh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIHRleHQgY29udGVudCAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3VGV4dCgoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3VGV4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld1RleHRDaGlsZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHBhcmVudDsgLyogdGhlIHBhcmVudCBub2RlICovCisgICAgaW50IG5fcGFyZW50OworICAgIHhtbE5zUHRyIG5zOyAvKiBhIG5hbWVzcGFjZSBpZiBhbnkgKi8KKyAgICBpbnQgbl9uczsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIGNoaWxkICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIHRleHQgY29udGVudCBvZiB0aGUgY2hpbGQgaWYgYW55LiAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fcGFyZW50ID0gMDtuX3BhcmVudCA8IGdlbl9uYl94bWxOb2RlUHRyO25fcGFyZW50KyspIHsKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTnNQdHI7bl9ucysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGFyZW50ID0gZ2VuX3htbE5vZGVQdHIobl9wYXJlbnQsIDApOworICAgICAgICBucyA9IGdlbl94bWxOc1B0cihuX25zLCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld1RleHRDaGlsZChwYXJlbnQsIG5zLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fcGFyZW50LCBwYXJlbnQsIDApOworICAgICAgICBkZXNfeG1sTnNQdHIobl9ucywgbnMsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3VGV4dENoaWxkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3BhcmVudCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld1RleHRMZW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiB0aGUgdGV4dCBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKyAgICBpbnQgbGVuOyAvKiB0aGUgdGV4dCBsZW4uICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAwKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld1RleHRMZW4oKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCBsZW4pOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDApOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3VGV4dExlbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5leHRFbGVtZW50U2libGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX25vZGU7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5leHRFbGVtZW50U2libGluZyhub2RlKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5leHRFbGVtZW50U2libGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9kZUFkZENvbnRlbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBub2RlIGJlaW5nIG1vZGlmaWVkICovCisgICAgaW50IG5fY3VyOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiBleHRyYSBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDApOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMSk7CisKKyAgICAgICAgeG1sTm9kZUFkZENvbnRlbnQoY3VyLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZUFkZENvbnRlbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOb2RlQWRkQ29udGVudExlbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIG5vZGUgYmVpbmcgbW9kaWZpZWQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIGV4dHJhIGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworICAgIGludCBsZW47IC8qIHRoZSBzaXplIG9mIEBjb250ZW50ICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAwKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICB4bWxOb2RlQWRkQ29udGVudExlbihjdXIsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgbGVuKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5vZGVBZGRDb250ZW50TGVuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9kZUJ1ZkdldENvbnRlbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZmZlcjsgLyogYSBidWZmZXIgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBub2RlIGJlaW5nIHJlYWQgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWZmZXIrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWZmZXIgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmZmVyLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOb2RlQnVmR2V0Q29udGVudChidWZmZXIsIGN1cik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZmZlciwgYnVmZmVyLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOb2RlQnVmR2V0Q29udGVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9kZUR1bXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogdGhlIFhNTCBidWZmZXIgb3V0cHV0ICovCisgICAgaW50IG5fYnVmOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKyAgICBpbnQgbGV2ZWw7IC8qIHRoZSBpbWJyaWNhdGlvbiBsZXZlbCBmb3IgaW5kZW50aW5nICovCisgICAgaW50IG5fbGV2ZWw7CisgICAgaW50IGZvcm1hdDsgLyogaXMgZm9ybWF0dGluZyBhbGxvd2VkICovCisgICAgaW50IG5fZm9ybWF0OworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9sZXZlbCA9IDA7bl9sZXZlbCA8IGdlbl9uYl9pbnQ7bl9sZXZlbCsrKSB7CisgICAgZm9yIChuX2Zvcm1hdCA9IDA7bl9mb3JtYXQgPCBnZW5fbmJfaW50O25fZm9ybWF0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMik7CisgICAgICAgIGxldmVsID0gZ2VuX2ludChuX2xldmVsLCAzKTsKKyAgICAgICAgZm9ybWF0ID0gZ2VuX2ludChuX2Zvcm1hdCwgNCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5vZGVEdW1wKGJ1ZiwgZG9jLCBjdXIsIGxldmVsLCBmb3JtYXQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDIpOworICAgICAgICBkZXNfaW50KG5fbGV2ZWwsIGxldmVsLCAzKTsKKyAgICAgICAgZGVzX2ludChuX2Zvcm1hdCwgZm9ybWF0LCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5vZGVEdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xldmVsKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mb3JtYXQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9kZUR1bXBPdXRwdXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsgLyogdGhlIFhNTCBidWZmZXIgb3V0cHV0ICovCisgICAgaW50IG5fYnVmOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX2N1cjsKKyAgICBpbnQgbGV2ZWw7IC8qIHRoZSBpbWJyaWNhdGlvbiBsZXZlbCBmb3IgaW5kZW50aW5nICovCisgICAgaW50IG5fbGV2ZWw7CisgICAgaW50IGZvcm1hdDsgLyogaXMgZm9ybWF0dGluZyBhbGxvd2VkICovCisgICAgaW50IG5fZm9ybWF0OworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogYW4gb3B0aW9uYWwgZW5jb2Rpbmcgc3RyaW5nICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxPdXRwdXRCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX2xldmVsID0gMDtuX2xldmVsIDwgZ2VuX25iX2ludDtuX2xldmVsKyspIHsKKyAgICBmb3IgKG5fZm9ybWF0ID0gMDtuX2Zvcm1hdCA8IGdlbl9uYl9pbnQ7bl9mb3JtYXQrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbE91dHB1dEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMik7CisgICAgICAgIGxldmVsID0gZ2VuX2ludChuX2xldmVsLCAzKTsKKyAgICAgICAgZm9ybWF0ID0gZ2VuX2ludChuX2Zvcm1hdCwgNCk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDUpOworCisgICAgICAgIHhtbE5vZGVEdW1wT3V0cHV0KGJ1ZiwgZG9jLCBjdXIsIGxldmVsLCBmb3JtYXQsIChjb25zdCBjaGFyICopZW5jb2RpbmcpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxPdXRwdXRCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDIpOworICAgICAgICBkZXNfaW50KG5fbGV2ZWwsIGxldmVsLCAzKTsKKyAgICAgICAgZGVzX2ludChuX2Zvcm1hdCwgZm9ybWF0LCA0KTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDUpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZUR1bXBPdXRwdXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGV2ZWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Zvcm1hdCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVHZXRCYXNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCB0aGUgbm9kZSBwZXJ0YWlucyB0byAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIG5vZGUgYmVpbmcgY2hlY2tlZCAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5vZGVHZXRCYXNlKGRvYywgY3VyKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZUdldEJhc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVHZXRDb250ZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgbm9kZSBiZWluZyByZWFkICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTm9kZUdldENvbnRlbnQoY3VyKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZUdldENvbnRlbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVHZXRMYW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgbm9kZSBiZWluZyBjaGVja2VkICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTm9kZUdldExhbmcoY3VyKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZUdldExhbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVHZXRTcGFjZVByZXNlcnZlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgbm9kZSBiZWluZyBjaGVja2VkICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTm9kZUdldFNwYWNlUHJlc2VydmUoY3VyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOb2RlSXNUZXh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOb2RlSXNUZXh0KG5vZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOb2RlSXNUZXh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGxpc3Q7IC8qIGEgTm9kZSBsaXN0ICovCisgICAgaW50IG5fbGlzdDsKKyAgICBpbnQgaW5MaW5lOyAvKiBzaG91bGQgd2UgcmVwbGFjZSBlbnRpdHkgY29udGVudHMgb3Igc2hvdyB0aGVpciBleHRlcm5hbCBmb3JtICovCisgICAgaW50IG5faW5MaW5lOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbGlzdCA9IDA7bl9saXN0IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9saXN0KyspIHsKKyAgICBmb3IgKG5faW5MaW5lID0gMDtuX2luTGluZSA8IGdlbl9uYl9pbnQ7bl9pbkxpbmUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbGlzdCA9IGdlbl94bWxOb2RlUHRyKG5fbGlzdCwgMSk7CisgICAgICAgIGluTGluZSA9IGdlbl9pbnQobl9pbkxpbmUsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOb2RlTGlzdEdldFJhd1N0cmluZyhkb2MsIGxpc3QsIGluTGluZSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2xpc3QsIGxpc3QsIDEpOworICAgICAgICBkZXNfaW50KG5faW5MaW5lLCBpbkxpbmUsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZUxpc3RHZXRSYXdTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9saXN0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbkxpbmUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVMaXN0R2V0U3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGxpc3Q7IC8qIGEgTm9kZSBsaXN0ICovCisgICAgaW50IG5fbGlzdDsKKyAgICBpbnQgaW5MaW5lOyAvKiBzaG91bGQgd2UgcmVwbGFjZSBlbnRpdHkgY29udGVudHMgb3Igc2hvdyB0aGVpciBleHRlcm5hbCBmb3JtICovCisgICAgaW50IG5faW5MaW5lOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbGlzdCA9IDA7bl9saXN0IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9saXN0KyspIHsKKyAgICBmb3IgKG5faW5MaW5lID0gMDtuX2luTGluZSA8IGdlbl9uYl9pbnQ7bl9pbkxpbmUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbGlzdCA9IGdlbl94bWxOb2RlUHRyKG5fbGlzdCwgMSk7CisgICAgICAgIGluTGluZSA9IGdlbl9pbnQobl9pbkxpbmUsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOb2RlTGlzdEdldFN0cmluZyhkb2MsIGxpc3QsIGluTGluZSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2xpc3QsIGxpc3QsIDEpOworICAgICAgICBkZXNfaW50KG5faW5MaW5lLCBpbkxpbmUsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZUxpc3RHZXRTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9saXN0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9pbkxpbmUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOb2RlU2V0QmFzZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBub2RlIGJlaW5nIGNoYW5nZWQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sQ2hhciAqIHVyaTsgLyogdGhlIG5ldyBiYXNlIFVSSSAqLworICAgIGludCBuX3VyaTsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgIGZvciAobl91cmkgPSAwO25fdXJpIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdXJpKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDApOworICAgICAgICB1cmkgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl91cmksIDEpOworCisgICAgICAgIHhtbE5vZGVTZXRCYXNlKGN1ciwgKGNvbnN0IHhtbENoYXIgKil1cmkpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl91cmksIChjb25zdCB4bWxDaGFyICopdXJpLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5vZGVTZXRCYXNlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXJpKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVTZXRDb250ZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgbm9kZSBiZWluZyBtb2RpZmllZCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY29udGVudCAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAwKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDEpOworCisgICAgICAgIHhtbE5vZGVTZXRDb250ZW50KGN1ciwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5vZGVTZXRDb250ZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9kZVNldENvbnRlbnRMZW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgbm9kZSBiZWluZyBtb2RpZmllZCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY29udGVudCAqLworICAgIGludCBuX2NvbnRlbnQ7CisgICAgaW50IGxlbjsgLyogdGhlIHNpemUgb2YgQGNvbnRlbnQgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDApOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHhtbE5vZGVTZXRDb250ZW50TGVuKGN1ciwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCBsZW4pOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZVNldENvbnRlbnRMZW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVTZXRMYW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIG5vZGUgYmVpbmcgY2hhbmdlZCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxDaGFyICogbGFuZzsgLyogdGhlIGxhbmd1YWdlIGRlc2NyaXB0aW9uICovCisgICAgaW50IG5fbGFuZzsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9sYW5nID0gMDtuX2xhbmcgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9sYW5nKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDApOworICAgICAgICBsYW5nID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbGFuZywgMSk7CisKKyAgICAgICAgeG1sTm9kZVNldExhbmcoY3VyLCAoY29uc3QgeG1sQ2hhciAqKWxhbmcpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9sYW5nLCAoY29uc3QgeG1sQ2hhciAqKWxhbmcsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZVNldExhbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sYW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vZGVTZXROYW1lKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIG5vZGUgYmVpbmcgY2hhbmdlZCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5ldyB0YWcgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworCisgICAgICAgIHhtbE5vZGVTZXROYW1lKGN1ciwgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5vZGVTZXROYW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBub2RlIGJlaW5nIGNoYW5nZWQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgaW50IHZhbDsgLyogdGhlIHhtbDpzcGFjZSB2YWx1ZSAoIjAiOiBkZWZhdWx0LCAxOiAicHJlc2VydmUiKSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2ludDtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAwKTsKKyAgICAgICAgdmFsID0gZ2VuX2ludChuX3ZhbCwgMSk7CisKKyAgICAgICAgeG1sTm9kZVNldFNwYWNlUHJlc2VydmUoY3VyLCB2YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfaW50KG5fdmFsLCB2YWwsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9kZVNldFNwYWNlUHJlc2VydmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUHJldmlvdXNFbGVtZW50U2libGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX25vZGU7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFByZXZpb3VzRWxlbWVudFNpYmxpbmcobm9kZSk7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWNvbmNpbGlhdGVOcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIHRyZWU7IC8qIGEgbm9kZSBkZWZpbmluZyB0aGUgc3VidHJlZSB0byByZWNvbmNpbGlhdGUgKi8KKyAgICBpbnQgbl90cmVlOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fdHJlZSA9IDA7bl90cmVlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl90cmVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIHRyZWUgPSBnZW5feG1sTm9kZVB0cihuX3RyZWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWNvbmNpbGlhdGVOcyhkb2MsIHRyZWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fdHJlZSwgdHJlZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWNvbmNpbGlhdGVOcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RyZWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZW1vdmVQcm9wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEF0dHJQdHIgY3VyOyAvKiBhbiBhdHRyaWJ1dGUgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxBdHRyUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbEF0dHJQdHIobl9jdXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZW1vdmVQcm9wKGN1cik7CisgICAgICAgIGN1ciA9IE5VTEw7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEF0dHJQdHIobl9jdXIsIGN1ciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZW1vdmVQcm9wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZXBsYWNlTm9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG9sZDsgLyogdGhlIG9sZCBub2RlICovCisgICAgaW50IG5fb2xkOworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9vbGQgPSAwO25fb2xkIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9vbGQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHJfaW47bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvbGQgPSBnZW5feG1sTm9kZVB0cihuX29sZCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyX2luKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVwbGFjZU5vZGUob2xkLCBjdXIpOworICAgICAgICBpZiAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgeG1sVW5saW5rTm9kZShjdXIpOworICAgICAgICAgICAgICB4bWxGcmVlTm9kZShjdXIpIDsgY3VyID0gTlVMTCA7IH0KKyAgICAgICAgICBpZiAob2xkICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgeG1sVW5saW5rTm9kZShvbGQpOworICAgICAgICAgICAgICB4bWxGcmVlTm9kZShvbGQpIDsgb2xkID0gTlVMTCA7IH0KKwkgIHJldF92YWwgPSBOVUxMOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX29sZCwgb2xkLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHJfaW4obl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZXBsYWNlTm9kZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vbGQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTYXZlRmlsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBmaWxlbmFtZSAob3IgVVJMKSAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIHhtbERvY1B0ciBjdXI7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlb3V0cHV0O25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbERvY1B0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTYXZlRmlsZShmaWxlbmFtZSwgY3VyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTYXZlRmlsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNhdmVGaWxlRW5jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIGZpbGVuYW1lIChvciBVUkwpICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgeG1sRG9jUHRyIGN1cjsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fY3VyOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIG5hbWUgb2YgYW4gZW5jb2RpbmcgKG9yIE5VTEwpICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZW91dHB1dDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxEb2NQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZW91dHB1dChuX2ZpbGVuYW1lLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbERvY1B0cihuX2N1ciwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTYXZlRmlsZUVuYyhmaWxlbmFtZSwgY3VyLCAoY29uc3QgY2hhciAqKWVuY29kaW5nKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNhdmVGaWxlRW5jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTYXZlRmlsZVRvKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7IC8qIGFuIG91dHB1dCBJL08gYnVmZmVyICovCisgICAgaW50IG5fYnVmOworICAgIHhtbERvY1B0ciBjdXI7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2N1cjsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBlbmNvZGluZyBpZiBhbnkgYXNzdW1pbmcgdGhlIEkvTyBsYXllciBoYW5kbGVzIHRoZSB0cmFuY29kaW5nICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxPdXRwdXRCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbERvY1B0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sT3V0cHV0QnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbERvY1B0cihuX2N1ciwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTYXZlRmlsZVRvKGJ1ZiwgY3VyLCAoY29uc3QgY2hhciAqKWVuY29kaW5nKTsKKyAgICAgICAgYnVmID0gTlVMTDsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sT3V0cHV0QnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTYXZlRmlsZVRvIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2F2ZUZvcm1hdEZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgZmlsZW5hbWUgKG9yIFVSTCkgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgaW50IGZvcm1hdDsgLyogc2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlZW4gYWRkZWQgKi8KKyAgICBpbnQgbl9mb3JtYXQ7CisKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZW91dHB1dDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxEb2NQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9mb3JtYXQgPSAwO25fZm9ybWF0IDwgZ2VuX25iX2ludDtuX2Zvcm1hdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDEpOworICAgICAgICBmb3JtYXQgPSBnZW5faW50KG5fZm9ybWF0LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2F2ZUZvcm1hdEZpbGUoZmlsZW5hbWUsIGN1ciwgZm9ybWF0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIGRlc19pbnQobl9mb3JtYXQsIGZvcm1hdCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTYXZlRm9ybWF0RmlsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mb3JtYXQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNhdmVGb3JtYXRGaWxlRW5jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIGZpbGVuYW1lIG9yIFVSTCB0byBvdXRwdXQgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgYmVpbmcgc2F2ZWQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgbmFtZSBvZiB0aGUgZW5jb2RpbmcgdG8gdXNlIG9yIE5VTEwuICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IGZvcm1hdDsgLyogc2hvdWxkIGZvcm1hdHRpbmcgc3BhY2VzIGJlIGFkZGVkLiAqLworICAgIGludCBuX2Zvcm1hdDsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlb3V0cHV0O25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbERvY1B0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgIGZvciAobl9mb3JtYXQgPSAwO25fZm9ybWF0IDwgZ2VuX25iX2ludDtuX2Zvcm1hdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxEb2NQdHIobl9jdXIsIDEpOworICAgICAgICBlbmNvZGluZyA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAyKTsKKyAgICAgICAgZm9ybWF0ID0gZ2VuX2ludChuX2Zvcm1hdCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNhdmVGb3JtYXRGaWxlRW5jKGZpbGVuYW1lLCBjdXIsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIGZvcm1hdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVvdXRwdXQobl9maWxlbmFtZSwgZmlsZW5hbWUsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMik7CisgICAgICAgIGRlc19pbnQobl9mb3JtYXQsIGZvcm1hdCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTYXZlRm9ybWF0RmlsZUVuYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maWxlbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZm9ybWF0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2F2ZUZvcm1hdEZpbGVUbyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOyAvKiBhbiBvdXRwdXQgSS9PIGJ1ZmZlciAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxEb2NQdHIgY3VyOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZW5jb2RpbmcgaWYgYW55IGFzc3VtaW5nIHRoZSBJL08gbGF5ZXIgaGFuZGxlcyB0aGUgdHJhbmNvZGluZyAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBmb3JtYXQ7IC8qIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkICovCisgICAgaW50IG5fZm9ybWF0OworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sT3V0cHV0QnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxEb2NQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fZm9ybWF0ID0gMDtuX2Zvcm1hdCA8IGdlbl9uYl9pbnQ7bl9mb3JtYXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sT3V0cHV0QnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbERvY1B0cihuX2N1ciwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworICAgICAgICBmb3JtYXQgPSBnZW5faW50KG5fZm9ybWF0LCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2F2ZUZvcm1hdEZpbGVUbyhidWYsIGN1ciwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgZm9ybWF0KTsKKyAgICAgICAgYnVmID0gTlVMTDsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sT3V0cHV0QnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMik7CisgICAgICAgIGRlc19pbnQobl9mb3JtYXQsIGZvcm1hdCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTYXZlRm9ybWF0RmlsZVRvIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZm9ybWF0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2VhcmNoTnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTnNQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgY3VycmVudCBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxDaGFyICogbmFtZVNwYWNlOyAvKiB0aGUgbmFtZXNwYWNlIHByZWZpeCAqLworICAgIGludCBuX25hbWVTcGFjZTsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25hbWVTcGFjZSA9IDA7bl9uYW1lU3BhY2UgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lU3BhY2UrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMSk7CisgICAgICAgIG5hbWVTcGFjZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWVTcGFjZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNlYXJjaE5zKGRvYywgbm9kZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lU3BhY2UpOworICAgICAgICBkZXNyZXRfeG1sTnNQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZVNwYWNlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWVTcGFjZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTZWFyY2hOcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWVTcGFjZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNlYXJjaE5zQnlIcmVmKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5zUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIGN1cnJlbnQgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sQ2hhciAqIGhyZWY7IC8qIHRoZSBuYW1lc3BhY2UgdmFsdWUgKi8KKyAgICBpbnQgbl9ocmVmOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5faHJlZiA9IDA7bl9ocmVmIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25faHJlZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAxKTsKKyAgICAgICAgaHJlZiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2hyZWYsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTZWFyY2hOc0J5SHJlZihkb2MsIG5vZGUsIChjb25zdCB4bWxDaGFyICopaHJlZik7CisgICAgICAgIGRlc3JldF94bWxOc1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9ocmVmLCAoY29uc3QgeG1sQ2hhciAqKWhyZWYsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2VhcmNoTnNCeUhyZWYiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ocmVmKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIHNjaGVtZTsgLyogYWxsb2NhdGlvbiBtZXRob2QgdG8gdXNlICovCisgICAgaW50IG5fc2NoZW1lOworCisgICAgZm9yIChuX3NjaGVtZSA9IDA7bl9zY2hlbWUgPCBnZW5fbmJfeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZTtuX3NjaGVtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHNjaGVtZSA9IGdlbl94bWxCdWZmZXJBbGxvY2F0aW9uU2NoZW1lKG5fc2NoZW1lLCAwKTsKKworICAgICAgICB4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lKHNjaGVtZSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUobl9zY2hlbWUsIHNjaGVtZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NjaGVtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTZXRDb21wcmVzc01vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IG1vZGU7IC8qIHRoZSBjb21wcmVzc2lvbiByYXRpbyAqLworICAgIGludCBuX21vZGU7CisKKyAgICBmb3IgKG5fbW9kZSA9IDA7bl9tb2RlIDwgZ2VuX25iX2ludDtuX21vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBtb2RlID0gZ2VuX2ludChuX21vZGUsIDApOworCisgICAgICAgIHhtbFNldENvbXByZXNzTW9kZShtb2RlKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fbW9kZSwgbW9kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTZXRDb21wcmVzc01vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbW9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTZXREb2NDb21wcmVzc01vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIGludCBtb2RlOyAvKiB0aGUgY29tcHJlc3Npb24gcmF0aW8gKi8KKyAgICBpbnQgbl9tb2RlOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbW9kZSA9IDA7bl9tb2RlIDwgZ2VuX25iX2ludDtuX21vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgbW9kZSA9IGdlbl9pbnQobl9tb2RlLCAxKTsKKworICAgICAgICB4bWxTZXREb2NDb21wcmVzc01vZGUoZG9jLCBtb2RlKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfaW50KG5fbW9kZSwgbW9kZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTZXREb2NDb21wcmVzc01vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTZXROcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIGEgbm9kZSBpbiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9ub2RlOworICAgIHhtbE5zUHRyIG5zOyAvKiBhIG5hbWVzcGFjZSBwb2ludGVyICovCisgICAgaW50IG5fbnM7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTnNQdHI7bl9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBucyA9IGdlbl94bWxOc1B0cihuX25zLCAxKTsKKworICAgICAgICB4bWxTZXROcyhub2RlLCBucyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgZGVzX3htbE5zUHRyKG5fbnMsIG5zLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNldE5zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTZXROc1Byb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxBdHRyUHRyIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sTnNQdHIgbnM7IC8qIHRoZSBuYW1lc3BhY2UgZGVmaW5pdGlvbiAqLworICAgIGludCBuX25zOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgYXR0cmlidXRlIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIGF0dHJpYnV0ZSB2YWx1ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX3htbE5zUHRyO25fbnMrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBucyA9IGdlbl94bWxOc1B0cihuX25zLCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2V0TnNQcm9wKG5vZGUsIG5zLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfeG1sTnNQdHIobl9ucywgbnMsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTZXROc1Byb3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnMpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2V0UHJvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEF0dHJQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGF0dHJpYnV0ZSBuYW1lIChhIFFOYW1lKSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgYXR0cmlidXRlIHZhbHVlICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2V0UHJvcChub2RlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfeG1sQXR0clB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTZXRQcm9wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTcGxpdFFOYW1lMih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGZ1bGwgUU5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiogcHJlZml4OyAvKiBhIHhtbENoYXIgKiogKi8KKyAgICBpbnQgbl9wcmVmaXg7CisKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3ByZWZpeCA9IDA7bl9wcmVmaXggPCBnZW5fbmJfeG1sQ2hhcl9wdHJfcHRyO25fcHJlZml4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDApOworICAgICAgICBwcmVmaXggPSBnZW5feG1sQ2hhcl9wdHJfcHRyKG5fcHJlZml4LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3BsaXRRTmFtZTIoKGNvbnN0IHhtbENoYXIgKiluYW1lLCBwcmVmaXgpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJfcHRyX3B0cihuX3ByZWZpeCwgcHJlZml4LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNwbGl0UU5hbWUyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3BsaXRRTmFtZTModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBmdWxsIFFOYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICBpbnQgKiBsZW47IC8qIGFuIGludCAqICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludF9wdHI7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMCk7CisgICAgICAgIGxlbiA9IGdlbl9pbnRfcHRyKG5fbGVuLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3BsaXRRTmFtZTMoKGNvbnN0IHhtbENoYXIgKiluYW1lLCBsZW4pOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAwKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTcGxpdFFOYW1lMyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cmluZ0dldE5vZGVMaXN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3RyaW5nR2V0Tm9kZUxpc3QoZG9jLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyaW5nR2V0Tm9kZUxpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSB2YWx1ZSBvZiB0aGUgdGV4dCAqLworICAgIGludCBuX3ZhbHVlOworICAgIGludCBsZW47IC8qIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB2YWx1ZSAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0cmluZ0xlbkdldE5vZGVMaXN0KGRvYywgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgbGVuKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dENvbmNhdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGhlIGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworICAgIGludCBsZW47IC8qIEBjb250ZW50IGxlbmd0aCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dENvbmNhdChub2RlLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRDb25jYXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dE1lcmdlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIGZpcnN0OyAvKiB0aGUgZmlyc3QgdGV4dCBub2RlICovCisgICAgaW50IG5fZmlyc3Q7CisgICAgeG1sTm9kZVB0ciBzZWNvbmQ7IC8qIHRoZSBzZWNvbmQgdGV4dCBub2RlIGJlaW5nIG1lcmdlZCAqLworICAgIGludCBuX3NlY29uZDsKKworICAgIGZvciAobl9maXJzdCA9IDA7bl9maXJzdCA8IGdlbl9uYl94bWxOb2RlUHRyX2luO25fZmlyc3QrKykgeworICAgIGZvciAobl9zZWNvbmQgPSAwO25fc2Vjb25kIDwgZ2VuX25iX3htbE5vZGVQdHJfaW47bl9zZWNvbmQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmaXJzdCA9IGdlbl94bWxOb2RlUHRyX2luKG5fZmlyc3QsIDApOworICAgICAgICBzZWNvbmQgPSBnZW5feG1sTm9kZVB0cl9pbihuX3NlY29uZCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRNZXJnZShmaXJzdCwgc2Vjb25kKTsKKyAgICAgICAgaWYgKChmaXJzdCAhPSBOVUxMKSAmJiAoZmlyc3QtPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkpIHsKKyAgICAgICAgICAgICAgeG1sVW5saW5rTm9kZShzZWNvbmQpOworICAgICAgICAgICAgICB4bWxGcmVlTm9kZShzZWNvbmQpIDsgc2Vjb25kID0gTlVMTCA7IH0KKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHJfaW4obl9maXJzdCwgZmlyc3QsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cl9pbihuX3NlY29uZCwgc2Vjb25kLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRNZXJnZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9maXJzdCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2Vjb25kKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVbnNldE5zUHJvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxOc1B0ciBuczsgLyogdGhlIG5hbWVzcGFjZSBkZWZpbml0aW9uICovCisgICAgaW50IG5fbnM7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTnNQdHI7bl9ucysrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKyAgICAgICAgbnMgPSBnZW5feG1sTnNQdHIobl9ucywgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVW5zZXROc1Byb3Aobm9kZSwgbnMsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgZGVzX3htbE5zUHRyKG5fbnMsIG5zLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVuc2V0TnNQcm9wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVbnNldFByb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX25vZGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVuc2V0UHJvcChub2RlLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVbnNldFByb3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZGF0ZU5DTmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKSB8fCBkZWZpbmVkIChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQVgxX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0hUTUxfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RPQ0JfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIHZhbHVlIHRvIGNoZWNrICovCisgICAgaW50IG5fdmFsdWU7CisgICAgaW50IHNwYWNlOyAvKiBhbGxvdyBzcGFjZXMgaW4gZnJvbnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nICovCisgICAgaW50IG5fc3BhY2U7CisKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgZm9yIChuX3NwYWNlID0gMDtuX3NwYWNlIDwgZ2VuX25iX2ludDtuX3NwYWNlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMCk7CisgICAgICAgIHNwYWNlID0gZ2VuX2ludChuX3NwYWNlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVOQ05hbWUoKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgc3BhY2UpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NwYWNlLCBzcGFjZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZU5DTmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3BhY2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZGF0ZU5NVG9rZW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIHZhbHVlIHRvIGNoZWNrICovCisgICAgaW50IG5fdmFsdWU7CisgICAgaW50IHNwYWNlOyAvKiBhbGxvdyBzcGFjZXMgaW4gZnJvbnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nICovCisgICAgaW50IG5fc3BhY2U7CisKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgZm9yIChuX3NwYWNlID0gMDtuX3NwYWNlIDwgZ2VuX25iX2ludDtuX3NwYWNlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMCk7CisgICAgICAgIHNwYWNlID0gZ2VuX2ludChuX3NwYWNlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVOTVRva2VuKChjb25zdCB4bWxDaGFyICopdmFsdWUsIHNwYWNlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMCk7CisgICAgICAgIGRlc19pbnQobl9zcGFjZSwgc3BhY2UsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVOTVRva2VuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zcGFjZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlTmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl92YWx1ZTsKKyAgICBpbnQgc3BhY2U7IC8qIGFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmcgKi8KKyAgICBpbnQgbl9zcGFjZTsKKworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICBmb3IgKG5fc3BhY2UgPSAwO25fc3BhY2UgPCBnZW5fbmJfaW50O25fc3BhY2UrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAwKTsKKyAgICAgICAgc3BhY2UgPSBnZW5faW50KG5fc3BhY2UsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZGF0ZU5hbWUoKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgc3BhY2UpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NwYWNlLCBzcGFjZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZU5hbWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NwYWNlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVRTmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl92YWx1ZTsKKyAgICBpbnQgc3BhY2U7IC8qIGFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmcgKi8KKyAgICBpbnQgbl9zcGFjZTsKKworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICBmb3IgKG5fc3BhY2UgPSAwO25fc3BhY2UgPCBnZW5fbmJfaW50O25fc3BhY2UrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAwKTsKKyAgICAgICAgc3BhY2UgPSBnZW5faW50KG5fc3BhY2UsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZGF0ZVFOYW1lKChjb25zdCB4bWxDaGFyICopdmFsdWUsIHNwYWNlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMCk7CisgICAgICAgIGRlc19pbnQobl9zcGFjZSwgc3BhY2UsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVRTmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3BhY2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfdHJlZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgdHJlZSA6IDEzOCBvZiAxNTcgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBZGRDaGlsZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQWRkQ2hpbGRMaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBZGROZXh0U2libGluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQWRkUHJldlNpYmxpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEFkZFNpYmxpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEF0dHJTZXJpYWxpemVUeHRDb250ZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWZmZXJBZGQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJ1ZmZlckFkZEhlYWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJ1ZmZlckNDYXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJ1ZmZlckNhdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQnVmZmVyQ29udGVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQnVmZmVyQ3JlYXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWZmZXJDcmVhdGVTaXplKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWZmZXJDcmVhdGVTdGF0aWMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJ1ZmZlckVtcHR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWZmZXJHcm93KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWZmZXJMZW5ndGgoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJ1ZmZlclJlc2l6ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQnVmZmVyU2V0QWxsb2NhdGlvblNjaGVtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQnVmZmVyU2hyaW5rKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWZmZXJXcml0ZUNIQVIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJ1ZmZlcldyaXRlQ2hhcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEJ1aWxkUU5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENoaWxkRWxlbWVudENvdW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDb3B5RG9jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDb3B5RHRkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDb3B5TmFtZXNwYWNlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDb3B5TmFtZXNwYWNlTGlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ29weU5vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlOb2RlTGlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ29weVByb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlQcm9wTGlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ3JlYXRlSW50U3Vic2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxET01XcmFwQWRvcHROb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxET01XcmFwQ2xvbmVOb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxET01XcmFwTmV3Q3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbERPTVdyYXBSZW1vdmVOb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NDb3B5Tm9kZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRG9jQ29weU5vZGVMaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NEdW1wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NEdW1wRm9ybWF0TWVtb3J5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NEdW1wTWVtb3J5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NEdW1wTWVtb3J5RW5jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NGb3JtYXREdW1wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEb2NHZXRSb290RWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRG9jU2V0Um9vdEVsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEVsZW1EdW1wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxGaXJzdEVsZW1lbnRDaGlsZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0Q29tcHJlc3NNb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXREb2NDb21wcmVzc01vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldEludFN1YnNldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0TGFzdENoaWxkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXRMaW5lTm8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldE5vTnNQcm9wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXROb2RlUGF0aCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0TnNMaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXROc1Byb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldFByb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEhhc05zUHJvcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSGFzUHJvcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNCbGFua05vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbElzWEhUTUwoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbExhc3RFbGVtZW50Q2hpbGQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0NEYXRhQmxvY2soKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0NoYXJSZWYoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0NoaWxkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdDb21tZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdEb2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0RvY0NvbW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0RvY0ZyYWdtZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdEb2NOb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdEb2NOb2RlRWF0TmFtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3RG9jUEkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0RvY1Byb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0RvY1Jhd05vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0RvY1RleHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0RvY1RleHRMZW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0R0ZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3Tm9kZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3Tm9kZUVhdE5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld05zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdOc1Byb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld05zUHJvcEVhdE5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld1BJKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdQcm9wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdSZWZlcmVuY2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld1RleHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld1RleHRDaGlsZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3VGV4dExlbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV4dEVsZW1lbnRTaWJsaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOb2RlQWRkQ29udGVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9kZUFkZENvbnRlbnRMZW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5vZGVCdWZHZXRDb250ZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOb2RlRHVtcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9kZUR1bXBPdXRwdXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5vZGVHZXRCYXNlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOb2RlR2V0Q29udGVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9kZUdldExhbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5vZGVHZXRTcGFjZVByZXNlcnZlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOb2RlSXNUZXh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOb2RlTGlzdEdldFJhd1N0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9kZUxpc3RHZXRTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5vZGVTZXRCYXNlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOb2RlU2V0Q29udGVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9kZVNldENvbnRlbnRMZW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5vZGVTZXRMYW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOb2RlU2V0TmFtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9kZVNldFNwYWNlUHJlc2VydmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlY29uY2lsaWF0ZU5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZW1vdmVQcm9wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZXBsYWNlTm9kZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2F2ZUZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNhdmVGaWxlRW5jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTYXZlRmlsZVRvKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTYXZlRm9ybWF0RmlsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2F2ZUZvcm1hdEZpbGVFbmMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNhdmVGb3JtYXRGaWxlVG8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNlYXJjaE5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTZWFyY2hOc0J5SHJlZigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2V0Q29tcHJlc3NNb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTZXREb2NDb21wcmVzc01vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNldE5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTZXROc1Byb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNldFByb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNwbGl0UU5hbWUyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTcGxpdFFOYW1lMygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyaW5nR2V0Tm9kZUxpc3QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN0cmluZ0xlbkdldE5vZGVMaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0Q29uY2F0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0TWVyZ2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVuc2V0TnNQcm9wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVbnNldFByb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkYXRlTkNOYW1lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZGF0ZU5NVG9rZW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkYXRlTmFtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVRTmFtZSgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgdHJlZTogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxCdWlsZFJlbGF0aXZlVVJJKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBVUkk7IC8qIHRoZSBVUkkgcmVmZXJlbmNlIHVuZGVyIGNvbnNpZGVyYXRpb24gKi8KKyAgICBpbnQgbl9VUkk7CisgICAgeG1sQ2hhciAqIGJhc2U7IC8qIHRoZSBiYXNlIHZhbHVlICovCisgICAgaW50IG5fYmFzZTsKKworICAgIGZvciAobl9VUkkgPSAwO25fVVJJIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fVVJJKyspIHsKKyAgICBmb3IgKG5fYmFzZSA9IDA7bl9iYXNlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fYmFzZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIFVSSSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX1VSSSwgMCk7CisgICAgICAgIGJhc2UgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9iYXNlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQnVpbGRSZWxhdGl2ZVVSSSgoY29uc3QgeG1sQ2hhciAqKVVSSSwgKGNvbnN0IHhtbENoYXIgKiliYXNlKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX1VSSSwgKGNvbnN0IHhtbENoYXIgKilVUkksIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9iYXNlLCAoY29uc3QgeG1sQ2hhciAqKWJhc2UsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQnVpbGRSZWxhdGl2ZVVSSSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkkpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Jhc2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEJ1aWxkVVJJKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBVUkk7IC8qIHRoZSBVUkkgaW5zdGFuY2UgZm91bmQgaW4gdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fVVJJOworICAgIHhtbENoYXIgKiBiYXNlOyAvKiB0aGUgYmFzZSB2YWx1ZSAqLworICAgIGludCBuX2Jhc2U7CisKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX1VSSSsrKSB7CisgICAgZm9yIChuX2Jhc2UgPSAwO25fYmFzZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2Jhc2UrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkkgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9VUkksIDApOworICAgICAgICBiYXNlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fYmFzZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEJ1aWxkVVJJKChjb25zdCB4bWxDaGFyICopVVJJLCAoY29uc3QgeG1sQ2hhciAqKWJhc2UpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fVVJJLCAoY29uc3QgeG1sQ2hhciAqKVVSSSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2Jhc2UsIChjb25zdCB4bWxDaGFyICopYmFzZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxCdWlsZFVSSSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkkpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Jhc2UpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENhbm9uaWNQYXRoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBwYXRoOyAvKiB0aGUgcmVzb3VyY2UgbG9jYXRvciBpbiBhIGZpbGVzeXN0ZW0gbm90YXRpb24gKi8KKyAgICBpbnQgbl9wYXRoOworCisgICAgZm9yIChuX3BhdGggPSAwO25fcGF0aCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3BhdGgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwYXRoID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcGF0aCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENhbm9uaWNQYXRoKChjb25zdCB4bWxDaGFyICopcGF0aCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wYXRoLCAoY29uc3QgeG1sQ2hhciAqKXBhdGgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2Fub25pY1BhdGgiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcGF0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDcmVhdGVVUkkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5vcm1hbGl6ZVVSSVBhdGgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgY2hhciAqIHBhdGg7IC8qIHBvaW50ZXIgdG8gdGhlIHBhdGggc3RyaW5nICovCisgICAgaW50IG5fcGF0aDsKKworICAgIGZvciAobl9wYXRoID0gMDtuX3BhdGggPCBnZW5fbmJfY2hhcl9wdHI7bl9wYXRoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGF0aCA9IGdlbl9jaGFyX3B0cihuX3BhdGgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOb3JtYWxpemVVUklQYXRoKHBhdGgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jaGFyX3B0cihuX3BhdGgsIHBhdGgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9ybWFsaXplVVJJUGF0aCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wYXRoKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlVVJJKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZVVSSVJhdyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX3htbFVSSVB0ciAxCitzdGF0aWMgeG1sVVJJUHRyIGdlbl94bWxVUklQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFVSSVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sVVJJUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlVVJJUmVmZXJlbmNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFVSSVB0ciB1cmk7IC8qIHBvaW50ZXIgdG8gYW4gVVJJIHN0cnVjdHVyZSAqLworICAgIGludCBuX3VyaTsKKyAgICBjaGFyICogc3RyOyAvKiB0aGUgc3RyaW5nIHRvIGFuYWx5emUgKi8KKyAgICBpbnQgbl9zdHI7CisKKyAgICBmb3IgKG5fdXJpID0gMDtuX3VyaSA8IGdlbl9uYl94bWxVUklQdHI7bl91cmkrKykgeworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fc3RyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdXJpID0gZ2VuX3htbFVSSVB0cihuX3VyaSwgMCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX3N0ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlVVJJUmVmZXJlbmNlKHVyaSwgKGNvbnN0IGNoYXIgKilzdHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxVUklQdHIobl91cmksIHVyaSwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX3N0ciwgKGNvbnN0IGNoYXIgKilzdHIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VVUklSZWZlcmVuY2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXJpKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhdGhUb1VSSSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogcGF0aDsgLyogdGhlIHJlc291cmNlIGxvY2F0b3IgaW4gYSBmaWxlc3lzdGVtIG5vdGF0aW9uICovCisgICAgaW50IG5fcGF0aDsKKworICAgIGZvciAobl9wYXRoID0gMDtuX3BhdGggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wYXRoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGF0aCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3BhdGgsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXRoVG9VUkkoKGNvbnN0IHhtbENoYXIgKilwYXRoKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3BhdGgsIChjb25zdCB4bWxDaGFyICopcGF0aCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXRoVG9VUkkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcGF0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQcmludFVSSSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBGSUxFICogc3RyZWFtOyAvKiBhIEZJTEUqIGZvciB0aGUgb3V0cHV0ICovCisgICAgaW50IG5fc3RyZWFtOworICAgIHhtbFVSSVB0ciB1cmk7IC8qIHBvaW50ZXIgdG8gYW4geG1sVVJJICovCisgICAgaW50IG5fdXJpOworCisgICAgZm9yIChuX3N0cmVhbSA9IDA7bl9zdHJlYW0gPCBnZW5fbmJfRklMRV9wdHI7bl9zdHJlYW0rKykgeworICAgIGZvciAobl91cmkgPSAwO25fdXJpIDwgZ2VuX25iX3htbFVSSVB0cjtuX3VyaSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0cmVhbSA9IGdlbl9GSUxFX3B0cihuX3N0cmVhbSwgMCk7CisgICAgICAgIHVyaSA9IGdlbl94bWxVUklQdHIobl91cmksIDEpOworCisgICAgICAgIHhtbFByaW50VVJJKHN0cmVhbSwgdXJpKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfRklMRV9wdHIobl9zdHJlYW0sIHN0cmVhbSwgMCk7CisgICAgICAgIGRlc194bWxVUklQdHIobl91cmksIHVyaSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQcmludFVSSSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHJlYW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3VyaSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2F2ZVVyaSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxVUklQdHIgdXJpOyAvKiBwb2ludGVyIHRvIGFuIHhtbFVSSSAqLworICAgIGludCBuX3VyaTsKKworICAgIGZvciAobl91cmkgPSAwO25fdXJpIDwgZ2VuX25iX3htbFVSSVB0cjtuX3VyaSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHVyaSA9IGdlbl94bWxVUklQdHIobl91cmksIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxTYXZlVXJpKHVyaSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVVJJUHRyKG5fdXJpLCB1cmksIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2F2ZVVyaSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl91cmkpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVVJJRXNjYXBlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBzdHI7IC8qIHRoZSBzdHJpbmcgb2YgdGhlIFVSSSB0byBlc2NhcGUgKi8KKyAgICBpbnQgbl9zdHI7CisKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVSSUVzY2FwZSgoY29uc3QgeG1sQ2hhciAqKXN0cik7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIChjb25zdCB4bWxDaGFyICopc3RyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVSSUVzY2FwZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVVJJRXNjYXBlU3RyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBzdHI7IC8qIHN0cmluZyB0byBlc2NhcGUgKi8KKyAgICBpbnQgbl9zdHI7CisgICAgeG1sQ2hhciAqIGxpc3Q7IC8qIGV4Y2VwdGlvbiBsaXN0IHN0cmluZyBvZiBjaGFycyBub3QgdG8gZXNjYXBlICovCisgICAgaW50IG5fbGlzdDsKKworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyKyspIHsKKyAgICBmb3IgKG5fbGlzdCA9IDA7bl9saXN0IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbGlzdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMCk7CisgICAgICAgIGxpc3QgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9saXN0LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVVJJRXNjYXBlU3RyKChjb25zdCB4bWxDaGFyICopc3RyLCAoY29uc3QgeG1sQ2hhciAqKWxpc3QpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAoY29uc3QgeG1sQ2hhciAqKXN0ciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2xpc3QsIChjb25zdCB4bWxDaGFyICopbGlzdCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVUklFc2NhcGVTdHIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9saXN0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVUklVbmVzY2FwZVN0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3VyaSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgdXJpIDogMTAgb2YgMTUgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWlsZFJlbGF0aXZlVVJJKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxCdWlsZFVSSSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2Fub25pY1BhdGgoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENyZWF0ZVVSSSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9ybWFsaXplVVJJUGF0aCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VVUkkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlVVJJUmF3KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZVVSSVJlZmVyZW5jZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGF0aFRvVVJJKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQcmludFVSSSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2F2ZVVyaSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVVJJRXNjYXBlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVUklFc2NhcGVTdHIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVSSVVuZXNjYXBlU3RyaW5nKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB1cmk6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQWRkQXR0cmlidXRlRGVjbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxBdHRyaWJ1dGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRHRkUHRyIGR0ZDsgLyogcG9pbnRlciB0byB0aGUgRFREICovCisgICAgaW50IG5fZHRkOworICAgIHhtbENoYXIgKiBlbGVtOyAvKiB0aGUgZWxlbWVudCBuYW1lICovCisgICAgaW50IG5fZWxlbTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGF0dHJpYnV0ZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogbnM7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZXNwYWNlIHByZWZpeCAqLworICAgIGludCBuX25zOworICAgIHhtbEF0dHJpYnV0ZVR5cGUgdHlwZTsgLyogdGhlIGF0dHJpYnV0ZSB0eXBlICovCisgICAgaW50IG5fdHlwZTsKKyAgICB4bWxBdHRyaWJ1dGVEZWZhdWx0IGRlZjsgLyogdGhlIGF0dHJpYnV0ZSBkZWZhdWx0IHR5cGUgKi8KKyAgICBpbnQgbl9kZWY7CisgICAgeG1sQ2hhciAqIGRlZmF1bHRWYWx1ZTsgLyogdGhlIGF0dHJpYnV0ZSBkZWZhdWx0IHZhbHVlICovCisgICAgaW50IG5fZGVmYXVsdFZhbHVlOworICAgIHhtbEVudW1lcmF0aW9uUHRyIHRyZWU7IC8qIGlmIGl0J3MgYW4gZW51bWVyYXRpb24sIHRoZSBhc3NvY2lhdGVkIGxpc3QgKi8KKyAgICBpbnQgbl90cmVlOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZHRkID0gMDtuX2R0ZCA8IGdlbl9uYl94bWxEdGRQdHI7bl9kdGQrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9lbGVtKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbnMrKykgeworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfeG1sQXR0cmlidXRlVHlwZTtuX3R5cGUrKykgeworICAgIGZvciAobl9kZWYgPSAwO25fZGVmIDwgZ2VuX25iX3htbEF0dHJpYnV0ZURlZmF1bHQ7bl9kZWYrKykgeworICAgIGZvciAobl9kZWZhdWx0VmFsdWUgPSAwO25fZGVmYXVsdFZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fZGVmYXVsdFZhbHVlKyspIHsKKyAgICBmb3IgKG5fdHJlZSA9IDA7bl90cmVlIDwgZ2VuX25iX3htbEVudW1lcmF0aW9uUHRyO25fdHJlZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGR0ZCA9IGdlbl94bWxEdGRQdHIobl9kdGQsIDEpOworICAgICAgICBlbGVtID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fZWxlbSwgMik7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAzKTsKKyAgICAgICAgbnMgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9ucywgNCk7CisgICAgICAgIHR5cGUgPSBnZW5feG1sQXR0cmlidXRlVHlwZShuX3R5cGUsIDUpOworICAgICAgICBkZWYgPSBnZW5feG1sQXR0cmlidXRlRGVmYXVsdChuX2RlZiwgNik7CisgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2RlZmF1bHRWYWx1ZSwgNyk7CisgICAgICAgIHRyZWUgPSBnZW5feG1sRW51bWVyYXRpb25QdHIobl90cmVlLCA4KTsKKworICAgICAgICByZXRfdmFsID0geG1sQWRkQXR0cmlidXRlRGVjbChjdHh0LCBkdGQsIChjb25zdCB4bWxDaGFyICopZWxlbSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5zLCB0eXBlLCBkZWYsIChjb25zdCB4bWxDaGFyICopZGVmYXVsdFZhbHVlLCB0cmVlKTsKKyAgICAgICAgZGVzcmV0X3htbEF0dHJpYnV0ZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEdGRQdHIobl9kdGQsIGR0ZCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2VsZW0sIChjb25zdCB4bWxDaGFyICopZWxlbSwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMyk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25zLCAoY29uc3QgeG1sQ2hhciAqKW5zLCA0KTsKKyAgICAgICAgZGVzX3htbEF0dHJpYnV0ZVR5cGUobl90eXBlLCB0eXBlLCA1KTsKKyAgICAgICAgZGVzX3htbEF0dHJpYnV0ZURlZmF1bHQobl9kZWYsIGRlZiwgNik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2RlZmF1bHRWYWx1ZSwgKGNvbnN0IHhtbENoYXIgKilkZWZhdWx0VmFsdWUsIDcpOworICAgICAgICBkZXNfeG1sRW51bWVyYXRpb25QdHIobl90cmVlLCB0cmVlLCA4KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEFkZEF0dHJpYnV0ZURlY2wiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZHRkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ucyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZWZhdWx0VmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RyZWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBZGRFbGVtZW50RGVjbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFbGVtZW50UHRyIHJldF92YWw7CisgICAgeG1sVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbER0ZFB0ciBkdGQ7IC8qIHBvaW50ZXIgdG8gdGhlIERURCAqLworICAgIGludCBuX2R0ZDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGVudGl0eSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxFbGVtZW50VHlwZVZhbCB0eXBlOyAvKiB0aGUgZWxlbWVudCB0eXBlICovCisgICAgaW50IG5fdHlwZTsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50OyAvKiB0aGUgZWxlbWVudCBjb250ZW50IHRyZWUgb3IgTlVMTCAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFZhbGlkQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kdGQgPSAwO25fZHRkIDwgZ2VuX25iX3htbER0ZFB0cjtuX2R0ZCsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfeG1sRWxlbWVudFR5cGVWYWw7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX3htbEVsZW1lbnRDb250ZW50UHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGR0ZCA9IGdlbl94bWxEdGRQdHIobl9kdGQsIDEpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMik7CisgICAgICAgIHR5cGUgPSBnZW5feG1sRWxlbWVudFR5cGVWYWwobl90eXBlLCAzKTsKKyAgICAgICAgY29udGVudCA9IGdlbl94bWxFbGVtZW50Q29udGVudFB0cihuX2NvbnRlbnQsIDQpOworCisgICAgICAgIHJldF92YWwgPSB4bWxBZGRFbGVtZW50RGVjbChjdHh0LCBkdGQsIChjb25zdCB4bWxDaGFyICopbmFtZSwgdHlwZSwgY29udGVudCk7CisgICAgICAgIGRlc3JldF94bWxFbGVtZW50UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbER0ZFB0cihuX2R0ZCwgZHRkLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX3htbEVsZW1lbnRUeXBlVmFsKG5fdHlwZSwgdHlwZSwgMyk7CisgICAgICAgIGRlc194bWxFbGVtZW50Q29udGVudFB0cihuX2NvbnRlbnQsIGNvbnRlbnQsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQWRkRWxlbWVudERlY2wiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZHRkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90eXBlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBZGRJRCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQWRkTm90YXRpb25EZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBZGRSZWYodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxBdHRyaWJ1dGVUYWJsZVB0ciAxCitzdGF0aWMgeG1sQXR0cmlidXRlVGFibGVQdHIgZ2VuX3htbEF0dHJpYnV0ZVRhYmxlUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxBdHRyaWJ1dGVUYWJsZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sQXR0cmlidXRlVGFibGVQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ29weUF0dHJpYnV0ZVRhYmxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5RG9jRWxlbWVudENvbnRlbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgb3duaW5nIHRoZSBlbGVtZW50IGRlY2xhcmF0aW9uICovCisgICAgaW50IG5fZG9jOworICAgIHhtbEVsZW1lbnRDb250ZW50UHRyIGN1cjsgLyogQW4gZWxlbWVudCBjb250ZW50IHBvaW50ZXIuICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxFbGVtZW50Q29udGVudFB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sRWxlbWVudENvbnRlbnRQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQoZG9jLCBjdXIpOworICAgICAgICBkZXNyZXRfeG1sRWxlbWVudENvbnRlbnRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX3htbEVsZW1lbnRDb250ZW50UHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ29weURvY0VsZW1lbnRDb250ZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5RWxlbWVudENvbnRlbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgcmV0X3ZhbDsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjdXI7IC8qIEFuIGVsZW1lbnQgY29udGVudCBwb2ludGVyLiAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbEVsZW1lbnRDb250ZW50UHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbEVsZW1lbnRDb250ZW50UHRyKG5fY3VyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sQ29weUVsZW1lbnRDb250ZW50KGN1cik7CisgICAgICAgIGRlc3JldF94bWxFbGVtZW50Q29udGVudFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRWxlbWVudENvbnRlbnRQdHIobl9jdXIsIGN1ciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDb3B5RWxlbWVudENvbnRlbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxFbGVtZW50VGFibGVQdHIgMQorc3RhdGljIHhtbEVsZW1lbnRUYWJsZVB0ciBnZW5feG1sRWxlbWVudFRhYmxlUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxFbGVtZW50VGFibGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbEVsZW1lbnRUYWJsZVB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIGludAordGVzdF94bWxDb3B5RWxlbWVudFRhYmxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDb3B5RW51bWVyYXRpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxOb3RhdGlvblRhYmxlUHRyIDEKK3N0YXRpYyB4bWxOb3RhdGlvblRhYmxlUHRyIGdlbl94bWxOb3RhdGlvblRhYmxlUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxOb3RhdGlvblRhYmxlUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxOb3RhdGlvblRhYmxlUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbENvcHlOb3RhdGlvblRhYmxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDcmVhdGVFbnVtZXJhdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX3htbEF0dHJpYnV0ZVB0ciAxCitzdGF0aWMgeG1sQXR0cmlidXRlUHRyIGdlbl94bWxBdHRyaWJ1dGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbEF0dHJpYnV0ZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sQXR0cmlidXRlUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbER1bXBBdHRyaWJ1dGVEZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxBdHRyaWJ1dGVQdHIgYXR0cjsgLyogQW4gYXR0cmlidXRlIGRlY2xhcmF0aW9uICovCisgICAgaW50IG5fYXR0cjsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX2F0dHIgPSAwO25fYXR0ciA8IGdlbl9uYl94bWxBdHRyaWJ1dGVQdHI7bl9hdHRyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIGF0dHIgPSBnZW5feG1sQXR0cmlidXRlUHRyKG5fYXR0ciwgMSk7CisKKyAgICAgICAgeG1sRHVtcEF0dHJpYnV0ZURlY2woYnVmLCBhdHRyKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sQXR0cmlidXRlUHRyKG5fYXR0ciwgYXR0ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEdW1wQXR0cmlidXRlRGVjbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2F0dHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRHVtcEF0dHJpYnV0ZVRhYmxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxBdHRyaWJ1dGVUYWJsZVB0ciB0YWJsZTsgLyogQW4gYXR0cmlidXRlIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxBdHRyaWJ1dGVUYWJsZVB0cjtuX3RhYmxlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIHRhYmxlID0gZ2VuX3htbEF0dHJpYnV0ZVRhYmxlUHRyKG5fdGFibGUsIDEpOworCisgICAgICAgIHhtbER1bXBBdHRyaWJ1dGVUYWJsZShidWYsIHRhYmxlKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sQXR0cmlidXRlVGFibGVQdHIobl90YWJsZSwgdGFibGUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRHVtcEF0dHJpYnV0ZVRhYmxlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFibGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX3htbEVsZW1lbnRQdHIgMQorc3RhdGljIHhtbEVsZW1lbnRQdHIgZ2VuX3htbEVsZW1lbnRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbEVsZW1lbnRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbEVsZW1lbnRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRHVtcEVsZW1lbnREZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxFbGVtZW50UHRyIGVsZW07IC8qIEFuIGVsZW1lbnQgdGFibGUgKi8KKyAgICBpbnQgbl9lbGVtOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbEVsZW1lbnRQdHI7bl9lbGVtKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sRWxlbWVudFB0cihuX2VsZW0sIDEpOworCisgICAgICAgIHhtbER1bXBFbGVtZW50RGVjbChidWYsIGVsZW0pOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxCdWZmZXJQdHIobl9idWYsIGJ1ZiwgMCk7CisgICAgICAgIGRlc194bWxFbGVtZW50UHRyKG5fZWxlbSwgZWxlbSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEdW1wRWxlbWVudERlY2wiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbER1bXBFbGVtZW50VGFibGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogdGhlIFhNTCBidWZmZXIgb3V0cHV0ICovCisgICAgaW50IG5fYnVmOworICAgIHhtbEVsZW1lbnRUYWJsZVB0ciB0YWJsZTsgLyogQW4gZWxlbWVudCB0YWJsZSAqLworICAgIGludCBuX3RhYmxlOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fdGFibGUgPSAwO25fdGFibGUgPCBnZW5fbmJfeG1sRWxlbWVudFRhYmxlUHRyO25fdGFibGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgdGFibGUgPSBnZW5feG1sRWxlbWVudFRhYmxlUHRyKG5fdGFibGUsIDEpOworCisgICAgICAgIHhtbER1bXBFbGVtZW50VGFibGUoYnVmLCB0YWJsZSk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEJ1ZmZlclB0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3htbEVsZW1lbnRUYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEdW1wRWxlbWVudFRhYmxlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGFibGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKKyNkZWZpbmUgZ2VuX25iX3htbE5vdGF0aW9uUHRyIDEKK3N0YXRpYyB4bWxOb3RhdGlvblB0ciBnZW5feG1sTm90YXRpb25QdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbE5vdGF0aW9uUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxOb3RhdGlvblB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKworc3RhdGljIGludAordGVzdF94bWxEdW1wTm90YXRpb25EZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxOb3RhdGlvblB0ciBub3RhOyAvKiBBIG5vdGF0aW9uIGRlY2xhcmF0aW9uICovCisgICAgaW50IG5fbm90YTsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX3htbEJ1ZmZlclB0cjtuX2J1ZisrKSB7CisgICAgZm9yIChuX25vdGEgPSAwO25fbm90YSA8IGdlbl9uYl94bWxOb3RhdGlvblB0cjtuX25vdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgbm90YSA9IGdlbl94bWxOb3RhdGlvblB0cihuX25vdGEsIDEpOworCisgICAgICAgIHhtbER1bXBOb3RhdGlvbkRlY2woYnVmLCBub3RhKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sTm90YXRpb25QdHIobl9ub3RhLCBub3RhLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbER1bXBOb3RhdGlvbkRlY2wiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub3RhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbER1bXBOb3RhdGlvblRhYmxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEJ1ZmZlclB0ciBidWY7IC8qIHRoZSBYTUwgYnVmZmVyIG91dHB1dCAqLworICAgIGludCBuX2J1ZjsKKyAgICB4bWxOb3RhdGlvblRhYmxlUHRyIHRhYmxlOyAvKiBBIG5vdGF0aW9uIHRhYmxlICovCisgICAgaW50IG5fdGFibGU7CisKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl94bWxCdWZmZXJQdHI7bl9idWYrKykgeworICAgIGZvciAobl90YWJsZSA9IDA7bl90YWJsZSA8IGdlbl9uYl94bWxOb3RhdGlvblRhYmxlUHRyO25fdGFibGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgdGFibGUgPSBnZW5feG1sTm90YXRpb25UYWJsZVB0cihuX3RhYmxlLCAxKTsKKworICAgICAgICB4bWxEdW1wTm90YXRpb25UYWJsZShidWYsIHRhYmxlKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sTm90YXRpb25UYWJsZVB0cihuX3RhYmxlLCB0YWJsZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxEdW1wTm90YXRpb25UYWJsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhYmxlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldER0ZEF0dHJEZXNjKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEF0dHJpYnV0ZVB0ciByZXRfdmFsOworICAgIHhtbER0ZFB0ciBkdGQ7IC8qIGEgcG9pbnRlciB0byB0aGUgRHREIHRvIHNlYXJjaCAqLworICAgIGludCBuX2R0ZDsKKyAgICB4bWxDaGFyICogZWxlbTsgLyogdGhlIGVsZW1lbnQgbmFtZSAqLworICAgIGludCBuX2VsZW07CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fZHRkID0gMDtuX2R0ZCA8IGdlbl9uYl94bWxEdGRQdHI7bl9kdGQrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9lbGVtKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGR0ZCA9IGdlbl94bWxEdGRQdHIobl9kdGQsIDApOworICAgICAgICBlbGVtID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fZWxlbSwgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0RHRkQXR0ckRlc2MoZHRkLCAoY29uc3QgeG1sQ2hhciAqKWVsZW0sIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxBdHRyaWJ1dGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbER0ZFB0cihuX2R0ZCwgZHRkLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fZWxlbSwgKGNvbnN0IHhtbENoYXIgKillbGVtLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEdldER0ZEF0dHJEZXNjIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2R0ZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldER0ZEVsZW1lbnREZXNjKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEVsZW1lbnRQdHIgcmV0X3ZhbDsKKyAgICB4bWxEdGRQdHIgZHRkOyAvKiBhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2ggKi8KKyAgICBpbnQgbl9kdGQ7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBlbGVtZW50IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX2R0ZCA9IDA7bl9kdGQgPCBnZW5fbmJfeG1sRHRkUHRyO25fZHRkKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGR0ZCA9IGdlbl94bWxEdGRQdHIobl9kdGQsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldER0ZEVsZW1lbnREZXNjKGR0ZCwgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X3htbEVsZW1lbnRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbER0ZFB0cihuX2R0ZCwgZHRkLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEdldER0ZEVsZW1lbnREZXNjIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2R0ZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0RHRkTm90YXRpb25EZXNjKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxHZXREdGRRQXR0ckRlc2Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQXR0cmlidXRlUHRyIHJldF92YWw7CisgICAgeG1sRHRkUHRyIGR0ZDsgLyogYSBwb2ludGVyIHRvIHRoZSBEdEQgdG8gc2VhcmNoICovCisgICAgaW50IG5fZHRkOworICAgIHhtbENoYXIgKiBlbGVtOyAvKiB0aGUgZWxlbWVudCBuYW1lICovCisgICAgaW50IG5fZWxlbTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGF0dHJpYnV0ZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogcHJlZml4OyAvKiB0aGUgYXR0cmlidXRlIG5hbWVzcGFjZSBwcmVmaXggKi8KKyAgICBpbnQgbl9wcmVmaXg7CisKKyAgICBmb3IgKG5fZHRkID0gMDtuX2R0ZCA8IGdlbl9uYl94bWxEdGRQdHI7bl9kdGQrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9lbGVtKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3ByZWZpeCA9IDA7bl9wcmVmaXggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkdGQgPSBnZW5feG1sRHRkUHRyKG5fZHRkLCAwKTsKKyAgICAgICAgZWxlbSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2VsZW0sIDEpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMik7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldER0ZFFBdHRyRGVzYyhkdGQsIChjb25zdCB4bWxDaGFyICopZWxlbSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCk7CisgICAgICAgIGRlc3JldF94bWxBdHRyaWJ1dGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbER0ZFB0cihuX2R0ZCwgZHRkLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fZWxlbSwgKGNvbnN0IHhtbENoYXIgKillbGVtLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxHZXREdGRRQXR0ckRlc2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZHRkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmaXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0RHRkUUVsZW1lbnREZXNjKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEVsZW1lbnRQdHIgcmV0X3ZhbDsKKyAgICB4bWxEdGRQdHIgZHRkOyAvKiBhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2ggKi8KKyAgICBpbnQgbl9kdGQ7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBlbGVtZW50IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggKi8KKyAgICBpbnQgbl9wcmVmaXg7CisKKyAgICBmb3IgKG5fZHRkID0gMDtuX2R0ZCA8IGdlbl9uYl94bWxEdGRQdHI7bl9kdGQrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fcHJlZml4ID0gMDtuX3ByZWZpeCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ByZWZpeCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGR0ZCA9IGdlbl94bWxEdGRQdHIobl9kdGQsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEdldER0ZFFFbGVtZW50RGVzYyhkdGQsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgpOworICAgICAgICBkZXNyZXRfeG1sRWxlbWVudFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRHRkUHRyKG5fZHRkLCBkdGQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEdldER0ZFFFbGVtZW50RGVzYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kdGQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEdldElEKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEF0dHJQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBwb2ludGVyIHRvIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogSUQ7IC8qIHRoZSBJRCB2YWx1ZSAqLworICAgIGludCBuX0lEOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fSUQgPSAwO25fSUQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9JRCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBJRCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX0lELCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0SUQoZG9jLCAoY29uc3QgeG1sQ2hhciAqKUlEKTsKKyAgICAgICAgZGVzcmV0X3htbEF0dHJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fSUQsIChjb25zdCB4bWxDaGFyICopSUQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0SUQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9JRCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0UmVmcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSXNJRCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTm9kZVB0ciBlbGVtOyAvKiB0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgYXR0cmlidXRlICovCisgICAgaW50IG5fZWxlbTsKKyAgICB4bWxBdHRyUHRyIGF0dHI7IC8qIHRoZSBhdHRyaWJ1dGUgKi8KKyAgICBpbnQgbl9hdHRyOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9lbGVtKyspIHsKKyAgICBmb3IgKG5fYXR0ciA9IDA7bl9hdHRyIDwgZ2VuX25iX3htbEF0dHJQdHI7bl9hdHRyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDEpOworICAgICAgICBhdHRyID0gZ2VuX3htbEF0dHJQdHIobl9hdHRyLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sSXNJRChkb2MsIGVsZW0sIGF0dHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMSk7CisgICAgICAgIGRlc194bWxBdHRyUHRyKG5fYXR0ciwgYXR0ciwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJc0lEIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXR0cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbElzTWl4ZWRFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGVsZW1lbnQgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sSXNNaXhlZEVsZW1lbnQoZG9jLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJc01peGVkRWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbElzUmVmKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGVsZW07IC8qIHRoZSBlbGVtZW50IGNhcnJ5aW5nIHRoZSBhdHRyaWJ1dGUgKi8KKyAgICBpbnQgbl9lbGVtOworICAgIHhtbEF0dHJQdHIgYXR0cjsgLyogdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX2F0dHI7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgIGZvciAobl9hdHRyID0gMDtuX2F0dHIgPCBnZW5fbmJfeG1sQXR0clB0cjtuX2F0dHIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgZWxlbSA9IGdlbl94bWxOb2RlUHRyKG5fZWxlbSwgMSk7CisgICAgICAgIGF0dHIgPSBnZW5feG1sQXR0clB0cihuX2F0dHIsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxJc1JlZihkb2MsIGVsZW0sIGF0dHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMSk7CisgICAgICAgIGRlc194bWxBdHRyUHRyKG5fYXR0ciwgYXR0ciwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJc1JlZiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2F0dHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdEb2NFbGVtZW50Q29udGVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIHN1YmVsZW1lbnQgbmFtZSBvciBOVUxMICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxFbGVtZW50Q29udGVudFR5cGUgdHlwZTsgLyogdGhlIHR5cGUgb2YgZWxlbWVudCBjb250ZW50IGRlY2wgKi8KKyAgICBpbnQgbl90eXBlOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl94bWxFbGVtZW50Q29udGVudFR5cGU7bl90eXBlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgdHlwZSA9IGdlbl94bWxFbGVtZW50Q29udGVudFR5cGUobl90eXBlLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3RG9jRWxlbWVudENvbnRlbnQoZG9jLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIHR5cGUpOworICAgICAgICB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoZG9jLCByZXRfdmFsKTsgcmV0X3ZhbCA9IE5VTEw7CisgICAgICAgIGRlc3JldF94bWxFbGVtZW50Q29udGVudFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfeG1sRWxlbWVudENvbnRlbnRUeXBlKG5fdHlwZSwgdHlwZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdEb2NFbGVtZW50Q29udGVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3R5cGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdFbGVtZW50Q29udGVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciByZXRfdmFsOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgc3ViZWxlbWVudCBuYW1lIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbEVsZW1lbnRDb250ZW50VHlwZSB0eXBlOyAvKiB0aGUgdHlwZSBvZiBlbGVtZW50IGNvbnRlbnQgZGVjbCAqLworICAgIGludCBuX3R5cGU7CisKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl94bWxFbGVtZW50Q29udGVudFR5cGU7bl90eXBlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDApOworICAgICAgICB0eXBlID0gZ2VuX3htbEVsZW1lbnRDb250ZW50VHlwZShuX3R5cGUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdFbGVtZW50Q29udGVudCgoY29uc3QgeG1sQ2hhciAqKW5hbWUsIHR5cGUpOworICAgICAgICBkZXNyZXRfeG1sRWxlbWVudENvbnRlbnRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAwKTsKKyAgICAgICAgZGVzX3htbEVsZW1lbnRDb250ZW50VHlwZShuX3R5cGUsIHR5cGUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3RWxlbWVudENvbnRlbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3VmFsaWRDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZW1vdmVJRCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sQXR0clB0ciBhdHRyOyAvKiB0aGUgYXR0cmlidXRlICovCisgICAgaW50IG5fYXR0cjsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2F0dHIgPSAwO25fYXR0ciA8IGdlbl9uYl94bWxBdHRyUHRyO25fYXR0cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworICAgICAgICBhdHRyID0gZ2VuX3htbEF0dHJQdHIobl9hdHRyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVtb3ZlSUQoZG9jLCBhdHRyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sQXR0clB0cihuX2F0dHIsIGF0dHIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVtb3ZlSUQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hdHRyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZW1vdmVSZWYodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbEF0dHJQdHIgYXR0cjsgLyogdGhlIGF0dHJpYnV0ZSAqLworICAgIGludCBuX2F0dHI7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9hdHRyID0gMDtuX2F0dHIgPCBnZW5fbmJfeG1sQXR0clB0cjtuX2F0dHIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgYXR0ciA9IGdlbl94bWxBdHRyUHRyKG5fYXR0ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFJlbW92ZVJlZihkb2MsIGF0dHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxBdHRyUHRyKG5fYXR0ciwgYXR0ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZW1vdmVSZWYiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hdHRyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGNoYXIgKiBidWY7IC8qIGFuIG91dHB1dCBidWZmZXIgKi8KKyAgICBpbnQgbl9idWY7CisgICAgaW50IHNpemU7IC8qIHRoZSBidWZmZXIgc2l6ZSAqLworICAgIGludCBuX3NpemU7CisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudDsgLyogQW4gZWxlbWVudCB0YWJsZSAqLworICAgIGludCBuX2NvbnRlbnQ7CisgICAgaW50IGVuZ2xvYjsgLyogMSBpZiBvbmUgbXVzdCBwcmludCB0aGUgZW5nbG9iaW5nIHBhcmVudGhlc2lzLCAwIG90aGVyd2lzZSAqLworICAgIGludCBuX2VuZ2xvYjsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX2NoYXJfcHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfeG1sRWxlbWVudENvbnRlbnRQdHI7bl9jb250ZW50KyspIHsKKyAgICBmb3IgKG5fZW5nbG9iID0gMDtuX2VuZ2xvYiA8IGdlbl9uYl9pbnQ7bl9lbmdsb2IrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5fY2hhcl9wdHIobl9idWYsIDApOworICAgICAgICBzaXplID0gZ2VuX2ludChuX3NpemUsIDEpOworICAgICAgICBjb250ZW50ID0gZ2VuX3htbEVsZW1lbnRDb250ZW50UHRyKG5fY29udGVudCwgMik7CisgICAgICAgIGVuZ2xvYiA9IGdlbl9pbnQobl9lbmdsb2IsIDMpOworCisgICAgICAgIHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQoYnVmLCBzaXplLCBjb250ZW50LCBlbmdsb2IpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jaGFyX3B0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDEpOworICAgICAgICBkZXNfeG1sRWxlbWVudENvbnRlbnRQdHIobl9jb250ZW50LCBjb250ZW50LCAyKTsKKyAgICAgICAgZGVzX2ludChuX2VuZ2xvYiwgZW5nbG9iLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmdsb2IpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3ByaW50ZkVsZW1lbnRDb250ZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGNoYXIgKiBidWY7IC8qIGFuIG91dHB1dCBidWZmZXIgKi8KKyAgICBpbnQgbl9idWY7CisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudDsgLyogQW4gZWxlbWVudCB0YWJsZSAqLworICAgIGludCBuX2NvbnRlbnQ7CisgICAgaW50IGVuZ2xvYjsgLyogMSBpZiBvbmUgbXVzdCBwcmludCB0aGUgZW5nbG9iaW5nIHBhcmVudGhlc2lzLCAwIG90aGVyd2lzZSAqLworICAgIGludCBuX2VuZ2xvYjsKKworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX2NoYXJfcHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX3htbEVsZW1lbnRDb250ZW50UHRyO25fY29udGVudCsrKSB7CisgICAgZm9yIChuX2VuZ2xvYiA9IDA7bl9lbmdsb2IgPCBnZW5fbmJfaW50O25fZW5nbG9iKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX2NoYXJfcHRyKG5fYnVmLCAwKTsKKyAgICAgICAgY29udGVudCA9IGdlbl94bWxFbGVtZW50Q29udGVudFB0cihuX2NvbnRlbnQsIDEpOworICAgICAgICBlbmdsb2IgPSBnZW5faW50KG5fZW5nbG9iLCAyKTsKKworICAgICAgICB4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQoYnVmLCBjb250ZW50LCBlbmdsb2IpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jaGFyX3B0cihuX2J1ZiwgYnVmLCAwKTsKKyAgICAgICAgZGVzX3htbEVsZW1lbnRDb250ZW50UHRyKG5fY29udGVudCwgY29udGVudCwgMSk7CisgICAgICAgIGRlc19pbnQobl9lbmdsb2IsIGVuZ2xvYiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmdsb2IpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogYSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbEVsZW1lbnRQdHIgZWxlbTsgLyogYW4gZWxlbWVudCBkZWNsYXJhdGlvbiBub2RlICovCisgICAgaW50IG5fZWxlbTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2VsZW0gPSAwO25fZWxlbSA8IGdlbl9uYl94bWxFbGVtZW50UHRyO25fZWxlbSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sRWxlbWVudFB0cihuX2VsZW0sIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsKGN0eHQsIGVsZW0pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbEVsZW1lbnRQdHIobl9lbGVtLCBlbGVtLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkQnVpbGRDb250ZW50TW9kZWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbERvY1B0ciBkb2M7IC8qIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGVsZW07IC8qIHRoZSBwYXJlbnQgKi8KKyAgICBpbnQgbl9lbGVtOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgYXR0cmlidXRlIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIGF0dHJpYnV0ZSB2YWx1ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworICAgICAgICBlbGVtID0gZ2VuX3htbE5vZGVQdHIobl9lbGVtLCAyKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDMpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUoY3R4dCwgZG9jLCBlbGVtLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2VsZW0sIGVsZW0sIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDMpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCisjZGVmaW5lIGdlbl9uYl94bWxFbGVtZW50Q29udGVudF9wdHIgMQorc3RhdGljIHhtbEVsZW1lbnRDb250ZW50ICogZ2VuX3htbEVsZW1lbnRDb250ZW50X3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sRWxlbWVudENvbnRlbnRfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxFbGVtZW50Q29udGVudCAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEVsZW1lbnRDb250ZW50ICogY3RyZWU7IC8qIGFuIGVsZW1lbnQgY29udGVudCB0cmVlICovCisgICAgaW50IG5fY3RyZWU7CisgICAgeG1sQ2hhciAqKiBuYW1lczsgLyogYW4gYXJyYXkgdG8gc3RvcmUgdGhlIGxpc3Qgb2YgY2hpbGQgbmFtZXMgKi8KKyAgICBpbnQgbl9uYW1lczsKKyAgICBpbnQgKiBsZW47IC8qIGEgcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGVsZW1lbnQgaW4gdGhlIGxpc3QgKi8KKyAgICBpbnQgbl9sZW47CisgICAgaW50IG1heDsgLyogdGhlIHNpemUgb2YgdGhlIGFycmF5ICovCisgICAgaW50IG5fbWF4OworCisgICAgZm9yIChuX2N0cmVlID0gMDtuX2N0cmVlIDwgZ2VuX25iX3htbEVsZW1lbnRDb250ZW50X3B0cjtuX2N0cmVlKyspIHsKKyAgICBmb3IgKG5fbmFtZXMgPSAwO25fbmFtZXMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHJfcHRyO25fbmFtZXMrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludF9wdHI7bl9sZW4rKykgeworICAgIGZvciAobl9tYXggPSAwO25fbWF4IDwgZ2VuX25iX2ludDtuX21heCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0cmVlID0gZ2VuX3htbEVsZW1lbnRDb250ZW50X3B0cihuX2N0cmVlLCAwKTsKKyAgICAgICAgbmFtZXMgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fbmFtZXMsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50X3B0cihuX2xlbiwgMik7CisgICAgICAgIG1heCA9IGdlbl9pbnQobl9tYXgsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuKGN0cmVlLCAoY29uc3QgeG1sQ2hhciAqKiluYW1lcywgbGVuLCBtYXgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxFbGVtZW50Q29udGVudF9wdHIobl9jdHJlZSwgY3RyZWUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fbmFtZXMsIChjb25zdCB4bWxDaGFyICoqKW5hbWVzLCAxKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9sZW4sIGxlbiwgMik7CisgICAgICAgIGRlc19pbnQobl9tYXgsIG1heCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0cmVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tYXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkR2V0VmFsaWRFbGVtZW50cyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTm9kZSAqIHByZXY7IC8qIGFuIGVsZW1lbnQgdG8gaW5zZXJ0IGFmdGVyICovCisgICAgaW50IG5fcHJldjsKKyAgICB4bWxOb2RlICogbmV4dDsgLyogYW4gZWxlbWVudCB0byBpbnNlcnQgbmV4dCAqLworICAgIGludCBuX25leHQ7CisgICAgeG1sQ2hhciAqKiBuYW1lczsgLyogYW4gYXJyYXkgdG8gc3RvcmUgdGhlIGxpc3Qgb2YgY2hpbGQgbmFtZXMgKi8KKyAgICBpbnQgbl9uYW1lczsKKyAgICBpbnQgbWF4OyAvKiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgbl9tYXg7CisKKyAgICBmb3IgKG5fcHJldiA9IDA7bl9wcmV2IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9wcmV2KyspIHsKKyAgICBmb3IgKG5fbmV4dCA9IDA7bl9uZXh0IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9uZXh0KyspIHsKKyAgICBmb3IgKG5fbmFtZXMgPSAwO25fbmFtZXMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHJfcHRyO25fbmFtZXMrKykgeworICAgIGZvciAobl9tYXggPSAwO25fbWF4IDwgZ2VuX25iX2ludDtuX21heCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHByZXYgPSBnZW5feG1sTm9kZVB0cihuX3ByZXYsIDApOworICAgICAgICBuZXh0ID0gZ2VuX3htbE5vZGVQdHIobl9uZXh0LCAxKTsKKyAgICAgICAgbmFtZXMgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fbmFtZXMsIDIpOworICAgICAgICBtYXggPSBnZW5faW50KG5fbWF4LCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKHByZXYsIG5leHQsIChjb25zdCB4bWxDaGFyICoqKW5hbWVzLCBtYXgpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fcHJldiwgcHJldiwgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbmV4dCwgbmV4dCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cl9wdHIobl9uYW1lcywgKGNvbnN0IHhtbENoYXIgKiopbmFtZXMsIDIpOworICAgICAgICBkZXNfaW50KG5fbWF4LCBtYXgsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZXYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25leHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWVzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tYXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTm9kZVB0ciBlbGVtOyAvKiB0aGUgcGFyZW50ICovCisgICAgaW50IG5fZWxlbTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGF0dHJpYnV0ZSBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2VsZW0gPSAwO25fZWxlbSA8IGdlbl9uYl94bWxOb2RlUHRyO25fZWxlbSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDEpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMik7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlKGRvYywgZWxlbSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworICAgIHhtbEF0dHJpYnV0ZVB0ciBhdHRyOyAvKiBhbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiAqLworICAgIGludCBuX2F0dHI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFZhbGlkQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2F0dHIgPSAwO25fYXR0ciA8IGdlbl9uYl94bWxBdHRyaWJ1dGVQdHI7bl9hdHRyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGF0dHIgPSBnZW5feG1sQXR0cmlidXRlUHRyKG5fYXR0ciwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFZhbGlkYXRlQXR0cmlidXRlRGVjbChjdHh0LCBkb2MsIGF0dHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgZGVzX3htbEF0dHJpYnV0ZVB0cihuX2F0dHIsIGF0dHIsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXR0cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEF0dHJpYnV0ZVR5cGUgdHlwZTsgLyogYW4gYXR0cmlidXRlIHR5cGUgKi8KKyAgICBpbnQgbl90eXBlOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogYW4gYXR0cmlidXRlIHZhbHVlICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fdHlwZSA9IDA7bl90eXBlIDwgZ2VuX25iX3htbEF0dHJpYnV0ZVR5cGU7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHR5cGUgPSBnZW5feG1sQXR0cmlidXRlVHlwZShuX3R5cGUsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSh0eXBlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQXR0cmlidXRlVHlwZShuX3R5cGUsIHR5cGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3R5cGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlRG9jdW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBkb2N1bWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2RvYzsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFZhbGlkYXRlRG9jdW1lbnQoY3R4dCwgZG9jKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZURvY3VtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZGF0ZURvY3VtZW50RmluYWwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBkb2N1bWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2RvYzsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbChjdHh0LCBkb2MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVEdGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBkb2N1bWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxEdGRQdHIgZHRkOyAvKiBhIGR0ZCBpbnN0YW5jZSAqLworICAgIGludCBuX2R0ZDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fZHRkID0gMDtuX2R0ZCA8IGdlbl9uYl94bWxEdGRQdHI7bl9kdGQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAxKTsKKyAgICAgICAgZHRkID0gZ2VuX3htbER0ZFB0cihuX2R0ZCwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFZhbGlkYXRlRHRkKGN0eHQsIGRvYywgZHRkKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxEdGRQdHIobl9kdGQsIGR0ZCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZUR0ZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2R0ZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVEdGRGaW5hbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVEdGRGaW5hbChjdHh0LCBkb2MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkYXRlRHRkRmluYWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlRWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgZWxlbTsgLyogYW4gZWxlbWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2VsZW07CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFZhbGlkQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2VsZW0gPSAwO25fZWxlbSA8IGdlbl9uYl94bWxOb2RlUHRyO25fZWxlbSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworICAgICAgICBlbGVtID0gZ2VuX3htbE5vZGVQdHIobl9lbGVtLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVFbGVtZW50KGN0eHQsIGRvYywgZWxlbSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2VsZW0sIGVsZW0sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVFbGVtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVFbGVtZW50RGVjbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworICAgIHhtbEVsZW1lbnRQdHIgZWxlbTsgLyogYW4gZWxlbWVudCBkZWZpbml0aW9uICovCisgICAgaW50IG5fZWxlbTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbEVsZW1lbnRQdHI7bl9lbGVtKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sRWxlbWVudFB0cihuX2VsZW0sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZGF0ZUVsZW1lbnREZWNsKGN0eHQsIGRvYywgZWxlbSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sRWxlbWVudFB0cihuX2VsZW0sIGVsZW0sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVFbGVtZW50RGVjbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlTmFtZVZhbHVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiBhbiBOYW1lIHZhbHVlICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZGF0ZU5hbWVWYWx1ZSgoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZU5hbWVWYWx1ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlTmFtZXNWYWx1ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogYW4gTmFtZXMgdmFsdWUgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFZhbGlkYXRlTmFtZXNWYWx1ZSgoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZU5hbWVzVmFsdWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogYW4gTm10b2tlbiB2YWx1ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVObXRva2VuVmFsdWUoKGNvbnN0IHhtbENoYXIgKil2YWx1ZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVObXRva2VuVmFsdWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIGFuIE5tdG9rZW5zIHZhbHVlICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUoKGNvbnN0IHhtbENoYXIgKil2YWx1ZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBkb2N1bWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb3RhdGlvblB0ciBub3RhOyAvKiBhIG5vdGF0aW9uIGRlZmluaXRpb24gKi8KKyAgICBpbnQgbl9ub3RhOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9ub3RhID0gMDtuX25vdGEgPCBnZW5fbmJfeG1sTm90YXRpb25QdHI7bl9ub3RhKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIG5vdGEgPSBnZW5feG1sTm90YXRpb25QdHIobl9ub3RhLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVOb3RhdGlvbkRlY2woY3R4dCwgZG9jLCBub3RhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb3RhdGlvblB0cihuX25vdGEsIG5vdGEsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVOb3RhdGlvbkRlY2wiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub3RhKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZGF0ZU5vdGF0aW9uVXNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIHhtbENoYXIgKiBub3RhdGlvbk5hbWU7IC8qIHRoZSBub3RhdGlvbiBuYW1lIHRvIGNoZWNrICovCisgICAgaW50IG5fbm90YXRpb25OYW1lOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9ub3RhdGlvbk5hbWUgPSAwO25fbm90YXRpb25OYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbm90YXRpb25OYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIG5vdGF0aW9uTmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25vdGF0aW9uTmFtZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFZhbGlkYXRlTm90YXRpb25Vc2UoY3R4dCwgZG9jLCAoY29uc3QgeG1sQ2hhciAqKW5vdGF0aW9uTmFtZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9ub3RhdGlvbk5hbWUsIChjb25zdCB4bWxDaGFyICopbm90YXRpb25OYW1lLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkYXRlTm90YXRpb25Vc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub3RhdGlvbk5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlT25lQXR0cmlidXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbERvY1B0ciBkb2M7IC8qIGEgZG9jdW1lbnQgaW5zdGFuY2UgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTm9kZVB0ciBlbGVtOyAvKiBhbiBlbGVtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZWxlbTsKKyAgICB4bWxBdHRyUHRyIGF0dHI7IC8qIGFuIGF0dHJpYnV0ZSBpbnN0YW5jZSAqLworICAgIGludCBuX2F0dHI7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgYXR0cmlidXRlIHZhbHVlICh3aXRob3V0IGVudGl0aWVzIHByb2Nlc3NpbmcpICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFZhbGlkQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX2VsZW0gPSAwO25fZWxlbSA8IGdlbl9uYl94bWxOb2RlUHRyO25fZWxlbSsrKSB7CisgICAgZm9yIChuX2F0dHIgPSAwO25fYXR0ciA8IGdlbl9uYl94bWxBdHRyUHRyO25fYXR0cisrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAxKTsKKyAgICAgICAgZWxlbSA9IGdlbl94bWxOb2RlUHRyKG5fZWxlbSwgMik7CisgICAgICAgIGF0dHIgPSBnZW5feG1sQXR0clB0cihuX2F0dHIsIDMpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUoY3R4dCwgZG9jLCBlbGVtLCBhdHRyLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMik7CisgICAgICAgIGRlc194bWxBdHRyUHRyKG5fYXR0ciwgYXR0ciwgMyk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkYXRlT25lQXR0cmlidXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXR0cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVPbmVFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbERvY1B0ciBkb2M7IC8qIGEgZG9jdW1lbnQgaW5zdGFuY2UgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTm9kZVB0ciBlbGVtOyAvKiBhbiBlbGVtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZWxlbTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9lbGVtKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZGF0ZU9uZUVsZW1lbnQoY3R4dCwgZG9jLCBlbGVtKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZU9uZUVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50IGluc3RhbmNlICovCisgICAgaW50IG5fZG9jOworICAgIHhtbE5vZGVQdHIgZWxlbTsgLyogYW4gZWxlbWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2VsZW07CisgICAgeG1sQ2hhciAqIHByZWZpeDsgLyogdGhlIG5hbWVzcGFjZSBwcmVmaXggKi8KKyAgICBpbnQgbl9wcmVmaXg7CisgICAgeG1sTnNQdHIgbnM7IC8qIGFuIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBpbnN0YW5jZSAqLworICAgIGludCBuX25zOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIGF0dHJpYnV0ZSB2YWx1ZSAod2l0aG91dCBlbnRpdGllcyBwcm9jZXNzaW5nKSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTnNQdHI7bl9ucysrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAxKTsKKyAgICAgICAgZWxlbSA9IGdlbl94bWxOb2RlUHRyKG5fZWxlbSwgMik7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMyk7CisgICAgICAgIG5zID0gZ2VuX3htbE5zUHRyKG5fbnMsIDQpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UoY3R4dCwgZG9jLCBlbGVtLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgbnMsIChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9lbGVtLCBlbGVtLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMyk7CisgICAgICAgIGRlc194bWxOc1B0cihuX25zLCBucywgNCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCA1KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkYXRlT25lTmFtZXNwYWNlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJlZml4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ucyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlUG9wRWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBkb2N1bWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGVsZW07IC8qIGFuIGVsZW1lbnQgaW5zdGFuY2UgKi8KKyAgICBpbnQgbl9lbGVtOworICAgIHhtbENoYXIgKiBxbmFtZTsgLyogdGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbiAqLworICAgIGludCBuX3FuYW1lOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgIGZvciAobl9xbmFtZSA9IDA7bl9xbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3FuYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDIpOworICAgICAgICBxbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3FuYW1lLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVQb3BFbGVtZW50KGN0eHQsIGRvYywgZWxlbSwgKGNvbnN0IHhtbENoYXIgKilxbmFtZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2VsZW0sIGVsZW0sIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9xbmFtZSwgKGNvbnN0IHhtbENoYXIgKilxbmFtZSwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZVBvcEVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbGVtKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9xbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFZhbGlkYXRlUHVzaENEYXRhKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxDaGFyICogZGF0YTsgLyogc29tZSBjaGFyYWN0ZXIgZGF0YSByZWFkICovCisgICAgaW50IG5fZGF0YTsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbGVuZ2h0IG9mIHRoZSBkYXRhICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZGF0YSA9IDA7bl9kYXRhIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fZGF0YSsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZGF0YSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2RhdGEsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVQdXNoQ0RhdGEoY3R4dCwgKGNvbnN0IHhtbENoYXIgKilkYXRhLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fZGF0YSwgKGNvbnN0IHhtbENoYXIgKilkYXRhLCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFZhbGlkYXRlUHVzaENEYXRhIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVQdXNoRWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dDsgLyogdGhlIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBkb2N1bWVudCBpbnN0YW5jZSAqLworICAgIGludCBuX2RvYzsKKyAgICB4bWxOb2RlUHRyIGVsZW07IC8qIGFuIGVsZW1lbnQgaW5zdGFuY2UgKi8KKyAgICBpbnQgbl9lbGVtOworICAgIHhtbENoYXIgKiBxbmFtZTsgLyogdGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbiAqLworICAgIGludCBuX3FuYW1lOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9lbGVtID0gMDtuX2VsZW0gPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2VsZW0rKykgeworICAgIGZvciAobl9xbmFtZSA9IDA7bl9xbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3FuYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisgICAgICAgIGVsZW0gPSBnZW5feG1sTm9kZVB0cihuX2VsZW0sIDIpOworICAgICAgICBxbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3FuYW1lLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sVmFsaWRhdGVQdXNoRWxlbWVudChjdHh0LCBkb2MsIGVsZW0sIChjb25zdCB4bWxDaGFyICopcW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9lbGVtLCBlbGVtLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcW5hbWUsIChjb25zdCB4bWxDaGFyICopcW5hbWUsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVmFsaWRhdGVQdXNoRWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VsZW0pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3FuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVmFsaWRhdGVSb290KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbERvY1B0ciBkb2M7IC8qIGEgZG9jdW1lbnQgaW5zdGFuY2UgKi8KKyAgICBpbnQgbl9kb2M7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFZhbGlkQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxWYWxpZGF0ZVJvb3QoY3R4dCwgZG9jKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxWYWxpZGF0ZVJvb3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF92YWxpZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgdmFsaWQgOiA1MCBvZiA3MCBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEFkZEF0dHJpYnV0ZURlY2woKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEFkZEVsZW1lbnREZWNsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBZGRJRCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQWRkTm90YXRpb25EZWNsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBZGRSZWYoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlBdHRyaWJ1dGVUYWJsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ29weURvY0VsZW1lbnRDb250ZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxDb3B5RWxlbWVudENvbnRlbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlFbGVtZW50VGFibGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlFbnVtZXJhdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ29weU5vdGF0aW9uVGFibGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENyZWF0ZUVudW1lcmF0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEdW1wQXR0cmlidXRlRGVjbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRHVtcEF0dHJpYnV0ZVRhYmxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxEdW1wRWxlbWVudERlY2woKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbER1bXBFbGVtZW50VGFibGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbER1bXBOb3RhdGlvbkRlY2woKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbER1bXBOb3RhdGlvblRhYmxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXREdGRBdHRyRGVzYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0RHRkRWxlbWVudERlc2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldER0ZE5vdGF0aW9uRGVzYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0RHRkUUF0dHJEZXNjKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXREdGRRRWxlbWVudERlc2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEdldElEKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXRSZWZzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJc0lEKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJc01peGVkRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSXNSZWYoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0RvY0VsZW1lbnRDb250ZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdFbGVtZW50Q29udGVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3VmFsaWRDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZW1vdmVJRCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVtb3ZlUmVmKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTcHJpbnRmRWxlbWVudENvbnRlbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkQnVpbGRDb250ZW50TW9kZWwoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZEdldFZhbGlkRWxlbWVudHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVEb2N1bWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZGF0ZUR0ZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVEdGRGaW5hbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVFbGVtZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZGF0ZUVsZW1lbnREZWNsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZGF0ZU5hbWVWYWx1ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVOYW1lc1ZhbHVlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVObXRva2Vuc1ZhbHVlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxWYWxpZGF0ZU5vdGF0aW9uRGVjbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVOb3RhdGlvblVzZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkYXRlT25lRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkYXRlUG9wRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVmFsaWRhdGVQdXNoQ0RhdGEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkYXRlUHVzaEVsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFZhbGlkYXRlUm9vdCgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgdmFsaWQ6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWEluY2x1ZGVOZXdDb250ZXh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYSW5jbHVkZVByb2Nlc3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhbiBYTUwgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWEluY2x1ZGVQcm9jZXNzKGRvYyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhJbmNsdWRlUHJvY2VzcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYSW5jbHVkZVByb2Nlc3NGbGFncyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIGFuIFhNTCBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKyAgICBpbnQgZmxhZ3M7IC8qIGEgc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcyAqLworICAgIGludCBuX2ZsYWdzOworCisgICAgZm9yIChuX2RvYyA9IDA7bl9kb2MgPCBnZW5fbmJfeG1sRG9jUHRyO25fZG9jKyspIHsKKyAgICBmb3IgKG5fZmxhZ3MgPSAwO25fZmxhZ3MgPCBnZW5fbmJfaW50O25fZmxhZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgZmxhZ3MgPSBnZW5faW50KG5fZmxhZ3MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYSW5jbHVkZVByb2Nlc3NGbGFncyhkb2MsIGZsYWdzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfaW50KG5fZmxhZ3MsIGZsYWdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmxhZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3NEYXRhKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYW4gWE1MIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworICAgIGludCBmbGFnczsgLyogYSBzZXQgb2YgeG1sUGFyc2VyT3B0aW9uIHVzZWQgZm9yIHBhcnNpbmcgWE1MIGluY2x1ZGVzICovCisgICAgaW50IG5fZmxhZ3M7CisgICAgdm9pZCAqIGRhdGE7IC8qIGFwcGxpY2F0aW9uIGRhdGEgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcGFyc2VyIGNvbnRleHQgaW4gdGhlIF9wcml2YXRlIGZpZWxkIG9mIHRoZSBwYXJzZXIgY29udGV4dChzKSAqLworICAgIGludCBuX2RhdGE7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgIGZvciAobl9mbGFncyA9IDA7bl9mbGFncyA8IGdlbl9uYl9pbnQ7bl9mbGFncysrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKyAgICAgICAgZmxhZ3MgPSBnZW5faW50KG5fZmxhZ3MsIDEpOworICAgICAgICBkYXRhID0gZ2VuX3VzZXJkYXRhKG5fZGF0YSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YShkb2MsIGZsYWdzLCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfaW50KG5fZmxhZ3MsIGZsYWdzLCAxKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fZGF0YSwgZGF0YSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mbGFncyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sWEluY2x1ZGVDdHh0UHRyIDEKK3N0YXRpYyB4bWxYSW5jbHVkZUN0eHRQdHIgZ2VuX3htbFhJbmNsdWRlQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sWEluY2x1ZGVDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxYSW5jbHVkZUN0eHRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhJbmNsdWRlUHJvY2Vzc05vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dDsgLyogYW4gZXhpc3RpbmcgWEluY2x1ZGUgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiBhIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50ICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWEluY2x1ZGVDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWEluY2x1ZGVDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYSW5jbHVkZVByb2Nlc3NOb2RlKGN0eHQsIG5vZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYSW5jbHVkZUN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhJbmNsdWRlUHJvY2Vzc05vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYSW5jbHVkZVByb2Nlc3NUcmVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTm9kZVB0ciB0cmVlOyAvKiBhIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50ICovCisgICAgaW50IG5fdHJlZTsKKworICAgIGZvciAobl90cmVlID0gMDtuX3RyZWUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX3RyZWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0cmVlID0gZ2VuX3htbE5vZGVQdHIobl90cmVlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWEluY2x1ZGVQcm9jZXNzVHJlZSh0cmVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3RyZWUsIHRyZWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWEluY2x1ZGVQcm9jZXNzVHJlZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90cmVlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTm9kZVB0ciB0cmVlOyAvKiBhIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50ICovCisgICAgaW50IG5fdHJlZTsKKyAgICBpbnQgZmxhZ3M7IC8qIGEgc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcyAqLworICAgIGludCBuX2ZsYWdzOworCisgICAgZm9yIChuX3RyZWUgPSAwO25fdHJlZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fdHJlZSsrKSB7CisgICAgZm9yIChuX2ZsYWdzID0gMDtuX2ZsYWdzIDwgZ2VuX25iX2ludDtuX2ZsYWdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdHJlZSA9IGdlbl94bWxOb2RlUHRyKG5fdHJlZSwgMCk7CisgICAgICAgIGZsYWdzID0gZ2VuX2ludChuX2ZsYWdzLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzKHRyZWUsIGZsYWdzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3RyZWUsIHRyZWUsIDApOworICAgICAgICBkZXNfaW50KG5fZmxhZ3MsIGZsYWdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90cmVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mbGFncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTm9kZVB0ciB0cmVlOyAvKiBhbiBYTUwgbm9kZSAqLworICAgIGludCBuX3RyZWU7CisgICAgaW50IGZsYWdzOyAvKiBhIHNldCBvZiB4bWxQYXJzZXJPcHRpb24gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXMgKi8KKyAgICBpbnQgbl9mbGFnczsKKyAgICB2b2lkICogZGF0YTsgLyogYXBwbGljYXRpb24gZGF0YSB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBwYXJzZXIgY29udGV4dCBpbiB0aGUgX3ByaXZhdGUgZmllbGQgb2YgdGhlIHBhcnNlciBjb250ZXh0KHMpICovCisgICAgaW50IG5fZGF0YTsKKworICAgIGZvciAobl90cmVlID0gMDtuX3RyZWUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX3RyZWUrKykgeworICAgIGZvciAobl9mbGFncyA9IDA7bl9mbGFncyA8IGdlbl9uYl9pbnQ7bl9mbGFncysrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0cmVlID0gZ2VuX3htbE5vZGVQdHIobl90cmVlLCAwKTsKKyAgICAgICAgZmxhZ3MgPSBnZW5faW50KG5fZmxhZ3MsIDEpOworICAgICAgICBkYXRhID0gZ2VuX3VzZXJkYXRhKG5fZGF0YSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEodHJlZSwgZmxhZ3MsIGRhdGEpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fdHJlZSwgdHJlZSwgMCk7CisgICAgICAgIGRlc19pbnQobl9mbGFncywgZmxhZ3MsIDEpOworICAgICAgICBkZXNfdXNlcmRhdGEobl9kYXRhLCBkYXRhLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHJlZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmxhZ3MpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhJbmNsdWRlU2V0RmxhZ3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YSU5DTFVERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dDsgLyogYW4gWEluY2x1ZGUgcHJvY2Vzc2luZyBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgZmxhZ3M7IC8qIGEgc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcyAqLworICAgIGludCBuX2ZsYWdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYSW5jbHVkZUN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZmxhZ3MgPSAwO25fZmxhZ3MgPCBnZW5fbmJfaW50O25fZmxhZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhJbmNsdWRlQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBmbGFncyA9IGdlbl9pbnQobl9mbGFncywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhJbmNsdWRlU2V0RmxhZ3MoY3R4dCwgZmxhZ3MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYSW5jbHVkZUN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX2ZsYWdzLCBmbGFncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYSW5jbHVkZVNldEZsYWdzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZsYWdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94aW5jbHVkZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgeGluY2x1ZGUgOiA4IG9mIDEwIGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWEluY2x1ZGVOZXdDb250ZXh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYSW5jbHVkZVByb2Nlc3MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhJbmNsdWRlUHJvY2Vzc05vZGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhJbmNsdWRlUHJvY2Vzc1RyZWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFncygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWEluY2x1ZGVTZXRGbGFncygpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgeGluY2x1ZGU6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQWxsb2NPdXRwdXRCdWZmZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldF92YWw7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyOyAvKiB0aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGVyOworCisgICAgZm9yIChuX2VuY29kZXIgPSAwO25fZW5jb2RlciA8IGdlbl9uYl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyO25fZW5jb2RlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGVuY29kZXIgPSBnZW5feG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cihuX2VuY29kZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxBbGxvY091dHB1dEJ1ZmZlcihlbmNvZGVyKTsKKyAgICAgICAgZGVzcmV0X3htbE91dHB1dEJ1ZmZlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cihuX2VuY29kZXIsIGVuY29kZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQWxsb2NPdXRwdXRCdWZmZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2Rlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jOyAvKiB0aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93biAqLworICAgIGludCBuX2VuYzsKKworICAgIGZvciAobl9lbmMgPSAwO25fZW5jIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZztuX2VuYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGVuYyA9IGdlbl94bWxDaGFyRW5jb2Rpbmcobl9lbmMsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyKGVuYyk7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQ2hhckVuY29kaW5nKG5fZW5jLCBlbmMsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hlY2tGaWxlbmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjaGFyICogcGF0aDsgLyogdGhlIHBhdGggdG8gY2hlY2sgKi8KKyAgICBpbnQgbl9wYXRoOworCisgICAgZm9yIChuX3BhdGggPSAwO25fcGF0aCA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX3BhdGgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwYXRoID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fcGF0aCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENoZWNrRmlsZW5hbWUoKGNvbnN0IGNoYXIgKilwYXRoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9wYXRoLCAoY29uc3QgY2hhciAqKXBhdGgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2hlY2tGaWxlbmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wYXRoKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENoZWNrSFRUUElucHV0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiBhbiBYTUwgcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldDsgLyogYW4gWE1MIHBhcnNlciBpbnB1dCAqLworICAgIGludCBuX3JldDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9yZXQgPSAwO25fcmV0IDwgZ2VuX25iX3htbFBhcnNlcklucHV0UHRyO25fcmV0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHJldCA9IGdlbl94bWxQYXJzZXJJbnB1dFB0cihuX3JldCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENoZWNrSFRUUElucHV0KGN0eHQsIHJldCk7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJJbnB1dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sUGFyc2VySW5wdXRQdHIobl9yZXQsIHJldCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDaGVja0hUVFBJbnB1dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZXQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENsZWFudXBJbnB1dENhbGxiYWNrcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHhtbENsZWFudXBJbnB1dENhbGxiYWNrcygpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDbGVhbnVwSW5wdXRDYWxsYmFja3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbENsZWFudXBPdXRwdXRDYWxsYmFja3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICB4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzKCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbENsZWFudXBPdXRwdXRDYWxsYmFja3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRmlsZUNsb3NlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjb250ZXh0OyAvKiB0aGUgSS9PIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jb250ZXh0OworCisgICAgZm9yIChuX2NvbnRleHQgPSAwO25fY29udGV4dCA8IGdlbl9uYl92b2lkX3B0cjtuX2NvbnRleHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb250ZXh0ID0gZ2VuX3ZvaWRfcHRyKG5fY29udGV4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEZpbGVDbG9zZShjb250ZXh0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jb250ZXh0LCBjb250ZXh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEZpbGVDbG9zZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZXh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEZpbGVNYXRjaCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBVUkkgZm9yIG1hdGNoaW5nICovCisgICAgaW50IG5fZmlsZW5hbWU7CisKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxGaWxlTWF0Y2goZmlsZW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxGaWxlTWF0Y2giLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRmlsZU9wZW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgVVJJIGZvciBtYXRjaGluZyAqLworICAgIGludCBuX2ZpbGVuYW1lOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlcGF0aChuX2ZpbGVuYW1lLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sRmlsZU9wZW4oZmlsZW5hbWUpOworICAgICAgICBkZXNyZXRfdm9pZF9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEZpbGVPcGVuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEZpbGVSZWFkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjb250ZXh0OyAvKiB0aGUgSS9PIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jb250ZXh0OworICAgIGNoYXIgKiBidWZmZXI7IC8qIHdoZXJlIHRvIGRyb3AgZGF0YSAqLworICAgIGludCBuX2J1ZmZlcjsKKyAgICBpbnQgbGVuOyAvKiBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fY29udGV4dCA9IDA7bl9jb250ZXh0IDwgZ2VuX25iX3ZvaWRfcHRyO25fY29udGV4dCsrKSB7CisgICAgZm9yIChuX2J1ZmZlciA9IDA7bl9idWZmZXIgPCBnZW5fbmJfY2hhcl9wdHI7bl9idWZmZXIrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvbnRleHQgPSBnZW5fdm9pZF9wdHIobl9jb250ZXh0LCAwKTsKKyAgICAgICAgYnVmZmVyID0gZ2VuX2NoYXJfcHRyKG5fYnVmZmVyLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEZpbGVSZWFkKGNvbnRleHQsIGJ1ZmZlciwgbGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jb250ZXh0LCBjb250ZXh0LCAwKTsKKyAgICAgICAgZGVzX2NoYXJfcHRyKG5fYnVmZmVyLCBidWZmZXIsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRmlsZVJlYWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGV4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxJT0ZUUENsb3NlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjb250ZXh0OyAvKiB0aGUgSS9PIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jb250ZXh0OworCisgICAgZm9yIChuX2NvbnRleHQgPSAwO25fY29udGV4dCA8IGdlbl9uYl92b2lkX3B0cjtuX2NvbnRleHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb250ZXh0ID0gZ2VuX3ZvaWRfcHRyKG5fY29udGV4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbElPRlRQQ2xvc2UoY29udGV4dCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY29udGV4dCwgY29udGV4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJT0ZUUENsb3NlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRleHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxJT0ZUUE1hdGNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIFVSSSBmb3IgbWF0Y2hpbmcgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbElPRlRQTWF0Y2goZmlsZW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxJT0ZUUE1hdGNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSU9GVFBPcGVuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHZvaWQgKiByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIFVSSSBmb3IgbWF0Y2hpbmcgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbElPRlRQT3BlbihmaWxlbmFtZSk7CisgICAgICAgIGRlc3JldF92b2lkX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSU9GVFBPcGVuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSU9GVFBSZWFkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfRlRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjb250ZXh0OyAvKiB0aGUgSS9PIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jb250ZXh0OworICAgIGNoYXIgKiBidWZmZXI7IC8qIHdoZXJlIHRvIGRyb3AgZGF0YSAqLworICAgIGludCBuX2J1ZmZlcjsKKyAgICBpbnQgbGVuOyAvKiBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fY29udGV4dCA9IDA7bl9jb250ZXh0IDwgZ2VuX25iX3ZvaWRfcHRyO25fY29udGV4dCsrKSB7CisgICAgZm9yIChuX2J1ZmZlciA9IDA7bl9idWZmZXIgPCBnZW5fbmJfY2hhcl9wdHI7bl9idWZmZXIrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvbnRleHQgPSBnZW5fdm9pZF9wdHIobl9jb250ZXh0LCAwKTsKKyAgICAgICAgYnVmZmVyID0gZ2VuX2NoYXJfcHRyKG5fYnVmZmVyLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbElPRlRQUmVhZChjb250ZXh0LCBidWZmZXIsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fY29udGV4dCwgY29udGV4dCwgMCk7CisgICAgICAgIGRlc19jaGFyX3B0cihuX2J1ZmZlciwgYnVmZmVyLCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElPRlRQUmVhZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZXh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSU9IVFRQQ2xvc2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHZvaWQgKiBjb250ZXh0OyAvKiB0aGUgSS9PIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jb250ZXh0OworCisgICAgZm9yIChuX2NvbnRleHQgPSAwO25fY29udGV4dCA8IGdlbl9uYl92b2lkX3B0cjtuX2NvbnRleHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb250ZXh0ID0gZ2VuX3ZvaWRfcHRyKG5fY29udGV4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbElPSFRUUENsb3NlKGNvbnRleHQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2NvbnRleHQsIGNvbnRleHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSU9IVFRQQ2xvc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGV4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbElPSFRUUE1hdGNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogZmlsZW5hbWU7IC8qIHRoZSBVUkkgZm9yIG1hdGNoaW5nICovCisgICAgaW50IG5fZmlsZW5hbWU7CisKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGVuYW1lID0gZ2VuX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxJT0hUVFBNYXRjaChmaWxlbmFtZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElPSFRUUE1hdGNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSU9IVFRQT3Blbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX0hUVFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiB0aGUgVVJJIGZvciBtYXRjaGluZyAqLworICAgIGludCBuX2ZpbGVuYW1lOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmaWxlbmFtZSA9IGdlbl9maWxlcGF0aChuX2ZpbGVuYW1lLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sSU9IVFRQT3BlbihmaWxlbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxOYW5vSFRUUEN0eHRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbElPSFRUUE9wZW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxJT0hUVFBSZWFkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB2b2lkICogY29udGV4dDsgLyogdGhlIEkvTyBjb250ZXh0ICovCisgICAgaW50IG5fY29udGV4dDsKKyAgICBjaGFyICogYnVmZmVyOyAvKiB3aGVyZSB0byBkcm9wIGRhdGEgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IGxlbjsgLyogbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2NvbnRleHQgPSAwO25fY29udGV4dCA8IGdlbl9uYl92b2lkX3B0cjtuX2NvbnRleHQrKykgeworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb250ZXh0ID0gZ2VuX3ZvaWRfcHRyKG5fY29udGV4dCwgMCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jaGFyX3B0cihuX2J1ZmZlciwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxJT0hUVFBSZWFkKGNvbnRleHQsIGJ1ZmZlciwgbGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfdm9pZF9wdHIobl9jb250ZXh0LCBjb250ZXh0LCAwKTsKKyAgICAgICAgZGVzX2NoYXJfcHRyKG5fYnVmZmVyLCBidWZmZXIsIDEpOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sSU9IVFRQUmVhZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZXh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXRfdmFsOworICAgIGNvbnN0IGNoYXIgKiBVUkw7IC8qIHRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZCAqLworICAgIGludCBuX1VSTDsKKyAgICBjaGFyICogSUQ7IC8qIHRoZSBTeXN0ZW0gSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZCAqLworICAgIGludCBuX0lEOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsgLyogdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGVudGl0eSBpcyBjYWxsZWQgb3IgTlVMTCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgZm9yIChuX0lEID0gMDtuX0lEIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fSUQrKykgeworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkwgPSBnZW5fZmlsZXBhdGgobl9VUkwsIDApOworICAgICAgICBJRCA9IGdlbl9jb25zdF9jaGFyX3B0cihuX0lELCAxKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoVVJMLCAoY29uc3QgY2hhciAqKUlELCBjdHh0KTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlcklucHV0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fSUQsIChjb25zdCBjaGFyICopSUQsIDEpOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX0lEKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTm9ybWFsaXplV2luZG93c1BhdGgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHBhdGg7IC8qIHRoZSBpbnB1dCBmaWxlIHBhdGggKi8KKyAgICBpbnQgbl9wYXRoOworCisgICAgZm9yIChuX3BhdGggPSAwO25fcGF0aCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3BhdGgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBwYXRoID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcGF0aCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5vcm1hbGl6ZVdpbmRvd3NQYXRoKChjb25zdCB4bWxDaGFyICopcGF0aCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wYXRoLCAoY29uc3QgeG1sQ2hhciAqKXBhdGgsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTm9ybWFsaXplV2luZG93c1BhdGgiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcGF0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldF92YWw7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZmZlcjsgLyogYSB4bWxCdWZmZXJQdHIgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyOyAvKiB0aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGVyOworCisgICAgZm9yIChuX2J1ZmZlciA9IDA7bl9idWZmZXIgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fZW5jb2RlciA9IDA7bl9lbmNvZGVyIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI7bl9lbmNvZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmZmVyID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZmZlciwgMCk7CisgICAgICAgIGVuY29kZXIgPSBnZW5feG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cihuX2VuY29kZXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIoYnVmZmVyLCBlbmNvZGVyKTsKKyAgICAgICAgZGVzcmV0X3htbE91dHB1dEJ1ZmZlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmZmVyLCBidWZmZXIsIDApOworICAgICAgICBkZXNfeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cihuX2VuY29kZXIsIGVuY29kZXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1ZmZlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2Rlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxPdXRwdXRCdWZmZXJDcmVhdGVGZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgcmV0X3ZhbDsKKyAgICBpbnQgZmQ7IC8qIGEgZmlsZSBkZXNjcmlwdG9yIG51bWJlciAqLworICAgIGludCBuX2ZkOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2RlcjsgLyogdGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2RlcjsKKworICAgIGZvciAobl9mZCA9IDA7bl9mZCA8IGdlbl9uYl9pbnQ7bl9mZCsrKSB7CisgICAgZm9yIChuX2VuY29kZXIgPSAwO25fZW5jb2RlciA8IGdlbl9uYl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyO25fZW5jb2RlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZkID0gZ2VuX2ludChuX2ZkLCAwKTsKKyAgICAgICAgZW5jb2RlciA9IGdlbl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5fZW5jb2RlciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkKGZkLCBlbmNvZGVyKTsKKyAgICAgICAgZGVzcmV0X3htbE91dHB1dEJ1ZmZlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fZmQsIGZkLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIobl9lbmNvZGVyLCBlbmNvZGVyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldF92YWw7CisgICAgRklMRSAqIGZpbGU7IC8qIGEgRklMRSogKi8KKyAgICBpbnQgbl9maWxlOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2RlcjsgLyogdGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2RlcjsKKworICAgIGZvciAobl9maWxlID0gMDtuX2ZpbGUgPCBnZW5fbmJfRklMRV9wdHI7bl9maWxlKyspIHsKKyAgICBmb3IgKG5fZW5jb2RlciA9IDA7bl9lbmNvZGVyIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHI7bl9lbmNvZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZSA9IGdlbl9GSUxFX3B0cihuX2ZpbGUsIDApOworICAgICAgICBlbmNvZGVyID0gZ2VuX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIobl9lbmNvZGVyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZShmaWxlLCBlbmNvZGVyKTsKKyAgICAgICAgZGVzcmV0X3htbE91dHB1dEJ1ZmZlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfRklMRV9wdHIobl9maWxlLCBmaWxlLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIobl9lbmNvZGVyLCBlbmNvZGVyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2Rlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogVVJJOyAvKiBhIEMgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVSSSBvciBmaWxlbmFtZSAqLworICAgIGludCBuX1VSSTsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXI7IC8qIHRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kZXI7CisgICAgaW50IGNvbXByZXNzaW9uOyAvKiB0aGUgY29tcHJlc3Npb24gcmF0aW9uICgwIG5vbmUsIDkgbWF4KS4gKi8KKyAgICBpbnQgbl9jb21wcmVzc2lvbjsKKworICAgIGZvciAobl9VUkkgPSAwO25fVVJJIDwgZ2VuX25iX2ZpbGVvdXRwdXQ7bl9VUkkrKykgeworICAgIGZvciAobl9lbmNvZGVyID0gMDtuX2VuY29kZXIgPCBnZW5fbmJfeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0cjtuX2VuY29kZXIrKykgeworICAgIGZvciAobl9jb21wcmVzc2lvbiA9IDA7bl9jb21wcmVzc2lvbiA8IGdlbl9uYl9pbnQ7bl9jb21wcmVzc2lvbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIFVSSSA9IGdlbl9maWxlb3V0cHV0KG5fVVJJLCAwKTsKKyAgICAgICAgZW5jb2RlciA9IGdlbl94bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5fZW5jb2RlciwgMSk7CisgICAgICAgIGNvbXByZXNzaW9uID0gZ2VuX2ludChuX2NvbXByZXNzaW9uLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoVVJJLCBlbmNvZGVyLCBjb21wcmVzc2lvbik7CisgICAgICAgIGRlc3JldF94bWxPdXRwdXRCdWZmZXJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVvdXRwdXQobl9VUkksIFVSSSwgMCk7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyKG5fZW5jb2RlciwgZW5jb2RlciwgMSk7CisgICAgICAgIGRlc19pbnQobl9jb21wcmVzc2lvbiwgY29tcHJlc3Npb24sIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJJKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb21wcmVzc2lvbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sT3V0cHV0QnVmZmVyRmx1c2godm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dDsgLyogYSBidWZmZXJlZCBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXQ7CisKKyAgICBmb3IgKG5fb3V0ID0gMDtuX291dCA8IGdlbl9uYl94bWxPdXRwdXRCdWZmZXJQdHI7bl9vdXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXQgPSBnZW5feG1sT3V0cHV0QnVmZmVyUHRyKG5fb3V0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sT3V0cHV0QnVmZmVyRmx1c2gob3V0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sT3V0cHV0QnVmZmVyUHRyKG5fb3V0LCBvdXQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sT3V0cHV0QnVmZmVyRmx1c2giLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sT3V0cHV0QnVmZmVyV3JpdGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dDsgLyogYSBidWZmZXJlZCBwYXJzZXIgb3V0cHV0ICovCisgICAgaW50IG5fb3V0OworICAgIGludCBsZW47IC8qIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4gKi8KKyAgICBpbnQgbl9sZW47CisgICAgY2hhciAqIGJ1ZjsgLyogYW4gY2hhciBhcnJheSAqLworICAgIGludCBuX2J1ZjsKKworICAgIGZvciAobl9vdXQgPSAwO25fb3V0IDwgZ2VuX25iX3htbE91dHB1dEJ1ZmZlclB0cjtuX291dCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICBmb3IgKG5fYnVmID0gMDtuX2J1ZiA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2J1ZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dCA9IGdlbl94bWxPdXRwdXRCdWZmZXJQdHIobl9vdXQsIDApOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAxKTsKKyAgICAgICAgYnVmID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fYnVmLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sT3V0cHV0QnVmZmVyV3JpdGUob3V0LCBsZW4sIChjb25zdCBjaGFyICopYnVmKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sT3V0cHV0QnVmZmVyUHRyKG5fb3V0LCBvdXQsIDApOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWYsIChjb25zdCBjaGFyICopYnVmLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE91dHB1dEJ1ZmZlcldyaXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgb3V0OyAvKiBhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQgKi8KKyAgICBpbnQgbl9vdXQ7CisgICAgY2hhciAqIHN0cjsgLyogYSB6ZXJvIHRlcm1pbmF0ZWQgQyBzdHJpbmcgKi8KKyAgICBpbnQgbl9zdHI7CisKKyAgICBmb3IgKG5fb3V0ID0gMDtuX291dCA8IGdlbl9uYl94bWxPdXRwdXRCdWZmZXJQdHI7bl9vdXQrKykgeworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fc3RyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0ID0gZ2VuX3htbE91dHB1dEJ1ZmZlclB0cihuX291dCwgMCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX3N0ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKG91dCwgKGNvbnN0IGNoYXIgKilzdHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxPdXRwdXRCdWZmZXJQdHIobl9vdXQsIG91dCwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX3N0ciwgKGNvbnN0IGNoYXIgKilzdHIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VyR2V0RGlyZWN0b3J5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIHJldF92YWw7CisgICAgaW50IGZkOyAvKiBhIGZpbGUgZGVzY3JpcHRvciBudW1iZXIgKi8KKyAgICBpbnQgbl9mZDsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jOyAvKiB0aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93biAqLworICAgIGludCBuX2VuYzsKKworICAgIGZvciAobl9mZCA9IDA7bl9mZCA8IGdlbl9uYl9pbnQ7bl9mZCsrKSB7CisgICAgZm9yIChuX2VuYyA9IDA7bl9lbmMgPCBnZW5fbmJfeG1sQ2hhckVuY29kaW5nO25fZW5jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmQgPSBnZW5faW50KG5fZmQsIDApOworICAgICAgICBlbmMgPSBnZW5feG1sQ2hhckVuY29kaW5nKG5fZW5jLCAxKTsKKyAgICAgICAgaWYgKGZkID49IDApIGZkID0gLTE7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQoZmQsIGVuYyk7CisgICAgICAgIGRlc3JldF94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fZmQsIGZkLCAwKTsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZyhuX2VuYywgZW5jLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIHJldF92YWw7CisgICAgRklMRSAqIGZpbGU7IC8qIGEgRklMRSogKi8KKyAgICBpbnQgbl9maWxlOworICAgIHhtbENoYXJFbmNvZGluZyBlbmM7IC8qIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duICovCisgICAgaW50IG5fZW5jOworCisgICAgZm9yIChuX2ZpbGUgPSAwO25fZmlsZSA8IGdlbl9uYl9GSUxFX3B0cjtuX2ZpbGUrKykgeworICAgIGZvciAobl9lbmMgPSAwO25fZW5jIDwgZ2VuX25iX3htbENoYXJFbmNvZGluZztuX2VuYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZpbGUgPSBnZW5fRklMRV9wdHIobl9maWxlLCAwKTsKKyAgICAgICAgZW5jID0gZ2VuX3htbENoYXJFbmNvZGluZyhuX2VuYywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZShmaWxlLCBlbmMpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fZmlsZSwgZmlsZSwgMCk7CisgICAgICAgIGRlc194bWxDaGFyRW5jb2Rpbmcobl9lbmMsIGVuYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIFVSSTsgLyogYSBDIHN0cmluZyBjb250YWluaW5nIHRoZSBVUkkgb3IgZmlsZW5hbWUgKi8KKyAgICBpbnQgbl9VUkk7CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsgLyogdGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24gKi8KKyAgICBpbnQgbl9lbmM7CisKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9maWxlb3V0cHV0O25fVVJJKyspIHsKKyAgICBmb3IgKG5fZW5jID0gMDtuX2VuYyA8IGdlbl9uYl94bWxDaGFyRW5jb2Rpbmc7bl9lbmMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkkgPSBnZW5fZmlsZW91dHB1dChuX1VSSSwgMCk7CisgICAgICAgIGVuYyA9IGdlbl94bWxDaGFyRW5jb2Rpbmcobl9lbmMsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKFVSSSwgZW5jKTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlcklucHV0QnVmZmVyUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlb3V0cHV0KG5fVVJJLCBVUkksIDApOworICAgICAgICBkZXNfeG1sQ2hhckVuY29kaW5nKG5fZW5jLCBlbmMsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkkpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0X3ZhbDsKKyAgICBjaGFyICogbWVtOyAvKiB0aGUgbWVtb3J5IGlucHV0ICovCisgICAgaW50IG5fbWVtOworICAgIGludCBzaXplOyAvKiB0aGUgbGVuZ3RoIG9mIHRoZSBtZW1vcnkgYmxvY2sgKi8KKyAgICBpbnQgbl9zaXplOworICAgIHhtbENoYXJFbmNvZGluZyBlbmM7IC8qIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duICovCisgICAgaW50IG5fZW5jOworCisgICAgZm9yIChuX21lbSA9IDA7bl9tZW0gPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9tZW0rKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50O25fc2l6ZSsrKSB7CisgICAgZm9yIChuX2VuYyA9IDA7bl9lbmMgPCBnZW5fbmJfeG1sQ2hhckVuY29kaW5nO25fZW5jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbWVtID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fbWVtLCAwKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnQobl9zaXplLCAxKTsKKyAgICAgICAgZW5jID0gZ2VuX3htbENoYXJFbmNvZGluZyhuX2VuYywgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtKChjb25zdCBjaGFyICopbWVtLCBzaXplLCBlbmMpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fbWVtLCAoY29uc3QgY2hhciAqKW1lbSwgMCk7CisgICAgICAgIGRlc19pbnQobl9zaXplLCBzaXplLCAxKTsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZyhuX2VuYywgZW5jLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX21lbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0X3ZhbDsKKyAgICBjaGFyICogbWVtOyAvKiB0aGUgbWVtb3J5IGlucHV0ICovCisgICAgaW50IG5fbWVtOworICAgIGludCBzaXplOyAvKiB0aGUgbGVuZ3RoIG9mIHRoZSBtZW1vcnkgYmxvY2sgKi8KKyAgICBpbnQgbl9zaXplOworICAgIHhtbENoYXJFbmNvZGluZyBlbmM7IC8qIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duICovCisgICAgaW50IG5fZW5jOworCisgICAgZm9yIChuX21lbSA9IDA7bl9tZW0gPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9tZW0rKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50O25fc2l6ZSsrKSB7CisgICAgZm9yIChuX2VuYyA9IDA7bl9lbmMgPCBnZW5fbmJfeG1sQ2hhckVuY29kaW5nO25fZW5jKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbWVtID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fbWVtLCAwKTsKKyAgICAgICAgc2l6ZSA9IGdlbl9pbnQobl9zaXplLCAxKTsKKyAgICAgICAgZW5jID0gZ2VuX3htbENoYXJFbmNvZGluZyhuX2VuYywgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljKChjb25zdCBjaGFyICopbWVtLCBzaXplLCBlbmMpOworICAgICAgICBkZXNyZXRfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fbWVtLCAoY29uc3QgY2hhciAqKW1lbSwgMCk7CisgICAgICAgIGRlc19pbnQobl9zaXplLCBzaXplLCAxKTsKKyAgICAgICAgZGVzX3htbENoYXJFbmNvZGluZyhuX2VuYywgZW5jLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX21lbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2l6ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGluOyAvKiBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCAqLworICAgIGludCBuX2luOworICAgIGludCBsZW47IC8qIGluZGljYXRpdmUgdmFsdWUgb2YgdGhlIGFtb3VudCBvZiBjaGFycyB0byByZWFkICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX2luID0gMDtuX2luIDwgZ2VuX25iX3htbFBhcnNlcklucHV0QnVmZmVyUHRyO25faW4rKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGluID0gZ2VuX3htbFBhcnNlcklucHV0QnVmZmVyUHRyKG5faW4sIDApOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sUGFyc2VySW5wdXRCdWZmZXJHcm93KGluLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cihuX2luLCBpbiwgMCk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3ciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGluOyAvKiBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCAqLworICAgIGludCBuX2luOworICAgIGludCBsZW47IC8qIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBhcnJheS4gKi8KKyAgICBpbnQgbl9sZW47CisgICAgY2hhciAqIGJ1ZjsgLyogYW4gY2hhciBhcnJheSAqLworICAgIGludCBuX2J1ZjsKKworICAgIGZvciAobl9pbiA9IDA7bl9pbiA8IGdlbl9uYl94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjtuX2luKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgIGZvciAobl9idWYgPSAwO25fYnVmIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaW4gPSBnZW5feG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbiwgMCk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDEpOworICAgICAgICBidWYgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9idWYsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2goaW4sIGxlbiwgKGNvbnN0IGNoYXIgKilidWYpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cihuX2luLCBpbiwgMCk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2J1ZiwgKGNvbnN0IGNoYXIgKilidWYsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VySW5wdXRCdWZmZXJQdXNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2J1Zik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbjsgLyogYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgKi8KKyAgICBpbnQgbl9pbjsKKyAgICBpbnQgbGVuOyAvKiBpbmRpY2F0aXZlIHZhbHVlIG9mIHRoZSBhbW91bnQgb2YgY2hhcnMgdG8gcmVhZCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9pbiA9IDA7bl9pbiA8IGdlbl9uYl94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjtuX2luKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBpbiA9IGdlbl94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cihuX2luLCAwKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZChpbiwgbGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbiwgaW4sIDApOworICAgICAgICBkZXNfaW50KG5fbGVuLCBsZW4sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFBvcElucHV0Q2FsbGJhY2tzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFBvcElucHV0Q2FsbGJhY2tzKCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBvcElucHV0Q2FsbGJhY2tzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzKCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKworICAgICAgICB4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworCisgICAgICAgIHhtbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sSU8odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhtbElPIDogMzkgb2YgNDggZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBbGxvY091dHB1dEJ1ZmZlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2hlY2tGaWxlbmFtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2hlY2tIVFRQSW5wdXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENsZWFudXBJbnB1dENhbGxiYWNrcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRmlsZUNsb3NlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxGaWxlTWF0Y2goKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEZpbGVPcGVuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxGaWxlUmVhZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSU9GVFBDbG9zZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSU9GVFBNYXRjaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSU9GVFBPcGVuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJT0ZUUFJlYWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbElPSFRUUENsb3NlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxJT0hUVFBNYXRjaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSU9IVFRQT3BlbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sSU9IVFRQUmVhZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTm9ybWFsaXplV2luZG93c1BhdGgoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE91dHB1dEJ1ZmZlckNyZWF0ZUJ1ZmZlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxPdXRwdXRCdWZmZXJGbHVzaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sT3V0cHV0QnVmZmVyV3JpdGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VyR2V0RGlyZWN0b3J5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlTWVtKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2goKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUG9wSW5wdXRDYWxsYmFja3MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIHhtbElPOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbEF1dG9tYXRhUHRyIDEKK3N0YXRpYyB4bWxBdXRvbWF0YVB0ciBnZW5feG1sQXV0b21hdGFQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbEF1dG9tYXRhUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxBdXRvbWF0YVB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQXV0b21hdGFDb21waWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBdXRvbWF0YUdldEluaXRTdGF0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQXV0b21hdGFJc0RldGVybWluaXN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEF1dG9tYXRhUHRyIGFtOyAvKiBhbiBhdXRvbWF0YSAqLworICAgIGludCBuX2FtOworCisgICAgZm9yIChuX2FtID0gMDtuX2FtIDwgZ2VuX25iX3htbEF1dG9tYXRhUHRyO25fYW0rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBhbSA9IGdlbl94bWxBdXRvbWF0YVB0cihuX2FtLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sQXV0b21hdGFJc0RldGVybWluaXN0KGFtKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQXV0b21hdGFQdHIobl9hbSwgYW0sIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQXV0b21hdGFJc0RldGVybWluaXN0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2FtKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjaWZkZWYgTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sQXV0b21hdGFTdGF0ZVB0ciAxCitzdGF0aWMgeG1sQXV0b21hdGFTdGF0ZVB0ciBnZW5feG1sQXV0b21hdGFTdGF0ZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sQXV0b21hdGFTdGF0ZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sQXV0b21hdGFTdGF0ZVB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQXV0b21hdGFOZXdBbGxUcmFucyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQXV0b21hdGFOZXdDb3VudGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEF1dG9tYXRhUHRyIGFtOyAvKiBhbiBhdXRvbWF0YSAqLworICAgIGludCBuX2FtOworICAgIGludCBtaW47IC8qIHRoZSBtaW5pbWFsIHZhbHVlIG9uIHRoZSBjb3VudGVyICovCisgICAgaW50IG5fbWluOworICAgIGludCBtYXg7IC8qIHRoZSBtYXhpbWFsIHZhbHVlIG9uIHRoZSBjb3VudGVyICovCisgICAgaW50IG5fbWF4OworCisgICAgZm9yIChuX2FtID0gMDtuX2FtIDwgZ2VuX25iX3htbEF1dG9tYXRhUHRyO25fYW0rKykgeworICAgIGZvciAobl9taW4gPSAwO25fbWluIDwgZ2VuX25iX2ludDtuX21pbisrKSB7CisgICAgZm9yIChuX21heCA9IDA7bl9tYXggPCBnZW5fbmJfaW50O25fbWF4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYW0gPSBnZW5feG1sQXV0b21hdGFQdHIobl9hbSwgMCk7CisgICAgICAgIG1pbiA9IGdlbl9pbnQobl9taW4sIDEpOworICAgICAgICBtYXggPSBnZW5faW50KG5fbWF4LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sQXV0b21hdGFOZXdDb3VudGVyKGFtLCBtaW4sIG1heCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEF1dG9tYXRhUHRyKG5fYW0sIGFtLCAwKTsKKyAgICAgICAgZGVzX2ludChuX21pbiwgbWluLCAxKTsKKyAgICAgICAgZGVzX2ludChuX21heCwgbWF4LCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEF1dG9tYXRhTmV3Q291bnRlciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hbSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbWluKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tYXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBdXRvbWF0YU5ld0Vwc2lsb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEF1dG9tYXRhTmV3TmVnVHJhbnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEF1dG9tYXRhTmV3T25jZVRyYW5zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxBdXRvbWF0YU5ld09uY2VUcmFuczIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEF1dG9tYXRhTmV3U3RhdGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEF1dG9tYXRhUHRyIGFtOyAvKiBhbiBhdXRvbWF0YSAqLworICAgIGludCBuX2FtOworICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgc3RhdGU7IC8qIGEgc3RhdGUgaW4gdGhpcyBhdXRvbWF0YSAqLworICAgIGludCBuX3N0YXRlOworCisgICAgZm9yIChuX2FtID0gMDtuX2FtIDwgZ2VuX25iX3htbEF1dG9tYXRhUHRyO25fYW0rKykgeworICAgIGZvciAobl9zdGF0ZSA9IDA7bl9zdGF0ZSA8IGdlbl9uYl94bWxBdXRvbWF0YVN0YXRlUHRyO25fc3RhdGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBhbSA9IGdlbl94bWxBdXRvbWF0YVB0cihuX2FtLCAwKTsKKyAgICAgICAgc3RhdGUgPSBnZW5feG1sQXV0b21hdGFTdGF0ZVB0cihuX3N0YXRlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlKGFtLCBzdGF0ZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEF1dG9tYXRhUHRyKG5fYW0sIGFtLCAwKTsKKyAgICAgICAgZGVzX3htbEF1dG9tYXRhU3RhdGVQdHIobl9zdGF0ZSwgc3RhdGUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2FtKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdGF0ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdBdXRvbWF0YSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbGF1dG9tYXRhKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyB4bWxhdXRvbWF0YSA6IDMgb2YgMTkgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBdXRvbWF0YUNvbXBpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEF1dG9tYXRhR2V0SW5pdFN0YXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEF1dG9tYXRhTmV3QWxsVHJhbnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEF1dG9tYXRhTmV3Q291bnRUcmFucygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEF1dG9tYXRhTmV3Q291bnRlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEF1dG9tYXRhTmV3RXBzaWxvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQXV0b21hdGFOZXdOZWdUcmFucygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQXV0b21hdGFOZXdPbmNlVHJhbnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQXV0b21hdGFOZXdTdGF0ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE5ld0F1dG9tYXRhKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4bWxhdXRvbWF0YTogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2RlZmluZSBnZW5fbmJfeG1sR2VuZXJpY0Vycm9yRnVuY19wdHIgMQorc3RhdGljIHhtbEdlbmVyaWNFcnJvckZ1bmMgKiBnZW5feG1sR2VuZXJpY0Vycm9yRnVuY19wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbEdlbmVyaWNFcnJvckZ1bmNfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxHZW5lcmljRXJyb3JGdW5jICogdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfaW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgKiBoYW5kbGVyOyAvKiB0aGUgaGFuZGxlciAqLworICAgIGludCBuX2hhbmRsZXI7CisKKyAgICBmb3IgKG5faGFuZGxlciA9IDA7bl9oYW5kbGVyIDwgZ2VuX25iX3htbEdlbmVyaWNFcnJvckZ1bmNfcHRyO25faGFuZGxlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGhhbmRsZXIgPSBnZW5feG1sR2VuZXJpY0Vycm9yRnVuY19wdHIobl9oYW5kbGVyLCAwKTsKKworICAgICAgICBpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMoaGFuZGxlcik7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEdlbmVyaWNFcnJvckZ1bmNfcHRyKG5faGFuZGxlciwgaGFuZGxlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiBpbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faGFuZGxlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworI2RlZmluZSBnZW5fbmJfeG1sRXJyb3JQdHIgMQorc3RhdGljIHhtbEVycm9yUHRyIGdlbl94bWxFcnJvclB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sRXJyb3JQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbEVycm9yUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbENvcHlFcnJvcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxFcnJvclB0ciBmcm9tOyAvKiBhIHNvdXJjZSBlcnJvciAqLworICAgIGludCBuX2Zyb207CisgICAgeG1sRXJyb3JQdHIgdG87IC8qIGEgdGFyZ2V0IGVycm9yICovCisgICAgaW50IG5fdG87CisKKyAgICBmb3IgKG5fZnJvbSA9IDA7bl9mcm9tIDwgZ2VuX25iX3htbEVycm9yUHRyO25fZnJvbSsrKSB7CisgICAgZm9yIChuX3RvID0gMDtuX3RvIDwgZ2VuX25iX3htbEVycm9yUHRyO25fdG8rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmcm9tID0gZ2VuX3htbEVycm9yUHRyKG5fZnJvbSwgMCk7CisgICAgICAgIHRvID0gZ2VuX3htbEVycm9yUHRyKG5fdG8sIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxDb3B5RXJyb3IoZnJvbSwgdG8pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxFcnJvclB0cihuX2Zyb20sIGZyb20sIDApOworICAgICAgICBkZXNfeG1sRXJyb3JQdHIobl90bywgdG8sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ29weUVycm9yIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Zyb20pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RvKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDdHh0R2V0TGFzdEVycm9yKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxDdHh0UmVzZXRMYXN0RXJyb3Iodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdm9pZCAqIGN0eDsgLyogYW4gWE1MIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4OworCisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfdm9pZF9wdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHIobl9jdHgsIDApOworCisgICAgICAgIHhtbEN0eHRSZXNldExhc3RFcnJvcihjdHgpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc192b2lkX3B0cihuX2N0eCwgY3R4LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEN0eHRSZXNldExhc3RFcnJvciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sR2V0TGFzdEVycm9yKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZXJFcnJvcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsgLyogYW4geG1sUGFyc2VySW5wdXRQdHIgaW5wdXQgKi8KKyAgICBpbnQgbl9pbnB1dDsKKworICAgIGZvciAobl9pbnB1dCA9IDA7bl9pbnB1dCA8IGdlbl9uYl94bWxQYXJzZXJJbnB1dFB0cjtuX2lucHV0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaW5wdXQgPSBnZW5feG1sUGFyc2VySW5wdXRQdHIobl9pbnB1dCwgMCk7CisKKyAgICAgICAgeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dChpbnB1dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlcklucHV0UHRyKG5faW5wdXQsIGlucHV0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlclByaW50RmlsZUNvbnRleHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW5wdXQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsgLyogYW4geG1sUGFyc2VySW5wdXRQdHIgaW5wdXQgKi8KKyAgICBpbnQgbl9pbnB1dDsKKworICAgIGZvciAobl9pbnB1dCA9IDA7bl9pbnB1dCA8IGdlbl9uYl94bWxQYXJzZXJJbnB1dFB0cjtuX2lucHV0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgaW5wdXQgPSBnZW5feG1sUGFyc2VySW5wdXRQdHIobl9pbnB1dCwgMCk7CisKKyAgICAgICAgeG1sUGFyc2VyUHJpbnRGaWxlSW5mbyhpbnB1dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFBhcnNlcklucHV0UHRyKG5faW5wdXQsIGlucHV0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFBhcnNlclByaW50RmlsZUluZm8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW5wdXQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VyVmFsaWRpdHlFcnJvcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUGFyc2VyVmFsaWRpdHlXYXJuaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxQYXJzZXJXYXJuaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZXNldEVycm9yKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbEVycm9yUHRyIGVycjsgLyogcG9pbnRlciB0byB0aGUgZXJyb3IuICovCisgICAgaW50IG5fZXJyOworCisgICAgZm9yIChuX2VyciA9IDA7bl9lcnIgPCBnZW5fbmJfeG1sRXJyb3JQdHI7bl9lcnIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBlcnIgPSBnZW5feG1sRXJyb3JQdHIobl9lcnIsIDApOworCisgICAgICAgIHhtbFJlc2V0RXJyb3IoZXJyKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRXJyb3JQdHIobl9lcnIsIGVyciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZXNldEVycm9yIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Vycik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZXNldExhc3RFcnJvcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbGVycm9yKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyB4bWxlcnJvciA6IDcgb2YgMTUgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF9pbml0R2VuZXJpY0Vycm9yRGVmYXVsdEZ1bmMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENvcHlFcnJvcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ3R4dEdldExhc3RFcnJvcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ3R4dFJlc2V0TGFzdEVycm9yKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxHZXRMYXN0RXJyb3IoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlckVycm9yKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJQcmludEZpbGVDb250ZXh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJQcmludEZpbGVJbmZvKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJWYWxpZGl0eUVycm9yKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFBhcnNlcldhcm5pbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlc2V0RXJyb3IoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlc2V0TGFzdEVycm9yKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTZXRHZW5lcmljRXJyb3JGdW5jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4bWxlcnJvcjogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKyNpZmRlZiBMSUJYTUxfTU9EVUxFU19FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbE1vZHVsZVB0ciAxCitzdGF0aWMgeG1sTW9kdWxlUHRyIGdlbl94bWxNb2R1bGVQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbE1vZHVsZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sTW9kdWxlUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxNb2R1bGVDbG9zZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX01PRFVMRVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTW9kdWxlUHRyIG1vZHVsZTsgLyogdGhlIG1vZHVsZSBoYW5kbGUgKi8KKyAgICBpbnQgbl9tb2R1bGU7CisKKyAgICBmb3IgKG5fbW9kdWxlID0gMDtuX21vZHVsZSA8IGdlbl9uYl94bWxNb2R1bGVQdHI7bl9tb2R1bGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBtb2R1bGUgPSBnZW5feG1sTW9kdWxlUHRyKG5fbW9kdWxlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sTW9kdWxlQ2xvc2UobW9kdWxlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTW9kdWxlUHRyKG5fbW9kdWxlLCBtb2R1bGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTW9kdWxlQ2xvc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbW9kdWxlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTW9kdWxlT3Blbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTW9kdWxlU3ltYm9sKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfTU9EVUxFU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxNb2R1bGVQdHIgbW9kdWxlOyAvKiB0aGUgbW9kdWxlICovCisgICAgaW50IG5fbW9kdWxlOworICAgIGNoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgc3ltYm9sICovCisgICAgaW50IG5fbmFtZTsKKyAgICB2b2lkICoqIHN5bWJvbDsgLyogdGhlIHJlc3VsdGluZyBzeW1ib2wgYWRkcmVzcyAqLworICAgIGludCBuX3N5bWJvbDsKKworICAgIGZvciAobl9tb2R1bGUgPSAwO25fbW9kdWxlIDwgZ2VuX25iX3htbE1vZHVsZVB0cjtuX21vZHVsZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9zeW1ib2wgPSAwO25fc3ltYm9sIDwgZ2VuX25iX3ZvaWRfcHRyX3B0cjtuX3N5bWJvbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG1vZHVsZSA9IGdlbl94bWxNb2R1bGVQdHIobl9tb2R1bGUsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHN5bWJvbCA9IGdlbl92b2lkX3B0cl9wdHIobl9zeW1ib2wsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxNb2R1bGVTeW1ib2wobW9kdWxlLCAoY29uc3QgY2hhciAqKW5hbWUsIHN5bWJvbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE1vZHVsZVB0cihuX21vZHVsZSwgbW9kdWxlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IGNoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX3ZvaWRfcHRyX3B0cihuX3N5bWJvbCwgc3ltYm9sLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE1vZHVsZVN5bWJvbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9tb2R1bGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N5bWJvbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbG1vZHVsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgeG1sbW9kdWxlIDogMiBvZiA0IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTW9kdWxlQ2xvc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE1vZHVsZU9wZW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbE1vZHVsZVN5bWJvbCgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgeG1sbW9kdWxlOiAlZCBlcnJvcnNcbiIsIHRlc3RfcmV0KTsKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld1RleHRSZWFkZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZXRfdmFsOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0OyAvKiB0aGUgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgdXNlZCB0byByZWFkIGRhdGEgKi8KKyAgICBpbnQgbl9pbnB1dDsKKyAgICBjb25zdCBjaGFyICogVVJJOyAvKiB0aGUgVVJJIGluZm9ybWF0aW9uIGZvciB0aGUgc291cmNlIGlmIGF2YWlsYWJsZSAqLworICAgIGludCBuX1VSSTsKKworICAgIGZvciAobl9pbnB1dCA9IDA7bl9pbnB1dCA8IGdlbl9uYl94bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cjtuX2lucHV0KyspIHsKKyAgICBmb3IgKG5fVVJJID0gMDtuX1VSSSA8IGdlbl9uYl9maWxlcGF0aDtuX1VSSSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGlucHV0ID0gZ2VuX3htbFBhcnNlcklucHV0QnVmZmVyUHRyKG5faW5wdXQsIDApOworICAgICAgICBVUkkgPSBnZW5fZmlsZXBhdGgobl9VUkksIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdUZXh0UmVhZGVyKGlucHV0LCBVUkkpOworICAgICAgICBkZXNyZXRfeG1sVGV4dFJlYWRlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbnB1dCwgaW5wdXQsIDApOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkksIFVSSSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdUZXh0UmVhZGVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2lucHV0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkkpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogVVJJOyAvKiB0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSB0byBwcm9jZXNzICovCisgICAgaW50IG5fVVJJOworCisgICAgZm9yIChuX1VSSSA9IDA7bl9VUkkgPCBnZW5fbmJfZmlsZXBhdGg7bl9VUkkrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkkgPSBnZW5fZmlsZXBhdGgobl9VUkksIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWUoVVJJKTsKKyAgICAgICAgZGVzcmV0X3htbFRleHRSZWFkZXJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fVVJJLCBVUkksIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSSSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlYWRlckZvckRvYyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIGN1cjsgLyogYSBwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZyAqLworICAgIGludCBuX2N1cjsKKyAgICBjb25zdCBjaGFyICogVVJMOyAvKiB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9VUkw7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24gKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jdXIrKykgeworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2ZpbGVwYXRoO25fVVJMKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgMCk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZGVyRm9yRG9jKChjb25zdCB4bWxDaGFyICopY3VyLCBVUkwsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfeG1sVGV4dFJlYWRlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIChjb25zdCB4bWxDaGFyICopY3VyLCAwKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fVVJMLCBVUkwsIDEpOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMik7CisgICAgICAgIGRlc19wYXJzZXJvcHRpb25zKG5fb3B0aW9ucywgb3B0aW9ucywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWFkZXJGb3JEb2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVhZGVyRm9yRmlsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJldF92YWw7CisgICAgY29uc3QgY2hhciAqIGZpbGVuYW1lOyAvKiBhIGZpbGUgb3IgVVJMICovCisgICAgaW50IG5fZmlsZW5hbWU7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24gKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2ZpbGVuYW1lID0gMDtuX2ZpbGVuYW1lIDwgZ2VuX25iX2ZpbGVwYXRoO25fZmlsZW5hbWUrKykgeworICAgIGZvciAobl9lbmNvZGluZyA9IDA7bl9lbmNvZGluZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2VuY29kaW5nKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX3BhcnNlcm9wdGlvbnM7bl9vcHRpb25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMCk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDEpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZGVyRm9yRmlsZShmaWxlbmFtZSwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF94bWxUZXh0UmVhZGVyUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19maWxlcGF0aChuX2ZpbGVuYW1lLCBmaWxlbmFtZSwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAxKTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlYWRlckZvckZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWFkZXJGb3JNZW1vcnkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZXRfdmFsOworICAgIGNoYXIgKiBidWZmZXI7IC8qIGEgcG9pbnRlciB0byBhIGNoYXIgYXJyYXkgKi8KKyAgICBpbnQgbl9idWZmZXI7CisgICAgaW50IHNpemU7IC8qIHRoZSBzaXplIG9mIHRoZSBhcnJheSAqLworICAgIGludCBuX3NpemU7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fVVJMOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9idWZmZXIgPSAwO25fYnVmZmVyIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fYnVmZmVyKyspIHsKKyAgICBmb3IgKG5fc2l6ZSA9IDA7bl9zaXplIDwgZ2VuX25iX2ludDtuX3NpemUrKykgeworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2ZpbGVwYXRoO25fVVJMKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMCk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMSk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMik7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDMpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZGVyRm9yTWVtb3J5KChjb25zdCBjaGFyICopYnVmZmVyLCBzaXplLCBVUkwsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfeG1sVGV4dFJlYWRlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDEpOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMik7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAzKTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlYWRlckZvck1lbW9yeSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVhZGVyTmV3RG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiBhbiBYTUwgcmVhZGVyICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbENoYXIgKiBjdXI7IC8qIGEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmcgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgY29uc3QgY2hhciAqIFVSTDsgLyogdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50ICovCisgICAgaW50IG5fVVJMOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfcGFyc2Vyb3B0aW9ucztuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisgICAgICAgIGN1ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgMSk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMik7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDMpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZGVyTmV3RG9jKHJlYWRlciwgKGNvbnN0IHhtbENoYXIgKiljdXIsIFVSTCwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2N1ciwgKGNvbnN0IHhtbENoYXIgKiljdXIsIDEpOworICAgICAgICBkZXNfZmlsZXBhdGgobl9VUkwsIFVSTCwgMik7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAzKTsKKyAgICAgICAgZGVzX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCBvcHRpb25zLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlYWRlck5ld0RvYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fVVJMKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWFkZXJOZXdGaWxlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiBhbiBYTUwgcmVhZGVyICovCisgICAgaW50IG5fcmVhZGVyOworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogYSBmaWxlIG9yIFVSTCAqLworICAgIGludCBuX2ZpbGVuYW1lOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMICovCisgICAgaW50IG5fZW5jb2Rpbmc7CisgICAgaW50IG9wdGlvbnM7IC8qIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9maWxlbmFtZSA9IDA7bl9maWxlbmFtZSA8IGdlbl9uYl9maWxlcGF0aDtuX2ZpbGVuYW1lKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMSk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDIpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZGVyTmV3RmlsZShyZWFkZXIsIGZpbGVuYW1lLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZW5hbWUsIGZpbGVuYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDIpOworICAgICAgICBkZXNfcGFyc2Vyb3B0aW9ucyhuX29wdGlvbnMsIG9wdGlvbnMsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVhZGVyTmV3RmlsZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lbmNvZGluZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlYWRlck5ld01lbW9yeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogYW4gWE1MIHJlYWRlciAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICBjaGFyICogYnVmZmVyOyAvKiBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5ICovCisgICAgaW50IG5fYnVmZmVyOworICAgIGludCBzaXplOyAvKiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgbl9zaXplOworICAgIGNvbnN0IGNoYXIgKiBVUkw7IC8qIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudCAqLworICAgIGludCBuX1VSTDsKKyAgICBjaGFyICogZW5jb2Rpbmc7IC8qIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTCAqLworICAgIGludCBuX2VuY29kaW5nOworICAgIGludCBvcHRpb25zOyAvKiBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbiAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICBmb3IgKG5fYnVmZmVyID0gMDtuX2J1ZmZlciA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2J1ZmZlcisrKSB7CisgICAgZm9yIChuX3NpemUgPSAwO25fc2l6ZSA8IGdlbl9uYl9pbnQ7bl9zaXplKyspIHsKKyAgICBmb3IgKG5fVVJMID0gMDtuX1VSTCA8IGdlbl9uYl9maWxlcGF0aDtuX1VSTCsrKSB7CisgICAgZm9yIChuX2VuY29kaW5nID0gMDtuX2VuY29kaW5nIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZW5jb2RpbmcrKykgeworICAgIGZvciAobl9vcHRpb25zID0gMDtuX29wdGlvbnMgPCBnZW5fbmJfcGFyc2Vyb3B0aW9ucztuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMSk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMik7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMyk7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDQpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZGVyTmV3TWVtb3J5KHJlYWRlciwgKGNvbnN0IGNoYXIgKilidWZmZXIsIHNpemUsIFVSTCwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgKGNvbnN0IGNoYXIgKilidWZmZXIsIDEpOworICAgICAgICBkZXNfaW50KG5fc2l6ZSwgc2l6ZSwgMik7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAzKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDQpOworICAgICAgICBkZXNfcGFyc2Vyb3B0aW9ucyhuX29wdGlvbnMsIG9wdGlvbnMsIDUpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVhZGVyTmV3TWVtb3J5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmZmVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zaXplKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9VUkwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuY29kaW5nKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxSZWFkZXJOZXdXYWxrZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIGFuIFhNTCByZWFkZXIgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBwcmVwYXJzZWQgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWFkZXJOZXdXYWxrZXIocmVhZGVyLCBkb2MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVhZGVyTmV3V2Fsa2VyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlYWRlcldhbGtlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJldF92YWw7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogYSBwcmVwYXJzZWQgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9kb2M7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVhZGVyV2Fsa2VyKGRvYyk7CisgICAgICAgIGRlc3JldF94bWxUZXh0UmVhZGVyUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWFkZXJXYWxrZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZG9jKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50KHJlYWRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlckJhc2VVcmkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyQmFzZVVyaShyZWFkZXIpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyQmFzZVVyaSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGxvbmcgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogYW4gWE1MIHJlYWRlciAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2xvbmcocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJDbG9zZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJDbG9zZShyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckNsb3NlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJDb25zdEJhc2VVcmkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyQ29uc3RCYXNlVXJpKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9jb25zdF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJDb25zdEJhc2VVcmkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlckNvbnN0RW5jb2Rpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZyhyZWFkZXIpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJDb25zdE5hbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9jb25zdF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJDb25zdE5hbWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9jb25zdF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckNvbnN0UHJlZml4IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJDb25zdFN0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgc3RyaW5nIHRvIGludGVybi4gKi8KKyAgICBpbnQgbl9zdHI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nKHJlYWRlciwgKGNvbnN0IHhtbENoYXIgKilzdHIpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJDb25zdFZhbHVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckNvbnN0VmFsdWUocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckNvbnN0VmFsdWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJDb25zdFhtbExhbmcocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbihyZWFkZXIpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJDdXJyZW50RG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbERvY1B0ciByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckN1cnJlbnREb2MocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X3htbERvY1B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJDdXJyZW50Tm9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlckRlcHRoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckRlcHRoKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyRGVwdGgiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlckV4cGFuZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyRXhwYW5kKHJlYWRlcik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckV4cGFuZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4gKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZShyZWFkZXIsIChjb25zdCB4bWxDaGFyICopbmFtZSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICBpbnQgbm87IC8qIHRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSBhdHRyaWJ1dGUgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudCAqLworICAgIGludCBuX25vOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX25vID0gMDtuX25vIDwgZ2VuX25iX2ludDtuX25vKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworICAgICAgICBubyA9IGdlbl9pbnQobl9ubywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyhyZWFkZXIsIG5vKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfaW50KG5fbm8sIG5vLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICB4bWxDaGFyICogbG9jYWxOYW1lOyAvKiB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgYXR0cmlidXRlLiAqLworICAgIGludCBuX2xvY2FsTmFtZTsKKyAgICB4bWxDaGFyICogbmFtZXNwYWNlVVJJOyAvKiB0aGUgbmFtZXNwYWNlIFVSSSBvZiB0aGUgYXR0cmlidXRlLiAqLworICAgIGludCBuX25hbWVzcGFjZVVSSTsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9sb2NhbE5hbWUgPSAwO25fbG9jYWxOYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbG9jYWxOYW1lKyspIHsKKyAgICBmb3IgKG5fbmFtZXNwYWNlVVJJID0gMDtuX25hbWVzcGFjZVVSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWVzcGFjZVVSSSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgbG9jYWxOYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbG9jYWxOYW1lLCAxKTsKKyAgICAgICAgbmFtZXNwYWNlVVJJID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZXNwYWNlVVJJLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zKHJlYWRlciwgKGNvbnN0IHhtbENoYXIgKilsb2NhbE5hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9sb2NhbE5hbWUsIChjb25zdCB4bWxDaGFyICopbG9jYWxOYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZXNwYWNlVVJJLCAoY29uc3QgeG1sQ2hhciAqKW5hbWVzcGFjZVVSSSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sb2NhbE5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWVzcGFjZVVSSSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFRleHRSZWFkZXJFcnJvckZ1bmNfcHRyIDEKK3N0YXRpYyB4bWxUZXh0UmVhZGVyRXJyb3JGdW5jICogZ2VuX3htbFRleHRSZWFkZXJFcnJvckZ1bmNfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxUZXh0UmVhZGVyRXJyb3JGdW5jX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sVGV4dFJlYWRlckVycm9yRnVuYyAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbFRleHRSZWFkZXJFcnJvckZ1bmMgKiBmOyAvKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb3IgTlVMTCBpcyBubyBjYWxsYmFjayBoYXMgYmVlbiByZWdpc3RlcmVkICovCisgICAgaW50IG5fZjsKKyAgICB2b2lkICoqIGFyZzsgLyogYSB1c2VyIGFyZ3VtZW50ICovCisgICAgaW50IG5fYXJnOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX2YgPSAwO25fZiA8IGdlbl9uYl94bWxUZXh0UmVhZGVyRXJyb3JGdW5jX3B0cjtuX2YrKykgeworICAgIGZvciAobl9hcmcgPSAwO25fYXJnIDwgZ2VuX25iX3ZvaWRfcHRyX3B0cjtuX2FyZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgZiA9IGdlbl94bWxUZXh0UmVhZGVyRXJyb3JGdW5jX3B0cihuX2YsIDEpOworICAgICAgICBhcmcgPSBnZW5fdm9pZF9wdHJfcHRyKG5fYXJnLCAyKTsKKworICAgICAgICB4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyKHJlYWRlciwgZiwgYXJnKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJFcnJvckZ1bmNfcHRyKG5fZiwgZiwgMSk7CisgICAgICAgIGRlc192b2lkX3B0cl9wdHIobl9hcmcsIGFyZywgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYXJnKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgdXNlciBkYXRhIChYTUwgcmVhZGVyIGNvbnRleHQpICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcihyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHVzZXIgZGF0YSAoWE1MIHJlYWRlciBjb250ZXh0KSAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICBpbnQgcHJvcDsgLyogdGhlIHhtbFBhcnNlclByb3BlcnRpZXMgdG8gZ2V0ICovCisgICAgaW50IG5fcHJvcDsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9wcm9wID0gMDtuX3Byb3AgPCBnZW5fbmJfaW50O25fcHJvcCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgcHJvcCA9IGdlbl9pbnQobl9wcm9wLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AocmVhZGVyLCBwcm9wKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3Byb3AsIHByb3AsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcm9wKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJHZXRSZW1haW5kZXIocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlcklucHV0QnVmZmVyUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckdldFJlbWFpbmRlciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVySGFzVmFsdWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVySGFzVmFsdWUocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJIYXNWYWx1ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVySXNEZWZhdWx0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlcklzRGVmYXVsdChyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlcklzRGVmYXVsdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVySXNOYW1lc3BhY2VEZWNsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbChyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVySXNWYWxpZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJJc1ZhbGlkKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVySXNWYWxpZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyTG9jYWxOYW1lKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckxvY2FsTmFtZShyZWFkZXIpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyTG9jYWxOYW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxUZXh0UmVhZGVyTG9jYXRvclB0ciAxCitzdGF0aWMgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgZ2VuX3htbFRleHRSZWFkZXJMb2NhdG9yUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxUZXh0UmVhZGVyTG9jYXRvclB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciBsb2NhdG9yOyAvKiB0aGUgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgdXNlZCAqLworICAgIGludCBuX2xvY2F0b3I7CisKKyAgICBmb3IgKG5fbG9jYXRvciA9IDA7bl9sb2NhdG9yIDwgZ2VuX25iX3htbFRleHRSZWFkZXJMb2NhdG9yUHRyO25fbG9jYXRvcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGxvY2F0b3IgPSBnZW5feG1sVGV4dFJlYWRlckxvY2F0b3JQdHIobl9sb2NhdG9yLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJKGxvY2F0b3IpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJMb2NhdG9yUHRyKG5fbG9jYXRvciwgbG9jYXRvciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyTG9jYXRvckJhc2VVUkkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbG9jYXRvcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciBsb2NhdG9yOyAvKiB0aGUgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgdXNlZCAqLworICAgIGludCBuX2xvY2F0b3I7CisKKyAgICBmb3IgKG5fbG9jYXRvciA9IDA7bl9sb2NhdG9yIDwgZ2VuX25iX3htbFRleHRSZWFkZXJMb2NhdG9yUHRyO25fbG9jYXRvcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGxvY2F0b3IgPSBnZW5feG1sVGV4dFJlYWRlckxvY2F0b3JQdHIobl9sb2NhdG9yLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyKGxvY2F0b3IpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyTG9jYXRvclB0cihuX2xvY2F0b3IsIGxvY2F0b3IsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xvY2F0b3IpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIHRoZSBwcmVmaXggd2hvc2UgbmFtZXNwYWNlIFVSSSBpcyB0byBiZSByZXNvbHZlZC4gVG8gcmV0dXJuIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSwgc3BlY2lmeSBOVUxMICovCisgICAgaW50IG5fcHJlZml4OworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX3ByZWZpeCA9IDA7bl9wcmVmaXggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UocmVhZGVyLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJlZml4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgYXR0cmlidXRlLiAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlKHJlYWRlciwgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICBpbnQgbm87IC8qIHRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSBhdHRyaWJ1dGUgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudC4gKi8KKyAgICBpbnQgbl9ubzsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9ubyA9IDA7bl9ubyA8IGdlbl9uYl9pbnQ7bl9ubysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgbm8gPSBnZW5faW50KG5fbm8sIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8ocmVhZGVyLCBubyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIGRlc19pbnQobl9ubywgbm8sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm8pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbENoYXIgKiBsb2NhbE5hbWU7IC8qIHRoZSBsb2NhbCBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUuICovCisgICAgaW50IG5fbG9jYWxOYW1lOworICAgIHhtbENoYXIgKiBuYW1lc3BhY2VVUkk7IC8qIHRoZSBuYW1lc3BhY2UgVVJJIG9mIHRoZSBhdHRyaWJ1dGUuICovCisgICAgaW50IG5fbmFtZXNwYWNlVVJJOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX2xvY2FsTmFtZSA9IDA7bl9sb2NhbE5hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9sb2NhbE5hbWUrKykgeworICAgIGZvciAobl9uYW1lc3BhY2VVUkkgPSAwO25fbmFtZXNwYWNlVVJJIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZXNwYWNlVVJJKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworICAgICAgICBsb2NhbE5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9sb2NhbE5hbWUsIDEpOworICAgICAgICBuYW1lc3BhY2VVUkkgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lc3BhY2VVUkksIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMocmVhZGVyLCAoY29uc3QgeG1sQ2hhciAqKWxvY2FsTmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lc3BhY2VVUkkpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9sb2NhbE5hbWUsIChjb25zdCB4bWxDaGFyICopbG9jYWxOYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZXNwYWNlVVJJLCAoY29uc3QgeG1sQ2hhciAqKW5hbWVzcGFjZVVSSSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sb2NhbE5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWVzcGFjZVVSSSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudChyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlKHJlYWRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZShyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlck5hbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyTmFtZShyZWFkZXIpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyTmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaShyZWFkZXIpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJOZXh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlck5leHQocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJOZXh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJOZXh0U2libGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJOZXh0U2libGluZyhyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlck5leHRTaWJsaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJOb2RlVHlwZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJOb2RlVHlwZShyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlck5vZGVUeXBlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24ocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJQcmVmaXgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyUHJlZml4KHJlYWRlcik7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJQcmVmaXgiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclByZXNlcnZlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJQcmVzZXJ2ZShyZWFkZXIpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJQcmVzZXJ2ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX1BBVFRFUk5fRU5BQkxFRCkKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbENoYXIgKiBwYXR0ZXJuOyAvKiBhbiBYUGF0aCBzdWJzZXQgcGF0dGVybiAqLworICAgIGludCBuX3BhdHRlcm47CisgICAgeG1sQ2hhciAqKiBuYW1lc3BhY2VzOyAvKiB0aGUgcHJlZml4IGRlZmluaXRpb25zLCBhcnJheSBvZiBbVVJJLCBwcmVmaXhdIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9uYW1lc3BhY2VzOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX3BhdHRlcm4gPSAwO25fcGF0dGVybiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3BhdHRlcm4rKykgeworICAgIGZvciAobl9uYW1lc3BhY2VzID0gMDtuX25hbWVzcGFjZXMgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHJfcHRyO25fbmFtZXNwYWNlcysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgcGF0dGVybiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3BhdHRlcm4sIDEpOworICAgICAgICBuYW1lc3BhY2VzID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX25hbWVzcGFjZXMsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuKHJlYWRlciwgKGNvbnN0IHhtbENoYXIgKilwYXR0ZXJuLCAoY29uc3QgeG1sQ2hhciAqKiluYW1lc3BhY2VzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcGF0dGVybiwgKGNvbnN0IHhtbENoYXIgKilwYXR0ZXJuLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX25hbWVzcGFjZXMsIChjb25zdCB4bWxDaGFyICoqKW5hbWVzcGFjZXMsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3BhdHRlcm4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWVzcGFjZXMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclF1b3RlQ2hhcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJRdW90ZUNoYXIocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJRdW90ZUNoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclJlYWQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlclJlYWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclJlYWRTdGF0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJSZWFkU3RhdGUocmVhZGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJSZWFkU3RhdGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICB4bWxSZWxheE5HUHRyIHNjaGVtYTsgLyogYSBwcmVjb21waWxlZCBSZWxheE5HIHNjaGVtYSAqLworICAgIGludCBuX3NjaGVtYTsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9zY2hlbWEgPSAwO25fc2NoZW1hIDwgZ2VuX25iX3htbFJlbGF4TkdQdHI7bl9zY2hlbWErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisgICAgICAgIHNjaGVtYSA9IGdlbl94bWxSZWxheE5HUHRyKG5fc2NoZW1hLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEocmVhZGVyLCBzY2hlbWEpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfeG1sUmVsYXhOR1B0cihuX3NjaGVtYSwgc2NoZW1hLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJSZWxheE5HU2V0U2NoZW1hIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2NoZW1hKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKyAgICBjaGFyICogcm5nOyAvKiB0aGUgcGF0aCB0byBhIFJlbGF4Tkcgc2NoZW1hIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9ybmc7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICBmb3IgKG5fcm5nID0gMDtuX3JuZyA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX3JuZysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgcm5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fcm5nLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZShyZWFkZXIsIChjb25zdCBjaGFyICopcm5nKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fcm5nLCAoY29uc3QgY2hhciAqKXJuZywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcm5nKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisgICAgY2hhciAqIHhzZDsgLyogdGhlIHBhdGggdG8gYSBXM0MgWFNEIHNjaGVtYSBvciBOVUxMICovCisgICAgaW50IG5feHNkOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX3hzZCA9IDA7bl94c2QgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl94c2QrKykgeworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisgICAgICAgIHhzZCA9IGdlbl9jb25zdF9jaGFyX3B0cihuX3hzZCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZShyZWFkZXIsIChjb25zdCBjaGFyICopeHNkKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5feHNkLCAoY29uc3QgY2hhciAqKXhzZCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OyAvKiB0aGUgWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG9wdGlvbnM7IC8qIG9wdGlvbnMgKG5vdCB1c2VkIHlldCkgKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTY2hlbWFWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX3BhcnNlcm9wdGlvbnM7bl9vcHRpb25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworICAgICAgICBjdHh0ID0gZ2VuX3htbFNjaGVtYVZhbGlkQ3R4dFB0cihuX2N0eHQsIDEpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dChyZWFkZXIsIGN0eHQsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMSk7CisgICAgICAgIGRlc19wYXJzZXJvcHRpb25zKG5fb3B0aW9ucywgb3B0aW9ucywgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3B0aW9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclNldEVycm9ySGFuZGxlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisgICAgaW50IHByb3A7IC8qIHRoZSB4bWxQYXJzZXJQcm9wZXJ0aWVzIHRvIHNldCAqLworICAgIGludCBuX3Byb3A7CisgICAgaW50IHZhbHVlOyAvKiB1c3VhbGx5IDAgb3IgMSB0byAoZGUpYWN0aXZhdGUgaXQgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9wcm9wID0gMDtuX3Byb3AgPCBnZW5fbmJfaW50O25fcHJvcCsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2ludDtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworICAgICAgICBwcm9wID0gZ2VuX2ludChuX3Byb3AsIDEpOworICAgICAgICB2YWx1ZSA9IGdlbl9pbnQobl92YWx1ZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wKHJlYWRlciwgcHJvcCwgdmFsdWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfaW50KG5fcHJvcCwgcHJvcCwgMSk7CisgICAgICAgIGRlc19pbnQobl92YWx1ZSwgdmFsdWUsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcm9wKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclNldFNjaGVtYSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbFNjaGVtYVB0ciBzY2hlbWE7IC8qIGEgcHJlY29tcGlsZWQgU2NoZW1hIHNjaGVtYSAqLworICAgIGludCBuX3NjaGVtYTsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgIGZvciAobl9zY2hlbWEgPSAwO25fc2NoZW1hIDwgZ2VuX25iX3htbFNjaGVtYVB0cjtuX3NjaGVtYSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgc2NoZW1hID0gZ2VuX3htbFNjaGVtYVB0cihuX3NjaGVtYSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJTZXRTY2hlbWEocmVhZGVyLCBzY2hlbWEpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hUHRyKG5fc2NoZW1hLCBzY2hlbWEsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlclNldFNjaGVtYSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NjaGVtYSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyU2V0U3RydWN0dXJlZEVycm9ySGFuZGxlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclNldHVwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiBhbiBYTUwgcmVhZGVyICovCisgICAgaW50IG5fcmVhZGVyOworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0OyAvKiB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciB1c2VkIHRvIGZlZWQgdGhlIHJlYWRlciwgd2lsbCBiZSBkZXN0cm95ZWQgd2l0aCBpdC4gKi8KKyAgICBpbnQgbl9pbnB1dDsKKyAgICBjb25zdCBjaGFyICogVVJMOyAvKiB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQgKi8KKyAgICBpbnQgbl9VUkw7CisgICAgY2hhciAqIGVuY29kaW5nOyAvKiB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24gKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgZm9yIChuX2lucHV0ID0gMDtuX2lucHV0IDwgZ2VuX25iX3htbFBhcnNlcklucHV0QnVmZmVyUHRyO25faW5wdXQrKykgeworICAgIGZvciAobl9VUkwgPSAwO25fVVJMIDwgZ2VuX25iX2ZpbGVwYXRoO25fVVJMKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9wYXJzZXJvcHRpb25zO25fb3B0aW9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKyAgICAgICAgaW5wdXQgPSBnZW5feG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbnB1dCwgMSk7CisgICAgICAgIFVSTCA9IGdlbl9maWxlcGF0aChuX1VSTCwgMik7CisgICAgICAgIGVuY29kaW5nID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIDMpOworICAgICAgICBvcHRpb25zID0gZ2VuX3BhcnNlcm9wdGlvbnMobl9vcHRpb25zLCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlclNldHVwKHJlYWRlciwgaW5wdXQsIFVSTCwgKGNvbnN0IGNoYXIgKillbmNvZGluZywgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIHJlYWRlciwgMCk7CisgICAgICAgIGRlc19maWxlcGF0aChuX1VSTCwgVVJMLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZW5jb2RpbmcsIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDMpOworICAgICAgICBkZXNfcGFyc2Vyb3B0aW9ucyhuX29wdGlvbnMsIG9wdGlvbnMsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlclNldHVwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW5wdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclN0YW5kYWxvbmUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUFERVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7IC8qIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQgKi8KKyAgICBpbnQgbl9yZWFkZXI7CisKKyAgICBmb3IgKG5fcmVhZGVyID0gMDtuX3JlYWRlciA8IGdlbl9uYl94bWxUZXh0UmVhZGVyUHRyO25fcmVhZGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcmVhZGVyID0gZ2VuX3htbFRleHRSZWFkZXJQdHIobl9yZWFkZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0UmVhZGVyU3RhbmRhbG9uZShyZWFkZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCByZWFkZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFJlYWRlclN0YW5kYWxvbmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVhZGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFJlYWRlclZhbHVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVBREVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOyAvKiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkICovCisgICAgaW50IG5fcmVhZGVyOworCisgICAgZm9yIChuX3JlYWRlciA9IDA7bl9yZWFkZXIgPCBnZW5fbmJfeG1sVGV4dFJlYWRlclB0cjtuX3JlYWRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHJlYWRlciA9IGdlbl94bWxUZXh0UmVhZGVyUHRyKG5fcmVhZGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFJlYWRlclZhbHVlKHJlYWRlcik7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJWYWx1ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9yZWFkZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0UmVhZGVyWG1sTGFuZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFQURFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsgLyogdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZCAqLworICAgIGludCBuX3JlYWRlcjsKKworICAgIGZvciAobl9yZWFkZXIgPSAwO25fcmVhZGVyIDwgZ2VuX25iX3htbFRleHRSZWFkZXJQdHI7bl9yZWFkZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICByZWFkZXIgPSBnZW5feG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRSZWFkZXJYbWxMYW5nKHJlYWRlcik7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFJlYWRlclB0cihuX3JlYWRlciwgcmVhZGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRSZWFkZXJYbWxMYW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3JlYWRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxyZWFkZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhtbHJlYWRlciA6IDc1IG9mIDg1IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3VGV4dFJlYWRlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWFkZXJGb3JEb2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlYWRlckZvckZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlYWRlckZvck1lbW9yeSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVhZGVyTmV3RG9jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWFkZXJOZXdGaWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWFkZXJOZXdNZW1vcnkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlYWRlck5ld1dhbGtlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVhZGVyV2Fsa2VyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJCYXNlVXJpKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQ2xvc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJDb25zdEJhc2VVcmkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJDb25zdEVuY29kaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQ29uc3RMb2NhbE5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJDb25zdE5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlckNvbnN0UHJlZml4KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJDb25zdFZhbHVlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQ29uc3RYbWxMYW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQ29uc3RYbWxWZXJzaW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyQ3VycmVudERvYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlckN1cnJlbnROb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyRGVwdGgoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJFeHBhbmQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyR2V0UGFyc2VyQ29sdW1uTnVtYmVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlckdldFBhcnNlclByb3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJIYXNBdHRyaWJ1dGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVySGFzVmFsdWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJJc0RlZmF1bHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlcklzTmFtZXNwYWNlRGVjbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlcklzVmFsaWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJMb2NhbE5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyTG9va3VwTmFtZXNwYWNlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJOYW1lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyTmV4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlck5leHRTaWJsaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyTm9kZVR5cGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJOb3JtYWxpemF0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyUHJlZml4KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyUHJlc2VydmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJQcmVzZXJ2ZVBhdHRlcm4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJRdW90ZUNoYXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJSZWFkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyUmVhZEF0dHJpYnV0ZVZhbHVlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyUmVhZFN0YXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlclNldFNjaGVtYSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJTZXR1cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlclN0YW5kYWxvbmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRSZWFkZXJWYWx1ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFJlYWRlclhtbExhbmcoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIHhtbHJlYWRlcjogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxFeHBDdHh0TmJDb25zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sRXhwQ3R4dFB0ciBjdHh0OyAvKiBhbiBleHByZXNzaW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxFeHBDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sRXhwQ3R4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxFeHBDdHh0TmJDb25zKGN0eHQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxFeHBDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxFeHBDdHh0TmJDb25zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFeHBDdHh0TmJOb2Rlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEV4cEN0eHRQdHIgY3R4dDsgLyogYW4gZXhwcmVzc2lvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sRXhwQ3R4dFB0cjtuX2N0eHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbEV4cEN0eHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sRXhwQ3R4dE5iTm9kZXMoY3R4dCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEV4cEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEV4cEN0eHROYk5vZGVzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFeHBEdW1wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX0VYUFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZjsgLyogYSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgb3V0cHV0ICovCisgICAgaW50IG5fYnVmOworICAgIHhtbEV4cE5vZGVQdHIgZXhwcjsgLyogdGhlIGNvbXBpbGVkIGV4cHJlc3Npb24gKi8KKyAgICBpbnQgbl9leHByOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fZXhwciA9IDA7bl9leHByIDwgZ2VuX25iX3htbEV4cE5vZGVQdHI7bl9leHByKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgYnVmID0gZ2VuX3htbEJ1ZmZlclB0cihuX2J1ZiwgMCk7CisgICAgICAgIGV4cHIgPSBnZW5feG1sRXhwTm9kZVB0cihuX2V4cHIsIDEpOworCisgICAgICAgIHhtbEV4cER1bXAoYnVmLCBleHByKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfeG1sRXhwTm9kZVB0cihuX2V4cHIsIGV4cHIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRXhwRHVtcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2V4cHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRXhwRXhwRGVyaXZlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFeHBHZXRMYW5ndWFnZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEV4cEN0eHRQdHIgY3R4dDsgLyogdGhlIGV4cHJlc3Npb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRXhwTm9kZVB0ciBleHA7IC8qIHRoZSBleHByZXNzaW9uICovCisgICAgaW50IG5fZXhwOworICAgIHhtbENoYXIgKiogbGFuZ0xpc3Q7IC8qIHdoZXJlIHRvIHN0b3JlIHRoZSB0b2tlbnMgKi8KKyAgICBpbnQgbl9sYW5nTGlzdDsKKyAgICBpbnQgbGVuOyAvKiB0aGUgYWxsb2NhdGVkIGxlbmdodCBvZiBAbGlzdCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sRXhwQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9leHAgPSAwO25fZXhwIDwgZ2VuX25iX3htbEV4cE5vZGVQdHI7bl9leHArKykgeworICAgIGZvciAobl9sYW5nTGlzdCA9IDA7bl9sYW5nTGlzdCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cl9wdHI7bl9sYW5nTGlzdCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxFeHBDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGV4cCA9IGdlbl94bWxFeHBOb2RlUHRyKG5fZXhwLCAxKTsKKyAgICAgICAgbGFuZ0xpc3QgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fbGFuZ0xpc3QsIDIpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sRXhwR2V0TGFuZ3VhZ2UoY3R4dCwgZXhwLCAoY29uc3QgeG1sQ2hhciAqKilsYW5nTGlzdCwgbGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRXhwQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sRXhwTm9kZVB0cihuX2V4cCwgZXhwLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX2xhbmdMaXN0LCAoY29uc3QgeG1sQ2hhciAqKilsYW5nTGlzdCwgMik7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxFeHBHZXRMYW5ndWFnZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9leHApOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xhbmdMaXN0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFeHBHZXRTdGFydCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEV4cEN0eHRQdHIgY3R4dDsgLyogdGhlIGV4cHJlc3Npb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sRXhwTm9kZVB0ciBleHA7IC8qIHRoZSBleHByZXNzaW9uICovCisgICAgaW50IG5fZXhwOworICAgIHhtbENoYXIgKiogdG9rTGlzdDsgLyogd2hlcmUgdG8gc3RvcmUgdGhlIHRva2VucyAqLworICAgIGludCBuX3Rva0xpc3Q7CisgICAgaW50IGxlbjsgLyogdGhlIGFsbG9jYXRlZCBsZW5naHQgb2YgQGxpc3QgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbEV4cEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZXhwID0gMDtuX2V4cCA8IGdlbl9uYl94bWxFeHBOb2RlUHRyO25fZXhwKyspIHsKKyAgICBmb3IgKG5fdG9rTGlzdCA9IDA7bl90b2tMaXN0IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyX3B0cjtuX3Rva0xpc3QrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sRXhwQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBleHAgPSBnZW5feG1sRXhwTm9kZVB0cihuX2V4cCwgMSk7CisgICAgICAgIHRva0xpc3QgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fdG9rTGlzdCwgMik7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxFeHBHZXRTdGFydChjdHh0LCBleHAsIChjb25zdCB4bWxDaGFyICoqKXRva0xpc3QsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEV4cEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbEV4cE5vZGVQdHIobl9leHAsIGV4cCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cl9wdHIobl90b2tMaXN0LCAoY29uc3QgeG1sQ2hhciAqKil0b2tMaXN0LCAyKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEV4cEdldFN0YXJ0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2V4cCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdG9rTGlzdCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRXhwSXNOaWxsYWJsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEV4cE5vZGVQdHIgZXhwOyAvKiB0aGUgZXhwcmVzc2lvbiAqLworICAgIGludCBuX2V4cDsKKworICAgIGZvciAobl9leHAgPSAwO25fZXhwIDwgZ2VuX25iX3htbEV4cE5vZGVQdHI7bl9leHArKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBleHAgPSBnZW5feG1sRXhwTm9kZVB0cihuX2V4cCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEV4cElzTmlsbGFibGUoZXhwKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRXhwTm9kZVB0cihuX2V4cCwgZXhwLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbEV4cElzTmlsbGFibGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZXhwKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRXhwTWF4VG9rZW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxFeHBOb2RlUHRyIGV4cHI7IC8qIGEgY29tcGlsZWQgZXhwcmVzc2lvbiAqLworICAgIGludCBuX2V4cHI7CisKKyAgICBmb3IgKG5fZXhwciA9IDA7bl9leHByIDwgZ2VuX25iX3htbEV4cE5vZGVQdHI7bl9leHByKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZXhwciA9IGdlbl94bWxFeHBOb2RlUHRyKG5fZXhwciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbEV4cE1heFRva2VuKGV4cHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxFeHBOb2RlUHRyKG5fZXhwciwgZXhwciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxFeHBNYXhUb2tlbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9leHByKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRXhwTmV3QXRvbSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRXhwTmV3Q3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRXhwTmV3T3Iodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEV4cE5ld1JhbmdlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFeHBOZXdTZXEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEV4cFBhcnNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxFeHBSZWYodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfRVhQUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxFeHBOb2RlUHRyIGV4cDsgLyogdGhlIGV4cHJlc3Npb24gKi8KKyAgICBpbnQgbl9leHA7CisKKyAgICBmb3IgKG5fZXhwID0gMDtuX2V4cCA8IGdlbl9uYl94bWxFeHBOb2RlUHRyO25fZXhwKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZXhwID0gZ2VuX3htbEV4cE5vZGVQdHIobl9leHAsIDApOworCisgICAgICAgIHhtbEV4cFJlZihleHApOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxFeHBOb2RlUHRyKG5fZXhwLCBleHAsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRXhwUmVmIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2V4cCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbEV4cFN0cmluZ0Rlcml2ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sRXhwU3Vic3VtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9FWFBSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbEV4cEN0eHRQdHIgY3R4dDsgLyogdGhlIGV4cHJlc3Npb25zIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbEV4cE5vZGVQdHIgZXhwOyAvKiB0aGUgZW5nbG9iaW5nIGV4cHJlc3Npb24gKi8KKyAgICBpbnQgbl9leHA7CisgICAgeG1sRXhwTm9kZVB0ciBzdWI7IC8qIHRoZSBzdWJleHByZXNzaW9uICovCisgICAgaW50IG5fc3ViOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxFeHBDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2V4cCA9IDA7bl9leHAgPCBnZW5fbmJfeG1sRXhwTm9kZVB0cjtuX2V4cCsrKSB7CisgICAgZm9yIChuX3N1YiA9IDA7bl9zdWIgPCBnZW5fbmJfeG1sRXhwTm9kZVB0cjtuX3N1YisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sRXhwQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBleHAgPSBnZW5feG1sRXhwTm9kZVB0cihuX2V4cCwgMSk7CisgICAgICAgIHN1YiA9IGdlbl94bWxFeHBOb2RlUHRyKG5fc3ViLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sRXhwU3Vic3VtZShjdHh0LCBleHAsIHN1Yik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbEV4cEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbEV4cE5vZGVQdHIobl9leHAsIGV4cCwgMSk7CisgICAgICAgIGRlc194bWxFeHBOb2RlUHRyKG5fc3ViLCBzdWIsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sRXhwU3Vic3VtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9leHApOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N1Yik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFJlZ0V4ZWNDdHh0UHRyIDEKK3N0YXRpYyB4bWxSZWdFeGVjQ3R4dFB0ciBnZW5feG1sUmVnRXhlY0N0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFJlZ0V4ZWNDdHh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxSZWdFeGVjQ3R4dFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVnRXhlY0VyckluZm8odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUmVnRXhlY0N0eHRQdHIgZXhlYzsgLyogYSByZWdleHAgZXhlY3V0aW9uIGNvbnRleHQgZ2VuZXJhdGluZyBhbiBlcnJvciAqLworICAgIGludCBuX2V4ZWM7CisgICAgeG1sQ2hhciAqKiBzdHJpbmc7IC8qIHJldHVybiB2YWx1ZSBmb3IgdGhlIGVycm9yIHN0cmluZyAqLworICAgIGludCBuX3N0cmluZzsKKyAgICBpbnQgKiBuYnZhbDsgLyogcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGFjY2VwdGVkIHZhbHVlcyBJTi9PVVQgKi8KKyAgICBpbnQgbl9uYnZhbDsKKyAgICBpbnQgKiBuYm5lZzsgLyogcmV0dXJuIG51bWJlciBvZiBuZWdhdGl2ZSB0cmFuc2l0aW9ucyAqLworICAgIGludCBuX25ibmVnOworICAgIHhtbENoYXIgKiogdmFsdWVzOyAvKiBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBhY2NlcHRhYmxlIHZhbHVlcyAqLworICAgIGludCBuX3ZhbHVlczsKKyAgICBpbnQgKiB0ZXJtaW5hbDsgLyogcmV0dXJuIHZhbHVlIGlmIHRoaXMgd2FzIGEgdGVybWluYWwgc3RhdGUgKi8KKyAgICBpbnQgbl90ZXJtaW5hbDsKKworICAgIGZvciAobl9leGVjID0gMDtuX2V4ZWMgPCBnZW5fbmJfeG1sUmVnRXhlY0N0eHRQdHI7bl9leGVjKyspIHsKKyAgICBmb3IgKG5fc3RyaW5nID0gMDtuX3N0cmluZyA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cl9wdHI7bl9zdHJpbmcrKykgeworICAgIGZvciAobl9uYnZhbCA9IDA7bl9uYnZhbCA8IGdlbl9uYl9pbnRfcHRyO25fbmJ2YWwrKykgeworICAgIGZvciAobl9uYm5lZyA9IDA7bl9uYm5lZyA8IGdlbl9uYl9pbnRfcHRyO25fbmJuZWcrKykgeworICAgIGZvciAobl92YWx1ZXMgPSAwO25fdmFsdWVzIDwgZ2VuX25iX3htbENoYXJfcHRyX3B0cjtuX3ZhbHVlcysrKSB7CisgICAgZm9yIChuX3Rlcm1pbmFsID0gMDtuX3Rlcm1pbmFsIDwgZ2VuX25iX2ludF9wdHI7bl90ZXJtaW5hbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGV4ZWMgPSBnZW5feG1sUmVnRXhlY0N0eHRQdHIobl9leGVjLCAwKTsKKyAgICAgICAgc3RyaW5nID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX3N0cmluZywgMSk7CisgICAgICAgIG5idmFsID0gZ2VuX2ludF9wdHIobl9uYnZhbCwgMik7CisgICAgICAgIG5ibmVnID0gZ2VuX2ludF9wdHIobl9uYm5lZywgMyk7CisgICAgICAgIHZhbHVlcyA9IGdlbl94bWxDaGFyX3B0cl9wdHIobl92YWx1ZXMsIDQpOworICAgICAgICB0ZXJtaW5hbCA9IGdlbl9pbnRfcHRyKG5fdGVybWluYWwsIDUpOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWdFeGVjRXJySW5mbyhleGVjLCAoY29uc3QgeG1sQ2hhciAqKilzdHJpbmcsIG5idmFsLCBuYm5lZywgdmFsdWVzLCB0ZXJtaW5hbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFJlZ0V4ZWNDdHh0UHRyKG5fZXhlYywgZXhlYywgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cl9wdHIobl9zdHJpbmcsIChjb25zdCB4bWxDaGFyICoqKXN0cmluZywgMSk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fbmJ2YWwsIG5idmFsLCAyKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9uYm5lZywgbmJuZWcsIDMpOworICAgICAgICBkZXNfeG1sQ2hhcl9wdHJfcHRyKG5fdmFsdWVzLCB2YWx1ZXMsIDQpOworICAgICAgICBkZXNfaW50X3B0cihuX3Rlcm1pbmFsLCB0ZXJtaW5hbCwgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWdFeGVjRXJySW5mbyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9leGVjKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHJpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25idmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYm5lZyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWVzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90ZXJtaW5hbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVnRXhlY05leHRWYWx1ZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUmVnRXhlY0N0eHRQdHIgZXhlYzsgLyogYSByZWdleHAgZXhlY3V0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9leGVjOworICAgIGludCAqIG5idmFsOyAvKiBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgYWNjZXB0ZWQgdmFsdWVzIElOL09VVCAqLworICAgIGludCBuX25idmFsOworICAgIGludCAqIG5ibmVnOyAvKiByZXR1cm4gbnVtYmVyIG9mIG5lZ2F0aXZlIHRyYW5zaXRpb25zICovCisgICAgaW50IG5fbmJuZWc7CisgICAgeG1sQ2hhciAqKiB2YWx1ZXM7IC8qIHBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIGFjY2VwdGFibGUgdmFsdWVzICovCisgICAgaW50IG5fdmFsdWVzOworICAgIGludCAqIHRlcm1pbmFsOyAvKiByZXR1cm4gdmFsdWUgaWYgdGhpcyB3YXMgYSB0ZXJtaW5hbCBzdGF0ZSAqLworICAgIGludCBuX3Rlcm1pbmFsOworCisgICAgZm9yIChuX2V4ZWMgPSAwO25fZXhlYyA8IGdlbl9uYl94bWxSZWdFeGVjQ3R4dFB0cjtuX2V4ZWMrKykgeworICAgIGZvciAobl9uYnZhbCA9IDA7bl9uYnZhbCA8IGdlbl9uYl9pbnRfcHRyO25fbmJ2YWwrKykgeworICAgIGZvciAobl9uYm5lZyA9IDA7bl9uYm5lZyA8IGdlbl9uYl9pbnRfcHRyO25fbmJuZWcrKykgeworICAgIGZvciAobl92YWx1ZXMgPSAwO25fdmFsdWVzIDwgZ2VuX25iX3htbENoYXJfcHRyX3B0cjtuX3ZhbHVlcysrKSB7CisgICAgZm9yIChuX3Rlcm1pbmFsID0gMDtuX3Rlcm1pbmFsIDwgZ2VuX25iX2ludF9wdHI7bl90ZXJtaW5hbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGV4ZWMgPSBnZW5feG1sUmVnRXhlY0N0eHRQdHIobl9leGVjLCAwKTsKKyAgICAgICAgbmJ2YWwgPSBnZW5faW50X3B0cihuX25idmFsLCAxKTsKKyAgICAgICAgbmJuZWcgPSBnZW5faW50X3B0cihuX25ibmVnLCAyKTsKKyAgICAgICAgdmFsdWVzID0gZ2VuX3htbENoYXJfcHRyX3B0cihuX3ZhbHVlcywgMyk7CisgICAgICAgIHRlcm1pbmFsID0gZ2VuX2ludF9wdHIobl90ZXJtaW5hbCwgNCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFJlZ0V4ZWNOZXh0VmFsdWVzKGV4ZWMsIG5idmFsLCBuYm5lZywgdmFsdWVzLCB0ZXJtaW5hbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFJlZ0V4ZWNDdHh0UHRyKG5fZXhlYywgZXhlYywgMCk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fbmJ2YWwsIG5idmFsLCAxKTsKKyAgICAgICAgZGVzX2ludF9wdHIobl9uYm5lZywgbmJuZWcsIDIpOworICAgICAgICBkZXNfeG1sQ2hhcl9wdHJfcHRyKG5fdmFsdWVzLCB2YWx1ZXMsIDMpOworICAgICAgICBkZXNfaW50X3B0cihuX3Rlcm1pbmFsLCB0ZXJtaW5hbCwgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWdFeGVjTmV4dFZhbHVlcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9leGVjKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYnZhbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmJuZWcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdGVybWluYWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVnRXhlY1B1c2hTdHJpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUmVnRXhlY0N0eHRQdHIgZXhlYzsgLyogYSByZWdleHAgZXhlY3V0aW9uIGNvbnRleHQgb3IgTlVMTCB0byBpbmRpY2F0ZSB0aGUgZW5kICovCisgICAgaW50IG5fZXhlYzsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIGEgc3RyaW5nIHRva2VuIGlucHV0ICovCisgICAgaW50IG5fdmFsdWU7CisgICAgdm9pZCAqIGRhdGE7IC8qIGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgdG9rZW4gdG8gcmV1c2UgaW4gY2FsbGJhY2tzICovCisgICAgaW50IG5fZGF0YTsKKworICAgIGZvciAobl9leGVjID0gMDtuX2V4ZWMgPCBnZW5fbmJfeG1sUmVnRXhlY0N0eHRQdHI7bl9leGVjKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgZm9yIChuX2RhdGEgPSAwO25fZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX2RhdGErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBleGVjID0gZ2VuX3htbFJlZ0V4ZWNDdHh0UHRyKG5fZXhlYywgMCk7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDEpOworICAgICAgICBkYXRhID0gZ2VuX3VzZXJkYXRhKG5fZGF0YSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIGRhdGEpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxSZWdFeGVjQ3R4dFB0cihuX2V4ZWMsIGV4ZWMsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMSk7CisgICAgICAgIGRlc191c2VyZGF0YShuX2RhdGEsIGRhdGEsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sUmVnRXhlY1B1c2hTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZXhlYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlZ0V4ZWNQdXNoU3RyaW5nMih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxSZWdFeGVjQ3R4dFB0ciBleGVjOyAvKiBhIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQgKi8KKyAgICBpbnQgbl9leGVjOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIGZpcnN0IHN0cmluZyB0b2tlbiBpbnB1dCAqLworICAgIGludCBuX3ZhbHVlOworICAgIHhtbENoYXIgKiB2YWx1ZTI7IC8qIHRoZSBzZWNvbmQgc3RyaW5nIHRva2VuIGlucHV0ICovCisgICAgaW50IG5fdmFsdWUyOworICAgIHZvaWQgKiBkYXRhOyAvKiBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRva2VuIHRvIHJldXNlIGluIGNhbGxiYWNrcyAqLworICAgIGludCBuX2RhdGE7CisKKyAgICBmb3IgKG5fZXhlYyA9IDA7bl9leGVjIDwgZ2VuX25iX3htbFJlZ0V4ZWNDdHh0UHRyO25fZXhlYysrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgIGZvciAobl92YWx1ZTIgPSAwO25fdmFsdWUyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUyKyspIHsKKyAgICBmb3IgKG5fZGF0YSA9IDA7bl9kYXRhIDwgZ2VuX25iX3VzZXJkYXRhO25fZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGV4ZWMgPSBnZW5feG1sUmVnRXhlY0N0eHRQdHIobl9leGVjLCAwKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMSk7CisgICAgICAgIHZhbHVlMiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlMiwgMik7CisgICAgICAgIGRhdGEgPSBnZW5fdXNlcmRhdGEobl9kYXRhLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sUmVnRXhlY1B1c2hTdHJpbmcyKGV4ZWMsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUyLCBkYXRhKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUmVnRXhlY0N0eHRQdHIobl9leGVjLCBleGVjLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZTIsIChjb25zdCB4bWxDaGFyICopdmFsdWUyLCAyKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fZGF0YSwgZGF0YSwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWdFeGVjUHVzaFN0cmluZzIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZXhlYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlMik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZGF0YSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxSZWdleHBQdHIgMQorc3RhdGljIHhtbFJlZ2V4cFB0ciBnZW5feG1sUmVnZXhwUHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxSZWdleHBQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFJlZ2V4cFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVnTmV3RXhlY0N0eHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlZ2V4cENvbXBpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlZ2V4cEV4ZWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9SRUdFWFBfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sUmVnZXhwUHRyIGNvbXA7IC8qIHRoZSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb24gKi8KKyAgICBpbnQgbl9jb21wOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiB0aGUgdmFsdWUgdG8gY2hlY2sgYWdhaW5zdCB0aGUgcmVndWxhciBleHByZXNzaW9uICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl9jb21wID0gMDtuX2NvbXAgPCBnZW5fbmJfeG1sUmVnZXhwUHRyO25fY29tcCsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb21wID0gZ2VuX3htbFJlZ2V4cFB0cihuX2NvbXAsIDApOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFJlZ2V4cEV4ZWMoY29tcCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUmVnZXhwUHRyKG5fY29tcCwgY29tcCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxSZWdleHBFeGVjIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbXApOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sUmVnZXhwSXNEZXRlcm1pbmlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1JFR0VYUF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxSZWdleHBQdHIgY29tcDsgLyogdGhlIGNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiAqLworICAgIGludCBuX2NvbXA7CisKKyAgICBmb3IgKG5fY29tcCA9IDA7bl9jb21wIDwgZ2VuX25iX3htbFJlZ2V4cFB0cjtuX2NvbXArKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb21wID0gZ2VuX3htbFJlZ2V4cFB0cihuX2NvbXAsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxSZWdleHBJc0RldGVybWluaXN0KGNvbXApOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxSZWdleHBQdHIobl9jb21wLCBjb21wLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29tcCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFJlZ2V4cFByaW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfUkVHRVhQX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIEZJTEUgKiBvdXRwdXQ7IC8qIHRoZSBmaWxlIGZvciB0aGUgb3V0cHV0IGRlYnVnICovCisgICAgaW50IG5fb3V0cHV0OworICAgIHhtbFJlZ2V4cFB0ciByZWdleHA7IC8qIHRoZSBjb21waWxlZCByZWdleHAgKi8KKyAgICBpbnQgbl9yZWdleHA7CisKKyAgICBmb3IgKG5fb3V0cHV0ID0gMDtuX291dHB1dCA8IGdlbl9uYl9GSUxFX3B0cjtuX291dHB1dCsrKSB7CisgICAgZm9yIChuX3JlZ2V4cCA9IDA7bl9yZWdleHAgPCBnZW5fbmJfeG1sUmVnZXhwUHRyO25fcmVnZXhwKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0cHV0ID0gZ2VuX0ZJTEVfcHRyKG5fb3V0cHV0LCAwKTsKKyAgICAgICAgcmVnZXhwID0gZ2VuX3htbFJlZ2V4cFB0cihuX3JlZ2V4cCwgMSk7CisKKyAgICAgICAgeG1sUmVnZXhwUHJpbnQob3V0cHV0LCByZWdleHApOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX3htbFJlZ2V4cFB0cihuX3JlZ2V4cCwgcmVnZXhwLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFJlZ2V4cFByaW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dHB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVnZXhwKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxyZWdleHAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhtbHJlZ2V4cCA6IDE2IG9mIDMwIGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRXhwQ3R4dE5iQ29ucygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRXhwQ3R4dE5iTm9kZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEV4cER1bXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEV4cEV4cERlcml2ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRXhwR2V0TGFuZ3VhZ2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEV4cEdldFN0YXJ0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxFeHBJc05pbGxhYmxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxFeHBNYXhUb2tlbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRXhwTmV3QXRvbSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRXhwTmV3Q3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRXhwTmV3T3IoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEV4cE5ld1JhbmdlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxFeHBOZXdTZXEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEV4cFBhcnNlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxFeHBSZWYoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbEV4cFN0cmluZ0Rlcml2ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sRXhwU3Vic3VtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVnRXhlY0VyckluZm8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFJlZ0V4ZWNOZXh0VmFsdWVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWdFeGVjUHVzaFN0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVnRXhlY1B1c2hTdHJpbmcyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxSZWdOZXdFeGVjQ3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVnZXhwQ29tcGlsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVnZXhwRXhlYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVnZXhwSXNEZXRlcm1pbmlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sUmVnZXhwUHJpbnQoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIHhtbHJlZ2V4cDogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sU2F2ZUN0eHRQdHIgMQorc3RhdGljIHhtbFNhdmVDdHh0UHRyIGdlbl94bWxTYXZlQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU2F2ZUN0eHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFNhdmVDdHh0UHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxTYXZlQ2xvc2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2F2ZUN0eHRQdHIgY3R4dDsgLyogYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNhdmVDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2F2ZUN0eHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2F2ZUNsb3NlKGN0eHQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTYXZlQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2F2ZUNsb3NlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTYXZlRG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGxvbmcgcmV0X3ZhbDsKKyAgICB4bWxTYXZlQ3R4dFB0ciBjdHh0OyAvKiBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhIGRvY3VtZW50ICovCisgICAgaW50IG5fZG9jOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTYXZlQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2F2ZUN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNhdmVEb2MoY3R4dCwgZG9jKTsKKyAgICAgICAgZGVzcmV0X2xvbmcocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNhdmVDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxEb2NQdHIobl9kb2MsIGRvYywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTYXZlRG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTYXZlRmx1c2godm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2F2ZUN0eHRQdHIgY3R4dDsgLyogYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNhdmVDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2F2ZUN0eHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2F2ZUZsdXNoKGN0eHQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTYXZlQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2F2ZUZsdXNoIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTYXZlU2V0QXR0ckVzY2FwZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2F2ZVNldEVzY2FwZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2F2ZVRvQnVmZmVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTYXZlVG9GZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2F2ZVRvRmlsZW5hbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNhdmVUcmVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfT1VUUFVUX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGxvbmcgcmV0X3ZhbDsKKyAgICB4bWxTYXZlQ3R4dFB0ciBjdHh0OyAvKiBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIHRoZSB0b3Agbm9kZSBvZiB0aGUgc3VidHJlZSB0byBzYXZlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sU2F2ZUN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTYXZlQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2F2ZVRyZWUoY3R4dCwgbm9kZSk7CisgICAgICAgIGRlc3JldF9sb25nKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTYXZlQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2F2ZVRyZWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sc2F2ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGlmIChxdWlldCA9PSAwKSBwcmludGYoIlRlc3RpbmcgeG1sc2F2ZSA6IDQgb2YgMTAgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTYXZlQ2xvc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNhdmVEb2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNhdmVGbHVzaCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2F2ZVNldEF0dHJFc2NhcGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNhdmVTZXRFc2NhcGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNhdmVUb0J1ZmZlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2F2ZVRvRmQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNhdmVUb0ZpbGVuYW1lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTYXZlVHJlZSgpOworCisgICAgaWYgKHRlc3RfcmV0ICE9IDApCisJcHJpbnRmKCJNb2R1bGUgeG1sc2F2ZTogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFEdW1wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9PVVRQVVRfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgRklMRSAqIG91dHB1dDsgLyogdGhlIGZpbGUgb3V0cHV0ICovCisgICAgaW50IG5fb3V0cHV0OworICAgIHhtbFNjaGVtYVB0ciBzY2hlbWE7IC8qIGEgc2NoZW1hIHN0cnVjdHVyZSAqLworICAgIGludCBuX3NjaGVtYTsKKworICAgIGZvciAobl9vdXRwdXQgPSAwO25fb3V0cHV0IDwgZ2VuX25iX0ZJTEVfcHRyO25fb3V0cHV0KyspIHsKKyAgICBmb3IgKG5fc2NoZW1hID0gMDtuX3NjaGVtYSA8IGdlbl9uYl94bWxTY2hlbWFQdHI7bl9zY2hlbWErKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXRwdXQgPSBnZW5fRklMRV9wdHIobl9vdXRwdXQsIDApOworICAgICAgICBzY2hlbWEgPSBnZW5feG1sU2NoZW1hUHRyKG5fc2NoZW1hLCAxKTsKKworICAgICAgICB4bWxTY2hlbWFEdW1wKG91dHB1dCwgc2NoZW1hKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfRklMRV9wdHIobl9vdXRwdXQsIG91dHB1dCwgMCk7CisgICAgICAgIGRlc194bWxTY2hlbWFQdHIobl9zY2hlbWEsIHNjaGVtYSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFEdW1wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dHB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2NoZW1hKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciAxCitzdGF0aWMgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBnZW5feG1sU2NoZW1hUGFyc2VyQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuY19wdHIgMQorc3RhdGljIHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jICogZ2VuX3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmNfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmNfcHRyIDEKK3N0YXRpYyB4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jICogZ2VuX3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmNfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyAqIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dDsgLyogYSBYTWwtU2NoZW1hIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyAqIGVycjsgLyogdGhlIGVycm9yIGNhbGxiYWNrIHJlc3VsdCAqLworICAgIGludCBuX2VycjsKKyAgICB4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jICogd2FybjsgLyogdGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0ICovCisgICAgaW50IG5fd2FybjsKKyAgICB2b2lkICoqIGN0eDsgLyogY29udGV4dHVhbCBkYXRhIGZvciB0aGUgY2FsbGJhY2tzIHJlc3VsdCAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9lcnIgPSAwO25fZXJyIDwgZ2VuX25iX3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jX3B0cjtuX2VycisrKSB7CisgICAgZm9yIChuX3dhcm4gPSAwO25fd2FybiA8IGdlbl9uYl94bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cjtuX3dhcm4rKykgeworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyX3B0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2NoZW1hUGFyc2VyQ3R4dFB0cihuX2N0eHQsIDApOworICAgICAgICBlcnIgPSBnZW5feG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmNfcHRyKG5fZXJyLCAxKTsKKyAgICAgICAgd2FybiA9IGdlbl94bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cihuX3dhcm4sIDIpOworICAgICAgICBjdHggPSBnZW5fdm9pZF9wdHJfcHRyKG5fY3R4LCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hR2V0UGFyc2VyRXJyb3JzKGN0eHQsIGVyciwgd2FybiwgY3R4KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmNfcHRyKG5fZXJyLCBlcnIsIDEpOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuY19wdHIobl93YXJuLCB3YXJuLCAyKTsKKyAgICAgICAgZGVzX3ZvaWRfcHRyX3B0cihuX2N0eCwgY3R4LCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYUdldFBhcnNlckVycm9ycyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lcnIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dhcm4pOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYUdldFZhbGlkRXJyb3JzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dDsgLyogYSBYTUwtU2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMgKiBlcnI7IC8qIHRoZSBlcnJvciBmdW5jdGlvbiByZXN1bHQgKi8KKyAgICBpbnQgbl9lcnI7CisgICAgeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyAqIHdhcm47IC8qIHRoZSB3YXJuaW5nIGZ1bmN0aW9uIHJlc3VsdCAqLworICAgIGludCBuX3dhcm47CisgICAgdm9pZCAqKiBjdHg7IC8qIHRoZSBmdW5jdGlvbnMgY29udGV4dCByZXN1bHQgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNjaGVtYVZhbGlkQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9lcnIgPSAwO25fZXJyIDwgZ2VuX25iX3htbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jX3B0cjtuX2VycisrKSB7CisgICAgZm9yIChuX3dhcm4gPSAwO25fd2FybiA8IGdlbl9uYl94bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jX3B0cjtuX3dhcm4rKykgeworICAgIGZvciAobl9jdHggPSAwO25fY3R4IDwgZ2VuX25iX3ZvaWRfcHRyX3B0cjtuX2N0eCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2NoZW1hVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGVyciA9IGdlbl94bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuY19wdHIobl9lcnIsIDEpOworICAgICAgICB3YXJuID0gZ2VuX3htbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmNfcHRyKG5fd2FybiwgMik7CisgICAgICAgIGN0eCA9IGdlbl92b2lkX3B0cl9wdHIobl9jdHgsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyhjdHh0LCBlcnIsIHdhcm4sIGN0eCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmNfcHRyKG5fZXJyLCBlcnIsIDEpOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuY19wdHIobl93YXJuLCB3YXJuLCAyKTsKKyAgICAgICAgZGVzX3ZvaWRfcHRyX3B0cihuX2N0eCwgY3R4LCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYUdldFZhbGlkRXJyb3JzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Vycik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd2Fybik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hSXNWYWxpZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sU2NoZW1hVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2NoZW1hVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYUlzVmFsaWQoY3R4dCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hSXNWYWxpZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciByZXRfdmFsOworICAgIHhtbERvY1B0ciBkb2M7IC8qIGEgcHJlcGFyc2VkIGRvY3VtZW50IHRyZWUgKi8KKyAgICBpbnQgbl9kb2M7CisKKyAgICBmb3IgKG5fZG9jID0gMDtuX2RvYyA8IGdlbl9uYl94bWxEb2NQdHI7bl9kb2MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBkb2MgPSBnZW5feG1sRG9jUHRyKG5fZG9jLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dChkb2MpOworICAgICAgICBkZXNyZXRfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHJldF92YWw7CisgICAgY2hhciAqIGJ1ZmZlcjsgLyogYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheSBjb250YWluaW5nIHRoZSBzY2hlbWFzICovCisgICAgaW50IG5fYnVmZmVyOworICAgIGludCBzaXplOyAvKiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKi8KKyAgICBpbnQgbl9zaXplOworCisgICAgZm9yIChuX2J1ZmZlciA9IDA7bl9idWZmZXIgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9idWZmZXIrKykgeworICAgIGZvciAobl9zaXplID0gMDtuX3NpemUgPCBnZW5fbmJfaW50O25fc2l6ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGJ1ZmZlciA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2J1ZmZlciwgMCk7CisgICAgICAgIHNpemUgPSBnZW5faW50KG5fc2l6ZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYU5ld01lbVBhcnNlckN0eHQoKGNvbnN0IGNoYXIgKilidWZmZXIsIHNpemUpOworICAgICAgICBkZXNyZXRfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9idWZmZXIsIChjb25zdCBjaGFyICopYnVmZmVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3NpemUsIHNpemUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9idWZmZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3NpemUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciByZXRfdmFsOworICAgIGNoYXIgKiBVUkw7IC8qIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hICovCisgICAgaW50IG5fVVJMOworCisgICAgZm9yIChuX1VSTCA9IDA7bl9VUkwgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9VUkwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBVUkwgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9VUkwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0KChjb25zdCBjaGFyICopVVJMKTsKKyAgICAgICAgZGVzcmV0X3htbFNjaGVtYVBhcnNlckN0eHRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fVVJMLCAoY29uc3QgY2hhciAqKVVSTCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX1VSTCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYU5ld1ZhbGlkQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hUGFyc2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sU0FYSGFuZGxlclB0cl9wdHIgMQorc3RhdGljIHhtbFNBWEhhbmRsZXJQdHIgKiBnZW5feG1sU0FYSGFuZGxlclB0cl9wdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFNBWEhhbmRsZXJQdHJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTQVhIYW5kbGVyUHRyICogdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVNBWFBsdWcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sU2NoZW1hU0FYUGx1Z1B0ciAxCitzdGF0aWMgeG1sU2NoZW1hU0FYUGx1Z1B0ciBnZW5feG1sU2NoZW1hU0FYUGx1Z1B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU2NoZW1hU0FYUGx1Z1B0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU2NoZW1hU0FYUGx1Z1B0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hU0FYVW5wbHVnKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIHBsdWc7IC8qIGEgZGF0YSBzdHJ1Y3R1cmUgcmV0dXJuZWQgYnkgeG1sU2NoZW1hU0FYUGx1ZyAqLworICAgIGludCBuX3BsdWc7CisKKyAgICBmb3IgKG5fcGx1ZyA9IDA7bl9wbHVnIDwgZ2VuX25iX3htbFNjaGVtYVNBWFBsdWdQdHI7bl9wbHVnKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcGx1ZyA9IGdlbl94bWxTY2hlbWFTQVhQbHVnUHRyKG5fcGx1ZywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVNBWFVucGx1ZyhwbHVnKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hU0FYUGx1Z1B0cihuX3BsdWcsIHBsdWcsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hU0FYVW5wbHVnIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3BsdWcpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVNldFZhbGlkRXJyb3JzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OyAvKiBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBvcHRpb25zOyAvKiBhIGNvbWJpbmF0aW9uIG9mIHhtbFNjaGVtYVZhbGlkT3B0aW9uICovCisgICAgaW50IG5fb3B0aW9uczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sU2NoZW1hVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9pbnQ7bl9vcHRpb25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTY2hlbWFWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgb3B0aW9ucyA9IGdlbl9pbnQobl9vcHRpb25zLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zKGN0eHQsIG9wdGlvbnMpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX29wdGlvbnMsIG9wdGlvbnMsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dDsgLyogYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sU2NoZW1hVmFsaWRDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2NoZW1hVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMoY3R4dCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciByZXRfdmFsOworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OyAvKiBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTY2hlbWFWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTY2hlbWFWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dChjdHh0KTsKKyAgICAgICAgZGVzcmV0X3htbFBhcnNlckN0eHRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hVmFsaWRhdGVEb2Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OyAvKiBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbERvY1B0ciBkb2M7IC8qIGEgcGFyc2VkIGRvY3VtZW50IHRyZWUgKi8KKyAgICBpbnQgbl9kb2M7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFNjaGVtYVZhbGlkQ3R4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2NoZW1hVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTY2hlbWFWYWxpZGF0ZURvYyhjdHh0LCBkb2MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxpZEN0eHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYVZhbGlkYXRlRG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFWYWxpZGF0ZUZpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OyAvKiBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZTsgLyogdGhlIFVSSSBvZiB0aGUgaW5zdGFuY2UgKi8KKyAgICBpbnQgbl9maWxlbmFtZTsKKyAgICBpbnQgb3B0aW9uczsgLyogYSBmdXR1cmUgc2V0IG9mIG9wdGlvbnMsIGN1cnJlbnRseSB1bnVzZWQgKi8KKyAgICBpbnQgbl9vcHRpb25zOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTY2hlbWFWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZmlsZW5hbWUgPSAwO25fZmlsZW5hbWUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlbmFtZSsrKSB7CisgICAgZm9yIChuX29wdGlvbnMgPSAwO25fb3B0aW9ucyA8IGdlbl9uYl9pbnQ7bl9vcHRpb25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTY2hlbWFWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZmlsZW5hbWUgPSBnZW5fZmlsZXBhdGgobl9maWxlbmFtZSwgMSk7CisgICAgICAgIG9wdGlvbnMgPSBnZW5faW50KG5fb3B0aW9ucywgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbGlkYXRlRmlsZShjdHh0LCBmaWxlbmFtZSwgb3B0aW9ucyk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfZmlsZXBhdGgobl9maWxlbmFtZSwgZmlsZW5hbWUsIDEpOworICAgICAgICBkZXNfaW50KG5fb3B0aW9ucywgb3B0aW9ucywgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFWYWxpZGF0ZUZpbGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmlsZW5hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX29wdGlvbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sTm9kZVB0ciBlbGVtOyAvKiBhbiBlbGVtZW50IG5vZGUgKi8KKyAgICBpbnQgbl9lbGVtOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTY2hlbWFWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZWxlbSA9IDA7bl9lbGVtIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9lbGVtKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxTY2hlbWFWYWxpZEN0eHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgZWxlbSA9IGdlbl94bWxOb2RlUHRyKG5fZWxlbSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudChjdHh0LCBlbGVtKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsaWRDdHh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fZWxlbSwgZWxlbSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZWxlbSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQ7IC8qIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7IC8qIHRoZSBpbnB1dCB0byB1c2UgZm9yIHJlYWRpbmcgdGhlIGRhdGEgKi8KKyAgICBpbnQgbl9pbnB1dDsKKyAgICB4bWxDaGFyRW5jb2RpbmcgZW5jOyAvKiBhbiBvcHRpb25hbCBlbmNvZGluZyBpbmZvcm1hdGlvbiAqLworICAgIGludCBuX2VuYzsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIHNheDsgLyogYSBTQVggaGFuZGxlciBmb3IgdGhlIHJlc3VsdGluZyBldmVudHMgKi8KKyAgICBpbnQgbl9zYXg7CisgICAgdm9pZCAqIHVzZXJfZGF0YTsgLyogdGhlIGNvbnRleHQgdG8gcHJvdmlkZSB0byB0aGUgU0FYIGhhbmRsZXIuICovCisgICAgaW50IG5fdXNlcl9kYXRhOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxTY2hlbWFWYWxpZEN0eHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5faW5wdXQgPSAwO25faW5wdXQgPCBnZW5fbmJfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHI7bl9pbnB1dCsrKSB7CisgICAgZm9yIChuX2VuYyA9IDA7bl9lbmMgPCBnZW5fbmJfeG1sQ2hhckVuY29kaW5nO25fZW5jKyspIHsKKyAgICBmb3IgKG5fc2F4ID0gMDtuX3NheCA8IGdlbl9uYl94bWxTQVhIYW5kbGVyUHRyO25fc2F4KyspIHsKKyAgICBmb3IgKG5fdXNlcl9kYXRhID0gMDtuX3VzZXJfZGF0YSA8IGdlbl9uYl91c2VyZGF0YTtuX3VzZXJfZGF0YSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sU2NoZW1hVmFsaWRDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGlucHV0ID0gZ2VuX3htbFBhcnNlcklucHV0QnVmZmVyUHRyKG5faW5wdXQsIDEpOworICAgICAgICBlbmMgPSBnZW5feG1sQ2hhckVuY29kaW5nKG5fZW5jLCAyKTsKKyAgICAgICAgc2F4ID0gZ2VuX3htbFNBWEhhbmRsZXJQdHIobl9zYXgsIDMpOworICAgICAgICB1c2VyX2RhdGEgPSBnZW5fdXNlcmRhdGEobl91c2VyX2RhdGEsIDQpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTY2hlbWFWYWxpZGF0ZVN0cmVhbShjdHh0LCBpbnB1dCwgZW5jLCBzYXgsIHVzZXJfZGF0YSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbGlkQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIobl9pbnB1dCwgaW5wdXQsIDEpOworICAgICAgICBkZXNfeG1sQ2hhckVuY29kaW5nKG5fZW5jLCBlbmMsIDIpOworICAgICAgICBkZXNfeG1sU0FYSGFuZGxlclB0cihuX3NheCwgc2F4LCAzKTsKKyAgICAgICAgZGVzX3VzZXJkYXRhKG5fdXNlcl9kYXRhLCB1c2VyX2RhdGEsIDQpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5faW5wdXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2F4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl91c2VyX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3htbHNjaGVtYXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhtbHNjaGVtYXMgOiAxNSBvZiAyNSBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYUR1bXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYUdldFBhcnNlckVycm9ycygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hR2V0VmFsaWRFcnJvcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYUlzVmFsaWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYU5ld01lbVBhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYU5ld1BhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYU5ld1ZhbGlkQ3R4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hUGFyc2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVNBWFBsdWcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVNBWFVucGx1ZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFTZXRWYWxpZEVycm9ycygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVZhbGlkYXRlRG9jKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFWYWxpZGF0ZUZpbGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0oKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIHhtbHNjaGVtYXM6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxTY2hlbWFGYWNldFB0ciAxCitzdGF0aWMgeG1sU2NoZW1hRmFjZXRQdHIgZ2VuX3htbFNjaGVtYUZhY2V0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxTY2hlbWFGYWNldFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU2NoZW1hRmFjZXRQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKworI2RlZmluZSBnZW5fbmJfeG1sU2NoZW1hVHlwZVB0ciAxCitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciBnZW5feG1sU2NoZW1hVHlwZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oTlVMTCk7Cit9CitzdGF0aWMgdm9pZCBkZXNfeG1sU2NoZW1hVHlwZVB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU2NoZW1hVHlwZVB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hQ2hlY2tGYWNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQ7IC8qIHRoZSBmYWNldCAqLworICAgIGludCBuX2ZhY2V0OworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZURlY2w7IC8qIHRoZSBzY2hlbWEgdHlwZSBkZWZpbml0aW9uICovCisgICAgaW50IG5fdHlwZURlY2w7CisgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dDsgLyogdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dCBvciBOVUxMICovCisgICAgaW50IG5fcGN0eHQ7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBvcHRpb25hbCBuYW1lIG9mIHRoZSB0eXBlICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9mYWNldCA9IDA7bl9mYWNldCA8IGdlbl9uYl94bWxTY2hlbWFGYWNldFB0cjtuX2ZhY2V0KyspIHsKKyAgICBmb3IgKG5fdHlwZURlY2wgPSAwO25fdHlwZURlY2wgPCBnZW5fbmJfeG1sU2NoZW1hVHlwZVB0cjtuX3R5cGVEZWNsKyspIHsKKyAgICBmb3IgKG5fcGN0eHQgPSAwO25fcGN0eHQgPCBnZW5fbmJfeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cjtuX3BjdHh0KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZhY2V0ID0gZ2VuX3htbFNjaGVtYUZhY2V0UHRyKG5fZmFjZXQsIDApOworICAgICAgICB0eXBlRGVjbCA9IGdlbl94bWxTY2hlbWFUeXBlUHRyKG5fdHlwZURlY2wsIDEpOworICAgICAgICBwY3R4dCA9IGdlbl94bWxTY2hlbWFQYXJzZXJDdHh0UHRyKG5fcGN0eHQsIDIpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYUNoZWNrRmFjZXQoZmFjZXQsIHR5cGVEZWNsLCBwY3R4dCwgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hRmFjZXRQdHIobl9mYWNldCwgZmFjZXQsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hVHlwZVB0cihuX3R5cGVEZWNsLCB0eXBlRGVjbCwgMSk7CisgICAgICAgIGRlc194bWxTY2hlbWFQYXJzZXJDdHh0UHRyKG5fcGN0eHQsIHBjdHh0LCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYUNoZWNrRmFjZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmFjZXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3R5cGVEZWNsKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYUNsZWFudXBUeXBlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKworCisgICAgICAgIHhtbFNjaGVtYUNsZWFudXBUeXBlcygpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYUNvbGxhcHNlU3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIGEgdmFsdWUgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nKChjb25zdCB4bWxDaGFyICopdmFsdWUpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hQ29sbGFwc2VTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFNjaGVtYVZhbFB0ciAxCitzdGF0aWMgeG1sU2NoZW1hVmFsUHRyIGdlbl94bWxTY2hlbWFWYWxQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFNjaGVtYVZhbFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sU2NoZW1hVmFsUHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFDb21wYXJlVmFsdWVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFWYWxQdHIgeDsgLyogYSBmaXJzdCB2YWx1ZSAqLworICAgIGludCBuX3g7CisgICAgeG1sU2NoZW1hVmFsUHRyIHk7IC8qIGEgc2Vjb25kIHZhbHVlICovCisgICAgaW50IG5feTsKKworICAgIGZvciAobl94ID0gMDtuX3ggPCBnZW5fbmJfeG1sU2NoZW1hVmFsUHRyO25feCsrKSB7CisgICAgZm9yIChuX3kgPSAwO25feSA8IGdlbl9uYl94bWxTY2hlbWFWYWxQdHI7bl95KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgeCA9IGdlbl94bWxTY2hlbWFWYWxQdHIobl94LCAwKTsKKyAgICAgICAgeSA9IGdlbl94bWxTY2hlbWFWYWxQdHIobl95LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlcyh4LCB5KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyKG5feCwgeCwgMCk7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxQdHIobl95LCB5LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5feCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5feSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVZhbFB0ciB4OyAvKiBhIGZpcnN0IHZhbHVlICovCisgICAgaW50IG5feDsKKyAgICB4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIHh3czsgLyogdGhlIHdoaXRlc3BhY2UgdmFsdWUgb2YgeCAqLworICAgIGludCBuX3h3czsKKyAgICB4bWxTY2hlbWFWYWxQdHIgeTsgLyogYSBzZWNvbmQgdmFsdWUgKi8KKyAgICBpbnQgbl95OworICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgeXdzOyAvKiB0aGUgd2hpdGVzcGFjZSB2YWx1ZSBvZiB5ICovCisgICAgaW50IG5feXdzOworCisgICAgZm9yIChuX3ggPSAwO25feCA8IGdlbl9uYl94bWxTY2hlbWFWYWxQdHI7bl94KyspIHsKKyAgICBmb3IgKG5feHdzID0gMDtuX3h3cyA8IGdlbl9uYl94bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlO25feHdzKyspIHsKKyAgICBmb3IgKG5feSA9IDA7bl95IDwgZ2VuX25iX3htbFNjaGVtYVZhbFB0cjtuX3krKykgeworICAgIGZvciAobl95d3MgPSAwO25feXdzIDwgZ2VuX25iX3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU7bl95d3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB4ID0gZ2VuX3htbFNjaGVtYVZhbFB0cihuX3gsIDApOworICAgICAgICB4d3MgPSBnZW5feG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShuX3h3cywgMSk7CisgICAgICAgIHkgPSBnZW5feG1sU2NoZW1hVmFsUHRyKG5feSwgMik7CisgICAgICAgIHl3cyA9IGdlbl94bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlKG5feXdzLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwKHgsIHh3cywgeSwgeXdzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyKG5feCwgeCwgMCk7CisgICAgICAgIGRlc194bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlKG5feHdzLCB4d3MsIDEpOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyKG5feSwgeSwgMik7CisgICAgICAgIGRlc194bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlKG5feXdzLCB5d3MsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3gpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3h3cyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5feSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5feXdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hQ29weVZhbHVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFHZXRCdWlsdEluTGlzdFNpbXBsZVR5cGVJdGVtVHlwZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sU2NoZW1hVHlwZVB0ciByZXRfdmFsOworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZTsgLyogdGhlIGJ1aWx0LWluIHNpbXBsZSB0eXBlLiAqLworICAgIGludCBuX3R5cGU7CisKKyAgICBmb3IgKG5fdHlwZSA9IDA7bl90eXBlIDwgZ2VuX25iX3htbFNjaGVtYVR5cGVQdHI7bl90eXBlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdHlwZSA9IGdlbl94bWxTY2hlbWFUeXBlUHRyKG5fdHlwZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlKHR5cGUpOworICAgICAgICBkZXNyZXRfeG1sU2NoZW1hVHlwZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVHlwZVB0cihuX3R5cGUsIHR5cGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYUdldEJ1aWx0SW5UeXBlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIHhtbFNjaGVtYVR5cGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFWYWxUeXBlIHR5cGU7IC8qIHRoZSB0eXBlIG9mIHRoZSBidWlsdCBpbiB0eXBlICovCisgICAgaW50IG5fdHlwZTsKKworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfeG1sU2NoZW1hVmFsVHlwZTtuX3R5cGUrKykgeworICAgICAgICB0eXBlID0gZ2VuX3htbFNjaGVtYVZhbFR5cGUobl90eXBlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hR2V0QnVpbHRJblR5cGUodHlwZSk7CisgICAgICAgIGRlc3JldF94bWxTY2hlbWFUeXBlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxUeXBlKG5fdHlwZSwgdHlwZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFHZXRDYW5vblZhbHVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFWYWxQdHIgdmFsOyAvKiB0aGUgcHJlY29tcHV0ZWQgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisgICAgeG1sQ2hhciAqKiByZXRWYWx1ZTsgLyogdGhlIHJldHVybmVkIHZhbHVlICovCisgICAgaW50IG5fcmV0VmFsdWU7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxTY2hlbWFWYWxQdHI7bl92YWwrKykgeworICAgIGZvciAobl9yZXRWYWx1ZSA9IDA7bl9yZXRWYWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cl9wdHI7bl9yZXRWYWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxTY2hlbWFWYWxQdHIobl92YWwsIDApOworICAgICAgICByZXRWYWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cl9wdHIobl9yZXRWYWx1ZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYUdldENhbm9uVmFsdWUodmFsLCAoY29uc3QgeG1sQ2hhciAqKilyZXRWYWx1ZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX3JldFZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKilyZXRWYWx1ZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFHZXRDYW5vblZhbHVlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmV0VmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFWYWxQdHIgdmFsOyAvKiB0aGUgcHJlY29tcHV0ZWQgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisgICAgeG1sQ2hhciAqKiByZXRWYWx1ZTsgLyogdGhlIHJldHVybmVkIHZhbHVlICovCisgICAgaW50IG5fcmV0VmFsdWU7CisgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB3czsgLyogdGhlIHdoaXRlc3BhY2UgdHlwZSBvZiB0aGUgdmFsdWUgKi8KKyAgICBpbnQgbl93czsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFNjaGVtYVZhbFB0cjtuX3ZhbCsrKSB7CisgICAgZm9yIChuX3JldFZhbHVlID0gMDtuX3JldFZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyX3B0cjtuX3JldFZhbHVlKyspIHsKKyAgICBmb3IgKG5fd3MgPSAwO25fd3MgPCBnZW5fbmJfeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTtuX3dzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgMCk7CisgICAgICAgIHJldFZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyX3B0cihuX3JldFZhbHVlLCAxKTsKKyAgICAgICAgd3MgPSBnZW5feG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShuX3dzLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwKHZhbCwgKGNvbnN0IHhtbENoYXIgKiopcmV0VmFsdWUsIHdzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyKG5fdmFsLCB2YWwsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHJfcHRyKG5fcmV0VmFsdWUsIChjb25zdCB4bWxDaGFyICoqKXJldFZhbHVlLCAxKTsKKyAgICAgICAgZGVzX3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUobl93cywgd3MsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmV0VmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgdW5zaWduZWQgbG9uZyByZXRfdmFsOworICAgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0OyAvKiBhbiBzY2hlbWFzIHR5cGUgZmFjZXQgKi8KKyAgICBpbnQgbl9mYWNldDsKKworICAgIGZvciAobl9mYWNldCA9IDA7bl9mYWNldCA8IGdlbl9uYl94bWxTY2hlbWFGYWNldFB0cjtuX2ZhY2V0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZmFjZXQgPSBnZW5feG1sU2NoZW1hRmFjZXRQdHIobl9mYWNldCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nKGZhY2V0KTsKKyAgICAgICAgZGVzcmV0X3Vuc2lnbmVkX2xvbmcocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYUZhY2V0UHRyKG5fZmFjZXQsIGZhY2V0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZhY2V0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFNjaGVtYVR5cGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIHR5cGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5zOyAvKiB0aGUgVVJJIG9mIHRoZSBuYW1lc3BhY2UgdXN1YWxseSAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiICovCisgICAgaW50IG5fbnM7CisKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMCk7CisgICAgICAgIG5zID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbnMsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZSgoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopbnMpOworICAgICAgICBkZXNyZXRfeG1sU2NoZW1hVHlwZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9ucywgKGNvbnN0IHhtbENoYXIgKilucywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFHZXRQcmVkZWZpbmVkVHlwZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFHZXRWYWxUeXBlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxTY2hlbWFWYWxUeXBlIHJldF92YWw7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsgLyogYSBzY2hlbWFzIHZhbHVlICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfeG1sU2NoZW1hVmFsUHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYUdldFZhbFR5cGUodmFsKTsKKyAgICAgICAgZGVzcmV0X3htbFNjaGVtYVZhbFR5cGUocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYUdldFZhbFR5cGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hSW5pdFR5cGVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorCisKKyAgICAgICAgeG1sU2NoZW1hSW5pdFR5cGVzKCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGU7IC8qIHRoZSBidWlsdC1pbiB0eXBlICovCisgICAgaW50IG5fdHlwZTsKKyAgICBpbnQgZmFjZXRUeXBlOyAvKiB0aGUgZmFjZXQgdHlwZSAqLworICAgIGludCBuX2ZhY2V0VHlwZTsKKworICAgIGZvciAobl90eXBlID0gMDtuX3R5cGUgPCBnZW5fbmJfeG1sU2NoZW1hVHlwZVB0cjtuX3R5cGUrKykgeworICAgIGZvciAobl9mYWNldFR5cGUgPSAwO25fZmFjZXRUeXBlIDwgZ2VuX25iX2ludDtuX2ZhY2V0VHlwZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHR5cGUgPSBnZW5feG1sU2NoZW1hVHlwZVB0cihuX3R5cGUsIDApOworICAgICAgICBmYWNldFR5cGUgPSBnZW5faW50KG5fZmFjZXRUeXBlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0KHR5cGUsIGZhY2V0VHlwZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVR5cGVQdHIobl90eXBlLCB0eXBlLCAwKTsKKyAgICAgICAgZGVzX2ludChuX2ZhY2V0VHlwZSwgZmFjZXRUeXBlLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYUlzQnVpbHRJblR5cGVGYWNldCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl90eXBlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9mYWNldFR5cGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hTmV3RmFjZXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYU5ld1FOYW1lVmFsdWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYU5ld1N0cmluZ1ZhbHVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFNjaGVtYVZhbFB0cl9wdHIgMQorc3RhdGljIHhtbFNjaGVtYVZhbFB0ciAqIGdlbl94bWxTY2hlbWFWYWxQdHJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxTY2hlbWFWYWxQdHJfcHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxTY2hlbWFWYWxQdHIgKiB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZTsgLyogdGhlIHByZWRlZmluZWQgdHlwZSAqLworICAgIGludCBuX3R5cGU7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl92YWx1ZTsKKyAgICB4bWxTY2hlbWFWYWxQdHIgKiB2YWw7IC8qIHRoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgbm9kZSBjb250YWluaW5nIHRoZSB2YWx1ZSAqLworICAgIGludCBuX25vZGU7CisKKyAgICBmb3IgKG5fdHlwZSA9IDA7bl90eXBlIDwgZ2VuX25iX3htbFNjaGVtYVR5cGVQdHI7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfeG1sU2NoZW1hVmFsUHRyX3B0cjtuX3ZhbCsrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHR5cGUgPSBnZW5feG1sU2NoZW1hVHlwZVB0cihuX3R5cGUsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFNjaGVtYVZhbFB0cl9wdHIobl92YWwsIDIpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUodHlwZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgdmFsLCBub2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVHlwZVB0cihuX3R5cGUsIHR5cGUsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMSk7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxQdHJfcHRyKG5fdmFsLCB2YWwsIDIpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGU7IC8qIHRoZSBwcmVkZWZpbmVkIHR5cGUgKi8KKyAgICBpbnQgbl90eXBlOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIHZhbHVlIHRvIGNoZWNrICovCisgICAgaW50IG5fdmFsdWU7CisgICAgeG1sU2NoZW1hVmFsUHRyICogdmFsOyAvKiB0aGUgcmV0dXJuIGNvbXB1dGVkIHZhbHVlICovCisgICAgaW50IG5fdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogdGhlIG5vZGUgY29udGFpbmluZyB0aGUgdmFsdWUgKi8KKyAgICBpbnQgbl9ub2RlOworCisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl94bWxTY2hlbWFUeXBlUHRyO25fdHlwZSsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFNjaGVtYVZhbFB0cl9wdHI7bl92YWwrKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB0eXBlID0gZ2VuX3htbFNjaGVtYVR5cGVQdHIobl90eXBlLCAwKTsKKyAgICAgICAgdmFsdWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgMSk7CisgICAgICAgIHZhbCA9IGdlbl94bWxTY2hlbWFWYWxQdHJfcHRyKG5fdmFsLCAyKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtKHR5cGUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIHZhbCwgbm9kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVR5cGVQdHIobl90eXBlLCB0eXBlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDEpOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyX3B0cihuX3ZhbCwgdmFsLCAyKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3R5cGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFWYWxpZGF0ZUZhY2V0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFUeXBlUHRyIGJhc2U7IC8qIHRoZSBiYXNlIHR5cGUgKi8KKyAgICBpbnQgbl9iYXNlOworICAgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0OyAvKiB0aGUgZmFjZXQgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl9mYWNldDsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSBsZXhpY2FsIHJlcHIgb2YgdGhlIHZhbHVlIHRvIHZhbGlkYXRlICovCisgICAgaW50IG5fdmFsdWU7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsgLyogdGhlIHByZWNvbXB1dGVkIHZhbHVlICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX2Jhc2UgPSAwO25fYmFzZSA8IGdlbl9uYl94bWxTY2hlbWFUeXBlUHRyO25fYmFzZSsrKSB7CisgICAgZm9yIChuX2ZhY2V0ID0gMDtuX2ZhY2V0IDwgZ2VuX25iX3htbFNjaGVtYUZhY2V0UHRyO25fZmFjZXQrKykgeworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxTY2hlbWFWYWxQdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBiYXNlID0gZ2VuX3htbFNjaGVtYVR5cGVQdHIobl9iYXNlLCAwKTsKKyAgICAgICAgZmFjZXQgPSBnZW5feG1sU2NoZW1hRmFjZXRQdHIobl9mYWNldCwgMSk7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDIpOworICAgICAgICB2YWwgPSBnZW5feG1sU2NoZW1hVmFsUHRyKG5fdmFsLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hVmFsaWRhdGVGYWNldChiYXNlLCBmYWNldCwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgdmFsKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVHlwZVB0cihuX2Jhc2UsIGJhc2UsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hRmFjZXRQdHIobl9mYWNldCwgZmFjZXQsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMik7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxQdHIobl92YWwsIHZhbCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Jhc2UpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZhY2V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsgLyogdGhlIGZhY2V0IHRvIGNoZWNrICovCisgICAgaW50IG5fZmFjZXQ7CisgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSBmd3M7IC8qIHRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIGZhY2V0J3MgdmFsdWUgKi8KKyAgICBpbnQgbl9md3M7CisgICAgeG1sU2NoZW1hVmFsVHlwZSB2YWxUeXBlOyAvKiB0aGUgYnVpbHQtaW4gdHlwZSBvZiB0aGUgdmFsdWUgKi8KKyAgICBpbnQgbl92YWxUeXBlOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIGxleGljYWwgKG9yIG5vcm1hbGl6ZWQgZm9yIHBhdHRlcm4pIHJlcHIgb2YgdGhlIHZhbHVlIHRvIHZhbGlkYXRlICovCisgICAgaW50IG5fdmFsdWU7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsgLyogdGhlIHByZWNvbXB1dGVkIHZhbHVlICovCisgICAgaW50IG5fdmFsOworICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3M7IC8qIHRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlICovCisgICAgaW50IG5fd3M7CisKKyAgICBmb3IgKG5fZmFjZXQgPSAwO25fZmFjZXQgPCBnZW5fbmJfeG1sU2NoZW1hRmFjZXRQdHI7bl9mYWNldCsrKSB7CisgICAgZm9yIChuX2Z3cyA9IDA7bl9md3MgPCBnZW5fbmJfeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZTtuX2Z3cysrKSB7CisgICAgZm9yIChuX3ZhbFR5cGUgPSAwO25fdmFsVHlwZSA8IGdlbl9uYl94bWxTY2hlbWFWYWxUeXBlO25fdmFsVHlwZSsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFNjaGVtYVZhbFB0cjtuX3ZhbCsrKSB7CisgICAgZm9yIChuX3dzID0gMDtuX3dzIDwgZ2VuX25iX3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGU7bl93cysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZhY2V0ID0gZ2VuX3htbFNjaGVtYUZhY2V0UHRyKG5fZmFjZXQsIDApOworICAgICAgICBmd3MgPSBnZW5feG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShuX2Z3cywgMSk7CisgICAgICAgIHZhbFR5cGUgPSBnZW5feG1sU2NoZW1hVmFsVHlwZShuX3ZhbFR5cGUsIDIpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAzKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgNCk7CisgICAgICAgIHdzID0gZ2VuX3htbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUobl93cywgNSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcChmYWNldCwgZndzLCB2YWxUeXBlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCB2YWwsIHdzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hRmFjZXRQdHIobl9mYWNldCwgZmFjZXQsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShuX2Z3cywgZndzLCAxKTsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbFR5cGUobl92YWxUeXBlLCB2YWxUeXBlLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDMpOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyKG5fdmFsLCB2YWwsIDQpOworICAgICAgICBkZXNfeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShuX3dzLCB3cywgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmFjZXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Z3cyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsVHlwZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZTsgLyogdGhlIGJ1aWx0LWluIHR5cGUgKi8KKyAgICBpbnQgbl90eXBlOworICAgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0OyAvKiB0aGUgZmFjZXQgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl9mYWNldDsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSBsZXhpY2FsIHJlcHIuIG9mIHRoZSB2YWx1ZSB0byBiZSB2YWxpZGF0ZWQgKi8KKyAgICBpbnQgbl92YWx1ZTsKKyAgICB4bWxTY2hlbWFWYWxQdHIgdmFsOyAvKiB0aGUgcHJlY29tcHV0ZWQgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisgICAgdW5zaWduZWQgbG9uZyAqIGxlbmd0aDsgLyogdGhlIGFjdHVhbCBsZW5ndGggb2YgdGhlIHZhbHVlICovCisgICAgaW50IG5fbGVuZ3RoOworCisgICAgZm9yIChuX3R5cGUgPSAwO25fdHlwZSA8IGdlbl9uYl94bWxTY2hlbWFUeXBlUHRyO25fdHlwZSsrKSB7CisgICAgZm9yIChuX2ZhY2V0ID0gMDtuX2ZhY2V0IDwgZ2VuX25iX3htbFNjaGVtYUZhY2V0UHRyO25fZmFjZXQrKykgeworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxTY2hlbWFWYWxQdHI7bl92YWwrKykgeworICAgIGZvciAobl9sZW5ndGggPSAwO25fbGVuZ3RoIDwgZ2VuX25iX3Vuc2lnbmVkX2xvbmdfcHRyO25fbGVuZ3RoKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdHlwZSA9IGdlbl94bWxTY2hlbWFUeXBlUHRyKG5fdHlwZSwgMCk7CisgICAgICAgIGZhY2V0ID0gZ2VuX3htbFNjaGVtYUZhY2V0UHRyKG5fZmFjZXQsIDEpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAyKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgMyk7CisgICAgICAgIGxlbmd0aCA9IGdlbl91bnNpZ25lZF9sb25nX3B0cihuX2xlbmd0aCwgNCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQodHlwZSwgZmFjZXQsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIHZhbCwgbGVuZ3RoKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVHlwZVB0cihuX3R5cGUsIHR5cGUsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hRmFjZXRQdHIobl9mYWNldCwgZmFjZXQsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMik7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxQdHIobl92YWwsIHZhbCwgMyk7CisgICAgICAgIGRlc191bnNpZ25lZF9sb25nX3B0cihuX2xlbmd0aCwgbGVuZ3RoLCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmFjZXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbmd0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0OyAvKiB0aGUgZmFjZXQgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl9mYWNldDsKKyAgICB4bWxTY2hlbWFWYWxUeXBlIHZhbFR5cGU7IC8qIHRoZSBidWlsdC1pbiB0eXBlICovCisgICAgaW50IG5fdmFsVHlwZTsKKyAgICB4bWxDaGFyICogdmFsdWU7IC8qIHRoZSBsZXhpY2FsIHJlcHIuIG9mIHRoZSB2YWx1ZSB0byBiZSB2YWxpZGF0ZWQgKi8KKyAgICBpbnQgbl92YWx1ZTsKKyAgICB4bWxTY2hlbWFWYWxQdHIgdmFsOyAvKiB0aGUgcHJlY29tcHV0ZWQgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisgICAgdW5zaWduZWQgbG9uZyAqIGxlbmd0aDsgLyogdGhlIGFjdHVhbCBsZW5ndGggb2YgdGhlIHZhbHVlICovCisgICAgaW50IG5fbGVuZ3RoOworICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3M7IC8qIHRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlICovCisgICAgaW50IG5fd3M7CisKKyAgICBmb3IgKG5fZmFjZXQgPSAwO25fZmFjZXQgPCBnZW5fbmJfeG1sU2NoZW1hRmFjZXRQdHI7bl9mYWNldCsrKSB7CisgICAgZm9yIChuX3ZhbFR5cGUgPSAwO25fdmFsVHlwZSA8IGdlbl9uYl94bWxTY2hlbWFWYWxUeXBlO25fdmFsVHlwZSsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFNjaGVtYVZhbFB0cjtuX3ZhbCsrKSB7CisgICAgZm9yIChuX2xlbmd0aCA9IDA7bl9sZW5ndGggPCBnZW5fbmJfdW5zaWduZWRfbG9uZ19wdHI7bl9sZW5ndGgrKykgeworICAgIGZvciAobl93cyA9IDA7bl93cyA8IGdlbl9uYl94bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlO25fd3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBmYWNldCA9IGdlbl94bWxTY2hlbWFGYWNldFB0cihuX2ZhY2V0LCAwKTsKKyAgICAgICAgdmFsVHlwZSA9IGdlbl94bWxTY2hlbWFWYWxUeXBlKG5fdmFsVHlwZSwgMSk7CisgICAgICAgIHZhbHVlID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIDIpOworICAgICAgICB2YWwgPSBnZW5feG1sU2NoZW1hVmFsUHRyKG5fdmFsLCAzKTsKKyAgICAgICAgbGVuZ3RoID0gZ2VuX3Vuc2lnbmVkX2xvbmdfcHRyKG5fbGVuZ3RoLCA0KTsKKyAgICAgICAgd3MgPSBnZW5feG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShuX3dzLCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwKGZhY2V0LCB2YWxUeXBlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCB2YWwsIGxlbmd0aCwgd3MpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTY2hlbWFGYWNldFB0cihuX2ZhY2V0LCBmYWNldCwgMCk7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxUeXBlKG5fdmFsVHlwZSwgdmFsVHlwZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCAyKTsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgdmFsLCAzKTsKKyAgICAgICAgZGVzX3Vuc2lnbmVkX2xvbmdfcHRyKG5fbGVuZ3RoLCBsZW5ndGgsIDQpOworICAgICAgICBkZXNfeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZShuX3dzLCB3cywgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZmFjZXQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbFR5cGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbmd0aCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQ7IC8qIHRoZSBmYWNldCB0byBjaGVjayAqLworICAgIGludCBuX2ZhY2V0OworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogdGhlIGxleGljYWwgcmVwciBvZiB0aGUgdmFsdWUgdG8gdmFsaWRhdGUgKi8KKyAgICBpbnQgbl92YWx1ZTsKKyAgICB1bnNpZ25lZCBsb25nIGFjdHVhbExlbjsgLyogdGhlIG51bWJlciBvZiBsaXN0IGl0ZW1zICovCisgICAgaW50IG5fYWN0dWFsTGVuOworICAgIHVuc2lnbmVkIGxvbmcgKiBleHBlY3RlZExlbjsgLyogdGhlIHJlc3VsdGluZyBleHBlY3RlZCBudW1iZXIgb2YgbGlzdCBpdGVtcyAqLworICAgIGludCBuX2V4cGVjdGVkTGVuOworCisgICAgZm9yIChuX2ZhY2V0ID0gMDtuX2ZhY2V0IDwgZ2VuX25iX3htbFNjaGVtYUZhY2V0UHRyO25fZmFjZXQrKykgeworICAgIGZvciAobl92YWx1ZSA9IDA7bl92YWx1ZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbHVlKyspIHsKKyAgICBmb3IgKG5fYWN0dWFsTGVuID0gMDtuX2FjdHVhbExlbiA8IGdlbl9uYl91bnNpZ25lZF9sb25nO25fYWN0dWFsTGVuKyspIHsKKyAgICBmb3IgKG5fZXhwZWN0ZWRMZW4gPSAwO25fZXhwZWN0ZWRMZW4gPCBnZW5fbmJfdW5zaWduZWRfbG9uZ19wdHI7bl9leHBlY3RlZExlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGZhY2V0ID0gZ2VuX3htbFNjaGVtYUZhY2V0UHRyKG5fZmFjZXQsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKyAgICAgICAgYWN0dWFsTGVuID0gZ2VuX3Vuc2lnbmVkX2xvbmcobl9hY3R1YWxMZW4sIDIpOworICAgICAgICBleHBlY3RlZExlbiA9IGdlbl91bnNpZ25lZF9sb25nX3B0cihuX2V4cGVjdGVkTGVuLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0KGZhY2V0LCAoY29uc3QgeG1sQ2hhciAqKXZhbHVlLCBhY3R1YWxMZW4sIGV4cGVjdGVkTGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hRmFjZXRQdHIobl9mYWNldCwgZmFjZXQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMSk7CisgICAgICAgIGRlc191bnNpZ25lZF9sb25nKG5fYWN0dWFsTGVuLCBhY3R1YWxMZW4sIDIpOworICAgICAgICBkZXNfdW5zaWduZWRfbG9uZ19wdHIobl9leHBlY3RlZExlbiwgZXhwZWN0ZWRMZW4sIDMpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZhY2V0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYWN0dWFsTGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9leHBlY3RlZExlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZTsgLyogdGhlIHByZWRlZmluZWQgdHlwZSAqLworICAgIGludCBuX3R5cGU7CisgICAgeG1sQ2hhciAqIHZhbHVlOyAvKiB0aGUgdmFsdWUgdG8gY2hlY2sgKi8KKyAgICBpbnQgbl92YWx1ZTsKKyAgICB4bWxTY2hlbWFWYWxQdHIgKiB2YWw7IC8qIHRoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdHlwZSA9IDA7bl90eXBlIDwgZ2VuX25iX3htbFNjaGVtYVR5cGVQdHI7bl90eXBlKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl92YWx1ZSsrKSB7CisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfeG1sU2NoZW1hVmFsUHRyX3B0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHR5cGUgPSBnZW5feG1sU2NoZW1hVHlwZVB0cihuX3R5cGUsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAxKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFNjaGVtYVZhbFB0cl9wdHIobl92YWwsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlKHR5cGUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIHZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVR5cGVQdHIobl90eXBlLCB0eXBlLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsdWUsIChjb25zdCB4bWxDaGFyICopdmFsdWUsIDEpOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyX3B0cihuX3ZhbCwgdmFsLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdHlwZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hVmFsdWVBcHBlbmQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFNjaGVtYVZhbFB0ciBwcmV2OyAvKiB0aGUgdmFsdWUgKi8KKyAgICBpbnQgbl9wcmV2OworICAgIHhtbFNjaGVtYVZhbFB0ciBjdXI7IC8qIHRoZSB2YWx1ZSB0byBiZSBhcHBlbmRlZCAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9wcmV2ID0gMDtuX3ByZXYgPCBnZW5fbmJfeG1sU2NoZW1hVmFsUHRyO25fcHJldisrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sU2NoZW1hVmFsUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgcHJldiA9IGdlbl94bWxTY2hlbWFWYWxQdHIobl9wcmV2LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbFNjaGVtYVZhbFB0cihuX2N1ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbHVlQXBwZW5kKHByZXYsIGN1cik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFNjaGVtYVZhbFB0cihuX3ByZXYsIHByZXYsIDApOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hVmFsdWVBcHBlbmQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJldik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxTY2hlbWFWYWxQdHIgdmFsOyAvKiB0aGUgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxTY2hlbWFWYWxQdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5feG1sU2NoZW1hVmFsUHRyKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4odmFsKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sU2NoZW1hVmFsUHRyKG5fdmFsLCB2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsgLyogdGhlIHZhbHVlICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfeG1sU2NoZW1hVmFsUHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFNjaGVtYVZhbFB0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmcodmFsKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxTY2hlbWFWYWxQdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFNjaGVtYVZhbHVlR2V0TmV4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiB2YWx1ZTsgLyogYSB2YWx1ZSAqLworICAgIGludCBuX3ZhbHVlOworCisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWx1ZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbHVlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UoKGNvbnN0IHhtbENoYXIgKil2YWx1ZSk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWx1ZSwgKGNvbnN0IHhtbENoYXIgKil2YWx1ZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWx1ZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxzY2hlbWFzdHlwZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhtbHNjaGVtYXN0eXBlcyA6IDI2IG9mIDM0IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hQ2hlY2tGYWNldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hQ2xlYW51cFR5cGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFDb2xsYXBzZVN0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hQ29tcGFyZVZhbHVlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFDb3B5VmFsdWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFHZXRCdWlsdEluVHlwZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZVdodHNwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYUdldFZhbFR5cGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYUluaXRUeXBlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFOZXdGYWNldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hTmV3UU5hbWVWYWx1ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hVmFsaWRhdGVGYWNldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVZhbGlkYXRlTGlzdFNpbXBsZVR5cGVGYWNldCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU2NoZW1hVmFsdWVBcHBlbmQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTY2hlbWFWYWx1ZUdldE5leHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4bWxzY2hlbWFzdHlwZXM6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hhclN0cmR1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICBjaGFyICogY3VyOyAvKiB0aGUgaW5wdXQgY2hhciAqICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9jdXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxDaGFyU3RyZHVwKChjb25zdCBjaGFyICopY3VyKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2N1ciwgKGNvbnN0IGNoYXIgKiljdXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2hhclN0cmR1cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hhclN0cm5kdXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgY2hhciAqIGN1cjsgLyogdGhlIGlucHV0IGNoYXIgKiAqLworICAgIGludCBuX2N1cjsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbGVuIG9mIEBjdXIgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX2NvbnN0X2NoYXJfcHRyKG5fY3VyLCAwKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbENoYXJTdHJuZHVwKChjb25zdCBjaGFyICopY3VyLCBsZW4pOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fY3VyLCAoY29uc3QgY2hhciAqKWN1ciwgMCk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxDaGFyU3RybmR1cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sQ2hlY2tVVEY4KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHVuc2lnbmVkIGNoYXIgKiB1dGY7IC8qIFBvaW50ZXIgdG8gcHV0YXRpdmUgVVRGLTggZW5jb2RlZCBzdHJpbmcuICovCisgICAgaW50IG5fdXRmOworCisgICAgZm9yIChuX3V0ZiA9IDA7bl91dGYgPCBnZW5fbmJfY29uc3RfdW5zaWduZWRfY2hhcl9wdHI7bl91dGYrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB1dGYgPSBnZW5fY29uc3RfdW5zaWduZWRfY2hhcl9wdHIobl91dGYsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxDaGVja1VURjgoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKil1dGYpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF91bnNpZ25lZF9jaGFyX3B0cihuX3V0ZiwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKil1dGYsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sQ2hlY2tVVEY4IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3V0Zik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxHZXRVVEY4Q2hhcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB1bnNpZ25lZCBjaGFyICogdXRmOyAvKiBhIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXMgKi8KKyAgICBpbnQgbl91dGY7CisgICAgaW50ICogbGVuOyAvKiBhIHBvaW50ZXIgdG8gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIHByZXNlbnQgaW4gdGhlIHNlcXVlbmNlLiAgVGhpcyBpcyB1c2VkIHRvIGFzc3VyZSB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgY29tcGxldGVseSBjb250YWluZWQgd2l0aGluIHRoZSBzZXF1ZW5jZS4gKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fdXRmID0gMDtuX3V0ZiA8IGdlbl9uYl9jb25zdF91bnNpZ25lZF9jaGFyX3B0cjtuX3V0ZisrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50X3B0cjtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHV0ZiA9IGdlbl9jb25zdF91bnNpZ25lZF9jaGFyX3B0cihuX3V0ZiwgMCk7CisgICAgICAgIGxlbiA9IGdlbl9pbnRfcHRyKG5fbGVuLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sR2V0VVRGOENoYXIoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKil1dGYsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3Vuc2lnbmVkX2NoYXJfcHRyKG5fdXRmLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKXV0ZiwgMCk7CisgICAgICAgIGRlc19pbnRfcHRyKG5fbGVuLCBsZW4sIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sR2V0VVRGOENoYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXRmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0ckVxdWFsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiBzdHIxOyAvKiB0aGUgZmlyc3QgeG1sQ2hhciAqICovCisgICAgaW50IG5fc3RyMTsKKyAgICB4bWxDaGFyICogc3RyMjsgLyogdGhlIHNlY29uZCB4bWxDaGFyICogKi8KKyAgICBpbnQgbl9zdHIyOworCisgICAgZm9yIChuX3N0cjEgPSAwO25fc3RyMSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cjErKykgeworICAgIGZvciAobl9zdHIyID0gMDtuX3N0cjIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RyMSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0cjEsIDApOworICAgICAgICBzdHIyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyMiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0ckVxdWFsKChjb25zdCB4bWxDaGFyICopc3RyMSwgKGNvbnN0IHhtbENoYXIgKilzdHIyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIxLCAoY29uc3QgeG1sQ2hhciAqKXN0cjEsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIyLCAoY29uc3QgeG1sQ2hhciAqKXN0cjIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyRXF1YWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyMSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sU3RyUHJpbnRmKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJRRXF1YWwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHByZWY7IC8qIHRoZSBwcmVmaXggb2YgdGhlIFFOYW1lICovCisgICAgaW50IG5fcHJlZjsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIGxvY2FsbmFtZSBvZiB0aGUgUU5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBzdHI7IC8qIHRoZSBzZWNvbmQgeG1sQ2hhciAqICovCisgICAgaW50IG5fc3RyOworCisgICAgZm9yIChuX3ByZWYgPSAwO25fcHJlZiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ByZWYrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHByZWYgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBzdHIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdHJRRXF1YWwoKGNvbnN0IHhtbENoYXIgKilwcmVmLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopc3RyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmLCAoY29uc3QgeG1sQ2hhciAqKXByZWYsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIChjb25zdCB4bWxDaGFyICopc3RyLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN0clFFcXVhbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJWUHJpbnRmKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJjYXNlY21wKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiBzdHIxOyAvKiB0aGUgZmlyc3QgeG1sQ2hhciAqICovCisgICAgaW50IG5fc3RyMTsKKyAgICB4bWxDaGFyICogc3RyMjsgLyogdGhlIHNlY29uZCB4bWxDaGFyICogKi8KKyAgICBpbnQgbl9zdHIyOworCisgICAgZm9yIChuX3N0cjEgPSAwO25fc3RyMSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cjErKykgeworICAgIGZvciAobl9zdHIyID0gMDtuX3N0cjIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RyMSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0cjEsIDApOworICAgICAgICBzdHIyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyMiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0cmNhc2VjbXAoKGNvbnN0IHhtbENoYXIgKilzdHIxLCAoY29uc3QgeG1sQ2hhciAqKXN0cjIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjEsIChjb25zdCB4bWxDaGFyICopc3RyMSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjIsIChjb25zdCB4bWxDaGFyICopc3RyMiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJjYXNlY21wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cmNhc2VzdHIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgY29uc3QgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlIHhtbENoYXIgKiBhcnJheSAoaGF5c3RhY2spICovCisgICAgaW50IG5fc3RyOworICAgIHhtbENoYXIgKiB2YWw7IC8qIHRoZSB4bWxDaGFyIHRvIHNlYXJjaCAobmVlZGxlKSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyKyspIHsKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMCk7CisgICAgICAgIHZhbCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0cmNhc2VzdHIoKGNvbnN0IHhtbENoYXIgKilzdHIsIChjb25zdCB4bWxDaGFyICopdmFsKTsKKyAgICAgICAgZGVzcmV0X2NvbnN0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl92YWwsIChjb25zdCB4bWxDaGFyICopdmFsLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN0cmNhc2VzdHIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cmNocih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgeG1sQ2hhciAqIGFycmF5ICovCisgICAgaW50IG5fc3RyOworICAgIHhtbENoYXIgdmFsOyAvKiB0aGUgeG1sQ2hhciB0byBzZWFyY2ggKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfeG1sQ2hhcjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0ciA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgMCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxDaGFyKG5fdmFsLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3RyY2hyKChjb25zdCB4bWxDaGFyICopc3RyLCB2YWwpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAoY29uc3QgeG1sQ2hhciAqKXN0ciwgMCk7CisgICAgICAgIGRlc194bWxDaGFyKG5fdmFsLCB2YWwsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyY2hyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJjbXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHN0cjE7IC8qIHRoZSBmaXJzdCB4bWxDaGFyICogKi8KKyAgICBpbnQgbl9zdHIxOworICAgIHhtbENoYXIgKiBzdHIyOyAvKiB0aGUgc2Vjb25kIHhtbENoYXIgKiAqLworICAgIGludCBuX3N0cjI7CisKKyAgICBmb3IgKG5fc3RyMSA9IDA7bl9zdHIxIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyMSsrKSB7CisgICAgZm9yIChuX3N0cjIgPSAwO25fc3RyMiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cjIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdHIxID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyMSwgMCk7CisgICAgICAgIHN0cjIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3RyY21wKChjb25zdCB4bWxDaGFyICopc3RyMSwgKGNvbnN0IHhtbENoYXIgKilzdHIyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIxLCAoY29uc3QgeG1sQ2hhciAqKXN0cjEsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIyLCAoY29uc3QgeG1sQ2hhciAqKXN0cjIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RyY21wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cmR1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogY3VyOyAvKiB0aGUgaW5wdXQgeG1sQ2hhciAqICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKiljdXIpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAoY29uc3QgeG1sQ2hhciAqKWN1ciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJkdXAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cmxlbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgeG1sQ2hhciAqIGFycmF5ICovCisgICAgaW50IG5fc3RyOworCisgICAgZm9yIChuX3N0ciA9IDA7bl9zdHIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdHIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKilzdHIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sU3RybGVuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJuY2FzZWNtcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3RyMTsgLyogdGhlIGZpcnN0IHhtbENoYXIgKiAqLworICAgIGludCBuX3N0cjE7CisgICAgeG1sQ2hhciAqIHN0cjI7IC8qIHRoZSBzZWNvbmQgeG1sQ2hhciAqICovCisgICAgaW50IG5fc3RyMjsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbWF4IGNvbXBhcmlzb24gbGVuZ3RoICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX3N0cjEgPSAwO25fc3RyMSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cjErKykgeworICAgIGZvciAobl9zdHIyID0gMDtuX3N0cjIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIyKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdHIxID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyMSwgMCk7CisgICAgICAgIHN0cjIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIyLCAxKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0cm5jYXNlY21wKChjb25zdCB4bWxDaGFyICopc3RyMSwgKGNvbnN0IHhtbENoYXIgKilzdHIyLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjEsIChjb25zdCB4bWxDaGFyICopc3RyMSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjIsIChjb25zdCB4bWxDaGFyICopc3RyMiwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJuY2FzZWNtcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIxKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxTdHJuY2F0TmV3KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiBzdHIxOyAvKiBmaXJzdCB4bWxDaGFyIHN0cmluZyAqLworICAgIGludCBuX3N0cjE7CisgICAgeG1sQ2hhciAqIHN0cjI7IC8qIHNlY29uZCB4bWxDaGFyIHN0cmluZyAqLworICAgIGludCBuX3N0cjI7CisgICAgaW50IGxlbjsgLyogdGhlIGxlbiBvZiBAc3RyMiBvciA8IDAgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fc3RyMSA9IDA7bl9zdHIxIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyMSsrKSB7CisgICAgZm9yIChuX3N0cjIgPSAwO25fc3RyMiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cjIrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0cjEgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIxLCAwKTsKKyAgICAgICAgc3RyMiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0cjIsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3RybmNhdE5ldygoY29uc3QgeG1sQ2hhciAqKXN0cjEsIChjb25zdCB4bWxDaGFyICopc3RyMiwgbGVuKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjEsIChjb25zdCB4bWxDaGFyICopc3RyMSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjIsIChjb25zdCB4bWxDaGFyICopc3RyMiwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJuY2F0TmV3IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cm5jbXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHN0cjE7IC8qIHRoZSBmaXJzdCB4bWxDaGFyICogKi8KKyAgICBpbnQgbl9zdHIxOworICAgIHhtbENoYXIgKiBzdHIyOyAvKiB0aGUgc2Vjb25kIHhtbENoYXIgKiAqLworICAgIGludCBuX3N0cjI7CisgICAgaW50IGxlbjsgLyogdGhlIG1heCBjb21wYXJpc29uIGxlbmd0aCAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl9zdHIxID0gMDtuX3N0cjEgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIxKyspIHsKKyAgICBmb3IgKG5fc3RyMiA9IDA7bl9zdHIyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyMisrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RyMSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N0cjEsIDApOworICAgICAgICBzdHIyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyMiwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxTdHJuY21wKChjb25zdCB4bWxDaGFyICopc3RyMSwgKGNvbnN0IHhtbENoYXIgKilzdHIyLCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjEsIChjb25zdCB4bWxDaGFyICopc3RyMSwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0cjIsIChjb25zdCB4bWxDaGFyICopc3RyMiwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJuY21wIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cjIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cm5kdXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhciAqIGN1cjsgLyogdGhlIGlucHV0IHhtbENoYXIgKiAqLworICAgIGludCBuX2N1cjsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbGVuIG9mIEBjdXIgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY3VyLCAwKTsKKyAgICAgICAgbGVuID0gZ2VuX2ludChuX2xlbiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFN0cm5kdXAoKGNvbnN0IHhtbENoYXIgKiljdXIsIGxlbik7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jdXIsIChjb25zdCB4bWxDaGFyICopY3VyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN0cm5kdXAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cnN0cih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBjb25zdCB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgeG1sQ2hhciAqIGFycmF5IChoYXlzdGFjaykgKi8KKyAgICBpbnQgbl9zdHI7CisgICAgeG1sQ2hhciAqIHZhbDsgLyogdGhlIHhtbENoYXIgdG8gc2VhcmNoIChuZWVkbGUpICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3N0ciA9IDA7bl9zdHIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAwKTsKKyAgICAgICAgdmFsID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3Ryc3RyKChjb25zdCB4bWxDaGFyICopc3RyLCAoY29uc3QgeG1sQ2hhciAqKXZhbCk7CisgICAgICAgIGRlc3JldF9jb25zdF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIChjb25zdCB4bWxDaGFyICopc3RyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsLCAoY29uc3QgeG1sQ2hhciAqKXZhbCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxTdHJzdHIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFN0cnN1Yih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgeG1sQ2hhciAqIGFycmF5IChoYXlzdGFjaykgKi8KKyAgICBpbnQgbl9zdHI7CisgICAgaW50IHN0YXJ0OyAvKiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXIgKHplcm8gYmFzZWQpICovCisgICAgaW50IG5fc3RhcnQ7CisgICAgaW50IGxlbjsgLyogdGhlIGxlbmd0aCBvZiB0aGUgc3Vic3RyaW5nICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX3N0ciA9IDA7bl9zdHIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIrKykgeworICAgIGZvciAobl9zdGFydCA9IDA7bl9zdGFydCA8IGdlbl9uYl9pbnQ7bl9zdGFydCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAwKTsKKyAgICAgICAgc3RhcnQgPSBnZW5faW50KG5fc3RhcnQsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sU3Ryc3ViKChjb25zdCB4bWxDaGFyICopc3RyLCBzdGFydCwgbGVuKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDApOworICAgICAgICBkZXNfaW50KG5fc3RhcnQsIHN0YXJ0LCAxKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFN0cnN1YiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0YXJ0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVVEY4Q2hhcmNtcCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogdXRmMTsgLyogcG9pbnRlciB0byBmaXJzdCBVVEY4IGNoYXIgKi8KKyAgICBpbnQgbl91dGYxOworICAgIHhtbENoYXIgKiB1dGYyOyAvKiBwb2ludGVyIHRvIHNlY29uZCBVVEY4IGNoYXIgKi8KKyAgICBpbnQgbl91dGYyOworCisgICAgZm9yIChuX3V0ZjEgPSAwO25fdXRmMSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3V0ZjErKykgeworICAgIGZvciAobl91dGYyID0gMDtuX3V0ZjIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl91dGYyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdXRmMSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3V0ZjEsIDApOworICAgICAgICB1dGYyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmMiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVURjhDaGFyY21wKChjb25zdCB4bWxDaGFyICopdXRmMSwgKGNvbnN0IHhtbENoYXIgKil1dGYyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl91dGYxLCAoY29uc3QgeG1sQ2hhciAqKXV0ZjEsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl91dGYyLCAoY29uc3QgeG1sQ2hhciAqKXV0ZjIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVVRGOENoYXJjbXAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXRmMSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXRmMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVVRGOFNpemUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHV0ZjsgLyogcG9pbnRlciB0byB0aGUgVVRGOCBjaGFyYWN0ZXIgKi8KKyAgICBpbnQgbl91dGY7CisKKyAgICBmb3IgKG5fdXRmID0gMDtuX3V0ZiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3V0ZisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHV0ZiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3V0ZiwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVURjhTaXplKChjb25zdCB4bWxDaGFyICopdXRmKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl91dGYsIChjb25zdCB4bWxDaGFyICopdXRmLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVURjhTaXplIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3V0Zik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVVEY4U3RybGVuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiB1dGY7IC8qIGEgc2VxdWVuY2Ugb2YgVVRGLTggZW5jb2RlZCBieXRlcyAqLworICAgIGludCBuX3V0ZjsKKworICAgIGZvciAobl91dGYgPSAwO25fdXRmIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdXRmKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdXRmID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVVRGOFN0cmxlbigoY29uc3QgeG1sQ2hhciAqKXV0Zik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmLCAoY29uc3QgeG1sQ2hhciAqKXV0ZiwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVVEY4U3RybGVuIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3V0Zik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVVEY4U3RybG9jKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiB1dGY7IC8qIHRoZSBpbnB1dCBVVEY4ICogKi8KKyAgICBpbnQgbl91dGY7CisgICAgeG1sQ2hhciAqIHV0ZmNoYXI7IC8qIHRoZSBVVEY4IGNoYXJhY3RlciB0byBiZSBmb3VuZCAqLworICAgIGludCBuX3V0ZmNoYXI7CisKKyAgICBmb3IgKG5fdXRmID0gMDtuX3V0ZiA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3V0ZisrKSB7CisgICAgZm9yIChuX3V0ZmNoYXIgPSAwO25fdXRmY2hhciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3V0ZmNoYXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB1dGYgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl91dGYsIDApOworICAgICAgICB1dGZjaGFyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmY2hhciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVURjhTdHJsb2MoKGNvbnN0IHhtbENoYXIgKil1dGYsIChjb25zdCB4bWxDaGFyICopdXRmY2hhcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmLCAoY29uc3QgeG1sQ2hhciAqKXV0ZiwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3V0ZmNoYXIsIChjb25zdCB4bWxDaGFyICopdXRmY2hhciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVVEY4U3RybG9jIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3V0Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXRmY2hhcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVVRGOFN0cm5kdXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHV0ZjsgLyogdGhlIGlucHV0IFVURjggKiAqLworICAgIGludCBuX3V0ZjsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbGVuIG9mIEB1dGYgKGluIGNoYXJzKSAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl91dGYgPSAwO25fdXRmIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdXRmKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB1dGYgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl91dGYsIDApOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVVRGOFN0cm5kdXAoKGNvbnN0IHhtbENoYXIgKil1dGYsIGxlbik7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl91dGYsIChjb25zdCB4bWxDaGFyICopdXRmLCAwKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVURjhTdHJuZHVwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3V0Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVVEY4U3RycG9zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbENoYXIgKiB1dGY7IC8qIHRoZSBpbnB1dCBVVEY4ICogKi8KKyAgICBpbnQgbl91dGY7CisgICAgaW50IHBvczsgLyogdGhlIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIFVURjggY2hhciAoaW4gY2hhcnMpICovCisgICAgaW50IG5fcG9zOworCisgICAgZm9yIChuX3V0ZiA9IDA7bl91dGYgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl91dGYrKykgeworICAgIGZvciAobl9wb3MgPSAwO25fcG9zIDwgZ2VuX25iX2ludDtuX3BvcysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHV0ZiA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3V0ZiwgMCk7CisgICAgICAgIHBvcyA9IGdlbl9pbnQobl9wb3MsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxVVEY4U3RycG9zKChjb25zdCB4bWxDaGFyICopdXRmLCBwb3MpOworICAgICAgICBkZXNyZXRfY29uc3RfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmLCAoY29uc3QgeG1sQ2hhciAqKXV0ZiwgMCk7CisgICAgICAgIGRlc19pbnQobl9wb3MsIHBvcywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVVEY4U3RycG9zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3V0Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcG9zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxVVEY4U3Ryc2l6ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogdXRmOyAvKiBhIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXMgKi8KKyAgICBpbnQgbl91dGY7CisgICAgaW50IGxlbjsgLyogdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSBhcnJheSAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl91dGYgPSAwO25fdXRmIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdXRmKyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB1dGYgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl91dGYsIDApOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVVRGOFN0cnNpemUoKGNvbnN0IHhtbENoYXIgKil1dGYsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmLCAoY29uc3QgeG1sQ2hhciAqKXV0ZiwgMCk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVVEY4U3Ryc2l6ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl91dGYpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVVRGOFN0cnN1Yih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogdXRmOyAvKiBhIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXMgKi8KKyAgICBpbnQgbl91dGY7CisgICAgaW50IHN0YXJ0OyAvKiByZWxhdGl2ZSBwb3Mgb2YgZmlyc3QgY2hhciAqLworICAgIGludCBuX3N0YXJ0OworICAgIGludCBsZW47IC8qIHRvdGFsIG51bWJlciB0byBjb3B5ICovCisgICAgaW50IG5fbGVuOworCisgICAgZm9yIChuX3V0ZiA9IDA7bl91dGYgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl91dGYrKykgeworICAgIGZvciAobl9zdGFydCA9IDA7bl9zdGFydCA8IGdlbl9uYl9pbnQ7bl9zdGFydCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdXRmID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdXRmLCAwKTsKKyAgICAgICAgc3RhcnQgPSBnZW5faW50KG5fc3RhcnQsIDEpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVVRGOFN0cnN1YigoY29uc3QgeG1sQ2hhciAqKXV0Ziwgc3RhcnQsIGxlbik7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl91dGYsIChjb25zdCB4bWxDaGFyICopdXRmLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3N0YXJ0LCBzdGFydCwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVVEY4U3Ryc3ViIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3V0Zik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RhcnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xlbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxzdHJpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhtbHN0cmluZyA6IDI2IG9mIDMwIGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2hhclN0cmR1cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sQ2hhclN0cm5kdXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbENoZWNrVVRGOCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sR2V0VVRGOENoYXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN0ckVxdWFsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTdHJQcmludGYoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN0clFFcXVhbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyVlByaW50ZigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyY2FzZWNtcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyY2FzZXN0cigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RyY2hyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTdHJjbXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFN0cmR1cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RybGVuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTdHJuY2FzZWNtcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RybmNhdE5ldygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RybmNtcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3RybmR1cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sU3Ryc3RyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxTdHJzdWIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVURjhDaGFyY21wKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVVEY4U2l6ZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVVRGOFN0cmxlbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVVRGOFN0cmxvYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVVRGOFN0cm5kdXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVURjhTdHJwb3MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVURjhTdHJzaXplKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVVEY4U3Ryc3ViKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4bWxzdHJpbmc6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNBZWdlYW5OdW1iZXJzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNBZWdlYW5OdW1iZXJzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQWVnZWFuTnVtYmVycyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3Jtcyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNBcmFiaWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0FyYWJpYyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0FyYWJpYyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0Eodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0Iodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNBcm1lbmlhbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQXJtZW5pYW4oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNBcm1lbmlhbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNBcnJvd3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0Fycm93cyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0Fycm93cyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNCYXNpY0xhdGluKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNCYXNpY0xhdGluKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQmFzaWNMYXRpbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNCZW5nYWxpKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNCZW5nYWxpKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQmVuZ2FsaSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVUNTSXNCbG9jayh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKyAgICBjaGFyICogYmxvY2s7IC8qIFVDUyBibG9jayBuYW1lICovCisgICAgaW50IG5fYmxvY2s7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgIGZvciAobl9ibG9jayA9IDA7bl9ibG9jayA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2Jsb2NrKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKyAgICAgICAgYmxvY2sgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9ibG9jaywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQmxvY2soY29kZSwgKGNvbnN0IGNoYXIgKilibG9jayk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9ibG9jaywgKGNvbnN0IGNoYXIgKilibG9jaywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0Jsb2NrIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2Jsb2NrKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQmxvY2tFbGVtZW50cyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQmxvY2tFbGVtZW50cyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0Jsb2NrRWxlbWVudHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQm9wb21vZm8odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0JvcG9tb2ZvKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQm9wb21vZm8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQm9wb21vZm9FeHRlbmRlZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQm94RHJhd2luZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQm94RHJhd2luZyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0JveERyYXdpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQnJhaWxsZVBhdHRlcm5zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNCcmFpbGxlUGF0dGVybnMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNCcmFpbGxlUGF0dGVybnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQnVoaWQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0J1aGlkKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQnVoaWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUZvcm1zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworICAgIGNoYXIgKiBjYXQ7IC8qIFVDUyBDYXRlZ29yeSBuYW1lICovCisgICAgaW50IG5fY2F0OworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICBmb3IgKG5fY2F0ID0gMDtuX2NhdCA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX2NhdCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisgICAgICAgIGNhdCA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2NhdCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0KGNvZGUsIChjb25zdCBjaGFyICopY2F0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2NhdCwgKGNvbnN0IGNoYXIgKiljYXQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDYXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY2F0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Qyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0Qyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NhdEMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Q2Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdENjKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0Q2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Q2Yodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdENmKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0Q2YiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Q28odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdENvKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0Q28iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Q3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdENzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0Q3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0TChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NhdEwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TGwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdExsKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TGwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TG0odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdExtKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TG0iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TG8odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdExvKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TG8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0THQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdEx0KGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0THQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0THUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdEx1KGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0THUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0TShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NhdE0iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdE1jKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdE1lKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdE1uKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Tih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0Tihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NhdE4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0TmQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdE5kKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TmQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Tmwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdE5sKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0TmwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Tm8odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdE5vKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0Tm8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0UChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NhdFAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UGModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFBjKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0UGMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFBkKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0UGQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFBlKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0UGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UGYodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFBmKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0UGYiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UGkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFBpKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0UGkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UG8odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFBvKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0UG8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0UHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFBzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0UHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Uyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0Uyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NhdFMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0U2Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFNjKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0U2MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0U2sodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFNrKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0U2siLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0U20odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFNtKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0U20iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0U28odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFNvKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0U28iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Wih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ2F0Wihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NhdFoiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0Wmwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFpsKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0WmwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0WnAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFpwKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0WnAiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2F0WnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NhdFpzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2F0WnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ2hlcm9rZWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NoZXJva2VlKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ2hlcm9rZWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ29udHJvbFBpY3R1cmVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDb250cm9sUGljdHVyZXMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDb250cm9sUGljdHVyZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ3VycmVuY3lTeW1ib2xzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ3lyaWxsaWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0N5cmlsbGljKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzQ3lyaWxsaWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzRGVzZXJldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzRGVzZXJldChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0Rlc2VyZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzRGV2YW5hZ2FyaSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzRGV2YW5hZ2FyaShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0RldmFuYWdhcmkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzRGluZ2JhdHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0RpbmdiYXRzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzRGluZ2JhdHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNFbmNsb3NlZEFscGhhbnVtZXJpY3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzRXRoaW9waWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0V0aGlvcGljKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzRXRoaW9waWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR2VvbWV0cmljU2hhcGVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNHZW9tZXRyaWNTaGFwZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR2VvcmdpYW4odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0dlb3JnaWFuKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzR2VvcmdpYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR290aGljKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNHb3RoaWMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNHb3RoaWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR3JlZWsodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0dyZWVrKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzR3JlZWsiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR3JlZWtFeHRlbmRlZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzR3JlZWtFeHRlbmRlZChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR3JlZWthbmRDb3B0aWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0dyZWVrYW5kQ29wdGljKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzR3JlZWthbmRDb3B0aWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR3VqYXJhdGkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0d1amFyYXRpKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzR3VqYXJhdGkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzR3VybXVraGkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0d1cm11a2hpKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzR3VybXVraGkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGFuZ3VsSmFtbyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzSGFuZ3VsSmFtbyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0hhbmd1bEphbW8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGFuZ3VsU3lsbGFibGVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGFudW5vbyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzSGFudW5vbyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0hhbnVub28iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGVicmV3KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNIZWJyZXcoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNIZWJyZXciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGlnaFN1cnJvZ2F0ZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0hpZ2hTdXJyb2dhdGVzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzSGlnaFN1cnJvZ2F0ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSGlyYWdhbmEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0hpcmFnYW5hKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzSGlyYWdhbmEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSVBBRXh0ZW5zaW9ucyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzSVBBRXh0ZW5zaW9ucyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0lQQUV4dGVuc2lvbnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzS2FuYnVuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNLYW5idW4oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNLYW5idW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzS2FuZ3hpUmFkaWNhbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0thbmd4aVJhZGljYWxzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzS2FuZ3hpUmFkaWNhbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzS2FubmFkYSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzS2FubmFkYShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0thbm5hZGEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzS2F0YWthbmEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0thdGFrYW5hKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzS2F0YWthbmEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzS2htZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0tobWVyKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzS2htZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzS2htZXJTeW1ib2xzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNLaG1lclN5bWJvbHMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNLaG1lclN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGFvKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNMYW8oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNMYW8iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGF0aW5FeHRlbmRlZEEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBZGRpdGlvbmFsKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGF0aW5FeHRlbmRlZEIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRCKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGV0dGVybGlrZVN5bWJvbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGltYnUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc0xpbWJ1KGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTGltYnUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGluZWFyQklkZW9ncmFtcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzTGluZWFyQklkZW9ncmFtcyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTGluZWFyQlN5bGxhYmFyeSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzTGluZWFyQlN5bGxhYmFyeShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTG93U3Vycm9nYXRlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzTG93U3Vycm9nYXRlcyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWFsYXlhbGFtKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNNYWxheWFsYW0oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNNYWxheWFsYW0iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0EiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0IiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3Modm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTW9uZ29saWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNNb25nb2xpYW4oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNNb25nb2xpYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTXVzaWNhbFN5bWJvbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc011c2ljYWxTeW1ib2xzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTXVzaWNhbFN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTXlhbm1hcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzTXlhbm1hcihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc015YW5tYXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzTnVtYmVyRm9ybXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc051bWJlckZvcm1zKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzTnVtYmVyRm9ybXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzT2doYW0odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc09naGFtKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzT2doYW0iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzT2xkSXRhbGljKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNPbGRJdGFsaWMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNPbGRJdGFsaWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24oY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzT3JpeWEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc09yaXlhKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzT3JpeWEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzT3NtYW55YSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzT3NtYW55YShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc09zbWFueWEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzUHJpdmF0ZVVzZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzUHJpdmF0ZVVzZShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1ByaXZhdGVVc2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzUHJpdmF0ZVVzZUFyZWEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzUHJpdmF0ZVVzZUFyZWEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzUnVuaWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1J1bmljKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzUnVuaWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU2hhdmlhbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU2hhdmlhbihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1NoYXZpYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU2luaGFsYSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU2luaGFsYShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1NpbmhhbGEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU21hbGxGb3JtVmFyaWFudHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzU21hbGxGb3JtVmFyaWFudHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3BlY2lhbHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1NwZWNpYWxzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzU3BlY2lhbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzU3lyaWFjKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNTeXJpYWMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNTeXJpYWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGFnYWxvZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzVGFnYWxvZyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1RhZ2Fsb2ciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGFnYmFud2Eodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1RhZ2JhbndhKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzVGFnYmFud2EiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGFncyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzVGFncyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1RhZ3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGFpTGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1RhaUxlKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzVGFpTGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGFtaWwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1RhbWlsKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzVGFtaWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGVsdWd1KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNUZWx1Z3UoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNUZWx1Z3UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGhhYW5hKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNUaGFhbmEoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNUaGFhbmEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGhhaSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzVGhhaShjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1RoYWkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVGliZXRhbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzVGliZXRhbihjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1RpYmV0YW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVWdhcml0aWModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1VnYXJpdGljKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzVWdhcml0aWMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudChjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzWWlSYWRpY2Fscyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1VOSUNPREVfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgaW50IGNvZGU7IC8qIFVDUyBjb2RlIHBvaW50ICovCisgICAgaW50IG5fY29kZTsKKworICAgIGZvciAobl9jb2RlID0gMDtuX2NvZGUgPCBnZW5fbmJfaW50O25fY29kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvZGUgPSBnZW5faW50KG5fY29kZSwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFVDU0lzWWlSYWRpY2Fscyhjb2RlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfaW50KG5fY29kZSwgY29kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxVQ1NJc1lpUmFkaWNhbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzWWlTeWxsYWJsZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9VTklDT0RFX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIGludCBjb2RlOyAvKiBVQ1MgY29kZSBwb2ludCAqLworICAgIGludCBuX2NvZGU7CisKKyAgICBmb3IgKG5fY29kZSA9IDA7bl9jb2RlIDwgZ2VuX25iX2ludDtuX2NvZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb2RlID0gZ2VuX2ludChuX2NvZGUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxVQ1NJc1lpU3lsbGFibGVzKGNvZGUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl9jb2RlLCBjb2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFVDU0lzWWlTeWxsYWJsZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfVU5JQ09ERV9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBpbnQgY29kZTsgLyogVUNTIGNvZGUgcG9pbnQgKi8KKyAgICBpbnQgbl9jb2RlOworCisgICAgZm9yIChuX2NvZGUgPSAwO25fY29kZSA8IGdlbl9uYl9pbnQ7bl9jb2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY29kZSA9IGdlbl9pbnQobl9jb2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMoY29kZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX2NvZGUsIGNvZGUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWx1bmljb2RlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyB4bWx1bmljb2RlIDogMTY2IG9mIDE2NiBmdW5jdGlvbnMgLi4uXG4iKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQWVnZWFuTnVtYmVycygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQXJhYmljKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQXJtZW5pYW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQXJyb3dzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0Jhc2ljTGF0aW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQmVuZ2FsaSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNCbG9jaygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNCbG9ja0VsZW1lbnRzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0JvcG9tb2ZvKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQm94RHJhd2luZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNCcmFpbGxlUGF0dGVybnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQnVoaWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDSktTeW1ib2xzYW5kUHVuY3R1YXRpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0QygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRDYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRDZigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRDbygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRDcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRMKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdExsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdExtKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdExvKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdEx0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdEx1KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdE0oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0TWMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0TWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0TW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0TigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXROZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRObCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRObygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRQKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFBjKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFBkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFBlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFBmKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFBpKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFBvKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFBzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NhdFMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0U2MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0U2soKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0U20oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0U28oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ2F0WigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRabCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRacCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDYXRacygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDaGVyb2tlZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0NvbWJpbmluZ0hhbGZNYXJrcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzQ29udHJvbFBpY3R1cmVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0N1cnJlbmN5U3ltYm9scygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0N5cmlsbGljKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNEZXNlcmV0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0RldmFuYWdhcmkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzRGluZ2JhdHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNFdGhpb3BpYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNHZW5lcmFsUHVuY3R1YXRpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzR2VvbWV0cmljU2hhcGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0dlb3JnaWFuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0dvdGhpYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNHcmVlaygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNHcmVla0V4dGVuZGVkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0dyZWVrYW5kQ29wdGljKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0d1amFyYXRpKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0d1cm11a2hpKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0hhbmd1bEphbW8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzSGFuZ3VsU3lsbGFibGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0hhbnVub28oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzSGVicmV3KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0hpZ2hQcml2YXRlVXNlU3Vycm9nYXRlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNIaWdoU3Vycm9nYXRlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNIaXJhZ2FuYSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNJUEFFeHRlbnNpb25zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0thbmJ1bigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNLYW5neGlSYWRpY2FscygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNLYW5uYWRhKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0thdGFrYW5hKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0tobWVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0tobWVyU3ltYm9scygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNMYW8oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNMYXRpbkV4dGVuZGVkQSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNMYXRpbkV4dGVuZGVkQigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNMZXR0ZXJsaWtlU3ltYm9scygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNMaW1idSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzTG93U3Vycm9nYXRlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNNYWxheWFsYW0oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc01vbmdvbGlhbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNNdXNpY2FsU3ltYm9scygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNNeWFubWFyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc051bWJlckZvcm1zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc09naGFtKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc09sZEl0YWxpYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzT3JpeWEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzT3NtYW55YSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzUHJpdmF0ZVVzZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNQcml2YXRlVXNlQXJlYSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNSdW5pYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNTaGF2aWFuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1NpbmhhbGEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzU21hbGxGb3JtVmFyaWFudHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNTcGVjaWFscygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1N5cmlhYygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNUYWdhbG9nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1RhZ2JhbndhKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1RhZ3MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzVGFpTGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1RhbWlsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1RlbHVndSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNUaGFhbmEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzVGhhaSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNUaWJldGFuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1VnYXJpdGljKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1VuaWZpZWRDYW5hZGlhbkFib3JpZ2luYWxTeWxsYWJpY3MoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFVDU0lzWWlSYWRpY2FscygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNZaVN5bGxhYmxlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHMoKTsKKworICAgIGlmICh0ZXN0X3JldCAhPSAwKQorCXByaW50ZigiTW9kdWxlIHhtbHVuaWNvZGU6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3VGV4dFdyaXRlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHJldF92YWw7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dDsgLyogYW4geG1sT3V0cHV0QnVmZmVyUHRyICovCisgICAgaW50IG5fb3V0OworCisgICAgZm9yIChuX291dCA9IDA7bl9vdXQgPCBnZW5fbmJfeG1sT3V0cHV0QnVmZmVyUHRyO25fb3V0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb3V0ID0gZ2VuX3htbE91dHB1dEJ1ZmZlclB0cihuX291dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld1RleHRXcml0ZXIob3V0KTsKKyAgICAgICAgaWYgKHJldF92YWwgIT0gTlVMTCkgb3V0ID0gTlVMTDsKKyAgICAgICAgZGVzcmV0X3htbFRleHRXcml0ZXJQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE91dHB1dEJ1ZmZlclB0cihuX291dCwgb3V0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld1RleHRXcml0ZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFRleHRXcml0ZXJQdHIgcmV0X3ZhbDsKKyAgICBjb25zdCBjaGFyICogdXJpOyAvKiB0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBmb3IgdGhlIG91dHB1dCAqLworICAgIGludCBuX3VyaTsKKyAgICBpbnQgY29tcHJlc3Npb247IC8qIGNvbXByZXNzIHRoZSBvdXRwdXQ/ICovCisgICAgaW50IG5fY29tcHJlc3Npb247CisKKyAgICBmb3IgKG5fdXJpID0gMDtuX3VyaSA8IGdlbl9uYl9maWxlb3V0cHV0O25fdXJpKyspIHsKKyAgICBmb3IgKG5fY29tcHJlc3Npb24gPSAwO25fY29tcHJlc3Npb24gPCBnZW5fbmJfaW50O25fY29tcHJlc3Npb24rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB1cmkgPSBnZW5fZmlsZW91dHB1dChuX3VyaSwgMCk7CisgICAgICAgIGNvbXByZXNzaW9uID0gZ2VuX2ludChuX2NvbXByZXNzaW9uLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lKHVyaSwgY29tcHJlc3Npb24pOworICAgICAgICBkZXNyZXRfeG1sVGV4dFdyaXRlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZmlsZW91dHB1dChuX3VyaSwgdXJpLCAwKTsKKyAgICAgICAgZGVzX2ludChuX2NvbXByZXNzaW9uLCBjb21wcmVzc2lvbiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdXJpKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb21wcmVzc2lvbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdUZXh0V3JpdGVyTWVtb3J5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFRleHRXcml0ZXJQdHIgcmV0X3ZhbDsKKyAgICB4bWxCdWZmZXJQdHIgYnVmOyAvKiB4bWxCdWZmZXJQdHIgKi8KKyAgICBpbnQgbl9idWY7CisgICAgaW50IGNvbXByZXNzaW9uOyAvKiBjb21wcmVzcyB0aGUgb3V0cHV0PyAqLworICAgIGludCBuX2NvbXByZXNzaW9uOworCisgICAgZm9yIChuX2J1ZiA9IDA7bl9idWYgPCBnZW5fbmJfeG1sQnVmZmVyUHRyO25fYnVmKyspIHsKKyAgICBmb3IgKG5fY29tcHJlc3Npb24gPSAwO25fY29tcHJlc3Npb24gPCBnZW5fbmJfaW50O25fY29tcHJlc3Npb24rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBidWYgPSBnZW5feG1sQnVmZmVyUHRyKG5fYnVmLCAwKTsKKyAgICAgICAgY29tcHJlc3Npb24gPSBnZW5faW50KG5fY29tcHJlc3Npb24sIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxOZXdUZXh0V3JpdGVyTWVtb3J5KGJ1ZiwgY29tcHJlc3Npb24pOworICAgICAgICBkZXNyZXRfeG1sVGV4dFdyaXRlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sQnVmZmVyUHRyKG5fYnVmLCBidWYsIDApOworICAgICAgICBkZXNfaW50KG5fY29tcHJlc3Npb24sIGNvbXByZXNzaW9uLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld1RleHRXcml0ZXJNZW1vcnkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fYnVmKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb21wcmVzc2lvbik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHJldF92YWw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OyAvKiB4bWxQYXJzZXJDdHh0UHRyIHRvIGhvbGQgdGhlIG5ldyBYTUwgZG9jdW1lbnQgdHJlZSAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IGNvbXByZXNzaW9uOyAvKiBjb21wcmVzcyB0aGUgb3V0cHV0PyAqLworICAgIGludCBuX2NvbXByZXNzaW9uOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxQYXJzZXJDdHh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2NvbXByZXNzaW9uID0gMDtuX2NvbXByZXNzaW9uIDwgZ2VuX25iX2ludDtuX2NvbXByZXNzaW9uKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxQYXJzZXJDdHh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGNvbXByZXNzaW9uID0gZ2VuX2ludChuX2NvbXByZXNzaW9uLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIoY3R4dCwgY29tcHJlc3Npb24pOworICAgICAgICBpZiAoY3R4dCAhPSBOVUxMKSB7eG1sRnJlZURvYyhjdHh0LT5teURvYyk7IGN0eHQtPm15RG9jID0gTlVMTDt9IGlmIChyZXRfdmFsICE9IE5VTEwpIGN0eHQgPSBOVUxMOworICAgICAgICBkZXNyZXRfeG1sVGV4dFdyaXRlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sUGFyc2VyQ3R4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fY29tcHJlc3Npb24sIGNvbXByZXNzaW9uLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbXByZXNzaW9uKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbE5ld1RleHRXcml0ZXJUcmVlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFRleHRXcml0ZXJQdHIgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiB4bWxEb2NQdHIgKi8KKyAgICBpbnQgbl9kb2M7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB4bWxOb2RlUHRyIG9yIE5VTEwgZm9yIGRvYy0+Y2hpbGRyZW4gKi8KKyAgICBpbnQgbl9ub2RlOworICAgIGludCBjb21wcmVzc2lvbjsgLyogY29tcHJlc3MgdGhlIG91dHB1dD8gKi8KKyAgICBpbnQgbl9jb21wcmVzc2lvbjsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgZm9yIChuX2NvbXByZXNzaW9uID0gMDtuX2NvbXByZXNzaW9uIDwgZ2VuX25iX2ludDtuX2NvbXByZXNzaW9uKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgZG9jID0gZ2VuX3htbERvY1B0cihuX2RvYywgMCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDEpOworICAgICAgICBjb21wcmVzc2lvbiA9IGdlbl9pbnQobl9jb21wcmVzc2lvbiwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbE5ld1RleHRXcml0ZXJUcmVlKGRvYywgbm9kZSwgY29tcHJlc3Npb24pOworICAgICAgICBkZXNyZXRfeG1sVGV4dFdyaXRlclB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sRG9jUHRyKG5fZG9jLCBkb2MsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDEpOworICAgICAgICBkZXNfaW50KG5fY29tcHJlc3Npb24sIGNvbXByZXNzaW9uLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbE5ld1RleHRXcml0ZXJUcmVlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RvYyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29tcHJlc3Npb24pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSh3cml0ZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyRW5kQ0RBVEEodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZENEQVRBKHdyaXRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyRW5kQ0RBVEEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlckVuZENvbW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZENvbW1lbnQod3JpdGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJFbmRDb21tZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJFbmREVEQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZERURCh3cml0ZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlckVuZERURCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCh3cml0ZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQod3JpdGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJFbmREVERFbGVtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJFbmREVERFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZERUREVudGl0eSh3cml0ZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlckVuZERUREVudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZERvY3VtZW50KHdyaXRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyRW5kRG9jdW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlckVuZEVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckVuZEVsZW1lbnQod3JpdGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJFbmRFbGVtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJFbmRQSSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyRW5kUEkod3JpdGVyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJFbmRQSSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyRmx1c2godm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlckZsdXNoKHdyaXRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyRmx1c2giLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCh3cml0ZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJTZXRJbmRlbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIGludCBpbmRlbnQ7IC8qIGRvIGluZGVudGF0aW9uPyAqLworICAgIGludCBuX2luZGVudDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9pbmRlbnQgPSAwO25faW5kZW50IDwgZ2VuX25iX2ludDtuX2luZGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgaW5kZW50ID0gZ2VuX2ludChuX2luZGVudCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJTZXRJbmRlbnQod3JpdGVyLCBpbmRlbnQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfaW50KG5faW5kZW50LCBpbmRlbnQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlclNldEluZGVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luZGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgeG1sQ2hhciBzdHJpbmcgKi8KKyAgICBpbnQgbl9zdHI7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZyh3cml0ZXIsIChjb25zdCB4bWxDaGFyICopc3RyKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAoY29uc3QgeG1sQ2hhciAqKXN0ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyU2V0SW5kZW50U3RyaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIGVsZW1lbnQgbmFtZSAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIHByZWZpeDsgLyogbmFtZXNwYWNlIHByZWZpeCBvciBOVUxMICovCisgICAgaW50IG5fcHJlZml4OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBlbGVtZW50IGxvY2FsIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuYW1lc3BhY2VVUkk7IC8qIG5hbWVzcGFjZSBVUkkgb3IgTlVMTCAqLworICAgIGludCBuX25hbWVzcGFjZVVSSTsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25hbWVzcGFjZVVSSSA9IDA7bl9uYW1lc3BhY2VVUkkgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lc3BhY2VVUkkrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAyKTsKKyAgICAgICAgbmFtZXNwYWNlVVJJID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZXNwYWNlVVJJLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWVzcGFjZVVSSSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lc3BhY2VVUkksIChjb25zdCB4bWxDaGFyICopbmFtZXNwYWNlVVJJLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZU5TIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHJlZml4KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lc3BhY2VVUkkpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyU3RhcnRDREFUQSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyU3RhcnRDREFUQSh3cml0ZXIpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50KHdyaXRlcik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyU3RhcnRDb21tZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJTdGFydERURCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSBEVEQgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBwdWJpZDsgLyogdGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXIgKi8KKyAgICBpbnQgbl9wdWJpZDsKKyAgICB4bWxDaGFyICogc3lzaWQ7IC8qIHRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFREICovCisgICAgaW50IG5fc3lzaWQ7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX3B1YmlkID0gMDtuX3B1YmlkIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHViaWQrKykgeworICAgIGZvciAobl9zeXNpZCA9IDA7bl9zeXNpZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N5c2lkKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHB1YmlkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHViaWQsIDIpOworICAgICAgICBzeXNpZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c2lkLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlclN0YXJ0RFREKHdyaXRlciwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXB1YmlkLCAoY29uc3QgeG1sQ2hhciAqKXN5c2lkKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHViaWQsIChjb25zdCB4bWxDaGFyICopcHViaWQsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zeXNpZCwgKGNvbnN0IHhtbENoYXIgKilzeXNpZCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyU3RhcnREVEQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wdWJpZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3lzaWQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyU3RhcnREVERBdHRsaXN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3Qod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudCAqLworICAgIGludCBuX25hbWU7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50KHdyaXRlciwgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgaW50IHBlOyAvKiBUUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3QgKi8KKyAgICBpbnQgbl9wZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9wZSA9IDA7bl9wZSA8IGdlbl9uYl9pbnQ7bl9wZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIHBlID0gZ2VuX2ludChuX3BlLCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkod3JpdGVyLCBwZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3BlLCBwZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIGNoYXIgKiB2ZXJzaW9uOyAvKiB0aGUgeG1sIHZlcnNpb24gKCIxLjAiKSBvciBOVUxMIGZvciBkZWZhdWx0ICgiMS4wIikgKi8KKyAgICBpbnQgbl92ZXJzaW9uOworICAgIGNoYXIgKiBlbmNvZGluZzsgLyogdGhlIGVuY29kaW5nIG9yIE5VTEwgZm9yIGRlZmF1bHQgKi8KKyAgICBpbnQgbl9lbmNvZGluZzsKKyAgICBjaGFyICogc3RhbmRhbG9uZTsgLyogInllcyIgb3IgIm5vIiBvciBOVUxMIGZvciBkZWZhdWx0ICovCisgICAgaW50IG5fc3RhbmRhbG9uZTsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl92ZXJzaW9uID0gMDtuX3ZlcnNpb24gPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl92ZXJzaW9uKyspIHsKKyAgICBmb3IgKG5fZW5jb2RpbmcgPSAwO25fZW5jb2RpbmcgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9lbmNvZGluZysrKSB7CisgICAgZm9yIChuX3N0YW5kYWxvbmUgPSAwO25fc3RhbmRhbG9uZSA8IGdlbl9uYl9jb25zdF9jaGFyX3B0cjtuX3N0YW5kYWxvbmUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIHZlcnNpb24gPSBnZW5fY29uc3RfY2hhcl9wdHIobl92ZXJzaW9uLCAxKTsKKyAgICAgICAgZW5jb2RpbmcgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9lbmNvZGluZywgMik7CisgICAgICAgIHN0YW5kYWxvbmUgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9zdGFuZGFsb25lLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQod3JpdGVyLCAoY29uc3QgY2hhciAqKXZlcnNpb24sIChjb25zdCBjaGFyICopZW5jb2RpbmcsIChjb25zdCBjaGFyICopc3RhbmRhbG9uZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX3ZlcnNpb24sIChjb25zdCBjaGFyICopdmVyc2lvbiwgMSk7CisgICAgICAgIGRlc19jb25zdF9jaGFyX3B0cihuX2VuY29kaW5nLCAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fc3RhbmRhbG9uZSwgKGNvbnN0IGNoYXIgKilzdGFuZGFsb25lLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmVyc2lvbik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5jb2RpbmcpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0YW5kYWxvbmUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogZWxlbWVudCBuYW1lICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICB4bWxDaGFyICogcHJlZml4OyAvKiBuYW1lc3BhY2UgcHJlZml4IG9yIE5VTEwgKi8KKyAgICBpbnQgbl9wcmVmaXg7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIGVsZW1lbnQgbG9jYWwgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSTsgLyogbmFtZXNwYWNlIFVSSSBvciBOVUxMICovCisgICAgaW50IG5fbmFtZXNwYWNlVVJJOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX3ByZWZpeCA9IDA7bl9wcmVmaXggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbmFtZXNwYWNlVVJJID0gMDtuX25hbWVzcGFjZVVSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWVzcGFjZVVSSSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgcHJlZml4ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICBuYW1lc3BhY2VVUkkgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lc3BhY2VVUkksIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlMod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWVzcGFjZVVSSSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lc3BhY2VVUkksIChjb25zdCB4bWxDaGFyICopbmFtZXNwYWNlVVJJLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlclN0YXJ0UEkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiB0YXJnZXQ7IC8qIFBJIHRhcmdldCAqLworICAgIGludCBuX3RhcmdldDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl90YXJnZXQgPSAwO25fdGFyZ2V0IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdGFyZ2V0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICB0YXJnZXQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl90YXJnZXQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyU3RhcnRQSSh3cml0ZXIsIChjb25zdCB4bWxDaGFyICopdGFyZ2V0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdGFyZ2V0LCAoY29uc3QgeG1sQ2hhciAqKXRhcmdldCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyU3RhcnRQSSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhcmdldCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBhdHRyaWJ1dGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIGF0dHJpYnV0ZSBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSh3cml0ZXIsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZU5TKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICB4bWxDaGFyICogcHJlZml4OyAvKiBuYW1lc3BhY2UgcHJlZml4ICovCisgICAgaW50IG5fcHJlZml4OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBhdHRyaWJ1dGUgbG9jYWwgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSTsgLyogbmFtZXNwYWNlIFVSSSAqLworICAgIGludCBuX25hbWVzcGFjZVVSSTsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogYXR0cmlidXRlIGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX3ByZWZpeCA9IDA7bl9wcmVmaXggPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wcmVmaXgrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbmFtZXNwYWNlVVJJID0gMDtuX25hbWVzcGFjZVVSSSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWVzcGFjZVVSSSsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAyKTsKKyAgICAgICAgbmFtZXNwYWNlVVJJID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZXNwYWNlVVJJLCAzKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDQpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyh3cml0ZXIsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZXNwYWNlVVJJLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgsIChjb25zdCB4bWxDaGFyICopcHJlZml4LCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZXNwYWNlVVJJLCAoY29uc3QgeG1sQ2hhciAqKW5hbWVzcGFjZVVSSSwgMyk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgNCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgY2hhciAqIGRhdGE7IC8qIGJpbmFyeSBkYXRhICovCisgICAgaW50IG5fZGF0YTsKKyAgICBpbnQgc3RhcnQ7IC8qIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIGRhdGEgb2YgdGhlIGZpcnN0IGJ5dGUgdG8gZW5jb2RlICovCisgICAgaW50IG5fc3RhcnQ7CisgICAgaW50IGxlbjsgLyogdGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGUgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fZGF0YSA9IDA7bl9kYXRhIDwgZ2VuX25iX2NvbnN0X2NoYXJfcHRyO25fZGF0YSsrKSB7CisgICAgZm9yIChuX3N0YXJ0ID0gMDtuX3N0YXJ0IDwgZ2VuX25iX2ludDtuX3N0YXJ0KyspIHsKKyAgICBmb3IgKG5fbGVuID0gMDtuX2xlbiA8IGdlbl9uYl9pbnQ7bl9sZW4rKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIGRhdGEgPSBnZW5fY29uc3RfY2hhcl9wdHIobl9kYXRhLCAxKTsKKyAgICAgICAgc3RhcnQgPSBnZW5faW50KG5fc3RhcnQsIDIpOworICAgICAgICBsZW4gPSBnZW5faW50KG5fbGVuLCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0KHdyaXRlciwgKGNvbnN0IGNoYXIgKilkYXRhLCBzdGFydCwgbGVuKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fZGF0YSwgKGNvbnN0IGNoYXIgKilkYXRhLCAxKTsKKyAgICAgICAgZGVzX2ludChuX3N0YXJ0LCBzdGFydCwgMik7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kYXRhKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdGFydCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbGVuKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlQmluSGV4KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICBjaGFyICogZGF0YTsgLyogYmluYXJ5IGRhdGEgKi8KKyAgICBpbnQgbl9kYXRhOworICAgIGludCBzdGFydDsgLyogdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgZGF0YSBvZiB0aGUgZmlyc3QgYnl0ZSB0byBlbmNvZGUgKi8KKyAgICBpbnQgbl9zdGFydDsKKyAgICBpbnQgbGVuOyAvKiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGVuY29kZSAqLworICAgIGludCBuX2xlbjsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9kYXRhID0gMDtuX2RhdGEgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl9kYXRhKyspIHsKKyAgICBmb3IgKG5fc3RhcnQgPSAwO25fc3RhcnQgPCBnZW5fbmJfaW50O25fc3RhcnQrKykgeworICAgIGZvciAobl9sZW4gPSAwO25fbGVuIDwgZ2VuX25iX2ludDtuX2xlbisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgZGF0YSA9IGdlbl9jb25zdF9jaGFyX3B0cihuX2RhdGEsIDEpOworICAgICAgICBzdGFydCA9IGdlbl9pbnQobl9zdGFydCwgMik7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgod3JpdGVyLCAoY29uc3QgY2hhciAqKWRhdGEsIHN0YXJ0LCBsZW4pOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfY29uc3RfY2hhcl9wdHIobl9kYXRhLCAoY29uc3QgY2hhciAqKWRhdGEsIDEpOworICAgICAgICBkZXNfaW50KG5fc3RhcnQsIHN0YXJ0LCAyKTsKKyAgICAgICAgZGVzX2ludChuX2xlbiwgbGVuLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZUJpbkhleCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2RhdGEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0YXJ0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVDREFUQSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIENEQVRBIGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiBjb21tZW50IHN0cmluZyAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgY29udGVudCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50KHdyaXRlciwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZUNvbW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURURCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSBEVEQgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBwdWJpZDsgLyogdGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXIgKi8KKyAgICBpbnQgbl9wdWJpZDsKKyAgICB4bWxDaGFyICogc3lzaWQ7IC8qIHRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFREICovCisgICAgaW50IG5fc3lzaWQ7CisgICAgeG1sQ2hhciAqIHN1YnNldDsgLyogc3RyaW5nIGNvbnRlbnQgb2YgdGhlIERURCAqLworICAgIGludCBuX3N1YnNldDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fcHViaWQgPSAwO25fcHViaWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9wdWJpZCsrKSB7CisgICAgZm9yIChuX3N5c2lkID0gMDtuX3N5c2lkIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3lzaWQrKykgeworICAgIGZvciAobl9zdWJzZXQgPSAwO25fc3Vic2V0IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3Vic2V0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIHB1YmlkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHViaWQsIDIpOworICAgICAgICBzeXNpZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3N5c2lkLCAzKTsKKyAgICAgICAgc3Vic2V0ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3Vic2V0LCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlRFREKHdyaXRlciwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXB1YmlkLCAoY29uc3QgeG1sQ2hhciAqKXN5c2lkLCAoY29uc3QgeG1sQ2hhciAqKXN1YnNldCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3B1YmlkLCAoY29uc3QgeG1sQ2hhciAqKXB1YmlkLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzaWQsIChjb25zdCB4bWxDaGFyICopc3lzaWQsIDMpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zdWJzZXQsIChjb25zdCB4bWxDaGFyICopc3Vic2V0LCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZURURCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YmlkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXNpZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3Vic2V0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgRFREIEFUVExJU1QgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiBjb250ZW50IG9mIHRoZSBBVFRMSVNUICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3Qod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVEVERBdHRsaXN0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3dyaXRlcik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudCAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudCh3cml0ZXIsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIGludCBwZTsgLyogVFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90ICovCisgICAgaW50IG5fcGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSBEVEQgZW50aXR5ICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogcHViaWQ7IC8qIHRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyICovCisgICAgaW50IG5fcHViaWQ7CisgICAgeG1sQ2hhciAqIHN5c2lkOyAvKiB0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCAqLworICAgIGludCBuX3N5c2lkOworICAgIHhtbENoYXIgKiBuZGF0YWlkOyAvKiB0aGUgeG1sIG5vdGF0aW9uIG5hbWUuICovCisgICAgaW50IG5fbmRhdGFpZDsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogY29udGVudCBvZiB0aGUgZW50aXR5ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9wZSA9IDA7bl9wZSA8IGdlbl9uYl9pbnQ7bl9wZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9wdWJpZCA9IDA7bl9wdWJpZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3B1YmlkKyspIHsKKyAgICBmb3IgKG5fc3lzaWQgPSAwO25fc3lzaWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXNpZCsrKSB7CisgICAgZm9yIChuX25kYXRhaWQgPSAwO25fbmRhdGFpZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25kYXRhaWQrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBwZSA9IGdlbl9pbnQobl9wZSwgMSk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAyKTsKKyAgICAgICAgcHViaWQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJpZCwgMyk7CisgICAgICAgIHN5c2lkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzaWQsIDQpOworICAgICAgICBuZGF0YWlkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmRhdGFpZCwgNSk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCA2KTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5KHdyaXRlciwgcGUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKilwdWJpZCwgKGNvbnN0IHhtbENoYXIgKilzeXNpZCwgKGNvbnN0IHhtbENoYXIgKiluZGF0YWlkLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfaW50KG5fcGUsIHBlLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHViaWQsIChjb25zdCB4bWxDaGFyICopcHViaWQsIDMpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zeXNpZCwgKGNvbnN0IHhtbENoYXIgKilzeXNpZCwgNCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25kYXRhaWQsIChjb25zdCB4bWxDaGFyICopbmRhdGFpZCwgNSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgNik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHkiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcHViaWQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N5c2lkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uZGF0YWlkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIGludCBwZTsgLyogVFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90ICovCisgICAgaW50IG5fcGU7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIHRoZSBuYW1lIG9mIHRoZSBEVEQgZW50aXR5ICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogcHViaWQ7IC8qIHRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyICovCisgICAgaW50IG5fcHViaWQ7CisgICAgeG1sQ2hhciAqIHN5c2lkOyAvKiB0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCAqLworICAgIGludCBuX3N5c2lkOworICAgIHhtbENoYXIgKiBuZGF0YWlkOyAvKiB0aGUgeG1sIG5vdGF0aW9uIG5hbWUuICovCisgICAgaW50IG5fbmRhdGFpZDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9wZSA9IDA7bl9wZSA8IGdlbl9uYl9pbnQ7bl9wZSsrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9wdWJpZCA9IDA7bl9wdWJpZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3B1YmlkKyspIHsKKyAgICBmb3IgKG5fc3lzaWQgPSAwO25fc3lzaWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXNpZCsrKSB7CisgICAgZm9yIChuX25kYXRhaWQgPSAwO25fbmRhdGFpZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25kYXRhaWQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIHBlID0gZ2VuX2ludChuX3BlLCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICBwdWJpZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3B1YmlkLCAzKTsKKyAgICAgICAgc3lzaWQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zeXNpZCwgNCk7CisgICAgICAgIG5kYXRhaWQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uZGF0YWlkLCA1KTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHkod3JpdGVyLCBwZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXB1YmlkLCAoY29uc3QgeG1sQ2hhciAqKXN5c2lkLCAoY29uc3QgeG1sQ2hhciAqKW5kYXRhaWQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfaW50KG5fcGUsIHBlLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHViaWQsIChjb25zdCB4bWxDaGFyICopcHViaWQsIDMpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zeXNpZCwgKGNvbnN0IHhtbENoYXIgKilzeXNpZCwgNCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25kYXRhaWQsIChjb25zdCB4bWxDaGFyICopbmRhdGFpZCwgNSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3BlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wdWJpZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3lzaWQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25kYXRhaWQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiBwdWJpZDsgLyogdGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXIgKi8KKyAgICBpbnQgbl9wdWJpZDsKKyAgICB4bWxDaGFyICogc3lzaWQ7IC8qIHRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFREICovCisgICAgaW50IG5fc3lzaWQ7CisgICAgeG1sQ2hhciAqIG5kYXRhaWQ7IC8qIHRoZSB4bWwgbm90YXRpb24gbmFtZS4gKi8KKyAgICBpbnQgbl9uZGF0YWlkOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX3B1YmlkID0gMDtuX3B1YmlkIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHViaWQrKykgeworICAgIGZvciAobl9zeXNpZCA9IDA7bl9zeXNpZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N5c2lkKyspIHsKKyAgICBmb3IgKG5fbmRhdGFpZCA9IDA7bl9uZGF0YWlkIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmRhdGFpZCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgcHViaWQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJpZCwgMSk7CisgICAgICAgIHN5c2lkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3lzaWQsIDIpOworICAgICAgICBuZGF0YWlkID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmRhdGFpZCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKXB1YmlkLCAoY29uc3QgeG1sQ2hhciAqKXN5c2lkLCAoY29uc3QgeG1sQ2hhciAqKW5kYXRhaWQpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCB3cml0ZXIsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9wdWJpZCwgKGNvbnN0IHhtbENoYXIgKilwdWJpZCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N5c2lkLCAoY29uc3QgeG1sQ2hhciAqKXN5c2lkLCAyKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmRhdGFpZCwgKGNvbnN0IHhtbENoYXIgKiluZGF0YWlkLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wdWJpZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3lzaWQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25kYXRhaWQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgaW50IHBlOyAvKiBUUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3QgKi8KKyAgICBpbnQgbl9wZTsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHkgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiBjb250ZW50IG9mIHRoZSBlbnRpdHkgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX3BlID0gMDtuX3BlIDwgZ2VuX25iX2ludDtuX3BlKyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIHBlID0gZ2VuX2ludChuX3BlLCAxKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDIpOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5KHdyaXRlciwgcGUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3BlLCBwZSwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMik7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3BlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgbmFtZSBvZiB0aGUgeG1sIG5vdGF0aW9uICovCisgICAgaW50IG5fbmFtZTsKKyAgICB4bWxDaGFyICogcHViaWQ7IC8qIHRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyICovCisgICAgaW50IG5fcHViaWQ7CisgICAgeG1sQ2hhciAqIHN5c2lkOyAvKiB0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURCAqLworICAgIGludCBuX3N5c2lkOworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9wdWJpZCA9IDA7bl9wdWJpZCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3B1YmlkKyspIHsKKyAgICBmb3IgKG5fc3lzaWQgPSAwO25fc3lzaWQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zeXNpZCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHdyaXRlciA9IGdlbl94bWxUZXh0V3JpdGVyUHRyKG5fd3JpdGVyLCAwKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDEpOworICAgICAgICBwdWJpZCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3B1YmlkLCAyKTsKKyAgICAgICAgc3lzaWQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zeXNpZCwgMyk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJXcml0ZURURE5vdGF0aW9uKHdyaXRlciwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAoY29uc3QgeG1sQ2hhciAqKXB1YmlkLCAoY29uc3QgeG1sQ2hhciAqKXN5c2lkKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHViaWQsIChjb25zdCB4bWxDaGFyICopcHViaWQsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9zeXNpZCwgKGNvbnN0IHhtbENoYXIgKilzeXNpZCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3B1YmlkKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zeXNpZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBlbGVtZW50IG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBjb250ZW50OyAvKiBlbGVtZW50IGNvbnRlbnQgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX25hbWUgPSAwO25fbmFtZSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25hbWUrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCh3cml0ZXIsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIG5hbWVzcGFjZSBwcmVmaXggKi8KKyAgICBpbnQgbl9wcmVmaXg7CisgICAgeG1sQ2hhciAqIG5hbWU7IC8qIGVsZW1lbnQgbG9jYWwgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSTsgLyogbmFtZXNwYWNlIFVSSSAqLworICAgIGludCBuX25hbWVzcGFjZVVSSTsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogZWxlbWVudCBjb250ZW50ICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25hbWVzcGFjZVVSSSA9IDA7bl9uYW1lc3BhY2VVUkkgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lc3BhY2VVUkkrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBwcmVmaXggPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9wcmVmaXgsIDEpOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMik7CisgICAgICAgIG5hbWVzcGFjZVVSSSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWVzcGFjZVVSSSwgMyk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCA0KTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TKHdyaXRlciwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIChjb25zdCB4bWxDaGFyICopbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lc3BhY2VVUkksIChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDIpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lc3BhY2VVUkksIChjb25zdCB4bWxDaGFyICopbmFtZXNwYWNlVVJJLCAzKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCA0KTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlTlModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENEQVRBKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDb21tZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVEQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREludGVybmFsRW50aXR5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRSYXcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlUEkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sVGV4dFdyaXRlclB0ciB3cml0ZXI7IC8qIHRoZSB4bWxUZXh0V3JpdGVyUHRyICovCisgICAgaW50IG5fd3JpdGVyOworICAgIHhtbENoYXIgKiB0YXJnZXQ7IC8qIFBJIHRhcmdldCAqLworICAgIGludCBuX3RhcmdldDsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogUEkgY29udGVudCAqLworICAgIGludCBuX2NvbnRlbnQ7CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fdGFyZ2V0ID0gMDtuX3RhcmdldCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3RhcmdldCsrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIHRhcmdldCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3RhcmdldCwgMSk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAyKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlUEkod3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKXRhcmdldCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdGFyZ2V0LCAoY29uc3QgeG1sQ2hhciAqKXRhcmdldCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVQSSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3RhcmdldCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29udGVudCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlUmF3KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGV4dCBzdHJpbmcgKi8KKyAgICBpbnQgbl9jb250ZW50OworCisgICAgZm9yIChuX3dyaXRlciA9IDA7bl93cml0ZXIgPCBnZW5fbmJfeG1sVGV4dFdyaXRlclB0cjtuX3dyaXRlcisrKSB7CisgICAgZm9yIChuX2NvbnRlbnQgPSAwO25fY29udGVudCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX2NvbnRlbnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB3cml0ZXIgPSBnZW5feG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgMCk7CisgICAgICAgIGNvbnRlbnQgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9jb250ZW50LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sVGV4dFdyaXRlcldyaXRlUmF3KHdyaXRlciwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sVGV4dFdyaXRlclB0cihuX3dyaXRlciwgd3JpdGVyLCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgKGNvbnN0IHhtbENoYXIgKiljb250ZW50LCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFRleHRXcml0ZXJXcml0ZVJhdyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl93cml0ZXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2NvbnRlbnQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfV1JJVEVSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyOyAvKiB0aGUgeG1sVGV4dFdyaXRlclB0ciAqLworICAgIGludCBuX3dyaXRlcjsKKyAgICB4bWxDaGFyICogY29udGVudDsgLyogdGV4dCBzdHJpbmcgKi8KKyAgICBpbnQgbl9jb250ZW50OworICAgIGludCBsZW47IC8qIGxlbmd0aCBvZiB0aGUgdGV4dCBzdHJpbmcgKi8KKyAgICBpbnQgbl9sZW47CisKKyAgICBmb3IgKG5fd3JpdGVyID0gMDtuX3dyaXRlciA8IGdlbl9uYl94bWxUZXh0V3JpdGVyUHRyO25fd3JpdGVyKyspIHsKKyAgICBmb3IgKG5fY29udGVudCA9IDA7bl9jb250ZW50IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fY29udGVudCsrKSB7CisgICAgZm9yIChuX2xlbiA9IDA7bl9sZW4gPCBnZW5fbmJfaW50O25fbGVuKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMSk7CisgICAgICAgIGxlbiA9IGdlbl9pbnQobl9sZW4sIDIpOworCisgICAgICAgIHJldF92YWwgPSB4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4od3JpdGVyLCAoY29uc3QgeG1sQ2hhciAqKWNvbnRlbnQsIGxlbik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMSk7CisgICAgICAgIGRlc19pbnQobl9sZW4sIGxlbiwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9sZW4pOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVN0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1dSSVRFUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcjsgLyogdGhlIHhtbFRleHRXcml0ZXJQdHIgKi8KKyAgICBpbnQgbl93cml0ZXI7CisgICAgeG1sQ2hhciAqIGNvbnRlbnQ7IC8qIHRleHQgc3RyaW5nICovCisgICAgaW50IG5fY29udGVudDsKKworICAgIGZvciAobl93cml0ZXIgPSAwO25fd3JpdGVyIDwgZ2VuX25iX3htbFRleHRXcml0ZXJQdHI7bl93cml0ZXIrKykgeworICAgIGZvciAobl9jb250ZW50ID0gMDtuX2NvbnRlbnQgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9jb250ZW50KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgd3JpdGVyID0gZ2VuX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIDApOworICAgICAgICBjb250ZW50ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fY29udGVudCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZyh3cml0ZXIsIChjb25zdCB4bWxDaGFyICopY29udGVudCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFRleHRXcml0ZXJQdHIobl93cml0ZXIsIHdyaXRlciwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX2NvbnRlbnQsIChjb25zdCB4bWxDaGFyICopY29udGVudCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fd3JpdGVyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb250ZW50KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q29tbWVudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRFbGVtZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRSYXcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWx3cml0ZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhtbHdyaXRlciA6IDUxIG9mIDc5IGZ1bmN0aW9ucyAuLi5cbiIpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3VGV4dFdyaXRlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3VGV4dFdyaXRlckZpbGVuYW1lKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdUZXh0V3JpdGVyTWVtb3J5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sTmV3VGV4dFdyaXRlclRyZWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJFbmRDREFUQSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlckVuZENvbW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJFbmREVEQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJFbmREVERBdHRsaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlckVuZERUREVudGl0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlckVuZERvY3VtZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyRW5kRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlckVuZFBJKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyRmx1c2goKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclNldEluZGVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJTdGFydERURCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyU3RhcnRQSSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUNEQVRBKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVEVEQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURUREVudGl0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHkoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVBJKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVSYXcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVJhd0xlbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4bWx3cml0ZXI6ICVkIGVycm9yc1xuIiwgdGVzdF9yZXQpOworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgZG91YmxlIHJldF92YWw7CisgICAgaW50IHZhbDsgLyogYSBib29sZWFuICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfaW50O25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX2ludChuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcih2YWwpOworICAgICAgICBkZXNyZXRfZG91YmxlKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgaW50IHZhbDsgLyogYSBib29sZWFuICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfaW50O25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX2ludChuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyh2YWwpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2ludChuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTm9kZVNldFB0ciBuczsgLyogYSBub2RlLXNldCAqLworICAgIGludCBuX25zOworCisgICAgZm9yIChuX25zID0gMDtuX25zIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ucysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5zID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ucywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4obnMpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbnMsIG5zLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBkb3VibGUgcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIG5zOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbnM7CisKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbnMgPSBnZW5feG1sTm9kZVNldFB0cihuX25zLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyKG5zKTsKKyAgICAgICAgZGVzcmV0X2RvdWJsZShyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25zLCBucywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIG5zOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbnM7CisKKyAgICBmb3IgKG5fbnMgPSAwO25fbnMgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbnMgPSBnZW5feG1sTm9kZVNldFB0cihuX25zLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nKG5zKTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbnMsIG5zLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ucyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoQ2FzdE5vZGVUb051bWJlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGRvdWJsZSByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogYSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyKG5vZGUpOworICAgICAgICBkZXNyZXRfZG91YmxlKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogYSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nKG5vZGUpOworICAgICAgICBkZXNyZXRfeG1sQ2hhcl9wdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgZG91YmxlIHZhbDsgLyogYSBudW1iZXIgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl9kb3VibGU7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5fZG91YmxlKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuKHZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2RvdWJsZShuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIGRvdWJsZSB2YWw7IC8qIGEgbnVtYmVyICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfZG91YmxlO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX2RvdWJsZShuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nKHZhbCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZG91YmxlKG5fdmFsLCB2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sQ2hhciAqIHZhbDsgLyogYSBzdHJpbmcgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbigoY29uc3QgeG1sQ2hhciAqKXZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsLCAoY29uc3QgeG1sQ2hhciAqKXZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBkb3VibGUgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogdmFsOyAvKiBhIHN0cmluZyAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIoKGNvbnN0IHhtbENoYXIgKil2YWwpOworICAgICAgICBkZXNyZXRfZG91YmxlKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ZhbCwgKGNvbnN0IHhtbENoYXIgKil2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDYXN0VG9Cb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdmFsOyAvKiBhbiBYUGF0aCBvYmplY3QgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ2FzdFRvQm9vbGVhbih2YWwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aE9iamVjdFB0cihuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ2FzdFRvQm9vbGVhbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENhc3RUb051bWJlcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGRvdWJsZSByZXRfdmFsOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHZhbDsgLyogYW4gWFBhdGggb2JqZWN0ICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfeG1sWFBhdGhPYmplY3RQdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5feG1sWFBhdGhPYmplY3RQdHIobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aENhc3RUb051bWJlcih2YWwpOworICAgICAgICBkZXNyZXRfZG91YmxlKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aE9iamVjdFB0cihuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ2FzdFRvTnVtYmVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoQ2FzdFRvU3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sQ2hhciAqIHJldF92YWw7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdmFsOyAvKiBhbiBYUGF0aCBvYmplY3QgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ2FzdFRvU3RyaW5nKHZhbCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhPYmplY3RQdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENhc3RUb1N0cmluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENtcE5vZGVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBub2RlMTsgLyogdGhlIGZpcnN0IG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlMTsKKyAgICB4bWxOb2RlUHRyIG5vZGUyOyAvKiB0aGUgc2Vjb25kIG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlMjsKKworICAgIGZvciAobl9ub2RlMSA9IDA7bl9ub2RlMSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZTErKykgeworICAgIGZvciAobl9ub2RlMiA9IDA7bl9ub2RlMiA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZTIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlMSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZTEsIDApOworICAgICAgICBub2RlMiA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZTIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aENtcE5vZGVzKG5vZGUxLCBub2RlMik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlMSwgbm9kZTEsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUyLCBub2RlMiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENtcE5vZGVzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUxKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENvbXBpbGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFhQYXRoQ29tcEV4cHJQdHIgMQorc3RhdGljIHhtbFhQYXRoQ29tcEV4cHJQdHIgZ2VuX3htbFhQYXRoQ29tcEV4cHJQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFhQYXRoQ29tcEV4cHJQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFhQYXRoQ29tcEV4cHJQdHIgdmFsIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0ciAxCitzdGF0aWMgeG1sWFBhdGhDb250ZXh0UHRyIGdlbl94bWxYUGF0aENvbnRleHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbFhQYXRoQ29udGV4dFB0cihpbnQgbm8gQVRUUklCVVRFX1VOVVNFRCwgeG1sWFBhdGhDb250ZXh0UHRyIHZhbCBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworfQorI2VuZGlmCisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENvbXBpbGVkRXZhbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wOyAvKiB0aGUgY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbiAqLworICAgIGludCBuX2NvbXA7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eDsgLyogdGhlIFhQYXRoIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fY29tcCA9IDA7bl9jb21wIDwgZ2VuX25iX3htbFhQYXRoQ29tcEV4cHJQdHI7bl9jb21wKyspIHsKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl94bWxYUGF0aENvbnRleHRQdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjb21wID0gZ2VuX3htbFhQYXRoQ29tcEV4cHJQdHIobl9jb21wLCAwKTsKKyAgICAgICAgY3R4ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ29tcGlsZWRFdmFsKGNvbXAsIGN0eCk7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhDb21wRXhwclB0cihuX2NvbXAsIGNvbXAsIDApOworICAgICAgICBkZXNfeG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4LCBjdHgsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhDb21waWxlZEV2YWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY29tcCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoQ29tcGlsZWRFdmFsVG9Cb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wOyAvKiB0aGUgY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbiAqLworICAgIGludCBuX2NvbXA7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jb21wID0gMDtuX2NvbXAgPCBnZW5fbmJfeG1sWFBhdGhDb21wRXhwclB0cjtuX2NvbXArKykgeworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGNvbXAgPSBnZW5feG1sWFBhdGhDb21wRXhwclB0cihuX2NvbXAsIDApOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbihjb21wLCBjdHh0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhDb21wRXhwclB0cihuX2NvbXAsIGNvbXAsIDApOworICAgICAgICBkZXNfeG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb21wKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoQ29udGV4dFNldENhY2hlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgYWN0aXZlOyAvKiBlbmFibGVzL2Rpc2FibGVzIChjcmVhdGVzL2ZyZWVzKSB0aGUgY2FjaGUgKi8KKyAgICBpbnQgbl9hY3RpdmU7CisgICAgaW50IHZhbHVlOyAvKiBhIHZhbHVlIHdpdGggc2VtYW50aWNzIGRlcGVuZGFudCBvbiBAb3B0aW9ucyAqLworICAgIGludCBuX3ZhbHVlOworICAgIGludCBvcHRpb25zOyAvKiBvcHRpb25zIChjdXJyZW50bHkgb25seSB0aGUgdmFsdWUgMCBpcyB1c2VkKSAqLworICAgIGludCBuX29wdGlvbnM7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9hY3RpdmUgPSAwO25fYWN0aXZlIDwgZ2VuX25iX2ludDtuX2FjdGl2ZSsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX2ludDtuX3ZhbHVlKyspIHsKKyAgICBmb3IgKG5fb3B0aW9ucyA9IDA7bl9vcHRpb25zIDwgZ2VuX25iX2ludDtuX29wdGlvbnMrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBhY3RpdmUgPSBnZW5faW50KG5fYWN0aXZlLCAxKTsKKyAgICAgICAgdmFsdWUgPSBnZW5faW50KG5fdmFsdWUsIDIpOworICAgICAgICBvcHRpb25zID0gZ2VuX2ludChuX29wdGlvbnMsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aENvbnRleHRTZXRDYWNoZShjdHh0LCBhY3RpdmUsIHZhbHVlLCBvcHRpb25zKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9hY3RpdmUsIGFjdGl2ZSwgMSk7CisgICAgICAgIGRlc19pbnQobl92YWx1ZSwgdmFsdWUsIDIpOworICAgICAgICBkZXNfaW50KG5fb3B0aW9ucywgb3B0aW9ucywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENvbnRleHRTZXRDYWNoZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9hY3RpdmUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbHVlKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9vcHRpb25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDb252ZXJ0Qm9vbGVhbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdmFsOyAvKiBhbiBYUGF0aCBvYmplY3QgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ29udmVydEJvb2xlYW4odmFsKTsKKyAgICAgICAgdmFsID0gTlVMTDsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aE9iamVjdFB0cihuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ29udmVydEJvb2xlYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDb252ZXJ0TnVtYmVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB2YWw7IC8qIGFuIFhQYXRoIG9iamVjdCAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDb252ZXJ0TnVtYmVyKHZhbCk7CisgICAgICAgIHZhbCA9IE5VTEw7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhPYmplY3RQdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENvbnZlcnROdW1iZXIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDb252ZXJ0U3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB2YWw7IC8qIGFuIFhQYXRoIG9iamVjdCAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhDb252ZXJ0U3RyaW5nKHZhbCk7CisgICAgICAgIHZhbCA9IE5VTEw7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhPYmplY3RQdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aENvbnZlcnRTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDdHh0Q29tcGlsZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhFdmFsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3RyOyAvKiB0aGUgWFBhdGggZXhwcmVzc2lvbiAqLworICAgIGludCBuX3N0cjsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4OyAvKiB0aGUgWFBhdGggY29udGV4dCAqLworICAgIGludCBuX2N0eDsKKworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyKyspIHsKKyAgICBmb3IgKG5fY3R4ID0gMDtuX2N0eCA8IGdlbl9uYl94bWxYUGF0aENvbnRleHRQdHI7bl9jdHgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdHIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIDApOworICAgICAgICBjdHggPSBnZW5feG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhFdmFsKChjb25zdCB4bWxDaGFyICopc3RyLCBjdHgpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAoY29uc3QgeG1sQ2hhciAqKXN0ciwgMCk7CisgICAgICAgIGRlc194bWxYUGF0aENvbnRleHRQdHIobl9jdHgsIGN0eCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aEV2YWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhFdmFsRXhwcmVzc2lvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlIFhQYXRoIGV4cHJlc3Npb24gKi8KKyAgICBpbnQgbl9zdHI7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9zdHIgPSAwO25fc3RyIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fc3RyKyspIHsKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdHIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIDApOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aEV2YWxFeHByZXNzaW9uKChjb25zdCB4bWxDaGFyICopc3RyLCBjdHh0KTsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDApOworICAgICAgICBkZXNfeG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aEV2YWxFeHByZXNzaW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aEV2YWxQcmVkaWNhdGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlczsgLyogdGhlIFByZWRpY2F0ZSBFeHByZXNzaW9uIGV2YWx1YXRpb24gcmVzdWx0ICovCisgICAgaW50IG5fcmVzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aENvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fcmVzID0gMDtuX3JlcyA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3JlcysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHJlcyA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX3JlcywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoRXZhbFByZWRpY2F0ZShjdHh0LCByZXMpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aENvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fcmVzLCByZXMsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhFdmFsUHJlZGljYXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3Jlcyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aEluaXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworCisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisKKyAgICAgICAgeG1sWFBhdGhJbml0KCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoSW5pdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aElzSW5mKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICBkb3VibGUgdmFsOyAvKiBhIGRvdWJsZSB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2RvdWJsZTtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl9kb3VibGUobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aElzSW5mKHZhbCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2RvdWJsZShuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoSXNJbmYiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhJc05hTih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgZG91YmxlIHZhbDsgLyogYSBkb3VibGUgdmFsdWUgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl9kb3VibGU7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5fZG91YmxlKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhJc05hTih2YWwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19kb3VibGUobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aElzTmFOIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTmV3Q29udGV4dCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOb2RlU2V0Q3JlYXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgdmFsOyAvKiBhbiBpbml0aWFsIHhtbE5vZGVQdHIsIG9yIE5VTEwgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxOb2RlUHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbE5vZGVQdHIobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGUodmFsKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVTZXRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5vZGVTZXRDcmVhdGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhPYmplY3RDb3B5KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB2YWw7IC8qIHRoZSBvcmlnaW5hbCBvYmplY3QgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoT2JqZWN0Q29weSh2YWwpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsLCB2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhPYmplY3RDb3B5IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoT3JkZXJEb2NFbGVtcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGxvbmcgcmV0X3ZhbDsKKyAgICB4bWxEb2NQdHIgZG9jOyAvKiBhbiBpbnB1dCBkb2N1bWVudCAqLworICAgIGludCBuX2RvYzsKKworICAgIGZvciAobl9kb2MgPSAwO25fZG9jIDwgZ2VuX25iX3htbERvY1B0cjtuX2RvYysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGRvYyA9IGdlbl94bWxEb2NQdHIobl9kb2MsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE9yZGVyRG9jRWxlbXMoZG9jKTsKKyAgICAgICAgZGVzcmV0X2xvbmcocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbERvY1B0cihuX2RvYywgZG9jLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoT3JkZXJEb2NFbGVtcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kb2MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeHBhdGgodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhwYXRoIDogMzAgb2YgMzggZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENhc3RCb29sZWFuVG9OdW1iZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ2FzdE5vZGVUb051bWJlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENhc3RTdHJpbmdUb0Jvb2xlYW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ2FzdFN0cmluZ1RvTnVtYmVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENhc3RUb0Jvb2xlYW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ2FzdFRvTnVtYmVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENhc3RUb1N0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDbXBOb2RlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDb21waWxlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENvbXBpbGVkRXZhbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDb21waWxlZEV2YWxUb0Jvb2xlYW4oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ29udGV4dFNldENhY2hlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENvbnZlcnRCb29sZWFuKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENvbnZlcnROdW1iZXIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ29udmVydFN0cmluZygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDdHh0Q29tcGlsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhFdmFsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aEV2YWxFeHByZXNzaW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aEV2YWxQcmVkaWNhdGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoSW5pdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhJc0luZigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhJc05hTigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXdDb250ZXh0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVTZXRDcmVhdGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoT2JqZWN0Q29weSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhPcmRlckRvY0VsZW1zKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4cGF0aDogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorCisjZGVmaW5lIGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgMQorc3RhdGljIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHJldHVybihOVUxMKTsKK30KK3N0YXRpYyB2b2lkIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfdmFsdWVQb3Aodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiBhbiBYUGF0aCBldmFsdWF0aW9uIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0gdmFsdWVQb3AoY3R4dCk7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB2YWx1ZVBvcCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfdmFsdWVQdXNoKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIGFuIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdmFsdWU7IC8qIHRoZSBYUGF0aCBvYmplY3QgKi8KKyAgICBpbnQgbl92YWx1ZTsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICB2YWx1ZSA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX3ZhbHVlLCAxKTsKKworICAgICAgICByZXRfdmFsID0gdmFsdWVQdXNoKGN0eHQsIHZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxYUGF0aE9iamVjdFB0cihuX3ZhbHVlLCB2YWx1ZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB2YWx1ZVB1c2giLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhBZGRWYWx1ZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhBZGRWYWx1ZXMoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhBZGRWYWx1ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENlaWxpbmdGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uKGN0eHQsIG5hcmdzKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9uYXJncywgbmFyZ3MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDb21wYXJlVmFsdWVzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IGluZjsgLyogbGVzcyB0aGFuICgxKSBvciBncmVhdGVyIHRoYW4gKDApICovCisgICAgaW50IG5faW5mOworICAgIGludCBzdHJpY3Q7IC8qIGlzIHRoZSBjb21wYXJpc29uIHN0cmljdCAqLworICAgIGludCBuX3N0cmljdDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2luZiA9IDA7bl9pbmYgPCBnZW5fbmJfaW50O25faW5mKyspIHsKKyAgICBmb3IgKG5fc3RyaWN0ID0gMDtuX3N0cmljdCA8IGdlbl9uYl9pbnQ7bl9zdHJpY3QrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBpbmYgPSBnZW5faW50KG5faW5mLCAxKTsKKyAgICAgICAgc3RyaWN0ID0gZ2VuX2ludChuX3N0cmljdCwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoQ29tcGFyZVZhbHVlcyhjdHh0LCBpbmYsIHN0cmljdCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5faW5mLCBpbmYsIDEpOworICAgICAgICBkZXNfaW50KG5fc3RyaWN0LCBzdHJpY3QsIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhDb21wYXJlVmFsdWVzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2luZik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RyaWN0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aENvbmNhdEZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhDb25jYXRGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ29uY2F0RnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhDb250YWluc0Z1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhDb250YWluc0Z1bmN0aW9uKGN0eHQsIG5hcmdzKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9uYXJncywgbmFyZ3MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhDb250YWluc0Z1bmN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hcmdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoQ291bnRGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoQ291bnRGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoQ291bnRGdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aERlYnVnRHVtcENvbXBFeHByKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgJiYgZGVmaW5lZChMSUJYTUxfREVCVUdfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgRklMRSAqIG91dHB1dDsgLyogdGhlIEZJTEUgKiBmb3IgdGhlIG91dHB1dCAqLworICAgIGludCBuX291dHB1dDsKKyAgICB4bWxYUGF0aENvbXBFeHByUHRyIGNvbXA7IC8qIHRoZSBwcmVjb21waWxlZCBYUGF0aCBleHByZXNzaW9uICovCisgICAgaW50IG5fY29tcDsKKyAgICBpbnQgZGVwdGg7IC8qIHRoZSBpbmRlbnRhdGlvbiBsZXZlbC4gKi8KKyAgICBpbnQgbl9kZXB0aDsKKworICAgIGZvciAobl9vdXRwdXQgPSAwO25fb3V0cHV0IDwgZ2VuX25iX0ZJTEVfcHRyO25fb3V0cHV0KyspIHsKKyAgICBmb3IgKG5fY29tcCA9IDA7bl9jb21wIDwgZ2VuX25iX3htbFhQYXRoQ29tcEV4cHJQdHI7bl9jb21wKyspIHsKKyAgICBmb3IgKG5fZGVwdGggPSAwO25fZGVwdGggPCBnZW5fbmJfaW50O25fZGVwdGgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBvdXRwdXQgPSBnZW5fRklMRV9wdHIobl9vdXRwdXQsIDApOworICAgICAgICBjb21wID0gZ2VuX3htbFhQYXRoQ29tcEV4cHJQdHIobl9jb21wLCAxKTsKKyAgICAgICAgZGVwdGggPSBnZW5faW50KG5fZGVwdGgsIDIpOworCisgICAgICAgIHhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIob3V0cHV0LCBjb21wLCBkZXB0aCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX0ZJTEVfcHRyKG5fb3V0cHV0LCBvdXRwdXQsIDApOworICAgICAgICBkZXNfeG1sWFBhdGhDb21wRXhwclB0cihuX2NvbXAsIGNvbXAsIDEpOworICAgICAgICBkZXNfaW50KG5fZGVwdGgsIGRlcHRoLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb3V0cHV0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jb21wKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZXB0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSAmJiBkZWZpbmVkKExJQlhNTF9ERUJVR19FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBGSUxFICogb3V0cHV0OyAvKiB0aGUgRklMRSAqIHRvIGR1bXAgdGhlIG91dHB1dCAqLworICAgIGludCBuX291dHB1dDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBjdXI7IC8qIHRoZSBvYmplY3QgdG8gaW5zcGVjdCAqLworICAgIGludCBuX2N1cjsKKyAgICBpbnQgZGVwdGg7IC8qIGluZGVudGF0aW9uIGxldmVsICovCisgICAgaW50IG5fZGVwdGg7CisKKyAgICBmb3IgKG5fb3V0cHV0ID0gMDtuX291dHB1dCA8IGdlbl9uYl9GSUxFX3B0cjtuX291dHB1dCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sWFBhdGhPYmplY3RQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9kZXB0aCA9IDA7bl9kZXB0aCA8IGdlbl9uYl9pbnQ7bl9kZXB0aCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG91dHB1dCA9IGdlbl9GSUxFX3B0cihuX291dHB1dCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX2N1ciwgMSk7CisgICAgICAgIGRlcHRoID0gZ2VuX2ludChuX2RlcHRoLCAyKTsKKworICAgICAgICB4bWxYUGF0aERlYnVnRHVtcE9iamVjdChvdXRwdXQsIGN1ciwgZGVwdGgpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19GSUxFX3B0cihuX291dHB1dCwgb3V0cHV0LCAwKTsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICBkZXNfaW50KG5fZGVwdGgsIGRlcHRoLCAyKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX291dHB1dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9kZXB0aCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhEaWZmZXJlbmNlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMxOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMxOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMyOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMyOworCisgICAgZm9yIChuX25vZGVzMSA9IDA7bl9ub2RlczEgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMSsrKSB7CisgICAgZm9yIChuX25vZGVzMiA9IDA7bl9ub2RlczIgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGVzMSA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMxLCAwKTsKKyAgICAgICAgbm9kZXMyID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlczIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aERpZmZlcmVuY2Uobm9kZXMxLCBub2RlczIpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVNldFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzMSwgbm9kZXMxLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl9ub2RlczIsIG5vZGVzMiwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aERpZmZlcmVuY2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZXMxKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlczIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhEaXN0aW5jdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVTZXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXM7CisKKyAgICBmb3IgKG5fbm9kZXMgPSAwO25fbm9kZXMgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZXMgPSBnZW5feG1sTm9kZVNldFB0cihuX25vZGVzLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhEaXN0aW5jdChub2Rlcyk7CisgICAgICAgIGRlc3JldF94bWxOb2RlU2V0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMsIG5vZGVzLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoRGlzdGluY3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZXMpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aERpc3RpbmN0U29ydGVkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXM7IC8qIGEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciAqLworICAgIGludCBuX25vZGVzOworCisgICAgZm9yIChuX25vZGVzID0gMDtuX25vZGVzIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlcysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGVzID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlcywgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoRGlzdGluY3RTb3J0ZWQobm9kZXMpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVNldFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzLCBub2RlcywgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aERpc3RpbmN0U29ydGVkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhEaXZWYWx1ZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhEaXZWYWx1ZXMoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhEaXZWYWx1ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoRXF1YWxWYWx1ZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoRXF1YWxWYWx1ZXMoY3R4dCk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhFcXVhbFZhbHVlcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhFcnIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogYSBYUGF0aCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IGVycm9yOyAvKiB0aGUgZXJyb3IgY29kZSAqLworICAgIGludCBuX2Vycm9yOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fZXJyb3IgPSAwO25fZXJyb3IgPCBnZW5fbmJfaW50O25fZXJyb3IrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBlcnJvciA9IGdlbl9pbnQobl9lcnJvciwgMSk7CisKKyAgICAgICAgeG1sWFBhdGhFcnIoY3R4dCwgZXJyb3IpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX2Vycm9yLCBlcnJvciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aEVyciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9lcnJvcik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aEV2YWxFeHByKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHhtbFhQYXRoRXZhbEV4cHIoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhFdmFsRXhwciIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlczsgLyogdGhlIFByZWRpY2F0ZSBFeHByZXNzaW9uIGV2YWx1YXRpb24gcmVzdWx0ICovCisgICAgaW50IG5fcmVzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fcmVzID0gMDtuX3JlcyA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3JlcysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHJlcyA9IGdlbl94bWxYUGF0aE9iamVjdFB0cihuX3JlcywgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQoY3R4dCwgcmVzKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxYUGF0aE9iamVjdFB0cihuX3JlcywgcmVzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fcmVzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoRmFsc2VGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoRmFsc2VGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoRmFsc2VGdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aEZsb29yRnVuY3Rpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgbmFyZ3M7IC8qIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzICovCisgICAgaW50IG5fbmFyZ3M7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYXJncyA9IDA7bl9uYXJncyA8IGdlbl9uYl9pbnQ7bl9uYXJncysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hcmdzID0gZ2VuX2ludChuX25hcmdzLCAxKTsKKworICAgICAgICB4bWxYUGF0aEZsb29yRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aEZsb29yRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhGdW5jdGlvbkxvb2t1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aEhhc1NhbWVOb2Rlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMxOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMxOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMyOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMyOworCisgICAgZm9yIChuX25vZGVzMSA9IDA7bl9ub2RlczEgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMSsrKSB7CisgICAgZm9yIChuX25vZGVzMiA9IDA7bl9ub2RlczIgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGVzMSA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMxLCAwKTsKKyAgICAgICAgbm9kZXMyID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlczIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aEhhc1NhbWVOb2Rlcyhub2RlczEsIG5vZGVzMik7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl9ub2RlczEsIG5vZGVzMSwgMCk7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMyLCBub2RlczIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhIYXNTYW1lTm9kZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZXMxKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlczIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhJZEZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhJZEZ1bmN0aW9uKGN0eHQsIG5hcmdzKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9uYXJncywgbmFyZ3MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhJZEZ1bmN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hcmdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoSW50ZXJzZWN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMxOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMxOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMyOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMyOworCisgICAgZm9yIChuX25vZGVzMSA9IDA7bl9ub2RlczEgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMSsrKSB7CisgICAgZm9yIChuX25vZGVzMiA9IDA7bl9ub2RlczIgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGVzMSA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMxLCAwKTsKKyAgICAgICAgbm9kZXMyID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlczIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aEludGVyc2VjdGlvbihub2RlczEsIG5vZGVzMik7CisgICAgICAgIGRlc3JldF94bWxOb2RlU2V0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMxLCBub2RlczEsIDApOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzMiwgbm9kZXMyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoSW50ZXJzZWN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzMSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZXMyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoSXNOb2RlVHlwZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbENoYXIgKiBuYW1lOyAvKiBhIG5hbWUgc3RyaW5nICovCisgICAgaW50IG5fbmFtZTsKKworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbmFtZSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aElzTm9kZVR5cGUoKGNvbnN0IHhtbENoYXIgKiluYW1lKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhJc05vZGVUeXBlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aExhbmdGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoTGFuZ0Z1bmN0aW9uKGN0eHQsIG5hcmdzKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9uYXJncywgbmFyZ3MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhMYW5nRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhMYXN0RnVuY3Rpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgbmFyZ3M7IC8qIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzICovCisgICAgaW50IG5fbmFyZ3M7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYXJncyA9IDA7bl9uYXJncyA8IGdlbl9uYl9pbnQ7bl9uYXJncysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hcmdzID0gZ2VuX2ludChuX25hcmdzLCAxKTsKKworICAgICAgICB4bWxYUGF0aExhc3RGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTGFzdEZ1bmN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hcmdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTGVhZGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVTZXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzMTsgLyogYSBub2RlLXNldCAqLworICAgIGludCBuX25vZGVzMTsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzMjsgLyogYSBub2RlLXNldCAqLworICAgIGludCBuX25vZGVzMjsKKworICAgIGZvciAobl9ub2RlczEgPSAwO25fbm9kZXMxIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlczErKykgeworICAgIGZvciAobl9ub2RlczIgPSAwO25fbm9kZXMyIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlczIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlczEgPSBnZW5feG1sTm9kZVNldFB0cihuX25vZGVzMSwgMCk7CisgICAgICAgIG5vZGVzMiA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhMZWFkaW5nKG5vZGVzMSwgbm9kZXMyKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVTZXRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl9ub2RlczEsIG5vZGVzMSwgMCk7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMyLCBub2RlczIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhMZWFkaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzMSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZXMyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTGVhZGluZ1NvcnRlZCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVTZXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzMTsgLyogYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyICovCisgICAgaW50IG5fbm9kZXMxOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMyOyAvKiBhIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIgKi8KKyAgICBpbnQgbl9ub2RlczI7CisKKyAgICBmb3IgKG5fbm9kZXMxID0gMDtuX25vZGVzMSA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fbm9kZXMxKyspIHsKKyAgICBmb3IgKG5fbm9kZXMyID0gMDtuX25vZGVzMiA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fbm9kZXMyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZXMxID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlczEsIDApOworICAgICAgICBub2RlczIgPSBnZW5feG1sTm9kZVNldFB0cihuX25vZGVzMiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTGVhZGluZ1NvcnRlZChub2RlczEsIG5vZGVzMik7CisgICAgICAgIGRlc3JldF94bWxOb2RlU2V0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMxLCBub2RlczEsIDApOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzMiwgbm9kZXMyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTGVhZGluZ1NvcnRlZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlczEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aExvY2FsTmFtZUZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhNb2RWYWx1ZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhNb2RWYWx1ZXMoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhNb2RWYWx1ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTXVsdFZhbHVlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICB4bWxYUGF0aE11bHRWYWx1ZXMoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhNdWx0VmFsdWVzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5hbWVzcGFjZVVSSUZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXdCb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICBpbnQgdmFsOyAvKiB0aGUgYm9vbGVhbiB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2ludDtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl9pbnQobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5ld0Jvb2xlYW4odmFsKTsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19pbnQobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5ld0Jvb2xlYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXdDU3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICBjaGFyICogdmFsOyAvKiB0aGUgY2hhciAqIHZhbHVlICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfY29uc3RfY2hhcl9wdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5fY29uc3RfY2hhcl9wdHIobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5ld0NTdHJpbmcoKGNvbnN0IGNoYXIgKil2YWwpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X2NoYXJfcHRyKG5fdmFsLCAoY29uc3QgY2hhciAqKXZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5ld0NTdHJpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXdGbG9hdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgZG91YmxlIHZhbDsgLyogdGhlIGRvdWJsZSB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2RvdWJsZTtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl9kb3VibGUobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5ld0Zsb2F0KHZhbCk7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfZG91YmxlKG5fdmFsLCB2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOZXdGbG9hdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5ld05vZGVTZXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgdmFsOyAvKiB0aGUgTm9kZVB0ciB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbE5vZGVQdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5feG1sTm9kZVB0cihuX3ZhbCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTmV3Tm9kZVNldCh2YWwpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5ld05vZGVTZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXdOb2RlU2V0TGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sTm9kZVNldFB0ciB2YWw7IC8qIGFuIGV4aXN0aW5nIE5vZGVTZXQgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbE5vZGVTZXRQdHIobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5ld05vZGVTZXRMaXN0KHZhbCk7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX3ZhbCwgdmFsLCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTmV3Tm9kZVNldExpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5ld1N0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHZhbDsgLyogdGhlIHhtbENoYXIgKiB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOZXdTdHJpbmcoKGNvbnN0IHhtbENoYXIgKil2YWwpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fdmFsLCAoY29uc3QgeG1sQ2hhciAqKXZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5ld1N0cmluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5leHRBbmNlc3Rvcih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5leHRBbmNlc3RvcihjdHh0LCBjdXIpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOZXh0QW5jZXN0b3IiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmKGN0eHQsIGN1cik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXh0QXR0cmlidXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBhdHRyaWJ1dGUgaW4gdGhlIHRyYXZlcnNhbCAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOZXh0QXR0cmlidXRlKGN0eHQsIGN1cik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5leHRBdHRyaWJ1dGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTmV4dENoaWxkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTmV4dENoaWxkKGN0eHQsIGN1cik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5leHRDaGlsZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXh0RGVzY2VuZGFudCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5leHREZXNjZW5kYW50KGN0eHQsIGN1cik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5leHREZXNjZW5kYW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGYoY3R4dCwgY3VyKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGYiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTmV4dEZvbGxvd2luZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5leHRGb2xsb3dpbmcoY3R4dCwgY3VyKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTmV4dEZvbGxvd2luZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nKGN0eHQsIGN1cik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5leHROYW1lc3BhY2Uodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBjdXJyZW50IGF0dHJpYnV0ZSBpbiB0aGUgdHJhdmVyc2FsICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5leHROYW1lc3BhY2UoY3R4dCwgY3VyKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2N1ciwgY3VyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTmV4dE5hbWVzcGFjZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXh0UGFyZW50KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbE5vZGVQdHIgY3VyOyAvKiB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwgKi8KKyAgICBpbnQgbl9jdXI7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9jdXIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVB0cihuX2N1ciwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTmV4dFBhcmVudChjdHh0LCBjdXIpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOZXh0UGFyZW50IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5leHRQcmVjZWRpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbCAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOZXh0UHJlY2VkaW5nKGN0eHQsIGN1cik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5leHRQcmVjZWRpbmciLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmcodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlUHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sTm9kZVB0ciBjdXI7IC8qIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbCAqLworICAgIGludCBuX2N1cjsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX2N1cisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlUHRyKG5fY3VyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyhjdHh0LCBjdXIpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fY3VyLCBjdXIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOZXh0U2VsZih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxOb2RlUHRyIGN1cjsgLyogdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsICovCisgICAgaW50IG5fY3VyOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlUHRyO25fY3VyKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVQdHIobl9jdXIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5leHRTZWxmKGN0eHQsIGN1cik7CisgICAgICAgIGRlc3JldF94bWxOb2RlUHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9jdXIsIGN1ciwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5leHRTZWxmIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vZGVMZWFkaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXM7IC8qIGEgbm9kZS1zZXQgKi8KKyAgICBpbnQgbl9ub2RlczsKKyAgICB4bWxOb2RlUHRyIG5vZGU7IC8qIGEgbm9kZSAqLworICAgIGludCBuX25vZGU7CisKKyAgICBmb3IgKG5fbm9kZXMgPSAwO25fbm9kZXMgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzKyspIHsKKyAgICBmb3IgKG5fbm9kZSA9IDA7bl9ub2RlIDwgZ2VuX25iX3htbE5vZGVQdHI7bl9ub2RlKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgbm9kZXMgPSBnZW5feG1sTm9kZVNldFB0cihuX25vZGVzLCAwKTsKKyAgICAgICAgbm9kZSA9IGdlbl94bWxOb2RlUHRyKG5fbm9kZSwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTm9kZUxlYWRpbmcobm9kZXMsIG5vZGUpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVNldFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzLCBub2RlcywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5vZGVMZWFkaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlU2V0UHRyIHJldF92YWw7CisgICAgeG1sTm9kZVNldFB0ciBub2RlczsgLyogYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyICovCisgICAgaW50IG5fbm9kZXM7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiBhIG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlOworCisgICAgZm9yIChuX25vZGVzID0gMDtuX25vZGVzIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlcysrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGVzID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlcywgMCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkKG5vZGVzLCBub2RlKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVTZXRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl9ub2Rlcywgbm9kZXMsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX25vZGUsIG5vZGUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2Rlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vZGVTZXRBZGQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlU2V0UHRyIGN1cjsgLyogdGhlIGluaXRpYWwgbm9kZSBzZXQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sTm9kZVB0ciB2YWw7IC8qIGEgbmV3IHhtbE5vZGVQdHIgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxOb2RlUHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVTZXRQdHIobl9jdXIsIDApOworICAgICAgICB2YWwgPSBnZW5feG1sTm9kZVB0cihuX3ZhbCwgMSk7CisKKyAgICAgICAgeG1sWFBhdGhOb2RlU2V0QWRkKGN1ciwgdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl92YWwsIHZhbCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5vZGVTZXRBZGQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOb2RlU2V0QWRkTnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlU2V0UHRyIGN1cjsgLyogdGhlIGluaXRpYWwgbm9kZSBzZXQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiB0aGUgaG9zdGluZyBub2RlICovCisgICAgaW50IG5fbm9kZTsKKyAgICB4bWxOc1B0ciBuczsgLyogYSB0aGUgbmFtZXNwYWNlIG5vZGUgKi8KKyAgICBpbnQgbl9uczsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9jdXIrKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgIGZvciAobl9ucyA9IDA7bl9ucyA8IGdlbl9uYl94bWxOc1B0cjtuX25zKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVTZXRQdHIobl9jdXIsIDApOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAxKTsKKyAgICAgICAgbnMgPSBnZW5feG1sTnNQdHIobl9ucywgMik7CisKKyAgICAgICAgeG1sWFBhdGhOb2RlU2V0QWRkTnMoY3VyLCBub2RlLCBucyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl9jdXIsIGN1ciwgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMSk7CisgICAgICAgIGRlc194bWxOc1B0cihuX25zLCBucywgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5vZGVTZXRBZGROcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlU2V0UHRyIGN1cjsgLyogdGhlIGluaXRpYWwgbm9kZSBzZXQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgeG1sTm9kZVB0ciB2YWw7IC8qIGEgbmV3IHhtbE5vZGVQdHIgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fY3VyKyspIHsKKyAgICBmb3IgKG5fdmFsID0gMDtuX3ZhbCA8IGdlbl9uYl94bWxOb2RlUHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbE5vZGVTZXRQdHIobl9jdXIsIDApOworICAgICAgICB2YWwgPSBnZW5feG1sTm9kZVB0cihuX3ZhbCwgMSk7CisKKyAgICAgICAgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKGN1ciwgdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl92YWwsIHZhbCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOb2RlU2V0Q29udGFpbnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIGN1cjsgLyogdGhlIG5vZGUtc2V0ICovCisgICAgaW50IG5fY3VyOworICAgIHhtbE5vZGVQdHIgdmFsOyAvKiB0aGUgbm9kZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9jdXIrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbE5vZGVQdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVNldFB0cihuX2N1ciwgMCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxOb2RlUHRyKG5fdmFsLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOb2RlU2V0Q29udGFpbnMoY3VyLCB2YWwpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3ZhbCwgdmFsLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTm9kZVNldENvbnRhaW5zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTm9kZVNldERlbCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVTZXRQdHIgY3VyOyAvKiB0aGUgaW5pdGlhbCBub2RlIHNldCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxOb2RlUHRyIHZhbDsgLyogYW4geG1sTm9kZVB0ciAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9jdXIrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbE5vZGVQdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdXIgPSBnZW5feG1sTm9kZVNldFB0cihuX2N1ciwgMCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxOb2RlUHRyKG5fdmFsLCAxKTsKKworICAgICAgICB4bWxYUGF0aE5vZGVTZXREZWwoY3VyLCB2YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fY3VyLCBjdXIsIDApOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX3ZhbCwgdmFsLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTm9kZVNldERlbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vZGVTZXRNZXJnZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVTZXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIHZhbDE7IC8qIHRoZSBmaXJzdCBOb2RlU2V0IG9yIE5VTEwgKi8KKyAgICBpbnQgbl92YWwxOworICAgIHhtbE5vZGVTZXRQdHIgdmFsMjsgLyogdGhlIHNlY29uZCBOb2RlU2V0ICovCisgICAgaW50IG5fdmFsMjsKKworICAgIGZvciAobl92YWwxID0gMDtuX3ZhbDEgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX3ZhbDErKykgeworICAgIGZvciAobl92YWwyID0gMDtuX3ZhbDIgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX3ZhbDIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwxID0gZ2VuX3htbE5vZGVTZXRQdHIobl92YWwxLCAwKTsKKyAgICAgICAgdmFsMiA9IGdlbl94bWxOb2RlU2V0UHRyKG5fdmFsMiwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoTm9kZVNldE1lcmdlKHZhbDEsIHZhbDIpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVNldFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX3ZhbDEsIHZhbDEsIDApOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX3ZhbDIsIHZhbDIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOb2RlU2V0TWVyZ2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsMSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vZGVTZXRSZW1vdmUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxOb2RlU2V0UHRyIGN1cjsgLyogdGhlIGluaXRpYWwgbm9kZSBzZXQgKi8KKyAgICBpbnQgbl9jdXI7CisgICAgaW50IHZhbDsgLyogdGhlIGluZGV4IHRvIHJlbW92ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl9jdXIgPSAwO25fY3VyIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9jdXIrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX2ludDtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN1ciA9IGdlbl94bWxOb2RlU2V0UHRyKG5fY3VyLCAwKTsKKyAgICAgICAgdmFsID0gZ2VuX2ludChuX3ZhbCwgMSk7CisKKyAgICAgICAgeG1sWFBhdGhOb2RlU2V0UmVtb3ZlKGN1ciwgdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX2ludChuX3ZhbCwgdmFsLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTm9kZVNldFJlbW92ZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdXIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vZGVTZXRTb3J0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciBzZXQ7IC8qIHRoZSBub2RlIHNldCAqLworICAgIGludCBuX3NldDsKKworICAgIGZvciAobl9zZXQgPSAwO25fc2V0IDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9zZXQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzZXQgPSBnZW5feG1sTm9kZVNldFB0cihuX3NldCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhOb2RlU2V0U29ydChzZXQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fc2V0LCBzZXQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOb2RlU2V0U29ydCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zZXQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vZGVUcmFpbGluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVTZXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlU2V0UHRyIG5vZGVzOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXM7CisgICAgeG1sTm9kZVB0ciBub2RlOyAvKiBhIG5vZGUgKi8KKyAgICBpbnQgbl9ub2RlOworCisgICAgZm9yIChuX25vZGVzID0gMDtuX25vZGVzIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlcysrKSB7CisgICAgZm9yIChuX25vZGUgPSAwO25fbm9kZSA8IGdlbl9uYl94bWxOb2RlUHRyO25fbm9kZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGVzID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlcywgMCk7CisgICAgICAgIG5vZGUgPSBnZW5feG1sTm9kZVB0cihuX25vZGUsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aE5vZGVUcmFpbGluZyhub2Rlcywgbm9kZSk7CisgICAgICAgIGRlc3JldF94bWxOb2RlU2V0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMsIG5vZGVzLCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9ub2RlLCBub2RlLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTm9kZVRyYWlsaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXM7IC8qIGEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciAqLworICAgIGludCBuX25vZGVzOworICAgIHhtbE5vZGVQdHIgbm9kZTsgLyogYSBub2RlICovCisgICAgaW50IG5fbm9kZTsKKworICAgIGZvciAobl9ub2RlcyA9IDA7bl9ub2RlcyA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fbm9kZXMrKykgeworICAgIGZvciAobl9ub2RlID0gMDtuX25vZGUgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX25vZGUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlcyA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMsIDApOworICAgICAgICBub2RlID0gZ2VuX3htbE5vZGVQdHIobl9ub2RlLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQobm9kZXMsIG5vZGUpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVNldFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzLCBub2RlcywgMCk7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fbm9kZSwgbm9kZSwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2Rlcyk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZSk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOb3RFcXVhbFZhbHVlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGludCByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOb3RFcXVhbFZhbHVlcyhjdHh0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE5vdEVxdWFsVmFsdWVzIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aE5vdEZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhOb3RGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoTm90RnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOc0xvb2t1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIGNvbnN0IHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgeG1sQ2hhciAqIHByZWZpeDsgLyogdGhlIG5hbWVzcGFjZSBwcmVmaXggdmFsdWUgKi8KKyAgICBpbnQgbl9wcmVmaXg7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aENvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgcHJlZml4ID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhOc0xvb2t1cChjdHh0LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCk7CisgICAgICAgIGRlc3JldF9jb25zdF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgKGNvbnN0IHhtbENoYXIgKilwcmVmaXgsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhOc0xvb2t1cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9wcmVmaXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhOdW1iZXJGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoTnVtYmVyRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aE51bWJlckZ1bmN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hcmdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoUGFyc2VOQ05hbWUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxDaGFyICogcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoUGFyc2VOQ05hbWUoY3R4dCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFBhcnNlTkNOYW1lIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFBhcnNlTmFtZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhQYXJzZU5hbWUoY3R4dCk7CisgICAgICAgIGRlc3JldF94bWxDaGFyX3B0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFBhcnNlTmFtZSIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhQb3BCb29sZWFuKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgaW50IHJldF92YWw7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoUG9wQm9vbGVhbihjdHh0KTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFBvcEJvb2xlYW4iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoUG9wRXh0ZXJuYWwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB2b2lkICogcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogYW4gWFBhdGggcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhQb3BFeHRlcm5hbChjdHh0KTsKKyAgICAgICAgZGVzcmV0X3ZvaWRfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoUG9wRXh0ZXJuYWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoUG9wTm9kZVNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbE5vZGVTZXRQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogYW4gWFBhdGggcGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhQb3BOb2RlU2V0KGN0eHQpOworICAgICAgICBkZXNyZXRfeG1sTm9kZVNldFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFBvcE5vZGVTZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoUG9wTnVtYmVyKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgZG91YmxlIHJldF92YWw7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoUG9wTnVtYmVyKGN0eHQpOworICAgICAgICBkZXNyZXRfZG91YmxlKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoUG9wTnVtYmVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFBvcFN0cmluZyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbENoYXIgKiByZXRfdmFsOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiBhbiBYUGF0aCBwYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aFBvcFN0cmluZyhjdHh0KTsKKyAgICAgICAgZGVzcmV0X3htbENoYXJfcHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoUG9wU3RyaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgbmFyZ3M7IC8qIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzICovCisgICAgaW50IG5fbmFyZ3M7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYXJncyA9IDA7bl9uYXJncyA8IGdlbl9uYl9pbnQ7bl9uYXJncysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hcmdzID0gZ2VuX2ludChuX25hcmdzLCAxKTsKKworICAgICAgICB4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIDApOworCisgICAgICAgIHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhSZWdpc3RlckZ1bmModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFJlZ2lzdGVyRnVuY05TKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFJlZ2lzdGVyTnModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbENoYXIgKiBwcmVmaXg7IC8qIHRoZSBuYW1lc3BhY2UgcHJlZml4IGNhbm5vdCBiZSBOVUxMIG9yIGVtcHR5IHN0cmluZyAqLworICAgIGludCBuX3ByZWZpeDsKKyAgICB4bWxDaGFyICogbnNfdXJpOyAvKiB0aGUgbmFtZXNwYWNlIG5hbWUgKi8KKyAgICBpbnQgbl9uc191cmk7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9wcmVmaXggPSAwO25fcHJlZml4IDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fcHJlZml4KyspIHsKKyAgICBmb3IgKG5fbnNfdXJpID0gMDtuX25zX3VyaSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25zX3VyaSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIHByZWZpeCA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX3ByZWZpeCwgMSk7CisgICAgICAgIG5zX3VyaSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25zX3VyaSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoUmVnaXN0ZXJOcyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgKGNvbnN0IHhtbENoYXIgKiluc191cmkpOworICAgICAgICBkZXNyZXRfaW50KHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aENvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fcHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKXByZWZpeCwgMSk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25zX3VyaSwgKGNvbnN0IHhtbENoYXIgKiluc191cmksIDIpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhSZWdpc3Rlck5zIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ByZWZpeCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnNfdXJpKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgdmFyaWFibGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdmFsdWU7IC8qIHRoZSB2YXJpYWJsZSB2YWx1ZSBvciBOVUxMICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fdmFsdWUgPSAwO25fdmFsdWUgPCBnZW5fbmJfeG1sWFBhdGhPYmplY3RQdHI7bl92YWx1ZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKyAgICAgICAgdmFsdWUgPSBnZW5feG1sWFBhdGhPYmplY3RQdHIobl92YWx1ZSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZShjdHh0LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIHZhbHVlKTsKKyAgICAgICAgZGVzcmV0X2ludChyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX25hbWUsIChjb25zdCB4bWxDaGFyICopbmFtZSwgMSk7CisgICAgICAgIGRlc194bWxYUGF0aE9iamVjdFB0cihuX3ZhbHVlLCB2YWx1ZSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZUxvb2t1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBpbnQgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIHhtbENoYXIgKiBuYW1lOyAvKiB0aGUgdmFyaWFibGUgbmFtZSAqLworICAgIGludCBuX25hbWU7CisgICAgeG1sQ2hhciAqIG5zX3VyaTsgLyogdGhlIHZhcmlhYmxlIG5hbWVzcGFjZSBVUkkgKi8KKyAgICBpbnQgbl9uc191cmk7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdmFsdWU7IC8qIHRoZSB2YXJpYWJsZSB2YWx1ZSBvciBOVUxMICovCisgICAgaW50IG5fdmFsdWU7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYW1lID0gMDtuX25hbWUgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uYW1lKyspIHsKKyAgICBmb3IgKG5fbnNfdXJpID0gMDtuX25zX3VyaSA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX25zX3VyaSsrKSB7CisgICAgZm9yIChuX3ZhbHVlID0gMDtuX3ZhbHVlIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fdmFsdWUrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIG5zX3VyaSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25zX3VyaSwgMik7CisgICAgICAgIHZhbHVlID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsdWUsIDMpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopbnNfdXJpLCB2YWx1ZSk7CisgICAgICAgIGRlc3JldF9pbnQocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uc191cmksIChjb25zdCB4bWxDaGFyICopbnNfdXJpLCAyKTsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsdWUsIHZhbHVlLCAzKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hbWUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25zX3VyaSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsdWUpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aENvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aENvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICB4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aENvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aENvbnRleHRQdHIobl9jdHh0LCAwKTsKKworICAgICAgICB4bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cChjdHh0KTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFJvb3Qodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhSb290KGN0eHQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoUm9vdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhSb3VuZEZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhSb3VuZEZ1bmN0aW9uKGN0eHQsIG5hcmdzKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9uYXJncywgbmFyZ3MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhSb3VuZEZ1bmN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hcmdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICBkb3VibGUgcmV0X3ZhbDsKKyAgICB4bWxDaGFyICogc3RyOyAvKiBBIHN0cmluZyB0byBzY2FuICovCisgICAgaW50IG5fc3RyOworCisgICAgZm9yIChuX3N0ciA9IDA7bl9zdHIgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9zdHIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdHIgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9zdHIsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aFN0cmluZ0V2YWxOdW1iZXIoKGNvbnN0IHhtbENoYXIgKilzdHIpOworICAgICAgICBkZXNyZXRfZG91YmxlKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc19jb25zdF94bWxDaGFyX3B0cihuX3N0ciwgKGNvbnN0IHhtbENoYXIgKilzdHIsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0cik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoU3RyaW5nRnVuY3Rpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgbmFyZ3M7IC8qIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzICovCisgICAgaW50IG5fbmFyZ3M7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYXJncyA9IDA7bl9uYXJncyA8IGdlbl9uYl9pbnQ7bl9uYXJncysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hcmdzID0gZ2VuX2ludChuX25hcmdzLCAxKTsKKworICAgICAgICB4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uKGN0eHQsIG5hcmdzKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9uYXJncywgbmFyZ3MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhTdHJpbmdGdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhTdWJWYWx1ZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhTdWJWYWx1ZXMoY3R4dCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhTdWJWYWx1ZXMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhTdWJzdHJpbmdCZWZvcmVGdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hcmdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoU3VtRnVuY3Rpb24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgbmFyZ3M7IC8qIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzICovCisgICAgaW50IG5fbmFyZ3M7CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9uYXJncyA9IDA7bl9uYXJncyA8IGdlbl9uYl9pbnQ7bl9uYXJncysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hcmdzID0gZ2VuX2ludChuX25hcmdzLCAxKTsKKworICAgICAgICB4bWxYUGF0aFN1bUZ1bmN0aW9uKGN0eHQsIG5hcmdzKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIGRlc19pbnQobl9uYXJncywgbmFyZ3MsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhTdW1GdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFRyYWlsaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMxOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMxOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMyOyAvKiBhIG5vZGUtc2V0ICovCisgICAgaW50IG5fbm9kZXMyOworCisgICAgZm9yIChuX25vZGVzMSA9IDA7bl9ub2RlczEgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMSsrKSB7CisgICAgZm9yIChuX25vZGVzMiA9IDA7bl9ub2RlczIgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX25vZGVzMisrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIG5vZGVzMSA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMxLCAwKTsKKyAgICAgICAgbm9kZXMyID0gZ2VuX3htbE5vZGVTZXRQdHIobl9ub2RlczIsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aFRyYWlsaW5nKG5vZGVzMSwgbm9kZXMyKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVTZXRQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl9ub2RlczEsIG5vZGVzMSwgMCk7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMyLCBub2RlczIsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhUcmFpbGluZyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlczEpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vZGVzMik7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFRyYWlsaW5nU29ydGVkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVNldFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVTZXRQdHIgbm9kZXMxOyAvKiBhIG5vZGUtc2V0LCBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIgKi8KKyAgICBpbnQgbl9ub2RlczE7CisgICAgeG1sTm9kZVNldFB0ciBub2RlczI7IC8qIGEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciAqLworICAgIGludCBuX25vZGVzMjsKKworICAgIGZvciAobl9ub2RlczEgPSAwO25fbm9kZXMxIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlczErKykgeworICAgIGZvciAobl9ub2RlczIgPSAwO25fbm9kZXMyIDwgZ2VuX25iX3htbE5vZGVTZXRQdHI7bl9ub2RlczIrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBub2RlczEgPSBnZW5feG1sTm9kZVNldFB0cihuX25vZGVzMSwgMCk7CisgICAgICAgIG5vZGVzMiA9IGdlbl94bWxOb2RlU2V0UHRyKG5fbm9kZXMyLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhUcmFpbGluZ1NvcnRlZChub2RlczEsIG5vZGVzMik7CisgICAgICAgIGRlc3JldF94bWxOb2RlU2V0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlU2V0UHRyKG5fbm9kZXMxLCBub2RlczEsIDApOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX25vZGVzMiwgbm9kZXMyLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoVHJhaWxpbmdTb3J0ZWQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbm9kZXMxKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9ub2RlczIpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbih2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OyAvKiB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHh0OworICAgIGludCBuYXJnczsgLyogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKi8KKyAgICBpbnQgbl9uYXJnczsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgZm9yIChuX25hcmdzID0gMDtuX25hcmdzIDwgZ2VuX25iX2ludDtuX25hcmdzKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3R4dCA9IGdlbl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCAwKTsKKyAgICAgICAgbmFyZ3MgPSBnZW5faW50KG5fbmFyZ3MsIDEpOworCisgICAgICAgIHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25hcmdzKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoVHJ1ZUZ1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dCAqLworICAgIGludCBuX2N0eHQ7CisgICAgaW50IG5hcmdzOyAvKiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFBhdGhUcnVlRnVuY3Rpb24oY3R4dCwgbmFyZ3MpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX25hcmdzLCBuYXJncywgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFRydWVGdW5jdGlvbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYXJncyk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFZhbHVlRmxpcFNpZ24odm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFBhdGhWYWx1ZUZsaXBTaWduKGN0eHQpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQYXRoVmFsdWVGbGlwU2lnbiIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhWYXJpYWJsZUxvb2t1cCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIHZhcmlhYmxlIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aENvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIG5hbWUgPSBnZW5fY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhWYXJpYWJsZUxvb2t1cChjdHh0LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfY29uc3RfeG1sQ2hhcl9wdHIobl9uYW1lLCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhWYXJpYWJsZUxvb2t1cCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9jdHh0KTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9uYW1lKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoVmFyaWFibGVMb29rdXBOUyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQ7IC8qIHRoZSBYUGF0aCBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICB4bWxDaGFyICogbmFtZTsgLyogdGhlIHZhcmlhYmxlIG5hbWUgKi8KKyAgICBpbnQgbl9uYW1lOworICAgIHhtbENoYXIgKiBuc191cmk7IC8qIHRoZSB2YXJpYWJsZSBuYW1lc3BhY2UgVVJJICovCisgICAgaW50IG5fbnNfdXJpOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aENvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFtZSA9IDA7bl9uYW1lIDwgZ2VuX25iX2NvbnN0X3htbENoYXJfcHRyO25fbmFtZSsrKSB7CisgICAgZm9yIChuX25zX3VyaSA9IDA7bl9uc191cmkgPCBnZW5fbmJfY29uc3RfeG1sQ2hhcl9wdHI7bl9uc191cmkrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYW1lID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgMSk7CisgICAgICAgIG5zX3VyaSA9IGdlbl9jb25zdF94bWxDaGFyX3B0cihuX25zX3VyaSwgMik7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQYXRoVmFyaWFibGVMb29rdXBOUyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKW5hbWUsIChjb25zdCB4bWxDaGFyICopbnNfdXJpKTsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aENvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbmFtZSwgKGNvbnN0IHhtbENoYXIgKiluYW1lLCAxKTsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fbnNfdXJpLCAoY29uc3QgeG1sQ2hhciAqKW5zX3VyaSwgMik7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFtZSk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbnNfdXJpKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUGF0aFdyYXBDU3RyaW5nKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICBjaGFyICogdmFsOyAvKiB0aGUgY2hhciAqIHZhbHVlICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfY2hhcl9wdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5fY2hhcl9wdHIobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aFdyYXBDU3RyaW5nKHZhbCk7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfY2hhcl9wdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFdyYXBDU3RyaW5nIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoV3JhcEV4dGVybmFsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB2b2lkICogdmFsOyAvKiB0aGUgdXNlciBkYXRhICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfdm9pZF9wdHI7bl92YWwrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICB2YWwgPSBnZW5fdm9pZF9wdHIobl92YWwsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUGF0aFdyYXBFeHRlcm5hbCh2YWwpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3ZvaWRfcHRyKG5fdmFsLCB2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFBhdGhXcmFwRXh0ZXJuYWwiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFBhdGhXcmFwTm9kZVNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sTm9kZVNldFB0ciB2YWw7IC8qIHRoZSBOb2RlUHRyIHZhbHVlICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfeG1sTm9kZVNldFB0cjtuX3ZhbCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHZhbCA9IGdlbl94bWxOb2RlU2V0UHRyKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFBhdGhXcmFwTm9kZVNldCh2YWwpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVTZXRQdHIobl92YWwsIHZhbCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aFdyYXBOb2RlU2V0IiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3ZhbCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQYXRoZXJyb3Iodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBjb25zdCBjaGFyICogZmlsZTsgLyogdGhlIGZpbGUgbmFtZSAqLworICAgIGludCBuX2ZpbGU7CisgICAgaW50IGxpbmU7IC8qIHRoZSBsaW5lIG51bWJlciAqLworICAgIGludCBuX2xpbmU7CisgICAgaW50IG5vOyAvKiB0aGUgZXJyb3IgbnVtYmVyICovCisgICAgaW50IG5fbm87CisKKyAgICBmb3IgKG5fY3R4dCA9IDA7bl9jdHh0IDwgZ2VuX25iX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cjtuX2N0eHQrKykgeworICAgIGZvciAobl9maWxlID0gMDtuX2ZpbGUgPCBnZW5fbmJfZmlsZXBhdGg7bl9maWxlKyspIHsKKyAgICBmb3IgKG5fbGluZSA9IDA7bl9saW5lIDwgZ2VuX25iX2ludDtuX2xpbmUrKykgeworICAgIGZvciAobl9ubyA9IDA7bl9ubyA8IGdlbl9uYl9pbnQ7bl9ubysrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisgICAgICAgIGZpbGUgPSBnZW5fZmlsZXBhdGgobl9maWxlLCAxKTsKKyAgICAgICAgbGluZSA9IGdlbl9pbnQobl9saW5lLCAyKTsKKyAgICAgICAgbm8gPSBnZW5faW50KG5fbm8sIDMpOworCisgICAgICAgIHhtbFhQYXRoZXJyb3IoY3R4dCwgZmlsZSwgbGluZSwgbm8pOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxYUGF0aFBhcnNlckNvbnRleHRQdHIobl9jdHh0LCBjdHh0LCAwKTsKKyAgICAgICAgZGVzX2ZpbGVwYXRoKG5fZmlsZSwgZmlsZSwgMSk7CisgICAgICAgIGRlc19pbnQobl9saW5lLCBsaW5lLCAyKTsKKyAgICAgICAgZGVzX2ludChuX25vLCBubywgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUGF0aGVycm9yIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2ZpbGUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2xpbmUpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX25vKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCitzdGF0aWMgaW50Cit0ZXN0X3hwYXRoSW50ZXJuYWxzKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisgICAgaWYgKHF1aWV0ID09IDApIHByaW50ZigiVGVzdGluZyB4cGF0aEludGVybmFscyA6IDEwNiBvZiAxMTcgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF92YWx1ZVBvcCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfdmFsdWVQdXNoKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aEFkZFZhbHVlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aENvbXBhcmVWYWx1ZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ29uY2F0RnVuY3Rpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhDb3VudEZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aERlYnVnRHVtcENvbXBFeHByKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aERlYnVnRHVtcE9iamVjdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhEaWZmZXJlbmNlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aERpc3RpbmN0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aERpc3RpbmN0U29ydGVkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aERpdlZhbHVlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhFcXVhbFZhbHVlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhFcnIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoRXZhbEV4cHIoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoRmFsc2VGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhGbG9vckZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aEZ1bmN0aW9uTG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoSGFzU2FtZU5vZGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aElkRnVuY3Rpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoSW50ZXJzZWN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aElzTm9kZVR5cGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTGFuZ0Z1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aExhc3RGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhMZWFkaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aExlYWRpbmdTb3J0ZWQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTG9jYWxOYW1lRnVuY3Rpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTW9kVmFsdWVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE11bHRWYWx1ZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTmFtZXNwYWNlVVJJRnVuY3Rpb24oKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTmV3Qm9vbGVhbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXdDU3RyaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5ld0Zsb2F0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5ld05vZGVTZXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTmV3Tm9kZVNldExpc3QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTmV3UGFyc2VyQ29udGV4dCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXdTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTmV4dEFuY2VzdG9yKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5leHRBbmNlc3Rvck9yU2VsZigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXh0QXR0cmlidXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5leHRDaGlsZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXh0RGVzY2VuZGFudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXh0RGVzY2VuZGFudE9yU2VsZigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXh0Rm9sbG93aW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5leHRGb2xsb3dpbmdTaWJsaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5leHROYW1lc3BhY2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTmV4dFBhcmVudCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOZXh0UHJlY2VkaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5leHRTZWxmKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVMZWFkaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVTZXRBZGQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTm9kZVNldEFkZE5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTm9kZVNldENvbnRhaW5zKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVTZXREZWwoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTm9kZVNldE1lcmdlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVTZXRSZW1vdmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTm9kZVNldFNvcnQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoTm9kZVRyYWlsaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOb3RFcXVhbFZhbHVlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOb3RGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOc0xvb2t1cCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhOdW1iZXJGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhQYXJzZU5DTmFtZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhQYXJzZU5hbWUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoUG9wQm9vbGVhbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhQb3BFeHRlcm5hbCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhQb3BOb2RlU2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFBvcE51bWJlcigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhQb3BTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoUG9zaXRpb25GdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhSZWdpc3RlckFsbEZ1bmN0aW9ucygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhSZWdpc3RlckZ1bmMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFJlZ2lzdGVyRnVuY05TKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFJlZ2lzdGVyTnMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhSZWdpc3RlcmVkRnVuY3NDbGVhbnVwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFJlZ2lzdGVyZWROc0NsZWFudXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoUm9vdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhSb3VuZEZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFN0cmluZ0Z1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFN1YlZhbHVlcygpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFN1YnN0cmluZ0Z1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFN1bUZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFRyYWlsaW5nKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFRyYWlsaW5nU29ydGVkKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFRyYW5zbGF0ZUZ1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFRydWVGdW5jdGlvbigpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFBhdGhWYWx1ZUZsaXBTaWduKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFZhcmlhYmxlTG9va3VwKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoV3JhcENTdHJpbmcoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQYXRoV3JhcEV4dGVybmFsKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aFdyYXBOb2RlU2V0KCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUGF0aGVycm9yKCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4cGF0aEludGVybmFsczogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworc3RhdGljIGludAordGVzdF94bWxYUHRyQnVpbGROb2RlTGlzdCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sTm9kZVB0ciByZXRfdmFsOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iajsgLyogdGhlIFhQb2ludGVyIHJlc3VsdCBmcm9tIHRoZSBldmFsdWF0aW9uLiAqLworICAgIGludCBuX29iajsKKworICAgIGZvciAobl9vYmogPSAwO25fb2JqIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fb2JqKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgb2JqID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fb2JqLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFB0ckJ1aWxkTm9kZUxpc3Qob2JqKTsKKyAgICAgICAgZGVzcmV0X3htbE5vZGVQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fb2JqLCBvYmosIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFB0ckJ1aWxkTm9kZUxpc3QiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fb2JqKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFB0ckV2YWwodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sQ2hhciAqIHN0cjsgLyogdGhlIFhQb2ludGVyIGV4cHJlc3Npb24gKi8KKyAgICBpbnQgbl9zdHI7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eDsgLyogdGhlIFhQb2ludGVyIGNvbnRleHQgKi8KKyAgICBpbnQgbl9jdHg7CisKKyAgICBmb3IgKG5fc3RyID0gMDtuX3N0ciA8IGdlbl9uYl9jb25zdF94bWxDaGFyX3B0cjtuX3N0cisrKSB7CisgICAgZm9yIChuX2N0eCA9IDA7bl9jdHggPCBnZW5fbmJfeG1sWFBhdGhDb250ZXh0UHRyO25fY3R4KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RyID0gZ2VuX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAwKTsKKyAgICAgICAgY3R4ID0gZ2VuX3htbFhQYXRoQ29udGV4dFB0cihuX2N0eCwgMSk7CisKKyAgICAgICAgcmV0X3ZhbCA9IHhtbFhQdHJFdmFsKChjb25zdCB4bWxDaGFyICopc3RyLCBjdHgpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX2NvbnN0X3htbENoYXJfcHRyKG5fc3RyLCAoY29uc3QgeG1sQ2hhciAqKXN0ciwgMCk7CisgICAgICAgIGRlc194bWxYUGF0aENvbnRleHRQdHIobl9jdHgsIGN0eCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyRXZhbCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdHIpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKworICAgIGZvciAobl9jdHh0ID0gMDtuX2N0eHQgPCBnZW5fbmJfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyO25fY3R4dCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIGN0eHQgPSBnZW5feG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgMCk7CisKKyAgICAgICAgeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZShjdHh0KTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyKG5fY3R4dCwgY3R4dCwgMCk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N0eHQpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisKKyNkZWZpbmUgZ2VuX25iX3htbExvY2F0aW9uU2V0UHRyIDEKK3N0YXRpYyB4bWxMb2NhdGlvblNldFB0ciBnZW5feG1sTG9jYXRpb25TZXRQdHIoaW50IG5vIEFUVFJJQlVURV9VTlVTRUQsIGludCBuciBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKE5VTEwpOworfQorc3RhdGljIHZvaWQgZGVzX3htbExvY2F0aW9uU2V0UHRyKGludCBubyBBVFRSSUJVVEVfVU5VU0VELCB4bWxMb2NhdGlvblNldFB0ciB2YWwgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpIHsKK30KKyNlbmRpZgorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFB0ckxvY2F0aW9uU2V0QWRkKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxMb2NhdGlvblNldFB0ciBjdXI7IC8qIHRoZSBpbml0aWFsIHJhbmdlIHNldCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB2YWw7IC8qIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTG9jYXRpb25TZXRQdHI7bl9jdXIrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbExvY2F0aW9uU2V0UHRyKG5fY3VyLCAwKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsLCAxKTsKKworICAgICAgICB4bWxYUHRyTG9jYXRpb25TZXRBZGQoY3VyLCB2YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxMb2NhdGlvblNldFB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsLCB2YWwsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFB0ckxvY2F0aW9uU2V0QWRkIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQdHJMb2NhdGlvblNldENyZWF0ZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworCisgICAgLyogbWlzc2luZyB0eXBlIHN1cHBvcnQgKi8KKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFB0ckxvY2F0aW9uU2V0RGVsKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxMb2NhdGlvblNldFB0ciBjdXI7IC8qIHRoZSBpbml0aWFsIHJhbmdlIHNldCAqLworICAgIGludCBuX2N1cjsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB2YWw7IC8qIGFuIHhtbFhQYXRoT2JqZWN0UHRyICovCisgICAgaW50IG5fdmFsOworCisgICAgZm9yIChuX2N1ciA9IDA7bl9jdXIgPCBnZW5fbmJfeG1sTG9jYXRpb25TZXRQdHI7bl9jdXIrKykgeworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbExvY2F0aW9uU2V0UHRyKG5fY3VyLCAwKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsLCAxKTsKKworICAgICAgICB4bWxYUHRyTG9jYXRpb25TZXREZWwoY3VyLCB2YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxMb2NhdGlvblNldFB0cihuX2N1ciwgY3VyLCAwKTsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fdmFsLCB2YWwsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFB0ckxvY2F0aW9uU2V0RGVsIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2N1cik7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fdmFsKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQdHJMb2NhdGlvblNldE1lcmdlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisKKyAgICAvKiBtaXNzaW5nIHR5cGUgc3VwcG9ydCAqLworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbExvY2F0aW9uU2V0UHRyIGN1cjsgLyogdGhlIGluaXRpYWwgcmFuZ2Ugc2V0ICovCisgICAgaW50IG5fY3VyOworICAgIGludCB2YWw7IC8qIHRoZSBpbmRleCB0byByZW1vdmUgKi8KKyAgICBpbnQgbl92YWw7CisKKyAgICBmb3IgKG5fY3VyID0gMDtuX2N1ciA8IGdlbl9uYl94bWxMb2NhdGlvblNldFB0cjtuX2N1cisrKSB7CisgICAgZm9yIChuX3ZhbCA9IDA7bl92YWwgPCBnZW5fbmJfaW50O25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgY3VyID0gZ2VuX3htbExvY2F0aW9uU2V0UHRyKG5fY3VyLCAwKTsKKyAgICAgICAgdmFsID0gZ2VuX2ludChuX3ZhbCwgMSk7CisKKyAgICAgICAgeG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlKGN1ciwgdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTG9jYXRpb25TZXRQdHIobl9jdXIsIGN1ciwgMCk7CisgICAgICAgIGRlc19pbnQobl92YWwsIHZhbCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3VyKTsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgc3RhcnQ7IC8qIHRoZSBzdGFydGluZyBhbmQgZW5kaW5nIG5vZGUgKi8KKyAgICBpbnQgbl9zdGFydDsKKworICAgIGZvciAobl9zdGFydCA9IDA7bl9zdGFydCA8IGdlbl9uYl94bWxOb2RlUHRyO25fc3RhcnQrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdGFydCA9IGdlbl94bWxOb2RlUHRyKG5fc3RhcnQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2Uoc3RhcnQpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9zdGFydCwgc3RhcnQsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlIiwKKwkgICAgICAgICAgIHhtbE1lbUJsb2NrcygpIC0gbWVtX2Jhc2UpOworCSAgICB0ZXN0X3JldCsrOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0YXJ0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFB0ck5ld0NvbnRleHQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKworICAgIC8qIG1pc3NpbmcgdHlwZSBzdXBwb3J0ICovCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sTm9kZVNldFB0ciBzZXQ7IC8qIGEgbm9kZSBzZXQgKi8KKyAgICBpbnQgbl9zZXQ7CisKKyAgICBmb3IgKG5fc2V0ID0gMDtuX3NldCA8IGdlbl9uYl94bWxOb2RlU2V0UHRyO25fc2V0KyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc2V0ID0gZ2VuX3htbE5vZGVTZXRQdHIobl9zZXQsIDApOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0KHNldCk7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sTm9kZVNldFB0cihuX3NldCwgc2V0LCAwKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc2V0KTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sTm9kZVB0ciBzdGFydDsgLyogdGhlIHN0YXJ0IE5vZGVQdHIgdmFsdWUgKi8KKyAgICBpbnQgbl9zdGFydDsKKyAgICB4bWxOb2RlUHRyIGVuZDsgLyogdGhlIGVuZCBOb2RlUHRyIHZhbHVlIG9yIE5VTEwgKi8KKyAgICBpbnQgbl9lbmQ7CisKKyAgICBmb3IgKG5fc3RhcnQgPSAwO25fc3RhcnQgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX3N0YXJ0KyspIHsKKyAgICBmb3IgKG5fZW5kID0gMDtuX2VuZCA8IGdlbl9uYl94bWxOb2RlUHRyO25fZW5kKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RhcnQgPSBnZW5feG1sTm9kZVB0cihuX3N0YXJ0LCAwKTsKKyAgICAgICAgZW5kID0gZ2VuX3htbE5vZGVQdHIobl9lbmQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyhzdGFydCwgZW5kKTsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fc3RhcnQsIHN0YXJ0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9lbmQsIGVuZCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdGFydCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5kKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQdHJOZXdSYW5nZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHN0YXJ0OyAvKiB0aGUgc3RhcnRpbmcgbm9kZSAqLworICAgIGludCBuX3N0YXJ0OworICAgIGludCBzdGFydGluZGV4OyAvKiB0aGUgc3RhcnQgaW5kZXggKi8KKyAgICBpbnQgbl9zdGFydGluZGV4OworICAgIHhtbE5vZGVQdHIgZW5kOyAvKiB0aGUgZW5kaW5nIHBvaW50ICovCisgICAgaW50IG5fZW5kOworICAgIGludCBlbmRpbmRleDsgLyogdGhlIGVuZGluZyBpbmRleCAqLworICAgIGludCBuX2VuZGluZGV4OworCisgICAgZm9yIChuX3N0YXJ0ID0gMDtuX3N0YXJ0IDwgZ2VuX25iX3htbE5vZGVQdHI7bl9zdGFydCsrKSB7CisgICAgZm9yIChuX3N0YXJ0aW5kZXggPSAwO25fc3RhcnRpbmRleCA8IGdlbl9uYl9pbnQ7bl9zdGFydGluZGV4KyspIHsKKyAgICBmb3IgKG5fZW5kID0gMDtuX2VuZCA8IGdlbl9uYl94bWxOb2RlUHRyO25fZW5kKyspIHsKKyAgICBmb3IgKG5fZW5kaW5kZXggPSAwO25fZW5kaW5kZXggPCBnZW5fbmJfaW50O25fZW5kaW5kZXgrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBzdGFydCA9IGdlbl94bWxOb2RlUHRyKG5fc3RhcnQsIDApOworICAgICAgICBzdGFydGluZGV4ID0gZ2VuX2ludChuX3N0YXJ0aW5kZXgsIDEpOworICAgICAgICBlbmQgPSBnZW5feG1sTm9kZVB0cihuX2VuZCwgMik7CisgICAgICAgIGVuZGluZGV4ID0gZ2VuX2ludChuX2VuZGluZGV4LCAzKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFB0ck5ld1JhbmdlKHN0YXJ0LCBzdGFydGluZGV4LCBlbmQsIGVuZGluZGV4KTsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fc3RhcnQsIHN0YXJ0LCAwKTsKKyAgICAgICAgZGVzX2ludChuX3N0YXJ0aW5kZXgsIHN0YXJ0aW5kZXgsIDEpOworICAgICAgICBkZXNfeG1sTm9kZVB0cihuX2VuZCwgZW5kLCAyKTsKKyAgICAgICAgZGVzX2ludChuX2VuZGluZGV4LCBlbmRpbmRleCwgMyk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyTmV3UmFuZ2UiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RhcnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX3N0YXJ0aW5kZXgpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuZCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5kaW5kZXgpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0KHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXRfdmFsOworICAgIHhtbE5vZGVQdHIgc3RhcnQ7IC8qIHRoZSBzdGFydGluZyBub2RlICovCisgICAgaW50IG5fc3RhcnQ7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgZW5kOyAvKiB0aGUgZW5kaW5nIG9iamVjdCAqLworICAgIGludCBuX2VuZDsKKworICAgIGZvciAobl9zdGFydCA9IDA7bl9zdGFydCA8IGdlbl9uYl94bWxOb2RlUHRyO25fc3RhcnQrKykgeworICAgIGZvciAobl9lbmQgPSAwO25fZW5kIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fZW5kKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RhcnQgPSBnZW5feG1sTm9kZVB0cihuX3N0YXJ0LCAwKTsKKyAgICAgICAgZW5kID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fZW5kLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdChzdGFydCwgZW5kKTsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fc3RhcnQsIHN0YXJ0LCAwKTsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fZW5kLCBlbmQsIDEpOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFB0ck5ld1JhbmdlTm9kZU9iamVjdCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdGFydCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5kKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQdHJOZXdSYW5nZU5vZGVQb2ludCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHN0YXJ0OyAvKiB0aGUgc3RhcnRpbmcgbm9kZSAqLworICAgIGludCBuX3N0YXJ0OworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGVuZDsgLyogdGhlIGVuZGluZyBwb2ludCAqLworICAgIGludCBuX2VuZDsKKworICAgIGZvciAobl9zdGFydCA9IDA7bl9zdGFydCA8IGdlbl9uYl94bWxOb2RlUHRyO25fc3RhcnQrKykgeworICAgIGZvciAobl9lbmQgPSAwO25fZW5kIDwgZ2VuX25iX3htbFhQYXRoT2JqZWN0UHRyO25fZW5kKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RhcnQgPSBnZW5feG1sTm9kZVB0cihuX3N0YXJ0LCAwKTsKKyAgICAgICAgZW5kID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fZW5kLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50KHN0YXJ0LCBlbmQpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9zdGFydCwgc3RhcnQsIDApOworICAgICAgICBkZXNfeG1sWFBhdGhPYmplY3RQdHIobl9lbmQsIGVuZCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RhcnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUHRyTmV3UmFuZ2VOb2Rlcyh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxOb2RlUHRyIHN0YXJ0OyAvKiB0aGUgc3RhcnRpbmcgbm9kZSAqLworICAgIGludCBuX3N0YXJ0OworICAgIHhtbE5vZGVQdHIgZW5kOyAvKiB0aGUgZW5kaW5nIG5vZGUgKi8KKyAgICBpbnQgbl9lbmQ7CisKKyAgICBmb3IgKG5fc3RhcnQgPSAwO25fc3RhcnQgPCBnZW5fbmJfeG1sTm9kZVB0cjtuX3N0YXJ0KyspIHsKKyAgICBmb3IgKG5fZW5kID0gMDtuX2VuZCA8IGdlbl9uYl94bWxOb2RlUHRyO25fZW5kKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RhcnQgPSBnZW5feG1sTm9kZVB0cihuX3N0YXJ0LCAwKTsKKyAgICAgICAgZW5kID0gZ2VuX3htbE5vZGVQdHIobl9lbmQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUHRyTmV3UmFuZ2VOb2RlcyhzdGFydCwgZW5kKTsKKyAgICAgICAgZGVzcmV0X3htbFhQYXRoT2JqZWN0UHRyKHJldF92YWwpOworICAgICAgICBjYWxsX3Rlc3RzKys7CisgICAgICAgIGRlc194bWxOb2RlUHRyKG5fc3RhcnQsIHN0YXJ0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9lbmQsIGVuZCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyTmV3UmFuZ2VOb2RlcyIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl9zdGFydCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fZW5kKTsKKyAgICAgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb25fdGVzdHMrKzsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KKworCitzdGF0aWMgaW50Cit0ZXN0X3htbFhQdHJOZXdSYW5nZVBvaW50Tm9kZSh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBzdGFydDsgLyogdGhlIHN0YXJ0aW5nIHBvaW50ICovCisgICAgaW50IG5fc3RhcnQ7CisgICAgeG1sTm9kZVB0ciBlbmQ7IC8qIHRoZSBlbmRpbmcgbm9kZSAqLworICAgIGludCBuX2VuZDsKKworICAgIGZvciAobl9zdGFydCA9IDA7bl9zdGFydCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3N0YXJ0KyspIHsKKyAgICBmb3IgKG5fZW5kID0gMDtuX2VuZCA8IGdlbl9uYl94bWxOb2RlUHRyO25fZW5kKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgc3RhcnQgPSBnZW5feG1sWFBhdGhPYmplY3RQdHIobl9zdGFydCwgMCk7CisgICAgICAgIGVuZCA9IGdlbl94bWxOb2RlUHRyKG5fZW5kLCAxKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFB0ck5ld1JhbmdlUG9pbnROb2RlKHN0YXJ0LCBlbmQpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoT2JqZWN0UHRyKG5fc3RhcnQsIHN0YXJ0LCAwKTsKKyAgICAgICAgZGVzX3htbE5vZGVQdHIobl9lbmQsIGVuZCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RhcnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUHRyTmV3UmFuZ2VQb2ludHModm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9YUFRSX0VOQUJMRUQpCisgICAgaW50IG1lbV9iYXNlOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldF92YWw7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgc3RhcnQ7IC8qIHRoZSBzdGFydGluZyBwb2ludCAqLworICAgIGludCBuX3N0YXJ0OworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGVuZDsgLyogdGhlIGVuZGluZyBwb2ludCAqLworICAgIGludCBuX2VuZDsKKworICAgIGZvciAobl9zdGFydCA9IDA7bl9zdGFydCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX3N0YXJ0KyspIHsKKyAgICBmb3IgKG5fZW5kID0gMDtuX2VuZCA8IGdlbl9uYl94bWxYUGF0aE9iamVjdFB0cjtuX2VuZCsrKSB7CisgICAgICAgIG1lbV9iYXNlID0geG1sTWVtQmxvY2tzKCk7CisgICAgICAgIHN0YXJ0ID0gZ2VuX3htbFhQYXRoT2JqZWN0UHRyKG5fc3RhcnQsIDApOworICAgICAgICBlbmQgPSBnZW5feG1sWFBhdGhPYmplY3RQdHIobl9lbmQsIDEpOworCisgICAgICAgIHJldF92YWwgPSB4bWxYUHRyTmV3UmFuZ2VQb2ludHMoc3RhcnQsIGVuZCk7CisgICAgICAgIGRlc3JldF94bWxYUGF0aE9iamVjdFB0cihyZXRfdmFsKTsKKyAgICAgICAgY2FsbF90ZXN0cysrOworICAgICAgICBkZXNfeG1sWFBhdGhPYmplY3RQdHIobl9zdGFydCwgc3RhcnQsIDApOworICAgICAgICBkZXNfeG1sWFBhdGhPYmplY3RQdHIobl9lbmQsIGVuZCwgMSk7CisgICAgICAgIHhtbFJlc2V0TGFzdEVycm9yKCk7CisgICAgICAgIGlmIChtZW1fYmFzZSAhPSB4bWxNZW1CbG9ja3MoKSkgeworICAgICAgICAgICAgcHJpbnRmKCJMZWFrIG9mICVkIGJsb2NrcyBmb3VuZCBpbiB4bWxYUHRyTmV3UmFuZ2VQb2ludHMiLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fc3RhcnQpOworICAgICAgICAgICAgcHJpbnRmKCIgJWQiLCBuX2VuZCk7CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKKworc3RhdGljIGludAordGVzdF94bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uKHZvaWQpIHsKKyAgICBpbnQgdGVzdF9yZXQgPSAwOworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorICAgIGludCBtZW1fYmFzZTsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dDsgLyogdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0ICovCisgICAgaW50IG5fY3R4dDsKKyAgICBpbnQgbmFyZ3M7IC8qIHRoZSBudW1iZXIgb2YgYXJncyAqLworICAgIGludCBuX25hcmdzOworCisgICAgZm9yIChuX2N0eHQgPSAwO25fY3R4dCA8IGdlbl9uYl94bWxYUGF0aFBhcnNlckNvbnRleHRQdHI7bl9jdHh0KyspIHsKKyAgICBmb3IgKG5fbmFyZ3MgPSAwO25fbmFyZ3MgPCBnZW5fbmJfaW50O25fbmFyZ3MrKykgeworICAgICAgICBtZW1fYmFzZSA9IHhtbE1lbUJsb2NrcygpOworICAgICAgICBjdHh0ID0gZ2VuX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIDApOworICAgICAgICBuYXJncyA9IGdlbl9pbnQobl9uYXJncywgMSk7CisKKyAgICAgICAgeG1sWFB0clJhbmdlVG9GdW5jdGlvbihjdHh0LCBuYXJncyk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cihuX2N0eHQsIGN0eHQsIDApOworICAgICAgICBkZXNfaW50KG5fbmFyZ3MsIG5hcmdzLCAxKTsKKyAgICAgICAgeG1sUmVzZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKG1lbV9iYXNlICE9IHhtbE1lbUJsb2NrcygpKSB7CisgICAgICAgICAgICBwcmludGYoIkxlYWsgb2YgJWQgYmxvY2tzIGZvdW5kIGluIHhtbFhQdHJSYW5nZVRvRnVuY3Rpb24iLAorCSAgICAgICAgICAgeG1sTWVtQmxvY2tzKCkgLSBtZW1fYmFzZSk7CisJICAgIHRlc3RfcmV0Kys7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fY3R4dCk7CisgICAgICAgICAgICBwcmludGYoIiAlZCIsIG5fbmFyZ3MpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbl90ZXN0cysrOworI2VuZGlmCisKKyAgICByZXR1cm4odGVzdF9yZXQpOworfQorCisKK3N0YXRpYyBpbnQKK3Rlc3RfeG1sWFB0cldyYXBMb2NhdGlvblNldCh2b2lkKSB7CisgICAgaW50IHRlc3RfcmV0ID0gMDsKKworI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKyAgICBpbnQgbWVtX2Jhc2U7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0X3ZhbDsKKyAgICB4bWxMb2NhdGlvblNldFB0ciB2YWw7IC8qIHRoZSBMb2NhdGlvblNldCB2YWx1ZSAqLworICAgIGludCBuX3ZhbDsKKworICAgIGZvciAobl92YWwgPSAwO25fdmFsIDwgZ2VuX25iX3htbExvY2F0aW9uU2V0UHRyO25fdmFsKyspIHsKKyAgICAgICAgbWVtX2Jhc2UgPSB4bWxNZW1CbG9ja3MoKTsKKyAgICAgICAgdmFsID0gZ2VuX3htbExvY2F0aW9uU2V0UHRyKG5fdmFsLCAwKTsKKworICAgICAgICByZXRfdmFsID0geG1sWFB0cldyYXBMb2NhdGlvblNldCh2YWwpOworICAgICAgICBkZXNyZXRfeG1sWFBhdGhPYmplY3RQdHIocmV0X3ZhbCk7CisgICAgICAgIGNhbGxfdGVzdHMrKzsKKyAgICAgICAgZGVzX3htbExvY2F0aW9uU2V0UHRyKG5fdmFsLCB2YWwsIDApOworICAgICAgICB4bWxSZXNldExhc3RFcnJvcigpOworICAgICAgICBpZiAobWVtX2Jhc2UgIT0geG1sTWVtQmxvY2tzKCkpIHsKKyAgICAgICAgICAgIHByaW50ZigiTGVhayBvZiAlZCBibG9ja3MgZm91bmQgaW4geG1sWFB0cldyYXBMb2NhdGlvblNldCIsCisJICAgICAgICAgICB4bWxNZW1CbG9ja3MoKSAtIG1lbV9iYXNlKTsKKwkgICAgdGVzdF9yZXQrKzsKKyAgICAgICAgICAgIHByaW50ZigiICVkIiwgbl92YWwpOworICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uX3Rlc3RzKys7CisjZW5kaWYKKworICAgIHJldHVybih0ZXN0X3JldCk7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfeHBvaW50ZXIodm9pZCkgeworICAgIGludCB0ZXN0X3JldCA9IDA7CisKKyAgICBpZiAocXVpZXQgPT0gMCkgcHJpbnRmKCJUZXN0aW5nIHhwb2ludGVyIDogMTcgb2YgMjEgZnVuY3Rpb25zIC4uLlxuIik7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUHRyQnVpbGROb2RlTGlzdCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFB0ckV2YWwoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJMb2NhdGlvblNldEFkZCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUHRyTG9jYXRpb25TZXREZWwoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJMb2NhdGlvblNldE1lcmdlKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUHRyTG9jYXRpb25TZXRSZW1vdmUoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJOZXdDb2xsYXBzZWRSYW5nZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFB0ck5ld0NvbnRleHQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUHRyTmV3UmFuZ2UoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJOZXdSYW5nZU5vZGVQb2ludCgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFB0ck5ld1JhbmdlTm9kZXMoKTsKKyAgICB0ZXN0X3JldCArPSB0ZXN0X3htbFhQdHJOZXdSYW5nZVBvaW50Tm9kZSgpOworICAgIHRlc3RfcmV0ICs9IHRlc3RfeG1sWFB0ck5ld1JhbmdlUG9pbnRzKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUHRyUmFuZ2VUb0Z1bmN0aW9uKCk7CisgICAgdGVzdF9yZXQgKz0gdGVzdF94bWxYUHRyV3JhcExvY2F0aW9uU2V0KCk7CisKKyAgICBpZiAodGVzdF9yZXQgIT0gMCkKKwlwcmludGYoIk1vZHVsZSB4cG9pbnRlcjogJWQgZXJyb3JzXG4iLCB0ZXN0X3JldCk7CisgICAgcmV0dXJuKHRlc3RfcmV0KTsKK30KK3N0YXRpYyBpbnQKK3Rlc3RfbW9kdWxlKGNvbnN0IGNoYXIgKm1vZHVsZSkgeworICAgIGlmICghc3RyY21wKG1vZHVsZSwgIkhUTUxwYXJzZXIiKSkgcmV0dXJuKHRlc3RfSFRNTHBhcnNlcigpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJIVE1MdHJlZSIpKSByZXR1cm4odGVzdF9IVE1MdHJlZSgpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJTQVgyIikpIHJldHVybih0ZXN0X1NBWDIoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAiYzE0biIpKSByZXR1cm4odGVzdF9jMTRuKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgImNhdGFsb2ciKSkgcmV0dXJuKHRlc3RfY2F0YWxvZygpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJjaHZhbGlkIikpIHJldHVybih0ZXN0X2NodmFsaWQoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAiZGVidWdYTUwiKSkgcmV0dXJuKHRlc3RfZGVidWdYTUwoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAiZGljdCIpKSByZXR1cm4odGVzdF9kaWN0KCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgImVuY29kaW5nIikpIHJldHVybih0ZXN0X2VuY29kaW5nKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgImVudGl0aWVzIikpIHJldHVybih0ZXN0X2VudGl0aWVzKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgImhhc2giKSkgcmV0dXJuKHRlc3RfaGFzaCgpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJsaXN0IikpIHJldHVybih0ZXN0X2xpc3QoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAibmFub2Z0cCIpKSByZXR1cm4odGVzdF9uYW5vZnRwKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgIm5hbm9odHRwIikpIHJldHVybih0ZXN0X25hbm9odHRwKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgInBhcnNlciIpKSByZXR1cm4odGVzdF9wYXJzZXIoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAicGFyc2VySW50ZXJuYWxzIikpIHJldHVybih0ZXN0X3BhcnNlckludGVybmFscygpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJwYXR0ZXJuIikpIHJldHVybih0ZXN0X3BhdHRlcm4oKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAicmVsYXhuZyIpKSByZXR1cm4odGVzdF9yZWxheG5nKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgInNjaGVtYXNJbnRlcm5hbHMiKSkgcmV0dXJuKHRlc3Rfc2NoZW1hc0ludGVybmFscygpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJzY2hlbWF0cm9uIikpIHJldHVybih0ZXN0X3NjaGVtYXRyb24oKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAidHJlZSIpKSByZXR1cm4odGVzdF90cmVlKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgInVyaSIpKSByZXR1cm4odGVzdF91cmkoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAidmFsaWQiKSkgcmV0dXJuKHRlc3RfdmFsaWQoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieGluY2x1ZGUiKSkgcmV0dXJuKHRlc3RfeGluY2x1ZGUoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieG1sSU8iKSkgcmV0dXJuKHRlc3RfeG1sSU8oKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieG1sYXV0b21hdGEiKSkgcmV0dXJuKHRlc3RfeG1sYXV0b21hdGEoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieG1sZXJyb3IiKSkgcmV0dXJuKHRlc3RfeG1sZXJyb3IoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieG1sbW9kdWxlIikpIHJldHVybih0ZXN0X3htbG1vZHVsZSgpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJ4bWxyZWFkZXIiKSkgcmV0dXJuKHRlc3RfeG1scmVhZGVyKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgInhtbHJlZ2V4cCIpKSByZXR1cm4odGVzdF94bWxyZWdleHAoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieG1sc2F2ZSIpKSByZXR1cm4odGVzdF94bWxzYXZlKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgInhtbHNjaGVtYXMiKSkgcmV0dXJuKHRlc3RfeG1sc2NoZW1hcygpKTsKKyAgICBpZiAoIXN0cmNtcChtb2R1bGUsICJ4bWxzY2hlbWFzdHlwZXMiKSkgcmV0dXJuKHRlc3RfeG1sc2NoZW1hc3R5cGVzKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgInhtbHN0cmluZyIpKSByZXR1cm4odGVzdF94bWxzdHJpbmcoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieG1sdW5pY29kZSIpKSByZXR1cm4odGVzdF94bWx1bmljb2RlKCkpOworICAgIGlmICghc3RyY21wKG1vZHVsZSwgInhtbHdyaXRlciIpKSByZXR1cm4odGVzdF94bWx3cml0ZXIoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieHBhdGgiKSkgcmV0dXJuKHRlc3RfeHBhdGgoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieHBhdGhJbnRlcm5hbHMiKSkgcmV0dXJuKHRlc3RfeHBhdGhJbnRlcm5hbHMoKSk7CisgICAgaWYgKCFzdHJjbXAobW9kdWxlLCAieHBvaW50ZXIiKSkgcmV0dXJuKHRlc3RfeHBvaW50ZXIoKSk7CisgICAgcmV0dXJuKDApOworfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0Y2hhci5jIGIvbGlieG1sMi0yLjcuNy90ZXN0Y2hhci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZmQ5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RjaGFyLmMKQEAgLTAsMCArMSw2MTUgQEAKKy8qKgorICogVGVzdCB0aGUgVVRGLTggZGVjb2Rpbmcgcm91dGluZXMKKyAqCisgKiBhdXRob3I6IERhbmllbCBWZWlsbGFyZAorICogY29weTogc2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisKK2ludCBsYXN0RXJyb3I7CisKK3N0YXRpYyB2b2lkIGVycm9ySGFuZGxlcih2b2lkICp1bnVzZWQsIHhtbEVycm9yUHRyIGVycikgeworICAgIGlmICgodW51c2VkID09IE5VTEwpICYmIChlcnIgIT0gTlVMTCkgJiYgKGxhc3RFcnJvciA9PSAwKSkgeworICAgICAgICBsYXN0RXJyb3IgPSBlcnItPmNvZGU7CisgICAgfQorfQorCitjaGFyIGRvY3VtZW50MVsxMDBdID0gIjxkb2M+WFhYWDwvZG9jPiI7CitjaGFyIGRvY3VtZW50MlsxMDBdID0gIjxkb2MgZm9vPSdYWFhYJy8+IjsKKworc3RhdGljIHZvaWQgdGVzdERvY3VtZW50UmFuZ2VCeXRlMSh4bWxQYXJzZXJDdHh0UHRyIGN0eHQsIGNoYXIgKmRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgaW50IGxlbiwgIGNoYXIgKmRhdGEsIGludCBmb3JiaWQxLCBpbnQgZm9yYmlkMikgeworICAgIGludCBpOworICAgIHhtbERvY1B0ciByZXM7CisKKyAgICBmb3IgKGkgPSAwO2kgPD0gMHhGRjtpKyspIHsKKwlsYXN0RXJyb3IgPSAwOworCXhtbEN0eHRSZXNldChjdHh0KTsKKworICAgICAgICBkYXRhWzBdID0gaTsKKworCXJlcyA9IHhtbFJlYWRNZW1vcnkoZG9jdW1lbnQsIGxlbiwgInRlc3QiLCBOVUxMLCAwKTsKKworCWlmICgoaSA9PSBmb3JiaWQxKSB8fCAoaSA9PSBmb3JiaWQyKSkgeworCSAgICBpZiAoKGxhc3RFcnJvciA9PSAwKSB8fCAocmVzICE9IE5VTEwpKQorCSAgICAgICAgZnByaW50ZihzdGRlcnIsCisJCSAgICAiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGUgMHglMDJYOiAlY1xuIiwKKwkJICAgICAgICBpLCBpKTsKKwl9CisKKwllbHNlIGlmICgoaSA9PSAnPCcpIHx8IChpID09ICcmJykpIHsKKwkgICAgaWYgKChsYXN0RXJyb3IgPT0gMCkgfHwgKHJlcyAhPSBOVUxMKSkKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLAorCQkgICAgIkZhaWxlZCB0byBkZXRlY3QgaWxsZWdhbCBjaGFyICVjIGZvciBCeXRlIDB4JTAyWFxuIiwgaSwgaSk7CisJfQorCWVsc2UgaWYgKCgoaSA8IDB4MjApIHx8IChpID49IDB4ODApKSAmJgorCSAgICAoaSAhPSAweDkpICYmIChpICE9IDB4QSkgJiYgKGkgIT0gMHhEKSkgeworCSAgICBpZiAoKGxhc3RFcnJvciAhPSBYTUxfRVJSX0lOVkFMSURfQ0hBUikgJiYgKHJlcyAhPSBOVUxMKSkKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLAorCQkgICAgIkZhaWxlZCB0byBkZXRlY3QgaW52YWxpZCBjaGFyIGZvciBCeXRlIDB4JTAyWFxuIiwgaSk7CisJfQorCWVsc2UgaWYgKHJlcyA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLAorCQkiRmFpbGVkIHRvIHBhcnNlIHZhbGlkIGNoYXIgZm9yIEJ5dGUgMHglMDJYIDogJWNcbiIsIGksIGkpOworCX0KKwlpZiAocmVzICE9IE5VTEwpCisJICAgIHhtbEZyZWVEb2MocmVzKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3REb2N1bWVudFJhbmdlQnl0ZTIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjaGFyICpkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgIGludCBsZW4sICBjaGFyICpkYXRhKSB7CisgICAgaW50IGksIGo7CisgICAgeG1sRG9jUHRyIHJlczsKKworICAgIGZvciAoaSA9IDB4ODA7aSA8PSAweEZGO2krKykgeworICAgIGZvciAoaiA9IDA7aiA8PSAweEZGO2orKykgeworCWxhc3RFcnJvciA9IDA7CisJeG1sQ3R4dFJlc2V0KGN0eHQpOworCisgICAgICAgIGRhdGFbMF0gPSBpOworICAgICAgICBkYXRhWzFdID0gajsKKworCXJlcyA9IHhtbFJlYWRNZW1vcnkoZG9jdW1lbnQsIGxlbiwgInRlc3QiLCBOVUxMLCAwKTsKKworCS8qIGlmIGZpcnN0IGJpdCBvZiBmaXJzdCBjaGFyIGlzIHNldCwgdGhlbiBzZWNvbmQgYml0IG11c3QgdG9vICovCisJaWYgKChpICYgMHg4MCkgJiYgKChpICYgMHg0MCkgPT0gMCkpIHsKKwkgICAgaWYgKChsYXN0RXJyb3IgPT0gMCkgfHwgKHJlcyAhPSBOVUxMKSkKKwkJZnByaW50ZihzdGRlcnIsCisJCSJGYWlsZWQgdG8gZGV0ZWN0IGludmFsaWQgY2hhciBmb3IgQnl0ZXMgMHglMDJYIDB4JTAyWFxuIiwKKwkJCWksIGopOworCX0KKworCS8qCisJICogaWYgZmlyc3QgYml0IG9mIGZpcnN0IGNoYXIgaXMgc2V0LCB0aGVuIHNlY29uZCBjaGFyIGZpcnN0CisJICogYml0cyBtdXN0IGJlIDEwCisJICovCisJZWxzZSBpZiAoKGkgJiAweDgwKSAmJiAoKGogJiAweEMwKSAhPSAweDgwKSkgeworCSAgICBpZiAoKGxhc3RFcnJvciA9PSAwKSB8fCAocmVzICE9IE5VTEwpKQorCQlmcHJpbnRmKHN0ZGVyciwKKwkgICAgIkZhaWxlZCB0byBkZXRlY3QgaW52YWxpZCBjaGFyIGZvciBCeXRlcyAweCUwMlggMHglMDJYXG4iLAorCQkJaSwgaik7CisJfQorCisJLyoKKwkgKiBpZiB1c2luZyBhIDIgYnl0ZSBlbmNvZGluZyB0aGVuIHRoZSB2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIKKwkgKiB0aGFuIDB4ODAsIGkuZS4gb25lIG9mIGJpdHMgNSB0byAxIG9mIGkgbXVzdCBiZSBzZXQKKwkgKi8KKwllbHNlIGlmICgoaSAmIDB4ODApICYmICgoaSAmIDB4MUUpID09IDApKSB7CisJICAgIGlmICgobGFzdEVycm9yID09IDApIHx8IChyZXMgIT0gTlVMTCkpCisJCWZwcmludGYoc3RkZXJyLAorCSAgICAiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlhcbiIsCisJCQlpLCBqKTsKKwl9CisKKwkvKgorCSAqIGlmIHRoaXJkIGJpdCBvZiBmaXJzdCBjaGFyIGlzIHNldCwgdGhlbiB0aGUgc2VxdWVuY2Ugd291bGQgbmVlZAorCSAqIGF0IGxlYXN0IDMgYnl0ZXMsIGJ1dCB3ZSBnaXZlIG9ubHkgMiAhCisJICovCisJZWxzZSBpZiAoKGkgJiAweEUwKSA9PSAweEUwKSB7CisJICAgIGlmICgobGFzdEVycm9yID09IDApIHx8IChyZXMgIT0gTlVMTCkpCisJCWZwcmludGYoc3RkZXJyLAorCSAgICAiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlggMHgwMFxuIiwKKwkJCWksIGopOworCX0KKworCS8qCisJICogV2Ugc2hvdWxkIHNlZSBubyBlcnJvciBpbiByZW1hbmluZyBjYXNlcworCSAqLworCWVsc2UgaWYgKChsYXN0RXJyb3IgIT0gMCkgfHwgKHJlcyA9PSBOVUxMKSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgCisJCSJGYWlsZWQgdG8gcGFyc2UgZG9jdW1lbnQgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlhcbiIsIGksIGopOworCX0KKwlpZiAocmVzICE9IE5VTEwpCisJICAgIHhtbEZyZWVEb2MocmVzKTsKKyAgICB9CisgICAgfQorfQorCisvKioKKyAqIHRlc3REb2N1bWVudFJhbmdlczoKKyAqCisgKiBUZXN0IHRoZSBjb3JyZWN0IFVURjggY2hhcmFjdGVyIHBhcnNpbmcgaW4gY29udGV4dCBvZiBYTUwgZG9jdW1lbnRzCisgKiBUaG9zZSBhcmUgaW4tY29udGV4dCBpbmplY3Rpb24gdGVzdHMgY2hlY2tpbmcgdGhlIHBhcnNlciBiZWhhdmlvdXIgb24KKyAqIGVkZ2UgY2FzZSB2YWx1ZXMgYXQgZGlmZmVyZW50IHBvaW50IGluIGNvbnRlbnQsIGJlZ2lubmluZyBhbmQgZW5kIG9mCisgKiBDREFUQSBpbiB0ZXh0IG9yIGluIGF0dHJpYnV0ZSB2YWx1ZXMuCisgKi8KKworc3RhdGljIHZvaWQgdGVzdERvY3VtZW50UmFuZ2VzKHZvaWQpIHsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgY2hhciAqZGF0YTsKKworICAgIC8qCisgICAgICogU2V0IHVwIGEgcGFyc2luZyBjb250ZXh0IHVzaW5nIHRoZSBmaXJzdCBkb2N1bWVudCBhcworICAgICAqIHRoZSBjdXJyZW50IGlucHV0IHNvdXJjZS4KKyAgICAgKi8KKyAgICBjdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gYWxsb2NhdGUgcGFyc2VyIGNvbnRleHRcbiIpOworCXJldHVybjsKKyAgICB9CisKKyAgICBwcmludGYoInRlc3RpbmcgMSBieXRlIGNoYXIgaW4gZG9jdW1lbnQ6IDEiKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBkYXRhID0gJmRvY3VtZW50MVs1XTsKKyAgICBkYXRhWzBdID0gJyAnOworICAgIGRhdGFbMV0gPSAnICc7CisgICAgZGF0YVsyXSA9ICcgJzsKKyAgICBkYXRhWzNdID0gJyAnOworICAgIC8qIHRlc3QgMSBieXRlIGluamVjdGlvbiBhdCBiZWdpbm5pbmcgb2YgYXJlYSAqLworICAgIHRlc3REb2N1bWVudFJhbmdlQnl0ZTEoY3R4dCwgJmRvY3VtZW50MVswXSwgc3RybGVuKGRvY3VtZW50MSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCAtMSwgLTEpOworICAgIHByaW50ZigiIDIiKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBkYXRhWzBdID0gJyAnOworICAgIGRhdGFbMV0gPSAnICc7CisgICAgZGF0YVsyXSA9ICcgJzsKKyAgICBkYXRhWzNdID0gJyAnOworICAgIC8qIHRlc3QgMSBieXRlIGluamVjdGlvbiBhdCBlbmQgb2YgYXJlYSAqLworICAgIHRlc3REb2N1bWVudFJhbmdlQnl0ZTEoY3R4dCwgJmRvY3VtZW50MVswXSwgc3RybGVuKGRvY3VtZW50MSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhICsgMywgLTEsIC0xKTsKKworICAgIHByaW50ZigiIDMiKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBkYXRhID0gJmRvY3VtZW50MlsxMF07CisgICAgZGF0YVswXSA9ICcgJzsKKyAgICBkYXRhWzFdID0gJyAnOworICAgIGRhdGFbMl0gPSAnICc7CisgICAgZGF0YVszXSA9ICcgJzsKKyAgICAvKiB0ZXN0IDEgYnl0ZSBpbmplY3Rpb24gYXQgYmVnaW5uaW5nIG9mIGFyZWEgKi8KKyAgICB0ZXN0RG9jdW1lbnRSYW5nZUJ5dGUxKGN0eHQsICZkb2N1bWVudDJbMF0sIHN0cmxlbihkb2N1bWVudDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgJ1wnJywgLTEpOworICAgIHByaW50ZigiIDQiKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBkYXRhWzBdID0gJyAnOworICAgIGRhdGFbMV0gPSAnICc7CisgICAgZGF0YVsyXSA9ICcgJzsKKyAgICBkYXRhWzNdID0gJyAnOworICAgIC8qIHRlc3QgMSBieXRlIGluamVjdGlvbiBhdCBlbmQgb2YgYXJlYSAqLworICAgIHRlc3REb2N1bWVudFJhbmdlQnl0ZTEoY3R4dCwgJmRvY3VtZW50MlswXSwgc3RybGVuKGRvY3VtZW50MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhICsgMywgJ1wnJywgLTEpOworICAgIHByaW50ZigiIGRvbmVcbiIpOworCisgICAgcHJpbnRmKCJ0ZXN0aW5nIDIgYnl0ZSBjaGFyIGluIGRvY3VtZW50OiAxIik7CisgICAgZmZsdXNoKHN0ZG91dCk7CisgICAgZGF0YSA9ICZkb2N1bWVudDFbNV07CisgICAgZGF0YVswXSA9ICcgJzsKKyAgICBkYXRhWzFdID0gJyAnOworICAgIGRhdGFbMl0gPSAnICc7CisgICAgZGF0YVszXSA9ICcgJzsKKyAgICAvKiB0ZXN0IDIgYnl0ZSBpbmplY3Rpb24gYXQgYmVnaW5uaW5nIG9mIGFyZWEgKi8KKyAgICB0ZXN0RG9jdW1lbnRSYW5nZUJ5dGUyKGN0eHQsICZkb2N1bWVudDFbMF0sIHN0cmxlbihkb2N1bWVudDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSk7CisgICAgcHJpbnRmKCIgMiIpOworICAgIGZmbHVzaChzdGRvdXQpOworICAgIGRhdGFbMF0gPSAnICc7CisgICAgZGF0YVsxXSA9ICcgJzsKKyAgICBkYXRhWzJdID0gJyAnOworICAgIGRhdGFbM10gPSAnICc7CisgICAgLyogdGVzdCAyIGJ5dGUgaW5qZWN0aW9uIGF0IGVuZCBvZiBhcmVhICovCisgICAgdGVzdERvY3VtZW50UmFuZ2VCeXRlMihjdHh0LCAmZG9jdW1lbnQxWzBdLCBzdHJsZW4oZG9jdW1lbnQxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgKyAyKTsKKworICAgIHByaW50ZigiIDMiKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICBkYXRhID0gJmRvY3VtZW50MlsxMF07CisgICAgZGF0YVswXSA9ICcgJzsKKyAgICBkYXRhWzFdID0gJyAnOworICAgIGRhdGFbMl0gPSAnICc7CisgICAgZGF0YVszXSA9ICcgJzsKKyAgICAvKiB0ZXN0IDIgYnl0ZSBpbmplY3Rpb24gYXQgYmVnaW5uaW5nIG9mIGFyZWEgKi8KKyAgICB0ZXN0RG9jdW1lbnRSYW5nZUJ5dGUyKGN0eHQsICZkb2N1bWVudDJbMF0sIHN0cmxlbihkb2N1bWVudDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSk7CisgICAgcHJpbnRmKCIgNCIpOworICAgIGZmbHVzaChzdGRvdXQpOworICAgIGRhdGFbMF0gPSAnICc7CisgICAgZGF0YVsxXSA9ICcgJzsKKyAgICBkYXRhWzJdID0gJyAnOworICAgIGRhdGFbM10gPSAnICc7CisgICAgLyogdGVzdCAyIGJ5dGUgaW5qZWN0aW9uIGF0IGVuZCBvZiBhcmVhICovCisgICAgdGVzdERvY3VtZW50UmFuZ2VCeXRlMihjdHh0LCAmZG9jdW1lbnQyWzBdLCBzdHJsZW4oZG9jdW1lbnQyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgKyAyKTsKKyAgICBwcmludGYoIiBkb25lXG4iKTsKKworICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0Q2hhclJhbmdlQnl0ZTEoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjaGFyICpkYXRhKSB7CisgICAgaW50IGkgPSAwOworICAgIGludCBsZW4sIGM7CisKKyAgICBkYXRhWzFdID0gMDsKKyAgICBkYXRhWzJdID0gMDsKKyAgICBkYXRhWzNdID0gMDsKKyAgICBmb3IgKGkgPSAwO2kgPD0gMHhGRjtpKyspIHsKKyAgICAgICAgZGF0YVswXSA9IGk7CisJY3R4dC0+Y2hhcnNldCA9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjg7CisKKwlsYXN0RXJyb3IgPSAwOworICAgICAgICBjID0geG1sQ3VycmVudENoYXIoY3R4dCwgJmxlbik7CisJaWYgKChpID09IDApIHx8IChpID49IDB4ODApKSB7CisJICAgIC8qIHdlIG11c3Qgc2VlIGFuIGVycm9yIHRoZXJlICovCisJICAgIGlmIChsYXN0RXJyb3IgIT0gWE1MX0VSUl9JTlZBTElEX0NIQVIpCisJICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKwkJICAgICJGYWlsZWQgdG8gZGV0ZWN0IGludmFsaWQgY2hhciBmb3IgQnl0ZSAweCUwMlhcbiIsIGkpOworCX0gZWxzZSBpZiAoaSA9PSAweEQpIHsKKwkgICAgaWYgKChjICE9IDB4QSkgfHwgKGxlbiAhPSAxKSkKKwkJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gY29udmVydCBjaGFyIGZvciBCeXRlIDB4JTAyWFxuIiwgaSk7CisJfSBlbHNlIGlmICgoYyAhPSBpKSB8fCAobGVuICE9IDEpKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlIGNoYXIgZm9yIEJ5dGUgMHglMDJYXG4iLCBpKTsKKwl9CisgICAgfQorfQorCitzdGF0aWMgdm9pZCB0ZXN0Q2hhclJhbmdlQnl0ZTIoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCBjaGFyICpkYXRhKSB7CisgICAgaW50IGksIGo7CisgICAgaW50IGxlbiwgYzsKKworICAgIGRhdGFbMl0gPSAwOworICAgIGRhdGFbM10gPSAwOworICAgIGZvciAoaSA9IDB4ODA7aSA8PSAweEZGO2krKykgeworCWZvciAoaiA9IDA7aiA8PSAweEZGO2orKykgeworCSAgICBkYXRhWzBdID0gaTsKKwkgICAgZGF0YVsxXSA9IGo7CisJICAgIGN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4OworCisJICAgIGxhc3RFcnJvciA9IDA7CisJICAgIGMgPSB4bWxDdXJyZW50Q2hhcihjdHh0LCAmbGVuKTsKKworCSAgICAvKiBpZiBmaXJzdCBiaXQgb2YgZmlyc3QgY2hhciBpcyBzZXQsIHRoZW4gc2Vjb25kIGJpdCBtdXN0IHRvbyAqLworCSAgICBpZiAoKGkgJiAweDgwKSAmJiAoKGkgJiAweDQwKSA9PSAwKSkgeworCQlpZiAobGFzdEVycm9yICE9IFhNTF9FUlJfSU5WQUxJRF9DSEFSKQorCQkgICAgZnByaW50ZihzdGRlcnIsCisJCSAgICAiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlhcbiIsCisJCSAgICAgICAgICAgIGksIGopOworCSAgICB9CisKKwkgICAgLyoKKwkgICAgICogaWYgZmlyc3QgYml0IG9mIGZpcnN0IGNoYXIgaXMgc2V0LCB0aGVuIHNlY29uZCBjaGFyIGZpcnN0CisJICAgICAqIGJpdHMgbXVzdCBiZSAxMAorCSAgICAgKi8KKwkgICAgZWxzZSBpZiAoKGkgJiAweDgwKSAmJiAoKGogJiAweEMwKSAhPSAweDgwKSkgeworCQlpZiAobGFzdEVycm9yICE9IFhNTF9FUlJfSU5WQUxJRF9DSEFSKQorCQkgICAgZnByaW50ZihzdGRlcnIsCisJCSJGYWlsZWQgdG8gZGV0ZWN0IGludmFsaWQgY2hhciBmb3IgQnl0ZXMgMHglMDJYIDB4JTAyWDogJWRcbiIsCisJCSAgICAgICAgICAgIGksIGosIGMpOworCSAgICB9CisKKwkgICAgLyoKKwkgICAgICogaWYgdXNpbmcgYSAyIGJ5dGUgZW5jb2RpbmcgdGhlbiB0aGUgdmFsdWUgbXVzdCBiZSBncmVhdGVyCisJICAgICAqIHRoYW4gMHg4MCwgaS5lLiBvbmUgb2YgYml0cyA1IHRvIDEgb2YgaSBtdXN0IGJlIHNldAorCSAgICAgKi8KKwkgICAgZWxzZSBpZiAoKGkgJiAweDgwKSAmJiAoKGkgJiAweDFFKSA9PSAwKSkgeworCQlpZiAobGFzdEVycm9yICE9IFhNTF9FUlJfSU5WQUxJRF9DSEFSKQorCQkgICAgZnByaW50ZihzdGRlcnIsCisJCSJGYWlsZWQgdG8gZGV0ZWN0IGludmFsaWQgY2hhciBmb3IgQnl0ZXMgMHglMDJYIDB4JTAyWDogJWRcbiIsCisJCSAgICAgICAgICAgIGksIGosIGMpOworCSAgICB9CisKKwkgICAgLyoKKwkgICAgICogaWYgdGhpcmQgYml0IG9mIGZpcnN0IGNoYXIgaXMgc2V0LCB0aGVuIHRoZSBzZXF1ZW5jZSB3b3VsZCBuZWVkCisJICAgICAqIGF0IGxlYXN0IDMgYnl0ZXMsIGJ1dCB3ZSBnaXZlIG9ubHkgMiAhCisJICAgICAqLworCSAgICBlbHNlIGlmICgoaSAmIDB4RTApID09IDB4RTApIHsKKwkJaWYgKGxhc3RFcnJvciAhPSBYTUxfRVJSX0lOVkFMSURfQ0hBUikKKwkJICAgIGZwcmludGYoc3RkZXJyLAorCQkiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlggMHgwMFxuIiwKKwkJICAgICAgICAgICAgaSwgaik7CisJICAgIH0KKworICAgICAgICAgICAgLyoKKwkgICAgICogV2Ugc2hvdWxkIHNlZSBubyBlcnJvciBpbiByZW1hbmluZyBjYXNlcworCSAgICAgKi8KKwkgICAgZWxzZSBpZiAoKGxhc3RFcnJvciAhPSAwKSB8fCAobGVuICE9IDIpKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkgICAgIkZhaWxlZCB0byBwYXJzZSBjaGFyIGZvciBCeXRlcyAweCUwMlggMHglMDJYXG4iLCBpLCBqKTsKKwkgICAgfQorCisgICAgICAgICAgICAvKgorCSAgICAgKiBGaW5hbGx5IGNoZWNrIHRoZSB2YWx1ZSBpcyByaWdodAorCSAgICAgKi8KKwkgICAgZWxzZSBpZiAoYyAhPSAoaiAmIDB4M0YpICsgKChpICYgMHgxRikgPDwgNikpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJIkZhaWxlZCB0byBwYXJzZSBjaGFyIGZvciBCeXRlcyAweCUwMlggMHglMDJYOiBleHBlY3QgJWQgZ290ICVkXG4iLAorCSAgICAgICAgICAgICAgICBpLCBqLCAoKGogJiAweDNGKSArICgoaSAmIDB4MUYpIDw8IDYpKSwgYyk7CisJICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIHZvaWQgdGVzdENoYXJSYW5nZUJ5dGUzKHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY2hhciAqZGF0YSkgeworICAgIGludCBpLCBqLCBrLCBLOworICAgIGludCBsZW4sIGM7CisgICAgdW5zaWduZWQgY2hhciBsb3dzWzZdID0gezAsIDB4ODAsIDB4ODEsIDB4QzEsIDB4RkYsIDB4QkZ9OworICAgIGludCB2YWx1ZTsKKworICAgIGRhdGFbM10gPSAwOworICAgIGZvciAoaSA9IDB4RTA7aSA8PSAweEZGO2krKykgeworICAgIGZvciAoaiA9IDA7aiA8PSAweEZGO2orKykgeworICAgIGZvciAoayA9IDA7ayA8IDY7aysrKSB7CisJZGF0YVswXSA9IGk7CisJZGF0YVsxXSA9IGo7CisJSyA9IGxvd3Nba107CisJZGF0YVsyXSA9IChjaGFyKSBLOworCXZhbHVlID0gKEsgJiAweDNGKSArICgoaiAmIDB4M0YpIDw8IDYpICsgKChpICYgMHhGKSA8PCAxMik7CisJY3R4dC0+Y2hhcnNldCA9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjg7CisKKwlsYXN0RXJyb3IgPSAwOworCWMgPSB4bWxDdXJyZW50Q2hhcihjdHh0LCAmbGVuKTsKKworCS8qCisJICogaWYgZm91cnRoIGJpdCBvZiBmaXJzdCBjaGFyIGlzIHNldCwgdGhlbiB0aGUgc2VxdWVuY2Ugd291bGQgbmVlZAorCSAqIGF0IGxlYXN0IDQgYnl0ZXMsIGJ1dCB3ZSBnaXZlIG9ubHkgMyAhCisJICovCisJaWYgKChpICYgMHhGMCkgPT0gMHhGMCkgeworCSAgICBpZiAobGFzdEVycm9yICE9IFhNTF9FUlJfSU5WQUxJRF9DSEFSKQorCQlmcHJpbnRmKHN0ZGVyciwKKwkiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlggMHglMDJYIDB4JTAyWFxuIiwKKwkJCWksIGosIEssIGRhdGFbM10pOworCX0KKworICAgICAgICAvKgorCSAqIFRoZSBzZWNvbmQgYW5kIHRoZSB0aGlyZCBieXRlcyBtdXN0IHN0YXJ0IHdpdGggMTAKKwkgKi8KKwllbHNlIGlmICgoKGogJiAweEMwKSAhPSAweDgwKSB8fCAoKEsgJiAweEMwKSAhPSAweDgwKSkgeworCSAgICBpZiAobGFzdEVycm9yICE9IFhNTF9FUlJfSU5WQUxJRF9DSEFSKQorCQlmcHJpbnRmKHN0ZGVyciwKKwkiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlggMHglMDJYXG4iLAorCQkJaSwgaiwgSyk7CisJfQorCisJLyoKKwkgKiBpZiB1c2luZyBhIDMgYnl0ZSBlbmNvZGluZyB0aGVuIHRoZSB2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIKKwkgKiB0aGFuIDB4ODAwLCBpLmUuIG9uZSBvZiBiaXRzIDQgdG8gMCBvZiBpIG11c3QgYmUgc2V0IG9yCisJICogdGhlIDZ0aCBieXRlIG9mIGRhdGFbMV0gbXVzdCBiZSBzZXQKKwkgKi8KKwllbHNlIGlmICgoKGkgJiAweEYpID09IDApICYmICgoaiAmIDB4MjApID09IDApKSB7CisJICAgIGlmIChsYXN0RXJyb3IgIT0gWE1MX0VSUl9JTlZBTElEX0NIQVIpCisJCWZwcmludGYoc3RkZXJyLAorCSAgICAiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgZm9yIEJ5dGVzIDB4JTAyWCAweCUwMlggMHglMDJYXG4iLAorCQkJaSwgaiwgSyk7CisJfQorCisgICAgICAgIC8qCisJICogVGhlcmUgYXJlIHZhbHVlcyBpbiB0aGF0IHJhbmdlIHRoYXQgYXJlIG5vdCBhbGxvd2VkIGluIFhNTC0xLjAKKwkgKi8KKwllbHNlIGlmICgoKHZhbHVlID4gMHhEN0ZGKSAmJiAodmFsdWUgPDB4RTAwMCkpIHx8CisJICAgICAgICAgKCh2YWx1ZSA+IDB4RkZGRCkgJiYgKHZhbHVlIDwweDEwMDAwKSkpIHsKKwkgICAgaWYgKGxhc3RFcnJvciAhPSBYTUxfRVJSX0lOVkFMSURfQ0hBUikKKwkJZnByaW50ZihzdGRlcnIsCisJIkZhaWxlZCB0byBkZXRlY3QgaW52YWxpZCBjaGFyIDB4JTA0WCBmb3IgQnl0ZXMgMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCQl2YWx1ZSwgaSwgaiwgSyk7CisJfQorCisJLyoKKwkgKiBXZSBzaG91bGQgc2VlIG5vIGVycm9yIGluIHJlbWFpbmluZyBjYXNlcworCSAqLworCWVsc2UgaWYgKChsYXN0RXJyb3IgIT0gMCkgfHwgKGxlbiAhPSAzKSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgCisJCSJGYWlsZWQgdG8gcGFyc2UgY2hhciBmb3IgQnl0ZXMgMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCSAgICBpLCBqLCBLKTsKKwl9CisKKwkvKgorCSAqIEZpbmFsbHkgY2hlY2sgdGhlIHZhbHVlIGlzIHJpZ2h0CisJICovCisJZWxzZSBpZiAoYyAhPSB2YWx1ZSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgCisgICAgIkZhaWxlZCB0byBwYXJzZSBjaGFyIGZvciBCeXRlcyAweCUwMlggMHglMDJYIDB4JTAyWDogZXhwZWN0ICVkIGdvdCAlZFxuIiwKKwkJaSwgaiwgZGF0YVsyXSwgdmFsdWUsIGMpOworCX0KKyAgICB9CisgICAgfQorICAgIH0KK30KKworc3RhdGljIHZvaWQgdGVzdENoYXJSYW5nZUJ5dGU0KHhtbFBhcnNlckN0eHRQdHIgY3R4dCwgY2hhciAqZGF0YSkgeworICAgIGludCBpLCBqLCBrLCBLLCBsLCBMOworICAgIGludCBsZW4sIGM7CisgICAgdW5zaWduZWQgY2hhciBsb3dzWzZdID0gezAsIDB4ODAsIDB4ODEsIDB4QzEsIDB4RkYsIDB4QkZ9OworICAgIGludCB2YWx1ZTsKKworICAgIGRhdGFbNF0gPSAwOworICAgIGZvciAoaSA9IDB4RjA7aSA8PSAweEZGO2krKykgeworICAgIGZvciAoaiA9IDA7aiA8PSAweEZGO2orKykgeworICAgIGZvciAoayA9IDA7ayA8IDY7aysrKSB7CisgICAgZm9yIChsID0gMDtsIDwgNjtsKyspIHsKKwlkYXRhWzBdID0gaTsKKwlkYXRhWzFdID0gajsKKwlLID0gbG93c1trXTsKKwlkYXRhWzJdID0gKGNoYXIpIEs7CisJTCA9IGxvd3NbbF07CisJZGF0YVszXSA9IChjaGFyKSBMOworCXZhbHVlID0gKEwgJiAweDNGKSArICgoSyAmIDB4M0YpIDw8IDYpICsgKChqICYgMHgzRikgPDwgMTIpICsKKwkgICAgICAgICgoaSAmIDB4NykgPDwgMTgpOworCWN0eHQtPmNoYXJzZXQgPSBYTUxfQ0hBUl9FTkNPRElOR19VVEY4OworCisJbGFzdEVycm9yID0gMDsKKwljID0geG1sQ3VycmVudENoYXIoY3R4dCwgJmxlbik7CisKKwkvKgorCSAqIGlmIGZpZnRoIGJpdCBvZiBmaXJzdCBjaGFyIGlzIHNldCwgdGhlbiB0aGUgc2VxdWVuY2Ugd291bGQgbmVlZAorCSAqIGF0IGxlYXN0IDUgYnl0ZXMsIGJ1dCB3ZSBnaXZlIG9ubHkgNCAhCisJICovCisJaWYgKChpICYgMHhGOCkgPT0gMHhGOCkgeworCSAgICBpZiAobGFzdEVycm9yICE9IFhNTF9FUlJfSU5WQUxJRF9DSEFSKQorCQlmcHJpbnRmKHN0ZGVyciwKKyAgIkZhaWxlZCB0byBkZXRlY3QgaW52YWxpZCBjaGFyIGZvciBCeXRlcyAweCUwMlggMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCQlpLCBqLCBLLCBkYXRhWzNdKTsKKwl9CisKKyAgICAgICAgLyoKKwkgKiBUaGUgc2Vjb25kLCB0aGlyZCBhbmQgZm91cnRoIGJ5dGVzIG11c3Qgc3RhcnQgd2l0aCAxMAorCSAqLworCWVsc2UgaWYgKCgoaiAmIDB4QzApICE9IDB4ODApIHx8ICgoSyAmIDB4QzApICE9IDB4ODApIHx8CisJICAgICAgICAgKChMICYgMHhDMCkgIT0gMHg4MCkpIHsKKwkgICAgaWYgKGxhc3RFcnJvciAhPSBYTUxfRVJSX0lOVkFMSURfQ0hBUikKKwkJZnByaW50ZihzdGRlcnIsCisJIkZhaWxlZCB0byBkZXRlY3QgaW52YWxpZCBjaGFyIGZvciBCeXRlcyAweCUwMlggMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCQlpLCBqLCBLLCBMKTsKKwl9CisKKwkvKgorCSAqIGlmIHVzaW5nIGEgMyBieXRlIGVuY29kaW5nIHRoZW4gdGhlIHZhbHVlIG11c3QgYmUgZ3JlYXRlcgorCSAqIHRoYW4gMHgxMDAwMCwgaS5lLiBvbmUgb2YgYml0cyAzIHRvIDAgb2YgaSBtdXN0IGJlIHNldCBvcgorCSAqIHRoZSA2IG9yIDV0aCBieXRlIG9mIGogbXVzdCBiZSBzZXQKKwkgKi8KKwllbHNlIGlmICgoKGkgJiAweDcpID09IDApICYmICgoaiAmIDB4MzApID09IDApKSB7CisJICAgIGlmIChsYXN0RXJyb3IgIT0gWE1MX0VSUl9JTlZBTElEX0NIQVIpCisJCWZwcmludGYoc3RkZXJyLAorCSJGYWlsZWQgdG8gZGV0ZWN0IGludmFsaWQgY2hhciBmb3IgQnl0ZXMgMHglMDJYIDB4JTAyWCAweCUwMlggMHglMDJYXG4iLAorCQkJaSwgaiwgSywgTCk7CisJfQorCisgICAgICAgIC8qCisJICogVGhlcmUgYXJlIHZhbHVlcyBpbiB0aGF0IHJhbmdlIHRoYXQgYXJlIG5vdCBhbGxvd2VkIGluIFhNTC0xLjAKKwkgKi8KKwllbHNlIGlmICgoKHZhbHVlID4gMHhEN0ZGKSAmJiAodmFsdWUgPDB4RTAwMCkpIHx8CisJICAgICAgICAgKCh2YWx1ZSA+IDB4RkZGRCkgJiYgKHZhbHVlIDwweDEwMDAwKSkgfHwgCisJCSAodmFsdWUgPiAweDEwRkZGRikpIHsKKwkgICAgaWYgKGxhc3RFcnJvciAhPSBYTUxfRVJSX0lOVkFMSURfQ0hBUikKKwkJZnByaW50ZihzdGRlcnIsCisiRmFpbGVkIHRvIGRldGVjdCBpbnZhbGlkIGNoYXIgMHglMDRYIGZvciBCeXRlcyAweCUwMlggMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCQl2YWx1ZSwgaSwgaiwgSywgTCk7CisJfQorCisJLyoKKwkgKiBXZSBzaG91bGQgc2VlIG5vIGVycm9yIGluIHJlbWFpbmluZyBjYXNlcworCSAqLworCWVsc2UgaWYgKChsYXN0RXJyb3IgIT0gMCkgfHwgKGxlbiAhPSA0KSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgCisJCSJGYWlsZWQgdG8gcGFyc2UgY2hhciBmb3IgQnl0ZXMgMHglMDJYIDB4JTAyWCAweCUwMlhcbiIsCisJCSAgICBpLCBqLCBLKTsKKwl9CisKKwkvKgorCSAqIEZpbmFsbHkgY2hlY2sgdGhlIHZhbHVlIGlzIHJpZ2h0CisJICovCisJZWxzZSBpZiAoYyAhPSB2YWx1ZSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgCisgICAgIkZhaWxlZCB0byBwYXJzZSBjaGFyIGZvciBCeXRlcyAweCUwMlggMHglMDJYIDB4JTAyWDogZXhwZWN0ICVkIGdvdCAlZFxuIiwKKwkJaSwgaiwgZGF0YVsyXSwgdmFsdWUsIGMpOworCX0KKyAgICB9CisgICAgfQorICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogdGVzdENoYXJSYW5nZXM6CisgKgorICogVGVzdCB0aGUgY29ycmVjdCBVVEY4IGNoYXJhY3RlciBwYXJzaW5nIGluIGlzb2xhdGlvbiBpLmUuCisgKiBub3Qgd2hlbiBwYXJzaW5nIGEgZnVsbCBkb2N1bWVudCwgdGhpcyBpcyBsZXNzIGV4cGVuc2l2ZSBhbmQgd2UgY2FuCisgKiBjb3ZlciB0aGUgZnVsbCByYW5nZSBvZiBVVEYtOCBjaGFycyBhY2NlcHRlZCBieSBYTUwtMS4wCisgKi8KKworc3RhdGljIHZvaWQgdGVzdENoYXJSYW5nZXModm9pZCkgeworICAgIGNoYXIgZGF0YVs1XTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgYnVmOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworCisgICAgbWVtc2V0KGRhdGEsIDAsIDUpOworCisgICAgLyoKKyAgICAgKiBTZXQgdXAgYSBwYXJzaW5nIGNvbnRleHQgdXNpbmcgdGhlIGFib3ZlIGRhdGEgYnVmZmVyIGFzCisgICAgICogdGhlIGN1cnJlbnQgaW5wdXQgc291cmNlLgorICAgICAqLworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBhbGxvY2F0ZSBwYXJzZXIgY29udGV4dFxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICBidWYgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyhkYXRhLCBzaXplb2YoZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGFsbG9jYXRlIGlucHV0IGJ1ZmZlclxuIik7CisJZ290byBlcnJvcjsKKyAgICB9CisgICAgaW5wdXQgPSB4bWxOZXdJbnB1dFN0cmVhbShjdHh0KTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoYnVmKTsKKwlnb3RvIGVycm9yOworICAgIH0KKyAgICBpbnB1dC0+ZmlsZW5hbWUgPSBOVUxMOworICAgIGlucHV0LT5idWYgPSBidWY7CisgICAgaW5wdXQtPmJhc2UgPSBpbnB1dC0+YnVmLT5idWZmZXItPmNvbnRlbnQ7CisgICAgaW5wdXQtPmN1ciA9IGlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKyAgICBpbnB1dC0+ZW5kID0gJmlucHV0LT5idWYtPmJ1ZmZlci0+Y29udGVudFs0XTsKKyAgICBpbnB1dFB1c2goY3R4dCwgaW5wdXQpOworCisgICAgcHJpbnRmKCJ0ZXN0aW5nIGNoYXIgcmFuZ2U6IDEiKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICB0ZXN0Q2hhclJhbmdlQnl0ZTEoY3R4dCwgZGF0YSk7CisgICAgcHJpbnRmKCIgMiIpOworICAgIGZmbHVzaChzdGRvdXQpOworICAgIHRlc3RDaGFyUmFuZ2VCeXRlMihjdHh0LCBkYXRhKTsKKyAgICBwcmludGYoIiAzIik7CisgICAgZmZsdXNoKHN0ZG91dCk7CisgICAgdGVzdENoYXJSYW5nZUJ5dGUzKGN0eHQsIGRhdGEpOworICAgIHByaW50ZigiIDQiKTsKKyAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICB0ZXN0Q2hhclJhbmdlQnl0ZTQoY3R4dCwgZGF0YSk7CisgICAgcHJpbnRmKCIgZG9uZVxuIik7CisgICAgZmZsdXNoKHN0ZG91dCk7CisKK2Vycm9yOgorICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworfQorCitpbnQgbWFpbih2b2lkKSB7CisKKyAgICAvKgorICAgICAqIHRoaXMgaW5pdGlhbGl6ZSB0aGUgbGlicmFyeSBhbmQgY2hlY2sgcG90ZW50aWFsIEFCSSBtaXNtYXRjaGVzCisgICAgICogYmV0d2VlbiB0aGUgdmVyc2lvbiBpdCB3YXMgY29tcGlsZWQgZm9yIGFuZCB0aGUgYWN0dWFsIHNoYXJlZAorICAgICAqIGxpYnJhcnkgdXNlZC4KKyAgICAgKi8KKyAgICBMSUJYTUxfVEVTVF9WRVJTSU9OCisKKyAgICAvKgorICAgICAqIENhdGNoIGVycm9ycyBzZXBhcmF0ZWx5CisgICAgICovCisKKyAgICB4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKE5VTEwsIGVycm9ySGFuZGxlcik7CisKKyAgICAvKgorICAgICAqIFJ1biB0aGUgdGVzdHMKKyAgICAgKi8KKyAgICB0ZXN0Q2hhclJhbmdlcygpOworICAgIHRlc3REb2N1bWVudFJhbmdlcygpOworCisgICAgLyoKKyAgICAgKiBDbGVhbnVwIGZ1bmN0aW9uIGZvciB0aGUgWE1MIGxpYnJhcnkuCisgICAgICovCisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIC8qCisgICAgICogdGhpcyBpcyB0byBkZWJ1ZyBtZW1vcnkgZm9yIHJlZ3Jlc3Npb24gdGVzdHMKKyAgICAgKi8KKyAgICB4bWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuKDApOworfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0ZGljdC5jIGIvbGlieG1sMi0yLjcuNy90ZXN0ZGljdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlODU4MWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Rlc3RkaWN0LmMKQEAgLTAsMCArMSw0NDQgQEAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL2RpY3QuaD4KKworLyogI2RlZmluZSBXSVRIX1BSSU5UICovCisKK3N0YXRpYyBjb25zdCBjaGFyICpzZWVkczFbXSA9IHsKKyAgICJhIiwgImIiLCAiYyIsCisgICAiZCIsICJlIiwgImYiLAorICAgImciLCAiaCIsICJpIiwKKyAgICJqIiwgImsiLCAibCIsCisKKyAgIE5VTEwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpzZWVkczJbXSA9IHsKKyAgICJtIiwgIm4iLCAibyIsCisgICAicCIsICJxIiwgInIiLAorICAgInMiLCAidCIsICJ1IiwKKyAgICJ2IiwgInciLCAieCIsCisKKyAgIE5VTEwKK307CisKKyNkZWZpbmUgTkJfU1RSSU5HU19OUyAxMDAKKyNkZWZpbmUgTkJfU1RSSU5HU19NQVggMTAwMDAKKyNkZWZpbmUgTkJfU1RSSU5HU19NSU4gMTAKKworc3RhdGljIHhtbENoYXIgKnN0cmluZ3MxW05CX1NUUklOR1NfTUFYXTsKK3N0YXRpYyB4bWxDaGFyICpzdHJpbmdzMltOQl9TVFJJTkdTX01BWF07CitzdGF0aWMgY29uc3QgeG1sQ2hhciAqdGVzdDFbTkJfU1RSSU5HU19NQVhdOworc3RhdGljIGNvbnN0IHhtbENoYXIgKnRlc3QyW05CX1NUUklOR1NfTUFYXTsKK3N0YXRpYyBpbnQgbmJFcnJvcnMgPSAwOworCitzdGF0aWMgdm9pZCBmaWxsX3N0cmluZ3Modm9pZCkgeworICAgIGludCBpLCBqLCBrOworCisgICAgLyoKKyAgICAgKiBUaGF0J3MgYSBiaXQgbmFzdHkgYnV0IHRoZSBvdXRwdXQgaXMgZmluZSBhbmQgaXQgZG9lc24ndCB0YWtlIGhvdXJzCisgICAgICogdGhlcmUgaXMgYSBzbWFsbCBidXQgc3VmZmljaWVudCBudW1iZXIgb2YgZHVwbGljYXRlcywgYW5kIHdlIGhhdmUKKyAgICAgKiAiOnh4eCIgYW5kIGZ1bGwgUU5hbWVzIGluIHRoZSBsYXN0IE5CX1NUUklOR1NfTlMgdmFsdWVzCisgICAgICovCisgICAgZm9yIChpID0gMDsgc2VlZHMxW2ldICE9IE5VTEw7IGkrKykgeworICAgICAgICBzdHJpbmdzMVtpXSA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBzZWVkczFbaV0pOworCWlmIChzdHJpbmdzMVtpXSA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiT3V0IG9mIG1lbW9yeSB3aGlsZSBnZW5lcmF0aW5nIHN0cmluZ3MxXG4iKTsKKwkgICAgZXhpdCgxKTsKKwl9CisgICAgfQorICAgIGZvciAoaiA9IDAsIGsgPSAwO2kgPCBOQl9TVFJJTkdTX01BWCAtIE5CX1NUUklOR1NfTlM7aSsrLGorKykgeworICAgICAgICBzdHJpbmdzMVtpXSA9IHhtbFN0cm5jYXROZXcoc3RyaW5nczFbal0sIHN0cmluZ3MxW2tdLCAtMSk7CisJaWYgKHN0cmluZ3MxW2ldID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5IHdoaWxlIGdlbmVyYXRpbmcgc3RyaW5nczFcbiIpOworCSAgICBleGl0KDEpOworCX0KKwlpZiAoaiA+PSA1MCkgeworCSAgICBqID0gMDsKKwkgICAgaysrOworCX0KKyAgICB9CisgICAgZm9yIChqID0gMDsgKGogPCA1MCkgJiYgKGkgPCBOQl9TVFJJTkdTX01BWCk7IGkrKywgais9MikgeworICAgICAgICBzdHJpbmdzMVtpXSA9IHhtbFN0cm5jYXROZXcoc3RyaW5nczFbal0sIChjb25zdCB4bWxDaGFyICopICI6IiwgLTEpOworCWlmIChzdHJpbmdzMVtpXSA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiT3V0IG9mIG1lbW9yeSB3aGlsZSBnZW5lcmF0aW5nIHN0cmluZ3MxXG4iKTsKKwkgICAgZXhpdCgxKTsKKwl9CisgICAgfQorICAgIGZvciAoaiA9IE5CX1NUUklOR1NfTUFYIC0gTkJfU1RSSU5HU19OUywgayA9IDA7CisgICAgICAgICBpIDwgTkJfU1RSSU5HU19NQVg7aSsrLGorKykgeworICAgICAgICBzdHJpbmdzMVtpXSA9IHhtbFN0cm5jYXROZXcoc3RyaW5nczFbal0sIHN0cmluZ3MxW2tdLCAtMSk7CisJaWYgKHN0cmluZ3MxW2ldID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5IHdoaWxlIGdlbmVyYXRpbmcgc3RyaW5nczFcbiIpOworCSAgICBleGl0KDEpOworCX0KKwlrICs9IDM7CisJaWYgKGsgPj0gNTApIGsgPSAwOworICAgIH0KKworICAgIC8qCisgICAgICogTm93IGRvIHRoZSBzYW1lIHdpdGggdGhlIHNlY29uZCBwb29sIG9mIHN0cmluZ3MKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBzZWVkczJbaV0gIT0gTlVMTDsgaSsrKSB7CisgICAgICAgIHN0cmluZ3MyW2ldID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHNlZWRzMltpXSk7CisJaWYgKHN0cmluZ3MyW2ldID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5IHdoaWxlIGdlbmVyYXRpbmcgc3RyaW5nczJcbiIpOworCSAgICBleGl0KDEpOworCX0KKyAgICB9CisgICAgZm9yIChqID0gMCwgayA9IDA7aSA8IE5CX1NUUklOR1NfTUFYIC0gTkJfU1RSSU5HU19OUztpKyssaisrKSB7CisgICAgICAgIHN0cmluZ3MyW2ldID0geG1sU3RybmNhdE5ldyhzdHJpbmdzMltqXSwgc3RyaW5nczJba10sIC0xKTsKKwlpZiAoc3RyaW5nczJbaV0gPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIk91dCBvZiBtZW1vcnkgd2hpbGUgZ2VuZXJhdGluZyBzdHJpbmdzMlxuIik7CisJICAgIGV4aXQoMSk7CisJfQorCWlmIChqID49IDUwKSB7CisJICAgIGogPSAwOworCSAgICBrKys7CisJfQorICAgIH0KKyAgICBmb3IgKGogPSAwOyAoaiA8IDUwKSAmJiAoaSA8IE5CX1NUUklOR1NfTUFYKTsgaSsrLCBqKz0yKSB7CisgICAgICAgIHN0cmluZ3MyW2ldID0geG1sU3RybmNhdE5ldyhzdHJpbmdzMltqXSwgKGNvbnN0IHhtbENoYXIgKikgIjoiLCAtMSk7CisJaWYgKHN0cmluZ3MyW2ldID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5IHdoaWxlIGdlbmVyYXRpbmcgc3RyaW5nczJcbiIpOworCSAgICBleGl0KDEpOworCX0KKyAgICB9CisgICAgZm9yIChqID0gTkJfU1RSSU5HU19NQVggLSBOQl9TVFJJTkdTX05TLCBrID0gMDsKKyAgICAgICAgIGkgPCBOQl9TVFJJTkdTX01BWDtpKyssaisrKSB7CisgICAgICAgIHN0cmluZ3MyW2ldID0geG1sU3RybmNhdE5ldyhzdHJpbmdzMltqXSwgc3RyaW5nczJba10sIC0xKTsKKwlpZiAoc3RyaW5nczJbaV0gPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIk91dCBvZiBtZW1vcnkgd2hpbGUgZ2VuZXJhdGluZyBzdHJpbmdzMlxuIik7CisJICAgIGV4aXQoMSk7CisJfQorCWsgKz0gMzsKKwlpZiAoayA+PSA1MCkgayA9IDA7CisgICAgfQorCit9CisKKyNpZmRlZiBXSVRIX1BSSU5UCitzdGF0aWMgdm9pZCBwcmludF9zdHJpbmdzKHZvaWQpIHsKKyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBOQl9TVFJJTkdTX01BWDtpKyspIHsKKyAgICAgICAgcHJpbnRmKCIlc1xuIiwgc3RyaW5nczFbaV0pOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgTkJfU1RSSU5HU19NQVg7aSsrKSB7CisgICAgICAgIHByaW50ZigiJXNcbiIsIHN0cmluZ3MyW2ldKTsKKyAgICB9Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgY2xlYW5fc3RyaW5ncyh2b2lkKSB7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTkJfU1RSSU5HU19NQVg7IGkrKykgeworICAgICAgICBpZiAoc3RyaW5nczFbaV0gIT0gTlVMTCkgLyogcmVhbGx5IHNob3VsZCBub3QgaGFwcGVuICovCisJICAgIHhtbEZyZWUoc3RyaW5nczFbaV0pOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgTkJfU1RSSU5HU19NQVg7IGkrKykgeworICAgICAgICBpZiAoc3RyaW5nczJbaV0gIT0gTlVMTCkgLyogcmVhbGx5IHNob3VsZCBub3QgaGFwcGVuICovCisJICAgIHhtbEZyZWUoc3RyaW5nczJbaV0pOworICAgIH0KK30KKworLyoKKyAqIFRoaXMgdGVzdHMgdGhlIHN1Yi1kaWN0aW9uYXJ5IHN1cHBvcnQKKyAqLworc3RhdGljIGludCBydW5fdGVzdDIoeG1sRGljdFB0ciBwYXJlbnQpIHsKKyAgICBpbnQgaSwgajsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sQ2hhciBwcmVmaXhbNDBdOworICAgIHhtbENoYXIgKmN1ciwgKnByZWY7CisgICAgY29uc3QgeG1sQ2hhciAqdG1wOworCisgICAgZGljdCA9IHhtbERpY3RDcmVhdGVTdWIocGFyZW50KTsKKyAgICBpZiAoZGljdCA9PSBOVUxMKSB7CisJZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5IHdoaWxlIGNyZWF0aW5nIHN1Yi1kaWN0aW9uYXJ5XG4iKTsKKwlleGl0KDEpOworICAgIH0KKyAgICBtZW1zZXQodGVzdDIsIDAsIHNpemVvZih0ZXN0MikpOworCisgICAgLyoKKyAgICAgKiBGaWxsIGluIE5CX1NUUklOR1NfTUlOLCBhdCB0aGlzIHBvaW50IHRoZSBkaWN0aW9uYXJ5IHNob3VsZCBub3QgZ3JvdworICAgICAqIGFuZCB3ZSBhbGxvY2F0ZSBhbGwgdGhvc2UgZG9pbmcgdGhlIGZhc3Qga2V5IGNvbXB1dGF0aW9ucworICAgICAqIEFsbCB0aGUgc3RyaW5ncyBhcmUgYmFzZWQgb24gYSBkaWZmZXJlbnQgc2VlZHMgc3Vic2V0IHNvIHdlIGtub3cKKyAgICAgKiB0aGV5IGFyZSBhbGxvY2F0ZWQgaW4gdGhlIG1haW4gZGljdGlvbmFyeSwgbm90IGNvbWluZyBmcm9tIHRoZSBwYXJlbnQKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCBOQl9TVFJJTkdTX01JTjtpKyspIHsKKyAgICAgICAgdGVzdDJbaV0gPSB4bWxEaWN0TG9va3VwKGRpY3QsIHN0cmluZ3MyW2ldLCAtMSk7CisJaWYgKHRlc3QyW2ldID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgbG9va3VwIGZvciAnJXMnXG4iLCBzdHJpbmdzMltpXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKyAgICBqID0gTkJfU1RSSU5HU19NQVggLSBOQl9TVFJJTkdTX05TOworICAgIC8qICI6Zm9vIiBsaWtlIHN0cmluZ3MyICovCisgICAgZm9yIChpID0gMDtpIDwgTkJfU1RSSU5HU19NSU47aSsrLCBqKyspIHsKKyAgICAgICAgdGVzdDJbal0gPSB4bWxEaWN0TG9va3VwKGRpY3QsIHN0cmluZ3MyW2pdLCB4bWxTdHJsZW4oc3RyaW5nczJbal0pKTsKKwlpZiAodGVzdDJbal0gPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBsb29rdXAgZm9yICclcydcbiIsIHN0cmluZ3MyW2pdKTsKKwkgICAgcmV0ID0gMTsKKwkgICAgbmJFcnJvcnMrKzsKKwl9CisgICAgfQorICAgIC8qICJhOmZvbyIgbGlrZSBzdHJpbmdzMiAqLworICAgIGogPSBOQl9TVFJJTkdTX01BWCAtIE5CX1NUUklOR1NfTUlOOworICAgIGZvciAoaSA9IDA7aSA8IE5CX1NUUklOR1NfTUlOO2krKywgaisrKSB7CisgICAgICAgIHRlc3QyW2pdID0geG1sRGljdExvb2t1cChkaWN0LCBzdHJpbmdzMltqXSwgeG1sU3RybGVuKHN0cmluZ3MyW2pdKSk7CisJaWYgKHRlc3QyW2pdID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgbG9va3VwIGZvciAnJXMnXG4iLCBzdHJpbmdzMltqXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogQXQgdGhpcyBwb2ludCBhbGxvY2F0ZSBhbGwgdGhlIHN0cmluZ3MKKyAgICAgKiB0aGUgZGljdGlvbmFyeSB3aWxsIGdyb3cgaW4gdGhlIHByb2Nlc3MsIHJlYWxsb2NhdGUgbW9yZSBzdHJpbmcgdGFibGVzCisgICAgICogYW5kIHN3aXRjaCB0byB0aGUgYmV0dGVyIGtleSBnZW5lcmF0b3IKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCBOQl9TVFJJTkdTX01BWDtpKyspIHsKKyAgICAgICAgaWYgKHRlc3QyW2ldICE9IE5VTEwpCisJICAgIGNvbnRpbnVlOworCXRlc3QyW2ldID0geG1sRGljdExvb2t1cChkaWN0LCBzdHJpbmdzMltpXSwgLTEpOworCWlmICh0ZXN0MltpXSA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIGxvb2t1cCBmb3IgJyVzJ1xuIiwgc3RyaW5nczJbaV0pOworCSAgICByZXQgPSAxOworCSAgICBuYkVycm9ycysrOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5vdyB3ZSBjYW4gc3RhcnQgdG8gdGVzdCB0aGluZ3MsIGZpcnN0IHRoYXQgYWxsIHN0cmluZ3MyIGJlbG9uZ3MgdG8KKyAgICAgKiB0aGUgZGljdCwgYW5kIHRoYXQgbm9uZSBvZiB0aGVtIHdhcyBhY3R1YWxseSBhbGxvY2F0ZWQgaW4gdGhlIHBhcmVudAorICAgICAqLworICAgIGZvciAoaSA9IDA7aSA8IE5CX1NUUklOR1NfTUFYO2krKykgeworICAgICAgICBpZiAoIXhtbERpY3RPd25zKGRpY3QsIHRlc3QyW2ldKSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBvd25lcnNoaXAgZmFpbHVyZSBmb3IgJyVzJ1xuIiwKKwkgICAgICAgICAgICBzdHJpbmdzMltpXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgICAgICBpZiAoeG1sRGljdE93bnMocGFyZW50LCB0ZXN0MltpXSkpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgcGFyZW50IG93bmVyc2hpcCBmYWlsdXJlIGZvciAnJXMnXG4iLAorCSAgICAgICAgICAgIHN0cmluZ3MyW2ldKTsKKwkgICAgcmV0ID0gMTsKKwkgICAgbmJFcnJvcnMrKzsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbHNvIHZlcmlmeSB0aGF0IGFsbCBzdHJpbmdzIGZyb20gdGhlIHBhcmVudCBhcmUgc2VlbiBmcm9tIHRoZSBzdWJkaWN0CisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgTkJfU1RSSU5HU19NQVg7aSsrKSB7CisgICAgICAgIGlmICgheG1sRGljdE93bnMoZGljdCwgdGVzdDFbaV0pKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHN1Yi1vd25lcnNoaXAgZmFpbHVyZSBmb3IgJyVzJ1xuIiwKKwkgICAgICAgICAgICBzdHJpbmdzMVtpXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogVGhlbiB0aGF0IGFub3RoZXIgbG9va3VwIHRvIHRoZSBzdHJpbmcgaW4gc3ViIHdpbGwgcmV0dXJuIHRoZSBzYW1lCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgTkJfU1RSSU5HU19NQVg7aSsrKSB7CisgICAgICAgIGlmICh4bWxEaWN0TG9va3VwKGRpY3QsIHN0cmluZ3MyW2ldLCAtMSkgIT0gdGVzdDJbaV0pIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgcmUtbG9va3VwIGNoZWNrIGZvciAlZCwgJyVzJ1xuIiwKKwkgICAgICAgICAgICBpLCBzdHJpbmdzMltpXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIEJ1dCBhbHNvIHRoYXQgYW55IGxvb2t1cCBmb3IgYSBzdHJpbmcgaW4gdGhlIHBhcmVudCB3aWxsIGJlIHByb3ZpZGVkCisgICAgICogYXMgaW4gdGhlIHBhcmVudAorICAgICAqLworICAgIGZvciAoaSA9IDA7aSA8IE5CX1NUUklOR1NfTUFYO2krKykgeworICAgICAgICBpZiAoeG1sRGljdExvb2t1cChkaWN0LCBzdHJpbmdzMVtpXSwgLTEpICE9IHRlc3QxW2ldKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHBhcmVudCBzdHJpbmcgbG9va3VwIGNoZWNrIGZvciAlZCwgJyVzJ1xuIiwKKwkgICAgICAgICAgICBpLCBzdHJpbmdzMVtpXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogY2hlY2sgdGhlIFFOYW1lIGxvb2t1cHMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSBOQl9TVFJJTkdTX01BWCAtIE5CX1NUUklOR1NfTlM7aSA8IE5CX1NUUklOR1NfTUFYO2krKykgeworICAgICAgICBjdXIgPSBzdHJpbmdzMltpXTsKKwlwcmVmID0gJnByZWZpeFswXTsKKwl3aGlsZSAoKmN1ciAhPSAnOicpICpwcmVmKysgPSAqY3VyKys7CisJY3VyKys7CisJKnByZWYgPSAwOworCXRtcCA9IHhtbERpY3RRTG9va3VwKGRpY3QsICZwcmVmaXhbMF0sIGN1cik7CisJaWYgKHhtbERpY3RRTG9va3VwKGRpY3QsICZwcmVmaXhbMF0sIGN1cikgIT0gdGVzdDJbaV0pIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgbG9va3VwIGNoZWNrIGZvciAnJXMnOiclcydcbiIsCisJICAgICAgICAgICAgJnByZWZpeFswXSwgY3VyKTsKKyAgICAgICAgICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIGNoZWNrIHRoZSBRTmFtZSBsb29rdXBzIGZvciBzdHJpbmdzIGZyb20gdGhlIHBhcmVudAorICAgICAqLworICAgIGZvciAoaSA9IE5CX1NUUklOR1NfTUFYIC0gTkJfU1RSSU5HU19OUztpIDwgTkJfU1RSSU5HU19NQVg7aSsrKSB7CisgICAgICAgIGN1ciA9IHN0cmluZ3MxW2ldOworCXByZWYgPSAmcHJlZml4WzBdOworCXdoaWxlICgqY3VyICE9ICc6JykgKnByZWYrKyA9ICpjdXIrKzsKKwljdXIrKzsKKwkqcHJlZiA9IDA7CisJdG1wID0geG1sRGljdFFMb29rdXAoZGljdCwgJnByZWZpeFswXSwgY3VyKTsKKwlpZiAoeG1sRGljdFFMb29rdXAoZGljdCwgJnByZWZpeFswXSwgY3VyKSAhPSB0ZXN0MVtpXSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBwYXJlbnQgbG9va3VwIGNoZWNrIGZvciAnJXMnOiclcydcbiIsCisJICAgICAgICAgICAgJnByZWZpeFswXSwgY3VyKTsKKyAgICAgICAgICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKworICAgIHhtbERpY3RGcmVlKGRpY3QpOworICAgIHJldHVybihyZXQpOworfQorCisvKgorICogVGVzdCBhIHNpbmdsZSBkaWN0aW9uYXJ5CisgKi8KK3N0YXRpYyBpbnQgcnVuX3Rlc3QxKHZvaWQpIHsKKyAgICBpbnQgaSwgajsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sQ2hhciBwcmVmaXhbNDBdOworICAgIHhtbENoYXIgKmN1ciwgKnByZWY7CisgICAgY29uc3QgeG1sQ2hhciAqdG1wOworCisgICAgZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKyAgICBpZiAoZGljdCA9PSBOVUxMKSB7CisJZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5IHdoaWxlIGNyZWF0aW5nIGRpY3Rpb25hcnlcbiIpOworCWV4aXQoMSk7CisgICAgfQorICAgIG1lbXNldCh0ZXN0MSwgMCwgc2l6ZW9mKHRlc3QxKSk7CisKKyAgICAvKgorICAgICAqIEZpbGwgaW4gTkJfU1RSSU5HU19NSU4sIGF0IHRoaXMgcG9pbnQgdGhlIGRpY3Rpb25hcnkgc2hvdWxkIG5vdCBncm93CisgICAgICogYW5kIHdlIGFsbG9jYXRlIGFsbCB0aG9zZSBkb2luZyB0aGUgZmFzdCBrZXkgY29tcHV0YXRpb25zCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgTkJfU1RSSU5HU19NSU47aSsrKSB7CisgICAgICAgIHRlc3QxW2ldID0geG1sRGljdExvb2t1cChkaWN0LCBzdHJpbmdzMVtpXSwgLTEpOworCWlmICh0ZXN0MVtpXSA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIGxvb2t1cCBmb3IgJyVzJ1xuIiwgc3RyaW5nczFbaV0pOworCSAgICByZXQgPSAxOworCSAgICBuYkVycm9ycysrOworCX0KKyAgICB9CisgICAgaiA9IE5CX1NUUklOR1NfTUFYIC0gTkJfU1RSSU5HU19OUzsKKyAgICAvKiAiOmZvbyIgbGlrZSBzdHJpbmdzMSAqLworICAgIGZvciAoaSA9IDA7aSA8IE5CX1NUUklOR1NfTUlOO2krKywgaisrKSB7CisgICAgICAgIHRlc3QxW2pdID0geG1sRGljdExvb2t1cChkaWN0LCBzdHJpbmdzMVtqXSwgeG1sU3RybGVuKHN0cmluZ3MxW2pdKSk7CisJaWYgKHRlc3QxW2pdID09IE5VTEwpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgbG9va3VwIGZvciAnJXMnXG4iLCBzdHJpbmdzMVtqXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKyAgICAvKiAiYTpmb28iIGxpa2Ugc3RyaW5nczEgKi8KKyAgICBqID0gTkJfU1RSSU5HU19NQVggLSBOQl9TVFJJTkdTX01JTjsKKyAgICBmb3IgKGkgPSAwO2kgPCBOQl9TVFJJTkdTX01JTjtpKyssIGorKykgeworICAgICAgICB0ZXN0MVtqXSA9IHhtbERpY3RMb29rdXAoZGljdCwgc3RyaW5nczFbal0sIHhtbFN0cmxlbihzdHJpbmdzMVtqXSkpOworCWlmICh0ZXN0MVtqXSA9PSBOVUxMKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIGxvb2t1cCBmb3IgJyVzJ1xuIiwgc3RyaW5nczFbal0pOworCSAgICByZXQgPSAxOworCSAgICBuYkVycm9ycysrOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEF0IHRoaXMgcG9pbnQgYWxsb2NhdGUgYWxsIHRoZSBzdHJpbmdzCisgICAgICogdGhlIGRpY3Rpb25hcnkgd2lsbCBncm93IGluIHRoZSBwcm9jZXNzLCByZWFsbG9jYXRlIG1vcmUgc3RyaW5nIHRhYmxlcworICAgICAqIGFuZCBzd2l0Y2ggdG8gdGhlIGJldHRlciBrZXkgZ2VuZXJhdG9yCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgTkJfU1RSSU5HU19NQVg7aSsrKSB7CisgICAgICAgIGlmICh0ZXN0MVtpXSAhPSBOVUxMKQorCSAgICBjb250aW51ZTsKKwl0ZXN0MVtpXSA9IHhtbERpY3RMb29rdXAoZGljdCwgc3RyaW5nczFbaV0sIC0xKTsKKwlpZiAodGVzdDFbaV0gPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBsb29rdXAgZm9yICclcydcbiIsIHN0cmluZ3MxW2ldKTsKKwkgICAgcmV0ID0gMTsKKwkgICAgbmJFcnJvcnMrKzsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOb3cgd2UgY2FuIHN0YXJ0IHRvIHRlc3QgdGhpbmdzLCBmaXJzdCB0aGF0IGFsbCBzdHJpbmdzMSBiZWxvbmdzIHRvCisgICAgICogdGhlIGRpY3QKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCBOQl9TVFJJTkdTX01BWDtpKyspIHsKKyAgICAgICAgaWYgKCF4bWxEaWN0T3ducyhkaWN0LCB0ZXN0MVtpXSkpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgb3duZXJzaGlwIGZhaWx1cmUgZm9yICclcydcbiIsCisJICAgICAgICAgICAgc3RyaW5nczFbaV0pOworCSAgICByZXQgPSAxOworCSAgICBuYkVycm9ycysrOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZW4gdGhhdCBhbm90aGVyIGxvb2t1cCB0byB0aGUgc3RyaW5nIHdpbGwgcmV0dXJuIHRoZSBzYW1lCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgTkJfU1RSSU5HU19NQVg7aSsrKSB7CisgICAgICAgIGlmICh4bWxEaWN0TG9va3VwKGRpY3QsIHN0cmluZ3MxW2ldLCAtMSkgIT0gdGVzdDFbaV0pIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgcmUtbG9va3VwIGNoZWNrIGZvciAlZCwgJyVzJ1xuIiwKKwkgICAgICAgICAgICBpLCBzdHJpbmdzMVtpXSk7CisJICAgIHJldCA9IDE7CisJICAgIG5iRXJyb3JzKys7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogTW9yZSBjb21wbGV4LCBjaGVjayB0aGUgUU5hbWUgbG9va3VwcworICAgICAqLworICAgIGZvciAoaSA9IE5CX1NUUklOR1NfTUFYIC0gTkJfU1RSSU5HU19OUztpIDwgTkJfU1RSSU5HU19NQVg7aSsrKSB7CisgICAgICAgIGN1ciA9IHN0cmluZ3MxW2ldOworCXByZWYgPSAmcHJlZml4WzBdOworCXdoaWxlICgqY3VyICE9ICc6JykgKnByZWYrKyA9ICpjdXIrKzsKKwljdXIrKzsKKwkqcHJlZiA9IDA7CisJdG1wID0geG1sRGljdFFMb29rdXAoZGljdCwgJnByZWZpeFswXSwgY3VyKTsKKwlpZiAoeG1sRGljdFFMb29rdXAoZGljdCwgJnByZWZpeFswXSwgY3VyKSAhPSB0ZXN0MVtpXSkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBsb29rdXAgY2hlY2sgZm9yICclcyc6JyVzJ1xuIiwKKwkgICAgICAgICAgICAmcHJlZml4WzBdLCBjdXIpOworICAgICAgICAgICAgcmV0ID0gMTsKKwkgICAgbmJFcnJvcnMrKzsKKwl9CisgICAgfQorCisgICAgcnVuX3Rlc3QyKGRpY3QpOworCisgICAgeG1sRGljdEZyZWUoZGljdCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICAgaW50IHJldDsKKworICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKyAgICBmaWxsX3N0cmluZ3MoKTsKKyNpZmRlZiBXSVRIX1BSSU5UCisgICAgcHJpbnRfc3RyaW5ncygpOworI2VuZGlmCisgICAgcmV0ID0gcnVuX3Rlc3QxKCk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHByaW50ZigiZGljdGlvbmFyeSB0ZXN0cyBzdWNjZWVkZWQgJWQgc3RyaW5nc1xuIiwgMiAqIE5CX1NUUklOR1NfTUFYKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludGYoImRpY3Rpb25hcnkgdGVzdHMgZmFpbGVkIHdpdGggJWQgZXJyb3JzXG4iLCBuYkVycm9ycyk7CisgICAgfQorICAgIGNsZWFuX3N0cmluZ3MoKTsKKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworICAgIHJldHVybihyZXQpOworfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90ZXN0ZHNvLmMgYi9saWJ4bWwyLTIuNy43L3Rlc3Rkc28uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDRmZjA4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0ZHNvLmMKQEAgLTAsMCArMSwxMiBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sL3htbGV4cG9ydHMuaCIKKworWE1MUFVCRlVOIGludCBoZWxsb193b3JsZCh2b2lkKTsKKworaW50IGhlbGxvX3dvcmxkKHZvaWQpCit7CisgIHByaW50ZigiU3VjY2VzcyFcbiIpOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdGVzdHJlY3Vyc2UuYyBiL2xpYnhtbDItMi43LjcvdGVzdHJlY3Vyc2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTE1MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90ZXN0cmVjdXJzZS5jCkBAIC0wLDAgKzEsOTczIEBACisvKgorICogdGVzdHJlY3Vyc2UuYzogQyBwcm9ncmFtIHRvIHJ1biBsaWJ4bWwyIHJlZ3Jlc3Npb24gdGVzdHMgY2hlY2tpbmcgZW50aXRpZXMKKyAqICAgICAgICAgICAgcmVjdXJzaW9ucworICoKKyAqIFRvIGNvbXBpbGUgb24gVW5peGVzOgorICogY2MgLW8gdGVzdHJlY3Vyc2UgYHhtbDItY29uZmlnIC0tY2ZsYWdzYCB0ZXN0cmVjdXJzZS5jIGB4bWwyLWNvbmZpZyAtLWxpYnNgIC1scHRocmVhZAorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2lmZGVmIEhBVkVfQ09ORklHX0gKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKyNlbHNlCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisKKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3htbHJlYWRlci5oPgorI2VuZGlmCisKKy8qCisgKiBPX0JJTkFSWSBpcyBqdXN0IGZvciBXaW5kb3dzIGNvbXBhdGliaWxpdHkgLSBpZiBpdCBpc24ndCBkZWZpbmVkCisgKiBvbiB0aGlzIHN5c3RlbSwgYXZvaWQgYW55IGNvbXBpbGF0aW9uIGVycm9yCisgKi8KKyNpZmRlZglPX0JJTkFSWQorI2RlZmluZSBSRF9GTEFHUwlPX1JET05MWSB8IE9fQklOQVJZCisjZWxzZQorI2RlZmluZQlSRF9GTEFHUwlPX1JET05MWQorI2VuZGlmCisKK3R5cGVkZWYgaW50ICgqZnVuY3Rlc3QpIChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9yLCBpbnQgb3B0aW9ucyk7CisKK3R5cGVkZWYgc3RydWN0IHRlc3REZXNjIHRlc3REZXNjOwordHlwZWRlZiB0ZXN0RGVzYyAqdGVzdERlc2NQdHI7CitzdHJ1Y3QgdGVzdERlc2MgeworICAgIGNvbnN0IGNoYXIgKmRlc2M7IC8qIGRlc2NyaXB0b24gb2YgdGhlIHRlc3QgKi8KKyAgICBmdW5jdGVzdCAgICBmdW5jOyAvKiBmdW5jdGlvbiBpbXBsZW1lbnRpbmcgdGhlIHRlc3QgKi8KKyAgICBjb25zdCBjaGFyICppbjsgICAvKiBnbG9iIHRvIHBhdGggZm9yIGlucHV0IGZpbGVzICovCisgICAgY29uc3QgY2hhciAqb3V0OyAgLyogb3V0cHV0IGRpcmVjdG9yeSAqLworICAgIGNvbnN0IGNoYXIgKnN1ZmZpeDsvKiBzdWZmaXggZm9yIG91dHB1dCBmaWxlcyAqLworICAgIGNvbnN0IGNoYXIgKmVycjsgIC8qIHN1ZmZpeCBmb3IgZXJyb3Igb3V0cHV0IGZpbGVzICovCisgICAgaW50ICAgICBvcHRpb25zOyAgLyogcGFyc2VyIG9wdGlvbnMgZm9yIHRoZSB0ZXN0ICovCit9OworCitzdGF0aWMgaW50IGNoZWNrVGVzdEZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUpOworCisKKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKworI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxpby5oPgorCit0eXBlZGVmIHN0cnVjdAoreworICAgICAgc2l6ZV90IGdsX3BhdGhjOyAgICAvKiBDb3VudCBvZiBwYXRocyBtYXRjaGVkIHNvIGZhciAgKi8KKyAgICAgIGNoYXIgKipnbF9wYXRodjsgICAgLyogTGlzdCBvZiBtYXRjaGVkIHBhdGhuYW1lcy4gICovCisgICAgICBzaXplX3QgZ2xfb2ZmczsgICAgIC8qIFNsb3RzIHRvIHJlc2VydmUgaW4gJ2dsX3BhdGh2Jy4gICovCit9IGdsb2JfdDsKKworI2RlZmluZSBHTE9CX0RPT0ZGUyAwCitzdGF0aWMgaW50IGdsb2IoY29uc3QgY2hhciAqcGF0dGVybiwgaW50IGZsYWdzLAorICAgICAgICAgICAgICAgIGludCBlcnJmdW5jKGNvbnN0IGNoYXIgKmVwYXRoLCBpbnQgZWVycm5vKSwKKyAgICAgICAgICAgICAgICBnbG9iX3QgKnBnbG9iKSB7CisgICAgZ2xvYl90ICpyZXQ7CisgICAgV0lOMzJfRklORF9EQVRBIEZpbmRGaWxlRGF0YTsKKyAgICBIQU5ETEUgaEZpbmQ7CisgICAgdW5zaWduZWQgaW50IG5iX3BhdGhzID0gMDsKKyAgICBjaGFyIGRpcmVjdG9yeVs1MDBdOworICAgIGludCBsZW47CisKKyAgICBpZiAoKHBhdHRlcm4gPT0gTlVMTCkgfHwgKHBnbG9iID09IE5VTEwpKSByZXR1cm4oLTEpOworCisgICAgc3RybmNweShkaXJlY3RvcnksIHBhdHRlcm4sIDQ5OSk7CisgICAgZm9yIChsZW4gPSBzdHJsZW4oZGlyZWN0b3J5KTtsZW4gPj0gMDtsZW4tLSkgeworICAgICAgICBpZiAoZGlyZWN0b3J5W2xlbl0gPT0gJy8nKSB7CisJICAgIGxlbisrOworCSAgICBkaXJlY3RvcnlbbGVuXSA9IDA7CisJICAgIGJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKGxlbiA8PSAwKQorICAgICAgICBsZW4gPSAwOworCisKKyAgICByZXQgPSBwZ2xvYjsKKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoZ2xvYl90KSk7CisKKyAgICBoRmluZCA9IEZpbmRGaXJzdEZpbGVBKHBhdHRlcm4sICZGaW5kRmlsZURhdGEpOworICAgIGlmIChoRmluZCA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKKyAgICAgICAgcmV0dXJuKDApOworICAgIG5iX3BhdGhzID0gMjA7CisgICAgcmV0LT5nbF9wYXRodiA9IChjaGFyICoqKSBtYWxsb2MobmJfcGF0aHMgKiBzaXplb2YoY2hhciAqKSk7CisgICAgaWYgKHJldC0+Z2xfcGF0aHYgPT0gTlVMTCkgeworCUZpbmRDbG9zZShoRmluZCk7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorICAgIHN0cm5jcHkoZGlyZWN0b3J5ICsgbGVuLCBGaW5kRmlsZURhdGEuY0ZpbGVOYW1lLCA0OTkgLSBsZW4pOworICAgIHJldC0+Z2xfcGF0aHZbcmV0LT5nbF9wYXRoY10gPSBzdHJkdXAoZGlyZWN0b3J5KTsKKyAgICBpZiAocmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9PSBOVUxMKQorICAgICAgICBnb3RvIGRvbmU7CisgICAgcmV0LT5nbF9wYXRoYysrOworICAgIHdoaWxlKEZpbmROZXh0RmlsZUEoaEZpbmQsICZGaW5kRmlsZURhdGEpKSB7CisgICAgICAgIGlmIChGaW5kRmlsZURhdGEuY0ZpbGVOYW1lWzBdID09ICcuJykKKwkgICAgY29udGludWU7CisgICAgICAgIGlmIChyZXQtPmdsX3BhdGhjICsgMiA+IG5iX3BhdGhzKSB7CisgICAgICAgICAgICBjaGFyICoqdG1wID0gcmVhbGxvYyhyZXQtPmdsX3BhdGh2LCBuYl9wYXRocyAqIDIgKiBzaXplb2YoY2hhciAqKSk7CisgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXQtPmdsX3BhdGh2ID0gdG1wOworICAgICAgICAgICAgbmJfcGF0aHMgKj0gMjsKKwl9CisJc3RybmNweShkaXJlY3RvcnkgKyBsZW4sIEZpbmRGaWxlRGF0YS5jRmlsZU5hbWUsIDQ5OSAtIGxlbik7CisJcmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9IHN0cmR1cChkaXJlY3RvcnkpOworICAgICAgICBpZiAocmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9PSBOVUxMKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHJldC0+Z2xfcGF0aGMrKzsKKyAgICB9CisgICAgcmV0LT5nbF9wYXRodltyZXQtPmdsX3BhdGhjXSA9IE5VTEw7CisKK2RvbmU6CisgICAgRmluZENsb3NlKGhGaW5kKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKworCitzdGF0aWMgdm9pZCBnbG9iZnJlZShnbG9iX3QgKnBnbG9iKSB7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaWYgKHBnbG9iID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaSA9IDA7aSA8IHBnbG9iLT5nbF9wYXRoYztpKyspIHsKKyAgICAgICAgIGlmIChwZ2xvYi0+Z2xfcGF0aHZbaV0gIT0gTlVMTCkKKyAgICAgICAgICAgICBmcmVlKHBnbG9iLT5nbF9wYXRodltpXSk7CisgICAgfQorfQorI2RlZmluZSB2c25wcmludGYgX3ZzbnByaW50ZgorI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKKyNlbHNlCisjaW5jbHVkZSA8Z2xvYi5oPgorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUh1Z2UgZG9jdW1lbnQgZ2VuZXJhdG9yCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sSU8uaD4KKworCitzdGF0aWMgY29uc3QgY2hhciAqc3RhcnQgPSAiPCFET0NUWVBFIGZvbyBbXAorPCFFTlRJVFkgZiAnc29tZSBpbnRlcm5hbCBkYXRhJz4gXAorPCFFTlRJVFkgZSAnJmY7JmY7Jz4gXAorPCFFTlRJVFkgZCAnJmU7JmU7Jz4gXAorXT4gXAorPGZvbz4iOworCitzdGF0aWMgY29uc3QgY2hhciAqc2VnbWVudCA9ICIgIDxiYXI+JmU7ICZmOyAmZDs8L2Jhcj5cbiI7CitzdGF0aWMgY29uc3QgY2hhciAqZmluaXNoID0gIjwvZm9vPiI7CisKK3N0YXRpYyBpbnQgY3Vyc2VnID0gMDsKK3N0YXRpYyBjb25zdCBjaGFyICpjdXJyZW50Oworc3RhdGljIGludCBybGVuOworCisvKioKKyAqIGh1Z2VNYXRjaDoKKyAqIEBVUkk6IGFuIFVSSSB0byB0ZXN0CisgKgorICogQ2hlY2sgZm9yIGFuIGh1Z2U6IHF1ZXJ5CisgKgorICogUmV0dXJucyAxIGlmIHllcyBhbmQgMCBpZiBhbm90aGVyIElucHV0IG1vZHVsZSBzaG91bGQgYmUgdXNlZAorICovCitzdGF0aWMgaW50CitodWdlTWF0Y2goY29uc3QgY2hhciAqIFVSSSkgeworICAgIGlmICgoVVJJICE9IE5VTEwpICYmICghc3RybmNtcChVUkksICJodWdlOiIsIDQpKSkKKyAgICAgICAgcmV0dXJuKDEpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiBodWdlT3BlbjoKKyAqIEBVUkk6IGFuIFVSSSB0byB0ZXN0CisgKgorICogUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgaHVnZTogcXVlcnkgaGFuZGxlciwgaW4gdGhpcyBleGFtcGxlIHNpbXBseQorICogdGhlIGN1cnJlbnQgcG9pbnRlci4uLgorICoKKyAqIFJldHVybnMgYW4gSW5wdXQgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworc3RhdGljIHZvaWQgKgoraHVnZU9wZW4oY29uc3QgY2hhciAqIFVSSSkgeworICAgIGlmICgoVVJJID09IE5VTEwpIHx8IChzdHJuY21wKFVSSSwgImh1Z2U6IiwgNCkpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgcmxlbiA9IHN0cmxlbihzdGFydCk7CisgICAgY3VycmVudCA9IHN0YXJ0OworICAgIHJldHVybigodm9pZCAqKSBjdXJyZW50KTsKK30KKworLyoqCisgKiBodWdlQ2xvc2U6CisgKiBAY29udGV4dDogdGhlIHJlYWQgY29udGV4dAorICoKKyAqIENsb3NlIHRoZSBodWdlOiBxdWVyeSBoYW5kbGVyCisgKgorICogUmV0dXJucyAwIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoraHVnZUNsb3NlKHZvaWQgKiBjb250ZXh0KSB7CisgICAgaWYgKGNvbnRleHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKyNkZWZpbmUgTUFYX05PREVTIDEwMDAwMDAKKworLyoqCisgKiBodWdlUmVhZDoKKyAqIEBjb250ZXh0OiB0aGUgcmVhZCBjb250ZXh0CisgKiBAYnVmZmVyOiB3aGVyZSB0byBzdG9yZSBkYXRhCisgKiBAbGVuOiBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZAorICoKKyAqIEltcGxlbWVudCBhbiBodWdlOiBxdWVyeSByZWFkLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoraHVnZVJlYWQodm9pZCAqY29udGV4dCwgY2hhciAqYnVmZmVyLCBpbnQgbGVuKQoreworICAgIGlmICgoY29udGV4dCA9PSBOVUxMKSB8fCAoYnVmZmVyID09IE5VTEwpIHx8IChsZW4gPCAwKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpZiAobGVuID49IHJsZW4pIHsKKyAgICAgICAgaWYgKGN1cnNlZyA+PSBNQVhfTk9ERVMgKyAxKSB7CisgICAgICAgICAgICBybGVuID0gMDsKKyAgICAgICAgICAgIHJldHVybigwKTsKKyAgICAgICAgfQorICAgICAgICBsZW4gPSBybGVuOworICAgICAgICBybGVuID0gMDsKKwltZW1jcHkoYnVmZmVyLCBjdXJyZW50LCBsZW4pOworICAgICAgICBjdXJzZWcgKys7CisgICAgICAgIGlmIChjdXJzZWcgPT0gTUFYX05PREVTKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICAgICAgICAgIHJsZW4gPSBzdHJsZW4oZmluaXNoKTsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBmaW5pc2g7CisJfSBlbHNlIHsKKwkgICAgaWYgKGN1cnNlZyAlIChNQVhfTk9ERVMgLyAxMCkgPT0gMCkKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLCAiLiIpOworICAgICAgICAgICAgcmxlbiA9IHN0cmxlbihzZWdtZW50KTsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBzZWdtZW50OworCX0KKyAgICB9IGVsc2UgeworCW1lbWNweShidWZmZXIsIGN1cnJlbnQsIGxlbik7CisJcmxlbiAtPSBsZW47CisgICAgICAgIGN1cnJlbnQgKz0gbGVuOworICAgIH0KKyAgICByZXR1cm4gKGxlbik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUxpYnhtbDIgc3BlY2lmaWMgcm91dGluZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50IG5iX3Rlc3RzID0gMDsKK3N0YXRpYyBpbnQgbmJfZXJyb3JzID0gMDsKK3N0YXRpYyBpbnQgbmJfbGVha3MgPSAwOworc3RhdGljIGludCBleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9IDA7CisKK3N0YXRpYyBpbnQKK2ZhdGFsRXJyb3Iodm9pZCkgeworICAgIGZwcmludGYoc3RkZXJyLCAiRXhpdHRpbmcgdGVzdHMgb24gZmF0YWwgZXJyb3JcbiIpOworICAgIGV4aXQoMSk7Cit9CisKKy8qCisgKiBXZSBuZWVkIHRvIHRyYXAgY2FsbHMgdG8gdGhlIHJlc29sdmVyIHRvIG5vdCBhY2NvdW50IG1lbW9yeSBmb3IgdGhlIGNhdGFsb2cKKyAqIHdoaWNoIGlzIHNoYXJlZCB0byB0aGUgY3VycmVudCBydW5uaW5nIHRlc3QuIFdlIGFsc28gZG9uJ3Qgd2FudCB0byBoYXZlCisgKiBuZXR3b3JrIGRvd25sb2FkcyBtb2RpZnlpbmcgdGVzdHMuCisgKi8KK3N0YXRpYyB4bWxQYXJzZXJJbnB1dFB0cgordGVzdEV4dGVybmFsRW50aXR5TG9hZGVyKGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqSUQsCisJCQkgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgcmV0OworCisgICAgaWYgKGNoZWNrVGVzdEZpbGUoVVJMKSkgeworCXJldCA9IHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoVVJMLCBJRCwgY3R4dCk7CisgICAgfSBlbHNlIHsKKwlpbnQgbWVtdXNlZCA9IHhtbE1lbVVzZWQoKTsKKwlyZXQgPSB4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyKFVSTCwgSUQsIGN0eHQpOworCWV4dHJhTWVtb3J5RnJvbVJlc29sdmVyICs9IHhtbE1lbVVzZWQoKSAtIG1lbXVzZWQ7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qCisgKiBUcmFwcGluZyB0aGUgZXJyb3IgbWVzc2FnZXMgYXQgdGhlIGdlbmVyaWMgbGV2ZWwgdG8gZ3JhYiB0aGUgZXF1aXZhbGVudCBvZgorICogc3RkZXJyIG1lc3NhZ2VzIG9uIENMSSB0b29scy4KKyAqLworc3RhdGljIGNoYXIgdGVzdEVycm9yc1szMjc2OV07CitzdGF0aWMgaW50IHRlc3RFcnJvcnNTaXplID0gMDsKKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK2NoYW5uZWwodm9pZCAqY3R4ICBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICptc2csIC4uLikgeworICAgIHZhX2xpc3QgYXJnczsKKyAgICBpbnQgcmVzOworCisgICAgaWYgKHRlc3RFcnJvcnNTaXplID49IDMyNzY4KQorICAgICAgICByZXR1cm47CisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICByZXMgPSB2c25wcmludGYoJnRlc3RFcnJvcnNbdGVzdEVycm9yc1NpemVdLAorICAgICAgICAgICAgICAgICAgICAzMjc2OCAtIHRlc3RFcnJvcnNTaXplLAorCQkgICAgbXNnLCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7CisgICAgaWYgKHRlc3RFcnJvcnNTaXplICsgcmVzID49IDMyNzY4KSB7CisgICAgICAgIC8qIGJ1ZmZlciBpcyBmdWxsICovCisJdGVzdEVycm9yc1NpemUgPSAzMjc2ODsKKwl0ZXN0RXJyb3JzW3Rlc3RFcnJvcnNTaXplXSA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEVycm9yc1NpemUgKz0gcmVzOworICAgIH0KKyAgICB0ZXN0RXJyb3JzW3Rlc3RFcnJvcnNTaXplXSA9IDA7Cit9CisKKy8qKgorICogeG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dDoKKyAqIEBpbnB1dDogIGFuIHhtbFBhcnNlcklucHV0UHRyIGlucHV0CisgKgorICogRGlzcGxheXMgY3VycmVudCBjb250ZXh0IHdpdGhpbiB0aGUgaW5wdXQgY29udGVudCBmb3IgZXJyb3IgdHJhY2tpbmcKKyAqLworCitzdGF0aWMgdm9pZAoreG1sUGFyc2VyUHJpbnRGaWxlQ29udGV4dEludGVybmFsKHhtbFBhcnNlcklucHV0UHRyIGlucHV0ICwKKwkJeG1sR2VuZXJpY0Vycm9yRnVuYyBjaGFubCwgdm9pZCAqZGF0YSApIHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIsICpiYXNlOworICAgIHVuc2lnbmVkIGludCBuLCBjb2w7CS8qIEdDQyB3YXJucyBpZiBzaWduZWQsIGJlY2F1c2UgY29tcGFyZWQgd2l0aCBzaXplb2YoKSAqLworICAgIHhtbENoYXIgIGNvbnRlbnRbODFdOyAvKiBzcGFjZSBmb3IgODAgY2hhcnMgKyBsaW5lIHRlcm1pbmF0b3IgKi8KKyAgICB4bWxDaGFyICpjdG50OworCisgICAgaWYgKGlucHV0ID09IE5VTEwpIHJldHVybjsKKyAgICBjdXIgPSBpbnB1dC0+Y3VyOworICAgIGJhc2UgPSBpbnB1dC0+YmFzZTsKKyAgICAvKiBza2lwIGJhY2t3YXJkcyBvdmVyIGFueSBlbmQtb2YtbGluZXMgKi8KKyAgICB3aGlsZSAoKGN1ciA+IGJhc2UpICYmICgoKihjdXIpID09ICdcbicpIHx8ICgqKGN1cikgPT0gJ1xyJykpKSB7CisJY3VyLS07CisgICAgfQorICAgIG4gPSAwOworICAgIC8qIHNlYXJjaCBiYWNrd2FyZHMgZm9yIGJlZ2lubmluZy1vZi1saW5lICh0byBtYXggYnVmZiBzaXplKSAqLworICAgIHdoaWxlICgobisrIDwgKHNpemVvZihjb250ZW50KS0xKSkgJiYgKGN1ciA+IGJhc2UpICYmCisgICAoKihjdXIpICE9ICdcbicpICYmICgqKGN1cikgIT0gJ1xyJykpCisgICAgICAgIGN1ci0tOworICAgIGlmICgoKihjdXIpID09ICdcbicpIHx8ICgqKGN1cikgPT0gJ1xyJykpIGN1cisrOworICAgIC8qIGNhbGN1bGF0ZSB0aGUgZXJyb3IgcG9zaXRpb24gaW4gdGVybXMgb2YgdGhlIGN1cnJlbnQgcG9zaXRpb24gKi8KKyAgICBjb2wgPSBpbnB1dC0+Y3VyIC0gY3VyOworICAgIC8qIHNlYXJjaCBmb3J3YXJkIGZvciBlbmQtb2YtbGluZSAodG8gbWF4IGJ1ZmYgc2l6ZSkgKi8KKyAgICBuID0gMDsKKyAgICBjdG50ID0gY29udGVudDsKKyAgICAvKiBjb3B5IHNlbGVjdGVkIHRleHQgdG8gb3VyIGJ1ZmZlciAqLworICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAoKihjdXIpICE9ICdcbicpICYmCisgICAoKihjdXIpICE9ICdccicpICYmIChuIDwgc2l6ZW9mKGNvbnRlbnQpLTEpKSB7CisJCSpjdG50KysgPSAqY3VyKys7CisJbisrOworICAgIH0KKyAgICAqY3RudCA9IDA7CisgICAgLyogcHJpbnQgb3V0IHRoZSBzZWxlY3RlZCB0ZXh0ICovCisgICAgY2hhbmwoZGF0YSAsIiVzXG4iLCBjb250ZW50KTsKKyAgICAvKiBjcmVhdGUgYmxhbmsgbGluZSB3aXRoIHByb2JsZW0gcG9pbnRlciAqLworICAgIG4gPSAwOworICAgIGN0bnQgPSBjb250ZW50OworICAgIC8qIChsZWF2ZSBidWZmZXIgc3BhY2UgZm9yIHBvaW50ZXIgKyBsaW5lIHRlcm1pbmF0b3IpICovCisgICAgd2hpbGUgKChuPGNvbCkgJiYgKG4rKyA8IHNpemVvZihjb250ZW50KS0yKSAmJiAoKmN0bnQgIT0gMCkpIHsKKwlpZiAoKihjdG50KSAhPSAnXHQnKQorCSAgICAqKGN0bnQpID0gJyAnOworCWN0bnQrKzsKKyAgICB9CisgICAgKmN0bnQrKyA9ICdeJzsKKyAgICAqY3RudCA9IDA7CisgICAgY2hhbmwoZGF0YSAsIiVzXG4iLCBjb250ZW50KTsKK30KKworc3RhdGljIHZvaWQKK3Rlc3RTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyKHZvaWQgKmN0eCAgQVRUUklCVVRFX1VOVVNFRCwgeG1sRXJyb3JQdHIgZXJyKSB7CisgICAgY2hhciAqZmlsZSA9IE5VTEw7CisgICAgaW50IGxpbmUgPSAwOworICAgIGludCBjb2RlID0gLTE7CisgICAgaW50IGRvbWFpbjsKKyAgICB2b2lkICpkYXRhID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpzdHI7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZSA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIHhtbEVycm9yTGV2ZWwgbGV2ZWw7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQgPSBOVUxMOworICAgIHhtbFBhcnNlcklucHV0UHRyIGN1ciA9IE5VTEw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gTlVMTDsKKworICAgIGlmIChlcnIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmlsZSA9IGVyci0+ZmlsZTsKKyAgICBsaW5lID0gZXJyLT5saW5lOworICAgIGNvZGUgPSBlcnItPmNvZGU7CisgICAgZG9tYWluID0gZXJyLT5kb21haW47CisgICAgbGV2ZWwgPSBlcnItPmxldmVsOworICAgIG5vZGUgPSBlcnItPm5vZGU7CisgICAgaWYgKChkb21haW4gPT0gWE1MX0ZST01fUEFSU0VSKSB8fCAoZG9tYWluID09IFhNTF9GUk9NX0hUTUwpIHx8CisgICAgICAgIChkb21haW4gPT0gWE1MX0ZST01fRFREKSB8fCAoZG9tYWluID09IFhNTF9GUk9NX05BTUVTUEFDRSkgfHwKKwkoZG9tYWluID09IFhNTF9GUk9NX0lPKSB8fCAoZG9tYWluID09IFhNTF9GUk9NX1ZBTElEKSkgeworCWN0eHQgPSBlcnItPmN0eHQ7CisgICAgfQorICAgIHN0ciA9IGVyci0+bWVzc2FnZTsKKworICAgIGlmIChjb2RlID09IFhNTF9FUlJfT0spCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgobm9kZSAhPSBOVUxMKSAmJiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSkKKyAgICAgICAgbmFtZSA9IG5vZGUtPm5hbWU7CisKKyAgICAvKgorICAgICAqIE1haW50YWluIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGxlZ2FjeSBlcnJvciBoYW5kbGluZworICAgICAqLworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgaW5wdXQgPSBjdHh0LT5pbnB1dDsKKyAgICAgICAgaWYgKChpbnB1dCAhPSBOVUxMKSAmJiAoaW5wdXQtPmZpbGVuYW1lID09IE5VTEwpICYmCisgICAgICAgICAgICAoY3R4dC0+aW5wdXROciA+IDEpKSB7CisgICAgICAgICAgICBjdXIgPSBpbnB1dDsKKyAgICAgICAgICAgIGlucHV0ID0gY3R4dC0+aW5wdXRUYWJbY3R4dC0+aW5wdXROciAtIDJdOworICAgICAgICB9CisgICAgICAgIGlmIChpbnB1dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoaW5wdXQtPmZpbGVuYW1lKQorICAgICAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIiVzOiVkOiAiLCBpbnB1dC0+ZmlsZW5hbWUsIGlucHV0LT5saW5lKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKChsaW5lICE9IDApICYmIChkb21haW4gPT0gWE1MX0ZST01fUEFSU0VSKSkKKyAgICAgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJFbnRpdHk6IGxpbmUgJWQ6ICIsIGlucHV0LT5saW5lKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWxlICE9IE5VTEwpCisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICIlczolZDogIiwgZmlsZSwgbGluZSk7CisgICAgICAgIGVsc2UgaWYgKChsaW5lICE9IDApICYmIChkb21haW4gPT0gWE1MX0ZST01fUEFSU0VSKSkKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIkVudGl0eTogbGluZSAlZDogIiwgbGluZSk7CisgICAgfQorICAgIGlmIChuYW1lICE9IE5VTEwpIHsKKyAgICAgICAgY2hhbm5lbChkYXRhLCAiZWxlbWVudCAlczogIiwgbmFtZSk7CisgICAgfQorICAgIGlmIChjb2RlID09IFhNTF9FUlJfT0spCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKGRvbWFpbikgeworICAgICAgICBjYXNlIFhNTF9GUk9NX1BBUlNFUjoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgInBhcnNlciAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX05BTUVTUEFDRToKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIm5hbWVzcGFjZSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0RURDoKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9WQUxJRDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgInZhbGlkaXR5ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fSFRNTDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIkhUTUwgcGFyc2VyICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fTUVNT1JZOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAibWVtb3J5ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fT1VUUFVUOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAib3V0cHV0ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fSU86CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJJL08gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9YSU5DTFVERToKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIlhJbmNsdWRlICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fWFBBVEg6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJYUGF0aCAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1hQT0lOVEVSOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAicGFyc2VyICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fUkVHRVhQOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAicmVnZXhwICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fTU9EVUxFOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAibW9kdWxlICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fU0NIRU1BU1Y6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJTY2hlbWFzIHZhbGlkaXR5ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fU0NIRU1BU1A6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJTY2hlbWFzIHBhcnNlciAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX1JFTEFYTkdQOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiUmVsYXgtTkcgcGFyc2VyICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fUkVMQVhOR1Y6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJSZWxheC1ORyB2YWxpZGl0eSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9GUk9NX0NBVEFMT0c6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJDYXRhbG9nICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0ZST01fQzE0TjoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIkMxNE4gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRlJPTV9YU0xUOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiWFNMVCAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChjb2RlID09IFhNTF9FUlJfT0spCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKGxldmVsKSB7CisgICAgICAgIGNhc2UgWE1MX0VSUl9OT05FOgorICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiOiAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfV0FSTklORzoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIndhcm5pbmcgOiAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FUlJfRVJST1I6CisgICAgICAgICAgICBjaGFubmVsKGRhdGEsICJlcnJvciA6ICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VSUl9GQVRBTDoKKyAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgImVycm9yIDogIik7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKGNvZGUgPT0gWE1MX0VSUl9PSykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChzdHIgIT0gTlVMTCkgeworICAgICAgICBpbnQgbGVuOworCWxlbiA9IHhtbFN0cmxlbigoY29uc3QgeG1sQ2hhciAqKXN0cik7CisJaWYgKChsZW4gPiAwKSAmJiAoc3RyW2xlbiAtIDFdICE9ICdcbicpKQorCSAgICBjaGFubmVsKGRhdGEsICIlc1xuIiwgc3RyKTsKKwllbHNlCisJICAgIGNoYW5uZWwoZGF0YSwgIiVzIiwgc3RyKTsKKyAgICB9IGVsc2UgeworICAgICAgICBjaGFubmVsKGRhdGEsICIlc1xuIiwgIm91dCBvZiBtZW1vcnkgZXJyb3IiKTsKKyAgICB9CisgICAgaWYgKGNvZGUgPT0gWE1MX0VSUl9PSykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0SW50ZXJuYWwoaW5wdXQsIGNoYW5uZWwsIGRhdGEpOworICAgICAgICBpZiAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChjdXItPmZpbGVuYW1lKQorICAgICAgICAgICAgICAgIGNoYW5uZWwoZGF0YSwgIiVzOiVkOiBcbiIsIGN1ci0+ZmlsZW5hbWUsIGN1ci0+bGluZSk7CisgICAgICAgICAgICBlbHNlIGlmICgobGluZSAhPSAwKSAmJiAoZG9tYWluID09IFhNTF9GUk9NX1BBUlNFUikpCisgICAgICAgICAgICAgICAgY2hhbm5lbChkYXRhLCAiRW50aXR5OiBsaW5lICVkOiBcbiIsIGN1ci0+bGluZSk7CisgICAgICAgICAgICB4bWxQYXJzZXJQcmludEZpbGVDb250ZXh0SW50ZXJuYWwoY3VyLCBjaGFubmVsLCBkYXRhKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoKGRvbWFpbiA9PSBYTUxfRlJPTV9YUEFUSCkgJiYgKGVyci0+c3RyMSAhPSBOVUxMKSAmJgorICAgICAgICAoZXJyLT5pbnQxIDwgMTAwKSAmJgorCShlcnItPmludDEgPCB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKillcnItPnN0cjEpKSkgeworCXhtbENoYXIgYnVmWzE1MF07CisJaW50IGk7CisKKwljaGFubmVsKGRhdGEsICIlc1xuIiwgZXJyLT5zdHIxKTsKKwlmb3IgKGk9MDtpIDwgZXJyLT5pbnQxO2krKykKKwkgICAgIGJ1ZltpXSA9ICcgJzsKKwlidWZbaSsrXSA9ICdeJzsKKwlidWZbaV0gPSAwOworCWNoYW5uZWwoZGF0YSwgIiVzXG4iLCBidWYpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK2luaXRpYWxpemVMaWJ4bWwyKHZvaWQpIHsKKyAgICB4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZSA9IDA7CisgICAgeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0KDApOworCisgICAgeG1sTWVtU2V0dXAoeG1sTWVtRnJlZSwgeG1sTWVtTWFsbG9jLCB4bWxNZW1SZWFsbG9jLCB4bWxNZW1vcnlTdHJkdXApOworICAgIHhtbEluaXRQYXJzZXIoKTsKKyAgICB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcih0ZXN0RXh0ZXJuYWxFbnRpdHlMb2FkZXIpOworICAgIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMoTlVMTCwgdGVzdFN0cnVjdHVyZWRFcnJvckhhbmRsZXIpOworICAgIC8qCisgICAgICogcmVnaXN0ZXIgdGhlIG5ldyBJL08gaGFuZGxlcnMKKyAgICAgKi8KKyAgICBpZiAoeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyhodWdlTWF0Y2gsIGh1Z2VPcGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh1Z2VSZWFkLCBodWdlQ2xvc2UpIDwgMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byByZWdpc3RlciBIdWdlIGhhbmRsZXJcbiIpOworCWV4aXQoMSk7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlGaWxlIG5hbWUgYW5kIHBhdGggdXRpbGl0aWVzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGNvbnN0IGNoYXIgKmJhc2VGaWxlbmFtZShjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIGNvbnN0IGNoYXIgKmN1cjsKKyAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGN1ciA9ICZmaWxlbmFtZVtzdHJsZW4oZmlsZW5hbWUpXTsKKyAgICB3aGlsZSAoKGN1ciA+IGZpbGVuYW1lKSAmJiAoKmN1ciAhPSAnLycpKQorICAgICAgICBjdXItLTsKKyAgICBpZiAoKmN1ciA9PSAnLycpCisgICAgICAgIHJldHVybihjdXIgKyAxKTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworc3RhdGljIGNoYXIgKnJlc3VsdEZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3VmZml4KSB7CisgICAgY29uc3QgY2hhciAqYmFzZTsKKyAgICBjaGFyIHJlc1s1MDBdOworICAgIGNoYXIgc3VmZml4YnVmZls1MDBdOworCisvKioqKioqKioqKioqKgorICAgIGlmICgoZmlsZW5hbWVbMF0gPT0gJ3QnKSAmJiAoZmlsZW5hbWVbMV0gPT0gJ2UnKSAmJgorICAgICAgICAoZmlsZW5hbWVbMl0gPT0gJ3MnKSAmJiAoZmlsZW5hbWVbM10gPT0gJ3QnKSAmJgorCShmaWxlbmFtZVs0XSA9PSAnLycpKQorCWZpbGVuYW1lID0gJmZpbGVuYW1lWzVdOworICoqKioqKioqKioqKiovCisKKyAgICBiYXNlID0gYmFzZUZpbGVuYW1lKGZpbGVuYW1lKTsKKyAgICBpZiAoc3VmZml4ID09IE5VTEwpCisgICAgICAgIHN1ZmZpeCA9ICIudG1wIjsKKyAgICBpZiAob3V0ID09IE5VTEwpCisgICAgICAgIG91dCA9ICIiOworCisgICAgc3RybmNweShzdWZmaXhidWZmLHN1ZmZpeCw0OTkpOworI2lmZGVmIFZNUworICAgIGlmKHN0cnN0cihiYXNlLCIuIikgJiYgc3VmZml4YnVmZlswXT09Jy4nKQorICAgICAgc3VmZml4YnVmZlswXT0nXyc7CisjZW5kaWYKKworICAgIHNucHJpbnRmKHJlcywgNDk5LCAiJXMlcyVzIiwgb3V0LCBiYXNlLCBzdWZmaXhidWZmKTsKKyAgICByZXNbNDk5XSA9IDA7CisgICAgcmV0dXJuKHN0cmR1cChyZXMpKTsKK30KKworc3RhdGljIGludCBjaGVja1Rlc3RGaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgc3RydWN0IHN0YXQgYnVmOworCisgICAgaWYgKHN0YXQoZmlsZW5hbWUsICZidWYpID09IC0xKQorICAgICAgICByZXR1cm4oMCk7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKyAgICBpZiAoIShidWYuc3RfbW9kZSAmIF9TX0lGUkVHKSkKKyAgICAgICAgcmV0dXJuKDApOworI2Vsc2UKKyAgICBpZiAoIVNfSVNSRUcoYnVmLnN0X21vZGUpKQorICAgICAgICByZXR1cm4oMCk7CisjZW5kaWYKKworICAgIHJldHVybigxKTsKK30KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVRlc3QgdG8gZGV0ZWN0IG9yIG5vdCByZWN1cnNpdmUgZW50aXRpZXMJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKgorICogcmVjdXJzaXZlRGV0ZWN0VGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzOiB1bnVzZWQKKyAqCisgKiBQYXJzZSBhIGZpbGUgbG9hZGluZyBEVEQgYW5kIHJlcGxhY2luZyBlbnRpdGllcyBjaGVjayBpdCBmYWlscyBmb3IKKyAqIGxvbCBjYXNlcworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3JlY3Vyc2l2ZURldGVjdFRlc3QoY29uc3QgY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWx0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisJICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisgICAgaW50IHJlcyA9IDA7CisgICAgaW50IG1lbTsKKworICAgIG5iX3Rlc3RzKys7CisKKyAgICBjdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIG1lbSA9IHhtbE1lbVVzZWQoKTsKKyAgICAvKgorICAgICAqIGJhc2Ugb2YgdGhlIHRlc3QsIHBhcnNlIHdpdGggdGhlIG9sZCBBUEkKKyAgICAgKi8KKyAgICBkb2MgPSB4bWxDdHh0UmVhZEZpbGUoY3R4dCwgZmlsZW5hbWUsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9QQVJTRV9OT0VOVCB8IFhNTF9QQVJTRV9EVERMT0FEKTsKKyAgICBpZiAoKGRvYyAhPSBOVUxMKSB8fCAoY3R4dC0+bGFzdEVycm9yLmNvZGUgIT0gWE1MX0VSUl9FTlRJVFlfTE9PUCkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZGV0ZWN0IHJlY3Vyc2lvbiBpbiAlc1xuIiwgZmlsZW5hbWUpOworCXhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXhtbEZyZWVEb2MoZG9jKTsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKworICAgIHJldHVybihyZXMpOworfQorCisvKioKKyAqIG5vdFJlY3Vyc2l2ZURldGVjdFRlc3Q6CisgKiBAZmlsZW5hbWU6IHRoZSBmaWxlIHRvIHBhcnNlCisgKiBAcmVzdWx0OiB0aGUgZmlsZSB3aXRoIGV4cGVjdGVkIHJlc3VsdAorICogQGVycjogdGhlIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlczogdW51c2VkCisgKgorICogUGFyc2UgYSBmaWxlIGxvYWRpbmcgRFREIGFuZCByZXBsYWNpbmcgZW50aXRpZXMgY2hlY2sgaXQgd29ya3MgZm9yCisgKiBnb29kIGNhc2VzCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW4gZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAorbm90UmVjdXJzaXZlRGV0ZWN0VGVzdChjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHQgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICplcnIgQVRUUklCVVRFX1VOVVNFRCwKKwkgICAgIGludCBvcHRpb25zIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICBpbnQgcmVzID0gMDsKKyAgICBpbnQgbWVtOworCisgICAgbmJfdGVzdHMrKzsKKworICAgIGN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisgICAgbWVtID0geG1sTWVtVXNlZCgpOworICAgIC8qCisgICAgICogYmFzZSBvZiB0aGUgdGVzdCwgcGFyc2Ugd2l0aCB0aGUgb2xkIEFQSQorICAgICAqLworICAgIGRvYyA9IHhtbEN0eHRSZWFkRmlsZShjdHh0LCBmaWxlbmFtZSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1BBUlNFX05PRU5UIHwgWE1MX1BBUlNFX0RURExPQUQpOworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBwYXJzZSBjb3JyZWN0IGZpbGUgJXNcbiIsIGZpbGVuYW1lKTsKKwl4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICB4bWxGcmVlRG9jKGRvYyk7CisgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisKKyAgICByZXR1cm4ocmVzKTsKK30KKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorLyoqCisgKiBub3RSZWN1cnNpdmVIdWdlVGVzdDoKKyAqIEBmaWxlbmFtZTogdGhlIGZpbGUgdG8gcGFyc2UKKyAqIEByZXN1bHQ6IHRoZSBmaWxlIHdpdGggZXhwZWN0ZWQgcmVzdWx0CisgKiBAZXJyOiB0aGUgZmlsZSB3aXRoIGVycm9yIG1lc3NhZ2VzOiB1bnVzZWQKKyAqCisgKiBQYXJzZSBhIG1lbW9yeSBnZW5lcmF0ZWQgZmlsZQorICogZ29vZCBjYXNlcworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK25vdFJlY3Vyc2l2ZUh1Z2VUZXN0KGNvbnN0IGNoYXIgKmZpbGVuYW1lIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdWx0IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyIEFUVFJJQlVURV9VTlVTRUQsCisJICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgaW50IHJlcyA9IDA7CisgICAgaW50IHJldDsKKworICAgIG5iX3Rlc3RzKys7CisKKyAgICByZWFkZXIgPSB4bWxSZWFkZXJGb3JGaWxlKCJodWdlOnRlc3QiICwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9QQVJTRV9OT0VOVCB8IFhNTF9QQVJTRV9EVERMT0FEKTsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gb3BlbiBodWdlOnRlc3RcbiIpOworCXJldHVybigxKTsKKyAgICB9CisgICAgcmV0ID0geG1sVGV4dFJlYWRlclJlYWQocmVhZGVyKTsKKyAgICB3aGlsZSAocmV0ID09IDEpIHsKKyAgICAgICAgcmV0ID0geG1sVGV4dFJlYWRlclJlYWQocmVhZGVyKTsKKyAgICB9CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHBhcnNlciBodWdlOnRlc3Qgd2l0aCBlbnRpdGllc1xuIik7CisJcmVzID0gMTsKKyAgICB9CisgICAgeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKworICAgIHJldHVybihyZXMpOworfQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlUZXN0cyBEZXNjcmlwdGlvbnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMKK3Rlc3REZXNjIHRlc3REZXNjcmlwdGlvbnNbXSA9IHsKKyAgICB7ICJQYXJzaW5nIHJlY3Vyc2l2ZSB0ZXN0IGNhc2VzIiAsCisgICAgICByZWN1cnNpdmVEZXRlY3RUZXN0LCAiLi90ZXN0L3JlY3Vyc2UvbG9sKi54bWwiLCBOVUxMLCBOVUxMLCBOVUxMLAorICAgICAgMCB9LAorICAgIHsgIlBhcnNpbmcgbm9uLXJlY3Vyc2l2ZSB0ZXN0IGNhc2VzIiAsCisgICAgICBub3RSZWN1cnNpdmVEZXRlY3RUZXN0LCAiLi90ZXN0L3JlY3Vyc2UvZ29vZCoueG1sIiwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgIDAgfSwKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKyAgICB7ICJQYXJzaW5nIG5vbi1yZWN1cnNpdmUgaHVnZSBjYXNlIiAsCisgICAgICBub3RSZWN1cnNpdmVIdWdlVGVzdCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgIDAgfSwKKyNlbmRpZgorICAgIHtOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAwfQorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJVGhlIG1haW4gY29kZSBkcml2aW5nIHRoZSB0ZXN0cwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK2xhdW5jaFRlc3RzKHRlc3REZXNjUHRyIHRzdCkgeworICAgIGludCByZXMgPSAwLCBlcnIgPSAwOworICAgIHNpemVfdCBpOworICAgIGNoYXIgKnJlc3VsdDsKKyAgICBjaGFyICplcnJvcjsKKyAgICBpbnQgbWVtOworCisgICAgaWYgKHRzdCA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmICh0c3QtPmluICE9IE5VTEwpIHsKKwlnbG9iX3QgZ2xvYmJ1ZjsKKworCWdsb2JidWYuZ2xfb2ZmcyA9IDA7CisJZ2xvYih0c3QtPmluLCBHTE9CX0RPT0ZGUywgTlVMTCwgJmdsb2JidWYpOworCWZvciAoaSA9IDA7aSA8IGdsb2JidWYuZ2xfcGF0aGM7aSsrKSB7CisJICAgIGlmICghY2hlY2tUZXN0RmlsZShnbG9iYnVmLmdsX3BhdGh2W2ldKSkKKwkgICAgICAgIGNvbnRpbnVlOworCSAgICBpZiAodHN0LT5zdWZmaXggIT0gTlVMTCkgeworCQlyZXN1bHQgPSByZXN1bHRGaWxlbmFtZShnbG9iYnVmLmdsX3BhdGh2W2ldLCB0c3QtPm91dCwKKwkJCQkJdHN0LT5zdWZmaXgpOworCQlpZiAocmVzdWx0ID09IE5VTEwpIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiT3V0IG9mIG1lbW9yeSAhXG4iKTsKKwkJICAgIGZhdGFsRXJyb3IoKTsKKwkJfQorCSAgICB9IGVsc2UgeworCSAgICAgICAgcmVzdWx0ID0gTlVMTDsKKwkgICAgfQorCSAgICBpZiAodHN0LT5lcnIgIT0gTlVMTCkgeworCQllcnJvciA9IHJlc3VsdEZpbGVuYW1lKGdsb2JidWYuZ2xfcGF0aHZbaV0sIHRzdC0+b3V0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICB0c3QtPmVycik7CisJCWlmIChlcnJvciA9PSBOVUxMKSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgIk91dCBvZiBtZW1vcnkgIVxuIik7CisJCSAgICBmYXRhbEVycm9yKCk7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGVycm9yID0gTlVMTDsKKwkgICAgfQorCSAgICBpZiAoKHJlc3VsdCkgJiYoIWNoZWNrVGVzdEZpbGUocmVzdWx0KSkpIHsKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWlzc2luZyByZXN1bHQgZmlsZSAlc1xuIiwgcmVzdWx0KTsKKwkgICAgfSBlbHNlIGlmICgoZXJyb3IpICYmKCFjaGVja1Rlc3RGaWxlKGVycm9yKSkpIHsKKwkgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWlzc2luZyBlcnJvciBmaWxlICVzXG4iLCBlcnJvcik7CisJICAgIH0gZWxzZSB7CisJCW1lbSA9IHhtbE1lbVVzZWQoKTsKKwkJZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPSAwOworCQl0ZXN0RXJyb3JzU2l6ZSA9IDA7CisJCXRlc3RFcnJvcnNbMF0gPSAwOworCQlyZXMgPSB0c3QtPmZ1bmMoZ2xvYmJ1Zi5nbF9wYXRodltpXSwgcmVzdWx0LCBlcnJvciwKKwkJICAgICAgICAgICAgICAgIHRzdC0+b3B0aW9ucyB8IFhNTF9QQVJTRV9DT01QQUNUKTsKKwkJeG1sUmVzZXRMYXN0RXJyb3IoKTsKKwkJaWYgKHJlcyAhPSAwKSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZpbGUgJXMgZ2VuZXJhdGVkIGFuIGVycm9yXG4iLAorCQkgICAgICAgICAgICBnbG9iYnVmLmdsX3BhdGh2W2ldKTsKKwkJICAgIG5iX2Vycm9ycysrOworCQkgICAgZXJyKys7CisJCX0KKwkJZWxzZSBpZiAoeG1sTWVtVXNlZCgpICE9IG1lbSkgeworCQkgICAgaWYgKCh4bWxNZW1Vc2VkKCkgIT0gbWVtKSAmJgorCQkgICAgICAgIChleHRyYU1lbW9yeUZyb21SZXNvbHZlciA9PSAwKSkgeworCQkJZnByaW50ZihzdGRlcnIsICJGaWxlICVzIGxlYWtlZCAlZCBieXRlc1xuIiwKKwkJCQlnbG9iYnVmLmdsX3BhdGh2W2ldLCB4bWxNZW1Vc2VkKCkgLSBtZW0pOworCQkJbmJfbGVha3MrKzsKKwkJCWVycisrOworCQkgICAgfQorCQl9CisJCXRlc3RFcnJvcnNTaXplID0gMDsKKwkgICAgfQorCSAgICBpZiAocmVzdWx0KQorCQlmcmVlKHJlc3VsdCk7CisJICAgIGlmIChlcnJvcikKKwkJZnJlZShlcnJvcik7CisJfQorCWdsb2JmcmVlKCZnbG9iYnVmKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RXJyb3JzU2l6ZSA9IDA7CisJdGVzdEVycm9yc1swXSA9IDA7CisJZXh0cmFNZW1vcnlGcm9tUmVzb2x2ZXIgPSAwOworICAgICAgICByZXMgPSB0c3QtPmZ1bmMoTlVMTCwgTlVMTCwgTlVMTCwgdHN0LT5vcHRpb25zKTsKKwlpZiAocmVzICE9IDApIHsKKwkgICAgbmJfZXJyb3JzKys7CisJICAgIGVycisrOworCX0KKyAgICB9CisgICAgcmV0dXJuKGVycik7Cit9CisKK3N0YXRpYyBpbnQgdmVyYm9zZSA9IDA7CitzdGF0aWMgaW50IHRlc3RzX3F1aWV0ID0gMDsKKworc3RhdGljIGludAorcnVudGVzdChpbnQgaSkgeworICAgIGludCByZXQgPSAwLCByZXM7CisgICAgaW50IG9sZF9lcnJvcnMsIG9sZF90ZXN0cywgb2xkX2xlYWtzOworCisgICAgb2xkX2Vycm9ycyA9IG5iX2Vycm9yczsKKyAgICBvbGRfdGVzdHMgPSBuYl90ZXN0czsKKyAgICBvbGRfbGVha3MgPSBuYl9sZWFrczsKKyAgICBpZiAoKHRlc3RzX3F1aWV0ID09IDApICYmICh0ZXN0RGVzY3JpcHRpb25zW2ldLmRlc2MgIT0gTlVMTCkpCisJcHJpbnRmKCIjIyAlc1xuIiwgdGVzdERlc2NyaXB0aW9uc1tpXS5kZXNjKTsKKyAgICByZXMgPSBsYXVuY2hUZXN0cygmdGVzdERlc2NyaXB0aW9uc1tpXSk7CisgICAgaWYgKHJlcyAhPSAwKQorCXJldCsrOworICAgIGlmICh2ZXJib3NlKSB7CisJaWYgKChuYl9lcnJvcnMgPT0gb2xkX2Vycm9ycykgJiYgKG5iX2xlYWtzID09IG9sZF9sZWFrcykpCisJICAgIHByaW50ZigiUmFuICVkIHRlc3RzLCBubyBlcnJvcnNcbiIsIG5iX3Rlc3RzIC0gb2xkX3Rlc3RzKTsKKwllbHNlCisJICAgIHByaW50ZigiUmFuICVkIHRlc3RzLCAlZCBlcnJvcnMsICVkIGxlYWtzXG4iLAorCQkgICBuYl90ZXN0cyAtIG9sZF90ZXN0cywKKwkJICAgbmJfZXJyb3JzIC0gb2xkX2Vycm9ycywKKwkJICAgbmJfbGVha3MgLSBvbGRfbGVha3MpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworaW50CittYWluKGludCBhcmdjIEFUVFJJQlVURV9VTlVTRUQsIGNoYXIgKiphcmd2IEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpbnQgaSwgYSwgcmV0ID0gMDsKKyAgICBpbnQgc3Vic2V0ID0gMDsKKworICAgIGluaXRpYWxpemVMaWJ4bWwyKCk7CisKKyAgICBmb3IgKGEgPSAxOyBhIDwgYXJnYzthKyspIHsKKyAgICAgICAgaWYgKCFzdHJjbXAoYXJndlthXSwgIi12IikpCisJICAgIHZlcmJvc2UgPSAxOworICAgICAgICBlbHNlIGlmICghc3RyY21wKGFyZ3ZbYV0sICItcXVpZXQiKSkKKwkgICAgdGVzdHNfcXVpZXQgPSAxOworCWVsc2UgeworCSAgICBmb3IgKGkgPSAwOyB0ZXN0RGVzY3JpcHRpb25zW2ldLmZ1bmMgIT0gTlVMTDsgaSsrKSB7CisJICAgICAgICBpZiAoc3Ryc3RyKHRlc3REZXNjcmlwdGlvbnNbaV0uZGVzYywgYXJndlthXSkpIHsKKwkJICAgIHJldCArPSBydW50ZXN0KGkpOworCQkgICAgc3Vic2V0Kys7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKHN1YnNldCA9PSAwKSB7CisJZm9yIChpID0gMDsgdGVzdERlc2NyaXB0aW9uc1tpXS5mdW5jICE9IE5VTEw7IGkrKykgeworCSAgICByZXQgKz0gcnVudGVzdChpKTsKKwl9CisgICAgfQorICAgIGlmICgobmJfZXJyb3JzID09IDApICYmIChuYl9sZWFrcyA9PSAwKSkgeworICAgICAgICByZXQgPSAwOworCXByaW50ZigiVG90YWwgJWQgdGVzdHMsIG5vIGVycm9yc1xuIiwKKwkgICAgICAgbmJfdGVzdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IDE7CisJcHJpbnRmKCJUb3RhbCAlZCB0ZXN0cywgJWQgZXJyb3JzLCAlZCBsZWFrc1xuIiwKKwkgICAgICAgbmJfdGVzdHMsIG5iX2Vycm9ycywgbmJfbGVha3MpOworICAgIH0KKyAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgeG1sTWVtb3J5RHVtcCgpOworCisgICAgcmV0dXJuKHJldCk7Cit9CmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3RocmVhZHMuYyBiL2xpYnhtbDItMi43LjcvdGhyZWFkcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZmQyYzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3RocmVhZHMuYwpAQCAtMCwwICsxLDEwMzIgQEAKKy8qKgorICogdGhyZWFkcy5jOiBzZXQgb2YgZ2VuZXJpYyB0aHJlYWRpbmcgcmVsYXRlZCByb3V0aW5lcworICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBHYXJ5IFBlbm5pbmd0b24gPEdhcnkuUGVubmluZ3RvbkB1ay5zdW4uY29tPgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGxpYnhtbC90aHJlYWRzLmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfVU5JU1REX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfUFRIUkVBRF9ICisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2VsaWYgZGVmaW5lZCBIQVZFX1dJTjMyX1RIUkVBRFMKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaWZuZGVmIEhBVkVfQ09NUElMRVJfVExTCisjaW5jbHVkZSA8cHJvY2Vzcy5oPgorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEhBVkVfQkVPU19USFJFQURTCisjaW5jbHVkZSA8T1MuaD4KKyNpbmNsdWRlIDxUTFMuaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChTT0xBUklTKQorI2luY2x1ZGUgPG5vdGUuaD4KKyNlbmRpZgorCisvKiAjZGVmaW5lIERFQlVHX1RIUkVBRFMgKi8KKworI2lmZGVmIEhBVkVfUFRIUkVBRF9ICisKK3N0YXRpYyBpbnQgbGlieG1sX2lzX3RocmVhZGVkID0gLTE7CisjaWZkZWYgX19HTlVDX18KKyNpZmRlZiBsaW51eAorI2lmIChfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDMpIHx8IChfX0dOVUNfXyA+IDMpCitleHRlcm4gaW50IHB0aHJlYWRfb25jZSAocHRocmVhZF9vbmNlX3QgKl9fb25jZV9jb250cm9sLAorICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpfX2luaXRfcm91dGluZSkgKHZvaWQpKQorCSAgIF9fYXR0cmlidXRlKCh3ZWFrKSk7CitleHRlcm4gdm9pZCAqcHRocmVhZF9nZXRzcGVjaWZpYyAocHRocmVhZF9rZXlfdCBfX2tleSkKKwkgICBfX2F0dHJpYnV0ZSgod2VhaykpOworZXh0ZXJuIGludCBwdGhyZWFkX3NldHNwZWNpZmljIChwdGhyZWFkX2tleV90IF9fa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHZvaWQgKl9fcG9pbnRlcikKKwkgICBfX2F0dHJpYnV0ZSgod2VhaykpOworZXh0ZXJuIGludCBwdGhyZWFkX2tleV9jcmVhdGUgKHB0aHJlYWRfa2V5X3QgKl9fa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpfX2Rlc3RyX2Z1bmN0aW9uKSAodm9pZCAqKSkKKwkgICBfX2F0dHJpYnV0ZSgod2VhaykpOworZXh0ZXJuIGludCBwdGhyZWFkX2tleV9kZWxldGUgKHB0aHJlYWRfa2V5X3QgX19rZXkpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9tdXRleF9pbml0ICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9tdXRleF9kZXN0cm95ICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9tdXRleF9sb2NrICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9tdXRleF91bmxvY2sgKCkKKwkgICBfX2F0dHJpYnV0ZSgod2VhaykpOworZXh0ZXJuIGludCBwdGhyZWFkX2NvbmRfaW5pdCAoKQorCSAgIF9fYXR0cmlidXRlKCh3ZWFrKSk7CitleHRlcm4gaW50IHB0aHJlYWRfY29uZF9kZXN0cm95ICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9jb25kX3dhaXQgKCkKKwkgICBfX2F0dHJpYnV0ZSgod2VhaykpOworZXh0ZXJuIGludCBwdGhyZWFkX2VxdWFsICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBwdGhyZWFkX3QgcHRocmVhZF9zZWxmICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9rZXlfY3JlYXRlICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9rZXlfZGVsZXRlICgpCisJICAgX19hdHRyaWJ1dGUoKHdlYWspKTsKK2V4dGVybiBpbnQgcHRocmVhZF9jb25kX3NpZ25hbCAoKQorCSAgIF9fYXR0cmlidXRlKCh3ZWFrKSk7CisjZW5kaWYKKyNlbmRpZiAvKiBsaW51eCAqLworI2VuZGlmIC8qIF9fR05VQ19fICovCisjZW5kaWYgLyogSEFWRV9QVEhSRUFEX0ggKi8KKworLyoKKyAqIFRPRE86IHRoaXMgbW9kdWxlIHN0aWxsIHVzZXMgbWFsbG9jL2ZyZWUgYW5kIG5vdCB4bWxNYWxsb2MveG1sRnJlZQorICogICAgICAgdG8gYXZvaWQgc29tZSBjcmF6eW5lc3Mgc2luY2UgeG1sTWFsbG9jL3htbEZyZWUgbWF5IGFjdHVhbGx5CisgKiAgICAgICBiZSBob3N0ZWQgb24gYWxsb2NhdGVkIGJsb2NrcyBuZWVkaW5nIHRoZW0gZm9yIHRoZSBhbGxvY2F0aW9uIC4uLgorICovCisKKy8qCisgKiB4bWxNdXRleCBhcmUgYSBzaW1wbGUgbXV0dWFsIGV4Y2VwdGlvbiBsb2NrcworICovCitzdHJ1Y3QgX3htbE11dGV4IHsKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIHB0aHJlYWRfbXV0ZXhfdCBsb2NrOworI2VsaWYgZGVmaW5lZCBIQVZFX1dJTjMyX1RIUkVBRFMKKyAgICBIQU5ETEUgbXV0ZXg7CisjZWxpZiBkZWZpbmVkIEhBVkVfQkVPU19USFJFQURTCisgICAgc2VtX2lkIHNlbTsKKyAgICB0aHJlYWRfaWQgdGlkOworI2Vsc2UKKyAgICBpbnQgZW1wdHk7CisjZW5kaWYKK307CisKKy8qCisgKiB4bWxSTXV0ZXggYXJlIHJlZW50cmFudCBtdXR1YWwgZXhjZXB0aW9uIGxvY2tzCisgKi8KK3N0cnVjdCBfeG1sUk11dGV4IHsKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIHB0aHJlYWRfbXV0ZXhfdCBsb2NrOworICAgIHVuc2lnbmVkIGludCBoZWxkOworICAgIHVuc2lnbmVkIGludCB3YWl0ZXJzOworICAgIHB0aHJlYWRfdCB0aWQ7CisgICAgcHRocmVhZF9jb25kX3QgY3Y7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworICAgIENSSVRJQ0FMX1NFQ1RJT04gY3M7CisgICAgdW5zaWduZWQgaW50IGNvdW50OworI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworICAgIHhtbE11dGV4UHRyIGxvY2s7CisgICAgdGhyZWFkX2lkIHRpZDsKKyAgICBpbnQzMiBjb3VudDsKKyNlbHNlCisgICAgaW50IGVtcHR5OworI2VuZGlmCit9OworCisvKgorICogVGhpcyBtb2R1bGUgc3RpbGwgaGFzIHNvbWUgaW50ZXJuYWwgc3RhdGljIGRhdGEuCisgKiAgIC0geG1sTGlicmFyeUxvY2sgYSBnbG9iYWwgbG9jaworICogICAtIGdsb2JhbGtleSB1c2VkIGZvciBwZXItdGhyZWFkIGRhdGEKKyAqLworCisjaWZkZWYgSEFWRV9QVEhSRUFEX0gKK3N0YXRpYyBwdGhyZWFkX2tleV90IGdsb2JhbGtleTsKK3N0YXRpYyBwdGhyZWFkX3QgbWFpbnRocmVhZDsKK3N0YXRpYyBwdGhyZWFkX29uY2VfdCBvbmNlX2NvbnRyb2wgPSBQVEhSRUFEX09OQ0VfSU5JVDsKK3N0YXRpYyBwdGhyZWFkX211dGV4X3QgZ2xvYmFsX2luaXRfbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworI2lmIGRlZmluZWQoSEFWRV9DT01QSUxFUl9UTFMpCitzdGF0aWMgX19kZWNsc3BlYyh0aHJlYWQpIHhtbEdsb2JhbFN0YXRlIHRsc3RhdGU7CitzdGF0aWMgX19kZWNsc3BlYyh0aHJlYWQpIGludCB0bHN0YXRlX2luaXRlZCA9IDA7CisjZWxzZSAvKiBIQVZFX0NPTVBJTEVSX1RMUyAqLworc3RhdGljIERXT1JEIGdsb2JhbGtleSA9IFRMU19PVVRfT0ZfSU5ERVhFUzsKKyNlbmRpZiAvKiBIQVZFX0NPTVBJTEVSX1RMUyAqLworc3RhdGljIERXT1JEIG1haW50aHJlYWQ7CitzdGF0aWMgc3RydWN0IHsKKyAgICBEV09SRCBkb25lOworICAgIERXT1JEIGNvbnRyb2w7Cit9IHJ1bl9vbmNlID0geyAwLCAwfTsKK3N0YXRpYyB2b2xhdGlsZSBMUENSSVRJQ0FMX1NFQ1RJT04gZ2xvYmFsX2luaXRfbG9jayA9IE5VTEw7CisKKy8qIGVuZGlmIEhBVkVfV0lOMzJfVEhSRUFEUyAqLworI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworaW50MzIgZ2xvYmFsa2V5ID0gMDsKK3RocmVhZF9pZCBtYWludGhyZWFkID0gMDsKK2ludDMyIHJ1bl9vbmNlX2luaXQgPSAwOworc3RhdGljIGludDMyIGdsb2JhbF9pbml0X2xvY2sgPSAtMTsKK3N0YXRpYyB2aW50MzIgZ2xvYmFsX2luaXRfY291bnQgPSAwOworI2VuZGlmCisKK3N0YXRpYyB4bWxSTXV0ZXhQdHIgeG1sTGlicmFyeUxvY2sgPSBOVUxMOworCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECitzdGF0aWMgdm9pZCB4bWxPbmNlSW5pdCh2b2lkKTsKKyNlbmRpZgorCisvKioKKyAqIHhtbE5ld011dGV4OgorICoKKyAqIHhtbE5ld011dGV4KCkgaXMgdXNlZCB0byBhbGxvY2F0ZSBhIGxpYnhtbDIgdG9rZW4gc3RydWN0IGZvciB1c2UgaW4KKyAqIHN5bmNocm9uaXppbmcgYWNjZXNzIHRvIGRhdGEuCisgKgorICogUmV0dXJucyBhIG5ldyBzaW1wbGUgbXV0ZXggcG9pbnRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sTXV0ZXhQdHIKK3htbE5ld011dGV4KHZvaWQpCit7CisgICAgeG1sTXV0ZXhQdHIgdG9rOworCisgICAgaWYgKCh0b2sgPSBtYWxsb2Moc2l6ZW9mKHhtbE11dGV4KSkpID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisjaWZkZWYgSEFWRV9QVEhSRUFEX0gKKyAgICBpZiAobGlieG1sX2lzX3RocmVhZGVkICE9IDApCisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmdG9rLT5sb2NrLCBOVUxMKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9XSU4zMl9USFJFQURTCisgICAgdG9rLT5tdXRleCA9IENyZWF0ZU11dGV4KE5VTEwsIEZBTFNFLCBOVUxMKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKKyAgICBpZiAoKHRvay0+c2VtID0gY3JlYXRlX3NlbSgxLCAieG1sTXV0ZXgiKSkgPCBCX09LKSB7CisgICAgICAgIGZyZWUodG9rKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHRvay0+dGlkID0gLTE7CisjZW5kaWYKKyAgICByZXR1cm4gKHRvayk7Cit9CisKKy8qKgorICogeG1sRnJlZU11dGV4OgorICogQHRvazogIHRoZSBzaW1wbGUgbXV0ZXgKKyAqCisgKiB4bWxGcmVlTXV0ZXgoKSBpcyB1c2VkIHRvIHJlY2xhaW0gcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGxpYnhtbDIgdG9rZW4KKyAqIHN0cnVjdC4KKyAqLwordm9pZAoreG1sRnJlZU11dGV4KHhtbE11dGV4UHRyIHRvaykKK3sKKyAgICBpZiAodG9rID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworI2lmZGVmIEhBVkVfUFRIUkVBRF9ICisgICAgaWYgKGxpYnhtbF9pc190aHJlYWRlZCAhPSAwKQorICAgICAgICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koJnRvay0+bG9jayk7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworICAgIENsb3NlSGFuZGxlKHRvay0+bXV0ZXgpOworI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworICAgIGRlbGV0ZV9zZW0odG9rLT5zZW0pOworI2VuZGlmCisgICAgZnJlZSh0b2spOworfQorCisvKioKKyAqIHhtbE11dGV4TG9jazoKKyAqIEB0b2s6ICB0aGUgc2ltcGxlIG11dGV4CisgKgorICogeG1sTXV0ZXhMb2NrKCkgaXMgdXNlZCB0byBsb2NrIGEgbGlieG1sMiB0b2tlbi4KKyAqLwordm9pZAoreG1sTXV0ZXhMb2NrKHhtbE11dGV4UHRyIHRvaykKK3sKKyAgICBpZiAodG9rID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIGlmIChsaWJ4bWxfaXNfdGhyZWFkZWQgIT0gMCkKKyAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZ0b2stPmxvY2spOworI2VsaWYgZGVmaW5lZCBIQVZFX1dJTjMyX1RIUkVBRFMKKyAgICBXYWl0Rm9yU2luZ2xlT2JqZWN0KHRvay0+bXV0ZXgsIElORklOSVRFKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKKyAgICBpZiAoYWNxdWlyZV9zZW0odG9rLT5zZW0pICE9IEJfTk9fRVJST1IpIHsKKyNpZmRlZiBERUJVR19USFJFQURTCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE11dGV4TG9jaygpOkJlT1M6Q291bGRuJ3QgYXF1aXJlIHNlbWFwaG9yZVxuIik7CisgICAgICAgIGV4aXQoKTsKKyNlbmRpZgorICAgIH0KKyAgICB0b2stPnRpZCA9IGZpbmRfdGhyZWFkKE5VTEwpOworI2VuZGlmCisKK30KKworLyoqCisgKiB4bWxNdXRleFVubG9jazoKKyAqIEB0b2s6ICB0aGUgc2ltcGxlIG11dGV4CisgKgorICogeG1sTXV0ZXhVbmxvY2soKSBpcyB1c2VkIHRvIHVubG9jayBhIGxpYnhtbDIgdG9rZW4uCisgKi8KK3ZvaWQKK3htbE11dGV4VW5sb2NrKHhtbE11dGV4UHRyIHRvaykKK3sKKyAgICBpZiAodG9rID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIGlmIChsaWJ4bWxfaXNfdGhyZWFkZWQgIT0gMCkKKyAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJnRvay0+bG9jayk7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworICAgIFJlbGVhc2VNdXRleCh0b2stPm11dGV4KTsKKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKKyAgICBpZiAodG9rLT50aWQgPT0gZmluZF90aHJlYWQoTlVMTCkpIHsKKyAgICAgICAgdG9rLT50aWQgPSAtMTsKKyAgICAgICAgcmVsZWFzZV9zZW0odG9rLT5zZW0pOworICAgIH0KKyNlbmRpZgorfQorCisvKioKKyAqIHhtbE5ld1JNdXRleDoKKyAqCisgKiB4bWxSTmV3TXV0ZXgoKSBpcyB1c2VkIHRvIGFsbG9jYXRlIGEgcmVlbnRyYW50IG11dGV4IGZvciB1c2UgaW4KKyAqIHN5bmNocm9uaXppbmcgYWNjZXNzIHRvIGRhdGEuIHRva2VuX3IgaXMgYSByZS1lbnRyYW50IGxvY2sgYW5kIHRodXMgdXNlZnVsCisgKiBmb3Igc3luY2hyb25pemluZyBhY2Nlc3MgdG8gZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgbWF5IGJlIG1hbmlwdWxhdGVkIGluIGEKKyAqIHJlY3Vyc2l2ZSBmYXNoaW9uLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyByZWVudHJhbnQgbXV0ZXggcG9pbnRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sUk11dGV4UHRyCit4bWxOZXdSTXV0ZXgodm9pZCkKK3sKKyAgICB4bWxSTXV0ZXhQdHIgdG9rOworCisgICAgaWYgKCh0b2sgPSBtYWxsb2Moc2l6ZW9mKHhtbFJNdXRleCkpKSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworI2lmZGVmIEhBVkVfUFRIUkVBRF9ICisgICAgaWYgKGxpYnhtbF9pc190aHJlYWRlZCAhPSAwKSB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmdG9rLT5sb2NrLCBOVUxMKTsKKyAgICAgICAgdG9rLT5oZWxkID0gMDsKKyAgICAgICAgdG9rLT53YWl0ZXJzID0gMDsKKyAgICAgICAgcHRocmVhZF9jb25kX2luaXQoJnRvay0+Y3YsIE5VTEwpOworICAgIH0KKyNlbGlmIGRlZmluZWQgSEFWRV9XSU4zMl9USFJFQURTCisgICAgSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbigmdG9rLT5jcyk7CisgICAgdG9rLT5jb3VudCA9IDA7CisjZWxpZiBkZWZpbmVkIEhBVkVfQkVPU19USFJFQURTCisgICAgaWYgKCh0b2stPmxvY2sgPSB4bWxOZXdNdXRleCgpKSA9PSBOVUxMKSB7CisgICAgICAgIGZyZWUodG9rKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHRvay0+Y291bnQgPSAwOworI2VuZGlmCisgICAgcmV0dXJuICh0b2spOworfQorCisvKioKKyAqIHhtbEZyZWVSTXV0ZXg6CisgKiBAdG9rOiAgdGhlIHJlZW50cmFudCBtdXRleAorICoKKyAqIHhtbFJGcmVlTXV0ZXgoKSBpcyB1c2VkIHRvIHJlY2xhaW0gcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhCisgKiByZWVudHJhbnQgbXV0ZXguCisgKi8KK3ZvaWQKK3htbEZyZWVSTXV0ZXgoeG1sUk11dGV4UHRyIHRvayBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGlmICh0b2sgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworI2lmZGVmIEhBVkVfUFRIUkVBRF9ICisgICAgaWYgKGxpYnhtbF9pc190aHJlYWRlZCAhPSAwKSB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmdG9rLT5sb2NrKTsKKyAgICAgICAgcHRocmVhZF9jb25kX2Rlc3Ryb3koJnRvay0+Y3YpOworICAgIH0KKyNlbGlmIGRlZmluZWQgSEFWRV9XSU4zMl9USFJFQURTCisgICAgRGVsZXRlQ3JpdGljYWxTZWN0aW9uKCZ0b2stPmNzKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKKyAgICB4bWxGcmVlTXV0ZXgodG9rLT5sb2NrKTsKKyNlbmRpZgorICAgIGZyZWUodG9rKTsKK30KKworLyoqCisgKiB4bWxSTXV0ZXhMb2NrOgorICogQHRvazogIHRoZSByZWVudHJhbnQgbXV0ZXgKKyAqCisgKiB4bWxSTXV0ZXhMb2NrKCkgaXMgdXNlZCB0byBsb2NrIGEgbGlieG1sMiB0b2tlbl9yLgorICovCit2b2lkCit4bWxSTXV0ZXhMb2NrKHhtbFJNdXRleFB0ciB0b2spCit7CisgICAgaWYgKHRvayA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisjaWZkZWYgSEFWRV9QVEhSRUFEX0gKKyAgICBpZiAobGlieG1sX2lzX3RocmVhZGVkID09IDApCisgICAgICAgIHJldHVybjsKKworICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmdG9rLT5sb2NrKTsKKyAgICBpZiAodG9rLT5oZWxkKSB7CisgICAgICAgIGlmIChwdGhyZWFkX2VxdWFsKHRvay0+dGlkLCBwdGhyZWFkX3NlbGYoKSkpIHsKKyAgICAgICAgICAgIHRvay0+aGVsZCsrOworICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJnRvay0+bG9jayk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0b2stPndhaXRlcnMrKzsKKyAgICAgICAgICAgIHdoaWxlICh0b2stPmhlbGQpCisgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3dhaXQoJnRvay0+Y3YsICZ0b2stPmxvY2spOworICAgICAgICAgICAgdG9rLT53YWl0ZXJzLS07CisgICAgICAgIH0KKyAgICB9CisgICAgdG9rLT50aWQgPSBwdGhyZWFkX3NlbGYoKTsKKyAgICB0b2stPmhlbGQgPSAxOworICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ0b2stPmxvY2spOworI2VsaWYgZGVmaW5lZCBIQVZFX1dJTjMyX1RIUkVBRFMKKyAgICBFbnRlckNyaXRpY2FsU2VjdGlvbigmdG9rLT5jcyk7CisgICAgKyt0b2stPmNvdW50OworI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworICAgIGlmICh0b2stPmxvY2stPnRpZCA9PSBmaW5kX3RocmVhZChOVUxMKSkgeworICAgICAgICB0b2stPmNvdW50Kys7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxNdXRleExvY2sodG9rLT5sb2NrKTsKKyAgICAgICAgdG9rLT5jb3VudCA9IDE7CisgICAgfQorI2VuZGlmCit9CisKKy8qKgorICogeG1sUk11dGV4VW5sb2NrOgorICogQHRvazogIHRoZSByZWVudHJhbnQgbXV0ZXgKKyAqCisgKiB4bWxSTXV0ZXhVbmxvY2soKSBpcyB1c2VkIHRvIHVubG9jayBhIGxpYnhtbDIgdG9rZW5fci4KKyAqLwordm9pZAoreG1sUk11dGV4VW5sb2NrKHhtbFJNdXRleFB0ciB0b2sgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBpZiAodG9rID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIGlmIChsaWJ4bWxfaXNfdGhyZWFkZWQgPT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHRocmVhZF9tdXRleF9sb2NrKCZ0b2stPmxvY2spOworICAgIHRvay0+aGVsZC0tOworICAgIGlmICh0b2stPmhlbGQgPT0gMCkgeworICAgICAgICBpZiAodG9rLT53YWl0ZXJzKQorICAgICAgICAgICAgcHRocmVhZF9jb25kX3NpZ25hbCgmdG9rLT5jdik7CisgICAgICAgIG1lbXNldCgmdG9rLT50aWQsIDAsIHNpemVvZih0b2stPnRpZCkpOworICAgIH0KKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmdG9rLT5sb2NrKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9XSU4zMl9USFJFQURTCisgICAgaWYgKCEtLXRvay0+Y291bnQpCisgICAgICAgIExlYXZlQ3JpdGljYWxTZWN0aW9uKCZ0b2stPmNzKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKKyAgICBpZiAodG9rLT5sb2NrLT50aWQgPT0gZmluZF90aHJlYWQoTlVMTCkpIHsKKyAgICAgICAgdG9rLT5jb3VudC0tOworICAgICAgICBpZiAodG9rLT5jb3VudCA9PSAwKSB7CisgICAgICAgICAgICB4bWxNdXRleFVubG9jayh0b2stPmxvY2spOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKK30KKworLyoqCisgKiB4bWxHbG9iYWxJbml0TXV0ZXhMb2NrCisgKgorICogTWFrZXMgc3VyZSB0aGF0IHRoZSBnbG9iYWwgaW5pdGlhbGl6YXRpb24gbXV0ZXggaXMgaW5pdGlhbGl6ZWQgYW5kCisgKiBsb2NrcyBpdC4KKyAqLwordm9pZAorX194bWxHbG9iYWxJbml0TXV0ZXhMb2NrKHZvaWQpCit7CisgICAgLyogTWFrZSBzdXJlIHRoZSBnbG9iYWwgaW5pdCBsb2NrIGlzIGluaXRpYWxpemVkIGFuZCB0aGVuIGxvY2sgaXQuICovCisjaWZkZWYgSEFWRV9QVEhSRUFEX0gKKyAgICAvKiBUaGUgbXV0ZXggaXMgc3RhdGljYWxseSBpbml0aWFsaXplZCwgc28gd2UganVzdCBsb2NrIGl0LiAqLworICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmZ2xvYmFsX2luaXRfbG9jayk7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworICAgIExQQ1JJVElDQUxfU0VDVElPTiBjczsKKworICAgIC8qIENyZWF0ZSBhIG5ldyBjcml0aWNhbCBzZWN0aW9uICovCisgICAgaWYgKGdsb2JhbF9pbml0X2xvY2sgPT0gTlVMTCkgeworICAgICAgICBjcyA9IG1hbGxvYyhzaXplb2YoQ1JJVElDQUxfU0VDVElPTikpOworICAgICAgICBpZiAoY3MgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbEdsb2JhbEluaXRNdXRleExvY2s6IG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oY3MpOworCisgICAgICAgIC8qIFN3YXAgaXQgaW50byB0aGUgZ2xvYmFsX2luaXRfbG9jayAqLworI2lmZGVmIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlcgorICAgICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIoJmdsb2JhbF9pbml0X2xvY2ssIGNzLCBOVUxMKTsKKyNlbHNlIC8qIFVzZSBvbGRlciB2b2lkKiB2ZXJzaW9uICovCisgICAgICAgIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCh2b2lkICoqKSAmZ2xvYmFsX2luaXRfbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgY3MsIE5VTEwpOworI2VuZGlmIC8qIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlciAqLworCisgICAgICAgIC8qIElmIGFub3RoZXIgdGhyZWFkIHN1Y2Nlc3NmdWxseSByZWNvcmRlZCBpdHMgY3JpdGljYWwKKyAgICAgICAgICogc2VjdGlvbiBpbiB0aGUgZ2xvYmFsX2luaXRfbG9jayB0aGVuIGRpc2NhcmQgdGhlIG9uZQorICAgICAgICAgKiBhbGxvY2F0ZWQgYnkgdGhpcyB0aHJlYWQuICovCisgICAgICAgIGlmIChnbG9iYWxfaW5pdF9sb2NrICE9IGNzKSB7CisgICAgICAgICAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oY3MpOworICAgICAgICAgICAgZnJlZShjcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBMb2NrIHRoZSBjaG9zZW4gY3JpdGljYWwgc2VjdGlvbiAqLworICAgIEVudGVyQ3JpdGljYWxTZWN0aW9uKGdsb2JhbF9pbml0X2xvY2spOworI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworICAgIGludDMyIHNlbTsKKworICAgIC8qIEFsbG9jYXRlIGEgbmV3IHNlbWFwaG9yZSAqLworICAgIHNlbSA9IGNyZWF0ZV9zZW0oMSwgInhtbEdsb2JhbGluaXRNdXRleCIpOworCisgICAgd2hpbGUgKGdsb2JhbF9pbml0X2xvY2sgPT0gLTEpIHsKKyAgICAgICAgaWYgKGF0b21pY19hZGQoJmdsb2JhbF9pbml0X2NvdW50LCAxKSA9PSAwKSB7CisgICAgICAgICAgICBnbG9iYWxfaW5pdF9sb2NrID0gc2VtOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc25vb3plKDEpOworICAgICAgICAgICAgYXRvbWljX2FkZCgmZ2xvYmFsX2luaXRfY291bnQsIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIElmIGFub3RoZXIgdGhyZWFkIHN1Y2Nlc3NmdWxseSByZWNvcmRlZCBpdHMgY3JpdGljYWwKKyAgICAgKiBzZWN0aW9uIGluIHRoZSBnbG9iYWxfaW5pdF9sb2NrIHRoZW4gZGlzY2FyZCB0aGUgb25lCisgICAgICogYWxsb2NhdGVkIGJ5IHRoaXMgdGhyZWFkLiAqLworICAgIGlmIChnbG9iYWxfaW5pdF9sb2NrICE9IHNlbSkKKyAgICAgICAgZGVsZXRlX3NlbShzZW0pOworCisgICAgLyogQWNxdWlyZSB0aGUgY2hvc2VuIHNlbWFwaG9yZSAqLworICAgIGlmIChhY3F1aXJlX3NlbShnbG9iYWxfaW5pdF9sb2NrKSAhPSBCX05PX0VSUk9SKSB7CisjaWZkZWYgREVCVUdfVEhSRUFEUworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxHbG9iYWxJbml0TXV0ZXhMb2NrKCk6QmVPUzpDb3VsZG4ndCBhY3F1aXJlIHNlbWFwaG9yZVxuIik7CisgICAgICAgIGV4aXQoKTsKKyNlbmRpZgorICAgIH0KKyNlbmRpZgorfQorCit2b2lkCitfX3htbEdsb2JhbEluaXRNdXRleFVubG9jayh2b2lkKQoreworI2lmZGVmIEhBVkVfUFRIUkVBRF9ICisgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmdsb2JhbF9pbml0X2xvY2spOworI2VsaWYgZGVmaW5lZCBIQVZFX1dJTjMyX1RIUkVBRFMKKyAgICBpZiAoZ2xvYmFsX2luaXRfbG9jayAhPSBOVUxMKSB7CisJTGVhdmVDcml0aWNhbFNlY3Rpb24oZ2xvYmFsX2luaXRfbG9jayk7CisgICAgfQorI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworICAgIHJlbGVhc2Vfc2VtKGdsb2JhbF9pbml0X2xvY2spOworI2VuZGlmCit9CisKKy8qKgorICogeG1sR2xvYmFsSW5pdE11dGV4RGVzdHJveQorICoKKyAqIE1ha2VzIHN1cmUgdGhhdCB0aGUgZ2xvYmFsIGluaXRpYWxpemF0aW9uIG11dGV4IGlzIGRlc3Ryb3llZCBiZWZvcmUKKyAqIGFwcGxpY2F0aW9uIHRlcm1pbmF0aW9uLgorICovCit2b2lkCitfX3htbEdsb2JhbEluaXRNdXRleERlc3Ryb3kodm9pZCkKK3sKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorI2VsaWYgZGVmaW5lZCBIQVZFX1dJTjMyX1RIUkVBRFMKKyAgICBpZiAoZ2xvYmFsX2luaXRfbG9jayAhPSBOVUxMKSB7CisgICAgICAgIERlbGV0ZUNyaXRpY2FsU2VjdGlvbihnbG9iYWxfaW5pdF9sb2NrKTsKKyAgICAgICAgZnJlZShnbG9iYWxfaW5pdF9sb2NrKTsKKyAgICAgICAgZ2xvYmFsX2luaXRfbG9jayA9IE5VTEw7CisgICAgfQorI2VuZGlmCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlQZXIgdGhyZWFkIGdsb2JhbCBzdGF0ZSBoYW5kbGluZwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjaWZkZWYgeG1sTGFzdEVycm9yCisjdW5kZWYgeG1sTGFzdEVycm9yCisjZW5kaWYKKworLyoqCisgKiB4bWxGcmVlR2xvYmFsU3RhdGU6CisgKiBAc3RhdGU6ICBhIHRocmVhZCBnbG9iYWwgc3RhdGUKKyAqCisgKiB4bWxGcmVlR2xvYmFsU3RhdGUoKSBpcyBjYWxsZWQgd2hlbiBhIHRocmVhZCB0ZXJtaW5hdGVzIHdpdGggYSBub24tTlVMTAorICogZ2xvYmFsIHN0YXRlLiBJdCBpcyBpcyB1c2VkIGhlcmUgdG8gcmVjbGFpbSBtZW1vcnkgcmVzb3VyY2VzLgorICovCitzdGF0aWMgdm9pZAoreG1sRnJlZUdsb2JhbFN0YXRlKHZvaWQgKnN0YXRlKQoreworICAgIHhtbEdsb2JhbFN0YXRlICpncyA9ICh4bWxHbG9iYWxTdGF0ZSAqKSBzdGF0ZTsKKworICAgIC8qIGZyZWUgYW55IG1lbW9yeSBhbGxvY2F0ZWQgaW4gdGhlIHRocmVhZCdzIHhtbExhc3RFcnJvciAqLworICAgIHhtbFJlc2V0RXJyb3IoJihncy0+eG1sTGFzdEVycm9yKSk7CisgICAgZnJlZShzdGF0ZSk7Cit9CisKKy8qKgorICogeG1sTmV3R2xvYmFsU3RhdGU6CisgKgorICogeG1sTmV3R2xvYmFsU3RhdGUoKSBhbGxvY2F0ZXMgYSBnbG9iYWwgc3RhdGUuIFRoaXMgc3RydWN0dXJlIGlzIHVzZWQgdG8KKyAqIGhvbGQgYWxsIGRhdGEgZm9yIHVzZSBieSBhIHRocmVhZCB3aGVuIHN1cHBvcnRpbmcgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyAqIG9mIGxpYnhtbDIgdG8gcHJlLXRocmVhZC1zYWZlIGJlaGF2aW91ci4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBhbGxvY2F0ZWQgeG1sR2xvYmFsU3RhdGVQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxHbG9iYWxTdGF0ZVB0cgoreG1sTmV3R2xvYmFsU3RhdGUodm9pZCkKK3sKKyAgICB4bWxHbG9iYWxTdGF0ZSAqZ3M7CisKKyAgICBncyA9IG1hbGxvYyhzaXplb2YoeG1sR2xvYmFsU3RhdGUpKTsKKyAgICBpZiAoZ3MgPT0gTlVMTCkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJInhtbEdldEdsb2JhbFN0YXRlOiBvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICBtZW1zZXQoZ3MsIDAsIHNpemVvZih4bWxHbG9iYWxTdGF0ZSkpOworICAgIHhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZShncyk7CisgICAgcmV0dXJuIChncyk7Cit9CisjZW5kaWYgLyogTElCWE1MX1RIUkVBRF9FTkFCTEVEICovCisKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorI2VsaWYgZGVmaW5lZCBIQVZFX1dJTjMyX1RIUkVBRFMKKyNpZiAhZGVmaW5lZChIQVZFX0NPTVBJTEVSX1RMUykKKyNpZiBkZWZpbmVkKExJQlhNTF9TVEFUSUMpICYmICFkZWZpbmVkKExJQlhNTF9TVEFUSUNfRk9SX0RMTCkKK3R5cGVkZWYgc3RydWN0IF94bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMgeworICAgIEhBTkRMRSB0aHJlYWQ7CisgICAgdm9pZCAqbWVtb3J5OworfSB4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXM7CisKK3N0YXRpYyB2b2lkIFhNTENERUNMCit4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXIodm9pZCAqcCkKK3sKKyAgICB4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMgKnBhcmFtcyA9CisgICAgICAgICh4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMgKikgcDsKKyAgICBXYWl0Rm9yU2luZ2xlT2JqZWN0KHBhcmFtcy0+dGhyZWFkLCBJTkZJTklURSk7CisgICAgQ2xvc2VIYW5kbGUocGFyYW1zLT50aHJlYWQpOworICAgIHhtbEZyZWVHbG9iYWxTdGF0ZShwYXJhbXMtPm1lbW9yeSk7CisgICAgZnJlZShwYXJhbXMpOworICAgIF9lbmR0aHJlYWQoKTsKK30KKyNlbHNlIC8qIExJQlhNTF9TVEFUSUMgJiYgIUxJQlhNTF9TVEFUSUNfRk9SX0RMTCAqLworCit0eXBlZGVmIHN0cnVjdCBfeG1sR2xvYmFsU3RhdGVDbGVhbnVwSGVscGVyUGFyYW1zIHsKKyAgICB2b2lkICptZW1vcnk7CisgICAgc3RydWN0IF94bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMgKnByZXY7CisgICAgc3RydWN0IF94bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMgKm5leHQ7Cit9IHhtbEdsb2JhbFN0YXRlQ2xlYW51cEhlbHBlclBhcmFtczsKKworc3RhdGljIHhtbEdsb2JhbFN0YXRlQ2xlYW51cEhlbHBlclBhcmFtcyAqY2xlYW51cF9oZWxwZXJzX2hlYWQgPSBOVUxMOworc3RhdGljIENSSVRJQ0FMX1NFQ1RJT04gY2xlYW51cF9oZWxwZXJzX2NzOworCisjZW5kaWYgLyogTElCWE1MU1RBVElDICYmICFMSUJYTUxfU1RBVElDX0ZPUl9ETEwgKi8KKyNlbmRpZiAvKiBIQVZFX0NPTVBJTEVSX1RMUyAqLworI2VuZGlmIC8qIEhBVkVfV0lOMzJfVEhSRUFEUyAqLworCisjaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworCisvKioKKyAqIHhtbEdsb2JhbFN0YXRlQ2xlYW51cDoKKyAqIEBkYXRhOiB1bnVzZWQgcGFyYW1ldGVyCisgKgorICogVXNlZCBmb3IgQmVvcyBvbmx5CisgKi8KK3ZvaWQKK3htbEdsb2JhbFN0YXRlQ2xlYW51cCh2b2lkICpkYXRhKQoreworICAgIHZvaWQgKmdsb2JhbHZhbCA9IHRsc19nZXQoZ2xvYmFsa2V5KTsKKworICAgIGlmIChnbG9iYWx2YWwgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZUdsb2JhbFN0YXRlKGdsb2JhbHZhbCk7Cit9CisjZW5kaWYKKworLyoqCisgKiB4bWxHZXRHbG9iYWxTdGF0ZToKKyAqCisgKiB4bWxHZXRHbG9iYWxTdGF0ZSgpIGlzIGNhbGxlZCB0byByZXRyaWV2ZSB0aGUgZ2xvYmFsIHN0YXRlIGZvciBhIHRocmVhZC4KKyAqCisgKiBSZXR1cm5zIHRoZSB0aHJlYWQgZ2xvYmFsIHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxHbG9iYWxTdGF0ZVB0cgoreG1sR2V0R2xvYmFsU3RhdGUodm9pZCkKK3sKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIHhtbEdsb2JhbFN0YXRlICpnbG9iYWx2YWw7CisKKyAgICBpZiAobGlieG1sX2lzX3RocmVhZGVkID09IDApCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBwdGhyZWFkX29uY2UoJm9uY2VfY29udHJvbCwgeG1sT25jZUluaXQpOworCisgICAgaWYgKChnbG9iYWx2YWwgPSAoeG1sR2xvYmFsU3RhdGUgKikKKyAgICAgICAgIHB0aHJlYWRfZ2V0c3BlY2lmaWMoZ2xvYmFsa2V5KSkgPT0gTlVMTCkgeworICAgICAgICB4bWxHbG9iYWxTdGF0ZSAqdHNkID0geG1sTmV3R2xvYmFsU3RhdGUoKTsKKwlpZiAodHNkID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKworICAgICAgICBwdGhyZWFkX3NldHNwZWNpZmljKGdsb2JhbGtleSwgdHNkKTsKKyAgICAgICAgcmV0dXJuICh0c2QpOworICAgIH0KKyAgICByZXR1cm4gKGdsb2JhbHZhbCk7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworI2lmIGRlZmluZWQoSEFWRV9DT01QSUxFUl9UTFMpCisgICAgaWYgKCF0bHN0YXRlX2luaXRlZCkgeworICAgICAgICB0bHN0YXRlX2luaXRlZCA9IDE7CisgICAgICAgIHhtbEluaXRpYWxpemVHbG9iYWxTdGF0ZSgmdGxzdGF0ZSk7CisgICAgfQorICAgIHJldHVybiAmdGxzdGF0ZTsKKyNlbHNlIC8qIEhBVkVfQ09NUElMRVJfVExTICovCisgICAgeG1sR2xvYmFsU3RhdGUgKmdsb2JhbHZhbDsKKyAgICB4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMgKnA7CisKKyAgICB4bWxPbmNlSW5pdCgpOworI2lmIGRlZmluZWQoTElCWE1MX1NUQVRJQykgJiYgIWRlZmluZWQoTElCWE1MX1NUQVRJQ19GT1JfRExMKQorICAgIGdsb2JhbHZhbCA9ICh4bWxHbG9iYWxTdGF0ZSAqKSBUbHNHZXRWYWx1ZShnbG9iYWxrZXkpOworI2Vsc2UKKyAgICBwID0gKHhtbEdsb2JhbFN0YXRlQ2xlYW51cEhlbHBlclBhcmFtcyAqKSBUbHNHZXRWYWx1ZShnbG9iYWxrZXkpOworICAgIGdsb2JhbHZhbCA9ICh4bWxHbG9iYWxTdGF0ZSAqKSAocCA/IHAtPm1lbW9yeSA6IE5VTEwpOworI2VuZGlmCisgICAgaWYgKGdsb2JhbHZhbCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdsb2JhbFN0YXRlICp0c2QgPSB4bWxOZXdHbG9iYWxTdGF0ZSgpOworCisgICAgICAgIGlmICh0c2QgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworICAgICAgICBwID0gKHhtbEdsb2JhbFN0YXRlQ2xlYW51cEhlbHBlclBhcmFtcyAqKQorICAgICAgICAgICAgbWFsbG9jKHNpemVvZih4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMpKTsKKwlpZiAocCA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sR2V0R2xvYmFsU3RhdGU6IG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgeG1sRnJlZUdsb2JhbFN0YXRlKHRzZCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgICAgIHAtPm1lbW9yeSA9IHRzZDsKKyNpZiBkZWZpbmVkKExJQlhNTF9TVEFUSUMpICYmICFkZWZpbmVkKExJQlhNTF9TVEFUSUNfRk9SX0RMTCkKKyAgICAgICAgRHVwbGljYXRlSGFuZGxlKEdldEN1cnJlbnRQcm9jZXNzKCksIEdldEN1cnJlbnRUaHJlYWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdldEN1cnJlbnRQcm9jZXNzKCksICZwLT50aHJlYWQsIDAsIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpOworICAgICAgICBUbHNTZXRWYWx1ZShnbG9iYWxrZXksIHRzZCk7CisgICAgICAgIF9iZWdpbnRocmVhZCh4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXIsIDAsIHApOworI2Vsc2UKKyAgICAgICAgRW50ZXJDcml0aWNhbFNlY3Rpb24oJmNsZWFudXBfaGVscGVyc19jcyk7CisgICAgICAgIGlmIChjbGVhbnVwX2hlbHBlcnNfaGVhZCAhPSBOVUxMKSB7CisgICAgICAgICAgICBjbGVhbnVwX2hlbHBlcnNfaGVhZC0+cHJldiA9IHA7CisgICAgICAgIH0KKyAgICAgICAgcC0+bmV4dCA9IGNsZWFudXBfaGVscGVyc19oZWFkOworICAgICAgICBwLT5wcmV2ID0gTlVMTDsKKyAgICAgICAgY2xlYW51cF9oZWxwZXJzX2hlYWQgPSBwOworICAgICAgICBUbHNTZXRWYWx1ZShnbG9iYWxrZXksIHApOworICAgICAgICBMZWF2ZUNyaXRpY2FsU2VjdGlvbigmY2xlYW51cF9oZWxwZXJzX2NzKTsKKyNlbmRpZgorCisgICAgICAgIHJldHVybiAodHNkKTsKKyAgICB9CisgICAgcmV0dXJuIChnbG9iYWx2YWwpOworI2VuZGlmIC8qIEhBVkVfQ09NUElMRVJfVExTICovCisjZWxpZiBkZWZpbmVkIEhBVkVfQkVPU19USFJFQURTCisgICAgeG1sR2xvYmFsU3RhdGUgKmdsb2JhbHZhbDsKKworICAgIHhtbE9uY2VJbml0KCk7CisKKyAgICBpZiAoKGdsb2JhbHZhbCA9ICh4bWxHbG9iYWxTdGF0ZSAqKSB0bHNfZ2V0KGdsb2JhbGtleSkpID09IE5VTEwpIHsKKyAgICAgICAgeG1sR2xvYmFsU3RhdGUgKnRzZCA9IHhtbE5ld0dsb2JhbFN0YXRlKCk7CisJaWYgKHRzZCA9PSBOVUxMKQorCSAgICByZXR1cm4gKE5VTEwpOworCisgICAgICAgIHRsc19zZXQoZ2xvYmFsa2V5LCB0c2QpOworICAgICAgICBvbl9leGl0X3RocmVhZCh4bWxHbG9iYWxTdGF0ZUNsZWFudXAsIE5VTEwpOworICAgICAgICByZXR1cm4gKHRzZCk7CisgICAgfQorICAgIHJldHVybiAoZ2xvYmFsdmFsKTsKKyNlbHNlCisgICAgcmV0dXJuIChOVUxMKTsKKyNlbmRpZgorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJTGlicmFyeSB3aWRlIHRocmVhZCBpbnRlcmZhY2VzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbEdldFRocmVhZElkOgorICoKKyAqIHhtbEdldFRocmVhZElkKCkgZmluZCB0aGUgY3VycmVudCB0aHJlYWQgSUQgbnVtYmVyCisgKiBOb3RlIHRoYXQgdGhpcyBpcyBsaWtlbHkgdG8gYmUgYnJva2VuIG9uIHNvbWUgcGxhdGZvcm1zIHVzaW5nIHB0aHJlYWRzCisgKiBhcyB0aGUgc3BlY2lmaWNhdGlvbiBkb2Vzbid0IG1hbmRhdGUgcHRocmVhZF90IHRvIGJlIGFuIGludGVnZXIgdHlwZQorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgdGhyZWFkIElEIG51bWJlcgorICovCitpbnQKK3htbEdldFRocmVhZElkKHZvaWQpCit7CisjaWZkZWYgSEFWRV9QVEhSRUFEX0gKKyAgICBwdGhyZWFkX3QgaWQ7CisgICAgaW50IHJldDsKKworICAgIGlmIChsaWJ4bWxfaXNfdGhyZWFkZWQgPT0gMCkKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICBpZCA9IHB0aHJlYWRfc2VsZigpOworICAgIC8qIGhvcnJpYmxlIGJ1dCBwcmVzZXJ2ZXMgY29tcGF0LCBzZWUgd2FybmluZyBhYm92ZSAqLworICAgIG1lbWNweSgmcmV0LCAmaWQsIHNpemVvZihyZXQpKTsKKyAgICByZXR1cm4gKHJldCk7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworICAgIHJldHVybiBHZXRDdXJyZW50VGhyZWFkSWQoKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKKyAgICByZXR1cm4gZmluZF90aHJlYWQoTlVMTCk7CisjZWxzZQorICAgIHJldHVybiAoKGludCkgMCk7CisjZW5kaWYKK30KKworLyoqCisgKiB4bWxJc01haW5UaHJlYWQ6CisgKgorICogeG1sSXNNYWluVGhyZWFkKCkgY2hlY2sgd2hldGhlciB0aGUgY3VycmVudCB0aHJlYWQgaXMgdGhlIG1haW4gdGhyZWFkLgorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgY3VycmVudCB0aHJlYWQgaXMgdGhlIG1haW4gdGhyZWFkLCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbElzTWFpblRocmVhZCh2b2lkKQoreworI2lmZGVmIEhBVkVfUFRIUkVBRF9ICisgICAgaWYgKGxpYnhtbF9pc190aHJlYWRlZCA9PSAtMSkKKyAgICAgICAgeG1sSW5pdFRocmVhZHMoKTsKKyAgICBpZiAobGlieG1sX2lzX3RocmVhZGVkID09IDApCisgICAgICAgIHJldHVybiAoMSk7CisgICAgcHRocmVhZF9vbmNlKCZvbmNlX2NvbnRyb2wsIHhtbE9uY2VJbml0KTsKKyNlbGlmIGRlZmluZWQgSEFWRV9XSU4zMl9USFJFQURTCisgICAgeG1sT25jZUluaXQoKTsKKyNlbGlmIGRlZmluZWQgSEFWRV9CRU9TX1RIUkVBRFMKKyAgICB4bWxPbmNlSW5pdCgpOworI2VuZGlmCisKKyNpZmRlZiBERUJVR19USFJFQURTCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJ4bWxJc01haW5UaHJlYWQoKVxuIik7CisjZW5kaWYKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIHJldHVybiAocHRocmVhZF9lcXVhbChtYWludGhyZWFkLHB0aHJlYWRfc2VsZigpKSk7CisjZWxpZiBkZWZpbmVkIEhBVkVfV0lOMzJfVEhSRUFEUworICAgIHJldHVybiAobWFpbnRocmVhZCA9PSBHZXRDdXJyZW50VGhyZWFkSWQoKSk7CisjZWxpZiBkZWZpbmVkIEhBVkVfQkVPU19USFJFQURTCisgICAgcmV0dXJuIChtYWludGhyZWFkID09IGZpbmRfdGhyZWFkKE5VTEwpKTsKKyNlbHNlCisgICAgcmV0dXJuICgxKTsKKyNlbmRpZgorfQorCisvKioKKyAqIHhtbExvY2tMaWJyYXJ5OgorICoKKyAqIHhtbExvY2tMaWJyYXJ5KCkgaXMgdXNlZCB0byB0YWtlIG91dCBhIHJlLWVudHJhbnQgbG9jayBvbiB0aGUgbGlieG1sMgorICogbGlicmFyeS4KKyAqLwordm9pZAoreG1sTG9ja0xpYnJhcnkodm9pZCkKK3sKKyNpZmRlZiBERUJVR19USFJFQURTCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJ4bWxMb2NrTGlicmFyeSgpXG4iKTsKKyNlbmRpZgorICAgIHhtbFJNdXRleExvY2soeG1sTGlicmFyeUxvY2spOworfQorCisvKioKKyAqIHhtbFVubG9ja0xpYnJhcnk6CisgKgorICogeG1sVW5sb2NrTGlicmFyeSgpIGlzIHVzZWQgdG8gcmVsZWFzZSBhIHJlLWVudHJhbnQgbG9jayBvbiB0aGUgbGlieG1sMgorICogbGlicmFyeS4KKyAqLwordm9pZAoreG1sVW5sb2NrTGlicmFyeSh2b2lkKQoreworI2lmZGVmIERFQlVHX1RIUkVBRFMKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInhtbFVubG9ja0xpYnJhcnkoKVxuIik7CisjZW5kaWYKKyAgICB4bWxSTXV0ZXhVbmxvY2soeG1sTGlicmFyeUxvY2spOworfQorCisvKioKKyAqIHhtbEluaXRUaHJlYWRzOgorICoKKyAqIHhtbEluaXRUaHJlYWRzKCkgaXMgdXNlZCB0byB0byBpbml0aWFsaXplIGFsbCB0aGUgdGhyZWFkIHJlbGF0ZWQKKyAqIGRhdGEgb2YgdGhlIGxpYnhtbDIgbGlicmFyeS4KKyAqLwordm9pZAoreG1sSW5pdFRocmVhZHModm9pZCkKK3sKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIGlmIChsaWJ4bWxfaXNfdGhyZWFkZWQgPT0gLTEpIHsKKyAgICAgICAgaWYgKChwdGhyZWFkX29uY2UgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgIChwdGhyZWFkX2dldHNwZWNpZmljICE9IE5VTEwpICYmCisgICAgICAgICAgICAocHRocmVhZF9zZXRzcGVjaWZpYyAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfa2V5X2NyZWF0ZSAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfa2V5X2RlbGV0ZSAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfaW5pdCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfZGVzdHJveSAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfbG9jayAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfdW5sb2NrICE9IE5VTEwpICYmCisgICAgICAgICAgICAocHRocmVhZF9jb25kX2luaXQgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgIChwdGhyZWFkX2NvbmRfZGVzdHJveSAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfY29uZF93YWl0ICE9IE5VTEwpICYmCisgICAgICAgICAgICAocHRocmVhZF9lcXVhbCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfc2VsZiAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHB0aHJlYWRfY29uZF9zaWduYWwgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgIGxpYnhtbF9pc190aHJlYWRlZCA9IDE7CisKKy8qIGZwcmludGYoc3RkZXJyLCAiUnVubmluZyBtdWx0aXRocmVhZGVkXG4iKTsgKi8KKyAgICAgICAgfSBlbHNlIHsKKworLyogZnByaW50ZihzdGRlcnIsICJSdW5uaW5nIHdpdGhvdXQgbXVsdGl0aHJlYWRcbiIpOyAqLworICAgICAgICAgICAgbGlieG1sX2lzX3RocmVhZGVkID0gMDsKKyAgICAgICAgfQorICAgIH0KKyNlbGlmIGRlZmluZWQoSEFWRV9XSU4zMl9USFJFQURTKSAmJiAhZGVmaW5lZChIQVZFX0NPTVBJTEVSX1RMUykgJiYgKCFkZWZpbmVkKExJQlhNTF9TVEFUSUMpIHx8IGRlZmluZWQoTElCWE1MX1NUQVRJQ19GT1JfRExMKSkKKyAgICBJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uKCZjbGVhbnVwX2hlbHBlcnNfY3MpOworI2VuZGlmCit9CisKKy8qKgorICogeG1sQ2xlYW51cFRocmVhZHM6CisgKgorICogeG1sQ2xlYW51cFRocmVhZHMoKSBpcyB1c2VkIHRvIHRvIGNsZWFudXAgYWxsIHRoZSB0aHJlYWQgcmVsYXRlZAorICogZGF0YSBvZiB0aGUgbGlieG1sMiBsaWJyYXJ5IG9uY2UgcHJvY2Vzc2luZyBoYXMgZW5kZWQuCisgKgorICogV0FSTklORzogaWYgeW91ciBhcHBsaWNhdGlvbiBpcyBtdWx0aXRocmVhZGVkIG9yIGhhcyBwbHVnaW4gc3VwcG9ydAorICogICAgICAgICAgY2FsbGluZyB0aGlzIG1heSBjcmFzaCB0aGUgYXBwbGljYXRpb24gaWYgYW5vdGhlciB0aHJlYWQgb3IKKyAqICAgICAgICAgIGEgcGx1Z2luIGlzIHN0aWxsIHVzaW5nIGxpYnhtbDIuIEl0J3Mgc29tZXRpbWVzIHZlcnkgaGFyZCB0bworICogICAgICAgICAgZ3Vlc3MgaWYgbGlieG1sMiBpcyBpbiB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLCBzb21lIGxpYnJhcmllcworICogICAgICAgICAgb3IgcGx1Z2lucyBtYXkgdXNlIGl0IHdpdGhvdXQgbm90aWNlLiBJbiBjYXNlIG9mIGRvdWJ0IGFic3RhaW4KKyAqICAgICAgICAgIGZyb20gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9yIGRvIGl0IGp1c3QgYmVmb3JlIGNhbGxpbmcgZXhpdCgpCisgKiAgICAgICAgICB0byBhdm9pZCBsZWFrIHJlcG9ydHMgZnJvbSB2YWxncmluZCAhCisgKi8KK3ZvaWQKK3htbENsZWFudXBUaHJlYWRzKHZvaWQpCit7CisjaWZkZWYgREVCVUdfVEhSRUFEUworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAieG1sQ2xlYW51cFRocmVhZHMoKVxuIik7CisjZW5kaWYKKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorICAgIGlmICgobGlieG1sX2lzX3RocmVhZGVkKSAgJiYgKHB0aHJlYWRfa2V5X2RlbGV0ZSAhPSBOVUxMKSkKKyAgICAgICAgcHRocmVhZF9rZXlfZGVsZXRlKGdsb2JhbGtleSk7CisjZWxpZiBkZWZpbmVkKEhBVkVfV0lOMzJfVEhSRUFEUykgJiYgIWRlZmluZWQoSEFWRV9DT01QSUxFUl9UTFMpICYmICghZGVmaW5lZChMSUJYTUxfU1RBVElDKSB8fCBkZWZpbmVkKExJQlhNTF9TVEFUSUNfRk9SX0RMTCkpCisgICAgaWYgKGdsb2JhbGtleSAhPSBUTFNfT1VUX09GX0lOREVYRVMpIHsKKyAgICAgICAgeG1sR2xvYmFsU3RhdGVDbGVhbnVwSGVscGVyUGFyYW1zICpwOworCisgICAgICAgIEVudGVyQ3JpdGljYWxTZWN0aW9uKCZjbGVhbnVwX2hlbHBlcnNfY3MpOworICAgICAgICBwID0gY2xlYW51cF9oZWxwZXJzX2hlYWQ7CisgICAgICAgIHdoaWxlIChwICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbEdsb2JhbFN0YXRlQ2xlYW51cEhlbHBlclBhcmFtcyAqdGVtcCA9IHA7CisKKyAgICAgICAgICAgIHAgPSBwLT5uZXh0OworICAgICAgICAgICAgeG1sRnJlZUdsb2JhbFN0YXRlKHRlbXAtPm1lbW9yeSk7CisgICAgICAgICAgICBmcmVlKHRlbXApOworICAgICAgICB9CisgICAgICAgIGNsZWFudXBfaGVscGVyc19oZWFkID0gMDsKKyAgICAgICAgTGVhdmVDcml0aWNhbFNlY3Rpb24oJmNsZWFudXBfaGVscGVyc19jcyk7CisgICAgICAgIFRsc0ZyZWUoZ2xvYmFsa2V5KTsKKyAgICAgICAgZ2xvYmFsa2V5ID0gVExTX09VVF9PRl9JTkRFWEVTOworICAgIH0KKyAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oJmNsZWFudXBfaGVscGVyc19jcyk7CisjZW5kaWYKK30KKworI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorCisvKioKKyAqIHhtbE9uY2VJbml0CisgKgorICogeG1sT25jZUluaXQoKSBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHZhbHVlIG9mIG1haW50aHJlYWQgZm9yIHVzZQorICogaW4gb3RoZXIgcm91dGluZXMuIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHVzaW5nCisgKiBwdGhyZWFkX29uY2UoKSBpbiBhc3NvY2lhdGlvbiB3aXRoIHRoZSBvbmNlX2NvbnRyb2wgdmFyaWFibGUgdG8gZW5zdXJlCisgKiB0aGF0IHRoZSBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLiBTZWUgbWFuIHB0aHJlYWRfb25jZSBmb3IgbW9yZQorICogZGV0YWlscy4KKyAqLworc3RhdGljIHZvaWQKK3htbE9uY2VJbml0KHZvaWQpCit7CisjaWZkZWYgSEFWRV9QVEhSRUFEX0gKKyAgICAodm9pZCkgcHRocmVhZF9rZXlfY3JlYXRlKCZnbG9iYWxrZXksIHhtbEZyZWVHbG9iYWxTdGF0ZSk7CisgICAgbWFpbnRocmVhZCA9IHB0aHJlYWRfc2VsZigpOworI2VsaWYgZGVmaW5lZChIQVZFX1dJTjMyX1RIUkVBRFMpCisgICAgaWYgKCFydW5fb25jZS5kb25lKSB7CisgICAgICAgIGlmIChJbnRlcmxvY2tlZEluY3JlbWVudCgmcnVuX29uY2UuY29udHJvbCkgPT0gMSkgeworI2lmICFkZWZpbmVkKEhBVkVfQ09NUElMRVJfVExTKQorICAgICAgICAgICAgZ2xvYmFsa2V5ID0gVGxzQWxsb2MoKTsKKyNlbmRpZgorICAgICAgICAgICAgbWFpbnRocmVhZCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOworICAgICAgICAgICAgcnVuX29uY2UuZG9uZSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBBbm90aGVyIHRocmVhZCBpcyB3b3JraW5nOyBnaXZlIHVwIG91ciBzbGljZSBhbmQKKyAgICAgICAgICAgICAqIHdhaXQgdW50aWwgdGhleSdyZSBkb25lLiAqLworICAgICAgICAgICAgd2hpbGUgKCFydW5fb25jZS5kb25lKQorICAgICAgICAgICAgICAgIFNsZWVwKDApOworICAgICAgICB9CisgICAgfQorI2VsaWYgZGVmaW5lZCBIQVZFX0JFT1NfVEhSRUFEUworICAgIGlmIChhdG9taWNfYWRkKCZydW5fb25jZV9pbml0LCAxKSA9PSAwKSB7CisgICAgICAgIGdsb2JhbGtleSA9IHRsc19hbGxvY2F0ZSgpOworICAgICAgICB0bHNfc2V0KGdsb2JhbGtleSwgTlVMTCk7CisgICAgICAgIG1haW50aHJlYWQgPSBmaW5kX3RocmVhZChOVUxMKTsKKyAgICB9IGVsc2UKKyAgICAgICAgYXRvbWljX2FkZCgmcnVuX29uY2VfaW5pdCwgLTEpOworI2VuZGlmCit9CisjZW5kaWYKKworLyoqCisgKiBEbGxNYWluOgorICogQGhpbnN0RExMOiBoYW5kbGUgdG8gRExMIGluc3RhbmNlCisgKiBAZmR3UmVhc29uOiBSZWFzb24gY29kZSBmb3IgZW50cnkKKyAqIEBscHZSZXNlcnZlZDogZ2VuZXJpYyBwb2ludGVyIChkZXBlbmRzIHVwb24gcmVhc29uIGNvZGUpCisgKgorICogRW50cnkgcG9pbnQgZm9yIFdpbmRvd3MgbGlicmFyeS4gSXQgaXMgYmVpbmcgdXNlZCB0byBmcmVlIHRocmVhZC1zcGVjaWZpYworICogc3RvcmFnZS4KKyAqCisgKiBSZXR1cm5zIFRSVUUgYWx3YXlzCisgKi8KKyNpZmRlZiBIQVZFX1BUSFJFQURfSAorI2VsaWYgZGVmaW5lZChIQVZFX1dJTjMyX1RIUkVBRFMpICYmICFkZWZpbmVkKEhBVkVfQ09NUElMRVJfVExTKSAmJiAoIWRlZmluZWQoTElCWE1MX1NUQVRJQykgfHwgZGVmaW5lZChMSUJYTUxfU1RBVElDX0ZPUl9ETEwpKQorI2lmIGRlZmluZWQoTElCWE1MX1NUQVRJQ19GT1JfRExMKQorQk9PTCBYTUxDQUxMCit4bWxEbGxNYWluKEhJTlNUQU5DRSBoaW5zdERMTCwgRFdPUkQgZmR3UmVhc29uLCBMUFZPSUQgbHB2UmVzZXJ2ZWQpCisjZWxzZQorQk9PTCBXSU5BUEkKK0RsbE1haW4oSElOU1RBTkNFIGhpbnN0RExMLCBEV09SRCBmZHdSZWFzb24sIExQVk9JRCBscHZSZXNlcnZlZCkKKyNlbmRpZgoreworICAgIHN3aXRjaCAoZmR3UmVhc29uKSB7CisgICAgICAgIGNhc2UgRExMX1RIUkVBRF9ERVRBQ0g6CisgICAgICAgICAgICBpZiAoZ2xvYmFsa2V5ICE9IFRMU19PVVRfT0ZfSU5ERVhFUykgeworICAgICAgICAgICAgICAgIHhtbEdsb2JhbFN0YXRlICpnbG9iYWx2YWwgPSBOVUxMOworICAgICAgICAgICAgICAgIHhtbEdsb2JhbFN0YXRlQ2xlYW51cEhlbHBlclBhcmFtcyAqcCA9CisgICAgICAgICAgICAgICAgICAgICh4bWxHbG9iYWxTdGF0ZUNsZWFudXBIZWxwZXJQYXJhbXMgKikKKyAgICAgICAgICAgICAgICAgICAgVGxzR2V0VmFsdWUoZ2xvYmFsa2V5KTsKKyAgICAgICAgICAgICAgICBnbG9iYWx2YWwgPSAoeG1sR2xvYmFsU3RhdGUgKikgKHAgPyBwLT5tZW1vcnkgOiBOVUxMKTsKKyAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsdmFsKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWVHbG9iYWxTdGF0ZShnbG9iYWx2YWwpOworICAgICAgICAgICAgICAgICAgICBUbHNTZXRWYWx1ZShnbG9iYWxrZXksIE5VTEwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocCkgeworICAgICAgICAgICAgICAgICAgICBFbnRlckNyaXRpY2FsU2VjdGlvbigmY2xlYW51cF9oZWxwZXJzX2NzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHAgPT0gY2xlYW51cF9oZWxwZXJzX2hlYWQpCisgICAgICAgICAgICAgICAgICAgICAgICBjbGVhbnVwX2hlbHBlcnNfaGVhZCA9IHAtPm5leHQ7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHAtPnByZXYtPm5leHQgPSBwLT5uZXh0OworICAgICAgICAgICAgICAgICAgICBpZiAocC0+bmV4dCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgcC0+bmV4dC0+cHJldiA9IHAtPnByZXY7CisgICAgICAgICAgICAgICAgICAgIExlYXZlQ3JpdGljYWxTZWN0aW9uKCZjbGVhbnVwX2hlbHBlcnNfY3MpOworICAgICAgICAgICAgICAgICAgICBmcmVlKHApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gVFJVRTsKK30KKyNlbmRpZgorI2RlZmluZSBib3R0b21fdGhyZWFkcworI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdHJlZS5jIGIvbGlieG1sMi0yLjcuNy90cmVlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUxYTIzYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdHJlZS5jCkBAIC0wLDAgKzEsOTkwMyBAQAorLyoKKyAqIHRyZWUuYyA6IGltcGxlbWVudGF0aW9uIG9mIGFjY2VzcyBmdW5jdGlvbiBmb3IgYW4gWE1MIHRyZWUuCisgKgorICogUmVmZXJlbmNlczoKKyAqICAgWEhUTUwgMS4wIFczQyBSRUM6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDIvUkVDLXhodG1sMS0yMDAyMDgwMS8KKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICoKKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+IC8qIGZvciBtZW1zZXQoKSBvbmx5ICEgKi8KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpZmRlZiBIQVZFX0NUWVBFX0gKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9aTElCX0gKKyNpbmNsdWRlIDx6bGliLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaW5jbHVkZSA8bGlieG1sL2VudGl0aWVzLmg+CisjaW5jbHVkZSA8bGlieG1sL3ZhbGlkLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9IVE1MdHJlZS5oPgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwvZGVidWdYTUwuaD4KKyNlbmRpZgorCitpbnQgX194bWxSZWdpc3RlckNhbGxiYWNrcyA9IDA7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUZvcndhcmQgZGVjbGFyYXRpb25zCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB4bWxOc1B0cgoreG1sTmV3UmVjb25jaWxpZWROcyh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIHRyZWUsIHhtbE5zUHRyIG5zKTsKKworc3RhdGljIHhtbENoYXIqIHhtbEdldFByb3BOb2RlVmFsdWVJbnRlcm5hbCh4bWxBdHRyUHRyIHByb3ApOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlUcmVlIG1lbW9yeSBlcnJvciBoYW5kbGVyCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKgorICogeG1sVHJlZUVyck1lbW9yeToKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGNvbmRpdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sVHJlZUVyck1lbW9yeShjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBfX3htbFNpbXBsZUVycm9yKFhNTF9GUk9NX1RSRUUsIFhNTF9FUlJfTk9fTUVNT1JZLCBOVUxMLCBOVUxMLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sVHJlZUVycjoKKyAqIEBjb2RlOiAgdGhlIGVycm9yIG51bWJlcgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxUcmVlRXJyKGludCBjb2RlLCB4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IGNoYXIgKmV4dHJhKQoreworICAgIGNvbnN0IGNoYXIgKm1zZyA9IE5VTEw7CisKKyAgICBzd2l0Y2goY29kZSkgeworICAgICAgICBjYXNlIFhNTF9UUkVFX0lOVkFMSURfSEVYOgorCSAgICBtc2cgPSAiaW52YWxpZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXIgdmFsdWVcbiI7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1RSRUVfSU5WQUxJRF9ERUM6CisJICAgIG1zZyA9ICJpbnZhbGlkIGRlY2ltYWwgY2hhcmFjdGVyIHZhbHVlXG4iOworCSAgICBicmVhazsKKwljYXNlIFhNTF9UUkVFX1VOVEVSTUlOQVRFRF9FTlRJVFk6CisJICAgIG1zZyA9ICJ1bnRlcm1pbmF0ZWQgZW50aXR5IHJlZmVyZW5jZSAlMTVzXG4iOworCSAgICBicmVhazsKKwljYXNlIFhNTF9UUkVFX05PVF9VVEY4OgorCSAgICBtc2cgPSAic3RyaW5nIGlzIG5vdCBpbiBVVEYtOFxuIjsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgbXNnID0gInVuZXhwZWN0ZWQgZXJyb3IgbnVtYmVyXG4iOworICAgIH0KKyAgICBfX3htbFNpbXBsZUVycm9yKFhNTF9GUk9NX1RSRUUsIGNvZGUsIG5vZGUsIG1zZywgZXh0cmEpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlBIGZldyBzdGF0aWMgdmFyaWFibGVzIGFuZCBtYWNyb3MJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAjdW5kZWYgeG1sU3RyaW5nVGV4dCAqLworY29uc3QgeG1sQ2hhciB4bWxTdHJpbmdUZXh0W10gPSB7ICd0JywgJ2UnLCAneCcsICd0JywgMCB9OworLyogI3VuZGVmIHhtbFN0cmluZ1RleHROb2VuYyAqLworY29uc3QgeG1sQ2hhciB4bWxTdHJpbmdUZXh0Tm9lbmNbXSA9CisgICAgICAgICAgICAgIHsgJ3QnLCAnZScsICd4JywgJ3QnLCAnbicsICdvJywgJ2UnLCAnbicsICdjJywgMCB9OworLyogI3VuZGVmIHhtbFN0cmluZ0NvbW1lbnQgKi8KK2NvbnN0IHhtbENoYXIgeG1sU3RyaW5nQ29tbWVudFtdID0geyAnYycsICdvJywgJ20nLCAnbScsICdlJywgJ24nLCAndCcsIDAgfTsKKworc3RhdGljIGludCB4bWxDb21wcmVzc01vZGUgPSAwOworc3RhdGljIGludCB4bWxDaGVja0RURCA9IDE7CisKKyNkZWZpbmUgVVBEQVRFX0xBU1RfQ0hJTERfQU5EX1BBUkVOVChuKSBpZiAoKG4pICE9IE5VTEwpIHsJCVwKKyAgICB4bWxOb2RlUHRyIHVsY2N1ciA9IChuKS0+Y2hpbGRyZW47CQkJCQlcCisgICAgaWYgKHVsY2N1ciA9PSBOVUxMKSB7CQkJCQkJXAorICAgICAgICAobiktPmxhc3QgPSBOVUxMOwkJCQkJCVwKKyAgICB9IGVsc2UgewkJCQkJCQkJXAorICAgICAgICB3aGlsZSAodWxjY3VyLT5uZXh0ICE9IE5VTEwpIHsJCQkJCVwKKwkJdWxjY3VyLT5wYXJlbnQgPSAobik7CQkJCQlcCisJCXVsY2N1ciA9IHVsY2N1ci0+bmV4dDsJCQkJCVwKKwl9CQkJCQkJCQlcCisJdWxjY3VyLT5wYXJlbnQgPSAobik7CQkJCQkJXAorCShuKS0+bGFzdCA9IHVsY2N1cjsJCQkJCQlcCit9fQorCisjZGVmaW5lIElTX1NUUl9YTUwoc3RyKSAoKHN0ciAhPSBOVUxMKSAmJiAoc3RyWzBdID09ICd4JykgJiYgXAorICAoc3RyWzFdID09ICdtJykgJiYgKHN0clsyXSA9PSAnbCcpICYmIChzdHJbM10gPT0gMCkpCisKKy8qICNkZWZpbmUgREVCVUdfQlVGRkVSICovCisvKiAjZGVmaW5lIERFQlVHX1RSRUUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJRnVuY3Rpb25zIHRvIG1vdmUgdG8gZW50aXRpZXMuYyBvbmNlIHRoZQkJKgorICoJCUFQSSBmcmVlemUgaXMgc21vb3RoZW4gYW5kIHRoZXkgY2FuIGJlIG1hZGUgcHVibGljLgkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSA8bGlieG1sL2hhc2guaD4KKworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKy8qKgorICogeG1sR2V0RW50aXR5RnJvbUR0ZDoKKyAqIEBkdGQ6ICBBIHBvaW50ZXIgdG8gdGhlIERURCB0byBzZWFyY2gKKyAqIEBuYW1lOiAgVGhlIGVudGl0eSBuYW1lCisgKgorICogRG8gYW4gZW50aXR5IGxvb2t1cCBpbiB0aGUgRFREIGVudGl0eSBoYXNoIHRhYmxlIGFuZAorICogcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIGVudGl0eSwgaWYgZm91bmQuCisgKgorICogUmV0dXJucyBBIHBvaW50ZXIgdG8gdGhlIGVudGl0eSBzdHJ1Y3R1cmUgb3IgTlVMTCBpZiBub3QgZm91bmQuCisgKi8KK3N0YXRpYyB4bWxFbnRpdHlQdHIKK3htbEdldEVudGl0eUZyb21EdGQoeG1sRHRkUHRyIGR0ZCwgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbEVudGl0aWVzVGFibGVQdHIgdGFibGU7CisKKyAgICBpZigoZHRkICE9IE5VTEwpICYmIChkdGQtPmVudGl0aWVzICE9IE5VTEwpKSB7CisJdGFibGUgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikgZHRkLT5lbnRpdGllczsKKwlyZXR1cm4oKHhtbEVudGl0eVB0cikgeG1sSGFzaExvb2t1cCh0YWJsZSwgbmFtZSkpOworCS8qIHJldHVybih4bWxHZXRFbnRpdHlGcm9tVGFibGUodGFibGUsIG5hbWUpKTsgKi8KKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorLyoqCisgKiB4bWxHZXRQYXJhbWV0ZXJFbnRpdHlGcm9tRHRkOgorICogQGR0ZDogIEEgcG9pbnRlciB0byB0aGUgRFREIHRvIHNlYXJjaAorICogQG5hbWU6ICBUaGUgZW50aXR5IG5hbWUKKyAqCisgKiBEbyBhbiBlbnRpdHkgbG9va3VwIGluIHRoZSBEVEQgcGFyYXJtZXRlciBlbnRpdHkgaGFzaCB0YWJsZSBhbmQKKyAqIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBlbnRpdHksIGlmIGZvdW5kLgorICoKKyAqIFJldHVybnMgQSBwb2ludGVyIHRvIHRoZSBlbnRpdHkgc3RydWN0dXJlIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICovCitzdGF0aWMgeG1sRW50aXR5UHRyCit4bWxHZXRQYXJhbWV0ZXJFbnRpdHlGcm9tRHRkKHhtbER0ZFB0ciBkdGQsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxFbnRpdGllc1RhYmxlUHRyIHRhYmxlOworCisgICAgaWYgKChkdGQgIT0gTlVMTCkgJiYgKGR0ZC0+cGVudGl0aWVzICE9IE5VTEwpKSB7CisJdGFibGUgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikgZHRkLT5wZW50aXRpZXM7CisJcmV0dXJuKCh4bWxFbnRpdHlQdHIpIHhtbEhhc2hMb29rdXAodGFibGUsIG5hbWUpKTsKKwkvKiByZXR1cm4oeG1sR2V0RW50aXR5RnJvbVRhYmxlKHRhYmxlLCBuYW1lKSk7ICovCisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlRTmFtZSBoYW5kbGluZyBoZWxwZXIJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbEJ1aWxkUU5hbWU6CisgKiBAbmNuYW1lOiAgdGhlIE5hbWUKKyAqIEBwcmVmaXg6ICB0aGUgcHJlZml4CisgKiBAbWVtb3J5OiAgcHJlYWxsb2NhdGVkIG1lbW9yeQorICogQGxlbjogIHByZWFsbG9jYXRlZCBtZW1vcnkgbGVuZ3RoCisgKgorICogQnVpbGRzIHRoZSBRTmFtZSBAcHJlZml4OkBuY25hbWUgaW4gQG1lbW9yeSBpZiB0aGVyZSBpcyBlbm91Z2ggc3BhY2UKKyAqIGFuZCBwcmVmaXggaXMgbm90IE5VTEwgbm9yIGVtcHR5LCBvdGhlcndpc2UgYWxsb2NhdGUgYSBuZXcgc3RyaW5nLgorICogSWYgcHJlZml4IGlzIE5VTEwgb3IgZW1wdHkgaXQgcmV0dXJucyBuY25hbWUuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHN0cmluZyB3aGljaCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIgaWYgZGlmZmVyZW50IGZyb20KKyAqICAgICAgICAgQG1lbW9yeSBhbmQgQG5jbmFtZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sQ2hhciAqCit4bWxCdWlsZFFOYW1lKGNvbnN0IHhtbENoYXIgKm5jbmFtZSwgY29uc3QgeG1sQ2hhciAqcHJlZml4LAorCSAgICAgIHhtbENoYXIgKm1lbW9yeSwgaW50IGxlbikgeworICAgIGludCBsZW5uLCBsZW5wOworICAgIHhtbENoYXIgKnJldDsKKworICAgIGlmIChuY25hbWUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChwcmVmaXggPT0gTlVMTCkgcmV0dXJuKCh4bWxDaGFyICopIG5jbmFtZSk7CisKKyAgICBsZW5uID0gc3RybGVuKChjaGFyICopIG5jbmFtZSk7CisgICAgbGVucCA9IHN0cmxlbigoY2hhciAqKSBwcmVmaXgpOworCisgICAgaWYgKChtZW1vcnkgPT0gTlVMTCkgfHwgKGxlbiA8IGxlbm4gKyBsZW5wICsgMikpIHsKKwlyZXQgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobGVubiArIGxlbnAgKyAyKTsKKwlpZiAocmV0ID09IE5VTEwpIHsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgUU5hbWUiKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKyAgICB9IGVsc2UgeworCXJldCA9IG1lbW9yeTsKKyAgICB9CisgICAgbWVtY3B5KCZyZXRbMF0sIHByZWZpeCwgbGVucCk7CisgICAgcmV0W2xlbnBdID0gJzonOworICAgIG1lbWNweSgmcmV0W2xlbnAgKyAxXSwgbmNuYW1lLCBsZW5uKTsKKyAgICByZXRbbGVubiArIGxlbnAgKyAxXSA9IDA7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU3BsaXRRTmFtZTI6CisgKiBAbmFtZTogIHRoZSBmdWxsIFFOYW1lCisgKiBAcHJlZml4OiAgYSB4bWxDaGFyICoqCisgKgorICogcGFyc2UgYW4gWE1MIHF1YWxpZmllZCBuYW1lIHN0cmluZworICoKKyAqIFtOUyA1XSBRTmFtZSA6Oj0gKFByZWZpeCAnOicpPyBMb2NhbFBhcnQKKyAqCisgKiBbTlMgNl0gUHJlZml4IDo6PSBOQ05hbWUKKyAqCisgKiBbTlMgN10gTG9jYWxQYXJ0IDo6PSBOQ05hbWUKKyAqCisgKiBSZXR1cm5zIE5VTEwgaWYgbm90IGEgUU5hbWUsIG90aGVyd2lzZSB0aGUgbG9jYWwgcGFydCwgYW5kIHByZWZpeAorICogICBpcyB1cGRhdGVkIHRvIGdldCB0aGUgUHJlZml4IGlmIGFueS4KKyAqLworCit4bWxDaGFyICoKK3htbFNwbGl0UU5hbWUyKGNvbnN0IHhtbENoYXIgKm5hbWUsIHhtbENoYXIgKipwcmVmaXgpIHsKKyAgICBpbnQgbGVuID0gMDsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworCisgICAgaWYgKHByZWZpeCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgKnByZWZpeCA9IE5VTEw7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisjaWZuZGVmIFhNTF9YTUxfTkFNRVNQQUNFCisgICAgLyogeG1sOiBwcmVmaXggaXMgbm90IHJlYWxseSBhIG5hbWVzcGFjZSAqLworICAgIGlmICgobmFtZVswXSA9PSAneCcpICYmIChuYW1lWzFdID09ICdtJykgJiYKKyAgICAgICAgKG5hbWVbMl0gPT0gJ2wnKSAmJiAobmFtZVszXSA9PSAnOicpKQorCXJldHVybihOVUxMKTsKKyNlbmRpZgorCisgICAgLyogbmFzdHkgYnV0IHZhbGlkICovCisgICAgaWYgKG5hbWVbMF0gPT0gJzonKQorCXJldHVybihOVUxMKTsKKworICAgIC8qCisgICAgICogd2UgYXJlIG5vdCB0cnlpbmcgdG8gdmFsaWRhdGUgYnV0IGp1c3QgdG8gY3V0LCBhbmQgeWVzIGl0IHdpbGwKKyAgICAgKiB3b3JrIGV2ZW4gaWYgdGhpcyBpcyBhcyBzZXQgb2YgVVRGLTggZW5jb2RlZCBjaGFycworICAgICAqLworICAgIHdoaWxlICgobmFtZVtsZW5dICE9IDApICYmIChuYW1lW2xlbl0gIT0gJzonKSkKKwlsZW4rKzsKKworICAgIGlmIChuYW1lW2xlbl0gPT0gMCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICAqcHJlZml4ID0geG1sU3RybmR1cChuYW1lLCBsZW4pOworICAgIGlmICgqcHJlZml4ID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJRTmFtZSBzcGxpdCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0ID0geG1sU3RyZHVwKCZuYW1lW2xlbiArIDFdKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJRTmFtZSBzcGxpdCIpOworCWlmICgqcHJlZml4ICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZSgqcHJlZml4KTsKKwkgICAgKnByZWZpeCA9IE5VTEw7CisJfQorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTcGxpdFFOYW1lMzoKKyAqIEBuYW1lOiAgdGhlIGZ1bGwgUU5hbWUKKyAqIEBsZW46IGFuIGludCAqCisgKgorICogcGFyc2UgYW4gWE1MIHF1YWxpZmllZCBuYW1lIHN0cmluZyxpCisgKgorICogcmV0dXJucyBOVUxMIGlmIGl0IGlzIG5vdCBhIFF1YWxpZmllZCBOYW1lLCBvdGhlcndpc2UsIHVwZGF0ZSBsZW4KKyAqICAgICAgICAgd2l0aCB0aGUgbGVuZ2h0IGluIGJ5dGUgb2YgdGhlIHByZWZpeCBhbmQgcmV0dXJuIGEgcG9pbnRlcgorICogICAgICAgICB0byB0aGUgc3RhcnQgb2YgdGhlIG5hbWUgd2l0aG91dCB0aGUgcHJlZml4CisgKi8KKworY29uc3QgeG1sQ2hhciAqCit4bWxTcGxpdFFOYW1lMyhjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgKmxlbikgeworICAgIGludCBsID0gMDsKKworICAgIGlmIChuYW1lID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAobGVuID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIC8qIG5hc3R5IGJ1dCB2YWxpZCAqLworICAgIGlmIChuYW1lWzBdID09ICc6JykKKwlyZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIHdlIGFyZSBub3QgdHJ5aW5nIHRvIHZhbGlkYXRlIGJ1dCBqdXN0IHRvIGN1dCwgYW5kIHllcyBpdCB3aWxsCisgICAgICogd29yayBldmVuIGlmIHRoaXMgaXMgYXMgc2V0IG9mIFVURi04IGVuY29kZWQgY2hhcnMKKyAgICAgKi8KKyAgICB3aGlsZSAoKG5hbWVbbF0gIT0gMCkgJiYgKG5hbWVbbF0gIT0gJzonKSkKKwlsKys7CisKKyAgICBpZiAobmFtZVtsXSA9PSAwKQorCXJldHVybihOVUxMKTsKKworICAgICpsZW4gPSBsOworCisgICAgcmV0dXJuKCZuYW1lW2wrMV0pOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlDaGVjayBOYW1lLCBOQ05hbWUgYW5kIFFOYW1lIHN0cmluZ3MJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQ1VSX1NDSEFSKHMsIGwpIHhtbFN0cmluZ0N1cnJlbnRDaGFyKE5VTEwsIHMsICZsKQorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9YUEFUSF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpIHx8IGRlZmluZWQgKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NBWDFfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfRE9DQl9FTkFCTEVEKQorLyoqCisgKiB4bWxWYWxpZGF0ZU5DTmFtZToKKyAqIEB2YWx1ZTogdGhlIHZhbHVlIHRvIGNoZWNrCisgKiBAc3BhY2U6IGFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmcKKyAqCisgKiBDaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgTkNOYW1lCisgKgorICogUmV0dXJucyAwIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZQorICogICAgICAgICBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sVmFsaWRhdGVOQ05hbWUoY29uc3QgeG1sQ2hhciAqdmFsdWUsIGludCBzcGFjZSkgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IHZhbHVlOworICAgIGludCBjLGw7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIC8qCisgICAgICogRmlyc3QgcXVpY2sgYWxnb3JpdGhtIGZvciBBU0NJSSByYW5nZQorICAgICAqLworICAgIGlmIChzcGFjZSkKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworICAgIGlmICgoKCpjdXIgPj0gJ2EnKSAmJiAoKmN1ciA8PSAneicpKSB8fCAoKCpjdXIgPj0gJ0EnKSAmJiAoKmN1ciA8PSAnWicpKSB8fAorCSgqY3VyID09ICdfJykpCisJY3VyKys7CisgICAgZWxzZQorCWdvdG8gdHJ5X2NvbXBsZXg7CisgICAgd2hpbGUgKCgoKmN1ciA+PSAnYScpICYmICgqY3VyIDw9ICd6JykpIHx8CisJICAgKCgqY3VyID49ICdBJykgJiYgKCpjdXIgPD0gJ1onKSkgfHwKKwkgICAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB8fAorCSAgICgqY3VyID09ICdfJykgfHwgKCpjdXIgPT0gJy0nKSB8fCAoKmN1ciA9PSAnLicpKQorCWN1cisrOworICAgIGlmIChzcGFjZSkKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworICAgIGlmICgqY3VyID09IDApCisJcmV0dXJuKDApOworCit0cnlfY29tcGxleDoKKyAgICAvKgorICAgICAqIFNlY29uZCBjaGVjayBmb3IgY2hhcnMgb3V0c2lkZSB0aGUgQVNDSUkgcmFuZ2UKKyAgICAgKi8KKyAgICBjdXIgPSB2YWx1ZTsKKyAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgaWYgKHNwYWNlKSB7CisJd2hpbGUgKElTX0JMQU5LKGMpKSB7CisJICAgIGN1ciArPSBsOworCSAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisJfQorICAgIH0KKyAgICBpZiAoKCFJU19MRVRURVIoYykpICYmIChjICE9ICdfJykpCisJcmV0dXJuKDEpOworICAgIGN1ciArPSBsOworICAgIGMgPSBDVVJfU0NIQVIoY3VyLCBsKTsKKyAgICB3aGlsZSAoSVNfTEVUVEVSKGMpIHx8IElTX0RJR0lUKGMpIHx8IChjID09ICcuJykgfHwKKwkgICAoYyA9PSAnLScpIHx8IChjID09ICdfJykgfHwgSVNfQ09NQklOSU5HKGMpIHx8CisJICAgSVNfRVhURU5ERVIoYykpIHsKKwljdXIgKz0gbDsKKwljID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgfQorICAgIGlmIChzcGFjZSkgeworCXdoaWxlIChJU19CTEFOSyhjKSkgeworCSAgICBjdXIgKz0gbDsKKwkgICAgYyA9IENVUl9TQ0hBUihjdXIsIGwpOworCX0KKyAgICB9CisgICAgaWYgKGMgIT0gMCkKKwlyZXR1cm4oMSk7CisKKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorLyoqCisgKiB4bWxWYWxpZGF0ZVFOYW1lOgorICogQHZhbHVlOiB0aGUgdmFsdWUgdG8gY2hlY2sKKyAqIEBzcGFjZTogYWxsb3cgc3BhY2VzIGluIGZyb250IGFuZCBlbmQgb2YgdGhlIHN0cmluZworICoKKyAqIENoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiBRTmFtZQorICoKKyAqIFJldHVybnMgMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitpbnQKK3htbFZhbGlkYXRlUU5hbWUoY29uc3QgeG1sQ2hhciAqdmFsdWUsIGludCBzcGFjZSkgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IHZhbHVlOworICAgIGludCBjLGw7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICAvKgorICAgICAqIEZpcnN0IHF1aWNrIGFsZ29yaXRobSBmb3IgQVNDSUkgcmFuZ2UKKyAgICAgKi8KKyAgICBpZiAoc3BhY2UpCisJd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKSBjdXIrKzsKKyAgICBpZiAoKCgqY3VyID49ICdhJykgJiYgKCpjdXIgPD0gJ3onKSkgfHwgKCgqY3VyID49ICdBJykgJiYgKCpjdXIgPD0gJ1onKSkgfHwKKwkoKmN1ciA9PSAnXycpKQorCWN1cisrOworICAgIGVsc2UKKwlnb3RvIHRyeV9jb21wbGV4OworICAgIHdoaWxlICgoKCpjdXIgPj0gJ2EnKSAmJiAoKmN1ciA8PSAneicpKSB8fAorCSAgICgoKmN1ciA+PSAnQScpICYmICgqY3VyIDw9ICdaJykpIHx8CisJICAgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkgfHwKKwkgICAoKmN1ciA9PSAnXycpIHx8ICgqY3VyID09ICctJykgfHwgKCpjdXIgPT0gJy4nKSkKKwljdXIrKzsKKyAgICBpZiAoKmN1ciA9PSAnOicpIHsKKwljdXIrKzsKKwlpZiAoKCgqY3VyID49ICdhJykgJiYgKCpjdXIgPD0gJ3onKSkgfHwKKwkgICAgKCgqY3VyID49ICdBJykgJiYgKCpjdXIgPD0gJ1onKSkgfHwKKwkgICAgKCpjdXIgPT0gJ18nKSkKKwkgICAgY3VyKys7CisJZWxzZQorCSAgICBnb3RvIHRyeV9jb21wbGV4OworCXdoaWxlICgoKCpjdXIgPj0gJ2EnKSAmJiAoKmN1ciA8PSAneicpKSB8fAorCSAgICAgICAoKCpjdXIgPj0gJ0EnKSAmJiAoKmN1ciA8PSAnWicpKSB8fAorCSAgICAgICAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB8fAorCSAgICAgICAoKmN1ciA9PSAnXycpIHx8ICgqY3VyID09ICctJykgfHwgKCpjdXIgPT0gJy4nKSkKKwkgICAgY3VyKys7CisgICAgfQorICAgIGlmIChzcGFjZSkKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworICAgIGlmICgqY3VyID09IDApCisJcmV0dXJuKDApOworCit0cnlfY29tcGxleDoKKyAgICAvKgorICAgICAqIFNlY29uZCBjaGVjayBmb3IgY2hhcnMgb3V0c2lkZSB0aGUgQVNDSUkgcmFuZ2UKKyAgICAgKi8KKyAgICBjdXIgPSB2YWx1ZTsKKyAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgaWYgKHNwYWNlKSB7CisJd2hpbGUgKElTX0JMQU5LKGMpKSB7CisJICAgIGN1ciArPSBsOworCSAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisJfQorICAgIH0KKyAgICBpZiAoKCFJU19MRVRURVIoYykpICYmIChjICE9ICdfJykpCisJcmV0dXJuKDEpOworICAgIGN1ciArPSBsOworICAgIGMgPSBDVVJfU0NIQVIoY3VyLCBsKTsKKyAgICB3aGlsZSAoSVNfTEVUVEVSKGMpIHx8IElTX0RJR0lUKGMpIHx8IChjID09ICcuJykgfHwKKwkgICAoYyA9PSAnLScpIHx8IChjID09ICdfJykgfHwgSVNfQ09NQklOSU5HKGMpIHx8CisJICAgSVNfRVhURU5ERVIoYykpIHsKKwljdXIgKz0gbDsKKwljID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgfQorICAgIGlmIChjID09ICc6JykgeworCWN1ciArPSBsOworCWMgPSBDVVJfU0NIQVIoY3VyLCBsKTsKKwlpZiAoKCFJU19MRVRURVIoYykpICYmIChjICE9ICdfJykpCisJICAgIHJldHVybigxKTsKKwljdXIgKz0gbDsKKwljID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisJd2hpbGUgKElTX0xFVFRFUihjKSB8fCBJU19ESUdJVChjKSB8fCAoYyA9PSAnLicpIHx8CisJICAgICAgIChjID09ICctJykgfHwgKGMgPT0gJ18nKSB8fCBJU19DT01CSU5JTkcoYykgfHwKKwkgICAgICAgSVNfRVhURU5ERVIoYykpIHsKKwkgICAgY3VyICs9IGw7CisJICAgIGMgPSBDVVJfU0NIQVIoY3VyLCBsKTsKKwl9CisgICAgfQorICAgIGlmIChzcGFjZSkgeworCXdoaWxlIChJU19CTEFOSyhjKSkgeworCSAgICBjdXIgKz0gbDsKKwkgICAgYyA9IENVUl9TQ0hBUihjdXIsIGwpOworCX0KKyAgICB9CisgICAgaWYgKGMgIT0gMCkKKwlyZXR1cm4oMSk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlTmFtZToKKyAqIEB2YWx1ZTogdGhlIHZhbHVlIHRvIGNoZWNrCisgKiBAc3BhY2U6IGFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmcKKyAqCisgKiBDaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgTmFtZQorICoKKyAqIFJldHVybnMgMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitpbnQKK3htbFZhbGlkYXRlTmFtZShjb25zdCB4bWxDaGFyICp2YWx1ZSwgaW50IHNwYWNlKSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisgICAgaW50IGMsbDsKKworICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIC8qCisgICAgICogRmlyc3QgcXVpY2sgYWxnb3JpdGhtIGZvciBBU0NJSSByYW5nZQorICAgICAqLworICAgIGlmIChzcGFjZSkKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworICAgIGlmICgoKCpjdXIgPj0gJ2EnKSAmJiAoKmN1ciA8PSAneicpKSB8fCAoKCpjdXIgPj0gJ0EnKSAmJiAoKmN1ciA8PSAnWicpKSB8fAorCSgqY3VyID09ICdfJykgfHwgKCpjdXIgPT0gJzonKSkKKwljdXIrKzsKKyAgICBlbHNlCisJZ290byB0cnlfY29tcGxleDsKKyAgICB3aGlsZSAoKCgqY3VyID49ICdhJykgJiYgKCpjdXIgPD0gJ3onKSkgfHwKKwkgICAoKCpjdXIgPj0gJ0EnKSAmJiAoKmN1ciA8PSAnWicpKSB8fAorCSAgICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpIHx8CisJICAgKCpjdXIgPT0gJ18nKSB8fCAoKmN1ciA9PSAnLScpIHx8ICgqY3VyID09ICcuJykgfHwgKCpjdXIgPT0gJzonKSkKKwljdXIrKzsKKyAgICBpZiAoc3BhY2UpCisJd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKSBjdXIrKzsKKyAgICBpZiAoKmN1ciA9PSAwKQorCXJldHVybigwKTsKKwordHJ5X2NvbXBsZXg6CisgICAgLyoKKyAgICAgKiBTZWNvbmQgY2hlY2sgZm9yIGNoYXJzIG91dHNpZGUgdGhlIEFTQ0lJIHJhbmdlCisgICAgICovCisgICAgY3VyID0gdmFsdWU7CisgICAgYyA9IENVUl9TQ0hBUihjdXIsIGwpOworICAgIGlmIChzcGFjZSkgeworCXdoaWxlIChJU19CTEFOSyhjKSkgeworCSAgICBjdXIgKz0gbDsKKwkgICAgYyA9IENVUl9TQ0hBUihjdXIsIGwpOworCX0KKyAgICB9CisgICAgaWYgKCghSVNfTEVUVEVSKGMpKSAmJiAoYyAhPSAnXycpICYmIChjICE9ICc6JykpCisJcmV0dXJuKDEpOworICAgIGN1ciArPSBsOworICAgIGMgPSBDVVJfU0NIQVIoY3VyLCBsKTsKKyAgICB3aGlsZSAoSVNfTEVUVEVSKGMpIHx8IElTX0RJR0lUKGMpIHx8IChjID09ICcuJykgfHwgKGMgPT0gJzonKSB8fAorCSAgIChjID09ICctJykgfHwgKGMgPT0gJ18nKSB8fCBJU19DT01CSU5JTkcoYykgfHwgSVNfRVhURU5ERVIoYykpIHsKKwljdXIgKz0gbDsKKwljID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgfQorICAgIGlmIChzcGFjZSkgeworCXdoaWxlIChJU19CTEFOSyhjKSkgeworCSAgICBjdXIgKz0gbDsKKwkgICAgYyA9IENVUl9TQ0hBUihjdXIsIGwpOworCX0KKyAgICB9CisgICAgaWYgKGMgIT0gMCkKKwlyZXR1cm4oMSk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlTk1Ub2tlbjoKKyAqIEB2YWx1ZTogdGhlIHZhbHVlIHRvIGNoZWNrCisgKiBAc3BhY2U6IGFsbG93IHNwYWNlcyBpbiBmcm9udCBhbmQgZW5kIG9mIHRoZSBzdHJpbmcKKyAqCisgKiBDaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgTk1Ub2tlbgorICoKKyAqIFJldHVybnMgMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitpbnQKK3htbFZhbGlkYXRlTk1Ub2tlbihjb25zdCB4bWxDaGFyICp2YWx1ZSwgaW50IHNwYWNlKSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisgICAgaW50IGMsbDsKKworICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIC8qCisgICAgICogRmlyc3QgcXVpY2sgYWxnb3JpdGhtIGZvciBBU0NJSSByYW5nZQorICAgICAqLworICAgIGlmIChzcGFjZSkKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworICAgIGlmICgoKCpjdXIgPj0gJ2EnKSAmJiAoKmN1ciA8PSAneicpKSB8fAorICAgICAgICAoKCpjdXIgPj0gJ0EnKSAmJiAoKmN1ciA8PSAnWicpKSB8fAorICAgICAgICAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB8fAorICAgICAgICAoKmN1ciA9PSAnXycpIHx8ICgqY3VyID09ICctJykgfHwgKCpjdXIgPT0gJy4nKSB8fCAoKmN1ciA9PSAnOicpKQorCWN1cisrOworICAgIGVsc2UKKwlnb3RvIHRyeV9jb21wbGV4OworICAgIHdoaWxlICgoKCpjdXIgPj0gJ2EnKSAmJiAoKmN1ciA8PSAneicpKSB8fAorCSAgICgoKmN1ciA+PSAnQScpICYmICgqY3VyIDw9ICdaJykpIHx8CisJICAgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkgfHwKKwkgICAoKmN1ciA9PSAnXycpIHx8ICgqY3VyID09ICctJykgfHwgKCpjdXIgPT0gJy4nKSB8fCAoKmN1ciA9PSAnOicpKQorCWN1cisrOworICAgIGlmIChzcGFjZSkKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworICAgIGlmICgqY3VyID09IDApCisJcmV0dXJuKDApOworCit0cnlfY29tcGxleDoKKyAgICAvKgorICAgICAqIFNlY29uZCBjaGVjayBmb3IgY2hhcnMgb3V0c2lkZSB0aGUgQVNDSUkgcmFuZ2UKKyAgICAgKi8KKyAgICBjdXIgPSB2YWx1ZTsKKyAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgaWYgKHNwYWNlKSB7CisJd2hpbGUgKElTX0JMQU5LKGMpKSB7CisJICAgIGN1ciArPSBsOworCSAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisJfQorICAgIH0KKyAgICBpZiAoIShJU19MRVRURVIoYykgfHwgSVNfRElHSVQoYykgfHwgKGMgPT0gJy4nKSB8fCAoYyA9PSAnOicpIHx8CisgICAgICAgIChjID09ICctJykgfHwgKGMgPT0gJ18nKSB8fCBJU19DT01CSU5JTkcoYykgfHwgSVNfRVhURU5ERVIoYykpKQorCXJldHVybigxKTsKKyAgICBjdXIgKz0gbDsKKyAgICBjID0gQ1VSX1NDSEFSKGN1ciwgbCk7CisgICAgd2hpbGUgKElTX0xFVFRFUihjKSB8fCBJU19ESUdJVChjKSB8fCAoYyA9PSAnLicpIHx8IChjID09ICc6JykgfHwKKwkgICAoYyA9PSAnLScpIHx8IChjID09ICdfJykgfHwgSVNfQ09NQklOSU5HKGMpIHx8IElTX0VYVEVOREVSKGMpKSB7CisJY3VyICs9IGw7CisJYyA9IENVUl9TQ0hBUihjdXIsIGwpOworICAgIH0KKyAgICBpZiAoc3BhY2UpIHsKKwl3aGlsZSAoSVNfQkxBTksoYykpIHsKKwkgICAgY3VyICs9IGw7CisJICAgIGMgPSBDVVJfU0NIQVIoY3VyLCBsKTsKKwl9CisgICAgfQorICAgIGlmIChjICE9IDApCisJcmV0dXJuKDEpOworICAgIHJldHVybigwKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBvZiBiYXNpYyBzdHJ1Y3R1cmVzCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sU2V0QnVmZmVyQWxsb2NhdGlvblNjaGVtZToKKyAqIEBzY2hlbWU6ICBhbGxvY2F0aW9uIG1ldGhvZCB0byB1c2UKKyAqCisgKiBTZXQgdGhlIGJ1ZmZlciBhbGxvY2F0aW9uIG1ldGhvZC4gIFR5cGVzIGFyZQorICogWE1MX0JVRkZFUl9BTExPQ19FWEFDVCAtIHVzZSBleGFjdCBzaXplcywga2VlcHMgbWVtb3J5IHVzYWdlIGRvd24KKyAqIFhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQgLSBkb3VibGUgYnVmZmVyIHdoZW4gZXh0cmEgbmVlZGVkLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcHJvdmVzIHBlcmZvcm1hbmNlCisgKi8KK3ZvaWQKK3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUoeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSBzY2hlbWUpIHsKKyAgICBpZiAoKHNjaGVtZSA9PSBYTUxfQlVGRkVSX0FMTE9DX0VYQUNUKSB8fAorICAgICAgICAoc2NoZW1lID09IFhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQpKQorCXhtbEJ1ZmZlckFsbG9jU2NoZW1lID0gc2NoZW1lOworfQorCisvKioKKyAqIHhtbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWU6CisgKgorICogVHlwZXMgYXJlCisgKiBYTUxfQlVGRkVSX0FMTE9DX0VYQUNUIC0gdXNlIGV4YWN0IHNpemVzLCBrZWVwcyBtZW1vcnkgdXNhZ2UgZG93bgorICogWE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVCAtIGRvdWJsZSBidWZmZXIgd2hlbiBleHRyYSBuZWVkZWQsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wcm92ZXMgcGVyZm9ybWFuY2UKKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFsbG9jYXRpb24gc2NoZW1lCisgKi8KK3htbEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUKK3htbEdldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUodm9pZCkgeworICAgIHJldHVybih4bWxCdWZmZXJBbGxvY1NjaGVtZSk7Cit9CisKKy8qKgorICogeG1sTmV3TnM6CisgKiBAbm9kZTogIHRoZSBlbGVtZW50IGNhcnJ5aW5nIHRoZSBuYW1lc3BhY2UKKyAqIEBocmVmOiAgdGhlIFVSSSBhc3NvY2lhdGVkCisgKiBAcHJlZml4OiAgdGhlIHByZWZpeCBmb3IgdGhlIG5hbWVzcGFjZQorICoKKyAqIENyZWF0aW9uIG9mIGEgbmV3IE5hbWVzcGFjZS4gVGhpcyBmdW5jdGlvbiB3aWxsIHJlZnVzZSB0byBjcmVhdGUKKyAqIGEgbmFtZXNwYWNlIHdpdGggYSBzaW1pbGFyIHByZWZpeCB0aGFuIGFuIGV4aXN0aW5nIG9uZSBwcmVzZW50IG9uIHRoaXMKKyAqIG5vZGUuCisgKiBXZSB1c2UgaHJlZj09TlVMTCBpbiB0aGUgY2FzZSBvZiBhbiBlbGVtZW50IGNyZWF0aW9uIHdoZXJlIHRoZSBuYW1lc3BhY2UKKyAqIHdhcyBub3QgZGVmaW5lZC4KKyAqIFJldHVybnMgYSBuZXcgbmFtZXNwYWNlIHBvaW50ZXIgb3IgTlVMTAorICovCit4bWxOc1B0cgoreG1sTmV3TnMoeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyICpocmVmLCBjb25zdCB4bWxDaGFyICpwcmVmaXgpIHsKKyAgICB4bWxOc1B0ciBjdXI7CisKKyAgICBpZiAoKG5vZGUgIT0gTlVMTCkgJiYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKChwcmVmaXggIT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKHByZWZpeCwgQkFEX0NBU1QgInhtbCIpKSkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIEFsbG9jYXRlIGEgbmV3IE5hbWVzcGFjZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOc1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOcykpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImJ1aWxkaW5nIG5hbWVzcGFjZSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbE5zKSk7CisgICAgY3VyLT50eXBlID0gWE1MX0xPQ0FMX05BTUVTUEFDRTsKKworICAgIGlmIChocmVmICE9IE5VTEwpCisJY3VyLT5ocmVmID0geG1sU3RyZHVwKGhyZWYpOworICAgIGlmIChwcmVmaXggIT0gTlVMTCkKKwljdXItPnByZWZpeCA9IHhtbFN0cmR1cChwcmVmaXgpOworCisgICAgLyoKKyAgICAgKiBBZGQgaXQgYXQgdGhlIGVuZCB0byBwcmVzZXJ2ZSBwYXJzaW5nIG9yZGVyIC4uLgorICAgICAqIGFuZCBjaGVja3MgZm9yIGV4aXN0aW5nIHVzZSBvZiB0aGUgcHJlZml4CisgICAgICovCisgICAgaWYgKG5vZGUgIT0gTlVMTCkgeworCWlmIChub2RlLT5uc0RlZiA9PSBOVUxMKSB7CisJICAgIG5vZGUtPm5zRGVmID0gY3VyOworCX0gZWxzZSB7CisJICAgIHhtbE5zUHRyIHByZXYgPSBub2RlLT5uc0RlZjsKKworCSAgICBpZiAoKChwcmV2LT5wcmVmaXggPT0gTlVMTCkgJiYgKGN1ci0+cHJlZml4ID09IE5VTEwpKSB8fAorCQkoeG1sU3RyRXF1YWwocHJldi0+cHJlZml4LCBjdXItPnByZWZpeCkpKSB7CisJCXhtbEZyZWVOcyhjdXIpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgd2hpbGUgKHByZXYtPm5leHQgIT0gTlVMTCkgeworCSAgICAgICAgcHJldiA9IHByZXYtPm5leHQ7CisJCWlmICgoKHByZXYtPnByZWZpeCA9PSBOVUxMKSAmJiAoY3VyLT5wcmVmaXggPT0gTlVMTCkpIHx8CisJCSAgICAoeG1sU3RyRXF1YWwocHJldi0+cHJlZml4LCBjdXItPnByZWZpeCkpKSB7CisJCSAgICB4bWxGcmVlTnMoY3VyKTsKKwkJICAgIHJldHVybihOVUxMKTsKKwkJfQorCSAgICB9CisJICAgIHByZXYtPm5leHQgPSBjdXI7CisJfQorICAgIH0KKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxTZXROczoKKyAqIEBub2RlOiAgYSBub2RlIGluIHRoZSBkb2N1bWVudAorICogQG5zOiAgYSBuYW1lc3BhY2UgcG9pbnRlcgorICoKKyAqIEFzc29jaWF0ZSBhIG5hbWVzcGFjZSB0byBhIG5vZGUsIGEgcG9zdGVyaW9yaS4KKyAqLwordm9pZAoreG1sU2V0TnMoeG1sTm9kZVB0ciBub2RlLCB4bWxOc1B0ciBucykgeworICAgIGlmIChub2RlID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sU2V0TnM6IG5vZGUgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm47CisgICAgfQorICAgIG5vZGUtPm5zID0gbnM7Cit9CisKKy8qKgorICogeG1sRnJlZU5zOgorICogQGN1cjogIHRoZSBuYW1lc3BhY2UgcG9pbnRlcgorICoKKyAqIEZyZWUgdXAgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byBhIG5hbWVzcGFjZQorICovCit2b2lkCit4bWxGcmVlTnMoeG1sTnNQdHIgY3VyKSB7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEZyZWVOcyA6IG5zID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT5ocmVmICE9IE5VTEwpIHhtbEZyZWUoKGNoYXIgKikgY3VyLT5ocmVmKTsKKyAgICBpZiAoY3VyLT5wcmVmaXggIT0gTlVMTCkgeG1sRnJlZSgoY2hhciAqKSBjdXItPnByZWZpeCk7CisgICAgeG1sRnJlZShjdXIpOworfQorCisvKioKKyAqIHhtbEZyZWVOc0xpc3Q6CisgKiBAY3VyOiAgdGhlIGZpcnN0IG5hbWVzcGFjZSBwb2ludGVyCisgKgorICogRnJlZSB1cCBhbGwgdGhlIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB0byB0aGUgY2hhaW5lZCBuYW1lc3BhY2VzLgorICovCit2b2lkCit4bWxGcmVlTnNMaXN0KHhtbE5zUHRyIGN1cikgeworICAgIHhtbE5zUHRyIG5leHQ7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEZyZWVOc0xpc3QgOiBucyA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybjsKKyAgICB9CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIG5leHQgPSBjdXItPm5leHQ7CisgICAgICAgIHhtbEZyZWVOcyhjdXIpOworCWN1ciA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbE5ld0R0ZDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgcG9pbnRlcgorICogQG5hbWU6ICB0aGUgRFREIG5hbWUKKyAqIEBFeHRlcm5hbElEOiAgdGhlIGV4dGVybmFsIElECisgKiBAU3lzdGVtSUQ6ICB0aGUgc3lzdGVtIElECisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgRFREIGZvciB0aGUgZXh0ZXJuYWwgc3Vic2V0LiBUbyBjcmVhdGUgYW4KKyAqIGludGVybmFsIHN1YnNldCwgdXNlIHhtbENyZWF0ZUludFN1YnNldCgpLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgRFREIHN0cnVjdHVyZQorICovCit4bWxEdGRQdHIKK3htbE5ld0R0ZCh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkgeworICAgIHhtbER0ZFB0ciBjdXI7CisKKyAgICBpZiAoKGRvYyAhPSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3RHRkKCVzKTogZG9jdW1lbnQgJXMgYWxyZWFkeSBoYXZlIGEgRFREICVzXG4iLAorCSAgICAvKiAhISEgKi8gKGNoYXIgKikgbmFtZSwgZG9jLT5uYW1lLAorCSAgICAvKiAhISEgKi8gKGNoYXIgKilkb2MtPmV4dFN1YnNldC0+bmFtZSk7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBEVEQgYW5kIGZpbGwgdGhlIGZpZWxkcy4KKyAgICAgKi8KKyAgICBjdXIgPSAoeG1sRHRkUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbER0ZCkpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImJ1aWxkaW5nIERURCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCAsIHNpemVvZih4bWxEdGQpKTsKKyAgICBjdXItPnR5cGUgPSBYTUxfRFREX05PREU7CisKKyAgICBpZiAobmFtZSAhPSBOVUxMKQorCWN1ci0+bmFtZSA9IHhtbFN0cmR1cChuYW1lKTsKKyAgICBpZiAoRXh0ZXJuYWxJRCAhPSBOVUxMKQorCWN1ci0+RXh0ZXJuYWxJRCA9IHhtbFN0cmR1cChFeHRlcm5hbElEKTsKKyAgICBpZiAoU3lzdGVtSUQgIT0gTlVMTCkKKwljdXItPlN5c3RlbUlEID0geG1sU3RyZHVwKFN5c3RlbUlEKTsKKyAgICBpZiAoZG9jICE9IE5VTEwpCisJZG9jLT5leHRTdWJzZXQgPSBjdXI7CisgICAgY3VyLT5kb2MgPSBkb2M7CisKKyAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKQorCXhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSgoeG1sTm9kZVB0ciljdXIpOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbEdldEludFN1YnNldDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgcG9pbnRlcgorICoKKyAqIEdldCB0aGUgaW50ZXJuYWwgc3Vic2V0IG9mIGEgZG9jdW1lbnQKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBEVEQgc3RydWN0dXJlIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KKworeG1sRHRkUHRyCit4bWxHZXRJbnRTdWJzZXQoeG1sRG9jUHRyIGRvYykgeworICAgIHhtbE5vZGVQdHIgY3VyOworCisgICAgaWYgKGRvYyA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBjdXIgPSBkb2MtPmNoaWxkcmVuOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCWlmIChjdXItPnR5cGUgPT0gWE1MX0RURF9OT0RFKQorCSAgICByZXR1cm4oKHhtbER0ZFB0cikgY3VyKTsKKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybigoeG1sRHRkUHRyKSBkb2MtPmludFN1YnNldCk7Cit9CisKKy8qKgorICogeG1sQ3JlYXRlSW50U3Vic2V0OgorICogQGRvYzogIHRoZSBkb2N1bWVudCBwb2ludGVyCisgKiBAbmFtZTogIHRoZSBEVEQgbmFtZQorICogQEV4dGVybmFsSUQ6ICB0aGUgZXh0ZXJuYWwgKFBVQkxJQykgSUQKKyAqIEBTeXN0ZW1JRDogIHRoZSBzeXN0ZW0gSUQKKyAqCisgKiBDcmVhdGUgdGhlIGludGVybmFsIHN1YnNldCBvZiBhIGRvY3VtZW50CisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IERURCBzdHJ1Y3R1cmUKKyAqLworeG1sRHRkUHRyCit4bWxDcmVhdGVJbnRTdWJzZXQoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkgeworICAgIHhtbER0ZFB0ciBjdXI7CisKKyAgICBpZiAoKGRvYyAhPSBOVUxMKSAmJiAoeG1sR2V0SW50U3Vic2V0KGRvYykgIT0gTlVMTCkpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCisgICAgICJ4bWxDcmVhdGVJbnRTdWJzZXQoKTogZG9jdW1lbnQgJXMgYWxyZWFkeSBoYXZlIGFuIGludGVybmFsIHN1YnNldFxuIiwKKwkgICAgZG9jLT5uYW1lKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEFsbG9jYXRlIGEgbmV3IERURCBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxEdGRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sRHRkKSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgaW50ZXJuYWwgc3Vic2V0Iik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sRHRkKSk7CisgICAgY3VyLT50eXBlID0gWE1MX0RURF9OT0RFOworCisgICAgaWYgKG5hbWUgIT0gTlVMTCkgeworCWN1ci0+bmFtZSA9IHhtbFN0cmR1cChuYW1lKTsKKwlpZiAoY3VyLT5uYW1lID09IE5VTEwpIHsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgaW50ZXJuYWwgc3Vic2V0Iik7CisJICAgIHhtbEZyZWUoY3VyKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKyAgICB9CisgICAgaWYgKEV4dGVybmFsSUQgIT0gTlVMTCkgeworCWN1ci0+RXh0ZXJuYWxJRCA9IHhtbFN0cmR1cChFeHRlcm5hbElEKTsKKwlpZiAoY3VyLT5FeHRlcm5hbElEICA9PSBOVUxMKSB7CisJICAgIHhtbFRyZWVFcnJNZW1vcnkoImJ1aWxkaW5nIGludGVybmFsIHN1YnNldCIpOworCSAgICBpZiAoY3VyLT5uYW1lICE9IE5VTEwpCisJICAgICAgICB4bWxGcmVlKChjaGFyICopY3VyLT5uYW1lKTsKKwkgICAgeG1sRnJlZShjdXIpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0KKyAgICBpZiAoU3lzdGVtSUQgIT0gTlVMTCkgeworCWN1ci0+U3lzdGVtSUQgPSB4bWxTdHJkdXAoU3lzdGVtSUQpOworCWlmIChjdXItPlN5c3RlbUlEID09IE5VTEwpIHsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgaW50ZXJuYWwgc3Vic2V0Iik7CisJICAgIGlmIChjdXItPm5hbWUgIT0gTlVMTCkKKwkgICAgICAgIHhtbEZyZWUoKGNoYXIgKiljdXItPm5hbWUpOworCSAgICBpZiAoY3VyLT5FeHRlcm5hbElEICE9IE5VTEwpCisJICAgICAgICB4bWxGcmVlKChjaGFyICopY3VyLT5FeHRlcm5hbElEKTsKKwkgICAgeG1sRnJlZShjdXIpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0KKyAgICBpZiAoZG9jICE9IE5VTEwpIHsKKwlkb2MtPmludFN1YnNldCA9IGN1cjsKKwljdXItPnBhcmVudCA9IGRvYzsKKwljdXItPmRvYyA9IGRvYzsKKwlpZiAoZG9jLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisJICAgIGRvYy0+Y2hpbGRyZW4gPSAoeG1sTm9kZVB0cikgY3VyOworCSAgICBkb2MtPmxhc3QgPSAoeG1sTm9kZVB0cikgY3VyOworCX0gZWxzZSB7CisJICAgIGlmIChkb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworCQl4bWxOb2RlUHRyIHByZXY7CisKKwkJcHJldiA9IGRvYy0+Y2hpbGRyZW47CisJCXByZXYtPnByZXYgPSAoeG1sTm9kZVB0cikgY3VyOworCQljdXItPm5leHQgPSBwcmV2OworCQlkb2MtPmNoaWxkcmVuID0gKHhtbE5vZGVQdHIpIGN1cjsKKwkgICAgfSBlbHNlIHsKKwkJeG1sTm9kZVB0ciBuZXh0OworCisJCW5leHQgPSBkb2MtPmNoaWxkcmVuOworCQl3aGlsZSAoKG5leHQgIT0gTlVMTCkgJiYgKG5leHQtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpCisJCSAgICBuZXh0ID0gbmV4dC0+bmV4dDsKKwkJaWYgKG5leHQgPT0gTlVMTCkgeworCQkgICAgY3VyLT5wcmV2ID0gZG9jLT5sYXN0OworCQkgICAgY3VyLT5wcmV2LT5uZXh0ID0gKHhtbE5vZGVQdHIpIGN1cjsKKwkJICAgIGN1ci0+bmV4dCA9IE5VTEw7CisJCSAgICBkb2MtPmxhc3QgPSAoeG1sTm9kZVB0cikgY3VyOworCQl9IGVsc2UgeworCQkgICAgY3VyLT5uZXh0ID0gbmV4dDsKKwkJICAgIGN1ci0+cHJldiA9IG5leHQtPnByZXY7CisJCSAgICBpZiAoY3VyLT5wcmV2ID09IE5VTEwpCisJCQlkb2MtPmNoaWxkcmVuID0gKHhtbE5vZGVQdHIpIGN1cjsKKwkJICAgIGVsc2UKKwkJCWN1ci0+cHJldi0+bmV4dCA9ICh4bWxOb2RlUHRyKSBjdXI7CisJCSAgICBuZXh0LT5wcmV2ID0gKHhtbE5vZGVQdHIpIGN1cjsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKWN1cik7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogRElDVF9GUkVFOgorICogQHN0cjogIGEgc3RyaW5nCisgKgorICogRnJlZSBhIHN0cmluZyBpZiBpdCBpcyBub3Qgb3duZWQgYnkgdGhlICJkaWN0IiBkaWN0aW9ubmFyeSBpbiB0aGUKKyAqIGN1cnJlbnQgc2NvcGUKKyAqLworI2RlZmluZSBESUNUX0ZSRUUoc3RyKQkJCQkJCVwKKwlpZiAoKHN0cikgJiYgKCghZGljdCkgfHwJCQkJXAorCSAgICAoeG1sRGljdE93bnMoZGljdCwgKGNvbnN0IHhtbENoYXIgKikoc3RyKSkgPT0gMCkpKQlcCisJICAgIHhtbEZyZWUoKGNoYXIgKikoc3RyKSk7CisKKworLyoqCisgKiBESUNUX0NPUFk6CisgKiBAc3RyOiAgYSBzdHJpbmcKKyAqCisgKiBDb3B5IGEgc3RyaW5nIHVzaW5nIGEgImRpY3QiIGRpY3Rpb25uYXJ5IGluIHRoZSBjdXJyZW50IHNjb3BlLAorICogaWYgYXZhaWxhYmUuCisgKi8KKyNkZWZpbmUgRElDVF9DT1BZKHN0ciwgY3B5KSBcCisgICAgaWYgKHN0cikgeyBcCisJaWYgKGRpY3QpIHsgXAorCSAgICBpZiAoeG1sRGljdE93bnMoZGljdCwgKGNvbnN0IHhtbENoYXIgKikoc3RyKSkpIFwKKwkJY3B5ID0gKHhtbENoYXIgKikgKHN0cik7IFwKKwkgICAgZWxzZSBcCisJCWNweSA9ICh4bWxDaGFyICopIHhtbERpY3RMb29rdXAoKGRpY3QpLCAoY29uc3QgeG1sQ2hhciAqKShzdHIpLCAtMSk7IFwKKwl9IGVsc2UgXAorCSAgICBjcHkgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikoc3RyKSk7IH0KKworLyoqCisgKiBESUNUX0NPTlNUX0NPUFk6CisgKiBAc3RyOiAgYSBzdHJpbmcKKyAqCisgKiBDb3B5IGEgc3RyaW5nIHVzaW5nIGEgImRpY3QiIGRpY3Rpb25uYXJ5IGluIHRoZSBjdXJyZW50IHNjb3BlLAorICogaWYgYXZhaWxhYmUuCisgKi8KKyNkZWZpbmUgRElDVF9DT05TVF9DT1BZKHN0ciwgY3B5KSBcCisgICAgaWYgKHN0cikgeyBcCisJaWYgKGRpY3QpIHsgXAorCSAgICBpZiAoeG1sRGljdE93bnMoZGljdCwgKGNvbnN0IHhtbENoYXIgKikoc3RyKSkpIFwKKwkJY3B5ID0gKGNvbnN0IHhtbENoYXIgKikgKHN0cik7IFwKKwkgICAgZWxzZSBcCisJCWNweSA9IHhtbERpY3RMb29rdXAoKGRpY3QpLCAoY29uc3QgeG1sQ2hhciAqKShzdHIpLCAtMSk7IFwKKwl9IGVsc2UgXAorCSAgICBjcHkgPSAoY29uc3QgeG1sQ2hhciAqKSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikoc3RyKSk7IH0KKworCisvKioKKyAqIHhtbEZyZWVEdGQ6CisgKiBAY3VyOiAgdGhlIERURCBzdHJ1Y3R1cmUgdG8gZnJlZSB1cAorICoKKyAqIEZyZWUgYSBEVEQgc3RydWN0dXJlLgorICovCit2b2lkCit4bWxGcmVlRHRkKHhtbER0ZFB0ciBjdXIpIHsKKyAgICB4bWxEaWN0UHRyIGRpY3QgPSBOVUxMOworCisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT5kb2MgIT0gTlVMTCkgZGljdCA9IGN1ci0+ZG9jLT5kaWN0OworCisgICAgaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKQorCXhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKWN1cik7CisKKyAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJeG1sTm9kZVB0ciBuZXh0LCBjID0gY3VyLT5jaGlsZHJlbjsKKworCS8qCisJICogQ2xlYW51cCBhbGwgbm9kZXMgd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSBzcGVjaWZpYyBsaXN0cworCSAqIG9mIG5vdGF0aW9ucywgZWxlbWVudHMsIGF0dHJpYnV0ZXMgYW5kIGVudGl0aWVzLgorCSAqLworICAgICAgICB3aGlsZSAoYyAhPSBOVUxMKSB7CisJICAgIG5leHQgPSBjLT5uZXh0OworCSAgICBpZiAoKGMtPnR5cGUgIT0gWE1MX05PVEFUSU9OX05PREUpICYmCisJICAgICAgICAoYy0+dHlwZSAhPSBYTUxfRUxFTUVOVF9ERUNMKSAmJgorCQkoYy0+dHlwZSAhPSBYTUxfQVRUUklCVVRFX0RFQ0wpICYmCisJCShjLT50eXBlICE9IFhNTF9FTlRJVFlfREVDTCkpIHsKKwkJeG1sVW5saW5rTm9kZShjKTsKKwkJeG1sRnJlZU5vZGUoYyk7CisJICAgIH0KKwkgICAgYyA9IG5leHQ7CisJfQorICAgIH0KKyAgICBESUNUX0ZSRUUoY3VyLT5uYW1lKQorICAgIERJQ1RfRlJFRShjdXItPlN5c3RlbUlEKQorICAgIERJQ1RfRlJFRShjdXItPkV4dGVybmFsSUQpCisgICAgLyogVE9ETyAhISEgKi8KKyAgICBpZiAoY3VyLT5ub3RhdGlvbnMgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZU5vdGF0aW9uVGFibGUoKHhtbE5vdGF0aW9uVGFibGVQdHIpIGN1ci0+bm90YXRpb25zKTsKKworICAgIGlmIChjdXItPmVsZW1lbnRzICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVFbGVtZW50VGFibGUoKHhtbEVsZW1lbnRUYWJsZVB0cikgY3VyLT5lbGVtZW50cyk7CisgICAgaWYgKGN1ci0+YXR0cmlidXRlcyAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlQXR0cmlidXRlVGFibGUoKHhtbEF0dHJpYnV0ZVRhYmxlUHRyKSBjdXItPmF0dHJpYnV0ZXMpOworICAgIGlmIChjdXItPmVudGl0aWVzICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVFbnRpdGllc1RhYmxlKCh4bWxFbnRpdGllc1RhYmxlUHRyKSBjdXItPmVudGl0aWVzKTsKKyAgICBpZiAoY3VyLT5wZW50aXRpZXMgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZUVudGl0aWVzVGFibGUoKHhtbEVudGl0aWVzVGFibGVQdHIpIGN1ci0+cGVudGl0aWVzKTsKKworICAgIHhtbEZyZWUoY3VyKTsKK30KKworLyoqCisgKiB4bWxOZXdEb2M6CisgKiBAdmVyc2lvbjogIHhtbENoYXIgc3RyaW5nIGdpdmluZyB0aGUgdmVyc2lvbiBvZiBYTUwgIjEuMCIKKyAqCisgKiBDcmVhdGVzIGEgbmV3IFhNTCBkb2N1bWVudAorICoKKyAqIFJldHVybnMgYSBuZXcgZG9jdW1lbnQKKyAqLworeG1sRG9jUHRyCit4bWxOZXdEb2MoY29uc3QgeG1sQ2hhciAqdmVyc2lvbikgeworICAgIHhtbERvY1B0ciBjdXI7CisKKyAgICBpZiAodmVyc2lvbiA9PSBOVUxMKQorCXZlcnNpb24gPSAoY29uc3QgeG1sQ2hhciAqKSAiMS4wIjsKKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgZG9jdW1lbnQgYW5kIGZpbGwgdGhlIGZpZWxkcy4KKyAgICAgKi8KKyAgICBjdXIgPSAoeG1sRG9jUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbERvYykpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImJ1aWxkaW5nIGRvYyIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbERvYykpOworICAgIGN1ci0+dHlwZSA9IFhNTF9ET0NVTUVOVF9OT0RFOworCisgICAgY3VyLT52ZXJzaW9uID0geG1sU3RyZHVwKHZlcnNpb24pOworICAgIGlmIChjdXItPnZlcnNpb24gPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImJ1aWxkaW5nIGRvYyIpOworCXhtbEZyZWUoY3VyKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGN1ci0+c3RhbmRhbG9uZSA9IC0xOworICAgIGN1ci0+Y29tcHJlc3Npb24gPSAtMTsgLyogbm90IGluaXRpYWxpemVkICovCisgICAgY3VyLT5kb2MgPSBjdXI7CisgICAgY3VyLT5wYXJzZUZsYWdzID0gMDsKKyAgICBjdXItPnByb3BlcnRpZXMgPSBYTUxfRE9DX1VTRVJCVUlMVDsKKyAgICAvKgorICAgICAqIFRoZSBpbiBtZW1vcnkgZW5jb2RpbmcgaXMgYWx3YXlzIFVURjgKKyAgICAgKiBUaGlzIGZpZWxkIHdpbGwgbmV2ZXIgY2hhbmdlIGFuZCB3b3VsZAorICAgICAqIGJlIG9ic29sZXRlIGlmIG5vdCBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkuCisgICAgICovCisgICAgY3VyLT5jaGFyc2V0ID0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGODsKKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKWN1cik7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sRnJlZURvYzoKKyAqIEBjdXI6ICBwb2ludGVyIHRvIHRoZSBkb2N1bWVudAorICoKKyAqIEZyZWUgdXAgYWxsIHRoZSBzdHJ1Y3R1cmVzIHVzZWQgYnkgYSBkb2N1bWVudCwgdHJlZSBpbmNsdWRlZC4KKyAqLwordm9pZAoreG1sRnJlZURvYyh4bWxEb2NQdHIgY3VyKSB7CisgICAgeG1sRHRkUHRyIGV4dFN1YnNldCwgaW50U3Vic2V0OworICAgIHhtbERpY3RQdHIgZGljdCA9IE5VTEw7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sRnJlZURvYyA6IGRvY3VtZW50ID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuOworICAgIH0KKyNpZmRlZiBMSUJYTUxfREVCVUdfUlVOVElNRQorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisgICAgeG1sRGVidWdDaGVja0RvY3VtZW50KHN0ZGVyciwgY3VyKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICBpZiAoY3VyICE9IE5VTEwpIGRpY3QgPSBjdXItPmRpY3Q7CisKKyAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoKHhtbE5vZGVQdHIpY3VyKTsKKworICAgIC8qCisgICAgICogRG8gdGhpcyBiZWZvcmUgZnJlZWluZyB0aGUgY2hpbGRyZW4gbGlzdCB0byBhdm9pZCBJRCBsb29rdXBzCisgICAgICovCisgICAgaWYgKGN1ci0+aWRzICE9IE5VTEwpIHhtbEZyZWVJRFRhYmxlKCh4bWxJRFRhYmxlUHRyKSBjdXItPmlkcyk7CisgICAgY3VyLT5pZHMgPSBOVUxMOworICAgIGlmIChjdXItPnJlZnMgIT0gTlVMTCkgeG1sRnJlZVJlZlRhYmxlKCh4bWxSZWZUYWJsZVB0cikgY3VyLT5yZWZzKTsKKyAgICBjdXItPnJlZnMgPSBOVUxMOworICAgIGV4dFN1YnNldCA9IGN1ci0+ZXh0U3Vic2V0OworICAgIGludFN1YnNldCA9IGN1ci0+aW50U3Vic2V0OworICAgIGlmIChpbnRTdWJzZXQgPT0gZXh0U3Vic2V0KQorCWV4dFN1YnNldCA9IE5VTEw7CisgICAgaWYgKGV4dFN1YnNldCAhPSBOVUxMKSB7CisJeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgY3VyLT5leHRTdWJzZXQpOworCWN1ci0+ZXh0U3Vic2V0ID0gTlVMTDsKKwl4bWxGcmVlRHRkKGV4dFN1YnNldCk7CisgICAgfQorICAgIGlmIChpbnRTdWJzZXQgIT0gTlVMTCkgeworCXhtbFVubGlua05vZGUoKHhtbE5vZGVQdHIpIGN1ci0+aW50U3Vic2V0KTsKKwljdXItPmludFN1YnNldCA9IE5VTEw7CisJeG1sRnJlZUR0ZChpbnRTdWJzZXQpOworICAgIH0KKworICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHhtbEZyZWVOb2RlTGlzdChjdXItPmNoaWxkcmVuKTsKKyAgICBpZiAoY3VyLT5vbGROcyAhPSBOVUxMKSB4bWxGcmVlTnNMaXN0KGN1ci0+b2xkTnMpOworCisgICAgRElDVF9GUkVFKGN1ci0+dmVyc2lvbikKKyAgICBESUNUX0ZSRUUoY3VyLT5uYW1lKQorICAgIERJQ1RfRlJFRShjdXItPmVuY29kaW5nKQorICAgIERJQ1RfRlJFRShjdXItPlVSTCkKKyAgICB4bWxGcmVlKGN1cik7CisgICAgaWYgKGRpY3QpIHhtbERpY3RGcmVlKGRpY3QpOworfQorCisvKioKKyAqIHhtbFN0cmluZ0xlbkdldE5vZGVMaXN0OgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQHZhbHVlOiAgdGhlIHZhbHVlIG9mIHRoZSB0ZXh0CisgKiBAbGVuOiAgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIHZhbHVlCisgKgorICogUGFyc2UgdGhlIHZhbHVlIHN0cmluZyBhbmQgYnVpbGQgdGhlIG5vZGUgbGlzdCBhc3NvY2lhdGVkLiBTaG91bGQKKyAqIHByb2R1Y2UgYSBmbGF0IHRyZWUgd2l0aCBvbmx5IFRFWFRzIGFuZCBFTlRJVFlfUkVGcy4KKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBmaXJzdCBjaGlsZAorICovCit4bWxOb2RlUHRyCit4bWxTdHJpbmdMZW5HZXROb2RlTGlzdCh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICp2YWx1ZSwgaW50IGxlbikgeworICAgIHhtbE5vZGVQdHIgcmV0ID0gTlVMTCwgbGFzdCA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIHhtbENoYXIgKnZhbDsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIgPSB2YWx1ZSwgKmVuZCA9IGN1ciArIGxlbjsKKyAgICBjb25zdCB4bWxDaGFyICpxOworICAgIHhtbEVudGl0eVB0ciBlbnQ7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisgICAgcSA9IGN1cjsKKyAgICB3aGlsZSAoKGN1ciA8IGVuZCkgJiYgKCpjdXIgIT0gMCkpIHsKKwlpZiAoY3VyWzBdID09ICcmJykgeworCSAgICBpbnQgY2hhcnZhbCA9IDA7CisJICAgIHhtbENoYXIgdG1wOworCisJICAgIC8qCisJICAgICAqIFNhdmUgdGhlIGN1cnJlbnQgdGV4dC4KKwkgICAgICovCisgICAgICAgICAgICBpZiAoY3VyICE9IHEpIHsKKwkJaWYgKChsYXN0ICE9IE5VTEwpICYmIChsYXN0LT50eXBlID09IFhNTF9URVhUX05PREUpKSB7CisJCSAgICB4bWxOb2RlQWRkQ29udGVudExlbihsYXN0LCBxLCBjdXIgLSBxKTsKKwkJfSBlbHNlIHsKKwkJICAgIG5vZGUgPSB4bWxOZXdEb2NUZXh0TGVuKGRvYywgcSwgY3VyIC0gcSk7CisJCSAgICBpZiAobm9kZSA9PSBOVUxMKSByZXR1cm4ocmV0KTsKKwkJICAgIGlmIChsYXN0ID09IE5VTEwpCisJCQlsYXN0ID0gcmV0ID0gbm9kZTsKKwkJICAgIGVsc2UgeworCQkJbGFzdC0+bmV4dCA9IG5vZGU7CisJCQlub2RlLT5wcmV2ID0gbGFzdDsKKwkJCWxhc3QgPSBub2RlOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgICAgcSA9IGN1cjsKKwkgICAgaWYgKChjdXIgKyAyIDwgZW5kKSAmJiAoY3VyWzFdID09ICcjJykgJiYgKGN1clsyXSA9PSAneCcpKSB7CisJCWN1ciArPSAzOworCQlpZiAoY3VyIDwgZW5kKQorCQkgICAgdG1wID0gKmN1cjsKKwkJZWxzZQorCQkgICAgdG1wID0gMDsKKwkJd2hpbGUgKHRtcCAhPSAnOycpIHsgLyogTm9uIGlucHV0IGNvbnN1bWluZyBsb29wICovCisJCSAgICBpZiAoKHRtcCA+PSAnMCcpICYmICh0bXAgPD0gJzknKSkKKwkJCWNoYXJ2YWwgPSBjaGFydmFsICogMTYgKyAodG1wIC0gJzAnKTsKKwkJICAgIGVsc2UgaWYgKCh0bXAgPj0gJ2EnKSAmJiAodG1wIDw9ICdmJykpCisJCQljaGFydmFsID0gY2hhcnZhbCAqIDE2ICsgKHRtcCAtICdhJykgKyAxMDsKKwkJICAgIGVsc2UgaWYgKCh0bXAgPj0gJ0EnKSAmJiAodG1wIDw9ICdGJykpCisJCQljaGFydmFsID0gY2hhcnZhbCAqIDE2ICsgKHRtcCAtICdBJykgKyAxMDsKKwkJICAgIGVsc2UgeworCQkJeG1sVHJlZUVycihYTUxfVFJFRV9JTlZBTElEX0hFWCwgKHhtbE5vZGVQdHIpIGRvYywKKwkJCSAgICAgICAgICAgTlVMTCk7CisJCQljaGFydmFsID0gMDsKKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgY3VyKys7CisJCSAgICBpZiAoY3VyIDwgZW5kKQorCQkJdG1wID0gKmN1cjsKKwkJICAgIGVsc2UKKwkJCXRtcCA9IDA7CisJCX0KKwkJaWYgKHRtcCA9PSAnOycpCisJCSAgICBjdXIrKzsKKwkJcSA9IGN1cjsKKwkgICAgfSBlbHNlIGlmICgoY3VyICsgMSA8IGVuZCkgJiYgKGN1clsxXSA9PSAnIycpKSB7CisJCWN1ciArPSAyOworCQlpZiAoY3VyIDwgZW5kKQorCQkgICAgdG1wID0gKmN1cjsKKwkJZWxzZQorCQkgICAgdG1wID0gMDsKKwkJd2hpbGUgKHRtcCAhPSAnOycpIHsgLyogTm9uIGlucHV0IGNvbnN1bWluZyBsb29wcyAqLworCQkgICAgaWYgKCh0bXAgPj0gJzAnKSAmJiAodG1wIDw9ICc5JykpCisJCQljaGFydmFsID0gY2hhcnZhbCAqIDEwICsgKHRtcCAtICcwJyk7CisJCSAgICBlbHNlIHsKKwkJCXhtbFRyZWVFcnIoWE1MX1RSRUVfSU5WQUxJRF9ERUMsICh4bWxOb2RlUHRyKSBkb2MsCisJCQkgICAgICAgICAgIE5VTEwpOworCQkJY2hhcnZhbCA9IDA7CisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGN1cisrOworCQkgICAgaWYgKGN1ciA8IGVuZCkKKwkJCXRtcCA9ICpjdXI7CisJCSAgICBlbHNlCisJCQl0bXAgPSAwOworCQl9CisJCWlmICh0bXAgPT0gJzsnKQorCQkgICAgY3VyKys7CisJCXEgPSBjdXI7CisJICAgIH0gZWxzZSB7CisJCS8qCisJCSAqIFJlYWQgdGhlIGVudGl0eSBzdHJpbmcKKwkJICovCisJCWN1cisrOworCQlxID0gY3VyOworCQl3aGlsZSAoKGN1ciA8IGVuZCkgJiYgKCpjdXIgIT0gMCkgJiYgKCpjdXIgIT0gJzsnKSkgY3VyKys7CisJCWlmICgoY3VyID49IGVuZCkgfHwgKCpjdXIgPT0gMCkpIHsKKwkJICAgIHhtbFRyZWVFcnIoWE1MX1RSRUVfVU5URVJNSU5BVEVEX0VOVElUWSwgKHhtbE5vZGVQdHIpIGRvYywKKwkJICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgcSk7CisJCSAgICByZXR1cm4ocmV0KTsKKwkJfQorCQlpZiAoY3VyICE9IHEpIHsKKwkJICAgIC8qCisJCSAgICAgKiBQcmVkZWZpbmVkIGVudGl0aWVzIGRvbid0IGdlbmVyYXRlIG5vZGVzCisJCSAgICAgKi8KKwkJICAgIHZhbCA9IHhtbFN0cm5kdXAocSwgY3VyIC0gcSk7CisJCSAgICBlbnQgPSB4bWxHZXREb2NFbnRpdHkoZG9jLCB2YWwpOworCQkgICAgaWYgKChlbnQgIT0gTlVMTCkgJiYKKwkJCShlbnQtPmV0eXBlID09IFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWSkpIHsKKwkJCWlmIChsYXN0ID09IE5VTEwpIHsKKwkJCSAgICBub2RlID0geG1sTmV3RG9jVGV4dChkb2MsIGVudC0+Y29udGVudCk7CisJCQkgICAgbGFzdCA9IHJldCA9IG5vZGU7CisJCQl9IGVsc2UgaWYgKGxhc3QtPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkgeworCQkJICAgIG5vZGUgPSB4bWxOZXdEb2NUZXh0KGRvYywgZW50LT5jb250ZW50KTsKKwkJCSAgICBsYXN0ID0geG1sQWRkTmV4dFNpYmxpbmcobGFzdCwgbm9kZSk7CisJCQl9IGVsc2UKKwkJCSAgICB4bWxOb2RlQWRkQ29udGVudChsYXN0LCBlbnQtPmNvbnRlbnQpOworCisJCSAgICB9IGVsc2UgeworCQkJLyoKKwkJCSAqIENyZWF0ZSBhIG5ldyBSRUZFUkVOQ0VfUkVGIG5vZGUKKwkJCSAqLworCQkJbm9kZSA9IHhtbE5ld1JlZmVyZW5jZShkb2MsIHZhbCk7CisJCQlpZiAobm9kZSA9PSBOVUxMKSB7CisJCQkgICAgaWYgKHZhbCAhPSBOVUxMKSB4bWxGcmVlKHZhbCk7CisJCQkgICAgcmV0dXJuKHJldCk7CisJCQl9CisJCQllbHNlIGlmICgoZW50ICE9IE5VTEwpICYmIChlbnQtPmNoaWxkcmVuID09IE5VTEwpKSB7CisJCQkgICAgeG1sTm9kZVB0ciB0ZW1wOworCisJCQkgICAgZW50LT5jaGlsZHJlbiA9IHhtbFN0cmluZ0dldE5vZGVMaXN0KGRvYywKKwkJCQkgICAgKGNvbnN0IHhtbENoYXIqKW5vZGUtPmNvbnRlbnQpOworCQkJICAgIGVudC0+b3duZXIgPSAxOworCQkJICAgIHRlbXAgPSBlbnQtPmNoaWxkcmVuOworCQkJICAgIHdoaWxlICh0ZW1wKSB7CisJCQkJdGVtcC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpZW50OworCQkJCWVudC0+bGFzdCA9IHRlbXA7CisJCQkJdGVtcCA9IHRlbXAtPm5leHQ7CisJCQkgICAgfQorCQkJfQorCQkJaWYgKGxhc3QgPT0gTlVMTCkgeworCQkJICAgIGxhc3QgPSByZXQgPSBub2RlOworCQkJfSBlbHNlIHsKKwkJCSAgICBsYXN0ID0geG1sQWRkTmV4dFNpYmxpbmcobGFzdCwgbm9kZSk7CisJCQl9CisJCSAgICB9CisJCSAgICB4bWxGcmVlKHZhbCk7CisJCX0KKwkJY3VyKys7CisJCXEgPSBjdXI7CisJICAgIH0KKwkgICAgaWYgKGNoYXJ2YWwgIT0gMCkgeworCQl4bWxDaGFyIGJ1ZlsxMF07CisJCWludCBsOworCisJCWwgPSB4bWxDb3B5Q2hhck11bHRpQnl0ZShidWYsIGNoYXJ2YWwpOworCQlidWZbbF0gPSAwOworCQlub2RlID0geG1sTmV3RG9jVGV4dChkb2MsIGJ1Zik7CisJCWlmIChub2RlICE9IE5VTEwpIHsKKwkJICAgIGlmIChsYXN0ID09IE5VTEwpIHsKKwkJCWxhc3QgPSByZXQgPSBub2RlOworCQkgICAgfSBlbHNlIHsKKwkJCWxhc3QgPSB4bWxBZGROZXh0U2libGluZyhsYXN0LCBub2RlKTsKKwkJICAgIH0KKwkJfQorCQljaGFydmFsID0gMDsKKwkgICAgfQorCX0gZWxzZQorCSAgICBjdXIrKzsKKyAgICB9CisgICAgaWYgKChjdXIgIT0gcSkgfHwgKHJldCA9PSBOVUxMKSkgeworICAgICAgICAvKgorCSAqIEhhbmRsZSB0aGUgbGFzdCBwaWVjZSBvZiB0ZXh0LgorCSAqLworCWlmICgobGFzdCAhPSBOVUxMKSAmJiAobGFzdC0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSkgeworCSAgICB4bWxOb2RlQWRkQ29udGVudExlbihsYXN0LCBxLCBjdXIgLSBxKTsKKwl9IGVsc2UgeworCSAgICBub2RlID0geG1sTmV3RG9jVGV4dExlbihkb2MsIHEsIGN1ciAtIHEpOworCSAgICBpZiAobm9kZSA9PSBOVUxMKSByZXR1cm4ocmV0KTsKKwkgICAgaWYgKGxhc3QgPT0gTlVMTCkgeworCQlyZXQgPSBub2RlOworCSAgICB9IGVsc2UgeworCQl4bWxBZGROZXh0U2libGluZyhsYXN0LCBub2RlKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU3RyaW5nR2V0Tm9kZUxpc3Q6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAdmFsdWU6ICB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZQorICoKKyAqIFBhcnNlIHRoZSB2YWx1ZSBzdHJpbmcgYW5kIGJ1aWxkIHRoZSBub2RlIGxpc3QgYXNzb2NpYXRlZC4gU2hvdWxkCisgKiBwcm9kdWNlIGEgZmxhdCB0cmVlIHdpdGggb25seSBURVhUcyBhbmQgRU5USVRZX1JFRnMuCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZmlyc3QgY2hpbGQKKyAqLworeG1sTm9kZVB0cgoreG1sU3RyaW5nR2V0Tm9kZUxpc3QoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICB4bWxOb2RlUHRyIHJldCA9IE5VTEwsIGxhc3QgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICB4bWxDaGFyICp2YWw7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisgICAgY29uc3QgeG1sQ2hhciAqcTsKKyAgICB4bWxFbnRpdHlQdHIgZW50OworCisgICAgaWYgKHZhbHVlID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHEgPSBjdXI7CisgICAgd2hpbGUgKCpjdXIgIT0gMCkgeworCWlmIChjdXJbMF0gPT0gJyYnKSB7CisJICAgIGludCBjaGFydmFsID0gMDsKKwkgICAgeG1sQ2hhciB0bXA7CisKKwkgICAgLyoKKwkgICAgICogU2F2ZSB0aGUgY3VycmVudCB0ZXh0LgorCSAgICAgKi8KKyAgICAgICAgICAgIGlmIChjdXIgIT0gcSkgeworCQlpZiAoKGxhc3QgIT0gTlVMTCkgJiYgKGxhc3QtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkpIHsKKwkJICAgIHhtbE5vZGVBZGRDb250ZW50TGVuKGxhc3QsIHEsIGN1ciAtIHEpOworCQl9IGVsc2UgeworCQkgICAgbm9kZSA9IHhtbE5ld0RvY1RleHRMZW4oZG9jLCBxLCBjdXIgLSBxKTsKKwkJICAgIGlmIChub2RlID09IE5VTEwpIHJldHVybihyZXQpOworCQkgICAgaWYgKGxhc3QgPT0gTlVMTCkKKwkJCWxhc3QgPSByZXQgPSBub2RlOworCQkgICAgZWxzZSB7CisJCQlsYXN0LT5uZXh0ID0gbm9kZTsKKwkJCW5vZGUtPnByZXYgPSBsYXN0OworCQkJbGFzdCA9IG5vZGU7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBxID0gY3VyOworCSAgICBpZiAoKGN1clsxXSA9PSAnIycpICYmIChjdXJbMl0gPT0gJ3gnKSkgeworCQljdXIgKz0gMzsKKwkJdG1wID0gKmN1cjsKKwkJd2hpbGUgKHRtcCAhPSAnOycpIHsgLyogTm9uIGlucHV0IGNvbnN1bWluZyBsb29wICovCisJCSAgICBpZiAoKHRtcCA+PSAnMCcpICYmICh0bXAgPD0gJzknKSkKKwkJCWNoYXJ2YWwgPSBjaGFydmFsICogMTYgKyAodG1wIC0gJzAnKTsKKwkJICAgIGVsc2UgaWYgKCh0bXAgPj0gJ2EnKSAmJiAodG1wIDw9ICdmJykpCisJCQljaGFydmFsID0gY2hhcnZhbCAqIDE2ICsgKHRtcCAtICdhJykgKyAxMDsKKwkJICAgIGVsc2UgaWYgKCh0bXAgPj0gJ0EnKSAmJiAodG1wIDw9ICdGJykpCisJCQljaGFydmFsID0gY2hhcnZhbCAqIDE2ICsgKHRtcCAtICdBJykgKyAxMDsKKwkJICAgIGVsc2UgeworCQkJeG1sVHJlZUVycihYTUxfVFJFRV9JTlZBTElEX0hFWCwgKHhtbE5vZGVQdHIpIGRvYywKKwkJCSAgICAgICAgICAgTlVMTCk7CisJCQljaGFydmFsID0gMDsKKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgY3VyKys7CisJCSAgICB0bXAgPSAqY3VyOworCQl9CisJCWlmICh0bXAgPT0gJzsnKQorCQkgICAgY3VyKys7CisJCXEgPSBjdXI7CisJICAgIH0gZWxzZSBpZiAgKGN1clsxXSA9PSAnIycpIHsKKwkJY3VyICs9IDI7CisJCXRtcCA9ICpjdXI7CisJCXdoaWxlICh0bXAgIT0gJzsnKSB7IC8qIE5vbiBpbnB1dCBjb25zdW1pbmcgbG9vcHMgKi8KKwkJICAgIGlmICgodG1wID49ICcwJykgJiYgKHRtcCA8PSAnOScpKQorCQkJY2hhcnZhbCA9IGNoYXJ2YWwgKiAxMCArICh0bXAgLSAnMCcpOworCQkgICAgZWxzZSB7CisJCQl4bWxUcmVlRXJyKFhNTF9UUkVFX0lOVkFMSURfREVDLCAoeG1sTm9kZVB0cikgZG9jLAorCQkJICAgICAgICAgICBOVUxMKTsKKwkJCWNoYXJ2YWwgPSAwOworCQkJYnJlYWs7CisJCSAgICB9CisJCSAgICBjdXIrKzsKKwkJICAgIHRtcCA9ICpjdXI7CisJCX0KKwkJaWYgKHRtcCA9PSAnOycpCisJCSAgICBjdXIrKzsKKwkJcSA9IGN1cjsKKwkgICAgfSBlbHNlIHsKKwkJLyoKKwkJICogUmVhZCB0aGUgZW50aXR5IHN0cmluZworCQkgKi8KKwkJY3VyKys7CisJCXEgPSBjdXI7CisJCXdoaWxlICgoKmN1ciAhPSAwKSAmJiAoKmN1ciAhPSAnOycpKSBjdXIrKzsKKwkJaWYgKCpjdXIgPT0gMCkgeworCQkgICAgeG1sVHJlZUVycihYTUxfVFJFRV9VTlRFUk1JTkFURURfRU5USVRZLAorCQkgICAgICAgICAgICAgICAoeG1sTm9kZVB0cikgZG9jLCAoY29uc3QgY2hhciAqKSBxKTsKKwkJICAgIHJldHVybihyZXQpOworCQl9CisJCWlmIChjdXIgIT0gcSkgeworCQkgICAgLyoKKwkJICAgICAqIFByZWRlZmluZWQgZW50aXRpZXMgZG9uJ3QgZ2VuZXJhdGUgbm9kZXMKKwkJICAgICAqLworCQkgICAgdmFsID0geG1sU3RybmR1cChxLCBjdXIgLSBxKTsKKwkJICAgIGVudCA9IHhtbEdldERvY0VudGl0eShkb2MsIHZhbCk7CisJCSAgICBpZiAoKGVudCAhPSBOVUxMKSAmJgorCQkJKGVudC0+ZXR5cGUgPT0gWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZKSkgeworCQkJaWYgKGxhc3QgPT0gTlVMTCkgeworCQkJICAgIG5vZGUgPSB4bWxOZXdEb2NUZXh0KGRvYywgZW50LT5jb250ZW50KTsKKwkJCSAgICBsYXN0ID0gcmV0ID0gbm9kZTsKKwkJCX0gZWxzZSBpZiAobGFzdC0+dHlwZSAhPSBYTUxfVEVYVF9OT0RFKSB7CisJCQkgICAgbm9kZSA9IHhtbE5ld0RvY1RleHQoZG9jLCBlbnQtPmNvbnRlbnQpOworCQkJICAgIGxhc3QgPSB4bWxBZGROZXh0U2libGluZyhsYXN0LCBub2RlKTsKKwkJCX0gZWxzZQorCQkJICAgIHhtbE5vZGVBZGRDb250ZW50KGxhc3QsIGVudC0+Y29udGVudCk7CisKKwkJICAgIH0gZWxzZSB7CisJCQkvKgorCQkJICogQ3JlYXRlIGEgbmV3IFJFRkVSRU5DRV9SRUYgbm9kZQorCQkJICovCisJCQlub2RlID0geG1sTmV3UmVmZXJlbmNlKGRvYywgdmFsKTsKKwkJCWlmIChub2RlID09IE5VTEwpIHsKKwkJCSAgICBpZiAodmFsICE9IE5VTEwpIHhtbEZyZWUodmFsKTsKKwkJCSAgICByZXR1cm4ocmV0KTsKKwkJCX0KKwkJCWVsc2UgaWYgKChlbnQgIT0gTlVMTCkgJiYgKGVudC0+Y2hpbGRyZW4gPT0gTlVMTCkpIHsKKwkJCSAgICB4bWxOb2RlUHRyIHRlbXA7CisKKwkJCSAgICBlbnQtPmNoaWxkcmVuID0geG1sU3RyaW5nR2V0Tm9kZUxpc3QoZG9jLAorCQkJCSAgICAoY29uc3QgeG1sQ2hhciopbm9kZS0+Y29udGVudCk7CisJCQkgICAgZW50LT5vd25lciA9IDE7CisJCQkgICAgdGVtcCA9IGVudC0+Y2hpbGRyZW47CisJCQkgICAgd2hpbGUgKHRlbXApIHsKKwkJCQl0ZW1wLT5wYXJlbnQgPSAoeG1sTm9kZVB0cillbnQ7CisJCQkJdGVtcCA9IHRlbXAtPm5leHQ7CisJCQkgICAgfQorCQkJfQorCQkJaWYgKGxhc3QgPT0gTlVMTCkgeworCQkJICAgIGxhc3QgPSByZXQgPSBub2RlOworCQkJfSBlbHNlIHsKKwkJCSAgICBsYXN0ID0geG1sQWRkTmV4dFNpYmxpbmcobGFzdCwgbm9kZSk7CisJCQl9CisJCSAgICB9CisJCSAgICB4bWxGcmVlKHZhbCk7CisJCX0KKwkJY3VyKys7CisJCXEgPSBjdXI7CisJICAgIH0KKwkgICAgaWYgKGNoYXJ2YWwgIT0gMCkgeworCQl4bWxDaGFyIGJ1ZlsxMF07CisJCWludCBsZW47CisKKwkJbGVuID0geG1sQ29weUNoYXJNdWx0aUJ5dGUoYnVmLCBjaGFydmFsKTsKKwkJYnVmW2xlbl0gPSAwOworCQlub2RlID0geG1sTmV3RG9jVGV4dChkb2MsIGJ1Zik7CisJCWlmIChub2RlICE9IE5VTEwpIHsKKwkJICAgIGlmIChsYXN0ID09IE5VTEwpIHsKKwkJCWxhc3QgPSByZXQgPSBub2RlOworCQkgICAgfSBlbHNlIHsKKwkJCWxhc3QgPSB4bWxBZGROZXh0U2libGluZyhsYXN0LCBub2RlKTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJfSBlbHNlCisJICAgIGN1cisrOworICAgIH0KKyAgICBpZiAoKGN1ciAhPSBxKSB8fCAocmV0ID09IE5VTEwpKSB7CisgICAgICAgIC8qCisJICogSGFuZGxlIHRoZSBsYXN0IHBpZWNlIG9mIHRleHQuCisJICovCisJaWYgKChsYXN0ICE9IE5VTEwpICYmIChsYXN0LT50eXBlID09IFhNTF9URVhUX05PREUpKSB7CisJICAgIHhtbE5vZGVBZGRDb250ZW50TGVuKGxhc3QsIHEsIGN1ciAtIHEpOworCX0gZWxzZSB7CisJICAgIG5vZGUgPSB4bWxOZXdEb2NUZXh0TGVuKGRvYywgcSwgY3VyIC0gcSk7CisJICAgIGlmIChub2RlID09IE5VTEwpIHJldHVybihyZXQpOworCSAgICBpZiAobGFzdCA9PSBOVUxMKSB7CisJCWxhc3QgPSByZXQgPSBub2RlOworCSAgICB9IGVsc2UgeworCQlsYXN0ID0geG1sQWRkTmV4dFNpYmxpbmcobGFzdCwgbm9kZSk7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbE5vZGVMaXN0R2V0U3RyaW5nOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGxpc3Q6ICBhIE5vZGUgbGlzdAorICogQGluTGluZTogIHNob3VsZCB3ZSByZXBsYWNlIGVudGl0eSBjb250ZW50cyBvciBzaG93IHRoZWlyIGV4dGVybmFsIGZvcm0KKyAqCisgKiBCdWlsZCB0aGUgc3RyaW5nIGVxdWl2YWxlbnQgdG8gdGhlIHRleHQgY29udGFpbmVkIGluIHRoZSBOb2RlIGxpc3QKKyAqIG1hZGUgb2YgVEVYVHMgYW5kIEVOVElUWV9SRUZzCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHN0cmluZyBjb3B5LCB0aGUgY2FsbGVyIG11c3QgZnJlZSBpdCB3aXRoIHhtbEZyZWUoKS4KKyAqLworeG1sQ2hhciAqCit4bWxOb2RlTGlzdEdldFN0cmluZyh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGxpc3QsIGludCBpbkxpbmUpCit7CisgICAgeG1sTm9kZVB0ciBub2RlID0gbGlzdDsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIHhtbEVudGl0eVB0ciBlbnQ7CisKKyAgICBpZiAobGlzdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworICAgICAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisgICAgICAgICAgICBpZiAoaW5MaW5lKSB7CisgICAgICAgICAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgbm9kZS0+Y29udGVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHhtbENoYXIgKmJ1ZmZlcjsKKworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KGRvYywgbm9kZS0+Y29udGVudCk7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSB7CisgICAgICAgICAgICBpZiAoaW5MaW5lKSB7CisgICAgICAgICAgICAgICAgZW50ID0geG1sR2V0RG9jRW50aXR5KGRvYywgbm9kZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKGVudCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKmJ1ZmZlcjsKKworICAgICAgICAgICAgICAgICAgICAvKiBhbiBlbnRpdHkgY29udGVudCBjYW4gYmUgYW55ICJ3ZWxsIGJhbGFuY2VkIGNodW5rIiwKKyAgICAgICAgICAgICAgICAgICAgICogaS5lLiB0aGUgcmVzdWx0IG9mIHRoZSBjb250ZW50IFs0M10gcHJvZHVjdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICogaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbCNOVC1jb250ZW50LgorICAgICAgICAgICAgICAgICAgICAgKiBTbyBpdCBjYW4gY29udGFpbiB0ZXh0LCBDREFUQSBzZWN0aW9uIG9yIG5lc3RlZAorICAgICAgICAgICAgICAgICAgICAgKiBlbnRpdHkgcmVmZXJlbmNlIG5vZGVzIChhbW9uZyBvdGhlcnMpLgorICAgICAgICAgICAgICAgICAgICAgKiAtPiB3ZSByZWN1cnNpdmUgIGNhbGwgeG1sTm9kZUxpc3RHZXRTdHJpbmcoKQorICAgICAgICAgICAgICAgICAgICAgKiB3aGljaCBoYW5kbGVzIHRoZXNlIHR5cGVzICovCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgZW50LT5jaGlsZHJlbiwgMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChidWZmZXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIG5vZGUtPmNvbnRlbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgeG1sQ2hhciBidWZbMl07CisKKyAgICAgICAgICAgICAgICBidWZbMF0gPSAnJic7CisgICAgICAgICAgICAgICAgYnVmWzFdID0gMDsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxTdHJuY2F0KHJldCwgYnVmLCAxKTsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBub2RlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBidWZbMF0gPSAnOyc7CisgICAgICAgICAgICAgICAgYnVmWzFdID0gMDsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxTdHJuY2F0KHJldCwgYnVmLCAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2lmIDAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sR2V0Tm9kZUxpc3RTdHJpbmcgOiBpbnZhbGlkIG5vZGUgdHlwZSAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT50eXBlKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIG5vZGUgPSBub2RlLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisvKioKKyAqIHhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGxpc3Q6ICBhIE5vZGUgbGlzdAorICogQGluTGluZTogIHNob3VsZCB3ZSByZXBsYWNlIGVudGl0eSBjb250ZW50cyBvciBzaG93IHRoZWlyIGV4dGVybmFsIGZvcm0KKyAqCisgKiBCdWlsZHMgdGhlIHN0cmluZyBlcXVpdmFsZW50IHRvIHRoZSB0ZXh0IGNvbnRhaW5lZCBpbiB0aGUgTm9kZSBsaXN0CisgKiBtYWRlIG9mIFRFWFRzIGFuZCBFTlRJVFlfUkVGcywgY29udHJhcnkgdG8geG1sTm9kZUxpc3RHZXRTdHJpbmcoKQorICogdGhpcyBmdW5jdGlvbiBkb2Vzbid0IGRvIGFueSBjaGFyYWN0ZXIgZW5jb2RpbmcgaGFuZGxpbmcuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHN0cmluZyBjb3B5LCB0aGUgY2FsbGVyIG11c3QgZnJlZSBpdCB3aXRoIHhtbEZyZWUoKS4KKyAqLworeG1sQ2hhciAqCit4bWxOb2RlTGlzdEdldFJhd1N0cmluZyh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGxpc3QsIGludCBpbkxpbmUpCit7CisgICAgeG1sTm9kZVB0ciBub2RlID0gbGlzdDsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworICAgIHhtbEVudGl0eVB0ciBlbnQ7CisKKyAgICBpZiAobGlzdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworICAgICAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisgICAgICAgICAgICBpZiAoaW5MaW5lKSB7CisgICAgICAgICAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgbm9kZS0+Y29udGVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHhtbENoYXIgKmJ1ZmZlcjsKKworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHhtbEVuY29kZVNwZWNpYWxDaGFycyhkb2MsIG5vZGUtPmNvbnRlbnQpOworICAgICAgICAgICAgICAgIGlmIChidWZmZXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBidWZmZXIpOworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgeworICAgICAgICAgICAgaWYgKGluTGluZSkgeworICAgICAgICAgICAgICAgIGVudCA9IHhtbEdldERvY0VudGl0eShkb2MsIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgICAgIGlmIChlbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxDaGFyICpidWZmZXI7CisKKyAgICAgICAgICAgICAgICAgICAgLyogYW4gZW50aXR5IGNvbnRlbnQgY2FuIGJlIGFueSAid2VsbCBiYWxhbmNlZCBjaHVuayIsCisgICAgICAgICAgICAgICAgICAgICAqIGkuZS4gdGhlIHJlc3VsdCBvZiB0aGUgY29udGVudCBbNDNdIHByb2R1Y3Rpb246CisgICAgICAgICAgICAgICAgICAgICAqIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwjTlQtY29udGVudC4KKyAgICAgICAgICAgICAgICAgICAgICogU28gaXQgY2FuIGNvbnRhaW4gdGV4dCwgQ0RBVEEgc2VjdGlvbiBvciBuZXN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICogZW50aXR5IHJlZmVyZW5jZSBub2RlcyAoYW1vbmcgb3RoZXJzKS4KKyAgICAgICAgICAgICAgICAgICAgICogLT4gd2UgcmVjdXJzaXZlICBjYWxsIHhtbE5vZGVMaXN0R2V0UmF3U3RyaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICogd2hpY2ggaGFuZGxlcyB0aGVzZSB0eXBlcyAqLworICAgICAgICAgICAgICAgICAgICBidWZmZXIgPQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZUxpc3RHZXRSYXdTdHJpbmcoZG9jLCBlbnQtPmNoaWxkcmVuLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBidWZmZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShidWZmZXIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgbm9kZS0+Y29udGVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxDaGFyIGJ1ZlsyXTsKKworICAgICAgICAgICAgICAgIGJ1ZlswXSA9ICcmJzsKKyAgICAgICAgICAgICAgICBidWZbMV0gPSAwOworICAgICAgICAgICAgICAgIHJldCA9IHhtbFN0cm5jYXQocmV0LCBidWYsIDEpOworICAgICAgICAgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIG5vZGUtPm5hbWUpOworICAgICAgICAgICAgICAgIGJ1ZlswXSA9ICc7JzsKKyAgICAgICAgICAgICAgICBidWZbMV0gPSAwOworICAgICAgICAgICAgICAgIHJldCA9IHhtbFN0cm5jYXQocmV0LCBidWYsIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisjaWYgMAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxHZXROb2RlTGlzdFN0cmluZyA6IGludmFsaWQgbm9kZSB0eXBlICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPnR5cGUpOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKK3N0YXRpYyB4bWxBdHRyUHRyCit4bWxOZXdQcm9wSW50ZXJuYWwoeG1sTm9kZVB0ciBub2RlLCB4bWxOc1B0ciBucywKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwgY29uc3QgeG1sQ2hhciAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgIGludCBlYXRuYW1lKQoreworICAgIHhtbEF0dHJQdHIgY3VyOworICAgIHhtbERvY1B0ciBkb2MgPSBOVUxMOworCisgICAgaWYgKChub2RlICE9IE5VTEwpICYmIChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgIGlmICgoZWF0bmFtZSA9PSAxKSAmJgorCSAgICAoKG5vZGUtPmRvYyA9PSBOVUxMKSB8fAorCSAgICAgKCEoeG1sRGljdE93bnMobm9kZS0+ZG9jLT5kaWN0LCBuYW1lKSkpKSkKKyAgICAgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgbmFtZSk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBwcm9wZXJ0eSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxBdHRyUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEF0dHIpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgaWYgKChlYXRuYW1lID09IDEpICYmCisJICAgICgobm9kZSA9PSBOVUxMKSB8fCAobm9kZS0+ZG9jID09IE5VTEwpIHx8CisJICAgICAoISh4bWxEaWN0T3ducyhub2RlLT5kb2MtPmRpY3QsIG5hbWUpKSkpKQorICAgICAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBuYW1lKTsKKyAgICAgICAgeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgYXR0cmlidXRlIik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChjdXIsIDAsIHNpemVvZih4bWxBdHRyKSk7CisgICAgY3VyLT50eXBlID0gWE1MX0FUVFJJQlVURV9OT0RFOworCisgICAgY3VyLT5wYXJlbnQgPSBub2RlOworICAgIGlmIChub2RlICE9IE5VTEwpIHsKKyAgICAgICAgZG9jID0gbm9kZS0+ZG9jOworICAgICAgICBjdXItPmRvYyA9IGRvYzsKKyAgICB9CisgICAgY3VyLT5ucyA9IG5zOworCisgICAgaWYgKGVhdG5hbWUgPT0gMCkgeworICAgICAgICBpZiAoKGRvYyAhPSBOVUxMKSAmJiAoZG9jLT5kaWN0ICE9IE5VTEwpKQorICAgICAgICAgICAgY3VyLT5uYW1lID0gKHhtbENoYXIgKikgeG1sRGljdExvb2t1cChkb2MtPmRpY3QsIG5hbWUsIC0xKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY3VyLT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworICAgIH0gZWxzZQorICAgICAgICBjdXItPm5hbWUgPSBuYW1lOworCisgICAgaWYgKHZhbHVlICE9IE5VTEwpIHsKKyAgICAgICAgeG1sTm9kZVB0ciB0bXA7CisKKyAgICAgICAgaWYoIXhtbENoZWNrVVRGOCh2YWx1ZSkpIHsKKyAgICAgICAgICAgIHhtbFRyZWVFcnIoWE1MX1RSRUVfTk9UX1VURjgsICh4bWxOb2RlUHRyKSBkb2MsCisgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgaWYgKGRvYyAhPSBOVUxMKQorICAgICAgICAgICAgICAgIGRvYy0+ZW5jb2RpbmcgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIklTTy04ODU5LTEiKTsKKyAgICAgICAgfQorICAgICAgICBjdXItPmNoaWxkcmVuID0geG1sTmV3RG9jVGV4dChkb2MsIHZhbHVlKTsKKyAgICAgICAgY3VyLT5sYXN0ID0gTlVMTDsKKyAgICAgICAgdG1wID0gY3VyLT5jaGlsZHJlbjsKKyAgICAgICAgd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisgICAgICAgICAgICB0bXAtPnBhcmVudCA9ICh4bWxOb2RlUHRyKSBjdXI7CisgICAgICAgICAgICBpZiAodG1wLT5uZXh0ID09IE5VTEwpCisgICAgICAgICAgICAgICAgY3VyLT5sYXN0ID0gdG1wOworICAgICAgICAgICAgdG1wID0gdG1wLT5uZXh0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBZGQgaXQgYXQgdGhlIGVuZCB0byBwcmVzZXJ2ZSBwYXJzaW5nIG9yZGVyIC4uLgorICAgICAqLworICAgIGlmIChub2RlICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKG5vZGUtPnByb3BlcnRpZXMgPT0gTlVMTCkgeworICAgICAgICAgICAgbm9kZS0+cHJvcGVydGllcyA9IGN1cjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHhtbEF0dHJQdHIgcHJldiA9IG5vZGUtPnByb3BlcnRpZXM7CisKKyAgICAgICAgICAgIHdoaWxlIChwcmV2LT5uZXh0ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgcHJldiA9IHByZXYtPm5leHQ7CisgICAgICAgICAgICBwcmV2LT5uZXh0ID0gY3VyOworICAgICAgICAgICAgY3VyLT5wcmV2ID0gcHJldjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgodmFsdWUgIT0gTlVMTCkgJiYgKG5vZGUgIT0gTlVMTCkgJiYKKyAgICAgICAgKHhtbElzSUQobm9kZS0+ZG9jLCBub2RlLCBjdXIpID09IDEpKQorICAgICAgICB4bWxBZGRJRChOVUxMLCBub2RlLT5kb2MsIHZhbHVlLCBjdXIpOworCisgICAgaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKyAgICAgICAgeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKSBjdXIpOworICAgIHJldHVybiAoY3VyKTsKK30KKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBcCisgICAgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorLyoqCisgKiB4bWxOZXdQcm9wOgorICogQG5vZGU6ICB0aGUgaG9sZGluZyBub2RlCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqIEB2YWx1ZTogIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlCisgKgorICogQ3JlYXRlIGEgbmV3IHByb3BlcnR5IGNhcnJpZWQgYnkgYSBub2RlLgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGF0dHJpYnV0ZQorICovCit4bWxBdHRyUHRyCit4bWxOZXdQcm9wKHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3UHJvcCA6IG5hbWUgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisJcmV0dXJuIHhtbE5ld1Byb3BJbnRlcm5hbChub2RlLCBOVUxMLCBuYW1lLCB2YWx1ZSwgMCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbE5ld05zUHJvcDoKKyAqIEBub2RlOiAgdGhlIGhvbGRpbmcgbm9kZQorICogQG5zOiAgdGhlIG5hbWVzcGFjZQorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlCisgKiBAdmFsdWU6ICB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZQorICoKKyAqIENyZWF0ZSBhIG5ldyBwcm9wZXJ0eSB0YWdnZWQgd2l0aCBhIG5hbWVzcGFjZSBhbmQgY2FycmllZCBieSBhIG5vZGUuCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgYXR0cmlidXRlCisgKi8KK3htbEF0dHJQdHIKK3htbE5ld05zUHJvcCh4bWxOb2RlUHRyIG5vZGUsIHhtbE5zUHRyIG5zLCBjb25zdCB4bWxDaGFyICpuYW1lLAorICAgICAgICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworCisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxOZXdOc1Byb3AgOiBuYW1lID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIHJldHVybiB4bWxOZXdQcm9wSW50ZXJuYWwobm9kZSwgbnMsIG5hbWUsIHZhbHVlLCAwKTsKK30KKworLyoqCisgKiB4bWxOZXdOc1Byb3BFYXROYW1lOgorICogQG5vZGU6ICB0aGUgaG9sZGluZyBub2RlCisgKiBAbnM6ICB0aGUgbmFtZXNwYWNlCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqIEB2YWx1ZTogIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlCisgKgorICogQ3JlYXRlIGEgbmV3IHByb3BlcnR5IHRhZ2dlZCB3aXRoIGEgbmFtZXNwYWNlIGFuZCBjYXJyaWVkIGJ5IGEgbm9kZS4KKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBhdHRyaWJ1dGUKKyAqLworeG1sQXR0clB0cgoreG1sTmV3TnNQcm9wRWF0TmFtZSh4bWxOb2RlUHRyIG5vZGUsIHhtbE5zUHRyIG5zLCB4bWxDaGFyICpuYW1lLAorICAgICAgICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworCisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxOZXdOc1Byb3BFYXROYW1lIDogbmFtZSA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICByZXR1cm4geG1sTmV3UHJvcEludGVybmFsKG5vZGUsIG5zLCBuYW1lLCB2YWx1ZSwgMSk7Cit9CisKKy8qKgorICogeG1sTmV3RG9jUHJvcDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZQorICogQHZhbHVlOiAgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBDcmVhdGUgYSBuZXcgcHJvcGVydHkgY2FycmllZCBieSBhIGRvY3VtZW50LgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGF0dHJpYnV0ZQorICovCit4bWxBdHRyUHRyCit4bWxOZXdEb2NQcm9wKHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKnZhbHVlKSB7CisgICAgeG1sQXR0clB0ciBjdXI7CisKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5ld0RvY1Byb3AgOiBuYW1lID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgcHJvcGVydHkgYW5kIGZpbGwgdGhlIGZpZWxkcy4KKyAgICAgKi8KKyAgICBjdXIgPSAoeG1sQXR0clB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxBdHRyKSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgYXR0cmlidXRlIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sQXR0cikpOworICAgIGN1ci0+dHlwZSA9IFhNTF9BVFRSSUJVVEVfTk9ERTsKKworICAgIGlmICgoZG9jICE9IE5VTEwpICYmIChkb2MtPmRpY3QgIT0gTlVMTCkpCisJY3VyLT5uYW1lID0geG1sRGljdExvb2t1cChkb2MtPmRpY3QsIG5hbWUsIC0xKTsKKyAgICBlbHNlCisJY3VyLT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworICAgIGN1ci0+ZG9jID0gZG9jOworICAgIGlmICh2YWx1ZSAhPSBOVUxMKSB7CisJeG1sTm9kZVB0ciB0bXA7CisKKwljdXItPmNoaWxkcmVuID0geG1sU3RyaW5nR2V0Tm9kZUxpc3QoZG9jLCB2YWx1ZSk7CisJY3VyLT5sYXN0ID0gTlVMTDsKKworCXRtcCA9IGN1ci0+Y2hpbGRyZW47CisJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJICAgIHRtcC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIGN1cjsKKwkgICAgaWYgKHRtcC0+bmV4dCA9PSBOVUxMKQorCQljdXItPmxhc3QgPSB0bXA7CisJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwl9CisgICAgfQorCisgICAgaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwl4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoKHhtbE5vZGVQdHIpY3VyKTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxGcmVlUHJvcExpc3Q6CisgKiBAY3VyOiAgdGhlIGZpcnN0IHByb3BlcnR5IGluIHRoZSBsaXN0CisgKgorICogRnJlZSBhIHByb3BlcnR5IGFuZCBhbGwgaXRzIHNpYmxpbmdzLCBhbGwgdGhlIGNoaWxkcmVuIGFyZSBmcmVlZCB0b28uCisgKi8KK3ZvaWQKK3htbEZyZWVQcm9wTGlzdCh4bWxBdHRyUHRyIGN1cikgeworICAgIHhtbEF0dHJQdHIgbmV4dDsKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgbmV4dCA9IGN1ci0+bmV4dDsKKyAgICAgICAgeG1sRnJlZVByb3AoY3VyKTsKKwljdXIgPSBuZXh0OworICAgIH0KK30KKworLyoqCisgKiB4bWxGcmVlUHJvcDoKKyAqIEBjdXI6ICBhbiBhdHRyaWJ1dGUKKyAqCisgKiBGcmVlIG9uZSBhdHRyaWJ1dGUsIGFsbCB0aGUgY29udGVudCBpcyBmcmVlZCB0b28KKyAqLwordm9pZAoreG1sRnJlZVByb3AoeG1sQXR0clB0ciBjdXIpIHsKKyAgICB4bWxEaWN0UHRyIGRpY3QgPSBOVUxMOworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKGN1ci0+ZG9jICE9IE5VTEwpIGRpY3QgPSBjdXItPmRvYy0+ZGljdDsKKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwl4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSgoeG1sTm9kZVB0ciljdXIpOworCisgICAgLyogQ2hlY2sgZm9yIElEIHJlbW92YWwgLT4gbGVhZGluZyB0byBpbnZhbGlkIHJlZmVyZW5jZXMgISAqLworICAgIGlmICgoY3VyLT5kb2MgIT0gTlVMTCkgJiYgKGN1ci0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9JRCkpIHsKKwkgICAgeG1sUmVtb3ZlSUQoY3VyLT5kb2MsIGN1cik7CisgICAgfQorICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHhtbEZyZWVOb2RlTGlzdChjdXItPmNoaWxkcmVuKTsKKyAgICBESUNUX0ZSRUUoY3VyLT5uYW1lKQorICAgIHhtbEZyZWUoY3VyKTsKK30KKworLyoqCisgKiB4bWxSZW1vdmVQcm9wOgorICogQGN1cjogIGFuIGF0dHJpYnV0ZQorICoKKyAqIFVubGluayBhbmQgZnJlZSBvbmUgYXR0cmlidXRlLCBhbGwgdGhlIGNvbnRlbnQgaXMgZnJlZWQgdG9vCisgKiBOb3RlIHRoaXMgZG9lc24ndCB3b3JrIGZvciBuYW1lc3BhY2UgZGVmaW5pdGlvbiBhdHRyaWJ1dGVzCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sUmVtb3ZlUHJvcCh4bWxBdHRyUHRyIGN1cikgeworICAgIHhtbEF0dHJQdHIgdG1wOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxSZW1vdmVQcm9wIDogY3VyID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKGN1ci0+cGFyZW50ID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sUmVtb3ZlUHJvcCA6IGN1ci0+cGFyZW50ID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgdG1wID0gY3VyLT5wYXJlbnQtPnByb3BlcnRpZXM7CisgICAgaWYgKHRtcCA9PSBjdXIpIHsKKyAgICAgICAgY3VyLT5wYXJlbnQtPnByb3BlcnRpZXMgPSBjdXItPm5leHQ7CisJCWlmIChjdXItPm5leHQgIT0gTlVMTCkKKwkJCWN1ci0+bmV4dC0+cHJldiA9IE5VTEw7CisJeG1sRnJlZVByb3AoY3VyKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIHdoaWxlICh0bXAgIT0gTlVMTCkgeworCWlmICh0bXAtPm5leHQgPT0gY3VyKSB7CisJICAgIHRtcC0+bmV4dCA9IGN1ci0+bmV4dDsKKwkgICAgaWYgKHRtcC0+bmV4dCAhPSBOVUxMKQorCQl0bXAtPm5leHQtPnByZXYgPSB0bXA7CisJICAgIHhtbEZyZWVQcm9wKGN1cik7CisJICAgIHJldHVybigwKTsKKwl9CisgICAgICAgIHRtcCA9IHRtcC0+bmV4dDsKKyAgICB9CisjaWZkZWYgREVCVUdfVFJFRQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAieG1sUmVtb3ZlUHJvcCA6IGF0dHJpYnV0ZSBub3Qgb3duZWQgYnkgaXRzIG5vZGVcbiIpOworI2VuZGlmCisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiB4bWxOZXdEb2NQSToKKyAqIEBkb2M6ICB0aGUgdGFyZ2V0IGRvY3VtZW50CisgKiBAbmFtZTogIHRoZSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5hbWUKKyAqIEBjb250ZW50OiAgdGhlIFBJIGNvbnRlbnQKKyAqCisgKiBDcmVhdGlvbiBvZiBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gZWxlbWVudC4KKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuCisgKi8KK3htbE5vZGVQdHIKK3htbE5ld0RvY1BJKHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3UEkgOiBuYW1lID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgbm9kZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyBQSSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBjdXItPnR5cGUgPSBYTUxfUElfTk9ERTsKKworICAgIGlmICgoZG9jICE9IE5VTEwpICYmIChkb2MtPmRpY3QgIT0gTlVMTCkpCisgICAgICAgIGN1ci0+bmFtZSA9IHhtbERpY3RMb29rdXAoZG9jLT5kaWN0LCBuYW1lLCAtMSk7CisgICAgZWxzZQorCWN1ci0+bmFtZSA9IHhtbFN0cmR1cChuYW1lKTsKKyAgICBpZiAoY29udGVudCAhPSBOVUxMKSB7CisJY3VyLT5jb250ZW50ID0geG1sU3RyZHVwKGNvbnRlbnQpOworICAgIH0KKyAgICBjdXItPmRvYyA9IGRvYzsKKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKWN1cik7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sTmV3UEk6CisgKiBAbmFtZTogIHRoZSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5hbWUKKyAqIEBjb250ZW50OiAgdGhlIFBJIGNvbnRlbnQKKyAqCisgKiBDcmVhdGlvbiBvZiBhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gZWxlbWVudC4KKyAqIFVzZSB4bWxEb2NOZXdQSSBwcmVmZXJhYmx5IHRvIGdldCBzdHJpbmcgaW50ZXJuaW5nCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4KKyAqLworeG1sTm9kZVB0cgoreG1sTmV3UEkoY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIHJldHVybih4bWxOZXdEb2NQSShOVUxMLCBuYW1lLCBjb250ZW50KSk7Cit9CisKKy8qKgorICogeG1sTmV3Tm9kZToKKyAqIEBuczogIG5hbWVzcGFjZSBpZiBhbnkKKyAqIEBuYW1lOiAgdGhlIG5vZGUgbmFtZQorICoKKyAqIENyZWF0aW9uIG9mIGEgbmV3IG5vZGUgZWxlbWVudC4gQG5zIGlzIG9wdGlvbmFsIChOVUxMKS4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LiBVc2VzIHhtbFN0cmR1cCgpIHRvIG1ha2UKKyAqIGNvcHkgb2YgQG5hbWUuCisgKi8KK3htbE5vZGVQdHIKK3htbE5ld05vZGUoeG1sTnNQdHIgbnMsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3Tm9kZSA6IG5hbWUgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBub2RlIGFuZCBmaWxsIHRoZSBmaWVsZHMuCisgICAgICovCisgICAgY3VyID0gKHhtbE5vZGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTm9kZSkpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImJ1aWxkaW5nIG5vZGUiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChjdXIsIDAsIHNpemVvZih4bWxOb2RlKSk7CisgICAgY3VyLT50eXBlID0gWE1MX0VMRU1FTlRfTk9ERTsKKworICAgIGN1ci0+bmFtZSA9IHhtbFN0cmR1cChuYW1lKTsKKyAgICBjdXItPm5zID0gbnM7CisKKyAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKQorCXhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZShjdXIpOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbE5ld05vZGVFYXROYW1lOgorICogQG5zOiAgbmFtZXNwYWNlIGlmIGFueQorICogQG5hbWU6ICB0aGUgbm9kZSBuYW1lCisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgbm9kZSBlbGVtZW50LiBAbnMgaXMgb3B0aW9uYWwgKE5VTEwpLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QsIHdpdGggcG9pbnRlciBAbmFtZSBhcworICogbmV3IG5vZGUncyBuYW1lLiBVc2UgeG1sTmV3Tm9kZSgpIGlmIGEgY29weSBvZiBAbmFtZSBzdHJpbmcgaXMKKyAqIGlzIG5lZWRlZCBhcyBuZXcgbm9kZSdzIG5hbWUuCisgKi8KK3htbE5vZGVQdHIKK3htbE5ld05vZGVFYXROYW1lKHhtbE5zUHRyIG5zLCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5ld05vZGUgOiBuYW1lID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgbm9kZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyBub2RlIik7CisJLyogd2UgY2FuJ3QgY2hlY2sgaGVyZSB0aGF0IG5hbWUgY29tZXMgZnJvbSB0aGUgZG9jIGRpY3Rpb25uYXJ5ICovCisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sTm9kZSkpOworICAgIGN1ci0+dHlwZSA9IFhNTF9FTEVNRU5UX05PREU7CisKKyAgICBjdXItPm5hbWUgPSBuYW1lOworICAgIGN1ci0+bnMgPSBuczsKKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKWN1cik7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sTmV3RG9jTm9kZToKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBuczogIG5hbWVzcGFjZSBpZiBhbnkKKyAqIEBuYW1lOiAgdGhlIG5vZGUgbmFtZQorICogQGNvbnRlbnQ6ICB0aGUgWE1MIHRleHQgY29udGVudCBpZiBhbnkKKyAqCisgKiBDcmVhdGlvbiBvZiBhIG5ldyBub2RlIGVsZW1lbnQgd2l0aGluIGEgZG9jdW1lbnQuIEBucyBhbmQgQGNvbnRlbnQKKyAqIGFyZSBvcHRpb25hbCAoTlVMTCkuCisgKiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3cgZW50aXRpZXMKKyAqICAgICAgIHJlZmVyZW5jZXMsIGJ1dCBYTUwgc3BlY2lhbCBjaGFycyBuZWVkIHRvIGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcKKyAqICAgICAgIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCkuIFVzZSB4bWxOZXdEb2NSYXdOb2RlKCkgaWYgeW91IGRvbid0CisgKiAgICAgICBuZWVkIGVudGl0aWVzIHN1cHBvcnQuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4KKyAqLworeG1sTm9kZVB0cgoreG1sTmV3RG9jTm9kZSh4bWxEb2NQdHIgZG9jLCB4bWxOc1B0ciBucywKKyAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIHhtbE5vZGVQdHIgY3VyOworCisgICAgaWYgKChkb2MgIT0gTlVMTCkgJiYgKGRvYy0+ZGljdCAhPSBOVUxMKSkKKyAgICAgICAgY3VyID0geG1sTmV3Tm9kZUVhdE5hbWUobnMsICh4bWxDaGFyICopCisJICAgICAgICAgICAgICAgICAgICAgICAgeG1sRGljdExvb2t1cChkb2MtPmRpY3QsIG5hbWUsIC0xKSk7CisgICAgZWxzZQorCWN1ciA9IHhtbE5ld05vZGUobnMsIG5hbWUpOworICAgIGlmIChjdXIgIT0gTlVMTCkgeworICAgICAgICBjdXItPmRvYyA9IGRvYzsKKwlpZiAoY29udGVudCAhPSBOVUxMKSB7CisJICAgIGN1ci0+Y2hpbGRyZW4gPSB4bWxTdHJpbmdHZXROb2RlTGlzdChkb2MsIGNvbnRlbnQpOworCSAgICBVUERBVEVfTEFTVF9DSElMRF9BTkRfUEFSRU5UKGN1cikKKwl9CisgICAgfQorCisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sTmV3RG9jTm9kZUVhdE5hbWU6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAbnM6ICBuYW1lc3BhY2UgaWYgYW55CisgKiBAbmFtZTogIHRoZSBub2RlIG5hbWUKKyAqIEBjb250ZW50OiAgdGhlIFhNTCB0ZXh0IGNvbnRlbnQgaWYgYW55CisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgbm9kZSBlbGVtZW50IHdpdGhpbiBhIGRvY3VtZW50LiBAbnMgYW5kIEBjb250ZW50CisgKiBhcmUgb3B0aW9uYWwgKE5VTEwpLgorICogTk9URTogQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUgYSBwaWVjZSBvZiBYTUwgQ0RBVEEsIHNvIGl0IGFsbG93IGVudGl0aWVzCisgKiAgICAgICByZWZlcmVuY2VzLCBidXQgWE1MIHNwZWNpYWwgY2hhcnMgbmVlZCB0byBiZSBlc2NhcGVkIGZpcnN0IGJ5IHVzaW5nCisgKiAgICAgICB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpLiBVc2UgeG1sTmV3RG9jUmF3Tm9kZSgpIGlmIHlvdSBkb24ndAorICogICAgICAgbmVlZCBlbnRpdGllcyBzdXBwb3J0LgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuCisgKi8KK3htbE5vZGVQdHIKK3htbE5ld0RvY05vZGVFYXROYW1lKHhtbERvY1B0ciBkb2MsIHhtbE5zUHRyIG5zLAorICAgICAgICAgICAgICB4bWxDaGFyICpuYW1lLCBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBjdXIgPSB4bWxOZXdOb2RlRWF0TmFtZShucywgbmFtZSk7CisgICAgaWYgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGN1ci0+ZG9jID0gZG9jOworCWlmIChjb250ZW50ICE9IE5VTEwpIHsKKwkgICAgY3VyLT5jaGlsZHJlbiA9IHhtbFN0cmluZ0dldE5vZGVMaXN0KGRvYywgY29udGVudCk7CisJICAgIFVQREFURV9MQVNUX0NISUxEX0FORF9QQVJFTlQoY3VyKQorCX0KKyAgICB9IGVsc2UgeworICAgICAgICAvKiBpZiBuYW1lIGRvbid0IGNvbWUgZnJvbSB0aGUgZG9jIGRpY3Rpb25uYXJ5IGZyZWUgaXQgaGVyZSAqLworICAgICAgICBpZiAoKG5hbWUgIT0gTlVMTCkgJiYgKGRvYyAhPSBOVUxMKSAmJgorCSAgICAoISh4bWxEaWN0T3ducyhkb2MtPmRpY3QsIG5hbWUpKSkpCisJICAgIHhtbEZyZWUobmFtZSk7CisgICAgfQorICAgIHJldHVybihjdXIpOworfQorCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoqCisgKiB4bWxOZXdEb2NSYXdOb2RlOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQG5zOiAgbmFtZXNwYWNlIGlmIGFueQorICogQG5hbWU6ICB0aGUgbm9kZSBuYW1lCisgKiBAY29udGVudDogIHRoZSB0ZXh0IGNvbnRlbnQgaWYgYW55CisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgbm9kZSBlbGVtZW50IHdpdGhpbiBhIGRvY3VtZW50LiBAbnMgYW5kIEBjb250ZW50CisgKiBhcmUgb3B0aW9uYWwgKE5VTEwpLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuCisgKi8KK3htbE5vZGVQdHIKK3htbE5ld0RvY1Jhd05vZGUoeG1sRG9jUHRyIGRvYywgeG1sTnNQdHIgbnMsCisgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQpIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGN1ciA9IHhtbE5ld0RvY05vZGUoZG9jLCBucywgbmFtZSwgTlVMTCk7CisgICAgaWYgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGN1ci0+ZG9jID0gZG9jOworCWlmIChjb250ZW50ICE9IE5VTEwpIHsKKwkgICAgY3VyLT5jaGlsZHJlbiA9IHhtbE5ld0RvY1RleHQoZG9jLCBjb250ZW50KTsKKwkgICAgVVBEQVRFX0xBU1RfQ0hJTERfQU5EX1BBUkVOVChjdXIpCisJfQorICAgIH0KKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxOZXdEb2NGcmFnbWVudDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgb3duaW5nIHRoZSBmcmFnbWVudAorICoKKyAqIENyZWF0aW9uIG9mIGEgbmV3IEZyYWdtZW50IG5vZGUuCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LgorICovCit4bWxOb2RlUHRyCit4bWxOZXdEb2NGcmFnbWVudCh4bWxEb2NQdHIgZG9jKSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICAvKgorICAgICAqIEFsbG9jYXRlIGEgbmV3IERvY3VtZW50RnJhZ21lbnQgbm9kZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyBmcmFnbWVudCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBjdXItPnR5cGUgPSBYTUxfRE9DVU1FTlRfRlJBR19OT0RFOworCisgICAgY3VyLT5kb2MgPSBkb2M7CisKKyAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKQorCXhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZShjdXIpOworICAgIHJldHVybihjdXIpOworfQorI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxOZXdUZXh0OgorICogQGNvbnRlbnQ6ICB0aGUgdGV4dCBjb250ZW50CisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlLgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4KKyAqLworeG1sTm9kZVB0cgoreG1sTmV3VGV4dChjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICAvKgorICAgICAqIEFsbG9jYXRlIGEgbmV3IG5vZGUgYW5kIGZpbGwgdGhlIGZpZWxkcy4KKyAgICAgKi8KKyAgICBjdXIgPSAoeG1sTm9kZVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOb2RlKSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgdGV4dCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBjdXItPnR5cGUgPSBYTUxfVEVYVF9OT0RFOworCisgICAgY3VyLT5uYW1lID0geG1sU3RyaW5nVGV4dDsKKyAgICBpZiAoY29udGVudCAhPSBOVUxMKSB7CisJY3VyLT5jb250ZW50ID0geG1sU3RyZHVwKGNvbnRlbnQpOworICAgIH0KKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKGN1cik7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisvKioKKyAqIHhtbE5ld1RleHRDaGlsZDoKKyAqIEBwYXJlbnQ6ICB0aGUgcGFyZW50IG5vZGUKKyAqIEBuczogIGEgbmFtZXNwYWNlIGlmIGFueQorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgY2hpbGQKKyAqIEBjb250ZW50OiAgdGhlIHRleHQgY29udGVudCBvZiB0aGUgY2hpbGQgaWYgYW55LgorICoKKyAqIENyZWF0aW9uIG9mIGEgbmV3IGNoaWxkIGVsZW1lbnQsIGFkZGVkIGF0IHRoZSBlbmQgb2YgQHBhcmVudCBjaGlsZHJlbiBsaXN0LgorICogQG5zIGFuZCBAY29udGVudCBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbCAoTlVMTCkuIElmIEBucyBpcyBOVUxMLCB0aGUgbmV3bHkKKyAqIGNyZWF0ZWQgZWxlbWVudCBpbmhlcml0cyB0aGUgbmFtZXNwYWNlIG9mIEBwYXJlbnQuIElmIEBjb250ZW50IGlzIG5vbiBOVUxMLAorICogYSBjaGlsZCBURVhUIG5vZGUgd2lsbCBiZSBjcmVhdGVkIGNvbnRhaW5pbmcgdGhlIHN0cmluZyBAY29udGVudC4KKyAqIE5PVEU6IFVzZSB4bWxOZXdDaGlsZCgpIGlmIEBjb250ZW50IHdpbGwgY29udGFpbiBlbnRpdGllcyB0aGF0IG5lZWQgdG8gYmUKKyAqIHByZXNlcnZlZC4gVXNlIHRoaXMgZnVuY3Rpb24sIHhtbE5ld1RleHRDaGlsZCgpLCBpZiB5b3UgbmVlZCB0byBlbnN1cmUgdGhhdAorICogcmVzZXJ2ZWQgWE1MIGNoYXJzIHRoYXQgbWlnaHQgYXBwZWFyIGluIEBjb250ZW50LCBzdWNoIGFzIHRoZSBhbXBlcnNhbmQsCisgKiBncmVhdGVyLXRoYW4gb3IgbGVzcy10aGFuIHNpZ25zLCBhcmUgYXV0b21hdGljYWxseSByZXBsYWNlZCBieSB0aGVpciBYTUwKKyAqIGVzY2FwZWQgZW50aXR5IHJlcHJlc2VudGF0aW9ucy4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LgorICovCit4bWxOb2RlUHRyCit4bWxOZXdUZXh0Q2hpbGQoeG1sTm9kZVB0ciBwYXJlbnQsIHhtbE5zUHRyIG5zLAorICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIHhtbE5vZGVQdHIgY3VyLCBwcmV2OworCisgICAgaWYgKHBhcmVudCA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5ld1RleHRDaGlsZCA6IHBhcmVudCA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5ld1RleHRDaGlsZCA6IG5hbWUgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBub2RlCisgICAgICovCisgICAgaWYgKHBhcmVudC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJaWYgKG5zID09IE5VTEwpCisJICAgIGN1ciA9IHhtbE5ld0RvY1Jhd05vZGUocGFyZW50LT5kb2MsIHBhcmVudC0+bnMsIG5hbWUsIGNvbnRlbnQpOworCWVsc2UKKwkgICAgY3VyID0geG1sTmV3RG9jUmF3Tm9kZShwYXJlbnQtPmRvYywgbnMsIG5hbWUsIGNvbnRlbnQpOworICAgIH0gZWxzZSBpZiAoKHBhcmVudC0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKwkgICAgICAgKHBhcmVudC0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworCWlmIChucyA9PSBOVUxMKQorCSAgICBjdXIgPSB4bWxOZXdEb2NSYXdOb2RlKCh4bWxEb2NQdHIpIHBhcmVudCwgTlVMTCwgbmFtZSwgY29udGVudCk7CisJZWxzZQorCSAgICBjdXIgPSB4bWxOZXdEb2NSYXdOb2RlKCh4bWxEb2NQdHIpIHBhcmVudCwgbnMsIG5hbWUsIGNvbnRlbnQpOworICAgIH0gZWxzZSBpZiAocGFyZW50LT50eXBlID09IFhNTF9ET0NVTUVOVF9GUkFHX05PREUpIHsKKwkgICAgY3VyID0geG1sTmV3RG9jUmF3Tm9kZSggcGFyZW50LT5kb2MsIG5zLCBuYW1lLCBjb250ZW50KTsKKyAgICB9IGVsc2UgeworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIGFkZCB0aGUgbmV3IGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgY2hpbGRyZW4gbGlzdC4KKyAgICAgKi8KKyAgICBjdXItPnR5cGUgPSBYTUxfRUxFTUVOVF9OT0RFOworICAgIGN1ci0+cGFyZW50ID0gcGFyZW50OworICAgIGN1ci0+ZG9jID0gcGFyZW50LT5kb2M7CisgICAgaWYgKHBhcmVudC0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICBwYXJlbnQtPmNoaWxkcmVuID0gY3VyOworCXBhcmVudC0+bGFzdCA9IGN1cjsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmV2ID0gcGFyZW50LT5sYXN0OworCXByZXYtPm5leHQgPSBjdXI7CisJY3VyLT5wcmV2ID0gcHJldjsKKwlwYXJlbnQtPmxhc3QgPSBjdXI7CisgICAgfQorCisgICAgcmV0dXJuKGN1cik7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbE5ld0NoYXJSZWY6CisgKiBAZG9jOiB0aGUgZG9jdW1lbnQKKyAqIEBuYW1lOiAgdGhlIGNoYXIgcmVmIHN0cmluZywgc3RhcnRpbmcgd2l0aCAjIG9yICImIyAuLi4gOyIKKyAqCisgKiBDcmVhdGlvbiBvZiBhIG5ldyBjaGFyYWN0ZXIgcmVmZXJlbmNlIG5vZGUuCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LgorICovCit4bWxOb2RlUHRyCit4bWxOZXdDaGFyUmVmKHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgbm9kZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyBjaGFyYWN0ZXIgcmVmZXJlbmNlIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sTm9kZSkpOworICAgIGN1ci0+dHlwZSA9IFhNTF9FTlRJVFlfUkVGX05PREU7CisKKyAgICBjdXItPmRvYyA9IGRvYzsKKyAgICBpZiAobmFtZVswXSA9PSAnJicpIHsKKyAgICAgICAgaW50IGxlbjsKKyAgICAgICAgbmFtZSsrOworCWxlbiA9IHhtbFN0cmxlbihuYW1lKTsKKwlpZiAobmFtZVtsZW4gLSAxXSA9PSAnOycpCisJICAgIGN1ci0+bmFtZSA9IHhtbFN0cm5kdXAobmFtZSwgbGVuIC0gMSk7CisJZWxzZQorCSAgICBjdXItPm5hbWUgPSB4bWxTdHJuZHVwKG5hbWUsIGxlbik7CisgICAgfSBlbHNlCisJY3VyLT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworCisgICAgaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwl4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoY3VyKTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxOZXdSZWZlcmVuY2U6CisgKiBAZG9jOiB0aGUgZG9jdW1lbnQKKyAqIEBuYW1lOiAgdGhlIHJlZmVyZW5jZSBuYW1lLCBvciB0aGUgcmVmZXJlbmNlIHN0cmluZyB3aXRoICYgYW5kIDsKKyAqCisgKiBDcmVhdGlvbiBvZiBhIG5ldyByZWZlcmVuY2Ugbm9kZS4KKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZSBvYmplY3QuCisgKi8KK3htbE5vZGVQdHIKK3htbE5ld1JlZmVyZW5jZSh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgeG1sRW50aXR5UHRyIGVudDsKKworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgbm9kZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyByZWZlcmVuY2UiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChjdXIsIDAsIHNpemVvZih4bWxOb2RlKSk7CisgICAgY3VyLT50eXBlID0gWE1MX0VOVElUWV9SRUZfTk9ERTsKKworICAgIGN1ci0+ZG9jID0gZG9jOworICAgIGlmIChuYW1lWzBdID09ICcmJykgeworICAgICAgICBpbnQgbGVuOworICAgICAgICBuYW1lKys7CisJbGVuID0geG1sU3RybGVuKG5hbWUpOworCWlmIChuYW1lW2xlbiAtIDFdID09ICc7JykKKwkgICAgY3VyLT5uYW1lID0geG1sU3RybmR1cChuYW1lLCBsZW4gLSAxKTsKKwllbHNlCisJICAgIGN1ci0+bmFtZSA9IHhtbFN0cm5kdXAobmFtZSwgbGVuKTsKKyAgICB9IGVsc2UKKwljdXItPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisKKyAgICBlbnQgPSB4bWxHZXREb2NFbnRpdHkoZG9jLCBjdXItPm5hbWUpOworICAgIGlmIChlbnQgIT0gTlVMTCkgeworCWN1ci0+Y29udGVudCA9IGVudC0+Y29udGVudDsKKwkvKgorCSAqIFRoZSBwYXJlbnQgcG9pbnRlciBpbiBlbnRpdHkgaXMgYSBEVEQgcG9pbnRlciBhbmQgdGh1cyBpcyBOT1QKKwkgKiB1cGRhdGVkLiAgTm90IHN1cmUgaWYgdGhpcyBpcyAxMDAlIGNvcnJlY3QuCisJICogIC1HZW9yZ2UKKwkgKi8KKwljdXItPmNoaWxkcmVuID0gKHhtbE5vZGVQdHIpIGVudDsKKwljdXItPmxhc3QgPSAoeG1sTm9kZVB0cikgZW50OworICAgIH0KKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKGN1cik7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sTmV3RG9jVGV4dDoKKyAqIEBkb2M6IHRoZSBkb2N1bWVudAorICogQGNvbnRlbnQ6ICB0aGUgdGV4dCBjb250ZW50CisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlIHdpdGhpbiBhIGRvY3VtZW50LgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4KKyAqLworeG1sTm9kZVB0cgoreG1sTmV3RG9jVGV4dCh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBjdXIgPSB4bWxOZXdUZXh0KGNvbnRlbnQpOworICAgIGlmIChjdXIgIT0gTlVMTCkgY3VyLT5kb2MgPSBkb2M7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sTmV3VGV4dExlbjoKKyAqIEBjb250ZW50OiAgdGhlIHRleHQgY29udGVudAorICogQGxlbjogIHRoZSB0ZXh0IGxlbi4KKyAqCisgKiBDcmVhdGlvbiBvZiBhIG5ldyB0ZXh0IG5vZGUgd2l0aCBhbiBleHRyYSBwYXJhbWV0ZXIgZm9yIHRoZSBjb250ZW50J3MgbGVuZ3RoCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LgorICovCit4bWxOb2RlUHRyCit4bWxOZXdUZXh0TGVuKGNvbnN0IHhtbENoYXIgKmNvbnRlbnQsIGludCBsZW4pIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgbm9kZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyB0ZXh0Iik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sTm9kZSkpOworICAgIGN1ci0+dHlwZSA9IFhNTF9URVhUX05PREU7CisKKyAgICBjdXItPm5hbWUgPSB4bWxTdHJpbmdUZXh0OworICAgIGlmIChjb250ZW50ICE9IE5VTEwpIHsKKwljdXItPmNvbnRlbnQgPSB4bWxTdHJuZHVwKGNvbnRlbnQsIGxlbik7CisgICAgfQorCisgICAgaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwl4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoY3VyKTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxOZXdEb2NUZXh0TGVuOgorICogQGRvYzogdGhlIGRvY3VtZW50CisgKiBAY29udGVudDogIHRoZSB0ZXh0IGNvbnRlbnQKKyAqIEBsZW46ICB0aGUgdGV4dCBsZW4uCisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgdGV4dCBub2RlIHdpdGggYW4gZXh0cmEgY29udGVudCBsZW5ndGggcGFyYW1ldGVyLiBUaGUKKyAqIHRleHQgbm9kZSBwZXJ0YWluIHRvIGEgZ2l2ZW4gZG9jdW1lbnQuCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LgorICovCit4bWxOb2RlUHRyCit4bWxOZXdEb2NUZXh0TGVuKHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQsIGludCBsZW4pIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGN1ciA9IHhtbE5ld1RleHRMZW4oY29udGVudCwgbGVuKTsKKyAgICBpZiAoY3VyICE9IE5VTEwpIGN1ci0+ZG9jID0gZG9jOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbE5ld0NvbW1lbnQ6CisgKiBAY29udGVudDogIHRoZSBjb21tZW50IGNvbnRlbnQKKyAqCisgKiBDcmVhdGlvbiBvZiBhIG5ldyBub2RlIGNvbnRhaW5pbmcgYSBjb21tZW50LgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4KKyAqLworeG1sTm9kZVB0cgoreG1sTmV3Q29tbWVudChjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICAvKgorICAgICAqIEFsbG9jYXRlIGEgbmV3IG5vZGUgYW5kIGZpbGwgdGhlIGZpZWxkcy4KKyAgICAgKi8KKyAgICBjdXIgPSAoeG1sTm9kZVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOb2RlKSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJeG1sVHJlZUVyck1lbW9yeSgiYnVpbGRpbmcgY29tbWVudCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBjdXItPnR5cGUgPSBYTUxfQ09NTUVOVF9OT0RFOworCisgICAgY3VyLT5uYW1lID0geG1sU3RyaW5nQ29tbWVudDsKKyAgICBpZiAoY29udGVudCAhPSBOVUxMKSB7CisJY3VyLT5jb250ZW50ID0geG1sU3RyZHVwKGNvbnRlbnQpOworICAgIH0KKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKGN1cik7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sTmV3Q0RhdGFCbG9jazoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBjb250ZW50OiAgdGhlIENEQVRBIGJsb2NrIGNvbnRlbnQgY29udGVudAorICogQGxlbjogIHRoZSBsZW5ndGggb2YgdGhlIGJsb2NrCisgKgorICogQ3JlYXRpb24gb2YgYSBuZXcgbm9kZSBjb250YWluaW5nIGEgQ0RBVEEgYmxvY2suCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LgorICovCit4bWxOb2RlUHRyCit4bWxOZXdDRGF0YUJsb2NrKHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQsIGludCBsZW4pIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIC8qCisgICAgICogQWxsb2NhdGUgYSBuZXcgbm9kZSBhbmQgZmlsbCB0aGUgZmllbGRzLgorICAgICAqLworICAgIGN1ciA9ICh4bWxOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJidWlsZGluZyBDREFUQSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICBjdXItPnR5cGUgPSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOworICAgIGN1ci0+ZG9jID0gZG9jOworCisgICAgaWYgKGNvbnRlbnQgIT0gTlVMTCkgeworCWN1ci0+Y29udGVudCA9IHhtbFN0cm5kdXAoY29udGVudCwgbGVuKTsKKyAgICB9CisKKyAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKQorCXhtbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZShjdXIpOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbE5ld0RvY0NvbW1lbnQ6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAY29udGVudDogIHRoZSBjb21tZW50IGNvbnRlbnQKKyAqCisgKiBDcmVhdGlvbiBvZiBhIG5ldyBub2RlIGNvbnRhaW5pbmcgYSBjb21tZW50IHdpdGhpbiBhIGRvY3VtZW50LgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyBub2RlIG9iamVjdC4KKyAqLworeG1sTm9kZVB0cgoreG1sTmV3RG9jQ29tbWVudCh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBjdXIgPSB4bWxOZXdDb21tZW50KGNvbnRlbnQpOworICAgIGlmIChjdXIgIT0gTlVMTCkgY3VyLT5kb2MgPSBkb2M7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sU2V0VHJlZURvYzoKKyAqIEB0cmVlOiAgdGhlIHRvcCBlbGVtZW50CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKgorICogdXBkYXRlIGFsbCBub2RlcyB1bmRlciB0aGUgdHJlZSB0byBwb2ludCB0byB0aGUgcmlnaHQgZG9jdW1lbnQKKyAqLwordm9pZAoreG1sU2V0VHJlZURvYyh4bWxOb2RlUHRyIHRyZWUsIHhtbERvY1B0ciBkb2MpIHsKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBpZiAodHJlZSA9PSBOVUxMKQorCXJldHVybjsKKyAgICBpZiAodHJlZS0+ZG9jICE9IGRvYykgeworCWlmKHRyZWUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCSAgICBwcm9wID0gdHJlZS0+cHJvcGVydGllczsKKwkgICAgd2hpbGUgKHByb3AgIT0gTlVMTCkgeworCQlwcm9wLT5kb2MgPSBkb2M7CisJCXhtbFNldExpc3REb2MocHJvcC0+Y2hpbGRyZW4sIGRvYyk7CisJCXByb3AgPSBwcm9wLT5uZXh0OworCSAgICB9CisJfQorCWlmICh0cmVlLT5jaGlsZHJlbiAhPSBOVUxMKQorCSAgICB4bWxTZXRMaXN0RG9jKHRyZWUtPmNoaWxkcmVuLCBkb2MpOworCXRyZWUtPmRvYyA9IGRvYzsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2V0TGlzdERvYzoKKyAqIEBsaXN0OiAgdGhlIGZpcnN0IGVsZW1lbnQKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqCisgKiB1cGRhdGUgYWxsIG5vZGVzIGluIHRoZSBsaXN0IHRvIHBvaW50IHRvIHRoZSByaWdodCBkb2N1bWVudAorICovCit2b2lkCit4bWxTZXRMaXN0RG9jKHhtbE5vZGVQdHIgbGlzdCwgeG1sRG9jUHRyIGRvYykgeworICAgIHhtbE5vZGVQdHIgY3VyOworCisgICAgaWYgKGxpc3QgPT0gTlVMTCkKKwlyZXR1cm47CisgICAgY3VyID0gbGlzdDsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoY3VyLT5kb2MgIT0gZG9jKQorCSAgICB4bWxTZXRUcmVlRG9jKGN1ciwgZG9jKTsKKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorfQorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisvKioKKyAqIHhtbE5ld0NoaWxkOgorICogQHBhcmVudDogIHRoZSBwYXJlbnQgbm9kZQorICogQG5zOiAgYSBuYW1lc3BhY2UgaWYgYW55CisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBjaGlsZAorICogQGNvbnRlbnQ6ICB0aGUgWE1MIGNvbnRlbnQgb2YgdGhlIGNoaWxkIGlmIGFueS4KKyAqCisgKiBDcmVhdGlvbiBvZiBhIG5ldyBjaGlsZCBlbGVtZW50LCBhZGRlZCBhdCB0aGUgZW5kIG9mIEBwYXJlbnQgY2hpbGRyZW4gbGlzdC4KKyAqIEBucyBhbmQgQGNvbnRlbnQgcGFyYW1ldGVycyBhcmUgb3B0aW9uYWwgKE5VTEwpLiBJZiBAbnMgaXMgTlVMTCwgdGhlIG5ld2x5CisgKiBjcmVhdGVkIGVsZW1lbnQgaW5oZXJpdHMgdGhlIG5hbWVzcGFjZSBvZiBAcGFyZW50LiBJZiBAY29udGVudCBpcyBub24gTlVMTCwKKyAqIGEgY2hpbGQgbGlzdCBjb250YWluaW5nIHRoZSBURVhUcyBhbmQgRU5USVRZX1JFRnMgbm9kZSB3aWxsIGJlIGNyZWF0ZWQuCisgKiBOT1RFOiBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHBpZWNlIG9mIFhNTCBDREFUQSwgc28gaXQgYWxsb3dzIGVudGl0eQorICogICAgICAgcmVmZXJlbmNlcy4gWE1MIHNwZWNpYWwgY2hhcnMgbXVzdCBiZSBlc2NhcGVkIGZpcnN0IGJ5IHVzaW5nCisgKiAgICAgICB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpLCBvciB4bWxOZXdUZXh0Q2hpbGQoKSBzaG91bGQgYmUgdXNlZC4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IG5vZGUgb2JqZWN0LgorICovCit4bWxOb2RlUHRyCit4bWxOZXdDaGlsZCh4bWxOb2RlUHRyIHBhcmVudCwgeG1sTnNQdHIgbnMsCisgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lLCBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgeG1sTm9kZVB0ciBjdXIsIHByZXY7CisKKyAgICBpZiAocGFyZW50ID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3Q2hpbGQgOiBwYXJlbnQgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxOZXdDaGlsZCA6IG5hbWUgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBub2RlCisgICAgICovCisgICAgaWYgKHBhcmVudC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJaWYgKG5zID09IE5VTEwpCisJICAgIGN1ciA9IHhtbE5ld0RvY05vZGUocGFyZW50LT5kb2MsIHBhcmVudC0+bnMsIG5hbWUsIGNvbnRlbnQpOworCWVsc2UKKwkgICAgY3VyID0geG1sTmV3RG9jTm9kZShwYXJlbnQtPmRvYywgbnMsIG5hbWUsIGNvbnRlbnQpOworICAgIH0gZWxzZSBpZiAoKHBhcmVudC0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKwkgICAgICAgKHBhcmVudC0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworCWlmIChucyA9PSBOVUxMKQorCSAgICBjdXIgPSB4bWxOZXdEb2NOb2RlKCh4bWxEb2NQdHIpIHBhcmVudCwgTlVMTCwgbmFtZSwgY29udGVudCk7CisJZWxzZQorCSAgICBjdXIgPSB4bWxOZXdEb2NOb2RlKCh4bWxEb2NQdHIpIHBhcmVudCwgbnMsIG5hbWUsIGNvbnRlbnQpOworICAgIH0gZWxzZSBpZiAocGFyZW50LT50eXBlID09IFhNTF9ET0NVTUVOVF9GUkFHX05PREUpIHsKKwkgICAgY3VyID0geG1sTmV3RG9jTm9kZSggcGFyZW50LT5kb2MsIG5zLCBuYW1lLCBjb250ZW50KTsKKyAgICB9IGVsc2UgeworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIGFkZCB0aGUgbmV3IGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgY2hpbGRyZW4gbGlzdC4KKyAgICAgKi8KKyAgICBjdXItPnR5cGUgPSBYTUxfRUxFTUVOVF9OT0RFOworICAgIGN1ci0+cGFyZW50ID0gcGFyZW50OworICAgIGN1ci0+ZG9jID0gcGFyZW50LT5kb2M7CisgICAgaWYgKHBhcmVudC0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICBwYXJlbnQtPmNoaWxkcmVuID0gY3VyOworCXBhcmVudC0+bGFzdCA9IGN1cjsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmV2ID0gcGFyZW50LT5sYXN0OworCXByZXYtPm5leHQgPSBjdXI7CisJY3VyLT5wcmV2ID0gcHJldjsKKwlwYXJlbnQtPmxhc3QgPSBjdXI7CisgICAgfQorCisgICAgcmV0dXJuKGN1cik7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbEFkZFByb3BTaWJsaW5nOgorICogQHByZXY6ICB0aGUgYXR0cmlidXRlIHRvIHdoaWNoIEBwcm9wIGlzIGFkZGVkIGFmdGVyCisgKiBAY3VyOiAgIHRoZSBiYXNlIGF0dHJpYnV0ZSBwYXNzZWQgdG8gY2FsbGluZyBmdW5jdGlvbgorICogQHByb3A6ICB0aGUgbmV3IGF0dHJpYnV0ZQorICoKKyAqIEFkZCBhIG5ldyBhdHRyaWJ1dGUgYWZ0ZXIgQHByZXYgdXNpbmcgQGN1ciBhcyBiYXNlIGF0dHJpYnV0ZS4KKyAqIFdoZW4gaW5zZXJ0aW5nIGJlZm9yZSBAY3VyLCBAcHJldiBpcyBwYXNzZWQgYXMgQGN1ci0+cHJldi4KKyAqIFdoZW4gaW5zZXJ0aW5nIGFmdGVyIEBjdXIsIEBwcmV2IGlzIHBhc3NlZCBhcyBAY3VyLgorICogSWYgYW4gZXhpc3RpbmcgYXR0cmlidXRlIGlzIGZvdW5kIGl0IGlzIGRldHJveWVkIHByaW9yIHRvIGFkZGluZyBAcHJvcC4KKyAqCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgYmVpbmcgaW5zZXJ0ZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sTm9kZVB0cgoreG1sQWRkUHJvcFNpYmxpbmcoeG1sTm9kZVB0ciBwcmV2LCB4bWxOb2RlUHRyIGN1ciwgeG1sTm9kZVB0ciBwcm9wKSB7CisJeG1sQXR0clB0ciBhdHRyOworCisJaWYgKGN1ci0+dHlwZSAhPSBYTUxfQVRUUklCVVRFX05PREUpCisJCXJldHVybihOVUxMKTsKKworCS8qIGNoZWNrIGlmIGFuIGF0dHJpYnV0ZSB3aXRoIHRoZSBzYW1lIG5hbWUgZXhpc3RzICovCisJaWYgKHByb3AtPm5zID09IE5VTEwpCisJCWF0dHIgPSB4bWxIYXNOc1Byb3AoY3VyLT5wYXJlbnQsIHByb3AtPm5hbWUsIE5VTEwpOworCWVsc2UKKwkJYXR0ciA9IHhtbEhhc05zUHJvcChjdXItPnBhcmVudCwgcHJvcC0+bmFtZSwgcHJvcC0+bnMtPmhyZWYpOworCisJaWYgKHByb3AtPmRvYyAhPSBjdXItPmRvYykgeworCQl4bWxTZXRUcmVlRG9jKHByb3AsIGN1ci0+ZG9jKTsKKwl9CisJcHJvcC0+cGFyZW50ID0gY3VyLT5wYXJlbnQ7CisJcHJvcC0+cHJldiA9IHByZXY7CisJaWYgKHByZXYgIT0gTlVMTCkgeworCQlwcm9wLT5uZXh0ID0gcHJldi0+bmV4dDsKKwkJcHJldi0+bmV4dCA9IHByb3A7CisJCWlmIChwcm9wLT5uZXh0KQorCQkJcHJvcC0+bmV4dC0+cHJldiA9IHByb3A7CisJfSBlbHNlIHsKKwkJcHJvcC0+bmV4dCA9IGN1cjsKKwkJY3VyLT5wcmV2ID0gcHJvcDsKKwl9CisJaWYgKHByb3AtPnByZXYgPT0gTlVMTCAmJiBwcm9wLT5wYXJlbnQgIT0gTlVMTCkKKwkJcHJvcC0+cGFyZW50LT5wcm9wZXJ0aWVzID0gKHhtbEF0dHJQdHIpIHByb3A7CisJaWYgKChhdHRyICE9IE5VTEwpICYmIChhdHRyLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfREVDTCkpIHsKKwkJLyogZGlmZmVyZW50IGluc3RhbmNlLCBkZXN0cm95IGl0IChhdHRyaWJ1dGVzIG11c3QgYmUgdW5pcXVlKSAqLworCQl4bWxSZW1vdmVQcm9wKCh4bWxBdHRyUHRyKSBhdHRyKTsKKwl9CisJcmV0dXJuIHByb3A7Cit9CisKKy8qKgorICogeG1sQWRkTmV4dFNpYmxpbmc6CisgKiBAY3VyOiAgdGhlIGNoaWxkIG5vZGUKKyAqIEBlbGVtOiAgdGhlIG5ldyBub2RlCisgKgorICogQWRkIGEgbmV3IG5vZGUgQGVsZW0gYXMgdGhlIG5leHQgc2libGluZyBvZiBAY3VyCisgKiBJZiB0aGUgbmV3IG5vZGUgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW4gYSBkb2N1bWVudCBpdCBpcworICogZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC4KKyAqIEFzIGEgcmVzdWx0IG9mIHRleHQgbWVyZ2luZyBAZWxlbSBtYXkgYmUgZnJlZWQuCisgKiBJZiB0aGUgbmV3IG5vZGUgaXMgQVRUUklCVVRFLCBpdCBpcyBhZGRlZCBpbnRvIHByb3BlcnRpZXMgaW5zdGVhZCBvZiBjaGlsZHJlbi4KKyAqIElmIHRoZXJlIGlzIGFuIGF0dHJpYnV0ZSB3aXRoIGVxdWFsIG5hbWUsIGl0IGlzIGZpcnN0IGRlc3Ryb3llZC4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbE5vZGVQdHIKK3htbEFkZE5leHRTaWJsaW5nKHhtbE5vZGVQdHIgY3VyLCB4bWxOb2RlUHRyIGVsZW0pIHsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQWRkTmV4dFNpYmxpbmcgOiBjdXIgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChlbGVtID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQWRkTmV4dFNpYmxpbmcgOiBlbGVtID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmIChjdXIgPT0gZWxlbSkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxBZGROZXh0U2libGluZyA6IGN1ciA9PSBlbGVtXG4iKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICB4bWxVbmxpbmtOb2RlKGVsZW0pOworCisgICAgaWYgKGVsZW0tPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworCWlmIChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworCSAgICB4bWxOb2RlQWRkQ29udGVudChjdXIsIGVsZW0tPmNvbnRlbnQpOworCSAgICB4bWxGcmVlTm9kZShlbGVtKTsKKwkgICAgcmV0dXJuKGN1cik7CisJfQorCWlmICgoY3VyLT5uZXh0ICE9IE5VTEwpICYmIChjdXItPm5leHQtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgJiYKKyAgICAgICAgICAgIChjdXItPm5hbWUgPT0gY3VyLT5uZXh0LT5uYW1lKSkgeworCSAgICB4bWxDaGFyICp0bXA7CisKKwkgICAgdG1wID0geG1sU3RyZHVwKGVsZW0tPmNvbnRlbnQpOworCSAgICB0bXAgPSB4bWxTdHJjYXQodG1wLCBjdXItPm5leHQtPmNvbnRlbnQpOworCSAgICB4bWxOb2RlU2V0Q29udGVudChjdXItPm5leHQsIHRtcCk7CisJICAgIHhtbEZyZWUodG1wKTsKKwkgICAgeG1sRnJlZU5vZGUoZWxlbSk7CisJICAgIHJldHVybihjdXItPm5leHQpOworCX0KKyAgICB9IGVsc2UgaWYgKGVsZW0tPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJCXJldHVybiB4bWxBZGRQcm9wU2libGluZyhjdXIsIGN1ciwgZWxlbSk7CisgICAgfQorCisgICAgaWYgKGVsZW0tPmRvYyAhPSBjdXItPmRvYykgeworCXhtbFNldFRyZWVEb2MoZWxlbSwgY3VyLT5kb2MpOworICAgIH0KKyAgICBlbGVtLT5wYXJlbnQgPSBjdXItPnBhcmVudDsKKyAgICBlbGVtLT5wcmV2ID0gY3VyOworICAgIGVsZW0tPm5leHQgPSBjdXItPm5leHQ7CisgICAgY3VyLT5uZXh0ID0gZWxlbTsKKyAgICBpZiAoZWxlbS0+bmV4dCAhPSBOVUxMKQorCWVsZW0tPm5leHQtPnByZXYgPSBlbGVtOworICAgIGlmICgoZWxlbS0+cGFyZW50ICE9IE5VTEwpICYmIChlbGVtLT5wYXJlbnQtPmxhc3QgPT0gY3VyKSkKKwllbGVtLT5wYXJlbnQtPmxhc3QgPSBlbGVtOworICAgIHJldHVybihlbGVtKTsKK30KKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBcCisgICAgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorLyoqCisgKiB4bWxBZGRQcmV2U2libGluZzoKKyAqIEBjdXI6ICB0aGUgY2hpbGQgbm9kZQorICogQGVsZW06ICB0aGUgbmV3IG5vZGUKKyAqCisgKiBBZGQgYSBuZXcgbm9kZSBAZWxlbSBhcyB0aGUgcHJldmlvdXMgc2libGluZyBvZiBAY3VyCisgKiBtZXJnaW5nIGFkamFjZW50IFRFWFQgbm9kZXMgKEBlbGVtIG1heSBiZSBmcmVlZCkKKyAqIElmIHRoZSBuZXcgbm9kZSB3YXMgYWxyZWFkeSBpbnNlcnRlZCBpbiBhIGRvY3VtZW50IGl0IGlzCisgKiBmaXJzdCB1bmxpbmtlZCBmcm9tIGl0cyBleGlzdGluZyBjb250ZXh0LgorICogSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uCisgKiBJZiB0aGVyZSBpcyBhbiBhdHRyaWJ1dGUgd2l0aCBlcXVhbCBuYW1lLCBpdCBpcyBmaXJzdCBkZXN0cm95ZWQuCisgKgorICogUmV0dXJucyB0aGUgbmV3IG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxOb2RlUHRyCit4bWxBZGRQcmV2U2libGluZyh4bWxOb2RlUHRyIGN1ciwgeG1sTm9kZVB0ciBlbGVtKSB7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEFkZFByZXZTaWJsaW5nIDogY3VyID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBpZiAoZWxlbSA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEFkZFByZXZTaWJsaW5nIDogZWxlbSA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoY3VyID09IGVsZW0pIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQWRkUHJldlNpYmxpbmcgOiBjdXIgPT0gZWxlbVxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgeG1sVW5saW5rTm9kZShlbGVtKTsKKworICAgIGlmIChlbGVtLT50eXBlID09IFhNTF9URVhUX05PREUpIHsKKwlpZiAoY3VyLT50eXBlID09IFhNTF9URVhUX05PREUpIHsKKwkgICAgeG1sQ2hhciAqdG1wOworCisJICAgIHRtcCA9IHhtbFN0cmR1cChlbGVtLT5jb250ZW50KTsKKwkgICAgdG1wID0geG1sU3RyY2F0KHRtcCwgY3VyLT5jb250ZW50KTsKKwkgICAgeG1sTm9kZVNldENvbnRlbnQoY3VyLCB0bXApOworCSAgICB4bWxGcmVlKHRtcCk7CisJICAgIHhtbEZyZWVOb2RlKGVsZW0pOworCSAgICByZXR1cm4oY3VyKTsKKwl9CisJaWYgKChjdXItPnByZXYgIT0gTlVMTCkgJiYgKGN1ci0+cHJldi0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSAmJgorICAgICAgICAgICAgKGN1ci0+bmFtZSA9PSBjdXItPnByZXYtPm5hbWUpKSB7CisJICAgIHhtbE5vZGVBZGRDb250ZW50KGN1ci0+cHJldiwgZWxlbS0+Y29udGVudCk7CisJICAgIHhtbEZyZWVOb2RlKGVsZW0pOworCSAgICByZXR1cm4oY3VyLT5wcmV2KTsKKwl9CisgICAgfSBlbHNlIGlmIChlbGVtLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCQlyZXR1cm4geG1sQWRkUHJvcFNpYmxpbmcoY3VyLT5wcmV2LCBjdXIsIGVsZW0pOworICAgIH0KKworICAgIGlmIChlbGVtLT5kb2MgIT0gY3VyLT5kb2MpIHsKKwl4bWxTZXRUcmVlRG9jKGVsZW0sIGN1ci0+ZG9jKTsKKyAgICB9CisgICAgZWxlbS0+cGFyZW50ID0gY3VyLT5wYXJlbnQ7CisgICAgZWxlbS0+bmV4dCA9IGN1cjsKKyAgICBlbGVtLT5wcmV2ID0gY3VyLT5wcmV2OworICAgIGN1ci0+cHJldiA9IGVsZW07CisgICAgaWYgKGVsZW0tPnByZXYgIT0gTlVMTCkKKwllbGVtLT5wcmV2LT5uZXh0ID0gZWxlbTsKKyAgICBpZiAoKGVsZW0tPnBhcmVudCAhPSBOVUxMKSAmJiAoZWxlbS0+cGFyZW50LT5jaGlsZHJlbiA9PSBjdXIpKSB7CisJCWVsZW0tPnBhcmVudC0+Y2hpbGRyZW4gPSBlbGVtOworICAgIH0KKyAgICByZXR1cm4oZWxlbSk7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbEFkZFNpYmxpbmc6CisgKiBAY3VyOiAgdGhlIGNoaWxkIG5vZGUKKyAqIEBlbGVtOiAgdGhlIG5ldyBub2RlCisgKgorICogQWRkIGEgbmV3IGVsZW1lbnQgQGVsZW0gdG8gdGhlIGxpc3Qgb2Ygc2libGluZ3Mgb2YgQGN1cgorICogbWVyZ2luZyBhZGphY2VudCBURVhUIG5vZGVzIChAZWxlbSBtYXkgYmUgZnJlZWQpCisgKiBJZiB0aGUgbmV3IGVsZW1lbnQgd2FzIGFscmVhZHkgaW5zZXJ0ZWQgaW4gYSBkb2N1bWVudCBpdCBpcworICogZmlyc3QgdW5saW5rZWQgZnJvbSBpdHMgZXhpc3RpbmcgY29udGV4dC4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgZWxlbWVudCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbE5vZGVQdHIKK3htbEFkZFNpYmxpbmcoeG1sTm9kZVB0ciBjdXIsIHhtbE5vZGVQdHIgZWxlbSkgeworICAgIHhtbE5vZGVQdHIgcGFyZW50OworCisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEFkZFNpYmxpbmcgOiBjdXIgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaWYgKGVsZW0gPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxBZGRTaWJsaW5nIDogZWxlbSA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoY3VyID09IGVsZW0pIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQWRkU2libGluZyA6IGN1ciA9PSBlbGVtXG4iKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENvbnN0YW50IHRpbWUgaXMgd2UgY2FuIHJlbHkgb24gdGhlIC0+cGFyZW50LT5sYXN0IHRvIGZpbmQKKyAgICAgKiB0aGUgbGFzdCBzaWJsaW5nLgorICAgICAqLworICAgIGlmICgoY3VyLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkgJiYgKGN1ci0+cGFyZW50ICE9IE5VTEwpICYmCisJKGN1ci0+cGFyZW50LT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCShjdXItPnBhcmVudC0+bGFzdCAhPSBOVUxMKSAmJgorCShjdXItPnBhcmVudC0+bGFzdC0+bmV4dCA9PSBOVUxMKSkgeworCWN1ciA9IGN1ci0+cGFyZW50LT5sYXN0OworICAgIH0gZWxzZSB7CisJd2hpbGUgKGN1ci0+bmV4dCAhPSBOVUxMKSBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorCisgICAgeG1sVW5saW5rTm9kZShlbGVtKTsKKworICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9URVhUX05PREUpICYmIChlbGVtLT50eXBlID09IFhNTF9URVhUX05PREUpICYmCisgICAgICAgIChjdXItPm5hbWUgPT0gZWxlbS0+bmFtZSkpIHsKKwl4bWxOb2RlQWRkQ29udGVudChjdXIsIGVsZW0tPmNvbnRlbnQpOworCXhtbEZyZWVOb2RlKGVsZW0pOworCXJldHVybihjdXIpOworICAgIH0gZWxzZSBpZiAoZWxlbS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpIHsKKwkJcmV0dXJuIHhtbEFkZFByb3BTaWJsaW5nKGN1ciwgY3VyLCBlbGVtKTsKKyAgICB9CisKKyAgICBpZiAoZWxlbS0+ZG9jICE9IGN1ci0+ZG9jKSB7CisJeG1sU2V0VHJlZURvYyhlbGVtLCBjdXItPmRvYyk7CisgICAgfQorICAgIHBhcmVudCA9IGN1ci0+cGFyZW50OworICAgIGVsZW0tPnByZXYgPSBjdXI7CisgICAgZWxlbS0+bmV4dCA9IE5VTEw7CisgICAgZWxlbS0+cGFyZW50ID0gcGFyZW50OworICAgIGN1ci0+bmV4dCA9IGVsZW07CisgICAgaWYgKHBhcmVudCAhPSBOVUxMKQorCXBhcmVudC0+bGFzdCA9IGVsZW07CisKKyAgICByZXR1cm4oZWxlbSk7Cit9CisKKy8qKgorICogeG1sQWRkQ2hpbGRMaXN0OgorICogQHBhcmVudDogIHRoZSBwYXJlbnQgbm9kZQorICogQGN1cjogIHRoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0CisgKgorICogQWRkIGEgbGlzdCBvZiBub2RlIGF0IHRoZSBlbmQgb2YgdGhlIGNoaWxkIGxpc3Qgb2YgdGhlIHBhcmVudAorICogbWVyZ2luZyBhZGphY2VudCBURVhUIG5vZGVzIChAY3VyIG1heSBiZSBmcmVlZCkKKyAqCisgKiBSZXR1cm5zIHRoZSBsYXN0IGNoaWxkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sTm9kZVB0cgoreG1sQWRkQ2hpbGRMaXN0KHhtbE5vZGVQdHIgcGFyZW50LCB4bWxOb2RlUHRyIGN1cikgeworICAgIHhtbE5vZGVQdHIgcHJldjsKKworICAgIGlmIChwYXJlbnQgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxBZGRDaGlsZExpc3QgOiBwYXJlbnQgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEFkZENoaWxkTGlzdCA6IGNoaWxkID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmICgoY3VyLT5kb2MgIT0gTlVMTCkgJiYgKHBhcmVudC0+ZG9jICE9IE5VTEwpICYmCisgICAgICAgIChjdXItPmRvYyAhPSBwYXJlbnQtPmRvYykpIHsKKyNpZmRlZiBERUJVR19UUkVFCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJFbGVtZW50cyBtb3ZlZCB0byBhIGRpZmZlcmVudCBkb2N1bWVudFxuIik7CisjZW5kaWYKKyAgICB9CisKKyAgICAvKgorICAgICAqIGFkZCB0aGUgZmlyc3QgZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBjaGlsZHJlbiBsaXN0LgorICAgICAqLworCisgICAgaWYgKHBhcmVudC0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICBwYXJlbnQtPmNoaWxkcmVuID0gY3VyOworICAgIH0gZWxzZSB7CisJLyoKKwkgKiBJZiBjdXIgYW5kIHBhcmVudC0+bGFzdCBib3RoIGFyZSBURVhUIG5vZGVzLCB0aGVuIG1lcmdlIHRoZW0uCisJICovCisJaWYgKChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgJiYKKwkgICAgKHBhcmVudC0+bGFzdC0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSAmJgorCSAgICAoY3VyLT5uYW1lID09IHBhcmVudC0+bGFzdC0+bmFtZSkpIHsKKwkgICAgeG1sTm9kZUFkZENvbnRlbnQocGFyZW50LT5sYXN0LCBjdXItPmNvbnRlbnQpOworCSAgICAvKgorCSAgICAgKiBpZiBpdCdzIHRoZSBvbmx5IGNoaWxkLCBub3RoaW5nIG1vcmUgdG8gYmUgZG9uZS4KKwkgICAgICovCisJICAgIGlmIChjdXItPm5leHQgPT0gTlVMTCkgeworCQl4bWxGcmVlTm9kZShjdXIpOworCQlyZXR1cm4ocGFyZW50LT5sYXN0KTsKKwkgICAgfQorCSAgICBwcmV2ID0gY3VyOworCSAgICBjdXIgPSBjdXItPm5leHQ7CisJICAgIHhtbEZyZWVOb2RlKHByZXYpOworCX0KKyAgICAgICAgcHJldiA9IHBhcmVudC0+bGFzdDsKKwlwcmV2LT5uZXh0ID0gY3VyOworCWN1ci0+cHJldiA9IHByZXY7CisgICAgfQorICAgIHdoaWxlIChjdXItPm5leHQgIT0gTlVMTCkgeworCWN1ci0+cGFyZW50ID0gcGFyZW50OworCWlmIChjdXItPmRvYyAhPSBwYXJlbnQtPmRvYykgeworCSAgICB4bWxTZXRUcmVlRG9jKGN1ciwgcGFyZW50LT5kb2MpOworCX0KKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICBjdXItPnBhcmVudCA9IHBhcmVudDsKKyAgICAvKiB0aGUgcGFyZW50IG1heSBub3QgYmUgbGlua2VkIHRvIGEgZG9jICEgKi8KKyAgICBpZiAoY3VyLT5kb2MgIT0gcGFyZW50LT5kb2MpIHsKKyAgICAgICAgeG1sU2V0VHJlZURvYyhjdXIsIHBhcmVudC0+ZG9jKTsKKyAgICB9CisgICAgcGFyZW50LT5sYXN0ID0gY3VyOworCisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sQWRkQ2hpbGQ6CisgKiBAcGFyZW50OiAgdGhlIHBhcmVudCBub2RlCisgKiBAY3VyOiAgdGhlIGNoaWxkIG5vZGUKKyAqCisgKiBBZGQgYSBuZXcgbm9kZSB0byBAcGFyZW50LCBhdCB0aGUgZW5kIG9mIHRoZSBjaGlsZCAob3IgcHJvcGVydHkpIGxpc3QKKyAqIG1lcmdpbmcgYWRqYWNlbnQgVEVYVCBub2RlcyAoaW4gd2hpY2ggY2FzZSBAY3VyIGlzIGZyZWVkKQorICogSWYgdGhlIG5ldyBub2RlIGlzIEFUVFJJQlVURSwgaXQgaXMgYWRkZWQgaW50byBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgY2hpbGRyZW4uCisgKiBJZiB0aGVyZSBpcyBhbiBhdHRyaWJ1dGUgd2l0aCBlcXVhbCBuYW1lLCBpdCBpcyBmaXJzdCBkZXN0cm95ZWQuCisgKgorICogUmV0dXJucyB0aGUgY2hpbGQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxOb2RlUHRyCit4bWxBZGRDaGlsZCh4bWxOb2RlUHRyIHBhcmVudCwgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICB4bWxOb2RlUHRyIHByZXY7CisKKyAgICBpZiAocGFyZW50ID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQWRkQ2hpbGQgOiBwYXJlbnQgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEFkZENoaWxkIDogY2hpbGQgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaWYgKHBhcmVudCA9PSBjdXIpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQWRkQ2hpbGQgOiBwYXJlbnQgPT0gY3VyXG4iKTsKKyNlbmRpZgorCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBJZiBjdXIgaXMgYSBURVhUIG5vZGUsIG1lcmdlIGl0cyBjb250ZW50IHdpdGggYWRqYWNlbnQgVEVYVCBub2RlcworICAgICAqIGN1ciBpcyB0aGVuIGZyZWVkLgorICAgICAqLworICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworCWlmICgocGFyZW50LT50eXBlID09IFhNTF9URVhUX05PREUpICYmCisJICAgIChwYXJlbnQtPmNvbnRlbnQgIT0gTlVMTCkgJiYKKwkgICAgKHBhcmVudC0+bmFtZSA9PSBjdXItPm5hbWUpKSB7CisJICAgIHhtbE5vZGVBZGRDb250ZW50KHBhcmVudCwgY3VyLT5jb250ZW50KTsKKwkgICAgeG1sRnJlZU5vZGUoY3VyKTsKKwkgICAgcmV0dXJuKHBhcmVudCk7CisJfQorCWlmICgocGFyZW50LT5sYXN0ICE9IE5VTEwpICYmIChwYXJlbnQtPmxhc3QtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgJiYKKwkgICAgKHBhcmVudC0+bGFzdC0+bmFtZSA9PSBjdXItPm5hbWUpICYmCisJICAgIChwYXJlbnQtPmxhc3QgIT0gY3VyKSkgeworCSAgICB4bWxOb2RlQWRkQ29udGVudChwYXJlbnQtPmxhc3QsIGN1ci0+Y29udGVudCk7CisJICAgIHhtbEZyZWVOb2RlKGN1cik7CisJICAgIHJldHVybihwYXJlbnQtPmxhc3QpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIGFkZCB0aGUgbmV3IGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgY2hpbGRyZW4gbGlzdC4KKyAgICAgKi8KKyAgICBwcmV2ID0gY3VyLT5wYXJlbnQ7CisgICAgY3VyLT5wYXJlbnQgPSBwYXJlbnQ7CisgICAgaWYgKGN1ci0+ZG9jICE9IHBhcmVudC0+ZG9jKSB7CisJeG1sU2V0VHJlZURvYyhjdXIsIHBhcmVudC0+ZG9jKTsKKyAgICB9CisgICAgLyogdGhpcyBjaGVjayBwcmV2ZW50cyBhIGxvb3Agb24gdHJlZS10cmF2ZXJzaW9ucyBpZiBhIGRldmVsb3BlcgorICAgICAqIHRyaWVzIHRvIGFkZCBhIG5vZGUgdG8gaXRzIHBhcmVudCBtdWx0aXBsZSB0aW1lcworICAgICAqLworICAgIGlmIChwcmV2ID09IHBhcmVudCkKKwlyZXR1cm4oY3VyKTsKKworICAgIC8qCisgICAgICogQ29hbGVzY2luZworICAgICAqLworICAgIGlmICgocGFyZW50LT50eXBlID09IFhNTF9URVhUX05PREUpICYmCisJKHBhcmVudC0+Y29udGVudCAhPSBOVUxMKSAmJgorCShwYXJlbnQgIT0gY3VyKSkgeworCXhtbE5vZGVBZGRDb250ZW50KHBhcmVudCwgY3VyLT5jb250ZW50KTsKKwl4bWxGcmVlTm9kZShjdXIpOworCXJldHVybihwYXJlbnQpOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCQlpZiAocGFyZW50LT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpCisJCQlyZXR1cm4oTlVMTCk7CisJaWYgKHBhcmVudC0+cHJvcGVydGllcyAhPSBOVUxMKSB7CisJICAgIC8qIGNoZWNrIGlmIGFuIGF0dHJpYnV0ZSB3aXRoIHRoZSBzYW1lIG5hbWUgZXhpc3RzICovCisJICAgIHhtbEF0dHJQdHIgbGFzdGF0dHI7CisKKwkgICAgaWYgKGN1ci0+bnMgPT0gTlVMTCkKKwkJbGFzdGF0dHIgPSB4bWxIYXNOc1Byb3AocGFyZW50LCBjdXItPm5hbWUsIE5VTEwpOworCSAgICBlbHNlCisJCWxhc3RhdHRyID0geG1sSGFzTnNQcm9wKHBhcmVudCwgY3VyLT5uYW1lLCBjdXItPm5zLT5ocmVmKTsKKwkgICAgaWYgKChsYXN0YXR0ciAhPSBOVUxMKSAmJiAobGFzdGF0dHIgIT0gKHhtbEF0dHJQdHIpIGN1cikgJiYgKGxhc3RhdHRyLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfREVDTCkpIHsKKwkJLyogZGlmZmVyZW50IGluc3RhbmNlLCBkZXN0cm95IGl0IChhdHRyaWJ1dGVzIG11c3QgYmUgdW5pcXVlKSAqLworCQkJeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgbGFzdGF0dHIpOworCQl4bWxGcmVlUHJvcChsYXN0YXR0cik7CisJICAgIH0KKwkJaWYgKGxhc3RhdHRyID09ICh4bWxBdHRyUHRyKSBjdXIpCisJCQlyZXR1cm4oY3VyKTsKKworCX0KKwlpZiAocGFyZW50LT5wcm9wZXJ0aWVzID09IE5VTEwpIHsKKwkgICAgcGFyZW50LT5wcm9wZXJ0aWVzID0gKHhtbEF0dHJQdHIpIGN1cjsKKwl9IGVsc2UgeworCSAgICAvKiBmaW5kIHRoZSBlbmQgKi8KKwkgICAgeG1sQXR0clB0ciBsYXN0YXR0ciA9IHBhcmVudC0+cHJvcGVydGllczsKKwkgICAgd2hpbGUgKGxhc3RhdHRyLT5uZXh0ICE9IE5VTEwpIHsKKwkJbGFzdGF0dHIgPSBsYXN0YXR0ci0+bmV4dDsKKwkgICAgfQorCSAgICBsYXN0YXR0ci0+bmV4dCA9ICh4bWxBdHRyUHRyKSBjdXI7CisJICAgICgoeG1sQXR0clB0cikgY3VyKS0+cHJldiA9IGxhc3RhdHRyOworCX0KKyAgICB9IGVsc2UgeworCWlmIChwYXJlbnQtPmNoaWxkcmVuID09IE5VTEwpIHsKKwkgICAgcGFyZW50LT5jaGlsZHJlbiA9IGN1cjsKKwkgICAgcGFyZW50LT5sYXN0ID0gY3VyOworCX0gZWxzZSB7CisJICAgIHByZXYgPSBwYXJlbnQtPmxhc3Q7CisJICAgIHByZXYtPm5leHQgPSBjdXI7CisJICAgIGN1ci0+cHJldiA9IHByZXY7CisJICAgIHBhcmVudC0+bGFzdCA9IGN1cjsKKwl9CisgICAgfQorICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbEdldExhc3RDaGlsZDoKKyAqIEBwYXJlbnQ6ICB0aGUgcGFyZW50IG5vZGUKKyAqCisgKiBTZWFyY2ggdGhlIGxhc3QgY2hpbGQgb2YgYSBub2RlLgorICogUmV0dXJucyB0aGUgbGFzdCBjaGlsZCBvciBOVUxMIGlmIG5vbmUuCisgKi8KK3htbE5vZGVQdHIKK3htbEdldExhc3RDaGlsZCh4bWxOb2RlUHRyIHBhcmVudCkgeworICAgIGlmIChwYXJlbnQgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxHZXRMYXN0Q2hpbGQgOiBwYXJlbnQgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihwYXJlbnQtPmxhc3QpOworfQorCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoKKyAqIDUgaW50ZXJmYWNlcyBmcm9tIERPTSBFbGVtZW50VHJhdmVyc2FsCisgKi8KKworLyoqCisgKiB4bWxDaGlsZEVsZW1lbnRDb3VudDoKKyAqIEBwYXJlbnQ6IHRoZSBwYXJlbnQgbm9kZQorICoKKyAqIEZpbmRzIHRoZSBjdXJyZW50IG51bWJlciBvZiBjaGlsZCBub2RlcyBvZiB0aGF0IGVsZW1lbnQgd2hpY2ggYXJlCisgKiBlbGVtZW50IG5vZGVzLgorICogTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbgorICogdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgcmVmZXJlbmNlCisgKiBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBjb3VudCBvZiBlbGVtZW50IGNoaWxkIG9yIDAgaWYgbm90IGF2YWlsYWJsZQorICovCit1bnNpZ25lZCBsb25nCit4bWxDaGlsZEVsZW1lbnRDb3VudCh4bWxOb2RlUHRyIHBhcmVudCkgeworICAgIHVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKKyAgICB4bWxOb2RlUHRyIGN1ciA9IE5VTEw7CisKKyAgICBpZiAocGFyZW50ID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKyAgICBzd2l0Y2ggKHBhcmVudC0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgICAgICBjdXIgPSBwYXJlbnQtPmNoaWxkcmVuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4oMCk7CisgICAgfQorICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICBpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisgICAgICAgICAgICByZXQrKzsKKyAgICAgICAgY3VyID0gY3VyLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxGaXJzdEVsZW1lbnRDaGlsZDoKKyAqIEBwYXJlbnQ6IHRoZSBwYXJlbnQgbm9kZQorICoKKyAqIEZpbmRzIHRoZSBmaXJzdCBjaGlsZCBub2RlIG9mIHRoYXQgZWxlbWVudCB3aGljaCBpcyBhIEVsZW1lbnQgbm9kZQorICogTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbgorICogdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgcmVmZXJlbmNlCisgKiBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IGNoaWxkIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZQorICovCit4bWxOb2RlUHRyCit4bWxGaXJzdEVsZW1lbnRDaGlsZCh4bWxOb2RlUHRyIHBhcmVudCkgeworICAgIHhtbE5vZGVQdHIgY3VyID0gTlVMTDsKKworICAgIGlmIChwYXJlbnQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIHN3aXRjaCAocGFyZW50LT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIGN1ciA9IHBhcmVudC0+Y2hpbGRyZW47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkKKyAgICAgICAgICAgIHJldHVybihjdXIpOworICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxMYXN0RWxlbWVudENoaWxkOgorICogQHBhcmVudDogdGhlIHBhcmVudCBub2RlCisgKgorICogRmluZHMgdGhlIGxhc3QgY2hpbGQgbm9kZSBvZiB0aGF0IGVsZW1lbnQgd2hpY2ggaXMgYSBFbGVtZW50IG5vZGUKKyAqIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4KKyAqIHRoZSBXM0MgRE9NIGVsZW1lbnQgdHJhdmVyc2FsIHNwZWMgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBiYWNrIHJlZmVyZW5jZQorICogZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuCisgKgorICogUmV0dXJucyB0aGUgbGFzdCBlbGVtZW50IGNoaWxkIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZQorICovCit4bWxOb2RlUHRyCit4bWxMYXN0RWxlbWVudENoaWxkKHhtbE5vZGVQdHIgcGFyZW50KSB7CisgICAgeG1sTm9kZVB0ciBjdXIgPSBOVUxMOworCisgICAgaWYgKHBhcmVudCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgc3dpdGNoIChwYXJlbnQtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgY3VyID0gcGFyZW50LT5sYXN0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICBpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisgICAgICAgICAgICByZXR1cm4oY3VyKTsKKyAgICAgICAgY3VyID0gY3VyLT5wcmV2OworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sUHJldmlvdXNFbGVtZW50U2libGluZzoKKyAqIEBub2RlOiB0aGUgY3VycmVudCBub2RlCisgKgorICogRmluZHMgdGhlIGZpcnN0IGNsb3Nlc3QgcHJldmlvdXMgc2libGluZyBvZiB0aGUgbm9kZSB3aGljaCBpcyBhbgorICogZWxlbWVudCBub2RlLgorICogTm90ZSB0aGUgaGFuZGxpbmcgb2YgZW50aXRpZXMgcmVmZXJlbmNlcyBpcyBkaWZmZXJlbnQgdGhhbiBpbgorICogdGhlIFczQyBET00gZWxlbWVudCB0cmF2ZXJzYWwgc3BlYyBzaW5jZSB3ZSBkb24ndCBoYXZlIGJhY2sgcmVmZXJlbmNlCisgKiBmcm9tIGVudGl0aWVzIGNvbnRlbnQgdG8gZW50aXRpZXMgcmVmZXJlbmNlcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBwcmV2aW91cyBlbGVtZW50IHNpYmxpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlCisgKi8KK3htbE5vZGVQdHIKK3htbFByZXZpb3VzRWxlbWVudFNpYmxpbmcoeG1sTm9kZVB0ciBub2RlKSB7CisgICAgaWYgKG5vZGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisgICAgICAgICAgICBub2RlID0gbm9kZS0+cHJldjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICB3aGlsZSAobm9kZSAhPSBOVUxMKSB7CisgICAgICAgIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisgICAgICAgICAgICByZXR1cm4obm9kZSk7CisgICAgICAgIG5vZGUgPSBub2RlLT5wcmV2OworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sTmV4dEVsZW1lbnRTaWJsaW5nOgorICogQG5vZGU6IHRoZSBjdXJyZW50IG5vZGUKKyAqCisgKiBGaW5kcyB0aGUgZmlyc3QgY2xvc2VzdCBuZXh0IHNpYmxpbmcgb2YgdGhlIG5vZGUgd2hpY2ggaXMgYW4KKyAqIGVsZW1lbnQgbm9kZS4KKyAqIE5vdGUgdGhlIGhhbmRsaW5nIG9mIGVudGl0aWVzIHJlZmVyZW5jZXMgaXMgZGlmZmVyZW50IHRoYW4gaW4KKyAqIHRoZSBXM0MgRE9NIGVsZW1lbnQgdHJhdmVyc2FsIHNwZWMgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBiYWNrIHJlZmVyZW5jZQorICogZnJvbSBlbnRpdGllcyBjb250ZW50IHRvIGVudGl0aWVzIHJlZmVyZW5jZXMuCisgKgorICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IHNpYmxpbmcgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlCisgKi8KK3htbE5vZGVQdHIKK3htbE5leHRFbGVtZW50U2libGluZyh4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICBpZiAobm9kZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRFREX05PREU6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisgICAgICAgICAgICBub2RlID0gbm9kZS0+bmV4dDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICB3aGlsZSAobm9kZSAhPSBOVUxMKSB7CisgICAgICAgIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisgICAgICAgICAgICByZXR1cm4obm9kZSk7CisgICAgICAgIG5vZGUgPSBub2RlLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKy8qKgorICogeG1sRnJlZU5vZGVMaXN0OgorICogQGN1cjogIHRoZSBmaXJzdCBub2RlIGluIHRoZSBsaXN0CisgKgorICogRnJlZSBhIG5vZGUgYW5kIGFsbCBpdHMgc2libGluZ3MsIHRoaXMgaXMgYSByZWN1cnNpdmUgYmVoYXZpb3VyLCBhbGwKKyAqIHRoZSBjaGlsZHJlbiBhcmUgZnJlZWQgdG9vLgorICovCit2b2lkCit4bWxGcmVlTm9kZUxpc3QoeG1sTm9kZVB0ciBjdXIpIHsKKyAgICB4bWxOb2RlUHRyIG5leHQ7CisgICAgeG1sRGljdFB0ciBkaWN0ID0gTlVMTDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJeG1sRnJlZU5zTGlzdCgoeG1sTnNQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJKGN1ci0+dHlwZSA9PSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFKSB8fAorI2VuZGlmCisJKGN1ci0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworCXhtbEZyZWVEb2MoKHhtbERvY1B0cikgY3VyKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPmRvYyAhPSBOVUxMKSBkaWN0ID0gY3VyLT5kb2MtPmRpY3Q7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIG5leHQgPSBjdXItPm5leHQ7CisJaWYgKGN1ci0+dHlwZSAhPSBYTUxfRFREX05PREUpIHsKKworCSAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJCXhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKGN1cik7CisKKwkgICAgaWYgKChjdXItPmNoaWxkcmVuICE9IE5VTEwpICYmCisJCShjdXItPnR5cGUgIT0gWE1MX0VOVElUWV9SRUZfTk9ERSkpCisJCXhtbEZyZWVOb2RlTGlzdChjdXItPmNoaWxkcmVuKTsKKwkgICAgaWYgKCgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJCSAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkgfHwKKwkJIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX0VORCkpICYmCisJCShjdXItPnByb3BlcnRpZXMgIT0gTlVMTCkpCisJCXhtbEZyZWVQcm9wTGlzdChjdXItPnByb3BlcnRpZXMpOworCSAgICBpZiAoKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkoY3VyLT50eXBlICE9IFhNTF9YSU5DTFVERV9TVEFSVCkgJiYKKwkJKGN1ci0+dHlwZSAhPSBYTUxfWElOQ0xVREVfRU5EKSAmJgorCQkoY3VyLT50eXBlICE9IFhNTF9FTlRJVFlfUkVGX05PREUpICYmCisJCShjdXItPmNvbnRlbnQgIT0gKHhtbENoYXIgKikgJihjdXItPnByb3BlcnRpZXMpKSkgeworCQlESUNUX0ZSRUUoY3VyLT5jb250ZW50KQorCSAgICB9CisJICAgIGlmICgoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCSAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX1NUQVJUKSB8fAorCQkgKGN1ci0+dHlwZSA9PSBYTUxfWElOQ0xVREVfRU5EKSkgJiYKKwkJKGN1ci0+bnNEZWYgIT0gTlVMTCkpCisJCXhtbEZyZWVOc0xpc3QoY3VyLT5uc0RlZik7CisKKwkgICAgLyoKKwkgICAgICogV2hlbiBhIG5vZGUgaXMgYSB0ZXh0IG5vZGUgb3IgYSBjb21tZW50LCBpdCB1c2VzIGEgZ2xvYmFsIHN0YXRpYworCSAgICAgKiB2YXJpYWJsZSBmb3IgdGhlIG5hbWUgb2YgdGhlIG5vZGUuCisJICAgICAqIE90aGVyd2lzZSB0aGUgbm9kZSBuYW1lIG1pZ2h0IGNvbWUgZnJvbSB0aGUgZG9jdW1lbnQncworCSAgICAgKiBkaWN0aW9ubmFyeQorCSAgICAgKi8KKwkgICAgaWYgKChjdXItPm5hbWUgIT0gTlVMTCkgJiYKKwkJKGN1ci0+dHlwZSAhPSBYTUxfVEVYVF9OT0RFKSAmJgorCQkoY3VyLT50eXBlICE9IFhNTF9DT01NRU5UX05PREUpKQorCQlESUNUX0ZSRUUoY3VyLT5uYW1lKQorCSAgICB4bWxGcmVlKGN1cik7CisJfQorCWN1ciA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbEZyZWVOb2RlOgorICogQGN1cjogIHRoZSBub2RlCisgKgorICogRnJlZSBhIG5vZGUsIHRoaXMgaXMgYSByZWN1cnNpdmUgYmVoYXZpb3VyLCBhbGwgdGhlIGNoaWxkcmVuIGFyZSBmcmVlZCB0b28uCisgKiBUaGlzIGRvZXNuJ3QgdW5saW5rIHRoZSBjaGlsZCBmcm9tIHRoZSBsaXN0LCB1c2UgeG1sVW5saW5rTm9kZSgpIGZpcnN0LgorICovCit2b2lkCit4bWxGcmVlTm9kZSh4bWxOb2RlUHRyIGN1cikgeworICAgIHhtbERpY3RQdHIgZGljdCA9IE5VTEw7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybjsKKworICAgIC8qIHVzZSB4bWxGcmVlRHRkIGZvciBEVEQgbm9kZXMgKi8KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9EVERfTk9ERSkgeworCXhtbEZyZWVEdGQoKHhtbER0ZFB0cikgY3VyKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJeG1sRnJlZU5zKCh4bWxOc1B0cikgY3VyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCXhtbEZyZWVQcm9wKCh4bWxBdHRyUHRyKSBjdXIpOworCXJldHVybjsKKyAgICB9CisKKyAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoY3VyKTsKKworICAgIGlmIChjdXItPmRvYyAhPSBOVUxMKSBkaWN0ID0gY3VyLT5kb2MtPmRpY3Q7CisKKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9FTlRJVFlfREVDTCkgeworICAgICAgICB4bWxFbnRpdHlQdHIgZW50ID0gKHhtbEVudGl0eVB0cikgY3VyOworCURJQ1RfRlJFRShlbnQtPlN5c3RlbUlEKTsKKwlESUNUX0ZSRUUoZW50LT5FeHRlcm5hbElEKTsKKyAgICB9CisgICAgaWYgKChjdXItPmNoaWxkcmVuICE9IE5VTEwpICYmCisJKGN1ci0+dHlwZSAhPSBYTUxfRU5USVRZX1JFRl9OT0RFKSkKKwl4bWxGcmVlTm9kZUxpc3QoY3VyLT5jaGlsZHJlbik7CisgICAgaWYgKCgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX1NUQVJUKSB8fAorCSAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9FTkQpKSAmJgorCShjdXItPnByb3BlcnRpZXMgIT0gTlVMTCkpCisJeG1sRnJlZVByb3BMaXN0KGN1ci0+cHJvcGVydGllcyk7CisgICAgaWYgKChjdXItPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkoY3VyLT5jb250ZW50ICE9IE5VTEwpICYmCisJKGN1ci0+dHlwZSAhPSBYTUxfRU5USVRZX1JFRl9OT0RFKSAmJgorCShjdXItPnR5cGUgIT0gWE1MX1hJTkNMVURFX0VORCkgJiYKKwkoY3VyLT50eXBlICE9IFhNTF9YSU5DTFVERV9TVEFSVCkgJiYKKwkoY3VyLT5jb250ZW50ICE9ICh4bWxDaGFyICopICYoY3VyLT5wcm9wZXJ0aWVzKSkpIHsKKwlESUNUX0ZSRUUoY3VyLT5jb250ZW50KQorICAgIH0KKworICAgIC8qCisgICAgICogV2hlbiBhIG5vZGUgaXMgYSB0ZXh0IG5vZGUgb3IgYSBjb21tZW50LCBpdCB1c2VzIGEgZ2xvYmFsIHN0YXRpYworICAgICAqIHZhcmlhYmxlIGZvciB0aGUgbmFtZSBvZiB0aGUgbm9kZS4KKyAgICAgKiBPdGhlcndpc2UgdGhlIG5vZGUgbmFtZSBtaWdodCBjb21lIGZyb20gdGhlIGRvY3VtZW50J3MgZGljdGlvbm5hcnkKKyAgICAgKi8KKyAgICBpZiAoKGN1ci0+bmFtZSAhPSBOVUxMKSAmJgorICAgICAgICAoY3VyLT50eXBlICE9IFhNTF9URVhUX05PREUpICYmCisgICAgICAgIChjdXItPnR5cGUgIT0gWE1MX0NPTU1FTlRfTk9ERSkpCisJRElDVF9GUkVFKGN1ci0+bmFtZSkKKworICAgIGlmICgoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCSAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkgfHwKKwkgKGN1ci0+dHlwZSA9PSBYTUxfWElOQ0xVREVfRU5EKSkgJiYKKwkoY3VyLT5uc0RlZiAhPSBOVUxMKSkKKwl4bWxGcmVlTnNMaXN0KGN1ci0+bnNEZWYpOworICAgIHhtbEZyZWUoY3VyKTsKK30KKworLyoqCisgKiB4bWxVbmxpbmtOb2RlOgorICogQGN1cjogIHRoZSBub2RlCisgKgorICogVW5saW5rIGEgbm9kZSBmcm9tIGl0J3MgY3VycmVudCBjb250ZXh0LCB0aGUgbm9kZSBpcyBub3QgZnJlZWQKKyAqLwordm9pZAoreG1sVW5saW5rTm9kZSh4bWxOb2RlUHRyIGN1cikgeworICAgIGlmIChjdXIgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxVbmxpbmtOb2RlIDogbm9kZSA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRFREX05PREUpIHsKKwl4bWxEb2NQdHIgZG9jOworCWRvYyA9IGN1ci0+ZG9jOworCWlmIChkb2MgIT0gTlVMTCkgeworCSAgICBpZiAoZG9jLT5pbnRTdWJzZXQgPT0gKHhtbER0ZFB0cikgY3VyKQorCQlkb2MtPmludFN1YnNldCA9IE5VTEw7CisJICAgIGlmIChkb2MtPmV4dFN1YnNldCA9PSAoeG1sRHRkUHRyKSBjdXIpCisJCWRvYy0+ZXh0U3Vic2V0ID0gTlVMTDsKKwl9CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSB7CisgICAgICAgIHhtbERvY1B0ciBkb2M7CisJZG9jID0gY3VyLT5kb2M7CisJaWYgKGRvYyAhPSBOVUxMKSB7CisJICAgIGlmIChkb2MtPmludFN1YnNldCAhPSBOVUxMKSB7CisJICAgICAgICBpZiAoeG1sSGFzaExvb2t1cChkb2MtPmludFN1YnNldC0+ZW50aXRpZXMsIGN1ci0+bmFtZSkgPT0gY3VyKQorCQkgICAgeG1sSGFzaFJlbW92ZUVudHJ5KGRvYy0+aW50U3Vic2V0LT5lbnRpdGllcywgY3VyLT5uYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCSAgICAgICAgaWYgKHhtbEhhc2hMb29rdXAoZG9jLT5pbnRTdWJzZXQtPnBlbnRpdGllcywgY3VyLT5uYW1lKSA9PSBjdXIpCisJCSAgICB4bWxIYXNoUmVtb3ZlRW50cnkoZG9jLT5pbnRTdWJzZXQtPnBlbnRpdGllcywgY3VyLT5uYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCSAgICB9CisJICAgIGlmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSB7CisJICAgICAgICBpZiAoeG1sSGFzaExvb2t1cChkb2MtPmV4dFN1YnNldC0+ZW50aXRpZXMsIGN1ci0+bmFtZSkgPT0gY3VyKQorCQkgICAgeG1sSGFzaFJlbW92ZUVudHJ5KGRvYy0+ZXh0U3Vic2V0LT5lbnRpdGllcywgY3VyLT5uYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCSAgICAgICAgaWYgKHhtbEhhc2hMb29rdXAoZG9jLT5leHRTdWJzZXQtPnBlbnRpdGllcywgY3VyLT5uYW1lKSA9PSBjdXIpCisJCSAgICB4bWxIYXNoUmVtb3ZlRW50cnkoZG9jLT5leHRTdWJzZXQtPnBlbnRpdGllcywgY3VyLT5uYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCSAgICB9CisJfQorICAgIH0KKyAgICBpZiAoY3VyLT5wYXJlbnQgIT0gTlVMTCkgeworCXhtbE5vZGVQdHIgcGFyZW50OworCXBhcmVudCA9IGN1ci0+cGFyZW50OworCWlmIChjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJICAgIGlmIChwYXJlbnQtPnByb3BlcnRpZXMgPT0gKHhtbEF0dHJQdHIpIGN1cikKKwkJcGFyZW50LT5wcm9wZXJ0aWVzID0gKCh4bWxBdHRyUHRyKSBjdXIpLT5uZXh0OworCX0gZWxzZSB7CisJICAgIGlmIChwYXJlbnQtPmNoaWxkcmVuID09IGN1cikKKwkJcGFyZW50LT5jaGlsZHJlbiA9IGN1ci0+bmV4dDsKKwkgICAgaWYgKHBhcmVudC0+bGFzdCA9PSBjdXIpCisJCXBhcmVudC0+bGFzdCA9IGN1ci0+cHJldjsKKwl9CisJY3VyLT5wYXJlbnQgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3VyLT5uZXh0ICE9IE5VTEwpCisgICAgICAgIGN1ci0+bmV4dC0+cHJldiA9IGN1ci0+cHJldjsKKyAgICBpZiAoY3VyLT5wcmV2ICE9IE5VTEwpCisgICAgICAgIGN1ci0+cHJldi0+bmV4dCA9IGN1ci0+bmV4dDsKKyAgICBjdXItPm5leHQgPSBjdXItPnByZXYgPSBOVUxMOworfQorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKy8qKgorICogeG1sUmVwbGFjZU5vZGU6CisgKiBAb2xkOiAgdGhlIG9sZCBub2RlCisgKiBAY3VyOiAgdGhlIG5vZGUKKyAqCisgKiBVbmxpbmsgdGhlIG9sZCBub2RlIGZyb20gaXRzIGN1cnJlbnQgY29udGV4dCwgcHJ1bmUgdGhlIG5ldyBvbmUKKyAqIGF0IHRoZSBzYW1lIHBsYWNlLiBJZiBAY3VyIHdhcyBhbHJlYWR5IGluc2VydGVkIGluIGEgZG9jdW1lbnQgaXQgaXMKKyAqIGZpcnN0IHVubGlua2VkIGZyb20gaXRzIGV4aXN0aW5nIGNvbnRleHQuCisgKgorICogUmV0dXJucyB0aGUgQG9sZCBub2RlCisgKi8KK3htbE5vZGVQdHIKK3htbFJlcGxhY2VOb2RlKHhtbE5vZGVQdHIgb2xkLCB4bWxOb2RlUHRyIGN1cikgeworICAgIGlmIChvbGQgPT0gY3VyKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKChvbGQgPT0gTlVMTCkgfHwgKG9sZC0+cGFyZW50ID09IE5VTEwpKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbFJlcGxhY2VOb2RlIDogb2xkID09IE5VTEwgb3Igd2l0aG91dCBwYXJlbnRcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxVbmxpbmtOb2RlKG9sZCk7CisJcmV0dXJuKG9sZCk7CisgICAgfQorICAgIGlmIChjdXIgPT0gb2xkKSB7CisJcmV0dXJuKG9sZCk7CisgICAgfQorICAgIGlmICgob2xkLT50eXBlPT1YTUxfQVRUUklCVVRFX05PREUpICYmIChjdXItPnR5cGUhPVhNTF9BVFRSSUJVVEVfTk9ERSkpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sUmVwbGFjZU5vZGUgOiBUcnlpbmcgdG8gcmVwbGFjZSBhdHRyaWJ1dGUgbm9kZSB3aXRoIG90aGVyIG5vZGUgdHlwZVxuIik7CisjZW5kaWYKKwlyZXR1cm4ob2xkKTsKKyAgICB9CisgICAgaWYgKChjdXItPnR5cGU9PVhNTF9BVFRSSUJVVEVfTk9ERSkgJiYgKG9sZC0+dHlwZSE9WE1MX0FUVFJJQlVURV9OT0RFKSkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxSZXBsYWNlTm9kZSA6IFRyeWluZyB0byByZXBsYWNlIGEgbm9uLWF0dHJpYnV0ZSBub2RlIHdpdGggYXR0cmlidXRlIG5vZGVcbiIpOworI2VuZGlmCisJcmV0dXJuKG9sZCk7CisgICAgfQorICAgIHhtbFVubGlua05vZGUoY3VyKTsKKyAgICB4bWxTZXRUcmVlRG9jKGN1ciwgb2xkLT5kb2MpOworICAgIGN1ci0+cGFyZW50ID0gb2xkLT5wYXJlbnQ7CisgICAgY3VyLT5uZXh0ID0gb2xkLT5uZXh0OworICAgIGlmIChjdXItPm5leHQgIT0gTlVMTCkKKwljdXItPm5leHQtPnByZXYgPSBjdXI7CisgICAgY3VyLT5wcmV2ID0gb2xkLT5wcmV2OworICAgIGlmIChjdXItPnByZXYgIT0gTlVMTCkKKwljdXItPnByZXYtPm5leHQgPSBjdXI7CisgICAgaWYgKGN1ci0+cGFyZW50ICE9IE5VTEwpIHsKKwlpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCSAgICBpZiAoY3VyLT5wYXJlbnQtPnByb3BlcnRpZXMgPT0gKHhtbEF0dHJQdHIpb2xkKQorCQljdXItPnBhcmVudC0+cHJvcGVydGllcyA9ICgoeG1sQXR0clB0cikgY3VyKTsKKwl9IGVsc2UgeworCSAgICBpZiAoY3VyLT5wYXJlbnQtPmNoaWxkcmVuID09IG9sZCkKKwkJY3VyLT5wYXJlbnQtPmNoaWxkcmVuID0gY3VyOworCSAgICBpZiAoY3VyLT5wYXJlbnQtPmxhc3QgPT0gb2xkKQorCQljdXItPnBhcmVudC0+bGFzdCA9IGN1cjsKKwl9CisgICAgfQorICAgIG9sZC0+bmV4dCA9IG9sZC0+cHJldiA9IE5VTEw7CisgICAgb2xkLT5wYXJlbnQgPSBOVUxMOworICAgIHJldHVybihvbGQpOworfQorI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJQ29weSBvcGVyYXRpb25zCQkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbENvcHlOYW1lc3BhY2U6CisgKiBAY3VyOiAgdGhlIG5hbWVzcGFjZQorICoKKyAqIERvIGEgY29weSBvZiB0aGUgbmFtZXNwYWNlLgorICoKKyAqIFJldHVybnM6IGEgbmV3ICN4bWxOc1B0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxOc1B0cgoreG1sQ29weU5hbWVzcGFjZSh4bWxOc1B0ciBjdXIpIHsKKyAgICB4bWxOc1B0ciByZXQ7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworCWNhc2UgWE1MX0xPQ0FMX05BTUVTUEFDRToKKwkgICAgcmV0ID0geG1sTmV3TnMoTlVMTCwgY3VyLT5ocmVmLCBjdXItPnByZWZpeCk7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisjaWZkZWYgREVCVUdfVFJFRQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJ4bWxDb3B5TmFtZXNwYWNlOiBpbnZhbGlkIHR5cGUgJWRcbiIsIGN1ci0+dHlwZSk7CisjZW5kaWYKKwkgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxDb3B5TmFtZXNwYWNlTGlzdDoKKyAqIEBjdXI6ICB0aGUgZmlyc3QgbmFtZXNwYWNlCisgKgorICogRG8gYSBjb3B5IG9mIGFuIG5hbWVzcGFjZSBsaXN0LgorICoKKyAqIFJldHVybnM6IGEgbmV3ICN4bWxOc1B0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxOc1B0cgoreG1sQ29weU5hbWVzcGFjZUxpc3QoeG1sTnNQdHIgY3VyKSB7CisgICAgeG1sTnNQdHIgcmV0ID0gTlVMTDsKKyAgICB4bWxOc1B0ciBwID0gTlVMTCxxOworCisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIHEgPSB4bWxDb3B5TmFtZXNwYWNlKGN1cik7CisJaWYgKHAgPT0gTlVMTCkgeworCSAgICByZXQgPSBwID0gcTsKKwl9IGVsc2UgeworCSAgICBwLT5uZXh0ID0gcTsKKwkgICAgcCA9IHE7CisJfQorCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxTdGF0aWNDb3B5Tm9kZUxpc3QoeG1sTm9kZVB0ciBub2RlLCB4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIHBhcmVudCk7CisKK3N0YXRpYyB4bWxBdHRyUHRyCit4bWxDb3B5UHJvcEludGVybmFsKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgdGFyZ2V0LCB4bWxBdHRyUHRyIGN1cikgeworICAgIHhtbEF0dHJQdHIgcmV0OworCisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKHRhcmdldCAhPSBOVUxMKQorCXJldCA9IHhtbE5ld0RvY1Byb3AodGFyZ2V0LT5kb2MsIGN1ci0+bmFtZSwgTlVMTCk7CisgICAgZWxzZSBpZiAoZG9jICE9IE5VTEwpCisJcmV0ID0geG1sTmV3RG9jUHJvcChkb2MsIGN1ci0+bmFtZSwgTlVMTCk7CisgICAgZWxzZSBpZiAoY3VyLT5wYXJlbnQgIT0gTlVMTCkKKwlyZXQgPSB4bWxOZXdEb2NQcm9wKGN1ci0+cGFyZW50LT5kb2MsIGN1ci0+bmFtZSwgTlVMTCk7CisgICAgZWxzZSBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKQorCXJldCA9IHhtbE5ld0RvY1Byb3AoY3VyLT5jaGlsZHJlbi0+ZG9jLCBjdXItPm5hbWUsIE5VTEwpOworICAgIGVsc2UKKwlyZXQgPSB4bWxOZXdEb2NQcm9wKE5VTEwsIGN1ci0+bmFtZSwgTlVMTCk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgcmV0LT5wYXJlbnQgPSB0YXJnZXQ7CisKKyAgICBpZiAoKGN1ci0+bnMgIT0gTlVMTCkgJiYgKHRhcmdldCAhPSBOVUxMKSkgeworICAgICAgeG1sTnNQdHIgbnM7CisKKyAgICAgIG5zID0geG1sU2VhcmNoTnModGFyZ2V0LT5kb2MsIHRhcmdldCwgY3VyLT5ucy0+cHJlZml4KTsKKyAgICAgIGlmIChucyA9PSBOVUxMKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIEh1bW0sIHdlIGFyZSBjb3B5aW5nIGFuIGVsZW1lbnQgd2hvc2UgbmFtZXNwYWNlIGlzIGRlZmluZWQKKyAgICAgICAgICogb3V0IG9mIHRoZSBuZXcgdHJlZSBzY29wZS4gU2VhcmNoIGl0IGluIHRoZSBvcmlnaW5hbCB0cmVlCisgICAgICAgICAqIGFuZCBhZGQgaXQgYXQgdGhlIHRvcCBvZiB0aGUgbmV3IHRyZWUKKyAgICAgICAgICovCisgICAgICAgIG5zID0geG1sU2VhcmNoTnMoY3VyLT5kb2MsIGN1ci0+cGFyZW50LCBjdXItPm5zLT5wcmVmaXgpOworICAgICAgICBpZiAobnMgIT0gTlVMTCkgeworICAgICAgICAgIHhtbE5vZGVQdHIgcm9vdCA9IHRhcmdldDsKKyAgICAgICAgICB4bWxOb2RlUHRyIHByZWQgPSBOVUxMOworCisgICAgICAgICAgd2hpbGUgKHJvb3QtPnBhcmVudCAhPSBOVUxMKSB7CisgICAgICAgICAgICBwcmVkID0gcm9vdDsKKyAgICAgICAgICAgIHJvb3QgPSByb290LT5wYXJlbnQ7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChyb290ID09ICh4bWxOb2RlUHRyKSB0YXJnZXQtPmRvYykgeworICAgICAgICAgICAgLyogY29ycmVjdCBwb3NzaWJseSBjeWNsaW5nIGFib3ZlIHRoZSBkb2N1bWVudCBlbHQgKi8KKyAgICAgICAgICAgIHJvb3QgPSBwcmVkOworICAgICAgICAgIH0KKyAgICAgICAgICByZXQtPm5zID0geG1sTmV3TnMocm9vdCwgbnMtPmhyZWYsIG5zLT5wcmVmaXgpOworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICAvKgorICAgICAgICAgKiB3ZSBoYXZlIHRvIGZpbmQgc29tZXRoaW5nIGFwcHJvcHJpYXRlIGhlcmUgc2luY2UKKyAgICAgICAgICogd2UgY2FudCBiZSBzdXJlLCB0aGF0IHRoZSBuYW1lc3BjZSB3ZSBmb3VuZCBpcyBpZGVudGlmaWVkCisgICAgICAgICAqIGJ5IHRoZSBwcmVmaXgKKyAgICAgICAgICovCisgICAgICAgIGlmICh4bWxTdHJFcXVhbChucy0+aHJlZiwgY3VyLT5ucy0+aHJlZikpIHsKKyAgICAgICAgICAvKiB0aGlzIGlzIHRoZSBuaWNlIGNhc2UgKi8KKyAgICAgICAgICByZXQtPm5zID0gbnM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgLyoKKyAgICAgICAgICAgKiB3ZSBhcmUgaW4gdHJvdWJsZTogd2UgbmVlZCBhIG5ldyByZWNvbmNpbGllZCBuYW1lc3BhY2UuCisgICAgICAgICAgICogVGhpcyBpcyBleHBlbnNpdmUKKyAgICAgICAgICAgKi8KKyAgICAgICAgICByZXQtPm5zID0geG1sTmV3UmVjb25jaWxpZWROcyh0YXJnZXQtPmRvYywgdGFyZ2V0LCBjdXItPm5zKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgfSBlbHNlCisgICAgICAgIHJldC0+bnMgPSBOVUxMOworCisgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCXhtbE5vZGVQdHIgdG1wOworCisJcmV0LT5jaGlsZHJlbiA9IHhtbFN0YXRpY0NvcHlOb2RlTGlzdChjdXItPmNoaWxkcmVuLCByZXQtPmRvYywgKHhtbE5vZGVQdHIpIHJldCk7CisJcmV0LT5sYXN0ID0gTlVMTDsKKwl0bXAgPSByZXQtPmNoaWxkcmVuOworCXdoaWxlICh0bXAgIT0gTlVMTCkgeworCSAgICAvKiB0bXAtPnBhcmVudCA9ICh4bWxOb2RlUHRyKXJldDsgKi8KKwkgICAgaWYgKHRtcC0+bmV4dCA9PSBOVUxMKQorCSAgICAgICAgcmV0LT5sYXN0ID0gdG1wOworCSAgICB0bXAgPSB0bXAtPm5leHQ7CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIFRyeSB0byBoYW5kbGUgSURzCisgICAgICovCisgICAgaWYgKCh0YXJnZXQhPSBOVUxMKSAmJiAoY3VyIT0gTlVMTCkgJiYKKwkodGFyZ2V0LT5kb2MgIT0gTlVMTCkgJiYgKGN1ci0+ZG9jICE9IE5VTEwpICYmCisJKGN1ci0+ZG9jLT5pZHMgIT0gTlVMTCkgJiYgKGN1ci0+cGFyZW50ICE9IE5VTEwpKSB7CisJaWYgKHhtbElzSUQoY3VyLT5kb2MsIGN1ci0+cGFyZW50LCBjdXIpKSB7CisJICAgIHhtbENoYXIgKmlkOworCisJICAgIGlkID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoY3VyLT5kb2MsIGN1ci0+Y2hpbGRyZW4sIDEpOworCSAgICBpZiAoaWQgIT0gTlVMTCkgeworCQl4bWxBZGRJRChOVUxMLCB0YXJnZXQtPmRvYywgaWQsIHJldCk7CisJCXhtbEZyZWUoaWQpOworCSAgICB9CisJfQorICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxDb3B5UHJvcDoKKyAqIEB0YXJnZXQ6ICB0aGUgZWxlbWVudCB3aGVyZSB0aGUgYXR0cmlidXRlIHdpbGwgYmUgZ3JhZnRlZAorICogQGN1cjogIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBEbyBhIGNvcHkgb2YgdGhlIGF0dHJpYnV0ZS4KKyAqCisgKiBSZXR1cm5zOiBhIG5ldyAjeG1sQXR0clB0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxBdHRyUHRyCit4bWxDb3B5UHJvcCh4bWxOb2RlUHRyIHRhcmdldCwgeG1sQXR0clB0ciBjdXIpIHsKKwlyZXR1cm4geG1sQ29weVByb3BJbnRlcm5hbChOVUxMLCB0YXJnZXQsIGN1cik7Cit9CisKKy8qKgorICogeG1sQ29weVByb3BMaXN0OgorICogQHRhcmdldDogIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdHRyaWJ1dGVzIHdpbGwgYmUgZ3JhZnRlZAorICogQGN1cjogIHRoZSBmaXJzdCBhdHRyaWJ1dGUKKyAqCisgKiBEbyBhIGNvcHkgb2YgYW4gYXR0cmlidXRlIGxpc3QuCisgKgorICogUmV0dXJuczogYSBuZXcgI3htbEF0dHJQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sQXR0clB0cgoreG1sQ29weVByb3BMaXN0KHhtbE5vZGVQdHIgdGFyZ2V0LCB4bWxBdHRyUHRyIGN1cikgeworICAgIHhtbEF0dHJQdHIgcmV0ID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIHAgPSBOVUxMLHE7CisKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgcSA9IHhtbENvcHlQcm9wKHRhcmdldCwgY3VyKTsKKwlpZiAocSA9PSBOVUxMKQorCSAgICByZXR1cm4oTlVMTCk7CisJaWYgKHAgPT0gTlVMTCkgeworCSAgICByZXQgPSBwID0gcTsKKwl9IGVsc2UgeworCSAgICBwLT5uZXh0ID0gcTsKKwkgICAgcS0+cHJldiA9IHA7CisJICAgIHAgPSBxOworCX0KKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKgorICogTk9URSBhYm91dCB0aGUgQ29weU5vZGUgb3BlcmF0aW9ucyAhCisgKgorICogVGhleSBhcmUgc3BsaXQgaW50byBleHRlcm5hbCBhbmQgaW50ZXJuYWwgcGFydHMgZm9yIG9uZQorICogdHJpY2t5IHJlYXNvbjogbmFtZXNwYWNlcy4gRG9pbmcgYSBkaXJlY3QgY29weSBvZiBhIG5vZGUKKyAqIHNheSBSUE06Q29weXJpZ2h0IHdpdGhvdXQgY2hhbmdpbmcgdGhlIG5hbWVzcGFjZSBwb2ludGVyIHRvCisgKiBzb21ldGhpbmcgZWxzZSBjYW4gcHJvZHVjZSBzdGFsZSBsaW5rcy4gT25lIHdheSB0byBkbyBpdCBpcworICogdG8ga2VlcCBhIHJlZmVyZW5jZSBjb3VudGVyIGJ1dCB0aGlzIGRvZXNuJ3Qgd29yayBhcyBzb29uCisgKiBhcyBvbmUgbW92ZSB0aGUgZWxlbWVudCBvciB0aGUgc3VidHJlZSBvdXQgb2YgdGhlIHNjb3BlIG9mCisgKiB0aGUgZXhpc3RpbmcgbmFtZXNwYWNlLiBUaGUgYWN0dWFsIHNvbHV0aW9uIHNlZW1zIHRvIGFkZAorICogYSBjb3B5IG9mIHRoZSBuYW1lc3BhY2UgYXQgdGhlIHRvcCBvZiB0aGUgY29waWVkIHRyZWUgaWYKKyAqIG5vdCBhdmFpbGFibGUgaW4gdGhlIHN1YnRyZWUuCisgKiBIZW5jZSB0d28gZnVuY3Rpb25zLCB0aGUgcHVibGljIGZyb250LWVuZCBjYWxsIHRoZSBpbm5lciBvbmVzCisgKiBUaGUgYXJndW1lbnQgInJlY3Vyc2l2ZSIgbm9ybWFsbHkgaW5kaWNhdGVzIGEgcmVjdXJzaXZlIGNvcHkKKyAqIG9mIHRoZSBub2RlIHdpdGggdmFsdWVzIDAgKG5vKSBhbmQgMSAoeWVzKS4gIEZvciBYSW5jbHVkZSwKKyAqIGhvd2V2ZXIsIHdlIGFsbG93IGEgdmFsdWUgb2YgMiB0byBpbmRpY2F0ZSBjb3B5IHByb3BlcnRpZXMgYW5kCisgKiBuYW1lc3BhY2UgaW5mbywgYnV0IGRvbid0IHJlY3Vyc2Ugb24gY2hpbGRyZW4uCisgKi8KKworc3RhdGljIHhtbE5vZGVQdHIKK3htbFN0YXRpY0NvcHlOb2RlKGNvbnN0IHhtbE5vZGVQdHIgbm9kZSwgeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBwYXJlbnQsCisgICAgICAgICAgICAgICAgICBpbnQgZXh0ZW5kZWQpIHsKKyAgICB4bWxOb2RlUHRyIHJldDsKKworICAgIGlmIChub2RlID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBzd2l0Y2ggKG5vZGUtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfRlJBR19OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkJcmV0dXJuKCh4bWxOb2RlUHRyKSB4bWxDb3B5UHJvcEludGVybmFsKGRvYywgcGFyZW50LCAoeG1sQXR0clB0cikgbm9kZSkpOworICAgICAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwkgICAgcmV0dXJuKCh4bWxOb2RlUHRyKSB4bWxDb3B5TmFtZXNwYWNlTGlzdCgoeG1sTnNQdHIpIG5vZGUpKTsKKworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisJICAgIHJldHVybigoeG1sTm9kZVB0cikgeG1sQ29weURvYygoeG1sRG9jUHRyKSBub2RlLCBleHRlbmRlZCkpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBub2RlIGFuZCBmaWxsIHRoZSBmaWVsZHMuCisgICAgICovCisgICAgcmV0ID0gKHhtbE5vZGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTm9kZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImNvcHlpbmcgbm9kZSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKyAgICByZXQtPnR5cGUgPSBub2RlLT50eXBlOworCisgICAgcmV0LT5kb2MgPSBkb2M7CisgICAgcmV0LT5wYXJlbnQgPSBwYXJlbnQ7CisgICAgaWYgKG5vZGUtPm5hbWUgPT0geG1sU3RyaW5nVGV4dCkKKwlyZXQtPm5hbWUgPSB4bWxTdHJpbmdUZXh0OworICAgIGVsc2UgaWYgKG5vZGUtPm5hbWUgPT0geG1sU3RyaW5nVGV4dE5vZW5jKQorCXJldC0+bmFtZSA9IHhtbFN0cmluZ1RleHROb2VuYzsKKyAgICBlbHNlIGlmIChub2RlLT5uYW1lID09IHhtbFN0cmluZ0NvbW1lbnQpCisJcmV0LT5uYW1lID0geG1sU3RyaW5nQ29tbWVudDsKKyAgICBlbHNlIGlmIChub2RlLT5uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChkb2MgIT0gTlVMTCkgJiYgKGRvYy0+ZGljdCAhPSBOVUxMKSkKKwkgICAgcmV0LT5uYW1lID0geG1sRGljdExvb2t1cChkb2MtPmRpY3QsIG5vZGUtPm5hbWUsIC0xKTsKKwllbHNlCisJICAgIHJldC0+bmFtZSA9IHhtbFN0cmR1cChub2RlLT5uYW1lKTsKKyAgICB9CisgICAgaWYgKChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisJKG5vZGUtPmNvbnRlbnQgIT0gTlVMTCkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfRU5USVRZX1JFRl9OT0RFKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9YSU5DTFVERV9FTkQpICYmCisJKG5vZGUtPnR5cGUgIT0gWE1MX1hJTkNMVURFX1NUQVJUKSkgeworCXJldC0+Y29udGVudCA9IHhtbFN0cmR1cChub2RlLT5jb250ZW50KTsKKyAgICB9ZWxzZXsKKyAgICAgIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisgICAgICAgIHJldC0+bGluZSA9IG5vZGUtPmxpbmU7CisgICAgfQorICAgIGlmIChwYXJlbnQgIT0gTlVMTCkgeworCXhtbE5vZGVQdHIgdG1wOworCisJLyoKKwkgKiB0aGlzIGlzIGEgdHJpY2t5IHBhcnQgZm9yIHRoZSBub2RlIHJlZ2lzdGVyIHRoaW5nOgorCSAqIGluIGNhc2UgcmV0IGRvZXMgZ2V0IGNvYWxlc2NlZCBpbiB4bWxBZGRDaGlsZAorCSAqIHRoZSBkZXJlZ2lzdGVyLW5vZGUgY2FsbGJhY2sgaXMgY2FsbGVkOyBzbyB3ZSByZWdpc3RlciByZXQgbm93IGFscmVhZHkKKwkgKi8KKwlpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKQorCSAgICB4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoKHhtbE5vZGVQdHIpcmV0KTsKKworICAgICAgICB0bXAgPSB4bWxBZGRDaGlsZChwYXJlbnQsIHJldCk7CisJLyogbm9kZSBjb3VsZCBoYXZlIGNvYWxlc2NlZCAqLworCWlmICh0bXAgIT0gcmV0KQorCSAgICByZXR1cm4odG1wKTsKKyAgICB9CisKKyAgICBpZiAoIWV4dGVuZGVkKQorCWdvdG8gb3V0OworICAgIGlmICgoKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKyAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkpICYmIChub2RlLT5uc0RlZiAhPSBOVUxMKSkKKyAgICAgICAgcmV0LT5uc0RlZiA9IHhtbENvcHlOYW1lc3BhY2VMaXN0KG5vZGUtPm5zRGVmKTsKKworICAgIGlmIChub2RlLT5ucyAhPSBOVUxMKSB7CisgICAgICAgIHhtbE5zUHRyIG5zOworCisJbnMgPSB4bWxTZWFyY2hOcyhkb2MsIHJldCwgbm9kZS0+bnMtPnByZWZpeCk7CisJaWYgKG5zID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgICogSHVtbSwgd2UgYXJlIGNvcHlpbmcgYW4gZWxlbWVudCB3aG9zZSBuYW1lc3BhY2UgaXMgZGVmaW5lZAorCSAgICAgKiBvdXQgb2YgdGhlIG5ldyB0cmVlIHNjb3BlLiBTZWFyY2ggaXQgaW4gdGhlIG9yaWdpbmFsIHRyZWUKKwkgICAgICogYW5kIGFkZCBpdCBhdCB0aGUgdG9wIG9mIHRoZSBuZXcgdHJlZQorCSAgICAgKi8KKwkgICAgbnMgPSB4bWxTZWFyY2hOcyhub2RlLT5kb2MsIG5vZGUsIG5vZGUtPm5zLT5wcmVmaXgpOworCSAgICBpZiAobnMgIT0gTlVMTCkgeworCSAgICAgICAgeG1sTm9kZVB0ciByb290ID0gcmV0OworCisJCXdoaWxlIChyb290LT5wYXJlbnQgIT0gTlVMTCkgcm9vdCA9IHJvb3QtPnBhcmVudDsKKwkJcmV0LT5ucyA9IHhtbE5ld05zKHJvb3QsIG5zLT5ocmVmLCBucy0+cHJlZml4KTsKKwkJfSBlbHNlIHsKKwkJCXJldC0+bnMgPSB4bWxOZXdSZWNvbmNpbGllZE5zKGRvYywgcmV0LCBub2RlLT5ucyk7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAgKiByZWZlcmVuY2UgdGhlIGV4aXN0aW5nIG5hbWVzcGFjZSBkZWZpbml0aW9uIGluIG91ciBvd24gdHJlZS4KKwkgICAgICovCisJICAgIHJldC0+bnMgPSBuczsKKwl9CisgICAgfQorICAgIGlmICgoKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKyAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkpICYmIChub2RlLT5wcm9wZXJ0aWVzICE9IE5VTEwpKQorICAgICAgICByZXQtPnByb3BlcnRpZXMgPSB4bWxDb3B5UHJvcExpc3QocmV0LCBub2RlLT5wcm9wZXJ0aWVzKTsKKyAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSB7CisJaWYgKChkb2MgPT0gTlVMTCkgfHwgKG5vZGUtPmRvYyAhPSBkb2MpKSB7CisJICAgIC8qCisJICAgICAqIFRoZSBjb3BpZWQgbm9kZSB3aWxsIGdvIGludG8gYSBzZXBhcmF0ZSBkb2N1bWVudCwgc28KKwkgICAgICogdG8gYXZvaWQgZGFuZ2xpbmcgcmVmZXJlbmNlcyB0byB0aGUgRU5USVRZX0RFQ0wgbm9kZQorCSAgICAgKiB3ZSBjYW5ub3Qga2VlcCB0aGUgcmVmZXJlbmNlLiBUcnkgdG8gZmluZCBpdCBpbiB0aGUKKwkgICAgICogdGFyZ2V0IGRvY3VtZW50LgorCSAgICAgKi8KKwkgICAgcmV0LT5jaGlsZHJlbiA9ICh4bWxOb2RlUHRyKSB4bWxHZXREb2NFbnRpdHkoZG9jLCByZXQtPm5hbWUpOworCX0gZWxzZSB7CisgICAgICAgICAgICByZXQtPmNoaWxkcmVuID0gbm9kZS0+Y2hpbGRyZW47CisJfQorCXJldC0+bGFzdCA9IHJldC0+Y2hpbGRyZW47CisgICAgfSBlbHNlIGlmICgobm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgJiYgKGV4dGVuZGVkICE9IDIpKSB7CisgICAgICAgIHJldC0+Y2hpbGRyZW4gPSB4bWxTdGF0aWNDb3B5Tm9kZUxpc3Qobm9kZS0+Y2hpbGRyZW4sIGRvYywgcmV0KTsKKwlVUERBVEVfTEFTVF9DSElMRF9BTkRfUEFSRU5UKHJldCkKKyAgICB9CisKK291dDoKKyAgICAvKiBpZiBwYXJlbnQgIT0gTlVMTCB3ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlIG5vZGUgYWJvdmUgKi8KKyAgICBpZiAoKHBhcmVudCA9PSBOVUxMKSAmJgorICAgICAgICAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKSkKKwl4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoKHhtbE5vZGVQdHIpcmV0KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHhtbE5vZGVQdHIKK3htbFN0YXRpY0NvcHlOb2RlTGlzdCh4bWxOb2RlUHRyIG5vZGUsIHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgcGFyZW50KSB7CisgICAgeG1sTm9kZVB0ciByZXQgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgcCA9IE5VTEwscTsKKworICAgIHdoaWxlIChub2RlICE9IE5VTEwpIHsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisJaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0RURF9OT0RFICkgeworCSAgICBpZiAoZG9jID09IE5VTEwpIHsKKwkJbm9kZSA9IG5vZGUtPm5leHQ7CisJCWNvbnRpbnVlOworCSAgICB9CisJICAgIGlmIChkb2MtPmludFN1YnNldCA9PSBOVUxMKSB7CisJCXEgPSAoeG1sTm9kZVB0cikgeG1sQ29weUR0ZCggKHhtbER0ZFB0cikgbm9kZSApOworCQlxLT5kb2MgPSBkb2M7CisJCXEtPnBhcmVudCA9IHBhcmVudDsKKwkJZG9jLT5pbnRTdWJzZXQgPSAoeG1sRHRkUHRyKSBxOworCQl4bWxBZGRDaGlsZChwYXJlbnQsIHEpOworCSAgICB9IGVsc2UgeworCQlxID0gKHhtbE5vZGVQdHIpIGRvYy0+aW50U3Vic2V0OworCQl4bWxBZGRDaGlsZChwYXJlbnQsIHEpOworCSAgICB9CisJfSBlbHNlCisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCSAgICBxID0geG1sU3RhdGljQ29weU5vZGUobm9kZSwgZG9jLCBwYXJlbnQsIDEpOworCWlmIChyZXQgPT0gTlVMTCkgeworCSAgICBxLT5wcmV2ID0gTlVMTDsKKwkgICAgcmV0ID0gcCA9IHE7CisJfSBlbHNlIGlmIChwICE9IHEpIHsKKwkvKiB0aGUgdGVzdCBpcyByZXF1aXJlZCBpZiB4bWxTdGF0aWNDb3B5Tm9kZSBjb2FsZXNjZWQgMiB0ZXh0IG5vZGVzICovCisJICAgIHAtPm5leHQgPSBxOworCSAgICBxLT5wcmV2ID0gcDsKKwkgICAgcCA9IHE7CisJfQorCW5vZGUgPSBub2RlLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxDb3B5Tm9kZToKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBleHRlbmRlZDogICBpZiAxIGRvIGEgcmVjdXJzaXZlIGNvcHkgKHByb3BlcnRpZXMsIG5hbWVzcGFjZXMgYW5kIGNoaWxkcmVuCisgKgkJCXdoZW4gYXBwbGljYWJsZSkKKyAqCQlpZiAyIGNvcHkgcHJvcGVydGllcyBhbmQgbmFtZXNwYWNlcyAod2hlbiBhcHBsaWNhYmxlKQorICoKKyAqIERvIGEgY29weSBvZiB0aGUgbm9kZS4KKyAqCisgKiBSZXR1cm5zOiBhIG5ldyAjeG1sTm9kZVB0ciwgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxOb2RlUHRyCit4bWxDb3B5Tm9kZShjb25zdCB4bWxOb2RlUHRyIG5vZGUsIGludCBleHRlbmRlZCkgeworICAgIHhtbE5vZGVQdHIgcmV0OworCisgICAgcmV0ID0geG1sU3RhdGljQ29weU5vZGUobm9kZSwgTlVMTCwgTlVMTCwgZXh0ZW5kZWQpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbERvY0NvcHlOb2RlOgorICogQG5vZGU6ICB0aGUgbm9kZQorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGV4dGVuZGVkOiAgIGlmIDEgZG8gYSByZWN1cnNpdmUgY29weSAocHJvcGVydGllcywgbmFtZXNwYWNlcyBhbmQgY2hpbGRyZW4KKyAqCQkJd2hlbiBhcHBsaWNhYmxlKQorICoJCWlmIDIgY29weSBwcm9wZXJ0aWVzIGFuZCBuYW1lc3BhY2VzICh3aGVuIGFwcGxpY2FibGUpCisgKgorICogRG8gYSBjb3B5IG9mIHRoZSBub2RlIHRvIGEgZ2l2ZW4gZG9jdW1lbnQuCisgKgorICogUmV0dXJuczogYSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sTm9kZVB0cgoreG1sRG9jQ29weU5vZGUoY29uc3QgeG1sTm9kZVB0ciBub2RlLCB4bWxEb2NQdHIgZG9jLCBpbnQgZXh0ZW5kZWQpIHsKKyAgICB4bWxOb2RlUHRyIHJldDsKKworICAgIHJldCA9IHhtbFN0YXRpY0NvcHlOb2RlKG5vZGUsIGRvYywgTlVMTCwgZXh0ZW5kZWQpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbERvY0NvcHlOb2RlTGlzdDoKKyAqIEBkb2M6IHRoZSB0YXJnZXQgZG9jdW1lbnQKKyAqIEBub2RlOiAgdGhlIGZpcnN0IG5vZGUgaW4gdGhlIGxpc3QuCisgKgorICogRG8gYSByZWN1cnNpdmUgY29weSBvZiB0aGUgbm9kZSBsaXN0LgorICoKKyAqIFJldHVybnM6IGEgbmV3ICN4bWxOb2RlUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbE5vZGVQdHIgeG1sRG9jQ29weU5vZGVMaXN0KHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbE5vZGVQdHIgbm9kZSkgeworICAgIHhtbE5vZGVQdHIgcmV0ID0geG1sU3RhdGljQ29weU5vZGVMaXN0KG5vZGUsIGRvYywgTlVMTCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQ29weU5vZGVMaXN0OgorICogQG5vZGU6ICB0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdC4KKyAqCisgKiBEbyBhIHJlY3Vyc2l2ZSBjb3B5IG9mIHRoZSBub2RlIGxpc3QuCisgKiBVc2UgeG1sRG9jQ29weU5vZGVMaXN0KCkgaWYgcG9zc2libGUgdG8gZW5zdXJlIHN0cmluZyBpbnRlcm5pbmcuCisgKgorICogUmV0dXJuczogYSBuZXcgI3htbE5vZGVQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sTm9kZVB0ciB4bWxDb3B5Tm9kZUxpc3QoY29uc3QgeG1sTm9kZVB0ciBub2RlKSB7CisgICAgeG1sTm9kZVB0ciByZXQgPSB4bWxTdGF0aWNDb3B5Tm9kZUxpc3Qobm9kZSwgTlVMTCwgTlVMTCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisvKioKKyAqIHhtbENvcHlEdGQ6CisgKiBAZHRkOiAgdGhlIGR0ZAorICoKKyAqIERvIGEgY29weSBvZiB0aGUgZHRkLgorICoKKyAqIFJldHVybnM6IGEgbmV3ICN4bWxEdGRQdHIsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sRHRkUHRyCit4bWxDb3B5RHRkKHhtbER0ZFB0ciBkdGQpIHsKKyAgICB4bWxEdGRQdHIgcmV0OworICAgIHhtbE5vZGVQdHIgY3VyLCBwID0gTlVMTCwgcTsKKworICAgIGlmIChkdGQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHJldCA9IHhtbE5ld0R0ZChOVUxMLCBkdGQtPm5hbWUsIGR0ZC0+RXh0ZXJuYWxJRCwgZHRkLT5TeXN0ZW1JRCk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGR0ZC0+ZW50aXRpZXMgIT0gTlVMTCkKKyAgICAgICAgcmV0LT5lbnRpdGllcyA9ICh2b2lkICopIHhtbENvcHlFbnRpdGllc1RhYmxlKAorCSAgICAgICAgICAgICAgICAgICAgKHhtbEVudGl0aWVzVGFibGVQdHIpIGR0ZC0+ZW50aXRpZXMpOworICAgIGlmIChkdGQtPm5vdGF0aW9ucyAhPSBOVUxMKQorICAgICAgICByZXQtPm5vdGF0aW9ucyA9ICh2b2lkICopIHhtbENvcHlOb3RhdGlvblRhYmxlKAorCSAgICAgICAgICAgICAgICAgICAgKHhtbE5vdGF0aW9uVGFibGVQdHIpIGR0ZC0+bm90YXRpb25zKTsKKyAgICBpZiAoZHRkLT5lbGVtZW50cyAhPSBOVUxMKQorICAgICAgICByZXQtPmVsZW1lbnRzID0gKHZvaWQgKikgeG1sQ29weUVsZW1lbnRUYWJsZSgKKwkgICAgICAgICAgICAgICAgICAgICh4bWxFbGVtZW50VGFibGVQdHIpIGR0ZC0+ZWxlbWVudHMpOworICAgIGlmIChkdGQtPmF0dHJpYnV0ZXMgIT0gTlVMTCkKKyAgICAgICAgcmV0LT5hdHRyaWJ1dGVzID0gKHZvaWQgKikgeG1sQ29weUF0dHJpYnV0ZVRhYmxlKAorCSAgICAgICAgICAgICAgICAgICAgKHhtbEF0dHJpYnV0ZVRhYmxlUHRyKSBkdGQtPmF0dHJpYnV0ZXMpOworICAgIGlmIChkdGQtPnBlbnRpdGllcyAhPSBOVUxMKQorCXJldC0+cGVudGl0aWVzID0gKHZvaWQgKikgeG1sQ29weUVudGl0aWVzVGFibGUoCisJCQkgICAgKHhtbEVudGl0aWVzVGFibGVQdHIpIGR0ZC0+cGVudGl0aWVzKTsKKworICAgIGN1ciA9IGR0ZC0+Y2hpbGRyZW47CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJcSA9IE5VTEw7CisKKwlpZiAoY3VyLT50eXBlID09IFhNTF9FTlRJVFlfREVDTCkgeworCSAgICB4bWxFbnRpdHlQdHIgdG1wID0gKHhtbEVudGl0eVB0cikgY3VyOworCSAgICBzd2l0Y2ggKHRtcC0+ZXR5cGUpIHsKKwkJY2FzZSBYTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFk6CisJCWNhc2UgWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWToKKwkJY2FzZSBYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFk6CisJCSAgICBxID0gKHhtbE5vZGVQdHIpIHhtbEdldEVudGl0eUZyb21EdGQocmV0LCB0bXAtPm5hbWUpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJCWNhc2UgWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisJCSAgICBxID0gKHhtbE5vZGVQdHIpCisJCQl4bWxHZXRQYXJhbWV0ZXJFbnRpdHlGcm9tRHRkKHJldCwgdG1wLT5uYW1lKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWToKKwkJICAgIGJyZWFrOworCSAgICB9CisJfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfREVDTCkgeworCSAgICB4bWxFbGVtZW50UHRyIHRtcCA9ICh4bWxFbGVtZW50UHRyKSBjdXI7CisJICAgIHEgPSAoeG1sTm9kZVB0cikKKwkJeG1sR2V0RHRkUUVsZW1lbnREZXNjKHJldCwgdG1wLT5uYW1lLCB0bXAtPnByZWZpeCk7CisJfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9ERUNMKSB7CisJICAgIHhtbEF0dHJpYnV0ZVB0ciB0bXAgPSAoeG1sQXR0cmlidXRlUHRyKSBjdXI7CisJICAgIHEgPSAoeG1sTm9kZVB0cikKKwkJeG1sR2V0RHRkUUF0dHJEZXNjKHJldCwgdG1wLT5lbGVtLCB0bXAtPm5hbWUsIHRtcC0+cHJlZml4KTsKKwl9IGVsc2UgaWYgKGN1ci0+dHlwZSA9PSBYTUxfQ09NTUVOVF9OT0RFKSB7CisJICAgIHEgPSB4bWxDb3B5Tm9kZShjdXIsIDApOworCX0KKworCWlmIChxID09IE5VTEwpIHsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCSAgICBjb250aW51ZTsKKwl9CisKKwlpZiAocCA9PSBOVUxMKQorCSAgICByZXQtPmNoaWxkcmVuID0gcTsKKwllbHNlCisJICAgIHAtPm5leHQgPSBxOworCisJcS0+cHJldiA9IHA7CisJcS0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIHJldDsKKwlxLT5uZXh0ID0gTlVMTDsKKwlyZXQtPmxhc3QgPSBxOworCXAgPSBxOworCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQpCisvKioKKyAqIHhtbENvcHlEb2M6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAcmVjdXJzaXZlOiAgaWYgbm90IHplcm8gZG8gYSByZWN1cnNpdmUgY29weS4KKyAqCisgKiBEbyBhIGNvcHkgb2YgdGhlIGRvY3VtZW50IGluZm8uIElmIHJlY3Vyc2l2ZSwgdGhlIGNvbnRlbnQgdHJlZSB3aWxsCisgKiBiZSBjb3BpZWQgdG9vIGFzIHdlbGwgYXMgRFRELCBuYW1lc3BhY2VzIGFuZCBlbnRpdGllcy4KKyAqCisgKiBSZXR1cm5zOiBhIG5ldyAjeG1sRG9jUHRyLCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbERvY1B0cgoreG1sQ29weURvYyh4bWxEb2NQdHIgZG9jLCBpbnQgcmVjdXJzaXZlKSB7CisgICAgeG1sRG9jUHRyIHJldDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHJldCA9IHhtbE5ld0RvYyhkb2MtPnZlcnNpb24pOworICAgIGlmIChyZXQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChkb2MtPm5hbWUgIT0gTlVMTCkKKyAgICAgICAgcmV0LT5uYW1lID0geG1sTWVtU3RyZHVwKGRvYy0+bmFtZSk7CisgICAgaWYgKGRvYy0+ZW5jb2RpbmcgIT0gTlVMTCkKKyAgICAgICAgcmV0LT5lbmNvZGluZyA9IHhtbFN0cmR1cChkb2MtPmVuY29kaW5nKTsKKyAgICBpZiAoZG9jLT5VUkwgIT0gTlVMTCkKKyAgICAgICAgcmV0LT5VUkwgPSB4bWxTdHJkdXAoZG9jLT5VUkwpOworICAgIHJldC0+Y2hhcnNldCA9IGRvYy0+Y2hhcnNldDsKKyAgICByZXQtPmNvbXByZXNzaW9uID0gZG9jLT5jb21wcmVzc2lvbjsKKyAgICByZXQtPnN0YW5kYWxvbmUgPSBkb2MtPnN0YW5kYWxvbmU7CisgICAgaWYgKCFyZWN1cnNpdmUpIHJldHVybihyZXQpOworCisgICAgcmV0LT5sYXN0ID0gTlVMTDsKKyAgICByZXQtPmNoaWxkcmVuID0gTlVMTDsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaWYgKGRvYy0+aW50U3Vic2V0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0LT5pbnRTdWJzZXQgPSB4bWxDb3B5RHRkKGRvYy0+aW50U3Vic2V0KTsKKwl4bWxTZXRUcmVlRG9jKCh4bWxOb2RlUHRyKXJldC0+aW50U3Vic2V0LCByZXQpOworCXJldC0+aW50U3Vic2V0LT5wYXJlbnQgPSByZXQ7CisgICAgfQorI2VuZGlmCisgICAgaWYgKGRvYy0+b2xkTnMgIT0gTlVMTCkKKyAgICAgICAgcmV0LT5vbGROcyA9IHhtbENvcHlOYW1lc3BhY2VMaXN0KGRvYy0+b2xkTnMpOworICAgIGlmIChkb2MtPmNoaWxkcmVuICE9IE5VTEwpIHsKKwl4bWxOb2RlUHRyIHRtcDsKKworCXJldC0+Y2hpbGRyZW4gPSB4bWxTdGF0aWNDb3B5Tm9kZUxpc3QoZG9jLT5jaGlsZHJlbiwgcmV0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbE5vZGVQdHIpcmV0KTsKKwlyZXQtPmxhc3QgPSBOVUxMOworCXRtcCA9IHJldC0+Y2hpbGRyZW47CisJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJICAgIGlmICh0bXAtPm5leHQgPT0gTlVMTCkKKwkgICAgICAgIHJldC0+bGFzdCA9IHRtcDsKKwkgICAgdG1wID0gdG1wLT5uZXh0OworCX0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlDb250ZW50IGFjY2VzcyBmdW5jdGlvbnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbEdldExpbmVObzoKKyAqIEBub2RlOiB2YWxpZCBub2RlCisgKgorICogR2V0IGxpbmUgbnVtYmVyIG9mIEBub2RlLiBUaGlzIHJlcXVpcmVzIGFjdGl2YXRpb24gb2YgdGhpcyBvcHRpb24KKyAqIGJlZm9yZSBpbnZva2luZyB0aGUgcGFyc2VyIGJ5IGNhbGxpbmcgeG1sTGluZU51bWJlcnNEZWZhdWx0KDEpCisgKgorICogUmV0dXJucyB0aGUgbGluZSBudW1iZXIgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlCisgKi8KK2xvbmcKK3htbEdldExpbmVObyh4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgbG9uZyByZXN1bHQgPSAtMTsKKworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKyAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKwkobm9kZS0+dHlwZSA9PSBYTUxfQ09NTUVOVF9OT0RFKSB8fAorCShub2RlLT50eXBlID09IFhNTF9QSV9OT0RFKSkKKyAgICAgICAgcmVzdWx0ID0gKGxvbmcpIG5vZGUtPmxpbmU7CisgICAgZWxzZSBpZiAoKG5vZGUtPnByZXYgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAoKG5vZGUtPnByZXYtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKwkgICAgICAobm9kZS0+cHJldi0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorCSAgICAgIChub2RlLT5wcmV2LT50eXBlID09IFhNTF9DT01NRU5UX05PREUpIHx8CisJICAgICAgKG5vZGUtPnByZXYtPnR5cGUgPT0gWE1MX1BJX05PREUpKSkKKyAgICAgICAgcmVzdWx0ID0geG1sR2V0TGluZU5vKG5vZGUtPnByZXYpOworICAgIGVsc2UgaWYgKChub2RlLT5wYXJlbnQgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAobm9kZS0+cGFyZW50LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKQorICAgICAgICByZXN1bHQgPSB4bWxHZXRMaW5lTm8obm9kZS0+cGFyZW50KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisvKioKKyAqIHhtbEdldE5vZGVQYXRoOgorICogQG5vZGU6IGEgbm9kZQorICoKKyAqIEJ1aWxkIGEgc3RydWN0dXJlIGJhc2VkIFBhdGggZm9yIHRoZSBnaXZlbiBub2RlCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhdGggb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBUaGUgY2FsbGVyIG11c3QgZnJlZQorICogICAgIHRoZSByZXR1cm5lZCBzdHJpbmcKKyAqLworeG1sQ2hhciAqCit4bWxHZXROb2RlUGF0aCh4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sTm9kZVB0ciBjdXIsIHRtcCwgbmV4dDsKKyAgICB4bWxDaGFyICpidWZmZXIgPSBOVUxMLCAqdGVtcDsKKyAgICBzaXplX3QgYnVmX2xlbjsKKyAgICB4bWxDaGFyICpidWY7CisgICAgY29uc3QgY2hhciAqc2VwOworICAgIGNvbnN0IGNoYXIgKm5hbWU7CisgICAgY2hhciBuYW1ldGVtcFsxMDBdOworICAgIGludCBvY2N1ciA9IDAsIGdlbmVyaWM7CisKKyAgICBpZiAobm9kZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgYnVmX2xlbiA9IDUwMDsKKyAgICBidWZmZXIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoYnVmX2xlbiAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisJeG1sVHJlZUVyck1lbW9yeSgiZ2V0dGluZyBub2RlIHBhdGgiKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgYnVmID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKGJ1Zl9sZW4gKiBzaXplb2YoeG1sQ2hhcikpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImdldHRpbmcgbm9kZSBwYXRoIik7CisgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICBidWZmZXJbMF0gPSAwOworICAgIGN1ciA9IG5vZGU7CisgICAgZG8geworICAgICAgICBuYW1lID0gIiI7CisgICAgICAgIHNlcCA9ICI/IjsKKyAgICAgICAgb2NjdXIgPSAwOworICAgICAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpIHsKKyAgICAgICAgICAgIGlmIChidWZmZXJbMF0gPT0gJy8nKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgc2VwID0gIi8iOworICAgICAgICAgICAgbmV4dCA9IE5VTEw7CisgICAgICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgZ2VuZXJpYyA9IDA7CisgICAgICAgICAgICBzZXAgPSAiLyI7CisgICAgICAgICAgICBuYW1lID0gKGNvbnN0IGNoYXIgKikgY3VyLT5uYW1lOworICAgICAgICAgICAgaWYgKGN1ci0+bnMpIHsKKwkJaWYgKGN1ci0+bnMtPnByZWZpeCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHNucHJpbnRmKG5hbWV0ZW1wLCBzaXplb2YobmFtZXRlbXApIC0gMSwgIiVzOiVzIiwKKwkJCShjaGFyICopY3VyLT5ucy0+cHJlZml4LCAoY2hhciAqKWN1ci0+bmFtZSk7CisJCSAgICBuYW1ldGVtcFtzaXplb2YobmFtZXRlbXApIC0gMV0gPSAwOworCQkgICAgbmFtZSA9IG5hbWV0ZW1wOworCQl9IGVsc2UgeworCQkgICAgLyoKKwkJICAgICogV2UgY2Fubm90IGV4cHJlc3MgbmFtZWQgZWxlbWVudHMgaW4gdGhlIGRlZmF1bHQKKwkJICAgICogbmFtZXNwYWNlLCBzbyB1c2UgIioiLgorCQkgICAgKi8KKwkJICAgIGdlbmVyaWMgPSAxOworCQkgICAgbmFtZSA9ICIqIjsKKwkJfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbmV4dCA9IGN1ci0+cGFyZW50OworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogVGh1bWJsZXIgaW5kZXggY29tcHV0YXRpb24KKwkgICAgICogVE9ETzogdGhlIG9jdXJlbmNlIHRlc3Qgc2VlbXMgYm9ndXMgZm9yIG5hbWVzcGFjZWQgbmFtZXMKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdG1wID0gY3VyLT5wcmV2OworICAgICAgICAgICAgd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaWYgKCh0bXAtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkJICAgIChnZW5lcmljIHx8CisJCSAgICAgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgdG1wLT5uYW1lKSAmJgorCQkgICAgICgodG1wLT5ucyA9PSBjdXItPm5zKSB8fAorCQkgICAgICAoKHRtcC0+bnMgIT0gTlVMTCkgJiYgKGN1ci0+bnMgIT0gTlVMTCkgJiYKKwkJICAgICAgICh4bWxTdHJFcXVhbChjdXItPm5zLT5wcmVmaXgsIHRtcC0+bnMtPnByZWZpeCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgb2NjdXIrKzsKKyAgICAgICAgICAgICAgICB0bXAgPSB0bXAtPnByZXY7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2NjdXIgPT0gMCkgeworICAgICAgICAgICAgICAgIHRtcCA9IGN1ci0+bmV4dDsKKyAgICAgICAgICAgICAgICB3aGlsZSAodG1wICE9IE5VTEwgJiYgb2NjdXIgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHRtcC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkJKGdlbmVyaWMgfHwKKwkJCSAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCB0bXAtPm5hbWUpICYmCisJCQkgKCh0bXAtPm5zID09IGN1ci0+bnMpIHx8CisJCQkgICgodG1wLT5ucyAhPSBOVUxMKSAmJiAoY3VyLT5ucyAhPSBOVUxMKSAmJgorCQkJICAgKHhtbFN0ckVxdWFsKGN1ci0+bnMtPnByZWZpeCwgdG1wLT5ucy0+cHJlZml4KSkpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgb2NjdXIrKzsKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2NjdXIgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgb2NjdXIgPSAxOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgb2NjdXIrKzsKKyAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX0NPTU1FTlRfTk9ERSkgeworICAgICAgICAgICAgc2VwID0gIi8iOworCSAgICBuYW1lID0gImNvbW1lbnQoKSI7CisgICAgICAgICAgICBuZXh0ID0gY3VyLT5wYXJlbnQ7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaHVtYmxlciBpbmRleCBjb21wdXRhdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB0bXAgPSBjdXItPnByZXY7CisgICAgICAgICAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAodG1wLT50eXBlID09IFhNTF9DT01NRU5UX05PREUpCisJCSAgICBvY2N1cisrOworICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+cHJldjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvY2N1ciA9PSAwKSB7CisgICAgICAgICAgICAgICAgdG1wID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgIHdoaWxlICh0bXAgIT0gTlVMTCAmJiBvY2N1ciA9PSAwKSB7CisJCSAgaWYgKHRtcC0+dHlwZSA9PSBYTUxfQ09NTUVOVF9OT0RFKQorCQkgICAgb2NjdXIrKzsKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5uZXh0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2NjdXIgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgb2NjdXIgPSAxOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgb2NjdXIrKzsKKyAgICAgICAgfSBlbHNlIGlmICgoY3VyLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSkgeworICAgICAgICAgICAgc2VwID0gIi8iOworCSAgICBuYW1lID0gInRleHQoKSI7CisgICAgICAgICAgICBuZXh0ID0gY3VyLT5wYXJlbnQ7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaHVtYmxlciBpbmRleCBjb21wdXRhdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB0bXAgPSBjdXItPnByZXY7CisgICAgICAgICAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHRtcC0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorCQkgICAgKHRtcC0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSkKKwkJICAgIG9jY3VyKys7CisgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5wcmV2OworICAgICAgICAgICAgfQorCSAgICAvKgorCSAgICAqIEV2YWx1YXRlIGlmIHRoaXMgaXMgdGhlIG9ubHkgdGV4dC0gb3IgQ0RBVEEtc2VjdGlvbi1ub2RlOworCSAgICAqIGlmIHllcywgdGhlbiB3ZSdsbCBnZXQgInRleHQoKSIsIG90aGVyd2lzZSAidGV4dCgpWzFdIi4KKwkgICAgKi8KKyAgICAgICAgICAgIGlmIChvY2N1ciA9PSAwKSB7CisgICAgICAgICAgICAgICAgdG1wID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgIHdoaWxlICh0bXAgIT0gTlVMTCkgeworCQkgICAgaWYgKCh0bXAtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKwkJCSh0bXAtPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpCisJCSAgICB7CisJCQlvY2N1ciA9IDE7CisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwkJfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgb2NjdXIrKzsKKyAgICAgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gWE1MX1BJX05PREUpIHsKKyAgICAgICAgICAgIHNlcCA9ICIvIjsKKwkgICAgc25wcmludGYobmFtZXRlbXAsIHNpemVvZihuYW1ldGVtcCkgLSAxLAorCQkgICAgICJwcm9jZXNzaW5nLWluc3RydWN0aW9uKCclcycpIiwgKGNoYXIgKiljdXItPm5hbWUpOworICAgICAgICAgICAgbmFtZXRlbXBbc2l6ZW9mKG5hbWV0ZW1wKSAtIDFdID0gMDsKKyAgICAgICAgICAgIG5hbWUgPSBuYW1ldGVtcDsKKworCSAgICBuZXh0ID0gY3VyLT5wYXJlbnQ7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaHVtYmxlciBpbmRleCBjb21wdXRhdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB0bXAgPSBjdXItPnByZXY7CisgICAgICAgICAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHRtcC0+dHlwZSA9PSBYTUxfUElfTk9ERSkgJiYKKwkJICAgICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIHRtcC0+bmFtZSkpKQorICAgICAgICAgICAgICAgICAgICBvY2N1cisrOworICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+cHJldjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvY2N1ciA9PSAwKSB7CisgICAgICAgICAgICAgICAgdG1wID0gY3VyLT5uZXh0OworICAgICAgICAgICAgICAgIHdoaWxlICh0bXAgIT0gTlVMTCAmJiBvY2N1ciA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgodG1wLT50eXBlID09IFhNTF9QSV9OT0RFKSAmJgorCQkJKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgdG1wLT5uYW1lKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBvY2N1cisrOworICAgICAgICAgICAgICAgICAgICB0bXAgPSB0bXAtPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChvY2N1ciAhPSAwKQorICAgICAgICAgICAgICAgICAgICBvY2N1ciA9IDE7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBvY2N1cisrOworCisgICAgICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworICAgICAgICAgICAgc2VwID0gIi9AIjsKKyAgICAgICAgICAgIG5hbWUgPSAoY29uc3QgY2hhciAqKSAoKCh4bWxBdHRyUHRyKSBjdXIpLT5uYW1lKTsKKyAgICAgICAgICAgIGlmIChjdXItPm5zKSB7CisJICAgICAgICBpZiAoY3VyLT5ucy0+cHJlZml4ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIHNucHJpbnRmKG5hbWV0ZW1wLCBzaXplb2YobmFtZXRlbXApIC0gMSwgIiVzOiVzIiwKKwkJCShjaGFyICopY3VyLT5ucy0+cHJlZml4LCAoY2hhciAqKWN1ci0+bmFtZSk7CisJCWVsc2UKKwkJICAgIHNucHJpbnRmKG5hbWV0ZW1wLCBzaXplb2YobmFtZXRlbXApIC0gMSwgIiVzIiwKKwkJCShjaGFyICopY3VyLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBuYW1ldGVtcFtzaXplb2YobmFtZXRlbXApIC0gMV0gPSAwOworICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1ldGVtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5leHQgPSAoKHhtbEF0dHJQdHIpIGN1ciktPnBhcmVudDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5leHQgPSBjdXItPnBhcmVudDsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIE1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbQorICAgICAgICAgKi8KKyAgICAgICAgaWYgKHhtbFN0cmxlbihidWZmZXIpICsgc2l6ZW9mKG5hbWV0ZW1wKSArIDIwID4gYnVmX2xlbikgeworICAgICAgICAgICAgYnVmX2xlbiA9CisgICAgICAgICAgICAgICAgMiAqIGJ1Zl9sZW4gKyB4bWxTdHJsZW4oYnVmZmVyKSArIHNpemVvZihuYW1ldGVtcCkgKyAyMDsKKyAgICAgICAgICAgIHRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1ZmZlciwgYnVmX2xlbik7CisgICAgICAgICAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisJCXhtbFRyZWVFcnJNZW1vcnkoImdldHRpbmcgbm9kZSBwYXRoIik7CisgICAgICAgICAgICAgICAgeG1sRnJlZShidWYpOworICAgICAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmZmVyID0gdGVtcDsKKyAgICAgICAgICAgIHRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGJ1ZiwgYnVmX2xlbik7CisgICAgICAgICAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisJCXhtbFRyZWVFcnJNZW1vcnkoImdldHRpbmcgbm9kZSBwYXRoIik7CisgICAgICAgICAgICAgICAgeG1sRnJlZShidWYpOworICAgICAgICAgICAgICAgIHhtbEZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXIgPT0gMCkKKyAgICAgICAgICAgIHNucHJpbnRmKChjaGFyICopIGJ1ZiwgYnVmX2xlbiwgIiVzJXMlcyIsCisgICAgICAgICAgICAgICAgICAgICBzZXAsIG5hbWUsIChjaGFyICopIGJ1ZmZlcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNucHJpbnRmKChjaGFyICopIGJ1ZiwgYnVmX2xlbiwgIiVzJXNbJWRdJXMiLAorICAgICAgICAgICAgICAgICAgICAgc2VwLCBuYW1lLCBvY2N1ciwgKGNoYXIgKikgYnVmZmVyKTsKKyAgICAgICAgc25wcmludGYoKGNoYXIgKikgYnVmZmVyLCBidWZfbGVuLCAiJXMiLCAoY2hhciAqKWJ1Zik7CisgICAgICAgIGN1ciA9IG5leHQ7CisgICAgfSB3aGlsZSAoY3VyICE9IE5VTEwpOworICAgIHhtbEZyZWUoYnVmKTsKKyAgICByZXR1cm4gKGJ1ZmZlcik7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbERvY0dldFJvb3RFbGVtZW50OgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICoKKyAqIEdldCB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZSBkb2N1bWVudCAoZG9jLT5jaGlsZHJlbiBpcyBhIGxpc3QKKyAqIGNvbnRhaW5pbmcgcG9zc2libHkgY29tbWVudHMsIFBJcywgZXRjIC4uLikuCisgKgorICogUmV0dXJucyB0aGUgI3htbE5vZGVQdHIgZm9yIHRoZSByb290IG9yIE5VTEwKKyAqLworeG1sTm9kZVB0cgoreG1sRG9jR2V0Um9vdEVsZW1lbnQoeG1sRG9jUHRyIGRvYykgeworICAgIHhtbE5vZGVQdHIgcmV0OworCisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgcmV0ID0gZG9jLT5jaGlsZHJlbjsKKyAgICB3aGlsZSAocmV0ICE9IE5VTEwpIHsKKwlpZiAocmV0LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisJICAgIHJldHVybihyZXQpOworICAgICAgICByZXQgPSByZXQtPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisjaWYgZGVmaW5lZChMSUJYTUxfVFJFRV9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9XUklURVJfRU5BQkxFRCkKKy8qKgorICogeG1sRG9jU2V0Um9vdEVsZW1lbnQ6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAcm9vdDogIHRoZSBuZXcgZG9jdW1lbnQgcm9vdCBlbGVtZW50LCBpZiByb290IGlzIE5VTEwgbm8gYWN0aW9uIGlzIHRha2VuLAorICogICAgICAgICB0byByZW1vdmUgYSBub2RlIGZyb20gYSBkb2N1bWVudCB1c2UgeG1sVW5saW5rTm9kZShyb290KSBpbnN0ZWFkLgorICoKKyAqIFNldCB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZSBkb2N1bWVudCAoZG9jLT5jaGlsZHJlbiBpcyBhIGxpc3QKKyAqIGNvbnRhaW5pbmcgcG9zc2libHkgY29tbWVudHMsIFBJcywgZXRjIC4uLikuCisgKgorICogUmV0dXJucyB0aGUgb2xkIHJvb3QgZWxlbWVudCBpZiBhbnkgd2FzIGZvdW5kLCBOVUxMIGlmIHJvb3Qgd2FzIE5VTEwKKyAqLworeG1sTm9kZVB0cgoreG1sRG9jU2V0Um9vdEVsZW1lbnQoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciByb290KSB7CisgICAgeG1sTm9kZVB0ciBvbGQgPSBOVUxMOworCisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKHJvb3QgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgeG1sVW5saW5rTm9kZShyb290KTsKKyAgICB4bWxTZXRUcmVlRG9jKHJvb3QsIGRvYyk7CisgICAgcm9vdC0+cGFyZW50ID0gKHhtbE5vZGVQdHIpIGRvYzsKKyAgICBvbGQgPSBkb2MtPmNoaWxkcmVuOworICAgIHdoaWxlIChvbGQgIT0gTlVMTCkgeworCWlmIChvbGQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkgICAgYnJlYWs7CisgICAgICAgIG9sZCA9IG9sZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKG9sZCA9PSBOVUxMKSB7CisJaWYgKGRvYy0+Y2hpbGRyZW4gPT0gTlVMTCkgeworCSAgICBkb2MtPmNoaWxkcmVuID0gcm9vdDsKKwkgICAgZG9jLT5sYXN0ID0gcm9vdDsKKwl9IGVsc2UgeworCSAgICB4bWxBZGRTaWJsaW5nKGRvYy0+Y2hpbGRyZW4sIHJvb3QpOworCX0KKyAgICB9IGVsc2UgeworCXhtbFJlcGxhY2VOb2RlKG9sZCwgcm9vdCk7CisgICAgfQorICAgIHJldHVybihvbGQpOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpCisvKioKKyAqIHhtbE5vZGVTZXRMYW5nOgorICogQGN1cjogIHRoZSBub2RlIGJlaW5nIGNoYW5nZWQKKyAqIEBsYW5nOiAgdGhlIGxhbmd1YWdlIGRlc2NyaXB0aW9uCisgKgorICogU2V0IHRoZSBsYW5ndWFnZSBvZiBhIG5vZGUsIGkuZS4gdGhlIHZhbHVlcyBvZiB0aGUgeG1sOmxhbmcKKyAqIGF0dHJpYnV0ZS4KKyAqLwordm9pZAoreG1sTm9kZVNldExhbmcoeG1sTm9kZVB0ciBjdXIsIGNvbnN0IHhtbENoYXIgKmxhbmcpIHsKKyAgICB4bWxOc1B0ciBuczsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIHN3aXRjaChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRFREX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorCWNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKwljYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwljYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwljYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgYnJlYWs7CisgICAgfQorICAgIG5zID0geG1sU2VhcmNoTnNCeUhyZWYoY3VyLT5kb2MsIGN1ciwgWE1MX1hNTF9OQU1FU1BBQ0UpOworICAgIGlmIChucyA9PSBOVUxMKQorCXJldHVybjsKKyAgICB4bWxTZXROc1Byb3AoY3VyLCBucywgQkFEX0NBU1QgImxhbmciLCBsYW5nKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKy8qKgorICogeG1sTm9kZUdldExhbmc6CisgKiBAY3VyOiAgdGhlIG5vZGUgYmVpbmcgY2hlY2tlZAorICoKKyAqIFNlYXJjaGVzIHRoZSBsYW5ndWFnZSBvZiBhIG5vZGUsIGkuZS4gdGhlIHZhbHVlcyBvZiB0aGUgeG1sOmxhbmcKKyAqIGF0dHJpYnV0ZSBvciB0aGUgb25lIGNhcnJpZWQgYnkgdGhlIG5lYXJlc3QgYW5jZXN0b3IuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGxhbmcgdmFsdWUsIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKiAgICAgSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4KKyAqLworeG1sQ2hhciAqCit4bWxOb2RlR2V0TGFuZyh4bWxOb2RlUHRyIGN1cikgeworICAgIHhtbENoYXIgKmxhbmc7CisKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgbGFuZyA9IHhtbEdldE5zUHJvcChjdXIsIEJBRF9DQVNUICJsYW5nIiwgWE1MX1hNTF9OQU1FU1BBQ0UpOworCWlmIChsYW5nICE9IE5VTEwpCisJICAgIHJldHVybihsYW5nKTsKKwljdXIgPSBjdXItPnBhcmVudDsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisvKioKKyAqIHhtbE5vZGVTZXRTcGFjZVByZXNlcnZlOgorICogQGN1cjogIHRoZSBub2RlIGJlaW5nIGNoYW5nZWQKKyAqIEB2YWw6ICB0aGUgeG1sOnNwYWNlIHZhbHVlICgiMCI6IGRlZmF1bHQsIDE6ICJwcmVzZXJ2ZSIpCisgKgorICogU2V0IChvciByZXNldCkgdGhlIHNwYWNlIHByZXNlcnZpbmcgYmVoYXZpb3VyIG9mIGEgbm9kZSwgaS5lLiB0aGUKKyAqIHZhbHVlIG9mIHRoZSB4bWw6c3BhY2UgYXR0cmlidXRlLgorICovCit2b2lkCit4bWxOb2RlU2V0U3BhY2VQcmVzZXJ2ZSh4bWxOb2RlUHRyIGN1ciwgaW50IHZhbCkgeworICAgIHhtbE5zUHRyIG5zOworCisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm47CisgICAgc3dpdGNoKGN1ci0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfTk9UQVRJT05fTk9ERToKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisJY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKwljYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwkgICAgcmV0dXJuOworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICBicmVhazsKKyAgICB9CisgICAgbnMgPSB4bWxTZWFyY2hOc0J5SHJlZihjdXItPmRvYywgY3VyLCBYTUxfWE1MX05BTUVTUEFDRSk7CisgICAgaWYgKG5zID09IE5VTEwpCisJcmV0dXJuOworICAgIHN3aXRjaCAodmFsKSB7CisgICAgY2FzZSAwOgorCXhtbFNldE5zUHJvcChjdXIsIG5zLCBCQURfQ0FTVCAic3BhY2UiLCBCQURfQ0FTVCAiZGVmYXVsdCIpOworCWJyZWFrOworICAgIGNhc2UgMToKKwl4bWxTZXROc1Byb3AoY3VyLCBucywgQkFEX0NBU1QgInNwYWNlIiwgQkFEX0NBU1QgInByZXNlcnZlIik7CisJYnJlYWs7CisgICAgfQorfQorI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZToKKyAqIEBjdXI6ICB0aGUgbm9kZSBiZWluZyBjaGVja2VkCisgKgorICogU2VhcmNoZXMgdGhlIHNwYWNlIHByZXNlcnZpbmcgYmVoYXZpb3VyIG9mIGEgbm9kZSwgaS5lLiB0aGUgdmFsdWVzCisgKiBvZiB0aGUgeG1sOnNwYWNlIGF0dHJpYnV0ZSBvciB0aGUgb25lIGNhcnJpZWQgYnkgdGhlIG5lYXJlc3QKKyAqIGFuY2VzdG9yLgorICoKKyAqIFJldHVybnMgLTEgaWYgeG1sOnNwYWNlIGlzIG5vdCBpbmhlcml0ZWQsIDAgaWYgImRlZmF1bHQiLCAxIGlmICJwcmVzZXJ2ZSIKKyAqLworaW50Cit4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZSh4bWxOb2RlUHRyIGN1cikgeworICAgIHhtbENoYXIgKnNwYWNlOworCisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJc3BhY2UgPSB4bWxHZXROc1Byb3AoY3VyLCBCQURfQ0FTVCAic3BhY2UiLCBYTUxfWE1MX05BTUVTUEFDRSk7CisJaWYgKHNwYWNlICE9IE5VTEwpIHsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKHNwYWNlLCBCQURfQ0FTVCAicHJlc2VydmUiKSkgeworCQl4bWxGcmVlKHNwYWNlKTsKKwkJcmV0dXJuKDEpOworCSAgICB9CisJICAgIGlmICh4bWxTdHJFcXVhbChzcGFjZSwgQkFEX0NBU1QgImRlZmF1bHQiKSkgeworCQl4bWxGcmVlKHNwYWNlKTsKKwkJcmV0dXJuKDApOworCSAgICB9CisJICAgIHhtbEZyZWUoc3BhY2UpOworCX0KKwljdXIgPSBjdXItPnBhcmVudDsKKyAgICB9CisgICAgcmV0dXJuKC0xKTsKK30KKworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKy8qKgorICogeG1sTm9kZVNldE5hbWU6CisgKiBAY3VyOiAgdGhlIG5vZGUgYmVpbmcgY2hhbmdlZAorICogQG5hbWU6ICB0aGUgbmV3IHRhZyBuYW1lCisgKgorICogU2V0IChvciByZXNldCkgdGhlIG5hbWUgb2YgYSBub2RlLgorICovCit2b2lkCit4bWxOb2RlU2V0TmFtZSh4bWxOb2RlUHRyIGN1ciwgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sRGljdFB0ciBkaWN0OworCisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgcmV0dXJuOworICAgIHN3aXRjaChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKwljYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwljYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwljYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCWNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorCSAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIGRvYyA9IGN1ci0+ZG9jOworICAgIGlmIChkb2MgIT0gTlVMTCkKKwlkaWN0ID0gZG9jLT5kaWN0OworICAgIGVsc2UKKyAgICAgICAgZGljdCA9IE5VTEw7CisgICAgaWYgKGRpY3QgIT0gTlVMTCkgeworICAgICAgICBpZiAoKGN1ci0+bmFtZSAhPSBOVUxMKSAmJiAoIXhtbERpY3RPd25zKGRpY3QsIGN1ci0+bmFtZSkpKQorCSAgICB4bWxGcmVlKCh4bWxDaGFyICopIGN1ci0+bmFtZSk7CisJY3VyLT5uYW1lID0geG1sRGljdExvb2t1cChkaWN0LCBuYW1lLCAtMSk7CisgICAgfSBlbHNlIHsKKwlpZiAoY3VyLT5uYW1lICE9IE5VTEwpIHhtbEZyZWUoKHhtbENoYXIgKikgY3VyLT5uYW1lKTsKKwljdXItPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisgICAgfQorfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hJTkNMVURFX0VOQUJMRUQpCisvKioKKyAqIHhtbE5vZGVTZXRCYXNlOgorICogQGN1cjogIHRoZSBub2RlIGJlaW5nIGNoYW5nZWQKKyAqIEB1cmk6ICB0aGUgbmV3IGJhc2UgVVJJCisgKgorICogU2V0IChvciByZXNldCkgdGhlIGJhc2UgVVJJIG9mIGEgbm9kZSwgaS5lLiB0aGUgdmFsdWUgb2YgdGhlCisgKiB4bWw6YmFzZSBhdHRyaWJ1dGUuCisgKi8KK3ZvaWQKK3htbE5vZGVTZXRCYXNlKHhtbE5vZGVQdHIgY3VyLCBjb25zdCB4bWxDaGFyKiB1cmkpIHsKKyAgICB4bWxOc1B0ciBuczsKKyAgICB4bWxDaGFyKiBmaXhlZDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIHN3aXRjaChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKwljYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwljYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwljYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCWNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6IHsKKwkgICAgeG1sRG9jUHRyIGRvYyA9ICh4bWxEb2NQdHIpIGN1cjsKKworCSAgICBpZiAoZG9jLT5VUkwgIT0gTlVMTCkKKwkJeG1sRnJlZSgoeG1sQ2hhciAqKSBkb2MtPlVSTCk7CisJICAgIGlmICh1cmkgPT0gTlVMTCkKKwkJZG9jLT5VUkwgPSBOVUxMOworCSAgICBlbHNlCisJCWRvYy0+VVJMID0geG1sUGF0aFRvVVJJKHVyaSk7CisJICAgIHJldHVybjsKKwl9CisgICAgfQorCisgICAgbnMgPSB4bWxTZWFyY2hOc0J5SHJlZihjdXItPmRvYywgY3VyLCBYTUxfWE1MX05BTUVTUEFDRSk7CisgICAgaWYgKG5zID09IE5VTEwpCisJcmV0dXJuOworICAgIGZpeGVkID0geG1sUGF0aFRvVVJJKHVyaSk7CisgICAgaWYgKGZpeGVkICE9IE5VTEwpIHsKKwl4bWxTZXROc1Byb3AoY3VyLCBucywgQkFEX0NBU1QgImJhc2UiLCBmaXhlZCk7CisJeG1sRnJlZShmaXhlZCk7CisgICAgfSBlbHNlIHsKKwl4bWxTZXROc1Byb3AoY3VyLCBucywgQkFEX0NBU1QgImJhc2UiLCB1cmkpOworICAgIH0KK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKy8qKgorICogeG1sTm9kZUdldEJhc2U6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50IHRoZSBub2RlIHBlcnRhaW5zIHRvCisgKiBAY3VyOiAgdGhlIG5vZGUgYmVpbmcgY2hlY2tlZAorICoKKyAqIFNlYXJjaGVzIGZvciB0aGUgQkFTRSBVUkwuIFRoZSBjb2RlIHNob3VsZCB3b3JrIG9uIGJvdGggWE1MCisgKiBhbmQgSFRNTCBkb2N1bWVudCBldmVuIGlmIGJhc2UgbWVjaGFuaXNtcyBhcmUgY29tcGxldGVseSBkaWZmZXJlbnQuCisgKiBJdCByZXR1cm5zIHRoZSBiYXNlIGFzIGRlZmluZWQgaW4gUkZDIDIzOTYgc2VjdGlvbnMKKyAqIDUuMS4xLiBCYXNlIFVSSSB3aXRoaW4gRG9jdW1lbnQgQ29udGVudAorICogYW5kCisgKiA1LjEuMi4gQmFzZSBVUkkgZnJvbSB0aGUgRW5jYXBzdWxhdGluZyBFbnRpdHkKKyAqIEhvd2V2ZXIgaXQgZG9lcyBub3QgcmV0dXJuIHRoZSBkb2N1bWVudCBiYXNlICg1LjEuMyksIHVzZQorICogZG9jLT5VUkwgaW4gdGhpcyBjYXNlCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGJhc2UgVVJMLCBvciBOVUxMIGlmIG5vdCBmb3VuZAorICogICAgIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuCisgKi8KK3htbENoYXIgKgoreG1sTm9kZUdldEJhc2UoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICB4bWxDaGFyICpvbGRiYXNlID0gTlVMTDsKKyAgICB4bWxDaGFyICpiYXNlLCAqbmV3YmFzZTsKKworICAgIGlmICgoY3VyID09IE5VTEwpICYmIChkb2MgPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIGRvYyA9IGN1ci0+ZG9jOworICAgIGlmICgoZG9jICE9IE5VTEwpICYmIChkb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpIHsKKyAgICAgICAgY3VyID0gZG9jLT5jaGlsZHJlbjsKKwl3aGlsZSAoKGN1ciAhPSBOVUxMKSAmJiAoY3VyLT5uYW1lICE9IE5VTEwpKSB7CisJICAgIGlmIChjdXItPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCSAgICAgICAgY3VyID0gY3VyLT5uZXh0OworCQljb250aW51ZTsKKwkgICAgfQorCSAgICBpZiAoIXhtbFN0cmNhc2VjbXAoY3VyLT5uYW1lLCBCQURfQ0FTVCAiaHRtbCIpKSB7CisJICAgICAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCQljb250aW51ZTsKKwkgICAgfQorCSAgICBpZiAoIXhtbFN0cmNhc2VjbXAoY3VyLT5uYW1lLCBCQURfQ0FTVCAiaGVhZCIpKSB7CisJICAgICAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCQljb250aW51ZTsKKwkgICAgfQorCSAgICBpZiAoIXhtbFN0cmNhc2VjbXAoY3VyLT5uYW1lLCBCQURfQ0FTVCAiYmFzZSIpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuKHhtbEdldFByb3AoY3VyLCBCQURfQ0FTVCAiaHJlZiIpKTsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJaWYgKGN1ci0+dHlwZSA9PSBYTUxfRU5USVRZX0RFQ0wpIHsKKwkgICAgeG1sRW50aXR5UHRyIGVudCA9ICh4bWxFbnRpdHlQdHIpIGN1cjsKKwkgICAgcmV0dXJuKHhtbFN0cmR1cChlbnQtPlVSSSkpOworCX0KKwlpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgYmFzZSA9IHhtbEdldE5zUHJvcChjdXIsIEJBRF9DQVNUICJiYXNlIiwgWE1MX1hNTF9OQU1FU1BBQ0UpOworCSAgICBpZiAoYmFzZSAhPSBOVUxMKSB7CisJCWlmIChvbGRiYXNlICE9IE5VTEwpIHsKKwkJICAgIG5ld2Jhc2UgPSB4bWxCdWlsZFVSSShvbGRiYXNlLCBiYXNlKTsKKwkJICAgIGlmIChuZXdiYXNlICE9IE5VTEwpIHsKKwkJCXhtbEZyZWUob2xkYmFzZSk7CisJCQl4bWxGcmVlKGJhc2UpOworCQkJb2xkYmFzZSA9IG5ld2Jhc2U7CisJCSAgICB9IGVsc2UgeworCQkJeG1sRnJlZShvbGRiYXNlKTsKKwkJCXhtbEZyZWUoYmFzZSk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCX0gZWxzZSB7CisJCSAgICBvbGRiYXNlID0gYmFzZTsKKwkJfQorCQlpZiAoKCF4bWxTdHJuY21wKG9sZGJhc2UsIEJBRF9DQVNUICJodHRwOi8vIiwgNykpIHx8CisJCSAgICAoIXhtbFN0cm5jbXAob2xkYmFzZSwgQkFEX0NBU1QgImZ0cDovLyIsIDYpKSB8fAorCQkgICAgKCF4bWxTdHJuY21wKG9sZGJhc2UsIEJBRF9DQVNUICJ1cm46IiwgNCkpKQorCQkgICAgcmV0dXJuKG9sZGJhc2UpOworCSAgICB9CisJfQorCWN1ciA9IGN1ci0+cGFyZW50OworICAgIH0KKyAgICBpZiAoKGRvYyAhPSBOVUxMKSAmJiAoZG9jLT5VUkwgIT0gTlVMTCkpIHsKKwlpZiAob2xkYmFzZSA9PSBOVUxMKQorCSAgICByZXR1cm4oeG1sU3RyZHVwKGRvYy0+VVJMKSk7CisJbmV3YmFzZSA9IHhtbEJ1aWxkVVJJKG9sZGJhc2UsIGRvYy0+VVJMKTsKKwl4bWxGcmVlKG9sZGJhc2UpOworCXJldHVybihuZXdiYXNlKTsKKyAgICB9CisgICAgcmV0dXJuKG9sZGJhc2UpOworfQorCisvKioKKyAqIHhtbE5vZGVCdWZHZXRDb250ZW50OgorICogQGJ1ZmZlcjogIGEgYnVmZmVyCisgKiBAY3VyOiAgdGhlIG5vZGUgYmVpbmcgcmVhZAorICoKKyAqIFJlYWQgdGhlIHZhbHVlIG9mIGEgbm9kZSBAY3VyLCB0aGlzIGNhbiBiZSBlaXRoZXIgdGhlIHRleHQgY2FycmllZAorICogZGlyZWN0bHkgYnkgdGhpcyBub2RlIGlmIGl0J3MgYSBURVhUIG5vZGUgb3IgdGhlIGFnZ3JlZ2F0ZSBzdHJpbmcKKyAqIG9mIHRoZSB2YWx1ZXMgY2FycmllZCBieSB0aGlzIG5vZGUgY2hpbGQncyAoVEVYVCBhbmQgRU5USVRZX1JFRikuCisgKiBFbnRpdHkgcmVmZXJlbmNlcyBhcmUgc3Vic3RpdHV0ZWQuCisgKiBGaWxscyB1cCB0aGUgYnVmZmVyIEBidWZmZXIgd2l0aCB0aGlzIHZhbHVlCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxOb2RlQnVmR2V0Q29udGVudCh4bWxCdWZmZXJQdHIgYnVmZmVyLCB4bWxOb2RlUHRyIGN1cikKK3sKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoYnVmZmVyID09IE5VTEwpKSByZXR1cm4oLTEpOworICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorCSAgICB4bWxCdWZmZXJDYXQoYnVmZmVyLCBjdXItPmNvbnRlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOnsKKyAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIHRtcCA9IGN1cjsKKworICAgICAgICAgICAgICAgIHdoaWxlICh0bXAgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRtcC0+dHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAtPmNvbnRlbnQgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQnVmZmVyQ2F0KGJ1ZmZlciwgdG1wLT5jb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlQnVmR2V0Q29udGVudChidWZmZXIsIHRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIFNraXAgdG8gbmV4dCBub2RlCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZiAodG1wLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wLT5jaGlsZHJlbi0+dHlwZSAhPSBYTUxfRU5USVRZX0RFQ0wpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0bXAtPmNoaWxkcmVuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gY3VyKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRtcC0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0bXAtPm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+cGFyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBjdXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcC0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICh0bXAgIT0gTlVMTCk7CisgICAgICAgICAgICAgICAgfQorCQlicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6eworICAgICAgICAgICAgICAgIHhtbEF0dHJQdHIgYXR0ciA9ICh4bWxBdHRyUHRyKSBjdXI7CisJCXhtbE5vZGVQdHIgdG1wID0gYXR0ci0+Y2hpbGRyZW47CisKKwkJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJCSAgICBpZiAodG1wLT50eXBlID09IFhNTF9URVhUX05PREUpCisJCSAgICAgICAgeG1sQnVmZmVyQ2F0KGJ1ZmZlciwgdG1wLT5jb250ZW50KTsKKwkJICAgIGVsc2UKKwkJICAgICAgICB4bWxOb2RlQnVmR2V0Q29udGVudChidWZmZXIsIHRtcCk7CisJCSAgICB0bXAgPSB0bXAtPm5leHQ7CisJCX0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorCSAgICB4bWxCdWZmZXJDYXQoYnVmZmVyLCBjdXItPmNvbnRlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERTp7CisgICAgICAgICAgICAgICAgeG1sRW50aXR5UHRyIGVudDsKKyAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIHRtcDsKKworICAgICAgICAgICAgICAgIC8qIGxvb2t1cCBlbnRpdHkgZGVjbGFyYXRpb24gKi8KKyAgICAgICAgICAgICAgICBlbnQgPSB4bWxHZXREb2NFbnRpdHkoY3VyLT5kb2MsIGN1ci0+bmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKGVudCA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4oLTEpOworCisgICAgICAgICAgICAgICAgLyogYW4gZW50aXR5IGNvbnRlbnQgY2FuIGJlIGFueSAid2VsbCBiYWxhbmNlZCBjaHVuayIsCisgICAgICAgICAgICAgICAgICogaS5lLiB0aGUgcmVzdWx0IG9mIHRoZSBjb250ZW50IFs0M10gcHJvZHVjdGlvbjoKKyAgICAgICAgICAgICAgICAgKiBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sI05ULWNvbnRlbnQKKyAgICAgICAgICAgICAgICAgKiAtPiB3ZSBpdGVyYXRlIHRocm91Z2ggY2hpbGQgbm9kZXMgYW5kIHJlY3Vyc2l2ZSBjYWxsCisgICAgICAgICAgICAgICAgICogeG1sTm9kZUdldENvbnRlbnQoKSB3aGljaCBoYW5kbGVzIGFsbCBwb3NzaWJsZSBub2RlIHR5cGVzICovCisgICAgICAgICAgICAgICAgdG1wID0gZW50LT5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICB3aGlsZSAodG1wKSB7CisJCSAgICB4bWxOb2RlQnVmR2V0Q29udGVudChidWZmZXIsIHRtcCk7CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRtcC0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisJCWJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKyAgICAgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKwkgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKwkgICAgd2hpbGUgKGN1ciE9IE5VTEwpIHsKKwkJaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKwkJICAgIChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgfHwKKwkJICAgIChjdXItPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpIHsKKwkJICAgIHhtbE5vZGVCdWZHZXRDb250ZW50KGJ1ZmZlciwgY3VyKTsKKwkJfQorCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorCSAgICB4bWxCdWZmZXJDYXQoYnVmZmVyLCAoKHhtbE5zUHRyKSBjdXIpLT5ocmVmKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKy8qKgorICogeG1sTm9kZUdldENvbnRlbnQ6CisgKiBAY3VyOiAgdGhlIG5vZGUgYmVpbmcgcmVhZAorICoKKyAqIFJlYWQgdGhlIHZhbHVlIG9mIGEgbm9kZSwgdGhpcyBjYW4gYmUgZWl0aGVyIHRoZSB0ZXh0IGNhcnJpZWQKKyAqIGRpcmVjdGx5IGJ5IHRoaXMgbm9kZSBpZiBpdCdzIGEgVEVYVCBub2RlIG9yIHRoZSBhZ2dyZWdhdGUgc3RyaW5nCisgKiBvZiB0aGUgdmFsdWVzIGNhcnJpZWQgYnkgdGhpcyBub2RlIGNoaWxkJ3MgKFRFWFQgYW5kIEVOVElUWV9SRUYpLgorICogRW50aXR5IHJlZmVyZW5jZXMgYXJlIHN1YnN0aXR1dGVkLgorICogUmV0dXJucyBhIG5ldyAjeG1sQ2hhciAqIG9yIE5VTEwgaWYgbm8gY29udGVudCBpcyBhdmFpbGFibGUuCisgKiAgICAgSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4KKyAqLworeG1sQ2hhciAqCit4bWxOb2RlR2V0Q29udGVudCh4bWxOb2RlUHRyIGN1cikKK3sKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfRlJBR19OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6eworICAgICAgICAgICAgICAgIHhtbEJ1ZmZlclB0ciBidWZmZXI7CisgICAgICAgICAgICAgICAgeG1sQ2hhciAqcmV0OworCisgICAgICAgICAgICAgICAgYnVmZmVyID0geG1sQnVmZmVyQ3JlYXRlU2l6ZSg2NCk7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworCQl4bWxOb2RlQnVmR2V0Q29udGVudChidWZmZXIsIGN1cik7CisgICAgICAgICAgICAgICAgcmV0ID0gYnVmZmVyLT5jb250ZW50OworICAgICAgICAgICAgICAgIGJ1ZmZlci0+Y29udGVudCA9IE5VTEw7CisgICAgICAgICAgICAgICAgeG1sQnVmZmVyRnJlZShidWZmZXIpOworICAgICAgICAgICAgICAgIHJldHVybiAocmV0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJICAgIHJldHVybih4bWxHZXRQcm9wTm9kZVZhbHVlSW50ZXJuYWwoKHhtbEF0dHJQdHIpIGN1cikpOworICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgICAgICBpZiAoY3VyLT5jb250ZW50ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJuICh4bWxTdHJkdXAoY3VyLT5jb250ZW50KSk7CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6eworICAgICAgICAgICAgICAgIHhtbEVudGl0eVB0ciBlbnQ7CisgICAgICAgICAgICAgICAgeG1sQnVmZmVyUHRyIGJ1ZmZlcjsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICpyZXQ7CisKKyAgICAgICAgICAgICAgICAvKiBsb29rdXAgZW50aXR5IGRlY2xhcmF0aW9uICovCisgICAgICAgICAgICAgICAgZW50ID0geG1sR2V0RG9jRW50aXR5KGN1ci0+ZG9jLCBjdXItPm5hbWUpOworICAgICAgICAgICAgICAgIGlmIChlbnQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgICAgICAgICAgICAgIGlmIChidWZmZXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgICAgICAgICAgICAgIHhtbE5vZGVCdWZHZXRDb250ZW50KGJ1ZmZlciwgY3VyKTsKKworICAgICAgICAgICAgICAgIHJldCA9IGJ1ZmZlci0+Y29udGVudDsKKyAgICAgICAgICAgICAgICBidWZmZXItPmNvbnRlbnQgPSBOVUxMOworICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckZyZWUoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHJldCk7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKyAgICAgICAgY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisgICAgICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6IHsKKwkgICAgeG1sQnVmZmVyUHRyIGJ1ZmZlcjsKKwkgICAgeG1sQ2hhciAqcmV0OworCisJICAgIGJ1ZmZlciA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworCSAgICBpZiAoYnVmZmVyID09IE5VTEwpCisJCXJldHVybiAoTlVMTCk7CisKKwkgICAgeG1sTm9kZUJ1ZkdldENvbnRlbnQoYnVmZmVyLCAoeG1sTm9kZVB0cikgY3VyKTsKKworCSAgICByZXQgPSBidWZmZXItPmNvbnRlbnQ7CisJICAgIGJ1ZmZlci0+Y29udGVudCA9IE5VTEw7CisJICAgIHhtbEJ1ZmZlckZyZWUoYnVmZmVyKTsKKwkgICAgcmV0dXJuIChyZXQpOworCX0KKyAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6IHsKKwkgICAgeG1sQ2hhciAqdG1wOworCisJICAgIHRtcCA9IHhtbFN0cmR1cCgoKHhtbE5zUHRyKSBjdXIpLT5ocmVmKTsKKyAgICAgICAgICAgIHJldHVybiAodG1wKTsKKwl9CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKyAgICAgICAgICAgIC8qIFRPRE8gISEhICovCisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgICAgIC8qIFRPRE8gISEhICovCisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKyAgICAgICAgICAgIC8qIFRPRE8gISEhICovCisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgICAgIGlmIChjdXItPmNvbnRlbnQgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gKHhtbFN0cmR1cChjdXItPmNvbnRlbnQpKTsKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sTm9kZVNldENvbnRlbnQ6CisgKiBAY3VyOiAgdGhlIG5vZGUgYmVpbmcgbW9kaWZpZWQKKyAqIEBjb250ZW50OiAgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY29udGVudAorICoKKyAqIFJlcGxhY2UgdGhlIGNvbnRlbnQgb2YgYSBub2RlLgorICogTk9URTogQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUgYSBwaWVjZSBvZiBYTUwgQ0RBVEEsIHNvIGl0IGFsbG93cyBlbnRpdHkKKyAqICAgICAgIHJlZmVyZW5jZXMsIGJ1dCBYTUwgc3BlY2lhbCBjaGFycyBuZWVkIHRvIGJlIGVzY2FwZWQgZmlyc3QgYnkgdXNpbmcKKyAqICAgICAgIHhtbEVuY29kZUVudGl0aWVzUmVlbnRyYW50KCkgcmVzcC4geG1sRW5jb2RlU3BlY2lhbENoYXJzKCkuCisgKi8KK3ZvaWQKK3htbE5vZGVTZXRDb250ZW50KHhtbE5vZGVQdHIgY3VyLCBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfVFJFRQorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5vZGVTZXRDb250ZW50IDogbm9kZSA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybjsKKyAgICB9CisgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfRlJBR19OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB4bWxGcmVlTm9kZUxpc3QoY3VyLT5jaGlsZHJlbik7CisJICAgIGN1ci0+Y2hpbGRyZW4gPSB4bWxTdHJpbmdHZXROb2RlTGlzdChjdXItPmRvYywgY29udGVudCk7CisJICAgIFVQREFURV9MQVNUX0NISUxEX0FORF9QQVJFTlQoY3VyKQorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkgICAgaWYgKChjdXItPmNvbnRlbnQgIT0gTlVMTCkgJiYKKwkgICAgICAgIChjdXItPmNvbnRlbnQgIT0gKHhtbENoYXIgKikgJihjdXItPnByb3BlcnRpZXMpKSkgeworCSAgICAgICAgaWYgKCEoKGN1ci0+ZG9jICE9IE5VTEwpICYmIChjdXItPmRvYy0+ZGljdCAhPSBOVUxMKSAmJgorCQkgICAgKHhtbERpY3RPd25zKGN1ci0+ZG9jLT5kaWN0LCBjdXItPmNvbnRlbnQpKSkpCisJCSAgICB4bWxGcmVlKGN1ci0+Y29udGVudCk7CisJICAgIH0KKwkgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeG1sRnJlZU5vZGVMaXN0KGN1ci0+Y2hpbGRyZW4pOworCSAgICBjdXItPmxhc3QgPSBjdXItPmNoaWxkcmVuID0gTlVMTDsKKwkgICAgaWYgKGNvbnRlbnQgIT0gTlVMTCkgeworCQljdXItPmNvbnRlbnQgPSB4bWxTdHJkdXAoY29udGVudCk7CisJICAgIH0gZWxzZQorCQljdXItPmNvbnRlbnQgPSBOVUxMOworCSAgICBjdXItPnByb3BlcnRpZXMgPSBOVUxMOworCSAgICBjdXItPm5zRGVmID0gTlVMTDsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorCWNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorCWNhc2UgWE1MX1hJTkNMVURFX0VORDoKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRFREX05PREU6CisJICAgIGJyZWFrOworCWNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorCSAgICAvKiBUT0RPICEhISAqLworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisJICAgIC8qIFRPRE8gISEhICovCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKwkgICAgLyogVE9ETyAhISEgKi8KKwkgICAgYnJlYWs7CisgICAgfQorfQorCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoqCisgKiB4bWxOb2RlU2V0Q29udGVudExlbjoKKyAqIEBjdXI6ICB0aGUgbm9kZSBiZWluZyBtb2RpZmllZAorICogQGNvbnRlbnQ6ICB0aGUgbmV3IHZhbHVlIG9mIHRoZSBjb250ZW50CisgKiBAbGVuOiAgdGhlIHNpemUgb2YgQGNvbnRlbnQKKyAqCisgKiBSZXBsYWNlIHRoZSBjb250ZW50IG9mIGEgbm9kZS4KKyAqIE5PVEU6IEBjb250ZW50IGlzIHN1cHBvc2VkIHRvIGJlIGEgcGllY2Ugb2YgWE1MIENEQVRBLCBzbyBpdCBhbGxvd3MgZW50aXR5CisgKiAgICAgICByZWZlcmVuY2VzLCBidXQgWE1MIHNwZWNpYWwgY2hhcnMgbmVlZCB0byBiZSBlc2NhcGVkIGZpcnN0IGJ5IHVzaW5nCisgKiAgICAgICB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudCgpIHJlc3AuIHhtbEVuY29kZVNwZWNpYWxDaGFycygpLgorICovCit2b2lkCit4bWxOb2RlU2V0Q29udGVudExlbih4bWxOb2RlUHRyIGN1ciwgY29uc3QgeG1sQ2hhciAqY29udGVudCwgaW50IGxlbikgeworICAgIGlmIChjdXIgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxOb2RlU2V0Q29udGVudExlbiA6IG5vZGUgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm47CisgICAgfQorICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeG1sRnJlZU5vZGVMaXN0KGN1ci0+Y2hpbGRyZW4pOworCSAgICBjdXItPmNoaWxkcmVuID0geG1sU3RyaW5nTGVuR2V0Tm9kZUxpc3QoY3VyLT5kb2MsIGNvbnRlbnQsIGxlbik7CisJICAgIFVQREFURV9MQVNUX0NISUxEX0FORF9QQVJFTlQoY3VyKQorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfTk9UQVRJT05fTk9ERToKKwkgICAgaWYgKChjdXItPmNvbnRlbnQgIT0gTlVMTCkgJiYKKwkgICAgICAgIChjdXItPmNvbnRlbnQgIT0gKHhtbENoYXIgKikgJihjdXItPnByb3BlcnRpZXMpKSkgeworCSAgICAgICAgaWYgKCEoKGN1ci0+ZG9jICE9IE5VTEwpICYmIChjdXItPmRvYy0+ZGljdCAhPSBOVUxMKSAmJgorCQkgICAgKHhtbERpY3RPd25zKGN1ci0+ZG9jLT5kaWN0LCBjdXItPmNvbnRlbnQpKSkpCisJCSAgICB4bWxGcmVlKGN1ci0+Y29udGVudCk7CisJICAgIH0KKwkgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeG1sRnJlZU5vZGVMaXN0KGN1ci0+Y2hpbGRyZW4pOworCSAgICBjdXItPmNoaWxkcmVuID0gY3VyLT5sYXN0ID0gTlVMTDsKKwkgICAgaWYgKGNvbnRlbnQgIT0gTlVMTCkgeworCQljdXItPmNvbnRlbnQgPSB4bWxTdHJuZHVwKGNvbnRlbnQsIGxlbik7CisJICAgIH0gZWxzZQorCQljdXItPmNvbnRlbnQgPSBOVUxMOworCSAgICBjdXItPnByb3BlcnRpZXMgPSBOVUxMOworCSAgICBjdXItPm5zRGVmID0gTlVMTDsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKwljYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwljYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwljYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCWNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorCSAgICAvKiBUT0RPICEhISAqLworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisJICAgIC8qIFRPRE8gISEhICovCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKwkgICAgLyogVE9ETyAhISEgKi8KKwkgICAgYnJlYWs7CisgICAgfQorfQorI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxOb2RlQWRkQ29udGVudExlbjoKKyAqIEBjdXI6ICB0aGUgbm9kZSBiZWluZyBtb2RpZmllZAorICogQGNvbnRlbnQ6ICBleHRyYSBjb250ZW50CisgKiBAbGVuOiAgdGhlIHNpemUgb2YgQGNvbnRlbnQKKyAqCisgKiBBcHBlbmQgdGhlIGV4dHJhIHN1YnN0cmluZyB0byB0aGUgbm9kZSBjb250ZW50LgorICogTk9URTogSW4gY29udHJhc3QgdG8geG1sTm9kZVNldENvbnRlbnRMZW4oKSwgQGNvbnRlbnQgaXMgc3VwcG9zZWQgdG8gYmUKKyAqICAgICAgIHJhdyB0ZXh0LCBzbyB1bmVzY2FwZWQgWE1MIHNwZWNpYWwgY2hhcnMgYXJlIGFsbG93ZWQsIGVudGl0eQorICogICAgICAgcmVmZXJlbmNlcyBhcmUgbm90IHN1cHBvcnRlZC4KKyAqLwordm9pZAoreG1sTm9kZUFkZENvbnRlbnRMZW4oeG1sTm9kZVB0ciBjdXIsIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQsIGludCBsZW4pIHsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTm9kZUFkZENvbnRlbnRMZW4gOiBub2RlID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuOworICAgIH0KKyAgICBpZiAobGVuIDw9IDApIHJldHVybjsKKyAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERTogeworCSAgICB4bWxOb2RlUHRyIGxhc3QsIG5ld05vZGUsIHRtcDsKKworCSAgICBsYXN0ID0gY3VyLT5sYXN0OworCSAgICBuZXdOb2RlID0geG1sTmV3VGV4dExlbihjb250ZW50LCBsZW4pOworCSAgICBpZiAobmV3Tm9kZSAhPSBOVUxMKSB7CisJCXRtcCA9IHhtbEFkZENoaWxkKGN1ciwgbmV3Tm9kZSk7CisJCWlmICh0bXAgIT0gbmV3Tm9kZSkKKwkJICAgIHJldHVybjsKKwkgICAgICAgIGlmICgobGFzdCAhPSBOVUxMKSAmJiAobGFzdC0+bmV4dCA9PSBuZXdOb2RlKSkgeworCQkgICAgeG1sVGV4dE1lcmdlKGxhc3QsIG5ld05vZGUpOworCQl9CisJICAgIH0KKwkgICAgYnJlYWs7CisJfQorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJICAgIGlmIChjb250ZW50ICE9IE5VTEwpIHsKKwkgICAgICAgIGlmICgoY3VyLT5jb250ZW50ID09ICh4bWxDaGFyICopICYoY3VyLT5wcm9wZXJ0aWVzKSkgfHwKKwkJICAgICgoY3VyLT5kb2MgIT0gTlVMTCkgJiYgKGN1ci0+ZG9jLT5kaWN0ICE9IE5VTEwpICYmCisJCQkgICAgeG1sRGljdE93bnMoY3VyLT5kb2MtPmRpY3QsIGN1ci0+Y29udGVudCkpKSB7CisJCSAgICBjdXItPmNvbnRlbnQgPSB4bWxTdHJuY2F0TmV3KGN1ci0+Y29udGVudCwgY29udGVudCwgbGVuKTsKKwkJICAgIGN1ci0+cHJvcGVydGllcyA9IE5VTEw7CisJCSAgICBjdXItPm5zRGVmID0gTlVMTDsKKwkJICAgIGJyZWFrOworCQl9CisJCWN1ci0+Y29udGVudCA9IHhtbFN0cm5jYXQoY3VyLT5jb250ZW50LCBjb250ZW50LCBsZW4pOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisJY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKwljYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorCSAgICBicmVhazsKKyAgICB9Cit9CisKKy8qKgorICogeG1sTm9kZUFkZENvbnRlbnQ6CisgKiBAY3VyOiAgdGhlIG5vZGUgYmVpbmcgbW9kaWZpZWQKKyAqIEBjb250ZW50OiAgZXh0cmEgY29udGVudAorICoKKyAqIEFwcGVuZCB0aGUgZXh0cmEgc3Vic3RyaW5nIHRvIHRoZSBub2RlIGNvbnRlbnQuCisgKiBOT1RFOiBJbiBjb250cmFzdCB0byB4bWxOb2RlU2V0Q29udGVudCgpLCBAY29udGVudCBpcyBzdXBwb3NlZCB0byBiZQorICogICAgICAgcmF3IHRleHQsIHNvIHVuZXNjYXBlZCBYTUwgc3BlY2lhbCBjaGFycyBhcmUgYWxsb3dlZCwgZW50aXR5CisgKiAgICAgICByZWZlcmVuY2VzIGFyZSBub3Qgc3VwcG9ydGVkLgorICovCit2b2lkCit4bWxOb2RlQWRkQ29udGVudCh4bWxOb2RlUHRyIGN1ciwgY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIGludCBsZW47CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTm9kZUFkZENvbnRlbnQgOiBub2RlID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY29udGVudCA9PSBOVUxMKSByZXR1cm47CisgICAgbGVuID0geG1sU3RybGVuKGNvbnRlbnQpOworICAgIHhtbE5vZGVBZGRDb250ZW50TGVuKGN1ciwgY29udGVudCwgbGVuKTsKK30KKworLyoqCisgKiB4bWxUZXh0TWVyZ2U6CisgKiBAZmlyc3Q6ICB0aGUgZmlyc3QgdGV4dCBub2RlCisgKiBAc2Vjb25kOiAgdGhlIHNlY29uZCB0ZXh0IG5vZGUgYmVpbmcgbWVyZ2VkCisgKgorICogTWVyZ2UgdHdvIHRleHQgbm9kZXMgaW50byBvbmUKKyAqIFJldHVybnMgdGhlIGZpcnN0IHRleHQgbm9kZSBhdWdtZW50ZWQKKyAqLworeG1sTm9kZVB0cgoreG1sVGV4dE1lcmdlKHhtbE5vZGVQdHIgZmlyc3QsIHhtbE5vZGVQdHIgc2Vjb25kKSB7CisgICAgaWYgKGZpcnN0ID09IE5VTEwpIHJldHVybihzZWNvbmQpOworICAgIGlmIChzZWNvbmQgPT0gTlVMTCkgcmV0dXJuKGZpcnN0KTsKKyAgICBpZiAoZmlyc3QtPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkgcmV0dXJuKGZpcnN0KTsKKyAgICBpZiAoc2Vjb25kLT50eXBlICE9IFhNTF9URVhUX05PREUpIHJldHVybihmaXJzdCk7CisgICAgaWYgKHNlY29uZC0+bmFtZSAhPSBmaXJzdC0+bmFtZSkKKwlyZXR1cm4oZmlyc3QpOworICAgIHhtbE5vZGVBZGRDb250ZW50KGZpcnN0LCBzZWNvbmQtPmNvbnRlbnQpOworICAgIHhtbFVubGlua05vZGUoc2Vjb25kKTsKKyAgICB4bWxGcmVlTm9kZShzZWNvbmQpOworICAgIHJldHVybihmaXJzdCk7Cit9CisKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1hQQVRIX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKy8qKgorICogeG1sR2V0TnNMaXN0OgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQG5vZGU6ICB0aGUgY3VycmVudCBub2RlCisgKgorICogU2VhcmNoIGFsbCB0aGUgbmFtZXNwYWNlIGFwcGx5aW5nIHRvIGEgZ2l2ZW4gZWxlbWVudC4KKyAqIFJldHVybnMgYW4gTlVMTCB0ZXJtaW5hdGVkIGFycmF5IG9mIGFsbCB0aGUgI3htbE5zUHRyIGZvdW5kCisgKiAgICAgICAgIHRoYXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyIG9yIE5VTEwgaWYgbm8KKyAqICAgICAgICAgbmFtZXNwYWNlIGlmIGRlZmluZWQKKyAqLworeG1sTnNQdHIgKgoreG1sR2V0TnNMaXN0KHhtbERvY1B0ciBkb2MgQVRUUklCVVRFX1VOVVNFRCwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbE5zUHRyIGN1cjsKKyAgICB4bWxOc1B0ciAqcmV0ID0gTlVMTDsKKyAgICBpbnQgbmJucyA9IDA7CisgICAgaW50IG1heG5zID0gMTA7CisgICAgaW50IGk7CisKKyAgICB3aGlsZSAobm9kZSAhPSBOVUxMKSB7CisgICAgICAgIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKyAgICAgICAgICAgIGN1ciA9IG5vZGUtPm5zRGVmOworICAgICAgICAgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9CisgICAgICAgICAgICAgICAgICAgICAgICAoeG1sTnNQdHIgKikgeG1sTWFsbG9jKChtYXhucyArIDEpICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbE5zUHRyKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gTlVMTCkgeworCQkJeG1sVHJlZUVyck1lbW9yeSgiZ2V0dGluZyBuYW1lc3BhY2UgbGlzdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXRbbmJuc10gPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJuczsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoY3VyLT5wcmVmaXggPT0gcmV0W2ldLT5wcmVmaXgpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwoY3VyLT5wcmVmaXgsIHJldFtpXS0+cHJlZml4KSkpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGkgPj0gbmJucykgeworICAgICAgICAgICAgICAgICAgICBpZiAobmJucyA+PSBtYXhucykgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4bnMgKj0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9ICh4bWxOc1B0ciAqKSB4bWxSZWFsbG9jKHJldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXhucyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbE5zUHRyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID09IE5VTEwpIHsKKwkJCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJnZXR0aW5nIG5hbWVzcGFjZSBsaXN0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXRbbmJucysrXSA9IGN1cjsKKyAgICAgICAgICAgICAgICAgICAgcmV0W25ibnNdID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudDsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyoKKyogeG1sVHJlZUVuc3VyZVhNTERlY2w6CisqIEBkb2M6IHRoZSBkb2MKKyoKKyogRW5zdXJlcyB0aGF0IHRoZXJlIGlzIGFuIFhNTCBuYW1lc3BhY2UgZGVjbGFyYXRpb24gb24gdGhlIGRvYy4KKyoKKyogUmV0dXJucyB0aGUgWE1MIG5zLXN0cnVjdCBvciBOVUxMIG9uIEFQSSBhbmQgaW50ZXJuYWwgZXJyb3JzLgorKi8KK3N0YXRpYyB4bWxOc1B0cgoreG1sVHJlZUVuc3VyZVhNTERlY2woeG1sRG9jUHRyIGRvYykKK3sKKyAgICBpZiAoZG9jID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoZG9jLT5vbGROcyAhPSBOVUxMKQorCXJldHVybiAoZG9jLT5vbGROcyk7CisgICAgeworCXhtbE5zUHRyIG5zOworCW5zID0gKHhtbE5zUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5zKSk7CisJaWYgKG5zID09IE5VTEwpIHsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgKKwkJImFsbG9jYXRpbmcgdGhlIFhNTCBuYW1lc3BhY2UiKTsKKwkgICAgcmV0dXJuIChOVUxMKTsKKwl9CisJbWVtc2V0KG5zLCAwLCBzaXplb2YoeG1sTnMpKTsKKwlucy0+dHlwZSA9IFhNTF9MT0NBTF9OQU1FU1BBQ0U7CisJbnMtPmhyZWYgPSB4bWxTdHJkdXAoWE1MX1hNTF9OQU1FU1BBQ0UpOworCW5zLT5wcmVmaXggPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikieG1sIik7CisJZG9jLT5vbGROcyA9IG5zOworCXJldHVybiAobnMpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTZWFyY2hOczoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBub2RlOiAgdGhlIGN1cnJlbnQgbm9kZQorICogQG5hbWVTcGFjZTogIHRoZSBuYW1lc3BhY2UgcHJlZml4CisgKgorICogU2VhcmNoIGEgTnMgcmVnaXN0ZXJlZCB1bmRlciBhIGdpdmVuIG5hbWUgc3BhY2UgZm9yIGEgZG9jdW1lbnQuCisgKiByZWN1cnNlIG9uIHRoZSBwYXJlbnRzIHVudGlsIGl0IGZpbmRzIHRoZSBkZWZpbmVkIG5hbWVzcGFjZQorICogb3IgcmV0dXJuIE5VTEwgb3RoZXJ3aXNlLgorICogQG5hbWVTcGFjZSBjYW4gYmUgTlVMTCwgdGhpcyBpcyBhIHNlYXJjaCBmb3IgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLgorICogV2UgZG9uJ3QgYWxsb3cgdG8gY3Jvc3MgZW50aXRpZXMgYm91bmRhcmllcy4gSWYgeW91IGRvbid0IGRlY2xhcmUKKyAqIHRoZSBuYW1lc3BhY2Ugd2l0aGluIHRob3NlIHlvdSB3aWxsIGJlIGluIHRyb3VibGVzICEhISBBIHdhcm5pbmcKKyAqIGlzIGdlbmVyYXRlZCB0byBjb3ZlciB0aGlzIGNhc2UuCisgKgorICogUmV0dXJucyB0aGUgbmFtZXNwYWNlIHBvaW50ZXIgb3IgTlVMTC4KKyAqLworeG1sTnNQdHIKK3htbFNlYXJjaE5zKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgeG1sQ2hhciAqbmFtZVNwYWNlKSB7CisKKyAgICB4bWxOc1B0ciBjdXI7CisgICAgeG1sTm9kZVB0ciBvcmlnID0gbm9kZTsKKworICAgIGlmIChub2RlID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoKG5hbWVTcGFjZSAhPSBOVUxMKSAmJgorCSh4bWxTdHJFcXVhbChuYW1lU3BhY2UsIChjb25zdCB4bWxDaGFyICopInhtbCIpKSkgeworCWlmICgoZG9jID09IE5VTEwpICYmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKSB7CisJICAgIC8qCisJICAgICAqIFRoZSBYTUwtMS4wIG5hbWVzcGFjZSBpcyBub3JtYWxseSBoZWxkIG9uIHRoZSByb290CisJICAgICAqIGVsZW1lbnQuIEluIHRoaXMgY2FzZSBleGNlcHRpb25hbGx5IGNyZWF0ZSBpdCBvbiB0aGUKKwkgICAgICogbm9kZSBlbGVtZW50LgorCSAgICAgKi8KKwkgICAgY3VyID0gKHhtbE5zUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5zKSk7CisJICAgIGlmIChjdXIgPT0gTlVMTCkgeworCQl4bWxUcmVlRXJyTWVtb3J5KCJzZWFyY2hpbmcgbmFtZXNwYWNlIik7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sTnMpKTsKKwkgICAgY3VyLT50eXBlID0gWE1MX0xPQ0FMX05BTUVTUEFDRTsKKwkgICAgY3VyLT5ocmVmID0geG1sU3RyZHVwKFhNTF9YTUxfTkFNRVNQQUNFKTsKKwkgICAgY3VyLT5wcmVmaXggPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikieG1sIik7CisJICAgIGN1ci0+bmV4dCA9IG5vZGUtPm5zRGVmOworCSAgICBub2RlLT5uc0RlZiA9IGN1cjsKKwkgICAgcmV0dXJuKGN1cik7CisJfQorCWlmIChkb2MgPT0gTlVMTCkgeworCSAgICBkb2MgPSBub2RlLT5kb2M7CisJICAgIGlmIChkb2MgPT0gTlVMTCkKKwkJcmV0dXJuKE5VTEwpOworCX0KKwkvKgorCSogUmV0dXJuIHRoZSBYTUwgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGhlbGQgYnkgdGhlIGRvYy4KKwkqLworCWlmIChkb2MtPm9sZE5zID09IE5VTEwpCisJICAgIHJldHVybih4bWxUcmVlRW5zdXJlWE1MRGVjbChkb2MpKTsKKwllbHNlCisJICAgIHJldHVybihkb2MtPm9sZE5zKTsKKyAgICB9CisgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworCWlmICgobm9kZS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSB8fAorCSAgICAobm9kZS0+dHlwZSA9PSBYTUxfRU5USVRZX05PREUpIHx8CisJICAgIChub2RlLT50eXBlID09IFhNTF9FTlRJVFlfREVDTCkpCisJICAgIHJldHVybihOVUxMKTsKKwlpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJICAgIGN1ciA9IG5vZGUtPm5zRGVmOworCSAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkJaWYgKChjdXItPnByZWZpeCA9PSBOVUxMKSAmJiAobmFtZVNwYWNlID09IE5VTEwpICYmCisJCSAgICAoY3VyLT5ocmVmICE9IE5VTEwpKQorCQkgICAgcmV0dXJuKGN1cik7CisJCWlmICgoY3VyLT5wcmVmaXggIT0gTlVMTCkgJiYgKG5hbWVTcGFjZSAhPSBOVUxMKSAmJgorCQkgICAgKGN1ci0+aHJlZiAhPSBOVUxMKSAmJgorCQkgICAgKHhtbFN0ckVxdWFsKGN1ci0+cHJlZml4LCBuYW1lU3BhY2UpKSkKKwkJICAgIHJldHVybihjdXIpOworCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKwkgICAgaWYgKG9yaWcgIT0gbm9kZSkgeworCSAgICAgICAgY3VyID0gbm9kZS0+bnM7CisJICAgICAgICBpZiAoY3VyICE9IE5VTEwpIHsKKwkJICAgIGlmICgoY3VyLT5wcmVmaXggPT0gTlVMTCkgJiYgKG5hbWVTcGFjZSA9PSBOVUxMKSAmJgorCQkgICAgICAgIChjdXItPmhyZWYgIT0gTlVMTCkpCisJCSAgICAgICAgcmV0dXJuKGN1cik7CisJCSAgICBpZiAoKGN1ci0+cHJlZml4ICE9IE5VTEwpICYmIChuYW1lU3BhY2UgIT0gTlVMTCkgJiYKKwkJICAgICAgICAoY3VyLT5ocmVmICE9IE5VTEwpICYmCisJCSAgICAgICAgKHhtbFN0ckVxdWFsKGN1ci0+cHJlZml4LCBuYW1lU3BhY2UpKSkKKwkJICAgICAgICByZXR1cm4oY3VyKTsKKwkgICAgICAgIH0KKwkgICAgfQorCX0KKwlub2RlID0gbm9kZS0+cGFyZW50OworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sTnNJblNjb3BlOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQG5vZGU6ICB0aGUgY3VycmVudCBub2RlCisgKiBAYW5jZXN0b3I6ICB0aGUgYW5jZXN0b3IgY2FycnlpbmcgdGhlIG5hbWVzcGFjZQorICogQHByZWZpeDogIHRoZSBuYW1lc3BhY2UgcHJlZml4CisgKgorICogVmVyaWZ5IHRoYXQgdGhlIGdpdmVuIG5hbWVzcGFjZSBoZWxkIG9uIEBhbmNlc3RvciBpcyBzdGlsbCBpbiBzY29wZQorICogb24gbm9kZS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sTnNJblNjb3BlKHhtbERvY1B0ciBkb2MgQVRUUklCVVRFX1VOVVNFRCwgeG1sTm9kZVB0ciBub2RlLAorICAgICAgICAgICAgIHhtbE5vZGVQdHIgYW5jZXN0b3IsIGNvbnN0IHhtbENoYXIgKiBwcmVmaXgpCit7CisgICAgeG1sTnNQdHIgdHN0OworCisgICAgd2hpbGUgKChub2RlICE9IE5VTEwpICYmIChub2RlICE9IGFuY2VzdG9yKSkgeworICAgICAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9FTlRJVFlfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9FTlRJVFlfREVDTCkpCisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworICAgICAgICAgICAgdHN0ID0gbm9kZS0+bnNEZWY7CisgICAgICAgICAgICB3aGlsZSAodHN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHRzdC0+cHJlZml4ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICYmIChwcmVmaXggPT0gTlVMTCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgICAgICAgICAgaWYgKCh0c3QtPnByZWZpeCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAmJiAocHJlZml4ICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICYmICh4bWxTdHJFcXVhbCh0c3QtPnByZWZpeCwgcHJlZml4KSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgICAgICAgICAgdHN0ID0gdHN0LT5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQ7CisgICAgfQorICAgIGlmIChub2RlICE9IGFuY2VzdG9yKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICByZXR1cm4gKDEpOworfQorCisvKioKKyAqIHhtbFNlYXJjaE5zQnlIcmVmOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQG5vZGU6ICB0aGUgY3VycmVudCBub2RlCisgKiBAaHJlZjogIHRoZSBuYW1lc3BhY2UgdmFsdWUKKyAqCisgKiBTZWFyY2ggYSBOcyBhbGlhc2luZyBhIGdpdmVuIFVSSS4gUmVjdXJzZSBvbiB0aGUgcGFyZW50cyB1bnRpbCBpdCBmaW5kcworICogdGhlIGRlZmluZWQgbmFtZXNwYWNlIG9yIHJldHVybiBOVUxMIG90aGVyd2lzZS4KKyAqIFJldHVybnMgdGhlIG5hbWVzcGFjZSBwb2ludGVyIG9yIE5VTEwuCisgKi8KK3htbE5zUHRyCit4bWxTZWFyY2hOc0J5SHJlZih4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IHhtbENoYXIgKiBocmVmKQoreworICAgIHhtbE5zUHRyIGN1cjsKKyAgICB4bWxOb2RlUHRyIG9yaWcgPSBub2RlOworICAgIGludCBpc19hdHRyOworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChocmVmID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmICh4bWxTdHJFcXVhbChocmVmLCBYTUxfWE1MX05BTUVTUEFDRSkpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogT25seSB0aGUgZG9jdW1lbnQgY2FuIGhvbGQgdGhlIFhNTCBzcGVjIG5hbWVzcGFjZS4KKyAgICAgICAgICovCisgICAgICAgIGlmICgoZG9jID09IE5VTEwpICYmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogVGhlIFhNTC0xLjAgbmFtZXNwYWNlIGlzIG5vcm1hbGx5IGhlbGQgb24gdGhlIHJvb3QKKyAgICAgICAgICAgICAqIGVsZW1lbnQuIEluIHRoaXMgY2FzZSBleGNlcHRpb25hbGx5IGNyZWF0ZSBpdCBvbiB0aGUKKyAgICAgICAgICAgICAqIG5vZGUgZWxlbWVudC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgY3VyID0gKHhtbE5zUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE5zKSk7CisgICAgICAgICAgICBpZiAoY3VyID09IE5VTEwpIHsKKwkJeG1sVHJlZUVyck1lbW9yeSgic2VhcmNoaW5nIG5hbWVzcGFjZSIpOworICAgICAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sTnMpKTsKKyAgICAgICAgICAgIGN1ci0+dHlwZSA9IFhNTF9MT0NBTF9OQU1FU1BBQ0U7CisgICAgICAgICAgICBjdXItPmhyZWYgPSB4bWxTdHJkdXAoWE1MX1hNTF9OQU1FU1BBQ0UpOworICAgICAgICAgICAgY3VyLT5wcmVmaXggPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgInhtbCIpOworICAgICAgICAgICAgY3VyLT5uZXh0ID0gbm9kZS0+bnNEZWY7CisgICAgICAgICAgICBub2RlLT5uc0RlZiA9IGN1cjsKKyAgICAgICAgICAgIHJldHVybiAoY3VyKTsKKyAgICAgICAgfQorCWlmIChkb2MgPT0gTlVMTCkgeworCSAgICBkb2MgPSBub2RlLT5kb2M7CisJICAgIGlmIChkb2MgPT0gTlVMTCkKKwkJcmV0dXJuKE5VTEwpOworCX0KKwkvKgorCSogUmV0dXJuIHRoZSBYTUwgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGhlbGQgYnkgdGhlIGRvYy4KKwkqLworCWlmIChkb2MtPm9sZE5zID09IE5VTEwpCisJICAgIHJldHVybih4bWxUcmVlRW5zdXJlWE1MRGVjbChkb2MpKTsKKwllbHNlCisJICAgIHJldHVybihkb2MtPm9sZE5zKTsKKyAgICB9CisgICAgaXNfYXR0ciA9IChub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSk7CisgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworICAgICAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9FTlRJVFlfTk9ERSkgfHwKKyAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9FTlRJVFlfREVDTCkpCisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisgICAgICAgICAgICBjdXIgPSBub2RlLT5uc0RlZjsKKyAgICAgICAgICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGlmICgoY3VyLT5ocmVmICE9IE5VTEwpICYmIChocmVmICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChjdXItPmhyZWYsIGhyZWYpKSkgeworCQkgICAgaWYgKCgoIWlzX2F0dHIpIHx8IChjdXItPnByZWZpeCAhPSBOVUxMKSkgJiYKKwkJICAgICAgICAoeG1sTnNJblNjb3BlKGRvYywgb3JpZywgbm9kZSwgY3VyLT5wcmVmaXgpID09IDEpKQorCQkJcmV0dXJuIChjdXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob3JpZyAhPSBub2RlKSB7CisgICAgICAgICAgICAgICAgY3VyID0gbm9kZS0+bnM7CisgICAgICAgICAgICAgICAgaWYgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgoY3VyLT5ocmVmICE9IE5VTEwpICYmIChocmVmICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoeG1sU3RyRXF1YWwoY3VyLT5ocmVmLCBocmVmKSkpIHsKKwkJCWlmICgoKCFpc19hdHRyKSB8fCAoY3VyLT5wcmVmaXggIT0gTlVMTCkpICYmCisJCSAgICAgICAgICAgICh4bWxOc0luU2NvcGUoZG9jLCBvcmlnLCBub2RlLCBjdXItPnByZWZpeCkgPT0gMSkpCisJCQkgICAgcmV0dXJuIChjdXIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQ7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sTmV3UmVjb25jaWxpZWROczoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEB0cmVlOiAgYSBub2RlIGV4cGVjdGVkIHRvIGhvbGQgdGhlIG5ldyBuYW1lc3BhY2UKKyAqIEBuczogIHRoZSBvcmlnaW5hbCBuYW1lc3BhY2UKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGxvY2F0ZSBhIG5hbWVzcGFjZSBkZWZpbml0aW9uIGluIGEgdHJlZQorICogYW5jZXN0b3JzLCBvciBjcmVhdGUgYSBuZXcgbmFtZXNwYWNlIGRlZmluaXRpb24gbm9kZSBzaW1pbGFyIHRvCisgKiBAbnMgdHJ5aW5nIHRvIHJldXNlIHRoZSBzYW1lIHByZWZpeC4gSG93ZXZlciBpZiB0aGUgZ2l2ZW4gcHJlZml4IGlzCisgKiBudWxsIChkZWZhdWx0IG5hbWVzcGFjZSkgb3IgcmV1c2VkIHdpdGhpbiB0aGUgc3VidHJlZSBkZWZpbmVkIGJ5CisgKiBAdHJlZSBvciBvbiBvbmUgb2YgaXRzIGFuY2VzdG9ycyB0aGVuIGEgbmV3IHByZWZpeCBpcyBnZW5lcmF0ZWQuCisgKiBSZXR1cm5zIHRoZSAobmV3KSBuYW1lc3BhY2UgZGVmaW5pdGlvbiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbE5zUHRyCit4bWxOZXdSZWNvbmNpbGllZE5zKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgdHJlZSwgeG1sTnNQdHIgbnMpIHsKKyAgICB4bWxOc1B0ciBkZWY7CisgICAgeG1sQ2hhciBwcmVmaXhbNTBdOworICAgIGludCBjb3VudGVyID0gMTsKKworICAgIGlmICh0cmVlID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3UmVjb25jaWxpZWROcyA6IHRyZWUgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICgobnMgPT0gTlVMTCkgfHwgKG5zLT50eXBlICE9IFhNTF9OQU1FU1BBQ0VfREVDTCkpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3UmVjb25jaWxpZWROcyA6IG5zID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICAqIFNlYXJjaCBhbiBleGlzdGluZyBuYW1lc3BhY2UgZGVmaW5pdGlvbiBpbmhlcml0ZWQuCisgICAgICovCisgICAgZGVmID0geG1sU2VhcmNoTnNCeUhyZWYoZG9jLCB0cmVlLCBucy0+aHJlZik7CisgICAgaWYgKGRlZiAhPSBOVUxMKQorICAgICAgICByZXR1cm4oZGVmKTsKKworICAgIC8qCisgICAgICogRmluZCBhIGNsb3NlIHByZWZpeCB3aGljaCBpcyBub3QgYWxyZWFkeSBpbiB1c2UuCisgICAgICogTGV0J3Mgc3RyaXAgbmFtZXNwYWNlIHByZWZpeGVzIGxvbmdlciB0aGFuIDIwIGNoYXJzICEKKyAgICAgKi8KKyAgICBpZiAobnMtPnByZWZpeCA9PSBOVUxMKQorCXNucHJpbnRmKChjaGFyICopIHByZWZpeCwgc2l6ZW9mKHByZWZpeCksICJkZWZhdWx0Iik7CisgICAgZWxzZQorCXNucHJpbnRmKChjaGFyICopIHByZWZpeCwgc2l6ZW9mKHByZWZpeCksICIlLjIwcyIsIChjaGFyICopbnMtPnByZWZpeCk7CisKKyAgICBkZWYgPSB4bWxTZWFyY2hOcyhkb2MsIHRyZWUsIHByZWZpeCk7CisgICAgd2hpbGUgKGRlZiAhPSBOVUxMKSB7CisgICAgICAgIGlmIChjb3VudGVyID4gMTAwMCkgcmV0dXJuKE5VTEwpOworCWlmIChucy0+cHJlZml4ID09IE5VTEwpCisJICAgIHNucHJpbnRmKChjaGFyICopIHByZWZpeCwgc2l6ZW9mKHByZWZpeCksICJkZWZhdWx0JWQiLCBjb3VudGVyKyspOworCWVsc2UKKwkgICAgc25wcmludGYoKGNoYXIgKikgcHJlZml4LCBzaXplb2YocHJlZml4KSwgIiUuMjBzJWQiLAorCQkoY2hhciAqKW5zLT5wcmVmaXgsIGNvdW50ZXIrKyk7CisJZGVmID0geG1sU2VhcmNoTnMoZG9jLCB0cmVlLCBwcmVmaXgpOworICAgIH0KKworICAgIC8qCisgICAgICogT0ssIG5vdyB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIGEgbmV3IG9uZS4KKyAgICAgKi8KKyAgICBkZWYgPSB4bWxOZXdOcyh0cmVlLCBucy0+aHJlZiwgcHJlZml4KTsKKyAgICByZXR1cm4oZGVmKTsKK30KKworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKy8qKgorICogeG1sUmVjb25jaWxpYXRlTnM6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAdHJlZTogIGEgbm9kZSBkZWZpbmluZyB0aGUgc3VidHJlZSB0byByZWNvbmNpbGlhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0aGF0IGFsbCB0aGUgbmFtZXNwYWNlcyBkZWNsYXJlZCB3aXRoaW4gdGhlIGdpdmVuCisgKiB0cmVlIGFyZSBwcm9wZXJseSBkZWNsYXJlZC4gVGhpcyBpcyBuZWVkZWQgZm9yIGV4YW1wbGUgYWZ0ZXIgQ29weSBvciBDdXQKKyAqIGFuZCB0aGVuIHBhc3RlIG9wZXJhdGlvbnMuIFRoZSBzdWJ0cmVlIG1heSBzdGlsbCBob2xkIHBvaW50ZXJzIHRvCisgKiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIG91dHNpZGUgdGhlIHN1YnRyZWUgb3IgaW52YWxpZC9tYXNrZWQuIEFzIG11Y2gKKyAqIGFzIHBvc3NpYmxlIHRoZSBmdW5jdGlvbiB0cnkgdG8gcmV1c2UgdGhlIGV4aXN0aW5nIG5hbWVzcGFjZXMgZm91bmQgaW4KKyAqIHRoZSBuZXcgZW52aXJvbm1lbnQuIElmIG5vdCBwb3NzaWJsZSB0aGUgbmV3IG5hbWVzcGFjZXMgYXJlIHJlZGVjbGFyZWQKKyAqIG9uIEB0cmVlIGF0IHRoZSB0b3Agb2YgdGhlIGdpdmVuIHN1YnRyZWUuCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBjcmVhdGVkIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sUmVjb25jaWxpYXRlTnMoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciB0cmVlKSB7CisgICAgeG1sTnNQdHIgKm9sZE5zID0gTlVMTDsKKyAgICB4bWxOc1B0ciAqbmV3TnMgPSBOVUxMOworICAgIGludCBzaXplQ2FjaGUgPSAwOworICAgIGludCBuYkNhY2hlID0gMDsKKworICAgIHhtbE5zUHRyIG47CisgICAgeG1sTm9kZVB0ciBub2RlID0gdHJlZTsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgaW50IHJldCA9IDAsIGk7CisKKyAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpIHJldHVybigtMSk7CisgICAgaWYgKChkb2MgPT0gTlVMTCkgfHwgKGRvYy0+dHlwZSAhPSBYTUxfRE9DVU1FTlRfTk9ERSkpIHJldHVybigtMSk7CisgICAgaWYgKG5vZGUtPmRvYyAhPSBkb2MpIHJldHVybigtMSk7CisgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworICAgICAgICAvKgorCSAqIFJlY29uY2lsaWF0ZSB0aGUgbm9kZSBuYW1lc3BhY2UKKwkgKi8KKwlpZiAobm9kZS0+bnMgIT0gTlVMTCkgeworCSAgICAvKgorCSAgICAgKiBpbml0aWFsaXplIHRoZSBjYWNoZSBpZiBuZWVkZWQKKwkgICAgICovCisJICAgIGlmIChzaXplQ2FjaGUgPT0gMCkgeworCQlzaXplQ2FjaGUgPSAxMDsKKwkJb2xkTnMgPSAoeG1sTnNQdHIgKikgeG1sTWFsbG9jKHNpemVDYWNoZSAqCisJCQkJCSAgICAgICBzaXplb2YoeG1sTnNQdHIpKTsKKwkJaWYgKG9sZE5zID09IE5VTEwpIHsKKwkJICAgIHhtbFRyZWVFcnJNZW1vcnkoImZpeGluZyBuYW1lc3BhY2VzIik7CisJCSAgICByZXR1cm4oLTEpOworCQl9CisJCW5ld05zID0gKHhtbE5zUHRyICopIHhtbE1hbGxvYyhzaXplQ2FjaGUgKgorCQkJCQkgICAgICAgc2l6ZW9mKHhtbE5zUHRyKSk7CisJCWlmIChuZXdOcyA9PSBOVUxMKSB7CisJCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJmaXhpbmcgbmFtZXNwYWNlcyIpOworCQkgICAgeG1sRnJlZShvbGROcyk7CisJCSAgICByZXR1cm4oLTEpOworCQl9CisJICAgIH0KKwkgICAgZm9yIChpID0gMDtpIDwgbmJDYWNoZTtpKyspIHsKKwkgICAgICAgIGlmIChvbGROc1tpXSA9PSBub2RlLT5ucykgeworCQkgICAgbm9kZS0+bnMgPSBuZXdOc1tpXTsKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0KKwkgICAgaWYgKGkgPT0gbmJDYWNoZSkgeworCSAgICAgICAgLyoKKwkJICogT0sgd2UgbmVlZCB0byByZWNyZWF0ZSBhIG5ldyBuYW1lc3BhY2UgZGVmaW5pdGlvbgorCQkgKi8KKwkJbiA9IHhtbE5ld1JlY29uY2lsaWVkTnMoZG9jLCB0cmVlLCBub2RlLT5ucyk7CisJCWlmIChuICE9IE5VTEwpIHsgLyogOi0oIHdoYXQgaWYgZWxzZSA/Pz8gKi8KKwkJICAgIC8qCisJCSAgICAgKiBjaGVjayBpZiB3ZSBuZWVkIHRvIGdyb3cgdGhlIGNhY2hlIGJ1ZmZlcnMuCisJCSAgICAgKi8KKwkJICAgIGlmIChzaXplQ2FjaGUgPD0gbmJDYWNoZSkgeworCQkgICAgICAgIHNpemVDYWNoZSAqPSAyOworCQkJb2xkTnMgPSAoeG1sTnNQdHIgKikgeG1sUmVhbGxvYyhvbGROcywgc2l6ZUNhY2hlICoKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeG1sTnNQdHIpKTsKKwkJICAgICAgICBpZiAob2xkTnMgPT0gTlVMTCkgeworCQkJICAgIHhtbFRyZWVFcnJNZW1vcnkoImZpeGluZyBuYW1lc3BhY2VzIik7CisJCQkgICAgeG1sRnJlZShuZXdOcyk7CisJCQkgICAgcmV0dXJuKC0xKTsKKwkJCX0KKwkJCW5ld05zID0gKHhtbE5zUHRyICopIHhtbFJlYWxsb2MobmV3TnMsIHNpemVDYWNoZSAqCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbE5zUHRyKSk7CisJCSAgICAgICAgaWYgKG5ld05zID09IE5VTEwpIHsKKwkJCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJmaXhpbmcgbmFtZXNwYWNlcyIpOworCQkJICAgIHhtbEZyZWUob2xkTnMpOworCQkJICAgIHJldHVybigtMSk7CisJCQl9CisJCSAgICB9CisJCSAgICBuZXdOc1tuYkNhY2hlXSA9IG47CisJCSAgICBvbGROc1tuYkNhY2hlKytdID0gbm9kZS0+bnM7CisJCSAgICBub2RlLT5ucyA9IG47CisgICAgICAgICAgICAgICAgfQorCSAgICB9CisJfQorCS8qCisJICogbm93IGNoZWNrIGZvciBuYW1lc3BhY2UgaG9sZCBieSBhdHRyaWJ1dGVzIG9uIHRoZSBub2RlLgorCSAqLworCWlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisJICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkJaWYgKGF0dHItPm5zICE9IE5VTEwpIHsKKwkJICAgIC8qCisJCSAgICAgKiBpbml0aWFsaXplIHRoZSBjYWNoZSBpZiBuZWVkZWQKKwkJICAgICAqLworCQkgICAgaWYgKHNpemVDYWNoZSA9PSAwKSB7CisJCQlzaXplQ2FjaGUgPSAxMDsKKwkJCW9sZE5zID0gKHhtbE5zUHRyICopIHhtbE1hbGxvYyhzaXplQ2FjaGUgKgorCQkJCQkJICAgICAgIHNpemVvZih4bWxOc1B0cikpOworCQkJaWYgKG9sZE5zID09IE5VTEwpIHsKKwkJCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJmaXhpbmcgbmFtZXNwYWNlcyIpOworCQkJICAgIHJldHVybigtMSk7CisJCQl9CisJCQluZXdOcyA9ICh4bWxOc1B0ciAqKSB4bWxNYWxsb2Moc2l6ZUNhY2hlICoKKwkJCQkJCSAgICAgICBzaXplb2YoeG1sTnNQdHIpKTsKKwkJCWlmIChuZXdOcyA9PSBOVUxMKSB7CisJCQkgICAgeG1sVHJlZUVyck1lbW9yeSgiZml4aW5nIG5hbWVzcGFjZXMiKTsKKwkJCSAgICB4bWxGcmVlKG9sZE5zKTsKKwkJCSAgICByZXR1cm4oLTEpOworCQkJfQorCQkgICAgfQorCQkgICAgZm9yIChpID0gMDtpIDwgbmJDYWNoZTtpKyspIHsKKwkJCWlmIChvbGROc1tpXSA9PSBhdHRyLT5ucykgeworCQkJICAgIGF0dHItPm5zID0gbmV3TnNbaV07CisJCQkgICAgYnJlYWs7CisJCQl9CisJCSAgICB9CisJCSAgICBpZiAoaSA9PSBuYkNhY2hlKSB7CisJCQkvKgorCQkJICogT0sgd2UgbmVlZCB0byByZWNyZWF0ZSBhIG5ldyBuYW1lc3BhY2UgZGVmaW5pdGlvbgorCQkJICovCisJCQluID0geG1sTmV3UmVjb25jaWxpZWROcyhkb2MsIHRyZWUsIGF0dHItPm5zKTsKKwkJCWlmIChuICE9IE5VTEwpIHsgLyogOi0oIHdoYXQgaWYgZWxzZSA/Pz8gKi8KKwkJCSAgICAvKgorCQkJICAgICAqIGNoZWNrIGlmIHdlIG5lZWQgdG8gZ3JvdyB0aGUgY2FjaGUgYnVmZmVycy4KKwkJCSAgICAgKi8KKwkJCSAgICBpZiAoc2l6ZUNhY2hlIDw9IG5iQ2FjaGUpIHsKKwkJCQlzaXplQ2FjaGUgKj0gMjsKKwkJCQlvbGROcyA9ICh4bWxOc1B0ciAqKSB4bWxSZWFsbG9jKG9sZE5zLAorCQkJCSAgICAgICAgICAgc2l6ZUNhY2hlICogc2l6ZW9mKHhtbE5zUHRyKSk7CisJCQkJaWYgKG9sZE5zID09IE5VTEwpIHsKKwkJCQkgICAgeG1sVHJlZUVyck1lbW9yeSgiZml4aW5nIG5hbWVzcGFjZXMiKTsKKwkJCQkgICAgeG1sRnJlZShuZXdOcyk7CisJCQkJICAgIHJldHVybigtMSk7CisJCQkJfQorCQkJCW5ld05zID0gKHhtbE5zUHRyICopIHhtbFJlYWxsb2MobmV3TnMsCisJCQkJICAgICAgICAgICBzaXplQ2FjaGUgKiBzaXplb2YoeG1sTnNQdHIpKTsKKwkJCQlpZiAobmV3TnMgPT0gTlVMTCkgeworCQkJCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJmaXhpbmcgbmFtZXNwYWNlcyIpOworCQkJCSAgICB4bWxGcmVlKG9sZE5zKTsKKwkJCQkgICAgcmV0dXJuKC0xKTsKKwkJCQl9CisJCQkgICAgfQorCQkJICAgIG5ld05zW25iQ2FjaGVdID0gbjsKKwkJCSAgICBvbGROc1tuYkNhY2hlKytdID0gYXR0ci0+bnM7CisJCQkgICAgYXR0ci0+bnMgPSBuOworCQkJfQorCQkgICAgfQorCQl9CisJCWF0dHIgPSBhdHRyLT5uZXh0OworCSAgICB9CisJfQorCisJLyoKKwkgKiBCcm93c2UgdGhlIGZ1bGwgc3VidHJlZSwgZGVlcCBmaXJzdAorCSAqLworICAgICAgICBpZiAoKG5vZGUtPmNoaWxkcmVuICE9IE5VTEwpICYmIChub2RlLT50eXBlICE9IFhNTF9FTlRJVFlfUkVGX05PREUpKSB7CisJICAgIC8qIGRlZXAgZmlyc3QgKi8KKwkgICAgbm9kZSA9IG5vZGUtPmNoaWxkcmVuOworCX0gZWxzZSBpZiAoKG5vZGUgIT0gdHJlZSkgJiYgKG5vZGUtPm5leHQgIT0gTlVMTCkpIHsKKwkgICAgLyogdGhlbiBzaWJsaW5ncyAqLworCSAgICBub2RlID0gbm9kZS0+bmV4dDsKKwl9IGVsc2UgaWYgKG5vZGUgIT0gdHJlZSkgeworCSAgICAvKiBnbyB1cCB0byBwYXJlbnRzLT5uZXh0IGlmIG5lZWRlZCAqLworCSAgICB3aGlsZSAobm9kZSAhPSB0cmVlKSB7CisJICAgICAgICBpZiAobm9kZS0+cGFyZW50ICE9IE5VTEwpCisJCSAgICBub2RlID0gbm9kZS0+cGFyZW50OworCQlpZiAoKG5vZGUgIT0gdHJlZSkgJiYgKG5vZGUtPm5leHQgIT0gTlVMTCkpIHsKKwkJICAgIG5vZGUgPSBub2RlLT5uZXh0OworCQkgICAgYnJlYWs7CisJCX0KKwkJaWYgKG5vZGUtPnBhcmVudCA9PSBOVUxMKSB7CisJCSAgICBub2RlID0gTlVMTDsKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0KKwkgICAgLyogZXhpdCBjb25kaXRpb24gKi8KKwkgICAgaWYgKG5vZGUgPT0gdHJlZSkKKwkgICAgICAgIG5vZGUgPSBOVUxMOworCX0gZWxzZQorCSAgICBicmVhazsKKyAgICB9CisgICAgaWYgKG9sZE5zICE9IE5VTEwpCisJeG1sRnJlZShvbGROcyk7CisgICAgaWYgKG5ld05zICE9IE5VTEwpCisJeG1sRnJlZShuZXdOcyk7CisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCitzdGF0aWMgeG1sQXR0clB0cgoreG1sR2V0UHJvcE5vZGVJbnRlcm5hbCh4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCSAgICAgICBjb25zdCB4bWxDaGFyICpuc05hbWUsIGludCB1c2VEVEQpCit7CisgICAgeG1sQXR0clB0ciBwcm9wOworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpIHx8IChuYW1lID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKworICAgIGlmIChub2RlLT5wcm9wZXJ0aWVzICE9IE5VTEwpIHsKKwlwcm9wID0gbm9kZS0+cHJvcGVydGllczsKKwlpZiAobnNOYW1lID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBXZSB3YW50IHRoZSBhdHRyIHRvIGJlIGluIG5vIG5hbWVzcGFjZS4KKwkgICAgKi8KKwkgICAgZG8geworCQlpZiAoKHByb3AtPm5zID09IE5VTEwpICYmIHhtbFN0ckVxdWFsKHByb3AtPm5hbWUsIG5hbWUpKSB7CisJCSAgICByZXR1cm4ocHJvcCk7CisJCX0KKwkJcHJvcCA9IHByb3AtPm5leHQ7CisJICAgIH0gd2hpbGUgKHByb3AgIT0gTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiBXZSB3YW50IHRoZSBhdHRyIHRvIGJlIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlLgorCSAgICAqLworCSAgICBkbyB7CisJCWlmICgocHJvcC0+bnMgIT0gTlVMTCkgJiYgeG1sU3RyRXF1YWwocHJvcC0+bmFtZSwgbmFtZSkgJiYKKwkJICAgICgocHJvcC0+bnMtPmhyZWYgPT0gbnNOYW1lKSB8fAorCQkgICAgIHhtbFN0ckVxdWFsKHByb3AtPm5zLT5ocmVmLCBuc05hbWUpKSkKKwkJeworCQkgICAgcmV0dXJuKHByb3ApOworCQl9CisJCXByb3AgPSBwcm9wLT5uZXh0OworCSAgICB9IHdoaWxlIChwcm9wICE9IE5VTEwpOworCX0KKyAgICB9CisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaWYgKCEgdXNlRFREKQorCXJldHVybihOVUxMKTsKKyAgICAvKgorICAgICAqIENoZWNrIGlmIHRoZXJlIGlzIGEgZGVmYXVsdC9maXhlZCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gaW4KKyAgICAgKiB0aGUgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgc3Vic2V0LgorICAgICAqLworICAgIGlmICgobm9kZS0+ZG9jICE9IE5VTEwpICYmIChub2RlLT5kb2MtPmludFN1YnNldCAhPSBOVUxMKSkgeworCXhtbERvY1B0ciBkb2MgPSBub2RlLT5kb2M7CisJeG1sQXR0cmlidXRlUHRyIGF0dHJEZWNsID0gTlVMTDsKKwl4bWxDaGFyICplbGVtUU5hbWUsICp0bXBzdHIgPSBOVUxMOworCisJLyoKKwkqIFdlIG5lZWQgdGhlIFFOYW1lIG9mIHRoZSBlbGVtZW50IGZvciB0aGUgRFRELWxvb2t1cC4KKwkqLworCWlmICgobm9kZS0+bnMgIT0gTlVMTCkgJiYgKG5vZGUtPm5zLT5wcmVmaXggIT0gTlVMTCkpIHsKKwkgICAgdG1wc3RyID0geG1sU3RyZHVwKG5vZGUtPm5zLT5wcmVmaXgpOworCSAgICB0bXBzdHIgPSB4bWxTdHJjYXQodG1wc3RyLCBCQURfQ0FTVCAiOiIpOworCSAgICB0bXBzdHIgPSB4bWxTdHJjYXQodG1wc3RyLCBub2RlLT5uYW1lKTsKKwkgICAgaWYgKHRtcHN0ciA9PSBOVUxMKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIGVsZW1RTmFtZSA9IHRtcHN0cjsKKwl9IGVsc2UKKwkgICAgZWxlbVFOYW1lID0gKHhtbENoYXIgKikgbm9kZS0+bmFtZTsKKwlpZiAobnNOYW1lID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBUaGUgY29tbW9uIGFuZCBuaWNlIGNhc2U6IEF0dHIgaW4gbm8gbmFtZXNwYWNlLgorCSAgICAqLworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZFFBdHRyRGVzYyhkb2MtPmludFN1YnNldCwKKwkJZWxlbVFOYW1lLCBuYW1lLCBOVUxMKTsKKwkgICAgaWYgKChhdHRyRGVjbCA9PSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkpIHsKKwkJYXR0ckRlY2wgPSB4bWxHZXREdGRRQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsCisJCSAgICBlbGVtUU5hbWUsIG5hbWUsIE5VTEwpOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgeG1sTnNQdHIgKm5zTGlzdCwgKmN1cjsKKworCSAgICAvKgorCSAgICAqIFRoZSB1Z2x5IGNhc2U6IFNlYXJjaCB1c2luZyB0aGUgcHJlZml4ZXMgb2YgaW4tc2NvcGUKKwkgICAgKiBucy1kZWNscyBjb3JyZXNwb25kaW5nIHRvIEBuc05hbWUuCisJICAgICovCisJICAgIG5zTGlzdCA9IHhtbEdldE5zTGlzdChub2RlLT5kb2MsIG5vZGUpOworCSAgICBpZiAobnNMaXN0ID09IE5VTEwpIHsKKwkJaWYgKHRtcHN0ciAhPSBOVUxMKQorCQkgICAgeG1sRnJlZSh0bXBzdHIpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgY3VyID0gbnNMaXN0OworCSAgICB3aGlsZSAoKmN1ciAhPSBOVUxMKSB7CisJCWlmICh4bWxTdHJFcXVhbCgoKmN1ciktPmhyZWYsIG5zTmFtZSkpIHsKKwkJICAgIGF0dHJEZWNsID0geG1sR2V0RHRkUUF0dHJEZXNjKGRvYy0+aW50U3Vic2V0LCBlbGVtUU5hbWUsCisJCQluYW1lLCAoKmN1ciktPnByZWZpeCk7CisJCSAgICBpZiAoYXR0ckRlY2wpCisJCQlicmVhazsKKwkJICAgIGlmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSB7CisJCQlhdHRyRGVjbCA9IHhtbEdldER0ZFFBdHRyRGVzYyhkb2MtPmV4dFN1YnNldCwgZWxlbVFOYW1lLAorCQkJICAgIG5hbWUsICgqY3VyKS0+cHJlZml4KTsKKwkJCWlmIChhdHRyRGVjbCkKKwkJCSAgICBicmVhazsKKwkJICAgIH0KKwkJfQorCQljdXIrKzsKKwkgICAgfQorCSAgICB4bWxGcmVlKG5zTGlzdCk7CisJfQorCWlmICh0bXBzdHIgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSh0bXBzdHIpOworCS8qCisJKiBPbmx5IGRlZmF1bHQvZml4ZWQgYXR0cnMgYXJlIHJlbGV2YW50LgorCSovCisJaWYgKChhdHRyRGVjbCAhPSBOVUxMKSAmJiAoYXR0ckRlY2wtPmRlZmF1bHRWYWx1ZSAhPSBOVUxMKSkKKwkgICAgcmV0dXJuKCh4bWxBdHRyUHRyKSBhdHRyRGVjbCk7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKK3N0YXRpYyB4bWxDaGFyKgoreG1sR2V0UHJvcE5vZGVWYWx1ZUludGVybmFsKHhtbEF0dHJQdHIgcHJvcCkKK3sKKyAgICBpZiAocHJvcCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocHJvcC0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpIHsKKwkvKgorCSogTm90ZSB0aGF0IHdlIHJldHVybiBhdCBsZWFzdCB0aGUgZW1wdHkgc3RyaW5nLgorCSogICBUT0RPOiBEbyB3ZSByZWFsbHkgYWx3YXlzIHdhbnQgdGhhdD8KKwkqLworCWlmIChwcm9wLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJICAgIGlmICgocHJvcC0+Y2hpbGRyZW4tPm5leHQgPT0gTlVMTCkgJiYKKwkJKChwcm9wLT5jaGlsZHJlbi0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorCQkocHJvcC0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpKQorCSAgICB7CisJCS8qCisJCSogT3B0aW1pemF0aW9uIGZvciB0aGUgY29tbW9uIGNhc2U6IG9ubHkgMSB0ZXh0IG5vZGUuCisJCSovCisJCXJldHVybih4bWxTdHJkdXAocHJvcC0+Y2hpbGRyZW4tPmNvbnRlbnQpKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sQ2hhciAqcmV0OworCisJCXJldCA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKHByb3AtPmRvYywgcHJvcC0+Y2hpbGRyZW4sIDEpOworCQlpZiAocmV0ICE9IE5VTEwpCisJCSAgICByZXR1cm4ocmV0KTsKKwkgICAgfQorCX0KKwlyZXR1cm4oeG1sU3RyZHVwKCh4bWxDaGFyICopIiIpKTsKKyAgICB9IGVsc2UgaWYgKHByb3AtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9ERUNMKSB7CisJcmV0dXJuKHhtbFN0cmR1cCgoKHhtbEF0dHJpYnV0ZVB0cilwcm9wKS0+ZGVmYXVsdFZhbHVlKSk7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxIYXNQcm9wOgorICogQG5vZGU6ICB0aGUgbm9kZQorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqCisgKiBTZWFyY2ggYW4gYXR0cmlidXRlIGFzc29jaWF0ZWQgdG8gYSBub2RlCisgKiBUaGlzIGZ1bmN0aW9uIGFsc28gbG9va3MgaW4gRFREIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBmb3IgI0ZJWEVEIG9yCisgKiBkZWZhdWx0IGRlY2xhcmF0aW9uIHZhbHVlcyB1bmxlc3MgRFREIHVzZSBoYXMgYmVlbiB0dXJuZWQgb2ZmLgorICoKKyAqIFJldHVybnMgdGhlIGF0dHJpYnV0ZSBvciB0aGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uIG9yIE5VTEwgaWYKKyAqICAgICAgICAgbmVpdGhlciB3YXMgZm91bmQuCisgKi8KK3htbEF0dHJQdHIKK3htbEhhc1Byb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sQXR0clB0ciBwcm9wOworICAgIHhtbERvY1B0ciBkb2M7CisKKyAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwgKG5hbWUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICAvKgorICAgICAqIENoZWNrIG9uIHRoZSBwcm9wZXJ0aWVzIGF0dGFjaGVkIHRvIHRoZSBub2RlCisgICAgICovCisgICAgcHJvcCA9IG5vZGUtPnByb3BlcnRpZXM7CisgICAgd2hpbGUgKHByb3AgIT0gTlVMTCkgeworICAgICAgICBpZiAoeG1sU3RyRXF1YWwocHJvcC0+bmFtZSwgbmFtZSkpICB7CisJICAgIHJldHVybihwcm9wKTsKKyAgICAgICAgfQorCXByb3AgPSBwcm9wLT5uZXh0OworICAgIH0KKyAgICBpZiAoIXhtbENoZWNrRFREKSByZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIENoZWNrIGlmIHRoZXJlIGlzIGEgZGVmYXVsdCBkZWNsYXJhdGlvbiBpbiB0aGUgaW50ZXJuYWwKKyAgICAgKiBvciBleHRlcm5hbCBzdWJzZXRzCisgICAgICovCisgICAgZG9jID0gIG5vZGUtPmRvYzsKKyAgICBpZiAoZG9jICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQXR0cmlidXRlUHRyIGF0dHJEZWNsOworICAgICAgICBpZiAoZG9jLT5pbnRTdWJzZXQgIT0gTlVMTCkgeworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+aW50U3Vic2V0LCBub2RlLT5uYW1lLCBuYW1lKTsKKwkgICAgaWYgKChhdHRyRGVjbCA9PSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkpCisJCWF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsIG5vZGUtPm5hbWUsIG5hbWUpOworICAgICAgICAgICAgaWYgKChhdHRyRGVjbCAhPSBOVUxMKSAmJiAoYXR0ckRlY2wtPmRlZmF1bHRWYWx1ZSAhPSBOVUxMKSkKKyAgICAgICAgICAgICAgLyogcmV0dXJuIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBvbmx5IGlmIGEgZGVmYXVsdCB2YWx1ZSBpcyBnaXZlbgorICAgICAgICAgICAgICAgICAodGhhdCBpbmNsdWRlcyAjRklYRUQgZGVjbGFyYXRpb25zKSAqLworCQlyZXR1cm4oKHhtbEF0dHJQdHIpIGF0dHJEZWNsKTsKKwl9CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxIYXNOc1Byb3A6CisgKiBAbm9kZTogIHRoZSBub2RlCisgKiBAbmFtZTogIHRoZSBhdHRyaWJ1dGUgbmFtZQorICogQG5hbWVTcGFjZTogIHRoZSBVUkkgb2YgdGhlIG5hbWVzcGFjZQorICoKKyAqIFNlYXJjaCBmb3IgYW4gYXR0cmlidXRlIGFzc29jaWF0ZWQgdG8gYSBub2RlCisgKiBUaGlzIGF0dHJpYnV0ZSBoYXMgdG8gYmUgYW5jaG9yZWQgaW4gdGhlIG5hbWVzcGFjZSBzcGVjaWZpZWQuCisgKiBUaGlzIGRvZXMgdGhlIGVudGl0eSBzdWJzdGl0dXRpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGxvb2tzIGluIERURCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvcgorICogZGVmYXVsdCBkZWNsYXJhdGlvbiB2YWx1ZXMgdW5sZXNzIERURCB1c2UgaGFzIGJlZW4gdHVybmVkIG9mZi4KKyAqIE5vdGUgdGhhdCBhIG5hbWVzcGFjZSBvZiBOVUxMIGluZGljYXRlcyB0byB1c2UgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLgorICoKKyAqIFJldHVybnMgdGhlIGF0dHJpYnV0ZSBvciB0aGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uIG9yIE5VTEwKKyAqICAgICBpZiBuZWl0aGVyIHdhcyBmb3VuZC4KKyAqLworeG1sQXR0clB0cgoreG1sSGFzTnNQcm9wKHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqbmFtZVNwYWNlKSB7CisKKyAgICByZXR1cm4oeG1sR2V0UHJvcE5vZGVJbnRlcm5hbChub2RlLCBuYW1lLCBuYW1lU3BhY2UsIHhtbENoZWNrRFREKSk7Cit9CisKKy8qKgorICogeG1sR2V0UHJvcDoKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lCisgKgorICogU2VhcmNoIGFuZCBnZXQgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHRvIGEgbm9kZQorICogVGhpcyBkb2VzIHRoZSBlbnRpdHkgc3Vic3RpdHV0aW9uLgorICogVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGZvciAjRklYRUQgb3IKKyAqIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuCisgKiBOT1RFOiB0aGlzIGZ1bmN0aW9uIGFjdHMgaW5kZXBlbmRlbnRseSBvZiBuYW1lc3BhY2VzIGFzc29jaWF0ZWQKKyAqICAgICAgIHRvIHRoZSBhdHRyaWJ1dGUuIFVzZSB4bWxHZXROc1Byb3AoKSBvciB4bWxHZXROb05zUHJvcCgpCisgKiAgICAgICBmb3IgbmFtZXNwYWNlIGF3YXJlIHByb2Nlc3NpbmcuCisgKgorICogUmV0dXJucyB0aGUgYXR0cmlidXRlIHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICogICAgIEl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuCisgKi8KK3htbENoYXIgKgoreG1sR2V0UHJvcCh4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBwcm9wID0geG1sSGFzUHJvcChub2RlLCBuYW1lKTsKKyAgICBpZiAocHJvcCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICByZXR1cm4oeG1sR2V0UHJvcE5vZGVWYWx1ZUludGVybmFsKHByb3ApKTsKK30KKworLyoqCisgKiB4bWxHZXROb05zUHJvcDoKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lCisgKgorICogU2VhcmNoIGFuZCBnZXQgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHRvIGEgbm9kZQorICogVGhpcyBkb2VzIHRoZSBlbnRpdHkgc3Vic3RpdHV0aW9uLgorICogVGhpcyBmdW5jdGlvbiBsb29rcyBpbiBEVEQgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGZvciAjRklYRUQgb3IKKyAqIGRlZmF1bHQgZGVjbGFyYXRpb24gdmFsdWVzIHVubGVzcyBEVEQgdXNlIGhhcyBiZWVuIHR1cm5lZCBvZmYuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8geG1sR2V0UHJvcCBleGNlcHQgaXQgd2lsbCBhY2NlcHQgb25seQorICogYW4gYXR0cmlidXRlIGluIG5vIG5hbWVzcGFjZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQuCisgKiAgICAgSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4KKyAqLworeG1sQ2hhciAqCit4bWxHZXROb05zUHJvcCh4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBwcm9wID0geG1sR2V0UHJvcE5vZGVJbnRlcm5hbChub2RlLCBuYW1lLCBOVUxMLCB4bWxDaGVja0RURCk7CisgICAgaWYgKHByb3AgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgcmV0dXJuKHhtbEdldFByb3BOb2RlVmFsdWVJbnRlcm5hbChwcm9wKSk7Cit9CisKKy8qKgorICogeG1sR2V0TnNQcm9wOgorICogQG5vZGU6ICB0aGUgbm9kZQorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqIEBuYW1lU3BhY2U6ICB0aGUgVVJJIG9mIHRoZSBuYW1lc3BhY2UKKyAqCisgKiBTZWFyY2ggYW5kIGdldCB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIGFzc29jaWF0ZWQgdG8gYSBub2RlCisgKiBUaGlzIGF0dHJpYnV0ZSBoYXMgdG8gYmUgYW5jaG9yZWQgaW4gdGhlIG5hbWVzcGFjZSBzcGVjaWZpZWQuCisgKiBUaGlzIGRvZXMgdGhlIGVudGl0eSBzdWJzdGl0dXRpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGxvb2tzIGluIERURCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gZm9yICNGSVhFRCBvcgorICogZGVmYXVsdCBkZWNsYXJhdGlvbiB2YWx1ZXMgdW5sZXNzIERURCB1c2UgaGFzIGJlZW4gdHVybmVkIG9mZi4KKyAqCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQuCisgKiAgICAgSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4KKyAqLworeG1sQ2hhciAqCit4bWxHZXROc1Byb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyICpuYW1lLCBjb25zdCB4bWxDaGFyICpuYW1lU3BhY2UpIHsKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBwcm9wID0geG1sR2V0UHJvcE5vZGVJbnRlcm5hbChub2RlLCBuYW1lLCBuYW1lU3BhY2UsIHhtbENoZWNrRFREKTsKKyAgICBpZiAocHJvcCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICByZXR1cm4oeG1sR2V0UHJvcE5vZGVWYWx1ZUludGVybmFsKHByb3ApKTsKK30KKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorLyoqCisgKiB4bWxVbnNldFByb3A6CisgKiBAbm9kZTogIHRoZSBub2RlCisgKiBAbmFtZTogIHRoZSBhdHRyaWJ1dGUgbmFtZQorICoKKyAqIFJlbW92ZSBhbiBhdHRyaWJ1dGUgY2FycmllZCBieSBhIG5vZGUuCisgKiBUaGlzIGhhbmRsZXMgb25seSBhdHRyaWJ1dGVzIGluIG5vIG5hbWVzcGFjZS4KKyAqIFJldHVybnMgMCBpZiBzdWNjZXNzZnVsLCAtMSBpZiBub3QgZm91bmQKKyAqLworaW50Cit4bWxVbnNldFByb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sQXR0clB0ciBwcm9wOworCisgICAgcHJvcCA9IHhtbEdldFByb3BOb2RlSW50ZXJuYWwobm9kZSwgbmFtZSwgTlVMTCwgMCk7CisgICAgaWYgKHByb3AgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIHhtbFVubGlua05vZGUoKHhtbE5vZGVQdHIpIHByb3ApOworICAgIHhtbEZyZWVQcm9wKHByb3ApOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxVbnNldE5zUHJvcDoKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBuczogIHRoZSBuYW1lc3BhY2UgZGVmaW5pdGlvbgorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqCisgKiBSZW1vdmUgYW4gYXR0cmlidXRlIGNhcnJpZWQgYnkgYSBub2RlLgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIC0xIGlmIG5vdCBmb3VuZAorICovCitpbnQKK3htbFVuc2V0TnNQcm9wKHhtbE5vZGVQdHIgbm9kZSwgeG1sTnNQdHIgbnMsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBwcm9wID0geG1sR2V0UHJvcE5vZGVJbnRlcm5hbChub2RlLCBuYW1lLCAobnMgIT0gTlVMTCkgPyBucy0+aHJlZiA6IE5VTEwsIDApOworICAgIGlmIChwcm9wID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICB4bWxVbmxpbmtOb2RlKCh4bWxOb2RlUHRyKSBwcm9wKTsKKyAgICB4bWxGcmVlUHJvcChwcm9wKTsKKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTElCWE1MX1RSRUVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfWElOQ0xVREVfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpCisvKioKKyAqIHhtbFNldFByb3A6CisgKiBAbm9kZTogIHRoZSBub2RlCisgKiBAbmFtZTogIHRoZSBhdHRyaWJ1dGUgbmFtZSAoYSBRTmFtZSkKKyAqIEB2YWx1ZTogIHRoZSBhdHRyaWJ1dGUgdmFsdWUKKyAqCisgKiBTZXQgKG9yIHJlc2V0KSBhbiBhdHRyaWJ1dGUgY2FycmllZCBieSBhIG5vZGUuCisgKiBJZiBAbmFtZSBoYXMgYSBwcmVmaXgsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcKKyAqIG5hbWVzcGFjZS1iaW5kaW5nIHdpbGwgYmUgdXNlZCwgaWYgaW4gc2NvcGU7IGl0IGlzIGFuCisgKiBlcnJvciBpdCB0aGVyZSdzIG5vIHN1Y2ggbnMtYmluZGluZyBmb3IgdGhlIHByZWZpeCBpbgorICogc2NvcGUuCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgcG9pbnRlci4KKyAqCisgKi8KK3htbEF0dHJQdHIKK3htbFNldFByb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCB4bWxDaGFyICpuYW1lLCBjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIGludCBsZW47CisgICAgY29uc3QgeG1sQ2hhciAqbnFuYW1lOworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpIHx8IChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKQorCXJldHVybihOVUxMKTsKKworICAgIC8qCisgICAgICogaGFuZGxlIFFOYW1lcworICAgICAqLworICAgIG5xbmFtZSA9IHhtbFNwbGl0UU5hbWUzKG5hbWUsICZsZW4pOworICAgIGlmIChucW5hbWUgIT0gTlVMTCkgeworICAgICAgICB4bWxOc1B0ciBuczsKKwl4bWxDaGFyICpwcmVmaXggPSB4bWxTdHJuZHVwKG5hbWUsIGxlbik7CisJbnMgPSB4bWxTZWFyY2hOcyhub2RlLT5kb2MsIG5vZGUsIHByZWZpeCk7CisJaWYgKHByZWZpeCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHByZWZpeCk7CisJaWYgKG5zICE9IE5VTEwpCisJICAgIHJldHVybih4bWxTZXROc1Byb3Aobm9kZSwgbnMsIG5xbmFtZSwgdmFsdWUpKTsKKyAgICB9CisgICAgcmV0dXJuKHhtbFNldE5zUHJvcChub2RlLCBOVUxMLCBuYW1lLCB2YWx1ZSkpOworfQorCisvKioKKyAqIHhtbFNldE5zUHJvcDoKKyAqIEBub2RlOiAgdGhlIG5vZGUKKyAqIEBuczogIHRoZSBuYW1lc3BhY2UgZGVmaW5pdGlvbgorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqIEB2YWx1ZTogIHRoZSBhdHRyaWJ1dGUgdmFsdWUKKyAqCisgKiBTZXQgKG9yIHJlc2V0KSBhbiBhdHRyaWJ1dGUgY2FycmllZCBieSBhIG5vZGUuCisgKiBUaGUgbnMgc3RydWN0dXJlIG11c3QgYmUgaW4gc2NvcGUsIHRoaXMgaXMgbm90IGNoZWNrZWQKKyAqCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgcG9pbnRlci4KKyAqLworeG1sQXR0clB0cgoreG1sU2V0TnNQcm9wKHhtbE5vZGVQdHIgbm9kZSwgeG1sTnNQdHIgbnMsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSkKK3sKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBpZiAobnMgJiYgKG5zLT5ocmVmID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBwcm9wID0geG1sR2V0UHJvcE5vZGVJbnRlcm5hbChub2RlLCBuYW1lLCAobnMgIT0gTlVMTCkgPyBucy0+aHJlZiA6IE5VTEwsIDApOworICAgIGlmIChwcm9wICE9IE5VTEwpIHsKKwkvKgorCSogTW9kaWZ5IHRoZSBhdHRyaWJ1dGUncyB2YWx1ZS4KKwkqLworCWlmIChwcm9wLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEKSB7CisJICAgIHhtbFJlbW92ZUlEKG5vZGUtPmRvYywgcHJvcCk7CisJICAgIHByb3AtPmF0eXBlID0gWE1MX0FUVFJJQlVURV9JRDsKKwl9CisJaWYgKHByb3AtPmNoaWxkcmVuICE9IE5VTEwpCisJICAgIHhtbEZyZWVOb2RlTGlzdChwcm9wLT5jaGlsZHJlbik7CisJcHJvcC0+Y2hpbGRyZW4gPSBOVUxMOworCXByb3AtPmxhc3QgPSBOVUxMOworCXByb3AtPm5zID0gbnM7CisJaWYgKHZhbHVlICE9IE5VTEwpIHsKKwkgICAgeG1sTm9kZVB0ciB0bXA7CisKKwkgICAgaWYoIXhtbENoZWNrVVRGOCh2YWx1ZSkpIHsKKwkgICAgICAgIHhtbFRyZWVFcnIoWE1MX1RSRUVfTk9UX1VURjgsICh4bWxOb2RlUHRyKSBub2RlLT5kb2MsCisJICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgICAgIGlmIChub2RlLT5kb2MgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+ZG9jLT5lbmNvZGluZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiSVNPLTg4NTktMSIpOworCSAgICB9CisJICAgIHByb3AtPmNoaWxkcmVuID0geG1sTmV3RG9jVGV4dChub2RlLT5kb2MsIHZhbHVlKTsKKwkgICAgcHJvcC0+bGFzdCA9IE5VTEw7CisJICAgIHRtcCA9IHByb3AtPmNoaWxkcmVuOworCSAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKwkJdG1wLT5wYXJlbnQgPSAoeG1sTm9kZVB0cikgcHJvcDsKKwkJaWYgKHRtcC0+bmV4dCA9PSBOVUxMKQorCQkgICAgcHJvcC0+bGFzdCA9IHRtcDsKKwkJdG1wID0gdG1wLT5uZXh0OworCSAgICB9CisJfQorCWlmIChwcm9wLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEKQorCSAgICB4bWxBZGRJRChOVUxMLCBub2RlLT5kb2MsIHZhbHVlLCBwcm9wKTsKKwlyZXR1cm4ocHJvcCk7CisgICAgfQorICAgIC8qCisgICAgKiBObyBlcXVhbCBhdHRyIGZvdW5kOyBjcmVhdGUgYSBuZXcgb25lLgorICAgICovCisgICAgcmV0dXJuKHhtbE5ld1Byb3BJbnRlcm5hbChub2RlLCBucywgbmFtZSwgdmFsdWUsIDApKTsKK30KKworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxOb2RlSXNUZXh0OgorICogQG5vZGU6ICB0aGUgbm9kZQorICoKKyAqIElzIHRoaXMgbm9kZSBhIFRleHQgbm9kZSA/CisgKiBSZXR1cm5zIDEgeWVzLCAwIG5vCisgKi8KK2ludAoreG1sTm9kZUlzVGV4dCh4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSByZXR1cm4oMCk7CisKKyAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSByZXR1cm4oMSk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbElzQmxhbmtOb2RlOgorICogQG5vZGU6ICB0aGUgbm9kZQorICoKKyAqIENoZWNrcyB3aGV0aGVyIHRoaXMgbm9kZSBpcyBhbiBlbXB0eSBvciB3aGl0ZXNwYWNlIG9ubHkKKyAqIChhbmQgcG9zc2libHkgaWdub3JhYmxlKSB0ZXh0LW5vZGUuCisgKgorICogUmV0dXJucyAxIHllcywgMCBubworICovCitpbnQKK3htbElzQmxhbmtOb2RlKHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGNvbnN0IHhtbENoYXIgKmN1cjsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSByZXR1cm4oMCk7CisKKyAgICBpZiAoKG5vZGUtPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkgJiYKKyAgICAgICAgKG5vZGUtPnR5cGUgIT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpCisJcmV0dXJuKDApOworICAgIGlmIChub2RlLT5jb250ZW50ID09IE5VTEwpIHJldHVybigxKTsKKyAgICBjdXIgPSBub2RlLT5jb250ZW50OworICAgIHdoaWxlICgqY3VyICE9IDApIHsKKwlpZiAoIUlTX0JMQU5LX0NIKCpjdXIpKSByZXR1cm4oMCk7CisJY3VyKys7CisgICAgfQorCisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFRleHRDb25jYXQ6CisgKiBAbm9kZTogIHRoZSBub2RlCisgKiBAY29udGVudDogIHRoZSBjb250ZW50CisgKiBAbGVuOiAgQGNvbnRlbnQgbGVuZ3RoCisgKgorICogQ29uY2F0IHRoZSBnaXZlbiBzdHJpbmcgYXQgdGhlIGVuZCBvZiB0aGUgZXhpc3Rpbmcgbm9kZSBjb250ZW50CisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIG90aGVyd2lzZQorICovCisKK2ludAoreG1sVGV4dENvbmNhdCh4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IHhtbENoYXIgKmNvbnRlbnQsIGludCBsZW4pIHsKKyAgICBpZiAobm9kZSA9PSBOVUxMKSByZXR1cm4oLTEpOworCisgICAgaWYgKChub2RlLT50eXBlICE9IFhNTF9URVhUX05PREUpICYmCisgICAgICAgIChub2RlLT50eXBlICE9IFhNTF9DREFUQV9TRUNUSU9OX05PREUpICYmCisJKG5vZGUtPnR5cGUgIT0gWE1MX0NPTU1FTlRfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfUElfTk9ERSkpIHsKKyNpZmRlZiBERUJVR19UUkVFCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxUZXh0Q29uY2F0OiBub2RlIGlzIG5vdCB0ZXh0IG5vciBDREFUQVxuIik7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgLyogbmVlZCB0byBjaGVjayBpZiBjb250ZW50IGlzIGN1cnJlbnRseSBpbiB0aGUgZGljdGlvbmFyeSAqLworICAgIGlmICgobm9kZS0+Y29udGVudCA9PSAoeG1sQ2hhciAqKSAmKG5vZGUtPnByb3BlcnRpZXMpKSB8fAorICAgICAgICAoKG5vZGUtPmRvYyAhPSBOVUxMKSAmJiAobm9kZS0+ZG9jLT5kaWN0ICE9IE5VTEwpICYmCisJCXhtbERpY3RPd25zKG5vZGUtPmRvYy0+ZGljdCwgbm9kZS0+Y29udGVudCkpKSB7CisJbm9kZS0+Y29udGVudCA9IHhtbFN0cm5jYXROZXcobm9kZS0+Y29udGVudCwgY29udGVudCwgbGVuKTsKKyAgICB9IGVsc2UgeworICAgICAgICBub2RlLT5jb250ZW50ID0geG1sU3RybmNhdChub2RlLT5jb250ZW50LCBjb250ZW50LCBsZW4pOworICAgIH0KKyAgICBub2RlLT5wcm9wZXJ0aWVzID0gTlVMTDsKKyAgICBpZiAobm9kZS0+Y29udGVudCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCU91dHB1dCA6IHRvIGEgRklMRSBvciBpbiBtZW1vcnkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sQnVmZmVyQ3JlYXRlOgorICoKKyAqIHJvdXRpbmUgdG8gY3JlYXRlIGFuIFhNTCBidWZmZXIuCisgKiByZXR1cm5zIHRoZSBuZXcgc3RydWN0dXJlLgorICovCit4bWxCdWZmZXJQdHIKK3htbEJ1ZmZlckNyZWF0ZSh2b2lkKSB7CisgICAgeG1sQnVmZmVyUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxCdWZmZXJQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sQnVmZmVyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sVHJlZUVyck1lbW9yeSgiY3JlYXRpbmcgYnVmZmVyIik7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0LT51c2UgPSAwOworICAgIHJldC0+c2l6ZSA9IHhtbERlZmF1bHRCdWZmZXJTaXplOworICAgIHJldC0+YWxsb2MgPSB4bWxCdWZmZXJBbGxvY1NjaGVtZTsKKyAgICByZXQtPmNvbnRlbnQgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMocmV0LT5zaXplICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICBpZiAocmV0LT5jb250ZW50ID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJjcmVhdGluZyBidWZmZXIiKTsKKwl4bWxGcmVlKHJldCk7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0LT5jb250ZW50WzBdID0gMDsKKyAgICByZXQtPmNvbnRlbnRJTyA9IE5VTEw7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQnVmZmVyQ3JlYXRlU2l6ZToKKyAqIEBzaXplOiBpbml0aWFsIHNpemUgb2YgYnVmZmVyCisgKgorICogcm91dGluZSB0byBjcmVhdGUgYW4gWE1MIGJ1ZmZlci4KKyAqIHJldHVybnMgdGhlIG5ldyBzdHJ1Y3R1cmUuCisgKi8KK3htbEJ1ZmZlclB0cgoreG1sQnVmZmVyQ3JlYXRlU2l6ZShzaXplX3Qgc2l6ZSkgeworICAgIHhtbEJ1ZmZlclB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sQnVmZmVyUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEJ1ZmZlcikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFRyZWVFcnJNZW1vcnkoImNyZWF0aW5nIGJ1ZmZlciIpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldC0+dXNlID0gMDsKKyAgICByZXQtPmFsbG9jID0geG1sQnVmZmVyQWxsb2NTY2hlbWU7CisgICAgcmV0LT5zaXplID0gKHNpemUgPyBzaXplKzIgOiAwKTsgICAgICAgICAvKiArMSBmb3IgZW5kaW5nIG51bGwgKi8KKyAgICBpZiAocmV0LT5zaXplKXsKKyAgICAgICAgcmV0LT5jb250ZW50ID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKHJldC0+c2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgICAgIGlmIChyZXQtPmNvbnRlbnQgPT0gTlVMTCkgeworCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJjcmVhdGluZyBidWZmZXIiKTsKKyAgICAgICAgICAgIHhtbEZyZWUocmV0KTsKKyAgICAgICAgICAgIHJldHVybihOVUxMKTsKKyAgICAgICAgfQorICAgICAgICByZXQtPmNvbnRlbnRbMF0gPSAwOworICAgIH0gZWxzZQorCXJldC0+Y29udGVudCA9IE5VTEw7CisgICAgcmV0LT5jb250ZW50SU8gPSBOVUxMOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEJ1ZmZlckNyZWF0ZVN0YXRpYzoKKyAqIEBtZW06IHRoZSBtZW1vcnkgYXJlYQorICogQHNpemU6ICB0aGUgc2l6ZSBpbiBieXRlCisgKgorICogcm91dGluZSB0byBjcmVhdGUgYW4gWE1MIGJ1ZmZlciBmcm9tIGFuIGltbXV0YWJsZSBtZW1vcnkgYXJlYS4KKyAqIFRoZSBhcmVhIHdvbid0IGJlIG1vZGlmaWVkIG5vciBjb3BpZWQsIGFuZCBpcyBleHBlY3RlZCB0byBiZQorICogcHJlc2VudCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgbGlmZXRpbWUuCisgKgorICogcmV0dXJucyB0aGUgbmV3IHN0cnVjdHVyZS4KKyAqLworeG1sQnVmZmVyUHRyCit4bWxCdWZmZXJDcmVhdGVTdGF0aWModm9pZCAqbWVtLCBzaXplX3Qgc2l6ZSkgeworICAgIHhtbEJ1ZmZlclB0ciByZXQ7CisKKyAgICBpZiAoKG1lbSA9PSBOVUxMKSB8fCAoc2l6ZSA9PSAwKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0gKHhtbEJ1ZmZlclB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxCdWZmZXIpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJjcmVhdGluZyBidWZmZXIiKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXQtPnVzZSA9IHNpemU7CisgICAgcmV0LT5zaXplID0gc2l6ZTsKKyAgICByZXQtPmFsbG9jID0gWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEU7CisgICAgcmV0LT5jb250ZW50ID0gKHhtbENoYXIgKikgbWVtOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWU6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlciB0byB0dW5lCisgKiBAc2NoZW1lOiAgYWxsb2NhdGlvbiBzY2hlbWUgdG8gdXNlCisgKgorICogU2V0cyB0aGUgYWxsb2NhdGlvbiBzY2hlbWUgZm9yIHRoaXMgYnVmZmVyCisgKi8KK3ZvaWQKK3htbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUoeG1sQnVmZmVyUHRyIGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQnVmZmVyQWxsb2NhdGlvblNjaGVtZSBzY2hlbWUpIHsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19CVUZGRVIKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxCdWZmZXJTZXRBbGxvY2F0aW9uU2NoZW1lOiBidWYgPT0gTlVMTFxuIik7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoKGJ1Zi0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUpIHx8CisgICAgICAgIChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU8pKSByZXR1cm47CisgICAgaWYgKChzY2hlbWUgPT0gWE1MX0JVRkZFUl9BTExPQ19ET1VCTEVJVCkgfHwKKyAgICAgICAgKHNjaGVtZSA9PSBYTUxfQlVGRkVSX0FMTE9DX0VYQUNUKSB8fAorICAgICAgICAoc2NoZW1lID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSkKKwlidWYtPmFsbG9jID0gc2NoZW1lOworfQorCisvKioKKyAqIHhtbEJ1ZmZlckZyZWU6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlciB0byBmcmVlCisgKgorICogRnJlZXMgYW4gWE1MIGJ1ZmZlci4gSXQgZnJlZXMgYm90aCB0aGUgY29udGVudCBhbmQgdGhlIHN0cnVjdHVyZSB3aGljaAorICogZW5jYXBzdWxhdGUgaXQuCisgKi8KK3ZvaWQKK3htbEJ1ZmZlckZyZWUoeG1sQnVmZmVyUHRyIGJ1ZikgeworICAgIGlmIChidWYgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX0JVRkZFUgorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEJ1ZmZlckZyZWU6IGJ1ZiA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybjsKKyAgICB9CisKKyAgICBpZiAoKGJ1Zi0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTykgJiYKKyAgICAgICAgKGJ1Zi0+Y29udGVudElPICE9IE5VTEwpKSB7CisgICAgICAgIHhtbEZyZWUoYnVmLT5jb250ZW50SU8pOworICAgIH0gZWxzZSBpZiAoKGJ1Zi0+Y29udGVudCAhPSBOVUxMKSAmJgorICAgICAgICAoYnVmLT5hbGxvYyAhPSBYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSkpIHsKKyAgICAgICAgeG1sRnJlZShidWYtPmNvbnRlbnQpOworICAgIH0KKyAgICB4bWxGcmVlKGJ1Zik7Cit9CisKKy8qKgorICogeG1sQnVmZmVyRW1wdHk6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlcgorICoKKyAqIGVtcHR5IGEgYnVmZmVyLgorICovCit2b2lkCit4bWxCdWZmZXJFbXB0eSh4bWxCdWZmZXJQdHIgYnVmKSB7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKGJ1Zi0+Y29udGVudCA9PSBOVUxMKSByZXR1cm47CisgICAgYnVmLT51c2UgPSAwOworICAgIGlmIChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSB7CisgICAgICAgIGJ1Zi0+Y29udGVudCA9IEJBRF9DQVNUICIiOworICAgIH0gZWxzZSBpZiAoKGJ1Zi0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTykgJiYKKyAgICAgICAgICAgICAgIChidWYtPmNvbnRlbnRJTyAhPSBOVUxMKSkgeworICAgICAgICBzaXplX3Qgc3RhcnRfYnVmID0gYnVmLT5jb250ZW50IC0gYnVmLT5jb250ZW50SU87CisKKwlidWYtPnNpemUgKz0gc3RhcnRfYnVmOworICAgICAgICBidWYtPmNvbnRlbnQgPSBidWYtPmNvbnRlbnRJTzsKKyAgICAgICAgYnVmLT5jb250ZW50WzBdID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICBidWYtPmNvbnRlbnRbMF0gPSAwOworICAgIH0KK30KKworLyoqCisgKiB4bWxCdWZmZXJTaHJpbms6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlciB0byBkdW1wCisgKiBAbGVuOiAgdGhlIG51bWJlciBvZiB4bWxDaGFyIHRvIHJlbW92ZQorICoKKyAqIFJlbW92ZSB0aGUgYmVnaW5uaW5nIG9mIGFuIFhNTCBidWZmZXIuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mICN4bWxDaGFyIHJlbW92ZWQsIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50Cit4bWxCdWZmZXJTaHJpbmsoeG1sQnVmZmVyUHRyIGJ1ZiwgdW5zaWduZWQgaW50IGxlbikgeworICAgIGlmIChidWYgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAobGVuID09IDApIHJldHVybigwKTsKKyAgICBpZiAobGVuID4gYnVmLT51c2UpIHJldHVybigtMSk7CisKKyAgICBidWYtPnVzZSAtPSBsZW47CisgICAgaWYgKChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSB8fAorICAgICAgICAoKGJ1Zi0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTykgJiYgKGJ1Zi0+Y29udGVudElPICE9IE5VTEwpKSkgeworCS8qCisJICogd2UganVzdCBtb3ZlIHRoZSBjb250ZW50IHBvaW50ZXIsIGJ1dCBhbHNvIG1ha2Ugc3VyZQorCSAqIHRoZSBwZXJjZWl2ZWQgYnVmZmVyIHNpemUgaGFzIHNocmlua2VkIGFjY29yZGluZ2x5CisJICovCisgICAgICAgIGJ1Zi0+Y29udGVudCArPSBsZW47CisJYnVmLT5zaXplIC09IGxlbjsKKworICAgICAgICAvKgorCSAqIHNvbWV0aW1lcyB0aG91Z2ggaXQgbWF5YmUgYmUgYmV0dGVyIHRvIHJlYWxseSBzaHJpbmsKKwkgKiBvbiBJTyBidWZmZXJzCisJICovCisJaWYgKChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU8pICYmIChidWYtPmNvbnRlbnRJTyAhPSBOVUxMKSkgeworCSAgICBzaXplX3Qgc3RhcnRfYnVmID0gYnVmLT5jb250ZW50IC0gYnVmLT5jb250ZW50SU87CisJICAgIGlmIChzdGFydF9idWYgPj0gYnVmLT5zaXplKSB7CisJCW1lbW1vdmUoYnVmLT5jb250ZW50SU8sICZidWYtPmNvbnRlbnRbMF0sIGJ1Zi0+dXNlKTsKKwkJYnVmLT5jb250ZW50ID0gYnVmLT5jb250ZW50SU87CisJCWJ1Zi0+Y29udGVudFtidWYtPnVzZV0gPSAwOworCQlidWYtPnNpemUgKz0gc3RhcnRfYnVmOworCSAgICB9CisJfQorICAgIH0gZWxzZSB7CisJbWVtbW92ZShidWYtPmNvbnRlbnQsICZidWYtPmNvbnRlbnRbbGVuXSwgYnVmLT51c2UpOworCWJ1Zi0+Y29udGVudFtidWYtPnVzZV0gPSAwOworICAgIH0KKyAgICByZXR1cm4obGVuKTsKK30KKworLyoqCisgKiB4bWxCdWZmZXJHcm93OgorICogQGJ1ZjogIHRoZSBidWZmZXIKKyAqIEBsZW46ICB0aGUgbWluaW11bSBmcmVlIHNpemUgdG8gYWxsb2NhdGUKKyAqCisgKiBHcm93IHRoZSBhdmFpbGFibGUgc3BhY2Ugb2YgYW4gWE1MIGJ1ZmZlci4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgYXZhaWxhYmxlIHNwYWNlIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxCdWZmZXJHcm93KHhtbEJ1ZmZlclB0ciBidWYsIHVuc2lnbmVkIGludCBsZW4pIHsKKyAgICBpbnQgc2l6ZTsKKyAgICB4bWxDaGFyICpuZXdidWY7CisKKyAgICBpZiAoYnVmID09IE5VTEwpIHJldHVybigtMSk7CisKKyAgICBpZiAoYnVmLT5hbGxvYyA9PSBYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSkgcmV0dXJuKDApOworICAgIGlmIChsZW4gKyBidWYtPnVzZSA8IGJ1Zi0+c2l6ZSkgcmV0dXJuKDApOworCisgICAgLyoKKyAgICAgKiBXaW5kb3dzIGhhcyBhIEJJRyBwcm9ibGVtIG9uIHJlYWxsb2MgdGltaW5nLCBzbyB3ZSB0cnkgdG8gZG91YmxlCisgICAgICogdGhlIGJ1ZmZlciBzaXplIChpZiB0aGF0J3MgZW5vdWdoKSAoYnVnIDE0NjY5NykKKyAgICAgKiBBcHBhcmVudGx5IEJTRCB0b28sIGFuZCBpdCdzIHByb2JhYmx5IGJlc3QgZm9yIGxpbnV4IHRvbworICAgICAqIE9uIGFuIGVtYmVkZGVkIHN5c3RlbSB0aGlzIG1heSBiZSBzb21ldGhpbmcgdG8gY2hhbmdlCisgICAgICovCisjaWYgMQorICAgIGlmIChidWYtPnNpemUgPiBsZW4pCisgICAgICAgIHNpemUgPSBidWYtPnNpemUgKiAyOworICAgIGVsc2UKKyAgICAgICAgc2l6ZSA9IGJ1Zi0+dXNlICsgbGVuICsgMTAwOworI2Vsc2UKKyAgICBzaXplID0gYnVmLT51c2UgKyBsZW4gKyAxMDA7CisjZW5kaWYKKworICAgIGlmICgoYnVmLT5hbGxvYyA9PSBYTUxfQlVGRkVSX0FMTE9DX0lPKSAmJiAoYnVmLT5jb250ZW50SU8gIT0gTlVMTCkpIHsKKyAgICAgICAgc2l6ZV90IHN0YXJ0X2J1ZiA9IGJ1Zi0+Y29udGVudCAtIGJ1Zi0+Y29udGVudElPOworCisJbmV3YnVmID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhidWYtPmNvbnRlbnRJTywgc3RhcnRfYnVmICsgc2l6ZSk7CisJaWYgKG5ld2J1ZiA9PSBOVUxMKSB7CisJICAgIHhtbFRyZWVFcnJNZW1vcnkoImdyb3dpbmcgYnVmZmVyIik7CisJICAgIHJldHVybigtMSk7CisJfQorCWJ1Zi0+Y29udGVudElPID0gbmV3YnVmOworCWJ1Zi0+Y29udGVudCA9IG5ld2J1ZiArIHN0YXJ0X2J1ZjsKKyAgICB9IGVsc2UgeworCW5ld2J1ZiA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLT5jb250ZW50LCBzaXplKTsKKwlpZiAobmV3YnVmID09IE5VTEwpIHsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiZ3Jvd2luZyBidWZmZXIiKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJYnVmLT5jb250ZW50ID0gbmV3YnVmOworICAgIH0KKyAgICBidWYtPnNpemUgPSBzaXplOworICAgIHJldHVybihidWYtPnNpemUgLSBidWYtPnVzZSk7Cit9CisKKy8qKgorICogeG1sQnVmZmVyRHVtcDoKKyAqIEBmaWxlOiAgdGhlIGZpbGUgb3V0cHV0CisgKiBAYnVmOiAgdGhlIGJ1ZmZlciB0byBkdW1wCisgKgorICogRHVtcHMgYW4gWE1MIGJ1ZmZlciB0byAgYSBGSUxFICouCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgI3htbENoYXIgd3JpdHRlbgorICovCitpbnQKK3htbEJ1ZmZlckR1bXAoRklMRSAqZmlsZSwgeG1sQnVmZmVyUHRyIGJ1ZikgeworICAgIGludCByZXQ7CisKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19CVUZGRVIKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxCdWZmZXJEdW1wOiBidWYgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmIChidWYtPmNvbnRlbnQgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX0JVRkZFUgorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEJ1ZmZlckR1bXA6IGJ1Zi0+Y29udGVudCA9PSBOVUxMXG4iKTsKKyNlbmRpZgorCXJldHVybigwKTsKKyAgICB9CisgICAgaWYgKGZpbGUgPT0gTlVMTCkKKwlmaWxlID0gc3Rkb3V0OworICAgIHJldCA9IGZ3cml0ZShidWYtPmNvbnRlbnQsIHNpemVvZih4bWxDaGFyKSwgYnVmLT51c2UsIGZpbGUpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEJ1ZmZlckNvbnRlbnQ6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlcgorICoKKyAqIEZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIGNvbnRlbnQgb2YgYSBidWZmZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBpbnRlcm5hbCBjb250ZW50CisgKi8KKworY29uc3QgeG1sQ2hhciAqCit4bWxCdWZmZXJDb250ZW50KGNvbnN0IHhtbEJ1ZmZlclB0ciBidWYpCit7CisgICAgaWYoIWJ1ZikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICByZXR1cm4gYnVmLT5jb250ZW50OworfQorCisvKioKKyAqIHhtbEJ1ZmZlckxlbmd0aDoKKyAqIEBidWY6ICB0aGUgYnVmZmVyCisgKgorICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBsZW5ndGggb2YgYSBidWZmZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgZGF0YSBpbiB0aGUgaW50ZXJuYWwgY29udGVudAorICovCisKK2ludAoreG1sQnVmZmVyTGVuZ3RoKGNvbnN0IHhtbEJ1ZmZlclB0ciBidWYpCit7CisgICAgaWYoIWJ1ZikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gYnVmLT51c2U7Cit9CisKKy8qKgorICogeG1sQnVmZmVyUmVzaXplOgorICogQGJ1ZjogIHRoZSBidWZmZXIgdG8gcmVzaXplCisgKiBAc2l6ZTogIHRoZSBkZXNpcmVkIHNpemUKKyAqCisgKiBSZXNpemUgYSBidWZmZXIgdG8gYWNjb21tb2RhdGUgbWluaW11bSBzaXplIG9mIEBzaXplLgorICoKKyAqIFJldHVybnMgIDAgaW4gY2FzZSBvZiBwcm9ibGVtcywgMSBvdGhlcndpc2UKKyAqLworaW50Cit4bWxCdWZmZXJSZXNpemUoeG1sQnVmZmVyUHRyIGJ1ZiwgdW5zaWduZWQgaW50IHNpemUpCit7CisgICAgdW5zaWduZWQgaW50IG5ld1NpemU7CisgICAgeG1sQ2hhciogcmVidWYgPSBOVUxMOworICAgIHNpemVfdCBzdGFydF9idWY7CisKKyAgICBpZiAoYnVmID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKworICAgIGlmIChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSByZXR1cm4oMCk7CisKKyAgICAvKiBEb24ndCByZXNpemUgaWYgd2UgZG9uJ3QgaGF2ZSB0byAqLworICAgIGlmIChzaXplIDwgYnVmLT5zaXplKQorICAgICAgICByZXR1cm4gMTsKKworICAgIC8qIGZpZ3VyZSBvdXQgbmV3IHNpemUgKi8KKyAgICBzd2l0Y2ggKGJ1Zi0+YWxsb2MpeworCWNhc2UgWE1MX0JVRkZFUl9BTExPQ19JTzoKKwljYXNlIFhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQ6CisJICAgIC8qdGFrZSBjYXJlIG9mIGVtcHR5IGNhc2UqLworCSAgICBuZXdTaXplID0gKGJ1Zi0+c2l6ZSA/IGJ1Zi0+c2l6ZSoyIDogc2l6ZSArIDEwKTsKKwkgICAgd2hpbGUgKHNpemUgPiBuZXdTaXplKSB7CisJICAgICAgICBpZiAobmV3U2l6ZSA+IFVJTlRfTUFYIC8gMikgeworCSAgICAgICAgICAgIHhtbFRyZWVFcnJNZW1vcnkoImdyb3dpbmcgYnVmZmVyIik7CisJICAgICAgICAgICAgcmV0dXJuIDA7CisJICAgICAgICB9CisJICAgICAgICBuZXdTaXplICo9IDI7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfQlVGRkVSX0FMTE9DX0VYQUNUOgorCSAgICBuZXdTaXplID0gc2l6ZSsxMDsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgbmV3U2l6ZSA9IHNpemUrMTA7CisJICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICgoYnVmLT5hbGxvYyA9PSBYTUxfQlVGRkVSX0FMTE9DX0lPKSAmJiAoYnVmLT5jb250ZW50SU8gIT0gTlVMTCkpIHsKKyAgICAgICAgc3RhcnRfYnVmID0gYnVmLT5jb250ZW50IC0gYnVmLT5jb250ZW50SU87CisKKyAgICAgICAgaWYgKHN0YXJ0X2J1ZiA+IG5ld1NpemUpIHsKKwkgICAgLyogbW92ZSBkYXRhIGJhY2sgdG8gc3RhcnQgKi8KKwkgICAgbWVtbW92ZShidWYtPmNvbnRlbnRJTywgYnVmLT5jb250ZW50LCBidWYtPnVzZSk7CisJICAgIGJ1Zi0+Y29udGVudCA9IGJ1Zi0+Y29udGVudElPOworCSAgICBidWYtPmNvbnRlbnRbYnVmLT51c2VdID0gMDsKKwkgICAgYnVmLT5zaXplICs9IHN0YXJ0X2J1ZjsKKwl9IGVsc2UgeworCSAgICByZWJ1ZiA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLT5jb250ZW50SU8sIHN0YXJ0X2J1ZiArIG5ld1NpemUpOworCSAgICBpZiAocmVidWYgPT0gTlVMTCkgeworCQl4bWxUcmVlRXJyTWVtb3J5KCJncm93aW5nIGJ1ZmZlciIpOworCQlyZXR1cm4gMDsKKwkgICAgfQorCSAgICBidWYtPmNvbnRlbnRJTyA9IHJlYnVmOworCSAgICBidWYtPmNvbnRlbnQgPSByZWJ1ZiArIHN0YXJ0X2J1ZjsKKwl9CisgICAgfSBlbHNlIHsKKwlpZiAoYnVmLT5jb250ZW50ID09IE5VTEwpIHsKKwkgICAgcmVidWYgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobmV3U2l6ZSk7CisJfSBlbHNlIGlmIChidWYtPnNpemUgLSBidWYtPnVzZSA8IDEwMCkgeworCSAgICByZWJ1ZiA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MoYnVmLT5jb250ZW50LCBuZXdTaXplKTsKKyAgICAgICAgfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgICogaWYgd2UgYXJlIHJlYWxsb2NhdGluZyBhIGJ1ZmZlciBmYXIgZnJvbSBiZWluZyBmdWxsLCBpdCdzCisJICAgICAqIGJldHRlciB0byBtYWtlIGEgbmV3IGFsbG9jYXRpb24gYW5kIGNvcHkgb25seSB0aGUgdXNlZCByYW5nZQorCSAgICAgKiBhbmQgZnJlZSB0aGUgb2xkIG9uZS4KKwkgICAgICovCisJICAgIHJlYnVmID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKG5ld1NpemUpOworCSAgICBpZiAocmVidWYgIT0gTlVMTCkgeworCQltZW1jcHkocmVidWYsIGJ1Zi0+Y29udGVudCwgYnVmLT51c2UpOworCQl4bWxGcmVlKGJ1Zi0+Y29udGVudCk7CisJCXJlYnVmW2J1Zi0+dXNlXSA9IDA7CisJICAgIH0KKwl9CisJaWYgKHJlYnVmID09IE5VTEwpIHsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiZ3Jvd2luZyBidWZmZXIiKTsKKwkgICAgcmV0dXJuIDA7CisJfQorCWJ1Zi0+Y29udGVudCA9IHJlYnVmOworICAgIH0KKyAgICBidWYtPnNpemUgPSBuZXdTaXplOworCisgICAgcmV0dXJuIDE7Cit9CisKKy8qKgorICogeG1sQnVmZmVyQWRkOgorICogQGJ1ZjogIHRoZSBidWZmZXIgdG8gZHVtcAorICogQHN0cjogIHRoZSAjeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46ICB0aGUgbnVtYmVyIG9mICN4bWxDaGFyIHRvIGFkZAorICoKKyAqIEFkZCBhIHN0cmluZyByYW5nZSB0byBhbiBYTUwgYnVmZmVyLiBpZiBsZW4gPT0gLTEsIHRoZSBsZW5ndGggb2YKKyAqIHN0ciBpcyByZWNvbXB1dGVkLgorICoKKyAqIFJldHVybnMgMCBzdWNjZXNzZnVsLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZQorICogICAgICAgICBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sQnVmZmVyQWRkKHhtbEJ1ZmZlclB0ciBidWYsIGNvbnN0IHhtbENoYXIgKnN0ciwgaW50IGxlbikgeworICAgIHVuc2lnbmVkIGludCBuZWVkU2l6ZTsKKworICAgIGlmICgoc3RyID09IE5VTEwpIHx8IChidWYgPT0gTlVMTCkpIHsKKwlyZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSByZXR1cm4gLTE7CisgICAgaWYgKGxlbiA8IC0xKSB7CisjaWZkZWYgREVCVUdfQlVGRkVSCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQnVmZmVyQWRkOiBsZW4gPCAwXG4iKTsKKyNlbmRpZgorCXJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKGxlbiA9PSAwKSByZXR1cm4gMDsKKworICAgIGlmIChsZW4gPCAwKQorICAgICAgICBsZW4gPSB4bWxTdHJsZW4oc3RyKTsKKworICAgIGlmIChsZW4gPCAwKSByZXR1cm4gLTE7CisgICAgaWYgKGxlbiA9PSAwKSByZXR1cm4gMDsKKworICAgIG5lZWRTaXplID0gYnVmLT51c2UgKyBsZW4gKyAyOworICAgIGlmIChuZWVkU2l6ZSA+IGJ1Zi0+c2l6ZSl7CisgICAgICAgIGlmICgheG1sQnVmZmVyUmVzaXplKGJ1ZiwgbmVlZFNpemUpKXsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiZ3Jvd2luZyBidWZmZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBYTUxfRVJSX05PX01FTU9SWTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1lbW1vdmUoJmJ1Zi0+Y29udGVudFtidWYtPnVzZV0sIHN0ciwgbGVuKnNpemVvZih4bWxDaGFyKSk7CisgICAgYnVmLT51c2UgKz0gbGVuOworICAgIGJ1Zi0+Y29udGVudFtidWYtPnVzZV0gPSAwOworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHhtbEJ1ZmZlckFkZEhlYWQ6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlcgorICogQHN0cjogIHRoZSAjeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46ICB0aGUgbnVtYmVyIG9mICN4bWxDaGFyIHRvIGFkZAorICoKKyAqIEFkZCBhIHN0cmluZyByYW5nZSB0byB0aGUgYmVnaW5uaW5nIG9mIGFuIFhNTCBidWZmZXIuCisgKiBpZiBsZW4gPT0gLTEsIHRoZSBsZW5ndGggb2YgQHN0ciBpcyByZWNvbXB1dGVkLgorICoKKyAqIFJldHVybnMgMCBzdWNjZXNzZnVsLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZQorICogICAgICAgICBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sQnVmZmVyQWRkSGVhZCh4bWxCdWZmZXJQdHIgYnVmLCBjb25zdCB4bWxDaGFyICpzdHIsIGludCBsZW4pIHsKKyAgICB1bnNpZ25lZCBpbnQgbmVlZFNpemU7CisKKyAgICBpZiAoYnVmID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaWYgKGJ1Zi0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUpIHJldHVybiAtMTsKKyAgICBpZiAoc3RyID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19CVUZGRVIKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxCdWZmZXJBZGRIZWFkOiBzdHIgPT0gTlVMTFxuIik7CisjZW5kaWYKKwlyZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChsZW4gPCAtMSkgeworI2lmZGVmIERFQlVHX0JVRkZFUgorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEJ1ZmZlckFkZEhlYWQ6IGxlbiA8IDBcbiIpOworI2VuZGlmCisJcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAobGVuID09IDApIHJldHVybiAwOworCisgICAgaWYgKGxlbiA8IDApCisgICAgICAgIGxlbiA9IHhtbFN0cmxlbihzdHIpOworCisgICAgaWYgKGxlbiA8PSAwKSByZXR1cm4gLTE7CisKKyAgICBpZiAoKGJ1Zi0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTykgJiYgKGJ1Zi0+Y29udGVudElPICE9IE5VTEwpKSB7CisgICAgICAgIHNpemVfdCBzdGFydF9idWYgPSBidWYtPmNvbnRlbnQgLSBidWYtPmNvbnRlbnRJTzsKKworCWlmIChzdGFydF9idWYgPiAodW5zaWduZWQgaW50KSBsZW4pIHsKKwkgICAgLyoKKwkgICAgICogV2UgY2FuIGFkZCBpdCBpbiB0aGUgc3BhY2UgcHJldmlvdXNseSBzaHJpbmtlZAorCSAgICAgKi8KKwkgICAgYnVmLT5jb250ZW50IC09IGxlbjsKKyAgICAgICAgICAgIG1lbW1vdmUoJmJ1Zi0+Y29udGVudFswXSwgc3RyLCBsZW4pOworCSAgICBidWYtPnVzZSArPSBsZW47CisJICAgIGJ1Zi0+c2l6ZSArPSBsZW47CisJICAgIHJldHVybigwKTsKKwl9CisgICAgfQorICAgIG5lZWRTaXplID0gYnVmLT51c2UgKyBsZW4gKyAyOworICAgIGlmIChuZWVkU2l6ZSA+IGJ1Zi0+c2l6ZSl7CisgICAgICAgIGlmICgheG1sQnVmZmVyUmVzaXplKGJ1ZiwgbmVlZFNpemUpKXsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiZ3Jvd2luZyBidWZmZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBYTUxfRVJSX05PX01FTU9SWTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1lbW1vdmUoJmJ1Zi0+Y29udGVudFtsZW5dLCAmYnVmLT5jb250ZW50WzBdLCBidWYtPnVzZSk7CisgICAgbWVtbW92ZSgmYnVmLT5jb250ZW50WzBdLCBzdHIsIGxlbik7CisgICAgYnVmLT51c2UgKz0gbGVuOworICAgIGJ1Zi0+Y29udGVudFtidWYtPnVzZV0gPSAwOworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHhtbEJ1ZmZlckNhdDoKKyAqIEBidWY6ICB0aGUgYnVmZmVyIHRvIGFkZCB0bworICogQHN0cjogIHRoZSAjeG1sQ2hhciBzdHJpbmcKKyAqCisgKiBBcHBlbmQgYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nIHRvIGFuIFhNTCBidWZmZXIuCisgKgorICogUmV0dXJucyAwIHN1Y2Nlc3NmdWwsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlCisgKiAgICAgICAgIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworaW50Cit4bWxCdWZmZXJDYXQoeG1sQnVmZmVyUHRyIGJ1ZiwgY29uc3QgeG1sQ2hhciAqc3RyKSB7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSByZXR1cm4gLTE7CisgICAgaWYgKHN0ciA9PSBOVUxMKSByZXR1cm4gLTE7CisgICAgcmV0dXJuIHhtbEJ1ZmZlckFkZChidWYsIHN0ciwgLTEpOworfQorCisvKioKKyAqIHhtbEJ1ZmZlckNDYXQ6CisgKiBAYnVmOiAgdGhlIGJ1ZmZlciB0byBkdW1wCisgKiBAc3RyOiAgdGhlIEMgY2hhciBzdHJpbmcKKyAqCisgKiBBcHBlbmQgYSB6ZXJvIHRlcm1pbmF0ZWQgQyBzdHJpbmcgdG8gYW4gWE1MIGJ1ZmZlci4KKyAqCisgKiBSZXR1cm5zIDAgc3VjY2Vzc2Z1bCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitpbnQKK3htbEJ1ZmZlckNDYXQoeG1sQnVmZmVyUHRyIGJ1ZiwgY29uc3QgY2hhciAqc3RyKSB7CisgICAgY29uc3QgY2hhciAqY3VyOworCisgICAgaWYgKGJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSByZXR1cm4gLTE7CisgICAgaWYgKHN0ciA9PSBOVUxMKSB7CisjaWZkZWYgREVCVUdfQlVGRkVSCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sQnVmZmVyQ0NhdDogc3RyID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuIC0xOworICAgIH0KKyAgICBmb3IgKGN1ciA9IHN0cjsqY3VyICE9IDA7Y3VyKyspIHsKKyAgICAgICAgaWYgKGJ1Zi0+dXNlICArIDEwID49IGJ1Zi0+c2l6ZSkgeworICAgICAgICAgICAgaWYgKCF4bWxCdWZmZXJSZXNpemUoYnVmLCBidWYtPnVzZSsxMCkpeworCQl4bWxUcmVlRXJyTWVtb3J5KCJncm93aW5nIGJ1ZmZlciIpOworICAgICAgICAgICAgICAgIHJldHVybiBYTUxfRVJSX05PX01FTU9SWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBidWYtPmNvbnRlbnRbYnVmLT51c2UrK10gPSAqY3VyOworICAgIH0KKyAgICBidWYtPmNvbnRlbnRbYnVmLT51c2VdID0gMDsKKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiB4bWxCdWZmZXJXcml0ZUNIQVI6CisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIKKyAqIEBzdHJpbmc6ICB0aGUgc3RyaW5nIHRvIGFkZAorICoKKyAqIHJvdXRpbmUgd2hpY2ggbWFuYWdlcyBhbmQgZ3Jvd3MgYW4gb3V0cHV0IGJ1ZmZlci4gVGhpcyBvbmUgYWRkcworICogeG1sQ2hhcnMgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLgorICovCit2b2lkCit4bWxCdWZmZXJXcml0ZUNIQVIoeG1sQnVmZmVyUHRyIGJ1ZiwgY29uc3QgeG1sQ2hhciAqc3RyaW5nKSB7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGJ1Zi0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUpIHJldHVybjsKKyAgICB4bWxCdWZmZXJDYXQoYnVmLCBzdHJpbmcpOworfQorCisvKioKKyAqIHhtbEJ1ZmZlcldyaXRlQ2hhcjoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBzdHJpbmc6ICB0aGUgc3RyaW5nIHRvIGFkZAorICoKKyAqIHJvdXRpbmUgd2hpY2ggbWFuYWdlIGFuZCBncm93cyBhbiBvdXRwdXQgYnVmZmVyLiBUaGlzIG9uZSBhZGQKKyAqIEMgY2hhcnMgYXQgdGhlIGVuZCBvZiB0aGUgYXJyYXkuCisgKi8KK3ZvaWQKK3htbEJ1ZmZlcldyaXRlQ2hhcih4bWxCdWZmZXJQdHIgYnVmLCBjb25zdCBjaGFyICpzdHJpbmcpIHsKKyAgICBpZiAoYnVmID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoYnVmLT5hbGxvYyA9PSBYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSkgcmV0dXJuOworICAgIHhtbEJ1ZmZlckNDYXQoYnVmLCBzdHJpbmcpOworfQorCisKKy8qKgorICogeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc6CisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKiBAc3RyaW5nOiAgdGhlIHN0cmluZyB0byBhZGQKKyAqCisgKiByb3V0aW5lIHdoaWNoIG1hbmFnZSBhbmQgZ3Jvd3MgYW4gb3V0cHV0IGJ1ZmZlci4gVGhpcyBvbmUgd3JpdGVzCisgKiBhIHF1b3RlZCBvciBkb3VibGUgcXVvdGVkICN4bWxDaGFyIHN0cmluZywgY2hlY2tpbmcgZmlyc3QgaWYgaXQgaG9sZHMKKyAqIHF1b3RlIG9yIGRvdWJsZS1xdW90ZXMgaW50ZXJuYWxseQorICovCit2b2lkCit4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyh4bWxCdWZmZXJQdHIgYnVmLCBjb25zdCB4bWxDaGFyICpzdHJpbmcpIHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIsICpiYXNlOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChidWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSByZXR1cm47CisgICAgaWYgKHhtbFN0cmNocihzdHJpbmcsICdcIicpKSB7CisgICAgICAgIGlmICh4bWxTdHJjaHIoc3RyaW5nLCAnXCcnKSkgeworI2lmZGVmIERFQlVHX0JVRkZFUgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAieG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmc6IHN0cmluZyBjb250YWlucyBxdW90ZSBhbmQgZG91YmxlLXF1b3RlcyAhXG4iKTsKKyNlbmRpZgorCSAgICB4bWxCdWZmZXJDQ2F0KGJ1ZiwgIlwiIik7CisgICAgICAgICAgICBiYXNlID0gY3VyID0gc3RyaW5nOworICAgICAgICAgICAgd2hpbGUoKmN1ciAhPSAwKXsKKyAgICAgICAgICAgICAgICBpZigqY3VyID09ICciJyl7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlICE9IGN1cikKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsIGJhc2UsIGN1ciAtIGJhc2UpOworICAgICAgICAgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBCQURfQ0FTVCAiJnF1b3Q7IiwgNik7CisgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgICAgICBiYXNlID0gY3VyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJhc2UgIT0gY3VyKQorICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsIGJhc2UsIGN1ciAtIGJhc2UpOworCSAgICB4bWxCdWZmZXJDQ2F0KGJ1ZiwgIlwiIik7CisJfQorICAgICAgICBlbHNleworCSAgICB4bWxCdWZmZXJDQ2F0KGJ1ZiwgIlwnIik7CisgICAgICAgICAgICB4bWxCdWZmZXJDYXQoYnVmLCBzdHJpbmcpOworCSAgICB4bWxCdWZmZXJDQ2F0KGJ1ZiwgIlwnIik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB4bWxCdWZmZXJDQ2F0KGJ1ZiwgIlwiIik7CisgICAgICAgIHhtbEJ1ZmZlckNhdChidWYsIHN0cmluZyk7CisgICAgICAgIHhtbEJ1ZmZlckNDYXQoYnVmLCAiXCIiKTsKKyAgICB9Cit9CisKKworLyoqCisgKiB4bWxHZXREb2NDb21wcmVzc01vZGU6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKgorICogZ2V0IHRoZSBjb21wcmVzc2lvbiByYXRpbyBmb3IgYSBkb2N1bWVudCwgWkxJQiBiYXNlZAorICogUmV0dXJucyAwICh1bmNvbXByZXNzZWQpIHRvIDkgKG1heCBjb21wcmVzc2lvbikKKyAqLworaW50Cit4bWxHZXREb2NDb21wcmVzc01vZGUgKHhtbERvY1B0ciBkb2MpIHsKKyAgICBpZiAoZG9jID09IE5VTEwpIHJldHVybigtMSk7CisgICAgcmV0dXJuKGRvYy0+Y29tcHJlc3Npb24pOworfQorCisvKioKKyAqIHhtbFNldERvY0NvbXByZXNzTW9kZToKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBtb2RlOiAgdGhlIGNvbXByZXNzaW9uIHJhdGlvCisgKgorICogc2V0IHRoZSBjb21wcmVzc2lvbiByYXRpbyBmb3IgYSBkb2N1bWVudCwgWkxJQiBiYXNlZAorICogQ29ycmVjdCB2YWx1ZXM6IDAgKHVuY29tcHJlc3NlZCkgdG8gOSAobWF4IGNvbXByZXNzaW9uKQorICovCit2b2lkCit4bWxTZXREb2NDb21wcmVzc01vZGUgKHhtbERvY1B0ciBkb2MsIGludCBtb2RlKSB7CisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKG1vZGUgPCAwKSBkb2MtPmNvbXByZXNzaW9uID0gMDsKKyAgICBlbHNlIGlmIChtb2RlID4gOSkgZG9jLT5jb21wcmVzc2lvbiA9IDk7CisgICAgZWxzZSBkb2MtPmNvbXByZXNzaW9uID0gbW9kZTsKK30KKworLyoqCisgKiB4bWxHZXRDb21wcmVzc01vZGU6CisgKgorICogZ2V0IHRoZSBkZWZhdWx0IGNvbXByZXNzaW9uIG1vZGUgdXNlZCwgWkxJQiBiYXNlZC4KKyAqIFJldHVybnMgMCAodW5jb21wcmVzc2VkKSB0byA5IChtYXggY29tcHJlc3Npb24pCisgKi8KK2ludAoreG1sR2V0Q29tcHJlc3NNb2RlKHZvaWQpCit7CisgICAgcmV0dXJuICh4bWxDb21wcmVzc01vZGUpOworfQorCisvKioKKyAqIHhtbFNldENvbXByZXNzTW9kZToKKyAqIEBtb2RlOiAgdGhlIGNvbXByZXNzaW9uIHJhdGlvCisgKgorICogc2V0IHRoZSBkZWZhdWx0IGNvbXByZXNzaW9uIG1vZGUgdXNlZCwgWkxJQiBiYXNlZAorICogQ29ycmVjdCB2YWx1ZXM6IDAgKHVuY29tcHJlc3NlZCkgdG8gOSAobWF4IGNvbXByZXNzaW9uKQorICovCit2b2lkCit4bWxTZXRDb21wcmVzc01vZGUoaW50IG1vZGUpIHsKKyAgICBpZiAobW9kZSA8IDApIHhtbENvbXByZXNzTW9kZSA9IDA7CisgICAgZWxzZSBpZiAobW9kZSA+IDkpIHhtbENvbXByZXNzTW9kZSA9IDk7CisgICAgZWxzZSB4bWxDb21wcmVzc01vZGUgPSBtb2RlOworfQorCisjZGVmaW5lIFhNTF9UUkVFX05TTUFQX1BBUkVOVCAtMQorI2RlZmluZSBYTUxfVFJFRV9OU01BUF9YTUwgLTIKKyNkZWZpbmUgWE1MX1RSRUVfTlNNQVBfRE9DIC0zCisjZGVmaW5lIFhNTF9UUkVFX05TTUFQX0NVU1RPTSAtNAorCit0eXBlZGVmIHN0cnVjdCB4bWxOc01hcEl0ZW0gKnhtbE5zTWFwSXRlbVB0cjsKK3N0cnVjdCB4bWxOc01hcEl0ZW0geworICAgIHhtbE5zTWFwSXRlbVB0ciBuZXh0OworICAgIHhtbE5zTWFwSXRlbVB0ciBwcmV2OworICAgIHhtbE5zUHRyIG9sZE5zOyAvKiBvbGQgbnMgZGVjbCByZWZlcmVuY2UgKi8KKyAgICB4bWxOc1B0ciBuZXdOczsgLyogbmV3IG5zIGRlY2wgcmVmZXJlbmNlICovCisgICAgaW50IHNoYWRvd0RlcHRoOyAvKiBTaGFkb3dlZCBhdCB0aGlzIGRlcHRoICovCisgICAgLyoKKyAgICAqIGRlcHRoOgorICAgICogPj0gMCA9PSBAbm9kZSdzIG5zLWRlY2xzCisgICAgKiAtMSAgID09IEBwYXJlbnQncyBucy1kZWNscworICAgICogLTIgICA9PSB0aGUgZG9jLT5vbGROcyBYTUwgbnMtZGVjbAorICAgICogLTMgICA9PSB0aGUgZG9jLT5vbGROcyBzdG9yYWdlIG5zLWRlY2xzCisgICAgKiAtNCAgID09IG5zLWRlY2xzIHByb3ZpZGVkIHZpYSBjdXN0b20gbnMtaGFuZGxpbmcKKyAgICAqLworICAgIGludCBkZXB0aDsKK307CisKK3R5cGVkZWYgc3RydWN0IHhtbE5zTWFwICp4bWxOc01hcFB0cjsKK3N0cnVjdCB4bWxOc01hcCB7CisgICAgeG1sTnNNYXBJdGVtUHRyIGZpcnN0OworICAgIHhtbE5zTWFwSXRlbVB0ciBsYXN0OworICAgIHhtbE5zTWFwSXRlbVB0ciBwb29sOworfTsKKworI2RlZmluZSBYTUxfTlNNQVBfTk9URU1QVFkobSkgKCgobSkgIT0gTlVMTCkgJiYgKChtKS0+Zmlyc3QgIT0gTlVMTCkpCisjZGVmaW5lIFhNTF9OU01BUF9GT1JFQUNIKG0sIGkpIGZvciAoaSA9IChtKS0+Zmlyc3Q7IGkgIT0gTlVMTDsgaSA9IChpKS0+bmV4dCkKKyNkZWZpbmUgWE1MX05TTUFQX1BPUChtLCBpKSBcCisgICAgaSA9IChtKS0+bGFzdDsgXAorICAgIChtKS0+bGFzdCA9IChpKS0+cHJldjsgXAorICAgIGlmICgobSktPmxhc3QgPT0gTlVMTCkgXAorCShtKS0+Zmlyc3QgPSBOVUxMOyBcCisgICAgZWxzZSBcCisJKG0pLT5sYXN0LT5uZXh0ID0gTlVMTDsgXAorICAgIChpKS0+bmV4dCA9IChtKS0+cG9vbDsgXAorICAgIChtKS0+cG9vbCA9IGk7CisKKy8qCisqIHhtbERPTVdyYXBOc01hcEZyZWU6CisqIEBtYXA6IHRoZSBucy1tYXAKKyoKKyogRnJlZXMgdGhlIG5zLW1hcAorKi8KK3N0YXRpYyB2b2lkCit4bWxET01XcmFwTnNNYXBGcmVlKHhtbE5zTWFwUHRyIG5zbWFwKQoreworICAgIHhtbE5zTWFwSXRlbVB0ciBjdXIsIHRtcDsKKworICAgIGlmIChuc21hcCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBjdXIgPSBuc21hcC0+cG9vbDsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwl0bXAgPSBjdXI7CisJY3VyID0gY3VyLT5uZXh0OworCXhtbEZyZWUodG1wKTsKKyAgICB9CisgICAgY3VyID0gbnNtYXAtPmZpcnN0OworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCXRtcCA9IGN1cjsKKwljdXIgPSBjdXItPm5leHQ7CisJeG1sRnJlZSh0bXApOworICAgIH0KKyAgICB4bWxGcmVlKG5zbWFwKTsKK30KKworLyoKKyogeG1sRE9NV3JhcE5zTWFwQWRkSXRlbToKKyogQG1hcDogdGhlIG5zLW1hcAorKiBAb2xkTnM6IHRoZSBvbGQgbnMtc3RydWN0CisqIEBuZXdOczogdGhlIG5ldyBucy1zdHJ1Y3QKKyogQGRlcHRoOiBkZXB0aCBhbmQgbnMta2luZCBpbmZvcm1hdGlvbgorKgorKiBBZGRzIGFuIG5zLW1hcHBpbmcgaXRlbS4KKyovCitzdGF0aWMgeG1sTnNNYXBJdGVtUHRyCit4bWxET01XcmFwTnNNYXBBZGRJdGVtKHhtbE5zTWFwUHRyICpuc21hcCwgaW50IHBvc2l0aW9uLAorCQkgICAgICAgeG1sTnNQdHIgb2xkTnMsIHhtbE5zUHRyIG5ld05zLCBpbnQgZGVwdGgpCit7CisgICAgeG1sTnNNYXBJdGVtUHRyIHJldDsKKyAgICB4bWxOc01hcFB0ciBtYXA7CisKKyAgICBpZiAobnNtYXAgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKChwb3NpdGlvbiAhPSAtMSkgJiYgKHBvc2l0aW9uICE9IDApKQorCXJldHVybihOVUxMKTsKKyAgICBtYXAgPSAqbnNtYXA7CisKKyAgICBpZiAobWFwID09IE5VTEwpIHsKKwkvKgorCSogQ3JlYXRlIHRoZSBucy1tYXAuCisJKi8KKwltYXAgPSAoeG1sTnNNYXBQdHIpIHhtbE1hbGxvYyhzaXplb2Yoc3RydWN0IHhtbE5zTWFwKSk7CisJaWYgKG1hcCA9PSBOVUxMKSB7CisJICAgIHhtbFRyZWVFcnJNZW1vcnkoImFsbG9jYXRpbmcgbmFtZXNwYWNlIG1hcCIpOworCSAgICByZXR1cm4gKE5VTEwpOworCX0KKwltZW1zZXQobWFwLCAwLCBzaXplb2Yoc3RydWN0IHhtbE5zTWFwKSk7CisJKm5zbWFwID0gbWFwOworICAgIH0KKworICAgIGlmIChtYXAtPnBvb2wgIT0gTlVMTCkgeworCS8qCisJKiBSZXVzZSBhbiBpdGVtIGZyb20gdGhlIHBvb2wuCisJKi8KKwlyZXQgPSBtYXAtPnBvb2w7CisJbWFwLT5wb29sID0gcmV0LT5uZXh0OworCW1lbXNldChyZXQsIDAsIHNpemVvZihzdHJ1Y3QgeG1sTnNNYXBJdGVtKSk7CisgICAgfSBlbHNlIHsKKwkvKgorCSogQ3JlYXRlIGEgbmV3IGl0ZW0uCisJKi8KKwlyZXQgPSAoeG1sTnNNYXBJdGVtUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHN0cnVjdCB4bWxOc01hcEl0ZW0pKTsKKwlpZiAocmV0ID09IE5VTEwpIHsKKwkgICAgeG1sVHJlZUVyck1lbW9yeSgiYWxsb2NhdGluZyBuYW1lc3BhY2UgbWFwIGl0ZW0iKTsKKwkgICAgcmV0dXJuIChOVUxMKTsKKwl9CisJbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHN0cnVjdCB4bWxOc01hcEl0ZW0pKTsKKyAgICB9CisKKyAgICBpZiAobWFwLT5maXJzdCA9PSBOVUxMKSB7CisJLyoKKwkqIEZpcnN0IGV2ZXIuCisJKi8KKwltYXAtPmZpcnN0ID0gcmV0OworCW1hcC0+bGFzdCA9IHJldDsKKyAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09IC0xKSB7CisJLyoKKwkqIEFwcGVuZC4KKwkqLworCXJldC0+cHJldiA9IG1hcC0+bGFzdDsKKwltYXAtPmxhc3QtPm5leHQgPSByZXQ7CisJbWFwLT5sYXN0ID0gcmV0OworICAgIH0gZWxzZSBpZiAocG9zaXRpb24gPT0gMCkgeworCS8qCisJKiBTZXQgb24gZmlyc3QgcG9zaXRpb24uCisJKi8KKwltYXAtPmZpcnN0LT5wcmV2ID0gcmV0OworCXJldC0+bmV4dCA9IG1hcC0+Zmlyc3Q7CisJbWFwLT5maXJzdCA9IHJldDsKKyAgICB9IGVsc2UKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQtPm9sZE5zID0gb2xkTnM7CisgICAgcmV0LT5uZXdOcyA9IG5ld05zOworICAgIHJldC0+c2hhZG93RGVwdGggPSAtMTsKKyAgICByZXQtPmRlcHRoID0gZGVwdGg7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKgorKiB4bWxET01XcmFwU3RvcmVOczoKKyogQGRvYzogdGhlIGRvYworKiBAbnNOYW1lOiB0aGUgbmFtZXNwYWNlIG5hbWUKKyogQHByZWZpeDogdGhlIHByZWZpeAorKgorKiBDcmVhdGVzIG9yIHJldXNlcyBhbiB4bWxOcyBzdHJ1Y3Qgb24gZG9jLT5vbGROcyB3aXRoCisqIHRoZSBnaXZlbiBwcmVmaXggYW5kIG5hbWVzcGFjZSBuYW1lLgorKgorKiBSZXR1cm5zIHRoZSBhcXVpcmVkIG5zIHN0cnVjdCBvciBOVUxMIGluIGNhc2Ugb2YgYW4gQVBJCisqICAgICAgICAgb3IgaW50ZXJuYWwgZXJyb3IuCisqLworc3RhdGljIHhtbE5zUHRyCit4bWxET01XcmFwU3RvcmVOcyh4bWxEb2NQdHIgZG9jLAorCQkgICBjb25zdCB4bWxDaGFyICpuc05hbWUsCisJCSAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCkKK3sKKyAgICB4bWxOc1B0ciBuczsKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKwlyZXR1cm4gKE5VTEwpOworICAgIG5zID0geG1sVHJlZUVuc3VyZVhNTERlY2woZG9jKTsKKyAgICBpZiAobnMgPT0gTlVMTCkKKwlyZXR1cm4gKE5VTEwpOworICAgIGlmIChucy0+bmV4dCAhPSBOVUxMKSB7CisJLyogUmV1c2UuICovCisJbnMgPSBucy0+bmV4dDsKKwl3aGlsZSAobnMgIT0gTlVMTCkgeworCSAgICBpZiAoKChucy0+cHJlZml4ID09IHByZWZpeCkgfHwKKwkJeG1sU3RyRXF1YWwobnMtPnByZWZpeCwgcHJlZml4KSkgJiYKKwkJeG1sU3RyRXF1YWwobnMtPmhyZWYsIG5zTmFtZSkpIHsKKwkJcmV0dXJuIChucyk7CisJICAgIH0KKwkgICAgaWYgKG5zLT5uZXh0ID09IE5VTEwpCisJCWJyZWFrOworCSAgICBucyA9IG5zLT5uZXh0OworCX0KKyAgICB9CisgICAgLyogQ3JlYXRlLiAqLworICAgIGlmIChucyAhPSBOVUxMKSB7CisgICAgICAgIG5zLT5uZXh0ID0geG1sTmV3TnMoTlVMTCwgbnNOYW1lLCBwcmVmaXgpOworICAgICAgICByZXR1cm4gKG5zLT5uZXh0KTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKgorKiB4bWxET01XcmFwTmV3Q3R4dDoKKyoKKyogQWxsb2NhdGVzIGFuZCBpbml0aWFsaXplcyBhIG5ldyBET00td3JhcHBlciBjb250ZXh0LgorKgorKiBSZXR1cm5zIHRoZSB4bWxET01XcmFwQ3R4dFB0ciBvciBOVUxMIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgZXJycm9yLgorKi8KK3htbERPTVdyYXBDdHh0UHRyCit4bWxET01XcmFwTmV3Q3R4dCh2b2lkKQoreworICAgIHhtbERPTVdyYXBDdHh0UHRyIHJldDsKKworICAgIHJldCA9IHhtbE1hbGxvYyhzaXplb2YoeG1sRE9NV3JhcEN0eHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxUcmVlRXJyTWVtb3J5KCJhbGxvY2F0aW5nIERPTS13cmFwcGVyIGNvbnRleHQiKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sRE9NV3JhcEN0eHQpKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qCisqIHhtbERPTVdyYXBGcmVlQ3R4dDoKKyogQGN0eHQ6IHRoZSBET00td3JhcHBlciBjb250ZXh0CisqCisqIEZyZWVzIHRoZSBET00td3JhcHBlciBjb250ZXh0LgorKi8KK3ZvaWQKK3htbERPTVdyYXBGcmVlQ3R4dCh4bWxET01XcmFwQ3R4dFB0ciBjdHh0KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmIChjdHh0LT5uYW1lc3BhY2VNYXAgIT0gTlVMTCkKKwl4bWxET01XcmFwTnNNYXBGcmVlKCh4bWxOc01hcFB0cikgY3R4dC0+bmFtZXNwYWNlTWFwKTsKKyAgICAvKgorICAgICogVE9ETzogU3RvcmUgdGhlIG5hbWVzcGFjZSBtYXAgaW4gdGhlIGNvbnRleHQuCisgICAgKi8KKyAgICB4bWxGcmVlKGN0eHQpOworfQorCisvKgorKiB4bWxUcmVlTG9va3VwTnNMaXN0QnlQcmVmaXg6CisqIEBuc0xpc3Q6IGEgbGlzdCBvZiBucy1zdHJ1Y3RzCisqIEBwcmVmaXg6IHRoZSBzZWFyY2hlZCBwcmVmaXgKKyoKKyogU2VhcmNoZXMgZm9yIGEgbnMtZGVjbCB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gQG5zTGlzdC4KKyoKKyogUmV0dXJucyB0aGUgbnMtZGVjbCBpZiBmb3VuZCwgTlVMTCBpZiBub3QgZm91bmQgYW5kIG9uCisqICAgICAgICAgQVBJIGVycm9ycy4KKyovCitzdGF0aWMgeG1sTnNQdHIKK3htbFRyZWVOU0xpc3RMb29rdXBCeVByZWZpeCh4bWxOc1B0ciBuc0xpc3QsIGNvbnN0IHhtbENoYXIgKnByZWZpeCkKK3sKKyAgICBpZiAobnNMaXN0ID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKyAgICB7CisJeG1sTnNQdHIgbnM7CisJbnMgPSBuc0xpc3Q7CisJZG8geworCSAgICBpZiAoKHByZWZpeCA9PSBucy0+cHJlZml4KSB8fAorCQl4bWxTdHJFcXVhbChwcmVmaXgsIG5zLT5wcmVmaXgpKSB7CisJCXJldHVybiAobnMpOworCSAgICB9CisJICAgIG5zID0gbnMtPm5leHQ7CisJfSB3aGlsZSAobnMgIT0gTlVMTCk7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qCisqCisqIHhtbERPTVdyYXBOU05vcm1HYXRoZXJJblNjb3BlTnM6CisqIEBtYXA6IHRoZSBuYW1lc3BhY2UgbWFwCisqIEBub2RlOiB0aGUgbm9kZSB0byBzdGFydCB3aXRoCisqCisqIFB1dHMgaW4tc2NvcGUgbmFtZXNwYWNlcyBpbnRvIHRoZSBucy1tYXAuCisqCisqIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtMSBvbiBBUEkgb3IgaW50ZXJuYWwgZXJyb3JzLgorKi8KK3N0YXRpYyBpbnQKK3htbERPTVdyYXBOU05vcm1HYXRoZXJJblNjb3BlTnMoeG1sTnNNYXBQdHIgKm1hcCwKKwkJCQl4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgeG1sTnNQdHIgbnM7CisgICAgeG1sTnNNYXBJdGVtUHRyIG1pOworICAgIGludCBzaGFkb3dlZDsKKworICAgIGlmICgobWFwID09IE5VTEwpIHx8ICgqbWFwICE9IE5VTEwpKQorCXJldHVybiAoLTEpOworICAgIC8qCisgICAgKiBHZXQgaW4tc2NvcGUgbnMtZGVjbHMgb2YgQHBhcmVudC4KKyAgICAqLworICAgIGN1ciA9IG5vZGU7CisgICAgd2hpbGUgKChjdXIgIT0gTlVMTCkgJiYgKGN1ciAhPSAoeG1sTm9kZVB0cikgY3VyLT5kb2MpKSB7CisJaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJICAgIGlmIChjdXItPm5zRGVmICE9IE5VTEwpIHsKKwkJbnMgPSBjdXItPm5zRGVmOworCQlkbyB7CisJCSAgICBzaGFkb3dlZCA9IDA7CisJCSAgICBpZiAoWE1MX05TTUFQX05PVEVNUFRZKCptYXApKSB7CisJCQkvKgorCQkJKiBTa2lwIHNoYWRvd2VkIHByZWZpeGVzLgorCQkJKi8KKwkJCVhNTF9OU01BUF9GT1JFQUNIKCptYXAsIG1pKSB7CisJCQkgICAgaWYgKChucy0+cHJlZml4ID09IG1pLT5uZXdOcy0+cHJlZml4KSB8fAorCQkJCXhtbFN0ckVxdWFsKG5zLT5wcmVmaXgsIG1pLT5uZXdOcy0+cHJlZml4KSkgeworCQkJCXNoYWRvd2VkID0gMTsKKwkJCQlicmVhazsKKwkJCSAgICB9CisJCQl9CisJCSAgICB9CisJCSAgICAvKgorCQkgICAgKiBJbnNlcnQgbWFwcGluZy4KKwkJICAgICovCisJCSAgICBtaSA9IHhtbERPTVdyYXBOc01hcEFkZEl0ZW0obWFwLCAwLCBOVUxMLAorCQkJbnMsIFhNTF9UUkVFX05TTUFQX1BBUkVOVCk7CisJCSAgICBpZiAobWkgPT0gTlVMTCkKKwkJCXJldHVybiAoLTEpOworCQkgICAgaWYgKHNoYWRvd2VkKQorCQkJbWktPnNoYWRvd0RlcHRoID0gMDsKKwkJICAgIG5zID0gbnMtPm5leHQ7CisJCX0gd2hpbGUgKG5zICE9IE5VTEwpOworCSAgICB9CisJfQorCWN1ciA9IGN1ci0+cGFyZW50OworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKgorKiBYTUxfVFJFRV9BRE9QVF9TVFI6IElmIHdlIGhhdmUgYSBkZXN0LWRpY3QsIHB1dCBAc3RyIGluIHRoZSBkaWN0OworKiBvdGhlcndpc2UgY29weSBpdCwgd2hlbiBpdCB3YXMgaW4gdGhlIHNvdXJjZS1kaWN0LgorKi8KKyNkZWZpbmUgWE1MX1RSRUVfQURPUFRfU1RSKHN0cikgXAorICAgIGlmIChhZG9wdFN0ciAmJiAoc3RyICE9IE5VTEwpKSB7IFwKKwlpZiAoZGVzdERvYy0+ZGljdCkgeyBcCisJICAgIGNvbnN0IHhtbENoYXIgKm9sZCA9IHN0cjsJXAorCSAgICBzdHIgPSB4bWxEaWN0TG9va3VwKGRlc3REb2MtPmRpY3QsIHN0ciwgLTEpOyBcCisJICAgIGlmICgoc291cmNlRG9jID09IE5VTEwpIHx8IChzb3VyY2VEb2MtPmRpY3QgPT0gTlVMTCkgfHwgXAorCSAgICAgICAgKCF4bWxEaWN0T3ducyhzb3VyY2VEb2MtPmRpY3QsIG9sZCkpKSBcCisJCXhtbEZyZWUoKGNoYXIgKilvbGQpOyBcCisJfSBlbHNlIGlmICgoc291cmNlRG9jKSAmJiAoc291cmNlRG9jLT5kaWN0KSAmJiBcCisJICAgIHhtbERpY3RPd25zKHNvdXJjZURvYy0+ZGljdCwgc3RyKSkgeyBcCisJICAgIHN0ciA9IEJBRF9DQVNUIHhtbFN0cmR1cChzdHIpOyBcCisJfSBcCisgICAgfQorCisvKgorKiBYTUxfVFJFRV9BRE9QVF9TVFJfMjogSWYgQHN0ciB3YXMgaW4gdGhlIHNvdXJjZS1kaWN0LCB0aGVuCisqIHB1dCBpdCBpbiBkZXN0LWRpY3Qgb3IgY29weSBpdC4KKyovCisjZGVmaW5lIFhNTF9UUkVFX0FET1BUX1NUUl8yKHN0cikgXAorICAgIGlmIChhZG9wdFN0ciAmJiAoc3RyICE9IE5VTEwpICYmIChzb3VyY2VEb2MgIT0gTlVMTCkgJiYgXAorCShzb3VyY2VEb2MtPmRpY3QgIT0gTlVMTCkgJiYgXAorCXhtbERpY3RPd25zKHNvdXJjZURvYy0+ZGljdCwgY3VyLT5jb250ZW50KSkgeyBcCisJaWYgKGRlc3REb2MtPmRpY3QpIFwKKwkgICAgY3VyLT5jb250ZW50ID0gKHhtbENoYXIgKikgXAorCQl4bWxEaWN0TG9va3VwKGRlc3REb2MtPmRpY3QsIGN1ci0+Y29udGVudCwgLTEpOyBcCisJZWxzZSBcCisJICAgIGN1ci0+Y29udGVudCA9IHhtbFN0cmR1cChCQURfQ0FTVCBjdXItPmNvbnRlbnQpOyBcCisgICAgfQorCisvKgorKiB4bWxET01XcmFwTlNOb3JtQWRkTnNNYXBJdGVtMjoKKyoKKyogRm9yIGludGVybmFsIHVzZS4gQWRkcyBhIG5zLWRlY2wgbWFwcGluZy4KKyoKKyogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGludGVybmFsIGVycm9ycy4KKyovCitzdGF0aWMgaW50Cit4bWxET01XcmFwTlNOb3JtQWRkTnNNYXBJdGVtMih4bWxOc1B0ciAqKmxpc3QsIGludCAqc2l6ZSwgaW50ICpudW1iZXIsCisJCQl4bWxOc1B0ciBvbGROcywgeG1sTnNQdHIgbmV3TnMpCit7CisgICAgaWYgKCpsaXN0ID09IE5VTEwpIHsKKwkqbGlzdCA9ICh4bWxOc1B0ciAqKSB4bWxNYWxsb2MoNiAqIHNpemVvZih4bWxOc1B0cikpOworCWlmICgqbGlzdCA9PSBOVUxMKSB7CisJICAgIHhtbFRyZWVFcnJNZW1vcnkoImFsbG9jIG5zIG1hcCBpdGVtIik7CisJICAgIHJldHVybigtMSk7CisJfQorCSpzaXplID0gMzsKKwkqbnVtYmVyID0gMDsKKyAgICB9IGVsc2UgaWYgKCgqbnVtYmVyKSA+PSAoKnNpemUpKSB7CisJKnNpemUgKj0gMjsKKwkqbGlzdCA9ICh4bWxOc1B0ciAqKSB4bWxSZWFsbG9jKCpsaXN0LAorCSAgICAoKnNpemUpICogMiAqIHNpemVvZih4bWxOc1B0cikpOworCWlmICgqbGlzdCA9PSBOVUxMKSB7CisJICAgIHhtbFRyZWVFcnJNZW1vcnkoInJlYWxsb2MgbnMgbWFwIGl0ZW0iKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorICAgICgqbGlzdClbMiAqICgqbnVtYmVyKV0gPSBvbGROczsKKyAgICAoKmxpc3QpWzIgKiAoKm51bWJlcikgKzFdID0gbmV3TnM7CisgICAgKCpudW1iZXIpKys7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoKKyogeG1sRE9NV3JhcFJlbW92ZU5vZGU6CisqIEBjdHh0OiBhIERPTSB3cmFwcGVyIGNvbnRleHQKKyogQGRvYzogdGhlIGRvYworKiBAbm9kZTogdGhlIG5vZGUgdG8gYmUgcmVtb3ZlZC4KKyogQG9wdGlvbnM6IHNldCBvZiBvcHRpb25zLCB1bnVzZWQgYXQgdGhlIG1vbWVudAorKgorKiBVbmxpbmtzIHRoZSBnaXZlbiBub2RlIGZyb20gaXRzIG93bmVyLgorKiBUaGlzIHdpbGwgc3Vic3RpdHV0ZSBucy1yZWZlcmVuY2VzIHRvIG5vZGUtPm5zRGVmIGZvcgorKiBucy1yZWZlcmVuY2VzIHRvIGRvYy0+b2xkTnMsIHRodXMgZW5zdXJpbmcgdGhlIHJlbW92ZWQKKyogYnJhbmNoIHRvIGJlIGF1dGFyayB3cnQgbnMtcmVmZXJlbmNlcy4KKyoKKyogTk9URTogVGhpcyBmdW5jdGlvbiB3YXMgbm90IGludGVuc2l2ZWx5IHRlc3RlZC4KKyoKKyogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIDEgaWYgdGhlIG5vZGUgaXMgbm90IHN1cHBvcnRlZCwKKyogICAgICAgICAtMSBvbiBBUEkgYW5kIGludGVybmFsIGVycm9ycy4KKyovCitpbnQKK3htbERPTVdyYXBSZW1vdmVOb2RlKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MsCisJCSAgICAgeG1sTm9kZVB0ciBub2RlLCBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbE5zUHRyICpsaXN0ID0gTlVMTDsKKyAgICBpbnQgc2l6ZUxpc3QsIG5iTGlzdCwgaSwgajsKKyAgICB4bWxOc1B0ciBuczsKKworICAgIGlmICgobm9kZSA9PSBOVUxMKSB8fCAoZG9jID09IE5VTEwpIHx8IChub2RlLT5kb2MgIT0gZG9jKSkKKwlyZXR1cm4gKC0xKTsKKworICAgIC8qIFRPRE86IDAgb3IgLTEgPyAqLworICAgIGlmIChub2RlLT5wYXJlbnQgPT0gTlVMTCkKKwlyZXR1cm4gKDApOworCisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisJY2FzZSBYTUxfVEVYVF9OT0RFOgorCWNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwljYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJY2FzZSBYTUxfUElfTk9ERToKKwljYXNlIFhNTF9DT01NRU5UX05PREU6CisJICAgIHhtbFVubGlua05vZGUobm9kZSk7CisJICAgIHJldHVybiAoMCk7CisJY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICByZXR1cm4gKDEpOworICAgIH0KKyAgICB4bWxVbmxpbmtOb2RlKG5vZGUpOworICAgIC8qCisgICAgKiBTYXZlIG91dC1vZi1zY29wZSBucy1yZWZlcmVuY2VzIGluIGRvYy0+b2xkTnMuCisgICAgKi8KKyAgICBkbyB7CisJc3dpdGNoIChub2RlLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwkJaWYgKChjdHh0ID09IE5VTEwpICYmIChub2RlLT5uc0RlZiAhPSBOVUxMKSkgeworCQkgICAgbnMgPSBub2RlLT5uc0RlZjsKKwkJICAgIGRvIHsKKwkJCWlmICh4bWxET01XcmFwTlNOb3JtQWRkTnNNYXBJdGVtMigmbGlzdCwgJnNpemVMaXN0LAorCQkJICAgICZuYkxpc3QsIG5zLCBucykgPT0gLTEpCisJCQkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJCW5zID0gbnMtPm5leHQ7CisJCSAgICB9IHdoaWxlIChucyAhPSBOVUxMKTsKKwkJfQorCQkvKiBObyBicmVhayBvbiBwdXJwb3NlLiAqLworCSAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkJaWYgKG5vZGUtPm5zICE9IE5VTEwpIHsKKwkJICAgIC8qCisJCSAgICAqIEZpbmQgYSBtYXBwaW5nLgorCQkgICAgKi8KKwkJICAgIGlmIChsaXN0ICE9IE5VTEwpIHsKKwkJCWZvciAoaSA9IDAsIGogPSAwOyBpIDwgbmJMaXN0OyBpKyssIGogKz0gMikgeworCQkJICAgIGlmIChub2RlLT5ucyA9PSBsaXN0W2pdKSB7CisJCQkJbm9kZS0+bnMgPSBsaXN0Wysral07CisJCQkJZ290byBuZXh0X25vZGU7CisJCQkgICAgfQorCQkJfQorCQkgICAgfQorCQkgICAgbnMgPSBOVUxMOworCQkgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCQkJLyoKKwkJCSogVXNlciBkZWZpbmVkLgorCQkJKi8KKwkJICAgIH0gZWxzZSB7CisJCQkvKgorCQkJKiBBZGQgdG8gZG9jJ3Mgb2xkTnMuCisJCQkqLworCQkJbnMgPSB4bWxET01XcmFwU3RvcmVOcyhkb2MsIG5vZGUtPm5zLT5ocmVmLAorCQkJICAgIG5vZGUtPm5zLT5wcmVmaXgpOworCQkJaWYgKG5zID09IE5VTEwpCisJCQkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJICAgIH0KKwkJICAgIGlmIChucyAhPSBOVUxMKSB7CisJCQkvKgorCQkJKiBBZGQgbWFwcGluZy4KKwkJCSovCisJCQlpZiAoeG1sRE9NV3JhcE5TTm9ybUFkZE5zTWFwSXRlbTIoJmxpc3QsICZzaXplTGlzdCwKKwkJCSAgICAmbmJMaXN0LCBub2RlLT5ucywgbnMpID09IC0xKQorCQkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCSAgICB9CisJCSAgICBub2RlLT5ucyA9IG5zOworCQl9CisJCWlmICgobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkgICAgKG5vZGUtPnByb3BlcnRpZXMgIT0gTlVMTCkpIHsKKwkJICAgIG5vZGUgPSAoeG1sTm9kZVB0cikgbm9kZS0+cHJvcGVydGllczsKKwkJICAgIGNvbnRpbnVlOworCQl9CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlnb3RvIG5leHRfc2libGluZzsKKwl9CituZXh0X25vZGU6CisJaWYgKChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJICAgIChub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSkgeworCSAgICBub2RlID0gbm9kZS0+Y2hpbGRyZW47CisJICAgIGNvbnRpbnVlOworCX0KK25leHRfc2libGluZzoKKwlpZiAobm9kZSA9PSBOVUxMKQorCSAgICBicmVhazsKKwlpZiAobm9kZS0+bmV4dCAhPSBOVUxMKQorCSAgICBub2RlID0gbm9kZS0+bmV4dDsKKwllbHNlIHsKKwkgICAgbm9kZSA9IG5vZGUtPnBhcmVudDsKKwkgICAgZ290byBuZXh0X3NpYmxpbmc7CisJfQorICAgIH0gd2hpbGUgKG5vZGUgIT0gTlVMTCk7CisKKyAgICBpZiAobGlzdCAhPSBOVUxMKQorCXhtbEZyZWUobGlzdCk7CisgICAgcmV0dXJuICgwKTsKKworaW50ZXJuYWxfZXJyb3I6CisgICAgaWYgKGxpc3QgIT0gTlVMTCkKKwl4bWxGcmVlKGxpc3QpOworICAgIHJldHVybiAoLTEpOworfQorCisvKgorKiB4bWxTZWFyY2hOc0J5TmFtZXNwYWNlU3RyaWN0OgorKiBAZG9jOiB0aGUgZG9jdW1lbnQKKyogQG5vZGU6IHRoZSBzdGFydCBub2RlCisqIEBuc05hbWU6IHRoZSBzZWFyY2hlZCBuYW1lc3BhY2UgbmFtZQorKiBAcmV0TnM6IHRoZSByZXN1bHRpbmcgbnMtZGVjbAorKiBAcHJlZml4ZWQ6IGlmIHRoZSBmb3VuZCBucy1kZWNsIG11c3QgaGF2ZSBhIHByZWZpeCAoZm9yIGF0dHJpYnV0ZXMpCisqCisqIER5bmFtaWNhbGx5IHNlYXJjaGVzIGZvciBhIG5zLWRlY2xhcmF0aW9uIHdoaWNoIG1hdGNoZXMKKyogdGhlIGdpdmVuIEBuc05hbWUgaW4gdGhlIGFuY2VzdG9yLW9yLXNlbGYgYXhpcyBvZiBAbm9kZS4KKyoKKyogUmV0dXJucyAxIGlmIGEgbnMtZGVjbCB3YXMgZm91bmQsIDAgaWYgbm90IGFuZCAtMSBvbiBBUEkKKyogICAgICAgICBhbmQgaW50ZXJuYWwgZXJyb3JzLgorKi8KK3N0YXRpYyBpbnQKK3htbFNlYXJjaE5zQnlOYW1lc3BhY2VTdHJpY3QoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBub2RlLAorCQkJICAgICBjb25zdCB4bWxDaGFyKiBuc05hbWUsCisJCQkgICAgIHhtbE5zUHRyICpyZXROcywgaW50IHByZWZpeGVkKQoreworICAgIHhtbE5vZGVQdHIgY3VyLCBwcmV2ID0gTlVMTCwgb3V0ID0gTlVMTDsKKyAgICB4bWxOc1B0ciBucywgcHJldm5zOworCisgICAgaWYgKChkb2MgPT0gTlVMTCkgfHwgKG5zTmFtZSA9PSBOVUxMKSB8fCAocmV0TnMgPT0gTlVMTCkpCisJcmV0dXJuICgtMSk7CisKKyAgICAqcmV0TnMgPSBOVUxMOworICAgIGlmICh4bWxTdHJFcXVhbChuc05hbWUsIFhNTF9YTUxfTkFNRVNQQUNFKSkgeworCSpyZXROcyA9IHhtbFRyZWVFbnN1cmVYTUxEZWNsKGRvYyk7CisJaWYgKCpyZXROcyA9PSBOVUxMKQorCSAgICByZXR1cm4gKC0xKTsKKwlyZXR1cm4gKDEpOworICAgIH0KKyAgICBjdXIgPSBub2RlOworICAgIGRvIHsKKwlpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgaWYgKGN1ci0+bnNEZWYgIT0gTlVMTCkgeworCQlmb3IgKG5zID0gY3VyLT5uc0RlZjsgbnMgIT0gTlVMTDsgbnMgPSBucy0+bmV4dCkgeworCQkgICAgaWYgKHByZWZpeGVkICYmIChucy0+cHJlZml4ID09IE5VTEwpKQorCQkJY29udGludWU7CisJCSAgICBpZiAocHJldiAhPSBOVUxMKSB7CisJCQkvKgorCQkJKiBDaGVjayB0aGUgbGFzdCBsZXZlbCBvZiBucy1kZWNscyBmb3IgYQorCQkJKiBzaGFkb3dpbmcgcHJlZml4LgorCQkJKi8KKwkJCXByZXZucyA9IHByZXYtPm5zRGVmOworCQkJZG8geworCQkJICAgIGlmICgocHJldm5zLT5wcmVmaXggPT0gbnMtPnByZWZpeCkgfHwKKwkJCQkoKHByZXZucy0+cHJlZml4ICE9IE5VTEwpICYmCisJCQkJKG5zLT5wcmVmaXggIT0gTlVMTCkgJiYKKwkJCQl4bWxTdHJFcXVhbChwcmV2bnMtPnByZWZpeCwgbnMtPnByZWZpeCkpKSB7CisJCQkJLyoKKwkJCQkqIFNoYWRvd2VkLgorCQkJCSovCisJCQkJYnJlYWs7CisJCQkgICAgfQorCQkJICAgIHByZXZucyA9IHByZXZucy0+bmV4dDsKKwkJCX0gd2hpbGUgKHByZXZucyAhPSBOVUxMKTsKKwkJCWlmIChwcmV2bnMgIT0gTlVMTCkKKwkJCSAgICBjb250aW51ZTsKKwkJICAgIH0KKwkJICAgIC8qCisJCSAgICAqIE5zLW5hbWUgY29tcGFyaXNvbi4KKwkJICAgICovCisJCSAgICBpZiAoKG5zTmFtZSA9PSBucy0+aHJlZikgfHwKKwkJCXhtbFN0ckVxdWFsKG5zTmFtZSwgbnMtPmhyZWYpKSB7CisJCQkvKgorCQkJKiBBdCB0aGlzIHBvaW50IHRoZSBwcmVmaXggY2FuIG9ubHkgYmUgc2hhZG93ZWQsCisJCQkqIGlmIHdlIGFyZSB0aGUgdGhlIChhdCBsZWFzdCkgM3JkIGxldmVsIG9mCisJCQkqIG5zLWRlY2xzLgorCQkJKi8KKwkJCWlmIChvdXQpIHsKKwkJCSAgICBpbnQgcmV0OworCisJCQkgICAgcmV0ID0geG1sTnNJblNjb3BlKGRvYywgbm9kZSwgcHJldiwgbnMtPnByZWZpeCk7CisJCQkgICAgaWYgKHJldCA8IDApCisJCQkJcmV0dXJuICgtMSk7CisJCQkgICAgLyoKKwkJCSAgICAqIFRPRE86IFNob3VsZCB3ZSB0cnkgdG8gZmluZCBhIG1hdGNoaW5nIG5zLW5hbWUKKwkJCSAgICAqIG9ubHkgb25jZT8gVGhpcyBoZXJlIGtlZXBzIG9uIHNlYXJjaGluZy4KKwkJCSAgICAqIEkgdGhpbmsgd2Ugc2hvdWxkIHRyeSBmdXJ0aGVyIHNpbmNlLCB0aGVyZSBtaWdodAorCQkJICAgICogYmUgYW4gb3RoZXIgbWF0Y2hpbmcgbnMtZGVjbCB3aXRoIGFuIHVuc2hhZG93ZWQKKwkJCSAgICAqIHByZWZpeC4KKwkJCSAgICAqLworCQkJICAgIGlmICghIHJldCkKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCSpyZXROcyA9IG5zOworCQkJcmV0dXJuICgxKTsKKwkJICAgIH0KKwkJfQorCQlvdXQgPSBwcmV2OworCQlwcmV2ID0gY3VyOworCSAgICB9CisJfSBlbHNlIGlmICgoY3VyLT50eXBlID09IFhNTF9FTlRJVFlfTk9ERSkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSkKKwkgICAgcmV0dXJuICgwKTsKKwljdXIgPSBjdXItPnBhcmVudDsKKyAgICB9IHdoaWxlICgoY3VyICE9IE5VTEwpICYmIChjdXItPmRvYyAhPSAoeG1sRG9jUHRyKSBjdXIpKTsKKyAgICByZXR1cm4gKDApOworfQorCisvKgorKiB4bWxTZWFyY2hOc0J5UHJlZml4U3RyaWN0OgorKiBAZG9jOiB0aGUgZG9jdW1lbnQKKyogQG5vZGU6IHRoZSBzdGFydCBub2RlCisqIEBwcmVmaXg6IHRoZSBzZWFyY2hlZCBuYW1lc3BhY2UgcHJlZml4CisqIEByZXROczogdGhlIHJlc3VsdGluZyBucy1kZWNsCisqCisqIER5bmFtaWNhbGx5IHNlYXJjaGVzIGZvciBhIG5zLWRlY2xhcmF0aW9uIHdoaWNoIG1hdGNoZXMKKyogdGhlIGdpdmVuIEBuc05hbWUgaW4gdGhlIGFuY2VzdG9yLW9yLXNlbGYgYXhpcyBvZiBAbm9kZS4KKyoKKyogUmV0dXJucyAxIGlmIGEgbnMtZGVjbCB3YXMgZm91bmQsIDAgaWYgbm90IGFuZCAtMSBvbiBBUEkKKyogICAgICAgICBhbmQgaW50ZXJuYWwgZXJyb3JzLgorKi8KK3N0YXRpYyBpbnQKK3htbFNlYXJjaE5zQnlQcmVmaXhTdHJpY3QoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBub2RlLAorCQkJICBjb25zdCB4bWxDaGFyKiBwcmVmaXgsCisJCQkgIHhtbE5zUHRyICpyZXROcykKK3sKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxOc1B0ciBuczsKKworICAgIGlmICgoZG9jID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorCXJldHVybiAoLTEpOworCisgICAgaWYgKHJldE5zKQorCSpyZXROcyA9IE5VTEw7CisgICAgaWYgKElTX1NUUl9YTUwocHJlZml4KSkgeworCWlmIChyZXROcykgeworCSAgICAqcmV0TnMgPSB4bWxUcmVlRW5zdXJlWE1MRGVjbChkb2MpOworCSAgICBpZiAoKnJldE5zID09IE5VTEwpCisJCXJldHVybiAoLTEpOworCX0KKwlyZXR1cm4gKDEpOworICAgIH0KKyAgICBjdXIgPSBub2RlOworICAgIGRvIHsKKwlpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgaWYgKGN1ci0+bnNEZWYgIT0gTlVMTCkgeworCQlucyA9IGN1ci0+bnNEZWY7CisJCWRvIHsKKwkJICAgIGlmICgocHJlZml4ID09IG5zLT5wcmVmaXgpIHx8CisJCQl4bWxTdHJFcXVhbChwcmVmaXgsIG5zLT5wcmVmaXgpKQorCQkgICAgeworCQkJLyoKKwkJCSogRGlzYWJsZWQgbmFtZXNwYWNlcywgZS5nLiB4bWxuczphYmM9IiIuCisJCQkqLworCQkJaWYgKG5zLT5ocmVmID09IE5VTEwpCisJCQkgICAgcmV0dXJuKDApOworCQkJaWYgKHJldE5zKQorCQkJICAgICpyZXROcyA9IG5zOworCQkJcmV0dXJuICgxKTsKKwkJICAgIH0KKwkJICAgIG5zID0gbnMtPm5leHQ7CisJCX0gd2hpbGUgKG5zICE9IE5VTEwpOworCSAgICB9CisJfSBlbHNlIGlmICgoY3VyLT50eXBlID09IFhNTF9FTlRJVFlfTk9ERSkgfHwKKyAgICAgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSkKKwkgICAgcmV0dXJuICgwKTsKKwljdXIgPSBjdXItPnBhcmVudDsKKyAgICB9IHdoaWxlICgoY3VyICE9IE5VTEwpICYmIChjdXItPmRvYyAhPSAoeG1sRG9jUHRyKSBjdXIpKTsKKyAgICByZXR1cm4gKDApOworfQorCisvKgorKiB4bWxET01XcmFwTlNOb3JtRGVjbGFyZU5zRm9yY2VkOgorKiBAZG9jOiB0aGUgZG9jCisqIEBlbGVtOiB0aGUgZWxlbWVudC1ub2RlIHRvIGRlY2xhcmUgb24KKyogQG5zTmFtZTogdGhlIG5hbWVzcGFjZS1uYW1lIG9mIHRoZSBucy1kZWNsCisqIEBwcmVmaXg6IHRoZSBwcmVmZXJyZWQgcHJlZml4IG9mIHRoZSBucy1kZWNsCisqIEBjaGVja1NoYWRvdzogZW5zdXJlIHRoYXQgdGhlIG5ldyBucy1kZWNsIGRvZXNuJ3Qgc2hhZG93IGFuY2VzdG9yIG5zLWRlY2xzCisqCisqIERlY2xhcmVzIGEgbmV3IG5hbWVzcGFjZSBvbiBAZWxlbS4gSXQgdHJpZXMgdG8gdXNlIHRoZQorKiBnaXZlbiBAcHJlZml4OyBpZiBhIG5zLWRlY2wgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4IGlzIGFscmVhZHkgZXhpc3RlbnQKKyogb24gQGVsZW0sIGl0IHdpbGwgZ2VuZXJhdGUgYW4gb3RoZXIgcHJlZml4LgorKgorKiBSZXR1cm5zIDEgaWYgYSBucy1kZWNsIHdhcyBmb3VuZCwgMCBpZiBub3QgYW5kIC0xIG9uIEFQSQorKiAgICAgICAgIGFuZCBpbnRlcm5hbCBlcnJvcnMuCisqLworc3RhdGljIHhtbE5zUHRyCit4bWxET01XcmFwTlNOb3JtRGVjbGFyZU5zRm9yY2VkKHhtbERvY1B0ciBkb2MsCisJCQkJeG1sTm9kZVB0ciBlbGVtLAorCQkJCWNvbnN0IHhtbENoYXIgKm5zTmFtZSwKKwkJCQljb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCQkJaW50IGNoZWNrU2hhZG93KQoreworCisgICAgeG1sTnNQdHIgcmV0OworICAgIGNoYXIgYnVmWzUwXTsKKyAgICBjb25zdCB4bWxDaGFyICpwcmVmOworICAgIGludCBjb3VudGVyID0gMDsKKyAgICAvKgorICAgICogQ3JlYXRlIGEgbnMtZGVjbCBvbiBAYW5jaG9yLgorICAgICovCisgICAgcHJlZiA9IHByZWZpeDsKKyAgICB3aGlsZSAoMSkgeworCS8qCisJKiBMb29rdXAgd2hldGhlciB0aGUgcHJlZml4IGlzIHVudXNlZCBpbiBlbGVtJ3MgbnMtZGVjbHMuCisJKi8KKwlpZiAoKGVsZW0tPm5zRGVmICE9IE5VTEwpICYmCisJICAgICh4bWxUcmVlTlNMaXN0TG9va3VwQnlQcmVmaXgoZWxlbS0+bnNEZWYsIHByZWYpICE9IE5VTEwpKQorCSAgICBnb3RvIG5zX25leHRfcHJlZml4OworCWlmIChjaGVja1NoYWRvdyAmJiBlbGVtLT5wYXJlbnQgJiYKKwkgICAgKCh4bWxOb2RlUHRyKSBlbGVtLT5wYXJlbnQtPmRvYyAhPSBlbGVtLT5wYXJlbnQpKSB7CisJICAgIC8qCisJICAgICogRG9lcyBpdCBzaGFkb3cgYW5jZXN0b3IgbnMtZGVjbHM/CisJICAgICovCisJICAgIGlmICh4bWxTZWFyY2hOc0J5UHJlZml4U3RyaWN0KGRvYywgZWxlbS0+cGFyZW50LCBwcmVmLCBOVUxMKSA9PSAxKQorCQlnb3RvIG5zX25leHRfcHJlZml4OworCX0KKwlyZXQgPSB4bWxOZXdOcyhOVUxMLCBuc05hbWUsIHByZWYpOworCWlmIChyZXQgPT0gTlVMTCkKKwkgICAgcmV0dXJuIChOVUxMKTsKKwlpZiAoZWxlbS0+bnNEZWYgPT0gTlVMTCkKKwkgICAgZWxlbS0+bnNEZWYgPSByZXQ7CisJZWxzZSB7CisJICAgIHhtbE5zUHRyIG5zMiA9IGVsZW0tPm5zRGVmOworCSAgICB3aGlsZSAobnMyLT5uZXh0ICE9IE5VTEwpCisJCW5zMiA9IG5zMi0+bmV4dDsKKwkgICAgbnMyLT5uZXh0ID0gcmV0OworCX0KKwlyZXR1cm4gKHJldCk7Cituc19uZXh0X3ByZWZpeDoKKwljb3VudGVyKys7CisJaWYgKGNvdW50ZXIgPiAxMDAwKQorCSAgICByZXR1cm4gKE5VTEwpOworCWlmIChwcmVmaXggPT0gTlVMTCkgeworCSAgICBzbnByaW50ZigoY2hhciAqKSBidWYsIHNpemVvZihidWYpLAorCQkibnNfJWQiLCBjb3VudGVyKTsKKwl9IGVsc2UKKwkgICAgc25wcmludGYoKGNoYXIgKikgYnVmLCBzaXplb2YoYnVmKSwKKwkgICAgIiUuMzBzXyVkIiwgKGNoYXIgKilwcmVmaXgsIGNvdW50ZXIpOworCXByZWYgPSBCQURfQ0FTVCBidWY7CisgICAgfQorfQorCisvKgorKiB4bWxET01XcmFwTlNOb3JtQXF1aXJlTm9ybWFsaXplZE5zOgorKiBAZG9jOiB0aGUgZG9jCisqIEBlbGVtOiB0aGUgZWxlbWVudC1ub2RlIHRvIGRlY2xhcmUgbmFtZXNwYWNlcyBvbgorKiBAbnM6IHRoZSBucy1zdHJ1Y3QgdG8gdXNlIGZvciB0aGUgc2VhcmNoCisqIEByZXROczogdGhlIGZvdW5kL2NyZWF0ZWQgbnMtc3RydWN0CisqIEBuc01hcDogdGhlIG5zLW1hcAorKiBAZGVwdGg6IHRoZSBjdXJyZW50IHRyZWUgZGVwdGgKKyogQGFuY2VzdG9yc09ubHk6IHNlYXJjaCBpbiBhbmNlc3RvciBucy1kZWNscyBvbmx5CisqIEBwcmVmaXhlZDogaWYgdGhlIHNlYXJjaGVkIG5zLWRlY2wgbXVzdCBoYXZlIGEgcHJlZml4IChmb3IgYXR0cmlidXRlcykKKyoKKyogU2VhcmNoZXMgZm9yIGEgbWF0Y2hpbmcgbnMtbmFtZSBpbiB0aGUgbnMtZGVjbHMgb2YgQG5zTWFwLCBpZiBub3QKKyogZm91bmQgaXQgd2lsbCBlaXRoZXIgZGVjbGFyZSBpdCBvbiBAZWxlbSwgb3Igc3RvcmUgaXQgaW4gZG9jLT5vbGROcy4KKyogSWYgYSBuZXcgbnMtZGVjbCBuZWVkcyB0byBiZSBkZWNsYXJlZCBvbiBAZWxlbSwgaXQgdHJpZXMgdG8gdXNlIHRoZQorKiBAbnMtPnByZWZpeCBmb3IgaXQsIGlmIHRoaXMgcHJlZml4IGlzIGFscmVhZHkgaW4gdXNlIG9uIEBlbGVtLCBpdCB3aWxsCisqIGNoYW5nZSB0aGUgcHJlZml4IG9yIHRoZSBuZXcgbnMtZGVjbC4KKyoKKyogUmV0dXJucyAwIGlmIHN1Y2NlZWRlZCwgLTEgb3RoZXJ3aXNlIGFuZCBvbiBBUEkvaW50ZXJuYWwgZXJyb3JzLgorKi8KK3N0YXRpYyBpbnQKK3htbERPTVdyYXBOU05vcm1BcXVpcmVOb3JtYWxpemVkTnMoeG1sRG9jUHRyIGRvYywKKwkJCQkgICB4bWxOb2RlUHRyIGVsZW0sCisJCQkJICAgeG1sTnNQdHIgbnMsCisJCQkJICAgeG1sTnNQdHIgKnJldE5zLAorCQkJCSAgIHhtbE5zTWFwUHRyICpuc01hcCwKKworCQkJCSAgIGludCBkZXB0aCwKKwkJCQkgICBpbnQgYW5jZXN0b3JzT25seSwKKwkJCQkgICBpbnQgcHJlZml4ZWQpCit7CisgICAgeG1sTnNNYXBJdGVtUHRyIG1pOworCisgICAgaWYgKChkb2MgPT0gTlVMTCkgfHwgKG5zID09IE5VTEwpIHx8IChyZXROcyA9PSBOVUxMKSB8fAorCShuc01hcCA9PSBOVUxMKSkKKwlyZXR1cm4gKC0xKTsKKworICAgICpyZXROcyA9IE5VTEw7CisgICAgLyoKKyAgICAqIEhhbmRsZSBYTUwgbmFtZXNwYWNlLgorICAgICovCisgICAgaWYgKElTX1NUUl9YTUwobnMtPnByZWZpeCkpIHsKKwkvKgorCSogSW5zZXJ0IFhNTCBuYW1lc3BhY2UgbWFwcGluZy4KKwkqLworCSpyZXROcyA9IHhtbFRyZWVFbnN1cmVYTUxEZWNsKGRvYyk7CisJaWYgKCpyZXROcyA9PSBOVUxMKQorCSAgICByZXR1cm4gKC0xKTsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICAvKgorICAgICogSWYgdGhlIHNlYXJjaCBzaG91bGQgYmUgZG9uZSBpbiBhbmNlc3RvcnMgb25seSBhbmQgbm8KKyAgICAqIEBlbGVtICh0aGUgZmlyc3QgYW5jZXN0b3IpIHdhcyBzcGVjaWZpZWQsIHRoZW4gc2tpcCB0aGUgc2VhcmNoLgorICAgICovCisgICAgaWYgKChYTUxfTlNNQVBfTk9URU1QVFkoKm5zTWFwKSkgJiYKKwkoISAoYW5jZXN0b3JzT25seSAmJiAoZWxlbSA9PSBOVUxMKSkpKQorICAgIHsKKwkvKgorCSogVHJ5IHRvIGZpbmQgYW4gZXF1YWwgbnMtbmFtZSBpbiBpbi1zY29wZSBucy1kZWNscy4KKwkqLworCVhNTF9OU01BUF9GT1JFQUNIKCpuc01hcCwgbWkpIHsKKwkgICAgaWYgKChtaS0+ZGVwdGggPj0gWE1MX1RSRUVfTlNNQVBfUEFSRU5UKSAmJgorCQkvKgorCQkqIGFuY2VzdG9yc09ubHk6IFRoaXMgc2hvdWxkIGJlIHR1cm5lZCBvbiB0byBnYWluIHNwZWVkLAorCQkqIGlmIG9uZSBrbm93cyB0aGF0IHRoZSBicmFuY2ggaXRzZWxmIHdhcyBhbHJlYWR5CisJCSogbnMtd2VsbGZvcm1lZCBhbmQgbm8gc3RhbGUgcmVmZXJlbmNlcyBleGlzdGVkLgorCQkqIEkuZS4gaXQgc2VhcmNoZXMgaW4gdGhlIGFuY2VzdG9yIGF4aXMgb25seS4KKwkJKi8KKwkJKCghIGFuY2VzdG9yc09ubHkpIHx8IChtaS0+ZGVwdGggPT0gWE1MX1RSRUVfTlNNQVBfUEFSRU5UKSkgJiYKKwkJLyogU2tpcCBzaGFkb3dlZCBwcmVmaXhlcy4gKi8KKwkJKG1pLT5zaGFkb3dEZXB0aCA9PSAtMSkgJiYKKwkJLyogU2tpcCB4bWxucz0iIiBvciB4bWxuczpmb289IiIuICovCisJCSgobWktPm5ld05zLT5ocmVmICE9IE5VTEwpICYmCisJCShtaS0+bmV3TnMtPmhyZWZbMF0gIT0gMCkpICYmCisJCS8qIEVuc3VyZSBhIHByZWZpeCBpZiB3YW50ZWQuICovCisJCSgoISBwcmVmaXhlZCkgfHwgKG1pLT5uZXdOcy0+cHJlZml4ICE9IE5VTEwpKSAmJgorCQkvKiBFcXVhbCBucyBuYW1lICovCisJCSgobWktPm5ld05zLT5ocmVmID09IG5zLT5ocmVmKSB8fAorCQl4bWxTdHJFcXVhbChtaS0+bmV3TnMtPmhyZWYsIG5zLT5ocmVmKSkpIHsKKwkJLyogU2V0IHRoZSBtYXBwaW5nLiAqLworCQltaS0+b2xkTnMgPSBuczsKKwkJKnJldE5zID0gbWktPm5ld05zOworCQlyZXR1cm4gKDApOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKgorICAgICogTm8gbHVjaywgdGhlIG5hbWVzcGFjZSBpcyBvdXQgb2Ygc2NvcGUgb3Igc2hhZG93ZWQuCisgICAgKi8KKyAgICBpZiAoZWxlbSA9PSBOVUxMKSB7CisJeG1sTnNQdHIgdG1wbnM7CisKKwkvKgorCSogU3RvcmUgbnMtZGVjbHMgaW4gIm9sZE5zIiBvZiB0aGUgZG9jdW1lbnQtbm9kZS4KKwkqLworCXRtcG5zID0geG1sRE9NV3JhcFN0b3JlTnMoZG9jLCBucy0+aHJlZiwgbnMtPnByZWZpeCk7CisJaWYgKHRtcG5zID09IE5VTEwpCisJICAgIHJldHVybiAoLTEpOworCS8qCisJKiBJbnNlcnQgbWFwcGluZy4KKwkqLworCWlmICh4bWxET01XcmFwTnNNYXBBZGRJdGVtKG5zTWFwLCAtMSwgbnMsCisJCXRtcG5zLCBYTUxfVFJFRV9OU01BUF9ET0MpID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZU5zKHRtcG5zKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCSpyZXROcyA9IHRtcG5zOworICAgIH0gZWxzZSB7CisJeG1sTnNQdHIgdG1wbnM7CisKKwl0bXBucyA9IHhtbERPTVdyYXBOU05vcm1EZWNsYXJlTnNGb3JjZWQoZG9jLCBlbGVtLCBucy0+aHJlZiwKKwkgICAgbnMtPnByZWZpeCwgMCk7CisJaWYgKHRtcG5zID09IE5VTEwpCisJICAgIHJldHVybiAoLTEpOworCisJaWYgKCpuc01hcCAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICogRG9lcyBpdCBzaGFkb3cgYW5jZXN0b3IgbnMtZGVjbHM/CisJICAgICovCisJICAgIFhNTF9OU01BUF9GT1JFQUNIKCpuc01hcCwgbWkpIHsKKwkJaWYgKChtaS0+ZGVwdGggPCBkZXB0aCkgJiYKKwkJICAgIChtaS0+c2hhZG93RGVwdGggPT0gLTEpICYmCisJCSAgICAoKG5zLT5wcmVmaXggPT0gbWktPm5ld05zLT5wcmVmaXgpIHx8CisJCSAgICB4bWxTdHJFcXVhbChucy0+cHJlZml4LCBtaS0+bmV3TnMtPnByZWZpeCkpKSB7CisJCSAgICAvKgorCQkgICAgKiBTaGFkb3dzLgorCQkgICAgKi8KKwkJICAgIG1pLT5zaGFkb3dEZXB0aCA9IGRlcHRoOworCQkgICAgYnJlYWs7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoeG1sRE9NV3JhcE5zTWFwQWRkSXRlbShuc01hcCwgLTEsIG5zLCB0bXBucywgZGVwdGgpID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZU5zKHRtcG5zKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCSpyZXROcyA9IHRtcG5zOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCit0eXBlZGVmIGVudW0geworICAgIFhNTF9ET01fUkVDT05OU19SRU1PVkVSRURVTkQgPSAxPDwwCit9IHhtbERPTVJlY29uY2lsZU5TT3B0aW9uczsKKworLyoKKyogeG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXM6CisqIEBjdHh0OiBET00gd3JhcHBlciBjb250ZXh0LCB1bnVzZWQgYXQgdGhlIG1vbWVudAorKiBAZWxlbTogdGhlIGVsZW1lbnQtbm9kZQorKiBAb3B0aW9uczogb3B0aW9uIGZsYWdzCisqCisqIEVuc3VyZXMgdGhhdCBucy1yZWZlcmVuY2VzIHBvaW50IHRvIG5zLWRlY2xzIGhvbGQgb24gZWxlbWVudC1ub2Rlcy4KKyogRW5zdXJlcyB0aGF0IHRoZSB0cmVlIGlzIG5hbWVzcGFjZSB3ZWxsZm9ybWVkIGJ5IGNyZWF0aW5nIGFkZGl0aW9uYWwKKyogbnMtZGVjbHMgd2hlcmUgbmVlZGVkLiBOb3RlIHRoYXQsIHNpbmNlIHByZWZpeGVzIG9mIGFscmVhZHkgZXhpc3RlbnQKKyogbnMtZGVjbHMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRoaXMgcHJvY2VzcywgaXQgY291bGQgYnJlYWsgUU5hbWVzIGluCisqIGF0dHJpYnV0ZSB2YWx1ZXMgb3IgZWxlbWVudCBjb250ZW50LgorKgorKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIHdhcyBub3QgaW50ZW5zaXZlbHkgdGVzdGVkLgorKgorKiBSZXR1cm5zIDAgaWYgc3VjY2VlZGVkLCAtMSBvdGhlcndpc2UgYW5kIG9uIEFQSS9pbnRlcm5hbCBlcnJvcnMuCisqLworCitpbnQKK3htbERPTVdyYXBSZWNvbmNpbGVOYW1lc3BhY2VzKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCwKKwkJCSAgICAgIHhtbE5vZGVQdHIgZWxlbSwKKwkJCSAgICAgIGludCBvcHRpb25zKQoreworICAgIGludCBkZXB0aCA9IC0xLCBhZG9wdG5zID0gMCwgcGFybnNkb25lID0gMDsKKyAgICB4bWxOc1B0ciBucywgcHJldm5zOworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sTm9kZVB0ciBjdXIsIGN1ckVsZW0gPSBOVUxMOworICAgIHhtbE5zTWFwUHRyIG5zTWFwID0gTlVMTDsKKyAgICB4bWxOc01hcEl0ZW1QdHIgLyogdG9wbWkgPSBOVUxMLCAqLyBtaTsKKyAgICAvKiBAYW5jZXN0b3JzT25seSBzaG91bGQgYmUgc2V0IGJ5IGFuIG9wdGlvbiBmbGFnLiAqLworICAgIGludCBhbmNlc3RvcnNPbmx5ID0gMDsKKyAgICBpbnQgb3B0UmVtb3ZlUmVkdW5kYW50TlMgPQorCSgoeG1sRE9NUmVjb25jaWxlTlNPcHRpb25zKSBvcHRpb25zICYgWE1MX0RPTV9SRUNPTk5TX1JFTU9WRVJFRFVORCkgPyAxIDogMDsKKyAgICB4bWxOc1B0ciAqbGlzdFJlZHVuZCA9IE5VTEw7CisgICAgaW50IHNpemVSZWR1bmQgPSAwLCBuYlJlZHVuZCA9IDAsIHJldCwgaSwgajsKKworICAgIGlmICgoZWxlbSA9PSBOVUxMKSB8fCAoZWxlbS0+ZG9jID09IE5VTEwpIHx8CisJKGVsZW0tPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpCisJcmV0dXJuICgtMSk7CisKKyAgICBkb2MgPSBlbGVtLT5kb2M7CisgICAgY3VyID0gZWxlbTsKKyAgICBkbyB7CisJc3dpdGNoIChjdXItPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCQlhZG9wdG5zID0gMTsKKwkJY3VyRWxlbSA9IGN1cjsKKwkJZGVwdGgrKzsKKwkJLyoKKwkJKiBOYW1lc3BhY2UgZGVjbGFyYXRpb25zLgorCQkqLworCQlpZiAoY3VyLT5uc0RlZiAhPSBOVUxMKSB7CisJCSAgICBwcmV2bnMgPSBOVUxMOworCQkgICAgbnMgPSBjdXItPm5zRGVmOworCQkgICAgd2hpbGUgKG5zICE9IE5VTEwpIHsKKwkJCWlmICghIHBhcm5zZG9uZSkgeworCQkJICAgIGlmICgoZWxlbS0+cGFyZW50KSAmJgorCQkJCSgoeG1sTm9kZVB0cikgZWxlbS0+cGFyZW50LT5kb2MgIT0gZWxlbS0+cGFyZW50KSkgeworCQkJCS8qCisJCQkJKiBHYXRoZXIgYW5jZXN0b3IgaW4tc2NvcGUgbnMtZGVjbHMuCisJCQkJKi8KKwkJCQlpZiAoeG1sRE9NV3JhcE5TTm9ybUdhdGhlckluU2NvcGVOcygmbnNNYXAsCisJCQkJICAgIGVsZW0tPnBhcmVudCkgPT0gLTEpCisJCQkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCQkgICAgfQorCQkJICAgIHBhcm5zZG9uZSA9IDE7CisJCQl9CisKKwkJCS8qCisJCQkqIExvb2t1cCB0aGUgbnMgYW5jZXN0b3ItYXhpcyBmb3IgZXF1YWwgbnMtZGVjbHMgaW4gc2NvcGUuCisJCQkqLworCQkJaWYgKG9wdFJlbW92ZVJlZHVuZGFudE5TICYmIFhNTF9OU01BUF9OT1RFTVBUWShuc01hcCkpIHsKKwkJCSAgICBYTUxfTlNNQVBfRk9SRUFDSChuc01hcCwgbWkpIHsKKwkJCQlpZiAoKG1pLT5kZXB0aCA+PSBYTUxfVFJFRV9OU01BUF9QQVJFTlQpICYmCisJCQkJICAgIChtaS0+c2hhZG93RGVwdGggPT0gLTEpICYmCisJCQkJICAgICgobnMtPnByZWZpeCA9PSBtaS0+bmV3TnMtPnByZWZpeCkgfHwKKwkJCQkgICAgICB4bWxTdHJFcXVhbChucy0+cHJlZml4LCBtaS0+bmV3TnMtPnByZWZpeCkpICYmCisJCQkJICAgICgobnMtPmhyZWYgPT0gbWktPm5ld05zLT5ocmVmKSB8fAorCQkJCSAgICAgIHhtbFN0ckVxdWFsKG5zLT5ocmVmLCBtaS0+bmV3TnMtPmhyZWYpKSkKKwkJCQl7CisJCQkJICAgIC8qCisJCQkJICAgICogQSByZWR1bmRhbnQgbnMtZGVjbCB3YXMgZm91bmQuCisJCQkJICAgICogQWRkIGl0IHRvIHRoZSBsaXN0IG9mIHJlZHVuZGFudCBucy1kZWNscy4KKwkJCQkgICAgKi8KKwkJCQkgICAgaWYgKHhtbERPTVdyYXBOU05vcm1BZGROc01hcEl0ZW0yKCZsaXN0UmVkdW5kLAorCQkJCQkmc2l6ZVJlZHVuZCwgJm5iUmVkdW5kLCBucywgbWktPm5ld05zKSA9PSAtMSkKKwkJCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJCQkgICAgLyoKKwkJCQkgICAgKiBSZW1vdmUgdGhlIG5zLWRlY2wgZnJvbSB0aGUgZWxlbWVudC1ub2RlLgorCQkJCSAgICAqLworCQkJCSAgICBpZiAocHJldm5zKQorCQkJCQlwcmV2bnMtPm5leHQgPSBucy0+bmV4dDsKKwkJCQkgICAgZWxzZQorCQkJCQljdXItPm5zRGVmID0gbnMtPm5leHQ7CisJCQkJICAgIGdvdG8gbmV4dF9uc19kZWNsOworCQkJCX0KKwkJCSAgICB9CisJCQl9CisKKwkJCS8qCisJCQkqIFNraXAgbnMtcmVmZXJlbmNlcyBoYW5kbGluZyBpZiB0aGUgcmVmZXJlbmNlZAorCQkJKiBucy1kZWNsIGlzIGRlY2xhcmVkIG9uIHRoZSBzYW1lIGVsZW1lbnQuCisJCQkqLworCQkJaWYgKChjdXItPm5zICE9IE5VTEwpICYmIGFkb3B0bnMgJiYgKGN1ci0+bnMgPT0gbnMpKQorCQkJICAgIGFkb3B0bnMgPSAwOworCQkJLyoKKwkJCSogRG9lcyBpdCBzaGFkb3cgYW55IG5zLWRlY2w/CisJCQkqLworCQkJaWYgKFhNTF9OU01BUF9OT1RFTVBUWShuc01hcCkpIHsKKwkJCSAgICBYTUxfTlNNQVBfRk9SRUFDSChuc01hcCwgbWkpIHsKKwkJCQlpZiAoKG1pLT5kZXB0aCA+PSBYTUxfVFJFRV9OU01BUF9QQVJFTlQpICYmCisJCQkJICAgIChtaS0+c2hhZG93RGVwdGggPT0gLTEpICYmCisJCQkJICAgICgobnMtPnByZWZpeCA9PSBtaS0+bmV3TnMtPnByZWZpeCkgfHwKKwkJCQkgICAgeG1sU3RyRXF1YWwobnMtPnByZWZpeCwgbWktPm5ld05zLT5wcmVmaXgpKSkgeworCisJCQkJICAgIG1pLT5zaGFkb3dEZXB0aCA9IGRlcHRoOworCQkJCX0KKwkJCSAgICB9CisJCQl9CisJCQkvKgorCQkJKiBQdXNoIG1hcHBpbmcuCisJCQkqLworCQkJaWYgKHhtbERPTVdyYXBOc01hcEFkZEl0ZW0oJm5zTWFwLCAtMSwgbnMsIG5zLAorCQkJICAgIGRlcHRoKSA9PSBOVUxMKQorCQkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisKKwkJCXByZXZucyA9IG5zOworbmV4dF9uc19kZWNsOgorCQkJbnMgPSBucy0+bmV4dDsKKwkJICAgIH0KKwkJfQorCQlpZiAoISBhZG9wdG5zKQorCQkgICAgZ290byBuc19lbmQ7CisJCS8qIE5vIGJyZWFrIG9uIHB1cnBvc2UuICovCisJICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCQkvKiBObyBucywgbm8gZnVuLiAqLworCQlpZiAoY3VyLT5ucyA9PSBOVUxMKQorCQkgICAgZ290byBuc19lbmQ7CisKKwkJaWYgKCEgcGFybnNkb25lKSB7CisJCSAgICBpZiAoKGVsZW0tPnBhcmVudCkgJiYKKwkJCSgoeG1sTm9kZVB0cikgZWxlbS0+cGFyZW50LT5kb2MgIT0gZWxlbS0+cGFyZW50KSkgeworCQkJaWYgKHhtbERPTVdyYXBOU05vcm1HYXRoZXJJblNjb3BlTnMoJm5zTWFwLAorCQkJCWVsZW0tPnBhcmVudCkgPT0gLTEpCisJCQkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJICAgIH0KKwkJICAgIHBhcm5zZG9uZSA9IDE7CisJCX0KKwkJLyoKKwkJKiBBZGp1c3QgdGhlIHJlZmVyZW5jZSBpZiB0aGlzIHdhcyBhIHJlZHVuZGFudCBucy1kZWNsLgorCQkqLworCQlpZiAobGlzdFJlZHVuZCkgeworCQkgICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IG5iUmVkdW5kOyBpKyssIGogKz0gMikgeworCQkgICAgICAgaWYgKGN1ci0+bnMgPT0gbGlzdFJlZHVuZFtqXSkgeworCQkJICAgY3VyLT5ucyA9IGxpc3RSZWR1bmRbKytqXTsKKwkJCSAgIGJyZWFrOworCQkgICAgICAgfQorCQkgICB9CisJCX0KKwkJLyoKKwkJKiBBZG9wdCBucy1yZWZlcmVuY2VzLgorCQkqLworCQlpZiAoWE1MX05TTUFQX05PVEVNUFRZKG5zTWFwKSkgeworCQkgICAgLyoKKwkJICAgICogU2VhcmNoIGZvciBhIG1hcHBpbmcuCisJCSAgICAqLworCQkgICAgWE1MX05TTUFQX0ZPUkVBQ0gobnNNYXAsIG1pKSB7CisJCQlpZiAoKG1pLT5zaGFkb3dEZXB0aCA9PSAtMSkgJiYKKwkJCSAgICAoY3VyLT5ucyA9PSBtaS0+b2xkTnMpKSB7CisKKwkJCSAgICBjdXItPm5zID0gbWktPm5ld05zOworCQkJICAgIGdvdG8gbnNfZW5kOworCQkJfQorCQkgICAgfQorCQl9CisJCS8qCisJCSogQXF1aXJlIGEgbm9ybWFsaXplZCBucy1kZWNsIGFuZCBhZGQgaXQgdG8gdGhlIG1hcC4KKwkJKi8KKwkJaWYgKHhtbERPTVdyYXBOU05vcm1BcXVpcmVOb3JtYWxpemVkTnMoZG9jLCBjdXJFbGVtLAorCQkJY3VyLT5ucywgJm5zLAorCQkJJm5zTWFwLCBkZXB0aCwKKwkJCWFuY2VzdG9yc09ubHksCisJCQkoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgPyAxIDogMCkgPT0gLTEpCisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQljdXItPm5zID0gbnM7CisKK25zX2VuZDoKKwkJaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkJICAgIChjdXItPnByb3BlcnRpZXMgIT0gTlVMTCkpIHsKKwkJICAgIC8qCisJCSAgICAqIFByb2Nlc3MgYXR0cmlidXRlcy4KKwkJICAgICovCisJCSAgICBjdXIgPSAoeG1sTm9kZVB0cikgY3VyLT5wcm9wZXJ0aWVzOworCQkgICAgY29udGludWU7CisJCX0KKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWdvdG8gbmV4dF9zaWJsaW5nOworCX0KK2ludG9fY29udGVudDoKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCSAgICAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSkgeworCSAgICAvKgorCSAgICAqIFByb2Nlc3MgY29udGVudCBvZiBlbGVtZW50LW5vZGVzIG9ubHkuCisJICAgICovCisJICAgIGN1ciA9IGN1ci0+Y2hpbGRyZW47CisJICAgIGNvbnRpbnVlOworCX0KK25leHRfc2libGluZzoKKwlpZiAoY3VyID09IGVsZW0pCisJICAgIGJyZWFrOworCWlmIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCSAgICBpZiAoWE1MX05TTUFQX05PVEVNUFRZKG5zTWFwKSkgeworCQkvKgorCQkqIFBvcCBtYXBwaW5ncy4KKwkJKi8KKwkJd2hpbGUgKChuc01hcC0+bGFzdCAhPSBOVUxMKSAmJgorCQkgICAgKG5zTWFwLT5sYXN0LT5kZXB0aCA+PSBkZXB0aCkpCisJCXsKKwkJICAgIFhNTF9OU01BUF9QT1AobnNNYXAsIG1pKQorCQl9CisJCS8qCisJCSogVW5zaGFkb3cuCisJCSovCisJCVhNTF9OU01BUF9GT1JFQUNIKG5zTWFwLCBtaSkgeworCQkgICAgaWYgKG1pLT5zaGFkb3dEZXB0aCA+PSBkZXB0aCkKKwkJCW1pLT5zaGFkb3dEZXB0aCA9IC0xOworCQl9CisJICAgIH0KKwkgICAgZGVwdGgtLTsKKwl9CisJaWYgKGN1ci0+bmV4dCAhPSBOVUxMKQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJZWxzZSB7CisJICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJCWN1ciA9IGN1ci0+cGFyZW50OworCQlnb3RvIGludG9fY29udGVudDsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItPnBhcmVudDsKKwkgICAgZ290byBuZXh0X3NpYmxpbmc7CisJfQorICAgIH0gd2hpbGUgKGN1ciAhPSBOVUxMKTsKKworICAgIHJldCA9IDA7CisgICAgZ290byBleGl0OworaW50ZXJuYWxfZXJyb3I6CisgICAgcmV0ID0gLTE7CitleGl0OgorICAgIGlmIChsaXN0UmVkdW5kKSB7CisJZm9yIChpID0gMCwgaiA9IDA7IGkgPCBuYlJlZHVuZDsgaSsrLCBqICs9IDIpIHsKKwkgICAgeG1sRnJlZU5zKGxpc3RSZWR1bmRbal0pOworCX0KKwl4bWxGcmVlKGxpc3RSZWR1bmQpOworICAgIH0KKyAgICBpZiAobnNNYXAgIT0gTlVMTCkKKwl4bWxET01XcmFwTnNNYXBGcmVlKG5zTWFwKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qCisqIHhtbERPTVdyYXBBZG9wdEJyYW5jaDoKKyogQGN0eHQ6IHRoZSBvcHRpb25hbCBjb250ZXh0IGZvciBjdXN0b20gcHJvY2Vzc2luZworKiBAc291cmNlRG9jOiB0aGUgb3B0aW9uYWwgc291cmNlRG9jCisqIEBub2RlOiB0aGUgZWxlbWVudC1ub2RlIHRvIHN0YXJ0IHdpdGgKKyogQGRlc3REb2M6IHRoZSBkZXN0aW5hdGlvbiBkb2MgZm9yIGFkb3B0aW9uCisqIEBkZXN0UGFyZW50OiB0aGUgb3B0aW9uYWwgbmV3IHBhcmVudCBvZiBAbm9kZSBpbiBAZGVzdERvYworKiBAb3B0aW9uczogb3B0aW9uIGZsYWdzCisqCisqIEVuc3VyZXMgdGhhdCBucy1yZWZlcmVuY2VzIHBvaW50IHRvIEBkZXN0RG9jOiBlaXRoZXIgdG8KKyogZWxlbWVudHMtPm5zRGVmIGVudHJpZXMgaWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIG9yIHRvCisqIEBkZXN0RG9jLT5vbGROcyBvdGhlcndpc2UuCisqIElmIEBkZXN0UGFyZW50IGlzIGdpdmVuLCBpdCBlbnN1cmVzIHRoYXQgdGhlIHRyZWUgaXMgbmFtZXNwYWNlCisqIHdlbGxmb3JtZWQgYnkgY3JlYXRpbmcgYWRkaXRpb25hbCBucy1kZWNscyB3aGVyZSBuZWVkZWQuCisqIE5vdGUgdGhhdCwgc2luY2UgcHJlZml4ZXMgb2YgYWxyZWFkeSBleGlzdGVudCBucy1kZWNscyBjYW4gYmUKKyogc2hhZG93ZWQgYnkgdGhpcyBwcm9jZXNzLCBpdCBjb3VsZCBicmVhayBRTmFtZXMgaW4gYXR0cmlidXRlCisqIHZhbHVlcyBvciBlbGVtZW50IGNvbnRlbnQuCisqCisqIE5PVEU6IFRoaXMgZnVuY3Rpb24gd2FzIG5vdCBpbnRlbnNpdmVseSB0ZXN0ZWQuCisqCisqIFJldHVybnMgMCBpZiBzdWNjZWVkZWQsIC0xIG90aGVyd2lzZSBhbmQgb24gQVBJL2ludGVybmFsIGVycm9ycy4KKyovCitzdGF0aWMgaW50Cit4bWxET01XcmFwQWRvcHRCcmFuY2goeG1sRE9NV3JhcEN0eHRQdHIgY3R4dCwKKwkJICAgICAgeG1sRG9jUHRyIHNvdXJjZURvYywKKwkJICAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkgICAgICB4bWxEb2NQdHIgZGVzdERvYywKKwkJICAgICAgeG1sTm9kZVB0ciBkZXN0UGFyZW50LAorCQkgICAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGludCByZXQgPSAwOworICAgIHhtbE5vZGVQdHIgY3VyLCBjdXJFbGVtID0gTlVMTDsKKyAgICB4bWxOc01hcFB0ciBuc01hcCA9IE5VTEw7CisgICAgeG1sTnNNYXBJdGVtUHRyIG1pOworICAgIHhtbE5zUHRyIG5zID0gTlVMTDsKKyAgICBpbnQgZGVwdGggPSAtMSwgYWRvcHRTdHIgPSAxOworICAgIC8qIGdhdGhlciBAcGFyZW50J3MgbnMtZGVjbHMuICovCisgICAgaW50IHBhcm5zZG9uZTsKKyAgICAvKiBAYW5jZXN0b3JzT25seSBzaG91bGQgYmUgc2V0IHBlciBvcHRpb24uICovCisgICAgaW50IGFuY2VzdG9yc09ubHkgPSAwOworCisgICAgLyoKKyAgICAqIE9wdGltaXplIHN0cmluZyBhZG9wdGlvbiBmb3IgZXF1YWwgb3Igbm9uZSBkaWN0cy4KKyAgICAqLworICAgIGlmICgoc291cmNlRG9jICE9IE5VTEwpICYmCisJKHNvdXJjZURvYy0+ZGljdCA9PSBkZXN0RG9jLT5kaWN0KSkKKwlhZG9wdFN0ciA9IDA7CisgICAgZWxzZQorCWFkb3B0U3RyID0gMTsKKworICAgIC8qCisgICAgKiBHZXQgdGhlIG5zLW1hcCBmcm9tIHRoZSBjb250ZXh0IGlmIGF2YWlsYWJsZS4KKyAgICAqLworICAgIGlmIChjdHh0KQorCW5zTWFwID0gKHhtbE5zTWFwUHRyKSBjdHh0LT5uYW1lc3BhY2VNYXA7CisgICAgLyoKKyAgICAqIERpc2FibGUgc2VhcmNoIGZvciBucy1kZWNscyBpbiB0aGUgcGFyZW50LWF4aXMgb2YgdGhlCisgICAgKiBkZXNpbmF0aW9uIGVsZW1lbnQsIGlmOgorICAgICogMSkgdGhlcmUncyBubyBkZXN0aW5hdGlvbiBwYXJlbnQKKyAgICAqIDIpIGN1c3RvbSBucy1yZWZlcmVuY2UgaGFuZGxpbmcgaXMgdXNlZAorICAgICovCisgICAgaWYgKChkZXN0UGFyZW50ID09IE5VTEwpIHx8CisJKGN0eHQgJiYgY3R4dC0+Z2V0TnNGb3JOb2RlRnVuYykpCisgICAgeworCXBhcm5zZG9uZSA9IDE7CisgICAgfSBlbHNlCisJcGFybnNkb25lID0gMDsKKworICAgIGN1ciA9IG5vZGU7CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJLyoKKwkqIFBhcmFub2lkIHNvdXJjZS1kb2Mgc2FuaXR5IGNoZWNrLgorCSovCisJaWYgKGN1ci0+ZG9jICE9IHNvdXJjZURvYykgeworCSAgICAvKgorCSAgICAqIFdlJ2xsIGFzc3VtZSBYSW5jbHVkZWQgbm9kZXMgaWYgdGhlIGRvYyBkaWZmZXJzLgorCSAgICAqIFRPRE86IERvIHdlIG5lZWQgdG8gcmVjb25jaWxpYXRlIFhJbmNsdWRlZCBub2Rlcz8KKwkgICAgKiBUaGlzIGhlcmUgc2tpcHMgWEluY2x1ZGVkIG5vZGVzIGFuZCB0cmllcyB0byBoYW5kbGUKKwkgICAgKiBicm9rZW4gc2VxdWVuY2VzLgorCSAgICAqLworCSAgICBpZiAoY3VyLT5uZXh0ID09IE5VTEwpCisJCWdvdG8gbGVhdmVfbm9kZTsKKwkgICAgZG8geworCQljdXIgPSBjdXItPm5leHQ7CisJCWlmICgoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9FTkQpIHx8CisJCSAgICAoY3VyLT5kb2MgPT0gbm9kZS0+ZG9jKSkKKwkJICAgIGJyZWFrOworCSAgICB9IHdoaWxlIChjdXItPm5leHQgIT0gTlVMTCk7CisKKwkgICAgaWYgKGN1ci0+ZG9jICE9IG5vZGUtPmRvYykKKwkJZ290byBsZWF2ZV9ub2RlOworCX0KKwljdXItPmRvYyA9IGRlc3REb2M7CisJc3dpdGNoIChjdXItPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKwkJLyoKKwkJKiBUT0RPCisJCSovCisJCXJldHVybiAoLTEpOworCSAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJCWN1ckVsZW0gPSBjdXI7CisJCWRlcHRoKys7CisJCS8qCisJCSogTmFtZXNwYWNlIGRlY2xhcmF0aW9ucy4KKwkJKiAtIG5zLT5ocmVmIGFuZCBucy0+cHJlZml4IGFyZSBuZXZlciBpbiB0aGUgZGljdCwgc28KKwkJKiAgIHdlIG5lZWQgbm90IG1vdmUgdGhlIHZhbHVlcyBvdmVyIHRvIHRoZSBkZXN0aW5hdGlvbiBkaWN0LgorCQkqIC0gTm90ZSB0aGF0IGZvciBjdXN0b20gaGFuZGxpbmcgb2YgbnMtcmVmZXJlbmNlcywKKwkJKiAgIHRoZSBucy1kZWNscyBuZWVkIG5vdCBiZSBzdG9yZWQgaW4gdGhlIG5zLW1hcCwKKwkJKiAgIHNpbmNlIHRoZXkgd29uJ3QgYmUgcmVmZXJlbmNlZCBieSBub2RlLT5ucy4KKwkJKi8KKwkJaWYgKChjdXItPm5zRGVmKSAmJgorCQkgICAgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5nZXROc0Zvck5vZGVGdW5jID09IE5VTEwpKSkKKwkJeworCQkgICAgaWYgKCEgcGFybnNkb25lKSB7CisJCQkvKgorCQkJKiBHYXRoZXIgQHBhcmVudCdzIGluLXNjb3BlIG5zLWRlY2xzLgorCQkJKi8KKwkJCWlmICh4bWxET01XcmFwTlNOb3JtR2F0aGVySW5TY29wZU5zKCZuc01hcCwKKwkJCSAgICBkZXN0UGFyZW50KSA9PSAtMSkKKwkJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQkJcGFybnNkb25lID0gMTsKKwkJICAgIH0KKwkJICAgIGZvciAobnMgPSBjdXItPm5zRGVmOyBucyAhPSBOVUxMOyBucyA9IG5zLT5uZXh0KSB7CisJCQkvKgorCQkJKiBOT1RFOiBucy0+cHJlZml4IGFuZCBucy0+aHJlZiBhcmUgbmV2ZXIgaW4gdGhlIGRpY3QuCisJCQkqIFhNTF9UUkVFX0FET1BUX1NUUihucy0+cHJlZml4KQorCQkJKiBYTUxfVFJFRV9BRE9QVF9TVFIobnMtPmhyZWYpCisJCQkqLworCQkJLyoKKwkJCSogRG9lcyBpdCBzaGFkb3cgYW55IG5zLWRlY2w/CisJCQkqLworCQkJaWYgKFhNTF9OU01BUF9OT1RFTVBUWShuc01hcCkpIHsKKwkJCSAgICBYTUxfTlNNQVBfRk9SRUFDSChuc01hcCwgbWkpIHsKKwkJCQlpZiAoKG1pLT5kZXB0aCA+PSBYTUxfVFJFRV9OU01BUF9QQVJFTlQpICYmCisJCQkJICAgIChtaS0+c2hhZG93RGVwdGggPT0gLTEpICYmCisJCQkJICAgICgobnMtPnByZWZpeCA9PSBtaS0+bmV3TnMtPnByZWZpeCkgfHwKKwkJCQkgICAgeG1sU3RyRXF1YWwobnMtPnByZWZpeCwKKwkJCQkgICAgbWktPm5ld05zLT5wcmVmaXgpKSkgeworCisJCQkJICAgIG1pLT5zaGFkb3dEZXB0aCA9IGRlcHRoOworCQkJCX0KKwkJCSAgICB9CisJCQl9CisJCQkvKgorCQkJKiBQdXNoIG1hcHBpbmcuCisJCQkqLworCQkJaWYgKHhtbERPTVdyYXBOc01hcEFkZEl0ZW0oJm5zTWFwLCAtMSwKKwkJCSAgICBucywgbnMsIGRlcHRoKSA9PSBOVUxMKQorCQkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCSAgICB9CisJCX0KKwkJLyogTm8gYnJlYWsgb24gcHVycG9zZS4gKi8KKwkgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJCS8qIE5vIG5hbWVzcGFjZSwgbm8gZnVuLiAqLworCQlpZiAoY3VyLT5ucyA9PSBOVUxMKQorCQkgICAgZ290byBuc19lbmQ7CisKKwkJaWYgKCEgcGFybnNkb25lKSB7CisJCSAgICBpZiAoeG1sRE9NV3JhcE5TTm9ybUdhdGhlckluU2NvcGVOcygmbnNNYXAsCisJCQlkZXN0UGFyZW50KSA9PSAtMSkKKwkJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCSAgICBwYXJuc2RvbmUgPSAxOworCQl9CisJCS8qCisJCSogQWRvcHQgbnMtcmVmZXJlbmNlcy4KKwkJKi8KKwkJaWYgKFhNTF9OU01BUF9OT1RFTVBUWShuc01hcCkpIHsKKwkJICAgIC8qCisJCSAgICAqIFNlYXJjaCBmb3IgYSBtYXBwaW5nLgorCQkgICAgKi8KKwkJICAgIFhNTF9OU01BUF9GT1JFQUNIKG5zTWFwLCBtaSkgeworCQkJaWYgKChtaS0+c2hhZG93RGVwdGggPT0gLTEpICYmCisJCQkgICAgKGN1ci0+bnMgPT0gbWktPm9sZE5zKSkgeworCisJCQkgICAgY3VyLT5ucyA9IG1pLT5uZXdOczsKKwkJCSAgICBnb3RvIG5zX2VuZDsKKwkJCX0KKwkJICAgIH0KKwkJfQorCQkvKgorCQkqIE5vIG1hdGNoaW5nIG5hbWVzcGFjZSBpbiBzY29wZS4gV2UgbmVlZCBhIG5ldyBvbmUuCisJCSovCisJCWlmICgoY3R4dCkgJiYgKGN0eHQtPmdldE5zRm9yTm9kZUZ1bmMpKSB7CisJCSAgICAvKgorCQkgICAgKiBVc2VyLWRlZmluZWQgYmVoYXZpb3VyLgorCQkgICAgKi8KKwkJICAgIG5zID0gY3R4dC0+Z2V0TnNGb3JOb2RlRnVuYyhjdHh0LCBjdXIsCisJCQljdXItPm5zLT5ocmVmLCBjdXItPm5zLT5wcmVmaXgpOworCQkgICAgLyoKKwkJICAgICogSW5zZXJ0IG1hcHBpbmcgaWYgbnMgaXMgYXZhaWxhYmxlOyBpdCdzIHRoZSB1c2VycyBmYXVsdAorCQkgICAgKiBpZiBub3QuCisJCSAgICAqLworCQkgICAgaWYgKHhtbERPTVdyYXBOc01hcEFkZEl0ZW0oJm5zTWFwLCAtMSwKKwkJCSAgICBjdXItPm5zLCBucywgWE1MX1RSRUVfTlNNQVBfQ1VTVE9NKSA9PSBOVUxMKQorCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJICAgIGN1ci0+bnMgPSBuczsKKwkJfSBlbHNlIHsKKwkJICAgIC8qCisJCSAgICAqIEFxdWlyZSBhIG5vcm1hbGl6ZWQgbnMtZGVjbCBhbmQgYWRkIGl0IHRvIHRoZSBtYXAuCisJCSAgICAqLworCQkgICAgaWYgKHhtbERPTVdyYXBOU05vcm1BcXVpcmVOb3JtYWxpemVkTnMoZGVzdERvYywKKwkJCS8qIG5zLWRlY2xzIG9uIGN1ckVsZW0gb3Igb24gZGVzdERvYy0+b2xkTnMgKi8KKwkJCWRlc3RQYXJlbnQgPyBjdXJFbGVtIDogTlVMTCwKKwkJCWN1ci0+bnMsICZucywKKwkJCSZuc01hcCwgZGVwdGgsCisJCQlhbmNlc3RvcnNPbmx5LAorCQkJLyogbnMtZGVjbHMgbXVzdCBiZSBwcmVmaXhlZCBmb3IgYXR0cmlidXRlcy4gKi8KKwkJCShjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSA/IDEgOiAwKSA9PSAtMSkKKwkJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCSAgICBjdXItPm5zID0gbnM7CisJCX0KK25zX2VuZDoKKwkJLyoKKwkJKiBGdXJ0aGVyIG5vZGUgcHJvcGVydGllcy4KKwkJKiBUT0RPOiBJcyB0aGlzIGFsbD8KKwkJKi8KKwkJWE1MX1RSRUVfQURPUFRfU1RSKGN1ci0+bmFtZSkKKwkJaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJCSAgICBjdXItPnBzdmkgPSBOVUxMOworCQkgICAgY3VyLT5saW5lID0gMDsKKwkJICAgIGN1ci0+ZXh0cmEgPSAwOworCQkgICAgLyoKKwkJICAgICogV2FsayBhdHRyaWJ1dGVzLgorCQkgICAgKi8KKwkJICAgIGlmIChjdXItPnByb3BlcnRpZXMgIT0gTlVMTCkgeworCQkJLyoKKwkJCSogUHJvY2VzcyBmaXJzdCBhdHRyaWJ1dGUgbm9kZS4KKwkJCSovCisJCQljdXIgPSAoeG1sTm9kZVB0cikgY3VyLT5wcm9wZXJ0aWVzOworCQkJY29udGludWU7CisJCSAgICB9CisJCX0gZWxzZSB7CisJCSAgICAvKgorCQkgICAgKiBBdHRyaWJ1dGVzLgorCQkgICAgKi8KKwkJICAgIGlmICgoc291cmNlRG9jICE9IE5VTEwpICYmCisJCQkoKCh4bWxBdHRyUHRyKSBjdXIpLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEKSkKKwkJICAgIHsKKwkJCXhtbFJlbW92ZUlEKHNvdXJjZURvYywgKHhtbEF0dHJQdHIpIGN1cik7CisJCSAgICB9CisJCSAgICAoKHhtbEF0dHJQdHIpIGN1ciktPmF0eXBlID0gMDsKKwkJICAgICgoeG1sQXR0clB0cikgY3VyKS0+cHN2aSA9IE5VTEw7CisJCX0KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCQkvKgorCQkqIFRoaXMgcHV0cyB0aGUgY29udGVudCBpbiB0aGUgZGVzdCBkaWN0LCBvbmx5IGlmCisJCSogaXQgd2FzIHByZXZpb3VzbHkgaW4gdGhlIHNvdXJjZSBkaWN0LgorCQkqLworCQlYTUxfVFJFRV9BRE9QVF9TVFJfMihjdXItPmNvbnRlbnQpCisJCWdvdG8gbGVhdmVfbm9kZTsKKwkgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCQkvKgorCQkqIFJlbW92ZSByZWZlcmVuY2UgdG8gdGhlIGVudGl0aXR5LW5vZGUuCisJCSovCisJCWN1ci0+Y29udGVudCA9IE5VTEw7CisJCWN1ci0+Y2hpbGRyZW4gPSBOVUxMOworCQljdXItPmxhc3QgPSBOVUxMOworCQlpZiAoKGRlc3REb2MtPmludFN1YnNldCkgfHwgKGRlc3REb2MtPmV4dFN1YnNldCkpIHsKKwkJICAgIHhtbEVudGl0eVB0ciBlbnQ7CisJCSAgICAvKgorCQkgICAgKiBBc3NpZ24gbmV3IGVudGl0eS1ub2RlIGlmIGF2YWlsYWJsZS4KKwkJICAgICovCisJCSAgICBlbnQgPSB4bWxHZXREb2NFbnRpdHkoZGVzdERvYywgY3VyLT5uYW1lKTsKKwkJICAgIGlmIChlbnQgIT0gTlVMTCkgeworCQkJY3VyLT5jb250ZW50ID0gZW50LT5jb250ZW50OworCQkJY3VyLT5jaGlsZHJlbiA9ICh4bWxOb2RlUHRyKSBlbnQ7CisJCQljdXItPmxhc3QgPSAoeG1sTm9kZVB0cikgZW50OworCQkgICAgfQorCQl9CisJCWdvdG8gbGVhdmVfbm9kZTsKKwkgICAgY2FzZSBYTUxfUElfTk9ERToKKwkJWE1MX1RSRUVfQURPUFRfU1RSKGN1ci0+bmFtZSkKKwkJWE1MX1RSRUVfQURPUFRfU1RSXzIoY3VyLT5jb250ZW50KQorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwl9CisJLyoKKwkqIFdhbGsgdGhlIHRyZWUuCisJKi8KKwlpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJICAgIGN1ciA9IGN1ci0+Y2hpbGRyZW47CisJICAgIGNvbnRpbnVlOworCX0KKworbGVhdmVfbm9kZToKKwlpZiAoY3VyID09IG5vZGUpCisJICAgIGJyZWFrOworCWlmICgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJICAgIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX1NUQVJUKSB8fAorCSAgICAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9FTkQpKQorCXsKKwkgICAgLyoKKwkgICAgKiBUT0RPOiBEbyB3ZSBleHBlY3QgbnNEZWZzIG9uIFhNTF9YSU5DTFVERV9TVEFSVD8KKwkgICAgKi8KKwkgICAgaWYgKFhNTF9OU01BUF9OT1RFTVBUWShuc01hcCkpIHsKKwkJLyoKKwkJKiBQb3AgbWFwcGluZ3MuCisJCSovCisJCXdoaWxlICgobnNNYXAtPmxhc3QgIT0gTlVMTCkgJiYKKwkJICAgIChuc01hcC0+bGFzdC0+ZGVwdGggPj0gZGVwdGgpKQorCQl7CisJCSAgICBYTUxfTlNNQVBfUE9QKG5zTWFwLCBtaSkKKwkJfQorCQkvKgorCQkqIFVuc2hhZG93LgorCQkqLworCQlYTUxfTlNNQVBfRk9SRUFDSChuc01hcCwgbWkpIHsKKwkJICAgIGlmIChtaS0+c2hhZG93RGVwdGggPj0gZGVwdGgpCisJCQltaS0+c2hhZG93RGVwdGggPSAtMTsKKwkJfQorCSAgICB9CisJICAgIGRlcHRoLS07CisJfQorCWlmIChjdXItPm5leHQgIT0gTlVMTCkKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCWVsc2UgaWYgKChjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSAmJgorCSAgICAoY3VyLT5wYXJlbnQtPmNoaWxkcmVuICE9IE5VTEwpKQorCXsKKwkgICAgY3VyID0gY3VyLT5wYXJlbnQtPmNoaWxkcmVuOworCX0gZWxzZSB7CisJICAgIGN1ciA9IGN1ci0+cGFyZW50OworCSAgICBnb3RvIGxlYXZlX25vZGU7CisJfQorICAgIH0KKworICAgIGdvdG8gZXhpdDsKKworaW50ZXJuYWxfZXJyb3I6CisgICAgcmV0ID0gLTE7CisKK2V4aXQ6CisgICAgLyoKKyAgICAqIENsZWFudXAuCisgICAgKi8KKyAgICBpZiAobnNNYXAgIT0gTlVMTCkgeworCWlmICgoY3R4dCkgJiYgKGN0eHQtPm5hbWVzcGFjZU1hcCA9PSBuc01hcCkpIHsKKwkgICAgLyoKKwkgICAgKiBKdXN0IGNsZWFudXAgdGhlIG1hcCBidXQgZG9uJ3QgZnJlZS4KKwkgICAgKi8KKwkgICAgaWYgKG5zTWFwLT5maXJzdCkgeworCQlpZiAobnNNYXAtPnBvb2wpCisJCSAgICBuc01hcC0+bGFzdC0+bmV4dCA9IG5zTWFwLT5wb29sOworCQluc01hcC0+cG9vbCA9IG5zTWFwLT5maXJzdDsKKwkJbnNNYXAtPmZpcnN0ID0gTlVMTDsKKwkgICAgfQorCX0gZWxzZQorCSAgICB4bWxET01XcmFwTnNNYXBGcmVlKG5zTWFwKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qCisqIHhtbERPTVdyYXBDbG9uZU5vZGU6CisqIEBjdHh0OiB0aGUgb3B0aW9uYWwgY29udGV4dCBmb3IgY3VzdG9tIHByb2Nlc3NpbmcKKyogQHNvdXJjZURvYzogdGhlIG9wdGlvbmFsIHNvdXJjZURvYworKiBAbm9kZTogdGhlIG5vZGUgdG8gc3RhcnQgd2l0aAorKiBAcmVzTm9kZTogdGhlIGNsb25lIG9mIHRoZSBnaXZlbiBAbm9kZQorKiBAZGVzdERvYzogdGhlIGRlc3RpbmF0aW9uIGRvYworKiBAZGVzdFBhcmVudDogdGhlIG9wdGlvbmFsIG5ldyBwYXJlbnQgb2YgQG5vZGUgaW4gQGRlc3REb2MKKyogQGRlZXA6IGRlc2NlbmQgaW50byBjaGlsZCBpZiBzZXQKKyogQG9wdGlvbnM6IG9wdGlvbiBmbGFncworKgorKiBSZWZlcmVuY2VzIG9mIG91dC1vZiBzY29wZSBucy1kZWNscyBhcmUgcmVtYXBwZWQgdG8gcG9pbnQgdG8gQGRlc3REb2M6CisqIDEpIElmIEBkZXN0UGFyZW50IGlzIGdpdmVuLCB0aGVuIG5zRGVmIGVudHJpZXMgb24gZWxlbWVudC1ub2RlcyBhcmUgdXNlZAorKiAyKSBJZiAqbm8qIEBkZXN0UGFyZW50IGlzIGdpdmVuLCB0aGVuIEBkZXN0RG9jLT5vbGROcyBlbnRyaWVzIGFyZSB1c2VkLgorKiAgICBUaGlzIGlzIHRoZSBjYXNlIHdoZW4geW91IGRvbid0IGtub3cgYWxyZWFkeSB3aGVyZSB0aGUgY2xvbmVkIGJyYW5jaAorKiAgICB3aWxsIGJlIGFkZGVkIHRvLgorKgorKiBJZiBAZGVzdFBhcmVudCBpcyBnaXZlbiwgaXQgZW5zdXJlcyB0aGF0IHRoZSB0cmVlIGlzIG5hbWVzcGFjZQorKiB3ZWxsZm9ybWVkIGJ5IGNyZWF0aW5nIGFkZGl0aW9uYWwgbnMtZGVjbHMgd2hlcmUgbmVlZGVkLgorKiBOb3RlIHRoYXQsIHNpbmNlIHByZWZpeGVzIG9mIGFscmVhZHkgZXhpc3RlbnQgbnMtZGVjbHMgY2FuIGJlCisqIHNoYWRvd2VkIGJ5IHRoaXMgcHJvY2VzcywgaXQgY291bGQgYnJlYWsgUU5hbWVzIGluIGF0dHJpYnV0ZQorKiB2YWx1ZXMgb3IgZWxlbWVudCBjb250ZW50LgorKiBUT0RPOgorKiAgIDEpIFdoYXQgdG8gZG8gd2l0aCBYSW5jbHVkZT8gQ3VycmVudGx5IHRoaXMgcmV0dXJucyBhbiBlcnJvciBmb3IgWEluY2x1ZGUuCisqCisqIFJldHVybnMgMCBpZiB0aGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCwKKyogICAgICAgICAxIGlmIGEgbm9kZSBvZiB1bnN1cHBvcnRlZCAob3Igbm90IHlldCBzdXBwb3J0ZWQpIHR5cGUgd2FzIGdpdmVuLAorKiAgICAgICAgIC0xIG9uIEFQSS9pbnRlcm5hbCBlcnJvcnMuCisqLworCitpbnQKK3htbERPTVdyYXBDbG9uZU5vZGUoeG1sRE9NV3JhcEN0eHRQdHIgY3R4dCwKKwkJICAgICAgeG1sRG9jUHRyIHNvdXJjZURvYywKKwkJICAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkgICAgICB4bWxOb2RlUHRyICpyZXNOb2RlLAorCQkgICAgICB4bWxEb2NQdHIgZGVzdERvYywKKwkJICAgICAgeG1sTm9kZVB0ciBkZXN0UGFyZW50LAorCQkgICAgICBpbnQgZGVlcCwKKwkJICAgICAgaW50IG9wdGlvbnMgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICB4bWxOb2RlUHRyIGN1ciwgY3VyRWxlbSA9IE5VTEw7CisgICAgeG1sTnNNYXBQdHIgbnNNYXAgPSBOVUxMOworICAgIHhtbE5zTWFwSXRlbVB0ciBtaTsKKyAgICB4bWxOc1B0ciBuczsKKyAgICBpbnQgZGVwdGggPSAtMTsKKyAgICAvKiBpbnQgYWRvcHRTdHIgPSAxOyAqLworICAgIC8qIGdhdGhlciBAcGFyZW50J3MgbnMtZGVjbHMuICovCisgICAgaW50IHBhcm5zZG9uZSA9IDA7CisgICAgLyoKKyAgICAqIEBhbmNlc3RvcnNPbmx5OgorICAgICogVE9ETzogQGFuY2VzdG9yc09ubHkgc2hvdWxkIGJlIHNldCBwZXIgb3B0aW9uLgorICAgICoKKyAgICAqLworICAgIGludCBhbmNlc3RvcnNPbmx5ID0gMDsKKyAgICB4bWxOb2RlUHRyIHJlc3VsdENsb25lID0gTlVMTCwgY2xvbmUgPSBOVUxMLCBwYXJlbnRDbG9uZSA9IE5VTEwsIHByZXZDbG9uZSA9IE5VTEw7CisgICAgeG1sTnNQdHIgY2xvbmVOcyA9IE5VTEwsICpjbG9uZU5zRGVmU2xvdCA9IE5VTEw7CisgICAgeG1sRGljdFB0ciBkaWN0OyAvKiBUaGUgZGVzdGluYXRpb24gZGljdCAqLworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChyZXNOb2RlID09IE5VTEwpIHx8IChkZXN0RG9jID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgLyoKKyAgICAqIFRPRE86IEluaXRpYWxseSB3ZSBzdXBwb3J0IG9ubHkgZWxlbWVudC1ub2Rlcy4KKyAgICAqLworICAgIGlmIChub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpCisJcmV0dXJuKDEpOworICAgIC8qCisgICAgKiBDaGVjayBub2RlLT5kb2Mgc2FuaXR5LgorICAgICovCisgICAgaWYgKChub2RlLT5kb2MgIT0gTlVMTCkgJiYgKHNvdXJjZURvYyAhPSBOVUxMKSAmJgorCShub2RlLT5kb2MgIT0gc291cmNlRG9jKSkgeworCS8qCisJKiBNaWdodCBiZSBhbiBYSW5jbHVkZWQgbm9kZS4KKwkqLworCXJldHVybiAoLTEpOworICAgIH0KKyAgICBpZiAoc291cmNlRG9jID09IE5VTEwpCisJc291cmNlRG9jID0gbm9kZS0+ZG9jOworICAgIGlmIChzb3VyY2VEb2MgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBkaWN0ID0gZGVzdERvYy0+ZGljdDsKKyAgICAvKgorICAgICogUmV1c2UgdGhlIG5hbWVzcGFjZSBtYXAgb2YgdGhlIGNvbnRleHQuCisgICAgKi8KKyAgICBpZiAoY3R4dCkKKwluc01hcCA9ICh4bWxOc01hcFB0cikgY3R4dC0+bmFtZXNwYWNlTWFwOworCisgICAgKnJlc05vZGUgPSBOVUxMOworCisgICAgY3VyID0gbm9kZTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoY3VyLT5kb2MgIT0gc291cmNlRG9jKSB7CisJICAgIC8qCisJICAgICogV2UnbGwgYXNzdW1lIFhJbmNsdWRlZCBub2RlcyBpZiB0aGUgZG9jIGRpZmZlcnMuCisJICAgICogVE9ETzogRG8gd2UgbmVlZCB0byByZWNvbmNpbGlhdGUgWEluY2x1ZGVkIG5vZGVzPworCSAgICAqIFRPRE86IFRoaXMgaGVyZSByZXR1cm5zIC0xIGluIHRoaXMgY2FzZS4KKwkgICAgKi8KKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwl9CisJLyoKKwkqIENyZWF0ZSBhIG5ldyBub2RlLgorCSovCisJc3dpdGNoIChjdXItPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKwkJLyoKKwkJKiBUT0RPOiBXaGF0IHRvIGRvIHdpdGggWEluY2x1ZGU/CisJCSovCisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCSAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisJICAgIGNhc2UgWE1MX1BJX05PREU6CisJICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCSAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKwkJLyoKKwkJKiBOb2RlcyBvZiB4bWxOb2RlIHN0cnVjdHVyZS4KKwkJKi8KKwkJY2xvbmUgPSAoeG1sTm9kZVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOb2RlKSk7CisJCWlmIChjbG9uZSA9PSBOVUxMKSB7CisJCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJ4bWxET01XcmFwQ2xvbmVOb2RlKCk6IGFsbG9jYXRpbmcgYSBub2RlIik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJCW1lbXNldChjbG9uZSwgMCwgc2l6ZW9mKHhtbE5vZGUpKTsKKwkJLyoKKwkJKiBTZXQgaGllcmFjaGljYWwgbGlua3MuCisJCSovCisJCWlmIChyZXN1bHRDbG9uZSAhPSBOVUxMKSB7CisJCSAgICBjbG9uZS0+cGFyZW50ID0gcGFyZW50Q2xvbmU7CisJCSAgICBpZiAocHJldkNsb25lKSB7CisJCQlwcmV2Q2xvbmUtPm5leHQgPSBjbG9uZTsKKwkJCWNsb25lLT5wcmV2ID0gcHJldkNsb25lOworCQkgICAgfSBlbHNlCisJCQlwYXJlbnRDbG9uZS0+Y2hpbGRyZW4gPSBjbG9uZTsKKwkJfSBlbHNlCisJCSAgICByZXN1bHRDbG9uZSA9IGNsb25lOworCisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkJLyoKKwkJKiBBdHRyaWJ1dGVzICh4bWxBdHRyKS4KKwkJKi8KKwkJY2xvbmUgPSAoeG1sTm9kZVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxBdHRyKSk7CisJCWlmIChjbG9uZSA9PSBOVUxMKSB7CisJCSAgICB4bWxUcmVlRXJyTWVtb3J5KCJ4bWxET01XcmFwQ2xvbmVOb2RlKCk6IGFsbG9jYXRpbmcgYW4gYXR0ci1ub2RlIik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJCW1lbXNldChjbG9uZSwgMCwgc2l6ZW9mKHhtbEF0dHIpKTsKKwkJLyoKKwkJKiBTZXQgaGllcmFjaGljYWwgbGlua3MuCisJCSogVE9ETzogQ2hhbmdlIHRoaXMgdG8gYWRkIHRvIHRoZSBlbmQgb2YgYXR0cmlidXRlcy4KKwkJKi8KKwkJaWYgKHJlc3VsdENsb25lICE9IE5VTEwpIHsKKwkJICAgIGNsb25lLT5wYXJlbnQgPSBwYXJlbnRDbG9uZTsKKwkJICAgIGlmIChwcmV2Q2xvbmUpIHsKKwkJCXByZXZDbG9uZS0+bmV4dCA9IGNsb25lOworCQkJY2xvbmUtPnByZXYgPSBwcmV2Q2xvbmU7CisJCSAgICB9IGVsc2UKKwkJCXBhcmVudENsb25lLT5wcm9wZXJ0aWVzID0gKHhtbEF0dHJQdHIpIGNsb25lOworCQl9IGVsc2UKKwkJICAgIHJlc3VsdENsb25lID0gY2xvbmU7CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQkvKgorCQkqIFRPRE8gUVVFU1RJT046IEFueSBvdGhlciBub2RlcyBleHBlY3RlZD8KKwkJKi8KKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwl9CisKKwljbG9uZS0+dHlwZSA9IGN1ci0+dHlwZTsKKwljbG9uZS0+ZG9jID0gZGVzdERvYzsKKworCS8qCisJKiBDbG9uZSB0aGUgbmFtZSBvZiB0aGUgbm9kZSBpZiBhbnkuCisJKi8KKwlpZiAoY3VyLT5uYW1lID09IHhtbFN0cmluZ1RleHQpCisJICAgIGNsb25lLT5uYW1lID0geG1sU3RyaW5nVGV4dDsKKwllbHNlIGlmIChjdXItPm5hbWUgPT0geG1sU3RyaW5nVGV4dE5vZW5jKQorCSAgICAvKgorCSAgICAqIE5PVEU6IEFsdGhvdWdoIHhtbFN0cmluZ1RleHROb2VuYyBpcyBuZXZlciBhc3NpZ25lZCB0byBhIG5vZGUKKwkgICAgKiAgIGluIHRyZWUuYywgaXQgbWlnaHQgYmUgc2V0IGluIExpYnhzbHQgdmlhCisJICAgICogICAieHNsOmRpc2FibGUtb3V0cHV0LWVzY2FwaW5nIi4KKwkgICAgKi8KKwkgICAgY2xvbmUtPm5hbWUgPSB4bWxTdHJpbmdUZXh0Tm9lbmM7CisJZWxzZSBpZiAoY3VyLT5uYW1lID09IHhtbFN0cmluZ0NvbW1lbnQpCisJICAgIGNsb25lLT5uYW1lID0geG1sU3RyaW5nQ29tbWVudDsKKwllbHNlIGlmIChjdXItPm5hbWUgIT0gTlVMTCkgeworCSAgICBESUNUX0NPTlNUX0NPUFkoY3VyLT5uYW1lLCBjbG9uZS0+bmFtZSk7CisJfQorCisJc3dpdGNoIChjdXItPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKwkJLyoKKwkJKiBUT0RPCisJCSovCisJCXJldHVybiAoLTEpOworCSAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJCWN1ckVsZW0gPSBjdXI7CisJCWRlcHRoKys7CisJCS8qCisJCSogTmFtZXNwYWNlIGRlY2xhcmF0aW9ucy4KKwkJKi8KKwkJaWYgKGN1ci0+bnNEZWYgIT0gTlVMTCkgeworCQkgICAgaWYgKCEgcGFybnNkb25lKSB7CisJCQlpZiAoZGVzdFBhcmVudCAmJiAoY3R4dCA9PSBOVUxMKSkgeworCQkJICAgIC8qCisJCQkgICAgKiBHYXRoZXIgQHBhcmVudCdzIGluLXNjb3BlIG5zLWRlY2xzLgorCQkJICAgICovCisJCQkgICAgaWYgKHhtbERPTVdyYXBOU05vcm1HYXRoZXJJblNjb3BlTnMoJm5zTWFwLAorCQkJCWRlc3RQYXJlbnQpID09IC0xKQorCQkJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCQl9CisJCQlwYXJuc2RvbmUgPSAxOworCQkgICAgfQorCQkgICAgLyoKKwkJICAgICogQ2xvbmUgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucy4KKwkJICAgICovCisJCSAgICBjbG9uZU5zRGVmU2xvdCA9ICYoY2xvbmUtPm5zRGVmKTsKKwkJICAgIGZvciAobnMgPSBjdXItPm5zRGVmOyBucyAhPSBOVUxMOyBucyA9IG5zLT5uZXh0KSB7CisJCQkvKgorCQkJKiBDcmVhdGUgYSBuZXcgeG1sTnMuCisJCQkqLworCQkJY2xvbmVOcyA9ICh4bWxOc1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOcykpOworCQkJaWYgKGNsb25lTnMgPT0gTlVMTCkgeworCQkJICAgIHhtbFRyZWVFcnJNZW1vcnkoInhtbERPTVdyYXBDbG9uZU5vZGUoKTogIgorCQkJCSJhbGxvY2F0aW5nIG5hbWVzcGFjZSIpOworCQkJICAgIHJldHVybigtMSk7CisJCQl9CisJCQltZW1zZXQoY2xvbmVOcywgMCwgc2l6ZW9mKHhtbE5zKSk7CisJCQljbG9uZU5zLT50eXBlID0gWE1MX0xPQ0FMX05BTUVTUEFDRTsKKworCQkJaWYgKG5zLT5ocmVmICE9IE5VTEwpCisJCQkgICAgY2xvbmVOcy0+aHJlZiA9IHhtbFN0cmR1cChucy0+aHJlZik7CisJCQlpZiAobnMtPnByZWZpeCAhPSBOVUxMKQorCQkJICAgIGNsb25lTnMtPnByZWZpeCA9IHhtbFN0cmR1cChucy0+cHJlZml4KTsKKworCQkJKmNsb25lTnNEZWZTbG90ID0gY2xvbmVOczsKKwkJCWNsb25lTnNEZWZTbG90ID0gJihjbG9uZU5zLT5uZXh0KTsKKworCQkJLyoKKwkJCSogTm90ZSB0aGF0IGZvciBjdXN0b20gaGFuZGxpbmcgb2YgbnMtcmVmZXJlbmNlcywKKwkJCSogdGhlIG5zLWRlY2xzIG5lZWQgbm90IGJlIHN0b3JlZCBpbiB0aGUgbnMtbWFwLAorCQkJKiBzaW5jZSB0aGV5IHdvbid0IGJlIHJlZmVyZW5jZWQgYnkgbm9kZS0+bnMuCisJCQkqLworCQkJaWYgKChjdHh0ID09IE5VTEwpIHx8CisJCQkgICAgKGN0eHQtPmdldE5zRm9yTm9kZUZ1bmMgPT0gTlVMTCkpCisJCQl7CisJCQkgICAgLyoKKwkJCSAgICAqIERvZXMgaXQgc2hhZG93IGFueSBucy1kZWNsPworCQkJICAgICovCisJCQkgICAgaWYgKFhNTF9OU01BUF9OT1RFTVBUWShuc01hcCkpIHsKKwkJCQlYTUxfTlNNQVBfRk9SRUFDSChuc01hcCwgbWkpIHsKKwkJCQkgICAgaWYgKChtaS0+ZGVwdGggPj0gWE1MX1RSRUVfTlNNQVBfUEFSRU5UKSAmJgorCQkJCQkobWktPnNoYWRvd0RlcHRoID09IC0xKSAmJgorCQkJCQkoKG5zLT5wcmVmaXggPT0gbWktPm5ld05zLT5wcmVmaXgpIHx8CisJCQkJCXhtbFN0ckVxdWFsKG5zLT5wcmVmaXgsCisJCQkJCW1pLT5uZXdOcy0+cHJlZml4KSkpIHsKKwkJCQkJLyoKKwkJCQkJKiBNYXJrIGFzIHNoYWRvd2VkIGF0IHRoZSBjdXJyZW50CisJCQkJCSogZGVwdGguCisJCQkJCSovCisJCQkJCW1pLT5zaGFkb3dEZXB0aCA9IGRlcHRoOworCQkJCSAgICB9CisJCQkJfQorCQkJICAgIH0KKwkJCSAgICAvKgorCQkJICAgICogUHVzaCBtYXBwaW5nLgorCQkJICAgICovCisJCQkgICAgaWYgKHhtbERPTVdyYXBOc01hcEFkZEl0ZW0oJm5zTWFwLCAtMSwKKwkJCQlucywgY2xvbmVOcywgZGVwdGgpID09IE5VTEwpCisJCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJCX0KKwkJICAgIH0KKwkJfQorCQkvKiBjdXItPm5zIHdpbGwgYmUgcHJvY2Vzc2VkIGZ1cnRoZXIgZG93bi4gKi8KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCQkvKiBJRHMgd2lsbCBiZSBwcm9jZXNzZWQgZnVydGhlciBkb3duLiAqLworCQkvKiBjdXItPm5zIHdpbGwgYmUgcHJvY2Vzc2VkIGZ1cnRoZXIgZG93bi4gKi8KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCQkvKgorCQkqIE5vdGUgdGhhdCB0aGlzIHdpbGwgYWxzbyBjb3ZlciB0aGUgdmFsdWVzIG9mIGF0dHJpYnV0ZXMuCisJCSovCisJCURJQ1RfQ09QWShjdXItPmNvbnRlbnQsIGNsb25lLT5jb250ZW50KTsKKwkJZ290byBsZWF2ZV9ub2RlOworCSAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKwkJLyogVE9ETzogV2hhdCB0byBkbyBoZXJlPyAqLworCQlnb3RvIGxlYXZlX25vZGU7CisJICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkJaWYgKHNvdXJjZURvYyAhPSBkZXN0RG9jKSB7CisJCSAgICBpZiAoKGRlc3REb2MtPmludFN1YnNldCkgfHwgKGRlc3REb2MtPmV4dFN1YnNldCkpIHsKKwkJCXhtbEVudGl0eVB0ciBlbnQ7CisJCQkvKgorCQkJKiBEaWZmZXJlbnQgZG9jOiBBc3NpZ24gbmV3IGVudGl0eS1ub2RlIGlmIGF2YWlsYWJsZS4KKwkJCSovCisJCQllbnQgPSB4bWxHZXREb2NFbnRpdHkoZGVzdERvYywgY3VyLT5uYW1lKTsKKwkJCWlmIChlbnQgIT0gTlVMTCkgeworCQkJICAgIGNsb25lLT5jb250ZW50ID0gZW50LT5jb250ZW50OworCQkJICAgIGNsb25lLT5jaGlsZHJlbiA9ICh4bWxOb2RlUHRyKSBlbnQ7CisJCQkgICAgY2xvbmUtPmxhc3QgPSAoeG1sTm9kZVB0cikgZW50OworCQkJfQorCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgLyoKKwkJICAgICogU2FtZSBkb2M6IFVzZSB0aGUgY3VycmVudCBub2RlJ3MgZW50aXR5IGRlY2xhcmF0aW9uCisJCSAgICAqIGFuZCB2YWx1ZS4KKwkJICAgICovCisJCSAgICBjbG9uZS0+Y29udGVudCA9IGN1ci0+Y29udGVudDsKKwkJICAgIGNsb25lLT5jaGlsZHJlbiA9IGN1ci0+Y2hpbGRyZW47CisJCSAgICBjbG9uZS0+bGFzdCA9IGN1ci0+bGFzdDsKKwkJfQorCQlnb3RvIGxlYXZlX25vZGU7CisJICAgIGNhc2UgWE1MX1BJX05PREU6CisJCURJQ1RfQ09QWShjdXItPmNvbnRlbnQsIGNsb25lLT5jb250ZW50KTsKKwkJZ290byBsZWF2ZV9ub2RlOworCSAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisJCURJQ1RfQ09QWShjdXItPmNvbnRlbnQsIGNsb25lLT5jb250ZW50KTsKKwkJZ290byBsZWF2ZV9ub2RlOworCSAgICBkZWZhdWx0OgorCQlnb3RvIGludGVybmFsX2Vycm9yOworCX0KKworCWlmIChjdXItPm5zID09IE5VTEwpCisJICAgIGdvdG8gZW5kX25zX3JlZmVyZW5jZTsKKworLyogaGFuZGxlX25zX3JlZmVyZW5jZTogKi8KKwkvKgorCSoqIFRoZSBmb2xsb3dpbmcgd2lsbCB0YWtlIGNhcmUgb2YgcmVmZXJlbmNlcyB0byBucy1kZWNscyAqKioqKioqKgorCSoqIGFuZCBpcyBpbnRlbmRlZCBvbmx5IGZvciBlbGVtZW50LSBhbmQgYXR0cmlidXRlLW5vZGVzLgorCSoqCisJKi8KKwlpZiAoISBwYXJuc2RvbmUpIHsKKwkgICAgaWYgKGRlc3RQYXJlbnQgJiYgKGN0eHQgPT0gTlVMTCkpIHsKKwkJaWYgKHhtbERPTVdyYXBOU05vcm1HYXRoZXJJblNjb3BlTnMoJm5zTWFwLCBkZXN0UGFyZW50KSA9PSAtMSkKKwkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIH0KKwkgICAgcGFybnNkb25lID0gMTsKKwl9CisJLyoKKwkqIEFkb3B0IG5zLXJlZmVyZW5jZXMuCisJKi8KKwlpZiAoWE1MX05TTUFQX05PVEVNUFRZKG5zTWFwKSkgeworCSAgICAvKgorCSAgICAqIFNlYXJjaCBmb3IgYSBtYXBwaW5nLgorCSAgICAqLworCSAgICBYTUxfTlNNQVBfRk9SRUFDSChuc01hcCwgbWkpIHsKKwkJaWYgKChtaS0+c2hhZG93RGVwdGggPT0gLTEpICYmCisJCSAgICAoY3VyLT5ucyA9PSBtaS0+b2xkTnMpKSB7CisJCSAgICAvKgorCQkgICAgKiBUaGlzIGlzIHRoZSBuaWNlIGNhc2U6IGEgbWFwcGluZyB3YXMgZm91bmQuCisJCSAgICAqLworCQkgICAgY2xvbmUtPm5zID0gbWktPm5ld05zOworCQkgICAgZ290byBlbmRfbnNfcmVmZXJlbmNlOworCQl9CisJICAgIH0KKwl9CisJLyoKKwkqIE5vIG1hdGNoaW5nIG5hbWVzcGFjZSBpbiBzY29wZS4gV2UgbmVlZCBhIG5ldyBvbmUuCisJKi8KKwlpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmdldE5zRm9yTm9kZUZ1bmMgIT0gTlVMTCkpIHsKKwkgICAgLyoKKwkgICAgKiBVc2VyLWRlZmluZWQgYmVoYXZpb3VyLgorCSAgICAqLworCSAgICBucyA9IGN0eHQtPmdldE5zRm9yTm9kZUZ1bmMoY3R4dCwgY3VyLAorCQljdXItPm5zLT5ocmVmLCBjdXItPm5zLT5wcmVmaXgpOworCSAgICAvKgorCSAgICAqIEFkZCB1c2VyJ3MgbWFwcGluZy4KKwkgICAgKi8KKwkgICAgaWYgKHhtbERPTVdyYXBOc01hcEFkZEl0ZW0oJm5zTWFwLCAtMSwKKwkJY3VyLT5ucywgbnMsIFhNTF9UUkVFX05TTUFQX0NVU1RPTSkgPT0gTlVMTCkKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgY2xvbmUtPm5zID0gbnM7CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiBBcXVpcmUgYSBub3JtYWxpemVkIG5zLWRlY2wgYW5kIGFkZCBpdCB0byB0aGUgbWFwLgorCSAgICAqLworCSAgICBpZiAoeG1sRE9NV3JhcE5TTm9ybUFxdWlyZU5vcm1hbGl6ZWROcyhkZXN0RG9jLAorCQkvKiBucy1kZWNscyBvbiBjdXJFbGVtIG9yIG9uIGRlc3REb2MtPm9sZE5zICovCisJCWRlc3RQYXJlbnQgPyBjdXJFbGVtIDogTlVMTCwKKwkJY3VyLT5ucywgJm5zLAorCQkmbnNNYXAsIGRlcHRoLAorCQkvKiBpZiB3ZSBuZWVkIHRvIHNlYXJjaCBvbmx5IGluIHRoZSBhbmNlc3Rvci1heGlzICovCisJCWFuY2VzdG9yc09ubHksCisJCS8qIG5zLWRlY2xzIG11c3QgYmUgcHJlZml4ZWQgZm9yIGF0dHJpYnV0ZXMuICovCisJCShjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSA/IDEgOiAwKSA9PSAtMSkKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgY2xvbmUtPm5zID0gbnM7CisJfQorCitlbmRfbnNfcmVmZXJlbmNlOgorCisJLyoKKwkqIFNvbWUgcG9zdC1wcm9jZXNzaW5nLgorCSoKKwkqIEhhbmRsZSBJRCBhdHRyaWJ1dGVzLgorCSovCisJaWYgKChjbG9uZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpICYmCisJICAgIChjbG9uZS0+cGFyZW50ICE9IE5VTEwpKQorCXsKKwkgICAgaWYgKHhtbElzSUQoZGVzdERvYywgY2xvbmUtPnBhcmVudCwgKHhtbEF0dHJQdHIpIGNsb25lKSkgeworCisJCXhtbENoYXIgKmlkVmFsOworCisJCWlkVmFsID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoY3VyLT5kb2MsIGN1ci0+Y2hpbGRyZW4sIDEpOworCQlpZiAoaWRWYWwgIT0gTlVMTCkgeworCQkgICAgaWYgKHhtbEFkZElEKE5VTEwsIGRlc3REb2MsIGlkVmFsLCAoeG1sQXR0clB0cikgY3VyKSA9PSBOVUxMKSB7CisJCQkvKiBUT0RPOiBlcnJvciBtZXNzYWdlLiAqLworCQkJeG1sRnJlZShpZFZhbCk7CisJCQlnb3RvIGludGVybmFsX2Vycm9yOworCQkgICAgfQorCQkgICAgeG1sRnJlZShpZFZhbCk7CisJCX0KKwkgICAgfQorCX0KKwkvKgorCSoqCisJKiogVGhlIGZvbGxvd2luZyB3aWxsIHRyYXZlcnNlIHRoZSB0cmVlICoqKioqKioqKioqKioqKioqKioqKioqKioqCisJKioKKwkqCisJKiBXYWxrIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlcyBiZWZvcmUgZGVzY2VuZGluZyBpbnRvIGNoaWxkLW5vZGVzLgorCSovCisJaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKGN1ci0+cHJvcGVydGllcyAhPSBOVUxMKSkgeworCSAgICBwcmV2Q2xvbmUgPSBOVUxMOworCSAgICBwYXJlbnRDbG9uZSA9IGNsb25lOworCSAgICBjdXIgPSAoeG1sTm9kZVB0cikgY3VyLT5wcm9wZXJ0aWVzOworCSAgICBjb250aW51ZTsKKwl9CitpbnRvX2NvbnRlbnQ6CisJLyoKKwkqIERlc2NlbmQgaW50byBjaGlsZC1ub2Rlcy4KKwkqLworCWlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkgICAgaWYgKGRlZXAgfHwgKGN1ci0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpKSB7CisJCXByZXZDbG9uZSA9IE5VTEw7CisJCXBhcmVudENsb25lID0gY2xvbmU7CisJCWN1ciA9IGN1ci0+Y2hpbGRyZW47CisJCWNvbnRpbnVlOworCSAgICB9CisJfQorCitsZWF2ZV9ub2RlOgorCS8qCisJKiBBdCB0aGlzIHBvaW50IHdlIGFyZSBkb25lIHdpdGggdGhlIG5vZGUsIGl0cyBjb250ZW50CisJKiBhbmQgYW4gZWxlbWVudC1ub2RlcydzIGF0dHJpYnV0ZS1ub2Rlcy4KKwkqLworCWlmIChjdXIgPT0gbm9kZSkKKwkgICAgYnJlYWs7CisJaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKwkgICAgKGN1ci0+dHlwZSA9PSBYTUxfWElOQ0xVREVfU1RBUlQpIHx8CisJICAgIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX0VORCkpIHsKKwkgICAgLyoKKwkgICAgKiBUT0RPOiBEbyB3ZSBleHBlY3QgbnNEZWZzIG9uIFhNTF9YSU5DTFVERV9TVEFSVD8KKwkgICAgKi8KKwkgICAgaWYgKFhNTF9OU01BUF9OT1RFTVBUWShuc01hcCkpIHsKKwkJLyoKKwkJKiBQb3AgbWFwcGluZ3MuCisJCSovCisJCXdoaWxlICgobnNNYXAtPmxhc3QgIT0gTlVMTCkgJiYKKwkJICAgIChuc01hcC0+bGFzdC0+ZGVwdGggPj0gZGVwdGgpKQorCQl7CisJCSAgICBYTUxfTlNNQVBfUE9QKG5zTWFwLCBtaSkKKwkJfQorCQkvKgorCQkqIFVuc2hhZG93LgorCQkqLworCQlYTUxfTlNNQVBfRk9SRUFDSChuc01hcCwgbWkpIHsKKwkJICAgIGlmIChtaS0+c2hhZG93RGVwdGggPj0gZGVwdGgpCisJCQltaS0+c2hhZG93RGVwdGggPSAtMTsKKwkJfQorCSAgICB9CisJICAgIGRlcHRoLS07CisJfQorCWlmIChjdXItPm5leHQgIT0gTlVMTCkgeworCSAgICBwcmV2Q2xvbmUgPSBjbG9uZTsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0gZWxzZSBpZiAoY3VyLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCSAgICAvKgorCSAgICAqIFNldCBjbG9uZS0+bGFzdC4KKwkgICAgKi8KKwkgICAgaWYgKGNsb25lLT5wYXJlbnQgIT0gTlVMTCkKKwkJY2xvbmUtPnBhcmVudC0+bGFzdCA9IGNsb25lOworCSAgICBjbG9uZSA9IGNsb25lLT5wYXJlbnQ7CisJICAgIHBhcmVudENsb25lID0gY2xvbmUtPnBhcmVudDsKKwkgICAgLyoKKwkgICAgKiBQcm9jZXNzIHBhcmVudCAtLT4gbmV4dDsKKwkgICAgKi8KKwkgICAgY3VyID0gY3VyLT5wYXJlbnQ7CisJICAgIGdvdG8gbGVhdmVfbm9kZTsKKwl9IGVsc2UgeworCSAgICAvKiBUaGlzIGlzIGZvciBhdHRyaWJ1dGVzIG9ubHkuICovCisJICAgIGNsb25lID0gY2xvbmUtPnBhcmVudDsKKwkgICAgcGFyZW50Q2xvbmUgPSBjbG9uZS0+cGFyZW50OworCSAgICAvKgorCSAgICAqIFByb2Nlc3MgcGFyZW50LWVsZW1lbnQgLS0+IGNoaWxkcmVuLgorCSAgICAqLworCSAgICBjdXIgPSBjdXItPnBhcmVudDsKKwkgICAgZ290byBpbnRvX2NvbnRlbnQ7CisJfQorICAgIH0KKyAgICBnb3RvIGV4aXQ7CisKK2ludGVybmFsX2Vycm9yOgorICAgIHJldCA9IC0xOworCitleGl0OgorICAgIC8qCisgICAgKiBDbGVhbnVwLgorICAgICovCisgICAgaWYgKG5zTWFwICE9IE5VTEwpIHsKKwlpZiAoKGN0eHQpICYmIChjdHh0LT5uYW1lc3BhY2VNYXAgPT0gbnNNYXApKSB7CisJICAgIC8qCisJICAgICogSnVzdCBjbGVhbnVwIHRoZSBtYXAgYnV0IGRvbid0IGZyZWUuCisJICAgICovCisJICAgIGlmIChuc01hcC0+Zmlyc3QpIHsKKwkJaWYgKG5zTWFwLT5wb29sKQorCQkgICAgbnNNYXAtPmxhc3QtPm5leHQgPSBuc01hcC0+cG9vbDsKKwkJbnNNYXAtPnBvb2wgPSBuc01hcC0+Zmlyc3Q7CisJCW5zTWFwLT5maXJzdCA9IE5VTEw7CisJICAgIH0KKwl9IGVsc2UKKwkgICAgeG1sRE9NV3JhcE5zTWFwRnJlZShuc01hcCk7CisgICAgfQorICAgIC8qCisgICAgKiBUT0RPOiBTaG91bGQgd2UgdHJ5IGEgY2xlYW51cCBvZiB0aGUgY2xvbmVkIG5vZGUgaW4gY2FzZSBvZiBhCisgICAgKiBmYXRhbCBlcnJvcj8KKyAgICAqLworICAgICpyZXNOb2RlID0gcmVzdWx0Q2xvbmU7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKgorKiB4bWxET01XcmFwQWRvcHRBdHRyOgorKiBAY3R4dDogdGhlIG9wdGlvbmFsIGNvbnRleHQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nCisqIEBzb3VyY2VEb2M6IHRoZSBvcHRpb25hbCBzb3VyY2UgZG9jdW1lbnQgb2YgYXR0cgorKiBAYXR0cjogdGhlIGF0dHJpYnV0ZS1ub2RlIHRvIGJlIGFkb3B0ZWQKKyogQGRlc3REb2M6IHRoZSBkZXN0aW5hdGlvbiBkb2MgZm9yIGFkb3B0aW9uCisqIEBkZXN0UGFyZW50OiB0aGUgb3B0aW9uYWwgbmV3IHBhcmVudCBvZiBAYXR0ciBpbiBAZGVzdERvYworKiBAb3B0aW9uczogb3B0aW9uIGZsYWdzCisqCisqIEBhdHRyIGlzIGFkb3B0ZWQgYnkgQGRlc3REb2MuCisqIEVuc3VyZXMgdGhhdCBucy1yZWZlcmVuY2VzIHBvaW50IHRvIEBkZXN0RG9jOiBlaXRoZXIgdG8KKyogZWxlbWVudHMtPm5zRGVmIGVudHJpZXMgaWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIG9yIHRvCisqIEBkZXN0RG9jLT5vbGROcyBvdGhlcndpc2UuCisqCisqIFJldHVybnMgMCBpZiBzdWNjZWVkZWQsIC0xIG90aGVyd2lzZSBhbmQgb24gQVBJL2ludGVybmFsIGVycm9ycy4KKyovCitzdGF0aWMgaW50Cit4bWxET01XcmFwQWRvcHRBdHRyKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQsCisJCSAgICB4bWxEb2NQdHIgc291cmNlRG9jLAorCQkgICAgeG1sQXR0clB0ciBhdHRyLAorCQkgICAgeG1sRG9jUHRyIGRlc3REb2MsCisJCSAgICB4bWxOb2RlUHRyIGRlc3RQYXJlbnQsCisJCSAgICBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGludCBhZG9wdFN0ciA9IDE7CisKKyAgICBpZiAoKGF0dHIgPT0gTlVMTCkgfHwgKGRlc3REb2MgPT0gTlVMTCkpCisJcmV0dXJuICgtMSk7CisKKyAgICBhdHRyLT5kb2MgPSBkZXN0RG9jOworICAgIGlmIChhdHRyLT5ucyAhPSBOVUxMKSB7CisJeG1sTnNQdHIgbnMgPSBOVUxMOworCisJaWYgKGN0eHQgIT0gTlVMTCkgeworCSAgICAvKiBUT0RPOiBVc2VyIGRlZmluZWQuICovCisJfQorCS8qIFhNTCBOYW1lc3BhY2UuICovCisJaWYgKElTX1NUUl9YTUwoYXR0ci0+bnMtPnByZWZpeCkpIHsKKwkgICAgbnMgPSB4bWxUcmVlRW5zdXJlWE1MRGVjbChkZXN0RG9jKTsKKwl9IGVsc2UgaWYgKGRlc3RQYXJlbnQgPT0gTlVMTCkgeworCSAgICAvKgorCSAgICAqIFN0b3JlIGluIEBkZXN0RG9jLT5vbGROcy4KKwkgICAgKi8KKwkgICAgbnMgPSB4bWxET01XcmFwU3RvcmVOcyhkZXN0RG9jLCBhdHRyLT5ucy0+aHJlZiwgYXR0ci0+bnMtPnByZWZpeCk7CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiBEZWNsYXJlIG9uIEBkZXN0UGFyZW50LgorCSAgICAqLworCSAgICBpZiAoeG1sU2VhcmNoTnNCeU5hbWVzcGFjZVN0cmljdChkZXN0RG9jLCBkZXN0UGFyZW50LCBhdHRyLT5ucy0+aHJlZiwKKwkJJm5zLCAxKSA9PSAtMSkKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKG5zID09IE5VTEwpIHsKKwkJbnMgPSB4bWxET01XcmFwTlNOb3JtRGVjbGFyZU5zRm9yY2VkKGRlc3REb2MsIGRlc3RQYXJlbnQsCisJCSAgICBhdHRyLT5ucy0+aHJlZiwgYXR0ci0+bnMtPnByZWZpeCwgMSk7CisJICAgIH0KKwl9CisJaWYgKG5zID09IE5VTEwpCisJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJYXR0ci0+bnMgPSBuczsKKyAgICB9CisKKyAgICBYTUxfVFJFRV9BRE9QVF9TVFIoYXR0ci0+bmFtZSk7CisgICAgYXR0ci0+YXR5cGUgPSAwOworICAgIGF0dHItPnBzdmkgPSBOVUxMOworICAgIC8qCisgICAgKiBXYWxrIGNvbnRlbnQuCisgICAgKi8KKyAgICBpZiAoYXR0ci0+Y2hpbGRyZW4gPT0gTlVMTCkKKwlyZXR1cm4gKDApOworICAgIGN1ciA9IGF0dHItPmNoaWxkcmVuOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCWN1ci0+ZG9jID0gZGVzdERvYzsKKwlzd2l0Y2ggKGN1ci0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9URVhUX05PREU6CisJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkJWE1MX1RSRUVfQURPUFRfU1RSXzIoY3VyLT5jb250ZW50KQorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCQkvKgorCQkqIFJlbW92ZSByZWZlcmVuY2UgdG8gdGhlIGVudGl0aXR5LW5vZGUuCisJCSovCisJCWN1ci0+Y29udGVudCA9IE5VTEw7CisJCWN1ci0+Y2hpbGRyZW4gPSBOVUxMOworCQljdXItPmxhc3QgPSBOVUxMOworCQlpZiAoKGRlc3REb2MtPmludFN1YnNldCkgfHwgKGRlc3REb2MtPmV4dFN1YnNldCkpIHsKKwkJICAgIHhtbEVudGl0eVB0ciBlbnQ7CisJCSAgICAvKgorCQkgICAgKiBBc3NpZ24gbmV3IGVudGl0eS1ub2RlIGlmIGF2YWlsYWJsZS4KKwkJICAgICovCisJCSAgICBlbnQgPSB4bWxHZXREb2NFbnRpdHkoZGVzdERvYywgY3VyLT5uYW1lKTsKKwkJICAgIGlmIChlbnQgIT0gTlVMTCkgeworCQkJY3VyLT5jb250ZW50ID0gZW50LT5jb250ZW50OworCQkJY3VyLT5jaGlsZHJlbiA9ICh4bWxOb2RlUHRyKSBlbnQ7CisJCQljdXItPmxhc3QgPSAoeG1sTm9kZVB0cikgZW50OworCQkgICAgfQorCQl9CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisJaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCSAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCSAgICBjb250aW51ZTsKKwl9CituZXh0X3NpYmxpbmc6CisJaWYgKGN1ciA9PSAoeG1sTm9kZVB0cikgYXR0cikKKwkgICAgYnJlYWs7CisJaWYgKGN1ci0+bmV4dCAhPSBOVUxMKQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJZWxzZSB7CisJICAgIGN1ciA9IGN1ci0+cGFyZW50OworCSAgICBnb3RvIG5leHRfc2libGluZzsKKwl9CisgICAgfQorICAgIHJldHVybiAoMCk7CitpbnRlcm5hbF9lcnJvcjoKKyAgICByZXR1cm4gKC0xKTsKK30KKworLyoKKyogeG1sRE9NV3JhcEFkb3B0Tm9kZToKKyogQGN0eHQ6IHRoZSBvcHRpb25hbCBjb250ZXh0IGZvciBjdXN0b20gcHJvY2Vzc2luZworKiBAc291cmNlRG9jOiB0aGUgb3B0aW9uYWwgc291cmNlRG9jCisqIEBub2RlOiB0aGUgbm9kZSB0byBzdGFydCB3aXRoCisqIEBkZXN0RG9jOiB0aGUgZGVzdGluYXRpb24gZG9jCisqIEBkZXN0UGFyZW50OiB0aGUgb3B0aW9uYWwgbmV3IHBhcmVudCBvZiBAbm9kZSBpbiBAZGVzdERvYworKiBAb3B0aW9uczogb3B0aW9uIGZsYWdzCisqCisqIFJlZmVyZW5jZXMgb2Ygb3V0LW9mIHNjb3BlIG5zLWRlY2xzIGFyZSByZW1hcHBlZCB0byBwb2ludCB0byBAZGVzdERvYzoKKyogMSkgSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gbnNEZWYgZW50cmllcyBvbiBlbGVtZW50LW5vZGVzIGFyZSB1c2VkCisqIDIpIElmICpubyogQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIHRoZW4gQGRlc3REb2MtPm9sZE5zIGVudHJpZXMgYXJlIHVzZWQKKyogICAgVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHlvdSBoYXZlIGFuIHVubGlrZWQgbm9kZSBhbmQganVzdCB3YW50IHRvIG1vdmUgaXQKKyogICAgdG8gdGhlIGNvbnRleHQgb2YKKyoKKyogSWYgQGRlc3RQYXJlbnQgaXMgZ2l2ZW4sIGl0IGVuc3VyZXMgdGhhdCB0aGUgdHJlZSBpcyBuYW1lc3BhY2UKKyogd2VsbGZvcm1lZCBieSBjcmVhdGluZyBhZGRpdGlvbmFsIG5zLWRlY2xzIHdoZXJlIG5lZWRlZC4KKyogTm90ZSB0aGF0LCBzaW5jZSBwcmVmaXhlcyBvZiBhbHJlYWR5IGV4aXN0ZW50IG5zLWRlY2xzIGNhbiBiZQorKiBzaGFkb3dlZCBieSB0aGlzIHByb2Nlc3MsIGl0IGNvdWxkIGJyZWFrIFFOYW1lcyBpbiBhdHRyaWJ1dGUKKyogdmFsdWVzIG9yIGVsZW1lbnQgY29udGVudC4KKyogTk9URTogVGhpcyBmdW5jdGlvbiB3YXMgbm90IGludGVuc2l2ZWx5IHRlc3RlZC4KKyoKKyogUmV0dXJucyAwIGlmIHRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLAorKiAgICAgICAgIDEgaWYgYSBub2RlIG9mIHVuc3VwcG9ydGVkIHR5cGUgd2FzIGdpdmVuLAorKiAgICAgICAgIDIgaWYgYSBub2RlIG9mIG5vdCB5ZXQgc3VwcG9ydGVkIHR5cGUgd2FzIGdpdmVuIGFuZAorKiAgICAgICAgIC0xIG9uIEFQSS9pbnRlcm5hbCBlcnJvcnMuCisqLworaW50Cit4bWxET01XcmFwQWRvcHROb2RlKHhtbERPTVdyYXBDdHh0UHRyIGN0eHQsCisJCSAgICB4bWxEb2NQdHIgc291cmNlRG9jLAorCQkgICAgeG1sTm9kZVB0ciBub2RlLAorCQkgICAgeG1sRG9jUHRyIGRlc3REb2MsCisJCSAgICB4bWxOb2RlUHRyIGRlc3RQYXJlbnQsCisJCSAgICBpbnQgb3B0aW9ucykKK3sKKyAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKGRlc3REb2MgPT0gTlVMTCkgfHwKKwkoKGRlc3RQYXJlbnQgIT0gTlVMTCkgJiYgKGRlc3RQYXJlbnQtPmRvYyAhPSBkZXN0RG9jKSkpCisJcmV0dXJuKC0xKTsKKyAgICAvKgorICAgICogQ2hlY2sgbm9kZS0+ZG9jIHNhbml0eS4KKyAgICAqLworICAgIGlmICgobm9kZS0+ZG9jICE9IE5VTEwpICYmIChzb3VyY2VEb2MgIT0gTlVMTCkgJiYKKwkobm9kZS0+ZG9jICE9IHNvdXJjZURvYykpIHsKKwkvKgorCSogTWlnaHQgYmUgYW4gWEluY2x1ZGVkIG5vZGUuCisJKi8KKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgaWYgKHNvdXJjZURvYyA9PSBOVUxMKQorCXNvdXJjZURvYyA9IG5vZGUtPmRvYzsKKyAgICBpZiAoc291cmNlRG9jID09IGRlc3REb2MpCisJcmV0dXJuICgtMSk7CisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisJY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCWNhc2UgWE1MX1RFWFRfTk9ERToKKwljYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisJY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCWNhc2UgWE1MX1BJX05PREU6CisJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICBicmVhazsKKwljYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJICAgIC8qIFRPRE86IFN1cHBvcnQgZG9jdW1lbnQtZnJhZ21lbnQtbm9kZXMuICovCisJICAgIHJldHVybiAoMik7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuICgxKTsKKyAgICB9CisgICAgLyoKKyAgICAqIFVubGluayBvbmx5IGlmIEBub2RlIHdhcyBub3QgYWxyZWFkeSBhZGRlZCB0byBAZGVzdFBhcmVudC4KKyAgICAqLworICAgIGlmICgobm9kZS0+cGFyZW50ICE9IE5VTEwpICYmIChkZXN0UGFyZW50ICE9IG5vZGUtPnBhcmVudCkpCisJeG1sVW5saW5rTm9kZShub2RlKTsKKworICAgIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgcmV0dXJuICh4bWxET01XcmFwQWRvcHRCcmFuY2goY3R4dCwgc291cmNlRG9jLCBub2RlLAorCQkgICAgZGVzdERvYywgZGVzdFBhcmVudCwgb3B0aW9ucykpOworICAgIH0gZWxzZSBpZiAobm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpIHsKKwkgICAgcmV0dXJuICh4bWxET01XcmFwQWRvcHRBdHRyKGN0eHQsIHNvdXJjZURvYywKKwkJKHhtbEF0dHJQdHIpIG5vZGUsIGRlc3REb2MsIGRlc3RQYXJlbnQsIG9wdGlvbnMpKTsKKyAgICB9IGVsc2UgeworCXhtbE5vZGVQdHIgY3VyID0gbm9kZTsKKwlpbnQgYWRvcHRTdHIgPSAxOworCisJY3VyLT5kb2MgPSBkZXN0RG9jOworCS8qCisJKiBPcHRpbWl6ZSBzdHJpbmcgYWRvcHRpb24uCisJKi8KKwlpZiAoKHNvdXJjZURvYyAhPSBOVUxMKSAmJgorCSAgICAoc291cmNlRG9jLT5kaWN0ID09IGRlc3REb2MtPmRpY3QpKQorCQlhZG9wdFN0ciA9IDA7CisJc3dpdGNoIChub2RlLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCQlYTUxfVFJFRV9BRE9QVF9TVFJfMihub2RlLT5jb250ZW50KQorCQkgICAgYnJlYWs7CisJICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkJLyoKKwkJKiBSZW1vdmUgcmVmZXJlbmNlIHRvIHRoZSBlbnRpdGl0eS1ub2RlLgorCQkqLworCQlub2RlLT5jb250ZW50ID0gTlVMTDsKKwkJbm9kZS0+Y2hpbGRyZW4gPSBOVUxMOworCQlub2RlLT5sYXN0ID0gTlVMTDsKKwkJaWYgKChkZXN0RG9jLT5pbnRTdWJzZXQpIHx8IChkZXN0RG9jLT5leHRTdWJzZXQpKSB7CisJCSAgICB4bWxFbnRpdHlQdHIgZW50OworCQkgICAgLyoKKwkJICAgICogQXNzaWduIG5ldyBlbnRpdHktbm9kZSBpZiBhdmFpbGFibGUuCisJCSAgICAqLworCQkgICAgZW50ID0geG1sR2V0RG9jRW50aXR5KGRlc3REb2MsIG5vZGUtPm5hbWUpOworCQkgICAgaWYgKGVudCAhPSBOVUxMKSB7CisJCQlub2RlLT5jb250ZW50ID0gZW50LT5jb250ZW50OworCQkJbm9kZS0+Y2hpbGRyZW4gPSAoeG1sTm9kZVB0cikgZW50OworCQkJbm9kZS0+bGFzdCA9ICh4bWxOb2RlUHRyKSBlbnQ7CisJCSAgICB9CisJCX0KKwkJWE1MX1RSRUVfQURPUFRfU1RSKG5vZGUtPm5hbWUpCisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9QSV9OT0RFOiB7CisJCVhNTF9UUkVFX0FET1BUX1NUUihub2RlLT5uYW1lKQorCQlYTUxfVFJFRV9BRE9QVF9TVFJfMihub2RlLT5jb250ZW50KQorCQlicmVhazsKKwkgICAgfQorCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKyNkZWZpbmUgYm90dG9tX3RyZWUKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3RyaW8uYyBiL2xpYnhtbDItMi43LjcvdHJpby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMTZjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3RyaW8uYwpAQCAtMCwwICsxLDY4NjkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAoQykgMTk5OCBCam9ybiBSZWVzZSBhbmQgRGFuaWVsIFN0ZW5iZXJnLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRJQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gVEhFIEFVVEhPUlMgQU5ECisgKiBDT05UUklCVVRPUlMgQUNDRVBUIE5PIFJFU1BPTlNJQklMSVRZIElOIEFOWSBDT05DRUlWQUJMRSBNQU5ORVIuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBBIG5vdGUgdG8gdHJpbyBjb250cmlidXRvcnM6CisgKgorICogQXZvaWQgaGVhcCBhbGxvY2F0aW9uIGF0IGFsbCBjb3N0cyB0byBlbnN1cmUgdGhhdCB0aGUgdHJpbyBmdW5jdGlvbnMKKyAqIGFyZSBhc3luYy1zYWZlLiBUaGUgZXhjZXB0aW9ucyBhcmUgdGhlIHByaW50Zi9mcHJpbnRmIGZ1bmN0aW9ucywgd2hpY2gKKyAqIHVzZXMgZnB1dGMsIGFuZCB0aGUgYXNwcmludGYgZnVuY3Rpb25zIGFuZCB0aGUgPGFsbG9jPiBtb2RpZmllciwgd2hpY2gKKyAqIGJ5IGRlc2lnbiBhcmUgcmVxdWlyZWQgdG8gYWxsb2NhdGUgZm9ybSB0aGUgaGVhcC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogVE9ETzoKKyAqICAtIFNjYW4gaXMgcHJvYmFibHkgdG9vIHBlcm1pc3NpdmUgYWJvdXQgaXRzIG1vZGlmaWVycy4KKyAqICAtIEMgZXNjYXBlcyBpbiAlI1tdID8KKyAqICAtIE11bHRpYnl0ZSBjaGFyYWN0ZXJzIChkb25lIGZvciBmb3JtYXQgcGFyc2luZywgZXhjZXB0IHNjYW4gZ3JvdXBzKQorICogIC0gQ29tcGxleCBudW1iZXJzPyAoQzk5IF9Db21wbGV4KQorICogIC0gQm9vbGVhbiB2YWx1ZXM/IChDOTkgX0Jvb2wpCisgKiAgLSBDOTkgTmFOKG4tY2hhci1zZXF1ZW5jZSkgbWlzc2luZy4gVGhlIG4tY2hhci1zZXF1ZW5jZSBjYW4gYmUgdXNlZAorICogICAgdG8gcHJpbnQgdGhlIG1hbnRpc3NhLCBlLmcuIE5hTigweGMwMDAwMDAwMDAwMDAwMDApCisgKiAgLSBTaG91bGQgd2Ugc3VwcG9ydCB0aGUgR05VICVhIGFsbG9jIG1vZGlmaWVyPyBHTlUgaGFzIGFuIHVnbHkgaGFjaworICogICAgZm9yICVhLCBiZWNhdXNlIEM5OSB1c2VkICVhIGZvciBvdGhlciBwdXJwb3Nlcy4gSWYgc3BlY2lmaWVkIGFzCisgKiAgICAlYXMgb3IgJWFbIGl0IGlzIGludGVycHJldGVkIGFzIHRoZSBhbGxvYyBtb2RpZmllciwgb3RoZXJ3aXNlIGFzCisgKiAgICB0aGUgQzk5IGhleC1mbG9hdC4gVGhpcyBtZWFucyB0aGF0IHlvdSBjYW5ub3Qgc2NhbiAlYXMgYXMgYSBoZXgtZmxvYXQKKyAqICAgIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFuICdzJy4KKyAqICAtIFNjYW5uaW5nIG9mIGNvbGxhdGluZyBzeW1ib2xzLgorICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvIGluY2x1ZGUgZmlsZXMKKyAqLworI2luY2x1ZGUgInRyaW9kZWYuaCIKKyNpbmNsdWRlICJ0cmlvLmgiCisjaW5jbHVkZSAidHJpb3AuaCIKKyNpbmNsdWRlICJ0cmlvbmFuLmgiCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorIyBpbmNsdWRlICJ0cmlvc3RyLmgiCisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRGVmaW5pdGlvbnMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxmbG9hdC5oPgorCisjaWYgKGRlZmluZWQoX19TVERDX0lTT18xMDY0Nl9fKSB8fCBkZWZpbmVkKE1CX0xFTl9NQVgpIFwKKyAgICAgfHwgZGVmaW5lZChVU0VfTVVMVElCWVRFKSB8fCBUUklPX1dJREVDSEFSKSBcCisgICAgJiYgIWRlZmluZWQoX1dJTjMyX1dDRSkKKyMgZGVmaW5lIFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfTVVMVElCWVRFCisjIGlmICFkZWZpbmVkKE1CX0xFTl9NQVgpCisjICBkZWZpbmUgTUJfTEVOX01BWCA2CisjIGVuZGlmCisjZW5kaWYKKworI2lmIChkZWZpbmVkKFRSSU9fQ09NUElMRVJfTVNWQykgJiYgKF9NU0NfVkVSID49IDExMDApKSB8fCBkZWZpbmVkKFRSSU9fQ09NUElMRVJfQkNCKQorIyBkZWZpbmUgVFJJT19DT01QSUxFUl9TVVBQT1JUU19NU1ZDX0lOVAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisjaW5jbHVkZSA8d2luY2Vjb21wYXQuaD4KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2VuZXJpYyBkZWZpbml0aW9ucworICovCisKKyNpZiAhKGRlZmluZWQoREVCVUcpIHx8IGRlZmluZWQoTkRFQlVHKSkKKyMgZGVmaW5lIE5ERUJVRworI2VuZGlmCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2lmICFkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfQzk5KQorIyBkZWZpbmUgaXNibGFuayh4KSAoKCh4KT09MzIpIHx8ICgoeCk9PTkpKQorI2VuZGlmCisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX0FOQ0lFTlQpCisjIGluY2x1ZGUgPHZhcmFyZ3MuaD4KKyNlbHNlCisjIGluY2x1ZGUgPHN0ZGFyZy5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3RkZGVmLmg+CisKKyNpZmRlZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisKKyNpZm5kZWYgTlVMTAorIyBkZWZpbmUgTlVMTCAwCisjZW5kaWYKKyNkZWZpbmUgTklMICgoY2hhcikwKQorI2lmbmRlZiBGQUxTRQorIyBkZWZpbmUgRkFMU0UgKDEgPT0gMCkKKyMgZGVmaW5lIFRSVUUgKCEgRkFMU0UpCisjZW5kaWYKKyNkZWZpbmUgQk9PTEVBTl9UIGludAorCisvKiBtaW5jb3JlKCkgY2FuIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyAqLworI2RlZmluZSBWQUxJRCh4KSAoTlVMTCAhPSAoeCkpCisKKyNpZiBUUklPX0VSUk9SUworICAvKgorICAgKiBFbmNvZGUgdGhlIGVycm9yIGNvZGUgYW5kIHRoZSBwb3NpdGlvbi4gVGhpcyBpcyBkZWNvZGVkCisgICAqIHdpdGggVFJJT19FUlJPUl9DT0RFIGFuZCBUUklPX0VSUk9SX1BPU0lUSU9OLgorICAgKi8KKyMgZGVmaW5lIFRSSU9fRVJST1JfUkVUVVJOKHgseSkgKC0gKCh4KSArICgoeSkgPDwgOCkpKQorI2Vsc2UKKyMgZGVmaW5lIFRSSU9fRVJST1JfUkVUVVJOKHgseSkgKC0xKQorI2VuZGlmCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB0cmlvX2ZsYWdzX3Q7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFBsYXRmb3JtIHNwZWNpZmljIGRlZmluaXRpb25zCisgKi8KKyNpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fVU5JWCkKKyMgaW5jbHVkZSA8dW5pc3RkLmg+CisjIGluY2x1ZGUgPHNpZ25hbC5oPgorIyBpbmNsdWRlIDxsb2NhbGUuaD4KKyMgZGVmaW5lIFVTRV9MT0NBTEUKKyNlbmRpZiAvKiBUUklPX1BMQVRGT1JNX1VOSVggKi8KKyNpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fVk1TKQorIyBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2lmIGRlZmluZWQoVFJJT19QTEFURk9STV9XSU4zMikKKyMgaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorIyAgaW5jbHVkZSA8d2luY2Vjb21wYXQuaD4KKyMgZWxzZQorIyAgaW5jbHVkZSA8aW8uaD4KKyMgIGRlZmluZSByZWFkIF9yZWFkCisjICBkZWZpbmUgd3JpdGUgX3dyaXRlCisjIGVuZGlmCisjZW5kaWYgLyogVFJJT19QTEFURk9STV9XSU4zMiAqLworCisjaWYgVFJJT19XSURFQ0hBUgorIyBpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfSVNPOTQpCisjICBpbmNsdWRlIDx3Y2hhci5oPgorIyAgaW5jbHVkZSA8d2N0eXBlLmg+Cit0eXBlZGVmIHdjaGFyX3QgdHJpb193Y2hhcl90OwordHlwZWRlZiB3aW50X3QgdHJpb193aW50X3Q7CisjIGVsc2UKK3R5cGVkZWYgY2hhciB0cmlvX3djaGFyX3Q7Cit0eXBlZGVmIGludCB0cmlvX3dpbnRfdDsKKyMgIGRlZmluZSBXQ09OU1QoeCkgTCAjIyB4CisjICBkZWZpbmUgV0VPRiBFT0YKKyMgIGRlZmluZSBpc3dhbG51bSh4KSBpc2FsbnVtKHgpCisjICBkZWZpbmUgaXN3YWxwaGEoeCkgaXNhbHBoYSh4KQorIyAgZGVmaW5lIGlzd2JsYW5rKHgpIGlzYmxhbmsoeCkKKyMgIGRlZmluZSBpc3djbnRybCh4KSBpc2NudHJsKHgpCisjICBkZWZpbmUgaXN3ZGlnaXQoeCkgaXNkaWdpdCh4KQorIyAgZGVmaW5lIGlzd2dyYXBoKHgpIGlzZ3JhcGgoeCkKKyMgIGRlZmluZSBpc3dsb3dlcih4KSBpc2xvd2VyKHgpCisjICBkZWZpbmUgaXN3cHJpbnQoeCkgaXNwcmludCh4KQorIyAgZGVmaW5lIGlzd3B1bmN0KHgpIGlzcHVuY3QoeCkKKyMgIGRlZmluZSBpc3dzcGFjZSh4KSBpc3NwYWNlKHgpCisjICBkZWZpbmUgaXN3dXBwZXIoeCkgaXN1cHBlcih4KQorIyAgZGVmaW5lIGlzd3hkaWdpdCh4KSBpc3hkaWdpdCh4KQorIyBlbmRpZgorI2VuZGlmCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvbXBpbGVyIGRlcGVuZGVudCBkZWZpbml0aW9ucworICovCisKKy8qIFN1cHBvcnQgZm9yIGxvbmcgbG9uZyAqLworI2lmbmRlZiBfX2NwbHVzcGx1cworIyBpZiAhZGVmaW5lZChVU0VfTE9OR0xPTkcpCisjICBpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfR0NDKSAmJiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCisjICAgZGVmaW5lIFVTRV9MT05HTE9ORworIyAgZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VOUFJPKQorIyAgIGRlZmluZSBVU0VfTE9OR0xPTkcKKyMgIGVsaWYgZGVmaW5lZChfTE9OR19MT05HKSB8fCBkZWZpbmVkKF9MT05HTE9ORykKKyMgICBkZWZpbmUgVVNFX0xPTkdMT05HCisjICBlbmRpZgorIyBlbmRpZgorI2VuZGlmCisKKy8qIFRoZSBleHRyYSBsb25nIG51bWJlcnMgKi8KKyNpZiBkZWZpbmVkKFVTRV9MT05HTE9ORykKK3R5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyBpbnQgdHJpb19sb25nbG9uZ190OwordHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHRyaW9fdWxvbmdsb25nX3Q7CisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfTVNWQ19JTlQpCit0eXBlZGVmIHNpZ25lZCBfX2ludDY0IHRyaW9fbG9uZ2xvbmdfdDsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCB0cmlvX3Vsb25nbG9uZ190OworI2Vsc2UKK3R5cGVkZWYgVFJJT19TSUdORUQgbG9uZyBpbnQgdHJpb19sb25nbG9uZ190OwordHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCB0cmlvX3Vsb25nbG9uZ190OworI2VuZGlmCisKKy8qIE1heGltYWwgYW5kIGZpeGVkIGludGVnZXIgdHlwZXMgKi8KKyNpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfQzk5KQorIyBpbmNsdWRlIDxzdGRpbnQuaD4KK3R5cGVkZWYgaW50bWF4X3QgdHJpb19pbnRtYXhfdDsKK3R5cGVkZWYgdWludG1heF90IHRyaW9fdWludG1heF90OwordHlwZWRlZiBpbnQ4X3QgdHJpb19pbnQ4X3Q7Cit0eXBlZGVmIGludDE2X3QgdHJpb19pbnQxNl90OwordHlwZWRlZiBpbnQzMl90IHRyaW9faW50MzJfdDsKK3R5cGVkZWYgaW50NjRfdCB0cmlvX2ludDY0X3Q7CisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfVU5JWDk4KQorIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgordHlwZWRlZiBpbnRtYXhfdCB0cmlvX2ludG1heF90OwordHlwZWRlZiB1aW50bWF4X3QgdHJpb191aW50bWF4X3Q7Cit0eXBlZGVmIGludDhfdCB0cmlvX2ludDhfdDsKK3R5cGVkZWYgaW50MTZfdCB0cmlvX2ludDE2X3Q7Cit0eXBlZGVmIGludDMyX3QgdHJpb19pbnQzMl90OwordHlwZWRlZiBpbnQ2NF90IHRyaW9faW50NjRfdDsKKyNlbGlmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19NU1ZDX0lOVCkKK3R5cGVkZWYgdHJpb19sb25nbG9uZ190IHRyaW9faW50bWF4X3Q7Cit0eXBlZGVmIHRyaW9fdWxvbmdsb25nX3QgdHJpb191aW50bWF4X3Q7Cit0eXBlZGVmIF9faW50OCB0cmlvX2ludDhfdDsKK3R5cGVkZWYgX19pbnQxNiB0cmlvX2ludDE2X3Q7Cit0eXBlZGVmIF9faW50MzIgdHJpb19pbnQzMl90OwordHlwZWRlZiBfX2ludDY0IHRyaW9faW50NjRfdDsKKyNlbHNlCit0eXBlZGVmIHRyaW9fbG9uZ2xvbmdfdCB0cmlvX2ludG1heF90OwordHlwZWRlZiB0cmlvX3Vsb25nbG9uZ190IHRyaW9fdWludG1heF90OworIyBpZiBkZWZpbmVkKFRSSU9fSU5UOF9UKQordHlwZWRlZiBUUklPX0lOVDhfVCB0cmlvX2ludDhfdDsKKyMgZWxzZQordHlwZWRlZiBUUklPX1NJR05FRCBjaGFyIHRyaW9faW50OF90OworIyBlbmRpZgorIyBpZiBkZWZpbmVkKFRSSU9fSU5UMTZfVCkKK3R5cGVkZWYgVFJJT19JTlQxNl9UIHRyaW9faW50MTZfdDsKKyMgZWxzZQordHlwZWRlZiBUUklPX1NJR05FRCBzaG9ydCB0cmlvX2ludDE2X3Q7CisjIGVuZGlmCisjIGlmIGRlZmluZWQoVFJJT19JTlQzMl9UKQordHlwZWRlZiBUUklPX0lOVDMyX1QgdHJpb19pbnQzMl90OworIyBlbHNlCit0eXBlZGVmIFRSSU9fU0lHTkVEIGludCB0cmlvX2ludDMyX3Q7CisjIGVuZGlmCisjIGlmIGRlZmluZWQoVFJJT19JTlQ2NF9UKQordHlwZWRlZiBUUklPX0lOVDY0X1QgdHJpb19pbnQ2NF90OworIyBlbHNlCit0eXBlZGVmIHRyaW9fbG9uZ2xvbmdfdCB0cmlvX2ludDY0X3Q7CisjIGVuZGlmCisjZW5kaWYKKworI2lmICghKGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19DOTkpIFwKKyB8fCBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfVU5JWDAxKSkpIFwKKyAmJiAhZGVmaW5lZChfV0lOMzJfV0NFKQorIyBkZWZpbmUgZmxvb3JsKHgpIGZsb29yKChkb3VibGUpKHgpKQorIyBkZWZpbmUgZm1vZGwoeCx5KSBmbW9kKChkb3VibGUpKHgpLChkb3VibGUpKHkpKQorIyBkZWZpbmUgcG93bCh4LHkpIHBvdygoZG91YmxlKSh4KSwoZG91YmxlKSh5KSkKKyNlbmRpZgorCisjZGVmaW5lIFRSSU9fRkFCUyh4KSAoKCh4KSA8IDAuMCkgPyAtKHgpIDogKHgpKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKKyAqLworCisjaWZuZGVmIERFQ0lNQUxfRElHCisjIGRlZmluZSBERUNJTUFMX0RJRyBEQkxfRElHCisjZW5kaWYKKworLyogTG9uZyBkb3VibGUgc2l6ZXMgKi8KKyNpZmRlZiBMREJMX0RJRworIyBkZWZpbmUgTUFYX01BTlRJU1NBX0RJR0lUUyBMREJMX0RJRworIyBkZWZpbmUgTUFYX0VYUE9ORU5UX0RJR0lUUyA0CisjIGRlZmluZSBNQVhfRE9VQkxFX0RJR0lUUyBMREJMX01BWF8xMF9FWFAKKyNlbHNlCisjIGRlZmluZSBNQVhfTUFOVElTU0FfRElHSVRTIERFQ0lNQUxfRElHCisjIGRlZmluZSBNQVhfRVhQT05FTlRfRElHSVRTIDMKKyMgZGVmaW5lIE1BWF9ET1VCTEVfRElHSVRTIERCTF9NQVhfMTBfRVhQCisjZW5kaWYKKworI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9BTkNJRU5UKSB8fCAhZGVmaW5lZChMREJMX0RJRykKKyMgdW5kZWYgTERCTF9ESUcKKyMgdW5kZWYgTERCTF9NQU5UX0RJRworIyB1bmRlZiBMREJMX0VQU0lMT04KKyMgZGVmaW5lIExEQkxfRElHIERCTF9ESUcKKyMgZGVmaW5lIExEQkxfTUFOVF9ESUcgREJMX01BTlRfRElHCisjIGRlZmluZSBMREJMX0VQU0lMT04gREJMX0VQU0lMT04KKyNlbmRpZgorCisvKiBUaGUgbWF4aW1hbCBudW1iZXIgb2YgZGlnaXRzIGlzIGZvciBiYXNlIDIgKi8KKyNkZWZpbmUgTUFYX0NIQVJTX0lOKHgpIChzaXplb2YoeCkgKiBDSEFSX0JJVCkKKy8qIFRoZSB3aWR0aCBvZiBhIHBvaW50ZXIuIFRoZSBudW1iZXIgb2YgYml0cyBpbiBhIGhleCBkaWdpdCBpcyA0ICovCisjZGVmaW5lIFBPSU5URVJfV0lEVEggKChzaXplb2YoIjB4IikgLSAxKSArIHNpemVvZih0cmlvX3BvaW50ZXJfdCkgKiBDSEFSX0JJVCAvIDQpCisKKy8qIEluZmluaXRlIGFuZCBOb3QtQS1OdW1iZXIgZm9yIGZsb2F0aW5nLXBvaW50ICovCisjZGVmaW5lIElORklOSVRFX0xPV0VSICJpbmYiCisjZGVmaW5lIElORklOSVRFX1VQUEVSICJJTkYiCisjZGVmaW5lIExPTkdfSU5GSU5JVEVfTE9XRVIgImluZmluaXRlIgorI2RlZmluZSBMT05HX0lORklOSVRFX1VQUEVSICJJTkZJTklURSIKKyNkZWZpbmUgTkFOX0xPV0VSICJuYW4iCisjZGVmaW5lIE5BTl9VUFBFUiAiTkFOIgorCisvKiBWYXJpb3VzIGNvbnN0YW50cyAqLworZW51bSB7CisgIFRZUEVfUFJJTlQgPSAxLAorICBUWVBFX1NDQU4gID0gMiwKKworICAvKiBGbGFncy4gRkxBR1NfTEFTVCBtdXN0IGJlIGxlc3MgdGhhbiBVTE9OR19NQVggKi8KKyAgRkxBR1NfTkVXICAgICAgICAgICAgICAgICA9IDAsCisgIEZMQUdTX1NUSUNLWSAgICAgICAgICAgICAgPSAxLAorICBGTEFHU19TUEFDRSAgICAgICAgICAgICAgID0gMiAqIEZMQUdTX1NUSUNLWSwKKyAgRkxBR1NfU0hPV1NJR04gICAgICAgICAgICA9IDIgKiBGTEFHU19TUEFDRSwKKyAgRkxBR1NfTEVGVEFESlVTVCAgICAgICAgICA9IDIgKiBGTEFHU19TSE9XU0lHTiwKKyAgRkxBR1NfQUxURVJOQVRJVkUgICAgICAgICA9IDIgKiBGTEFHU19MRUZUQURKVVNULAorICBGTEFHU19TSE9SVCAgICAgICAgICAgICAgID0gMiAqIEZMQUdTX0FMVEVSTkFUSVZFLAorICBGTEFHU19TSE9SVFNIT1JUICAgICAgICAgID0gMiAqIEZMQUdTX1NIT1JULAorICBGTEFHU19MT05HICAgICAgICAgICAgICAgID0gMiAqIEZMQUdTX1NIT1JUU0hPUlQsCisgIEZMQUdTX1FVQUQgICAgICAgICAgICAgICAgPSAyICogRkxBR1NfTE9ORywKKyAgRkxBR1NfTE9OR0RPVUJMRSAgICAgICAgICA9IDIgKiBGTEFHU19RVUFELAorICBGTEFHU19TSVpFX1QgICAgICAgICAgICAgID0gMiAqIEZMQUdTX0xPTkdET1VCTEUsCisgIEZMQUdTX1BUUkRJRkZfVCAgICAgICAgICAgPSAyICogRkxBR1NfU0laRV9ULAorICBGTEFHU19JTlRNQVhfVCAgICAgICAgICAgID0gMiAqIEZMQUdTX1BUUkRJRkZfVCwKKyAgRkxBR1NfTklMUEFERElORyAgICAgICAgICA9IDIgKiBGTEFHU19JTlRNQVhfVCwKKyAgRkxBR1NfVU5TSUdORUQgICAgICAgICAgICA9IDIgKiBGTEFHU19OSUxQQURESU5HLAorICBGTEFHU19VUFBFUiAgICAgICAgICAgICAgID0gMiAqIEZMQUdTX1VOU0lHTkVELAorICBGTEFHU19XSURUSCAgICAgICAgICAgICAgID0gMiAqIEZMQUdTX1VQUEVSLAorICBGTEFHU19XSURUSF9QQVJBTUVURVIgICAgID0gMiAqIEZMQUdTX1dJRFRILAorICBGTEFHU19QUkVDSVNJT04gICAgICAgICAgID0gMiAqIEZMQUdTX1dJRFRIX1BBUkFNRVRFUiwKKyAgRkxBR1NfUFJFQ0lTSU9OX1BBUkFNRVRFUiA9IDIgKiBGTEFHU19QUkVDSVNJT04sCisgIEZMQUdTX0JBU0UgICAgICAgICAgICAgICAgPSAyICogRkxBR1NfUFJFQ0lTSU9OX1BBUkFNRVRFUiwKKyAgRkxBR1NfQkFTRV9QQVJBTUVURVIgICAgICA9IDIgKiBGTEFHU19CQVNFLAorICBGTEFHU19GTE9BVF9FICAgICAgICAgICAgID0gMiAqIEZMQUdTX0JBU0VfUEFSQU1FVEVSLAorICBGTEFHU19GTE9BVF9HICAgICAgICAgICAgID0gMiAqIEZMQUdTX0ZMT0FUX0UsCisgIEZMQUdTX1FVT1RFICAgICAgICAgICAgICAgPSAyICogRkxBR1NfRkxPQVRfRywKKyAgRkxBR1NfV0lERUNIQVIgICAgICAgICAgICA9IDIgKiBGTEFHU19RVU9URSwKKyAgRkxBR1NfQUxMT0MgICAgICAgICAgICAgICA9IDIgKiBGTEFHU19XSURFQ0hBUiwKKyAgRkxBR1NfSUdOT1JFICAgICAgICAgICAgICA9IDIgKiBGTEFHU19BTExPQywKKyAgRkxBR1NfSUdOT1JFX1BBUkFNRVRFUiAgICA9IDIgKiBGTEFHU19JR05PUkUsCisgIEZMQUdTX1ZBUlNJWkVfUEFSQU1FVEVSICAgPSAyICogRkxBR1NfSUdOT1JFX1BBUkFNRVRFUiwKKyAgRkxBR1NfRklYRURfU0laRSAgICAgICAgICA9IDIgKiBGTEFHU19WQVJTSVpFX1BBUkFNRVRFUiwKKyAgRkxBR1NfTEFTVCAgICAgICAgICAgICAgICA9IEZMQUdTX0ZJWEVEX1NJWkUsCisgIC8qIFJldXNlZCBmbGFncyAqLworICBGTEFHU19FWENMVURFICAgICAgICAgICAgID0gRkxBR1NfU0hPUlQsCisgIEZMQUdTX1VTRVJfREVGSU5FRCAgICAgICAgPSBGTEFHU19JR05PUkUsCisgIEZMQUdTX1JPVU5ESU5HICAgICAgICAgICAgPSBGTEFHU19JTlRNQVhfVCwKKyAgLyogQ29tcG91bmRlZCBmbGFncyAqLworICBGTEFHU19BTExfVkFSU0laRVMgICAgICAgID0gRkxBR1NfTE9ORyB8IEZMQUdTX1FVQUQgfCBGTEFHU19JTlRNQVhfVCB8IEZMQUdTX1BUUkRJRkZfVCB8IEZMQUdTX1NJWkVfVCwKKyAgRkxBR1NfQUxMX1NJWkVTICAgICAgICAgICA9IEZMQUdTX0FMTF9WQVJTSVpFUyB8IEZMQUdTX1NIT1JUU0hPUlQgfCBGTEFHU19TSE9SVCwKKworICBOT19QT1NJVElPTiAgPSAtMSwKKyAgTk9fV0lEVEggICAgID0gIDAsCisgIE5PX1BSRUNJU0lPTiA9IC0xLAorICBOT19TSVpFICAgICAgPSAtMSwKKworICAvKiBEbyBub3QgY2hhbmdlIHRoZXNlICovCisgIE5PX0JBU0UgICAgICA9IC0xLAorICBNSU5fQkFTRSAgICAgPSAgMiwKKyAgTUFYX0JBU0UgICAgID0gMzYsCisgIEJBU0VfQklOQVJZICA9ICAyLAorICBCQVNFX09DVEFMICAgPSAgOCwKKyAgQkFTRV9ERUNJTUFMID0gMTAsCisgIEJBU0VfSEVYICAgICA9IDE2LAorCisgIC8qIE1heGltYWwgbnVtYmVyIG9mIGFsbG93ZWQgcGFyYW1ldGVycyAqLworICBNQVhfUEFSQU1FVEVSUyA9IDY0LAorICAvKiBNYXhpbWFsIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGNsYXNzICovCisgIE1BWF9DSEFSQUNURVJfQ0xBU1MgPSBVQ0hBUl9NQVggKyAxLAorCisgIC8qIE1heGltYWwgc3RyaW5nIGxlbmd0aHMgZm9yIHVzZXItZGVmaW5lZCBzcGVjaWZpZXJzICovCisgIE1BWF9VU0VSX05BTUUgPSA2NCwKKyAgTUFYX1VTRVJfREFUQSA9IDI1NiwKKyAgCisgIC8qIE1heGltYWwgbGVuZ3RoIG9mIGxvY2FsZSBzZXBhcmF0b3Igc3RyaW5ncyAqLworICBNQVhfTE9DQUxFX1NFUEFSQVRPUl9MRU5HVEggPSBNQl9MRU5fTUFYLAorICAvKiBNYXhpbWFsIG51bWJlciBvZiBpbnRlZ2VycyBpbiBncm91cGluZyAqLworICBNQVhfTE9DQUxFX0dST1VQUyA9IDY0LAorCisgIC8qIEluaXRpYWwgc2l6ZSBvZiBhc3ByaW50ZiBidWZmZXIgKi8KKyAgRFlOQU1JQ19TVEFSVF9TSVpFID0gMzIKK307CisKKyNkZWZpbmUgTk9fR1JPVVBJTkcgKChpbnQpQ0hBUl9NQVgpCisKKy8qIEZ1bmRhbWVudGFsIGZvcm1hdHRpbmcgcGFyYW1ldGVyIHR5cGVzICovCisjZGVmaW5lIEZPUk1BVF9VTktOT1dOICAgMAorI2RlZmluZSBGT1JNQVRfSU5UICAgICAgIDEKKyNkZWZpbmUgRk9STUFUX0RPVUJMRSAgICAyCisjZGVmaW5lIEZPUk1BVF9DSEFSICAgICAgMworI2RlZmluZSBGT1JNQVRfU1RSSU5HICAgIDQKKyNkZWZpbmUgRk9STUFUX1BPSU5URVIgICA1CisjZGVmaW5lIEZPUk1BVF9DT1VOVCAgICAgNgorI2RlZmluZSBGT1JNQVRfUEFSQU1FVEVSIDcKKyNkZWZpbmUgRk9STUFUX0dST1VQICAgICA4CisjaWYgVFJJT19HTlUKKyMgZGVmaW5lIEZPUk1BVF9FUlJOTyAgICA5CisjZW5kaWYKKyNpZiBUUklPX0VYVEVOU0lPTgorIyBkZWZpbmUgRk9STUFUX1VTRVJfREVGSU5FRCAxMAorI2VuZGlmCisKKy8qIENoYXJhY3RlciBjb25zdGFudHMgKi8KKyNkZWZpbmUgQ0hBUl9JREVOVElGSUVSICclJworI2RlZmluZSBDSEFSX0JBQ0tTTEFTSCAnXFwnCisjZGVmaW5lIENIQVJfUVVPVEUgJ1wiJworI2RlZmluZSBDSEFSX0FESlVTVCAnICcKKworLyogQ2hhcmFjdGVyIGNsYXNzIGV4cHJlc3Npb25zICovCisjZGVmaW5lIENMQVNTX0FMTlVNICJbOmFsbnVtOl0iCisjZGVmaW5lIENMQVNTX0FMUEhBICJbOmFscGhhOl0iCisjZGVmaW5lIENMQVNTX0JMQU5LICJbOmJsYW5rOl0iCisjZGVmaW5lIENMQVNTX0NOVFJMICJbOmNudHJsOl0iCisjZGVmaW5lIENMQVNTX0RJR0lUICJbOmRpZ2l0Ol0iCisjZGVmaW5lIENMQVNTX0dSQVBIICJbOmdyYXBoOl0iCisjZGVmaW5lIENMQVNTX0xPV0VSICJbOmxvd2VyOl0iCisjZGVmaW5lIENMQVNTX1BSSU5UICJbOnByaW50Ol0iCisjZGVmaW5lIENMQVNTX1BVTkNUICJbOnB1bmN0Ol0iCisjZGVmaW5lIENMQVNTX1NQQUNFICJbOnNwYWNlOl0iCisjZGVmaW5lIENMQVNTX1VQUEVSICJbOnVwcGVyOl0iCisjZGVmaW5lIENMQVNTX1hESUdJVCAiWzp4ZGlnaXQ6XSIKKworLyoKKyAqIFNQRUNJRklFUlM6CisgKgorICoKKyAqIGEgIEhleC1mbG9hdAorICogQSAgSGV4LWZsb2F0CisgKiBjICBDaGFyYWN0ZXIKKyAqIEMgIFdpZGVjaGFyIGNoYXJhY3RlciAod2ludF90KQorICogZCAgRGVjaW1hbAorICogZSAgRmxvYXQKKyAqIEUgIEZsb2F0CisgKiBGICBGbG9hdAorICogRiAgRmxvYXQKKyAqIGcgIEZsb2F0CisgKiBHICBGbG9hdAorICogaSAgSW50ZWdlcgorICogbSAgRXJyb3IgbWVzc2FnZQorICogbiAgQ291bnQKKyAqIG8gIE9jdGFsCisgKiBwICBQb2ludGVyCisgKiBzICBTdHJpbmcKKyAqIFMgIFdpZGVjaGFyIHN0cmluZyAod2NoYXJfdCAqKQorICogdSAgVW5zaWduZWQKKyAqIHggIEhleAorICogWCAgSGV4CisgKiBbXSBHcm91cAorICogPD4gVXNlci1kZWZpbmVkCisgKgorICogUmVzZXJ2ZWQ6CisgKgorICogRCAgQmluYXJ5IENvZGVkIERlY2ltYWwgJUQobGVuZ3RoLHByZWNpc2lvbikgKE9TLzM5MCkKKyAqLworI2RlZmluZSBTUEVDSUZJRVJfQ0hBUiAnYycKKyNkZWZpbmUgU1BFQ0lGSUVSX1NUUklORyAncycKKyNkZWZpbmUgU1BFQ0lGSUVSX0RFQ0lNQUwgJ2QnCisjZGVmaW5lIFNQRUNJRklFUl9JTlRFR0VSICdpJworI2RlZmluZSBTUEVDSUZJRVJfVU5TSUdORUQgJ3UnCisjZGVmaW5lIFNQRUNJRklFUl9PQ1RBTCAnbycKKyNkZWZpbmUgU1BFQ0lGSUVSX0hFWCAneCcKKyNkZWZpbmUgU1BFQ0lGSUVSX0hFWF9VUFBFUiAnWCcKKyNkZWZpbmUgU1BFQ0lGSUVSX0ZMT0FUX0UgJ2UnCisjZGVmaW5lIFNQRUNJRklFUl9GTE9BVF9FX1VQUEVSICdFJworI2RlZmluZSBTUEVDSUZJRVJfRkxPQVRfRiAnZicKKyNkZWZpbmUgU1BFQ0lGSUVSX0ZMT0FUX0ZfVVBQRVIgJ0YnCisjZGVmaW5lIFNQRUNJRklFUl9GTE9BVF9HICdnJworI2RlZmluZSBTUEVDSUZJRVJfRkxPQVRfR19VUFBFUiAnRycKKyNkZWZpbmUgU1BFQ0lGSUVSX1BPSU5URVIgJ3AnCisjZGVmaW5lIFNQRUNJRklFUl9HUk9VUCAnWycKKyNkZWZpbmUgU1BFQ0lGSUVSX1VOR1JPVVAgJ10nCisjZGVmaW5lIFNQRUNJRklFUl9DT1VOVCAnbicKKyNpZiBUUklPX1VOSVg5OAorIyBkZWZpbmUgU1BFQ0lGSUVSX0NIQVJfVVBQRVIgJ0MnCisjIGRlZmluZSBTUEVDSUZJRVJfU1RSSU5HX1VQUEVSICdTJworI2VuZGlmCisjaWYgVFJJT19DOTkKKyMgZGVmaW5lIFNQRUNJRklFUl9IRVhGTE9BVCAnYScKKyMgZGVmaW5lIFNQRUNJRklFUl9IRVhGTE9BVF9VUFBFUiAnQScKKyNlbmRpZgorI2lmIFRSSU9fR05VCisjIGRlZmluZSBTUEVDSUZJRVJfRVJSTk8gJ20nCisjZW5kaWYKKyNpZiBUUklPX0VYVEVOU0lPTgorIyBkZWZpbmUgU1BFQ0lGSUVSX0JJTkFSWSAnYicKKyMgZGVmaW5lIFNQRUNJRklFUl9CSU5BUllfVVBQRVIgJ0InCisjIGRlZmluZSBTUEVDSUZJRVJfVVNFUl9ERUZJTkVEX0JFR0lOICc8JworIyBkZWZpbmUgU1BFQ0lGSUVSX1VTRVJfREVGSU5FRF9FTkQgJz4nCisjIGRlZmluZSBTUEVDSUZJRVJfVVNFUl9ERUZJTkVEX1NFUEFSQVRPUiAnOicKKyNlbmRpZgorCisvKgorICogUVVBTElGSUVSUzoKKyAqCisgKgorICogTnVtYmVycyA9IGQsaSxvLHUseCxYCisgKiBGbG9hdCA9IGEsQSxlLEUsZixGLGcsRworICogU3RyaW5nID0gcworICogQ2hhciA9IGMKKyAqCisgKgorICogOSQgUG9zaXRpb24KKyAqICAgICAgVXNlIHRoZSA5dGggcGFyYW1ldGVyLiA5IGNhbiBiZSBhbnkgbnVtYmVyIGJldHdlZW4gMSBhbmQKKyAqICAgICAgdGhlIG1heGltYWwgYXJndW1lbnQKKyAqCisgKiA5IFdpZHRoCisgKiAgICAgIFNldCB3aWR0aCB0byA5LiA5IGNhbiBiZSBhbnkgbnVtYmVyLCBidXQgbXVzdCBub3QgYmUgcG9zdGZpeGVkCisgKiAgICAgIGJ5ICckJworICoKKyAqIGggIFNob3J0CisgKiAgICBOdW1iZXJzOgorICogICAgICAodW5zaWduZWQpIHNob3J0IGludAorICoKKyAqIGhoIFNob3J0IHNob3J0CisgKiAgICBOdW1iZXJzOgorICogICAgICAodW5zaWduZWQpIGNoYXIKKyAqCisgKiBsICBMb25nCisgKiAgICBOdW1iZXJzOgorICogICAgICAodW5zaWduZWQpIGxvbmcgaW50CisgKiAgICBTdHJpbmc6CisgKiAgICAgIGFzIHRoZSBTIHNwZWNpZmllcgorICogICAgQ2hhcjoKKyAqICAgICAgYXMgdGhlIEMgc3BlY2lmaWVyCisgKgorICogbGwgTG9uZyBMb25nCisgKiAgICBOdW1iZXJzOgorICogICAgICAodW5zaWduZWQpIGxvbmcgbG9uZyBpbnQKKyAqCisgKiBMICBMb25nIERvdWJsZQorICogICAgRmxvYXQKKyAqICAgICAgbG9uZyBkb3VibGUKKyAqCisgKiAjICBBbHRlcm5hdGl2ZQorICogICAgRmxvYXQ6CisgKiAgICAgIERlY2ltYWwtcG9pbnQgaXMgYWx3YXlzIHByZXNlbnQKKyAqICAgIFN0cmluZzoKKyAqICAgICAgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkIGFzIFxudW1iZXIKKyAqCisgKiAgICBTcGFjaW5nCisgKgorICogKyAgU2lnbgorICoKKyAqIC0gIEFsaWdubWVudAorICoKKyAqIC4gIFByZWNpc2lvbgorICoKKyAqICogIFBhcmFtZXRlcgorICogICAgcHJpbnQ6IHVzZSBwYXJhbWV0ZXIKKyAqICAgIHNjYW46IG5vIHBhcmFtZXRlciAoaWdub3JlKQorICoKKyAqIHEgIFF1YWQKKyAqCisgKiBaICBzaXplX3QKKyAqCisgKiB3ICBXaWRlY2hhcgorICoKKyAqICcgIFRob3VzYW5kcy9xdW90ZQorICogICAgTnVtYmVyczoKKyAqICAgICAgSW50ZWdlciBwYXJ0IGdyb3VwZWQgaW4gdGhvdXNhbmRzCisgKiAgICBCaW5hcnkgbnVtYmVyczoKKyAqICAgICAgTnVtYmVyIGdyb3VwZWQgaW4gbmliYmxlcyAoNCBiaXRzKQorICogICAgU3RyaW5nOgorICogICAgICBRdW90ZWQgc3RyaW5nCisgKgorICogaiAgaW50bWF4X3QKKyAqIHQgIHBydGRpZmZfdAorICogeiAgc2l6ZV90CisgKgorICogISAgU3RpY2t5CisgKiBAICBQYXJhbWV0ZXIgKGZvciBib3RoIHByaW50IGFuZCBzY2FuKQorICoKKyAqIEkgIG4tYml0IEludGVnZXIKKyAqICAgIE51bWJlcnM6CisgKiAgICAgIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBleGlzdHMKKyAqICAgICAgICBJOCAgPSA4LWJpdCBpbnRlZ2VyCisgKiAgICAgICAgSTE2ID0gMTYtYml0IGludGVnZXIKKyAqICAgICAgICBJMzIgPSAzMi1iaXQgaW50ZWdlcgorICogICAgICAgIEk2NCA9IDY0LWJpdCBpbnRlZ2VyCisgKi8KKyNkZWZpbmUgUVVBTElGSUVSX1BPU0lUSU9OICckJworI2RlZmluZSBRVUFMSUZJRVJfU0hPUlQgJ2gnCisjZGVmaW5lIFFVQUxJRklFUl9MT05HICdsJworI2RlZmluZSBRVUFMSUZJRVJfTE9OR19VUFBFUiAnTCcKKyNkZWZpbmUgUVVBTElGSUVSX0FMVEVSTkFUSVZFICcjJworI2RlZmluZSBRVUFMSUZJRVJfU1BBQ0UgJyAnCisjZGVmaW5lIFFVQUxJRklFUl9QTFVTICcrJworI2RlZmluZSBRVUFMSUZJRVJfTUlOVVMgJy0nCisjZGVmaW5lIFFVQUxJRklFUl9ET1QgJy4nCisjZGVmaW5lIFFVQUxJRklFUl9TVEFSICcqJworI2RlZmluZSBRVUFMSUZJRVJfQ0lSQ1VNRkxFWCAnXicgLyogRm9yIHNjYW5saXN0cyAqLworI2lmIFRSSU9fQzk5CisjIGRlZmluZSBRVUFMSUZJRVJfU0laRV9UICd6JworIyBkZWZpbmUgUVVBTElGSUVSX1BUUkRJRkZfVCAndCcKKyMgZGVmaW5lIFFVQUxJRklFUl9JTlRNQVhfVCAnaicKKyNlbmRpZgorI2lmIFRSSU9fQlNEIHx8IFRSSU9fR05VCisjIGRlZmluZSBRVUFMSUZJRVJfUVVBRCAncScKKyNlbmRpZgorI2lmIFRSSU9fR05VCisjIGRlZmluZSBRVUFMSUZJRVJfU0laRV9UX1VQUEVSICdaJworI2VuZGlmCisjaWYgVFJJT19NSVNDCisjIGRlZmluZSBRVUFMSUZJRVJfV0lERUNIQVIgJ3cnCisjZW5kaWYKKyNpZiBUUklPX01JQ1JPU09GVAorIyBkZWZpbmUgUVVBTElGSUVSX0ZJWEVEX1NJWkUgJ0knCisjZW5kaWYKKyNpZiBUUklPX0VYVEVOU0lPTgorIyBkZWZpbmUgUVVBTElGSUVSX1FVT1RFICdcJycKKyMgZGVmaW5lIFFVQUxJRklFUl9TVElDS1kgJyEnCisjIGRlZmluZSBRVUFMSUZJRVJfVkFSU0laRSAnJicgLyogVGhpcyBzaG91bGQgcmVtYWluIHVuZG9jdW1lbnRlZCAqLworIyBkZWZpbmUgUVVBTElGSUVSX1BBUkFNICdAJyAvKiBFeHBlcmltZW50YWwgKi8KKyMgZGVmaW5lIFFVQUxJRklFUl9DT0xPTiAnOicgLyogRm9yIHNjYW5saXN0cyAqLworIyBkZWZpbmUgUVVBTElGSUVSX0VRVUFMICc9JyAvKiBGb3Igc2Nhbmxpc3RzICovCisjIGRlZmluZSBRVUFMSUZJRVJfUk9VTkRJTkdfVVBQRVIgJ1InCisjZW5kaWYKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEludGVybmFsIFN0cnVjdHVyZXMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogUGFyYW1ldGVycyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAvKiBBbiBpbmRpY2F0aW9uIG9mIHdoaWNoIGVudHJ5IGluIHRoZSBkYXRhIHVuaW9uIGlzIHVzZWQgKi8KKyAgaW50IHR5cGU7CisgIC8qIFRoZSBmbGFncyAqLworICB0cmlvX2ZsYWdzX3QgZmxhZ3M7CisgIC8qIFRoZSB3aWR0aCBxdWFsaWZpZXIgKi8KKyAgaW50IHdpZHRoOworICAvKiBUaGUgcHJlY2lzaW9uIHF1YWxpZmllciAqLworICBpbnQgcHJlY2lzaW9uOworICAvKiBUaGUgYmFzZSBxdWFsaWZpZXIgKi8KKyAgaW50IGJhc2U7CisgIC8qIFRoZSBzaXplIGZvciB0aGUgdmFyaWFibGUgc2l6ZSBxdWFsaWZpZXIgKi8KKyAgaW50IHZhcnNpemU7CisgIC8qIFRoZSBtYXJrZXIgb2YgdGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVyICovCisgIGludCBpbmRleEFmdGVyU3BlY2lmaWVyOworICAvKiBUaGUgZGF0YSBmcm9tIHRoZSBhcmd1bWVudCBsaXN0ICovCisgIHVuaW9uIHsKKyAgICBjaGFyICpzdHJpbmc7CisjaWYgVFJJT19XSURFQ0hBUgorICAgIHRyaW9fd2NoYXJfdCAqd3N0cmluZzsKKyNlbmRpZgorICAgIHRyaW9fcG9pbnRlcl90IHBvaW50ZXI7CisgICAgdW5pb24geworICAgICAgdHJpb19pbnRtYXhfdCBhc19zaWduZWQ7CisgICAgICB0cmlvX3VpbnRtYXhfdCBhc191bnNpZ25lZDsKKyAgICB9IG51bWJlcjsKKyAgICBkb3VibGUgZG91YmxlTnVtYmVyOworICAgIGRvdWJsZSAqZG91YmxlUG9pbnRlcjsKKyAgICB0cmlvX2xvbmdfZG91YmxlX3QgbG9uZ2RvdWJsZU51bWJlcjsKKyAgICB0cmlvX2xvbmdfZG91YmxlX3QgKmxvbmdkb3VibGVQb2ludGVyOworICAgIGludCBlcnJvck51bWJlcjsKKyAgfSBkYXRhOworICAvKiBGb3IgdGhlIHVzZXItZGVmaW5lZCBzcGVjaWZpZXIgKi8KKyAgY2hhciB1c2VyX25hbWVbTUFYX1VTRVJfTkFNRV07CisgIGNoYXIgdXNlcl9kYXRhW01BWF9VU0VSX0RBVEFdOworfSB0cmlvX3BhcmFtZXRlcl90OworCisvKiBDb250YWluZXIgZm9yIGN1c3RvbWl6ZWQgZnVuY3Rpb25zICovCit0eXBlZGVmIHN0cnVjdCB7CisgIHVuaW9uIHsKKyAgICB0cmlvX291dHN0cmVhbV90IG91dDsKKyAgICB0cmlvX2luc3RyZWFtX3QgaW47CisgIH0gc3RyZWFtOworICB0cmlvX3BvaW50ZXJfdCBjbG9zdXJlOworfSB0cmlvX2N1c3RvbV90OworCisvKiBHZW5lcmFsIHRyaW8gImNsYXNzIiAqLwordHlwZWRlZiBzdHJ1Y3QgX3RyaW9fY2xhc3NfdCB7CisgIC8qCisgICAqIFRoZSBmdW5jdGlvbiB0byB3cml0ZSBjaGFyYWN0ZXJzIHRvIGEgc3RyZWFtLgorICAgKi8KKyAgdm9pZCAoKk91dFN0cmVhbSkgVFJJT19QUk9UTygoc3RydWN0IF90cmlvX2NsYXNzX3QgKiwgaW50KSk7CisgIC8qCisgICAqIFRoZSBmdW5jdGlvbiB0byByZWFkIGNoYXJhY3RlcnMgZnJvbSBhIHN0cmVhbS4KKyAgICovCisgIHZvaWQgKCpJblN0cmVhbSkgVFJJT19QUk9UTygoc3RydWN0IF90cmlvX2NsYXNzX3QgKiwgaW50ICopKTsKKyAgLyoKKyAgICogVGhlIGN1cnJlbnQgbG9jYXRpb24gaW4gdGhlIHN0cmVhbS4KKyAgICovCisgIHRyaW9fcG9pbnRlcl90IGxvY2F0aW9uOworICAvKgorICAgKiBUaGUgY2hhcmFjdGVyIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQuCisgICAqLworICBpbnQgY3VycmVudDsKKyAgLyoKKyAgICogVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgd291bGQgaGF2ZSBiZWVuIHdyaXR0ZW4vcmVhZAorICAgKiBpZiB0aGVyZSBoYWQgYmVlbiBzdWZmaWNpZW50IHNwYWNlLgorICAgKi8KKyAgaW50IHByb2Nlc3NlZDsKKyAgLyoKKyAgICogVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGFjdHVhbGx5IHdyaXR0ZW4vcmVhZC4KKyAgICogUHJvY2Vzc2VkIGFuZCBjb21taXR0ZWQgd2lsbCBvbmx5IGRpZmZlciBmb3IgdGhlICpucHJpbnRmCisgICAqIGFuZCAqbnNjYW5mIGZ1bmN0aW9ucy4KKyAgICovCisgIGludCBjb21taXR0ZWQ7CisgIC8qCisgICAqIFRoZSB1cHBlciBsaW1pdCBvZiBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIHdyaXR0ZW4vcmVhZC4KKyAgICovCisgIGludCBtYXg7CisgIC8qCisgICAqIFRoZSBsYXN0IG91dHB1dCBlcnJvciB0aGF0IHdhcyBkZXRlY3RlZC4KKyAgICovCisgIGludCBlcnJvcjsKK30gdHJpb19jbGFzc190OworCisvKiBSZWZlcmVuY2VzIChmb3IgdXNlci1kZWZpbmVkIGNhbGxiYWNrcykgKi8KK3R5cGVkZWYgc3RydWN0IF90cmlvX3JlZmVyZW5jZV90IHsKKyAgdHJpb19jbGFzc190ICpkYXRhOworICB0cmlvX3BhcmFtZXRlcl90ICpwYXJhbWV0ZXI7Cit9IHRyaW9fcmVmZXJlbmNlX3Q7CisKKy8qIFJlZ2lzdGVyZWQgZW50cmllcyAoZm9yIHVzZXItZGVmaW5lZCBjYWxsYmFja3MpICovCit0eXBlZGVmIHN0cnVjdCBfdHJpb191c2VyZGVmX3QgeworICBzdHJ1Y3QgX3RyaW9fdXNlcmRlZl90ICpuZXh0OworICB0cmlvX2NhbGxiYWNrX3QgY2FsbGJhY2s7CisgIGNoYXIgKm5hbWU7Cit9IHRyaW9fdXNlcmRlZl90OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEludGVybmFsIFZhcmlhYmxlcworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgVFJJT19DT05TVCBjaGFyIHJjc2lkW10gPSAiQCgjKSRJZCQiOworCisvKgorICogTmVlZCB0aGlzIHRvIHdvcmthcm91bmQgYSBwYXJzZXIgYnVnIGluIEhQIEMvaVggY29tcGlsZXIgdGhhdCBmYWlscworICogdG8gcmVzb2x2ZXMgbWFjcm8gZGVmaW5pdGlvbnMgdGhhdCBpbmNsdWRlcyB0eXBlICdsb25nIGRvdWJsZScsCisgKiBlLmc6IHZhX2FyZyhhcmdfcHRyLCBsb25nIGRvdWJsZSkKKyAqLworI2lmIGRlZmluZWQoVFJJT19QTEFURk9STV9NUEVJWCkKK3N0YXRpYyBUUklPX0NPTlNUIHRyaW9fbG9uZ19kb3VibGVfdCBfX19kdW1teV9sb25nX2RvdWJsZSA9IDA7CisjZW5kaWYKKworc3RhdGljIFRSSU9fQ09OU1QgY2hhciBpbnRlcm5hbE51bGxTdHJpbmdbXSA9ICIobmlsKSI7CisKKyNpZiBkZWZpbmVkKFVTRV9MT0NBTEUpCitzdGF0aWMgc3RydWN0IGxjb252ICppbnRlcm5hbExvY2FsZVZhbHVlcyA9IE5VTEw7CisjZW5kaWYKKworLyoKKyAqIFVOSVg5OCBzYXlzICJpbiBhIGxvY2FsZSB3aGVyZSB0aGUgcmFkaXggY2hhcmFjdGVyIGlzIG5vdCBkZWZpbmVkLAorICogdGhlIHJhZGl4IGNoYXJhY3RlciBkZWZhdWx0cyB0byBhIHBlcmlvZCAoLikiCisgKi8KK3N0YXRpYyBpbnQgaW50ZXJuYWxEZWNpbWFsUG9pbnRMZW5ndGggPSAxOworc3RhdGljIGludCBpbnRlcm5hbFRob3VzYW5kU2VwYXJhdG9yTGVuZ3RoID0gMTsKK3N0YXRpYyBjaGFyIGludGVybmFsRGVjaW1hbFBvaW50ID0gJy4nOworc3RhdGljIGNoYXIgaW50ZXJuYWxEZWNpbWFsUG9pbnRTdHJpbmdbTUFYX0xPQ0FMRV9TRVBBUkFUT1JfTEVOR1RIICsgMV0gPSAiLiI7CitzdGF0aWMgY2hhciBpbnRlcm5hbFRob3VzYW5kU2VwYXJhdG9yW01BWF9MT0NBTEVfU0VQQVJBVE9SX0xFTkdUSCArIDFdID0gIiwiOworc3RhdGljIGNoYXIgaW50ZXJuYWxHcm91cGluZ1tNQVhfTE9DQUxFX0dST1VQU10gPSB7IChjaGFyKU5PX0dST1VQSU5HIH07CisKK3N0YXRpYyBUUklPX0NPTlNUIGNoYXIgaW50ZXJuYWxEaWdpdHNMb3dlcltdID0gIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CitzdGF0aWMgVFJJT19DT05TVCBjaGFyIGludGVybmFsRGlnaXRzVXBwZXJbXSA9ICIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiOworc3RhdGljIEJPT0xFQU5fVCBpbnRlcm5hbERpZ2l0c1VuY29udmVydGVkID0gVFJVRTsKK3N0YXRpYyBpbnQgaW50ZXJuYWxEaWdpdEFycmF5WzEyOF07CisjaWYgVFJJT19FWFRFTlNJT04KK3N0YXRpYyBCT09MRUFOX1QgaW50ZXJuYWxDb2xsYXRpb25VbmNvbnZlcnRlZCA9IFRSVUU7CitzdGF0aWMgY2hhciBpbnRlcm5hbENvbGxhdGlvbkFycmF5W01BWF9DSEFSQUNURVJfQ0xBU1NdW01BWF9DSEFSQUNURVJfQ0xBU1NdOworI2VuZGlmCisKKyNpZiBUUklPX0VYVEVOU0lPTgorc3RhdGljIFRSSU9fVk9MQVRJTEUgdHJpb19jYWxsYmFja190IGludGVybmFsRW50ZXJDcml0aWNhbFJlZ2lvbiA9IE5VTEw7CitzdGF0aWMgVFJJT19WT0xBVElMRSB0cmlvX2NhbGxiYWNrX3QgaW50ZXJuYWxMZWF2ZUNyaXRpY2FsUmVnaW9uID0gTlVMTDsKK3N0YXRpYyB0cmlvX3VzZXJkZWZfdCAqaW50ZXJuYWxVc2VyRGVmID0gTlVMTDsKKyNlbmRpZgorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSW50ZXJuYWwgRnVuY3Rpb25zCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIGRlZmluZWQoVFJJT19NSU5JTUFMKQorIyBkZWZpbmUgVFJJT19TVFJJTkdfUFVCTElDIHN0YXRpYworIyBpbmNsdWRlICJ0cmlvc3RyLmMiCisjZW5kaWYgLyogZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvSXNRdWFsaWZpZXIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqICBSZW1lbWJlciB0byBhZGQgYWxsIG5ldyBxdWFsaWZpZXJzIHRvIHRoaXMgZnVuY3Rpb24uCisgKiAgUVVBTElGSUVSX1BPU0lUSU9OIG11c3Qgbm90IGJlIGFkZGVkLgorICovCitUUklPX1BSSVZBVEUgQk9PTEVBTl9UCitUcmlvSXNRdWFsaWZpZXIKK1RSSU9fQVJHUzEoKGNoYXJhY3RlciksCisJICAgVFJJT19DT05TVCBjaGFyIGNoYXJhY3RlcikKK3sKKyAgLyogUVVBTElGSUVSX1BPU0lUSU9OIGlzIG5vdCBpbmNsdWRlZCAqLworICBzd2l0Y2ggKGNoYXJhY3RlcikKKyAgICB7CisgICAgY2FzZSAnMCc6IGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOgorICAgIGNhc2UgJzUnOiBjYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNlICc5JzoKKyAgICBjYXNlIFFVQUxJRklFUl9QTFVTOgorICAgIGNhc2UgUVVBTElGSUVSX01JTlVTOgorICAgIGNhc2UgUVVBTElGSUVSX1NQQUNFOgorICAgIGNhc2UgUVVBTElGSUVSX0RPVDoKKyAgICBjYXNlIFFVQUxJRklFUl9TVEFSOgorICAgIGNhc2UgUVVBTElGSUVSX0FMVEVSTkFUSVZFOgorICAgIGNhc2UgUVVBTElGSUVSX1NIT1JUOgorICAgIGNhc2UgUVVBTElGSUVSX0xPTkc6CisgICAgY2FzZSBRVUFMSUZJRVJfTE9OR19VUFBFUjoKKyAgICBjYXNlIFFVQUxJRklFUl9DSVJDVU1GTEVYOgorI2lmIGRlZmluZWQoUVVBTElGSUVSX1NJWkVfVCkKKyAgICBjYXNlIFFVQUxJRklFUl9TSVpFX1Q6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QVFJESUZGX1QpCisgICAgY2FzZSBRVUFMSUZJRVJfUFRSRElGRl9UOgorI2VuZGlmCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfSU5UTUFYX1QpCisgICAgY2FzZSBRVUFMSUZJRVJfSU5UTUFYX1Q6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9RVUFEKQorICAgIGNhc2UgUVVBTElGSUVSX1FVQUQ6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9TSVpFX1RfVVBQRVIpCisgICAgY2FzZSBRVUFMSUZJRVJfU0laRV9UX1VQUEVSOgorI2VuZGlmCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfV0lERUNIQVIpCisgICAgY2FzZSBRVUFMSUZJRVJfV0lERUNIQVI6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9RVU9URSkKKyAgICBjYXNlIFFVQUxJRklFUl9RVU9URToKKyNlbmRpZgorI2lmIGRlZmluZWQoUVVBTElGSUVSX1NUSUNLWSkKKyAgICBjYXNlIFFVQUxJRklFUl9TVElDS1k6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9WQVJTSVpFKQorICAgIGNhc2UgUVVBTElGSUVSX1ZBUlNJWkU6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QQVJBTSkKKyAgICBjYXNlIFFVQUxJRklFUl9QQVJBTToKKyNlbmRpZgorI2lmIGRlZmluZWQoUVVBTElGSUVSX0ZJWEVEX1NJWkUpCisgICAgY2FzZSBRVUFMSUZJRVJfRklYRURfU0laRToKKyNlbmRpZgorI2lmIGRlZmluZWQoUVVBTElGSUVSX1JPVU5ESU5HX1VQUEVSKQorICAgIGNhc2UgUVVBTElGSUVSX1JPVU5ESU5HX1VQUEVSOgorI2VuZGlmCisgICAgICByZXR1cm4gVFJVRTsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9TZXRMb2NhbGUKKyAqLworI2lmIGRlZmluZWQoVVNFX0xPQ0FMRSkKK1RSSU9fUFJJVkFURSB2b2lkCitUcmlvU2V0TG9jYWxlKFRSSU9fTk9BUkdTKQoreworICBpbnRlcm5hbExvY2FsZVZhbHVlcyA9IChzdHJ1Y3QgbGNvbnYgKilsb2NhbGVjb252KCk7CisgIGlmIChpbnRlcm5hbExvY2FsZVZhbHVlcykKKyAgICB7CisgICAgICBpZiAoKGludGVybmFsTG9jYWxlVmFsdWVzLT5kZWNpbWFsX3BvaW50KSAmJgorCSAgKGludGVybmFsTG9jYWxlVmFsdWVzLT5kZWNpbWFsX3BvaW50WzBdICE9IE5JTCkpCisJeworCSAgaW50ZXJuYWxEZWNpbWFsUG9pbnRMZW5ndGggPSB0cmlvX2xlbmd0aChpbnRlcm5hbExvY2FsZVZhbHVlcy0+ZGVjaW1hbF9wb2ludCk7CisJICBpZiAoaW50ZXJuYWxEZWNpbWFsUG9pbnRMZW5ndGggPT0gMSkKKwkgICAgeworCSAgICAgIGludGVybmFsRGVjaW1hbFBvaW50ID0gaW50ZXJuYWxMb2NhbGVWYWx1ZXMtPmRlY2ltYWxfcG9pbnRbMF07CisJICAgIH0KKwkgIGVsc2UKKwkgICAgeworCSAgICAgIGludGVybmFsRGVjaW1hbFBvaW50ID0gTklMOworCSAgICAgIHRyaW9fY29weV9tYXgoaW50ZXJuYWxEZWNpbWFsUG9pbnRTdHJpbmcsCisJCQkgICAgc2l6ZW9mKGludGVybmFsRGVjaW1hbFBvaW50U3RyaW5nKSwKKwkJCSAgICBpbnRlcm5hbExvY2FsZVZhbHVlcy0+ZGVjaW1hbF9wb2ludCk7CisJICAgIH0KKwl9CisgICAgICBpZiAoKGludGVybmFsTG9jYWxlVmFsdWVzLT50aG91c2FuZHNfc2VwKSAmJgorCSAgKGludGVybmFsTG9jYWxlVmFsdWVzLT50aG91c2FuZHNfc2VwWzBdICE9IE5JTCkpCisJeworCSAgdHJpb19jb3B5X21heChpbnRlcm5hbFRob3VzYW5kU2VwYXJhdG9yLAorCQkJc2l6ZW9mKGludGVybmFsVGhvdXNhbmRTZXBhcmF0b3IpLAorCQkJaW50ZXJuYWxMb2NhbGVWYWx1ZXMtPnRob3VzYW5kc19zZXApOworCSAgaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvckxlbmd0aCA9IHRyaW9fbGVuZ3RoKGludGVybmFsVGhvdXNhbmRTZXBhcmF0b3IpOworCX0KKyAgICAgIGlmICgoaW50ZXJuYWxMb2NhbGVWYWx1ZXMtPmdyb3VwaW5nKSAmJgorCSAgKGludGVybmFsTG9jYWxlVmFsdWVzLT5ncm91cGluZ1swXSAhPSBOSUwpKQorCXsKKwkgIHRyaW9fY29weV9tYXgoaW50ZXJuYWxHcm91cGluZywKKwkJCXNpemVvZihpbnRlcm5hbEdyb3VwaW5nKSwKKwkJCWludGVybmFsTG9jYWxlVmFsdWVzLT5ncm91cGluZyk7CisJfQorICAgIH0KK30KKyNlbmRpZiAvKiBkZWZpbmVkKFVTRV9MT0NBTEUpICovCisKK1RSSU9fUFJJVkFURSBpbnQKK1RyaW9DYWxjVGhvdXNhbmRTZXBhcmF0b3JMZW5ndGgKK1RSSU9fQVJHUzEoKGRpZ2l0cyksCisJICAgaW50IGRpZ2l0cykKK3sKKyNpZiBUUklPX0VYVEVOU0lPTgorICBpbnQgY291bnQgPSAwOworICBpbnQgc3RlcCA9IE5PX0dST1VQSU5HOworICBjaGFyICpncm91cGluZ1BvaW50ZXIgPSBpbnRlcm5hbEdyb3VwaW5nOworCisgIHdoaWxlIChkaWdpdHMgPiAwKQorICAgIHsKKyAgICAgIGlmICgqZ3JvdXBpbmdQb2ludGVyID09IENIQVJfTUFYKQorCXsKKwkgIC8qIERpc2FibGUgZ3JvdXBpbmcgKi8KKwkgIGJyZWFrOyAvKiB3aGlsZSAqLworCX0KKyAgICAgIGVsc2UgaWYgKCpncm91cGluZ1BvaW50ZXIgPT0gMCkKKwl7CisJICAvKiBSZXBlYXQgbGFzdCBncm91cCAqLworCSAgaWYgKHN0ZXAgPT0gTk9fR1JPVVBJTkcpCisJICAgIHsKKwkgICAgICAvKiBFcnJvciBpbiBsb2NhbGUgKi8KKwkgICAgICBicmVhazsgLyogd2hpbGUgKi8KKwkgICAgfQorCX0KKyAgICAgIGVsc2UKKwl7CisJICBzdGVwID0gKmdyb3VwaW5nUG9pbnRlcisrOworCX0KKyAgICAgIGlmIChkaWdpdHMgPiBzdGVwKQorCWNvdW50ICs9IGludGVybmFsVGhvdXNhbmRTZXBhcmF0b3JMZW5ndGg7CisgICAgICBkaWdpdHMgLT0gc3RlcDsKKyAgICB9CisgIHJldHVybiBjb3VudDsKKyNlbHNlCisgIHJldHVybiAwOworI2VuZGlmCit9CisKK1RSSU9fUFJJVkFURSBCT09MRUFOX1QKK1RyaW9Gb2xsb3dlZEJ5U2VwYXJhdG9yCitUUklPX0FSR1MxKChwb3NpdGlvbiksCisJICAgaW50IHBvc2l0aW9uKQoreworI2lmIFRSSU9fRVhURU5TSU9OCisgIGludCBzdGVwID0gMDsKKyAgY2hhciAqZ3JvdXBpbmdQb2ludGVyID0gaW50ZXJuYWxHcm91cGluZzsKKworICBwb3NpdGlvbi0tOworICBpZiAocG9zaXRpb24gPT0gMCkKKyAgICByZXR1cm4gRkFMU0U7CisgIHdoaWxlIChwb3NpdGlvbiA+IDApCisgICAgeworICAgICAgaWYgKCpncm91cGluZ1BvaW50ZXIgPT0gQ0hBUl9NQVgpCisJeworCSAgLyogRGlzYWJsZSBncm91cGluZyAqLworCSAgYnJlYWs7IC8qIHdoaWxlICovCisJfQorICAgICAgZWxzZSBpZiAoKmdyb3VwaW5nUG9pbnRlciAhPSAwKQorCXsKKwkgIHN0ZXAgPSAqZ3JvdXBpbmdQb2ludGVyKys7CisJfQorICAgICAgaWYgKHN0ZXAgPT0gMCkKKwlicmVhazsKKyAgICAgIHBvc2l0aW9uIC09IHN0ZXA7CisgICAgfQorICByZXR1cm4gKHBvc2l0aW9uID09IDApOworI2Vsc2UKKyAgcmV0dXJuIEZBTFNFOworI2VuZGlmCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvR2V0UG9zaXRpb24KKyAqCisgKiBHZXQgdGhlICVuJCBwb3NpdGlvbi4KKyAqLworVFJJT19QUklWQVRFIGludAorVHJpb0dldFBvc2l0aW9uCitUUklPX0FSR1MyKChmb3JtYXQsIGluZGV4UG9pbnRlciksCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgaW50ICppbmRleFBvaW50ZXIpCit7CisjaWYgVFJJT19VTklYOTgKKyAgY2hhciAqdG1wZm9ybWF0OworICBpbnQgbnVtYmVyID0gMDsKKyAgaW50IGluZGV4ID0gKmluZGV4UG9pbnRlcjsKKworICBudW1iZXIgPSAoaW50KXRyaW9fdG9fbG9uZygmZm9ybWF0W2luZGV4XSwgJnRtcGZvcm1hdCwgQkFTRV9ERUNJTUFMKTsKKyAgaW5kZXggPSAoaW50KSh0bXBmb3JtYXQgLSBmb3JtYXQpOworICBpZiAoKG51bWJlciAhPSAwKSAmJiAoUVVBTElGSUVSX1BPU0lUSU9OID09IGZvcm1hdFtpbmRleCsrXSkpCisgICAgeworICAgICAgKmluZGV4UG9pbnRlciA9IGluZGV4OworICAgICAgLyoKKyAgICAgICAqIG51bWJlciBpcyBkZWNyZWFzZWQgYnkgMSwgYmVjYXVzZSBuJCBzdGFydHMgZnJvbSAxLCB3aGVyZWFzCisgICAgICAgKiB0aGUgYXJyYXkgaXQgaXMgaW5kZXhpbmcgc3RhcnRzIGZyb20gMC4KKyAgICAgICAqLworICAgICAgcmV0dXJuIG51bWJlciAtIDE7CisgICAgfQorI2VuZGlmCisgIHJldHVybiBOT19QT1NJVElPTjsKK30KKworI2lmIFRSSU9fRVhURU5TSU9OCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb0ZpbmROYW1lc3BhY2UKKyAqCisgKiBGaW5kIHJlZ2lzdGVyZWQgdXNlci1kZWZpbmVkIHNwZWNpZmllci4KKyAqIFRoZSBwcmV2IGFyZ3VtZW50IGlzIHVzZWQgZm9yIG9wdGltaXphdGlvbiBvbmx5LgorICovCitUUklPX1BSSVZBVEUgdHJpb191c2VyZGVmX3QgKgorVHJpb0ZpbmROYW1lc3BhY2UKK1RSSU9fQVJHUzIoKG5hbWUsIHByZXYpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqbmFtZSwKKwkgICB0cmlvX3VzZXJkZWZfdCAqKnByZXYpCit7CisgIHRyaW9fdXNlcmRlZl90ICpkZWY7CisgIAorICBpZiAoaW50ZXJuYWxFbnRlckNyaXRpY2FsUmVnaW9uKQorICAgICh2b2lkKWludGVybmFsRW50ZXJDcml0aWNhbFJlZ2lvbihOVUxMKTsKKyAgCisgIGZvciAoZGVmID0gaW50ZXJuYWxVc2VyRGVmOyBkZWY7IGRlZiA9IGRlZi0+bmV4dCkKKyAgICB7CisgICAgICAvKiBDYXNlLXNlbnNpdGl2ZSBzdHJpbmcgY29tcGFyaXNvbiAqLworICAgICAgaWYgKHRyaW9fZXF1YWxfY2FzZShkZWYtPm5hbWUsIG5hbWUpKQorCWJyZWFrOworICAgICAgCisgICAgICBpZiAocHJldikKKwkqcHJldiA9IGRlZjsKKyAgICB9CisgIAorICBpZiAoaW50ZXJuYWxMZWF2ZUNyaXRpY2FsUmVnaW9uKQorICAgICh2b2lkKWludGVybmFsTGVhdmVDcml0aWNhbFJlZ2lvbihOVUxMKTsKKyAgCisgIHJldHVybiBkZWY7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9Qb3dlcgorICoKKyAqIERlc2NyaXB0aW9uOgorICogIENhbGN1bGF0ZSBwb3coYmFzZSwgZXhwb25lbnQpLCB3aGVyZSBudW1iZXIgYW5kIGV4cG9uZW50IGFyZSBpbnRlZ2Vycy4KKyAqLworVFJJT19QUklWQVRFIHRyaW9fbG9uZ19kb3VibGVfdAorVHJpb1Bvd2VyCitUUklPX0FSR1MyKChudW1iZXIsIGV4cG9uZW50KSwKKwkgICBpbnQgbnVtYmVyLAorCSAgIGludCBleHBvbmVudCkKK3sKKyAgdHJpb19sb25nX2RvdWJsZV90IHJlc3VsdDsKKworICBpZiAobnVtYmVyID09IDEwKQorICAgIHsKKyAgICAgIHN3aXRjaCAoZXhwb25lbnQpCisJeworCSAgLyogU3BlZWQgdXAgY2FsY3VsYXRpb24gb2YgY29tbW9uIGNhc2VzICovCisJY2FzZSAwOgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFLTEpOworCSAgYnJlYWs7CisJY2FzZSAxOgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzApOworCSAgYnJlYWs7CisJY2FzZSAyOgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzEpOworCSAgYnJlYWs7CisJY2FzZSAzOgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzIpOworCSAgYnJlYWs7CisJY2FzZSA0OgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzMpOworCSAgYnJlYWs7CisJY2FzZSA1OgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzQpOworCSAgYnJlYWs7CisJY2FzZSA2OgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzUpOworCSAgYnJlYWs7CisJY2FzZSA3OgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzYpOworCSAgYnJlYWs7CisJY2FzZSA4OgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzcpOworCSAgYnJlYWs7CisJY2FzZSA5OgorCSAgcmVzdWx0ID0gKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIgKiBUUklPX1NVRkZJWF9MT05HKDFFKzgpOworCSAgYnJlYWs7CisJZGVmYXVsdDoKKwkgIHJlc3VsdCA9IHBvd2woKHRyaW9fbG9uZ19kb3VibGVfdCludW1iZXIsCisJCQkodHJpb19sb25nX2RvdWJsZV90KWV4cG9uZW50KTsKKwkgIGJyZWFrOworCX0KKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICByZXR1cm4gcG93bCgodHJpb19sb25nX2RvdWJsZV90KW51bWJlciwgKHRyaW9fbG9uZ19kb3VibGVfdClleHBvbmVudCk7CisgICAgfQorICByZXR1cm4gcmVzdWx0OworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb0xvZ2FyaXRobQorICovCitUUklPX1BSSVZBVEUgZG91YmxlCitUcmlvTG9nYXJpdGhtCitUUklPX0FSR1MyKChudW1iZXIsIGJhc2UpLAorCSAgIGRvdWJsZSBudW1iZXIsCisJICAgaW50IGJhc2UpCit7CisgIGRvdWJsZSByZXN1bHQ7CisKKyAgaWYgKG51bWJlciA8PSAwLjApCisgICAgeworICAgICAgLyogeGxDIGNyYXNoZXMgb24gbG9nKDApICovCisgICAgICByZXN1bHQgPSAobnVtYmVyID09IDAuMCkgPyB0cmlvX25pbmYoKSA6IHRyaW9fbmFuKCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgaWYgKGJhc2UgPT0gMTApCisJeworCSAgcmVzdWx0ID0gbG9nMTAobnVtYmVyKTsKKwl9CisgICAgICBlbHNlCisJeworCSAgcmVzdWx0ID0gbG9nMTAobnVtYmVyKSAvIGxvZzEwKChkb3VibGUpYmFzZSk7CisJfQorICAgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9Mb2dhcml0aG1CYXNlCisgKi8KK1RSSU9fUFJJVkFURSBkb3VibGUKK1RyaW9Mb2dhcml0aG1CYXNlCitUUklPX0FSR1MxKChiYXNlKSwKKwkgICBpbnQgYmFzZSkKK3sKKyAgc3dpdGNoIChiYXNlKQorICAgIHsKKyAgICBjYXNlIEJBU0VfQklOQVJZIDogcmV0dXJuIDEuMDsKKyAgICBjYXNlIEJBU0VfT0NUQUwgIDogcmV0dXJuIDMuMDsKKyAgICBjYXNlIEJBU0VfREVDSU1BTDogcmV0dXJuIDMuMzIxOTI4MDk0ODg3MzYyMzQ1OworICAgIGNhc2UgQkFTRV9IRVggICAgOiByZXR1cm4gNC4wOworICAgIGRlZmF1bHQgICAgICAgICAgOiByZXR1cm4gVHJpb0xvZ2FyaXRobSgoZG91YmxlKWJhc2UsIDIpOworICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9QYXJzZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogIFBhcnNlIHRoZSBmb3JtYXQgc3RyaW5nCisgKi8KK1RSSU9fUFJJVkFURSBpbnQKK1RyaW9QYXJzZQorVFJJT19BUkdTNSgodHlwZSwgZm9ybWF0LCBwYXJhbWV0ZXJzLCBhcmdsaXN0LCBhcmdhcnJheSksCisJICAgaW50IHR5cGUsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgdHJpb19wYXJhbWV0ZXJfdCAqcGFyYW1ldGVycywKKwkgICB2YV9saXN0ICphcmdsaXN0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdhcnJheSkKK3sKKyAgLyogQ291bnQgdGhlIG51bWJlciBvZiB0aW1lcyBhIHBhcmFtZXRlciBpcyByZWZlcmVuY2VkICovCisgIHVuc2lnbmVkIHNob3J0IHVzZWRFbnRyaWVzW01BWF9QQVJBTUVURVJTXTsKKyAgLyogUGFyYW1ldGVyIGNvdW50ZXJzICovCisgIGludCBwYXJhbWV0ZXJQb3NpdGlvbjsKKyAgaW50IGN1cnJlbnRQYXJhbTsKKyAgaW50IG1heFBhcmFtID0gLTE7CisgIC8qIFV0aWxpdHkgdmFyaWFibGVzICovCisgIHRyaW9fZmxhZ3NfdCBmbGFnczsKKyAgaW50IHdpZHRoOworICBpbnQgcHJlY2lzaW9uOworICBpbnQgdmFyc2l6ZTsKKyAgaW50IGJhc2U7CisgIGludCBpbmRleDsgIC8qIEluZGV4IGludG8gZm9ybWF0dGluZyBzdHJpbmcgKi8KKyAgaW50IGRvdHM7ICAvKiBDb3VudCBudW1iZXIgb2YgZG90cyBpbiBtb2RpZmllciBwYXJ0ICovCisgIEJPT0xFQU5fVCBwb3NpdGlvbmFsOyAgLyogRG9lcyB0aGUgc3BlY2lmaWVyIGhhdmUgYSBwb3NpdGlvbmFsPyAqLworICBCT09MRUFOX1QgZ290U3RpY2t5ID0gRkFMU0U7ICAvKiBBcmUgdGhlcmUgYW55IHN0aWNreSBtb2RpZmllcnMgYXQgYWxsPyAqLworICAvKgorICAgKiBpbmRpY2VzIHNwZWNpZmllcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIHBhcmFtZXRlcnMgbXVzdCBiZQorICAgKiByZWFkIGZyb20gdGhlIHZhX2FyZ3MgKHRoaXMgaXMgbmVjZXNzYXJ5IHRvIGhhbmRsZSBwb3NpdGlvbmFscykKKyAgICovCisgIGludCBpbmRpY2VzW01BWF9QQVJBTUVURVJTXTsKKyAgaW50IHBvcyA9IDA7CisgIC8qIFZhcmlvdXMgdmFyaWFibGVzICovCisgIGNoYXIgY2g7CisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX1NVUFBPUlRTX01VTFRJQllURSkKKyAgaW50IGNoYXJsZW47CisjZW5kaWYKKyAgaW50IHNhdmVfZXJybm87CisgIGludCBpID0gLTE7CisgIGludCBudW07CisgIGNoYXIgKnRtcGZvcm1hdDsKKworICAvKiBPbmUgYW5kIG9ubHkgb25lIG9mIGFyZ2xpc3QgYW5kIGFyZ2FycmF5IG11c3QgYmUgdXNlZCAqLworICBhc3NlcnQoKGFyZ2xpc3QgIT0gTlVMTCkgXiAoYXJnYXJyYXkgIT0gTlVMTCkpOworICAKKyAgLyoKKyAgICogVGhlICdwYXJhbWV0ZXJzJyBhcnJheSBpcyBub3QgaW5pdGlhbGl6ZWQsIGJ1dCB3ZSBuZWVkIHRvCisgICAqIGtub3cgd2hpY2ggZW50cmllcyB3ZSBoYXZlIHVzZWQuCisgICAqLworICBtZW1zZXQodXNlZEVudHJpZXMsIDAsIHNpemVvZih1c2VkRW50cmllcykpOworCisgIHNhdmVfZXJybm8gPSBlcnJubzsKKyAgaW5kZXggPSAwOworICBwYXJhbWV0ZXJQb3NpdGlvbiA9IDA7CisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX1NVUFBPUlRTX01VTFRJQllURSkKKyAgKHZvaWQpbWJsZW4oTlVMTCwgMCk7CisjZW5kaWYKKyAgCisgIHdoaWxlIChmb3JtYXRbaW5kZXhdKQorICAgIHsKKyNpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfTVVMVElCWVRFKQorICAgICAgaWYgKCEgaXNhc2NpaShmb3JtYXRbaW5kZXhdKSkKKwl7CisJICAvKgorCSAgICogTXVsdGlieXRlIGNoYXJhY3RlcnMgY2Fubm90IGJlIGxlZ2FsIHNwZWNpZmllcnMgb3IKKwkgICAqIG1vZGlmaWVycywgc28gd2Ugc2tpcCBvdmVyIHRoZW0uCisJICAgKi8KKwkgIGNoYXJsZW4gPSBtYmxlbigmZm9ybWF0W2luZGV4XSwgTUJfTEVOX01BWCk7CisJICBpbmRleCArPSAoY2hhcmxlbiA+IDApID8gY2hhcmxlbiA6IDE7CisJICBjb250aW51ZTsgLyogd2hpbGUgKi8KKwl9CisjZW5kaWYgLyogVFJJT19DT01QSUxFUl9TVVBQT1JUU19NVUxUSUJZVEUgKi8KKyAgICAgIGlmIChDSEFSX0lERU5USUZJRVIgPT0gZm9ybWF0W2luZGV4KytdKQorCXsKKwkgIGlmIChDSEFSX0lERU5USUZJRVIgPT0gZm9ybWF0W2luZGV4XSkKKwkgICAgeworCSAgICAgIGluZGV4Kys7CisJICAgICAgY29udGludWU7IC8qIHdoaWxlICovCisJICAgIH0KKworCSAgZmxhZ3MgPSBGTEFHU19ORVc7CisJICBkb3RzID0gMDsKKwkgIGN1cnJlbnRQYXJhbSA9IFRyaW9HZXRQb3NpdGlvbihmb3JtYXQsICZpbmRleCk7CisJICBwb3NpdGlvbmFsID0gKE5PX1BPU0lUSU9OICE9IGN1cnJlbnRQYXJhbSk7CisJICBpZiAoIXBvc2l0aW9uYWwpCisJICAgIHsKKwkgICAgICAvKiBXZSBoYXZlIG5vIHBvc2l0aW9uYWwsIGdldCB0aGUgbmV4dCBjb3VudGVyICovCisJICAgICAgY3VycmVudFBhcmFtID0gcGFyYW1ldGVyUG9zaXRpb247CisJICAgIH0KKyAgICAgICAgICBpZihjdXJyZW50UGFyYW0gPj0gTUFYX1BBUkFNRVRFUlMpCisJICAgIHsKKwkgICAgICAvKiBCYWlsIG91dCBjb21wbGV0ZWx5IHRvIG1ha2UgdGhlIGVycm9yIG1vcmUgb2J2aW91cyAqLworCSAgICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VUT09NQU5ZLCBpbmRleCk7CisJICAgIH0KKworCSAgaWYgKGN1cnJlbnRQYXJhbSA+IG1heFBhcmFtKQorCSAgICBtYXhQYXJhbSA9IGN1cnJlbnRQYXJhbTsKKworCSAgLyogRGVmYXVsdCB2YWx1ZXMgKi8KKwkgIHdpZHRoID0gTk9fV0lEVEg7CisJICBwcmVjaXNpb24gPSBOT19QUkVDSVNJT047CisJICBiYXNlID0gTk9fQkFTRTsKKwkgIHZhcnNpemUgPSBOT19TSVpFOworCisJICB3aGlsZSAoVHJpb0lzUXVhbGlmaWVyKGZvcm1hdFtpbmRleF0pKQorCSAgICB7CisJICAgICAgY2ggPSBmb3JtYXRbaW5kZXgrK107CisKKwkgICAgICBzd2l0Y2ggKGNoKQorCQl7CisJCWNhc2UgUVVBTElGSUVSX1NQQUNFOgorCQkgIGZsYWdzIHw9IEZMQUdTX1NQQUNFOworCQkgIGJyZWFrOworCisJCWNhc2UgUVVBTElGSUVSX1BMVVM6CisJCSAgZmxhZ3MgfD0gRkxBR1NfU0hPV1NJR047CisJCSAgYnJlYWs7CisKKwkJY2FzZSBRVUFMSUZJRVJfTUlOVVM6CisJCSAgZmxhZ3MgfD0gRkxBR1NfTEVGVEFESlVTVDsKKwkJICBmbGFncyAmPSB+RkxBR1NfTklMUEFERElORzsKKwkJICBicmVhazsKKworCQljYXNlIFFVQUxJRklFUl9BTFRFUk5BVElWRToKKwkJICBmbGFncyB8PSBGTEFHU19BTFRFUk5BVElWRTsKKwkJICBicmVhazsKKworCQljYXNlIFFVQUxJRklFUl9ET1Q6CisJCSAgaWYgKGRvdHMgPT0gMCkgLyogUHJlY2lzaW9uICovCisJCSAgICB7CisJCSAgICAgIGRvdHMrKzsKKworCQkgICAgICAvKiBTa2lwIGlmIG5vIHByZWNpc2lvbiAqLworCQkgICAgICBpZiAoUVVBTElGSUVSX0RPVCA9PSBmb3JtYXRbaW5kZXhdKQorCQkJYnJlYWs7CisJCSAgICAgIAorCQkgICAgICAvKiBBZnRlciB0aGUgZmlyc3QgZG90IHdlIGhhdmUgdGhlIHByZWNpc2lvbiAqLworCQkgICAgICBmbGFncyB8PSBGTEFHU19QUkVDSVNJT047CisJCSAgICAgIGlmICgoUVVBTElGSUVSX1NUQVIgPT0gZm9ybWF0W2luZGV4XSkKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QQVJBTSkKKwkJCSAgfHwgKFFVQUxJRklFUl9QQVJBTSA9PSBmb3JtYXRbaW5kZXhdKQorI2VuZGlmCisJCQkgICkKKwkJCXsKKwkJCSAgaW5kZXgrKzsKKwkJCSAgZmxhZ3MgfD0gRkxBR1NfUFJFQ0lTSU9OX1BBUkFNRVRFUjsKKworCQkJICBwcmVjaXNpb24gPSBUcmlvR2V0UG9zaXRpb24oZm9ybWF0LCAmaW5kZXgpOworCQkJICBpZiAocHJlY2lzaW9uID09IE5PX1BPU0lUSU9OKQorCQkJICAgIHsKKwkJCSAgICAgIHBhcmFtZXRlclBvc2l0aW9uKys7CisJCQkgICAgICBpZiAocG9zaXRpb25hbCkKKwkJCQlwcmVjaXNpb24gPSBwYXJhbWV0ZXJQb3NpdGlvbjsKKwkJCSAgICAgIGVsc2UKKwkJCQl7CisJCQkJICBwcmVjaXNpb24gPSBjdXJyZW50UGFyYW07CisJCQkJICBjdXJyZW50UGFyYW0gPSBwcmVjaXNpb24gKyAxOworCQkJCX0KKwkJCSAgICB9CisJCQkgIGVsc2UKKwkJCSAgICB7CisJCQkgICAgICBpZiAoISBwb3NpdGlvbmFsKQorCQkJCWN1cnJlbnRQYXJhbSA9IHByZWNpc2lvbiArIDE7CisJCQkgICAgICBpZiAod2lkdGggPiBtYXhQYXJhbSkKKwkJCQltYXhQYXJhbSA9IHByZWNpc2lvbjsKKwkJCSAgICB9CisJCQkgIGlmIChjdXJyZW50UGFyYW0gPiBtYXhQYXJhbSkKKwkJCSAgICBtYXhQYXJhbSA9IGN1cnJlbnRQYXJhbTsKKwkJCX0KKwkJICAgICAgZWxzZQorCQkJeworCQkJICBwcmVjaXNpb24gPSB0cmlvX3RvX2xvbmcoJmZvcm1hdFtpbmRleF0sCisJCQkJCQkgICAmdG1wZm9ybWF0LAorCQkJCQkJICAgQkFTRV9ERUNJTUFMKTsKKwkJCSAgaW5kZXggPSAoaW50KSh0bXBmb3JtYXQgLSBmb3JtYXQpOworCQkJfQorCQkgICAgfQorCQkgIGVsc2UgaWYgKGRvdHMgPT0gMSkgLyogQmFzZSAqLworCQkgICAgeworCQkgICAgICBkb3RzKys7CisJCSAgICAgIAorCQkgICAgICAvKiBBZnRlciB0aGUgc2Vjb25kIGRvdCB3ZSBoYXZlIHRoZSBiYXNlICovCisJCSAgICAgIGZsYWdzIHw9IEZMQUdTX0JBU0U7CisJCSAgICAgIGlmICgoUVVBTElGSUVSX1NUQVIgPT0gZm9ybWF0W2luZGV4XSkKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QQVJBTSkKKwkJCSAgfHwgKFFVQUxJRklFUl9QQVJBTSA9PSBmb3JtYXRbaW5kZXhdKQorI2VuZGlmCisJCQkgICkKKwkJCXsKKwkJCSAgaW5kZXgrKzsKKwkJCSAgZmxhZ3MgfD0gRkxBR1NfQkFTRV9QQVJBTUVURVI7CisJCQkgIGJhc2UgPSBUcmlvR2V0UG9zaXRpb24oZm9ybWF0LCAmaW5kZXgpOworCQkJICBpZiAoYmFzZSA9PSBOT19QT1NJVElPTikKKwkJCSAgICB7CisJCQkgICAgICBwYXJhbWV0ZXJQb3NpdGlvbisrOworCQkJICAgICAgaWYgKHBvc2l0aW9uYWwpCisJCQkJYmFzZSA9IHBhcmFtZXRlclBvc2l0aW9uOworCQkJICAgICAgZWxzZQorCQkJCXsKKwkJCQkgIGJhc2UgPSBjdXJyZW50UGFyYW07CisJCQkJICBjdXJyZW50UGFyYW0gPSBiYXNlICsgMTsKKwkJCQl9CisJCQkgICAgfQorCQkJICBlbHNlCisJCQkgICAgeworCQkJICAgICAgaWYgKCEgcG9zaXRpb25hbCkKKwkJCQljdXJyZW50UGFyYW0gPSBiYXNlICsgMTsKKwkJCSAgICAgIGlmIChiYXNlID4gbWF4UGFyYW0pCisJCQkJbWF4UGFyYW0gPSBiYXNlOworCQkJICAgIH0KKwkJCSAgaWYgKGN1cnJlbnRQYXJhbSA+IG1heFBhcmFtKQorCQkJICAgIG1heFBhcmFtID0gY3VycmVudFBhcmFtOworCQkJfQorCQkgICAgICBlbHNlCisJCQl7CisJCQkgIGJhc2UgPSB0cmlvX3RvX2xvbmcoJmZvcm1hdFtpbmRleF0sCisJCQkJCSAgICAgICZ0bXBmb3JtYXQsCisJCQkJCSAgICAgIEJBU0VfREVDSU1BTCk7CisJCQkgIGlmIChiYXNlID4gTUFYX0JBU0UpCisJCQkgICAgcmV0dXJuIFRSSU9fRVJST1JfUkVUVVJOKFRSSU9fRUlOVkFMLCBpbmRleCk7CisJCQkgIGluZGV4ID0gKGludCkodG1wZm9ybWF0IC0gZm9ybWF0KTsKKwkJCX0KKwkJICAgIH0KKwkJICBlbHNlCisJCSAgICB7CisJCSAgICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VJTlZBTCwgaW5kZXgpOworCQkgICAgfQorCQkgIGJyZWFrOyAvKiBRVUFMSUZJRVJfRE9UICovCisKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QQVJBTSkKKwkJY2FzZSBRVUFMSUZJRVJfUEFSQU06CisJCSAgdHlwZSA9IFRZUEVfUFJJTlQ7CisJCSAgLyogRkFMTFRIUk9VR0ggKi8KKyNlbmRpZgorCQljYXNlIFFVQUxJRklFUl9TVEFSOgorCQkgIC8qIFRoaXMgaGFzIGRpZmZlcmVudCBtZWFuaW5ncyBmb3IgcHJpbnQgYW5kIHNjYW4gKi8KKwkJICBpZiAoVFlQRV9QUklOVCA9PSB0eXBlKQorCQkgICAgeworCQkgICAgICAvKiBSZWFkIHdpdGggZnJvbSBwYXJhbWV0ZXIgKi8KKwkJICAgICAgZmxhZ3MgfD0gKEZMQUdTX1dJRFRIIHwgRkxBR1NfV0lEVEhfUEFSQU1FVEVSKTsKKwkJICAgICAgd2lkdGggPSBUcmlvR2V0UG9zaXRpb24oZm9ybWF0LCAmaW5kZXgpOworCQkgICAgICBpZiAod2lkdGggPT0gTk9fUE9TSVRJT04pCisJCQl7CisJCQkgIHBhcmFtZXRlclBvc2l0aW9uKys7CisJCQkgIGlmIChwb3NpdGlvbmFsKQorCQkJICAgIHdpZHRoID0gcGFyYW1ldGVyUG9zaXRpb247CisJCQkgIGVsc2UKKwkJCSAgICB7CisJCQkgICAgICB3aWR0aCA9IGN1cnJlbnRQYXJhbTsKKwkJCSAgICAgIGN1cnJlbnRQYXJhbSA9IHdpZHRoICsgMTsKKwkJCSAgICB9CisJCQl9CisJCSAgICAgIGVsc2UKKwkJCXsKKwkJCSAgaWYgKCEgcG9zaXRpb25hbCkKKwkJCSAgICBjdXJyZW50UGFyYW0gPSB3aWR0aCArIDE7CisJCQkgIGlmICh3aWR0aCA+IG1heFBhcmFtKQorCQkJICAgIG1heFBhcmFtID0gd2lkdGg7CisJCQl9CisJCSAgICAgIGlmIChjdXJyZW50UGFyYW0gPiBtYXhQYXJhbSkKKwkJCW1heFBhcmFtID0gY3VycmVudFBhcmFtOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgLyogU2NhbiwgYnV0IGRvIG5vdCBzdG9yZSByZXN1bHQgKi8KKwkJICAgICAgZmxhZ3MgfD0gRkxBR1NfSUdOT1JFOworCQkgICAgfQorCisJCSAgYnJlYWs7IC8qIFFVQUxJRklFUl9TVEFSICovCisKKwkJY2FzZSAnMCc6CisJCSAgaWYgKCEgKGZsYWdzICYgRkxBR1NfTEVGVEFESlVTVCkpCisJCSAgICBmbGFncyB8PSBGTEFHU19OSUxQQURESU5HOworCQkgIC8qIEZBTExUSFJPVUdIICovCisJCWNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOgorCQljYXNlICc1JzogY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6CisJCSAgZmxhZ3MgfD0gRkxBR1NfV0lEVEg7CisJCSAgLyogJmZvcm1hdFtpbmRleCAtIDFdIGlzIHVzZWQgdG8gInJld2luZCIgdGhlIHJlYWQKKwkJICAgKiBjaGFyYWN0ZXIgZnJvbSBmb3JtYXQKKwkJICAgKi8KKwkJICB3aWR0aCA9IHRyaW9fdG9fbG9uZygmZm9ybWF0W2luZGV4IC0gMV0sCisJCQkJICAgICAgICZ0bXBmb3JtYXQsCisJCQkJICAgICAgIEJBU0VfREVDSU1BTCk7CisJCSAgaW5kZXggPSAoaW50KSh0bXBmb3JtYXQgLSBmb3JtYXQpOworCQkgIGJyZWFrOworCisJCWNhc2UgUVVBTElGSUVSX1NIT1JUOgorCQkgIGlmIChmbGFncyAmIEZMQUdTX1NIT1JUU0hPUlQpCisJCSAgICByZXR1cm4gVFJJT19FUlJPUl9SRVRVUk4oVFJJT19FSU5WQUwsIGluZGV4KTsKKwkJICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX1NIT1JUKQorCQkgICAgZmxhZ3MgfD0gRkxBR1NfU0hPUlRTSE9SVDsKKwkJICBlbHNlCisJCSAgICBmbGFncyB8PSBGTEFHU19TSE9SVDsKKwkJICBicmVhazsKKworCQljYXNlIFFVQUxJRklFUl9MT05HOgorCQkgIGlmIChmbGFncyAmIEZMQUdTX1FVQUQpCisJCSAgICByZXR1cm4gVFJJT19FUlJPUl9SRVRVUk4oVFJJT19FSU5WQUwsIGluZGV4KTsKKwkJICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX0xPTkcpCisJCSAgICBmbGFncyB8PSBGTEFHU19RVUFEOworCQkgIGVsc2UKKwkJICAgIGZsYWdzIHw9IEZMQUdTX0xPTkc7CisJCSAgYnJlYWs7CisKKwkJY2FzZSBRVUFMSUZJRVJfTE9OR19VUFBFUjoKKwkJICBmbGFncyB8PSBGTEFHU19MT05HRE9VQkxFOworCQkgIGJyZWFrOworCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfU0laRV9UKQorCQljYXNlIFFVQUxJRklFUl9TSVpFX1Q6CisJCSAgZmxhZ3MgfD0gRkxBR1NfU0laRV9UOworCQkgIC8qIE1vZGlmeSBmbGFncyBmb3IgbGF0ZXIgdHJ1bmNhdGlvbiBvZiBudW1iZXIgKi8KKwkJICBpZiAoc2l6ZW9mKHNpemVfdCkgPT0gc2l6ZW9mKHRyaW9fdWxvbmdsb25nX3QpKQorCQkgICAgZmxhZ3MgfD0gRkxBR1NfUVVBRDsKKwkJICBlbHNlIGlmIChzaXplb2Yoc2l6ZV90KSA9PSBzaXplb2YobG9uZykpCisJCSAgICBmbGFncyB8PSBGTEFHU19MT05HOworCQkgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QVFJESUZGX1QpCisJCWNhc2UgUVVBTElGSUVSX1BUUkRJRkZfVDoKKwkJICBmbGFncyB8PSBGTEFHU19QVFJESUZGX1Q7CisJCSAgaWYgKHNpemVvZihwdHJkaWZmX3QpID09IHNpemVvZih0cmlvX3Vsb25nbG9uZ190KSkKKwkJICAgIGZsYWdzIHw9IEZMQUdTX1FVQUQ7CisJCSAgZWxzZSBpZiAoc2l6ZW9mKHB0cmRpZmZfdCkgPT0gc2l6ZW9mKGxvbmcpKQorCQkgICAgZmxhZ3MgfD0gRkxBR1NfTE9ORzsKKwkJICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfSU5UTUFYX1QpCisJCWNhc2UgUVVBTElGSUVSX0lOVE1BWF9UOgorCQkgIGZsYWdzIHw9IEZMQUdTX0lOVE1BWF9UOworCQkgIGlmIChzaXplb2YodHJpb19pbnRtYXhfdCkgPT0gc2l6ZW9mKHRyaW9fdWxvbmdsb25nX3QpKQorCQkgICAgZmxhZ3MgfD0gRkxBR1NfUVVBRDsKKwkJICBlbHNlIGlmIChzaXplb2YodHJpb19pbnRtYXhfdCkgPT0gc2l6ZW9mKGxvbmcpKQorCQkgICAgZmxhZ3MgfD0gRkxBR1NfTE9ORzsKKwkJICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfUVVBRCkKKwkJY2FzZSBRVUFMSUZJRVJfUVVBRDoKKwkJICBmbGFncyB8PSBGTEFHU19RVUFEOworCQkgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9GSVhFRF9TSVpFKQorCQljYXNlIFFVQUxJRklFUl9GSVhFRF9TSVpFOgorCQkgIGlmIChmbGFncyAmIEZMQUdTX0ZJWEVEX1NJWkUpCisJCSAgICByZXR1cm4gVFJJT19FUlJPUl9SRVRVUk4oVFJJT19FSU5WQUwsIGluZGV4KTsKKworCQkgIGlmIChmbGFncyAmIChGTEFHU19BTExfU0laRVMgfCBGTEFHU19MT05HRE9VQkxFIHwKKwkJCSAgICAgICBGTEFHU19XSURFQ0hBUiB8IEZMQUdTX1ZBUlNJWkVfUEFSQU1FVEVSKSkKKwkJICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VJTlZBTCwgaW5kZXgpOworCisJCSAgaWYgKChmb3JtYXRbaW5kZXhdID09ICc2JykgJiYKKwkJICAgICAgKGZvcm1hdFtpbmRleCArIDFdID09ICc0JykpCisJCSAgICB7CisJCSAgICAgIHZhcnNpemUgPSBzaXplb2YodHJpb19pbnQ2NF90KTsKKwkJICAgICAgaW5kZXggKz0gMjsKKwkJICAgIH0KKwkJICBlbHNlIGlmICgoZm9ybWF0W2luZGV4XSA9PSAnMycpICYmCisJCQkgICAoZm9ybWF0W2luZGV4ICsgMV0gPT0gJzInKSkKKwkJICAgIHsKKwkJICAgICAgdmFyc2l6ZSA9IHNpemVvZih0cmlvX2ludDMyX3QpOworCQkgICAgICBpbmRleCArPSAyOworCQkgICAgfQorCQkgIGVsc2UgaWYgKChmb3JtYXRbaW5kZXhdID09ICcxJykgJiYKKwkJCSAgIChmb3JtYXRbaW5kZXggKyAxXSA9PSAnNicpKQorCQkgICAgeworCQkgICAgICB2YXJzaXplID0gc2l6ZW9mKHRyaW9faW50MTZfdCk7CisJCSAgICAgIGluZGV4ICs9IDI7CisJCSAgICB9CisJCSAgZWxzZSBpZiAoZm9ybWF0W2luZGV4XSA9PSAnOCcpCisJCSAgICB7CisJCSAgICAgIHZhcnNpemUgPSBzaXplb2YodHJpb19pbnQ4X3QpOworCQkgICAgICBpbmRleCsrOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VJTlZBTCwgaW5kZXgpOworCQkgIAorCQkgIGZsYWdzIHw9IEZMQUdTX0ZJWEVEX1NJWkU7CisJCSAgYnJlYWs7CisjZW5kaWYKKworI2lmIGRlZmluZWQoUVVBTElGSUVSX1dJREVDSEFSKQorCQljYXNlIFFVQUxJRklFUl9XSURFQ0hBUjoKKwkJICBmbGFncyB8PSBGTEFHU19XSURFQ0hBUjsKKwkJICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfU0laRV9UX1VQUEVSKQorCQljYXNlIFFVQUxJRklFUl9TSVpFX1RfVVBQRVI6CisJCSAgYnJlYWs7CisjZW5kaWYKKworI2lmIGRlZmluZWQoUVVBTElGSUVSX1FVT1RFKQorCQljYXNlIFFVQUxJRklFUl9RVU9URToKKwkJICBmbGFncyB8PSBGTEFHU19RVU9URTsKKwkJICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfU1RJQ0tZKQorCQljYXNlIFFVQUxJRklFUl9TVElDS1k6CisJCSAgZmxhZ3MgfD0gRkxBR1NfU1RJQ0tZOworCQkgIGdvdFN0aWNreSA9IFRSVUU7CisJCSAgYnJlYWs7CisjZW5kaWYKKwkJICAKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9WQVJTSVpFKQorCQljYXNlIFFVQUxJRklFUl9WQVJTSVpFOgorCQkgIGZsYWdzIHw9IEZMQUdTX1ZBUlNJWkVfUEFSQU1FVEVSOworCQkgIHBhcmFtZXRlclBvc2l0aW9uKys7CisJCSAgaWYgKHBvc2l0aW9uYWwpCisJCSAgICB2YXJzaXplID0gcGFyYW1ldGVyUG9zaXRpb247CisJCSAgZWxzZQorCQkgICAgeworCQkgICAgICB2YXJzaXplID0gY3VycmVudFBhcmFtOworCQkgICAgICBjdXJyZW50UGFyYW0gPSB2YXJzaXplICsgMTsKKwkJICAgIH0KKwkJICBpZiAoY3VycmVudFBhcmFtID4gbWF4UGFyYW0pCisJCSAgICBtYXhQYXJhbSA9IGN1cnJlbnRQYXJhbTsKKwkJICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfUk9VTkRJTkdfVVBQRVIpCisJCWNhc2UgUVVBTElGSUVSX1JPVU5ESU5HX1VQUEVSOgorCQkgIGZsYWdzIHw9IEZMQUdTX1JPVU5ESU5HOworCQkgIGJyZWFrOworI2VuZGlmCisKKwkJZGVmYXVsdDoKKwkJICAvKiBCYWlsIG91dCBjb21wbGV0ZWx5IHRvIG1ha2UgdGhlIGVycm9yIG1vcmUgb2J2aW91cyAqLworICAgICAgICAgICAgICAgICAgcmV0dXJuIFRSSU9fRVJST1JfUkVUVVJOKFRSSU9fRUlOVkFMLCBpbmRleCk7CisJCX0KKwkgICAgfSAvKiB3aGlsZSBxdWFsaWZpZXIgKi8KKworCSAgLyoKKwkgICAqIFBhcmFtZXRlcnMgb25seSBuZWVkIHRoZSB0eXBlIGFuZCB2YWx1ZS4gVGhlIHZhbHVlIGlzCisJICAgKiByZWFkIGxhdGVyLgorCSAgICovCisJICBpZiAoZmxhZ3MgJiBGTEFHU19XSURUSF9QQVJBTUVURVIpCisJICAgIHsKKwkgICAgICB1c2VkRW50cmllc1t3aWR0aF0gKz0gMTsKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10udHlwZSA9IEZPUk1BVF9QQVJBTUVURVI7CisJICAgICAgcGFyYW1ldGVyc1twb3NdLmZsYWdzID0gMDsKKwkgICAgICBpbmRpY2VzW3dpZHRoXSA9IHBvczsKKwkgICAgICB3aWR0aCA9IHBvcysrOworCSAgICB9CisJICBpZiAoZmxhZ3MgJiBGTEFHU19QUkVDSVNJT05fUEFSQU1FVEVSKQorCSAgICB7CisJICAgICAgdXNlZEVudHJpZXNbcHJlY2lzaW9uXSArPSAxOworCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX1BBUkFNRVRFUjsKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10uZmxhZ3MgPSAwOworCSAgICAgIGluZGljZXNbcHJlY2lzaW9uXSA9IHBvczsKKwkgICAgICBwcmVjaXNpb24gPSBwb3MrKzsKKwkgICAgfQorCSAgaWYgKGZsYWdzICYgRkxBR1NfQkFTRV9QQVJBTUVURVIpCisJICAgIHsKKwkgICAgICB1c2VkRW50cmllc1tiYXNlXSArPSAxOworCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX1BBUkFNRVRFUjsKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10uZmxhZ3MgPSAwOworCSAgICAgIGluZGljZXNbYmFzZV0gPSBwb3M7CisJICAgICAgYmFzZSA9IHBvcysrOworCSAgICB9CisJICBpZiAoZmxhZ3MgJiBGTEFHU19WQVJTSVpFX1BBUkFNRVRFUikKKwkgICAgeworCSAgICAgIHVzZWRFbnRyaWVzW3ZhcnNpemVdICs9IDE7CisJICAgICAgcGFyYW1ldGVyc1twb3NdLnR5cGUgPSBGT1JNQVRfUEFSQU1FVEVSOworCSAgICAgIHBhcmFtZXRlcnNbcG9zXS5mbGFncyA9IDA7CisJICAgICAgaW5kaWNlc1t2YXJzaXplXSA9IHBvczsKKwkgICAgICB2YXJzaXplID0gcG9zKys7CisJICAgIH0KKwkgIAorCSAgaW5kaWNlc1tjdXJyZW50UGFyYW1dID0gcG9zOworCSAgCisJICBzd2l0Y2ggKGZvcm1hdFtpbmRleCsrXSkKKwkgICAgeworI2lmIGRlZmluZWQoU1BFQ0lGSUVSX0NIQVJfVVBQRVIpCisJICAgIGNhc2UgU1BFQ0lGSUVSX0NIQVJfVVBQRVI6CisJICAgICAgZmxhZ3MgfD0gRkxBR1NfV0lERUNIQVI7CisJICAgICAgLyogRkFMTFRIUk9VR0ggKi8KKyNlbmRpZgorCSAgICBjYXNlIFNQRUNJRklFUl9DSEFSOgorCSAgICAgIGlmIChmbGFncyAmIEZMQUdTX0xPTkcpCisJCWZsYWdzIHw9IEZMQUdTX1dJREVDSEFSOworCSAgICAgIGVsc2UgaWYgKGZsYWdzICYgRkxBR1NfU0hPUlQpCisJCWZsYWdzICY9IH5GTEFHU19XSURFQ0hBUjsKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10udHlwZSA9IEZPUk1BVF9DSEFSOworCSAgICAgIGJyZWFrOworCisjaWYgZGVmaW5lZChTUEVDSUZJRVJfU1RSSU5HX1VQUEVSKQorCSAgICBjYXNlIFNQRUNJRklFUl9TVFJJTkdfVVBQRVI6CisJICAgICAgZmxhZ3MgfD0gRkxBR1NfV0lERUNIQVI7CisJICAgICAgLyogRkFMTFRIUk9VR0ggKi8KKyNlbmRpZgorCSAgICBjYXNlIFNQRUNJRklFUl9TVFJJTkc6CisJICAgICAgaWYgKGZsYWdzICYgRkxBR1NfTE9ORykKKwkJZmxhZ3MgfD0gRkxBR1NfV0lERUNIQVI7CisJICAgICAgZWxzZSBpZiAoZmxhZ3MgJiBGTEFHU19TSE9SVCkKKwkJZmxhZ3MgJj0gfkZMQUdTX1dJREVDSEFSOworCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX1NUUklORzsKKwkgICAgICBicmVhazsKKworCSAgICBjYXNlIFNQRUNJRklFUl9HUk9VUDoKKwkgICAgICBpZiAoVFlQRV9TQ0FOID09IHR5cGUpCisJCXsKKwkJICBpbnQgZGVwdGggPSAxOworCQkgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX0dST1VQOworCQkgIGlmIChmb3JtYXRbaW5kZXhdID09IFFVQUxJRklFUl9DSVJDVU1GTEVYKQorCQkgICAgaW5kZXgrKzsKKwkJICBpZiAoZm9ybWF0W2luZGV4XSA9PSBTUEVDSUZJRVJfVU5HUk9VUCkKKwkJICAgIGluZGV4Kys7CisJCSAgaWYgKGZvcm1hdFtpbmRleF0gPT0gUVVBTElGSUVSX01JTlVTKQorCQkgICAgaW5kZXgrKzsKKwkJICAvKiBTa2lwIG5lc3RlZCBicmFja2V0cyAqLworCQkgIHdoaWxlIChmb3JtYXRbaW5kZXhdICE9IE5JTCkKKwkJICAgIHsKKwkJICAgICAgaWYgKGZvcm1hdFtpbmRleF0gPT0gU1BFQ0lGSUVSX0dST1VQKQorCQkJeworCQkJICBkZXB0aCsrOworCQkJfQorCQkgICAgICBlbHNlIGlmIChmb3JtYXRbaW5kZXhdID09IFNQRUNJRklFUl9VTkdST1VQKQorCQkJeworCQkJICBpZiAoLS1kZXB0aCA8PSAwKQorCQkJICAgIHsKKwkJCSAgICAgIGluZGV4Kys7CisJCQkgICAgICBicmVhazsKKwkJCSAgICB9CisJCQl9CisJCSAgICAgIGluZGV4Kys7CisJCSAgICB9CisJCX0KKwkgICAgICBicmVhazsKKwkgICAgICAKKwkgICAgY2FzZSBTUEVDSUZJRVJfSU5URUdFUjoKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10udHlwZSA9IEZPUk1BVF9JTlQ7CisJICAgICAgYnJlYWs7CisJICAgICAgCisJICAgIGNhc2UgU1BFQ0lGSUVSX1VOU0lHTkVEOgorCSAgICAgIGZsYWdzIHw9IEZMQUdTX1VOU0lHTkVEOworCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX0lOVDsKKwkgICAgICBicmVhazsKKworCSAgICBjYXNlIFNQRUNJRklFUl9ERUNJTUFMOgorCSAgICAgIC8qIERpc2FibGUgYmFzZSBtb2RpZmllciAqLworCSAgICAgIGZsYWdzICY9IH5GTEFHU19CQVNFX1BBUkFNRVRFUjsKKwkgICAgICBiYXNlID0gQkFTRV9ERUNJTUFMOworCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX0lOVDsKKwkgICAgICBicmVhazsKKworCSAgICBjYXNlIFNQRUNJRklFUl9PQ1RBTDoKKwkgICAgICBmbGFncyB8PSBGTEFHU19VTlNJR05FRDsKKwkgICAgICBmbGFncyAmPSB+RkxBR1NfQkFTRV9QQVJBTUVURVI7CisJICAgICAgYmFzZSA9IEJBU0VfT0NUQUw7CisJICAgICAgcGFyYW1ldGVyc1twb3NdLnR5cGUgPSBGT1JNQVRfSU5UOworCSAgICAgIGJyZWFrOworCisjaWYgZGVmaW5lZChTUEVDSUZJRVJfQklOQVJZKQorCSAgICBjYXNlIFNQRUNJRklFUl9CSU5BUllfVVBQRVI6CisJICAgICAgZmxhZ3MgfD0gRkxBR1NfVVBQRVI7CisJICAgICAgLyogRkFMTFRIUk9VR0ggKi8KKwkgICAgY2FzZSBTUEVDSUZJRVJfQklOQVJZOgorCSAgICAgIGZsYWdzIHw9IEZMQUdTX05JTFBBRERJTkc7CisJICAgICAgZmxhZ3MgJj0gfkZMQUdTX0JBU0VfUEFSQU1FVEVSOworCSAgICAgIGJhc2UgPSBCQVNFX0JJTkFSWTsKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10udHlwZSA9IEZPUk1BVF9JTlQ7CisJICAgICAgYnJlYWs7CisjZW5kaWYKKworCSAgICBjYXNlIFNQRUNJRklFUl9IRVhfVVBQRVI6CisJICAgICAgZmxhZ3MgfD0gRkxBR1NfVVBQRVI7CisJICAgICAgLyogRkFMTFRIUk9VR0ggKi8KKwkgICAgY2FzZSBTUEVDSUZJRVJfSEVYOgorCSAgICAgIGZsYWdzIHw9IEZMQUdTX1VOU0lHTkVEOworCSAgICAgIGZsYWdzICY9IH5GTEFHU19CQVNFX1BBUkFNRVRFUjsKKwkgICAgICBiYXNlID0gQkFTRV9IRVg7CisJICAgICAgcGFyYW1ldGVyc1twb3NdLnR5cGUgPSBGT1JNQVRfSU5UOworCSAgICAgIGJyZWFrOworCisJICAgIGNhc2UgU1BFQ0lGSUVSX0ZMT0FUX0VfVVBQRVI6CisJICAgICAgZmxhZ3MgfD0gRkxBR1NfVVBQRVI7CisJICAgICAgLyogRkFMTFRIUk9VR0ggKi8KKwkgICAgY2FzZSBTUEVDSUZJRVJfRkxPQVRfRToKKwkgICAgICBmbGFncyB8PSBGTEFHU19GTE9BVF9FOworCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX0RPVUJMRTsKKwkgICAgICBicmVhazsKKworCSAgICBjYXNlIFNQRUNJRklFUl9GTE9BVF9HX1VQUEVSOgorCSAgICAgIGZsYWdzIHw9IEZMQUdTX1VQUEVSOworCSAgICAgIC8qIEZBTExUSFJPVUdIICovCisJICAgIGNhc2UgU1BFQ0lGSUVSX0ZMT0FUX0c6CisJICAgICAgZmxhZ3MgfD0gRkxBR1NfRkxPQVRfRzsKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10udHlwZSA9IEZPUk1BVF9ET1VCTEU7CisJICAgICAgYnJlYWs7CisKKwkgICAgY2FzZSBTUEVDSUZJRVJfRkxPQVRfRl9VUFBFUjoKKwkgICAgICBmbGFncyB8PSBGTEFHU19VUFBFUjsKKwkgICAgICAvKiBGQUxMVEhST1VHSCAqLworCSAgICBjYXNlIFNQRUNJRklFUl9GTE9BVF9GOgorCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX0RPVUJMRTsKKwkgICAgICBicmVhazsKKworCSAgICBjYXNlIFNQRUNJRklFUl9QT0lOVEVSOgorCSAgICAgIGlmIChzaXplb2YodHJpb19wb2ludGVyX3QpID09IHNpemVvZih0cmlvX3Vsb25nbG9uZ190KSkKKwkJZmxhZ3MgfD0gRkxBR1NfUVVBRDsKKwkgICAgICBlbHNlIGlmIChzaXplb2YodHJpb19wb2ludGVyX3QpID09IHNpemVvZihsb25nKSkKKwkJZmxhZ3MgfD0gRkxBR1NfTE9ORzsKKwkgICAgICBwYXJhbWV0ZXJzW3Bvc10udHlwZSA9IEZPUk1BVF9QT0lOVEVSOworCSAgICAgIGJyZWFrOworCisJICAgIGNhc2UgU1BFQ0lGSUVSX0NPVU5UOgorCSAgICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX0NPVU5UOworCSAgICAgIGJyZWFrOworCisjaWYgZGVmaW5lZChTUEVDSUZJRVJfSEVYRkxPQVQpCisjIGlmIGRlZmluZWQoU1BFQ0lGSUVSX0hFWEZMT0FUX1VQUEVSKQorCSAgICBjYXNlIFNQRUNJRklFUl9IRVhGTE9BVF9VUFBFUjoKKwkgICAgICBmbGFncyB8PSBGTEFHU19VUFBFUjsKKwkgICAgICAvKiBGQUxMVEhST1VHSCAqLworIyBlbmRpZgorCSAgICBjYXNlIFNQRUNJRklFUl9IRVhGTE9BVDoKKwkgICAgICBiYXNlID0gQkFTRV9IRVg7CisJICAgICAgcGFyYW1ldGVyc1twb3NdLnR5cGUgPSBGT1JNQVRfRE9VQkxFOworCSAgICAgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEZPUk1BVF9FUlJOTykKKwkgICAgY2FzZSBTUEVDSUZJRVJfRVJSTk86CisJICAgICAgcGFyYW1ldGVyc1twb3NdLnR5cGUgPSBGT1JNQVRfRVJSTk87CisJICAgICAgYnJlYWs7CisjZW5kaWYKKworI2lmIGRlZmluZWQoU1BFQ0lGSUVSX1VTRVJfREVGSU5FRF9CRUdJTikKKwkgICAgY2FzZSBTUEVDSUZJRVJfVVNFUl9ERUZJTkVEX0JFR0lOOgorCSAgICAgIHsKKwkJdW5zaWduZWQgaW50IG1heDsKKwkJaW50IHdpdGhvdXRfbmFtZXNwYWNlID0gVFJVRTsKKwkJCisJCXBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX1VTRVJfREVGSU5FRDsKKwkJcGFyYW1ldGVyc1twb3NdLnVzZXJfbmFtZVswXSA9IE5JTDsKKwkJdG1wZm9ybWF0ID0gKGNoYXIgKikmZm9ybWF0W2luZGV4XTsKKwkgICAgICAKKwkJd2hpbGUgKChjaCA9IGZvcm1hdFtpbmRleF0pKQorCQkgIHsKKwkJICAgIGluZGV4Kys7CisJCSAgICBpZiAoY2ggPT0gU1BFQ0lGSUVSX1VTRVJfREVGSU5FRF9FTkQpCisJCSAgICAgIHsKKwkJCWlmICh3aXRob3V0X25hbWVzcGFjZSkKKwkJCSAgeworCQkJICAgIC8qIFdlIG11c3QgZ2V0IHRoZSBoYW5kbGUgZmlyc3QgKi8KKwkJCSAgICBwYXJhbWV0ZXJzW3Bvc10udHlwZSA9IEZPUk1BVF9QQVJBTUVURVI7CisJCQkgICAgcGFyYW1ldGVyc1twb3NdLmluZGV4QWZ0ZXJTcGVjaWZpZXIgPSBpbmRleDsKKwkJCSAgICBwYXJhbWV0ZXJzW3Bvc10uZmxhZ3MgPSBGTEFHU19VU0VSX0RFRklORUQ7CisJCQkgICAgLyogQWRqdXN0IHBhcmFtZXRlcnMgZm9yIGluc2VydGlvbiBvZiBuZXcgb25lICovCisJCQkgICAgcG9zKys7CisJCQkgICAgdXNlZEVudHJpZXNbY3VycmVudFBhcmFtXSArPSAxOworCQkJICAgIHBhcmFtZXRlcnNbcG9zXS50eXBlID0gRk9STUFUX1VTRVJfREVGSU5FRDsKKwkJCSAgICBjdXJyZW50UGFyYW0rKzsKKwkJCSAgICBpbmRpY2VzW2N1cnJlbnRQYXJhbV0gPSBwb3M7CisJCQkgICAgaWYgKGN1cnJlbnRQYXJhbSA+IG1heFBhcmFtKQorCQkJICAgICAgbWF4UGFyYW0gPSBjdXJyZW50UGFyYW07CisJCQkgIH0KKwkJCS8qIENvcHkgdGhlIHVzZXIgZGF0YSAqLworCQkJbWF4ID0gKHVuc2lnbmVkIGludCkoJmZvcm1hdFtpbmRleF0gLSB0bXBmb3JtYXQpOworCQkJaWYgKG1heCA+IE1BWF9VU0VSX0RBVEEpCisJCQkgIG1heCA9IE1BWF9VU0VSX0RBVEE7CisJCQl0cmlvX2NvcHlfbWF4KHBhcmFtZXRlcnNbcG9zXS51c2VyX2RhdGEsCisJCQkJICAgICAgbWF4LAorCQkJCSAgICAgIHRtcGZvcm1hdCk7CisJCQlicmVhazsgLyogd2hpbGUgKi8KKwkJICAgICAgfQorCQkgICAgaWYgKGNoID09IFNQRUNJRklFUl9VU0VSX0RFRklORURfU0VQQVJBVE9SKQorCQkgICAgICB7CisJCQl3aXRob3V0X25hbWVzcGFjZSA9IEZBTFNFOworCQkJLyogQ29weSB0aGUgbmFtZXNwYWNlIGZvciBsYXRlciBsb29raW5nLXVwICovCisJCQltYXggPSAoaW50KSgmZm9ybWF0W2luZGV4XSAtIHRtcGZvcm1hdCk7CisJCQlpZiAobWF4ID4gTUFYX1VTRVJfTkFNRSkKKwkJCSAgbWF4ID0gTUFYX1VTRVJfTkFNRTsKKwkJCXRyaW9fY29weV9tYXgocGFyYW1ldGVyc1twb3NdLnVzZXJfbmFtZSwKKwkJCQkgICAgICBtYXgsCisJCQkJICAgICAgdG1wZm9ybWF0KTsKKwkJCXRtcGZvcm1hdCA9IChjaGFyICopJmZvcm1hdFtpbmRleF07CisJCSAgICAgIH0KKwkJICB9CisJCWlmIChjaCAhPSBTUEVDSUZJRVJfVVNFUl9ERUZJTkVEX0VORCkKKwkJICByZXR1cm4gVFJJT19FUlJPUl9SRVRVUk4oVFJJT19FSU5WQUwsIGluZGV4KTsKKwkgICAgICB9CisJICAgICAgYnJlYWs7CisjZW5kaWYgLyogZGVmaW5lZChTUEVDSUZJRVJfVVNFUl9ERUZJTkVEX0JFR0lOKSAqLworCSAgICAgIAorCSAgICBkZWZhdWx0OgorCSAgICAgIC8qIEJhaWwgb3V0IGNvbXBsZXRlbHkgdG8gbWFrZSB0aGUgZXJyb3IgbW9yZSBvYnZpb3VzICovCisgICAgICAgICAgICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VJTlZBTCwgaW5kZXgpOworCSAgICB9CisKKwkgIC8qICBDb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoaXMgZW50cnkgaGFzIGJlZW4gdXNlZCAqLworCSAgdXNlZEVudHJpZXNbY3VycmVudFBhcmFtXSArPSAxOworCSAgCisJICAvKiBGaW5kIGxhc3Qgc3RpY2t5IHBhcmFtZXRlcnMgKi8KKwkgIGlmIChnb3RTdGlja3kgJiYgIShmbGFncyAmIEZMQUdTX1NUSUNLWSkpCisJICAgIHsKKwkgICAgICBmb3IgKGkgPSBwb3MgLSAxOyBpID49IDA7IGktLSkKKwkJeworCQkgIGlmIChwYXJhbWV0ZXJzW2ldLnR5cGUgPT0gRk9STUFUX1BBUkFNRVRFUikKKwkJICAgIGNvbnRpbnVlOworCQkgIGlmICgocGFyYW1ldGVyc1tpXS5mbGFncyAmIEZMQUdTX1NUSUNLWSkgJiYKKwkJICAgICAgKHBhcmFtZXRlcnNbaV0udHlwZSA9PSBwYXJhbWV0ZXJzW3Bvc10udHlwZSkpCisJCSAgICB7CisJCSAgICAgIC8qIERvIG5vdCBvdmVyd3JpdGUgY3VycmVudCBxdWFsaWZpZXJzICovCisJCSAgICAgIGZsYWdzIHw9IChwYXJhbWV0ZXJzW2ldLmZsYWdzICYgKHVuc2lnbmVkIGxvbmcpfkZMQUdTX1NUSUNLWSk7CisJCSAgICAgIGlmICh3aWR0aCA9PSBOT19XSURUSCkKKwkJCXdpZHRoID0gcGFyYW1ldGVyc1tpXS53aWR0aDsKKwkJICAgICAgaWYgKHByZWNpc2lvbiA9PSBOT19QUkVDSVNJT04pCisJCQlwcmVjaXNpb24gPSBwYXJhbWV0ZXJzW2ldLnByZWNpc2lvbjsKKwkJICAgICAgaWYgKGJhc2UgPT0gTk9fQkFTRSkKKwkJCWJhc2UgPSBwYXJhbWV0ZXJzW2ldLmJhc2U7CisJCSAgICAgIGJyZWFrOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgIAorCSAgcGFyYW1ldGVyc1twb3NdLmluZGV4QWZ0ZXJTcGVjaWZpZXIgPSBpbmRleDsKKwkgIHBhcmFtZXRlcnNbcG9zXS5mbGFncyA9IGZsYWdzOworCSAgcGFyYW1ldGVyc1twb3NdLndpZHRoID0gd2lkdGg7CisJICBwYXJhbWV0ZXJzW3Bvc10ucHJlY2lzaW9uID0gcHJlY2lzaW9uOworCSAgcGFyYW1ldGVyc1twb3NdLmJhc2UgPSAoYmFzZSA9PSBOT19CQVNFKSA/IEJBU0VfREVDSU1BTCA6IGJhc2U7CisJICBwYXJhbWV0ZXJzW3Bvc10udmFyc2l6ZSA9IHZhcnNpemU7CisJICBwb3MrKzsKKwkgIAorCSAgaWYgKCEgcG9zaXRpb25hbCkKKwkgICAgcGFyYW1ldGVyUG9zaXRpb24rKzsKKwkgIAorCX0gLyogaWYgaWRlbnRpZmllciAqLworICAgICAgCisgICAgfSAvKiB3aGlsZSBmb3JtYXQgY2hhcmFjdGVycyBsZWZ0ICovCisKKyAgZm9yIChudW0gPSAwOyBudW0gPD0gbWF4UGFyYW07IG51bSsrKQorICAgIHsKKyAgICAgIGlmICh1c2VkRW50cmllc1tudW1dICE9IDEpCisJeworCSAgaWYgKHVzZWRFbnRyaWVzW251bV0gPT0gMCkgLyogZ2FwIGRldGVjdGVkICovCisJICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VHQVAsIG51bSk7CisJICBlbHNlIC8qIGRvdWJsZSByZWZlcmVuY2VzIGRldGVjdGVkICovCisJICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VEQkxSRUYsIG51bSk7CisJfQorICAgICAgCisgICAgICBpID0gaW5kaWNlc1tudW1dOworCisgICAgICAvKgorICAgICAgICogRk9STUFUX1BBUkFNRVRFUlMgYXJlIG9ubHkgcHJlc2VudCBpZiB0aGV5IG11c3QgYmUgcmVhZCwKKyAgICAgICAqIHNvIGl0IG1ha2VzIG5vIHNlbnNlIHRvIGNoZWNrIHRoZSBpZ25vcmUgZmxhZyAoYmVzaWRlcywKKyAgICAgICAqIHRoZSBmbGFncyB2YXJpYWJsZSBpcyBub3Qgc2V0IGZvciB0aGF0IHBhcnRpY3VsYXIgdHlwZSkKKyAgICAgICAqLworICAgICAgaWYgKChwYXJhbWV0ZXJzW2ldLnR5cGUgIT0gRk9STUFUX1BBUkFNRVRFUikgJiYKKwkgIChwYXJhbWV0ZXJzW2ldLmZsYWdzICYgRkxBR1NfSUdOT1JFKSkKKwljb250aW51ZTsgLyogZm9yIGFsbCBhcmd1bWVudHMgKi8KKworICAgICAgLyoKKyAgICAgICAqIFRoZSBzdGFjayBhcmd1bWVudHMgYXJlIHJlYWQgYWNjb3JkaW5nIHRvIEFOU0kgQzg5CisgICAgICAgKiBkZWZhdWx0IGFyZ3VtZW50IHByb21vdGlvbnM6CisgICAgICAgKgorICAgICAgICogIGNoYXIgICAgICAgICAgID0gaW50CisgICAgICAgKiAgc2hvcnQgICAgICAgICAgPSBpbnQKKyAgICAgICAqICB1bnNpZ25lZCBjaGFyICA9IHVuc2lnbmVkIGludAorICAgICAgICogIHVuc2lnbmVkIHNob3J0ID0gdW5zaWduZWQgaW50CisgICAgICAgKiAgZmxvYXQgICAgICAgICAgPSBkb3VibGUKKyAgICAgICAqCisgICAgICAgKiBJbiBhZGRpdGlvbiB0byB0aGUgQU5TSSBDODkgdGhlc2UgdHlwZXMgYXJlIHJlYWQgKHRoZQorICAgICAgICogZGVmYXVsdCBhcmd1bWVudCBwcm9tb3Rpb25zIG9mIEM5OSBoYXMgbm90IGJlZW4KKyAgICAgICAqIGNvbnNpZGVyZWQgeWV0KQorICAgICAgICoKKyAgICAgICAqICBsb25nIGxvbmcKKyAgICAgICAqICBsb25nIGRvdWJsZQorICAgICAgICogIHNpemVfdAorICAgICAgICogIHB0cmRpZmZfdAorICAgICAgICogIGludG1heF90CisgICAgICAgKi8KKyAgICAgIHN3aXRjaCAocGFyYW1ldGVyc1tpXS50eXBlKQorCXsKKwljYXNlIEZPUk1BVF9HUk9VUDoKKwljYXNlIEZPUk1BVF9TVFJJTkc6CisjaWYgVFJJT19XSURFQ0hBUgorCSAgaWYgKGZsYWdzICYgRkxBR1NfV0lERUNIQVIpCisJICAgIHsKKwkgICAgICBwYXJhbWV0ZXJzW2ldLmRhdGEud3N0cmluZyA9IChhcmdhcnJheSA9PSBOVUxMKQorCQk/IHZhX2FyZygqYXJnbGlzdCwgdHJpb193Y2hhcl90ICopCisJCTogKHRyaW9fd2NoYXJfdCAqKShhcmdhcnJheVtudW1dKTsKKwkgICAgfQorCSAgZWxzZQorI2VuZGlmCisJICAgIHsKKwkgICAgICBwYXJhbWV0ZXJzW2ldLmRhdGEuc3RyaW5nID0gKGFyZ2FycmF5ID09IE5VTEwpCisJCT8gdmFfYXJnKCphcmdsaXN0LCBjaGFyICopCisJCTogKGNoYXIgKikoYXJnYXJyYXlbbnVtXSk7CisJICAgIH0KKwkgIGJyZWFrOworCisjaWYgZGVmaW5lZChGT1JNQVRfVVNFUl9ERUZJTkVEKQorCWNhc2UgRk9STUFUX1VTRVJfREVGSU5FRDoKKyNlbmRpZgorCWNhc2UgRk9STUFUX1BPSU5URVI6CisJY2FzZSBGT1JNQVRfQ09VTlQ6CisJY2FzZSBGT1JNQVRfVU5LTk9XTjoKKwkgIHBhcmFtZXRlcnNbaV0uZGF0YS5wb2ludGVyID0gKGFyZ2FycmF5ID09IE5VTEwpCisJICAgID8gdmFfYXJnKCphcmdsaXN0LCB0cmlvX3BvaW50ZXJfdCApCisJICAgIDogYXJnYXJyYXlbbnVtXTsKKwkgIGJyZWFrOworCisJY2FzZSBGT1JNQVRfQ0hBUjoKKwljYXNlIEZPUk1BVF9JTlQ6CisJICBpZiAoVFlQRV9TQ0FOID09IHR5cGUpCisJICAgIHsKKyAgICAgICAgICAgICAgaWYgKGFyZ2FycmF5ID09IE5VTEwpCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tpXS5kYXRhLnBvaW50ZXIgPSAKKyAgICAgICAgICAgICAgICAgICh0cmlvX3BvaW50ZXJfdCl2YV9hcmcoKmFyZ2xpc3QsIHRyaW9fcG9pbnRlcl90KTsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzW2ldLnR5cGUgPT0gRk9STUFUX0NIQVIpCisgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNbaV0uZGF0YS5wb2ludGVyID0KKyAgICAgICAgICAgICAgICAgICAgICAodHJpb19wb2ludGVyX3QpKChjaGFyICopYXJnYXJyYXlbbnVtXSk7CisgICAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXJhbWV0ZXJzW2ldLmZsYWdzICYgRkxBR1NfU0hPUlQpCisgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNbaV0uZGF0YS5wb2ludGVyID0KKyAgICAgICAgICAgICAgICAgICAgICAodHJpb19wb2ludGVyX3QpKChzaG9ydCAqKWFyZ2FycmF5W251bV0pOworICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2ldLmRhdGEucG9pbnRlciA9CisgICAgICAgICAgICAgICAgICAgICAgKHRyaW9fcG9pbnRlcl90KSgoaW50ICopYXJnYXJyYXlbbnVtXSk7CisgICAgICAgICAgICAgICAgfQorCSAgICB9CisJICBlbHNlCisJICAgIHsKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9WQVJTSVpFKSB8fCBkZWZpbmVkKFFVQUxJRklFUl9GSVhFRF9TSVpFKQorCSAgICAgIGlmIChwYXJhbWV0ZXJzW2ldLmZsYWdzCisJCSAgJiAoRkxBR1NfVkFSU0laRV9QQVJBTUVURVIgfCBGTEFHU19GSVhFRF9TSVpFKSkKKwkJeworCQkgIGlmIChwYXJhbWV0ZXJzW2ldLmZsYWdzICYgRkxBR1NfVkFSU0laRV9QQVJBTUVURVIpCisJCSAgICB7CisJCSAgICAgIC8qCisJCSAgICAgICAqIFZhcmlhYmxlIHNpemVzIGFyZSBtYXBwZWQgb250byB0aGUgZml4ZWQgc2l6ZXMsIGluCisJCSAgICAgICAqIGFjY29yZGFuY2Ugd2l0aCBpbnRlZ2VyIHByb21vdGlvbi4KKwkJICAgICAgICoKKwkJICAgICAgICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIG1heSBub3QgYmUgcG9ydGFibGUsIGFzIHdlCisJCSAgICAgICAqIG9ubHkgZ3Vlc3MgdGhlIHNpemUsIG5vdCB0aGUgbGF5b3V0IG9mIHRoZSBudW1iZXJzLgorCQkgICAgICAgKiBGb3IgZXhhbXBsZSwgaWYgaW50IGlzIGxpdHRsZS1lbmRpYW4sIGFuZCBsb25nIGlzCisJCSAgICAgICAqIGJpZy1lbmRpYW4sIHRoZW4gdGhpcyB3aWxsIGZhaWwuCisJCSAgICAgICAqLworCQkgICAgICB2YXJzaXplID0gKGludClwYXJhbWV0ZXJzW3BhcmFtZXRlcnNbaV0udmFyc2l6ZV0uZGF0YS5udW1iZXIuYXNfdW5zaWduZWQ7CisJCSAgICB9CisJCSAgZWxzZQorCQkgICAgeworCQkgICAgICAvKiBVc2VkIGZvciB0aGUgSTxiaXRzPiBtb2RpZmllcnMgKi8KKwkJICAgICAgdmFyc2l6ZSA9IHBhcmFtZXRlcnNbaV0udmFyc2l6ZTsKKwkJICAgIH0KKwkJICBwYXJhbWV0ZXJzW2ldLmZsYWdzICY9IH5GTEFHU19BTExfVkFSU0laRVM7CisJCSAgCisJCSAgaWYgKHZhcnNpemUgPD0gKGludClzaXplb2YoaW50KSkKKwkJICAgIDsKKwkJICBlbHNlIGlmICh2YXJzaXplIDw9IChpbnQpc2l6ZW9mKGxvbmcpKQorCQkgICAgcGFyYW1ldGVyc1tpXS5mbGFncyB8PSBGTEFHU19MT05HOworI2lmIGRlZmluZWQoUVVBTElGSUVSX0lOVE1BWF9UKQorCQkgIGVsc2UgaWYgKHZhcnNpemUgPD0gKGludClzaXplb2YodHJpb19sb25nbG9uZ190KSkKKwkJICAgIHBhcmFtZXRlcnNbaV0uZmxhZ3MgfD0gRkxBR1NfUVVBRDsKKwkJICBlbHNlCisJCSAgICBwYXJhbWV0ZXJzW2ldLmZsYWdzIHw9IEZMQUdTX0lOVE1BWF9UOworI2Vsc2UKKwkJICBlbHNlCisJCSAgICBwYXJhbWV0ZXJzW2ldLmZsYWdzIHw9IEZMQUdTX1FVQUQ7CisjZW5kaWYKKwkJfQorI2VuZGlmIC8qIGRlZmluZWQoUVVBTElGSUVSX1ZBUlNJWkUpICovCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfU0laRV9UKSB8fCBkZWZpbmVkKFFVQUxJRklFUl9TSVpFX1RfVVBQRVIpCisJICAgICAgaWYgKHBhcmFtZXRlcnNbaV0uZmxhZ3MgJiBGTEFHU19TSVpFX1QpCisJCXBhcmFtZXRlcnNbaV0uZGF0YS5udW1iZXIuYXNfdW5zaWduZWQgPSAoYXJnYXJyYXkgPT0gTlVMTCkKKwkJICA/ICh0cmlvX3VpbnRtYXhfdCl2YV9hcmcoKmFyZ2xpc3QsIHNpemVfdCkKKwkJICA6ICh0cmlvX3VpbnRtYXhfdCkoKigoc2l6ZV90ICopYXJnYXJyYXlbbnVtXSkpOworCSAgICAgIGVsc2UKKyNlbmRpZgorI2lmIGRlZmluZWQoUVVBTElGSUVSX1BUUkRJRkZfVCkKKwkgICAgICBpZiAocGFyYW1ldGVyc1tpXS5mbGFncyAmIEZMQUdTX1BUUkRJRkZfVCkKKwkJcGFyYW1ldGVyc1tpXS5kYXRhLm51bWJlci5hc191bnNpZ25lZCA9IChhcmdhcnJheSA9PSBOVUxMKQorCQkgID8gKHRyaW9fdWludG1heF90KXZhX2FyZygqYXJnbGlzdCwgcHRyZGlmZl90KQorCQkgIDogKHRyaW9fdWludG1heF90KSgqKChwdHJkaWZmX3QgKilhcmdhcnJheVtudW1dKSk7CisJICAgICAgZWxzZQorI2VuZGlmCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfSU5UTUFYX1QpCisJICAgICAgaWYgKHBhcmFtZXRlcnNbaV0uZmxhZ3MgJiBGTEFHU19JTlRNQVhfVCkKKwkJcGFyYW1ldGVyc1tpXS5kYXRhLm51bWJlci5hc191bnNpZ25lZCA9IChhcmdhcnJheSA9PSBOVUxMKQorCQkgID8gKHRyaW9fdWludG1heF90KXZhX2FyZygqYXJnbGlzdCwgdHJpb19pbnRtYXhfdCkKKwkJICA6ICh0cmlvX3VpbnRtYXhfdCkoKigodHJpb19pbnRtYXhfdCAqKWFyZ2FycmF5W251bV0pKTsKKwkgICAgICBlbHNlCisjZW5kaWYKKwkgICAgICBpZiAocGFyYW1ldGVyc1tpXS5mbGFncyAmIEZMQUdTX1FVQUQpCisJCXBhcmFtZXRlcnNbaV0uZGF0YS5udW1iZXIuYXNfdW5zaWduZWQgPSAoYXJnYXJyYXkgPT0gTlVMTCkKKwkJICA/ICh0cmlvX3VpbnRtYXhfdCl2YV9hcmcoKmFyZ2xpc3QsIHRyaW9fdWxvbmdsb25nX3QpCisJCSAgOiAodHJpb191aW50bWF4X3QpKCooKHRyaW9fdWxvbmdsb25nX3QgKilhcmdhcnJheVtudW1dKSk7CisJICAgICAgZWxzZSBpZiAocGFyYW1ldGVyc1tpXS5mbGFncyAmIEZMQUdTX0xPTkcpCisJCXBhcmFtZXRlcnNbaV0uZGF0YS5udW1iZXIuYXNfdW5zaWduZWQgPSAoYXJnYXJyYXkgPT0gTlVMTCkKKwkJICA/ICh0cmlvX3VpbnRtYXhfdCl2YV9hcmcoKmFyZ2xpc3QsIGxvbmcpCisJCSAgOiAodHJpb191aW50bWF4X3QpKCooKGxvbmcgKilhcmdhcnJheVtudW1dKSk7CisJICAgICAgZWxzZQorCQl7CisJCSAgaWYgKGFyZ2FycmF5ID09IE5VTEwpCisJCSAgICBwYXJhbWV0ZXJzW2ldLmRhdGEubnVtYmVyLmFzX3Vuc2lnbmVkID0gKHRyaW9fdWludG1heF90KXZhX2FyZygqYXJnbGlzdCwgaW50KTsKKwkJICBlbHNlCisJCSAgICB7CisJCSAgICAgIGlmIChwYXJhbWV0ZXJzW2ldLnR5cGUgPT0gRk9STUFUX0NIQVIpCisJCQlwYXJhbWV0ZXJzW2ldLmRhdGEubnVtYmVyLmFzX3Vuc2lnbmVkID0gKHRyaW9fdWludG1heF90KSgqKChjaGFyICopYXJnYXJyYXlbbnVtXSkpOworCQkgICAgICBlbHNlIGlmIChwYXJhbWV0ZXJzW2ldLmZsYWdzICYgRkxBR1NfU0hPUlQpCisJCQlwYXJhbWV0ZXJzW2ldLmRhdGEubnVtYmVyLmFzX3Vuc2lnbmVkID0gKHRyaW9fdWludG1heF90KSgqKChzaG9ydCAqKWFyZ2FycmF5W251bV0pKTsKKwkJICAgICAgZWxzZQorCQkJcGFyYW1ldGVyc1tpXS5kYXRhLm51bWJlci5hc191bnNpZ25lZCA9ICh0cmlvX3VpbnRtYXhfdCkoKigoaW50ICopYXJnYXJyYXlbbnVtXSkpOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgIGJyZWFrOworCisJY2FzZSBGT1JNQVRfUEFSQU1FVEVSOgorCSAgLyoKKwkgICAqIFRoZSBwYXJhbWV0ZXIgZm9yIHRoZSB1c2VyLWRlZmluZWQgc3BlY2lmaWVyIGlzIGEgcG9pbnRlciwKKwkgICAqIHdoZXJlYXMgdGhlIHJlc3QgKHdpZHRoLCBwcmVjaXNpb24sIGJhc2UpIHVzZXMgYW4gaW50ZWdlci4KKwkgICAqLworCSAgaWYgKHBhcmFtZXRlcnNbaV0uZmxhZ3MgJiBGTEFHU19VU0VSX0RFRklORUQpCisJICAgIHBhcmFtZXRlcnNbaV0uZGF0YS5wb2ludGVyID0gKGFyZ2FycmF5ID09IE5VTEwpCisJICAgICAgPyB2YV9hcmcoKmFyZ2xpc3QsIHRyaW9fcG9pbnRlcl90ICkKKwkgICAgICA6IGFyZ2FycmF5W251bV07CisJICBlbHNlCisJICAgIHBhcmFtZXRlcnNbaV0uZGF0YS5udW1iZXIuYXNfdW5zaWduZWQgPSAoYXJnYXJyYXkgPT0gTlVMTCkKKwkgICAgICA/ICh0cmlvX3VpbnRtYXhfdCl2YV9hcmcoKmFyZ2xpc3QsIGludCkKKwkgICAgICA6ICh0cmlvX3VpbnRtYXhfdCkoKigoaW50ICopYXJnYXJyYXlbbnVtXSkpOworCSAgYnJlYWs7CisKKwljYXNlIEZPUk1BVF9ET1VCTEU6CisJICBpZiAoVFlQRV9TQ0FOID09IHR5cGUpCisJICAgIHsKKwkgICAgICBpZiAocGFyYW1ldGVyc1tpXS5mbGFncyAmIEZMQUdTX0xPTkdET1VCTEUpCisJCXBhcmFtZXRlcnNbaV0uZGF0YS5sb25nZG91YmxlUG9pbnRlciA9IChhcmdhcnJheSA9PSBOVUxMKQorCQkgID8gdmFfYXJnKCphcmdsaXN0LCB0cmlvX2xvbmdfZG91YmxlX3QgKikKKwkJICA6ICh0cmlvX2xvbmdfZG91YmxlX3QgKilhcmdhcnJheVtudW1dOworCSAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisJCSAgaWYgKHBhcmFtZXRlcnNbaV0uZmxhZ3MgJiBGTEFHU19MT05HKQorCQkgICAgcGFyYW1ldGVyc1tpXS5kYXRhLmRvdWJsZVBvaW50ZXIgPSAoYXJnYXJyYXkgPT0gTlVMTCkKKwkJICAgICAgPyB2YV9hcmcoKmFyZ2xpc3QsIGRvdWJsZSAqKQorCQkgICAgICA6IChkb3VibGUgKilhcmdhcnJheVtudW1dOworCQkgIGVsc2UKKwkJICAgIHBhcmFtZXRlcnNbaV0uZGF0YS5kb3VibGVQb2ludGVyID0gKGFyZ2FycmF5ID09IE5VTEwpCisJCSAgICAgID8gKGRvdWJsZSAqKXZhX2FyZygqYXJnbGlzdCwgZmxvYXQgKikKKwkJICAgICAgOiAoZG91YmxlICopKChmbG9hdCAqKWFyZ2FycmF5W251bV0pOworICAgICAgICAgICAgICAgIH0KKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgaWYgKHBhcmFtZXRlcnNbaV0uZmxhZ3MgJiBGTEFHU19MT05HRE9VQkxFKQorCQlwYXJhbWV0ZXJzW2ldLmRhdGEubG9uZ2RvdWJsZU51bWJlciA9IChhcmdhcnJheSA9PSBOVUxMKQorCQkgID8gdmFfYXJnKCphcmdsaXN0LCB0cmlvX2xvbmdfZG91YmxlX3QpCisJCSAgOiAodHJpb19sb25nX2RvdWJsZV90KSgqKCh0cmlvX2xvbmdfZG91YmxlX3QgKilhcmdhcnJheVtudW1dKSk7CisJICAgICAgZWxzZQorCQl7CisJCSAgaWYgKGFyZ2FycmF5ID09IE5VTEwpCisJCSAgICBwYXJhbWV0ZXJzW2ldLmRhdGEubG9uZ2RvdWJsZU51bWJlciA9CisJCSAgICAgICh0cmlvX2xvbmdfZG91YmxlX3QpdmFfYXJnKCphcmdsaXN0LCBkb3VibGUpOworCQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgaWYgKHBhcmFtZXRlcnNbaV0uZmxhZ3MgJiBGTEFHU19TSE9SVCkKKwkJCXBhcmFtZXRlcnNbaV0uZGF0YS5sb25nZG91YmxlTnVtYmVyID0KKwkJCSAgKHRyaW9fbG9uZ19kb3VibGVfdCkoKigoZmxvYXQgKilhcmdhcnJheVtudW1dKSk7CisJCSAgICAgIGVsc2UKKwkJCXBhcmFtZXRlcnNbaV0uZGF0YS5sb25nZG91YmxlTnVtYmVyID0KKwkJCSAgKHRyaW9fbG9uZ19kb3VibGVfdCkoKigoZG91YmxlICopYXJnYXJyYXlbbnVtXSkpOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgIGJyZWFrOworCisjaWYgZGVmaW5lZChGT1JNQVRfRVJSTk8pCisJY2FzZSBGT1JNQVRfRVJSTk86CisJICBwYXJhbWV0ZXJzW2ldLmRhdGEuZXJyb3JOdW1iZXIgPSBzYXZlX2Vycm5vOworCSAgYnJlYWs7CisjZW5kaWYKKworCWRlZmF1bHQ6CisJICBicmVhazsKKwl9CisgICAgfSAvKiBmb3IgYWxsIHNwZWNpZmllcnMgKi8KKyAgcmV0dXJuIG51bTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZPUk1BVFRJTkcKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvV3JpdGVOdW1iZXIKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqICBPdXRwdXQgYSBudW1iZXIuCisgKiAgVGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBmdW5jdGlvbiBpcyBhIHJlc3VsdCBvZiB0aGUgY29tcGxleGl0eQorICogIG9mIHRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGZsYWdzLgorICovCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb1dyaXRlTnVtYmVyCitUUklPX0FSR1M2KChzZWxmLCBudW1iZXIsIGZsYWdzLCB3aWR0aCwgcHJlY2lzaW9uLCBiYXNlKSwKKwkgICB0cmlvX2NsYXNzX3QgKnNlbGYsCisJICAgdHJpb191aW50bWF4X3QgbnVtYmVyLAorCSAgIHRyaW9fZmxhZ3NfdCBmbGFncywKKwkgICBpbnQgd2lkdGgsCisJICAgaW50IHByZWNpc2lvbiwKKwkgICBpbnQgYmFzZSkKK3sKKyAgQk9PTEVBTl9UIGlzTmVnYXRpdmU7CisgIEJPT0xFQU5fVCBpc051bWJlclplcm87CisgIEJPT0xFQU5fVCBpc1ByZWNpc2lvblplcm87CisgIEJPT0xFQU5fVCBpZ25vcmVOdW1iZXI7CisgIGNoYXIgYnVmZmVyW01BWF9DSEFSU19JTih0cmlvX3VpbnRtYXhfdCkgKiAoMSArIE1BWF9MT0NBTEVfU0VQQVJBVE9SX0xFTkdUSCkgKyAxXTsKKyAgY2hhciAqYnVmZmVyZW5kOworICBjaGFyICpwb2ludGVyOworICBUUklPX0NPTlNUIGNoYXIgKmRpZ2l0czsKKyAgaW50IGk7CisgIGludCBsZW5ndGg7CisgIGNoYXIgKnA7CisgIGludCBjb3VudDsKKworICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+T3V0U3RyZWFtKSk7CisgIGFzc2VydCgoKGJhc2UgPj0gTUlOX0JBU0UpICYmIChiYXNlIDw9IE1BWF9CQVNFKSkgfHwgKGJhc2UgPT0gTk9fQkFTRSkpOworCisgIGRpZ2l0cyA9IChmbGFncyAmIEZMQUdTX1VQUEVSKSA/IGludGVybmFsRGlnaXRzVXBwZXIgOiBpbnRlcm5hbERpZ2l0c0xvd2VyOworICBpZiAoYmFzZSA9PSBOT19CQVNFKQorICAgIGJhc2UgPSBCQVNFX0RFQ0lNQUw7CisKKyAgaXNOdW1iZXJaZXJvID0gKG51bWJlciA9PSAwKTsKKyAgaXNQcmVjaXNpb25aZXJvID0gKHByZWNpc2lvbiA9PSAwKTsKKyAgaWdub3JlTnVtYmVyID0gKGlzTnVtYmVyWmVybworCQkgICYmIGlzUHJlY2lzaW9uWmVybworCQkgICYmICEoKGZsYWdzICYgRkxBR1NfQUxURVJOQVRJVkUpICYmIChiYXNlID09IEJBU0VfT0NUQUwpKSk7CisKKyAgaWYgKGZsYWdzICYgRkxBR1NfVU5TSUdORUQpCisgICAgeworICAgICAgaXNOZWdhdGl2ZSA9IEZBTFNFOworICAgICAgZmxhZ3MgJj0gfkZMQUdTX1NIT1dTSUdOOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGlzTmVnYXRpdmUgPSAoKHRyaW9faW50bWF4X3QpbnVtYmVyIDwgMCk7CisgICAgICBpZiAoaXNOZWdhdGl2ZSkKKwludW1iZXIgPSAtKCh0cmlvX2ludG1heF90KW51bWJlcik7CisgICAgfQorCisgIGlmIChmbGFncyAmIEZMQUdTX1FVQUQpCisgICAgbnVtYmVyICY9ICh0cmlvX3Vsb25nbG9uZ190KS0xOworICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX0xPTkcpCisgICAgbnVtYmVyICY9ICh1bnNpZ25lZCBsb25nKS0xOworICBlbHNlCisgICAgbnVtYmVyICY9ICh1bnNpZ25lZCBpbnQpLTE7CisgIAorICAvKiBCdWlsZCBudW1iZXIgKi8KKyAgcG9pbnRlciA9IGJ1ZmZlcmVuZCA9ICZidWZmZXJbc2l6ZW9mKGJ1ZmZlcikgLSAxXTsKKyAgKnBvaW50ZXItLSA9IE5JTDsKKyAgZm9yIChpID0gMTsgaSA8IChpbnQpc2l6ZW9mKGJ1ZmZlcik7IGkrKykKKyAgICB7CisgICAgICAqcG9pbnRlci0tID0gZGlnaXRzW251bWJlciAlIGJhc2VdOworICAgICAgbnVtYmVyIC89IGJhc2U7CisgICAgICBpZiAobnVtYmVyID09IDApCisJYnJlYWs7CisKKyAgICAgIGlmICgoZmxhZ3MgJiBGTEFHU19RVU9URSkgJiYgVHJpb0ZvbGxvd2VkQnlTZXBhcmF0b3IoaSArIDEpKQorCXsKKwkgIC8qCisJICAgKiBXZSBhcmUgYnVpbGRpbmcgdGhlIG51bWJlciBmcm9tIHRoZSBsZWFzdCBzaWduaWZpY2FudAorCSAgICogdG8gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgZGlnaXQsIHNvIHdlIGhhdmUgdG8gY29weSB0aGUKKwkgICAqIHRob3VzYW5kIHNlcGFyYXRvciBiYWNrd2FyZHMKKwkgICAqLworCSAgbGVuZ3RoID0gaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvckxlbmd0aDsKKwkgIGlmICgoKGludCkocG9pbnRlciAtIGJ1ZmZlcikgLSBsZW5ndGgpID4gMCkKKwkgICAgeworCSAgICAgIHAgPSAmaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvcltsZW5ndGggLSAxXTsKKwkgICAgICB3aGlsZSAobGVuZ3RoLS0gPiAwKQorCQkqcG9pbnRlci0tID0gKnAtLTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgaWYgKCEgaWdub3JlTnVtYmVyKQorICAgIHsKKyAgICAgIC8qIEFkanVzdCB3aWR0aCAqLworICAgICAgd2lkdGggLT0gKGJ1ZmZlcmVuZCAtIHBvaW50ZXIpIC0gMTsKKyAgICB9CisKKyAgLyogQWRqdXN0IHByZWNpc2lvbiAqLworICBpZiAoTk9fUFJFQ0lTSU9OICE9IHByZWNpc2lvbikKKyAgICB7CisgICAgICBwcmVjaXNpb24gLT0gKGJ1ZmZlcmVuZCAtIHBvaW50ZXIpIC0gMTsKKyAgICAgIGlmIChwcmVjaXNpb24gPCAwKQorCXByZWNpc2lvbiA9IDA7CisgICAgICBmbGFncyB8PSBGTEFHU19OSUxQQURESU5HOworICAgIH0KKworICAvKiBDYWxjdWxhdGUgcGFkZGluZyAqLworICBjb3VudCA9ICghICgoZmxhZ3MgJiBGTEFHU19MRUZUQURKVVNUKSB8fCAocHJlY2lzaW9uID09IE5PX1BSRUNJU0lPTikpKQorICAgID8gcHJlY2lzaW9uCisgICAgOiAwOworICAKKyAgLyogQWRqdXN0IHdpZHRoIGZ1cnRoZXIgKi8KKyAgaWYgKGlzTmVnYXRpdmUgfHwgKGZsYWdzICYgRkxBR1NfU0hPV1NJR04pIHx8IChmbGFncyAmIEZMQUdTX1NQQUNFKSkKKyAgICB3aWR0aC0tOworICBpZiAoKGZsYWdzICYgRkxBR1NfQUxURVJOQVRJVkUpICYmICFpc051bWJlclplcm8pCisgICAgeworICAgICAgc3dpdGNoIChiYXNlKQorCXsKKwljYXNlIEJBU0VfQklOQVJZOgorCWNhc2UgQkFTRV9IRVg6CisJICB3aWR0aCAtPSAyOworCSAgYnJlYWs7CisJY2FzZSBCQVNFX09DVEFMOgorCSAgaWYgKCEoZmxhZ3MgJiBGTEFHU19OSUxQQURESU5HKSB8fCAoY291bnQgPT0gMCkpCisJICAgIHdpZHRoLS07CisJICBicmVhazsKKwlkZWZhdWx0OgorCSAgYnJlYWs7CisJfQorICAgIH0KKworICAvKiBPdXRwdXQgcHJlZml4ZXMgc3BhY2VzIGlmIG5lZWRlZCAqLworICBpZiAoISAoKGZsYWdzICYgRkxBR1NfTEVGVEFESlVTVCkgfHwKKwkgKChmbGFncyAmIEZMQUdTX05JTFBBRERJTkcpICYmIChwcmVjaXNpb24gPT0gTk9fUFJFQ0lTSU9OKSkpKQorICAgIHsKKyAgICAgIHdoaWxlICh3aWR0aC0tID4gY291bnQpCisJc2VsZi0+T3V0U3RyZWFtKHNlbGYsIENIQVJfQURKVVNUKTsKKyAgICB9CisKKyAgLyogd2lkdGggaGFzIGJlZW4gYWRqdXN0ZWQgZm9yIHNpZ25zIGFuZCBhbHRlcm5hdGl2ZXMgKi8KKyAgaWYgKGlzTmVnYXRpdmUpCisgICAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsICctJyk7CisgIGVsc2UgaWYgKGZsYWdzICYgRkxBR1NfU0hPV1NJR04pCisgICAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsICcrJyk7CisgIGVsc2UgaWYgKGZsYWdzICYgRkxBR1NfU1BBQ0UpCisgICAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsICcgJyk7CisKKyAgLyogUHJlZml4IGlzIG5vdCB3cml0dGVuIHdoZW4gdGhlIHZhbHVlIGlzIHplcm8gKi8KKyAgaWYgKChmbGFncyAmIEZMQUdTX0FMVEVSTkFUSVZFKSAmJiAhaXNOdW1iZXJaZXJvKQorICAgIHsKKyAgICAgIHN3aXRjaCAoYmFzZSkKKwl7CisJY2FzZSBCQVNFX0JJTkFSWToKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCAnMCcpOworCSAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsIChmbGFncyAmIEZMQUdTX1VQUEVSKSA/ICdCJyA6ICdiJyk7CisJICBicmVhazsKKworCWNhc2UgQkFTRV9PQ1RBTDoKKwkgIGlmICghKGZsYWdzICYgRkxBR1NfTklMUEFERElORykgfHwgKGNvdW50ID09IDApKQorCSAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJzAnKTsKKwkgIGJyZWFrOworCisJY2FzZSBCQVNFX0hFWDoKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCAnMCcpOworCSAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsIChmbGFncyAmIEZMQUdTX1VQUEVSKSA/ICdYJyA6ICd4Jyk7CisJICBicmVhazsKKworCWRlZmF1bHQ6CisJICBicmVhazsKKwl9IC8qIHN3aXRjaCBiYXNlICovCisgICAgfQorCisgIC8qIE91dHB1dCBwcmVmaXhlZCB6ZXJvIHBhZGRpbmcgaWYgbmVlZGVkICovCisgIGlmIChmbGFncyAmIEZMQUdTX05JTFBBRERJTkcpCisgICAgeworICAgICAgaWYgKHByZWNpc2lvbiA9PSBOT19QUkVDSVNJT04pCisJcHJlY2lzaW9uID0gd2lkdGg7CisgICAgICB3aGlsZSAocHJlY2lzaW9uLS0gPiAwKQorCXsKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCAnMCcpOworCSAgd2lkdGgtLTsKKwl9CisgICAgfQorCisgIGlmICghIGlnbm9yZU51bWJlcikKKyAgICB7CisgICAgICAvKiBPdXRwdXQgdGhlIG51bWJlciBpdHNlbGYgKi8KKyAgICAgIHdoaWxlICgqKCsrcG9pbnRlcikpCisJeworCSAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsICpwb2ludGVyKTsKKwl9CisgICAgfQorCisgIC8qIE91dHB1dCB0cmFpbGluZyBzcGFjZXMgaWYgbmVlZGVkICovCisgIGlmIChmbGFncyAmIEZMQUdTX0xFRlRBREpVU1QpCisgICAgeworICAgICAgd2hpbGUgKHdpZHRoLS0gPiAwKQorCXNlbGYtPk91dFN0cmVhbShzZWxmLCBDSEFSX0FESlVTVCk7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1dyaXRlU3RyaW5nQ2hhcmFjdGVyCisgKgorICogRGVzY3JpcHRpb246CisgKiAgT3V0cHV0IGEgc2luZ2xlIGNoYXJhY3RlciBvZiBhIHN0cmluZworICovCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb1dyaXRlU3RyaW5nQ2hhcmFjdGVyCitUUklPX0FSR1MzKChzZWxmLCBjaCwgZmxhZ3MpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBpbnQgY2gsCisJICAgdHJpb19mbGFnc190IGZsYWdzKQoreworICBpZiAoZmxhZ3MgJiBGTEFHU19BTFRFUk5BVElWRSkKKyAgICB7CisgICAgICBpZiAoISBpc3ByaW50KGNoKSkKKwl7CisJICAvKgorCSAgICogTm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSBjb252ZXJ0ZWQgdG8gQyBlc2NhcGVzIG9yCisJICAgKiBcbnVtYmVyLCBpZiBubyBDIGVzY2FwZSBleGlzdHMuCisJICAgKi8KKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBDSEFSX0JBQ0tTTEFTSCk7CisJICBzd2l0Y2ggKGNoKQorCSAgICB7CisJICAgIGNhc2UgJ1wwMDcnOiBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJ2EnKTsgYnJlYWs7CisJICAgIGNhc2UgJ1xiJzogc2VsZi0+T3V0U3RyZWFtKHNlbGYsICdiJyk7IGJyZWFrOworCSAgICBjYXNlICdcZic6IHNlbGYtPk91dFN0cmVhbShzZWxmLCAnZicpOyBicmVhazsKKwkgICAgY2FzZSAnXG4nOiBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJ24nKTsgYnJlYWs7CisJICAgIGNhc2UgJ1xyJzogc2VsZi0+T3V0U3RyZWFtKHNlbGYsICdyJyk7IGJyZWFrOworCSAgICBjYXNlICdcdCc6IHNlbGYtPk91dFN0cmVhbShzZWxmLCAndCcpOyBicmVhazsKKwkgICAgY2FzZSAnXHYnOiBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJ3YnKTsgYnJlYWs7CisJICAgIGNhc2UgJ1xcJzogc2VsZi0+T3V0U3RyZWFtKHNlbGYsICdcXCcpOyBicmVhazsKKwkgICAgZGVmYXVsdDoKKwkgICAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJ3gnKTsKKwkgICAgICBUcmlvV3JpdGVOdW1iZXIoc2VsZiwgKHRyaW9fdWludG1heF90KWNoLAorCQkJICAgICAgRkxBR1NfVU5TSUdORUQgfCBGTEFHU19OSUxQQURESU5HLAorCQkJICAgICAgMiwgMiwgQkFTRV9IRVgpOworCSAgICAgIGJyZWFrOworCSAgICB9CisJfQorICAgICAgZWxzZSBpZiAoY2ggPT0gQ0hBUl9CQUNLU0xBU0gpCisJeworCSAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsIENIQVJfQkFDS1NMQVNIKTsKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBDSEFSX0JBQ0tTTEFTSCk7CisJfQorICAgICAgZWxzZQorCXsKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBjaCk7CisJfQorICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBjaCk7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1dyaXRlU3RyaW5nCisgKgorICogRGVzY3JpcHRpb246CisgKiAgT3V0cHV0IGEgc3RyaW5nCisgKi8KK1RSSU9fUFJJVkFURSB2b2lkCitUcmlvV3JpdGVTdHJpbmcKK1RSSU9fQVJHUzUoKHNlbGYsIHN0cmluZywgZmxhZ3MsIHdpZHRoLCBwcmVjaXNpb24pLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnN0cmluZywKKwkgICB0cmlvX2ZsYWdzX3QgZmxhZ3MsCisJICAgaW50IHdpZHRoLAorCSAgIGludCBwcmVjaXNpb24pCit7CisgIGludCBsZW5ndGg7CisgIGludCBjaDsKKworICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+T3V0U3RyZWFtKSk7CisKKyAgaWYgKHN0cmluZyA9PSBOVUxMKQorICAgIHsKKyAgICAgIHN0cmluZyA9IGludGVybmFsTnVsbFN0cmluZzsKKyAgICAgIGxlbmd0aCA9IHNpemVvZihpbnRlcm5hbE51bGxTdHJpbmcpIC0gMTsKKyAgICAgIC8qIERpc2FibGUgcXVvdGluZyBmb3IgdGhlIG51bGwgcG9pbnRlciAqLworICAgICAgZmxhZ3MgJj0gKH5GTEFHU19RVU9URSk7CisgICAgICB3aWR0aCA9IDA7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgbGVuZ3RoID0gdHJpb19sZW5ndGgoc3RyaW5nKTsKKyAgICB9CisgIGlmICgoTk9fUFJFQ0lTSU9OICE9IHByZWNpc2lvbikgJiYKKyAgICAgIChwcmVjaXNpb24gPCBsZW5ndGgpKQorICAgIHsKKyAgICAgIGxlbmd0aCA9IHByZWNpc2lvbjsKKyAgICB9CisgIHdpZHRoIC09IGxlbmd0aDsKKworICBpZiAoZmxhZ3MgJiBGTEFHU19RVU9URSkKKyAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgQ0hBUl9RVU9URSk7CisKKyAgaWYgKCEgKGZsYWdzICYgRkxBR1NfTEVGVEFESlVTVCkpCisgICAgeworICAgICAgd2hpbGUgKHdpZHRoLS0gPiAwKQorCXNlbGYtPk91dFN0cmVhbShzZWxmLCBDSEFSX0FESlVTVCk7CisgICAgfQorCisgIHdoaWxlIChsZW5ndGgtLSA+IDApCisgICAgeworICAgICAgLyogVGhlIGN0eXBlIHBhcmFtZXRlcnMgbXVzdCBiZSBhbiB1bnNpZ25lZCBjaGFyIChvciBFT0YpICovCisgICAgICBjaCA9IChpbnQpKCh1bnNpZ25lZCBjaGFyKSgqc3RyaW5nKyspKTsKKyAgICAgIFRyaW9Xcml0ZVN0cmluZ0NoYXJhY3RlcihzZWxmLCBjaCwgZmxhZ3MpOworICAgIH0KKworICBpZiAoZmxhZ3MgJiBGTEFHU19MRUZUQURKVVNUKQorICAgIHsKKyAgICAgIHdoaWxlICh3aWR0aC0tID4gMCkKKwlzZWxmLT5PdXRTdHJlYW0oc2VsZiwgQ0hBUl9BREpVU1QpOworICAgIH0KKyAgaWYgKGZsYWdzICYgRkxBR1NfUVVPVEUpCisgICAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsIENIQVJfUVVPVEUpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1dyaXRlV2lkZVN0cmluZ0NoYXJhY3RlcgorICoKKyAqIERlc2NyaXB0aW9uOgorICogIE91dHB1dCBhIHdpZGUgc3RyaW5nIGFzIGEgbXVsdGktYnl0ZSBzZXF1ZW5jZQorICovCisjaWYgVFJJT19XSURFQ0hBUgorVFJJT19QUklWQVRFIGludAorVHJpb1dyaXRlV2lkZVN0cmluZ0NoYXJhY3RlcgorVFJJT19BUkdTNCgoc2VsZiwgd2NoLCBmbGFncywgd2lkdGgpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICB0cmlvX3djaGFyX3Qgd2NoLAorCSAgIHRyaW9fZmxhZ3NfdCBmbGFncywKKwkgICBpbnQgd2lkdGgpCit7CisgIGludCBzaXplOworICBpbnQgaTsKKyAgaW50IGNoOworICBjaGFyICpzdHJpbmc7CisgIGNoYXIgYnVmZmVyW01CX0xFTl9NQVggKyAxXTsKKworICBpZiAod2lkdGggPT0gTk9fV0lEVEgpCisgICAgd2lkdGggPSBzaXplb2YoYnVmZmVyKTsKKyAgCisgIHNpemUgPSB3Y3RvbWIoYnVmZmVyLCB3Y2gpOworICBpZiAoKHNpemUgPD0gMCkgfHwgKHNpemUgPiB3aWR0aCkgfHwgKGJ1ZmZlclswXSA9PSBOSUwpKQorICAgIHJldHVybiAwOworCisgIHN0cmluZyA9IGJ1ZmZlcjsKKyAgaSA9IHNpemU7CisgIHdoaWxlICgod2lkdGggPj0gaSkgJiYgKHdpZHRoLS0gPiAwKSAmJiAoaS0tID4gMCkpCisgICAgeworICAgICAgLyogVGhlIGN0eXBlIHBhcmFtZXRlcnMgbXVzdCBiZSBhbiB1bnNpZ25lZCBjaGFyIChvciBFT0YpICovCisgICAgICBjaCA9IChpbnQpKCh1bnNpZ25lZCBjaGFyKSgqc3RyaW5nKyspKTsKKyAgICAgIFRyaW9Xcml0ZVN0cmluZ0NoYXJhY3RlcihzZWxmLCBjaCwgZmxhZ3MpOworICAgIH0KKyAgcmV0dXJuIHNpemU7Cit9CisjZW5kaWYgLyogVFJJT19XSURFQ0hBUiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1dyaXRlV2lkZVN0cmluZworICoKKyAqIERlc2NyaXB0aW9uOgorICogIE91dHB1dCBhIHdpZGUgY2hhcmFjdGVyIHN0cmluZyBhcyBhIG11bHRpLWJ5dGUgc3RyaW5nCisgKi8KKyNpZiBUUklPX1dJREVDSEFSCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb1dyaXRlV2lkZVN0cmluZworVFJJT19BUkdTNSgoc2VsZiwgd3N0cmluZywgZmxhZ3MsIHdpZHRoLCBwcmVjaXNpb24pLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBUUklPX0NPTlNUIHRyaW9fd2NoYXJfdCAqd3N0cmluZywKKwkgICB0cmlvX2ZsYWdzX3QgZmxhZ3MsCisJICAgaW50IHdpZHRoLAorCSAgIGludCBwcmVjaXNpb24pCit7CisgIGludCBsZW5ndGg7CisgIGludCBzaXplOworCisgIGFzc2VydChWQUxJRChzZWxmKSk7CisgIGFzc2VydChWQUxJRChzZWxmLT5PdXRTdHJlYW0pKTsKKworI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19NVUxUSUJZVEUpCisgICh2b2lkKW1ibGVuKE5VTEwsIDApOworI2VuZGlmCisgIAorICBpZiAod3N0cmluZyA9PSBOVUxMKQorICAgIHsKKyAgICAgIFRyaW9Xcml0ZVN0cmluZyhzZWxmLCBOVUxMLCBmbGFncywgd2lkdGgsIHByZWNpc2lvbik7CisgICAgICByZXR1cm47CisgICAgfQorICAKKyAgaWYgKE5PX1BSRUNJU0lPTiA9PSBwcmVjaXNpb24pCisgICAgeworICAgICAgbGVuZ3RoID0gSU5UX01BWDsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBsZW5ndGggPSBwcmVjaXNpb247CisgICAgICB3aWR0aCAtPSBsZW5ndGg7CisgICAgfQorCisgIGlmIChmbGFncyAmIEZMQUdTX1FVT1RFKQorICAgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBDSEFSX1FVT1RFKTsKKworICBpZiAoISAoZmxhZ3MgJiBGTEFHU19MRUZUQURKVVNUKSkKKyAgICB7CisgICAgICB3aGlsZSAod2lkdGgtLSA+IDApCisJc2VsZi0+T3V0U3RyZWFtKHNlbGYsIENIQVJfQURKVVNUKTsKKyAgICB9CisKKyAgd2hpbGUgKGxlbmd0aCA+IDApCisgICAgeworICAgICAgc2l6ZSA9IFRyaW9Xcml0ZVdpZGVTdHJpbmdDaGFyYWN0ZXIoc2VsZiwgKndzdHJpbmcrKywgZmxhZ3MsIGxlbmd0aCk7CisgICAgICBpZiAoc2l6ZSA9PSAwKQorCWJyZWFrOyAvKiB3aGlsZSAqLworICAgICAgbGVuZ3RoIC09IHNpemU7CisgICAgfQorCisgIGlmIChmbGFncyAmIEZMQUdTX0xFRlRBREpVU1QpCisgICAgeworICAgICAgd2hpbGUgKHdpZHRoLS0gPiAwKQorCXNlbGYtPk91dFN0cmVhbShzZWxmLCBDSEFSX0FESlVTVCk7CisgICAgfQorICBpZiAoZmxhZ3MgJiBGTEFHU19RVU9URSkKKyAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgQ0hBUl9RVU9URSk7Cit9CisjZW5kaWYgLyogVFJJT19XSURFQ0hBUiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1dyaXRlRG91YmxlCisgKgorICogaHR0cDovL3d3d29sZC5ka3V1Zy5kay9KVEMxL1NDMjIvV0cxNC93d3cvZG9jcy9kcl8yMTEuaHRtCisgKgorICogIjUuMi40LjIuMiBwYXJhZ3JhcGggIzQKKyAqCisgKiAgVGhlIGFjY3VyYWN5IFsuLi5dIGlzIGltcGxlbWVudGF0aW9uIGRlZmluZWQsIGFzIGlzIHRoZSBhY2N1cmFjeQorICogIG9mIHRoZSBjb252ZXJzaW9uIGJldHdlZW4gZmxvYXRpbmctcG9pbnQgaW50ZXJuYWwgcmVwcmVzZW50YXRpb25zCisgKiAgYW5kIHN0cmluZyByZXByZXNlbnRhdGlvbnMgcGVyZm9ybWVkIGJ5IHRoZSBsaWJyYXkgcm91dGluZSBpbgorICogIDxzdGRpby5oPiIKKyAqLworLyogRklYTUU6IGhhbmRsZSBhbGwgaW5zdGFuY2VzIG9mIGNvbnN0YW50IGxvbmctZG91YmxlIG51bWJlciAoTCkKKyAqICAgYW5kICpsKCkgbWF0aCBmdW5jdGlvbnMuCisgKi8KK1RSSU9fUFJJVkFURSB2b2lkCitUcmlvV3JpdGVEb3VibGUKK1RSSU9fQVJHUzYoKHNlbGYsIG51bWJlciwgZmxhZ3MsIHdpZHRoLCBwcmVjaXNpb24sIGJhc2UpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICB0cmlvX2xvbmdfZG91YmxlX3QgbnVtYmVyLAorCSAgIHRyaW9fZmxhZ3NfdCBmbGFncywKKwkgICBpbnQgd2lkdGgsCisJICAgaW50IHByZWNpc2lvbiwKKwkgICBpbnQgYmFzZSkKK3sKKyAgdHJpb19sb25nX2RvdWJsZV90IGludGVnZXJOdW1iZXI7CisgIHRyaW9fbG9uZ19kb3VibGVfdCBmcmFjdGlvbk51bWJlcjsKKyAgdHJpb19sb25nX2RvdWJsZV90IHdvcmtOdW1iZXI7CisgIGludCBpbnRlZ2VyRGlnaXRzOworICBpbnQgZnJhY3Rpb25EaWdpdHM7CisgIGludCBleHBvbmVudERpZ2l0czsKKyAgaW50IGJhc2VEaWdpdHM7CisgIGludCBpbnRlZ2VyVGhyZXNob2xkOworICBpbnQgZnJhY3Rpb25UaHJlc2hvbGQ7CisgIGludCBleHBlY3RlZFdpZHRoOworICBpbnQgZXhwb25lbnQgPSAwOworICB1bnNpZ25lZCBpbnQgdUV4cG9uZW50ID0gMDsKKyAgaW50IGV4cG9uZW50QmFzZTsKKyAgdHJpb19sb25nX2RvdWJsZV90IGRibEJhc2U7CisgIHRyaW9fbG9uZ19kb3VibGVfdCBkYmxJbnRlZ2VyQmFzZTsKKyAgdHJpb19sb25nX2RvdWJsZV90IGRibEZyYWN0aW9uQmFzZTsKKyAgdHJpb19sb25nX2RvdWJsZV90IGludGVnZXJBZGp1c3Q7CisgIHRyaW9fbG9uZ19kb3VibGVfdCBmcmFjdGlvbkFkanVzdDsKKyAgQk9PTEVBTl9UIGlzTmVnYXRpdmU7CisgIEJPT0xFQU5fVCBpc0V4cG9uZW50TmVnYXRpdmUgPSBGQUxTRTsKKyAgQk9PTEVBTl9UIHJlcXVpcmVUd29EaWdpdEV4cG9uZW50OworICBCT09MRUFOX1QgaXNIZXg7CisgIFRSSU9fQ09OU1QgY2hhciAqZGlnaXRzOworICBjaGFyICpncm91cGluZ1BvaW50ZXI7CisgIGludCBpOworICBpbnQgaW5kZXg7CisgIEJPT0xFQU5fVCBoYXNPbmx5WmVyb2VzOworICBpbnQgemVyb2VzID0gMDsKKyAgcmVnaXN0ZXIgaW50IHRyYWlsaW5nWmVyb2VzOworICBCT09MRUFOX1Qga2VlcFRyYWlsaW5nWmVyb2VzOworICBCT09MRUFOX1Qga2VlcERlY2ltYWxQb2ludDsKKyAgdHJpb19sb25nX2RvdWJsZV90IGVwc2lsb247CisgIAorICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+T3V0U3RyZWFtKSk7CisgIGFzc2VydCgoKGJhc2UgPj0gTUlOX0JBU0UpICYmIChiYXNlIDw9IE1BWF9CQVNFKSkgfHwgKGJhc2UgPT0gTk9fQkFTRSkpOworCisgIC8qIERldGVybWluZSBzaWduIGFuZCBsb29rIGZvciBzcGVjaWFsIHF1YW50aXRpZXMgKi8KKyAgc3dpdGNoICh0cmlvX2ZwY2xhc3NpZnlfYW5kX3NpZ25iaXQobnVtYmVyLCAmaXNOZWdhdGl2ZSkpCisgICAgeworICAgIGNhc2UgVFJJT19GUF9OQU46CisgICAgICBUcmlvV3JpdGVTdHJpbmcoc2VsZiwKKwkJICAgICAgKGZsYWdzICYgRkxBR1NfVVBQRVIpCisJCSAgICAgID8gTkFOX1VQUEVSCisJCSAgICAgIDogTkFOX0xPV0VSLAorCQkgICAgICBmbGFncywgd2lkdGgsIHByZWNpc2lvbik7CisgICAgICByZXR1cm47CisgICAgICAKKyAgICBjYXNlIFRSSU9fRlBfSU5GSU5JVEU6CisgICAgICBpZiAoaXNOZWdhdGl2ZSkKKwl7CisJICAvKiBOZWdhdGl2ZSBpbmZpbml0eSAqLworCSAgVHJpb1dyaXRlU3RyaW5nKHNlbGYsCisJCQkgIChmbGFncyAmIEZMQUdTX1VQUEVSKQorCQkJICA/ICItIiBJTkZJTklURV9VUFBFUgorCQkJICA6ICItIiBJTkZJTklURV9MT1dFUiwKKwkJCSAgZmxhZ3MsIHdpZHRoLCBwcmVjaXNpb24pOworCSAgcmV0dXJuOworCX0KKyAgICAgIGVsc2UKKwl7CisJICAvKiBQb3NpdGl2ZSBpbmZpbml0eSAqLworCSAgVHJpb1dyaXRlU3RyaW5nKHNlbGYsCisJCQkgIChmbGFncyAmIEZMQUdTX1VQUEVSKQorCQkJICA/IElORklOSVRFX1VQUEVSCisJCQkgIDogSU5GSU5JVEVfTE9XRVIsCisJCQkgIGZsYWdzLCB3aWR0aCwgcHJlY2lzaW9uKTsKKwkgIHJldHVybjsKKwl9CisKKyAgICBkZWZhdWx0OgorICAgICAgLyogRmluaXR1ZGUgKi8KKyAgICAgIGJyZWFrOworICAgIH0KKyAgCisgIC8qIE5vcm1hbCBudW1iZXJzICovCisgIGlmIChmbGFncyAmIEZMQUdTX0xPTkdET1VCTEUpCisgICAgeworICAgICAgYmFzZURpZ2l0cyA9IChiYXNlID09IDEwKQorCT8gTERCTF9ESUcKKwk6IChpbnQpZmxvb3IoTERCTF9NQU5UX0RJRyAvIFRyaW9Mb2dhcml0aG1CYXNlKGJhc2UpKTsKKyAgICAgIGVwc2lsb24gPSBMREJMX0VQU0lMT047CisgICAgfQorICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX1NIT1JUKQorICAgIHsKKyAgICAgIGJhc2VEaWdpdHMgPSAoYmFzZSA9PSBCQVNFX0RFQ0lNQUwpCisJPyBGTFRfRElHCisJOiAoaW50KWZsb29yKEZMVF9NQU5UX0RJRyAvIFRyaW9Mb2dhcml0aG1CYXNlKGJhc2UpKTsKKyAgICAgIGVwc2lsb24gPSBGTFRfRVBTSUxPTjsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBiYXNlRGlnaXRzID0gKGJhc2UgPT0gQkFTRV9ERUNJTUFMKQorCT8gREJMX0RJRworCTogKGludClmbG9vcihEQkxfTUFOVF9ESUcgLyBUcmlvTG9nYXJpdGhtQmFzZShiYXNlKSk7CisgICAgICBlcHNpbG9uID0gREJMX0VQU0lMT047CisgICAgfQorCisgIGRpZ2l0cyA9IChmbGFncyAmIEZMQUdTX1VQUEVSKSA/IGludGVybmFsRGlnaXRzVXBwZXIgOiBpbnRlcm5hbERpZ2l0c0xvd2VyOworICBpc0hleCA9IChiYXNlID09IEJBU0VfSEVYKTsKKyAgaWYgKGJhc2UgPT0gTk9fQkFTRSkKKyAgICBiYXNlID0gQkFTRV9ERUNJTUFMOworICBkYmxCYXNlID0gKHRyaW9fbG9uZ19kb3VibGVfdCliYXNlOworICBrZWVwVHJhaWxpbmdaZXJvZXMgPSAhKCAoZmxhZ3MgJiBGTEFHU19ST1VORElORykgfHwKKwkJCSAgKCAoZmxhZ3MgJiBGTEFHU19GTE9BVF9HKSAmJgorCQkJICAgICEoZmxhZ3MgJiBGTEFHU19BTFRFUk5BVElWRSkgKSApOworCisgIGlmIChmbGFncyAmIEZMQUdTX1JPVU5ESU5HKQorICAgIHByZWNpc2lvbiA9IGJhc2VEaWdpdHM7CisKKyAgaWYgKHByZWNpc2lvbiA9PSBOT19QUkVDSVNJT04pCisgICAgeworICAgICAgaWYgKGlzSGV4KQorCXsKKwkgIGtlZXBUcmFpbGluZ1plcm9lcyA9IEZBTFNFOworCSAgcHJlY2lzaW9uID0gRkxUX01BTlRfRElHOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBwcmVjaXNpb24gPSBGTFRfRElHOworCX0KKyAgICB9CisgIAorICBpZiAoaXNOZWdhdGl2ZSkKKyAgICBudW1iZXIgPSAtbnVtYmVyOworCisgIGlmIChpc0hleCkKKyAgICBmbGFncyB8PSBGTEFHU19GTE9BVF9FOworICAKKyAgaWYgKGZsYWdzICYgRkxBR1NfRkxPQVRfRykKKyAgICB7CisgICAgICBpZiAocHJlY2lzaW9uID09IDApCisJcHJlY2lzaW9uID0gMTsKKworICAgICAgaWYgKChudW1iZXIgPCAxLjBFLTQpIHx8IChudW1iZXIgPiBwb3dsKGJhc2UsCisJCQkJCSAgICAgICh0cmlvX2xvbmdfZG91YmxlX3QpcHJlY2lzaW9uKSkpCisJeworCSAgLyogVXNlIHNjaWVudGlmaWMgbm90YXRpb24gKi8KKwkgIGZsYWdzIHw9IEZMQUdTX0ZMT0FUX0U7CisJfQorICAgICAgZWxzZSBpZiAobnVtYmVyIDwgMS4wKQorCXsKKwkgIC8qCisJICAgKiBVc2Ugbm9ybWFsIG5vdGF0aW9uLiBJZiB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoZSBudW1iZXIgaXMKKwkgICAqIHplcm8sIHRoZW4gYWRqdXN0IHRoZSBwcmVjaXNpb24gdG8gaW5jbHVkZSBsZWFkaW5nIGZyYWN0aW9uYWwKKwkgICAqIHplcm9zLgorCSAgICovCisJICB3b3JrTnVtYmVyID0gVHJpb0xvZ2FyaXRobShudW1iZXIsIGJhc2UpOworCSAgd29ya051bWJlciA9IFRSSU9fRkFCUyh3b3JrTnVtYmVyKTsKKwkgIGlmICh3b3JrTnVtYmVyIC0gZmxvb3JsKHdvcmtOdW1iZXIpIDwgMC4wMDEpCisJICAgIHdvcmtOdW1iZXItLTsKKwkgIHplcm9lcyA9IChpbnQpZmxvb3JsKHdvcmtOdW1iZXIpOworCX0KKyAgICB9CisKKyAgaWYgKGZsYWdzICYgRkxBR1NfRkxPQVRfRSkKKyAgICB7CisgICAgICAvKiBTY2FsZSB0aGUgbnVtYmVyICovCisgICAgICB3b3JrTnVtYmVyID0gVHJpb0xvZ2FyaXRobShudW1iZXIsIGJhc2UpOworICAgICAgaWYgKHRyaW9faXNpbmYod29ya051bWJlcikgPT0gLTEpCisJeworCSAgZXhwb25lbnQgPSAwOworCSAgLyogVW5kbyBzZXR0aW5nICovCisJICBpZiAoZmxhZ3MgJiBGTEFHU19GTE9BVF9HKQorCSAgICBmbGFncyAmPSB+RkxBR1NfRkxPQVRfRTsKKwl9CisgICAgICBlbHNlCisJeworCSAgZXhwb25lbnQgPSAoaW50KWZsb29ybCh3b3JrTnVtYmVyKTsKKwkgIG51bWJlciAvPSBwb3dsKGRibEJhc2UsICh0cmlvX2xvbmdfZG91YmxlX3QpZXhwb25lbnQpOworCSAgaXNFeHBvbmVudE5lZ2F0aXZlID0gKGV4cG9uZW50IDwgMCk7CisJICB1RXhwb25lbnQgPSAoaXNFeHBvbmVudE5lZ2F0aXZlKSA/IC1leHBvbmVudCA6IGV4cG9uZW50OworCSAgaWYgKGlzSGV4KQorCSAgICB1RXhwb25lbnQgKj0gNDsgLyogbG9nMTYoMikgKi8KKwkgIC8qIE5vIHRob3VzYW5kIHNlcGFyYXRvcnMgKi8KKwkgIGZsYWdzICY9IH5GTEFHU19RVU9URTsKKwl9CisgICAgfQorCisgIGludGVnZXJOdW1iZXIgPSBmbG9vcmwobnVtYmVyKTsKKyAgZnJhY3Rpb25OdW1iZXIgPSBudW1iZXIgLSBpbnRlZ2VyTnVtYmVyOworICAKKyAgLyoKKyAgICogVHJ1bmNhdGVkIG51bWJlci4KKyAgICoKKyAgICogUHJlY2lzaW9uIGlzIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgZm9yIEZMT0FUX0cKKyAgICogYW5kIG51bWJlciBvZiBmcmFjdGlvbmFsIGRpZ2l0cyBmb3Igb3RoZXJzLgorICAgKi8KKyAgaW50ZWdlckRpZ2l0cyA9IChpbnRlZ2VyTnVtYmVyID4gZXBzaWxvbikKKyAgICA/IDEgKyAoaW50KVRyaW9Mb2dhcml0aG0oaW50ZWdlck51bWJlciwgYmFzZSkKKyAgICA6IDE7CisgIGZyYWN0aW9uRGlnaXRzID0gKChmbGFncyAmIEZMQUdTX0ZMT0FUX0cpICYmICh6ZXJvZXMgPT0gMCkpCisgICAgPyBwcmVjaXNpb24gLSBpbnRlZ2VyRGlnaXRzCisgICAgOiB6ZXJvZXMgKyBwcmVjaXNpb247CisKKyAgZGJsRnJhY3Rpb25CYXNlID0gVHJpb1Bvd2VyKGJhc2UsIGZyYWN0aW9uRGlnaXRzKTsKKyAgCisgIHdvcmtOdW1iZXIgPSBudW1iZXIgKyAwLjUgLyBkYmxGcmFjdGlvbkJhc2U7CisgIGlmIChmbG9vcmwobnVtYmVyKSAhPSBmbG9vcmwod29ya051bWJlcikpCisgICAgeworICAgICAgaWYgKGZsYWdzICYgRkxBR1NfRkxPQVRfRSkKKwl7CisJICAvKiBBZGp1c3QgaWYgbnVtYmVyIHdhcyByb3VuZGVkIHVwIG9uZSBkaWdpdCAoaWUuIDAuOTkgdG8gMS4wMCkgKi8KKwkgIGV4cG9uZW50Kys7CisJICBpc0V4cG9uZW50TmVnYXRpdmUgPSAoZXhwb25lbnQgPCAwKTsKKwkgIHVFeHBvbmVudCA9IChpc0V4cG9uZW50TmVnYXRpdmUpID8gLWV4cG9uZW50IDogZXhwb25lbnQ7CisJICBpZiAoaXNIZXgpCisJICAgIHVFeHBvbmVudCAqPSA0OyAvKiBsb2cxNigyKSAqLworCSAgd29ya051bWJlciA9IChudW1iZXIgKyAwLjUgLyBkYmxGcmFjdGlvbkJhc2UpIC8gZGJsQmFzZTsKKwkgIGludGVnZXJOdW1iZXIgPSBmbG9vcmwod29ya051bWJlcik7CisJICBmcmFjdGlvbk51bWJlciA9IHdvcmtOdW1iZXIgLSBpbnRlZ2VyTnVtYmVyOworCX0KKyAgICAgIGVsc2UKKwl7CisJICAvKiBBZGp1c3QgaWYgbnVtYmVyIHdhcyByb3VuZGVkIHVwIG9uZSBkaWdpdCAoaWUuIDk5IHRvIDEwMCkgKi8KKwkgIGludGVnZXJOdW1iZXIgPSBmbG9vcmwobnVtYmVyICsgMC41KTsKKwkgIGZyYWN0aW9uTnVtYmVyID0gMC4wOworCSAgaW50ZWdlckRpZ2l0cyA9IChpbnRlZ2VyTnVtYmVyID4gZXBzaWxvbikKKwkgICAgPyAxICsgKGludClUcmlvTG9nYXJpdGhtKGludGVnZXJOdW1iZXIsIGJhc2UpCisJICAgIDogMTsKKwl9CisgICAgfQorCisgIC8qIEVzdGltYXRlIGFjY3VyYWN5ICovCisgIGludGVnZXJBZGp1c3QgPSBmcmFjdGlvbkFkanVzdCA9IDAuNTsKKyAgaWYgKGZsYWdzICYgRkxBR1NfUk9VTkRJTkcpCisgICAgeworICAgICAgaWYgKGludGVnZXJEaWdpdHMgPiBiYXNlRGlnaXRzKQorCXsKKwkgIGludGVnZXJUaHJlc2hvbGQgPSBiYXNlRGlnaXRzOworCSAgZnJhY3Rpb25EaWdpdHMgPSAwOworCSAgZGJsRnJhY3Rpb25CYXNlID0gMS4wOworCSAgZnJhY3Rpb25UaHJlc2hvbGQgPSAwOworCSAgcHJlY2lzaW9uID0gMDsgLyogRGlzYWJsZSBkZWNpbWFsLXBvaW50ICovCisJICBpbnRlZ2VyQWRqdXN0ID0gVHJpb1Bvd2VyKGJhc2UsIGludGVnZXJEaWdpdHMgLSBpbnRlZ2VyVGhyZXNob2xkIC0gMSk7CisJICBmcmFjdGlvbkFkanVzdCA9IDAuMDsKKwl9CisgICAgICBlbHNlCisJeworCSAgaW50ZWdlclRocmVzaG9sZCA9IGludGVnZXJEaWdpdHM7CisJICBmcmFjdGlvblRocmVzaG9sZCA9IGZyYWN0aW9uRGlnaXRzIC0gaW50ZWdlclRocmVzaG9sZDsKKwkgIGZyYWN0aW9uQWRqdXN0ID0gMS4wOworCX0KKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBpbnRlZ2VyVGhyZXNob2xkID0gSU5UX01BWDsKKyAgICAgIGZyYWN0aW9uVGhyZXNob2xkID0gSU5UX01BWDsKKyAgICB9CisgIAorICAvKgorICAgKiBDYWxjdWxhdGUgZXhwZWN0ZWQgd2lkdGguCisgICAqICBzaWduICsgaW50ZWdlciBwYXJ0ICsgdGhvdXNhbmRzIHNlcGFyYXRvcnMgKyBkZWNpbWFsIHBvaW50CisgICAqICArIGZyYWN0aW9uICsgZXhwb25lbnQKKyAgICovCisgIGZyYWN0aW9uQWRqdXN0IC89IGRibEZyYWN0aW9uQmFzZTsKKyAgaGFzT25seVplcm9lcyA9IChmbG9vcmwoKGZyYWN0aW9uTnVtYmVyICsgZnJhY3Rpb25BZGp1c3QpICogZGJsRnJhY3Rpb25CYXNlKSA8IGVwc2lsb24pOworICBrZWVwRGVjaW1hbFBvaW50ID0gKCAoZmxhZ3MgJiBGTEFHU19BTFRFUk5BVElWRSkgfHwKKwkJICAgICAgICEoKHByZWNpc2lvbiA9PSAwKSB8fAorCQkJICgha2VlcFRyYWlsaW5nWmVyb2VzICYmIGhhc09ubHlaZXJvZXMpKSApOworICBpZiAoZmxhZ3MgJiBGTEFHU19GTE9BVF9FKQorICAgIHsKKyAgICAgIGV4cG9uZW50RGlnaXRzID0gKHVFeHBvbmVudCA9PSAwKQorCT8gMQorCTogKGludCljZWlsKFRyaW9Mb2dhcml0aG0oKGRvdWJsZSkodUV4cG9uZW50ICsgMSksCisJCQkJICAoaXNIZXgpID8gMTAuMCA6IGJhc2UpKTsKKyAgICB9CisgIGVsc2UKKyAgICBleHBvbmVudERpZ2l0cyA9IDA7CisgIHJlcXVpcmVUd29EaWdpdEV4cG9uZW50ID0gKChiYXNlID09IEJBU0VfREVDSU1BTCkgJiYgKGV4cG9uZW50RGlnaXRzID09IDEpKTsKKworICBleHBlY3RlZFdpZHRoID0gaW50ZWdlckRpZ2l0cyArIGZyYWN0aW9uRGlnaXRzCisgICAgKyAoa2VlcERlY2ltYWxQb2ludAorICAgICAgID8gaW50ZXJuYWxEZWNpbWFsUG9pbnRMZW5ndGgKKyAgICAgICA6IDApCisgICAgKyAoKGZsYWdzICYgRkxBR1NfUVVPVEUpCisgICAgICAgPyBUcmlvQ2FsY1Rob3VzYW5kU2VwYXJhdG9yTGVuZ3RoKGludGVnZXJEaWdpdHMpCisgICAgICAgOiAwKTsKKyAgaWYgKGlzTmVnYXRpdmUgfHwgKGZsYWdzICYgRkxBR1NfU0hPV1NJR04pIHx8IChmbGFncyAmIEZMQUdTX1NQQUNFKSkKKyAgICBleHBlY3RlZFdpZHRoICs9IHNpemVvZigiLSIpIC0gMTsKKyAgaWYgKGV4cG9uZW50RGlnaXRzID4gMCkKKyAgICBleHBlY3RlZFdpZHRoICs9IGV4cG9uZW50RGlnaXRzICsKKyAgICAgICgocmVxdWlyZVR3b0RpZ2l0RXhwb25lbnQgPyBzaXplb2YoIkUrMCIpIDogc2l6ZW9mKCJFKyIpKSAtIDEpOworICBpZiAoaXNIZXgpCisgICAgZXhwZWN0ZWRXaWR0aCArPSBzaXplb2YoIjBYIikgLSAxOworICAKKyAgLyogT3V0cHV0IHByZWZpeGluZyAqLworICBpZiAoZmxhZ3MgJiBGTEFHU19OSUxQQURESU5HKQorICAgIHsKKyAgICAgIC8qIExlYWRpbmcgemVyb3MgbXVzdCBiZSBhZnRlciBzaWduICovCisgICAgICBpZiAoaXNOZWdhdGl2ZSkKKwlzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJy0nKTsKKyAgICAgIGVsc2UgaWYgKGZsYWdzICYgRkxBR1NfU0hPV1NJR04pCisJc2VsZi0+T3V0U3RyZWFtKHNlbGYsICcrJyk7CisgICAgICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX1NQQUNFKQorCXNlbGYtPk91dFN0cmVhbShzZWxmLCAnICcpOworICAgICAgaWYgKGlzSGV4KQorCXsKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCAnMCcpOworCSAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsIChmbGFncyAmIEZMQUdTX1VQUEVSKSA/ICdYJyA6ICd4Jyk7CisJfQorICAgICAgaWYgKCEoZmxhZ3MgJiBGTEFHU19MRUZUQURKVVNUKSkKKwl7CisJICBmb3IgKGkgPSBleHBlY3RlZFdpZHRoOyBpIDwgd2lkdGg7IGkrKykKKwkgICAgeworCSAgICAgIHNlbGYtPk91dFN0cmVhbShzZWxmLCAnMCcpOworCSAgICB9CisJfQorICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIExlYWRpbmcgc3BhY2VzIG11c3QgYmUgYmVmb3JlIHNpZ24gKi8KKyAgICAgIGlmICghKGZsYWdzICYgRkxBR1NfTEVGVEFESlVTVCkpCisJeworCSAgZm9yIChpID0gZXhwZWN0ZWRXaWR0aDsgaSA8IHdpZHRoOyBpKyspCisJICAgIHsKKwkgICAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgQ0hBUl9BREpVU1QpOworCSAgICB9CisJfQorICAgICAgaWYgKGlzTmVnYXRpdmUpCisJc2VsZi0+T3V0U3RyZWFtKHNlbGYsICctJyk7CisgICAgICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX1NIT1dTSUdOKQorCXNlbGYtPk91dFN0cmVhbShzZWxmLCAnKycpOworICAgICAgZWxzZSBpZiAoZmxhZ3MgJiBGTEFHU19TUEFDRSkKKwlzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJyAnKTsKKyAgICAgIGlmIChpc0hleCkKKwl7CisJICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgJzAnKTsKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCAoZmxhZ3MgJiBGTEFHU19VUFBFUikgPyAnWCcgOiAneCcpOworCX0KKyAgICB9CisgIAorICAvKiBPdXRwdXQgdGhlIGludGVnZXIgcGFydCBhbmQgdGhvdXNhbmQgc2VwYXJhdG9ycyAqLworICBkYmxJbnRlZ2VyQmFzZSA9IDEuMCAvIFRyaW9Qb3dlcihiYXNlLCBpbnRlZ2VyRGlnaXRzIC0gMSk7CisgIGZvciAoaSA9IDA7IGkgPCBpbnRlZ2VyRGlnaXRzOyBpKyspCisgICAgeworICAgICAgd29ya051bWJlciA9IGZsb29ybCgoKGludGVnZXJOdW1iZXIgKyBpbnRlZ2VyQWRqdXN0KSAqIGRibEludGVnZXJCYXNlKSk7CisgICAgICBpZiAoaSA+IGludGVnZXJUaHJlc2hvbGQpCisJeworCSAgLyogQmV5b25kIGFjY3VyYWN5ICovCisJICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgZGlnaXRzWzBdKTsKKwl9CisgICAgICBlbHNlCisJeworCSAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsIGRpZ2l0c1soaW50KWZtb2RsKHdvcmtOdW1iZXIsIGRibEJhc2UpXSk7CisJfQorICAgICAgZGJsSW50ZWdlckJhc2UgKj0gZGJsQmFzZTsKKyAgICAgIAorICAgICAgaWYgKCgoZmxhZ3MgJiAoRkxBR1NfRkxPQVRfRSB8IEZMQUdTX1FVT1RFKSkgPT0gRkxBR1NfUVVPVEUpCisJICAmJiBUcmlvRm9sbG93ZWRCeVNlcGFyYXRvcihpbnRlZ2VyRGlnaXRzIC0gaSkpCisJeworCSAgZm9yIChncm91cGluZ1BvaW50ZXIgPSBpbnRlcm5hbFRob3VzYW5kU2VwYXJhdG9yOworCSAgICAgICAqZ3JvdXBpbmdQb2ludGVyICE9IE5JTDsKKwkgICAgICAgZ3JvdXBpbmdQb2ludGVyKyspCisJICAgIHsKKwkgICAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgKmdyb3VwaW5nUG9pbnRlcik7CisJICAgIH0KKwl9CisgICAgfQorICAKKyAgLyogSW5zZXJ0IGRlY2ltYWwgcG9pbnQgYW5kIGJ1aWxkIHRoZSBmcmFjdGlvbiBwYXJ0ICovCisgIHRyYWlsaW5nWmVyb2VzID0gMDsKKworICBpZiAoa2VlcERlY2ltYWxQb2ludCkKKyAgICB7CisgICAgICBpZiAoaW50ZXJuYWxEZWNpbWFsUG9pbnQpCisJeworCSAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsIGludGVybmFsRGVjaW1hbFBvaW50KTsKKwl9CisgICAgICBlbHNlCisJeworCSAgZm9yIChpID0gMDsgaSA8IGludGVybmFsRGVjaW1hbFBvaW50TGVuZ3RoOyBpKyspCisJICAgIHsKKwkgICAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgaW50ZXJuYWxEZWNpbWFsUG9pbnRTdHJpbmdbaV0pOworCSAgICB9CisJfQorICAgIH0KKworICBmb3IgKGkgPSAwOyBpIDwgZnJhY3Rpb25EaWdpdHM7IGkrKykKKyAgICB7CisgICAgICBpZiAoKGludGVnZXJEaWdpdHMgPiBpbnRlZ2VyVGhyZXNob2xkKSB8fCAoaSA+IGZyYWN0aW9uVGhyZXNob2xkKSkKKwl7CisJICAvKiBCZXlvbmQgYWNjdXJhY3kgKi8KKwkgIHRyYWlsaW5nWmVyb2VzKys7CisJfQorICAgICAgZWxzZQorCXsKKwkgIGZyYWN0aW9uTnVtYmVyICo9IGRibEJhc2U7CisJICBmcmFjdGlvbkFkanVzdCAqPSBkYmxCYXNlOworCSAgd29ya051bWJlciA9IGZsb29ybChmcmFjdGlvbk51bWJlciArIGZyYWN0aW9uQWRqdXN0KTsKKwkgIGZyYWN0aW9uTnVtYmVyIC09IHdvcmtOdW1iZXI7CisJICBpbmRleCA9IChpbnQpZm1vZGwod29ya051bWJlciwgZGJsQmFzZSk7CisJICBpZiAoaW5kZXggPT0gMCkKKwkgICAgeworCSAgICAgIHRyYWlsaW5nWmVyb2VzKys7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgeworCSAgICAgIHdoaWxlICh0cmFpbGluZ1plcm9lcyA+IDApCisJCXsKKwkJICAvKiBOb3QgdHJhaWxpbmcgemVyb2VzIGFmdGVyIGFsbCAqLworCQkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBkaWdpdHNbMF0pOworCQkgIHRyYWlsaW5nWmVyb2VzLS07CisJCX0KKwkgICAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgZGlnaXRzW2luZGV4XSk7CisJICAgIH0KKwl9CisgICAgfQorICAKKyAgaWYgKGtlZXBUcmFpbGluZ1plcm9lcykKKyAgICB7CisgICAgICB3aGlsZSAodHJhaWxpbmdaZXJvZXMgPiAwKQorCXsKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBkaWdpdHNbMF0pOworCSAgdHJhaWxpbmdaZXJvZXMtLTsKKwl9CisgICAgfQorICAKKyAgLyogT3V0cHV0IGV4cG9uZW50ICovCisgIGlmIChleHBvbmVudERpZ2l0cyA+IDApCisgICAgeworICAgICAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsCisJCSAgICAgIGlzSGV4CisJCSAgICAgID8gKChmbGFncyAmIEZMQUdTX1VQUEVSKSA/ICdQJyA6ICdwJykKKwkJICAgICAgOiAoKGZsYWdzICYgRkxBR1NfVVBQRVIpID8gJ0UnIDogJ2UnKSk7CisgICAgICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgKGlzRXhwb25lbnROZWdhdGl2ZSkgPyAnLScgOiAnKycpOworCisgICAgICAvKiBUaGUgZXhwb25lbnQgbXVzdCBjb250YWluIGF0IGxlYXN0IHR3byBkaWdpdHMgKi8KKyAgICAgIGlmIChyZXF1aXJlVHdvRGlnaXRFeHBvbmVudCkKKyAgICAgICAgc2VsZi0+T3V0U3RyZWFtKHNlbGYsICcwJyk7CisKKyAgICAgIGlmIChpc0hleCkKKwliYXNlID0gMTAuMDsKKyAgICAgIGV4cG9uZW50QmFzZSA9IChpbnQpVHJpb1Bvd2VyKGJhc2UsIGV4cG9uZW50RGlnaXRzIC0gMSk7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgZXhwb25lbnREaWdpdHM7IGkrKykKKwl7CisJICBzZWxmLT5PdXRTdHJlYW0oc2VsZiwgZGlnaXRzWyh1RXhwb25lbnQgLyBleHBvbmVudEJhc2UpICUgYmFzZV0pOworCSAgZXhwb25lbnRCYXNlIC89IGJhc2U7CisJfQorICAgIH0KKyAgLyogT3V0cHV0IHRyYWlsaW5nIHNwYWNlcyAqLworICBpZiAoZmxhZ3MgJiBGTEFHU19MRUZUQURKVVNUKQorICAgIHsKKyAgICAgIGZvciAoaSA9IGV4cGVjdGVkV2lkdGg7IGkgPCB3aWR0aDsgaSsrKQorCXsKKwkgIHNlbGYtPk91dFN0cmVhbShzZWxmLCBDSEFSX0FESlVTVCk7CisJfQorICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9Gb3JtYXRQcm9jZXNzCisgKgorICogRGVzY3JpcHRpb246CisgKiAgVGhpcyBpcyB0aGUgbWFpbiBlbmdpbmUgZm9yIGZvcm1hdHRpbmcgb3V0cHV0CisgKi8KK1RSSU9fUFJJVkFURSBpbnQKK1RyaW9Gb3JtYXRQcm9jZXNzCitUUklPX0FSR1MzKChkYXRhLCBmb3JtYXQsIHBhcmFtZXRlcnMpLAorCSAgIHRyaW9fY2xhc3NfdCAqZGF0YSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB0cmlvX3BhcmFtZXRlcl90ICpwYXJhbWV0ZXJzKQoreworI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19NVUxUSUJZVEUpCisgIGludCBjaGFybGVuOworI2VuZGlmCisgIGludCBpOworICBUUklPX0NPTlNUIGNoYXIgKnN0cmluZzsKKyAgdHJpb19wb2ludGVyX3QgcG9pbnRlcjsKKyAgdHJpb19mbGFnc190IGZsYWdzOworICBpbnQgd2lkdGg7CisgIGludCBwcmVjaXNpb247CisgIGludCBiYXNlOworICBpbnQgaW5kZXg7CisgIAorICBpbmRleCA9IDA7CisgIGkgPSAwOworI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19NVUxUSUJZVEUpCisgICh2b2lkKW1ibGVuKE5VTEwsIDApOworI2VuZGlmCisgIAorICB3aGlsZSAoZm9ybWF0W2luZGV4XSkKKyAgICB7CisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX1NVUFBPUlRTX01VTFRJQllURSkKKyAgICAgIGlmICghIGlzYXNjaWkoZm9ybWF0W2luZGV4XSkpCisJeworCSAgY2hhcmxlbiA9IG1ibGVuKCZmb3JtYXRbaW5kZXhdLCBNQl9MRU5fTUFYKTsKKwkgIC8qCisJICAgKiBPbmx5IHZhbGlkIG11bHRpYnl0ZSBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkIGhlcmUuIEludmFsaWQKKwkgICAqIG11bHRpYnl0ZSBjaGFyYWN0ZXJzIChjaGFybGVuID09IC0xKSBhcmUgaGFuZGxlZCBhcyBub3JtYWwKKwkgICAqIGNoYXJhY3RlcnMuCisJICAgKi8KKwkgIGlmIChjaGFybGVuICE9IC0xKQorCSAgICB7CisJICAgICAgd2hpbGUgKGNoYXJsZW4tLSA+IDApCisJCXsKKwkJICBkYXRhLT5PdXRTdHJlYW0oZGF0YSwgZm9ybWF0W2luZGV4KytdKTsKKwkJfQorCSAgICAgIGNvbnRpbnVlOyAvKiB3aGlsZSBjaGFyYWN0ZXJzIGxlZnQgaW4gZm9ybWF0dGluZyBzdHJpbmcgKi8KKwkgICAgfQorCX0KKyNlbmRpZiAvKiBUUklPX0NPTVBJTEVSX1NVUFBPUlRTX01VTFRJQllURSAqLworICAgICAgaWYgKENIQVJfSURFTlRJRklFUiA9PSBmb3JtYXRbaW5kZXhdKQorCXsKKwkgIGlmIChDSEFSX0lERU5USUZJRVIgPT0gZm9ybWF0W2luZGV4ICsgMV0pCisJICAgIHsKKwkgICAgICBkYXRhLT5PdXRTdHJlYW0oZGF0YSwgQ0hBUl9JREVOVElGSUVSKTsKKwkgICAgICBpbmRleCArPSAyOworCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICAvKiBTa2lwIHRoZSBwYXJhbWV0ZXIgZW50cmllcyAqLworCSAgICAgIHdoaWxlIChwYXJhbWV0ZXJzW2ldLnR5cGUgPT0gRk9STUFUX1BBUkFNRVRFUikKKwkJaSsrOworCSAgICAgIAorCSAgICAgIGZsYWdzID0gcGFyYW1ldGVyc1tpXS5mbGFnczsKKworCSAgICAgIC8qIEZpbmQgd2lkdGggKi8KKwkgICAgICB3aWR0aCA9IHBhcmFtZXRlcnNbaV0ud2lkdGg7CisJICAgICAgaWYgKGZsYWdzICYgRkxBR1NfV0lEVEhfUEFSQU1FVEVSKQorCQl7CisJCSAgLyogR2V0IHdpZHRoIGZyb20gcGFyYW1ldGVyIGxpc3QgKi8KKwkJICB3aWR0aCA9IChpbnQpcGFyYW1ldGVyc1t3aWR0aF0uZGF0YS5udW1iZXIuYXNfc2lnbmVkOworCQkgIGlmICh3aWR0aCA8IDApCisJCSAgICB7CisJCSAgICAgIC8qCisJCSAgICAgICAqIEEgbmVnYXRpdmUgd2lkdGggaXMgdGhlIHNhbWUgYXMgdGhlIC0gZmxhZyBhbmQKKwkJICAgICAgICogYSBwb3NpdGl2ZSB3aWR0aC4KKwkJICAgICAgICovCisJCSAgICAgIGZsYWdzIHw9IEZMQUdTX0xFRlRBREpVU1Q7CisJCSAgICAgIGZsYWdzICY9IH5GTEFHU19OSUxQQURESU5HOworCQkgICAgICB3aWR0aCA9IC13aWR0aDsKKwkJICAgIH0KKwkJfQorCSAgICAgIAorCSAgICAgIC8qIEZpbmQgcHJlY2lzaW9uICovCisJICAgICAgaWYgKGZsYWdzICYgRkxBR1NfUFJFQ0lTSU9OKQorCQl7CisJCSAgcHJlY2lzaW9uID0gcGFyYW1ldGVyc1tpXS5wcmVjaXNpb247CisJCSAgaWYgKGZsYWdzICYgRkxBR1NfUFJFQ0lTSU9OX1BBUkFNRVRFUikKKwkJICAgIHsKKwkJICAgICAgLyogR2V0IHByZWNpc2lvbiBmcm9tIHBhcmFtZXRlciBsaXN0ICovCisJCSAgICAgIHByZWNpc2lvbiA9IChpbnQpcGFyYW1ldGVyc1twcmVjaXNpb25dLmRhdGEubnVtYmVyLmFzX3NpZ25lZDsKKwkJICAgICAgaWYgKHByZWNpc2lvbiA8IDApCisJCQl7CisJCQkgIC8qCisJCQkgICAqIEEgbmVnYXRpdmUgcHJlY2lzaW9uIGlzIHRoZSBzYW1lIGFzIG5vCisJCQkgICAqIHByZWNpc2lvbgorCQkJICAgKi8KKwkJCSAgcHJlY2lzaW9uID0gTk9fUFJFQ0lTSU9OOworCQkJfQorCQkgICAgfQorCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgcHJlY2lzaW9uID0gTk9fUFJFQ0lTSU9OOworCQl9CisKKwkgICAgICAvKiBGaW5kIGJhc2UgKi8KKwkgICAgICBiYXNlID0gcGFyYW1ldGVyc1tpXS5iYXNlOworCSAgICAgIGlmIChmbGFncyAmIEZMQUdTX0JBU0VfUEFSQU1FVEVSKQorCQl7CisJCSAgLyogR2V0IGJhc2UgZnJvbSBwYXJhbWV0ZXIgbGlzdCAqLworCQkgIGJhc2UgPSAoaW50KXBhcmFtZXRlcnNbYmFzZV0uZGF0YS5udW1iZXIuYXNfc2lnbmVkOworCQl9CisJICAgICAgCisJICAgICAgc3dpdGNoIChwYXJhbWV0ZXJzW2ldLnR5cGUpCisJCXsKKwkJY2FzZSBGT1JNQVRfQ0hBUjoKKwkJICBpZiAoZmxhZ3MgJiBGTEFHU19RVU9URSkKKwkJICAgIGRhdGEtPk91dFN0cmVhbShkYXRhLCBDSEFSX1FVT1RFKTsKKwkJICBpZiAoISAoZmxhZ3MgJiBGTEFHU19MRUZUQURKVVNUKSkKKwkJICAgIHsKKwkJICAgICAgd2hpbGUgKC0td2lkdGggPiAwKQorCQkJZGF0YS0+T3V0U3RyZWFtKGRhdGEsIENIQVJfQURKVVNUKTsKKwkJICAgIH0KKyNpZiBUUklPX1dJREVDSEFSCisJCSAgaWYgKGZsYWdzICYgRkxBR1NfV0lERUNIQVIpCisJCSAgICB7CisJCSAgICAgIFRyaW9Xcml0ZVdpZGVTdHJpbmdDaGFyYWN0ZXIoZGF0YSwKKwkJCQkJCSAgICh0cmlvX3djaGFyX3QpcGFyYW1ldGVyc1tpXS5kYXRhLm51bWJlci5hc19zaWduZWQsCisJCQkJCQkgICBmbGFncywKKwkJCQkJCSAgIE5PX1dJRFRIKTsKKwkJICAgIH0KKwkJICBlbHNlCisjZW5kaWYKKwkJICAgIHsKKwkJICAgICAgVHJpb1dyaXRlU3RyaW5nQ2hhcmFjdGVyKGRhdGEsCisJCQkJCSAgICAgICAoaW50KXBhcmFtZXRlcnNbaV0uZGF0YS5udW1iZXIuYXNfc2lnbmVkLAorCQkJCQkgICAgICAgZmxhZ3MpOworCQkgICAgfQorCisJCSAgaWYgKGZsYWdzICYgRkxBR1NfTEVGVEFESlVTVCkKKwkJICAgIHsKKwkJICAgICAgd2hpbGUoLS13aWR0aCA+IDApCisJCQlkYXRhLT5PdXRTdHJlYW0oZGF0YSwgQ0hBUl9BREpVU1QpOworCQkgICAgfQorCQkgIGlmIChmbGFncyAmIEZMQUdTX1FVT1RFKQorCQkgICAgZGF0YS0+T3V0U3RyZWFtKGRhdGEsIENIQVJfUVVPVEUpOworCisJCSAgYnJlYWs7IC8qIEZPUk1BVF9DSEFSICovCisKKwkJY2FzZSBGT1JNQVRfSU5UOgorCQkgIFRyaW9Xcml0ZU51bWJlcihkYXRhLAorCQkJCSAgcGFyYW1ldGVyc1tpXS5kYXRhLm51bWJlci5hc191bnNpZ25lZCwKKwkJCQkgIGZsYWdzLAorCQkJCSAgd2lkdGgsCisJCQkJICBwcmVjaXNpb24sCisJCQkJICBiYXNlKTsKKworCQkgIGJyZWFrOyAvKiBGT1JNQVRfSU5UICovCisKKwkJY2FzZSBGT1JNQVRfRE9VQkxFOgorCQkgIFRyaW9Xcml0ZURvdWJsZShkYXRhLAorCQkJCSAgcGFyYW1ldGVyc1tpXS5kYXRhLmxvbmdkb3VibGVOdW1iZXIsCisJCQkJICBmbGFncywKKwkJCQkgIHdpZHRoLAorCQkJCSAgcHJlY2lzaW9uLAorCQkJCSAgYmFzZSk7CisJCSAgYnJlYWs7IC8qIEZPUk1BVF9ET1VCTEUgKi8KKworCQljYXNlIEZPUk1BVF9TVFJJTkc6CisjaWYgVFJJT19XSURFQ0hBUgorCQkgIGlmIChmbGFncyAmIEZMQUdTX1dJREVDSEFSKQorCQkgICAgeworCQkgICAgICBUcmlvV3JpdGVXaWRlU3RyaW5nKGRhdGEsCisJCQkJCSAgcGFyYW1ldGVyc1tpXS5kYXRhLndzdHJpbmcsCisJCQkJCSAgZmxhZ3MsCisJCQkJCSAgd2lkdGgsCisJCQkJCSAgcHJlY2lzaW9uKTsKKwkJICAgIH0KKwkJICBlbHNlCisjZW5kaWYKKwkJICAgIHsKKwkJICAgICAgVHJpb1dyaXRlU3RyaW5nKGRhdGEsCisJCQkJICAgICAgcGFyYW1ldGVyc1tpXS5kYXRhLnN0cmluZywKKwkJCQkgICAgICBmbGFncywKKwkJCQkgICAgICB3aWR0aCwKKwkJCQkgICAgICBwcmVjaXNpb24pOworCQkgICAgfQorCQkgIGJyZWFrOyAvKiBGT1JNQVRfU1RSSU5HICovCisKKwkJY2FzZSBGT1JNQVRfUE9JTlRFUjoKKwkJICB7CisJCSAgICB0cmlvX3JlZmVyZW5jZV90IHJlZmVyZW5jZTsKKwkJICAgIAorCQkgICAgcmVmZXJlbmNlLmRhdGEgPSBkYXRhOworCQkgICAgcmVmZXJlbmNlLnBhcmFtZXRlciA9ICZwYXJhbWV0ZXJzW2ldOworCQkgICAgdHJpb19wcmludF9wb2ludGVyKCZyZWZlcmVuY2UsIHBhcmFtZXRlcnNbaV0uZGF0YS5wb2ludGVyKTsKKwkJICB9CisJCSAgYnJlYWs7IC8qIEZPUk1BVF9QT0lOVEVSICovCisKKwkJY2FzZSBGT1JNQVRfQ09VTlQ6CisJCSAgcG9pbnRlciA9IHBhcmFtZXRlcnNbaV0uZGF0YS5wb2ludGVyOworCQkgIGlmIChOVUxMICE9IHBvaW50ZXIpCisJCSAgICB7CisJCSAgICAgIC8qCisJCSAgICAgICAqIEM5OSBwYXJhZ3JhcGggNy4xOS42LjEuOCBzYXlzICJ0aGUgbnVtYmVyIG9mCisJCSAgICAgICAqIGNoYXJhY3RlcnMgd3JpdHRlbiB0byB0aGUgb3V0cHV0IHN0cmVhbSBzbyBmYXIgYnkKKwkJICAgICAgICogdGhpcyBjYWxsIiwgd2hpY2ggaXMgZGF0YS0+Y29tbWl0dGVkCisJCSAgICAgICAqLworI2lmIGRlZmluZWQoUVVBTElGSUVSX1NJWkVfVCkgfHwgZGVmaW5lZChRVUFMSUZJRVJfU0laRV9UX1VQUEVSKQorCQkgICAgICBpZiAoZmxhZ3MgJiBGTEFHU19TSVpFX1QpCisJCQkqKHNpemVfdCAqKXBvaW50ZXIgPSAoc2l6ZV90KWRhdGEtPmNvbW1pdHRlZDsKKwkJICAgICAgZWxzZQorI2VuZGlmCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfUFRSRElGRl9UKQorCQkgICAgICBpZiAoZmxhZ3MgJiBGTEFHU19QVFJESUZGX1QpCisJCQkqKHB0cmRpZmZfdCAqKXBvaW50ZXIgPSAocHRyZGlmZl90KWRhdGEtPmNvbW1pdHRlZDsKKwkJICAgICAgZWxzZQorI2VuZGlmCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfSU5UTUFYX1QpCisJCSAgICAgIGlmIChmbGFncyAmIEZMQUdTX0lOVE1BWF9UKQorCQkJKih0cmlvX2ludG1heF90ICopcG9pbnRlciA9ICh0cmlvX2ludG1heF90KWRhdGEtPmNvbW1pdHRlZDsKKwkJICAgICAgZWxzZQorI2VuZGlmCisJCSAgICAgIGlmIChmbGFncyAmIEZMQUdTX1FVQUQpCisJCQl7CisJCQkgICoodHJpb191bG9uZ2xvbmdfdCAqKXBvaW50ZXIgPSAodHJpb191bG9uZ2xvbmdfdClkYXRhLT5jb21taXR0ZWQ7CisJCQl9CisJCSAgICAgIGVsc2UgaWYgKGZsYWdzICYgRkxBR1NfTE9ORykKKwkJCXsKKwkJCSAgKihsb25nIGludCAqKXBvaW50ZXIgPSAobG9uZyBpbnQpZGF0YS0+Y29tbWl0dGVkOworCQkJfQorCQkgICAgICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX1NIT1JUKQorCQkJeworCQkJICAqKHNob3J0IGludCAqKXBvaW50ZXIgPSAoc2hvcnQgaW50KWRhdGEtPmNvbW1pdHRlZDsKKwkJCX0KKwkJICAgICAgZWxzZQorCQkJeworCQkJICAqKGludCAqKXBvaW50ZXIgPSAoaW50KWRhdGEtPmNvbW1pdHRlZDsKKwkJCX0KKwkJICAgIH0KKwkJICBicmVhazsgLyogRk9STUFUX0NPVU5UICovCisKKwkJY2FzZSBGT1JNQVRfUEFSQU1FVEVSOgorCQkgIGJyZWFrOyAvKiBGT1JNQVRfUEFSQU1FVEVSICovCisKKyNpZiBkZWZpbmVkKEZPUk1BVF9FUlJOTykKKwkJY2FzZSBGT1JNQVRfRVJSTk86CisJCSAgc3RyaW5nID0gdHJpb19lcnJvcihwYXJhbWV0ZXJzW2ldLmRhdGEuZXJyb3JOdW1iZXIpOworCQkgIGlmIChzdHJpbmcpCisJCSAgICB7CisJCSAgICAgIFRyaW9Xcml0ZVN0cmluZyhkYXRhLAorCQkJCSAgICAgIHN0cmluZywKKwkJCQkgICAgICBmbGFncywKKwkJCQkgICAgICB3aWR0aCwKKwkJCQkgICAgICBwcmVjaXNpb24pOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgZGF0YS0+T3V0U3RyZWFtKGRhdGEsICcjJyk7CisJCSAgICAgIFRyaW9Xcml0ZU51bWJlcihkYXRhLAorCQkJCSAgICAgICh0cmlvX3VpbnRtYXhfdClwYXJhbWV0ZXJzW2ldLmRhdGEuZXJyb3JOdW1iZXIsCisJCQkJICAgICAgZmxhZ3MsCisJCQkJICAgICAgd2lkdGgsCisJCQkJICAgICAgcHJlY2lzaW9uLAorCQkJCSAgICAgIEJBU0VfREVDSU1BTCk7CisJCSAgICB9CisJCSAgYnJlYWs7IC8qIEZPUk1BVF9FUlJOTyAqLworI2VuZGlmIC8qIGRlZmluZWQoRk9STUFUX0VSUk5PKSAqLworCisjaWYgZGVmaW5lZChGT1JNQVRfVVNFUl9ERUZJTkVEKQorCQljYXNlIEZPUk1BVF9VU0VSX0RFRklORUQ6CisJCSAgeworCQkgICAgdHJpb19yZWZlcmVuY2VfdCByZWZlcmVuY2U7CisJCSAgICB0cmlvX3VzZXJkZWZfdCAqZGVmID0gTlVMTDsKKworCQkgICAgaWYgKHBhcmFtZXRlcnNbaV0udXNlcl9uYW1lWzBdID09IE5JTCkKKwkJICAgICAgeworCQkJLyogVXNlIGhhbmRsZSAqLworCQkJaWYgKChpID4gMCkgfHwKKwkJCSAgICAocGFyYW1ldGVyc1tpIC0gMV0udHlwZSA9PSBGT1JNQVRfUEFSQU1FVEVSKSkKKwkJCSAgZGVmID0gKHRyaW9fdXNlcmRlZl90ICopcGFyYW1ldGVyc1tpIC0gMV0uZGF0YS5wb2ludGVyOworCQkgICAgICB9CisJCSAgICBlbHNlCisJCSAgICAgIHsKKwkJCS8qIExvb2sgdXAgbmFtZXNwYWNlICovCisJCQlkZWYgPSBUcmlvRmluZE5hbWVzcGFjZShwYXJhbWV0ZXJzW2ldLnVzZXJfbmFtZSwgTlVMTCk7CisJCSAgICAgIH0KKwkJICAgIGlmIChkZWYpIHsKKwkJICAgICAgcmVmZXJlbmNlLmRhdGEgPSBkYXRhOworCQkgICAgICByZWZlcmVuY2UucGFyYW1ldGVyID0gJnBhcmFtZXRlcnNbaV07CisJCSAgICAgIGRlZi0+Y2FsbGJhY2soJnJlZmVyZW5jZSk7CisJCSAgICB9CisJCSAgfQorCQkgIGJyZWFrOworI2VuZGlmIC8qIGRlZmluZWQoRk9STUFUX1VTRVJfREVGSU5FRCkgKi8KKwkJICAKKwkJZGVmYXVsdDoKKwkJICBicmVhazsKKwkJfSAvKiBzd2l0Y2ggcGFyYW1ldGVyIHR5cGUgKi8KKworCSAgICAgIC8qIFByZXBhcmUgZm9yIG5leHQgKi8KKwkgICAgICBpbmRleCA9IHBhcmFtZXRlcnNbaV0uaW5kZXhBZnRlclNwZWNpZmllcjsKKwkgICAgICBpKys7CisJICAgIH0KKwl9CisgICAgICBlbHNlIC8qIG5vdCBpZGVudGlmaWVyICovCisJeworCSAgZGF0YS0+T3V0U3RyZWFtKGRhdGEsIGZvcm1hdFtpbmRleCsrXSk7CisJfQorICAgIH0KKyAgcmV0dXJuIGRhdGEtPnByb2Nlc3NlZDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9Gb3JtYXRSZWYKKyAqLworVFJJT19QUklWQVRFIGludAorVHJpb0Zvcm1hdFJlZgorVFJJT19BUkdTNCgocmVmZXJlbmNlLCBmb3JtYXQsIGFyZ2xpc3QsIGFyZ2FycmF5KSwKKwkgICB0cmlvX3JlZmVyZW5jZV90ICpyZWZlcmVuY2UsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgdmFfbGlzdCAqYXJnbGlzdCwKKwkgICB0cmlvX3BvaW50ZXJfdCAqYXJnYXJyYXkpCit7CisgIGludCBzdGF0dXM7CisgIHRyaW9fcGFyYW1ldGVyX3QgcGFyYW1ldGVyc1tNQVhfUEFSQU1FVEVSU107CisKKyAgc3RhdHVzID0gVHJpb1BhcnNlKFRZUEVfUFJJTlQsIGZvcm1hdCwgcGFyYW1ldGVycywgYXJnbGlzdCwgYXJnYXJyYXkpOworICBpZiAoc3RhdHVzIDwgMCkKKyAgICByZXR1cm4gc3RhdHVzOworCisgIHN0YXR1cyA9IFRyaW9Gb3JtYXRQcm9jZXNzKHJlZmVyZW5jZS0+ZGF0YSwgZm9ybWF0LCBwYXJhbWV0ZXJzKTsKKyAgaWYgKHJlZmVyZW5jZS0+ZGF0YS0+ZXJyb3IgIT0gMCkKKyAgICB7CisgICAgICBzdGF0dXMgPSByZWZlcmVuY2UtPmRhdGEtPmVycm9yOworICAgIH0KKyAgcmV0dXJuIHN0YXR1czsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9Gb3JtYXQKKyAqLworVFJJT19QUklWQVRFIGludAorVHJpb0Zvcm1hdAorVFJJT19BUkdTNigoZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uU2l6ZSwgT3V0U3RyZWFtLCBmb3JtYXQsIGFyZ2xpc3QsIGFyZ2FycmF5KSwKKwkgICB0cmlvX3BvaW50ZXJfdCBkZXN0aW5hdGlvbiwKKwkgICBzaXplX3QgZGVzdGluYXRpb25TaXplLAorCSAgIHZvaWQgKCpPdXRTdHJlYW0pIFRSSU9fUFJPVE8oKHRyaW9fY2xhc3NfdCAqLCBpbnQpKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2YV9saXN0ICphcmdsaXN0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdhcnJheSkKK3sKKyAgaW50IHN0YXR1czsKKyAgdHJpb19jbGFzc190IGRhdGE7CisgIHRyaW9fcGFyYW1ldGVyX3QgcGFyYW1ldGVyc1tNQVhfUEFSQU1FVEVSU107CisKKyAgYXNzZXJ0KFZBTElEKE91dFN0cmVhbSkpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisKKyAgbWVtc2V0KCZkYXRhLCAwLCBzaXplb2YoZGF0YSkpOworICBkYXRhLk91dFN0cmVhbSA9IE91dFN0cmVhbTsKKyAgZGF0YS5sb2NhdGlvbiA9IGRlc3RpbmF0aW9uOworICBkYXRhLm1heCA9IGRlc3RpbmF0aW9uU2l6ZTsKKyAgZGF0YS5lcnJvciA9IDA7CisKKyNpZiBkZWZpbmVkKFVTRV9MT0NBTEUpCisgIGlmIChOVUxMID09IGludGVybmFsTG9jYWxlVmFsdWVzKQorICAgIHsKKyAgICAgIFRyaW9TZXRMb2NhbGUoKTsKKyAgICB9CisjZW5kaWYKKworICBzdGF0dXMgPSBUcmlvUGFyc2UoVFlQRV9QUklOVCwgZm9ybWF0LCBwYXJhbWV0ZXJzLCBhcmdsaXN0LCBhcmdhcnJheSk7CisgIGlmIChzdGF0dXMgPCAwKQorICAgIHJldHVybiBzdGF0dXM7CisKKyAgc3RhdHVzID0gVHJpb0Zvcm1hdFByb2Nlc3MoJmRhdGEsIGZvcm1hdCwgcGFyYW1ldGVycyk7CisgIGlmIChkYXRhLmVycm9yICE9IDApCisgICAgeworICAgICAgc3RhdHVzID0gZGF0YS5lcnJvcjsKKyAgICB9CisgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvT3V0U3RyZWFtRmlsZQorICovCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb091dFN0cmVhbUZpbGUKK1RSSU9fQVJHUzIoKHNlbGYsIG91dHB1dCksCisJICAgdHJpb19jbGFzc190ICpzZWxmLAorCSAgIGludCBvdXRwdXQpCit7CisgIEZJTEUgKmZpbGU7CisKKyAgYXNzZXJ0KFZBTElEKHNlbGYpKTsKKyAgYXNzZXJ0KFZBTElEKHNlbGYtPmxvY2F0aW9uKSk7CisKKyAgZmlsZSA9IChGSUxFICopc2VsZi0+bG9jYXRpb247CisgIHNlbGYtPnByb2Nlc3NlZCsrOworICBpZiAoZnB1dGMob3V0cHV0LCBmaWxlKSA9PSBFT0YpCisgICAgeworICAgICAgc2VsZi0+ZXJyb3IgPSBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VPRiwgMCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgc2VsZi0+Y29tbWl0dGVkKys7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb091dFN0cmVhbUZpbGVEZXNjcmlwdG9yCisgKi8KK1RSSU9fUFJJVkFURSB2b2lkCitUcmlvT3V0U3RyZWFtRmlsZURlc2NyaXB0b3IKK1RSSU9fQVJHUzIoKHNlbGYsIG91dHB1dCksCisJICAgdHJpb19jbGFzc190ICpzZWxmLAorCSAgIGludCBvdXRwdXQpCit7CisgIGludCBmZDsKKyAgY2hhciBjaDsKKworICBhc3NlcnQoVkFMSUQoc2VsZikpOworCisgIGZkID0gKigoaW50ICopc2VsZi0+bG9jYXRpb24pOworICBjaCA9IChjaGFyKW91dHB1dDsKKyAgc2VsZi0+cHJvY2Vzc2VkKys7CisgIGlmICh3cml0ZShmZCwgJmNoLCBzaXplb2YoY2hhcikpID09IC0xKQorICAgIHsKKyAgICAgIHNlbGYtPmVycm9yID0gVFJJT19FUlJPUl9SRVRVUk4oVFJJT19FUlJOTywgMCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgc2VsZi0+Y29tbWl0dGVkKys7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb091dFN0cmVhbUN1c3RvbQorICovCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb091dFN0cmVhbUN1c3RvbQorVFJJT19BUkdTMigoc2VsZiwgb3V0cHV0KSwKKwkgICB0cmlvX2NsYXNzX3QgKnNlbGYsCisJICAgaW50IG91dHB1dCkKK3sKKyAgaW50IHN0YXR1czsKKyAgdHJpb19jdXN0b21fdCAqZGF0YTsKKworICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+bG9jYXRpb24pKTsKKworICBkYXRhID0gKHRyaW9fY3VzdG9tX3QgKilzZWxmLT5sb2NhdGlvbjsKKyAgaWYgKGRhdGEtPnN0cmVhbS5vdXQpCisgICAgeworICAgICAgc3RhdHVzID0gKGRhdGEtPnN0cmVhbS5vdXQpKGRhdGEtPmNsb3N1cmUsIG91dHB1dCk7CisgICAgICBpZiAoc3RhdHVzID49IDApCisJeworCSAgc2VsZi0+Y29tbWl0dGVkKys7CisJfQorICAgICAgZWxzZQorCXsKKwkgIGlmIChzZWxmLT5lcnJvciA9PSAwKQorCSAgICB7CisJICAgICAgc2VsZi0+ZXJyb3IgPSBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VDVVNUT00sIC1zdGF0dXMpOworCSAgICB9CisJfQorICAgIH0KKyAgc2VsZi0+cHJvY2Vzc2VkKys7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvT3V0U3RyZWFtU3RyaW5nCisgKi8KK1RSSU9fUFJJVkFURSB2b2lkCitUcmlvT3V0U3RyZWFtU3RyaW5nCitUUklPX0FSR1MyKChzZWxmLCBvdXRwdXQpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBpbnQgb3V0cHV0KQoreworICBjaGFyICoqYnVmZmVyOworCisgIGFzc2VydChWQUxJRChzZWxmKSk7CisgIGFzc2VydChWQUxJRChzZWxmLT5sb2NhdGlvbikpOworCisgIGJ1ZmZlciA9IChjaGFyICoqKXNlbGYtPmxvY2F0aW9uOworICAqKmJ1ZmZlciA9IChjaGFyKW91dHB1dDsKKyAgKCpidWZmZXIpKys7CisgIHNlbGYtPnByb2Nlc3NlZCsrOworICBzZWxmLT5jb21taXR0ZWQrKzsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9PdXRTdHJlYW1TdHJpbmdNYXgKKyAqLworVFJJT19QUklWQVRFIHZvaWQKK1RyaW9PdXRTdHJlYW1TdHJpbmdNYXgKK1RSSU9fQVJHUzIoKHNlbGYsIG91dHB1dCksCisJICAgdHJpb19jbGFzc190ICpzZWxmLAorCSAgIGludCBvdXRwdXQpCit7CisgIGNoYXIgKipidWZmZXI7CisKKyAgYXNzZXJ0KFZBTElEKHNlbGYpKTsKKyAgYXNzZXJ0KFZBTElEKHNlbGYtPmxvY2F0aW9uKSk7CisgIAorICBidWZmZXIgPSAoY2hhciAqKilzZWxmLT5sb2NhdGlvbjsKKworICBpZiAoc2VsZi0+cHJvY2Vzc2VkIDwgc2VsZi0+bWF4KQorICAgIHsKKyAgICAgICoqYnVmZmVyID0gKGNoYXIpb3V0cHV0OworICAgICAgKCpidWZmZXIpKys7CisgICAgICBzZWxmLT5jb21taXR0ZWQrKzsKKyAgICB9CisgIHNlbGYtPnByb2Nlc3NlZCsrOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb091dFN0cmVhbVN0cmluZ0R5bmFtaWMKKyAqLworVFJJT19QUklWQVRFIHZvaWQKK1RyaW9PdXRTdHJlYW1TdHJpbmdEeW5hbWljCitUUklPX0FSR1MyKChzZWxmLCBvdXRwdXQpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBpbnQgb3V0cHV0KQoreworICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+bG9jYXRpb24pKTsKKworICBpZiAoc2VsZi0+ZXJyb3IgPT0gMCkKKyAgICB7CisgICAgICB0cmlvX3hzdHJpbmdfYXBwZW5kX2NoYXIoKHRyaW9fc3RyaW5nX3QgKilzZWxmLT5sb2NhdGlvbiwKKwkJCSAgICAgICAoY2hhcilvdXRwdXQpOworICAgICAgc2VsZi0+Y29tbWl0dGVkKys7CisgICAgfQorICAvKiBUaGUgcHJvY2Vzc2VkIHZhcmlhYmxlIG11c3QgYWx3YXlzIGJlIGluY3JlYXNlZCAqLworICBzZWxmLT5wcm9jZXNzZWQrKzsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGb3JtYXR0ZWQgcHJpbnRpbmcgZnVuY3Rpb25zCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIGRlZmluZWQoVFJJT19ET0NVTUVOVEFUSU9OKQorIyBpbmNsdWRlICJkb2MvZG9jX3ByaW50Zi5oIgorI2VuZGlmCisvKiogQGFkZHRvZ3JvdXAgUHJpbnRmCisgICAgQHsKKyovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBwcmludGYKKyAqLworCisvKioKKyAgIFByaW50IHRvIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uCisKKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gLi4uIEFyZ3VtZW50cy4KKyAgIEByZXR1cm4gTnVtYmVyIG9mIHByaW50ZWQgY2hhcmFjdGVycy4KKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX3ByaW50ZgorVFJJT19WQVJHUzIoKGZvcm1hdCwgdmFfYWxpc3QpLAorCSAgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICAgVFJJT19WQV9ERUNMKQoreworICBpbnQgc3RhdHVzOworICB2YV9saXN0IGFyZ3M7CisKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgVFJJT19WQV9TVEFSVChhcmdzLCBmb3JtYXQpOworICBzdGF0dXMgPSBUcmlvRm9ybWF0KHN0ZG91dCwgMCwgVHJpb091dFN0cmVhbUZpbGUsIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworICBUUklPX1ZBX0VORChhcmdzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KKworLyoqCisgICBQcmludCB0byBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLgorCisgICBAcGFyYW0gZm9ybWF0IEZvcm1hdHRpbmcgc3RyaW5nLgorICAgQHBhcmFtIGFyZ3MgQXJndW1lbnRzLgorICAgQHJldHVybiBOdW1iZXIgb2YgcHJpbnRlZCBjaGFyYWN0ZXJzLgorICovCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fdnByaW50ZgorVFJJT19BUkdTMigoZm9ybWF0LCBhcmdzKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2YV9saXN0IGFyZ3MpCit7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICByZXR1cm4gVHJpb0Zvcm1hdChzdGRvdXQsIDAsIFRyaW9PdXRTdHJlYW1GaWxlLCBmb3JtYXQsICZhcmdzLCBOVUxMKTsKK30KKworLyoqCisgICBQcmludCB0byBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLgorCisgICBAcGFyYW0gZm9ybWF0IEZvcm1hdHRpbmcgc3RyaW5nLgorICAgQHBhcmFtIGFyZ3MgQXJndW1lbnRzLgorICAgQHJldHVybiBOdW1iZXIgb2YgcHJpbnRlZCBjaGFyYWN0ZXJzLgorICovCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fcHJpbnRmdgorVFJJT19BUkdTMigoZm9ybWF0LCBhcmdzKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB0cmlvX3BvaW50ZXJfdCAqIGFyZ3MpCit7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICByZXR1cm4gVHJpb0Zvcm1hdChzdGRvdXQsIDAsIFRyaW9PdXRTdHJlYW1GaWxlLCBmb3JtYXQsIE5VTEwsIGFyZ3MpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZnByaW50ZgorICovCisKKy8qKgorICAgUHJpbnQgdG8gZmlsZS4KKworICAgQHBhcmFtIGZpbGUgRmlsZSBwb2ludGVyLgorICAgQHBhcmFtIGZvcm1hdCBGb3JtYXR0aW5nIHN0cmluZy4KKyAgIEBwYXJhbSAuLi4gQXJndW1lbnRzLgorICAgQHJldHVybiBOdW1iZXIgb2YgcHJpbnRlZCBjaGFyYWN0ZXJzLgorICovCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fZnByaW50ZgorVFJJT19WQVJHUzMoKGZpbGUsIGZvcm1hdCwgdmFfYWxpc3QpLAorCSAgICBGSUxFICpmaWxlLAorCSAgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICAgVFJJT19WQV9ERUNMKQoreworICBpbnQgc3RhdHVzOworICB2YV9saXN0IGFyZ3M7CisKKyAgYXNzZXJ0KFZBTElEKGZpbGUpKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgVFJJT19WQV9TVEFSVChhcmdzLCBmb3JtYXQpOworICBzdGF0dXMgPSBUcmlvRm9ybWF0KGZpbGUsIDAsIFRyaW9PdXRTdHJlYW1GaWxlLCBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgVFJJT19WQV9FTkQoYXJncyk7CisgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qKgorICAgUHJpbnQgdG8gZmlsZS4KKworICAgQHBhcmFtIGZpbGUgRmlsZSBwb2ludGVyLgorICAgQHBhcmFtIGZvcm1hdCBGb3JtYXR0aW5nIHN0cmluZy4KKyAgIEBwYXJhbSBhcmdzIEFyZ3VtZW50cy4KKyAgIEByZXR1cm4gTnVtYmVyIG9mIHByaW50ZWQgY2hhcmFjdGVycy4KKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX3ZmcHJpbnRmCitUUklPX0FSR1MzKChmaWxlLCBmb3JtYXQsIGFyZ3MpLAorCSAgIEZJTEUgKmZpbGUsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgdmFfbGlzdCBhcmdzKQoreworICBhc3NlcnQoVkFMSUQoZmlsZSkpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICByZXR1cm4gVHJpb0Zvcm1hdChmaWxlLCAwLCBUcmlvT3V0U3RyZWFtRmlsZSwgZm9ybWF0LCAmYXJncywgTlVMTCk7Cit9CisKKy8qKgorICAgUHJpbnQgdG8gZmlsZS4KKworICAgQHBhcmFtIGZpbGUgRmlsZSBwb2ludGVyLgorICAgQHBhcmFtIGZvcm1hdCBGb3JtYXR0aW5nIHN0cmluZy4KKyAgIEBwYXJhbSBhcmdzIEFyZ3VtZW50cy4KKyAgIEByZXR1cm4gTnVtYmVyIG9mIHByaW50ZWQgY2hhcmFjdGVycy4KKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX2ZwcmludGZ2CitUUklPX0FSR1MzKChmaWxlLCBmb3JtYXQsIGFyZ3MpLAorCSAgIEZJTEUgKmZpbGUsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgdHJpb19wb2ludGVyX3QgKiBhcmdzKQoreworICBhc3NlcnQoVkFMSUQoZmlsZSkpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICByZXR1cm4gVHJpb0Zvcm1hdChmaWxlLCAwLCBUcmlvT3V0U3RyZWFtRmlsZSwgZm9ybWF0LCBOVUxMLCBhcmdzKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGRwcmludGYKKyAqLworCisvKioKKyAgIFByaW50IHRvIGZpbGUgZGVzY3JpcHRvci4KKworICAgQHBhcmFtIGZkIEZpbGUgZGVzY3JpcHRvci4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gLi4uIEFyZ3VtZW50cy4KKyAgIEByZXR1cm4gTnVtYmVyIG9mIHByaW50ZWQgY2hhcmFjdGVycy4KKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX2RwcmludGYKK1RSSU9fVkFSR1MzKChmZCwgZm9ybWF0LCB2YV9hbGlzdCksCisJICAgIGludCBmZCwKKwkgICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgIFRSSU9fVkFfREVDTCkKK3sKKyAgaW50IHN0YXR1czsKKyAgdmFfbGlzdCBhcmdzOworCisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIFRSSU9fVkFfU1RBUlQoYXJncywgZm9ybWF0KTsKKyAgc3RhdHVzID0gVHJpb0Zvcm1hdCgmZmQsIDAsIFRyaW9PdXRTdHJlYW1GaWxlRGVzY3JpcHRvciwgZm9ybWF0LCAmYXJncywgTlVMTCk7CisgIFRSSU9fVkFfRU5EKGFyZ3MpOworICByZXR1cm4gc3RhdHVzOworfQorCisvKioKKyAgIFByaW50IHRvIGZpbGUgZGVzY3JpcHRvci4KKworICAgQHBhcmFtIGZkIEZpbGUgZGVzY3JpcHRvci4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gYXJncyBBcmd1bWVudHMuCisgICBAcmV0dXJuIE51bWJlciBvZiBwcmludGVkIGNoYXJhY3RlcnMuCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb192ZHByaW50ZgorVFJJT19BUkdTMygoZmQsIGZvcm1hdCwgYXJncyksCisJICAgaW50IGZkLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHZhX2xpc3QgYXJncykKK3sKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgcmV0dXJuIFRyaW9Gb3JtYXQoJmZkLCAwLCBUcmlvT3V0U3RyZWFtRmlsZURlc2NyaXB0b3IsIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworfQorCisvKioKKyAgIFByaW50IHRvIGZpbGUgZGVzY3JpcHRvci4KKworICAgQHBhcmFtIGZkIEZpbGUgZGVzY3JpcHRvci4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gYXJncyBBcmd1bWVudHMuCisgICBAcmV0dXJuIE51bWJlciBvZiBwcmludGVkIGNoYXJhY3RlcnMuCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb19kcHJpbnRmdgorVFJJT19BUkdTMygoZmQsIGZvcm1hdCwgYXJncyksCisJICAgaW50IGZkLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdzKQoreworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICByZXR1cm4gVHJpb0Zvcm1hdCgmZmQsIDAsIFRyaW9PdXRTdHJlYW1GaWxlRGVzY3JpcHRvciwgZm9ybWF0LCBOVUxMLCBhcmdzKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGNwcmludGYKKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX2NwcmludGYKK1RSSU9fVkFSR1M0KChzdHJlYW0sIGNsb3N1cmUsIGZvcm1hdCwgdmFfYWxpc3QpLAorCSAgICB0cmlvX291dHN0cmVhbV90IHN0cmVhbSwKKwkgICAgdHJpb19wb2ludGVyX3QgY2xvc3VyZSwKKwkgICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgIFRSSU9fVkFfREVDTCkKK3sKKyAgaW50IHN0YXR1czsKKyAgdmFfbGlzdCBhcmdzOworICB0cmlvX2N1c3RvbV90IGRhdGE7CisKKyAgYXNzZXJ0KFZBTElEKHN0cmVhbSkpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisKKyAgVFJJT19WQV9TVEFSVChhcmdzLCBmb3JtYXQpOworICBkYXRhLnN0cmVhbS5vdXQgPSBzdHJlYW07CisgIGRhdGEuY2xvc3VyZSA9IGNsb3N1cmU7CisgIHN0YXR1cyA9IFRyaW9Gb3JtYXQoJmRhdGEsIDAsIFRyaW9PdXRTdHJlYW1DdXN0b20sIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworICBUUklPX1ZBX0VORChhcmdzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KKworVFJJT19QVUJMSUMgaW50Cit0cmlvX3ZjcHJpbnRmCitUUklPX0FSR1M0KChzdHJlYW0sIGNsb3N1cmUsIGZvcm1hdCwgYXJncyksCisJICAgdHJpb19vdXRzdHJlYW1fdCBzdHJlYW0sCisJICAgdHJpb19wb2ludGVyX3QgY2xvc3VyZSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2YV9saXN0IGFyZ3MpCit7CisgIHRyaW9fY3VzdG9tX3QgZGF0YTsKKworICBhc3NlcnQoVkFMSUQoc3RyZWFtKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICBkYXRhLnN0cmVhbS5vdXQgPSBzdHJlYW07CisgIGRhdGEuY2xvc3VyZSA9IGNsb3N1cmU7CisgIHJldHVybiBUcmlvRm9ybWF0KCZkYXRhLCAwLCBUcmlvT3V0U3RyZWFtQ3VzdG9tLCBmb3JtYXQsICZhcmdzLCBOVUxMKTsKK30KKworVFJJT19QVUJMSUMgaW50Cit0cmlvX2NwcmludGZ2CitUUklPX0FSR1M0KChzdHJlYW0sIGNsb3N1cmUsIGZvcm1hdCwgYXJncyksCisJICAgdHJpb19vdXRzdHJlYW1fdCBzdHJlYW0sCisJICAgdHJpb19wb2ludGVyX3QgY2xvc3VyZSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2b2lkICoqYXJncykKK3sKKyAgdHJpb19jdXN0b21fdCBkYXRhOworCisgIGFzc2VydChWQUxJRChzdHJlYW0pKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworCisgIGRhdGEuc3RyZWFtLm91dCA9IHN0cmVhbTsKKyAgZGF0YS5jbG9zdXJlID0gY2xvc3VyZTsKKyAgcmV0dXJuIFRyaW9Gb3JtYXQoJmRhdGEsIDAsIFRyaW9PdXRTdHJlYW1DdXN0b20sIGZvcm1hdCwgTlVMTCwgYXJncyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzcHJpbnRmCisgKi8KKworLyoqCisgICBQcmludCB0byBzdHJpbmcuCisKKyAgIEBwYXJhbSBidWZmZXIgT3V0cHV0IHN0cmluZy4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gLi4uIEFyZ3VtZW50cy4KKyAgIEByZXR1cm4gTnVtYmVyIG9mIHByaW50ZWQgY2hhcmFjdGVycy4KKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX3NwcmludGYKK1RSSU9fVkFSR1MzKChidWZmZXIsIGZvcm1hdCwgdmFfYWxpc3QpLAorCSAgICBjaGFyICpidWZmZXIsCisJICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgICBUUklPX1ZBX0RFQ0wpCit7CisgIGludCBzdGF0dXM7CisgIHZhX2xpc3QgYXJnczsKKworICBhc3NlcnQoVkFMSUQoYnVmZmVyKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIFRSSU9fVkFfU1RBUlQoYXJncywgZm9ybWF0KTsKKyAgc3RhdHVzID0gVHJpb0Zvcm1hdCgmYnVmZmVyLCAwLCBUcmlvT3V0U3RyZWFtU3RyaW5nLCBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgKmJ1ZmZlciA9IE5JTDsgLyogVGVybWluYXRlIHdpdGggTklMIGNoYXJhY3RlciAqLworICBUUklPX1ZBX0VORChhcmdzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KKworLyoqCisgICBQcmludCB0byBzdHJpbmcuCisKKyAgIEBwYXJhbSBidWZmZXIgT3V0cHV0IHN0cmluZy4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gYXJncyBBcmd1bWVudHMuCisgICBAcmV0dXJuIE51bWJlciBvZiBwcmludGVkIGNoYXJhY3RlcnMuCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb192c3ByaW50ZgorVFJJT19BUkdTMygoYnVmZmVyLCBmb3JtYXQsIGFyZ3MpLAorCSAgIGNoYXIgKmJ1ZmZlciwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2YV9saXN0IGFyZ3MpCit7CisgIGludCBzdGF0dXM7CisKKyAgYXNzZXJ0KFZBTElEKGJ1ZmZlcikpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisKKyAgc3RhdHVzID0gVHJpb0Zvcm1hdCgmYnVmZmVyLCAwLCBUcmlvT3V0U3RyZWFtU3RyaW5nLCBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgKmJ1ZmZlciA9IE5JTDsKKyAgcmV0dXJuIHN0YXR1czsKK30KKworLyoqCisgICBQcmludCB0byBzdHJpbmcuCisKKyAgIEBwYXJhbSBidWZmZXIgT3V0cHV0IHN0cmluZy4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gYXJncyBBcmd1bWVudHMuCisgICBAcmV0dXJuIE51bWJlciBvZiBwcmludGVkIGNoYXJhY3RlcnMuCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb19zcHJpbnRmdgorVFJJT19BUkdTMygoYnVmZmVyLCBmb3JtYXQsIGFyZ3MpLAorCSAgIGNoYXIgKmJ1ZmZlciwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB0cmlvX3BvaW50ZXJfdCAqYXJncykKK3sKKyAgaW50IHN0YXR1czsKKworICBhc3NlcnQoVkFMSUQoYnVmZmVyKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICBzdGF0dXMgPSBUcmlvRm9ybWF0KCZidWZmZXIsIDAsIFRyaW9PdXRTdHJlYW1TdHJpbmcsIGZvcm1hdCwgTlVMTCwgYXJncyk7CisgICpidWZmZXIgPSBOSUw7CisgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzbnByaW50ZgorICovCisKKy8qKgorICAgUHJpbnQgYXQgbW9zdCBAcCBtYXggY2hhcmFjdGVycyB0byBzdHJpbmcuCisKKyAgIEBwYXJhbSBidWZmZXIgT3V0cHV0IHN0cmluZy4KKyAgIEBwYXJhbSBtYXggTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBwcmludC4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gLi4uIEFyZ3VtZW50cy4KKyAgIEByZXR1cm4gTnVtYmVyIG9mIHByaW50ZWQgY2hhcmFjdGVycy4KKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX3NucHJpbnRmCitUUklPX1ZBUkdTNCgoYnVmZmVyLCBtYXgsIGZvcm1hdCwgdmFfYWxpc3QpLAorCSAgICBjaGFyICpidWZmZXIsCisJICAgIHNpemVfdCBtYXgsCisJICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgICBUUklPX1ZBX0RFQ0wpCit7CisgIGludCBzdGF0dXM7CisgIHZhX2xpc3QgYXJnczsKKworICBhc3NlcnQoVkFMSUQoYnVmZmVyKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICBUUklPX1ZBX1NUQVJUKGFyZ3MsIGZvcm1hdCk7CisgIHN0YXR1cyA9IFRyaW9Gb3JtYXQoJmJ1ZmZlciwgbWF4ID4gMCA/IG1heCAtIDEgOiAwLAorCQkgICAgICBUcmlvT3V0U3RyZWFtU3RyaW5nTWF4LCBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgaWYgKG1heCA+IDApCisgICAgKmJ1ZmZlciA9IE5JTDsKKyAgVFJJT19WQV9FTkQoYXJncyk7CisgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qKgorICAgUHJpbnQgYXQgbW9zdCBAcCBtYXggY2hhcmFjdGVycyB0byBzdHJpbmcuCisKKyAgIEBwYXJhbSBidWZmZXIgT3V0cHV0IHN0cmluZy4KKyAgIEBwYXJhbSBtYXggTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBwcmludC4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gYXJncyBBcmd1bWVudHMuCisgICBAcmV0dXJuIE51bWJlciBvZiBwcmludGVkIGNoYXJhY3RlcnMuCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb192c25wcmludGYKK1RSSU9fQVJHUzQoKGJ1ZmZlciwgbWF4LCBmb3JtYXQsIGFyZ3MpLAorCSAgIGNoYXIgKmJ1ZmZlciwKKwkgICBzaXplX3QgbWF4LAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHZhX2xpc3QgYXJncykKK3sKKyAgaW50IHN0YXR1czsKKworICBhc3NlcnQoVkFMSUQoYnVmZmVyKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICBzdGF0dXMgPSBUcmlvRm9ybWF0KCZidWZmZXIsIG1heCA+IDAgPyBtYXggLSAxIDogMCwKKwkJICAgICAgVHJpb091dFN0cmVhbVN0cmluZ01heCwgZm9ybWF0LCAmYXJncywgTlVMTCk7CisgIGlmIChtYXggPiAwKQorICAgICpidWZmZXIgPSBOSUw7CisgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qKgorICAgUHJpbnQgYXQgbW9zdCBAcCBtYXggY2hhcmFjdGVycyB0byBzdHJpbmcuCisKKyAgIEBwYXJhbSBidWZmZXIgT3V0cHV0IHN0cmluZy4KKyAgIEBwYXJhbSBtYXggTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBwcmludC4KKyAgIEBwYXJhbSBmb3JtYXQgRm9ybWF0dGluZyBzdHJpbmcuCisgICBAcGFyYW0gYXJncyBBcmd1bWVudHMuCisgICBAcmV0dXJuIE51bWJlciBvZiBwcmludGVkIGNoYXJhY3RlcnMuCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb19zbnByaW50ZnYKK1RSSU9fQVJHUzQoKGJ1ZmZlciwgbWF4LCBmb3JtYXQsIGFyZ3MpLAorCSAgIGNoYXIgKmJ1ZmZlciwKKwkgICBzaXplX3QgbWF4LAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdzKQoreworICBpbnQgc3RhdHVzOworCisgIGFzc2VydChWQUxJRChidWZmZXIpKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworCisgIHN0YXR1cyA9IFRyaW9Gb3JtYXQoJmJ1ZmZlciwgbWF4ID4gMCA/IG1heCAtIDEgOiAwLAorCQkgICAgICBUcmlvT3V0U3RyZWFtU3RyaW5nTWF4LCBmb3JtYXQsIE5VTEwsIGFyZ3MpOworICBpZiAobWF4ID4gMCkKKyAgICAqYnVmZmVyID0gTklMOworICByZXR1cm4gc3RhdHVzOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogc25wcmludGZjYXQKKyAqIEFwcGVuZHMgdGhlIG5ldyBzdHJpbmcgdG8gdGhlIGJ1ZmZlciBzdHJpbmcgb3ZlcndyaXRpbmcgdGhlICdcMCcKKyAqIGNoYXJhY3RlciBhdCB0aGUgZW5kIG9mIGJ1ZmZlci4KKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX3NucHJpbnRmY2F0CitUUklPX1ZBUkdTNCgoYnVmZmVyLCBtYXgsIGZvcm1hdCwgdmFfYWxpc3QpLAorCSAgICBjaGFyICpidWZmZXIsCisJICAgIHNpemVfdCBtYXgsCisJICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgICBUUklPX1ZBX0RFQ0wpCit7CisgIGludCBzdGF0dXM7CisgIHZhX2xpc3QgYXJnczsKKyAgc2l6ZV90IGJ1Zl9sZW47CisKKyAgVFJJT19WQV9TVEFSVChhcmdzLCBmb3JtYXQpOworCisgIGFzc2VydChWQUxJRChidWZmZXIpKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworCisgIGJ1Zl9sZW4gPSB0cmlvX2xlbmd0aChidWZmZXIpOworICBidWZmZXIgPSAmYnVmZmVyW2J1Zl9sZW5dOworCisgIHN0YXR1cyA9IFRyaW9Gb3JtYXQoJmJ1ZmZlciwgbWF4IC0gMSAtIGJ1Zl9sZW4sCisJCSAgICAgIFRyaW9PdXRTdHJlYW1TdHJpbmdNYXgsIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworICBUUklPX1ZBX0VORChhcmdzKTsKKyAgKmJ1ZmZlciA9IE5JTDsKKyAgcmV0dXJuIHN0YXR1czsKK30KKworVFJJT19QVUJMSUMgaW50Cit0cmlvX3ZzbnByaW50ZmNhdAorVFJJT19BUkdTNCgoYnVmZmVyLCBtYXgsIGZvcm1hdCwgYXJncyksCisJICAgY2hhciAqYnVmZmVyLAorCSAgIHNpemVfdCBtYXgsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgdmFfbGlzdCBhcmdzKQoreworICBpbnQgc3RhdHVzOworICBzaXplX3QgYnVmX2xlbjsKKyAgCisgIGFzc2VydChWQUxJRChidWZmZXIpKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworCisgIGJ1Zl9sZW4gPSB0cmlvX2xlbmd0aChidWZmZXIpOworICBidWZmZXIgPSAmYnVmZmVyW2J1Zl9sZW5dOworICBzdGF0dXMgPSBUcmlvRm9ybWF0KCZidWZmZXIsIG1heCAtIDEgLSBidWZfbGVuLAorCQkgICAgICBUcmlvT3V0U3RyZWFtU3RyaW5nTWF4LCBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgKmJ1ZmZlciA9IE5JTDsKKyAgcmV0dXJuIHN0YXR1czsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fYXByaW50ZgorICovCisKKy8qIERlcHJlY2F0ZWQgKi8KK1RSSU9fUFVCTElDIGNoYXIgKgordHJpb19hcHJpbnRmCitUUklPX1ZBUkdTMigoZm9ybWF0LCB2YV9hbGlzdCksCisJICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgICBUUklPX1ZBX0RFQ0wpCit7CisgIHZhX2xpc3QgYXJnczsKKyAgdHJpb19zdHJpbmdfdCAqaW5mbzsKKyAgY2hhciAqcmVzdWx0ID0gTlVMTDsKKworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICBpbmZvID0gdHJpb194c3RyaW5nX2R1cGxpY2F0ZSgiIik7CisgIGlmIChpbmZvKQorICAgIHsKKyAgICAgIFRSSU9fVkFfU1RBUlQoYXJncywgZm9ybWF0KTsKKyAgICAgICh2b2lkKVRyaW9Gb3JtYXQoaW5mbywgMCwgVHJpb091dFN0cmVhbVN0cmluZ0R5bmFtaWMsCisJCSAgICAgICBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgICAgIFRSSU9fVkFfRU5EKGFyZ3MpOworCisgICAgICB0cmlvX3N0cmluZ190ZXJtaW5hdGUoaW5mbyk7CisgICAgICByZXN1bHQgPSB0cmlvX3N0cmluZ19leHRyYWN0KGluZm8pOworICAgICAgdHJpb19zdHJpbmdfZGVzdHJveShpbmZvKTsKKyAgICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qIERlcHJlY2F0ZWQgKi8KK1RSSU9fUFVCTElDIGNoYXIgKgordHJpb192YXByaW50ZgorVFJJT19BUkdTMigoZm9ybWF0LCBhcmdzKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2YV9saXN0IGFyZ3MpCit7CisgIHRyaW9fc3RyaW5nX3QgKmluZm87CisgIGNoYXIgKnJlc3VsdCA9IE5VTEw7CisgIAorICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICBpbmZvID0gdHJpb194c3RyaW5nX2R1cGxpY2F0ZSgiIik7CisgIGlmIChpbmZvKQorICAgIHsKKyAgICAgICh2b2lkKVRyaW9Gb3JtYXQoaW5mbywgMCwgVHJpb091dFN0cmVhbVN0cmluZ0R5bmFtaWMsCisJCSAgICAgICBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgICAgIHRyaW9fc3RyaW5nX3Rlcm1pbmF0ZShpbmZvKTsKKyAgICAgIHJlc3VsdCA9IHRyaW9fc3RyaW5nX2V4dHJhY3QoaW5mbyk7CisgICAgICB0cmlvX3N0cmluZ19kZXN0cm95KGluZm8pOworICAgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30KKworVFJJT19QVUJMSUMgaW50Cit0cmlvX2FzcHJpbnRmCitUUklPX1ZBUkdTMygocmVzdWx0LCBmb3JtYXQsIHZhX2FsaXN0KSwKKwkgICAgY2hhciAqKnJlc3VsdCwKKwkgICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgIFRSSU9fVkFfREVDTCkKK3sKKyAgdmFfbGlzdCBhcmdzOworICBpbnQgc3RhdHVzOworICB0cmlvX3N0cmluZ190ICppbmZvOworCisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICAqcmVzdWx0ID0gTlVMTDsKKyAgCisgIGluZm8gPSB0cmlvX3hzdHJpbmdfZHVwbGljYXRlKCIiKTsKKyAgaWYgKGluZm8gPT0gTlVMTCkKKyAgICB7CisgICAgICBzdGF0dXMgPSBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VOT01FTSwgMCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgVFJJT19WQV9TVEFSVChhcmdzLCBmb3JtYXQpOworICAgICAgc3RhdHVzID0gVHJpb0Zvcm1hdChpbmZvLCAwLCBUcmlvT3V0U3RyZWFtU3RyaW5nRHluYW1pYywKKwkJCSAgZm9ybWF0LCAmYXJncywgTlVMTCk7CisgICAgICBUUklPX1ZBX0VORChhcmdzKTsKKyAgICAgIGlmIChzdGF0dXMgPj0gMCkKKwl7CisJICB0cmlvX3N0cmluZ190ZXJtaW5hdGUoaW5mbyk7CisJICAqcmVzdWx0ID0gdHJpb19zdHJpbmdfZXh0cmFjdChpbmZvKTsKKwl9CisgICAgICB0cmlvX3N0cmluZ19kZXN0cm95KGluZm8pOworICAgIH0KKyAgcmV0dXJuIHN0YXR1czsKK30KKworVFJJT19QVUJMSUMgaW50Cit0cmlvX3Zhc3ByaW50ZgorVFJJT19BUkdTMygocmVzdWx0LCBmb3JtYXQsIGFyZ3MpLAorCSAgIGNoYXIgKipyZXN1bHQsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgdmFfbGlzdCBhcmdzKQoreworICBpbnQgc3RhdHVzOworICB0cmlvX3N0cmluZ190ICppbmZvOworICAKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworCisgICpyZXN1bHQgPSBOVUxMOworICAKKyAgaW5mbyA9IHRyaW9feHN0cmluZ19kdXBsaWNhdGUoIiIpOworICBpZiAoaW5mbyA9PSBOVUxMKQorICAgIHsKKyAgICAgIHN0YXR1cyA9IFRSSU9fRVJST1JfUkVUVVJOKFRSSU9fRU5PTUVNLCAwKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBzdGF0dXMgPSBUcmlvRm9ybWF0KGluZm8sIDAsIFRyaW9PdXRTdHJlYW1TdHJpbmdEeW5hbWljLAorCQkJICBmb3JtYXQsICZhcmdzLCBOVUxMKTsKKyAgICAgIGlmIChzdGF0dXMgPj0gMCkKKwl7CisJICB0cmlvX3N0cmluZ190ZXJtaW5hdGUoaW5mbyk7CisJICAqcmVzdWx0ID0gdHJpb19zdHJpbmdfZXh0cmFjdChpbmZvKTsKKwl9CisgICAgICB0cmlvX3N0cmluZ19kZXN0cm95KGluZm8pOworICAgIH0KKyAgcmV0dXJuIHN0YXR1czsKK30KKworLyoqIEB9IEVuZCBvZiBQcmludGYgZG9jdW1lbnRhdGlvbiBtb2R1bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDQUxMQkFDSworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKFRSSU9fRE9DVU1FTlRBVElPTikKKyMgaW5jbHVkZSAiZG9jL2RvY19yZWdpc3Rlci5oIgorI2VuZGlmCisvKioKKyAgIEBhZGR0b2dyb3VwIFVzZXJEZWZpbmVkCisgICBAeworKi8KKworI2lmIFRSSU9fRVhURU5TSU9OCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX3JlZ2lzdGVyCisgKi8KKworLyoqCisgICBSZWdpc3RlciBuZXcgdXNlci1kZWZpbmVkIHNwZWNpZmllci4KKworICAgQHBhcmFtIGNhbGxiYWNrCisgICBAcGFyYW0gbmFtZQorICAgQHJldHVybiBIYW5kbGUuCisgKi8KK1RSSU9fUFVCTElDIHRyaW9fcG9pbnRlcl90IAordHJpb19yZWdpc3RlcgorVFJJT19BUkdTMigoY2FsbGJhY2ssIG5hbWUpLAorCSAgIHRyaW9fY2FsbGJhY2tfdCBjYWxsYmFjaywKKwkgICBUUklPX0NPTlNUIGNoYXIgKm5hbWUpCit7CisgIHRyaW9fdXNlcmRlZl90ICpkZWY7CisgIHRyaW9fdXNlcmRlZl90ICpwcmV2ID0gTlVMTDsKKworICBpZiAoY2FsbGJhY2sgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKworICBpZiAobmFtZSkKKyAgICB7CisgICAgICAvKiBIYW5kbGUgYnVpbHQtaW4gbmFtZXNwYWNlcyAqLworICAgICAgaWYgKG5hbWVbMF0gPT0gJzonKQorCXsKKwkgIGlmICh0cmlvX2VxdWFsKG5hbWUsICI6ZW50ZXIiKSkKKwkgICAgeworCSAgICAgIGludGVybmFsRW50ZXJDcml0aWNhbFJlZ2lvbiA9IGNhbGxiYWNrOworCSAgICB9CisJICBlbHNlIGlmICh0cmlvX2VxdWFsKG5hbWUsICI6bGVhdmUiKSkKKwkgICAgeworCSAgICAgIGludGVybmFsTGVhdmVDcml0aWNhbFJlZ2lvbiA9IGNhbGxiYWNrOworCSAgICB9CisJICByZXR1cm4gTlVMTDsKKwl9CisgICAgICAKKyAgICAgIC8qIEJhaWwgb3V0IGlmIG5hbWVzcGFjZSBpcyB0b28gbG9uZyAqLworICAgICAgaWYgKHRyaW9fbGVuZ3RoKG5hbWUpID49IE1BWF9VU0VSX05BTUUpCisJcmV0dXJuIE5VTEw7CisgICAgICAKKyAgICAgIC8qIEJhaWwgb3V0IGlmIG5hbWVzcGFjZSBhbHJlYWR5IGlzIHJlZ2lzdGVyZWQgKi8KKyAgICAgIGRlZiA9IFRyaW9GaW5kTmFtZXNwYWNlKG5hbWUsICZwcmV2KTsKKyAgICAgIGlmIChkZWYpCisJcmV0dXJuIE5VTEw7CisgICAgfQorICAKKyAgZGVmID0gKHRyaW9fdXNlcmRlZl90ICopVFJJT19NQUxMT0Moc2l6ZW9mKHRyaW9fdXNlcmRlZl90KSk7CisgIGlmIChkZWYpCisgICAgeworICAgICAgaWYgKGludGVybmFsRW50ZXJDcml0aWNhbFJlZ2lvbikKKwkodm9pZClpbnRlcm5hbEVudGVyQ3JpdGljYWxSZWdpb24oTlVMTCk7CisgICAgICAKKyAgICAgIGlmIChuYW1lKQorCXsKKwkgIC8qIExpbmsgaW50byBpbnRlcm5hbCBsaXN0ICovCisJICBpZiAocHJldiA9PSBOVUxMKQorCSAgICBpbnRlcm5hbFVzZXJEZWYgPSBkZWY7CisJICBlbHNlCisJICAgIHByZXYtPm5leHQgPSBkZWY7CisJfQorICAgICAgLyogSW5pdGlhbGl6ZSAqLworICAgICAgZGVmLT5jYWxsYmFjayA9IGNhbGxiYWNrOworICAgICAgZGVmLT5uYW1lID0gKG5hbWUgPT0gTlVMTCkKKwk/IE5VTEwKKwk6IHRyaW9fZHVwbGljYXRlKG5hbWUpOworICAgICAgZGVmLT5uZXh0ID0gTlVMTDsKKworICAgICAgaWYgKGludGVybmFsTGVhdmVDcml0aWNhbFJlZ2lvbikKKwkodm9pZClpbnRlcm5hbExlYXZlQ3JpdGljYWxSZWdpb24oTlVMTCk7CisgICAgfQorICByZXR1cm4gKHRyaW9fcG9pbnRlcl90KWRlZjsKK30KKworLyoqCisgICBVbnJlZ2lzdGVyIGFuIGV4aXN0aW5nIHVzZXItZGVmaW5lZCBzcGVjaWZpZXIuCisKKyAgIEBwYXJhbSBoYW5kbGUKKyAqLwordm9pZAordHJpb191bnJlZ2lzdGVyCitUUklPX0FSR1MxKChoYW5kbGUpLAorCSAgIHRyaW9fcG9pbnRlcl90IGhhbmRsZSkKK3sKKyAgdHJpb191c2VyZGVmX3QgKnNlbGYgPSAodHJpb191c2VyZGVmX3QgKiloYW5kbGU7CisgIHRyaW9fdXNlcmRlZl90ICpkZWY7CisgIHRyaW9fdXNlcmRlZl90ICpwcmV2ID0gTlVMTDsKKworICBhc3NlcnQoVkFMSUQoc2VsZikpOworCisgIGlmIChzZWxmLT5uYW1lKQorICAgIHsKKyAgICAgIGRlZiA9IFRyaW9GaW5kTmFtZXNwYWNlKHNlbGYtPm5hbWUsICZwcmV2KTsKKyAgICAgIGlmIChkZWYpCisJeworCSAgaWYgKGludGVybmFsRW50ZXJDcml0aWNhbFJlZ2lvbikKKwkgICAgKHZvaWQpaW50ZXJuYWxFbnRlckNyaXRpY2FsUmVnaW9uKE5VTEwpOworCSAgCisJICBpZiAocHJldiA9PSBOVUxMKQorCSAgICBpbnRlcm5hbFVzZXJEZWYgPSBOVUxMOworCSAgZWxzZQorCSAgICBwcmV2LT5uZXh0ID0gZGVmLT5uZXh0OworCSAgCisJICBpZiAoaW50ZXJuYWxMZWF2ZUNyaXRpY2FsUmVnaW9uKQorCSAgICAodm9pZClpbnRlcm5hbExlYXZlQ3JpdGljYWxSZWdpb24oTlVMTCk7CisJfQorICAgICAgdHJpb19kZXN0cm95KHNlbGYtPm5hbWUpOworICAgIH0KKyAgVFJJT19GUkVFKHNlbGYpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19nZXRfZm9ybWF0IFtwdWJsaWNdCisgKi8KK1RSSU9fQ09OU1QgY2hhciAqCit0cmlvX2dldF9mb3JtYXQKK1RSSU9fQVJHUzEoKHJlZiksCisJICAgdHJpb19wb2ludGVyX3QgcmVmKQoreworI2lmIGRlZmluZWQoRk9STUFUX1VTRVJfREVGSU5FRCkKKyAgYXNzZXJ0KCgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+dHlwZSA9PSBGT1JNQVRfVVNFUl9ERUZJTkVEKTsKKyNlbmRpZgorICAKKyAgcmV0dXJuICgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPnVzZXJfZGF0YSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9hcmd1bWVudCBbcHVibGljXQorICovCit0cmlvX3BvaW50ZXJfdCAKK3RyaW9fZ2V0X2FyZ3VtZW50CitUUklPX0FSR1MxKChyZWYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZikKK3sKKyNpZiBkZWZpbmVkKEZPUk1BVF9VU0VSX0RFRklORUQpCisgIGFzc2VydCgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPnR5cGUgPT0gRk9STUFUX1VTRVJfREVGSU5FRCk7CisjZW5kaWYKKyAgCisgIHJldHVybiAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmRhdGEucG9pbnRlcjsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fZ2V0X3dpZHRoIC8gdHJpb19zZXRfd2lkdGggW3B1YmxpY10KKyAqLworaW50Cit0cmlvX2dldF93aWR0aAorVFJJT19BUkdTMSgocmVmKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYpCit7CisgIHJldHVybiAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPndpZHRoOworfQorCit2b2lkCit0cmlvX3NldF93aWR0aAorVFJJT19BUkdTMigocmVmLCB3aWR0aCksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCB3aWR0aCkKK3sKKyAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT53aWR0aCA9IHdpZHRoOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19nZXRfcHJlY2lzaW9uIC8gdHJpb19zZXRfcHJlY2lzaW9uIFtwdWJsaWNdCisgKi8KK2ludAordHJpb19nZXRfcHJlY2lzaW9uCitUUklPX0FSR1MxKChyZWYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZikKK3sKKyAgcmV0dXJuICgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPnByZWNpc2lvbik7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X3ByZWNpc2lvbgorVFJJT19BUkdTMigocmVmLCBwcmVjaXNpb24pLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgcHJlY2lzaW9uKQoreworICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPnByZWNpc2lvbiA9IHByZWNpc2lvbjsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fZ2V0X2Jhc2UgLyB0cmlvX3NldF9iYXNlIFtwdWJsaWNdCisgKi8KK2ludAordHJpb19nZXRfYmFzZQorVFJJT19BUkdTMSgocmVmKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYpCit7CisgIHJldHVybiAoKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5iYXNlKTsKK30KKwordm9pZAordHJpb19zZXRfYmFzZQorVFJJT19BUkdTMigocmVmLCBiYXNlKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYsCisJICAgaW50IGJhc2UpCit7CisgICgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+YmFzZSA9IGJhc2U7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9sb25nIC8gdHJpb19zZXRfbG9uZyBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X2xvbmcKK1RSSU9fQVJHUzEoKHJlZiksCisJICAgdHJpb19wb2ludGVyX3QgcmVmKQoreworICByZXR1cm4gKCgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJiBGTEFHU19MT05HKQorICAgID8gVFJVRQorICAgIDogRkFMU0U7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X2xvbmcKK1RSSU9fQVJHUzIoKHJlZiwgaXNfbG9uZyksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCBpc19sb25nKQoreworICBpZiAoaXNfbG9uZykKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX0xPTkc7CisgIGVsc2UKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICY9IH5GTEFHU19MT05HOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19nZXRfbG9uZ2xvbmcgLyB0cmlvX3NldF9sb25nbG9uZyBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X2xvbmdsb25nCitUUklPX0FSR1MxKChyZWYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZikKK3sKKyAgcmV0dXJuICgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICYgRkxBR1NfUVVBRCkKKyAgICA/IFRSVUUKKyAgICA6IEZBTFNFOworfQorCit2b2lkCit0cmlvX3NldF9sb25nbG9uZworVFJJT19BUkdTMigocmVmLCBpc19sb25nbG9uZyksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCBpc19sb25nbG9uZykKK3sKKyAgaWYgKGlzX2xvbmdsb25nKQorICAgICgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgfD0gRkxBR1NfUVVBRDsKKyAgZWxzZQorICAgICgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJj0gfkZMQUdTX1FVQUQ7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9sb25nZG91YmxlIC8gdHJpb19zZXRfbG9uZ2RvdWJsZSBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X2xvbmdkb3VibGUKK1RSSU9fQVJHUzEoKHJlZiksCisJICAgdHJpb19wb2ludGVyX3QgcmVmKQoreworICByZXR1cm4gKCgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJiBGTEFHU19MT05HRE9VQkxFKQorICAgID8gVFJVRQorICAgIDogRkFMU0U7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X2xvbmdkb3VibGUKK1RSSU9fQVJHUzIoKHJlZiwgaXNfbG9uZ2RvdWJsZSksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCBpc19sb25nZG91YmxlKQoreworICBpZiAoaXNfbG9uZ2RvdWJsZSkKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX0xPTkdET1VCTEU7CisgIGVsc2UKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICY9IH5GTEFHU19MT05HRE9VQkxFOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19nZXRfc2hvcnQgLyB0cmlvX3NldF9zaG9ydCBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X3Nob3J0CitUUklPX0FSR1MxKChyZWYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZikKK3sKKyAgcmV0dXJuICgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICYgRkxBR1NfU0hPUlQpCisgICAgPyBUUlVFCisgICAgOiBGQUxTRTsKK30KKwordm9pZAordHJpb19zZXRfc2hvcnQKK1RSSU9fQVJHUzIoKHJlZiwgaXNfc2hvcnQpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfc2hvcnQpCit7CisgIGlmIChpc19zaG9ydCkKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX1NIT1JUOworICBlbHNlCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmPSB+RkxBR1NfU0hPUlQ7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9zaG9ydHNob3J0IC8gdHJpb19zZXRfc2hvcnRzaG9ydCBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X3Nob3J0c2hvcnQKK1RSSU9fQVJHUzEoKHJlZiksCisJICAgdHJpb19wb2ludGVyX3QgcmVmKQoreworICByZXR1cm4gKCgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJiBGTEFHU19TSE9SVFNIT1JUKQorICAgID8gVFJVRQorICAgIDogRkFMU0U7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X3Nob3J0c2hvcnQKK1RSSU9fQVJHUzIoKHJlZiwgaXNfc2hvcnRzaG9ydCksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCBpc19zaG9ydHNob3J0KQoreworICBpZiAoaXNfc2hvcnRzaG9ydCkKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX1NIT1JUU0hPUlQ7CisgIGVsc2UKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICY9IH5GTEFHU19TSE9SVFNIT1JUOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19nZXRfYWx0ZXJuYXRpdmUgLyB0cmlvX3NldF9hbHRlcm5hdGl2ZSBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X2FsdGVybmF0aXZlCitUUklPX0FSR1MxKChyZWYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZikKK3sKKyAgcmV0dXJuICgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICYgRkxBR1NfQUxURVJOQVRJVkUpCisgICAgPyBUUlVFCisgICAgOiBGQUxTRTsKK30KKwordm9pZAordHJpb19zZXRfYWx0ZXJuYXRpdmUKK1RSSU9fQVJHUzIoKHJlZiwgaXNfYWx0ZXJuYXRpdmUpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfYWx0ZXJuYXRpdmUpCit7CisgIGlmIChpc19hbHRlcm5hdGl2ZSkKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX0FMVEVSTkFUSVZFOworICBlbHNlCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmPSB+RkxBR1NfQUxURVJOQVRJVkU7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9hbGlnbm1lbnQgLyB0cmlvX3NldF9hbGlnbm1lbnQgW3B1YmxpY10KKyAqLworaW50Cit0cmlvX2dldF9hbGlnbm1lbnQKK1RSSU9fQVJHUzEoKHJlZiksCisJICAgdHJpb19wb2ludGVyX3QgcmVmKQoreworICByZXR1cm4gKCgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJiBGTEFHU19MRUZUQURKVVNUKQorICAgID8gVFJVRQorICAgIDogRkFMU0U7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X2FsaWdubWVudAorVFJJT19BUkdTMigocmVmLCBpc19sZWZ0YWxpZ25lZCksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCBpc19sZWZ0YWxpZ25lZCkKK3sKKyAgaWYgKGlzX2xlZnRhbGlnbmVkKQorICAgICgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgfD0gRkxBR1NfTEVGVEFESlVTVDsKKyAgZWxzZQorICAgICgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJj0gfkZMQUdTX0xFRlRBREpVU1Q7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9zcGFjaW5nIC90cmlvX3NldF9zcGFjaW5nIFtwdWJsaWNdCisgKi8KK2ludAordHJpb19nZXRfc3BhY2luZworVFJJT19BUkdTMSgocmVmKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYpCit7CisgIHJldHVybiAoKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmIEZMQUdTX1NQQUNFKQorICAgID8gVFJVRQorICAgIDogRkFMU0U7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X3NwYWNpbmcKK1RSSU9fQVJHUzIoKHJlZiwgaXNfc3BhY2UpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfc3BhY2UpCit7CisgIGlmIChpc19zcGFjZSkKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX1NQQUNFOworICBlbHNlCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmPSB+RkxBR1NfU1BBQ0U7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9zaWduIC8gdHJpb19zZXRfc2lnbiBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X3NpZ24KK1RSSU9fQVJHUzEoKHJlZiksCisJICAgdHJpb19wb2ludGVyX3QgcmVmKQoreworICByZXR1cm4gKCgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJiBGTEFHU19TSE9XU0lHTikKKyAgICA/IFRSVUUKKyAgICA6IEZBTFNFOworfQorCit2b2lkCit0cmlvX3NldF9zaWduCitUUklPX0FSR1MyKChyZWYsIGlzX3NpZ24pLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfc2lnbikKK3sKKyAgaWYgKGlzX3NpZ24pCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyB8PSBGTEFHU19TSE9XU0lHTjsKKyAgZWxzZQorICAgICgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJj0gfkZMQUdTX1NIT1dTSUdOOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19nZXRfcGFkZGluZyAvIHRyaW9fc2V0X3BhZGRpbmcgW3B1YmxpY10KKyAqLworaW50Cit0cmlvX2dldF9wYWRkaW5nCitUUklPX0FSR1MxKChyZWYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZikKK3sKKyAgcmV0dXJuICgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICYgRkxBR1NfTklMUEFERElORykKKyAgICA/IFRSVUUKKyAgICA6IEZBTFNFOworfQorCit2b2lkCit0cmlvX3NldF9wYWRkaW5nCitUUklPX0FSR1MyKChyZWYsIGlzX3BhZGRpbmcpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfcGFkZGluZykKK3sKKyAgaWYgKGlzX3BhZGRpbmcpCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyB8PSBGTEFHU19OSUxQQURESU5HOworICBlbHNlCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmPSB+RkxBR1NfTklMUEFERElORzsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fZ2V0X3F1b3RlIC8gdHJpb19zZXRfcXVvdGUgW3B1YmxpY10KKyAqLworaW50Cit0cmlvX2dldF9xdW90ZQorVFJJT19BUkdTMSgocmVmKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYpCit7CisgIHJldHVybiAoKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmIEZMQUdTX1FVT1RFKQorICAgID8gVFJVRQorICAgIDogRkFMU0U7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X3F1b3RlCitUUklPX0FSR1MyKChyZWYsIGlzX3F1b3RlKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYsCisJICAgaW50IGlzX3F1b3RlKQoreworICBpZiAoaXNfcXVvdGUpCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyB8PSBGTEFHU19RVU9URTsKKyAgZWxzZQorICAgICgodHJpb19yZWZlcmVuY2VfdCAqKXJlZiktPnBhcmFtZXRlci0+ZmxhZ3MgJj0gfkZMQUdTX1FVT1RFOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19nZXRfdXBwZXIgLyB0cmlvX3NldF91cHBlciBbcHVibGljXQorICovCitpbnQKK3RyaW9fZ2V0X3VwcGVyCitUUklPX0FSR1MxKChyZWYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZikKK3sKKyAgcmV0dXJuICgoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICYgRkxBR1NfVVBQRVIpCisgICAgPyBUUlVFCisgICAgOiBGQUxTRTsKK30KKwordm9pZAordHJpb19zZXRfdXBwZXIKK1RSSU9fQVJHUzIoKHJlZiwgaXNfdXBwZXIpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfdXBwZXIpCit7CisgIGlmIChpc191cHBlcikKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX1VQUEVSOworICBlbHNlCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmPSB+RkxBR1NfVVBQRVI7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9sYXJnZXN0IC8gdHJpb19zZXRfbGFyZ2VzdCBbcHVibGljXQorICovCisjaWYgVFJJT19DOTkKK2ludAordHJpb19nZXRfbGFyZ2VzdAorVFJJT19BUkdTMSgocmVmKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYpCit7CisgIHJldHVybiAoKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmIEZMQUdTX0lOVE1BWF9UKQorICAgID8gVFJVRQorICAgIDogRkFMU0U7Cit9CisKK3ZvaWQKK3RyaW9fc2V0X2xhcmdlc3QKK1RSSU9fQVJHUzIoKHJlZiwgaXNfbGFyZ2VzdCksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCBpc19sYXJnZXN0KQoreworICBpZiAoaXNfbGFyZ2VzdCkKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzIHw9IEZMQUdTX0lOVE1BWF9UOworICBlbHNlCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmPSB+RkxBR1NfSU5UTUFYX1Q7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fZ2V0X3B0cmRpZmYgLyB0cmlvX3NldF9wdHJkaWZmIFtwdWJsaWNdCisgKi8KK2ludAordHJpb19nZXRfcHRyZGlmZgorVFJJT19BUkdTMSgocmVmKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYpCit7CisgIHJldHVybiAoKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmIEZMQUdTX1BUUkRJRkZfVCkKKyAgICA/IFRSVUUKKyAgICA6IEZBTFNFOworfQorCit2b2lkCit0cmlvX3NldF9wdHJkaWZmCitUUklPX0FSR1MyKChyZWYsIGlzX3B0cmRpZmYpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfcHRyZGlmZikKK3sKKyAgaWYgKGlzX3B0cmRpZmYpCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyB8PSBGTEFHU19QVFJESUZGX1Q7CisgIGVsc2UKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICY9IH5GTEFHU19QVFJESUZGX1Q7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2dldF9zaXplIC8gdHJpb19zZXRfc2l6ZSBbcHVibGljXQorICovCisjaWYgVFJJT19DOTkKK2ludAordHJpb19nZXRfc2l6ZQorVFJJT19BUkdTMSgocmVmKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYpCit7CisgIHJldHVybiAoKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyAmIEZMQUdTX1NJWkVfVCkKKyAgICA/IFRSVUUKKyAgICA6IEZBTFNFOworfQorCit2b2lkCit0cmlvX3NldF9zaXplCitUUklPX0FSR1MyKChyZWYsIGlzX3NpemUpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBpbnQgaXNfc2l6ZSkKK3sKKyAgaWYgKGlzX3NpemUpCisgICAgKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmKS0+cGFyYW1ldGVyLT5mbGFncyB8PSBGTEFHU19TSVpFX1Q7CisgIGVsc2UKKyAgICAoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYpLT5wYXJhbWV0ZXItPmZsYWdzICY9IH5GTEFHU19TSVpFX1Q7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fcHJpbnRfaW50IFtwdWJsaWNdCisgKi8KK3ZvaWQKK3RyaW9fcHJpbnRfaW50CitUUklPX0FSR1MyKChyZWYsIG51bWJlciksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGludCBudW1iZXIpCit7CisgIHRyaW9fcmVmZXJlbmNlX3QgKnNlbGYgPSAodHJpb19yZWZlcmVuY2VfdCAqKXJlZjsKKworICBUcmlvV3JpdGVOdW1iZXIoc2VsZi0+ZGF0YSwKKwkJICAodHJpb191aW50bWF4X3QpbnVtYmVyLAorCQkgIHNlbGYtPnBhcmFtZXRlci0+ZmxhZ3MsCisJCSAgc2VsZi0+cGFyYW1ldGVyLT53aWR0aCwKKwkJICBzZWxmLT5wYXJhbWV0ZXItPnByZWNpc2lvbiwKKwkJICBzZWxmLT5wYXJhbWV0ZXItPmJhc2UpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19wcmludF91aW50IFtwdWJsaWNdCisgKi8KK3ZvaWQKK3RyaW9fcHJpbnRfdWludAorVFJJT19BUkdTMigocmVmLCBudW1iZXIpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICB1bnNpZ25lZCBpbnQgbnVtYmVyKQoreworICB0cmlvX3JlZmVyZW5jZV90ICpzZWxmID0gKHRyaW9fcmVmZXJlbmNlX3QgKilyZWY7CisKKyAgVHJpb1dyaXRlTnVtYmVyKHNlbGYtPmRhdGEsCisJCSAgKHRyaW9fdWludG1heF90KW51bWJlciwKKwkJICBzZWxmLT5wYXJhbWV0ZXItPmZsYWdzIHwgRkxBR1NfVU5TSUdORUQsCisJCSAgc2VsZi0+cGFyYW1ldGVyLT53aWR0aCwKKwkJICBzZWxmLT5wYXJhbWV0ZXItPnByZWNpc2lvbiwKKwkJICBzZWxmLT5wYXJhbWV0ZXItPmJhc2UpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19wcmludF9kb3VibGUgW3B1YmxpY10KKyAqLwordm9pZAordHJpb19wcmludF9kb3VibGUKK1RSSU9fQVJHUzIoKHJlZiwgbnVtYmVyKSwKKwkgICB0cmlvX3BvaW50ZXJfdCByZWYsCisJICAgZG91YmxlIG51bWJlcikKK3sKKyAgdHJpb19yZWZlcmVuY2VfdCAqc2VsZiA9ICh0cmlvX3JlZmVyZW5jZV90ICopcmVmOworCisgIFRyaW9Xcml0ZURvdWJsZShzZWxmLT5kYXRhLAorCQkgIG51bWJlciwKKwkJICBzZWxmLT5wYXJhbWV0ZXItPmZsYWdzLAorCQkgIHNlbGYtPnBhcmFtZXRlci0+d2lkdGgsCisJCSAgc2VsZi0+cGFyYW1ldGVyLT5wcmVjaXNpb24sCisJCSAgc2VsZi0+cGFyYW1ldGVyLT5iYXNlKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fcHJpbnRfc3RyaW5nIFtwdWJsaWNdCisgKi8KK3ZvaWQKK3RyaW9fcHJpbnRfc3RyaW5nCitUUklPX0FSR1MyKChyZWYsIHN0cmluZyksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIGNoYXIgKnN0cmluZykKK3sKKyAgdHJpb19yZWZlcmVuY2VfdCAqc2VsZiA9ICh0cmlvX3JlZmVyZW5jZV90ICopcmVmOworCisgIFRyaW9Xcml0ZVN0cmluZyhzZWxmLT5kYXRhLAorCQkgIHN0cmluZywKKwkJICBzZWxmLT5wYXJhbWV0ZXItPmZsYWdzLAorCQkgIHNlbGYtPnBhcmFtZXRlci0+d2lkdGgsCisJCSAgc2VsZi0+cGFyYW1ldGVyLT5wcmVjaXNpb24pOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19wcmludF9yZWYgW3B1YmxpY10KKyAqLworaW50Cit0cmlvX3ByaW50X3JlZgorVFJJT19WQVJHUzMoKHJlZiwgZm9ybWF0LCB2YV9hbGlzdCksCisJICAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgIFRSSU9fVkFfREVDTCkKK3sKKyAgaW50IHN0YXR1czsKKyAgdmFfbGlzdCBhcmdsaXN0OworCisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIFRSSU9fVkFfU1RBUlQoYXJnbGlzdCwgZm9ybWF0KTsKKyAgc3RhdHVzID0gVHJpb0Zvcm1hdFJlZigodHJpb19yZWZlcmVuY2VfdCAqKXJlZiwgZm9ybWF0LCAmYXJnbGlzdCwgTlVMTCk7CisgIFRSSU9fVkFfRU5EKGFyZ2xpc3QpOworICByZXR1cm4gc3RhdHVzOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb192cHJpbnRfcmVmIFtwdWJsaWNdCisgKi8KK2ludAordHJpb192cHJpbnRfcmVmCitUUklPX0FSR1MzKChyZWYsIGZvcm1hdCwgYXJnbGlzdCksCisJICAgdHJpb19wb2ludGVyX3QgcmVmLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHZhX2xpc3QgYXJnbGlzdCkKK3sKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgcmV0dXJuIFRyaW9Gb3JtYXRSZWYoKHRyaW9fcmVmZXJlbmNlX3QgKilyZWYsIGZvcm1hdCwgJmFyZ2xpc3QsIE5VTEwpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19wcmludHZfcmVmIFtwdWJsaWNdCisgKi8KK2ludAordHJpb19wcmludHZfcmVmCitUUklPX0FSR1MzKChyZWYsIGZvcm1hdCwgYXJnYXJyYXkpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB0cmlvX3BvaW50ZXJfdCAqYXJnYXJyYXkpCit7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIHJldHVybiBUcmlvRm9ybWF0UmVmKCh0cmlvX3JlZmVyZW5jZV90ICopcmVmLCBmb3JtYXQsIE5VTEwsIGFyZ2FycmF5KTsKK30KKworI2VuZGlmIC8qIFRSSU9fRVhURU5TSU9OICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX3ByaW50X3BvaW50ZXIgW3B1YmxpY10KKyAqLwordm9pZAordHJpb19wcmludF9wb2ludGVyCitUUklPX0FSR1MyKChyZWYsIHBvaW50ZXIpLAorCSAgIHRyaW9fcG9pbnRlcl90IHJlZiwKKwkgICB0cmlvX3BvaW50ZXJfdCBwb2ludGVyKQoreworICB0cmlvX3JlZmVyZW5jZV90ICpzZWxmID0gKHRyaW9fcmVmZXJlbmNlX3QgKilyZWY7CisgIHRyaW9fZmxhZ3NfdCBmbGFnczsKKyAgdHJpb191aW50bWF4X3QgbnVtYmVyOworCisgIGlmIChOVUxMID09IHBvaW50ZXIpCisgICAgeworICAgICAgVFJJT19DT05TVCBjaGFyICpzdHJpbmcgPSBpbnRlcm5hbE51bGxTdHJpbmc7CisgICAgICB3aGlsZSAoKnN0cmluZykKKwlzZWxmLT5kYXRhLT5PdXRTdHJlYW0oc2VsZi0+ZGF0YSwgKnN0cmluZysrKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKgorICAgICAgICogVGhlIHN1YnRyYWN0aW9uIG9mIHRoZSBudWxsIHBvaW50ZXIgaXMgYSB3b3JrYXJvdW5kCisgICAgICAgKiB0byBhdm9pZCBhIGNvbXBpbGVyIHdhcm5pbmcuIFRoZSBwZXJmb3JtYW5jZSBvdmVyaGVhZAorICAgICAgICogaXMgbmVnbGlnaWJsZSAoYW5kIGxpa2VseSB0byBiZSByZW1vdmVkIGJ5IGFuCisgICAgICAgKiBvcHRpbWl6aW5nIGNvbXBpbGVyKS4gVGhlIChjaGFyICopIGNhc3RpbmcgaXMgZG9uZQorICAgICAgICogdG8gcGxlYXNlIEFOU0kgQysrLgorICAgICAgICovCisgICAgICBudW1iZXIgPSAodHJpb191aW50bWF4X3QpKChjaGFyICopcG9pbnRlciAtIChjaGFyICopMCk7CisgICAgICAvKiBTaHJpbmsgdG8gc2l6ZSBvZiBwb2ludGVyICovCisgICAgICBudW1iZXIgJj0gKHRyaW9fdWludG1heF90KS0xOworICAgICAgZmxhZ3MgPSBzZWxmLT5wYXJhbWV0ZXItPmZsYWdzOworICAgICAgZmxhZ3MgfD0gKEZMQUdTX1VOU0lHTkVEIHwgRkxBR1NfQUxURVJOQVRJVkUgfAorCSAgICAgICAgRkxBR1NfTklMUEFERElORyk7CisgICAgICBUcmlvV3JpdGVOdW1iZXIoc2VsZi0+ZGF0YSwKKwkJICAgICAgbnVtYmVyLAorCQkgICAgICBmbGFncywKKwkJICAgICAgUE9JTlRFUl9XSURUSCwKKwkJICAgICAgTk9fUFJFQ0lTSU9OLAorCQkgICAgICBCQVNFX0hFWCk7CisgICAgfQorfQorCisvKiogQH0gRW5kIG9mIFVzZXJEZWZpbmVkIGRvY3VtZW50YXRpb24gbW9kdWxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogTE9DQUxFUworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB0cmlvX2xvY2FsZV9zZXRfZGVjaW1hbF9wb2ludAorICoKKyAqIERlY2ltYWwgcG9pbnQgY2FuIG9ubHkgYmUgb25lIGNoYXJhY3Rlci4gVGhlIGlucHV0IGFyZ3VtZW50IGlzIGEKKyAqIHN0cmluZyB0byBlbmFibGUgbXVsdGlieXRlIGNoYXJhY3RlcnMuIEF0IG1vc3QgTUJfTEVOX01BWCBjaGFyYWN0ZXJzCisgKiB3aWxsIGJlIHVzZWQuCisgKi8KK1RSSU9fUFVCTElDIHZvaWQKK3RyaW9fbG9jYWxlX3NldF9kZWNpbWFsX3BvaW50CitUUklPX0FSR1MxKChkZWNpbWFsUG9pbnQpLAorCSAgIGNoYXIgKmRlY2ltYWxQb2ludCkKK3sKKyNpZiBkZWZpbmVkKFVTRV9MT0NBTEUpCisgIGlmIChOVUxMID09IGludGVybmFsTG9jYWxlVmFsdWVzKQorICAgIHsKKyAgICAgIFRyaW9TZXRMb2NhbGUoKTsKKyAgICB9CisjZW5kaWYKKyAgaW50ZXJuYWxEZWNpbWFsUG9pbnRMZW5ndGggPSB0cmlvX2xlbmd0aChkZWNpbWFsUG9pbnQpOworICBpZiAoaW50ZXJuYWxEZWNpbWFsUG9pbnRMZW5ndGggPT0gMSkKKyAgICB7CisgICAgICBpbnRlcm5hbERlY2ltYWxQb2ludCA9ICpkZWNpbWFsUG9pbnQ7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgaW50ZXJuYWxEZWNpbWFsUG9pbnQgPSBOSUw7CisgICAgICB0cmlvX2NvcHlfbWF4KGludGVybmFsRGVjaW1hbFBvaW50U3RyaW5nLAorCQkgICAgc2l6ZW9mKGludGVybmFsRGVjaW1hbFBvaW50U3RyaW5nKSwKKwkJICAgIGRlY2ltYWxQb2ludCk7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19sb2NhbGVfc2V0X3Rob3VzYW5kX3NlcGFyYXRvcgorICoKKyAqIFNlZSB0cmlvX2xvY2FsZV9zZXRfZGVjaW1hbF9wb2ludAorICovCitUUklPX1BVQkxJQyB2b2lkCit0cmlvX2xvY2FsZV9zZXRfdGhvdXNhbmRfc2VwYXJhdG9yCitUUklPX0FSR1MxKCh0aG91c2FuZFNlcGFyYXRvciksCisJICAgY2hhciAqdGhvdXNhbmRTZXBhcmF0b3IpCit7CisjaWYgZGVmaW5lZChVU0VfTE9DQUxFKQorICBpZiAoTlVMTCA9PSBpbnRlcm5hbExvY2FsZVZhbHVlcykKKyAgICB7CisgICAgICBUcmlvU2V0TG9jYWxlKCk7CisgICAgfQorI2VuZGlmCisgIHRyaW9fY29weV9tYXgoaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvciwKKwkJc2l6ZW9mKGludGVybmFsVGhvdXNhbmRTZXBhcmF0b3IpLAorCQl0aG91c2FuZFNlcGFyYXRvcik7CisgIGludGVybmFsVGhvdXNhbmRTZXBhcmF0b3JMZW5ndGggPSB0cmlvX2xlbmd0aChpbnRlcm5hbFRob3VzYW5kU2VwYXJhdG9yKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHRyaW9fbG9jYWxlX3NldF9ncm91cGluZworICoKKyAqIEFycmF5IG9mIGJ5dGVzLiBSZXZlcnNlZCBvcmRlci4KKyAqCisgKiAgQ0hBUl9NQVggOiBObyBmdXJ0aGVyIGdyb3VwaW5nCisgKiAgMCAgICAgICAgOiBSZXBlYXQgbGFzdCBncm91cCBmb3IgdGhlIHJlbWFpbmluZyBkaWdpdHMgKG5vdCBuZWNlc3NhcnkKKyAqICAgICAgICAgICAgIGFzIEMgc3RyaW5ncyBhcmUgemVyby10ZXJtaW5hdGVkKQorICogIG4gICAgICAgIDogU2V0IGN1cnJlbnQgZ3JvdXAgdG8gbgorICoKKyAqIFNhbWUgb3JkZXIgYXMgdGhlIGdyb3VwaW5nIGF0dHJpYnV0ZSBpbiBMQ19OVU1FUklDLgorICovCitUUklPX1BVQkxJQyB2b2lkCit0cmlvX2xvY2FsZV9zZXRfZ3JvdXBpbmcKK1RSSU9fQVJHUzEoKGdyb3VwaW5nKSwKKwkgICBjaGFyICpncm91cGluZykKK3sKKyNpZiBkZWZpbmVkKFVTRV9MT0NBTEUpCisgIGlmIChOVUxMID09IGludGVybmFsTG9jYWxlVmFsdWVzKQorICAgIHsKKyAgICAgIFRyaW9TZXRMb2NhbGUoKTsKKyAgICB9CisjZW5kaWYKKyAgdHJpb19jb3B5X21heChpbnRlcm5hbEdyb3VwaW5nLAorCQlzaXplb2YoaW50ZXJuYWxHcm91cGluZyksCisJCWdyb3VwaW5nKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIFNDQU5OSU5HCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9Ta2lwV2hpdGVzcGFjZXMKKyAqLworVFJJT19QUklWQVRFIGludAorVHJpb1NraXBXaGl0ZXNwYWNlcworVFJJT19BUkdTMSgoc2VsZiksCisJICAgdHJpb19jbGFzc190ICpzZWxmKQoreworICBpbnQgY2g7CisKKyAgY2ggPSBzZWxmLT5jdXJyZW50OworICB3aGlsZSAoaXNzcGFjZShjaCkpCisgICAgeworICAgICAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgJmNoKTsKKyAgICB9CisgIHJldHVybiBjaDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9HZXRDb2xsYXRpb24KKyAqLworI2lmIFRSSU9fRVhURU5TSU9OCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb0dldENvbGxhdGlvbihUUklPX05PQVJHUykKK3sKKyAgaW50IGk7CisgIGludCBqOworICBpbnQgazsKKyAgY2hhciBmaXJzdFsyXTsKKyAgY2hhciBzZWNvbmRbMl07CisKKyAgLyogVGhpcyBpcyBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlICovCisgIGZpcnN0WzFdID0gTklMOworICBzZWNvbmRbMV0gPSBOSUw7CisgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0hBUkFDVEVSX0NMQVNTOyBpKyspCisgICAgeworICAgICAgayA9IDA7CisgICAgICBmaXJzdFswXSA9IChjaGFyKWk7CisgICAgICBmb3IgKGogPSAwOyBqIDwgTUFYX0NIQVJBQ1RFUl9DTEFTUzsgaisrKQorCXsKKwkgIHNlY29uZFswXSA9IChjaGFyKWo7CisJICBpZiAodHJpb19lcXVhbF9sb2NhbGUoZmlyc3QsIHNlY29uZCkpCisJICAgIGludGVybmFsQ29sbGF0aW9uQXJyYXlbaV1baysrXSA9IChjaGFyKWo7CisJfQorICAgICAgaW50ZXJuYWxDb2xsYXRpb25BcnJheVtpXVtrXSA9IE5JTDsKKyAgICB9Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9HZXRDaGFyYWN0ZXJDbGFzcworICoKKyAqIEZJWE1FOgorICogIG11bHRpYnl0ZQorICovCitUUklPX1BSSVZBVEUgaW50CitUcmlvR2V0Q2hhcmFjdGVyQ2xhc3MKK1RSSU9fQVJHUzQoKGZvcm1hdCwgaW5kZXhQb2ludGVyLCBmbGFnc1BvaW50ZXIsIGNoYXJhY3RlcmNsYXNzKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICBpbnQgKmluZGV4UG9pbnRlciwKKwkgICB0cmlvX2ZsYWdzX3QgKmZsYWdzUG9pbnRlciwKKwkgICBpbnQgKmNoYXJhY3RlcmNsYXNzKQoreworICBpbnQgaW5kZXggPSAqaW5kZXhQb2ludGVyOworICBpbnQgaTsKKyAgY2hhciBjaDsKKyAgY2hhciByYW5nZV9iZWdpbjsKKyAgY2hhciByYW5nZV9lbmQ7CisKKyAgKmZsYWdzUG9pbnRlciAmPSB+RkxBR1NfRVhDTFVERTsKKworICBpZiAoZm9ybWF0W2luZGV4XSA9PSBRVUFMSUZJRVJfQ0lSQ1VNRkxFWCkKKyAgICB7CisgICAgICAqZmxhZ3NQb2ludGVyIHw9IEZMQUdTX0VYQ0xVREU7CisgICAgICBpbmRleCsrOworICAgIH0KKyAgLyoKKyAgICogSWYgdGhlIHVuZ3JvdXAgY2hhcmFjdGVyIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNjYW5saXN0LAorICAgKiBpdCB3aWxsIGJlIHBhcnQgb2YgdGhlIGNsYXNzLCBhbmQgYSBzZWNvbmQgdW5ncm91cCBjaGFyYWN0ZXIKKyAgICogbXVzdCBmb2xsb3cgdG8gZW5kIHRoZSBncm91cC4KKyAgICovCisgIGlmIChmb3JtYXRbaW5kZXhdID09IFNQRUNJRklFUl9VTkdST1VQKQorICAgIHsKKyAgICAgIGNoYXJhY3RlcmNsYXNzWyhpbnQpU1BFQ0lGSUVSX1VOR1JPVVBdKys7CisgICAgICBpbmRleCsrOworICAgIH0KKyAgLyoKKyAgICogTWludXMgaXMgdXNlZCB0byBzcGVjaWZ5IHJhbmdlcy4gVG8gaW5jbHVkZSBtaW51cyBpbiB0aGUgY2xhc3MsCisgICAqIGl0IG11c3QgYmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdAorICAgKi8KKyAgaWYgKGZvcm1hdFtpbmRleF0gPT0gUVVBTElGSUVSX01JTlVTKQorICAgIHsKKyAgICAgIGNoYXJhY3RlcmNsYXNzWyhpbnQpUVVBTElGSUVSX01JTlVTXSsrOworICAgICAgaW5kZXgrKzsKKyAgICB9CisgIC8qIENvbGxlY3QgY2hhcmFjdGVycyAqLworICBmb3IgKGNoID0gZm9ybWF0W2luZGV4XTsKKyAgICAgICAoY2ggIT0gU1BFQ0lGSUVSX1VOR1JPVVApICYmIChjaCAhPSBOSUwpOworICAgICAgIGNoID0gZm9ybWF0WysraW5kZXhdKQorICAgIHsKKyAgICAgIHN3aXRjaCAoY2gpCisJeworCWNhc2UgUVVBTElGSUVSX01JTlVTOiAvKiBTY2FubGlzdCByYW5nZXMgKi8KKwkgIAorCSAgLyoKKwkgICAqIEJvdGggQzk5IGFuZCBVTklYOTggZGVzY3JpYmVzIHJhbmdlcyBhcyBpbXBsZW1lbnRhdGlvbi0KKwkgICAqIGRlZmluZWQuCisJICAgKgorCSAgICogV2Ugc3VwcG9ydCB0aGUgZm9sbG93aW5nIGJlaGF2aW91ciAoYWx0aG91Z2ggdGhpcyBtYXkKKwkgICAqIGNoYW5nZSBhcyB3ZSBiZWNvbWUgd2lzZXIpCisJICAgKiAtIG9ubHkgaW5jcmVhc2luZyByYW5nZXMsIGllLiBbYS1iXSBidXQgbm90IFtiLWFdCisJICAgKiAtIHRyYW5zaXRpdmUgcmFuZ2VzLCBpZS4gW2EtYi1jXSA9PSBbYS1jXQorCSAgICogLSB0cmFpbGluZyBtaW51cywgaWUuIFthLV0gaXMgaW50ZXJwcmV0ZWQgYXMgYW4gJ2EnCisJICAgKiAgIGFuZCBhICctJworCSAgICogLSBkdXBsaWNhdGVzIChhbHRob3VnaCB3ZSBjYW4gZWFzaWx5IGNvbnZlcnQgdGhlc2UKKwkgICAqICAgaW50byBlcnJvcnMpCisJICAgKi8KKwkgIHJhbmdlX2JlZ2luID0gZm9ybWF0W2luZGV4IC0gMV07CisJICByYW5nZV9lbmQgPSBmb3JtYXRbKytpbmRleF07CisJICBpZiAocmFuZ2VfZW5kID09IFNQRUNJRklFUl9VTkdST1VQKQorCSAgICB7CisJICAgICAgLyogVHJhaWxpbmcgbWludXMgaXMgaW5jbHVkZWQgKi8KKwkgICAgICBjaGFyYWN0ZXJjbGFzc1soaW50KWNoXSsrOworCSAgICAgIGNoID0gcmFuZ2VfZW5kOworCSAgICAgIGJyZWFrOyAvKiBmb3IgKi8KKwkgICAgfQorCSAgaWYgKHJhbmdlX2VuZCA9PSBOSUwpCisJICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VJTlZBTCwgaW5kZXgpOworCSAgaWYgKHJhbmdlX2JlZ2luID4gcmFuZ2VfZW5kKQorCSAgICByZXR1cm4gVFJJT19FUlJPUl9SRVRVUk4oVFJJT19FUkFOR0UsIGluZGV4KTsKKwkgICAgCisJICBmb3IgKGkgPSAoaW50KXJhbmdlX2JlZ2luOyBpIDw9IChpbnQpcmFuZ2VfZW5kOyBpKyspCisJICAgIGNoYXJhY3RlcmNsYXNzW2ldKys7CisJICAgIAorCSAgY2ggPSByYW5nZV9lbmQ7CisJICBicmVhazsKKwkgIAorI2lmIFRSSU9fRVhURU5TSU9OCisKKwljYXNlIFNQRUNJRklFUl9HUk9VUDoKKwkgIAorCSAgc3dpdGNoIChmb3JtYXRbaW5kZXggKyAxXSkKKwkgICAgeworCSAgICBjYXNlIFFVQUxJRklFUl9ET1Q6IC8qIENvbGxhdGluZyBzeW1ib2wgKi8KKwkgICAgICAvKgorCSAgICAgICAqIEZJWE1FOiBUaGlzIHdpbGwgYmUgZWFzaWVyIHRvIGltcGxlbWVudCB3aGVuIG11bHRpYnl0ZQorCSAgICAgICAqIGNoYXJhY3RlcnMgaGF2ZSBiZWVuIGltcGxlbWVudGVkLiBVbnRpbCBub3csIHdlIGlnbm9yZQorCSAgICAgICAqIHRoaXMgZmVhdHVyZS4KKwkgICAgICAgKi8KKwkgICAgICBmb3IgKGkgPSBpbmRleCArIDI7IDsgaSsrKQorCQl7CisJCSAgaWYgKGZvcm1hdFtpXSA9PSBOSUwpCisJCSAgICAvKiBFcnJvciBpbiBzeW50YXggKi8KKwkJICAgIHJldHVybiAtMTsKKwkJICBlbHNlIGlmIChmb3JtYXRbaV0gPT0gUVVBTElGSUVSX0RPVCkKKwkJICAgIGJyZWFrOyAvKiBmb3IgKi8KKwkJfQorCSAgICAgIGlmIChmb3JtYXRbKytpXSAhPSBTUEVDSUZJRVJfVU5HUk9VUCkKKwkJcmV0dXJuIC0xOworCSAgICAgIAorCSAgICAgIGluZGV4ID0gaTsKKwkgICAgICBicmVhazsKKwkgIAorCSAgICBjYXNlIFFVQUxJRklFUl9FUVVBTDogLyogRXF1aXZhbGVuY2UgY2xhc3MgZXhwcmVzc2lvbnMgKi8KKwkgICAgICB7CisJCXVuc2lnbmVkIGludCBqOworCQl1bnNpZ25lZCBpbnQgazsKKwkgICAgCisJCWlmIChpbnRlcm5hbENvbGxhdGlvblVuY29udmVydGVkKQorCQkgIHsKKwkJICAgIC8qIExhenkgZXZhbHVhdGlvbiBvZiBjb2xsYXRpb24gYXJyYXkgKi8KKwkJICAgIFRyaW9HZXRDb2xsYXRpb24oKTsKKwkJICAgIGludGVybmFsQ29sbGF0aW9uVW5jb252ZXJ0ZWQgPSBGQUxTRTsKKwkJICB9CisJCWZvciAoaSA9IGluZGV4ICsgMjsgOyBpKyspCisJCSAgeworCQkgICAgaWYgKGZvcm1hdFtpXSA9PSBOSUwpCisJCSAgICAgIC8qIEVycm9yIGluIHN5bnRheCAqLworCQkgICAgICByZXR1cm4gLTE7CisJCSAgICBlbHNlIGlmIChmb3JtYXRbaV0gPT0gUVVBTElGSUVSX0VRVUFMKQorCQkgICAgICBicmVhazsgLyogZm9yICovCisJCSAgICBlbHNlCisJCSAgICAgIHsKKwkJCS8qIE1hcmsgYW55IGVxdWl2YWxlbnQgY2hhcmFjdGVyICovCisJCQlrID0gKHVuc2lnbmVkIGludClmb3JtYXRbaV07CisJCQlmb3IgKGogPSAwOyBpbnRlcm5hbENvbGxhdGlvbkFycmF5W2tdW2pdICE9IE5JTDsgaisrKQorCQkJICBjaGFyYWN0ZXJjbGFzc1soaW50KWludGVybmFsQ29sbGF0aW9uQXJyYXlba11bal1dKys7CisJCSAgICAgIH0KKwkJICB9CisJCWlmIChmb3JtYXRbKytpXSAhPSBTUEVDSUZJRVJfVU5HUk9VUCkKKwkJICByZXR1cm4gLTE7CisJCQorCQlpbmRleCA9IGk7CisJICAgICAgfQorCSAgICAgIGJyZWFrOworCSAgCisJICAgIGNhc2UgUVVBTElGSUVSX0NPTE9OOiAvKiBDaGFyYWN0ZXIgY2xhc3MgZXhwcmVzc2lvbnMgKi8KKwkgIAorCSAgICAgIGlmICh0cmlvX2VxdWFsX21heChDTEFTU19BTE5VTSwgc2l6ZW9mKENMQVNTX0FMTlVNKSAtIDEsCisJCQkJICZmb3JtYXRbaW5kZXhdKSkKKwkJeworCQkgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0hBUkFDVEVSX0NMQVNTOyBpKyspCisJCSAgICBpZiAoaXNhbG51bShpKSkKKwkJICAgICAgY2hhcmFjdGVyY2xhc3NbaV0rKzsKKwkJICBpbmRleCArPSBzaXplb2YoQ0xBU1NfQUxOVU0pIC0gMTsKKwkJfQorCSAgICAgIGVsc2UgaWYgKHRyaW9fZXF1YWxfbWF4KENMQVNTX0FMUEhBLCBzaXplb2YoQ0xBU1NfQUxQSEEpIC0gMSwKKwkJCQkgICAgICAmZm9ybWF0W2luZGV4XSkpCisJCXsKKwkJICBmb3IgKGkgPSAwOyBpIDwgTUFYX0NIQVJBQ1RFUl9DTEFTUzsgaSsrKQorCQkgICAgaWYgKGlzYWxwaGEoaSkpCisJCSAgICAgIGNoYXJhY3RlcmNsYXNzW2ldKys7CisJCSAgaW5kZXggKz0gc2l6ZW9mKENMQVNTX0FMUEhBKSAtIDE7CisJCX0KKwkgICAgICBlbHNlIGlmICh0cmlvX2VxdWFsX21heChDTEFTU19DTlRSTCwgc2l6ZW9mKENMQVNTX0NOVFJMKSAtIDEsCisJCQkJICAgICAgJmZvcm1hdFtpbmRleF0pKQorCQl7CisJCSAgZm9yIChpID0gMDsgaSA8IE1BWF9DSEFSQUNURVJfQ0xBU1M7IGkrKykKKwkJICAgIGlmIChpc2NudHJsKGkpKQorCQkgICAgICBjaGFyYWN0ZXJjbGFzc1tpXSsrOworCQkgIGluZGV4ICs9IHNpemVvZihDTEFTU19DTlRSTCkgLSAxOworCQl9CisJICAgICAgZWxzZSBpZiAodHJpb19lcXVhbF9tYXgoQ0xBU1NfRElHSVQsIHNpemVvZihDTEFTU19ESUdJVCkgLSAxLAorCQkJCSAgICAgICZmb3JtYXRbaW5kZXhdKSkKKwkJeworCQkgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0hBUkFDVEVSX0NMQVNTOyBpKyspCisJCSAgICBpZiAoaXNkaWdpdChpKSkKKwkJICAgICAgY2hhcmFjdGVyY2xhc3NbaV0rKzsKKwkJICBpbmRleCArPSBzaXplb2YoQ0xBU1NfRElHSVQpIC0gMTsKKwkJfQorCSAgICAgIGVsc2UgaWYgKHRyaW9fZXF1YWxfbWF4KENMQVNTX0dSQVBILCBzaXplb2YoQ0xBU1NfR1JBUEgpIC0gMSwKKwkJCQkgICAgICAmZm9ybWF0W2luZGV4XSkpCisJCXsKKwkJICBmb3IgKGkgPSAwOyBpIDwgTUFYX0NIQVJBQ1RFUl9DTEFTUzsgaSsrKQorCQkgICAgaWYgKGlzZ3JhcGgoaSkpCisJCSAgICAgIGNoYXJhY3RlcmNsYXNzW2ldKys7CisJCSAgaW5kZXggKz0gc2l6ZW9mKENMQVNTX0dSQVBIKSAtIDE7CisJCX0KKwkgICAgICBlbHNlIGlmICh0cmlvX2VxdWFsX21heChDTEFTU19MT1dFUiwgc2l6ZW9mKENMQVNTX0xPV0VSKSAtIDEsCisJCQkJICAgICAgJmZvcm1hdFtpbmRleF0pKQorCQl7CisJCSAgZm9yIChpID0gMDsgaSA8IE1BWF9DSEFSQUNURVJfQ0xBU1M7IGkrKykKKwkJICAgIGlmIChpc2xvd2VyKGkpKQorCQkgICAgICBjaGFyYWN0ZXJjbGFzc1tpXSsrOworCQkgIGluZGV4ICs9IHNpemVvZihDTEFTU19MT1dFUikgLSAxOworCQl9CisJICAgICAgZWxzZSBpZiAodHJpb19lcXVhbF9tYXgoQ0xBU1NfUFJJTlQsIHNpemVvZihDTEFTU19QUklOVCkgLSAxLAorCQkJCSAgICAgICZmb3JtYXRbaW5kZXhdKSkKKwkJeworCQkgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0hBUkFDVEVSX0NMQVNTOyBpKyspCisJCSAgICBpZiAoaXNwcmludChpKSkKKwkJICAgICAgY2hhcmFjdGVyY2xhc3NbaV0rKzsKKwkJICBpbmRleCArPSBzaXplb2YoQ0xBU1NfUFJJTlQpIC0gMTsKKwkJfQorCSAgICAgIGVsc2UgaWYgKHRyaW9fZXF1YWxfbWF4KENMQVNTX1BVTkNULCBzaXplb2YoQ0xBU1NfUFVOQ1QpIC0gMSwKKwkJCQkgICAgICAmZm9ybWF0W2luZGV4XSkpCisJCXsKKwkJICBmb3IgKGkgPSAwOyBpIDwgTUFYX0NIQVJBQ1RFUl9DTEFTUzsgaSsrKQorCQkgICAgaWYgKGlzcHVuY3QoaSkpCisJCSAgICAgIGNoYXJhY3RlcmNsYXNzW2ldKys7CisJCSAgaW5kZXggKz0gc2l6ZW9mKENMQVNTX1BVTkNUKSAtIDE7CisJCX0KKwkgICAgICBlbHNlIGlmICh0cmlvX2VxdWFsX21heChDTEFTU19TUEFDRSwgc2l6ZW9mKENMQVNTX1NQQUNFKSAtIDEsCisJCQkJICAgICAgJmZvcm1hdFtpbmRleF0pKQorCQl7CisJCSAgZm9yIChpID0gMDsgaSA8IE1BWF9DSEFSQUNURVJfQ0xBU1M7IGkrKykKKwkJICAgIGlmIChpc3NwYWNlKGkpKQorCQkgICAgICBjaGFyYWN0ZXJjbGFzc1tpXSsrOworCQkgIGluZGV4ICs9IHNpemVvZihDTEFTU19TUEFDRSkgLSAxOworCQl9CisJICAgICAgZWxzZSBpZiAodHJpb19lcXVhbF9tYXgoQ0xBU1NfVVBQRVIsIHNpemVvZihDTEFTU19VUFBFUikgLSAxLAorCQkJCSAgICAgICZmb3JtYXRbaW5kZXhdKSkKKwkJeworCQkgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0hBUkFDVEVSX0NMQVNTOyBpKyspCisJCSAgICBpZiAoaXN1cHBlcihpKSkKKwkJICAgICAgY2hhcmFjdGVyY2xhc3NbaV0rKzsKKwkJICBpbmRleCArPSBzaXplb2YoQ0xBU1NfVVBQRVIpIC0gMTsKKwkJfQorCSAgICAgIGVsc2UgaWYgKHRyaW9fZXF1YWxfbWF4KENMQVNTX1hESUdJVCwgc2l6ZW9mKENMQVNTX1hESUdJVCkgLSAxLAorCQkJCSAgICAgICZmb3JtYXRbaW5kZXhdKSkKKwkJeworCQkgIGZvciAoaSA9IDA7IGkgPCBNQVhfQ0hBUkFDVEVSX0NMQVNTOyBpKyspCisJCSAgICBpZiAoaXN4ZGlnaXQoaSkpCisJCSAgICAgIGNoYXJhY3RlcmNsYXNzW2ldKys7CisJCSAgaW5kZXggKz0gc2l6ZW9mKENMQVNTX1hESUdJVCkgLSAxOworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgY2hhcmFjdGVyY2xhc3NbKGludCljaF0rKzsKKwkJfQorCSAgICAgIGJyZWFrOworCisJICAgIGRlZmF1bHQ6CisJICAgICAgY2hhcmFjdGVyY2xhc3NbKGludCljaF0rKzsKKwkgICAgICBicmVhazsKKwkgICAgfQorCSAgYnJlYWs7CisJICAKKyNlbmRpZiAvKiBUUklPX0VYVEVOU0lPTiAqLworCSAgCisJZGVmYXVsdDoKKwkgIGNoYXJhY3RlcmNsYXNzWyhpbnQpY2hdKys7CisJICBicmVhazsKKwl9CisgICAgfQorICByZXR1cm4gMDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9SZWFkTnVtYmVyCisgKgorICogV2UgaW1wbGVtZW50IG91ciBvd24gbnVtYmVyIGNvbnZlcnNpb24gaW4gcHJlZmVyZW5jZSBvZiBzdHJ0b2wgYW5kCisgKiBzdHJ0b3VsLCBiZWNhdXNlIHdlIG11c3QgaGFuZGxlICdsb25nIGxvbmcnIGFuZCB0aG91c2FuZCBzZXBhcmF0b3JzLgorICovCitUUklPX1BSSVZBVEUgQk9PTEVBTl9UCitUcmlvUmVhZE51bWJlcgorVFJJT19BUkdTNSgoc2VsZiwgdGFyZ2V0LCBmbGFncywgd2lkdGgsIGJhc2UpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICB0cmlvX3VpbnRtYXhfdCAqdGFyZ2V0LAorCSAgIHRyaW9fZmxhZ3NfdCBmbGFncywKKwkgICBpbnQgd2lkdGgsCisJICAgaW50IGJhc2UpCit7CisgIHRyaW9fdWludG1heF90IG51bWJlciA9IDA7CisgIGludCBkaWdpdDsKKyAgaW50IGNvdW50OworICBCT09MRUFOX1QgaXNOZWdhdGl2ZSA9IEZBTFNFOworICBCT09MRUFOX1QgZ290TnVtYmVyID0gRkFMU0U7CisgIGludCBqOworCisgIGFzc2VydChWQUxJRChzZWxmKSk7CisgIGFzc2VydChWQUxJRChzZWxmLT5JblN0cmVhbSkpOworICBhc3NlcnQoKGJhc2UgPj0gTUlOX0JBU0UgJiYgYmFzZSA8PSBNQVhfQkFTRSkgfHwgKGJhc2UgPT0gTk9fQkFTRSkpOworCisgIGlmIChpbnRlcm5hbERpZ2l0c1VuY29udmVydGVkKQorICAgIHsKKyAgICAgIC8qIExhenkgZXZhbHVhdGlvbiBvZiBkaWdpdHMgYXJyYXkgKi8KKyAgICAgIG1lbXNldChpbnRlcm5hbERpZ2l0QXJyYXksIC0xLCBzaXplb2YoaW50ZXJuYWxEaWdpdEFycmF5KSk7CisgICAgICBmb3IgKGogPSAwOyBqIDwgKGludClzaXplb2YoaW50ZXJuYWxEaWdpdHNMb3dlcikgLSAxOyBqKyspCisJeworCSAgaW50ZXJuYWxEaWdpdEFycmF5WyhpbnQpaW50ZXJuYWxEaWdpdHNMb3dlcltqXV0gPSBqOworCSAgaW50ZXJuYWxEaWdpdEFycmF5WyhpbnQpaW50ZXJuYWxEaWdpdHNVcHBlcltqXV0gPSBqOworCX0KKyAgICAgIGludGVybmFsRGlnaXRzVW5jb252ZXJ0ZWQgPSBGQUxTRTsKKyAgICB9CisgIAorICBUcmlvU2tpcFdoaXRlc3BhY2VzKHNlbGYpOworICAKKyAgaWYgKCEoZmxhZ3MgJiBGTEFHU19VTlNJR05FRCkpCisgICAgeworICAgICAgLyogTGVhZGluZyBzaWduICovCisgICAgICBpZiAoc2VsZi0+Y3VycmVudCA9PSAnKycpCisJeworCSAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgTlVMTCk7CisJfQorICAgICAgZWxzZSBpZiAoc2VsZi0+Y3VycmVudCA9PSAnLScpCisJeworCSAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgTlVMTCk7CisJICBpc05lZ2F0aXZlID0gVFJVRTsKKwl9CisgICAgfQorICAKKyAgY291bnQgPSBzZWxmLT5wcm9jZXNzZWQ7CisgIAorICBpZiAoZmxhZ3MgJiBGTEFHU19BTFRFUk5BVElWRSkKKyAgICB7CisgICAgICBzd2l0Y2ggKGJhc2UpCisJeworCWNhc2UgTk9fQkFTRToKKwljYXNlIEJBU0VfT0NUQUw6CisJY2FzZSBCQVNFX0hFWDoKKwljYXNlIEJBU0VfQklOQVJZOgorCSAgaWYgKHNlbGYtPmN1cnJlbnQgPT0gJzAnKQorCSAgICB7CisJICAgICAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgTlVMTCk7CisJICAgICAgaWYgKHNlbGYtPmN1cnJlbnQpCisJCXsKKwkJICBpZiAoKGJhc2UgPT0gQkFTRV9IRVgpICYmCisJCSAgICAgICh0cmlvX3RvX3VwcGVyKHNlbGYtPmN1cnJlbnQpID09ICdYJykpCisJCSAgICB7CisJCSAgICAgIHNlbGYtPkluU3RyZWFtKHNlbGYsIE5VTEwpOworCQkgICAgfQorCQkgIGVsc2UgaWYgKChiYXNlID09IEJBU0VfQklOQVJZKSAmJgorCQkJICAgKHRyaW9fdG9fdXBwZXIoc2VsZi0+Y3VycmVudCkgPT0gJ0InKSkKKwkJICAgIHsKKwkJICAgICAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgTlVMTCk7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgZWxzZQorCSAgICByZXR1cm4gRkFMU0U7CisJICBicmVhazsKKwlkZWZhdWx0OgorCSAgYnJlYWs7CisJfQorICAgIH0KKworICB3aGlsZSAoKCh3aWR0aCA9PSBOT19XSURUSCkgfHwgKHNlbGYtPnByb2Nlc3NlZCAtIGNvdW50IDwgd2lkdGgpKSAmJgorCSAoISAoKHNlbGYtPmN1cnJlbnQgPT0gRU9GKSB8fCBpc3NwYWNlKHNlbGYtPmN1cnJlbnQpKSkpCisgICAgeworICAgICAgaWYgKGlzYXNjaWkoc2VsZi0+Y3VycmVudCkpCisJeworCSAgZGlnaXQgPSBpbnRlcm5hbERpZ2l0QXJyYXlbc2VsZi0+Y3VycmVudF07CisJICAvKiBBYm9ydCBpZiBkaWdpdCBpcyBub3QgYWxsb3dlZCBpbiB0aGUgc3BlY2lmaWVkIGJhc2UgKi8KKwkgIGlmICgoZGlnaXQgPT0gLTEpIHx8IChkaWdpdCA+PSBiYXNlKSkKKwkgICAgYnJlYWs7CisJfQorICAgICAgZWxzZSBpZiAoZmxhZ3MgJiBGTEFHU19RVU9URSkKKwl7CisJICAvKiBDb21wYXJlIHdpdGggdGhvdXNhbmRzIHNlcGFyYXRvciAqLworCSAgZm9yIChqID0gMDsgaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvcltqXSAmJiBzZWxmLT5jdXJyZW50OyBqKyspCisJICAgIHsKKwkgICAgICBpZiAoaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvcltqXSAhPSBzZWxmLT5jdXJyZW50KQorCQlicmVhazsKKworCSAgICAgIHNlbGYtPkluU3RyZWFtKHNlbGYsIE5VTEwpOworCSAgICB9CisJICBpZiAoaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvcltqXSkKKwkgICAgYnJlYWs7IC8qIE1pc21hdGNoICovCisJICBlbHNlCisJICAgIGNvbnRpbnVlOyAvKiBNYXRjaCAqLworCX0KKyAgICAgIGVsc2UKKwlicmVhazsKKyAgICAgICAgICAgIAorICAgICAgbnVtYmVyICo9IGJhc2U7CisgICAgICBudW1iZXIgKz0gZGlnaXQ7CisgICAgICBnb3ROdW1iZXIgPSBUUlVFOyAvKiB3ZSBuZWVkIGF0IGxlYXN0IG9uZSBkaWdpdCAqLworCisgICAgICBzZWxmLT5JblN0cmVhbShzZWxmLCBOVUxMKTsKKyAgICB9CisKKyAgLyogV2FzIGFueXRoaW5nIHJlYWQgYXQgYWxsPyAqLworICBpZiAoIWdvdE51bWJlcikKKyAgICByZXR1cm4gRkFMU0U7CisgIAorICBpZiAodGFyZ2V0KQorICAgICp0YXJnZXQgPSAoaXNOZWdhdGl2ZSkgPyAtKCh0cmlvX2ludG1heF90KW51bWJlcikgOiBudW1iZXI7CisgIHJldHVybiBUUlVFOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1JlYWRDaGFyCisgKi8KK1RSSU9fUFJJVkFURSBpbnQKK1RyaW9SZWFkQ2hhcgorVFJJT19BUkdTNCgoc2VsZiwgdGFyZ2V0LCBmbGFncywgd2lkdGgpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBjaGFyICp0YXJnZXQsCisJICAgdHJpb19mbGFnc190IGZsYWdzLAorCSAgIGludCB3aWR0aCkKK3sKKyAgaW50IGk7CisgIGNoYXIgY2g7CisgIHRyaW9fdWludG1heF90IG51bWJlcjsKKyAgCisgIGFzc2VydChWQUxJRChzZWxmKSk7CisgIGFzc2VydChWQUxJRChzZWxmLT5JblN0cmVhbSkpOworCisgIGZvciAoaSA9IDA7CisgICAgICAgKHNlbGYtPmN1cnJlbnQgIT0gRU9GKSAmJiAoaSA8IHdpZHRoKTsKKyAgICAgICBpKyspCisgICAgeworICAgICAgY2ggPSAoY2hhcilzZWxmLT5jdXJyZW50OworICAgICAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgTlVMTCk7CisgICAgICBpZiAoKGZsYWdzICYgRkxBR1NfQUxURVJOQVRJVkUpICYmIChjaCA9PSBDSEFSX0JBQ0tTTEFTSCkpCisJeworCSAgc3dpdGNoIChzZWxmLT5jdXJyZW50KQorCSAgICB7CisJICAgIGNhc2UgJ1xcJzogY2ggPSAnXFwnOyBicmVhazsKKwkgICAgY2FzZSAnYSc6IGNoID0gJ1wwMDcnOyBicmVhazsKKwkgICAgY2FzZSAnYic6IGNoID0gJ1xiJzsgYnJlYWs7CisJICAgIGNhc2UgJ2YnOiBjaCA9ICdcZic7IGJyZWFrOworCSAgICBjYXNlICduJzogY2ggPSAnXG4nOyBicmVhazsKKwkgICAgY2FzZSAncic6IGNoID0gJ1xyJzsgYnJlYWs7CisJICAgIGNhc2UgJ3QnOiBjaCA9ICdcdCc7IGJyZWFrOworCSAgICBjYXNlICd2JzogY2ggPSAnXHYnOyBicmVhazsKKwkgICAgZGVmYXVsdDoKKwkgICAgICBpZiAoaXNkaWdpdChzZWxmLT5jdXJyZW50KSkKKwkJeworCQkgIC8qIFJlYWQgb2N0YWwgbnVtYmVyICovCisJCSAgaWYgKCFUcmlvUmVhZE51bWJlcihzZWxmLCAmbnVtYmVyLCAwLCAzLCBCQVNFX09DVEFMKSkKKwkJICAgIHJldHVybiAwOworCQkgIGNoID0gKGNoYXIpbnVtYmVyOworCQl9CisJICAgICAgZWxzZSBpZiAodHJpb190b191cHBlcihzZWxmLT5jdXJyZW50KSA9PSAnWCcpCisJCXsKKwkJICAvKiBSZWFkIGhleGFkZWNpbWFsIG51bWJlciAqLworCQkgIHNlbGYtPkluU3RyZWFtKHNlbGYsIE5VTEwpOworCQkgIGlmICghVHJpb1JlYWROdW1iZXIoc2VsZiwgJm51bWJlciwgMCwgMiwgQkFTRV9IRVgpKQorCQkgICAgcmV0dXJuIDA7CisJCSAgY2ggPSAoY2hhciludW1iZXI7CisJCX0KKwkgICAgICBlbHNlCisJCXsKKwkJICBjaCA9IChjaGFyKXNlbGYtPmN1cnJlbnQ7CisJCX0KKwkgICAgICBicmVhazsKKwkgICAgfQorCX0KKyAgICAgIAorICAgICAgaWYgKHRhcmdldCkKKwl0YXJnZXRbaV0gPSBjaDsKKyAgICB9CisgIHJldHVybiBpICsgMTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9SZWFkU3RyaW5nCisgKi8KK1RSSU9fUFJJVkFURSBCT09MRUFOX1QKK1RyaW9SZWFkU3RyaW5nCitUUklPX0FSR1M0KChzZWxmLCB0YXJnZXQsIGZsYWdzLCB3aWR0aCksCisJICAgdHJpb19jbGFzc190ICpzZWxmLAorCSAgIGNoYXIgKnRhcmdldCwKKwkgICB0cmlvX2ZsYWdzX3QgZmxhZ3MsCisJICAgaW50IHdpZHRoKQoreworICBpbnQgaTsKKyAgCisgIGFzc2VydChWQUxJRChzZWxmKSk7CisgIGFzc2VydChWQUxJRChzZWxmLT5JblN0cmVhbSkpOworCisgIFRyaW9Ta2lwV2hpdGVzcGFjZXMoc2VsZik7CisgICAgCisgIC8qCisgICAqIENvbnRpbnVlIHVudGlsIGVuZCBvZiBzdHJpbmcgaXMgcmVhY2hlZCwgYSB3aGl0ZXNwYWNlIGlzIGVuY291bnRlcmVkLAorICAgKiBvciB3aWR0aCBpcyBleGNlZWRlZAorICAgKi8KKyAgZm9yIChpID0gMDsKKyAgICAgICAoKHdpZHRoID09IE5PX1dJRFRIKSB8fCAoaSA8IHdpZHRoKSkgJiYKKyAgICAgICAoISAoKHNlbGYtPmN1cnJlbnQgPT0gRU9GKSB8fCBpc3NwYWNlKHNlbGYtPmN1cnJlbnQpKSk7CisgICAgICAgaSsrKQorICAgIHsKKyAgICAgIGlmIChUcmlvUmVhZENoYXIoc2VsZiwgKHRhcmdldCA/ICZ0YXJnZXRbaV0gOiAwKSwgZmxhZ3MsIDEpID09IDApCisJYnJlYWs7IC8qIGZvciAqLworICAgIH0KKyAgaWYgKHRhcmdldCkKKyAgICB0YXJnZXRbaV0gPSBOSUw7CisgIHJldHVybiBUUlVFOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1JlYWRXaWRlQ2hhcgorICovCisjaWYgVFJJT19XSURFQ0hBUgorVFJJT19QUklWQVRFIGludAorVHJpb1JlYWRXaWRlQ2hhcgorVFJJT19BUkdTNCgoc2VsZiwgdGFyZ2V0LCBmbGFncywgd2lkdGgpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICB0cmlvX3djaGFyX3QgKnRhcmdldCwKKwkgICB0cmlvX2ZsYWdzX3QgZmxhZ3MsCisJICAgaW50IHdpZHRoKQoreworICBpbnQgaTsKKyAgaW50IGo7CisgIGludCBzaXplOworICBpbnQgYW1vdW50ID0gMDsKKyAgdHJpb193Y2hhcl90IHdjaDsKKyAgY2hhciBidWZmZXJbTUJfTEVOX01BWCArIDFdOworICAKKyAgYXNzZXJ0KFZBTElEKHNlbGYpKTsKKyAgYXNzZXJ0KFZBTElEKHNlbGYtPkluU3RyZWFtKSk7CisKKyAgZm9yIChpID0gMDsKKyAgICAgICAoc2VsZi0+Y3VycmVudCAhPSBFT0YpICYmIChpIDwgd2lkdGgpOworICAgICAgIGkrKykKKyAgICB7CisgICAgICBpZiAoaXNhc2NpaShzZWxmLT5jdXJyZW50KSkKKwl7CisJICBpZiAoVHJpb1JlYWRDaGFyKHNlbGYsIGJ1ZmZlciwgZmxhZ3MsIDEpID09IDApCisJICAgIHJldHVybiAwOworCSAgYnVmZmVyWzFdID0gTklMOworCX0KKyAgICAgIGVsc2UKKwl7CisJICAvKgorCSAgICogQ29sbGVjdCBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIsIGJ5IGVubGFyZ2luZyBidWZmZXIgdW50aWwKKwkgICAqIGl0IGNvbnRhaW5zIGEgZnVsbHkgbGVnYWwgbXVsdGlieXRlIGNoYXJhY3Rlciwgb3IgdGhlCisJICAgKiBidWZmZXIgaXMgZnVsbC4KKwkgICAqLworCSAgaiA9IDA7CisJICBkbworCSAgICB7CisJICAgICAgYnVmZmVyW2orK10gPSAoY2hhcilzZWxmLT5jdXJyZW50OworCSAgICAgIGJ1ZmZlcltqXSA9IE5JTDsKKwkgICAgICBzZWxmLT5JblN0cmVhbShzZWxmLCBOVUxMKTsKKwkgICAgfQorCSAgd2hpbGUgKChqIDwgKGludClzaXplb2YoYnVmZmVyKSkgJiYgKG1ibGVuKGJ1ZmZlciwgKHNpemVfdClqKSAhPSBqKSk7CisJfQorICAgICAgaWYgKHRhcmdldCkKKwl7CisJICBzaXplID0gbWJ0b3djKCZ3Y2gsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpOworCSAgaWYgKHNpemUgPiAwKQorCSAgICB0YXJnZXRbaV0gPSB3Y2g7CisJfQorICAgICAgYW1vdW50ICs9IHNpemU7CisgICAgICBzZWxmLT5JblN0cmVhbShzZWxmLCBOVUxMKTsKKyAgICB9CisgIHJldHVybiBhbW91bnQ7Cit9CisjZW5kaWYgLyogVFJJT19XSURFQ0hBUiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1JlYWRXaWRlU3RyaW5nCisgKi8KKyNpZiBUUklPX1dJREVDSEFSCitUUklPX1BSSVZBVEUgQk9PTEVBTl9UCitUcmlvUmVhZFdpZGVTdHJpbmcKK1RSSU9fQVJHUzQoKHNlbGYsIHRhcmdldCwgZmxhZ3MsIHdpZHRoKSwKKwkgICB0cmlvX2NsYXNzX3QgKnNlbGYsCisJICAgdHJpb193Y2hhcl90ICp0YXJnZXQsCisJICAgdHJpb19mbGFnc190IGZsYWdzLAorCSAgIGludCB3aWR0aCkKK3sKKyAgaW50IGk7CisgIGludCBzaXplOworICAKKyAgYXNzZXJ0KFZBTElEKHNlbGYpKTsKKyAgYXNzZXJ0KFZBTElEKHNlbGYtPkluU3RyZWFtKSk7CisKKyAgVHJpb1NraXBXaGl0ZXNwYWNlcyhzZWxmKTsKKworI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19NVUxUSUJZVEUpCisgICh2b2lkKW1ibGVuKE5VTEwsIDApOworI2VuZGlmCisgIAorICAvKgorICAgKiBDb250aW51ZSB1bnRpbCBlbmQgb2Ygc3RyaW5nIGlzIHJlYWNoZWQsIGEgd2hpdGVzcGFjZSBpcyBlbmNvdW50ZXJlZCwKKyAgICogb3Igd2lkdGggaXMgZXhjZWVkZWQKKyAgICovCisgIGZvciAoaSA9IDA7CisgICAgICAgKCh3aWR0aCA9PSBOT19XSURUSCkgfHwgKGkgPCB3aWR0aCkpICYmCisgICAgICAgKCEgKChzZWxmLT5jdXJyZW50ID09IEVPRikgfHwgaXNzcGFjZShzZWxmLT5jdXJyZW50KSkpOworICAgICAgICkKKyAgICB7CisgICAgICBzaXplID0gVHJpb1JlYWRXaWRlQ2hhcihzZWxmLCAmdGFyZ2V0W2ldLCBmbGFncywgMSk7CisgICAgICBpZiAoc2l6ZSA9PSAwKQorCWJyZWFrOyAvKiBmb3IgKi8KKworICAgICAgaSArPSBzaXplOworICAgIH0KKyAgaWYgKHRhcmdldCkKKyAgICB0YXJnZXRbaV0gPSBXQ09OU1QoJ1wwJyk7CisgIHJldHVybiBUUlVFOworfQorI2VuZGlmIC8qIFRSSU9fV0lERUNIQVIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9SZWFkR3JvdXAKKyAqCisgKiBGSVhNRTogY2hhcmFjdGVyY2xhc3MgZG9lcyBub3Qgd29yayB3aXRoIG11bHRpYnl0ZSBjaGFyYWN0ZXJzCisgKi8KK1RSSU9fUFJJVkFURSBCT09MRUFOX1QKK1RyaW9SZWFkR3JvdXAKK1RSSU9fQVJHUzUoKHNlbGYsIHRhcmdldCwgY2hhcmFjdGVyY2xhc3MsIGZsYWdzLCB3aWR0aCksCisJICAgdHJpb19jbGFzc190ICpzZWxmLAorCSAgIGNoYXIgKnRhcmdldCwKKwkgICBpbnQgKmNoYXJhY3RlcmNsYXNzLAorCSAgIHRyaW9fZmxhZ3NfdCBmbGFncywKKwkgICBpbnQgd2lkdGgpCit7CisgIGludCBjaDsKKyAgaW50IGk7CisgIAorICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+SW5TdHJlYW0pKTsKKworICBjaCA9IHNlbGYtPmN1cnJlbnQ7CisgIGZvciAoaSA9IDA7CisgICAgICAgKCh3aWR0aCA9PSBOT19XSURUSCkgfHwgKGkgPCB3aWR0aCkpICYmCisgICAgICAgKCEgKChjaCA9PSBFT0YpIHx8CisJICAgKCgoZmxhZ3MgJiBGTEFHU19FWENMVURFKSAhPSAwKSBeIChjaGFyYWN0ZXJjbGFzc1tjaF0gPT0gMCkpKSk7CisgICAgICAgaSsrKQorICAgIHsKKyAgICAgIGlmICh0YXJnZXQpCisJdGFyZ2V0W2ldID0gKGNoYXIpY2g7CisgICAgICBzZWxmLT5JblN0cmVhbShzZWxmLCAmY2gpOworICAgIH0KKyAgCisgIGlmICh0YXJnZXQpCisgICAgdGFyZ2V0W2ldID0gTklMOworICByZXR1cm4gVFJVRTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9SZWFkRG91YmxlCisgKgorICogRklYTUU6CisgKiAgYWRkIGxvbmcgZG91YmxlCisgKiAgaGFuZGxlIGJhc2UKKyAqLworVFJJT19QUklWQVRFIEJPT0xFQU5fVAorVHJpb1JlYWREb3VibGUKK1RSSU9fQVJHUzQoKHNlbGYsIHRhcmdldCwgZmxhZ3MsIHdpZHRoKSwKKwkgICB0cmlvX2NsYXNzX3QgKnNlbGYsCisJICAgdHJpb19wb2ludGVyX3QgdGFyZ2V0LAorCSAgIHRyaW9fZmxhZ3NfdCBmbGFncywKKwkgICBpbnQgd2lkdGgpCit7CisgIGludCBjaDsKKyAgY2hhciBkb3VibGVTdHJpbmdbNTEyXTsKKyAgaW50IGluZGV4ID0gMDsKKyAgaW50IHN0YXJ0OworICBpbnQgajsKKyAgQk9PTEVBTl9UIGlzSGV4ID0gRkFMU0U7CisKKyAgZG91YmxlU3RyaW5nWzBdID0gMDsKKyAgCisgIGlmICgod2lkdGggPT0gTk9fV0lEVEgpIHx8ICh3aWR0aCA+IChpbnQpc2l6ZW9mKGRvdWJsZVN0cmluZykgLSAxKSkKKyAgICB3aWR0aCA9IHNpemVvZihkb3VibGVTdHJpbmcpIC0gMTsKKyAgCisgIFRyaW9Ta2lwV2hpdGVzcGFjZXMoc2VsZik7CisgIAorICAvKgorICAgKiBSZWFkIGVudGlyZSBkb3VibGUgbnVtYmVyIGZyb20gc3RyZWFtLiB0cmlvX3RvX2RvdWJsZSByZXF1aXJlcworICAgKiBhIHN0cmluZyBhcyBpbnB1dCwgYnV0IEluU3RyZWFtIGNhbiBiZSBhbnl0aGluZywgc28gd2UgaGF2ZSB0bworICAgKiBjb2xsZWN0IGFsbCBjaGFyYWN0ZXJzLgorICAgKi8KKyAgY2ggPSBzZWxmLT5jdXJyZW50OworICBpZiAoKGNoID09ICcrJykgfHwgKGNoID09ICctJykpCisgICAgeworICAgICAgZG91YmxlU3RyaW5nW2luZGV4KytdID0gKGNoYXIpY2g7CisgICAgICBzZWxmLT5JblN0cmVhbShzZWxmLCAmY2gpOworICAgICAgd2lkdGgtLTsKKyAgICB9CisKKyAgc3RhcnQgPSBpbmRleDsKKyAgc3dpdGNoIChjaCkKKyAgICB7CisgICAgY2FzZSAnbic6CisgICAgY2FzZSAnTic6CisgICAgICAvKiBOb3QtYS1udW1iZXIgKi8KKyAgICAgIGlmIChpbmRleCAhPSAwKQorCWJyZWFrOworICAgICAgLyogRkFMTFRIUk9VR0ggKi8KKyAgICBjYXNlICdpJzoKKyAgICBjYXNlICdJJzoKKyAgICAgIC8qIEluZmluaXR5ICovCisgICAgICB3aGlsZSAoaXNhbHBoYShjaCkgJiYgKGluZGV4IC0gc3RhcnQgPCB3aWR0aCkpCisJeworCSAgZG91YmxlU3RyaW5nW2luZGV4KytdID0gKGNoYXIpY2g7CisJICBzZWxmLT5JblN0cmVhbShzZWxmLCAmY2gpOworCX0KKyAgICAgIGRvdWJsZVN0cmluZ1tpbmRleF0gPSBOSUw7CisKKyAgICAgIC8qIENhc2UgaW5zZW5zaXRpdmUgc3RyaW5nIGNvbXBhcmlzb24gKi8KKyAgICAgIGlmICh0cmlvX2VxdWFsKCZkb3VibGVTdHJpbmdbc3RhcnRdLCBJTkZJTklURV9VUFBFUikgfHwKKwkgIHRyaW9fZXF1YWwoJmRvdWJsZVN0cmluZ1tzdGFydF0sIExPTkdfSU5GSU5JVEVfVVBQRVIpKQorCXsKKwkgIGlmIChmbGFncyAmIEZMQUdTX0xPTkdET1VCTEUpCisJICAgIHsKKwkgICAgICBpZiAoKHN0YXJ0ID09IDEpICYmIChkb3VibGVTdHJpbmdbMF0gPT0gJy0nKSkKKwkJeworCQkgICooKHRyaW9fbG9uZ19kb3VibGVfdCAqKXRhcmdldCkgPSB0cmlvX25pbmYoKTsKKwkJfQorCSAgICAgIGVsc2UKKwkJeworCQkgICooKHRyaW9fbG9uZ19kb3VibGVfdCAqKXRhcmdldCkgPSB0cmlvX3BpbmYoKTsKKwkJfQorCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBpZiAoKHN0YXJ0ID09IDEpICYmIChkb3VibGVTdHJpbmdbMF0gPT0gJy0nKSkKKwkJeworCQkgICooKGRvdWJsZSAqKXRhcmdldCkgPSB0cmlvX25pbmYoKTsKKwkJfQorCSAgICAgIGVsc2UKKwkJeworCQkgICooKGRvdWJsZSAqKXRhcmdldCkgPSB0cmlvX3BpbmYoKTsKKwkJfQorCSAgICB9CisJICByZXR1cm4gVFJVRTsKKwl9CisgICAgICBpZiAodHJpb19lcXVhbChkb3VibGVTdHJpbmcsIE5BTl9VUFBFUikpCisJeworCSAgLyogTmFOIG11c3Qgbm90IGhhdmUgYSBwcmVjZWVkaW5nICsgbm9yIC0gKi8KKwkgIGlmIChmbGFncyAmIEZMQUdTX0xPTkdET1VCTEUpCisJICAgIHsKKwkgICAgICAqKCh0cmlvX2xvbmdfZG91YmxlX3QgKil0YXJnZXQpID0gdHJpb19uYW4oKTsKKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgKigoZG91YmxlICopdGFyZ2V0KSA9IHRyaW9fbmFuKCk7CisJICAgIH0KKwkgIHJldHVybiBUUlVFOworCX0KKyAgICAgIHJldHVybiBGQUxTRTsKKworICAgIGNhc2UgJzAnOgorICAgICAgZG91YmxlU3RyaW5nW2luZGV4KytdID0gKGNoYXIpY2g7CisgICAgICBzZWxmLT5JblN0cmVhbShzZWxmLCAmY2gpOworICAgICAgaWYgKHRyaW9fdG9fdXBwZXIoY2gpID09ICdYJykKKwl7CisJICBpc0hleCA9IFRSVUU7CisJICBkb3VibGVTdHJpbmdbaW5kZXgrK10gPSAoY2hhciljaDsKKwkgIHNlbGYtPkluU3RyZWFtKHNlbGYsICZjaCk7CisJfQorICAgICAgYnJlYWs7CisgICAgICAKKyAgICBkZWZhdWx0OgorICAgICAgYnJlYWs7CisgICAgfQorICAKKyAgd2hpbGUgKChjaCAhPSBFT0YpICYmIChpbmRleCAtIHN0YXJ0IDwgd2lkdGgpKQorICAgIHsKKyAgICAgIC8qIEludGVnZXIgcGFydCAqLworICAgICAgaWYgKGlzSGV4ID8gaXN4ZGlnaXQoY2gpIDogaXNkaWdpdChjaCkpCisJeworCSAgZG91YmxlU3RyaW5nW2luZGV4KytdID0gKGNoYXIpY2g7CisJICBzZWxmLT5JblN0cmVhbShzZWxmLCAmY2gpOworCX0KKyAgICAgIGVsc2UgaWYgKGZsYWdzICYgRkxBR1NfUVVPVEUpCisJeworCSAgLyogQ29tcGFyZSB3aXRoIHRob3VzYW5kcyBzZXBhcmF0b3IgKi8KKwkgIGZvciAoaiA9IDA7IGludGVybmFsVGhvdXNhbmRTZXBhcmF0b3Jbal0gJiYgc2VsZi0+Y3VycmVudDsgaisrKQorCSAgICB7CisJICAgICAgaWYgKGludGVybmFsVGhvdXNhbmRTZXBhcmF0b3Jbal0gIT0gc2VsZi0+Y3VycmVudCkKKwkJYnJlYWs7CisKKwkgICAgICBzZWxmLT5JblN0cmVhbShzZWxmLCAmY2gpOworCSAgICB9CisJICBpZiAoaW50ZXJuYWxUaG91c2FuZFNlcGFyYXRvcltqXSkKKwkgICAgYnJlYWs7IC8qIE1pc21hdGNoICovCisJICBlbHNlCisJICAgIGNvbnRpbnVlOyAvKiBNYXRjaCAqLworCX0KKyAgICAgIGVsc2UKKwlicmVhazsgLyogd2hpbGUgKi8KKyAgICB9CisgIGlmIChjaCA9PSAnLicpCisgICAgeworICAgICAgLyogRGVjaW1hbCBwYXJ0ICovCisgICAgICBkb3VibGVTdHJpbmdbaW5kZXgrK10gPSAoY2hhciljaDsKKyAgICAgIHNlbGYtPkluU3RyZWFtKHNlbGYsICZjaCk7CisgICAgICB3aGlsZSAoKGlzSGV4ID8gaXN4ZGlnaXQoY2gpIDogaXNkaWdpdChjaCkpICYmCisJICAgICAoaW5kZXggLSBzdGFydCA8IHdpZHRoKSkKKwl7CisJICBkb3VibGVTdHJpbmdbaW5kZXgrK10gPSAoY2hhciljaDsKKwkgIHNlbGYtPkluU3RyZWFtKHNlbGYsICZjaCk7CisJfQorICAgICAgaWYgKGlzSGV4ID8gKHRyaW9fdG9fdXBwZXIoY2gpID09ICdQJykgOiAodHJpb190b191cHBlcihjaCkgPT0gJ0UnKSkKKwl7CisJICAvKiBFeHBvbmVudCAqLworCSAgZG91YmxlU3RyaW5nW2luZGV4KytdID0gKGNoYXIpY2g7CisJICBzZWxmLT5JblN0cmVhbShzZWxmLCAmY2gpOworCSAgaWYgKChjaCA9PSAnKycpIHx8IChjaCA9PSAnLScpKQorCSAgICB7CisJICAgICAgZG91YmxlU3RyaW5nW2luZGV4KytdID0gKGNoYXIpY2g7CisJICAgICAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgJmNoKTsKKwkgICAgfQorCSAgd2hpbGUgKGlzZGlnaXQoY2gpICYmIChpbmRleCAtIHN0YXJ0IDwgd2lkdGgpKQorCSAgICB7CisJICAgICAgZG91YmxlU3RyaW5nW2luZGV4KytdID0gKGNoYXIpY2g7CisJICAgICAgc2VsZi0+SW5TdHJlYW0oc2VsZiwgJmNoKTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgaWYgKChpbmRleCA9PSBzdGFydCkgfHwgKCpkb3VibGVTdHJpbmcgPT0gTklMKSkKKyAgICByZXR1cm4gRkFMU0U7CisKKyAgZG91YmxlU3RyaW5nW2luZGV4XSA9IDA7CisgIAorICBpZiAoZmxhZ3MgJiBGTEFHU19MT05HRE9VQkxFKQorICAgIHsKKyAgICAgICooKHRyaW9fbG9uZ19kb3VibGVfdCAqKXRhcmdldCkgPSB0cmlvX3RvX2xvbmdfZG91YmxlKGRvdWJsZVN0cmluZywgTlVMTCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgKigoZG91YmxlICopdGFyZ2V0KSA9IHRyaW9fdG9fZG91YmxlKGRvdWJsZVN0cmluZywgTlVMTCk7CisgICAgfQorICByZXR1cm4gVFJVRTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRyaW9SZWFkUG9pbnRlcgorICovCitUUklPX1BSSVZBVEUgQk9PTEVBTl9UCitUcmlvUmVhZFBvaW50ZXIKK1RSSU9fQVJHUzMoKHNlbGYsIHRhcmdldCwgZmxhZ3MpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICB0cmlvX3BvaW50ZXJfdCAqdGFyZ2V0LAorCSAgIHRyaW9fZmxhZ3NfdCBmbGFncykKK3sKKyAgdHJpb191aW50bWF4X3QgbnVtYmVyOworICBjaGFyIGJ1ZmZlcltzaXplb2YoaW50ZXJuYWxOdWxsU3RyaW5nKV07CisKKyAgZmxhZ3MgfD0gKEZMQUdTX1VOU0lHTkVEIHwgRkxBR1NfQUxURVJOQVRJVkUgfCBGTEFHU19OSUxQQURESU5HKTsKKyAgCisgIGlmIChUcmlvUmVhZE51bWJlcihzZWxmLAorCQkgICAgICZudW1iZXIsCisJCSAgICAgZmxhZ3MsCisJCSAgICAgUE9JTlRFUl9XSURUSCwKKwkJICAgICBCQVNFX0hFWCkpCisgICAgeworICAgICAgLyoKKyAgICAgICAqIFRoZSBzdHJhbmdlIGFzc2lnbm1lbnQgb2YgbnVtYmVyIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBjb21waWxlcgorICAgICAgICogd2FybmluZworICAgICAgICovCisgICAgICBpZiAodGFyZ2V0KQorCSp0YXJnZXQgPSAoY2hhciAqKTAgKyBudW1iZXI7CisgICAgICByZXR1cm4gVFJVRTsKKyAgICB9CisgIGVsc2UgaWYgKFRyaW9SZWFkU3RyaW5nKHNlbGYsCisJCQkgIChmbGFncyAmIEZMQUdTX0lHTk9SRSkKKwkJCSAgPyBOVUxMCisJCQkgIDogYnVmZmVyLAorCQkJICAwLAorCQkJICBzaXplb2YoaW50ZXJuYWxOdWxsU3RyaW5nKSAtIDEpKQorICAgIHsgIAorICAgICAgaWYgKHRyaW9fZXF1YWxfY2FzZShidWZmZXIsIGludGVybmFsTnVsbFN0cmluZykpCisJeworCSAgaWYgKHRhcmdldCkKKwkgICAgKnRhcmdldCA9IE5VTEw7CisJICByZXR1cm4gVFJVRTsKKwl9CisgICAgfQorICByZXR1cm4gRkFMU0U7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvU2NhblByb2Nlc3MKKyAqLworVFJJT19QUklWQVRFIGludAorVHJpb1NjYW5Qcm9jZXNzCitUUklPX0FSR1MzKChkYXRhLCBmb3JtYXQsIHBhcmFtZXRlcnMpLAorCSAgIHRyaW9fY2xhc3NfdCAqZGF0YSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB0cmlvX3BhcmFtZXRlcl90ICpwYXJhbWV0ZXJzKQoreworI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19NVUxUSUJZVEUpCisgIGludCBjaGFybGVuOworICBpbnQgY250OworI2VuZGlmCisgIGludCBhc3NpZ25tZW50OworICBpbnQgY2g7CisgIGludCBpbmRleDsgLyogSW5kZXggb2YgZm9ybWF0IHN0cmluZyAqLworICBpbnQgaTsgLyogSW5kZXggb2YgY3VycmVudCBwYXJhbWV0ZXIgKi8KKyAgdHJpb19mbGFnc190IGZsYWdzOworICBpbnQgd2lkdGg7CisgIGludCBiYXNlOworICB0cmlvX3BvaW50ZXJfdCBwb2ludGVyOworCisgIGFzc2lnbm1lbnQgPSAwOworICBpID0gMDsKKyAgaW5kZXggPSAwOworICBkYXRhLT5JblN0cmVhbShkYXRhLCAmY2gpOworCisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX1NVUFBPUlRTX01VTFRJQllURSkKKyAgKHZvaWQpbWJsZW4oTlVMTCwgMCk7CisjZW5kaWYKKworICB3aGlsZSAoZm9ybWF0W2luZGV4XSkKKyAgICB7CisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX1NVUFBPUlRTX01VTFRJQllURSkKKyAgICAgIGlmICghIGlzYXNjaWkoZm9ybWF0W2luZGV4XSkpCisJeworCSAgY2hhcmxlbiA9IG1ibGVuKCZmb3JtYXRbaW5kZXhdLCBNQl9MRU5fTUFYKTsKKwkgIGlmIChjaGFybGVuICE9IC0xKQorCSAgICB7CisJICAgICAgLyogQ29tcGFyZSBtdWx0aWJ5dGUgY2hhcmFjdGVycyBpbiBmb3JtYXQgc3RyaW5nICovCisJICAgICAgZm9yIChjbnQgPSAwOyBjbnQgPCBjaGFybGVuIC0gMTsgY250KyspCisJCXsKKwkJICBpZiAoY2ggIT0gZm9ybWF0W2luZGV4ICsgY250XSkKKwkJICAgIHsKKwkJICAgICAgcmV0dXJuIFRSSU9fRVJST1JfUkVUVVJOKFRSSU9fRUlOVkFMLCBpbmRleCk7CisJCSAgICB9CisJCSAgZGF0YS0+SW5TdHJlYW0oZGF0YSwgJmNoKTsKKwkJfQorCSAgICAgIGNvbnRpbnVlOyAvKiB3aGlsZSBjaGFyYWN0ZXJzIGxlZnQgaW4gZm9ybWF0dGluZyBzdHJpbmcgKi8KKwkgICAgfQorCX0KKyNlbmRpZiAvKiBUUklPX0NPTVBJTEVSX1NVUFBPUlRTX01VTFRJQllURSAqLworICAgICAgCisgICAgICBpZiAoKEVPRiA9PSBjaCkgJiYgKHBhcmFtZXRlcnNbaV0udHlwZSAhPSBGT1JNQVRfQ09VTlQpKQorCXsKKwkgIHJldHVybiAoYXNzaWdubWVudCA+IDApID8gYXNzaWdubWVudCA6IEVPRjsKKwl9CisgICAgICAKKyAgICAgIGlmIChDSEFSX0lERU5USUZJRVIgPT0gZm9ybWF0W2luZGV4XSkKKwl7CisJICBpZiAoQ0hBUl9JREVOVElGSUVSID09IGZvcm1hdFtpbmRleCArIDFdKQorCSAgICB7CisJICAgICAgLyogVHdvICUgaW4gZm9ybWF0IG1hdGNoZXMgb25lICUgaW4gaW5wdXQgc3RyZWFtICovCisJICAgICAgaWYgKENIQVJfSURFTlRJRklFUiA9PSBjaCkKKwkJeworCQkgIGRhdGEtPkluU3RyZWFtKGRhdGEsICZjaCk7CisJCSAgaW5kZXggKz0gMjsKKwkJICBjb250aW51ZTsgLyogd2hpbGUgZm9ybWF0IGNoYXJzIGxlZnQgKi8KKwkJfQorCSAgICAgIGVsc2UKKwkJcmV0dXJuIFRSSU9fRVJST1JfUkVUVVJOKFRSSU9fRUlOVkFMLCBpbmRleCk7CisJICAgIH0KKworCSAgLyogU2tpcCB0aGUgcGFyYW1ldGVyIGVudHJpZXMgKi8KKwkgIHdoaWxlIChwYXJhbWV0ZXJzW2ldLnR5cGUgPT0gRk9STUFUX1BBUkFNRVRFUikKKwkgICAgaSsrOworCSAgCisJICBmbGFncyA9IHBhcmFtZXRlcnNbaV0uZmxhZ3M7CisJICAvKiBGaW5kIHdpZHRoICovCisJICB3aWR0aCA9IHBhcmFtZXRlcnNbaV0ud2lkdGg7CisJICBpZiAoZmxhZ3MgJiBGTEFHU19XSURUSF9QQVJBTUVURVIpCisJICAgIHsKKwkgICAgICAvKiBHZXQgd2lkdGggZnJvbSBwYXJhbWV0ZXIgbGlzdCAqLworCSAgICAgIHdpZHRoID0gKGludClwYXJhbWV0ZXJzW3dpZHRoXS5kYXRhLm51bWJlci5hc19zaWduZWQ7CisJICAgIH0KKwkgIC8qIEZpbmQgYmFzZSAqLworCSAgYmFzZSA9IHBhcmFtZXRlcnNbaV0uYmFzZTsKKwkgIGlmIChmbGFncyAmIEZMQUdTX0JBU0VfUEFSQU1FVEVSKQorCSAgICB7CisJICAgICAgLyogR2V0IGJhc2UgZnJvbSBwYXJhbWV0ZXIgbGlzdCAqLworCSAgICAgIGJhc2UgPSAoaW50KXBhcmFtZXRlcnNbYmFzZV0uZGF0YS5udW1iZXIuYXNfc2lnbmVkOworCSAgICB9CisJICAKKwkgIHN3aXRjaCAocGFyYW1ldGVyc1tpXS50eXBlKQorCSAgICB7CisJICAgIGNhc2UgRk9STUFUX0lOVDoKKwkgICAgICB7CisJCXRyaW9fdWludG1heF90IG51bWJlcjsKKworCQlpZiAoMCA9PSBiYXNlKQorCQkgIGJhc2UgPSBCQVNFX0RFQ0lNQUw7CisKKwkJaWYgKCFUcmlvUmVhZE51bWJlcihkYXRhLAorCQkJCSAgICAmbnVtYmVyLAorCQkJCSAgICBmbGFncywKKwkJCQkgICAgd2lkdGgsCisJCQkJICAgIGJhc2UpKQorCQkgIHJldHVybiBhc3NpZ25tZW50OworCisJCWlmICghKGZsYWdzICYgRkxBR1NfSUdOT1JFKSkKKwkJICB7CisJCSAgICBhc3NpZ25tZW50Kys7CisKKwkJICAgIHBvaW50ZXIgPSBwYXJhbWV0ZXJzW2ldLmRhdGEucG9pbnRlcjsKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9TSVpFX1QpIHx8IGRlZmluZWQoUVVBTElGSUVSX1NJWkVfVF9VUFBFUikKKwkJICAgIGlmIChmbGFncyAmIEZMQUdTX1NJWkVfVCkKKwkJICAgICAgKihzaXplX3QgKilwb2ludGVyID0gKHNpemVfdCludW1iZXI7CisJCSAgICBlbHNlCisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QVFJESUZGX1QpCisJCSAgICBpZiAoZmxhZ3MgJiBGTEFHU19QVFJESUZGX1QpCisJCSAgICAgICoocHRyZGlmZl90ICopcG9pbnRlciA9IChwdHJkaWZmX3QpbnVtYmVyOworCQkgICAgZWxzZQorI2VuZGlmCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfSU5UTUFYX1QpCisJCSAgICBpZiAoZmxhZ3MgJiBGTEFHU19JTlRNQVhfVCkKKwkJICAgICAgKih0cmlvX2ludG1heF90ICopcG9pbnRlciA9ICh0cmlvX2ludG1heF90KW51bWJlcjsKKwkJICAgIGVsc2UKKyNlbmRpZgorCQkgICAgaWYgKGZsYWdzICYgRkxBR1NfUVVBRCkKKwkJICAgICAgKih0cmlvX3Vsb25nbG9uZ190ICopcG9pbnRlciA9ICh0cmlvX3Vsb25nbG9uZ190KW51bWJlcjsKKwkJICAgIGVsc2UgaWYgKGZsYWdzICYgRkxBR1NfTE9ORykKKwkJICAgICAgKihsb25nIGludCAqKXBvaW50ZXIgPSAobG9uZyBpbnQpbnVtYmVyOworCQkgICAgZWxzZSBpZiAoZmxhZ3MgJiBGTEFHU19TSE9SVCkKKwkJICAgICAgKihzaG9ydCBpbnQgKilwb2ludGVyID0gKHNob3J0IGludCludW1iZXI7CisJCSAgICBlbHNlCisJCSAgICAgICooaW50ICopcG9pbnRlciA9IChpbnQpbnVtYmVyOworCQkgIH0KKwkgICAgICB9CisJICAgICAgYnJlYWs7IC8qIEZPUk1BVF9JTlQgKi8KKwkgICAgICAKKwkgICAgY2FzZSBGT1JNQVRfU1RSSU5HOgorI2lmIFRSSU9fV0lERUNIQVIKKwkgICAgICBpZiAoZmxhZ3MgJiBGTEFHU19XSURFQ0hBUikKKwkJeworCQkgIGlmICghVHJpb1JlYWRXaWRlU3RyaW5nKGRhdGEsCisJCQkJCSAgKGZsYWdzICYgRkxBR1NfSUdOT1JFKQorCQkJCQkgID8gTlVMTAorCQkJCQkgIDogcGFyYW1ldGVyc1tpXS5kYXRhLndzdHJpbmcsCisJCQkJCSAgZmxhZ3MsCisJCQkJCSAgd2lkdGgpKQorCQkgICAgcmV0dXJuIGFzc2lnbm1lbnQ7CisJCX0KKwkgICAgICBlbHNlCisjZW5kaWYKKwkJeworCQkgIGlmICghVHJpb1JlYWRTdHJpbmcoZGF0YSwKKwkJCQkgICAgICAoZmxhZ3MgJiBGTEFHU19JR05PUkUpCisJCQkJICAgICAgPyBOVUxMCisJCQkJICAgICAgOiBwYXJhbWV0ZXJzW2ldLmRhdGEuc3RyaW5nLAorCQkJCSAgICAgIGZsYWdzLAorCQkJCSAgICAgIHdpZHRoKSkKKwkJICAgIHJldHVybiBhc3NpZ25tZW50OworCQl9CisJICAgICAgaWYgKCEoZmxhZ3MgJiBGTEFHU19JR05PUkUpKQorCQlhc3NpZ25tZW50Kys7CisJICAgICAgYnJlYWs7IC8qIEZPUk1BVF9TVFJJTkcgKi8KKworCSAgICBjYXNlIEZPUk1BVF9ET1VCTEU6CisJICAgICAgeworCQl0cmlvX3BvaW50ZXJfdCBwb2ludGVyOworCisJCWlmIChmbGFncyAmIEZMQUdTX0lHTk9SRSkKKwkJICB7CisJCSAgICBwb2ludGVyID0gTlVMTDsKKwkJICB9CisJCWVsc2UKKwkJICB7CisJCSAgICBwb2ludGVyID0gKGZsYWdzICYgRkxBR1NfTE9OR0RPVUJMRSkKKwkJICAgICAgPyAodHJpb19wb2ludGVyX3QpcGFyYW1ldGVyc1tpXS5kYXRhLmxvbmdkb3VibGVQb2ludGVyCisJCSAgICAgIDogKHRyaW9fcG9pbnRlcl90KXBhcmFtZXRlcnNbaV0uZGF0YS5kb3VibGVQb2ludGVyOworCQkgIH0KKwkJaWYgKCFUcmlvUmVhZERvdWJsZShkYXRhLCBwb2ludGVyLCBmbGFncywgd2lkdGgpKQorCQkgIHsKKwkJICAgIHJldHVybiBhc3NpZ25tZW50OworCQkgIH0KKwkJaWYgKCEoZmxhZ3MgJiBGTEFHU19JR05PUkUpKQorCQkgIHsKKwkJICAgIGFzc2lnbm1lbnQrKzsKKwkJICB9CisJCWJyZWFrOyAvKiBGT1JNQVRfRE9VQkxFICovCisJICAgICAgfQorCSAgICBjYXNlIEZPUk1BVF9HUk9VUDoKKwkgICAgICB7CisJCWludCBjaGFyYWN0ZXJjbGFzc1tNQVhfQ0hBUkFDVEVSX0NMQVNTICsgMV07CisJCWludCByYzsKKworCQkvKiBTa2lwIG92ZXIgbW9kaWZpZXJzICovCisJCXdoaWxlIChmb3JtYXRbaW5kZXhdICE9IFNQRUNJRklFUl9HUk9VUCkKKwkJICB7CisJCSAgICBpbmRleCsrOworCQkgIH0KKwkJLyogU2tpcCBvdmVyIGdyb3VwIHNwZWNpZmllciAqLworCQlpbmRleCsrOworCQkKKwkJbWVtc2V0KGNoYXJhY3RlcmNsYXNzLCAwLCBzaXplb2YoY2hhcmFjdGVyY2xhc3MpKTsKKwkJcmMgPSBUcmlvR2V0Q2hhcmFjdGVyQ2xhc3MoZm9ybWF0LAorCQkJCQkgICAmaW5kZXgsCisJCQkJCSAgICZmbGFncywKKwkJCQkJICAgY2hhcmFjdGVyY2xhc3MpOworCQlpZiAocmMgPCAwKQorCQkgIHJldHVybiByYzsKKworCQlpZiAoIVRyaW9SZWFkR3JvdXAoZGF0YSwKKwkJCQkgICAoZmxhZ3MgJiBGTEFHU19JR05PUkUpCisJCQkJICAgPyBOVUxMCisJCQkJICAgOiBwYXJhbWV0ZXJzW2ldLmRhdGEuc3RyaW5nLAorCQkJCSAgIGNoYXJhY3RlcmNsYXNzLAorCQkJCSAgIGZsYWdzLAorCQkJCSAgIHBhcmFtZXRlcnNbaV0ud2lkdGgpKQorCQkgIHJldHVybiBhc3NpZ25tZW50OworCQlpZiAoIShmbGFncyAmIEZMQUdTX0lHTk9SRSkpCisJCSAgYXNzaWdubWVudCsrOworCSAgICAgIH0KKwkgICAgICBicmVhazsgLyogRk9STUFUX0dST1VQICovCisKKwkgICAgY2FzZSBGT1JNQVRfQ09VTlQ6CisJICAgICAgcG9pbnRlciA9IHBhcmFtZXRlcnNbaV0uZGF0YS5wb2ludGVyOworCSAgICAgIGlmIChOVUxMICE9IHBvaW50ZXIpCisJCXsKKwkJICBpbnQgY291bnQgPSBkYXRhLT5jb21taXR0ZWQ7CisJCSAgaWYgKGNoICE9IEVPRikKKwkJICAgIGNvdW50LS07IC8qIGEgY2hhcmFjdGVyIGlzIHJlYWQsIGJ1dCBpcyBub3QgY29uc3VtZWQgeWV0ICovCisjaWYgZGVmaW5lZChRVUFMSUZJRVJfU0laRV9UKSB8fCBkZWZpbmVkKFFVQUxJRklFUl9TSVpFX1RfVVBQRVIpCisJCSAgaWYgKGZsYWdzICYgRkxBR1NfU0laRV9UKQorCQkgICAgKihzaXplX3QgKilwb2ludGVyID0gKHNpemVfdCljb3VudDsKKwkJICBlbHNlCisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9QVFJESUZGX1QpCisJCSAgaWYgKGZsYWdzICYgRkxBR1NfUFRSRElGRl9UKQorCQkgICAgKihwdHJkaWZmX3QgKilwb2ludGVyID0gKHB0cmRpZmZfdCljb3VudDsKKwkJICBlbHNlCisjZW5kaWYKKyNpZiBkZWZpbmVkKFFVQUxJRklFUl9JTlRNQVhfVCkKKwkJICBpZiAoZmxhZ3MgJiBGTEFHU19JTlRNQVhfVCkKKwkJICAgICoodHJpb19pbnRtYXhfdCAqKXBvaW50ZXIgPSAodHJpb19pbnRtYXhfdCljb3VudDsKKwkJICBlbHNlCisjZW5kaWYKKwkJICBpZiAoZmxhZ3MgJiBGTEFHU19RVUFEKQorCQkgICAgeworCQkgICAgICAqKHRyaW9fdWxvbmdsb25nX3QgKilwb2ludGVyID0gKHRyaW9fdWxvbmdsb25nX3QpY291bnQ7CisJCSAgICB9CisJCSAgZWxzZSBpZiAoZmxhZ3MgJiBGTEFHU19MT05HKQorCQkgICAgeworCQkgICAgICAqKGxvbmcgaW50ICopcG9pbnRlciA9IChsb25nIGludCljb3VudDsKKwkJICAgIH0KKwkJICBlbHNlIGlmIChmbGFncyAmIEZMQUdTX1NIT1JUKQorCQkgICAgeworCQkgICAgICAqKHNob3J0IGludCAqKXBvaW50ZXIgPSAoc2hvcnQgaW50KWNvdW50OworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgKihpbnQgKilwb2ludGVyID0gKGludCljb3VudDsKKwkJICAgIH0KKwkJfQorCSAgICAgIGJyZWFrOyAvKiBGT1JNQVRfQ09VTlQgKi8KKwkgICAgICAKKwkgICAgY2FzZSBGT1JNQVRfQ0hBUjoKKyNpZiBUUklPX1dJREVDSEFSCisJICAgICAgaWYgKGZsYWdzICYgRkxBR1NfV0lERUNIQVIpCisJCXsKKwkJICBpZiAoVHJpb1JlYWRXaWRlQ2hhcihkYXRhLAorCQkJCSAgICAgICAoZmxhZ3MgJiBGTEFHU19JR05PUkUpCisJCQkJICAgICAgID8gTlVMTAorCQkJCSAgICAgICA6IHBhcmFtZXRlcnNbaV0uZGF0YS53c3RyaW5nLAorCQkJCSAgICAgICBmbGFncywKKwkJCQkgICAgICAgKHdpZHRoID09IE5PX1dJRFRIKSA/IDEgOiB3aWR0aCkgPT0gMCkKKwkJICAgIHJldHVybiBhc3NpZ25tZW50OworCQl9CisJICAgICAgZWxzZQorI2VuZGlmCisJCXsKKwkJICBpZiAoVHJpb1JlYWRDaGFyKGRhdGEsCisJCQkJICAgKGZsYWdzICYgRkxBR1NfSUdOT1JFKQorCQkJCSAgID8gTlVMTAorCQkJCSAgIDogcGFyYW1ldGVyc1tpXS5kYXRhLnN0cmluZywKKwkJCQkgICBmbGFncywKKwkJCQkgICAod2lkdGggPT0gTk9fV0lEVEgpID8gMSA6IHdpZHRoKSA9PSAwKQorCQkgICAgcmV0dXJuIGFzc2lnbm1lbnQ7CisJCX0KKwkgICAgICBpZiAoIShmbGFncyAmIEZMQUdTX0lHTk9SRSkpCisJCWFzc2lnbm1lbnQrKzsKKwkgICAgICBicmVhazsgLyogRk9STUFUX0NIQVIgKi8KKworCSAgICBjYXNlIEZPUk1BVF9QT0lOVEVSOgorCSAgICAgIGlmICghVHJpb1JlYWRQb2ludGVyKGRhdGEsCisJCQkJICAgKGZsYWdzICYgRkxBR1NfSUdOT1JFKQorCQkJCSAgID8gTlVMTAorCQkJCSAgIDogKHRyaW9fcG9pbnRlcl90ICopcGFyYW1ldGVyc1tpXS5kYXRhLnBvaW50ZXIsCisJCQkJICAgZmxhZ3MpKQorCQlyZXR1cm4gYXNzaWdubWVudDsKKwkgICAgICBpZiAoIShmbGFncyAmIEZMQUdTX0lHTk9SRSkpCisJCWFzc2lnbm1lbnQrKzsKKwkgICAgICBicmVhazsgLyogRk9STUFUX1BPSU5URVIgKi8KKworCSAgICBjYXNlIEZPUk1BVF9QQVJBTUVURVI6CisJICAgICAgYnJlYWs7IC8qIEZPUk1BVF9QQVJBTUVURVIgKi8KKworCSAgICBkZWZhdWx0OgorCSAgICAgIHJldHVybiBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VJTlZBTCwgaW5kZXgpOworCSAgICB9CisJICBjaCA9IGRhdGEtPmN1cnJlbnQ7CisJICBpbmRleCA9IHBhcmFtZXRlcnNbaV0uaW5kZXhBZnRlclNwZWNpZmllcjsKKwkgIGkrKzsKKwl9CisgICAgICBlbHNlIC8qIE5vdCBhbiAlIGlkZW50aWZpZXIgKi8KKwl7CisJICBpZiAoaXNzcGFjZSgoaW50KWZvcm1hdFtpbmRleF0pKQorCSAgICB7CisJICAgICAgLyogV2hpdGVzcGFjZXMgbWF5IG1hdGNoIGFueSBhbW91bnQgb2Ygd2hpdGVzcGFjZXMgKi8KKwkgICAgICBjaCA9IFRyaW9Ta2lwV2hpdGVzcGFjZXMoZGF0YSk7CisJICAgIH0KKwkgIGVsc2UgaWYgKGNoID09IGZvcm1hdFtpbmRleF0pCisJICAgIHsKKwkgICAgICBkYXRhLT5JblN0cmVhbShkYXRhLCAmY2gpOworCSAgICB9CisJICBlbHNlCisJICAgIHJldHVybiBhc3NpZ25tZW50OworCSAgCisJICBpbmRleCsrOworCX0KKyAgICB9CisgIHJldHVybiBhc3NpZ25tZW50OworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb1NjYW4KKyAqLworVFJJT19QUklWQVRFIGludAorVHJpb1NjYW4KK1RSSU9fQVJHUzYoKHNvdXJjZSwgc291cmNlU2l6ZSwgSW5TdHJlYW0sIGZvcm1hdCwgYXJnbGlzdCwgYXJnYXJyYXkpLAorCSAgIHRyaW9fcG9pbnRlcl90IHNvdXJjZSwKKwkgICBzaXplX3Qgc291cmNlU2l6ZSwKKwkgICB2b2lkICgqSW5TdHJlYW0pIFRSSU9fUFJPVE8oKHRyaW9fY2xhc3NfdCAqLCBpbnQgKikpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHZhX2xpc3QgKmFyZ2xpc3QsCisJICAgdHJpb19wb2ludGVyX3QgKmFyZ2FycmF5KQoreworICBpbnQgc3RhdHVzOworICB0cmlvX3BhcmFtZXRlcl90IHBhcmFtZXRlcnNbTUFYX1BBUkFNRVRFUlNdOworICB0cmlvX2NsYXNzX3QgZGF0YTsKKworICBhc3NlcnQoVkFMSUQoSW5TdHJlYW0pKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworCisgIG1lbXNldCgmZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsKKyAgZGF0YS5JblN0cmVhbSA9IEluU3RyZWFtOworICBkYXRhLmxvY2F0aW9uID0gKHRyaW9fcG9pbnRlcl90KXNvdXJjZTsKKyAgZGF0YS5tYXggPSBzb3VyY2VTaXplOworICBkYXRhLmVycm9yID0gMDsKKworI2lmIGRlZmluZWQoVVNFX0xPQ0FMRSkKKyAgaWYgKE5VTEwgPT0gaW50ZXJuYWxMb2NhbGVWYWx1ZXMpCisgICAgeworICAgICAgVHJpb1NldExvY2FsZSgpOworICAgIH0KKyNlbmRpZgorICAKKyAgc3RhdHVzID0gVHJpb1BhcnNlKFRZUEVfU0NBTiwgZm9ybWF0LCBwYXJhbWV0ZXJzLCBhcmdsaXN0LCBhcmdhcnJheSk7CisgIGlmIChzdGF0dXMgPCAwKQorICAgIHJldHVybiBzdGF0dXM7CisKKyAgc3RhdHVzID0gVHJpb1NjYW5Qcm9jZXNzKCZkYXRhLCBmb3JtYXQsIHBhcmFtZXRlcnMpOworICBpZiAoZGF0YS5lcnJvciAhPSAwKQorICAgIHsKKyAgICAgIHN0YXR1cyA9IGRhdGEuZXJyb3I7CisgICAgfQorICByZXR1cm4gc3RhdHVzOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb0luU3RyZWFtRmlsZQorICovCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb0luU3RyZWFtRmlsZQorVFJJT19BUkdTMigoc2VsZiwgaW50UG9pbnRlciksCisJICAgdHJpb19jbGFzc190ICpzZWxmLAorCSAgIGludCAqaW50UG9pbnRlcikKK3sKKyAgRklMRSAqZmlsZSA9IChGSUxFICopc2VsZi0+bG9jYXRpb247CisKKyAgYXNzZXJ0KFZBTElEKHNlbGYpKTsKKyAgYXNzZXJ0KFZBTElEKGZpbGUpKTsKKworICBzZWxmLT5jdXJyZW50ID0gZmdldGMoZmlsZSk7CisgIGlmIChzZWxmLT5jdXJyZW50ID09IEVPRikKKyAgICB7CisgICAgICBzZWxmLT5lcnJvciA9IChmZXJyb3IoZmlsZSkpCisJPyBUUklPX0VSUk9SX1JFVFVSTihUUklPX0VSUk5PLCAwKQorCTogVFJJT19FUlJPUl9SRVRVUk4oVFJJT19FT0YsIDApOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHNlbGYtPnByb2Nlc3NlZCsrOworICAgICAgc2VsZi0+Y29tbWl0dGVkKys7CisgICAgfQorICAKKyAgaWYgKFZBTElEKGludFBvaW50ZXIpKQorICAgIHsKKyAgICAgICppbnRQb2ludGVyID0gc2VsZi0+Y3VycmVudDsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvSW5TdHJlYW1GaWxlRGVzY3JpcHRvcgorICovCitUUklPX1BSSVZBVEUgdm9pZAorVHJpb0luU3RyZWFtRmlsZURlc2NyaXB0b3IKK1RSSU9fQVJHUzIoKHNlbGYsIGludFBvaW50ZXIpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBpbnQgKmludFBvaW50ZXIpCit7CisgIGludCBmZCA9ICooKGludCAqKXNlbGYtPmxvY2F0aW9uKTsKKyAgaW50IHNpemU7CisgIHVuc2lnbmVkIGNoYXIgaW5wdXQ7CisKKyAgYXNzZXJ0KFZBTElEKHNlbGYpKTsKKworICBzaXplID0gcmVhZChmZCwgJmlucHV0LCBzaXplb2YoY2hhcikpOworICBpZiAoc2l6ZSA9PSAtMSkKKyAgICB7CisgICAgICBzZWxmLT5lcnJvciA9IFRSSU9fRVJST1JfUkVUVVJOKFRSSU9fRVJSTk8sIDApOworICAgICAgc2VsZi0+Y3VycmVudCA9IEVPRjsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBzZWxmLT5jdXJyZW50ID0gKHNpemUgPT0gMCkgPyBFT0YgOiBpbnB1dDsKKyAgICB9CisgIGlmIChzZWxmLT5jdXJyZW50ICE9IEVPRikKKyAgICB7CisgICAgICBzZWxmLT5jb21taXR0ZWQrKzsKKyAgICAgIHNlbGYtPnByb2Nlc3NlZCsrOworICAgIH0KKyAgCisgIGlmIChWQUxJRChpbnRQb2ludGVyKSkKKyAgICB7CisgICAgICAqaW50UG9pbnRlciA9IHNlbGYtPmN1cnJlbnQ7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVHJpb0luU3RyZWFtQ3VzdG9tCisgKi8KK1RSSU9fUFJJVkFURSB2b2lkCitUcmlvSW5TdHJlYW1DdXN0b20KK1RSSU9fQVJHUzIoKHNlbGYsIGludFBvaW50ZXIpLAorCSAgIHRyaW9fY2xhc3NfdCAqc2VsZiwKKwkgICBpbnQgKmludFBvaW50ZXIpCit7CisgIHRyaW9fY3VzdG9tX3QgKmRhdGE7CisgIAorICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+bG9jYXRpb24pKTsKKworICBkYXRhID0gKHRyaW9fY3VzdG9tX3QgKilzZWxmLT5sb2NhdGlvbjsKKworICBzZWxmLT5jdXJyZW50ID0gKGRhdGEtPnN0cmVhbS5pbiA9PSBOVUxMKQorICAgID8gTklMCisgICAgOiAoZGF0YS0+c3RyZWFtLmluKShkYXRhLT5jbG9zdXJlKTsKKyAgCisgIGlmIChzZWxmLT5jdXJyZW50ID09IE5JTCkKKyAgICB7CisgICAgICBzZWxmLT5jdXJyZW50ID0gRU9GOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHNlbGYtPnByb2Nlc3NlZCsrOworICAgICAgc2VsZi0+Y29tbWl0dGVkKys7CisgICAgfQorICAKKyAgaWYgKFZBTElEKGludFBvaW50ZXIpKQorICAgIHsKKyAgICAgICppbnRQb2ludGVyID0gc2VsZi0+Y3VycmVudDsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUcmlvSW5TdHJlYW1TdHJpbmcKKyAqLworVFJJT19QUklWQVRFIHZvaWQKK1RyaW9JblN0cmVhbVN0cmluZworVFJJT19BUkdTMigoc2VsZiwgaW50UG9pbnRlciksCisJICAgdHJpb19jbGFzc190ICpzZWxmLAorCSAgIGludCAqaW50UG9pbnRlcikKK3sKKyAgdW5zaWduZWQgY2hhciAqKmJ1ZmZlcjsKKworICBhc3NlcnQoVkFMSUQoc2VsZikpOworICBhc3NlcnQoVkFMSUQoc2VsZi0+bG9jYXRpb24pKTsKKworICBidWZmZXIgPSAodW5zaWduZWQgY2hhciAqKilzZWxmLT5sb2NhdGlvbjsKKyAgc2VsZi0+Y3VycmVudCA9ICgqYnVmZmVyKVswXTsKKyAgaWYgKHNlbGYtPmN1cnJlbnQgPT0gTklMKQorICAgIHsKKyAgICAgIHNlbGYtPmN1cnJlbnQgPSBFT0Y7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgKCpidWZmZXIpKys7CisgICAgICBzZWxmLT5wcm9jZXNzZWQrKzsKKyAgICAgIHNlbGYtPmNvbW1pdHRlZCsrOworICAgIH0KKyAgCisgIGlmIChWQUxJRChpbnRQb2ludGVyKSkKKyAgICB7CisgICAgICAqaW50UG9pbnRlciA9IHNlbGYtPmN1cnJlbnQ7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZvcm1hdHRlZCBzY2FubmluZyBmdW5jdGlvbnMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChUUklPX0RPQ1VNRU5UQVRJT04pCisjIGluY2x1ZGUgImRvYy9kb2Nfc2NhbmYuaCIKKyNlbmRpZgorLyoqIEBhZGR0b2dyb3VwIFNjYW5mCisgICAgQHsKKyovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzY2FuZgorICovCisKKy8qKgorICAgU2NhbiBjaGFyYWN0ZXJzIGZyb20gc3RhbmRhcmQgaW5wdXQgc3RyZWFtLgorCisgICBAcGFyYW0gZm9ybWF0IEZvcm1hdHRpbmcgc3RyaW5nLgorICAgQHBhcmFtIC4uLiBBcmd1bWVudHMuCisgICBAcmV0dXJuIE51bWJlciBvZiBzY2FubmVkIGNoYXJhY3RlcnMuCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb19zY2FuZgorVFJJT19WQVJHUzIoKGZvcm1hdCwgdmFfYWxpc3QpLAorCSAgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICAgVFJJT19WQV9ERUNMKQoreworICBpbnQgc3RhdHVzOworICB2YV9saXN0IGFyZ3M7CisKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgVFJJT19WQV9TVEFSVChhcmdzLCBmb3JtYXQpOworICBzdGF0dXMgPSBUcmlvU2NhbigodHJpb19wb2ludGVyX3Qpc3RkaW4sIDAsCisJCSAgICBUcmlvSW5TdHJlYW1GaWxlLAorCQkgICAgZm9ybWF0LCAmYXJncywgTlVMTCk7CisgIFRSSU9fVkFfRU5EKGFyZ3MpOworICByZXR1cm4gc3RhdHVzOworfQorCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fdnNjYW5mCitUUklPX0FSR1MyKChmb3JtYXQsIGFyZ3MpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHZhX2xpc3QgYXJncykKK3sKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgcmV0dXJuIFRyaW9TY2FuKCh0cmlvX3BvaW50ZXJfdClzdGRpbiwgMCwKKwkJICBUcmlvSW5TdHJlYW1GaWxlLAorCQkgIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworfQorCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fc2NhbmZ2CitUUklPX0FSR1MyKChmb3JtYXQsIGFyZ3MpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdzKQoreworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICByZXR1cm4gVHJpb1NjYW4oKHRyaW9fcG9pbnRlcl90KXN0ZGluLCAwLAorCQkgIFRyaW9JblN0cmVhbUZpbGUsCisJCSAgZm9ybWF0LCBOVUxMLCBhcmdzKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGZzY2FuZgorICovCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fZnNjYW5mCitUUklPX1ZBUkdTMygoZmlsZSwgZm9ybWF0LCB2YV9hbGlzdCksCisJICAgIEZJTEUgKmZpbGUsCisJICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgICBUUklPX1ZBX0RFQ0wpCit7CisgIGludCBzdGF0dXM7CisgIHZhX2xpc3QgYXJnczsKKworICBhc3NlcnQoVkFMSUQoZmlsZSkpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICBUUklPX1ZBX1NUQVJUKGFyZ3MsIGZvcm1hdCk7CisgIHN0YXR1cyA9IFRyaW9TY2FuKCh0cmlvX3BvaW50ZXJfdClmaWxlLCAwLAorCQkgICAgVHJpb0luU3RyZWFtRmlsZSwKKwkJICAgIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworICBUUklPX1ZBX0VORChhcmdzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KKworVFJJT19QVUJMSUMgaW50Cit0cmlvX3Zmc2NhbmYKK1RSSU9fQVJHUzMoKGZpbGUsIGZvcm1hdCwgYXJncyksCisJICAgRklMRSAqZmlsZSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2YV9saXN0IGFyZ3MpCit7CisgIGFzc2VydChWQUxJRChmaWxlKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIHJldHVybiBUcmlvU2NhbigodHJpb19wb2ludGVyX3QpZmlsZSwgMCwKKwkJICBUcmlvSW5TdHJlYW1GaWxlLAorCQkgIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworfQorCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fZnNjYW5mdgorVFJJT19BUkdTMygoZmlsZSwgZm9ybWF0LCBhcmdzKSwKKwkgICBGSUxFICpmaWxlLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdzKQoreworICBhc3NlcnQoVkFMSUQoZmlsZSkpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICByZXR1cm4gVHJpb1NjYW4oKHRyaW9fcG9pbnRlcl90KWZpbGUsIDAsCisJCSAgVHJpb0luU3RyZWFtRmlsZSwKKwkJICBmb3JtYXQsIE5VTEwsIGFyZ3MpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogZHNjYW5mCisgKi8KK1RSSU9fUFVCTElDIGludAordHJpb19kc2NhbmYKK1RSSU9fVkFSR1MzKChmZCwgZm9ybWF0LCB2YV9hbGlzdCksCisJICAgIGludCBmZCwKKwkgICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgIFRSSU9fVkFfREVDTCkKK3sKKyAgaW50IHN0YXR1czsKKyAgdmFfbGlzdCBhcmdzOworCisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIFRSSU9fVkFfU1RBUlQoYXJncywgZm9ybWF0KTsKKyAgc3RhdHVzID0gVHJpb1NjYW4oKHRyaW9fcG9pbnRlcl90KSZmZCwgMCwKKwkJICAgIFRyaW9JblN0cmVhbUZpbGVEZXNjcmlwdG9yLAorCQkgICAgZm9ybWF0LCAmYXJncywgTlVMTCk7CisgIFRSSU9fVkFfRU5EKGFyZ3MpOworICByZXR1cm4gc3RhdHVzOworfQorCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fdmRzY2FuZgorVFJJT19BUkdTMygoZmQsIGZvcm1hdCwgYXJncyksCisJICAgaW50IGZkLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHZhX2xpc3QgYXJncykKK3sKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgcmV0dXJuIFRyaW9TY2FuKCh0cmlvX3BvaW50ZXJfdCkmZmQsIDAsCisJCSAgVHJpb0luU3RyZWFtRmlsZURlc2NyaXB0b3IsCisJCSAgZm9ybWF0LCAmYXJncywgTlVMTCk7Cit9CisKK1RSSU9fUFVCTElDIGludAordHJpb19kc2NhbmZ2CitUUklPX0FSR1MzKChmZCwgZm9ybWF0LCBhcmdzKSwKKwkgICBpbnQgZmQsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgdHJpb19wb2ludGVyX3QgKmFyZ3MpCit7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIHJldHVybiBUcmlvU2NhbigodHJpb19wb2ludGVyX3QpJmZkLCAwLAorCQkgIFRyaW9JblN0cmVhbUZpbGVEZXNjcmlwdG9yLAorCQkgIGZvcm1hdCwgTlVMTCwgYXJncyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBjc2NhbmYKKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX2NzY2FuZgorVFJJT19WQVJHUzQoKHN0cmVhbSwgY2xvc3VyZSwgZm9ybWF0LCB2YV9hbGlzdCksCisJICAgIHRyaW9faW5zdHJlYW1fdCBzdHJlYW0sCisJICAgIHRyaW9fcG9pbnRlcl90IGNsb3N1cmUsCisJICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgICBUUklPX1ZBX0RFQ0wpCit7CisgIGludCBzdGF0dXM7CisgIHZhX2xpc3QgYXJnczsKKyAgdHJpb19jdXN0b21fdCBkYXRhOworCisgIGFzc2VydChWQUxJRChzdHJlYW0pKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworICAKKyAgVFJJT19WQV9TVEFSVChhcmdzLCBmb3JtYXQpOworICBkYXRhLnN0cmVhbS5pbiA9IHN0cmVhbTsKKyAgZGF0YS5jbG9zdXJlID0gY2xvc3VyZTsKKyAgc3RhdHVzID0gVHJpb1NjYW4oJmRhdGEsIDAsIFRyaW9JblN0cmVhbUN1c3RvbSwgZm9ybWF0LCAmYXJncywgTlVMTCk7CisgIFRSSU9fVkFfRU5EKGFyZ3MpOworICByZXR1cm4gc3RhdHVzOworfQorCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fdmNzY2FuZgorVFJJT19BUkdTNCgoc3RyZWFtLCBjbG9zdXJlLCBmb3JtYXQsIGFyZ3MpLAorCSAgIHRyaW9faW5zdHJlYW1fdCBzdHJlYW0sCisJICAgdHJpb19wb2ludGVyX3QgY2xvc3VyZSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICB2YV9saXN0IGFyZ3MpCit7CisgIHRyaW9fY3VzdG9tX3QgZGF0YTsKKyAgCisgIGFzc2VydChWQUxJRChzdHJlYW0pKTsKKyAgYXNzZXJ0KFZBTElEKGZvcm1hdCkpOworCisgIGRhdGEuc3RyZWFtLmluID0gc3RyZWFtOworICBkYXRhLmNsb3N1cmUgPSBjbG9zdXJlOworICByZXR1cm4gVHJpb1NjYW4oJmRhdGEsIDAsIFRyaW9JblN0cmVhbUN1c3RvbSwgZm9ybWF0LCAmYXJncywgTlVMTCk7Cit9CisKK1RSSU9fUFVCTElDIGludAordHJpb19jc2NhbmZ2CitUUklPX0FSR1M0KChzdHJlYW0sIGNsb3N1cmUsIGZvcm1hdCwgYXJncyksCisJICAgdHJpb19pbnN0cmVhbV90IHN0cmVhbSwKKwkgICB0cmlvX3BvaW50ZXJfdCBjbG9zdXJlLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdzKQoreworICB0cmlvX2N1c3RvbV90IGRhdGE7CisgIAorICBhc3NlcnQoVkFMSUQoc3RyZWFtKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKworICBkYXRhLnN0cmVhbS5pbiA9IHN0cmVhbTsKKyAgZGF0YS5jbG9zdXJlID0gY2xvc3VyZTsKKyAgcmV0dXJuIFRyaW9TY2FuKCZkYXRhLCAwLCBUcmlvSW5TdHJlYW1DdXN0b20sIGZvcm1hdCwgTlVMTCwgYXJncyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzc2NhbmYKKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX3NzY2FuZgorVFJJT19WQVJHUzMoKGJ1ZmZlciwgZm9ybWF0LCB2YV9hbGlzdCksCisJICAgIFRSSU9fQ09OU1QgY2hhciAqYnVmZmVyLAorCSAgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICAgVFJJT19WQV9ERUNMKQoreworICBpbnQgc3RhdHVzOworICB2YV9saXN0IGFyZ3M7CisKKyAgYXNzZXJ0KFZBTElEKGJ1ZmZlcikpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICBUUklPX1ZBX1NUQVJUKGFyZ3MsIGZvcm1hdCk7CisgIHN0YXR1cyA9IFRyaW9TY2FuKCh0cmlvX3BvaW50ZXJfdCkmYnVmZmVyLCAwLAorCQkgICAgVHJpb0luU3RyZWFtU3RyaW5nLAorCQkgICAgZm9ybWF0LCAmYXJncywgTlVMTCk7CisgIFRSSU9fVkFfRU5EKGFyZ3MpOworICByZXR1cm4gc3RhdHVzOworfQorCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fdnNzY2FuZgorVFJJT19BUkdTMygoYnVmZmVyLCBmb3JtYXQsIGFyZ3MpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqYnVmZmVyLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHZhX2xpc3QgYXJncykKK3sKKyAgYXNzZXJ0KFZBTElEKGJ1ZmZlcikpOworICBhc3NlcnQoVkFMSUQoZm9ybWF0KSk7CisgIAorICByZXR1cm4gVHJpb1NjYW4oKHRyaW9fcG9pbnRlcl90KSZidWZmZXIsIDAsCisJCSAgVHJpb0luU3RyZWFtU3RyaW5nLAorCQkgIGZvcm1hdCwgJmFyZ3MsIE5VTEwpOworfQorCitUUklPX1BVQkxJQyBpbnQKK3RyaW9fc3NjYW5mdgorVFJJT19BUkdTMygoYnVmZmVyLCBmb3JtYXQsIGFyZ3MpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqYnVmZmVyLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCSAgIHRyaW9fcG9pbnRlcl90ICphcmdzKQoreworICBhc3NlcnQoVkFMSUQoYnVmZmVyKSk7CisgIGFzc2VydChWQUxJRChmb3JtYXQpKTsKKyAgCisgIHJldHVybiBUcmlvU2NhbigodHJpb19wb2ludGVyX3QpJmJ1ZmZlciwgMCwKKwkJICBUcmlvSW5TdHJlYW1TdHJpbmcsCisJCSAgZm9ybWF0LCBOVUxMLCBhcmdzKTsKK30KKworLyoqIEB9IEVuZCBvZiBTY2FuZiBkb2N1bWVudGF0aW9uIG1vZHVsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdHJpb19zdHJlcnJvcgorICovCitUUklPX1BVQkxJQyBUUklPX0NPTlNUIGNoYXIgKgordHJpb19zdHJlcnJvcgorVFJJT19BUkdTMSgoZXJyb3Jjb2RlKSwKKwkgICBpbnQgZXJyb3Jjb2RlKQoreworICAvKiBUZXh0dWFsIHZlcnNpb25zIG9mIHRoZSBlcnJvciBjb2RlcyAqLworICBzd2l0Y2ggKFRSSU9fRVJST1JfQ09ERShlcnJvcmNvZGUpKQorICAgIHsKKyAgICBjYXNlIFRSSU9fRU9GOgorICAgICAgcmV0dXJuICJFbmQgb2YgZmlsZSI7CisgICAgY2FzZSBUUklPX0VJTlZBTDoKKyAgICAgIHJldHVybiAiSW52YWxpZCBhcmd1bWVudCI7CisgICAgY2FzZSBUUklPX0VUT09NQU5ZOgorICAgICAgcmV0dXJuICJUb28gbWFueSBhcmd1bWVudHMiOworICAgIGNhc2UgVFJJT19FREJMUkVGOgorICAgICAgcmV0dXJuICJEb3VibGUgcmVmZXJlbmNlIjsKKyAgICBjYXNlIFRSSU9fRUdBUDoKKyAgICAgIHJldHVybiAiUmVmZXJlbmNlIGdhcCI7CisgICAgY2FzZSBUUklPX0VOT01FTToKKyAgICAgIHJldHVybiAiT3V0IG9mIG1lbW9yeSI7CisgICAgY2FzZSBUUklPX0VSQU5HRToKKyAgICAgIHJldHVybiAiSW52YWxpZCByYW5nZSI7CisgICAgY2FzZSBUUklPX0VDVVNUT006CisgICAgICByZXR1cm4gIkN1c3RvbSBlcnJvciI7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiAiVW5rbm93biI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90cmlvLmggYi9saWJ4bWwyLTIuNy43L3RyaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWIxYjZkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90cmlvLmgKQEAgLTAsMCArMSwyMTYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAoQykgMTk5OCBCam9ybiBSZWVzZSBhbmQgRGFuaWVsIFN0ZW5iZXJnLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRJQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gVEhFIEFVVEhPUlMgQU5ECisgKiBDT05UUklCVVRPUlMgQUNDRVBUIE5PIFJFU1BPTlNJQklMSVRZIElOIEFOWSBDT05DRUlWQUJMRSBNQU5ORVIuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBodHRwOi8vY3RyaW8uc291cmNlZm9yZ2UubmV0LworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgVFJJT19UUklPX0gKKyNkZWZpbmUgVFJJT19UUklPX0gKKworI2lmICFkZWZpbmVkKFdJVEhPVVRfVFJJTykKKworLyoKKyAqIFVzZSBhdXRvY29uZiBkZWZpbmVzIGlmIHByZXNlbnQuIFBhY2thZ2VzIHVzaW5nIHRyaW8gbXVzdCBkZWZpbmUKKyAqIEhBVkVfQ09ORklHX0ggYXMgYSBjb21waWxlciBvcHRpb24gdGhlbXNlbHZlcy4KKyAqLworI2lmIGRlZmluZWQoSEFWRV9DT05GSUdfSCkKKyMgaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgInRyaW9kZWYuaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX0FOQ0lFTlQpCisjIGluY2x1ZGUgPHZhcmFyZ3MuaD4KKyNlbHNlCisjIGluY2x1ZGUgPHN0ZGFyZy5oPgorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoKKyAqIEVycm9yIGNvZGVzLgorICoKKyAqIFJlbWVtYmVyIHRvIGFkZCBhIHRleHR1YWwgZGVzY3JpcHRpb24gdG8gdHJpb19zdHJlcnJvci4KKyAqLworZW51bSB7CisgIFRSSU9fRU9GICAgICAgPSAxLAorICBUUklPX0VJTlZBTCAgID0gMiwKKyAgVFJJT19FVE9PTUFOWSA9IDMsCisgIFRSSU9fRURCTFJFRiAgPSA0LAorICBUUklPX0VHQVAgICAgID0gNSwKKyAgVFJJT19FTk9NRU0gICA9IDYsCisgIFRSSU9fRVJBTkdFICAgPSA3LAorICBUUklPX0VSUk5PICAgID0gOCwKKyAgVFJJT19FQ1VTVE9NICA9IDkKK307CisKKy8qIEVycm9yIG1hY3JvcyAqLworI2RlZmluZSBUUklPX0VSUk9SX0NPREUoeCkgKCgtKHgpKSAmIDB4MDBGRikKKyNkZWZpbmUgVFJJT19FUlJPUl9QT1NJVElPTih4KSAoKC0oeCkpID4+IDgpCisjZGVmaW5lIFRSSU9fRVJST1JfTkFNRSh4KSB0cmlvX3N0cmVycm9yKHgpCisKK3R5cGVkZWYgaW50ICgqdHJpb19vdXRzdHJlYW1fdCkgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QsIGludCkpOwordHlwZWRlZiBpbnQgKCp0cmlvX2luc3RyZWFtX3QpIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90KSk7CisKK1RSSU9fQ09OU1QgY2hhciAqdHJpb19zdHJlcnJvciBUUklPX1BST1RPKChpbnQpKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFByaW50IEZ1bmN0aW9ucworICovCisKK2ludCB0cmlvX3ByaW50ZiBUUklPX1BST1RPKChUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgLi4uKSk7CitpbnQgdHJpb192cHJpbnRmIFRSSU9fUFJPVE8oKFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3MpKTsKK2ludCB0cmlvX3ByaW50ZnYgVFJJT19QUk9UTygoVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZvaWQgKiphcmdzKSk7CisKK2ludCB0cmlvX2ZwcmludGYgVFJJT19QUk9UTygoRklMRSAqZmlsZSwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIC4uLikpOworaW50IHRyaW9fdmZwcmludGYgVFJJT19QUk9UTygoRklMRSAqZmlsZSwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncykpOworaW50IHRyaW9fZnByaW50ZnYgVFJJT19QUk9UTygoRklMRSAqZmlsZSwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZvaWQgKiphcmdzKSk7CisKK2ludCB0cmlvX2RwcmludGYgVFJJT19QUk9UTygoaW50IGZkLCBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgLi4uKSk7CitpbnQgdHJpb192ZHByaW50ZiBUUklPX1BST1RPKChpbnQgZmQsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3MpKTsKK2ludCB0cmlvX2RwcmludGZ2IFRSSU9fUFJPVE8oKGludCBmZCwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZvaWQgKiphcmdzKSk7CisKK2ludCB0cmlvX2NwcmludGYgVFJJT19QUk9UTygodHJpb19vdXRzdHJlYW1fdCBzdHJlYW0sIHRyaW9fcG9pbnRlcl90IGNsb3N1cmUsCisJCQkgICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCAuLi4pKTsKK2ludCB0cmlvX3ZjcHJpbnRmIFRSSU9fUFJPVE8oKHRyaW9fb3V0c3RyZWFtX3Qgc3RyZWFtLCB0cmlvX3BvaW50ZXJfdCBjbG9zdXJlLAorCQkJICAgICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncykpOworaW50IHRyaW9fY3ByaW50ZnYgVFJJT19QUk9UTygodHJpb19vdXRzdHJlYW1fdCBzdHJlYW0sIHRyaW9fcG9pbnRlcl90IGNsb3N1cmUsCisJCQkgICAgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgdm9pZCAqKmFyZ3MpKTsKKworaW50IHRyaW9fc3ByaW50ZiBUUklPX1BST1RPKChjaGFyICpidWZmZXIsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCAuLi4pKTsKK2ludCB0cmlvX3ZzcHJpbnRmIFRSSU9fUFJPVE8oKGNoYXIgKmJ1ZmZlciwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncykpOworaW50IHRyaW9fc3ByaW50ZnYgVFJJT19QUk9UTygoY2hhciAqYnVmZmVyLCBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgdm9pZCAqKmFyZ3MpKTsKKworaW50IHRyaW9fc25wcmludGYgVFJJT19QUk9UTygoY2hhciAqYnVmZmVyLCBzaXplX3QgbWF4LCBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgLi4uKSk7CitpbnQgdHJpb192c25wcmludGYgVFJJT19QUk9UTygoY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJCSAgIHZhX2xpc3QgYXJncykpOworaW50IHRyaW9fc25wcmludGZ2IFRSSU9fUFJPVE8oKGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LAorCQkgICB2b2lkICoqYXJncykpOworCitpbnQgdHJpb19zbnByaW50ZmNhdCBUUklPX1BST1RPKChjaGFyICpidWZmZXIsIHNpemVfdCBtYXgsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCAuLi4pKTsKK2ludCB0cmlvX3ZzbnByaW50ZmNhdCBUUklPX1BST1RPKChjaGFyICpidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3MpKTsKKworY2hhciAqdHJpb19hcHJpbnRmIFRSSU9fUFJPVE8oKFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCAuLi4pKTsKK2NoYXIgKnRyaW9fdmFwcmludGYgVFJJT19QUk9UTygoVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncykpOworCitpbnQgdHJpb19hc3ByaW50ZiBUUklPX1BST1RPKChjaGFyICoqcmV0LCBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgLi4uKSk7CitpbnQgdHJpb192YXNwcmludGYgVFJJT19QUk9UTygoY2hhciAqKnJldCwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncykpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU2NhbiBGdW5jdGlvbnMKKyAqLworaW50IHRyaW9fc2NhbmYgVFJJT19QUk9UTygoVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIC4uLikpOworaW50IHRyaW9fdnNjYW5mIFRSSU9fUFJPVE8oKFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3MpKTsKK2ludCB0cmlvX3NjYW5mdiBUUklPX1BST1RPKChUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgdm9pZCAqKmFyZ3MpKTsKKworaW50IHRyaW9fZnNjYW5mIFRSSU9fUFJPVE8oKEZJTEUgKmZpbGUsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCAuLi4pKTsKK2ludCB0cmlvX3Zmc2NhbmYgVFJJT19QUk9UTygoRklMRSAqZmlsZSwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncykpOworaW50IHRyaW9fZnNjYW5mdiBUUklPX1BST1RPKChGSUxFICpmaWxlLCBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgdm9pZCAqKmFyZ3MpKTsKKworaW50IHRyaW9fZHNjYW5mIFRSSU9fUFJPVE8oKGludCBmZCwgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIC4uLikpOworaW50IHRyaW9fdmRzY2FuZiBUUklPX1BST1RPKChpbnQgZmQsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3MpKTsKK2ludCB0cmlvX2RzY2FuZnYgVFJJT19QUk9UTygoaW50IGZkLCBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgdm9pZCAqKmFyZ3MpKTsKKworaW50IHRyaW9fY3NjYW5mIFRSSU9fUFJPVE8oKHRyaW9faW5zdHJlYW1fdCBzdHJlYW0sIHRyaW9fcG9pbnRlcl90IGNsb3N1cmUsCisJCQkgICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsIC4uLikpOworaW50IHRyaW9fdmNzY2FuZiBUUklPX1BST1RPKCh0cmlvX2luc3RyZWFtX3Qgc3RyZWFtLCB0cmlvX3BvaW50ZXJfdCBjbG9zdXJlLAorCQkJICAgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwgdmFfbGlzdCBhcmdzKSk7CitpbnQgdHJpb19jc2NhbmZ2IFRSSU9fUFJPVE8oKHRyaW9faW5zdHJlYW1fdCBzdHJlYW0sIHRyaW9fcG9pbnRlcl90IGNsb3N1cmUsCisJCQkgICAgIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCB2b2lkICoqYXJncykpOworCitpbnQgdHJpb19zc2NhbmYgVFJJT19QUk9UTygoVFJJT19DT05TVCBjaGFyICpidWZmZXIsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCAuLi4pKTsKK2ludCB0cmlvX3Zzc2NhbmYgVFJJT19QUk9UTygoVFJJT19DT05TVCBjaGFyICpidWZmZXIsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3MpKTsKK2ludCB0cmlvX3NzY2FuZnYgVFJJT19QUk9UTygoVFJJT19DT05TVCBjaGFyICpidWZmZXIsIFRSSU9fQ09OU1QgY2hhciAqZm9ybWF0LCB2b2lkICoqYXJncykpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogTG9jYWxlIEZ1bmN0aW9ucworICovCit2b2lkIHRyaW9fbG9jYWxlX3NldF9kZWNpbWFsX3BvaW50IFRSSU9fUFJPVE8oKGNoYXIgKmRlY2ltYWxQb2ludCkpOwordm9pZCB0cmlvX2xvY2FsZV9zZXRfdGhvdXNhbmRfc2VwYXJhdG9yIFRSSU9fUFJPVE8oKGNoYXIgKnRob3VzYW5kU2VwYXJhdG9yKSk7Cit2b2lkIHRyaW9fbG9jYWxlX3NldF9ncm91cGluZyBUUklPX1BST1RPKChjaGFyICpncm91cGluZykpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUmVuYW1pbmcKKyAqLworI2lmZGVmIFRSSU9fUkVQTEFDRV9TVERJTworLyogUmVwbGFjZSB0aGUgPHN0ZGlvLmg+IGZ1bmN0aW9ucyAqLworI2lmbmRlZiBIQVZFX1BSSU5URgorIyBkZWZpbmUgcHJpbnRmIHRyaW9fcHJpbnRmCisjZW5kaWYKKyNpZm5kZWYgSEFWRV9WUFJJTlRGCisjIGRlZmluZSB2cHJpbnRmIHRyaW9fdnByaW50ZgorI2VuZGlmCisjaWZuZGVmIEhBVkVfRlBSSU5URgorIyBkZWZpbmUgZnByaW50ZiB0cmlvX2ZwcmludGYKKyNlbmRpZgorI2lmbmRlZiBIQVZFX1ZGUFJJTlRGCisjIGRlZmluZSB2ZnByaW50ZiB0cmlvX3ZmcHJpbnRmCisjZW5kaWYKKyNpZm5kZWYgSEFWRV9TUFJJTlRGCisjIGRlZmluZSBzcHJpbnRmIHRyaW9fc3ByaW50ZgorI2VuZGlmCisjaWZuZGVmIEhBVkVfVlNQUklOVEYKKyMgZGVmaW5lIHZzcHJpbnRmIHRyaW9fdnNwcmludGYKKyNlbmRpZgorI2lmbmRlZiBIQVZFX1NOUFJJTlRGCisjIGRlZmluZSBzbnByaW50ZiB0cmlvX3NucHJpbnRmCisjZW5kaWYKKyNpZm5kZWYgSEFWRV9WU05QUklOVEYKKyMgZGVmaW5lIHZzbnByaW50ZiB0cmlvX3ZzbnByaW50ZgorI2VuZGlmCisjaWZuZGVmIEhBVkVfU0NBTkYKKyMgZGVmaW5lIHNjYW5mIHRyaW9fc2NhbmYKKyNlbmRpZgorI2lmbmRlZiBIQVZFX1ZTQ0FORgorIyBkZWZpbmUgdnNjYW5mIHRyaW9fdnNjYW5mCisjZW5kaWYKKyNpZm5kZWYgSEFWRV9GU0NBTkYKKyMgZGVmaW5lIGZzY2FuZiB0cmlvX2ZzY2FuZgorI2VuZGlmCisjaWZuZGVmIEhBVkVfVkZTQ0FORgorIyBkZWZpbmUgdmZzY2FuZiB0cmlvX3Zmc2NhbmYKKyNlbmRpZgorI2lmbmRlZiBIQVZFX1NTQ0FORgorIyBkZWZpbmUgc3NjYW5mIHRyaW9fc3NjYW5mCisjZW5kaWYKKyNpZm5kZWYgSEFWRV9WU1NDQU5GCisjIGRlZmluZSB2c3NjYW5mIHRyaW9fdnNzY2FuZgorI2VuZGlmCisvKiBUaGVzZSBhcmVuJ3Qgc3RkaW8gZnVuY3Rpb25zLCBidXQgd2UgbWFrZSB0aGVtIGxvb2sgc2ltaWxhciAqLworI2RlZmluZSBkcHJpbnRmIHRyaW9fZHByaW50ZgorI2RlZmluZSB2ZHByaW50ZiB0cmlvX3ZkcHJpbnRmCisjZGVmaW5lIGFwcmludGYgdHJpb19hcHJpbnRmCisjZGVmaW5lIHZhcHJpbnRmIHRyaW9fdmFwcmludGYKKyNkZWZpbmUgYXNwcmludGYgdHJpb19hc3ByaW50ZgorI2RlZmluZSB2YXNwcmludGYgdHJpb192YXNwcmludGYKKyNkZWZpbmUgZHNjYW5mIHRyaW9fZHNjYW5mCisjZGVmaW5lIHZkc2NhbmYgdHJpb192ZHNjYW5mCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9IC8qIGV4dGVybiAiQyIgKi8KKyNlbmRpZgorCisjZW5kaWYgLyogV0lUSE9VVF9UUklPICovCisKKyNlbmRpZiAvKiBUUklPX1RSSU9fSCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy90cmlvZGVmLmggYi9saWJ4bWwyLTIuNy43L3RyaW9kZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTg5NDE2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90cmlvZGVmLmgKQEAgLTAsMCArMSwyMjIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMSBCam9ybiBSZWVzZSA8YnJlZXNlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIFdJVEhPVVQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5USUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFRIRSBBVVRIT1JTIEFORAorICogQ09OVFJJQlVUT1JTIEFDQ0VQVCBOTyBSRVNQT05TSUJJTElUWSBJTiBBTlkgQ09OQ0VJVkFCTEUgTUFOTkVSLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgVFJJT19UUklPREVGX0gKKyNkZWZpbmUgVFJJT19UUklPREVGX0gKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFBsYXRmb3JtIGFuZCBjb21waWxlciBzdXBwb3J0IGRldGVjdGlvbgorICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgZGVmaW5lIFRSSU9fQ09NUElMRVJfR0NDCisjZWxpZiBkZWZpbmVkKF9fU1VOUFJPX0MpCisjIGRlZmluZSBUUklPX0NPTVBJTEVSX1NVTlBSTworI2VsaWYgZGVmaW5lZChfX1NVTlBST19DQykKKyMgZGVmaW5lIFRSSU9fQ09NUElMRVJfU1VOUFJPCisjIGRlZmluZSBfX1NVTlBST19DIF9fU1VOUFJPX0NDCisjZWxpZiBkZWZpbmVkKF9feGxDX18pIHx8IGRlZmluZWQoX19JQk1DX18pIHx8IGRlZmluZWQoX19JQk1DUFBfXykKKyMgZGVmaW5lIFRSSU9fQ09NUElMRVJfWExDCisjZWxpZiBkZWZpbmVkKF9BSVgpICYmICFkZWZpbmVkKF9fR05VQ19fKQorIyBkZWZpbmUgVFJJT19DT01QSUxFUl9YTEMgLyogV29ya2Fyb3VuZCBmb3Igb2xkIHhsYyAqLworI2VsaWYgZGVmaW5lZChfX0RFQ0MpIHx8IGRlZmluZWQoX19ERUNDWFgpCisjIGRlZmluZSBUUklPX0NPTVBJTEVSX0RFQ0MKKyNlbGlmIGRlZmluZWQoX19vc2ZfXykgJiYgZGVmaW5lZChfX0xBTkdVQUdFX0NfXykKKyMgZGVmaW5lIFRSSU9fQ09NUElMRVJfREVDQyAvKiBXb3JrYXJvdW5kIGZvciBvbGQgREVDIEMgY29tcGlsZXJzICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyBkZWZpbmUgVFJJT19DT01QSUxFUl9NU1ZDCisjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykKKyMgZGVmaW5lIFRSSU9fQ09NUElMRVJfQkNCCisjZW5kaWYKKworI2lmIGRlZmluZWQoVk1TKSB8fCBkZWZpbmVkKF9fVk1TKQorLyoKKyAqIFZNUyBpcyBwbGFjZWQgZmlyc3QgdG8gYXZvaWQgaWRlbnRpZnlpbmcgdGhlIHBsYXRmb3JtIGFzIFVuaXgKKyAqIGJhc2VkIG9uIHRoZSBERUNDIGNvbXBpbGVyIGxhdGVyIG9uLgorICovCisjIGRlZmluZSBUUklPX1BMQVRGT1JNX1ZNUworI2VsaWYgZGVmaW5lZCh1bml4KSB8fCBkZWZpbmVkKF9fdW5peCkgfHwgZGVmaW5lZChfX3VuaXhfXykKKyMgZGVmaW5lIFRSSU9fUExBVEZPUk1fVU5JWAorI2VsaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX1hMQykgfHwgZGVmaW5lZChfQUlYKQorIyBkZWZpbmUgVFJJT19QTEFURk9STV9VTklYCisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfREVDQykgfHwgZGVmaW5lZChfX29zZl9fXykKKyMgZGVmaW5lIFRSSU9fUExBVEZPUk1fVU5JWAorI2VsaWYgZGVmaW5lZChfX05ldEJTRF9fKQorIyBkZWZpbmUgVFJJT19QTEFURk9STV9VTklYCisjZWxpZiBkZWZpbmVkKF9fTHlueF9fKQorIyBkZWZpbmUgVFJJT19QTEFURk9STV9VTklYCisjZWxpZiBkZWZpbmVkKF9fUU5YX18pCisjIGRlZmluZSBUUklPX1BMQVRGT1JNX1VOSVgKKyMgZGVmaW5lIFRSSU9fUExBVEZPUk1fUU5YCisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCisjIGRlZmluZSBUUklPX1BMQVRGT1JNX1VOSVgKKyNlbGlmIGRlZmluZWQoQU1JR0EpICYmIGRlZmluZWQoVFJJT19DT01QSUxFUl9HQ0MpCisjIGRlZmluZSBUUklPX1BMQVRGT1JNX1VOSVgKKyNlbGlmIGRlZmluZWQoVFJJT19DT01QSUxFUl9NU1ZDKSB8fCBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKKyMgZGVmaW5lIFRSSU9fUExBVEZPUk1fV0lOMzIKKyNlbGlmIGRlZmluZWQobXBlaXgpIHx8IGRlZmluZWQoX19tcGV4bCkKKyMgZGVmaW5lIFRSSU9fUExBVEZPUk1fTVBFSVgKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfQUlYKQorIyBkZWZpbmUgVFJJT19QTEFURk9STV9BSVgKKyNlbGlmIGRlZmluZWQoX19ocHV4KQorIyBkZWZpbmUgVFJJT19QTEFURk9STV9IUFVYCisjZWxpZiBkZWZpbmVkKHN1bikgfHwgZGVmaW5lZChfX3N1bl9fKQorIyBpZiBkZWZpbmVkKF9fU1ZSNCkgfHwgZGVmaW5lZChfX3N2cjRfXykKKyMgIGRlZmluZSBUUklPX1BMQVRGT1JNX1NPTEFSSVMKKyMgZWxzZQorIyAgZGVmaW5lIFRSSU9fUExBVEZPUk1fU1VOT1MKKyMgZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX1NURENfXykgfHwgZGVmaW5lZChUUklPX0NPTVBJTEVSX01TVkMpIHx8IGRlZmluZWQoVFJJT19DT01QSUxFUl9CQ0IpCisjIGRlZmluZSBUUklPX0NPTVBJTEVSX1NVUFBPUlRTX0M4OQorIyBpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pCisjICBkZWZpbmUgVFJJT19DT01QSUxFUl9TVVBQT1JUU19DOTAKKyMgIGlmIChfX1NURENfVkVSU0lPTl9fID49IDE5OTQwOUwpCisjICAgZGVmaW5lIFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfQzk0CisjICBlbmRpZgorIyAgaWYgKF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTCkKKyMgICBkZWZpbmUgVFJJT19DT01QSUxFUl9TVVBQT1JUU19DOTkKKyMgIGVuZGlmCisjIGVsaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX1NVTlBSTykKKyMgIGlmIChfX1NVTlBST19DID49IDB4NDIwKQorIyAgIGRlZmluZSBUUklPX0NPTVBJTEVSX1NVUFBPUlRTX0M5NAorIyAgZW5kaWYKKyMgZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfWE9QRU5fU09VUkNFKQorIyBpZiBkZWZpbmVkKF9YT1BFTl9TT1VSQ0VfRVhURU5ERUQpCisjICBkZWZpbmUgVFJJT19DT01QSUxFUl9TVVBQT1JUU19VTklYOTUKKyMgZW5kaWYKKyMgaWYgKF9YT1BFTl9WRVJTSU9OID49IDUwMCkKKyMgIGRlZmluZSBUUklPX0NPTVBJTEVSX1NVUFBPUlRTX1VOSVg5OAorIyBlbmRpZgorIyBpZiAoX1hPUEVOX1ZFUlNJT04gPj0gNjAwKQorIyAgZGVmaW5lIFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfVU5JWDAxCisjIGVuZGlmCisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyaWMgZGVmaW5lcworICovCisKKyNpZiAhZGVmaW5lZChUUklPX1BVQkxJQykKKyMgZGVmaW5lIFRSSU9fUFVCTElDCisjZW5kaWYKKyNpZiAhZGVmaW5lZChUUklPX1BSSVZBVEUpCisjIGRlZmluZSBUUklPX1BSSVZBVEUgc3RhdGljCisjZW5kaWYKKworI2lmICEoZGVmaW5lZChUUklPX0NPTVBJTEVSX1NVUFBPUlRTX0M4OSkgfHwgZGVmaW5lZChfX2NwbHVzcGx1cykpCisjIGRlZmluZSBUUklPX0NPTVBJTEVSX0FOQ0lFTlQKKyNlbmRpZgorCisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX0FOQ0lFTlQpCisjIGRlZmluZSBUUklPX0NPTlNUCisjIGRlZmluZSBUUklPX1ZPTEFUSUxFCisjIGRlZmluZSBUUklPX1NJR05FRAordHlwZWRlZiBkb3VibGUgdHJpb19sb25nX2RvdWJsZV90OwordHlwZWRlZiBjaGFyICogdHJpb19wb2ludGVyX3Q7CisjIGRlZmluZSBUUklPX1NVRkZJWF9MT05HKHgpIHgKKyMgZGVmaW5lIFRSSU9fUFJPVE8oeCkgKCkKKyMgZGVmaW5lIFRSSU9fTk9BUkdTCisjIGRlZmluZSBUUklPX0FSR1MxKGxpc3QsYTEpIGxpc3QgYTE7CisjIGRlZmluZSBUUklPX0FSR1MyKGxpc3QsYTEsYTIpIGxpc3QgYTE7IGEyOworIyBkZWZpbmUgVFJJT19BUkdTMyhsaXN0LGExLGEyLGEzKSBsaXN0IGExOyBhMjsgYTM7CisjIGRlZmluZSBUUklPX0FSR1M0KGxpc3QsYTEsYTIsYTMsYTQpIGxpc3QgYTE7IGEyOyBhMzsgYTQ7CisjIGRlZmluZSBUUklPX0FSR1M1KGxpc3QsYTEsYTIsYTMsYTQsYTUpIGxpc3QgYTE7IGEyOyBhMzsgYTQ7IGE1OworIyBkZWZpbmUgVFJJT19BUkdTNihsaXN0LGExLGEyLGEzLGE0LGE1LGE2KSBsaXN0IGExOyBhMjsgYTM7IGE0OyBhNTsgYTY7CisjIGRlZmluZSBUUklPX1ZBUkdTMihsaXN0LGExLGEyKSBsaXN0IGExOyBhMgorIyBkZWZpbmUgVFJJT19WQVJHUzMobGlzdCxhMSxhMixhMykgbGlzdCBhMTsgYTI7IGEzCisjIGRlZmluZSBUUklPX1ZBUkdTNChsaXN0LGExLGEyLGEzLGE0KSBsaXN0IGExOyBhMjsgYTM7IGE0CisjIGRlZmluZSBUUklPX1ZBUkdTNShsaXN0LGExLGEyLGEzLGE0LGE1KSBsaXN0IGExOyBhMjsgYTM7IGE0OyBhNQorIyBkZWZpbmUgVFJJT19WQV9ERUNMIHZhX2RjbAorIyBkZWZpbmUgVFJJT19WQV9TVEFSVCh4LHkpIHZhX3N0YXJ0KHgpCisjIGRlZmluZSBUUklPX1ZBX0VORCh4KSB2YV9lbmQoeCkKKyNlbHNlIC8qIEFOU0kgQyAqLworIyBkZWZpbmUgVFJJT19DT05TVCBjb25zdAorIyBkZWZpbmUgVFJJT19WT0xBVElMRSB2b2xhdGlsZQorIyBkZWZpbmUgVFJJT19TSUdORUQgc2lnbmVkCit0eXBlZGVmIGxvbmcgZG91YmxlIHRyaW9fbG9uZ19kb3VibGVfdDsKK3R5cGVkZWYgdm9pZCAqIHRyaW9fcG9pbnRlcl90OworIyBkZWZpbmUgVFJJT19TVUZGSVhfTE9ORyh4KSB4ICMjIEwKKyMgZGVmaW5lIFRSSU9fUFJPVE8oeCkgeAorIyBkZWZpbmUgVFJJT19OT0FSR1Mgdm9pZAorIyBkZWZpbmUgVFJJT19BUkdTMShsaXN0LGExKSAoYTEpCisjIGRlZmluZSBUUklPX0FSR1MyKGxpc3QsYTEsYTIpIChhMSxhMikKKyMgZGVmaW5lIFRSSU9fQVJHUzMobGlzdCxhMSxhMixhMykgKGExLGEyLGEzKQorIyBkZWZpbmUgVFJJT19BUkdTNChsaXN0LGExLGEyLGEzLGE0KSAoYTEsYTIsYTMsYTQpCisjIGRlZmluZSBUUklPX0FSR1M1KGxpc3QsYTEsYTIsYTMsYTQsYTUpIChhMSxhMixhMyxhNCxhNSkKKyMgZGVmaW5lIFRSSU9fQVJHUzYobGlzdCxhMSxhMixhMyxhNCxhNSxhNikgKGExLGEyLGEzLGE0LGE1LGE2KQorIyBkZWZpbmUgVFJJT19WQVJHUzIgVFJJT19BUkdTMgorIyBkZWZpbmUgVFJJT19WQVJHUzMgVFJJT19BUkdTMworIyBkZWZpbmUgVFJJT19WQVJHUzQgVFJJT19BUkdTNAorIyBkZWZpbmUgVFJJT19WQVJHUzUgVFJJT19BUkdTNQorIyBkZWZpbmUgVFJJT19WQV9ERUNMIC4uLgorIyBkZWZpbmUgVFJJT19WQV9TVEFSVCh4LHkpIHZhX3N0YXJ0KHgseSkKKyMgZGVmaW5lIFRSSU9fVkFfRU5EKHgpIHZhX2VuZCh4KQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfQzk5KSB8fCBkZWZpbmVkKF9fY3BsdXNwbHVzKQorIyBkZWZpbmUgVFJJT19JTkxJTkUgaW5saW5lCisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfR0NDKQorIyBkZWZpbmUgVFJJT19JTkxJTkUgX19pbmxpbmVfXworI2VsaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX01TVkMpCisjIGRlZmluZSBUUklPX0lOTElORSBfaW5saW5lCisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfQkNCKQorIyBkZWZpbmUgVFJJT19JTkxJTkUgX19pbmxpbmUKKyNlbHNlCisjIGRlZmluZSBUUklPX0lOTElORQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBXb3JrYXJvdW5kcworICovCisKKyNpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fVk1TKQorLyoKKyAqIENvbXB1dGF0aW9ucyBkb25lIHdpdGggY29uc3RhbnRzIGF0IGNvbXBpbGUgdGltZSBjYW4gdHJpZ2dlciB0aGVzZQorICogZXZlbiB3aGVuIGNvbXBpbGluZyB3aXRoIElFRUUgZW5hYmxlZC4KKyAqLworIyBwcmFnbWEgbWVzc2FnZSBkaXNhYmxlIChVTkRFUkZMT1csIEZMT0FUT1ZFUkZMKQorCisjIGlmIChfX0NSVExfVkVSIDwgODAwMDAwMDApCisvKgorICogQWx0aG91Z2ggdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEM5OSBsYW5ndWFnZSBjb25zdHJ1Y3RzLCB0aGUgQworICogcnVuLXRpbWUgbGlicmFyeSBkb2VzIG5vdCBjb250YWluIGFsbCBDOTkgZnVuY3Rpb25zLgorICoKKyAqIFRoaXMgd2FzIHRoZSBjYXNlIGZvciA3MDMwMDAyMi4gVXBkYXRlIHRoZSA4MDAwMDAwMCB2YWx1ZSB3aGVuCisgKiBpdCBoYXMgYmVlbiBhY2N1cmF0ZWx5IGRldGVybWluZWQgd2hhdCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5CisgKiBzdXBwb3J0cyBDOTkuCisgKi8KKyMgIGlmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19DOTkpCisjICAgdW5kZWYgVFJJT19DT01QSUxFUl9TVVBQT1JUU19DOTkKKyMgIGVuZGlmCisjIGVuZGlmCisjZW5kaWYKKworLyoKKyAqIE5vdCBhbGwgcHJlcHJvY2Vzc29ycyBzdXBwb3J0cyB0aGUgTEwgdG9rZW4uCisgKi8KKyNpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfQkNCKQorI2Vsc2UKKyMgZGVmaW5lIFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfTEwKKyNlbmRpZgorCisjZW5kaWYgLyogVFJJT19UUklPREVGX0ggKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdHJpb25hbi5jIGIvbGlieG1sMi0yLjcuNy90cmlvbmFuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTViYWFlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdHJpb25hbi5jCkBAIC0wLDAgKzEsOTE0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRJZCQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgQmpvcm4gUmVlc2UgPGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBXSVRIT1VUIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVElCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBUSEUgQVVUSE9SUyBBTkQKKyAqIENPTlRSSUJVVE9SUyBBQ0NFUFQgTk8gUkVTUE9OU0lCSUxJVFkgSU4gQU5ZIENPTkNFSVZBQkxFIE1BTk5FUi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRnVuY3Rpb25zIHRvIGhhbmRsZSBzcGVjaWFsIHF1YW50aXRpZXMgaW4gZmxvYXRpbmctcG9pbnQgbnVtYmVycworICogKHRoYXQgaXMsIE5hTnMgYW5kIGluZmluaXR5KS4gVGhleSBwcm92aWRlIHRoZSBjYXBhYmlsaXR5IHRvIGRldGVjdAorICogYW5kIGZhYnJpY2F0ZSBzcGVjaWFsIHF1YW50aXRpZXMuCisgKgorICogQWx0aG91Z2ggd3JpdHRlbiB0byBiZSBhcyBwb3J0YWJsZSBhcyBwb3NzaWJsZSwgaXQgY2FuIG5ldmVyIGJlCisgKiBndWFyYW50ZWVkIHRvIHdvcmsgb24gYWxsIHBsYXRmb3JtcywgYXMgbm90IGFsbCBoYXJkd2FyZSBzdXBwb3J0cworICogc3BlY2lhbCBxdWFudGl0aWVzLgorICoKKyAqIFRoZSBhcHByb2FjaCB1c2VkIGhlcmUgKGFwcHJveGltYXRlbHkpIGlzIHRvOgorICoKKyAqICAgMS4gVXNlIEM5OSBmdW5jdGlvbmFsaXR5IHdoZW4gYXZhaWxhYmxlLgorICogICAyLiBVc2UgSUVFRSA3NTQgYml0LXBhdHRlcm5zIGlmIHBvc3NpYmxlLgorICogICAzLiBVc2UgcGxhdGZvcm0tc3BlY2lmaWMgdGVjaG5pcXVlcy4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogVE9ETzoKKyAqICBvIFB1dCBhbGwgdGhlIG1hZ2ljIGludG8gdHJpb19mcGNsYXNzaWZ5X2FuZF9zaWduYml0KCksIGFuZCB1c2UgdGhpcyBmcm9tCisgKiAgICB0cmlvX2lzbmFuKCkgZXRjLgorICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBJbmNsdWRlIGZpbGVzCisgKi8KKyNpbmNsdWRlICJ0cmlvZGVmLmgiCisjaW5jbHVkZSAidHJpb25hbi5oIgorCisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPGZsb2F0Lmg+CisjaWYgZGVmaW5lZChUUklPX1BMQVRGT1JNX1VOSVgpCisjIGluY2x1ZGUgPHNpZ25hbC5oPgorI2VuZGlmCisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX0RFQ0MpCisjICBpZiBkZWZpbmVkKF9fbGludXhfXykKKyMgICBpbmNsdWRlIDxjcG1sLmg+CisjICBlbHNlCisjICAgaW5jbHVkZSA8ZnBfY2xhc3MuaD4KKyMgIGVuZGlmCisjZW5kaWYKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworI2lmIGRlZmluZWQoVFJJT19ET0NVTUVOVEFUSU9OKQorIyBpbmNsdWRlICJkb2MvZG9jX25hbi5oIgorI2VuZGlmCisvKiogQGFkZHRvZ3JvdXAgU3BlY2lhbFF1YW50aXRpZXMKKyAgICBAeworKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlZmluaXRpb25zCisgKi8KKworI2RlZmluZSBUUklPX1RSVUUgKDEgPT0gMSkKKyNkZWZpbmUgVFJJT19GQUxTRSAoMCA9PSAxKQorCisvKgorICogV2UgbXVzdCBlbmFibGUgSUVFRSBmbG9hdGluZy1wb2ludCBvbiBBbHBoYQorICovCisjaWYgZGVmaW5lZChfX2FscGhhKSAmJiAhZGVmaW5lZChfSUVFRV9GUCkKKyMgaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX0RFQ0MpCisjICBpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fVk1TKQorIyAgIGVycm9yICJNdXN0IGJlIGNvbXBpbGVkIHdpdGggb3B0aW9uIC9JRUVFX01PREU9VU5ERVJGTE9XX1RPX1pFUk8vRkxPQVQ9SUVFRSIKKyMgIGVsc2UKKyMgICBpZiAhZGVmaW5lZChfQ0ZFKQorIyAgICBlcnJvciAiTXVzdCBiZSBjb21waWxlZCB3aXRoIG9wdGlvbiAtaWVlZSIKKyMgICBlbmRpZgorIyAgZW5kaWYKKyMgZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfR0NDKSAmJiAoZGVmaW5lZChfX29zZl9fKSB8fCBkZWZpbmVkKF9fbGludXhfXykpCisjICBlcnJvciAiTXVzdCBiZSBjb21waWxlZCB3aXRoIG9wdGlvbiAtbWllZWUiCisjIGVuZGlmCisjZW5kaWYgLyogX19hbHBoYSAmJiAhIF9JRUVFX0ZQICovCisKKy8qCisgKiBJbiBBTlNJL0lFRUUgNzU0LTE5ODUgNjQtYml0cyBkb3VibGUgZm9ybWF0IG51bWJlcnMgaGF2ZSB0aGUKKyAqIGZvbGxvd2luZyBwcm9wZXJ0aWVzIChhbW91bmdzdCBvdGhlcnMpCisgKgorICogICBvIEZMVF9SQURJWCA9PSAyOiBiaW5hcnkgZW5jb2RpbmcKKyAqICAgbyBEQkxfTUFYX0VYUCA9PSAxMDI0OiAxMSBiaXRzIGV4cG9uZW50LCB3aGVyZSBvbmUgYml0IGlzIHVzZWQKKyAqICAgICB0byBpbmRpY2F0ZSBzcGVjaWFsIG51bWJlcnMgKGUuZy4gTmFOIGFuZCBJbmZpbml0eSksIHNvIHRoZQorICogICAgIG1heGltdW0gZXhwb25lbnQgaXMgMTAgYml0cyB3aWRlICgyXjEwID09IDEwMjQpLgorICogICBvIERCTF9NQU5UX0RJRyA9PSA1MzogVGhlIG1hbnRpc3NhIGlzIDUyIGJpdHMgd2lkZSwgYnV0IGJlY2F1c2UKKyAqICAgICBudW1iZXJzIGFyZSBub3JtYWxpemVkIHRoZSBpbml0aWFsIGJpbmFyeSAxIGlzIHJlcHJlc2VudGVkCisgKiAgICAgaW1wbGljaXRseSAodGhlIHNvLWNhbGxlZCAiaGlkZGVuIGJpdCIpLCB3aGljaCBsZWF2ZXMgdXMgd2l0aAorICogICAgIHRoZSBhYmlsaXR5IHRvIHJlcHJlc2VudCA1MyBiaXRzIHdpZGUgbWFudGlzc2EuCisgKi8KKyNpZiAoRkxUX1JBRElYID09IDIpICYmIChEQkxfTUFYX0VYUCA9PSAxMDI0KSAmJiAoREJMX01BTlRfRElHID09IDUzKQorIyBkZWZpbmUgVVNFX0lFRUVfNzU0CisjZW5kaWYKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29uc3RhbnRzCisgKi8KKworc3RhdGljIFRSSU9fQ09OU1QgY2hhciByY3NpZFtdID0gIkAoIykkSWQkIjsKKworI2lmIGRlZmluZWQoVVNFX0lFRUVfNzU0KQorCisvKgorICogRW5kaWFuLWFnbm9zdGljIGluZGV4aW5nIG1hY3JvLgorICoKKyAqIFRoZSB2YWx1ZSBvZiBpbnRlcm5hbEVuZGlhbk1hZ2ljLCB3aGVuIGNvbnZlcnRlZCBpbnRvIGEgNjQtYml0CisgKiBpbnRlZ2VyLCBiZWNvbWVzIDB4MDcwNjA1MDQwMzAyMDEwMCAod2UgY291bGQgaGF2ZSB1c2VkIGEgNjQtYml0CisgKiBpbnRlZ2VyIHZhbHVlIGluc3RlYWQgb2YgYSBkb3VibGUsIGJ1dCBub3QgYWxsIHBsYXRmb3JtcyBzdXBwb3J0cworICogdGhhdCB0eXBlKS4gVGhlIHZhbHVlIGlzIGF1dG9tYXRpY2FsbHkgZW5jb2RlZCB3aXRoIHRoZSBjb3JyZWN0CisgKiBlbmRpYW5lc3MgYnkgdGhlIGNvbXBpbGVyLCB3aGljaCBtZWFucyB0aGF0IHdlIGNhbiBzdXBwb3J0IGFueQorICoga2luZCBvZiBlbmRpYW5lc3MuIFRoZSBpbmRpdmlkdWFsIGJ5dGVzIGFyZSB0aGVuIHVzZWQgYXMgYW4gaW5kZXgKKyAqIGZvciB0aGUgSUVFRSA3NTQgYml0LXBhdHRlcm5zIGFuZCBtYXNrcy4KKyAqLworI2RlZmluZSBUUklPX0RPVUJMRV9JTkRFWCh4KSAoKCh1bnNpZ25lZCBjaGFyICopJmludGVybmFsRW5kaWFuTWFnaWMpWzctKHgpXSkKKworI2lmIChkZWZpbmVkKF9fQk9STEFORENfXykgJiYgX19CT1JMQU5EQ19fID49IDB4MDU5MCkKK3N0YXRpYyBUUklPX0NPTlNUIGRvdWJsZSBpbnRlcm5hbEVuZGlhbk1hZ2ljID0gNy45NDk5Mjg4OTUxMjczNjJlLTI3NTsKKyNlbHNlCitzdGF0aWMgVFJJT19DT05TVCBkb3VibGUgaW50ZXJuYWxFbmRpYW5NYWdpYyA9IDcuOTQ5OTI4ODk1MTI3MzYzZS0yNzU7CisjZW5kaWYKKworLyogTWFzayBmb3IgdGhlIGV4cG9uZW50ICovCitzdGF0aWMgVFJJT19DT05TVCB1bnNpZ25lZCBjaGFyIGllZWVfNzU0X2V4cG9uZW50X21hc2tbXSA9IHsKKyAgMHg3RiwgMHhGMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMAorfTsKKworLyogTWFzayBmb3IgdGhlIG1hbnRpc3NhICovCitzdGF0aWMgVFJJT19DT05TVCB1bnNpZ25lZCBjaGFyIGllZWVfNzU0X21hbnRpc3NhX21hc2tbXSA9IHsKKyAgMHgwMCwgMHgwRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRgorfTsKKworLyogTWFzayBmb3IgdGhlIHNpZ24gYml0ICovCitzdGF0aWMgVFJJT19DT05TVCB1bnNpZ25lZCBjaGFyIGllZWVfNzU0X3NpZ25fbWFza1tdID0geworICAweDgwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwCit9OworCisvKiBCaXQtcGF0dGVybiBmb3IgbmVnYXRpdmUgemVybyAqLworc3RhdGljIFRSSU9fQ09OU1QgdW5zaWduZWQgY2hhciBpZWVlXzc1NF9uZWd6ZXJvX2FycmF5W10gPSB7CisgIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAKK307CisKKy8qIEJpdC1wYXR0ZXJuIGZvciBpbmZpbml0eSAqLworc3RhdGljIFRSSU9fQ09OU1QgdW5zaWduZWQgY2hhciBpZWVlXzc1NF9pbmZpbml0eV9hcnJheVtdID0geworICAweDdGLCAweEYwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwCit9OworCisvKiBCaXQtcGF0dGVybiBmb3IgcXVpZXQgTmFOICovCitzdGF0aWMgVFJJT19DT05TVCB1bnNpZ25lZCBjaGFyIGllZWVfNzU0X3FuYW5fYXJyYXlbXSA9IHsKKyAgMHg3RiwgMHhGOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRnVuY3Rpb25zCisgKi8KKworLyoKKyAqIHRyaW9fbWFrZV9kb3VibGUKKyAqLworVFJJT19QUklWQVRFIGRvdWJsZQordHJpb19tYWtlX2RvdWJsZQorVFJJT19BUkdTMSgodmFsdWVzKSwKKwkgICBUUklPX0NPTlNUIHVuc2lnbmVkIGNoYXIgKnZhbHVlcykKK3sKKyAgVFJJT19WT0xBVElMRSBkb3VibGUgcmVzdWx0OworICBpbnQgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgKGludClzaXplb2YoZG91YmxlKTsgaSsrKSB7CisgICAgKChUUklPX1ZPTEFUSUxFIHVuc2lnbmVkIGNoYXIgKikmcmVzdWx0KVtUUklPX0RPVUJMRV9JTkRFWChpKV0gPSB2YWx1ZXNbaV07CisgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIHRyaW9faXNfc3BlY2lhbF9xdWFudGl0eQorICovCitUUklPX1BSSVZBVEUgaW50Cit0cmlvX2lzX3NwZWNpYWxfcXVhbnRpdHkKK1RSSU9fQVJHUzIoKG51bWJlciwgaGFzX21hbnRpc3NhKSwKKwkgICBkb3VibGUgbnVtYmVyLAorCSAgIGludCAqaGFzX21hbnRpc3NhKQoreworICB1bnNpZ25lZCBpbnQgaTsKKyAgdW5zaWduZWQgY2hhciBjdXJyZW50OworICBpbnQgaXNfc3BlY2lhbF9xdWFudGl0eSA9IFRSSU9fVFJVRTsKKworICAqaGFzX21hbnRpc3NhID0gMDsKKworICBmb3IgKGkgPSAwOyBpIDwgKHVuc2lnbmVkIGludClzaXplb2YoZG91YmxlKTsgaSsrKSB7CisgICAgY3VycmVudCA9ICgodW5zaWduZWQgY2hhciAqKSZudW1iZXIpW1RSSU9fRE9VQkxFX0lOREVYKGkpXTsKKyAgICBpc19zcGVjaWFsX3F1YW50aXR5CisgICAgICAmPSAoKGN1cnJlbnQgJiBpZWVlXzc1NF9leHBvbmVudF9tYXNrW2ldKSA9PSBpZWVlXzc1NF9leHBvbmVudF9tYXNrW2ldKTsKKyAgICAqaGFzX21hbnRpc3NhIHw9IChjdXJyZW50ICYgaWVlZV83NTRfbWFudGlzc2FfbWFza1tpXSk7CisgIH0KKyAgcmV0dXJuIGlzX3NwZWNpYWxfcXVhbnRpdHk7Cit9CisKKy8qCisgKiB0cmlvX2lzX25lZ2F0aXZlCisgKi8KK1RSSU9fUFJJVkFURSBpbnQKK3RyaW9faXNfbmVnYXRpdmUKK1RSSU9fQVJHUzEoKG51bWJlciksCisJICAgZG91YmxlIG51bWJlcikKK3sKKyAgdW5zaWduZWQgaW50IGk7CisgIGludCBpc19uZWdhdGl2ZSA9IFRSSU9fRkFMU0U7CisKKyAgZm9yIChpID0gMDsgaSA8ICh1bnNpZ25lZCBpbnQpc2l6ZW9mKGRvdWJsZSk7IGkrKykgeworICAgIGlzX25lZ2F0aXZlIHw9ICgoKHVuc2lnbmVkIGNoYXIgKikmbnVtYmVyKVtUUklPX0RPVUJMRV9JTkRFWChpKV0KKwkJICAgICYgaWVlZV83NTRfc2lnbl9tYXNrW2ldKTsKKyAgfQorICByZXR1cm4gaXNfbmVnYXRpdmU7Cit9CisKKyNlbmRpZiAvKiBVU0VfSUVFRV83NTQgKi8KKworCisvKioKKyAgIEdlbmVyYXRlIG5lZ2F0aXZlIHplcm8uCisKKyAgIEByZXR1cm4gRmxvYXRpbmctcG9pbnQgcmVwcmVzZW50YXRpb24gb2YgbmVnYXRpdmUgemVyby4KKyovCitUUklPX1BVQkxJQyBkb3VibGUKK3RyaW9fbnplcm8oVFJJT19OT0FSR1MpCit7CisjaWYgZGVmaW5lZChVU0VfSUVFRV83NTQpCisgIHJldHVybiB0cmlvX21ha2VfZG91YmxlKGllZWVfNzU0X25lZ3plcm9fYXJyYXkpOworI2Vsc2UKKyAgVFJJT19WT0xBVElMRSBkb3VibGUgemVybyA9IDAuMDsKKworICByZXR1cm4gLXplcm87CisjZW5kaWYKK30KKworLyoqCisgICBHZW5lcmF0ZSBwb3NpdGl2ZSBpbmZpbml0eS4KKworICAgQHJldHVybiBGbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlvbiBvZiBwb3NpdGl2ZSBpbmZpbml0eS4KKyovCitUUklPX1BVQkxJQyBkb3VibGUKK3RyaW9fcGluZihUUklPX05PQVJHUykKK3sKKyAgLyogQ2FjaGUgdGhlIHJlc3VsdCAqLworICBzdGF0aWMgZG91YmxlIHJlc3VsdCA9IDAuMDsKKworICBpZiAocmVzdWx0ID09IDAuMCkgeworICAgIAorI2lmIGRlZmluZWQoSU5GSU5JVFkpICYmIGRlZmluZWQoX19TVERDX0lFQ181NTlfXykKKyAgICByZXN1bHQgPSAoZG91YmxlKUlORklOSVRZOworCisjZWxpZiBkZWZpbmVkKFVTRV9JRUVFXzc1NCkKKyAgICByZXN1bHQgPSB0cmlvX21ha2VfZG91YmxlKGllZWVfNzU0X2luZmluaXR5X2FycmF5KTsKKworI2Vsc2UKKyAgICAvKgorICAgICAqIElmIEhVR0VfVkFMIGlzIGRpZmZlcmVudCBmcm9tIERCTF9NQVgsIHRoZW4gSFVHRV9WQUwgaXMgdXNlZAorICAgICAqIGFzIGluZmluaXR5LiBPdGhlcndpc2Ugd2UgaGF2ZSB0byByZXNvcnQgdG8gYW4gb3ZlcmZsb3cKKyAgICAgKiBvcGVyYXRpb24gdG8gZ2VuZXJhdGUgaW5maW5pdHkuCisgICAgICovCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9VTklYKQorICAgIHZvaWQgKCpzaWduYWxfaGFuZGxlcikoaW50KSA9IHNpZ25hbChTSUdGUEUsIFNJR19JR04pOworIyBlbmRpZgorCisgICAgcmVzdWx0ID0gSFVHRV9WQUw7CisgICAgaWYgKEhVR0VfVkFMID09IERCTF9NQVgpIHsKKyAgICAgIC8qIEZvcmNlIG92ZXJmbG93ICovCisgICAgICByZXN1bHQgKz0gSFVHRV9WQUw7CisgICAgfQorICAgIAorIyBpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fVU5JWCkKKyAgICBzaWduYWwoU0lHRlBFLCBzaWduYWxfaGFuZGxlcik7CisjIGVuZGlmCisKKyNlbmRpZgorICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qKgorICAgR2VuZXJhdGUgbmVnYXRpdmUgaW5maW5pdHkuCisKKyAgIEByZXR1cm4gRmxvYXRpbmctcG9pbnQgdmFsdWUgb2YgbmVnYXRpdmUgaW5maW5pdHkuCisqLworVFJJT19QVUJMSUMgZG91YmxlCit0cmlvX25pbmYoVFJJT19OT0FSR1MpCit7CisgIHN0YXRpYyBkb3VibGUgcmVzdWx0ID0gMC4wOworCisgIGlmIChyZXN1bHQgPT0gMC4wKSB7CisgICAgLyoKKyAgICAgKiBOZWdhdGl2ZSBpbmZpbml0eSBpcyBjYWxjdWxhdGVkIGJ5IG5lZ2F0aW5nIHBvc2l0aXZlIGluZmluaXR5LAorICAgICAqIHdoaWNoIGNhbiBiZSBkb25lIGJlY2F1c2UgaXQgaXMgbGVnYWwgdG8gZG8gY2FsY3VsYXRpb25zIG9uCisgICAgICogaW5maW5pdHkgKGZvciBleGFtcGxlLCAgMSAvIGluZmluaXR5ID09IDApLgorICAgICAqLworICAgIHJlc3VsdCA9IC10cmlvX3BpbmYoKTsKKyAgfQorICByZXR1cm4gcmVzdWx0OworfQorCisvKioKKyAgIEdlbmVyYXRlIE5hTi4KKworICAgQHJldHVybiBGbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlvbiBvZiBOYU4uCisqLworVFJJT19QVUJMSUMgZG91YmxlCit0cmlvX25hbihUUklPX05PQVJHUykKK3sKKyAgLyogQ2FjaGUgdGhlIHJlc3VsdCAqLworICBzdGF0aWMgZG91YmxlIHJlc3VsdCA9IDAuMDsKKworICBpZiAocmVzdWx0ID09IDAuMCkgeworICAgIAorI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19DOTkpCisgICAgcmVzdWx0ID0gbmFuKCIiKTsKKworI2VsaWYgZGVmaW5lZChOQU4pICYmIGRlZmluZWQoX19TVERDX0lFQ181NTlfXykKKyAgICByZXN1bHQgPSAoZG91YmxlKU5BTjsKKyAgCisjZWxpZiBkZWZpbmVkKFVTRV9JRUVFXzc1NCkKKyAgICByZXN1bHQgPSB0cmlvX21ha2VfZG91YmxlKGllZWVfNzU0X3FuYW5fYXJyYXkpOworCisjZWxzZQorICAgIC8qCisgICAgICogVGhlcmUgYXJlIHNldmVyYWwgd2F5cyB0byBnZW5lcmF0ZSBOYU4uIFRoZSBvbmUgdXNlZCBoZXJlIGlzCisgICAgICogdG8gZGl2aWRlIGluZmluaXR5IGJ5IGluZmluaXR5LiBJIHdvdWxkIGhhdmUgcHJlZmVycmVkIHRvIGFkZAorICAgICAqIG5lZ2F0aXZlIGluZmluaXR5IHRvIHBvc2l0aXZlIGluZmluaXR5LCBidXQgdGhhdCB5aWVsZHMgd3JvbmcKKyAgICAgKiByZXN1bHQgKGluZmluaXR5KSBvbiBGcmVlQlNELgorICAgICAqCisgICAgICogVGhpcyBtYXkgZmFpbCBpZiB0aGUgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCBOYU4sIG9yIGlmCisgICAgICogdGhlIEludmFsaWQgT3BlcmF0aW9uIGZsb2F0aW5nLXBvaW50IGV4Y2VwdGlvbiBpcyB1bm1hc2tlZC4KKyAgICAgKi8KKyMgaWYgZGVmaW5lZChUUklPX1BMQVRGT1JNX1VOSVgpCisgICAgdm9pZCAoKnNpZ25hbF9oYW5kbGVyKShpbnQpID0gc2lnbmFsKFNJR0ZQRSwgU0lHX0lHTik7CisjIGVuZGlmCisgICAgCisgICAgcmVzdWx0ID0gdHJpb19waW5mKCkgLyB0cmlvX3BpbmYoKTsKKyAgICAKKyMgaWYgZGVmaW5lZChUUklPX1BMQVRGT1JNX1VOSVgpCisgICAgc2lnbmFsKFNJR0ZQRSwgc2lnbmFsX2hhbmRsZXIpOworIyBlbmRpZgorICAgIAorI2VuZGlmCisgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoqCisgICBDaGVjayBmb3IgTmFOLgorCisgICBAcGFyYW0gbnVtYmVyIEFuIGFyYml0cmFyeSBmbG9hdGluZy1wb2ludCBudW1iZXIuCisgICBAcmV0dXJuIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgbnVtYmVyIGlzIGEgTmFOLgorKi8KK1RSSU9fUFVCTElDIGludAordHJpb19pc25hbgorVFJJT19BUkdTMSgobnVtYmVyKSwKKwkgICBkb3VibGUgbnVtYmVyKQoreworI2lmIChkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfQzk5KSAmJiBkZWZpbmVkKGlzbmFuKSkgXAorIHx8IGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19VTklYOTUpCisgIC8qCisgICAqIEM5OSBkZWZpbmVzIGlzbmFuKCkgYXMgYSBtYWNyby4gVU5JWDk1IGRlZmluZXMgaXNuYW4oKSBhcyBhCisgICAqIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHdhcyBhbHJlYWR5IHByZXNlbnQgaW4gWFBHNCwgYnV0IHRoaXMKKyAgICogaXMgYSBiaXQgdHJpY2t5IHRvIGRldGVjdCB3aXRoIGNvbXBpbGVyIGRlZmluZXMsIHNvIHdlIGNob29zZQorICAgKiB0aGUgY29uc2VydmF0aXZlIGFwcHJvYWNoIGFuZCBvbmx5IHVzZSBpdCBmb3IgVU5JWDk1LgorICAgKi8KKyAgcmV0dXJuIGlzbmFuKG51bWJlcik7CisgIAorI2VsaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX01TVkMpIHx8IGRlZmluZWQoVFJJT19DT01QSUxFUl9CQ0IpCisgIC8qCisgICAqIE1pY3Jvc29mdCBWaXN1YWwgQysrIGFuZCBCb3JsYW5kIEMrKyBCdWlsZGVyIGhhdmUgYW4gX2lzbmFuKCkKKyAgICogZnVuY3Rpb24uCisgICAqLworICByZXR1cm4gX2lzbmFuKG51bWJlcikgPyBUUklPX1RSVUUgOiBUUklPX0ZBTFNFOworCisjZWxpZiBkZWZpbmVkKFVTRV9JRUVFXzc1NCkKKyAgLyoKKyAgICogRXhhbWluZSBJRUVFIDc1NCBiaXQtcGF0dGVybi4gQSBOYU4gbXVzdCBoYXZlIGEgc3BlY2lhbCBleHBvbmVudAorICAgKiBwYXR0ZXJuLCBhbmQgYSBub24tZW1wdHkgbWFudGlzc2EuCisgICAqLworICBpbnQgaGFzX21hbnRpc3NhOworICBpbnQgaXNfc3BlY2lhbF9xdWFudGl0eTsKKworICBpc19zcGVjaWFsX3F1YW50aXR5ID0gdHJpb19pc19zcGVjaWFsX3F1YW50aXR5KG51bWJlciwgJmhhc19tYW50aXNzYSk7CisgIAorICByZXR1cm4gKGlzX3NwZWNpYWxfcXVhbnRpdHkgJiYgaGFzX21hbnRpc3NhKTsKKyAgCisjZWxzZQorICAvKgorICAgKiBGYWxsYmFjayBzb2x1dGlvbgorICAgKi8KKyAgaW50IHN0YXR1czsKKyAgZG91YmxlIGludGVncmFsLCBmcmFjdGlvbjsKKyAgCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9VTklYKQorICB2b2lkICgqc2lnbmFsX2hhbmRsZXIpKGludCkgPSBzaWduYWwoU0lHRlBFLCBTSUdfSUdOKTsKKyMgZW5kaWYKKyAgCisgIHN0YXR1cyA9ICgvKgorCSAgICAgKiBOYU4gaXMgdGhlIG9ubHkgbnVtYmVyIHdoaWNoIGRvZXMgbm90IGNvbXBhcmUgdG8gaXRzZWxmCisJICAgICAqLworCSAgICAoKFRSSU9fVk9MQVRJTEUgZG91YmxlKW51bWJlciAhPSAoVFJJT19WT0xBVElMRSBkb3VibGUpbnVtYmVyKSB8fAorCSAgICAvKgorCSAgICAgKiBGYWxsYmFjayBzb2x1dGlvbiBpZiBOYU4gY29tcGFyZXMgdG8gTmFOCisJICAgICAqLworCSAgICAoKG51bWJlciAhPSAwLjApICYmCisJICAgICAoZnJhY3Rpb24gPSBtb2RmKG51bWJlciwgJmludGVncmFsKSwKKwkgICAgICBpbnRlZ3JhbCA9PSBmcmFjdGlvbikpKTsKKyAgCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9VTklYKQorICBzaWduYWwoU0lHRlBFLCBzaWduYWxfaGFuZGxlcik7CisjIGVuZGlmCisgIAorICByZXR1cm4gc3RhdHVzOworICAKKyNlbmRpZgorfQorCisvKioKKyAgIENoZWNrIGZvciBpbmZpbml0eS4KKworICAgQHBhcmFtIG51bWJlciBBbiBhcmJpdHJhcnkgZmxvYXRpbmctcG9pbnQgbnVtYmVyLgorICAgQHJldHVybiAxIGlmIHBvc2l0aXZlIGluZmluaXR5LCAtMSBpZiBuZWdhdGl2ZSBpbmZpbml0eSwgMCBvdGhlcndpc2UuCisqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX2lzaW5mCitUUklPX0FSR1MxKChudW1iZXIpLAorCSAgIGRvdWJsZSBudW1iZXIpCit7CisjaWYgZGVmaW5lZChUUklPX0NPTVBJTEVSX0RFQ0MpICYmICFkZWZpbmVkKF9fbGludXhfXykKKyAgLyoKKyAgICogREVDQyBoYXMgYW4gaXNpbmYoKSBtYWNybywgYnV0IGl0IHdvcmtzIGRpZmZlcmVudGx5IHRoYW4gdGhhdAorICAgKiBvZiBDOTksIHNvIHdlIHVzZSB0aGUgZnBfY2xhc3MoKSBmdW5jdGlvbiBpbnN0ZWFkLgorICAgKi8KKyAgcmV0dXJuICgoZnBfY2xhc3MobnVtYmVyKSA9PSBGUF9QT1NfSU5GKQorCSAgPyAxCisJICA6ICgoZnBfY2xhc3MobnVtYmVyKSA9PSBGUF9ORUdfSU5GKSA/IC0xIDogMCkpOworCisjZWxpZiBkZWZpbmVkKGlzaW5mKQorICAvKgorICAgKiBDOTkgZGVmaW5lcyBpc2luZigpIGFzIGEgbWFjcm8uCisgICAqLworICByZXR1cm4gaXNpbmYobnVtYmVyKQorICAgID8gKChudW1iZXIgPiAwLjApID8gMSA6IC0xKQorICAgIDogMDsKKyAgCisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfTVNWQykgfHwgZGVmaW5lZChUUklPX0NPTVBJTEVSX0JDQikKKyAgLyoKKyAgICogTWljcm9zb2Z0IFZpc3VhbCBDKysgYW5kIEJvcmxhbmQgQysrIEJ1aWxkZXIgaGF2ZSBhbiBfZnBjbGFzcygpCisgICAqIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGV0ZWN0IGluZmluaXR5LgorICAgKi8KKyAgcmV0dXJuICgoX2ZwY2xhc3MobnVtYmVyKSA9PSBfRlBDTEFTU19QSU5GKQorCSAgPyAxCisJICA6ICgoX2ZwY2xhc3MobnVtYmVyKSA9PSBfRlBDTEFTU19OSU5GKSA/IC0xIDogMCkpOworCisjZWxpZiBkZWZpbmVkKFVTRV9JRUVFXzc1NCkKKyAgLyoKKyAgICogRXhhbWluZSBJRUVFIDc1NCBiaXQtcGF0dGVybi4gSW5maW5pdHkgbXVzdCBoYXZlIGEgc3BlY2lhbCBleHBvbmVudAorICAgKiBwYXR0ZXJuLCBhbmQgYW4gZW1wdHkgbWFudGlzc2EuCisgICAqLworICBpbnQgaGFzX21hbnRpc3NhOworICBpbnQgaXNfc3BlY2lhbF9xdWFudGl0eTsKKworICBpc19zcGVjaWFsX3F1YW50aXR5ID0gdHJpb19pc19zcGVjaWFsX3F1YW50aXR5KG51bWJlciwgJmhhc19tYW50aXNzYSk7CisgIAorICByZXR1cm4gKGlzX3NwZWNpYWxfcXVhbnRpdHkgJiYgIWhhc19tYW50aXNzYSkKKyAgICA/ICgobnVtYmVyIDwgMC4wKSA/IC0xIDogMSkKKyAgICA6IDA7CisKKyNlbHNlCisgIC8qCisgICAqIEZhbGxiYWNrIHNvbHV0aW9uLgorICAgKi8KKyAgaW50IHN0YXR1czsKKyAgCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9VTklYKQorICB2b2lkICgqc2lnbmFsX2hhbmRsZXIpKGludCkgPSBzaWduYWwoU0lHRlBFLCBTSUdfSUdOKTsKKyMgZW5kaWYKKyAgCisgIGRvdWJsZSBpbmZpbml0eSA9IHRyaW9fcGluZigpOworICAKKyAgc3RhdHVzID0gKChudW1iZXIgPT0gaW5maW5pdHkpCisJICAgID8gMQorCSAgICA6ICgobnVtYmVyID09IC1pbmZpbml0eSkgPyAtMSA6IDApKTsKKyAgCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9VTklYKQorICBzaWduYWwoU0lHRlBFLCBzaWduYWxfaGFuZGxlcik7CisjIGVuZGlmCisgIAorICByZXR1cm4gc3RhdHVzOworICAKKyNlbmRpZgorfQorCisjaWYgMAorCS8qIFRlbXBvcmFyeSBmaXggLSB0aGlzIHJvdXRpbmUgaXMgbm90IHVzZWQgYW55d2hlcmUgKi8KKy8qKgorICAgQ2hlY2sgZm9yIGZpbml0eS4KKworICAgQHBhcmFtIG51bWJlciBBbiBhcmJpdHJhcnkgZmxvYXRpbmctcG9pbnQgbnVtYmVyLgorICAgQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIG51bWJlciBpcyBhIGZpbml0ZS4KKyovCitUUklPX1BVQkxJQyBpbnQKK3RyaW9faXNmaW5pdGUKK1RSSU9fQVJHUzEoKG51bWJlciksCisJICAgZG91YmxlIG51bWJlcikKK3sKKyNpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfU1VQUE9SVFNfQzk5KSAmJiBkZWZpbmVkKGlzZmluaXRlKQorICAvKgorICAgKiBDOTkgZGVmaW5lcyBpc2Zpbml0ZSgpIGFzIGEgbWFjcm8uCisgICAqLworICByZXR1cm4gaXNmaW5pdGUobnVtYmVyKTsKKyAgCisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfTVNWQykgfHwgZGVmaW5lZChUUklPX0NPTVBJTEVSX0JDQikKKyAgLyoKKyAgICogTWljcm9zb2Z0IFZpc3VhbCBDKysgYW5kIEJvcmxhbmQgQysrIEJ1aWxkZXIgdXNlIF9maW5pdGUoKS4KKyAgICovCisgIHJldHVybiBfZmluaXRlKG51bWJlcik7CisKKyNlbGlmIGRlZmluZWQoVVNFX0lFRUVfNzU0KQorICAvKgorICAgKiBFeGFtaW5lIElFRUUgNzU0IGJpdC1wYXR0ZXJuLiBGb3IgZmluaXR5IHdlIGRvIG5vdCBjYXJlIGFib3V0IHRoZQorICAgKiBtYW50aXNzYS4KKyAgICovCisgIGludCBkdW1teTsKKworICByZXR1cm4gKCEgdHJpb19pc19zcGVjaWFsX3F1YW50aXR5KG51bWJlciwgJmR1bW15KSk7CisKKyNlbHNlCisgIC8qCisgICAqIEZhbGxiYWNrIHNvbHV0aW9uLgorICAgKi8KKyAgcmV0dXJuICgodHJpb19pc2luZihudW1iZXIpID09IDApICYmICh0cmlvX2lzbmFuKG51bWJlcikgPT0gMCkpOworICAKKyNlbmRpZgorfQorCisjZW5kaWYKKworLyoKKyAqIFRoZSBzaWduIG9mIE5hTiBpcyBhbHdheXMgZmFsc2UKKyAqLworVFJJT19QVUJMSUMgaW50Cit0cmlvX2ZwY2xhc3NpZnlfYW5kX3NpZ25iaXQKK1RSSU9fQVJHUzIoKG51bWJlciwgaXNfbmVnYXRpdmUpLAorCSAgIGRvdWJsZSBudW1iZXIsCisJICAgaW50ICppc19uZWdhdGl2ZSkKK3sKKyNpZiBkZWZpbmVkKGZwY2xhc3NpZnkpICYmIGRlZmluZWQoc2lnbmJpdCkKKyAgLyoKKyAgICogQzk5IGRlZmluZXMgZnBjbGFzc2lmeSgpIGFuZCBzaWduYml0KCkgYXMgYSBtYWNyb3MKKyAgICovCisgICppc19uZWdhdGl2ZSA9IHNpZ25iaXQobnVtYmVyKTsKKyAgc3dpdGNoIChmcGNsYXNzaWZ5KG51bWJlcikpIHsKKyAgY2FzZSBGUF9OQU46CisgICAgcmV0dXJuIFRSSU9fRlBfTkFOOworICBjYXNlIEZQX0lORklOSVRFOgorICAgIHJldHVybiBUUklPX0ZQX0lORklOSVRFOworICBjYXNlIEZQX1NVQk5PUk1BTDoKKyAgICByZXR1cm4gVFJJT19GUF9TVUJOT1JNQUw7CisgIGNhc2UgRlBfWkVSTzoKKyAgICByZXR1cm4gVFJJT19GUF9aRVJPOworICBkZWZhdWx0OgorICAgIHJldHVybiBUUklPX0ZQX05PUk1BTDsKKyAgfQorCisjZWxzZQorIyBpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfREVDQykKKyAgLyoKKyAgICogREVDQyBoYXMgYW4gZnBfY2xhc3MoKSBmdW5jdGlvbi4KKyAgICovCisjICBkZWZpbmUgVFJJT19GUENMQVNTSUZZKG4pIGZwX2NsYXNzKG4pCisjICBkZWZpbmUgVFJJT19RVUlFVF9OQU4gRlBfUU5BTgorIyAgZGVmaW5lIFRSSU9fU0lHTkFMTElOR19OQU4gRlBfU05BTgorIyAgZGVmaW5lIFRSSU9fUE9TSVRJVkVfSU5GSU5JVFkgRlBfUE9TX0lORgorIyAgZGVmaW5lIFRSSU9fTkVHQVRJVkVfSU5GSU5JVFkgRlBfTkVHX0lORgorIyAgZGVmaW5lIFRSSU9fUE9TSVRJVkVfU1VCTk9STUFMIEZQX1BPU19ERU5PUk0KKyMgIGRlZmluZSBUUklPX05FR0FUSVZFX1NVQk5PUk1BTCBGUF9ORUdfREVOT1JNCisjICBkZWZpbmUgVFJJT19QT1NJVElWRV9aRVJPIEZQX1BPU19aRVJPCisjICBkZWZpbmUgVFJJT19ORUdBVElWRV9aRVJPIEZQX05FR19aRVJPCisjICBkZWZpbmUgVFJJT19QT1NJVElWRV9OT1JNQUwgRlBfUE9TX05PUk0KKyMgIGRlZmluZSBUUklPX05FR0FUSVZFX05PUk1BTCBGUF9ORUdfTk9STQorICAKKyMgZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfTVNWQykgfHwgZGVmaW5lZChUUklPX0NPTVBJTEVSX0JDQikKKyAgLyoKKyAgICogTWljcm9zb2Z0IFZpc3VhbCBDKysgYW5kIEJvcmxhbmQgQysrIEJ1aWxkZXIgaGF2ZSBhbiBfZnBjbGFzcygpCisgICAqIGZ1bmN0aW9uLgorICAgKi8KKyMgIGRlZmluZSBUUklPX0ZQQ0xBU1NJRlkobikgX2ZwY2xhc3MobikKKyMgIGRlZmluZSBUUklPX1FVSUVUX05BTiBfRlBDTEFTU19RTkFOCisjICBkZWZpbmUgVFJJT19TSUdOQUxMSU5HX05BTiBfRlBDTEFTU19TTkFOCisjICBkZWZpbmUgVFJJT19QT1NJVElWRV9JTkZJTklUWSBfRlBDTEFTU19QSU5GCisjICBkZWZpbmUgVFJJT19ORUdBVElWRV9JTkZJTklUWSBfRlBDTEFTU19OSU5GCisjICBkZWZpbmUgVFJJT19QT1NJVElWRV9TVUJOT1JNQUwgX0ZQQ0xBU1NfUEQKKyMgIGRlZmluZSBUUklPX05FR0FUSVZFX1NVQk5PUk1BTCBfRlBDTEFTU19ORAorIyAgZGVmaW5lIFRSSU9fUE9TSVRJVkVfWkVSTyBfRlBDTEFTU19QWgorIyAgZGVmaW5lIFRSSU9fTkVHQVRJVkVfWkVSTyBfRlBDTEFTU19OWgorIyAgZGVmaW5lIFRSSU9fUE9TSVRJVkVfTk9STUFMIF9GUENMQVNTX1BOCisjICBkZWZpbmUgVFJJT19ORUdBVElWRV9OT1JNQUwgX0ZQQ0xBU1NfTk4KKyAgCisjIGVsaWYgZGVmaW5lZChGUF9QTFVTX05PUk0pCisgIC8qCisgICAqIEhQLVVYIDkueCBhbmQgMTAueCBoYXZlIGFuIGZwY2xhc3NpZnkoKSBmdW5jdGlvbiwgdGhhdCBpcyBkaWZmZXJlbnQKKyAgICogZnJvbSB0aGUgQzk5IGZwY2xhc3NpZnkoKSBtYWNybyBzdXBwb3J0ZWQgb24gSFAtVVggMTEueC4KKyAgICoKKyAgICogQUlYIGhhcyBjbGFzcygpIGZvciBDLCBhbmQgX2NsYXNzKCkgZm9yIEMrKywgd2hpY2ggcmV0dXJucyB0aGUKKyAgICogc2FtZSB2YWx1ZXMgYXMgdGhlIEhQLVVYIGZwY2xhc3NpZnkoKSBmdW5jdGlvbi4KKyAgICovCisjICBpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fQUlYKQorIyAgIGlmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjICAgIGRlZmluZSBUUklPX0ZQQ0xBU1NJRlkobikgX2NsYXNzKG4pCisjICAgZWxzZQorIyAgICBkZWZpbmUgVFJJT19GUENMQVNTSUZZKG4pIGNsYXNzKG4pCisjICAgZW5kaWYKKyMgIGVsc2UKKyMgICBkZWZpbmUgVFJJT19GUENMQVNTSUZZKG4pIGZwY2xhc3NpZnkobikKKyMgIGVuZGlmCisjICBkZWZpbmUgVFJJT19RVUlFVF9OQU4gRlBfUU5BTgorIyAgZGVmaW5lIFRSSU9fU0lHTkFMTElOR19OQU4gRlBfU05BTgorIyAgZGVmaW5lIFRSSU9fUE9TSVRJVkVfSU5GSU5JVFkgRlBfUExVU19JTkYKKyMgIGRlZmluZSBUUklPX05FR0FUSVZFX0lORklOSVRZIEZQX01JTlVTX0lORgorIyAgZGVmaW5lIFRSSU9fUE9TSVRJVkVfU1VCTk9STUFMIEZQX1BMVVNfREVOT1JNCisjICBkZWZpbmUgVFJJT19ORUdBVElWRV9TVUJOT1JNQUwgRlBfTUlOVVNfREVOT1JNCisjICBkZWZpbmUgVFJJT19QT1NJVElWRV9aRVJPIEZQX1BMVVNfWkVSTworIyAgZGVmaW5lIFRSSU9fTkVHQVRJVkVfWkVSTyBGUF9NSU5VU19aRVJPCisjICBkZWZpbmUgVFJJT19QT1NJVElWRV9OT1JNQUwgRlBfUExVU19OT1JNCisjICBkZWZpbmUgVFJJT19ORUdBVElWRV9OT1JNQUwgRlBfTUlOVVNfTk9STQorIyBlbmRpZgorCisjIGlmIGRlZmluZWQoVFJJT19GUENMQVNTSUZZKQorICBzd2l0Y2ggKFRSSU9fRlBDTEFTU0lGWShudW1iZXIpKSB7CisgIGNhc2UgVFJJT19RVUlFVF9OQU46CisgIGNhc2UgVFJJT19TSUdOQUxMSU5HX05BTjoKKyAgICAqaXNfbmVnYXRpdmUgPSBUUklPX0ZBTFNFOyAvKiBOYU4gaGFzIG5vIHNpZ24gKi8KKyAgICByZXR1cm4gVFJJT19GUF9OQU47CisgIGNhc2UgVFJJT19QT1NJVElWRV9JTkZJTklUWToKKyAgICAqaXNfbmVnYXRpdmUgPSBUUklPX0ZBTFNFOworICAgIHJldHVybiBUUklPX0ZQX0lORklOSVRFOworICBjYXNlIFRSSU9fTkVHQVRJVkVfSU5GSU5JVFk6CisgICAgKmlzX25lZ2F0aXZlID0gVFJJT19UUlVFOworICAgIHJldHVybiBUUklPX0ZQX0lORklOSVRFOworICBjYXNlIFRSSU9fUE9TSVRJVkVfU1VCTk9STUFMOgorICAgICppc19uZWdhdGl2ZSA9IFRSSU9fRkFMU0U7CisgICAgcmV0dXJuIFRSSU9fRlBfU1VCTk9STUFMOworICBjYXNlIFRSSU9fTkVHQVRJVkVfU1VCTk9STUFMOgorICAgICppc19uZWdhdGl2ZSA9IFRSSU9fVFJVRTsKKyAgICByZXR1cm4gVFJJT19GUF9TVUJOT1JNQUw7CisgIGNhc2UgVFJJT19QT1NJVElWRV9aRVJPOgorICAgICppc19uZWdhdGl2ZSA9IFRSSU9fRkFMU0U7CisgICAgcmV0dXJuIFRSSU9fRlBfWkVSTzsKKyAgY2FzZSBUUklPX05FR0FUSVZFX1pFUk86CisgICAgKmlzX25lZ2F0aXZlID0gVFJJT19UUlVFOworICAgIHJldHVybiBUUklPX0ZQX1pFUk87CisgIGNhc2UgVFJJT19QT1NJVElWRV9OT1JNQUw6CisgICAgKmlzX25lZ2F0aXZlID0gVFJJT19GQUxTRTsKKyAgICByZXR1cm4gVFJJT19GUF9OT1JNQUw7CisgIGNhc2UgVFJJT19ORUdBVElWRV9OT1JNQUw6CisgICAgKmlzX25lZ2F0aXZlID0gVFJJT19UUlVFOworICAgIHJldHVybiBUUklPX0ZQX05PUk1BTDsKKyAgZGVmYXVsdDoKKyAgICAvKiBKdXN0IGluIGNhc2UuLi4gKi8KKyAgICAqaXNfbmVnYXRpdmUgPSAobnVtYmVyIDwgMC4wKTsKKyAgICByZXR1cm4gVFJJT19GUF9OT1JNQUw7CisgIH0KKyAgCisjIGVsc2UKKyAgLyoKKyAgICogRmFsbGJhY2sgc29sdXRpb24uCisgICAqLworICBpbnQgcmM7CisgIAorICBpZiAobnVtYmVyID09IDAuMCkgeworICAgIC8qCisgICAgICogSW4gSUVFRSA3NTQgdGhlIHNpZ24gb2YgemVybyBpcyBpZ25vcmVkIGluIGNvbXBhcmlzb25zLCBzbyB3ZQorICAgICAqIGhhdmUgdG8gaGFuZGxlIHRoaXMgYXMgYSBzcGVjaWFsIGNhc2UgYnkgZXhhbWluaW5nIHRoZSBzaWduIGJpdAorICAgICAqIGRpcmVjdGx5LgorICAgICAqLworIyAgaWYgZGVmaW5lZChVU0VfSUVFRV83NTQpCisgICAgKmlzX25lZ2F0aXZlID0gdHJpb19pc19uZWdhdGl2ZShudW1iZXIpOworIyAgZWxzZQorICAgICppc19uZWdhdGl2ZSA9IFRSSU9fRkFMU0U7IC8qIEZJWE1FICovCisjICBlbmRpZgorICAgIHJldHVybiBUUklPX0ZQX1pFUk87CisgIH0KKyAgaWYgKHRyaW9faXNuYW4obnVtYmVyKSkgeworICAgICppc19uZWdhdGl2ZSA9IFRSSU9fRkFMU0U7CisgICAgcmV0dXJuIFRSSU9fRlBfTkFOOworICB9CisgIGlmICgocmMgPSB0cmlvX2lzaW5mKG51bWJlcikpKSB7CisgICAgKmlzX25lZ2F0aXZlID0gKHJjID09IC0xKTsKKyAgICByZXR1cm4gVFJJT19GUF9JTkZJTklURTsKKyAgfQorICBpZiAoKG51bWJlciA+IDAuMCkgJiYgKG51bWJlciA8IERCTF9NSU4pKSB7CisgICAgKmlzX25lZ2F0aXZlID0gVFJJT19GQUxTRTsKKyAgICByZXR1cm4gVFJJT19GUF9TVUJOT1JNQUw7CisgIH0KKyAgaWYgKChudW1iZXIgPCAwLjApICYmIChudW1iZXIgPiAtREJMX01JTikpIHsKKyAgICAqaXNfbmVnYXRpdmUgPSBUUklPX1RSVUU7CisgICAgcmV0dXJuIFRSSU9fRlBfU1VCTk9STUFMOworICB9CisgICppc19uZWdhdGl2ZSA9IChudW1iZXIgPCAwLjApOworICByZXR1cm4gVFJJT19GUF9OT1JNQUw7CisgIAorIyBlbmRpZgorI2VuZGlmCit9CisKKy8qKgorICAgRXhhbWluZSB0aGUgc2lnbiBvZiBhIG51bWJlci4KKworICAgQHBhcmFtIG51bWJlciBBbiBhcmJpdHJhcnkgZmxvYXRpbmctcG9pbnQgbnVtYmVyLgorICAgQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIG51bWJlciBoYXMgdGhlCisgICBzaWduIGJpdCBzZXQgKGkuZS4gaXMgbmVnYXRpdmUpLgorKi8KK1RSSU9fUFVCTElDIGludAordHJpb19zaWduYml0CitUUklPX0FSR1MxKChudW1iZXIpLAorCSAgIGRvdWJsZSBudW1iZXIpCit7CisgIGludCBpc19uZWdhdGl2ZTsKKyAgCisgICh2b2lkKXRyaW9fZnBjbGFzc2lmeV9hbmRfc2lnbmJpdChudW1iZXIsICZpc19uZWdhdGl2ZSk7CisgIHJldHVybiBpc19uZWdhdGl2ZTsKK30KKworI2lmIDAKKwkvKiBUZW1wb3JhcnkgZml4IC0gdGhpcyByb3V0aW5lIGlzIG5vdCB1c2VkIGluIGxpYnhtbCAqLworLyoqCisgICBFeGFtaW5lIHRoZSBjbGFzcyBvZiBhIG51bWJlci4KKworICAgQHBhcmFtIG51bWJlciBBbiBhcmJpdHJhcnkgZmxvYXRpbmctcG9pbnQgbnVtYmVyLgorICAgQHJldHVybiBFbnVtZXJhYmxlIHZhbHVlIGluZGljYXRpbmcgdGhlIGNsYXNzIG9mIEBwIG51bWJlcgorKi8KK1RSSU9fUFVCTElDIGludAordHJpb19mcGNsYXNzaWZ5CitUUklPX0FSR1MxKChudW1iZXIpLAorCSAgIGRvdWJsZSBudW1iZXIpCit7CisgIGludCBkdW1teTsKKyAgCisgIHJldHVybiB0cmlvX2ZwY2xhc3NpZnlfYW5kX3NpZ25iaXQobnVtYmVyLCAmZHVtbXkpOworfQorCisjZW5kaWYKKworLyoqIEB9IFNwZWNpYWxRdWFudGl0aWVzICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGb3IgdGVzdCBwdXJwb3Nlcy4KKyAqCisgKiBBZGQgdGhlIGZvbGxvd2luZyBjb21waWxlciBvcHRpb24gdG8gaW5jbHVkZSB0aGlzIHRlc3QgY29kZS4KKyAqCisgKiAgVW5peCA6IC1EU1RBTkRBTE9ORQorICogIFZNUyAgOiAvREVGSU5FPShTVEFOREFMT05FKQorICovCisjaWYgZGVmaW5lZChTVEFOREFMT05FKQorIyBpbmNsdWRlIDxzdGRpby5oPgorCitzdGF0aWMgVFJJT19DT05TVCBjaGFyICoKK2dldENsYXNzaWZpY2F0aW9uCitUUklPX0FSR1MxKCh0eXBlKSwKKwkgICBpbnQgdHlwZSkKK3sKKyAgc3dpdGNoICh0eXBlKSB7CisgIGNhc2UgVFJJT19GUF9JTkZJTklURToKKyAgICByZXR1cm4gIkZQX0lORklOSVRFIjsKKyAgY2FzZSBUUklPX0ZQX05BTjoKKyAgICByZXR1cm4gIkZQX05BTiI7CisgIGNhc2UgVFJJT19GUF9OT1JNQUw6CisgICAgcmV0dXJuICJGUF9OT1JNQUwiOworICBjYXNlIFRSSU9fRlBfU1VCTk9STUFMOgorICAgIHJldHVybiAiRlBfU1VCTk9STUFMIjsKKyAgY2FzZSBUUklPX0ZQX1pFUk86CisgICAgcmV0dXJuICJGUF9aRVJPIjsKKyAgZGVmYXVsdDoKKyAgICByZXR1cm4gIkZQX1VOS05PV04iOworICB9Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9jbGFzcworVFJJT19BUkdTMigocHJlZml4LCBudW1iZXIpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqcHJlZml4LAorCSAgIGRvdWJsZSBudW1iZXIpCit7CisgIHByaW50ZigiJS02czogJXMgJS0xNXMgJWdcbiIsCisJIHByZWZpeCwKKwkgdHJpb19zaWduYml0KG51bWJlcikgPyAiLSIgOiAiKyIsCisJIGdldENsYXNzaWZpY2F0aW9uKFRSSU9fRlBDTEFTU0lGWShudW1iZXIpKSwKKwkgbnVtYmVyKTsKK30KKworaW50IG1haW4oVFJJT19OT0FSR1MpCit7CisgIGRvdWJsZSBteV9uYW47CisgIGRvdWJsZSBteV9waW5mOworICBkb3VibGUgbXlfbmluZjsKKyMgaWYgZGVmaW5lZChUUklPX1BMQVRGT1JNX1VOSVgpCisgIHZvaWQgKCpzaWduYWxfaGFuZGxlcikgVFJJT19QUk9UTygoaW50KSk7CisjIGVuZGlmCisKKyAgbXlfbmFuID0gdHJpb19uYW4oKTsKKyAgbXlfcGluZiA9IHRyaW9fcGluZigpOworICBteV9uaW5mID0gdHJpb19uaW5mKCk7CisKKyAgcHJpbnRfY2xhc3MoIk5hbiIsIG15X25hbik7CisgIHByaW50X2NsYXNzKCJQSW5mIiwgbXlfcGluZik7CisgIHByaW50X2NsYXNzKCJOSW5mIiwgbXlfbmluZik7CisgIHByaW50X2NsYXNzKCJQWmVybyIsIDAuMCk7CisgIHByaW50X2NsYXNzKCJOWmVybyIsIC0wLjApOworICBwcmludF9jbGFzcygiUE5vcm0iLCAxLjApOworICBwcmludF9jbGFzcygiTk5vcm0iLCAtMS4wKTsKKyAgcHJpbnRfY2xhc3MoIlBTdWIiLCAxLjAxZS0zMDcgLSAxLjAwZS0zMDcpOworICBwcmludF9jbGFzcygiTlN1YiIsIDEuMDBlLTMwNyAtIDEuMDFlLTMwNyk7CisgIAorICBwcmludGYoIk5hTiA6ICU0ZyAweCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4ICglMmQsICUyZClcbiIsCisJIG15X25hbiwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25hbilbMF0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uYW4pWzFdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmFuKVsyXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25hbilbM10sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uYW4pWzRdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmFuKVs1XSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25hbilbNl0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uYW4pWzddLAorCSB0cmlvX2lzbmFuKG15X25hbiksIHRyaW9faXNpbmYobXlfbmFuKSk7CisgIHByaW50ZigiUEluZjogJTRnIDB4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnggKCUyZCwgJTJkKVxuIiwKKwkgbXlfcGluZiwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X3BpbmYpWzBdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfcGluZilbMV0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9waW5mKVsyXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X3BpbmYpWzNdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfcGluZilbNF0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9waW5mKVs1XSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X3BpbmYpWzZdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfcGluZilbN10sCisJIHRyaW9faXNuYW4obXlfcGluZiksIHRyaW9faXNpbmYobXlfcGluZikpOworICBwcmludGYoIk5JbmY6ICU0ZyAweCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4ICglMmQsICUyZClcbiIsCisJIG15X25pbmYsCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uaW5mKVswXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25pbmYpWzFdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmluZilbMl0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uaW5mKVszXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25pbmYpWzRdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmluZilbNV0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uaW5mKVs2XSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25pbmYpWzddLAorCSB0cmlvX2lzbmFuKG15X25pbmYpLCB0cmlvX2lzaW5mKG15X25pbmYpKTsKKyAgCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9VTklYKQorICBzaWduYWxfaGFuZGxlciA9IHNpZ25hbChTSUdGUEUsIFNJR19JR04pOworIyBlbmRpZgorICAKKyAgbXlfcGluZiA9IERCTF9NQVggKyBEQkxfTUFYOworICBteV9uaW5mID0gLW15X3BpbmY7CisgIG15X25hbiA9IG15X3BpbmYgLyBteV9waW5mOworCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9VTklYKQorICBzaWduYWwoU0lHRlBFLCBzaWduYWxfaGFuZGxlcik7CisjIGVuZGlmCisgIAorICBwcmludGYoIk5hTiA6ICU0ZyAweCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4ICglMmQsICUyZClcbiIsCisJIG15X25hbiwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25hbilbMF0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uYW4pWzFdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmFuKVsyXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25hbilbM10sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uYW4pWzRdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmFuKVs1XSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25hbilbNl0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uYW4pWzddLAorCSB0cmlvX2lzbmFuKG15X25hbiksIHRyaW9faXNpbmYobXlfbmFuKSk7CisgIHByaW50ZigiUEluZjogJTRnIDB4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnggKCUyZCwgJTJkKVxuIiwKKwkgbXlfcGluZiwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X3BpbmYpWzBdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfcGluZilbMV0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9waW5mKVsyXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X3BpbmYpWzNdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfcGluZilbNF0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9waW5mKVs1XSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X3BpbmYpWzZdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfcGluZilbN10sCisJIHRyaW9faXNuYW4obXlfcGluZiksIHRyaW9faXNpbmYobXlfcGluZikpOworICBwcmludGYoIk5JbmY6ICU0ZyAweCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4ICglMmQsICUyZClcbiIsCisJIG15X25pbmYsCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uaW5mKVswXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25pbmYpWzFdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmluZilbMl0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uaW5mKVszXSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25pbmYpWzRdLAorCSAoKHVuc2lnbmVkIGNoYXIgKikmbXlfbmluZilbNV0sCisJICgodW5zaWduZWQgY2hhciAqKSZteV9uaW5mKVs2XSwKKwkgKCh1bnNpZ25lZCBjaGFyICopJm15X25pbmYpWzddLAorCSB0cmlvX2lzbmFuKG15X25pbmYpLCB0cmlvX2lzaW5mKG15X25pbmYpKTsKKyAgCisgIHJldHVybiAwOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3RyaW9uYW4uaCBiL2xpYnhtbDItMi43LjcvdHJpb25hbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1ZGUzMmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3RyaW9uYW4uaApAQCAtMCwwICsxLDg0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRJZCQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgQmpvcm4gUmVlc2UgPGJyZWVzZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBXSVRIT1VUIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVElCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBUSEUgQVVUSE9SUyBBTkQKKyAqIENPTlRSSUJVVE9SUyBBQ0NFUFQgTk8gUkVTUE9OU0lCSUxJVFkgSU4gQU5ZIENPTkNFSVZBQkxFIE1BTk5FUi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIFRSSU9fTkFOX0gKKyNkZWZpbmUgVFJJT19OQU5fSAorCisjaW5jbHVkZSAidHJpb2RlZi5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0geworICBUUklPX0ZQX0lORklOSVRFLAorICBUUklPX0ZQX05BTiwKKyAgVFJJT19GUF9OT1JNQUwsCisgIFRSSU9fRlBfU1VCTk9STUFMLAorICBUUklPX0ZQX1pFUk8KK307CisKKy8qCisgKiBSZXR1cm4gTmFOIChOb3QtYS1OdW1iZXIpLgorICovCitUUklPX1BVQkxJQyBkb3VibGUgdHJpb19uYW4gVFJJT19QUk9UTygodm9pZCkpOworCisvKgorICogUmV0dXJuIHBvc2l0aXZlIGluZmluaXR5LgorICovCitUUklPX1BVQkxJQyBkb3VibGUgdHJpb19waW5mIFRSSU9fUFJPVE8oKHZvaWQpKTsKKworLyoKKyAqIFJldHVybiBuZWdhdGl2ZSBpbmZpbml0eS4KKyAqLworVFJJT19QVUJMSUMgZG91YmxlIHRyaW9fbmluZiBUUklPX1BST1RPKCh2b2lkKSk7CisgIAorLyoKKyAqIFJldHVybiBuZWdhdGl2ZSB6ZXJvLgorICovCitUUklPX1BVQkxJQyBkb3VibGUgdHJpb19uemVybyBUUklPX1BST1RPKChUUklPX05PQVJHUykpOworCisvKgorICogSWYgbnVtYmVyIGlzIGEgTmFOIHJldHVybiBub24temVybywgb3RoZXJ3aXNlIHJldHVybiB6ZXJvLgorICovCitUUklPX1BVQkxJQyBpbnQgdHJpb19pc25hbiBUUklPX1BST1RPKChkb3VibGUgbnVtYmVyKSk7CisKKy8qCisgKiBJZiBudW1iZXIgaXMgcG9zaXRpdmUgaW5maW5pdHkgcmV0dXJuIDEsIGlmIG51bWJlciBpcyBuZWdhdGl2ZQorICogaW5maW5pdHkgcmV0dXJuIC0xLCBvdGhlcndpc2UgcmV0dXJuIDAuCisgKi8KK1RSSU9fUFVCTElDIGludCB0cmlvX2lzaW5mIFRSSU9fUFJPVE8oKGRvdWJsZSBudW1iZXIpKTsKKworLyoKKyAqIElmIG51bWJlciBpcyBmaW5pdGUgcmV0dXJuIG5vbi16ZXJvLCBvdGhlcndpc2UgcmV0dXJuIHplcm8uCisgKi8KKyNpZiAwCisJLyogVGVtcG9yYXJ5IGZpeCAtIHRoZXNlIDIgcm91dGluZXMgbm90IHVzZWQgaW4gbGlieG1sICovCitUUklPX1BVQkxJQyBpbnQgdHJpb19pc2Zpbml0ZSBUUklPX1BST1RPKChkb3VibGUgbnVtYmVyKSk7CisKK1RSSU9fUFVCTElDIGludCB0cmlvX2ZwY2xhc3NpZnkgVFJJT19QUk9UTygoZG91YmxlIG51bWJlcikpOworI2VuZGlmCisKK1RSSU9fUFVCTElDIGludCB0cmlvX3NpZ25iaXQgVFJJT19QUk9UTygoZG91YmxlIG51bWJlcikpOworCitUUklPX1BVQkxJQyBpbnQgdHJpb19mcGNsYXNzaWZ5X2FuZF9zaWduYml0IFRSSU9fUFJPVE8oKGRvdWJsZSBudW1iZXIsIGludCAqaXNfbmVnYXRpdmUpKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFRSSU9fTkFOX0ggKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdHJpb3AuaCBiL2xpYnhtbDItMi43LjcvdHJpb3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDYyYzU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy90cmlvcC5oCkBAIC0wLDAgKzEsMTUwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRJZCQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAgQmpvcm4gUmVlc2UgYW5kIERhbmllbCBTdGVuYmVyZy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIFdJVEhPVVQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5USUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFRIRSBBVVRIT1JTIEFORAorICogQ09OVFJJQlVUT1JTIEFDQ0VQVCBOTyBSRVNQT05TSUJJTElUWSBJTiBBTlkgQ09OQ0VJVkFCTEUgTUFOTkVSLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBQcml2YXRlIGZ1bmN0aW9ucywgdHlwZXMsIGV0Yy4gdXNlZCBmb3IgY2FsbGJhY2sgZnVuY3Rpb25zLgorICoKKyAqIFRoZSByZWYgcG9pbnRlciBpcyBhbiBvcGFxdWUgdHlwZSBhbmQgc2hvdWxkIHJlbWFpbiBhcyBzdWNoLgorICogUHJpdmF0ZSBkYXRhIG11c3Qgb25seSBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGdldHRlciBhbmQKKyAqIHNldHRlciBmdW5jdGlvbnMuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBUUklPX1RSSU9QX0gKKyNkZWZpbmUgVFJJT19UUklPUF9ICisKKyNpbmNsdWRlICJ0cmlvZGVmLmgiCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfQU5DSUVOVCkKKyMgaW5jbHVkZSA8dmFyYXJncy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8c3RkYXJnLmg+CisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisjaWZuZGVmIFRSSU9fQzk5CisjIGRlZmluZSBUUklPX0M5OSAxCisjZW5kaWYKKyNpZm5kZWYgVFJJT19CU0QKKyMgZGVmaW5lIFRSSU9fQlNEIDEKKyNlbmRpZgorI2lmbmRlZiBUUklPX0dOVQorIyBkZWZpbmUgVFJJT19HTlUgMQorI2VuZGlmCisjaWZuZGVmIFRSSU9fTUlTQworIyBkZWZpbmUgVFJJT19NSVNDIDEKKyNlbmRpZgorI2lmbmRlZiBUUklPX1VOSVg5OAorIyBkZWZpbmUgVFJJT19VTklYOTggMQorI2VuZGlmCisjaWZuZGVmIFRSSU9fTUlDUk9TT0ZUCisjIGRlZmluZSBUUklPX01JQ1JPU09GVCAxCisjZW5kaWYKKyNpZm5kZWYgVFJJT19FWFRFTlNJT04KKyMgZGVmaW5lIFRSSU9fRVhURU5TSU9OIDEKKyNlbmRpZgorI2lmbmRlZiBUUklPX1dJREVDSEFSIC8qIERvZXMgbm90IHdvcmsgeWV0LiBEbyBub3QgZW5hYmxlICovCisjIGRlZmluZSBUUklPX1dJREVDSEFSIDAKKyNlbmRpZgorI2lmbmRlZiBUUklPX0VSUk9SUworIyBkZWZpbmUgVFJJT19FUlJPUlMgMQorI2VuZGlmCisKKyNpZm5kZWYgVFJJT19NQUxMT0MKKyMgZGVmaW5lIFRSSU9fTUFMTE9DKG4pIG1hbGxvYyhuKQorI2VuZGlmCisjaWZuZGVmIFRSSU9fUkVBTExPQworIyBkZWZpbmUgVFJJT19SRUFMTE9DKHgsbikgcmVhbGxvYygoeCksKG4pKQorI2VuZGlmCisjaWZuZGVmIFRSSU9fRlJFRQorIyBkZWZpbmUgVFJJT19GUkVFKHgpIGZyZWUoeCkKKyNlbmRpZgorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVc2VyLWRlZmluZWQgc3BlY2lmaWVycworICovCisKK3R5cGVkZWYgaW50ICgqdHJpb19jYWxsYmFja190KSBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCkpOworCit0cmlvX3BvaW50ZXJfdCB0cmlvX3JlZ2lzdGVyIFRSSU9fUFJPVE8oKHRyaW9fY2FsbGJhY2tfdCBjYWxsYmFjaywgY29uc3QgY2hhciAqbmFtZSkpOwordm9pZCB0cmlvX3VucmVnaXN0ZXIgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgaGFuZGxlKSk7CisKK1RSSU9fQ09OU1QgY2hhciAqdHJpb19nZXRfZm9ybWF0IFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZikpOwordHJpb19wb2ludGVyX3QgdHJpb19nZXRfYXJndW1lbnQgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7CisKKy8qIE1vZGlmaWVycyAqLworaW50ICB0cmlvX2dldF93aWR0aCBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYpKTsKK3ZvaWQgdHJpb19zZXRfd2lkdGggVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBpbnQgd2lkdGgpKTsKK2ludCAgdHJpb19nZXRfcHJlY2lzaW9uIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZikpOwordm9pZCB0cmlvX3NldF9wcmVjaXNpb24gVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBpbnQgcHJlY2lzaW9uKSk7CitpbnQgIHRyaW9fZ2V0X2Jhc2UgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7Cit2b2lkIHRyaW9fc2V0X2Jhc2UgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBpbnQgYmFzZSkpOworaW50ICB0cmlvX2dldF9wYWRkaW5nIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZikpOwordm9pZCB0cmlvX3NldF9wYWRkaW5nIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgaW50IGlzX3BhZGRpbmcpKTsKK2ludCAgdHJpb19nZXRfc2hvcnQgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7IC8qIGggKi8KK3ZvaWQgdHJpb19zZXRfc2hvcnRzaG9ydCBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGludCBpc19zaG9ydHNob3J0KSk7CitpbnQgIHRyaW9fZ2V0X3Nob3J0c2hvcnQgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7IC8qIGhoICovCit2b2lkIHRyaW9fc2V0X3Nob3J0IFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgaW50IGlzX3Nob3J0KSk7CitpbnQgIHRyaW9fZ2V0X2xvbmcgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7IC8qIGwgKi8KK3ZvaWQgdHJpb19zZXRfbG9uZyBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGludCBpc19sb25nKSk7CitpbnQgIHRyaW9fZ2V0X2xvbmdsb25nIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZikpOyAvKiBsbCAqLwordm9pZCB0cmlvX3NldF9sb25nbG9uZyBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGludCBpc19sb25nbG9uZykpOworaW50ICB0cmlvX2dldF9sb25nZG91YmxlIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZikpOyAvKiBMICovCit2b2lkIHRyaW9fc2V0X2xvbmdkb3VibGUgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBpbnQgaXNfbG9uZ2RvdWJsZSkpOworaW50ICB0cmlvX2dldF9hbHRlcm5hdGl2ZSBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYpKTsgLyogIyAqLwordm9pZCB0cmlvX3NldF9hbHRlcm5hdGl2ZSBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGludCBpc19hbHRlcm5hdGl2ZSkpOworaW50ICB0cmlvX2dldF9hbGlnbm1lbnQgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7IC8qIC0gKi8KK3ZvaWQgdHJpb19zZXRfYWxpZ25tZW50IFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgaW50IGlzX2xlZnRhbGlnbmVkKSk7CitpbnQgIHRyaW9fZ2V0X3NwYWNpbmcgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7IC8qICBUUklPX1BST1RPKChzcGFjZSkgKi8KK3ZvaWQgdHJpb19zZXRfc3BhY2luZyBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGludCBpc19zcGFjZSkpOworaW50ICB0cmlvX2dldF9zaWduIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZikpOyAvKiArICovCit2b2lkIHRyaW9fc2V0X3NpZ24gVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBpbnQgaXNfc2hvd3NpZ24pKTsKK2ludCAgdHJpb19nZXRfcXVvdGUgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7IC8qICcgKi8KK3ZvaWQgdHJpb19zZXRfcXVvdGUgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBpbnQgaXNfcXVvdGUpKTsKK2ludCAgdHJpb19nZXRfdXBwZXIgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmKSk7Cit2b2lkIHRyaW9fc2V0X3VwcGVyIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgaW50IGlzX3VwcGVyKSk7CisjaWYgVFJJT19DOTkKK2ludCAgdHJpb19nZXRfbGFyZ2VzdCBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYpKTsgLyogaiAqLwordm9pZCB0cmlvX3NldF9sYXJnZXN0IFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgaW50IGlzX2xhcmdlc3QpKTsKK2ludCAgdHJpb19nZXRfcHRyZGlmZiBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYpKTsgLyogdCAqLwordm9pZCB0cmlvX3NldF9wdHJkaWZmIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgaW50IGlzX3B0cmRpZmYpKTsKK2ludCAgdHJpb19nZXRfc2l6ZSBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYpKTsgLyogeiAvIFogKi8KK3ZvaWQgdHJpb19zZXRfc2l6ZSBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGludCBpc19zaXplKSk7CisjZW5kaWYKKworLyogUHJpbnRpbmcgKi8KK2ludCB0cmlvX3ByaW50X3JlZiBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKSk7CitpbnQgdHJpb192cHJpbnRfcmVmIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3MpKTsKK2ludCB0cmlvX3ByaW50dl9yZWYgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBjb25zdCBjaGFyICpmb3JtYXQsIHRyaW9fcG9pbnRlcl90ICphcmdzKSk7CisKK3ZvaWQgdHJpb19wcmludF9pbnQgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBpbnQgbnVtYmVyKSk7Cit2b2lkIHRyaW9fcHJpbnRfdWludCBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIHVuc2lnbmVkIGludCBudW1iZXIpKTsKKy8qICB2b2lkIHRyaW9fcHJpbnRfbG9uZyBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIGxvbmcgbnVtYmVyKSk7ICovCisvKiAgdm9pZCB0cmlvX3ByaW50X3Vsb25nIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgdW5zaWduZWQgbG9uZyBudW1iZXIpKTsgKi8KK3ZvaWQgdHJpb19wcmludF9kb3VibGUgVFJJT19QUk9UTygodHJpb19wb2ludGVyX3QgcmVmLCBkb3VibGUgbnVtYmVyKSk7Cit2b2lkIHRyaW9fcHJpbnRfc3RyaW5nIFRSSU9fUFJPVE8oKHRyaW9fcG9pbnRlcl90IHJlZiwgY2hhciAqc3RyaW5nKSk7Cit2b2lkIHRyaW9fcHJpbnRfcG9pbnRlciBUUklPX1BST1RPKCh0cmlvX3BvaW50ZXJfdCByZWYsIHRyaW9fcG9pbnRlcl90IHBvaW50ZXIpKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9IC8qIGV4dGVybiAiQyIgKi8KKyNlbmRpZgorCisjZW5kaWYgLyogVFJJT19UUklPUF9IICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3RyaW9zdHIuYyBiL2xpYnhtbDItMi43LjcvdHJpb3N0ci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZDEzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3RyaW9zdHIuYwpAQCAtMCwwICsxLDIxMDYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMSBCam9ybiBSZWVzZSBhbmQgRGFuaWVsIFN0ZW5iZXJnLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRJQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gVEhFIEFVVEhPUlMgQU5ECisgKiBDT05UUklCVVRPUlMgQUNDRVBUIE5PIFJFU1BPTlNJQklMSVRZIElOIEFOWSBDT05DRUlWQUJMRSBNQU5ORVIuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEluY2x1ZGUgZmlsZXMKKyAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSAidHJpb2RlZi5oIgorI2luY2x1ZGUgInRyaW9zdHIuaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlZmluaXRpb25zCisgKi8KKworI2lmICFkZWZpbmVkKFRSSU9fU1RSSU5HX1BVQkxJQykKKyMgZGVmaW5lIFRSSU9fU1RSSU5HX1BVQkxJQyBUUklPX1BVQkxJQworI2VuZGlmCisjaWYgIWRlZmluZWQoVFJJT19TVFJJTkdfUFJJVkFURSkKKyMgZGVmaW5lIFRSSU9fU1RSSU5HX1BSSVZBVEUgVFJJT19QUklWQVRFCisjZW5kaWYKKworI2lmICFkZWZpbmVkKE5VTEwpCisjIGRlZmluZSBOVUxMIDAKKyNlbmRpZgorI2lmICFkZWZpbmVkKE5JTCkKKyMgZGVmaW5lIE5JTCAoKGNoYXIpMCkKKyNlbmRpZgorI2lmICFkZWZpbmVkKEZBTFNFKQorIyBkZWZpbmUgRkFMU0UgKDEgPT0gMCkKKyMgZGVmaW5lIFRSVUUgKCEgRkFMU0UpCisjZW5kaWYKKyNpZiAhZGVmaW5lZChCT09MRUFOX1QpCisjIGRlZmluZSBCT09MRUFOX1QgaW50CisjZW5kaWYKKworI2lmIGRlZmluZWQoVFJJT19DT01QSUxFUl9TVVBQT1JUU19DOTkpCisjIGRlZmluZSBVU0VfU1RSVE9ECisjIGRlZmluZSBVU0VfU1RSVE9GCisjZWxpZiBkZWZpbmVkKFRSSU9fQ09NUElMRVJfTVNWQykKKyMgZGVmaW5lIFVTRV9TVFJUT0QKKyNlbmRpZgorCisjaWYgZGVmaW5lZChUUklPX1BMQVRGT1JNX1VOSVgpCisjIGRlZmluZSBVU0VfU1RSQ0FTRUNNUAorIyBkZWZpbmUgVVNFX1NUUk5DQVNFQ01QCisjIGlmIGRlZmluZWQoVFJJT19QTEFURk9STV9TVU5PUykKKyMgIGRlZmluZSBVU0VfU1lTX0VSUkxJU1QKKyMgZWxzZQorIyAgZGVmaW5lIFVTRV9TVFJFUlJPUgorIyBlbmRpZgorIyBpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fUU5YKQorIyAgZGVmaW5lIHN0cmNhc2VjbXAoeCx5KSBzdHJpY21wKHgseSkKKyMgIGRlZmluZSBzdHJuY2FzZWNtcCh4LHksbikgc3RybmljbXAoeCx5LG4pCisjIGVuZGlmCisjZWxpZiBkZWZpbmVkKFRSSU9fUExBVEZPUk1fV0lOMzIpCisjIGRlZmluZSBVU0VfU1RSQ0FTRUNNUAorIyBpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisjICBkZWZpbmUgc3RyY2FzZWNtcCh4LHkpIF9zdHJpY21wKHgseSkKKyMgZWxzZQorIyAgZGVmaW5lIHN0cmNhc2VjbXAoeCx5KSBzdHJjbXBpKHgseSkKKyMgZW5kaWYKKyNlbmRpZgorCisjaWYgIShkZWZpbmVkKFRSSU9fUExBVEZPUk1fU1VOT1MpKQorIyBkZWZpbmUgVVNFX1RPTE9XRVIKKyMgZGVmaW5lIFVTRV9UT1VQUEVSCisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFN0cnVjdHVyZXMKKyAqLworCitzdHJ1Y3QgX3RyaW9fc3RyaW5nX3QKK3sKKyAgY2hhciAqY29udGVudDsKKyAgc2l6ZV90IGxlbmd0aDsKKyAgc2l6ZV90IGFsbG9jYXRlZDsKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb25zdGFudHMKKyAqLworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorc3RhdGljIFRSSU9fQ09OU1QgY2hhciByY3NpZFtdID0gIkAoIykkSWQkIjsKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU3RhdGljIFN0cmluZyBGdW5jdGlvbnMKKyAqLworCisjaWYgZGVmaW5lZChUUklPX0RPQ1VNRU5UQVRJT04pCisjIGluY2x1ZGUgImRvYy9kb2Nfc3RhdGljLmgiCisjZW5kaWYKKy8qKiBAYWRkdG9ncm91cCBTdGF0aWNTdHJpbmdzCisgICAgQHsKKyovCisKKy8qKgorICAgQ3JlYXRlIG5ldyBzdHJpbmcuCisKKyAgIEBwYXJhbSBzaXplIFNpemUgb2YgbmV3IHN0cmluZy4KKyAgIEByZXR1cm4gUG9pbnRlciB0byBzdHJpbmcsIG9yIE5VTEwgaWYgYWxsb2NhdGlvbiBmYWlsZWQuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKgordHJpb19jcmVhdGUKK1RSSU9fQVJHUzEoKHNpemUpLAorCSAgIHNpemVfdCBzaXplKQoreworICByZXR1cm4gKGNoYXIgKilUUklPX01BTExPQyhzaXplKTsKK30KKworCisvKioKKyAgIERlc3Ryb3kgc3RyaW5nLgorCisgICBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byBiZSBmcmVlZC4KKyovCitUUklPX1NUUklOR19QVUJMSUMgdm9pZAordHJpb19kZXN0cm95CitUUklPX0FSR1MxKChzdHJpbmcpLAorCSAgIGNoYXIgKnN0cmluZykKK3sKKyAgaWYgKHN0cmluZykKKyAgICB7CisgICAgICBUUklPX0ZSRUUoc3RyaW5nKTsKKyAgICB9Cit9CisKKworLyoqCisgICBDb3VudCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuCisKKyAgIEBwYXJhbSBzdHJpbmcgU3RyaW5nIHRvIG1lYXN1cmUuCisgICBAcmV0dXJuIE51bWJlciBvZiBjaGFyYWN0ZXJzIGluIEBzdHJpbmcuCisqLworVFJJT19TVFJJTkdfUFVCTElDIHNpemVfdAordHJpb19sZW5ndGgKK1RSSU9fQVJHUzEoKHN0cmluZyksCisJICAgVFJJT19DT05TVCBjaGFyICpzdHJpbmcpCit7CisgIHJldHVybiBzdHJsZW4oc3RyaW5nKTsKK30KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoqCisgICBBcHBlbmQgQHAgc291cmNlIGF0IHRoZSBlbmQgb2YgQHAgdGFyZ2V0LgorICAgCisgICBAcGFyYW0gdGFyZ2V0IFRhcmdldCBzdHJpbmcuCisgICBAcGFyYW0gc291cmNlIFNvdXJjZSBzdHJpbmcuCisgICBAcmV0dXJuIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyBzdWNjZXNzIG9yIGZhaWx1cmUuCisgICAKKyAgIEBwcmUgQHAgdGFyZ2V0IG11c3QgcG9pbnQgdG8gYSBtZW1vcnkgY2h1bmsgd2l0aCBzdWZmaWNpZW50IHJvb20gdG8KKyAgIGNvbnRhaW4gdGhlIEBwIHRhcmdldCBzdHJpbmcgYW5kIEBwIHNvdXJjZSBzdHJpbmcuCisgICBAcHJlIE5vIGJvdW5kYXJ5IGNoZWNraW5nIGlzIHBlcmZvcm1lZCwgc28gaW5zdWZmaWNpZW50IG1lbW9yeSB3aWxsCisgICByZXN1bHQgaW4gYSBidWZmZXIgb3ZlcnJ1bi4KKyAgIEBwb3N0IEBwIHRhcmdldCB3aWxsIGJlIHplcm8gdGVybWluYXRlZC4KKyovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX2FwcGVuZAorVFJJT19BUkdTMigodGFyZ2V0LCBzb3VyY2UpLAorCSAgIGNoYXIgKnRhcmdldCwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnNvdXJjZSkKK3sKKyAgYXNzZXJ0KHRhcmdldCk7CisgIGFzc2VydChzb3VyY2UpOworICAKKyAgcmV0dXJuIChzdHJjYXQodGFyZ2V0LCBzb3VyY2UpICE9IE5VTEwpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgQXBwZW5kIGF0IG1vc3QgQHAgbWF4IGNoYXJhY3RlcnMgZnJvbSBAcCBzb3VyY2UgdG8gQHAgdGFyZ2V0LgorICAgCisgICBAcGFyYW0gdGFyZ2V0IFRhcmdldCBzdHJpbmcuCisgICBAcGFyYW0gbWF4IE1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gYXBwZW5kLgorICAgQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nLgorICAgQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLgorICAgCisgICBAcHJlIEBwIHRhcmdldCBtdXN0IHBvaW50IHRvIGEgbWVtb3J5IGNodWNrIHdpdGggc3VmZmljaWVudCByb29tIHRvCisgICBjb250YWluIHRoZSBAcCB0YXJnZXQgc3RyaW5nIGFuZCB0aGUgQHAgc291cmNlIHN0cmluZyAoYXQgbW9zdCBAcCBtYXgKKyAgIGNoYXJhY3RlcnMpLgorICAgQHByZSBObyBib3VuZGFyeSBjaGVja2luZyBpcyBwZXJmb3JtZWQsIHNvIGluc3VmZmljaWVudCBtZW1vcnkgd2lsbAorICAgcmVzdWx0IGluIGEgYnVmZmVyIG92ZXJydW4uCisgICBAcG9zdCBAcCB0YXJnZXQgd2lsbCBiZSB6ZXJvIHRlcm1pbmF0ZWQuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19hcHBlbmRfbWF4CitUUklPX0FSR1MzKCh0YXJnZXQsIG1heCwgc291cmNlKSwKKwkgICBjaGFyICp0YXJnZXQsCisJICAgc2l6ZV90IG1heCwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnNvdXJjZSkKK3sKKyAgc2l6ZV90IGxlbmd0aDsKKyAgCisgIGFzc2VydCh0YXJnZXQpOworICBhc3NlcnQoc291cmNlKTsKKworICBsZW5ndGggPSB0cmlvX2xlbmd0aCh0YXJnZXQpOworICAKKyAgaWYgKG1heCA+IGxlbmd0aCkKKyAgICB7CisgICAgICBzdHJuY2F0KHRhcmdldCwgc291cmNlLCBtYXggLSBsZW5ndGggLSAxKTsKKyAgICB9CisgIHJldHVybiBUUlVFOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoqCisgICBEZXRlcm1pbmUgaWYgYSBzdHJpbmcgY29udGFpbnMgYSBzdWJzdHJpbmcuCisKKyAgIEBwYXJhbSBzdHJpbmcgU3RyaW5nIHRvIGJlIHNlYXJjaGVkLgorICAgQHBhcmFtIHN1YnN0cmluZyBTdHJpbmcgdG8gYmUgZm91bmQuCisgICBAcmV0dXJuIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyBzdWNjZXNzIG9yIGZhaWx1cmUuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19jb250YWlucworVFJJT19BUkdTMigoc3RyaW5nLCBzdWJzdHJpbmcpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc3RyaW5nLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc3Vic3RyaW5nKQoreworICBhc3NlcnQoc3RyaW5nKTsKKyAgYXNzZXJ0KHN1YnN0cmluZyk7CisgIAorICByZXR1cm4gKDAgIT0gc3Ryc3RyKHN0cmluZywgc3Vic3RyaW5nKSk7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKioKKyAgIENvcHkgQHAgc291cmNlIHRvIEBwIHRhcmdldC4KKyAgIAorICAgQHBhcmFtIHRhcmdldCBUYXJnZXQgc3RyaW5nLgorICAgQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nLgorICAgQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLgorICAgCisgICBAcHJlIEBwIHRhcmdldCBtdXN0IHBvaW50IHRvIGEgbWVtb3J5IGNodW5rIHdpdGggc3VmZmljaWVudCByb29tIHRvCisgICBjb250YWluIHRoZSBAcCBzb3VyY2Ugc3RyaW5nLgorICAgQHByZSBObyBib3VuZGFyeSBjaGVja2luZyBpcyBwZXJmb3JtZWQsIHNvIGluc3VmZmljaWVudCBtZW1vcnkgd2lsbAorICAgcmVzdWx0IGluIGEgYnVmZmVyIG92ZXJydW4uCisgICBAcG9zdCBAcCB0YXJnZXQgd2lsbCBiZSB6ZXJvIHRlcm1pbmF0ZWQuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19jb3B5CitUUklPX0FSR1MyKCh0YXJnZXQsIHNvdXJjZSksCisJICAgY2hhciAqdGFyZ2V0LAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc291cmNlKQoreworICBhc3NlcnQodGFyZ2V0KTsKKyAgYXNzZXJ0KHNvdXJjZSk7CisgICAgIAorICAodm9pZClzdHJjcHkodGFyZ2V0LCBzb3VyY2UpOworICByZXR1cm4gVFJVRTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoqCisgICBDb3B5IGF0IG1vc3QgQHAgbWF4IGNoYXJhY3RlcnMgZnJvbSBAcCBzb3VyY2UgdG8gQHAgdGFyZ2V0LgorICAgCisgICBAcGFyYW0gdGFyZ2V0IFRhcmdldCBzdHJpbmcuCisgICBAcGFyYW0gbWF4IE1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gYXBwZW5kLgorICAgQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nLgorICAgQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLgorICAgCisgICBAcHJlIEBwIHRhcmdldCBtdXN0IHBvaW50IHRvIGEgbWVtb3J5IGNodW5rIHdpdGggc3VmZmljaWVudCByb29tIHRvCisgICBjb250YWluIHRoZSBAcCBzb3VyY2Ugc3RyaW5nIChhdCBtb3N0IEBwIG1heCBjaGFyYWN0ZXJzKS4KKyAgIEBwcmUgTm8gYm91bmRhcnkgY2hlY2tpbmcgaXMgcGVyZm9ybWVkLCBzbyBpbnN1ZmZpY2llbnQgbWVtb3J5IHdpbGwKKyAgIHJlc3VsdCBpbiBhIGJ1ZmZlciBvdmVycnVuLgorICAgQHBvc3QgQHAgdGFyZ2V0IHdpbGwgYmUgemVybyB0ZXJtaW5hdGVkLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fY29weV9tYXgKK1RSSU9fQVJHUzMoKHRhcmdldCwgbWF4LCBzb3VyY2UpLAorCSAgIGNoYXIgKnRhcmdldCwKKwkgICBzaXplX3QgbWF4LAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc291cmNlKQoreworICBhc3NlcnQodGFyZ2V0KTsKKyAgYXNzZXJ0KHNvdXJjZSk7CisgIGFzc2VydChtYXggPiAwKTsgLyogSW5jbHVkZXMgIT0gMCAqLworCisgICh2b2lkKXN0cm5jcHkodGFyZ2V0LCBzb3VyY2UsIG1heCAtIDEpOworICB0YXJnZXRbbWF4IC0gMV0gPSAoY2hhcikwOworICByZXR1cm4gVFJVRTsKK30KKworCisvKgorICogVHJpb0R1cGxpY2F0ZU1heAorICovCitUUklPX1NUUklOR19QUklWQVRFIGNoYXIgKgorVHJpb0R1cGxpY2F0ZU1heAorVFJJT19BUkdTMigoc291cmNlLCBzaXplKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnNvdXJjZSwKKwkgICBzaXplX3Qgc2l6ZSkKK3sKKyAgY2hhciAqdGFyZ2V0OworCisgIGFzc2VydChzb3VyY2UpOworCisgIC8qIE1ha2Ugcm9vbSBmb3Igc3RyaW5nIHBsdXMgYSB0ZXJtaW5hdGluZyB6ZXJvICovCisgIHNpemUrKzsKKyAgdGFyZ2V0ID0gdHJpb19jcmVhdGUoc2l6ZSk7CisgIGlmICh0YXJnZXQpCisgICAgeworICAgICAgdHJpb19jb3B5X21heCh0YXJnZXQsIHNpemUsIHNvdXJjZSk7CisgICAgfQorICByZXR1cm4gdGFyZ2V0OworfQorCisKKy8qKgorICAgRHVwbGljYXRlIEBwIHNvdXJjZS4KKyAgIAorICAgQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nLgorICAgQHJldHVybiBBIGNvcHkgb2YgdGhlIEBwIHNvdXJjZSBzdHJpbmcuCisgICAKKyAgIEBwb3N0IEBwIHRhcmdldCB3aWxsIGJlIHplcm8gdGVybWluYXRlZC4KKyovCitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqCit0cmlvX2R1cGxpY2F0ZQorVFJJT19BUkdTMSgoc291cmNlKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnNvdXJjZSkKK3sKKyAgcmV0dXJuIFRyaW9EdXBsaWNhdGVNYXgoc291cmNlLCB0cmlvX2xlbmd0aChzb3VyY2UpKTsKK30KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoqCisgICBEdXBsaWNhdGUgYXQgbW9zdCBAcCBtYXggY2hhcmFjdGVycyBvZiBAcCBzb3VyY2UuCisgICAKKyAgIEBwYXJhbSBzb3VyY2UgU291cmNlIHN0cmluZy4KKyAgIEBwYXJhbSBtYXggTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBkdXBsaWNhdGUuCisgICBAcmV0dXJuIEEgY29weSBvZiB0aGUgQHAgc291cmNlIHN0cmluZy4KKyAgIAorICAgQHBvc3QgQHAgdGFyZ2V0IHdpbGwgYmUgemVybyB0ZXJtaW5hdGVkLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICoKK3RyaW9fZHVwbGljYXRlX21heCBUUklPX0FSR1MyKChzb3VyY2UsIG1heCksCisJCQkgICAgICBUUklPX0NPTlNUIGNoYXIgKnNvdXJjZSwKKwkJCSAgICAgIHNpemVfdCBtYXgpCit7CisgIHNpemVfdCBsZW5ndGg7CisKKyAgYXNzZXJ0KHNvdXJjZSk7CisgIGFzc2VydChtYXggPiAwKTsKKworICBsZW5ndGggPSB0cmlvX2xlbmd0aChzb3VyY2UpOworICBpZiAobGVuZ3RoID4gbWF4KQorICAgIHsKKyAgICAgIGxlbmd0aCA9IG1heDsKKyAgICB9CisgIHJldHVybiBUcmlvRHVwbGljYXRlTWF4KHNvdXJjZSwgbGVuZ3RoKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoqCisgICBDb21wYXJlIGlmIHR3byBzdHJpbmdzIGFyZSBlcXVhbC4KKyAgIAorICAgQHBhcmFtIGZpcnN0IEZpcnN0IHN0cmluZy4KKyAgIEBwYXJhbSBzZWNvbmQgU2Vjb25kIHN0cmluZy4KKyAgIEByZXR1cm4gQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHR3byBzdHJpbmdzIGFyZSBlcXVhbCBvciBub3QuCisgICAKKyAgIENhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbi4KKyovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX2VxdWFsCitUUklPX0FSR1MyKChmaXJzdCwgc2Vjb25kKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZpcnN0LAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc2Vjb25kKQoreworICBhc3NlcnQoZmlyc3QpOworICBhc3NlcnQoc2Vjb25kKTsKKworICBpZiAoKGZpcnN0ICE9IE5VTEwpICYmIChzZWNvbmQgIT0gTlVMTCkpCisgICAgeworI2lmIGRlZmluZWQoVVNFX1NUUkNBU0VDTVApCisgICAgICByZXR1cm4gKDAgPT0gc3RyY2FzZWNtcChmaXJzdCwgc2Vjb25kKSk7CisjZWxzZQorICAgICAgd2hpbGUgKCgqZmlyc3QgIT0gTklMKSAmJiAoKnNlY29uZCAhPSBOSUwpKQorCXsKKwkgIGlmICh0cmlvX3RvX3VwcGVyKCpmaXJzdCkgIT0gdHJpb190b191cHBlcigqc2Vjb25kKSkKKwkgICAgeworCSAgICAgIGJyZWFrOworCSAgICB9CisJICBmaXJzdCsrOworCSAgc2Vjb25kKys7CisJfQorICAgICAgcmV0dXJuICgoKmZpcnN0ID09IE5JTCkgJiYgKCpzZWNvbmQgPT0gTklMKSk7CisjZW5kaWYKKyAgICB9CisgIHJldHVybiBGQUxTRTsKK30KKworCisvKioKKyAgIENvbXBhcmUgaWYgdHdvIHN0cmluZ3MgYXJlIGVxdWFsLgorICAgCisgICBAcGFyYW0gZmlyc3QgRmlyc3Qgc3RyaW5nLgorICAgQHBhcmFtIHNlY29uZCBTZWNvbmQgc3RyaW5nLgorICAgQHJldHVybiBCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdHdvIHN0cmluZ3MgYXJlIGVxdWFsIG9yIG5vdC4KKyAgIAorICAgQ2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbi4KKyovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX2VxdWFsX2Nhc2UKK1RSSU9fQVJHUzIoKGZpcnN0LCBzZWNvbmQpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZmlyc3QsCisJICAgVFJJT19DT05TVCBjaGFyICpzZWNvbmQpCit7CisgIGFzc2VydChmaXJzdCk7CisgIGFzc2VydChzZWNvbmQpOworCisgIGlmICgoZmlyc3QgIT0gTlVMTCkgJiYgKHNlY29uZCAhPSBOVUxMKSkKKyAgICB7CisgICAgICByZXR1cm4gKDAgPT0gc3RyY21wKGZpcnN0LCBzZWNvbmQpKTsKKyAgICB9CisgIHJldHVybiBGQUxTRTsKK30KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoqCisgICBDb21wYXJlIGlmIHR3byBzdHJpbmdzIHVwIHVudGlsIHRoZSBmaXJzdCBAcCBtYXggY2hhcmFjdGVycyBhcmUgZXF1YWwuCisgICAKKyAgIEBwYXJhbSBmaXJzdCBGaXJzdCBzdHJpbmcuCisgICBAcGFyYW0gbWF4IE1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29tcGFyZS4KKyAgIEBwYXJhbSBzZWNvbmQgU2Vjb25kIHN0cmluZy4KKyAgIEByZXR1cm4gQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHR3byBzdHJpbmdzIGFyZSBlcXVhbCBvciBub3QuCisgICAKKyAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24uCisqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19lcXVhbF9jYXNlX21heAorVFJJT19BUkdTMygoZmlyc3QsIG1heCwgc2Vjb25kKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZpcnN0LAorCSAgIHNpemVfdCBtYXgsCisJICAgVFJJT19DT05TVCBjaGFyICpzZWNvbmQpCit7CisgIGFzc2VydChmaXJzdCk7CisgIGFzc2VydChzZWNvbmQpOworCisgIGlmICgoZmlyc3QgIT0gTlVMTCkgJiYgKHNlY29uZCAhPSBOVUxMKSkKKyAgICB7CisgICAgICByZXR1cm4gKDAgPT0gc3RybmNtcChmaXJzdCwgc2Vjb25kLCBtYXgpKTsKKyAgICB9CisgIHJldHVybiBGQUxTRTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoqCisgICBDb21wYXJlIGlmIHR3byBzdHJpbmdzIGFyZSBlcXVhbC4KKyAgIAorICAgQHBhcmFtIGZpcnN0IEZpcnN0IHN0cmluZy4KKyAgIEBwYXJhbSBzZWNvbmQgU2Vjb25kIHN0cmluZy4KKyAgIEByZXR1cm4gQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHR3byBzdHJpbmdzIGFyZSBlcXVhbCBvciBub3QuCisKKyAgIENvbGxhdGluZyBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIGVxdWFsLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fZXF1YWxfbG9jYWxlCitUUklPX0FSR1MyKChmaXJzdCwgc2Vjb25kKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZpcnN0LAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc2Vjb25kKQoreworICBhc3NlcnQoZmlyc3QpOworICBhc3NlcnQoc2Vjb25kKTsKKworI2lmIGRlZmluZWQoTENfQ09MTEFURSkKKyAgcmV0dXJuIChzdHJjb2xsKGZpcnN0LCBzZWNvbmQpID09IDApOworI2Vsc2UKKyAgcmV0dXJuIHRyaW9fZXF1YWwoZmlyc3QsIHNlY29uZCk7CisjZW5kaWYKK30KKworCisvKioKKyAgIENvbXBhcmUgaWYgdHdvIHN0cmluZ3MgdXAgdW50aWwgdGhlIGZpcnN0IEBwIG1heCBjaGFyYWN0ZXJzIGFyZSBlcXVhbC4KKyAgIAorICAgQHBhcmFtIGZpcnN0IEZpcnN0IHN0cmluZy4KKyAgIEBwYXJhbSBtYXggTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb21wYXJlLgorICAgQHBhcmFtIHNlY29uZCBTZWNvbmQgc3RyaW5nLgorICAgQHJldHVybiBCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdHdvIHN0cmluZ3MgYXJlIGVxdWFsIG9yIG5vdC4KKyAgIAorICAgQ2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fZXF1YWxfbWF4CitUUklPX0FSR1MzKChmaXJzdCwgbWF4LCBzZWNvbmQpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqZmlyc3QsCisJICAgc2l6ZV90IG1heCwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnNlY29uZCkKK3sKKyAgYXNzZXJ0KGZpcnN0KTsKKyAgYXNzZXJ0KHNlY29uZCk7CisKKyAgaWYgKChmaXJzdCAhPSBOVUxMKSAmJiAoc2Vjb25kICE9IE5VTEwpKQorICAgIHsKKyNpZiBkZWZpbmVkKFVTRV9TVFJOQ0FTRUNNUCkKKyAgICAgIHJldHVybiAoMCA9PSBzdHJuY2FzZWNtcChmaXJzdCwgc2Vjb25kLCBtYXgpKTsKKyNlbHNlCisgICAgICAvKiBOb3QgYWRlcXVhdGVseSB0ZXN0ZWQgeWV0ICovCisgICAgICBzaXplX3QgY250ID0gMDsKKyAgICAgIHdoaWxlICgoKmZpcnN0ICE9IE5JTCkgJiYgKCpzZWNvbmQgIT0gTklMKSAmJiAoY250IDw9IG1heCkpCisJeworCSAgaWYgKHRyaW9fdG9fdXBwZXIoKmZpcnN0KSAhPSB0cmlvX3RvX3VwcGVyKCpzZWNvbmQpKQorCSAgICB7CisJICAgICAgYnJlYWs7CisJICAgIH0KKwkgIGZpcnN0Kys7CisJICBzZWNvbmQrKzsKKwkgIGNudCsrOworCX0KKyAgICAgIHJldHVybiAoKGNudCA9PSBtYXgpIHx8ICgoKmZpcnN0ID09IE5JTCkgJiYgKCpzZWNvbmQgPT0gTklMKSkpOworI2VuZGlmCisgICAgfQorICByZXR1cm4gRkFMU0U7Cit9CisKKworLyoqCisgICBQcm92aWRlIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiBhbiBlcnJvciBjb2RlIChlcnJubykuCisKKyAgIEBwYXJhbSBlcnJvcl9udW1iZXIgRXJyb3IgbnVtYmVyLgorICAgQHJldHVybiBUZXh0dWFsIGRlc2NyaXB0aW9uIG9mIEBwIGVycm9yX251bWJlci4KKyovCitUUklPX1NUUklOR19QVUJMSUMgVFJJT19DT05TVCBjaGFyICoKK3RyaW9fZXJyb3IKK1RSSU9fQVJHUzEoKGVycm9yX251bWJlciksCisJICAgaW50IGVycm9yX251bWJlcikKK3sKKyNpZiBkZWZpbmVkKFVTRV9TVFJFUlJPUikKKyAgCisgIHJldHVybiBzdHJlcnJvcihlcnJvcl9udW1iZXIpOworCisjZWxpZiBkZWZpbmVkKFVTRV9TWVNfRVJSTElTVCkKKworICBleHRlcm4gY2hhciAqc3lzX2Vycmxpc3RbXTsKKyAgZXh0ZXJuIGludCBzeXNfbmVycjsKKworICByZXR1cm4gKChlcnJvcl9udW1iZXIgPCAwKSB8fCAoZXJyb3JfbnVtYmVyID49IHN5c19uZXJyKSkKKyAgICA/ICJ1bmtub3duIgorICAgIDogc3lzX2Vycmxpc3RbZXJyb3JfbnVtYmVyXTsKKyAKKyNlbHNlCisgIAorICByZXR1cm4gInVua25vd24iOworICAKKyNlbmRpZgorfQorCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpICYmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCisvKioKKyAgIEZvcm1hdCB0aGUgZGF0ZS90aW1lIGFjY29yZGluZyB0byBAcCBmb3JtYXQuCisKKyAgIEBwYXJhbSB0YXJnZXQgVGFyZ2V0IHN0cmluZy4KKyAgIEBwYXJhbSBtYXggTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBmb3JtYXQuCisgICBAcGFyYW0gZm9ybWF0IEZvcm1hdHRpbmcgc3RyaW5nLgorICAgQHBhcmFtIGRhdGV0aW1lIERhdGUvdGltZSBzdHJ1Y3R1cmUuCisgICBAcmV0dXJuIE51bWJlciBvZiBmb3JtYXR0ZWQgY2hhcmFjdGVycy4KKworICAgVGhlIGZvcm1hdHRpbmcgc3RyaW5nIGFjY2VwdHMgdGhlIHNhbWUgc3BlY2lmaWVycyBhcyB0aGUgc3RhbmRhcmQgQworICAgZnVuY3Rpb24gc3RyZnRpbWUuCisqLworVFJJT19TVFJJTkdfUFVCTElDIHNpemVfdAordHJpb19mb3JtYXRfZGF0ZV9tYXgKK1RSSU9fQVJHUzQoKHRhcmdldCwgbWF4LCBmb3JtYXQsIGRhdGV0aW1lKSwKKwkgICBjaGFyICp0YXJnZXQsCisJICAgc2l6ZV90IG1heCwKKwkgICBUUklPX0NPTlNUIGNoYXIgKmZvcm1hdCwKKwkgICBUUklPX0NPTlNUIHN0cnVjdCB0bSAqZGF0ZXRpbWUpCit7CisgIGFzc2VydCh0YXJnZXQpOworICBhc3NlcnQoZm9ybWF0KTsKKyAgYXNzZXJ0KGRhdGV0aW1lKTsKKyAgYXNzZXJ0KG1heCA+IDApOworICAKKyAgcmV0dXJuIHN0cmZ0aW1lKHRhcmdldCwgbWF4LCBmb3JtYXQsIGRhdGV0aW1lKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgQ2FsY3VsYXRlIGEgaGFzaCB2YWx1ZSBmb3IgYSBzdHJpbmcuCisKKyAgIEBwYXJhbSBzdHJpbmcgU3RyaW5nIHRvIGJlIGNhbGN1bGF0ZWQgb24uCisgICBAcGFyYW0gdHlwZSBIYXNoIGZ1bmN0aW9uLgorICAgQHJldHVybiBDYWxjdWxhdGVkIGhhc2ggdmFsdWUuCisKKyAgIEBwIHR5cGUgY2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nCisgICBAbGkgQGMgVFJJT19IQVNIX1BMQUlOIFBsYWluIGhhc2ggZnVuY3Rpb24uCisqLworVFJJT19TVFJJTkdfUFVCTElDIHVuc2lnbmVkIGxvbmcKK3RyaW9faGFzaAorVFJJT19BUkdTMigoc3RyaW5nLCB0eXBlKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnN0cmluZywKKwkgICBpbnQgdHlwZSkKK3sKKyAgdW5zaWduZWQgbG9uZyB2YWx1ZSA9IDBMOworICBjaGFyIGNoOworCisgIGFzc2VydChzdHJpbmcpOworICAKKyAgc3dpdGNoICh0eXBlKQorICAgIHsKKyAgICBjYXNlIFRSSU9fSEFTSF9QTEFJTjoKKyAgICAgIHdoaWxlICggKGNoID0gKnN0cmluZysrKSAhPSBOSUwgKQorCXsKKwkgIHZhbHVlICo9IDMxOworCSAgdmFsdWUgKz0gKHVuc2lnbmVkIGxvbmcpY2g7CisJfQorICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGFzc2VydChGQUxTRSk7CisgICAgICBicmVhazsKKyAgICB9CisgIHJldHVybiB2YWx1ZTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgRmluZCBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgY2hhcmFjdGVyIGluIGEgc3RyaW5nLgorCisgICBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byBiZSBzZWFyY2hlZC4KKyAgIEBwYXJhbSBjaGFyYWN0ZXIgQ2hhcmFjdGVyIHRvIGJlIGZvdW5kLgorICAgQHBhcmFtIEEgcG9pbnRlciB0byB0aGUgZm91bmQgY2hhcmFjdGVyLCBvciBOVUxMIGlmIGNoYXJhY3RlciB3YXMgbm90IGZvdW5kLgorICovCitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqCit0cmlvX2luZGV4CitUUklPX0FSR1MyKChzdHJpbmcsIGNoYXJhY3RlciksCisJICAgVFJJT19DT05TVCBjaGFyICpzdHJpbmcsCisJICAgaW50IGNoYXJhY3RlcikKK3sKKyAgYXNzZXJ0KHN0cmluZyk7CisKKyAgcmV0dXJuIHN0cmNocihzdHJpbmcsIGNoYXJhY3Rlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKioKKyAgIEZpbmQgbGFzdCBvY2N1cnJlbmNlIG9mIGEgY2hhcmFjdGVyIGluIGEgc3RyaW5nLgorCisgICBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byBiZSBzZWFyY2hlZC4KKyAgIEBwYXJhbSBjaGFyYWN0ZXIgQ2hhcmFjdGVyIHRvIGJlIGZvdW5kLgorICAgQHBhcmFtIEEgcG9pbnRlciB0byB0aGUgZm91bmQgY2hhcmFjdGVyLCBvciBOVUxMIGlmIGNoYXJhY3RlciB3YXMgbm90IGZvdW5kLgorICovCitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqCit0cmlvX2luZGV4X2xhc3QKK1RSSU9fQVJHUzIoKHN0cmluZywgY2hhcmFjdGVyKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnN0cmluZywKKwkgICBpbnQgY2hhcmFjdGVyKQoreworICBhc3NlcnQoc3RyaW5nKTsKKworICByZXR1cm4gc3RyY2hyKHN0cmluZywgY2hhcmFjdGVyKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgQ29udmVydCB0aGUgYWxwaGFiZXRpYyBsZXR0ZXJzIGluIHRoZSBzdHJpbmcgdG8gbG93ZXItY2FzZS4KKworICAgQHBhcmFtIHRhcmdldCBTdHJpbmcgdG8gYmUgY29udmVydGVkLgorICAgQHJldHVybiBOdW1iZXIgb2YgcHJvY2Vzc2VkIGNoYXJhY3RlcnMgKGNvbnZlcnRlZCBvciBub3QpLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fbG93ZXIKK1RSSU9fQVJHUzEoKHRhcmdldCksCisJICAgY2hhciAqdGFyZ2V0KQoreworICBhc3NlcnQodGFyZ2V0KTsKKworICByZXR1cm4gdHJpb19zcGFuX2Z1bmN0aW9uKHRhcmdldCwgdGFyZ2V0LCB0cmlvX3RvX2xvd2VyKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgQ29tcGFyZSB0d28gc3RyaW5ncyB1c2luZyB3aWxkY2FyZHMuCisKKyAgIEBwYXJhbSBzdHJpbmcgU3RyaW5nIHRvIGJlIHNlYXJjaGVkLgorICAgQHBhcmFtIHBhdHRlcm4gUGF0dGVybiwgaW5jbHVkaW5nIHdpbGRjYXJkcywgdG8gc2VhcmNoIGZvci4KKyAgIEByZXR1cm4gQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4KKworICAgQ2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uLgorICAgCisgICBUaGUgZm9sbG93aW5nIHdpbGRjYXJkcyBjYW4gYmUgdXNlZAorICAgQGxpIEBjICogTWF0Y2ggYW55IG51bWJlciBvZiBjaGFyYWN0ZXJzLgorICAgQGxpIEBjID8gTWF0Y2ggYSBzaW5nbGUgY2hhcmFjdGVyLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fbWF0Y2gKK1RSSU9fQVJHUzIoKHN0cmluZywgcGF0dGVybiksCisJICAgVFJJT19DT05TVCBjaGFyICpzdHJpbmcsCisJICAgVFJJT19DT05TVCBjaGFyICpwYXR0ZXJuKQoreworICBhc3NlcnQoc3RyaW5nKTsKKyAgYXNzZXJ0KHBhdHRlcm4pOworICAKKyAgZm9yICg7ICgnKicgIT0gKnBhdHRlcm4pOyArK3BhdHRlcm4sICsrc3RyaW5nKQorICAgIHsKKyAgICAgIGlmIChOSUwgPT0gKnN0cmluZykKKwl7CisJICByZXR1cm4gKE5JTCA9PSAqcGF0dGVybik7CisJfQorICAgICAgaWYgKCh0cmlvX3RvX3VwcGVyKChpbnQpKnN0cmluZykgIT0gdHJpb190b191cHBlcigoaW50KSpwYXR0ZXJuKSkKKwkgICYmICgnPycgIT0gKnBhdHRlcm4pKQorCXsKKwkgIHJldHVybiBGQUxTRTsKKwl9CisgICAgfQorICAvKiB0d28tbGluZSBwYXRjaCB0byBwcmV2ZW50ICp0b28qIG11Y2ggcmVjdXJzaXZlbmVzczogKi8KKyAgd2hpbGUgKCcqJyA9PSBwYXR0ZXJuWzFdKQorICAgIHBhdHRlcm4rKzsKKworICBkbworICAgIHsKKyAgICAgIGlmICggdHJpb19tYXRjaChzdHJpbmcsICZwYXR0ZXJuWzFdKSApCisJeworCSAgcmV0dXJuIFRSVUU7CisJfQorICAgIH0KKyAgd2hpbGUgKCpzdHJpbmcrKyk7CisgIAorICByZXR1cm4gRkFMU0U7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKioKKyAgIENvbXBhcmUgdHdvIHN0cmluZ3MgdXNpbmcgd2lsZGNhcmRzLgorCisgICBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byBiZSBzZWFyY2hlZC4KKyAgIEBwYXJhbSBwYXR0ZXJuIFBhdHRlcm4sIGluY2x1ZGluZyB3aWxkY2FyZHMsIHRvIHNlYXJjaCBmb3IuCisgICBAcmV0dXJuIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyBzdWNjZXNzIG9yIGZhaWx1cmUuCisKKyAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24uCisgICAKKyAgIFRoZSBmb2xsb3dpbmcgd2lsZGNhcmRzIGNhbiBiZSB1c2VkCisgICBAbGkgQGMgKiBNYXRjaCBhbnkgbnVtYmVyIG9mIGNoYXJhY3RlcnMuCisgICBAbGkgQGMgPyBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19tYXRjaF9jYXNlCitUUklPX0FSR1MyKChzdHJpbmcsIHBhdHRlcm4pLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc3RyaW5nLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqcGF0dGVybikKK3sKKyAgYXNzZXJ0KHN0cmluZyk7CisgIGFzc2VydChwYXR0ZXJuKTsKKyAgCisgIGZvciAoOyAoJyonICE9ICpwYXR0ZXJuKTsgKytwYXR0ZXJuLCArK3N0cmluZykKKyAgICB7CisgICAgICBpZiAoTklMID09ICpzdHJpbmcpCisJeworCSAgcmV0dXJuIChOSUwgPT0gKnBhdHRlcm4pOworCX0KKyAgICAgIGlmICgoKnN0cmluZyAhPSAqcGF0dGVybikKKwkgICYmICgnPycgIT0gKnBhdHRlcm4pKQorCXsKKwkgIHJldHVybiBGQUxTRTsKKwl9CisgICAgfQorICAvKiB0d28tbGluZSBwYXRjaCB0byBwcmV2ZW50ICp0b28qIG11Y2ggcmVjdXJzaXZlbmVzczogKi8KKyAgd2hpbGUgKCcqJyA9PSBwYXR0ZXJuWzFdKQorICAgIHBhdHRlcm4rKzsKKworICBkbworICAgIHsKKyAgICAgIGlmICggdHJpb19tYXRjaF9jYXNlKHN0cmluZywgJnBhdHRlcm5bMV0pICkKKwl7CisJICByZXR1cm4gVFJVRTsKKwl9CisgICAgfQorICB3aGlsZSAoKnN0cmluZysrKTsKKyAgCisgIHJldHVybiBGQUxTRTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgRXhlY3V0ZSBhIGZ1bmN0aW9uIG9uIGVhY2ggY2hhcmFjdGVyIGluIHN0cmluZy4KKworICAgQHBhcmFtIHRhcmdldCBUYXJnZXQgc3RyaW5nLgorICAgQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nLgorICAgQHBhcmFtIEZ1bmN0aW9uIEZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkLgorICAgQHJldHVybiBOdW1iZXIgb2YgcHJvY2Vzc2VkIGNoYXJhY3RlcnMuCisqLworVFJJT19TVFJJTkdfUFVCTElDIHNpemVfdAordHJpb19zcGFuX2Z1bmN0aW9uCitUUklPX0FSR1MzKCh0YXJnZXQsIHNvdXJjZSwgRnVuY3Rpb24pLAorCSAgIGNoYXIgKnRhcmdldCwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnNvdXJjZSwKKwkgICBpbnQgKCpGdW5jdGlvbikgVFJJT19QUk9UTygoaW50KSkpCit7CisgIHNpemVfdCBjb3VudCA9IDA7CisKKyAgYXNzZXJ0KHRhcmdldCk7CisgIGFzc2VydChzb3VyY2UpOworICBhc3NlcnQoRnVuY3Rpb24pOworICAKKyAgd2hpbGUgKCpzb3VyY2UgIT0gTklMKQorICAgIHsKKyAgICAgICp0YXJnZXQrKyA9IEZ1bmN0aW9uKCpzb3VyY2UrKyk7CisgICAgICBjb3VudCsrOworICAgIH0KKyAgcmV0dXJuIGNvdW50OworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoqCisgICBTZWFyY2ggZm9yIGEgc3Vic3RyaW5nIGluIGEgc3RyaW5nLgorCisgICBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byBiZSBzZWFyY2hlZC4KKyAgIEBwYXJhbSBzdWJzdHJpbmcgU3RyaW5nIHRvIGJlIGZvdW5kLgorICAgQHJldHVybiBQb2ludGVyIHRvIGZpcnN0IG9jY3VycmVuY2Ugb2YgQHAgc3Vic3RyaW5nIGluIEBwIHN0cmluZywgb3IgTlVMTAorICAgaWYgbm8gbWF0Y2ggd2FzIGZvdW5kLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICoKK3RyaW9fc3Vic3RyaW5nCitUUklPX0FSR1MyKChzdHJpbmcsIHN1YnN0cmluZyksCisJICAgVFJJT19DT05TVCBjaGFyICpzdHJpbmcsCisJICAgVFJJT19DT05TVCBjaGFyICpzdWJzdHJpbmcpCit7CisgIGFzc2VydChzdHJpbmcpOworICBhc3NlcnQoc3Vic3RyaW5nKTsKKworICByZXR1cm4gc3Ryc3RyKHN0cmluZywgc3Vic3RyaW5nKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgU2VhcmNoIGZvciBhIHN1YnN0cmluZyBpbiB0aGUgZmlyc3QgQHAgbWF4IGNoYXJhY3RlcnMgb2YgYSBzdHJpbmcuCisKKyAgIEBwYXJhbSBzdHJpbmcgU3RyaW5nIHRvIGJlIHNlYXJjaGVkLgorICAgQHBhcmFtIG1heCBNYXhpbXVtIGNoYXJhY3RlcnMgdG8gYmUgc2VhcmNoZWQuCisgICBAcGFyYW0gc3Vic3RyaW5nIFN0cmluZyB0byBiZSBmb3VuZC4KKyAgIEByZXR1cm4gUG9pbnRlciB0byBmaXJzdCBvY2N1cnJlbmNlIG9mIEBwIHN1YnN0cmluZyBpbiBAcCBzdHJpbmcsIG9yIE5VTEwKKyAgIGlmIG5vIG1hdGNoIHdhcyBmb3VuZC4KKyovCitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqCit0cmlvX3N1YnN0cmluZ19tYXgKK1RSSU9fQVJHUzMoKHN0cmluZywgbWF4LCBzdWJzdHJpbmcpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc3RyaW5nLAorCSAgIHNpemVfdCBtYXgsCisJICAgVFJJT19DT05TVCBjaGFyICpzdWJzdHJpbmcpCit7CisgIHNpemVfdCBjb3VudDsKKyAgc2l6ZV90IHNpemU7CisgIGNoYXIgKnJlc3VsdCA9IE5VTEw7CisKKyAgYXNzZXJ0KHN0cmluZyk7CisgIGFzc2VydChzdWJzdHJpbmcpOworICAKKyAgc2l6ZSA9IHRyaW9fbGVuZ3RoKHN1YnN0cmluZyk7CisgIGlmIChzaXplIDw9IG1heCkKKyAgICB7CisgICAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPD0gbWF4IC0gc2l6ZTsgY291bnQrKykKKwl7CisJICBpZiAodHJpb19lcXVhbF9tYXgoc3Vic3RyaW5nLCBzaXplLCAmc3RyaW5nW2NvdW50XSkpCisJICAgIHsKKwkgICAgICByZXN1bHQgPSAoY2hhciAqKSZzdHJpbmdbY291bnRdOworCSAgICAgIGJyZWFrOworCSAgICB9CisJfQorICAgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgVG9rZW5pemUgc3RyaW5nLgorCisgICBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byBiZSB0b2tlbml6ZWQuCisgICBAcGFyYW0gdG9rZW5zIFN0cmluZyBjb250YWluaW5nIGxpc3Qgb2YgZGVsaW1pdGluZyBjaGFyYWN0ZXJzLgorICAgQHJldHVybiBTdGFydCBvZiBuZXcgdG9rZW4uCisKKyAgIEB3YXJuaW5nIEBwIHN0cmluZyB3aWxsIGJlIGRlc3Ryb3llZC4KKyovCitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqCit0cmlvX3Rva2VuaXplCitUUklPX0FSR1MyKChzdHJpbmcsIGRlbGltaXRlcnMpLAorCSAgIGNoYXIgKnN0cmluZywKKwkgICBUUklPX0NPTlNUIGNoYXIgKmRlbGltaXRlcnMpCit7CisgIGFzc2VydChkZWxpbWl0ZXJzKTsKKyAgCisgIHJldHVybiBzdHJ0b2soc3RyaW5nLCBkZWxpbWl0ZXJzKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoqCisgICBDb252ZXJ0IHN0cmluZyB0byBmbG9hdGluZy1wb2ludCBudW1iZXIuCisKKyAgIEBwYXJhbSBzb3VyY2UgU3RyaW5nIHRvIGJlIGNvbnZlcnRlZC4KKyAgIEBwYXJhbSBlbmRwIFBvaW50ZXIgdG8gZW5kIG9mIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLgorICAgQHJldHVybiBBIGZsb2F0aW5nLXBvaW50IG51bWJlci4KKworICAgVGhlIGZvbGxvd2luZyBFeHRlbmRlZCBCYWNrdXMtTmF1ciBmb3JtIGlzIHVzZWQKKyAgIEB2ZXJiYXRpbQorICAgZG91YmxlICAgICAgICA6Oj0gWyA8c2lnbj4gXQorICAgICAgICAgICAgICAgICAgICAgKCA8bnVtYmVyPiB8CisgICAgICAgICAgICAgICAgICAgICAgIDxudW1iZXI+IDxkZWNpbWFsX3BvaW50PiA8bnVtYmVyPiB8CisgICAgICAgICAgICAgICAgICAgICAgIDxkZWNpbWFsX3BvaW50PiA8bnVtYmVyPiApCisgICAgICAgICAgICAgICAgICAgICBbIDxleHBvbmVudGlhbD4gWyA8c2lnbj4gXSA8bnVtYmVyPiBdCisgICBudW1iZXIgICAgICAgIDo6PSAxKiggPGRpZ2l0PiApCisgICBkaWdpdCAgICAgICAgIDo6PSAoICcwJyB8ICcxJyB8ICcyJyB8ICczJyB8ICc0JyB8ICc1JyB8ICc2JyB8ICc3JyB8ICc4JyB8ICc5JyApCisgICBleHBvbmVudGlhbCAgIDo6PSAoICdlJyB8ICdFJyApCisgICBzaWduICAgICAgICAgIDo6PSAoICctJyB8ICcrJyApCisgICBkZWNpbWFsX3BvaW50IDo6PSAnLicKKyAgIEBlbmR2ZXJiYXRpbQorKi8KKy8qIEZJWE1FOiBBZGQgRUJORiBmb3IgaGV4LWZsb2F0cyAqLworVFJJT19TVFJJTkdfUFVCTElDIHRyaW9fbG9uZ19kb3VibGVfdAordHJpb190b19sb25nX2RvdWJsZQorVFJJT19BUkdTMigoc291cmNlLCBlbmRwKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnNvdXJjZSwKKwkgICBjaGFyICoqZW5kcCkKK3sKKyNpZiBkZWZpbmVkKFVTRV9TVFJUT0xEKQorICByZXR1cm4gc3RydG9sZChzb3VyY2UsIGVuZHApOworI2Vsc2UKKyAgaW50IGlzTmVnYXRpdmUgPSBGQUxTRTsKKyAgaW50IGlzRXhwb25lbnROZWdhdGl2ZSA9IEZBTFNFOworICB0cmlvX2xvbmdfZG91YmxlX3QgaW50ZWdlciA9IDAuMDsKKyAgdHJpb19sb25nX2RvdWJsZV90IGZyYWN0aW9uID0gMC4wOworICB1bnNpZ25lZCBsb25nIGV4cG9uZW50ID0gMDsKKyAgdHJpb19sb25nX2RvdWJsZV90IGJhc2U7CisgIHRyaW9fbG9uZ19kb3VibGVfdCBmcmFjZGl2ID0gMS4wOworICB0cmlvX2xvbmdfZG91YmxlX3QgdmFsdWUgPSAwLjA7CisKKyAgLyogRmlyc3QgdHJ5IGhleC1mbG9hdHMgKi8KKyAgaWYgKChzb3VyY2VbMF0gPT0gJzAnKSAmJiAoKHNvdXJjZVsxXSA9PSAneCcpIHx8IChzb3VyY2VbMV0gPT0gJ1gnKSkpCisgICAgeworICAgICAgYmFzZSA9IDE2LjA7CisgICAgICBzb3VyY2UgKz0gMjsKKyAgICAgIHdoaWxlIChpc3hkaWdpdCgoaW50KSpzb3VyY2UpKQorCXsKKwkgIGludGVnZXIgKj0gYmFzZTsKKwkgIGludGVnZXIgKz0gKGlzZGlnaXQoKGludCkqc291cmNlKQorCQkgICAgICA/ICgqc291cmNlIC0gJzAnKQorCQkgICAgICA6IDEwICsgKHRyaW9fdG9fdXBwZXIoKGludCkqc291cmNlKSAtICdBJykpOworCSAgc291cmNlKys7CisJfQorICAgICAgaWYgKCpzb3VyY2UgPT0gJy4nKQorCXsKKwkgIHNvdXJjZSsrOworCSAgd2hpbGUgKGlzeGRpZ2l0KChpbnQpKnNvdXJjZSkpCisJICAgIHsKKwkgICAgICBmcmFjZGl2IC89IGJhc2U7CisJICAgICAgZnJhY3Rpb24gKz0gZnJhY2RpdiAqIChpc2RpZ2l0KChpbnQpKnNvdXJjZSkKKwkJCQkgICAgID8gKCpzb3VyY2UgLSAnMCcpCisJCQkJICAgICA6IDEwICsgKHRyaW9fdG9fdXBwZXIoKGludCkqc291cmNlKSAtICdBJykpOworCSAgICAgIHNvdXJjZSsrOworCSAgICB9CisJICBpZiAoKCpzb3VyY2UgPT0gJ3AnKSB8fCAoKnNvdXJjZSA9PSAnUCcpKQorCSAgICB7CisJICAgICAgc291cmNlKys7CisJICAgICAgaWYgKCgqc291cmNlID09ICcrJykgfHwgKCpzb3VyY2UgPT0gJy0nKSkKKwkJeworCQkgIGlzRXhwb25lbnROZWdhdGl2ZSA9ICgqc291cmNlID09ICctJyk7CisJCSAgc291cmNlKys7CisJCX0KKwkgICAgICB3aGlsZSAoaXNkaWdpdCgoaW50KSpzb3VyY2UpKQorCQl7CisJCSAgZXhwb25lbnQgKj0gMTA7CisJCSAgZXhwb25lbnQgKz0gKCpzb3VyY2UgLSAnMCcpOworCQkgIHNvdXJjZSsrOworCQl9CisJICAgIH0KKwl9CisgICAgICAvKiBGb3IgbGF0ZXIgdXNlIHdpdGggZXhwb25lbnQgKi8KKyAgICAgIGJhc2UgPSAyLjA7CisgICAgfQorICBlbHNlIC8qIFRoZW4gdHJ5IG5vcm1hbCBkZWNpbWFsIGZsb2F0cyAqLworICAgIHsKKyAgICAgIGJhc2UgPSAxMC4wOworICAgICAgaXNOZWdhdGl2ZSA9ICgqc291cmNlID09ICctJyk7CisgICAgICAvKiBTa2lwIHNpZ24gKi8KKyAgICAgIGlmICgoKnNvdXJjZSA9PSAnKycpIHx8ICgqc291cmNlID09ICctJykpCisJc291cmNlKys7CisKKyAgICAgIC8qIEludGVnZXIgcGFydCAqLworICAgICAgd2hpbGUgKGlzZGlnaXQoKGludCkqc291cmNlKSkKKwl7CisJICBpbnRlZ2VyICo9IGJhc2U7CisJICBpbnRlZ2VyICs9ICgqc291cmNlIC0gJzAnKTsKKwkgIHNvdXJjZSsrOworCX0KKworICAgICAgaWYgKCpzb3VyY2UgPT0gJy4nKQorCXsKKwkgIHNvdXJjZSsrOyAvKiBza2lwIGRlY2ltYWwgcG9pbnQgKi8KKwkgIHdoaWxlIChpc2RpZ2l0KChpbnQpKnNvdXJjZSkpCisJICAgIHsKKwkgICAgICBmcmFjZGl2IC89IGJhc2U7CisJICAgICAgZnJhY3Rpb24gKz0gKCpzb3VyY2UgLSAnMCcpICogZnJhY2RpdjsKKwkgICAgICBzb3VyY2UrKzsKKwkgICAgfQorCX0KKyAgICAgIGlmICgoKnNvdXJjZSA9PSAnZScpCisJICB8fCAoKnNvdXJjZSA9PSAnRScpCisjaWYgVFJJT19NSUNST1NPRlQKKwkgIHx8ICgqc291cmNlID09ICdkJykKKwkgIHx8ICgqc291cmNlID09ICdEJykKKyNlbmRpZgorCSAgKQorCXsKKwkgIHNvdXJjZSsrOyAvKiBTa2lwIGV4cG9uZW50aWFsIGluZGljYXRvciAqLworCSAgaXNFeHBvbmVudE5lZ2F0aXZlID0gKCpzb3VyY2UgPT0gJy0nKTsKKwkgIGlmICgoKnNvdXJjZSA9PSAnKycpIHx8ICgqc291cmNlID09ICctJykpCisJICAgIHNvdXJjZSsrOworCSAgd2hpbGUgKGlzZGlnaXQoKGludCkqc291cmNlKSkKKwkgICAgeworCSAgICAgIGV4cG9uZW50ICo9IChpbnQpYmFzZTsKKwkgICAgICBleHBvbmVudCArPSAoKnNvdXJjZSAtICcwJyk7CisJICAgICAgc291cmNlKys7CisJICAgIH0KKwl9CisgICAgfQorICAKKyAgdmFsdWUgPSBpbnRlZ2VyICsgZnJhY3Rpb247CisgIGlmIChleHBvbmVudCAhPSAwKQorICAgIHsKKyAgICAgIGlmIChpc0V4cG9uZW50TmVnYXRpdmUpCisJdmFsdWUgLz0gcG93KGJhc2UsIChkb3VibGUpZXhwb25lbnQpOworICAgICAgZWxzZQorCXZhbHVlICo9IHBvdyhiYXNlLCAoZG91YmxlKWV4cG9uZW50KTsKKyAgICB9CisgIGlmIChpc05lZ2F0aXZlKQorICAgIHZhbHVlID0gLXZhbHVlOworCisgIGlmIChlbmRwKQorICAgICplbmRwID0gKGNoYXIgKilzb3VyY2U7CisgIHJldHVybiB2YWx1ZTsKKyNlbmRpZgorfQorCisKKy8qKgorICAgQ29udmVydCBzdHJpbmcgdG8gZmxvYXRpbmctcG9pbnQgbnVtYmVyLgorCisgICBAcGFyYW0gc291cmNlIFN0cmluZyB0byBiZSBjb252ZXJ0ZWQuCisgICBAcGFyYW0gZW5kcCBQb2ludGVyIHRvIGVuZCBvZiB0aGUgY29udmVydGVkIHN0cmluZy4KKyAgIEByZXR1cm4gQSBmbG9hdGluZy1wb2ludCBudW1iZXIuCisKKyAgIFNlZSBAcmVmIHRyaW9fdG9fbG9uZ19kb3VibGUuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGRvdWJsZQordHJpb190b19kb3VibGUKK1RSSU9fQVJHUzIoKHNvdXJjZSwgZW5kcCksCisJICAgVFJJT19DT05TVCBjaGFyICpzb3VyY2UsCisJICAgY2hhciAqKmVuZHApCit7CisjaWYgZGVmaW5lZChVU0VfU1RSVE9EKQorICByZXR1cm4gc3RydG9kKHNvdXJjZSwgZW5kcCk7CisjZWxzZQorICByZXR1cm4gKGRvdWJsZSl0cmlvX3RvX2xvbmdfZG91YmxlKHNvdXJjZSwgZW5kcCk7CisjZW5kaWYKK30KKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgQ29udmVydCBzdHJpbmcgdG8gZmxvYXRpbmctcG9pbnQgbnVtYmVyLgorCisgICBAcGFyYW0gc291cmNlIFN0cmluZyB0byBiZSBjb252ZXJ0ZWQuCisgICBAcGFyYW0gZW5kcCBQb2ludGVyIHRvIGVuZCBvZiB0aGUgY29udmVydGVkIHN0cmluZy4KKyAgIEByZXR1cm4gQSBmbG9hdGluZy1wb2ludCBudW1iZXIuCisKKyAgIFNlZSBAcmVmIHRyaW9fdG9fbG9uZ19kb3VibGUuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGZsb2F0Cit0cmlvX3RvX2Zsb2F0CitUUklPX0FSR1MyKChzb3VyY2UsIGVuZHApLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc291cmNlLAorCSAgIGNoYXIgKiplbmRwKQoreworI2lmIGRlZmluZWQoVVNFX1NUUlRPRikKKyAgcmV0dXJuIHN0cnRvZihzb3VyY2UsIGVuZHApOworI2Vsc2UKKyAgcmV0dXJuIChmbG9hdCl0cmlvX3RvX2xvbmdfZG91YmxlKHNvdXJjZSwgZW5kcCk7CisjZW5kaWYKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoqCisgICBDb252ZXJ0IHN0cmluZyB0byBzaWduZWQgaW50ZWdlci4KKworICAgQHBhcmFtIHN0cmluZyBTdHJpbmcgdG8gYmUgY29udmVydGVkLgorICAgQHBhcmFtIGVuZHAgUG9pbnRlciB0byBlbmQgb2YgY29udmVydGVkIHN0cmluZy4KKyAgIEBwYXJhbSBiYXNlIFJhZGl4IG51bWJlciBvZiBudW1iZXIuCisqLworVFJJT19TVFJJTkdfUFVCTElDIGxvbmcKK3RyaW9fdG9fbG9uZworVFJJT19BUkdTMygoc3RyaW5nLCBlbmRwLCBiYXNlKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKnN0cmluZywKKwkgICBjaGFyICoqZW5kcCwKKwkgICBpbnQgYmFzZSkKK3sKKyAgYXNzZXJ0KHN0cmluZyk7CisgIGFzc2VydCgoYmFzZSA+PSAyKSAmJiAoYmFzZSA8PSAzNikpOworICAKKyAgcmV0dXJuIHN0cnRvbChzdHJpbmcsIGVuZHAsIGJhc2UpOworfQorCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKioKKyAgIENvbnZlcnQgb25lIGFscGhhYmV0aWMgbGV0dGVyIHRvIGxvd2VyLWNhc2UuCisKKyAgIEBwYXJhbSBzb3VyY2UgVGhlIGxldHRlciB0byBiZSBjb252ZXJ0ZWQuCisgICBAcmV0dXJuIFRoZSBjb252ZXJ0ZWQgbGV0dGVyLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fdG9fbG93ZXIKK1RSSU9fQVJHUzEoKHNvdXJjZSksCisJICAgaW50IHNvdXJjZSkKK3sKKyNpZiBkZWZpbmVkKFVTRV9UT0xPV0VSKQorICAKKyAgcmV0dXJuIHRvbG93ZXIoc291cmNlKTsKKyAgCisjZWxzZQorCisgIC8qIERvZXMgbm90IGhhbmRsZSBsb2NhbGVzIG9yIG5vbi1jb250aWd1b3VzIGFscGhhYmV0aWMgY2hhcmFjdGVycyAqLworICByZXR1cm4gKChzb3VyY2UgPj0gKGludCknQScpICYmIChzb3VyY2UgPD0gKGludCknWicpKQorICAgID8gc291cmNlIC0gJ0EnICsgJ2EnCisgICAgOiBzb3VyY2U7CisgIAorI2VuZGlmCit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoqCisgICBDb252ZXJ0IHN0cmluZyB0byB1bnNpZ25lZCBpbnRlZ2VyLgorCisgICBAcGFyYW0gc3RyaW5nIFN0cmluZyB0byBiZSBjb252ZXJ0ZWQuCisgICBAcGFyYW0gZW5kcCBQb2ludGVyIHRvIGVuZCBvZiBjb252ZXJ0ZWQgc3RyaW5nLgorICAgQHBhcmFtIGJhc2UgUmFkaXggbnVtYmVyIG9mIG51bWJlci4KKyovCitUUklPX1NUUklOR19QVUJMSUMgdW5zaWduZWQgbG9uZwordHJpb190b191bnNpZ25lZF9sb25nCitUUklPX0FSR1MzKChzdHJpbmcsIGVuZHAsIGJhc2UpLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqc3RyaW5nLAorCSAgIGNoYXIgKiplbmRwLAorCSAgIGludCBiYXNlKQoreworICBhc3NlcnQoc3RyaW5nKTsKKyAgYXNzZXJ0KChiYXNlID49IDIpICYmIChiYXNlIDw9IDM2KSk7CisgIAorICByZXR1cm4gc3RydG91bChzdHJpbmcsIGVuZHAsIGJhc2UpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisvKioKKyAgIENvbnZlcnQgb25lIGFscGhhYmV0aWMgbGV0dGVyIHRvIHVwcGVyLWNhc2UuCisKKyAgIEBwYXJhbSBzb3VyY2UgVGhlIGxldHRlciB0byBiZSBjb252ZXJ0ZWQuCisgICBAcmV0dXJuIFRoZSBjb252ZXJ0ZWQgbGV0dGVyLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fdG9fdXBwZXIKK1RSSU9fQVJHUzEoKHNvdXJjZSksCisJICAgaW50IHNvdXJjZSkKK3sKKyNpZiBkZWZpbmVkKFVTRV9UT1VQUEVSKQorICAKKyAgcmV0dXJuIHRvdXBwZXIoc291cmNlKTsKKyAgCisjZWxzZQorCisgIC8qIERvZXMgbm90IGhhbmRsZSBsb2NhbGVzIG9yIG5vbi1jb250aWd1b3VzIGFscGhhYmV0aWMgY2hhcmFjdGVycyAqLworICByZXR1cm4gKChzb3VyY2UgPj0gKGludCknYScpICYmIChzb3VyY2UgPD0gKGludCkneicpKQorICAgID8gc291cmNlIC0gJ2EnICsgJ0EnCisgICAgOiBzb3VyY2U7CisgIAorI2VuZGlmCit9CisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKioKKyAgIENvbnZlcnQgdGhlIGFscGhhYmV0aWMgbGV0dGVycyBpbiB0aGUgc3RyaW5nIHRvIHVwcGVyLWNhc2UuCisKKyAgIEBwYXJhbSB0YXJnZXQgVGhlIHN0cmluZyB0byBiZSBjb252ZXJ0ZWQuCisgICBAcmV0dXJuIFRoZSBudW1iZXIgb2YgcHJvY2Vzc2VkIGNoYXJhY3RlcnMgKGNvbnZlcnRlZCBvciBub3QpLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fdXBwZXIKK1RSSU9fQVJHUzEoKHRhcmdldCksCisJICAgY2hhciAqdGFyZ2V0KQoreworICBhc3NlcnQodGFyZ2V0KTsKKworICByZXR1cm4gdHJpb19zcGFuX2Z1bmN0aW9uKHRhcmdldCwgdGFyZ2V0LCB0cmlvX3RvX3VwcGVyKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoqIEB9IEVuZCBvZiBTdGF0aWNTdHJpbmdzICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIER5bmFtaWMgU3RyaW5nIEZ1bmN0aW9ucworICovCisKKyNpZiBkZWZpbmVkKFRSSU9fRE9DVU1FTlRBVElPTikKKyMgaW5jbHVkZSAiZG9jL2RvY19keW5hbWljLmgiCisjZW5kaWYKKy8qKiBAYWRkdG9ncm91cCBEeW5hbWljU3RyaW5ncworICAgIEB7CisqLworCisvKgorICogVHJpb1N0cmluZ0FsbG9jCisgKi8KK1RSSU9fU1RSSU5HX1BSSVZBVEUgdHJpb19zdHJpbmdfdCAqCitUcmlvU3RyaW5nQWxsb2MoVFJJT19OT0FSR1MpCit7CisgIHRyaW9fc3RyaW5nX3QgKnNlbGY7CisgIAorICBzZWxmID0gKHRyaW9fc3RyaW5nX3QgKilUUklPX01BTExPQyhzaXplb2YodHJpb19zdHJpbmdfdCkpOworICBpZiAoc2VsZikKKyAgICB7CisgICAgICBzZWxmLT5jb250ZW50ID0gTlVMTDsKKyAgICAgIHNlbGYtPmxlbmd0aCA9IDA7CisgICAgICBzZWxmLT5hbGxvY2F0ZWQgPSAwOworICAgIH0KKyAgcmV0dXJuIHNlbGY7Cit9CisKKworLyoKKyAqIFRyaW9TdHJpbmdHcm93CisgKgorICogVGhlIHNpemUgb2YgdGhlIHN0cmluZyB3aWxsIGJlIGluY3JlYXNlZCBieSAnZGVsdGEnIGNoYXJhY3RlcnMuIElmCisgKiAnZGVsdGEnIGlzIHplcm8sIHRoZSBzaXplIHdpbGwgYmUgZG91YmxlZC4KKyAqLworVFJJT19TVFJJTkdfUFJJVkFURSBCT09MRUFOX1QKK1RyaW9TdHJpbmdHcm93CitUUklPX0FSR1MyKChzZWxmLCBkZWx0YSksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBzaXplX3QgZGVsdGEpCit7CisgIEJPT0xFQU5fVCBzdGF0dXMgPSBGQUxTRTsKKyAgY2hhciAqbmV3X2NvbnRlbnQ7CisgIHNpemVfdCBuZXdfc2l6ZTsKKworICBuZXdfc2l6ZSA9IChkZWx0YSA9PSAwKQorICAgID8gKCAoc2VsZi0+YWxsb2NhdGVkID09IDApID8gMSA6IHNlbGYtPmFsbG9jYXRlZCAqIDIgKQorICAgIDogc2VsZi0+YWxsb2NhdGVkICsgZGVsdGE7CisgIAorICBuZXdfY29udGVudCA9IChjaGFyICopVFJJT19SRUFMTE9DKHNlbGYtPmNvbnRlbnQsIG5ld19zaXplKTsKKyAgaWYgKG5ld19jb250ZW50KQorICAgIHsKKyAgICAgIHNlbGYtPmNvbnRlbnQgPSBuZXdfY29udGVudDsKKyAgICAgIHNlbGYtPmFsbG9jYXRlZCA9IG5ld19zaXplOworICAgICAgc3RhdHVzID0gVFJVRTsKKyAgICB9CisgIHJldHVybiBzdGF0dXM7Cit9CisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qCisgKiBUcmlvU3RyaW5nR3Jvd1RvCisgKgorICogVGhlIHNpemUgb2YgdGhlIHN0cmluZyB3aWxsIGJlIGluY3JlYXNlZCB0byAnbGVuZ3RoJyBwbHVzIG9uZSBjaGFyYWN0ZXJzLgorICogSWYgJ2xlbmd0aCcgaXMgbGVzcyB0aGFuIHRoZSBvcmlnaW5hbCBzaXplLCB0aGUgb3JpZ2luYWwgc2l6ZSB3aWxsIGJlCisgKiB1c2VkICh0aGF0IGlzLCB0aGUgc2l6ZSBvZiB0aGUgc3RyaW5nIGlzIG5ldmVyIGRlY3JlYXNlZCkuCisgKi8KK1RSSU9fU1RSSU5HX1BSSVZBVEUgQk9PTEVBTl9UCitUcmlvU3RyaW5nR3Jvd1RvCitUUklPX0FSR1MyKChzZWxmLCBsZW5ndGgpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgc2l6ZV90IGxlbmd0aCkKK3sKKyAgbGVuZ3RoKys7IC8qIFJvb20gZm9yIHRlcm1pbmF0aW5nIHplcm8gKi8KKyAgcmV0dXJuIChzZWxmLT5hbGxvY2F0ZWQgPCBsZW5ndGgpCisgICAgPyBUcmlvU3RyaW5nR3JvdyhzZWxmLCBsZW5ndGggLSBzZWxmLT5hbGxvY2F0ZWQpCisgICAgOiBUUlVFOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoqCisgICBDcmVhdGUgYSBuZXcgZHluYW1pYyBzdHJpbmcuCisgICAKKyAgIEBwYXJhbSBpbml0aWFsX3NpemUgSW5pdGlhbCBzaXplIG9mIHRoZSBidWZmZXIuCisgICBAcmV0dXJuIE5ld2x5IGFsbG9jYXRlZCBkeW5hbWljIHN0cmluZywgb3IgTlVMTCBpZiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuCisqLworVFJJT19TVFJJTkdfUFVCTElDIHRyaW9fc3RyaW5nX3QgKgordHJpb19zdHJpbmdfY3JlYXRlCitUUklPX0FSR1MxKChpbml0aWFsX3NpemUpLAorCSAgIGludCBpbml0aWFsX3NpemUpCit7CisgIHRyaW9fc3RyaW5nX3QgKnNlbGY7CisKKyAgc2VsZiA9IFRyaW9TdHJpbmdBbGxvYygpOworICBpZiAoc2VsZikKKyAgICB7CisgICAgICBpZiAoVHJpb1N0cmluZ0dyb3coc2VsZiwKKwkJCSAoc2l6ZV90KSgoaW5pdGlhbF9zaXplID4gMCkgPyBpbml0aWFsX3NpemUgOiAxKSkpCisJeworCSAgc2VsZi0+Y29udGVudFswXSA9IChjaGFyKTA7CisJICBzZWxmLT5hbGxvY2F0ZWQgPSBpbml0aWFsX3NpemU7CisJfQorICAgICAgZWxzZQorCXsKKwkgIHRyaW9fc3RyaW5nX2Rlc3Ryb3koc2VsZik7CisJICBzZWxmID0gTlVMTDsKKwl9CisgICAgfQorICByZXR1cm4gc2VsZjsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoqCisgICBEZWFsbG9jYXRlIHRoZSBkeW5hbWljIHN0cmluZyBhbmQgaXRzIGNvbnRlbnRzLgorICAgCisgICBAcGFyYW0gc2VsZiBEeW5hbWljIHN0cmluZworKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyB2b2lkCit0cmlvX3N0cmluZ19kZXN0cm95CitUUklPX0FSR1MxKChzZWxmKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmKQoreworICBhc3NlcnQoc2VsZik7CisgIAorICBpZiAoc2VsZikKKyAgICB7CisgICAgICB0cmlvX2Rlc3Ryb3koc2VsZi0+Y29udGVudCk7CisgICAgICBUUklPX0ZSRUUoc2VsZik7CisgICAgfQorfQorCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKioKKyAgIEdldCBhIHBvaW50ZXIgdG8gdGhlIGNvbnRlbnQuCisgICAKKyAgIEBwYXJhbSBzZWxmIER5bmFtaWMgc3RyaW5nLgorICAgQHBhcmFtIG9mZnNldCBPZmZzZXQgaW50byBjb250ZW50LgorICAgQHJldHVybiBQb2ludGVyIHRvIHRoZSBjb250ZW50LgorICAgCisgICBAcCBPZmZzZXQgY2FuIGJlIHplcm8sIHBvc2l0aXZlLCBvciBuZWdhdGl2ZS4gSWYgQHAgb2Zmc2V0IGlzIHplcm8sCisgICB0aGVuIHRoZSBzdGFydCBvZiB0aGUgY29udGVudCB3aWxsIGJlIHJldHVybmVkLiBJZiBAcCBvZmZzZXQgaXMgcG9zaXRpdmUsCisgICB0aGVuIGEgcG9pbnRlciB0byBAcCBvZmZzZXQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgY29udGVudCBpcyByZXR1cm5lZC4gSWYgQHAgb2Zmc2V0IGlzIG5lZ2F0aXZlLCB0aGVuIGEgcG9pbnRlciB0byBAcCBvZmZzZXQKKyAgIG51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIGVuZGluZyBvZiB0aGUgc3RyaW5nLCBzdGFydGluZyBhdCB0aGUKKyAgIHRlcm1pbmF0aW5nIHplcm8sIGlzIHJldHVybmVkLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICoKK3RyaW9fc3RyaW5nX2dldAorVFJJT19BUkdTMigoc2VsZiwgb2Zmc2V0KSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIGludCBvZmZzZXQpCit7CisgIGNoYXIgKnJlc3VsdCA9IE5VTEw7CisgIAorICBhc3NlcnQoc2VsZik7CisKKyAgaWYgKHNlbGYtPmNvbnRlbnQgIT0gTlVMTCkKKyAgICB7CisgICAgICBpZiAoc2VsZi0+bGVuZ3RoID09IDApCisJeworCSAgKHZvaWQpdHJpb19zdHJpbmdfbGVuZ3RoKHNlbGYpOworCX0KKyAgICAgIGlmIChvZmZzZXQgPj0gMCkKKwl7CisJICBpZiAob2Zmc2V0ID4gKGludClzZWxmLT5sZW5ndGgpCisJICAgIHsKKwkgICAgICBvZmZzZXQgPSBzZWxmLT5sZW5ndGg7CisJICAgIH0KKwl9CisgICAgICBlbHNlCisJeworCSAgb2Zmc2V0ICs9IHNlbGYtPmxlbmd0aCArIDE7CisJICBpZiAob2Zmc2V0IDwgMCkKKwkgICAgeworCSAgICAgIG9mZnNldCA9IDA7CisJICAgIH0KKwl9CisgICAgICByZXN1bHQgPSAmKHNlbGYtPmNvbnRlbnRbb2Zmc2V0XSk7CisgICAgfQorICByZXR1cm4gcmVzdWx0OworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisvKioKKyAgIEV4dHJhY3QgdGhlIGNvbnRlbnQuCisgICAKKyAgIEBwYXJhbSBzZWxmIER5bmFtaWMgU3RyaW5nCisgICBAcmV0dXJuIENvbnRlbnQgb2YgZHluYW1pYyBzdHJpbmcuCisgICAKKyAgIFRoZSBjb250ZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgZHluYW1pYyBzdHJpbmcuIFRoaXMgZW5hYmxlcyBkZXN0cnVjdGlvbgorICAgb2YgdGhlIGR5bmFtaWMgc3RyaW5nIHdpdGhvdXQgZGVhbGxvY2F0aW9uIG9mIHRoZSBjb250ZW50LgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICoKK3RyaW9fc3RyaW5nX2V4dHJhY3QKK1RSSU9fQVJHUzEoKHNlbGYpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYpCit7CisgIGNoYXIgKnJlc3VsdDsKKyAgCisgIGFzc2VydChzZWxmKTsKKworICByZXN1bHQgPSBzZWxmLT5jb250ZW50OworICAvKiBGSVhNRTogQWxsb2NhdGUgbmV3IGVtcHR5IGJ1ZmZlcj8gKi8KKyAgc2VsZi0+Y29udGVudCA9IE5VTEw7CisgIHNlbGYtPmxlbmd0aCA9IHNlbGYtPmFsbG9jYXRlZCA9IDA7CisgIHJldHVybiByZXN1bHQ7Cit9CisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgU2V0IHRoZSBjb250ZW50IG9mIHRoZSBkeW5hbWljIHN0cmluZy4KKyAgIAorICAgQHBhcmFtIHNlbGYgRHluYW1pYyBTdHJpbmcKKyAgIEBwYXJhbSBidWZmZXIgVGhlIG5ldyBjb250ZW50LgorICAgCisgICBTZXRzIHRoZSBjb250ZW50IG9mIHRoZSBkeW5hbWljIHN0cmluZyB0byBhIGNvcHkgQHAgYnVmZmVyLgorICAgQW4gZXhpc3RpbmcgY29udGVudCB3aWxsIGJlIGRlYWxsb2NhdGVkIGZpcnN0LCBpZiBuZWNlc3NhcnkuCisgICAKKyAgIEByZW1hcmsKKyAgIFRoaXMgZnVuY3Rpb24gd2lsbCBtYWtlIGEgY29weSBvZiBAcCBidWZmZXIuCisgICBZb3UgYXJlIHJlc3BvbnNpYmxlIGZvciBkZWFsbG9jYXRpbmcgQHAgYnVmZmVyIHlvdXJzZWxmLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyB2b2lkCit0cmlvX3hzdHJpbmdfc2V0CitUUklPX0FSR1MyKChzZWxmLCBidWZmZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgY2hhciAqYnVmZmVyKQoreworICBhc3NlcnQoc2VsZik7CisKKyAgdHJpb19kZXN0cm95KHNlbGYtPmNvbnRlbnQpOworICBzZWxmLT5jb250ZW50ID0gdHJpb19kdXBsaWNhdGUoYnVmZmVyKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworLyoKKyAqIHRyaW9fc3RyaW5nX3NpemUKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19zdHJpbmdfc2l6ZQorVFJJT19BUkdTMSgoc2VsZiksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZikKK3sKKyAgYXNzZXJ0KHNlbGYpOworCisgIHJldHVybiBzZWxmLT5hbGxvY2F0ZWQ7Cit9CisKKworLyoKKyAqIHRyaW9fc3RyaW5nX3Rlcm1pbmF0ZQorICovCitUUklPX1NUUklOR19QVUJMSUMgdm9pZAordHJpb19zdHJpbmdfdGVybWluYXRlCitUUklPX0FSR1MxKChzZWxmKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmKQoreworICB0cmlvX3hzdHJpbmdfYXBwZW5kX2NoYXIoc2VsZiwgMCk7Cit9CisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgQXBwZW5kIHRoZSBzZWNvbmQgc3RyaW5nIHRvIHRoZSBmaXJzdC4KKyAgIAorICAgQHBhcmFtIHNlbGYgRHluYW1pYyBzdHJpbmcgdG8gYmUgbW9kaWZpZWQuCisgICBAcGFyYW0gb3RoZXIgRHluYW1pYyBzdHJpbmcgdG8gY29weSBmcm9tLgorICAgQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fc3RyaW5nX2FwcGVuZAorVFJJT19BUkdTMigoc2VsZiwgb3RoZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgdHJpb19zdHJpbmdfdCAqb3RoZXIpCit7CisgIHNpemVfdCBsZW5ndGg7CisgIAorICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgbGVuZ3RoID0gc2VsZi0+bGVuZ3RoICsgb3RoZXItPmxlbmd0aDsKKyAgaWYgKCFUcmlvU3RyaW5nR3Jvd1RvKHNlbGYsIGxlbmd0aCkpCisgICAgZ290byBlcnJvcjsKKyAgdHJpb19jb3B5KCZzZWxmLT5jb250ZW50W3NlbGYtPmxlbmd0aF0sIG90aGVyLT5jb250ZW50KTsKKyAgc2VsZi0+bGVuZ3RoID0gbGVuZ3RoOworICByZXR1cm4gVFJVRTsKKyAgCisgZXJyb3I6CisgIHJldHVybiBGQUxTRTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qCisgKiB0cmlvX3hzdHJpbmdfYXBwZW5kCisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9feHN0cmluZ19hcHBlbmQKK1RSSU9fQVJHUzIoKHNlbGYsIG90aGVyKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqb3RoZXIpCit7CisgIHNpemVfdCBsZW5ndGg7CisgIAorICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgbGVuZ3RoID0gc2VsZi0+bGVuZ3RoICsgdHJpb19sZW5ndGgob3RoZXIpOworICBpZiAoIVRyaW9TdHJpbmdHcm93VG8oc2VsZiwgbGVuZ3RoKSkKKyAgICBnb3RvIGVycm9yOworICB0cmlvX2NvcHkoJnNlbGYtPmNvbnRlbnRbc2VsZi0+bGVuZ3RoXSwgb3RoZXIpOworICBzZWxmLT5sZW5ndGggPSBsZW5ndGg7CisgIHJldHVybiBUUlVFOworICAKKyBlcnJvcjoKKyAgcmV0dXJuIEZBTFNFOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisvKgorICogdHJpb194c3RyaW5nX2FwcGVuZF9jaGFyCisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9feHN0cmluZ19hcHBlbmRfY2hhcgorVFJJT19BUkdTMigoc2VsZiwgY2hhcmFjdGVyKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIGNoYXIgY2hhcmFjdGVyKQoreworICBhc3NlcnQoc2VsZik7CisKKyAgaWYgKChpbnQpc2VsZi0+bGVuZ3RoID49IHRyaW9fc3RyaW5nX3NpemUoc2VsZikpCisgICAgeworICAgICAgaWYgKCFUcmlvU3RyaW5nR3JvdyhzZWxmLCAwKSkKKwlnb3RvIGVycm9yOworICAgIH0KKyAgc2VsZi0+Y29udGVudFtzZWxmLT5sZW5ndGhdID0gY2hhcmFjdGVyOworICBzZWxmLT5sZW5ndGgrKzsKKyAgcmV0dXJuIFRSVUU7CisgIAorIGVycm9yOgorICByZXR1cm4gRkFMU0U7Cit9CisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qKgorICAgU2VhcmNoIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBzZWNvbmQgcGFyYW1ldGVyIGluIHRoZSBmaXJzdC4KKyAgIAorICAgQHBhcmFtIHNlbGYgRHluYW1pYyBzdHJpbmcgdG8gYmUgbW9kaWZpZWQuCisgICBAcGFyYW0gb3RoZXIgRHluYW1pYyBzdHJpbmcgdG8gY29weSBmcm9tLgorICAgQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLgorKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fc3RyaW5nX2NvbnRhaW5zCitUUklPX0FSR1MyKChzZWxmLCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICB0cmlvX3N0cmluZ190ICpvdGhlcikKK3sKKyAgYXNzZXJ0KHNlbGYpOworICBhc3NlcnQob3RoZXIpOworCisgIHJldHVybiB0cmlvX2NvbnRhaW5zKHNlbGYtPmNvbnRlbnQsIG90aGVyLT5jb250ZW50KTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qCisgKiB0cmlvX3hzdHJpbmdfY29udGFpbnMKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb194c3RyaW5nX2NvbnRhaW5zCitUUklPX0FSR1MyKChzZWxmLCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBUUklPX0NPTlNUIGNoYXIgKm90aGVyKQoreworICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgcmV0dXJuIHRyaW9fY29udGFpbnMoc2VsZi0+Y29udGVudCwgb3RoZXIpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9fc3RyaW5nX2NvcHkKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19zdHJpbmdfY29weQorVFJJT19BUkdTMigoc2VsZiwgb3RoZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgdHJpb19zdHJpbmdfdCAqb3RoZXIpCit7CisgIGFzc2VydChzZWxmKTsKKyAgYXNzZXJ0KG90aGVyKTsKKworICBzZWxmLT5sZW5ndGggPSAwOworICByZXR1cm4gdHJpb19zdHJpbmdfYXBwZW5kKHNlbGYsIG90aGVyKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qCisgKiB0cmlvX3hzdHJpbmdfY29weQorICovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX3hzdHJpbmdfY29weQorVFJJT19BUkdTMigoc2VsZiwgb3RoZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgVFJJT19DT05TVCBjaGFyICpvdGhlcikKK3sKKyAgYXNzZXJ0KHNlbGYpOworICBhc3NlcnQob3RoZXIpOworCisgIHNlbGYtPmxlbmd0aCA9IDA7CisgIHJldHVybiB0cmlvX3hzdHJpbmdfYXBwZW5kKHNlbGYsIG90aGVyKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qCisgKiB0cmlvX3N0cmluZ19kdXBsaWNhdGUKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIHRyaW9fc3RyaW5nX3QgKgordHJpb19zdHJpbmdfZHVwbGljYXRlCitUUklPX0FSR1MxKChvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqb3RoZXIpCit7CisgIHRyaW9fc3RyaW5nX3QgKnNlbGY7CisgIAorICBhc3NlcnQob3RoZXIpOworCisgIHNlbGYgPSBUcmlvU3RyaW5nQWxsb2MoKTsKKyAgaWYgKHNlbGYpCisgICAgeworICAgICAgc2VsZi0+Y29udGVudCA9IFRyaW9EdXBsaWNhdGVNYXgob3RoZXItPmNvbnRlbnQsIG90aGVyLT5sZW5ndGgpOworICAgICAgaWYgKHNlbGYtPmNvbnRlbnQpCisJeworCSAgc2VsZi0+bGVuZ3RoID0gb3RoZXItPmxlbmd0aDsKKwkgIHNlbGYtPmFsbG9jYXRlZCA9IHNlbGYtPmxlbmd0aCArIDE7CisJfQorICAgICAgZWxzZQorCXsKKwkgIHNlbGYtPmxlbmd0aCA9IHNlbGYtPmFsbG9jYXRlZCA9IDA7CisJfQorICAgIH0KKyAgcmV0dXJuIHNlbGY7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKy8qCisgKiB0cmlvX3hzdHJpbmdfZHVwbGljYXRlCisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyB0cmlvX3N0cmluZ190ICoKK3RyaW9feHN0cmluZ19kdXBsaWNhdGUKK1RSSU9fQVJHUzEoKG90aGVyKSwKKwkgICBUUklPX0NPTlNUIGNoYXIgKm90aGVyKQoreworICB0cmlvX3N0cmluZ190ICpzZWxmOworICAKKyAgYXNzZXJ0KG90aGVyKTsKKworICBzZWxmID0gVHJpb1N0cmluZ0FsbG9jKCk7CisgIGlmIChzZWxmKQorICAgIHsKKyAgICAgIHNlbGYtPmNvbnRlbnQgPSBUcmlvRHVwbGljYXRlTWF4KG90aGVyLCB0cmlvX2xlbmd0aChvdGhlcikpOworICAgICAgaWYgKHNlbGYtPmNvbnRlbnQpCisJeworCSAgc2VsZi0+bGVuZ3RoID0gdHJpb19sZW5ndGgoc2VsZi0+Y29udGVudCk7CisJICBzZWxmLT5hbGxvY2F0ZWQgPSBzZWxmLT5sZW5ndGggKyAxOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBzZWxmLT5sZW5ndGggPSBzZWxmLT5hbGxvY2F0ZWQgPSAwOworCX0KKyAgICB9CisgIHJldHVybiBzZWxmOworfQorCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfZXF1YWwKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19zdHJpbmdfZXF1YWwKK1RSSU9fQVJHUzIoKHNlbGYsIG90aGVyKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIHRyaW9fc3RyaW5nX3QgKm90aGVyKQoreworICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgcmV0dXJuIHRyaW9fZXF1YWwoc2VsZi0+Y29udGVudCwgb3RoZXItPmNvbnRlbnQpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9feHN0cmluZ19lcXVhbAorICovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX3hzdHJpbmdfZXF1YWwKK1RSSU9fQVJHUzIoKHNlbGYsIG90aGVyKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqb3RoZXIpCit7CisgIGFzc2VydChzZWxmKTsKKyAgYXNzZXJ0KG90aGVyKTsKKworICByZXR1cm4gdHJpb19lcXVhbChzZWxmLT5jb250ZW50LCBvdGhlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfZXF1YWxfbWF4CisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fc3RyaW5nX2VxdWFsX21heAorVFJJT19BUkdTMygoc2VsZiwgbWF4LCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBzaXplX3QgbWF4LAorCSAgIHRyaW9fc3RyaW5nX3QgKm90aGVyKQoreworICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgcmV0dXJuIHRyaW9fZXF1YWxfbWF4KHNlbGYtPmNvbnRlbnQsIG1heCwgb3RoZXItPmNvbnRlbnQpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9feHN0cmluZ19lcXVhbF9tYXgKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb194c3RyaW5nX2VxdWFsX21heAorVFJJT19BUkdTMygoc2VsZiwgbWF4LCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBzaXplX3QgbWF4LAorCSAgIFRSSU9fQ09OU1QgY2hhciAqb3RoZXIpCit7CisgIGFzc2VydChzZWxmKTsKKyAgYXNzZXJ0KG90aGVyKTsKKworICByZXR1cm4gdHJpb19lcXVhbF9tYXgoc2VsZi0+Y29udGVudCwgbWF4LCBvdGhlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfZXF1YWxfY2FzZQorICovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX3N0cmluZ19lcXVhbF9jYXNlCitUUklPX0FSR1MyKChzZWxmLCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICB0cmlvX3N0cmluZ190ICpvdGhlcikKK3sKKyAgYXNzZXJ0KHNlbGYpOworICBhc3NlcnQob3RoZXIpOworCisgIHJldHVybiB0cmlvX2VxdWFsX2Nhc2Uoc2VsZi0+Y29udGVudCwgb3RoZXItPmNvbnRlbnQpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9feHN0cmluZ19lcXVhbF9jYXNlCisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9feHN0cmluZ19lcXVhbF9jYXNlCitUUklPX0FSR1MyKChzZWxmLCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBUUklPX0NPTlNUIGNoYXIgKm90aGVyKQoreworICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgcmV0dXJuIHRyaW9fZXF1YWxfY2FzZShzZWxmLT5jb250ZW50LCBvdGhlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfZXF1YWxfY2FzZV9tYXgKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19zdHJpbmdfZXF1YWxfY2FzZV9tYXgKK1RSSU9fQVJHUzMoKHNlbGYsIG1heCwgb3RoZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgc2l6ZV90IG1heCwKKwkgICB0cmlvX3N0cmluZ190ICpvdGhlcikKK3sKKyAgYXNzZXJ0KHNlbGYpOworICBhc3NlcnQob3RoZXIpOworCisgIHJldHVybiB0cmlvX2VxdWFsX2Nhc2VfbWF4KHNlbGYtPmNvbnRlbnQsIG1heCwgb3RoZXItPmNvbnRlbnQpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9feHN0cmluZ19lcXVhbF9jYXNlX21heAorICovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX3hzdHJpbmdfZXF1YWxfY2FzZV9tYXgKK1RSSU9fQVJHUzMoKHNlbGYsIG1heCwgb3RoZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgc2l6ZV90IG1heCwKKwkgICBUUklPX0NPTlNUIGNoYXIgKm90aGVyKQoreworICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgcmV0dXJuIHRyaW9fZXF1YWxfY2FzZV9tYXgoc2VsZi0+Y29udGVudCwgbWF4LCBvdGhlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpICYmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCisvKgorICogdHJpb19zdHJpbmdfZm9ybWF0X2RhdGFfbWF4CisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBzaXplX3QKK3RyaW9fc3RyaW5nX2Zvcm1hdF9kYXRlX21heAorVFJJT19BUkdTNCgoc2VsZiwgbWF4LCBmb3JtYXQsIGRhdGV0aW1lKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIHNpemVfdCBtYXgsCisJICAgVFJJT19DT05TVCBjaGFyICpmb3JtYXQsCisJICAgVFJJT19DT05TVCBzdHJ1Y3QgdG0gKmRhdGV0aW1lKQoreworICBhc3NlcnQoc2VsZik7CisKKyAgcmV0dXJuIHRyaW9fZm9ybWF0X2RhdGVfbWF4KHNlbGYtPmNvbnRlbnQsIG1heCwgZm9ybWF0LCBkYXRldGltZSk7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfaW5kZXgKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKgordHJpb19zdHJpbmdfaW5kZXgKK1RSSU9fQVJHUzIoKHNlbGYsIGNoYXJhY3RlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBpbnQgY2hhcmFjdGVyKQoreworICBhc3NlcnQoc2VsZik7CisKKyAgcmV0dXJuIHRyaW9faW5kZXgoc2VsZi0+Y29udGVudCwgY2hhcmFjdGVyKTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKy8qCisgKiB0cmlvX3N0cmluZ19pbmRleF9sYXN0CisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICoKK3RyaW9fc3RyaW5nX2luZGV4X2xhc3QKK1RSSU9fQVJHUzIoKHNlbGYsIGNoYXJhY3RlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBpbnQgY2hhcmFjdGVyKQoreworICBhc3NlcnQoc2VsZik7CisKKyAgcmV0dXJuIHRyaW9faW5kZXhfbGFzdChzZWxmLT5jb250ZW50LCBjaGFyYWN0ZXIpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9fc3RyaW5nX2xlbmd0aAorICovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX3N0cmluZ19sZW5ndGgKK1RSSU9fQVJHUzEoKHNlbGYpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYpCit7CisgIGFzc2VydChzZWxmKTsKKworICBpZiAoc2VsZi0+bGVuZ3RoID09IDApCisgICAgeworICAgICAgc2VsZi0+bGVuZ3RoID0gdHJpb19sZW5ndGgoc2VsZi0+Y29udGVudCk7CisgICAgfQorICByZXR1cm4gc2VsZi0+bGVuZ3RoOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9fc3RyaW5nX2xvd2VyCisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9fc3RyaW5nX2xvd2VyCitUUklPX0FSR1MxKChzZWxmKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmKQoreworICBhc3NlcnQoc2VsZik7CisKKyAgcmV0dXJuIHRyaW9fbG93ZXIoc2VsZi0+Y29udGVudCk7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfbWF0Y2gKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19zdHJpbmdfbWF0Y2gKK1RSSU9fQVJHUzIoKHNlbGYsIG90aGVyKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIHRyaW9fc3RyaW5nX3QgKm90aGVyKQoreworICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgcmV0dXJuIHRyaW9fbWF0Y2goc2VsZi0+Y29udGVudCwgb3RoZXItPmNvbnRlbnQpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9feHN0cmluZ19tYXRjaAorICovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX3hzdHJpbmdfbWF0Y2gKK1RSSU9fQVJHUzIoKHNlbGYsIG90aGVyKSwKKwkgICB0cmlvX3N0cmluZ190ICpzZWxmLAorCSAgIFRSSU9fQ09OU1QgY2hhciAqb3RoZXIpCit7CisgIGFzc2VydChzZWxmKTsKKyAgYXNzZXJ0KG90aGVyKTsKKworICByZXR1cm4gdHJpb19tYXRjaChzZWxmLT5jb250ZW50LCBvdGhlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfbWF0Y2hfY2FzZQorICovCitUUklPX1NUUklOR19QVUJMSUMgaW50Cit0cmlvX3N0cmluZ19tYXRjaF9jYXNlCitUUklPX0FSR1MyKChzZWxmLCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICB0cmlvX3N0cmluZ190ICpvdGhlcikKK3sKKyAgYXNzZXJ0KHNlbGYpOworICBhc3NlcnQob3RoZXIpOworCisgIHJldHVybiB0cmlvX21hdGNoX2Nhc2Uoc2VsZi0+Y29udGVudCwgb3RoZXItPmNvbnRlbnQpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9feHN0cmluZ19tYXRjaF9jYXNlCisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQKK3RyaW9feHN0cmluZ19tYXRjaF9jYXNlCitUUklPX0FSR1MyKChzZWxmLCBvdGhlciksCisJICAgdHJpb19zdHJpbmdfdCAqc2VsZiwKKwkgICBUUklPX0NPTlNUIGNoYXIgKm90aGVyKQoreworICBhc3NlcnQoc2VsZik7CisgIGFzc2VydChvdGhlcik7CisKKyAgcmV0dXJuIHRyaW9fbWF0Y2hfY2FzZShzZWxmLT5jb250ZW50LCBvdGhlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfc3Vic3RyaW5nCisgKi8KK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICoKK3RyaW9fc3RyaW5nX3N1YnN0cmluZworVFJJT19BUkdTMigoc2VsZiwgb3RoZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgdHJpb19zdHJpbmdfdCAqb3RoZXIpCit7CisgIGFzc2VydChzZWxmKTsKKyAgYXNzZXJ0KG90aGVyKTsKKworICByZXR1cm4gdHJpb19zdWJzdHJpbmcoc2VsZi0+Y29udGVudCwgb3RoZXItPmNvbnRlbnQpOworfQorI2VuZGlmIC8qICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkgKi8KKworCisjaWYgIWRlZmluZWQoVFJJT19NSU5JTUFMKQorLyoKKyAqIHRyaW9feHN0cmluZ19zdWJzdHJpbmcKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKgordHJpb194c3RyaW5nX3N1YnN0cmluZworVFJJT19BUkdTMigoc2VsZiwgb3RoZXIpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYsCisJICAgVFJJT19DT05TVCBjaGFyICpvdGhlcikKK3sKKyAgYXNzZXJ0KHNlbGYpOworICBhc3NlcnQob3RoZXIpOworCisgIHJldHVybiB0cmlvX3N1YnN0cmluZyhzZWxmLT5jb250ZW50LCBvdGhlcik7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoVFJJT19NSU5JTUFMKSAqLworCisKKyNpZiAhZGVmaW5lZChUUklPX01JTklNQUwpCisvKgorICogdHJpb19zdHJpbmdfdXBwZXIKKyAqLworVFJJT19TVFJJTkdfUFVCTElDIGludAordHJpb19zdHJpbmdfdXBwZXIKK1RSSU9fQVJHUzEoKHNlbGYpLAorCSAgIHRyaW9fc3RyaW5nX3QgKnNlbGYpCit7CisgIGFzc2VydChzZWxmKTsKKworICByZXR1cm4gdHJpb191cHBlcihzZWxmLT5jb250ZW50KTsKK30KKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKy8qKiBAfSBFbmQgb2YgRHluYW1pY1N0cmluZ3MgKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcvdHJpb3N0ci5oIGIvbGlieG1sMi0yLjcuNy90cmlvc3RyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdmNGFjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdHJpb3N0ci5oCkBAIC0wLDAgKzEsMTQ0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRJZCQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEgQmpvcm4gUmVlc2UgYW5kIERhbmllbCBTdGVuYmVyZy4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIFdJVEhPVVQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5USUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFRIRSBBVVRIT1JTIEFORAorICogQ09OVFJJQlVUT1JTIEFDQ0VQVCBOTyBSRVNQT05TSUJJTElUWSBJTiBBTlkgQ09OQ0VJVkFCTEUgTUFOTkVSLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgVFJJT19UUklPU1RSX0gKKyNkZWZpbmUgVFJJT19UUklPU1RSX0gKKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlICJ0cmlvZGVmLmgiCisjaW5jbHVkZSAidHJpb3AuaCIKKworZW51bSB7CisgIFRSSU9fSEFTSF9OT05FID0gMCwKKyAgVFJJT19IQVNIX1BMQUlOLAorICBUUklPX0hBU0hfVFdPU0lHTkVECit9OworCisjaWYgIWRlZmluZWQoVFJJT19TVFJJTkdfUFVCTElDKQorIyBpZiAhZGVmaW5lZChUUklPX1BVQkxJQykKKyMgIGRlZmluZSBUUklPX1BVQkxJQworIyBlbmRpZgorIyBkZWZpbmUgVFJJT19TVFJJTkdfUFVCTElDIFRSSU9fUFVCTElDCisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFN0cmluZyBmdW5jdGlvbnMKKyAqLworCitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fY29weV9tYXggVFJJT19QUk9UTygoY2hhciAqdGFyZ2V0LCBzaXplX3QgbWF4LCBjb25zdCBjaGFyICpzb3VyY2UpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICp0cmlvX2NyZWF0ZSBUUklPX1BST1RPKChzaXplX3Qgc2l6ZSkpOworVFJJT19TVFJJTkdfUFVCTElDIHZvaWQgdHJpb19kZXN0cm95IFRSSU9fUFJPVE8oKGNoYXIgKnN0cmluZykpOworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKnRyaW9fZHVwbGljYXRlIFRSSU9fUFJPVE8oKGNvbnN0IGNoYXIgKnNvdXJjZSkpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX2VxdWFsIFRSSU9fUFJPVE8oKGNvbnN0IGNoYXIgKmZpcnN0LCBjb25zdCBjaGFyICpzZWNvbmQpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb19lcXVhbF9jYXNlIFRSSU9fUFJPVE8oKGNvbnN0IGNoYXIgKmZpcnN0LCBjb25zdCBjaGFyICpzZWNvbmQpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb19lcXVhbF9sb2NhbGUgVFJJT19QUk9UTygoY29uc3QgY2hhciAqZmlyc3QsIGNvbnN0IGNoYXIgKnNlY29uZCkpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX2VxdWFsX21heCBUUklPX1BST1RPKChjb25zdCBjaGFyICpmaXJzdCwgc2l6ZV90IG1heCwgY29uc3QgY2hhciAqc2Vjb25kKSk7CitUUklPX1NUUklOR19QVUJMSUMgVFJJT19DT05TVCBjaGFyICp0cmlvX2Vycm9yIFRSSU9fUFJPVE8oKGludCkpOworVFJJT19TVFJJTkdfUFVCTElDIHNpemVfdCB0cmlvX2xlbmd0aCBUUklPX1BST1RPKChjb25zdCBjaGFyICpzdHJpbmcpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBkb3VibGUgdHJpb190b19kb3VibGUgVFJJT19QUk9UTygoY29uc3QgY2hhciAqc291cmNlLCBjaGFyICoqZW5kcCkpOworVFJJT19TVFJJTkdfUFVCTElDIGxvbmcgdHJpb190b19sb25nIFRSSU9fUFJPVE8oKGNvbnN0IGNoYXIgKnNvdXJjZSwgY2hhciAqKmVuZHAsIGludCBiYXNlKSk7CitUUklPX1NUUklOR19QVUJMSUMgdHJpb19sb25nX2RvdWJsZV90IHRyaW9fdG9fbG9uZ19kb3VibGUgVFJJT19QUk9UTygoY29uc3QgY2hhciAqc291cmNlLCBjaGFyICoqZW5kcCkpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3RvX3VwcGVyIFRSSU9fUFJPVE8oKGludCBzb3VyY2UpKTsKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX2FwcGVuZCBUUklPX1BST1RPKChjaGFyICp0YXJnZXQsIGNvbnN0IGNoYXIgKnNvdXJjZSkpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX2FwcGVuZF9tYXggVFJJT19QUk9UTygoY2hhciAqdGFyZ2V0LCBzaXplX3QgbWF4LCBjb25zdCBjaGFyICpzb3VyY2UpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb19jb250YWlucyBUUklPX1BST1RPKChjb25zdCBjaGFyICpzdHJpbmcsIGNvbnN0IGNoYXIgKnN1YnN0cmluZykpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX2NvcHkgVFJJT19QUk9UTygoY2hhciAqdGFyZ2V0LCBjb25zdCBjaGFyICpzb3VyY2UpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICp0cmlvX2R1cGxpY2F0ZV9tYXggVFJJT19QUk9UTygoY29uc3QgY2hhciAqc291cmNlLCBzaXplX3QgbWF4KSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fZXF1YWxfY2FzZV9tYXggVFJJT19QUk9UTygoY29uc3QgY2hhciAqZmlyc3QsIHNpemVfdCBtYXgsIGNvbnN0IGNoYXIgKnNlY29uZCkpOworI2lmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCitUUklPX1NUUklOR19QVUJMSUMgc2l6ZV90IHRyaW9fZm9ybWF0X2RhdGVfbWF4IFRSSU9fUFJPVE8oKGNoYXIgKnRhcmdldCwgc2l6ZV90IG1heCwgY29uc3QgY2hhciAqZm9ybWF0LCBjb25zdCBzdHJ1Y3QgdG0gKmRhdGV0aW1lKSk7CisjZW5kaWYKK1RSSU9fU1RSSU5HX1BVQkxJQyB1bnNpZ25lZCBsb25nIHRyaW9faGFzaCBUUklPX1BST1RPKChjb25zdCBjaGFyICpzdHJpbmcsIGludCB0eXBlKSk7CitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqdHJpb19pbmRleCBUUklPX1BST1RPKChjb25zdCBjaGFyICpzdHJpbmcsIGludCBjaGFyYWN0ZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICp0cmlvX2luZGV4X2xhc3QgVFJJT19QUk9UTygoY29uc3QgY2hhciAqc3RyaW5nLCBpbnQgY2hhcmFjdGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fbG93ZXIgVFJJT19QUk9UTygoY2hhciAqdGFyZ2V0KSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fbWF0Y2ggVFJJT19QUk9UTygoY29uc3QgY2hhciAqc3RyaW5nLCBjb25zdCBjaGFyICpwYXR0ZXJuKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fbWF0Y2hfY2FzZSBUUklPX1BST1RPKChjb25zdCBjaGFyICpzdHJpbmcsIGNvbnN0IGNoYXIgKnBhdHRlcm4pKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBzaXplX3QgdHJpb19zcGFuX2Z1bmN0aW9uIFRSSU9fUFJPVE8oKGNoYXIgKnRhcmdldCwgY29uc3QgY2hhciAqc291cmNlLCBpbnQgKCpGdW5jdGlvbikgVFJJT19QUk9UTygoaW50KSkpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICp0cmlvX3N1YnN0cmluZyBUUklPX1BST1RPKChjb25zdCBjaGFyICpzdHJpbmcsIGNvbnN0IGNoYXIgKnN1YnN0cmluZykpOworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKnRyaW9fc3Vic3RyaW5nX21heCBUUklPX1BST1RPKChjb25zdCBjaGFyICpzdHJpbmcsIHNpemVfdCBtYXgsIGNvbnN0IGNoYXIgKnN1YnN0cmluZykpOworVFJJT19TVFJJTkdfUFVCTElDIGZsb2F0IHRyaW9fdG9fZmxvYXQgVFJJT19QUk9UTygoY29uc3QgY2hhciAqc291cmNlLCBjaGFyICoqZW5kcCkpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3RvX2xvd2VyIFRSSU9fUFJPVE8oKGludCBzb3VyY2UpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyB1bnNpZ25lZCBsb25nIHRyaW9fdG9fdW5zaWduZWRfbG9uZyBUUklPX1BST1RPKChjb25zdCBjaGFyICpzb3VyY2UsIGNoYXIgKiplbmRwLCBpbnQgYmFzZSkpOworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKnRyaW9fdG9rZW5pemUgVFJJT19QUk9UTygoY2hhciAqc3RyaW5nLCBjb25zdCBjaGFyICpkZWxpbWl0ZXJzKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fdXBwZXIgVFJJT19QUk9UTygoY2hhciAqdGFyZ2V0KSk7CisKKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEeW5hbWljIHN0cmluZyBmdW5jdGlvbnMKKyAqLworCisvKgorICogT3BhcXVlIHR5cGUgZm9yIGR5bmFtaWMgc3RyaW5ncworICovCisKK3R5cGVkZWYgc3RydWN0IF90cmlvX3N0cmluZ190IHRyaW9fc3RyaW5nX3Q7CisKK1RSSU9fU1RSSU5HX1BVQkxJQyB2b2lkIHRyaW9fc3RyaW5nX2Rlc3Ryb3kgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZikpOworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKnRyaW9fc3RyaW5nX2V4dHJhY3QgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZikpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3N0cmluZ19zaXplIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyB2b2lkIHRyaW9fc3RyaW5nX3Rlcm1pbmF0ZSBUUklPX1BST1RPKCh0cmlvX3N0cmluZ190ICpzZWxmKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9feHN0cmluZ19hcHBlbmRfY2hhciBUUklPX1BST1RPKCh0cmlvX3N0cmluZ190ICpzZWxmLCBjaGFyIGNoYXJhY3RlcikpOworVFJJT19TVFJJTkdfUFVCTElDIHRyaW9fc3RyaW5nX3QgKnRyaW9feHN0cmluZ19kdXBsaWNhdGUgVFJJT19QUk9UTygoY29uc3QgY2hhciAqb3RoZXIpKTsKKworI2lmICFkZWZpbmVkKFRSSU9fTUlOSU1BTCkKKworVFJJT19TVFJJTkdfUFVCTElDIHRyaW9fc3RyaW5nX3QgKnRyaW9fc3RyaW5nX2NyZWF0ZSBUUklPX1BST1RPKChpbnQgaW5pdGlhbF9zaXplKSk7CitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqdHJpb19zdHJpbmdfZ2V0IFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIGludCBvZmZzZXQpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyB2b2lkIHRyaW9feHN0cmluZ19zZXQgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgY2hhciAqYnVmZmVyKSk7CisKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb19zdHJpbmdfYXBwZW5kIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHRyaW9fc3RyaW5nX3QgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fc3RyaW5nX2NvbnRhaW5zIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHRyaW9fc3RyaW5nX3QgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fc3RyaW5nX2NvcHkgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgdHJpb19zdHJpbmdfdCAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyB0cmlvX3N0cmluZ190ICp0cmlvX3N0cmluZ19kdXBsaWNhdGUgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb19zdHJpbmdfZXF1YWwgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgdHJpb19zdHJpbmdfdCAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb19zdHJpbmdfZXF1YWxfbWF4IFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHNpemVfdCBtYXgsIHRyaW9fc3RyaW5nX3QgKnNlY29uZCkpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3N0cmluZ19lcXVhbF9jYXNlIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHRyaW9fc3RyaW5nX3QgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fc3RyaW5nX2VxdWFsX2Nhc2VfbWF4IFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHNpemVfdCBtYXgsIHRyaW9fc3RyaW5nX3QgKm90aGVyKSk7CisjaWYgIWRlZmluZWQoX1dJTjMyX1dDRSkKK1RSSU9fU1RSSU5HX1BVQkxJQyBzaXplX3QgdHJpb19zdHJpbmdfZm9ybWF0X2RhdGVfbWF4IFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHNpemVfdCBtYXgsIGNvbnN0IGNoYXIgKmZvcm1hdCwgY29uc3Qgc3RydWN0IHRtICpkYXRldGltZSkpOworI2VuZGlmCitUUklPX1NUUklOR19QVUJMSUMgY2hhciAqdHJpb19zdHJpbmdfaW5kZXggVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgaW50IGNoYXJhY3RlcikpOworVFJJT19TVFJJTkdfUFVCTElDIGNoYXIgKnRyaW9fc3RyaW5nX2luZGV4X2xhc3QgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgaW50IGNoYXJhY3RlcikpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3N0cmluZ19sZW5ndGggVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZikpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3N0cmluZ19sb3dlciBUUklPX1BST1RPKCh0cmlvX3N0cmluZ190ICpzZWxmKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fc3RyaW5nX21hdGNoIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHRyaW9fc3RyaW5nX3QgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9fc3RyaW5nX21hdGNoX2Nhc2UgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgdHJpb19zdHJpbmdfdCAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICp0cmlvX3N0cmluZ19zdWJzdHJpbmcgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgdHJpb19zdHJpbmdfdCAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb19zdHJpbmdfdXBwZXIgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZikpOworCitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9feHN0cmluZ19hcHBlbmQgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgY29uc3QgY2hhciAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb194c3RyaW5nX2NvbnRhaW5zIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIGNvbnN0IGNoYXIgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9feHN0cmluZ19jb3B5IFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIGNvbnN0IGNoYXIgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9feHN0cmluZ19lcXVhbCBUUklPX1BST1RPKCh0cmlvX3N0cmluZ190ICpzZWxmLCBjb25zdCBjaGFyICpvdGhlcikpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3hzdHJpbmdfZXF1YWxfbWF4IFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIHNpemVfdCBtYXgsIGNvbnN0IGNoYXIgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9feHN0cmluZ19lcXVhbF9jYXNlIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIGNvbnN0IGNoYXIgKm90aGVyKSk7CitUUklPX1NUUklOR19QVUJMSUMgaW50IHRyaW9feHN0cmluZ19lcXVhbF9jYXNlX21heCBUUklPX1BST1RPKCh0cmlvX3N0cmluZ190ICpzZWxmLCBzaXplX3QgbWF4LCBjb25zdCBjaGFyICpvdGhlcikpOworVFJJT19TVFJJTkdfUFVCTElDIGludCB0cmlvX3hzdHJpbmdfbWF0Y2ggVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgY29uc3QgY2hhciAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBpbnQgdHJpb194c3RyaW5nX21hdGNoX2Nhc2UgVFJJT19QUk9UTygodHJpb19zdHJpbmdfdCAqc2VsZiwgY29uc3QgY2hhciAqb3RoZXIpKTsKK1RSSU9fU1RSSU5HX1BVQkxJQyBjaGFyICp0cmlvX3hzdHJpbmdfc3Vic3RyaW5nIFRSSU9fUFJPVE8oKHRyaW9fc3RyaW5nX3QgKnNlbGYsIGNvbnN0IGNoYXIgKm90aGVyKSk7CisKKyNlbmRpZiAvKiAhZGVmaW5lZChUUklPX01JTklNQUwpICovCisKKyNlbmRpZiAvKiBUUklPX1RSSU9TVFJfSCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy91cmkuYyBiL2xpYnhtbDItMi43LjcvdXJpLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwZTE3NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcvdXJpLmMKQEAgLTAsMCArMSwyNjMzIEBACisvKioKKyAqIHVyaS5jOiBzZXQgb2YgZ2VuZXJpYyBVUkkgcmVsYXRlZCByb3V0aW5lcyAKKyAqCisgKiBSZWZlcmVuY2U6IFJGQ3MgMzk4NiwgMjczMiBhbmQgMjM3MworICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorCitzdGF0aWMgdm9pZCB4bWxDbGVhblVSSSh4bWxVUklQdHIgdXJpKTsKKworLyoKKyAqIE9sZCBydWxlIGZyb20gMjM5NiB1c2VkIGluIGxlZ2FjeSBoYW5kbGluZyBjb2RlCisgKiBhbHBoYSAgICA9IGxvd2FscGhhIHwgdXBhbHBoYQorICovCisjZGVmaW5lIElTX0FMUEhBKHgpIChJU19MT1dBTFBIQSh4KSB8fCBJU19VUEFMUEhBKHgpKQorCisKKy8qCisgKiBsb3dhbHBoYSA9ICJhIiB8ICJiIiB8ICJjIiB8ICJkIiB8ICJlIiB8ICJmIiB8ICJnIiB8ICJoIiB8ICJpIiB8ICJqIiB8CisgKiAgICAgICAgICAgICJrIiB8ICJsIiB8ICJtIiB8ICJuIiB8ICJvIiB8ICJwIiB8ICJxIiB8ICJyIiB8ICJzIiB8ICJ0IiB8CisgKiAgICAgICAgICAgICJ1IiB8ICJ2IiB8ICJ3IiB8ICJ4IiB8ICJ5IiB8ICJ6IgorICovCisKKyNkZWZpbmUgSVNfTE9XQUxQSEEoeCkgKCgoeCkgPj0gJ2EnKSAmJiAoKHgpIDw9ICd6JykpCisKKy8qCisgKiB1cGFscGhhID0gIkEiIHwgIkIiIHwgIkMiIHwgIkQiIHwgIkUiIHwgIkYiIHwgIkciIHwgIkgiIHwgIkkiIHwgIkoiIHwKKyAqICAgICAgICAgICAiSyIgfCAiTCIgfCAiTSIgfCAiTiIgfCAiTyIgfCAiUCIgfCAiUSIgfCAiUiIgfCAiUyIgfCAiVCIgfAorICogICAgICAgICAgICJVIiB8ICJWIiB8ICJXIiB8ICJYIiB8ICJZIiB8ICJaIgorICovCisjZGVmaW5lIElTX1VQQUxQSEEoeCkgKCgoeCkgPj0gJ0EnKSAmJiAoKHgpIDw9ICdaJykpCisKKyNpZmRlZiBJU19ESUdJVAorI3VuZGVmIElTX0RJR0lUCisjZW5kaWYKKy8qCisgKiBkaWdpdCA9ICIwIiB8ICIxIiB8ICIyIiB8ICIzIiB8ICI0IiB8ICI1IiB8ICI2IiB8ICI3IiB8ICI4IiB8ICI5IgorICovCisjZGVmaW5lIElTX0RJR0lUKHgpICgoKHgpID49ICcwJykgJiYgKCh4KSA8PSAnOScpKQorCisvKgorICogYWxwaGFudW0gPSBhbHBoYSB8IGRpZ2l0CisgKi8KKworI2RlZmluZSBJU19BTFBIQU5VTSh4KSAoSVNfQUxQSEEoeCkgfHwgSVNfRElHSVQoeCkpCisKKy8qCisgKiBtYXJrID0gIi0iIHwgIl8iIHwgIi4iIHwgIiEiIHwgIn4iIHwgIioiIHwgIiciIHwgIigiIHwgIikiCisgKi8KKworI2RlZmluZSBJU19NQVJLKHgpICgoKHgpID09ICctJykgfHwgKCh4KSA9PSAnXycpIHx8ICgoeCkgPT0gJy4nKSB8fCAgICAgXAorICAgICgoeCkgPT0gJyEnKSB8fCAoKHgpID09ICd+JykgfHwgKCh4KSA9PSAnKicpIHx8ICgoeCkgPT0gJ1wnJykgfHwgICAgXAorICAgICgoeCkgPT0gJygnKSB8fCAoKHgpID09ICcpJykpCisKKy8qCisgKiB1bndpc2UgPSAieyIgfCAifSIgfCAifCIgfCAiXCIgfCAiXiIgfCAiYCIKKyAqLworCisjZGVmaW5lIElTX1VOV0lTRShwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAoKCgqKHApID09ICd7JykpIHx8ICgoKihwKSA9PSAnfScpKSB8fCAoKCoocCkgPT0gJ3wnKSkgfHwgICAgICAgICBcCisgICAgICAgKCgqKHApID09ICdcXCcpKSB8fCAoKCoocCkgPT0gJ14nKSkgfHwgKCgqKHApID09ICdbJykpIHx8ICAgICAgICBcCisgICAgICAgKCgqKHApID09ICddJykpIHx8ICgoKihwKSA9PSAnYCcpKSkKKy8qCisgKiByZXNlcnZlZCA9ICI7IiB8ICIvIiB8ICI/IiB8ICI6IiB8ICJAIiB8ICImIiB8ICI9IiB8ICIrIiB8ICIkIiB8ICIsIiB8CisgKiAgICAgICAgICAgICJbIiB8ICJdIgorICovCisKKyNkZWZpbmUgSVNfUkVTRVJWRUQoeCkgKCgoeCkgPT0gJzsnKSB8fCAoKHgpID09ICcvJykgfHwgKCh4KSA9PSAnPycpIHx8IFwKKyAgICAgICAgKCh4KSA9PSAnOicpIHx8ICgoeCkgPT0gJ0AnKSB8fCAoKHgpID09ICcmJykgfHwgKCh4KSA9PSAnPScpIHx8IFwKKyAgICAgICAgKCh4KSA9PSAnKycpIHx8ICgoeCkgPT0gJyQnKSB8fCAoKHgpID09ICcsJykgfHwgKCh4KSA9PSAnWycpIHx8IFwKKyAgICAgICAgKCh4KSA9PSAnXScpKQorCisvKgorICogdW5yZXNlcnZlZCA9IGFscGhhbnVtIHwgbWFyaworICovCisKKyNkZWZpbmUgSVNfVU5SRVNFUlZFRCh4KSAoSVNfQUxQSEFOVU0oeCkgfHwgSVNfTUFSSyh4KSkKKworLyoKKyAqIFNraXAgdG8gbmV4dCBwb2ludGVyIGNoYXIsIGhhbmRsZSBlc2NhcGVkIHNlcXVlbmNlcworICovCisKKyNkZWZpbmUgTkVYVChwKSAoKCpwID09ICclJyk/IHAgKz0gMyA6IHArKykKKworLyoKKyAqIFByb2R1Y3Rpb25zIGZyb20gdGhlIHNwZWMuCisgKgorICogICAgYXV0aG9yaXR5ICAgICA9IHNlcnZlciB8IHJlZ19uYW1lCisgKiAgICByZWdfbmFtZSAgICAgID0gMSooIHVucmVzZXJ2ZWQgfCBlc2NhcGVkIHwgIiQiIHwgIiwiIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIjsiIHwgIjoiIHwgIkAiIHwgIiYiIHwgIj0iIHwgIisiICkKKyAqCisgKiBwYXRoICAgICAgICAgID0gWyBhYnNfcGF0aCB8IG9wYXF1ZV9wYXJ0IF0KKyAqLworCisjZGVmaW5lIFNUUk5EVVAocywgbikgKGNoYXIgKikgeG1sU3RybmR1cCgoY29uc3QgeG1sQ2hhciAqKShzKSwgKG4pKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIFJGQyAzOTg2IHBhcnNlcgkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgSVNBX0RJR0lUKHApICgoKihwKSA+PSAnMCcpICYmICgqKHApIDw9ICc5JykpCisjZGVmaW5lIElTQV9BTFBIQShwKSAoKCgqKHApID49ICdhJykgJiYgKCoocCkgPD0gJ3onKSkgfHwJCVwKKyAgICAgICAgICAgICAgICAgICAgICAoKCoocCkgPj0gJ0EnKSAmJiAoKihwKSA8PSAnWicpKSkKKyNkZWZpbmUgSVNBX0hFWERJRyhwKQkJCQkJCQlcCisgICAgICAgKElTQV9ESUdJVChwKSB8fCAoKCoocCkgPj0gJ2EnKSAmJiAoKihwKSA8PSAnZicpKSB8fAkJXAorICAgICAgICAoKCoocCkgPj0gJ0EnKSAmJiAoKihwKSA8PSAnRicpKSkKKworLyoKKyAqICAgIHN1Yi1kZWxpbXMgICAgPSAiISIgLyAiJCIgLyAiJiIgLyAiJyIgLyAiKCIgLyAiKSIKKyAqICAgICAgICAgICAgICAgICAgICAgLyAiKiIgLyAiKyIgLyAiLCIgLyAiOyIgLyAiPSIKKyAqLworI2RlZmluZSBJU0FfU1VCX0RFTElNKHApCQkJCQkJXAorICAgICAgKCgoKihwKSA9PSAnIScpKSB8fCAoKCoocCkgPT0gJyQnKSkgfHwgKCgqKHApID09ICcmJykpIHx8CQlcCisgICAgICAgKCgqKHApID09ICcoJykpIHx8ICgoKihwKSA9PSAnKScpKSB8fCAoKCoocCkgPT0gJyonKSkgfHwJCVwKKyAgICAgICAoKCoocCkgPT0gJysnKSkgfHwgKCgqKHApID09ICcsJykpIHx8ICgoKihwKSA9PSAnOycpKSB8fAkJXAorICAgICAgICgoKihwKSA9PSAnPScpKSkKKworLyoKKyAqICAgIGdlbi1kZWxpbXMgICAgPSAiOiIgLyAiLyIgLyAiPyIgLyAiIyIgLyAiWyIgLyAiXSIgLyAiQCIKKyAqLworI2RlZmluZSBJU0FfR0VOX0RFTElNKHApCQkJCQkJXAorICAgICAgKCgoKihwKSA9PSAnOicpKSB8fCAoKCoocCkgPT0gJy8nKSkgfHwgKCgqKHApID09ICc/JykpIHx8ICAgICAgICAgXAorICAgICAgICgoKihwKSA9PSAnIycpKSB8fCAoKCoocCkgPT0gJ1snKSkgfHwgKCgqKHApID09ICddJykpIHx8ICAgICAgICAgXAorICAgICAgICgoKihwKSA9PSAnQCcpKSkKKworLyoKKyAqICAgIHJlc2VydmVkICAgICAgPSBnZW4tZGVsaW1zIC8gc3ViLWRlbGltcworICovCisjZGVmaW5lIElTQV9SRVNFUlZFRChwKSAoSVNBX0dFTl9ERUxJTShwKSB8fCAoSVNBX1NVQl9ERUxJTShwKSkpCisKKy8qCisgKiAgICB1bnJlc2VydmVkICAgID0gQUxQSEEgLyBESUdJVCAvICItIiAvICIuIiAvICJfIiAvICJ+IgorICovCisjZGVmaW5lIElTQV9VTlJFU0VSVkVEKHApCQkJCQkJXAorICAgICAgKChJU0FfQUxQSEEocCkpIHx8IChJU0FfRElHSVQocCkpIHx8ICgoKihwKSA9PSAnLScpKSB8fAkJXAorICAgICAgICgoKihwKSA9PSAnLicpKSB8fCAoKCoocCkgPT0gJ18nKSkgfHwgKCgqKHApID09ICd+JykpKQorCisvKgorICogICAgcGN0LWVuY29kZWQgICA9ICIlIiBIRVhESUcgSEVYRElHCisgKi8KKyNkZWZpbmUgSVNBX1BDVF9FTkNPREVEKHApCQkJCQkJXAorICAgICAoKCoocCkgPT0gJyUnKSAmJiAoSVNBX0hFWERJRyhwICsgMSkpICYmIChJU0FfSEVYRElHKHAgKyAyKSkpCisKKy8qCisgKiAgICBwY2hhciAgICAgICAgID0gdW5yZXNlcnZlZCAvIHBjdC1lbmNvZGVkIC8gc3ViLWRlbGltcyAvICI6IiAvICJAIgorICovCisjZGVmaW5lIElTQV9QQ0hBUihwKQkJCQkJCQlcCisgICAgIChJU0FfVU5SRVNFUlZFRChwKSB8fCBJU0FfUENUX0VOQ09ERUQocCkgfHwgSVNBX1NVQl9ERUxJTShwKSB8fAlcCisgICAgICAoKCoocCkgPT0gJzonKSkgfHwgKCgqKHApID09ICdAJykpKQorCisvKioKKyAqIHhtbFBhcnNlMzk4NlNjaGVtZToKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICBwb2ludGVyIHRvIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlIGFuIFVSSSBzY2hlbWUKKyAqCisgKiBBTFBIQSAqKCBBTFBIQSAvIERJR0lUIC8gIisiIC8gIi0iIC8gIi4iICkKKyAqCisgKiBSZXR1cm5zIDAgb3IgdGhlIGVycm9yIGNvZGUKKyAqLworc3RhdGljIGludAoreG1sUGFyc2UzOTg2U2NoZW1lKHhtbFVSSVB0ciB1cmksIGNvbnN0IGNoYXIgKipzdHIpIHsKKyAgICBjb25zdCBjaGFyICpjdXI7CisKKyAgICBpZiAoc3RyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKworICAgIGN1ciA9ICpzdHI7CisgICAgaWYgKCFJU0FfQUxQSEEoY3VyKSkKKwlyZXR1cm4oMik7CisgICAgY3VyKys7CisgICAgd2hpbGUgKElTQV9BTFBIQShjdXIpIHx8IElTQV9ESUdJVChjdXIpIHx8CisgICAgICAgICAgICgqY3VyID09ICcrJykgfHwgKCpjdXIgPT0gJy0nKSB8fCAoKmN1ciA9PSAnLicpKSBjdXIrKzsKKyAgICBpZiAodXJpICE9IE5VTEwpIHsKKwlpZiAodXJpLT5zY2hlbWUgIT0gTlVMTCkgeG1sRnJlZSh1cmktPnNjaGVtZSk7CisJdXJpLT5zY2hlbWUgPSBTVFJORFVQKCpzdHIsIGN1ciAtICpzdHIpOworICAgIH0KKyAgICAqc3RyID0gY3VyOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxQYXJzZTM5ODZGcmFnbWVudDoKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICBwb2ludGVyIHRvIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlIHRoZSBxdWVyeSBwYXJ0IG9mIGFuIFVSSQorICoKKyAqIGZyYWdtZW50ICAgICAgPSAqKCBwY2hhciAvICIvIiAvICI/IiApCisgKiBOT1RFOiB0aGUgc3RyaWN0IHN5bnRheCBhcyBkZWZpbmVkIGJ5IDM5ODYgZG9lcyBub3QgYWxsb3cgJ1snIGFuZCAnXScKKyAqICAgICAgIGluIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyIGJ1dCB0aGlzIGlzIHVzZWQgdmVyeSBicm9hZGx5IGZvcgorICogICAgICAgeHBvaW50ZXIgc2NoZW1lIHNlbGVjdGlvbiwgc28gd2UgYXJlIGFsbG93aW5nIGl0IGhlcmUgdG8gbm90IGJyZWFrCisgKiAgICAgICBmb3IgZXhhbXBsZSBhbGwgdGhlIERvY0Jvb2sgcHJvY2Vzc2luZyBjaGFpbnMuCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK3htbFBhcnNlMzk4NkZyYWdtZW50KHhtbFVSSVB0ciB1cmksIGNvbnN0IGNoYXIgKipzdHIpCit7CisgICAgY29uc3QgY2hhciAqY3VyOworCisgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIGN1ciA9ICpzdHI7CisKKyAgICB3aGlsZSAoKElTQV9QQ0hBUihjdXIpKSB8fCAoKmN1ciA9PSAnLycpIHx8ICgqY3VyID09ICc/JykgfHwKKyAgICAgICAgICAgKCpjdXIgPT0gJ1snKSB8fCAoKmN1ciA9PSAnXScpIHx8CisgICAgICAgICAgICgodXJpICE9IE5VTEwpICYmICh1cmktPmNsZWFudXAgJiAxKSAmJiAoSVNfVU5XSVNFKGN1cikpKSkKKyAgICAgICAgTkVYVChjdXIpOworICAgIGlmICh1cmkgIT0gTlVMTCkgeworICAgICAgICBpZiAodXJpLT5mcmFnbWVudCAhPSBOVUxMKQorICAgICAgICAgICAgeG1sRnJlZSh1cmktPmZyYWdtZW50KTsKKwlpZiAodXJpLT5jbGVhbnVwICYgMikKKwkgICAgdXJpLT5mcmFnbWVudCA9IFNUUk5EVVAoKnN0ciwgY3VyIC0gKnN0cik7CisJZWxzZQorCSAgICB1cmktPmZyYWdtZW50ID0geG1sVVJJVW5lc2NhcGVTdHJpbmcoKnN0ciwgY3VyIC0gKnN0ciwgTlVMTCk7CisgICAgfQorICAgICpzdHIgPSBjdXI7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxQYXJzZTM5ODZRdWVyeToKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICBwb2ludGVyIHRvIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlIHRoZSBxdWVyeSBwYXJ0IG9mIGFuIFVSSQorICoKKyAqIHF1ZXJ5ID0gKnVyaWMKKyAqCisgKiBSZXR1cm5zIDAgb3IgdGhlIGVycm9yIGNvZGUKKyAqLworc3RhdGljIGludAoreG1sUGFyc2UzOTg2UXVlcnkoeG1sVVJJUHRyIHVyaSwgY29uc3QgY2hhciAqKnN0cikKK3sKKyAgICBjb25zdCBjaGFyICpjdXI7CisKKyAgICBpZiAoc3RyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgY3VyID0gKnN0cjsKKworICAgIHdoaWxlICgoSVNBX1BDSEFSKGN1cikpIHx8ICgqY3VyID09ICcvJykgfHwgKCpjdXIgPT0gJz8nKSB8fAorICAgICAgICAgICAoKHVyaSAhPSBOVUxMKSAmJiAodXJpLT5jbGVhbnVwICYgMSkgJiYgKElTX1VOV0lTRShjdXIpKSkpCisgICAgICAgIE5FWFQoY3VyKTsKKyAgICBpZiAodXJpICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHVyaS0+cXVlcnkgIT0gTlVMTCkKKyAgICAgICAgICAgIHhtbEZyZWUodXJpLT5xdWVyeSk7CisJaWYgKHVyaS0+Y2xlYW51cCAmIDIpCisJICAgIHVyaS0+cXVlcnkgPSBTVFJORFVQKCpzdHIsIGN1ciAtICpzdHIpOworCWVsc2UKKwkgICAgdXJpLT5xdWVyeSA9IHhtbFVSSVVuZXNjYXBlU3RyaW5nKCpzdHIsIGN1ciAtICpzdHIsIE5VTEwpOworCisJLyogU2F2ZSB0aGUgcmF3IGJ5dGVzIG9mIHRoZSBxdWVyeSBhcyB3ZWxsLgorCSAqIFNlZTogaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8yMDA3LUFwcmlsL3RocmVhZC5odG1sIzAwMTE0CisJICovCisJaWYgKHVyaS0+cXVlcnlfcmF3ICE9IE5VTEwpCisJICAgIHhtbEZyZWUgKHVyaS0+cXVlcnlfcmF3KTsKKwl1cmktPnF1ZXJ5X3JhdyA9IFNUUk5EVVAgKCpzdHIsIGN1ciAtICpzdHIpOworICAgIH0KKyAgICAqc3RyID0gY3VyOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sUGFyc2UzOTg2UG9ydDoKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZSBhIHBvcnQgIHBhcnQgYW5kIGZpbGxzIGluIHRoZSBhcHByb3ByaWF0ZSBmaWVsZHMKKyAqIG9mIHRoZSBAdXJpIHN0cnVjdHVyZQorICoKKyAqIHBvcnQgICAgICAgICAgPSAqRElHSVQKKyAqCisgKiBSZXR1cm5zIDAgb3IgdGhlIGVycm9yIGNvZGUKKyAqLworc3RhdGljIGludAoreG1sUGFyc2UzOTg2UG9ydCh4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICoqc3RyKQoreworICAgIGNvbnN0IGNoYXIgKmN1ciA9ICpzdHI7CisKKyAgICBpZiAoSVNBX0RJR0lUKGN1cikpIHsKKwlpZiAodXJpICE9IE5VTEwpCisJICAgIHVyaS0+cG9ydCA9IDA7CisJd2hpbGUgKElTQV9ESUdJVChjdXIpKSB7CisJICAgIGlmICh1cmkgIT0gTlVMTCkKKwkJdXJpLT5wb3J0ID0gdXJpLT5wb3J0ICogMTAgKyAoKmN1ciAtICcwJyk7CisJICAgIGN1cisrOworCX0KKwkqc3RyID0gY3VyOworCXJldHVybigwKTsKKyAgICB9CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFBhcnNlMzk4NlVzZXJpbmZvOgorICogQHVyaTogIHBvaW50ZXIgdG8gYW4gVVJJIHN0cnVjdHVyZQorICogQHN0cjogIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlIGFuIHVzZXIgaW5mb3JtYXRpb25zIHBhcnQgYW5kIGZpbGxzIGluIHRoZSBhcHByb3ByaWF0ZSBmaWVsZHMKKyAqIG9mIHRoZSBAdXJpIHN0cnVjdHVyZQorICoKKyAqIHVzZXJpbmZvICAgICAgPSAqKCB1bnJlc2VydmVkIC8gcGN0LWVuY29kZWQgLyBzdWItZGVsaW1zIC8gIjoiICkKKyAqCisgKiBSZXR1cm5zIDAgb3IgdGhlIGVycm9yIGNvZGUKKyAqLworc3RhdGljIGludAoreG1sUGFyc2UzOTg2VXNlcmluZm8oeG1sVVJJUHRyIHVyaSwgY29uc3QgY2hhciAqKnN0cikKK3sKKyAgICBjb25zdCBjaGFyICpjdXI7CisKKyAgICBjdXIgPSAqc3RyOworICAgIHdoaWxlIChJU0FfVU5SRVNFUlZFRChjdXIpIHx8IElTQV9QQ1RfRU5DT0RFRChjdXIpIHx8CisgICAgICAgICAgIElTQV9TVUJfREVMSU0oY3VyKSB8fCAoKmN1ciA9PSAnOicpKQorCU5FWFQoY3VyKTsKKyAgICBpZiAoKmN1ciA9PSAnQCcpIHsKKwlpZiAodXJpICE9IE5VTEwpIHsKKwkgICAgaWYgKHVyaS0+dXNlciAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+dXNlcik7CisJICAgIGlmICh1cmktPmNsZWFudXAgJiAyKQorCQl1cmktPnVzZXIgPSBTVFJORFVQKCpzdHIsIGN1ciAtICpzdHIpOworCSAgICBlbHNlCisJCXVyaS0+dXNlciA9IHhtbFVSSVVuZXNjYXBlU3RyaW5nKCpzdHIsIGN1ciAtICpzdHIsIE5VTEwpOworCX0KKwkqc3RyID0gY3VyOworCXJldHVybigwKTsKKyAgICB9CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFBhcnNlMzk4NkRlY09jdGV0OgorICogQHN0cjogIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqICAgIGRlYy1vY3RldCAgICAgPSBESUdJVCAgICAgICAgICAgICAgICAgOyAwLTkKKyAqICAgICAgICAgICAgICAgICAgLyAleDMxLTM5IERJR0lUICAgICAgICAgOyAxMC05OQorICogICAgICAgICAgICAgICAgICAvICIxIiAyRElHSVQgICAgICAgICAgICA7IDEwMC0xOTkKKyAqICAgICAgICAgICAgICAgICAgLyAiMiIgJXgzMC0zNCBESUdJVCAgICAgOyAyMDAtMjQ5CisgKiAgICAgICAgICAgICAgICAgIC8gIjI1IiAleDMwLTM1ICAgICAgICAgIDsgMjUwLTI1NQorICoKKyAqIFNraXAgYSBkZWMtb2N0ZXQuCisgKgorICogUmV0dXJucyAwIGlmIGZvdW5kIGFuZCBza2lwcGVkLCAxIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxQYXJzZTM5ODZEZWNPY3RldChjb25zdCBjaGFyICoqc3RyKSB7CisgICAgY29uc3QgY2hhciAqY3VyID0gKnN0cjsKKworICAgIGlmICghKElTQV9ESUdJVChjdXIpKSkKKyAgICAgICAgcmV0dXJuKDEpOworICAgIGlmICghSVNBX0RJR0lUKGN1cisxKSkKKwljdXIrKzsKKyAgICBlbHNlIGlmICgoKmN1ciAhPSAnMCcpICYmIChJU0FfRElHSVQoY3VyICsgMSkpICYmICghSVNBX0RJR0lUKGN1cisyKSkpCisJY3VyICs9IDI7CisgICAgZWxzZSBpZiAoKCpjdXIgPT0gJzEnKSAmJiAoSVNBX0RJR0lUKGN1ciArIDEpKSAmJiAoSVNBX0RJR0lUKGN1ciArIDIpKSkKKwljdXIgKz0gMzsKKyAgICBlbHNlIGlmICgoKmN1ciA9PSAnMicpICYmICgqKGN1ciArIDEpID49ICcwJykgJiYKKwkgICAgICgqKGN1ciArIDEpIDw9ICc0JykgJiYgKElTQV9ESUdJVChjdXIgKyAyKSkpCisJY3VyICs9IDM7CisgICAgZWxzZSBpZiAoKCpjdXIgPT0gJzInKSAmJiAoKihjdXIgKyAxKSA9PSAnNScpICYmCisJICAgICAoKihjdXIgKyAyKSA+PSAnMCcpICYmICgqKGN1ciArIDEpIDw9ICc1JykpCisJY3VyICs9IDM7CisgICAgZWxzZQorICAgICAgICByZXR1cm4oMSk7CisgICAgKnN0ciA9IGN1cjsKKyAgICByZXR1cm4oMCk7Cit9CisvKioKKyAqIHhtbFBhcnNlMzk4Nkhvc3Q6CisgKiBAdXJpOiAgcG9pbnRlciB0byBhbiBVUkkgc3RydWN0dXJlCisgKiBAc3RyOiAgdGhlIHN0cmluZyB0byBhbmFseXplCisgKgorICogUGFyc2UgYW4gaG9zdCBwYXJ0IGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGRzCisgKiBvZiB0aGUgQHVyaSBzdHJ1Y3R1cmUKKyAqCisgKiBob3N0ICAgICAgICAgID0gSVAtbGl0ZXJhbCAvIElQdjRhZGRyZXNzIC8gcmVnLW5hbWUKKyAqIElQLWxpdGVyYWwgICAgPSAiWyIgKCBJUHY2YWRkcmVzcyAvIElQdkZ1dHVyZSAgKSAiXSIKKyAqIElQdjRhZGRyZXNzICAgPSBkZWMtb2N0ZXQgIi4iIGRlYy1vY3RldCAiLiIgZGVjLW9jdGV0ICIuIiBkZWMtb2N0ZXQKKyAqIHJlZy1uYW1lICAgICAgPSAqKCB1bnJlc2VydmVkIC8gcGN0LWVuY29kZWQgLyBzdWItZGVsaW1zICkKKyAqCisgKiBSZXR1cm5zIDAgb3IgdGhlIGVycm9yIGNvZGUKKyAqLworc3RhdGljIGludAoreG1sUGFyc2UzOTg2SG9zdCh4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICoqc3RyKQoreworICAgIGNvbnN0IGNoYXIgKmN1ciA9ICpzdHI7CisgICAgY29uc3QgY2hhciAqaG9zdDsKKworICAgIGhvc3QgPSBjdXI7CisgICAgLyoKKyAgICAgKiBJUHY2IGFuZCBmdXR1cmUgYWRyZXNzaW5nIHNjaGVtZSBhcmUgZW5jbG9zZWQgYmV0d2VlbiBicmFja2V0cworICAgICAqLworICAgIGlmICgqY3VyID09ICdbJykgeworICAgICAgICBjdXIrKzsKKwl3aGlsZSAoKCpjdXIgIT0gJ10nKSAmJiAoKmN1ciAhPSAwKSkKKwkgICAgY3VyKys7CisJaWYgKCpjdXIgIT0gJ10nKQorCSAgICByZXR1cm4oMSk7CisJY3VyKys7CisJZ290byBmb3VuZDsKKyAgICB9CisgICAgLyoKKyAgICAgKiB0cnkgdG8gcGFyc2UgYW4gSVB2NAorICAgICAqLworICAgIGlmIChJU0FfRElHSVQoY3VyKSkgeworICAgICAgICBpZiAoeG1sUGFyc2UzOTg2RGVjT2N0ZXQoJmN1cikgIT0gMCkKKwkgICAgZ290byBub3RfaXB2NDsKKwlpZiAoKmN1ciAhPSAnLicpCisJICAgIGdvdG8gbm90X2lwdjQ7CisJY3VyKys7CisgICAgICAgIGlmICh4bWxQYXJzZTM5ODZEZWNPY3RldCgmY3VyKSAhPSAwKQorCSAgICBnb3RvIG5vdF9pcHY0OworCWlmICgqY3VyICE9ICcuJykKKwkgICAgZ290byBub3RfaXB2NDsKKyAgICAgICAgaWYgKHhtbFBhcnNlMzk4NkRlY09jdGV0KCZjdXIpICE9IDApCisJICAgIGdvdG8gbm90X2lwdjQ7CisJaWYgKCpjdXIgIT0gJy4nKQorCSAgICBnb3RvIG5vdF9pcHY0OworICAgICAgICBpZiAoeG1sUGFyc2UzOTg2RGVjT2N0ZXQoJmN1cikgIT0gMCkKKwkgICAgZ290byBub3RfaXB2NDsKKwlnb3RvIGZvdW5kOworbm90X2lwdjQ6CisgICAgICAgIGN1ciA9ICpzdHI7CisgICAgfQorICAgIC8qCisgICAgICogdGhlbiB0aGlzIHNob3VsZCBiZSBhIGhvc3RuYW1lIHdoaWNoIGNhbiBiZSBlbXB0eQorICAgICAqLworICAgIHdoaWxlIChJU0FfVU5SRVNFUlZFRChjdXIpIHx8IElTQV9QQ1RfRU5DT0RFRChjdXIpIHx8IElTQV9TVUJfREVMSU0oY3VyKSkKKyAgICAgICAgTkVYVChjdXIpOworZm91bmQ6CisgICAgaWYgKHVyaSAhPSBOVUxMKSB7CisJaWYgKHVyaS0+YXV0aG9yaXR5ICE9IE5VTEwpIHhtbEZyZWUodXJpLT5hdXRob3JpdHkpOworCXVyaS0+YXV0aG9yaXR5ID0gTlVMTDsKKwlpZiAodXJpLT5zZXJ2ZXIgIT0gTlVMTCkgeG1sRnJlZSh1cmktPnNlcnZlcik7CisJaWYgKGN1ciAhPSBob3N0KSB7CisJICAgIGlmICh1cmktPmNsZWFudXAgJiAyKQorCQl1cmktPnNlcnZlciA9IFNUUk5EVVAoaG9zdCwgY3VyIC0gaG9zdCk7CisJICAgIGVsc2UKKwkJdXJpLT5zZXJ2ZXIgPSB4bWxVUklVbmVzY2FwZVN0cmluZyhob3N0LCBjdXIgLSBob3N0LCBOVUxMKTsKKwl9IGVsc2UKKwkgICAgdXJpLT5zZXJ2ZXIgPSBOVUxMOworICAgIH0KKyAgICAqc3RyID0gY3VyOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxQYXJzZTM5ODZBdXRob3JpdHk6CisgKiBAdXJpOiAgcG9pbnRlciB0byBhbiBVUkkgc3RydWN0dXJlCisgKiBAc3RyOiAgdGhlIHN0cmluZyB0byBhbmFseXplCisgKgorICogUGFyc2UgYW4gYXV0aG9yaXR5IHBhcnQgYW5kIGZpbGxzIGluIHRoZSBhcHByb3ByaWF0ZSBmaWVsZHMKKyAqIG9mIHRoZSBAdXJpIHN0cnVjdHVyZQorICoKKyAqIGF1dGhvcml0eSAgICAgPSBbIHVzZXJpbmZvICJAIiBdIGhvc3QgWyAiOiIgcG9ydCBdCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK3htbFBhcnNlMzk4NkF1dGhvcml0eSh4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICoqc3RyKQoreworICAgIGNvbnN0IGNoYXIgKmN1cjsKKyAgICBpbnQgcmV0OworCisgICAgY3VyID0gKnN0cjsKKyAgICAvKgorICAgICAqIHRyeSB0byBwYXJzZSBhbiB1c2VyaW5mbyBhbmQgY2hlY2sgZm9yIHRoZSB0cmFpbGluZyBACisgICAgICovCisgICAgcmV0ID0geG1sUGFyc2UzOTg2VXNlcmluZm8odXJpLCAmY3VyKTsKKyAgICBpZiAoKHJldCAhPSAwKSB8fCAoKmN1ciAhPSAnQCcpKQorICAgICAgICBjdXIgPSAqc3RyOworICAgIGVsc2UKKyAgICAgICAgY3VyKys7CisgICAgcmV0ID0geG1sUGFyc2UzOTg2SG9zdCh1cmksICZjdXIpOworICAgIGlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisgICAgaWYgKCpjdXIgPT0gJzonKSB7CisgICAgICAgIGN1cisrOworICAgICAgICByZXQgPSB4bWxQYXJzZTM5ODZQb3J0KHVyaSwgJmN1cik7CisJaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB9CisgICAgKnN0ciA9IGN1cjsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUGFyc2UzOTg2U2VnbWVudDoKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqIEBmb3JiaWQ6IGFuIG9wdGlvbmFsIGZvcmJpZGRlbiBjaGFyYWN0ZXIKKyAqIEBlbXB0eTogYWxsb3cgYW4gZW1wdHkgc2VnbWVudAorICoKKyAqIFBhcnNlIGEgc2VnbWVudCBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcworICogb2YgdGhlIEB1cmkgc3RydWN0dXJlCisgKgorICogc2VnbWVudCAgICAgICA9ICpwY2hhcgorICogc2VnbWVudC1ueiAgICA9IDEqcGNoYXIKKyAqIHNlZ21lbnQtbnotbmMgPSAxKiggdW5yZXNlcnZlZCAvIHBjdC1lbmNvZGVkIC8gc3ViLWRlbGltcyAvICJAIiApCisgKiAgICAgICAgICAgICAgIDsgbm9uLXplcm8tbGVuZ3RoIHNlZ21lbnQgd2l0aG91dCBhbnkgY29sb24gIjoiCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK3htbFBhcnNlMzk4NlNlZ21lbnQoY29uc3QgY2hhciAqKnN0ciwgY2hhciBmb3JiaWQsIGludCBlbXB0eSkKK3sKKyAgICBjb25zdCBjaGFyICpjdXI7CisKKyAgICBjdXIgPSAqc3RyOworICAgIGlmICghSVNBX1BDSEFSKGN1cikpIHsKKyAgICAgICAgaWYgKGVtcHR5KQorCSAgICByZXR1cm4oMCk7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICB3aGlsZSAoSVNBX1BDSEFSKGN1cikgJiYgKCpjdXIgIT0gZm9yYmlkKSkKKyAgICAgICAgTkVYVChjdXIpOworICAgICpzdHIgPSBjdXI7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxQYXJzZTM5ODZQYXRoQWJFbXB0eToKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZSBhbiBwYXRoIGFic29sdXRlIG9yIGVtcHR5IGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGRzCisgKiBvZiB0aGUgQHVyaSBzdHJ1Y3R1cmUKKyAqCisgKiBwYXRoLWFiZW1wdHkgID0gKiggIi8iIHNlZ21lbnQgKQorICoKKyAqIFJldHVybnMgMCBvciB0aGUgZXJyb3IgY29kZQorICovCitzdGF0aWMgaW50Cit4bWxQYXJzZTM5ODZQYXRoQWJFbXB0eSh4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICoqc3RyKQoreworICAgIGNvbnN0IGNoYXIgKmN1cjsKKyAgICBpbnQgcmV0OworCisgICAgY3VyID0gKnN0cjsKKworICAgIHdoaWxlICgqY3VyID09ICcvJykgeworICAgICAgICBjdXIrKzsKKwlyZXQgPSB4bWxQYXJzZTM5ODZTZWdtZW50KCZjdXIsIDAsIDEpOworCWlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisgICAgfQorICAgIGlmICh1cmkgIT0gTlVMTCkgeworCWlmICh1cmktPnBhdGggIT0gTlVMTCkgeG1sRnJlZSh1cmktPnBhdGgpOworICAgICAgICBpZiAoKnN0ciAhPSBjdXIpIHsKKyAgICAgICAgICAgIGlmICh1cmktPmNsZWFudXAgJiAyKQorICAgICAgICAgICAgICAgIHVyaS0+cGF0aCA9IFNUUk5EVVAoKnN0ciwgY3VyIC0gKnN0cik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdXJpLT5wYXRoID0geG1sVVJJVW5lc2NhcGVTdHJpbmcoKnN0ciwgY3VyIC0gKnN0ciwgTlVMTCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB1cmktPnBhdGggPSBOVUxMOworICAgICAgICB9CisgICAgfQorICAgICpzdHIgPSBjdXI7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxQYXJzZTM5ODZQYXRoQWJzb2x1dGU6CisgKiBAdXJpOiAgcG9pbnRlciB0byBhbiBVUkkgc3RydWN0dXJlCisgKiBAc3RyOiAgdGhlIHN0cmluZyB0byBhbmFseXplCisgKgorICogUGFyc2UgYW4gcGF0aCBhYnNvbHV0ZSBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcworICogb2YgdGhlIEB1cmkgc3RydWN0dXJlCisgKgorICogcGF0aC1hYnNvbHV0ZSA9ICIvIiBbIHNlZ21lbnQtbnogKiggIi8iIHNlZ21lbnQgKSBdCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK3htbFBhcnNlMzk4NlBhdGhBYnNvbHV0ZSh4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICoqc3RyKQoreworICAgIGNvbnN0IGNoYXIgKmN1cjsKKyAgICBpbnQgcmV0OworCisgICAgY3VyID0gKnN0cjsKKworICAgIGlmICgqY3VyICE9ICcvJykKKyAgICAgICAgcmV0dXJuKDEpOworICAgIGN1cisrOworICAgIHJldCA9IHhtbFBhcnNlMzk4NlNlZ21lbnQoJmN1ciwgMCwgMCk7CisgICAgaWYgKHJldCA9PSAwKSB7CisJd2hpbGUgKCpjdXIgPT0gJy8nKSB7CisJICAgIGN1cisrOworCSAgICByZXQgPSB4bWxQYXJzZTM5ODZTZWdtZW50KCZjdXIsIDAsIDEpOworCSAgICBpZiAocmV0ICE9IDApIHJldHVybihyZXQpOworCX0KKyAgICB9CisgICAgaWYgKHVyaSAhPSBOVUxMKSB7CisJaWYgKHVyaS0+cGF0aCAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+cGF0aCk7CisgICAgICAgIGlmIChjdXIgIT0gKnN0cikgeworICAgICAgICAgICAgaWYgKHVyaS0+Y2xlYW51cCAmIDIpCisgICAgICAgICAgICAgICAgdXJpLT5wYXRoID0gU1RSTkRVUCgqc3RyLCBjdXIgLSAqc3RyKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1cmktPnBhdGggPSB4bWxVUklVbmVzY2FwZVN0cmluZygqc3RyLCBjdXIgLSAqc3RyLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHVyaS0+cGF0aCA9IE5VTEw7CisgICAgICAgIH0KKyAgICB9CisgICAgKnN0ciA9IGN1cjsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFBhcnNlMzk4NlBhdGhSb290bGVzczoKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZSBhbiBwYXRoIHdpdGhvdXQgcm9vdCBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcworICogb2YgdGhlIEB1cmkgc3RydWN0dXJlCisgKgorICogcGF0aC1yb290bGVzcyA9IHNlZ21lbnQtbnogKiggIi8iIHNlZ21lbnQgKQorICoKKyAqIFJldHVybnMgMCBvciB0aGUgZXJyb3IgY29kZQorICovCitzdGF0aWMgaW50Cit4bWxQYXJzZTM5ODZQYXRoUm9vdGxlc3MoeG1sVVJJUHRyIHVyaSwgY29uc3QgY2hhciAqKnN0cikKK3sKKyAgICBjb25zdCBjaGFyICpjdXI7CisgICAgaW50IHJldDsKKworICAgIGN1ciA9ICpzdHI7CisKKyAgICByZXQgPSB4bWxQYXJzZTM5ODZTZWdtZW50KCZjdXIsIDAsIDApOworICAgIGlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisgICAgd2hpbGUgKCpjdXIgPT0gJy8nKSB7CisgICAgICAgIGN1cisrOworCXJldCA9IHhtbFBhcnNlMzk4NlNlZ21lbnQoJmN1ciwgMCwgMSk7CisJaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB9CisgICAgaWYgKHVyaSAhPSBOVUxMKSB7CisJaWYgKHVyaS0+cGF0aCAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+cGF0aCk7CisgICAgICAgIGlmIChjdXIgIT0gKnN0cikgeworICAgICAgICAgICAgaWYgKHVyaS0+Y2xlYW51cCAmIDIpCisgICAgICAgICAgICAgICAgdXJpLT5wYXRoID0gU1RSTkRVUCgqc3RyLCBjdXIgLSAqc3RyKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1cmktPnBhdGggPSB4bWxVUklVbmVzY2FwZVN0cmluZygqc3RyLCBjdXIgLSAqc3RyLCBOVUxMKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHVyaS0+cGF0aCA9IE5VTEw7CisgICAgICAgIH0KKyAgICB9CisgICAgKnN0ciA9IGN1cjsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFBhcnNlMzk4NlBhdGhOb1NjaGVtZToKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZSBhbiBwYXRoIHdoaWNoIGlzIG5vdCBhIHNjaGVtZSBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcworICogb2YgdGhlIEB1cmkgc3RydWN0dXJlCisgKgorICogcGF0aC1ub3NjaGVtZSA9IHNlZ21lbnQtbnotbmMgKiggIi8iIHNlZ21lbnQgKQorICoKKyAqIFJldHVybnMgMCBvciB0aGUgZXJyb3IgY29kZQorICovCitzdGF0aWMgaW50Cit4bWxQYXJzZTM5ODZQYXRoTm9TY2hlbWUoeG1sVVJJUHRyIHVyaSwgY29uc3QgY2hhciAqKnN0cikKK3sKKyAgICBjb25zdCBjaGFyICpjdXI7CisgICAgaW50IHJldDsKKworICAgIGN1ciA9ICpzdHI7CisKKyAgICByZXQgPSB4bWxQYXJzZTM5ODZTZWdtZW50KCZjdXIsICc6JywgMCk7CisgICAgaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB3aGlsZSAoKmN1ciA9PSAnLycpIHsKKyAgICAgICAgY3VyKys7CisJcmV0ID0geG1sUGFyc2UzOTg2U2VnbWVudCgmY3VyLCAwLCAxKTsKKwlpZiAocmV0ICE9IDApIHJldHVybihyZXQpOworICAgIH0KKyAgICBpZiAodXJpICE9IE5VTEwpIHsKKwlpZiAodXJpLT5wYXRoICE9IE5VTEwpIHhtbEZyZWUodXJpLT5wYXRoKTsKKyAgICAgICAgaWYgKGN1ciAhPSAqc3RyKSB7CisgICAgICAgICAgICBpZiAodXJpLT5jbGVhbnVwICYgMikKKyAgICAgICAgICAgICAgICB1cmktPnBhdGggPSBTVFJORFVQKCpzdHIsIGN1ciAtICpzdHIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHVyaS0+cGF0aCA9IHhtbFVSSVVuZXNjYXBlU3RyaW5nKCpzdHIsIGN1ciAtICpzdHIsIE5VTEwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdXJpLT5wYXRoID0gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKyAgICAqc3RyID0gY3VyOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sUGFyc2UzOTg2SGllclBhcnQ6CisgKiBAdXJpOiAgcG9pbnRlciB0byBhbiBVUkkgc3RydWN0dXJlCisgKiBAc3RyOiAgdGhlIHN0cmluZyB0byBhbmFseXplCisgKgorICogUGFyc2UgYW4gaGllcmFyY2hpY2FsIHBhcnQgYW5kIGZpbGxzIGluIHRoZSBhcHByb3ByaWF0ZSBmaWVsZHMKKyAqIG9mIHRoZSBAdXJpIHN0cnVjdHVyZQorICoKKyAqIGhpZXItcGFydCAgICAgPSAiLy8iIGF1dGhvcml0eSBwYXRoLWFiZW1wdHkKKyAqICAgICAgICAgICAgICAgIC8gcGF0aC1hYnNvbHV0ZQorICogICAgICAgICAgICAgICAgLyBwYXRoLXJvb3RsZXNzCisgKiAgICAgICAgICAgICAgICAvIHBhdGgtZW1wdHkKKyAqCisgKiBSZXR1cm5zIDAgb3IgdGhlIGVycm9yIGNvZGUKKyAqLworc3RhdGljIGludAoreG1sUGFyc2UzOTg2SGllclBhcnQoeG1sVVJJUHRyIHVyaSwgY29uc3QgY2hhciAqKnN0cikKK3sKKyAgICBjb25zdCBjaGFyICpjdXI7CisgICAgaW50IHJldDsKKworICAgIGN1ciA9ICpzdHI7CisKKyAgICBpZiAoKCpjdXIgPT0gJy8nKSAmJiAoKihjdXIgKyAxKSA9PSAnLycpKSB7CisgICAgICAgIGN1ciArPSAyOworCXJldCA9IHhtbFBhcnNlMzk4NkF1dGhvcml0eSh1cmksICZjdXIpOworCWlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisJcmV0ID0geG1sUGFyc2UzOTg2UGF0aEFiRW1wdHkodXJpLCAmY3VyKTsKKwlpZiAocmV0ICE9IDApIHJldHVybihyZXQpOworCSpzdHIgPSBjdXI7CisJcmV0dXJuKDApOworICAgIH0gZWxzZSBpZiAoKmN1ciA9PSAnLycpIHsKKyAgICAgICAgcmV0ID0geG1sUGFyc2UzOTg2UGF0aEFic29sdXRlKHVyaSwgJmN1cik7CisJaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB9IGVsc2UgaWYgKElTQV9QQ0hBUihjdXIpKSB7CisgICAgICAgIHJldCA9IHhtbFBhcnNlMzk4NlBhdGhSb290bGVzcyh1cmksICZjdXIpOworCWlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisgICAgfSBlbHNlIHsKKwkvKiBwYXRoLWVtcHR5IGlzIGVmZmVjdGl2ZWx5IGVtcHR5ICovCisJaWYgKHVyaSAhPSBOVUxMKSB7CisJICAgIGlmICh1cmktPnBhdGggIT0gTlVMTCkgeG1sRnJlZSh1cmktPnBhdGgpOworCSAgICB1cmktPnBhdGggPSBOVUxMOworCX0KKyAgICB9CisgICAgKnN0ciA9IGN1cjsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFBhcnNlMzk4NlJlbGF0aXZlUmVmOgorICogQHVyaTogIHBvaW50ZXIgdG8gYW4gVVJJIHN0cnVjdHVyZQorICogQHN0cjogIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlIGFuIFVSSSBzdHJpbmcgYW5kIGZpbGxzIGluIHRoZSBhcHByb3ByaWF0ZSBmaWVsZHMKKyAqIG9mIHRoZSBAdXJpIHN0cnVjdHVyZQorICoKKyAqIHJlbGF0aXZlLXJlZiAgPSByZWxhdGl2ZS1wYXJ0IFsgIj8iIHF1ZXJ5IF0gWyAiIyIgZnJhZ21lbnQgXQorICogcmVsYXRpdmUtcGFydCA9ICIvLyIgYXV0aG9yaXR5IHBhdGgtYWJlbXB0eQorICogICAgICAgICAgICAgICAvIHBhdGgtYWJzb2x1dGUKKyAqICAgICAgICAgICAgICAgLyBwYXRoLW5vc2NoZW1lCisgKiAgICAgICAgICAgICAgIC8gcGF0aC1lbXB0eQorICoKKyAqIFJldHVybnMgMCBvciB0aGUgZXJyb3IgY29kZQorICovCitzdGF0aWMgaW50Cit4bWxQYXJzZTM5ODZSZWxhdGl2ZVJlZih4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICpzdHIpIHsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKCgqc3RyID09ICcvJykgJiYgKCooc3RyICsgMSkgPT0gJy8nKSkgeworICAgICAgICBzdHIgKz0gMjsKKwlyZXQgPSB4bWxQYXJzZTM5ODZBdXRob3JpdHkodXJpLCAmc3RyKTsKKwlpZiAocmV0ICE9IDApIHJldHVybihyZXQpOworCXJldCA9IHhtbFBhcnNlMzk4NlBhdGhBYkVtcHR5KHVyaSwgJnN0cik7CisJaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB9IGVsc2UgaWYgKCpzdHIgPT0gJy8nKSB7CisJcmV0ID0geG1sUGFyc2UzOTg2UGF0aEFic29sdXRlKHVyaSwgJnN0cik7CisJaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB9IGVsc2UgaWYgKElTQV9QQ0hBUihzdHIpKSB7CisgICAgICAgIHJldCA9IHhtbFBhcnNlMzk4NlBhdGhOb1NjaGVtZSh1cmksICZzdHIpOworCWlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisgICAgfSBlbHNlIHsKKwkvKiBwYXRoLWVtcHR5IGlzIGVmZmVjdGl2ZWx5IGVtcHR5ICovCisJaWYgKHVyaSAhPSBOVUxMKSB7CisJICAgIGlmICh1cmktPnBhdGggIT0gTlVMTCkgeG1sRnJlZSh1cmktPnBhdGgpOworCSAgICB1cmktPnBhdGggPSBOVUxMOworCX0KKyAgICB9CisKKyAgICBpZiAoKnN0ciA9PSAnPycpIHsKKwlzdHIrKzsKKwlyZXQgPSB4bWxQYXJzZTM5ODZRdWVyeSh1cmksICZzdHIpOworCWlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisgICAgfQorICAgIGlmICgqc3RyID09ICcjJykgeworCXN0cisrOworCXJldCA9IHhtbFBhcnNlMzk4NkZyYWdtZW50KHVyaSwgJnN0cik7CisJaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB9CisgICAgaWYgKCpzdHIgIT0gMCkgeworCXhtbENsZWFuVVJJKHVyaSk7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKworLyoqCisgKiB4bWxQYXJzZTM5ODZVUkk6CisgKiBAdXJpOiAgcG9pbnRlciB0byBhbiBVUkkgc3RydWN0dXJlCisgKiBAc3RyOiAgdGhlIHN0cmluZyB0byBhbmFseXplCisgKgorICogUGFyc2UgYW4gVVJJIHN0cmluZyBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlIGZpZWxkcworICogb2YgdGhlIEB1cmkgc3RydWN0dXJlCisgKgorICogc2NoZW1lICI6IiBoaWVyLXBhcnQgWyAiPyIgcXVlcnkgXSBbICIjIiBmcmFnbWVudCBdCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK3htbFBhcnNlMzk4NlVSSSh4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICpzdHIpIHsKKyAgICBpbnQgcmV0OworCisgICAgcmV0ID0geG1sUGFyc2UzOTg2U2NoZW1lKHVyaSwgJnN0cik7CisgICAgaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICBpZiAoKnN0ciAhPSAnOicpIHsKKwlyZXR1cm4oMSk7CisgICAgfQorICAgIHN0cisrOworICAgIHJldCA9IHhtbFBhcnNlMzk4NkhpZXJQYXJ0KHVyaSwgJnN0cik7CisgICAgaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICBpZiAoKnN0ciA9PSAnPycpIHsKKwlzdHIrKzsKKwlyZXQgPSB4bWxQYXJzZTM5ODZRdWVyeSh1cmksICZzdHIpOworCWlmIChyZXQgIT0gMCkgcmV0dXJuKHJldCk7CisgICAgfQorICAgIGlmICgqc3RyID09ICcjJykgeworCXN0cisrOworCXJldCA9IHhtbFBhcnNlMzk4NkZyYWdtZW50KHVyaSwgJnN0cik7CisJaWYgKHJldCAhPSAwKSByZXR1cm4ocmV0KTsKKyAgICB9CisgICAgaWYgKCpzdHIgIT0gMCkgeworCXhtbENsZWFuVVJJKHVyaSk7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUGFyc2UzOTg2VVJJUmVmZXJlbmNlOgorICogQHVyaTogIHBvaW50ZXIgdG8gYW4gVVJJIHN0cnVjdHVyZQorICogQHN0cjogIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlIGFuIFVSSSByZWZlcmVuY2Ugc3RyaW5nIGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGRzCisgKiBvZiB0aGUgQHVyaSBzdHJ1Y3R1cmUKKyAqCisgKiBVUkktcmVmZXJlbmNlID0gVVJJIC8gcmVsYXRpdmUtcmVmCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK3htbFBhcnNlMzk4NlVSSVJlZmVyZW5jZSh4bWxVUklQdHIgdXJpLCBjb25zdCBjaGFyICpzdHIpIHsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKHN0ciA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgeG1sQ2xlYW5VUkkodXJpKTsKKworICAgIC8qCisgICAgICogVHJ5IGZpcnN0IHRvIHBhcnNlIGFic29sdXRlIHJlZnMsIHRoZW4gZmFsbGJhY2sgdG8gcmVsYXRpdmUgaWYKKyAgICAgKiBpdCBmYWlscy4KKyAgICAgKi8KKyAgICByZXQgPSB4bWxQYXJzZTM5ODZVUkkodXJpLCBzdHIpOworICAgIGlmIChyZXQgIT0gMCkgeworCXhtbENsZWFuVVJJKHVyaSk7CisgICAgICAgIHJldCA9IHhtbFBhcnNlMzk4NlJlbGF0aXZlUmVmKHVyaSwgc3RyKTsKKwlpZiAocmV0ICE9IDApIHsKKwkgICAgeG1sQ2xlYW5VUkkodXJpKTsKKwkgICAgcmV0dXJuKHJldCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VVUkk6CisgKiBAc3RyOiAgdGhlIFVSSSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlIGFuIFVSSSBiYXNlZCBvbiBSRkMgMzk4NgorICoKKyAqIFVSSS1yZWZlcmVuY2UgPSBbIGFic29sdXRlVVJJIHwgcmVsYXRpdmVVUkkgXSBbICIjIiBmcmFnbWVudCBdCisgKgorICogUmV0dXJucyBhIG5ld2x5IGJ1aWx0IHhtbFVSSVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sVVJJUHRyCit4bWxQYXJzZVVSSShjb25zdCBjaGFyICpzdHIpIHsKKyAgICB4bWxVUklQdHIgdXJpOworICAgIGludCByZXQ7CisKKyAgICBpZiAoc3RyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHVyaSA9IHhtbENyZWF0ZVVSSSgpOworICAgIGlmICh1cmkgIT0gTlVMTCkgeworCXJldCA9IHhtbFBhcnNlMzk4NlVSSVJlZmVyZW5jZSh1cmksIHN0cik7CisgICAgICAgIGlmIChyZXQpIHsKKwkgICAgeG1sRnJlZVVSSSh1cmkpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0KKyAgICByZXR1cm4odXJpKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVVSSVJlZmVyZW5jZToKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIFVSSSBzdHJ1Y3R1cmUKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZSBhbiBVUkkgcmVmZXJlbmNlIHN0cmluZyBiYXNlZCBvbiBSRkMgMzk4NiBhbmQgZmlsbHMgaW4gdGhlCisgKiBhcHByb3ByaWF0ZSBmaWVsZHMgb2YgdGhlIEB1cmkgc3RydWN0dXJlCisgKgorICogVVJJLXJlZmVyZW5jZSA9IFVSSSAvIHJlbGF0aXZlLXJlZgorICoKKyAqIFJldHVybnMgMCBvciB0aGUgZXJyb3IgY29kZQorICovCitpbnQKK3htbFBhcnNlVVJJUmVmZXJlbmNlKHhtbFVSSVB0ciB1cmksIGNvbnN0IGNoYXIgKnN0cikgeworICAgIHJldHVybih4bWxQYXJzZTM5ODZVUklSZWZlcmVuY2UodXJpLCBzdHIpKTsKK30KKworLyoqCisgKiB4bWxQYXJzZVVSSVJhdzoKKyAqIEBzdHI6ICB0aGUgVVJJIHN0cmluZyB0byBhbmFseXplCisgKiBAcmF3OiAgaWYgMSB1bmVzY2FwaW5nIG9mIFVSSSBwaWVjZXMgYXJlIGRpc2FibGVkCisgKgorICogUGFyc2UgYW4gVVJJIGJ1dCBhbGxvd3MgdG8ga2VlcCBpbnRhY3QgdGhlIG9yaWdpbmFsIGZyYWdtZW50cy4KKyAqCisgKiBVUkktcmVmZXJlbmNlID0gVVJJIC8gcmVsYXRpdmUtcmVmCisgKgorICogUmV0dXJucyBhIG5ld2x5IGJ1aWx0IHhtbFVSSVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sVVJJUHRyCit4bWxQYXJzZVVSSVJhdyhjb25zdCBjaGFyICpzdHIsIGludCByYXcpIHsKKyAgICB4bWxVUklQdHIgdXJpOworICAgIGludCByZXQ7CisKKyAgICBpZiAoc3RyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHVyaSA9IHhtbENyZWF0ZVVSSSgpOworICAgIGlmICh1cmkgIT0gTlVMTCkgeworICAgICAgICBpZiAocmF3KSB7CisJICAgIHVyaS0+Y2xlYW51cCB8PSAyOworCX0KKwlyZXQgPSB4bWxQYXJzZVVSSVJlZmVyZW5jZSh1cmksIHN0cik7CisgICAgICAgIGlmIChyZXQpIHsKKwkgICAgeG1sRnJlZVVSSSh1cmkpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0KKyAgICByZXR1cm4odXJpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUdlbmVyaWMgVVJJIHN0cnVjdHVyZSBmdW5jdGlvbnMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sQ3JlYXRlVVJJOgorICoKKyAqIFNpbXBseSBjcmVhdGVzIGFuIGVtcHR5IHhtbFVSSQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFVSSVB0cgoreG1sQ3JlYXRlVVJJKHZvaWQpIHsKKyAgICB4bWxVUklQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFVSSVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxVUkkpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbENyZWF0ZVVSSTogb3V0IG9mIG1lbW9yeVxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sVVJJKSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2F2ZVVyaToKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIHhtbFVSSQorICoKKyAqIFNhdmUgdGhlIFVSSSBhcyBhbiBlc2NhcGVkIHN0cmluZworICoKKyAqIFJldHVybnMgYSBuZXcgc3RyaW5nICh0byBiZSBkZWFsbG9jYXRlZCBieSBjYWxsZXIpCisgKi8KK3htbENoYXIgKgoreG1sU2F2ZVVyaSh4bWxVUklQdHIgdXJpKSB7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKyAgICB4bWxDaGFyICp0ZW1wOworICAgIGNvbnN0IGNoYXIgKnA7CisgICAgaW50IGxlbjsKKyAgICBpbnQgbWF4OworCisgICAgaWYgKHVyaSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKworICAgIG1heCA9IDgwOworICAgIHJldCA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYygobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBsZW4gPSAwOworCisgICAgaWYgKHVyaS0+c2NoZW1lICE9IE5VTEwpIHsKKwlwID0gdXJpLT5zY2hlbWU7CisJd2hpbGUgKCpwICE9IDApIHsKKwkgICAgaWYgKGxlbiA+PSBtYXgpIHsKKwkJbWF4ICo9IDI7CisJCXRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKHJldCwgKG1heCArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKKwkJaWYgKHRlbXAgPT0gTlVMTCkgeworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgInhtbFNhdmVVcmk6IG91dCBvZiBtZW1vcnlcbiIpOworCQkgICAgeG1sRnJlZShyZXQpOworCQkgICAgcmV0dXJuKE5VTEwpOworCQl9CisJCXJldCA9IHRlbXA7CisJICAgIH0KKwkgICAgcmV0W2xlbisrXSA9ICpwKys7CisJfQorCWlmIChsZW4gPj0gbWF4KSB7CisJICAgIG1heCAqPSAyOworCSAgICB0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsIChtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisJCXhtbEZyZWUocmV0KTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIHJldCA9IHRlbXA7CisJfQorCXJldFtsZW4rK10gPSAnOic7CisgICAgfQorICAgIGlmICh1cmktPm9wYXF1ZSAhPSBOVUxMKSB7CisJcCA9IHVyaS0+b3BhcXVlOworCXdoaWxlICgqcCAhPSAwKSB7CisJICAgIGlmIChsZW4gKyAzID49IG1heCkgeworCQltYXggKj0gMjsKKwkJdGVtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MocmV0LCAobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworCQlpZiAodGVtcCA9PSBOVUxMKSB7CisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisJCSAgICB4bWxGcmVlKHJldCk7CisJCSAgICByZXR1cm4oTlVMTCk7CisJCX0KKwkJcmV0ID0gdGVtcDsKKwkgICAgfQorCSAgICBpZiAoSVNfUkVTRVJWRUQoKihwKSkgfHwgSVNfVU5SRVNFUlZFRCgqKHApKSkKKwkJcmV0W2xlbisrXSA9ICpwKys7CisJICAgIGVsc2UgeworCQlpbnQgdmFsID0gKih1bnNpZ25lZCBjaGFyICopcCsrOworCQlpbnQgaGkgPSB2YWwgLyAweDEwLCBsbyA9IHZhbCAlIDB4MTA7CisJCXJldFtsZW4rK10gPSAnJSc7CisJCXJldFtsZW4rK10gPSBoaSArIChoaSA+IDk/ICdBJy0xMCA6ICcwJyk7CisJCXJldFtsZW4rK10gPSBsbyArIChsbyA+IDk/ICdBJy0xMCA6ICcwJyk7CisJICAgIH0KKwl9CisgICAgfSBlbHNlIHsKKwlpZiAodXJpLT5zZXJ2ZXIgIT0gTlVMTCkgeworCSAgICBpZiAobGVuICsgMyA+PSBtYXgpIHsKKwkJbWF4ICo9IDI7CisJCXRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKHJldCwgKG1heCArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKKwkJaWYgKHRlbXAgPT0gTlVMTCkgeworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgInhtbFNhdmVVcmk6IG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgICAgICAgeG1sRnJlZShyZXQpOyAgCisJCSAgICByZXR1cm4oTlVMTCk7CisJCX0KKwkJcmV0ID0gdGVtcDsKKwkgICAgfQorCSAgICByZXRbbGVuKytdID0gJy8nOworCSAgICByZXRbbGVuKytdID0gJy8nOworCSAgICBpZiAodXJpLT51c2VyICE9IE5VTEwpIHsKKwkJcCA9IHVyaS0+dXNlcjsKKwkJd2hpbGUgKCpwICE9IDApIHsKKwkJICAgIGlmIChsZW4gKyAzID49IG1heCkgeworCQkJbWF4ICo9IDI7CisJCQl0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsCisJCQkJKG1heCArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKKwkJCWlmICh0ZW1wID09IE5VTEwpIHsKKwkJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkgICAgInhtbFNhdmVVcmk6IG91dCBvZiBtZW1vcnlcbiIpOworCQkJICAgIHhtbEZyZWUocmV0KTsKKwkJCSAgICByZXR1cm4oTlVMTCk7CisJCQl9CisJCQlyZXQgPSB0ZW1wOworCQkgICAgfQorCQkgICAgaWYgKChJU19VTlJFU0VSVkVEKCoocCkpKSB8fAorCQkJKCgqKHApID09ICc7JykpIHx8ICgoKihwKSA9PSAnOicpKSB8fAorCQkJKCgqKHApID09ICcmJykpIHx8ICgoKihwKSA9PSAnPScpKSB8fAorCQkJKCgqKHApID09ICcrJykpIHx8ICgoKihwKSA9PSAnJCcpKSB8fAorCQkJKCgqKHApID09ICcsJykpKQorCQkJcmV0W2xlbisrXSA9ICpwKys7CisJCSAgICBlbHNlIHsKKwkJCWludCB2YWwgPSAqKHVuc2lnbmVkIGNoYXIgKilwKys7CisJCQlpbnQgaGkgPSB2YWwgLyAweDEwLCBsbyA9IHZhbCAlIDB4MTA7CisJCQlyZXRbbGVuKytdID0gJyUnOworCQkJcmV0W2xlbisrXSA9IGhpICsgKGhpID4gOT8gJ0EnLTEwIDogJzAnKTsKKwkJCXJldFtsZW4rK10gPSBsbyArIChsbyA+IDk/ICdBJy0xMCA6ICcwJyk7CisJCSAgICB9CisJCX0KKwkJaWYgKGxlbiArIDMgPj0gbWF4KSB7CisJCSAgICBtYXggKj0gMjsKKwkJICAgIHRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKHJldCwKKwkJCSAgICAobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKHRlbXAgPT0gTlVMTCkgeworCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJInhtbFNhdmVVcmk6IG91dCBvZiBtZW1vcnlcbiIpOworCQkJeG1sRnJlZShyZXQpOworCQkJcmV0dXJuKE5VTEwpOworCQkgICAgfQorCQkgICAgcmV0ID0gdGVtcDsKKwkJfQorCQlyZXRbbGVuKytdID0gJ0AnOworCSAgICB9CisJICAgIHAgPSB1cmktPnNlcnZlcjsKKwkgICAgd2hpbGUgKCpwICE9IDApIHsKKwkJaWYgKGxlbiA+PSBtYXgpIHsKKwkJICAgIG1heCAqPSAyOworCQkgICAgdGVtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MocmV0LAorCQkJICAgIChtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJCSAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisJCQl4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCQl9CisJCXJldFtsZW4rK10gPSAqcCsrOworCSAgICB9CisJICAgIGlmICh1cmktPnBvcnQgPiAwKSB7CisJCWlmIChsZW4gKyAxMCA+PSBtYXgpIHsKKwkJICAgIG1heCAqPSAyOworCQkgICAgdGVtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MocmV0LAorCQkJICAgIChtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJCSAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCQl9CisJCWxlbiArPSBzbnByaW50ZigoY2hhciAqKSAmcmV0W2xlbl0sIG1heCAtIGxlbiwgIjolZCIsIHVyaS0+cG9ydCk7CisJICAgIH0KKwl9IGVsc2UgaWYgKHVyaS0+YXV0aG9yaXR5ICE9IE5VTEwpIHsKKwkgICAgaWYgKGxlbiArIDMgPj0gbWF4KSB7CisJCW1heCAqPSAyOworCQl0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsCisJCQkobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworCQlpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCSAgICB9CisJICAgIHJldFtsZW4rK10gPSAnLyc7CisJICAgIHJldFtsZW4rK10gPSAnLyc7CisJICAgIHAgPSB1cmktPmF1dGhvcml0eTsKKwkgICAgd2hpbGUgKCpwICE9IDApIHsKKwkJaWYgKGxlbiArIDMgPj0gbWF4KSB7CisJCSAgICBtYXggKj0gMjsKKwkJICAgIHRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKHJldCwKKwkJCSAgICAobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworCQkgICAgaWYgKHRlbXAgPT0gTlVMTCkgeworCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkJInhtbFNhdmVVcmk6IG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShyZXQpOworCQkJcmV0dXJuKE5VTEwpOworCQkgICAgfQorCQkgICAgcmV0ID0gdGVtcDsKKwkJfQorCQlpZiAoKElTX1VOUkVTRVJWRUQoKihwKSkpIHx8CisgICAgICAgICAgICAgICAgICAgICgoKihwKSA9PSAnJCcpKSB8fCAoKCoocCkgPT0gJywnKSkgfHwgKCgqKHApID09ICc7JykpIHx8CisgICAgICAgICAgICAgICAgICAgICgoKihwKSA9PSAnOicpKSB8fCAoKCoocCkgPT0gJ0AnKSkgfHwgKCgqKHApID09ICcmJykpIHx8CisgICAgICAgICAgICAgICAgICAgICgoKihwKSA9PSAnPScpKSB8fCAoKCoocCkgPT0gJysnKSkpCisJCSAgICByZXRbbGVuKytdID0gKnArKzsKKwkJZWxzZSB7CisJCSAgICBpbnQgdmFsID0gKih1bnNpZ25lZCBjaGFyICopcCsrOworCQkgICAgaW50IGhpID0gdmFsIC8gMHgxMCwgbG8gPSB2YWwgJSAweDEwOworCQkgICAgcmV0W2xlbisrXSA9ICclJzsKKwkJICAgIHJldFtsZW4rK10gPSBoaSArIChoaSA+IDk/ICdBJy0xMCA6ICcwJyk7CisJCSAgICByZXRbbGVuKytdID0gbG8gKyAobG8gPiA5PyAnQSctMTAgOiAnMCcpOworCQl9CisJICAgIH0KKwl9IGVsc2UgaWYgKHVyaS0+c2NoZW1lICE9IE5VTEwpIHsKKwkgICAgaWYgKGxlbiArIDMgPj0gbWF4KSB7CisJCW1heCAqPSAyOworCQl0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsCisJCQkobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworCQlpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCSAgICB9CisJICAgIHJldFtsZW4rK10gPSAnLyc7CisJICAgIHJldFtsZW4rK10gPSAnLyc7CisJfQorCWlmICh1cmktPnBhdGggIT0gTlVMTCkgeworCSAgICBwID0gdXJpLT5wYXRoOworCSAgICAvKgorCSAgICAgKiB0aGUgY29sb24gaW4gZmlsZTovLy9kOiBzaG91bGQgbm90IGJlIGVzY2FwZWQgb3IKKwkgICAgICogV2luZG93cyBhY2Nlc3NlcyBmYWlsIGxhdGVyLgorCSAgICAgKi8KKwkgICAgaWYgKCh1cmktPnNjaGVtZSAhPSBOVUxMKSAmJgorCQkocFswXSA9PSAnLycpICYmCisJCSgoKHBbMV0gPj0gJ2EnKSAmJiAocFsxXSA8PSAneicpKSB8fAorCQkgKChwWzFdID49ICdBJykgJiYgKHBbMV0gPD0gJ1onKSkpICYmCisJCShwWzJdID09ICc6JykgJiYKKwkgICAgICAgICh4bWxTdHJFcXVhbChCQURfQ0FTVCB1cmktPnNjaGVtZSwgQkFEX0NBU1QgImZpbGUiKSkpIHsKKwkJaWYgKGxlbiArIDMgPj0gbWF4KSB7CisJCSAgICBtYXggKj0gMjsKKwkJICAgIHJldCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MocmV0LAorCQkJICAgIChtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJCSAgICBpZiAocmV0ID09IE5VTEwpIHsKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJ4bWxTYXZlVXJpOiBvdXQgb2YgbWVtb3J5XG4iKTsKKwkJCXJldHVybihOVUxMKTsKKwkJICAgIH0KKwkJfQorCQlyZXRbbGVuKytdID0gKnArKzsKKwkJcmV0W2xlbisrXSA9ICpwKys7CisJCXJldFtsZW4rK10gPSAqcCsrOworCSAgICB9CisJICAgIHdoaWxlICgqcCAhPSAwKSB7CisJCWlmIChsZW4gKyAzID49IG1heCkgeworCQkgICAgbWF4ICo9IDI7CisJCSAgICB0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsCisJCQkgICAgKG1heCArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKKwkJICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJ4bWxTYXZlVXJpOiBvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUocmV0KTsKKwkJCXJldHVybihOVUxMKTsKKwkJICAgIH0KKwkJICAgIHJldCA9IHRlbXA7CisJCX0KKwkJaWYgKChJU19VTlJFU0VSVkVEKCoocCkpKSB8fCAoKCoocCkgPT0gJy8nKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKCgqKHApID09ICc7JykpIHx8ICgoKihwKSA9PSAnQCcpKSB8fCAoKCoocCkgPT0gJyYnKSkgfHwKKwkgICAgICAgICAgICAoKCoocCkgPT0gJz0nKSkgfHwgKCgqKHApID09ICcrJykpIHx8ICgoKihwKSA9PSAnJCcpKSB8fAorCSAgICAgICAgICAgICgoKihwKSA9PSAnLCcpKSkKKwkJICAgIHJldFtsZW4rK10gPSAqcCsrOworCQllbHNlIHsKKwkJICAgIGludCB2YWwgPSAqKHVuc2lnbmVkIGNoYXIgKilwKys7CisJCSAgICBpbnQgaGkgPSB2YWwgLyAweDEwLCBsbyA9IHZhbCAlIDB4MTA7CisJCSAgICByZXRbbGVuKytdID0gJyUnOworCQkgICAgcmV0W2xlbisrXSA9IGhpICsgKGhpID4gOT8gJ0EnLTEwIDogJzAnKTsKKwkJICAgIHJldFtsZW4rK10gPSBsbyArIChsbyA+IDk/ICdBJy0xMCA6ICcwJyk7CisJCX0KKwkgICAgfQorCX0KKwlpZiAodXJpLT5xdWVyeV9yYXcgIT0gTlVMTCkgeworCSAgICBpZiAobGVuICsgMSA+PSBtYXgpIHsKKwkJbWF4ICo9IDI7CisJCXRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKHJldCwKKwkJCShtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJCWlmICh0ZW1wID09IE5VTEwpIHsKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJ4bWxTYXZlVXJpOiBvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUocmV0KTsKKwkJCXJldHVybihOVUxMKTsKKwkJICAgIH0KKwkJICAgIHJldCA9IHRlbXA7CisJICAgIH0KKwkgICAgcmV0W2xlbisrXSA9ICc/JzsKKwkgICAgcCA9IHVyaS0+cXVlcnlfcmF3OworCSAgICB3aGlsZSAoKnAgIT0gMCkgeworCQlpZiAobGVuICsgMSA+PSBtYXgpIHsKKwkJICAgIG1heCAqPSAyOworCQkgICAgdGVtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MocmV0LAorCQkJICAgIChtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJCSAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCQl9CisJCXJldFtsZW4rK10gPSAqcCsrOworCSAgICB9CisJfSBlbHNlIGlmICh1cmktPnF1ZXJ5ICE9IE5VTEwpIHsKKwkgICAgaWYgKGxlbiArIDMgPj0gbWF4KSB7CisJCW1heCAqPSAyOworCQl0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsCisJCQkobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworCQlpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCSAgICB9CisJICAgIHJldFtsZW4rK10gPSAnPyc7CisJICAgIHAgPSB1cmktPnF1ZXJ5OworCSAgICB3aGlsZSAoKnAgIT0gMCkgeworCQlpZiAobGVuICsgMyA+PSBtYXgpIHsKKwkJICAgIG1heCAqPSAyOworCQkgICAgdGVtcCA9ICh4bWxDaGFyICopIHhtbFJlYWxsb2MocmV0LAorCQkJICAgIChtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJCSAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCQl9CisJCWlmICgoSVNfVU5SRVNFUlZFRCgqKHApKSkgfHwgKElTX1JFU0VSVkVEKCoocCkpKSkgCisJCSAgICByZXRbbGVuKytdID0gKnArKzsKKwkJZWxzZSB7CisJCSAgICBpbnQgdmFsID0gKih1bnNpZ25lZCBjaGFyICopcCsrOworCQkgICAgaW50IGhpID0gdmFsIC8gMHgxMCwgbG8gPSB2YWwgJSAweDEwOworCQkgICAgcmV0W2xlbisrXSA9ICclJzsKKwkJICAgIHJldFtsZW4rK10gPSBoaSArIChoaSA+IDk/ICdBJy0xMCA6ICcwJyk7CisJCSAgICByZXRbbGVuKytdID0gbG8gKyAobG8gPiA5PyAnQSctMTAgOiAnMCcpOworCQl9CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmICh1cmktPmZyYWdtZW50ICE9IE5VTEwpIHsKKwlpZiAobGVuICsgMyA+PSBtYXgpIHsKKwkgICAgbWF4ICo9IDI7CisJICAgIHRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKHJldCwKKwkJICAgIChtYXggKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisJICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJ4bWxTYXZlVXJpOiBvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUocmV0KTsKKwkJCXJldHVybihOVUxMKTsKKwkJICAgIH0KKwkJICAgIHJldCA9IHRlbXA7CisJfQorCXJldFtsZW4rK10gPSAnIyc7CisJcCA9IHVyaS0+ZnJhZ21lbnQ7CisJd2hpbGUgKCpwICE9IDApIHsKKwkgICAgaWYgKGxlbiArIDMgPj0gbWF4KSB7CisJCW1heCAqPSAyOworCQl0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsCisJCQkobWF4ICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworCQlpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworCSAgICB9CisJICAgIGlmICgoSVNfVU5SRVNFUlZFRCgqKHApKSkgfHwgKElTX1JFU0VSVkVEKCoocCkpKSkgCisJCXJldFtsZW4rK10gPSAqcCsrOworCSAgICBlbHNlIHsKKwkJaW50IHZhbCA9ICoodW5zaWduZWQgY2hhciAqKXArKzsKKwkJaW50IGhpID0gdmFsIC8gMHgxMCwgbG8gPSB2YWwgJSAweDEwOworCQlyZXRbbGVuKytdID0gJyUnOworCQlyZXRbbGVuKytdID0gaGkgKyAoaGkgPiA5PyAnQSctMTAgOiAnMCcpOworCQlyZXRbbGVuKytdID0gbG8gKyAobG8gPiA5PyAnQSctMTAgOiAnMCcpOworCSAgICB9CisJfQorICAgIH0KKyAgICBpZiAobGVuID49IG1heCkgeworCW1heCAqPSAyOworCXRlbXAgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKHJldCwgKG1heCArIDEpICogc2l6ZW9mKHhtbENoYXIpKTsKKwlpZiAodGVtcCA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sU2F2ZVVyaTogb3V0IG9mIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB0ZW1wOworICAgIH0KKyAgICByZXRbbGVuXSA9IDA7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUHJpbnRVUkk6CisgKiBAc3RyZWFtOiAgYSBGSUxFKiBmb3IgdGhlIG91dHB1dAorICogQHVyaTogIHBvaW50ZXIgdG8gYW4geG1sVVJJCisgKgorICogUHJpbnRzIHRoZSBVUkkgaW4gdGhlIHN0cmVhbSBAc3RyZWFtLgorICovCit2b2lkCit4bWxQcmludFVSSShGSUxFICpzdHJlYW0sIHhtbFVSSVB0ciB1cmkpIHsKKyAgICB4bWxDaGFyICpvdXQ7CisKKyAgICBvdXQgPSB4bWxTYXZlVXJpKHVyaSk7CisgICAgaWYgKG91dCAhPSBOVUxMKSB7CisJZnByaW50ZihzdHJlYW0sICIlcyIsIChjaGFyICopIG91dCk7CisJeG1sRnJlZShvdXQpOworICAgIH0KK30KKworLyoqCisgKiB4bWxDbGVhblVSSToKKyAqIEB1cmk6ICBwb2ludGVyIHRvIGFuIHhtbFVSSQorICoKKyAqIE1ha2Ugc3VyZSB0aGUgeG1sVVJJIHN0cnVjdCBpcyBmcmVlIG9mIGNvbnRlbnQKKyAqLworc3RhdGljIHZvaWQKK3htbENsZWFuVVJJKHhtbFVSSVB0ciB1cmkpIHsKKyAgICBpZiAodXJpID09IE5VTEwpIHJldHVybjsKKworICAgIGlmICh1cmktPnNjaGVtZSAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+c2NoZW1lKTsKKyAgICB1cmktPnNjaGVtZSA9IE5VTEw7CisgICAgaWYgKHVyaS0+c2VydmVyICE9IE5VTEwpIHhtbEZyZWUodXJpLT5zZXJ2ZXIpOworICAgIHVyaS0+c2VydmVyID0gTlVMTDsKKyAgICBpZiAodXJpLT51c2VyICE9IE5VTEwpIHhtbEZyZWUodXJpLT51c2VyKTsKKyAgICB1cmktPnVzZXIgPSBOVUxMOworICAgIGlmICh1cmktPnBhdGggIT0gTlVMTCkgeG1sRnJlZSh1cmktPnBhdGgpOworICAgIHVyaS0+cGF0aCA9IE5VTEw7CisgICAgaWYgKHVyaS0+ZnJhZ21lbnQgIT0gTlVMTCkgeG1sRnJlZSh1cmktPmZyYWdtZW50KTsKKyAgICB1cmktPmZyYWdtZW50ID0gTlVMTDsKKyAgICBpZiAodXJpLT5vcGFxdWUgIT0gTlVMTCkgeG1sRnJlZSh1cmktPm9wYXF1ZSk7CisgICAgdXJpLT5vcGFxdWUgPSBOVUxMOworICAgIGlmICh1cmktPmF1dGhvcml0eSAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+YXV0aG9yaXR5KTsKKyAgICB1cmktPmF1dGhvcml0eSA9IE5VTEw7CisgICAgaWYgKHVyaS0+cXVlcnkgIT0gTlVMTCkgeG1sRnJlZSh1cmktPnF1ZXJ5KTsKKyAgICB1cmktPnF1ZXJ5ID0gTlVMTDsKKyAgICBpZiAodXJpLT5xdWVyeV9yYXcgIT0gTlVMTCkgeG1sRnJlZSh1cmktPnF1ZXJ5X3Jhdyk7CisgICAgdXJpLT5xdWVyeV9yYXcgPSBOVUxMOworfQorCisvKioKKyAqIHhtbEZyZWVVUkk6CisgKiBAdXJpOiAgcG9pbnRlciB0byBhbiB4bWxVUkkKKyAqCisgKiBGcmVlIHVwIHRoZSB4bWxVUkkgc3RydWN0CisgKi8KK3ZvaWQKK3htbEZyZWVVUkkoeG1sVVJJUHRyIHVyaSkgeworICAgIGlmICh1cmkgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKHVyaS0+c2NoZW1lICE9IE5VTEwpIHhtbEZyZWUodXJpLT5zY2hlbWUpOworICAgIGlmICh1cmktPnNlcnZlciAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+c2VydmVyKTsKKyAgICBpZiAodXJpLT51c2VyICE9IE5VTEwpIHhtbEZyZWUodXJpLT51c2VyKTsKKyAgICBpZiAodXJpLT5wYXRoICE9IE5VTEwpIHhtbEZyZWUodXJpLT5wYXRoKTsKKyAgICBpZiAodXJpLT5mcmFnbWVudCAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+ZnJhZ21lbnQpOworICAgIGlmICh1cmktPm9wYXF1ZSAhPSBOVUxMKSB4bWxGcmVlKHVyaS0+b3BhcXVlKTsKKyAgICBpZiAodXJpLT5hdXRob3JpdHkgIT0gTlVMTCkgeG1sRnJlZSh1cmktPmF1dGhvcml0eSk7CisgICAgaWYgKHVyaS0+cXVlcnkgIT0gTlVMTCkgeG1sRnJlZSh1cmktPnF1ZXJ5KTsKKyAgICBpZiAodXJpLT5xdWVyeV9yYXcgIT0gTlVMTCkgeG1sRnJlZSh1cmktPnF1ZXJ5X3Jhdyk7CisgICAgeG1sRnJlZSh1cmkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJSGVscGVyIGZ1bmN0aW9ucwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sTm9ybWFsaXplVVJJUGF0aDoKKyAqIEBwYXRoOiAgcG9pbnRlciB0byB0aGUgcGF0aCBzdHJpbmcKKyAqCisgKiBBcHBsaWVzIHRoZSA1IG5vcm1hbGl6YXRpb24gc3RlcHMgdG8gYSBwYXRoIHN0cmluZy0tdGhhdCBpcywgUkZDIDIzOTYKKyAqIFNlY3Rpb24gNS4yLCBzdGVwcyA2LmMgdGhyb3VnaCA2LmcuCisgKgorICogTm9ybWFsaXphdGlvbiBvY2N1cnMgZGlyZWN0bHkgb24gdGhlIHN0cmluZywgbm8gbmV3IGFsbG9jYXRpb24gaXMgZG9uZQorICoKKyAqIFJldHVybnMgMCBvciBhbiBlcnJvciBjb2RlCisgKi8KK2ludAoreG1sTm9ybWFsaXplVVJJUGF0aChjaGFyICpwYXRoKSB7CisgICAgY2hhciAqY3VyLCAqb3V0OworCisgICAgaWYgKHBhdGggPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgLyogU2tpcCBhbGwgaW5pdGlhbCAiLyIgY2hhcnMuICBXZSB3YW50IHRvIGdldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAqIGZpcnN0IG5vbi1lbXB0eSBzZWdtZW50LgorICAgICAqLworICAgIGN1ciA9IHBhdGg7CisgICAgd2hpbGUgKGN1clswXSA9PSAnLycpCisgICAgICArK2N1cjsKKyAgICBpZiAoY3VyWzBdID09ICdcMCcpCisgICAgICByZXR1cm4oMCk7CisKKyAgICAvKiBLZWVwIGV2ZXJ5dGhpbmcgd2UndmUgc2VlbiBzbyBmYXIuICAqLworICAgIG91dCA9IGN1cjsKKworICAgIC8qCisgICAgICogQW5hbHl6ZSBlYWNoIHNlZ21lbnQgaW4gc2VxdWVuY2UgZm9yIGNhc2VzIChjKSBhbmQgKGQpLgorICAgICAqLworICAgIHdoaWxlIChjdXJbMF0gIT0gJ1wwJykgeworCS8qCisJICogYykgQWxsIG9jY3VycmVuY2VzIG9mICIuLyIsIHdoZXJlICIuIiBpcyBhIGNvbXBsZXRlIHBhdGggc2VnbWVudCwKKwkgKiAgICBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBidWZmZXIgc3RyaW5nLgorCSAqLworCWlmICgoY3VyWzBdID09ICcuJykgJiYgKGN1clsxXSA9PSAnLycpKSB7CisJICAgIGN1ciArPSAyOworCSAgICAvKiAnLy8nIG5vcm1hbGl6YXRpb24gc2hvdWxkIGJlIGRvbmUgYXQgdGhpcyBwb2ludCB0b28gKi8KKwkgICAgd2hpbGUgKGN1clswXSA9PSAnLycpCisJCWN1cisrOworCSAgICBjb250aW51ZTsKKwl9CisKKwkvKgorCSAqIGQpIElmIHRoZSBidWZmZXIgc3RyaW5nIGVuZHMgd2l0aCAiLiIgYXMgYSBjb21wbGV0ZSBwYXRoIHNlZ21lbnQsCisJICogICAgdGhhdCAiLiIgaXMgcmVtb3ZlZC4KKwkgKi8KKwlpZiAoKGN1clswXSA9PSAnLicpICYmIChjdXJbMV0gPT0gJ1wwJykpCisJICAgIGJyZWFrOworCisJLyogT3RoZXJ3aXNlIGtlZXAgdGhlIHNlZ21lbnQuICAqLworCXdoaWxlIChjdXJbMF0gIT0gJy8nKSB7CisgICAgICAgICAgICBpZiAoY3VyWzBdID09ICdcMCcpCisgICAgICAgICAgICAgIGdvdG8gZG9uZV9jZDsKKwkgICAgKG91dCsrKVswXSA9IChjdXIrKylbMF07CisJfQorCS8qIG5vbWFsaXplIC8vICovCisJd2hpbGUgKChjdXJbMF0gPT0gJy8nKSAmJiAoY3VyWzFdID09ICcvJykpCisJICAgIGN1cisrOworCisgICAgICAgIChvdXQrKylbMF0gPSAoY3VyKyspWzBdOworICAgIH0KKyBkb25lX2NkOgorICAgIG91dFswXSA9ICdcMCc7CisKKyAgICAvKiBSZXNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJzdCBzZWdtZW50IGZvciB0aGUgbmV4dCBzZXF1ZW5jZS4gICovCisgICAgY3VyID0gcGF0aDsKKyAgICB3aGlsZSAoY3VyWzBdID09ICcvJykKKyAgICAgICsrY3VyOworICAgIGlmIChjdXJbMF0gPT0gJ1wwJykKKwlyZXR1cm4oMCk7CisKKyAgICAvKgorICAgICAqIEFuYWx5emUgZWFjaCBzZWdtZW50IGluIHNlcXVlbmNlIGZvciBjYXNlcyAoZSkgYW5kIChmKS4KKyAgICAgKgorICAgICAqIGUpIEFsbCBvY2N1cnJlbmNlcyBvZiAiPHNlZ21lbnQ+Ly4uLyIsIHdoZXJlIDxzZWdtZW50PiBpcyBhCisgICAgICogICAgY29tcGxldGUgcGF0aCBzZWdtZW50IG5vdCBlcXVhbCB0byAiLi4iLCBhcmUgcmVtb3ZlZCBmcm9tIHRoZQorICAgICAqICAgIGJ1ZmZlciBzdHJpbmcuICBSZW1vdmFsIG9mIHRoZXNlIHBhdGggc2VnbWVudHMgaXMgcGVyZm9ybWVkCisgICAgICogICAgaXRlcmF0aXZlbHksIHJlbW92aW5nIHRoZSBsZWZ0bW9zdCBtYXRjaGluZyBwYXR0ZXJuIG9uIGVhY2gKKyAgICAgKiAgICBpdGVyYXRpb24sIHVudGlsIG5vIG1hdGNoaW5nIHBhdHRlcm4gcmVtYWlucy4KKyAgICAgKgorICAgICAqIGYpIElmIHRoZSBidWZmZXIgc3RyaW5nIGVuZHMgd2l0aCAiPHNlZ21lbnQ+Ly4uIiwgd2hlcmUgPHNlZ21lbnQ+CisgICAgICogICAgaXMgYSBjb21wbGV0ZSBwYXRoIHNlZ21lbnQgbm90IGVxdWFsIHRvICIuLiIsIHRoYXQKKyAgICAgKiAgICAiPHNlZ21lbnQ+Ly4uIiBpcyByZW1vdmVkLgorICAgICAqCisgICAgICogVG8gc2F0aXNmeSB0aGUgIml0ZXJhdGl2ZSIgY2xhdXNlIGluIChlKSwgd2UgbmVlZCB0byBjb2xsYXBzZSB0aGUKKyAgICAgKiBzdHJpbmcgZXZlcnkgdGltZSB3ZSBmaW5kIHNvbWV0aGluZyB0aGF0IG5lZWRzIHRvIGJlIHJlbW92ZWQuICBUaHVzLAorICAgICAqIHdlIGRvbid0IG5lZWQgdG8ga2VlcCB0d28gcG9pbnRlcnMgaW50byB0aGUgc3RyaW5nOiB3ZSBvbmx5IG5lZWQgYQorICAgICAqICJjdXJyZW50IHBvc2l0aW9uIiBwb2ludGVyLgorICAgICAqLworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGNoYXIgKnNlZ3AsICp0bXA7CisKKyAgICAgICAgLyogQXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIGl0ZXJhdGlvbiBvZiB0aGlzIGxvb3AsICJjdXIiIHBvaW50cyB0bworICAgICAgICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBzZWdtZW50IHdlIHdhbnQgdG8gZXhhbWluZS4KKyAgICAgICAgICovCisKKyAgICAgICAgLyogRmluZCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHNlZ21lbnQuICAqLworICAgICAgICBzZWdwID0gY3VyOworICAgICAgICB3aGlsZSAoKHNlZ3BbMF0gIT0gJy8nKSAmJiAoc2VncFswXSAhPSAnXDAnKSkKKyAgICAgICAgICArK3NlZ3A7CisKKyAgICAgICAgLyogSWYgdGhpcyBpcyB0aGUgbGFzdCBzZWdtZW50LCB3ZSdyZSBkb25lICh3ZSBuZWVkIGF0IGxlYXN0IHR3bworICAgICAgICAgKiBzZWdtZW50cyB0byBtZWV0IHRoZSBjcml0ZXJpYSBmb3IgdGhlIChlKSBhbmQgKGYpIGNhc2VzKS4KKyAgICAgICAgICovCisgICAgICAgIGlmIChzZWdwWzBdID09ICdcMCcpCisgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLyogSWYgdGhlIGZpcnN0IHNlZ21lbnQgaXMgIi4uIiwgb3IgaWYgdGhlIG5leHQgc2VnbWVudCBfaXNuJ3RfICIuLiIsCisgICAgICAgICAqIGtlZXAgdGhpcyBzZWdtZW50IGFuZCB0cnkgdGhlIG5leHQgb25lLgorICAgICAgICAgKi8KKyAgICAgICAgKytzZWdwOworICAgICAgICBpZiAoKChjdXJbMF0gPT0gJy4nKSAmJiAoY3VyWzFdID09ICcuJykgJiYgKHNlZ3AgPT0gY3VyKzMpKQorICAgICAgICAgICAgfHwgKChzZWdwWzBdICE9ICcuJykgfHwgKHNlZ3BbMV0gIT0gJy4nKQorICAgICAgICAgICAgICAgIHx8ICgoc2VncFsyXSAhPSAnLycpICYmIChzZWdwWzJdICE9ICdcMCcpKSkpIHsKKyAgICAgICAgICBjdXIgPSBzZWdwOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLyogSWYgd2UgZ2V0IGhlcmUsIHJlbW92ZSB0aGlzIHNlZ21lbnQgYW5kIHRoZSBuZXh0IG9uZSBhbmQgYmFjayB1cAorICAgICAgICAgKiB0byB0aGUgcHJldmlvdXMgc2VnbWVudCAoaWYgdGhlcmUgaXMgb25lKSwgdG8gaW1wbGVtZW50IHRoZQorICAgICAgICAgKiAiaXRlcmF0aXZlbHkiIGNsYXVzZS4gIEl0J3MgcHJldHR5IG11Y2ggaW1wb3NzaWJsZSB0byBiYWNrIHVwCisgICAgICAgICAqIHdoaWxlIG1haW50YWluaW5nIHR3byBwb2ludGVycyBpbnRvIHRoZSBidWZmZXIsIHNvIGp1c3QgY29tcGFjdAorICAgICAgICAgKiB0aGUgd2hvbGUgYnVmZmVyIG5vdy4KKyAgICAgICAgICovCisKKyAgICAgICAgLyogSWYgdGhpcyBpcyB0aGUgZW5kIG9mIHRoZSBidWZmZXIsIHdlJ3JlIGRvbmUuICAqLworICAgICAgICBpZiAoc2VncFsyXSA9PSAnXDAnKSB7CisgICAgICAgICAgY3VyWzBdID0gJ1wwJzsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvKiBWYWxncmluZCBjb21wbGFpbmVkLCBzdHJjcHkoY3VyLCBzZWdwICsgMyk7ICovCisJLyogc3RyaW5nIHdpbGwgb3ZlcmxhcCwgZG8gbm90IHVzZSBzdHJjcHkgKi8KKwl0bXAgPSBjdXI7CisJc2VncCArPSAzOworCXdoaWxlICgoKnRtcCsrID0gKnNlZ3ArKykgIT0gMCk7CisKKyAgICAgICAgLyogSWYgdGhlcmUgYXJlIG5vIHByZXZpb3VzIHNlZ21lbnRzLCB0aGVuIGtlZXAgZ29pbmcgZnJvbSBoZXJlLiAgKi8KKyAgICAgICAgc2VncCA9IGN1cjsKKyAgICAgICAgd2hpbGUgKChzZWdwID4gcGF0aCkgJiYgKCgtLXNlZ3ApWzBdID09ICcvJykpCisgICAgICAgICAgOworICAgICAgICBpZiAoc2VncCA9PSBwYXRoKQorICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8qICJzZWdwIiBpcyBwb2ludGluZyB0byB0aGUgZW5kIG9mIGEgcHJldmlvdXMgc2VnbWVudDsgZmluZCBpdCdzCisgICAgICAgICAqIHN0YXJ0LiAgV2UgbmVlZCB0byBiYWNrIHVwIHRvIHRoZSBwcmV2aW91cyBzZWdtZW50IGFuZCBzdGFydAorICAgICAgICAgKiBvdmVyIHdpdGggdGhhdCB0byBoYW5kbGUgdGhpbmdzIGxpa2UgImZvby9iYXIvLi4vLi4iLiAgSWYgd2UKKyAgICAgICAgICogZG9uJ3QgZG8gdGhpcywgdGhlbiBvbiB0aGUgZmlyc3QgcGFzcyB3ZSdsbCByZW1vdmUgdGhlICJiYXIvLi4iLAorICAgICAgICAgKiBidXQgYmUgcG9pbnRpbmcgYXQgdGhlIHNlY29uZCAiLi4iIHNvIHdlIHdvbid0IHJlYWxpemUgd2UgY2FuIGFsc28KKyAgICAgICAgICogcmVtb3ZlIHRoZSAiZm9vLy4uIi4KKyAgICAgICAgICovCisgICAgICAgIGN1ciA9IHNlZ3A7CisgICAgICAgIHdoaWxlICgoY3VyID4gcGF0aCkgJiYgKGN1clstMV0gIT0gJy8nKSkKKyAgICAgICAgICAtLWN1cjsKKyAgICB9CisgICAgb3V0WzBdID0gJ1wwJzsKKworICAgIC8qCisgICAgICogZykgSWYgdGhlIHJlc3VsdGluZyBidWZmZXIgc3RyaW5nIHN0aWxsIGJlZ2lucyB3aXRoIG9uZSBvciBtb3JlCisgICAgICogICAgY29tcGxldGUgcGF0aCBzZWdtZW50cyBvZiAiLi4iLCB0aGVuIHRoZSByZWZlcmVuY2UgaXMKKyAgICAgKiAgICBjb25zaWRlcmVkIHRvIGJlIGluIGVycm9yLiBJbXBsZW1lbnRhdGlvbnMgbWF5IGhhbmRsZSB0aGlzCisgICAgICogICAgZXJyb3IgYnkgcmV0YWluaW5nIHRoZXNlIGNvbXBvbmVudHMgaW4gdGhlIHJlc29sdmVkIHBhdGggKGkuZS4sCisgICAgICogICAgdHJlYXRpbmcgdGhlbSBhcyBwYXJ0IG9mIHRoZSBmaW5hbCBVUkkpLCBieSByZW1vdmluZyB0aGVtIGZyb20KKyAgICAgKiAgICB0aGUgcmVzb2x2ZWQgcGF0aCAoaS5lLiwgZGlzY2FyZGluZyByZWxhdGl2ZSBsZXZlbHMgYWJvdmUgdGhlCisgICAgICogICAgcm9vdCksIG9yIGJ5IGF2b2lkaW5nIHRyYXZlcnNhbCBvZiB0aGUgcmVmZXJlbmNlLgorICAgICAqCisgICAgICogV2UgZGlzY2FyZCB0aGVtIGZyb20gdGhlIGZpbmFsIHBhdGguCisgICAgICovCisgICAgaWYgKHBhdGhbMF0gPT0gJy8nKSB7CisgICAgICBjdXIgPSBwYXRoOworICAgICAgd2hpbGUgKChjdXJbMF0gPT0gJy8nKSAmJiAoY3VyWzFdID09ICcuJykgJiYgKGN1clsyXSA9PSAnLicpCisgICAgICAgICAgICAgJiYgKChjdXJbM10gPT0gJy8nKSB8fCAoY3VyWzNdID09ICdcMCcpKSkKKwljdXIgKz0gMzsKKworICAgICAgaWYgKGN1ciAhPSBwYXRoKSB7CisJb3V0ID0gcGF0aDsKKwl3aGlsZSAoY3VyWzBdICE9ICdcMCcpCisgICAgICAgICAgKG91dCsrKVswXSA9IChjdXIrKylbMF07CisJb3V0WzBdID0gMDsKKyAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQgaXNfaGV4KGNoYXIgYykgeworICAgIGlmICgoKGMgPj0gJzAnKSAmJiAoYyA8PSAnOScpKSB8fAorICAgICAgICAoKGMgPj0gJ2EnKSAmJiAoYyA8PSAnZicpKSB8fAorICAgICAgICAoKGMgPj0gJ0EnKSAmJiAoYyA8PSAnRicpKSkKKwlyZXR1cm4oMSk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFVSSVVuZXNjYXBlU3RyaW5nOgorICogQHN0cjogIHRoZSBzdHJpbmcgdG8gdW5lc2NhcGUKKyAqIEBsZW46ICAgdGhlIGxlbmd0aCBpbiBieXRlcyB0byB1bmVzY2FwZSAob3IgPD0gMCB0byBpbmRpY2F0ZSBmdWxsIHN0cmluZykKKyAqIEB0YXJnZXQ6ICBvcHRpb25hbCBkZXN0aW5hdGlvbiBidWZmZXIKKyAqCisgKiBVbmVzY2FwaW5nIHJvdXRpbmUsIGJ1dCBkb2VzIG5vdCBjaGVjayB0aGF0IHRoZSBzdHJpbmcgaXMgYW4gVVJJLiBUaGUKKyAqIG91dHB1dCBpcyBhIGRpcmVjdCB1bnNpZ25lZCBjaGFyIHRyYW5zbGF0aW9uIG9mICVYWCB2YWx1ZXMgKG5vIGVuY29kaW5nKQorICogTm90ZSB0aGF0IHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBjYW4gb25seSBiZSBzbWFsbGVyIG9yIHNhbWUgc2l6ZSBhcworICogdGhlIGlucHV0IHN0cmluZy4KKyAqCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgc3RyaW5nLCBidXQgdW5lc2NhcGVkLCB3aWxsIHJldHVybiBOVUxMIG9ubHkgaW4gY2FzZQorICogb2YgZXJyb3IKKyAqLworY2hhciAqCit4bWxVUklVbmVzY2FwZVN0cmluZyhjb25zdCBjaGFyICpzdHIsIGludCBsZW4sIGNoYXIgKnRhcmdldCkgeworICAgIGNoYXIgKnJldCwgKm91dDsKKyAgICBjb25zdCBjaGFyICppbjsKKworICAgIGlmIChzdHIgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGxlbiA8PSAwKSBsZW4gPSBzdHJsZW4oc3RyKTsKKyAgICBpZiAobGVuIDwgMCkgcmV0dXJuKE5VTEwpOworCisgICAgaWYgKHRhcmdldCA9PSBOVUxMKSB7CisJcmV0ID0gKGNoYXIgKikgeG1sTWFsbG9jQXRvbWljKGxlbiArIDEpOworCWlmIChyZXQgPT0gTlVMTCkgeworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJ4bWxVUklVbmVzY2FwZVN0cmluZzogb3V0IG9mIG1lbW9yeVxuIik7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfSBlbHNlCisJcmV0ID0gdGFyZ2V0OworICAgIGluID0gc3RyOworICAgIG91dCA9IHJldDsKKyAgICB3aGlsZShsZW4gPiAwKSB7CisJaWYgKChsZW4gPiAyKSAmJiAoKmluID09ICclJykgJiYgKGlzX2hleChpblsxXSkpICYmIChpc19oZXgoaW5bMl0pKSkgeworCSAgICBpbisrOworCSAgICBpZiAoKCppbiA+PSAnMCcpICYmICgqaW4gPD0gJzknKSkgCisJICAgICAgICAqb3V0ID0gKCppbiAtICcwJyk7CisJICAgIGVsc2UgaWYgKCgqaW4gPj0gJ2EnKSAmJiAoKmluIDw9ICdmJykpCisJICAgICAgICAqb3V0ID0gKCppbiAtICdhJykgKyAxMDsKKwkgICAgZWxzZSBpZiAoKCppbiA+PSAnQScpICYmICgqaW4gPD0gJ0YnKSkKKwkgICAgICAgICpvdXQgPSAoKmluIC0gJ0EnKSArIDEwOworCSAgICBpbisrOworCSAgICBpZiAoKCppbiA+PSAnMCcpICYmICgqaW4gPD0gJzknKSkgCisJICAgICAgICAqb3V0ID0gKm91dCAqIDE2ICsgKCppbiAtICcwJyk7CisJICAgIGVsc2UgaWYgKCgqaW4gPj0gJ2EnKSAmJiAoKmluIDw9ICdmJykpCisJICAgICAgICAqb3V0ID0gKm91dCAqIDE2ICsgKCppbiAtICdhJykgKyAxMDsKKwkgICAgZWxzZSBpZiAoKCppbiA+PSAnQScpICYmICgqaW4gPD0gJ0YnKSkKKwkgICAgICAgICpvdXQgPSAqb3V0ICogMTYgKyAoKmluIC0gJ0EnKSArIDEwOworCSAgICBpbisrOworCSAgICBsZW4gLT0gMzsKKwkgICAgb3V0Kys7CisJfSBlbHNlIHsKKwkgICAgKm91dCsrID0gKmluKys7CisJICAgIGxlbi0tOworCX0KKyAgICB9CisgICAgKm91dCA9IDA7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sVVJJRXNjYXBlU3RyOgorICogQHN0cjogIHN0cmluZyB0byBlc2NhcGUKKyAqIEBsaXN0OiBleGNlcHRpb24gbGlzdCBzdHJpbmcgb2YgY2hhcnMgbm90IHRvIGVzY2FwZQorICoKKyAqIFRoaXMgcm91dGluZSBlc2NhcGVzIGEgc3RyaW5nIHRvIGhleCwgaWdub3JpbmcgcmVzZXJ2ZWQgY2hhcmFjdGVycyAoYS16KQorICogYW5kIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBleGNlcHRpb24gbGlzdC4KKyAqCisgKiBSZXR1cm5zIGEgbmV3IGVzY2FwZWQgc3RyaW5nIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sQ2hhciAqCit4bWxVUklFc2NhcGVTdHIoY29uc3QgeG1sQ2hhciAqc3RyLCBjb25zdCB4bWxDaGFyICpsaXN0KSB7CisgICAgeG1sQ2hhciAqcmV0LCBjaDsKKyAgICB4bWxDaGFyICp0ZW1wOworICAgIGNvbnN0IHhtbENoYXIgKmluOworCisgICAgdW5zaWduZWQgaW50IGxlbiwgb3V0OworCisgICAgaWYgKHN0ciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoc3RyWzBdID09IDApCisJcmV0dXJuKHhtbFN0cmR1cChzdHIpKTsKKyAgICBsZW4gPSB4bWxTdHJsZW4oc3RyKTsKKyAgICBpZiAoIShsZW4gPiAwKSkgcmV0dXJuKE5VTEwpOworCisgICAgbGVuICs9IDIwOworICAgIHJldCA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhsZW4pOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sVVJJRXNjYXBlU3RyOiBvdXQgb2YgbWVtb3J5XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGluID0gKGNvbnN0IHhtbENoYXIgKikgc3RyOworICAgIG91dCA9IDA7CisgICAgd2hpbGUoKmluICE9IDApIHsKKwlpZiAobGVuIC0gb3V0IDw9IDMpIHsKKwkgICAgbGVuICs9IDIwOworCSAgICB0ZW1wID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhyZXQsIGxlbik7CisJICAgIGlmICh0ZW1wID09IE5VTEwpIHsKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkieG1sVVJJRXNjYXBlU3RyOiBvdXQgb2YgbWVtb3J5XG4iKTsKKwkJeG1sRnJlZShyZXQpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgcmV0ID0gdGVtcDsKKwl9CisKKwljaCA9ICppbjsKKworCWlmICgoY2ggIT0gJ0AnKSAmJiAoIUlTX1VOUkVTRVJWRUQoY2gpKSAmJiAoIXhtbFN0cmNocihsaXN0LCBjaCkpKSB7CisJICAgIHVuc2lnbmVkIGNoYXIgdmFsOworCSAgICByZXRbb3V0KytdID0gJyUnOworCSAgICB2YWwgPSBjaCA+PiA0OworCSAgICBpZiAodmFsIDw9IDkpCisJCXJldFtvdXQrK10gPSAnMCcgKyB2YWw7CisJICAgIGVsc2UKKwkJcmV0W291dCsrXSA9ICdBJyArIHZhbCAtIDB4QTsKKwkgICAgdmFsID0gY2ggJiAweEY7CisJICAgIGlmICh2YWwgPD0gOSkKKwkJcmV0W291dCsrXSA9ICcwJyArIHZhbDsKKwkgICAgZWxzZQorCQlyZXRbb3V0KytdID0gJ0EnICsgdmFsIC0gMHhBOworCSAgICBpbisrOworCX0gZWxzZSB7CisJICAgIHJldFtvdXQrK10gPSAqaW4rKzsKKwl9CisKKyAgICB9CisgICAgcmV0W291dF0gPSAwOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFVSSUVzY2FwZToKKyAqIEBzdHI6ICB0aGUgc3RyaW5nIG9mIHRoZSBVUkkgdG8gZXNjYXBlCisgKgorICogRXNjYXBpbmcgcm91dGluZSwgZG9lcyBub3QgZG8gdmFsaWRpdHkgY2hlY2tzICEKKyAqIEl0IHdpbGwgdHJ5IHRvIGVzY2FwZSB0aGUgY2hhcnMgbmVlZGluZyB0aGlzLCBidXQgdGhpcyBpcyBoZXVyaXN0aWMKKyAqIGJhc2VkIGl0J3MgaW1wb3NzaWJsZSB0byBiZSBzdXJlLgorICoKKyAqIFJldHVybnMgYW4gY29weSBvZiB0aGUgc3RyaW5nLCBidXQgZXNjYXBlZAorICoKKyAqIDI1IE1heSAyMDAxCisgKiBVc2VzIHhtbFBhcnNlVVJJIGFuZCB4bWxVUklFc2NhcGVTdHIgdG8gdHJ5IHRvIGVzY2FwZSBjb3JyZWN0bHkKKyAqIGFjY29yZGluZyB0byBSRkMyMzk2LgorICogICAtIENhcmwgRG91Z2xhcworICovCit4bWxDaGFyICoKK3htbFVSSUVzY2FwZShjb25zdCB4bWxDaGFyICogc3RyKQoreworICAgIHhtbENoYXIgKnJldCwgKnNlZ21lbnQgPSBOVUxMOworICAgIHhtbFVSSVB0ciB1cmk7CisgICAgaW50IHJldDI7CisKKyNkZWZpbmUgTlVMTENISyhwKSBpZighcCkgeyBcCisgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxVUklFc2NhcGU6IG91dCBvZiBtZW1vcnlcbiIpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlVVJJKHVyaSk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOyB9IFwKKworICAgIGlmIChzdHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHVyaSA9IHhtbENyZWF0ZVVSSSgpOworICAgIGlmICh1cmkgIT0gTlVMTCkgeworCS8qCisJICogQWxsb3cgZXNjYXBpbmcgZXJyb3JzIGluIHRoZSB1bmVzY2FwZWQgZm9ybQorCSAqLworICAgICAgICB1cmktPmNsZWFudXAgPSAxOworICAgICAgICByZXQyID0geG1sUGFyc2VVUklSZWZlcmVuY2UodXJpLCAoY29uc3QgY2hhciAqKXN0cik7CisgICAgICAgIGlmIChyZXQyKSB7CisgICAgICAgICAgICB4bWxGcmVlVVJJKHVyaSk7CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCF1cmkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0ID0gTlVMTDsKKworICAgIGlmICh1cmktPnNjaGVtZSkgeworICAgICAgICBzZWdtZW50ID0geG1sVVJJRXNjYXBlU3RyKEJBRF9DQVNUIHVyaS0+c2NoZW1lLCBCQURfQ0FTVCAiKy0uIik7CisgICAgICAgIE5VTExDSEsoc2VnbWVudCkKKyAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgc2VnbWVudCk7CisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUICI6Iik7CisgICAgICAgIHhtbEZyZWUoc2VnbWVudCk7CisgICAgfQorCisgICAgaWYgKHVyaS0+YXV0aG9yaXR5KSB7CisgICAgICAgIHNlZ21lbnQgPQorICAgICAgICAgICAgeG1sVVJJRXNjYXBlU3RyKEJBRF9DQVNUIHVyaS0+YXV0aG9yaXR5LCBCQURfQ0FTVCAiLz87OkAiKTsKKyAgICAgICAgTlVMTENISyhzZWdtZW50KQorICAgICAgICByZXQgPSB4bWxTdHJjYXQocmV0LCBCQURfQ0FTVCAiLy8iKTsKKyAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgc2VnbWVudCk7CisgICAgICAgIHhtbEZyZWUoc2VnbWVudCk7CisgICAgfQorCisgICAgaWYgKHVyaS0+dXNlcikgeworICAgICAgICBzZWdtZW50ID0geG1sVVJJRXNjYXBlU3RyKEJBRF9DQVNUIHVyaS0+dXNlciwgQkFEX0NBU1QgIjs6Jj0rJCwiKTsKKyAgICAgICAgTlVMTENISyhzZWdtZW50KQorCQlyZXQgPSB4bWxTdHJjYXQocmV0LEJBRF9DQVNUICIvLyIpOwkKKyAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgc2VnbWVudCk7CisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUICJAIik7CisgICAgICAgIHhtbEZyZWUoc2VnbWVudCk7CisgICAgfQorCisgICAgaWYgKHVyaS0+c2VydmVyKSB7CisgICAgICAgIHNlZ21lbnQgPSB4bWxVUklFc2NhcGVTdHIoQkFEX0NBU1QgdXJpLT5zZXJ2ZXIsIEJBRF9DQVNUICIvPzs6QCIpOworICAgICAgICBOVUxMQ0hLKHNlZ21lbnQpCisJCWlmICh1cmktPnVzZXIgPT0gTlVMTCkKKwkJcmV0ID0geG1sU3RyY2F0KHJldCwgQkFEX0NBU1QgIi8vIik7CisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIHNlZ21lbnQpOworICAgICAgICB4bWxGcmVlKHNlZ21lbnQpOworICAgIH0KKworICAgIGlmICh1cmktPnBvcnQpIHsKKyAgICAgICAgeG1sQ2hhciBwb3J0WzEwXTsKKworICAgICAgICBzbnByaW50ZigoY2hhciAqKSBwb3J0LCAxMCwgIiVkIiwgdXJpLT5wb3J0KTsKKyAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgQkFEX0NBU1QgIjoiKTsKKyAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgcG9ydCk7CisgICAgfQorCisgICAgaWYgKHVyaS0+cGF0aCkgeworICAgICAgICBzZWdtZW50ID0KKyAgICAgICAgICAgIHhtbFVSSUVzY2FwZVN0cihCQURfQ0FTVCB1cmktPnBhdGgsIEJBRF9DQVNUICI6QCY9KyQsLz87Iik7CisgICAgICAgIE5VTExDSEsoc2VnbWVudCkKKyAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgc2VnbWVudCk7CisgICAgICAgIHhtbEZyZWUoc2VnbWVudCk7CisgICAgfQorCisgICAgaWYgKHVyaS0+cXVlcnlfcmF3KSB7CisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUICI/Iik7CisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUIHVyaS0+cXVlcnlfcmF3KTsKKyAgICB9CisgICAgZWxzZSBpZiAodXJpLT5xdWVyeSkgeworICAgICAgICBzZWdtZW50ID0KKyAgICAgICAgICAgIHhtbFVSSUVzY2FwZVN0cihCQURfQ0FTVCB1cmktPnF1ZXJ5LCBCQURfQ0FTVCAiOy8/OkAmPSssJCIpOworICAgICAgICBOVUxMQ0hLKHNlZ21lbnQpCisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUICI/Iik7CisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIHNlZ21lbnQpOworICAgICAgICB4bWxGcmVlKHNlZ21lbnQpOworICAgIH0KKworICAgIGlmICh1cmktPm9wYXF1ZSkgeworICAgICAgICBzZWdtZW50ID0geG1sVVJJRXNjYXBlU3RyKEJBRF9DQVNUIHVyaS0+b3BhcXVlLCBCQURfQ0FTVCAiIik7CisgICAgICAgIE5VTExDSEsoc2VnbWVudCkKKyAgICAgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgc2VnbWVudCk7CisgICAgICAgIHhtbEZyZWUoc2VnbWVudCk7CisgICAgfQorCisgICAgaWYgKHVyaS0+ZnJhZ21lbnQpIHsKKyAgICAgICAgc2VnbWVudCA9IHhtbFVSSUVzY2FwZVN0cihCQURfQ0FTVCB1cmktPmZyYWdtZW50LCBCQURfQ0FTVCAiIyIpOworICAgICAgICBOVUxMQ0hLKHNlZ21lbnQpCisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUICIjIik7CisgICAgICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIHNlZ21lbnQpOworICAgICAgICB4bWxGcmVlKHNlZ21lbnQpOworICAgIH0KKworICAgIHhtbEZyZWVVUkkodXJpKTsKKyN1bmRlZiBOVUxMQ0hLCisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlQdWJsaWMgZnVuY3Rpb25zCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxCdWlsZFVSSToKKyAqIEBVUkk6ICB0aGUgVVJJIGluc3RhbmNlIGZvdW5kIGluIHRoZSBkb2N1bWVudAorICogQGJhc2U6ICB0aGUgYmFzZSB2YWx1ZQorICoKKyAqIENvbXB1dGVzIGhlIGZpbmFsIFVSSSBvZiB0aGUgcmVmZXJlbmNlIGRvbmUgYnkgY2hlY2tpbmcgdGhhdAorICogdGhlIGdpdmVuIFVSSSBpcyB2YWxpZCwgYW5kIGJ1aWxkaW5nIHRoZSBmaW5hbCBVUkkgdXNpbmcgdGhlCisgKiBiYXNlIFVSSS4gVGhpcyBpcyBwcm9jZXNzZWQgYWNjb3JkaW5nIHRvIHNlY3Rpb24gNS4yIG9mIHRoZSAKKyAqIFJGQyAyMzk2CisgKgorICogNS4yLiBSZXNvbHZpbmcgUmVsYXRpdmUgUmVmZXJlbmNlcyB0byBBYnNvbHV0ZSBGb3JtCisgKgorICogUmV0dXJucyBhIG5ldyBVUkkgc3RyaW5nICh0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyKSBvciBOVUxMIGluIGNhc2UKKyAqICAgICAgICAgb2YgZXJyb3IuCisgKi8KK3htbENoYXIgKgoreG1sQnVpbGRVUkkoY29uc3QgeG1sQ2hhciAqVVJJLCBjb25zdCB4bWxDaGFyICpiYXNlKSB7CisgICAgeG1sQ2hhciAqdmFsID0gTlVMTDsKKyAgICBpbnQgcmV0LCBsZW4sIGluZHgsIGN1ciwgb3V0OworICAgIHhtbFVSSVB0ciByZWYgPSBOVUxMOworICAgIHhtbFVSSVB0ciBiYXMgPSBOVUxMOworICAgIHhtbFVSSVB0ciByZXMgPSBOVUxMOworCisgICAgLyoKKyAgICAgKiAxKSBUaGUgVVJJIHJlZmVyZW5jZSBpcyBwYXJzZWQgaW50byB0aGUgcG90ZW50aWFsIGZvdXIgY29tcG9uZW50cyBhbmQKKyAgICAgKiAgICBmcmFnbWVudCBpZGVudGlmaWVyLCBhcyBkZXNjcmliZWQgaW4gU2VjdGlvbiA0LjMuCisgICAgICoKKyAgICAgKiAgICBOT1RFIHRoYXQgYSBjb21wbGV0ZWx5IGVtcHR5IFVSSSBpcyB0cmVhdGVkIGJ5IG1vZGVybiBicm93c2VycworICAgICAqICAgIGFzIGEgcmVmZXJlbmNlIHRvICIuIiByYXRoZXIgdGhhbiBhcyBhIHN5bm9ueW0gZm9yIHRoZSBjdXJyZW50CisgICAgICogICAgVVJJLiAgU2hvdWxkIHdlIGRvIHRoYXQgaGVyZT8KKyAgICAgKi8KKyAgICBpZiAoVVJJID09IE5VTEwpIAorCXJldCA9IC0xOworICAgIGVsc2UgeworCWlmICgqVVJJKSB7CisJICAgIHJlZiA9IHhtbENyZWF0ZVVSSSgpOworCSAgICBpZiAocmVmID09IE5VTEwpCisJCWdvdG8gZG9uZTsKKwkgICAgcmV0ID0geG1sUGFyc2VVUklSZWZlcmVuY2UocmVmLCAoY29uc3QgY2hhciAqKSBVUkkpOworCX0KKwllbHNlCisJICAgIHJldCA9IDA7CisgICAgfQorICAgIGlmIChyZXQgIT0gMCkKKwlnb3RvIGRvbmU7CisgICAgaWYgKChyZWYgIT0gTlVMTCkgJiYgKHJlZi0+c2NoZW1lICE9IE5VTEwpKSB7CisJLyoKKwkgKiBUaGUgVVJJIGlzIGFic29sdXRlIGRvbid0IG1vZGlmeS4KKwkgKi8KKwl2YWwgPSB4bWxTdHJkdXAoVVJJKTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIGlmIChiYXNlID09IE5VTEwpCisJcmV0ID0gLTE7CisgICAgZWxzZSB7CisJYmFzID0geG1sQ3JlYXRlVVJJKCk7CisJaWYgKGJhcyA9PSBOVUxMKQorCSAgICBnb3RvIGRvbmU7CisJcmV0ID0geG1sUGFyc2VVUklSZWZlcmVuY2UoYmFzLCAoY29uc3QgY2hhciAqKSBiYXNlKTsKKyAgICB9CisgICAgaWYgKHJldCAhPSAwKSB7CisJaWYgKHJlZikKKwkgICAgdmFsID0geG1sU2F2ZVVyaShyZWYpOworCWdvdG8gZG9uZTsKKyAgICB9CisgICAgaWYgKHJlZiA9PSBOVUxMKSB7CisJLyoKKwkgKiB0aGUgYmFzZSBmcmFnbWVudCBtdXN0IGJlIGlnbm9yZWQKKwkgKi8KKwlpZiAoYmFzLT5mcmFnbWVudCAhPSBOVUxMKSB7CisJICAgIHhtbEZyZWUoYmFzLT5mcmFnbWVudCk7CisJICAgIGJhcy0+ZnJhZ21lbnQgPSBOVUxMOworCX0KKwl2YWwgPSB4bWxTYXZlVXJpKGJhcyk7CisJZ290byBkb25lOworICAgIH0KKworICAgIC8qCisgICAgICogMikgSWYgdGhlIHBhdGggY29tcG9uZW50IGlzIGVtcHR5IGFuZCB0aGUgc2NoZW1lLCBhdXRob3JpdHksIGFuZAorICAgICAqICAgIHF1ZXJ5IGNvbXBvbmVudHMgYXJlIHVuZGVmaW5lZCwgdGhlbiBpdCBpcyBhIHJlZmVyZW5jZSB0byB0aGUKKyAgICAgKiAgICBjdXJyZW50IGRvY3VtZW50IGFuZCB3ZSBhcmUgZG9uZS4gIE90aGVyd2lzZSwgdGhlIHJlZmVyZW5jZSBVUkkncworICAgICAqICAgIHF1ZXJ5IGFuZCBmcmFnbWVudCBjb21wb25lbnRzIGFyZSBkZWZpbmVkIGFzIGZvdW5kIChvciBub3QgZm91bmQpCisgICAgICogICAgd2l0aGluIHRoZSBVUkkgcmVmZXJlbmNlIGFuZCBub3QgaW5oZXJpdGVkIGZyb20gdGhlIGJhc2UgVVJJLgorICAgICAqCisgICAgICogICAgTk9URSB0aGF0IGluIG1vZGVybiBicm93c2VycywgdGhlIHBhcnNpbmcgZGlmZmVycyBmcm9tIHRoZSBhYm92ZQorICAgICAqICAgIGluIHRoZSBmb2xsb3dpbmcgYXNwZWN0OiAgdGhlIHF1ZXJ5IGNvbXBvbmVudCBpcyBhbGxvd2VkIHRvIGJlCisgICAgICogICAgZGVmaW5lZCB3aGlsZSBzdGlsbCB0cmVhdGluZyB0aGlzIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50CisgICAgICogICAgZG9jdW1lbnQuCisgICAgICovCisgICAgcmVzID0geG1sQ3JlYXRlVVJJKCk7CisgICAgaWYgKHJlcyA9PSBOVUxMKQorCWdvdG8gZG9uZTsKKyAgICBpZiAoKHJlZi0+c2NoZW1lID09IE5VTEwpICYmIChyZWYtPnBhdGggPT0gTlVMTCkgJiYKKwkoKHJlZi0+YXV0aG9yaXR5ID09IE5VTEwpICYmIChyZWYtPnNlcnZlciA9PSBOVUxMKSkpIHsKKwlpZiAoYmFzLT5zY2hlbWUgIT0gTlVMTCkKKwkgICAgcmVzLT5zY2hlbWUgPSB4bWxNZW1TdHJkdXAoYmFzLT5zY2hlbWUpOworCWlmIChiYXMtPmF1dGhvcml0eSAhPSBOVUxMKQorCSAgICByZXMtPmF1dGhvcml0eSA9IHhtbE1lbVN0cmR1cChiYXMtPmF1dGhvcml0eSk7CisJZWxzZSBpZiAoYmFzLT5zZXJ2ZXIgIT0gTlVMTCkgeworCSAgICByZXMtPnNlcnZlciA9IHhtbE1lbVN0cmR1cChiYXMtPnNlcnZlcik7CisJICAgIGlmIChiYXMtPnVzZXIgIT0gTlVMTCkKKwkJcmVzLT51c2VyID0geG1sTWVtU3RyZHVwKGJhcy0+dXNlcik7CisJICAgIHJlcy0+cG9ydCA9IGJhcy0+cG9ydDsJCQorCX0KKwlpZiAoYmFzLT5wYXRoICE9IE5VTEwpCisJICAgIHJlcy0+cGF0aCA9IHhtbE1lbVN0cmR1cChiYXMtPnBhdGgpOworCWlmIChyZWYtPnF1ZXJ5X3JhdyAhPSBOVUxMKQorCSAgICByZXMtPnF1ZXJ5X3JhdyA9IHhtbE1lbVN0cmR1cCAocmVmLT5xdWVyeV9yYXcpOworCWVsc2UgaWYgKHJlZi0+cXVlcnkgIT0gTlVMTCkKKwkgICAgcmVzLT5xdWVyeSA9IHhtbE1lbVN0cmR1cChyZWYtPnF1ZXJ5KTsKKwllbHNlIGlmIChiYXMtPnF1ZXJ5X3JhdyAhPSBOVUxMKQorCSAgICByZXMtPnF1ZXJ5X3JhdyA9IHhtbE1lbVN0cmR1cChiYXMtPnF1ZXJ5X3Jhdyk7CisJZWxzZSBpZiAoYmFzLT5xdWVyeSAhPSBOVUxMKQorCSAgICByZXMtPnF1ZXJ5ID0geG1sTWVtU3RyZHVwKGJhcy0+cXVlcnkpOworCWlmIChyZWYtPmZyYWdtZW50ICE9IE5VTEwpCisJICAgIHJlcy0+ZnJhZ21lbnQgPSB4bWxNZW1TdHJkdXAocmVmLT5mcmFnbWVudCk7CisJZ290byBzdGVwXzc7CisgICAgfQorCisgICAgLyoKKyAgICAgKiAzKSBJZiB0aGUgc2NoZW1lIGNvbXBvbmVudCBpcyBkZWZpbmVkLCBpbmRpY2F0aW5nIHRoYXQgdGhlIHJlZmVyZW5jZQorICAgICAqICAgIHN0YXJ0cyB3aXRoIGEgc2NoZW1lIG5hbWUsIHRoZW4gdGhlIHJlZmVyZW5jZSBpcyBpbnRlcnByZXRlZCBhcyBhbgorICAgICAqICAgIGFic29sdXRlIFVSSSBhbmQgd2UgYXJlIGRvbmUuICBPdGhlcndpc2UsIHRoZSByZWZlcmVuY2UgVVJJJ3MKKyAgICAgKiAgICBzY2hlbWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIGJhc2UgVVJJJ3Mgc2NoZW1lIGNvbXBvbmVudC4KKyAgICAgKi8KKyAgICBpZiAocmVmLT5zY2hlbWUgIT0gTlVMTCkgeworCXZhbCA9IHhtbFNhdmVVcmkocmVmKTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIGlmIChiYXMtPnNjaGVtZSAhPSBOVUxMKQorCXJlcy0+c2NoZW1lID0geG1sTWVtU3RyZHVwKGJhcy0+c2NoZW1lKTsKKyAKKyAgICBpZiAocmVmLT5xdWVyeV9yYXcgIT0gTlVMTCkKKwlyZXMtPnF1ZXJ5X3JhdyA9IHhtbE1lbVN0cmR1cChyZWYtPnF1ZXJ5X3Jhdyk7CisgICAgZWxzZSBpZiAocmVmLT5xdWVyeSAhPSBOVUxMKQorCXJlcy0+cXVlcnkgPSB4bWxNZW1TdHJkdXAocmVmLT5xdWVyeSk7CisgICAgaWYgKHJlZi0+ZnJhZ21lbnQgIT0gTlVMTCkKKwlyZXMtPmZyYWdtZW50ID0geG1sTWVtU3RyZHVwKHJlZi0+ZnJhZ21lbnQpOworCisgICAgLyoKKyAgICAgKiA0KSBJZiB0aGUgYXV0aG9yaXR5IGNvbXBvbmVudCBpcyBkZWZpbmVkLCB0aGVuIHRoZSByZWZlcmVuY2UgaXMgYQorICAgICAqICAgIG5ldHdvcmstcGF0aCBhbmQgd2Ugc2tpcCB0byBzdGVwIDcuICBPdGhlcndpc2UsIHRoZSByZWZlcmVuY2UKKyAgICAgKiAgICBVUkkncyBhdXRob3JpdHkgaXMgaW5oZXJpdGVkIGZyb20gdGhlIGJhc2UgVVJJJ3MgYXV0aG9yaXR5CisgICAgICogICAgY29tcG9uZW50LCB3aGljaCB3aWxsIGFsc28gYmUgdW5kZWZpbmVkIGlmIHRoZSBVUkkgc2NoZW1lIGRvZXMgbm90CisgICAgICogICAgdXNlIGFuIGF1dGhvcml0eSBjb21wb25lbnQuCisgICAgICovCisgICAgaWYgKChyZWYtPmF1dGhvcml0eSAhPSBOVUxMKSB8fCAocmVmLT5zZXJ2ZXIgIT0gTlVMTCkpIHsKKwlpZiAocmVmLT5hdXRob3JpdHkgIT0gTlVMTCkKKwkgICAgcmVzLT5hdXRob3JpdHkgPSB4bWxNZW1TdHJkdXAocmVmLT5hdXRob3JpdHkpOworCWVsc2UgeworCSAgICByZXMtPnNlcnZlciA9IHhtbE1lbVN0cmR1cChyZWYtPnNlcnZlcik7CisJICAgIGlmIChyZWYtPnVzZXIgIT0gTlVMTCkKKwkJcmVzLT51c2VyID0geG1sTWVtU3RyZHVwKHJlZi0+dXNlcik7CisgICAgICAgICAgICByZXMtPnBvcnQgPSByZWYtPnBvcnQ7CQkKKwl9CisJaWYgKHJlZi0+cGF0aCAhPSBOVUxMKQorCSAgICByZXMtPnBhdGggPSB4bWxNZW1TdHJkdXAocmVmLT5wYXRoKTsKKwlnb3RvIHN0ZXBfNzsKKyAgICB9CisgICAgaWYgKGJhcy0+YXV0aG9yaXR5ICE9IE5VTEwpCisJcmVzLT5hdXRob3JpdHkgPSB4bWxNZW1TdHJkdXAoYmFzLT5hdXRob3JpdHkpOworICAgIGVsc2UgaWYgKGJhcy0+c2VydmVyICE9IE5VTEwpIHsKKwlyZXMtPnNlcnZlciA9IHhtbE1lbVN0cmR1cChiYXMtPnNlcnZlcik7CisJaWYgKGJhcy0+dXNlciAhPSBOVUxMKQorCSAgICByZXMtPnVzZXIgPSB4bWxNZW1TdHJkdXAoYmFzLT51c2VyKTsKKwlyZXMtPnBvcnQgPSBiYXMtPnBvcnQ7CQkKKyAgICB9CisKKyAgICAvKgorICAgICAqIDUpIElmIHRoZSBwYXRoIGNvbXBvbmVudCBiZWdpbnMgd2l0aCBhIHNsYXNoIGNoYXJhY3RlciAoIi8iKSwgdGhlbgorICAgICAqICAgIHRoZSByZWZlcmVuY2UgaXMgYW4gYWJzb2x1dGUtcGF0aCBhbmQgd2Ugc2tpcCB0byBzdGVwIDcuCisgICAgICovCisgICAgaWYgKChyZWYtPnBhdGggIT0gTlVMTCkgJiYgKHJlZi0+cGF0aFswXSA9PSAnLycpKSB7CisJcmVzLT5wYXRoID0geG1sTWVtU3RyZHVwKHJlZi0+cGF0aCk7CisJZ290byBzdGVwXzc7CisgICAgfQorCisKKyAgICAvKgorICAgICAqIDYpIElmIHRoaXMgc3RlcCBpcyByZWFjaGVkLCB0aGVuIHdlIGFyZSByZXNvbHZpbmcgYSByZWxhdGl2ZS1wYXRoCisgICAgICogICAgcmVmZXJlbmNlLiAgVGhlIHJlbGF0aXZlIHBhdGggbmVlZHMgdG8gYmUgbWVyZ2VkIHdpdGggdGhlIGJhc2UKKyAgICAgKiAgICBVUkkncyBwYXRoLiAgQWx0aG91Z2ggdGhlcmUgYXJlIG1hbnkgd2F5cyB0byBkbyB0aGlzLCB3ZSB3aWxsCisgICAgICogICAgZGVzY3JpYmUgYSBzaW1wbGUgbWV0aG9kIHVzaW5nIGEgc2VwYXJhdGUgc3RyaW5nIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEFsbG9jYXRlIGEgYnVmZmVyIGxhcmdlIGVub3VnaCBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuCisgICAgICovCisgICAgbGVuID0gMjsgLyogZXh0cmEgLyBhbmQgMCAqLworICAgIGlmIChyZWYtPnBhdGggIT0gTlVMTCkKKwlsZW4gKz0gc3RybGVuKHJlZi0+cGF0aCk7CisgICAgaWYgKGJhcy0+cGF0aCAhPSBOVUxMKQorCWxlbiArPSBzdHJsZW4oYmFzLT5wYXRoKTsKKyAgICByZXMtPnBhdGggPSAoY2hhciAqKSB4bWxNYWxsb2NBdG9taWMobGVuKTsKKyAgICBpZiAocmVzLT5wYXRoID09IE5VTEwpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbEJ1aWxkVVJJOiBvdXQgb2YgbWVtb3J5XG4iKTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIHJlcy0+cGF0aFswXSA9IDA7CisKKyAgICAvKgorICAgICAqIGEpIEFsbCBidXQgdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgYmFzZSBVUkkncyBwYXRoIGNvbXBvbmVudCBpcworICAgICAqICAgIGNvcGllZCB0byB0aGUgYnVmZmVyLiAgSW4gb3RoZXIgd29yZHMsIGFueSBjaGFyYWN0ZXJzIGFmdGVyIHRoZQorICAgICAqICAgIGxhc3QgKHJpZ2h0LW1vc3QpIHNsYXNoIGNoYXJhY3RlciwgaWYgYW55LCBhcmUgZXhjbHVkZWQuCisgICAgICovCisgICAgY3VyID0gMDsKKyAgICBvdXQgPSAwOworICAgIGlmIChiYXMtPnBhdGggIT0gTlVMTCkgeworCXdoaWxlIChiYXMtPnBhdGhbY3VyXSAhPSAwKSB7CisJICAgIHdoaWxlICgoYmFzLT5wYXRoW2N1cl0gIT0gMCkgJiYgKGJhcy0+cGF0aFtjdXJdICE9ICcvJykpCisJCWN1cisrOworCSAgICBpZiAoYmFzLT5wYXRoW2N1cl0gPT0gMCkKKwkJYnJlYWs7CisKKwkgICAgY3VyKys7CisJICAgIHdoaWxlIChvdXQgPCBjdXIpIHsKKwkJcmVzLT5wYXRoW291dF0gPSBiYXMtPnBhdGhbb3V0XTsKKwkJb3V0Kys7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJlcy0+cGF0aFtvdXRdID0gMDsKKworICAgIC8qCisgICAgICogYikgVGhlIHJlZmVyZW5jZSdzIHBhdGggY29tcG9uZW50IGlzIGFwcGVuZGVkIHRvIHRoZSBidWZmZXIKKyAgICAgKiAgICBzdHJpbmcuCisgICAgICovCisgICAgaWYgKHJlZi0+cGF0aCAhPSBOVUxMICYmIHJlZi0+cGF0aFswXSAhPSAwKSB7CisJaW5keCA9IDA7CisJLyoKKwkgKiBFbnN1cmUgdGhlIHBhdGggaW5jbHVkZXMgYSAnLycKKwkgKi8KKwlpZiAoKG91dCA9PSAwKSAmJiAoYmFzLT5zZXJ2ZXIgIT0gTlVMTCkpCisJICAgIHJlcy0+cGF0aFtvdXQrK10gPSAnLyc7CisJd2hpbGUgKHJlZi0+cGF0aFtpbmR4XSAhPSAwKSB7CisJICAgIHJlcy0+cGF0aFtvdXQrK10gPSByZWYtPnBhdGhbaW5keCsrXTsKKwl9CisgICAgfQorICAgIHJlcy0+cGF0aFtvdXRdID0gMDsKKworICAgIC8qCisgICAgICogU3RlcHMgYykgdG8gaCkgYXJlIHJlYWxseSBwYXRoIG5vcm1hbGl6YXRpb24gc3RlcHMKKyAgICAgKi8KKyAgICB4bWxOb3JtYWxpemVVUklQYXRoKHJlcy0+cGF0aCk7CisKK3N0ZXBfNzoKKworICAgIC8qCisgICAgICogNykgVGhlIHJlc3VsdGluZyBVUkkgY29tcG9uZW50cywgaW5jbHVkaW5nIGFueSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICBiYXNlIFVSSSwgYXJlIHJlY29tYmluZWQgdG8gZ2l2ZSB0aGUgYWJzb2x1dGUgZm9ybSBvZiB0aGUgVVJJCisgICAgICogICAgcmVmZXJlbmNlLgorICAgICAqLworICAgIHZhbCA9IHhtbFNhdmVVcmkocmVzKTsKKworZG9uZToKKyAgICBpZiAocmVmICE9IE5VTEwpCisJeG1sRnJlZVVSSShyZWYpOworICAgIGlmIChiYXMgIT0gTlVMTCkKKwl4bWxGcmVlVVJJKGJhcyk7CisgICAgaWYgKHJlcyAhPSBOVUxMKQorCXhtbEZyZWVVUkkocmVzKTsKKyAgICByZXR1cm4odmFsKTsKK30KKworLyoqCisgKiB4bWxCdWlsZFJlbGF0aXZlVVJJOgorICogQFVSSTogIHRoZSBVUkkgcmVmZXJlbmNlIHVuZGVyIGNvbnNpZGVyYXRpb24KKyAqIEBiYXNlOiAgdGhlIGJhc2UgdmFsdWUKKyAqCisgKiBFeHByZXNzZXMgdGhlIFVSSSBvZiB0aGUgcmVmZXJlbmNlIGluIHRlcm1zIHJlbGF0aXZlIHRvIHRoZQorICogYmFzZS4gIFNvbWUgZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gaW5jbHVkZToKKyAqICAgICBiYXNlID0gImh0dHA6Ly9zaXRlMS5jb20vZG9jcy9ib29rMS5odG1sIgorICogICAgICAgIFVSSSBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgIFVSSSByZXR1cm5lZAorICogICAgIGRvY3MvcGljMS5naWYgICAgICAgICAgICAgICAgICAgIHBpYzEuZ2lmCisgKiAgICAgZG9jcy9pbWcvcGljMS5naWYgICAgICAgICAgICAgICAgaW1nL3BpYzEuZ2lmCisgKiAgICAgaW1nL3BpYzEuZ2lmICAgICAgICAgICAgICAgICAgICAgLi4vaW1nL3BpYzEuZ2lmCisgKiAgICAgaHR0cDovL3NpdGUxLmNvbS9kb2NzL3BpYzEuZ2lmICAgcGljMS5naWYKKyAqICAgICBodHRwOi8vc2l0ZTIuY29tL2RvY3MvcGljMS5naWYgICBodHRwOi8vc2l0ZTIuY29tL2RvY3MvcGljMS5naWYKKyAqCisgKiAgICAgYmFzZSA9ICJkb2NzL2Jvb2sxLmh0bWwiCisgKiAgICAgICAgVVJJIGlucHV0ICAgICAgICAgICAgICAgICAgICAgICAgVVJJIHJldHVybmVkCisgKiAgICAgZG9jcy9waWMxLmdpZiAgICAgICAgICAgICAgICAgICAgcGljMS5naWYKKyAqICAgICBkb2NzL2ltZy9waWMxLmdpZiAgICAgICAgICAgICAgICBpbWcvcGljMS5naWYKKyAqICAgICBpbWcvcGljMS5naWYgICAgICAgICAgICAgICAgICAgICAuLi9pbWcvcGljMS5naWYKKyAqICAgICBodHRwOi8vc2l0ZTEuY29tL2RvY3MvcGljMS5naWYgICBodHRwOi8vc2l0ZTEuY29tL2RvY3MvcGljMS5naWYKKyAqCisgKgorICogTm90ZTogaWYgdGhlIFVSSSByZWZlcmVuY2UgaXMgcmVhbGx5IHdpZXJkIG9yIGNvbXBsaWNhdGVkLCBpdCBtYXkgYmUKKyAqICAgICAgIHdvcnRod2hpbGUgdG8gZmlyc3QgY29udmVydCBpdCBpbnRvIGEgIm5pY2UiIG9uZSBieSBjYWxsaW5nCisgKiAgICAgICB4bWxCdWlsZFVSSSAodXNpbmcgJ2Jhc2UnKSBiZWZvcmUgY2FsbGluZyB0aGlzIHJvdXRpbmUsCisgKiAgICAgICBzaW5jZSB0aGlzIHJvdXRpbmUgKGZvciByZWFzb25hYmxlIGVmZmljaWVuY3kpIGFzc3VtZXMgVVJJIGhhcworICogICAgICAgYWxyZWFkeSBiZWVuIHRocm91Z2ggc29tZSB2YWxpZGF0aW9uLgorICoKKyAqIFJldHVybnMgYSBuZXcgVVJJIHN0cmluZyAodG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlcikgb3IgTlVMTCBpbiBjYXNlCisgKiBlcnJvci4KKyAqLworeG1sQ2hhciAqCit4bWxCdWlsZFJlbGF0aXZlVVJJIChjb25zdCB4bWxDaGFyICogVVJJLCBjb25zdCB4bWxDaGFyICogYmFzZSkKK3sKKyAgICB4bWxDaGFyICp2YWwgPSBOVUxMOworICAgIGludCByZXQ7CisgICAgaW50IGl4OworICAgIGludCBwb3MgPSAwOworICAgIGludCBuYnNsYXNoID0gMDsKKyAgICBpbnQgbGVuOworICAgIHhtbFVSSVB0ciByZWYgPSBOVUxMOworICAgIHhtbFVSSVB0ciBiYXMgPSBOVUxMOworICAgIHhtbENoYXIgKmJwdHIsICp1cHRyLCAqdnB0cjsKKyAgICBpbnQgcmVtb3ZlX3BhdGggPSAwOworCisgICAgaWYgKChVUkkgPT0gTlVMTCkgfHwgKCpVUkkgPT0gMCkpCisJcmV0dXJuIE5VTEw7CisKKyAgICAvKgorICAgICAqIEZpcnN0IHBhcnNlIFVSSSBpbnRvIGEgc3RhbmRhcmQgZm9ybQorICAgICAqLworICAgIHJlZiA9IHhtbENyZWF0ZVVSSSAoKTsKKyAgICBpZiAocmVmID09IE5VTEwpCisJcmV0dXJuIE5VTEw7CisgICAgLyogSWYgVVJJIG5vdCBhbHJlYWR5IGluICJyZWxhdGl2ZSIgZm9ybSAqLworICAgIGlmIChVUklbMF0gIT0gJy4nKSB7CisJcmV0ID0geG1sUGFyc2VVUklSZWZlcmVuY2UgKHJlZiwgKGNvbnN0IGNoYXIgKikgVVJJKTsKKwlpZiAocmV0ICE9IDApCisJICAgIGdvdG8gZG9uZTsJCS8qIEVycm9yIGluIFVSSSwgcmV0dXJuIE5VTEwgKi8KKyAgICB9IGVsc2UKKwlyZWYtPnBhdGggPSAoY2hhciAqKXhtbFN0cmR1cChVUkkpOworCisgICAgLyoKKyAgICAgKiBOZXh0IHBhcnNlIGJhc2UgaW50byB0aGUgc2FtZSBzdGFuZGFyZCBmb3JtCisgICAgICovCisgICAgaWYgKChiYXNlID09IE5VTEwpIHx8ICgqYmFzZSA9PSAwKSkgeworCXZhbCA9IHhtbFN0cmR1cCAoVVJJKTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIGJhcyA9IHhtbENyZWF0ZVVSSSAoKTsKKyAgICBpZiAoYmFzID09IE5VTEwpCisJZ290byBkb25lOworICAgIGlmIChiYXNlWzBdICE9ICcuJykgeworCXJldCA9IHhtbFBhcnNlVVJJUmVmZXJlbmNlIChiYXMsIChjb25zdCBjaGFyICopIGJhc2UpOworCWlmIChyZXQgIT0gMCkKKwkgICAgZ290byBkb25lOwkJLyogRXJyb3IgaW4gYmFzZSwgcmV0dXJuIE5VTEwgKi8KKyAgICB9IGVsc2UKKwliYXMtPnBhdGggPSAoY2hhciAqKXhtbFN0cmR1cChiYXNlKTsKKworICAgIC8qCisgICAgICogSWYgdGhlIHNjaGVtZSAvIHNlcnZlciBvbiB0aGUgVVJJIGRpZmZlcnMgZnJvbSB0aGUgYmFzZSwKKyAgICAgKiBqdXN0IHJldHVybiB0aGUgVVJJCisgICAgICovCisgICAgaWYgKChyZWYtPnNjaGVtZSAhPSBOVUxMKSAmJgorCSgoYmFzLT5zY2hlbWUgPT0gTlVMTCkgfHwKKwkgKHhtbFN0cmNtcCAoKHhtbENoYXIgKiliYXMtPnNjaGVtZSwgKHhtbENoYXIgKilyZWYtPnNjaGVtZSkpIHx8CisJICh4bWxTdHJjbXAgKCh4bWxDaGFyICopYmFzLT5zZXJ2ZXIsICh4bWxDaGFyICopcmVmLT5zZXJ2ZXIpKSkpIHsKKwl2YWwgPSB4bWxTdHJkdXAgKFVSSSk7CisJZ290byBkb25lOworICAgIH0KKyAgICBpZiAoeG1sU3RyRXF1YWwoKHhtbENoYXIgKiliYXMtPnBhdGgsICh4bWxDaGFyICopcmVmLT5wYXRoKSkgeworCXZhbCA9IHhtbFN0cmR1cChCQURfQ0FTVCAiIik7CisJZ290byBkb25lOworICAgIH0KKyAgICBpZiAoYmFzLT5wYXRoID09IE5VTEwpIHsKKwl2YWwgPSB4bWxTdHJkdXAoKHhtbENoYXIgKilyZWYtPnBhdGgpOworCWdvdG8gZG9uZTsKKyAgICB9CisgICAgaWYgKHJlZi0+cGF0aCA9PSBOVUxMKSB7CisgICAgICAgIHJlZi0+cGF0aCA9IChjaGFyICopICIvIjsKKwlyZW1vdmVfcGF0aCA9IDE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBdCB0aGlzIHBvaW50IChhdCBsYXN0ISkgd2UgY2FuIGNvbXBhcmUgdGhlIHR3byBwYXRocworICAgICAqCisgICAgICogRmlyc3Qgd2UgdGFrZSBjYXJlIG9mIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgZWl0aGVyIG9mIHRoZQorICAgICAqIHR3byBwYXRoIGNvbXBvbmVudHMgbWF5IGJlIG1pc3NpbmcgKGJ1ZyAzMTYyMjQpCisgICAgICovCisgICAgaWYgKGJhcy0+cGF0aCA9PSBOVUxMKSB7CisJaWYgKHJlZi0+cGF0aCAhPSBOVUxMKSB7CisJICAgIHVwdHIgPSAoeG1sQ2hhciAqKSByZWYtPnBhdGg7CisJICAgIGlmICgqdXB0ciA9PSAnLycpCisJCXVwdHIrKzsKKwkgICAgLyogZXhjZXB0aW9uIGNoYXJhY3RlcnMgZnJvbSB4bWxTYXZlVXJpICovCisJICAgIHZhbCA9IHhtbFVSSUVzY2FwZVN0cih1cHRyLCBCQURfQ0FTVCAiLzsmPSskLCIpOworCX0KKwlnb3RvIGRvbmU7CisgICAgfQorICAgIGJwdHIgPSAoeG1sQ2hhciAqKWJhcy0+cGF0aDsKKyAgICBpZiAocmVmLT5wYXRoID09IE5VTEwpIHsKKwlmb3IgKGl4ID0gMDsgYnB0cltpeF0gIT0gMDsgaXgrKykgeworCSAgICBpZiAoYnB0cltpeF0gPT0gJy8nKQorCQluYnNsYXNoKys7CisJfQorCXVwdHIgPSBOVUxMOworCWxlbiA9IDE7CS8qIHRoaXMgaXMgZm9yIGEgc3RyaW5nIHRlcm1pbmF0b3Igb25seSAqLworICAgIH0gZWxzZSB7CisgICAgLyoKKyAgICAgKiBOZXh0IHdlIGNvbXBhcmUgdGhlIHR3byBzdHJpbmdzIGFuZCBmaW5kIHdoZXJlIHRoZXkgZmlyc3QgZGlmZmVyCisgICAgICovCisJaWYgKChyZWYtPnBhdGhbcG9zXSA9PSAnLicpICYmIChyZWYtPnBhdGhbcG9zKzFdID09ICcvJykpCisgICAgICAgICAgICBwb3MgKz0gMjsKKwlpZiAoKCpicHRyID09ICcuJykgJiYgKGJwdHJbMV0gPT0gJy8nKSkKKyAgICAgICAgICAgIGJwdHIgKz0gMjsKKwllbHNlIGlmICgoKmJwdHIgPT0gJy8nKSAmJiAocmVmLT5wYXRoW3Bvc10gIT0gJy8nKSkKKwkgICAgYnB0cisrOworCXdoaWxlICgoYnB0cltwb3NdID09IHJlZi0+cGF0aFtwb3NdKSAmJiAoYnB0cltwb3NdICE9IDApKQorCSAgICBwb3MrKzsKKworCWlmIChicHRyW3Bvc10gPT0gcmVmLT5wYXRoW3Bvc10pIHsKKwkgICAgdmFsID0geG1sU3RyZHVwKEJBRF9DQVNUICIiKTsKKwkgICAgZ290byBkb25lOwkJLyogKEkgY2FuJ3QgaW1hZ2luZSB3aHkgYW55b25lIHdvdWxkIGRvIHRoaXMpICovCisJfQorCisJLyoKKwkgKiBJbiBVUkksICJiYWNrIHVwIiB0byB0aGUgbGFzdCAnLycgZW5jb3VudGVyZWQuICBUaGlzIHdpbGwgYmUgdGhlCisJICogYmVnaW5uaW5nIG9mIHRoZSAidW5pcXVlIiBzdWZmaXggb2YgVVJJCisJICovCisJaXggPSBwb3M7CisJaWYgKChyZWYtPnBhdGhbaXhdID09ICcvJykgJiYgKGl4ID4gMCkpCisJICAgIGl4LS07CisJZWxzZSBpZiAoKHJlZi0+cGF0aFtpeF0gPT0gMCkgJiYgKGl4ID4gMSkgJiYgKHJlZi0+cGF0aFtpeCAtIDFdID09ICcvJykpCisJICAgIGl4IC09IDI7CisJZm9yICg7IGl4ID4gMDsgaXgtLSkgeworCSAgICBpZiAocmVmLT5wYXRoW2l4XSA9PSAnLycpCisJCWJyZWFrOworCX0KKwlpZiAoaXggPT0gMCkgeworCSAgICB1cHRyID0gKHhtbENoYXIgKilyZWYtPnBhdGg7CisJfSBlbHNlIHsKKwkgICAgaXgrKzsKKwkgICAgdXB0ciA9ICh4bWxDaGFyICopJnJlZi0+cGF0aFtpeF07CisJfQorCisJLyoKKwkgKiBJbiBiYXNlLCBjb3VudCB0aGUgbnVtYmVyIG9mICcvJyBmcm9tIHRoZSBkaWZmZXJpbmcgcG9pbnQKKwkgKi8KKwlpZiAoYnB0cltwb3NdICE9IHJlZi0+cGF0aFtwb3NdKSB7LyogY2hlY2sgZm9yIHRyaXZpYWwgVVJJID09IGJhc2UgKi8KKwkgICAgZm9yICg7IGJwdHJbaXhdICE9IDA7IGl4KyspIHsKKwkJaWYgKGJwdHJbaXhdID09ICcvJykKKwkJICAgIG5ic2xhc2grKzsKKwkgICAgfQorCX0KKwlsZW4gPSB4bWxTdHJsZW4gKHVwdHIpICsgMTsKKyAgICB9CisgICAgCisgICAgaWYgKG5ic2xhc2ggPT0gMCkgeworCWlmICh1cHRyICE9IE5VTEwpCisJICAgIC8qIGV4Y2VwdGlvbiBjaGFyYWN0ZXJzIGZyb20geG1sU2F2ZVVyaSAqLworCSAgICB2YWwgPSB4bWxVUklFc2NhcGVTdHIodXB0ciwgQkFEX0NBU1QgIi87Jj0rJCwiKTsKKwlnb3RvIGRvbmU7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBqdXN0IGVub3VnaCBzcGFjZSBmb3IgdGhlIHJldHVybmVkIHN0cmluZyAtCisgICAgICogbGVuZ3RoIG9mIHRoZSByZW1haW5kZXIgb2YgdGhlIFVSSSwgcGx1cyBlbm91Z2ggc3BhY2UKKyAgICAgKiBmb3IgdGhlICIuLi8iIGdyb3VwcywgcGx1cyBvbmUgZm9yIHRoZSB0ZXJtaW5hdG9yCisgICAgICovCisgICAgdmFsID0gKHhtbENoYXIgKikgeG1sTWFsbG9jIChsZW4gKyAzICogbmJzbGFzaCk7CisgICAgaWYgKHZhbCA9PSBOVUxMKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJ4bWxCdWlsZFJlbGF0aXZlVVJJOiBvdXQgb2YgbWVtb3J5XG4iKTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIHZwdHIgPSB2YWw7CisgICAgLyoKKyAgICAgKiBQdXQgaW4gYXMgbWFueSAiLi4vIiBhcyBuZWVkZWQKKyAgICAgKi8KKyAgICBmb3IgKDsgbmJzbGFzaD4wOyBuYnNsYXNoLS0pIHsKKwkqdnB0cisrID0gJy4nOworCSp2cHRyKysgPSAnLic7CisJKnZwdHIrKyA9ICcvJzsKKyAgICB9CisgICAgLyoKKyAgICAgKiBGaW5pc2ggdXAgd2l0aCB0aGUgZW5kIG9mIHRoZSBVUkkKKyAgICAgKi8KKyAgICBpZiAodXB0ciAhPSBOVUxMKSB7CisgICAgICAgIGlmICgodnB0ciA+IHZhbCkgJiYgKGxlbiA+IDApICYmCisJICAgICh1cHRyWzBdID09ICcvJykgJiYgKHZwdHJbLTFdID09ICcvJykpIHsKKwkgICAgbWVtY3B5ICh2cHRyLCB1cHRyICsgMSwgbGVuIC0gMSk7CisJICAgIHZwdHJbbGVuIC0gMl0gPSAwOworCX0gZWxzZSB7CisJICAgIG1lbWNweSAodnB0ciwgdXB0ciwgbGVuKTsKKwkgICAgdnB0cltsZW4gLSAxXSA9IDA7CisJfQorICAgIH0gZWxzZSB7CisJdnB0cltsZW4gLSAxXSA9IDA7CisgICAgfQorCisgICAgLyogZXNjYXBlIHRoZSBmcmVzaGx5LWJ1aWx0IHBhdGggKi8KKyAgICB2cHRyID0gdmFsOworCS8qIGV4Y2VwdGlvbiBjaGFyYWN0ZXJzIGZyb20geG1sU2F2ZVVyaSAqLworICAgIHZhbCA9IHhtbFVSSUVzY2FwZVN0cih2cHRyLCBCQURfQ0FTVCAiLzsmPSskLCIpOworICAgIHhtbEZyZWUodnB0cik7CisKK2RvbmU6CisgICAgLyoKKyAgICAgKiBGcmVlIHRoZSB3b3JraW5nIHZhcmlhYmxlcworICAgICAqLworICAgIGlmIChyZW1vdmVfcGF0aCAhPSAwKQorICAgICAgICByZWYtPnBhdGggPSBOVUxMOworICAgIGlmIChyZWYgIT0gTlVMTCkKKwl4bWxGcmVlVVJJIChyZWYpOworICAgIGlmIChiYXMgIT0gTlVMTCkKKwl4bWxGcmVlVVJJIChiYXMpOworCisgICAgcmV0dXJuIHZhbDsKK30KKworLyoqCisgKiB4bWxDYW5vbmljUGF0aDoKKyAqIEBwYXRoOiAgdGhlIHJlc291cmNlIGxvY2F0b3IgaW4gYSBmaWxlc3lzdGVtIG5vdGF0aW9uCisgKgorICogQ29uc3RydWN0cyBhIGNhbm9uaWMgcGF0aCBmcm9tIHRoZSBzcGVjaWZpZWQgcGF0aC4gCisgKgorICogUmV0dXJucyBhIG5ldyBjYW5vbmljIHBhdGgsIG9yIGEgZHVwbGljYXRlIG9mIHRoZSBwYXRoIHBhcmFtZXRlciBpZiB0aGUgCisgKiBjb25zdHJ1Y3Rpb24gZmFpbHMuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcgdGhlIG1lbW9yeSBvY2N1cGllZAorICogYnkgdGhlIHJldHVybmVkIHN0cmluZy4gSWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IG1lbW9yeSBhdmFpbGFibGUsIG9yIHRoZSAKKyAqIGFyZ3VtZW50IGlzIE5VTEwsIHRoZSBmdW5jdGlvbiByZXR1cm5zIE5VTEwuCisgKi8KKyNkZWZpbmUgSVNfV0lORE9XU19QQVRIKHApIAkJCQkJXAorCSgocCAhPSBOVUxMKSAmJgkJCQkJCVwKKwkgKCgocFswXSA+PSAnYScpICYmIChwWzBdIDw9ICd6JykpIHx8CQkJXAorCSAgKChwWzBdID49ICdBJykgJiYgKHBbMF0gPD0gJ1onKSkpICYmCQkJXAorCSAocFsxXSA9PSAnOicpICYmICgocFsyXSA9PSAnLycpIHx8IChwWzJdID09ICdcXCcpKSkKK3htbENoYXIgKgoreG1sQ2Fub25pY1BhdGgoY29uc3QgeG1sQ2hhciAqcGF0aCkKK3sKKy8qCisgKiBGb3IgV2luZG93cyBpbXBsZW1lbnRhdGlvbnMsIGFkZGl0aW9uYWwgd29yayBuZWVkcyB0byBiZSBkb25lIHRvCisgKiByZXBsYWNlIGJhY2tzbGFzaGVzIGluIHBhdGhuYW1lcyB3aXRoICJmb3J3YXJkIHNsYXNoZXMiCisgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykgICAgCisgICAgaW50IGxlbiA9IDA7CisgICAgaW50IGkgPSAwOworICAgIHhtbENoYXIgKnAgPSBOVUxMOworI2VuZGlmCisgICAgeG1sVVJJUHRyIHVyaTsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgY29uc3QgeG1sQ2hhciAqYWJzdXJpOworCisgICAgaWYgKHBhdGggPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICAvKiBzYW5pdGl6ZSBmaWxlbmFtZSBzdGFydGluZyB3aXRoIC8vIHNvIGl0IGNhbiBiZSB1c2VkIGFzIFVSSSAqLworICAgIGlmICgocGF0aFswXSA9PSAnLycpICYmIChwYXRoWzFdID09ICcvJykgJiYgKHBhdGhbMl0gIT0gJy8nKSkKKyAgICAgICAgcGF0aCsrOworCisgICAgaWYgKCh1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBwYXRoKSkgIT0gTlVMTCkgeworCXhtbEZyZWVVUkkodXJpKTsKKwlyZXR1cm4geG1sU3RyZHVwKHBhdGgpOworICAgIH0KKworICAgIC8qIENoZWNrIGlmIHRoaXMgaXMgYW4gImFic29sdXRlIHVyaSIgKi8KKyAgICBhYnN1cmkgPSB4bWxTdHJzdHIocGF0aCwgQkFEX0NBU1QgIjovLyIpOworICAgIGlmIChhYnN1cmkgIT0gTlVMTCkgeworICAgICAgICBpbnQgbCwgajsKKwl1bnNpZ25lZCBjaGFyIGM7CisJeG1sQ2hhciAqZXNjVVJJOworCisgICAgICAgIC8qCisJICogdGhpcyBsb29rcyBsaWtlIGFuIFVSSSB3aGVyZSBzb21lIHBhcnRzIGhhdmUgbm90IGJlZW4KKwkgKiBlc2NhcGVkIGxlYWRpbmcgdG8gYSBwYXJzaW5nIHByb2JsZW0uICBDaGVjayB0aGF0IHRoZSBmaXJzdAorCSAqIHBhcnQgbWF0Y2hlcyBhIHByb3RvY29sLgorCSAqLworCWwgPSBhYnN1cmkgLSBwYXRoOworCS8qIEJ5cGFzcyBpZiBmaXJzdCBwYXJ0IChwYXJ0IGJlZm9yZSB0aGUgJzovLycpIGlzID4gMjAgY2hhcnMgKi8KKwlpZiAoKGwgPD0gMCkgfHwgKGwgPiAyMCkpCisJICAgIGdvdG8gcGF0aF9wcm9jZXNzaW5nOworCS8qIEJ5cGFzcyBpZiBhbnkgbm9uLWFscGhhIGNoYXJhY3RlcnMgYXJlIHByZXNlbnQgaW4gZmlyc3QgcGFydCAqLworCWZvciAoaiA9IDA7aiA8IGw7aisrKSB7CisJICAgIGMgPSBwYXRoW2pdOworCSAgICBpZiAoISgoKGMgPj0gJ2EnKSAmJiAoYyA8PSAneicpKSB8fCAoKGMgPj0gJ0EnKSAmJiAoYyA8PSAnWicpKSkpCisJICAgICAgICBnb3RvIHBhdGhfcHJvY2Vzc2luZzsKKwl9CisKKwkvKiBFc2NhcGUgYWxsIGV4Y2VwdCB0aGUgY2hhcmFjdGVycyBzcGVjaWZpZWQgaW4gdGhlIHN1cHBsaWVkIHBhdGggKi8KKyAgICAgICAgZXNjVVJJID0geG1sVVJJRXNjYXBlU3RyKHBhdGgsIEJBRF9DQVNUICI6Lz9fLiMmOz0iKTsKKwlpZiAoZXNjVVJJICE9IE5VTEwpIHsKKwkgICAgLyogVHJ5IHBhcnNpbmcgdGhlIGVzY2FwZWQgcGF0aCAqLworCSAgICB1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBlc2NVUkkpOworCSAgICAvKiBJZiBzdWNjZXNzZnVsLCByZXR1cm4gdGhlIGVzY2FwZWQgc3RyaW5nICovCisJICAgIGlmICh1cmkgIT0gTlVMTCkgeworCSAgICAgICAgeG1sRnJlZVVSSSh1cmkpOworCQlyZXR1cm4gZXNjVVJJOworCSAgICB9CisJfQorICAgIH0KKworcGF0aF9wcm9jZXNzaW5nOgorLyogRm9yIFdpbmRvd3MgaW1wbGVtZW50YXRpb25zLCByZXBsYWNlIGJhY2tzbGFzaGVzIHdpdGggJ2ZvcndhcmQgc2xhc2hlcycgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykgICAgCisgICAgLyoKKyAgICAgKiBDcmVhdGUgYSBVUkkgc3RydWN0dXJlCisgICAgICovCisgICAgdXJpID0geG1sQ3JlYXRlVVJJKCk7CisgICAgaWYgKHVyaSA9PSBOVUxMKSB7CQkvKiBHdWFyZCBhZ2FpbnN0ICdvdXQgb2YgbWVtb3J5JyAqLworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgbGVuID0geG1sU3RybGVuKHBhdGgpOworICAgIGlmICgobGVuID4gMikgJiYgSVNfV0lORE9XU19QQVRIKHBhdGgpKSB7CisgICAgICAgIC8qIG1ha2UgdGhlIHNjaGVtZSAnZmlsZScgKi8KKwl1cmktPnNjaGVtZSA9IHhtbFN0cmR1cChCQURfQ0FTVCAiZmlsZSIpOworCS8qIGFsbG9jYXRlIHNwYWNlIGZvciBsZWFkaW5nICcvJyArIHBhdGggKyBzdHJpbmcgdGVybWluYXRvciAqLworCXVyaS0+cGF0aCA9IHhtbE1hbGxvY0F0b21pYyhsZW4gKyAyKTsKKwlpZiAodXJpLT5wYXRoID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZVVSSSh1cmkpOwkvKiBHdWFyZCBhZ2FpbnMgJ291dCBvZiBtZW1vcnknICovCisJICAgIHJldHVybihOVUxMKTsKKwl9CisJLyogUHV0IGluIGxlYWRpbmcgJy8nIHBsdXMgcGF0aCAqLworCXVyaS0+cGF0aFswXSA9ICcvJzsKKwlwID0gdXJpLT5wYXRoICsgMTsKKwlzdHJuY3B5KHAsIHBhdGgsIGxlbiArIDEpOworICAgIH0gZWxzZSB7CisJdXJpLT5wYXRoID0geG1sU3RyZHVwKHBhdGgpOworCWlmICh1cmktPnBhdGggPT0gTlVMTCkgeworCSAgICB4bWxGcmVlVVJJKHVyaSk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJcCA9IHVyaS0+cGF0aDsKKyAgICB9CisgICAgLyogTm93IGNoYW5nZSBhbGwgb2NjdXJlbmNlcyBvZiAnXCcgdG8gJy8nICovCisgICAgd2hpbGUgKCpwICE9ICdcMCcpIHsKKwlpZiAoKnAgPT0gJ1xcJykKKwkgICAgKnAgPSAnLyc7CisJcCsrOworICAgIH0KKworICAgIGlmICh1cmktPnNjaGVtZSA9PSBOVUxMKSB7CisJcmV0ID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHVyaS0+cGF0aCk7CisgICAgfSBlbHNlIHsKKwlyZXQgPSB4bWxTYXZlVXJpKHVyaSk7CisgICAgfQorCisgICAgeG1sRnJlZVVSSSh1cmkpOworI2Vsc2UKKyAgICByZXQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgcGF0aCk7CisjZW5kaWYKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXRoVG9VUkk6CisgKiBAcGF0aDogIHRoZSByZXNvdXJjZSBsb2NhdG9yIGluIGEgZmlsZXN5c3RlbSBub3RhdGlvbgorICoKKyAqIENvbnN0cnVjdHMgYW4gVVJJIGV4cHJlc3NpbmcgdGhlIGV4aXN0aW5nIHBhdGgKKyAqCisgKiBSZXR1cm5zIGEgbmV3IFVSSSwgb3IgYSBkdXBsaWNhdGUgb2YgdGhlIHBhdGggcGFyYW1ldGVyIGlmIHRoZSAKKyAqIGNvbnN0cnVjdGlvbiBmYWlscy4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aGUgbWVtb3J5CisgKiBvY2N1cGllZCBieSB0aGUgcmV0dXJuZWQgc3RyaW5nLiBJZiB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgbWVtb3J5IGF2YWlsYWJsZSwKKyAqIG9yIHRoZSBhcmd1bWVudCBpcyBOVUxMLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBOVUxMLgorICovCit4bWxDaGFyICoKK3htbFBhdGhUb1VSSShjb25zdCB4bWxDaGFyICpwYXRoKQoreworICAgIHhtbFVSSVB0ciB1cmk7CisgICAgeG1sVVJJIHRlbXA7CisgICAgeG1sQ2hhciAqcmV0LCAqY2FsOworCisgICAgaWYgKHBhdGggPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgaWYgKCh1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBwYXRoKSkgIT0gTlVMTCkgeworCXhtbEZyZWVVUkkodXJpKTsKKwlyZXR1cm4geG1sU3RyZHVwKHBhdGgpOworICAgIH0KKyAgICBjYWwgPSB4bWxDYW5vbmljUGF0aChwYXRoKTsKKyAgICBpZiAoY2FsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKyAgICAvKiB4bWxDYW5vbmljUGF0aCBjYW4gcmV0dXJuIGFuIFVSSSBvbiBXaW5kb3dzIChpcyB0aGF0IHRoZSBpbnRlbmRlZCBiZWhhdmlvdXI/KSAKKyAgICAgICBJZiAnY2FsJyBpcyBhIHZhbGlkIFVSSSBhbGxyZWFkeSB0aGVuIHdlIGFyZSBkb25lIGhlcmUsIGFzIGNvbnRpbnVpbmcgd291bGQgbWFrZQorICAgICAgIGl0IGludmFsaWQuICovCisgICAgaWYgKCh1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSBjYWwpKSAhPSBOVUxMKSB7CisJeG1sRnJlZVVSSSh1cmkpOworCXJldHVybiBjYWw7CisgICAgfQorICAgIC8qICdjYWwnIGNhbiBjb250YWluIGEgcmVsYXRpdmUgcGF0aCB3aXRoIGJhY2tzbGFzaGVzLiBJZiB0aGF0IGlzIHByb2Nlc3NlZAorICAgICAgIGJ5IHhtbFNhdmVVUkksIHRoZXkgd2lsbCBiZSBlc2NhcGVkIGFuZCB0aGUgZXh0ZXJuYWwgZW50aXR5IGxvYWRlciBtYWNoaW5lcnkKKyAgICAgICB3aWxsIGZhaWwuIFNvIGNvbnZlcnQgdGhlbSB0byBzbGFzaGVzLiBNaXN1c2UgJ3JldCcgZm9yIHdhbGtpbmcuICovCisgICAgcmV0ID0gY2FsOworICAgIHdoaWxlICgqcmV0ICE9ICdcMCcpIHsKKwlpZiAoKnJldCA9PSAnXFwnKQorCSAgICAqcmV0ID0gJy8nOworCXJldCsrOworICAgIH0KKyNlbmRpZgorICAgIG1lbXNldCgmdGVtcCwgMCwgc2l6ZW9mKHRlbXApKTsKKyAgICB0ZW1wLnBhdGggPSAoY2hhciAqKSBjYWw7CisgICAgcmV0ID0geG1sU2F2ZVVyaSgmdGVtcCk7CisgICAgeG1sRnJlZShjYWwpOworICAgIHJldHVybihyZXQpOworfQorI2RlZmluZSBib3R0b21fdXJpCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy92YWxpZC5jIGIvbGlieG1sMi0yLjcuNy92YWxpZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYjMyZjMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3ZhbGlkLmMKQEAgLTAsMCArMSw3MDQxIEBACisvKgorICogdmFsaWQuYyA6IHBhcnQgb2YgdGhlIGNvZGUgdXNlIHRvIGRvIHRoZSBEVEQgaGFuZGxpbmcgYW5kIHRoZSB2YWxpZGl0eQorICogICAgICAgICAgIGNoZWNraW5nCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvaGFzaC5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdmFsaWQuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC9saXN0Lmg+CisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworc3RhdGljIHhtbEVsZW1lbnRQdHIgeG1sR2V0RHRkRWxlbWVudERlc2MyKHhtbER0ZFB0ciBkdGQsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNyZWF0ZSk7CisvKiAjZGVmaW5lIERFQlVHX1ZBTElEX0FMR08gKi8KKy8qICNkZWZpbmUgREVCVUdfUkVHRVhQX0FMR08gKi8KKworI2RlZmluZSBUT0RPIAkJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJVbmltcGxlbWVudGVkIGJsb2NrIGF0ICVzOiVkXG4iLAkJCQlcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKK3N0YXRpYyBpbnQKK3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWVJbnRlcm5hbCh4bWxEb2NQdHIgZG9jLCB4bWxBdHRyaWJ1dGVUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqdmFsdWUpOworI2VuZGlmCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJRXJyb3IgaGFuZGxpbmcgcm91dGluZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFZFcnJNZW1vcnk6CisgKiBAY3R4dDogIGFuIFhNTCB2YWxpZGF0aW9uIHBhcnNlciBjb250ZXh0CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sVkVyck1lbW9yeSh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgeG1sR2VuZXJpY0Vycm9yRnVuYyBjaGFubmVsID0gTlVMTDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIHBjdHh0ID0gTlVMTDsKKyAgICB2b2lkICpkYXRhID0gTlVMTDsKKworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgY2hhbm5lbCA9IGN0eHQtPmVycm9yOworICAgICAgICBkYXRhID0gY3R4dC0+dXNlckRhdGE7CisJLyogVXNlIHRoZSBzcGVjaWFsIHZhbHVlcyB0byBkZXRlY3QgaWYgaXQgaXMgcGFydCBvZiBhIHBhcnNpbmcKKwkgICBjb250ZXh0ICovCisJaWYgKChjdHh0LT5maW5pc2hEdGQgPT0gWE1MX0NUWFRfRklOSVNIX0RURF8wKSB8fAorCSAgICAoY3R4dC0+ZmluaXNoRHRkID09IFhNTF9DVFhUX0ZJTklTSF9EVERfMSkpIHsKKwkgICAgbG9uZyBkZWx0YSA9IChjaGFyICopIGN0eHQgLSAoY2hhciAqKSBjdHh0LT51c2VyRGF0YTsKKwkgICAgaWYgKChkZWx0YSA+IDApICYmIChkZWx0YSA8IDI1MCkpCisJCXBjdHh0ID0gY3R4dC0+dXNlckRhdGE7CisJfQorICAgIH0KKyAgICBpZiAoZXh0cmEpCisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBjaGFubmVsLCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgcGN0eHQsIE5VTEwsIFhNTF9GUk9NX1ZBTElELCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsIGV4dHJhLCBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7CisgICAgZWxzZQorICAgICAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgY2hhbm5lbCwgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBjdHh0LCBOVUxMLCBYTUxfRlJPTV9WQUxJRCwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7Cit9CisKKy8qKgorICogeG1sRXJyVmFsaWQ6CisgKiBAY3R4dDogIGFuIFhNTCB2YWxpZGF0aW9uIHBhcnNlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSB2YWxpZGF0aW9uIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxFcnJWYWxpZCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICB4bWxHZW5lcmljRXJyb3JGdW5jIGNoYW5uZWwgPSBOVUxMOworICAgIHhtbFBhcnNlckN0eHRQdHIgcGN0eHQgPSBOVUxMOworICAgIHZvaWQgKmRhdGEgPSBOVUxMOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBjaGFubmVsID0gY3R4dC0+ZXJyb3I7CisgICAgICAgIGRhdGEgPSBjdHh0LT51c2VyRGF0YTsKKwkvKiBVc2UgdGhlIHNwZWNpYWwgdmFsdWVzIHRvIGRldGVjdCBpZiBpdCBpcyBwYXJ0IG9mIGEgcGFyc2luZworCSAgIGNvbnRleHQgKi8KKwlpZiAoKGN0eHQtPmZpbmlzaER0ZCA9PSBYTUxfQ1RYVF9GSU5JU0hfRFREXzApIHx8CisJICAgIChjdHh0LT5maW5pc2hEdGQgPT0gWE1MX0NUWFRfRklOSVNIX0RURF8xKSkgeworCSAgICBsb25nIGRlbHRhID0gKGNoYXIgKikgY3R4dCAtIChjaGFyICopIGN0eHQtPnVzZXJEYXRhOworCSAgICBpZiAoKGRlbHRhID4gMCkgJiYgKGRlbHRhIDwgMjUwKSkKKwkJcGN0eHQgPSBjdHh0LT51c2VyRGF0YTsKKwl9CisgICAgfQorICAgIGlmIChleHRyYSkKKyAgICAgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIGNoYW5uZWwsIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICBwY3R4dCwgTlVMTCwgWE1MX0ZST01fVkFMSUQsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwgZXh0cmEsIE5VTEwsIE5VTEwsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2csIGV4dHJhKTsKKyAgICBlbHNlCisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBjaGFubmVsLCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgcGN0eHQsIE5VTEwsIFhNTF9GUk9NX1ZBTElELCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBtc2cpOworfQorCisjaWYgZGVmaW5lZChMSUJYTUxfVkFMSURfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorLyoqCisgKiB4bWxFcnJWYWxpZE5vZGU6CisgKiBAY3R4dDogIGFuIFhNTCB2YWxpZGF0aW9uIHBhcnNlciBjb250ZXh0CisgKiBAbm9kZTogIHRoZSBub2RlIHJhaXNpbmcgdGhlIGVycm9yCisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAc3RyMTogIGV4dHJhIGluZm9ybWF0aW9ucworICogQHN0cjI6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqIEBzdHIzOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGEgdmFsaWRhdGlvbiBlcnJvciwgcHJvdmlkZSBjb250ZXh0dWFsIGluZm9ybWF0aW9ucworICovCitzdGF0aWMgdm9pZAoreG1sRXJyVmFsaWROb2RlKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsCisgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHN0cjIsIGNvbnN0IHhtbENoYXIgKiBzdHIzKQoreworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBwY3R4dCA9IE5VTEw7CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGNoYW5uZWwgPSBjdHh0LT5lcnJvcjsKKyAgICAgICAgZGF0YSA9IGN0eHQtPnVzZXJEYXRhOworCS8qIFVzZSB0aGUgc3BlY2lhbCB2YWx1ZXMgdG8gZGV0ZWN0IGlmIGl0IGlzIHBhcnQgb2YgYSBwYXJzaW5nCisJICAgY29udGV4dCAqLworCWlmICgoY3R4dC0+ZmluaXNoRHRkID09IFhNTF9DVFhUX0ZJTklTSF9EVERfMCkgfHwKKwkgICAgKGN0eHQtPmZpbmlzaER0ZCA9PSBYTUxfQ1RYVF9GSU5JU0hfRFREXzEpKSB7CisJICAgIGxvbmcgZGVsdGEgPSAoY2hhciAqKSBjdHh0IC0gKGNoYXIgKikgY3R4dC0+dXNlckRhdGE7CisJICAgIGlmICgoZGVsdGEgPiAwKSAmJiAoZGVsdGEgPCAyNTApKQorCQlwY3R4dCA9IGN0eHQtPnVzZXJEYXRhOworCX0KKyAgICB9CisgICAgX194bWxSYWlzZUVycm9yKHNjaGFubmVsLCBjaGFubmVsLCBkYXRhLCBwY3R4dCwgbm9kZSwgWE1MX0ZST01fVkFMSUQsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBzdHIxLAorICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBzdHIxLAorICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBzdHIzLCAwLCAwLCBtc2csIHN0cjEsIHN0cjIsIHN0cjMpOworfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEIG9yIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisvKioKKyAqIHhtbEVyclZhbGlkTm9kZU5yOgorICogQGN0eHQ6ICBhbiBYTUwgdmFsaWRhdGlvbiBwYXJzZXIgY29udGV4dAorICogQG5vZGU6ICB0aGUgbm9kZSByYWlzaW5nIHRoZSBlcnJvcgorICogQGVycm9yOiAgdGhlIGVycm9yIG51bWJlcgorICogQHN0cjE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqIEBpbnQyOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKiBAc3RyMzogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IsIHByb3ZpZGUgY29udGV4dHVhbCBpbmZvcm1hdGlvbnMKKyAqLworc3RhdGljIHZvaWQKK3htbEVyclZhbGlkTm9kZU5yKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsCisgICAgICAgICAgICAgICAgaW50IGludDIsIGNvbnN0IHhtbENoYXIgKiBzdHIzKQoreworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBwY3R4dCA9IE5VTEw7CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGNoYW5uZWwgPSBjdHh0LT5lcnJvcjsKKyAgICAgICAgZGF0YSA9IGN0eHQtPnVzZXJEYXRhOworCS8qIFVzZSB0aGUgc3BlY2lhbCB2YWx1ZXMgdG8gZGV0ZWN0IGlmIGl0IGlzIHBhcnQgb2YgYSBwYXJzaW5nCisJICAgY29udGV4dCAqLworCWlmICgoY3R4dC0+ZmluaXNoRHRkID09IFhNTF9DVFhUX0ZJTklTSF9EVERfMCkgfHwKKwkgICAgKGN0eHQtPmZpbmlzaER0ZCA9PSBYTUxfQ1RYVF9GSU5JU0hfRFREXzEpKSB7CisJICAgIGxvbmcgZGVsdGEgPSAoY2hhciAqKSBjdHh0IC0gKGNoYXIgKikgY3R4dC0+dXNlckRhdGE7CisJICAgIGlmICgoZGVsdGEgPiAwKSAmJiAoZGVsdGEgPCAyNTApKQorCQlwY3R4dCA9IGN0eHQtPnVzZXJEYXRhOworCX0KKyAgICB9CisgICAgX194bWxSYWlzZUVycm9yKHNjaGFubmVsLCBjaGFubmVsLCBkYXRhLCBwY3R4dCwgbm9kZSwgWE1MX0ZST01fVkFMSUQsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBzdHIxLAorICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBzdHIzLAorICAgICAgICAgICAgICAgICAgICBOVUxMLCBpbnQyLCAwLCBtc2csIHN0cjEsIGludDIsIHN0cjMpOworfQorCisvKioKKyAqIHhtbEVyclZhbGlkV2FybmluZzoKKyAqIEBjdHh0OiAgYW4gWE1MIHZhbGlkYXRpb24gcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIG5vZGUgcmFpc2luZyB0aGUgZXJyb3IKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBudW1iZXIKKyAqIEBzdHIxOiAgZXh0cmEgaW5mb3JtYXRpb24KKyAqIEBzdHIyOiAgZXh0cmEgaW5mb3JtYXRpb24KKyAqIEBzdHIzOiAgZXh0cmEgaW5mb3JtYXRpb24KKyAqCisgKiBIYW5kbGUgYSB2YWxpZGF0aW9uIGVycm9yLCBwcm92aWRlIGNvbnRleHR1YWwgaW5mb3JtYXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbEVyclZhbGlkV2FybmluZyh4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKiBzdHIxLAorICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzdHIyLCBjb25zdCB4bWxDaGFyICogc3RyMykKK3sKKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNjaGFubmVsID0gTlVMTDsKKyAgICB4bWxHZW5lcmljRXJyb3JGdW5jIGNoYW5uZWwgPSBOVUxMOworICAgIHhtbFBhcnNlckN0eHRQdHIgcGN0eHQgPSBOVUxMOworICAgIHZvaWQgKmRhdGEgPSBOVUxMOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBjaGFubmVsID0gY3R4dC0+d2FybmluZzsKKyAgICAgICAgZGF0YSA9IGN0eHQtPnVzZXJEYXRhOworCS8qIFVzZSB0aGUgc3BlY2lhbCB2YWx1ZXMgdG8gZGV0ZWN0IGlmIGl0IGlzIHBhcnQgb2YgYSBwYXJzaW5nCisJICAgY29udGV4dCAqLworCWlmICgoY3R4dC0+ZmluaXNoRHRkID09IFhNTF9DVFhUX0ZJTklTSF9EVERfMCkgfHwKKwkgICAgKGN0eHQtPmZpbmlzaER0ZCA9PSBYTUxfQ1RYVF9GSU5JU0hfRFREXzEpKSB7CisJICAgIGxvbmcgZGVsdGEgPSAoY2hhciAqKSBjdHh0IC0gKGNoYXIgKikgY3R4dC0+dXNlckRhdGE7CisJICAgIGlmICgoZGVsdGEgPiAwKSAmJiAoZGVsdGEgPCAyNTApKQorCQlwY3R4dCA9IGN0eHQtPnVzZXJEYXRhOworCX0KKyAgICB9CisgICAgX194bWxSYWlzZUVycm9yKHNjaGFubmVsLCBjaGFubmVsLCBkYXRhLCBwY3R4dCwgbm9kZSwgWE1MX0ZST01fVkFMSUQsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX1dBUk5JTkcsIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIHN0cjEsCisgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIHN0cjEsCisgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIHN0cjMsIDAsIDAsIG1zZywgc3RyMSwgc3RyMiwgc3RyMyk7Cit9CisKKworCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisvKgorICogSWYgcmVnZXhwIGFyZSBlbmFibGVkIHdlIGNhbiBkbyBjb250aW51b3VzIHZhbGlkYXRpb24gd2l0aG91dCB0aGUKKyAqIG5lZWQgb2YgYSB0cmVlIHRvIHZhbGlkYXRlIHRoZSBjb250ZW50IG1vZGVsLiB0aGlzIGlzIGRvbmUgaW4gZWFjaAorICogY2FsbGJhY2tzLgorICogRWFjaCB4bWxWYWxpZFN0YXRlIHJlcHJlc2VudCB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBhc3NvY2lhdGVkIHRvIHRoZQorICogc2V0IG9mIG5vZGVzIGN1cnJlbnRseSBvcGVuIGZyb20gdGhlIGRvY3VtZW50IHJvb3QgdG8gdGhlIGN1cnJlbnQgZWxlbWVudC4KKyAqLworCisKK3R5cGVkZWYgc3RydWN0IF94bWxWYWxpZFN0YXRlIHsKKyAgICB4bWxFbGVtZW50UHRyCSBlbGVtRGVjbDsJLyogcG9pbnRlciB0byB0aGUgY29udGVudCBtb2RlbCAqLworICAgIHhtbE5vZGVQdHIgICAgICAgICAgIG5vZGU7CQkvKiBwb2ludGVyIHRvIHRoZSBjdXJyZW50IG5vZGUgKi8KKyAgICB4bWxSZWdFeGVjQ3R4dFB0ciAgICBleGVjOwkJLyogcmVnZXhwIHJ1bnRpbWUgKi8KK30gX3htbFZhbGlkU3RhdGU7CisKKworc3RhdGljIGludAordnN0YXRlVlB1c2goeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbEVsZW1lbnRQdHIgZWxlbURlY2wsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGlmICgoY3R4dC0+dnN0YXRlTWF4ID09IDApIHx8IChjdHh0LT52c3RhdGVUYWIgPT0gTlVMTCkpIHsKKwljdHh0LT52c3RhdGVNYXggPSAxMDsKKwljdHh0LT52c3RhdGVUYWIgPSAoeG1sVmFsaWRTdGF0ZSAqKSB4bWxNYWxsb2MoY3R4dC0+dnN0YXRlTWF4ICoKKwkJICAgICAgICAgICAgICBzaXplb2YoY3R4dC0+dnN0YXRlVGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT52c3RhdGVUYWIgPT0gTlVMTCkgeworCSAgICB4bWxWRXJyTWVtb3J5KGN0eHQsICJtYWxsb2MgZmFpbGVkIik7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKworICAgIGlmIChjdHh0LT52c3RhdGVOciA+PSBjdHh0LT52c3RhdGVNYXgpIHsKKyAgICAgICAgeG1sVmFsaWRTdGF0ZSAqdG1wOworCisJdG1wID0gKHhtbFZhbGlkU3RhdGUgKikgeG1sUmVhbGxvYyhjdHh0LT52c3RhdGVUYWIsCisJICAgICAgICAgICAgIDIgKiBjdHh0LT52c3RhdGVNYXggKiBzaXplb2YoY3R4dC0+dnN0YXRlVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworCSAgICB4bWxWRXJyTWVtb3J5KGN0eHQsICJyZWFsbG9jIGZhaWxlZCIpOworCSAgICByZXR1cm4oLTEpOworCX0KKwljdHh0LT52c3RhdGVNYXggKj0gMjsKKwljdHh0LT52c3RhdGVUYWIgPSB0bXA7CisgICAgfQorICAgIGN0eHQtPnZzdGF0ZSA9ICZjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdOworICAgIGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0uZWxlbURlY2wgPSBlbGVtRGVjbDsKKyAgICBjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdLm5vZGUgPSBub2RlOworICAgIGlmICgoZWxlbURlY2wgIT0gTlVMTCkgJiYgKGVsZW1EZWNsLT5ldHlwZSA9PSBYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQpKSB7CisJaWYgKGVsZW1EZWNsLT5jb250TW9kZWwgPT0gTlVMTCkKKwkgICAgeG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbChjdHh0LCBlbGVtRGVjbCk7CisJaWYgKGVsZW1EZWNsLT5jb250TW9kZWwgIT0gTlVMTCkgeworCSAgICBjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdLmV4ZWMgPSAKKwkJeG1sUmVnTmV3RXhlY0N0eHQoZWxlbURlY2wtPmNvbnRNb2RlbCwgTlVMTCwgTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgY3R4dC0+dnN0YXRlVGFiW2N0eHQtPnZzdGF0ZU5yXS5leGVjID0gTlVMTDsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsICh4bWxOb2RlUHRyKSBlbGVtRGVjbCwKKwkgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCQkgICAgIkZhaWxlZCB0byBidWlsZCBjb250ZW50IG1vZGVsIHJlZ2V4cCBmb3IgJXNcbiIsCisJCQkgICAgbm9kZS0+bmFtZSwgTlVMTCwgTlVMTCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oY3R4dC0+dnN0YXRlTnIrKyk7Cit9CisKK3N0YXRpYyBpbnQKK3ZzdGF0ZVZQb3AoeG1sVmFsaWRDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxFbGVtZW50UHRyIGVsZW1EZWNsOworCisgICAgaWYgKGN0eHQtPnZzdGF0ZU5yIDwgMSkgcmV0dXJuKC0xKTsKKyAgICBjdHh0LT52c3RhdGVOci0tOworICAgIGVsZW1EZWNsID0gY3R4dC0+dnN0YXRlVGFiW2N0eHQtPnZzdGF0ZU5yXS5lbGVtRGVjbDsKKyAgICBjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdLmVsZW1EZWNsID0gTlVMTDsKKyAgICBjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdLm5vZGUgPSBOVUxMOworICAgIGlmICgoZWxlbURlY2wgIT0gTlVMTCkgJiYgKGVsZW1EZWNsLT5ldHlwZSA9PSBYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQpKSB7CisJeG1sUmVnRnJlZUV4ZWNDdHh0KGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0uZXhlYyk7CisgICAgfQorICAgIGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0uZXhlYyA9IE5VTEw7CisgICAgaWYgKGN0eHQtPnZzdGF0ZU5yID49IDEpCisJY3R4dC0+dnN0YXRlID0gJmN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOciAtIDFdOworICAgIGVsc2UKKwljdHh0LT52c3RhdGUgPSBOVUxMOworICAgIHJldHVybihjdHh0LT52c3RhdGVOcik7Cit9CisKKyNlbHNlIC8qIG5vdCBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKy8qCisgKiBJZiByZWdleHAgYXJlIG5vdCBlbmFibGVkLCBpdCB1c2VzIGEgaG9tZSBtYWRlIGFsZ29yaXRobSBsZXNzCisgKiBjb21wbGV4IGFuZCBlYXNpZXIgdG8KKyAqIGRlYnVnL21haW50YWluIHRoYW4gYSBnZW5lcmljIE5GQSAtPiBERkEgc3RhdGUgYmFzZWQgYWxnby4gVGhlCisgKiBvbmx5IHJlc3RyaWN0aW9uIGlzIG9uIHRoZSBkZWVwbmVzcyBvZiB0aGUgdHJlZSBsaW1pdGVkIGJ5IHRoZQorICogc2l6ZSBvZiB0aGUgb2NjdXJzIGJpdGZpZWxkCisgKgorICogdGhpcyBpcyB0aGUgY29udGVudCBvZiBhIHNhdmVkIHN0YXRlIGZvciByb2xsYmFja3MKKyAqLworCisjZGVmaW5lIFJPTExCQUNLX09SCTAKKyNkZWZpbmUgUk9MTEJBQ0tfUEFSRU5UCTEKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFZhbGlkU3RhdGUgeworICAgIHhtbEVsZW1lbnRDb250ZW50UHRyIGNvbnQ7CS8qIHBvaW50ZXIgdG8gdGhlIGNvbnRlbnQgbW9kZWwgc3VidHJlZSAqLworICAgIHhtbE5vZGVQdHIgICAgICAgICAgIG5vZGU7CS8qIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgbGlzdCAqLworICAgIGxvbmcgICAgICAgICAgICAgICAgIG9jY3VyczsvKiBiaXRmaWVsZCBmb3IgbXVsdGlwbGUgb2NjdXJyZW5jZXMgKi8KKyAgICB1bnNpZ25lZCBjaGFyICAgICAgICBkZXB0aDsgLyogY3VycmVudCBkZXB0aCBpbiB0aGUgb3ZlcmFsbCB0cmVlICovCisgICAgdW5zaWduZWQgY2hhciAgICAgICAgc3RhdGU7IC8qIFJPTExCQUNLX1hYWCAqLworfSBfeG1sVmFsaWRTdGF0ZTsKKworI2RlZmluZSBNQVhfUkVDVVJTRSAyNTAwMAorI2RlZmluZSBNQVhfREVQVEggKChzaXplb2YoX3htbFZhbGlkU3RhdGUub2NjdXJzKSkgKiA4KQorI2RlZmluZSBDT05UIGN0eHQtPnZzdGF0ZS0+Y29udAorI2RlZmluZSBOT0RFIGN0eHQtPnZzdGF0ZS0+bm9kZQorI2RlZmluZSBERVBUSCBjdHh0LT52c3RhdGUtPmRlcHRoCisjZGVmaW5lIE9DQ1VSUyBjdHh0LT52c3RhdGUtPm9jY3VycworI2RlZmluZSBTVEFURSBjdHh0LT52c3RhdGUtPnN0YXRlCisKKyNkZWZpbmUgT0NDVVJSRU5DRSAoY3R4dC0+dnN0YXRlLT5vY2N1cnMgJiAoMSA8PCBERVBUSCkpCisjZGVmaW5lIFBBUkVOVF9PQ0NVUlJFTkNFIChjdHh0LT52c3RhdGUtPm9jY3VycyAmICgoMSA8PCBERVBUSCkgLSAxKSkKKworI2RlZmluZSBTRVRfT0NDVVJSRU5DRSBjdHh0LT52c3RhdGUtPm9jY3VycyB8PSAoMSA8PCBERVBUSCkKKyNkZWZpbmUgUkVTRVRfT0NDVVJSRU5DRSBjdHh0LT52c3RhdGUtPm9jY3VycyAmPSAoKDEgPDwgREVQVEgpIC0gMSkKKworc3RhdGljIGludAordnN0YXRlVlB1c2goeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbEVsZW1lbnRDb250ZW50UHRyIGNvbnQsCisJICAgIHhtbE5vZGVQdHIgbm9kZSwgdW5zaWduZWQgY2hhciBkZXB0aCwgbG9uZyBvY2N1cnMsCisJICAgIHVuc2lnbmVkIGNoYXIgc3RhdGUpIHsKKyAgICBpbnQgaSA9IGN0eHQtPnZzdGF0ZU5yIC0gMTsKKworICAgIGlmIChjdHh0LT52c3RhdGVOciA+IE1BWF9SRUNVUlNFKSB7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPnZzdGF0ZVRhYiA9PSBOVUxMKSB7CisJY3R4dC0+dnN0YXRlTWF4ID0gODsKKwljdHh0LT52c3RhdGVUYWIgPSAoeG1sVmFsaWRTdGF0ZSAqKSB4bWxNYWxsb2MoCisJCSAgICAgY3R4dC0+dnN0YXRlTWF4ICogc2l6ZW9mKGN0eHQtPnZzdGF0ZVRhYlswXSkpOworCWlmIChjdHh0LT52c3RhdGVUYWIgPT0gTlVMTCkgeworCSAgICB4bWxWRXJyTWVtb3J5KGN0eHQsICJtYWxsb2MgZmFpbGVkIik7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKyAgICBpZiAoY3R4dC0+dnN0YXRlTnIgPj0gY3R4dC0+dnN0YXRlTWF4KSB7CisgICAgICAgIHhtbFZhbGlkU3RhdGUgKnRtcDsKKworICAgICAgICB0bXAgPSAoeG1sVmFsaWRTdGF0ZSAqKSB4bWxSZWFsbG9jKGN0eHQtPnZzdGF0ZVRhYiwKKwkgICAgICAgICAgICAgMiAqIGN0eHQtPnZzdGF0ZU1heCAqIHNpemVvZihjdHh0LT52c3RhdGVUYWJbMF0pKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIHhtbFZFcnJNZW1vcnkoY3R4dCwgIm1hbGxvYyBmYWlsZWQiKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY3R4dC0+dnN0YXRlTWF4ICo9IDI7CisJY3R4dC0+dnN0YXRlVGFiID0gdG1wOworCWN0eHQtPnZzdGF0ZSA9ICZjdHh0LT52c3RhdGVUYWJbMF07CisgICAgfQorICAgIC8qCisgICAgICogRG9uJ3QgcHVzaCBvbiB0aGUgc3RhY2sgYSBzdGF0ZSBhbHJlYWR5IGhlcmUKKyAgICAgKi8KKyAgICBpZiAoKGkgPj0gMCkgJiYgKGN0eHQtPnZzdGF0ZVRhYltpXS5jb250ID09IGNvbnQpICYmCisJKGN0eHQtPnZzdGF0ZVRhYltpXS5ub2RlID09IG5vZGUpICYmCisJKGN0eHQtPnZzdGF0ZVRhYltpXS5kZXB0aCA9PSBkZXB0aCkgJiYKKwkoY3R4dC0+dnN0YXRlVGFiW2ldLm9jY3VycyA9PSBvY2N1cnMpICYmCisJKGN0eHQtPnZzdGF0ZVRhYltpXS5zdGF0ZSA9PSBzdGF0ZSkpCisJcmV0dXJuKGN0eHQtPnZzdGF0ZU5yKTsKKyAgICBjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdLmNvbnQgPSBjb250OworICAgIGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0ubm9kZSA9IG5vZGU7CisgICAgY3R4dC0+dnN0YXRlVGFiW2N0eHQtPnZzdGF0ZU5yXS5kZXB0aCA9IGRlcHRoOworICAgIGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0ub2NjdXJzID0gb2NjdXJzOworICAgIGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0uc3RhdGUgPSBzdGF0ZTsKKyAgICByZXR1cm4oY3R4dC0+dnN0YXRlTnIrKyk7Cit9CisKK3N0YXRpYyBpbnQKK3ZzdGF0ZVZQb3AoeG1sVmFsaWRDdHh0UHRyIGN0eHQpIHsKKyAgICBpZiAoY3R4dC0+dnN0YXRlTnIgPD0gMSkgcmV0dXJuKC0xKTsKKyAgICBjdHh0LT52c3RhdGVOci0tOworICAgIGN0eHQtPnZzdGF0ZSA9ICZjdHh0LT52c3RhdGVUYWJbMF07CisgICAgY3R4dC0+dnN0YXRlLT5jb250ID0gIGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0uY29udDsKKyAgICBjdHh0LT52c3RhdGUtPm5vZGUgPSBjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdLm5vZGU7CisgICAgY3R4dC0+dnN0YXRlLT5kZXB0aCA9IGN0eHQtPnZzdGF0ZVRhYltjdHh0LT52c3RhdGVOcl0uZGVwdGg7CisgICAgY3R4dC0+dnN0YXRlLT5vY2N1cnMgPSBjdHh0LT52c3RhdGVUYWJbY3R4dC0+dnN0YXRlTnJdLm9jY3VyczsKKyAgICBjdHh0LT52c3RhdGUtPnN0YXRlID0gY3R4dC0+dnN0YXRlVGFiW2N0eHQtPnZzdGF0ZU5yXS5zdGF0ZTsKKyAgICByZXR1cm4oY3R4dC0+dnN0YXRlTnIpOworfQorCisjZW5kaWYgLyogTElCWE1MX1JFR0VYUF9FTkFCTEVEICovCisKK3N0YXRpYyBpbnQKK25vZGVWUHVzaCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciB2YWx1ZSkKK3sKKyAgICBpZiAoY3R4dC0+bm9kZU1heCA8PSAwKSB7CisgICAgICAgIGN0eHQtPm5vZGVNYXggPSA0OworICAgICAgICBjdHh0LT5ub2RlVGFiID0KKyAgICAgICAgICAgICh4bWxOb2RlUHRyICopIHhtbE1hbGxvYyhjdHh0LT5ub2RlTWF4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY3R4dC0+bm9kZVRhYlswXSkpOworICAgICAgICBpZiAoY3R4dC0+bm9kZVRhYiA9PSBOVUxMKSB7CisJICAgIHhtbFZFcnJNZW1vcnkoY3R4dCwgIm1hbGxvYyBmYWlsZWQiKTsKKyAgICAgICAgICAgIGN0eHQtPm5vZGVNYXggPSAwOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY3R4dC0+bm9kZU5yID49IGN0eHQtPm5vZGVNYXgpIHsKKyAgICAgICAgeG1sTm9kZVB0ciAqdG1wOworICAgICAgICB0bXAgPSAoeG1sTm9kZVB0ciAqKSB4bWxSZWFsbG9jKGN0eHQtPm5vZGVUYWIsCisJCQkgICAgICBjdHh0LT5ub2RlTWF4ICogMiAqIHNpemVvZihjdHh0LT5ub2RlVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworCSAgICB4bWxWRXJyTWVtb3J5KGN0eHQsICJyZWFsbG9jIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgfQorICAgICAgICBjdHh0LT5ub2RlTWF4ICo9IDI7CisJY3R4dC0+bm9kZVRhYiA9IHRtcDsKKyAgICB9CisgICAgY3R4dC0+bm9kZVRhYltjdHh0LT5ub2RlTnJdID0gdmFsdWU7CisgICAgY3R4dC0+bm9kZSA9IHZhbHVlOworICAgIHJldHVybiAoY3R4dC0+bm9kZU5yKyspOworfQorc3RhdGljIHhtbE5vZGVQdHIKK25vZGVWUG9wKHhtbFZhbGlkQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbE5vZGVQdHIgcmV0OworCisgICAgaWYgKGN0eHQtPm5vZGVOciA8PSAwKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGN0eHQtPm5vZGVOci0tOworICAgIGlmIChjdHh0LT5ub2RlTnIgPiAwKQorICAgICAgICBjdHh0LT5ub2RlID0gY3R4dC0+bm9kZVRhYltjdHh0LT5ub2RlTnIgLSAxXTsKKyAgICBlbHNlCisgICAgICAgIGN0eHQtPm5vZGUgPSBOVUxMOworICAgIHJldCA9IGN0eHQtPm5vZGVUYWJbY3R4dC0+bm9kZU5yXTsKKyAgICBjdHh0LT5ub2RlVGFiW2N0eHQtPm5vZGVOcl0gPSBOVUxMOworICAgIHJldHVybiAocmV0KTsKK30KKworI2lmZGVmIERFQlVHX1ZBTElEX0FMR08KK3N0YXRpYyB2b2lkCit4bWxWYWxpZFByaW50Tm9kZSh4bWxOb2RlUHRyIGN1cikgeworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAibnVsbCIpOworCXJldHVybjsKKyAgICB9CisgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKwljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiJXMgIiwgY3VyLT5uYW1lKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfVEVYVF9OT0RFOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInRleHQgIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJjZGF0YSAiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiYlczsgIiwgY3VyLT5uYW1lKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfUElfTk9ERToKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJwaSglcykgIiwgY3VyLT5uYW1lKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImNvbW1lbnQgIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIj9hdHRyPyAiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRU5USVRZX05PREU6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiP2VudD8gIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiP2RvYz8gIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI/ZG9jdHlwZT8gIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI/ZnJhZz8gIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiP25vdGE/ICIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiP2h0bWw/ICIpOworCSAgICBicmVhazsKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIj9kb2NiPyAiKTsKKwkgICAgYnJlYWs7CisjZW5kaWYKKwljYXNlIFhNTF9EVERfTk9ERToKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI/ZHRkPyAiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIj9lZGVjbD8gIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIj9hZGVjbD8gIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VOVElUWV9ERUNMOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIj9lbnRkZWNsPyAiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiP25zZGVjbD8gIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImluY3N0YXJ0ICIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiaW5jZW5kICIpOworCSAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxWYWxpZFByaW50Tm9kZUxpc3QoeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpZiAoY3VyID09IE5VTEwpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJudWxsICIpOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCXhtbFZhbGlkUHJpbnROb2RlKGN1cik7CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3htbFZhbGlkRGVidWcoeG1sTm9kZVB0ciBjdXIsIHhtbEVsZW1lbnRDb250ZW50UHRyIGNvbnQpIHsKKyAgICBjaGFyIGV4cHJbNTAwMF07CisKKyAgICBleHByWzBdID0gMDsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInZhbGlkOiAiKTsKKyAgICB4bWxWYWxpZFByaW50Tm9kZUxpc3QoY3VyKTsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImFnYWluc3QgIik7CisgICAgeG1sU25wcmludGZFbGVtZW50Q29udGVudChleHByLCA1MDAwLCBjb250LCAxKTsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzXG4iLCBleHByKTsKK30KKworc3RhdGljIHZvaWQKK3htbFZhbGlkRGVidWdTdGF0ZSh4bWxWYWxpZFN0YXRlUHRyIHN0YXRlKSB7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIoIik7CisgICAgaWYgKHN0YXRlLT5jb250ID09IE5VTEwpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJudWxsLCIpOworICAgIGVsc2UKKwlzd2l0Y2ggKHN0YXRlLT5jb250LT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInBjZGF0YSwiKTsKKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVDoKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIlcywiLAorCQkJICAgICAgICBzdGF0ZS0+Y29udC0+bmFtZSk7CisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUToKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJzZXEsIik7CisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09SOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIm9yLCIpOworCQlicmVhazsKKwl9CisgICAgeG1sVmFsaWRQcmludE5vZGUoc3RhdGUtPm5vZGUpOworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiLCVkLCVYLCVkKSIsCisJICAgIHN0YXRlLT5kZXB0aCwgc3RhdGUtPm9jY3Vycywgc3RhdGUtPnN0YXRlKTsKK30KKworc3RhdGljIHZvaWQKK3htbFZhbGlkU3RhdGVEZWJ1Zyh4bWxWYWxpZEN0eHRQdHIgY3R4dCkgeworICAgIGludCBpLCBqOworCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJzdGF0ZTogIik7CisgICAgeG1sVmFsaWREZWJ1Z1N0YXRlKGN0eHQtPnZzdGF0ZSk7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIgc3RhY2s6ICVkICIsCisJICAgIGN0eHQtPnZzdGF0ZU5yIC0gMSk7CisgICAgZm9yIChpID0gMCwgaiA9IGN0eHQtPnZzdGF0ZU5yIC0gMTsoaSA8IDMpICYmIChqID4gMCk7aSsrLGotLSkKKwl4bWxWYWxpZERlYnVnU3RhdGUoJmN0eHQtPnZzdGF0ZVRhYltqXSk7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJcbiIpOworfQorCisvKioqKioKKyNkZWZpbmUgREVCVUdfVkFMSURfU1RBVEUobixjKSB4bWxWYWxpZERlYnVnKG4sYyk7CisgKioqKiovCisKKyNkZWZpbmUgREVCVUdfVkFMSURfU1RBVEUobixjKSB4bWxWYWxpZFN0YXRlRGVidWcoY3R4dCk7CisjZGVmaW5lIERFQlVHX1ZBTElEX01TRyhtKQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiJXNcbiIsIG0pOworICAgICAgICAKKyNlbHNlCisjZGVmaW5lIERFQlVHX1ZBTElEX1NUQVRFKG4sYykKKyNkZWZpbmUgREVCVUdfVkFMSURfTVNHKG0pCisjZW5kaWYKKworLyogVE9ETzogdXNlIGhhc2ggdGFibGUgZm9yIGFjY2Vzc2VzIHRvIGVsZW0gYW5kIGF0dHJpYnV0ZSBkZWZpbml0aW9ucyAqLworCisKKyNkZWZpbmUgQ0hFQ0tfRFRECQkJCQkJXAorICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm4oMCk7CQkJCQlcCisgICBlbHNlIGlmICgoZG9jLT5pbnRTdWJzZXQgPT0gTlVMTCkgJiYJCQkJXAorCSAgICAoZG9jLT5leHRTdWJzZXQgPT0gTlVMTCkpIHJldHVybigwKQorCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUNvbnRlbnQgbW9kZWwgdmFsaWRhdGlvbiBiYXNlZCBvbiB0aGUgcmVnZXhwcwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFZhbGlkQnVpbGRBQ29udGVudE1vZGVsOgorICogQGNvbnRlbnQ6ICB0aGUgY29udGVudCBtb2RlbAorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBlbGVtZW50IG5hbWUgd2hvc2UgY29udGVudCBpcyBiZWluZyBidWlsdAorICoKKyAqIEdlbmVyYXRlIHRoZSBhdXRvbWF0YSBzZXF1ZW5jZSBuZWVkZWQgZm9yIHRoYXQgdHlwZQorICoKKyAqIFJldHVybnMgMSBpZiBzdWNjZXNzZnVsIG9yIDAgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sVmFsaWRCdWlsZEFDb250ZW50TW9kZWwoeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCwKKwkJICAgICAgICAgICB4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkJICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgaWYgKGNvbnRlbnQgPT0gTlVMTCkgeworCXhtbEVyclZhbGlkTm9kZShjdHh0LCBOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkJIkZvdW5kIE5VTEwgY29udGVudCBpbiBjb250ZW50IG1vZGVsIG9mICVzXG4iLAorCQkJbmFtZSwgTlVMTCwgTlVMTCk7CisJcmV0dXJuKDApOworICAgIH0KKyAgICBzd2l0Y2ggKGNvbnRlbnQtPnR5cGUpIHsKKwljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBOgorCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgTlVMTCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSAgICAiRm91bmQgUENEQVRBIGluIGNvbnRlbnQgbW9kZWwgb2YgJXNcbiIsCisJCSAgICAgICAgICAgIG5hbWUsIE5VTEwsIE5VTEwpOworCSAgICByZXR1cm4oMCk7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UOiB7CisJICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgb2xkc3RhdGUgPSBjdHh0LT5zdGF0ZTsKKwkgICAgeG1sQ2hhciBmbls1MF07CisJICAgIHhtbENoYXIgKmZ1bGxuYW1lOworCSAgICAKKwkgICAgZnVsbG5hbWUgPSB4bWxCdWlsZFFOYW1lKGNvbnRlbnQtPm5hbWUsIGNvbnRlbnQtPnByZWZpeCwgZm4sIDUwKTsKKwkgICAgaWYgKGZ1bGxuYW1lID09IE5VTEwpIHsKKwkgICAgICAgIHhtbFZFcnJNZW1vcnkoY3R4dCwgIkJ1aWxkaW5nIGNvbnRlbnQgbW9kZWwiKTsKKwkJcmV0dXJuKDApOworCSAgICB9CisKKwkgICAgc3dpdGNoIChjb250ZW50LT5vY3VyKSB7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFOgorCQkgICAgY3R4dC0+c3RhdGUgPSB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24oY3R4dC0+YW0sCisJCQkgICAgY3R4dC0+c3RhdGUsIE5VTEwsIGZ1bGxuYW1lLCBOVUxMKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUOgorCQkgICAgY3R4dC0+c3RhdGUgPSB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24oY3R4dC0+YW0sCisJCQkgICAgY3R4dC0+c3RhdGUsIE5VTEwsIGZ1bGxuYW1lLCBOVUxMKTsKKwkJICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihjdHh0LT5hbSwgb2xkc3RhdGUsIGN0eHQtPnN0YXRlKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfUExVUzoKKwkJICAgIGN0eHQtPnN0YXRlID0geG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uKGN0eHQtPmFtLAorCQkJICAgIGN0eHQtPnN0YXRlLCBOVUxMLCBmdWxsbmFtZSwgTlVMTCk7CisJCSAgICB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24oY3R4dC0+YW0sIGN0eHQtPnN0YXRlLAorCQkJICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUsIGZ1bGxuYW1lLCBOVUxMKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVDoKKwkJICAgIGN0eHQtPnN0YXRlID0geG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLAorCQkgICAgCQkJICAgIGN0eHQtPnN0YXRlLCBOVUxMKTsKKwkJICAgIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbihjdHh0LT5hbSwKKwkJICAgIAkgICAgY3R4dC0+c3RhdGUsIGN0eHQtPnN0YXRlLCBmdWxsbmFtZSwgTlVMTCk7CisJCSAgICBicmVhazsKKwkgICAgfQorCSAgICBpZiAoKGZ1bGxuYW1lICE9IGZuKSAmJiAoZnVsbG5hbWUgIT0gY29udGVudC0+bmFtZSkpCisJCXhtbEZyZWUoZnVsbG5hbWUpOworCSAgICBicmVhazsKKwl9CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUTogeworCSAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIG9sZHN0YXRlLCBvbGRlbmQ7CisJICAgIHhtbEVsZW1lbnRDb250ZW50T2NjdXIgb2N1cjsKKworCSAgICAvKgorCSAgICAgKiBTaW1wbHkgaXRlcmF0ZSBvdmVyIHRoZSBjb250ZW50CisJICAgICAqLworCSAgICBvbGRzdGF0ZSA9IGN0eHQtPnN0YXRlOworCSAgICBvY3VyID0gY29udGVudC0+b2N1cjsKKwkgICAgaWYgKG9jdXIgIT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFKSB7CisJCWN0eHQtPnN0YXRlID0geG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRzdGF0ZSwgTlVMTCk7CisJCW9sZHN0YXRlID0gY3R4dC0+c3RhdGU7CisJICAgIH0KKwkgICAgZG8geworCQl4bWxWYWxpZEJ1aWxkQUNvbnRlbnRNb2RlbChjb250ZW50LT5jMSwgY3R4dCwgbmFtZSk7CisJCWNvbnRlbnQgPSBjb250ZW50LT5jMjsKKwkgICAgfSB3aGlsZSAoKGNvbnRlbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpICYmCisJCSAgICAgKGNvbnRlbnQtPm9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFKSk7CisJICAgIHhtbFZhbGlkQnVpbGRBQ29udGVudE1vZGVsKGNvbnRlbnQsIGN0eHQsIG5hbWUpOworCSAgICBvbGRlbmQgPSBjdHh0LT5zdGF0ZTsKKwkgICAgY3R4dC0+c3RhdGUgPSB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIG9sZGVuZCwgTlVMTCk7CisJICAgIHN3aXRjaCAob2N1cikgeworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRToKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUOgorCQkgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRzdGF0ZSwgY3R4dC0+c3RhdGUpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOgorCQkgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRzdGF0ZSwgY3R4dC0+c3RhdGUpOworCQkgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRlbmQsIG9sZHN0YXRlKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfUExVUzoKKwkJICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihjdHh0LT5hbSwgb2xkZW5kLCBvbGRzdGF0ZSk7CisJCSAgICBicmVhazsKKwkgICAgfQorCSAgICBicmVhazsKKwl9CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09SOiB7CisJICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgb2xkc3RhdGUsIG9sZGVuZDsKKwkgICAgeG1sRWxlbWVudENvbnRlbnRPY2N1ciBvY3VyOworCisJICAgIG9jdXIgPSBjb250ZW50LT5vY3VyOworCSAgICBpZiAoKG9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTKSB8fCAKKwkJKG9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUKSkgeworCQljdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3RXBzaWxvbihjdHh0LT5hbSwKKwkJCWN0eHQtPnN0YXRlLCBOVUxMKTsKKwkgICAgfQorCSAgICBvbGRzdGF0ZSA9IGN0eHQtPnN0YXRlOworCSAgICBvbGRlbmQgPSB4bWxBdXRvbWF0YU5ld1N0YXRlKGN0eHQtPmFtKTsKKworCSAgICAvKgorCSAgICAgKiBpdGVyYXRlIG92ZXIgdGhlIHN1YnR5cGVzIGFuZCByZW1lcmdlIHRoZSBlbmQgd2l0aCBhbgorCSAgICAgKiBlcHNpbG9uIHRyYW5zaXRpb24KKwkgICAgICovCisJICAgIGRvIHsKKwkJY3R4dC0+c3RhdGUgPSBvbGRzdGF0ZTsKKwkJeG1sVmFsaWRCdWlsZEFDb250ZW50TW9kZWwoY29udGVudC0+YzEsIGN0eHQsIG5hbWUpOworCQl4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIGN0eHQtPnN0YXRlLCBvbGRlbmQpOworCQljb250ZW50ID0gY29udGVudC0+YzI7CisJICAgIH0gd2hpbGUgKChjb250ZW50LT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpICYmCisJCSAgICAgKGNvbnRlbnQtPm9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFKSk7CisJICAgIGN0eHQtPnN0YXRlID0gb2xkc3RhdGU7CisJICAgIHhtbFZhbGlkQnVpbGRBQ29udGVudE1vZGVsKGNvbnRlbnQsIGN0eHQsIG5hbWUpOworCSAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIGN0eHQtPnN0YXRlLCBvbGRlbmQpOworCSAgICBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3RXBzaWxvbihjdHh0LT5hbSwgb2xkZW5kLCBOVUxMKTsKKwkgICAgc3dpdGNoIChvY3VyKSB7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFOgorCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQ6CisJCSAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIG9sZHN0YXRlLCBjdHh0LT5zdGF0ZSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX01VTFQ6CisJCSAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIG9sZHN0YXRlLCBjdHh0LT5zdGF0ZSk7CisJCSAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIG9sZGVuZCwgb2xkc3RhdGUpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTOgorCQkgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKGN0eHQtPmFtLCBvbGRlbmQsIG9sZHN0YXRlKTsKKwkJICAgIGJyZWFrOworCSAgICB9CisJICAgIGJyZWFrOworCX0KKwlkZWZhdWx0OgorCSAgICB4bWxFcnJWYWxpZChjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCSAgICAgICAgICAgICAgICAiQ29udGVudE1vZGVsIGJyb2tlbiBmb3IgZWxlbWVudCAlc1xuIiwKKwkJCShjb25zdCBjaGFyICopIG5hbWUpOworCSAgICByZXR1cm4oMCk7CisgICAgfQorICAgIHJldHVybigxKTsKK30KKy8qKgorICogeG1sVmFsaWRCdWlsZENvbnRlbnRNb2RlbDoKKyAqIEBjdHh0OiAgYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBkZWNsYXJhdGlvbiBub2RlCisgKgorICogKFJlKUJ1aWxkIHRoZSBhdXRvbWF0YSBhc3NvY2lhdGVkIHRvIHRoZSBjb250ZW50IG1vZGVsIG9mIHRoaXMKKyAqIGVsZW1lbnQKKyAqCisgKiBSZXR1cm5zIDEgaW4gY2FzZSBvZiBzdWNjZXNzLCAwIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxFbGVtZW50UHRyIGVsZW0pIHsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZWxlbSA9PSBOVUxMKSkKKwlyZXR1cm4oMCk7CisgICAgaWYgKGVsZW0tPnR5cGUgIT0gWE1MX0VMRU1FTlRfREVDTCkKKwlyZXR1cm4oMCk7CisgICAgaWYgKGVsZW0tPmV0eXBlICE9IFhNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVCkKKwlyZXR1cm4oMSk7CisgICAgLyogVE9ETzogc2hvdWxkIHdlIHJlYnVpbGQgaW4gdGhpcyBjYXNlID8gKi8KKyAgICBpZiAoZWxlbS0+Y29udE1vZGVsICE9IE5VTEwpIHsKKwlpZiAoIXhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QoZWxlbS0+Y29udE1vZGVsKSkgeworCSAgICBjdHh0LT52YWxpZCA9IDA7CisJICAgIHJldHVybigwKTsKKwl9CisJcmV0dXJuKDEpOworICAgIH0KKworICAgIGN0eHQtPmFtID0geG1sTmV3QXV0b21hdGEoKTsKKyAgICBpZiAoY3R4dC0+YW0gPT0gTlVMTCkgeworCXhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZWxlbSwKKwkgICAgICAgICAgICAgICAgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkgICAgICAgICAgICAgICAgIkNhbm5vdCBjcmVhdGUgYXV0b21hdGEgZm9yIGVsZW1lbnQgJXNcbiIsCisJCSAgICAgICAgZWxlbS0+bmFtZSwgTlVMTCwgTlVMTCk7CisJcmV0dXJuKDApOworICAgIH0KKyAgICBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlKGN0eHQtPmFtKTsKKyAgICB4bWxWYWxpZEJ1aWxkQUNvbnRlbnRNb2RlbChlbGVtLT5jb250ZW50LCBjdHh0LCBlbGVtLT5uYW1lKTsKKyAgICB4bWxBdXRvbWF0YVNldEZpbmFsU3RhdGUoY3R4dC0+YW0sIGN0eHQtPnN0YXRlKTsKKyAgICBlbGVtLT5jb250TW9kZWwgPSB4bWxBdXRvbWF0YUNvbXBpbGUoY3R4dC0+YW0pOworICAgIGlmICh4bWxSZWdleHBJc0RldGVybWluaXN0KGVsZW0tPmNvbnRNb2RlbCkgIT0gMSkgeworCWNoYXIgZXhwcls1MDAwXTsKKwlleHByWzBdID0gMDsKKwl4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KGV4cHIsIDUwMDAsIGVsZW0tPmNvbnRlbnQsIDEpOworCXhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZWxlbSwKKwkgICAgICAgICAgICAgICAgWE1MX0RURF9DT05URU5UX05PVF9ERVRFUk1JTklTVCwKKwkgICAgICAgIkNvbnRlbnQgbW9kZWwgb2YgJXMgaXMgbm90IGRldGVybWluaXN0OiAlc1xuIiwKKwkgICAgICAgZWxlbS0+bmFtZSwgQkFEX0NBU1QgZXhwciwgTlVMTCk7CisjaWZkZWYgREVCVUdfUkVHRVhQX0FMR08KKyAgICAgICAgeG1sUmVnZXhwUHJpbnQoc3RkZXJyLCBlbGVtLT5jb250TW9kZWwpOworI2VuZGlmCisgICAgICAgIGN0eHQtPnZhbGlkID0gMDsKKwljdHh0LT5zdGF0ZSA9IE5VTEw7CisJeG1sRnJlZUF1dG9tYXRhKGN0eHQtPmFtKTsKKwljdHh0LT5hbSA9IE5VTEw7CisJcmV0dXJuKDApOworICAgIH0KKyAgICBjdHh0LT5zdGF0ZSA9IE5VTEw7CisgICAgeG1sRnJlZUF1dG9tYXRhKGN0eHQtPmFtKTsKKyAgICBjdHh0LT5hbSA9IE5VTEw7CisgICAgcmV0dXJuKDEpOworfQorCisjZW5kaWYgLyogTElCWE1MX1JFR0VYUF9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJKgorICoJVXRpbCBmdW5jdGlvbnMgZm9yIGRhdGEgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24JCSoKKyAqCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxOZXdWYWxpZEN0eHQ6CisgKgorICogQWxsb2NhdGUgYSB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlLgorICoKKyAqIFJldHVybnMgTlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IHZhbGlkYXRpb24gY29udGV4dCBzdHJ1Y3R1cmUKKyAqLworeG1sVmFsaWRDdHh0UHRyIHhtbE5ld1ZhbGlkQ3R4dCh2b2lkKSB7CisgICAgeG1sVmFsaWRDdHh0UHRyIHJldDsKKworICAgIGlmICgocmV0ID0geG1sTWFsbG9jKHNpemVvZiAoeG1sVmFsaWRDdHh0KSkpID09IE5VTEwpIHsKKwl4bWxWRXJyTWVtb3J5KE5VTEwsICJtYWxsb2MgZmFpbGVkIik7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisKKyAgICAodm9pZCkgbWVtc2V0KHJldCwgMCwgc2l6ZW9mICh4bWxWYWxpZEN0eHQpKTsKKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxGcmVlVmFsaWRDdHh0OgorICogQGN1cjogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgdG8gZnJlZQorICoKKyAqIEZyZWUgYSB2YWxpZGF0aW9uIGNvbnRleHQgc3RydWN0dXJlLgorICovCit2b2lkCit4bWxGcmVlVmFsaWRDdHh0KHhtbFZhbGlkQ3R4dFB0ciBjdXIpIHsKKyAgICBpZiAoY3VyLT52c3RhdGVUYWIgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShjdXItPnZzdGF0ZVRhYik7CisgICAgaWYgKGN1ci0+bm9kZVRhYiAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGN1ci0+bm9kZVRhYik7CisgICAgeG1sRnJlZShjdXIpOworfQorCisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxOZXdEb2NFbGVtZW50Q29udGVudDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBuYW1lOiAgdGhlIHN1YmVsZW1lbnQgbmFtZSBvciBOVUxMCisgKiBAdHlwZTogIHRoZSB0eXBlIG9mIGVsZW1lbnQgY29udGVudCBkZWNsCisgKgorICogQWxsb2NhdGUgYW4gZWxlbWVudCBjb250ZW50IHN0cnVjdHVyZSBmb3IgdGhlIGRvY3VtZW50LgorICoKKyAqIFJldHVybnMgTlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUKKyAqLworeG1sRWxlbWVudENvbnRlbnRQdHIKK3htbE5ld0RvY0VsZW1lbnRDb250ZW50KHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxFbGVtZW50Q29udGVudFR5cGUgdHlwZSkgeworICAgIHhtbEVsZW1lbnRDb250ZW50UHRyIHJldDsKKyAgICB4bWxEaWN0UHRyIGRpY3QgPSBOVUxMOworCisgICAgaWYgKGRvYyAhPSBOVUxMKQorICAgICAgICBkaWN0ID0gZG9jLT5kaWN0OworCisgICAgc3dpdGNoKHR5cGUpIHsKKwljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVDoKKwkgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCSAgICAgICAgeG1sRXJyVmFsaWQoTlVMTCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJCSJ4bWxOZXdFbGVtZW50Q29udGVudCA6IG5hbWUgPT0gTlVMTCAhXG4iLAorCQkJTlVMTCk7CisJICAgIH0KKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEE6CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUToKKwljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1I6CisJICAgIGlmIChuYW1lICE9IE5VTEwpIHsKKwkgICAgICAgIHhtbEVyclZhbGlkKE5VTEwsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCQkieG1sTmV3RWxlbWVudENvbnRlbnQgOiBuYW1lICE9IE5VTEwgIVxuIiwKKwkJCU5VTEwpOworCSAgICB9CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHhtbEVyclZhbGlkKE5VTEwsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsIAorCQkgICAgIkludGVybmFsOiBFTEVNRU5UIGNvbnRlbnQgY29ycnVwdGVkIGludmFsaWQgdHlwZVxuIiwKKwkJICAgIE5VTEwpOworCSAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldCA9ICh4bWxFbGVtZW50Q29udGVudFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxFbGVtZW50Q29udGVudCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFZFcnJNZW1vcnkoTlVMTCwgIm1hbGxvYyBmYWlsZWQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxFbGVtZW50Q29udGVudCkpOworICAgIHJldC0+dHlwZSA9IHR5cGU7CisgICAgcmV0LT5vY3VyID0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFOworICAgIGlmIChuYW1lICE9IE5VTEwpIHsKKyAgICAgICAgaW50IGw7CisJY29uc3QgeG1sQ2hhciAqdG1wOworCisJdG1wID0geG1sU3BsaXRRTmFtZTMobmFtZSwgJmwpOworCWlmICh0bXAgPT0gTlVMTCkgeworCSAgICBpZiAoZGljdCA9PSBOVUxMKQorCQlyZXQtPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisJICAgIGVsc2UKKwkgICAgICAgIHJldC0+bmFtZSA9IHhtbERpY3RMb29rdXAoZGljdCwgbmFtZSwgLTEpOworCX0gZWxzZSB7CisJICAgIGlmIChkaWN0ID09IE5VTEwpIHsKKwkJcmV0LT5wcmVmaXggPSB4bWxTdHJuZHVwKG5hbWUsIGwpOworCQlyZXQtPm5hbWUgPSB4bWxTdHJkdXAodG1wKTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIHJldC0+cHJlZml4ID0geG1sRGljdExvb2t1cChkaWN0LCBuYW1lLCBsKTsKKwkJcmV0LT5uYW1lID0geG1sRGljdExvb2t1cChkaWN0LCB0bXAsIC0xKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sTmV3RWxlbWVudENvbnRlbnQ6CisgKiBAbmFtZTogIHRoZSBzdWJlbGVtZW50IG5hbWUgb3IgTlVMTAorICogQHR5cGU6ICB0aGUgdHlwZSBvZiBlbGVtZW50IGNvbnRlbnQgZGVjbAorICoKKyAqIEFsbG9jYXRlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUuCisgKiBEZXByZWNhdGVkIGluIGZhdm9yIG9mIHhtbE5ld0RvY0VsZW1lbnRDb250ZW50CisgKgorICogUmV0dXJucyBOVUxMIGlmIG5vdCwgb3RoZXJ3aXNlIHRoZSBuZXcgZWxlbWVudCBjb250ZW50IHN0cnVjdHVyZQorICovCit4bWxFbGVtZW50Q29udGVudFB0cgoreG1sTmV3RWxlbWVudENvbnRlbnQoY29uc3QgeG1sQ2hhciAqbmFtZSwgeG1sRWxlbWVudENvbnRlbnRUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4oeG1sTmV3RG9jRWxlbWVudENvbnRlbnQoTlVMTCwgbmFtZSwgdHlwZSkpOworfQorCisvKioKKyAqIHhtbENvcHlEb2NFbGVtZW50Q29udGVudDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgb3duaW5nIHRoZSBlbGVtZW50IGRlY2xhcmF0aW9uCisgKiBAY3VyOiAgQW4gZWxlbWVudCBjb250ZW50IHBvaW50ZXIuCisgKgorICogQnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgY29udGVudCBkZXNjcmlwdGlvbi4KKyAqIAorICogUmV0dXJucyB0aGUgbmV3IHhtbEVsZW1lbnRDb250ZW50UHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sRWxlbWVudENvbnRlbnRQdHIKK3htbENvcHlEb2NFbGVtZW50Q29udGVudCh4bWxEb2NQdHIgZG9jLCB4bWxFbGVtZW50Q29udGVudFB0ciBjdXIpIHsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciByZXQgPSBOVUxMLCBwcmV2ID0gTlVMTCwgdG1wOworICAgIHhtbERpY3RQdHIgZGljdCA9IE5VTEw7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIGlmIChkb2MgIT0gTlVMTCkKKyAgICAgICAgZGljdCA9IGRvYy0+ZGljdDsKKworICAgIHJldCA9ICh4bWxFbGVtZW50Q29udGVudFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxFbGVtZW50Q29udGVudCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFZFcnJNZW1vcnkoTlVMTCwgIm1hbGxvYyBmYWlsZWQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxFbGVtZW50Q29udGVudCkpOworICAgIHJldC0+dHlwZSA9IGN1ci0+dHlwZTsKKyAgICByZXQtPm9jdXIgPSBjdXItPm9jdXI7CisgICAgaWYgKGN1ci0+bmFtZSAhPSBOVUxMKSB7CisJaWYgKGRpY3QpCisJICAgIHJldC0+bmFtZSA9IHhtbERpY3RMb29rdXAoZGljdCwgY3VyLT5uYW1lLCAtMSk7CisJZWxzZQorCSAgICByZXQtPm5hbWUgPSB4bWxTdHJkdXAoY3VyLT5uYW1lKTsKKyAgICB9CisgICAgCisgICAgaWYgKGN1ci0+cHJlZml4ICE9IE5VTEwpIHsKKwlpZiAoZGljdCkKKwkgICAgcmV0LT5wcmVmaXggPSB4bWxEaWN0TG9va3VwKGRpY3QsIGN1ci0+cHJlZml4LCAtMSk7CisJZWxzZQorCSAgICByZXQtPnByZWZpeCA9IHhtbFN0cmR1cChjdXItPnByZWZpeCk7CisgICAgfQorICAgIGlmIChjdXItPmMxICE9IE5VTEwpCisgICAgICAgIHJldC0+YzEgPSB4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQoZG9jLCBjdXItPmMxKTsKKyAgICBpZiAocmV0LT5jMSAhPSBOVUxMKQorCXJldC0+YzEtPnBhcmVudCA9IHJldDsKKyAgICBpZiAoY3VyLT5jMiAhPSBOVUxMKSB7CisgICAgICAgIHByZXYgPSByZXQ7CisJY3VyID0gY3VyLT5jMjsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgdG1wID0gKHhtbEVsZW1lbnRDb250ZW50UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEVsZW1lbnRDb250ZW50KSk7CisJICAgIGlmICh0bXAgPT0gTlVMTCkgeworCQl4bWxWRXJyTWVtb3J5KE5VTEwsICJtYWxsb2MgZmFpbGVkIik7CisJCXJldHVybihyZXQpOworCSAgICB9CisJICAgIG1lbXNldCh0bXAsIDAsIHNpemVvZih4bWxFbGVtZW50Q29udGVudCkpOworCSAgICB0bXAtPnR5cGUgPSBjdXItPnR5cGU7CisJICAgIHRtcC0+b2N1ciA9IGN1ci0+b2N1cjsKKwkgICAgcHJldi0+YzIgPSB0bXA7CisJICAgIGlmIChjdXItPm5hbWUgIT0gTlVMTCkgeworCQlpZiAoZGljdCkKKwkJICAgIHRtcC0+bmFtZSA9IHhtbERpY3RMb29rdXAoZGljdCwgY3VyLT5uYW1lLCAtMSk7CisJCWVsc2UKKwkJICAgIHRtcC0+bmFtZSA9IHhtbFN0cmR1cChjdXItPm5hbWUpOworCSAgICB9CisJICAgIAorCSAgICBpZiAoY3VyLT5wcmVmaXggIT0gTlVMTCkgeworCQlpZiAoZGljdCkKKwkJICAgIHRtcC0+cHJlZml4ID0geG1sRGljdExvb2t1cChkaWN0LCBjdXItPnByZWZpeCwgLTEpOworCQllbHNlCisJCSAgICB0bXAtPnByZWZpeCA9IHhtbFN0cmR1cChjdXItPnByZWZpeCk7CisJICAgIH0KKwkgICAgaWYgKGN1ci0+YzEgIT0gTlVMTCkKKwkgICAgICAgIHRtcC0+YzEgPSB4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQoZG9jLGN1ci0+YzEpOworCSAgICBpZiAodG1wLT5jMSAhPSBOVUxMKQorCQl0bXAtPmMxLT5wYXJlbnQgPSByZXQ7CisJICAgIHByZXYgPSB0bXA7CisJICAgIGN1ciA9IGN1ci0+YzI7CisJfQorICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxDb3B5RWxlbWVudENvbnRlbnQ6CisgKiBAY3VyOiAgQW4gZWxlbWVudCBjb250ZW50IHBvaW50ZXIuCisgKgorICogQnVpbGQgYSBjb3B5IG9mIGFuIGVsZW1lbnQgY29udGVudCBkZXNjcmlwdGlvbi4KKyAqIERlcHJlY2F0ZWQsIHVzZSB4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQgaW5zdGVhZAorICogCisgKiBSZXR1cm5zIHRoZSBuZXcgeG1sRWxlbWVudENvbnRlbnRQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxFbGVtZW50Q29udGVudFB0cgoreG1sQ29weUVsZW1lbnRDb250ZW50KHhtbEVsZW1lbnRDb250ZW50UHRyIGN1cikgeworICAgIHJldHVybih4bWxDb3B5RG9jRWxlbWVudENvbnRlbnQoTlVMTCwgY3VyKSk7Cit9CisKKy8qKgorICogeG1sRnJlZURvY0VsZW1lbnRDb250ZW50OgorICogQGRvYzogdGhlIGRvY3VtZW50IG93bmluZyB0aGUgZWxlbWVudCBkZWNsYXJhdGlvbgorICogQGN1cjogIHRoZSBlbGVtZW50IGNvbnRlbnQgdHJlZSB0byBmcmVlCisgKgorICogRnJlZSBhbiBlbGVtZW50IGNvbnRlbnQgc3RydWN0dXJlLiBUaGUgd2hvbGUgc3VidHJlZSBpcyByZW1vdmVkLgorICovCit2b2lkCit4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoeG1sRG9jUHRyIGRvYywgeG1sRWxlbWVudENvbnRlbnRQdHIgY3VyKSB7CisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgbmV4dDsKKyAgICB4bWxEaWN0UHRyIGRpY3QgPSBOVUxMOworCisgICAgaWYgKGRvYyAhPSBOVUxMKQorICAgICAgICBkaWN0ID0gZG9jLT5kaWN0OworCisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisgICAgICAgIG5leHQgPSBjdXItPmMyOworCXN3aXRjaCAoY3VyLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEE6CisJICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UOgorCSAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VROgorCSAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1I6CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQl4bWxFcnJWYWxpZChOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLCAKKwkJCSJJbnRlcm5hbDogRUxFTUVOVCBjb250ZW50IGNvcnJ1cHRlZCBpbnZhbGlkIHR5cGVcbiIsCisJCQlOVUxMKTsKKwkJcmV0dXJuOworCX0KKwlpZiAoY3VyLT5jMSAhPSBOVUxMKSB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoZG9jLCBjdXItPmMxKTsKKwlpZiAoZGljdCkgeworCSAgICBpZiAoKGN1ci0+bmFtZSAhPSBOVUxMKSAmJiAoIXhtbERpY3RPd25zKGRpY3QsIGN1ci0+bmFtZSkpKQorCSAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdXItPm5hbWUpOworCSAgICBpZiAoKGN1ci0+cHJlZml4ICE9IE5VTEwpICYmICgheG1sRGljdE93bnMoZGljdCwgY3VyLT5wcmVmaXgpKSkKKwkgICAgICAgIHhtbEZyZWUoKHhtbENoYXIgKikgY3VyLT5wcmVmaXgpOworCX0gZWxzZSB7CisJICAgIGlmIChjdXItPm5hbWUgIT0gTlVMTCkgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdXItPm5hbWUpOworCSAgICBpZiAoY3VyLT5wcmVmaXggIT0gTlVMTCkgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdXItPnByZWZpeCk7CisJfQorCXhtbEZyZWUoY3VyKTsKKwljdXIgPSBuZXh0OworICAgIH0KK30KKworLyoqCisgKiB4bWxGcmVlRWxlbWVudENvbnRlbnQ6CisgKiBAY3VyOiAgdGhlIGVsZW1lbnQgY29udGVudCB0cmVlIHRvIGZyZWUKKyAqCisgKiBGcmVlIGFuIGVsZW1lbnQgY29udGVudCBzdHJ1Y3R1cmUuIFRoZSB3aG9sZSBzdWJ0cmVlIGlzIHJlbW92ZWQuCisgKiBEZXByZWNhdGVkLCB1c2UgeG1sRnJlZURvY0VsZW1lbnRDb250ZW50IGluc3RlYWQKKyAqLwordm9pZAoreG1sRnJlZUVsZW1lbnRDb250ZW50KHhtbEVsZW1lbnRDb250ZW50UHRyIGN1cikgeworICAgIHhtbEZyZWVEb2NFbGVtZW50Q29udGVudChOVUxMLCBjdXIpOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbER1bXBFbGVtZW50Q29udGVudDoKKyAqIEBidWY6ICBBbiBYTUwgYnVmZmVyCisgKiBAY29udGVudDogIEFuIGVsZW1lbnQgdGFibGUKKyAqIEBnbG9iOiAxIGlmIG9uZSBtdXN0IHByaW50IHRoZSBlbmdsb2JpbmcgcGFyZW50aGVzaXMsIDAgb3RoZXJ3aXNlCisgKgorICogVGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgdGFibGUgYXMgYW4gWE1MIERURCBkZWZpbml0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxEdW1wRWxlbWVudENvbnRlbnQoeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCwgaW50IGdsb2IpIHsKKyAgICBpZiAoY29udGVudCA9PSBOVUxMKSByZXR1cm47CisKKyAgICBpZiAoZ2xvYikgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIigiKTsKKyAgICBzd2l0Y2ggKGNvbnRlbnQtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQToKKyAgICAgICAgICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIjUENEQVRBIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UOgorCSAgICBpZiAoY29udGVudC0+cHJlZml4ICE9IE5VTEwpIHsKKwkJeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgY29udGVudC0+cHJlZml4KTsKKwkJeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIjoiKTsKKwkgICAgfQorCSAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBjb250ZW50LT5uYW1lKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUToKKwkgICAgaWYgKChjb250ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fAorCSAgICAgICAgKGNvbnRlbnQtPmMxLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRKSkKKwkJeG1sRHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzEsIDEpOworCSAgICBlbHNlCisJCXhtbER1bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRlbnQtPmMxLCAwKTsKKyAgICAgICAgICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgLCAiKTsKKwkgICAgaWYgKChjb250ZW50LT5jMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fAorCSAgICAgICAgKChjb250ZW50LT5jMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUSkgJiYKKwkJIChjb250ZW50LT5jMi0+b2N1ciAhPSBYTUxfRUxFTUVOVF9DT05URU5UX09OQ0UpKSkKKwkJeG1sRHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzIsIDEpOworCSAgICBlbHNlCisJCXhtbER1bXBFbGVtZW50Q29udGVudChidWYsIGNvbnRlbnQtPmMyLCAwKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09SOgorCSAgICBpZiAoKGNvbnRlbnQtPmMxLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpIHx8CisJICAgICAgICAoY29udGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVEpKQorCQl4bWxEdW1wRWxlbWVudENvbnRlbnQoYnVmLCBjb250ZW50LT5jMSwgMSk7CisJICAgIGVsc2UKKwkJeG1sRHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzEsIDApOworICAgICAgICAgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiB8ICIpOworCSAgICBpZiAoKGNvbnRlbnQtPmMyLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRKSB8fAorCSAgICAgICAgKChjb250ZW50LT5jMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSAmJgorCQkgKGNvbnRlbnQtPmMyLT5vY3VyICE9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRSkpKQorCQl4bWxEdW1wRWxlbWVudENvbnRlbnQoYnVmLCBjb250ZW50LT5jMiwgMSk7CisJICAgIGVsc2UKKwkJeG1sRHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgY29udGVudC0+YzIsIDApOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICB4bWxFcnJWYWxpZChOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLCAKKwkJICAgICJJbnRlcm5hbDogRUxFTUVOVCBjb250ZW50IGNvcnJ1cHRlZCBpbnZhbGlkIHR5cGVcbiIsCisJCSAgICBOVUxMKTsKKyAgICB9CisgICAgaWYgKGdsb2IpCisgICAgICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIpIik7CisgICAgc3dpdGNoIChjb250ZW50LT5vY3VyKSB7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFOgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09QVDoKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIj8iKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiKiIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1BMVVM6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIrIik7CisJICAgIGJyZWFrOworICAgIH0KK30KKworLyoqCisgKiB4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQ6CisgKiBAYnVmOiAgYW4gb3V0cHV0IGJ1ZmZlcgorICogQGNvbnRlbnQ6ICBBbiBlbGVtZW50IHRhYmxlCisgKiBAZW5nbG9iOiAxIGlmIG9uZSBtdXN0IHByaW50IHRoZSBlbmdsb2JpbmcgcGFyZW50aGVzaXMsIDAgb3RoZXJ3aXNlCisgKgorICogRGVwcmVjYXRlZCwgdW5zYWZlLCB1c2UgeG1sU25wcmludGZFbGVtZW50Q29udGVudAorICovCit2b2lkCit4bWxTcHJpbnRmRWxlbWVudENvbnRlbnQoY2hhciAqYnVmIEFUVFJJQlVURV9VTlVTRUQsCisJICAgICAgICAgICAgICAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50IEFUVFJJQlVURV9VTlVTRUQsCisJCQkgaW50IGVuZ2xvYiBBVFRSSUJVVEVfVU5VU0VEKSB7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKgorICogeG1sU25wcmludGZFbGVtZW50Q29udGVudDoKKyAqIEBidWY6ICBhbiBvdXRwdXQgYnVmZmVyCisgKiBAc2l6ZTogIHRoZSBidWZmZXIgc2l6ZQorICogQGNvbnRlbnQ6ICBBbiBlbGVtZW50IHRhYmxlCisgKiBAZW5nbG9iOiAxIGlmIG9uZSBtdXN0IHByaW50IHRoZSBlbmdsb2JpbmcgcGFyZW50aGVzaXMsIDAgb3RoZXJ3aXNlCisgKgorICogVGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgY29udGVudCBkZWZpbml0aW9uCisgKiBJbnRlbmRlZCBqdXN0IGZvciB0aGUgZGVidWcgcm91dGluZQorICovCit2b2lkCit4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KGNoYXIgKmJ1ZiwgaW50IHNpemUsIHhtbEVsZW1lbnRDb250ZW50UHRyIGNvbnRlbnQsIGludCBlbmdsb2IpIHsKKyAgICBpbnQgbGVuOworCisgICAgaWYgKGNvbnRlbnQgPT0gTlVMTCkgcmV0dXJuOworICAgIGxlbiA9IHN0cmxlbihidWYpOworICAgIGlmIChzaXplIC0gbGVuIDwgNTApIHsKKwlpZiAoKHNpemUgLSBsZW4gPiA0KSAmJiAoYnVmW2xlbiAtIDFdICE9ICcuJykpCisJICAgIHN0cmNhdChidWYsICIgLi4uIik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoZW5nbG9iKSBzdHJjYXQoYnVmLCAiKCIpOworICAgIHN3aXRjaCAoY29udGVudC0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBOgorICAgICAgICAgICAgc3RyY2F0KGJ1ZiwgIiNQQ0RBVEEiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQ6CisJICAgIGlmIChjb250ZW50LT5wcmVmaXggIT0gTlVMTCkgeworCQlpZiAoc2l6ZSAtIGxlbiA8IHhtbFN0cmxlbihjb250ZW50LT5wcmVmaXgpICsgMTApIHsKKwkJICAgIHN0cmNhdChidWYsICIgLi4uIik7CisJCSAgICByZXR1cm47CisJCX0KKwkJc3RyY2F0KGJ1ZiwgKGNoYXIgKikgY29udGVudC0+cHJlZml4KTsKKwkJc3RyY2F0KGJ1ZiwgIjoiKTsKKwkgICAgfQorCSAgICBpZiAoc2l6ZSAtIGxlbiA8IHhtbFN0cmxlbihjb250ZW50LT5uYW1lKSArIDEwKSB7CisJCXN0cmNhdChidWYsICIgLi4uIik7CisJCXJldHVybjsKKwkgICAgfQorCSAgICBpZiAoY29udGVudC0+bmFtZSAhPSBOVUxMKQorCQlzdHJjYXQoYnVmLCAoY2hhciAqKSBjb250ZW50LT5uYW1lKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUToKKwkgICAgaWYgKChjb250ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fAorCSAgICAgICAgKGNvbnRlbnQtPmMxLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRKSkKKwkJeG1sU25wcmludGZFbGVtZW50Q29udGVudChidWYsIHNpemUsIGNvbnRlbnQtPmMxLCAxKTsKKwkgICAgZWxzZQorCQl4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KGJ1Ziwgc2l6ZSwgY29udGVudC0+YzEsIDApOworCSAgICBsZW4gPSBzdHJsZW4oYnVmKTsKKwkgICAgaWYgKHNpemUgLSBsZW4gPCA1MCkgeworCQlpZiAoKHNpemUgLSBsZW4gPiA0KSAmJiAoYnVmW2xlbiAtIDFdICE9ICcuJykpCisJCSAgICBzdHJjYXQoYnVmLCAiIC4uLiIpOworCQlyZXR1cm47CisJICAgIH0KKyAgICAgICAgICAgIHN0cmNhdChidWYsICIgLCAiKTsKKwkgICAgaWYgKCgoY29udGVudC0+YzItPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgfHwKKwkJIChjb250ZW50LT5jMi0+b2N1ciAhPSBYTUxfRUxFTUVOVF9DT05URU5UX09OQ0UpKSAmJgorCQkoY29udGVudC0+YzItPnR5cGUgIT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKSkKKwkJeG1sU25wcmludGZFbGVtZW50Q29udGVudChidWYsIHNpemUsIGNvbnRlbnQtPmMyLCAxKTsKKwkgICAgZWxzZQorCQl4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KGJ1Ziwgc2l6ZSwgY29udGVudC0+YzIsIDApOworCSAgICBicmVhazsKKwljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1I6CisJICAgIGlmICgoY29udGVudC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgfHwKKwkgICAgICAgIChjb250ZW50LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUSkpCisJCXhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQoYnVmLCBzaXplLCBjb250ZW50LT5jMSwgMSk7CisJICAgIGVsc2UKKwkJeG1sU25wcmludGZFbGVtZW50Q29udGVudChidWYsIHNpemUsIGNvbnRlbnQtPmMxLCAwKTsKKwkgICAgbGVuID0gc3RybGVuKGJ1Zik7CisJICAgIGlmIChzaXplIC0gbGVuIDwgNTApIHsKKwkJaWYgKChzaXplIC0gbGVuID4gNCkgJiYgKGJ1ZltsZW4gLSAxXSAhPSAnLicpKQorCQkgICAgc3RyY2F0KGJ1ZiwgIiAuLi4iKTsKKwkJcmV0dXJuOworCSAgICB9CisgICAgICAgICAgICBzdHJjYXQoYnVmLCAiIHwgIik7CisJICAgIGlmICgoKGNvbnRlbnQtPmMyLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfU0VRKSB8fAorCQkgKGNvbnRlbnQtPmMyLT5vY3VyICE9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRSkpICYmCisJCShjb250ZW50LT5jMi0+dHlwZSAhPSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQpKQorCQl4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50KGJ1Ziwgc2l6ZSwgY29udGVudC0+YzIsIDEpOworCSAgICBlbHNlCisJCXhtbFNucHJpbnRmRWxlbWVudENvbnRlbnQoYnVmLCBzaXplLCBjb250ZW50LT5jMiwgMCk7CisJICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoZW5nbG9iKQorICAgICAgICBzdHJjYXQoYnVmLCAiKSIpOworICAgIHN3aXRjaCAoY29udGVudC0+b2N1cikgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT05DRToKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQ6CisJICAgIHN0cmNhdChidWYsICI/Iik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVDoKKwkgICAgc3RyY2F0KGJ1ZiwgIioiKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTOgorCSAgICBzdHJjYXQoYnVmLCAiKyIpOworCSAgICBicmVhazsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJKgorICoJUmVnaXN0cmF0aW9uIG9mIERURCBkZWNsYXJhdGlvbnMJCQkqCisgKgkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sRnJlZUVsZW1lbnQ6CisgKiBAZWxlbTogIEFuIGVsZW1lbnQKKyAqCisgKiBEZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbGVtZW50IGRlZmluaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbEZyZWVFbGVtZW50KHhtbEVsZW1lbnRQdHIgZWxlbSkgeworICAgIGlmIChlbGVtID09IE5VTEwpIHJldHVybjsKKyAgICB4bWxVbmxpbmtOb2RlKCh4bWxOb2RlUHRyKSBlbGVtKTsKKyAgICB4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQoZWxlbS0+ZG9jLCBlbGVtLT5jb250ZW50KTsKKyAgICBpZiAoZWxlbS0+bmFtZSAhPSBOVUxMKQorCXhtbEZyZWUoKHhtbENoYXIgKikgZWxlbS0+bmFtZSk7CisgICAgaWYgKGVsZW0tPnByZWZpeCAhPSBOVUxMKQorCXhtbEZyZWUoKHhtbENoYXIgKikgZWxlbS0+cHJlZml4KTsKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKKyAgICBpZiAoZWxlbS0+Y29udE1vZGVsICE9IE5VTEwpCisJeG1sUmVnRnJlZVJlZ2V4cChlbGVtLT5jb250TW9kZWwpOworI2VuZGlmCisgICAgeG1sRnJlZShlbGVtKTsKK30KKworCisvKioKKyAqIHhtbEFkZEVsZW1lbnREZWNsOgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZHRkOiAgcG9pbnRlciB0byB0aGUgRFRECisgKiBAbmFtZTogIHRoZSBlbnRpdHkgbmFtZQorICogQHR5cGU6ICB0aGUgZWxlbWVudCB0eXBlCisgKiBAY29udGVudDogIHRoZSBlbGVtZW50IGNvbnRlbnQgdHJlZSBvciBOVUxMCisgKgorICogUmVnaXN0ZXIgYSBuZXcgZWxlbWVudCBkZWNsYXJhdGlvbgorICoKKyAqIFJldHVybnMgTlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgZW50aXR5CisgKi8KK3htbEVsZW1lbnRQdHIKK3htbEFkZEVsZW1lbnREZWNsKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgeG1sRHRkUHRyIGR0ZCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgIHhtbEVsZW1lbnRUeXBlVmFsIHR5cGUsCisJCSAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCkgeworICAgIHhtbEVsZW1lbnRQdHIgcmV0OworICAgIHhtbEVsZW1lbnRUYWJsZVB0ciB0YWJsZTsKKyAgICB4bWxBdHRyaWJ1dGVQdHIgb2xkQXR0cmlidXRlcyA9IE5VTEw7CisgICAgeG1sQ2hhciAqbnMsICp1cW5hbWU7CisKKyAgICBpZiAoZHRkID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfVFlQRV9FTVBUWToKKwkgICAgaWYgKGNvbnRlbnQgIT0gTlVMTCkgeworCQl4bWxFcnJWYWxpZChjdHh0LCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLCAKKwkJICAgICAgICAieG1sQWRkRWxlbWVudERlY2w6IGNvbnRlbnQgIT0gTlVMTCBmb3IgRU1QVFlcbiIsCisJCQlOVUxMKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VMRU1FTlRfVFlQRV9BTlk6CisJICAgIGlmIChjb250ZW50ICE9IE5VTEwpIHsKKwkJeG1sRXJyVmFsaWQoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwgCisJCSAgICAgICAgInhtbEFkZEVsZW1lbnREZWNsOiBjb250ZW50ICE9IE5VTEwgZm9yIEFOWVxuIiwKKwkJCU5VTEwpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX01JWEVEOgorCSAgICBpZiAoY29udGVudCA9PSBOVUxMKSB7CisJCXhtbEVyclZhbGlkKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsIAorCQkgICAgICAgICJ4bWxBZGRFbGVtZW50RGVjbDogY29udGVudCA9PSBOVUxMIGZvciBNSVhFRFxuIiwKKwkJCU5VTEwpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQ6CisJICAgIGlmIChjb250ZW50ID09IE5VTEwpIHsKKwkJeG1sRXJyVmFsaWQoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwgCisJCSAgICAgICAgInhtbEFkZEVsZW1lbnREZWNsOiBjb250ZW50ID09IE5VTEwgZm9yIEVMRU1FTlRcbiIsCisJCQlOVUxMKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHhtbEVyclZhbGlkKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsIAorCQkgICAgIkludGVybmFsOiBFTEVNRU5UIGRlY2wgY29ycnVwdGVkIGludmFsaWQgdHlwZVxuIiwKKwkJICAgIE5VTEwpOworCSAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBjaGVjayBpZiBuYW1lIGlzIGEgUU5hbWUKKyAgICAgKi8KKyAgICB1cW5hbWUgPSB4bWxTcGxpdFFOYW1lMihuYW1lLCAmbnMpOworICAgIGlmICh1cW5hbWUgIT0gTlVMTCkKKwluYW1lID0gdXFuYW1lOworCisgICAgLyoKKyAgICAgKiBDcmVhdGUgdGhlIEVsZW1lbnQgdGFibGUgaWYgbmVlZGVkLgorICAgICAqLworICAgIHRhYmxlID0gKHhtbEVsZW1lbnRUYWJsZVB0cikgZHRkLT5lbGVtZW50czsKKyAgICBpZiAodGFibGUgPT0gTlVMTCkgeworCXhtbERpY3RQdHIgZGljdCA9IE5VTEw7CisKKwlpZiAoZHRkLT5kb2MgIT0gTlVMTCkKKwkgICAgZGljdCA9IGR0ZC0+ZG9jLT5kaWN0OworICAgICAgICB0YWJsZSA9IHhtbEhhc2hDcmVhdGVEaWN0KDAsIGRpY3QpOworCWR0ZC0+ZWxlbWVudHMgPSAodm9pZCAqKSB0YWJsZTsKKyAgICB9CisgICAgaWYgKHRhYmxlID09IE5VTEwpIHsKKwl4bWxWRXJyTWVtb3J5KGN0eHQsCisgICAgICAgICAgICAieG1sQWRkRWxlbWVudERlY2w6IFRhYmxlIGNyZWF0aW9uIGZhaWxlZCFcbiIpOworCWlmICh1cW5hbWUgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSh1cW5hbWUpOworCWlmIChucyAhPSBOVUxMKQorCSAgICB4bWxGcmVlKG5zKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogbG9va3VwIG9sZCBhdHRyaWJ1dGVzIGluc2VydGVkIG9uIGFuIHVuZGVmaW5lZCBlbGVtZW50IGluIHRoZQorICAgICAqIGludGVybmFsIHN1YnNldC4KKyAgICAgKi8KKyAgICBpZiAoKGR0ZC0+ZG9jICE9IE5VTEwpICYmIChkdGQtPmRvYy0+aW50U3Vic2V0ICE9IE5VTEwpKSB7CisJcmV0ID0geG1sSGFzaExvb2t1cDIoZHRkLT5kb2MtPmludFN1YnNldC0+ZWxlbWVudHMsIG5hbWUsIG5zKTsKKwlpZiAoKHJldCAhPSBOVUxMKSAmJiAocmV0LT5ldHlwZSA9PSBYTUxfRUxFTUVOVF9UWVBFX1VOREVGSU5FRCkpIHsKKwkgICAgb2xkQXR0cmlidXRlcyA9IHJldC0+YXR0cmlidXRlczsKKwkgICAgcmV0LT5hdHRyaWJ1dGVzID0gTlVMTDsKKwkgICAgeG1sSGFzaFJlbW92ZUVudHJ5MihkdGQtPmRvYy0+aW50U3Vic2V0LT5lbGVtZW50cywgbmFtZSwgbnMsIE5VTEwpOworCSAgICB4bWxGcmVlRWxlbWVudChyZXQpOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZSBlbGVtZW50IG1heSBhbHJlYWR5IGJlIHByZXNlbnQgaWYgb25lIG9mIGl0cyBhdHRyaWJ1dGUKKyAgICAgKiB3YXMgcmVnaXN0ZXJlZCBmaXJzdAorICAgICAqLworICAgIHJldCA9IHhtbEhhc2hMb29rdXAyKHRhYmxlLCBuYW1lLCBucyk7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJaWYgKHJldC0+ZXR5cGUgIT0gWE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQpIHsKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorCSAgICAvKgorCSAgICAgKiBUaGUgZWxlbWVudCBpcyBhbHJlYWR5IGRlZmluZWQgaW4gdGhpcyBEVEQuCisJICAgICAqLworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGR0ZCwgWE1MX0RURF9FTEVNX1JFREVGSU5FRCwKKwkgICAgICAgICAgICAgICAgICAgICJSZWRlZmluaXRpb24gb2YgZWxlbWVudCAlc1xuIiwKKwkJCSAgICBuYW1lLCBOVUxMLCBOVUxMKTsKKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworCSAgICBpZiAodXFuYW1lICE9IE5VTEwpCisJCXhtbEZyZWUodXFuYW1lKTsKKyAgICAgICAgICAgIGlmIChucyAhPSBOVUxMKQorCSAgICAgICAgeG1sRnJlZShucyk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJaWYgKG5zICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZShucyk7CisJICAgIG5zID0gTlVMTDsKKwl9CisgICAgfSBlbHNlIHsKKwlyZXQgPSAoeG1sRWxlbWVudFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxFbGVtZW50KSk7CisJaWYgKHJldCA9PSBOVUxMKSB7CisJICAgIHhtbFZFcnJNZW1vcnkoY3R4dCwgIm1hbGxvYyBmYWlsZWQiKTsKKwkgICAgaWYgKHVxbmFtZSAhPSBOVUxMKQorCQl4bWxGcmVlKHVxbmFtZSk7CisgICAgICAgICAgICBpZiAobnMgIT0gTlVMTCkKKwkgICAgICAgIHhtbEZyZWUobnMpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCW1lbXNldChyZXQsIDAsIHNpemVvZih4bWxFbGVtZW50KSk7CisJcmV0LT50eXBlID0gWE1MX0VMRU1FTlRfREVDTDsKKworCS8qCisJICogZmlsbCB0aGUgc3RydWN0dXJlLgorCSAqLworCXJldC0+bmFtZSA9IHhtbFN0cmR1cChuYW1lKTsKKwlpZiAocmV0LT5uYW1lID09IE5VTEwpIHsKKwkgICAgeG1sVkVyck1lbW9yeShjdHh0LCAibWFsbG9jIGZhaWxlZCIpOworCSAgICBpZiAodXFuYW1lICE9IE5VTEwpCisJCXhtbEZyZWUodXFuYW1lKTsKKyAgICAgICAgICAgIGlmIChucyAhPSBOVUxMKQorCSAgICAgICAgeG1sRnJlZShucyk7CisJICAgIHhtbEZyZWUocmV0KTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKwlyZXQtPnByZWZpeCA9IG5zOworCisJLyoKKwkgKiBWYWxpZGl0eSBDaGVjazoKKwkgKiBJbnNlcnRpb24gbXVzdCBub3QgZmFpbAorCSAqLworCWlmICh4bWxIYXNoQWRkRW50cnkyKHRhYmxlLCBuYW1lLCBucywgcmV0KSkgeworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisJICAgIC8qCisJICAgICAqIFRoZSBlbGVtZW50IGlzIGFscmVhZHkgZGVmaW5lZCBpbiB0aGlzIERURC4KKwkgICAgICovCisJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZHRkLCBYTUxfRFREX0VMRU1fUkVERUZJTkVELAorCSAgICAgICAgICAgICAgICAgICAgIlJlZGVmaW5pdGlvbiBvZiBlbGVtZW50ICVzXG4iLAorCQkJICAgIG5hbWUsIE5VTEwsIE5VTEwpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisJICAgIHhtbEZyZWVFbGVtZW50KHJldCk7CisJICAgIGlmICh1cW5hbWUgIT0gTlVMTCkKKwkJeG1sRnJlZSh1cW5hbWUpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCS8qCisJICogRm9yIG5ldyBlbGVtZW50LCBtYXkgaGF2ZSBhdHRyaWJ1dGVzIGZyb20gZWFybGllcgorCSAqIGRlZmluaXRpb24gaW4gaW50ZXJuYWwgc3Vic2V0CisJICovCisJcmV0LT5hdHRyaWJ1dGVzID0gb2xkQXR0cmlidXRlczsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEZpbmlzaCB0byBmaWxsIHRoZSBzdHJ1Y3R1cmUuCisgICAgICovCisgICAgcmV0LT5ldHlwZSA9IHR5cGU7CisgICAgLyoKKyAgICAgKiBBdm9pZCBhIHN0dXBpZCBjb3B5IHdoZW4gY2FsbGVkIGJ5IHRoZSBwYXJzZXIKKyAgICAgKiBhbmQgZmxhZyBpdCBieSBzZXR0aW5nIGEgc3BlY2lhbCBwYXJlbnQgdmFsdWUKKyAgICAgKiBzbyB0aGUgcGFyc2VyIGRvZXNuJ3QgdW5hbGxvY2F0ZSBpdC4KKyAgICAgKi8KKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYKKyAgICAgICAgKChjdHh0LT5maW5pc2hEdGQgPT0gWE1MX0NUWFRfRklOSVNIX0RURF8wKSB8fAorICAgICAgICAgKGN0eHQtPmZpbmlzaER0ZCA9PSBYTUxfQ1RYVF9GSU5JU0hfRFREXzEpKSkgeworCXJldC0+Y29udGVudCA9IGNvbnRlbnQ7CisJaWYgKGNvbnRlbnQgIT0gTlVMTCkKKwkgICAgY29udGVudC0+cGFyZW50ID0gKHhtbEVsZW1lbnRDb250ZW50UHRyKSAxOworICAgIH0gZWxzZSB7CisJcmV0LT5jb250ZW50ID0geG1sQ29weURvY0VsZW1lbnRDb250ZW50KGR0ZC0+ZG9jLCBjb250ZW50KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIExpbmsgaXQgdG8gdGhlIERURAorICAgICAqLworICAgIHJldC0+cGFyZW50ID0gZHRkOworICAgIHJldC0+ZG9jID0gZHRkLT5kb2M7CisgICAgaWYgKGR0ZC0+bGFzdCA9PSBOVUxMKSB7CisJZHRkLT5jaGlsZHJlbiA9IGR0ZC0+bGFzdCA9ICh4bWxOb2RlUHRyKSByZXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZHRkLT5sYXN0LT5uZXh0ID0gKHhtbE5vZGVQdHIpIHJldDsKKwlyZXQtPnByZXYgPSBkdGQtPmxhc3Q7CisJZHRkLT5sYXN0ID0gKHhtbE5vZGVQdHIpIHJldDsKKyAgICB9CisgICAgaWYgKHVxbmFtZSAhPSBOVUxMKQorCXhtbEZyZWUodXFuYW1lKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxGcmVlRWxlbWVudFRhYmxlOgorICogQHRhYmxlOiAgQW4gZWxlbWVudCB0YWJsZQorICoKKyAqIERlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIGVsZW1lbnQgaGFzaCB0YWJsZS4KKyAqLwordm9pZAoreG1sRnJlZUVsZW1lbnRUYWJsZSh4bWxFbGVtZW50VGFibGVQdHIgdGFibGUpIHsKKyAgICB4bWxIYXNoRnJlZSh0YWJsZSwgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sRnJlZUVsZW1lbnQpOworfQorCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoqCisgKiB4bWxDb3B5RWxlbWVudDoKKyAqIEBlbGVtOiAgQW4gZWxlbWVudAorICoKKyAqIEJ1aWxkIGEgY29weSBvZiBhbiBlbGVtZW50LgorICogCisgKiBSZXR1cm5zIHRoZSBuZXcgeG1sRWxlbWVudFB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyB4bWxFbGVtZW50UHRyCit4bWxDb3B5RWxlbWVudCh4bWxFbGVtZW50UHRyIGVsZW0pIHsKKyAgICB4bWxFbGVtZW50UHRyIGN1cjsKKworICAgIGN1ciA9ICh4bWxFbGVtZW50UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEVsZW1lbnQpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwl4bWxWRXJyTWVtb3J5KE5VTEwsICJtYWxsb2MgZmFpbGVkIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sRWxlbWVudCkpOworICAgIGN1ci0+dHlwZSA9IFhNTF9FTEVNRU5UX0RFQ0w7CisgICAgY3VyLT5ldHlwZSA9IGVsZW0tPmV0eXBlOworICAgIGlmIChlbGVtLT5uYW1lICE9IE5VTEwpCisJY3VyLT5uYW1lID0geG1sU3RyZHVwKGVsZW0tPm5hbWUpOworICAgIGVsc2UKKwljdXItPm5hbWUgPSBOVUxMOworICAgIGlmIChlbGVtLT5wcmVmaXggIT0gTlVMTCkKKwljdXItPnByZWZpeCA9IHhtbFN0cmR1cChlbGVtLT5wcmVmaXgpOworICAgIGVsc2UKKwljdXItPnByZWZpeCA9IE5VTEw7CisgICAgY3VyLT5jb250ZW50ID0geG1sQ29weUVsZW1lbnRDb250ZW50KGVsZW0tPmNvbnRlbnQpOworICAgIC8qIFRPRE8gOiByZWJ1aWxkIHRoZSBhdHRyaWJ1dGUgbGlzdCBvbiB0aGUgY29weSAqLworICAgIGN1ci0+YXR0cmlidXRlcyA9IE5VTEw7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sQ29weUVsZW1lbnRUYWJsZToKKyAqIEB0YWJsZTogIEFuIGVsZW1lbnQgdGFibGUKKyAqCisgKiBCdWlsZCBhIGNvcHkgb2YgYW4gZWxlbWVudCB0YWJsZS4KKyAqIAorICogUmV0dXJucyB0aGUgbmV3IHhtbEVsZW1lbnRUYWJsZVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbEVsZW1lbnRUYWJsZVB0cgoreG1sQ29weUVsZW1lbnRUYWJsZSh4bWxFbGVtZW50VGFibGVQdHIgdGFibGUpIHsKKyAgICByZXR1cm4oKHhtbEVsZW1lbnRUYWJsZVB0cikgeG1sSGFzaENvcHkodGFibGUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sSGFzaENvcGllcikgeG1sQ29weUVsZW1lbnQpKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sRHVtcEVsZW1lbnREZWNsOgorICogQGJ1ZjogIHRoZSBYTUwgYnVmZmVyIG91dHB1dAorICogQGVsZW06ICBBbiBlbGVtZW50IHRhYmxlCisgKgorICogVGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24gYXMgYW4gWE1MCisgKiBEVEQgZGVmaW5pdGlvbgorICovCit2b2lkCit4bWxEdW1wRWxlbWVudERlY2woeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sRWxlbWVudFB0ciBlbGVtKSB7CisgICAgaWYgKChidWYgPT0gTlVMTCkgfHwgKGVsZW0gPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKGVsZW0tPmV0eXBlKSB7CisJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX0VNUFRZOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiPCFFTEVNRU5UICIpOworCSAgICBpZiAoZWxlbS0+cHJlZml4ICE9IE5VTEwpIHsKKwkJeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgZWxlbS0+cHJlZml4KTsKKwkJeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIjoiKTsKKwkgICAgfQorCSAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBlbGVtLT5uYW1lKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBFTVBUWT5cbiIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9FTEVNRU5UX1RZUEVfQU5ZOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiPCFFTEVNRU5UICIpOworCSAgICBpZiAoZWxlbS0+cHJlZml4ICE9IE5VTEwpIHsKKwkJeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgZWxlbS0+cHJlZml4KTsKKwkJeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIjoiKTsKKwkgICAgfQorCSAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBlbGVtLT5uYW1lKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBBTlk+XG4iKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX01JWEVEOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiPCFFTEVNRU5UICIpOworCSAgICBpZiAoZWxlbS0+cHJlZml4ICE9IE5VTEwpIHsKKwkJeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgZWxlbS0+cHJlZml4KTsKKwkJeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIjoiKTsKKwkgICAgfQorCSAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBlbGVtLT5uYW1lKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiAiKTsKKwkgICAgeG1sRHVtcEVsZW1lbnRDb250ZW50KGJ1ZiwgZWxlbS0+Y29udGVudCwgMSk7CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICI+XG4iKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX0VMRU1FTlQ6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICI8IUVMRU1FTlQgIik7CisJICAgIGlmIChlbGVtLT5wcmVmaXggIT0gTlVMTCkgeworCQl4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBlbGVtLT5wcmVmaXgpOworCQl4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiOiIpOworCSAgICB9CisJICAgIHhtbEJ1ZmZlcldyaXRlQ0hBUihidWYsIGVsZW0tPm5hbWUpOworCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiICIpOworCSAgICB4bWxEdW1wRWxlbWVudENvbnRlbnQoYnVmLCBlbGVtLT5jb250ZW50LCAxKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIj5cbiIpOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICB4bWxFcnJWYWxpZChOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLCAKKwkJICAgICJJbnRlcm5hbDogRUxFTUVOVCBzdHJ1Y3QgY29ycnVwdGVkIGludmFsaWQgdHlwZVxuIiwKKwkJICAgIE5VTEwpOworICAgIH0KK30KKworLyoqCisgKiB4bWxEdW1wRWxlbWVudERlY2xTY2FuOgorICogQGVsZW06ICBBbiBlbGVtZW50IHRhYmxlCisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKgorICogVGhpcyByb3V0aW5lIGlzIHVzZWQgYnkgdGhlIGhhc2ggc2NhbiBmdW5jdGlvbi4gIEl0IGp1c3QgcmV2ZXJzZXMKKyAqIHRoZSBhcmd1bWVudHMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxEdW1wRWxlbWVudERlY2xTY2FuKHhtbEVsZW1lbnRQdHIgZWxlbSwgeG1sQnVmZmVyUHRyIGJ1ZikgeworICAgIHhtbER1bXBFbGVtZW50RGVjbChidWYsIGVsZW0pOworfQorCisvKioKKyAqIHhtbER1bXBFbGVtZW50VGFibGU6CisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKiBAdGFibGU6ICBBbiBlbGVtZW50IHRhYmxlCisgKgorICogVGhpcyB3aWxsIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQgdGFibGUgYXMgYW4gWE1MIERURCBkZWZpbml0aW9uCisgKi8KK3ZvaWQKK3htbER1bXBFbGVtZW50VGFibGUoeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sRWxlbWVudFRhYmxlUHRyIHRhYmxlKSB7CisgICAgaWYgKChidWYgPT0gTlVMTCkgfHwgKHRhYmxlID09IE5VTEwpKQorICAgICAgICByZXR1cm47CisgICAgeG1sSGFzaFNjYW4odGFibGUsICh4bWxIYXNoU2Nhbm5lcikgeG1sRHVtcEVsZW1lbnREZWNsU2NhbiwgYnVmKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxDcmVhdGVFbnVtZXJhdGlvbjoKKyAqIEBuYW1lOiAgdGhlIGVudW1lcmF0aW9uIG5hbWUgb3IgTlVMTAorICoKKyAqIGNyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBhbiBlbnVtZXJhdGlvbiBhdHRyaWJ1dGUgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxFbnVtZXJhdGlvblB0ciBqdXN0IGNyZWF0ZWQgb3IgTlVMTCBpbiBjYXNlCisgKiAgICAgICAgICAgICAgICBvZiBlcnJvci4KKyAqLworeG1sRW51bWVyYXRpb25QdHIKK3htbENyZWF0ZUVudW1lcmF0aW9uKGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxFbnVtZXJhdGlvblB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sRW51bWVyYXRpb25QdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sRW51bWVyYXRpb24pKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxWRXJyTWVtb3J5KE5VTEwsICJtYWxsb2MgZmFpbGVkIik7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbEVudW1lcmF0aW9uKSk7CisKKyAgICBpZiAobmFtZSAhPSBOVUxMKQorICAgICAgICByZXQtPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sRnJlZUVudW1lcmF0aW9uOgorICogQGN1cjogIHRoZSB0cmVlIHRvIGZyZWUuCisgKgorICogZnJlZSBhbiBlbnVtZXJhdGlvbiBhdHRyaWJ1dGUgbm9kZSAocmVjdXJzaXZlKS4KKyAqLwordm9pZAoreG1sRnJlZUVudW1lcmF0aW9uKHhtbEVudW1lcmF0aW9uUHRyIGN1cikgeworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB4bWxGcmVlRW51bWVyYXRpb24oY3VyLT5uZXh0KTsKKworICAgIGlmIChjdXItPm5hbWUgIT0gTlVMTCkgeG1sRnJlZSgoeG1sQ2hhciAqKSBjdXItPm5hbWUpOworICAgIHhtbEZyZWUoY3VyKTsKK30KKworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKy8qKgorICogeG1sQ29weUVudW1lcmF0aW9uOgorICogQGN1cjogIHRoZSB0cmVlIHRvIGNvcHkuCisgKgorICogQ29weSBhbiBlbnVtZXJhdGlvbiBhdHRyaWJ1dGUgbm9kZSAocmVjdXJzaXZlKS4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxFbnVtZXJhdGlvblB0ciBqdXN0IGNyZWF0ZWQgb3IgTlVMTCBpbiBjYXNlCisgKiAgICAgICAgICAgICAgICBvZiBlcnJvci4KKyAqLworeG1sRW51bWVyYXRpb25QdHIKK3htbENvcHlFbnVtZXJhdGlvbih4bWxFbnVtZXJhdGlvblB0ciBjdXIpIHsKKyAgICB4bWxFbnVtZXJhdGlvblB0ciByZXQ7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICByZXQgPSB4bWxDcmVhdGVFbnVtZXJhdGlvbigoeG1sQ2hhciAqKSBjdXItPm5hbWUpOworCisgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSByZXQtPm5leHQgPSB4bWxDb3B5RW51bWVyYXRpb24oY3VyLT5uZXh0KTsKKyAgICBlbHNlIHJldC0+bmV4dCA9IE5VTEw7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sRHVtcEVudW1lcmF0aW9uOgorICogQGJ1ZjogIHRoZSBYTUwgYnVmZmVyIG91dHB1dAorICogQGVudW06ICBBbiBlbnVtZXJhdGlvbgorICoKKyAqIFRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBlbnVtZXJhdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sRHVtcEVudW1lcmF0aW9uKHhtbEJ1ZmZlclB0ciBidWYsIHhtbEVudW1lcmF0aW9uUHRyIGN1cikgeworICAgIGlmICgoYnVmID09IE5VTEwpIHx8IChjdXIgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBjdXItPm5hbWUpOworICAgIGlmIChjdXItPm5leHQgPT0gTlVMTCkKKwl4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiKSIpOworICAgIGVsc2UgeworCXhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgfCAiKTsKKwl4bWxEdW1wRW51bWVyYXRpb24oYnVmLCBjdXItPm5leHQpOworICAgIH0KK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisvKioKKyAqIHhtbFNjYW5JREF0dHJpYnV0ZURlY2w6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBlbGVtOiAgdGhlIGVsZW1lbnQgbmFtZQorICogQGVycjogd2hldGhlciB0byByYWlzZSBlcnJvcnMgaGVyZQorICoKKyAqIFZlcmlmeSB0aGF0IHRoZSBlbGVtZW50IGRvbid0IGhhdmUgdG9vIG1hbnkgSUQgYXR0cmlidXRlcworICogZGVjbGFyZWQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIElEIGF0dHJpYnV0ZXMgZm91bmQuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjYW5JREF0dHJpYnV0ZURlY2woeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbEVsZW1lbnRQdHIgZWxlbSwgaW50IGVycikgeworICAgIHhtbEF0dHJpYnV0ZVB0ciBjdXI7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoZWxlbSA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgY3VyID0gZWxlbS0+YXR0cmlidXRlczsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGN1ci0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9JRCkgeworCSAgICByZXQgKys7CisJICAgIGlmICgocmV0ID4gMSkgJiYgKGVycikpCisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZWxlbSwgWE1MX0RURF9NVUxUSVBMRV9JRCwKKwkgICAgICAgIkVsZW1lbnQgJXMgaGFzIHRvbyBtYW55IElEIGF0dHJpYnV0ZXMgZGVmaW5lZCA6ICVzXG4iLAorCQkgICAgICAgZWxlbS0+bmFtZSwgY3VyLT5uYW1lLCBOVUxMKTsKKwl9CisJY3VyID0gY3VyLT5uZXh0aDsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxGcmVlQXR0cmlidXRlOgorICogQGVsZW06ICBBbiBhdHRyaWJ1dGUKKyAqCisgKiBEZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sRnJlZUF0dHJpYnV0ZSh4bWxBdHRyaWJ1dGVQdHIgYXR0cikgeworICAgIHhtbERpY3RQdHIgZGljdDsKKworICAgIGlmIChhdHRyID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAoYXR0ci0+ZG9jICE9IE5VTEwpCisJZGljdCA9IGF0dHItPmRvYy0+ZGljdDsKKyAgICBlbHNlCisJZGljdCA9IE5VTEw7CisgICAgeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgYXR0cik7CisgICAgaWYgKGF0dHItPnRyZWUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZUVudW1lcmF0aW9uKGF0dHItPnRyZWUpOworICAgIGlmIChkaWN0KSB7CisgICAgICAgIGlmICgoYXR0ci0+ZWxlbSAhPSBOVUxMKSAmJiAoIXhtbERpY3RPd25zKGRpY3QsIGF0dHItPmVsZW0pKSkKKwkgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBhdHRyLT5lbGVtKTsKKyAgICAgICAgaWYgKChhdHRyLT5uYW1lICE9IE5VTEwpICYmICgheG1sRGljdE93bnMoZGljdCwgYXR0ci0+bmFtZSkpKQorCSAgICB4bWxGcmVlKCh4bWxDaGFyICopIGF0dHItPm5hbWUpOworICAgICAgICBpZiAoKGF0dHItPnByZWZpeCAhPSBOVUxMKSAmJiAoIXhtbERpY3RPd25zKGRpY3QsIGF0dHItPnByZWZpeCkpKQorCSAgICB4bWxGcmVlKCh4bWxDaGFyICopIGF0dHItPnByZWZpeCk7CisgICAgICAgIGlmICgoYXR0ci0+ZGVmYXVsdFZhbHVlICE9IE5VTEwpICYmCisJICAgICgheG1sRGljdE93bnMoZGljdCwgYXR0ci0+ZGVmYXVsdFZhbHVlKSkpCisJICAgIHhtbEZyZWUoKHhtbENoYXIgKikgYXR0ci0+ZGVmYXVsdFZhbHVlKTsKKyAgICB9IGVsc2UgeworCWlmIChhdHRyLT5lbGVtICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKHhtbENoYXIgKikgYXR0ci0+ZWxlbSk7CisJaWYgKGF0dHItPm5hbWUgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSBhdHRyLT5uYW1lKTsKKwlpZiAoYXR0ci0+ZGVmYXVsdFZhbHVlICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKHhtbENoYXIgKikgYXR0ci0+ZGVmYXVsdFZhbHVlKTsKKwlpZiAoYXR0ci0+cHJlZml4ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKHhtbENoYXIgKikgYXR0ci0+cHJlZml4KTsKKyAgICB9CisgICAgeG1sRnJlZShhdHRyKTsKK30KKworCisvKioKKyAqIHhtbEFkZEF0dHJpYnV0ZURlY2w6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkdGQ6ICBwb2ludGVyIHRvIHRoZSBEVEQKKyAqIEBlbGVtOiAgdGhlIGVsZW1lbnQgbmFtZQorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqIEBuczogIHRoZSBhdHRyaWJ1dGUgbmFtZXNwYWNlIHByZWZpeAorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUKKyAqIEBkZWY6ICB0aGUgYXR0cmlidXRlIGRlZmF1bHQgdHlwZQorICogQGRlZmF1bHRWYWx1ZTogIHRoZSBhdHRyaWJ1dGUgZGVmYXVsdCB2YWx1ZQorICogQHRyZWU6ICBpZiBpdCdzIGFuIGVudW1lcmF0aW9uLCB0aGUgYXNzb2NpYXRlZCBsaXN0CisgKgorICogUmVnaXN0ZXIgYSBuZXcgYXR0cmlidXRlIGRlY2xhcmF0aW9uCisgKiBOb3RlIHRoYXQgQHRyZWUgYmVjb21lcyB0aGUgb3duZXJzaGlwIG9mIHRoZSBEVEQKKyAqCisgKiBSZXR1cm5zIE5VTEwgaWYgbm90IG5ldywgb3RoZXJ3aXNlIHRoZSBhdHRyaWJ1dGUgZGVjbAorICovCit4bWxBdHRyaWJ1dGVQdHIKK3htbEFkZEF0dHJpYnV0ZURlY2woeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgIHhtbER0ZFB0ciBkdGQsIGNvbnN0IHhtbENoYXIgKmVsZW0sCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKm5zLAorCQkgICAgeG1sQXR0cmlidXRlVHlwZSB0eXBlLCB4bWxBdHRyaWJ1dGVEZWZhdWx0IGRlZiwKKwkJICAgIGNvbnN0IHhtbENoYXIgKmRlZmF1bHRWYWx1ZSwgeG1sRW51bWVyYXRpb25QdHIgdHJlZSkgeworICAgIHhtbEF0dHJpYnV0ZVB0ciByZXQ7CisgICAgeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGU7CisgICAgeG1sRWxlbWVudFB0ciBlbGVtRGVmOworICAgIHhtbERpY3RQdHIgZGljdCA9IE5VTEw7CisKKyAgICBpZiAoZHRkID09IE5VTEwpIHsKKwl4bWxGcmVlRW51bWVyYXRpb24odHJlZSk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisJeG1sRnJlZUVudW1lcmF0aW9uKHRyZWUpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGVsZW0gPT0gTlVMTCkgeworCXhtbEZyZWVFbnVtZXJhdGlvbih0cmVlKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChkdGQtPmRvYyAhPSBOVUxMKQorCWRpY3QgPSBkdGQtPmRvYy0+ZGljdDsKKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgLyoKKyAgICAgKiBDaGVjayB0aGUgdHlwZSBhbmQgcG9zc2libHkgdGhlIGRlZmF1bHQgdmFsdWUuCisgICAgICovCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9DREFUQToKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9JRDoKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9JRFJFRjoKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9JRFJFRlM6CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfRU5USVRZOgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0VOVElUSUVTOgorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05NVE9LRU46CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk1UT0tFTlM6CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT046CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9UQVRJT046CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHhtbEVyclZhbGlkKGN0eHQsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsIAorCQkgICAgIkludGVybmFsOiBBVFRSSUJVVEUgc3RydWN0IGNvcnJ1cHRlZCBpbnZhbGlkIHR5cGVcbiIsCisJCSAgICBOVUxMKTsKKwkgICAgeG1sRnJlZUVudW1lcmF0aW9uKHRyZWUpOworCSAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICgoZGVmYXVsdFZhbHVlICE9IE5VTEwpICYmIAorICAgICAgICAoIXhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWVJbnRlcm5hbChkdGQtPmRvYywgdHlwZSwgZGVmYXVsdFZhbHVlKSkpIHsKKwl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGR0ZCwgWE1MX0RURF9BVFRSSUJVVEVfREVGQVVMVCwKKwkgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZSAlcyBvZiAlczogaW52YWxpZCBkZWZhdWx0IHZhbHVlXG4iLAorCSAgICAgICAgICAgICAgICBlbGVtLCBuYW1lLCBkZWZhdWx0VmFsdWUpOworCWRlZmF1bHRWYWx1ZSA9IE5VTEw7CisJaWYgKGN0eHQgIT0gTlVMTCkKKwkgICAgY3R4dC0+dmFsaWQgPSAwOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworCisgICAgLyoKKyAgICAgKiBDaGVjayBmaXJzdCB0aGF0IGFuIGF0dHJpYnV0ZSBkZWZpbmVkIGluIHRoZSBleHRlcm5hbCBzdWJzZXQgd2Fzbid0CisgICAgICogYWxyZWFkeSBkZWZpbmVkIGluIHRoZSBpbnRlcm5hbCBzdWJzZXQKKyAgICAgKi8KKyAgICBpZiAoKGR0ZC0+ZG9jICE9IE5VTEwpICYmIChkdGQtPmRvYy0+ZXh0U3Vic2V0ID09IGR0ZCkgJiYKKwkoZHRkLT5kb2MtPmludFN1YnNldCAhPSBOVUxMKSAmJgorCShkdGQtPmRvYy0+aW50U3Vic2V0LT5hdHRyaWJ1dGVzICE9IE5VTEwpKSB7CisgICAgICAgIHJldCA9IHhtbEhhc2hMb29rdXAzKGR0ZC0+ZG9jLT5pbnRTdWJzZXQtPmF0dHJpYnV0ZXMsIG5hbWUsIG5zLCBlbGVtKTsKKwlpZiAocmV0ICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZUVudW1lcmF0aW9uKHRyZWUpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogQ3JlYXRlIHRoZSBBdHRyaWJ1dGUgdGFibGUgaWYgbmVlZGVkLgorICAgICAqLworICAgIHRhYmxlID0gKHhtbEF0dHJpYnV0ZVRhYmxlUHRyKSBkdGQtPmF0dHJpYnV0ZXM7CisgICAgaWYgKHRhYmxlID09IE5VTEwpIHsKKyAgICAgICAgdGFibGUgPSB4bWxIYXNoQ3JlYXRlRGljdCgwLCBkaWN0KTsKKwlkdGQtPmF0dHJpYnV0ZXMgPSAodm9pZCAqKSB0YWJsZTsKKyAgICB9CisgICAgaWYgKHRhYmxlID09IE5VTEwpIHsKKwl4bWxWRXJyTWVtb3J5KGN0eHQsCisgICAgICAgICAgICAieG1sQWRkQXR0cmlidXRlRGVjbDogVGFibGUgY3JlYXRpb24gZmFpbGVkIVxuIik7CisJeG1sRnJlZUVudW1lcmF0aW9uKHRyZWUpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisKKyAgICByZXQgPSAoeG1sQXR0cmlidXRlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEF0dHJpYnV0ZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFZFcnJNZW1vcnkoY3R4dCwgIm1hbGxvYyBmYWlsZWQiKTsKKwl4bWxGcmVlRW51bWVyYXRpb24odHJlZSk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sQXR0cmlidXRlKSk7CisgICAgcmV0LT50eXBlID0gWE1MX0FUVFJJQlVURV9ERUNMOworCisgICAgLyoKKyAgICAgKiBmaWxsIHRoZSBzdHJ1Y3R1cmUuCisgICAgICovCisgICAgcmV0LT5hdHlwZSA9IHR5cGU7CisgICAgLyoKKyAgICAgKiBkb2MgbXVzdCBiZSBzZXQgYmVmb3JlIHBvc3NpYmxlIGVycm9yIGNhdXNlcyBjYWxsCisgICAgICogdG8geG1sRnJlZUF0dHJpYnV0ZSAoYmVjYXVzZSBpdCdzIHVzZWQgdG8gY2hlY2sgb24KKyAgICAgKiBkaWN0IHVzZSkKKyAgICAgKi8KKyAgICByZXQtPmRvYyA9IGR0ZC0+ZG9jOworICAgIGlmIChkaWN0KSB7CisJcmV0LT5uYW1lID0geG1sRGljdExvb2t1cChkaWN0LCBuYW1lLCAtMSk7CisJcmV0LT5wcmVmaXggPSB4bWxEaWN0TG9va3VwKGRpY3QsIG5zLCAtMSk7CisJcmV0LT5lbGVtID0geG1sRGljdExvb2t1cChkaWN0LCBlbGVtLCAtMSk7CisgICAgfSBlbHNlIHsKKwlyZXQtPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisJcmV0LT5wcmVmaXggPSB4bWxTdHJkdXAobnMpOworCXJldC0+ZWxlbSA9IHhtbFN0cmR1cChlbGVtKTsKKyAgICB9CisgICAgcmV0LT5kZWYgPSBkZWY7CisgICAgcmV0LT50cmVlID0gdHJlZTsKKyAgICBpZiAoZGVmYXVsdFZhbHVlICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGRpY3QpCisJICAgIHJldC0+ZGVmYXVsdFZhbHVlID0geG1sRGljdExvb2t1cChkaWN0LCBkZWZhdWx0VmFsdWUsIC0xKTsKKwllbHNlCisJICAgIHJldC0+ZGVmYXVsdFZhbHVlID0geG1sU3RyZHVwKGRlZmF1bHRWYWx1ZSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBWYWxpZGl0eSBDaGVjazoKKyAgICAgKiBTZWFyY2ggdGhlIERURCBmb3IgcHJldmlvdXMgZGVjbGFyYXRpb25zIG9mIHRoZSBBVFRMSVNUCisgICAgICovCisgICAgaWYgKHhtbEhhc2hBZGRFbnRyeTModGFibGUsIHJldC0+bmFtZSwgcmV0LT5wcmVmaXgsIHJldC0+ZWxlbSwgcmV0KSA8IDApIHsKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorCS8qCisJICogVGhlIGF0dHJpYnV0ZSBpcyBhbHJlYWR5IGRlZmluZWQgaW4gdGhpcyBEVEQuCisJICovCisJeG1sRXJyVmFsaWRXYXJuaW5nKGN0eHQsICh4bWxOb2RlUHRyKSBkdGQsIFhNTF9EVERfQVRUUklCVVRFX1JFREVGSU5FRCwKKwkJICJBdHRyaWJ1dGUgJXMgb2YgZWxlbWVudCAlczogYWxyZWFkeSBkZWZpbmVkXG4iLAorCQkgbmFtZSwgZWxlbSwgTlVMTCk7CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKwl4bWxGcmVlQXR0cmlidXRlKHJldCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogVmFsaWRpdHkgQ2hlY2s6CisgICAgICogTXVsdGlwbGUgSUQgcGVyIGVsZW1lbnQKKyAgICAgKi8KKyAgICBlbGVtRGVmID0geG1sR2V0RHRkRWxlbWVudERlc2MyKGR0ZCwgZWxlbSwgMSk7CisgICAgaWYgKGVsZW1EZWYgIT0gTlVMTCkgeworCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICAgICAgaWYgKCh0eXBlID09IFhNTF9BVFRSSUJVVEVfSUQpICYmCisJICAgICh4bWxTY2FuSURBdHRyaWJ1dGVEZWNsKE5VTEwsIGVsZW1EZWYsIDEpICE9IDApKSB7CisJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZHRkLCBYTUxfRFREX01VTFRJUExFX0lELAorCSAgICJFbGVtZW50ICVzIGhhcyB0b28gbWF5IElEIGF0dHJpYnV0ZXMgZGVmaW5lZCA6ICVzXG4iLAorCQkgICBlbGVtLCBuYW1lLCBOVUxMKTsKKwkgICAgaWYgKGN0eHQgIT0gTlVMTCkKKwkJY3R4dC0+dmFsaWQgPSAwOworCX0KKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworCisJLyoKKwkgKiBJbnNlcnQgbmFtZXNwYWNlIGRlZmF1bHQgZGVmIGZpcnN0IHRoZXkgbmVlZCB0byBiZQorCSAqIHByb2Nlc3NlZCBmaXJzdC4KKwkgKi8KKwlpZiAoKHhtbFN0ckVxdWFsKHJldC0+bmFtZSwgQkFEX0NBU1QgInhtbG5zIikpIHx8CisJICAgICgocmV0LT5wcmVmaXggIT0gTlVMTCAmJgorCSAgICAgKHhtbFN0ckVxdWFsKHJldC0+cHJlZml4LCBCQURfQ0FTVCAieG1sbnMiKSkpKSkgeworCSAgICByZXQtPm5leHRoID0gZWxlbURlZi0+YXR0cmlidXRlczsKKwkgICAgZWxlbURlZi0+YXR0cmlidXRlcyA9IHJldDsKKwl9IGVsc2UgeworCSAgICB4bWxBdHRyaWJ1dGVQdHIgdG1wID0gZWxlbURlZi0+YXR0cmlidXRlczsKKworCSAgICB3aGlsZSAoKHRtcCAhPSBOVUxMKSAmJgorCQkgICAoKHhtbFN0ckVxdWFsKHRtcC0+bmFtZSwgQkFEX0NBU1QgInhtbG5zIikpIHx8CisJCSAgICAoKHJldC0+cHJlZml4ICE9IE5VTEwgJiYKKwkJICAgICAoeG1sU3RyRXF1YWwocmV0LT5wcmVmaXgsIEJBRF9DQVNUICJ4bWxucyIpKSkpKSkgeworCQlpZiAodG1wLT5uZXh0aCA9PSBOVUxMKQorCQkgICAgYnJlYWs7CisJCXRtcCA9IHRtcC0+bmV4dGg7CisJICAgIH0KKwkgICAgaWYgKHRtcCAhPSBOVUxMKSB7CisJCXJldC0+bmV4dGggPSB0bXAtPm5leHRoOworCSAgICAgICAgdG1wLT5uZXh0aCA9IHJldDsKKwkgICAgfSBlbHNlIHsKKwkJcmV0LT5uZXh0aCA9IGVsZW1EZWYtPmF0dHJpYnV0ZXM7CisJCWVsZW1EZWYtPmF0dHJpYnV0ZXMgPSByZXQ7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBMaW5rIGl0IHRvIHRoZSBEVEQKKyAgICAgKi8KKyAgICByZXQtPnBhcmVudCA9IGR0ZDsKKyAgICBpZiAoZHRkLT5sYXN0ID09IE5VTEwpIHsKKwlkdGQtPmNoaWxkcmVuID0gZHRkLT5sYXN0ID0gKHhtbE5vZGVQdHIpIHJldDsKKyAgICB9IGVsc2UgeworICAgICAgICBkdGQtPmxhc3QtPm5leHQgPSAoeG1sTm9kZVB0cikgcmV0OworCXJldC0+cHJldiA9IGR0ZC0+bGFzdDsKKwlkdGQtPmxhc3QgPSAoeG1sTm9kZVB0cikgcmV0OworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxGcmVlQXR0cmlidXRlVGFibGU6CisgKiBAdGFibGU6ICBBbiBhdHRyaWJ1dGUgdGFibGUKKyAqCisgKiBEZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBlbnRpdGllcyBoYXNoIHRhYmxlLgorICovCit2b2lkCit4bWxGcmVlQXR0cmlidXRlVGFibGUoeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGUpIHsKKyAgICB4bWxIYXNoRnJlZSh0YWJsZSwgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sRnJlZUF0dHJpYnV0ZSk7Cit9CisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisvKioKKyAqIHhtbENvcHlBdHRyaWJ1dGU6CisgKiBAYXR0cjogIEFuIGF0dHJpYnV0ZQorICoKKyAqIEJ1aWxkIGEgY29weSBvZiBhbiBhdHRyaWJ1dGUuCisgKiAKKyAqIFJldHVybnMgdGhlIG5ldyB4bWxBdHRyaWJ1dGVQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sQXR0cmlidXRlUHRyCit4bWxDb3B5QXR0cmlidXRlKHhtbEF0dHJpYnV0ZVB0ciBhdHRyKSB7CisgICAgeG1sQXR0cmlidXRlUHRyIGN1cjsKKworICAgIGN1ciA9ICh4bWxBdHRyaWJ1dGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sQXR0cmlidXRlKSk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJeG1sVkVyck1lbW9yeShOVUxMLCAibWFsbG9jIGZhaWxlZCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbEF0dHJpYnV0ZSkpOworICAgIGN1ci0+dHlwZSA9IFhNTF9BVFRSSUJVVEVfREVDTDsKKyAgICBjdXItPmF0eXBlID0gYXR0ci0+YXR5cGU7CisgICAgY3VyLT5kZWYgPSBhdHRyLT5kZWY7CisgICAgY3VyLT50cmVlID0geG1sQ29weUVudW1lcmF0aW9uKGF0dHItPnRyZWUpOworICAgIGlmIChhdHRyLT5lbGVtICE9IE5VTEwpCisJY3VyLT5lbGVtID0geG1sU3RyZHVwKGF0dHItPmVsZW0pOworICAgIGlmIChhdHRyLT5uYW1lICE9IE5VTEwpCisJY3VyLT5uYW1lID0geG1sU3RyZHVwKGF0dHItPm5hbWUpOworICAgIGlmIChhdHRyLT5wcmVmaXggIT0gTlVMTCkKKwljdXItPnByZWZpeCA9IHhtbFN0cmR1cChhdHRyLT5wcmVmaXgpOworICAgIGlmIChhdHRyLT5kZWZhdWx0VmFsdWUgIT0gTlVMTCkKKwljdXItPmRlZmF1bHRWYWx1ZSA9IHhtbFN0cmR1cChhdHRyLT5kZWZhdWx0VmFsdWUpOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbENvcHlBdHRyaWJ1dGVUYWJsZToKKyAqIEB0YWJsZTogIEFuIGF0dHJpYnV0ZSB0YWJsZQorICoKKyAqIEJ1aWxkIGEgY29weSBvZiBhbiBhdHRyaWJ1dGUgdGFibGUuCisgKiAKKyAqIFJldHVybnMgdGhlIG5ldyB4bWxBdHRyaWJ1dGVUYWJsZVB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbEF0dHJpYnV0ZVRhYmxlUHRyCit4bWxDb3B5QXR0cmlidXRlVGFibGUoeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGUpIHsKKyAgICByZXR1cm4oKHhtbEF0dHJpYnV0ZVRhYmxlUHRyKSB4bWxIYXNoQ29weSh0YWJsZSwKKwkJCQkgICAgKHhtbEhhc2hDb3BpZXIpIHhtbENvcHlBdHRyaWJ1dGUpKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sRHVtcEF0dHJpYnV0ZURlY2w6CisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKiBAYXR0cjogIEFuIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbgorICoKKyAqIFRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gYXMgYW4gWE1MCisgKiBEVEQgZGVmaW5pdGlvbgorICovCit2b2lkCit4bWxEdW1wQXR0cmlidXRlRGVjbCh4bWxCdWZmZXJQdHIgYnVmLCB4bWxBdHRyaWJ1dGVQdHIgYXR0cikgeworICAgIGlmICgoYnVmID09IE5VTEwpIHx8IChhdHRyID09IE5VTEwpKQorICAgICAgICByZXR1cm47CisgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIjwhQVRUTElTVCAiKTsKKyAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBhdHRyLT5lbGVtKTsKKyAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiICIpOworICAgIGlmIChhdHRyLT5wcmVmaXggIT0gTlVMTCkgeworCXhtbEJ1ZmZlcldyaXRlQ0hBUihidWYsIGF0dHItPnByZWZpeCk7CisJeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIjoiKTsKKyAgICB9CisgICAgeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgYXR0ci0+bmFtZSk7CisgICAgc3dpdGNoIChhdHRyLT5hdHlwZSkgeworCWNhc2UgWE1MX0FUVFJJQlVURV9DREFUQToKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBDREFUQSIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfSUQ6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgSUQiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfQVRUUklCVVRFX0lEUkVGOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiIElEUkVGIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9JRFJFRlM6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgSURSRUZTIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9FTlRJVFk6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgRU5USVRZIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9FTlRJVElFUzoKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBFTlRJVElFUyIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfTk1UT0tFTjoKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBOTVRPS0VOIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9OTVRPS0VOUzoKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiBOTVRPS0VOUyIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT046CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgKCIpOworCSAgICB4bWxEdW1wRW51bWVyYXRpb24oYnVmLCBhdHRyLT50cmVlKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfQVRUUklCVVRFX05PVEFUSU9OOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiIE5PVEFUSU9OICgiKTsKKwkgICAgeG1sRHVtcEVudW1lcmF0aW9uKGJ1ZiwgYXR0ci0+dHJlZSk7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHhtbEVyclZhbGlkKE5VTEwsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsIAorCQkgICAgIkludGVybmFsOiBBVFRSSUJVVEUgc3RydWN0IGNvcnJ1cHRlZCBpbnZhbGlkIHR5cGVcbiIsCisJCSAgICBOVUxMKTsKKyAgICB9CisgICAgc3dpdGNoIChhdHRyLT5kZWYpIHsKKwljYXNlIFhNTF9BVFRSSUJVVEVfTk9ORToKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfQVRUUklCVVRFX1JFUVVJUkVEOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiICNSRVFVSVJFRCIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfSU1QTElFRDoKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiAjSU1QTElFRCIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfRklYRUQ6CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgI0ZJWEVEIik7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHhtbEVyclZhbGlkKE5VTEwsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsIAorCQkgICAgIkludGVybmFsOiBBVFRSSUJVVEUgc3RydWN0IGNvcnJ1cHRlZCBpbnZhbGlkIGRlZlxuIiwKKwkJICAgIE5VTEwpOworICAgIH0KKyAgICBpZiAoYXR0ci0+ZGVmYXVsdFZhbHVlICE9IE5VTEwpIHsKKwl4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiICIpOworCXhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1ZiwgYXR0ci0+ZGVmYXVsdFZhbHVlKTsKKyAgICB9CisgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIj5cbiIpOworfQorCisvKioKKyAqIHhtbER1bXBBdHRyaWJ1dGVEZWNsU2NhbjoKKyAqIEBhdHRyOiAgQW4gYXR0cmlidXRlIGRlY2xhcmF0aW9uCisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKgorICogVGhpcyBpcyB1c2VkIHdpdGggdGhlIGhhc2ggc2NhbiBmdW5jdGlvbiAtIGp1c3QgcmV2ZXJzZXMgYXJndW1lbnRzCisgKi8KK3N0YXRpYyB2b2lkCit4bWxEdW1wQXR0cmlidXRlRGVjbFNjYW4oeG1sQXR0cmlidXRlUHRyIGF0dHIsIHhtbEJ1ZmZlclB0ciBidWYpIHsKKyAgICB4bWxEdW1wQXR0cmlidXRlRGVjbChidWYsIGF0dHIpOworfQorCisvKioKKyAqIHhtbER1bXBBdHRyaWJ1dGVUYWJsZToKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEB0YWJsZTogIEFuIGF0dHJpYnV0ZSB0YWJsZQorICoKKyAqIFRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBhdHRyaWJ1dGUgdGFibGUgYXMgYW4gWE1MIERURCBkZWZpbml0aW9uCisgKi8KK3ZvaWQKK3htbER1bXBBdHRyaWJ1dGVUYWJsZSh4bWxCdWZmZXJQdHIgYnVmLCB4bWxBdHRyaWJ1dGVUYWJsZVB0ciB0YWJsZSkgeworICAgIGlmICgoYnVmID09IE5VTEwpIHx8ICh0YWJsZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuOworICAgIHhtbEhhc2hTY2FuKHRhYmxlLCAoeG1sSGFzaFNjYW5uZXIpIHhtbER1bXBBdHRyaWJ1dGVEZWNsU2NhbiwgYnVmKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCQlOT1RBVElPTnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxGcmVlTm90YXRpb246CisgKiBAbm90OiAgQSBub3RhdGlvbgorICoKKyAqIERlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIG5vdGF0aW9uIGRlZmluaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbEZyZWVOb3RhdGlvbih4bWxOb3RhdGlvblB0ciBub3RhKSB7CisgICAgaWYgKG5vdGEgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChub3RhLT5uYW1lICE9IE5VTEwpCisJeG1sRnJlZSgoeG1sQ2hhciAqKSBub3RhLT5uYW1lKTsKKyAgICBpZiAobm90YS0+UHVibGljSUQgIT0gTlVMTCkKKwl4bWxGcmVlKCh4bWxDaGFyICopIG5vdGEtPlB1YmxpY0lEKTsKKyAgICBpZiAobm90YS0+U3lzdGVtSUQgIT0gTlVMTCkKKwl4bWxGcmVlKCh4bWxDaGFyICopIG5vdGEtPlN5c3RlbUlEKTsKKyAgICB4bWxGcmVlKG5vdGEpOworfQorCisKKy8qKgorICogeG1sQWRkTm90YXRpb25EZWNsOgorICogQGR0ZDogIHBvaW50ZXIgdG8gdGhlIERURAorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBlbnRpdHkgbmFtZQorICogQFB1YmxpY0lEOiAgdGhlIHB1YmxpYyBpZGVudGlmaWVyIG9yIE5VTEwKKyAqIEBTeXN0ZW1JRDogIHRoZSBzeXN0ZW0gaWRlbnRpZmllciBvciBOVUxMCisgKgorICogUmVnaXN0ZXIgYSBuZXcgbm90YXRpb24gZGVjbGFyYXRpb24KKyAqCisgKiBSZXR1cm5zIE5VTEwgaWYgbm90LCBvdGhlcndpc2UgdGhlIGVudGl0eQorICovCit4bWxOb3RhdGlvblB0cgoreG1sQWRkTm90YXRpb25EZWNsKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEdGRQdHIgZHRkLAorCSAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpQdWJsaWNJRCwgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpIHsKKyAgICB4bWxOb3RhdGlvblB0ciByZXQ7CisgICAgeG1sTm90YXRpb25UYWJsZVB0ciB0YWJsZTsKKworICAgIGlmIChkdGQgPT0gTlVMTCkgeworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKChQdWJsaWNJRCA9PSBOVUxMKSAmJiAoU3lzdGVtSUQgPT0gTlVMTCkpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDcmVhdGUgdGhlIE5vdGF0aW9uIHRhYmxlIGlmIG5lZWRlZC4KKyAgICAgKi8KKyAgICB0YWJsZSA9ICh4bWxOb3RhdGlvblRhYmxlUHRyKSBkdGQtPm5vdGF0aW9uczsKKyAgICBpZiAodGFibGUgPT0gTlVMTCkgeworCXhtbERpY3RQdHIgZGljdCA9IE5VTEw7CisJaWYgKGR0ZC0+ZG9jICE9IE5VTEwpCisJICAgIGRpY3QgPSBkdGQtPmRvYy0+ZGljdDsKKworICAgICAgICBkdGQtPm5vdGF0aW9ucyA9IHRhYmxlID0geG1sSGFzaENyZWF0ZURpY3QoMCwgZGljdCk7CisgICAgfQorICAgIGlmICh0YWJsZSA9PSBOVUxMKSB7CisJeG1sVkVyck1lbW9yeShjdHh0LAorCQkieG1sQWRkTm90YXRpb25EZWNsOiBUYWJsZSBjcmVhdGlvbiBmYWlsZWQhXG4iKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIHJldCA9ICh4bWxOb3RhdGlvblB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOb3RhdGlvbikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFZFcnJNZW1vcnkoY3R4dCwgIm1hbGxvYyBmYWlsZWQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxOb3RhdGlvbikpOworCisgICAgLyoKKyAgICAgKiBmaWxsIHRoZSBzdHJ1Y3R1cmUuCisgICAgICovCisgICAgcmV0LT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworICAgIGlmIChTeXN0ZW1JRCAhPSBOVUxMKQorICAgICAgICByZXQtPlN5c3RlbUlEID0geG1sU3RyZHVwKFN5c3RlbUlEKTsKKyAgICBpZiAoUHVibGljSUQgIT0gTlVMTCkKKyAgICAgICAgcmV0LT5QdWJsaWNJRCA9IHhtbFN0cmR1cChQdWJsaWNJRCk7CisKKyAgICAvKgorICAgICAqIFZhbGlkaXR5IENoZWNrOgorICAgICAqIENoZWNrIHRoZSBEVEQgZm9yIHByZXZpb3VzIGRlY2xhcmF0aW9ucyBvZiB0aGUgQVRUTElTVAorICAgICAqLworICAgIGlmICh4bWxIYXNoQWRkRW50cnkodGFibGUsIG5hbWUsIHJldCkpIHsKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorCXhtbEVyclZhbGlkKE5VTEwsIFhNTF9EVERfTk9UQVRJT05fUkVERUZJTkVELCAKKwkJICAgICJ4bWxBZGROb3RhdGlvbkRlY2w6ICVzIGFscmVhZHkgZGVmaW5lZFxuIiwKKwkJICAgIChjb25zdCBjaGFyICopIG5hbWUpOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisJeG1sRnJlZU5vdGF0aW9uKHJldCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxGcmVlTm90YXRpb25UYWJsZToKKyAqIEB0YWJsZTogIEFuIG5vdGF0aW9uIHRhYmxlCisgKgorICogRGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYW4gZW50aXRpZXMgaGFzaCB0YWJsZS4KKyAqLwordm9pZAoreG1sRnJlZU5vdGF0aW9uVGFibGUoeG1sTm90YXRpb25UYWJsZVB0ciB0YWJsZSkgeworICAgIHhtbEhhc2hGcmVlKHRhYmxlLCAoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxGcmVlTm90YXRpb24pOworfQorCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorLyoqCisgKiB4bWxDb3B5Tm90YXRpb246CisgKiBAbm90YTogIEEgbm90YXRpb24KKyAqCisgKiBCdWlsZCBhIGNvcHkgb2YgYSBub3RhdGlvbi4KKyAqIAorICogUmV0dXJucyB0aGUgbmV3IHhtbE5vdGF0aW9uUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbE5vdGF0aW9uUHRyCit4bWxDb3B5Tm90YXRpb24oeG1sTm90YXRpb25QdHIgbm90YSkgeworICAgIHhtbE5vdGF0aW9uUHRyIGN1cjsKKworICAgIGN1ciA9ICh4bWxOb3RhdGlvblB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOb3RhdGlvbikpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCXhtbFZFcnJNZW1vcnkoTlVMTCwgIm1hbGxvYyBmYWlsZWQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChub3RhLT5uYW1lICE9IE5VTEwpCisJY3VyLT5uYW1lID0geG1sU3RyZHVwKG5vdGEtPm5hbWUpOworICAgIGVsc2UKKwljdXItPm5hbWUgPSBOVUxMOworICAgIGlmIChub3RhLT5QdWJsaWNJRCAhPSBOVUxMKQorCWN1ci0+UHVibGljSUQgPSB4bWxTdHJkdXAobm90YS0+UHVibGljSUQpOworICAgIGVsc2UKKwljdXItPlB1YmxpY0lEID0gTlVMTDsKKyAgICBpZiAobm90YS0+U3lzdGVtSUQgIT0gTlVMTCkKKwljdXItPlN5c3RlbUlEID0geG1sU3RyZHVwKG5vdGEtPlN5c3RlbUlEKTsKKyAgICBlbHNlCisJY3VyLT5TeXN0ZW1JRCA9IE5VTEw7CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sQ29weU5vdGF0aW9uVGFibGU6CisgKiBAdGFibGU6ICBBIG5vdGF0aW9uIHRhYmxlCisgKgorICogQnVpbGQgYSBjb3B5IG9mIGEgbm90YXRpb24gdGFibGUuCisgKiAKKyAqIFJldHVybnMgdGhlIG5ldyB4bWxOb3RhdGlvblRhYmxlUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sTm90YXRpb25UYWJsZVB0cgoreG1sQ29weU5vdGF0aW9uVGFibGUoeG1sTm90YXRpb25UYWJsZVB0ciB0YWJsZSkgeworICAgIHJldHVybigoeG1sTm90YXRpb25UYWJsZVB0cikgeG1sSGFzaENvcHkodGFibGUsCisJCQkJICAgICh4bWxIYXNoQ29waWVyKSB4bWxDb3B5Tm90YXRpb24pKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sRHVtcE5vdGF0aW9uRGVjbDoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBub3RhOiAgQSBub3RhdGlvbiBkZWNsYXJhdGlvbgorICoKKyAqIFRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IHRoZSBub3RhdGlvbiBkZWNsYXJhdGlvbiBhcyBhbiBYTUwgRFREIGRlZmluaXRpb24KKyAqLwordm9pZAoreG1sRHVtcE5vdGF0aW9uRGVjbCh4bWxCdWZmZXJQdHIgYnVmLCB4bWxOb3RhdGlvblB0ciBub3RhKSB7CisgICAgaWYgKChidWYgPT0gTlVMTCkgfHwgKG5vdGEgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKyAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiPCFOT1RBVElPTiAiKTsKKyAgICB4bWxCdWZmZXJXcml0ZUNIQVIoYnVmLCBub3RhLT5uYW1lKTsKKyAgICBpZiAobm90YS0+UHVibGljSUQgIT0gTlVMTCkgeworCXhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgUFVCTElDICIpOworCXhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1Ziwgbm90YS0+UHVibGljSUQpOworCWlmIChub3RhLT5TeXN0ZW1JRCAhPSBOVUxMKSB7CisJICAgIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgIik7CisJICAgIHhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1Ziwgbm90YS0+U3lzdGVtSUQpOworCX0KKyAgICB9IGVsc2UgeworCXhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIgU1lTVEVNICIpOworCXhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1Ziwgbm90YS0+U3lzdGVtSUQpOworICAgIH0KKyAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiID5cbiIpOworfQorCisvKioKKyAqIHhtbER1bXBOb3RhdGlvbkRlY2xTY2FuOgorICogQG5vdGE6ICBBIG5vdGF0aW9uIGRlY2xhcmF0aW9uCisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKgorICogVGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUgaGFzaCBzY2FuIGZ1bmN0aW9uLCBhbmQganVzdCByZXZlcnNlcyBhcmdzCisgKi8KK3N0YXRpYyB2b2lkCit4bWxEdW1wTm90YXRpb25EZWNsU2Nhbih4bWxOb3RhdGlvblB0ciBub3RhLCB4bWxCdWZmZXJQdHIgYnVmKSB7CisgICAgeG1sRHVtcE5vdGF0aW9uRGVjbChidWYsIG5vdGEpOworfQorCisvKioKKyAqIHhtbER1bXBOb3RhdGlvblRhYmxlOgorICogQGJ1ZjogIHRoZSBYTUwgYnVmZmVyIG91dHB1dAorICogQHRhYmxlOiAgQSBub3RhdGlvbiB0YWJsZQorICoKKyAqIFRoaXMgd2lsbCBkdW1wIHRoZSBjb250ZW50IG9mIHRoZSBub3RhdGlvbiB0YWJsZSBhcyBhbiBYTUwgRFREIGRlZmluaXRpb24KKyAqLwordm9pZAoreG1sRHVtcE5vdGF0aW9uVGFibGUoeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sTm90YXRpb25UYWJsZVB0ciB0YWJsZSkgeworICAgIGlmICgoYnVmID09IE5VTEwpIHx8ICh0YWJsZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuOworICAgIHhtbEhhc2hTY2FuKHRhYmxlLCAoeG1sSGFzaFNjYW5uZXIpIHhtbER1bXBOb3RhdGlvbkRlY2xTY2FuLCBidWYpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJCUlEcwkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBESUNUX0ZSRUU6CisgKiBAc3RyOiAgYSBzdHJpbmcKKyAqCisgKiBGcmVlIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvd25lZCBieSB0aGUgImRpY3QiIGRpY3Rpb25uYXJ5IGluIHRoZQorICogY3VycmVudCBzY29wZQorICovCisjZGVmaW5lIERJQ1RfRlJFRShzdHIpCQkJCQkJXAorCWlmICgoc3RyKSAmJiAoKCFkaWN0KSB8fCAJCQkJXAorCSAgICAoeG1sRGljdE93bnMoZGljdCwgKGNvbnN0IHhtbENoYXIgKikoc3RyKSkgPT0gMCkpKQlcCisJICAgIHhtbEZyZWUoKGNoYXIgKikoc3RyKSk7CisKKy8qKgorICogeG1sRnJlZUlEOgorICogQG5vdDogIEEgaWQKKyAqCisgKiBEZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBpZCBkZWZpbml0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGcmVlSUQoeG1sSURQdHIgaWQpIHsKKyAgICB4bWxEaWN0UHRyIGRpY3QgPSBOVUxMOworCisgICAgaWYgKGlkID09IE5VTEwpIHJldHVybjsKKworICAgIGlmIChpZC0+ZG9jICE9IE5VTEwpCisgICAgICAgIGRpY3QgPSBpZC0+ZG9jLT5kaWN0OworCisgICAgaWYgKGlkLT52YWx1ZSAhPSBOVUxMKQorCURJQ1RfRlJFRShpZC0+dmFsdWUpCisgICAgaWYgKGlkLT5uYW1lICE9IE5VTEwpCisJRElDVF9GUkVFKGlkLT5uYW1lKQorICAgIHhtbEZyZWUoaWQpOworfQorCisKKy8qKgorICogeG1sQWRkSUQ6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkb2M6ICBwb2ludGVyIHRvIHRoZSBkb2N1bWVudAorICogQHZhbHVlOiAgdGhlIHZhbHVlIG5hbWUKKyAqIEBhdHRyOiAgdGhlIGF0dHJpYnV0ZSBob2xkaW5nIHRoZSBJRAorICoKKyAqIFJlZ2lzdGVyIGEgbmV3IGlkIGRlY2xhcmF0aW9uCisgKgorICogUmV0dXJucyBOVUxMIGlmIG5vdCwgb3RoZXJ3aXNlIHRoZSBuZXcgeG1sSURQdHIKKyAqLworeG1sSURQdHIgCit4bWxBZGRJRCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisgICAgICAgICB4bWxBdHRyUHRyIGF0dHIpIHsKKyAgICB4bWxJRFB0ciByZXQ7CisgICAgeG1sSURUYWJsZVB0ciB0YWJsZTsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgeworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChhdHRyID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDcmVhdGUgdGhlIElEIHRhYmxlIGlmIG5lZWRlZC4KKyAgICAgKi8KKyAgICB0YWJsZSA9ICh4bWxJRFRhYmxlUHRyKSBkb2MtPmlkczsKKyAgICBpZiAodGFibGUgPT0gTlVMTCkgIHsKKyAgICAgICAgZG9jLT5pZHMgPSB0YWJsZSA9IHhtbEhhc2hDcmVhdGVEaWN0KDAsIGRvYy0+ZGljdCk7CisgICAgfQorICAgIGlmICh0YWJsZSA9PSBOVUxMKSB7CisJeG1sVkVyck1lbW9yeShjdHh0LAorCQkieG1sQWRkSUQ6IFRhYmxlIGNyZWF0aW9uIGZhaWxlZCFcbiIpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgcmV0ID0gKHhtbElEUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbElEKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sVkVyck1lbW9yeShjdHh0LCAibWFsbG9jIGZhaWxlZCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGZpbGwgdGhlIHN0cnVjdHVyZS4KKyAgICAgKi8KKyAgICByZXQtPnZhbHVlID0geG1sU3RyZHVwKHZhbHVlKTsKKyAgICByZXQtPmRvYyA9IGRvYzsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnZzdGF0ZU5yICE9IDApKSB7CisJLyoKKwkgKiBPcGVyYXRpbmcgaW4gc3RyZWFtaW5nIG1vZGUsIGF0dHIgaXMgZ29ubmEgZGlzYXBlYXIKKwkgKi8KKwlpZiAoZG9jLT5kaWN0ICE9IE5VTEwpCisJICAgIHJldC0+bmFtZSA9IHhtbERpY3RMb29rdXAoZG9jLT5kaWN0LCBhdHRyLT5uYW1lLCAtMSk7CisJZWxzZQorCSAgICByZXQtPm5hbWUgPSB4bWxTdHJkdXAoYXR0ci0+bmFtZSk7CisJcmV0LT5hdHRyID0gTlVMTDsKKyAgICB9IGVsc2UgeworCXJldC0+YXR0ciA9IGF0dHI7CisJcmV0LT5uYW1lID0gTlVMTDsKKyAgICB9CisgICAgcmV0LT5saW5lbm8gPSB4bWxHZXRMaW5lTm8oYXR0ci0+cGFyZW50KTsKKworICAgIGlmICh4bWxIYXNoQWRkRW50cnkodGFibGUsIHZhbHVlLCByZXQpIDwgMCkgeworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisJLyoKKwkgKiBUaGUgaWQgaXMgYWxyZWFkeSBkZWZpbmVkIGluIHRoaXMgRFRELgorCSAqLworCWlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZXJyb3IgIT0gTlVMTCkpIHsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGF0dHItPnBhcmVudCwgWE1MX0RURF9JRF9SRURFRklORUQsCisJICAgICAgICAgICAgICAgICAgICAiSUQgJXMgYWxyZWFkeSBkZWZpbmVkXG4iLAorCQkJICAgIHZhbHVlLCBOVUxMLCBOVUxMKTsKKwl9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKwl4bWxGcmVlSUQocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChhdHRyICE9IE5VTEwpCisJYXR0ci0+YXR5cGUgPSBYTUxfQVRUUklCVVRFX0lEOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEZyZWVJRFRhYmxlOgorICogQHRhYmxlOiAgQW4gaWQgdGFibGUKKyAqCisgKiBEZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBJRCBoYXNoIHRhYmxlLgorICovCit2b2lkCit4bWxGcmVlSURUYWJsZSh4bWxJRFRhYmxlUHRyIHRhYmxlKSB7CisgICAgeG1sSGFzaEZyZWUodGFibGUsICh4bWxIYXNoRGVhbGxvY2F0b3IpIHhtbEZyZWVJRCk7Cit9CisKKy8qKgorICogeG1sSXNJRDoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBlbGVtOiAgdGhlIGVsZW1lbnQgY2FycnlpbmcgdGhlIGF0dHJpYnV0ZQorICogQGF0dHI6ICB0aGUgYXR0cmlidXRlCisgKgorICogRGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0cmlidXRlIGlzIG9mIHR5cGUgSUQuIEluIGNhc2Ugd2UgaGF2ZSBEVEQocykKKyAqIHRoZW4gdGhpcyBpcyBkb25lIGlmIERURCBsb2FkaW5nIGhhcyBiZWVuIHJlcXVlc3RlZC4gSW4gdGhlIGNhc2UKKyAqIG9mIEhUTUwgZG9jdW1lbnRzIHBhcnNlZCB3aXRoIHRoZSBIVE1MIHBhcnNlciwgdGhlbiBJRCBkZXRlY3Rpb24gaXMKKyAqIGRvbmUgc3lzdGVtYXRpY2FsbHkuCisgKgorICogUmV0dXJucyAwIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSBsb29rdXAgcmVzdWx0CisgKi8KK2ludAoreG1sSXNJRCh4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGVsZW0sIHhtbEF0dHJQdHIgYXR0cikgeworICAgIGlmICgoYXR0ciA9PSBOVUxMKSB8fCAoYXR0ci0+bmFtZSA9PSBOVUxMKSkgcmV0dXJuKDApOworICAgIGlmICgoYXR0ci0+bnMgIT0gTlVMTCkgJiYgKGF0dHItPm5zLT5wcmVmaXggIT0gTlVMTCkgJiYKKyAgICAgICAgKCFzdHJjbXAoKGNoYXIgKikgYXR0ci0+bmFtZSwgImlkIikpICYmCisgICAgICAgICghc3RyY21wKChjaGFyICopIGF0dHItPm5zLT5wcmVmaXgsICJ4bWwiKSkpCisJcmV0dXJuKDEpOworICAgIGlmIChkb2MgPT0gTlVMTCkgcmV0dXJuKDApOworICAgIGlmICgoZG9jLT5pbnRTdWJzZXQgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ID09IE5VTEwpICYmCisgICAgICAgIChkb2MtPnR5cGUgIT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpIHsKKwlyZXR1cm4oMCk7CisgICAgfSBlbHNlIGlmIChkb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworICAgICAgICBpZiAoKHhtbFN0ckVxdWFsKEJBRF9DQVNUICJpZCIsIGF0dHItPm5hbWUpKSB8fAorCSAgICAoKHhtbFN0ckVxdWFsKEJBRF9DQVNUICJuYW1lIiwgYXR0ci0+bmFtZSkpICYmCisJICAgICgoZWxlbSA9PSBOVUxMKSB8fCAoeG1sU3RyRXF1YWwoZWxlbS0+bmFtZSwgQkFEX0NBU1QgImEiKSkpKSkKKwkgICAgcmV0dXJuKDEpOworCXJldHVybigwKTsgICAgCisgICAgfSBlbHNlIGlmIChlbGVtID09IE5VTEwpIHsKKwlyZXR1cm4oMCk7CisgICAgfSBlbHNlIHsKKwl4bWxBdHRyaWJ1dGVQdHIgYXR0ckRlY2wgPSBOVUxMOworCisJeG1sQ2hhciBmZWxlbVs1MF0sIGZhdHRyWzUwXTsKKwl4bWxDaGFyICpmdWxsZWxlbW5hbWUsICpmdWxsYXR0cm5hbWU7CisKKwlmdWxsZWxlbW5hbWUgPSAoZWxlbS0+bnMgIT0gTlVMTCAmJiBlbGVtLT5ucy0+cHJlZml4ICE9IE5VTEwpID8KKwkgICAgeG1sQnVpbGRRTmFtZShlbGVtLT5uYW1lLCBlbGVtLT5ucy0+cHJlZml4LCBmZWxlbSwgNTApIDoKKwkgICAgKHhtbENoYXIgKillbGVtLT5uYW1lOworCisJZnVsbGF0dHJuYW1lID0gKGF0dHItPm5zICE9IE5VTEwgJiYgYXR0ci0+bnMtPnByZWZpeCAhPSBOVUxMKSA/CisJICAgIHhtbEJ1aWxkUU5hbWUoYXR0ci0+bmFtZSwgYXR0ci0+bnMtPnByZWZpeCwgZmF0dHIsIDUwKSA6CisJICAgICh4bWxDaGFyICopYXR0ci0+bmFtZTsKKworCWlmIChmdWxsZWxlbW5hbWUgIT0gTlVMTCAmJiBmdWxsYXR0cm5hbWUgIT0gTlVMTCkgeworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+aW50U3Vic2V0LCBmdWxsZWxlbW5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsYXR0cm5hbWUpOworCSAgICBpZiAoKGF0dHJEZWNsID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkKKwkJYXR0ckRlY2wgPSB4bWxHZXREdGRBdHRyRGVzYyhkb2MtPmV4dFN1YnNldCwgZnVsbGVsZW1uYW1lLAorCQkJCQkgICAgIGZ1bGxhdHRybmFtZSk7CisJfQorCisJaWYgKChmdWxsYXR0cm5hbWUgIT0gZmF0dHIpICYmIChmdWxsYXR0cm5hbWUgIT0gYXR0ci0+bmFtZSkpCisJICAgIHhtbEZyZWUoZnVsbGF0dHJuYW1lKTsKKwlpZiAoKGZ1bGxlbGVtbmFtZSAhPSBmZWxlbSkgJiYgKGZ1bGxlbGVtbmFtZSAhPSBlbGVtLT5uYW1lKSkKKwkgICAgeG1sRnJlZShmdWxsZWxlbW5hbWUpOworCisgICAgICAgIGlmICgoYXR0ckRlY2wgIT0gTlVMTCkgJiYgKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEKSkKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUmVtb3ZlSUQ6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAYXR0cjogIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBSZW1vdmUgdGhlIGdpdmVuIGF0dHJpYnV0ZSBmcm9tIHRoZSBJRCB0YWJsZSBtYWludGFpbmVkIGludGVybmFsbHkuCisgKgorICogUmV0dXJucyAtMSBpZiB0aGUgbG9va3VwIGZhaWxlZCBhbmQgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxSZW1vdmVJRCh4bWxEb2NQdHIgZG9jLCB4bWxBdHRyUHRyIGF0dHIpIHsKKyAgICB4bWxJRFRhYmxlUHRyIHRhYmxlOworICAgIHhtbElEUHRyIGlkOworICAgIHhtbENoYXIgKklEOworCisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChhdHRyID09IE5VTEwpIHJldHVybigtMSk7CisgICAgdGFibGUgPSAoeG1sSURUYWJsZVB0cikgZG9jLT5pZHM7CisgICAgaWYgKHRhYmxlID09IE5VTEwpIAorICAgICAgICByZXR1cm4oLTEpOworCisgICAgaWYgKGF0dHIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIElEID0geG1sTm9kZUxpc3RHZXRTdHJpbmcoZG9jLCBhdHRyLT5jaGlsZHJlbiwgMSk7CisgICAgaWYgKElEID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZCA9IHhtbEhhc2hMb29rdXAodGFibGUsIElEKTsKKyAgICBpZiAoaWQgPT0gTlVMTCB8fCBpZC0+YXR0ciAhPSBhdHRyKSB7CisJeG1sRnJlZShJRCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgeG1sSGFzaFJlbW92ZUVudHJ5KHRhYmxlLCBJRCwgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sRnJlZUlEKTsKKyAgICB4bWxGcmVlKElEKTsKKwlhdHRyLT5hdHlwZSA9IDA7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbEdldElEOgorICogQGRvYzogIHBvaW50ZXIgdG8gdGhlIGRvY3VtZW50CisgKiBASUQ6ICB0aGUgSUQgdmFsdWUKKyAqCisgKiBTZWFyY2ggdGhlIGF0dHJpYnV0ZSBkZWNsYXJpbmcgdGhlIGdpdmVuIElECisgKgorICogUmV0dXJucyBOVUxMIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHRoZSB4bWxBdHRyUHRyIGRlZmluaW5nIHRoZSBJRAorICovCit4bWxBdHRyUHRyIAoreG1sR2V0SUQoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqSUQpIHsKKyAgICB4bWxJRFRhYmxlUHRyIHRhYmxlOworICAgIHhtbElEUHRyIGlkOworCisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmIChJRCA9PSBOVUxMKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIHRhYmxlID0gKHhtbElEVGFibGVQdHIpIGRvYy0+aWRzOworICAgIGlmICh0YWJsZSA9PSBOVUxMKSAKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgaWQgPSB4bWxIYXNoTG9va3VwKHRhYmxlLCBJRCk7CisgICAgaWYgKGlkID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChpZC0+YXR0ciA9PSBOVUxMKSB7CisJLyoKKwkgKiBXZSBhcmUgb3BlcmF0aW5nIG9uIGEgc3RyZWFtLCByZXR1cm4gYSB3ZWxsIGtub3duIHJlZmVyZW5jZQorCSAqIHNpbmNlIHRoZSBhdHRyaWJ1dGUgbm9kZSBkb2Vzbid0IGV4aXN0IGFueW1vcmUKKwkgKi8KKwlyZXR1cm4oKHhtbEF0dHJQdHIpIGRvYyk7CisgICAgfQorICAgIHJldHVybihpZC0+YXR0cik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQkJUmVmcwkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwordHlwZWRlZiBzdHJ1Y3QgeG1sUmVtb3ZlTWVtb190IAoreworCXhtbExpc3RQdHIgbDsKKwl4bWxBdHRyUHRyIGFwOworfSB4bWxSZW1vdmVNZW1vOworCit0eXBlZGVmIHhtbFJlbW92ZU1lbW8gKnhtbFJlbW92ZU1lbW9QdHI7CisKK3R5cGVkZWYgc3RydWN0IHhtbFZhbGlkYXRlTWVtb190IAoreworICAgIHhtbFZhbGlkQ3R4dFB0ciBjdHh0OworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7Cit9IHhtbFZhbGlkYXRlTWVtbzsKKwordHlwZWRlZiB4bWxWYWxpZGF0ZU1lbW8gKnhtbFZhbGlkYXRlTWVtb1B0cjsKKworLyoqCisgKiB4bWxGcmVlUmVmOgorICogQGxrOiAgQSBsaXN0IGxpbmsKKyAqCisgKiBEZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhIHJlZiBkZWZpbml0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGcmVlUmVmKHhtbExpbmtQdHIgbGspIHsKKyAgICB4bWxSZWZQdHIgcmVmID0gKHhtbFJlZlB0cil4bWxMaW5rR2V0RGF0YShsayk7CisgICAgaWYgKHJlZiA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKHJlZi0+dmFsdWUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKXJlZi0+dmFsdWUpOworICAgIGlmIChyZWYtPm5hbWUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKXJlZi0+bmFtZSk7CisgICAgeG1sRnJlZShyZWYpOworfQorCisvKioKKyAqIHhtbEZyZWVSZWZMaXN0OgorICogQGxpc3RfcmVmOiAgQSBsaXN0IG9mIHJlZmVyZW5jZXMuCisgKgorICogRGVhbGxvY2F0ZSB0aGUgbWVtb3J5IHVzZWQgYnkgYSBsaXN0IG9mIHJlZmVyZW5jZXMKKyAqLworc3RhdGljIHZvaWQKK3htbEZyZWVSZWZMaXN0KHhtbExpc3RQdHIgbGlzdF9yZWYpIHsKKyAgICBpZiAobGlzdF9yZWYgPT0gTlVMTCkgcmV0dXJuOworICAgIHhtbExpc3REZWxldGUobGlzdF9yZWYpOworfQorCisvKioKKyAqIHhtbFdhbGtSZW1vdmVSZWY6CisgKiBAZGF0YTogIENvbnRlbnRzIG9mIGN1cnJlbnQgbGluaworICogQHVzZXI6ICBWYWx1ZSBzdXBwbGllZCBieSB0aGUgdXNlcgorICoKKyAqIFJldHVybnMgMCB0byBhYm9ydCB0aGUgd2FsayBvciAxIHRvIGNvbnRpbnVlCisgKi8KK3N0YXRpYyBpbnQKK3htbFdhbGtSZW1vdmVSZWYoY29uc3Qgdm9pZCAqZGF0YSwgY29uc3Qgdm9pZCAqdXNlcikKK3sKKyAgICB4bWxBdHRyUHRyIGF0dHIwID0gKCh4bWxSZWZQdHIpZGF0YSktPmF0dHI7CisgICAgeG1sQXR0clB0ciBhdHRyMSA9ICgoeG1sUmVtb3ZlTWVtb1B0cil1c2VyKS0+YXA7CisgICAgeG1sTGlzdFB0ciByZWZfbGlzdCA9ICgoeG1sUmVtb3ZlTWVtb1B0cil1c2VyKS0+bDsKKworICAgIGlmIChhdHRyMCA9PSBhdHRyMSkgeyAvKiBNYXRjaGVkOiByZW1vdmUgYW5kIHRlcm1pbmF0ZSB3YWxrICovCisgICAgICAgIHhtbExpc3RSZW1vdmVGaXJzdChyZWZfbGlzdCwgKHZvaWQgKilkYXRhKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiAxOworfQorCisvKioKKyAqIHhtbER1bW15Q29tcGFyZQorICogQGRhdGEwOiAgVmFsdWUgc3VwcGxpZWQgYnkgdGhlIHVzZXIKKyAqIEBkYXRhMTogIFZhbHVlIHN1cHBsaWVkIGJ5IHRoZSB1c2VyCisgKgorICogRG8gbm90aGluZywgcmV0dXJuIDAuIFVzZWQgdG8gY3JlYXRlIHVub3JkZXJlZCBsaXN0cy4KKyAqLworc3RhdGljIGludAoreG1sRHVtbXlDb21wYXJlKGNvbnN0IHZvaWQgKmRhdGEwIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqZGF0YTEgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbEFkZFJlZjoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIHBvaW50ZXIgdG8gdGhlIGRvY3VtZW50CisgKiBAdmFsdWU6ICB0aGUgdmFsdWUgbmFtZQorICogQGF0dHI6ICB0aGUgYXR0cmlidXRlIGhvbGRpbmcgdGhlIFJlZgorICoKKyAqIFJlZ2lzdGVyIGEgbmV3IHJlZiBkZWNsYXJhdGlvbgorICoKKyAqIFJldHVybnMgTlVMTCBpZiBub3QsIG90aGVyd2lzZSB0aGUgbmV3IHhtbFJlZlB0cgorICovCit4bWxSZWZQdHIgCit4bWxBZGRSZWYoeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorICAgIHhtbEF0dHJQdHIgYXR0cikgeworICAgIHhtbFJlZlB0ciByZXQ7CisgICAgeG1sUmVmVGFibGVQdHIgdGFibGU7CisgICAgeG1sTGlzdFB0ciByZWZfbGlzdDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGF0dHIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDcmVhdGUgdGhlIFJlZiB0YWJsZSBpZiBuZWVkZWQuCisgICAgICovCisgICAgdGFibGUgPSAoeG1sUmVmVGFibGVQdHIpIGRvYy0+cmVmczsKKyAgICBpZiAodGFibGUgPT0gTlVMTCkgeworICAgICAgICBkb2MtPnJlZnMgPSB0YWJsZSA9IHhtbEhhc2hDcmVhdGVEaWN0KDAsIGRvYy0+ZGljdCk7CisgICAgfQorICAgIGlmICh0YWJsZSA9PSBOVUxMKSB7CisJeG1sVkVyck1lbW9yeShjdHh0LAorICAgICAgICAgICAgInhtbEFkZFJlZjogVGFibGUgY3JlYXRpb24gZmFpbGVkIVxuIik7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICByZXQgPSAoeG1sUmVmUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlZikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFZFcnJNZW1vcnkoY3R4dCwgIm1hbGxvYyBmYWlsZWQiKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogZmlsbCB0aGUgc3RydWN0dXJlLgorICAgICAqLworICAgIHJldC0+dmFsdWUgPSB4bWxTdHJkdXAodmFsdWUpOworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dnN0YXRlTnIgIT0gMCkpIHsKKwkvKgorCSAqIE9wZXJhdGluZyBpbiBzdHJlYW1pbmcgbW9kZSwgYXR0ciBpcyBnb25uYSBkaXNhcGVhcgorCSAqLworCXJldC0+bmFtZSA9IHhtbFN0cmR1cChhdHRyLT5uYW1lKTsKKwlyZXQtPmF0dHIgPSBOVUxMOworICAgIH0gZWxzZSB7CisJcmV0LT5uYW1lID0gTlVMTDsKKwlyZXQtPmF0dHIgPSBhdHRyOworICAgIH0KKyAgICByZXQtPmxpbmVubyA9IHhtbEdldExpbmVObyhhdHRyLT5wYXJlbnQpOworCisgICAgLyogVG8gYWRkIGEgcmVmZXJlbmNlIDotCisgICAgICogUmVmZXJlbmNlcyBhcmUgbWFpbnRhaW5lZCBhcyBhIGxpc3Qgb2YgcmVmZXJlbmNlcywKKyAgICAgKiBMb29rdXAgdGhlIGVudHJ5LCBpZiBubyBlbnRyeSBjcmVhdGUgbmV3IG5vZGVsaXN0CisgICAgICogQWRkIHRoZSBvd25pbmcgbm9kZSB0byB0aGUgTm9kZUxpc3QKKyAgICAgKiBSZXR1cm4gdGhlIHJlZgorICAgICAqLworCisgICAgaWYgKE5VTEwgPT0gKHJlZl9saXN0ID0geG1sSGFzaExvb2t1cCh0YWJsZSwgdmFsdWUpKSkgeworICAgICAgICBpZiAoTlVMTCA9PSAocmVmX2xpc3QgPSB4bWxMaXN0Q3JlYXRlKHhtbEZyZWVSZWYsIHhtbER1bW15Q29tcGFyZSkpKSB7CisJICAgIHhtbEVyclZhbGlkKE5VTEwsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAieG1sQWRkUmVmOiBSZWZlcmVuY2UgbGlzdCBjcmVhdGlvbiBmYWlsZWQhXG4iLAorCQkgICAgTlVMTCk7CisJICAgIGdvdG8gZmFpbGVkOworICAgICAgICB9CisgICAgICAgIGlmICh4bWxIYXNoQWRkRW50cnkodGFibGUsIHZhbHVlLCByZWZfbGlzdCkgPCAwKSB7CisgICAgICAgICAgICB4bWxMaXN0RGVsZXRlKHJlZl9saXN0KTsKKwkgICAgeG1sRXJyVmFsaWQoTlVMTCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICAgICJ4bWxBZGRSZWY6IFJlZmVyZW5jZSBsaXN0IGluc2VydGlvbiBmYWlsZWQhXG4iLAorCQkgICAgTlVMTCk7CisJICAgIGdvdG8gZmFpbGVkOworICAgICAgICB9CisgICAgfQorICAgIGlmICh4bWxMaXN0QXBwZW5kKHJlZl9saXN0LCByZXQpICE9IDApIHsKKwl4bWxFcnJWYWxpZChOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAgInhtbEFkZFJlZjogUmVmZXJlbmNlIGxpc3QgaW5zZXJ0aW9uIGZhaWxlZCFcbiIsCisJCSAgICBOVUxMKTsKKyAgICAgICAgZ290byBmYWlsZWQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworZmFpbGVkOgorICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICBpZiAocmV0LT52YWx1ZSAhPSBOVUxMKQorCSAgICB4bWxGcmVlKChjaGFyICopcmV0LT52YWx1ZSk7CisgICAgICAgIGlmIChyZXQtPm5hbWUgIT0gTlVMTCkKKwkgICAgeG1sRnJlZSgoY2hhciAqKXJldC0+bmFtZSk7CisgICAgICAgIHhtbEZyZWUocmV0KTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbEZyZWVSZWZUYWJsZToKKyAqIEB0YWJsZTogIEFuIHJlZiB0YWJsZQorICoKKyAqIERlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIFJlZiBoYXNoIHRhYmxlLgorICovCit2b2lkCit4bWxGcmVlUmVmVGFibGUoeG1sUmVmVGFibGVQdHIgdGFibGUpIHsKKyAgICB4bWxIYXNoRnJlZSh0YWJsZSwgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sRnJlZVJlZkxpc3QpOworfQorCisvKioKKyAqIHhtbElzUmVmOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGVsZW06ICB0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgYXR0cmlidXRlCisgKiBAYXR0cjogIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBEZXRlcm1pbmUgd2hldGhlciBhbiBhdHRyaWJ1dGUgaXMgb2YgdHlwZSBSZWYuIEluIGNhc2Ugd2UgaGF2ZSBEVEQocykKKyAqIHRoZW4gdGhpcyBpcyBzaW1wbGUsIG90aGVyd2lzZSB3ZSB1c2UgYW4gaGV1cmlzdGljOiBuYW1lIFJlZiAodXBwZXIKKyAqIG9yIGxvd2VyY2FzZSkuCisgKgorICogUmV0dXJucyAwIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSBsb29rdXAgcmVzdWx0CisgKi8KK2ludAoreG1sSXNSZWYoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBlbGVtLCB4bWxBdHRyUHRyIGF0dHIpIHsKKyAgICBpZiAoYXR0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIGRvYyA9IGF0dHItPmRvYzsKKwlpZiAoZG9jID09IE5VTEwpIHJldHVybigwKTsKKyAgICB9CisKKyAgICBpZiAoKGRvYy0+aW50U3Vic2V0ID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCA9PSBOVUxMKSkgeworICAgICAgICByZXR1cm4oMCk7CisgICAgfSBlbHNlIGlmIChkb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgeworICAgICAgICAvKiBUT0RPIEBAQCAqLworICAgICAgICByZXR1cm4oMCk7ICAgIAorICAgIH0gZWxzZSB7CisgICAgICAgIHhtbEF0dHJpYnV0ZVB0ciBhdHRyRGVjbDsKKworICAgICAgICBpZiAoZWxlbSA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgICAgIGF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5pbnRTdWJzZXQsIGVsZW0tPm5hbWUsIGF0dHItPm5hbWUpOworICAgICAgICBpZiAoKGF0dHJEZWNsID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkKKyAgICAgICAgICAgIGF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLT5uYW1lLCBhdHRyLT5uYW1lKTsKKworCWlmICgoYXR0ckRlY2wgIT0gTlVMTCkgJiYKKwkgICAgKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEUkVGIHx8CisJICAgICBhdHRyRGVjbC0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9JRFJFRlMpKQorCXJldHVybigxKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFJlbW92ZVJlZjoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBhdHRyOiAgdGhlIGF0dHJpYnV0ZQorICoKKyAqIFJlbW92ZSB0aGUgZ2l2ZW4gYXR0cmlidXRlIGZyb20gdGhlIFJlZiB0YWJsZSBtYWludGFpbmVkIGludGVybmFsbHkuCisgKgorICogUmV0dXJucyAtMSBpZiB0aGUgbG9va3VwIGZhaWxlZCBhbmQgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxSZW1vdmVSZWYoeG1sRG9jUHRyIGRvYywgeG1sQXR0clB0ciBhdHRyKSB7CisgICAgeG1sTGlzdFB0ciByZWZfbGlzdDsKKyAgICB4bWxSZWZUYWJsZVB0ciB0YWJsZTsKKyAgICB4bWxDaGFyICpJRDsKKyAgICB4bWxSZW1vdmVNZW1vIHRhcmdldDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoYXR0ciA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIHRhYmxlID0gKHhtbFJlZlRhYmxlUHRyKSBkb2MtPnJlZnM7CisgICAgaWYgKHRhYmxlID09IE5VTEwpIAorICAgICAgICByZXR1cm4oLTEpOworCisgICAgaWYgKGF0dHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBJRCA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgYXR0ci0+Y2hpbGRyZW4sIDEpOworICAgIGlmIChJRCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHJlZl9saXN0ID0geG1sSGFzaExvb2t1cCh0YWJsZSwgSUQpOworCisgICAgaWYocmVmX2xpc3QgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlKElEKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIC8qIEF0IHRoaXMgcG9pbnQsIHJlZl9saXN0IHJlZmVycyB0byBhIGxpc3Qgb2YgcmVmZXJlbmNlcyB3aGljaAorICAgICAqIGhhdmUgdGhlIHNhbWUga2V5IGFzIHRoZSBzdXBwbGllZCBhdHRyLiBPdXIgbGlzdCBvZiByZWZlcmVuY2VzCisgICAgICogaXMgb3JkZXJlZCBieSByZWZlcmVuY2UgYWRkcmVzcyBhbmQgd2UgZG9uJ3QgaGF2ZSB0aGF0IGluZm9ybWF0aW9uCisgICAgICogaGVyZSB0byB1c2Ugd2hlbiByZW1vdmluZy4gV2UnbGwgaGF2ZSB0byB3YWxrIHRoZSBsaXN0IGFuZAorICAgICAqIGNoZWNrIGZvciBhIG1hdGNoaW5nIGF0dHJpYnV0ZSwgd2hlbiB3ZSBmaW5kIG9uZSBzdG9wIHRoZSB3YWxrCisgICAgICogYW5kIHJlbW92ZSB0aGUgZW50cnkuCisgICAgICogVGhlIGxpc3QgaXMgb3JkZXJlZCBieSByZWZlcmVuY2UsIHNvIHRoYXQgbWVhbnMgd2UgZG9uJ3QgaGF2ZSB0aGUKKyAgICAgKiBrZXkuIFBhc3NpbmcgdGhlIGxpc3QgYW5kIHRoZSByZWZlcmVuY2UgdG8gdGhlIHdhbGtlciBtZWFucyB3ZQorICAgICAqIHdpbGwgaGF2ZSBlbm91Z2ggZGF0YSB0byBiZSBhYmxlIHRvIHJlbW92ZSB0aGUgZW50cnkuCisgICAgICovCisgICAgdGFyZ2V0LmwgPSByZWZfbGlzdDsKKyAgICB0YXJnZXQuYXAgPSBhdHRyOworICAgIAorICAgIC8qIFJlbW92ZSB0aGUgc3VwcGxpZWQgYXR0ciBmcm9tIG91ciBsaXN0ICovCisgICAgeG1sTGlzdFdhbGsocmVmX2xpc3QsIHhtbFdhbGtSZW1vdmVSZWYsICZ0YXJnZXQpOworCisgICAgLypJZiB0aGUgbGlzdCBpcyBlbXB0eSB0aGVuIHJlbW92ZSB0aGUgbGlzdCBlbnRyeSBpbiB0aGUgaGFzaCAqLworICAgIGlmICh4bWxMaXN0RW1wdHkocmVmX2xpc3QpKQorICAgICAgICB4bWxIYXNoVXBkYXRlRW50cnkodGFibGUsIElELCBOVUxMLCAoeG1sSGFzaERlYWxsb2NhdG9yKQorICAgICAgICB4bWxGcmVlUmVmTGlzdCk7CisgICAgeG1sRnJlZShJRCk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbEdldFJlZnM6CisgKiBAZG9jOiAgcG9pbnRlciB0byB0aGUgZG9jdW1lbnQKKyAqIEBJRDogIHRoZSBJRCB2YWx1ZQorICoKKyAqIEZpbmQgdGhlIHNldCBvZiByZWZlcmVuY2VzIGZvciB0aGUgc3VwcGxpZWQgSUQuIAorICoKKyAqIFJldHVybnMgTlVMTCBpZiBub3QgZm91bmQsIG90aGVyd2lzZSBub2RlIHNldCBmb3IgdGhlIElELgorICovCit4bWxMaXN0UHRyIAoreG1sR2V0UmVmcyh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpJRCkgeworICAgIHhtbFJlZlRhYmxlUHRyIHRhYmxlOworCisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoSUQgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgdGFibGUgPSAoeG1sUmVmVGFibGVQdHIpIGRvYy0+cmVmczsKKyAgICBpZiAodGFibGUgPT0gTlVMTCkgCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIHJldHVybiAoeG1sSGFzaExvb2t1cCh0YWJsZSwgSUQpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUm91dGluZXMgZm9yIHZhbGlkaXR5IGNoZWNraW5nCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxHZXREdGRFbGVtZW50RGVzYzoKKyAqIEBkdGQ6ICBhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2gKKyAqIEBuYW1lOiAgdGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIFNlYXJjaCB0aGUgRFREIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBlbGVtZW50CisgKgorICogcmV0dXJucyB0aGUgeG1sRWxlbWVudFB0ciBpZiBmb3VuZCBvciBOVUxMCisgKi8KKworeG1sRWxlbWVudFB0cgoreG1sR2V0RHRkRWxlbWVudERlc2MoeG1sRHRkUHRyIGR0ZCwgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbEVsZW1lbnRUYWJsZVB0ciB0YWJsZTsKKyAgICB4bWxFbGVtZW50UHRyIGN1cjsKKyAgICB4bWxDaGFyICp1cW5hbWUgPSBOVUxMLCAqcHJlZml4ID0gTlVMTDsKKworICAgIGlmICgoZHRkID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGR0ZC0+ZWxlbWVudHMgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgdGFibGUgPSAoeG1sRWxlbWVudFRhYmxlUHRyKSBkdGQtPmVsZW1lbnRzOworCisgICAgdXFuYW1lID0geG1sU3BsaXRRTmFtZTIobmFtZSwgJnByZWZpeCk7CisgICAgaWYgKHVxbmFtZSAhPSBOVUxMKQorICAgICAgICBuYW1lID0gdXFuYW1lOworICAgIGN1ciA9IHhtbEhhc2hMb29rdXAyKHRhYmxlLCBuYW1lLCBwcmVmaXgpOworICAgIGlmIChwcmVmaXggIT0gTlVMTCkgeG1sRnJlZShwcmVmaXgpOworICAgIGlmICh1cW5hbWUgIT0gTlVMTCkgeG1sRnJlZSh1cW5hbWUpOworICAgIHJldHVybihjdXIpOworfQorLyoqCisgKiB4bWxHZXREdGRFbGVtZW50RGVzYzI6CisgKiBAZHRkOiAgYSBwb2ludGVyIHRvIHRoZSBEdEQgdG8gc2VhcmNoCisgKiBAbmFtZTogIHRoZSBlbGVtZW50IG5hbWUKKyAqIEBjcmVhdGU6ICBjcmVhdGUgYW4gZW1wdHkgZGVzY3JpcHRpb24gaWYgbm90IGZvdW5kCisgKgorICogU2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGVsZW1lbnQKKyAqCisgKiByZXR1cm5zIHRoZSB4bWxFbGVtZW50UHRyIGlmIGZvdW5kIG9yIE5VTEwKKyAqLworCitzdGF0aWMgeG1sRWxlbWVudFB0cgoreG1sR2V0RHRkRWxlbWVudERlc2MyKHhtbER0ZFB0ciBkdGQsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGludCBjcmVhdGUpIHsKKyAgICB4bWxFbGVtZW50VGFibGVQdHIgdGFibGU7CisgICAgeG1sRWxlbWVudFB0ciBjdXI7CisgICAgeG1sQ2hhciAqdXFuYW1lID0gTlVMTCwgKnByZWZpeCA9IE5VTEw7CisKKyAgICBpZiAoZHRkID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoZHRkLT5lbGVtZW50cyA9PSBOVUxMKSB7CisJeG1sRGljdFB0ciBkaWN0ID0gTlVMTDsKKworCWlmIChkdGQtPmRvYyAhPSBOVUxMKQorCSAgICBkaWN0ID0gZHRkLT5kb2MtPmRpY3Q7CisKKwlpZiAoIWNyZWF0ZSkgCisJICAgIHJldHVybihOVUxMKTsKKwkvKgorCSAqIENyZWF0ZSB0aGUgRWxlbWVudCB0YWJsZSBpZiBuZWVkZWQuCisJICovCisJdGFibGUgPSAoeG1sRWxlbWVudFRhYmxlUHRyKSBkdGQtPmVsZW1lbnRzOworCWlmICh0YWJsZSA9PSBOVUxMKSB7CisJICAgIHRhYmxlID0geG1sSGFzaENyZWF0ZURpY3QoMCwgZGljdCk7CisJICAgIGR0ZC0+ZWxlbWVudHMgPSAodm9pZCAqKSB0YWJsZTsKKwl9CisJaWYgKHRhYmxlID09IE5VTEwpIHsKKwkgICAgeG1sVkVyck1lbW9yeShOVUxMLCAiZWxlbWVudCB0YWJsZSBhbGxvY2F0aW9uIGZhaWxlZCIpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0KKyAgICB0YWJsZSA9ICh4bWxFbGVtZW50VGFibGVQdHIpIGR0ZC0+ZWxlbWVudHM7CisKKyAgICB1cW5hbWUgPSB4bWxTcGxpdFFOYW1lMihuYW1lLCAmcHJlZml4KTsKKyAgICBpZiAodXFuYW1lICE9IE5VTEwpCisgICAgICAgIG5hbWUgPSB1cW5hbWU7CisgICAgY3VyID0geG1sSGFzaExvb2t1cDIodGFibGUsIG5hbWUsIHByZWZpeCk7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgJiYgKGNyZWF0ZSkpIHsKKwljdXIgPSAoeG1sRWxlbWVudFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxFbGVtZW50KSk7CisJaWYgKGN1ciA9PSBOVUxMKSB7CisJICAgIHhtbFZFcnJNZW1vcnkoTlVMTCwgIm1hbGxvYyBmYWlsZWQiKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKwltZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sRWxlbWVudCkpOworCWN1ci0+dHlwZSA9IFhNTF9FTEVNRU5UX0RFQ0w7CisKKwkvKgorCSAqIGZpbGwgdGhlIHN0cnVjdHVyZS4KKwkgKi8KKwljdXItPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisJY3VyLT5wcmVmaXggPSB4bWxTdHJkdXAocHJlZml4KTsKKwljdXItPmV0eXBlID0gWE1MX0VMRU1FTlRfVFlQRV9VTkRFRklORUQ7CisKKwl4bWxIYXNoQWRkRW50cnkyKHRhYmxlLCBuYW1lLCBwcmVmaXgsIGN1cik7CisgICAgfQorICAgIGlmIChwcmVmaXggIT0gTlVMTCkgeG1sRnJlZShwcmVmaXgpOworICAgIGlmICh1cW5hbWUgIT0gTlVMTCkgeG1sRnJlZSh1cW5hbWUpOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbEdldER0ZFFFbGVtZW50RGVzYzoKKyAqIEBkdGQ6ICBhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2gKKyAqIEBuYW1lOiAgdGhlIGVsZW1lbnQgbmFtZQorICogQHByZWZpeDogIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXgKKyAqCisgKiBTZWFyY2ggdGhlIERURCBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgZWxlbWVudAorICoKKyAqIHJldHVybnMgdGhlIHhtbEVsZW1lbnRQdHIgaWYgZm91bmQgb3IgTlVMTAorICovCisKK3htbEVsZW1lbnRQdHIKK3htbEdldER0ZFFFbGVtZW50RGVzYyh4bWxEdGRQdHIgZHRkLCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4KSB7CisgICAgeG1sRWxlbWVudFRhYmxlUHRyIHRhYmxlOworCisgICAgaWYgKGR0ZCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGR0ZC0+ZWxlbWVudHMgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHRhYmxlID0gKHhtbEVsZW1lbnRUYWJsZVB0cikgZHRkLT5lbGVtZW50czsKKworICAgIHJldHVybih4bWxIYXNoTG9va3VwMih0YWJsZSwgbmFtZSwgcHJlZml4KSk7Cit9CisKKy8qKgorICogeG1sR2V0RHRkQXR0ckRlc2M6CisgKiBAZHRkOiAgYSBwb2ludGVyIHRvIHRoZSBEdEQgdG8gc2VhcmNoCisgKiBAZWxlbTogIHRoZSBlbGVtZW50IG5hbWUKKyAqIEBuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lCisgKgorICogU2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGF0dHJpYnV0ZSBvbgorICogdGhpcyBlbGVtZW50LgorICoKKyAqIHJldHVybnMgdGhlIHhtbEF0dHJpYnV0ZVB0ciBpZiBmb3VuZCBvciBOVUxMCisgKi8KKworeG1sQXR0cmlidXRlUHRyCit4bWxHZXREdGRBdHRyRGVzYyh4bWxEdGRQdHIgZHRkLCBjb25zdCB4bWxDaGFyICplbGVtLCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGU7CisgICAgeG1sQXR0cmlidXRlUHRyIGN1cjsKKyAgICB4bWxDaGFyICp1cW5hbWUgPSBOVUxMLCAqcHJlZml4ID0gTlVMTDsKKworICAgIGlmIChkdGQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChkdGQtPmF0dHJpYnV0ZXMgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisgICAgdGFibGUgPSAoeG1sQXR0cmlidXRlVGFibGVQdHIpIGR0ZC0+YXR0cmlidXRlczsKKyAgICBpZiAodGFibGUgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICB1cW5hbWUgPSB4bWxTcGxpdFFOYW1lMihuYW1lLCAmcHJlZml4KTsKKworICAgIGlmICh1cW5hbWUgIT0gTlVMTCkgeworCWN1ciA9IHhtbEhhc2hMb29rdXAzKHRhYmxlLCB1cW5hbWUsIHByZWZpeCwgZWxlbSk7CisJaWYgKHByZWZpeCAhPSBOVUxMKSB4bWxGcmVlKHByZWZpeCk7CisJaWYgKHVxbmFtZSAhPSBOVUxMKSB4bWxGcmVlKHVxbmFtZSk7CisgICAgfSBlbHNlCisJY3VyID0geG1sSGFzaExvb2t1cDModGFibGUsIG5hbWUsIE5VTEwsIGVsZW0pOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbEdldER0ZFFBdHRyRGVzYzoKKyAqIEBkdGQ6ICBhIHBvaW50ZXIgdG8gdGhlIER0RCB0byBzZWFyY2gKKyAqIEBlbGVtOiAgdGhlIGVsZW1lbnQgbmFtZQorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqIEBwcmVmaXg6ICB0aGUgYXR0cmlidXRlIG5hbWVzcGFjZSBwcmVmaXgKKyAqCisgKiBTZWFyY2ggdGhlIERURCBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgcXVhbGlmaWVkIGF0dHJpYnV0ZSBvbgorICogdGhpcyBlbGVtZW50LgorICoKKyAqIHJldHVybnMgdGhlIHhtbEF0dHJpYnV0ZVB0ciBpZiBmb3VuZCBvciBOVUxMCisgKi8KKworeG1sQXR0cmlidXRlUHRyCit4bWxHZXREdGRRQXR0ckRlc2MoeG1sRHRkUHRyIGR0ZCwgY29uc3QgeG1sQ2hhciAqZWxlbSwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4KSB7CisgICAgeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGU7CisKKyAgICBpZiAoZHRkID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoZHRkLT5hdHRyaWJ1dGVzID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICB0YWJsZSA9ICh4bWxBdHRyaWJ1dGVUYWJsZVB0cikgZHRkLT5hdHRyaWJ1dGVzOworCisgICAgcmV0dXJuKHhtbEhhc2hMb29rdXAzKHRhYmxlLCBuYW1lLCBwcmVmaXgsIGVsZW0pKTsKK30KKworLyoqCisgKiB4bWxHZXREdGROb3RhdGlvbkRlc2M6CisgKiBAZHRkOiAgYSBwb2ludGVyIHRvIHRoZSBEdEQgdG8gc2VhcmNoCisgKiBAbmFtZTogIHRoZSBub3RhdGlvbiBuYW1lCisgKgorICogU2VhcmNoIHRoZSBEVEQgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIG5vdGF0aW9uCisgKgorICogcmV0dXJucyB0aGUgeG1sTm90YXRpb25QdHIgaWYgZm91bmQgb3IgTlVMTAorICovCisKK3htbE5vdGF0aW9uUHRyCit4bWxHZXREdGROb3RhdGlvbkRlc2MoeG1sRHRkUHRyIGR0ZCwgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbE5vdGF0aW9uVGFibGVQdHIgdGFibGU7CisKKyAgICBpZiAoZHRkID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoZHRkLT5ub3RhdGlvbnMgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHRhYmxlID0gKHhtbE5vdGF0aW9uVGFibGVQdHIpIGR0ZC0+bm90YXRpb25zOworCisgICAgcmV0dXJuKHhtbEhhc2hMb29rdXAodGFibGUsIG5hbWUpKTsKK30KKworI2lmIGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1NDSEVNQVNfRU5BQkxFRCkKKy8qKgorICogeG1sVmFsaWRhdGVOb3RhdGlvblVzZToKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQG5vdGF0aW9uTmFtZTogIHRoZSBub3RhdGlvbiBuYW1lIHRvIGNoZWNrCisgKgorICogVmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gbmFtZSBtYXRjaCBhIG5vdGF0aW9uIGRlY2xhcmF0aW9uLgorICogLSBbIFZDOiBOb3RhdGlvbiBEZWNsYXJlZCBdCisgKgorICogcmV0dXJucyAxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlCisgKi8KKworaW50Cit4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpub3RhdGlvbk5hbWUpIHsKKyAgICB4bWxOb3RhdGlvblB0ciBub3RhRGVjbDsKKyAgICBpZiAoKGRvYyA9PSBOVUxMKSB8fCAoZG9jLT5pbnRTdWJzZXQgPT0gTlVMTCkgfHwKKyAgICAgICAgKG5vdGF0aW9uTmFtZSA9PSBOVUxMKSkgcmV0dXJuKC0xKTsKKworICAgIG5vdGFEZWNsID0geG1sR2V0RHRkTm90YXRpb25EZXNjKGRvYy0+aW50U3Vic2V0LCBub3RhdGlvbk5hbWUpOworICAgIGlmICgobm90YURlY2wgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKQorCW5vdGFEZWNsID0geG1sR2V0RHRkTm90YXRpb25EZXNjKGRvYy0+ZXh0U3Vic2V0LCBub3RhdGlvbk5hbWUpOworCisgICAgaWYgKChub3RhRGVjbCA9PSBOVUxMKSAmJiAoY3R4dCAhPSBOVUxMKSkgeworCXhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZG9jLCBYTUxfRFREX1VOS05PV05fTk9UQVRJT04sCisJICAgICAgICAgICAgICAgICJOT1RBVElPTiAlcyBpcyBub3QgZGVjbGFyZWRcbiIsCisJCSAgICAgICAgbm90YXRpb25OYW1lLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIHJldHVybigxKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCBvciBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCisKKy8qKgorICogeG1sSXNNaXhlZEVsZW1lbnQ6CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAbmFtZTogIHRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBTZWFyY2ggaW4gdGhlIER0RHMgd2hldGhlciBhbiBlbGVtZW50IGFjY2VwdCBNaXhlZCBjb250ZW50IChvciBBTlkpCisgKiBiYXNpY2FsbHkgaWYgaXQgaXMgc3VwcG9zZWQgdG8gYWNjZXB0IHRleHQgY2hpbGRzCisgKgorICogcmV0dXJucyAwIGlmIG5vLCAxIGlmIHllcywgYW5kIC0xIGlmIG5vIGVsZW1lbnQgZGVzY3JpcHRpb24gaXMgYXZhaWxhYmxlCisgKi8KKworaW50Cit4bWxJc01peGVkRWxlbWVudCh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sRWxlbWVudFB0ciBlbGVtRGVjbDsKKworICAgIGlmICgoZG9jID09IE5VTEwpIHx8IChkb2MtPmludFN1YnNldCA9PSBOVUxMKSkgcmV0dXJuKC0xKTsKKworICAgIGVsZW1EZWNsID0geG1sR2V0RHRkRWxlbWVudERlc2MoZG9jLT5pbnRTdWJzZXQsIG5hbWUpOworICAgIGlmICgoZWxlbURlY2wgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKQorCWVsZW1EZWNsID0geG1sR2V0RHRkRWxlbWVudERlc2MoZG9jLT5leHRTdWJzZXQsIG5hbWUpOworICAgIGlmIChlbGVtRGVjbCA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIHN3aXRjaCAoZWxlbURlY2wtPmV0eXBlKSB7CisJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX1VOREVGSU5FRDoKKwkgICAgcmV0dXJuKC0xKTsKKwljYXNlIFhNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVDoKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX1RZUEVfRU1QVFk6CisJICAgIC8qCisJICAgICAqIHJldHVybiAxIGZvciBFTVBUWSBzaW5jZSB3ZSB3YW50IFZDIGVycm9yIHRvIHBvcCB1cAorCSAgICAgKiBvbiA8ZW1wdHk+ICAgICA8L2VtcHR5PiBmb3IgZXhhbXBsZQorCSAgICAgKi8KKwljYXNlIFhNTF9FTEVNRU5UX1RZUEVfQU5ZOgorCWNhc2UgWE1MX0VMRU1FTlRfVFlQRV9NSVhFRDoKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMSk7Cit9CisKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorCitzdGF0aWMgaW50Cit4bWxJc0RvY05hbWVTdGFydENoYXIoeG1sRG9jUHRyIGRvYywgaW50IGMpIHsKKyAgICBpZiAoKGRvYyA9PSBOVUxMKSB8fCAoZG9jLT5wcm9wZXJ0aWVzICYgWE1MX0RPQ19PTEQxMCkgPT0gMCkgeworICAgICAgICAvKgorCSAqIFVzZSB0aGUgbmV3IGNoZWNrcyBvZiBwcm9kdWN0aW9uIFs0XSBbNGFdIGFtZCBbNV0gb2YgdGhlCisJICogVXBkYXRlIDUgb2YgWE1MLTEuMAorCSAqLworCWlmICgoKGMgPj0gJ2EnKSAmJiAoYyA8PSAneicpKSB8fAorCSAgICAoKGMgPj0gJ0EnKSAmJiAoYyA8PSAnWicpKSB8fAorCSAgICAoYyA9PSAnXycpIHx8IChjID09ICc6JykgfHwKKwkgICAgKChjID49IDB4QzApICYmIChjIDw9IDB4RDYpKSB8fAorCSAgICAoKGMgPj0gMHhEOCkgJiYgKGMgPD0gMHhGNikpIHx8CisJICAgICgoYyA+PSAweEY4KSAmJiAoYyA8PSAweDJGRikpIHx8CisJICAgICgoYyA+PSAweDM3MCkgJiYgKGMgPD0gMHgzN0QpKSB8fAorCSAgICAoKGMgPj0gMHgzN0YpICYmIChjIDw9IDB4MUZGRikpIHx8CisJICAgICgoYyA+PSAweDIwMEMpICYmIChjIDw9IDB4MjAwRCkpIHx8CisJICAgICgoYyA+PSAweDIwNzApICYmIChjIDw9IDB4MjE4RikpIHx8CisJICAgICgoYyA+PSAweDJDMDApICYmIChjIDw9IDB4MkZFRikpIHx8CisJICAgICgoYyA+PSAweDMwMDEpICYmIChjIDw9IDB4RDdGRikpIHx8CisJICAgICgoYyA+PSAweEY5MDApICYmIChjIDw9IDB4RkRDRikpIHx8CisJICAgICgoYyA+PSAweEZERjApICYmIChjIDw9IDB4RkZGRCkpIHx8CisJICAgICgoYyA+PSAweDEwMDAwKSAmJiAoYyA8PSAweEVGRkZGKSkpCisJICAgIHJldHVybigxKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoSVNfTEVUVEVSKGMpIHx8IChjID09ICdfJykgfHwgKGMgPT0gJzonKSkKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbElzRG9jTmFtZUNoYXIoeG1sRG9jUHRyIGRvYywgaW50IGMpIHsKKyAgICBpZiAoKGRvYyA9PSBOVUxMKSB8fCAoZG9jLT5wcm9wZXJ0aWVzICYgWE1MX0RPQ19PTEQxMCkgPT0gMCkgeworICAgICAgICAvKgorCSAqIFVzZSB0aGUgbmV3IGNoZWNrcyBvZiBwcm9kdWN0aW9uIFs0XSBbNGFdIGFtZCBbNV0gb2YgdGhlCisJICogVXBkYXRlIDUgb2YgWE1MLTEuMAorCSAqLworCWlmICgoKGMgPj0gJ2EnKSAmJiAoYyA8PSAneicpKSB8fAorCSAgICAoKGMgPj0gJ0EnKSAmJiAoYyA8PSAnWicpKSB8fAorCSAgICAoKGMgPj0gJzAnKSAmJiAoYyA8PSAnOScpKSB8fCAvKiAhc3RhcnQgKi8KKwkgICAgKGMgPT0gJ18nKSB8fCAoYyA9PSAnOicpIHx8CisJICAgIChjID09ICctJykgfHwgKGMgPT0gJy4nKSB8fCAoYyA9PSAweEI3KSB8fCAvKiAhc3RhcnQgKi8KKwkgICAgKChjID49IDB4QzApICYmIChjIDw9IDB4RDYpKSB8fAorCSAgICAoKGMgPj0gMHhEOCkgJiYgKGMgPD0gMHhGNikpIHx8CisJICAgICgoYyA+PSAweEY4KSAmJiAoYyA8PSAweDJGRikpIHx8CisJICAgICgoYyA+PSAweDMwMCkgJiYgKGMgPD0gMHgzNkYpKSB8fCAvKiAhc3RhcnQgKi8KKwkgICAgKChjID49IDB4MzcwKSAmJiAoYyA8PSAweDM3RCkpIHx8CisJICAgICgoYyA+PSAweDM3RikgJiYgKGMgPD0gMHgxRkZGKSkgfHwKKwkgICAgKChjID49IDB4MjAwQykgJiYgKGMgPD0gMHgyMDBEKSkgfHwKKwkgICAgKChjID49IDB4MjAzRikgJiYgKGMgPD0gMHgyMDQwKSkgfHwgLyogIXN0YXJ0ICovCisJICAgICgoYyA+PSAweDIwNzApICYmIChjIDw9IDB4MjE4RikpIHx8CisJICAgICgoYyA+PSAweDJDMDApICYmIChjIDw9IDB4MkZFRikpIHx8CisJICAgICgoYyA+PSAweDMwMDEpICYmIChjIDw9IDB4RDdGRikpIHx8CisJICAgICgoYyA+PSAweEY5MDApICYmIChjIDw9IDB4RkRDRikpIHx8CisJICAgICgoYyA+PSAweEZERjApICYmIChjIDw9IDB4RkZGRCkpIHx8CisJICAgICgoYyA+PSAweDEwMDAwKSAmJiAoYyA8PSAweEVGRkZGKSkpCisJICAgICByZXR1cm4oMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKChJU19MRVRURVIoYykpIHx8IChJU19ESUdJVChjKSkgfHwKKyAgICAgICAgICAgIChjID09ICcuJykgfHwgKGMgPT0gJy0nKSB8fAorCSAgICAoYyA9PSAnXycpIHx8IChjID09ICc6JykgfHwKKwkgICAgKElTX0NPTUJJTklORyhjKSkgfHwKKwkgICAgKElTX0VYVEVOREVSKGMpKSkKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVOYW1lVmFsdWU6CisgKiBAZG9jOiAgcG9pbnRlciB0byB0aGUgZG9jdW1lbnQgb3IgTlVMTAorICogQHZhbHVlOiAgYW4gTmFtZSB2YWx1ZQorICoKKyAqIFZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIHZhbHVlIG1hdGNoIE5hbWUgcHJvZHVjdGlvbgorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCisKK3N0YXRpYyBpbnQKK3htbFZhbGlkYXRlTmFtZVZhbHVlSW50ZXJuYWwoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXI7CisgICAgaW50IHZhbCwgbGVuOworCisgICAgaWYgKHZhbHVlID09IE5VTEwpIHJldHVybigwKTsKKyAgICBjdXIgPSB2YWx1ZTsKKyAgICB2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworICAgIGN1ciArPSBsZW47CisgICAgaWYgKCF4bWxJc0RvY05hbWVTdGFydENoYXIoZG9jLCB2YWwpKQorCXJldHVybigwKTsKKworICAgIHZhbCA9IHhtbFN0cmluZ0N1cnJlbnRDaGFyKE5VTEwsIGN1ciwgJmxlbik7CisgICAgY3VyICs9IGxlbjsKKyAgICB3aGlsZSAoeG1sSXNEb2NOYW1lQ2hhcihkb2MsIHZhbCkpIHsKKwl2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworCWN1ciArPSBsZW47CisgICAgfQorCisgICAgaWYgKHZhbCAhPSAwKSByZXR1cm4oMCk7CisKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVOYW1lVmFsdWU6CisgKiBAdmFsdWU6ICBhbiBOYW1lIHZhbHVlCisgKgorICogVmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2ggTmFtZSBwcm9kdWN0aW9uCisgKgorICogcmV0dXJucyAxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlCisgKi8KKworaW50Cit4bWxWYWxpZGF0ZU5hbWVWYWx1ZShjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIHJldHVybih4bWxWYWxpZGF0ZU5hbWVWYWx1ZUludGVybmFsKE5VTEwsIHZhbHVlKSk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVOYW1lc1ZhbHVlSW50ZXJuYWw6CisgKiBAZG9jOiAgcG9pbnRlciB0byB0aGUgZG9jdW1lbnQgb3IgTlVMTAorICogQHZhbHVlOiAgYW4gTmFtZXMgdmFsdWUKKyAqCisgKiBWYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBtYXRjaCBOYW1lcyBwcm9kdWN0aW9uCisgKgorICogcmV0dXJucyAxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlCisgKi8KKworc3RhdGljIGludAoreG1sVmFsaWRhdGVOYW1lc1ZhbHVlSW50ZXJuYWwoeG1sRG9jUHRyIGRvYywgY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXI7CisgICAgaW50IHZhbCwgbGVuOworCisgICAgaWYgKHZhbHVlID09IE5VTEwpIHJldHVybigwKTsKKyAgICBjdXIgPSB2YWx1ZTsKKyAgICB2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworICAgIGN1ciArPSBsZW47CisKKyAgICBpZiAoIXhtbElzRG9jTmFtZVN0YXJ0Q2hhcihkb2MsIHZhbCkpCisJcmV0dXJuKDApOworCisgICAgdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKyAgICBjdXIgKz0gbGVuOworICAgIHdoaWxlICh4bWxJc0RvY05hbWVDaGFyKGRvYywgdmFsKSkgeworCXZhbCA9IHhtbFN0cmluZ0N1cnJlbnRDaGFyKE5VTEwsIGN1ciwgJmxlbik7CisJY3VyICs9IGxlbjsKKyAgICB9CisKKyAgICAvKiBTaG91bGQgbm90IHRlc3QgSVNfQkxBTksodmFsKSBoZXJlIC0tIHNlZSBlcnJhdHVtIEUyMCovCisgICAgd2hpbGUgKHZhbCA9PSAweDIwKSB7CisJd2hpbGUgKHZhbCA9PSAweDIwKSB7CisJICAgIHZhbCA9IHhtbFN0cmluZ0N1cnJlbnRDaGFyKE5VTEwsIGN1ciwgJmxlbik7CisJICAgIGN1ciArPSBsZW47CisJfQorCisJaWYgKCF4bWxJc0RvY05hbWVTdGFydENoYXIoZG9jLCB2YWwpKQorCSAgICByZXR1cm4oMCk7CisKKwl2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworCWN1ciArPSBsZW47CisKKwl3aGlsZSAoeG1sSXNEb2NOYW1lQ2hhcihkb2MsIHZhbCkpIHsKKwkgICAgdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKwkgICAgY3VyICs9IGxlbjsKKwl9CisgICAgfQorCisgICAgaWYgKHZhbCAhPSAwKSByZXR1cm4oMCk7CisKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVOYW1lc1ZhbHVlOgorICogQHZhbHVlOiAgYW4gTmFtZXMgdmFsdWUKKyAqCisgKiBWYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBtYXRjaCBOYW1lcyBwcm9kdWN0aW9uCisgKgorICogcmV0dXJucyAxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlCisgKi8KKworaW50Cit4bWxWYWxpZGF0ZU5hbWVzVmFsdWUoY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICByZXR1cm4oeG1sVmFsaWRhdGVOYW1lc1ZhbHVlSW50ZXJuYWwoTlVMTCwgdmFsdWUpKTsKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZUludGVybmFsOgorICogQGRvYzogIHBvaW50ZXIgdG8gdGhlIGRvY3VtZW50IG9yIE5VTEwKKyAqIEB2YWx1ZTogIGFuIE5tdG9rZW4gdmFsdWUKKyAqCisgKiBWYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiB2YWx1ZSBtYXRjaCBObXRva2VuIHByb2R1Y3Rpb24KKyAqCisgKiBbIFZDOiBOYW1lIFRva2VuIF0KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitzdGF0aWMgaW50Cit4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZUludGVybmFsKHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKnZhbHVlKSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyOworICAgIGludCB2YWwsIGxlbjsKKworICAgIGlmICh2YWx1ZSA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgY3VyID0gdmFsdWU7CisgICAgdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKyAgICBjdXIgKz0gbGVuOworCisgICAgaWYgKCF4bWxJc0RvY05hbWVDaGFyKGRvYywgdmFsKSkKKwlyZXR1cm4oMCk7CisKKyAgICB2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworICAgIGN1ciArPSBsZW47CisgICAgd2hpbGUgKHhtbElzRG9jTmFtZUNoYXIoZG9jLCB2YWwpKSB7CisJdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKwljdXIgKz0gbGVuOworICAgIH0KKworICAgIGlmICh2YWwgIT0gMCkgcmV0dXJuKDApOworCisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlTm10b2tlblZhbHVlOgorICogQHZhbHVlOiAgYW4gTm10b2tlbiB2YWx1ZQorICoKKyAqIFZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIHZhbHVlIG1hdGNoIE5tdG9rZW4gcHJvZHVjdGlvbgorICoKKyAqIFsgVkM6IE5hbWUgVG9rZW4gXQorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCisKK2ludAoreG1sVmFsaWRhdGVObXRva2VuVmFsdWUoY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICByZXR1cm4oeG1sVmFsaWRhdGVObXRva2VuVmFsdWVJbnRlcm5hbChOVUxMLCB2YWx1ZSkpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlTm10b2tlbnNWYWx1ZUludGVybmFsOgorICogQGRvYzogIHBvaW50ZXIgdG8gdGhlIGRvY3VtZW50IG9yIE5VTEwKKyAqIEB2YWx1ZTogIGFuIE5tdG9rZW5zIHZhbHVlCisgKgorICogVmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2ggTm10b2tlbnMgcHJvZHVjdGlvbgorICoKKyAqIFsgVkM6IE5hbWUgVG9rZW4gXQorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCisKK3N0YXRpYyBpbnQKK3htbFZhbGlkYXRlTm10b2tlbnNWYWx1ZUludGVybmFsKHhtbERvY1B0ciBkb2MsIGNvbnN0IHhtbENoYXIgKnZhbHVlKSB7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyOworICAgIGludCB2YWwsIGxlbjsKKworICAgIGlmICh2YWx1ZSA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgY3VyID0gdmFsdWU7CisgICAgdmFsID0geG1sU3RyaW5nQ3VycmVudENoYXIoTlVMTCwgY3VyLCAmbGVuKTsKKyAgICBjdXIgKz0gbGVuOworCisgICAgd2hpbGUgKElTX0JMQU5LKHZhbCkpIHsKKwl2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworCWN1ciArPSBsZW47CisgICAgfQorCisgICAgaWYgKCF4bWxJc0RvY05hbWVDaGFyKGRvYywgdmFsKSkKKwlyZXR1cm4oMCk7CisKKyAgICB3aGlsZSAoeG1sSXNEb2NOYW1lQ2hhcihkb2MsIHZhbCkpIHsKKwl2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworCWN1ciArPSBsZW47CisgICAgfQorCisgICAgLyogU2hvdWxkIG5vdCB0ZXN0IElTX0JMQU5LKHZhbCkgaGVyZSAtLSBzZWUgZXJyYXR1bSBFMjAqLworICAgIHdoaWxlICh2YWwgPT0gMHgyMCkgeworCXdoaWxlICh2YWwgPT0gMHgyMCkgeworCSAgICB2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworCSAgICBjdXIgKz0gbGVuOworCX0KKwlpZiAodmFsID09IDApIHJldHVybigxKTsKKworCWlmICgheG1sSXNEb2NOYW1lQ2hhcihkb2MsIHZhbCkpCisJICAgIHJldHVybigwKTsKKworCXZhbCA9IHhtbFN0cmluZ0N1cnJlbnRDaGFyKE5VTEwsIGN1ciwgJmxlbik7CisJY3VyICs9IGxlbjsKKworCXdoaWxlICh4bWxJc0RvY05hbWVDaGFyKGRvYywgdmFsKSkgeworCSAgICB2YWwgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBjdXIsICZsZW4pOworCSAgICBjdXIgKz0gbGVuOworCX0KKyAgICB9CisKKyAgICBpZiAodmFsICE9IDApIHJldHVybigwKTsKKworICAgIHJldHVybigxKTsKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWU6CisgKiBAdmFsdWU6ICBhbiBObXRva2VucyB2YWx1ZQorICoKKyAqIFZhbGlkYXRlIHRoYXQgdGhlIGdpdmVuIHZhbHVlIG1hdGNoIE5tdG9rZW5zIHByb2R1Y3Rpb24KKyAqCisgKiBbIFZDOiBOYW1lIFRva2VuIF0KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlTm10b2tlbnNWYWx1ZShjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIHJldHVybih4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWVJbnRlcm5hbChOVUxMLCB2YWx1ZSkpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlTm90YXRpb25EZWNsOgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBkb2N1bWVudCBpbnN0YW5jZQorICogQG5vdGE6ICBhIG5vdGF0aW9uIGRlZmluaXRpb24KKyAqCisgKiBUcnkgdG8gdmFsaWRhdGUgYSBzaW5nbGUgbm90YXRpb24gZGVmaW5pdGlvbgorICogYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZQorICogWE1MLTEuMCByZWNvbW1lbmRhdGlvbjoKKyAqICAtIGl0IHNlZW1zIHRoYXQgbm8gdmFsaWRpdHkgY29uc3RyYWludCBleGlzdHMgb24gbm90YXRpb24gZGVjbGFyYXRpb25zCisgKiBCdXQgdGhpcyBmdW5jdGlvbiBnZXQgY2FsbGVkIGFueXdheSAuLi4KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlTm90YXRpb25EZWNsKHhtbFZhbGlkQ3R4dFB0ciBjdHh0IEFUVFJJQlVURV9VTlVTRUQsIHhtbERvY1B0ciBkb2MgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb3RhdGlvblB0ciBub3RhIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpbnQgcmV0ID0gMTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWVJbnRlcm5hbDoKKyAqIEBkb2M6IHRoZSBkb2N1bWVudAorICogQHR5cGU6ICBhbiBhdHRyaWJ1dGUgdHlwZQorICogQHZhbHVlOiAgYW4gYXR0cmlidXRlIHZhbHVlCisgKgorICogVmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gYXR0cmlidXRlIHZhbHVlIG1hdGNoICB0aGUgcHJvcGVyIHByb2R1Y3Rpb24KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitzdGF0aWMgaW50Cit4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlSW50ZXJuYWwoeG1sRG9jUHRyIGRvYywgeG1sQXR0cmlidXRlVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlKSB7CisgICAgc3dpdGNoICh0eXBlKSB7CisJY2FzZSBYTUxfQVRUUklCVVRFX0VOVElUSUVTOgorCWNhc2UgWE1MX0FUVFJJQlVURV9JRFJFRlM6CisJICAgIHJldHVybih4bWxWYWxpZGF0ZU5hbWVzVmFsdWVJbnRlcm5hbChkb2MsIHZhbHVlKSk7CisJY2FzZSBYTUxfQVRUUklCVVRFX0VOVElUWToKKwljYXNlIFhNTF9BVFRSSUJVVEVfSURSRUY6CisJY2FzZSBYTUxfQVRUUklCVVRFX0lEOgorCWNhc2UgWE1MX0FUVFJJQlVURV9OT1RBVElPTjoKKwkgICAgcmV0dXJuKHhtbFZhbGlkYXRlTmFtZVZhbHVlSW50ZXJuYWwoZG9jLCB2YWx1ZSkpOworCWNhc2UgWE1MX0FUVFJJQlVURV9OTVRPS0VOUzoKKwljYXNlIFhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT046CisJICAgIHJldHVybih4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWVJbnRlcm5hbChkb2MsIHZhbHVlKSk7CisJY2FzZSBYTUxfQVRUUklCVVRFX05NVE9LRU46CisJICAgIHJldHVybih4bWxWYWxpZGF0ZU5tdG9rZW5WYWx1ZUludGVybmFsKGRvYywgdmFsdWUpKTsKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0NEQVRBOgorCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWU6CisgKiBAdHlwZTogIGFuIGF0dHJpYnV0ZSB0eXBlCisgKiBAdmFsdWU6ICBhbiBhdHRyaWJ1dGUgdmFsdWUKKyAqCisgKiBWYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiBhdHRyaWJ1dGUgdmFsdWUgbWF0Y2ggIHRoZSBwcm9wZXIgcHJvZHVjdGlvbgorICoKKyAqIFsgVkM6IElEIF0KKyAqIFZhbHVlcyBvZiB0eXBlIElEIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbi4uLi4KKyAqCisgKiBbIFZDOiBJRFJFRiBdCisgKiBWYWx1ZXMgb2YgdHlwZSBJRFJFRiBtdXN0IG1hdGNoIHRoZSBOYW1lIHByb2R1Y3Rpb24sIGFuZCB2YWx1ZXMKKyAqIG9mIHR5cGUgSURSRUZTIG11c3QgbWF0Y2ggTmFtZXMgLi4uCisgKgorICogWyBWQzogRW50aXR5IE5hbWUgXQorICogVmFsdWVzIG9mIHR5cGUgRU5USVRZIG11c3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgdmFsdWVzCisgKiBvZiB0eXBlIEVOVElUSUVTIG11c3QgbWF0Y2ggTmFtZXMgLi4uCisgKgorICogWyBWQzogTmFtZSBUb2tlbiBdCisgKiBWYWx1ZXMgb2YgdHlwZSBOTVRPS0VOIG11c3QgbWF0Y2ggdGhlIE5tdG9rZW4gcHJvZHVjdGlvbjsgdmFsdWVzCisgKiBvZiB0eXBlIE5NVE9LRU5TIG11c3QgbWF0Y2ggTm10b2tlbnMuIAorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUoeG1sQXR0cmlidXRlVHlwZSB0eXBlLCBjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIHJldHVybih4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlSW50ZXJuYWwoTlVMTCwgdHlwZSwgdmFsdWUpKTsKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlMjoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUgKHVzZWQgZm9yIGVycm9yIHJlcG9ydGluZyBvbmx5KQorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUKKyAqIEB2YWx1ZTogIHRoZSBhdHRyaWJ1dGUgdmFsdWUKKyAqCisgKiBWYWxpZGF0ZSB0aGF0IHRoZSBnaXZlbiBhdHRyaWJ1dGUgdmFsdWUgbWF0Y2ggYSBnaXZlbiB0eXBlLgorICogVGhpcyB0eXBpY2FsbHkgY2Fubm90IGJlIGRvbmUgYmVmb3JlIGhhdmluZyBmaW5pc2hlZCBwYXJzaW5nCisgKiB0aGUgc3Vic2V0cy4KKyAqCisgKiBbIFZDOiBJRFJFRiBdCisgKiBWYWx1ZXMgb2YgdHlwZSBJRFJFRiBtdXN0IG1hdGNoIG9uZSBvZiB0aGUgZGVjbGFyZWQgSURzCisgKiBWYWx1ZXMgb2YgdHlwZSBJRFJFRlMgbXVzdCBtYXRjaCBhIHNlcXVlbmNlIG9mIHRoZSBkZWNsYXJlZCBJRHMKKyAqIGVhY2ggTmFtZSBtdXN0IG1hdGNoIHRoZSB2YWx1ZSBvZiBhbiBJRCBhdHRyaWJ1dGUgb24gc29tZSBlbGVtZW50CisgKiBpbiB0aGUgWE1MIGRvY3VtZW50OyBpLmUuIElEUkVGIHZhbHVlcyBtdXN0IG1hdGNoIHRoZSB2YWx1ZSBvZgorICogc29tZSBJRCBhdHRyaWJ1dGUKKyAqCisgKiBbIFZDOiBFbnRpdHkgTmFtZSBdCisgKiBWYWx1ZXMgb2YgdHlwZSBFTlRJVFkgbXVzdCBtYXRjaCBvbmUgZGVjbGFyZWQgZW50aXR5CisgKiBWYWx1ZXMgb2YgdHlwZSBFTlRJVElFUyBtdXN0IG1hdGNoIGEgc2VxdWVuY2Ugb2YgZGVjbGFyZWQgZW50aXRpZXMKKyAqCisgKiBbIFZDOiBOb3RhdGlvbiBBdHRyaWJ1dGVzIF0KKyAqIGFsbCBub3RhdGlvbiBuYW1lcyBpbiB0aGUgZGVjbGFyYXRpb24gbXVzdCBiZSBkZWNsYXJlZC4KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitzdGF0aWMgaW50Cit4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlMih4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYywKKyAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsIHhtbEF0dHJpYnV0ZVR5cGUgdHlwZSwgY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICBpbnQgcmV0ID0gMTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFhNTF9BVFRSSUJVVEVfSURSRUZTOgorCWNhc2UgWE1MX0FUVFJJQlVURV9JRFJFRjoKKwljYXNlIFhNTF9BVFRSSUJVVEVfSUQ6CisJY2FzZSBYTUxfQVRUUklCVVRFX05NVE9LRU5TOgorCWNhc2UgWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTjoKKwljYXNlIFhNTF9BVFRSSUJVVEVfTk1UT0tFTjoKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0NEQVRBOgorCSAgICBicmVhazsKKwljYXNlIFhNTF9BVFRSSUJVVEVfRU5USVRZOiB7CisJICAgIHhtbEVudGl0eVB0ciBlbnQ7CisKKwkgICAgZW50ID0geG1sR2V0RG9jRW50aXR5KGRvYywgdmFsdWUpOworCSAgICAvKiB5ZWFoIGl0J3MgYSBiaXQgbWVzc3kuLi4gKi8KKwkgICAgaWYgKChlbnQgPT0gTlVMTCkgJiYgKGRvYy0+c3RhbmRhbG9uZSA9PSAxKSkgeworCQlkb2MtPnN0YW5kYWxvbmUgPSAwOworCQllbnQgPSB4bWxHZXREb2NFbnRpdHkoZG9jLCB2YWx1ZSk7CisJICAgIH0gCisJICAgIGlmIChlbnQgPT0gTlVMTCkgeworCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGRvYywKKwkJCQlYTUxfRFREX1VOS05PV05fRU5USVRZLAorICAgIkVOVElUWSBhdHRyaWJ1dGUgJXMgcmVmZXJlbmNlIGFuIHVua25vd24gZW50aXR5IFwiJXNcIlxuIiwKKwkJICAgICAgIG5hbWUsIHZhbHVlLCBOVUxMKTsKKwkJcmV0ID0gMDsKKwkgICAgfSBlbHNlIGlmIChlbnQtPmV0eXBlICE9IFhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWSkgeworCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGRvYywKKwkJCQlYTUxfRFREX0VOVElUWV9UWVBFLAorICAgIkVOVElUWSBhdHRyaWJ1dGUgJXMgcmVmZXJlbmNlIGFuIGVudGl0eSBcIiVzXCIgb2Ygd3JvbmcgdHlwZVxuIiwKKwkJICAgICAgIG5hbWUsIHZhbHVlLCBOVUxMKTsKKwkJcmV0ID0gMDsKKwkgICAgfQorCSAgICBicmVhazsKKyAgICAgICAgfQorCWNhc2UgWE1MX0FUVFJJQlVURV9FTlRJVElFUzogeworCSAgICB4bWxDaGFyICpkdXAsICpuYW0gPSBOVUxMLCAqY3VyLCBzYXZlOworCSAgICB4bWxFbnRpdHlQdHIgZW50OworCisJICAgIGR1cCA9IHhtbFN0cmR1cCh2YWx1ZSk7CisJICAgIGlmIChkdXAgPT0gTlVMTCkKKwkJcmV0dXJuKDApOworCSAgICBjdXIgPSBkdXA7CisJICAgIHdoaWxlICgqY3VyICE9IDApIHsKKwkJbmFtID0gY3VyOworCQl3aGlsZSAoKCpjdXIgIT0gMCkgJiYgKCFJU19CTEFOS19DSCgqY3VyKSkpIGN1cisrOworCQlzYXZlID0gKmN1cjsKKwkJKmN1ciA9IDA7CisJCWVudCA9IHhtbEdldERvY0VudGl0eShkb2MsIG5hbSk7CisJCWlmIChlbnQgPT0gTlVMTCkgeworCQkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsICh4bWxOb2RlUHRyKSBkb2MsCisJCQkJICAgIFhNTF9EVERfVU5LTk9XTl9FTlRJVFksCisgICAgICAgIkVOVElUSUVTIGF0dHJpYnV0ZSAlcyByZWZlcmVuY2UgYW4gdW5rbm93biBlbnRpdHkgXCIlc1wiXG4iLAorCQkJICAgbmFtZSwgbmFtLCBOVUxMKTsKKwkJICAgIHJldCA9IDA7CisJCX0gZWxzZSBpZiAoZW50LT5ldHlwZSAhPSBYTUxfRVhURVJOQUxfR0VORVJBTF9VTlBBUlNFRF9FTlRJVFkpIHsKKwkJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZG9jLAorCQkJCSAgICBYTUxfRFREX0VOVElUWV9UWVBFLAorICAgICAgICJFTlRJVElFUyBhdHRyaWJ1dGUgJXMgcmVmZXJlbmNlIGFuIGVudGl0eSBcIiVzXCIgb2Ygd3JvbmcgdHlwZVxuIiwKKwkJCSAgIG5hbWUsIG5hbSwgTlVMTCk7CisJCSAgICByZXQgPSAwOworCQl9CisJCWlmIChzYXZlID09IDApCisJCSAgICBicmVhazsKKwkJKmN1ciA9IHNhdmU7CisJCXdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkgY3VyKys7CisJICAgIH0KKwkgICAgeG1sRnJlZShkdXApOworCSAgICBicmVhazsKKwl9CisJY2FzZSBYTUxfQVRUUklCVVRFX05PVEFUSU9OOiB7CisJICAgIHhtbE5vdGF0aW9uUHRyIG5vdGE7CisKKwkgICAgbm90YSA9IHhtbEdldER0ZE5vdGF0aW9uRGVzYyhkb2MtPmludFN1YnNldCwgdmFsdWUpOworCSAgICBpZiAoKG5vdGEgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKQorCQlub3RhID0geG1sR2V0RHRkTm90YXRpb25EZXNjKGRvYy0+ZXh0U3Vic2V0LCB2YWx1ZSk7CisKKwkgICAgaWYgKG5vdGEgPT0gTlVMTCkgeworCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGRvYywKKwkJICAgICAgICAgICAgICAgIFhNTF9EVERfVU5LTk9XTl9OT1RBVElPTiwKKyAgICAgICAiTk9UQVRJT04gYXR0cmlidXRlICVzIHJlZmVyZW5jZSBhbiB1bmtub3duIG5vdGF0aW9uIFwiJXNcIlxuIiwKKwkJICAgICAgIG5hbWUsIHZhbHVlLCBOVUxMKTsKKwkJcmV0ID0gMDsKKwkgICAgfQorCSAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxWYWxpZEN0eHROb3JtYWxpemVBdHRyaWJ1dGVWYWx1ZToKKyAqIEBjdHh0OiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAZWxlbTogIHRoZSBwYXJlbnQKKyAqIEBuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lCisgKiBAdmFsdWU6ICB0aGUgYXR0cmlidXRlIHZhbHVlCisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTAorICoKKyAqIERvZXMgdGhlIHZhbGlkYXRpb24gcmVsYXRlZCBleHRyYSBzdGVwIG9mIHRoZSBub3JtYWxpemF0aW9uIG9mIGF0dHJpYnV0ZQorICogdmFsdWVzOgorICoKKyAqIElmIHRoZSBkZWNsYXJlZCB2YWx1ZSBpcyBub3QgQ0RBVEEsIHRoZW4gdGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBmdXJ0aGVyCisgKiBwcm9jZXNzIHRoZSBub3JtYWxpemVkIGF0dHJpYnV0ZSB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueSBsZWFkaW5nIGFuZAorICogdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHNwYWNlCisgKiAoI3gyMCkgY2hhcmFjdGVycyBieSBzaW5nbGUgc3BhY2UgKCN4MjApIGNoYXJhY3Rlci4KKyAqCisgKiBBbHNvICBjaGVjayBWQzogU3RhbmRhbG9uZSBEb2N1bWVudCBEZWNsYXJhdGlvbiBpbiBQMzIsIGFuZCB1cGRhdGUKKyAqICBjdHh0LT52YWxpZCBhY2NvcmRpbmdseQorICoKKyAqIHJldHVybnMgYSBuZXcgbm9ybWFsaXplZCBzdHJpbmcgaWYgbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQsIE5VTEwgb3RoZXJ3aXNlCisgKiAgICAgIHRoZSBjYWxsZXIgbXVzdCBmcmVlIHRoZSByZXR1cm5lZCB2YWx1ZS4KKyAqLworCit4bWxDaGFyICoKK3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jLAorCSAgICAgeG1sTm9kZVB0ciBlbGVtLCBjb25zdCB4bWxDaGFyICpuYW1lLCBjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIHhtbENoYXIgKnJldCwgKmRzdDsKKyAgICBjb25zdCB4bWxDaGFyICpzcmM7CisgICAgeG1sQXR0cmlidXRlUHRyIGF0dHJEZWNsID0gTlVMTDsKKyAgICBpbnQgZXh0c3Vic2V0ID0gMDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChlbGVtID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKHZhbHVlID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIGlmICgoZWxlbS0+bnMgIT0gTlVMTCkgJiYgKGVsZW0tPm5zLT5wcmVmaXggIT0gTlVMTCkpIHsKKwl4bWxDaGFyIGZuWzUwXTsKKwl4bWxDaGFyICpmdWxsbmFtZTsKKwkKKwlmdWxsbmFtZSA9IHhtbEJ1aWxkUU5hbWUoZWxlbS0+bmFtZSwgZWxlbS0+bnMtPnByZWZpeCwgZm4sIDUwKTsKKwlpZiAoZnVsbG5hbWUgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCWF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5pbnRTdWJzZXQsIGZ1bGxuYW1lLCBuYW1lKTsKKwlpZiAoKGF0dHJEZWNsID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkgeworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+ZXh0U3Vic2V0LCBmdWxsbmFtZSwgbmFtZSk7CisJICAgIGlmIChhdHRyRGVjbCAhPSBOVUxMKQorCQlleHRzdWJzZXQgPSAxOworCX0KKwlpZiAoKGZ1bGxuYW1lICE9IGZuKSAmJiAoZnVsbG5hbWUgIT0gZWxlbS0+bmFtZSkpCisJICAgIHhtbEZyZWUoZnVsbG5hbWUpOworICAgIH0KKyAgICBpZiAoKGF0dHJEZWNsID09IE5VTEwpICYmIChkb2MtPmludFN1YnNldCAhPSBOVUxMKSkKKwlhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+aW50U3Vic2V0LCBlbGVtLT5uYW1lLCBuYW1lKTsKKyAgICBpZiAoKGF0dHJEZWNsID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkgeworCWF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsIGVsZW0tPm5hbWUsIG5hbWUpOworCWlmIChhdHRyRGVjbCAhPSBOVUxMKQorCSAgICBleHRzdWJzZXQgPSAxOworICAgIH0KKworICAgIGlmIChhdHRyRGVjbCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoYXR0ckRlY2wtPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfQ0RBVEEpCisJcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0geG1sU3RyZHVwKHZhbHVlKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHNyYyA9IHZhbHVlOworICAgIGRzdCA9IHJldDsKKyAgICB3aGlsZSAoKnNyYyA9PSAweDIwKSBzcmMrKzsKKyAgICB3aGlsZSAoKnNyYyAhPSAwKSB7CisJaWYgKCpzcmMgPT0gMHgyMCkgeworCSAgICB3aGlsZSAoKnNyYyA9PSAweDIwKSBzcmMrKzsKKwkgICAgaWYgKCpzcmMgIT0gMCkKKwkJKmRzdCsrID0gMHgyMDsKKwl9IGVsc2UgeworCSAgICAqZHN0KysgPSAqc3JjKys7CisJfQorICAgIH0KKyAgICAqZHN0ID0gMDsKKyAgICBpZiAoKGRvYy0+c3RhbmRhbG9uZSkgJiYgKGV4dHN1YnNldCA9PSAxKSAmJiAoIXhtbFN0ckVxdWFsKHZhbHVlLCByZXQpKSkgeworCXhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRFREX05PVF9TVEFOREFMT05FLAorInN0YW5kYWxvbmU6ICVzIG9uICVzIHZhbHVlIGhhZCB0byBiZSBub3JtYWxpemVkIGJhc2VkIG9uIGV4dGVybmFsIHN1YnNldCBkZWNsYXJhdGlvblxuIiwKKwkgICAgICAgbmFtZSwgZWxlbS0+bmFtZSwgTlVMTCk7CisJY3R4dC0+dmFsaWQgPSAwOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGVsZW06ICB0aGUgcGFyZW50CisgKiBAbmFtZTogIHRoZSBhdHRyaWJ1dGUgbmFtZQorICogQHZhbHVlOiAgdGhlIGF0dHJpYnV0ZSB2YWx1ZQorICoKKyAqIERvZXMgdGhlIHZhbGlkYXRpb24gcmVsYXRlZCBleHRyYSBzdGVwIG9mIHRoZSBub3JtYWxpemF0aW9uIG9mIGF0dHJpYnV0ZQorICogdmFsdWVzOgorICoKKyAqIElmIHRoZSBkZWNsYXJlZCB2YWx1ZSBpcyBub3QgQ0RBVEEsIHRoZW4gdGhlIFhNTCBwcm9jZXNzb3IgbXVzdCBmdXJ0aGVyCisgKiBwcm9jZXNzIHRoZSBub3JtYWxpemVkIGF0dHJpYnV0ZSB2YWx1ZSBieSBkaXNjYXJkaW5nIGFueSBsZWFkaW5nIGFuZAorICogdHJhaWxpbmcgc3BhY2UgKCN4MjApIGNoYXJhY3RlcnMsIGFuZCBieSByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHNwYWNlCisgKiAoI3gyMCkgY2hhcmFjdGVycyBieSBzaW5nbGUgc3BhY2UgKCN4MjApIGNoYXJhY3Rlci4KKyAqCisgKiBSZXR1cm5zIGEgbmV3IG5vcm1hbGl6ZWQgc3RyaW5nIGlmIG5vcm1hbGl6YXRpb24gaXMgbmVlZGVkLCBOVUxMIG90aGVyd2lzZQorICogICAgICB0aGUgY2FsbGVyIG11c3QgZnJlZSB0aGUgcmV0dXJuZWQgdmFsdWUuCisgKi8KKworeG1sQ2hhciAqCit4bWxWYWxpZE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgZWxlbSwKKwkJCSAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqdmFsdWUpIHsKKyAgICB4bWxDaGFyICpyZXQsICpkc3Q7CisgICAgY29uc3QgeG1sQ2hhciAqc3JjOworICAgIHhtbEF0dHJpYnV0ZVB0ciBhdHRyRGVjbCA9IE5VTEw7CisKKyAgICBpZiAoZG9jID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoZWxlbSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmICh2YWx1ZSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICBpZiAoKGVsZW0tPm5zICE9IE5VTEwpICYmIChlbGVtLT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisJeG1sQ2hhciBmbls1MF07CisJeG1sQ2hhciAqZnVsbG5hbWU7CisKKwlmdWxsbmFtZSA9IHhtbEJ1aWxkUU5hbWUoZWxlbS0+bmFtZSwgZWxlbS0+bnMtPnByZWZpeCwgZm4sIDUwKTsKKwlpZiAoZnVsbG5hbWUgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCWlmICgoZnVsbG5hbWUgIT0gZm4pICYmIChmdWxsbmFtZSAhPSBlbGVtLT5uYW1lKSkKKwkgICAgeG1sRnJlZShmdWxsbmFtZSk7CisgICAgfQorICAgIGF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5pbnRTdWJzZXQsIGVsZW0tPm5hbWUsIG5hbWUpOworICAgIGlmICgoYXR0ckRlY2wgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKQorCWF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsIGVsZW0tPm5hbWUsIG5hbWUpOworCisgICAgaWYgKGF0dHJEZWNsID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChhdHRyRGVjbC0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9DREFUQSkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSB4bWxTdHJkdXAodmFsdWUpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgc3JjID0gdmFsdWU7CisgICAgZHN0ID0gcmV0OworICAgIHdoaWxlICgqc3JjID09IDB4MjApIHNyYysrOworICAgIHdoaWxlICgqc3JjICE9IDApIHsKKwlpZiAoKnNyYyA9PSAweDIwKSB7CisJICAgIHdoaWxlICgqc3JjID09IDB4MjApIHNyYysrOworCSAgICBpZiAoKnNyYyAhPSAwKQorCQkqZHN0KysgPSAweDIwOworCX0gZWxzZSB7CisJICAgICpkc3QrKyA9ICpzcmMrKzsKKwl9CisgICAgfQorICAgICpkc3QgPSAwOworICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgdm9pZAoreG1sVmFsaWRhdGVBdHRyaWJ1dGVJZENhbGxiYWNrKHhtbEF0dHJpYnV0ZVB0ciBhdHRyLCBpbnQgKmNvdW50LAorCSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciogbmFtZSBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKGF0dHItPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfSUQpICgqY291bnQpKys7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsOgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBkb2N1bWVudCBpbnN0YW5jZQorICogQGF0dHI6ICBhbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbgorICoKKyAqIFRyeSB0byB2YWxpZGF0ZSBhIHNpbmdsZSBhdHRyaWJ1dGUgZGVmaW5pdGlvbgorICogYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZQorICogWE1MLTEuMCByZWNvbW1lbmRhdGlvbjoKKyAqICAtIFsgVkM6IEF0dHJpYnV0ZSBEZWZhdWx0IExlZ2FsIF0KKyAqICAtIFsgVkM6IEVudW1lcmF0aW9uIF0KKyAqICAtIFsgVkM6IElEIEF0dHJpYnV0ZSBEZWZhdWx0IF0KKyAqCisgKiBUaGUgSUQvSURSRUYgdW5pcXVlbmVzcyBhbmQgbWF0Y2hpbmcgYXJlIGRvbmUgc2VwYXJhdGVseQorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCisKK2ludAoreG1sVmFsaWRhdGVBdHRyaWJ1dGVEZWNsKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEF0dHJpYnV0ZVB0ciBhdHRyKSB7CisgICAgaW50IHJldCA9IDE7CisgICAgaW50IHZhbDsKKyAgICBDSEVDS19EVEQ7CisgICAgaWYoYXR0ciA9PSBOVUxMKSByZXR1cm4oMSk7CisKKyAgICAvKiBBdHRyaWJ1dGUgRGVmYXVsdCBMZWdhbCAqLworICAgIC8qIEVudW1lcmF0aW9uICovCisgICAgaWYgKGF0dHItPmRlZmF1bHRWYWx1ZSAhPSBOVUxMKSB7CisJdmFsID0geG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZUludGVybmFsKGRvYywgYXR0ci0+YXR5cGUsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHItPmRlZmF1bHRWYWx1ZSk7CisJaWYgKHZhbCA9PSAwKSB7CisJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgYXR0ciwgWE1MX0RURF9BVFRSSUJVVEVfREVGQVVMVCwKKwkgICAgICAgIlN5bnRheCBvZiBkZWZhdWx0IHZhbHVlIGZvciBhdHRyaWJ1dGUgJXMgb2YgJXMgaXMgbm90IHZhbGlkXG4iLAorCSAgICAgICAgICAgYXR0ci0+bmFtZSwgYXR0ci0+ZWxlbSwgTlVMTCk7CisJfQorICAgICAgICByZXQgJj0gdmFsOworICAgIH0KKworICAgIC8qIElEIEF0dHJpYnV0ZSBEZWZhdWx0ICovCisgICAgaWYgKChhdHRyLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEKSYmCisgICAgICAgIChhdHRyLT5kZWYgIT0gWE1MX0FUVFJJQlVURV9JTVBMSUVEKSAmJgorCShhdHRyLT5kZWYgIT0gWE1MX0FUVFJJQlVURV9SRVFVSVJFRCkpIHsKKwl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGF0dHIsIFhNTF9EVERfSURfRklYRUQsCisgICAgICAgICAgIklEIGF0dHJpYnV0ZSAlcyBvZiAlcyBpcyBub3QgdmFsaWQgbXVzdCBiZSAjSU1QTElFRCBvciAjUkVRVUlSRURcbiIsCisJICAgICAgIGF0dHItPm5hbWUsIGF0dHItPmVsZW0sIE5VTEwpOworCXJldCA9IDA7CisgICAgfQorCisgICAgLyogT25lIElEIHBlciBFbGVtZW50IFR5cGUgKi8KKyAgICBpZiAoYXR0ci0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9JRCkgeworICAgICAgICBpbnQgbmJJZDsKKworCS8qIHRoZSB0cmljayBpcyB0aGF0IHdlIHBhcnNlIER0RCBhcyB0aGVpciBvd24gaW50ZXJuYWwgc3Vic2V0ICovCisgICAgICAgIHhtbEVsZW1lbnRQdHIgZWxlbSA9IHhtbEdldER0ZEVsZW1lbnREZXNjKGRvYy0+aW50U3Vic2V0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHItPmVsZW0pOworCWlmIChlbGVtICE9IE5VTEwpIHsKKwkgICAgbmJJZCA9IHhtbFNjYW5JREF0dHJpYnV0ZURlY2woTlVMTCwgZWxlbSwgMCk7CisJfSBlbHNlIHsKKwkgICAgeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGU7CisKKwkgICAgLyoKKwkgICAgICogVGhlIGF0dHJpYnV0ZSBtYXkgYmUgZGVjbGFyZWQgaW4gdGhlIGludGVybmFsIHN1YnNldCBhbmQgdGhlCisJICAgICAqIGVsZW1lbnQgaW4gdGhlIGV4dGVybmFsIHN1YnNldC4KKwkgICAgICovCisJICAgIG5iSWQgPSAwOworCSAgICBpZiAoZG9jLT5pbnRTdWJzZXQgIT0gTlVMTCkgeworCQl0YWJsZSA9ICh4bWxBdHRyaWJ1dGVUYWJsZVB0cikgZG9jLT5pbnRTdWJzZXQtPmF0dHJpYnV0ZXM7CisJCXhtbEhhc2hTY2FuMyh0YWJsZSwgTlVMTCwgTlVMTCwgYXR0ci0+ZWxlbSwgKHhtbEhhc2hTY2FubmVyKQorCQkJICAgICB4bWxWYWxpZGF0ZUF0dHJpYnV0ZUlkQ2FsbGJhY2ssICZuYklkKTsKKwkgICAgfQorCX0KKwlpZiAobmJJZCA+IDEpIHsKKwkgICAgCisJICAgIHhtbEVyclZhbGlkTm9kZU5yKGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyLCBYTUxfRFREX0lEX1NVQlNFVCwKKyAgICAgICAiRWxlbWVudCAlcyBoYXMgJWQgSUQgYXR0cmlidXRlIGRlZmluZWQgaW4gdGhlIGludGVybmFsIHN1YnNldCA6ICVzXG4iLAorCQkgICBhdHRyLT5lbGVtLCBuYklkLCBhdHRyLT5uYW1lKTsKKwl9IGVsc2UgaWYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpIHsKKwkgICAgaW50IGV4dElkID0gMDsKKwkgICAgZWxlbSA9IHhtbEdldER0ZEVsZW1lbnREZXNjKGRvYy0+ZXh0U3Vic2V0LCBhdHRyLT5lbGVtKTsKKwkgICAgaWYgKGVsZW0gIT0gTlVMTCkgeworCQlleHRJZCA9IHhtbFNjYW5JREF0dHJpYnV0ZURlY2woTlVMTCwgZWxlbSwgMCk7CisJICAgIH0KKwkgICAgaWYgKGV4dElkID4gMSkgeworCQl4bWxFcnJWYWxpZE5vZGVOcihjdHh0LCAoeG1sTm9kZVB0cikgYXR0ciwgWE1MX0RURF9JRF9TVUJTRVQsCisgICAgICAgIkVsZW1lbnQgJXMgaGFzICVkIElEIGF0dHJpYnV0ZSBkZWZpbmVkIGluIHRoZSBleHRlcm5hbCBzdWJzZXQgOiAlc1xuIiwKKwkJICAgICAgIGF0dHItPmVsZW0sIGV4dElkLCBhdHRyLT5uYW1lKTsKKwkgICAgfSBlbHNlIGlmIChleHRJZCArIG5iSWQgPiAxKSB7CisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgYXR0ciwgWE1MX0RURF9JRF9TVUJTRVQsCisiRWxlbWVudCAlcyBoYXMgSUQgYXR0cmlidXRlcyBkZWZpbmVkIGluIHRoZSBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwgc3Vic2V0IDogJXNcbiIsCisJCSAgICAgICBhdHRyLT5lbGVtLCBhdHRyLT5uYW1lLCBOVUxMKTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKiBWYWxpZGl0eSBDb25zdHJhaW50OiBFbnVtZXJhdGlvbiAqLworICAgIGlmICgoYXR0ci0+ZGVmYXVsdFZhbHVlICE9IE5VTEwpICYmIChhdHRyLT50cmVlICE9IE5VTEwpKSB7CisgICAgICAgIHhtbEVudW1lcmF0aW9uUHRyIHRyZWUgPSBhdHRyLT50cmVlOworCXdoaWxlICh0cmVlICE9IE5VTEwpIHsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKHRyZWUtPm5hbWUsIGF0dHItPmRlZmF1bHRWYWx1ZSkpIGJyZWFrOworCSAgICB0cmVlID0gdHJlZS0+bmV4dDsKKwl9CisJaWYgKHRyZWUgPT0gTlVMTCkgeworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGF0dHIsIFhNTF9EVERfQVRUUklCVVRFX1ZBTFVFLAorIkRlZmF1bHQgdmFsdWUgXCIlc1wiIGZvciBhdHRyaWJ1dGUgJXMgb2YgJXMgaXMgbm90IGFtb25nIHRoZSBlbnVtZXJhdGVkIHNldFxuIiwKKwkJICAgYXR0ci0+ZGVmYXVsdFZhbHVlLCBhdHRyLT5uYW1lLCBhdHRyLT5lbGVtKTsKKwkgICAgcmV0ID0gMDsKKwl9CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVFbGVtZW50RGVjbDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBkZWZpbml0aW9uCisgKgorICogVHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIGVsZW1lbnQgZGVmaW5pdGlvbgorICogYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZQorICogWE1MLTEuMCByZWNvbW1lbmRhdGlvbjoKKyAqICAtIFsgVkM6IE9uZSBJRCBwZXIgRWxlbWVudCBUeXBlIF0KKyAqICAtIFsgVkM6IE5vIER1cGxpY2F0ZSBUeXBlcyBdCisgKiAgLSBbIFZDOiBVbmlxdWUgRWxlbWVudCBUeXBlIERlY2xhcmF0aW9uIF0KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlRWxlbWVudERlY2woeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MsCisgICAgICAgICAgICAgICAgICAgICAgIHhtbEVsZW1lbnRQdHIgZWxlbSkgeworICAgIGludCByZXQgPSAxOworICAgIHhtbEVsZW1lbnRQdHIgdHN0OworCisgICAgQ0hFQ0tfRFREOworICAgIAorICAgIGlmIChlbGVtID09IE5VTEwpIHJldHVybigxKTsKKworI2lmIDAKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKKyAgICAvKiBCdWlsZCB0aGUgcmVnZXhwIGFzc29jaWF0ZWQgdG8gdGhlIGNvbnRlbnQgbW9kZWwgKi8KKyAgICByZXQgPSB4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsKGN0eHQsIGVsZW0pOworI2VuZGlmCisjZW5kaWYKKworICAgIC8qIE5vIER1cGxpY2F0ZSBUeXBlcyAqLworICAgIGlmIChlbGVtLT5ldHlwZSA9PSBYTUxfRUxFTUVOVF9UWVBFX01JWEVEKSB7CisJeG1sRWxlbWVudENvbnRlbnRQdHIgY3VyLCBuZXh0OworICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lOworCisJY3VyID0gZWxlbS0+Y29udGVudDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSBicmVhazsKKwkgICAgaWYgKGN1ci0+YzEgPT0gTlVMTCkgYnJlYWs7CisJICAgIGlmIChjdXItPmMxLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCkgeworCQluYW1lID0gY3VyLT5jMS0+bmFtZTsKKwkJbmV4dCA9IGN1ci0+YzI7CisJCXdoaWxlIChuZXh0ICE9IE5VTEwpIHsKKwkJICAgIGlmIChuZXh0LT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCkgeworCQkgICAgICAgIGlmICgoeG1sU3RyRXF1YWwobmV4dC0+bmFtZSwgbmFtZSkpICYmCisJCQkgICAgKHhtbFN0ckVxdWFsKG5leHQtPnByZWZpeCwgY3VyLT5jMS0+cHJlZml4KSkpIHsKKwkJCSAgICBpZiAoY3VyLT5jMS0+cHJlZml4ID09IE5VTEwpIHsKKwkJCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGVsZW0sIFhNTF9EVERfQ09OVEVOVF9FUlJPUiwKKwkJICAgIkRlZmluaXRpb24gb2YgJXMgaGFzIGR1cGxpY2F0ZSByZWZlcmVuY2VzIG9mICVzXG4iLAorCQkJCSAgICAgICBlbGVtLT5uYW1lLCBuYW1lLCBOVUxMKTsKKwkJCSAgICB9IGVsc2UgeworCQkJCXhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZWxlbSwgWE1MX0RURF9DT05URU5UX0VSUk9SLAorCQkgICAiRGVmaW5pdGlvbiBvZiAlcyBoYXMgZHVwbGljYXRlIHJlZmVyZW5jZXMgb2YgJXM6JXNcbiIsCisJCQkJICAgICAgIGVsZW0tPm5hbWUsIGN1ci0+YzEtPnByZWZpeCwgbmFtZSk7CisJCQkgICAgfQorCQkJICAgIHJldCA9IDA7CisJCQl9CisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGlmIChuZXh0LT5jMSA9PSBOVUxMKSBicmVhazsKKwkJICAgIGlmIChuZXh0LT5jMS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQpIGJyZWFrOworCQkgICAgaWYgKCh4bWxTdHJFcXVhbChuZXh0LT5jMS0+bmFtZSwgbmFtZSkpICYmCisJCSAgICAgICAgKHhtbFN0ckVxdWFsKG5leHQtPmMxLT5wcmVmaXgsIGN1ci0+YzEtPnByZWZpeCkpKSB7CisJCQlpZiAoY3VyLT5jMS0+cHJlZml4ID09IE5VTEwpIHsKKwkJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGVsZW0sIFhNTF9EVERfQ09OVEVOVF9FUlJPUiwKKwkgICAgICAgIkRlZmluaXRpb24gb2YgJXMgaGFzIGR1cGxpY2F0ZSByZWZlcmVuY2VzIHRvICVzXG4iLAorCQkJCSAgIGVsZW0tPm5hbWUsIG5hbWUsIE5VTEwpOworCQkJfSBlbHNlIHsKKwkJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGVsZW0sIFhNTF9EVERfQ09OVEVOVF9FUlJPUiwKKwkgICAgICAgIkRlZmluaXRpb24gb2YgJXMgaGFzIGR1cGxpY2F0ZSByZWZlcmVuY2VzIHRvICVzOiVzXG4iLAorCQkJCSAgIGVsZW0tPm5hbWUsIGN1ci0+YzEtPnByZWZpeCwgbmFtZSk7CisJCQl9CisJCQlyZXQgPSAwOworCQkgICAgfQorCQkgICAgbmV4dCA9IG5leHQtPmMyOworCQl9CisJICAgIH0KKwkgICAgY3VyID0gY3VyLT5jMjsKKwl9CisgICAgfQorCisgICAgLyogVkM6IFVuaXF1ZSBFbGVtZW50IFR5cGUgRGVjbGFyYXRpb24gKi8KKyAgICB0c3QgPSB4bWxHZXREdGRFbGVtZW50RGVzYyhkb2MtPmludFN1YnNldCwgZWxlbS0+bmFtZSk7CisgICAgaWYgKCh0c3QgIT0gTlVMTCApICYmICh0c3QgIT0gZWxlbSkgJiYKKwkoKHRzdC0+cHJlZml4ID09IGVsZW0tPnByZWZpeCkgfHwKKwkgKHhtbFN0ckVxdWFsKHRzdC0+cHJlZml4LCBlbGVtLT5wcmVmaXgpKSkgJiYKKwkodHN0LT5ldHlwZSAhPSBYTUxfRUxFTUVOVF9UWVBFX1VOREVGSU5FRCkpIHsKKwl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgKHhtbE5vZGVQdHIpIGVsZW0sIFhNTF9EVERfRUxFTV9SRURFRklORUQsCisJICAgICAgICAgICAgICAgICJSZWRlZmluaXRpb24gb2YgZWxlbWVudCAlc1xuIiwKKwkJICAgICAgIGVsZW0tPm5hbWUsIE5VTEwsIE5VTEwpOworCXJldCA9IDA7CisgICAgfQorICAgIHRzdCA9IHhtbEdldER0ZEVsZW1lbnREZXNjKGRvYy0+ZXh0U3Vic2V0LCBlbGVtLT5uYW1lKTsKKyAgICBpZiAoKHRzdCAhPSBOVUxMICkgJiYgKHRzdCAhPSBlbGVtKSAmJgorCSgodHN0LT5wcmVmaXggPT0gZWxlbS0+cHJlZml4KSB8fAorCSAoeG1sU3RyRXF1YWwodHN0LT5wcmVmaXgsIGVsZW0tPnByZWZpeCkpKSAmJgorCSh0c3QtPmV0eXBlICE9IFhNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEKSkgeworCXhtbEVyclZhbGlkTm9kZShjdHh0LCAoeG1sTm9kZVB0cikgZWxlbSwgWE1MX0RURF9FTEVNX1JFREVGSU5FRCwKKwkgICAgICAgICAgICAgICAgIlJlZGVmaW5pdGlvbiBvZiBlbGVtZW50ICVzXG4iLAorCQkgICAgICAgZWxlbS0+bmFtZSwgTlVMTCwgTlVMTCk7CisJcmV0ID0gMDsKKyAgICB9CisgICAgLyogT25lIElEIHBlciBFbGVtZW50IFR5cGUKKyAgICAgKiBhbHJlYWR5IGRvbmUgd2hlbiByZWdpc3RlcmluZyB0aGUgYXR0cmlidXRlCisgICAgaWYgKHhtbFNjYW5JREF0dHJpYnV0ZURlY2woY3R4dCwgZWxlbSkgPiAxKSB7CisJcmV0ID0gMDsKKyAgICB9ICovCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGU6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkb2M6ICBhIGRvY3VtZW50IGluc3RhbmNlCisgKiBAZWxlbTogIGFuIGVsZW1lbnQgaW5zdGFuY2UKKyAqIEBhdHRyOiAgYW4gYXR0cmlidXRlIGluc3RhbmNlCisgKiBAdmFsdWU6ICB0aGUgYXR0cmlidXRlIHZhbHVlICh3aXRob3V0IGVudGl0aWVzIHByb2Nlc3NpbmcpCisgKgorICogVHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIGF0dHJpYnV0ZSBmb3IgYW4gZWxlbWVudAorICogYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgYXMgZGVzY3JpYmVkIGJ5IHRoZQorICogWE1MLTEuMCByZWNvbW1lbmRhdGlvbjoKKyAqICAtIFsgVkM6IEF0dHJpYnV0ZSBWYWx1ZSBUeXBlIF0KKyAqICAtIFsgVkM6IEZpeGVkIEF0dHJpYnV0ZSBEZWZhdWx0IF0KKyAqICAtIFsgVkM6IEVudGl0eSBOYW1lIF0KKyAqICAtIFsgVkM6IE5hbWUgVG9rZW4gXQorICogIC0gWyBWQzogSUQgXQorICogIC0gWyBWQzogSURSRUYgXQorICogIC0gWyBWQzogRW50aXR5IE5hbWUgXQorICogIC0gWyBWQzogTm90YXRpb24gQXR0cmlidXRlcyBdCisgKgorICogVGhlIElEL0lEUkVGIHVuaXF1ZW5lc3MgYW5kIG1hdGNoaW5nIGFyZSBkb25lIHNlcGFyYXRlbHkKKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlT25lQXR0cmlidXRlKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBlbGVtLCB4bWxBdHRyUHRyIGF0dHIsIGNvbnN0IHhtbENoYXIgKnZhbHVlKSAKK3sKKyAgICB4bWxBdHRyaWJ1dGVQdHIgYXR0ckRlY2wgPSAgTlVMTDsKKyAgICBpbnQgdmFsOworICAgIGludCByZXQgPSAxOworCisgICAgQ0hFQ0tfRFREOworICAgIGlmICgoZWxlbSA9PSBOVUxMKSB8fCAoZWxlbS0+bmFtZSA9PSBOVUxMKSkgcmV0dXJuKDApOworICAgIGlmICgoYXR0ciA9PSBOVUxMKSB8fCAoYXR0ci0+bmFtZSA9PSBOVUxMKSkgcmV0dXJuKDApOworCisgICAgaWYgKChlbGVtLT5ucyAhPSBOVUxMKSAmJiAoZWxlbS0+bnMtPnByZWZpeCAhPSBOVUxMKSkgeworCXhtbENoYXIgZm5bNTBdOworCXhtbENoYXIgKmZ1bGxuYW1lOworCQorCWZ1bGxuYW1lID0geG1sQnVpbGRRTmFtZShlbGVtLT5uYW1lLCBlbGVtLT5ucy0+cHJlZml4LCBmbiwgNTApOworCWlmIChmdWxsbmFtZSA9PSBOVUxMKQorCSAgICByZXR1cm4oMCk7CisJaWYgKGF0dHItPm5zICE9IE5VTEwpIHsKKwkgICAgYXR0ckRlY2wgPSB4bWxHZXREdGRRQXR0ckRlc2MoZG9jLT5pbnRTdWJzZXQsIGZ1bGxuYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHItPm5hbWUsIGF0dHItPm5zLT5wcmVmaXgpOworCSAgICBpZiAoKGF0dHJEZWNsID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkKKwkJYXR0ckRlY2wgPSB4bWxHZXREdGRRQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsIGZ1bGxuYW1lLAorCQkJCQkgICAgICBhdHRyLT5uYW1lLCBhdHRyLT5ucy0+cHJlZml4KTsKKwl9IGVsc2UgeworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+aW50U3Vic2V0LCBmdWxsbmFtZSwgYXR0ci0+bmFtZSk7CisJICAgIGlmICgoYXR0ckRlY2wgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKQorCQlhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+ZXh0U3Vic2V0LAorCQkJCQkgICAgIGZ1bGxuYW1lLCBhdHRyLT5uYW1lKTsKKwl9CisJaWYgKChmdWxsbmFtZSAhPSBmbikgJiYgKGZ1bGxuYW1lICE9IGVsZW0tPm5hbWUpKQorCSAgICB4bWxGcmVlKGZ1bGxuYW1lKTsKKyAgICB9CisgICAgaWYgKGF0dHJEZWNsID09IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgIT0gTlVMTCkgeworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZFFBdHRyRGVzYyhkb2MtPmludFN1YnNldCwgZWxlbS0+bmFtZSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyLT5uYW1lLCBhdHRyLT5ucy0+cHJlZml4KTsKKwkgICAgaWYgKChhdHRyRGVjbCA9PSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkpCisJCWF0dHJEZWNsID0geG1sR2V0RHRkUUF0dHJEZXNjKGRvYy0+ZXh0U3Vic2V0LCBlbGVtLT5uYW1lLAorCQkJCQkgICAgICBhdHRyLT5uYW1lLCBhdHRyLT5ucy0+cHJlZml4KTsKKwl9IGVsc2UgeworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+aW50U3Vic2V0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbS0+bmFtZSwgYXR0ci0+bmFtZSk7CisJICAgIGlmICgoYXR0ckRlY2wgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKQorCQlhdHRyRGVjbCA9IHhtbEdldER0ZEF0dHJEZXNjKGRvYy0+ZXh0U3Vic2V0LAorCQkJCQkgICAgIGVsZW0tPm5hbWUsIGF0dHItPm5hbWUpOworCX0KKyAgICB9CisKKworICAgIC8qIFZhbGlkaXR5IENvbnN0cmFpbnQ6IEF0dHJpYnV0ZSBWYWx1ZSBUeXBlICovCisgICAgaWYgKGF0dHJEZWNsID09IE5VTEwpIHsKKwl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9VTktOT1dOX0FUVFJJQlVURSwKKwkgICAgICAgIk5vIGRlY2xhcmF0aW9uIGZvciBhdHRyaWJ1dGUgJXMgb2YgZWxlbWVudCAlc1xuIiwKKwkgICAgICAgYXR0ci0+bmFtZSwgZWxlbS0+bmFtZSwgTlVMTCk7CisJcmV0dXJuKDApOworICAgIH0KKyAgICBhdHRyLT5hdHlwZSA9IGF0dHJEZWNsLT5hdHlwZTsKKworICAgIHZhbCA9IHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWVJbnRlcm5hbChkb2MsIGF0dHJEZWNsLT5hdHlwZSwgdmFsdWUpOworICAgIGlmICh2YWwgPT0gMCkgeworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9BVFRSSUJVVEVfVkFMVUUsCisJICAgIlN5bnRheCBvZiB2YWx1ZSBmb3IgYXR0cmlidXRlICVzIG9mICVzIGlzIG5vdCB2YWxpZFxuIiwKKwkgICAgICAgYXR0ci0+bmFtZSwgZWxlbS0+bmFtZSwgTlVMTCk7CisgICAgICAgIHJldCA9IDA7CisgICAgfQorCisgICAgLyogVmFsaWRpdHkgY29uc3RyYWludDogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgKi8KKyAgICBpZiAoYXR0ckRlY2wtPmRlZiA9PSBYTUxfQVRUUklCVVRFX0ZJWEVEKSB7CisJaWYgKCF4bWxTdHJFcXVhbCh2YWx1ZSwgYXR0ckRlY2wtPmRlZmF1bHRWYWx1ZSkpIHsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfQVRUUklCVVRFX0RFRkFVTFQsCisJICAgIlZhbHVlIGZvciBhdHRyaWJ1dGUgJXMgb2YgJXMgaXMgZGlmZmVyZW50IGZyb20gZGVmYXVsdCBcIiVzXCJcbiIsCisJCSAgIGF0dHItPm5hbWUsIGVsZW0tPm5hbWUsIGF0dHJEZWNsLT5kZWZhdWx0VmFsdWUpOworCSAgICByZXQgPSAwOworCX0KKyAgICB9CisKKyAgICAvKiBWYWxpZGl0eSBDb25zdHJhaW50OiBJRCB1bmlxdWVuZXNzICovCisgICAgaWYgKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEKSB7CisgICAgICAgIGlmICh4bWxBZGRJRChjdHh0LCBkb2MsIHZhbHVlLCBhdHRyKSA9PSBOVUxMKQorCSAgICByZXQgPSAwOworICAgIH0KKworICAgIGlmICgoYXR0ckRlY2wtPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfSURSRUYpIHx8CisJKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEUkVGUykpIHsKKyAgICAgICAgaWYgKHhtbEFkZFJlZihjdHh0LCBkb2MsIHZhbHVlLCBhdHRyKSA9PSBOVUxMKQorCSAgICByZXQgPSAwOworICAgIH0KKworICAgIC8qIFZhbGlkaXR5IENvbnN0cmFpbnQ6IE5vdGF0aW9uIEF0dHJpYnV0ZXMgKi8KKyAgICBpZiAoYXR0ckRlY2wtPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfTk9UQVRJT04pIHsKKyAgICAgICAgeG1sRW51bWVyYXRpb25QdHIgdHJlZSA9IGF0dHJEZWNsLT50cmVlOworICAgICAgICB4bWxOb3RhdGlvblB0ciBub3RhOworCisgICAgICAgIC8qIEZpcnN0IGNoZWNrIHRoYXQgdGhlIGdpdmVuIE5PVEFUSU9OIHdhcyBkZWNsYXJlZCAqLworCW5vdGEgPSB4bWxHZXREdGROb3RhdGlvbkRlc2MoZG9jLT5pbnRTdWJzZXQsIHZhbHVlKTsKKwlpZiAobm90YSA9PSBOVUxMKQorCSAgICBub3RhID0geG1sR2V0RHRkTm90YXRpb25EZXNjKGRvYy0+ZXh0U3Vic2V0LCB2YWx1ZSk7CisJCisJaWYgKG5vdGEgPT0gTlVMTCkgeworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9VTktOT1dOX05PVEFUSU9OLAorICAgICAgICJWYWx1ZSBcIiVzXCIgZm9yIGF0dHJpYnV0ZSAlcyBvZiAlcyBpcyBub3QgYSBkZWNsYXJlZCBOb3RhdGlvblxuIiwKKwkJICAgdmFsdWUsIGF0dHItPm5hbWUsIGVsZW0tPm5hbWUpOworCSAgICByZXQgPSAwOworICAgICAgICB9CisKKwkvKiBTZWNvbmQsIHZlcmlmeSB0aGF0IGl0J3MgYW1vbmcgdGhlIGxpc3QgKi8KKwl3aGlsZSAodHJlZSAhPSBOVUxMKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbCh0cmVlLT5uYW1lLCB2YWx1ZSkpIGJyZWFrOworCSAgICB0cmVlID0gdHJlZS0+bmV4dDsKKwl9CisJaWYgKHRyZWUgPT0gTlVMTCkgeworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9OT1RBVElPTl9WQUxVRSwKKyJWYWx1ZSBcIiVzXCIgZm9yIGF0dHJpYnV0ZSAlcyBvZiAlcyBpcyBub3QgYW1vbmcgdGhlIGVudW1lcmF0ZWQgbm90YXRpb25zXG4iLAorCQkgICB2YWx1ZSwgYXR0ci0+bmFtZSwgZWxlbS0+bmFtZSk7CisJICAgIHJldCA9IDA7CisJfQorICAgIH0KKworICAgIC8qIFZhbGlkaXR5IENvbnN0cmFpbnQ6IEVudW1lcmF0aW9uICovCisgICAgaWYgKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0VOVU1FUkFUSU9OKSB7CisgICAgICAgIHhtbEVudW1lcmF0aW9uUHRyIHRyZWUgPSBhdHRyRGVjbC0+dHJlZTsKKwl3aGlsZSAodHJlZSAhPSBOVUxMKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbCh0cmVlLT5uYW1lLCB2YWx1ZSkpIGJyZWFrOworCSAgICB0cmVlID0gdHJlZS0+bmV4dDsKKwl9CisJaWYgKHRyZWUgPT0gTlVMTCkgeworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9BVFRSSUJVVEVfVkFMVUUsCisgICAgICAgIlZhbHVlIFwiJXNcIiBmb3IgYXR0cmlidXRlICVzIG9mICVzIGlzIG5vdCBhbW9uZyB0aGUgZW51bWVyYXRlZCBzZXRcbiIsCisJCSAgIHZhbHVlLCBhdHRyLT5uYW1lLCBlbGVtLT5uYW1lKTsKKwkgICAgcmV0ID0gMDsKKwl9CisgICAgfQorCisgICAgLyogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgKi8KKyAgICBpZiAoKGF0dHJEZWNsLT5kZWYgPT0gWE1MX0FUVFJJQlVURV9GSVhFRCkgJiYKKyAgICAgICAgKCF4bWxTdHJFcXVhbChhdHRyRGVjbC0+ZGVmYXVsdFZhbHVlLCB2YWx1ZSkpKSB7CisJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfQVRUUklCVVRFX1ZBTFVFLAorCSAgICJWYWx1ZSBmb3IgYXR0cmlidXRlICVzIG9mICVzIG11c3QgYmUgXCIlc1wiXG4iLAorCSAgICAgICBhdHRyLT5uYW1lLCBlbGVtLT5uYW1lLCBhdHRyRGVjbC0+ZGVmYXVsdFZhbHVlKTsKKyAgICAgICAgcmV0ID0gMDsKKyAgICB9CisKKyAgICAvKiBFeHRyYSBjaGVjayBmb3IgdGhlIGF0dHJpYnV0ZSB2YWx1ZSAqLworICAgIHJldCAmPSB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlMihjdHh0LCBkb2MsIGF0dHItPm5hbWUsCisJCQkJICAgICAgYXR0ckRlY2wtPmF0eXBlLCB2YWx1ZSk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZToKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBpbnN0YW5jZQorICogQHByZWZpeDogIHRoZSBuYW1lc3BhY2UgcHJlZml4CisgKiBAbnM6ICBhbiBuYW1lc3BhY2UgZGVjbGFyYXRpb24gaW5zdGFuY2UKKyAqIEB2YWx1ZTogIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKHdpdGhvdXQgZW50aXRpZXMgcHJvY2Vzc2luZykKKyAqCisgKiBUcnkgdG8gdmFsaWRhdGUgYSBzaW5nbGUgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGZvciBhbiBlbGVtZW50CisgKiBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBhcyBkZXNjcmliZWQgYnkgdGhlCisgKiBYTUwtMS4wIHJlY29tbWVuZGF0aW9uOgorICogIC0gWyBWQzogQXR0cmlidXRlIFZhbHVlIFR5cGUgXQorICogIC0gWyBWQzogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgXQorICogIC0gWyBWQzogRW50aXR5IE5hbWUgXQorICogIC0gWyBWQzogTmFtZSBUb2tlbiBdCisgKiAgLSBbIFZDOiBJRCBdCisgKiAgLSBbIFZDOiBJRFJFRiBdCisgKiAgLSBbIFZDOiBFbnRpdHkgTmFtZSBdCisgKiAgLSBbIFZDOiBOb3RhdGlvbiBBdHRyaWJ1dGVzIF0KKyAqCisgKiBUaGUgSUQvSURSRUYgdW5pcXVlbmVzcyBhbmQgbWF0Y2hpbmcgYXJlIGRvbmUgc2VwYXJhdGVseQorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCisKK2ludAoreG1sVmFsaWRhdGVPbmVOYW1lc3BhY2UoeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MsCit4bWxOb2RlUHRyIGVsZW0sIGNvbnN0IHhtbENoYXIgKnByZWZpeCwgeG1sTnNQdHIgbnMsIGNvbnN0IHhtbENoYXIgKnZhbHVlKSB7CisgICAgLyogeG1sRWxlbWVudFB0ciBlbGVtRGVjbDsgKi8KKyAgICB4bWxBdHRyaWJ1dGVQdHIgYXR0ckRlY2wgPSAgTlVMTDsKKyAgICBpbnQgdmFsOworICAgIGludCByZXQgPSAxOworCisgICAgQ0hFQ0tfRFREOworICAgIGlmICgoZWxlbSA9PSBOVUxMKSB8fCAoZWxlbS0+bmFtZSA9PSBOVUxMKSkgcmV0dXJuKDApOworICAgIGlmICgobnMgPT0gTlVMTCkgfHwgKG5zLT5ocmVmID09IE5VTEwpKSByZXR1cm4oMCk7CisKKyAgICBpZiAocHJlZml4ICE9IE5VTEwpIHsKKwl4bWxDaGFyIGZuWzUwXTsKKwl4bWxDaGFyICpmdWxsbmFtZTsKKwkKKwlmdWxsbmFtZSA9IHhtbEJ1aWxkUU5hbWUoZWxlbS0+bmFtZSwgcHJlZml4LCBmbiwgNTApOworCWlmIChmdWxsbmFtZSA9PSBOVUxMKSB7CisJICAgIHhtbFZFcnJNZW1vcnkoY3R4dCwgIlZhbGlkYXRpbmcgbmFtZXNwYWNlIik7CisJICAgIHJldHVybigwKTsKKwl9CisJaWYgKG5zLT5wcmVmaXggIT0gTlVMTCkgeworCSAgICBhdHRyRGVjbCA9IHhtbEdldER0ZFFBdHRyRGVzYyhkb2MtPmludFN1YnNldCwgZnVsbG5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgbnMtPnByZWZpeCwgQkFEX0NBU1QgInhtbG5zIik7CisJICAgIGlmICgoYXR0ckRlY2wgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKQorCQlhdHRyRGVjbCA9IHhtbEdldER0ZFFBdHRyRGVzYyhkb2MtPmV4dFN1YnNldCwgZnVsbG5hbWUsCisJCQkJCSAgbnMtPnByZWZpeCwgQkFEX0NBU1QgInhtbG5zIik7CisJfSBlbHNlIHsKKwkgICAgYXR0ckRlY2wgPSB4bWxHZXREdGRBdHRyRGVzYyhkb2MtPmludFN1YnNldCwgZnVsbG5hbWUsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAieG1sbnMiKTsKKwkgICAgaWYgKChhdHRyRGVjbCA9PSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkpCisJCWF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsIGZ1bGxuYW1lLAorCQkJICAgICAgICAgICAgICAgICBCQURfQ0FTVCAieG1sbnMiKTsKKwl9CisJaWYgKChmdWxsbmFtZSAhPSBmbikgJiYgKGZ1bGxuYW1lICE9IGVsZW0tPm5hbWUpKQorCSAgICB4bWxGcmVlKGZ1bGxuYW1lKTsKKyAgICB9CisgICAgaWYgKGF0dHJEZWNsID09IE5VTEwpIHsKKwlpZiAobnMtPnByZWZpeCAhPSBOVUxMKSB7CisJICAgIGF0dHJEZWNsID0geG1sR2V0RHRkUUF0dHJEZXNjKGRvYy0+aW50U3Vic2V0LCBlbGVtLT5uYW1lLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgIG5zLT5wcmVmaXgsIEJBRF9DQVNUICJ4bWxucyIpOworCSAgICBpZiAoKGF0dHJEZWNsID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkKKwkJYXR0ckRlY2wgPSB4bWxHZXREdGRRQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsIGVsZW0tPm5hbWUsCisJCQkJCSAgICAgIG5zLT5wcmVmaXgsIEJBRF9DQVNUICJ4bWxucyIpOworCX0gZWxzZSB7CisJICAgIGF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5pbnRTdWJzZXQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLT5uYW1lLCBCQURfQ0FTVCAieG1sbnMiKTsKKwkgICAgaWYgKChhdHRyRGVjbCA9PSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkpCisJCWF0dHJEZWNsID0geG1sR2V0RHRkQXR0ckRlc2MoZG9jLT5leHRTdWJzZXQsCisJCQkJCSAgICAgZWxlbS0+bmFtZSwgQkFEX0NBU1QgInhtbG5zIik7CisJfQorICAgIH0KKworCisgICAgLyogVmFsaWRpdHkgQ29uc3RyYWludDogQXR0cmlidXRlIFZhbHVlIFR5cGUgKi8KKyAgICBpZiAoYXR0ckRlY2wgPT0gTlVMTCkgeworCWlmIChucy0+cHJlZml4ICE9IE5VTEwpIHsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfVU5LTk9XTl9BVFRSSUJVVEUsCisJCSAgICJObyBkZWNsYXJhdGlvbiBmb3IgYXR0cmlidXRlIHhtbG5zOiVzIG9mIGVsZW1lbnQgJXNcbiIsCisJCSAgIG5zLT5wcmVmaXgsIGVsZW0tPm5hbWUsIE5VTEwpOworCX0gZWxzZSB7CisJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRFREX1VOS05PV05fQVRUUklCVVRFLAorCQkgICAiTm8gZGVjbGFyYXRpb24gZm9yIGF0dHJpYnV0ZSB4bWxucyBvZiBlbGVtZW50ICVzXG4iLAorCQkgICBlbGVtLT5uYW1lLCBOVUxMLCBOVUxMKTsKKwl9CisJcmV0dXJuKDApOworICAgIH0KKworICAgIHZhbCA9IHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWVJbnRlcm5hbChkb2MsIGF0dHJEZWNsLT5hdHlwZSwgdmFsdWUpOworICAgIGlmICh2YWwgPT0gMCkgeworCWlmIChucy0+cHJlZml4ICE9IE5VTEwpIHsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfSU5WQUxJRF9ERUZBVUxULAorCSAgICAgICAiU3ludGF4IG9mIHZhbHVlIGZvciBhdHRyaWJ1dGUgeG1sbnM6JXMgb2YgJXMgaXMgbm90IHZhbGlkXG4iLAorCQkgICBucy0+cHJlZml4LCBlbGVtLT5uYW1lLCBOVUxMKTsKKwl9IGVsc2UgeworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9JTlZBTElEX0RFRkFVTFQsCisJICAgICAgICJTeW50YXggb2YgdmFsdWUgZm9yIGF0dHJpYnV0ZSB4bWxucyBvZiAlcyBpcyBub3QgdmFsaWRcbiIsCisJCSAgIGVsZW0tPm5hbWUsIE5VTEwsIE5VTEwpOworCX0KKyAgICAgICAgcmV0ID0gMDsKKyAgICB9CisKKyAgICAvKiBWYWxpZGl0eSBjb25zdHJhaW50OiBGaXhlZCBBdHRyaWJ1dGUgRGVmYXVsdCAqLworICAgIGlmIChhdHRyRGVjbC0+ZGVmID09IFhNTF9BVFRSSUJVVEVfRklYRUQpIHsKKwlpZiAoIXhtbFN0ckVxdWFsKHZhbHVlLCBhdHRyRGVjbC0+ZGVmYXVsdFZhbHVlKSkgeworCSAgICBpZiAobnMtPnByZWZpeCAhPSBOVUxMKSB7CisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRFREX0FUVFJJQlVURV9ERUZBVUxULAorICAgICAgICJWYWx1ZSBmb3IgYXR0cmlidXRlIHhtbG5zOiVzIG9mICVzIGlzIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQgXCIlc1wiXG4iLAorCQkgICAgICAgbnMtPnByZWZpeCwgZWxlbS0+bmFtZSwgYXR0ckRlY2wtPmRlZmF1bHRWYWx1ZSk7CisJICAgIH0gZWxzZSB7CisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRFREX0FUVFJJQlVURV9ERUZBVUxULAorICAgICAgICJWYWx1ZSBmb3IgYXR0cmlidXRlIHhtbG5zIG9mICVzIGlzIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQgXCIlc1wiXG4iLAorCQkgICAgICAgZWxlbS0+bmFtZSwgYXR0ckRlY2wtPmRlZmF1bHRWYWx1ZSwgTlVMTCk7CisJICAgIH0KKwkgICAgcmV0ID0gMDsKKwl9CisgICAgfQorCisgICAgLyogVmFsaWRpdHkgQ29uc3RyYWludDogSUQgdW5pcXVlbmVzcyAqLworICAgIGlmIChhdHRyRGVjbC0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9JRCkgeworICAgICAgICBpZiAoeG1sQWRkSUQoY3R4dCwgZG9jLCB2YWx1ZSwgKHhtbEF0dHJQdHIpIG5zKSA9PSBOVUxMKQorCSAgICByZXQgPSAwOworICAgIH0KKworICAgIGlmICgoYXR0ckRlY2wtPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfSURSRUYpIHx8CisJKGF0dHJEZWNsLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEUkVGUykpIHsKKyAgICAgICAgaWYgKHhtbEFkZFJlZihjdHh0LCBkb2MsIHZhbHVlLCAoeG1sQXR0clB0cikgbnMpID09IE5VTEwpCisJICAgIHJldCA9IDA7CisgICAgfQorCisgICAgLyogVmFsaWRpdHkgQ29uc3RyYWludDogTm90YXRpb24gQXR0cmlidXRlcyAqLworICAgIGlmIChhdHRyRGVjbC0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT1RBVElPTikgeworICAgICAgICB4bWxFbnVtZXJhdGlvblB0ciB0cmVlID0gYXR0ckRlY2wtPnRyZWU7CisgICAgICAgIHhtbE5vdGF0aW9uUHRyIG5vdGE7CisKKyAgICAgICAgLyogRmlyc3QgY2hlY2sgdGhhdCB0aGUgZ2l2ZW4gTk9UQVRJT04gd2FzIGRlY2xhcmVkICovCisJbm90YSA9IHhtbEdldER0ZE5vdGF0aW9uRGVzYyhkb2MtPmludFN1YnNldCwgdmFsdWUpOworCWlmIChub3RhID09IE5VTEwpCisJICAgIG5vdGEgPSB4bWxHZXREdGROb3RhdGlvbkRlc2MoZG9jLT5leHRTdWJzZXQsIHZhbHVlKTsKKwkKKwlpZiAobm90YSA9PSBOVUxMKSB7CisJICAgIGlmIChucy0+cHJlZml4ICE9IE5VTEwpIHsKKwkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfVU5LTk9XTl9OT1RBVElPTiwKKyAgICAgICAiVmFsdWUgXCIlc1wiIGZvciBhdHRyaWJ1dGUgeG1sbnM6JXMgb2YgJXMgaXMgbm90IGEgZGVjbGFyZWQgTm90YXRpb25cbiIsCisJCSAgICAgICB2YWx1ZSwgbnMtPnByZWZpeCwgZWxlbS0+bmFtZSk7CisJICAgIH0gZWxzZSB7CisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRFREX1VOS05PV05fTk9UQVRJT04sCisgICAgICAgIlZhbHVlIFwiJXNcIiBmb3IgYXR0cmlidXRlIHhtbG5zIG9mICVzIGlzIG5vdCBhIGRlY2xhcmVkIE5vdGF0aW9uXG4iLAorCQkgICAgICAgdmFsdWUsIGVsZW0tPm5hbWUsIE5VTEwpOworCSAgICB9CisJICAgIHJldCA9IDA7CisgICAgICAgIH0KKworCS8qIFNlY29uZCwgdmVyaWZ5IHRoYXQgaXQncyBhbW9uZyB0aGUgbGlzdCAqLworCXdoaWxlICh0cmVlICE9IE5VTEwpIHsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKHRyZWUtPm5hbWUsIHZhbHVlKSkgYnJlYWs7CisJICAgIHRyZWUgPSB0cmVlLT5uZXh0OworCX0KKwlpZiAodHJlZSA9PSBOVUxMKSB7CisJICAgIGlmIChucy0+cHJlZml4ICE9IE5VTEwpIHsKKwkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfTk9UQVRJT05fVkFMVUUsCisiVmFsdWUgXCIlc1wiIGZvciBhdHRyaWJ1dGUgeG1sbnM6JXMgb2YgJXMgaXMgbm90IGFtb25nIHRoZSBlbnVtZXJhdGVkIG5vdGF0aW9uc1xuIiwKKwkJICAgICAgIHZhbHVlLCBucy0+cHJlZml4LCBlbGVtLT5uYW1lKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfTk9UQVRJT05fVkFMVUUsCisiVmFsdWUgXCIlc1wiIGZvciBhdHRyaWJ1dGUgeG1sbnMgb2YgJXMgaXMgbm90IGFtb25nIHRoZSBlbnVtZXJhdGVkIG5vdGF0aW9uc1xuIiwKKwkJICAgICAgIHZhbHVlLCBlbGVtLT5uYW1lLCBOVUxMKTsKKwkgICAgfQorCSAgICByZXQgPSAwOworCX0KKyAgICB9CisKKyAgICAvKiBWYWxpZGl0eSBDb25zdHJhaW50OiBFbnVtZXJhdGlvbiAqLworICAgIGlmIChhdHRyRGVjbC0+YXR5cGUgPT0gWE1MX0FUVFJJQlVURV9FTlVNRVJBVElPTikgeworICAgICAgICB4bWxFbnVtZXJhdGlvblB0ciB0cmVlID0gYXR0ckRlY2wtPnRyZWU7CisJd2hpbGUgKHRyZWUgIT0gTlVMTCkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwodHJlZS0+bmFtZSwgdmFsdWUpKSBicmVhazsKKwkgICAgdHJlZSA9IHRyZWUtPm5leHQ7CisJfQorCWlmICh0cmVlID09IE5VTEwpIHsKKwkgICAgaWYgKG5zLT5wcmVmaXggIT0gTlVMTCkgeworCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9BVFRSSUJVVEVfVkFMVUUsCisiVmFsdWUgXCIlc1wiIGZvciBhdHRyaWJ1dGUgeG1sbnM6JXMgb2YgJXMgaXMgbm90IGFtb25nIHRoZSBlbnVtZXJhdGVkIHNldFxuIiwKKwkJICAgICAgIHZhbHVlLCBucy0+cHJlZml4LCBlbGVtLT5uYW1lKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfQVRUUklCVVRFX1ZBTFVFLAorIlZhbHVlIFwiJXNcIiBmb3IgYXR0cmlidXRlIHhtbG5zIG9mICVzIGlzIG5vdCBhbW9uZyB0aGUgZW51bWVyYXRlZCBzZXRcbiIsCisJCSAgICAgICB2YWx1ZSwgZWxlbS0+bmFtZSwgTlVMTCk7CisJICAgIH0KKwkgICAgcmV0ID0gMDsKKwl9CisgICAgfQorCisgICAgLyogRml4ZWQgQXR0cmlidXRlIERlZmF1bHQgKi8KKyAgICBpZiAoKGF0dHJEZWNsLT5kZWYgPT0gWE1MX0FUVFJJQlVURV9GSVhFRCkgJiYKKyAgICAgICAgKCF4bWxTdHJFcXVhbChhdHRyRGVjbC0+ZGVmYXVsdFZhbHVlLCB2YWx1ZSkpKSB7CisJaWYgKG5zLT5wcmVmaXggIT0gTlVMTCkgeworCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9FTEVNX05BTUVTUEFDRSwKKwkJICAgIlZhbHVlIGZvciBhdHRyaWJ1dGUgeG1sbnM6JXMgb2YgJXMgbXVzdCBiZSBcIiVzXCJcbiIsCisJCSAgIG5zLT5wcmVmaXgsIGVsZW0tPm5hbWUsIGF0dHJEZWNsLT5kZWZhdWx0VmFsdWUpOworCX0gZWxzZSB7CisJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRFREX0VMRU1fTkFNRVNQQUNFLAorCQkgICAiVmFsdWUgZm9yIGF0dHJpYnV0ZSB4bWxucyBvZiAlcyBtdXN0IGJlIFwiJXNcIlxuIiwKKwkJICAgZWxlbS0+bmFtZSwgYXR0ckRlY2wtPmRlZmF1bHRWYWx1ZSwgTlVMTCk7CisJfQorICAgICAgICByZXQgPSAwOworICAgIH0KKworICAgIC8qIEV4dHJhIGNoZWNrIGZvciB0aGUgYXR0cmlidXRlIHZhbHVlICovCisgICAgaWYgKG5zLT5wcmVmaXggIT0gTlVMTCkgeworCXJldCAmPSB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlMihjdHh0LCBkb2MsIG5zLT5wcmVmaXgsCisJCQkJCSAgYXR0ckRlY2wtPmF0eXBlLCB2YWx1ZSk7CisgICAgfSBlbHNlIHsKKwlyZXQgJj0geG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZTIoY3R4dCwgZG9jLCBCQURfQ0FTVCAieG1sbnMiLAorCQkJCQkgIGF0dHJEZWNsLT5hdHlwZSwgdmFsdWUpOworICAgIH0KKworICAgIHJldHVybihyZXQpOworfQorCisjaWZuZGVmICBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKKy8qKgorICogeG1sVmFsaWRhdGVTa2lwSWdub3JhYmxlOgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAY2hpbGQ6ICB0aGUgY2hpbGQgbGlzdAorICoKKyAqIFNraXAgaWdub3JhYmxlIGVsZW1lbnRzIHcuci50LiB0aGUgdmFsaWRhdGlvbiBwcm9jZXNzCisgKgorICogcmV0dXJucyB0aGUgZmlyc3QgZWxlbWVudCB0byBjb25zaWRlciBmb3IgdmFsaWRhdGlvbiBvZiB0aGUgY29udGVudCBtb2RlbAorICovCisKK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxWYWxpZGF0ZVNraXBJZ25vcmFibGUoeG1sTm9kZVB0ciBjaGlsZCkgeworICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisJc3dpdGNoIChjaGlsZC0+dHlwZSkgeworCSAgICAvKiBUaGVzZSB0aGluZ3MgYXJlIGlnbm9yZWQgKHNraXBwZWQpIGR1cmluZyB2YWxpZGF0aW9uLiAgKi8KKwkgICAgY2FzZSBYTUxfUElfTk9ERToKKwkgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICBjYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwkgICAgY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorCQljaGlsZCA9IGNoaWxkLT5uZXh0OworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorCQlpZiAoeG1sSXNCbGFua05vZGUoY2hpbGQpKQorCQkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwkJZWxzZQorCQkgICAgcmV0dXJuKGNoaWxkKTsKKwkJYnJlYWs7CisJICAgIC8qIGtlZXAgY3VycmVudCBub2RlICovCisJICAgIGRlZmF1bHQ6CisJCXJldHVybihjaGlsZCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oY2hpbGQpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlRWxlbWVudFR5cGU6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqCisgKiBUcnkgdG8gdmFsaWRhdGUgdGhlIGNvbnRlbnQgbW9kZWwgb2YgYW4gZWxlbWVudCBpbnRlcm5hbCBmdW5jdGlvbgorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwICwtMSBpbiBjYXNlIG9mIGVycm9yLCAtMiBpZiBhbiBlbnRpdHkKKyAqICAgICAgICAgICByZWZlcmVuY2UgaXMgZm91bmQgYW5kIC0zIGlmIHRoZSB2YWxpZGF0aW9uIHN1Y2NlZWRlZCBidXQKKyAqICAgICAgICAgICB0aGUgY29udGVudCBtb2RlbCBpcyBub3QgZGV0ZXJtaW5pc3QuCisgKi8KKworc3RhdGljIGludAoreG1sVmFsaWRhdGVFbGVtZW50VHlwZSh4bWxWYWxpZEN0eHRQdHIgY3R4dCkgeworICAgIGludCByZXQgPSAtMTsKKyAgICBpbnQgZGV0ZXJtaW5pc3QgPSAxOworCisgICAgTk9ERSA9IHhtbFZhbGlkYXRlU2tpcElnbm9yYWJsZShOT0RFKTsKKyAgICBpZiAoKE5PREUgPT0gTlVMTCkgJiYgKENPTlQgPT0gTlVMTCkpCisJcmV0dXJuKDEpOworICAgIGlmICgoTk9ERSA9PSBOVUxMKSAmJiAKKwkoKENPTlQtPm9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9NVUxUKSB8fAorCSAoQ09OVC0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09QVCkpKSB7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICBpZiAoQ09OVCA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmICgoTk9ERSAhPSBOVUxMKSAmJiAoTk9ERS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSkKKwlyZXR1cm4oLTIpOworCisgICAgLyoKKyAgICAgKiBXZSBhcnJpdmUgaGVyZSB3aGVuIG1vcmUgc3RhdGVzIG5lZWQgdG8gYmUgZXhhbWluZWQKKyAgICAgKi8KK2NvbnQ6CisKKyAgICAvKgorICAgICAqIFdlIGp1c3QgcmVjb3ZlcmVkIGZyb20gYSByb2xsYmFjayBnZW5lcmF0ZWQgYnkgYSBwb3NzaWJsZQorICAgICAqIGVwc2lsb24gdHJhbnNpdGlvbiwgZ28gZGlyZWN0bHkgdG8gdGhlIGFuYWx5c2lzIHBoYXNlCisgICAgICovCisgICAgaWYgKFNUQVRFID09IFJPTExCQUNLX1BBUkVOVCkgeworCURFQlVHX1ZBTElEX01TRygicmVzdG9yZWQgcGFyZW50IGJyYW5jaCIpOworCURFQlVHX1ZBTElEX1NUQVRFKE5PREUsIENPTlQpCisJcmV0ID0gMTsKKwlnb3RvIGFuYWx5emU7CisgICAgfQorCisgICAgREVCVUdfVkFMSURfU1RBVEUoTk9ERSwgQ09OVCkKKyAgICAvKgorICAgICAqIHdlIG1heSBoYXZlIHRvIHNhdmUgYSBiYWNrdXAgc3RhdGUgaGVyZS4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudAorICAgICAqIG9mIGhhbmRsaW5nIGVwc2lsb24gdHJhbnNpdGlvbiBpbiBORkFzLgorICAgICAqLworICAgIGlmICgoQ09OVCAhPSBOVUxMKSAmJgorCSgoQ09OVC0+cGFyZW50ID09IE5VTEwpIHx8CisJIChDT05ULT5wYXJlbnQtPnR5cGUgIT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikpICYmCisJKChDT05ULT5vY3VyID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVCkgfHwKKwkgKENPTlQtPm9jdXIgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQpIHx8CisJICgoQ09OVC0+b2N1ciA9PSBYTUxfRUxFTUVOVF9DT05URU5UX1BMVVMpICYmIChPQ0NVUlJFTkNFKSkpKSB7CisJREVCVUdfVkFMSURfTVNHKCJzYXZpbmcgcGFyZW50IGJyYW5jaCIpOworCWlmICh2c3RhdGVWUHVzaChjdHh0LCBDT05ULCBOT0RFLCBERVBUSCwgT0NDVVJTLCBST0xMQkFDS19QQVJFTlQpIDwgMCkKKwkgICAgcmV0dXJuKDApOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBDaGVjayBmaXJzdCBpZiB0aGUgY29udGVudCBtYXRjaGVzCisgICAgICovCisgICAgc3dpdGNoIChDT05ULT50eXBlKSB7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQToKKwkgICAgaWYgKE5PREUgPT0gTlVMTCkgeworCQlERUJVR19WQUxJRF9NU0coInBjZGF0YSBmYWlsZWQgbm8gbm9kZSIpOworCQlyZXQgPSAwOworCQlicmVhazsKKwkgICAgfQorCSAgICBpZiAoTk9ERS0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB7CisJCURFQlVHX1ZBTElEX01TRygicGNkYXRhIGZvdW5kLCBza2lwIHRvIG5leHQiKTsKKwkJLyoKKwkJICogZ28gdG8gbmV4dCBlbGVtZW50IGluIHRoZSBjb250ZW50IG1vZGVsCisJCSAqIHNraXBwaW5nIGlnbm9yYWJsZSBlbGVtcworCQkgKi8KKwkJZG8geworCQkgICAgTk9ERSA9IE5PREUtPm5leHQ7CisJCSAgICBOT0RFID0geG1sVmFsaWRhdGVTa2lwSWdub3JhYmxlKE5PREUpOworCQkgICAgaWYgKChOT0RFICE9IE5VTEwpICYmCisJCQkoTk9ERS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSkKKwkJCXJldHVybigtMik7CisJCX0gd2hpbGUgKChOT0RFICE9IE5VTEwpICYmCisJCQkgKChOT0RFLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisJCQkgIChOT0RFLT50eXBlICE9IFhNTF9URVhUX05PREUpICYmCisJCQkgIChOT0RFLT50eXBlICE9IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSk7CisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKwkJYnJlYWs7CisJICAgIH0gZWxzZSB7CisJCURFQlVHX1ZBTElEX01TRygicGNkYXRhIGZhaWxlZCIpOworCQlyZXQgPSAwOworCQlicmVhazsKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVDoKKwkgICAgaWYgKE5PREUgPT0gTlVMTCkgeworCQlERUJVR19WQUxJRF9NU0coImVsZW1lbnQgZmFpbGVkIG5vIG5vZGUiKTsKKwkJcmV0ID0gMDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgcmV0ID0gKChOT0RFLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJCSAgICh4bWxTdHJFcXVhbChOT0RFLT5uYW1lLCBDT05ULT5uYW1lKSkpOworCSAgICBpZiAocmV0ID09IDEpIHsKKwkJaWYgKChOT0RFLT5ucyA9PSBOVUxMKSB8fCAoTk9ERS0+bnMtPnByZWZpeCA9PSBOVUxMKSkgeworCQkgICAgcmV0ID0gKENPTlQtPnByZWZpeCA9PSBOVUxMKTsKKwkJfSBlbHNlIGlmIChDT05ULT5wcmVmaXggPT0gTlVMTCkgeworCQkgICAgcmV0ID0gMDsKKwkJfSBlbHNlIHsKKwkJICAgIHJldCA9IHhtbFN0ckVxdWFsKE5PREUtPm5zLT5wcmVmaXgsIENPTlQtPnByZWZpeCk7CisJCX0KKwkgICAgfQorCSAgICBpZiAocmV0ID09IDEpIHsKKwkJREVCVUdfVkFMSURfTVNHKCJlbGVtZW50IGZvdW5kLCBza2lwIHRvIG5leHQiKTsKKwkJLyoKKwkJICogZ28gdG8gbmV4dCBlbGVtZW50IGluIHRoZSBjb250ZW50IG1vZGVsCisJCSAqIHNraXBwaW5nIGlnbm9yYWJsZSBlbGVtcworCQkgKi8KKwkJZG8geworCQkgICAgTk9ERSA9IE5PREUtPm5leHQ7CisJCSAgICBOT0RFID0geG1sVmFsaWRhdGVTa2lwSWdub3JhYmxlKE5PREUpOworCQkgICAgaWYgKChOT0RFICE9IE5VTEwpICYmCisJCQkoTk9ERS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSkKKwkJCXJldHVybigtMik7CisJCX0gd2hpbGUgKChOT0RFICE9IE5VTEwpICYmCisJCQkgKChOT0RFLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisJCQkgIChOT0RFLT50eXBlICE9IFhNTF9URVhUX05PREUpICYmCisJCQkgIChOT0RFLT50eXBlICE9IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSk7CisJICAgIH0gZWxzZSB7CisJCURFQlVHX1ZBTElEX01TRygiZWxlbWVudCBmYWlsZWQiKTsKKwkJcmV0ID0gMDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09SOgorCSAgICAvKgorCSAgICAgKiBTbWFsbCBvcHRpbWl6YXRpb24uCisJICAgICAqLworCSAgICBpZiAoQ09OVC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKSB7CisJCWlmICgoTk9ERSA9PSBOVUxMKSB8fAorCQkgICAgKCF4bWxTdHJFcXVhbChOT0RFLT5uYW1lLCBDT05ULT5jMS0+bmFtZSkpKSB7CisJCSAgICBERVBUSCsrOworCQkgICAgQ09OVCA9IENPTlQtPmMyOworCQkgICAgZ290byBjb250OworCQl9CisJCWlmICgoTk9ERS0+bnMgPT0gTlVMTCkgfHwgKE5PREUtPm5zLT5wcmVmaXggPT0gTlVMTCkpIHsKKwkJICAgIHJldCA9IChDT05ULT5jMS0+cHJlZml4ID09IE5VTEwpOworCQl9IGVsc2UgaWYgKENPTlQtPmMxLT5wcmVmaXggPT0gTlVMTCkgeworCQkgICAgcmV0ID0gMDsKKwkJfSBlbHNlIHsKKwkJICAgIHJldCA9IHhtbFN0ckVxdWFsKE5PREUtPm5zLT5wcmVmaXgsIENPTlQtPmMxLT5wcmVmaXgpOworCQl9CisJCWlmIChyZXQgPT0gMCkgeworCQkgICAgREVQVEgrKzsKKwkJICAgIENPTlQgPSBDT05ULT5jMjsKKwkJICAgIGdvdG8gY29udDsKKwkJfQorCSAgICB9CisKKwkgICAgLyoKKwkgICAgICogc2F2ZSB0aGUgc2Vjb25kIGJyYW5jaCAnb3InIGJyYW5jaAorCSAgICAgKi8KKwkgICAgREVCVUdfVkFMSURfTVNHKCJzYXZpbmcgJ29yJyBicmFuY2giKTsKKwkgICAgaWYgKHZzdGF0ZVZQdXNoKGN0eHQsIENPTlQtPmMyLCBOT0RFLCAodW5zaWduZWQgY2hhcikoREVQVEggKyAxKSwKKwkJCSAgICBPQ0NVUlMsIFJPTExCQUNLX09SKSA8IDApCisJCXJldHVybigtMSk7CisJICAgIERFUFRIKys7CisJICAgIENPTlQgPSBDT05ULT5jMTsKKwkgICAgZ290byBjb250OworCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9TRVE6CisJICAgIC8qCisJICAgICAqIFNtYWxsIG9wdGltaXphdGlvbi4KKwkgICAgICovCisJICAgIGlmICgoQ09OVC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKSAmJgorCQkoKENPTlQtPmMxLT5vY3VyID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUKSB8fAorCQkgKENPTlQtPmMxLT5vY3VyID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVCkpKSB7CisJCWlmICgoTk9ERSA9PSBOVUxMKSB8fAorCQkgICAgKCF4bWxTdHJFcXVhbChOT0RFLT5uYW1lLCBDT05ULT5jMS0+bmFtZSkpKSB7CisJCSAgICBERVBUSCsrOworCQkgICAgQ09OVCA9IENPTlQtPmMyOworCQkgICAgZ290byBjb250OworCQl9CisJCWlmICgoTk9ERS0+bnMgPT0gTlVMTCkgfHwgKE5PREUtPm5zLT5wcmVmaXggPT0gTlVMTCkpIHsKKwkJICAgIHJldCA9IChDT05ULT5jMS0+cHJlZml4ID09IE5VTEwpOworCQl9IGVsc2UgaWYgKENPTlQtPmMxLT5wcmVmaXggPT0gTlVMTCkgeworCQkgICAgcmV0ID0gMDsKKwkJfSBlbHNlIHsKKwkJICAgIHJldCA9IHhtbFN0ckVxdWFsKE5PREUtPm5zLT5wcmVmaXgsIENPTlQtPmMxLT5wcmVmaXgpOworCQl9CisJCWlmIChyZXQgPT0gMCkgeworCQkgICAgREVQVEgrKzsKKwkJICAgIENPTlQgPSBDT05ULT5jMjsKKwkJICAgIGdvdG8gY29udDsKKwkJfQorCSAgICB9CisJICAgIERFUFRIKys7CisJICAgIENPTlQgPSBDT05ULT5jMTsKKwkgICAgZ290byBjb250OworICAgIH0KKworICAgIC8qCisgICAgICogQXQgdGhpcyBwb2ludCBoYW5kbGUgZ29pbmcgdXAgaW4gdGhlIHRyZWUKKyAgICAgKi8KKyAgICBpZiAocmV0ID09IC0xKSB7CisJREVCVUdfVkFMSURfTVNHKCJlcnJvciBmb3VuZCByZXR1cm5pbmciKTsKKwlyZXR1cm4ocmV0KTsKKyAgICB9CithbmFseXplOgorICAgIHdoaWxlIChDT05UICE9IE5VTEwpIHsKKwkvKgorCSAqIEZpcnN0IGRvIHRoZSBhbmFseXNpcyBkZXBlbmRpbmcgb24gdGhlIG9jY3VycmVuY2UgbW9kZWwgYXQKKwkgKiB0aGlzIGxldmVsLgorCSAqLworCWlmIChyZXQgPT0gMCkgeworCSAgICBzd2l0Y2ggKENPTlQtPm9jdXIpIHsKKwkJeG1sTm9kZVB0ciBjdXI7CisKKwkJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09OQ0U6CisJCSAgICBjdXIgPSBjdHh0LT52c3RhdGUtPm5vZGU7CisJCSAgICBERUJVR19WQUxJRF9NU0coIk9uY2UgYnJhbmNoIGZhaWxlZCwgcm9sbGJhY2siKTsKKwkJICAgIGlmICh2c3RhdGVWUG9wKGN0eHQpIDwgMCApIHsKKwkJCURFQlVHX1ZBTElEX01TRygiZXhoYXVzdGlvbiwgZmFpbGVkIik7CisJCQlyZXR1cm4oMCk7CisJCSAgICB9CisJCSAgICBpZiAoY3VyICE9IGN0eHQtPnZzdGF0ZS0+bm9kZSkKKwkJCWRldGVybWluaXN0ID0gLTM7CisJCSAgICBnb3RvIGNvbnQ7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9QTFVTOgorCQkgICAgaWYgKE9DQ1VSUkVOQ0UgPT0gMCkgeworCQkJY3VyID0gY3R4dC0+dnN0YXRlLT5ub2RlOworCQkJREVCVUdfVkFMSURfTVNHKCJQbHVzIGJyYW5jaCBmYWlsZWQsIHJvbGxiYWNrIik7CisJCQlpZiAodnN0YXRlVlBvcChjdHh0KSA8IDAgKSB7CisJCQkgICAgREVCVUdfVkFMSURfTVNHKCJleGhhdXN0aW9uLCBmYWlsZWQiKTsKKwkJCSAgICByZXR1cm4oMCk7CisJCQl9CisJCQlpZiAoY3VyICE9IGN0eHQtPnZzdGF0ZS0+bm9kZSkKKwkJCSAgICBkZXRlcm1pbmlzdCA9IC0zOworCQkJZ290byBjb250OworCQkgICAgfQorCQkgICAgREVCVUdfVkFMSURfTVNHKCJQbHVzIGJyYW5jaCBmb3VuZCIpOworCQkgICAgcmV0ID0gMTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVDoKKyNpZmRlZiBERUJVR19WQUxJRF9BTEdPCisJCSAgICBpZiAoT0NDVVJSRU5DRSA9PSAwKSB7CisJCQlERUJVR19WQUxJRF9NU0coIk11bHQgYnJhbmNoIGZhaWxlZCIpOworCQkgICAgfSBlbHNlIHsKKwkJCURFQlVHX1ZBTElEX01TRygiTXVsdCBicmFuY2ggZm91bmQiKTsKKwkJICAgIH0KKyNlbmRpZgorCQkgICAgcmV0ID0gMTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfT1BUOgorCQkgICAgREVCVUdfVkFMSURfTVNHKCJPcHRpb24gYnJhbmNoIGZhaWxlZCIpOworCQkgICAgcmV0ID0gMTsKKwkJICAgIGJyZWFrOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgc3dpdGNoIChDT05ULT5vY3VyKSB7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PUFQ6CisJCSAgICBERUJVR19WQUxJRF9NU0coIk9wdGlvbiBicmFuY2ggc3VjY2VlZGVkIik7CisJCSAgICByZXQgPSAxOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9PTkNFOgorCQkgICAgREVCVUdfVkFMSURfTVNHKCJPbmNlIGJyYW5jaCBzdWNjZWVkZWQiKTsKKwkJICAgIHJldCA9IDE7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1BMVVM6CisJCSAgICBpZiAoU1RBVEUgPT0gUk9MTEJBQ0tfUEFSRU5UKSB7CisJCQlERUJVR19WQUxJRF9NU0coIlBsdXMgYnJhbmNoIHJvbGxiYWNrIik7CisJCQlyZXQgPSAxOworCQkJYnJlYWs7CisJCSAgICB9CisJCSAgICBpZiAoTk9ERSA9PSBOVUxMKSB7CisJCQlERUJVR19WQUxJRF9NU0coIlBsdXMgYnJhbmNoIGV4aGF1c3RlZCIpOworCQkJcmV0ID0gMTsKKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgREVCVUdfVkFMSURfTVNHKCJQbHVzIGJyYW5jaCBzdWNjZWVkZWQsIGNvbnRpbnVpbmciKTsKKwkJICAgIFNFVF9PQ0NVUlJFTkNFOworCQkgICAgZ290byBjb250OworCQljYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfTVVMVDoKKwkJICAgIGlmIChTVEFURSA9PSBST0xMQkFDS19QQVJFTlQpIHsKKwkJCURFQlVHX1ZBTElEX01TRygiTXVsdCBicmFuY2ggcm9sbGJhY2siKTsKKwkJCXJldCA9IDE7CisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGlmIChOT0RFID09IE5VTEwpIHsKKwkJCURFQlVHX1ZBTElEX01TRygiTXVsdCBicmFuY2ggZXhoYXVzdGVkIik7CisJCQlyZXQgPSAxOworCQkJYnJlYWs7CisJCSAgICB9CisJCSAgICBERUJVR19WQUxJRF9NU0coIk11bHQgYnJhbmNoIHN1Y2NlZWRlZCwgY29udGludWluZyIpOworCQkgICAgLyogU0VUX09DQ1VSUkVOQ0U7ICovCisJCSAgICBnb3RvIGNvbnQ7CisJICAgIH0KKwl9CisJU1RBVEUgPSAwOworCisJLyoKKwkgKiBUaGVuIGFjdCBhY2NvcmRpbmdseSBhdCB0aGUgcGFyZW50IGxldmVsCisJICovCisJUkVTRVRfT0NDVVJSRU5DRTsKKwlpZiAoQ09OVC0+cGFyZW50ID09IE5VTEwpCisJICAgIGJyZWFrOworCisJc3dpdGNoIChDT05ULT5wYXJlbnQtPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQToKKwkJREVCVUdfVkFMSURfTVNHKCJFcnJvcjogcGFyZW50IHBjZGF0YSIpOworCQlyZXR1cm4oLTEpOworCSAgICBjYXNlIFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVDoKKwkJREVCVUdfVkFMSURfTVNHKCJFcnJvcjogcGFyZW50IGVsZW1lbnQiKTsKKwkJcmV0dXJuKC0xKTsKKwkgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09SOgorCQlpZiAocmV0ID09IDEpIHsKKwkJICAgIERFQlVHX1ZBTElEX01TRygiT3Igc3VjY2VlZGVkIik7CisJCSAgICBDT05UID0gQ09OVC0+cGFyZW50OworCQkgICAgREVQVEgtLTsKKwkJfSBlbHNlIHsKKwkJICAgIERFQlVHX1ZBTElEX01TRygiT3IgZmFpbGVkIik7CisJCSAgICBDT05UID0gQ09OVC0+cGFyZW50OworCQkgICAgREVQVEgtLTsKKwkJfQorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUToKKwkJaWYgKHJldCA9PSAwKSB7CisJCSAgICBERUJVR19WQUxJRF9NU0coIlNlcXVlbmNlIGZhaWxlZCIpOworCQkgICAgQ09OVCA9IENPTlQtPnBhcmVudDsKKwkJICAgIERFUFRILS07CisJCX0gZWxzZSBpZiAoQ09OVCA9PSBDT05ULT5wYXJlbnQtPmMxKSB7CisJCSAgICBERUJVR19WQUxJRF9NU0coIlNlcXVlbmNlIHRlc3RpbmcgMm5kIGJyYW5jaCIpOworCQkgICAgQ09OVCA9IENPTlQtPnBhcmVudC0+YzI7CisJCSAgICBnb3RvIGNvbnQ7CisJCX0gZWxzZSB7CisJCSAgICBERUJVR19WQUxJRF9NU0coIlNlcXVlbmNlIHN1Y2NlZWRlZCIpOworCQkgICAgQ09OVCA9IENPTlQtPnBhcmVudDsKKwkJICAgIERFUFRILS07CisJCX0KKwl9CisgICAgfQorICAgIGlmIChOT0RFICE9IE5VTEwpIHsKKwl4bWxOb2RlUHRyIGN1cjsKKworCWN1ciA9IGN0eHQtPnZzdGF0ZS0+bm9kZTsKKwlERUJVR19WQUxJRF9NU0coIkZhaWxlZCwgcmVtYWluaW5nIGlucHV0LCByb2xsYmFjayIpOworCWlmICh2c3RhdGVWUG9wKGN0eHQpIDwgMCApIHsKKwkgICAgREVCVUdfVkFMSURfTVNHKCJleGhhdXN0aW9uLCBmYWlsZWQiKTsKKwkgICAgcmV0dXJuKDApOworCX0KKwlpZiAoY3VyICE9IGN0eHQtPnZzdGF0ZS0+bm9kZSkKKwkgICAgZGV0ZXJtaW5pc3QgPSAtMzsKKwlnb3RvIGNvbnQ7CisgICAgfQorICAgIGlmIChyZXQgPT0gMCkgeworCXhtbE5vZGVQdHIgY3VyOworCisJY3VyID0gY3R4dC0+dnN0YXRlLT5ub2RlOworCURFQlVHX1ZBTElEX01TRygiRmFpbHVyZSwgcm9sbGJhY2siKTsKKwlpZiAodnN0YXRlVlBvcChjdHh0KSA8IDAgKSB7CisJICAgIERFQlVHX1ZBTElEX01TRygiZXhoYXVzdGlvbiwgZmFpbGVkIik7CisJICAgIHJldHVybigwKTsKKwl9CisJaWYgKGN1ciAhPSBjdHh0LT52c3RhdGUtPm5vZGUpCisJICAgIGRldGVybWluaXN0ID0gLTM7CisJZ290byBjb250OworICAgIH0KKyAgICByZXR1cm4oZGV0ZXJtaW5pc3QpOworfQorI2VuZGlmCisKKy8qKgorICogeG1sU25wcmludGZFbGVtZW50czoKKyAqIEBidWY6ICBhbiBvdXRwdXQgYnVmZmVyCisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBidWZmZXIKKyAqIEBjb250ZW50OiAgQW4gZWxlbWVudAorICogQGdsb2I6IDEgaWYgb25lIG11c3QgcHJpbnQgdGhlIGVuZ2xvYmluZyBwYXJlbnRoZXNpcywgMCBvdGhlcndpc2UKKyAqCisgKiBUaGlzIHdpbGwgZHVtcCB0aGUgbGlzdCBvZiBlbGVtZW50cyB0byB0aGUgYnVmZmVyCisgKiBJbnRlbmRlZCBqdXN0IGZvciB0aGUgZGVidWcgcm91dGluZQorICovCitzdGF0aWMgdm9pZAoreG1sU25wcmludGZFbGVtZW50cyhjaGFyICpidWYsIGludCBzaXplLCB4bWxOb2RlUHRyIG5vZGUsIGludCBnbG9iKSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgaW50IGxlbjsKKworICAgIGlmIChub2RlID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAoZ2xvYikgc3RyY2F0KGJ1ZiwgIigiKTsKKyAgICBjdXIgPSBub2RlOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCWxlbiA9IHN0cmxlbihidWYpOworCWlmIChzaXplIC0gbGVuIDwgNTApIHsKKwkgICAgaWYgKChzaXplIC0gbGVuID4gNCkgJiYgKGJ1ZltsZW4gLSAxXSAhPSAnLicpKQorCQlzdHJjYXQoYnVmLCAiIC4uLiIpOworCSAgICByZXR1cm47CisJfQorICAgICAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCQlpZiAoKGN1ci0+bnMgIT0gTlVMTCkgJiYgKGN1ci0+bnMtPnByZWZpeCAhPSBOVUxMKSkgeworCQkgICAgaWYgKHNpemUgLSBsZW4gPCB4bWxTdHJsZW4oY3VyLT5ucy0+cHJlZml4KSArIDEwKSB7CisJCQlpZiAoKHNpemUgLSBsZW4gPiA0KSAmJiAoYnVmW2xlbiAtIDFdICE9ICcuJykpCisJCQkgICAgc3RyY2F0KGJ1ZiwgIiAuLi4iKTsKKwkJCXJldHVybjsKKwkJICAgIH0KKwkJICAgIHN0cmNhdChidWYsIChjaGFyICopIGN1ci0+bnMtPnByZWZpeCk7CisJCSAgICBzdHJjYXQoYnVmLCAiOiIpOworCQl9CisgICAgICAgICAgICAgICAgaWYgKHNpemUgLSBsZW4gPCB4bWxTdHJsZW4oY3VyLT5uYW1lKSArIDEwKSB7CisJCSAgICBpZiAoKHNpemUgLSBsZW4gPiA0KSAmJiAoYnVmW2xlbiAtIDFdICE9ICcuJykpCisJCQlzdHJjYXQoYnVmLCAiIC4uLiIpOworCQkgICAgcmV0dXJuOworCQl9CisJICAgICAgICBzdHJjYXQoYnVmLCAoY2hhciAqKSBjdXItPm5hbWUpOworCQlpZiAoY3VyLT5uZXh0ICE9IE5VTEwpCisJCSAgICBzdHJjYXQoYnVmLCAiICIpOworCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkJaWYgKHhtbElzQmxhbmtOb2RlKGN1cikpCisJCSAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkgICAgICAgIHN0cmNhdChidWYsICJDREFUQSIpOworCQlpZiAoY3VyLT5uZXh0ICE9IE5VTEwpCisJCSAgICBzdHJjYXQoYnVmLCAiICIpOworCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorCSAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCSAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwkgICAgICAgIHN0cmNhdChidWYsICI/Pz8iKTsKKwkJaWYgKGN1ci0+bmV4dCAhPSBOVUxMKQorCQkgICAgc3RyY2F0KGJ1ZiwgIiAiKTsKKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorCSAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKwkgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisJICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorCSAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJCWJyZWFrOworCX0KKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIGlmIChnbG9iKSBzdHJjYXQoYnVmLCAiKSIpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlRWxlbWVudENvbnRlbnQ6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBjaGlsZDogIHRoZSBjaGlsZCBsaXN0CisgKiBAZWxlbURlY2w6ICBwb2ludGVyIHRvIHRoZSBlbGVtZW50IGRlY2xhcmF0aW9uCisgKiBAd2FybjogIGVtaXQgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBwYXJlbnQ6IHRoZSBwYXJlbnQgZWxlbWVudCAoZm9yIGVycm9yIHJlcG9ydGluZykKKyAqCisgKiBUcnkgdG8gdmFsaWRhdGUgdGhlIGNvbnRlbnQgbW9kZWwgb2YgYW4gZWxlbWVudAorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIGlmIG5vdCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCisKK3N0YXRpYyBpbnQKK3htbFZhbGlkYXRlRWxlbWVudENvbnRlbnQoeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY2hpbGQsCisgICAgICAgeG1sRWxlbWVudFB0ciBlbGVtRGVjbCwgaW50IHdhcm4sIHhtbE5vZGVQdHIgcGFyZW50KSB7CisgICAgaW50IHJldCA9IDE7CisjaWZuZGVmICBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKKyAgICB4bWxOb2RlUHRyIHJlcGwgPSBOVUxMLCBsYXN0ID0gTlVMTCwgdG1wOworI2VuZGlmCisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udDsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworCisgICAgaWYgKGVsZW1EZWNsID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBjb250ID0gZWxlbURlY2wtPmNvbnRlbnQ7CisgICAgbmFtZSA9IGVsZW1EZWNsLT5uYW1lOworCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisgICAgLyogQnVpbGQgdGhlIHJlZ2V4cCBhc3NvY2lhdGVkIHRvIHRoZSBjb250ZW50IG1vZGVsICovCisgICAgaWYgKGVsZW1EZWNsLT5jb250TW9kZWwgPT0gTlVMTCkKKwlyZXQgPSB4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsKGN0eHQsIGVsZW1EZWNsKTsKKyAgICBpZiAoZWxlbURlY2wtPmNvbnRNb2RlbCA9PSBOVUxMKSB7CisJcmV0dXJuKC0xKTsKKyAgICB9IGVsc2UgeworCXhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWM7CisKKwlpZiAoIXhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QoZWxlbURlY2wtPmNvbnRNb2RlbCkpIHsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY3R4dC0+bm9kZU1heCA9IDA7CisJY3R4dC0+bm9kZU5yID0gMDsKKwljdHh0LT5ub2RlVGFiID0gTlVMTDsKKwlleGVjID0geG1sUmVnTmV3RXhlY0N0eHQoZWxlbURlY2wtPmNvbnRNb2RlbCwgTlVMTCwgTlVMTCk7CisJaWYgKGV4ZWMgIT0gTlVMTCkgeworCSAgICBjdXIgPSBjaGlsZDsKKwkgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCXN3aXRjaCAoY3VyLT50eXBlKSB7CisJCSAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJCQkvKgorCQkJICogUHVzaCB0aGUgY3VycmVudCBub2RlIHRvIGJlIGFibGUgdG8gcm9sbCBiYWNrCisJCQkgKiBhbmQgcHJvY2VzcyB3aXRoaW4gdGhlIGVudGl0eQorCQkJICovCisJCQlpZiAoKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgJiYKKwkJCSAgICAoY3VyLT5jaGlsZHJlbi0+Y2hpbGRyZW4gIT0gTlVMTCkpIHsKKwkJCSAgICBub2RlVlB1c2goY3R4dCwgY3VyKTsKKwkJCSAgICBjdXIgPSBjdXItPmNoaWxkcmVuLT5jaGlsZHJlbjsKKwkJCSAgICBjb250aW51ZTsKKwkJCX0KKwkJCWJyZWFrOworCQkgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorCQkJaWYgKHhtbElzQmxhbmtOb2RlKGN1cikpCisJCQkgICAgYnJlYWs7CisJCQlyZXQgPSAwOworCQkJZ290byBmYWlsOworCQkgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCQkJLyogVE9ETyAqLworCQkJcmV0ID0gMDsKKwkJCWdvdG8gZmFpbDsKKwkJICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwkJCWlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJiAoY3VyLT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisJCQkgICAgeG1sQ2hhciBmbls1MF07CisJCQkgICAgeG1sQ2hhciAqZnVsbG5hbWU7CisJCQkgICAgCisJCQkgICAgZnVsbG5hbWUgPSB4bWxCdWlsZFFOYW1lKGN1ci0+bmFtZSwKKwkJCQkgICAgICAgICAgICAgICAgICAgICBjdXItPm5zLT5wcmVmaXgsIGZuLCA1MCk7CisJCQkgICAgaWYgKGZ1bGxuYW1lID09IE5VTEwpIHsKKwkJCQlyZXQgPSAtMTsKKwkJCQlnb3RvIGZhaWw7CisJCQkgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIGZ1bGxuYW1lLCBOVUxMKTsKKwkJCSAgICBpZiAoKGZ1bGxuYW1lICE9IGZuKSAmJiAoZnVsbG5hbWUgIT0gY3VyLT5uYW1lKSkKKwkJCQl4bWxGcmVlKGZ1bGxuYW1lKTsKKwkJCX0gZWxzZSB7CisJCQkgICAgcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgY3VyLT5uYW1lLCBOVUxMKTsKKwkJCX0KKwkJCWJyZWFrOworCQkgICAgZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCS8qCisJCSAqIFN3aXRjaCB0byBuZXh0IGVsZW1lbnQKKwkJICovCisJCWN1ciA9IGN1ci0+bmV4dDsKKwkJd2hpbGUgKGN1ciA9PSBOVUxMKSB7CisJCSAgICBjdXIgPSBub2RlVlBvcChjdHh0KTsKKwkJICAgIGlmIChjdXIgPT0gTlVMTCkKKwkJCWJyZWFrOworCQkgICAgY3VyID0gY3VyLT5uZXh0OworCQl9CisJICAgIH0KKwkgICAgcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoZXhlYywgTlVMTCwgTlVMTCk7CitmYWlsOgorCSAgICB4bWxSZWdGcmVlRXhlY0N0eHQoZXhlYyk7CisJfQorICAgIH0KKyNlbHNlICAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKyAgICAvKgorICAgICAqIEFsbG9jYXRlIHRoZSBzdGFjaworICAgICAqLworICAgIGN0eHQtPnZzdGF0ZU1heCA9IDg7CisgICAgY3R4dC0+dnN0YXRlVGFiID0gKHhtbFZhbGlkU3RhdGUgKikgeG1sTWFsbG9jKAorCQkgY3R4dC0+dnN0YXRlTWF4ICogc2l6ZW9mKGN0eHQtPnZzdGF0ZVRhYlswXSkpOworICAgIGlmIChjdHh0LT52c3RhdGVUYWIgPT0gTlVMTCkgeworCXhtbFZFcnJNZW1vcnkoY3R4dCwgIm1hbGxvYyBmYWlsZWQiKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICAvKgorICAgICAqIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgc3RhY2sgaXMgcmVzZXJ2ZWQgdG8gdGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKi8KKyAgICBjdHh0LT5ub2RlTWF4ID0gMDsKKyAgICBjdHh0LT5ub2RlTnIgPSAwOworICAgIGN0eHQtPm5vZGVUYWIgPSBOVUxMOworICAgIGN0eHQtPnZzdGF0ZSA9ICZjdHh0LT52c3RhdGVUYWJbMF07CisgICAgY3R4dC0+dnN0YXRlTnIgPSAxOworICAgIENPTlQgPSBjb250OworICAgIE5PREUgPSBjaGlsZDsKKyAgICBERVBUSCA9IDA7CisgICAgT0NDVVJTID0gMDsKKyAgICBTVEFURSA9IDA7CisgICAgcmV0ID0geG1sVmFsaWRhdGVFbGVtZW50VHlwZShjdHh0KTsKKyAgICBpZiAoKHJldCA9PSAtMykgJiYgKHdhcm4pKSB7CisJeG1sRXJyVmFsaWRXYXJuaW5nKGN0eHQsIGNoaWxkLCBYTUxfRFREX0NPTlRFTlRfTk9UX0RFVEVSTUlOSVNULAorCSAgICAgICAiQ29udGVudCBtb2RlbCBmb3IgRWxlbWVudCAlcyBpcyBhbWJpZ3VvdXNcbiIsCisJICAgICAgICAgICAgICAgICAgIG5hbWUsIE5VTEwsIE5VTEwpOworICAgIH0gZWxzZSBpZiAocmV0ID09IC0yKSB7CisJLyoKKwkgKiBBbiBlbnRpdGllcyByZWZlcmVuY2UgYXBwZWFyZWQgYXQgdGhpcyBsZXZlbC4KKwkgKiBCdWlkIGEgbWluaW1hbCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG5vZGUgY29udGVudAorCSAqIHN1ZmZpY2llbnQgdG8gcnVuIHRoZSB2YWxpZGF0aW9uIHByb2Nlc3Mgb24gaXQKKwkgKi8KKwlERUJVR19WQUxJRF9NU0coIkZvdW5kIGFuIGVudGl0eSByZWZlcmVuY2UsIGxpbmVhcml6aW5nIik7CisJY3VyID0gY2hpbGQ7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisJCWNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkJICAgIC8qCisJCSAgICAgKiBQdXNoIHRoZSBjdXJyZW50IG5vZGUgdG8gYmUgYWJsZSB0byByb2xsIGJhY2sKKwkJICAgICAqIGFuZCBwcm9jZXNzIHdpdGhpbiB0aGUgZW50aXR5CisJCSAgICAgKi8KKwkJICAgIGlmICgoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCQkJKGN1ci0+Y2hpbGRyZW4tPmNoaWxkcmVuICE9IE5VTEwpKSB7CisJCQlub2RlVlB1c2goY3R4dCwgY3VyKTsKKwkJCWN1ciA9IGN1ci0+Y2hpbGRyZW4tPmNoaWxkcmVuOworCQkJY29udGludWU7CisJCSAgICB9CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfVEVYVF9OT0RFOgorCQkgICAgaWYgKHhtbElzQmxhbmtOb2RlKGN1cikpCisJCQlicmVhazsKKwkJICAgIC8qIG5vIGJyZWFrIG9uIHB1cnBvc2UgKi8KKwkJY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCQkgICAgLyogbm8gYnJlYWsgb24gcHVycG9zZSAqLworCQljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJCSAgICAvKgorCQkgICAgICogQWxsb2NhdGUgYSBuZXcgbm9kZSBhbmQgbWluaW1hbGx5IGZpbGxzIGluCisJCSAgICAgKiB3aGF0J3MgcmVxdWlyZWQKKwkJICAgICAqLworCQkgICAgdG1wID0gKHhtbE5vZGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTm9kZSkpOworCQkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCQl4bWxWRXJyTWVtb3J5KGN0eHQsICJtYWxsb2MgZmFpbGVkIik7CisJCQl4bWxGcmVlTm9kZUxpc3QocmVwbCk7CisJCQlyZXQgPSAtMTsKKwkJCWdvdG8gZG9uZTsKKwkJICAgIH0KKwkJICAgIHRtcC0+dHlwZSA9IGN1ci0+dHlwZTsKKwkJICAgIHRtcC0+bmFtZSA9IGN1ci0+bmFtZTsKKwkJICAgIHRtcC0+bnMgPSBjdXItPm5zOworCQkgICAgdG1wLT5uZXh0ID0gTlVMTDsKKwkJICAgIHRtcC0+Y29udGVudCA9IE5VTEw7CisJCSAgICBpZiAocmVwbCA9PSBOVUxMKQorCQkJcmVwbCA9IGxhc3QgPSB0bXA7CisJCSAgICBlbHNlIHsKKwkJCWxhc3QtPm5leHQgPSB0bXA7CisJCQlsYXN0ID0gdG1wOworCQkgICAgfQorCQkgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSB7CisJCQkvKiAKKwkJCSAqIEU1OSBzcGFjZXMgaW4gQ0RBVEEgZG9lcyBub3QgbWF0Y2ggdGhlCisJCQkgKiBub250ZXJtaW5hbCBTCisJCQkgKi8KKwkJCXRtcC0+Y29udGVudCA9IHhtbFN0cmR1cChCQURfQ0FTVCAiQ0RBVEEiKTsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQlkZWZhdWx0OgorCQkgICAgYnJlYWs7CisJICAgIH0KKwkgICAgLyoKKwkgICAgICogU3dpdGNoIHRvIG5leHQgZWxlbWVudAorCSAgICAgKi8KKwkgICAgY3VyID0gY3VyLT5uZXh0OworCSAgICB3aGlsZSAoY3VyID09IE5VTEwpIHsKKwkJY3VyID0gbm9kZVZQb3AoY3R4dCk7CisJCWlmIChjdXIgPT0gTlVMTCkKKwkJICAgIGJyZWFrOworCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKwl9CisKKwkvKgorCSAqIFJlbGF1bmNoIHRoZSB2YWxpZGF0aW9uCisJICovCisJY3R4dC0+dnN0YXRlID0gJmN0eHQtPnZzdGF0ZVRhYlswXTsKKwljdHh0LT52c3RhdGVOciA9IDE7CisJQ09OVCA9IGNvbnQ7CisJTk9ERSA9IHJlcGw7CisJREVQVEggPSAwOworCU9DQ1VSUyA9IDA7CisJU1RBVEUgPSAwOworCXJldCA9IHhtbFZhbGlkYXRlRWxlbWVudFR5cGUoY3R4dCk7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9SRUdFWFBfRU5BQkxFRCAqLworICAgIGlmICgod2FybikgJiYgKChyZXQgIT0gMSkgJiYgKHJldCAhPSAtMykpKSB7CisJaWYgKGN0eHQgIT0gTlVMTCkgeworCSAgICBjaGFyIGV4cHJbNTAwMF07CisJICAgIGNoYXIgbGlzdFs1MDAwXTsKKworCSAgICBleHByWzBdID0gMDsKKwkgICAgeG1sU25wcmludGZFbGVtZW50Q29udGVudCgmZXhwclswXSwgNTAwMCwgY29udCwgMSk7CisJICAgIGxpc3RbMF0gPSAwOworI2lmbmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKKwkgICAgaWYgKHJlcGwgIT0gTlVMTCkKKwkJeG1sU25wcmludGZFbGVtZW50cygmbGlzdFswXSwgNTAwMCwgcmVwbCwgMSk7CisJICAgIGVsc2UKKyNlbmRpZiAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKwkJeG1sU25wcmludGZFbGVtZW50cygmbGlzdFswXSwgNTAwMCwgY2hpbGQsIDEpOworCisJICAgIGlmIChuYW1lICE9IE5VTEwpIHsKKwkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIHBhcmVudCwgWE1MX0RURF9DT05URU5UX01PREVMLAorCSAgICJFbGVtZW50ICVzIGNvbnRlbnQgZG9lcyBub3QgZm9sbG93IHRoZSBEVEQsIGV4cGVjdGluZyAlcywgZ290ICVzXG4iLAorCQkgICAgICAgbmFtZSwgQkFEX0NBU1QgZXhwciwgQkFEX0NBU1QgbGlzdCk7CisJICAgIH0gZWxzZSB7CisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCBwYXJlbnQsIFhNTF9EVERfQ09OVEVOVF9NT0RFTCwKKwkgICAiRWxlbWVudCBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFRELCBleHBlY3RpbmcgJXMsIGdvdCAlc1xuIiwKKwkJICAgICAgIEJBRF9DQVNUIGV4cHIsIEJBRF9DQVNUIGxpc3QsIE5VTEwpOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgaWYgKG5hbWUgIT0gTlVMTCkgeworCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgcGFyZW50LCBYTUxfRFREX0NPTlRFTlRfTU9ERUwsCisJCSAgICAgICAiRWxlbWVudCAlcyBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFREXG4iLAorCQkgICAgICAgbmFtZSwgTlVMTCwgTlVMTCk7CisJICAgIH0gZWxzZSB7CisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCBwYXJlbnQsIFhNTF9EVERfQ09OVEVOVF9NT0RFTCwKKwkJICAgICAgICJFbGVtZW50IGNvbnRlbnQgZG9lcyBub3QgZm9sbG93IHRoZSBEVERcbiIsCisJCSAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMKTsKKwkgICAgfQorCX0KKwlyZXQgPSAwOworICAgIH0KKyAgICBpZiAocmV0ID09IC0zKQorCXJldCA9IDE7CisKKyNpZm5kZWYgIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorZG9uZToKKyAgICAvKgorICAgICAqIERlYWxsb2NhdGUgdGhlIGNvcHkgaWYgZG9uZSwgYW5kIGZyZWUgdXAgdGhlIHZhbGlkYXRpb24gc3RhY2sKKyAgICAgKi8KKyAgICB3aGlsZSAocmVwbCAhPSBOVUxMKSB7CisJdG1wID0gcmVwbC0+bmV4dDsKKwl4bWxGcmVlKHJlcGwpOworCXJlcGwgPSB0bXA7CisgICAgfQorICAgIGN0eHQtPnZzdGF0ZU1heCA9IDA7CisgICAgaWYgKGN0eHQtPnZzdGF0ZVRhYiAhPSBOVUxMKSB7CisJeG1sRnJlZShjdHh0LT52c3RhdGVUYWIpOworCWN0eHQtPnZzdGF0ZVRhYiA9IE5VTEw7CisgICAgfQorI2VuZGlmCisgICAgY3R4dC0+bm9kZU1heCA9IDA7CisgICAgY3R4dC0+bm9kZU5yID0gMDsKKyAgICBpZiAoY3R4dC0+bm9kZVRhYiAhPSBOVUxMKSB7CisJeG1sRnJlZShjdHh0LT5ub2RlVGFiKTsKKwljdHh0LT5ub2RlVGFiID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7CisKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZUNkYXRhRWxlbWVudDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBpbnN0YW5jZQorICoKKyAqIENoZWNrIHRoYXQgYW4gZWxlbWVudCBmb2xsb3dzICNDREFUQQorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxWYWxpZGF0ZU9uZUNkYXRhRWxlbWVudCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZWxlbSkgeworICAgIGludCByZXQgPSAxOworICAgIHhtbE5vZGVQdHIgY3VyLCBjaGlsZDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZG9jID09IE5VTEwpIHx8IChlbGVtID09IE5VTEwpKQorCXJldHVybigwKTsKKworICAgIGNoaWxkID0gZWxlbS0+Y2hpbGRyZW47CisKKyAgICBjdXIgPSBjaGlsZDsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlzd2l0Y2ggKGN1ci0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJCS8qCisJCSAqIFB1c2ggdGhlIGN1cnJlbnQgbm9kZSB0byBiZSBhYmxlIHRvIHJvbGwgYmFjaworCQkgKiBhbmQgcHJvY2VzcyB3aXRoaW4gdGhlIGVudGl0eQorCQkgKi8KKwkJaWYgKChjdXItPmNoaWxkcmVuICE9IE5VTEwpICYmCisJCSAgICAoY3VyLT5jaGlsZHJlbi0+Y2hpbGRyZW4gIT0gTlVMTCkpIHsKKwkJICAgIG5vZGVWUHVzaChjdHh0LCBjdXIpOworCQkgICAgY3VyID0gY3VyLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisJCSAgICBjb250aW51ZTsKKwkJfQorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICBjYXNlIFhNTF9QSV9OT0RFOgorCSAgICBjYXNlIFhNTF9URVhUX05PREU6CisJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCXJldCA9IDA7CisJCWdvdG8gZG9uZTsKKwl9CisJLyoKKwkgKiBTd2l0Y2ggdG8gbmV4dCBlbGVtZW50CisJICovCisJY3VyID0gY3VyLT5uZXh0OworCXdoaWxlIChjdXIgPT0gTlVMTCkgeworCSAgICBjdXIgPSBub2RlVlBvcChjdHh0KTsKKwkgICAgaWYgKGN1ciA9PSBOVUxMKQorCQlicmVhazsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKyAgICB9Citkb25lOgorICAgIGN0eHQtPm5vZGVNYXggPSAwOworICAgIGN0eHQtPm5vZGVOciA9IDA7CisgICAgaWYgKGN0eHQtPm5vZGVUYWIgIT0gTlVMTCkgeworCXhtbEZyZWUoY3R4dC0+bm9kZVRhYik7CisJY3R4dC0+bm9kZVRhYiA9IE5VTEw7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlQ2hlY2tNaXhlZDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGNvbnQ6ICB0aGUgbWl4ZWQgY29udGVudCBtb2RlbAorICogQHFuYW1lOiAgdGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbgorICoKKyAqIENoZWNrIGlmIHRoZSBnaXZlbiBub2RlIGlzIHBhcnQgb2YgdGhlIGNvbnRlbnQgbW9kZWwuCisgKgorICogUmV0dXJucyAxIGlmIHllcywgMCBpZiBubywgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxWYWxpZGF0ZUNoZWNrTWl4ZWQoeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJICAgICAgICAgICAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjb250LCBjb25zdCB4bWxDaGFyICpxbmFtZSkgeworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgaW50IHBsZW47CisgICAgbmFtZSA9IHhtbFNwbGl0UU5hbWUzKHFuYW1lLCAmcGxlbik7CisKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisJd2hpbGUgKGNvbnQgIT0gTlVMTCkgeworCSAgICBpZiAoY29udC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQpIHsKKwkJaWYgKChjb250LT5wcmVmaXggPT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKGNvbnQtPm5hbWUsIHFuYW1lKSkpCisJCSAgICByZXR1cm4oMSk7CisJICAgIH0gZWxzZSBpZiAoKGNvbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgJiYKKwkgICAgICAgKGNvbnQtPmMxICE9IE5VTEwpICYmCisJICAgICAgIChjb250LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQpKXsKKwkJaWYgKChjb250LT5jMS0+cHJlZml4ID09IE5VTEwpICYmCisJCSAgICAoeG1sU3RyRXF1YWwoY29udC0+YzEtPm5hbWUsIHFuYW1lKSkpCisJCSAgICByZXR1cm4oMSk7CisJICAgIH0gZWxzZSBpZiAoKGNvbnQtPnR5cGUgIT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgfHwKKwkJKGNvbnQtPmMxID09IE5VTEwpIHx8CisJCShjb250LT5jMS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQSkpeworCQl4bWxFcnJWYWxpZChOVUxMLCBYTUxfRFREX01JWEVEX0NPUlJVUFQsIAorCQkJIkludGVybmFsOiBNSVhFRCBzdHJ1Y3QgY29ycnVwdGVkXG4iLAorCQkJTlVMTCk7CisJCWJyZWFrOworCSAgICB9CisJICAgIGNvbnQgPSBjb250LT5jMjsKKwl9CisgICAgfSBlbHNlIHsKKwl3aGlsZSAoY29udCAhPSBOVUxMKSB7CisJICAgIGlmIChjb250LT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCkgeworCQlpZiAoKGNvbnQtPnByZWZpeCAhPSBOVUxMKSAmJgorCQkgICAgKHhtbFN0cm5jbXAoY29udC0+cHJlZml4LCBxbmFtZSwgcGxlbikgPT0gMCkgJiYKKwkJICAgICh4bWxTdHJFcXVhbChjb250LT5uYW1lLCBuYW1lKSkpCisJCSAgICByZXR1cm4oMSk7CisJICAgIH0gZWxzZSBpZiAoKGNvbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9PUikgJiYKKwkgICAgICAgKGNvbnQtPmMxICE9IE5VTEwpICYmCisJICAgICAgIChjb250LT5jMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQpKXsKKwkJaWYgKChjb250LT5jMS0+cHJlZml4ICE9IE5VTEwpICYmCisJCSAgICAoeG1sU3RybmNtcChjb250LT5jMS0+cHJlZml4LCBxbmFtZSwgcGxlbikgPT0gMCkgJiYKKwkJICAgICh4bWxTdHJFcXVhbChjb250LT5jMS0+bmFtZSwgbmFtZSkpKQorCQkgICAgcmV0dXJuKDEpOworCSAgICB9IGVsc2UgaWYgKChjb250LT50eXBlICE9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpIHx8CisJCShjb250LT5jMSA9PSBOVUxMKSB8fAorCQkoY29udC0+YzEtPnR5cGUgIT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEpKXsKKwkJeG1sRXJyVmFsaWQoY3R4dCwgWE1MX0RURF9NSVhFRF9DT1JSVVBULCAKKwkJCSJJbnRlcm5hbDogTUlYRUQgc3RydWN0IGNvcnJ1cHRlZFxuIiwKKwkJCU5VTEwpOworCQlicmVhazsKKwkgICAgfQorCSAgICBjb250ID0gY29udC0+YzI7CisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVmFsaWRHZXRFbGVtRGVjbDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBpbnN0YW5jZQorICogQGV4dHN1YnNldDogIHBvaW50ZXIsIChvdXQpIGluZGljYXRlIGlmIHRoZSBkZWNsYXJhdGlvbiB3YXMgZm91bmQKKyAqICAgICAgICAgICAgICBpbiB0aGUgZXh0ZXJuYWwgc3Vic2V0LgorICoKKyAqIEZpbmRzIGEgZGVjbGFyYXRpb24gYXNzb2NpYXRlZCB0byBhbiBlbGVtZW50IGluIHRoZSBkb2N1bWVudC4KKyAqCisgKiByZXR1cm5zIHRoZSBwb2ludGVyIHRvIHRoZSBkZWNsYXJhdGlvbiBvciBOVUxMIGlmIG5vdCBmb3VuZC4KKyAqLworc3RhdGljIHhtbEVsZW1lbnRQdHIKK3htbFZhbGlkR2V0RWxlbURlY2woeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MsCisJICAgICAgICAgICAgeG1sTm9kZVB0ciBlbGVtLCBpbnQgKmV4dHN1YnNldCkgeworICAgIHhtbEVsZW1lbnRQdHIgZWxlbURlY2wgPSBOVUxMOworICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCA9IE5VTEw7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGRvYyA9PSBOVUxMKSB8fCAKKyAgICAgICAgKGVsZW0gPT0gTlVMTCkgfHwgKGVsZW0tPm5hbWUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoZXh0c3Vic2V0ICE9IE5VTEwpCisJKmV4dHN1YnNldCA9IDA7CisKKyAgICAvKgorICAgICAqIEZldGNoIHRoZSBkZWNsYXJhdGlvbiBmb3IgdGhlIHF1YWxpZmllZCBuYW1lCisgICAgICovCisgICAgaWYgKChlbGVtLT5ucyAhPSBOVUxMKSAmJiAoZWxlbS0+bnMtPnByZWZpeCAhPSBOVUxMKSkKKwlwcmVmaXggPSBlbGVtLT5ucy0+cHJlZml4OworCisgICAgaWYgKHByZWZpeCAhPSBOVUxMKSB7CisJZWxlbURlY2wgPSB4bWxHZXREdGRRRWxlbWVudERlc2MoZG9jLT5pbnRTdWJzZXQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLT5uYW1lLCBwcmVmaXgpOworCWlmICgoZWxlbURlY2wgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKSB7CisJICAgIGVsZW1EZWNsID0geG1sR2V0RHRkUUVsZW1lbnREZXNjKGRvYy0+ZXh0U3Vic2V0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0tPm5hbWUsIHByZWZpeCk7CisJICAgIGlmICgoZWxlbURlY2wgIT0gTlVMTCkgJiYgKGV4dHN1YnNldCAhPSBOVUxMKSkKKwkJKmV4dHN1YnNldCA9IDE7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogRmV0Y2ggdGhlIGRlY2xhcmF0aW9uIGZvciB0aGUgbm9uIHF1YWxpZmllZCBuYW1lCisgICAgICogVGhpcyBpcyAibm9uLXN0cmljdCIgdmFsaWRhdGlvbiBzaG91bGQgYmUgZG9uZSBvbiB0aGUKKyAgICAgKiBmdWxsIFFOYW1lIGJ1dCBpbiB0aGF0IGNhc2UgYmVpbmcgZmxleGlibGUgbWFrZXMgc2Vuc2UuCisgICAgICovCisgICAgaWYgKGVsZW1EZWNsID09IE5VTEwpIHsKKwllbGVtRGVjbCA9IHhtbEdldER0ZEVsZW1lbnREZXNjKGRvYy0+aW50U3Vic2V0LCBlbGVtLT5uYW1lKTsKKwlpZiAoKGVsZW1EZWNsID09IE5VTEwpICYmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSkgeworCSAgICBlbGVtRGVjbCA9IHhtbEdldER0ZEVsZW1lbnREZXNjKGRvYy0+ZXh0U3Vic2V0LCBlbGVtLT5uYW1lKTsKKwkgICAgaWYgKChlbGVtRGVjbCAhPSBOVUxMKSAmJiAoZXh0c3Vic2V0ICE9IE5VTEwpKQorCQkqZXh0c3Vic2V0ID0gMTsKKwl9CisgICAgfQorICAgIGlmIChlbGVtRGVjbCA9PSBOVUxMKSB7CisJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sCisJCQlYTUxfRFREX1VOS05PV05fRUxFTSwKKwkgICAgICAgIk5vIGRlY2xhcmF0aW9uIGZvciBlbGVtZW50ICVzXG4iLAorCSAgICAgICBlbGVtLT5uYW1lLCBOVUxMLCBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKGVsZW1EZWNsKTsKK30KKworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorLyoqCisgKiB4bWxWYWxpZGF0ZVB1c2hFbGVtZW50OgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBkb2N1bWVudCBpbnN0YW5jZQorICogQGVsZW06ICBhbiBlbGVtZW50IGluc3RhbmNlCisgKiBAcW5hbWU6ICB0aGUgcXVhbGlmaWVkIG5hbWUgYXMgYXBwZWFyaW5nIGluIHRoZSBzZXJpYWxpemF0aW9uCisgKgorICogUHVzaCBhIG5ldyBlbGVtZW50IHN0YXJ0IG9uIHRoZSB2YWxpZGF0aW9uIHN0YWNrLgorICoKKyAqIHJldHVybnMgMSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVmFsaWRhdGVQdXNoRWxlbWVudCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYywKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBlbGVtLCBjb25zdCB4bWxDaGFyICpxbmFtZSkgeworICAgIGludCByZXQgPSAxOworICAgIHhtbEVsZW1lbnRQdHIgZURlY2w7CisgICAgaW50IGV4dHN1YnNldCA9IDA7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMCk7CisvKiBwcmludGYoIlB1c2hFbGVtICVzXG4iLCBxbmFtZSk7ICovCisgICAgaWYgKChjdHh0LT52c3RhdGVOciA+IDApICYmIChjdHh0LT52c3RhdGUgIT0gTlVMTCkpIHsKKwl4bWxWYWxpZFN0YXRlUHRyIHN0YXRlID0gY3R4dC0+dnN0YXRlOworCXhtbEVsZW1lbnRQdHIgZWxlbURlY2w7CisKKwkvKgorCSAqIENoZWNrIHRoZSBuZXcgZWxlbWVudCBhZ2Fpc250IHRoZSBjb250ZW50IG1vZGVsIG9mIHRoZSBuZXcgZWxlbS4KKwkgKi8KKwlpZiAoc3RhdGUtPmVsZW1EZWNsICE9IE5VTEwpIHsKKwkgICAgZWxlbURlY2wgPSBzdGF0ZS0+ZWxlbURlY2w7CisKKwkgICAgc3dpdGNoKGVsZW1EZWNsLT5ldHlwZSkgeworCQljYXNlIFhNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEOgorCQkgICAgcmV0ID0gMDsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX1RZUEVfRU1QVFk6CisJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgc3RhdGUtPm5vZGUsCisJCQkJICAgIFhNTF9EVERfTk9UX0VNUFRZLAorCSAgICAgICAiRWxlbWVudCAlcyB3YXMgZGVjbGFyZWQgRU1QVFkgdGhpcyBvbmUgaGFzIGNvbnRlbnRcbiIsCisJCQkgICBzdGF0ZS0+bm9kZS0+bmFtZSwgTlVMTCwgTlVMTCk7CisJCSAgICByZXQgPSAwOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VMRU1FTlRfVFlQRV9BTlk6CisJCSAgICAvKiBJIGRvbid0IHRoaW5rIGFueXRoaW5nIGlzIHJlcXVpcmVkIHRoZW4gKi8KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX1RZUEVfTUlYRUQ6CisJCSAgICAvKiBzaW1wbGUgY2FzZSBvZiBkZWNsYXJlZCBhcyAjUENEQVRBICovCisJCSAgICBpZiAoKGVsZW1EZWNsLT5jb250ZW50ICE9IE5VTEwpICYmCisJCQkoZWxlbURlY2wtPmNvbnRlbnQtPnR5cGUgPT0KKwkJCSBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQSkpIHsKKwkJCXhtbEVyclZhbGlkTm9kZShjdHh0LCBzdGF0ZS0+bm9kZSwKKwkJCQkJWE1MX0RURF9OT1RfUENEQVRBLAorCSAgICAgICAiRWxlbWVudCAlcyB3YXMgZGVjbGFyZWQgI1BDREFUQSBidXQgY29udGFpbnMgbm9uIHRleHQgbm9kZXNcbiIsCisJCQkJc3RhdGUtPm5vZGUtPm5hbWUsIE5VTEwsIE5VTEwpOworCQkJcmV0ID0gMDsKKwkJICAgIH0gZWxzZSB7CisJCQlyZXQgPSB4bWxWYWxpZGF0ZUNoZWNrTWl4ZWQoY3R4dCwgZWxlbURlY2wtPmNvbnRlbnQsCisJCQkJICAgICAgICAgICAgICAgICAgICBxbmFtZSk7CisJCQlpZiAocmV0ICE9IDEpIHsKKwkJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgc3RhdGUtPm5vZGUsCisJCQkJCSAgICBYTUxfRFREX0lOVkFMSURfQ0hJTEQsCisJICAgICAgICJFbGVtZW50ICVzIGlzIG5vdCBkZWNsYXJlZCBpbiAlcyBsaXN0IG9mIHBvc3NpYmxlIGNoaWxkcmVuXG4iLAorCQkJCSAgICBxbmFtZSwgc3RhdGUtPm5vZGUtPm5hbWUsIE5VTEwpOworCQkJfQorCQkgICAgfQorCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UOgorCQkgICAgLyoKKwkJICAgICAqIFRPRE86CisJCSAgICAgKiBWQzogU3RhbmRhbG9uZSBEb2N1bWVudCBEZWNsYXJhdGlvbgorCQkgICAgICogICAgIC0gZWxlbWVudCB0eXBlcyB3aXRoIGVsZW1lbnQgY29udGVudCwgaWYgd2hpdGUgc3BhY2UKKwkJICAgICAqICAgICAgIG9jY3VycyBkaXJlY3RseSB3aXRoaW4gYW55IGluc3RhbmNlIG9mIHRob3NlIHR5cGVzLgorCQkgICAgICovCisJCSAgICBpZiAoc3RhdGUtPmV4ZWMgIT0gTlVMTCkgeworCQkJcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoc3RhdGUtPmV4ZWMsIHFuYW1lLCBOVUxMKTsKKwkJCWlmIChyZXQgPCAwKSB7CisJCQkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIHN0YXRlLT5ub2RlLAorCQkJCQkgICAgWE1MX0RURF9DT05URU5UX01PREVMLAorCSAgICAgICAiRWxlbWVudCAlcyBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFRELCBNaXNwbGFjZWQgJXNcbiIsCisJCQkJICAgc3RhdGUtPm5vZGUtPm5hbWUsIHFuYW1lLCBOVUxMKTsKKwkJCSAgICByZXQgPSAwOworCQkJfSBlbHNlIHsKKwkJCSAgICByZXQgPSAxOworCQkJfQorCQkgICAgfQorCQkgICAgYnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorICAgIGVEZWNsID0geG1sVmFsaWRHZXRFbGVtRGVjbChjdHh0LCBkb2MsIGVsZW0sICZleHRzdWJzZXQpOworICAgIHZzdGF0ZVZQdXNoKGN0eHQsIGVEZWNsLCBlbGVtKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZVB1c2hDRGF0YToKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRhdGE6ICBzb21lIGNoYXJhY3RlciBkYXRhIHJlYWQKKyAqIEBsZW46ICB0aGUgbGVuZ2h0IG9mIHRoZSBkYXRhCisgKgorICogY2hlY2sgdGhlIENEYXRhIHBhcnNlZCBmb3IgdmFsaWRhdGlvbiBpbiB0aGUgY3VycmVudCBzdGFjaworICoKKyAqIHJldHVybnMgMSBpZiBubyB2YWxpZGF0aW9uIHByb2JsZW0gd2FzIGZvdW5kIG9yIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVmFsaWRhdGVQdXNoQ0RhdGEoeG1sVmFsaWRDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKmRhdGEsIGludCBsZW4pIHsKKyAgICBpbnQgcmV0ID0gMTsKKworLyogcHJpbnRmKCJDREFUQSAlcyAlZFxuIiwgZGF0YSwgbGVuKTsgKi8KKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMCk7CisgICAgaWYgKGxlbiA8PSAwKQorCXJldHVybihyZXQpOworICAgIGlmICgoY3R4dC0+dnN0YXRlTnIgPiAwKSAmJiAoY3R4dC0+dnN0YXRlICE9IE5VTEwpKSB7CisJeG1sVmFsaWRTdGF0ZVB0ciBzdGF0ZSA9IGN0eHQtPnZzdGF0ZTsKKwl4bWxFbGVtZW50UHRyIGVsZW1EZWNsOworCisJLyoKKwkgKiBDaGVjayB0aGUgbmV3IGVsZW1lbnQgYWdhaXNudCB0aGUgY29udGVudCBtb2RlbCBvZiB0aGUgbmV3IGVsZW0uCisJICovCisJaWYgKHN0YXRlLT5lbGVtRGVjbCAhPSBOVUxMKSB7CisJICAgIGVsZW1EZWNsID0gc3RhdGUtPmVsZW1EZWNsOworCisJICAgIHN3aXRjaChlbGVtRGVjbC0+ZXR5cGUpIHsKKwkJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX1VOREVGSU5FRDoKKwkJICAgIHJldCA9IDA7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfRUxFTUVOVF9UWVBFX0VNUFRZOgorCQkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIHN0YXRlLT5ub2RlLAorCQkJCSAgICBYTUxfRFREX05PVF9FTVBUWSwKKwkgICAgICAgIkVsZW1lbnQgJXMgd2FzIGRlY2xhcmVkIEVNUFRZIHRoaXMgb25lIGhhcyBjb250ZW50XG4iLAorCQkJICAgc3RhdGUtPm5vZGUtPm5hbWUsIE5VTEwsIE5VTEwpOworCQkgICAgcmV0ID0gMDsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX1RZUEVfQU5ZOgorCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VMRU1FTlRfVFlQRV9NSVhFRDoKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVDoKKwkJICAgIGlmIChsZW4gPiAwKSB7CisJCQlpbnQgaTsKKworCQkJZm9yIChpID0gMDtpIDwgbGVuO2krKykgeworCQkJICAgIGlmICghSVNfQkxBTktfQ0goZGF0YVtpXSkpIHsKKwkJCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgc3RhdGUtPm5vZGUsCisJCQkJCQlYTUxfRFREX0NPTlRFTlRfTU9ERUwsCisJICAgIkVsZW1lbnQgJXMgY29udGVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIERURCwgVGV4dCBub3QgYWxsb3dlZFxuIiwKKwkJCQkgICAgICAgc3RhdGUtPm5vZGUtPm5hbWUsIE5VTEwsIE5VTEwpOworCQkJCXJldCA9IDA7CisJCQkJZ290byBkb25lOworCQkJICAgIH0KKwkJCX0KKwkJCS8qCisJCQkgKiBUT0RPOgorCQkJICogVkM6IFN0YW5kYWxvbmUgRG9jdW1lbnQgRGVjbGFyYXRpb24KKwkJCSAqICBlbGVtZW50IHR5cGVzIHdpdGggZWxlbWVudCBjb250ZW50LCBpZiB3aGl0ZSBzcGFjZQorCQkJICogIG9jY3VycyBkaXJlY3RseSB3aXRoaW4gYW55IGluc3RhbmNlIG9mIHRob3NlIHR5cGVzLgorCQkJICovCisJCSAgICB9CisJCSAgICBicmVhazsKKwkgICAgfQorCX0KKyAgICB9Citkb25lOgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFZhbGlkYXRlUG9wRWxlbWVudDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBpbnN0YW5jZQorICogQHFuYW1lOiAgdGhlIHF1YWxpZmllZCBuYW1lIGFzIGFwcGVhcmluZyBpbiB0aGUgc2VyaWFsaXphdGlvbgorICoKKyAqIFBvcCB0aGUgZWxlbWVudCBlbmQgZnJvbSB0aGUgdmFsaWRhdGlvbiBzdGFjay4KKyAqCisgKiByZXR1cm5zIDEgaWYgbm8gdmFsaWRhdGlvbiBwcm9ibGVtIHdhcyBmb3VuZCBvciAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFZhbGlkYXRlUG9wRWxlbWVudCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYyBBVFRSSUJVVEVfVU5VU0VELAorICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZWxlbSBBVFRSSUJVVEVfVU5VU0VELAorCQkgICAgICBjb25zdCB4bWxDaGFyICpxbmFtZSBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaW50IHJldCA9IDE7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMCk7CisvKiBwcmludGYoIlBvcEVsZW0gJXNcbiIsIHFuYW1lKTsgKi8KKyAgICBpZiAoKGN0eHQtPnZzdGF0ZU5yID4gMCkgJiYgKGN0eHQtPnZzdGF0ZSAhPSBOVUxMKSkgeworCXhtbFZhbGlkU3RhdGVQdHIgc3RhdGUgPSBjdHh0LT52c3RhdGU7CisJeG1sRWxlbWVudFB0ciBlbGVtRGVjbDsKKworCS8qCisJICogQ2hlY2sgdGhlIG5ldyBlbGVtZW50IGFnYWlzbnQgdGhlIGNvbnRlbnQgbW9kZWwgb2YgdGhlIG5ldyBlbGVtLgorCSAqLworCWlmIChzdGF0ZS0+ZWxlbURlY2wgIT0gTlVMTCkgeworCSAgICBlbGVtRGVjbCA9IHN0YXRlLT5lbGVtRGVjbDsKKworCSAgICBpZiAoZWxlbURlY2wtPmV0eXBlID09IFhNTF9FTEVNRU5UX1RZUEVfRUxFTUVOVCkgeworCQlpZiAoc3RhdGUtPmV4ZWMgIT0gTlVMTCkgeworCQkgICAgcmV0ID0geG1sUmVnRXhlY1B1c2hTdHJpbmcoc3RhdGUtPmV4ZWMsIE5VTEwsIE5VTEwpOworCQkgICAgaWYgKHJldCA9PSAwKSB7CisJCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgc3RhdGUtPm5vZGUsCisJCQkgICAgICAgICAgICAgICAgWE1MX0RURF9DT05URU5UX01PREVMLAorCSAgICJFbGVtZW50ICVzIGNvbnRlbnQgZG9lcyBub3QgZm9sbG93IHRoZSBEVEQsIEV4cGVjdGluZyBtb3JlIGNoaWxkXG4iLAorCQkJICAgICAgIHN0YXRlLT5ub2RlLT5uYW1lLCBOVUxMLE5VTEwpOworCQkgICAgfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBwcmV2aW91cyB2YWxpZGF0aW9uIGVycm9ycyBzaG91bGQgbm90IGdlbmVyYXRlCisJCQkgKiBhIG5ldyBvbmUgaGVyZQorCQkJICovCisJCQlyZXQgPSAxOworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisJdnN0YXRlVlBvcChjdHh0KTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1JFR0VYUF9FTkFCTEVEICovCisKKy8qKgorICogeG1sVmFsaWRhdGVPbmVFbGVtZW50OgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBkb2N1bWVudCBpbnN0YW5jZQorICogQGVsZW06ICBhbiBlbGVtZW50IGluc3RhbmNlCisgKgorICogVHJ5IHRvIHZhbGlkYXRlIGEgc2luZ2xlIGVsZW1lbnQgYW5kIGl0J3MgYXR0cmlidXRlcywKKyAqIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGFzIGRlc2NyaWJlZCBieSB0aGUKKyAqIFhNTC0xLjAgcmVjb21tZW5kYXRpb246CisgKiAgLSBbIFZDOiBFbGVtZW50IFZhbGlkIF0KKyAqICAtIFsgVkM6IFJlcXVpcmVkIEF0dHJpYnV0ZSBdCisgKiBUaGVuIGNhbGwgeG1sVmFsaWRhdGVPbmVBdHRyaWJ1dGUoKSBmb3IgZWFjaCBhdHRyaWJ1dGUgcHJlc2VudC4KKyAqCisgKiBUaGUgSUQvSURSRUYgY2hlY2tpbmdzIGFyZSBkb25lIHNlcGFyYXRlbHkKKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlT25lRWxlbWVudCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYywKKyAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGVsZW0pIHsKKyAgICB4bWxFbGVtZW50UHRyIGVsZW1EZWNsID0gTlVMTDsKKyAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjb250OworICAgIHhtbEF0dHJpYnV0ZVB0ciBhdHRyOworICAgIHhtbE5vZGVQdHIgY2hpbGQ7CisgICAgaW50IHJldCA9IDEsIHRtcDsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGludCBleHRzdWJzZXQgPSAwOworCisgICAgQ0hFQ0tfRFREOworCisgICAgaWYgKGVsZW0gPT0gTlVMTCkgcmV0dXJuKDApOworICAgIHN3aXRjaCAoZWxlbS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICJBdHRyaWJ1dGUgZWxlbWVudCBub3QgZXhwZWN0ZWRcbiIsIE5VTEwsIE5VTEwgLE5VTEwpOworCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgaWYgKGVsZW0tPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICAgICAgICAgICAgICAiVGV4dCBlbGVtZW50IGhhcyBjaGlsZHJlbiAhXG4iLAorCQkJCU5VTEwsTlVMTCxOVUxMKTsKKwkJcmV0dXJuKDApOworCSAgICB9CisJICAgIGlmIChlbGVtLT5ucyAhPSBOVUxMKSB7CisJCXhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAgICAgICAgICAgICAgIlRleHQgZWxlbWVudCBoYXMgbmFtZXNwYWNlICFcbiIsCisJCQkJTlVMTCxOVUxMLE5VTEwpOworCQlyZXR1cm4oMCk7CisJICAgIH0KKwkgICAgaWYgKGVsZW0tPmNvbnRlbnQgPT0gTlVMTCkgeworCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICAgICAgICAgICAgICAgICJUZXh0IGVsZW1lbnQgaGFzIG5vIGNvbnRlbnQgIVxuIiwKKwkJCQlOVUxMLE5VTEwsTlVMTCk7CisJCXJldHVybigwKTsKKwkgICAgfQorCSAgICByZXR1cm4oMSk7CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisgICAgICAgICAgICByZXR1cm4oMSk7CisgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisJICAgIHJldHVybigxKTsKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAiRW50aXR5IGVsZW1lbnQgbm90IGV4cGVjdGVkXG4iLCBOVUxMLCBOVUxMICxOVUxMKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICAgIk5vdGF0aW9uIGVsZW1lbnQgbm90IGV4cGVjdGVkXG4iLCBOVUxMLCBOVUxMICxOVUxMKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisJCSAgICJEb2N1bWVudCBlbGVtZW50IG5vdCBleHBlY3RlZFxuIiwgTlVMTCwgTlVMTCAsTlVMTCk7CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICAgIkhUTUwgRG9jdW1lbnQgbm90IGV4cGVjdGVkXG4iLCBOVUxMLCBOVUxMICxOVUxMKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorCQkgICAidW5rbm93biBlbGVtZW50IHR5cGVcbiIsIE5VTEwsIE5VTEwgLE5VTEwpOworCSAgICByZXR1cm4oMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGZXRjaCB0aGUgZGVjbGFyYXRpb24KKyAgICAgKi8KKyAgICBlbGVtRGVjbCA9IHhtbFZhbGlkR2V0RWxlbURlY2woY3R4dCwgZG9jLCBlbGVtLCAmZXh0c3Vic2V0KTsKKyAgICBpZiAoZWxlbURlY2wgPT0gTlVMTCkKKwlyZXR1cm4oMCk7CisKKyAgICAvKgorICAgICAqIElmIHZzdGF0ZU5yIGlzIG5vdCB6ZXJvIHRoYXQgbWVhbnMgY29udGludW91cyB2YWxpZGF0aW9uIGlzIAorICAgICAqIGFjdGl2YXRlZCwgZG8gbm90IHRyeSB0byBjaGVjayB0aGUgY29udGVudCBtb2RlbCBhdCB0aGF0IGxldmVsLgorICAgICAqLworICAgIGlmIChjdHh0LT52c3RhdGVOciA9PSAwKSB7CisgICAgLyogQ2hlY2sgdGhhdCB0aGUgZWxlbWVudCBjb250ZW50IG1hdGNoZXMgdGhlIGRlZmluaXRpb24gKi8KKyAgICBzd2l0Y2ggKGVsZW1EZWNsLT5ldHlwZSkgeworICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX1RZUEVfVU5ERUZJTkVEOgorCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9VTktOT1dOX0VMRU0sCisJICAgICAgICAgICAgICAgICAgICAiTm8gZGVjbGFyYXRpb24gZm9yIGVsZW1lbnQgJXNcbiIsCisJCSAgIGVsZW0tPm5hbWUsIE5VTEwsIE5VTEwpOworCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfVFlQRV9FTVBUWToKKwkgICAgaWYgKGVsZW0tPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfTk9UX0VNUFRZLAorCSAgICAgICAiRWxlbWVudCAlcyB3YXMgZGVjbGFyZWQgRU1QVFkgdGhpcyBvbmUgaGFzIGNvbnRlbnRcbiIsCisJICAgICAgICAgICAgICAgZWxlbS0+bmFtZSwgTlVMTCwgTlVMTCk7CisJCXJldCA9IDA7CisJICAgIH0KKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfVFlQRV9BTlk6CisJICAgIC8qIEkgZG9uJ3QgdGhpbmsgYW55dGhpbmcgaXMgcmVxdWlyZWQgdGhlbiAqLworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9UWVBFX01JWEVEOgorCisJICAgIC8qIHNpbXBsZSBjYXNlIG9mIGRlY2xhcmVkIGFzICNQQ0RBVEEgKi8KKwkgICAgaWYgKChlbGVtRGVjbC0+Y29udGVudCAhPSBOVUxMKSAmJgorCQkoZWxlbURlY2wtPmNvbnRlbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEEpKSB7CisJCXJldCA9IHhtbFZhbGlkYXRlT25lQ2RhdGFFbGVtZW50KGN0eHQsIGRvYywgZWxlbSk7CisJCWlmICghcmV0KSB7CisJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9OT1RfUENEQVRBLAorCSAgICAgICAiRWxlbWVudCAlcyB3YXMgZGVjbGFyZWQgI1BDREFUQSBidXQgY29udGFpbnMgbm9uIHRleHQgbm9kZXNcbiIsCisJCQkgICBlbGVtLT5uYW1lLCBOVUxMLCBOVUxMKTsKKwkJfQorCQlicmVhazsKKwkgICAgfQorCSAgICBjaGlsZCA9IGVsZW0tPmNoaWxkcmVuOworCSAgICAvKiBIdW0sIHRoaXMgc3RhcnQgdG8gZ2V0IG1lc3N5ICovCisJICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisJICAgICAgICBpZiAoY2hpbGQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCQkgICAgbmFtZSA9IGNoaWxkLT5uYW1lOworCQkgICAgaWYgKChjaGlsZC0+bnMgIT0gTlVMTCkgJiYgKGNoaWxkLT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisJCQl4bWxDaGFyIGZuWzUwXTsKKwkJCXhtbENoYXIgKmZ1bGxuYW1lOworCQkJCisJCQlmdWxsbmFtZSA9IHhtbEJ1aWxkUU5hbWUoY2hpbGQtPm5hbWUsIGNoaWxkLT5ucy0+cHJlZml4LAorCQkJCSAgICAgICAgICAgICAgICAgZm4sIDUwKTsKKwkJCWlmIChmdWxsbmFtZSA9PSBOVUxMKQorCQkJICAgIHJldHVybigwKTsKKwkJCWNvbnQgPSBlbGVtRGVjbC0+Y29udGVudDsKKwkJCXdoaWxlIChjb250ICE9IE5VTEwpIHsKKwkJCSAgICBpZiAoY29udC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQpIHsKKwkJCQlpZiAoeG1sU3RyRXF1YWwoY29udC0+bmFtZSwgZnVsbG5hbWUpKQorCQkJCSAgICBicmVhazsKKwkJCSAgICB9IGVsc2UgaWYgKChjb250LT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpICYmCisJCQkgICAgICAgKGNvbnQtPmMxICE9IE5VTEwpICYmCisJCQkgICAgICAgKGNvbnQtPmMxLT50eXBlID09IFhNTF9FTEVNRU5UX0NPTlRFTlRfRUxFTUVOVCkpeworCQkJCWlmICh4bWxTdHJFcXVhbChjb250LT5jMS0+bmFtZSwgZnVsbG5hbWUpKQorCQkJCSAgICBicmVhazsKKwkJCSAgICB9IGVsc2UgaWYgKChjb250LT50eXBlICE9IFhNTF9FTEVNRU5UX0NPTlRFTlRfT1IpIHx8CisJCQkJKGNvbnQtPmMxID09IE5VTEwpIHx8CisJCQkJKGNvbnQtPmMxLT50eXBlICE9IFhNTF9FTEVNRU5UX0NPTlRFTlRfUENEQVRBKSl7CisJCQkJeG1sRXJyVmFsaWQoTlVMTCwgWE1MX0RURF9NSVhFRF9DT1JSVVBULCAKKwkJCQkJIkludGVybmFsOiBNSVhFRCBzdHJ1Y3QgY29ycnVwdGVkXG4iLAorCQkJCQlOVUxMKTsKKwkJCQlicmVhazsKKwkJCSAgICB9CisJCQkgICAgY29udCA9IGNvbnQtPmMyOworCQkJfQorCQkJaWYgKChmdWxsbmFtZSAhPSBmbikgJiYgKGZ1bGxuYW1lICE9IGNoaWxkLT5uYW1lKSkKKwkJCSAgICB4bWxGcmVlKGZ1bGxuYW1lKTsKKwkJCWlmIChjb250ICE9IE5VTEwpCisJCQkgICAgZ290byBjaGlsZF9vazsKKwkJICAgIH0KKwkJICAgIGNvbnQgPSBlbGVtRGVjbC0+Y29udGVudDsKKwkJICAgIHdoaWxlIChjb250ICE9IE5VTEwpIHsKKwkJICAgICAgICBpZiAoY29udC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX0VMRU1FTlQpIHsKKwkJCSAgICBpZiAoeG1sU3RyRXF1YWwoY29udC0+bmFtZSwgbmFtZSkpIGJyZWFrOworCQkJfSBlbHNlIGlmICgoY29udC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSAmJgorCQkJICAgKGNvbnQtPmMxICE9IE5VTEwpICYmCisJCQkgICAoY29udC0+YzEtPnR5cGUgPT0gWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UKSkgeworCQkJICAgIGlmICh4bWxTdHJFcXVhbChjb250LT5jMS0+bmFtZSwgbmFtZSkpIGJyZWFrOworCQkJfSBlbHNlIGlmICgoY29udC0+dHlwZSAhPSBYTUxfRUxFTUVOVF9DT05URU5UX09SKSB8fAorCQkJICAgIChjb250LT5jMSA9PSBOVUxMKSB8fAorCQkJICAgIChjb250LT5jMS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9DT05URU5UX1BDREFUQSkpIHsKKwkJCSAgICB4bWxFcnJWYWxpZChjdHh0LCBYTUxfRFREX01JWEVEX0NPUlJVUFQsIAorCQkJCSAgICAiSW50ZXJuYWw6IE1JWEVEIHN0cnVjdCBjb3JydXB0ZWRcbiIsCisJCQkJICAgIE5VTEwpOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJY29udCA9IGNvbnQtPmMyOworCQkgICAgfQorCQkgICAgaWYgKGNvbnQgPT0gTlVMTCkgeworCQkJeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sIFhNTF9EVERfSU5WQUxJRF9DSElMRCwKKwkgICAgICAgIkVsZW1lbnQgJXMgaXMgbm90IGRlY2xhcmVkIGluICVzIGxpc3Qgb2YgcG9zc2libGUgY2hpbGRyZW5cbiIsCisJCQkgICAgICAgbmFtZSwgZWxlbS0+bmFtZSwgTlVMTCk7CisJCQlyZXQgPSAwOworCQkgICAgfQorCQl9CitjaGlsZF9vazoKKwkgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJICAgIH0KKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfVFlQRV9FTEVNRU5UOgorCSAgICBpZiAoKGRvYy0+c3RhbmRhbG9uZSA9PSAxKSAmJiAoZXh0c3Vic2V0ID09IDEpKSB7CisJCS8qCisJCSAqIFZDOiBTdGFuZGFsb25lIERvY3VtZW50IERlY2xhcmF0aW9uCisJCSAqICAgICAtIGVsZW1lbnQgdHlwZXMgd2l0aCBlbGVtZW50IGNvbnRlbnQsIGlmIHdoaXRlIHNwYWNlCisJCSAqICAgICAgIG9jY3VycyBkaXJlY3RseSB3aXRoaW4gYW55IGluc3RhbmNlIG9mIHRob3NlIHR5cGVzLgorCQkgKi8KKwkJY2hpbGQgPSBlbGVtLT5jaGlsZHJlbjsKKwkJd2hpbGUgKGNoaWxkICE9IE5VTEwpIHsKKwkJICAgIGlmIChjaGlsZC0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB7CisJCQljb25zdCB4bWxDaGFyICpjb250ZW50ID0gY2hpbGQtPmNvbnRlbnQ7CisKKwkJCXdoaWxlIChJU19CTEFOS19DSCgqY29udGVudCkpCisJCQkgICAgY29udGVudCsrOworCQkJaWYgKCpjb250ZW50ID09IDApIHsKKwkJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwKKwkJCSAgICAgICAgICAgICAgICAgICAgWE1MX0RURF9TVEFOREFMT05FX1dISVRFX1NQQUNFLAorInN0YW5kYWxvbmU6ICVzIGRlY2xhcmVkIGluIHRoZSBleHRlcm5hbCBzdWJzZXQgY29udGFpbnMgd2hpdGUgc3BhY2VzIG5vZGVzXG4iLAorCQkJCSAgIGVsZW0tPm5hbWUsIE5VTEwsIE5VTEwpOworCQkJICAgIHJldCA9IDA7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCSAgICB9CisJCSAgICBjaGlsZCA9Y2hpbGQtPm5leHQ7CisJCX0KKwkgICAgfQorCSAgICBjaGlsZCA9IGVsZW0tPmNoaWxkcmVuOworCSAgICBjb250ID0gZWxlbURlY2wtPmNvbnRlbnQ7CisJICAgIHRtcCA9IHhtbFZhbGlkYXRlRWxlbWVudENvbnRlbnQoY3R4dCwgY2hpbGQsIGVsZW1EZWNsLCAxLCBlbGVtKTsKKwkgICAgaWYgKHRtcCA8PSAwKQorCQlyZXQgPSB0bXA7CisJICAgIGJyZWFrOworICAgIH0KKyAgICB9IC8qIG5vdCBjb250aW51b3VzICovCisKKyAgICAvKiBbIFZDOiBSZXF1aXJlZCBBdHRyaWJ1dGUgXSAqLworICAgIGF0dHIgPSBlbGVtRGVjbC0+YXR0cmlidXRlczsKKyAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisJaWYgKGF0dHItPmRlZiA9PSBYTUxfQVRUUklCVVRFX1JFUVVJUkVEKSB7CisJICAgIGludCBxdWFsaWZpZWQgPSAtMTsKKworCSAgICBpZiAoKGF0dHItPnByZWZpeCA9PSBOVUxMKSAmJgorCQkoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInhtbG5zIikpKSB7CisJCXhtbE5zUHRyIG5zOworCisJCW5zID0gZWxlbS0+bnNEZWY7CisJCXdoaWxlIChucyAhPSBOVUxMKSB7CisJCSAgICBpZiAobnMtPnByZWZpeCA9PSBOVUxMKQorCQkJZ290byBmb3VuZDsKKwkJICAgIG5zID0gbnMtPm5leHQ7CisJCX0KKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5wcmVmaXgsIEJBRF9DQVNUICJ4bWxucyIpKSB7CisJCXhtbE5zUHRyIG5zOworCisJCW5zID0gZWxlbS0+bnNEZWY7CisJCXdoaWxlIChucyAhPSBOVUxMKSB7CisJCSAgICBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgbnMtPnByZWZpeCkpCisJCQlnb3RvIGZvdW5kOworCQkgICAgbnMgPSBucy0+bmV4dDsKKwkJfQorCSAgICB9IGVsc2UgeworCQl4bWxBdHRyUHRyIGF0dHJpYjsKKwkJCisJCWF0dHJpYiA9IGVsZW0tPnByb3BlcnRpZXM7CisJCXdoaWxlIChhdHRyaWIgIT0gTlVMTCkgeworCQkgICAgaWYgKHhtbFN0ckVxdWFsKGF0dHJpYi0+bmFtZSwgYXR0ci0+bmFtZSkpIHsKKwkJCWlmIChhdHRyLT5wcmVmaXggIT0gTlVMTCkgeworCQkJICAgIHhtbE5zUHRyIG5hbWVTcGFjZSA9IGF0dHJpYi0+bnM7CisKKwkJCSAgICBpZiAobmFtZVNwYWNlID09IE5VTEwpCisJCQkJbmFtZVNwYWNlID0gZWxlbS0+bnM7CisJCQkgICAgLyoKKwkJCSAgICAgKiBxdWFsaWZpZWQgbmFtZXMgaGFuZGxpbmcgaXMgcHJvYmxlbWF0aWMsIGhhdmluZyBhCisJCQkgICAgICogZGlmZmVyZW50IHByZWZpeCBzaG91bGQgYmUgcG9zc2libGUgYnV0IERURHMgZG9uJ3QKKwkJCSAgICAgKiBhbGxvdyB0byBkZWZpbmUgdGhlIFVSSSBpbnN0ZWFkIG9mIHRoZSBwcmVmaXggOi0oCisJCQkgICAgICovCisJCQkgICAgaWYgKG5hbWVTcGFjZSA9PSBOVUxMKSB7CisJCQkJaWYgKHF1YWxpZmllZCA8IDApIAorCQkJCSAgICBxdWFsaWZpZWQgPSAwOworCQkJICAgIH0gZWxzZSBpZiAoIXhtbFN0ckVxdWFsKG5hbWVTcGFjZS0+cHJlZml4LAorCQkJCQkJICAgIGF0dHItPnByZWZpeCkpIHsKKwkJCQlpZiAocXVhbGlmaWVkIDwgMSkgCisJCQkJICAgIHF1YWxpZmllZCA9IDE7CisJCQkgICAgfSBlbHNlCisJCQkJZ290byBmb3VuZDsKKwkJCX0gZWxzZSB7CisJCQkgICAgLyoKKwkJCSAgICAgKiBXZSBzaG91bGQgYWxsb3cgYXBwbGljYXRpb25zIHRvIGRlZmluZSBuYW1lc3BhY2VzCisJCQkgICAgICogZm9yIHRoZWlyIGFwcGxpY2F0aW9uIGV2ZW4gaWYgdGhlIERURCBkb2Vzbid0IAorCQkJICAgICAqIGNhcnJ5IG9uZSwgb3RoZXJ3aXNlLCBiYXNpY2FsbHkgd2Ugd291bGQgYWx3YXlzCisJCQkgICAgICogYnJlYWsuCisJCQkgICAgICovCisJCQkgICAgZ290byBmb3VuZDsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGF0dHJpYiA9IGF0dHJpYi0+bmV4dDsKKwkJfQorCSAgICB9CisJICAgIGlmIChxdWFsaWZpZWQgPT0gLTEpIHsKKwkJaWYgKGF0dHItPnByZWZpeCA9PSBOVUxMKSB7CisJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURSwKKwkJICAgICAgICJFbGVtZW50ICVzIGRvZXMgbm90IGNhcnJ5IGF0dHJpYnV0ZSAlc1xuIiwKKwkJCSAgIGVsZW0tPm5hbWUsIGF0dHItPm5hbWUsIE5VTEwpOworCQkgICAgcmV0ID0gMDsKKwkgICAgICAgIH0gZWxzZSB7CisJCSAgICB4bWxFcnJWYWxpZE5vZGUoY3R4dCwgZWxlbSwgWE1MX0RURF9NSVNTSU5HX0FUVFJJQlVURSwKKwkJICAgICAgICJFbGVtZW50ICVzIGRvZXMgbm90IGNhcnJ5IGF0dHJpYnV0ZSAlczolc1xuIiwKKwkJCSAgIGVsZW0tPm5hbWUsIGF0dHItPnByZWZpeCxhdHRyLT5uYW1lKTsKKwkJICAgIHJldCA9IDA7CisJCX0KKwkgICAgfSBlbHNlIGlmIChxdWFsaWZpZWQgPT0gMCkgeworCQl4bWxFcnJWYWxpZFdhcm5pbmcoY3R4dCwgZWxlbSwgWE1MX0RURF9OT19QUkVGSVgsCisJCSAgICJFbGVtZW50ICVzIHJlcXVpcmVkIGF0dHJpYnV0ZSAlczolcyBoYXMgbm8gcHJlZml4XG4iLAorCQkgICAgICAgZWxlbS0+bmFtZSwgYXR0ci0+cHJlZml4LCBhdHRyLT5uYW1lKTsKKwkgICAgfSBlbHNlIGlmIChxdWFsaWZpZWQgPT0gMSkgeworCQl4bWxFcnJWYWxpZFdhcm5pbmcoY3R4dCwgZWxlbSwgWE1MX0RURF9ESUZGRVJFTlRfUFJFRklYLAorCQkgICAiRWxlbWVudCAlcyByZXF1aXJlZCBhdHRyaWJ1dGUgJXM6JXMgaGFzIGRpZmZlcmVudCBwcmVmaXhcbiIsCisJCSAgICAgICBlbGVtLT5uYW1lLCBhdHRyLT5wcmVmaXgsIGF0dHItPm5hbWUpOworCSAgICB9CisJfSBlbHNlIGlmIChhdHRyLT5kZWYgPT0gWE1MX0FUVFJJQlVURV9GSVhFRCkgeworCSAgICAvKgorCSAgICAgKiBTcGVjaWFsIHRlc3RzIGNoZWNraW5nICNGSVhFRCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zCisJICAgICAqIGhhdmUgdGhlIHJpZ2h0IHZhbHVlIHNpbmNlIHRoaXMgaXMgbm90IGRvbmUgYXMgYW4KKwkgICAgICogYXR0cmlidXRlIGNoZWNraW5nCisJICAgICAqLworCSAgICBpZiAoKGF0dHItPnByZWZpeCA9PSBOVUxMKSAmJgorCQkoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInhtbG5zIikpKSB7CisJCXhtbE5zUHRyIG5zOworCisJCW5zID0gZWxlbS0+bnNEZWY7CisJCXdoaWxlIChucyAhPSBOVUxMKSB7CisJCSAgICBpZiAobnMtPnByZWZpeCA9PSBOVUxMKSB7CisJCQlpZiAoIXhtbFN0ckVxdWFsKGF0dHItPmRlZmF1bHRWYWx1ZSwgbnMtPmhyZWYpKSB7CisJCQkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGVsZW0sCisJCQkgICAgICAgICAgIFhNTF9EVERfRUxFTV9ERUZBVUxUX05BTUVTUEFDRSwKKyAgICJFbGVtZW50ICVzIG5hbWVzcGFjZSBuYW1lIGZvciBkZWZhdWx0IG5hbWVzcGFjZSBkb2VzIG5vdCBtYXRjaCB0aGUgRFREXG4iLAorCQkJCSAgIGVsZW0tPm5hbWUsIE5VTEwsIE5VTEwpOworCQkJICAgIHJldCA9IDA7CisJCQl9CisJCQlnb3RvIGZvdW5kOworCQkgICAgfQorCQkgICAgbnMgPSBucy0+bmV4dDsKKwkJfQorCSAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPnByZWZpeCwgQkFEX0NBU1QgInhtbG5zIikpIHsKKwkJeG1sTnNQdHIgbnM7CisKKwkJbnMgPSBlbGVtLT5uc0RlZjsKKwkJd2hpbGUgKG5zICE9IE5VTEwpIHsKKwkJICAgIGlmICh4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBucy0+cHJlZml4KSkgeworCQkJaWYgKCF4bWxTdHJFcXVhbChhdHRyLT5kZWZhdWx0VmFsdWUsIG5zLT5ocmVmKSkgeworCQkJICAgIHhtbEVyclZhbGlkTm9kZShjdHh0LCBlbGVtLCBYTUxfRFREX0VMRU1fTkFNRVNQQUNFLAorCQkgICAiRWxlbWVudCAlcyBuYW1lc3BhY2UgbmFtZSBmb3IgJXMgZG9lcyBub3QgbWF0Y2ggdGhlIERURFxuIiwKKwkJCQkgICBlbGVtLT5uYW1lLCBucy0+cHJlZml4LCBOVUxMKTsKKwkJCSAgICByZXQgPSAwOworCQkJfQorCQkJZ290byBmb3VuZDsKKwkJICAgIH0KKwkJICAgIG5zID0gbnMtPm5leHQ7CisJCX0KKwkgICAgfQorCX0KK2ZvdW5kOgkgICAgCisgICAgICAgIGF0dHIgPSBhdHRyLT5uZXh0aDsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVSb290OgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBkb2N1bWVudCBpbnN0YW5jZQorICoKKyAqIFRyeSB0byB2YWxpZGF0ZSBhIHRoZSByb290IGVsZW1lbnQKKyAqIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2sgYXMgZGVzY3JpYmVkIGJ5IHRoZQorICogWE1MLTEuMCByZWNvbW1lbmRhdGlvbjoKKyAqICAtIFsgVkM6IFJvb3QgRWxlbWVudCBUeXBlIF0KKyAqIGl0IGRvZXNuJ3QgdHJ5IHRvIHJlY3Vyc2Ugb3IgYXBwbHkgb3RoZXIgY2hlY2sgdG8gdGhlIGVsZW1lbnQKKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlUm9vdCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYykgeworICAgIHhtbE5vZGVQdHIgcm9vdDsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm4oMCk7CisKKyAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAoKHJvb3QgPT0gTlVMTCkgfHwgKHJvb3QtPm5hbWUgPT0gTlVMTCkpIHsKKwl4bWxFcnJWYWxpZChjdHh0LCBYTUxfRFREX05PX1JPT1QsCisJICAgICAgICAgICAgIm5vIHJvb3QgZWxlbWVudFxuIiwgTlVMTCk7CisgICAgICAgIHJldHVybigwKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFdoZW4gZG9pbmcgcG9zdCB2YWxpZGF0aW9uIGFnYWluc3QgYSBzZXBhcmF0ZSBEVEQsIHRob3NlIG1heQorICAgICAqIG5vIGludGVybmFsIHN1YnNldCBoYXMgYmVlbiBnZW5lcmF0ZWQKKyAgICAgKi8KKyAgICBpZiAoKGRvYy0+aW50U3Vic2V0ICE9IE5VTEwpICYmCisJKGRvYy0+aW50U3Vic2V0LT5uYW1lICE9IE5VTEwpKSB7CisJLyoKKwkgKiBDaGVjayBmaXJzdCB0aGUgZG9jdW1lbnQgcm9vdCBhZ2FpbnN0IHRoZSBOUU5hbWUKKwkgKi8KKwlpZiAoIXhtbFN0ckVxdWFsKGRvYy0+aW50U3Vic2V0LT5uYW1lLCByb290LT5uYW1lKSkgeworCSAgICBpZiAoKHJvb3QtPm5zICE9IE5VTEwpICYmIChyb290LT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisJCXhtbENoYXIgZm5bNTBdOworCQl4bWxDaGFyICpmdWxsbmFtZTsKKwkJCisJCWZ1bGxuYW1lID0geG1sQnVpbGRRTmFtZShyb290LT5uYW1lLCByb290LT5ucy0+cHJlZml4LCBmbiwgNTApOworCQlpZiAoZnVsbG5hbWUgPT0gTlVMTCkgeworCQkgICAgeG1sVkVyck1lbW9yeShjdHh0LCBOVUxMKTsKKwkJICAgIHJldHVybigwKTsKKwkJfQorCQlyZXQgPSB4bWxTdHJFcXVhbChkb2MtPmludFN1YnNldC0+bmFtZSwgZnVsbG5hbWUpOworCQlpZiAoKGZ1bGxuYW1lICE9IGZuKSAmJiAoZnVsbG5hbWUgIT0gcm9vdC0+bmFtZSkpCisJCSAgICB4bWxGcmVlKGZ1bGxuYW1lKTsKKwkJaWYgKHJldCA9PSAxKQorCQkgICAgZ290byBuYW1lX29rOworCSAgICB9IAorCSAgICBpZiAoKHhtbFN0ckVxdWFsKGRvYy0+aW50U3Vic2V0LT5uYW1lLCBCQURfQ0FTVCAiSFRNTCIpKSAmJgorCQkoeG1sU3RyRXF1YWwocm9vdC0+bmFtZSwgQkFEX0NBU1QgImh0bWwiKSkpCisJCWdvdG8gbmFtZV9vazsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIHJvb3QsIFhNTF9EVERfUk9PVF9OQU1FLAorCQkgICAicm9vdCBhbmQgRFREIG5hbWUgZG8gbm90IG1hdGNoICclcycgYW5kICclcydcbiIsCisJCSAgIHJvb3QtPm5hbWUsIGRvYy0+aW50U3Vic2V0LT5uYW1lLCBOVUxMKTsKKwkgICAgcmV0dXJuKDApOworCX0KKyAgICB9CituYW1lX29rOgorICAgIHJldHVybigxKTsKK30KKworCisvKioKKyAqIHhtbFZhbGlkYXRlRWxlbWVudDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqIEBlbGVtOiAgYW4gZWxlbWVudCBpbnN0YW5jZQorICoKKyAqIFRyeSB0byB2YWxpZGF0ZSB0aGUgc3VidHJlZSB1bmRlciBhbiBlbGVtZW50IAorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIG90aGVyd2lzZQorICovCisKK2ludAoreG1sVmFsaWRhdGVFbGVtZW50KHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGVsZW0pIHsKKyAgICB4bWxOb2RlUHRyIGNoaWxkOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICB4bWxOc1B0ciBuczsKKyAgICBjb25zdCB4bWxDaGFyICp2YWx1ZTsKKyAgICBpbnQgcmV0ID0gMTsKKworICAgIGlmIChlbGVtID09IE5VTEwpIHJldHVybigwKTsKKworICAgIC8qCisgICAgICogWEluY2x1ZGUgZWxlbWVudHMgd2VyZSBhZGRlZCBhZnRlciBwYXJzaW5nIGluIHRoZSBpbmZvc2V0LAorICAgICAqIHRoZXkgZG9uJ3QgcmVhbGx5IG1lYW4gYW55dGhpbmcgdmFsaWRhdGlvbiB3aXNlLgorICAgICAqLworICAgIGlmICgoZWxlbS0+dHlwZSA9PSBYTUxfWElOQ0xVREVfU1RBUlQpIHx8CisJKGVsZW0tPnR5cGUgPT0gWE1MX1hJTkNMVURFX0VORCkpCisJcmV0dXJuKDEpOworCisgICAgQ0hFQ0tfRFREOworCisgICAgLyoKKyAgICAgKiBFbnRpdGllcyByZWZlcmVuY2VzIGhhdmUgdG8gYmUgaGFuZGxlZCBzZXBhcmF0ZWx5CisgICAgICovCisgICAgaWYgKGVsZW0tPnR5cGUgPT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgeworCXJldHVybigxKTsKKyAgICB9CisKKyAgICByZXQgJj0geG1sVmFsaWRhdGVPbmVFbGVtZW50KGN0eHQsIGRvYywgZWxlbSk7CisgICAgaWYgKGVsZW0tPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCWF0dHIgPSBlbGVtLT5wcm9wZXJ0aWVzOworCXdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkgICAgdmFsdWUgPSB4bWxOb2RlTGlzdEdldFN0cmluZyhkb2MsIGF0dHItPmNoaWxkcmVuLCAwKTsKKwkgICAgcmV0ICY9IHhtbFZhbGlkYXRlT25lQXR0cmlidXRlKGN0eHQsIGRvYywgZWxlbSwgYXR0ciwgdmFsdWUpOworCSAgICBpZiAodmFsdWUgIT0gTlVMTCkKKwkJeG1sRnJlZSgoY2hhciAqKXZhbHVlKTsKKwkgICAgYXR0cj0gYXR0ci0+bmV4dDsKKwl9CisJbnMgPSBlbGVtLT5uc0RlZjsKKwl3aGlsZSAobnMgIT0gTlVMTCkgeworCSAgICBpZiAoZWxlbS0+bnMgPT0gTlVMTCkKKwkJcmV0ICY9IHhtbFZhbGlkYXRlT25lTmFtZXNwYWNlKGN0eHQsIGRvYywgZWxlbSwgTlVMTCwKKwkJCQkJICAgICAgIG5zLCBucy0+aHJlZik7CisJICAgIGVsc2UKKwkJcmV0ICY9IHhtbFZhbGlkYXRlT25lTmFtZXNwYWNlKGN0eHQsIGRvYywgZWxlbSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0tPm5zLT5wcmVmaXgsIG5zLCBucy0+aHJlZik7CisJICAgIG5zID0gbnMtPm5leHQ7CisJfQorICAgIH0KKyAgICBjaGlsZCA9IGVsZW0tPmNoaWxkcmVuOworICAgIHdoaWxlIChjaGlsZCAhPSBOVUxMKSB7CisgICAgICAgIHJldCAmPSB4bWxWYWxpZGF0ZUVsZW1lbnQoY3R4dCwgZG9jLCBjaGlsZCk7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVSZWY6CisgKiBAcmVmOiAgIEEgcmVmZXJlbmNlIHRvIGJlIHZhbGlkYXRlZAorICogQGN0eHQ6ICBWYWxpZGF0aW9uIGNvbnRleHQKKyAqIEBuYW1lOiAgTmFtZSBvZiBJRCB3ZSBhcmUgc2VhcmNoaW5nIGZvcgorICoKKyAqLworc3RhdGljIHZvaWQKK3htbFZhbGlkYXRlUmVmKHhtbFJlZlB0ciByZWYsIHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAorCSAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sQXR0clB0ciBpZDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisKKyAgICBpZiAocmVmID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmICgocmVmLT5hdHRyID09IE5VTEwpICYmIChyZWYtPm5hbWUgPT0gTlVMTCkpCisJcmV0dXJuOworICAgIGF0dHIgPSByZWYtPmF0dHI7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkgeworCXhtbENoYXIgKmR1cCwgKnN0ciA9IE5VTEwsICpjdXIsIHNhdmU7CisKKwlkdXAgPSB4bWxTdHJkdXAobmFtZSk7CisJaWYgKGR1cCA9PSBOVUxMKSB7CisJICAgIGN0eHQtPnZhbGlkID0gMDsKKwkgICAgcmV0dXJuOworCX0KKwljdXIgPSBkdXA7CisJd2hpbGUgKCpjdXIgIT0gMCkgeworCSAgICBzdHIgPSBjdXI7CisJICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAoIUlTX0JMQU5LX0NIKCpjdXIpKSkgY3VyKys7CisJICAgIHNhdmUgPSAqY3VyOworCSAgICAqY3VyID0gMDsKKwkgICAgaWQgPSB4bWxHZXRJRChjdHh0LT5kb2MsIHN0cik7CisJICAgIGlmIChpZCA9PSBOVUxMKSB7CisJCXhtbEVyclZhbGlkTm9kZU5yKGN0eHQsIE5VTEwsIFhNTF9EVERfVU5LTk9XTl9JRCwKKwkgICAiYXR0cmlidXRlICVzIGxpbmUgJWQgcmVmZXJlbmNlcyBhbiB1bmtub3duIElEIFwiJXNcIlxuIiwKKwkJICAgICAgIHJlZi0+bmFtZSwgcmVmLT5saW5lbm8sIHN0cik7CisJCWN0eHQtPnZhbGlkID0gMDsKKwkgICAgfQorCSAgICBpZiAoc2F2ZSA9PSAwKQorCQlicmVhazsKKwkgICAgKmN1ciA9IHNhdmU7CisJICAgIHdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkgY3VyKys7CisJfQorCXhtbEZyZWUoZHVwKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfSURSRUYpIHsKKwlpZCA9IHhtbEdldElEKGN0eHQtPmRvYywgbmFtZSk7CisJaWYgKGlkID09IE5VTEwpIHsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIGF0dHItPnBhcmVudCwgWE1MX0RURF9VTktOT1dOX0lELAorCSAgICJJRFJFRiBhdHRyaWJ1dGUgJXMgcmVmZXJlbmNlcyBhbiB1bmtub3duIElEIFwiJXNcIlxuIiwKKwkJICAgYXR0ci0+bmFtZSwgbmFtZSwgTlVMTCk7CisJICAgIGN0eHQtPnZhbGlkID0gMDsKKwl9CisgICAgfSBlbHNlIGlmIChhdHRyLT5hdHlwZSA9PSBYTUxfQVRUUklCVVRFX0lEUkVGUykgeworCXhtbENoYXIgKmR1cCwgKnN0ciA9IE5VTEwsICpjdXIsIHNhdmU7CisKKwlkdXAgPSB4bWxTdHJkdXAobmFtZSk7CisJaWYgKGR1cCA9PSBOVUxMKSB7CisJICAgIHhtbFZFcnJNZW1vcnkoY3R4dCwgIklEUkVGUyBzcGxpdCIpOworCSAgICBjdHh0LT52YWxpZCA9IDA7CisJICAgIHJldHVybjsKKwl9CisJY3VyID0gZHVwOworCXdoaWxlICgqY3VyICE9IDApIHsKKwkgICAgc3RyID0gY3VyOworCSAgICB3aGlsZSAoKCpjdXIgIT0gMCkgJiYgKCFJU19CTEFOS19DSCgqY3VyKSkpIGN1cisrOworCSAgICBzYXZlID0gKmN1cjsKKwkgICAgKmN1ciA9IDA7CisJICAgIGlkID0geG1sR2V0SUQoY3R4dC0+ZG9jLCBzdHIpOworCSAgICBpZiAoaWQgPT0gTlVMTCkgeworCQl4bWxFcnJWYWxpZE5vZGUoY3R4dCwgYXR0ci0+cGFyZW50LCBYTUxfRFREX1VOS05PV05fSUQsCisJICAgIklEUkVGUyBhdHRyaWJ1dGUgJXMgcmVmZXJlbmNlcyBhbiB1bmtub3duIElEIFwiJXNcIlxuIiwKKwkJCSAgICAgYXR0ci0+bmFtZSwgc3RyLCBOVUxMKTsKKwkJY3R4dC0+dmFsaWQgPSAwOworCSAgICB9CisJICAgIGlmIChzYXZlID09IDApCisJCWJyZWFrOworCSAgICAqY3VyID0gc2F2ZTsKKwkgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKSBjdXIrKzsKKwl9CisJeG1sRnJlZShkdXApOworICAgIH0KK30KKworLyoqCisgKiB4bWxXYWxrVmFsaWRhdGVMaXN0OgorICogQGRhdGE6ICBDb250ZW50cyBvZiBjdXJyZW50IGxpbmsKKyAqIEB1c2VyOiAgVmFsdWUgc3VwcGxpZWQgYnkgdGhlIHVzZXIKKyAqCisgKiBSZXR1cm5zIDAgdG8gYWJvcnQgdGhlIHdhbGsgb3IgMSB0byBjb250aW51ZQorICovCitzdGF0aWMgaW50Cit4bWxXYWxrVmFsaWRhdGVMaXN0KGNvbnN0IHZvaWQgKmRhdGEsIGNvbnN0IHZvaWQgKnVzZXIpCit7CisJeG1sVmFsaWRhdGVNZW1vUHRyIG1lbW8gPSAoeG1sVmFsaWRhdGVNZW1vUHRyKXVzZXI7CisJeG1sVmFsaWRhdGVSZWYoKHhtbFJlZlB0cilkYXRhLCBtZW1vLT5jdHh0LCBtZW1vLT5uYW1lKTsKKwlyZXR1cm4gMTsKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZUNoZWNrUmVmQ2FsbGJhY2s6CisgKiBAcmVmX2xpc3Q6ICBMaXN0IG9mIHJlZmVyZW5jZXMKKyAqIEBjdHh0OiAgVmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbmFtZTogIE5hbWUgb2YgSUQgd2UgYXJlIHNlYXJjaGluZyBmb3IKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxWYWxpZGF0ZUNoZWNrUmVmQ2FsbGJhY2soeG1sTGlzdFB0ciByZWZfbGlzdCwgeG1sVmFsaWRDdHh0UHRyIGN0eHQsCisJICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxWYWxpZGF0ZU1lbW8gbWVtbzsKKworICAgIGlmIChyZWZfbGlzdCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBtZW1vLmN0eHQgPSBjdHh0OworICAgIG1lbW8ubmFtZSA9IG5hbWU7CisKKyAgICB4bWxMaXN0V2FsayhyZWZfbGlzdCwgeG1sV2Fsa1ZhbGlkYXRlTGlzdCwgJm1lbW8pOworICAgIAorfQorCisvKioKKyAqIHhtbFZhbGlkYXRlRG9jdW1lbnRGaW5hbDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqCisgKiBEb2VzIHRoZSBmaW5hbCBzdGVwIGZvciB0aGUgZG9jdW1lbnQgdmFsaWRhdGlvbiBvbmNlIGFsbCB0aGUKKyAqIGluY3JlbWVudGFsIHZhbGlkYXRpb24gc3RlcHMgaGF2ZSBiZWVuIGNvbXBsZXRlZAorICoKKyAqIGJhc2ljYWxseSBpdCBkb2VzIHRoZSBmb2xsb3dpbmcgY2hlY2tzIGRlc2NyaWJlZCBieSB0aGUgWE1MIFJlYworICogCisgKiBDaGVjayBhbGwgdGhlIElEUkVGL0lEUkVGUyBhdHRyaWJ1dGVzIGRlZmluaXRpb24gZm9yIHZhbGlkaXR5CisgKgorICogcmV0dXJucyAxIGlmIHZhbGlkIG9yIDAgb3RoZXJ3aXNlCisgKi8KKworaW50Cit4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwoeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MpIHsKKyAgICB4bWxSZWZUYWJsZVB0ciB0YWJsZTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgeG1sRXJyVmFsaWQoY3R4dCwgWE1MX0RURF9OT19ET0MsIAorCQkieG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsOiBkb2MgPT0gTlVMTFxuIiwgTlVMTCk7CisJcmV0dXJuKDApOworICAgIH0KKworICAgIC8qCisgICAgICogQ2hlY2sgYWxsIHRoZSBOT1RBVElPTi9OT1RBVElPTlMgYXR0cmlidXRlcworICAgICAqLworICAgIC8qCisgICAgICogQ2hlY2sgYWxsIHRoZSBFTlRJVFkvRU5USVRJRVMgYXR0cmlidXRlcyBkZWZpbml0aW9uIGZvciB2YWxpZGl0eQorICAgICAqLworICAgIC8qCisgICAgICogQ2hlY2sgYWxsIHRoZSBJRFJFRi9JRFJFRlMgYXR0cmlidXRlcyBkZWZpbml0aW9uIGZvciB2YWxpZGl0eQorICAgICAqLworICAgIHRhYmxlID0gKHhtbFJlZlRhYmxlUHRyKSBkb2MtPnJlZnM7CisgICAgY3R4dC0+ZG9jID0gZG9jOworICAgIGN0eHQtPnZhbGlkID0gMTsKKyAgICB4bWxIYXNoU2Nhbih0YWJsZSwgKHhtbEhhc2hTY2FubmVyKSB4bWxWYWxpZGF0ZUNoZWNrUmVmQ2FsbGJhY2ssIGN0eHQpOworICAgIHJldHVybihjdHh0LT52YWxpZCk7Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVEdGQ6CisgKiBAY3R4dDogIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkb2M6ICBhIGRvY3VtZW50IGluc3RhbmNlCisgKiBAZHRkOiAgYSBkdGQgaW5zdGFuY2UKKyAqCisgKiBUcnkgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFnYWluc3QgdGhlIGR0ZCBpbnN0YW5jZQorICoKKyAqIEJhc2ljYWxseSBpdCBkb2VzIGNoZWNrIGFsbCB0aGUgZGVmaW5pdGlvbnMgaW4gdGhlIER0RC4KKyAqIE5vdGUgdGhlIHRoZSBpbnRlcm5hbCBzdWJzZXQgKGlmIHByZXNlbnQpIGlzIGRlLWNvdXBsZWQKKyAqIChpLmUuIG5vdCB1c2VkKSwgd2hpY2ggY291bGQgZ2l2ZSBwcm9ibGVtcyBpZiBJRCBvciBJRFJFRgorICogaXMgcHJlc2VudC4KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlRHRkKHhtbFZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jLCB4bWxEdGRQdHIgZHRkKSB7CisgICAgaW50IHJldDsKKyAgICB4bWxEdGRQdHIgb2xkRXh0LCBvbGRJbnQ7CisgICAgeG1sTm9kZVB0ciByb290OworCisgICAgaWYgKGR0ZCA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgb2xkRXh0ID0gZG9jLT5leHRTdWJzZXQ7CisgICAgb2xkSW50ID0gZG9jLT5pbnRTdWJzZXQ7CisgICAgZG9jLT5leHRTdWJzZXQgPSBkdGQ7CisgICAgZG9jLT5pbnRTdWJzZXQgPSBOVUxMOworICAgIHJldCA9IHhtbFZhbGlkYXRlUm9vdChjdHh0LCBkb2MpOworICAgIGlmIChyZXQgPT0gMCkgeworCWRvYy0+ZXh0U3Vic2V0ID0gb2xkRXh0OworCWRvYy0+aW50U3Vic2V0ID0gb2xkSW50OworCXJldHVybihyZXQpOworICAgIH0KKyAgICBpZiAoZG9jLT5pZHMgIT0gTlVMTCkgeworICAgICAgICAgIHhtbEZyZWVJRFRhYmxlKGRvYy0+aWRzKTsKKyAgICAgICAgICBkb2MtPmlkcyA9IE5VTEw7CisgICAgfQorICAgIGlmIChkb2MtPnJlZnMgIT0gTlVMTCkgeworICAgICAgICAgIHhtbEZyZWVSZWZUYWJsZShkb2MtPnJlZnMpOworICAgICAgICAgIGRvYy0+cmVmcyA9IE5VTEw7CisgICAgfQorICAgIHJvb3QgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworICAgIHJldCA9IHhtbFZhbGlkYXRlRWxlbWVudChjdHh0LCBkb2MsIHJvb3QpOworICAgIHJldCAmPSB4bWxWYWxpZGF0ZURvY3VtZW50RmluYWwoY3R4dCwgZG9jKTsKKyAgICBkb2MtPmV4dFN1YnNldCA9IG9sZEV4dDsKKyAgICBkb2MtPmludFN1YnNldCA9IG9sZEludDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHZvaWQKK3htbFZhbGlkYXRlTm90YXRpb25DYWxsYmFjayh4bWxFbnRpdHlQdHIgY3VyLCB4bWxWYWxpZEN0eHRQdHIgY3R4dCwKKwkgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm47CisgICAgaWYgKGN1ci0+ZXR5cGUgPT0gWE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZKSB7CisJeG1sQ2hhciAqbm90YXRpb24gPSBjdXItPmNvbnRlbnQ7CisKKwlpZiAobm90YXRpb24gIT0gTlVMTCkgeworCSAgICBpbnQgcmV0OworCisJICAgIHJldCA9IHhtbFZhbGlkYXRlTm90YXRpb25Vc2UoY3R4dCwgY3VyLT5kb2MsIG5vdGF0aW9uKTsKKwkgICAgaWYgKHJldCAhPSAxKSB7CisJCWN0eHQtPnZhbGlkID0gMDsKKwkgICAgfQorCX0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxWYWxpZGF0ZUF0dHJpYnV0ZUNhbGxiYWNrKHhtbEF0dHJpYnV0ZVB0ciBjdXIsIHhtbFZhbGlkQ3R4dFB0ciBjdHh0LAorCSAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbmFtZSBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaW50IHJldDsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbEVsZW1lbnRQdHIgZWxlbSA9IE5VTEw7CisKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuOworICAgIHN3aXRjaCAoY3VyLT5hdHlwZSkgeworCWNhc2UgWE1MX0FUVFJJQlVURV9DREFUQToKKwljYXNlIFhNTF9BVFRSSUJVVEVfSUQ6CisJY2FzZSBYTUxfQVRUUklCVVRFX0lEUkVGCToKKwljYXNlIFhNTF9BVFRSSUJVVEVfSURSRUZTOgorCWNhc2UgWE1MX0FUVFJJQlVURV9OTVRPS0VOOgorCWNhc2UgWE1MX0FUVFJJQlVURV9OTVRPS0VOUzoKKwljYXNlIFhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT046CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9FTlRJVFk6CisJY2FzZSBYTUxfQVRUUklCVVRFX0VOVElUSUVTOgorCWNhc2UgWE1MX0FUVFJJQlVURV9OT1RBVElPTjoKKwkgICAgaWYgKGN1ci0+ZGVmYXVsdFZhbHVlICE9IE5VTEwpIHsKKwkJCisJCXJldCA9IHhtbFZhbGlkYXRlQXR0cmlidXRlVmFsdWUyKGN0eHQsIGN0eHQtPmRvYywgY3VyLT5uYW1lLAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgIGN1ci0+YXR5cGUsIGN1ci0+ZGVmYXVsdFZhbHVlKTsKKwkJaWYgKChyZXQgPT0gMCkgJiYgKGN0eHQtPnZhbGlkID09IDEpKQorCQkgICAgY3R4dC0+dmFsaWQgPSAwOworCSAgICB9CisJICAgIGlmIChjdXItPnRyZWUgIT0gTlVMTCkgeworCQl4bWxFbnVtZXJhdGlvblB0ciB0cmVlID0gY3VyLT50cmVlOworCQl3aGlsZSAodHJlZSAhPSBOVUxMKSB7CisJCSAgICByZXQgPSB4bWxWYWxpZGF0ZUF0dHJpYnV0ZVZhbHVlMihjdHh0LCBjdHh0LT5kb2MsCisJCQkJICAgIGN1ci0+bmFtZSwgY3VyLT5hdHlwZSwgdHJlZS0+bmFtZSk7CisJCSAgICBpZiAoKHJldCA9PSAwKSAmJiAoY3R4dC0+dmFsaWQgPT0gMSkpCisJCQljdHh0LT52YWxpZCA9IDA7CisJCSAgICB0cmVlID0gdHJlZS0+bmV4dDsKKwkJfQorCSAgICB9CisgICAgfQorICAgIGlmIChjdXItPmF0eXBlID09IFhNTF9BVFRSSUJVVEVfTk9UQVRJT04pIHsKKwlkb2MgPSBjdXItPmRvYzsKKwlpZiAoY3VyLT5lbGVtID09IE5VTEwpIHsKKwkgICAgeG1sRXJyVmFsaWQoY3R4dCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKwkJICAgInhtbFZhbGlkYXRlQXR0cmlidXRlQ2FsbGJhY2soJXMpOiBpbnRlcm5hbCBlcnJvclxuIiwKKwkJICAgKGNvbnN0IGNoYXIgKikgY3VyLT5uYW1lKTsKKwkgICAgcmV0dXJuOworCX0KKworCWlmIChkb2MgIT0gTlVMTCkKKwkgICAgZWxlbSA9IHhtbEdldER0ZEVsZW1lbnREZXNjKGRvYy0+aW50U3Vic2V0LCBjdXItPmVsZW0pOworCWlmICgoZWxlbSA9PSBOVUxMKSAmJiAoZG9jICE9IE5VTEwpKQorCSAgICBlbGVtID0geG1sR2V0RHRkRWxlbWVudERlc2MoZG9jLT5leHRTdWJzZXQsIGN1ci0+ZWxlbSk7CisJaWYgKChlbGVtID09IE5VTEwpICYmIChjdXItPnBhcmVudCAhPSBOVUxMKSAmJgorCSAgICAoY3VyLT5wYXJlbnQtPnR5cGUgPT0gWE1MX0RURF9OT0RFKSkKKwkgICAgZWxlbSA9IHhtbEdldER0ZEVsZW1lbnREZXNjKCh4bWxEdGRQdHIpIGN1ci0+cGFyZW50LCBjdXItPmVsZW0pOworCWlmIChlbGVtID09IE5VTEwpIHsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIE5VTEwsIFhNTF9EVERfVU5LTk9XTl9FTEVNLAorCQkgICAiYXR0cmlidXRlICVzOiBjb3VsZCBub3QgZmluZCBkZWNsIGZvciBlbGVtZW50ICVzXG4iLAorCQkgICBjdXItPm5hbWUsIGN1ci0+ZWxlbSwgTlVMTCk7CisJICAgIHJldHVybjsKKwl9CisJaWYgKGVsZW0tPmV0eXBlID09IFhNTF9FTEVNRU5UX1RZUEVfRU1QVFkpIHsKKwkgICAgeG1sRXJyVmFsaWROb2RlKGN0eHQsIE5VTEwsIFhNTF9EVERfRU1QVFlfTk9UQVRJT04sCisJCSAgICJOT1RBVElPTiBhdHRyaWJ1dGUgJXMgZGVjbGFyZWQgZm9yIEVNUFRZIGVsZW1lbnQgJXNcbiIsCisJCSAgIGN1ci0+bmFtZSwgY3VyLT5lbGVtLCBOVUxMKTsKKwkgICAgY3R4dC0+dmFsaWQgPSAwOworCX0KKyAgICB9Cit9CisKKy8qKgorICogeG1sVmFsaWRhdGVEdGRGaW5hbDoKKyAqIEBjdHh0OiAgdGhlIHZhbGlkYXRpb24gY29udGV4dAorICogQGRvYzogIGEgZG9jdW1lbnQgaW5zdGFuY2UKKyAqCisgKiBEb2VzIHRoZSBmaW5hbCBzdGVwIGZvciB0aGUgZHRkcyB2YWxpZGF0aW9uIG9uY2UgYWxsIHRoZQorICogc3Vic2V0cyBoYXZlIGJlZW4gcGFyc2VkCisgKgorICogYmFzaWNhbGx5IGl0IGRvZXMgdGhlIGZvbGxvd2luZyBjaGVja3MgZGVzY3JpYmVkIGJ5IHRoZSBYTUwgUmVjCisgKiAtIGNoZWNrIHRoYXQgRU5USVRZIGFuZCBFTlRJVElFUyB0eXBlIGF0dHJpYnV0ZXMgZGVmYXVsdCBvciAKKyAqICAgcG9zc2libGUgdmFsdWVzIG1hdGNoZXMgb25lIG9mIHRoZSBkZWZpbmVkIGVudGl0aWVzLgorICogLSBjaGVjayB0aGF0IE5PVEFUSU9OIHR5cGUgYXR0cmlidXRlcyBkZWZhdWx0IG9yIAorICogICBwb3NzaWJsZSB2YWx1ZXMgbWF0Y2hlcyBvbmUgb2YgdGhlIGRlZmluZWQgbm90YXRpb25zLgorICoKKyAqIHJldHVybnMgMSBpZiB2YWxpZCBvciAwIGlmIGludmFsaWQgYW5kIC0xIGlmIG5vdCB3ZWxsLWZvcm1lZAorICovCisKK2ludAoreG1sVmFsaWRhdGVEdGRGaW5hbCh4bWxWYWxpZEN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYykgeworICAgIHhtbER0ZFB0ciBkdGQ7CisgICAgeG1sQXR0cmlidXRlVGFibGVQdHIgdGFibGU7CisgICAgeG1sRW50aXRpZXNUYWJsZVB0ciBlbnRpdGllczsKKworICAgIGlmICgoZG9jID09IE5VTEwpIHx8IChjdHh0ID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgaWYgKChkb2MtPmludFN1YnNldCA9PSBOVUxMKSAmJiAoZG9jLT5leHRTdWJzZXQgPT0gTlVMTCkpCisJcmV0dXJuKDApOworICAgIGN0eHQtPmRvYyA9IGRvYzsKKyAgICBjdHh0LT52YWxpZCA9IDE7CisgICAgZHRkID0gZG9jLT5pbnRTdWJzZXQ7CisgICAgaWYgKChkdGQgIT0gTlVMTCkgJiYgKGR0ZC0+YXR0cmlidXRlcyAhPSBOVUxMKSkgeworCXRhYmxlID0gKHhtbEF0dHJpYnV0ZVRhYmxlUHRyKSBkdGQtPmF0dHJpYnV0ZXM7CisJeG1sSGFzaFNjYW4odGFibGUsICh4bWxIYXNoU2Nhbm5lcikgeG1sVmFsaWRhdGVBdHRyaWJ1dGVDYWxsYmFjaywgY3R4dCk7CisgICAgfQorICAgIGlmICgoZHRkICE9IE5VTEwpICYmIChkdGQtPmVudGl0aWVzICE9IE5VTEwpKSB7CisJZW50aXRpZXMgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikgZHRkLT5lbnRpdGllczsKKwl4bWxIYXNoU2NhbihlbnRpdGllcywgKHhtbEhhc2hTY2FubmVyKSB4bWxWYWxpZGF0ZU5vdGF0aW9uQ2FsbGJhY2ssCisJCSAgICBjdHh0KTsKKyAgICB9CisgICAgZHRkID0gZG9jLT5leHRTdWJzZXQ7CisgICAgaWYgKChkdGQgIT0gTlVMTCkgJiYgKGR0ZC0+YXR0cmlidXRlcyAhPSBOVUxMKSkgeworCXRhYmxlID0gKHhtbEF0dHJpYnV0ZVRhYmxlUHRyKSBkdGQtPmF0dHJpYnV0ZXM7CisJeG1sSGFzaFNjYW4odGFibGUsICh4bWxIYXNoU2Nhbm5lcikgeG1sVmFsaWRhdGVBdHRyaWJ1dGVDYWxsYmFjaywgY3R4dCk7CisgICAgfQorICAgIGlmICgoZHRkICE9IE5VTEwpICYmIChkdGQtPmVudGl0aWVzICE9IE5VTEwpKSB7CisJZW50aXRpZXMgPSAoeG1sRW50aXRpZXNUYWJsZVB0cikgZHRkLT5lbnRpdGllczsKKwl4bWxIYXNoU2NhbihlbnRpdGllcywgKHhtbEhhc2hTY2FubmVyKSB4bWxWYWxpZGF0ZU5vdGF0aW9uQ2FsbGJhY2ssCisJCSAgICBjdHh0KTsKKyAgICB9CisgICAgcmV0dXJuKGN0eHQtPnZhbGlkKTsKK30KKworLyoqCisgKiB4bWxWYWxpZGF0ZURvY3VtZW50OgorICogQGN0eHQ6ICB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZG9jOiAgYSBkb2N1bWVudCBpbnN0YW5jZQorICoKKyAqIFRyeSB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgaW5zdGFuY2UKKyAqCisgKiBiYXNpY2FsbHkgaXQgZG9lcyB0aGUgYWxsIHRoZSBjaGVja3MgZGVzY3JpYmVkIGJ5IHRoZSBYTUwgUmVjCisgKiBpLmUuIHZhbGlkYXRlcyB0aGUgaW50ZXJuYWwgYW5kIGV4dGVybmFsIHN1YnNldCAoaWYgcHJlc2VudCkKKyAqIGFuZCB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgdHJlZS4KKyAqCisgKiByZXR1cm5zIDEgaWYgdmFsaWQgb3IgMCBvdGhlcndpc2UKKyAqLworCitpbnQKK3htbFZhbGlkYXRlRG9jdW1lbnQoeG1sVmFsaWRDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MpIHsKKyAgICBpbnQgcmV0OworICAgIHhtbE5vZGVQdHIgcm9vdDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKDApOworICAgIGlmICgoZG9jLT5pbnRTdWJzZXQgPT0gTlVMTCkgJiYgKGRvYy0+ZXh0U3Vic2V0ID09IE5VTEwpKSB7CisgICAgICAgIHhtbEVyclZhbGlkKGN0eHQsIFhNTF9EVERfTk9fRFRELAorCSAgICAgICAgICAgICJubyBEVEQgZm91bmQhXG4iLCBOVUxMKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmICgoZG9jLT5pbnRTdWJzZXQgIT0gTlVMTCkgJiYgKChkb2MtPmludFN1YnNldC0+U3lzdGVtSUQgIT0gTlVMTCkgfHwKKwkoZG9jLT5pbnRTdWJzZXQtPkV4dGVybmFsSUQgIT0gTlVMTCkpICYmIChkb2MtPmV4dFN1YnNldCA9PSBOVUxMKSkgeworCXhtbENoYXIgKnN5c0lEOworCWlmIChkb2MtPmludFN1YnNldC0+U3lzdGVtSUQgIT0gTlVMTCkgeworCSAgICBzeXNJRCA9IHhtbEJ1aWxkVVJJKGRvYy0+aW50U3Vic2V0LT5TeXN0ZW1JRCwKKwkgICAgCQlkb2MtPlVSTCk7CisJICAgIGlmIChzeXNJRCA9PSBOVUxMKSB7CisJICAgICAgICB4bWxFcnJWYWxpZChjdHh0LCBYTUxfRFREX0xPQURfRVJST1IsCisJCQkiQ291bGQgbm90IGJ1aWxkIFVSSSBmb3IgZXh0ZXJuYWwgc3Vic2V0IFwiJXNcIlxuIiwKKwkJCShjb25zdCBjaGFyICopIGRvYy0+aW50U3Vic2V0LT5TeXN0ZW1JRCk7CisJCXJldHVybiAwOworCSAgICB9CisJfSBlbHNlCisJICAgIHN5c0lEID0gTlVMTDsKKyAgICAgICAgZG9jLT5leHRTdWJzZXQgPSB4bWxQYXJzZURURChkb2MtPmludFN1YnNldC0+RXh0ZXJuYWxJRCwKKwkJCShjb25zdCB4bWxDaGFyICopc3lzSUQpOworCWlmIChzeXNJRCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKHN5c0lEKTsKKyAgICAgICAgaWYgKGRvYy0+ZXh0U3Vic2V0ID09IE5VTEwpIHsKKwkgICAgaWYgKGRvYy0+aW50U3Vic2V0LT5TeXN0ZW1JRCAhPSBOVUxMKSB7CisJCXhtbEVyclZhbGlkKGN0eHQsIFhNTF9EVERfTE9BRF9FUlJPUiwKKwkJICAgICAgICJDb3VsZCBub3QgbG9hZCB0aGUgZXh0ZXJuYWwgc3Vic2V0IFwiJXNcIlxuIiwKKwkJICAgICAgIChjb25zdCBjaGFyICopIGRvYy0+aW50U3Vic2V0LT5TeXN0ZW1JRCk7CisJICAgIH0gZWxzZSB7CisJCXhtbEVyclZhbGlkKGN0eHQsIFhNTF9EVERfTE9BRF9FUlJPUiwKKwkJICAgICAgICJDb3VsZCBub3QgbG9hZCB0aGUgZXh0ZXJuYWwgc3Vic2V0IFwiJXNcIlxuIiwKKwkJICAgICAgIChjb25zdCBjaGFyICopIGRvYy0+aW50U3Vic2V0LT5FeHRlcm5hbElEKTsKKwkgICAgfQorCSAgICByZXR1cm4oMCk7CisJfQorICAgIH0KKworICAgIGlmIChkb2MtPmlkcyAhPSBOVUxMKSB7CisgICAgICAgICAgeG1sRnJlZUlEVGFibGUoZG9jLT5pZHMpOworICAgICAgICAgIGRvYy0+aWRzID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGRvYy0+cmVmcyAhPSBOVUxMKSB7CisgICAgICAgICAgeG1sRnJlZVJlZlRhYmxlKGRvYy0+cmVmcyk7CisgICAgICAgICAgZG9jLT5yZWZzID0gTlVMTDsKKyAgICB9CisgICAgcmV0ID0geG1sVmFsaWRhdGVEdGRGaW5hbChjdHh0LCBkb2MpOworICAgIGlmICgheG1sVmFsaWRhdGVSb290KGN0eHQsIGRvYykpIHJldHVybigwKTsKKworICAgIHJvb3QgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworICAgIHJldCAmPSB4bWxWYWxpZGF0ZUVsZW1lbnQoY3R4dCwgZG9jLCByb290KTsKKyAgICByZXQgJj0geG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsKGN0eHQsIGRvYyk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVJvdXRpbmVzIGZvciBkeW5hbWljIHZhbGlkYXRpb24gZWRpdGluZwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuOgorICogQGN0cmVlOiAgYW4gZWxlbWVudCBjb250ZW50IHRyZWUKKyAqIEBuYW1lczogIGFuIGFycmF5IHRvIHN0b3JlIHRoZSBsaXN0IG9mIGNoaWxkIG5hbWVzCisgKiBAbGVuOiAgYSBwb2ludGVyIHRvIHRoZSBudW1iZXIgb2YgZWxlbWVudCBpbiB0aGUgbGlzdAorICogQG1heDogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICoKKyAqIEJ1aWxkL2V4dGVuZCBhIGxpc3Qgb2YgIHBvdGVudGlhbCBjaGlsZHJlbiBhbGxvd2VkIGJ5IHRoZSBjb250ZW50IHRyZWUKKyAqCisgKiByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudCBpbiB0aGUgbGlzdCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworCitpbnQKK3htbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4oeG1sRWxlbWVudENvbnRlbnQgKmN0cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICoqbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbGVuLCBpbnQgbWF4KSB7CisgICAgaW50IGk7CisKKyAgICBpZiAoKGN0cmVlID09IE5VTEwpIHx8IChuYW1lcyA9PSBOVUxMKSB8fCAobGVuID09IE5VTEwpKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmICgqbGVuID49IG1heCkgcmV0dXJuKCpsZW4pOworCisgICAgc3dpdGNoIChjdHJlZS0+dHlwZSkgeworCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9QQ0RBVEE6IAorCSAgICBmb3IgKGkgPSAwOyBpIDwgKmxlbjtpKyspCisJCWlmICh4bWxTdHJFcXVhbChCQURfQ0FTVCAiI1BDREFUQSIsIG5hbWVzW2ldKSkgcmV0dXJuKCpsZW4pOworCSAgICBuYW1lc1soKmxlbikrK10gPSBCQURfQ0FTVCAiI1BDREFUQSI7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0VMRU1FTlRfQ09OVEVOVF9FTEVNRU5UOiAKKwkgICAgZm9yIChpID0gMDsgaSA8ICpsZW47aSsrKQorCQlpZiAoeG1sU3RyRXF1YWwoY3RyZWUtPm5hbWUsIG5hbWVzW2ldKSkgcmV0dXJuKCpsZW4pOworCSAgICBuYW1lc1soKmxlbikrK10gPSBjdHJlZS0+bmFtZTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX1NFUTogCisJICAgIHhtbFZhbGlkR2V0UG90ZW50aWFsQ2hpbGRyZW4oY3RyZWUtPmMxLCBuYW1lcywgbGVuLCBtYXgpOworCSAgICB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuKGN0cmVlLT5jMiwgbmFtZXMsIGxlbiwgbWF4KTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9DT05URU5UX09SOgorCSAgICB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuKGN0cmVlLT5jMSwgbmFtZXMsIGxlbiwgbWF4KTsKKwkgICAgeG1sVmFsaWRHZXRQb3RlbnRpYWxDaGlsZHJlbihjdHJlZS0+YzIsIG5hbWVzLCBsZW4sIG1heCk7CisJICAgIGJyZWFrOworICAgfQorICAgCisgICByZXR1cm4oKmxlbik7Cit9CisKKy8qCisgKiBEdW1teSBmdW5jdGlvbiB0byBzdXBwcmVzcyBtZXNzYWdlcyB3aGlsZSB3ZSB0cnkgb3V0IHZhbGlkIGVsZW1lbnRzCisgKi8KK3N0YXRpYyB2b2lkIFhNTENERUNMIHhtbE5vVmFsaWRpdHlFcnIodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZyBBVFRSSUJVVEVfVU5VU0VELCAuLi4pIHsKKyAgICByZXR1cm47Cit9CisKKy8qKgorICogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzOgorICogQHByZXY6ICBhbiBlbGVtZW50IHRvIGluc2VydCBhZnRlcgorICogQG5leHQ6ICBhbiBlbGVtZW50IHRvIGluc2VydCBuZXh0CisgKiBAbmFtZXM6ICBhbiBhcnJheSB0byBzdG9yZSB0aGUgbGlzdCBvZiBjaGlsZCBuYW1lcworICogQG1heDogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGlzdCBvZiBhdXRob3JpemVkIGNoaWxkcmVuIHRvIGluc2VydAorICogd2l0aGluIGFuIGV4aXN0aW5nIHRyZWUgd2hpbGUgcmVzcGVjdGluZyB0aGUgdmFsaWRpdHkgY29uc3RyYWludHMKKyAqIGZvcmNlZCBieSB0aGUgRHRkLiBUaGUgaW5zZXJ0aW9uIHBvaW50IGlzIGRlZmluZWQgdXNpbmcgQHByZXYgYW5kCisgKiBAbmV4dCBpbiB0aGUgZm9sbG93aW5nIHdheXM6CisgKiAgdG8gaW5zZXJ0IGJlZm9yZSAnbm9kZSc6IHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyhub2RlLT5wcmV2LCBub2RlLCAuLi4KKyAqICB0byBpbnNlcnQgbmV4dCAnbm9kZSc6IHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyhub2RlLCBub2RlLT5uZXh0LCAuLi4KKyAqICB0byByZXBsYWNlICdub2RlJzogeG1sVmFsaWRHZXRWYWxpZEVsZW1lbnRzKG5vZGUtPnByZXYsIG5vZGUtPm5leHQsIC4uLgorICogIHRvIHByZXBlbmQgYSBjaGlsZCB0byAnbm9kZSc6IHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyhOVUxMLCBub2RlLT5jaGlsZHMsCisgKiAgdG8gYXBwZW5kIGEgY2hpbGQgdG8gJ25vZGUnOiB4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMobm9kZS0+bGFzdCwgTlVMTCwgLi4uCisgKgorICogcG9pbnRlcnMgdG8gdGhlIGVsZW1lbnQgbmFtZXMgYXJlIGluc2VydGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5CisgKiBhbmQgZG8gbm90IG5lZWQgdG8gYmUgZnJlZWQuCisgKgorICogcmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnQgaW4gdGhlIGxpc3QsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuIElmCisgKiAgICB0aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgQG1heCB0aGUgY2FsbGVyIGlzIGludml0ZWQgdG8gZ3JvdyB0aGUKKyAqICAgIHJlY2VpdmluZyBhcnJheSBhbmQgcmV0cnkuCisgKi8KKworaW50Cit4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMoeG1sTm9kZSAqcHJldiwgeG1sTm9kZSAqbmV4dCwgY29uc3QgeG1sQ2hhciAqKm5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXgpIHsKKyAgICB4bWxWYWxpZEN0eHQgdmN0eHQ7CisgICAgaW50IG5iX3ZhbGlkX2VsZW1lbnRzID0gMDsKKyAgICBjb25zdCB4bWxDaGFyICplbGVtZW50c1syNTZdOworICAgIGludCBuYl9lbGVtZW50cyA9IDAsIGk7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICAKKyAgICB4bWxOb2RlICpyZWZfbm9kZTsKKyAgICB4bWxOb2RlICpwYXJlbnQ7CisgICAgeG1sTm9kZSAqdGVzdF9ub2RlOworICAgIAorICAgIHhtbE5vZGUgKnByZXZfbmV4dDsKKyAgICB4bWxOb2RlICpuZXh0X3ByZXY7CisgICAgeG1sTm9kZSAqcGFyZW50X2NoaWxkczsKKyAgICB4bWxOb2RlICpwYXJlbnRfbGFzdDsKKyAgICAKKyAgICB4bWxFbGVtZW50ICplbGVtZW50X2Rlc2M7CisKKyAgICBpZiAocHJldiA9PSBOVUxMICYmIG5leHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIGlmIChuYW1lcyA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChtYXggPD0gMCkgcmV0dXJuKC0xKTsKKworICAgIG1lbXNldCgmdmN0eHQsIDAsIHNpemVvZiAoeG1sVmFsaWRDdHh0KSk7CisgICAgdmN0eHQuZXJyb3IgPSB4bWxOb1ZhbGlkaXR5RXJyOwkvKiB0aGlzIHN1cHByZXNzZXMgZXJyL3dhcm4gb3V0cHV0ICovCisKKyAgICBuYl92YWxpZF9lbGVtZW50cyA9IDA7CisgICAgcmVmX25vZGUgPSBwcmV2ID8gcHJldiA6IG5leHQ7CisgICAgcGFyZW50ID0gcmVmX25vZGUtPnBhcmVudDsKKworICAgIC8qCisgICAgICogUmV0cmlldmVzIHRoZSBwYXJlbnQgZWxlbWVudCBkZWNsYXJhdGlvbgorICAgICAqLworICAgIGVsZW1lbnRfZGVzYyA9IHhtbEdldER0ZEVsZW1lbnREZXNjKHBhcmVudC0+ZG9jLT5pbnRTdWJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC0+bmFtZSk7CisgICAgaWYgKChlbGVtZW50X2Rlc2MgPT0gTlVMTCkgJiYgKHBhcmVudC0+ZG9jLT5leHRTdWJzZXQgIT0gTlVMTCkpCisgICAgICAgIGVsZW1lbnRfZGVzYyA9IHhtbEdldER0ZEVsZW1lbnREZXNjKHBhcmVudC0+ZG9jLT5leHRTdWJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQtPm5hbWUpOworICAgIGlmIChlbGVtZW50X2Rlc2MgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKwkKKyAgICAvKgorICAgICAqIERvIGEgYmFja3VwIG9mIHRoZSBjdXJyZW50IHRyZWUgc3RydWN0dXJlCisgICAgICovCisgICAgcHJldl9uZXh0ID0gcHJldiA/IHByZXYtPm5leHQgOiBOVUxMOworICAgIG5leHRfcHJldiA9IG5leHQgPyBuZXh0LT5wcmV2IDogTlVMTDsKKyAgICBwYXJlbnRfY2hpbGRzID0gcGFyZW50LT5jaGlsZHJlbjsKKyAgICBwYXJlbnRfbGFzdCA9IHBhcmVudC0+bGFzdDsKKworICAgIC8qCisgICAgICogQ3JlYXRlcyBhIGR1bW15IG5vZGUgYW5kIGluc2VydCBpdCBpbnRvIHRoZSB0cmVlCisgICAgICovICAgIAorICAgIHRlc3Rfbm9kZSA9IHhtbE5ld0RvY05vZGUgKHJlZl9ub2RlLT5kb2MsIE5VTEwsIEJBRF9DQVNUICI8IWR1bW15Pz4iLCBOVUxMKTsKKyAgICB0ZXN0X25vZGUtPnBhcmVudCA9IHBhcmVudDsKKyAgICB0ZXN0X25vZGUtPnByZXYgPSBwcmV2OworICAgIHRlc3Rfbm9kZS0+bmV4dCA9IG5leHQ7CisgICAgbmFtZSA9IHRlc3Rfbm9kZS0+bmFtZTsKKyAgICAKKyAgICBpZiAocHJldikgcHJldi0+bmV4dCA9IHRlc3Rfbm9kZTsKKyAgICBlbHNlIHBhcmVudC0+Y2hpbGRyZW4gPSB0ZXN0X25vZGU7CisJCQorICAgIGlmIChuZXh0KSBuZXh0LT5wcmV2ID0gdGVzdF9ub2RlOworICAgIGVsc2UgcGFyZW50LT5sYXN0ID0gdGVzdF9ub2RlOworCisgICAgLyoKKyAgICAgKiBJbnNlcnQgZWFjaCBwb3RlbnRpYWwgY2hpbGQgbm9kZSBhbmQgY2hlY2sgaWYgdGhlIHBhcmVudCBpcworICAgICAqIHN0aWxsIHZhbGlkCisgICAgICovCisgICAgbmJfZWxlbWVudHMgPSB4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuKGVsZW1lbnRfZGVzYy0+Y29udGVudCwKKwkJICAgICAgIGVsZW1lbnRzLCAmbmJfZWxlbWVudHMsIDI1Nik7CisgICAgCisgICAgZm9yIChpID0gMDtpIDwgbmJfZWxlbWVudHM7aSsrKSB7CisJdGVzdF9ub2RlLT5uYW1lID0gZWxlbWVudHNbaV07CisJaWYgKHhtbFZhbGlkYXRlT25lRWxlbWVudCgmdmN0eHQsIHBhcmVudC0+ZG9jLCBwYXJlbnQpKSB7CisJICAgIGludCBqOworCisJICAgIGZvciAoaiA9IDA7IGogPCBuYl92YWxpZF9lbGVtZW50cztqKyspCisJCWlmICh4bWxTdHJFcXVhbChlbGVtZW50c1tpXSwgbmFtZXNbal0pKSBicmVhazsKKwkgICAgbmFtZXNbbmJfdmFsaWRfZWxlbWVudHMrK10gPSBlbGVtZW50c1tpXTsKKwkgICAgaWYgKG5iX3ZhbGlkX2VsZW1lbnRzID49IG1heCkgYnJlYWs7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogUmVzdG9yZSB0aGUgdHJlZSBzdHJ1Y3R1cmUKKyAgICAgKi8KKyAgICBpZiAocHJldikgcHJldi0+bmV4dCA9IHByZXZfbmV4dDsKKyAgICBpZiAobmV4dCkgbmV4dC0+cHJldiA9IG5leHRfcHJldjsKKyAgICBwYXJlbnQtPmNoaWxkcmVuID0gcGFyZW50X2NoaWxkczsKKyAgICBwYXJlbnQtPmxhc3QgPSBwYXJlbnRfbGFzdDsKKworICAgIC8qCisgICAgICogRnJlZSB1cCB0aGUgZHVtbXkgbm9kZQorICAgICAqLworICAgIHRlc3Rfbm9kZS0+bmFtZSA9IG5hbWU7CisgICAgeG1sRnJlZU5vZGUodGVzdF9ub2RlKTsKKworICAgIHJldHVybihuYl92YWxpZF9lbGVtZW50cyk7Cit9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKworI2RlZmluZSBib3R0b21fdmFsaWQKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Ztcy9idWlsZF9saWJ4bWwuY29tIGIvbGlieG1sMi0yLjcuNy92bXMvYnVpbGRfbGlieG1sLmNvbQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTZlNjRkCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy92bXMvYnVpbGRfbGlieG1sLmNvbQpAQCAtMCwwICsxLDI2NiBAQAorJCEgQlVJTERfTElCWE1MLkNPTQorJCEKKyQhIEJ1aWxkIHRoZSBMSUJYTUwgbGlicmFyeQorJCEKKyQhIEFyZ3VtZW50czoKKyQhCiskISAgIAkiREVCVUciICAtIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gZGVidWcKKyQhCiskISBUaGlzIHByb2NlZHVyZSBjcmVhdGVzIGFuIG9iamVjdCBsaWJyYXJ5IFhNTF9MSUJESVI6TElCWE1MLk9MQiBkaXJlY3RvcnkuCiskISBBZnRlciB0aGUgbGlicmFyeSBpcyBidWlsdCwgeW91IGNhbiBsaW5rIExJQlhNTCByb3V0aW5lcyBpbnRvCiskISB5b3VyIGNvZGUgd2l0aCB0aGUgY29tbWFuZAorJCEKKyQhCSQgTElOSyB5b3VyX21vZHVsZXMsWE1MX0xJQkRJUjpMSUJYTUwuT0xCL0xJQlJBUlkKKyQhCiskISBDaGFuZ2UgSGlzdG9yeQorJCEgLS0tLS0tLS0tLS0tLS0KKyQhIENvbW1hbmQgZmlsZSBhdXRob3IgOiBKb2huIEEgRm90aGVyaW5naGFtIChqYWZAamFmc29mdC5jb20pCiskISBVcGRhdGUgaGlzdG9yeSAgICAgIDogMTkgTWFyY2ggMjAwOAlUeWNobyBIaWxob3JzdAorJCEgICAgICAgICAgICAgICAgICAgICAgIC0gYWRkZWQgbW9kdWxlIHNjaGVtYXRyb24uYyAocHJldmVudCB4bWxsaW50IGVycm9ycykKKyQhICAgICAgICAgICAgICAgICAgICAgICAtIGFkZGVkIC9ERUYgYW5kIC9JTkNMVURFIG9wdGlvbnMgdG8gY2Nfb3B0cyB0byB0ZWxsCiskISAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuaCBpcyBhdmFpbGFibGUsIGFuZCB3aGVyZSB0byBmaW5kIGl0CiskISAgICAgICAgICAgICAgICAgICAgIDogMTMgT2N0b2JlciAyMDAzCUNyYWlnIEJlcnJ5IChjcmFpZ2JlcnJ5QG1hYy5jb20pCiskIQkJCSBtb3JlIG5ldyBtb2R1bGUgYWRkaXRpb25zCiskISAgICAgICAgICAgICAgICAgICAgIDogMjUgQXByaWwgMjAwMwkJQ3JhaWcgQmVycnkgKGNyYWlnYmVycnlAbWFjLmNvbSkKKyQhCQkJIGFkZGVkIHhtbHJlYWRlci5jIGFuZCByZWxheG5nLmMgdG8gc291cmNlIGxpc3QKKyQhIAkJICAgICAgIDogMjggU2VwdGVtYmVyIDIwMDIJQ3JhaWcgQmVycnkgKGNyYWlnYmVycnlAbWFjLmNvbSkKKyQhCQkJIHVwZGF0ZWQgdG8gd29yayB3aXRoIGN1cnJlbnQgc291cmNlcworJCEJCQkgbWlzY2VsbGFuZW91cyBlbmhhbmNlbWVudHMgdG8gYnVpbGQgcHJvY2VzcworJCEKKyQhLSBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyQhCiskIS0gY29tcGlsZSBjb21tYW5kLiAgSWYgcDE9Im5vd2FybiIgc3VwcHJlc3MgdGhlIGV4cGVjdGVkIHdhcm5pbmcgdHlwZXMKKyQhCiskICAgY2Nfb3B0cyA9ICIvREVGPUhBVkVfQ09ORklHX0gvTkFNRVM9KFNIT1JURU5FRCkvRkxPQVQ9SUVFRS9JRUVFX01PREU9REVOT1JNX1JFU1VMVFMvSU5DTFVERT14bWxfc3JjZGlyIgorJCEKKyQgICBpZiBwMS5lcXMuIkRFQlVHIiAub3IuIHAyLmVxcy4iREVCVUciCiskICAgdGhlbgorJCAgICAgZGVidWcgPSAiWSIKKyQgICAgIGNjX2NvbW1hbmQgPSAiQ0MnJ2NjX29wdHMnL0RFQlVHL05PT1BUSU1JWkUvTElTVC9TSE9XPUFMTCIKKyQgICBlbHNlCiskICAgICBkZWJ1ZyA9ICJOIgorJCAgICAgY2NfY29tbWFuZCA9ICJDQycnY2Nfb3B0cyciCiskICAgZW5kaWYKKyQhCiskIS0gbGlzdCBvZiBzb3VyY2VzIHRvIGJlIGJ1aWx0IGludG8gdGhlIExJQlhNTCBsaWJyYXJ5LiAgQ29tcGFyZSB0aGlzIGxpc3QKKyQhICB0byB0aGUgZGVmaW5pdGlvbiBvZiAibGlieG1sMl9sYV9TT1VSQ0VTIiBpbiB0aGUgZmlsZSBNQUtFRklMRS5JTi4KKyQhICBDdXJyZW50bHkgdGhpcyBkZWZpbml0aW9uIGluY2x1ZGVzIHRoZSBsaXN0IFdJVEhfVFJJT19TT1VSQ0VTX1RSVUUKKyQhCiskICAgc291cmNlcyA9ICJTQVguYyBlbnRpdGllcy5jIGVuY29kaW5nLmMgZXJyb3IuYyBwYXJzZXJJbnRlcm5hbHMuYyIKKyQgICBzb3VyY2VzID0gc291cmNlcyArICIgcGFyc2VyLmMgdHJlZS5jIGhhc2guYyBsaXN0LmMgeG1sSU8uYyB4bWxtZW1vcnkuYyB1cmkuYyIKKyQgICBzb3VyY2VzID0gc291cmNlcyArICIgdmFsaWQuYyB4bGluay5jIEhUTUxwYXJzZXIuYyBIVE1MdHJlZS5jIGRlYnVnWE1MLmMgeHBhdGguYyIKKyQgICBzb3VyY2VzID0gc291cmNlcyArICIgeHBvaW50ZXIuYyB4aW5jbHVkZS5jIG5hbm9odHRwLmMgbmFub2Z0cC5jIERPQ0JwYXJzZXIuYyIKKyQgICBzb3VyY2VzID0gc291cmNlcyArICIgY2F0YWxvZy5jIGdsb2JhbHMuYyB0aHJlYWRzLmMgYzE0bi5jIHhtbHN0cmluZy5jIgorJCAgIHNvdXJjZXMgPSBzb3VyY2VzICsgIiB4bWxyZWdleHAuYyB4bWxzY2hlbWFzLmMgeG1sc2NoZW1hc3R5cGVzLmMgeG1sdW5pY29kZS5jIgorJCAgIHNvdXJjZXMgPSBzb3VyY2VzICsgIiB0cmlvc3RyLmMgdHJpby5jIHhtbHJlYWRlci5jIHJlbGF4bmcuYyBkaWN0LmMgU0FYMi5jIgorJCAgIHNvdXJjZXMgPSBzb3VyY2VzICsgIiB4bWx3cml0ZXIuYyBsZWdhY3kuYyBjaHZhbGlkLmMgcGF0dGVybi5jIHhtbHNhdmUuYyIKKyQgICBzb3VyY2VzID0gc291cmNlcyArICIgc2NoZW1hdHJvbi5jIgorJCEKKyQhLSBsaXN0IG9mIG1haW4gbW9kdWxlcyB0byBjb21waWxlIGFuZCBsaW5rLiAgQ29tcGFyZSB0aGlzIGxpc3QgdG8gdGhlCiskISAgZGVmaW5pdGlvbiBvZiBiaW5fUFJPR1JBTVMgaW4gTUFLRUZJTEUuSU4KKyQhCiskICAgYmluX3Byb2dzID0gInhtbGxpbnQgeG1sY2F0YWxvZyIKKyQhCiskIS0gbGlzdCBvZiB0ZXN0IG1vZHVsZXMgdG8gY29tcGlsZSBhbmQgbGluay4gIENvbXBhcmUgdGhpcyBsaXN0IHRvIHRoZQorJCEgIGRlZmluaXRpb24gb2Ygbm9pbnN0X1BST0dSQU1TIGluIE1BS0VGSUxFLgorJCEKKyQgICBub2luc3RfUFJPR1JBTVMgPSAidGVzdFNjaGVtYXMgdGVzdFJlbGF4IHRlc3RTQVggdGVzdEhUTUwgdGVzdFhQYXRoIHRlc3RVUkkgIiAtCisgICAgICAgICAgICAgICAgKyAidGVzdFRocmVhZHMgdGVzdEMxNE4gdGVzdEF1dG9tYXRhIHRlc3RSZWdleHAgdGVzdFJlYWRlciIKKyQhCiskIS0gc2V0IHVwIGJ1aWxkIGxvZ2ljYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXAorJCEKKyQhCiskIS0gc3RhcnQgZnJvbSB3aGVyZSB0aGUgcHJvY2VkdXJlIGlzIGluIGNhc2UgaXQncyBzdWJtaXR0ZWQgaW4gYmF0Y2ggLS0tLS0tLS0tLVwKKyQhCiskICAgd2hvYW1pID0gZiRwYXJzZShmJGVudmlyb25tZW50KCJQUk9DRURVUkUiKSwsLCwiTk9fQ09OQ0VBTCIpCiskICAgcHJvY2RpciA9IGYkcGFyc2Uod2hvYW1pLCwsIkRFVklDRSIpICsgZiRwYXJzZSh3aG9hbWksLCwiRElSRUNUT1JZIikKKyQgICBzZXQgZGVmYXVsdCAncHJvY2RpcicKKyQhCiskICAgaWYgZiR0cm5sbm0oIlhNTF9MSUJESVIiKS5lcXMuIiIKKyQgICB0aGVuCiskICAgICBpZiBmJHNlYXJjaCgiWy1dbGliLmRpciIpIC5lcXMuICIiCiskICAgICB0aGVuCiskICAgICAgIGNyZWF0ZS9kaXJlY3RvcnkvbG9nIFstLmxpYl0KKyQgICAgIGVuZGlmCiskICAgICB4bWxfbGliZGlyID0gZiRwYXJzZSgiWy0ubGliXSIsLCwiREVWSUNFIikgKyBmJHBhcnNlKCJbLS5saWJdIiwsLCJESVJFQ1RPUlkiKQorJCAgICAgZGVmaW5lL3Byb2Nlc3MgWE1MX0xJQkRJUiAneG1sX2xpYmRpcicKKyQgICAgIHdyaXRlIHN5cyRvdXRwdXQgIkRlZmluaW5nIFhNTF9MSUJESVIgYXMgIiIiICsgZiR0cm5sbm0oIlhNTF9MSUJESVIiKSArICIiIgorJCAgIGVuZGlmCiskIQorJCAgIGlmIGYkdHJubG5tKCJYTUxfU1JDRElSIikuZXFzLiIiCiskICAgdGhlbgorJCAgICAgZ2xvYmZpbGUgPSBmJHNlYXJjaCgiWy0uLi5dZ2xvYmFscy5jIikKKyQgICAgIGlmIGdsb2JmaWxlLmVxcy4iIgorJCAgICAgdGhlbgorJAl3cml0ZSBzeXMkb3V0cHV0ICJDYW4ndCBsb2NhdGUgZ2xvYmFscy5jLiAgWW91IG5lZWQgdG8gbWFudWFsbHkgZGVmaW5lIGEgWE1MX1NSQ0RJUiBsb2dpY2FsIgorJAlleGl0CiskICAgICBlbHNlCiskCXNyY2RpciA9IGYkcGFyc2UoZ2xvYmZpbGUsLCwiREVWSUNFIikgKyBmJHBhcnNlKGdsb2JmaWxlLCwsIkRJUkVDVE9SWSIpCiskCWRlZmluZS9wcm9jZXNzIFhNTF9TUkNESVIgIicnc3JjZGlyJyIKKyQgICAgICAgd3JpdGUgc3lzJG91dHB1dCAiRGVmaW5pbmcgWE1MX1NSQ0RJUiBhcyAiIicnc3JjZGlyJyIiIgorJCAgICAgZW5kaWYKKyQgICBlbmRpZgorJCEKKyQgICBjb3B5L2xvZyBjb25maWcudm1zIHhtbF9zcmNkaXI6Y29uZmlnLmgKKyQhCiskICAgaWYgZiR0cm5sbm0oImxpYnhtbCIpLmVxcy4iIgorJCAgIHRoZW4KKyQgICAgIGdsb2JmaWxlID0gZiRzZWFyY2goIlstLi4uXWdsb2JhbHMuaCIpCiskICAgICBpZiBnbG9iZmlsZS5lcXMuIiIKKyQgICAgIHRoZW4KKyQJd3JpdGUgc3lzJG91dHB1dCAiQ2FuJ3QgbG9jYXRlIGdsb2JhbHMuaC4gIFlvdSBuZWVkIHRvIG1hbnVhbGx5IGRlZmluZSBhIExJQlhNTCBsb2dpY2FsIgorJAlleGl0CiskICAgICBlbHNlCiskCWluY2x1ZGVkaXIgPSBmJHBhcnNlKGdsb2JmaWxlLCwsIkRFVklDRSIpICsgZiRwYXJzZShnbG9iZmlsZSwsLCJESVJFQ1RPUlkiKQorJAlkZWZpbmUvcHJvY2VzcyBsaWJ4bWwgIicnaW5jbHVkZWRpciciCiskICAgICAgIHdyaXRlIHN5cyRvdXRwdXQgIkRlZmluaW5nIGxpYnhtbCBhcyAiIicnaW5jbHVkZWRpciciIiIKKyQgICAgIGVuZGlmCiskICAgZW5kaWYKKyQhCiskIS0gc2V0IHVwIGVycm9yIGhhbmRsaW5nIChzdWNoIGFzIGl0IGlzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiskIQorJCBleGl0X3N0YXR1cyA9IDEKKyQgc2F2ZWRfZGVmYXVsdCA9IGYkZW52aXJvbm1lbnQoImRlZmF1bHQiKQorJCBvbiBlcnJvciB0aGVuIGdvdG8gRVJST1JfT1VUCiskIG9uIGNvbnRyb2xfeSB0aGVuIGdvdG8gRVJST1JfT1VUCiskIQorJCEtIG1vdmUgdG8gdGhlIHNvdXJjZSBkaXJlY3RvcnkgYW5kIGNyZWF0ZSBhbnkgbmVjZXNzYXJ5IHN1YmRpcnMgYW5kIHRoZQorJCEgIG9iamVjdCBsaWJyYXJ5CiskIQorJCBzZXQgZGVmYXVsdCB4bWxfc3JjZGlyCiskIGlmIGYkc2VhcmNoKCJERUJVRy5ESVIiKS5lcXMuIiIgdGhlbiBjcmVhdGUvZGlyIFsuREVCVUddCiskIGlmIGYkc2VhcmNoKCJYTUxfTElCRElSOkxJQlhNTC5PTEIiKS5lcXMuIiIKKyQgdGhlbgorJCAgIHdyaXRlIHN5cyRvdXRwdXQgIkNyZWF0aW5nIG5ldyBvYmplY3QgbGlicmFyeSBYTUxfTElCRElSOkxJQlhNTC5PTEIiCiskICAgbGlicmFyeS9jcmVhdGUgWE1MX0xJQkRJUjpMSUJYTUwuT0xCCiskIGVuZGlmCiskIQorJCBnb3RvIHN0YXJ0X2hlcmUKKyQgc3RhcnRfaGVyZToJICAhIG1vdmUgdGhpcyBsaW5lIHRvIGRlYnVnL3JlcnVuIHBhcnRzIG9mIHRoaXMgY29tbWFuZCBmaWxlCiskIQorJCEtIGNvbXBpbGUgbW9kdWxlcyBpbnRvIHRoZSBsaWJyYXJ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJCEKKyQgbGliX2NvbW1hbmQgICA9ICJMSUJSQVJZL1JFUExBQ0UvTE9HIFhNTF9MSUJESVI6TElCWE1MLk9MQiIKKyQgbGlua19jb21tYW5kCT0gIiIKKyQhCiskIHdyaXRlIHN5cyRvdXRwdXQgIiIKKyQgd3JpdGUgc3lzJG91dHB1dCAiQnVpbGRpbmcgbW9kdWxlcyBpbnRvIHRoZSBMSUJYTUwgb2JqZWN0IGxpYnJhcnkiCiskIHdyaXRlIHN5cyRvdXRwdXQgIiIKKyQhCiskIHNfbm8gPSAwCiskIHNvdXJjZXMgPSBmJGVkaXQoc291cmNlcywiQ09NUFJFU1MiKQorJCEKKyQgc291cmNlX2xvb3A6CiskIQorJCAgIG5leHRfc291cmNlID0gZiRlbGVtZW50IChTX25vLCIgIixzb3VyY2VzKQorJCAgIGlmIG5leHRfc291cmNlLm5lcy4iIiAuYW5kLiBuZXh0X3NvdXJjZS5uZXMuIiAiCiskICAgdGhlbgorJCEKKyQgICAgIG9uIGVycm9yIHRoZW4gZ290byBFUlJPUl9PVVQKKyQgICAgIG9uIGNvbnRyb2xfeSB0aGVuIGdvdG8gRVJST1JfT1VUCiskICAgICBjYWxsIGJ1aWxkICduZXh0X3NvdXJjZScKKyQgICAgIHNfbm8gPSBzX25vICsgMQorJCAgICAgZ290byBzb3VyY2VfbG9vcAorJCEKKyQgICBlbmRpZgorJCEKKyQhLSBub3cgYnVpbGQgc2VsZi10ZXN0IHByb2dyYW1zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyQhCiskISB0aGVzZSBwcm9ncmFtcyBhcmUgYnVpbHQgYXMgb3JkaW5hcnkgbW9kdWxlcyBpbnRvIFhNTF9MSUJESVI6TElCWE1MLk9MQi4gIEhlcmUgdGhleQorJCEgYXJlIGJ1aWx0IGEgc2Vjb25kIHRpbWUgd2l0aCAvREVGSU5FPShTVEFOREFMT05FKSBpbiB3aGljaCBjYXNlIGEgbWFpbigpCiskISBpcyBhbHNvIGNvbXBpbGVkIGludG8gdGhlIG1vZHVsZQorJAorJCBsaWJfY29tbWFuZAk9ICIiCiskIGxpbmtfY29tbWFuZAk9ICJMSU5LIgorJCEKKyQgbGlicmFyeS9jb21wcmVzcyBYTUxfTElCRElSOkxJQlhNTC5PTEIKKyQgcHVyZ2UgWE1MX0xJQkRJUjpMSUJYTUwuT0xCCiskIQorJCB3cml0ZSBzeXMkb3V0cHV0ICIiCiskIHdyaXRlIHN5cyRvdXRwdXQgIkJ1aWxkaW5nIFNUQU5EQUxPTkUgc2VsZi10ZXN0IHByb2dyYW1zIgorJCB3cml0ZSBzeXMkb3V0cHV0ICIiCiskIQorJCBjYWxsIGJ1aWxkIE5BTk9GVFAuQwkvREVGSU5FPShTVEFOREFMT05FKQorJCBjYWxsIGJ1aWxkIE5BTk9IVFRQLkMJL0RFRklORT0oU1RBTkRBTE9ORSkKKyQgY2FsbCBidWlsZCBUUklPTkFOLkMJL0RFRklORT0oU1RBTkRBTE9ORSkKKyQhCiskIS0gbm93IGJ1aWxkIG1haW4gYW5kIHRlc3QgcHJvZ3JhbXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiskIQorJCEKKyQgbGliX2NvbW1hbmQJPSAiIgorJCBsaW5rX2NvbW1hbmQJPSAiTElOSyIKKyQhCiskIHdyaXRlIHN5cyRvdXRwdXQgIiIKKyQgd3JpdGUgc3lzJG91dHB1dCAiQnVpbGRpbmcgbWFpbiBwcm9ncmFtcyBhbmQgdGVzdCBwcm9ncmFtcyIKKyQgd3JpdGUgc3lzJG91dHB1dCAiIgorJCEKKyQgcF9ubyA9IDAKKyQgYWxsX3Byb2dzID0gYmluX3Byb2dzICsgIiAiICsgbm9pbnN0X1BST0dSQU1TCiskIGFsbF9wcm9ncyA9IGYkZWRpdChhbGxfcHJvZ3MsIkNPTVBSRVNTIikKKyQhCiskIHByb2dfbG9vcDoKKyQhCiskICAgbmV4dF9wcm9nID0gZiRlbGVtZW50IChwX25vLCIgIixhbGxfcHJvZ3MpCiskICAgaWYgbmV4dF9wcm9nLm5lcy4iIiAuYW5kLiBuZXh0X3Byb2cubmVzLiIgIgorJCAgIHRoZW4KKyQhCiskICAgICBvbiBlcnJvciB0aGVuIGdvdG8gRVJST1JfT1VUCiskICAgICBvbiBjb250cm9sX3kgdGhlbiBnb3RvIEVSUk9SX09VVAorJCAgICAgY2FsbCBidWlsZCAnbmV4dF9wcm9nJy5jCiskICAgICBwX25vID0gcF9ubyArIDEKKyQgICAgIGdvdG8gcHJvZ19sb29wCiskIQorJCAgIGVuZGlmCiskIQorJCEtIFRoLXRoLXRoLXRoLXRoLXRoYXQncyBhbGwgZm9sa3MhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJCEKKyQgZ290byBleGl0X2hlcmUgISBtb3ZlIHRoaXMgbGluZSB0byBhdm9pZCBwYXJ0cyBvZiB0aGlzIGNvbW1hbmQgZmlsZQorJCBleGl0X2hlcmU6CiskIQorJCBleGl0CiskIGdvdG8gZXhpdF9vdXQKKyQhCiskIQorJEVYSVRfT1VUOgorJCEKKyQgcHVyZ2Uvbm9sb2cgWy5kZWJ1Z10KKyQgc2V0IGRlZmF1bHQgJ3NhdmVkX2RlZmF1bHQKKyQgZXhpdCAnZXhpdF9zdGF0dXMKKyQhCiskCiskRVJST1JfT1VUOgorJCBleGl0X3N0YXR1cyA9ICRzdGF0dXMKKyQgd3JpdGUgc3lzJG91dHB1dCAiJydmJG1lc3NhZ2UoZXhpdF9zdGF0dXMpJyIKKyQgZ290byBFWElUX09VVAorJCEMCiskIS0gdGhlIEJVSUxEIHN1YnJvdXRpbmUuICBDb21waWxlIHRoZW4gaW5zZXJ0IGludG8gbGlicmFyeSBvciBsaW5rIGFzIHJlcXVpcmVkCiskIQorJEJVSUxEOiBzdWJyb3V0aW5lCiskICAgb24gd2FybmluZyB0aGVuIGdvdG8gRVhJVF9CVUlMRAorJCAgIHNvdXJjZV9maWxlID0gcDEKKyQgICBuYW1lID0gZiRwYXJzZShzb3VyY2VfZmlsZSwsLCJOQU1FIikKKyQgICBvYmplY3RfZmlsZSA9IGYkcGFyc2UoIlsuZGVidWddLk9CSiIsbmFtZSwsLCJTWU5UQVhfT05MWSIpCiskIQorJCEtIGNvbXBpbGUKKyQhCiskICAgd3JpdGUgc3lzJG91dHB1dCAiJydjY19jb21tYW5kJycncDInL29iamVjdD0nJ29iamVjdF9maWxlJyAnJ3NvdXJjZV9maWxlJyIKKyQgICBjY19jb21tYW5kJ3AyJyAvb2JqZWN0PSdvYmplY3RfZmlsZSAnc291cmNlX2ZpbGUnCiskIQorJCEtIGluc2VydCBpbnRvIGxpYnJhcnkgaWYgY29tbWFuZCBkZWZpbmVkCiskIQorJCAgIGlmIGxpYl9jb21tYW5kLm5lcy4iIiAgdGhlbiBsaWJfY29tbWFuZCAnb2JqZWN0X2ZpbGUnCiskIQorJCEtIGxpbmsgbW9kdWxlIGlmIGNvbW1hbmQgZGVmaW5lZAorJCAgIGlmIGxpbmtfY29tbWFuZC5uZXMuIiIKKyQgICB0aGVuCiskCW9wdHMgPSAiIgorJAlpZiBkZWJ1ZyB0aGVuIG9wdHMgPSAiL0RFQlVHIgorJAl3cml0ZSBzeXMkb3V0cHV0ICInJ2xpbmtfY29tbWFuZCcnJ29wdHMnICcnb2JqZWN0X2ZpbGUnLFhNTF9MSUJESVI6bGlieG1sLm9sYi9saWJyYXJ5IgorJAlsaW5rX2NvbW1hbmQnb3B0cycgJ29iamVjdF9maWxlJywtCisgICAgICAJCVhNTF9MSUJESVI6bGlieG1sLm9sYi9saWJyYXJ5CiskICAgZW5kaWYKKyQhCiskRVhJVF9CVUlMRDoKKyQgICBleGl0ICRzdGF0dXMKKyQhCiskZW5kc3Vicm91dGluZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy92bXMvY29uZmlnLnZtcyBiL2xpYnhtbDItMi43Ljcvdm1zL2NvbmZpZy52bXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmVjZmE0NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvdm1zL2NvbmZpZy52bXMKQEAgLTAsMCArMSwyMDkgQEAKKy8qIGNvbmZpZy5oICAqLworCisjZGVmaW5lIFZNUwkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc3RyZnRpbWUgZnVuY3Rpb24uICAqLworI2RlZmluZSBIQVZFX1NUUkZUSU1FIAkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gICovCisjZGVmaW5lIFNURENfSEVBREVSUwkxCisKKyN1bmRlZiBQQUNLQUdFCisjdW5kZWYgVkVSU0lPTgorI3VuZGVmIEhBVkVfTElCWgorI3VuZGVmIEhBVkVfTElCTQorI3VuZGVmIEhBVkVfSVNJTkYKKyNpZiBkZWZpbmVkKF9JRUVFX0ZQKSAmJiAoX19DUlRMX1ZFUiA+PSA2MDIwMDAwMCkKKyMgZGVmaW5lIEhBVkVfSVNOQU4gMQorI2VuZGlmCisjdW5kZWYgSEFWRV9MSUJISVNUT1JZCisjdW5kZWYgSEFWRV9MSUJSRUFETElORQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGNsYXNzIGZ1bmN0aW9uLiAgKi8KKyN1bmRlZiBIQVZFX0NMQVNTCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmluaXRlIGZ1bmN0aW9uLiAgKi8KKyN1bmRlZiBIQVZFX0ZJTklURQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZwX2NsYXNzIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9GUF9DTEFTUwkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZnBjbGFzcyBmdW5jdGlvbi4gICovCisjdW5kZWYgSEFWRV9GUENMQVNTCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaXNuYW5kIGZ1bmN0aW9uLiAgKi8KKyN1bmRlZiBIQVZFX0lTTkFORAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGxvY2FsdGltZSBmdW5jdGlvbi4gICovCisjZGVmaW5lIEhBVkVfTE9DQUxUSU1FCTEKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzbnByaW50ZiBmdW5jdGlvbi4gICovCisjdW5kZWYgSEFWRV9TTlBSSU5URgorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cmR1cCBmdW5jdGlvbi4gICovCisjZGVmaW5lIEhBVkVfU1RSRFVQCTEKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdHJlcnJvciBmdW5jdGlvbi4gICovCisjZGVmaW5lIEhBVkVfU1RSRVJST1IJMQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cmZ0aW1lIGZ1bmN0aW9uLiAgKi8KKyNkZWZpbmUgSEFWRV9TVFJGVElNRQkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc3RybmR1cCBmdW5jdGlvbi4gICovCisjdW5kZWYgSEFWRV9TVFJORFVQCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGFycGEvaW5ldC5oPiBoZWFkZXIgZmlsZS4gICovCisjdW5kZWYgSEFWRV9BUlBBX0lORVRfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxjdHlwZS5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfQ1RZUEVfSAkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfRElSRU5UX0gJMQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxlcnJuby5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfRVJSTk9fSAkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9GQ05UTF9ICTEKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZmxvYXQuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX0ZMT0FUX0gJMQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxmcF9jbGFzcy5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfRlBfQ0xBU1NfSAkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGllZWVmcC5oPiBoZWFkZXIgZmlsZS4gICovCisjdW5kZWYgSEFWRV9JRUVFRlBfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfTUFMTE9DX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bWF0aC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfTUFUSF9ICTEKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bmFuLmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX05BTl9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfTkRJUl9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGRiLmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9ORVREQl9ICTEKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbi5oPiBoZWFkZXIgZmlsZS4gICovCisjdW5kZWYgSEFWRV9ORVRJTkVUX0lOX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3RkYXJnLmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9TVERBUkdfSAkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfU1RETElCX0gJMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmR1cCcgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfU1RSRFVQIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJlcnJvcicgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmZ0aW1lJyBmdW5jdGlvbi4gKi8KKyNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RybmR1cCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TVFJORFVQCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXIuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfU1lTX0RJUl9ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tbWFuLmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX1NZU19NTUFOX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfU1lTX05ESVJfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX1NZU19TRUxFQ1RfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2V0Lmg+IGhlYWRlciBmaWxlLiAgKi8KKyNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lLmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX1NZU19USU1FX0gKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHRpbWUuaD4gaGVhZGVyIGZpbGUuICAqLworI2RlZmluZSBIQVZFX1RJTUVfSAkxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gICovCisjZGVmaW5lIEhBVkVfVU5JU1REX0gJMQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDx6bGliLmg+IGhlYWRlciBmaWxlLiAgKi8KKyN1bmRlZiBIQVZFX1pMSUJfSAorCisvKiBOYW1lIG9mIHBhY2thZ2UgKi8KKyN1bmRlZiBQQUNLQUdFCisKKy8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KKyN1bmRlZiBWRVJTSU9OCisKKy8qIFVwIHRvIHRoaXMgcG9pbnQgdGhpcyBpcyBqdXN0IGEgaGFyZC13aXJlZCB2ZXJzaW9uIG9mIAorICogY29uZmlnLmguICBBZnRlciB0aGlzIHdpbGwgYmUgYW55dGhpbmcgZWxzZSB3ZSBuZWVkIAorICogdGhhdCBpcyBWTVMtc3BlY2lmaWMuCisgKi8KKworLyogRm9yIGJlc3QgcmVzdWx0cywgY29tcGlsZSB3aXRoIC9OQU1FUz0oU0hPUlRFTkVEKSwgd2hpY2ggcmVxdWlyZXMKKyAqIERFQyBDIDUuNyBvciBsYXRlci4gIEZvciBvbGRlciBjb21waWxlcnMsIHRoZSBzaG9ydGVuZWQgbmFtZXMgYmVsb3cKKyAqIGFyZSB0aGUgc2FtZSBvbmVzIHRoZSBtYW5nbGVyIGdlbmVyYXRlcyBpbiBDIDUuNyBhbmQgbGF0ZXIuICBUaGVzZSBtYXkKKyAqIHdvcmssIHRob3VnaCB0aGVyZSB3aWxsIHByb2JhYmx5IGJlIHNvbWUgY29uZmxpY3RzIHdpdGggcmVkZWZpbml0aW9ucyAKKyAqIGluIGdsb2JhbHMuaC4KKyAqLworCisjaWYgX19ERUNDX1ZFUiA8IDU3MDAwMDAwCisvKiAgICAgIDAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMyAgICAgICAgICAgICAgIDAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMworICogICAgICAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkgICAgICAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxIAorICovCisjZGVmaW5lIF9feG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlICAgICAgICAgIF9feG1sRG9WYWxpZGl0eUNoZWNraW5nM3FhZDNwcSQKKyNkZWZpbmUgX194bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgICAgICAgICAgX194bWxTdWJzdGl0dXRlRW50aXRpZXMwcGlqMTN1JAorI2RlZmluZSB0cmlvX2xvY2FsZV9zZXRfdGhvdXNhbmRfc2VwYXJhdG9yICAgICAgICAgICB0cmlvX2xvY2FsZV9zZXRfdGhvdXNhbjI1OWlra2skCisjZGVmaW5lIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSAgICAgICAgICAgIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlMWJjc2VpNCQKKyNkZWZpbmUgeG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5UmVjb3ZlciAgICAgICAgICAgeG1sUGFyc2VCYWxhbmNlZENodW5rTWUxbHUxZTg2JAorI2RlZmluZSB4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsICAgICAgICAgICB4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbjFtcDZwY2IkCisjZGVmaW5lIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUgICAgICAgICAgIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlMzZsdWpuMiQKKyNkZWZpbmUgeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXRDYWxsYmFja3MgICAgICAgICAgICAgeG1sUmVnaXN0ZXJEZWZhdWx0SW5wdXQzdmluMGNwJAorI2RlZmluZSB4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MgICAgICAgICAgICB4bWxSZWdpc3RlckRlZmF1bHRPdXRwdTBxNDQzZGQkCisjZGVmaW5lIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSAgICAgICAgICAgIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlMjhrMmM4MCQKKyNkZWZpbmUgeG1sVUNTSXNBbHBoYWJldGljUHJlc2VudGF0aW9uRm9ybXMgICAgICAgICAgeG1sVUNTSXNBbHBoYWJldGljUHJlc2UycXIyNHMzJAorI2RlZmluZSB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQiAgICAgICAgICAgICB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdDFnYWp2ZzgkCisjZGVmaW5lIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBICAgICAgICAgICAgIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0M3NxMWJ0aSQKKyNkZWZpbmUgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQgeG1sVUNTSXNDSktDb21wYXRpYmlsaXQwb3I0MGtpJAorI2RlZmluZSB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzICAgICAgICAgICB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdDJub2RtYzUkCisjZGVmaW5lIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uICAgICAgICAgICAgIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1MGEzaTdyYSQKKyNkZWZpbmUgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEgICAgICAgeG1sVUNTSXNDSktVbmlmaWVkSWRlb2cxMWlnM2ZkJAorI2RlZmluZSB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQiAgICAgICB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZzNkMjJuMm4kCisjZGVmaW5lIHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcyAgICAgICAgICAgIHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpM3RqM25sOCQKKyNkZWZpbmUgeG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMgICAgICAgICAgICAgeG1sVUNTSXNDb21iaW5pbmdNYXJrc2YzZnRxZDdzJAorI2RlZmluZSB4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocyAgICAgICAgICB4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dDBucTY3ZzQkCisjZGVmaW5lIHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMgICAgICAgICAgIHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsMDQ3bDBhMSQKKyNkZWZpbmUgeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMgICAgICAgICAgICAgeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVMwNzFraDgzJAorI2RlZmluZSB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzICAgICB4bWxVQ1NJc0lkZW9ncmFwaGljRGVzYzFyb3ZmOGckCisjZGVmaW5lIHhtbFVDU0lzTWF0aGVtYXRpY2FsQWxwaGFudW1lcmljU3ltYm9scyAgICAgIHhtbFVDU0lzTWF0aGVtYXRpY2FsQWxwMmFnOHI0NCQKKyNkZWZpbmUgeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24gICAgICAgICAgeG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGUxanV1aDA2JAorI2RlZmluZSB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMgICAgICAgICAgICB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZDNmaTRldXAkCisjZGVmaW5lIHhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyAgIHhtbFVDU0lzVW5pZmllZENhbmFkaWFuMGxidmk5YiQKKyNkZWZpbmUgeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXR0cmlidXRlVmFsdWUgICAgICAgICAgeG1sVmFsaWRDdHh0Tm9ybWFsaXplQXQwcTExbjVmJAorI2RlZmluZSB4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwICAgICAgICAgICB4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYTF1dnM0dWMkCisKKyNlbmRpZgorCisjZGVmaW5lIHhtbEJ1ZmZlcldyaXRlQ2hhciB4bWxCdWZmZXJXcml0ZUNoYXIyCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3Ztcy9kaWZmcy52bXMgYi9saWJ4bWwyLTIuNy43L3Ztcy9kaWZmcy52bXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwMjkxMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvdm1zL2RpZmZzLnZtcwpAQCAtMCwwICsxLDE5MiBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0dMT0JBTFMuQworCisxMDVhMTA2Cis+IGludCB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgPSAwOworMTExLDEyMWMxMTIsMTEzCis8ICNpZiBkZWZpbmVkKFZNUykgfHwgZGVmaW5lZChfX1ZNUykKKzwgICAjZGVmaW5lIFBMQVRGT1JNX1ZNUworPCAvKiBpbnQgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbCA9IDA7Cis8ICAqIGludCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsID0gMDsKKzwgICovCis8ICAgI2RlZmluZSB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbCAKKzwgICAjZGVmaW5lIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsIAorPCAjZWxzZQorPCAgIGludCB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgPSAwOworPCAgIGludCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgPSAwOworPCAjZW5kaWYKKy0tLQorPiBpbnQgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlID0gMDsKKz4gCisyODksMjkxZDI4MAorPCAjaWZkZWYgUExBVEZPUk1fVk1TCis8ICAgICBncy0+eG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbCA9IDA7Cis8ICNlbHNlCisyOTMsMjk0ZDI4MQorPCAjZW5kaWYKKzwgCiszMTYsMzE4ZDMwMgorPCAjaWZkZWYgUExBVEZPUk1fVk1TCis8ICAgICBncy0+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbCA9IDA7Cis8ICNlbHNlCiszMjBkMzAzCis8ICNlbmRpZgorNDA0LDQxOWMzODcsMzkwCis8ICNpZmRlZiBQTEFURk9STV9WTVMKKzwgICBleHRlcm4gaW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWw7Cis8ICAgI3VuZGVmICAgICB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsCis8ICAgaW50ICoKKzwgICBfX3htbERvVmFsaWRpdHlDaGVja2luZ0RlZlZhbCh2b2lkKSB7Cis8ICAgICBpZiAoSVNfTUFJTl9USFJFQUQpCis8IAlyZXR1cm4gKCZ4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsKTsKKzwgICAgIGVsc2UKKzwgCXJldHVybiAoJnhtbEdldEdsb2JhbFN0YXRlKCktPnhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWwpOworPCAgIH0KKzwgICAjZGVmaW5lIF9feG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIF9feG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmVmFsCis8ICNlbHNlCis8ICAgZXh0ZXJuIGludCB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU7Cis8ICAgI3VuZGVmCXhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZQorPCAgIGludCAqCis8ICAgX194bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUodm9pZCkgeworLS0tCis+IGV4dGVybiBpbnQgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlOworPiAjdW5kZWYJeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlCis+IGludCAqCis+IF9feG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlKHZvaWQpIHsKKzQyNCw0MjVjMzk1Cis8ICAgfQorPCAjZW5kaWYKKy0tLQorPiB9Cis1NzcsNTkyYzU0Nyw1NTAKKzwgI2lmZGVmIFBMQVRGT1JNX1ZNUworPCAgIGV4dGVybiBpbnQgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbDsKKzwgICAjdW5kZWYgICAgIHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWwKKzwgICBpbnQgKgorPCAgIF9feG1sU3Vic0VudGl0aWVzRGVmYXVsdFZhbHVlKHZvaWQpIHsKKzwgICAgIGlmIChJU19NQUlOX1RIUkVBRCkKKzwgCXJldHVybiAoJnhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWwpOworPCAgICAgZWxzZQorPCAJcmV0dXJuICgmeG1sR2V0R2xvYmFsU3RhdGUoKS0+eG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbCk7Cis8ICAgfQorPCAgICNkZWZpbmUgX194bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgX194bWxTdWJzRW50aXRpZXNEZWZhdWx0VmFsdWUKKzwgI2Vsc2UKKzwgICBleHRlcm4gaW50IHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTsKKzwgICAjdW5kZWYJeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlCis8ICAgaW50ICoKKzwgICBfX3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSh2b2lkKSB7CistLS0KKz4gZXh0ZXJuIGludCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWU7Cis+ICN1bmRlZgl4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUKKz4gaW50ICoKKz4gX194bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUodm9pZCkgeworNTk3LDU5OGM1NTUKKzwgICB9Cis8ICNlbmRpZgorLS0tCis+IH0KKworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVFJJTy5DCisxMTMsMTE2ZDExMgorPCAjaWYgZGVmaW5lZChWTVMpIHx8IGRlZmluZWQoX19WTVMpCis8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cis8ICNlbmRpZiAvKiBQbGF0Zm9ybSBpcyBWTVMgKi8KKzwgCisxMjNkMTE4Cis8IAorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitHTE9CQUxTLkgKKzc4LDg2Yzc4LDc5Cis8ICNpZiBkZWZpbmVkKFZNUykgfHwgZGVmaW5lZChfX1ZNUykKKzwgICAgICAgICBpbnQgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbDsgICAgLyogMzEgY2hhcmFjdGVyIG5hbWUgbGltaXQgKi8KKzwgICAgICAgICBpbnQgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbDsKKzwgI2RlZmluZSB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUgICAgICAgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbAorPCAjZGVmaW5lIHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSAgICAgICB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsCis8ICNlbHNlCis8ICAgICAgICAgaW50IHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTsKKzwgICAgICAgICBpbnQgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlOworPCAjZW5kaWYKKy0tLQorPiAJaW50IHhtbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZTsKKz4gCWludCB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWU7CisyMTEsMjI2YzIwNCwyMDkKKzwgI2lmIGRlZmluZWQoVk1TKSB8fCBkZWZpbmVkKF9fVk1TKQorPCAgICNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKzwgICBleHRlcm4gaW50ICpfX3htbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWwodm9pZCk7Cis8ICAgI2RlZmluZSB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsIFwKKzwgICAoKihfX3htbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWwoKSkpCis8ICAgI2Vsc2UKKzwgICBMSUJYTUxfRExMX0lNUE9SVCBleHRlcm4gaW50IHhtbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWw7Cis8ICAgI2VuZGlmCis8ICNlbHNlCis8ICAgI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorPCAgIGV4dGVybiBpbnQgKl9feG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlKHZvaWQpOworPCAgICNkZWZpbmUgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIFwKKzwgICAoKihfX3htbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZSgpKSkKKzwgICAjZWxzZQorPCAgIExJQlhNTF9ETExfSU1QT1JUIGV4dGVybiBpbnQgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlOworPCAgICNlbmRpZgorLS0tCis+ICNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKz4gZXh0ZXJuIGludCAqX194bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUodm9pZCk7Cis+ICNkZWZpbmUgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlIFwKKz4gKCooX194bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUoKSkpCis+ICNlbHNlCis+IExJQlhNTF9ETExfSU1QT1JUIGV4dGVybiBpbnQgeG1sRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlOworMzE3LDMzMmMzMDAsMzA1Cis8ICNpZiBkZWZpbmVkKFZNUykgfHwgZGVmaW5lZChfX1ZNUykKKzwgICAjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECis8ICAgZXh0ZXJuIGludCAqX194bWxTdWJzRW50aXRpZXNEZWZhdWx0VmFsdWUodm9pZCk7Cis8ICAgI2RlZmluZSB4bWxTdWJzRW50aXRpZXNEZWZhdWx0VmFsdWUgXAorPCAgICgqKF9feG1sU3Vic0VudGl0aWVzRGVmYXVsdFZhbHVlKCkpKQorPCAgICNlbHNlCis8ICAgTElCWE1MX0RMTF9JTVBPUlQgZXh0ZXJuIGludCB4bWxTdWJzRW50aXRpZXNEZWZhdWx0VmFsdWU7Cis8ICAgI2VuZGlmCis8ICNlbHNlCis8ICAgI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorPCAgIGV4dGVybiBpbnQgKl9feG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlKHZvaWQpOworPCAgICNkZWZpbmUgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlIFwKKzwgICAoKihfX3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSgpKSkKKzwgICAjZWxzZQorPCAgIExJQlhNTF9ETExfSU1QT1JUIGV4dGVybiBpbnQgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlOworPCAgICNlbmRpZgorLS0tCis+ICNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKz4gZXh0ZXJuIGludCAqX194bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUodm9pZCk7Cis+ICNkZWZpbmUgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlIFwKKz4gKCooX194bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUoKSkpCis+ICNlbHNlCis+IExJQlhNTF9ETExfSU1QT1JUIGV4dGVybiBpbnQgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdFZhbHVlOworCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitYTUxJTy5ICis3OSw4MmQ3OAorPCAjaWYgZGVmaW5lZChWTVMpIHx8IGRlZmluZWQoX19WTVMpCis8IHZvaWQJeG1sUmVnaXN0ZXJEZWZJbnB1dENhbGxiYWNrcwkJKHZvaWQpOworPCAjZGVmaW5lIHhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzIHhtbFJlZ2lzdGVyRGVmSW5wdXRDYWxsYmFja3MKKzwgI2Vsc2UKKzg0ZDc5Cis8ICNlbmRpZgorMTMwLDEzM2QxMjQKKzwgI2lmIGRlZmluZWQoVk1TKSB8fCBkZWZpbmVkKF9fVk1TKQorPCB2b2lkCXhtbFJlZ2lzdGVyRGVmT3V0cHV0Q2FsbGJhY2tzKHZvaWQpOworPCAjZGVmaW5lIHhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyB4bWxSZWdpc3RlckRlZk91dHB1dENhbGxiYWNrcworPCAjZWxzZQorMTM1LDEzNmQxMjUKKzwgI2VuZGlmCis8IAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorWFBBVEhJTlRFUk5BTFMuSAorNDMzLDQzNmQ0MzIKKzwgI2lmIGRlZmluZWQoVk1TKSB8fCBkZWZpbmVkKF9fVk1TKQorPCB2b2lkCQkgICB4bWxYUGF0aFJlZ2lzdGVyZWRWYXJzQ2xlYW51cCh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCk7Cis8ICNkZWZpbmUgeG1sWFBhdGhSZWdpc3RlcmVkVmFyaWFibGVzQ2xlYW51cCB4bWxYUGF0aFJlZ2lzdGVyZWRWYXJzQ2xlYW51cAorPCAjZWxzZQorNDM4ZDQzMworPCAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43Ljcvdm1zL3JlYWRtZS52bXMgYi9saWJ4bWwyLTIuNy43L3Ztcy9yZWFkbWUudm1zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxZGRkZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3Ztcy9yZWFkbWUudm1zCkBAIC0wLDAgKzEsMTQzIEBACitJc3N1ZXMgaW4gcG9ydGluZyBsaWJ4bWwgdG8gVk1TCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0hlcmUncyBhIHN1bW1hcnkgb2YgdGhlIGlzc3VlcyBJIGVuY291bnRlcmVkIHdoZW4gYnVpbGRpbmcgTElCWE1MIHVuZGVyCitWTVMuICBUaGVyZSB3YXMgc29tZSBWTVMgc3VwcG9ydCBpbiB0aGUgdmVyc2lvbiBJIGdvdCwgYnV0IGl0IHdhcyBhIGxpdHRsZQorb3V0IG9mIGRhdGUgd2l0aCB0aGUgcmVzdWx0IHRoYXQgc29tZSBuZXdlciBmaWxlcyBoYWQgcHJvYmxlbXMuCisKK0kgcHJlc2VudCB0aGlzIGxpc3QgImFzIGlzIiB0byBob3BlZnVsbHkgYWN0IGFzIGEgZ3VpZGUgdG8gYW55b25lIGhhdmluZworcHJvYmxlbXMgaW4gdGhlIGZ1dHVyZS4KKworVGhhdCdzIGl0LiAgR29vZCBsdWNrIQorCitKb2huIEEgRm90aGVyaW5naGFtIChqYWZAamFmc29mdC5jb20pCitPY3RvYmVyIDIwMDEKKworVXBkYXRlZCBPY3RvYmVyIDIwMDIgYnkgQ3JhaWcgQSBCZXJyeSAoY3JhaWdiZXJyeUBtYWMuY29tKQorCitJbnN0YWxsYXRpb24ga2l0CistLS0tLS0tLS0tLS0tLS0tCisKKy0gRmlsZSBhdHRyaWJ1dGVzLiAgSGF2aW5nIGRvd25sb2FkZWQgZXNzZW50aWFsbHkgYSBVbml4IGRpc3RyaWJ1dGlvbiwgc29tZQorICBvZiB0aGUgZmlsZSBhdHRyaWJ1dGVzIHdlcmVuJ3QgY29ycmVjdC4uLiBlc3BlY2lhbGx5IHRob3NlIGluIHRoZSBbLlZNU10KKyAgc3ViZGlyZWN0b3J5LiAgSW4gRURUIHlvdSBjb3VsZCBzZWUgbGluZSBmZWVkcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBhcworICA8TEY+PENSPiBldGMuICBUbyBjb3JyZWN0IHRoaXMgdXNlIHRoZSBjb21tYW5kCisKKwkkIHNldCBmaWxlIDxmaWxlc3BlYz4gL2F0dHI9cmZtPXN0bQorCisgIFRoaXMgc2V0cyB0aGUgcmVjb3JkIGZvcm1hdCB0byBiZSAic3RyZWFtIi4gIE90aGVyIHZhcmlhbnRzIG1heSBiZSB1c2VkCisgIGluc3RlYWQgZGVwZW5kaW5nIG9uIGhvdyB5b3UgZ290IHRoZSBmaWxlcyBvbnRvIHlvdXIgc3lzdGVtLiAgRmlsZXMgd2lsbCAKKyAgbG9vayBva2F5IGluIGFuIEVEVCBlZGl0b3Igb25jZSB0aGUgYXR0cmlidXRlcyBhcmUgc2V0LiAgV2l0aG91dAorICB0aGlzIHRoZSBjb21tYW5kIGZpbGUgbWF5IG5vdCBydW4gY29ycmVjdGx5LCBzaW5jZSBpdCBtYXkgYmUgaW50ZXJwcmV0ZWQKKyAgYXMgYSBzaW5nbGUgbGluZS4KKworLSBWTVMtc3BlY2lmaWMgZmlsZXMgYXJlIGluIGEgWy5WTVNdIGRpcmVjdG9yeS4gIElmIHlvdSd2ZSBmb3VuZCB0aGlzIGZpbGUKKyAgdGhlbiB5b3UgYWxyZWFkeSBrbm93IHRoaXMgOi0pICBUaGlzIGRpcmVjdG9yeSBjb250YWlucworCisgICAgICBCVUlMRF9MSUJYTUwuQ09NCS0gYSBidWlsZCBjb21tYW5kIGZpbGUsIHdoaWNoIEkndmUgcmFkaWNhbGx5IHJlLXdvcmtlZAorICAgICAgQ09ORklHLlZNUwktIGEgY29uZmlndXJhdGlvbiBmaWxlIHRvIHJlcGxhY2UgY29uZmlnLmgKKworLSBEb24ndCBleGVjdXRlIEJVSUxEX0xJQlhNTC5DT00gdW50aWwgeW91J3ZlIGRvbmUgYWxsIHRoZSBmb2xsb3dpbmcKKworICAtIHJlYWQgdGhlc2Ugbm90ZXMKKyAgLSByZXZpZXdlZCB0aGUgY29uZmlndXJhdGlvbiBzZWN0aW9uIG9mIEJVSUxEX0xJQlhNTC5DT00sIGFuZCBpbiBwYXJ0aWN1bGFyCisgICAgdXBkYXRlZCB0aGUgbW9kdWxlIGxpc3RzIGluIGxpbmUgd2l0aCBNQUtFRklMRQorICAtIGlkZW50aWZpZWQgdGhlIGxvY2F0aW9uIG9mIHRoZSBpbmNsdWRlIGZpbGVzLCBzbyB0aGF0IHlvdSBjYW4gbWFudWFsbHkKKyAgICBzZXQgdGhlIExJQlhNTCBsb2dpY2FsIGlmIG5lZWQgYmUuCisgIC0gcmUtcmVhZCB0aGVzZSBub3RlcyA6LXAKKworICBpbnN0cnVjdGlvbnMgZm9yIGFsbCB0aGVzZSBzdGVwcyBhcmUgYmVsb3cuCisKKy0gdGhlIGZpbGUgWy52bXNdY29uZmlnLnZtcyBpcyB1c2VkIGluIGxpZXUgb2YgYSBDb25maWd1cmUtZ2VuZXJhdGVkIGNvbmZpZy5oLiAgCisgIFRoaXMgZmlsZSBjb250YWlucyBhIG51bWJlciBvZiBkZWZpbmUgc3RhdGVtZW50cyB0aGF0IGlkZW50aWZ5IHRoZSBzb2Z0d2FyZSAKKyAgb3B0aW9ucyByZXF1aXJlZCB1bmRlciBWTVMKKworLSBUaGUgaW5jbHVkZSBmaWxlcyBhcmUgaW4gYSBbLklOQ0xVREUuTElCWE1MXSBzdWJkaXJlY3RvcnkuICBZb3UgbmVlZAorICBhIGxvZ2ljYWwgImxpYnhtbCIgdG8gcG9pbnQgdG8gdGhpcyBzbyB0aGF0IGluY2x1ZGUgc3RhdGVtZW50cyBvZiB0aGUKKyAgZm9ybQorCisJI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKworICB3aWxsIHdvcmsgY29ycmVjdGx5LiAgVGhlIHNvdXJjZSBmaWxlcyBhcmUgbW9zdGx5IHR3byBsZXZlbHMgYWJvdmUgdGhpcworICBkaXJlY3RvcnksIGFsdGhvdWdoIHRoZXJlIGFyZSBzb21lIC5oIGZpbGVzIHRoZXJlIGFzIHdlbGwuCisKKy0gVGhlIGNvbW1hbmQgZmlsZSBCVUlMRF9MSUJYTUwuQ09NIHdpbGwgZG8gdGhlIGZvbGxvd2luZworCisgIC0gc2V0dXAgc29tZSBsb2dpY2FscworICAtIHNldCBkZWYgdG8gdGhlIHNvdXJjZSBkaXJlY3RvcnkKKyAgLSBjb21waWxlIG1vZHVsZXMgYW5kIHBsYWNlIHRoZW0gaW50byBhIExJQlhNTC5PTEIgbGlicmFyeQorICAtIGNvbXBpbGUgYW5kIGxpbmsgYSBudW1iZXIgb2Ygc2VsZi10ZXN0IHByb2dyYW1zCisgIC0gY29tcGlsZSBhbmQgbGluayBhIG51bWJlciBvZiB1dGlsaXRpZXMgYW5kIHRlc3QgcHJvZ3JhbXMKKyAgLSBzZXQgZGVmIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGRpcmVjdG9yeSAoaS5lLiBpZiBpdCBmYWlscyB5b3UgbWlnaHQgbm90IGJlCisgICAgd2hlcmUgeW91IHN0YXJ0ZWQgOi0pCisKKyAgYmVmb3JlIHJ1bm5pbmcgdGhpcyBjb21tYW5kIGZpbGUgcmV2aWV3IHRoZSBjb25maWd1cmF0aW9uIHNlZ21lbnQgYXQKKyAgdGhlIHRvcC4gIEluIHBhcnRpY3VsYXIgY29tcGFyZSB0aGUgbGlzdHMgb2YgbW9kdWxlcyB3aXRoIHRob3NlIGluIHRoZQorICBtb3N0IHJlY2VudCB2ZXJzaW9uIG9mIHRoZSBVbml4IE1BS0VGSUxFLiAgSW5zdHJ1Y3Rpb25zIGFyZSBjb250YWluZWQKKyAgaW4gdGhlIGNvbW1hbmQgZmlsZSBpdHNlbGYuCisKKyAgVGhlIGNvbW1hbmQgZmlsZSB3aWxsIGF0dGVtcHQgdG8gc2V0IHR3byBsb2dpY2FscworCisgIC0geG1sX3NyY2Rpci4gIFRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgc291cmNlIGZpbGVzCisgIC0gbGlieG1sLiAgVGhlIGluY2x1ZGUgZmlsZSBkaXJlY3RvcnkuCisKKyAgSXQgYXR0ZW1wdHMgdGhpcyBieSBsb29raW5nIGZvciBtb2R1bGVzIGdsb2JhbHMuYyBhbmQgZ2xvYmFscy5oIGluCisgIG5lYXJieSBkaXJlY3Rvcmllcy4gIElmIHRoaXMgbG9naWMgZmFpbHMsIHlvdSdsbCBuZWVkIHRvIG1hbnVhbGx5IGRlZmluZQorICB0aGVzZSBsb2dpY2Fscy4KKworCitUaGUgVFJJTyBwYWNrYWdlCistLS0tLS0tLS0tLS0tLS0tCistIEEgc3ViLXBhY2thZ2UgVFJJTyBpcyB1c2VkIHRvIHByb3ZpZGUgc29tZSBmdW5jdGlvbnMgbm90IG5hdHVyYWxseSBhdmFpbGFibGUKKyAgdW5kZXIgVk1TLiAgVGhlc2UgaW5jbHVkZSBzdXBwb3J0IGZvciBpbmZpbml0ZSBhbmQgdW5kZWZpbmVkIG51bWJlcnMsCisgIGFuZCBzcGVjaWFsaXNlZCBwcmludCBmdW5jdGlvbnMgbGlrZSAic25wcmludGYiCisKKyAgSSBoYWQgdG8gbWFrZSBzZXZlcmFsIGNoYW5nZXMgdG8gdHJpb25hbi5jIGluIGRpc2N1c3Npb24gd2l0aCB0aGUgYXV0aG9yCisgIChob3BlZnVsbHkgdGhlc2UgYXJlIG5vdyBpbmNsdWRlZCBpbiB0aGUgZGlzdHJvLCBzbyBJIHdvbid0IGxpc3QgdGhlbSBoZXJlKQorCisgIFRvIGJ1aWxkIHRoaXMgc29mdHdhcmUgd2UgbmVlZCB0byBhZGQKKworCS9JRUVFX01PREU9VU5ERVJGTE9XX1RPX1pFUk8vRkxPQVQ9SUVFRSAKKworICB0byB0aGUgY29tcGlsZSBjb21tYW5kIGZvciB4cGF0aC5jIGFuZCB0cmlvLmMsIGFuZCB0byBhbnkgbWFpbiBwcm9ncmFtCisgIHRoYXQgdXNlcyB0aGlzIGZ1bmN0aW9uYWxpdHkuICBCVUlMRF9MSUJYTUwuQ09NIHNob3VsZCBkbyB0aGlzIGZvciB5b3UuCisKKy0gdG8gYnVpbGQgaW4gdHJpbyBzdXBwb3J0IHlvdSBuZWVkIHRoZSBkZWZpbmUgV0lUSF9UUklPIHRvIGJlIHNldC4gIFRoaXMKKyAgaXMgZG9uZSBieSBkZWZhdWx0IGZvciBWTVMgaW4geG1sdmVyc2lvbi5oIAorCisKK0NvbXBpbGVyIGFuZCBsaW5rZXIgZXJyb3JzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSB0aGUgREVDIEMgY29tcGlsZXIgbWF5IHByb2R1Y2UgYSBudW1iZXIgb2Ygd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgdGhlCisgIEMgY29kZS4gIFRoZXNlIGluY2x1ZGUKKworICAgIC0gSW1wbGljaXQgZnVuY3Rpb24gd2FybmluZ3MuICBUaGVzZSBpbmRpY2F0ZSBmdW5jdGlvbnMgd2hvc2UgdHlwZSBpcworICAgICAgbm90IGRlZmluZWQgaW4gYSAuaCBmaWxlLiAgVGhpcyB3aWxsIHByb2JhYmx5IG9ubHkgaGFwcGVuIGlmIHlvdXIKKyAgICAgIGNvbmZpZ3VyYXRpb24gaXMgbm90IGNvcnJlY3QgKGUuZy4gZm9yICJzbnByaW50ZiIgaWYgeW91IGhhdmVuJ3QKKyAgICAgIGVkaXRlZCB4bWx2ZXJzaW9uLmggdG8gc2V0IFdJVEhfVFJJTworCisgICAgLSB1bmluaXRpYWxpc2VkIHZhcmlhYmxlcy4gIE5vdCB1c3VhbGx5IGEgcHJvYmxlbS4gIFlvdSBjYW4gc29sdmUgdGhpcworICAgICAgYnkgZWRpdGluZyB0aGUgY29kZSB0byBpbml0aWFsaXNlIHRoZSB2YXJpYWJsZXMgYWZmZWN0ZWQKKworQ2hhbmdlcyBtYWRlIHRvIHRoZSBjb2RlYmFzZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSBJIGNoYW5nZWQgYWxsIGR1bW15IGRlY2xhcmF0aW9ucyBpbiB0cmlvLmMgdG8gYmUgCisKKyAgICB2YV9saXN0IGR1bW15ID0gTlVMTDsKKworICB0byBwcmV2ZW50IGNvbXBpbGVyIHdoaW5nZSBpbiBUUklPLkMgYWJvdXQgdW5pbml0aWFsaXNlZCB2YXJpYWJsZXMKKworLSBJIGhhZCB0byBhZGQgdGhlIGZvbGxvd2luZyB0byBuYW5vZnRwLmMKKworICAgICNpZiBkZWZpbmVkKFZNUykgfHwgZGVmaW5lZChfX1ZNUykKKyAgICAgICNkZWZpbmUgU09DS0xFTl9UIHVuc2lnbmVkIGludAorICAgICNlbmRpZgorCisgIFRoaXMgbWF0Y2hlcyBzaW1pbGFyIGxpbmVzIGFscmVhZHkgYWRkZWQgdG8gbmFub2h0dHAuYworCistIFNldmVyYWwgdmFyaWFibGVzIGFuZCBmdW5jdGlvbiBuYW1lcyBleGNlZWQgdGhlIDMxIGNoYXJhY3RlciBsaW1pdCAKKyAgb2YgdGhlIFZNUyBsaW5rZXIuIFRoZSBzb2x1dGlvbiBhZG9wdGVkIGhhcyBiZWVuIHRvIHVzZSB0aGUKKyAgL05BTUVTPVNIT1JURU5FRCBjb21waWxlciBvcHRpb24sIHdoaWNoIHJlcXVpcmVzIERFQy9Db21wYXEgQyA1LjcKKyAgb3IgbGF0ZXIuICBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHRoZSBuYW1lcyB0aGF0IG5lZWRlZCBzaG9ydGVuaW5nCisgIGFuZCB0aGUgc2hvcnQgbmFtZXMgZ2VuZXJhdGVkIGJ5IHRoZSBjb21waWxlciwgc2VlIFsudm1zXWNvbmZpZy52bXMuCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43Ljcvd2luMzIvTWFrZWZpbGUuYmNiIGIvbGlieG1sMi0yLjcuNy93aW4zMi9NYWtlZmlsZS5iY2IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjNGRiYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvd2luMzIvTWFrZWZpbGUuYmNiCkBAIC0wLDAgKzEsMzQ1IEBACisjIE1ha2VmaWxlIGZvciBsaWJ4bWwyLCBzcGVjaWZpYyBmb3IgV2luZG93cywgQkNCNiBhbmQgQm9ybGFuZCBtYWtlLgorIworIyBUYWtlIGEgbG9vayBhdCB0aGUgYmVnaW5uaW5nIGFuZCBtb2RpZnkgdGhlIHZhcmlhYmxlcyB0byBzdWl0IHlvdXIgCisjIGVudmlyb25tZW50LiBIYXZpbmcgZG9uZSB0aGF0LCB5b3UgY2FuIGRvIGEKKyMKKyMgbWFrZSBbYWxsXSAgICAgdG8gYnVpbGQgdGhlIGxpYnhtbCBhbmQgdGhlIGFjY29tcGFueWluZyB1dGlsaXRpZXMuCisjIG1ha2UgY2xlYW4gICAgIHRvIHJlbW92ZSBhbGwgY29tcGlsZXIgb3V0cHV0IGZpbGVzIGFuZCByZXR1cm4gdG8gYQorIyAgICAgICAgICAgICAgICAgY2xlYW4gc3RhdGUuCisjIG1ha2UgcmVidWlsZCAgIHRvIHJlYnVpbGQgZXZlcnl0aGluZyBmcm9tIHNjcmF0Y2guIFRoaXMgYmFzaWNhbGx5IGRvZXMKKyMgICAgICAgICAgICAgICAgIGEgJ25tYWtlIGNsZWFuJyBhbmQgdGhlbiBhICdubWFrZSBhbGwnLgorIyBtYWtlIGluc3RhbGwgICB0byBpbnN0YWxsIHRoZSBsaWJyYXJ5IGFuZCBpdHMgaGVhZGVyIGZpbGVzLgorIworIyBBdWd1c3QgMjAwMywgRXJpYyBadXJjaGVyIDxFcmljLlp1cmNoZXJAY3Npcm8uYXU+CisjIGJhc2VkIG9uIHRoZSBNU1ZDIHZlcnNpb24gb2YKKyMgTWFyY2ggMjAwMiwgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKyMKKworIyBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgYSBuZWVkIHRvIG1vZGlmeSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQVVUT0NPTkYgPSAuXGNvbmZpZy5iY2IKKyFpbmNsdWRlICQoQVVUT0NPTkYpCisKKyFpZiAhJGQoQkNCKQorQkNCID0gJChNQUtFRElSKVwuLgorIWVuZGlmCisuYXV0b2RlcGVuZAorCisjIE5hbWVzIG9mIHZhcmlvdXMgaW5wdXQgYW5kIG91dHB1dCBjb21wb25lbnRzLgorWE1MX05BTUUgPSB4bWwyCitYTUxfQkFTRU5BTUUgPSBsaWIkKFhNTF9OQU1FKQorWE1MX1NPID0gJChYTUxfQkFTRU5BTUUpLmRsbAorWE1MX0lNUCA9ICQoWE1MX0JBU0VOQU1FKS5saWIKK1hNTF9ERUYgPSAkKFhNTF9CQVNFTkFNRSkuZGVmCitYTUxfQSA9ICQoWE1MX0JBU0VOQU1FKV9hLmxpYgorRFVNTVkgPSBkaXIuZXhpc3RzCisKKyMgUGxhY2Ugd2hlcmUgd2UgbGV0IHRoZSBjb21waWxlciBwdXQgaXRzIGludGVybWVkaWF0ZSB0cmFzaC4KK0JJTkRJUiA9IGJpbi5iY2IKK1hNTF9JTlRESVIgPSBpbnQuYmNiCitYTUxfSU5URElSX0EgPSBpbnQuYS5iY2IKK1VUSUxTX0lOVERJUiA9IGludC51dGlscy5iY2IKKworIyBUaGUgcHJlcHJvY2Vzc29yIGFuZCBpdHMgb3B0aW9ucy4KK0NQUCA9IGNwcDMyLmV4ZSAtUC0gLURXSU4zMgorQ1BQRkxBR1MgPSAtSSIkKFhNTF9TUkNESVIpXGluY2x1ZGUiCishaWYgIiQoV0lUSF9USFJFQURTKSIgIT0gIm5vIgorQ1BQRkxBR1MgPSAkKENQUEZMQUdTKSAtRF9SRUVOVFJBTlQgLURfX01UX18KKyFlbmRpZgorCisjIFRoZSBjb21waWxlciBhbmQgaXRzIG9wdGlvbnMuCitDQyA9IGJjYzMyLmV4ZQorQ0ZMQUdTID0gLXEgLURXSU4zMiAtRF9OT19WQ0wgLURfV0lORE9XUyAtRF9NQkNTIC1ERUlMU0VRPTIgLXctCitDRkxBR1MgPSAkKENGTEFHUykgLUkiJChYTUxfU1JDRElSKSIgLUkiJChYTUxfU1JDRElSKVxpbmNsdWRlIiAtSSIkKElOQ1BSRUZJWCkiIC1JIiQoSU5DTFVERSkiCishaWYgIiQoV0lUSF9USFJFQURTKSIgIT0gIm5vIgorQ0ZMQUdTID0gJChDRkxBR1MpIC1EX1JFRU5UUkFOVCAtdFdNCishZW5kaWYKKyFpZiAiJChEWU5SVU5USU1FKSIgPT0gIjEiCitDRkxBR1MgPSAkKENGTEFHUykgLXRXUgorIWVuZGlmCishaWYgIiQoV0lUSF9USFJFQURTKSIgPT0gInllcyIgfHwgIiQoV0lUSF9USFJFQURTKSIgPT0gImN0bHMiCitDRkxBR1MgPSAkKENGTEFHUykgLURIQVZFX1dJTjMyX1RIUkVBRFMgLURIQVZFX0NPTVBJTEVSX1RMUworIWVsc2UgaWYgIiQoV0lUSF9USFJFQURTKSIgPT0gIm5hdGl2ZSIKK0NGTEFHUyA9ICQoQ0ZMQUdTKSAtREhBVkVfV0lOMzJfVEhSRUFEUworIWVsc2UgaWYgIiQoV0lUSF9USFJFQURTKSIgPT0gInBvc2l4IgorQ0ZMQUdTID0gJChDRkxBR1MpIC1ESEFWRV9QVEhSRUFEX0gKKyFlbmRpZgorIWlmICIkKFdJVEhfWkxJQikiID09ICIxIgorQ0ZMQUdTID0gJChDRkxBR1MpIC1ESEFWRV9aTElCX0gKKyFlbmRpZgorCisjIFRoZSBsaW5rZXIgYW5kIGl0cyBvcHRpb25zLgorTEQgPSBpbGluazMyLmV4ZQorTERGTEFHUyA9IC1xIC1VJChMSUJYTUxfTUFKT1JfVkVSU0lPTikuJChMSUJYTUxfTUlOT1JfVkVSU0lPTikKK0xERkxBR1MgPSAkKExERkxBR1MpIC1MIiQoQklORElSKTskKExJQlBSRUZJWCk7JChMSUIpOyQoQkNCKVxsaWI7JChCQ0IpXGxpYlxQU2RrIgorTElCUyA9IGltcG9ydDMyLmxpYgorIWlmICIkKFdJVEhfVEhSRUFEUykiICE9ICJubyIgJiYgIiQoRFlOUlVOVElNRSkiID09ICIxIgorTElCUyA9ICQoTElCUykgY3czMm10aS5saWIKKyFlbGlmICIkKFdJVEhfVEhSRUFEUykiICE9ICJubyIKK0xJQlMgPSAkKExJQlMpIGN3MzJtdC5saWIKKyFlbGlmICIkKERZTlJVTlRJTUUpIiA9PSAiMSIKK0xJQlMgPSAkKExJQlMpIGN3MzJpLmxpYgorIWVsc2UKK0xJQlMgPSAkKExJQlMpIGN3MzIubGliCishZW5kaWYKKyFpZiAiJChXSVRIX0ZUUCkiID09ICIxIiB8fCAiJChXSVRIX0hUVFApIiA9PSAiMSIKK0xJQlMgPSAkKExJQlMpIHdzb2NrMzIubGliIHdzMl8zMi5saWIKKyFlbmRpZiAKKyFpZiAiJChXSVRIX0lDT05WKSIgPT0gIjEiCitMSUJTID0gJChMSUJTKSBpY29udm9tZi5saWIKKyFlbmRpZiAKKyFpZiAiJChXSVRIX1pMSUIpIiA9PSAiMSIKK0xJQlMgPSAkKExJQlMpIHpsaWJvbWYubGliCishZW5kaWYKKyFpZiAiJChXSVRIX1RIUkVBRFMpIiA9PSAicG9zaXgiCitMSUJTID0gJChMSUJTKSBwdGhyZWFkVkMubGliCishZW5kaWYKKyFpZiAiJChXSVRIX01PRFVMRVMpIiA9PSAiMSIKK0xJQlMgPSAkKExJQlMpIGtlcm5lbDMyLmxpYgorIWVuZGlmCisKKyMgVGhlIGFyY2hpdmVyIGFuZCBpdHMgb3B0aW9ucy4KK0FSID0gdGxpYi5leGUKK0FSRkxBR1MgPSAvUDY0IC8wCisKKyMgT3B0aW1pc2F0aW9uIGFuZCBkZWJ1ZyBzeW1ib2xzLgorIWlmICIkKERFQlVHKSIgPT0gIjEiCitDRkxBR1MgPSAkKENGTEFHUykgLURfREVCVUcgLU9kIC12CitMREZMQUdTID0gJChMREZMQUdTKSAtdgorIWVsc2UKK0NGTEFHUyA9ICQoQ0ZMQUdTKSAtRE5ERUJVRyAtTzIgCitMREZMQUdTID0gJChMREZMQUdTKQorIWVuZGlmCisKKyMgTGlieG1sIG9iamVjdCBmaWxlcy4KK1hNTF9PQkpTID0gJChYTUxfSU5URElSKVxjMTRuLm9ialwKKwkkKFhNTF9JTlRESVIpXGNhdGFsb2cub2JqXAorCSQoWE1MX0lOVERJUilcY2h2YWxpZC5vYmpcCisJJChYTUxfSU5URElSKVxkZWJ1Z1hNTC5vYmpcCisJJChYTUxfSU5URElSKVxkaWN0Lm9ialwKKwkkKFhNTF9JTlRESVIpXERPQ0JwYXJzZXIub2JqXAorCSQoWE1MX0lOVERJUilcZW5jb2Rpbmcub2JqXAorCSQoWE1MX0lOVERJUilcZW50aXRpZXMub2JqXAorCSQoWE1MX0lOVERJUilcZXJyb3Iub2JqXAorCSQoWE1MX0lOVERJUilcZ2xvYmFscy5vYmpcCisJJChYTUxfSU5URElSKVxoYXNoLm9ialwKKwkkKFhNTF9JTlRESVIpXEhUTUxwYXJzZXIub2JqXAorCSQoWE1MX0lOVERJUilcSFRNTHRyZWUub2JqXAorCSQoWE1MX0lOVERJUilcbGVnYWN5Lm9ialwKKwkkKFhNTF9JTlRESVIpXGxpc3Qub2JqXAorCSQoWE1MX0lOVERJUilcbmFub2Z0cC5vYmpcCisJJChYTUxfSU5URElSKVxuYW5vaHR0cC5vYmpcCisJJChYTUxfSU5URElSKVxwYXJzZXIub2JqXAorCSQoWE1MX0lOVERJUilccGFyc2VySW50ZXJuYWxzLm9ialwKKwkkKFhNTF9JTlRESVIpXHBhdHRlcm4ub2JqXAorCSQoWE1MX0lOVERJUilccmVsYXhuZy5vYmpcCisJJChYTUxfSU5URElSKVxTQVgub2JqXAorCSQoWE1MX0lOVERJUilcU0FYMi5vYmpcCisJJChYTUxfSU5URElSKVxzY2hlbWF0cm9uLm9ialwKKwkkKFhNTF9JTlRESVIpXHRocmVhZHMub2JqXAorCSQoWE1MX0lOVERJUilcdHJlZS5vYmpcCisJJChYTUxfSU5URElSKVx1cmkub2JqXAorCSQoWE1MX0lOVERJUilcdmFsaWQub2JqXAorCSQoWE1MX0lOVERJUilceGluY2x1ZGUub2JqXAorCSQoWE1MX0lOVERJUilceGxpbmsub2JqXAorCSQoWE1MX0lOVERJUilceG1sSU8ub2JqXAorCSQoWE1MX0lOVERJUilceG1sbWVtb3J5Lm9ialwKKwkkKFhNTF9JTlRESVIpXHhtbHJlYWRlci5vYmpcCisJJChYTUxfSU5URElSKVx4bWxyZWdleHAub2JqXAorCSQoWE1MX0lOVERJUilceG1sbW9kdWxlLm9ialwKKwkkKFhNTF9JTlRESVIpXHhtbHNhdmUub2JqXAorCSQoWE1MX0lOVERJUilceG1sc2NoZW1hcy5vYmpcCisJJChYTUxfSU5URElSKVx4bWxzY2hlbWFzdHlwZXMub2JqXAorCSQoWE1MX0lOVERJUilceG1sdW5pY29kZS5vYmpcCisJJChYTUxfSU5URElSKVx4bWx3cml0ZXIub2JqXAorCSQoWE1MX0lOVERJUilceHBhdGgub2JqXAorCSQoWE1MX0lOVERJUilceHBvaW50ZXIub2JqXAorCSQoWE1MX0lOVERJUilceG1sc3RyaW5nLm9iagorCisjIFN0YXRpYyBsaWJ4bWwgb2JqZWN0IGZpbGVzLgorWE1MX09CSlNfQSA9ICQoWE1MX0lOVERJUl9BKVxjMTRuLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcY2F0YWxvZy5vYmpcCisJJChYTUxfSU5URElSX0EpXGNodmFsaWQub2JqXAorCSQoWE1MX0lOVERJUl9BKVxkZWJ1Z1hNTC5vYmpcCisJJChYTUxfSU5URElSX0EpXGRpY3Qub2JqXAorCSQoWE1MX0lOVERJUl9BKVxET0NCcGFyc2VyLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcZW5jb2Rpbmcub2JqXAorCSQoWE1MX0lOVERJUl9BKVxlbnRpdGllcy5vYmpcCisJJChYTUxfSU5URElSX0EpXGVycm9yLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcZ2xvYmFscy5vYmpcCisJJChYTUxfSU5URElSX0EpXGhhc2gub2JqXAorCSQoWE1MX0lOVERJUl9BKVxIVE1McGFyc2VyLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcSFRNTHRyZWUub2JqXAorCSQoWE1MX0lOVERJUl9BKVxsZWdhY3kub2JqXAorCSQoWE1MX0lOVERJUl9BKVxsaXN0Lm9ialwKKwkkKFhNTF9JTlRESVJfQSlcbmFub2Z0cC5vYmpcCisJJChYTUxfSU5URElSX0EpXG5hbm9odHRwLm9ialwKKwkkKFhNTF9JTlRESVJfQSlccGFyc2VyLm9ialwKKwkkKFhNTF9JTlRESVJfQSlccGFyc2VySW50ZXJuYWxzLm9ialwKKwkkKFhNTF9JTlRESVJfQSlccGF0dGVybi5vYmpcCisJJChYTUxfSU5URElSX0EpXHJlbGF4bmcub2JqXAorCSQoWE1MX0lOVERJUl9BKVxTQVgub2JqXAorCSQoWE1MX0lOVERJUl9BKVxTQVgyLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcc2NoZW1hdHJvbi5vYmpcCisJJChYTUxfSU5URElSX0EpXHRocmVhZHMub2JqXAorCSQoWE1MX0lOVERJUl9BKVx0cmVlLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcdXJpLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcdmFsaWQub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4aW5jbHVkZS5vYmpcCisJJChYTUxfSU5URElSX0EpXHhsaW5rLm9ialwKKwkkKFhNTF9JTlRESVJfQSlceG1sSU8ub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxtZW1vcnkub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxyZWFkZXIub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxyZWdleHAub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxtb2R1bGUub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxzYXZlLm9ialwKKwkkKFhNTF9JTlRESVJfQSlceG1sc2NoZW1hcy5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbHNjaGVtYXN0eXBlcy5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbHVuaWNvZGUub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWx3cml0ZXIub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4cGF0aC5vYmpcCisJJChYTUxfSU5URElSX0EpXHhwb2ludGVyLm9ialwKKwkkKFhNTF9JTlRESVJfQSlceG1sc3RyaW5nLm9iagorCisjIFhtbGxpbnQgYW5kIGZyaWVuZHMgZXhlY3V0YWJsZXMuCitVVElMUyA9ICQoQklORElSKVx4bWxsaW50LmV4ZVwKKwkkKEJJTkRJUilceG1sY2F0YWxvZy5leGVcCisJJChCSU5ESVIpXHRlc3RBdXRvbWF0YS5leGVcCisJJChCSU5ESVIpXHRlc3RDMTROLmV4ZVwKKwkkKEJJTkRJUilcdGVzdERvY2Jvb2suZXhlXAorCSQoQklORElSKVx0ZXN0SFRNTC5leGVcCisJJChCSU5ESVIpXHRlc3RSZWFkZXIuZXhlXAorCSQoQklORElSKVx0ZXN0UmVsYXguZXhlXAorCSQoQklORElSKVx0ZXN0UmVnZXhwLmV4ZVwKKwkkKEJJTkRJUilcdGVzdE1vZHVsZS5leGVcCisJJChCSU5ESVIpXHRlc3RTQVguZXhlXAorCSQoQklORElSKVx0ZXN0U2NoZW1hcy5leGVcCisJJChCSU5ESVIpXHRlc3RVUkkuZXhlXAorCSQoQklORElSKVx0ZXN0WFBhdGguZXhlXAorCSQoQklORElSKVxydW50ZXN0LmV4ZVwKKwkkKEJJTkRJUilccnVuc3VpdGUuZXhlXAorCSQoQklORElSKVx0ZXN0YXBpLmV4ZQorCisKKyFpZiAiJChXSVRIX1RIUkVBRFMpIiA9PSAieWVzIiB8fCAiJChXSVRIX1RIUkVBRFMpIiA9PSAiY3RscyIgfHwgIiQoV0lUSF9USFJFQURTKSIgPT0gIm5hdGl2ZSIKK1VUSUxTID0gJChVVElMUykgJChCSU5ESVIpXHRlc3RUaHJlYWRzV2luMzIuZXhlCishZWxzZSBpZiAiJChXSVRIX1RIUkVBRFMpIiA9PSAicG9zaXgiCitVVElMUyA9ICQoVVRJTFMpICQoQklORElSKVx0ZXN0VGhyZWFkcy5leGUKKyFlbmRpZgorCisKK2FsbCA6IGxpYnhtbCBsaWJ4bWxhIHV0aWxzCisKK2xpYnhtbCA6ICQoQklORElSKVwkKFhNTF9TTykgCisKK2xpYnhtbGEgOiAkKEJJTkRJUilcJChYTUxfQSkKKwordXRpbHMgOiAkKFVUSUxTKQorCitjbGVhbiA6CisJaWYgZXhpc3QgJChYTUxfSU5URElSKSBybWRpciAvUyAvUSAkKFhNTF9JTlRESVIpCisJaWYgZXhpc3QgJChYTUxfSU5URElSX0EpIHJtZGlyIC9TIC9RICQoWE1MX0lOVERJUl9BKQorCWlmIGV4aXN0ICQoVVRJTFNfSU5URElSKSBybWRpciAvUyAvUSAkKFVUSUxTX0lOVERJUikKKwlpZiBleGlzdCAkKEJJTkRJUikgcm1kaXIgL1MgL1EgJChCSU5ESVIpCisKK2Rpc3RjbGVhbiA6IGNsZWFuCisJaWYgZXhpc3QgY29uZmlnLiogZGVsIGNvbmZpZy4qCisJaWYgZXhpc3QgTWFrZWZpbGUgZGVsIE1ha2VmaWxlCisKK3JlYnVpbGQgOiBjbGVhbiBhbGwKKworaW5zdGFsbC1saWJzIDogYWxsCisJaWYgbm90IGV4aXN0ICIkKElOQ1BSRUZJWClcbGlieG1sIiBta2RpciAiJChJTkNQUkVGSVgpXGxpYnhtbCIKKwlpZiBub3QgZXhpc3QgIiQoQklOUFJFRklYKSIgbWtkaXIgIiQoQklOUFJFRklYKSIKKwlpZiBub3QgZXhpc3QgIiQoTElCUFJFRklYKSIgbWtkaXIgIiQoTElCUFJFRklYKSIKKwljb3B5ICQoWE1MX1NSQ0RJUilcaW5jbHVkZVxsaWJ4bWxcKi5oICIkKElOQ1BSRUZJWClcbGlieG1sIgorCWNvcHkgJChCSU5ESVIpXCQoWE1MX1NPKSAiJChTT1BSRUZJWCkiCisJY29weSAkKEJJTkRJUilcJChYTUxfQSkgIiQoTElCUFJFRklYKSIKKwljb3B5ICQoQklORElSKVwkKFhNTF9JTVApICIkKExJQlBSRUZJWCkiCisJY29weSAkKEJJTkRJUilcKi5leGUgIiQoQklOUFJFRklYKSIKKworaW5zdGFsbCA6IGluc3RhbGwtbGlicworCWNvcHkgJChCSU5ESVIpXCouZXhlICIkKEJJTlBSRUZJWCkiCisKK2luc3RhbGwtZGlzdCA6IGluc3RhbGwtbGlicworCWNvcHkgJChCSU5ESVIpXHhtbCouZXhlICIkKEJJTlBSRUZJWCkiCisKKyMgVGhpcyBpcyBhIHRhcmdldCBmb3IgbWUsIHRvIG1ha2UgYSBiaW5hcnkgZGlzdHJpYnV0aW9uLiBOb3QgZm9yIHRoZSBwdWJsaWMgdXNlLAorIyBrZWVwIHlvdXIgaGFuZHMgb2ZmIDotKQorQkRWRVJTSU9OID0gJChMSUJYTUxfTUFKT1JfVkVSU0lPTikuJChMSUJYTUxfTUlOT1JfVkVSU0lPTikuJChMSUJYTUxfTUlDUk9fVkVSU0lPTikKK0JEUFJFRklYID0gJChYTUxfQkFTRU5BTUUpLSQoQkRWRVJTSU9OKS53aW4zMgorYmluZGlzdCA6IGFsbAorCSQoTUFLRSkgL25vbG9nbyBQUkVGSVg9JChCRFBSRUZJWCkgU09QUkVGSVg9JChCRFBSRUZJWClcYmluIGluc3RhbGwtZGlzdAorCWNzY3JpcHQgLy9Ob0xvZ28gY29uZmlndXJlLmpzIGdlbnJlYWRtZSAkKFhNTF9CQVNFTkFNRSkgJChCRFZFUlNJT04pICQoQkRQUkVGSVgpXHJlYWRtZS50eHQKKworCisjIE1ha2VzIHRoZSBvdXRwdXQgZGlyZWN0b3J5LgorJChCSU5ESVIpXCQoRFVNTVkpIDoKKwlpZiBub3QgZXhpc3QgJChCSU5ESVIpIG1rZGlyICQoQklORElSKQorCXRvdWNoICQoQklORElSKVwkKERVTU1ZKQorCisjIE1ha2VzIHRoZSBsaWJ4bWwgaW50ZXJtZWRpYXRlIGRpcmVjdG9yeS4KKyQoWE1MX0lOVERJUilcJChEVU1NWSkgOgorCWlmIG5vdCBleGlzdCAkKFhNTF9JTlRESVIpIG1rZGlyICQoWE1MX0lOVERJUikKKwl0b3VjaCAkKFhNTF9JTlRESVIpXCQoRFVNTVkpCisKKyMgTWFrZXMgdGhlIHN0YXRpYyBsaWJ4bWwgaW50ZXJtZWRpYXRlIGRpcmVjdG9yeS4KKyQoWE1MX0lOVERJUl9BKVwkKERVTU1ZKSA6CisJaWYgbm90IGV4aXN0ICQoWE1MX0lOVERJUl9BKSBta2RpciAkKFhNTF9JTlRESVJfQSkKKwl0b3VjaCAkKFhNTF9JTlRESVJfQSlcJChEVU1NWSkKKworIyBBbiBpbXBsaWNpdCBydWxlIGZvciBsaWJ4bWwgY29tcGlsYXRpb24uCit7JChYTUxfU1JDRElSKX0uY3skKFhNTF9JTlRESVIpfS5vYmo6CisJJChDQykgJChDRkxBR1MpIC1uJChYTUxfSU5URElSKSAtYyAkPAorCisjIEFuIGltcGxpY2l0IHJ1bGUgZm9yIHN0YXRpYyBsaWJ4bWwgY29tcGlsYXRpb24uCit7JChYTUxfU1JDRElSKX0uY3skKFhNTF9JTlRESVJfQSl9Lm9iajoKKwkkKENDKSAkKENGTEFHUykgLURMSUJYTUxfU1RBVElDIC1uJChYTUxfSU5URElSX0EpXCAtYyAkPAorCisjIENvbXBpbGVzIGxpYnhtbCBzb3VyY2UuIFVzZXMgdGhlIGltcGxpY2l0IHJ1bGUgZm9yIGNvbW1hbmRzLgorJChYTUxfT0JKUykgOiAkKFhNTF9JTlRESVIpXCQoRFVNTVkpCisKKyMgQ29tcGlsZXMgc3RhdGljIGxpYnhtbCBzb3VyY2UuIFVzZXMgdGhlIGltcGxpY2l0IHJ1bGUgZm9yIGNvbW1hbmRzLgorJChYTUxfT0JKU19BKSA6ICQoWE1MX0lOVERJUl9BKVwkKERVTU1ZKSAKKworI2RlZjRiY2IuZXhlIDogZGVmNGJjYi5jCisKKyMgQ3JlYXRlcyB0aGUgZXhwb3J0IGRlZmluaXRpb24gZmlsZSAoREVGKSBmb3IgbGlieG1sLgorIyQoWE1MX0lOVERJUilcJChYTUxfREVGKSA6ICQoWE1MX0lOVERJUilcJChEVU1NWSkgJChYTUxfREVGKS5zcmMgZGVmNGJjYi5leGUKKyMJJChDUFApICQoQ1BQRkxBR1MpIC1vICQoWE1MX0lOVERJUilcJChYTUxfREVGKS50bXAgJChYTUxfREVGKS5zcmMKKyMJZGVmNGJjYiAtbXNuYW1lcyA8ICQoWE1MX0lOVERJUilcJChYTUxfREVGKS50bXAgPiAkKFhNTF9JTlRESVIpXCQoWE1MX0RFRikKKworIyBDcmVhdGVzIHRoZSBsaWJ4bWwgc2hhcmVkIG9iamVjdC4KKyQoQklORElSKVwkKFhNTF9TTykgOiAkKEJJTkRJUilcJChEVU1NWSkgJChYTUxfT0JKUykKKwkkKExEKSAkKExERkxBR1MpIC1UcGQgLUdpIGMwZDMyLm9iaiAkKFhNTF9PQkpTKSwkKEJJTkRJUilcJChYTUxfU08pLCwkKExJQlMpCisKKyMkKEJJTkRJUilcJChYTUxfU08pIDogJChCSU5ESVIpXCQoRFVNTVkpICQoWE1MX09CSlMpICQoWE1MX0lOVERJUilcJChYTUxfREVGKQorIwkkKExEKSAkKExERkxBR1MpIC1UcGQgLUdpIGMwZDMyLm9iaiAkKFhNTF9PQkpTKSwkKEJJTkRJUilcJChYTUxfU08pLCwkKExJQlMpLCQoWE1MX0lOVERJUilcJChYTUxfREVGKQorCisjIENyZWF0ZXMgdGhlIGxpYnhtbCBhcmNoaXZlLgorJChCSU5ESVIpXCQoWE1MX0EpIDogJChCSU5ESVIpXCQoRFVNTVkpICQoWE1MX09CSlNfQSkKKwkkKEFSKSAkKEJJTkRJUilcJChYTUxfQSkgJChBUkZMQUdTKSAvdSAkKFhNTF9PQkpTX0EpCisKKyMgTWFrZXMgdGhlIHV0aWxzIGludGVybWVkaWF0ZSBkaXJlY3RvcnkuCiskKFVUSUxTX0lOVERJUilcJChEVU1NWSkgOgorCWlmIG5vdCBleGlzdCAkKFVUSUxTX0lOVERJUikgbWtkaXIgJChVVElMU19JTlRESVIpCisJdG91Y2ggJChVVElMU19JTlRESVIpXCQoRFVNTVkpCisKKyMgQW4gaW1wbGljaXQgcnVsZSBmb3IgeG1sbGludCBhbmQgZnJpZW5kcy4KKyFpZiAiJChTVEFUSUMpIiA9PSAiMSIKK3skKFVUSUxTX1NSQ0RJUil9LmN7JChCSU5ESVIpfS5leGU6CisJJChDQykgLURMSUJYTUxfU1RBVElDIC13IC10V0MgJChDRkxBR1MpIC1vJChVVElMU19JTlRESVIpXCQmLm9iaiAtYyAkPCAKKwkkKExEKSAkKExERkxBR1MpIGMweDMyLm9iaiAkKFVUSUxTX0lOVERJUilcJCYub2JqLCRALCwkKExJQlMpICQoWE1MX0EpCishZWxzZQoreyQoVVRJTFNfU1JDRElSKX0uY3skKEJJTkRJUil9LmV4ZToKKwkkKENDKSAkKENGTEFHUykgLXRXQyAtbyQoVVRJTFNfSU5URElSKVwkJi5vYmogLWMgJDwgCisJJChMRCkgJChMREZMQUdTKSBjMHgzMi5vYmogJChVVElMU19JTlRESVIpXCQmLm9iaiAkKFhNTF9JTVApLCRALCwkKExJQlMpIAorIWVuZGlmCisKKyMgQnVpbGRzIHhtbGxpbnQgYW5kIGZyaWVuZHMuIFVzZXMgdGhlIGltcGxpY2l0IHJ1bGUgZm9yIGNvbW1hbmRzLgorJChVVElMUykgOiAkKFVUSUxTX0lOVERJUilcJChEVU1NWSkgJChCSU5ESVIpXCQoRFVNTVkpICQoQklORElSKVwkKFhNTF9TTykgJChCSU5ESVIpXCQoWE1MX0EpCisKKyMgU291cmNlIGRlcGVuZGVuY2VzIHNob3VsZCBiZSBhdXRvZ2VuZXJhdGVkIHNvbWVob3cgaGVyZSwgYnV0IGhvdyB0bworIyBkbyBpdD8gSSBoYXZlIG5vIGNsdWUuCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43Ljcvd2luMzIvTWFrZWZpbGUubWluZ3cgYi9saWJ4bWwyLTIuNy43L3dpbjMyL01ha2VmaWxlLm1pbmd3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OTk3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3dpbjMyL01ha2VmaWxlLm1pbmd3CkBAIC0wLDAgKzEsMzQwIEBACisjIE1ha2VmaWxlIGZvciBsaWJ4bWwyLCBzcGVjaWZpYyBmb3IgV2luZG93cywgR0NDIChtaW5ndykgYW5kIEdOVSBtYWtlLgorIworIyBUYWtlIGEgbG9vayBhdCB0aGUgYmVnaW5uaW5nIGFuZCBtb2RpZnkgdGhlIHZhcmlhYmxlcyB0byBzdWl0IHlvdXIgCisjIGVudmlyb25tZW50LiBIYXZpbmcgZG9uZSB0aGF0LCB5b3UgY2FuIGRvIGEKKyMKKyMgbm1ha2UgW2FsbF0gICAgIHRvIGJ1aWxkIHRoZSBsaWJ4bWwgYW5kIHRoZSBhY2NvbXBhbnlpbmcgdXRpbGl0aWVzLgorIyBubWFrZSBjbGVhbiAgICAgdG8gcmVtb3ZlIGFsbCBjb21waWxlciBvdXRwdXQgZmlsZXMgYW5kIHJldHVybiB0byBhCisjICAgICAgICAgICAgICAgICBjbGVhbiBzdGF0ZS4KKyMgbm1ha2UgcmVidWlsZCAgIHRvIHJlYnVpbGQgZXZlcnl0aGluZyBmcm9tIHNjcmF0Y2guIFRoaXMgYmFzaWNhbGx5IGRvZXMKKyMgICAgICAgICAgICAgICAgIGEgJ25tYWtlIGNsZWFuJyBhbmQgdGhlbiBhICdubWFrZSBhbGwnLgorIyBubWFrZSBpbnN0YWxsICAgdG8gaW5zdGFsbCB0aGUgbGlicmFyeSBhbmQgaXRzIGhlYWRlciBmaWxlcy4KKyMKKyMgTm92ZW1iZXIgMjAwMiwgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworIyBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgYSBuZWVkIHRvIG1vZGlmeSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQVVUT0NPTkYgPSAuXGNvbmZpZy5taW5ndworaW5jbHVkZSAkKEFVVE9DT05GKQorCisjIE5hbWVzIG9mIHZhcmlvdXMgaW5wdXQgYW5kIG91dHB1dCBjb21wb25lbnRzLgorWE1MX05BTUUgPSB4bWwyCitYTUxfQkFTRU5BTUUgPSBsaWIkKFhNTF9OQU1FKQorWE1MX1NPID0gJChYTUxfQkFTRU5BTUUpLmRsbAorWE1MX0lNUCA9ICQoWE1MX0JBU0VOQU1FKS5saWIKK1hNTF9BID0gJChYTUxfQkFTRU5BTUUpLmEKKworIyBQbGFjZSB3aGVyZSB3ZSBsZXQgdGhlIGNvbXBpbGVyIHB1dCBpdHMgb3V0cHV0LgorQklORElSID0gYmluLm1pbmd3CitYTUxfSU5URElSID0gaW50Lm1pbmd3CitYTUxfSU5URElSX0EgPSBpbnQuYS5taW5ndworVVRJTFNfSU5URElSID0gaW50LnV0aWxzLm1pbmd3CisKKyMgVGhlIHByZXByb2Nlc3NvciBhbmQgaXRzIG9wdGlvbnMuCitDUFAgPSBnY2MuZXhlIC1FCitDUFBGTEFHUyArPSAtSSQoWE1MX1NSQ0RJUikvaW5jbHVkZQoraWZlcSAoJChXSVRIX1RIUkVBRFMpLDEpCitDUFBGTEFHUyArPSAtRF9SRUVOVFJBTlQKK2VuZGlmCisKKyMgVGhlIGNvbXBpbGVyIGFuZCBpdHMgb3B0aW9ucy4KK0NDID0gZ2NjLmV4ZQorQ0ZMQUdTICs9IC1EV0lOMzIgLURfV0lORE9XUyAtRF9NQkNTCitDRkxBR1MgKz0gLUkkKFhNTF9TUkNESVIpIC1JJChYTUxfU1JDRElSKS9pbmNsdWRlIC1JJChJTkNQUkVGSVgpCitpZm5lcSAoJChXSVRIX1RIUkVBRFMpLG5vKQorQ0ZMQUdTICs9IC1EX1JFRU5UUkFOVAorZW5kaWYKK2lmZXEgKCQoV0lUSF9USFJFQURTKSx5ZXMpIAorQ0ZMQUdTICs9IC1ESEFWRV9XSU4zMl9USFJFQURTIC1ESEFWRV9DT01QSUxFUl9UTFMKK2VuZGlmCitpZmVxICgkKFdJVEhfVEhSRUFEUyksY3RscykKK0NGTEFHUyArPSAtREhBVkVfV0lOMzJfVEhSRUFEUyAtREhBVkVfQ09NUElMRVJfVExTCitlbmRpZgoraWZlcSAoJChXSVRIX1RIUkVBRFMpLG5hdGl2ZSkKK0NGTEFHUyArPSAtREhBVkVfV0lOMzJfVEhSRUFEUworZW5kaWYKK2lmZXEgKCQoV0lUSF9USFJFQURTKSxwb3NpeCkKK0NGTEFHUyArPSAtREhBVkVfUFRIUkVBRF9ICitlbmRpZgoraWZlcSAoJChXSVRIX1pMSUIpLDEpCitDRkxBR1MgKz0gLURIQVZFX1pMSUJfSAorZW5kaWYKKworIyBUaGUgbGlua2VyIGFuZCBpdHMgb3B0aW9ucy4KK0xEID0gZ2NjLmV4ZQorTERGTEFHUyArPSAtV2wsLS1tYWpvci1pbWFnZS12ZXJzaW9uLCQoTElCWE1MX01BSk9SX1ZFUlNJT04pCitMREZMQUdTICs9IC1XbCwtLW1pbm9yLWltYWdlLXZlcnNpb24sJChMSUJYTUxfTUlOT1JfVkVSU0lPTikKK0xERkxBR1MgKz0gLVdsLC1MLCQoQklORElSKSAtV2wsLUwsJChMSUJQUkVGSVgpCitMSUJTID0gCitpZmVxICgkKFdJVEhfRlRQKSwxKQorQ0ZMQUdTICs9IC1EX1dJTlNPQ0tBUElfCitMSUJTICs9IC1sd3NvY2szMgorZW5kaWYgCitpZmVxICgkKFdJVEhfSFRUUCksMSkKK0NGTEFHUyArPSAtRF9XSU5TT0NLQVBJXworTElCUyArPSAtbHdzb2NrMzIKK2VuZGlmIAoraWZlcSAoJChXSVRIX0lDT05WKSwxKQorTElCUyArPSAtbGljb252CitlbmRpZiAKK2lmZXEgKCQoV0lUSF9aTElCKSwxKQorTElCUyArPSAtbHpkbGwKK2VuZGlmCitpZmVxICgkKFdJVEhfVEhSRUFEUykscG9zaXgpCitMSUJTICs9IC1scHRocmVhZEdDCitlbmRpZgoraWZlcSAoJChXSVRIX01PRFVMRVMpLDEpCitMSUJTICs9IC1sa2VybmVsMzIKK2VuZGlmCisKKyMgVGhlIGFyY2hpdmVyIGFuZCBpdHMgb3B0aW9ucy4KK0FSID0gYXIuZXhlCitBUkZMQUdTID0gLXIKKworIyBPcHRpbWlzYXRpb24gYW5kIGRlYnVnIHN5bWJvbHMuCitpZmVxICgkKERFQlVHKSwxKQorQ0ZMQUdTICs9IC1EX0RFQlVHIC1nCitMREZMQUdTICs9IAorZWxzZQorQ0ZMQUdTICs9IC1ETkRFQlVHIC1PMiAKK0xERkxBR1MgKz0gCitlbmRpZgorCisKKyMgTGlieG1sIG9iamVjdCBmaWxlcy4KK1hNTF9PQkpTID0gJChYTUxfSU5URElSKS9jMTRuLm9cCisJJChYTUxfSU5URElSKS9jYXRhbG9nLm9cCisJJChYTUxfSU5URElSKS9jaHZhbGlkLm9cCisJJChYTUxfSU5URElSKS9kZWJ1Z1hNTC5vXAorCSQoWE1MX0lOVERJUikvZGljdC5vXAorCSQoWE1MX0lOVERJUikvRE9DQnBhcnNlci5vXAorCSQoWE1MX0lOVERJUikvZW5jb2Rpbmcub1wKKwkkKFhNTF9JTlRESVIpL2VudGl0aWVzLm9cCisJJChYTUxfSU5URElSKS9lcnJvci5vXAorCSQoWE1MX0lOVERJUikvZ2xvYmFscy5vXAorCSQoWE1MX0lOVERJUikvaGFzaC5vXAorCSQoWE1MX0lOVERJUikvSFRNTHBhcnNlci5vXAorCSQoWE1MX0lOVERJUikvSFRNTHRyZWUub1wKKwkkKFhNTF9JTlRESVIpL2xlZ2FjeS5vXAorCSQoWE1MX0lOVERJUikvbGlzdC5vXAorCSQoWE1MX0lOVERJUikvbmFub2Z0cC5vXAorCSQoWE1MX0lOVERJUikvbmFub2h0dHAub1wKKwkkKFhNTF9JTlRESVIpL3BhcnNlci5vXAorCSQoWE1MX0lOVERJUikvcGFyc2VySW50ZXJuYWxzLm9cCisJJChYTUxfSU5URElSKS9wYXR0ZXJuLm9cCisJJChYTUxfSU5URElSKS9yZWxheG5nLm9cCisJJChYTUxfSU5URElSKS9TQVgub1wKKwkkKFhNTF9JTlRESVIpL1NBWDIub1wKKwkkKFhNTF9JTlRESVIpL3NjaGVtYXRyb24ub1wKKwkkKFhNTF9JTlRESVIpL3RocmVhZHMub1wKKwkkKFhNTF9JTlRESVIpL3RyZWUub1wKKwkkKFhNTF9JTlRESVIpL3VyaS5vXAorCSQoWE1MX0lOVERJUikvdmFsaWQub1wKKwkkKFhNTF9JTlRESVIpL3hpbmNsdWRlLm9cCisJJChYTUxfSU5URElSKS94bGluay5vXAorCSQoWE1MX0lOVERJUikveG1sSU8ub1wKKwkkKFhNTF9JTlRESVIpL3htbG1lbW9yeS5vXAorCSQoWE1MX0lOVERJUikveG1scmVhZGVyLm9cCisJJChYTUxfSU5URElSKS94bWxyZWdleHAub1wKKwkkKFhNTF9JTlRESVIpL3htbG1vZHVsZS5vXAorCSQoWE1MX0lOVERJUikveG1sc2F2ZS5vXAorCSQoWE1MX0lOVERJUikveG1sc2NoZW1hcy5vXAorCSQoWE1MX0lOVERJUikveG1sc2NoZW1hc3R5cGVzLm9cCisJJChYTUxfSU5URElSKS94bWx1bmljb2RlLm9cCisJJChYTUxfSU5URElSKS94bWx3cml0ZXIub1wKKwkkKFhNTF9JTlRESVIpL3hwYXRoLm9cCisJJChYTUxfSU5URElSKS94cG9pbnRlci5vXAorCSQoWE1MX0lOVERJUikveG1sc3RyaW5nLm8KKworWE1MX1NSQ1MgPSAkKHN1YnN0IC5vLC5jLCQoc3Vic3QgJChYTUxfSU5URElSKS8sJChYTUxfU1JDRElSKS8sJChYTUxfT0JKUykpKQorCisjIFN0YXRpYyBsaWJ4bWwgb2JqZWN0IGZpbGVzLgorWE1MX09CSlNfQSA9ICQoWE1MX0lOVERJUl9BKS9jMTRuLm9cCisJJChYTUxfSU5URElSX0EpL2NhdGFsb2cub1wKKwkkKFhNTF9JTlRESVJfQSkvY2h2YWxpZC5vXAorCSQoWE1MX0lOVERJUl9BKS9kZWJ1Z1hNTC5vXAorCSQoWE1MX0lOVERJUl9BKS9kaWN0Lm9cCisJJChYTUxfSU5URElSX0EpL0RPQ0JwYXJzZXIub1wKKwkkKFhNTF9JTlRESVJfQSkvZW5jb2Rpbmcub1wKKwkkKFhNTF9JTlRESVJfQSkvZW50aXRpZXMub1wKKwkkKFhNTF9JTlRESVJfQSkvZXJyb3Iub1wKKwkkKFhNTF9JTlRESVJfQSkvZ2xvYmFscy5vXAorCSQoWE1MX0lOVERJUl9BKS9oYXNoLm9cCisJJChYTUxfSU5URElSX0EpL0hUTUxwYXJzZXIub1wKKwkkKFhNTF9JTlRESVJfQSkvSFRNTHRyZWUub1wKKwkkKFhNTF9JTlRESVJfQSkvbGVnYWN5Lm9cCisJJChYTUxfSU5URElSX0EpL2xpc3Qub1wKKwkkKFhNTF9JTlRESVJfQSkvbmFub2Z0cC5vXAorCSQoWE1MX0lOVERJUl9BKS9uYW5vaHR0cC5vXAorCSQoWE1MX0lOVERJUl9BKS9wYXJzZXIub1wKKwkkKFhNTF9JTlRESVJfQSkvcGFyc2VySW50ZXJuYWxzLm9cCisJJChYTUxfSU5URElSX0EpL3BhdHRlcm4ub1wKKwkkKFhNTF9JTlRESVJfQSkvcmVsYXhuZy5vXAorCSQoWE1MX0lOVERJUl9BKS9TQVgub1wKKwkkKFhNTF9JTlRESVJfQSkvU0FYMi5vXAorCSQoWE1MX0lOVERJUl9BKS9zY2hlbWF0cm9uLm9cCisJJChYTUxfSU5URElSX0EpL3RocmVhZHMub1wKKwkkKFhNTF9JTlRESVJfQSkvdHJlZS5vXAorCSQoWE1MX0lOVERJUl9BKS91cmkub1wKKwkkKFhNTF9JTlRESVJfQSkvdmFsaWQub1wKKwkkKFhNTF9JTlRESVJfQSkveGluY2x1ZGUub1wKKwkkKFhNTF9JTlRESVJfQSkveGxpbmsub1wKKwkkKFhNTF9JTlRESVJfQSkveG1sSU8ub1wKKwkkKFhNTF9JTlRESVJfQSkveG1sbWVtb3J5Lm9cCisJJChYTUxfSU5URElSX0EpL3htbHJlYWRlci5vXAorCSQoWE1MX0lOVERJUl9BKS94bWxyZWdleHAub1wKKwkkKFhNTF9JTlRESVJfQSkveG1sbW9kdWxlLm9cCisJJChYTUxfSU5URElSX0EpL3htbHNhdmUub1wKKwkkKFhNTF9JTlRESVJfQSkveG1sc2NoZW1hcy5vXAorCSQoWE1MX0lOVERJUl9BKS94bWxzY2hlbWFzdHlwZXMub1wKKwkkKFhNTF9JTlRESVJfQSkveG1sdW5pY29kZS5vXAorCSQoWE1MX0lOVERJUl9BKS94bWx3cml0ZXIub1wKKwkkKFhNTF9JTlRESVJfQSkveHBhdGgub1wKKwkkKFhNTF9JTlRESVJfQSkveHBvaW50ZXIub1wKKwkkKFhNTF9JTlRESVJfQSkveG1sc3RyaW5nLm8KKworWE1MX1NSQ1NfQSA9ICQoc3Vic3QgLm8sLmMsJChzdWJzdCAkKFhNTF9JTlRESVJfQSkvLCQoWE1MX1NSQ0RJUikvLCQoWE1MX09CSlNfQSkpKQorCisjIFhtbGxpbnQgYW5kIGZyaWVuZHMgZXhlY3V0YWJsZXMuCitVVElMUyA9ICQoQklORElSKS94bWxsaW50LmV4ZVwKKwkkKEJJTkRJUikveG1sY2F0YWxvZy5leGVcCisJJChCSU5ESVIpL3Rlc3RBdXRvbWF0YS5leGVcCisJJChCSU5ESVIpL3Rlc3RDMTROLmV4ZVwKKwkkKEJJTkRJUikvdGVzdERvY2Jvb2suZXhlXAorCSQoQklORElSKS90ZXN0SFRNTC5leGVcCisJJChCSU5ESVIpL3Rlc3RSZWFkZXIuZXhlXAorCSQoQklORElSKS90ZXN0UmVnZXhwLmV4ZVwKKwkkKEJJTkRJUikvdGVzdE1vZHVsZS5leGVcCisJJChCSU5ESVIpL3Rlc3RSZWxheC5leGVcCisJJChCSU5ESVIpL3Rlc3RTQVguZXhlXAorCSQoQklORElSKS90ZXN0U2NoZW1hcy5leGVcCisJJChCSU5ESVIpL3Rlc3RVUkkuZXhlXAorCSQoQklORElSKS90ZXN0WFBhdGguZXhlXAorCSQoQklORElSKS9ydW50ZXN0LmV4ZVwKKwkkKEJJTkRJUikvcnVuc3VpdGUuZXhlXAorCSQoQklORElSKS90ZXN0YXBpLmV4ZQorCitpZmVxICgkKFdJVEhfVEhSRUFEUykseWVzKQorVVRJTFMgKz0gJChCSU5ESVIpL3Rlc3RUaHJlYWRzV2luMzIuZXhlCitlbmRpZgoraWZlcSAoJChXSVRIX1RIUkVBRFMpLGN0bHMpIAorVVRJTFMgKz0gJChCSU5ESVIpL3Rlc3RUaHJlYWRzV2luMzIuZXhlCitlbmRpZgoraWZlcSAoJChXSVRIX1RIUkVBRFMpLG5hdGl2ZSkKK1VUSUxTICs9ICQoQklORElSKS90ZXN0VGhyZWFkc1dpbjMyLmV4ZQorZW5kaWYKK2lmZXEgKCQoV0lUSF9USFJFQURTKSxwb3NpeCkKK1VUSUxTICs9ICQoQklORElSKS90ZXN0VGhyZWFkcy5leGUKK2VuZGlmCisKK2FsbCA6IGRlcCBsaWJ4bWwgbGlieG1sYSB1dGlscworCitsaWJ4bWwgOiAkKEJJTkRJUikvJChYTUxfU08pIAorCitsaWJ4bWxhIDogJChCSU5ESVIpLyQoWE1MX0EpCisKK3V0aWxzIDogJChVVElMUykKKworY2xlYW4gOgorCWNtZC5leGUgL0MgImlmIGV4aXN0ICQoWE1MX0lOVERJUikgcm1kaXIgL1MgL1EgJChYTUxfSU5URElSKSIKKwljbWQuZXhlIC9DICJpZiBleGlzdCAkKFhNTF9JTlRESVJfQSkgcm1kaXIgL1MgL1EgJChYTUxfSU5URElSX0EpIgorCWNtZC5leGUgL0MgImlmIGV4aXN0ICQoVVRJTFNfSU5URElSKSBybWRpciAvUyAvUSAkKFVUSUxTX0lOVERJUikiCisJY21kLmV4ZSAvQyAiaWYgZXhpc3QgJChCSU5ESVIpIHJtZGlyIC9TIC9RICQoQklORElSKSIKKwljbWQuZXhlIC9DICJpZiBleGlzdCBkZXBlbmRzLm1pbmd3IGRlbCBkZXBlbmRzLm1pbmd3IgorCitkaXN0Y2xlYW4gOiBjbGVhbgorCWNtZC5leGUgL0MgImlmIGV4aXN0IGNvbmZpZy4qIGRlbCBjb25maWcuKiIKKwljbWQuZXhlIC9DICJpZiBleGlzdCBNYWtlZmlsZSBkZWwgTWFrZWZpbGUiCisKK3JlYnVpbGQgOiBjbGVhbiBhbGwKKworaW5zdGFsbC1saWJzIDogYWxsCisJY21kLmV4ZSAvQyAiaWYgbm90IGV4aXN0ICQoSU5DUFJFRklYKVxsaWJ4bWwgbWtkaXIgJChJTkNQUkVGSVgpXGxpYnhtbCIKKwljbWQuZXhlIC9DICJpZiBub3QgZXhpc3QgJChCSU5QUkVGSVgpIG1rZGlyICQoQklOUFJFRklYKSIKKwljbWQuZXhlIC9DICJpZiBub3QgZXhpc3QgJChMSUJQUkVGSVgpIG1rZGlyICQoTElCUFJFRklYKSIKKwljbWQuZXhlIC9DICJjb3B5ICQoWE1MX1NSQ0RJUilcaW5jbHVkZVxsaWJ4bWxcKi5oICQoSU5DUFJFRklYKVxsaWJ4bWwiCisJY21kLmV4ZSAvQyAiY29weSAkKEJJTkRJUilcJChYTUxfU08pICQoU09QUkVGSVgpIgorCWNtZC5leGUgL0MgImNvcHkgJChCSU5ESVIpXCQoWE1MX0EpICQoTElCUFJFRklYKSIKKwljbWQuZXhlIC9DICJjb3B5ICQoQklORElSKVwkKFhNTF9JTVApICQoTElCUFJFRklYKSIKKwljbWQuZXhlIC9DICJjb3B5ICQoQklORElSKVx4bWwqLmV4ZSAkKEJJTlBSRUZJWCkiCisKK2luc3RhbGwgOiBpbnN0YWxsLWxpYnMKKwljbWQuZXhlIC9DICJjb3B5ICQoQklORElSKVwqLmV4ZSAkKEJJTlBSRUZJWCkiCisKK2luc3RhbGwtZGlzdCA6IGluc3RhbGwtbGlicworCWNtZC5leGUgL0MgImNvcHkgJChCSU5ESVIpXHhtbCouZXhlICQoQklOUFJFRklYKSIKKworIyBUaGlzIGlzIGEgdGFyZ2V0IGZvciBtZSwgdG8gbWFrZSBhIGJpbmFyeSBkaXN0cmlidXRpb24uIE5vdCBmb3IgdGhlIHB1YmxpYyB1c2UsCisjIGtlZXAgeW91ciBoYW5kcyBvZmYgOi0pCitCRFZFUlNJT04gPSAkKExJQlhNTF9NQUpPUl9WRVJTSU9OKS4kKExJQlhNTF9NSU5PUl9WRVJTSU9OKS4kKExJQlhNTF9NSUNST19WRVJTSU9OKQorQkRQUkVGSVggPSAkKFhNTF9CQVNFTkFNRSktJChCRFZFUlNJT04pLndpbjMyCitiaW5kaXN0IDogYWxsCisJJChNQUtFKSBQUkVGSVg9JChCRFBSRUZJWCkgU09QUkVGSVg9JChCRFBSRUZJWCkvYmluIGluc3RhbGwtZGlzdAorCWNzY3JpcHQgLy9Ob0xvZ28gY29uZmlndXJlLmpzIGdlbnJlYWRtZSAkKFhNTF9CQVNFTkFNRSkgJChCRFZFUlNJT04pICQoQkRQUkVGSVgpXHJlYWRtZS50eHQKKworCisjIENyZWF0ZXMgdGhlIGRlcGVuZGVuY3kgZmlsZQorZGVwIDoKKwkkKENDKSAkKENGTEFHUykgLU0gJChYTUxfU1JDUykgPiBkZXBlbmRzLm1pbmd3CisKKworIyBNYWtlcyB0aGUgb3V0cHV0IGRpcmVjdG9yeS4KKyQoQklORElSKSA6CisJY21kLmV4ZSAvQyBpZiBub3QgZXhpc3QgJChCSU5ESVIpIG1rZGlyICQoQklORElSKQorCisKKyMgTWFrZXMgdGhlIGxpYnhtbCBpbnRlcm1lZGlhdGUgZGlyZWN0b3J5LgorJChYTUxfSU5URElSKSA6CisJY21kLmV4ZSAvQyBpZiBub3QgZXhpc3QgJChYTUxfSU5URElSKSBta2RpciAkKFhNTF9JTlRESVIpCisKKyMgTWFrZXMgdGhlIHN0YXRpYyBsaWJ4bWwgaW50ZXJtZWRpYXRlIGRpcmVjdG9yeS4KKyQoWE1MX0lOVERJUl9BKSA6CisJY21kLmV4ZSAvQyBpZiBub3QgZXhpc3QgJChYTUxfSU5URElSX0EpIG1rZGlyICQoWE1MX0lOVERJUl9BKQorCisjIEFuIGltcGxpY2l0IHJ1bGUgZm9yIGxpYnhtbCBjb21waWxhdGlvbi4KKyQoWE1MX0lOVERJUikvJS5vIDogJChYTUxfU1JDRElSKS8lLmMKKwkkKENDKSAkKENGTEFHUykgLW8gJEAgLWMgJDwKKworIyBBbiBpbXBsaWNpdCBydWxlIGZvciBzdGF0aWMgbGlieG1sIGNvbXBpbGF0aW9uLgorJChYTUxfSU5URElSX0EpLyUubyA6ICQoWE1MX1NSQ0RJUikvJS5jCisJJChDQykgJChDRkxBR1MpIC1ETElCWE1MX1NUQVRJQyAtbyAkQCAtYyAkPAorCisKKyMgQ29tcGlsZXMgbGlieG1sIHNvdXJjZS4gVXNlcyB0aGUgaW1wbGljaXQgcnVsZSBmb3IgY29tbWFuZHMuCiskKFhNTF9PQkpTKSA6ICQoWE1MX0lOVERJUikKKworIyBDb21waWxlcyBzdGF0aWMgbGlieG1sIHNvdXJjZS4gVXNlcyB0aGUgaW1wbGljaXQgcnVsZSBmb3IgY29tbWFuZHMuCiskKFhNTF9PQkpTX0EpIDogJChYTUxfSU5URElSX0EpIAorCisjIENyZWF0ZXMgdGhlIGxpYnhtbCBzaGFyZWQgb2JqZWN0LgorWE1MU09fTERGTEFHUyA9ICQoTERGTEFHUykgLXNoYXJlZCAtV2wsLS1kbGwgLVdsLC0tb3V0LWltcGxpYiwkKEJJTkRJUikvJChYTUxfSU1QKQorJChCSU5ESVIpLyQoWE1MX1NPKSA6ICQoQklORElSKSAkKFhNTF9PQkpTKQorCSQoTEQpICQoWE1MU09fTERGTEFHUykgLW8gJChCSU5ESVIpLyQoWE1MX1NPKSAkKFhNTF9PQkpTKSAkKExJQlMpCisKKyMgQ3JlYXRlcyB0aGUgbGlieG1sIGFyY2hpdmUuCiskKEJJTkRJUikvJChYTUxfQSkgOiAkKEJJTkRJUikgJChYTUxfT0JKU19BKQorCSQoQVIpICQoQVJGTEFHUykgJChCSU5ESVIpXCQoWE1MX0EpICQoWE1MX09CSlNfQSkKKworCisjIE1ha2VzIHRoZSB1dGlscyBpbnRlcm1lZGlhdGUgZGlyZWN0b3J5LgorJChVVElMU19JTlRESVIpIDoKKwljbWQuZXhlIC9DIGlmIG5vdCBleGlzdCAkKFVUSUxTX0lOVERJUikgbWtkaXIgJChVVElMU19JTlRESVIpCisKKyMgQW4gaW1wbGljaXQgcnVsZSBmb3IgeG1sbGludCBhbmQgZnJpZW5kcy4KK2lmZXEgKCQoU1RBVElDKSwxKQorJChCSU5ESVIpLyUuZXhlIDogJChVVElMU19TUkNESVIpLyUuYworCSQoQ0MpIC1ETElCWE1MX1NUQVRJQyAkKENGTEFHUykgLW8gJChzdWJzdCAuYywubywkKFVUSUxTX0lOVERJUikvJCg8RikpIC1jICQ8IAorCSQoTEQpICQoTERGTEFHUykgLW8gJEAgJChzdWJzdCAuYywubywkKFVUSUxTX0lOVERJUikvJCg8RikpIC1sJChYTUxfQkFTRU5BTUUpICQoTElCUykgCitlbHNlCiskKEJJTkRJUikvJS5leGUgOiAkKFVUSUxTX1NSQ0RJUikvJS5jCisJJChDQykgJChDRkxBR1MpIC1vICQoc3Vic3QgLmMsLm8sJChVVElMU19JTlRESVIpLyQoPEYpKSAtYyAkPCAKKwkkKExEKSAkKExERkxBR1MpIC1vICRAICQoc3Vic3QgLmMsLm8sJChVVElMU19JTlRESVIpLyQoPEYpKSAtbCQoWE1MX0JBU0VOQU1FKSAkKExJQlMpIAorZW5kaWYKKworIyBCdWlsZHMgeG1sbGludCBhbmQgZnJpZW5kcy4gVXNlcyB0aGUgaW1wbGljaXQgcnVsZSBmb3IgY29tbWFuZHMuCiskKFVUSUxTKSA6ICQoVVRJTFNfSU5URElSKSAkKEJJTkRJUikgbGlieG1sIGxpYnhtbGEKKworIyBTb3VyY2UgZGVwZW5kZW5jaWVzCisjLWluY2x1ZGUgZGVwZW5kcy5taW5ndworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3dpbjMyL01ha2VmaWxlLm1zdmMgYi9saWJ4bWwyLTIuNy43L3dpbjMyL01ha2VmaWxlLm1zdmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQwOTkwNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvd2luMzIvTWFrZWZpbGUubXN2YwpAQCAtMCwwICsxLDQ2MiBAQAorIyBNYWtlZmlsZSBmb3IgbGlieG1sMiwgc3BlY2lmaWMgZm9yIFdpbmRvd3MsIE1TVkMgYW5kIE5NQUtFLgorIworIyBUYWtlIGEgbG9vayBhdCB0aGUgYmVnaW5uaW5nIGFuZCBtb2RpZnkgdGhlIHZhcmlhYmxlcyB0byBzdWl0IHlvdXIgCisjIGVudmlyb25tZW50LiBIYXZpbmcgZG9uZSB0aGF0LCB5b3UgY2FuIGRvIGEKKyMKKyMgbm1ha2UgW2FsbF0gICAgIHRvIGJ1aWxkIHRoZSBsaWJ4bWwgYW5kIHRoZSBhY2NvbXBhbnlpbmcgdXRpbGl0aWVzLgorIyBubWFrZSBjbGVhbiAgICAgdG8gcmVtb3ZlIGFsbCBjb21waWxlciBvdXRwdXQgZmlsZXMgYW5kIHJldHVybiB0byBhCisjICAgICAgICAgICAgICAgICBjbGVhbiBzdGF0ZS4KKyMgbm1ha2UgcmVidWlsZCAgIHRvIHJlYnVpbGQgZXZlcnl0aGluZyBmcm9tIHNjcmF0Y2guIFRoaXMgYmFzaWNhbGx5IGRvZXMKKyMgICAgICAgICAgICAgICAgIGEgJ25tYWtlIGNsZWFuJyBhbmQgdGhlbiBhICdubWFrZSBhbGwnLgorIyBubWFrZSBpbnN0YWxsICAgdG8gaW5zdGFsbCB0aGUgbGlicmFyeSBhbmQgaXRzIGhlYWRlciBmaWxlcy4KKyMKKyMgTWFyY2ggMjAwMiwgSWdvciBabGF0a292aWMgPGlnb3JAemxhdGtvdmljLmNvbT4KKworIyBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgYSBuZWVkIHRvIG1vZGlmeSBhbnl0aGluZyBiZWxvdyB0aGlzIGxpbmUuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQVVUT0NPTkYgPSAuXGNvbmZpZy5tc3ZjCishaW5jbHVkZSAkKEFVVE9DT05GKQorCisjIE5hbWVzIG9mIHZhcmlvdXMgaW5wdXQgYW5kIG91dHB1dCBjb21wb25lbnRzLgorWE1MX05BTUUgPSB4bWwyCitYTUxfQkFTRU5BTUUgPSBsaWIkKFhNTF9OQU1FKQorWE1MX1NPID0gJChYTUxfQkFTRU5BTUUpLmRsbAorWE1MX0lNUCA9ICQoWE1MX0JBU0VOQU1FKS5saWIKK1hNTF9ERUYgPSAkKFhNTF9CQVNFTkFNRSkuZGVmCitYTUxfQSA9ICQoWE1MX0JBU0VOQU1FKV9hLmxpYgorWE1MX0FfRExMID0gJChYTUxfQkFTRU5BTUUpX2FfZGxsLmxpYgorCisjIFBsYWNlIHdoZXJlIHdlIGxldCB0aGUgY29tcGlsZXIgcHV0IGl0cyBvdXRwdXQuCitCSU5ESVIgPSBiaW4ubXN2YworWE1MX0lOVERJUiA9IGludC5tc3ZjCitYTUxfSU5URElSX0EgPSBpbnQuYS5tc3ZjCitYTUxfSU5URElSX0FfRExMID0gaW50LmEuZGxsLm1zdmMKK1VUSUxTX0lOVERJUiA9IGludC51dGlscy5tc3ZjCisKKyMgVGhlIHByZXByb2Nlc3NvciBhbmQgaXRzIG9wdGlvbnMuCitDUFAgPSBjbC5leGUgL0VQCitDUFBGTEFHUyA9IC9ub2xvZ28gL0kkKFhNTF9TUkNESVIpXGluY2x1ZGUKKyFpZiAiJChXSVRIX1RIUkVBRFMpIiAhPSAibm8iCitDUFBGTEFHUyA9ICQoQ1BQRkxBR1MpIC9EICJfUkVFTlRSQU5UIgorIWVuZGlmCisKKyMgVGhlIGNvbXBpbGVyIGFuZCBpdHMgb3B0aW9ucy4KK0NDID0gY2wuZXhlCitDRkxBR1MgPSAvbm9sb2dvIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiX01CQ1MiIC9XMSAkKENSVU5USU1FKQorQ0ZMQUdTID0gJChDRkxBR1MpIC9JJChYTUxfU1JDRElSKSAvSSQoWE1MX1NSQ0RJUilcaW5jbHVkZSAvSSQoSU5DUFJFRklYKQorIWlmICIkKFdJVEhfVEhSRUFEUykiICE9ICJubyIKK0NGTEFHUyA9ICQoQ0ZMQUdTKSAvRCAiX1JFRU5UUkFOVCIKKyFlbmRpZgorIWlmICIkKFdJVEhfVEhSRUFEUykiID09ICJ5ZXMiIHx8ICIkKFdJVEhfVEhSRUFEUykiID09ICJjdGxzIgorQ0ZMQUdTID0gJChDRkxBR1MpIC9EICJIQVZFX1dJTjMyX1RIUkVBRFMiIC9EICJIQVZFX0NPTVBJTEVSX1RMUyIKKyFlbHNlIGlmICIkKFdJVEhfVEhSRUFEUykiID09ICJuYXRpdmUiCitDRkxBR1MgPSAkKENGTEFHUykgL0QgIkhBVkVfV0lOMzJfVEhSRUFEUyIKKyFlbHNlIGlmICIkKFdJVEhfVEhSRUFEUykiID09ICJwb3NpeCIKK0NGTEFHUyA9ICQoQ0ZMQUdTKSAvRCAiSEFWRV9QVEhSRUFEX0giCishZW5kaWYKKyFpZiAiJChXSVRIX1pMSUIpIiA9PSAiMSIKK0NGTEFHUyA9ICQoQ0ZMQUdTKSAvRCAiSEFWRV9aTElCX0giCishZW5kaWYKK0NGTEFHUyA9ICQoQ0ZMQUdTKSAvRF9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURSAvRF9DUlRfTk9OU1REQ19OT19ERVBSRUNBVEUKKworIyBUaGUgbGlua2VyIGFuZCBpdHMgb3B0aW9ucy4KK0xEID0gbGluay5leGUKK0xERkxBR1MgPSAvbm9sb2dvIC9WRVJTSU9OOiQoTElCWE1MX01BSk9SX1ZFUlNJT04pLiQoTElCWE1MX01JTk9SX1ZFUlNJT04pCitMREZMQUdTID0gJChMREZMQUdTKSAvTElCUEFUSDokKEJJTkRJUikgL0xJQlBBVEg6JChMSUJQUkVGSVgpCitMSUJTID0KKyFpZiAiJChXSVRIX0ZUUCkiID09ICIxIiB8fCAiJChXSVRIX0hUVFApIiA9PSAiMSIKK0xJQlMgPSAkKExJQlMpIHdzb2NrMzIubGliIHdzMl8zMi5saWIKKyFlbmRpZiAKKyFpZiAiJChXSVRIX0lDT05WKSIgPT0gIjEiCitMSUJTID0gJChMSUJTKSBpY29udi5saWIKKyFlbmRpZiAKKyFpZiAiJChXSVRIX1pMSUIpIiA9PSAiMSIKK0xJQlMgPSAkKExJQlMpIHpkbGwubGliCishZW5kaWYKKyFpZiAiJChXSVRIX1RIUkVBRFMpIiA9PSAicG9zaXgiCitMSUJTID0gJChMSUJTKSBwdGhyZWFkVkMubGliCishZW5kaWYKKyFpZiAiJChXSVRIX01PRFVMRVMpIiA9PSAiMSIKK0xJQlMgPSAkKExJQlMpIGtlcm5lbDMyLmxpYgorIWVuZGlmCisKKyMgVGhlIGFyY2hpdmVyIGFuZCBpdHMgb3B0aW9ucy4KK0FSID0gbGliLmV4ZQorQVJGTEFHUyA9IC9ub2xvZ28KKworIyBPcHRpbWlzYXRpb24gYW5kIGRlYnVnIHN5bWJvbHMuCishaWYgIiQoREVCVUcpIiA9PSAiMSIKK0NGTEFHUyA9ICQoQ0ZMQUdTKSAvRCAiX0RFQlVHIiAvT2QgL1o3CitMREZMQUdTID0gJChMREZMQUdTKSAvREVCVUcKKyFlbHNlCitDRkxBR1MgPSAkKENGTEFHUykgL0QgIk5ERUJVRyIgL08yIAorTERGTEFHUyA9ICQoTERGTEFHUykgL09QVDpOT1dJTjk4CishZW5kaWYKKworIyBMaWJ4bWwgb2JqZWN0IGZpbGVzLgorWE1MX09CSlMgPSAkKFhNTF9JTlRESVIpXGMxNG4ub2JqXAorCSQoWE1MX0lOVERJUilcY2F0YWxvZy5vYmpcCisJJChYTUxfSU5URElSKVxjaHZhbGlkLm9ialwKKwkkKFhNTF9JTlRESVIpXGRlYnVnWE1MLm9ialwKKwkkKFhNTF9JTlRESVIpXGRpY3Qub2JqXAorCSQoWE1MX0lOVERJUilcRE9DQnBhcnNlci5vYmpcCisJJChYTUxfSU5URElSKVxlbmNvZGluZy5vYmpcCisJJChYTUxfSU5URElSKVxlbnRpdGllcy5vYmpcCisJJChYTUxfSU5URElSKVxlcnJvci5vYmpcCisJJChYTUxfSU5URElSKVxnbG9iYWxzLm9ialwKKwkkKFhNTF9JTlRESVIpXGhhc2gub2JqXAorCSQoWE1MX0lOVERJUilcSFRNTHBhcnNlci5vYmpcCisJJChYTUxfSU5URElSKVxIVE1MdHJlZS5vYmpcCisJJChYTUxfSU5URElSKVxsZWdhY3kub2JqXAorCSQoWE1MX0lOVERJUilcbGlzdC5vYmpcCisJJChYTUxfSU5URElSKVxuYW5vZnRwLm9ialwKKwkkKFhNTF9JTlRESVIpXG5hbm9odHRwLm9ialwKKwkkKFhNTF9JTlRESVIpXHBhcnNlci5vYmpcCisJJChYTUxfSU5URElSKVxwYXJzZXJJbnRlcm5hbHMub2JqXAorCSQoWE1MX0lOVERJUilccGF0dGVybi5vYmpcCisJJChYTUxfSU5URElSKVxyZWxheG5nLm9ialwKKwkkKFhNTF9JTlRESVIpXFNBWDIub2JqXAorCSQoWE1MX0lOVERJUilcU0FYLm9ialwKKwkkKFhNTF9JTlRESVIpXHNjaGVtYXRyb24ub2JqXAorCSQoWE1MX0lOVERJUilcdGhyZWFkcy5vYmpcCisJJChYTUxfSU5URElSKVx0cmVlLm9ialwKKwkkKFhNTF9JTlRESVIpXHVyaS5vYmpcCisJJChYTUxfSU5URElSKVx2YWxpZC5vYmpcCisJJChYTUxfSU5URElSKVx4aW5jbHVkZS5vYmpcCisJJChYTUxfSU5URElSKVx4bGluay5vYmpcCisJJChYTUxfSU5URElSKVx4bWxJTy5vYmpcCisJJChYTUxfSU5URElSKVx4bWxtZW1vcnkub2JqXAorCSQoWE1MX0lOVERJUilceG1scmVhZGVyLm9ialwKKwkkKFhNTF9JTlRESVIpXHhtbHJlZ2V4cC5vYmpcCisJJChYTUxfSU5URElSKVx4bWxtb2R1bGUub2JqXAorCSQoWE1MX0lOVERJUilceG1sc2F2ZS5vYmpcCisJJChYTUxfSU5URElSKVx4bWxzY2hlbWFzLm9ialwKKwkkKFhNTF9JTlRESVIpXHhtbHNjaGVtYXN0eXBlcy5vYmpcCisJJChYTUxfSU5URElSKVx4bWx1bmljb2RlLm9ialwKKwkkKFhNTF9JTlRESVIpXHhtbHdyaXRlci5vYmpcCisJJChYTUxfSU5URElSKVx4cGF0aC5vYmpcCisJJChYTUxfSU5URElSKVx4cG9pbnRlci5vYmpcCisJJChYTUxfSU5URElSKVx4bWxzdHJpbmcub2JqCisKKyMgU3RhdGljIGxpYnhtbCBvYmplY3QgZmlsZXMuCitYTUxfT0JKU19BID0gJChYTUxfSU5URElSX0EpXGMxNG4ub2JqXAorCSQoWE1MX0lOVERJUl9BKVxjYXRhbG9nLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcY2h2YWxpZC5vYmpcCisJJChYTUxfSU5URElSX0EpXGRlYnVnWE1MLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcZGljdC5vYmpcCisJJChYTUxfSU5URElSX0EpXERPQ0JwYXJzZXIub2JqXAorCSQoWE1MX0lOVERJUl9BKVxlbmNvZGluZy5vYmpcCisJJChYTUxfSU5URElSX0EpXGVudGl0aWVzLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcZXJyb3Iub2JqXAorCSQoWE1MX0lOVERJUl9BKVxnbG9iYWxzLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcaGFzaC5vYmpcCisJJChYTUxfSU5URElSX0EpXEhUTUxwYXJzZXIub2JqXAorCSQoWE1MX0lOVERJUl9BKVxIVE1MdHJlZS5vYmpcCisJJChYTUxfSU5URElSX0EpXGxlZ2FjeS5vYmpcCisJJChYTUxfSU5URElSX0EpXGxpc3Qub2JqXAorCSQoWE1MX0lOVERJUl9BKVxuYW5vZnRwLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcbmFub2h0dHAub2JqXAorCSQoWE1MX0lOVERJUl9BKVxwYXJzZXIub2JqXAorCSQoWE1MX0lOVERJUl9BKVxwYXJzZXJJbnRlcm5hbHMub2JqXAorCSQoWE1MX0lOVERJUl9BKVxwYXR0ZXJuLm9ialwKKwkkKFhNTF9JTlRESVJfQSlccmVsYXhuZy5vYmpcCisJJChYTUxfSU5URElSX0EpXFNBWDIub2JqXAorCSQoWE1MX0lOVERJUl9BKVxTQVgub2JqXAorCSQoWE1MX0lOVERJUl9BKVxzY2hlbWF0cm9uLm9ialwKKwkkKFhNTF9JTlRESVJfQSlcdGhyZWFkcy5vYmpcCisJJChYTUxfSU5URElSX0EpXHRyZWUub2JqXAorCSQoWE1MX0lOVERJUl9BKVx1cmkub2JqXAorCSQoWE1MX0lOVERJUl9BKVx2YWxpZC5vYmpcCisJJChYTUxfSU5URElSX0EpXHhpbmNsdWRlLm9ialwKKwkkKFhNTF9JTlRESVJfQSlceGxpbmsub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxJTy5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbG1lbW9yeS5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbHJlYWRlci5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbHJlZ2V4cC5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbG1vZHVsZS5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbHNhdmUub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxzY2hlbWFzLm9ialwKKwkkKFhNTF9JTlRESVJfQSlceG1sc2NoZW1hc3R5cGVzLm9ialwKKwkkKFhNTF9JTlRESVJfQSlceG1sdW5pY29kZS5vYmpcCisJJChYTUxfSU5URElSX0EpXHhtbHdyaXRlci5vYmpcCisJJChYTUxfSU5URElSX0EpXHhwYXRoLm9ialwKKwkkKFhNTF9JTlRESVJfQSlceHBvaW50ZXIub2JqXAorCSQoWE1MX0lOVERJUl9BKVx4bWxzdHJpbmcub2JqCisKKyMgU3RhdGljIGxpYnhtbCBvYmplY3QgZmlsZXMuCitYTUxfT0JKU19BX0RMTCA9ICQoWE1MX0lOVERJUl9BX0RMTClcYzE0bi5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVxjYXRhbG9nLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXGNodmFsaWQub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClcZGVidWdYTUwub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClcZGljdC5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVxET0NCcGFyc2VyLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXGVuY29kaW5nLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXGVudGl0aWVzLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXGVycm9yLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXGdsb2JhbHMub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClcaGFzaC5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVxIVE1McGFyc2VyLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXEhUTUx0cmVlLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXGxlZ2FjeS5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVxsaXN0Lm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXG5hbm9mdHAub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClcbmFub2h0dHAub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClccGFyc2VyLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHBhcnNlckludGVybmFscy5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVxwYXR0ZXJuLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHJlbGF4bmcub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClcU0FYMi5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVxTQVgub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClcc2NoZW1hdHJvbi5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVx0aHJlYWRzLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHRyZWUub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClcdXJpLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHZhbGlkLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhpbmNsdWRlLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhsaW5rLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhtbElPLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhtbG1lbW9yeS5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVx4bWxyZWFkZXIub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClceG1scmVnZXhwLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhtbG1vZHVsZS5vYmpcCisJJChYTUxfSU5URElSX0FfRExMKVx4bWxzYXZlLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhtbHNjaGVtYXMub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClceG1sc2NoZW1hc3R5cGVzLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhtbHVuaWNvZGUub2JqXAorCSQoWE1MX0lOVERJUl9BX0RMTClceG1sd3JpdGVyLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhwYXRoLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhwb2ludGVyLm9ialwKKwkkKFhNTF9JTlRESVJfQV9ETEwpXHhtbHN0cmluZy5vYmoKKworIyBYbWxsaW50IGFuZCBmcmllbmRzIGV4ZWN1dGFibGVzLgorVVRJTFMgPSAkKEJJTkRJUilceG1sbGludC5leGVcCisJJChCSU5ESVIpXHhtbGNhdGFsb2cuZXhlXAorCSQoQklORElSKVx0ZXN0QXV0b21hdGEuZXhlXAorCSQoQklORElSKVx0ZXN0QzE0Ti5leGVcCisJJChCSU5ESVIpXHRlc3REb2Nib29rLmV4ZVwKKwkkKEJJTkRJUilcdGVzdEhUTUwuZXhlXAorCSQoQklORElSKVx0ZXN0UmVhZGVyLmV4ZVwKKwkkKEJJTkRJUilcdGVzdFJlbGF4LmV4ZVwKKwkkKEJJTkRJUilcdGVzdFJlZ2V4cC5leGVcCisJJChCSU5ESVIpXHRlc3RNb2R1bGUuZXhlXAorCSQoQklORElSKVx0ZXN0U0FYLmV4ZVwKKwkkKEJJTkRJUilcdGVzdFNjaGVtYXMuZXhlXAorCSQoQklORElSKVx0ZXN0VVJJLmV4ZVwKKwkkKEJJTkRJUilcdGVzdFhQYXRoLmV4ZVwKKwkkKEJJTkRJUilccnVudGVzdC5leGVcCisJJChCSU5ESVIpXHJ1bnN1aXRlLmV4ZVwKKwkkKEJJTkRJUilcdGVzdGFwaS5leGUKKwkKKyFpZiAiJChXSVRIX1RIUkVBRFMpIiA9PSAieWVzIiB8fCAiJChXSVRIX1RIUkVBRFMpIiA9PSAiY3RscyIgfHwgIiQoV0lUSF9USFJFQURTKSIgPT0gIm5hdGl2ZSIKK1VUSUxTID0gJChVVElMUykgJChCSU5ESVIpXHRlc3RUaHJlYWRzV2luMzIuZXhlCishZWxzZSBpZiAiJChXSVRIX1RIUkVBRFMpIiA9PSAicG9zaXgiCitVVElMUyA9ICQoVVRJTFMpICQoQklORElSKVx0ZXN0VGhyZWFkcy5leGUKKyFlbmRpZgorCishaWYgIiQoVkNNQU5JRkVTVCkiID09ICIxIgorX1ZDX01BTklGRVNUX0VNQkVEX0VYRT0gaWYgZXhpc3QgJEAubWFuaWZlc3QgbXQuZXhlIC1ub2xvZ28gLW1hbmlmZXN0ICRALm1hbmlmZXN0IC1vdXRwdXRyZXNvdXJjZTokQDsxCitfVkNfTUFOSUZFU1RfRU1CRURfRExMPSBpZiBleGlzdCAkQC5tYW5pZmVzdCBtdC5leGUgLW5vbG9nbyAtbWFuaWZlc3QgJEAubWFuaWZlc3QgLW91dHB1dHJlc291cmNlOiRAOzIKKyFlbHNlCitfVkNfTUFOSUZFU1RfRU1CRURfRVhFPQorX1ZDX01BTklGRVNUX0VNQkVEX0RMTD0KKyFlbmRpZgorCithbGwgOiBsaWJ4bWwgbGlieG1sYSBsaWJ4bWxhZGxsIHV0aWxzCisKK2xpYnhtbCA6ICQoQklORElSKVwkKFhNTF9TTykgCisKK2xpYnhtbGEgOiAkKEJJTkRJUilcJChYTUxfQSkKKworbGlieG1sYWRsbCA6ICQoQklORElSKVwkKFhNTF9BX0RMTCkKKwordXRpbHMgOiAkKFVUSUxTKQorCitjbGVhbiA6CisJaWYgZXhpc3QgJChYTUxfSU5URElSKSBybWRpciAvUyAvUSAkKFhNTF9JTlRESVIpCisJaWYgZXhpc3QgJChYTUxfSU5URElSX0EpIHJtZGlyIC9TIC9RICQoWE1MX0lOVERJUl9BKQorCWlmIGV4aXN0ICQoWE1MX0lOVERJUl9BX0RMTCkgcm1kaXIgL1MgL1EgJChYTUxfSU5URElSX0FfRExMKQorCWlmIGV4aXN0ICQoVVRJTFNfSU5URElSKSBybWRpciAvUyAvUSAkKFVUSUxTX0lOVERJUikKKwlpZiBleGlzdCAkKEJJTkRJUikgcm1kaXIgL1MgL1EgJChCSU5ESVIpCisKK2Rpc3RjbGVhbiA6IGNsZWFuCisJaWYgZXhpc3QgY29uZmlnLiogZGVsIGNvbmZpZy4qCisJaWYgZXhpc3QgTWFrZWZpbGUgZGVsIE1ha2VmaWxlCisKK3JlYnVpbGQgOiBjbGVhbiBhbGwKKworaW5zdGFsbC1saWJzIDogYWxsCisJaWYgbm90IGV4aXN0ICQoSU5DUFJFRklYKVxsaWJ4bWwgbWtkaXIgJChJTkNQUkVGSVgpXGxpYnhtbAorCWlmIG5vdCBleGlzdCAkKEJJTlBSRUZJWCkgbWtkaXIgJChCSU5QUkVGSVgpCisJaWYgbm90IGV4aXN0ICQoTElCUFJFRklYKSBta2RpciAkKExJQlBSRUZJWCkKKwlpZiBub3QgZXhpc3QgJChTT1BSRUZJWCkgbWtkaXIgJChTT1BSRUZJWCkKKwljb3B5ICQoWE1MX1NSQ0RJUilcaW5jbHVkZVxsaWJ4bWxcKi5oICQoSU5DUFJFRklYKVxsaWJ4bWwKKwljb3B5ICQoQklORElSKVwkKFhNTF9TTykgJChTT1BSRUZJWCkKKwljb3B5ICQoQklORElSKVwkKFhNTF9BKSAkKExJQlBSRUZJWCkKKwljb3B5ICQoQklORElSKVwkKFhNTF9BX0RMTCkgJChMSUJQUkVGSVgpCisJY29weSAkKEJJTkRJUilcJChYTUxfSU1QKSAkKExJQlBSRUZJWCkKKworaW5zdGFsbCA6IGluc3RhbGwtbGlicyAKKwljb3B5ICQoQklORElSKVwqLmV4ZSAkKEJJTlBSRUZJWCkKKwktY29weSAkKEJJTkRJUilcKi5wZGIgJChCSU5QUkVGSVgpCisKK2luc3RhbGwtZGlzdCA6IGluc3RhbGwtbGlicyAKKwljb3B5ICQoQklORElSKVx4bWwqLmV4ZSAkKEJJTlBSRUZJWCkKKwktY29weSAkKEJJTkRJUilceG1sKi5wZGIgJChCSU5QUkVGSVgpCisKKyMgVGhpcyBpcyBhIHRhcmdldCBmb3IgbWUsIHRvIG1ha2UgYSBiaW5hcnkgZGlzdHJpYnV0aW9uLiBOb3QgZm9yIHRoZSBwdWJsaWMgdXNlLAorIyBrZWVwIHlvdXIgaGFuZHMgb2ZmIDotKQorQkRWRVJTSU9OID0gJChMSUJYTUxfTUFKT1JfVkVSU0lPTikuJChMSUJYTUxfTUlOT1JfVkVSU0lPTikuJChMSUJYTUxfTUlDUk9fVkVSU0lPTikKK0JEUFJFRklYID0gJChYTUxfQkFTRU5BTUUpLSQoQkRWRVJTSU9OKS53aW4zMgorYmluZGlzdCA6IGFsbAorCSQoTUFLRSkgL25vbG9nbyBQUkVGSVg9JChCRFBSRUZJWCkgU09QUkVGSVg9JChCRFBSRUZJWClcYmluIGluc3RhbGwtZGlzdAorCWNzY3JpcHQgLy9Ob0xvZ28gY29uZmlndXJlLmpzIGdlbnJlYWRtZSAkKFhNTF9CQVNFTkFNRSkgJChCRFZFUlNJT04pICQoQkRQUkVGSVgpXHJlYWRtZS50eHQKKworCisjIE1ha2VzIHRoZSBvdXRwdXQgZGlyZWN0b3J5LgorJChCSU5ESVIpIDoKKwlpZiBub3QgZXhpc3QgJChCSU5ESVIpIG1rZGlyICQoQklORElSKQorCisKKyMgTWFrZXMgdGhlIGxpYnhtbCBpbnRlcm1lZGlhdGUgZGlyZWN0b3J5LgorJChYTUxfSU5URElSKSA6CisJaWYgbm90IGV4aXN0ICQoWE1MX0lOVERJUikgbWtkaXIgJChYTUxfSU5URElSKQorCisjIE1ha2VzIHRoZSBzdGF0aWMgbGlieG1sIGludGVybWVkaWF0ZSBkaXJlY3RvcnkuCiskKFhNTF9JTlRESVJfQSkgOgorCWlmIG5vdCBleGlzdCAkKFhNTF9JTlRESVJfQSkgbWtkaXIgJChYTUxfSU5URElSX0EpCisKKyMgTWFrZXMgdGhlIHN0YXRpYyBmb3IgZGxsIGxpYnhtbCBpbnRlcm1lZGlhdGUgZGlyZWN0b3J5LgorJChYTUxfSU5URElSX0FfRExMKSA6CisJaWYgbm90IGV4aXN0ICQoWE1MX0lOVERJUl9BX0RMTCkgbWtkaXIgJChYTUxfSU5URElSX0FfRExMKQorCisjIEFuIGltcGxpY2l0IHJ1bGUgZm9yIGxpYnhtbCBjb21waWxhdGlvbi4KK3skKFhNTF9TUkNESVIpfS5jeyQoWE1MX0lOVERJUil9Lm9iajo6CisJJChDQykgJChDRkxBR1MpIC9GbyQoWE1MX0lOVERJUilcIC9jICQ8CisKKyMgQW4gaW1wbGljaXQgcnVsZSBmb3Igc3RhdGljIGxpYnhtbCBjb21waWxhdGlvbi4KK3skKFhNTF9TUkNESVIpfS5jeyQoWE1MX0lOVERJUl9BKX0ub2JqOjoKKwkkKENDKSAkKENGTEFHUykgL0QgIkxJQlhNTF9TVEFUSUMiIC9GbyQoWE1MX0lOVERJUl9BKVwgL2MgJDwKKworIyBBbiBpbXBsaWNpdCBydWxlIGZvciBzdGF0aWMgZm9yIGRsbCBsaWJ4bWwgY29tcGlsYXRpb24uCit7JChYTUxfU1JDRElSKX0uY3skKFhNTF9JTlRESVJfQV9ETEwpfS5vYmo6OgorCSQoQ0MpICQoQ0ZMQUdTKSAvRCAiTElCWE1MX1NUQVRJQyIgL0QgIkxJQlhNTF9TVEFUSUNfRk9SX0RMTCIgL0ZvJChYTUxfSU5URElSX0FfRExMKVwgL2MgJDwKKworIyBDb21waWxlcyBsaWJ4bWwgc291cmNlLiBVc2VzIHRoZSBpbXBsaWNpdCBydWxlIGZvciBjb21tYW5kcy4KKyQoWE1MX09CSlMpIDogJChYTUxfSU5URElSKSAKKworIyBDb21waWxlcyBzdGF0aWMgbGlieG1sIHNvdXJjZS4gVXNlcyB0aGUgaW1wbGljaXQgcnVsZSBmb3IgY29tbWFuZHMuCiskKFhNTF9PQkpTX0EpIDogJChYTUxfSU5URElSX0EpIAorCisjIENvbXBpbGVzIHN0YXRpYyBmb3IgZGxsIGxpYnhtbCBzb3VyY2UuIFVzZXMgdGhlIGltcGxpY2l0IHJ1bGUgZm9yIGNvbW1hbmRzLgorJChYTUxfT0JKU19BX0RMTCkgOiAkKFhNTF9JTlRESVJfQV9ETEwpIAorCisjIENyZWF0ZXMgdGhlIGV4cG9ydCBkZWZpbml0aW9uIGZpbGUgKERFRikgZm9yIGxpYnhtbC4KKyQoWE1MX0lOVERJUilcJChYTUxfREVGKSA6ICQoWE1MX0lOVERJUikgJChYTUxfREVGKS5zcmMKKwkkKENQUCkgJChDUFBGTEFHUykgJChYTUxfREVGKS5zcmMgPiAkKFhNTF9JTlRESVIpXCQoWE1MX0RFRikKKworIyBDcmVhdGVzIHRoZSBsaWJ4bWwgc2hhcmVkIG9iamVjdC4KKyQoQklORElSKVwkKFhNTF9TTykgOiAkKEJJTkRJUikgJChYTUxfT0JKUykgJChYTUxfSU5URElSKVwkKFhNTF9ERUYpCisJJChMRCkgJChMREZMQUdTKSAvRExMIFwKKwkJL0lNUExJQjokKEJJTkRJUilcJChYTUxfSU1QKSAvT1VUOiQoQklORElSKVwkKFhNTF9TTykgJChYTUxfT0JKUykgJChMSUJTKQorCUAkKF9WQ19NQU5JRkVTVF9FTUJFRF9ETEwpCisKKyMkKEJJTkRJUilcJChYTUxfU08pIDogJChCSU5ESVIpICQoWE1MX09CSlMpICQoWE1MX0lOVERJUilcJChYTUxfREVGKQorIwkkKExEKSAkKExERkxBR1MpIC9ETEwgL0RFRjokKFhNTF9JTlRESVIpXCQoWE1MX0RFRikgXAorIwkJL0lNUExJQjokKEJJTkRJUilcJChYTUxfSU1QKSAvT1VUOiQoQklORElSKVwkKFhNTF9TTykgJChYTUxfT0JKUykgJChMSUJTKQorCisjIENyZWF0ZXMgdGhlIGxpYnhtbCBhcmNoaXZlLgorJChCSU5ESVIpXCQoWE1MX0EpIDogJChCSU5ESVIpICQoWE1MX09CSlNfQSkKKwkkKEFSKSAkKEFSRkxBR1MpIC9PVVQ6JChCSU5ESVIpXCQoWE1MX0EpICQoWE1MX09CSlNfQSkKKworIyBDcmVhdGVzIHRoZSBsaWJ4bWwgc3RhdGljIGZvciBkbGwgYXJjaGl2ZS4KKyQoQklORElSKVwkKFhNTF9BX0RMTCkgOiAkKEJJTkRJUikgJChYTUxfT0JKU19BX0RMTCkKKwkkKEFSKSAkKEFSRkxBR1MpIC9PVVQ6JChCSU5ESVIpXCQoWE1MX0FfRExMKSAkKFhNTF9PQkpTX0FfRExMKQorCisjIE1ha2VzIHRoZSB1dGlscyBpbnRlcm1lZGlhdGUgZGlyZWN0b3J5LgorJChVVElMU19JTlRESVIpIDoKKwlpZiBub3QgZXhpc3QgJChVVElMU19JTlRESVIpIG1rZGlyICQoVVRJTFNfSU5URElSKQorCisjIEFuIGltcGxpY2l0IHJ1bGUgZm9yIHhtbGxpbnQgYW5kIGZyaWVuZHMuCishaWYgIiQoU1RBVElDKSIgPT0gIjEiCit7JChVVElMU19TUkNESVIpfS5jeyQoQklORElSKX0uZXhlOgorCSQoQ0MpIC9EICJMSUJYTUxfU1RBVElDIiAkKENGTEFHUykgL0ZvJChVVElMU19JTlRESVIpXCAvYyAkPCAKKwkkKExEKSAkKExERkxBR1MpIC9PVVQ6JEAgJChYTUxfQSkgJChMSUJTKSAkKFVUSUxTX0lOVERJUilcJCg8Qikub2JqCisJQCQoX1ZDX01BTklGRVNUX0VNQkVEX0VYRSkKKyFlbHNlCit7JChVVElMU19TUkNESVIpfS5jeyQoQklORElSKX0uZXhlOgorCSQoQ0MpICQoQ0ZMQUdTKSAvRm8kKFVUSUxTX0lOVERJUilcIC9jICQ8IAorCSQoTEQpICQoTERGTEFHUykgL09VVDokQCAkKFhNTF9JTVApICQoTElCUykgJChVVElMU19JTlRESVIpXCQoPEIpLm9iagorCUAkKF9WQ19NQU5JRkVTVF9FTUJFRF9FWEUpCishZW5kaWYKKworIyBCdWlsZHMgeG1sbGludCBhbmQgZnJpZW5kcy4gVXNlcyB0aGUgaW1wbGljaXQgcnVsZSBmb3IgY29tbWFuZHMuCiskKFVUSUxTKSA6ICQoVVRJTFNfSU5URElSKSAkKEJJTkRJUikgbGlieG1sIGxpYnhtbGEgbGlieG1sYWRsbAorCisjIFNvdXJjZSBkZXBlbmRlbmNlcyBzaG91bGQgYmUgYXV0b2dlbmVyYXRlZCBzb21laG93IGhlcmUsIGJ1dCBob3cgdG8KKyMgZG8gaXQ/IEkgaGF2ZSBubyBjbHVlLgorCisjIFRFU1RTCisKK3Rlc3RzIDogIFhQYXRodGVzdHMKKworWFBhdGh0ZXN0cyA6ICQoQklORElSKVx0ZXN0WFBhdGguZXhlCisJQGVjaG8uIDI+IC5tZW1kdW1wCisJQGVjaG8gIyMgWFBhdGggcmVncmVzc2lvbiB0ZXN0cworCUAtJChCSU5ESVIpXHRlc3RYUGF0aC5leGUgfCBmaW5kIC9DICJzdXBwb3J0IG5vdCBjb21waWxlZCBpbiIgMT5udWwKKwlAaWYgJUVSUk9STEVWRUwlIE5FUSAwIEAoIFwKKwkJZWNobyBTa2lwcGluZyBkZWJ1ZyBub3QgY29tcGlsZWQgaW5cCisJCUBleGl0IDAgXAorCSkKKwlAZm9yICUlSSBpbiAoJChYTUxfU1JDRElSKVx0ZXN0XFhQYXRoXGV4cHJcKi4qKSBkbyBAKCBcCisJCUBJRiBOT1QgRVhJU1QgJChYTUxfU1JDRElSKVxyZXN1bHRcWFBhdGhcZXhwclwlJX5ueEkgKCBcCisJCQlAZWNobyBOZXcgdGVzdCAlJX5ueEkgJiZcCisJCQlAZWNobyAlJX5ueEkgJiZcCisJCQkkKEJJTkRJUilcdGVzdFhQYXRoLmV4ZSAtZiAtLWV4cHIgJSVJID4gJChYTUxfU1JDRElSKS9yZXN1bHQvWFBhdGgvZXhwci8lJX5ueEkgJiZcCisJCQlmaW5kc3RyIC9DOiJNRU1PUlkgQUxMT0NBVEVEIDogMCIgXAorCQkpIEVMU0UgKCBcCisJCQkkKEJJTkRJUilcdGVzdFhQYXRoLmV4ZSAtZiAtLWV4cHIgJSVJIDI+JjEgPiByZXN1bHQuJSV+bnhJICYmXAorCQkJZmMgJChYTUxfU1JDRElSKVxyZXN1bHRcWFBhdGhcZXhwclwlJX5ueEkgcmVzdWx0LiUlfm54SSA+bnVsICZcCisJCQlpRiBFUlJPUkxFVkVMIDEgZXhpdCAxICYgXAorCQkJZmluZHN0ciAiTUVNT1JZIEFMTE9DQVRFRCIgLm1lbWR1bXAgfCBmaW5kc3RyIC9DOiJNRU1PUlkgQUxMT0NBVEVEIDogMCIgPm51bCAmJlwKKwkJCWRlbCByZXN1bHQuJSV+bnhJIFwKKwkJKSBcCisJKQorCUBmb3IgJSVJIGluICgkKFhNTF9TUkNESVIpXHRlc3RcWFBhdGhcZG9jc1wqLiopIGRvIEAoIFwKKwkJZm9yICUlSiBpbiAoJChYTUxfU1JDRElSKVx0ZXN0XFhQYXRoXHRlc3RzXCUlfm54SSouKikgZG8gQCggXAorCQkJaWYgbm90IGV4aXN0ICQoWE1MX1NSQ0RJUilccmVzdWx0XFhQYXRoXHRlc3RzXCUlfm54SiAoIFwKKwkJCQkkKEJJTkRJUilcdGVzdFhQYXRoLmV4ZSAtZiAtaSAlJUkgJSVKID4gJChYTUxfU1JDRElSKVxyZXN1bHRcWFBhdGhcdGVzdHNcJSV+bnhKICYmXAorCQkJCWZpbmRzdHIgL0M6Ik1FTU9SWSBBTExPQ0FURUQiIC5tZW1kdW1wIHwgZmluZHN0ciAvQzoiTUVNT1JZIEFMTE9DQVRFRCA6IDAiID4gbnVsIFwKKwkJCSkgRUxTRSAoIFwKKwkJCQkkKEJJTkRJUilcdGVzdFhQQXRoLmV4ZSAtZiAtaSAlJUkgJSVKIDI+JjEgPiByZXN1bHQuJSV+bnhKICYmXAorCQkJCWZpbmRzdHIgL0M6Ik1FTU9SWSBBTExPQ0FURUQiIC5tZW1kdW1wIHwgZmluZHN0ciAvQzoiTUVNT1JZIEFMTE9DQVRFRCA6IDAiPm51bGwgJiZcCisJCQkJZmMgJChYTUxfU1JDRElSKVxyZXN1bHRcWFBhdGhcdGVzdHNcJSV+bnhKIHJlc3VsdC4lJX5ueEogPm51bGwgJiBcCisJCQkJSUYgRVJST1JMRVZFTCAxIChlY2hvIEVycm9yOiAlJUkgJSVKICYgZXhpdCAxKSAmIFwKKwkJCQlkZWwgcmVzdWx0LiUlfm54SiBcCisJCQkpXAorCQkpXAorCSkKKworWE1MdGVzdHMgOiAkKEJJTkRJUilceG1sbGludC5leGUKKwlAZWNoby4gMj4gLm1lbWR1bXAKKwlAZWNobyAjIyBYTUwgcmVncmVzc2lvbiB0ZXN0cworCS1AZm9yICUlSSBpbiAoJChYTUxfU1JDRElSKVx0ZXN0XCopIGRvIEAoIFwKKwkJaWYgbm90IGV4aXN0ICQoWE1MX1NSQ0RJUilccmVzdWx0XCUlfm54SSAoIFwKKwkJCWVjaG8gTmV3IHRlc3QgZmlsZSAlJX5ueEkgJlwKKwkJCSQoQklORElSKVx4bWxsaW50LmV4ZSAgJSVJID4gJChYTUxfU1JDRElSKVxyZXN1bHRcJSV+bnhJICYmIFwKKwkJCWZpbmRzdHIgL0M6Ik1FTU9SWSBBTExPQ0FURUQiIC5tZW1kdW1wIHwgZmluZHN0ciAvQzoiTUVNT1JZIEFMTE9DQVRFRCA6IDAiID4gbnVsbCBcCisJCSkgRUxTRSAoIFwKKwkJCSQoQklORElSKVx4bWxsaW50LmV4ZSAlJUkgMj4mMSA+IHJlc3VsdC4lJX5ueEkgJiYgXAorCQkJZmluZHN0ciAvQzoiTUVNT1JZIEFMTE9DIiAubWVtZHVtcCB8IGZpbmRzdHIgL0M6Ik1FTU9SWSBBTExPQ0FURUQgOiAwIiA+IG51bGwgJiYgXAorCQkJZmMgJChYTUxfU1JDRElSKVxyZXN1bHRcJSV+bnhJIHJlc3VsdC4lJX5ueEkgPiBudWxsICYmIFwKKwkJCSQoQklORElSKVx4bWxsaW50LmV4ZSByZXN1bHQuJSV+bnhJIDI+JjEgPiByZXN1bHQyLiUlfm54SSB8IGZpbmRzdHIgL1YgL0M6ImZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSIgJiYgXAorCQkJZmMgcmVzdWx0LiUlfm54SSByZXN1bHQyLiUlfm54SSAmIFwKKwkJCWRlbCByZXN1bHQuJSV+bnhJIHJlc3VsdDIuJSV+bnhJXAorCQkpIFwKKwkpCQorCisJCQkJCisKKworCisJCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3dpbjMyL1JlYWRtZS50eHQgYi9saWJ4bWwyLTIuNy43L3dpbjMyL1JlYWRtZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIzZWRkZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvd2luMzIvUmVhZG1lLnR4dApAQCAtMCwwICsxLDIyNiBAQAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvd3MgcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PT09PT09PT09PT0KKworVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgdGhlIGZpbGVzIHJlcXVpcmVkIHRvIGJ1aWxkIHRoaXMgc29mdHdhcmUgb24gdGhlCituYXRpdmUgV2luZG93cyBwbGF0Zm9ybS4gVGhpcyBpcyBub3QgYSBwbGFjZSB0byBsb29rIGZvciBoZWxwIGlmIHlvdSBhcmUKK3VzaW5nIGEgUE9TSVggZW11bGF0b3IsIHN1Y2ggYXMgQ3lnd2luLiBDaGVjayB0aGUgVW5peCBpbnN0cnVjdGlvbnMgZm9yIAordGhhdC4KKworCisKK0NPTlRFTlRTCis9PT09PT09PQorCisxLiBHZW5lcmFsCisgICAxLjEgQnVpbGRpbmcgRnJvbSB0aGUgQ29tbWFuZC1MaW5lCisgICAxLjIgQ29uZmlndXJpbmcgVGhlIFNvdXJjZQorICAgMS4zIENvbXBpbGluZworICAgMS40IEluc3RhbGxpbmcKKworMi4gQ29tcGlsZXIgU3BlY2lmaWNzCisgICAyLjEgTWljcm9zb2Z0IFZpc3VhbCBDL0MrKworICAgMi4xIEdOVSBDL0MrKywgTWluZ3cgRWRpdGlvbgorICAgMi4yIEJvcmxhbmQgQysrIEJ1aWxkZXIKKyAgICAgICAyLjIuMSBCdWlsZGluZyB3aXRoIGljb252IHN1cHBvcnQKKwkgICAyLjIuMiBDb21wYXRhYmlsaXR5IHByb2JsZW1zIHdpdGggTVNWQyAoYW5kIHByb2JhYmx5IENZR1dJTikKKwkgICAyLjIuMyBPdGhlciBjYXZlYXRzCisKKworCisKKzEuIEdlbmVyYWwKKz09PT09PT09PT0KKworCisxLjEgQnVpbGRpbmcgRnJvbSBUaGUgQ29tbWFuZC1MaW5lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgaXMgdGhlIGVhc2llc3QsIHByZWZlcnJlZCBhbmQgY3VycmVudGx5IHN1cHBvcnRlZCBtZXRob2QuIEl0IGNhbgorYmUgdGhhdCBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoaXMgZmlsZSByZXNpZGVzIAorY29udGFpbnMgcHJvamVjdCBmaWxlcyBmb3Igc29tZSBJREUuIElmIHlvdSB3YW50IHRvIHVzZSB0aGF0LCBwbGVhc2UKK3JlZmVyIHRvIHRoZSByZWFkbWUgZmlsZSB3aXRoaW4gdGhhdCBzdWJkaXJlY3RvcnkuCisKK0luIG9yZGVyIHRvIGJ1aWxkIGZyb20gdGhlIGNvbW1hbmQtbGluZSB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdAoreW91ciBjb21waWxlciB3b3JrcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUuIFRoaXMgaXMgbm90IGFsd2F5cyB0aGUKK2Nhc2UsIG9mdGVuIHRoZSByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIG1pc3NpbmcuIElmIHlvdSBhcmUKK25vdCBzdXJlLCB0ZXN0IGlmIHRoaXMgd29ya3MgZmlyc3QuIElmIGl0IGRvZXNuJ3QsIHlvdSB3aWxsIGZpcnN0IGhhdmUKK3RvIGNvbmZpZ3VyZSB5b3VyIGNvbXBpbGVyIHN1aXRlIHRvIHJ1biBmcm9tIHRoZSBjb21tYW5kLWxpbmUgLSBwbGVhc2UKK3JlZmVyIHRvIHlvdXIgY29tcGlsZXIncyBkb2N1bWVudGF0aW9uIHJlZ2FyZGluZyB0aGF0LgorCitUaGUgZmlyc3QgdGhpbmcgeW91IHdhbnQgdG8gZG8gaXMgY29uZmlndXJlIHRoZSBzb3VyY2UuIFlvdSBjYW4gaGF2ZQordGhlIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGRvIHRoaXMgYXV0b21hdGljYWxseSBmb3IgeW91LiBUaGUKK2NvbmZpZ3VyYXRpb24gc2NyaXB0IGlzIHdyaXR0ZW4gaW4gSlNjcmlwdCwgYSBNaWNyb3NvZnQncworaW1wbGVtZW50YXRpb24gb2YgdGhlIEVDTUEgc2NyaXB0aW5nIGxhbmd1YWdlLiBBbG1vc3QgZXZlcnkgV2luZG93cworbWFjaGluZSBjYW4gZXhlY3V0ZSB0aGlzIHRocm91Z2ggdGhlIFdpbmRvd3MgU2NyaXB0aW5nIEhvc3QuIElmIHlvdXIKK3N5c3RlbSBsYWNrcyB0aGUgYWJpbGl0eSB0byBleGVjdXRlIEpTY3JpcHQgZm9yIHNvbWUgcmVhc29uLCB5b3UgbXVzdAorcGVyZm9ybSB0aGUgY29uZmlndXJhdGlvbiBtYW51YWxseSBhbmQgeW91IGFyZSBvbiB5b3VyIG93biB3aXRoIHRoYXQuCisKK1RoZSBzZWNvbmQgc3RlcCBpcyBjb21waWxpbmcgdGhlIHNvdXJjZSBhbmQsIG9wdGlvbmFsbHksIGluc3RhbGxpbmcgaXQKK3RvIHRoZSBsb2NhdGlvbiBvZiB5b3VyIGNob29zaW5nLgorCisKKzEuMiBDb25maWd1cmluZyBUaGUgU291cmNlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgY29uZmlndXJhdGlvbiBzY3JpcHQgYWNjZXB0cyBudW1lcm91cyBvcHRpb25zLiBTb21lIG9mIHRoZXNlCithZmZlY3QgZmVhdHVyZXMgd2hpY2ggd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNvbXBpbGVkIHNvZnR3YXJlLAorb3RoZXJzIGFmZmVjdCB0aGUgd2F5IHRoZSBzb2Z0d2FyZSBpcyBidWlsdCBhbmQgaW5zdGFsbGVkLiBUbyBzZWUgYQorZnVsbCBsaXN0IG9mIG9wdGlvbnMgc3VwcG9ydGVkIGJ5IHRoZSBjb25maWd1cmF0aW9uIHNjcmlwdCwgcnVuCisKKyAgY3NjcmlwdCBjb25maWd1cmUuanMgaGVscAorCitmcm9tIHRoZSB3aW4zMiBzdWJkaXJlY3RvcnkuIFRoZSBjb25maWd1cmF0aW9uIHNjcmlwdCB3aWxsIHByZXNlbnQgeW91Cit0aGUgb3B0aW9ucyBpdCBhY2NlcHRzIGFuZCBnaXZlIGEgYmlyZWYgZXhwbGFuYXRpb24gb2YgdGhlc2UuIEluIGV2ZXJ5CitjYXNlIHlvdSB3aWxsIGhhdmUgdHdvIHNldHMgb2Ygb3B0aW9ucy4gVGhlIGZpcnN0IHNldCBpcyBzcGVjaWZpYyB0bwordGhlIHNvZnR3YXJlIHlvdSBhcmUgYnVpbGRpbmcgYW5kIHRoZSBzZWNvbmQgb25lIGlzIHNwZWNpZmljIHRvIHRoZQorV2luZG93cyBwb3J0LgorCitPbmNlIHlvdSBoYXZlIGRlY2lkZWQgd2hpY2ggb3B0aW9ucyBzdWl0IHlvdSwgcnVuIHRoZSBzY3JpcHQgd2l0aCB0aGF0CitvcHRpb25zLiBIZXJlIGlzIGFuIGV4YW1wbGU6CisKKyAgY3NjcmlwdCBjb25maWd1cmUuanMgY29tcGlsZXI9bXN2YyBwcmVmaXg9Yzpcb3B0IAorICAgIGluY2x1ZGU9Yzpcb3B0XGluY2x1ZGUgbGliPWM6XG9wdFxsaWIgZGVidWc9eWVzCisKK1RoZSBwcmV2aW91cyBleGFtcGxlIHdpbGwgY29uZmlndXJlIHRoZSBwcm9jZXNzIHRvIHVzZSB0aGUgTWljcm9zb2Z0J3MKK2NvbXBpbGVyLCBpbnN0YWxsIHRoZSBsaWJyYXJ5IGluIGM6XG9wdCwgdXNlIGM6XG9wdFxpbmNsdWRlIGFuZCAKK2M6XG9wdFxsaWIgYXMgYWRkaXRpb25hbCBzZWFyY2ggcGF0aHMgZm9yIHRoZSBjb21waWxlciBhbmQgdGhlIGxpbmtlciAKK2FuZCBidWlsZCBleGVjdXRhYmxlcyB3aXRoIGRlYnVnIHN5bWJvbHMuCisKK05vdGU6IFBsZWFzZSBkbyBub3QgdXNlIHBhdGggbmFtZXMgd2hpY2ggY29udGFpbiBzcGFjZXMuIFRoaXMgd2lsbAorZmFpbC4gQWxsb3dpbmcgdGhpcyB3b3VsZCByZXF1aXJlIG1lIHRvIHB1dCBhbG1vc3QgZXZlcnl0aGluZyBpbiB0aGUKK01ha2VmaWxlIGluIHF1b3RhcyBhbmQgdGhhdCBsb29rcyBxdWl0ZSB1Z2x5IHdpdGggbXkKK3N5bnRheC1oaWdobGlnaHRpbmcgZW5naW5lLiBJZiB5b3UgYWJzb2x1dGVseSBtdXN0IHVzZSBzcGFjZXMgaW4gcGF0aHMKK3NlbmQgbWUgYW4gZW1haWwgYW5kIHRlbGwgbWUgd2h5LiBJZiB0aGVyZSBhcmUgZW5vdWdoIG9mIHlvdSBvdXQgdGhlcmUKK3dobyBuZWVkIHRoaXMsIG9yIGlmIGEgc2luZ2xlIG9uZSBoYXMgYSB2ZXJ5IGdvb2QgcmVhc29uLCBJIHdpbGwKK21vZGlmeSB0aGUgTWFrZWZpbGUgdG8gYWxsb3cgc3BhY2VzIGluIHBhdGhzLgorCisKKzEuMyBDb21waWxpbmcKKy0tLS0tLS0tLS0tLS0KKworQWZ0ZXIgdGhlIGNvbmZpZ3VyYXRpb24gc3RhZ2UgaGFzIGJlZW4gY29tcGxldGVkLCB5b3Ugd2FudCB0byBidWlsZAordGhlIHNvZnR3YXJlLiBZb3Ugd2lsbCBoYXZlIHRvIHVzZSB0aGUgbWFrZSB0b29sIHdoaWNoIGNvbWVzIHdpdGgKK3lvdXIgY29tcGlsZXIuIElmIHlvdSwgZm9yIGV4YW1wbGUsIGNvbmZpZ3VyZWQgdGhlIHNvdXJjZSB0byBidWlsZAord2l0aCBNaWNyb3NvZnQncyBNU1ZDIGNvbXBpbGVyLCB5b3Ugd291bGQgdXNlIHRoZSBOTUFLRSB1dGlsaXR5LiBJZgoreW91IGNvbmZpZ3VyZWQgaXQgdG8gYnVpbGQgd2l0aCBHTlUgQyBjb21waWxlciwgbWluZ3cgZWRpdGlvbiwgeW91Cit3b3VsZCB1c2UgdGhlIEdOVSBtYWtlLiBBc3N1bWluZyB5b3UgdXNlIE1TVkMsIHR5cGUKKworICBubWFrZSAvZiBNYWtlZmlsZS5tc3ZjCisKK2FuZCBpZiB5b3UgdXNlIE1pbkdXLCB5b3Ugd291bGQgdHlwZQorCisgIG1ha2UgLWYgTWFrZWZpbGUubWluZ3cKKworYW5kIGlmIHlvdSB1c2UgQm9ybGFuZCdzIGNvbXBpbGVyLCB5b3Ugd291bGQgdHlwZQorCisgIGJtYWtlIC1mIE1ha2VmaWxlLmJjYgorCitpbiB0aGUgd2luMzIgc3ViZGlyZWN0b3J5LiBXaGVuIHRoZSBidWlsZGluZyBjb21wbGV0ZXMsIHlvdSB3aWxsIGZpbmQKK3RoZSBleGVjdXRhYmxlIGZpbGVzIGluIHdpbjMyXGJpbi4qIGRpcmVjdG9yeSwgd2hlcmUgKiBzdGFuZHMgZm9yIHRoZQorbmFtZSBvZiB0aGUgY29tcGlsZXIgeW91IGhhdmUgdXNlZC4KKworCisxLjQgSW5zdGFsbGluZworLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiBpbnN0YWxsIHRoZSBzb2Z0d2FyZSBpbnRvIHRoZSBkaXJlY3RvcnkgeW91IHNwZWNpZmllZCB0byB0aGUKK2NvbmZpZ3VyZSBzY3JpcHQgZHVyaW5nIHRoZSBjb25maWd1cmUgc3RhZ2UgYnkgdHlwaW5nICh3aXRoIE1TVkMgaW4KK3RoaXMgZXhhbXBsZSkKKworICBubWFrZSAvZiBNYWtlZmlsZS5tc3ZjIGluc3RhbGwKKworVGhhdCB3b3VsZCBiZSBpdCwgZW5qb3kuCisKKworCisKKworMi4gQ29tcGlsZXIgU3BlY2lmaWNzCis9PT09PT09PT09PT09PT09PT09PT0KKworCisyLjEgTWljcm9zb2Z0IFZpc3VhbCBDL0MrKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91IHVzZSB0aGUgY29tcGlsZXIgd2hpY2ggY29tZXMgd2l0aCBWaXN1YWwgU3R1ZGlvIC5ORVQsIG5vdGUgdGhhdAoraXQgd2lsbCBsaW5rIHRvIGl0cyBvd24gQy1ydW50aW1lIG5hbWVkIG1zdmNyNzAuZGxsIG9yIG1zdmNyNzEuZGxsLiBUaGlzIAorZmlsZSBpcyBub3QgYXZhaWxhYmxlIG9uIGFueSBtYWNoaW5lIHdoaWNoIGRvZXNuJ3QgaGF2ZSBWaXN1YWwgU3R1ZGlvIAorLk5FVCBpbnN0YWxsZWQuCisKKworMi4yIEdOVSBDL0MrKywgTWluZ3cgZWRpdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGVuIHNwZWNpZnlpbmcgcGF0aHMgdG8gY29uZmlndXJlLmpzLCBwbGVhc2UgdXNlIHNsYXNoZXMgaW5zdGVhZCBvZiAKK2JhY2tzbGFzaGVzIGZvciBkaXJlY3Rvcnkgc2VwYXJhdGlvbi4gU29tZXRpbWVzIE1pbmd3IG5lZWRzIHRoaXMuIElmCit0aGlzIGlzIHRoZSBjYXNlLCBhbmQgeW91IHNwZWNpZnkgYmFja3NsYXNoZXMsIHRoZW4gdGhlIGNvbXBpbGVyIHdpbGwgCitjb21wbGFpbiBhYm91dCBub3QgZmluZGluZyBuZWNlc3NhcnkgaGVhZGVyIGZpbGVzLgorCisKKzIuMiBCb3JsYW5kIEMrKyBCdWlsZGVyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyBjb21waWxlIGxpYnhtbDIgd2l0aCB0aGUgQkNCNiBjb21waWxlciBhbmQgYXNzb2NpYXRlZCB0b29scywganVzdCBmb2xsb3cKK3RoZSBiYXNpYyBpbnN0cnVjdGlvbnMgZm91bmQgaW4gdGhpcyBmaWxlIGZpbGUuIEJlIHN1cmUgdG8gc3BlY2lmeSAKK3RoZSAiY29tcGlsZXI9YmNiIiBvcHRpb24gd2hlbiBydW5uaW5nIHRoZSBjb25maWd1cmUgc2NyaXB0LiBUbyBjb21waWxlIHRoZQorbGlicmFyeSBhbmQgdGVzdCBwcm9ncmFtcywganVzdCB0eXBlCisKKyAgbWFrZSAtZk1ha2VmaWxlLmJjYgorCitUaGF0IHNob3VsZCBiZSBhbGwgdGhhdCdzIHJlcXVpcmVkLiBCdXQgdGhlcmUgYXJlIGEgZmV3IG90aGVyIHRoaW5ncyB0byBub3RlOgorCisyLjIuMSBCdWlsZGluZyB3aXRoIGljb252IHN1cHBvcnQKKworSWYgeW91IGNvbmZpZ3VyZSBsaWJ4bWwyIHRvIGluY2x1ZGUgaWNvbnYgc3VwcG9ydCwgeW91IHdpbGwgb2J2aW91c2x5IG5lZWQgdG8KK29idGFpbiB0aGUgaWNvbnYgbGlicmFyeSBhbmQgaW5jbHVkZSBmaWxlcy4gVG8gZ2V0IHRoZW0sIGp1c3QgZm9sbG93IHRoZSBsaW5rcyAKK2F0IGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJpY29udi8gLSB0aGVyZSBhcmUgcHJlLWNvbXBpbGVkIFdpbjMyIAordmVyc2lvbnMgYXZhaWxhYmxlLCBidXQgbm90ZSB0aGF0IHRoZXNlIHdoZXJlIGJ1aWx0IHdpdGggTVNWQy4gSGVuY2UgdGhlIAorc3VwcGxpZWQgaW1wb3J0IGxpYnJhcnkgaXMgaW4gQ09GRiBmb3JtYXQgcmF0aGVyIHRoYW4gT01GIGZvcm1hdC4gWW91IGNhbiAKK2NvbnZlcnQgdGhpcyBsaWJyYXJ5IGJ5IHVzaW5nIEJvcmxhbmQncyBDT0ZGMk9NRiB1dGlsaXR5LCBvciB1c2UgSU1QTElCIHRvIAorYnVpbGQgYSBuZXcgaW1wb3J0IGxpYnJhcnkgZnJvbSB0aGUgRExMLiBBbHRlcm5hdGl2ZWx5LCBpdCBpcyBwb3NzaWJsZSB0bworb2J0YWluIHRoZSBpY29udiBzb3VyY2UsIGFuZCBidWlsZCB0aGUgRExMIHVzaW5nIHRoZSBCb3JsYW5kIGNvbXBpbGVyLgorCitUaGVyZSBpcyBhIG1pbm9yIHByb2JsZW0gd2l0aCB0aGUgaGVhZGVyIGZpbGVzIGZvciBpY29udiAtIHRoZXkgZXhwZWN0IGEKK21hY3JvIG5hbWVkICJFSUxTRVEiIGluIGVycm5vLmgsIGJ1dCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBCb3JsYW5kCitoZWFkZXJzLCBhbmQgaXRzIGFic2VuY2UgY2FuIGNhdXNlIHByb2JsZW1zLiBUbyBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSwgSQorZGVmaW5lIEVJTFNFUT0yIGluIE1ha2VmaWxlLmJjYi4gVGhlIHZhbHVlICIyIiBpcyB0aGUgdmFsdWUgZm9yIEVOT0ZJTEUgKGZpbGUKK25vdCBmb3VuZCkuIFRoaXMgc2hvdWxkIG5vdCBoYXZlIGFueSBkaXNhc3Ryb3VzIHNpZGUgZWZmZWN0cyBiZXlvbmQgcG9zc2libHkKK2Rpc3BsYXlpbmcgYSBtaXNsZWFkaW5nIGVycm9yIG1lc3NhZ2UgaW4gY2VydGFpbiBzaXR1YXRpb25zLgorCisyLjIuMiBDb21wYXRhYmlsaXR5IHByb2JsZW1zIHdpdGggTVNWQyAoYW5kIHByb2JhYmx5IENZR1dJTikKKworQSBsaWJ4bWwyIERMTCBnZW5lcmF0ZWQgYnkgQkNCIGlzIGNhbGxhYmxlIGZyb20gTVNWQyBwcm9ncmFtcywgYnV0IHRoZXJlIGlzIGEKK21pbm9yIHByb2JsZW0gd2l0aCB0aGUgbmFtZXMgb2YgdGhlIHN5bWJvbHMgZXhwb3J0ZWQgZnJvbSB0aGUgbGlicmFyeS4gVGhlCitCb3JsYW5kIGNvbXBpbGVyLCBieSBkZWZhdWx0LCBwcmVwZW5kcyBhbiB1bmRlcnNjb3JlIGNoYXJhY3RlciB0byBnbG9iYWwgCitpZGVudGlmaWVycyAoZnVuY3Rpb25zIGFuZCBnbG9iYWwgdmFyaWFibGVzKSB3aGVuIGdlbmVyYXRpbmcgb2JqZWN0IGZpbGVzLgorSGVuY2UgdGhlIGZ1bmN0aW9uICJ4bWxBZGRDaGlsZCIgaXMgYWRkZWQgdG8gdGhlIERMTCB3aXRoIHRoZSBuYW1lCisiX3htbEFkZENoaWxkIi4gVGhlIE1TVkMgY29tcGlsZXIgZG9lcyBub3QgaGF2ZSB0aGlzIGJlaGF2aW91ciwgYW5kIGxvb2tzIGZvcgordGhlIHVuYWRvcm5lZCBuYW1lLiBJIGN1cnJlbnRseSBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSBieSB3cml0aW5nIGEgLmRlZiBmaWxlCit3aGljaCBjYXVzZXMgQk9USCB0aGUgYWRvcm5lZCBhbmQgdW5hZG9ybmVkIG5hbWVzIHRvIGJlIGV4cG9ydGVkIGZyb20gdGhlIERMTC4KK1RoaXMgYmVoYXZpb3VyIG1heSBub3QgYmUgc3VwcG9ydGVkIGluIHRoZSBmdXR1cmUuCisKK0FuIGV2ZW4gd29yc2UgcHJvYmxlbSBpcyB0aGF0IG9mIGdlbmVyYXRpbmcgYW4gaW1wb3J0IGxpYnJhcnkgZm9yIHRoZSBETEwuIFRoZQorQm9ybGFuZC1nZW5lcmF0ZWQgRExMIGlzIGluIE9NRiBmb3JtYXQuIE1TVkMgZXhwZWN0cyBsaWJyYXJpZXMgaW4gQ09GRiBmb3JtYXQsCitidXQgdGhleSBkb24ndCBwcm92aWRlIGEgIk9NRjJDT0ZGIiB1dGlsaXR5LCBvciBldmVuIHRoZSBlcXVpdmFsZW50IG9mCitCb3JsYW5kJ3MgSU1QTElCIHV0aWxpdHkuIEJ1dCBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgYW4gaW1wb3J0IGxpYiBmcm9tIHRoZQorLmRlZiBmaWxlLCB1c2luZyB0aGUgY29tbWFuZDoKKyAgTElCIC9ERUY6bGlieG1sMi5kZWYKKworSWYgeW91IGRvbid0IGhhdmUgdGhlIC5kZWYgZmlsZSwgaXQncyBwb3NzaWJsZSB0byBjcmVhdGUgb25lIG1hbnVhbGx5LiBVc2UKK0RVTVBCSU4gL0VYUE9SVFMgL09VVDpsaWJ4bWwyLnRtcCBsaWJ4bWwyLmRsbCB0byBnZXQgYSBsaXN0IG9mIHRoZSBleHBvcnRlZAorbmFtZXMsIGFuZCBlZGl0IHRoaXMgaW50byAuZGVmIGZpbGUgZm9ybWF0LgorCitBIHNpbWlsYXIgcHJvYmxlbSBpcyBsaWtlbHkgd2l0aCBDeWd3aW4uCisKKzIuMi4zIE90aGVyIGNhdmVhdHMKKworV2UgaGF2ZSB0ZXN0ZWQgdGhpcyBvbmx5IHdpdGggQkNCNiwgUHJvZmVzc2lvbmFsIEVkaXRpb24sIGFuZCBCQ0IgNS41IGZyZWUKK2NvbW1hbmQtbGluZSB0b29scy4KKworCisKK0F1dGhvcnM6IElnb3IgWmxhdGtvdmljIDxpZ29yQHpsYXRrb3ZpYy5jb20+CisgICAgICAgICBFcmljIFp1cmNoZXIgPEVyaWMuWnVyY2hlckBjc2lyby5hdT4KKworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3dpbjMyL2NvbmZpZ3VyZS5qcyBiL2xpYnhtbDItMi43Ljcvd2luMzIvY29uZmlndXJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOTYwYTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3dpbjMyL2NvbmZpZ3VyZS5qcwpAQCAtMCwwICsxLDY4NCBAQAorLyogQ29uZmlndXJlIHNjcmlwdCBmb3IgbGlieG1sLCBzcGVjaWZpYyBmb3IgV2luZG93cyB3aXRoIFNjcmlwdGluZyBIb3N0LgorICogCisgKiBUaGlzIHNjcmlwdCB3aWxsIGNvbmZpZ3VyZSB0aGUgbGlieG1sIGJ1aWxkIHByb2Nlc3MgYW5kIGNyZWF0ZSBuZWNlc3NhcnkgZmlsZXMuCisgKiBSdW4gaXQgd2l0aCBhbiAnaGVscCcsIG9yIGFuIGludmFsaWQgb3B0aW9uIGFuZCBpdCB3aWxsIHRlbGwgeW91IHdoYXQgb3B0aW9ucworICogaXQgYWNjZXB0cy4KKyAqCisgKiBNYXJjaCAyMDAyLCBJZ29yIFpsYXRrb3ZpYyA8aWdvckB6bGF0a292aWMuY29tPgorICovCisKKy8qIFRoZSBzb3VyY2UgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byB0aGUgb25lIHdoZXJlIHRoaXMgZmlsZSByZXNpZGVzLiAqLwordmFyIHNyY0RpclhtbCA9ICIuLiI7Cit2YXIgc3JjRGlyVXRpbHMgPSAiLi4iOworLyogQmFzZSBuYW1lIG9mIHdoYXQgd2UgYXJlIGJ1aWxkaW5nLiAqLwordmFyIGJhc2VOYW1lID0gImxpYnhtbDIiOworLyogQ29uZmlndXJlIGZpbGUgd2hpY2ggY29udGFpbnMgdGhlIHZlcnNpb24gYW5kIHRoZSBvdXRwdXQgZmlsZSB3aGVyZQorICAgd2UgY2FuIHN0b3JlIG91ciBidWlsZCBjb25maWd1cmF0aW9uLiAqLwordmFyIGNvbmZpZ0ZpbGUgPSBzcmNEaXJYbWwgKyAiXFxjb25maWd1cmUuaW4iOwordmFyIHZlcnNpb25GaWxlID0gIi5cXGNvbmZpZy5tc3ZjIjsKKy8qIElucHV0IGFuZCBvdXRwdXQgZmlsZXMgcmVnYXJkaW5nIHRoZSBsaWJ4bWwgZmVhdHVyZXMuICovCit2YXIgb3B0c0ZpbGVJbiA9IHNyY0RpclhtbCArICJcXGluY2x1ZGVcXGxpYnhtbFxceG1sdmVyc2lvbi5oLmluIjsKK3ZhciBvcHRzRmlsZSA9IHNyY0RpclhtbCArICJcXGluY2x1ZGVcXGxpYnhtbFxceG1sdmVyc2lvbi5oIjsKKy8qIFZlcnNpb24gc3RyaW5ncyBmb3IgdGhlIGJpbmFyeSBkaXN0cmlidXRpb24uIFdpbGwgYmUgZmlsbGVkIGxhdGVyIAorICAgaW4gdGhlIGNvZGUuICovCit2YXIgdmVyTWFqb3I7Cit2YXIgdmVyTWlub3I7Cit2YXIgdmVyTWljcm87Cit2YXIgdmVyTWljcm9TdWZmaXg7Cit2YXIgdmVyQ3ZzOwordmFyIHVzZUN2c1ZlciA9IHRydWU7CisvKiBMaWJ4bWwgZmVhdHVyZXMuICovCit2YXIgd2l0aFRyaW8gPSBmYWxzZTsKK3ZhciB3aXRoVGhyZWFkcyA9ICJuYXRpdmUiOwordmFyIHdpdGhGdHAgPSB0cnVlOwordmFyIHdpdGhIdHRwID0gdHJ1ZTsKK3ZhciB3aXRoSHRtbCA9IHRydWU7Cit2YXIgd2l0aEMxNG4gPSB0cnVlOwordmFyIHdpdGhDYXRhbG9nID0gdHJ1ZTsKK3ZhciB3aXRoRG9jYiA9IHRydWU7Cit2YXIgd2l0aFhwYXRoID0gdHJ1ZTsKK3ZhciB3aXRoWHB0ciA9IHRydWU7Cit2YXIgd2l0aFhpbmNsdWRlID0gdHJ1ZTsKK3ZhciB3aXRoSWNvbnYgPSB0cnVlOwordmFyIHdpdGhJc284ODU5eCA9IGZhbHNlOwordmFyIHdpdGhabGliID0gZmFsc2U7Cit2YXIgd2l0aERlYnVnID0gdHJ1ZTsKK3ZhciB3aXRoTWVtRGVidWcgPSBmYWxzZTsKK3ZhciB3aXRoUnVuRGVidWcgPSBmYWxzZTsKK3ZhciB3aXRoU2NoZW1hcyA9IHRydWU7Cit2YXIgd2l0aFNjaGVtYXRyb24gPSB0cnVlOwordmFyIHdpdGhSZWdFeHBzID0gdHJ1ZTsKK3ZhciB3aXRoTW9kdWxlcyA9IHRydWU7Cit2YXIgd2l0aFRyZWUgPSB0cnVlOwordmFyIHdpdGhSZWFkZXIgPSB0cnVlOwordmFyIHdpdGhXcml0ZXIgPSB0cnVlOwordmFyIHdpdGhXYWxrZXIgPSB0cnVlOwordmFyIHdpdGhQYXR0ZXJuID0gdHJ1ZTsKK3ZhciB3aXRoUHVzaCA9IHRydWU7Cit2YXIgd2l0aFZhbGlkID0gdHJ1ZTsKK3ZhciB3aXRoU2F4MSA9IHRydWU7Cit2YXIgd2l0aExlZ2FjeSA9IHRydWU7Cit2YXIgd2l0aE91dHB1dCA9IHRydWU7Cit2YXIgd2l0aFB5dGhvbiA9IGZhbHNlOworLyogV2luMzIgYnVpbGQgb3B0aW9ucy4gKi8KK3ZhciBkaXJTZXAgPSAiXFwiOwordmFyIGNvbXBpbGVyID0gIm1zdmMiOwordmFyIGNydW50aW1lID0gIi9NRCI7Cit2YXIgZHlucnVudGltZSA9IHRydWU7Cit2YXIgdmNtYW5pZmVzdCA9IGZhbHNlOwordmFyIGJ1aWxkRGVidWcgPSAwOwordmFyIGJ1aWxkU3RhdGljID0gMDsKK3ZhciBidWlsZFByZWZpeCA9ICIuIjsKK3ZhciBidWlsZEJpblByZWZpeCA9ICIiOwordmFyIGJ1aWxkSW5jUHJlZml4ID0gIiI7Cit2YXIgYnVpbGRMaWJQcmVmaXggPSAiIjsKK3ZhciBidWlsZFNvUHJlZml4ID0gIiI7Cit2YXIgYnVpbGRJbmNsdWRlID0gIi4iOwordmFyIGJ1aWxkTGliID0gIi4iOworLyogTG9jYWwgc3R1ZmYgKi8KK3ZhciBlcnJvciA9IDA7CisKKy8qIEhlbHBlciBmdW5jdGlvbiwgdHJhbnNmb3JtcyB0aGUgb3B0aW9uIHZhcmlhYmxlIGludG8gdGhlICdFbmFibGVkJworICAgb3IgJ0Rpc2FibGVkJyBzdHJpbmcuICovCitmdW5jdGlvbiBib29sVG9TdHIob3B0KQoreworCWlmIChvcHQgPT0gZmFsc2UpCisJCXJldHVybiAibm8iOworCWVsc2UgaWYgKG9wdCA9PSB0cnVlKQorCQlyZXR1cm4gInllcyI7CisJZXJyb3IgPSAxOworCXJldHVybiAiKioqIHVuZGVmaW5lZCAqKioiOworfQorCisvKiBIZWxwZXIgZnVuY3Rpb24sIHRyYW5zZm9ybXMgdGhlIGFyZ3VtZW50IHN0cmluZyBpbnRvIGEgYm9vbGVhbgorICAgdmFsdWUuICovCitmdW5jdGlvbiBzdHJUb0Jvb2wob3B0KQoreworCWlmIChvcHQgPT0gMCB8fCBvcHQgPT0gIm5vIikKKwkJcmV0dXJuIGZhbHNlOworCWVsc2UgaWYgKG9wdCA9PSAxIHx8IG9wdCA9PSAieWVzIikKKwkJcmV0dXJuIHRydWU7CisJZXJyb3IgPSAxOworCXJldHVybiBmYWxzZTsKK30KKworLyogRGlzcGxheXMgdGhlIGRldGFpbHMgYWJvdXQgaG93IHRvIHVzZSB0aGlzIHNjcmlwdC4gKi8KK2Z1bmN0aW9uIHVzYWdlKCkKK3sKKwl2YXIgdHh0OworCXR4dCA9ICJVc2FnZTpcbiI7CisJdHh0ICs9ICIgIGNzY3JpcHQgIiArIFdTY3JpcHQuU2NyaXB0TmFtZSArICIgPG9wdGlvbnM+XG4iOworCXR4dCArPSAiICBjc2NyaXB0ICIgKyBXU2NyaXB0LlNjcmlwdE5hbWUgKyAiIGhlbHBcblxuIjsKKwl0eHQgKz0gIk9wdGlvbnMgY2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgZm9ybSA8b3B0aW9uPj08dmFsdWU+LCB3aGVyZSB0aGUgdmFsdWUgaXNcbiI7CisJdHh0ICs9ICJlaXRoZXIgJ3llcycgb3IgJ25vJywgaWYgbm90IHN0YXRlZCBvdGhlcndpc2UuXG5cbiI7CisJdHh0ICs9ICJcblhNTCBwcm9jZXNzb3Igb3B0aW9ucywgZGVmYXVsdCB2YWx1ZSBnaXZlbiBpbiBwYXJlbnRoZXNlczpcblxuIjsKKwl0eHQgKz0gIiAgdHJpbzogICAgICAgRW5hYmxlIFRSSU8gc3RyaW5nIG1hbmlwdWxhdG9yICgiICsgKHdpdGhUcmlvPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICB0aHJlYWRzOiAgICBFbmFibGUgdGhyZWFkIHNhZmV0eSBbbm98Y3Rsc3xuYXRpdmV8cG9zaXhdICgiICsgKHdpdGhUaHJlYWRzKSAgKyAiKSBcbiI7CisJdHh0ICs9ICIgIGZ0cDogICAgICAgIEVuYWJsZSBGVFAgY2xpZW50ICgiICsgKHdpdGhGdHA/ICJ5ZXMiIDogIm5vIikgICsgIilcbiI7CisJdHh0ICs9ICIgIGh0dHA6ICAgICAgIEVuYWJsZSBIVFRQIGNsaWVudCAoIiArICh3aXRoSHR0cD8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgaHRtbDogICAgICAgRW5hYmxlIEhUTUwgcHJvY2Vzc29yICgiICsgKHdpdGhIdG1sPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICBjMTRuOiAgICAgICBFbmFibGUgQzE0TiBzdXBwb3J0ICgiICsgKHdpdGhDMTRuPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICBjYXRhbG9nOiAgICBFbmFibGUgY2F0YWxvZyBzdXBwb3J0ICgiICsgKHdpdGhDYXRhbG9nPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICBkb2NiOiAgICAgICBFbmFibGUgRG9jQm9vayBzdXBwb3J0ICgiICsgKHdpdGhEb2NiPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICB4cGF0aDogICAgICBFbmFibGUgWFBhdGggc3VwcG9ydCAoIiArICh3aXRoWHBhdGg/ICJ5ZXMiIDogIm5vIikgICsgIilcbiI7CisJdHh0ICs9ICIgIHhwdHI6ICAgICAgIEVuYWJsZSBYUG9pbnRlciBzdXBwb3J0ICgiICsgKHdpdGhYcHRyPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICB4aW5jbHVkZTogICBFbmFibGUgWEluY2x1ZGUgc3VwcG9ydCAoIiArICh3aXRoWGluY2x1ZGU/ICJ5ZXMiIDogIm5vIikgICsgIilcbiI7CisJdHh0ICs9ICIgIGljb252OiAgICAgIEVuYWJsZSBpY29udiBzdXBwb3J0ICgiICsgKHdpdGhJY29udj8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgaXNvODg1OXg6ICAgRW5hYmxlIElTTzg4NTlYIHN1cHBvcnQgKCIgKyAod2l0aElzbzg4NTl4PyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICB6bGliOiAgICAgICBFbmFibGUgemxpYiBzdXBwb3J0ICgiICsgKHdpdGhabGliPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICB4bWxfZGVidWc6ICBFbmFibGUgWE1MIGRlYmJ1Z2dpbmcgbW9kdWxlICgiICsgKHdpdGhEZWJ1Zz8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgbWVtX2RlYnVnOiAgRW5hYmxlIG1lbW9yeSBkZWJ1Z2dlciAoIiArICh3aXRoTWVtRGVidWc/ICJ5ZXMiIDogIm5vIikgICsgIilcbiI7CisJdHh0ICs9ICIgIHJ1bl9kZWJ1ZzogIEVuYWJsZSBtZW1vcnkgZGVidWdnZXIgKCIgKyAod2l0aFJ1bkRlYnVnPyAieWVzIiA6ICJubyIpICArICIpXG4iOworCXR4dCArPSAiICByZWdleHBzOiAgICBFbmFibGUgcmVndWxhciBleHByZXNzaW9ucyAoIiArICh3aXRoUmVnRXhwcz8gInllcyIgOiAibm8iKSArICIpXG4iOworCXR4dCArPSAiICBtb2R1bGVzOiAgICBFbmFibGUgbW9kdWxlIHN1cHBvcnQgKCIgKyAod2l0aE1vZHVsZXM/ICJ5ZXMiIDogIm5vIikgKyAiKVxuIjsKKwl0eHQgKz0gIiAgdHJlZTogICAgICAgRW5hYmxlIHRyZWUgYXBpICgiICsgKHdpdGhUcmVlPyAieWVzIiA6ICJubyIpICsgIilcbiI7CisJdHh0ICs9ICIgIHJlYWRlcjogICAgIEVuYWJsZSB4bWxSZWFkZXIgYXBpICgiICsgKHdpdGhSZWFkZXI/ICJ5ZXMiIDogIm5vIikgKyAiKVxuIjsKKwl0eHQgKz0gIiAgd3JpdGVyOiAgICAgRW5hYmxlIHhtbFdyaXRlciBhcGkgKCIgKyAod2l0aFdyaXRlcj8gInllcyIgOiAibm8iKSArICIpXG4iOworCXR4dCArPSAiICB3YWxrZXI6ICAgICBFbmFibGUgeG1sRG9jV2Fsa2VyIGFwaSAoIiArICh3aXRoV2Fsa2VyPyAieWVzIiA6ICJubyIpICsgIilcbiI7CisJdHh0ICs9ICIgIHBhdHRlcm46ICAgIEVuYWJsZSB4bWxQYXR0ZXJuIGFwaSAoIiArICh3aXRoUGF0dGVybj8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgcHVzaDogICAgICAgRW5hYmxlIHB1c2ggYXBpICgiICsgKHdpdGhQdXNoPyAieWVzIiA6ICJubyIpICsgIilcbiI7CisJdHh0ICs9ICIgIHZhbGlkOiAgICAgIEVuYWJsZSBEVEQgdmFsaWRhdGlvbiBzdXBwb3J0ICgiICsgKHdpdGhWYWxpZD8gInllcyIgOiAibm8iKSArICIpXG4iOworCXR4dCArPSAiICBzYXgxOiAgICAgICBFbmFibGUgU0FYMSBhcGkgKCIgKyAod2l0aFNheDE/ICJ5ZXMiIDogIm5vIikgKyAiKVxuIjsKKwl0eHQgKz0gIiAgbGVnYWN5OiAgICAgRW5hYmxlIERlcHJlY2F0ZWQgYXBpJ3MgKCIgKyAod2l0aExlZ2FjeT8gInllcyIgOiAibm8iKSArICIpXG4iOworCXR4dCArPSAiICBvdXRwdXQ6ICAgICBFbmFibGUgc2VyaWFsaXphdGlvbiBzdXBwb3J0ICgiICsgKHdpdGhPdXRwdXQ/ICJ5ZXMiIDogIm5vIikgKyAiKVxuIjsKKwl0eHQgKz0gIiAgc2NoZW1hczogICAgRW5hYmxlIFhNTCBTY2hlbWEgc3VwcG9ydCAoIiArICh3aXRoU2NoZW1hcz8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgc2NoZW1hdHJvbjogRW5hYmxlIFNjaGVtYXRyb24gc3VwcG9ydCAoIiArICh3aXRoU2NoZW1hdHJvbj8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgcHl0aG9uOiAgICAgQnVpbGQgUHl0aG9uIGJpbmRpbmdzICgiICsgKHdpdGhQeXRob24/ICJ5ZXMiIDogIm5vIikgICsgIilcbiI7CisJdHh0ICs9ICJcbldpbjMyIGJ1aWxkIG9wdGlvbnMsIGRlZmF1bHQgdmFsdWUgZ2l2ZW4gaW4gcGFyZW50aGVzZXM6XG5cbiI7CisJdHh0ICs9ICIgIGNvbXBpbGVyOiAgIENvbXBpbGVyIHRvIGJlIHVzZWQgW21zdmN8bWluZ3d8YmNiXSAoIiArIGNvbXBpbGVyICsgIilcbiI7CisJdHh0ICs9ICIgIGNydW50aW1lOiAgIEMtcnVudGltZSBjb21waWxlciBvcHRpb24gKG9ubHkgbXN2YykgKCIgKyBjcnVudGltZSArICIpXG4iOworCXR4dCArPSAiICBkeW5ydW50aW1lOiBVc2UgdGhlIGR5bmFtaWMgUlRMIChvbmx5IGJjYikgKCIgKyBkeW5ydW50aW1lICsgIilcbiI7CisJdHh0ICs9ICIgIHZjbWFuaWZlc3Q6IEVtYmVkIFZDIG1hbmlmZXN0IChvbmx5IG1zdmMpICgiICsgKHZjbWFuaWZlc3Q/ICJ5ZXMiIDogIm5vIikgKyAiKVxuIjsKKwl0eHQgKz0gIiAgZGVidWc6ICAgICAgQnVpbGQgdW5vcHRpbWlzZWQgZGVidWcgZXhlY3V0YWJsZXMgKCIgKyAoYnVpbGREZWJ1Zz8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgc3RhdGljOiAgICAgTGluayB4bWxsaW50IHN0YXRpY2FsbHkgdG8gbGlieG1sMiAoIiArIChidWlsZFN0YXRpYz8gInllcyIgOiAibm8iKSAgKyAiKVxuIjsKKwl0eHQgKz0gIiAgICAgICAgICAgICAgTm90ZTogYXV0b21hdGljYWxseSBlbmFibGVkIGlmIGNydW50aW1lIGlzIG5vdCAvTUQgb3IgL01EZFxuIjsKKwl0eHQgKz0gIiAgcHJlZml4OiAgICAgQmFzZSBkaXJlY3RvcnkgZm9yIHRoZSBpbnN0YWxsYXRpb24gKCIgKyBidWlsZFByZWZpeCArICIpXG4iOworCXR4dCArPSAiICBiaW5kaXI6ICAgICBEaXJlY3Rvcnkgd2hlcmUgeG1sbGludCBhbmQgZnJpZW5kcyBzaG91bGQgYmUgaW5zdGFsbGVkXG4iOworCXR4dCArPSAiICAgICAgICAgICAgICAoIiArIGJ1aWxkQmluUHJlZml4ICsgIilcbiI7CisJdHh0ICs9ICIgIGluY2RpcjogICAgIERpcmVjdG9yeSB3aGVyZSBoZWFkZXJzIHNob3VsZCBiZSBpbnN0YWxsZWRcbiI7CisJdHh0ICs9ICIgICAgICAgICAgICAgICgiICsgYnVpbGRJbmNQcmVmaXggKyAiKVxuIjsKKwl0eHQgKz0gIiAgbGliZGlyOiAgICAgRGlyZWN0b3J5IHdoZXJlIHN0YXRpYyBhbmQgaW1wb3J0IGxpYnJhcmllcyBzaG91bGQgYmVcbiI7CisJdHh0ICs9ICIgICAgICAgICAgICAgIGluc3RhbGxlZCAoIiArIGJ1aWxkTGliUHJlZml4ICsgIilcbiI7CisJdHh0ICs9ICIgIHNvZGlyOiAgICAgIERpcmVjdG9yeSB3aGVyZSBzaGFyZWQgbGlicmFyaWVzIHNob3VsZCBiZSBpbnN0YWxsZWRcbiI7IAorCXR4dCArPSAiICAgICAgICAgICAgICAoIiArIGJ1aWxkU29QcmVmaXggKyAiKVxuIjsKKwl0eHQgKz0gIiAgaW5jbHVkZTogICAgQWRkaXRpb25hbCBzZWFyY2ggcGF0aCBmb3IgdGhlIGNvbXBpbGVyLCBwYXJ0aWN1bGFyaWx5XG4iOworCXR4dCArPSAiICAgICAgICAgICAgICB3aGVyZSBpY29udiBoZWFkZXJzIGNhbiBiZSBmb3VuZCAoIiArIGJ1aWxkSW5jbHVkZSArICIpXG4iOworCXR4dCArPSAiICBsaWI6ICAgICAgICBBZGRpdGlvbmFsIHNlYXJjaCBwYXRoIGZvciB0aGUgbGlua2VyLCBwYXJ0aWN1bGFyaWx5XG4iOworCXR4dCArPSAiICAgICAgICAgICAgICB3aGVyZSBpY29udiBsaWJyYXJ5IGNhbiBiZSBmb3VuZCAoIiArIGJ1aWxkTGliICsgIilcbiI7CisJV1NjcmlwdC5FY2hvKHR4dCk7Cit9CisKKy8qIERpc2NvdmVycyB0aGUgdmVyc2lvbiB3ZSBhcmUgd29ya2luZyB3aXRoIGJ5IHJlYWRpbmcgdGhlIGFwcm9wcmlhdGUKKyAgIGNvbmZpZ3VyYXRpb24gZmlsZS4gRGVzcGl0ZSBpdHMgbmFtZSwgdGhpcyBhbHNvIHdyaXRlcyB0aGUgY29uZmlndXJhdGlvbgorICAgZmlsZSBpbmNsdWRlZCBieSBvdXIgbWFrZWZpbGUuICovCitmdW5jdGlvbiBkaXNjb3ZlclZlcnNpb24oKQoreworCXZhciBmc28sIGNmLCB2ZiwgbG4sIHMsIGlEb3QsIGlTbGFzaDsKKwlmc28gPSBuZXcgQWN0aXZlWE9iamVjdCgiU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QiKTsKKwl2ZXJDdnMgPSAiIjsKKwlpZiAodXNlQ3ZzVmVyICYmIGZzby5GaWxlRXhpc3RzKCIuLlxcQ1ZTXFxFbnRyaWVzIikpIHsKKwkJY2YgPSBmc28uT3BlblRleHRGaWxlKCIuLlxcQ1ZTXFxFbnRyaWVzIiwgMSk7CisJCXdoaWxlIChjZi5BdEVuZE9mU3RyZWFtICE9IHRydWUpIHsKKwkJCWxuID0gY2YuUmVhZExpbmUoKTsKKwkJCXMgPSBuZXcgU3RyaW5nKGxuKTsKKwkJCWlmIChzLnNlYXJjaCgvXlwvQ2hhbmdlTG9nXC8vKSAhPSAtMSkgeworCQkJCWlEb3QgPSBzLmluZGV4T2YoIi4iKTsKKwkJCQlpU2xhc2ggPSBzLmluZGV4T2YoIi8iLCBpRG90KTsKKwkJCQl2ZXJDdnMgPSAiQ1ZTIiArIHMuc3Vic3RyaW5nKGlEb3QgKyAxLCBpU2xhc2gpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWNmLkNsb3NlKCk7CisJfQorCWNmID0gZnNvLk9wZW5UZXh0RmlsZShjb25maWdGaWxlLCAxKTsKKwlpZiAoY29tcGlsZXIgPT0gIm1zdmMiKQorCQl2ZXJzaW9uRmlsZSA9ICIuXFxjb25maWcubXN2YyI7CisJZWxzZSBpZiAoY29tcGlsZXIgPT0gIm1pbmd3IikKKwkJdmVyc2lvbkZpbGUgPSAiLlxcY29uZmlnLm1pbmd3IjsKKwllbHNlIGlmIChjb21waWxlciA9PSAiYmNiIikKKwkJdmVyc2lvbkZpbGUgPSAiLlxcY29uZmlnLmJjYiI7CisJdmYgPSBmc28uQ3JlYXRlVGV4dEZpbGUodmVyc2lvbkZpbGUsIHRydWUpOworCXZmLldyaXRlTGluZSgiIyAiICsgdmVyc2lvbkZpbGUpOworCXZmLldyaXRlTGluZSgiIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgIiArIFdTY3JpcHQuU2NyaXB0TmFtZSArICIuIik7CisJdmYuV3JpdGVCbGFua0xpbmVzKDEpOworCXdoaWxlIChjZi5BdEVuZE9mU3RyZWFtICE9IHRydWUpIHsKKwkJbG4gPSBjZi5SZWFkTGluZSgpOworCQlzID0gbmV3IFN0cmluZyhsbik7CisJCWlmIChzLnNlYXJjaCgvXkxJQlhNTF9NQUpPUl9WRVJTSU9OPS8pICE9IC0xKSB7CisJCQl2Zi5Xcml0ZUxpbmUocyk7CisJCQl2ZXJNYWpvciA9IHMuc3Vic3RyaW5nKHMuaW5kZXhPZigiPSIpICsgMSwgcy5sZW5ndGgpCisJCX0gZWxzZSBpZihzLnNlYXJjaCgvXkxJQlhNTF9NSU5PUl9WRVJTSU9OPS8pICE9IC0xKSB7CisJCQl2Zi5Xcml0ZUxpbmUocyk7CisJCQl2ZXJNaW5vciA9IHMuc3Vic3RyaW5nKHMuaW5kZXhPZigiPSIpICsgMSwgcy5sZW5ndGgpCisJCX0gZWxzZSBpZihzLnNlYXJjaCgvXkxJQlhNTF9NSUNST19WRVJTSU9OPS8pICE9IC0xKSB7CisJCQl2Zi5Xcml0ZUxpbmUocyk7CisJCQl2ZXJNaWNybyA9IHMuc3Vic3RyaW5nKHMuaW5kZXhPZigiPSIpICsgMSwgcy5sZW5ndGgpCisJCX0gZWxzZSBpZihzLnNlYXJjaCgvXkxJQlhNTF9NSUNST19WRVJTSU9OX1NVRkZJWD0vKSAhPSAtMSkgeworCQkJdmYuV3JpdGVMaW5lKHMpOworCQkJdmVyTWljcm9TdWZmaXggPSBzLnN1YnN0cmluZyhzLmluZGV4T2YoIj0iKSArIDEsIHMubGVuZ3RoKQorCQl9CisJfQorCWNmLkNsb3NlKCk7CisJdmYuV3JpdGVMaW5lKCJYTUxfU1JDRElSPSIgKyBzcmNEaXJYbWwpOworCXZmLldyaXRlTGluZSgiVVRJTFNfU1JDRElSPSIgKyBzcmNEaXJVdGlscyk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX1RSSU89IiArICh3aXRoVHJpbz8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX1RIUkVBRFM9IiArIHdpdGhUaHJlYWRzKTsKKwl2Zi5Xcml0ZUxpbmUoIldJVEhfRlRQPSIgKyAod2l0aEZ0cD8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX0hUVFA9IiArICh3aXRoSHR0cD8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX0hUTUw9IiArICh3aXRoSHRtbD8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX0MxNE49IiArICh3aXRoQzE0bj8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX0NBVEFMT0c9IiArICh3aXRoQ2F0YWxvZz8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX0RPQ0I9IiArICh3aXRoRG9jYj8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX1hQQVRIPSIgKyAod2l0aFhwYXRoPyAiMSIgOiAiMCIpKTsKKwl2Zi5Xcml0ZUxpbmUoIldJVEhfWFBUUj0iICsgKHdpdGhYcHRyPyAiMSIgOiAiMCIpKTsKKwl2Zi5Xcml0ZUxpbmUoIldJVEhfWElOQ0xVREU9IiArICh3aXRoWGluY2x1ZGU/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9JQ09OVj0iICsgKHdpdGhJY29udj8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX0lTTzg4NTlYPSIgKyAod2l0aElzbzg4NTl4PyAiMSIgOiAiMCIpKTsKKwl2Zi5Xcml0ZUxpbmUoIldJVEhfWkxJQj0iICsgKHdpdGhabGliPyAiMSIgOiAiMCIpKTsKKwl2Zi5Xcml0ZUxpbmUoIldJVEhfREVCVUc9IiArICh3aXRoRGVidWc/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9NRU1fREVCVUc9IiArICh3aXRoTWVtRGVidWc/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9SVU5fREVCVUc9IiArICh3aXRoUnVuRGVidWc/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9TQ0hFTUFTPSIgKyAod2l0aFNjaGVtYXM/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9TQ0hFTUFUUk9OPSIgKyAod2l0aFNjaGVtYXRyb24/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9SRUdFWFBTPSIgKyAod2l0aFJlZ0V4cHM/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9NT0RVTEVTPSIgKyAod2l0aE1vZHVsZXM/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9UUkVFPSIgKyAod2l0aFRyZWU/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9SRUFERVI9IiArICh3aXRoUmVhZGVyPyAiMSIgOiAiMCIpKTsKKwl2Zi5Xcml0ZUxpbmUoIldJVEhfV1JJVEVSPSIgKyAod2l0aFdyaXRlcj8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX1dBTEtFUj0iICsgKHdpdGhXYWxrZXI/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9QQVRURVJOPSIgKyAod2l0aFBhdHRlcm4/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9QVVNIPSIgKyAod2l0aFB1c2g/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9WQUxJRD0iICsgKHdpdGhWYWxpZD8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX1NBWDE9IiArICh3aXRoU2F4MT8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJXSVRIX0xFR0FDWT0iICsgKHdpdGhMZWdhY3k/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiV0lUSF9PVVRQVVQ9IiArICh3aXRoT3V0cHV0PyAiMSIgOiAiMCIpKTsKKwl2Zi5Xcml0ZUxpbmUoIldJVEhfUFlUSE9OPSIgKyAod2l0aFB5dGhvbj8gIjEiIDogIjAiKSk7CisJdmYuV3JpdGVMaW5lKCJERUJVRz0iICsgKGJ1aWxkRGVidWc/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiU1RBVElDPSIgKyAoYnVpbGRTdGF0aWM/ICIxIiA6ICIwIikpOworCXZmLldyaXRlTGluZSgiUFJFRklYPSIgKyBidWlsZFByZWZpeCk7CisJdmYuV3JpdGVMaW5lKCJCSU5QUkVGSVg9IiArIGJ1aWxkQmluUHJlZml4KTsKKwl2Zi5Xcml0ZUxpbmUoIklOQ1BSRUZJWD0iICsgYnVpbGRJbmNQcmVmaXgpOworCXZmLldyaXRlTGluZSgiTElCUFJFRklYPSIgKyBidWlsZExpYlByZWZpeCk7CisJdmYuV3JpdGVMaW5lKCJTT1BSRUZJWD0iICsgYnVpbGRTb1ByZWZpeCk7CisJaWYgKGNvbXBpbGVyID09ICJtc3ZjIikgeworCQl2Zi5Xcml0ZUxpbmUoIklOQ0xVREU9JChJTkNMVURFKTsiICsgYnVpbGRJbmNsdWRlKTsKKwkJdmYuV3JpdGVMaW5lKCJMSUI9JChMSUIpOyIgKyBidWlsZExpYik7CisJCXZmLldyaXRlTGluZSgiQ1JVTlRJTUU9IiArIGNydW50aW1lKTsKKwkJdmYuV3JpdGVMaW5lKCJWQ01BTklGRVNUPSIgKyAodmNtYW5pZmVzdD8gIjEiIDogIjAiKSk7CisJfSBlbHNlIGlmIChjb21waWxlciA9PSAibWluZ3ciKSB7CisJCXZmLldyaXRlTGluZSgiSU5DTFVERSs9OyIgKyBidWlsZEluY2x1ZGUpOworCQl2Zi5Xcml0ZUxpbmUoIkxJQis9OyIgKyBidWlsZExpYik7CisJfSBlbHNlIGlmIChjb21waWxlciA9PSAiYmNiIikgeworCQl2Zi5Xcml0ZUxpbmUoIklOQ0xVREU9IiArIGJ1aWxkSW5jbHVkZSk7CisJCXZmLldyaXRlTGluZSgiTElCPSIgKyBidWlsZExpYik7CisJCXZmLldyaXRlTGluZSgiRFlOUlVOVElNRT0iICsgKGR5bnJ1bnRpbWU/ICIxIiA6ICIwIikpOworCX0KKwl2Zi5DbG9zZSgpOworfQorCisvKiBDb25maWd1cmVzIGxpYnhtbC4gVGhpcyBvbmUgd2lsbCBnZW5lcmF0ZSB4bWx2ZXJzaW9uLmggZnJvbSB4bWx2ZXJzaW9uLmguaW4KKyAgIHRha2luZyB3aGF0IHRoZSB1c2VyIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lIGludG8gYWNjb3VudC4gKi8KK2Z1bmN0aW9uIGNvbmZpZ3VyZUxpYnhtbCgpCit7CisJdmFyIGZzbywgb2ZpLCBvZiwgbG4sIHM7CisJZnNvID0gbmV3IEFjdGl2ZVhPYmplY3QoIlNjcmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0Iik7CisJb2ZpID0gZnNvLk9wZW5UZXh0RmlsZShvcHRzRmlsZUluLCAxKTsKKwlvZiA9IGZzby5DcmVhdGVUZXh0RmlsZShvcHRzRmlsZSwgdHJ1ZSk7CisJd2hpbGUgKG9maS5BdEVuZE9mU3RyZWFtICE9IHRydWUpIHsKKwkJbG4gPSBvZmkuUmVhZExpbmUoKTsKKwkJcyA9IG5ldyBTdHJpbmcobG4pOworCQlpZiAocy5zZWFyY2goL1xAVkVSU0lPTlxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAVkVSU0lPTlxALywgCisJCQkJdmVyTWFqb3IgKyAiLiIgKyB2ZXJNaW5vciArICIuIiArIHZlck1pY3JvICsgdmVyTWljcm9TdWZmaXgpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBMSUJYTUxfVkVSU0lPTl9OVU1CRVJcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQExJQlhNTF9WRVJTSU9OX05VTUJFUlxALywgCisJCQkJdmVyTWFqb3IqMTAwMDAgKyB2ZXJNaW5vcioxMDAgKyB2ZXJNaWNybyoxKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xATElCWE1MX1ZFUlNJT05fRVhUUkFcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQExJQlhNTF9WRVJTSU9OX0VYVFJBXEAvLCB2ZXJDdnMpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1RSSU9cQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfVFJJT1xALywgd2l0aFRyaW8/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfVEhSRUFEU1xALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9USFJFQURTXEAvLCB3aXRoVGhyZWFkcyA9PSAibm8iPyAiMCIgOiAiMSIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX0ZUUFxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9GVFBcQC8sIHdpdGhGdHA/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfSFRUUFxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9IVFRQXEAvLCB3aXRoSHR0cD8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9IVE1MXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX0hUTUxcQC8sIHdpdGhIdG1sPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX0MxNE5cQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfQzE0TlxALywgd2l0aEMxNG4/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfQ0FUQUxPR1xALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9DQVRBTE9HXEAvLCB3aXRoQ2F0YWxvZz8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9ET0NCXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX0RPQ0JcQC8sIHdpdGhEb2NiPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1hQQVRIXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX1hQQVRIXEAvLCB3aXRoWHBhdGg/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfWFBUUlxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9YUFRSXEAvLCB3aXRoWHB0cj8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9YSU5DTFVERVxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9YSU5DTFVERVxALywgd2l0aFhpbmNsdWRlPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX0lDT05WXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX0lDT05WXEAvLCB3aXRoSWNvbnY/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfSVNPODg1OVhcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfSVNPODg1OVhcQC8sIHdpdGhJc284ODU5eD8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9aTElCXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX1pMSUJcQC8sIHdpdGhabGliPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX0RFQlVHXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX0RFQlVHXEAvLCB3aXRoRGVidWc/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfTUVNX0RFQlVHXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX01FTV9ERUJVR1xALywgd2l0aE1lbURlYnVnPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1JVTl9ERUJVR1xALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9SVU5fREVCVUdcQC8sIHdpdGhSdW5EZWJ1Zz8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9TQ0hFTUFTXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX1NDSEVNQVNcQC8sIHdpdGhTY2hlbWFzPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1NDSEVNQVRST05cQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfU0NIRU1BVFJPTlxALywgd2l0aFNjaGVtYXRyb24/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfUkVHRVhQU1xALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9SRUdFWFBTXEAvLCB3aXRoUmVnRXhwcz8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9NT0RVTEVTXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX01PRFVMRVNcQC8sIHdpdGhNb2R1bGVzPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBNT0RVTEVfRVhURU5TSU9OXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBNT0RVTEVfRVhURU5TSU9OXEAvLCAiLmRsbCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1RSRUVcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfVFJFRVxALywgd2l0aFRyZWU/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfUkVBREVSXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX1JFQURFUlxALywgd2l0aFJlYWRlcj8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9XUklURVJcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfV1JJVEVSXEAvLCB3aXRoV3JpdGVyPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1dBTEtFUlxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9XQUxLRVJcQC8sIHdpdGhXYWxrZXI/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfUEFUVEVSTlxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9QQVRURVJOXEAvLCB3aXRoUGF0dGVybj8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9QVVNIXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX1BVU0hcQC8sIHdpdGhQdXNoPyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1ZBTElEXEAvKSAhPSAtMSkgeworCQkJb2YuV3JpdGVMaW5lKHMucmVwbGFjZSgvXEBXSVRIX1ZBTElEXEAvLCB3aXRoVmFsaWQ/ICIxIiA6ICIwIikpOworCQl9IGVsc2UgaWYgKHMuc2VhcmNoKC9cQFdJVEhfU0FYMVxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9TQVgxXEAvLCB3aXRoU2F4MT8gIjEiIDogIjAiKSk7CisJCX0gZWxzZSBpZiAocy5zZWFyY2goL1xAV0lUSF9MRUdBQ1lcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfTEVHQUNZXEAvLCB3aXRoTGVnYWN5PyAiMSIgOiAiMCIpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX09VVFBVVFxALykgIT0gLTEpIHsKKwkJCW9mLldyaXRlTGluZShzLnJlcGxhY2UoL1xAV0lUSF9PVVRQVVRcQC8sIHdpdGhPdXRwdXQ/ICIxIiA6ICIwIikpOworCQl9IGVsc2UKKwkJCW9mLldyaXRlTGluZShsbik7CisJfQorCW9maS5DbG9zZSgpOworCW9mLkNsb3NlKCk7Cit9CisvKiBDb25maWd1cmVzIFB5dGhvbiBiaW5kaW5ncy4gT3RoZXJ3aXNlIGlkZW50aWNhbCB0byB0aGUgYWJvdmUgKi8KK2Z1bmN0aW9uIGNvbmZpZ3VyZUxpYnhtbFB5KCkKK3sKKwl2YXIgcHlPcHRzRmlsZUluID0gc3JjRGlyWG1sICsgIlxccHl0aG9uXFxzZXR1cC5weS5pbiI7CisJdmFyIHB5T3B0c0ZpbGUgPSBzcmNEaXJYbWwgKyAiXFxweXRob25cXHNldHVwLnB5IjsKKwl2YXIgZnNvLCBvZmksIG9mLCBsbiwgczsKKwlmc28gPSBuZXcgQWN0aXZlWE9iamVjdCgiU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QiKTsKKwlvZmkgPSBmc28uT3BlblRleHRGaWxlKHB5T3B0c0ZpbGVJbiwgMSk7CisJb2YgPSBmc28uQ3JlYXRlVGV4dEZpbGUocHlPcHRzRmlsZSwgdHJ1ZSk7CisJd2hpbGUgKG9maS5BdEVuZE9mU3RyZWFtICE9IHRydWUpIHsKKwkJbG4gPSBvZmkuUmVhZExpbmUoKTsKKwkJcyA9IG5ldyBTdHJpbmcobG4pOworCQlpZiAocy5zZWFyY2goL1xATElCWE1MX1ZFUlNJT05cQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQExJQlhNTF9WRVJTSU9OXEAvLCAKKwkJCQl2ZXJNYWpvciArICIuIiArIHZlck1pbm9yICsgIi4iICsgdmVyTWljcm8pKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBwcmVmaXhcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQHByZWZpeFxALywgYnVpbGRQcmVmaXgpKTsKKwkJfSBlbHNlIGlmIChzLnNlYXJjaCgvXEBXSVRIX1RIUkVBRFNcQC8pICE9IC0xKSB7CisJCQlvZi5Xcml0ZUxpbmUocy5yZXBsYWNlKC9cQFdJVEhfVEhSRUFEU1xALywgd2l0aFRocmVhZHMgPT0gIm5vIj8gIjAiIDogIjEiKSk7CisJCX0gZWxzZQorCQkJb2YuV3JpdGVMaW5lKGxuKTsKKwl9CisJb2ZpLkNsb3NlKCk7CisJb2YuQ2xvc2UoKTsKK30KKworLyogQ3JlYXRlcyB0aGUgcmVhZG1lIGZpbGUgZm9yIHRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mICdibmFtZScsIGZvciB0aGUKKyAgIHZlcnNpb24gJ3ZlcicgaW4gdGhlIGZpbGUgJ2ZpbGUnLiBUaGlzIG9uZSBpcyBjYWxsZWQgZnJvbSB0aGUgTWFrZWZpbGUgd2hlbgorICAgZ2VuZXJhdGluZyBhIGJpbmFyeSBkaXN0cmlidXRpb24uIFRoZSBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgYnkgbWFrZS4gKi8KK2Z1bmN0aW9uIGdlblJlYWRtZShibmFtZSwgdmVyLCBmaWxlKQoreworCXZhciBmc28sIGY7CisJZnNvID0gbmV3IEFjdGl2ZVhPYmplY3QoIlNjcmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0Iik7CisJZiA9IGZzby5DcmVhdGVUZXh0RmlsZShmaWxlLCB0cnVlKTsKKwlmLldyaXRlTGluZSgiICAiICsgYm5hbWUgKyAiICIgKyB2ZXIpOworCWYuV3JpdGVMaW5lKCIgIC0tLS0tLS0tLS0tLS0tIik7CisJZi5Xcml0ZUJsYW5rTGluZXMoMSk7CisJZi5Xcml0ZUxpbmUoIiAgVGhpcyBpcyAiICsgYm5hbWUgKyAiLCB2ZXJzaW9uICIgKyB2ZXIgKyAiLCBiaW5hcnkgcGFja2FnZSBmb3IgdGhlIG5hdGl2ZSBXaW4zMi9JQTMyIik7CisJZi5Xcml0ZUxpbmUoInBsYXRmb3JtLiIpOworCWYuV3JpdGVCbGFua0xpbmVzKDEpOworCWYuV3JpdGVMaW5lKCIgIFRoZSBmaWxlcyBpbiB0aGlzIHBhY2thZ2UgZG8gbm90IHJlcXVpcmUgYW55IHNwZWNpYWwgaW5zdGFsbGF0aW9uIik7CisJZi5Xcml0ZUxpbmUoInN0ZXBzLiBFeHRyYWN0IHRoZSBjb250ZW50cyBvZiB0aGUgYXJjaGl2ZSB3aGVyZWV2ZXIgeW91IHdpc2ggYW5kIik7CisJZi5Xcml0ZUxpbmUoIm1ha2Ugc3VyZSB0aGF0IHlvdXIgdG9vbHMgd2hpY2ggdXNlICIgKyBibmFtZSArICIgY2FuIGZpbmQgaXQuIik7CisJZi5Xcml0ZUJsYW5rTGluZXMoMSk7CisJZi5Xcml0ZUxpbmUoIiAgRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIHJ1biB0aGUgc3VwcGxpZWQgdXRpbGl0aWVzIGZyb20gdGhlIGNvbW1hbmQiKTsKKwlmLldyaXRlTGluZSgibGluZSwgeW91IGNhbiwgaWYgeW91IHdpc2gsIGFkZCB0aGUgJ2Jpbicgc3ViZGlyZWN0b3J5IHRvIHRoZSBQQVRIIik7CisJZi5Xcml0ZUxpbmUoImVudmlyb25tZW50IHZhcmlhYmxlLiIpOworCWYuV3JpdGVMaW5lKCIgIElmIHlvdSB3YW50IHRvIG1ha2UgcHJvZ3JhbW1lcyBpbiBDIHdoaWNoIHVzZSAiICsgYm5hbWUgKyAiLCB5b3UnbGwiKTsKKwlmLldyaXRlTGluZSgibGlrZWx5IGtub3cgaG93IHRvIHVzZSB0aGUgY29udGVudHMgb2YgdGhpcyBwYWNrYWdlLiBJZiB5b3UgZG9uJ3QsIHBsZWFzZSIpOworCWYuV3JpdGVMaW5lKCJyZWZlciB0byB5b3VyIGNvbXBpbGVyJ3MgZG9jdW1lbnRhdGlvbi4iKTsgCisJZi5Xcml0ZUJsYW5rTGluZXMoMSk7CisJZi5Xcml0ZUxpbmUoIiAgSWYgdGhlcmUgaXMgc29tZXRoaW5nIHlvdSBjYW5ub3Qga2VlcCBmb3IgeW91cnNlbGYsIHN1Y2ggYXMgYSBwcm9ibGVtLCIpOworCWYuV3JpdGVMaW5lKCJhIGNoZWVyIG9mIGpveSwgYSBjb21tZW50IG9yIGEgc3VnZ2VzdGlvbiwgZmVlbCBmcmVlIHRvIGNvbnRhY3QgbWUgdXNpbmciKTsKKwlmLldyaXRlTGluZSgidGhlIGFkZHJlc3MgYmVsb3cuIik7CisJZi5Xcml0ZUJsYW5rTGluZXMoMSk7CisJZi5Xcml0ZUxpbmUoIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElnb3IgWmxhdGtvdmljIChpZ29yQHpsYXRrb3ZpYy5jb20pIik7CisJZi5DbG9zZSgpOworfQorCisKKy8qCisgKiBtYWluKCksCisgKiBFeGVjdXRpb24gYmVnaW5zIGhlcmUuCisgKi8KKworLy8gUGFyc2UgdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMuCitmb3IgKGkgPSAwOyAoaSA8IFdTY3JpcHQuQXJndW1lbnRzLmxlbmd0aCkgJiYgKGVycm9yID09IDApOyBpKyspIHsKKwl2YXIgYXJnLCBvcHQ7CisJYXJnID0gV1NjcmlwdC5Bcmd1bWVudHMoaSk7CisJb3B0ID0gYXJnLnN1YnN0cmluZygwLCBhcmcuaW5kZXhPZigiPSIpKTsKKwlpZiAob3B0Lmxlbmd0aCA9PSAwKQorCQlvcHQgPSBhcmcuc3Vic3RyaW5nKDAsIGFyZy5pbmRleE9mKCI6IikpOworCWlmIChvcHQubGVuZ3RoID4gMCkgeworCQlpZiAob3B0ID09ICJ0cmlvIikKKwkJCXdpdGhUcmlvID0gc3RyVG9Cb29sKGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpKTsKKwkJZWxzZSBpZiAob3B0ID09ICJ0aHJlYWRzIikKKwkJCXdpdGhUaHJlYWRzID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAiZnRwIikKKwkJCXdpdGhGdHAgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gImh0dHAiKQorCQkJd2l0aEh0dHAgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gImh0bWwiKQorCQkJd2l0aEh0bWwgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gImMxNG4iKQorCQkJd2l0aEMxNG4gPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gImNhdGFsb2ciKQorCQkJd2l0aENhdGFsb2cgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gImRvY2IiKQorCQkJd2l0aERvY2IgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gInhwYXRoIikKKwkJCXdpdGhYcGF0aCA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAieHB0ciIpCisJCQl3aXRoWHB0ciA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAieGluY2x1ZGUiKQorCQkJd2l0aFhpbmNsdWRlID0gc3RyVG9Cb29sKGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpKTsKKwkJZWxzZSBpZiAob3B0ID09ICJpY29udiIpCisJCQl3aXRoSWNvbnYgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gImlzbzg4NTl4IikKKwkJCXdpdGhJc284ODU5eCA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAiemxpYiIpCisJCQl3aXRoWmxpYiA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAieG1sX2RlYnVnIikKKwkJCXdpdGhEZWJ1ZyA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAibWVtX2RlYnVnIikKKwkJCXdpdGhNZW1EZWJ1ZyA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAicnVuX2RlYnVnIikKKwkJCXdpdGhSdW5EZWJ1ZyA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAic2NoZW1hcyIpCisJCQl3aXRoU2NoZW1hcyA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAic2NoZW1hdHJvbiIpCisJCQl3aXRoU2NoZW1hdHJvbiA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAicmVnZXhwcyIpCisJCQl3aXRoUmVnRXhwcyA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAibW9kdWxlcyIpCisJCQl3aXRoTW9kdWxlcyA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAidHJlZSIpCisJCQl3aXRoVHJlZSA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAicmVhZGVyIikKKwkJCXdpdGhSZWFkZXIgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gIndyaXRlciIpCisJCQl3aXRoV3JpdGVyID0gc3RyVG9Cb29sKGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpKTsKKwkJZWxzZSBpZiAob3B0ID09ICJ3YWxrZXIiKQorCQkJd2l0aFdhbGtlciA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAicGF0dGVybiIpCisJCQl3aXRoUGF0dGVybiA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAicHVzaCIpCisJCQl3aXRoUHVzaCA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAidmFsaWQiKQorCQkJd2l0aFZhbGlkID0gc3RyVG9Cb29sKGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpKTsKKwkJZWxzZSBpZiAob3B0ID09ICJzYXgxIikKKwkJCXdpdGhTYXgxID0gc3RyVG9Cb29sKGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpKTsKKwkJZWxzZSBpZiAob3B0ID09ICJsZWdhY3kiKQorCQkJd2l0aExlZ2FjeSA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAib3V0cHV0IikKKwkJCXdpdGhPdXRwdXQgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gInB5dGhvbiIpCisJCQl3aXRoUHl0aG9uID0gc3RyVG9Cb29sKGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpKTsKKwkJZWxzZSBpZiAob3B0ID09ICJjb21waWxlciIpCisJCQljb21waWxlciA9IGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpOworCQllbHNlIGlmIChvcHQgPT0gImNydW50aW1lIikKKwkJCWNydW50aW1lID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAiZHlucnVudGltZSIpCisJCQlkeW5ydW50aW1lID0gc3RyVG9Cb29sKGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpKTsKKwkJZWxzZSBpZiAob3B0ID09ICJ2Y21hbmlmZXN0IikKKwkJCXZjbWFuaWZlc3QgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gImRlYnVnIikKKwkJCWJ1aWxkRGVidWcgPSBzdHJUb0Jvb2woYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCkpOworCQllbHNlIGlmIChvcHQgPT0gInN0YXRpYyIpCisJCQlidWlsZFN0YXRpYyA9IHN0clRvQm9vbChhcmcuc3Vic3RyaW5nKG9wdC5sZW5ndGggKyAxLCBhcmcubGVuZ3RoKSk7CisJCWVsc2UgaWYgKG9wdCA9PSAicHJlZml4IikKKwkJCWJ1aWxkUHJlZml4ID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAiaW5jZGlyIikKKwkJCWJ1aWxkSW5jUHJlZml4ID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAiYmluZGlyIikKKwkJCWJ1aWxkQmluUHJlZml4ID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAibGliZGlyIikKKwkJCWJ1aWxkTGliUHJlZml4ID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAic29kaXIiKQorCQkJYnVpbGRTb1ByZWZpeCA9IGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpOworCQllbHNlIGlmIChvcHQgPT0gImluY2RpciIpCisJCQlidWlsZEluY1ByZWZpeCA9IGFyZy5zdWJzdHJpbmcob3B0Lmxlbmd0aCArIDEsIGFyZy5sZW5ndGgpOworCQllbHNlIGlmIChvcHQgPT0gImluY2x1ZGUiKQorCQkJYnVpbGRJbmNsdWRlID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAibGliIikKKwkJCWJ1aWxkTGliID0gYXJnLnN1YnN0cmluZyhvcHQubGVuZ3RoICsgMSwgYXJnLmxlbmd0aCk7CisJCWVsc2UgaWYgKG9wdCA9PSAicmVsZWFzZSIpCisJCQl1c2VDdnNWZXIgPSBmYWxzZTsKKwkJZWxzZQorCQkJZXJyb3IgPSAxOworCX0gZWxzZSBpZiAoaSA9PSAwKSB7CisJCWlmIChhcmcgPT0gImdlbnJlYWRtZSIpIHsKKwkJCS8vIFRoaXMgY29tbWFuZCBjb21lcyBmcm9tIHRoZSBNYWtlZmlsZSBhbmQgd2lsbCBub3QgYmUgY2hlY2tlZAorCQkJLy8gZm9yIGVycm9ycywgYmVjYXVzZSBNYWtlZmlsZSB3aWxsIGFsd2F5cyBzdXBwbHkgcmlnaHQgdGhlIHBhcmFtZXRlcnMuCisJCQlnZW5SZWFkbWUoV1NjcmlwdC5Bcmd1bWVudHMoMSksIFdTY3JpcHQuQXJndW1lbnRzKDIpLCBXU2NyaXB0LkFyZ3VtZW50cygzKSk7CisJCQlXU2NyaXB0LlF1aXQoMCk7CisJCX0gZWxzZSBpZiAoYXJnID09ICJoZWxwIikgeworCQkJdXNhZ2UoKTsKKwkJCVdTY3JpcHQuUXVpdCgwKTsKKwkJfQorCisJfSBlbHNlIHsKKwkJZXJyb3IgPSAxOworCX0KK30KKworCisvLyBJZiB3ZSBmYWlsIGhlcmUsIGl0IGlzIGJlY2F1c2UgdGhlIHVzZXIgc3VwcGxpZWQgYW4gdW5yZWNvZ25pc2VkIGFyZ3VtZW50LgoraWYgKGVycm9yICE9IDApIHsKKwl1c2FnZSgpOworCVdTY3JpcHQuUXVpdChlcnJvcik7Cit9CisKKy8vIGlmIHVzZXIgY2hvc2VzIHRvIGxpbmsgdGhlIGMtcnVudGltZSBsaWJyYXJ5IHN0YXRpY2FsbHkgaW50byBsaWJ4bWwyCisvLyB3aXRoIC9NVCBhbmQgZnJpZW5kcywgdGhlbiB3ZSBuZWVkIHRvIGVuYWJsZSBzdGF0aWMgbGlua2luZyBmb3IgeG1sbGludAoraWYgKGNydW50aW1lID09ICIvTVQiIHx8IGNydW50aW1lID09ICIvTVRkIiB8fAorCQljcnVudGltZSA9PSAiL01MIiB8fCBjcnVudGltZSA9PSAiL01MZCIpIHsKKwlidWlsZFN0YXRpYyA9IDE7Cit9CisKK2RpclNlcCA9ICJcXCI7CitpZiAoYnVpbGRCaW5QcmVmaXggPT0gIiIpCisJYnVpbGRCaW5QcmVmaXggPSAiJChQUkVGSVgpIiArIGRpclNlcCArICJiaW4iOworaWYgKGJ1aWxkSW5jUHJlZml4ID09ICIiKQorCWJ1aWxkSW5jUHJlZml4ID0gIiQoUFJFRklYKSIgKyBkaXJTZXAgKyAiaW5jbHVkZSI7CitpZiAoYnVpbGRMaWJQcmVmaXggPT0gIiIpCisJYnVpbGRMaWJQcmVmaXggPSAiJChQUkVGSVgpIiArIGRpclNlcCArICJsaWIiOworaWYgKGJ1aWxkU29QcmVmaXggPT0gIiIpCisJYnVpbGRTb1ByZWZpeCA9ICIkKFBSRUZJWCkiICsgZGlyU2VwICsgImxpYiI7CisKKy8vIERpc2NvdmVyIHRoZSB2ZXJzaW9uLgorZGlzY292ZXJWZXJzaW9uKCk7CitpZiAoZXJyb3IgIT0gMCkgeworCVdTY3JpcHQuRWNobygiVmVyc2lvbiBkaXNjb3ZlcnkgZmFpbGVkLCBhYm9ydGluZy4iKTsKKwlXU2NyaXB0LlF1aXQoZXJyb3IpOworfQorCit2YXIgb3V0VmVyU3RyaW5nID0gYmFzZU5hbWUgKyAiIHZlcnNpb246ICIgKyB2ZXJNYWpvciArICIuIiArIHZlck1pbm9yICsgIi4iICsgdmVyTWljcm87CitpZiAodmVyTWljcm9TdWZmaXggJiYgdmVyTWljcm9TdWZmaXggIT0gIiIpCisJb3V0VmVyU3RyaW5nICs9ICItIiArIHZlck1pY3JvU3VmZml4OworaWYgKHZlckN2cyAmJiB2ZXJDdnMgIT0gIiIpCisJb3V0VmVyU3RyaW5nICs9ICItIiArIHZlckN2czsKK1dTY3JpcHQuRWNobyhvdXRWZXJTdHJpbmcpOworCisvLyBDb25maWd1cmUgbGlieG1sLgorY29uZmlndXJlTGlieG1sKCk7CitpZiAoZXJyb3IgIT0gMCkgeworCVdTY3JpcHQuRWNobygiQ29uZmlndXJhdGlvbiBmYWlsZWQsIGFib3J0aW5nLiIpOworCVdTY3JpcHQuUXVpdChlcnJvcik7Cit9CisKK2lmICh3aXRoUHl0aG9uID09IHRydWUpIHsKKwljb25maWd1cmVMaWJ4bWxQeSgpOworCWlmIChlcnJvciAhPSAwKSB7CisJCVdTY3JpcHQuRWNobygiQ29uZmlndXJhdGlvbiBmYWlsZWQsIGFib3J0aW5nLiIpOworCQlXU2NyaXB0LlF1aXQoZXJyb3IpOworCX0KKworfQorCisvLyBDcmVhdGUgdGhlIG1ha2VmaWxlLgordmFyIGZzbyA9IG5ldyBBY3RpdmVYT2JqZWN0KCJTY3JpcHRpbmcuRmlsZVN5c3RlbU9iamVjdCIpOwordmFyIG1ha2VmaWxlID0gIi5cXE1ha2VmaWxlLm1zdmMiOworaWYgKGNvbXBpbGVyID09ICJtaW5ndyIpCisJbWFrZWZpbGUgPSAiLlxcTWFrZWZpbGUubWluZ3ciOworZWxzZSBpZiAoY29tcGlsZXIgPT0gImJjYiIpCisJbWFrZWZpbGUgPSAiLlxcTWFrZWZpbGUuYmNiIjsKK2Zzby5Db3B5RmlsZShtYWtlZmlsZSwgIi5cXE1ha2VmaWxlIiwgdHJ1ZSk7CitXU2NyaXB0LkVjaG8oIkNyZWF0ZWQgTWFrZWZpbGUuIik7CisvLyBDcmVhdGUgdGhlIGNvbmZpZy5oLgordmFyIGNvbmZpZ2hzcmMgPSAiLi5cXGluY2x1ZGVcXHdpbjMyY29uZmlnLmgiOwordmFyIGNvbmZpZ2ggPSAiLi5cXGNvbmZpZy5oIjsKK3ZhciBmID0gZnNvLkZpbGVFeGlzdHMoY29uZmlnaCk7CitpZiAoZikgeworCXZhciB0ID0gZnNvLkdldEZpbGUoY29uZmlnaCk7CisJdC5BdHRyaWJ1dGVzID0wOworfQorZnNvLkNvcHlGaWxlKGNvbmZpZ2hzcmMsIGNvbmZpZ2gsIHRydWUpOworV1NjcmlwdC5FY2hvKCJDcmVhdGVkIGNvbmZpZy5oLiIpOworCisKKy8vIERpc3BsYXkgdGhlIGZpbmFsIGNvbmZpZ3VyYXRpb24uIAordmFyIHR4dE91dCA9ICJcblhNTCBwcm9jZXNzb3IgY29uZmlndXJhdGlvblxuIjsKK3R4dE91dCArPSAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwordHh0T3V0ICs9ICIgICAgICAgICAgICAgIFRyaW86ICIgKyBib29sVG9TdHIod2l0aFRyaW8pICsgIlxuIjsKK3R4dE91dCArPSAiICAgICBUaHJlYWQgc2FmZXR5OiAiICsgd2l0aFRocmVhZHMgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgICAgIEZUUCBjbGllbnQ6ICIgKyBib29sVG9TdHIod2l0aEZ0cCkgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgICAgSFRUUCBjbGllbnQ6ICIgKyBib29sVG9TdHIod2l0aEh0dHApICsgIlxuIjsKK3R4dE91dCArPSAiICAgIEhUTUwgcHJvY2Vzc29yOiAiICsgYm9vbFRvU3RyKHdpdGhIdG1sKSArICJcbiI7Cit0eHRPdXQgKz0gIiAgICAgIEMxNE4gc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoQzE0bikgKyAiXG4iOwordHh0T3V0ICs9ICIgICBDYXRhbG9nIHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aENhdGFsb2cpICsgIlxuIjsKK3R4dE91dCArPSAiICAgRG9jQm9vayBzdXBwb3J0OiAiICsgYm9vbFRvU3RyKHdpdGhEb2NiKSArICJcbiI7Cit0eHRPdXQgKz0gIiAgICAgWFBhdGggc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoWHBhdGgpICsgIlxuIjsKK3R4dE91dCArPSAiICBYUG9pbnRlciBzdXBwb3J0OiAiICsgYm9vbFRvU3RyKHdpdGhYcHRyKSArICJcbiI7Cit0eHRPdXQgKz0gIiAgWEluY2x1ZGUgc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoWGluY2x1ZGUpICsgIlxuIjsKK3R4dE91dCArPSAiICAgICBpY29udiBzdXBwb3J0OiAiICsgYm9vbFRvU3RyKHdpdGhJY29udikgKyAiXG4iOwordHh0T3V0ICs9ICIgIGlzbzg4NTl4IHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aElzbzg4NTl4KSArICJcbiI7Cit0eHRPdXQgKz0gIiAgICAgIHpsaWIgc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoWmxpYikgKyAiXG4iOwordHh0T3V0ICs9ICIgIERlYnVnZ2luZyBtb2R1bGU6ICIgKyBib29sVG9TdHIod2l0aERlYnVnKSArICJcbiI7Cit0eHRPdXQgKz0gIiAgTWVtb3J5IGRlYnVnZ2luZzogIiArIGJvb2xUb1N0cih3aXRoTWVtRGVidWcpICsgIlxuIjsKK3R4dE91dCArPSAiIFJ1bnRpbWUgZGVidWdnaW5nOiAiICsgYm9vbFRvU3RyKHdpdGhSdW5EZWJ1ZykgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgUmVnZXhwIHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aFJlZ0V4cHMpICsgIlxuIjsKK3R4dE91dCArPSAiICAgIE1vZHVsZSBzdXBwb3J0OiAiICsgYm9vbFRvU3RyKHdpdGhNb2R1bGVzKSArICJcbiI7Cit0eHRPdXQgKz0gIiAgICAgIFRyZWUgc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoVHJlZSkgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgUmVhZGVyIHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aFJlYWRlcikgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgV3JpdGVyIHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aFdyaXRlcikgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgV2Fsa2VyIHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aFdhbGtlcikgKyAiXG4iOwordHh0T3V0ICs9ICIgICBQYXR0ZXJuIHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aFBhdHRlcm4pICsgIlxuIjsKK3R4dE91dCArPSAiICAgICAgUHVzaCBzdXBwb3J0OiAiICsgYm9vbFRvU3RyKHdpdGhQdXNoKSArICJcbiI7Cit0eHRPdXQgKz0gIlZhbGlkYXRpb24gc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoVmFsaWQpICsgIlxuIjsKK3R4dE91dCArPSAiICAgICAgU0FYMSBzdXBwb3J0OiAiICsgYm9vbFRvU3RyKHdpdGhTYXgxKSArICJcbiI7Cit0eHRPdXQgKz0gIiAgICBMZWdhY3kgc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoTGVnYWN5KSArICJcbiI7Cit0eHRPdXQgKz0gIiAgICBPdXRwdXQgc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoT3V0cHV0KSArICJcbiI7Cit0eHRPdXQgKz0gIlhNTCBTY2hlbWEgc3VwcG9ydDogIiArIGJvb2xUb1N0cih3aXRoU2NoZW1hcykgKyAiXG4iOwordHh0T3V0ICs9ICJTY2hlbWF0cm9uIHN1cHBvcnQ6ICIgKyBib29sVG9TdHIod2l0aFNjaGVtYXRyb24pICsgIlxuIjsKK3R4dE91dCArPSAiICAgUHl0aG9uIGJpbmRpbmdzOiAiICsgYm9vbFRvU3RyKHdpdGhQeXRob24pICsgIlxuIjsKK3R4dE91dCArPSAiXG4iOwordHh0T3V0ICs9ICJXaW4zMiBidWlsZCBjb25maWd1cmF0aW9uXG4iOwordHh0T3V0ICs9ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwordHh0T3V0ICs9ICIgICAgICAgICAgQ29tcGlsZXI6ICIgKyBjb21waWxlciArICJcbiI7CitpZiAoY29tcGlsZXIgPT0gIm1zdmMiKSB7CisJdHh0T3V0ICs9ICIgIEMtUnVudGltZSBvcHRpb246ICIgKyBjcnVudGltZSArICJcbiI7CisJdHh0T3V0ICs9ICIgICAgRW1iZWQgTWFuaWZlc3Q6ICIgKyBib29sVG9TdHIodmNtYW5pZmVzdCkgKyAiXG4iOworfSBlbHNlIGlmIChjb21waWxlciA9PSAiYmNiIikKKwl0eHRPdXQgKz0gIiAgIFVzZSBkeW5hbWljIFJUTDogIiArIGR5bnJ1bnRpbWUgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgIERlYnVnIHN5bWJvbHM6ICIgKyBib29sVG9TdHIoYnVpbGREZWJ1ZykgKyAiXG4iOwordHh0T3V0ICs9ICIgICAgU3RhdGljIHhtbGxpbnQ6ICIgKyBib29sVG9TdHIoYnVpbGRTdGF0aWMpICsgIlxuIjsKK3R4dE91dCArPSAiICAgIEluc3RhbGwgcHJlZml4OiAiICsgYnVpbGRQcmVmaXggKyAiXG4iOwordHh0T3V0ICs9ICIgICAgICBQdXQgdG9vbHMgaW46ICIgKyBidWlsZEJpblByZWZpeCArICJcbiI7Cit0eHRPdXQgKz0gIiAgICBQdXQgaGVhZGVycyBpbjogIiArIGJ1aWxkSW5jUHJlZml4ICsgIlxuIjsKK3R4dE91dCArPSAiUHV0IHN0YXRpYyBsaWJzIGluOiAiICsgYnVpbGRMaWJQcmVmaXggKyAiXG4iOwordHh0T3V0ICs9ICJQdXQgc2hhcmVkIGxpYnMgaW46ICIgKyBidWlsZFNvUHJlZml4ICsgIlxuIjsKK3R4dE91dCArPSAiICAgICAgSW5jbHVkZSBwYXRoOiAiICsgYnVpbGRJbmNsdWRlICsgIlxuIjsKK3R4dE91dCArPSAiICAgICAgICAgIExpYiBwYXRoOiAiICsgYnVpbGRMaWIgKyAiXG4iOworV1NjcmlwdC5FY2hvKHR4dE91dCk7CisKKy8vCisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43Ljcvd2luMzIvZGVmZ2VuLnhzbCBiL2xpYnhtbDItMi43Ljcvd2luMzIvZGVmZ2VuLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTk4ZmYxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy93aW4zMi9kZWZnZW4ueHNsCkBAIC0wLDAgKzEsMjg4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhLS0gCisJd2luMzIvZGVmZ2VuLnhzbAorCVRoaXMgc3R5bGVzaGVldCBpcyB1c2VkIHRvIHRyYW5zZm9ybSBkb2MvbGlieG1sMi1hcGkueG1sIGludG8gYSBwc2V1ZG8tc291cmNlLAorCXdoaWNoIGNhbiB0aGVuIGJlIHByZXByb2Nlc3NlZCB0byBnZXQgdGhlIC5ERUYgZmlsZSBmb3IgdGhlIE1pY3Jvc29mdCdzIGxpbmtlci4KKwkKKwlVc2UgYW55IFhTTFQgcHJvY2Vzc29yIHRvIHByb2R1Y2UgYSBmaWxlIGNhbGxlZCBsaWJ4bWwyLmRlZi5zcmMgaW4gdGhlIHdpbjMyCisJc3ViZGlyZWN0b3J5LCBmb3IgZXhhbXBsZSwgcnVuIHhzbHRwcm9jIGZyb20gdGhlIHdpbjMyIHN1YmRpcmVjdG9yeToKKwkKKwkgIHhzbHRwcm9jIC1vIGxpYnhtbDIuZGVmLnNyYyBkZWZnZW4ueHNsIC4uL2RvYy9saWJ4bWwyLWFwaS54bWwKKwkgIAorCU9uY2UgdGhhdCBmaW5pc2hlcywgcmVzdCBhc3N1cmVkLCB0aGUgTWFrZWZpbGUgd2lsbCBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGUKKwlnZW5lcmF0ZWQgZmlsZS4gCisKKwlBcHJpbCAyMDAzLCBJZ29yIFpsYXRrb3ZpYyA8aWdvckB6bGF0a292aWMuY29tPgorLS0+Cis8IURPQ1RZUEUgeHNsOnN0eWxlc2hlZXQgWyA8IUVOVElUWSBubCAnJiN4ZDsmI3hhOyc+IF0+Cis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+CisJPHhzbDpzdHJpcC1zcGFjZSBlbGVtZW50cz0iKiIvPgorCTx4c2w6b3V0cHV0IG1ldGhvZD0idGV4dCIvPgorCTx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgorCQk8eHNsOnRleHQ+I2RlZmluZSBMSUJYTUwyX0NPTVBJTElOR19NU0NDREVGJm5sOzwveHNsOnRleHQ+CisJCTx4c2w6dGV4dD4jaW5jbHVkZSAiLi4vaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oIiZubDs8L3hzbDp0ZXh0PgorCQk8eHNsOnRleHQ+TElCUkFSWSBsaWJ4bWwyJm5sOzwveHNsOnRleHQ+CisJCTx4c2w6dGV4dD5FWFBPUlRTJm5sOzwveHNsOnRleHQ+CisJCTx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIvYXBpL3N5bWJvbHMvKltzZWxmOjp2YXJpYWJsZSBvciBzZWxmOjpmdW5jdGlvbl0iPgorCQkJPCEtLSBCYXNpYyB0ZXN0cyAtLT4KKwkJCTx4c2w6aWYgdGVzdD0iQGZpbGUgPSAnYzE0biciPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0MxNE5fRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ2NhdGFsb2cnIj4KKwkJCQk8eHNsOnRleHQ+I2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICdkZWJ1Z1hNTCciPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICdET0NCcGFyc2VyJyI+CisJCQkJPHhzbDp0ZXh0PiNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVEJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iKEBmaWxlID0gJ0hUTUxwYXJzZXInKSAKKwkJCQkJb3IgKEBmaWxlID0gJ0hUTUx0cmVlJykiPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ25hbm9odHRwJyI+CisJCQkJPHhzbDp0ZXh0PiNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVEJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iQGZpbGUgPSAnbmFub2Z0cCciPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVEJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iKEBmaWxlID0gJ3JlbGF4bmcnKSAKKwkJCQkJb3IgKEBmaWxlID0gJ3htbHNjaGVtYXMnKSAKKwkJCQkJb3IgKEBmaWxlID0gJ3htbHNjaGVtYXN0eXBlcycpIj4KKwkJCQk8eHNsOnRleHQ+I2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICd4aW5jbHVkZSciPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICd4bGluayciPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX1hMSU5LX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICd4bWxhdXRvbWF0YSciPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSIoQGZpbGUgPSAneG1scmVnZXhwJykgCisJCQkJCW9yIChAZmlsZSA9ICd4bWx1bmljb2RlJykiPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVEJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iKEBmaWxlID0gJ3hwYXRoJykgCisJCQkJCW9yIChAZmlsZSA9ICd4cGF0aEludGVybmFscycpIj4KKwkJCQk8eHNsOnRleHQ+I2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVEJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iQGZpbGUgPSAneHBvaW50ZXInIj4KKwkJCQk8eHNsOnRleHQ+I2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPCEtLSBFeHRlbmRlZCB0ZXN0cyAtLT4KKwkJCTx4c2w6aWYgdGVzdD0iKEBuYW1lID0gJ2h0bWxEZWZhdWx0U0FYSGFuZGxlckluaXQnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ2h0bWxJbml0QXV0b0Nsb3NlJykgCisJCQkJCW9yIChAbmFtZSA9ICdodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ2luaXRodG1sRGVmYXVsdFNBWEhhbmRsZXInKQorCQkJCQlvciAoQG5hbWUgPSAneG1sSXNYSFRNTCcpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sSU9IVFRQT3BlblcnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbFJlZ2lzdGVySFRUUFBvc3RDYWxsYmFja3MnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElPSFRUUE1hdGNoJykKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElPSFRUUE9wZW4nKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElPSFRUUFJlYWQnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElPSFRUUENsb3NlJykiPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAbmFtZSA9ICdkb2NiRGVmYXVsdFNBWEhhbmRsZXJJbml0JykgCisJCQkJCW9yIChAbmFtZSA9ICdpbml0ZG9jYkRlZmF1bHRTQVhIYW5kbGVyJykiPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBuYW1lID0gJ3htbFZhbGlkQnVpbGRDb250ZW50TW9kZWwnIj4KKwkJCQk8eHNsOnRleHQ+I2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAbmFtZSA9ICd4bWxJT0ZUUE1hdGNoJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxJT0ZUUE9wZW4nKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElPRlRQUmVhZCcpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sSU9GVFBDbG9zZScpIj4KKwkJCQk8eHNsOnRleHQ+I2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAbmFtZSA9ICd4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYScpIj4KKwkJCQk8eHNsOnRleHQ+I2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSIoQG5hbWUgPSAneG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3QnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbFhQYXRoRGVidWdEdW1wQ29tcEV4cHInKSI+CisJCQkJPHhzbDp0ZXh0PiNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAbmFtZSA9ICd4bWxNYWxsb2NMb2MnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbE1hbGxvY0F0b21pY0xvYycpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sUmVhbGxvY0xvYycpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sTWVtU3RyZHVwTG9jJykiPgorCQkJCTx4c2w6dGV4dD4jaWZkZWYgREVCVUdfTUVNT1JZX0xPQ0FUSU9OJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTwhLS0gU3ltYm9sIC0tPgorCQkJPHhzbDpjaG9vc2U+CisJCQkJPHhzbDp3aGVuIHRlc3Q9IihAbmFtZSA9ICd4bWxNYWxsb2MnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxNYWxsb2NBdG9taWMnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxSZWFsbG9jJykgCisJCQkJCQlvciAoQG5hbWUgPSAneG1sRnJlZScpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbE1lbVN0cmR1cCcpIj4KKwkJCQkJPHhzbDp0ZXh0PiNpZmRlZiBMSUJYTUxfVEhSRUFEX0FMTE9DX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCQkJPHhzbDp0ZXh0Pl9fPC94c2w6dGV4dD4KKwkJCQkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJCQkJCTx4c2w6dGV4dD4mbmw7PC94c2w6dGV4dD4KKwkJCQkJPHhzbDp0ZXh0PiNlbHNlJm5sOzwveHNsOnRleHQ+CisJCQkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorCQkJCQk8eHNsOnRleHQ+IERBVEEmbmw7PC94c2w6dGV4dD4KKwkJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJCTwveHNsOndoZW4+CisJCQkJPHhzbDp3aGVuIHRlc3Q9IihAbmFtZSA9ICdkb2NiRGVmYXVsdFNBWEhhbmRsZXInKSAKKwkJCQkJCW9yIChAbmFtZSA9ICdodG1sRGVmYXVsdFNBWEhhbmRsZXInKSAKKwkJCQkJCW9yIChAbmFtZSA9ICdvbGRYTUxXRGNvbXBhdGliaWxpdHknKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxCdWZmZXJBbGxvY1NjaGVtZScpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbERlZmF1bHRCdWZmZXJTaXplJykgCisJCQkJCQlvciAoQG5hbWUgPSAneG1sRGVmYXVsdFNBWEhhbmRsZXInKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxEZWZhdWx0U0FYTG9jYXRvcicpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbERvVmFsaWRpdHlDaGVja2luZ0RlZmF1bHRWYWx1ZScpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbEdlbmVyaWNFcnJvcicpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbEdlbmVyaWNFcnJvckNvbnRleHQnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZScpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbEluZGVudFRyZWVPdXRwdXQnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxUcmVlSW5kZW50U3RyaW5nJykgCisJCQkJCQlvciAoQG5hbWUgPSAneG1sS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZScpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbExpbmVOdW1iZXJzRGVmYXVsdFZhbHVlJykgCisJCQkJCQlvciAoQG5hbWUgPSAneG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZScpIAorCQkJCQkJb3IgKEBuYW1lID0gJ3htbFBhcnNlckRlYnVnRW50aXRpZXMnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxQYXJzZXJWZXJzaW9uJykgCisJCQkJCQlvciAoQG5hbWUgPSAneG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxTYXZlTm9FbXB0eVRhZ3MnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0VmFsdWUnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxSZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUnKSAKKwkJCQkJCW9yIChAbmFtZSA9ICd4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZScpIj4KKwkJCQkJPHhzbDp0ZXh0PiNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQmbmw7PC94c2w6dGV4dD4KKwkJCQkJPHhzbDppZiB0ZXN0PSJAbmFtZSA9ICdkb2NiRGVmYXVsdFNBWEhhbmRsZXInIj4KKwkJCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJCQk8L3hzbDppZj4KKwkJCQkJPHhzbDppZiB0ZXN0PSJAbmFtZSA9ICdodG1sRGVmYXVsdFNBWEhhbmRsZXInIj4KKwkJCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJCQk8L3hzbDppZj4KKwkJCQkJPHhzbDp0ZXh0Pl9fPC94c2w6dGV4dD4KKwkJCQkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJCQkJCTx4c2w6dGV4dD4mbmw7PC94c2w6dGV4dD4KKwkJCQkJPHhzbDppZiB0ZXN0PSJAbmFtZSA9ICdkb2NiRGVmYXVsdFNBWEhhbmRsZXInIj4KKwkJCQkJCTx4c2w6dGV4dD4jZW5kaWYmbmw7PC94c2w6dGV4dD4KKwkJCQkJPC94c2w6aWY+CisJCQkJCTx4c2w6aWYgdGVzdD0iQG5hbWUgPSAnaHRtbERlZmF1bHRTQVhIYW5kbGVyJyI+CisJCQkJCQk8eHNsOnRleHQ+I2VuZGlmJm5sOzwveHNsOnRleHQ+CisJCQkJCTwveHNsOmlmPgorCQkJCQk8eHNsOnRleHQ+I2Vsc2Umbmw7PC94c2w6dGV4dD4KKwkJCQkJPHhzbDppZiB0ZXN0PSJAbmFtZSA9ICdkb2NiRGVmYXVsdFNBWEhhbmRsZXInIj4KKwkJCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJCQk8L3hzbDppZj4KKwkJCQkJPHhzbDppZiB0ZXN0PSJAbmFtZSA9ICdodG1sRGVmYXVsdFNBWEhhbmRsZXInIj4KKwkJCQkJCTx4c2w6dGV4dD4jaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRCZubDs8L3hzbDp0ZXh0PgorCQkJCQk8L3hzbDppZj4KKwkJCQkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisJCQkJCTx4c2w6dGV4dD4gREFUQSZubDs8L3hzbDp0ZXh0PgorCQkJCQk8eHNsOmlmIHRlc3Q9IkBuYW1lID0gJ2RvY2JEZWZhdWx0U0FYSGFuZGxlciciPgorCQkJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJCQk8L3hzbDppZj4KKwkJCQkJPHhzbDppZiB0ZXN0PSJAbmFtZSA9ICdodG1sRGVmYXVsdFNBWEhhbmRsZXInIj4KKwkJCQkJCTx4c2w6dGV4dD4jZW5kaWYmbmw7PC94c2w6dGV4dD4KKwkJCQkJPC94c2w6aWY+CisJCQkJCTx4c2w6dGV4dD4jZW5kaWYmbmw7PC94c2w6dGV4dD4KKwkJCQk8L3hzbDp3aGVuPgorCQkJCTx4c2w6b3RoZXJ3aXNlPgorCQkJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKwkJCQkJPHhzbDppZiB0ZXN0PSJzZWxmOjp2YXJpYWJsZSI+CisJCQkJCQk8eHNsOnRleHQ+IERBVEE8L3hzbDp0ZXh0PgorCQkJCQk8L3hzbDppZj4KKwkJCQkJPHhzbDp0ZXh0PiZubDs8L3hzbDp0ZXh0PgorCQkJCTwveHNsOm90aGVyd2lzZT4KKwkJCTwveHNsOmNob29zZT4KKwkJCTwhLS0gQmFzaWMgdGVzdHMgKGNsb3NlKSAtLT4KKwkJCTx4c2w6aWYgdGVzdD0iQGZpbGUgPSAnYzE0biciPgorCQkJCTx4c2w6dGV4dD4jZW5kaWYmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICdjYXRhbG9nJyI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ2RlYnVnWE1MJyI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ0RPQ0JwYXJzZXInIj4KKwkJCQk8eHNsOnRleHQ+I2VuZGlmJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iKEBmaWxlID0gJ0hUTUxwYXJzZXInKSAKKwkJCQkJb3IgKEBmaWxlID0gJ0hUTUx0cmVlJykiPgorCQkJCTx4c2w6dGV4dD4jZW5kaWYmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICduYW5vaHR0cCciPgorCQkJCTx4c2w6dGV4dD4jZW5kaWYmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSJAZmlsZSA9ICduYW5vZnRwJyI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAZmlsZSA9ICdyZWxheG5nJykgCisJCQkJCW9yIChAZmlsZSA9ICd4bWxzY2hlbWFzJykgCisJCQkJCW9yIChAZmlsZSA9ICd4bWxzY2hlbWFzdHlwZXMnKSI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ3hpbmNsdWRlJyI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ3hsaW5rJyI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ3htbGF1dG9tYXRhJyI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAZmlsZSA9ICd4bWxyZWdleHAnKSAKKwkJCQkJb3IgKEBmaWxlID0gJ3htbHVuaWNvZGUnKSI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAZmlsZSA9ICd4cGF0aCcpIAorCQkJCQlvciAoQGZpbGUgPSAneHBhdGhJbnRlcm5hbHMnKSI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBmaWxlID0gJ3hwb2ludGVyJyI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8IS0tIEV4dGVuZGVkIHRlc3RzIChjbG9zZSkgLS0+CisJCQk8eHNsOmlmIHRlc3Q9IihAbmFtZSA9ICdodG1sRGVmYXVsdFNBWEhhbmRsZXJJbml0JykgCisJCQkJCW9yIChAbmFtZSA9ICdodG1sSW5pdEF1dG9DbG9zZScpIAorCQkJCQlvciAoQG5hbWUgPSAnaHRtbENyZWF0ZUZpbGVQYXJzZXJDdHh0JykgCisJCQkJCW9yIChAbmFtZSA9ICdpbml0aHRtbERlZmF1bHRTQVhIYW5kbGVyJykKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElzWEhUTUwnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElPSFRUUE9wZW5XJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxSZWdpc3RlckhUVFBQb3N0Q2FsbGJhY2tzJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxJT0hUVFBNYXRjaCcpCisJCQkJCW9yIChAbmFtZSA9ICd4bWxJT0hUVFBPcGVuJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxJT0hUVFBSZWFkJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxJT0hUVFBDbG9zZScpIj4KKwkJCQk8eHNsOnRleHQ+I2VuZGlmJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iKEBuYW1lID0gJ2RvY2JEZWZhdWx0U0FYSGFuZGxlckluaXQnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ2luaXRkb2NiRGVmYXVsdFNBWEhhbmRsZXInKSI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IkBuYW1lID0gJ3htbFZhbGlkQnVpbGRDb250ZW50TW9kZWwnIj4KKwkJCQk8eHNsOnRleHQ+I2VuZGlmJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iKEBuYW1lID0gJ3htbElPRlRQTWF0Y2gnKSAKKwkJCQkJb3IgKEBuYW1lID0gJ3htbElPRlRQT3BlbicpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sSU9GVFBSZWFkJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxJT0ZUUENsb3NlJykiPgorCQkJCTx4c2w6dGV4dD4jZW5kaWYmbmw7PC94c2w6dGV4dD4KKwkJCTwveHNsOmlmPgorCQkJPHhzbDppZiB0ZXN0PSIoQG5hbWUgPSAneG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZScpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEnKSI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCQk8eHNsOmlmIHRlc3Q9IihAbmFtZSA9ICd4bWxYUGF0aERlYnVnRHVtcE9iamVjdCcpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcicpIj4KKwkJCQk8eHNsOnRleHQ+I2VuZGlmJm5sOzwveHNsOnRleHQ+CisJCQk8L3hzbDppZj4KKwkJCTx4c2w6aWYgdGVzdD0iKEBuYW1lID0gJ3htbE1hbGxvY0xvYycpIAorCQkJCQlvciAoQG5hbWUgPSAneG1sTWFsbG9jQXRvbWljTG9jJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxSZWFsbG9jTG9jJykgCisJCQkJCW9yIChAbmFtZSA9ICd4bWxNZW1TdHJkdXBMb2MnKSI+CisJCQkJPHhzbDp0ZXh0PiNlbmRpZiZubDs8L3hzbDp0ZXh0PgorCQkJPC94c2w6aWY+CisJCTwveHNsOmZvci1lYWNoPgorCTwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVldD4KKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy93aW4zMi9saWJ4bWwyLmRlZi5zcmMgYi9saWJ4bWwyLTIuNy43L3dpbjMyL2xpYnhtbDIuZGVmLnNyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTNmMjRhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy93aW4zMi9saWJ4bWwyLmRlZi5zcmMKQEAgLTAsMCArMSwzMTY0IEBACisjZGVmaW5lIExJQlhNTDJfQ09NUElMSU5HX01TQ0NERUYKKyNpbmNsdWRlICIuLi9pbmNsdWRlL2xpYnhtbC94bWx2ZXJzaW9uLmgiCitMSUJSQVJZIGxpYnhtbDIKK0VYUE9SVFMKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECitfX2RvY2JEZWZhdWx0U0FYSGFuZGxlcgorI2VuZGlmCisjZWxzZQorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK2RvY2JEZWZhdWx0U0FYSGFuZGxlciBEQVRBCisjZW5kaWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorZW1wdHlFeHAgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECitmb3JiaWRkZW5FeHAgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorX19odG1sRGVmYXVsdFNBWEhhbmRsZXIKKyNlbmRpZgorI2Vsc2UKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sRGVmYXVsdFNBWEhhbmRsZXIgREFUQQorI2VuZGlmCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK19fb2xkWE1MV0Rjb21wYXRpYmlsaXR5CisjZWxzZQorb2xkWE1MV0Rjb21wYXRpYmlsaXR5IERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxCdWZmZXJBbGxvY1NjaGVtZQorI2Vsc2UKK3htbEJ1ZmZlckFsbG9jU2NoZW1lIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxEZWZhdWx0QnVmZmVyU2l6ZQorI2Vsc2UKK3htbERlZmF1bHRCdWZmZXJTaXplIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxEZWZhdWx0U0FYSGFuZGxlcgorI2Vsc2UKK3htbERlZmF1bHRTQVhIYW5kbGVyIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxEZWZhdWx0U0FYTG9jYXRvcgorI2Vsc2UKK3htbERlZmF1bHRTQVhMb2NhdG9yIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZQorI2Vsc2UKK3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUKKyNlbHNlCit4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1RIUkVBRF9BTExPQ19FTkFCTEVECitfX3htbEZyZWUKKyNlbHNlCit4bWxGcmVlIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxHZW5lcmljRXJyb3IKKyNlbHNlCit4bWxHZW5lcmljRXJyb3IgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECitfX3htbEdlbmVyaWNFcnJvckNvbnRleHQKKyNlbHNlCit4bWxHZW5lcmljRXJyb3JDb250ZXh0IERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZQorI2Vsc2UKK3htbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxJbmRlbnRUcmVlT3V0cHV0CisjZWxzZQoreG1sSW5kZW50VHJlZU91dHB1dCBEQVRBCisjZW5kaWYKK3htbElzQmFzZUNoYXJHcm91cCBEQVRBCit4bWxJc0NoYXJHcm91cCBEQVRBCit4bWxJc0NvbWJpbmluZ0dyb3VwIERBVEEKK3htbElzRGlnaXRHcm91cCBEQVRBCit4bWxJc0V4dGVuZGVyR3JvdXAgREFUQQoreG1sSXNJZGVvZ3JhcGhpY0dyb3VwIERBVEEKK3htbElzUHViaWRDaGFyX3RhYiBEQVRBCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECitfX3htbEtlZXBCbGFua3NEZWZhdWx0VmFsdWUKKyNlbHNlCit4bWxLZWVwQmxhbmtzRGVmYXVsdFZhbHVlIERBVEEKKyNlbmRpZgoreG1sTGFzdEVycm9yIERBVEEKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK19feG1sTGluZU51bWJlcnNEZWZhdWx0VmFsdWUKKyNlbHNlCit4bWxMaW5lTnVtYmVyc0RlZmF1bHRWYWx1ZSBEQVRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK19feG1sTG9hZEV4dER0ZERlZmF1bHRWYWx1ZQorI2Vsc2UKK3htbExvYWRFeHREdGREZWZhdWx0VmFsdWUgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1RIUkVBRF9BTExPQ19FTkFCTEVECitfX3htbE1hbGxvYworI2Vsc2UKK3htbE1hbGxvYyBEQVRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0FMTE9DX0VOQUJMRUQKK19feG1sTWFsbG9jQXRvbWljCisjZWxzZQoreG1sTWFsbG9jQXRvbWljIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9USFJFQURfQUxMT0NfRU5BQkxFRAorX194bWxNZW1TdHJkdXAKKyNlbHNlCit4bWxNZW1TdHJkdXAgREFUQQorI2VuZGlmCit4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlIERBVEEKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK19feG1sUGFyc2VyRGVidWdFbnRpdGllcworI2Vsc2UKK3htbFBhcnNlckRlYnVnRW50aXRpZXMgREFUQQorI2VuZGlmCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUgREFUQQoreG1sUGFyc2VyTWF4RGVwdGggREFUQQorI2lmZGVmIExJQlhNTF9USFJFQURfRU5BQkxFRAorX194bWxQYXJzZXJWZXJzaW9uCisjZWxzZQoreG1sUGFyc2VyVmVyc2lvbiBEQVRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK19feG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0VmFsdWUKKyNlbHNlCit4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHRWYWx1ZSBEQVRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0FMTE9DX0VOQUJMRUQKK19feG1sUmVhbGxvYworI2Vsc2UKK3htbFJlYWxsb2MgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECitfX3htbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZQorI2Vsc2UKK3htbFJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSBEQVRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK19feG1sU2F2ZU5vRW1wdHlUYWdzCisjZWxzZQoreG1sU2F2ZU5vRW1wdHlUYWdzIERBVEEKKyNlbmRpZgoreG1sU3RyaW5nQ29tbWVudCBEQVRBCit4bWxTdHJpbmdUZXh0IERBVEEKK3htbFN0cmluZ1RleHROb2VuYyBEQVRBCit4bWxTdHJ1Y3R1cmVkRXJyb3IgREFUQQoreG1sU3RydWN0dXJlZEVycm9yQ29udGV4dCBEQVRBCisjaWZkZWYgTElCWE1MX1RIUkVBRF9FTkFCTEVECitfX3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZQorI2Vsc2UKK3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZSBEQVRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKK19feG1sVHJlZUluZGVudFN0cmluZworI2Vsc2UKK3htbFRyZWVJbmRlbnRTdHJpbmcgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTkFOIERBVEEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5JTkYgREFUQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUElORiBEQVRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitVVEY4VG9IdG1sCisjZW5kaWYKK1VURjhUb2lzb2xhdDEKK2F0dHJpYnV0ZQorYXR0cmlidXRlRGVjbAorY2RhdGFCbG9jaworY2hhcmFjdGVycworY2hlY2tOYW1lc3BhY2UKK2NvbW1lbnQKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECitkb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorZG9jYkRlZmF1bHRTQVhIYW5kbGVySW5pdAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorZG9jYkVuY29kZUVudGl0aWVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECitkb2NiRnJlZVBhcnNlckN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK2RvY2JQYXJzZUNodW5rCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECitkb2NiUGFyc2VEb2MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK2RvY2JQYXJzZURvY3VtZW50CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECitkb2NiUGFyc2VGaWxlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECitkb2NiU0FYUGFyc2VEb2MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKK2RvY2JTQVhQYXJzZUZpbGUKKyNlbmRpZgorZWxlbWVudERlY2wKK2VuZERvY3VtZW50CitlbmRFbGVtZW50CitlbnRpdHlEZWNsCitleHRlcm5hbFN1YnNldAorZ2V0Q29sdW1uTnVtYmVyCitnZXRFbnRpdHkKK2dldExpbmVOdW1iZXIKK2dldE5hbWVzcGFjZQorZ2V0UGFyYW1ldGVyRW50aXR5CitnZXRQdWJsaWNJZAorZ2V0U3lzdGVtSWQKK2dsb2JhbE5hbWVzcGFjZQoraGFzRXh0ZXJuYWxTdWJzZXQKK2hhc0ludGVybmFsU3Vic2V0CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbEF0dHJBbGxvd2VkCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sQXV0b0Nsb3NlVGFnCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxDdHh0UmVhZERvYworI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbEN0eHRSZWFkRmQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxDdHh0UmVhZEZpbGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxDdHh0UmVhZElPCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sQ3R4dFJlYWRNZW1vcnkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxDdHh0UmVzZXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxDdHh0VXNlT3B0aW9ucworI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbERlZmF1bHRTQVhIYW5kbGVySW5pdAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sRG9jQ29udGVudER1bXBPdXRwdXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxEb2NEdW1wCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sRG9jRHVtcE1lbW9yeQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbERvY0R1bXBNZW1vcnlGb3JtYXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxFbGVtZW50QWxsb3dlZEhlcmUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxFbGVtZW50U3RhdHVzSGVyZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbEVuY29kZUVudGl0aWVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sRW50aXR5TG9va3VwCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sRW50aXR5VmFsdWVMb29rdXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxGcmVlUGFyc2VyQ3R4dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbEdldE1ldGFFbmNvZGluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbEhhbmRsZU9taXR0ZWRFbGVtCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sSW5pdEF1dG9DbG9zZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbElzQXV0b0Nsb3NlZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbElzQm9vbGVhbkF0dHIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxJc1NjcmlwdEF0dHJpYnV0ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbE5ld0RvYworI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbE5ld0RvY05vRHRECisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sTmV3UGFyc2VyQ3R4dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbE5vZGVEdW1wCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sTm9kZUR1bXBGaWxlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sTm9kZUR1bXBGaWxlRm9ybWF0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sTm9kZUR1bXBGb3JtYXRPdXRwdXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxOb2RlRHVtcE91dHB1dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbE5vZGVTdGF0dXMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxQYXJzZUNoYXJSZWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxQYXJzZUNodW5rCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sUGFyc2VEb2MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxQYXJzZURvY3VtZW50CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sUGFyc2VFbGVtZW50CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sUGFyc2VFbnRpdHlSZWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxQYXJzZUZpbGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxSZWFkRG9jCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sUmVhZEZkCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sUmVhZEZpbGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxSZWFkSU8KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxSZWFkTWVtb3J5CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sU0FYUGFyc2VEb2MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxTQVhQYXJzZUZpbGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxTYXZlRmlsZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraHRtbFNhdmVGaWxlRW5jCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitodG1sU2F2ZUZpbGVGb3JtYXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxTZXRNZXRhRW5jb2RpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK2h0bWxUYWdMb29rdXAKKyNlbmRpZgoraWdub3JhYmxlV2hpdGVzcGFjZQoraW5pdEdlbmVyaWNFcnJvckRlZmF1bHRGdW5jCisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAoraW5pdGRvY2JEZWZhdWx0U0FYSGFuZGxlcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoraW5pdGh0bWxEZWZhdWx0U0FYSGFuZGxlcgorI2VuZGlmCitpbml0eG1sRGVmYXVsdFNBWEhhbmRsZXIKK2lucHV0UG9wCitpbnB1dFB1c2gKK2ludGVybmFsU3Vic2V0Citpc1N0YW5kYWxvbmUKK2lzb2xhdDFUb1VURjgKK25hbWVQb3AKK25hbWVQdXNoCituYW1lc3BhY2VEZWNsCitub2RlUG9wCitub2RlUHVzaAorbm90YXRpb25EZWNsCitwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KK3JlZmVyZW5jZQorcmVzb2x2ZUVudGl0eQorc2V0RG9jdW1lbnRMb2NhdG9yCitzZXROYW1lc3BhY2UKK3N0YXJ0RG9jdW1lbnQKK3N0YXJ0RWxlbWVudAordW5wYXJzZWRFbnRpdHlEZWNsCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3ZhbHVlUG9wCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAordmFsdWVQdXNoCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWExJTktfRU5BQkxFRAoreGxpbmtHZXREZWZhdWx0RGV0ZWN0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWExJTktfRU5BQkxFRAoreGxpbmtHZXREZWZhdWx0SGFuZGxlcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hMSU5LX0VOQUJMRUQKK3hsaW5rSXNMaW5rCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWExJTktfRU5BQkxFRAoreGxpbmtTZXREZWZhdWx0RGV0ZWN0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWExJTktfRU5BQkxFRAoreGxpbmtTZXREZWZhdWx0SGFuZGxlcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQUNhdGFsb2dBZGQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbEFDYXRhbG9nRHVtcAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQUNhdGFsb2dSZW1vdmUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbEFDYXRhbG9nUmVzb2x2ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQUNhdGFsb2dSZXNvbHZlUHVibGljCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxBQ2F0YWxvZ1Jlc29sdmVTeXN0ZW0KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbEFDYXRhbG9nUmVzb2x2ZVVSSQorI2VuZGlmCit4bWxBZGRBdHRyaWJ1dGVEZWNsCit4bWxBZGRDaGlsZAoreG1sQWRkQ2hpbGRMaXN0Cit4bWxBZGREb2NFbnRpdHkKK3htbEFkZER0ZEVudGl0eQoreG1sQWRkRWxlbWVudERlY2wKK3htbEFkZEVuY29kaW5nQWxpYXMKK3htbEFkZElECit4bWxBZGROZXh0U2libGluZworeG1sQWRkTm90YXRpb25EZWNsCit4bWxBZGRQcmV2U2libGluZworeG1sQWRkUmVmCit4bWxBZGRTaWJsaW5nCit4bWxBbGxvY091dHB1dEJ1ZmZlcgoreG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcgoreG1sQXR0clNlcmlhbGl6ZVR4dENvbnRlbnQKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFDb21waWxlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFHZXRJbml0U3RhdGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECit4bWxBdXRvbWF0YUlzRGV0ZXJtaW5pc3QKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECit4bWxBdXRvbWF0YU5ld0FsbFRyYW5zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFOZXdDb3VudFRyYW5zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFOZXdDb3VudFRyYW5zMgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQKK3htbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFOZXdDb3VudGVyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECit4bWxBdXRvbWF0YU5ld0Vwc2lsb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECit4bWxBdXRvbWF0YU5ld05lZ1RyYW5zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFOZXdPbmNlVHJhbnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECit4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECit4bWxBdXRvbWF0YU5ld1N0YXRlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0FVVE9NQVRBX0VOQUJMRUQKK3htbEF1dG9tYXRhU2V0RmluYWxTdGF0ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbEJvb2xUb1RleHQKKyNlbmRpZgoreG1sQnVmZmVyQWRkCit4bWxCdWZmZXJBZGRIZWFkCit4bWxCdWZmZXJDQ2F0Cit4bWxCdWZmZXJDYXQKK3htbEJ1ZmZlckNvbnRlbnQKK3htbEJ1ZmZlckNyZWF0ZQoreG1sQnVmZmVyQ3JlYXRlU2l6ZQoreG1sQnVmZmVyQ3JlYXRlU3RhdGljCit4bWxCdWZmZXJEdW1wCit4bWxCdWZmZXJFbXB0eQoreG1sQnVmZmVyRnJlZQoreG1sQnVmZmVyR3JvdworeG1sQnVmZmVyTGVuZ3RoCit4bWxCdWZmZXJSZXNpemUKK3htbEJ1ZmZlclNldEFsbG9jYXRpb25TY2hlbWUKK3htbEJ1ZmZlclNocmluaworeG1sQnVmZmVyV3JpdGVDSEFSCit4bWxCdWZmZXJXcml0ZUNoYXIKK3htbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nCit4bWxCdWlsZFFOYW1lCit4bWxCdWlsZFJlbGF0aXZlVVJJCit4bWxCdWlsZFVSSQoreG1sQnl0ZUNvbnN1bWVkCisjaWZkZWYgTElCWE1MX0MxNE5fRU5BQkxFRAoreG1sQzE0TkRvY0R1bXBNZW1vcnkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DMTROX0VOQUJMRUQKK3htbEMxNE5Eb2NTYXZlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQzE0Tl9FTkFCTEVECit4bWxDMTRORG9jU2F2ZVRvCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQzE0Tl9FTkFCTEVECit4bWxDMTRORXhlY3V0ZQorI2VuZGlmCit4bWxDYW5vbmljUGF0aAorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbENhdGFsb2dBZGQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbENhdGFsb2dBZGRMb2NhbAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ0NsZWFudXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbENhdGFsb2dDb252ZXJ0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxDYXRhbG9nRHVtcAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ0ZyZWVMb2NhbAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ0dldERlZmF1bHRzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxDYXRhbG9nR2V0UHVibGljCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxDYXRhbG9nR2V0U3lzdGVtCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxDYXRhbG9nSXNFbXB0eQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ0xvY2FsUmVzb2x2ZVVSSQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ1JlbW92ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ1Jlc29sdmUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbENhdGFsb2dSZXNvbHZlUHVibGljCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxDYXRhbG9nUmVzb2x2ZVN5c3RlbQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ1Jlc29sdmVVUkkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbENhdGFsb2dTZXREZWJ1ZworI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sQ2F0YWxvZ1NldERlZmF1bHRQcmVmZXIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbENhdGFsb2dTZXREZWZhdWx0cworI2VuZGlmCit4bWxDaGFyRW5jQ2xvc2VGdW5jCit4bWxDaGFyRW5jRmlyc3RMaW5lCit4bWxDaGFyRW5jSW5GdW5jCit4bWxDaGFyRW5jT3V0RnVuYworeG1sQ2hhckluUmFuZ2UKK3htbENoYXJTdHJkdXAKK3htbENoYXJTdHJuZHVwCit4bWxDaGVja0ZpbGVuYW1lCit4bWxDaGVja0hUVFBJbnB1dAoreG1sQ2hlY2tMYW5ndWFnZUlECit4bWxDaGVja1VURjgKK3htbENoZWNrVmVyc2lvbgoreG1sQ2hpbGRFbGVtZW50Q291bnQKK3htbENsZWFudXBDaGFyRW5jb2RpbmdIYW5kbGVycworeG1sQ2xlYW51cEVuY29kaW5nQWxpYXNlcworeG1sQ2xlYW51cEdsb2JhbHMKK3htbENsZWFudXBJbnB1dENhbGxiYWNrcworeG1sQ2xlYW51cE1lbW9yeQoreG1sQ2xlYW51cE91dHB1dENhbGxiYWNrcworeG1sQ2xlYW51cFBhcnNlcgoreG1sQ2xlYW51cFByZWRlZmluZWRFbnRpdGllcworeG1sQ2xlYW51cFRocmVhZHMKK3htbENsZWFyTm9kZUluZm9TZXEKK3htbENsZWFyUGFyc2VyQ3R4dAorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbENvbnZlcnRTR01MQ2F0YWxvZworI2VuZGlmCit4bWxDb3B5QXR0cmlidXRlVGFibGUKK3htbENvcHlDaGFyCit4bWxDb3B5Q2hhck11bHRpQnl0ZQoreG1sQ29weURvYworeG1sQ29weURvY0VsZW1lbnRDb250ZW50Cit4bWxDb3B5RHRkCit4bWxDb3B5RWxlbWVudENvbnRlbnQKK3htbENvcHlFbGVtZW50VGFibGUKK3htbENvcHlFbnRpdGllc1RhYmxlCit4bWxDb3B5RW51bWVyYXRpb24KK3htbENvcHlFcnJvcgoreG1sQ29weU5hbWVzcGFjZQoreG1sQ29weU5hbWVzcGFjZUxpc3QKK3htbENvcHlOb2RlCit4bWxDb3B5Tm9kZUxpc3QKK3htbENvcHlOb3RhdGlvblRhYmxlCit4bWxDb3B5UHJvcAoreG1sQ29weVByb3BMaXN0Cit4bWxDcmVhdGVEb2NQYXJzZXJDdHh0Cit4bWxDcmVhdGVFbnRpdGllc1RhYmxlCit4bWxDcmVhdGVFbnRpdHlQYXJzZXJDdHh0Cit4bWxDcmVhdGVFbnVtZXJhdGlvbgoreG1sQ3JlYXRlRmlsZVBhcnNlckN0eHQKK3htbENyZWF0ZUlPUGFyc2VyQ3R4dAoreG1sQ3JlYXRlSW50U3Vic2V0Cit4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0Cit4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dAoreG1sQ3JlYXRlVVJJCit4bWxDcmVhdGVVUkxQYXJzZXJDdHh0Cit4bWxDdHh0R2V0TGFzdEVycm9yCit4bWxDdHh0UmVhZERvYworeG1sQ3R4dFJlYWRGZAoreG1sQ3R4dFJlYWRGaWxlCit4bWxDdHh0UmVhZElPCit4bWxDdHh0UmVhZE1lbW9yeQoreG1sQ3R4dFJlc2V0Cit4bWxDdHh0UmVzZXRMYXN0RXJyb3IKK3htbEN0eHRSZXNldFB1c2gKK3htbEN0eHRVc2VPcHRpb25zCit4bWxDdXJyZW50Q2hhcgoreG1sRE9NV3JhcEFkb3B0Tm9kZQoreG1sRE9NV3JhcENsb25lTm9kZQoreG1sRE9NV3JhcEZyZWVDdHh0Cit4bWxET01XcmFwTmV3Q3R4dAoreG1sRE9NV3JhcFJlY29uY2lsZU5hbWVzcGFjZXMKK3htbERPTVdyYXBSZW1vdmVOb2RlCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbERlYnVnQ2hlY2tEb2N1bWVudAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbERlYnVnRHVtcEF0dHIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxEZWJ1Z0R1bXBBdHRyTGlzdAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbERlYnVnRHVtcERURAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbERlYnVnRHVtcERvY3VtZW50CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sRGVidWdEdW1wRG9jdW1lbnRIZWFkCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sRGVidWdEdW1wRW50aXRpZXMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxEZWJ1Z0R1bXBOb2RlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sRGVidWdEdW1wTm9kZUxpc3QKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxEZWJ1Z0R1bXBPbmVOb2RlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sRGVidWdEdW1wU3RyaW5nCisjZW5kaWYKK3htbERlY29kZUVudGl0aWVzCit4bWxEZWZhdWx0U0FYSGFuZGxlckluaXQKK3htbERlbEVuY29kaW5nQWxpYXMKK3htbERlcmVnaXN0ZXJOb2RlRGVmYXVsdAoreG1sRGV0ZWN0Q2hhckVuY29kaW5nCit4bWxEaWN0Q2xlYW51cAoreG1sRGljdENyZWF0ZQoreG1sRGljdENyZWF0ZVN1YgoreG1sRGljdEV4aXN0cworeG1sRGljdEZyZWUKK3htbERpY3RMb29rdXAKK3htbERpY3RPd25zCit4bWxEaWN0UUxvb2t1cAoreG1sRGljdFJlZmVyZW5jZQoreG1sRGljdFNpemUKK3htbERsbE1haW4KK3htbERvY0NvcHlOb2RlCit4bWxEb2NDb3B5Tm9kZUxpc3QKK3htbERvY0R1bXAKK3htbERvY0R1bXBGb3JtYXRNZW1vcnkKK3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMKK3htbERvY0R1bXBNZW1vcnkKK3htbERvY0R1bXBNZW1vcnlFbmMKK3htbERvY0Zvcm1hdER1bXAKK3htbERvY0dldFJvb3RFbGVtZW50Cit4bWxEb2NTZXRSb290RWxlbWVudAoreG1sRHVtcEF0dHJpYnV0ZURlY2wKK3htbER1bXBBdHRyaWJ1dGVUYWJsZQoreG1sRHVtcEVsZW1lbnREZWNsCit4bWxEdW1wRWxlbWVudFRhYmxlCit4bWxEdW1wRW50aXRpZXNUYWJsZQoreG1sRHVtcEVudGl0eURlY2wKK3htbER1bXBOb3RhdGlvbkRlY2wKK3htbER1bXBOb3RhdGlvblRhYmxlCit4bWxFbGVtRHVtcAoreG1sRW5jb2RlRW50aXRpZXMKK3htbEVuY29kZUVudGl0aWVzUmVlbnRyYW50Cit4bWxFbmNvZGVTcGVjaWFsQ2hhcnMKK3htbEVyck1lbW9yeQorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sRXhwQ3R4dE5iQ29ucworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxFeHBDdHh0TmJOb2RlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxFeHBEdW1wCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cEV4cERlcml2ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxFeHBGcmVlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cEZyZWVDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cEdldExhbmd1YWdlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cEdldFN0YXJ0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cElzTmlsbGFibGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sRXhwTWF4VG9rZW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sRXhwTmV3QXRvbQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxFeHBOZXdDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cE5ld09yCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cE5ld1JhbmdlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cE5ld1NlcQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxFeHBQYXJzZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxFeHBSZWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sRXhwU3RyaW5nRGVyaXZlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbEV4cFN1YnN1bWUKKyNlbmRpZgoreG1sRmlsZUNsb3NlCit4bWxGaWxlTWF0Y2gKK3htbEZpbGVPcGVuCit4bWxGaWxlUmVhZAoreG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIKK3htbEZpcnN0RWxlbWVudENoaWxkCit4bWxGcmVlQXR0cmlidXRlVGFibGUKKyNpZmRlZiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRAoreG1sRnJlZUF1dG9tYXRhCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxGcmVlQ2F0YWxvZworI2VuZGlmCit4bWxGcmVlRG9jCit4bWxGcmVlRG9jRWxlbWVudENvbnRlbnQKK3htbEZyZWVEdGQKK3htbEZyZWVFbGVtZW50Q29udGVudAoreG1sRnJlZUVsZW1lbnRUYWJsZQoreG1sRnJlZUVudGl0aWVzVGFibGUKK3htbEZyZWVFbnVtZXJhdGlvbgoreG1sRnJlZUlEVGFibGUKK3htbEZyZWVJbnB1dFN0cmVhbQoreG1sRnJlZU11dGV4Cit4bWxGcmVlTm9kZQoreG1sRnJlZU5vZGVMaXN0Cit4bWxGcmVlTm90YXRpb25UYWJsZQoreG1sRnJlZU5zCit4bWxGcmVlTnNMaXN0Cit4bWxGcmVlUGFyc2VyQ3R4dAoreG1sRnJlZVBhcnNlcklucHV0QnVmZmVyCit4bWxGcmVlUGF0dGVybgoreG1sRnJlZVBhdHRlcm5MaXN0Cit4bWxGcmVlUHJvcAoreG1sRnJlZVByb3BMaXN0Cit4bWxGcmVlUk11dGV4Cit4bWxGcmVlUmVmVGFibGUKK3htbEZyZWVTdHJlYW1DdHh0Cit4bWxGcmVlVGV4dFJlYWRlcgoreG1sRnJlZVRleHRXcml0ZXIKK3htbEZyZWVVUkkKK3htbEZyZWVWYWxpZEN0eHQKK3htbEdjTWVtR2V0Cit4bWxHY01lbVNldHVwCit4bWxHZXRCdWZmZXJBbGxvY2F0aW9uU2NoZW1lCit4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyCit4bWxHZXRDaGFyRW5jb2RpbmdOYW1lCit4bWxHZXRDb21wcmVzc01vZGUKK3htbEdldERvY0NvbXByZXNzTW9kZQoreG1sR2V0RG9jRW50aXR5Cit4bWxHZXREdGRBdHRyRGVzYworeG1sR2V0RHRkRWxlbWVudERlc2MKK3htbEdldER0ZEVudGl0eQoreG1sR2V0RHRkTm90YXRpb25EZXNjCit4bWxHZXREdGRRQXR0ckRlc2MKK3htbEdldER0ZFFFbGVtZW50RGVzYworeG1sR2V0RW5jb2RpbmdBbGlhcworeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIKK3htbEdldEZlYXR1cmUKK3htbEdldEZlYXR1cmVzTGlzdAoreG1sR2V0R2xvYmFsU3RhdGUKK3htbEdldElECit4bWxHZXRJbnRTdWJzZXQKK3htbEdldExhc3RDaGlsZAoreG1sR2V0TGFzdEVycm9yCit4bWxHZXRMaW5lTm8KK3htbEdldE5vTnNQcm9wCit4bWxHZXROb2RlUGF0aAoreG1sR2V0TnNMaXN0Cit4bWxHZXROc1Byb3AKK3htbEdldFBhcmFtZXRlckVudGl0eQoreG1sR2V0UHJlZGVmaW5lZEVudGl0eQoreG1sR2V0UHJvcAoreG1sR2V0UmVmcworeG1sR2V0VGhyZWFkSWQKK3htbEdldFVURjhDaGFyCit4bWxIYW5kbGVFbnRpdHkKK3htbEhhc0ZlYXR1cmUKK3htbEhhc05zUHJvcAoreG1sSGFzUHJvcAoreG1sSGFzaEFkZEVudHJ5Cit4bWxIYXNoQWRkRW50cnkyCit4bWxIYXNoQWRkRW50cnkzCit4bWxIYXNoQ29weQoreG1sSGFzaENyZWF0ZQoreG1sSGFzaENyZWF0ZURpY3QKK3htbEhhc2hGcmVlCit4bWxIYXNoTG9va3VwCit4bWxIYXNoTG9va3VwMgoreG1sSGFzaExvb2t1cDMKK3htbEhhc2hRTG9va3VwCit4bWxIYXNoUUxvb2t1cDIKK3htbEhhc2hRTG9va3VwMworeG1sSGFzaFJlbW92ZUVudHJ5Cit4bWxIYXNoUmVtb3ZlRW50cnkyCit4bWxIYXNoUmVtb3ZlRW50cnkzCit4bWxIYXNoU2NhbgoreG1sSGFzaFNjYW4zCit4bWxIYXNoU2NhbkZ1bGwKK3htbEhhc2hTY2FuRnVsbDMKK3htbEhhc2hTaXplCit4bWxIYXNoVXBkYXRlRW50cnkKK3htbEhhc2hVcGRhdGVFbnRyeTIKK3htbEhhc2hVcGRhdGVFbnRyeTMKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKK3htbElPRlRQQ2xvc2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sSU9GVFBNYXRjaAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECit4bWxJT0ZUUE9wZW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sSU9GVFBSZWFkCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECit4bWxJT0hUVFBDbG9zZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoreG1sSU9IVFRQTWF0Y2gKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK3htbElPSFRUUE9wZW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK3htbElPSFRUUE9wZW5XCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECit4bWxJT0hUVFBSZWFkCisjZW5kaWYKK3htbElPUGFyc2VEVEQKK3htbEluaXRDaGFyRW5jb2RpbmdIYW5kbGVycworeG1sSW5pdEdsb2JhbHMKK3htbEluaXRNZW1vcnkKK3htbEluaXROb2RlSW5mb1NlcQoreG1sSW5pdFBhcnNlcgoreG1sSW5pdFBhcnNlckN0eHQKK3htbEluaXRUaHJlYWRzCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sSW5pdGlhbGl6ZUNhdGFsb2cKKyNlbmRpZgoreG1sSW5pdGlhbGl6ZUdsb2JhbFN0YXRlCit4bWxJbml0aWFsaXplUHJlZGVmaW5lZEVudGl0aWVzCit4bWxJc0Jhc2VDaGFyCit4bWxJc0JsYW5rCit4bWxJc0JsYW5rTm9kZQoreG1sSXNDaGFyCit4bWxJc0NvbWJpbmluZworeG1sSXNEaWdpdAoreG1sSXNFeHRlbmRlcgoreG1sSXNJRAoreG1sSXNJZGVvZ3JhcGhpYworeG1sSXNMZXR0ZXIKK3htbElzTWFpblRocmVhZAoreG1sSXNNaXhlZEVsZW1lbnQKK3htbElzUHViaWRDaGFyCit4bWxJc1JlZgorI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKK3htbElzWEhUTUwKKyNlbmRpZgoreG1sS2VlcEJsYW5rc0RlZmF1bHQKK3htbExhc3RFbGVtZW50Q2hpbGQKK3htbExpbmVOdW1iZXJzRGVmYXVsdAoreG1sTGlua0dldERhdGEKK3htbExpc3RBcHBlbmQKK3htbExpc3RDbGVhcgoreG1sTGlzdENvcHkKK3htbExpc3RDcmVhdGUKK3htbExpc3REZWxldGUKK3htbExpc3REdXAKK3htbExpc3RFbXB0eQoreG1sTGlzdEVuZAoreG1sTGlzdEZyb250Cit4bWxMaXN0SW5zZXJ0Cit4bWxMaXN0TWVyZ2UKK3htbExpc3RQb3BCYWNrCit4bWxMaXN0UG9wRnJvbnQKK3htbExpc3RQdXNoQmFjaworeG1sTGlzdFB1c2hGcm9udAoreG1sTGlzdFJlbW92ZUFsbAoreG1sTGlzdFJlbW92ZUZpcnN0Cit4bWxMaXN0UmVtb3ZlTGFzdAoreG1sTGlzdFJldmVyc2UKK3htbExpc3RSZXZlcnNlU2VhcmNoCit4bWxMaXN0UmV2ZXJzZVdhbGsKK3htbExpc3RTZWFyY2gKK3htbExpc3RTaXplCit4bWxMaXN0U29ydAoreG1sTGlzdFdhbGsKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxMb2FkQUNhdGFsb2cKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKK3htbExvYWRDYXRhbG9nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQ0FUQUxPR19FTkFCTEVECit4bWxMb2FkQ2F0YWxvZ3MKKyNlbmRpZgoreG1sTG9hZEV4dGVybmFsRW50aXR5CisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sTG9hZFNHTUxTdXBlckNhdGFsb2cKKyNlbmRpZgoreG1sTG9ja0xpYnJhcnkKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sTHNDb3VudE5vZGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxMc09uZU5vZGUKKyNlbmRpZgorI2lmZGVmIERFQlVHX01FTU9SWV9MT0NBVElPTgoreG1sTWFsbG9jQXRvbWljTG9jCisjZW5kaWYKKyNpZmRlZiBERUJVR19NRU1PUllfTE9DQVRJT04KK3htbE1hbGxvY0xvYworI2VuZGlmCit4bWxNZW1CbG9ja3MKK3htbE1lbURpc3BsYXkKK3htbE1lbURpc3BsYXlMYXN0Cit4bWxNZW1GcmVlCit4bWxNZW1HZXQKK3htbE1lbU1hbGxvYworeG1sTWVtUmVhbGxvYworeG1sTWVtU2V0dXAKK3htbE1lbVNob3cKKyNpZmRlZiBERUJVR19NRU1PUllfTE9DQVRJT04KK3htbE1lbVN0cmR1cExvYworI2VuZGlmCit4bWxNZW1Vc2VkCit4bWxNZW1vcnlEdW1wCit4bWxNZW1vcnlTdHJkdXAKK3htbE1vZHVsZUNsb3NlCit4bWxNb2R1bGVGcmVlCit4bWxNb2R1bGVPcGVuCit4bWxNb2R1bGVTeW1ib2wKK3htbE11dGV4TG9jaworeG1sTXV0ZXhVbmxvY2sKK3htbE5hbWVzcGFjZVBhcnNlTkNOYW1lCit4bWxOYW1lc3BhY2VQYXJzZU5TRGVmCit4bWxOYW1lc3BhY2VQYXJzZVFOYW1lCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECit4bWxOYW5vRlRQQ2hlY2tSZXNwb25zZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECit4bWxOYW5vRlRQQ2xlYW51cAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECit4bWxOYW5vRlRQQ2xvc2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUENsb3NlQ29ubmVjdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECit4bWxOYW5vRlRQQ29ubmVjdAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0ZUUF9FTkFCTEVECit4bWxOYW5vRlRQQ29ubmVjdFRvCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKK3htbE5hbm9GVFBDd2QKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUERlbGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUEZyZWVDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKK3htbE5hbm9GVFBHZXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUEdldENvbm5lY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUEdldFJlc3BvbnNlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKK3htbE5hbm9GVFBHZXRTb2NrZXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUEluaXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUExpc3QKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUE5ld0N0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUE9wZW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUFByb3h5CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKK3htbE5hbm9GVFBRdWl0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKK3htbE5hbm9GVFBSZWFkCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKK3htbE5hbm9GVFBTY2FuUHJveHkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAoreG1sTmFub0ZUUFVwZGF0ZVVSTAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBBdXRoSGVhZGVyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECit4bWxOYW5vSFRUUENsZWFudXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKK3htbE5hbm9IVFRQQ2xvc2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKK3htbE5hbm9IVFRQQ29udGVudExlbmd0aAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBFbmNvZGluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBGZXRjaAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBJbml0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECit4bWxOYW5vSFRUUE1ldGhvZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBNZXRob2RSZWRpcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBNaW1lVHlwZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBPcGVuCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECit4bWxOYW5vSFRUUE9wZW5SZWRpcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBSZWFkCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECit4bWxOYW5vSFRUUFJlZGlyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECit4bWxOYW5vSFRUUFJldHVybkNvZGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKK3htbE5hbm9IVFRQU2F2ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAoreG1sTmFub0hUVFBTY2FuUHJveHkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECit4bWxOZXdBdXRvbWF0YQorI2VuZGlmCit4bWxOZXdDRGF0YUJsb2NrCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sTmV3Q2F0YWxvZworI2VuZGlmCit4bWxOZXdDaGFyRW5jb2RpbmdIYW5kbGVyCit4bWxOZXdDaGFyUmVmCit4bWxOZXdDaGlsZAoreG1sTmV3Q29tbWVudAoreG1sTmV3RG9jCit4bWxOZXdEb2NDb21tZW50Cit4bWxOZXdEb2NFbGVtZW50Q29udGVudAoreG1sTmV3RG9jRnJhZ21lbnQKK3htbE5ld0RvY05vZGUKK3htbE5ld0RvY05vZGVFYXROYW1lCit4bWxOZXdEb2NQSQoreG1sTmV3RG9jUHJvcAoreG1sTmV3RG9jUmF3Tm9kZQoreG1sTmV3RG9jVGV4dAoreG1sTmV3RG9jVGV4dExlbgoreG1sTmV3RHRkCit4bWxOZXdFbGVtZW50Q29udGVudAoreG1sTmV3RW50aXR5Cit4bWxOZXdFbnRpdHlJbnB1dFN0cmVhbQoreG1sTmV3R2xvYmFsTnMKK3htbE5ld0lPSW5wdXRTdHJlYW0KK3htbE5ld0lucHV0RnJvbUZpbGUKK3htbE5ld0lucHV0U3RyZWFtCit4bWxOZXdNdXRleAoreG1sTmV3Tm9kZQoreG1sTmV3Tm9kZUVhdE5hbWUKK3htbE5ld05zCit4bWxOZXdOc1Byb3AKK3htbE5ld05zUHJvcEVhdE5hbWUKK3htbE5ld1BJCit4bWxOZXdQYXJzZXJDdHh0Cit4bWxOZXdQcm9wCit4bWxOZXdSTXV0ZXgKK3htbE5ld1JlZmVyZW5jZQoreG1sTmV3U3RyaW5nSW5wdXRTdHJlYW0KK3htbE5ld1RleHQKK3htbE5ld1RleHRDaGlsZAoreG1sTmV3VGV4dExlbgoreG1sTmV3VGV4dFJlYWRlcgoreG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lCit4bWxOZXdUZXh0V3JpdGVyCit4bWxOZXdUZXh0V3JpdGVyRG9jCit4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUKK3htbE5ld1RleHRXcml0ZXJNZW1vcnkKK3htbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyCit4bWxOZXdUZXh0V3JpdGVyVHJlZQoreG1sTmV3VmFsaWRDdHh0Cit4bWxOZXh0Q2hhcgoreG1sTmV4dEVsZW1lbnRTaWJsaW5nCit4bWxOb05ldEV4dGVybmFsRW50aXR5TG9hZGVyCit4bWxOb2RlQWRkQ29udGVudAoreG1sTm9kZUFkZENvbnRlbnRMZW4KK3htbE5vZGVCdWZHZXRDb250ZW50Cit4bWxOb2RlRHVtcAoreG1sTm9kZUR1bXBPdXRwdXQKK3htbE5vZGVHZXRCYXNlCit4bWxOb2RlR2V0Q29udGVudAoreG1sTm9kZUdldExhbmcKK3htbE5vZGVHZXRTcGFjZVByZXNlcnZlCit4bWxOb2RlSXNUZXh0Cit4bWxOb2RlTGlzdEdldFJhd1N0cmluZworeG1sTm9kZUxpc3RHZXRTdHJpbmcKK3htbE5vZGVTZXRCYXNlCit4bWxOb2RlU2V0Q29udGVudAoreG1sTm9kZVNldENvbnRlbnRMZW4KK3htbE5vZGVTZXRMYW5nCit4bWxOb2RlU2V0TmFtZQoreG1sTm9kZVNldFNwYWNlUHJlc2VydmUKK3htbE5vcm1hbGl6ZVVSSVBhdGgKK3htbE5vcm1hbGl6ZVdpbmRvd3NQYXRoCit4bWxPdXRwdXRCdWZmZXJDbG9zZQoreG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyCit4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZAoreG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZQoreG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUKK3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAoreG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8KK3htbE91dHB1dEJ1ZmZlckZsdXNoCit4bWxPdXRwdXRCdWZmZXJXcml0ZQoreG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUKK3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nCit4bWxQYXJzZUF0dFZhbHVlCit4bWxQYXJzZUF0dHJpYnV0ZQoreG1sUGFyc2VBdHRyaWJ1dGVMaXN0RGVjbAoreG1sUGFyc2VBdHRyaWJ1dGVUeXBlCit4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkKK3htbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeVJlY292ZXIKK3htbFBhcnNlQ0RTZWN0CisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAoreG1sUGFyc2VDYXRhbG9nRmlsZQorI2VuZGlmCit4bWxQYXJzZUNoYXJEYXRhCit4bWxQYXJzZUNoYXJFbmNvZGluZworeG1sUGFyc2VDaGFyUmVmCit4bWxQYXJzZUNodW5rCit4bWxQYXJzZUNvbW1lbnQKK3htbFBhcnNlQ29udGVudAoreG1sUGFyc2VDdHh0RXh0ZXJuYWxFbnRpdHkKK3htbFBhcnNlRFRECit4bWxQYXJzZURlZmF1bHREZWNsCit4bWxQYXJzZURvYworeG1sUGFyc2VEb2NUeXBlRGVjbAoreG1sUGFyc2VEb2N1bWVudAoreG1sUGFyc2VFbGVtZW50Cit4bWxQYXJzZUVsZW1lbnRDaGlsZHJlbkNvbnRlbnREZWNsCit4bWxQYXJzZUVsZW1lbnRDb250ZW50RGVjbAoreG1sUGFyc2VFbGVtZW50RGVjbAoreG1sUGFyc2VFbGVtZW50TWl4ZWRDb250ZW50RGVjbAoreG1sUGFyc2VFbmNOYW1lCit4bWxQYXJzZUVuY29kaW5nRGVjbAoreG1sUGFyc2VFbmRUYWcKK3htbFBhcnNlRW50aXR5Cit4bWxQYXJzZUVudGl0eURlY2wKK3htbFBhcnNlRW50aXR5UmVmCit4bWxQYXJzZUVudGl0eVZhbHVlCit4bWxQYXJzZUVudW1lcmF0ZWRUeXBlCit4bWxQYXJzZUVudW1lcmF0aW9uVHlwZQoreG1sUGFyc2VFeHRQYXJzZWRFbnQKK3htbFBhcnNlRXh0ZXJuYWxFbnRpdHkKK3htbFBhcnNlRXh0ZXJuYWxJRAoreG1sUGFyc2VFeHRlcm5hbFN1YnNldAoreG1sUGFyc2VGaWxlCit4bWxQYXJzZUluTm9kZUNvbnRleHQKK3htbFBhcnNlTWFya3VwRGVjbAoreG1sUGFyc2VNZW1vcnkKK3htbFBhcnNlTWlzYworeG1sUGFyc2VOYW1lCit4bWxQYXJzZU5hbWVzcGFjZQoreG1sUGFyc2VObXRva2VuCit4bWxQYXJzZU5vdGF0aW9uRGVjbAoreG1sUGFyc2VOb3RhdGlvblR5cGUKK3htbFBhcnNlUEVSZWZlcmVuY2UKK3htbFBhcnNlUEkKK3htbFBhcnNlUElUYXJnZXQKK3htbFBhcnNlUHViaWRMaXRlcmFsCit4bWxQYXJzZVF1b3RlZFN0cmluZworeG1sUGFyc2VSZWZlcmVuY2UKK3htbFBhcnNlU0REZWNsCit4bWxQYXJzZVN0YXJ0VGFnCit4bWxQYXJzZVN5c3RlbUxpdGVyYWwKK3htbFBhcnNlVGV4dERlY2wKK3htbFBhcnNlVVJJCit4bWxQYXJzZVVSSVJhdworeG1sUGFyc2VVUklSZWZlcmVuY2UKK3htbFBhcnNlVmVyc2lvbkluZm8KK3htbFBhcnNlVmVyc2lvbk51bQoreG1sUGFyc2VYTUxEZWNsCit4bWxQYXJzZXJBZGROb2RlSW5mbworeG1sUGFyc2VyRXJyb3IKK3htbFBhcnNlckZpbmROb2RlSW5mbworeG1sUGFyc2VyRmluZE5vZGVJbmZvSW5kZXgKK3htbFBhcnNlckdldERpcmVjdG9yeQoreG1sUGFyc2VySGFuZGxlUEVSZWZlcmVuY2UKK3htbFBhcnNlckhhbmRsZVJlZmVyZW5jZQoreG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGZAoreG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAoreG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTworeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVNZW0KK3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlU3RhdGljCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3cKK3htbFBhcnNlcklucHV0QnVmZmVyUHVzaAoreG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkCit4bWxQYXJzZXJJbnB1dEdyb3cKK3htbFBhcnNlcklucHV0UmVhZAoreG1sUGFyc2VySW5wdXRTaHJpbmsKK3htbFBhcnNlclByaW50RmlsZUNvbnRleHQKK3htbFBhcnNlclByaW50RmlsZUluZm8KK3htbFBhcnNlclZhbGlkaXR5RXJyb3IKK3htbFBhcnNlclZhbGlkaXR5V2FybmluZworeG1sUGFyc2VyV2FybmluZworeG1sUGF0aFRvVVJJCit4bWxQYXR0ZXJuRnJvbVJvb3QKK3htbFBhdHRlcm5HZXRTdHJlYW1DdHh0Cit4bWxQYXR0ZXJuTWF0Y2gKK3htbFBhdHRlcm5NYXhEZXB0aAoreG1sUGF0dGVybk1pbkRlcHRoCit4bWxQYXR0ZXJuU3RyZWFtYWJsZQoreG1sUGF0dGVybmNvbXBpbGUKK3htbFBlZGFudGljUGFyc2VyRGVmYXVsdAoreG1sUG9wSW5wdXQKK3htbFBvcElucHV0Q2FsbGJhY2tzCit4bWxQcmV2aW91c0VsZW1lbnRTaWJsaW5nCit4bWxQcmludFVSSQoreG1sUHVzaElucHV0Cit4bWxSTXV0ZXhMb2NrCit4bWxSTXV0ZXhVbmxvY2sKK3htbFJlYWREb2MKK3htbFJlYWRGZAoreG1sUmVhZEZpbGUKK3htbFJlYWRJTworeG1sUmVhZE1lbW9yeQoreG1sUmVhZGVyRm9yRG9jCit4bWxSZWFkZXJGb3JGZAoreG1sUmVhZGVyRm9yRmlsZQoreG1sUmVhZGVyRm9ySU8KK3htbFJlYWRlckZvck1lbW9yeQoreG1sUmVhZGVyTmV3RG9jCit4bWxSZWFkZXJOZXdGZAoreG1sUmVhZGVyTmV3RmlsZQoreG1sUmVhZGVyTmV3SU8KK3htbFJlYWRlck5ld01lbW9yeQoreG1sUmVhZGVyTmV3V2Fsa2VyCit4bWxSZWFkZXJXYWxrZXIKKyNpZmRlZiBERUJVR19NRU1PUllfTE9DQVRJT04KK3htbFJlYWxsb2NMb2MKKyNlbmRpZgoreG1sUmVjb25jaWxpYXRlTnMKK3htbFJlY292ZXJEb2MKK3htbFJlY292ZXJGaWxlCit4bWxSZWNvdmVyTWVtb3J5CisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxSZWdFeGVjRXJySW5mbworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxSZWdFeGVjTmV4dFZhbHVlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxSZWdFeGVjUHVzaFN0cmluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxSZWdFeGVjUHVzaFN0cmluZzIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sUmVnRnJlZUV4ZWNDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFJlZ0ZyZWVSZWdleHAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sUmVnTmV3RXhlY0N0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sUmVnZXhwQ29tcGlsZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxSZWdleHBFeGVjCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFJlZ2V4cElzRGV0ZXJtaW5pc3QKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sUmVnZXhwUHJpbnQKKyNlbmRpZgoreG1sUmVnaXN0ZXJDaGFyRW5jb2RpbmdIYW5kbGVyCit4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcworeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAoreG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcworI2VuZGlmCit4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzCit4bWxSZWdpc3Rlck5vZGVEZWZhdWx0Cit4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrcworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdDbGVhbnVwVHlwZXMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdEdW1wCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxSZWxheE5HRHVtcFRyZWUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdGcmVlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxSZWxheE5HRnJlZVBhcnNlckN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdGcmVlVmFsaWRDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxSZWxheE5HR2V0UGFyc2VyRXJyb3JzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxSZWxheE5HR2V0VmFsaWRFcnJvcnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdJbml0VHlwZXMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdOZXdEb2NQYXJzZXJDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxSZWxheE5HTmV3TWVtUGFyc2VyQ3R4dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhOR05ld1BhcnNlckN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdOZXdWYWxpZEN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdQYXJzZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhOR1NldFBhcnNlckVycm9ycworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhOR1NldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFJlbGF4TkdTZXRWYWxpZEVycm9ycworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhOR1NldFZhbGlkU3RydWN0dXJlZEVycm9ycworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhOR1ZhbGlkYXRlRG9jCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxSZWxheE5HVmFsaWRhdGVGdWxsRWxlbWVudAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhOR1ZhbGlkYXRlUG9wRWxlbWVudAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhOR1ZhbGlkYXRlUHVzaENEYXRhCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sUmVsYXhQYXJzZXJTZXRGbGFnCisjZW5kaWYKK3htbFJlbW92ZUlECit4bWxSZW1vdmVQcm9wCit4bWxSZW1vdmVSZWYKK3htbFJlcGxhY2VOb2RlCit4bWxSZXNldEVycm9yCit4bWxSZXNldExhc3RFcnJvcgoreG1sU0FYMkF0dHJpYnV0ZURlY2wKK3htbFNBWDJDRGF0YUJsb2NrCit4bWxTQVgyQ2hhcmFjdGVycworeG1sU0FYMkNvbW1lbnQKK3htbFNBWDJFbGVtZW50RGVjbAoreG1sU0FYMkVuZERvY3VtZW50Cit4bWxTQVgyRW5kRWxlbWVudAoreG1sU0FYMkVuZEVsZW1lbnROcworeG1sU0FYMkVudGl0eURlY2wKK3htbFNBWDJFeHRlcm5hbFN1YnNldAoreG1sU0FYMkdldENvbHVtbk51bWJlcgoreG1sU0FYMkdldEVudGl0eQoreG1sU0FYMkdldExpbmVOdW1iZXIKK3htbFNBWDJHZXRQYXJhbWV0ZXJFbnRpdHkKK3htbFNBWDJHZXRQdWJsaWNJZAoreG1sU0FYMkdldFN5c3RlbUlkCit4bWxTQVgySGFzRXh0ZXJuYWxTdWJzZXQKK3htbFNBWDJIYXNJbnRlcm5hbFN1YnNldAoreG1sU0FYMklnbm9yYWJsZVdoaXRlc3BhY2UKK3htbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIKK3htbFNBWDJJbml0RG9jYkRlZmF1bHRTQVhIYW5kbGVyCit4bWxTQVgySW5pdEh0bWxEZWZhdWx0U0FYSGFuZGxlcgoreG1sU0FYMkludGVybmFsU3Vic2V0Cit4bWxTQVgySXNTdGFuZGFsb25lCit4bWxTQVgyTm90YXRpb25EZWNsCit4bWxTQVgyUHJvY2Vzc2luZ0luc3RydWN0aW9uCit4bWxTQVgyUmVmZXJlbmNlCit4bWxTQVgyUmVzb2x2ZUVudGl0eQoreG1sU0FYMlNldERvY3VtZW50TG9jYXRvcgoreG1sU0FYMlN0YXJ0RG9jdW1lbnQKK3htbFNBWDJTdGFydEVsZW1lbnQKK3htbFNBWDJTdGFydEVsZW1lbnROcworeG1sU0FYMlVucGFyc2VkRW50aXR5RGVjbAoreG1sU0FYRGVmYXVsdFZlcnNpb24KK3htbFNBWFBhcnNlRFRECit4bWxTQVhQYXJzZURvYworeG1sU0FYUGFyc2VFbnRpdHkKK3htbFNBWFBhcnNlRmlsZQoreG1sU0FYUGFyc2VGaWxlV2l0aERhdGEKK3htbFNBWFBhcnNlTWVtb3J5Cit4bWxTQVhQYXJzZU1lbW9yeVdpdGhEYXRhCit4bWxTQVhVc2VyUGFyc2VGaWxlCit4bWxTQVhVc2VyUGFyc2VNZW1vcnkKK3htbFNBWFZlcnNpb24KK3htbFNhdmVDbG9zZQoreG1sU2F2ZURvYworeG1sU2F2ZUZpbGUKK3htbFNhdmVGaWxlRW5jCit4bWxTYXZlRmlsZVRvCit4bWxTYXZlRmx1c2gKK3htbFNhdmVGb3JtYXRGaWxlCit4bWxTYXZlRm9ybWF0RmlsZUVuYworeG1sU2F2ZUZvcm1hdEZpbGVUbworeG1sU2F2ZVNldEF0dHJFc2NhcGUKK3htbFNhdmVTZXRFc2NhcGUKK3htbFNhdmVUb0J1ZmZlcgoreG1sU2F2ZVRvRmQKK3htbFNhdmVUb0ZpbGVuYW1lCit4bWxTYXZlVG9JTworeG1sU2F2ZVRyZWUKK3htbFNhdmVVcmkKK3htbFNjYW5OYW1lCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hQ2hlY2tGYWNldAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hQ2xlYW51cFR5cGVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFDb2xsYXBzZVN0cmluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hQ29tcGFyZVZhbHVlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFDb3B5VmFsdWUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYUR1bXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYUZyZWUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYUZyZWVGYWNldAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hRnJlZVBhcnNlckN0eHQKKyNlbmRpZgoreG1sU2NoZW1hRnJlZVR5cGUKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFGcmVlVmFsaWRDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFGcmVlVmFsdWUKKyNlbmRpZgoreG1sU2NoZW1hRnJlZVdpbGRjYXJkCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hR2V0QnVpbHRJbkxpc3RTaW1wbGVUeXBlSXRlbVR5cGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYUdldEJ1aWx0SW5UeXBlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFHZXRDYW5vblZhbHVlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYUdldEZhY2V0VmFsdWVBc1VMb25nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYUdldFByZWRlZmluZWRUeXBlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFHZXRWYWxUeXBlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFHZXRWYWxpZEVycm9ycworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hSW5pdFR5cGVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYUlzVmFsaWQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYU5ld0RvY1BhcnNlckN0eHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYU5ld0ZhY2V0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFOZXdQYXJzZXJDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFOZXdRTmFtZVZhbHVlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFOZXdTdHJpbmdWYWx1ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hTmV3VmFsaWRDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFQYXJzZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hU0FYUGx1ZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hU0FYVW5wbHVnCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVNldFBhcnNlclN0cnVjdHVyZWRFcnJvcnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVNldFZhbGlkRXJyb3JzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFTZXRWYWxpZE9wdGlvbnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFWYWxpZEN0eHRHZXRPcHRpb25zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFWYWxpZEN0eHRHZXRQYXJzZXJDdHh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFWYWxpZGF0ZURvYworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hVmFsaWRhdGVGYWNldAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hVmFsaWRhdGVGYWNldFdodHNwCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFWYWxpZGF0ZUZpbGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVZhbGlkYXRlU3RyZWFtCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECit4bWxTY2hlbWFWYWx1ZUFwcGVuZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFNjaGVtYVZhbHVlR2V0TmV4dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UKKyNlbmRpZgoreG1sU2NoZW1hdHJvbkZyZWUKK3htbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dAoreG1sU2NoZW1hdHJvbkZyZWVWYWxpZEN0eHQKK3htbFNjaGVtYXRyb25OZXdEb2NQYXJzZXJDdHh0Cit4bWxTY2hlbWF0cm9uTmV3TWVtUGFyc2VyQ3R4dAoreG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQKK3htbFNjaGVtYXRyb25OZXdWYWxpZEN0eHQKK3htbFNjaGVtYXRyb25QYXJzZQoreG1sU2NoZW1hdHJvblNldFZhbGlkU3RydWN0dXJlZEVycm9ycworeG1sU2NoZW1hdHJvblZhbGlkYXRlRG9jCit4bWxTZWFyY2hOcworeG1sU2VhcmNoTnNCeUhyZWYKK3htbFNldEJ1ZmZlckFsbG9jYXRpb25TY2hlbWUKK3htbFNldENvbXByZXNzTW9kZQoreG1sU2V0RG9jQ29tcHJlc3NNb2RlCit4bWxTZXRFbnRpdHlSZWZlcmVuY2VGdW5jCit4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcgoreG1sU2V0RmVhdHVyZQoreG1sU2V0R2VuZXJpY0Vycm9yRnVuYworeG1sU2V0TGlzdERvYworeG1sU2V0TnMKK3htbFNldE5zUHJvcAoreG1sU2V0UHJvcAoreG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYworeG1sU2V0VHJlZURvYworeG1sU2V0dXBQYXJzZXJGb3JCdWZmZXIKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sU2hlbGwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxTaGVsbEJhc2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxTaGVsbENhdAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbFNoZWxsRGlyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sU2hlbGxEdQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbFNoZWxsTGlzdAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbFNoZWxsTG9hZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbFNoZWxsUHJpbnROb2RlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAoreG1sU2hlbGxQcmludFhQYXRoRXJyb3IKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxTaGVsbFByaW50WFBhdGhSZXN1bHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxTaGVsbFB3ZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbFNoZWxsU2F2ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbFNoZWxsVmFsaWRhdGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxTaGVsbFdyaXRlCisjZW5kaWYKK3htbFNraXBCbGFua0NoYXJzCit4bWxTbnByaW50ZkVsZW1lbnRDb250ZW50Cit4bWxTcGxpdFFOYW1lCit4bWxTcGxpdFFOYW1lMgoreG1sU3BsaXRRTmFtZTMKK3htbFNwcmludGZFbGVtZW50Q29udGVudAoreG1sU3RvcFBhcnNlcgoreG1sU3RyRXF1YWwKK3htbFN0clByaW50ZgoreG1sU3RyUUVxdWFsCit4bWxTdHJWUHJpbnRmCit4bWxTdHJjYXNlY21wCit4bWxTdHJjYXNlc3RyCit4bWxTdHJjYXQKK3htbFN0cmNocgoreG1sU3RyY21wCit4bWxTdHJkdXAKK3htbFN0cmVhbVBvcAoreG1sU3RyZWFtUHVzaAoreG1sU3RyZWFtUHVzaEF0dHIKK3htbFN0cmVhbVB1c2hOb2RlCit4bWxTdHJlYW1XYW50c0FueU5vZGUKK3htbFN0cmluZ0N1cnJlbnRDaGFyCit4bWxTdHJpbmdEZWNvZGVFbnRpdGllcworeG1sU3RyaW5nR2V0Tm9kZUxpc3QKK3htbFN0cmluZ0xlbkRlY29kZUVudGl0aWVzCit4bWxTdHJpbmdMZW5HZXROb2RlTGlzdAoreG1sU3RybGVuCit4bWxTdHJuY2FzZWNtcAoreG1sU3RybmNhdAoreG1sU3RybmNhdE5ldworeG1sU3RybmNtcAoreG1sU3RybmR1cAoreG1sU3Ryc3RyCit4bWxTdHJzdWIKK3htbFN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHQKK3htbFN3aXRjaEVuY29kaW5nCit4bWxTd2l0Y2hJbnB1dEVuY29kaW5nCit4bWxTd2l0Y2hUb0VuY29kaW5nCit4bWxUZXh0Q29uY2F0Cit4bWxUZXh0TWVyZ2UKK3htbFRleHRSZWFkZXJBdHRyaWJ1dGVDb3VudAoreG1sVGV4dFJlYWRlckJhc2VVcmkKK3htbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQKK3htbFRleHRSZWFkZXJDbG9zZQoreG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaQoreG1sVGV4dFJlYWRlckNvbnN0RW5jb2RpbmcKK3htbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZQoreG1sVGV4dFJlYWRlckNvbnN0TmFtZQoreG1sVGV4dFJlYWRlckNvbnN0TmFtZXNwYWNlVXJpCit4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgKK3htbFRleHRSZWFkZXJDb25zdFN0cmluZworeG1sVGV4dFJlYWRlckNvbnN0VmFsdWUKK3htbFRleHRSZWFkZXJDb25zdFhtbExhbmcKK3htbFRleHRSZWFkZXJDb25zdFhtbFZlcnNpb24KK3htbFRleHRSZWFkZXJDdXJyZW50RG9jCit4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUKK3htbFRleHRSZWFkZXJEZXB0aAoreG1sVGV4dFJlYWRlckV4cGFuZAoreG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZQoreG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vCit4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMKK3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIKK3htbFRleHRSZWFkZXJHZXRQYXJzZXJDb2x1bW5OdW1iZXIKK3htbFRleHRSZWFkZXJHZXRQYXJzZXJMaW5lTnVtYmVyCit4bWxUZXh0UmVhZGVyR2V0UGFyc2VyUHJvcAoreG1sVGV4dFJlYWRlckdldFJlbWFpbmRlcgoreG1sVGV4dFJlYWRlckhhc0F0dHJpYnV0ZXMKK3htbFRleHRSZWFkZXJIYXNWYWx1ZQoreG1sVGV4dFJlYWRlcklzRGVmYXVsdAoreG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50Cit4bWxUZXh0UmVhZGVySXNOYW1lc3BhY2VEZWNsCit4bWxUZXh0UmVhZGVySXNWYWxpZAoreG1sVGV4dFJlYWRlckxvY2FsTmFtZQoreG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJCit4bWxUZXh0UmVhZGVyTG9jYXRvckxpbmVOdW1iZXIKK3htbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UKK3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUKK3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVObworeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5zCit4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudAoreG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlCit4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZQoreG1sVGV4dFJlYWRlck5hbWUKK3htbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkKK3htbFRleHRSZWFkZXJOZXh0Cit4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmcKK3htbFRleHRSZWFkZXJOb2RlVHlwZQoreG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24KK3htbFRleHRSZWFkZXJQcmVmaXgKK3htbFRleHRSZWFkZXJQcmVzZXJ2ZQoreG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybgoreG1sVGV4dFJlYWRlclF1b3RlQ2hhcgoreG1sVGV4dFJlYWRlclJlYWQKK3htbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWUKK3htbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwKK3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwKK3htbFRleHRSZWFkZXJSZWFkU3RhdGUKK3htbFRleHRSZWFkZXJSZWFkU3RyaW5nCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAoreG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3htbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUKKyNlbmRpZgoreG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlCit4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0Cit4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyCit4bWxUZXh0UmVhZGVyU2V0UGFyc2VyUHJvcAoreG1sVGV4dFJlYWRlclNldFNjaGVtYQoreG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXIKK3htbFRleHRSZWFkZXJTZXR1cAoreG1sVGV4dFJlYWRlclN0YW5kYWxvbmUKK3htbFRleHRSZWFkZXJWYWx1ZQoreG1sVGV4dFJlYWRlclhtbExhbmcKK3htbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUKK3htbFRleHRXcml0ZXJFbmRDREFUQQoreG1sVGV4dFdyaXRlckVuZENvbW1lbnQKK3htbFRleHRXcml0ZXJFbmREVEQKK3htbFRleHRXcml0ZXJFbmREVERBdHRsaXN0Cit4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudAoreG1sVGV4dFdyaXRlckVuZERUREVudGl0eQoreG1sVGV4dFdyaXRlckVuZERvY3VtZW50Cit4bWxUZXh0V3JpdGVyRW5kRWxlbWVudAoreG1sVGV4dFdyaXRlckVuZFBJCit4bWxUZXh0V3JpdGVyRmx1c2gKK3htbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudAoreG1sVGV4dFdyaXRlclNldEluZGVudAoreG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZworeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlCit4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUworeG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEKK3htbFRleHRXcml0ZXJTdGFydENvbW1lbnQKK3htbFRleHRXcml0ZXJTdGFydERURAoreG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdAoreG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudAoreG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5Cit4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudAoreG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudAoreG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TCit4bWxUZXh0V3JpdGVyU3RhcnRQSQoreG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlCit4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUworeG1sVGV4dFdyaXRlcldyaXRlQmFzZTY0Cit4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgKK3htbFRleHRXcml0ZXJXcml0ZUNEQVRBCit4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50Cit4bWxUZXh0V3JpdGVyV3JpdGVEVEQKK3htbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3QKK3htbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQKK3htbFRleHRXcml0ZXJXcml0ZURUREVudGl0eQoreG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHkKK3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHMKK3htbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5Cit4bWxUZXh0V3JpdGVyV3JpdGVEVEROb3RhdGlvbgoreG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudAoreG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudE5TCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRBdHRyaWJ1dGUKK3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQQoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q29tbWVudAoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRECit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0Cit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50Cit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eQoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudAoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSQoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0UmF3Cit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRTdHJpbmcKK3htbFRleHRXcml0ZXJXcml0ZVBJCit4bWxUZXh0V3JpdGVyV3JpdGVSYXcKK3htbFRleHRXcml0ZXJXcml0ZVJhd0xlbgoreG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nCit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlCit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlTlMKK3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQQoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQKK3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQKK3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0Cit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRERWxlbWVudAoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5Cit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudAoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUworeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFBJCit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3Cit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0U3RyaW5nCit4bWxUaHJEZWZCdWZmZXJBbGxvY1NjaGVtZQoreG1sVGhyRGVmRGVmYXVsdEJ1ZmZlclNpemUKK3htbFRockRlZkRlcmVnaXN0ZXJOb2RlRGVmYXVsdAoreG1sVGhyRGVmRG9WYWxpZGl0eUNoZWNraW5nRGVmYXVsdFZhbHVlCit4bWxUaHJEZWZHZXRXYXJuaW5nc0RlZmF1bHRWYWx1ZQoreG1sVGhyRGVmSW5kZW50VHJlZU91dHB1dAoreG1sVGhyRGVmS2VlcEJsYW5rc0RlZmF1bHRWYWx1ZQoreG1sVGhyRGVmTGluZU51bWJlcnNEZWZhdWx0VmFsdWUKK3htbFRockRlZkxvYWRFeHREdGREZWZhdWx0VmFsdWUKK3htbFRockRlZk91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdAoreG1sVGhyRGVmUGFyc2VyRGVidWdFbnRpdGllcworeG1sVGhyRGVmUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQKK3htbFRockRlZlBlZGFudGljUGFyc2VyRGVmYXVsdFZhbHVlCit4bWxUaHJEZWZSZWdpc3Rlck5vZGVEZWZhdWx0Cit4bWxUaHJEZWZTYXZlTm9FbXB0eVRhZ3MKK3htbFRockRlZlNldEdlbmVyaWNFcnJvckZ1bmMKK3htbFRockRlZlNldFN0cnVjdHVyZWRFcnJvckZ1bmMKK3htbFRockRlZlN1YnN0aXR1dGVFbnRpdGllc0RlZmF1bHRWYWx1ZQoreG1sVGhyRGVmVHJlZUluZGVudFN0cmluZworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNBZWdlYW5OdW1iZXJzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQXJhYmljCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNCCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQXJtZW5pYW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNBcnJvd3MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNCYXNpY0xhdGluCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQmVuZ2FsaQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0Jsb2NrCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQmxvY2tFbGVtZW50cworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0JvcG9tb2ZvCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQm9wb21vZm9FeHRlbmRlZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0JveERyYXdpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNCcmFpbGxlUGF0dGVybnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNCdWhpZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHNTdXBwbGVtZW50CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRDCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0Q2MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRDZgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdENvCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0Q3MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRMCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0TGwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRMbQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdExvCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0THQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRMdQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdE0KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRNYworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdE1lCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0TW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXROCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0TmQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRObAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdE5vCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0UAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdFBjCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0UGQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRQZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdFBmCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0UGkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRQbworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdFBzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0UworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdFNjCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0U2sKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRTbQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdFNvCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0WgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NhdFpsCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ2F0WnAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNDYXRacworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NoZXJva2VlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3Nmb3JTeW1ib2xzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ29udHJvbFBpY3R1cmVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ3VycmVuY3lTeW1ib2xzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0N5cmlsbGljCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzRGVzZXJldAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0RldmFuYWdhcmkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNEaW5nYmF0cworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0V0aGlvcGljCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzR2VvbWV0cmljU2hhcGVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzR2VvcmdpYW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNHb3RoaWMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNHcmVlaworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNHcmVla2FuZENvcHRpYworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0d1amFyYXRpCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzR3VybXVraGkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0hhbmd1bENvbXBhdGliaWxpdHlKYW1vCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzSGFuZ3VsSmFtbworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0hhbmd1bFN5bGxhYmxlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0hhbnVub28KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNIZWJyZXcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNIaWdoU3Vycm9nYXRlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0hpcmFnYW5hCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzSVBBRXh0ZW5zaW9ucworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0lkZW9ncmFwaGljRGVzY3JpcHRpb25DaGFyYWN0ZXJzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzS2FuYnVuCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzS2FuZ3hpUmFkaWNhbHMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNLYW5uYWRhCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzS2F0YWthbmEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0tobWVyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzS2htZXJTeW1ib2xzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTGFvCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTGF0aW4xU3VwcGxlbWVudAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNMYXRpbkV4dGVuZGVkQgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTGltYnUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNMaW5lYXJCSWRlb2dyYW1zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTGluZWFyQlN5bGxhYmFyeQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNNYWxheWFsYW0KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNCCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzTWlzY2VsbGFuZW91c1N5bWJvbHMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc01pc2NlbGxhbmVvdXNUZWNobmljYWwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNNb25nb2xpYW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNNdXNpY2FsU3ltYm9scworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc015YW5tYXIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNOdW1iZXJGb3JtcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc09naGFtCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzT2xkSXRhbGljCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzT3JpeWEKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNPc21hbnlhCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzUHJpdmF0ZVVzZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1ByaXZhdGVVc2VBcmVhCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzUnVuaWMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNTaGF2aWFuCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzU2luaGFsYQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzU3BhY2luZ01vZGlmaWVyTGV0dGVycworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1NwZWNpYWxzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzU3VwZXJzY3JpcHRzYW5kU3Vic2NyaXB0cworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0EKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1N1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYUIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNTeXJpYWMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNUYWdhbG9nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzVGFnYmFud2EKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNUYWdzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzVGFpTGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNUYWlYdWFuSmluZ1N5bWJvbHMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNUYW1pbAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1RlbHVndQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1RoYWFuYQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1RoYWkKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNUaWJldGFuCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzVWdhcml0aWMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKK3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1lpUmFkaWNhbHMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAoreG1sVUNTSXNZaVN5bGxhYmxlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9scworI2VuZGlmCit4bWxVUklFc2NhcGUKK3htbFVSSUVzY2FwZVN0cgoreG1sVVJJVW5lc2NhcGVTdHJpbmcKK3htbFVURjhDaGFyY21wCit4bWxVVEY4U2l6ZQoreG1sVVRGOFN0cmxlbgoreG1sVVRGOFN0cmxvYworeG1sVVRGOFN0cm5kdXAKK3htbFVURjhTdHJwb3MKK3htbFVURjhTdHJzaXplCit4bWxVVEY4U3Ryc3ViCit4bWxVbmxpbmtOb2RlCit4bWxVbmxvY2tMaWJyYXJ5Cit4bWxVbnNldE5zUHJvcAoreG1sVW5zZXRQcm9wCisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECit4bWxWYWxpZEJ1aWxkQ29udGVudE1vZGVsCisjZW5kaWYKK3htbFZhbGlkQ3R4dE5vcm1hbGl6ZUF0dHJpYnV0ZVZhbHVlCit4bWxWYWxpZEdldFBvdGVudGlhbENoaWxkcmVuCit4bWxWYWxpZEdldFZhbGlkRWxlbWVudHMKK3htbFZhbGlkTm9ybWFsaXplQXR0cmlidXRlVmFsdWUKK3htbFZhbGlkYXRlQXR0cmlidXRlRGVjbAoreG1sVmFsaWRhdGVBdHRyaWJ1dGVWYWx1ZQoreG1sVmFsaWRhdGVEb2N1bWVudAoreG1sVmFsaWRhdGVEb2N1bWVudEZpbmFsCit4bWxWYWxpZGF0ZUR0ZAoreG1sVmFsaWRhdGVEdGRGaW5hbAoreG1sVmFsaWRhdGVFbGVtZW50Cit4bWxWYWxpZGF0ZUVsZW1lbnREZWNsCit4bWxWYWxpZGF0ZU5DTmFtZQoreG1sVmFsaWRhdGVOTVRva2VuCit4bWxWYWxpZGF0ZU5hbWUKK3htbFZhbGlkYXRlTmFtZVZhbHVlCit4bWxWYWxpZGF0ZU5hbWVzVmFsdWUKK3htbFZhbGlkYXRlTm10b2tlblZhbHVlCit4bWxWYWxpZGF0ZU5tdG9rZW5zVmFsdWUKK3htbFZhbGlkYXRlTm90YXRpb25EZWNsCit4bWxWYWxpZGF0ZU5vdGF0aW9uVXNlCit4bWxWYWxpZGF0ZU9uZUF0dHJpYnV0ZQoreG1sVmFsaWRhdGVPbmVFbGVtZW50Cit4bWxWYWxpZGF0ZU9uZU5hbWVzcGFjZQoreG1sVmFsaWRhdGVQb3BFbGVtZW50Cit4bWxWYWxpZGF0ZVB1c2hDRGF0YQoreG1sVmFsaWRhdGVQdXNoRWxlbWVudAoreG1sVmFsaWRhdGVRTmFtZQoreG1sVmFsaWRhdGVSb290CisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKK3htbFhJbmNsdWRlRnJlZUNvbnRleHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECit4bWxYSW5jbHVkZU5ld0NvbnRleHQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECit4bWxYSW5jbHVkZVByb2Nlc3MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECit4bWxYSW5jbHVkZVByb2Nlc3NGbGFncworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKK3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKK3htbFhJbmNsdWRlUHJvY2Vzc05vZGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECit4bWxYSW5jbHVkZVByb2Nlc3NUcmVlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAoreG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAoreG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKK3htbFhJbmNsdWRlU2V0RmxhZ3MKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aEFkZFZhbHVlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDYXN0Qm9vbGVhblRvTnVtYmVyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ2FzdE5vZGVTZXRUb051bWJlcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ2FzdE5vZGVUb051bWJlcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ2FzdE5vZGVUb1N0cmluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENhc3RUb0Jvb2xlYW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENhc3RUb051bWJlcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ2FzdFRvU3RyaW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENtcE5vZGVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDb21wYXJlVmFsdWVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDb21waWxlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhDb21waWxlZEV2YWwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ29uY2F0RnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENvbnRleHRTZXRDYWNoZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoQ29udmVydEJvb2xlYW4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENvbnZlcnROdW1iZXIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENvbnZlcnRTdHJpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aENvdW50RnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aEN0eHRDb21waWxlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECit4bWxYUGF0aERlYnVnRHVtcENvbXBFeHByCisjZW5kaWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKK3htbFhQYXRoRGVidWdEdW1wT2JqZWN0CisjZW5kaWYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aERpZmZlcmVuY2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aERpc3RpbmN0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhEaXN0aW5jdFNvcnRlZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoRGl2VmFsdWVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhFcXVhbFZhbHVlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoRXJyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhFdmFsCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhFdmFsRXhwcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoRXZhbEV4cHJlc3Npb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aEV2YWxQcmVkaWNhdGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhGYWxzZUZ1bmN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhGbG9vckZ1bmN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhGcmVlQ29tcEV4cHIKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aEZyZWVDb250ZXh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhGcmVlTm9kZVNldAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoRnJlZU5vZGVTZXRMaXN0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhGcmVlT2JqZWN0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoRnVuY3Rpb25Mb29rdXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aEZ1bmN0aW9uTG9va3VwTlMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aEhhc1NhbWVOb2RlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoSWRGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoSW5pdAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoSW50ZXJzZWN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhJc0luZgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoSXNOYU4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aElzTm9kZVR5cGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aExhbmdGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTGFzdEZ1bmN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhMZWFkaW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhMZWFkaW5nU29ydGVkCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTW9kVmFsdWVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhNdWx0VmFsdWVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV3Qm9vbGVhbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV3Q1N0cmluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV3Q29udGV4dAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV3RmxvYXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5ld05vZGVTZXQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5ld05vZGVTZXRMaXN0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOZXdTdHJpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5ld1ZhbHVlVHJlZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV4dEFuY2VzdG9yCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5leHRBdHRyaWJ1dGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5leHRDaGlsZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV4dERlc2NlbmRhbnQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOZXh0Rm9sbG93aW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV4dE5hbWVzcGFjZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV4dFBhcmVudAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV4dFByZWNlZGluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5leHRTZWxmCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOb2RlTGVhZGluZworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5vZGVTZXRBZGQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5vZGVTZXRBZGROcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTm9kZVNldENvbnRhaW5zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOb2RlU2V0Q3JlYXRlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOb2RlU2V0RGVsCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOb2RlU2V0RnJlZU5zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOb2RlU2V0TWVyZ2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5vZGVTZXRSZW1vdmUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5vZGVTZXRTb3J0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOb2RlVHJhaWxpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTm9ybWFsaXplRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE5vdEVxdWFsVmFsdWVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhOb3RGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoTnNMb29rdXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aE51bWJlckZ1bmN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhPYmplY3RDb3B5CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhPcmRlckRvY0VsZW1zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhQYXJzZU5DTmFtZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUGFyc2VOYW1lCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhQb3BCb29sZWFuCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhQb3BFeHRlcm5hbAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUG9wTm9kZVNldAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUG9wTnVtYmVyCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhQb3BTdHJpbmcKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhSZWdpc3RlckZ1bmMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUmVnaXN0ZXJGdW5jTlMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJlZ2lzdGVyTnMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVMb29rdXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJlZ2lzdGVyVmFyaWFibGVOUworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJvb3QKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFJvdW5kRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoU3RyaW5nRXZhbE51bWJlcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoU3RyaW5nRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhTdWJWYWx1ZXMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoU3VtRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFRyYWlsaW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhUcmFpbGluZ1NvcnRlZAorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFRydWVGdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoVmFsdWVGbGlwU2lnbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKK3htbFhQYXRoVmFyaWFibGVMb29rdXAKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFdyYXBDU3RyaW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhXcmFwRXh0ZXJuYWwKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECit4bWxYUGF0aFdyYXBOb2RlU2V0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhXcmFwU3RyaW5nCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAoreG1sWFBhdGhlcnJvcgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAoreG1sWFB0ckJ1aWxkTm9kZUxpc3QKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKK3htbFhQdHJFdmFsCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyRXZhbFJhbmdlUHJlZGljYXRlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyRnJlZUxvY2F0aW9uU2V0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTG9jYXRpb25TZXRBZGQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKK3htbFhQdHJMb2NhdGlvblNldENyZWF0ZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAoreG1sWFB0ckxvY2F0aW9uU2V0RGVsCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTG9jYXRpb25TZXRNZXJnZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAoreG1sWFB0ckxvY2F0aW9uU2V0UmVtb3ZlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTmV3Q29sbGFwc2VkUmFuZ2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKK3htbFhQdHJOZXdDb250ZXh0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlcworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAoreG1sWFB0ck5ld1JhbmdlCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTmV3UmFuZ2VOb2RlUG9pbnQKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKK3htbFhQdHJOZXdSYW5nZU5vZGVzCisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECit4bWxYUHRyTmV3UmFuZ2VQb2ludE5vZGUKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKK3htbFhQdHJOZXdSYW5nZVBvaW50cworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAoreG1sWFB0clJhbmdlVG9GdW5jdGlvbgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAoreG1sWFB0cldyYXBMb2NhdGlvblNldAorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3dpbjMyL3dpbmNlL2xpYnhtbDIudmNiIGIvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS9saWJ4bWwyLnZjYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTRkMDUzCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS9saWJ4bWwyLnZjYgpAQCAtMCwwICsxIEBACitNaWNyb3NvZnQgQy9DKysgcHJvZ3JhbSBkYXRhYmFzZSAyLjAwCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3dpbjMyL3dpbmNlL2xpYnhtbDIudmNsIGIvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS9saWJ4bWwyLnZjbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjdlY2I2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS9saWJ4bWwyLnZjbApAQCAtMCwwICsxLDEyMiBAQAorPGh0bWw+Cis8Ym9keT4KKzxwcmU+Cis8aDE+QnVpbGQgTG9nPC9oMT4KKzxoMz4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tQ29uZmlndXJhdGlvbjogbGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzwvaDM+Cis8aDM+Q29tbWFuZCBMaW5lczwvaDM+CitDcmVhdGluZyB0ZW1wb3JhcnkgZmlsZSAiQzpcRE9DVU1FfjFcZmp2Z1xDT05GSUd+MVxUZW1wXFJTUDEyRS50bXAiIHdpdGggY29udGVudHMKK1sKKy9ub2xvZ28gL1czIC9aaSAvT2QgL0kgIi4uXC4uXC4uXGluY2x1ZGUiIC9JICIuLlwuLlxpbmNsdWRlIiAvSSAiYzpccHBjXGxpYnhtbFxYTUxcd2luMzJcd2luY2UiIC9EICJERUJVRyIgL0QgX1dJTjMyX1dDRT0zMDAgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIldJTjMyX1BMQVRGT1JNX1BTUEMiIC9EICJpNDg2IiAvRCBVTkRFUl9DRT0zMDAgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIl9YODZfIiAvRCAieDg2IiAvRnAiWDg2RU1EYmcvbGlieG1sMi5wY2giIC9ZWCAvRm8iWDg2RU1EYmcvIiAvRmQiWDg2RU1EYmcvIiAvR3ogL2MgCisiQzpccHBjXGxpYnhtbFxYTUxcRE9DQnBhcnNlci5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXGVuY29kaW5nLmMiCisiQzpccHBjXGxpYnhtbFxYTUxcZW50aXRpZXMuYyIKKyJDOlxwcGNcbGlieG1sXFhNTFxlcnJvci5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXGdsb2JhbHMuYyIKKyJDOlxwcGNcbGlieG1sXFhNTFxoYXNoLmMiCisiQzpccHBjXGxpYnhtbFxYTUxcbGlzdC5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXHBhcnNlci5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXHBhcnNlckludGVybmFscy5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXFNBWC5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXHRocmVhZHMuYyIKKyJDOlxwcGNcbGlieG1sXFhNTFx0cmVlLmMiCisiQzpccHBjXGxpYnhtbFxYTUxcdXJpLmMiCisiQzpccHBjXGxpYnhtbFxYTUxcdmFsaWQuYyIKKyJDOlxwcGNcbGlieG1sXFhNTFx3aW4zMlx3aW5jZVx3aW5jZWNvbXBhdC5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXHhsaW5rLmMiCisiQzpccHBjXGxpYnhtbFxYTUxceG1sSU8uYyIKKyJDOlxwcGNcbGlieG1sXFhNTFx4bWxtZW1vcnkuYyIKKyJDOlxwcGNcbGlieG1sXFhNTFxjMTRuLmMiCisiQzpccHBjXGxpYnhtbFxYTUxcY2F0YWxvZy5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXGRlYnVnWE1MLmMiCisiQzpccHBjXGxpYnhtbFxYTUxcSFRNTHBhcnNlci5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXEhUTUx0cmVlLmMiCisiQzpccHBjXGxpYnhtbFxYTUxcbmFub2Z0cC5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXG5hbm9odHRwLmMiCisiQzpccHBjXGxpYnhtbFxYTUxceGluY2x1ZGUuYyIKKyJDOlxwcGNcbGlieG1sXFhNTFx4cGF0aC5jIgorIkM6XHBwY1xsaWJ4bWxcWE1MXHhwb2ludGVyLmMiCitdCitDcmVhdGluZyBjb21tYW5kIGxpbmUgImNsLmV4ZSBAQzpcRE9DVU1FfjFcZmp2Z1xDT05GSUd+MVxUZW1wXFJTUDEyRS50bXAiIAorQ3JlYXRpbmcgdGVtcG9yYXJ5IGZpbGUgIkM6XERPQ1VNRX4xXGZqdmdcQ09ORklHfjFcVGVtcFxSU1AxMkYudG1wIiB3aXRoIGNvbnRlbnRzCitbCitjb3JlbGliYy5saWIgd2luc29jay5saWIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9kbGwgL2luY3JlbWVudGFsOnllcyAvcGRiOiJYODZFTURiZy9saWJ4bWwyLnBkYiIgL2RlYnVnIC9ub2RlZmF1bHRsaWI6Ik9MRE5BTUVTLmxpYiIgL25vZGVmYXVsdGxpYjpsaWJjLmxpYiAvbm9kZWZhdWx0bGliOmxpYmNkLmxpYiAvbm9kZWZhdWx0bGliOmxpYmNtdC5saWIgL25vZGVmYXVsdGxpYjpsaWJjbXRkLmxpYiAvbm9kZWZhdWx0bGliOm1zdmNydC5saWIgL25vZGVmYXVsdGxpYjptc3ZjcnRkLmxpYiAvbm9kZWZhdWx0bGliOm9sZG5hbWVzLmxpYiAvZGVmOiIuXGxpYnhtbDIuZGVmIiAvb3V0OiJYODZFTURiZy9saWJ4bWwyLmRsbCIgL2ltcGxpYjoiWDg2RU1EYmcvbGlieG1sMi5saWIiIC93aW5kb3dzY2U6ZW11bGF0aW9uIC9NQUNISU5FOklYODYgCisuXFg4NkVNRGJnXERPQ0JwYXJzZXIub2JqCisuXFg4NkVNRGJnXGVuY29kaW5nLm9iagorLlxYODZFTURiZ1xlbnRpdGllcy5vYmoKKy5cWDg2RU1EYmdcZXJyb3Iub2JqCisuXFg4NkVNRGJnXGdsb2JhbHMub2JqCisuXFg4NkVNRGJnXGhhc2gub2JqCisuXFg4NkVNRGJnXGxpc3Qub2JqCisuXFg4NkVNRGJnXHBhcnNlci5vYmoKKy5cWDg2RU1EYmdccGFyc2VySW50ZXJuYWxzLm9iagorLlxYODZFTURiZ1xTQVgub2JqCisuXFg4NkVNRGJnXHRocmVhZHMub2JqCisuXFg4NkVNRGJnXHRyZWUub2JqCisuXFg4NkVNRGJnXHVyaS5vYmoKKy5cWDg2RU1EYmdcdmFsaWQub2JqCisuXFg4NkVNRGJnXHdpbmNlY29tcGF0Lm9iagorLlxYODZFTURiZ1x4bGluay5vYmoKKy5cWDg2RU1EYmdceG1sSU8ub2JqCisuXFg4NkVNRGJnXHhtbG1lbW9yeS5vYmoKKy5cWDg2RU1EYmdcYzE0bi5vYmoKKy5cWDg2RU1EYmdcY2F0YWxvZy5vYmoKKy5cWDg2RU1EYmdcZGVidWdYTUwub2JqCisuXFg4NkVNRGJnXEhUTUxwYXJzZXIub2JqCisuXFg4NkVNRGJnXEhUTUx0cmVlLm9iagorLlxYODZFTURiZ1xuYW5vZnRwLm9iagorLlxYODZFTURiZ1xuYW5vaHR0cC5vYmoKKy5cWDg2RU1EYmdceGluY2x1ZGUub2JqCisuXFg4NkVNRGJnXHhwYXRoLm9iagorLlxYODZFTURiZ1x4cG9pbnRlci5vYmoKK10KK0NyZWF0aW5nIGNvbW1hbmQgbGluZSAibGluay5leGUgQEM6XERPQ1VNRX4xXGZqdmdcQ09ORklHfjFcVGVtcFxSU1AxMkYudG1wIgorPGgzPk91dHB1dCBXaW5kb3c8L2gzPgorQ29tcGlsaW5nLi4uCitET0NCcGFyc2VyLmMKK2VuY29kaW5nLmMKK2VudGl0aWVzLmMKK2Vycm9yLmMKK2dsb2JhbHMuYworaGFzaC5jCitsaXN0LmMKK3BhcnNlci5jCitDOlxwcGNcbGlieG1sXFhNTFxwYXJzZXIuYygyMjgyKSA6IHdhcm5pbmcgQzQwOTA6ICc9JyA6IGRpZmZlcmVudCAnY29uc3QnIHF1YWxpZmllcnMKK3BhcnNlckludGVybmFscy5jCitTQVguYwordGhyZWFkcy5jCit0cmVlLmMKK3VyaS5jCit2YWxpZC5jCit3aW5jZWNvbXBhdC5jCitDOlxwcGNcbGlieG1sXFhNTFx3aW4zMlx3aW5jZVx3aW5jZWNvbXBhdC5jKDM3KSA6IHdhcm5pbmcgQzQwNDc6ICc9JyA6ICdjaGFyICcgZGlmZmVycyBpbiBsZXZlbHMgb2YgaW5kaXJlY3Rpb24gZnJvbSAnY2hhciBbMl0nCitDOlxwcGNcbGlieG1sXFhNTFx3aW4zMlx3aW5jZVx3aW5jZWNvbXBhdC5jKDM5KSA6IHdhcm5pbmcgQzQwNDc6ICc9JyA6ICdjaGFyICcgZGlmZmVycyBpbiBsZXZlbHMgb2YgaW5kaXJlY3Rpb24gZnJvbSAnY2hhciBbMl0nCitDOlxwcGNcbGlieG1sXFhNTFx3aW4zMlx3aW5jZVx3aW5jZWNvbXBhdC5jKDQwKSA6IHdhcm5pbmcgQzQwNDc6ICdyZXR1cm4nIDogJ2ludCAnIGRpZmZlcnMgaW4gbGV2ZWxzIG9mIGluZGlyZWN0aW9uIGZyb20gJ3ZvaWQgKicKK3hsaW5rLmMKK3htbElPLmMKK0M6XHBwY1xsaWJ4bWxcWE1MXHhtbElPLmMoMjQwNCkgOiB3YXJuaW5nIEM0MTAxOiAnZGlyJyA6IHVucmVmZXJlbmNlZCBsb2NhbCB2YXJpYWJsZQorQzpccHBjXGxpYnhtbFxYTUxceG1sSU8uYygyNDA1KSA6IHdhcm5pbmcgQzQxMDE6ICdjdXInIDogdW5yZWZlcmVuY2VkIGxvY2FsIHZhcmlhYmxlCit4bWxtZW1vcnkuYworYzE0bi5jCitjYXRhbG9nLmMKK2RlYnVnWE1MLmMKK0hUTUxwYXJzZXIuYworSFRNTHRyZWUuYworbmFub2Z0cC5jCituYW5vaHR0cC5jCitDOlxwcGNcbGlieG1sXFhNTFxuYW5vZnRwLmMoODkyKSA6IHdhcm5pbmcgQzQ3NjE6IGludGVncmFsIHNpemUgbWlzbWF0Y2ggaW4gYXJndW1lbnQ7IGNvbnZlcnNpb24gc3VwcGxpZWQKK3hpbmNsdWRlLmMKK0M6XHBwY1xsaWJ4bWxcWE1MXG5hbm9odHRwLmMoOTIxKSA6IHdhcm5pbmcgQzQ3NjE6IGludGVncmFsIHNpemUgbWlzbWF0Y2ggaW4gYXJndW1lbnQ7IGNvbnZlcnNpb24gc3VwcGxpZWQKK3hwYXRoLmMKK3hwb2ludGVyLmMKK0xpbmtpbmcuLi4KKyAgIENyZWF0aW5nIGxpYnJhcnkgWDg2RU1EYmcvbGlieG1sMi5saWIgYW5kIG9iamVjdCBYODZFTURiZy9saWJ4bWwyLmV4cAorCisKKworPGgzPlJlc3VsdHM8L2gzPgorbGlieG1sMi5kbGwgLSAwIGVycm9yKHMpLCA4IHdhcm5pbmcocykKKzwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS9saWJ4bWwyLnZjbyBiL2xpYnhtbDItMi43Ljcvd2luMzIvd2luY2UvbGlieG1sMi52Y28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU5OWYxYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvd2luMzIvd2luY2UvbGlieG1sMi52Y28KQEAgLTAsMCArMSBAQAor0M8R4KGxClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS9saWJ4bWwyLnZjcCBiL2xpYnhtbDItMi43Ljcvd2luMzIvd2luY2UvbGlieG1sMi52Y3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAxZmJjZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvd2luMzIvd2luY2UvbGlieG1sMi52Y3AKQEAgLTAsMCArMSw1MjczIEBACisjIE1pY3Jvc29mdCBlTWJlZGRlZCBWaXN1YWwgVG9vbHMgUHJvamVjdCBGaWxlIC0gTmFtZT0ibGlieG1sMiIgLSBQYWNrYWdlIE93bmVyPTw0PgorIyBNaWNyb3NvZnQgZU1iZWRkZWQgVmlzdWFsIFRvb2xzIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAyCisjICoqIERPIE5PVCBFRElUICoqCisKKyMgVEFSR1RZUEUgIldpbjMyIChXQ0UgU0gzKSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg4MTAyCisjIFRBUkdUWVBFICJXaW4zMiAoV0NFIHg4NmVtKSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg3ZjAyCisjIFRBUkdUWVBFICJXaW4zMiAoV0NFIHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4ODMwMgorIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBBUk0pIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDg1MDIKKyMgVEFSR1RZUEUgIldpbjMyIChXQ0UgTUlQUykgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4ODIwMgorCitDRkc9bGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlCishTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsCishTUVTU0FHRSB1c2UgdGhlIEV4cG9ydCBNYWtlZmlsZSBjb21tYW5kIGFuZCBydW4KKyFNRVNTQUdFIAorIU1FU1NBR0UgTk1BS0UgL2YgImxpYnhtbDIudmNuIi4KKyFNRVNTQUdFIAorIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UKKyFNRVNTQUdFIGJ5IGRlZmluaW5nIHRoZSBtYWNybyBDRkcgb24gdGhlIGNvbW1hbmQgbGluZS4gRm9yIGV4YW1wbGU6CishTUVTU0FHRSAKKyFNRVNTQUdFIE5NQUtFIC9mICJsaWJ4bWwyLnZjbiIgQ0ZHPSJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCishTUVTU0FHRSAKKyFNRVNTQUdFIFBvc3NpYmxlIGNob2ljZXMgZm9yIGNvbmZpZ3VyYXRpb24gYXJlOgorIU1FU1NBR0UgCishTUVTU0FHRSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgQVJNKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCishTUVTU0FHRSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIEFSTSkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQorIU1FU1NBR0UgImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIHg4NmVtKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCishTUVTU0FHRSAibGlieG1sMiAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIE1JUFMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKKyFNRVNTQUdFICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBTSDMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKKyFNRVNTQUdFICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCishTUVTU0FHRSAKKworIyBCZWdpbiBQcm9qZWN0CisjIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMAorIyBQUk9QIFNjY19Qcm9qTmFtZSAiIgorIyBQUk9QIFNjY19Mb2NhbFBhdGggIiIKKyMgUFJPUCBBVExfUHJvamVjdCAyCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworIyBQUk9QIEJBU0UgVXNlX01GQyAwCisjIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKKyMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIkFSTVJlbCIKKyMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIkFSTVJlbCIKKyMgUFJPUCBCQVNFIENQVV9JRCAie0Q2NTE4RkZDLTcxMEYtMTFEMy05OUYyLTAwMTA1QTBERjA5OX0iCisjIFBST1AgQkFTRSBQbGF0Zm9ybV9JRCAiezhBOUEyRjgwLTY4ODctMTFEMy04NDJFLTAwNTAwNDg0OENCQX0iCisjIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCisjIFBST1AgVXNlX01GQyAwCisjIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCisjIFBST1AgT3V0cHV0X0RpciAiQVJNUmVsIgorIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIkFSTVJlbCIKKyMgUFJPUCBDUFVfSUQgIntENjUxOEZGQy03MTBGLTExRDMtOTlGMi0wMDEwNUEwREYwOTl9IgorIyBQUk9QIFBsYXRmb3JtX0lEICJ7OEE5QTJGODAtNjg4Ny0xMUQzLTg0MkUtMDA1MDA0ODQ4Q0JBfSIKKyMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwCisjIFBST1AgVGFyZ2V0X0RpciAiIgorUlNDPXJjLmV4ZQorIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJOREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiQVJNIiAvZCAiX0FSTV8iIC9yCisjIEFERCBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJOREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiQVJNIiAvZCAiX0FSTV8iIC9yCitDUFA9Y2xhcm0uZXhlCisjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDZVBsYXRmb3JtKSIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIk5ERUJVRyIgL0QgIl9VU1JETEwiIC9EICJDRURMTF9FWFBPUlRTIiAvWVggL094cyAvTSQoQ0VDcnRNVCkgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9XMyAvSSAiLi5cLi5caW5jbHVkZSIgL0kgImM6XHBwY1xsaWJ4bWxcWE1MXHdpbjMyXHdpbmNlIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDZVBsYXRmb3JtKSIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIk5ERUJVRyIgL0QgIl9VU1JETEwiIC9EICJDRURMTF9FWFBPUlRTIiAvWVggL094cyAvTSQoQ0VDcnRNVCkgL2MKK01UTD1taWRsLmV4ZQorIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCisjIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCitCU0MzMj1ic2NtYWtlLmV4ZQorIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCisjIEFERCBCU0MzMiAvbm9sb2dvCitMSU5LMzI9bGluay5leGUKKyMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9iYXNlOiIweDAwMTAwMDAwIiAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL2VudHJ5OiJfRGxsTWFpbkNSVFN0YXJ0dXAiIC9kbGwgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL2FsaWduOiI0MDk2IiAvTUFDSElORTpBUk0KKyMgQUREIExJTkszMiB3aW5zb2NrLmxpYiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvYmFzZToiMHgwMDEwMDAwMCIgL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9lbnRyeToiX0RsbE1haW5DUlRTdGFydHVwIiAvZGxsIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9hbGlnbjoiNDA5NiIgL01BQ0hJTkU6QVJNCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCisjIFBST1AgQkFTRSBVc2VfTUZDIDAKKyMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQorIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiQVJNRGJnIgorIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiQVJNRGJnIgorIyBQUk9QIEJBU0UgQ1BVX0lEICJ7RDY1MThGRkMtNzEwRi0xMUQzLTk5RjItMDAxMDVBMERGMDk5fSIKKyMgUFJPUCBCQVNFIFBsYXRmb3JtX0lEICJ7OEE5QTJGODAtNjg4Ny0xMUQzLTg0MkUtMDA1MDA0ODQ4Q0JBfSIKKyMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKKyMgUFJPUCBVc2VfTUZDIDAKKyMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKKyMgUFJPUCBPdXRwdXRfRGlyICJBUk1EYmciCisjIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiQVJNRGJnIgorIyBQUk9QIENQVV9JRCAie0Q2NTE4RkZDLTcxMEYtMTFEMy05OUYyLTAwMTA1QTBERjA5OX0iCisjIFBST1AgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9IgorIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDAKKyMgUFJPUCBUYXJnZXRfRGlyICIiCitSU0M9cmMuZXhlCisjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJfVU5JQ09ERSIgL2QgIkRFQlVHIiAvZCAiJChDZVBsYXRmb3JtKSIgL2QgIkFSTSIgL2QgIl9BUk1fIiAvcgorIyBBREQgUlNDIC9sIDB4NDA5IC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiQVJNIiAvZCAiX0FSTV8iIC9yCitDUFA9Y2xhcm0uZXhlCisjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDZVBsYXRmb3JtKSIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIkRFQlVHIiAvRCAiX1VTUkRMTCIgL0QgIkNFRExMX0VYUE9SVFMiIC9ZWCAvT3hzIC9NJChDRUNydE1UKSAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9JICIuLlwuLlxpbmNsdWRlIiAvSSAiYzpccHBjXGxpYnhtbFxYTUxcd2luMzJcd2luY2UiIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiREVCVUciIC9EICJfVVNSRExMIiAvRCAiQ0VETExfRVhQT1JUUyIgL094cyAvTSQoQ0VDcnRNVCkgL2MKKyMgU1VCVFJBQ1QgQ1BQIC9ZWAorTVRMPW1pZGwuZXhlCisjIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKKyMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKK0JTQzMyPWJzY21ha2UuZXhlCisjIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KKyMgQUREIEJTQzMyIC9ub2xvZ28KK0xJTkszMj1saW5rLmV4ZQorIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2Jhc2U6IjB4MDAxMDAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6Il9EbGxNYWluQ1JUU3RhcnR1cCIgL2RsbCAvZGVidWcgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL2FsaWduOiI0MDk2IiAvTUFDSElORTpBUk0KKyMgQUREIExJTkszMiB3aW5zb2NrLmxpYiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvYmFzZToiMHgwMDEwMDAwMCIgL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9lbnRyeToiX0RsbE1haW5DUlRTdGFydHVwIiAvZGxsIC9kZWJ1ZyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvYWxpZ246IjQwOTYiIC9NQUNISU5FOkFSTQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCisjIFBST1AgQkFTRSBVc2VfTUZDIDAKKyMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQorIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiWDg2RU1EYmciCisjIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJYODZFTURiZyIKKyMgUFJPUCBCQVNFIENQVV9JRCAie0Q2NTE4RkY0LTcxMEYtMTFEMy05OUYyLTAwMTA1QTBERjA5OX0iCisjIFBST1AgQkFTRSBQbGF0Zm9ybV9JRCAiezhBOUEyRjgwLTY4ODctMTFEMy04NDJFLTAwNTAwNDg0OENCQX0iCisjIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCisjIFBST1AgVXNlX01GQyAwCisjIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCisjIFBST1AgT3V0cHV0X0RpciAiWDg2RU1EYmciCisjIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiWDg2RU1EYmciCisjIFBST1AgQ1BVX0lEICJ7RDY1MThGRjQtNzEwRi0xMUQzLTk5RjItMDAxMDVBMERGMDk5fSIKKyMgUFJPUCBQbGF0Zm9ybV9JRCAiezhBOUEyRjgwLTY4ODctMTFEMy04NDJFLTAwNTAwNDg0OENCQX0iCisjIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMAorIyBQUk9QIFRhcmdldF9EaXIgIiIKK1JTQz1yYy5leGUKKyMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiX1g4Nl8iIC9kICJ4ODYiIC9kICJpNDg2IiAvcgorIyBBREQgUlNDIC9sIDB4NDA5IC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiX1g4Nl8iIC9kICJ4ODYiIC9kICJpNDg2IiAvcgorQ1BQPWNsLmV4ZQorIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvVzMgL1ppIC9PZCAvRCAiREVCVUciIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiaTQ4NiIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJfWDg2XyIgL0QgIng4NiIgL1lYIC9HeiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9aaSAvT2QgL0kgIi4uXC4uXC4uXGluY2x1ZGUiIC9JICIuLlwuLlxpbmNsdWRlIiAvSSAiYzpccHBjXGxpYnhtbFxYTUxcd2luMzJcd2luY2UiIC9EICJERUJVRyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIiQoQ2VQbGF0Zm9ybSkiIC9EICJpNDg2IiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIl9YODZfIiAvRCAieDg2IiAvWVggL0d6IC9jCitNVEw9bWlkbC5leGUKKyMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgorIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgorQlNDMzI9YnNjbWFrZS5leGUKKyMgQUREIEJBU0UgQlNDMzIgL25vbG9nbworIyBBREQgQlNDMzIgL25vbG9nbworTElOSzMyPWxpbmsuZXhlCisjIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgJChDRXg4NkNvcmVsaWJjKSAvbm9sb2dvIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZGxsIC9kZWJ1ZyAvbm9kZWZhdWx0bGliOiJPTEROQU1FUy5saWIiIC9ub2RlZmF1bHRsaWI6JChDRU5vRGVmYXVsdExpYikgL3dpbmRvd3NjZTplbXVsYXRpb24gL01BQ0hJTkU6SVg4NgorIyBBREQgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgd2luc29jay5saWIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9kbGwgL2RlYnVnIC9ub2RlZmF1bHRsaWI6Ik9MRE5BTUVTLmxpYiIgL25vZGVmYXVsdGxpYjokKENFTm9EZWZhdWx0TGliKSAvd2luZG93c2NlOmVtdWxhdGlvbiAvTUFDSElORTpJWDg2CisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCisjIFBST1AgQkFTRSBVc2VfTUZDIDAKKyMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAorIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiTUlQU1JlbCIKKyMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIk1JUFNSZWwiCisjIFBST1AgQkFTRSBDUFVfSUQgIntENjUxOTAxMC03MTBGLTExRDMtOTlGMi0wMDEwNUEwREYwOTl9IgorIyBQUk9QIEJBU0UgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9IgorIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgorIyBQUk9QIFVzZV9NRkMgMAorIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAorIyBQUk9QIE91dHB1dF9EaXIgIk1JUFNSZWwiCisjIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiTUlQU1JlbCIKKyMgUFJPUCBDUFVfSUQgIntENjUxOTAxMC03MTBGLTExRDMtOTlGMi0wMDEwNUEwREYwOTl9IgorIyBQUk9QIFBsYXRmb3JtX0lEICJ7OEE5QTJGODAtNjg4Ny0xMUQzLTg0MkUtMDA1MDA0ODQ4Q0JBfSIKKyMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwCisjIFBST1AgVGFyZ2V0X0RpciAiIgorUlNDPXJjLmV4ZQorIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJOREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL3IKKyMgQUREIFJTQyAvbCAweDQwOSAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJfVU5JQ09ERSIgL2QgIk5ERUJVRyIgL2QgIiQoQ2VQbGF0Zm9ybSkiIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvcgorQ1BQPWNsbWlwcy5leGUKKyMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1czIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJOREVCVUciIC9ZWCAvT3hzIC9NJChDRUNydE1UKSAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9JICIuLlwuLlxpbmNsdWRlIiAvSSAiYzpccHBjXGxpYnhtbFxYTUxcd2luMzJcd2luY2UiIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJOREVCVUciIC9ZWCAvT3hzIC9NJChDRUNydE1UKSAvYworTVRMPW1pZGwuZXhlCisjIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKKyMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKK0JTQzMyPWJzY21ha2UuZXhlCisjIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KKyMgQUREIEJTQzMyIC9ub2xvZ28KK0xJTkszMj1saW5rLmV4ZQorIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2Jhc2U6IjB4MDAxMDAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6Il9EbGxNYWluQ1JUU3RhcnR1cCIgL2RsbCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvTUFDSElORTpNSVBTCisjIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIHdpbnNvY2subGliIC9ub2xvZ28gL2Jhc2U6IjB4MDAxMDAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6Il9EbGxNYWluQ1JUU3RhcnR1cCIgL2RsbCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvTUFDSElORTpNSVBTCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKKyMgUFJPUCBCQVNFIFVzZV9NRkMgMAorIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCisjIFBST1AgQkFTRSBPdXRwdXRfRGlyICJTSDNSZWwiCisjIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJTSDNSZWwiCisjIFBST1AgQkFTRSBDUFVfSUQgIntENjUxOTAyMC03MTBGLTExRDMtOTlGMi0wMDEwNUEwREYwOTl9IgorIyBQUk9QIEJBU0UgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9IgorIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgorIyBQUk9QIFVzZV9NRkMgMAorIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAorIyBQUk9QIE91dHB1dF9EaXIgIlNIM1JlbCIKKyMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJTSDNSZWwiCisjIFBST1AgQ1BVX0lEICJ7RDY1MTkwMjAtNzEwRi0xMUQzLTk5RjItMDAxMDVBMERGMDk5fSIKKyMgUFJPUCBQbGF0Zm9ybV9JRCAiezhBOUEyRjgwLTY4ODctMTFEMy04NDJFLTAwNTAwNDg0OENCQX0iCisjIFBST1AgVGFyZ2V0X0RpciAiIgorUlNDPXJjLmV4ZQorIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJOREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiU0h4IiAvZCAiU0gzIiAvZCAiX1NIM18iIC9yCisjIEFERCBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJOREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiU0h4IiAvZCAiU0gzIiAvZCAiX1NIM18iIC9yCitDUFA9c2hjbC5leGUKKyMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1czIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiTkRFQlVHIiAvWVggL094cyAvTSQoQ0VDcnRNVCkgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9XMyAvSSAiLi5cLi5caW5jbHVkZSIgL0kgImM6XHBwY1xsaWJ4bWxcWE1MXHdpbjMyXHdpbmNlIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDZVBsYXRmb3JtKSIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIk5ERUJVRyIgL1lYIC9PeHMgL00kKENFQ3J0TVQpIC9jCitNVEw9bWlkbC5leGUKKyMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgorIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgorQlNDMzI9YnNjbWFrZS5leGUKKyMgQUREIEJBU0UgQlNDMzIgL25vbG9nbworIyBBREQgQlNDMzIgL25vbG9nbworTElOSzMyPWxpbmsuZXhlCisjIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvYmFzZToiMHgwMDEwMDAwMCIgL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9lbnRyeToiX0RsbE1haW5DUlRTdGFydHVwIiAvZGxsIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9NQUNISU5FOlNIMworIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiB3aW5zb2NrLmxpYiAvbm9sb2dvIC9iYXNlOiIweDAwMTAwMDAwIiAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL2VudHJ5OiJfRGxsTWFpbkNSVFN0YXJ0dXAiIC9kbGwgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL01BQ0hJTkU6U0gzCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCisjIFBST1AgQkFTRSBVc2VfTUZDIDAKKyMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQorIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiWDg2RGJnIgorIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiWDg2RGJnIgorIyBQUk9QIEJBU0UgQ1BVX0lEICJ7RDY1MThGRjMtNzEwRi0xMUQzLTk5RjItMDAxMDVBMERGMDk5fSIKKyMgUFJPUCBCQVNFIFBsYXRmb3JtX0lEICJ7OEE5QTJGODAtNjg4Ny0xMUQzLTg0MkUtMDA1MDA0ODQ4Q0JBfSIKKyMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKKyMgUFJPUCBVc2VfTUZDIDAKKyMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKKyMgUFJPUCBPdXRwdXRfRGlyICJYODZEYmciCisjIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiWDg2RGJnIgorIyBQUk9QIENQVV9JRCAie0Q2NTE4RkYzLTcxMEYtMTFEMy05OUYyLTAwMTA1QTBERjA5OX0iCisjIFBST1AgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9IgorIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDAKKyMgUFJPUCBUYXJnZXRfRGlyICIiCitSU0M9cmMuZXhlCisjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJfVU5JQ09ERSIgL2QgIkRFQlVHIiAvZCAiJChDZVBsYXRmb3JtKSIgL2QgIl9YODZfIiAvZCAieDg2IiAvZCAiX2kzODZfIiAvcgorIyBBREQgUlNDIC9sIDB4NDA5IC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiX1g4Nl8iIC9kICJ4ODYiIC9kICJfaTM4Nl8iIC9yCitDUFA9Y2wuZXhlCisjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvWmkgL09kIC9EICJERUJVRyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ2VQbGF0Zm9ybSkiIC9EICJfaTM4Nl8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiX1g4Nl8iIC9EICJ4ODYiIC9ZWCAvR3M4MTkyIC9HRiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9aaSAvT2QgL0kgIi4uXC4uXGluY2x1ZGUiIC9JICJjOlxwcGNcbGlieG1sXFhNTFx3aW4zMlx3aW5jZSIgL0QgIkRFQlVHIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDZVBsYXRmb3JtKSIgL0QgIl9pMzg2XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJfWDg2XyIgL0QgIng4NiIgL1lYIC9HczgxOTIgL0dGIC9jCitNVEw9bWlkbC5leGUKKyMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgorIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgorQlNDMzI9YnNjbWFrZS5leGUKKyMgQUREIEJBU0UgQlNDMzIgL25vbG9nbworIyBBREQgQlNDMzIgL25vbG9nbworTElOSzMyPWxpbmsuZXhlCisjIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgJChDRXg4NkNvcmVsaWJjKSAvbm9sb2dvIC9iYXNlOiIweDAwMTAwMDAwIiAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL2VudHJ5OiJfRGxsTWFpbkNSVFN0YXJ0dXAiIC9kbGwgL2RlYnVnIC9ub2RlZmF1bHRsaWI6Ik9MRE5BTUVTLmxpYiIgL25vZGVmYXVsdGxpYjokKENFTm9EZWZhdWx0TGliKSAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9NQUNISU5FOklYODYKKyMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgJChDRXg4NkNvcmVsaWJjKSB3aW5zb2NrLmxpYiAvbm9sb2dvIC9iYXNlOiIweDAwMTAwMDAwIiAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL2VudHJ5OiJfRGxsTWFpbkNSVFN0YXJ0dXAiIC9kbGwgL2RlYnVnIC9ub2RlZmF1bHRsaWI6Ik9MRE5BTUVTLmxpYiIgL25vZGVmYXVsdGxpYjokKENFTm9EZWZhdWx0TGliKSAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9NQUNISU5FOklYODYKKworIUVORElGIAorCisjIEJlZ2luIFRhcmdldAorCisjIE5hbWUgImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKyMgTmFtZSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKyMgTmFtZSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorIyBOYW1lICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorIyBOYW1lICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisjIE5hbWUgImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisjIEJlZ2luIEdyb3VwICJTb3VyY2UgRmlsZXMiCisKKyMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiY3BwO2M7Y3h4O3JjO2RlZjtyO29kbDtpZGw7aHBqO2JhdCIKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGMxNG4uYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfQzE0Tl89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGMxNG4uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luQ0Vjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9DMTROXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCisjIFBST1AgRXhjbHVkZV9Gcm9tX0J1aWxkIDEKK0RFUF9DUFBfQzE0Tl89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGMxNG4uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9DMTROXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfQzE0Tl89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGMxNG4uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9DMTROXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX0MxNE5fPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfQzE0Tl89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfQzE0Tl89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGMxNG4uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9DMTROXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX0MxNE5fPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjMTRuLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoSW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfQzE0Tl89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRU5ESUYgCisKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxjYXRhbG9nLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX0NBVEFMPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfQ0FUQUw9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworIyBQUk9QIEV4Y2x1ZGVfRnJvbV9CdWlsZCAxCitERVBfQ1BQX0NBVEFMPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfQ0FUQUw9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX0NBVEFMPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfQ0FUQUw9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKKworREVQX0NQUF9DQVRBTD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCQorTk9ERVBfQ1BQX0NBVEFMPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cd2luMzJjb25maWcuaCJcCisJIi4uXC4uXHdpbkNFY29uZmlnLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCitERVBfQ1BQX0NBVEFMPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfQ0FUQUw9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworIyBQUk9QIEV4Y2x1ZGVfRnJvbV9CdWlsZCAxCitERVBfQ1BQX0NBVEFMPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfQ0FUQUw9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRU5ESUYgCisKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxkZWJ1Z1hNTC5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9ERUJVRz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoSW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfREVCVUc9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworREVQX0NQUF9ERUJVRz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoSW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfREVCVUc9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX0RFQlVHPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxkZWJ1Z1hNTC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1MdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9ERUJVRz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX0RFQlVHPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfREVCVUc9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfREVCVUc9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aEludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0RFQlVHPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisKK0RFUF9DUFBfREVCVUc9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aEludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0RFQlVHPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5cRE9DQnBhcnNlci5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9ET0NCUD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcRE9DQnBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0RPQ0JQPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKK0RFUF9DUFBfRE9DQlA9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXERPQ0JwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9ET0NCUD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfRE9DQlA9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXERPQ0JwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9ET0NCUD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX0RPQ0JQPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfRE9DQlA9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfRE9DQlA9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXERPQ0JwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9ET0NCUD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCisjIFBST1AgRXhjbHVkZV9Gcm9tX0J1aWxkIDEKK0RFUF9DUFBfRE9DQlA9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXERPQ0JwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9ET0NCUD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGVuY29kaW5nLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX0VOQ09EPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luQ0Vjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9FTkNPRD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX0VOQ09EPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9FTkNPRD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfRU5DT0Q9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0VOQ09EPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCisKK0RFUF9DUFBfRU5DT0Q9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkKK05PREVQX0NQUF9FTkNPRD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJIi4uXC4uXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlx3aW5DRWNvbmZpZy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKKworREVQX0NQUF9FTkNPRD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfRU5DT0Q9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9FTkNPRD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfRU5DT0Q9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRU5ESUYgCisKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxlbnRpdGllcy5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9FTlRJVD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfRU5USVQ9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworREVQX0NQUF9FTlRJVD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfRU5USVQ9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX0VOVElUPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9FTlRJVD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX0VOVElUPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfRU5USVQ9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfRU5USVQ9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0VOVElUPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisKK0RFUF9DUFBfRU5USVQ9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0VOVElUPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5cZXJyb3IuYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfRVJST1I9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0VSUk9SPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKK0RFUF9DUFBfRVJST1I9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0VSUk9SPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9FUlJPUj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfRVJST1I9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKKworREVQX0NQUF9FUlJPUj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCQorTk9ERVBfQ1BQX0VSUk9SPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cd2luMzJjb25maWcuaCJcCisJIi4uXC4uXHdpbkNFY29uZmlnLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCitERVBfQ1BQX0VSUk9SPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9FUlJPUj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX0VSUk9SPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9FUlJPUj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGdsb2JhbHMuYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfR0xPQkE9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0dMT0JBPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKK0RFUF9DUFBfR0xPQkE9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0dMT0JBPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9HTE9CQT1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfR0xPQkE9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKKworREVQX0NQUF9HTE9CQT1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCQorTk9ERVBfQ1BQX0dMT0JBPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cd2luMzJjb25maWcuaCJcCisJIi4uXC4uXHdpbkNFY29uZmlnLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCitERVBfQ1BQX0dMT0JBPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9HTE9CQT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX0dMT0JBPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9HTE9CQT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGhhc2guYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfSEFTSF89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0hBU0hfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKK0RFUF9DUFBfSEFTSF89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0hBU0hfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9IQVNIXz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfSEFTSF89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKKworREVQX0NQUF9IQVNIXz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCQorTk9ERVBfQ1BQX0hBU0hfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cd2luMzJjb25maWcuaCJcCisJIi4uXC4uXHdpbkNFY29uZmlnLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCitERVBfQ1BQX0hBU0hfPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9IQVNIXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX0hBU0hfPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9IQVNIXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXEhUTUxwYXJzZXIuYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfSFRNTFA9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0hUTUxQPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKKyMgUFJPUCBFeGNsdWRlX0Zyb21fQnVpbGQgMQorREVQX0NQUF9IVE1MUD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1MdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfSFRNTFA9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX0hUTUxQPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9IVE1MUD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX0hUTUxQPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfSFRNTFA9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfSFRNTFA9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0hUTUxQPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisKK0RFUF9DUFBfSFRNTFA9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0hUTUxQPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5cSFRNTHRyZWUuYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfSFRNTFQ9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfSFRNTFQ9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworIyBQUk9QIEV4Y2x1ZGVfRnJvbV9CdWlsZCAxCitERVBfQ1BQX0hUTUxUPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0hUTUxUPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9IVE1MVD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1MdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9IVE1MVD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX0hUTUxUPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfSFRNTFQ9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfSFRNTFQ9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfSFRNTFQ9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9IVE1MVD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1MdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9IVE1MVD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS5cbGlieG1sMi5kZWYKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uXGxpYnhtbDIuZGVmLnNyYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitVU0VSREVQX19MSUJYTT0iLi4vLi4vaW5jbHVkZS9saWJ4bWwveG1sdmVyc2lvbi5oOyIJCisjIEJlZ2luIEN1c3RvbSBCdWlsZAorSW5wdXRQYXRoPS5cbGlieG1sMi5kZWYuc3JjCisKKyJsaWJ4bWwyLmRlZiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIgIiQoT1VURElSKSIKKwljbCAvSSIuLlwuLiIgL0kiLi5cLi5caW5jbHVkZSIgL25vbG9nbyAvRVAgJChJbnB1dFBhdGgpID4gbGlieG1sMi5kZWYKKworIyBFbmQgQ3VzdG9tIEJ1aWxkCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5cbGlzdC5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9MSVNUXz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfTElTVF89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworREVQX0NQUF9MSVNUXz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfTElTVF89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX0xJU1RfPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9MSVNUXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX0xJU1RfPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfTElTVF89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfTElTVF89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0xJU1RfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisKK0RFUF9DUFBfTElTVF89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX0xJU1RfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5cbmFub2Z0cC5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9OQU5PRj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vZnRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfTkFOT0Y9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworREVQX0NQUF9OQU5PRj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vZnRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfTkFOT0Y9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX05BTk9GPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9mdHAuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9OQU5PRj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX05BTk9GPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfTkFOT0Y9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfTkFOT0Y9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbmFub2Z0cC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX05BTk9GPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisKK0RFUF9DUFBfTkFOT0Y9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbmFub2Z0cC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX05BTk9GPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5cbmFub2h0dHAuYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfTkFOT0g9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbmFub2h0dHAuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luQ0Vjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9OQU5PSD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX05BTk9IPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9odHRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfTkFOT0g9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX05BTk9IPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9odHRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfTkFOT0g9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKKworREVQX0NQUF9OQU5PSD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCQorTk9ERVBfQ1BQX05BTk9IPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cd2luMzJjb25maWcuaCJcCisJIi4uXC4uXHdpbkNFY29uZmlnLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCitERVBfQ1BQX05BTk9IPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9odHRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfTkFOT0g9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9OQU5PSD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vaHR0cC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX05BTk9IPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5ccGFyc2VyLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX1BBUlNFPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1BBUlNFPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKK0RFUF9DUFBfUEFSU0U9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGNhdGFsb2cuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfUEFSU0U9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX1BBUlNFPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1BBUlNFPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCisKK0RFUF9DUFBfUEFSU0U9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkKK05PREVQX0NQUF9QQVJTRT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJIi4uXC4uXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlx3aW5DRWNvbmZpZy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKKworREVQX0NQUF9QQVJTRT1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9QQVJTRT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX1BBUlNFPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1BBUlNFPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5ccGFyc2VySW50ZXJuYWxzLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfUEFSU0VSPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfUEFSU0VSPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCisKK0RFUF9DUFBfUEFSU0VSPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfUEFSU0VSPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cd2luMzJjb25maWcuaCJcCisJIi4uXC4uXHdpbkNFY29uZmlnLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCitERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1BBUlNFUj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXFNBWC5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9TQVhfQz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1NBWF9DPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKK0RFUF9DUFBfU0FYX0M9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9TQVhfQz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfU0FYX0M9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9TQVhfQz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1NBWF9DPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfU0FYX0M9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfU0FYX0M9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9TQVhfQz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX1NBWF9DPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxkZWJ1Z1hNTC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1MdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfU0FYX0M9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRU5ESUYgCisKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlx0aHJlYWRzLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX1RIUkVBPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luQ0Vjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9USFJFQT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX1RIUkVBPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9USFJFQT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfVEhSRUE9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1RIUkVBPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCisKK0RFUF9DUFBfVEhSRUE9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkKK05PREVQX0NQUF9USFJFQT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJIi4uXC4uXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlx3aW5DRWNvbmZpZy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKKworREVQX0NQUF9USFJFQT1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfVEhSRUE9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9USFJFQT1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfVEhSRUE9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRU5ESUYgCisKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlx0cmVlLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX1RSRUVfPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfVFJFRV89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworREVQX0NQUF9UUkVFXz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1RSRUVfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9UUkVFXz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1RSRUVfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCisKK0RFUF9DUFBfVFJFRV89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkKK05PREVQX0NQUF9UUkVFXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJIi4uXC4uXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlx3aW5DRWNvbmZpZy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKKworREVQX0NQUF9UUkVFXz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1RSRUVfPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisKK0RFUF9DUFBfVFJFRV89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9UUkVFXz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXHVyaS5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9VUklfQz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luQ0Vjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9VUklfQz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX1VSSV9DPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1VSSV9DPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9VUklfQz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9VUklfQz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1VSSV9DPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfVVJJX0M9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfVVJJX0M9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfVVJJX0M9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9VUklfQz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9VUklfQz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXHZhbGlkLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX1ZBTElEPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1ZBTElEPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCisKK0RFUF9DUFBfVkFMSUQ9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfVkFMSUQ9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX1ZBTElEPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1ZBTElEPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCisKK0RFUF9DUFBfVkFMSUQ9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkKK05PREVQX0NQUF9WQUxJRD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJIi4uXC4uXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlx3aW5DRWNvbmZpZy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKKworREVQX0NQUF9WQUxJRD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9WQUxJRD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX1ZBTElEPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1ZBTElEPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Llx3aW5jZWNvbXBhdC5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9XSU5DRT1cCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX1dJTkNFPVwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9XSU5DRT1cCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1dJTkNFPVwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKKworREVQX0NQUF9XSU5DRT1cCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgorCitERVBfQ1BQX1dJTkNFPVwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5ceGluY2x1ZGUuYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfWElOQ0w9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhpbmNsdWRlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwb2ludGVyLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWElOQ0w9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworIyBQUk9QIEV4Y2x1ZGVfRnJvbV9CdWlsZCAxCitERVBfQ1BQX1hJTkNMPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxkZWJ1Z1hNTC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4aW5jbHVkZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cG9pbnRlci5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hJTkNMPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9YSU5DTD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGluY2x1ZGUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBvaW50ZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YSU5DTD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1hJTkNMPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfWElOQ0w9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfWElOQ0w9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhpbmNsdWRlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwb2ludGVyLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWElOQ0w9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9YSU5DTD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGluY2x1ZGUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBvaW50ZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YSU5DTD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXHhsaW5rLmMKKworIUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgorCitERVBfQ1BQX1hMSU5LPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luQ0Vjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YTElOSz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX1hMSU5LPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YTElOSz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfWExJTks9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hMSU5LPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCisKK0RFUF9DUFBfWExJTks9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkKK05PREVQX0NQUF9YTElOSz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJIi4uXC4uXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlx3aW5DRWNvbmZpZy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKKworREVQX0NQUF9YTElOSz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWExJTks9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9YTElOSz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWExJTks9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRU5ESUYgCisKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlx4bWxJTy5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9YTUxJTz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vZnRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vaHR0cC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luQ0Vjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YTUxJTz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCitERVBfQ1BQX1hNTElPPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxjYXRhbG9nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9mdHAuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9odHRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hNTElPPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9YTUxJTz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vZnRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vaHR0cC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YTUxJTz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1hNTElPPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfWE1MSU89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfWE1MSU89XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGNhdGFsb2cuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbmFub2Z0cC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbmFub2h0dHAuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWE1MSU89XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9YTUxJTz1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcY2F0YWxvZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vZnRwLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxuYW5vaHR0cC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YTUxJTz1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXHhtbG1lbW9yeS5jCisKKyFJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKKworREVQX0NQUF9YTUxNRT1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWE1MTUU9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworREVQX0NQUF9YTUxNRT1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWE1MTUU9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgorCitERVBfQ1BQX1hNTE1FPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YTUxNRT1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1hNTE1FPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfWE1MTUU9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfWE1MTUU9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hNTE1FPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCisKK0RFUF9DUFBfWE1MTUU9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hNTE1FPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5ceHBhdGguYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfWFBBVEg9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoSW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cG9pbnRlci5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW5DRWNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuLlwuLlx0cmlvZGVmLmgiXAorCSIuLlwuLlx0cmlvbmFuLmMiXAorCSIuLlwuLlx0cmlvbmFuLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hQQVRIPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cZG9jXGRvY19uYW4uaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgorCisjIFBST1AgRXhjbHVkZV9Gcm9tX0J1aWxkIDEKK0RFUF9DUFBfWFBBVEg9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoSW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cG9pbnRlci5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuLlwuLlx0cmlvZGVmLmgiXAorCSIuLlwuLlx0cmlvbmFuLmMiXAorCSIuLlwuLlx0cmlvbmFuLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hQQVRIPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cZG9jXGRvY19uYW4uaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCisKK0RFUF9DUFBfWFBBVEg9XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoSW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cG9pbnRlci5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuLlwuLlx0cmlvZGVmLmgiXAorCSIuLlwuLlx0cmlvbmFuLmMiXAorCSIuLlwuLlx0cmlvbmFuLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hQQVRIPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkiLi5cLi5cZG9jXGRvY19uYW4uaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1hQQVRIPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi4uXC4uXHRyaW9kZWYuaCJcCisJIi4uXC4uXHRyaW9uYW4uYyJcCisJIi4uXC4uXHRyaW9uYW4uaCJcCisJCitOT0RFUF9DUFBfWFBBVEg9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlxkb2NcZG9jX25hbi5oIlwKKwkiLi5cLi5cd2luMzJjb25maWcuaCJcCisJIi4uXC4uXHdpbkNFY29uZmlnLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgorCitERVBfQ1BQX1hQQVRIPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxkZWJ1Z1hNTC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aEludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBvaW50ZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLi5cLi5cdHJpb2RlZi5oIlwKKwkiLi5cLi5cdHJpb25hbi5jIlwKKwkiLi5cLi5cdHJpb25hbi5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YUEFUSD1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJIi4uXC4uXGRvY1xkb2NfbmFuLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9YUEFUSD1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwb2ludGVyLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi4uXC4uXHRyaW9kZWYuaCJcCisJIi4uXC4uXHRyaW9uYW4uYyJcCisJIi4uXC4uXHRyaW9uYW4uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWFBBVEg9XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlxkb2NcZG9jX25hbi5oIlwKKwkKKworIUVORElGIAorCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5ceHBvaW50ZXIuYworCishSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCisKK0RFUF9DUFBfWFBPSU49XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwb2ludGVyLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbkNFY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWFBPSU49XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKKworIyBQUk9QIEV4Y2x1ZGVfRnJvbV9CdWlsZCAxCitERVBfQ1BQX1hQT0lOPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxkZWJ1Z1hNTC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW5jb2RpbmcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVudGl0aWVzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxnbG9iYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxoYXNoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxIVE1McGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxsaXN0LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0aHJlYWRzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bGluay5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sZXJyb3IuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbElPLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxtZW1vcnkuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbHdpbjMydmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoSW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cG9pbnRlci5oIlwKKwkiLi5cLi5caW5jbHVkZVx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cbGlieG1sLmgiXAorCSIuLlwuLlx0cmlvLmgiXAorCSIuXHdpbmNlY29tcGF0LmgiXAorCQorTk9ERVBfQ1BQX1hQT0lOPVwKKwkiLi5cLi5cY29uZmlnLW1hYy5oIlwKKwkKKworIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxpYnhtbDIgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKKworREVQX0NQUF9YUE9JTj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aEludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBvaW50ZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YUE9JTj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgorCitERVBfQ1BQX1hQT0lOPVwKKwkiLi5cLi5cY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJCitOT0RFUF9DUFBfWFBPSU49XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCSIuLlwuLlx3aW4zMmNvbmZpZy5oIlwKKwkiLi5cLi5cd2luQ0Vjb25maWcuaCJcCisJCisKKyFFTFNFSUYgICIkKENGRykiID09ICJsaWJ4bWwyIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCisKK0RFUF9DUFBfWFBPSU49XAorCSIuLlwuLlxjb25maWcuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VySW50ZXJuYWxzLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxTQVguaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRocmVhZHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHRyZWUuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHVyaS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdmFsaWQuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhsaW5rLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxlcnJvci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sSU8uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbG1lbW9yeS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sdmVyc2lvbi5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sd2luMzJ2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBhdGhJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwb2ludGVyLmgiXAorCSIuLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgiXAorCSIuLlwuLlxsaWJ4bWwuaCJcCisJIi4uXC4uXHRyaW8uaCJcCisJIi5cd2luY2Vjb21wYXQuaCJcCisJCitOT0RFUF9DUFBfWFBPSU49XAorCSIuLlwuLlxjb25maWctbWFjLmgiXAorCQorCishRUxTRUlGICAiJChDRkcpIiA9PSAibGlieG1sMiAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKKworREVQX0NQUF9YUE9JTj1cCisJIi4uXC4uXGNvbmZpZy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZGVidWdYTUwuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXGVuY29kaW5nLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxlbnRpdGllcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcZ2xvYmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcaGFzaC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcSFRNTHBhcnNlci5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcbGlzdC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxccGFyc2VyLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXJJbnRlcm5hbHMuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXFNBWC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdGhyZWFkcy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdHJlZS5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxcdXJpLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx2YWxpZC5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaCJcCisJIi4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgiXAorCSIuLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aEludGVybmFscy5oIlwKKwkiLi5cLi5caW5jbHVkZVxsaWJ4bWxceHBvaW50ZXIuaCJcCisJIi4uXC4uXGluY2x1ZGVcd2luMzJjb25maWcuaCJcCisJIi4uXC4uXGxpYnhtbC5oIlwKKwkiLi5cLi5cdHJpby5oIlwKKwkiLlx3aW5jZWNvbXBhdC5oIlwKKwkKK05PREVQX0NQUF9YUE9JTj1cCisJIi4uXC4uXGNvbmZpZy1tYWMuaCJcCisJCisKKyFFTkRJRiAKKworIyBFbmQgU291cmNlIEZpbGUKKyMgRW5kIEdyb3VwCisjIEJlZ2luIEdyb3VwICJIZWFkZXIgRmlsZXMiCisKKyMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaDtocHA7aHh4O2htO2lubCIKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXGMxNG4uaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXGNhdGFsb2cuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXGRlYnVnWE1MLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFxET0NCcGFyc2VyLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFxlbmNvZGluZy5oCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5caW5jbHVkZVxsaWJ4bWxcZW50aXRpZXMuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXGdsb2JhbHMuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXGhhc2guaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUxwYXJzZXIuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXEhUTUx0cmVlLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxsaWJ4bWwuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXGxpc3QuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9mdHAuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXG5hbm9odHRwLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFxwYXJzZXIuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXHBhcnNlckludGVybmFscy5oCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5caW5jbHVkZVxsaWJ4bWxcU0FYLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFx0cmVlLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFx1cmkuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXHZhbGlkLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXHdpbjMyY29uZmlnLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uXHdpbmNlY29tcGF0LmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFx4aW5jbHVkZS5oCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5caW5jbHVkZVxsaWJ4bWxceGxpbmsuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXHhtbGVycm9yLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWxJTy5oCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5caW5jbHVkZVxsaWJ4bWxceG1sbWVtb3J5LmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx2ZXJzaW9uLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFx4bWx3aW4zMnZlcnNpb24uaAorIyBFbmQgU291cmNlIEZpbGUKKyMgQmVnaW4gU291cmNlIEZpbGUKKworU09VUkNFPS4uXC4uXGluY2x1ZGVcbGlieG1sXHhwYXRoLmgKKyMgRW5kIFNvdXJjZSBGaWxlCisjIEJlZ2luIFNvdXJjZSBGaWxlCisKK1NPVVJDRT0uLlwuLlxpbmNsdWRlXGxpYnhtbFx4cGF0aEludGVybmFscy5oCisjIEVuZCBTb3VyY2UgRmlsZQorIyBCZWdpbiBTb3VyY2UgRmlsZQorCitTT1VSQ0U9Li5cLi5caW5jbHVkZVxsaWJ4bWxceHBvaW50ZXIuaAorIyBFbmQgU291cmNlIEZpbGUKKyMgRW5kIEdyb3VwCisjIEVuZCBUYXJnZXQKKyMgRW5kIFByb2plY3QKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43Ljcvd2luMzIvd2luY2UvbGlieG1sMi52Y3cgYi9saWJ4bWwyLTIuNy43L3dpbjMyL3dpbmNlL2xpYnhtbDIudmN3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNTBjNGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3dpbjMyL3dpbmNlL2xpYnhtbDIudmN3CkBAIC0wLDAgKzEsNDEgQEAKK01pY3Jvc29mdCBlTWJlZGRlZCBWaXN1YWwgVG9vbHMgV29ya3NwYWNlIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDMuMDAKKyMgV0FSTklORzogRE8gTk9UIEVESVQgT1IgREVMRVRFIFRISVMgV09SS1NQQUNFIEZJTEUhCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworUHJvamVjdDogImxpYnhtbDIiPS5cbGlieG1sMi52Y3AgLSBQYWNrYWdlIE93bmVyPTw0PgorCitQYWNrYWdlPTw1Pgore3t7Cit9fX0KKworUGFja2FnZT08ND4KK3t7eworfX19CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworUHJvamVjdDogInBwY1Rlc3QiPS5ccHBjVGVzdFxwcGNUZXN0LnZjcCAtIFBhY2thZ2UgT3duZXI9PDQ+CisKK1BhY2thZ2U9PDU+Cit7e3sKK319fQorCitQYWNrYWdlPTw0Pgore3t7Cit9fX0KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitHbG9iYWw6CisKK1BhY2thZ2U9PDU+Cit7e3sKK319fQorCitQYWNrYWdlPTwzPgore3t7Cit9fX0KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3dpbjMyL3dpbmNlL3dpbmNlY29tcGF0LmMgYi9saWJ4bWwyLTIuNy43L3dpbjMyL3dpbmNlL3dpbmNlY29tcGF0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ4ZGY4NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43Ljcvd2luMzIvd2luY2Uvd2luY2Vjb21wYXQuYwpAQCAtMCwwICsxLDY5IEBACisvKgorICogd2luY2Vjb21wYXQuYyA6IHdpbmNlIGNvbXBhdGlibGl0eSBtb2R1bGUKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogamF2aWVyQHRpcmVzaWFzc29mdC5jb20KKyAqCisgKiAxNyBTZXAgMjAwMiAgY3JlYXRlZAorICovCisKKyNpbmNsdWRlICJ3aW5jZWNvbXBhdC5oIgorCitjaGFyICpzdHJFcnJvcltdPSB7IkVycm9yIDAiLCIiLCJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwiIiwiIiwiIiwiIiwiQXJnIGxpc3QgdG9vIGxvbmciLAorCSJFeGVjIGZvcm1hdCBlcnJvciIsIkJhZCBmaWxlIG51bWJlciIsIiIsIiIsIk5vdCBlbm91Z2ggY29yZSIsIlBlcm1pc3Npb24gZGVuaWVkIiwiIiwiIiwKKwkiIiwiRmlsZSBleGlzdHMiLCJDcm9zcy1kZXZpY2UgbGluayIsIiIsIiIsIiIsIkludmFsaWQgYXJndW1lbnQiLCIiLCJUb28gbWFueSBvcGVuIGZpbGVzIiwKKwkiIiwiIiwiIiwiTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UiLCIiLCIiLCIiLCIiLCJNYXRoIGFyZ3VtZW50IiwiUmVzdWx0IHRvbyBsYXJnZSIsIiIsCisJIlJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyIiwgIlVua25vd24gZXJyb3IgdW5kZXIgd2luY2UifTsKKworCitpbnQgZXJybm89MDsKKworaW50IHJlYWQoaW50IGhhbmRsZSwgY2hhciAqYnVmZmVyLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCXJldHVybihmcmVhZCgmYnVmZmVyWzBdLCBsZW4sIDEsIChGSUxFICopIGhhbmRsZSkpOworfQorCitpbnQgd3JpdGUoaW50IGhhbmRsZSwgY29uc3QgY2hhciAqYnVmZmVyLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCXJldHVybihmd3JpdGUoJmJ1ZmZlclswXSwgbGVuLDEsKEZJTEUgKikgaGFuZGxlKSk7Cit9CisKK2ludCBvcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lLGludCBvZmxhZywgLi4uKQoreworCWNoYXIgbW9kZVszXTsgLyogbW9kZVswXSA9Incvci9hIiAgbW9kZVsxXT0iKyIgKi8KKwltb2RlWzJdPTA7CisJaWYgKCBvZmxhZz09KE9fV1JPTkxZfE9fQ1JFQVQpICkKKwkJbW9kZVswXT0idyI7CisJZWxzZSBpZiAob2ZsYWc9PU9fUkRPTkxZKQorCQltb2RlWzBdPSJyIjsKKwlyZXR1cm4gZm9wZW4oZmlsZW5hbWUsIG1vZGUpOworCit9CisKK2ludCBjbG9zZShpbnQgaGFuZGxlKQoreworCXJldHVybiAoIGZjbG9zZSgoRklMRSAqKSBoYW5kbGUpICk7Cit9CisKKworY2hhciAqZ2V0Y3dkKCBjaGFyICpidWZmZXIsIHVuc2lnbmVkIGludCBzaXplKQoreworICAgIC8qIFdpbmRvd3MgQ0UgZG9uJ3QgaGF2ZSB0aGUgY29uY2VwdCBvZiBhIGN1cnJlbnQgZGlyZWN0b3J5CisgICAgICogc28gd2UganVzdCByZXR1cm4gTlVMTCB0byBpbmRpY2F0ZSBhbiBlcnJvcgorICAgICAqLworICAgIHJldHVybiBOVUxMOworfQorCitjaGFyICpnZXRlbnYoIGNvbnN0IGNoYXIgKnZhcm5hbWUgKQoreworCXJldHVybiBOVUxMOworfQorCitjaGFyICpzdHJlcnJvcihpbnQgZXJybnVtKQoreworCWlmIChlcnJudW0+TUFYX1NUUkVSUk9SKQorCQlyZXR1cm4gc3RyRXJyb3JbTUFYX1NUUkVSUk9SXTsKKwllbHNlCisJCXJldHVybiBzdHJFcnJvcltlcnJudW1dOworfQpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS93aW5jZWNvbXBhdC5oIGIvbGlieG1sMi0yLjcuNy93aW4zMi93aW5jZS93aW5jZWNvbXBhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMGYzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3dpbjMyL3dpbmNlL3dpbmNlY29tcGF0LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIHdpbmNlY29tcGF0LmggOiB3aW5jZSBjb21wYXRpYmxpdHkgaGVhZGVyIGZpbGUgCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGphdmllckB0aXJlc2lhc3NvZnQuY29tCisgKgorICogMTcgU2VwIDIwMDIgIGNyZWF0ZWQKKyAqLworCisjaWZuZGVmIF9fV0lOQ0VDT01QQVRfSF9fCisjZGVmaW5lIF9fV0lOQ0VDT01QQVRfSF9fCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHdpbmJhc2UuaD4KKworI2RlZmluZSBNQVhfU1RSRVJST1IgMzEKKworI2RlZmluZSBPX1JET05MWSAgICAgICAweDAwMDAgIC8qIG9wZW4gZm9yIHJlYWRpbmcgb25seSAqLworI2RlZmluZSBPX1dST05MWSAgICAgICAweDAwMDEgIC8qIG9wZW4gZm9yIHdyaXRpbmcgb25seSAqLworI2RlZmluZSBPX1JEV1IgICAgICAgICAweDAwMDIgIC8qIG9wZW4gZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgKi8KKyNkZWZpbmUgT19BUFBFTkQgICAgICAgMHgwMDA4ICAvKiB3cml0ZXMgZG9uZSBhdCBlb2YgKi8KKworI2RlZmluZSBPX0NSRUFUICAgICAgICAweDAxMDAgIC8qIGNyZWF0ZSBhbmQgb3BlbiBmaWxlICovCisjZGVmaW5lIE9fVFJVTkMgICAgICAgIDB4MDIwMCAgLyogb3BlbiBhbmQgdHJ1bmNhdGUgKi8KKyNkZWZpbmUgT19FWENMICAgICAgICAgMHgwNDAwICAvKiBvcGVuIG9ubHkgaWYgZmlsZSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgKi8KKworI2RlZmluZSBCVUZTSVogNDA5NgorCitleHRlcm4gaW50IGVycm5vOworLyogCisJUHJvdG90eXBlcyAKKyovCitpbnQgcmVhZChpbnQgaGFuZGxlLCBjaGFyICpidWZmZXIsIHVuc2lnbmVkIGludCBsZW4pOworaW50IHdyaXRlKGludCBoYW5kbGUsIGNvbnN0IGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgaW50IGxlbik7CitpbnQgb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSxpbnQgb2ZsYWcsIC4uLik7CitpbnQgY2xvc2UoaW50IGhhbmRsZSk7CitjaGFyICpnZXRlbnYoIGNvbnN0IGNoYXIgKnZhcm5hbWUgKTsKK2NoYXIgKmdldGN3ZCggY2hhciAqYnVmZmVyLCB1bnNpZ25lZCBpbnQgc2l6ZSk7CitjaGFyICpzdHJlcnJvcihpbnQgZXJybnVtKTsKKworLyoKKwlNYWNybydlZCBpbmV4aXN0YW50IGZ1bnRpb24gbmFtZXMKKworKi8KKyNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCisjZGVmaW5lIHZzbnByaW50ZihiLGMsZixhKSBfdnNucHJpbnRmKGIsYyxmLGEpCisjZGVmaW5lIHBlcnJvcihfdCkgTWVzc2FnZUJveChOVUxMLCBfVCgiX3QiKSwgX1QoIkVycm9yL1dhcm5pbmciKSwgTUJfT0spCisKKyNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcveGluY2x1ZGUuYyBiL2xpYnhtbDItMi43LjcveGluY2x1ZGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTE2ZmZhCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy94aW5jbHVkZS5jCkBAIC0wLDAgKzEsMjU5MSBAQAorLyoKKyAqIHhpbmNsdWRlLmMgOiBDb2RlIHRvIGltcGxlbWVudCBYSW5jbHVkZSBwcm9jZXNzaW5nCisgKgorICogV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSBXM0MgTGFzdCBDYWxsIFdvcmtpbmcgRHJhZnQgMTAgTm92ZW1iZXIgMjAwMworICogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9XRC14aW5jbHVkZS0yMDAzMTExMAorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwb2ludGVyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2luY2x1ZGUgPGxpYnhtbC9lbmNvZGluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC94aW5jbHVkZS5oPgorCisKKyNkZWZpbmUgWElOQ0xVREVfTUFYX0RFUFRIIDQwCisKKy8qICNkZWZpbmUgREVCVUdfWElOQ0xVREUgKi8KKyNpZmRlZiBERUJVR19YSU5DTFVERQorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL2RlYnVnWE1MLmg+CisjZW5kaWYKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJWEluY2x1ZGUgY29udGV4dCBoYW5kbGluZwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIEFuIFhJbmNsdWRlIGNvbnRleHQKKyAqLwordHlwZWRlZiB4bWxDaGFyICp4bWxVUkw7CisKK3R5cGVkZWYgc3RydWN0IF94bWxYSW5jbHVkZVJlZiB4bWxYSW5jbHVkZVJlZjsKK3R5cGVkZWYgeG1sWEluY2x1ZGVSZWYgKnhtbFhJbmNsdWRlUmVmUHRyOworc3RydWN0IF94bWxYSW5jbHVkZVJlZiB7CisgICAgeG1sQ2hhciAgICAgICAgICAgICAgKlVSSTsgLyogdGhlIGZ1bGx5IHJlc29sdmVkIHJlc291cmNlIFVSTCAqLworICAgIHhtbENoYXIgICAgICAgICAqZnJhZ21lbnQ7IC8qIHRoZSBmcmFnbWVudCBpbiB0aGUgVVJJICovCisgICAgeG1sRG9jUHRyCQkgIGRvYzsgLyogdGhlIHBhcnNlZCBkb2N1bWVudCAqLworICAgIHhtbE5vZGVQdHIgICAgICAgICAgICByZWY7IC8qIHRoZSBub2RlIG1ha2luZyB0aGUgcmVmZXJlbmNlIGluIHRoZSBzb3VyY2UgKi8KKyAgICB4bWxOb2RlUHRyICAgICAgICAgICAgaW5jOyAvKiB0aGUgaW5jbHVkZWQgY29weSAqLworICAgIGludCAgICAgICAgICAgICAgICAgICB4bWw7IC8qIHhtbCBvciB0eHQgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgIGNvdW50OyAvKiBob3cgbWFueSByZWZzIHVzZSB0aGF0IHNwZWNpZmljIGRvYyAqLworICAgIHhtbFhQYXRoT2JqZWN0UHRyICAgIHhwdHI7IC8qIHRoZSB4cG9pbnRlciBpZiBuZWVkZWQgKi8KKyAgICBpbnQJCSAgICAgIGVtcHR5RmI7IC8qIGZsYWcgdG8gc2hvdyBmYWxsYmFjayBlbXB0eSAqLworfTsKKworc3RydWN0IF94bWxYSW5jbHVkZUN0eHQgeworICAgIHhtbERvY1B0ciAgICAgICAgICAgICBkb2M7IC8qIHRoZSBzb3VyY2UgZG9jdW1lbnQgKi8KKyAgICBpbnQgICAgICAgICAgICAgICBpbmNCYXNlOyAvKiB0aGUgZmlyc3QgaW5jbHVkZSBmb3IgdGhpcyBkb2N1bWVudCAqLworICAgIGludCAgICAgICAgICAgICAgICAgaW5jTnI7IC8qIG51bWJlciBvZiBpbmNsdWRlcyAqLworICAgIGludCAgICAgICAgICAgICAgICBpbmNNYXg7IC8qIHNpemUgb2YgaW5jbHVkZXMgdGFiICovCisgICAgeG1sWEluY2x1ZGVSZWZQdHIgKmluY1RhYjsgLyogYXJyYXkgb2YgaW5jbHVkZWQgcmVmZXJlbmNlcyAqLworCisgICAgaW50ICAgICAgICAgICAgICAgICB0eHROcjsgLyogbnVtYmVyIG9mIHVucGFyc2VkIGRvY3VtZW50cyAqLworICAgIGludCAgICAgICAgICAgICAgICB0eHRNYXg7IC8qIHNpemUgb2YgdW5wYXJzZWQgZG9jdW1lbnRzIHRhYiAqLworICAgIHhtbE5vZGVQdHIgICAgICAgICp0eHRUYWI7IC8qIGFycmF5IG9mIHVucGFyc2VkIHRleHQgbm9kZXMgKi8KKyAgICB4bWxVUkwgICAgICAgICAqdHh0dXJsVGFiOyAvKiBhcnJheSBvZiB1bnBhcnNlZCB0ZXh0IFVSTHMgKi8KKworICAgIHhtbENoYXIgKiAgICAgICAgICAgICB1cmw7IC8qIHRoZSBjdXJyZW50IFVSTCBwcm9jZXNzZWQgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgIHVybE5yOyAvKiBudW1iZXIgb2YgVVJMcyBzdGFja2VkICovCisgICAgaW50ICAgICAgICAgICAgICAgIHVybE1heDsgLyogc2l6ZSBvZiBVUkwgc3RhY2sgKi8KKyAgICB4bWxDaGFyICogICAgICAgICAqdXJsVGFiOyAvKiBVUkwgc3RhY2sgKi8KKworICAgIGludCAgICAgICAgICAgICAgbmJFcnJvcnM7IC8qIHRoZSBudW1iZXIgb2YgZXJyb3JzIGRldGVjdGVkICovCisgICAgaW50ICAgICAgICAgICAgICAgIGxlZ2FjeTsgLyogdXNpbmcgWElOQ0xVREVfT0xEX05TICovCisgICAgaW50ICAgICAgICAgICAgcGFyc2VGbGFnczsgLyogdGhlIGZsYWdzIHVzZWQgZm9yIHBhcnNpbmcgWE1MIGRvY3VtZW50cyAqLworICAgIHhtbENoYXIgKgkJIGJhc2U7IC8qIHRoZSBjdXJyZW50IHhtbDpiYXNlICovCisKKyAgICB2b2lkICAgICAgICAgICAgKl9wcml2YXRlOyAvKiBhcHBsaWNhdGlvbiBkYXRhICovCit9OworCitzdGF0aWMgaW50Cit4bWxYSW5jbHVkZURvUHJvY2Vzcyh4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciB0cmVlKTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJCVhJbmNsdWRlIGVycm9yIGhhbmRsZXIJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhJbmNsdWRlRXJyTWVtb3J5OgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb24KKyAqCisgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBjb25kaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbFhJbmNsdWRlRXJyTWVtb3J5KHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBpZiAoY3R4dCAhPSBOVUxMKQorCWN0eHQtPm5iRXJyb3JzKys7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGN0eHQsIG5vZGUsIFhNTF9GUk9NX1hJTkNMVURFLAorICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX05PX01FTU9SWSwgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKwkJICAgIGV4dHJhLCBOVUxMLCBOVUxMLCAwLCAwLAorCQkgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVFcnI6CisgKiBAY3R4dDogdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgY29udGV4dCBub2RlCisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9uCisgKgorICogSGFuZGxlIGFuIFhJbmNsdWRlIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYSW5jbHVkZUVycih4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKmV4dHJhKQoreworICAgIGlmIChjdHh0ICE9IE5VTEwpCisJY3R4dC0+bmJFcnJvcnMrKzsKKyAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgY3R4dCwgbm9kZSwgWE1MX0ZST01fWElOQ0xVREUsCisgICAgICAgICAgICAgICAgICAgIGVycm9yLCBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorCQkgICAgKGNvbnN0IGNoYXIgKikgZXh0cmEsIE5VTEwsIE5VTEwsIDAsIDAsCisJCSAgICBtc2csIChjb25zdCBjaGFyICopIGV4dHJhKTsKK30KKworI2lmIDAKKy8qKgorICogeG1sWEluY2x1ZGVXYXJuOgorICogQGN0eHQ6IHRoZSBYSW5jbHVkZSBjb250ZXh0CisgKiBAbm9kZTogdGhlIGNvbnRleHQgbm9kZQorICogQG1zZzogIHRoZSBlcnJvciBtZXNzYWdlCisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbgorICoKKyAqIEVtaXQgYW4gWEluY2x1ZGUgd2FybmluZy4KKyAqLworc3RhdGljIHZvaWQKK3htbFhJbmNsdWRlV2Fybih4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKmV4dHJhKQoreworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBjdHh0LCBub2RlLCBYTUxfRlJPTV9YSU5DTFVERSwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IsIFhNTF9FUlJfV0FSTklORywgTlVMTCwgMCwKKwkJICAgIChjb25zdCBjaGFyICopIGV4dHJhLCBOVUxMLCBOVUxMLCAwLCAwLAorCQkgICAgbXNnLCAoY29uc3QgY2hhciAqKSBleHRyYSk7Cit9CisjZW5kaWYKKworLyoqCisgKiB4bWxYSW5jbHVkZUdldFByb3A6CisgKiBAY3R4dDogIHRoZSBYSW5jbHVkZSBjb250ZXh0CisgKiBAY3VyOiAgdGhlIG5vZGUKKyAqIEBuYW1lOiAgdGhlIGF0dHJpYnV0ZSBuYW1lCisgKgorICogR2V0IGFuIFhJbmNsdWRlIGF0dHJpYnV0ZQorICoKKyAqIFJldHVybnMgdGhlIHZhbHVlICh0byBiZSBmcmVlZCkgb3IgTlVMTCBpZiBub3QgZm91bmQKKyAqLworc3RhdGljIHhtbENoYXIgKgoreG1sWEluY2x1ZGVHZXRQcm9wKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1ciwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgeG1sQ2hhciAqcmV0OworCisgICAgcmV0ID0geG1sR2V0TnNQcm9wKGN1ciwgWElOQ0xVREVfTlMsIG5hbWUpOworICAgIGlmIChyZXQgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHJldCk7CisgICAgaWYgKGN0eHQtPmxlZ2FjeSAhPSAwKSB7CisJcmV0ID0geG1sR2V0TnNQcm9wKGN1ciwgWElOQ0xVREVfT0xEX05TLCBuYW1lKTsKKwlpZiAocmV0ICE9IE5VTEwpCisJICAgIHJldHVybihyZXQpOworICAgIH0KKyAgICByZXQgPSB4bWxHZXRQcm9wKGN1ciwgbmFtZSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisvKioKKyAqIHhtbFhJbmNsdWRlRnJlZVJlZjoKKyAqIEByZWY6IHRoZSBYSW5jbHVkZSByZWZlcmVuY2UKKyAqCisgKiBGcmVlIGFuIFhJbmNsdWRlIHJlZmVyZW5jZQorICovCitzdGF0aWMgdm9pZAoreG1sWEluY2x1ZGVGcmVlUmVmKHhtbFhJbmNsdWRlUmVmUHRyIHJlZikgeworICAgIGlmIChyZWYgPT0gTlVMTCkKKwlyZXR1cm47CisjaWZkZWYgREVCVUdfWElOQ0xVREUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkZyZWVpbmcgcmVmXG4iKTsKKyNlbmRpZgorICAgIGlmIChyZWYtPmRvYyAhPSBOVUxMKSB7CisjaWZkZWYgREVCVUdfWElOQ0xVREUKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkZyZWVpbmcgZG9jICVzXG4iLCByZWYtPlVSSSk7CisjZW5kaWYKKwl4bWxGcmVlRG9jKHJlZi0+ZG9jKTsKKyAgICB9CisgICAgaWYgKHJlZi0+VVJJICE9IE5VTEwpCisJeG1sRnJlZShyZWYtPlVSSSk7CisgICAgaWYgKHJlZi0+ZnJhZ21lbnQgIT0gTlVMTCkKKwl4bWxGcmVlKHJlZi0+ZnJhZ21lbnQpOworICAgIGlmIChyZWYtPnhwdHIgIT0gTlVMTCkKKwl4bWxYUGF0aEZyZWVPYmplY3QocmVmLT54cHRyKTsKKyAgICB4bWxGcmVlKHJlZik7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVOZXdSZWY6CisgKiBAY3R4dDogdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqIEBVUkk6ICB0aGUgcmVzb3VyY2UgVVJJCisgKgorICogQ3JlYXRlcyBhIG5ldyByZWZlcmVuY2Ugd2l0aGluIGFuIFhJbmNsdWRlIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc2V0CisgKi8KK3N0YXRpYyB4bWxYSW5jbHVkZVJlZlB0cgoreG1sWEluY2x1ZGVOZXdSZWYoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKlVSSSwKKwkgICAgICAgICAgeG1sTm9kZVB0ciByZWYpIHsKKyAgICB4bWxYSW5jbHVkZVJlZlB0ciByZXQ7CisKKyNpZmRlZiBERUJVR19YSU5DTFVERQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiTmV3IHJlZiAlc1xuIiwgVVJJKTsKKyNlbmRpZgorICAgIHJldCA9ICh4bWxYSW5jbHVkZVJlZlB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYSW5jbHVkZVJlZikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYSW5jbHVkZUVyck1lbW9yeShjdHh0LCByZWYsICJncm93aW5nIFhJbmNsdWRlIGNvbnRleHQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxYSW5jbHVkZVJlZikpOworICAgIGlmIChVUkkgPT0gTlVMTCkKKwlyZXQtPlVSSSA9IE5VTEw7CisgICAgZWxzZQorCXJldC0+VVJJID0geG1sU3RyZHVwKFVSSSk7CisgICAgcmV0LT5mcmFnbWVudCA9IE5VTEw7CisgICAgcmV0LT5yZWYgPSByZWY7CisgICAgcmV0LT5kb2MgPSBOVUxMOworICAgIHJldC0+Y291bnQgPSAwOworICAgIHJldC0+eG1sID0gMDsKKyAgICByZXQtPmluYyA9IE5VTEw7CisgICAgaWYgKGN0eHQtPmluY01heCA9PSAwKSB7CisJY3R4dC0+aW5jTWF4ID0gNDsKKyAgICAgICAgY3R4dC0+aW5jVGFiID0gKHhtbFhJbmNsdWRlUmVmUHRyICopIHhtbE1hbGxvYyhjdHh0LT5pbmNNYXggKgorCQkJCQkgICAgICBzaXplb2YoY3R4dC0+aW5jVGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT5pbmNUYWIgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVyck1lbW9yeShjdHh0LCByZWYsICJncm93aW5nIFhJbmNsdWRlIGNvbnRleHQiKTsKKwkgICAgeG1sWEluY2x1ZGVGcmVlUmVmKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfQorICAgIGlmIChjdHh0LT5pbmNOciA+PSBjdHh0LT5pbmNNYXgpIHsKKwljdHh0LT5pbmNNYXggKj0gMjsKKyAgICAgICAgY3R4dC0+aW5jVGFiID0gKHhtbFhJbmNsdWRlUmVmUHRyICopIHhtbFJlYWxsb2MoY3R4dC0+aW5jVGFiLAorCSAgICAgICAgICAgICBjdHh0LT5pbmNNYXggKiBzaXplb2YoY3R4dC0+aW5jVGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT5pbmNUYWIgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVyck1lbW9yeShjdHh0LCByZWYsICJncm93aW5nIFhJbmNsdWRlIGNvbnRleHQiKTsKKwkgICAgeG1sWEluY2x1ZGVGcmVlUmVmKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfQorICAgIGN0eHQtPmluY1RhYltjdHh0LT5pbmNOcisrXSA9IHJldDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZU5ld0NvbnRleHQ6CisgKiBAZG9jOiAgYW4gWE1MIERvY3VtZW50CisgKgorICogQ3JlYXRlcyBhIG5ldyBYSW5jbHVkZSBjb250ZXh0CisgKgorICogUmV0dXJucyB0aGUgbmV3IHNldAorICovCit4bWxYSW5jbHVkZUN0eHRQdHIKK3htbFhJbmNsdWRlTmV3Q29udGV4dCh4bWxEb2NQdHIgZG9jKSB7CisgICAgeG1sWEluY2x1ZGVDdHh0UHRyIHJldDsKKworI2lmZGVmIERFQlVHX1hJTkNMVURFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJOZXcgY29udGV4dFxuIik7CisjZW5kaWYKKyAgICBpZiAoZG9jID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldCA9ICh4bWxYSW5jbHVkZUN0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWEluY2x1ZGVDdHh0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sWEluY2x1ZGVFcnJNZW1vcnkoTlVMTCwgKHhtbE5vZGVQdHIpIGRvYywKKwkgICAgICAgICAgICAgICAgICAgICAiY3JlYXRpbmcgWEluY2x1ZGUgY29udGV4dCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFhJbmNsdWRlQ3R4dCkpOworICAgIHJldC0+ZG9jID0gZG9jOworICAgIHJldC0+aW5jTnIgPSAwOworICAgIHJldC0+aW5jQmFzZSA9IDA7CisgICAgcmV0LT5pbmNNYXggPSAwOworICAgIHJldC0+aW5jVGFiID0gTlVMTDsKKyAgICByZXQtPm5iRXJyb3JzID0gMDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZVVSTFB1c2g6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQHZhbHVlOiAgdGhlIHVybAorICoKKyAqIFB1c2hlcyBhIG5ldyB1cmwgb24gdG9wIG9mIHRoZSB1cmwgc3RhY2sKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhJbmNsdWRlVVJMUHVzaCh4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwKKwkgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlKQoreworICAgIGlmIChjdHh0LT51cmxOciA+IFhJTkNMVURFX01BWF9ERVBUSCkgeworCXhtbFhJbmNsdWRlRXJyKGN0eHQsIE5VTEwsIFhNTF9YSU5DTFVERV9SRUNVUlNJT04sCisJICAgICAgICAgICAgICAgImRldGVjdGVkIGEgcmVjdXJzaW9uIGluICVzXG4iLCB2YWx1ZSk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPnVybFRhYiA9PSBOVUxMKSB7CisJY3R4dC0+dXJsTWF4ID0gNDsKKwljdHh0LT51cmxOciA9IDA7CisJY3R4dC0+dXJsVGFiID0gKHhtbENoYXIgKiAqKSB4bWxNYWxsb2MoCisJCSAgICAgICAgY3R4dC0+dXJsTWF4ICogc2l6ZW9mKGN0eHQtPnVybFRhYlswXSkpOworICAgICAgICBpZiAoY3R4dC0+dXJsVGFiID09IE5VTEwpIHsKKwkgICAgeG1sWEluY2x1ZGVFcnJNZW1vcnkoY3R4dCwgTlVMTCwgImFkZGluZyBVUkwiKTsKKyAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjdHh0LT51cmxOciA+PSBjdHh0LT51cmxNYXgpIHsKKyAgICAgICAgY3R4dC0+dXJsTWF4ICo9IDI7CisgICAgICAgIGN0eHQtPnVybFRhYiA9CisgICAgICAgICAgICAoeG1sQ2hhciAqICopIHhtbFJlYWxsb2MoY3R4dC0+dXJsVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT51cmxNYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY3R4dC0+dXJsVGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT51cmxUYWIgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVyck1lbW9yeShjdHh0LCBOVUxMLCAiYWRkaW5nIFVSTCIpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgY3R4dC0+dXJsID0gY3R4dC0+dXJsVGFiW2N0eHQtPnVybE5yXSA9IHhtbFN0cmR1cCh2YWx1ZSk7CisgICAgcmV0dXJuIChjdHh0LT51cmxOcisrKTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZVVSTFBvcDoKKyAqIEBjdHh0OiB0aGUgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQb3BzIHRoZSB0b3AgVVJMIGZyb20gdGhlIFVSTCBzdGFjaworICovCitzdGF0aWMgdm9pZAoreG1sWEluY2x1ZGVVUkxQb3AoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sQ2hhciAqIHJldDsKKworICAgIGlmIChjdHh0LT51cmxOciA8PSAwKQorICAgICAgICByZXR1cm47CisgICAgY3R4dC0+dXJsTnItLTsKKyAgICBpZiAoY3R4dC0+dXJsTnIgPiAwKQorICAgICAgICBjdHh0LT51cmwgPSBjdHh0LT51cmxUYWJbY3R4dC0+dXJsTnIgLSAxXTsKKyAgICBlbHNlCisgICAgICAgIGN0eHQtPnVybCA9IE5VTEw7CisgICAgcmV0ID0gY3R4dC0+dXJsVGFiW2N0eHQtPnVybE5yXTsKKyAgICBjdHh0LT51cmxUYWJbY3R4dC0+dXJsTnJdID0gTlVMTDsKKyAgICBpZiAocmV0ICE9IE5VTEwpCisJeG1sRnJlZShyZXQpOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlRnJlZUNvbnRleHQ6CisgKiBAY3R4dDogdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqCisgKiBGcmVlIGFuIFhJbmNsdWRlIGNvbnRleHQKKyAqLwordm9pZAoreG1sWEluY2x1ZGVGcmVlQ29udGV4dCh4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCkgeworICAgIGludCBpOworCisjaWZkZWYgREVCVUdfWElOQ0xVREUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkZyZWVpbmcgY29udGV4dFxuIik7CisjZW5kaWYKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybjsKKyAgICB3aGlsZSAoY3R4dC0+dXJsTnIgPiAwKQorCXhtbFhJbmNsdWRlVVJMUG9wKGN0eHQpOworICAgIGlmIChjdHh0LT51cmxUYWIgIT0gTlVMTCkKKwl4bWxGcmVlKGN0eHQtPnVybFRhYik7CisgICAgZm9yIChpID0gMDtpIDwgY3R4dC0+aW5jTnI7aSsrKSB7CisJaWYgKGN0eHQtPmluY1RhYltpXSAhPSBOVUxMKQorCSAgICB4bWxYSW5jbHVkZUZyZWVSZWYoY3R4dC0+aW5jVGFiW2ldKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPnR4dHVybFRhYiAhPSBOVUxMKSB7CisJZm9yIChpID0gMDtpIDwgY3R4dC0+dHh0TnI7aSsrKSB7CisJICAgIGlmIChjdHh0LT50eHR1cmxUYWJbaV0gIT0gTlVMTCkKKwkJeG1sRnJlZShjdHh0LT50eHR1cmxUYWJbaV0pOworCX0KKyAgICB9CisgICAgaWYgKGN0eHQtPmluY1RhYiAhPSBOVUxMKQorCXhtbEZyZWUoY3R4dC0+aW5jVGFiKTsKKyAgICBpZiAoY3R4dC0+dHh0VGFiICE9IE5VTEwpCisJeG1sRnJlZShjdHh0LT50eHRUYWIpOworICAgIGlmIChjdHh0LT50eHR1cmxUYWIgIT0gTlVMTCkKKwl4bWxGcmVlKGN0eHQtPnR4dHVybFRhYik7CisgICAgaWYgKGN0eHQtPmJhc2UgIT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlKGN0eHQtPmJhc2UpOworICAgIH0KKyAgICB4bWxGcmVlKGN0eHQpOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlUGFyc2VGaWxlOgorICogQGN0eHQ6ICB0aGUgWEluY2x1ZGUgY29udGV4dAorICogQFVSTDogIHRoZSBVUkwgb3IgZmlsZSBwYXRoCisgKiAKKyAqIHBhcnNlIGEgZG9jdW1lbnQgZm9yIFhJbmNsdWRlCisgKi8KK3N0YXRpYyB4bWxEb2NQdHIKK3htbFhJbmNsdWRlUGFyc2VGaWxlKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpVUkwpIHsKKyAgICB4bWxEb2NQdHIgcmV0OworICAgIHhtbFBhcnNlckN0eHRQdHIgcGN0eHQ7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXRTdHJlYW07CisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBwY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKyAgICBpZiAocGN0eHQgPT0gTlVMTCkgeworCXhtbFhJbmNsdWRlRXJyTWVtb3J5KGN0eHQsIE5VTEwsICJjYW5ub3QgYWxsb2NhdGUgcGFyc2VyIGNvbnRleHQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBwYXNzIGluIHRoZSBhcHBsaWNhdGlvbiBkYXRhIHRvIHRoZSBwYXJzZXIgY29udGV4dC4KKyAgICAgKi8KKyAgICBwY3R4dC0+X3ByaXZhdGUgPSBjdHh0LT5fcHJpdmF0ZTsKKyAgICAKKyAgICAvKgorICAgICAqIHRyeSB0byBlbnN1cmUgdGhhdCBuZXcgZG9jdW1lbnRzIGluY2x1ZGVkIGFyZSBhY3R1YWxseQorICAgICAqIGJ1aWx0IHdpdGggdGhlIHNhbWUgZGljdGlvbmFyeSBhcyB0aGUgaW5jbHVkaW5nIGRvY3VtZW50LgorICAgICAqLworICAgIGlmICgoY3R4dC0+ZG9jICE9IE5VTEwpICYmIChjdHh0LT5kb2MtPmRpY3QgIT0gTlVMTCkpIHsKKyAgICAgICBpZiAocGN0eHQtPmRpY3QgIT0gTlVMTCkKKyAgICAgICAgICAgIHhtbERpY3RGcmVlKHBjdHh0LT5kaWN0KTsKKwlwY3R4dC0+ZGljdCA9IGN0eHQtPmRvYy0+ZGljdDsKKwl4bWxEaWN0UmVmZXJlbmNlKHBjdHh0LT5kaWN0KTsKKyAgICB9CisKKyAgICB4bWxDdHh0VXNlT3B0aW9ucyhwY3R4dCwgY3R4dC0+cGFyc2VGbGFncyB8IFhNTF9QQVJTRV9EVERMT0FEKTsKKyAgICAKKyAgICBpbnB1dFN0cmVhbSA9IHhtbExvYWRFeHRlcm5hbEVudGl0eShVUkwsIE5VTEwsIHBjdHh0KTsKKyAgICBpZiAoaW5wdXRTdHJlYW0gPT0gTlVMTCkgeworCXhtbEZyZWVQYXJzZXJDdHh0KHBjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgaW5wdXRQdXNoKHBjdHh0LCBpbnB1dFN0cmVhbSk7CisKKyAgICBpZiAocGN0eHQtPmRpcmVjdG9yeSA9PSBOVUxMKQorICAgICAgICBwY3R4dC0+ZGlyZWN0b3J5ID0geG1sUGFyc2VyR2V0RGlyZWN0b3J5KFVSTCk7CisKKyAgICBwY3R4dC0+bG9hZHN1YnNldCB8PSBYTUxfREVURUNUX0lEUzsKKworICAgIHhtbFBhcnNlRG9jdW1lbnQocGN0eHQpOworCisgICAgaWYgKHBjdHh0LT53ZWxsRm9ybWVkKSB7CisgICAgICAgIHJldCA9IHBjdHh0LT5teURvYzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldCA9IE5VTEw7CisJaWYgKHBjdHh0LT5teURvYyAhPSBOVUxMKQorCSAgICB4bWxGcmVlRG9jKHBjdHh0LT5teURvYyk7CisgICAgICAgIHBjdHh0LT5teURvYyA9IE5VTEw7CisgICAgfQorICAgIHhtbEZyZWVQYXJzZXJDdHh0KHBjdHh0KTsKKyAgICAKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZUFkZE5vZGU6CisgKiBAY3R4dDogIHRoZSBYSW5jbHVkZSBjb250ZXh0CisgKiBAY3VyOiAgdGhlIG5ldyBub2RlCisgKiAKKyAqIEFkZCBhIG5ldyBub2RlIHRvIHByb2Nlc3MgdG8gYW4gWEluY2x1ZGUgY29udGV4dAorICovCitzdGF0aWMgaW50Cit4bWxYSW5jbHVkZUFkZE5vZGUoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgeG1sWEluY2x1ZGVSZWZQdHIgcmVmOworICAgIHhtbFVSSVB0ciB1cmk7CisgICAgeG1sQ2hhciAqVVJMOworICAgIHhtbENoYXIgKmZyYWdtZW50ID0gTlVMTDsKKyAgICB4bWxDaGFyICpocmVmOworICAgIHhtbENoYXIgKnBhcnNlOworICAgIHhtbENoYXIgKmJhc2U7CisgICAgeG1sQ2hhciAqVVJJOworICAgIGludCB4bWwgPSAxLCBpOyAvKiBkZWZhdWx0IElzc3VlIDY0ICovCisgICAgaW50IGxvY2FsID0gMDsKKworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisjaWZkZWYgREVCVUdfWElOQ0xVREUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkFkZCBub2RlXG4iKTsKKyNlbmRpZgorICAgIC8qCisgICAgICogcmVhZCB0aGUgYXR0cmlidXRlcworICAgICAqLworICAgIGhyZWYgPSB4bWxYSW5jbHVkZUdldFByb3AoY3R4dCwgY3VyLCBYSU5DTFVERV9IUkVGKTsKKyAgICBpZiAoaHJlZiA9PSBOVUxMKSB7CisJaHJlZiA9IHhtbFN0cmR1cChCQURfQ0FTVCAiIik7IC8qIEBAQEAgaHJlZiBpcyBub3cgb3B0aW9uYWwgKi8KKwlpZiAoaHJlZiA9PSBOVUxMKSAKKwkgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKChocmVmWzBdID09ICcjJykgfHwgKGhyZWZbMF0gPT0gMCkpCisJbG9jYWwgPSAxOworICAgIHBhcnNlID0geG1sWEluY2x1ZGVHZXRQcm9wKGN0eHQsIGN1ciwgWElOQ0xVREVfUEFSU0UpOworICAgIGlmIChwYXJzZSAhPSBOVUxMKSB7CisJaWYgKHhtbFN0ckVxdWFsKHBhcnNlLCBYSU5DTFVERV9QQVJTRV9YTUwpKQorCSAgICB4bWwgPSAxOworCWVsc2UgaWYgKHhtbFN0ckVxdWFsKHBhcnNlLCBYSU5DTFVERV9QQVJTRV9URVhUKSkKKwkgICAgeG1sID0gMDsKKwllbHNlIHsKKwkgICAgeG1sWEluY2x1ZGVFcnIoY3R4dCwgY3VyLCBYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUsCisJICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIHZhbHVlICVzIGZvciAncGFyc2UnXG4iLCBwYXJzZSk7CisJICAgIGlmIChocmVmICE9IE5VTEwpCisJCXhtbEZyZWUoaHJlZik7CisJICAgIGlmIChwYXJzZSAhPSBOVUxMKQorCQl4bWxGcmVlKHBhcnNlKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBjb21wdXRlIHRoZSBVUkkKKyAgICAgKi8KKyAgICBiYXNlID0geG1sTm9kZUdldEJhc2UoY3R4dC0+ZG9jLCBjdXIpOworICAgIGlmIChiYXNlID09IE5VTEwpIHsKKwlVUkkgPSB4bWxCdWlsZFVSSShocmVmLCBjdHh0LT5kb2MtPlVSTCk7CisgICAgfSBlbHNlIHsKKwlVUkkgPSB4bWxCdWlsZFVSSShocmVmLCBiYXNlKTsKKyAgICB9CisgICAgaWYgKFVSSSA9PSBOVUxMKSB7CisJeG1sQ2hhciAqZXNjYmFzZTsKKwl4bWxDaGFyICplc2NocmVmOworCS8qCisJICogU29tZSBlc2NhcGluZyBtYXkgYmUgbmVlZGVkCisJICovCisJZXNjYmFzZSA9IHhtbFVSSUVzY2FwZShiYXNlKTsKKwllc2NocmVmID0geG1sVVJJRXNjYXBlKGhyZWYpOworCVVSSSA9IHhtbEJ1aWxkVVJJKGVzY2hyZWYsIGVzY2Jhc2UpOworCWlmIChlc2NiYXNlICE9IE5VTEwpCisJICAgIHhtbEZyZWUoZXNjYmFzZSk7CisJaWYgKGVzY2hyZWYgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShlc2NocmVmKTsKKyAgICB9CisgICAgaWYgKHBhcnNlICE9IE5VTEwpCisJeG1sRnJlZShwYXJzZSk7CisgICAgaWYgKGhyZWYgIT0gTlVMTCkKKwl4bWxGcmVlKGhyZWYpOworICAgIGlmIChiYXNlICE9IE5VTEwpCisJeG1sRnJlZShiYXNlKTsKKyAgICBpZiAoVVJJID09IE5VTEwpIHsKKwl4bWxYSW5jbHVkZUVycihjdHh0LCBjdXIsIFhNTF9YSU5DTFVERV9IUkVGX1VSSSwKKwkgICAgICAgICAgICAgICAiZmFpbGVkIGJ1aWxkIFVSTFxuIiwgTlVMTCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgZnJhZ21lbnQgPSB4bWxYSW5jbHVkZUdldFByb3AoY3R4dCwgY3VyLCBYSU5DTFVERV9QQVJTRV9YUE9JTlRFUik7CisKKyAgICAvKgorICAgICAqIENoZWNrIHRoZSBVUkwgYW5kIHJlbW92ZSBhbnkgZnJhZ21lbnQgaWRlbnRpZmllcgorICAgICAqLworICAgIHVyaSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopVVJJKTsKKyAgICBpZiAodXJpID09IE5VTEwpIHsKKwl4bWxYSW5jbHVkZUVycihjdHh0LCBjdXIsIFhNTF9YSU5DTFVERV9IUkVGX1VSSSwKKwkgICAgICAgICAgICAgICAiaW52YWxpZCB2YWx1ZSBVUkkgJXNcbiIsIFVSSSk7CisJaWYgKGZyYWdtZW50ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoZnJhZ21lbnQpOworCXhtbEZyZWUoVVJJKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIGlmICh1cmktPmZyYWdtZW50ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGN0eHQtPmxlZ2FjeSAhPSAwKSB7CisJICAgIGlmIChmcmFnbWVudCA9PSBOVUxMKSB7CisJCWZyYWdtZW50ID0gKHhtbENoYXIgKikgdXJpLT5mcmFnbWVudDsKKwkgICAgfSBlbHNlIHsKKwkJeG1sRnJlZSh1cmktPmZyYWdtZW50KTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIHhtbFhJbmNsdWRlRXJyKGN0eHQsIGN1ciwgWE1MX1hJTkNMVURFX0ZSQUdNRU5UX0lELAorICAgICAgICJJbnZhbGlkIGZyYWdtZW50IGlkZW50aWZpZXIgaW4gVVJJICVzIHVzZSB0aGUgeHBvaW50ZXIgYXR0cmlidXRlXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJJKTsKKwkgICAgaWYgKGZyYWdtZW50ICE9IE5VTEwpCisJICAgICAgICB4bWxGcmVlKGZyYWdtZW50KTsKKwkgICAgeG1sRnJlZVVSSSh1cmkpOworCSAgICB4bWxGcmVlKFVSSSk7CisJICAgIHJldHVybigtMSk7CisJfQorCXVyaS0+ZnJhZ21lbnQgPSBOVUxMOworICAgIH0KKyAgICBVUkwgPSB4bWxTYXZlVXJpKHVyaSk7CisgICAgeG1sRnJlZVVSSSh1cmkpOworICAgIHhtbEZyZWUoVVJJKTsKKyAgICBpZiAoVVJMID09IE5VTEwpIHsKKwl4bWxYSW5jbHVkZUVycihjdHh0LCBjdXIsIFhNTF9YSU5DTFVERV9IUkVGX1VSSSwKKwkgICAgICAgICAgICAgICAiaW52YWxpZCB2YWx1ZSBVUkkgJXNcbiIsIFVSSSk7CisJaWYgKGZyYWdtZW50ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoZnJhZ21lbnQpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBJZiBsb2NhbCBhbmQgeG1sIHRoZW4gd2UgbmVlZCBhIGZyYWdtZW50CisgICAgICovCisgICAgaWYgKChsb2NhbCA9PSAxKSAmJiAoeG1sID09IDEpICYmCisgICAgICAgICgoZnJhZ21lbnQgPT0gTlVMTCkgfHwgKGZyYWdtZW50WzBdID09IDApKSkgeworCXhtbFhJbmNsdWRlRXJyKGN0eHQsIGN1ciwgWE1MX1hJTkNMVURFX1JFQ1VSU0lPTiwKKwkgICAgICAgICAgICAgICAiZGV0ZWN0ZWQgYSBsb2NhbCByZWN1cnNpb24gd2l0aCBubyB4cG9pbnRlciBpbiAlc1xuIiwKKwkJICAgICAgIFVSTCk7CisJaWYgKGZyYWdtZW50ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoZnJhZ21lbnQpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDaGVjayB0aGUgVVJMIGFnYWluc3QgdGhlIHN0YWNrIGZvciByZWN1cnNpb25zCisgICAgICovCisgICAgaWYgKCghbG9jYWwpICYmICh4bWwgPT0gMSkpIHsKKwlmb3IgKGkgPSAwO2kgPCBjdHh0LT51cmxOcjtpKyspIHsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKFVSTCwgY3R4dC0+dXJsVGFiW2ldKSkgeworCQl4bWxYSW5jbHVkZUVycihjdHh0LCBjdXIsIFhNTF9YSU5DTFVERV9SRUNVUlNJT04sCisJCSAgICAgICAgICAgICAgICJkZXRlY3RlZCBhIHJlY3Vyc2lvbiBpbiAlc1xuIiwgVVJMKTsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICByZWYgPSB4bWxYSW5jbHVkZU5ld1JlZihjdHh0LCBVUkwsIGN1cik7CisgICAgaWYgKHJlZiA9PSBOVUxMKSB7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcmVmLT5mcmFnbWVudCA9IGZyYWdtZW50OworICAgIHJlZi0+ZG9jID0gTlVMTDsKKyAgICByZWYtPnhtbCA9IHhtbDsKKyAgICByZWYtPmNvdW50ID0gMTsKKyAgICB4bWxGcmVlKFVSTCk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlUmVjdXJzZURvYzoKKyAqIEBjdHh0OiAgdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqIEBkb2M6ICB0aGUgbmV3IGRvY3VtZW50CisgKiBAdXJsOiAgdGhlIGFzc29jaWF0ZWQgVVJMCisgKiAKKyAqIFRoZSBYSW5jbHVkZSByZWN1cnNpdmUgbmF0dXJlIGlzIGhhbmRsZWQgYXQgdGhpcyBwb2ludC4KKyAqLworc3RhdGljIHZvaWQKK3htbFhJbmNsdWRlUmVjdXJzZURvYyh4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYywKKwkgICAgICAgICAgICAgIGNvbnN0IHhtbFVSTCB1cmwgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHhtbFhJbmNsdWRlQ3R4dFB0ciBuZXdjdHh0OworICAgIGludCBpOworCisgICAgLyoKKyAgICAgKiBBdm9pZCByZWN1cnNpb24gaW4gYWxyZWFkeSBzdWJzdGl0dWVkIHJlc291cmNlcworICAgIGZvciAoaSA9IDA7aSA8IGN0eHQtPnVybE5yO2krKykgeworCWlmICh4bWxTdHJFcXVhbChkb2MtPlVSTCwgY3R4dC0+dXJsVGFiW2ldKSkKKwkgICAgcmV0dXJuOworICAgIH0KKyAgICAgKi8KKworI2lmZGVmIERFQlVHX1hJTkNMVURFCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJSZWN1cnNpbmcgaW4gZG9jICVzXG4iLCBkb2MtPlVSTCk7CisjZW5kaWYKKyAgICAvKgorICAgICAqIEhhbmRsZSByZWN1cnNpb24gaGVyZS4KKyAgICAgKi8KKworICAgIG5ld2N0eHQgPSB4bWxYSW5jbHVkZU5ld0NvbnRleHQoZG9jKTsKKyAgICBpZiAobmV3Y3R4dCAhPSBOVUxMKSB7CisJLyoKKwkgKiBDb3B5IHRoZSBwcml2YXRlIHVzZXIgZGF0YQorCSAqLworCW5ld2N0eHQtPl9wcml2YXRlID0gY3R4dC0+X3ByaXZhdGU7CQorCS8qCisJICogQ29weSB0aGUgZXhpc3RpbmcgZG9jdW1lbnQgc2V0CisJICovCisJbmV3Y3R4dC0+aW5jTWF4ID0gY3R4dC0+aW5jTWF4OworCW5ld2N0eHQtPmluY05yID0gY3R4dC0+aW5jTnI7CisgICAgICAgIG5ld2N0eHQtPmluY1RhYiA9ICh4bWxYSW5jbHVkZVJlZlB0ciAqKSB4bWxNYWxsb2MobmV3Y3R4dC0+aW5jTWF4ICoKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobmV3Y3R4dC0+aW5jVGFiWzBdKSk7CisgICAgICAgIGlmIChuZXdjdHh0LT5pbmNUYWIgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVyck1lbW9yeShjdHh0LCAoeG1sTm9kZVB0cikgZG9jLCAicHJvY2Vzc2luZyBkb2MiKTsKKwkgICAgeG1sRnJlZShuZXdjdHh0KTsKKwkgICAgcmV0dXJuOworCX0KKwkvKgorCSAqIGNvcHkgdGhlIHVybFRhYgorCSAqLworCW5ld2N0eHQtPnVybE1heCA9IGN0eHQtPnVybE1heDsKKwluZXdjdHh0LT51cmxOciA9IGN0eHQtPnVybE5yOworCW5ld2N0eHQtPnVybFRhYiA9IGN0eHQtPnVybFRhYjsKKworCS8qCisJICogSW5oZXJpdCB0aGUgZXhpc3RpbmcgYmFzZQorCSAqLworCW5ld2N0eHQtPmJhc2UgPSB4bWxTdHJkdXAoY3R4dC0+YmFzZSk7CisKKwkvKgorCSAqIEluaGVyaXQgdGhlIGRvY3VtZW50cyBhbHJlYWR5IGluIHVzZSBieSBvdGhlciBpbmNsdWRlcworCSAqLworCW5ld2N0eHQtPmluY0Jhc2UgPSBjdHh0LT5pbmNOcjsKKwlmb3IgKGkgPSAwO2kgPCBjdHh0LT5pbmNOcjtpKyspIHsKKwkgICAgbmV3Y3R4dC0+aW5jVGFiW2ldID0gY3R4dC0+aW5jVGFiW2ldOworCSAgICBuZXdjdHh0LT5pbmNUYWJbaV0tPmNvdW50Kys7IC8qIHByZXZlbnQgdGhlIHJlY3Vyc2lvbiBmcm9tCisJCQkJCSAgICBmcmVlaW5nIGl0ICovCisJfQorCS8qCisJICogVGhlIG5ldyBjb250ZXh0IHNob3VsZCBhbHNvIGluaGVyaXQgdGhlIFBhcnNlIEZsYWdzCisJICogKGJ1ZyAxMzI1OTcpCisJICovCisJbmV3Y3R4dC0+cGFyc2VGbGFncyA9IGN0eHQtPnBhcnNlRmxhZ3M7CisJeG1sWEluY2x1ZGVEb1Byb2Nlc3MobmV3Y3R4dCwgZG9jLCB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpKTsKKwlmb3IgKGkgPSAwO2kgPCBjdHh0LT5pbmNOcjtpKyspIHsKKwkgICAgbmV3Y3R4dC0+aW5jVGFiW2ldLT5jb3VudC0tOworCSAgICBuZXdjdHh0LT5pbmNUYWJbaV0gPSBOVUxMOworCX0KKworCS8qIHVybFRhYiBtYXkgaGF2ZSBiZWVuIHJlYWxsb2NhdGVkICovCisJY3R4dC0+dXJsVGFiID0gbmV3Y3R4dC0+dXJsVGFiOworCWN0eHQtPnVybE1heCA9IG5ld2N0eHQtPnVybE1heDsKKworCW5ld2N0eHQtPnVybE1heCA9IDA7CisJbmV3Y3R4dC0+dXJsTnIgPSAwOworCW5ld2N0eHQtPnVybFRhYiA9IE5VTEw7CisKKwl4bWxYSW5jbHVkZUZyZWVDb250ZXh0KG5ld2N0eHQpOworICAgIH0KKyNpZmRlZiBERUJVR19YSU5DTFVERQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiRG9uZSByZWN1cnNpbmcgaW4gZG9jICVzXG4iLCB1cmwpOworI2VuZGlmCit9CisKKy8qKgorICogeG1sWEluY2x1ZGVBZGRUeHQ6CisgKiBAY3R4dDogIHRoZSBYSW5jbHVkZSBjb250ZXh0CisgKiBAdHh0OiAgdGhlIG5ldyB0ZXh0IG5vZGUKKyAqIEB1cmw6ICB0aGUgYXNzb2NpYXRlZCBVUkwKKyAqIAorICogQWRkIGEgbmV3IHR4dHVtZW50IHRvIHRoZSBsaXN0CisgKi8KK3N0YXRpYyB2b2lkCit4bWxYSW5jbHVkZUFkZFR4dCh4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciB0eHQsIGNvbnN0IHhtbFVSTCB1cmwpIHsKKyNpZmRlZiBERUJVR19YSU5DTFVERQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiQWRkaW5nIHRleHQgJXNcbiIsIHVybCk7CisjZW5kaWYKKyAgICBpZiAoY3R4dC0+dHh0TWF4ID09IDApIHsKKwljdHh0LT50eHRNYXggPSA0OworICAgICAgICBjdHh0LT50eHRUYWIgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MoY3R4dC0+dHh0TWF4ICoKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY3R4dC0+dHh0VGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT50eHRUYWIgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVyck1lbW9yeShjdHh0LCBOVUxMLCAicHJvY2Vzc2luZyB0ZXh0Iik7CisJICAgIHJldHVybjsKKwl9CisgICAgICAgIGN0eHQtPnR4dHVybFRhYiA9ICh4bWxVUkwgKikgeG1sTWFsbG9jKGN0eHQtPnR4dE1heCAqCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eHQtPnR4dHVybFRhYlswXSkpOworICAgICAgICBpZiAoY3R4dC0+dHh0dXJsVGFiID09IE5VTEwpIHsKKwkgICAgeG1sWEluY2x1ZGVFcnJNZW1vcnkoY3R4dCwgTlVMTCwgInByb2Nlc3NpbmcgdGV4dCIpOworCSAgICByZXR1cm47CisJfQorICAgIH0KKyAgICBpZiAoY3R4dC0+dHh0TnIgPj0gY3R4dC0+dHh0TWF4KSB7CisJY3R4dC0+dHh0TWF4ICo9IDI7CisgICAgICAgIGN0eHQtPnR4dFRhYiA9ICh4bWxOb2RlUHRyICopIHhtbFJlYWxsb2MoY3R4dC0+dHh0VGFiLAorCSAgICAgICAgICAgICBjdHh0LT50eHRNYXggKiBzaXplb2YoY3R4dC0+dHh0VGFiWzBdKSk7CisgICAgICAgIGlmIChjdHh0LT50eHRUYWIgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVyck1lbW9yeShjdHh0LCBOVUxMLCAicHJvY2Vzc2luZyB0ZXh0Iik7CisJICAgIHJldHVybjsKKwl9CisgICAgICAgIGN0eHQtPnR4dHVybFRhYiA9ICh4bWxVUkwgKikgeG1sUmVhbGxvYyhjdHh0LT50eHR1cmxUYWIsCisJICAgICAgICAgICAgIGN0eHQtPnR4dE1heCAqIHNpemVvZihjdHh0LT50eHR1cmxUYWJbMF0pKTsKKyAgICAgICAgaWYgKGN0eHQtPnR4dHVybFRhYiA9PSBOVUxMKSB7CisJICAgIHhtbFhJbmNsdWRlRXJyTWVtb3J5KGN0eHQsIE5VTEwsICJwcm9jZXNzaW5nIHRleHQiKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9CisgICAgY3R4dC0+dHh0VGFiW2N0eHQtPnR4dE5yXSA9IHR4dDsKKyAgICBjdHh0LT50eHR1cmxUYWJbY3R4dC0+dHh0TnJdID0geG1sU3RyZHVwKHVybCk7CisgICAgY3R4dC0+dHh0TnIrKzsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCU5vZGUgY29weSB3aXRoIHNwZWNpZmljIHNlbWFudGljCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxYSW5jbHVkZUNvcHlOb2RlTGlzdCh4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIHRhcmdldCwKKwkgICAgICAgICAgICAgICAgeG1sRG9jUHRyIHNvdXJjZSwgeG1sTm9kZVB0ciBlbGVtKTsKKworLyoqCisgKiB4bWxYSW5jbHVkZUNvcHlOb2RlOgorICogQGN0eHQ6ICB0aGUgWEluY2x1ZGUgY29udGV4dAorICogQHRhcmdldDogIHRoZSBkb2N1bWVudCB0YXJnZXQKKyAqIEBzb3VyY2U6ICB0aGUgZG9jdW1lbnQgc291cmNlCisgKiBAZWxlbTogIHRoZSBlbGVtZW50CisgKiAKKyAqIE1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIHdoaWxlIHByZXNlcnZpbmcgdGhlIFhJbmNsdWRlIHNlbWFudGljCisgKiBvZiB0aGUgSW5mb3NldCBjb3B5CisgKi8KK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxYSW5jbHVkZUNvcHlOb2RlKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgdGFyZ2V0LAorCSAgICAgICAgICAgIHhtbERvY1B0ciBzb3VyY2UsIHhtbE5vZGVQdHIgZWxlbSkgeworICAgIHhtbE5vZGVQdHIgcmVzdWx0ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAodGFyZ2V0ID09IE5VTEwpIHx8IChzb3VyY2UgPT0gTlVMTCkgfHwKKwkoZWxlbSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGVsZW0tPnR5cGUgPT0gWE1MX0RURF9OT0RFKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoZWxlbS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkKKwlyZXN1bHQgPSB4bWxYSW5jbHVkZUNvcHlOb2RlTGlzdChjdHh0LCB0YXJnZXQsIHNvdXJjZSwgZWxlbS0+Y2hpbGRyZW4pOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0geG1sRG9jQ29weU5vZGUoZWxlbSwgdGFyZ2V0LCAxKTsKKyAgICByZXR1cm4ocmVzdWx0KTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZUNvcHlOb2RlTGlzdDoKKyAqIEBjdHh0OiAgdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqIEB0YXJnZXQ6ICB0aGUgZG9jdW1lbnQgdGFyZ2V0CisgKiBAc291cmNlOiAgdGhlIGRvY3VtZW50IHNvdXJjZQorICogQGVsZW06ICB0aGUgZWxlbWVudCBsaXN0CisgKiAKKyAqIE1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGxpc3Qgd2hpbGUgcHJlc2VydmluZyB0aGUgWEluY2x1ZGUgc2VtYW50aWMKKyAqIG9mIHRoZSBJbmZvc2V0IGNvcHkKKyAqLworc3RhdGljIHhtbE5vZGVQdHIKK3htbFhJbmNsdWRlQ29weU5vZGVMaXN0KHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgdGFyZ2V0LAorCSAgICAgICAgICAgICAgICB4bWxEb2NQdHIgc291cmNlLCB4bWxOb2RlUHRyIGVsZW0pIHsKKyAgICB4bWxOb2RlUHRyIGN1ciwgcmVzLCByZXN1bHQgPSBOVUxMLCBsYXN0ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAodGFyZ2V0ID09IE5VTEwpIHx8IChzb3VyY2UgPT0gTlVMTCkgfHwKKwkoZWxlbSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgY3VyID0gZWxlbTsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlyZXMgPSB4bWxYSW5jbHVkZUNvcHlOb2RlKGN0eHQsIHRhcmdldCwgc291cmNlLCBjdXIpOworCWlmIChyZXMgIT0gTlVMTCkgeworCSAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKwkJcmVzdWx0ID0gbGFzdCA9IHJlczsKKwkgICAgfSBlbHNlIHsKKwkJbGFzdC0+bmV4dCA9IHJlczsKKwkJcmVzLT5wcmV2ID0gbGFzdDsKKwkJbGFzdCA9IHJlczsKKwkgICAgfQorCX0KKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXN1bHQpOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlR2V0TnRoQ2hpbGQ6CisgKiBAY3VyOiAgdGhlIG5vZGUKKyAqIEBubzogIHRoZSBjaGlsZCBudW1iZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBAbid0aCBlbGVtZW50IGNoaWxkIG9mIEBjdXIgb3IgTlVMTAorICovCitzdGF0aWMgeG1sTm9kZVB0cgoreG1sWEluY2x1ZGVHZXROdGhDaGlsZCh4bWxOb2RlUHRyIGN1ciwgaW50IG5vKSB7CisgICAgaW50IGk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSAKKwlyZXR1cm4oY3VyKTsKKyAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworICAgIGZvciAoaSA9IDA7aSA8PSBubztjdXIgPSBjdXItPm5leHQpIHsKKwlpZiAoY3VyID09IE5VTEwpIAorCSAgICByZXR1cm4oY3VyKTsKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCSAgICAoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorCSAgICAoY3VyLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSB7CisJICAgIGkrKzsKKwkgICAgaWYgKGkgPT0gbm8pCisJCWJyZWFrOworCX0KKyAgICB9CisgICAgcmV0dXJuKGN1cik7Cit9CisKK3htbE5vZGVQdHIgeG1sWFB0ckFkdmFuY2VOb2RlKHhtbE5vZGVQdHIgY3VyLCBpbnQgKmxldmVsKTsgLyogaW4geHBvaW50ZXIuYyAqLworLyoqCisgKiB4bWxYSW5jbHVkZUNvcHlSYW5nZToKKyAqIEBjdHh0OiAgdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqIEB0YXJnZXQ6ICB0aGUgZG9jdW1lbnQgdGFyZ2V0CisgKiBAc291cmNlOiAgdGhlIGRvY3VtZW50IHNvdXJjZQorICogQG9iajogIHRoZSBYUG9pbnRlciByZXN1bHQgZnJvbSB0aGUgZXZhbHVhdGlvbi4KKyAqCisgKiBCdWlsZCBhIG5vZGUgbGlzdCB0cmVlIGNvcHkgb2YgdGhlIFhQb2ludGVyIHJlc3VsdC4KKyAqCisgKiBSZXR1cm5zIGFuIHhtbE5vZGVQdHIgbGlzdCBvciBOVUxMLgorICogICAgICAgICBUaGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBub2RlIHRyZWUuCisgKi8KK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxYSW5jbHVkZUNvcHlSYW5nZSh4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIHRhcmdldCwKKwkgICAgICAgICAgICAgICAgeG1sRG9jUHRyIHNvdXJjZSwgeG1sWFBhdGhPYmplY3RQdHIgcmFuZ2UpIHsKKyAgICAvKiBwb2ludGVycyB0byBnZW5lcmF0ZWQgbm9kZXMgKi8KKyAgICB4bWxOb2RlUHRyIGxpc3QgPSBOVUxMLCBsYXN0ID0gTlVMTCwgbGlzdFBhcmVudCA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciB0bXAsIHRtcDI7CisgICAgLyogcG9pbnRlcnMgdG8gdHJhdmVyc2FsIG5vZGVzICovCisgICAgeG1sTm9kZVB0ciBzdGFydCwgY3VyLCBlbmQ7CisgICAgaW50IGluZGV4MSwgaW5kZXgyOworICAgIGludCBsZXZlbCA9IDAsIGxhc3RMZXZlbCA9IDAsIGVuZExldmVsID0gMCwgZW5kRmxhZyA9IDA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHRhcmdldCA9PSBOVUxMKSB8fCAoc291cmNlID09IE5VTEwpIHx8CisJKHJhbmdlID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmFuZ2UtPnR5cGUgIT0gWFBBVEhfUkFOR0UpCisJcmV0dXJuKE5VTEwpOworICAgIHN0YXJ0ID0gKHhtbE5vZGVQdHIpIHJhbmdlLT51c2VyOworCisgICAgaWYgKHN0YXJ0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGVuZCA9IHJhbmdlLT51c2VyMjsKKyAgICBpZiAoZW5kID09IE5VTEwpCisJcmV0dXJuKHhtbERvY0NvcHlOb2RlKHN0YXJ0LCB0YXJnZXQsIDEpKTsKKworICAgIGN1ciA9IHN0YXJ0OworICAgIGluZGV4MSA9IHJhbmdlLT5pbmRleDsKKyAgICBpbmRleDIgPSByYW5nZS0+aW5kZXgyOworICAgIC8qCisgICAgICogbGV2ZWwgaXMgZGVwdGggb2YgdGhlIGN1cnJlbnQgbm9kZSB1bmRlciBjb25zaWRlcmF0aW9uCisgICAgICogbGlzdCBpcyB0aGUgcG9pbnRlciB0byB0aGUgcm9vdCBvZiB0aGUgb3V0cHV0IHRyZWUKKyAgICAgKiBsaXN0UGFyZW50IGlzIGEgcG9pbnRlciB0byB0aGUgcGFyZW50IG9mIG91dHB1dCB0cmVlICh3aXRoaW4KKyAgICAgICB0aGUgaW5jbHVkZWQgZmlsZSkgaW4gY2FzZSB3ZSBuZWVkIHRvIGFkZCBhbm90aGVyIGxldmVsCisgICAgICogbGFzdCBpcyBhIHBvaW50ZXIgdG8gdGhlIGxhc3Qgbm9kZSBhZGRlZCB0byB0aGUgb3V0cHV0IHRyZWUKKyAgICAgKiBsYXN0TGV2ZWwgaXMgdGhlIGRlcHRoIG9mIGxhc3QgKHJlbGF0aXZlIHRvIHRoZSByb290KQorICAgICAqLworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCS8qCisJICogQ2hlY2sgaWYgb3VyIG91dHB1dCB0cmVlIG5lZWRzIGEgcGFyZW50CisJICovCisJaWYgKGxldmVsIDwgMCkgeworCSAgICB3aGlsZSAobGV2ZWwgPCAwKSB7CisJICAgICAgICAvKiBjb3B5IG11c3QgaW5jbHVkZSBuYW1lc3BhY2VzIGFuZCBwcm9wZXJ0aWVzICovCisJICAgICAgICB0bXAyID0geG1sRG9jQ29weU5vZGUobGlzdFBhcmVudCwgdGFyZ2V0LCAyKTsKKwkgICAgICAgIHhtbEFkZENoaWxkKHRtcDIsIGxpc3QpOworCSAgICAgICAgbGlzdCA9IHRtcDI7CisJICAgICAgICBsaXN0UGFyZW50ID0gbGlzdFBhcmVudC0+cGFyZW50OworCSAgICAgICAgbGV2ZWwrKzsKKwkgICAgfQorCSAgICBsYXN0ID0gbGlzdDsKKwkgICAgbGFzdExldmVsID0gMDsKKwl9CisJLyoKKwkgKiBDaGVjayB3aGV0aGVyIHdlIG5lZWQgdG8gY2hhbmdlIG91ciBpbnNlcnRpb24gcG9pbnQKKwkgKi8KKwl3aGlsZSAobGV2ZWwgPCBsYXN0TGV2ZWwpIHsKKwkgICAgbGFzdCA9IGxhc3QtPnBhcmVudDsKKwkgICAgbGFzdExldmVsIC0tOworCX0KKwlpZiAoY3VyID09IGVuZCkgewkvKiBBcmUgd2UgYXQgdGhlIGVuZCBvZiB0aGUgcmFuZ2U/ICovCisJICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworCQljb25zdCB4bWxDaGFyICpjb250ZW50ID0gY3VyLT5jb250ZW50OworCQlpbnQgbGVuOworCisJCWlmIChjb250ZW50ID09IE5VTEwpIHsKKwkJICAgIHRtcCA9IHhtbE5ld1RleHRMZW4oTlVMTCwgMCk7CisJCX0gZWxzZSB7CisJCSAgICBsZW4gPSBpbmRleDI7CisJCSAgICBpZiAoKGN1ciA9PSBzdGFydCkgJiYgKGluZGV4MSA+IDEpKSB7CisJCQljb250ZW50ICs9IChpbmRleDEgLSAxKTsKKwkJCWxlbiAtPSAoaW5kZXgxIC0gMSk7CisJCSAgICB9IGVsc2UgeworCQkJbGVuID0gaW5kZXgyOworCQkgICAgfQorCQkgICAgdG1wID0geG1sTmV3VGV4dExlbihjb250ZW50LCBsZW4pOworCQl9CisJCS8qIHNpbmdsZSBzdWIgdGV4dCBub2RlIHNlbGVjdGlvbiAqLworCQlpZiAobGlzdCA9PSBOVUxMKQorCQkgICAgcmV0dXJuKHRtcCk7CisJCS8qIHBydW5lIGFuZCByZXR1cm4gZnVsbCBzZXQgKi8KKwkJaWYgKGxldmVsID09IGxhc3RMZXZlbCkKKwkJICAgIHhtbEFkZE5leHRTaWJsaW5nKGxhc3QsIHRtcCk7CisJCWVsc2UgCisJCSAgICB4bWxBZGRDaGlsZChsYXN0LCB0bXApOworCQlyZXR1cm4obGlzdCk7CisJICAgIH0gZWxzZSB7CS8qIGVuZGluZyBub2RlIG5vdCBhIHRleHQgbm9kZSAqLworCSAgICAgICAgZW5kTGV2ZWwgPSBsZXZlbDsJLyogcmVtZW1iZXIgdGhlIGxldmVsIG9mIHRoZSBlbmQgbm9kZSAqLworCQllbmRGbGFnID0gMTsKKwkJLyogbGFzdCBub2RlIC0gbmVlZCB0byB0YWtlIGNhcmUgb2YgcHJvcGVydGllcyArIG5hbWVzcGFjZXMgKi8KKwkJdG1wID0geG1sRG9jQ29weU5vZGUoY3VyLCB0YXJnZXQsIDIpOworCQlpZiAobGlzdCA9PSBOVUxMKSB7CisJCSAgICBsaXN0ID0gdG1wOworCQkgICAgbGlzdFBhcmVudCA9IGN1ci0+cGFyZW50OworCQl9IGVsc2UgeworCQkgICAgaWYgKGxldmVsID09IGxhc3RMZXZlbCkKKwkJCXhtbEFkZE5leHRTaWJsaW5nKGxhc3QsIHRtcCk7CisJCSAgICBlbHNlIHsKKwkJCXhtbEFkZENoaWxkKGxhc3QsIHRtcCk7CisJCQlsYXN0TGV2ZWwgPSBsZXZlbDsKKwkJICAgIH0KKwkJfQorCQlsYXN0ID0gdG1wOworCisJCWlmIChpbmRleDIgPiAxKSB7CisJCSAgICBlbmQgPSB4bWxYSW5jbHVkZUdldE50aENoaWxkKGN1ciwgaW5kZXgyIC0gMSk7CisJCSAgICBpbmRleDIgPSAwOworCQl9CisJCWlmICgoY3VyID09IHN0YXJ0KSAmJiAoaW5kZXgxID4gMSkpIHsKKwkJICAgIGN1ciA9IHhtbFhJbmNsdWRlR2V0TnRoQ2hpbGQoY3VyLCBpbmRleDEgLSAxKTsKKwkJICAgIGluZGV4MSA9IDA7CisJCX0gIGVsc2UgeworCQkgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKwkJfQorCQlsZXZlbCsrOwkvKiBpbmNyZW1lbnQgbGV2ZWwgdG8gc2hvdyBjaGFuZ2UgKi8KKwkJLyoKKwkJICogTm93IGdhdGhlciB0aGUgcmVtYWluaW5nIG5vZGVzIGZyb20gY3VyIHRvIGVuZAorCQkgKi8KKwkJY29udGludWU7CS8qIHdoaWxlICovCisJICAgIH0KKwl9IGVsc2UgaWYgKGN1ciA9PSBzdGFydCkgewkvKiBOb3QgYXQgdGhlIGVuZCwgYXJlIHdlIGF0IHN0YXJ0PyAqLworCSAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorCQkoY3VyLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisJCWNvbnN0IHhtbENoYXIgKmNvbnRlbnQgPSBjdXItPmNvbnRlbnQ7CisKKwkJaWYgKGNvbnRlbnQgPT0gTlVMTCkgeworCQkgICAgdG1wID0geG1sTmV3VGV4dExlbihOVUxMLCAwKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmIChpbmRleDEgPiAxKSB7CisJCQljb250ZW50ICs9IChpbmRleDEgLSAxKTsKKwkJCWluZGV4MSA9IDA7CisJCSAgICB9CisJCSAgICB0bXAgPSB4bWxOZXdUZXh0KGNvbnRlbnQpOworCQl9CisJCWxhc3QgPSBsaXN0ID0gdG1wOworCQlsaXN0UGFyZW50ID0gY3VyLT5wYXJlbnQ7CisJICAgIH0gZWxzZSB7CQkvKiBOb3QgdGV4dCBub2RlICovCisJICAgICAgICAvKgorCQkgKiBzdGFydCBvZiB0aGUgcmFuZ2UgLSBuZWVkIHRvIHRha2UgY2FyZSBvZgorCQkgKiBwcm9wZXJ0aWVzIGFuZCBuYW1lc3BhY2VzCisJCSAqLworCQl0bXAgPSB4bWxEb2NDb3B5Tm9kZShjdXIsIHRhcmdldCwgMik7CisJCWxpc3QgPSBsYXN0ID0gdG1wOworCQlsaXN0UGFyZW50ID0gY3VyLT5wYXJlbnQ7CisJCWlmIChpbmRleDEgPiAxKSB7CS8qIERvIHdlIG5lZWQgdG8gcG9zaXRpb24/ICovCisJCSAgICBjdXIgPSB4bWxYSW5jbHVkZUdldE50aENoaWxkKGN1ciwgaW5kZXgxIC0gMSk7CisJCSAgICBsZXZlbCA9IGxhc3RMZXZlbCA9IDE7CisJCSAgICBpbmRleDEgPSAwOworCQkgICAgLyoKKwkJICAgICAqIE5vdyBnYXRoZXIgdGhlIHJlbWFpbmluZyBub2RlcyBmcm9tIGN1ciB0byBlbmQKKwkJICAgICAqLworCQkgICAgY29udGludWU7IC8qIHdoaWxlICovCisJCX0KKwkgICAgfQorCX0gZWxzZSB7CisJICAgIHRtcCA9IE5VTEw7CisJICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisJCWNhc2UgWE1MX0RURF9OT0RFOgorCQljYXNlIFhNTF9FTEVNRU5UX0RFQ0w6CisJCWNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorCQljYXNlIFhNTF9FTlRJVFlfTk9ERToKKwkJICAgIC8qIERvIG5vdCBjb3B5IERURCBpbmZvcm1hdGlvbnMgKi8KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9FTlRJVFlfREVDTDoKKwkJICAgIC8qIGhhbmRsZSBjcm9zc2luZyBlbnRpdGllcyAtPiBzdGFjayBuZWVkZWQgKi8KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwkJY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorCQkgICAgLyogZG9uJ3QgY29uc2lkZXIgaXQgcGFydCBvZiB0aGUgdHJlZSBjb250ZW50ICovCisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJCSAgICAvKiBIdW1tLCBzaG91bGQgbm90IGhhcHBlbiAhICovCisJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJICAgIC8qCisJCSAgICAgKiBNaWRkbGUgb2YgdGhlIHJhbmdlIC0gbmVlZCB0byB0YWtlIGNhcmUgb2YKKwkJICAgICAqIHByb3BlcnRpZXMgYW5kIG5hbWVzcGFjZXMKKwkJICAgICAqLworCQkgICAgdG1wID0geG1sRG9jQ29weU5vZGUoY3VyLCB0YXJnZXQsIDIpOworCQkgICAgYnJlYWs7CisJICAgIH0KKwkgICAgaWYgKHRtcCAhPSBOVUxMKSB7CisJCWlmIChsZXZlbCA9PSBsYXN0TGV2ZWwpCisJCSAgICB4bWxBZGROZXh0U2libGluZyhsYXN0LCB0bXApOworCQllbHNlIHsKKwkJICAgIHhtbEFkZENoaWxkKGxhc3QsIHRtcCk7CisJCSAgICBsYXN0TGV2ZWwgPSBsZXZlbDsKKwkJfQorCQlsYXN0ID0gdG1wOworCSAgICB9CisJfQorCS8qCisJICogU2tpcCB0byBuZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIKKwkgKi8KKwljdXIgPSB4bWxYUHRyQWR2YW5jZU5vZGUoY3VyLCAmbGV2ZWwpOworCWlmIChlbmRGbGFnICYmIChsZXZlbCA+PSBlbmRMZXZlbCkpCisJICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4obGlzdCk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVCdWlsZE5vZGVMaXN0OgorICogQGN0eHQ6ICB0aGUgWEluY2x1ZGUgY29udGV4dAorICogQHRhcmdldDogIHRoZSBkb2N1bWVudCB0YXJnZXQKKyAqIEBzb3VyY2U6ICB0aGUgZG9jdW1lbnQgc291cmNlCisgKiBAb2JqOiAgdGhlIFhQb2ludGVyIHJlc3VsdCBmcm9tIHRoZSBldmFsdWF0aW9uLgorICoKKyAqIEJ1aWxkIGEgbm9kZSBsaXN0IHRyZWUgY29weSBvZiB0aGUgWFBvaW50ZXIgcmVzdWx0LgorICogVGhpcyB3aWxsIGRyb3AgQXR0cmlidXRlcyBhbmQgTmFtZXNwYWNlIGRlY2xhcmF0aW9ucy4KKyAqCisgKiBSZXR1cm5zIGFuIHhtbE5vZGVQdHIgbGlzdCBvciBOVUxMLgorICogICAgICAgICB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBub2RlIHRyZWUuCisgKi8KK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxYSW5jbHVkZUNvcHlYUG9pbnRlcih4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIHRhcmdldCwKKwkgICAgICAgICAgICAgICAgeG1sRG9jUHRyIHNvdXJjZSwgeG1sWFBhdGhPYmplY3RQdHIgb2JqKSB7CisgICAgeG1sTm9kZVB0ciBsaXN0ID0gTlVMTCwgbGFzdCA9IE5VTEw7CisgICAgaW50IGk7CisKKyAgICBpZiAoc291cmNlID09IE5VTEwpCisJc291cmNlID0gY3R4dC0+ZG9jOworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAodGFyZ2V0ID09IE5VTEwpIHx8IChzb3VyY2UgPT0gTlVMTCkgfHwKKwkob2JqID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBzd2l0Y2ggKG9iai0+dHlwZSkgeworICAgICAgICBjYXNlIFhQQVRIX05PREVTRVQ6IHsKKwkgICAgeG1sTm9kZVNldFB0ciBzZXQgPSBvYmotPm5vZGVzZXR2YWw7CisJICAgIGlmIChzZXQgPT0gTlVMTCkKKwkJcmV0dXJuKE5VTEwpOworCSAgICBmb3IgKGkgPSAwO2kgPCBzZXQtPm5vZGVOcjtpKyspIHsKKwkJaWYgKHNldC0+bm9kZVRhYltpXSA9PSBOVUxMKQorCQkgICAgY29udGludWU7CisJCXN3aXRjaCAoc2V0LT5ub2RlVGFiW2ldLT50eXBlKSB7CisJCSAgICBjYXNlIFhNTF9URVhUX05PREU6CisJCSAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisJCSAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJCSAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJCSAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKwkJICAgIGNhc2UgWE1MX1BJX05PREU6CisJCSAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisJCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorCQkgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKwkJICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorCQkgICAgY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorCQkJYnJlYWs7CisJCSAgICBjYXNlIFhNTF9YSU5DTFVERV9TVEFSVDogeworCSAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIHRtcCwgY3VyID0gc2V0LT5ub2RlVGFiW2ldOworCisJCQljdXIgPSBjdXItPm5leHQ7CisJCQl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkJCSAgICBzd2l0Y2goY3VyLT50eXBlKSB7CisJCQkJY2FzZSBYTUxfVEVYVF9OT0RFOgorCQkJCWNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkJCQljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJCQkJY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCQkJCWNhc2UgWE1MX0VOVElUWV9OT0RFOgorCQkJCWNhc2UgWE1MX1BJX05PREU6CisJCQkJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCQkJCSAgICB0bXAgPSB4bWxYSW5jbHVkZUNvcHlOb2RlKGN0eHQsIHRhcmdldCwKKwkJCQkJCQkgICAgICBzb3VyY2UsIGN1cik7CisJCQkJICAgIGlmIChsYXN0ID09IE5VTEwpIHsKKwkJCQkJbGlzdCA9IGxhc3QgPSB0bXA7CisJCQkJICAgIH0gZWxzZSB7CisJCQkJCXhtbEFkZE5leHRTaWJsaW5nKGxhc3QsIHRtcCk7CisJCQkJCWxhc3QgPSB0bXA7CisJCQkJICAgIH0KKwkJCQkgICAgY3VyID0gY3VyLT5uZXh0OworCQkJCSAgICBjb250aW51ZTsKKwkJCQlkZWZhdWx0OgorCQkJCSAgICBicmVhazsKKwkJCSAgICB9CisJCQkgICAgYnJlYWs7CisJCQl9CisJCQljb250aW51ZTsKKwkJICAgIH0KKwkJICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCQkgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisJCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJCSAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCQkgICAgY2FzZSBYTUxfRFREX05PREU6CisJCSAgICBjYXNlIFhNTF9FTEVNRU5UX0RFQ0w6CisJCSAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKwkJICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorCQkJY29udGludWU7IC8qIGZvciAqLworCQl9CisJCWlmIChsYXN0ID09IE5VTEwpCisJCSAgICBsaXN0ID0gbGFzdCA9IHhtbFhJbmNsdWRlQ29weU5vZGUoY3R4dCwgdGFyZ2V0LCBzb3VyY2UsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQtPm5vZGVUYWJbaV0pOworCQllbHNlIHsKKwkJICAgIHhtbEFkZE5leHRTaWJsaW5nKGxhc3QsCisJCQkgICAgeG1sWEluY2x1ZGVDb3B5Tm9kZShjdHh0LCB0YXJnZXQsIHNvdXJjZSwKKwkJCQkgICAgICAgICAgICAgICAgc2V0LT5ub2RlVGFiW2ldKSk7CisJCSAgICBpZiAobGFzdC0+bmV4dCAhPSBOVUxMKQorCQkJbGFzdCA9IGxhc3QtPm5leHQ7CisJCX0KKwkgICAgfQorCSAgICBicmVhazsKKwl9CisJY2FzZSBYUEFUSF9MT0NBVElPTlNFVDogeworCSAgICB4bWxMb2NhdGlvblNldFB0ciBzZXQgPSAoeG1sTG9jYXRpb25TZXRQdHIpIG9iai0+dXNlcjsKKwkgICAgaWYgKHNldCA9PSBOVUxMKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIGZvciAoaSA9IDA7aSA8IHNldC0+bG9jTnI7aSsrKSB7CisJCWlmIChsYXN0ID09IE5VTEwpCisJCSAgICBsaXN0ID0gbGFzdCA9IHhtbFhJbmNsdWRlQ29weVhQb2ludGVyKGN0eHQsIHRhcmdldCwgc291cmNlLAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldC0+bG9jVGFiW2ldKTsKKwkJZWxzZQorCQkgICAgeG1sQWRkTmV4dFNpYmxpbmcobGFzdCwKKwkJCSAgICB4bWxYSW5jbHVkZUNvcHlYUG9pbnRlcihjdHh0LCB0YXJnZXQsIHNvdXJjZSwKKwkJCQkgICAgICAgICAgICAgICAgICAgIHNldC0+bG9jVGFiW2ldKSk7CisJCWlmIChsYXN0ICE9IE5VTEwpIHsKKwkJICAgIHdoaWxlIChsYXN0LT5uZXh0ICE9IE5VTEwpCisJCQlsYXN0ID0gbGFzdC0+bmV4dDsKKwkJfQorCSAgICB9CisJICAgIGJyZWFrOworCX0KKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisJY2FzZSBYUEFUSF9SQU5HRToKKwkgICAgcmV0dXJuKHhtbFhJbmNsdWRlQ29weVJhbmdlKGN0eHQsIHRhcmdldCwgc291cmNlLCBvYmopKTsKKyNlbmRpZgorCWNhc2UgWFBBVEhfUE9JTlQ6CisJICAgIC8qIHBvaW50cyBhcmUgaWdub3JlZCBpbiBYSW5jbHVkZSAqLworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuKGxpc3QpOworfQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVhJbmNsdWRlIEkvTyBoYW5kbGluZwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3R5cGVkZWYgc3RydWN0IF94bWxYSW5jbHVkZU1lcmdlRGF0YSB4bWxYSW5jbHVkZU1lcmdlRGF0YTsKK3R5cGVkZWYgeG1sWEluY2x1ZGVNZXJnZURhdGEgKnhtbFhJbmNsdWRlTWVyZ2VEYXRhUHRyOworc3RydWN0IF94bWxYSW5jbHVkZU1lcmdlRGF0YSB7CisgICAgeG1sRG9jUHRyIGRvYzsKKyAgICB4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dDsKK307CisKKy8qKgorICogeG1sWEluY2x1ZGVNZXJnZU9uZUVudGl0eToKKyAqIEBlbnQ6IHRoZSBlbnRpdHkKKyAqIEBkb2M6ICB0aGUgaW5jbHVkaW5nIGRvYworICogQG5yOiB0aGUgZW50aXR5IG5hbWUKKyAqCisgKiBJbnBsZW1lbnRzIHRoZSBtZXJnZSBvZiBvbmUgZW50aXR5CisgKi8KK3N0YXRpYyB2b2lkCit4bWxYSW5jbHVkZU1lcmdlRW50aXR5KHhtbEVudGl0eVB0ciBlbnQsIHhtbFhJbmNsdWRlTWVyZ2VEYXRhUHRyIGRhdGEsCisJICAgICAgICAgICAgICAgeG1sQ2hhciAqbmFtZSBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgeG1sRW50aXR5UHRyIHJldCwgcHJldjsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0OworCisgICAgaWYgKChlbnQgPT0gTlVMTCkgfHwgKGRhdGEgPT0gTlVMTCkpCisJcmV0dXJuOworICAgIGN0eHQgPSBkYXRhLT5jdHh0OworICAgIGRvYyA9IGRhdGEtPmRvYzsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGRvYyA9PSBOVUxMKSkKKwlyZXR1cm47CisgICAgc3dpdGNoIChlbnQtPmV0eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX1BBUkFNRVRFUl9FTlRJVFk6CisgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX1BSRURFRklORURfRU5USVRZOgorCSAgICByZXR1cm47CisgICAgICAgIGNhc2UgWE1MX0lOVEVSTkFMX0dFTkVSQUxfRU5USVRZOgorICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1BBUlNFRF9FTlRJVFk6CisgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZOgorCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0ID0geG1sQWRkRG9jRW50aXR5KGRvYywgZW50LT5uYW1lLCBlbnQtPmV0eXBlLCBlbnQtPkV4dGVybmFsSUQsCisJCQkgIGVudC0+U3lzdGVtSUQsIGVudC0+Y29udGVudCk7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJaWYgKGVudC0+VVJJICE9IE5VTEwpCisJICAgIHJldC0+VVJJID0geG1sU3RyZHVwKGVudC0+VVJJKTsKKyAgICB9IGVsc2UgeworCXByZXYgPSB4bWxHZXREb2NFbnRpdHkoZG9jLCBlbnQtPm5hbWUpOworCWlmIChwcmV2ICE9IE5VTEwpIHsKKwkgICAgaWYgKGVudC0+ZXR5cGUgIT0gcHJldi0+ZXR5cGUpCisJCWdvdG8gZXJyb3I7CisJCisJICAgIGlmICgoZW50LT5TeXN0ZW1JRCAhPSBOVUxMKSAmJiAocHJldi0+U3lzdGVtSUQgIT0gTlVMTCkpIHsKKwkJaWYgKCF4bWxTdHJFcXVhbChlbnQtPlN5c3RlbUlELCBwcmV2LT5TeXN0ZW1JRCkpCisJCSAgICBnb3RvIGVycm9yOworCSAgICB9IGVsc2UgaWYgKChlbnQtPkV4dGVybmFsSUQgIT0gTlVMTCkgJiYKKwkJICAgICAgIChwcmV2LT5FeHRlcm5hbElEICE9IE5VTEwpKSB7CisJCWlmICgheG1sU3RyRXF1YWwoZW50LT5FeHRlcm5hbElELCBwcmV2LT5FeHRlcm5hbElEKSkKKwkJICAgIGdvdG8gZXJyb3I7CisJICAgIH0gZWxzZSBpZiAoKGVudC0+Y29udGVudCAhPSBOVUxMKSAmJiAocHJldi0+Y29udGVudCAhPSBOVUxMKSkgeworCQlpZiAoIXhtbFN0ckVxdWFsKGVudC0+Y29udGVudCwgcHJldi0+Y29udGVudCkpCisJCSAgICBnb3RvIGVycm9yOworCSAgICB9IGVsc2UgeworCQlnb3RvIGVycm9yOworCSAgICB9CisKKwl9CisgICAgfQorICAgIHJldHVybjsKK2Vycm9yOgorICAgIHN3aXRjaCAoZW50LT5ldHlwZSkgeworICAgICAgICBjYXNlIFhNTF9JTlRFUk5BTF9QQVJBTUVURVJfRU5USVRZOgorICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9QQVJBTUVURVJfRU5USVRZOgorICAgICAgICBjYXNlIFhNTF9JTlRFUk5BTF9QUkVERUZJTkVEX0VOVElUWToKKyAgICAgICAgY2FzZSBYTUxfSU5URVJOQUxfR0VORVJBTF9FTlRJVFk6CisgICAgICAgIGNhc2UgWE1MX0VYVEVSTkFMX0dFTkVSQUxfUEFSU0VEX0VOVElUWToKKwkgICAgcmV0dXJuOworICAgICAgICBjYXNlIFhNTF9FWFRFUk5BTF9HRU5FUkFMX1VOUEFSU0VEX0VOVElUWToKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHhtbFhJbmNsdWRlRXJyKGN0eHQsICh4bWxOb2RlUHRyKSBlbnQsIFhNTF9YSU5DTFVERV9FTlRJVFlfREVGX01JU01BVENILAorICAgICAgICAgICAgICAgICAgICJtaXNtYXRjaCBpbiByZWRlZmluaXRpb24gb2YgZW50aXR5ICVzXG4iLAorCQkgICBlbnQtPm5hbWUpOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlTWVyZ2VFbnRpdGllczoKKyAqIEBjdHh0OiBhbiBYSW5jbHVkZSBjb250ZXh0CisgKiBAZG9jOiAgdGhlIGluY2x1ZGluZyBkb2MKKyAqIEBmcm9tOiAgdGhlIGluY2x1ZGVkIGRvYworICoKKyAqIElucGxlbWVudHMgdGhlIGVudGl0eSBtZXJnZQorICoKKyAqIFJldHVybnMgMCBpZiBtZXJnZSBzdWNjZWVkZWQsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQKKyAqLworc3RhdGljIGludAoreG1sWEluY2x1ZGVNZXJnZUVudGl0aWVzKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jLAorCSAgICAgICAgICAgICAgICAgeG1sRG9jUHRyIGZyb20pIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxEdGRQdHIgdGFyZ2V0LCBzb3VyY2U7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybigtMSk7CisKKyAgICBpZiAoKGZyb20gPT0gTlVMTCkgfHwgKGZyb20tPmludFN1YnNldCA9PSBOVUxMKSkKKwlyZXR1cm4oMCk7CisKKyAgICB0YXJnZXQgPSBkb2MtPmludFN1YnNldDsKKyAgICBpZiAodGFyZ2V0ID09IE5VTEwpIHsKKwljdXIgPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworCWlmIChjdXIgPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKyAgICAgICAgdGFyZ2V0ID0geG1sQ3JlYXRlSW50U3Vic2V0KGRvYywgY3VyLT5uYW1lLCBOVUxMLCBOVUxMKTsKKwlpZiAodGFyZ2V0ID09IE5VTEwpCisJICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgc291cmNlID0gZnJvbS0+aW50U3Vic2V0OworICAgIGlmICgoc291cmNlICE9IE5VTEwpICYmIChzb3VyY2UtPmVudGl0aWVzICE9IE5VTEwpKSB7CisJeG1sWEluY2x1ZGVNZXJnZURhdGEgZGF0YTsKKworCWRhdGEuY3R4dCA9IGN0eHQ7CisJZGF0YS5kb2MgPSBkb2M7CisKKwl4bWxIYXNoU2NhbigoeG1sSGFzaFRhYmxlUHRyKSBzb3VyY2UtPmVudGl0aWVzLAorCQkgICAgKHhtbEhhc2hTY2FubmVyKSB4bWxYSW5jbHVkZU1lcmdlRW50aXR5LCAmZGF0YSk7CisgICAgfQorICAgIHNvdXJjZSA9IGZyb20tPmV4dFN1YnNldDsKKyAgICBpZiAoKHNvdXJjZSAhPSBOVUxMKSAmJiAoc291cmNlLT5lbnRpdGllcyAhPSBOVUxMKSkgeworCXhtbFhJbmNsdWRlTWVyZ2VEYXRhIGRhdGE7CisKKwlkYXRhLmN0eHQgPSBjdHh0OworCWRhdGEuZG9jID0gZG9jOworCisJLyoKKwkgKiBkb24ndCBkdXBsaWNhdGUgZXhpc3Rpbmcgc3R1ZmYgd2hlbiBleHRlcm5hbCBzdWJzZXRzIGFyZSB0aGUgc2FtZQorCSAqLworCWlmICgoIXhtbFN0ckVxdWFsKHRhcmdldC0+RXh0ZXJuYWxJRCwgc291cmNlLT5FeHRlcm5hbElEKSkgJiYKKwkgICAgKCF4bWxTdHJFcXVhbCh0YXJnZXQtPlN5c3RlbUlELCBzb3VyY2UtPlN5c3RlbUlEKSkpIHsKKwkgICAgeG1sSGFzaFNjYW4oKHhtbEhhc2hUYWJsZVB0cikgc291cmNlLT5lbnRpdGllcywKKwkJCSh4bWxIYXNoU2Nhbm5lcikgeG1sWEluY2x1ZGVNZXJnZUVudGl0eSwgJmRhdGEpOworCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlTG9hZERvYzoKKyAqIEBjdHh0OiAgdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqIEB1cmw6ICB0aGUgYXNzb2NpYXRlZCBVUkwKKyAqIEBucjogIHRoZSB4aW5jbHVkZSBub2RlIG51bWJlcgorICogCisgKiBMb2FkIHRoZSBkb2N1bWVudCwgYW5kIHN0b3JlIHRoZSByZXN1bHQgaW4gdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworc3RhdGljIGludAoreG1sWEluY2x1ZGVMb2FkRG9jKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICp1cmwsIGludCBucikgeworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sVVJJUHRyIHVyaTsKKyAgICB4bWxDaGFyICpVUkw7CisgICAgeG1sQ2hhciAqZnJhZ21lbnQgPSBOVUxMOworICAgIGludCBpID0gMDsKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisgICAgaW50IHNhdmVGbGFnczsKKyNlbmRpZgorCisjaWZkZWYgREVCVUdfWElOQ0xVREUKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkxvYWRpbmcgZG9jICVzOiVkXG4iLCB1cmwsIG5yKTsKKyNlbmRpZgorICAgIC8qCisgICAgICogQ2hlY2sgdGhlIFVSTCBhbmQgcmVtb3ZlIGFueSBmcmFnbWVudCBpZGVudGlmaWVyCisgICAgICovCisgICAgdXJpID0geG1sUGFyc2VVUkkoKGNvbnN0IGNoYXIgKil1cmwpOworICAgIGlmICh1cmkgPT0gTlVMTCkgeworCXhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwgCisJICAgICAgICAgICAgICAgWE1MX1hJTkNMVURFX0hSRUZfVVJJLAorCQkgICAgICAgImludmFsaWQgdmFsdWUgVVJJICVzXG4iLCB1cmwpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmICh1cmktPmZyYWdtZW50ICE9IE5VTEwpIHsKKwlmcmFnbWVudCA9ICh4bWxDaGFyICopIHVyaS0+ZnJhZ21lbnQ7CisJdXJpLT5mcmFnbWVudCA9IE5VTEw7CisgICAgfQorICAgIGlmICgoY3R4dC0+aW5jVGFiICE9IE5VTEwpICYmIChjdHh0LT5pbmNUYWJbbnJdICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT5pbmNUYWJbbnJdLT5mcmFnbWVudCAhPSBOVUxMKSkgeworCWlmIChmcmFnbWVudCAhPSBOVUxMKSB4bWxGcmVlKGZyYWdtZW50KTsKKwlmcmFnbWVudCA9IHhtbFN0cmR1cChjdHh0LT5pbmNUYWJbbnJdLT5mcmFnbWVudCk7CisgICAgfQorICAgIFVSTCA9IHhtbFNhdmVVcmkodXJpKTsKKyAgICB4bWxGcmVlVVJJKHVyaSk7CisgICAgaWYgKFVSTCA9PSBOVUxMKSB7CisgICAgICAgIGlmIChjdHh0LT5pbmNUYWIgIT0gTlVMTCkKKwkgICAgeG1sWEluY2x1ZGVFcnIoY3R4dCwgY3R4dC0+aW5jVGFiW25yXS0+cmVmLCAKKwkJCSAgIFhNTF9YSU5DTFVERV9IUkVGX1VSSSwKKwkJCSAgICJpbnZhbGlkIHZhbHVlIFVSSSAlc1xuIiwgdXJsKTsKKwllbHNlCisJICAgIHhtbFhJbmNsdWRlRXJyKGN0eHQsIE5VTEwsCisJCQkgICBYTUxfWElOQ0xVREVfSFJFRl9VUkksCisJCQkgICAiaW52YWxpZCB2YWx1ZSBVUkkgJXNcbiIsIHVybCk7CisJaWYgKGZyYWdtZW50ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoZnJhZ21lbnQpOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBIYW5kbGluZyBvZiByZWZlcmVuY2VzIHRvIHRoZSBsb2NhbCBkb2N1bWVudCBhcmUgZG9uZQorICAgICAqIGRpcmVjdGx5IHRocm91Z2ggY3R4dC0+ZG9jLgorICAgICAqLworICAgIGlmICgoVVJMWzBdID09IDApIHx8IChVUkxbMF0gPT0gJyMnKSB8fAorCSgoY3R4dC0+ZG9jICE9IE5VTEwpICYmICh4bWxTdHJFcXVhbChVUkwsIGN0eHQtPmRvYy0+VVJMKSkpKSB7CisJZG9jID0gTlVMTDsKKyAgICAgICAgZ290byBsb2FkZWQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBQcmV2ZW50IHJlbG9hZGluZyB0d2ljZSB0aGUgZG9jdW1lbnQuCisgICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IGN0eHQtPmluY05yOyBpKyspIHsKKwlpZiAoKHhtbFN0ckVxdWFsKFVSTCwgY3R4dC0+aW5jVGFiW2ldLT5VUkkpKSAmJgorCSAgICAoY3R4dC0+aW5jVGFiW2ldLT5kb2MgIT0gTlVMTCkpIHsKKwkgICAgZG9jID0gY3R4dC0+aW5jVGFiW2ldLT5kb2M7CisjaWZkZWYgREVCVUdfWElOQ0xVREUKKwkgICAgcHJpbnRmKCJBbHJlYWR5IGxvYWRlZCAlc1xuIiwgVVJMKTsKKyNlbmRpZgorCSAgICBnb3RvIGxvYWRlZDsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBMb2FkIGl0LgorICAgICAqLworI2lmZGVmIERFQlVHX1hJTkNMVURFCisgICAgcHJpbnRmKCJsb2FkaW5nICVzXG4iLCBVUkwpOworI2VuZGlmCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorICAgIC8qCisgICAgICogSWYgdGhpcyBpcyBhbiBYUG9pbnRlciBldmFsdWF0aW9uLCB3ZSB3YW50IHRvIGFzc3VyZSB0aGF0CisgICAgICogYWxsIGVudGl0aWVzIGhhdmUgYmVlbiByZXNvbHZlZCBwcmlvciB0byBwcm9jZXNzaW5nIHRoZQorICAgICAqIHJlZmVyZW5jZWQgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBzYXZlRmxhZ3MgPSBjdHh0LT5wYXJzZUZsYWdzOworICAgIGlmIChmcmFnbWVudCAhPSBOVUxMKSB7CS8qIGlmIHRoaXMgaXMgYW4gWFBvaW50ZXIgZXZhbCAqLworCWN0eHQtPnBhcnNlRmxhZ3MgfD0gWE1MX1BBUlNFX05PRU5UOworICAgIH0KKyNlbmRpZgorCisgICAgZG9jID0geG1sWEluY2x1ZGVQYXJzZUZpbGUoY3R4dCwgKGNvbnN0IGNoYXIgKilVUkwpOworI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKKyAgICBjdHh0LT5wYXJzZUZsYWdzID0gc2F2ZUZsYWdzOworI2VuZGlmCisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisJeG1sRnJlZShVUkwpOworCWlmIChmcmFnbWVudCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKGZyYWdtZW50KTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBjdHh0LT5pbmNUYWJbbnJdLT5kb2MgPSBkb2M7CisgICAgLyoKKyAgICAgKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHJlcXVlc3RlZCBVUkwgaGFzIGJlZW4gbWFwcGVkIHRvIGEKKyAgICAgKiBjb21wbGV0ZWx5IGRpZmZlcmVudCBsb2NhdGlvbiAoZS5nLiB0aHJvdWdoIGEgY2F0YWxvZyBlbnRyeSkuCisgICAgICogVG8gY2hlY2sgZm9yIHRoaXMsIHdlIGNvbXBhcmUgdGhlIFVSTCB3aXRoIHRoYXQgb2YgdGhlIGRvYworICAgICAqIGFuZCBjaGFuZ2UgaXQgaWYgdGhleSBkaXNhZ3JlZSAoYnVnIDE0Njk4OCkuCisgICAgICovCisgICBpZiAoIXhtbFN0ckVxdWFsKFVSTCwgZG9jLT5VUkwpKSB7CisgICAgICAgeG1sRnJlZShVUkwpOworICAgICAgIFVSTCA9IHhtbFN0cmR1cChkb2MtPlVSTCk7CisgICB9CisgICAgZm9yIChpID0gbnIgKyAxOyBpIDwgY3R4dC0+aW5jTnI7IGkrKykgeworCWlmICh4bWxTdHJFcXVhbChVUkwsIGN0eHQtPmluY1RhYltpXS0+VVJJKSkgeworCSAgICBjdHh0LT5pbmNUYWJbbnJdLT5jb3VudCsrOworI2lmZGVmIERFQlVHX1hJTkNMVURFCisJICAgIHByaW50ZigiSW5jcmVhc2luZyAlcyBjb3VudCBzaW5jZSByZXVzZWRcbiIsIFVSTCk7CisjZW5kaWYKKyAgICAgICAgICAgIGJyZWFrOworCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE1ha2Ugc3VyZSB3ZSBoYXZlIGFsbCBlbnRpdGllcyBmaXhlZCB1cAorICAgICAqLworICAgIHhtbFhJbmNsdWRlTWVyZ2VFbnRpdGllcyhjdHh0LCBjdHh0LT5kb2MsIGRvYyk7CisKKyAgICAvKgorICAgICAqIFdlIGRvbid0IG5lZWQgdGhlIERURCBhbnltb3JlLCBmcmVlIHVwIHNwYWNlCisgICAgaWYgKGRvYy0+aW50U3Vic2V0ICE9IE5VTEwpIHsKKwl4bWxVbmxpbmtOb2RlKCh4bWxOb2RlUHRyKSBkb2MtPmludFN1YnNldCk7CisJeG1sRnJlZU5vZGUoKHhtbE5vZGVQdHIpIGRvYy0+aW50U3Vic2V0KTsKKwlkb2MtPmludFN1YnNldCA9IE5VTEw7CisgICAgfQorICAgIGlmIChkb2MtPmV4dFN1YnNldCAhPSBOVUxMKSB7CisJeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgZG9jLT5leHRTdWJzZXQpOworCXhtbEZyZWVOb2RlKCh4bWxOb2RlUHRyKSBkb2MtPmV4dFN1YnNldCk7CisJZG9jLT5leHRTdWJzZXQgPSBOVUxMOworICAgIH0KKyAgICAgKi8KKyAgICB4bWxYSW5jbHVkZVJlY3Vyc2VEb2MoY3R4dCwgZG9jLCBVUkwpOworCitsb2FkZWQ6CisgICAgaWYgKGZyYWdtZW50ID09IE5VTEwpIHsKKwkvKgorCSAqIEFkZCB0aGUgdG9wIGNoaWxkcmVuIGxpc3QgYXMgdGhlIHJlcGxhY2VtZW50IGNvcHkuCisJICovCisJaWYgKGRvYyA9PSBOVUxMKQorCXsKKwkgICAgLyogSG9wZWZ1bGx5IGEgRFREIGRlY2xhcmF0aW9uIHdvbid0IGJlIGNvcGllZCBmcm9tCisJICAgICAqIHRoZSBzYW1lIGRvY3VtZW50ICovCisJICAgIGN0eHQtPmluY1RhYltucl0tPmluYyA9IHhtbENvcHlOb2RlTGlzdChjdHh0LT5kb2MtPmNoaWxkcmVuKTsKKwl9IGVsc2UgeworCSAgICBjdHh0LT5pbmNUYWJbbnJdLT5pbmMgPSB4bWxYSW5jbHVkZUNvcHlOb2RlTGlzdChjdHh0LCBjdHh0LT5kb2MsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvYywgZG9jLT5jaGlsZHJlbik7CisJfQorICAgIH0gCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorICAgIGVsc2UgeworCS8qCisJICogQ29tcHV0ZXMgdGhlIFhQb2ludGVyIGV4cHJlc3Npb24gYW5kIG1ha2UgYSBjb3B5IHVzZWQKKwkgKiBhcyB0aGUgcmVwbGFjZW1lbnQgY29weS4KKwkgKi8KKwl4bWxYUGF0aE9iamVjdFB0ciB4cHRyOworCXhtbFhQYXRoQ29udGV4dFB0ciB4cHRyY3R4dDsKKwl4bWxOb2RlU2V0UHRyIHNldDsKKworCWlmIChkb2MgPT0gTlVMTCkgeworCSAgICB4cHRyY3R4dCA9IHhtbFhQdHJOZXdDb250ZXh0KGN0eHQtPmRvYywgY3R4dC0+aW5jVGFiW25yXS0+cmVmLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgeHB0cmN0eHQgPSB4bWxYUHRyTmV3Q29udGV4dChkb2MsIE5VTEwsIE5VTEwpOworCX0KKwlpZiAoeHB0cmN0eHQgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIAorCSAgICAgICAgICAgICAgICAgICBYTUxfWElOQ0xVREVfWFBUUl9GQUlMRUQsCisJCQkgICAiY291bGQgbm90IGNyZWF0ZSBYUG9pbnRlciBjb250ZXh0XG4iLCBOVUxMKTsKKwkgICAgeG1sRnJlZShVUkwpOworCSAgICB4bWxGcmVlKGZyYWdtZW50KTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJeHB0ciA9IHhtbFhQdHJFdmFsKGZyYWdtZW50LCB4cHRyY3R4dCk7CisJaWYgKHhwdHIgPT0gTlVMTCkgeworCSAgICB4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsCisJICAgICAgICAgICAgICAgICAgIFhNTF9YSU5DTFVERV9YUFRSX0ZBSUxFRCwKKwkJCSAgICJYUG9pbnRlciBldmFsdWF0aW9uIGZhaWxlZDogIyVzXG4iLAorCQkJICAgZnJhZ21lbnQpOworCSAgICB4bWxYUGF0aEZyZWVDb250ZXh0KHhwdHJjdHh0KTsKKwkgICAgeG1sRnJlZShVUkwpOworCSAgICB4bWxGcmVlKGZyYWdtZW50KTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJc3dpdGNoICh4cHRyLT50eXBlKSB7CisJICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorCSAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisJICAgIGNhc2UgWFBBVEhfTlVNQkVSOgorCSAgICBjYXNlIFhQQVRIX1NUUklORzoKKwkgICAgY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgY2FzZSBYUEFUSF9VU0VSUzoKKwkgICAgY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJCXhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwgCisJCSAgICAgICAgICAgICAgIFhNTF9YSU5DTFVERV9YUFRSX1JFU1VMVCwKKwkJCSAgICAgICAiWFBvaW50ZXIgaXMgbm90IGEgcmFuZ2U6ICMlc1xuIiwKKwkJCSAgICAgICBmcmFnbWVudCk7CisJCXhtbFhQYXRoRnJlZUNvbnRleHQoeHB0cmN0eHQpOworCQl4bWxGcmVlKFVSTCk7CisJCXhtbEZyZWUoZnJhZ21lbnQpOworCQlyZXR1cm4oLTEpOworCSAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisJICAgICAgICBpZiAoKHhwdHItPm5vZGVzZXR2YWwgPT0gTlVMTCkgfHwKKwkJICAgICh4cHRyLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPD0gMCkpIHsKKwkJICAgIHhtbFhQYXRoRnJlZUNvbnRleHQoeHB0cmN0eHQpOworCQkgICAgeG1sRnJlZShVUkwpOworCQkgICAgeG1sRnJlZShmcmFnbWVudCk7CisJCSAgICByZXR1cm4oLTEpOworCQl9CisKKwkgICAgY2FzZSBYUEFUSF9SQU5HRToKKwkgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKwkJYnJlYWs7CisJfQorCXNldCA9IHhwdHItPm5vZGVzZXR2YWw7CisJaWYgKHNldCAhPSBOVUxMKSB7CisJICAgIGZvciAoaSA9IDA7aSA8IHNldC0+bm9kZU5yO2krKykgeworCQlpZiAoc2V0LT5ub2RlVGFiW2ldID09IE5VTEwpCisJCSAgICBjb250aW51ZTsKKwkJc3dpdGNoIChzZXQtPm5vZGVUYWJbaV0tPnR5cGUpIHsKKwkJICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwkJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkJICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkJICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorCQkgICAgY2FzZSBYTUxfUElfTk9ERToKKwkJICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkJICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisJCSAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCQkgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisJCQljb250aW51ZTsKKworCQkgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJCQl4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIAorCQkJICAgICAgICAgICAgICAgWE1MX1hJTkNMVURFX1hQVFJfUkVTVUxULAorCQkJCSAgICAgICAiWFBvaW50ZXIgc2VsZWN0cyBhbiBhdHRyaWJ1dGU6ICMlc1xuIiwKKwkJCQkgICAgICAgZnJhZ21lbnQpOworCQkJc2V0LT5ub2RlVGFiW2ldID0gTlVMTDsKKwkJCWNvbnRpbnVlOworCQkgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJCQl4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIAorCQkJICAgICAgICAgICAgICAgWE1MX1hJTkNMVURFX1hQVFJfUkVTVUxULAorCQkJCSAgICAgICAiWFBvaW50ZXIgc2VsZWN0cyBhIG5hbWVzcGFjZTogIyVzXG4iLAorCQkJCSAgICAgICBmcmFnbWVudCk7CisJCQlzZXQtPm5vZGVUYWJbaV0gPSBOVUxMOworCQkJY29udGludWU7CisJCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisJCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJCSAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCQkgICAgY2FzZSBYTUxfRFREX05PREU6CisJCSAgICBjYXNlIFhNTF9FTEVNRU5UX0RFQ0w6CisJCSAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKwkJICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorCQkgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJCSAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJCQl4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIAorCQkJICAgICAgICAgICAgICAgWE1MX1hJTkNMVURFX1hQVFJfUkVTVUxULAorCQkJCSAgICJYUG9pbnRlciBzZWxlY3RzIHVuZXhwZWN0ZWQgbm9kZXM6ICMlc1xuIiwKKwkJCQkgICAgICAgZnJhZ21lbnQpOworCQkJc2V0LT5ub2RlVGFiW2ldID0gTlVMTDsKKwkJCXNldC0+bm9kZVRhYltpXSA9IE5VTEw7CisJCQljb250aW51ZTsgLyogZm9yICovCisJCX0KKwkgICAgfQorCX0KKwlpZiAoZG9jID09IE5VTEwpIHsKKwkgICAgY3R4dC0+aW5jVGFiW25yXS0+eHB0ciA9IHhwdHI7CisJICAgIGN0eHQtPmluY1RhYltucl0tPmluYyA9IE5VTEw7CisJfSBlbHNlIHsKKwkgICAgY3R4dC0+aW5jVGFiW25yXS0+aW5jID0KKwkJeG1sWEluY2x1ZGVDb3B5WFBvaW50ZXIoY3R4dCwgY3R4dC0+ZG9jLCBkb2MsIHhwdHIpOworCSAgICB4bWxYUGF0aEZyZWVPYmplY3QoeHB0cik7CisJfQorCXhtbFhQYXRoRnJlZUNvbnRleHQoeHB0cmN0eHQpOworCXhtbEZyZWUoZnJhZ21lbnQpOworICAgIH0KKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBEbyB0aGUgeG1sOmJhc2UgZml4dXAgaWYgbmVlZGVkCisgICAgICovCisgICAgaWYgKChkb2MgIT0gTlVMTCkgJiYgKFVSTCAhPSBOVUxMKSAmJiAoeG1sU3RyY2hyKFVSTCwgKHhtbENoYXIpICcvJykpICYmCisgICAgICAgICghKGN0eHQtPnBhcnNlRmxhZ3MgJiBYTUxfUEFSU0VfTk9CQVNFRklYKSkgJiYKKwkoIShkb2MtPnBhcnNlRmxhZ3MgJiBYTUxfUEFSU0VfTk9CQVNFRklYKSkpIHsKKwl4bWxOb2RlUHRyIG5vZGU7CisJeG1sQ2hhciAqYmFzZTsKKwl4bWxDaGFyICpjdXJCYXNlOworCisJLyoKKwkgKiBUaGUgYmFzZSBpcyBvbmx5IGFkanVzdGVkIGlmICJuZWNlc3NhcnkiLCBpLmUuIGlmIHRoZSB4aW5jbHVkZSBub2RlCisJICogaGFzIGEgYmFzZSBzcGVjaWZpZWQsIG9yIHRoZSBVUkwgaXMgcmVsYXRpdmUKKwkgKi8KKwliYXNlID0geG1sR2V0TnNQcm9wKGN0eHQtPmluY1RhYltucl0tPnJlZiwgQkFEX0NBU1QgImJhc2UiLAorCQkJWE1MX1hNTF9OQU1FU1BBQ0UpOworCWlmIChiYXNlID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgICogTm8geG1sOmJhc2Ugb24gdGhlIHhpbmNsdWRlIG5vZGUsIHNvIHdlIGNoZWNrIHdoZXRoZXIgdGhlCisJICAgICAqIFVSSSBiYXNlIGlzIGRpZmZlcmVudCB0aGFuIChyZWxhdGl2ZSB0bykgdGhlIGNvbnRleHQgYmFzZQorCSAgICAgKi8KKwkgICAgY3VyQmFzZSA9IHhtbEJ1aWxkUmVsYXRpdmVVUkkoVVJMLCBjdHh0LT5iYXNlKTsKKwkgICAgaWYgKGN1ckJhc2UgPT0gTlVMTCkgewkvKiBFcnJvciByZXR1cm4gKi8KKwkgICAgICAgIHhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwgCisJICAgICAgICAgICAgICAgWE1MX1hJTkNMVURFX0hSRUZfVVJJLAorCQkgICAgICAgInRyeWluZyB0byBidWlsZCByZWxhdGl2ZSBVUkkgZnJvbSAlc1xuIiwgVVJMKTsKKwkgICAgfSBlbHNlIHsKKwkJLyogSWYgdGhlIFVSSSBkb2Vzbid0IGNvbnRhaW4gYSBzbGFzaCwgaXQncyBub3QgcmVsYXRpdmUgKi8KKwkgICAgICAgIGlmICgheG1sU3RyY2hyKGN1ckJhc2UsICh4bWxDaGFyKSAnLycpKQorCQkgICAgeG1sRnJlZShjdXJCYXNlKTsKKwkJZWxzZQorCQkgICAgYmFzZSA9IGN1ckJhc2U7CisJICAgIH0KKwl9CisJaWYgKGJhc2UgIT0gTlVMTCkgewkvKiBBZGp1c3RtZW50IG1heSBiZSBuZWVkZWQgKi8KKwkgICAgbm9kZSA9IGN0eHQtPmluY1RhYltucl0tPmluYzsKKwkgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworCQkvKiBPbmx5IHdvcmsgb24gZWxlbWVudCBub2RlcyAqLworCQlpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJCSAgICBjdXJCYXNlID0geG1sTm9kZUdldEJhc2Uobm9kZS0+ZG9jLCBub2RlKTsKKwkJICAgIC8qIElmIG5vIGN1cnJlbnQgYmFzZSwgc2V0IGl0ICovCisJCSAgICBpZiAoY3VyQmFzZSA9PSBOVUxMKSB7CisJCQl4bWxOb2RlU2V0QmFzZShub2RlLCBiYXNlKTsKKwkJICAgIH0gZWxzZSB7CisJCQkvKgorCQkJICogSWYgdGhlIGN1cnJlbnQgYmFzZSBpcyB0aGUgc2FtZSBhcyB0aGUKKwkJCSAqIFVSTCBvZiB0aGUgZG9jdW1lbnQsIHRoZW4gcmVzZXQgaXQgdG8gYmUKKwkJCSAqIHRoZSBzcGVjaWZpZWQgeG1sOmJhc2Ugb3IgdGhlIHJlbGF0aXZlIFVSSQorCQkJICovCisJCQlpZiAoeG1sU3RyRXF1YWwoY3VyQmFzZSwgbm9kZS0+ZG9jLT5VUkwpKSB7CisJCQkgICAgeG1sTm9kZVNldEJhc2Uobm9kZSwgYmFzZSk7CisJCQl9IGVsc2UgeworCQkJICAgIC8qCisJCQkgICAgICogSWYgdGhlIGVsZW1lbnQgYWxyZWFkeSBoYXMgYW4geG1sOmJhc2UKKwkJCSAgICAgKiBzZXQsIHRoZW4gcmVsYXRpdmlzZSBpdCBpZiBuZWNlc3NhcnkKKwkJCSAgICAgKi8KKwkJCSAgICB4bWxDaGFyICp4bWxCYXNlOworCQkJICAgIHhtbEJhc2UgPSB4bWxHZXROc1Byb3Aobm9kZSwKKwkJCQkJICAgIEJBRF9DQVNUICJiYXNlIiwKKwkJCQkJICAgIFhNTF9YTUxfTkFNRVNQQUNFKTsKKwkJCSAgICBpZiAoeG1sQmFzZSAhPSBOVUxMKSB7CisJCQkJeG1sQ2hhciAqcmVsQmFzZTsKKwkJCQlyZWxCYXNlID0geG1sQnVpbGRVUkkoeG1sQmFzZSwgYmFzZSk7CisJCQkJaWYgKHJlbEJhc2UgPT0gTlVMTCkgeyAvKiBlcnJvciAqLworCQkJCSAgICB4bWxYSW5jbHVkZUVycihjdHh0LCAKKwkJCQkJCWN0eHQtPmluY1RhYltucl0tPnJlZiwKKwkJCQkJCVhNTF9YSU5DTFVERV9IUkVGX1VSSSwKKwkJCQkJInRyeWluZyB0byByZWJ1aWxkIGJhc2UgZnJvbSAlc1xuIiwKKwkJCQkJCXhtbEJhc2UpOworCQkJCX0gZWxzZSB7CisJCQkJICAgIHhtbE5vZGVTZXRCYXNlKG5vZGUsIHJlbEJhc2UpOworCQkJCSAgICB4bWxGcmVlKHJlbEJhc2UpOworCQkJCX0KKwkJCQl4bWxGcmVlKHhtbEJhc2UpOworCQkJICAgIH0KKwkJCX0KKwkJCXhtbEZyZWUoY3VyQmFzZSk7CisJCSAgICB9CisJCX0KKwkgICAgICAgIG5vZGUgPSBub2RlLT5uZXh0OworCSAgICB9CisJICAgIHhtbEZyZWUoYmFzZSk7CisJfQorICAgIH0KKyAgICBpZiAoKG5yIDwgY3R4dC0+aW5jTnIpICYmIChjdHh0LT5pbmNUYWJbbnJdLT5kb2MgIT0gTlVMTCkgJiYKKwkoY3R4dC0+aW5jVGFiW25yXS0+Y291bnQgPD0gMSkpIHsKKyNpZmRlZiBERUJVR19YSU5DTFVERQorICAgICAgICBwcmludGYoImZyZWVpbmcgJXNcbiIsIGN0eHQtPmluY1RhYltucl0tPmRvYy0+VVJMKTsKKyNlbmRpZgorCXhtbEZyZWVEb2MoY3R4dC0+aW5jVGFiW25yXS0+ZG9jKTsKKwljdHh0LT5pbmNUYWJbbnJdLT5kb2MgPSBOVUxMOworICAgIH0KKyAgICB4bWxGcmVlKFVSTCk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlTG9hZFR4dDoKKyAqIEBjdHh0OiAgdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqIEB1cmw6ICB0aGUgYXNzb2NpYXRlZCBVUkwKKyAqIEBucjogIHRoZSB4aW5jbHVkZSBub2RlIG51bWJlcgorICogCisgKiBMb2FkIHRoZSBjb250ZW50LCBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiB0aGUgWEluY2x1ZGUgY29udGV4dAorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCitzdGF0aWMgaW50Cit4bWxYSW5jbHVkZUxvYWRUeHQoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKnVybCwgaW50IG5yKSB7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgYnVmOworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICB4bWxVUklQdHIgdXJpOworICAgIHhtbENoYXIgKlVSTDsKKyAgICBpbnQgaTsKKyAgICB4bWxDaGFyICplbmNvZGluZyA9IE5VTEw7CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYyA9ICh4bWxDaGFyRW5jb2RpbmcpIDA7CisKKyAgICAvKgorICAgICAqIENoZWNrIHRoZSBVUkwgYW5kIHJlbW92ZSBhbnkgZnJhZ21lbnQgaWRlbnRpZmllcgorICAgICAqLworICAgIHVyaSA9IHhtbFBhcnNlVVJJKChjb25zdCBjaGFyICopdXJsKTsKKyAgICBpZiAodXJpID09IE5VTEwpIHsKKwl4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIFhNTF9YSU5DTFVERV9IUkVGX1VSSSwKKwkgICAgICAgICAgICAgICAiaW52YWxpZCB2YWx1ZSBVUkkgJXNcbiIsIHVybCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKHVyaS0+ZnJhZ21lbnQgIT0gTlVMTCkgeworCXhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwgWE1MX1hJTkNMVURFX1RFWFRfRlJBR01FTlQsCisJICAgICAgICAgICAgICAgImZyYWdtZW50IGlkZW50aWZpZXIgZm9yYmlkZGVuIGZvciB0ZXh0OiAlc1xuIiwKKwkJICAgICAgIChjb25zdCB4bWxDaGFyICopIHVyaS0+ZnJhZ21lbnQpOworCXhtbEZyZWVVUkkodXJpKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBVUkwgPSB4bWxTYXZlVXJpKHVyaSk7CisgICAgeG1sRnJlZVVSSSh1cmkpOworICAgIGlmIChVUkwgPT0gTlVMTCkgeworCXhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwgWE1MX1hJTkNMVURFX0hSRUZfVVJJLAorCSAgICAgICAgICAgICAgICJpbnZhbGlkIHZhbHVlIFVSSSAlc1xuIiwgdXJsKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogSGFuZGxpbmcgb2YgcmVmZXJlbmNlcyB0byB0aGUgbG9jYWwgZG9jdW1lbnQgYXJlIGRvbmUKKyAgICAgKiBkaXJlY3RseSB0aHJvdWdoIGN0eHQtPmRvYy4KKyAgICAgKi8KKyAgICBpZiAoVVJMWzBdID09IDApIHsKKwl4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIAorCSAgICAgICAgICAgICAgIFhNTF9YSU5DTFVERV9URVhUX0RPQ1VNRU5ULAorCQkgICAgICAgInRleHQgc2VyaWFsaXphdGlvbiBvZiBkb2N1bWVudCBub3QgYXZhaWxhYmxlXG4iLCBOVUxMKTsKKwl4bWxGcmVlKFVSTCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFByZXZlbnQgcmVsb2FkaW5nIHR3aWNlIHRoZSBkb2N1bWVudC4KKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgY3R4dC0+dHh0TnI7IGkrKykgeworCWlmICh4bWxTdHJFcXVhbChVUkwsIGN0eHQtPnR4dHVybFRhYltpXSkpIHsKKwkgICAgbm9kZSA9IHhtbENvcHlOb2RlKGN0eHQtPnR4dFRhYltpXSwgMSk7CisJICAgIGdvdG8gbG9hZGVkOworCX0KKyAgICB9CisgICAgLyoKKyAgICAgKiBUcnkgdG8gZ2V0IHRoZSBlbmNvZGluZyBpZiBhdmFpbGFibGUKKyAgICAgKi8KKyAgICBpZiAoKGN0eHQtPmluY1RhYltucl0gIT0gTlVMTCkgJiYgKGN0eHQtPmluY1RhYltucl0tPnJlZiAhPSBOVUxMKSkgeworCWVuY29kaW5nID0geG1sR2V0UHJvcChjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIFhJTkNMVURFX1BBUlNFX0VOQ09ESU5HKTsKKyAgICB9CisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwkvKgorCSAqIFRPRE86IHdlIHNob3VsZCBub3QgaGF2ZSB0byByZW1hcCB0byB0aGUgeG1sQ2hhckVuY29kaW5nCisJICogICAgICAgcHJlZGVmaW5lZCBzZXQsIGEgYmV0dGVyIGludGVyZmFjZSB0aGFuCisJICogICAgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSBzaG91bGQgYWxsb3cgYW55CisJICogICAgICAgZW5jb2Rpbmcgc3VwcG9ydGVkIGJ5IGljb252CisJICovCisgICAgICAgIGVuYyA9IHhtbFBhcnNlQ2hhckVuY29kaW5nKChjb25zdCBjaGFyICopIGVuY29kaW5nKTsKKwlpZiAoZW5jID09IFhNTF9DSEFSX0VOQ09ESU5HX0VSUk9SKSB7CisJICAgIHhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwKKwkgICAgICAgICAgICAgICAgICAgWE1MX1hJTkNMVURFX1VOS05PV05fRU5DT0RJTkcsCisJCQkgICAiZW5jb2RpbmcgJXMgbm90IHN1cHBvcnRlZFxuIiwgZW5jb2RpbmcpOworCSAgICB4bWxGcmVlKGVuY29kaW5nKTsKKwkgICAgeG1sRnJlZShVUkwpOworCSAgICByZXR1cm4oLTEpOworCX0KKwl4bWxGcmVlKGVuY29kaW5nKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIExvYWQgaXQuCisgICAgICovCisgICAgYnVmID0geG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZSgoY29uc3QgY2hhciAqKVVSTCwgZW5jKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKwl4bWxGcmVlKFVSTCk7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgbm9kZSA9IHhtbE5ld1RleHQoTlVMTCk7CisKKyAgICAvKgorICAgICAqIFNjYW4gYWxsIGNoYXJzIGZyb20gdGhlIHJlc291cmNlIGFuZCBhZGQgdGhlIHRvIHRoZSBub2RlCisgICAgICovCisgICAgd2hpbGUgKHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZChidWYsIDEyOCkgPiAwKSB7CisJaW50IGxlbjsKKwljb25zdCB4bWxDaGFyICpjb250ZW50OworCisJY29udGVudCA9IHhtbEJ1ZmZlckNvbnRlbnQoYnVmLT5idWZmZXIpOworCWxlbiA9IHhtbEJ1ZmZlckxlbmd0aChidWYtPmJ1ZmZlcik7CisJZm9yIChpID0gMDtpIDwgbGVuOykgeworCSAgICBpbnQgY3VyOworCSAgICBpbnQgbDsKKworCSAgICBjdXIgPSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCAmY29udGVudFtpXSwgJmwpOworCSAgICBpZiAoIUlTX0NIQVIoY3VyKSkgeworCQl4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsCisJCSAgICAgICAgICAgICAgIFhNTF9YSU5DTFVERV9JTlZBTElEX0NIQVIsCisJCQkgICAgICAgIiVzIGNvbnRhaW5zIGludmFsaWQgY2hhclxuIiwgVVJMKTsKKwkJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisJCXhtbEZyZWUoVVJMKTsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sTm9kZUFkZENvbnRlbnRMZW4obm9kZSwgJmNvbnRlbnRbaV0sIGwpOworCSAgICB9CisJICAgIGkgKz0gbDsKKwl9CisJeG1sQnVmZmVyU2hyaW5rKGJ1Zi0+YnVmZmVyLCBsZW4pOworICAgIH0KKyAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoYnVmKTsKKyAgICB4bWxYSW5jbHVkZUFkZFR4dChjdHh0LCBub2RlLCBVUkwpOworCitsb2FkZWQ6CisgICAgLyoKKyAgICAgKiBBZGQgdGhlIGVsZW1lbnQgYXMgdGhlIHJlcGxhY2VtZW50IGNvcHkuCisgICAgICovCisgICAgY3R4dC0+aW5jVGFiW25yXS0+aW5jID0gbm9kZTsKKyAgICB4bWxGcmVlKFVSTCk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlTG9hZEZhbGxiYWNrOgorICogQGN0eHQ6ICB0aGUgWEluY2x1ZGUgY29udGV4dAorICogQGZhbGxiYWNrOiAgdGhlIGZhbGxiYWNrIG5vZGUKKyAqIEBucjogIHRoZSB4aW5jbHVkZSBub2RlIG51bWJlcgorICogCisgKiBMb2FkIHRoZSBjb250ZW50IG9mIHRoZSBmYWxsYmFjayBub2RlLCBhbmQgc3RvcmUgdGhlIHJlc3VsdAorICogaW4gdGhlIFhJbmNsdWRlIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworc3RhdGljIGludAoreG1sWEluY2x1ZGVMb2FkRmFsbGJhY2soeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgZmFsbGJhY2ssIGludCBucikgeworICAgIHhtbFhJbmNsdWRlQ3R4dFB0ciBuZXdjdHh0OworICAgIGludCByZXQgPSAwOworICAgIAorICAgIGlmICgoZmFsbGJhY2sgPT0gTlVMTCkgfHwgKGN0eHQgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoZmFsbGJhY2stPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkvKgorCSAqIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgZmFsbGJhY2sgYWxzbyBoYXMgJ2luY2x1ZGVzJworCSAqIChCdWcgMTI5OTY5KSwgc28gd2UgcmUtcHJvY2VzcyB0aGUgZmFsbGJhY2sganVzdCBpbiBjYXNlCisJICovCisJbmV3Y3R4dCA9IHhtbFhJbmNsdWRlTmV3Q29udGV4dChjdHh0LT5kb2MpOworCWlmIChuZXdjdHh0ID09IE5VTEwpCisJICAgIHJldHVybiAoLTEpOworCW5ld2N0eHQtPl9wcml2YXRlID0gY3R4dC0+X3ByaXZhdGU7CisJbmV3Y3R4dC0+YmFzZSA9IHhtbFN0cmR1cChjdHh0LT5iYXNlKTsJLyogSW5oZXJpdCB0aGUgYmFzZSBmcm9tIHRoZSBleGlzdGluZyBjb250ZXh0ICovCisJeG1sWEluY2x1ZGVTZXRGbGFncyhuZXdjdHh0LCBjdHh0LT5wYXJzZUZsYWdzKTsKKwlyZXQgPSB4bWxYSW5jbHVkZURvUHJvY2VzcyhuZXdjdHh0LCBjdHh0LT5kb2MsIGZhbGxiYWNrLT5jaGlsZHJlbik7CisJaWYgKGN0eHQtPm5iRXJyb3JzID4gMCkKKwkgICAgcmV0ID0gLTE7CisJZWxzZSBpZiAocmV0ID4gMCkKKwkgICAgcmV0ID0gMDsJLyogeG1sWEluY2x1ZGVEb1Byb2Nlc3MgY2FuIHJldHVybiArdmUgbnVtYmVyICovCisJeG1sWEluY2x1ZGVGcmVlQ29udGV4dChuZXdjdHh0KTsKKworCWN0eHQtPmluY1RhYltucl0tPmluYyA9IHhtbERvY0NvcHlOb2RlTGlzdChjdHh0LT5kb2MsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrLT5jaGlsZHJlbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY3R4dC0+aW5jVGFiW25yXS0+aW5jID0gTlVMTDsKKwljdHh0LT5pbmNUYWJbbnJdLT5lbXB0eUZiID0gMTsJLyogZmxhZyBlbXB0eSBjYWxsYmFjayAqLworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVhJbmNsdWRlIFByb2Nlc3NpbmcJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhJbmNsdWRlUHJlUHJvY2Vzc05vZGU6CisgKiBAY3R4dDogYW4gWEluY2x1ZGUgY29udGV4dAorICogQG5vZGU6IGFuIFhJbmNsdWRlIG5vZGUKKyAqCisgKiBJbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHByZXByb2Nlc3NpbmcsIGN1cnJlbnRseSBqdXN0IGFkZGluZyB0aGUgZWxlbWVudAorICogZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZy4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHQgbGlzdCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbE5vZGVQdHIKK3htbFhJbmNsdWRlUHJlUHJvY2Vzc05vZGUoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIHhtbFhJbmNsdWRlQWRkTm9kZShjdHh0LCBub2RlKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVMb2FkTm9kZToKKyAqIEBjdHh0OiBhbiBYSW5jbHVkZSBjb250ZXh0CisgKiBAbnI6IHRoZSBub2RlIG51bWJlcgorICoKKyAqIEZpbmQgYW5kIGxvYWQgdGhlIGluZm9zZXQgcmVwbGFjZW1lbnQgZm9yIHRoZSBnaXZlbiBub2RlLgorICoKKyAqIFJldHVybnMgMCBpZiBzdWJzdGl0dXRpb24gc3VjY2VlZGVkLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkCisgKi8KK3N0YXRpYyBpbnQKK3htbFhJbmNsdWRlTG9hZE5vZGUoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIGludCBucikgeworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIHhtbENoYXIgKmhyZWY7CisgICAgeG1sQ2hhciAqcGFyc2U7CisgICAgeG1sQ2hhciAqYmFzZTsKKyAgICB4bWxDaGFyICpvbGRCYXNlOworICAgIHhtbENoYXIgKlVSSTsKKyAgICBpbnQgeG1sID0gMTsgLyogZGVmYXVsdCBJc3N1ZSA2NCAqLworICAgIGludCByZXQ7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKChuciA8IDApIHx8IChuciA+PSBjdHh0LT5pbmNOcikpCisJcmV0dXJuKC0xKTsKKyAgICBjdXIgPSBjdHh0LT5pbmNUYWJbbnJdLT5yZWY7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorCXJldHVybigtMSk7CisKKyAgICAvKgorICAgICAqIHJlYWQgdGhlIGF0dHJpYnV0ZXMKKyAgICAgKi8KKyAgICBocmVmID0geG1sWEluY2x1ZGVHZXRQcm9wKGN0eHQsIGN1ciwgWElOQ0xVREVfSFJFRik7CisgICAgaWYgKGhyZWYgPT0gTlVMTCkgeworCWhyZWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIiIpOyAvKiBAQEBAIGhyZWYgaXMgbm93IG9wdGlvbmFsICovCisJaWYgKGhyZWYgPT0gTlVMTCkgCisJICAgIHJldHVybigtMSk7CisgICAgfQorICAgIHBhcnNlID0geG1sWEluY2x1ZGVHZXRQcm9wKGN0eHQsIGN1ciwgWElOQ0xVREVfUEFSU0UpOworICAgIGlmIChwYXJzZSAhPSBOVUxMKSB7CisJaWYgKHhtbFN0ckVxdWFsKHBhcnNlLCBYSU5DTFVERV9QQVJTRV9YTUwpKQorCSAgICB4bWwgPSAxOworCWVsc2UgaWYgKHhtbFN0ckVxdWFsKHBhcnNlLCBYSU5DTFVERV9QQVJTRV9URVhUKSkKKwkgICAgeG1sID0gMDsKKwllbHNlIHsKKwkgICAgeG1sWEluY2x1ZGVFcnIoY3R4dCwgY3R4dC0+aW5jVGFiW25yXS0+cmVmLAorCSAgICAgICAgICAgICAgICAgICBYTUxfWElOQ0xVREVfUEFSU0VfVkFMVUUsCisJCQkgICAiaW52YWxpZCB2YWx1ZSAlcyBmb3IgJ3BhcnNlJ1xuIiwgcGFyc2UpOworCSAgICBpZiAoaHJlZiAhPSBOVUxMKQorCQl4bWxGcmVlKGhyZWYpOworCSAgICBpZiAocGFyc2UgIT0gTlVMTCkKKwkJeG1sRnJlZShwYXJzZSk7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogY29tcHV0ZSB0aGUgVVJJCisgICAgICovCisgICAgYmFzZSA9IHhtbE5vZGVHZXRCYXNlKGN0eHQtPmRvYywgY3VyKTsKKyAgICBpZiAoYmFzZSA9PSBOVUxMKSB7CisJVVJJID0geG1sQnVpbGRVUkkoaHJlZiwgY3R4dC0+ZG9jLT5VUkwpOworICAgIH0gZWxzZSB7CisJVVJJID0geG1sQnVpbGRVUkkoaHJlZiwgYmFzZSk7CisgICAgfQorICAgIGlmIChVUkkgPT0gTlVMTCkgeworCXhtbENoYXIgKmVzY2Jhc2U7CisJeG1sQ2hhciAqZXNjaHJlZjsKKwkvKgorCSAqIFNvbWUgZXNjYXBpbmcgbWF5IGJlIG5lZWRlZAorCSAqLworCWVzY2Jhc2UgPSB4bWxVUklFc2NhcGUoYmFzZSk7CisJZXNjaHJlZiA9IHhtbFVSSUVzY2FwZShocmVmKTsKKwlVUkkgPSB4bWxCdWlsZFVSSShlc2NocmVmLCBlc2NiYXNlKTsKKwlpZiAoZXNjYmFzZSAhPSBOVUxMKQorCSAgICB4bWxGcmVlKGVzY2Jhc2UpOworCWlmIChlc2NocmVmICE9IE5VTEwpCisJICAgIHhtbEZyZWUoZXNjaHJlZik7CisgICAgfQorICAgIGlmIChVUkkgPT0gTlVMTCkgeworCXhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwgCisJICAgICAgICAgICAgICAgWE1MX1hJTkNMVURFX0hSRUZfVVJJLCAiZmFpbGVkIGJ1aWxkIFVSTFxuIiwgTlVMTCk7CisJaWYgKHBhcnNlICE9IE5VTEwpCisJICAgIHhtbEZyZWUocGFyc2UpOworCWlmIChocmVmICE9IE5VTEwpCisJICAgIHhtbEZyZWUoaHJlZik7CisJaWYgKGJhc2UgIT0gTlVMTCkKKwkgICAgeG1sRnJlZShiYXNlKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyNpZmRlZiBERUJVR19YSU5DTFVERQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAicGFyc2U6ICVzXG4iLAorCSAgICB4bWwgPyAieG1sIjogInRleHQiKTsKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlVSSTogJXNcbiIsIFVSSSk7CisjZW5kaWYKKworICAgIC8qCisgICAgICogU2F2ZSB0aGUgYmFzZSBmb3IgdGhpcyBpbmNsdWRlIChzYXZpbmcgdGhlIGN1cnJlbnQgb25lKQorICAgICAqLworICAgIG9sZEJhc2UgPSBjdHh0LT5iYXNlOworICAgIGN0eHQtPmJhc2UgPSBiYXNlOworCisgICAgaWYgKHhtbCkgeworCXJldCA9IHhtbFhJbmNsdWRlTG9hZERvYyhjdHh0LCBVUkksIG5yKTsKKwkvKiB4bWxYSW5jbHVkZUdldEZyYWdtZW50KGN0eHQsIGN1ciwgVVJJKTsgKi8KKyAgICB9IGVsc2UgeworCXJldCA9IHhtbFhJbmNsdWRlTG9hZFR4dChjdHh0LCBVUkksIG5yKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlc3RvcmUgdGhlIG9yaWdpbmFsIGJhc2UgYmVmb3JlIGNoZWNraW5nIGZvciBmYWxsYmFjaworICAgICAqLworICAgIGN0eHQtPmJhc2UgPSBvbGRCYXNlOworICAgIAorICAgIGlmIChyZXQgPCAwKSB7CisJeG1sTm9kZVB0ciBjaGlsZHJlbjsKKworCS8qCisJICogVGltZSB0byB0cnkgYSBmYWxsYmFjayBpZiBhdmFpbGJsZQorCSAqLworI2lmZGVmIERFQlVHX1hJTkNMVURFCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJlcnJvciBsb29raW5nIGZvciBmYWxsYmFja1xuIik7CisjZW5kaWYKKwljaGlsZHJlbiA9IGN1ci0+Y2hpbGRyZW47CisJd2hpbGUgKGNoaWxkcmVuICE9IE5VTEwpIHsKKwkgICAgaWYgKChjaGlsZHJlbi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkoY2hpbGRyZW4tPm5zICE9IE5VTEwpICYmCisJCSh4bWxTdHJFcXVhbChjaGlsZHJlbi0+bmFtZSwgWElOQ0xVREVfRkFMTEJBQ0spKSAmJgorCQkoKHhtbFN0ckVxdWFsKGNoaWxkcmVuLT5ucy0+aHJlZiwgWElOQ0xVREVfTlMpKSB8fAorCQkgKHhtbFN0ckVxdWFsKGNoaWxkcmVuLT5ucy0+aHJlZiwgWElOQ0xVREVfT0xEX05TKSkpKSB7CisJCXJldCA9IHhtbFhJbmNsdWRlTG9hZEZhbGxiYWNrKGN0eHQsIGNoaWxkcmVuLCBucik7CisJCWlmIChyZXQgPT0gMCkgCisJCSAgICBicmVhazsKKwkgICAgfQorCSAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLT5uZXh0OworCX0KKyAgICB9CisgICAgaWYgKHJldCA8IDApIHsKKwl4bWxYSW5jbHVkZUVycihjdHh0LCBjdHh0LT5pbmNUYWJbbnJdLT5yZWYsIAorCSAgICAgICAgICAgICAgIFhNTF9YSU5DTFVERV9OT19GQUxMQkFDSywKKwkJICAgICAgICJjb3VsZCBub3QgbG9hZCAlcywgYW5kIG5vIGZhbGxiYWNrIHdhcyBmb3VuZFxuIiwKKwkJICAgICAgIFVSSSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDbGVhbnVwCisgICAgICovCisgICAgaWYgKFVSSSAhPSBOVUxMKQorCXhtbEZyZWUoVVJJKTsKKyAgICBpZiAocGFyc2UgIT0gTlVMTCkKKwl4bWxGcmVlKHBhcnNlKTsKKyAgICBpZiAoaHJlZiAhPSBOVUxMKQorCXhtbEZyZWUoaHJlZik7CisgICAgaWYgKGJhc2UgIT0gTlVMTCkKKwl4bWxGcmVlKGJhc2UpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZUluY2x1ZGVOb2RlOgorICogQGN0eHQ6IGFuIFhJbmNsdWRlIGNvbnRleHQKKyAqIEBucjogdGhlIG5vZGUgbnVtYmVyCisgKgorICogSW5wbGVtZW50IHRoZSBpbmZvc2V0IHJlcGxhY2VtZW50IGZvciB0aGUgZ2l2ZW4gbm9kZQorICoKKyAqIFJldHVybnMgMCBpZiBzdWJzdGl0dXRpb24gc3VjY2VlZGVkLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkCisgKi8KK3N0YXRpYyBpbnQKK3htbFhJbmNsdWRlSW5jbHVkZU5vZGUoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIGludCBucikgeworICAgIHhtbE5vZGVQdHIgY3VyLCBlbmQsIGxpc3QsIHRtcDsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoKG5yIDwgMCkgfHwgKG5yID49IGN0eHQtPmluY05yKSkKKwlyZXR1cm4oLTEpOworICAgIGN1ciA9IGN0eHQtPmluY1RhYltucl0tPnJlZjsKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKworICAgIC8qCisgICAgICogSWYgd2Ugc3RvcmVkIGFuIFhQb2ludGVyIGEgbGF0ZSBjb21wdXRhdGlvbiBtYXkgYmUgbmVlZGVkCisgICAgICovCisgICAgaWYgKChjdHh0LT5pbmNUYWJbbnJdLT5pbmMgPT0gTlVMTCkgJiYKKwkoY3R4dC0+aW5jVGFiW25yXS0+eHB0ciAhPSBOVUxMKSkgeworCWN0eHQtPmluY1RhYltucl0tPmluYyA9CisJICAgIHhtbFhJbmNsdWRlQ29weVhQb2ludGVyKGN0eHQsIGN0eHQtPmRvYywgY3R4dC0+ZG9jLAorCQkgICAgICAgICAgICAgICAgICAgIGN0eHQtPmluY1RhYltucl0tPnhwdHIpOworCXhtbFhQYXRoRnJlZU9iamVjdChjdHh0LT5pbmNUYWJbbnJdLT54cHRyKTsKKwljdHh0LT5pbmNUYWJbbnJdLT54cHRyID0gTlVMTDsKKyAgICB9CisgICAgbGlzdCA9IGN0eHQtPmluY1RhYltucl0tPmluYzsKKyAgICBjdHh0LT5pbmNUYWJbbnJdLT5pbmMgPSBOVUxMOworCisgICAgLyoKKyAgICAgKiBDaGVjayBhZ2FpbnN0IHRoZSByaXNrIG9mIGdlbmVyYXRpbmcgYSBtdWx0aS1yb290ZWQgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBpZiAoKGN1ci0+cGFyZW50ICE9IE5VTEwpICYmCisJKGN1ci0+cGFyZW50LT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKSB7CisJaW50IG5iX2VsZW0gPSAwOworCisJdG1wID0gbGlzdDsKKwl3aGlsZSAodG1wICE9IE5VTEwpIHsKKwkgICAgaWYgKHRtcC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKQorCQluYl9lbGVtKys7CisJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwl9CisJaWYgKG5iX2VsZW0gPiAxKSB7CisJICAgIHhtbFhJbmNsdWRlRXJyKGN0eHQsIGN0eHQtPmluY1RhYltucl0tPnJlZiwgCisJICAgICAgICAgICAgICAgICAgIFhNTF9YSU5DTFVERV9NVUxUSVBMRV9ST09ULAorCQkgICAgICAgIlhJbmNsdWRlIGVycm9yOiB3b3VsZCByZXN1bHQgaW4gbXVsdGlwbGUgcm9vdCBub2Rlc1xuIiwKKwkJCSAgIE5VTEwpOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9CisKKyAgICBpZiAoY3R4dC0+cGFyc2VGbGFncyAmIFhNTF9QQVJTRV9OT1hJTkNOT0RFKSB7CisJLyoKKwkgKiBBZGQgdGhlIGxpc3Qgb2Ygbm9kZXMKKwkgKi8KKwl3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisJICAgIGVuZCA9IGxpc3Q7CisJICAgIGxpc3QgPSBsaXN0LT5uZXh0OworCisJICAgIHhtbEFkZFByZXZTaWJsaW5nKGN1ciwgZW5kKTsKKwl9CisJeG1sVW5saW5rTm9kZShjdXIpOworCXhtbEZyZWVOb2RlKGN1cik7CisgICAgfSBlbHNlIHsKKwkvKgorCSAqIENoYW5nZSB0aGUgY3VycmVudCBub2RlIGFzIGFuIFhJbmNsdWRlIHN0YXJ0IG9uZSwgYW5kIGFkZCBhbgorCSAqIFhJbmNsdWRlIGVuZCBvbmUKKwkgKi8KKwljdXItPnR5cGUgPSBYTUxfWElOQ0xVREVfU1RBUlQ7CisJZW5kID0geG1sTmV3RG9jTm9kZShjdXItPmRvYywgY3VyLT5ucywgY3VyLT5uYW1lLCBOVUxMKTsKKwlpZiAoZW5kID09IE5VTEwpIHsKKwkgICAgeG1sWEluY2x1ZGVFcnIoY3R4dCwgY3R4dC0+aW5jVGFiW25yXS0+cmVmLAorCSAgICAgICAgICAgICAgICAgICBYTUxfWElOQ0xVREVfQlVJTERfRkFJTEVELAorCQkJICAgImZhaWxlZCB0byBidWlsZCBub2RlXG4iLCBOVUxMKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJZW5kLT50eXBlID0gWE1MX1hJTkNMVURFX0VORDsKKwl4bWxBZGROZXh0U2libGluZyhjdXIsIGVuZCk7CisKKwkvKgorCSAqIEFkZCB0aGUgbGlzdCBvZiBub2RlcworCSAqLworCXdoaWxlIChsaXN0ICE9IE5VTEwpIHsKKwkgICAgY3VyID0gbGlzdDsKKwkgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisKKwkgICAgeG1sQWRkUHJldlNpYmxpbmcoZW5kLCBjdXIpOworCX0KKyAgICB9CisKKyAgICAKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVUZXN0Tm9kZToKKyAqIEBjdHh0OiB0aGUgWEluY2x1ZGUgcHJvY2Vzc2luZyBjb250ZXh0CisgKiBAbm9kZTogYW4gWEluY2x1ZGUgbm9kZQorICoKKyAqIHRlc3QgaWYgdGhlIG5vZGUgaXMgYW4gWEluY2x1ZGUgbm9kZQorICoKKyAqIFJldHVybnMgMSB0cnVlLCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxYSW5jbHVkZVRlc3ROb2RlKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICBpZiAobm9kZSA9PSBOVUxMKQorCXJldHVybigwKTsKKyAgICBpZiAobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybigwKTsKKyAgICBpZiAobm9kZS0+bnMgPT0gTlVMTCkKKwlyZXR1cm4oMCk7CisgICAgaWYgKCh4bWxTdHJFcXVhbChub2RlLT5ucy0+aHJlZiwgWElOQ0xVREVfTlMpKSB8fAorICAgICAgICAoeG1sU3RyRXF1YWwobm9kZS0+bnMtPmhyZWYsIFhJTkNMVURFX09MRF9OUykpKSB7CisJaWYgKHhtbFN0ckVxdWFsKG5vZGUtPm5zLT5ocmVmLCBYSU5DTFVERV9PTERfTlMpKSB7CisJICAgIGlmIChjdHh0LT5sZWdhY3kgPT0gMCkgeworI2lmIDAgLyogd2FpdCBmb3IgdGhlIFhNTCBDb3JlIFdvcmtpbmcgR3JvdXAgdG8gZ2V0IHNvbWV0aGluZyBzdGFibGUgISAqLworCQl4bWxYSW5jbHVkZVdhcm4oY3R4dCwgbm9kZSwgWE1MX1hJTkNMVURFX0RFUFJFQ0FURURfTlMsCisJICAgICAgICAgICAgICAgIkRlcHJlY2F0ZWQgWEluY2x1ZGUgbmFtZXNwYWNlIGZvdW5kLCB1c2UgJXMiLAorCQkgICAgICAgICAgICAgICAgWElOQ0xVREVfTlMpOworI2VuZGlmCisJICAgICAgICBjdHh0LT5sZWdhY3kgPSAxOworCSAgICB9CisJfQorCWlmICh4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBYSU5DTFVERV9OT0RFKSkgeworCSAgICB4bWxOb2RlUHRyIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisJICAgIGludCBuYl9mYWxsYmFjayA9IDA7CisKKwkgICAgd2hpbGUgKGNoaWxkICE9IE5VTEwpIHsKKwkJaWYgKChjaGlsZC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkgICAgKGNoaWxkLT5ucyAhPSBOVUxMKSAmJgorCQkgICAgKCh4bWxTdHJFcXVhbChjaGlsZC0+bnMtPmhyZWYsIFhJTkNMVURFX05TKSkgfHwKKwkJICAgICAoeG1sU3RyRXF1YWwoY2hpbGQtPm5zLT5ocmVmLCBYSU5DTFVERV9PTERfTlMpKSkpIHsKKwkJICAgIGlmICh4bWxTdHJFcXVhbChjaGlsZC0+bmFtZSwgWElOQ0xVREVfTk9ERSkpIHsKKwkJCXhtbFhJbmNsdWRlRXJyKGN0eHQsIG5vZGUsCisJCQkgICAgICAgICAgICAgICBYTUxfWElOQ0xVREVfSU5DTFVERV9JTl9JTkNMVURFLAorCQkJCSAgICAgICAiJXMgaGFzIGFuICdpbmNsdWRlJyBjaGlsZFxuIiwKKwkJCQkgICAgICAgWElOQ0xVREVfTk9ERSk7CisJCQlyZXR1cm4oMCk7CisJCSAgICB9CisJCSAgICBpZiAoeG1sU3RyRXF1YWwoY2hpbGQtPm5hbWUsIFhJTkNMVURFX0ZBTExCQUNLKSkgeworCQkJbmJfZmFsbGJhY2srKzsKKwkJICAgIH0KKwkJfQorCQljaGlsZCA9IGNoaWxkLT5uZXh0OworCSAgICB9CisJICAgIGlmIChuYl9mYWxsYmFjayA+IDEpIHsKKwkJeG1sWEluY2x1ZGVFcnIoY3R4dCwgbm9kZSwgWE1MX1hJTkNMVURFX0ZBTExCQUNLU19JTl9JTkNMVURFLAorCQkJICAgICAgICIlcyBoYXMgbXVsdGlwbGUgZmFsbGJhY2sgY2hpbGRyZW5cbiIsCisJCSAgICAgICAgICAgICAgIFhJTkNMVURFX05PREUpOworCQlyZXR1cm4oMCk7CisJICAgIH0KKwkgICAgcmV0dXJuKDEpOworCX0KKwlpZiAoeG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgWElOQ0xVREVfRkFMTEJBQ0spKSB7CisJICAgIGlmICgobm9kZS0+cGFyZW50ID09IE5VTEwpIHx8CisJCShub2RlLT5wYXJlbnQtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKwkJKG5vZGUtPnBhcmVudC0+bnMgPT0gTlVMTCkgfHwKKwkJKCgheG1sU3RyRXF1YWwobm9kZS0+cGFyZW50LT5ucy0+aHJlZiwgWElOQ0xVREVfTlMpKSAmJgorCQkgKCF4bWxTdHJFcXVhbChub2RlLT5wYXJlbnQtPm5zLT5ocmVmLCBYSU5DTFVERV9PTERfTlMpKSkgfHwKKwkJKCF4bWxTdHJFcXVhbChub2RlLT5wYXJlbnQtPm5hbWUsIFhJTkNMVURFX05PREUpKSkgeworCQl4bWxYSW5jbHVkZUVycihjdHh0LCBub2RlLAorCQkgICAgICAgICAgICAgICBYTUxfWElOQ0xVREVfRkFMTEJBQ0tfTk9UX0lOX0lOQ0xVREUsCisJCQkgICAgICAgIiVzIGlzIG5vdCB0aGUgY2hpbGQgb2YgYW4gJ2luY2x1ZGUnXG4iLAorCQkJICAgICAgIFhJTkNMVURFX0ZBTExCQUNLKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlRG9Qcm9jZXNzOgorICogQGN0eHQ6IHRoZSBYSW5jbHVkZSBwcm9jZXNzaW5nIGNvbnRleHQKKyAqIEBkb2M6IGFuIFhNTCBkb2N1bWVudAorICogQHRyZWU6IHRoZSB0b3Agb2YgdGhlIHRyZWUgdG8gcHJvY2VzcworICoKKyAqIEltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIG9uIHRoZSBYTUwgZG9jdW1lbnQgQGRvYworICoKKyAqIFJldHVybnMgMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkCisgKiAgICBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS4KKyAqLworc3RhdGljIGludAoreG1sWEluY2x1ZGVEb1Byb2Nlc3MoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgdHJlZSkgeworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGludCByZXQgPSAwOworICAgIGludCBpLCBzdGFydDsKKworICAgIGlmICgoZG9jID09IE5VTEwpIHx8ICh0cmVlID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKGRvYy0+VVJMICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxYSW5jbHVkZVVSTFB1c2goY3R4dCwgZG9jLT5VUkwpOworCWlmIChyZXQgPCAwKQorCSAgICByZXR1cm4oLTEpOworICAgIH0KKyAgICBzdGFydCA9IGN0eHQtPmluY05yOworCisgICAgLyoKKyAgICAgKiBGaXJzdCBwaGFzZTogbG9va3VwIHRoZSBlbGVtZW50cyBpbiB0aGUgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBjdXIgPSB0cmVlOworICAgIGlmICh4bWxYSW5jbHVkZVRlc3ROb2RlKGN0eHQsIGN1cikgPT0gMSkKKwl4bWxYSW5jbHVkZVByZVByb2Nlc3NOb2RlKGN0eHQsIGN1cik7CisgICAgd2hpbGUgKChjdXIgIT0gTlVMTCkgJiYgKGN1ciAhPSB0cmVlLT5wYXJlbnQpKSB7CisJLyogVE9ETzogbmVlZCB0byB3b3JrIG9uIGVudGl0aWVzIC0+IHN0YWNrICovCisJaWYgKChjdXItPmNoaWxkcmVuICE9IE5VTEwpICYmCisJICAgIChjdXItPmNoaWxkcmVuLT50eXBlICE9IFhNTF9FTlRJVFlfREVDTCkgJiYKKwkgICAgKGN1ci0+Y2hpbGRyZW4tPnR5cGUgIT0gWE1MX1hJTkNMVURFX1NUQVJUKSAmJgorCSAgICAoY3VyLT5jaGlsZHJlbi0+dHlwZSAhPSBYTUxfWElOQ0xVREVfRU5EKSkgeworCSAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCSAgICBpZiAoeG1sWEluY2x1ZGVUZXN0Tm9kZShjdHh0LCBjdXIpKQorCQl4bWxYSW5jbHVkZVByZVByb2Nlc3NOb2RlKGN0eHQsIGN1cik7CisJfSBlbHNlIGlmIChjdXItPm5leHQgIT0gTlVMTCkgeworCSAgICBjdXIgPSBjdXItPm5leHQ7CisJICAgIGlmICh4bWxYSW5jbHVkZVRlc3ROb2RlKGN0eHQsIGN1cikpCisJCXhtbFhJbmNsdWRlUHJlUHJvY2Vzc05vZGUoY3R4dCwgY3VyKTsKKwl9IGVsc2UgeworCSAgICBpZiAoY3VyID09IHRyZWUpCisJICAgICAgICBicmVhazsKKwkgICAgZG8geworCQljdXIgPSBjdXItPnBhcmVudDsKKwkJaWYgKChjdXIgPT0gTlVMTCkgfHwgKGN1ciA9PSB0cmVlLT5wYXJlbnQpKQorCQkgICAgYnJlYWs7IC8qIGRvICovCisJCWlmIChjdXItPm5leHQgIT0gTlVMTCkgeworCQkgICAgY3VyID0gY3VyLT5uZXh0OworCQkgICAgaWYgKHhtbFhJbmNsdWRlVGVzdE5vZGUoY3R4dCwgY3VyKSkKKwkJCXhtbFhJbmNsdWRlUHJlUHJvY2Vzc05vZGUoY3R4dCwgY3VyKTsKKwkJICAgIGJyZWFrOyAvKiBkbyAqLworCQl9CisJICAgIH0gd2hpbGUgKGN1ciAhPSBOVUxMKTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTZWNvbmQgUGhhc2UgOiBjb2xsZWN0IHRoZSBpbmZvc2V0cyBmcmFnbWVudHMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSBzdGFydDtpIDwgY3R4dC0+aW5jTnI7IGkrKykgeworICAgICAgICB4bWxYSW5jbHVkZUxvYWROb2RlKGN0eHQsIGkpOworCXJldCsrOworICAgIH0KKworICAgIC8qCisgICAgICogVGhpcmQgcGhhc2U6IGV4dGVuZCB0aGUgb3JpZ2luYWwgZG9jdW1lbnQgaW5mb3NldC4KKyAgICAgKgorICAgICAqIE9yaWdpbmFsbHkgd2UgYnlwYXNzZWQgdGhlIGluY2x1c2lvbiBpZiB0aGVyZSB3ZXJlIGFueSBlcnJvcnMKKyAgICAgKiBlbmNvdW50ZXJlZCBvbiBhbnkgb2YgdGhlIFhJbmNsdWRlcy4gIEEgYnVnIHdhcyByYWlzZWQgKGJ1ZworICAgICAqIDEzMjU4OCkgcmVxdWVzdGluZyB0aGF0IHdlIG91dHB1dCB0aGUgWEluY2x1ZGVzIHdpdGhvdXQgZXJyb3IsCisgICAgICogc28gdGhlIGNoZWNrIGZvciBpbmMhPU5VTEwgfHwgeHB0ciE9TlVMTCB3YXMgcHV0IGluLiAgVGhpcyBtYXkKKyAgICAgKiBnaXZlIHNvbWUgb3RoZXIgcHJvYmxlbXMgaW4gdGhlIGZ1dHVyZSwgYnV0IGZvciBub3cgaXQgc2VlbXMgdG8KKyAgICAgKiB3b3JrIG9rLgorICAgICAqCisgICAgICovCisgICAgZm9yIChpID0gY3R4dC0+aW5jQmFzZTtpIDwgY3R4dC0+aW5jTnI7IGkrKykgeworCWlmICgoY3R4dC0+aW5jVGFiW2ldLT5pbmMgIT0gTlVMTCkgfHwKKwkJKGN0eHQtPmluY1RhYltpXS0+eHB0ciAhPSBOVUxMKSB8fAorCQkoY3R4dC0+aW5jVGFiW2ldLT5lbXB0eUZiICE9IDApKQkvKiAoZW1wdHkgZmFsbGJhY2spICovCisJICAgIHhtbFhJbmNsdWRlSW5jbHVkZU5vZGUoY3R4dCwgaSk7CisgICAgfQorCisgICAgaWYgKGRvYy0+VVJMICE9IE5VTEwpCisJeG1sWEluY2x1ZGVVUkxQb3AoY3R4dCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVTZXRGbGFnczoKKyAqIEBjdHh0OiAgYW4gWEluY2x1ZGUgcHJvY2Vzc2luZyBjb250ZXh0CisgKiBAZmxhZ3M6IGEgc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcworICoKKyAqIFNldCB0aGUgZmxhZ3MgdXNlZCBmb3IgZnVydGhlciBwcm9jZXNzaW5nIG9mIFhNTCByZXNvdXJjZXMuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxYSW5jbHVkZVNldEZsYWdzKHhtbFhJbmNsdWRlQ3R4dFB0ciBjdHh0LCBpbnQgZmxhZ3MpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGN0eHQtPnBhcnNlRmxhZ3MgPSBmbGFnczsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzRGF0YToKKyAqIEB0cmVlOiBhbiBYTUwgbm9kZQorICogQGZsYWdzOiBhIHNldCBvZiB4bWxQYXJzZXJPcHRpb24gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXMKKyAqIEBkYXRhOiBhcHBsaWNhdGlvbiBkYXRhIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHBhcnNlciBjb250ZXh0CisgKiAgICAgICAgaW4gdGhlIF9wcml2YXRlIGZpZWxkIG9mIHRoZSBwYXJzZXIgY29udGV4dChzKQorICoKKyAqIEltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIG9uIHRoZSBYTUwgbm9kZSBAdHJlZQorICoKKyAqIFJldHVybnMgMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkCisgKiAgICBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS4KKyAqLworCitpbnQKK3htbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnc0RhdGEoeG1sTm9kZVB0ciB0cmVlLCBpbnQgZmxhZ3MsIHZvaWQgKmRhdGEpIHsKKyAgICB4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dDsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmICgodHJlZSA9PSBOVUxMKSB8fCAodHJlZS0+ZG9jID09IE5VTEwpKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgY3R4dCA9IHhtbFhJbmNsdWRlTmV3Q29udGV4dCh0cmVlLT5kb2MpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgY3R4dC0+X3ByaXZhdGUgPSBkYXRhOworICAgIGN0eHQtPmJhc2UgPSB4bWxTdHJkdXAoKHhtbENoYXIgKil0cmVlLT5kb2MtPlVSTCk7CisgICAgeG1sWEluY2x1ZGVTZXRGbGFncyhjdHh0LCBmbGFncyk7CisgICAgcmV0ID0geG1sWEluY2x1ZGVEb1Byb2Nlc3MoY3R4dCwgdHJlZS0+ZG9jLCB0cmVlKTsKKyAgICBpZiAoKHJldCA+PSAwKSAmJiAoY3R4dC0+bmJFcnJvcnMgPiAwKSkKKyAgICAgICAgcmV0ID0gLTE7CisKKyAgICB4bWxYSW5jbHVkZUZyZWVDb250ZXh0KGN0eHQpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzRGF0YToKKyAqIEBkb2M6IGFuIFhNTCBkb2N1bWVudAorICogQGZsYWdzOiBhIHNldCBvZiB4bWxQYXJzZXJPcHRpb24gdXNlZCBmb3IgcGFyc2luZyBYTUwgaW5jbHVkZXMKKyAqIEBkYXRhOiBhcHBsaWNhdGlvbiBkYXRhIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHBhcnNlciBjb250ZXh0CisgKiAgICAgICAgaW4gdGhlIF9wcml2YXRlIGZpZWxkIG9mIHRoZSBwYXJzZXIgY29udGV4dChzKQorICoKKyAqIEltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIG9uIHRoZSBYTUwgZG9jdW1lbnQgQGRvYworICoKKyAqIFJldHVybnMgMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkCisgKiAgICBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS4KKyAqLworaW50Cit4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEoeG1sRG9jUHRyIGRvYywgaW50IGZsYWdzLCB2b2lkICpkYXRhKSB7CisgICAgeG1sTm9kZVB0ciB0cmVlOworCisgICAgaWYgKGRvYyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgdHJlZSA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgaWYgKHRyZWUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIHJldHVybih4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3NEYXRhKHRyZWUsIGZsYWdzLCBkYXRhKSk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVQcm9jZXNzRmxhZ3M6CisgKiBAZG9jOiBhbiBYTUwgZG9jdW1lbnQKKyAqIEBmbGFnczogYSBzZXQgb2YgeG1sUGFyc2VyT3B0aW9uIHVzZWQgZm9yIHBhcnNpbmcgWE1MIGluY2x1ZGVzCisgKgorICogSW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gb24gdGhlIFhNTCBkb2N1bWVudCBAZG9jCisgKgorICogUmV0dXJucyAwIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQKKyAqICAgIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLgorICovCitpbnQKK3htbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzKHhtbERvY1B0ciBkb2MsIGludCBmbGFncykgeworICAgIHJldHVybiB4bWxYSW5jbHVkZVByb2Nlc3NGbGFnc0RhdGEoZG9jLCBmbGFncywgTlVMTCk7Cit9CisKKy8qKgorICogeG1sWEluY2x1ZGVQcm9jZXNzOgorICogQGRvYzogYW4gWE1MIGRvY3VtZW50CisgKgorICogSW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gb24gdGhlIFhNTCBkb2N1bWVudCBAZG9jCisgKgorICogUmV0dXJucyAwIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQKKyAqICAgIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLgorICovCitpbnQKK3htbFhJbmNsdWRlUHJvY2Vzcyh4bWxEb2NQdHIgZG9jKSB7CisgICAgcmV0dXJuKHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzKGRvYywgMCkpOworfQorCisvKioKKyAqIHhtbFhJbmNsdWRlUHJvY2Vzc1RyZWVGbGFnczoKKyAqIEB0cmVlOiBhIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50CisgKiBAZmxhZ3M6IGEgc2V0IG9mIHhtbFBhcnNlck9wdGlvbiB1c2VkIGZvciBwYXJzaW5nIFhNTCBpbmNsdWRlcworICoKKyAqIEltcGxlbWVudCB0aGUgWEluY2x1ZGUgc3Vic3RpdHV0aW9uIGZvciB0aGUgZ2l2ZW4gc3VidHJlZQorICoKKyAqIFJldHVybnMgMCBpZiBubyBzdWJzdGl0dXRpb24gd2VyZSBkb25lLCAtMSBpZiBzb21lIHByb2Nlc3NpbmcgZmFpbGVkCisgKiAgICBvciB0aGUgbnVtYmVyIG9mIHN1YnN0aXR1dGlvbnMgZG9uZS4KKyAqLworaW50Cit4bWxYSW5jbHVkZVByb2Nlc3NUcmVlRmxhZ3MoeG1sTm9kZVB0ciB0cmVlLCBpbnQgZmxhZ3MpIHsKKyAgICB4bWxYSW5jbHVkZUN0eHRQdHIgY3R4dDsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmICgodHJlZSA9PSBOVUxMKSB8fCAodHJlZS0+ZG9jID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgY3R4dCA9IHhtbFhJbmNsdWRlTmV3Q29udGV4dCh0cmVlLT5kb2MpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBjdHh0LT5iYXNlID0geG1sTm9kZUdldEJhc2UodHJlZS0+ZG9jLCB0cmVlKTsKKyAgICB4bWxYSW5jbHVkZVNldEZsYWdzKGN0eHQsIGZsYWdzKTsKKyAgICByZXQgPSB4bWxYSW5jbHVkZURvUHJvY2VzcyhjdHh0LCB0cmVlLT5kb2MsIHRyZWUpOworICAgIGlmICgocmV0ID49IDApICYmIChjdHh0LT5uYkVycm9ycyA+IDApKQorCXJldCA9IC0xOworCisgICAgeG1sWEluY2x1ZGVGcmVlQ29udGV4dChjdHh0KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZVByb2Nlc3NUcmVlOgorICogQHRyZWU6IGEgbm9kZSBpbiBhbiBYTUwgZG9jdW1lbnQKKyAqCisgKiBJbXBsZW1lbnQgdGhlIFhJbmNsdWRlIHN1YnN0aXR1dGlvbiBmb3IgdGhlIGdpdmVuIHN1YnRyZWUKKyAqCisgKiBSZXR1cm5zIDAgaWYgbm8gc3Vic3RpdHV0aW9uIHdlcmUgZG9uZSwgLTEgaWYgc29tZSBwcm9jZXNzaW5nIGZhaWxlZAorICogICAgb3IgdGhlIG51bWJlciBvZiBzdWJzdGl0dXRpb25zIGRvbmUuCisgKi8KK2ludAoreG1sWEluY2x1ZGVQcm9jZXNzVHJlZSh4bWxOb2RlUHRyIHRyZWUpIHsKKyAgICByZXR1cm4oeG1sWEluY2x1ZGVQcm9jZXNzVHJlZUZsYWdzKHRyZWUsIDApKTsKK30KKworLyoqCisgKiB4bWxYSW5jbHVkZVByb2Nlc3NOb2RlOgorICogQGN0eHQ6IGFuIGV4aXN0aW5nIFhJbmNsdWRlIGNvbnRleHQKKyAqIEBub2RlOiBhIG5vZGUgaW4gYW4gWE1MIGRvY3VtZW50CisgKgorICogSW1wbGVtZW50IHRoZSBYSW5jbHVkZSBzdWJzdGl0dXRpb24gZm9yIHRoZSBnaXZlbiBzdWJ0cmVlIHJldXNpbmcKKyAqIHRoZSBpbmZvcm1hdGlvbnMgYW5kIGRhdGEgY29taW5nIGZyb20gdGhlIGdpdmVuIGNvbnRleHQuCisgKgorICogUmV0dXJucyAwIGlmIG5vIHN1YnN0aXR1dGlvbiB3ZXJlIGRvbmUsIC0xIGlmIHNvbWUgcHJvY2Vzc2luZyBmYWlsZWQKKyAqICAgIG9yIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBkb25lLgorICovCitpbnQKK3htbFhJbmNsdWRlUHJvY2Vzc05vZGUoeG1sWEluY2x1ZGVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChub2RlLT5kb2MgPT0gTlVMTCkgfHwgKGN0eHQgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICByZXQgPSB4bWxYSW5jbHVkZURvUHJvY2VzcyhjdHh0LCBub2RlLT5kb2MsIG5vZGUpOworICAgIGlmICgocmV0ID49IDApICYmIChjdHh0LT5uYkVycm9ycyA+IDApKQorCXJldCA9IC0xOworICAgIHJldHVybihyZXQpOworfQorCisjZWxzZSAvKiAhTElCWE1MX1hJTkNMVURFX0VOQUJMRUQgKi8KKyNlbmRpZgorI2RlZmluZSBib3R0b21feGluY2x1ZGUKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3hsaW5rLmMgYi9saWJ4bWwyLTIuNy43L3hsaW5rLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ5YmU3MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveGxpbmsuYwpAQCAtMCwwICsxLDE4MyBAQAorLyoKKyAqIHhsaW5rLmMgOiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaHlwZXJsaW5rcyBkZXRlY3Rpb24gbW9kdWxlCisgKiAgICAgICAgICAgVGhpcyB2ZXJzaW9uIHN1cHBvcnRzIGJvdGggWE1MIFhMaW5rcyBhbmQgSFRNTCBzaW1wbGUgbGlua3MKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKKyNpbmNsdWRlIDxzdHJpbmcuaD4gLyogZm9yIG1lbXNldCgpIG9ubHkgKi8KKyNpZmRlZiBIQVZFX0NUWVBFX0gKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkNOVExfSAorI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1pMSUJfSAorI2luY2x1ZGUgPHpsaWIuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC92YWxpZC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bGluay5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisKKyNkZWZpbmUgWExJTktfTkFNRVNQQUNFIChCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluay9uYW1lc3BhY2UvIikKKyNkZWZpbmUgWEhUTUxfTkFNRVNQQUNFIChCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbC8iKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCSoKKyAqICAgICAgICAgICBEZWZhdWx0IHNldHRpbmcgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zCQkqCisgKgkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgCitzdGF0aWMgeGxpbmtIYW5kbGVyUHRyIHhsaW5rRGVmYXVsdEhhbmRsZXIgPSBOVUxMOworc3RhdGljIHhsaW5rTm9kZURldGVjdEZ1bmMJeGxpbmtEZWZhdWx0RGV0ZWN0ID0gTlVMTDsKKworLyoqCisgKiB4bGlua0dldERlZmF1bHRIYW5kbGVyOgorICoKKyAqIEdldCB0aGUgZGVmYXVsdCB4bGluayBoYW5kbGVyLgorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgeGxpbmtIYW5kbGVyUHRyIHZhbHVlLgorICovCit4bGlua0hhbmRsZXJQdHIKK3hsaW5rR2V0RGVmYXVsdEhhbmRsZXIodm9pZCkgeworICAgIHJldHVybih4bGlua0RlZmF1bHRIYW5kbGVyKTsKK30KKworCisvKioKKyAqIHhsaW5rU2V0RGVmYXVsdEhhbmRsZXI6CisgKiBAaGFuZGxlcjogIHRoZSBuZXcgdmFsdWUgZm9yIHRoZSB4bGluayBoYW5kbGVyIGJsb2NrCisgKgorICogU2V0IHRoZSBkZWZhdWx0IHhsaW5rIGhhbmRsZXJzCisgKi8KK3ZvaWQKK3hsaW5rU2V0RGVmYXVsdEhhbmRsZXIoeGxpbmtIYW5kbGVyUHRyIGhhbmRsZXIpIHsKKyAgICB4bGlua0RlZmF1bHRIYW5kbGVyID0gaGFuZGxlcjsKK30KKworLyoqCisgKiB4bGlua0dldERlZmF1bHREZXRlY3Q6CisgKgorICogR2V0IHRoZSBkZWZhdWx0IHhsaW5rIGRldGVjdGlvbiByb3V0aW5lCisgKgorICogUmV0dXJucyB0aGUgY3VycmVudCBmdW5jdGlvbiBvciBOVUxMOworICovCit4bGlua05vZGVEZXRlY3RGdW5jCit4bGlua0dldERlZmF1bHREZXRlY3QJKHZvaWQpIHsKKyAgICByZXR1cm4oeGxpbmtEZWZhdWx0RGV0ZWN0KTsKK30KKworLyoqCisgKiB4bGlua1NldERlZmF1bHREZXRlY3Q6CisgKiBAZnVuYzogcG9pbnRlciB0byB0aGUgbmV3IGRldGVjdGlvbiByb3V0aW5lLgorICoKKyAqIFNldCB0aGUgZGVmYXVsdCB4bGluayBkZXRlY3Rpb24gcm91dGluZQorICovCit2b2lkIAoreGxpbmtTZXREZWZhdWx0RGV0ZWN0CSh4bGlua05vZGVEZXRlY3RGdW5jIGZ1bmMpIHsKKyAgICB4bGlua0RlZmF1bHREZXRlY3QgPSBmdW5jOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCSoKKyAqICAgICAgICAgICAgICAgICAgVGhlIGRldGVjdGlvbiByb3V0aW5lcwkJCSoKKyAqCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIAorLyoqCisgKiB4bGlua0lzTGluazoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgbm9kZQorICogQG5vZGU6ICB0aGUgbm9kZSBwb2ludGVyIGl0c2VsZgorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIG5vZGUgY2FycmllcyB0aGUgYXR0cmlidXRlcyBuZWVkZWQKKyAqIHRvIGJlIGEgbGluayBlbGVtZW50IChvciBpcyBvbmUgb2YgdGhlIGxpbmtpbmcgZWxlbWVudHMgaXNzdWVkCisgKiBmcm9tIHRoZSAoWClIVE1MIER0RHMpLgorICogVGhpcyByb3V0aW5lIGRvbid0IHRyeSB0byBkbyBmdWxsIGNoZWNraW5nIG9mIHRoZSBsaW5rIHZhbGlkaXR5CisgKiBidXQgdHJpZXMgdG8gZGV0ZWN0IGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGxpbmsgdHlwZS4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bGlua1R5cGUgb2YgdGhlIG5vZGUgKFhMSU5LX1RZUEVfTk9ORSBpZiB0aGVyZSBpcyBubworICogICAgICAgICBsaW5rIGRldGVjdGVkLgorICovCit4bGlua1R5cGUgCit4bGlua0lzTGluawkoeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBub2RlKSB7CisgICAgeG1sQ2hhciAqdHlwZSA9IE5VTEwsICpyb2xlID0gTlVMTDsKKyAgICB4bGlua1R5cGUgcmV0ID0gWExJTktfVFlQRV9OT05FOworCisgICAgaWYgKG5vZGUgPT0gTlVMTCkgcmV0dXJuKFhMSU5LX1RZUEVfTk9ORSk7CisgICAgaWYgKGRvYyA9PSBOVUxMKSBkb2MgPSBub2RlLT5kb2M7CisgICAgaWYgKChkb2MgIT0gTlVMTCkgJiYgKGRvYy0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworICAgICAgICAvKgorCSAqIFRoaXMgaXMgYW4gSFRNTCBkb2N1bWVudC4KKwkgKi8KKyAgICB9IGVsc2UgaWYgKChub2RlLT5ucyAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsKG5vZGUtPm5zLT5ocmVmLCBYSFRNTF9OQU1FU1BBQ0UpKSkgeworCS8qCisJICogISEhISBXZSByZWFsbHkgbmVlZCBhbiBJU19YSFRNTF9FTEVNRU5UIGZ1bmN0aW9uIGZyb20gSFRNTHRyZWUuaCBAQEAKKwkgKi8KKyAgICAgICAgLyoKKwkgKiBUaGlzIGlzIGFuIFhIVE1MIGVsZW1lbnQgd2l0aGluIGFuIFhNTCBkb2N1bWVudAorCSAqIENoZWNrIHdoZXRoZXIgaXQncyBvbmUgb2YgdGhlIGVsZW1lbnQgYWJsZSB0byBjYXJyeSBsaW5rcworCSAqIGFuZCBpbiB0aGF0IGNhc2UgaWYgaXQgaG9sZHMgdGhlIGF0dHJpYnV0ZXMuCisJICovCisgICAgfQorCisgICAgLyoKKyAgICAgKiBXZSBkb24ndCBwcmV2ZW50IGEtcHJpb3JpIGhhdmluZyBYTUwgTGlua2luZyBjb25zdHJ1Y3RzIG9uCisgICAgICogWEhUTUwgZWxlbWVudHMKKyAgICAgKi8KKyAgICB0eXBlID0geG1sR2V0TnNQcm9wKG5vZGUsIEJBRF9DQVNUInR5cGUiLCBYTElOS19OQU1FU1BBQ0UpOworICAgIGlmICh0eXBlICE9IE5VTEwpIHsKKwlpZiAoeG1sU3RyRXF1YWwodHlwZSwgQkFEX0NBU1QgInNpbXBsZSIpKSB7CisgICAgICAgICAgICByZXQgPSBYTElOS19UWVBFX1NJTVBMRTsKKwl9IGlmICh4bWxTdHJFcXVhbCh0eXBlLCBCQURfQ0FTVCAiZXh0ZW5kZWQiKSkgeworCSAgICByb2xlID0geG1sR2V0TnNQcm9wKG5vZGUsIEJBRF9DQVNUICJyb2xlIiwgWExJTktfTkFNRVNQQUNFKTsKKwkgICAgaWYgKHJvbGUgIT0gTlVMTCkgeworCQl4bWxOc1B0ciB4bGluazsKKwkJeGxpbmsgPSB4bWxTZWFyY2hOcyhkb2MsIG5vZGUsIFhMSU5LX05BTUVTUEFDRSk7CisJCWlmICh4bGluayA9PSBOVUxMKSB7CisJCSAgICAvKiBIdW1tLCBmYWxsYmFjayBtZXRob2QgKi8KKwkJICAgIGlmICh4bWxTdHJFcXVhbChyb2xlLCBCQURfQ0FTVCJ4bGluazpleHRlcm5hbC1saW5rc2V0IikpIAorCQkJcmV0ID0gWExJTktfVFlQRV9FWFRFTkRFRF9TRVQ7CisJCX0gZWxzZSB7CisJCSAgICB4bWxDaGFyIGJ1ZlsyMDBdOworCQkgICAgc25wcmludGYoKGNoYXIgKikgYnVmLCBzaXplb2YoYnVmKSwgIiVzOmV4dGVybmFsLWxpbmtzZXQiLAorCQkJICAgICAoY2hhciAqKSB4bGluay0+cHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOworCQkgICAgaWYgKHhtbFN0ckVxdWFsKHJvbGUsIGJ1ZikpCisJCQlyZXQgPSBYTElOS19UWVBFX0VYVEVOREVEX1NFVDsKKworCQl9CisKKwkgICAgfQorCSAgICByZXQgPSBYTElOS19UWVBFX0VYVEVOREVEOworCX0KKyAgICB9CisKKyAgICBpZiAodHlwZSAhPSBOVUxMKSB4bWxGcmVlKHR5cGUpOworICAgIGlmIChyb2xlICE9IE5VTEwpIHhtbEZyZWUocm9sZSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX1hQVFJfRU5BQkxFRCAqLworI2RlZmluZSBib3R0b21feGxpbmsKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbDItY29uZmlnLjEgYi9saWJ4bWwyLTIuNy43L3htbDItY29uZmlnLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGEyNTk2MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveG1sMi1jb25maWcuMQpAQCAtMCwwICsxLDMxIEBACisuVEggR05PTUUtWE1MIDEgIjMgSnVseSAxOTk5IiBWZXJzaW9uIDEuMS4wCisuU0ggTkFNRQoreG1sLWNvbmZpZyAtIHNjcmlwdCB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIEdOT01FLVhNTAorLlNIIFNZTk9QU0lTCisuQiB4bWwtY29uZmlnCitbXC1cLXByZWZpeFxmSVs9RElSXVxmUF0gW1wtXC1saWJzXSBbXC1cLWNmbGFnc10gW1wtXC12ZXJzaW9uXSBbXC1cLWhlbHBdCisuU0ggREVTQ1JJUFRJT04KK1xmSXhtbC1jb25maWdcZlAgaXMgYSB0b29sIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGNvbXBpbGUgYW5kCitsaW5rZXIgZmxhZ3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlIGFuZCBsaW5rIHByb2dyYW1zIHRoYXQgdXNlCitcZklHTk9NRS1YTUxcZlAuCisuU0ggT1BUSU9OUworLmwKK1xmSXhtbC1jb25maWdcZlAgYWNjZXB0cyB0aGUgZm9sbG93aW5nIG9wdGlvbnM6CisuVFAgOAorLkIgIFwtXC12ZXJzaW9uCitQcmludCB0aGUgY3VycmVudGx5IGluc3RhbGxlZCB2ZXJzaW9uIG9mIFxmSUdOT01FLVhNTFxmUCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LgorLlRQIDgKKy5CICBcLVwtbGlicworUHJpbnQgdGhlIGxpbmtlciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSUdOT01FLVhNTFxmUCBwcm9ncmFtLgorLlRQIDgKKy5CICBcLVwtY2ZsYWdzCitQcmludCB0aGUgY29tcGlsZXIgZmxhZ3MgdGhhdCBhcmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklHTk9NRS1YTUxcZlAgcHJvZ3JhbS4KKy5UUCA4CisuQiAgXC1cLXByZWZpeD1QUkVGSVgKK0lmIHNwZWNpZmllZCwgdXNlIFBSRUZJWCBpbnN0ZWFkIG9mIHRoZSBpbnN0YWxsYXRpb24gcHJlZml4IHRoYXQKK1xmSUdOT01FLVhNTFxmUCB3YXMgYnVpbHQgd2l0aCB3aGVuIGNvbXB1dGluZyB0aGUgb3V0cHV0IGZvciB0aGUKK1wtXC1jZmxhZ3MgYW5kIFwtXC1saWJzIG9wdGlvbnMuIFRoaXMgb3B0aW9uIG11c3QgYmUgc3BlY2lmaWVkIGJlZm9yZQorYW55IFwtXC1saWJzIG9yIFwtXC1jZmxhZ3Mgb3B0aW9ucy4KKy5TSCBBVVRIT1IKK1RoaXMgbWFudWFsIHBhZ2Ugd2FzIHdyaXR0ZW4gYnkgRnJlZHJpayBIYWxsZW5iZXJnIDxoYWxsb25AbHlzYXRvci5saXUuc2U+LAorZm9yIHRoZSBEZWJpYW4gR05VL2xpbnV4IHN5c3RlbSAoYnV0IG1heSBiZSB1c2VkIGJ5IG90aGVycykuCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbDItY29uZmlnLmluIGIvbGlieG1sMi0yLjcuNy94bWwyLWNvbmZpZy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTg5MzI1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy94bWwyLWNvbmZpZy5pbgpAQCAtMCwwICsxLDEwNiBAQAorIyEgL2Jpbi9zaAorCitwcmVmaXg9QHByZWZpeEAKK2V4ZWNfcHJlZml4PUBleGVjX3ByZWZpeEAKK2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJACitsaWJkaXI9QGxpYmRpckAKKwordXNhZ2UoKQoreworICAgIGNhdCA8PEVPRgorVXNhZ2U6IHhtbDItY29uZmlnIFtPUFRJT05dCisKK0tub3duIHZhbHVlcyBmb3IgT1BUSU9OIGFyZToKKworICAtLXByZWZpeD1ESVIJCWNoYW5nZSBsaWJ4bWwgcHJlZml4IFtkZWZhdWx0ICRwcmVmaXhdCisgIC0tZXhlYy1wcmVmaXg9RElSCWNoYW5nZSBsaWJ4bWwgZXhlYyBwcmVmaXggW2RlZmF1bHQgJGV4ZWNfcHJlZml4XQorICAtLWxpYnMJCXByaW50IGxpYnJhcnkgbGlua2luZyBpbmZvcm1hdGlvbgorICAtLWNmbGFncwkJcHJpbnQgcHJlLXByb2Nlc3NvciBhbmQgY29tcGlsZXIgZmxhZ3MKKyAgLS1tb2R1bGVzCQltb2R1bGUgc3VwcG9ydCBlbmFibGVkCisgIC0taGVscAkJZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKKyAgLS12ZXJzaW9uCQlvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbgorRU9GCisKKyAgICBleGl0ICQxCit9CisKK2lmIHRlc3QgJCMgLWVxIDA7IHRoZW4KKyAgICB1c2FnZSAxCitmaQorCitjZmxhZ3M9ZmFsc2UKK2xpYnM9ZmFsc2UKKword2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8KKyAgICBjYXNlICIkMSIgaW4KKyAgICAtKj0qKSBvcHRhcmc9YGVjaG8gIiQxIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7CisgICAgKikgb3B0YXJnPSA7OworICAgIGVzYWMKKworICAgIGNhc2UgIiQxIiBpbgorICAgIC0tcHJlZml4PSopCisJcHJlZml4PSRvcHRhcmcKKwlpbmNsdWRlZGlyPSRwcmVmaXgvaW5jbHVkZQorCWxpYmRpcj0kcHJlZml4L2xpYgorCTs7CisKKyAgICAtLXByZWZpeCkKKwllY2hvICRwcmVmaXgKKwk7OworCisgICAgLS1leGVjLXByZWZpeD0qKQorICAgICAgZXhlY19wcmVmaXg9JG9wdGFyZworICAgICAgbGliZGlyPSRleGVjX3ByZWZpeC9saWIKKyAgICAgIDs7CisKKyAgICAtLWV4ZWMtcHJlZml4KQorICAgICAgZWNobyAkZXhlY19wcmVmaXgKKyAgICAgIDs7CisKKyAgICAtLXZlcnNpb24pCisJZWNobyBAVkVSU0lPTkAKKwlleGl0IDAKKwk7OworCisgICAgLS1oZWxwKQorCXVzYWdlIDAKKwk7OworCisgICAgLS1jZmxhZ3MpCisgICAgICAgCWVjaG8gQFhNTF9JTkNMVURFRElSQCBAWE1MX0NGTEFHU0AKKyAgICAgICAJOzsKKworICAgIC0tbGlidG9vbC1saWJzKQorCWlmIFsgLXIgJHtsaWJkaXJ9L0BYTUxfTElCVE9PTExJQlNAIF0KKwl0aGVuCisJICAgIGVjaG8gJHtsaWJkaXJ9L0BYTUxfTElCVE9PTExJQlNACisJZmkKKyAgICAgICAgOzsKKworICAgIC0tbW9kdWxlcykKKyAgICAgICAJZWNobyBAV0lUSF9NT0RVTEVTQAorICAgICAgIAk7OworCisgICAgLS1saWJzKQorICAgICAgICBpZiBbICJgdW5hbWVgIiA9ICJMaW51eCIgXQorCXRoZW4KKwkgICAgaWYgWyAiQFhNTF9MSUJESVJAIiA9ICItTC91c3IvbGliIiAtbyAiQFhNTF9MSUJESVJAIiA9ICItTC91c3IvbGliNjQiIF0KKwkgICAgdGhlbgorCQllY2hvIEBYTUxfTElCU0AgCisJICAgIGVsc2UKKwkJZWNobyBAWE1MX0xJQkRJUkAgQFhNTF9MSUJTQCAKKwkgICAgZmkKKwllbHNlCisJICAgIGVjaG8gQFhNTF9MSUJESVJAIEBYTUxfTElCU0AgQFdJTjMyX0VYVFJBX0xJQkFEREAKKwlmaQorICAgICAgIAk7OworCisgICAgKikKKwl1c2FnZQorCWV4aXQgMQorCTs7CisgICAgZXNhYworICAgIHNoaWZ0Citkb25lCisKK2V4aXQgMApkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy94bWwyQ29uZi5zaC5pbiBiL2xpYnhtbDItMi43LjcveG1sMkNvbmYuc2guaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhjYjIzMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveG1sMkNvbmYuc2guaW4KQEAgLTAsMCArMSw4IEBACisjCisjIENvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdXNpbmcgdGhlIFhNTCBsaWJyYXJ5IGluIEdOT01FIGFwcGxpY2F0aW9ucworIworWE1MMl9MSUJESVI9IkBYTUxfTElCRElSQCIKK1hNTDJfTElCUz0iQFhNTF9MSUJTQCIKK1hNTDJfSU5DTFVERURJUj0iQFhNTF9JTkNMVURFRElSQCIKK01PRFVMRV9WRVJTSU9OPSJ4bWwyLUBWRVJTSU9OQCIKKwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy94bWxJTy5jIGIvbGlieG1sMi0yLjcuNy94bWxJTy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYzAwZTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3htbElPLmMKQEAgLTAsMCArMSwzOTk0IEBACisvKgorICogeG1sSU8uYyA6IGltcGxlbWVudGF0aW9uIG9mIHRoZSBJL08gaW50ZXJmYWNlcyB1c2VkIGJ5IHRoZSBwYXJzZXIKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICoKKyAqIDE0IE5vdiAyMDAwIGh0IC0gZm9yIFZNUywgdHJ1bmNhdGVkIG5hbWUgb2YgbG9uZyBmdW5jdGlvbnMgdG8gdW5kZXIgMzIgY2hhcgorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpZmRlZiBIQVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisKKworI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0ZDTlRMX0gKKyNpbmNsdWRlIDxmY250bC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9aTElCX0gKKyNpbmNsdWRlIDx6bGliLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorI2luY2x1ZGUgPHdpbm5scy5oPiAvKiBmb3IgQ1BfVVRGOCAqLworI2VuZGlmCisKKy8qIEZpZ3VyZSBhIHBvcnRhYmxlIHdheSB0byBrbm93IGlmIGEgZmlsZSBpcyBhIGRpcmVjdG9yeS4gKi8KKyNpZm5kZWYgSEFWRV9TVEFUCisjICBpZmRlZiBIQVZFX19TVEFUCisgICAgIC8qIE1TIEMgbGlicmFyeSBzZWVtcyB0byBkZWZpbmUgc3RhdCBhbmQgX3N0YXQuIFRoZSBkZWZpbml0aW9uCisgICAgICAgIGlzIGlkZW50aWNhbC4gU3RpbGwsIG1hcHBpbmcgdGhlbSB0byBlYWNoIG90aGVyIGNhdXNlcyBhIHdhcm5pbmcuICovCisjICAgIGlmbmRlZiBfTVNDX1ZFUgorIyAgICAgIGRlZmluZSBzdGF0KHgseSkgX3N0YXQoeCx5KQorIyAgICBlbmRpZgorIyAgICBkZWZpbmUgSEFWRV9TVEFUCisjICBlbmRpZgorI2Vsc2UKKyMgIGlmZGVmIEhBVkVfX1NUQVQKKyMgICAgaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQgKF9fQ1lHV0lOX18pCisjICAgICAgZGVmaW5lIHN0YXQgX3N0YXQKKyMgICAgZW5kaWYKKyMgIGVuZGlmCisjZW5kaWYKKyNpZmRlZiBIQVZFX1NUQVQKKyMgIGlmbmRlZiBTX0lTRElSCisjICAgIGlmZGVmIF9TX0lTRElSCisjICAgICAgZGVmaW5lIFNfSVNESVIoeCkgX1NfSVNESVIoeCkKKyMgICAgZWxzZQorIyAgICAgIGlmZGVmIFNfSUZESVIKKyMgICAgICAgIGlmbmRlZiBTX0lGTVQKKyMgICAgICAgICAgaWZkZWYgX1NfSUZNVAorIyAgICAgICAgICAgIGRlZmluZSBTX0lGTVQgX1NfSUZNVAorIyAgICAgICAgICBlbmRpZgorIyAgICAgICAgZW5kaWYKKyMgICAgICAgIGlmZGVmIFNfSUZNVAorIyAgICAgICAgICBkZWZpbmUgU19JU0RJUihtKSAoKChtKSAmIFNfSUZNVCkgPT0gU19JRkRJUikKKyMgICAgICAgIGVuZGlmCisjICAgICAgZW5kaWYKKyMgICAgZW5kaWYKKyMgIGVuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxJTy5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvbmFub2h0dHAuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvbmFub2Z0cC5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxlcnJvci5oPgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwvY2F0YWxvZy5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKworLyogI2RlZmluZSBWRVJCT1NFX0ZBSUxVUkUgKi8KKy8qICNkZWZpbmUgREVCVUdfRVhURVJOQUxfRU5USVRJRVMgKi8KKy8qICNkZWZpbmUgREVCVUdfSU5QVVQgKi8KKworI2lmZGVmIERFQlVHX0lOUFVUCisjZGVmaW5lIE1JTkxFTiA0MAorI2Vsc2UKKyNkZWZpbmUgTUlOTEVOIDQwMDAKKyNlbmRpZgorCisvKgorICogSW5wdXQgSS9PIGNhbGxiYWNrIHNldHMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbElucHV0Q2FsbGJhY2sgeworICAgIHhtbElucHV0TWF0Y2hDYWxsYmFjayBtYXRjaGNhbGxiYWNrOworICAgIHhtbElucHV0T3BlbkNhbGxiYWNrIG9wZW5jYWxsYmFjazsKKyAgICB4bWxJbnB1dFJlYWRDYWxsYmFjayByZWFkY2FsbGJhY2s7CisgICAgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGNsb3NlY2FsbGJhY2s7Cit9IHhtbElucHV0Q2FsbGJhY2s7CisKKyNkZWZpbmUgTUFYX0lOUFVUX0NBTExCQUNLIDE1CisKK3N0YXRpYyB4bWxJbnB1dENhbGxiYWNrIHhtbElucHV0Q2FsbGJhY2tUYWJsZVtNQVhfSU5QVVRfQ0FMTEJBQ0tdOworc3RhdGljIGludCB4bWxJbnB1dENhbGxiYWNrTnIgPSAwOworc3RhdGljIGludCB4bWxJbnB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPSAwOworCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKgorICogT3V0cHV0IEkvTyBjYWxsYmFjayBzZXRzCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxPdXRwdXRDYWxsYmFjayB7CisgICAgeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayBtYXRjaGNhbGxiYWNrOworICAgIHhtbE91dHB1dE9wZW5DYWxsYmFjayBvcGVuY2FsbGJhY2s7CisgICAgeG1sT3V0cHV0V3JpdGVDYWxsYmFjayB3cml0ZWNhbGxiYWNrOworICAgIHhtbE91dHB1dENsb3NlQ2FsbGJhY2sgY2xvc2VjYWxsYmFjazsKK30geG1sT3V0cHV0Q2FsbGJhY2s7CisKKyNkZWZpbmUgTUFYX09VVFBVVF9DQUxMQkFDSyAxNQorCitzdGF0aWMgeG1sT3V0cHV0Q2FsbGJhY2sgeG1sT3V0cHV0Q2FsbGJhY2tUYWJsZVtNQVhfT1VUUFVUX0NBTExCQUNLXTsKK3N0YXRpYyBpbnQgeG1sT3V0cHV0Q2FsbGJhY2tOciA9IDA7CitzdGF0aWMgaW50IHhtbE91dHB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPSAwOworCit4bWxPdXRwdXRCdWZmZXJQdHIKK3htbEFsbG9jT3V0cHV0QnVmZmVySW50ZXJuYWwoeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKTsKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJVHJlZSBtZW1vcnkgZXJyb3IgaGFuZGxlcgkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBjb25zdCBjaGFyICpJT2VycltdID0geworICAgICJVbmtub3duIElPIGVycm9yIiwgICAgICAgICAvKiBVTktOT1dOICovCisgICAgIlBlcm1pc3Npb24gZGVuaWVkIiwJLyogRUFDQ0VTICovCisgICAgIlJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlIiwvKiBFQUdBSU4gKi8KKyAgICAiQmFkIGZpbGUgZGVzY3JpcHRvciIsCS8qIEVCQURGICovCisgICAgIkJhZCBtZXNzYWdlIiwJCS8qIEVCQURNU0cgKi8KKyAgICAiUmVzb3VyY2UgYnVzeSIsCQkvKiBFQlVTWSAqLworICAgICJPcGVyYXRpb24gY2FuY2VsZWQiLAkvKiBFQ0FOQ0VMRUQgKi8KKyAgICAiTm8gY2hpbGQgcHJvY2Vzc2VzIiwJLyogRUNISUxEICovCisgICAgIlJlc291cmNlIGRlYWRsb2NrIGF2b2lkZWQiLC8qIEVERUFETEsgKi8KKyAgICAiRG9tYWluIGVycm9yIiwJCS8qIEVET00gKi8KKyAgICAiRmlsZSBleGlzdHMiLAkJLyogRUVYSVNUICovCisgICAgIkJhZCBhZGRyZXNzIiwJCS8qIEVGQVVMVCAqLworICAgICJGaWxlIHRvbyBsYXJnZSIsCQkvKiBFRkJJRyAqLworICAgICJPcGVyYXRpb24gaW4gcHJvZ3Jlc3MiLAkvKiBFSU5QUk9HUkVTUyAqLworICAgICJJbnRlcnJ1cHRlZCBmdW5jdGlvbiBjYWxsIiwvKiBFSU5UUiAqLworICAgICJJbnZhbGlkIGFyZ3VtZW50IiwJCS8qIEVJTlZBTCAqLworICAgICJJbnB1dC9vdXRwdXQgZXJyb3IiLAkvKiBFSU8gKi8KKyAgICAiSXMgYSBkaXJlY3RvcnkiLAkJLyogRUlTRElSICovCisgICAgIlRvbyBtYW55IG9wZW4gZmlsZXMiLAkvKiBFTUZJTEUgKi8KKyAgICAiVG9vIG1hbnkgbGlua3MiLAkJLyogRU1MSU5LICovCisgICAgIkluYXBwcm9wcmlhdGUgbWVzc2FnZSBidWZmZXIgbGVuZ3RoIiwvKiBFTVNHU0laRSAqLworICAgICJGaWxlbmFtZSB0b28gbG9uZyIsCS8qIEVOQU1FVE9PTE9ORyAqLworICAgICJUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbSIsLyogRU5GSUxFICovCisgICAgIk5vIHN1Y2ggZGV2aWNlIiwJCS8qIEVOT0RFViAqLworICAgICJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwvKiBFTk9FTlQgKi8KKyAgICAiRXhlYyBmb3JtYXQgZXJyb3IiLAkvKiBFTk9FWEVDICovCisgICAgIk5vIGxvY2tzIGF2YWlsYWJsZSIsCS8qIEVOT0xDSyAqLworICAgICJOb3QgZW5vdWdoIHNwYWNlIiwJCS8qIEVOT01FTSAqLworICAgICJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsCS8qIEVOT1NQQyAqLworICAgICJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiLAkvKiBFTk9TWVMgKi8KKyAgICAiTm90IGEgZGlyZWN0b3J5IiwJCS8qIEVOT1RESVIgKi8KKyAgICAiRGlyZWN0b3J5IG5vdCBlbXB0eSIsCS8qIEVOT1RFTVBUWSAqLworICAgICJOb3Qgc3VwcG9ydGVkIiwJCS8qIEVOT1RTVVAgKi8KKyAgICAiSW5hcHByb3ByaWF0ZSBJL08gY29udHJvbCBvcGVyYXRpb24iLC8qIEVOT1RUWSAqLworICAgICJObyBzdWNoIGRldmljZSBvciBhZGRyZXNzIiwvKiBFTlhJTyAqLworICAgICJPcGVyYXRpb24gbm90IHBlcm1pdHRlZCIsCS8qIEVQRVJNICovCisgICAgIkJyb2tlbiBwaXBlIiwJCS8qIEVQSVBFICovCisgICAgIlJlc3VsdCB0b28gbGFyZ2UiLAkJLyogRVJBTkdFICovCisgICAgIlJlYWQtb25seSBmaWxlIHN5c3RlbSIsCS8qIEVST0ZTICovCisgICAgIkludmFsaWQgc2VlayIsCQkvKiBFU1BJUEUgKi8KKyAgICAiTm8gc3VjaCBwcm9jZXNzIiwJCS8qIEVTUkNIICovCisgICAgIk9wZXJhdGlvbiB0aW1lZCBvdXQiLAkvKiBFVElNRURPVVQgKi8KKyAgICAiSW1wcm9wZXIgbGluayIsCQkvKiBFWERFViAqLworICAgICJBdHRlbXB0IHRvIGxvYWQgbmV0d29yayBlbnRpdHkgJXMiLCAvKiBYTUxfSU9fTkVUV09SS19BVFRFTVBUICovCisgICAgImVuY29kZXIgZXJyb3IiLAkJLyogWE1MX0lPX0VOQ09ERVIgKi8KKyAgICAiZmx1c2ggZXJyb3IiLAorICAgICJ3cml0ZSBlcnJvciIsCisgICAgIm5vIGlucHV0IiwKKyAgICAiYnVmZmVyIGZ1bGwiLAorICAgICJsb2FkaW5nIGVycm9yIiwKKyAgICAibm90IGEgc29ja2V0IiwJCS8qIEVOT1RTT0NLICovCisgICAgImFscmVhZHkgY29ubmVjdGVkIiwJLyogRUlTQ09OTiAqLworICAgICJjb25uZWN0aW9uIHJlZnVzZWQiLAkvKiBFQ09OTlJFRlVTRUQgKi8KKyAgICAidW5yZWFjaGFibGUgbmV0d29yayIsCS8qIEVORVRVTlJFQUNIICovCisgICAgImFkZGRyZXNzIGluIHVzZSIsCQkvKiBFQUREUklOVVNFICovCisgICAgImFscmVhZHkgaW4gdXNlIiwJCS8qIEVBTFJFQURZICovCisgICAgInVua25vd24gYWRkcmVzcyBmYW1pbGx5IiwJLyogRUFGTk9TVVBQT1JUICovCit9OworCisjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQgKF9fQ1lHV0lOX18pCisvKioKKyAqIF9feG1sSU9XaW4zMlVURjhUb1dDaGFyOgorICogQHU4U3RyaW5nOiAgdWZ0LTggc3RyaW5nCisgKgorICogQ29udmVydCBhIHN0cmluZyBmcm9tIHV0Zi04IHRvIHdjaGFyIChXSU5ET1dTIE9OTFkhKQorICovCitzdGF0aWMgd2NoYXJfdCAqCitfX3htbElPV2luMzJVVEY4VG9XQ2hhcihjb25zdCBjaGFyICp1OFN0cmluZykKK3sKKyAgICB3Y2hhcl90ICp3U3RyaW5nID0gTlVMTDsKKworICAgIGlmICh1OFN0cmluZykgeworICAgICAgICBpbnQgd0xlbiA9CisgICAgICAgICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX1VURjgsIE1CX0VSUl9JTlZBTElEX0NIQVJTLCB1OFN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIE5VTEwsIDApOworICAgICAgICBpZiAod0xlbikgeworICAgICAgICAgICAgd1N0cmluZyA9IHhtbE1hbGxvYyh3TGVuICogc2l6ZW9mKHdjaGFyX3QpKTsKKyAgICAgICAgICAgIGlmICh3U3RyaW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKE11bHRpQnl0ZVRvV2lkZUNoYXIKKyAgICAgICAgICAgICAgICAgICAgKENQX1VURjgsIDAsIHU4U3RyaW5nLCAtMSwgd1N0cmluZywgd0xlbikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHdTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICB3U3RyaW5nID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gd1N0cmluZzsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbElPRXJyTWVtb3J5OgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxJT0Vyck1lbW9yeShjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBfX3htbFNpbXBsZUVycm9yKFhNTF9GUk9NX0lPLCBYTUxfRVJSX05PX01FTU9SWSwgTlVMTCwgTlVMTCwgZXh0cmEpOworfQorCisvKioKKyAqIF9feG1sSU9FcnI6CisgKiBAY29kZTogIHRoZSBlcnJvciBudW1iZXIKKyAqIEAKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhbiBJL08gZXJyb3IKKyAqLwordm9pZAorX194bWxJT0VycihpbnQgZG9tYWluLCBpbnQgY29kZSwgY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgdW5zaWduZWQgaW50IGlkeDsKKworICAgIGlmIChjb2RlID09IDApIHsKKyNpZmRlZiBIQVZFX0VSUk5PX0gKKwlpZiAoZXJybm8gPT0gMCkgY29kZSA9IDA7CisjaWZkZWYgRUFDQ0VTCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVBQ0NFUykgY29kZSA9IFhNTF9JT19FQUNDRVM7CisjZW5kaWYKKyNpZmRlZiBFQUdBSU4KKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRUFHQUlOKSBjb2RlID0gWE1MX0lPX0VBR0FJTjsKKyNlbmRpZgorI2lmZGVmIEVCQURGCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVCQURGKSBjb2RlID0gWE1MX0lPX0VCQURGOworI2VuZGlmCisjaWZkZWYgRUJBRE1TRworICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFQkFETVNHKSBjb2RlID0gWE1MX0lPX0VCQURNU0c7CisjZW5kaWYKKyNpZmRlZiBFQlVTWQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFQlVTWSkgY29kZSA9IFhNTF9JT19FQlVTWTsKKyNlbmRpZgorI2lmZGVmIEVDQU5DRUxFRAorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFQ0FOQ0VMRUQpIGNvZGUgPSBYTUxfSU9fRUNBTkNFTEVEOworI2VuZGlmCisjaWZkZWYgRUNISUxECisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVDSElMRCkgY29kZSA9IFhNTF9JT19FQ0hJTEQ7CisjZW5kaWYKKyNpZmRlZiBFREVBRExLCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVERUFETEspIGNvZGUgPSBYTUxfSU9fRURFQURMSzsKKyNlbmRpZgorI2lmZGVmIEVET00KKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRURPTSkgY29kZSA9IFhNTF9JT19FRE9NOworI2VuZGlmCisjaWZkZWYgRUVYSVNUCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVFWElTVCkgY29kZSA9IFhNTF9JT19FRVhJU1Q7CisjZW5kaWYKKyNpZmRlZiBFRkFVTFQKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRUZBVUxUKSBjb2RlID0gWE1MX0lPX0VGQVVMVDsKKyNlbmRpZgorI2lmZGVmIEVGQklHCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVGQklHKSBjb2RlID0gWE1MX0lPX0VGQklHOworI2VuZGlmCisjaWZkZWYgRUlOUFJPR1JFU1MKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRUlOUFJPR1JFU1MpIGNvZGUgPSBYTUxfSU9fRUlOUFJPR1JFU1M7CisjZW5kaWYKKyNpZmRlZiBFSU5UUgorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFSU5UUikgY29kZSA9IFhNTF9JT19FSU5UUjsKKyNlbmRpZgorI2lmZGVmIEVJTlZBTAorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFSU5WQUwpIGNvZGUgPSBYTUxfSU9fRUlOVkFMOworI2VuZGlmCisjaWZkZWYgRUlPCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVJTykgY29kZSA9IFhNTF9JT19FSU87CisjZW5kaWYKKyNpZmRlZiBFSVNESVIKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRUlTRElSKSBjb2RlID0gWE1MX0lPX0VJU0RJUjsKKyNlbmRpZgorI2lmZGVmIEVNRklMRQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTUZJTEUpIGNvZGUgPSBYTUxfSU9fRU1GSUxFOworI2VuZGlmCisjaWZkZWYgRU1MSU5LCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVNTElOSykgY29kZSA9IFhNTF9JT19FTUxJTks7CisjZW5kaWYKKyNpZmRlZiBFTVNHU0laRQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTVNHU0laRSkgY29kZSA9IFhNTF9JT19FTVNHU0laRTsKKyNlbmRpZgorI2lmZGVmIEVOQU1FVE9PTE9ORworICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTkFNRVRPT0xPTkcpIGNvZGUgPSBYTUxfSU9fRU5BTUVUT09MT05HOworI2VuZGlmCisjaWZkZWYgRU5GSUxFCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVORklMRSkgY29kZSA9IFhNTF9JT19FTkZJTEU7CisjZW5kaWYKKyNpZmRlZiBFTk9ERVYKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRU5PREVWKSBjb2RlID0gWE1MX0lPX0VOT0RFVjsKKyNlbmRpZgorI2lmZGVmIEVOT0VOVAorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTk9FTlQpIGNvZGUgPSBYTUxfSU9fRU5PRU5UOworI2VuZGlmCisjaWZkZWYgRU5PRVhFQworICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTk9FWEVDKSBjb2RlID0gWE1MX0lPX0VOT0VYRUM7CisjZW5kaWYKKyNpZmRlZiBFTk9MQ0sKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRU5PTENLKSBjb2RlID0gWE1MX0lPX0VOT0xDSzsKKyNlbmRpZgorI2lmZGVmIEVOT01FTQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTk9NRU0pIGNvZGUgPSBYTUxfSU9fRU5PTUVNOworI2VuZGlmCisjaWZkZWYgRU5PU1BDCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVOT1NQQykgY29kZSA9IFhNTF9JT19FTk9TUEM7CisjZW5kaWYKKyNpZmRlZiBFTk9TWVMKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRU5PU1lTKSBjb2RlID0gWE1MX0lPX0VOT1NZUzsKKyNlbmRpZgorI2lmZGVmIEVOT1RESVIKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRU5PVERJUikgY29kZSA9IFhNTF9JT19FTk9URElSOworI2VuZGlmCisjaWZkZWYgRU5PVEVNUFRZCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVOT1RFTVBUWSkgY29kZSA9IFhNTF9JT19FTk9URU1QVFk7CisjZW5kaWYKKyNpZmRlZiBFTk9UU1VQCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVOT1RTVVApIGNvZGUgPSBYTUxfSU9fRU5PVFNVUDsKKyNlbmRpZgorI2lmZGVmIEVOT1RUWQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTk9UVFkpIGNvZGUgPSBYTUxfSU9fRU5PVFRZOworI2VuZGlmCisjaWZkZWYgRU5YSU8KKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRU5YSU8pIGNvZGUgPSBYTUxfSU9fRU5YSU87CisjZW5kaWYKKyNpZmRlZiBFUEVSTQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFUEVSTSkgY29kZSA9IFhNTF9JT19FUEVSTTsKKyNlbmRpZgorI2lmZGVmIEVQSVBFCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVQSVBFKSBjb2RlID0gWE1MX0lPX0VQSVBFOworI2VuZGlmCisjaWZkZWYgRVJBTkdFCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVSQU5HRSkgY29kZSA9IFhNTF9JT19FUkFOR0U7CisjZW5kaWYKKyNpZmRlZiBFUk9GUworICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFUk9GUykgY29kZSA9IFhNTF9JT19FUk9GUzsKKyNlbmRpZgorI2lmZGVmIEVTUElQRQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFU1BJUEUpIGNvZGUgPSBYTUxfSU9fRVNQSVBFOworI2VuZGlmCisjaWZkZWYgRVNSQ0gKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRVNSQ0gpIGNvZGUgPSBYTUxfSU9fRVNSQ0g7CisjZW5kaWYKKyNpZmRlZiBFVElNRURPVVQKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRVRJTUVET1VUKSBjb2RlID0gWE1MX0lPX0VUSU1FRE9VVDsKKyNlbmRpZgorI2lmZGVmIEVYREVWCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVYREVWKSBjb2RlID0gWE1MX0lPX0VYREVWOworI2VuZGlmCisjaWZkZWYgRU5PVFNPQ0sKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRU5PVFNPQ0spIGNvZGUgPSBYTUxfSU9fRU5PVFNPQ0s7CisjZW5kaWYKKyNpZmRlZiBFSVNDT05OCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVJU0NPTk4pIGNvZGUgPSBYTUxfSU9fRUlTQ09OTjsKKyNlbmRpZgorI2lmZGVmIEVDT05OUkVGVVNFRAorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFQ09OTlJFRlVTRUQpIGNvZGUgPSBYTUxfSU9fRUNPTk5SRUZVU0VEOworI2VuZGlmCisjaWZkZWYgRVRJTUVET1VUCisgICAgICAgIGVsc2UgaWYgKGVycm5vID09IEVUSU1FRE9VVCkgY29kZSA9IFhNTF9JT19FVElNRURPVVQ7CisjZW5kaWYKKyNpZmRlZiBFTkVUVU5SRUFDSAorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFTkVUVU5SRUFDSCkgY29kZSA9IFhNTF9JT19FTkVUVU5SRUFDSDsKKyNlbmRpZgorI2lmZGVmIEVBRERSSU5VU0UKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRUFERFJJTlVTRSkgY29kZSA9IFhNTF9JT19FQUREUklOVVNFOworI2VuZGlmCisjaWZkZWYgRUlOUFJPR1JFU1MKKyAgICAgICAgZWxzZSBpZiAoZXJybm8gPT0gRUlOUFJPR1JFU1MpIGNvZGUgPSBYTUxfSU9fRUlOUFJPR1JFU1M7CisjZW5kaWYKKyNpZmRlZiBFQUxSRUFEWQorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFQUxSRUFEWSkgY29kZSA9IFhNTF9JT19FQUxSRUFEWTsKKyNlbmRpZgorI2lmZGVmIEVBRk5PU1VQUE9SVAorICAgICAgICBlbHNlIGlmIChlcnJubyA9PSBFQUZOT1NVUFBPUlQpIGNvZGUgPSBYTUxfSU9fRUFGTk9TVVBQT1JUOworI2VuZGlmCisgICAgICAgIGVsc2UgY29kZSA9IFhNTF9JT19VTktOT1dOOworI2VuZGlmIC8qIEhBVkVfRVJSTk9fSCAqLworICAgIH0KKyAgICBpZHggPSAwOworICAgIGlmIChjb2RlID49IFhNTF9JT19VTktOT1dOKSBpZHggPSBjb2RlIC0gWE1MX0lPX1VOS05PV047CisgICAgaWYgKGlkeCA+PSAoc2l6ZW9mKElPZXJyKSAvIHNpemVvZihJT2VyclswXSkpKSBpZHggPSAwOworCisgICAgX194bWxTaW1wbGVFcnJvcihkb21haW4sIGNvZGUsIE5VTEwsIElPZXJyW2lkeF0sIGV4dHJhKTsKK30KKworLyoqCisgKiB4bWxJT0VycjoKKyAqIEBjb2RlOiAgdGhlIGVycm9yIG51bWJlcgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIEkvTyBlcnJvcgorICovCitzdGF0aWMgdm9pZAoreG1sSU9FcnIoaW50IGNvZGUsIGNvbnN0IGNoYXIgKmV4dHJhKQoreworICAgIF9feG1sSU9FcnIoWE1MX0ZST01fSU8sIGNvZGUsIGV4dHJhKTsKK30KKworLyoqCisgKiBfX3htbExvYWRlckVycjoKKyAqIEBjdHg6IHRoZSBwYXJzZXIgY29udGV4dAorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGEgcmVzb3VyY2UgYWNjZXNzIGVycm9yCisgKi8KK3ZvaWQKK19feG1sTG9hZGVyRXJyKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCBjb25zdCBjaGFyICpmaWxlbmFtZSkKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisgICAgeG1sRXJyb3JMZXZlbCBsZXZlbCA9IFhNTF9FUlJfRVJST1I7CisKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmRpc2FibGVTQVggIT0gMCkgJiYKKyAgICAgICAgKGN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpKQorCXJldHVybjsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnNheCAhPSBOVUxMKSkgeworICAgICAgICBpZiAoY3R4dC0+dmFsaWRhdGUpIHsKKwkgICAgY2hhbm5lbCA9IGN0eHQtPnNheC0+ZXJyb3I7CisJICAgIGxldmVsID0gWE1MX0VSUl9FUlJPUjsKKwl9IGVsc2UgeworCSAgICBjaGFubmVsID0gY3R4dC0+c2F4LT53YXJuaW5nOworCSAgICBsZXZlbCA9IFhNTF9FUlJfV0FSTklORzsKKwl9CisJaWYgKGN0eHQtPnNheC0+aW5pdGlhbGl6ZWQgPT0gWE1MX1NBWDJfTUFHSUMpCisJICAgIHNjaGFubmVsID0gY3R4dC0+c2F4LT5zZXJyb3I7CisJZGF0YSA9IGN0eHQtPnVzZXJEYXRhOworICAgIH0KKyAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsIGNoYW5uZWwsIGRhdGEsIGN0eHQsIE5VTEwsIFhNTF9GUk9NX0lPLAorICAgICAgICAgICAgICAgICAgICBYTUxfSU9fTE9BRF9FUlJPUiwgbGV2ZWwsIE5VTEwsIDAsCisJCSAgICBmaWxlbmFtZSwgTlVMTCwgTlVMTCwgMCwgMCwKKwkJICAgIG1zZywgZmlsZW5hbWUpOworCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVRyZWUgbWVtb3J5IGVycm9yIGhhbmRsZXIJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxOb3JtYWxpemVXaW5kb3dzUGF0aDoKKyAqIEBwYXRoOiB0aGUgaW5wdXQgZmlsZSBwYXRoCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZS4gUGxlYXNlIHNlZSB4bWxVUklGcm9tUGF0aCBpbiB1cmkuYyBmb3IKKyAqIGEgYmV0dGVyIHNvbHV0aW9uLgorICoKKyAqIFJldHVybnMgYSBjYW5vbmljYWxpemVkIHZlcnNpb24gb2YgdGhlIHBhdGgKKyAqLworeG1sQ2hhciAqCit4bWxOb3JtYWxpemVXaW5kb3dzUGF0aChjb25zdCB4bWxDaGFyICpwYXRoKQoreworICAgIHJldHVybiB4bWxDYW5vbmljUGF0aChwYXRoKTsKK30KKworLyoqCisgKiB4bWxDbGVhbnVwSW5wdXRDYWxsYmFja3M6CisgKgorICogY2xlYXJzIHRoZSBlbnRpcmUgaW5wdXQgY2FsbGJhY2sgdGFibGUuIHRoaXMgaW5jbHVkZXMgdGhlCisgKiBjb21waWxlZC1pbiBJL08uCisgKi8KK3ZvaWQKK3htbENsZWFudXBJbnB1dENhbGxiYWNrcyh2b2lkKQoreworICAgIGludCBpOworCisgICAgaWYgKCF4bWxJbnB1dENhbGxiYWNrSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaSA9IHhtbElucHV0Q2FsbGJhY2tOciAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHhtbElucHV0Q2FsbGJhY2tUYWJsZVtpXS5tYXRjaGNhbGxiYWNrID0gTlVMTDsKKyAgICAgICAgeG1sSW5wdXRDYWxsYmFja1RhYmxlW2ldLm9wZW5jYWxsYmFjayA9IE5VTEw7CisgICAgICAgIHhtbElucHV0Q2FsbGJhY2tUYWJsZVtpXS5yZWFkY2FsbGJhY2sgPSBOVUxMOworICAgICAgICB4bWxJbnB1dENhbGxiYWNrVGFibGVbaV0uY2xvc2VjYWxsYmFjayA9IE5VTEw7CisgICAgfQorCisgICAgeG1sSW5wdXRDYWxsYmFja05yID0gMDsKKyAgICB4bWxJbnB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPSAwOworfQorCisvKioKKyAqIHhtbFBvcElucHV0Q2FsbGJhY2tzOgorICoKKyAqIENsZWFyIHRoZSB0b3AgaW5wdXQgY2FsbGJhY2sgZnJvbSB0aGUgaW5wdXQgc3RhY2suIHRoaXMgaW5jbHVkZXMgdGhlCisgKiBjb21waWxlZC1pbiBJL08uCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGlucHV0IGNhbGxiYWNrIHJlZ2lzdGVyZWQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxQb3BJbnB1dENhbGxiYWNrcyh2b2lkKQoreworICAgIGlmICgheG1sSW5wdXRDYWxsYmFja0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgaWYgKHhtbElucHV0Q2FsbGJhY2tOciA8PSAwKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgeG1sSW5wdXRDYWxsYmFja05yLS07CisgICAgeG1sSW5wdXRDYWxsYmFja1RhYmxlW3htbElucHV0Q2FsbGJhY2tOcl0ubWF0Y2hjYWxsYmFjayA9IE5VTEw7CisgICAgeG1sSW5wdXRDYWxsYmFja1RhYmxlW3htbElucHV0Q2FsbGJhY2tOcl0ub3BlbmNhbGxiYWNrID0gTlVMTDsKKyAgICB4bWxJbnB1dENhbGxiYWNrVGFibGVbeG1sSW5wdXRDYWxsYmFja05yXS5yZWFkY2FsbGJhY2sgPSBOVUxMOworICAgIHhtbElucHV0Q2FsbGJhY2tUYWJsZVt4bWxJbnB1dENhbGxiYWNrTnJdLmNsb3NlY2FsbGJhY2sgPSBOVUxMOworCisgICAgcmV0dXJuKHhtbElucHV0Q2FsbGJhY2tOcik7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sQ2xlYW51cE91dHB1dENhbGxiYWNrczoKKyAqCisgKiBjbGVhcnMgdGhlIGVudGlyZSBvdXRwdXQgY2FsbGJhY2sgdGFibGUuIHRoaXMgaW5jbHVkZXMgdGhlCisgKiBjb21waWxlZC1pbiBJL08gY2FsbGJhY2tzLgorICovCit2b2lkCit4bWxDbGVhbnVwT3V0cHV0Q2FsbGJhY2tzKHZvaWQpCit7CisgICAgaW50IGk7CisKKyAgICBpZiAoIXhtbE91dHB1dENhbGxiYWNrSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaSA9IHhtbE91dHB1dENhbGxiYWNrTnIgLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICB4bWxPdXRwdXRDYWxsYmFja1RhYmxlW2ldLm1hdGNoY2FsbGJhY2sgPSBOVUxMOworICAgICAgICB4bWxPdXRwdXRDYWxsYmFja1RhYmxlW2ldLm9wZW5jYWxsYmFjayA9IE5VTEw7CisgICAgICAgIHhtbE91dHB1dENhbGxiYWNrVGFibGVbaV0ud3JpdGVjYWxsYmFjayA9IE5VTEw7CisgICAgICAgIHhtbE91dHB1dENhbGxiYWNrVGFibGVbaV0uY2xvc2VjYWxsYmFjayA9IE5VTEw7CisgICAgfQorCisgICAgeG1sT3V0cHV0Q2FsbGJhY2tOciA9IDA7CisgICAgeG1sT3V0cHV0Q2FsbGJhY2tJbml0aWFsaXplZCA9IDA7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVN0YW5kYXJkIEkvTyBmb3IgZmlsZSBhY2Nlc3NlcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKworLyoqCisgKiAgeG1sV3JhcE9wZW5VdGY4OgorICogQHBhdGg6ICB0aGUgcGF0aCBpbiB1dGYtOCBlbmNvZGluZworICogQG1vZGU6ICB0eXBlIG9mIGFjY2VzcyAoMCAtIHJlYWQsIDEgLSB3cml0ZSkKKyAqCisgKiBmdW5jdGlvbiBvcGVucyB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgQHBhdGgKKyAqCisgKi8KK3N0YXRpYyBGSUxFKgoreG1sV3JhcE9wZW5VdGY4KGNvbnN0IGNoYXIgKnBhdGgsaW50IG1vZGUpCit7CisgICAgRklMRSAqZmQgPSBOVUxMOworICAgIHdjaGFyX3QgKndQYXRoOworCisgICAgd1BhdGggPSBfX3htbElPV2luMzJVVEY4VG9XQ2hhcihwYXRoKTsKKyAgICBpZih3UGF0aCkKKyAgICB7CisgICAgICAgZmQgPSBfd2ZvcGVuKHdQYXRoLCBtb2RlID8gTCJ3YiIgOiBMInJiIik7CisgICAgICAgeG1sRnJlZSh3UGF0aCk7CisgICAgfQorICAgIC8qIG1heWJlIHBhdGggaW4gbmF0aXZlIGVuY29kaW5nICovCisgICAgaWYoZmQgPT0gTlVMTCkKKyAgICAgICBmZCA9IGZvcGVuKHBhdGgsIG1vZGUgPyAid2IiIDogInJiIik7CisKKyAgICByZXR1cm4gZmQ7Cit9CisKKyNpZmRlZiBIQVZFX1pMSUJfSAorc3RhdGljIGd6RmlsZQoreG1sV3JhcEd6T3BlblV0ZjgoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSkKK3sKKyAgICBnekZpbGUgZmQ7CisgICAgd2NoYXJfdCAqd1BhdGg7CisKKyAgICBmZCA9IGd6b3BlbiAocGF0aCwgbW9kZSk7CisgICAgaWYgKGZkKQorICAgICAgICByZXR1cm4gZmQ7CisKKyAgICB3UGF0aCA9IF9feG1sSU9XaW4zMlVURjhUb1dDaGFyKHBhdGgpOworICAgIGlmKHdQYXRoKQorICAgIHsKKwlpbnQgZCwgbSA9IChzdHJzdHIobW9kZSwgInIiKSA/IE9fUkRPTkxZIDogT19SRFdSKTsKKyNpZmRlZiBfT19CSU5BUlkKKyAgICAgICAgbSB8PSAoc3Ryc3RyKG1vZGUsICJiIikgPyBfT19CSU5BUlkgOiAwKTsKKyNlbmRpZgorCWQgPSBfd29wZW4od1BhdGgsIG0pOworCWlmIChkID49IDApCisJICAgIGZkID0gZ3pkb3BlbihkLCBtb2RlKTsKKyAgICAgICAgeG1sRnJlZSh3UGF0aCk7CisgICAgfQorCisgICAgcmV0dXJuIGZkOworfQorI2VuZGlmCisKKy8qKgorICogIHhtbFdyYXBTdGF0VXRmODoKKyAqIEBwYXRoOiAgdGhlIHBhdGggaW4gdXRmLTggZW5jb2RpbmcKKyAqIEBpbmZvOiAgc3RydWN0dXJlIHRoYXQgc3RvcmVzIHJlc3VsdHMKKyAqCisgKiBmdW5jdGlvbiBvYnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmaWxlIG9yIGRpcmVjdG9yeQorICoKKyAqLworc3RhdGljIGludAoreG1sV3JhcFN0YXRVdGY4KGNvbnN0IGNoYXIgKnBhdGgsc3RydWN0IHN0YXQgKmluZm8pCit7CisjaWZkZWYgSEFWRV9TVEFUCisgICAgaW50IHJldHZhbCA9IC0xOworICAgIHdjaGFyX3QgKndQYXRoOworCisgICAgd1BhdGggPSBfX3htbElPV2luMzJVVEY4VG9XQ2hhcihwYXRoKTsKKyAgICBpZiAod1BhdGgpCisgICAgeworICAgICAgIHJldHZhbCA9IF93c3RhdCh3UGF0aCxpbmZvKTsKKyAgICAgICB4bWxGcmVlKHdQYXRoKTsKKyAgICB9CisgICAgLyogbWF5YmUgcGF0aCBpbiBuYXRpdmUgZW5jb2RpbmcgKi8KKyAgICBpZihyZXR2YWwgPCAwKQorICAgICAgIHJldHZhbCA9IHN0YXQocGF0aCxpbmZvKTsKKyAgICByZXR1cm4gcmV0dmFsOworI2Vsc2UKKyAgICByZXR1cm4gLTE7CisjZW5kaWYKK30KKworLyoqCisgKiAgeG1sV3JhcE9wZW5OYXRpdmU6CisgKiBAcGF0aDogIHRoZSBwYXRoCisgKiBAbW9kZTogIHR5cGUgb2YgYWNjZXNzICgwIC0gcmVhZCwgMSAtIHdyaXRlKQorICoKKyAqIGZ1bmN0aW9uIG9wZW5zIHRoZSBmaWxlIHNwZWNpZmllZCBieSBAcGF0aAorICoKKyAqLworc3RhdGljIEZJTEUqCit4bWxXcmFwT3Blbk5hdGl2ZShjb25zdCBjaGFyICpwYXRoLGludCBtb2RlKQoreworICAgIHJldHVybiBmb3BlbihwYXRoLG1vZGUgPyAid2IiIDogInJiIik7Cit9CisKKy8qKgorICogIHhtbFdyYXBTdGF0TmF0aXZlOgorICogQHBhdGg6ICB0aGUgcGF0aAorICogQGluZm86ICBzdHJ1Y3R1cmUgdGhhdCBzdG9yZXMgcmVzdWx0cworICoKKyAqIGZ1bmN0aW9uIG9idGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpbGUgb3IgZGlyZWN0b3J5CisgKgorICovCitzdGF0aWMgaW50Cit4bWxXcmFwU3RhdE5hdGl2ZShjb25zdCBjaGFyICpwYXRoLHN0cnVjdCBzdGF0ICppbmZvKQoreworI2lmZGVmIEhBVkVfU1RBVAorICAgIHJldHVybiBzdGF0KHBhdGgsaW5mbyk7CisjZWxzZQorICAgIHJldHVybiAtMTsKKyNlbmRpZgorfQorCit0eXBlZGVmIGludCAoKiB4bWxXcmFwU3RhdEZ1bmMpIChjb25zdCBjaGFyICpmLCBzdHJ1Y3Qgc3RhdCAqcyk7CitzdGF0aWMgeG1sV3JhcFN0YXRGdW5jIHhtbFdyYXBTdGF0ID0geG1sV3JhcFN0YXROYXRpdmU7Cit0eXBlZGVmIEZJTEUqICgqIHhtbFdyYXBPcGVuRnVuYykoY29uc3QgY2hhciAqZixpbnQgbW9kZSk7CitzdGF0aWMgeG1sV3JhcE9wZW5GdW5jIHhtbFdyYXBPcGVuID0geG1sV3JhcE9wZW5OYXRpdmU7CisjaWZkZWYgSEFWRV9aTElCX0gKK3R5cGVkZWYgZ3pGaWxlICgqIHhtbFdyYXBHek9wZW5GdW5jKSAoY29uc3QgY2hhciAqZiwgY29uc3QgY2hhciAqbW9kZSk7CitzdGF0aWMgeG1sV3JhcEd6T3BlbkZ1bmMgeG1sV3JhcEd6T3BlbiA9IGd6b3BlbjsKKyNlbmRpZgorLyoqCisgKiB4bWxJbml0UGxhdGZvcm1TcGVjaWZpY0lvOgorICoKKyAqIEluaXRpYWxpemUgcGxhdGZvcm0gc3BlY2lmaWMgZmVhdHVyZXMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxJbml0UGxhdGZvcm1TcGVjaWZpY0lvKHZvaWQpCit7CisgICAgc3RhdGljIGludCB4bWxQbGF0Zm9ybUlvSW5pdGlhbGl6ZWQgPSAwOworICAgIE9TVkVSU0lPTklORk8gb3N2aTsKKworICAgIGlmKHhtbFBsYXRmb3JtSW9Jbml0aWFsaXplZCkKKyAgICAgIHJldHVybjsKKworICAgIG9zdmkuZHdPU1ZlcnNpb25JbmZvU2l6ZSA9IHNpemVvZihvc3ZpKTsKKworICAgIGlmKEdldFZlcnNpb25FeCgmb3N2aSkgJiYgKG9zdmkuZHdQbGF0Zm9ybUlkID09IFZFUl9QTEFURk9STV9XSU4zMl9OVCkpIHsKKyAgICAgIHhtbFdyYXBTdGF0ID0geG1sV3JhcFN0YXRVdGY4OworICAgICAgeG1sV3JhcE9wZW4gPSB4bWxXcmFwT3BlblV0Zjg7CisjaWZkZWYgSEFWRV9aTElCX0gKKyAgICAgIHhtbFdyYXBHek9wZW4gPSB4bWxXcmFwR3pPcGVuVXRmODsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICB4bWxXcmFwU3RhdCA9IHhtbFdyYXBTdGF0TmF0aXZlOworICAgICAgeG1sV3JhcE9wZW4gPSB4bWxXcmFwT3Blbk5hdGl2ZTsKKyNpZmRlZiBIQVZFX1pMSUJfSAorICAgICAgeG1sV3JhcEd6T3BlbiA9IGd6b3BlbjsKKyNlbmRpZgorICAgIH0KKworICAgIHhtbFBsYXRmb3JtSW9Jbml0aWFsaXplZCA9IDE7CisgICAgcmV0dXJuOworfQorCisjZW5kaWYKKworLyoqCisgKiB4bWxDaGVja0ZpbGVuYW1lOgorICogQHBhdGg6ICB0aGUgcGF0aCB0byBjaGVjaworICoKKyAqIGZ1bmN0aW9uIGNoZWNrcyB0byBzZWUgaWYgQHBhdGggaXMgYSB2YWxpZCBzb3VyY2UKKyAqIChmaWxlLCBzb2NrZXQuLi4pIGZvciBYTUwuCisgKgorICogaWYgc3RhdCBpcyBub3QgYXZhaWxhYmxlIG9uIHRoZSB0YXJnZXQgbWFjaGluZSwKKyAqIHJldHVybnMgMS4gIGlmIHN0YXQgZmFpbHMsIHJldHVybnMgMCAoaWYgY2FsbGluZworICogc3RhdCBvbiB0aGUgZmlsZW5hbWUgZmFpbHMsIGl0IGNhbid0IGJlIHJpZ2h0KS4KKyAqIGlmIHN0YXQgc3VjY2VlZHMgYW5kIHRoZSBmaWxlIGlzIGEgZGlyZWN0b3J5LAorICogcmV0dXJucyAyLiAgb3RoZXJ3aXNlIHJldHVybnMgMS4KKyAqLworCitpbnQKK3htbENoZWNrRmlsZW5hbWUgKGNvbnN0IGNoYXIgKnBhdGgpCit7CisjaWZkZWYgSEFWRV9TVEFUCisJc3RydWN0IHN0YXQgc3RhdF9idWZmZXI7CisjZW5kaWYKKwlpZiAocGF0aCA9PSBOVUxMKQorCQlyZXR1cm4oMCk7CisKKyNpZmRlZiBIQVZFX1NUQVQKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKyAgICBpZiAoeG1sV3JhcFN0YXQocGF0aCwgJnN0YXRfYnVmZmVyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIDA7CisjZWxzZQorICAgIGlmIChzdGF0KHBhdGgsICZzdGF0X2J1ZmZlcikgPT0gLTEpCisgICAgICAgIHJldHVybiAwOworI2VuZGlmCisjaWZkZWYgU19JU0RJUgorICAgIGlmIChTX0lTRElSKHN0YXRfYnVmZmVyLnN0X21vZGUpKQorICAgICAgICByZXR1cm4gMjsKKyNlbmRpZgorI2VuZGlmIC8qIEhBVkVfU1RBVCAqLworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50Cit4bWxOb3Aodm9pZCkgeworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxGZFJlYWQ6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICogQGJ1ZmZlcjogIHdoZXJlIHRvIGRyb3AgZGF0YQorICogQGxlbjogIG51bWJlciBvZiBieXRlcyB0byByZWFkCisgKgorICogUmVhZCBAbGVuIGJ5dGVzIHRvIEBidWZmZXIgZnJvbSB0aGUgSS9PIGNoYW5uZWwuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4KKyAqLworc3RhdGljIGludAoreG1sRmRSZWFkICh2b2lkICogY29udGV4dCwgY2hhciAqIGJ1ZmZlciwgaW50IGxlbikgeworICAgIGludCByZXQ7CisKKyAgICByZXQgPSByZWFkKChpbnQpIChsb25nKSBjb250ZXh0LCAmYnVmZmVyWzBdLCBsZW4pOworICAgIGlmIChyZXQgPCAwKSB4bWxJT0VycigwLCAicmVhZCgpIik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sRmRXcml0ZToKKyAqIEBjb250ZXh0OiAgdGhlIEkvTyBjb250ZXh0CisgKiBAYnVmZmVyOiAgd2hlcmUgdG8gZ2V0IGRhdGEKKyAqIEBsZW46ICBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUKKyAqCisgKiBXcml0ZSBAbGVuIGJ5dGVzIGZyb20gQGJ1ZmZlciB0byB0aGUgSS9PIGNoYW5uZWwuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4KKyAqLworc3RhdGljIGludAoreG1sRmRXcml0ZSAodm9pZCAqIGNvbnRleHQsIGNvbnN0IGNoYXIgKiBidWZmZXIsIGludCBsZW4pIHsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmIChsZW4gPiAwKSB7CisJcmV0ID0gd3JpdGUoKGludCkgKGxvbmcpIGNvbnRleHQsICZidWZmZXJbMF0sIGxlbik7CisJaWYgKHJldCA8IDApIHhtbElPRXJyKDAsICJ3cml0ZSgpIik7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbEZkQ2xvc2U6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICoKKyAqIENsb3NlIGFuIEkvTyBjaGFubmVsCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sRmRDbG9zZSAodm9pZCAqIGNvbnRleHQpIHsKKyAgICBpbnQgcmV0OworICAgIHJldCA9IGNsb3NlKChpbnQpIChsb25nKSBjb250ZXh0KTsKKyAgICBpZiAocmV0IDwgMCkgeG1sSU9FcnIoMCwgImNsb3NlKCkiKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxGaWxlTWF0Y2g6CisgKiBAZmlsZW5hbWU6ICB0aGUgVVJJIGZvciBtYXRjaGluZworICoKKyAqIGlucHV0IGZyb20gRklMRSAqCisgKgorICogUmV0dXJucyAxIGlmIG1hdGNoZXMsIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sRmlsZU1hdGNoIChjb25zdCBjaGFyICpmaWxlbmFtZSBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbEZpbGVPcGVuX3JlYWw6CisgKiBAZmlsZW5hbWU6ICB0aGUgVVJJIGZvciBtYXRjaGluZworICoKKyAqIGlucHV0IGZyb20gRklMRSAqLCBzdXBwb3J0cyBjb21wcmVzc2VkIGlucHV0CisgKiBpZiBAZmlsZW5hbWUgaXMgIiAiIHRoZW4gdGhlIHN0YW5kYXJkIGlucHV0IGlzIHVzZWQKKyAqCisgKiBSZXR1cm5zIGFuIEkvTyBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgdm9pZCAqCit4bWxGaWxlT3Blbl9yZWFsIChjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIGNvbnN0IGNoYXIgKnBhdGggPSBOVUxMOworICAgIEZJTEUgKmZkOworCisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIGlmICghc3RyY21wKGZpbGVuYW1lLCAiLSIpKSB7CisJZmQgPSBzdGRpbjsKKwlyZXR1cm4oKHZvaWQgKikgZmQpOworICAgIH0KKworICAgIGlmICgheG1sU3RybmNhc2VjbXAoQkFEX0NBU1QgZmlsZW5hbWUsIEJBRF9DQVNUICJmaWxlOi8vbG9jYWxob3N0LyIsIDE3KSkgeworI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQorCXBhdGggPSAmZmlsZW5hbWVbMTddOworI2Vsc2UKKwlwYXRoID0gJmZpbGVuYW1lWzE2XTsKKyNlbmRpZgorICAgIH0gZWxzZSBpZiAoIXhtbFN0cm5jYXNlY21wKEJBRF9DQVNUIGZpbGVuYW1lLCBCQURfQ0FTVCAiZmlsZTovLy8iLCA4KSkgeworI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQorCXBhdGggPSAmZmlsZW5hbWVbOF07CisjZWxzZQorCXBhdGggPSAmZmlsZW5hbWVbN107CisjZW5kaWYKKyAgICB9IGVsc2UgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBmaWxlbmFtZSwgQkFEX0NBU1QgImZpbGU6LyIsIDYpKSB7CisgICAgICAgIC8qIGxvdHMgb2YgZ2VuZXJhdG9ycyBzZWVtcyB0byBsYXp5IHRvIHJlYWQgUkZDIDE3MzggKi8KKyNpZiBkZWZpbmVkIChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKwlwYXRoID0gJmZpbGVuYW1lWzZdOworI2Vsc2UKKwlwYXRoID0gJmZpbGVuYW1lWzVdOworI2VuZGlmCisgICAgfSBlbHNlCisJcGF0aCA9IGZpbGVuYW1lOworCisgICAgaWYgKHBhdGggPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKCF4bWxDaGVja0ZpbGVuYW1lKHBhdGgpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKyAgICBmZCA9IHhtbFdyYXBPcGVuKHBhdGgsIDApOworI2Vsc2UKKyAgICBmZCA9IGZvcGVuKHBhdGgsICJyIik7CisjZW5kaWYgLyogV0lOMzIgKi8KKyAgICBpZiAoZmQgPT0gTlVMTCkgeG1sSU9FcnIoMCwgcGF0aCk7CisgICAgcmV0dXJuKCh2b2lkICopIGZkKTsKK30KKworLyoqCisgKiB4bWxGaWxlT3BlbjoKKyAqIEBmaWxlbmFtZTogIHRoZSBVUkkgZm9yIG1hdGNoaW5nCisgKgorICogV3JhcHBlciBhcm91bmQgeG1sRmlsZU9wZW5fcmVhbCB0aGF0IHRyeSBpdCB3aXRoIGFuIHVuZXNjYXBlZAorICogdmVyc2lvbiBvZiBAZmlsZW5hbWUsIGlmIHRoaXMgZmFpbHMgZmFsbGJhY2sgdG8gQGZpbGVuYW1lCisgKgorICogUmV0dXJucyBhIGhhbmRsZXIgb3IgTlVMTCBpbiBjYXNlIG9yIGZhaWx1cmUKKyAqLwordm9pZCAqCit4bWxGaWxlT3BlbiAoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICBjaGFyICp1bmVzY2FwZWQ7CisgICAgdm9pZCAqcmV0dmFsOworCisgICAgcmV0dmFsID0geG1sRmlsZU9wZW5fcmVhbChmaWxlbmFtZSk7CisgICAgaWYgKHJldHZhbCA9PSBOVUxMKSB7CisJdW5lc2NhcGVkID0geG1sVVJJVW5lc2NhcGVTdHJpbmcoZmlsZW5hbWUsIDAsIE5VTEwpOworCWlmICh1bmVzY2FwZWQgIT0gTlVMTCkgeworCSAgICByZXR2YWwgPSB4bWxGaWxlT3Blbl9yZWFsKHVuZXNjYXBlZCk7CisJICAgIHhtbEZyZWUodW5lc2NhcGVkKTsKKwl9CisgICAgfQorCisgICAgcmV0dXJuIHJldHZhbDsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxGaWxlT3Blblc6CisgKiBAZmlsZW5hbWU6ICB0aGUgVVJJIGZvciBtYXRjaGluZworICoKKyAqIG91dHB1dCB0byBmcm9tIEZJTEUgKiwKKyAqIGlmIEBmaWxlbmFtZSBpcyAiLSIgdGhlbiB0aGUgc3RhbmRhcmQgb3V0cHV0IGlzIHVzZWQKKyAqCisgKiBSZXR1cm5zIGFuIEkvTyBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgdm9pZCAqCit4bWxGaWxlT3BlblcgKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgY29uc3QgY2hhciAqcGF0aCA9IE5VTEw7CisgICAgRklMRSAqZmQ7CisKKyAgICBpZiAoIXN0cmNtcChmaWxlbmFtZSwgIi0iKSkgeworCWZkID0gc3Rkb3V0OworCXJldHVybigodm9pZCAqKSBmZCk7CisgICAgfQorCisgICAgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBmaWxlbmFtZSwgQkFEX0NBU1QgImZpbGU6Ly9sb2NhbGhvc3QvIiwgMTcpKQorI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQorCXBhdGggPSAmZmlsZW5hbWVbMTddOworI2Vsc2UKKwlwYXRoID0gJmZpbGVuYW1lWzE2XTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBmaWxlbmFtZSwgQkFEX0NBU1QgImZpbGU6Ly8vIiwgOCkpIHsKKyNpZiBkZWZpbmVkIChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKwlwYXRoID0gJmZpbGVuYW1lWzhdOworI2Vsc2UKKwlwYXRoID0gJmZpbGVuYW1lWzddOworI2VuZGlmCisgICAgfSBlbHNlCisJcGF0aCA9IGZpbGVuYW1lOworCisgICAgaWYgKHBhdGggPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKyAgICBmZCA9IHhtbFdyYXBPcGVuKHBhdGgsIDEpOworI2Vsc2UKKyAJICAgZmQgPSBmb3BlbihwYXRoLCAid2IiKTsKKyNlbmRpZiAvKiBXSU4zMiAqLworCisJIGlmIChmZCA9PSBOVUxMKSB4bWxJT0VycigwLCBwYXRoKTsKKyAgICByZXR1cm4oKHZvaWQgKikgZmQpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbEZpbGVSZWFkOgorICogQGNvbnRleHQ6ICB0aGUgSS9PIGNvbnRleHQKKyAqIEBidWZmZXI6ICB3aGVyZSB0byBkcm9wIGRhdGEKKyAqIEBsZW46ICBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUKKyAqCisgKiBSZWFkIEBsZW4gYnl0ZXMgdG8gQGJ1ZmZlciBmcm9tIHRoZSBJL08gY2hhbm5lbC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciA8IDAgaW4gY2FzZSBvZiBmYWlsdXJlCisgKi8KK2ludAoreG1sRmlsZVJlYWQgKHZvaWQgKiBjb250ZXh0LCBjaGFyICogYnVmZmVyLCBpbnQgbGVuKSB7CisgICAgaW50IHJldDsKKyAgICBpZiAoKGNvbnRleHQgPT0gTlVMTCkgfHwgKGJ1ZmZlciA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICByZXQgPSBmcmVhZCgmYnVmZmVyWzBdLCAxLCAgbGVuLCAoRklMRSAqKSBjb250ZXh0KTsKKyAgICBpZiAocmV0IDwgMCkgeG1sSU9FcnIoMCwgImZyZWFkKCkiKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxGaWxlV3JpdGU6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICogQGJ1ZmZlcjogIHdoZXJlIHRvIGRyb3AgZGF0YQorICogQGxlbjogIG51bWJlciBvZiBieXRlcyB0byB3cml0ZQorICoKKyAqIFdyaXRlIEBsZW4gYnl0ZXMgZnJvbSBAYnVmZmVyIHRvIHRoZSBJL08gY2hhbm5lbC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbgorICovCitzdGF0aWMgaW50Cit4bWxGaWxlV3JpdGUgKHZvaWQgKiBjb250ZXh0LCBjb25zdCBjaGFyICogYnVmZmVyLCBpbnQgbGVuKSB7CisgICAgaW50IGl0ZW1zOworCisgICAgaWYgKChjb250ZXh0ID09IE5VTEwpIHx8IChidWZmZXIgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaXRlbXMgPSBmd3JpdGUoJmJ1ZmZlclswXSwgbGVuLCAxLCAoRklMRSAqKSBjb250ZXh0KTsKKyAgICBpZiAoKGl0ZW1zID09IDApICYmIChmZXJyb3IoKEZJTEUgKikgY29udGV4dCkpKSB7CisgICAgICAgIHhtbElPRXJyKDAsICJmd3JpdGUoKSIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIHJldHVybihpdGVtcyAqIGxlbik7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKgorICogeG1sRmlsZUNsb3NlOgorICogQGNvbnRleHQ6ICB0aGUgSS9PIGNvbnRleHQKKyAqCisgKiBDbG9zZSBhbiBJL08gY2hhbm5lbAorICoKKyAqIFJldHVybnMgMCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sRmlsZUNsb3NlICh2b2lkICogY29udGV4dCkgeworICAgIEZJTEUgKmZpbDsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKGNvbnRleHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBmaWwgPSAoRklMRSAqKSBjb250ZXh0OworICAgIGlmICgoZmlsID09IHN0ZG91dCkgfHwgKGZpbCA9PSBzdGRlcnIpKSB7CisgICAgICAgIHJldCA9IGZmbHVzaChmaWwpOworCWlmIChyZXQgPCAwKQorCSAgICB4bWxJT0VycigwLCAiZmZsdXNoKCkiKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmIChmaWwgPT0gc3RkaW4pCisJcmV0dXJuKDApOworICAgIHJldCA9ICggZmNsb3NlKChGSUxFICopIGNvbnRleHQpID09IEVPRiApID8gLTEgOiAwOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICB4bWxJT0VycigwLCAiZmNsb3NlKCkiKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxGaWxlRmx1c2g6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICoKKyAqIEZsdXNoIGFuIEkvTyBjaGFubmVsCisgKi8KK3N0YXRpYyBpbnQKK3htbEZpbGVGbHVzaCAodm9pZCAqIGNvbnRleHQpIHsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKGNvbnRleHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICByZXQgPSAoIGZmbHVzaCgoRklMRSAqKSBjb250ZXh0KSA9PSBFT0YgKSA/IC0xIDogMDsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgeG1sSU9FcnIoMCwgImZmbHVzaCgpIik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sQnVmZmVyV3JpdGU6CisgKiBAY29udGV4dDogIHRoZSB4bWxCdWZmZXIKKyAqIEBidWZmZXI6ICB0aGUgZGF0YSB0byB3cml0ZQorICogQGxlbjogIG51bWJlciBvZiBieXRlcyB0byB3cml0ZQorICoKKyAqIFdyaXRlIEBsZW4gYnl0ZXMgZnJvbSBAYnVmZmVyIHRvIHRoZSB4bWwgYnVmZmVyCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4KKyAqLworc3RhdGljIGludAoreG1sQnVmZmVyV3JpdGUgKHZvaWQgKiBjb250ZXh0LCBjb25zdCBjaGFyICogYnVmZmVyLCBpbnQgbGVuKSB7CisgICAgaW50IHJldDsKKworICAgIHJldCA9IHhtbEJ1ZmZlckFkZCgoeG1sQnVmZmVyUHRyKSBjb250ZXh0LCAoY29uc3QgeG1sQ2hhciAqKSBidWZmZXIsIGxlbik7CisgICAgaWYgKHJldCAhPSAwKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHJldHVybihsZW4pOworfQorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1pMSUJfSAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJSS9PIGZvciBjb21wcmVzc2VkIGZpbGUgYWNjZXNzZXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIHhtbEd6ZmlsZU1hdGNoOgorICogQGZpbGVuYW1lOiAgdGhlIFVSSSBmb3IgbWF0Y2hpbmcKKyAqCisgKiBpbnB1dCBmcm9tIGNvbXByZXNzZWQgZmlsZSB0ZXN0CisgKgorICogUmV0dXJucyAxIGlmIG1hdGNoZXMsIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbEd6ZmlsZU1hdGNoIChjb25zdCBjaGFyICpmaWxlbmFtZSBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbEd6ZmlsZU9wZW5fcmVhbDoKKyAqIEBmaWxlbmFtZTogIHRoZSBVUkkgZm9yIG1hdGNoaW5nCisgKgorICogaW5wdXQgZnJvbSBjb21wcmVzc2VkIGZpbGUgb3BlbgorICogaWYgQGZpbGVuYW1lIGlzICIgIiB0aGVuIHRoZSBzdGFuZGFyZCBpbnB1dCBpcyB1c2VkCisgKgorICogUmV0dXJucyBhbiBJL08gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHZvaWQgKgoreG1sR3pmaWxlT3Blbl9yZWFsIChjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIGNvbnN0IGNoYXIgKnBhdGggPSBOVUxMOworICAgIGd6RmlsZSBmZDsKKworICAgIGlmICghc3RyY21wKGZpbGVuYW1lLCAiLSIpKSB7CisgICAgICAgIGZkID0gZ3pkb3BlbihkdXAoMCksICJyYiIpOworCXJldHVybigodm9pZCAqKSBmZCk7CisgICAgfQorCisgICAgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBmaWxlbmFtZSwgQkFEX0NBU1QgImZpbGU6Ly9sb2NhbGhvc3QvIiwgMTcpKQorI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQorCXBhdGggPSAmZmlsZW5hbWVbMTddOworI2Vsc2UKKwlwYXRoID0gJmZpbGVuYW1lWzE2XTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBmaWxlbmFtZSwgQkFEX0NBU1QgImZpbGU6Ly8vIiwgOCkpIHsKKyNpZiBkZWZpbmVkIChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKwlwYXRoID0gJmZpbGVuYW1lWzhdOworI2Vsc2UKKwlwYXRoID0gJmZpbGVuYW1lWzddOworI2VuZGlmCisgICAgfSBlbHNlCisJcGF0aCA9IGZpbGVuYW1lOworCisgICAgaWYgKHBhdGggPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKCF4bWxDaGVja0ZpbGVuYW1lKHBhdGgpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKyAgICBmZCA9IHhtbFdyYXBHek9wZW4ocGF0aCwgInJiIik7CisjZWxzZQorICAgIGZkID0gZ3pvcGVuKHBhdGgsICJyYiIpOworI2VuZGlmCisgICAgcmV0dXJuKCh2b2lkICopIGZkKTsKK30KKworLyoqCisgKiB4bWxHemZpbGVPcGVuOgorICogQGZpbGVuYW1lOiAgdGhlIFVSSSBmb3IgbWF0Y2hpbmcKKyAqCisgKiBXcmFwcGVyIGFyb3VuZCB4bWxHemZpbGVPcGVuIGlmIHRoZSBvcGVuIGZhaXMsIGl0IHdpbGwKKyAqIHRyeSB0byB1bmVzY2FwZSBAZmlsZW5hbWUKKyAqLworc3RhdGljIHZvaWQgKgoreG1sR3pmaWxlT3BlbiAoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICBjaGFyICp1bmVzY2FwZWQ7CisgICAgdm9pZCAqcmV0dmFsOworCisgICAgcmV0dmFsID0geG1sR3pmaWxlT3Blbl9yZWFsKGZpbGVuYW1lKTsKKyAgICBpZiAocmV0dmFsID09IE5VTEwpIHsKKwl1bmVzY2FwZWQgPSB4bWxVUklVbmVzY2FwZVN0cmluZyhmaWxlbmFtZSwgMCwgTlVMTCk7CisJaWYgKHVuZXNjYXBlZCAhPSBOVUxMKSB7CisJICAgIHJldHZhbCA9IHhtbEd6ZmlsZU9wZW5fcmVhbCh1bmVzY2FwZWQpOworCX0KKwl4bWxGcmVlKHVuZXNjYXBlZCk7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sR3pmaWxlT3Blblc6CisgKiBAZmlsZW5hbWU6ICB0aGUgVVJJIGZvciBtYXRjaGluZworICogQGNvbXByZXNzaW9uOiAgdGhlIGNvbXByZXNzaW9uIGZhY3RvciAoMCAtIDkgaW5jbHVkZWQpCisgKgorICogaW5wdXQgZnJvbSBjb21wcmVzc2VkIGZpbGUgb3BlbgorICogaWYgQGZpbGVuYW1lIGlzICIgIiB0aGVuIHRoZSBzdGFuZGFyZCBpbnB1dCBpcyB1c2VkCisgKgorICogUmV0dXJucyBhbiBJL08gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHZvaWQgKgoreG1sR3pmaWxlT3BlblcgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgY29tcHJlc3Npb24pIHsKKyAgICBjb25zdCBjaGFyICpwYXRoID0gTlVMTDsKKyAgICBjaGFyIG1vZGVbMTVdOworICAgIGd6RmlsZSBmZDsKKworICAgIHNucHJpbnRmKG1vZGUsIHNpemVvZihtb2RlKSwgIndiJWQiLCBjb21wcmVzc2lvbik7CisgICAgaWYgKCFzdHJjbXAoZmlsZW5hbWUsICItIikpIHsKKyAgICAgICAgZmQgPSBnemRvcGVuKGR1cCgxKSwgbW9kZSk7CisJcmV0dXJuKCh2b2lkICopIGZkKTsKKyAgICB9CisKKyAgICBpZiAoIXhtbFN0cm5jYXNlY21wKEJBRF9DQVNUIGZpbGVuYW1lLCBCQURfQ0FTVCAiZmlsZTovL2xvY2FsaG9zdC8iLCAxNykpCisjaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pCisJcGF0aCA9ICZmaWxlbmFtZVsxN107CisjZWxzZQorCXBhdGggPSAmZmlsZW5hbWVbMTZdOworI2VuZGlmCisgICAgZWxzZSBpZiAoIXhtbFN0cm5jYXNlY21wKEJBRF9DQVNUIGZpbGVuYW1lLCBCQURfQ0FTVCAiZmlsZTovLy8iLCA4KSkgeworI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQorCXBhdGggPSAmZmlsZW5hbWVbOF07CisjZWxzZQorCXBhdGggPSAmZmlsZW5hbWVbN107CisjZW5kaWYKKyAgICB9IGVsc2UKKwlwYXRoID0gZmlsZW5hbWU7CisKKyAgICBpZiAocGF0aCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pICYmICFkZWZpbmVkIChfX0NZR1dJTl9fKQorICAgIGZkID0geG1sV3JhcEd6T3BlbihwYXRoLCBtb2RlKTsKKyNlbHNlCisgICAgZmQgPSBnem9wZW4ocGF0aCwgbW9kZSk7CisjZW5kaWYKKyAgICByZXR1cm4oKHZvaWQgKikgZmQpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbEd6ZmlsZVJlYWQ6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICogQGJ1ZmZlcjogIHdoZXJlIHRvIGRyb3AgZGF0YQorICogQGxlbjogIG51bWJlciBvZiBieXRlcyB0byB3cml0ZQorICoKKyAqIFJlYWQgQGxlbiBieXRlcyB0byBAYnVmZmVyIGZyb20gdGhlIGNvbXByZXNzZWQgSS9PIGNoYW5uZWwuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4KKyAqLworc3RhdGljIGludAoreG1sR3pmaWxlUmVhZCAodm9pZCAqIGNvbnRleHQsIGNoYXIgKiBidWZmZXIsIGludCBsZW4pIHsKKyAgICBpbnQgcmV0OworCisgICAgcmV0ID0gZ3pyZWFkKChnekZpbGUpIGNvbnRleHQsICZidWZmZXJbMF0sIGxlbik7CisgICAgaWYgKHJldCA8IDApIHhtbElPRXJyKDAsICJnenJlYWQoKSIpOworICAgIHJldHVybihyZXQpOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbEd6ZmlsZVdyaXRlOgorICogQGNvbnRleHQ6ICB0aGUgSS9PIGNvbnRleHQKKyAqIEBidWZmZXI6ICB3aGVyZSB0byBkcm9wIGRhdGEKKyAqIEBsZW46ICBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUKKyAqCisgKiBXcml0ZSBAbGVuIGJ5dGVzIGZyb20gQGJ1ZmZlciB0byB0aGUgY29tcHJlc3NlZCBJL08gY2hhbm5lbC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbgorICovCitzdGF0aWMgaW50Cit4bWxHemZpbGVXcml0ZSAodm9pZCAqIGNvbnRleHQsIGNvbnN0IGNoYXIgKiBidWZmZXIsIGludCBsZW4pIHsKKyAgICBpbnQgcmV0OworCisgICAgcmV0ID0gZ3p3cml0ZSgoZ3pGaWxlKSBjb250ZXh0LCAoY2hhciAqKSAmYnVmZmVyWzBdLCBsZW4pOworICAgIGlmIChyZXQgPCAwKSB4bWxJT0VycigwLCAiZ3p3cml0ZSgpIik7CisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKgorICogeG1sR3pmaWxlQ2xvc2U6CisgKiBAY29udGV4dDogIHRoZSBJL08gY29udGV4dAorICoKKyAqIENsb3NlIGEgY29tcHJlc3NlZCBJL08gY2hhbm5lbAorICovCitzdGF0aWMgaW50Cit4bWxHemZpbGVDbG9zZSAodm9pZCAqIGNvbnRleHQpIHsKKyAgICBpbnQgcmV0OworCisgICAgcmV0ID0gIChnemNsb3NlKChnekZpbGUpIGNvbnRleHQpID09IFpfT0sgKSA/IDAgOiAtMTsKKyAgICBpZiAocmV0IDwgMCkgeG1sSU9FcnIoMCwgImd6Y2xvc2UoKSIpOworICAgIHJldHVybihyZXQpOworfQorI2VuZGlmIC8qIEhBVkVfWkxJQl9IICovCisKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJSS9PIGZvciBIVFRQIGZpbGUgYWNjZXNzZXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKK3R5cGVkZWYgc3RydWN0IHhtbElPSFRUUFdyaXRlQ3R4dF8KK3sKKyAgICBpbnQJCQljb21wcmVzc2lvbjsKKworICAgIGNoYXIgKgkJdXJpOworCisgICAgdm9pZCAqCQlkb2NfYnVmZjsKKworfSB4bWxJT0hUVFBXcml0ZUN0eHQsICp4bWxJT0hUVFBXcml0ZUN0eHRQdHI7CisKKyNpZmRlZiBIQVZFX1pMSUJfSAorCisjZGVmaW5lIERGTFRfV0JJVFMJCSggLTE1ICkKKyNkZWZpbmUgREZMVF9NRU1fTFZMCQkoIDggKQorI2RlZmluZSBHWl9NQUdJQzEJCSggMHgxZiApCisjZGVmaW5lIEdaX01BR0lDMgkJKCAweDhiICkKKyNkZWZpbmUgTFhNTF9aTElCX09TX0NPREUJKCAweDAzICkKKyNkZWZpbmUgSU5JVF9IVFRQX0JVRkZfU0laRQkoIDMyNzY4ICkKKyNkZWZpbmUgREZMVF9aTElCX1JBVElPCQkoIDUgKQorCisvKgorKiogIERhdGEgc3RydWN0dXJlIGFuZCBmdW5jdGlvbnMgdG8gd29yayB3aXRoIHNlbmRpbmcgY29tcHJlc3NlZCBkYXRhCisqKiAgdmlhIEhUVFAuCisqLworCit0eXBlZGVmIHN0cnVjdCB4bWxaTWVtQnVmZl8KK3sKKyAgIHVuc2lnbmVkIGxvbmcJc2l6ZTsKKyAgIHVuc2lnbmVkIGxvbmcJY3JjOworCisgICB1bnNpZ25lZCBjaGFyICoJemJ1ZmY7CisgICB6X3N0cmVhbQkJemN0cmw7CisKK30geG1sWk1lbUJ1ZmYsICp4bWxaTWVtQnVmZlB0cjsKKworLyoqCisgKiBhcHBlbmRfcmV2ZXJzZV91bG9uZworICogQGJ1ZmY6ICBDb21wcmVzc2VkIG1lbW9yeSBidWZmZXIKKyAqIEBkYXRhOiAgVW5zaWduZWQgbG9uZyB0byBhcHBlbmQKKyAqCisgKiBBcHBlbmQgYSB1bnNpZ25lZCBsb25nIGluIHJldmVyc2UgYnl0ZSBvcmRlciB0byB0aGUgZW5kIG9mIHRoZQorICogbWVtb3J5IGJ1ZmZlci4KKyAqLworc3RhdGljIHZvaWQKK2FwcGVuZF9yZXZlcnNlX3Vsb25nKCB4bWxaTWVtQnVmZiAqIGJ1ZmYsIHVuc2lnbmVkIGxvbmcgZGF0YSApIHsKKworICAgIGludAkJaWR4OworCisgICAgaWYgKCBidWZmID09IE5VTEwgKQorCXJldHVybjsKKworICAgIC8qCisgICAgKiogIFRoaXMgaXMgcGxhZ2lhcml6ZWQgZnJvbSBwdXRMb25nIGluIGd6aW8uYyAoemxpYiBzb3VyY2UpIHdoZXJlCisgICAgKiogIHRoZSBudW1iZXIgIjQiIGlzIGhhcmRjb2RlZC4gIElmIHpsaWIgaXMgZXZlciBwYXRjaGVkIHRvCisgICAgKiogIHN1cHBvcnQgNjQgYml0IGZpbGUgc2l6ZXMsIHRoaXMgY29kZSB3b3VsZCBuZWVkIHRvIGJlIHBhdGNoZWQKKyAgICAqKiAgYXMgd2VsbC4KKyAgICAqLworCisgICAgZm9yICggaWR4ID0gMDsgaWR4IDwgNDsgaWR4KysgKSB7CisJKmJ1ZmYtPnpjdHJsLm5leHRfb3V0ID0gKCBkYXRhICYgMHhmZiApOworCWRhdGEgPj49IDg7CisJYnVmZi0+emN0cmwubmV4dF9vdXQrKzsKKyAgICB9CisKKyAgICByZXR1cm47Cit9CisKKy8qKgorICoKKyAqIHhtbEZyZWVaTWVtQnVmZgorICogQGJ1ZmY6ICBUaGUgbWVtb3J5IGJ1ZmZlciBjb250ZXh0IHRvIGNsZWFyCisgKgorICogUmVsZWFzZSBhbGwgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbXByZXNzZWQgbWVtb3J5IGJ1ZmZlci4KKyAqLworc3RhdGljIHZvaWQKK3htbEZyZWVaTWVtQnVmZiggeG1sWk1lbUJ1ZmZQdHIgYnVmZiApIHsKKworI2lmZGVmIERFQlVHX0hUVFAKKyAgICBpbnQgel9lcnI7CisjZW5kaWYKKworICAgIGlmICggYnVmZiA9PSBOVUxMICkKKwlyZXR1cm47CisKKyAgICB4bWxGcmVlKCBidWZmLT56YnVmZiApOworI2lmZGVmIERFQlVHX0hUVFAKKyAgICB6X2VyciA9IGRlZmxhdGVFbmQoICZidWZmLT56Y3RybCApOworICAgIGlmICggel9lcnIgIT0gWl9PSyApCisJeG1sR2VuZXJpY0Vycm9yKCB4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJInhtbEZyZWVaTWVtQnVmZjogIEVycm9yIHJlbGVhc2luZyB6bGliIGNvbnRleHQ6ICAlZFxuIiwKKwkJCXpfZXJyICk7CisjZWxzZQorICAgIGRlZmxhdGVFbmQoICZidWZmLT56Y3RybCApOworI2VuZGlmCisKKyAgICB4bWxGcmVlKCBidWZmICk7CisgICAgcmV0dXJuOworfQorCisvKioKKyAqIHhtbENyZWF0ZVpNZW1CdWZmCisgKkBjb21wcmVzc2lvbjoJQ29tcHJlc3Npb24gdmFsdWUgdG8gdXNlCisgKgorICogQ3JlYXRlIGEgbWVtb3J5IGJ1ZmZlciB0byBob2xkIHRoZSBjb21wcmVzc2VkIFhNTCBkb2N1bWVudC4gIFRoZQorICogY29tcHJlc3NlZCBkb2N1bWVudCBpbiBtZW1vcnkgd2lsbCBlbmQgdXAgYmVpbmcgaWRlbnRpY2FsIHRvIHdoYXQKKyAqIHdvdWxkIGJlIGNyZWF0ZWQgaWYgZ3pvcGVuL2d6d3JpdGUvZ3pjbG9zZSB3ZXJlIGJlaW5nIHVzZWQgdG8KKyAqIHdyaXRlIHRoZSBkb2N1bWVudCB0byBkaXNrLiAgVGhlIGNvZGUgZm9yIHRoZSBoZWFkZXIvdHJhaWxlciBkYXRhIHRvCisgKiB0aGUgY29tcHJlc3Npb24gaXMgcGxhZ2lhcml6ZWQgZnJvbSB0aGUgemxpYiBzb3VyY2UgZmlsZXMuCisgKi8KK3N0YXRpYyB2b2lkICoKK3htbENyZWF0ZVpNZW1CdWZmKCBpbnQgY29tcHJlc3Npb24gKSB7CisKKyAgICBpbnQJCQl6X2VycjsKKyAgICBpbnQJCQloZHJfbGd0aDsKKyAgICB4bWxaTWVtQnVmZlB0cglidWZmID0gTlVMTDsKKworICAgIGlmICggKCBjb21wcmVzc2lvbiA8IDEgKSB8fCAoIGNvbXByZXNzaW9uID4gOSApICkKKwlyZXR1cm4gKCBOVUxMICk7CisKKyAgICAvKiAgQ3JlYXRlIHRoZSBjb250cm9sIGFuZCBkYXRhIGFyZWFzICAqLworCisgICAgYnVmZiA9IHhtbE1hbGxvYyggc2l6ZW9mKCB4bWxaTWVtQnVmZiApICk7CisgICAgaWYgKCBidWZmID09IE5VTEwgKSB7CisJeG1sSU9FcnJNZW1vcnkoImNyZWF0aW5nIGJ1ZmZlciBjb250ZXh0Iik7CisJcmV0dXJuICggTlVMTCApOworICAgIH0KKworICAgICh2b2lkKW1lbXNldCggYnVmZiwgMCwgc2l6ZW9mKCB4bWxaTWVtQnVmZiApICk7CisgICAgYnVmZi0+c2l6ZSA9IElOSVRfSFRUUF9CVUZGX1NJWkU7CisgICAgYnVmZi0+emJ1ZmYgPSB4bWxNYWxsb2MoIGJ1ZmYtPnNpemUgKTsKKyAgICBpZiAoIGJ1ZmYtPnpidWZmID09IE5VTEwgKSB7CisJeG1sRnJlZVpNZW1CdWZmKCBidWZmICk7CisJeG1sSU9FcnJNZW1vcnkoImNyZWF0aW5nIGJ1ZmZlciIpOworCXJldHVybiAoIE5VTEwgKTsKKyAgICB9CisKKyAgICB6X2VyciA9IGRlZmxhdGVJbml0MiggJmJ1ZmYtPnpjdHJsLCBjb21wcmVzc2lvbiwgWl9ERUZMQVRFRCwKKwkJCSAgICBERkxUX1dCSVRTLCBERkxUX01FTV9MVkwsIFpfREVGQVVMVF9TVFJBVEVHWSApOworICAgIGlmICggel9lcnIgIT0gWl9PSyApIHsKKwl4bWxDaGFyIG1zZ1s1MDBdOworCXhtbEZyZWVaTWVtQnVmZiggYnVmZiApOworCWJ1ZmYgPSBOVUxMOworCXhtbFN0clByaW50Zihtc2csIDUwMCwKKwkJICAgIChjb25zdCB4bWxDaGFyICopICJ4bWxDcmVhdGVaTWVtQnVmZjogICVzICVkXG4iLAorCQkgICAgIkVycm9yIGluaXRpYWxpemluZyBjb21wcmVzc2lvbiBjb250ZXh0LiAgWkxJQiBlcnJvcjoiLAorCQkgICAgel9lcnIgKTsKKwl4bWxJT0VycihYTUxfSU9fV1JJVEUsIChjb25zdCBjaGFyICopIG1zZyk7CisJcmV0dXJuICggTlVMTCApOworICAgIH0KKworICAgIC8qICBTZXQgdGhlIGhlYWRlciBkYXRhLiAgVGhlIENSQyB3aWxsIGJlIG5lZWRlZCBmb3IgdGhlIHRyYWlsZXIgICovCisgICAgYnVmZi0+Y3JjID0gY3JjMzIoIDBMLCBOVUxMLCAwICk7CisgICAgaGRyX2xndGggPSBzbnByaW50ZiggKGNoYXIgKilidWZmLT56YnVmZiwgYnVmZi0+c2l6ZSwKKwkJCSIlYyVjJWMlYyVjJWMlYyVjJWMlYyIsCisJCQlHWl9NQUdJQzEsIEdaX01BR0lDMiwgWl9ERUZMQVRFRCwKKwkJCTAsIDAsIDAsIDAsIDAsIDAsIExYTUxfWkxJQl9PU19DT0RFICk7CisgICAgYnVmZi0+emN0cmwubmV4dF9vdXQgID0gYnVmZi0+emJ1ZmYgKyBoZHJfbGd0aDsKKyAgICBidWZmLT56Y3RybC5hdmFpbF9vdXQgPSBidWZmLT5zaXplIC0gaGRyX2xndGg7CisKKyAgICByZXR1cm4gKCBidWZmICk7Cit9CisKKy8qKgorICogeG1sWk1lbUJ1ZmZFeHRlbmQKKyAqIEBidWZmOiAgQnVmZmVyIHVzZWQgdG8gY29tcHJlc3MgYW5kIGNvbnNvbGlkYXRlIGRhdGEuCisgKiBAZXh0X2FtdDogICBOdW1iZXIgb2YgYnl0ZXMgdG8gZXh0ZW5kIHRoZSBidWZmZXIuCisgKgorICogRXh0ZW5kIHRoZSBpbnRlcm5hbCBidWZmZXIgdXNlZCB0byBzdG9yZSB0aGUgY29tcHJlc3NlZCBkYXRhIGJ5IHRoZQorICogc3BlY2lmaWVkIGFtb3VudC4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciAtMSBvbiBmYWlsdXJlIHRvIGV4dGVuZCB0aGUgYnVmZmVyLiAgT24gZmFpbHVyZQorICogdGhlIG9yaWdpbmFsIGJ1ZmZlciBzdGlsbCBleGlzdHMgYXQgdGhlIG9yaWdpbmFsIHNpemUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFpNZW1CdWZmRXh0ZW5kKCB4bWxaTWVtQnVmZlB0ciBidWZmLCBzaXplX3QgZXh0X2FtdCApIHsKKworICAgIGludAkJCXJjID0gLTE7CisgICAgc2l6ZV90CQluZXdfc2l6ZTsKKyAgICBzaXplX3QJCWN1cl91c2VkOworCisgICAgdW5zaWduZWQgY2hhciAqCXRtcF9wdHIgPSBOVUxMOworCisgICAgaWYgKCBidWZmID09IE5VTEwgKQorCXJldHVybiAoIC0xICk7CisKKyAgICBlbHNlIGlmICggZXh0X2FtdCA9PSAwICkKKwlyZXR1cm4gKCAwICk7CisKKyAgICBjdXJfdXNlZCA9IGJ1ZmYtPnpjdHJsLm5leHRfb3V0IC0gYnVmZi0+emJ1ZmY7CisgICAgbmV3X3NpemUgPSBidWZmLT5zaXplICsgZXh0X2FtdDsKKworI2lmZGVmIERFQlVHX0hUVFAKKyAgICBpZiAoIGN1cl91c2VkID4gbmV3X3NpemUgKQorCXhtbEdlbmVyaWNFcnJvciggeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJ4bWxaTWVtQnVmZkV4dGVuZDogICVzXG4lcyAlZCBieXRlcy5cbiIsCisJCQkiQnVmZmVyIG92ZXJ3cml0ZSBkZXRlY3RlZCBkdXJpbmcgY29tcHJlc3NlZCBtZW1vcnkiLAorCQkJImJ1ZmZlciBleHRlbnNpb24uICBPdmVyZmxvd2VkIGJ5IiwKKwkJCShjdXJfdXNlZCAtIG5ld19zaXplICkgKTsKKyNlbmRpZgorCisgICAgdG1wX3B0ciA9IHhtbFJlYWxsb2MoIGJ1ZmYtPnpidWZmLCBuZXdfc2l6ZSApOworICAgIGlmICggdG1wX3B0ciAhPSBOVUxMICkgeworCXJjID0gMDsKKwlidWZmLT5zaXplICA9IG5ld19zaXplOworCWJ1ZmYtPnpidWZmID0gdG1wX3B0cjsKKwlidWZmLT56Y3RybC5uZXh0X291dCAgPSB0bXBfcHRyICsgY3VyX3VzZWQ7CisJYnVmZi0+emN0cmwuYXZhaWxfb3V0ID0gbmV3X3NpemUgLSBjdXJfdXNlZDsKKyAgICB9CisgICAgZWxzZSB7CisJeG1sQ2hhciBtc2dbNTAwXTsKKwl4bWxTdHJQcmludGYobXNnLCA1MDAsCisJCSAgICAoY29uc3QgeG1sQ2hhciAqKSAieG1sWk1lbUJ1ZmZFeHRlbmQ6ICAlcyAlbHUgYnl0ZXMuXG4iLAorCQkgICAgIkFsbG9jYXRpb24gZmFpbHVyZSBleHRlbmRpbmcgb3V0cHV0IGJ1ZmZlciB0byIsCisJCSAgICBuZXdfc2l6ZSApOworCXhtbElPRXJyKFhNTF9JT19XUklURSwgKGNvbnN0IGNoYXIgKikgbXNnKTsKKyAgICB9CisKKyAgICByZXR1cm4gKCByYyApOworfQorCisvKioKKyAqIHhtbFpNZW1CdWZmQXBwZW5kCisgKiBAYnVmZjogIEJ1ZmZlciB1c2VkIHRvIGNvbXByZXNzIGFuZCBjb25zb2xpZGF0ZSBkYXRhCisgKiBAc3JjOiAgIFVuY29tcHJlc3NlZCBzb3VyY2UgY29udGVudCB0byBhcHBlbmQgdG8gYnVmZmVyCisgKiBAbGVuOiAgIExlbmd0aCBvZiBzb3VyY2UgZGF0YSB0byBhcHBlbmQgdG8gYnVmZmVyCisgKgorICogQ29tcHJlc3MgYW5kIGFwcGVuZCBkYXRhIHRvIHRoZSBpbnRlcm5hbCBidWZmZXIuICBUaGUgZGF0YSBidWZmZXIKKyAqIHdpbGwgYmUgZXhwYW5kZWQgaWYgbmVlZGVkIHRvIHN0b3JlIHRoZSBhZGRpdGlvbmFsIGRhdGEuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGFwcGVuZGVkIHRvIHRoZSBidWZmZXIgb3IgLTEgb24gZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3htbFpNZW1CdWZmQXBwZW5kKCB4bWxaTWVtQnVmZlB0ciBidWZmLCBjb25zdCBjaGFyICogc3JjLCBpbnQgbGVuICkgeworCisgICAgaW50CQl6X2VycjsKKyAgICBzaXplX3QJbWluX2FjY2VwdDsKKworICAgIGlmICggKCBidWZmID09IE5VTEwgKSB8fCAoIHNyYyA9PSBOVUxMICkgKQorCXJldHVybiAoIC0xICk7CisKKyAgICBidWZmLT56Y3RybC5hdmFpbF9pbiA9IGxlbjsKKyAgICBidWZmLT56Y3RybC5uZXh0X2luICA9ICh1bnNpZ25lZCBjaGFyICopc3JjOworICAgIHdoaWxlICggYnVmZi0+emN0cmwuYXZhaWxfaW4gPiAwICkgeworCS8qCisJKiogIEV4dGVuZCB0aGUgYnVmZmVyIHByaW9yIHRvIGRlZmxhdGUgY2FsbCBpZiBhIHJlYXNvbmFibGUgYW1vdW50CisJKiogIG9mIG91dHB1dCBidWZmZXIgc3BhY2UgaXMgbm90IGF2YWlsYWJsZS4KKwkqLworCW1pbl9hY2NlcHQgPSBidWZmLT56Y3RybC5hdmFpbF9pbiAvIERGTFRfWkxJQl9SQVRJTzsKKwlpZiAoIGJ1ZmYtPnpjdHJsLmF2YWlsX291dCA8PSBtaW5fYWNjZXB0ICkgeworCSAgICBpZiAoIHhtbFpNZW1CdWZmRXh0ZW5kKCBidWZmLCBidWZmLT5zaXplICkgPT0gLTEgKQorCQlyZXR1cm4gKCAtMSApOworCX0KKworCXpfZXJyID0gZGVmbGF0ZSggJmJ1ZmYtPnpjdHJsLCBaX05PX0ZMVVNIICk7CisJaWYgKCB6X2VyciAhPSBaX09LICkgeworCSAgICB4bWxDaGFyIG1zZ1s1MDBdOworCSAgICB4bWxTdHJQcmludGYobXNnLCA1MDAsCisJCQkoY29uc3QgeG1sQ2hhciAqKSAieG1sWk1lbUJ1ZmZBcHBlbmQ6ICAlcyAlZCAlcyAtICVkIiwKKwkJCSJDb21wcmVzc2lvbiBlcnJvciB3aGlsZSBhcHBlbmRpbmciLAorCQkJbGVuLCAiYnl0ZXMgdG8gYnVmZmVyLiAgWkxJQiBlcnJvciIsIHpfZXJyICk7CisJICAgIHhtbElPRXJyKFhNTF9JT19XUklURSwgKGNvbnN0IGNoYXIgKikgbXNnKTsKKwkgICAgcmV0dXJuICggLTEgKTsKKwl9CisgICAgfQorCisgICAgYnVmZi0+Y3JjID0gY3JjMzIoIGJ1ZmYtPmNyYywgKHVuc2lnbmVkIGNoYXIgKilzcmMsIGxlbiApOworCisgICAgcmV0dXJuICggbGVuICk7Cit9CisKKy8qKgorICogeG1sWk1lbUJ1ZmZHZXRDb250ZW50CisgKiBAYnVmZjogIENvbXByZXNzZWQgbWVtb3J5IGNvbnRlbnQgYnVmZmVyCisgKiBAZGF0YV9yZWY6ICBQb2ludGVyIHJlZmVyZW5jZSB0byBwb2ludCB0byBjb21wcmVzc2VkIGNvbnRlbnQKKyAqCisgKiBGbHVzaGVzIHRoZSBjb21wcmVzc2lvbiBidWZmZXJzLCBhcHBlbmRzIGd6aXAgZmlsZSB0cmFpbGVycyBhbmQKKyAqIHJldHVybnMgdGhlIGNvbXByZXNzZWQgY29udGVudCBhbmQgbGVuZ3RoIG9mIHRoZSBjb21wcmVzc2VkIGRhdGEuCisgKiBOT1RFOiAgVGhlIGd6aXAgdHJhaWxlciBjb2RlIGhlcmUgaXMgcGxhZ2lhcml6ZWQgZnJvbSB6bGliIHNvdXJjZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGNvbXByZXNzZWQgZGF0YSBvciAtMSBvbiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sWk1lbUJ1ZmZHZXRDb250ZW50KCB4bWxaTWVtQnVmZlB0ciBidWZmLCBjaGFyICoqIGRhdGFfcmVmICkgeworCisgICAgaW50CQl6bGd0aCA9IC0xOworICAgIGludAkJel9lcnI7CisKKyAgICBpZiAoICggYnVmZiA9PSBOVUxMICkgfHwgKCBkYXRhX3JlZiA9PSBOVUxMICkgKQorCXJldHVybiAoIC0xICk7CisKKyAgICAvKiAgTmVlZCB0byBsb29wIHVudGlsIGNvbXByZXNzaW9uIG91dHB1dCBidWZmZXJzIGFyZSBmbHVzaGVkICAqLworCisgICAgZG8KKyAgICB7CisJel9lcnIgPSBkZWZsYXRlKCAmYnVmZi0+emN0cmwsIFpfRklOSVNIICk7CisJaWYgKCB6X2VyciA9PSBaX09LICkgeworCSAgICAvKiAgSW4gdGhpcyBjYXNlIFpfT0sgbWVhbnMgbW9yZSBidWZmZXIgc3BhY2UgbmVlZGVkICAqLworCisJICAgIGlmICggeG1sWk1lbUJ1ZmZFeHRlbmQoIGJ1ZmYsIGJ1ZmYtPnNpemUgKSA9PSAtMSApCisJCXJldHVybiAoIC0xICk7CisJfQorICAgIH0KKyAgICB3aGlsZSAoIHpfZXJyID09IFpfT0sgKTsKKworICAgIC8qICBJZiB0aGUgY29tcHJlc3Npb24gc3RhdGUgaXMgbm90IFpfU1RSRUFNX0VORCwgc29tZSBlcnJvciBvY2N1cnJlZCAgKi8KKworICAgIGlmICggel9lcnIgPT0gWl9TVFJFQU1fRU5EICkgeworCisJLyogIE5lZWQgdG8gYXBwZW5kIHRoZSBnemlwIGRhdGEgdHJhaWxlciAgKi8KKworCWlmICggYnVmZi0+emN0cmwuYXZhaWxfb3V0IDwgKCAyICogc2l6ZW9mKCB1bnNpZ25lZCBsb25nICkgKSApIHsKKwkgICAgaWYgKCB4bWxaTWVtQnVmZkV4dGVuZChidWZmLCAoMiAqIHNpemVvZih1bnNpZ25lZCBsb25nKSkpID09IC0xICkKKwkJcmV0dXJuICggLTEgKTsKKwl9CisKKwkvKgorCSoqICBGb3Igd2hhdGV2ZXIgcmVhc29uLCB0aGUgQ1JDIGFuZCBsZW5ndGggZGF0YSBhcmUgcHVzaGVkIG91dAorCSoqICBpbiByZXZlcnNlIGJ5dGUgb3JkZXIuICBTbyBhIG1lbWNweSBjYW4ndCBiZSB1c2VkIGhlcmUuCisJKi8KKworCWFwcGVuZF9yZXZlcnNlX3Vsb25nKCBidWZmLCBidWZmLT5jcmMgKTsKKwlhcHBlbmRfcmV2ZXJzZV91bG9uZyggYnVmZiwgYnVmZi0+emN0cmwudG90YWxfaW4gKTsKKworCXpsZ3RoID0gYnVmZi0+emN0cmwubmV4dF9vdXQgLSBidWZmLT56YnVmZjsKKwkqZGF0YV9yZWYgPSAoY2hhciAqKWJ1ZmYtPnpidWZmOworICAgIH0KKworICAgIGVsc2UgeworCXhtbENoYXIgbXNnWzUwMF07CisJeG1sU3RyUHJpbnRmKG1zZywgNTAwLAorCQkgICAgKGNvbnN0IHhtbENoYXIgKikgInhtbFpNZW1CdWZmR2V0Q29udGVudDogICVzIC0gJWRcbiIsCisJCSAgICAiRXJyb3IgZmx1c2hpbmcgemxpYiBidWZmZXJzLiAgRXJyb3IgY29kZSIsIHpfZXJyICk7CisJeG1sSU9FcnIoWE1MX0lPX1dSSVRFLCAoY29uc3QgY2hhciAqKSBtc2cpOworICAgIH0KKworICAgIHJldHVybiAoIHpsZ3RoICk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisjZW5kaWYgIC8qICBIQVZFX1pMSUJfSCAgKi8KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxGcmVlSFRUUFdyaXRlQ3R4dAorICogQGN0eHQ6ICBDb250ZXh0IHRvIGNsZWFudXAKKyAqCisgKiBGcmVlIGFsbG9jYXRlZCBtZW1vcnkgYW5kIHJlY2xhaW0gc3lzdGVtIHJlc291cmNlcy4KKyAqCisgKiBObyByZXR1cm4gdmFsdWUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGcmVlSFRUUFdyaXRlQ3R4dCggeG1sSU9IVFRQV3JpdGVDdHh0UHRyIGN0eHQgKQoreworICAgIGlmICggY3R4dC0+dXJpICE9IE5VTEwgKQorCXhtbEZyZWUoIGN0eHQtPnVyaSApOworCisgICAgaWYgKCBjdHh0LT5kb2NfYnVmZiAhPSBOVUxMICkgeworCisjaWZkZWYgSEFWRV9aTElCX0gKKwlpZiAoIGN0eHQtPmNvbXByZXNzaW9uID4gMCApIHsKKwkgICAgeG1sRnJlZVpNZW1CdWZmKCBjdHh0LT5kb2NfYnVmZiApOworCX0KKwllbHNlCisjZW5kaWYKKwl7CisJICAgIHhtbE91dHB1dEJ1ZmZlckNsb3NlKCBjdHh0LT5kb2NfYnVmZiApOworCX0KKyAgICB9CisKKyAgICB4bWxGcmVlKCBjdHh0ICk7CisgICAgcmV0dXJuOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisKKy8qKgorICogeG1sSU9IVFRQTWF0Y2g6CisgKiBAZmlsZW5hbWU6ICB0aGUgVVJJIGZvciBtYXRjaGluZworICoKKyAqIGNoZWNrIGlmIHRoZSBVUkkgbWF0Y2hlcyBhbiBIVFRQIG9uZQorICoKKyAqIFJldHVybnMgMSBpZiBtYXRjaGVzLCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbElPSFRUUE1hdGNoIChjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIGlmICgheG1sU3RybmNhc2VjbXAoQkFEX0NBU1QgZmlsZW5hbWUsIEJBRF9DQVNUICJodHRwOi8vIiwgNykpCisJcmV0dXJuKDEpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxJT0hUVFBPcGVuOgorICogQGZpbGVuYW1lOiAgdGhlIFVSSSBmb3IgbWF0Y2hpbmcKKyAqCisgKiBvcGVuIGFuIEhUVFAgSS9PIGNoYW5uZWwKKyAqCisgKiBSZXR1cm5zIGFuIEkvTyBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit2b2lkICoKK3htbElPSFRUUE9wZW4gKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgcmV0dXJuKHhtbE5hbm9IVFRQT3BlbihmaWxlbmFtZSwgTlVMTCkpOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbElPSFRUUE9wZW5XOgorICogQHBvc3RfdXJpOiAgVGhlIGRlc3RpbmF0aW9uIFVSSSBmb3IgdGhlIGRvY3VtZW50CisgKiBAY29tcHJlc3Npb246ICBUaGUgY29tcHJlc3Npb24gZGVzaXJlZCBmb3IgdGhlIGRvY3VtZW50LgorICoKKyAqIE9wZW4gYSB0ZW1wb3JhcnkgYnVmZmVyIHRvIGNvbGxlY3QgdGhlIGRvY3VtZW50IGZvciBhIHN1YnNlcXVlbnQgSFRUUCBQT1NUCisgKiByZXF1ZXN0LiAgTm9uLXN0YXRpYyBhcyBpcyBjYWxsZWQgZnJvbSB0aGUgb3V0cHV0IGJ1ZmZlciBjcmVhdGlvbiByb3V0aW5lLgorICoKKyAqIFJldHVybnMgYW4gSS9PIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCisKK3ZvaWQgKgoreG1sSU9IVFRQT3BlblcoY29uc3QgY2hhciAqcG9zdF91cmksIGludCBjb21wcmVzc2lvbikKK3sKKworICAgIHhtbElPSFRUUFdyaXRlQ3R4dFB0ciBjdHh0ID0gTlVMTDsKKworICAgIGlmIChwb3N0X3VyaSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgY3R4dCA9IHhtbE1hbGxvYyhzaXplb2YoeG1sSU9IVFRQV3JpdGVDdHh0KSk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworCXhtbElPRXJyTWVtb3J5KCJjcmVhdGluZyBIVFRQIG91dHB1dCBjb250ZXh0Iik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorCisgICAgKHZvaWQpIG1lbXNldChjdHh0LCAwLCBzaXplb2YoeG1sSU9IVFRQV3JpdGVDdHh0KSk7CisKKyAgICBjdHh0LT51cmkgPSAoY2hhciAqKSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKilwb3N0X3VyaSk7CisgICAgaWYgKGN0eHQtPnVyaSA9PSBOVUxMKSB7CisJeG1sSU9FcnJNZW1vcnkoImNvcHlpbmcgVVJJIik7CisgICAgICAgIHhtbEZyZWVIVFRQV3JpdGVDdHh0KGN0eHQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKworICAgIC8qCisgICAgICogKiogIFNpbmNlIHRoZSBkb2N1bWVudCBsZW5ndGggaXMgcmVxdWlyZWQgZm9yIGFuIEhUVFAgcG9zdCwKKyAgICAgKiAqKiAgbmVlZCB0byBwdXQgdGhlIGRvY3VtZW50IGludG8gYSBidWZmZXIuICBBIG1lbW9yeSBidWZmZXIKKyAgICAgKiAqKiAgaXMgYmVpbmcgdXNlZCB0byBhdm9pZCBwdXNoaW5nIHRoZSBkYXRhIHRvIGRpc2sgYW5kIGJhY2suCisgICAgICovCisKKyNpZmRlZiBIQVZFX1pMSUJfSAorICAgIGlmICgoY29tcHJlc3Npb24gPiAwKSAmJiAoY29tcHJlc3Npb24gPD0gOSkpIHsKKworICAgICAgICBjdHh0LT5jb21wcmVzc2lvbiA9IGNvbXByZXNzaW9uOworICAgICAgICBjdHh0LT5kb2NfYnVmZiA9IHhtbENyZWF0ZVpNZW1CdWZmKGNvbXByZXNzaW9uKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKyAgICAgICAgLyogIEFueSBjaGFyYWN0ZXIgY29udmVyc2lvbnMgc2hvdWxkIGhhdmUgYmVlbiBkb25lIGJlZm9yZSB0aGlzICAqLworCisgICAgICAgIGN0eHQtPmRvY19idWZmID0geG1sQWxsb2NPdXRwdXRCdWZmZXJJbnRlcm5hbChOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoY3R4dC0+ZG9jX2J1ZmYgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlSFRUUFdyaXRlQ3R4dChjdHh0KTsKKyAgICAgICAgY3R4dCA9IE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIChjdHh0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxJT0hUVFBEZmx0T3BlblcKKyAqIEBwb3N0X3VyaTogIFRoZSBkZXN0aW5hdGlvbiBVUkkgZm9yIHRoaXMgZG9jdW1lbnQuCisgKgorICogQ2FsbHMgeG1sSU9IVFRQT3Blblcgd2l0aCBubyBjb21wcmVzc2lvbiB0byBzZXQgdXAgZm9yIGEgc3Vic2VxdWVudAorICogSFRUUCBwb3N0IGNvbW1hbmQuICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBnZW5lcmFsbHkgbm90IGJlIHVzZWQgYXMKKyAqIHRoZSBvcGVuIGNhbGxiYWNrIGlzIHNob3J0IGNpcmN1aXRlZCBpbiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgSU8gY29udGV4dC4KKyAqLworc3RhdGljIHZvaWQgKgoreG1sSU9IVFRQRGZsdE9wZW5XKCBjb25zdCBjaGFyICogcG9zdF91cmkgKSB7CisgICAgcmV0dXJuICggeG1sSU9IVFRQT3BlblcoIHBvc3RfdXJpLCAwICkgKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxJT0hUVFBSZWFkOgorICogQGNvbnRleHQ6ICB0aGUgSS9PIGNvbnRleHQKKyAqIEBidWZmZXI6ICB3aGVyZSB0byBkcm9wIGRhdGEKKyAqIEBsZW46ICBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUKKyAqCisgKiBSZWFkIEBsZW4gYnl0ZXMgdG8gQGJ1ZmZlciBmcm9tIHRoZSBJL08gY2hhbm5lbC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbgorICovCitpbnQKK3htbElPSFRUUFJlYWQodm9pZCAqIGNvbnRleHQsIGNoYXIgKiBidWZmZXIsIGludCBsZW4pIHsKKyAgICBpZiAoKGJ1ZmZlciA9PSBOVUxMKSB8fCAobGVuIDwgMCkpIHJldHVybigtMSk7CisgICAgcmV0dXJuKHhtbE5hbm9IVFRQUmVhZChjb250ZXh0LCAmYnVmZmVyWzBdLCBsZW4pKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxJT0hUVFBXcml0ZQorICogQGNvbnRleHQ6ICBwcmV2aW91c2x5IG9wZW5lZCB3cml0aW5nIGNvbnRleHQKKyAqIEBidWZmZXI6ICAgZGF0YSB0byBvdXRwdXQgdG8gdGVtcG9yYXJ5IGJ1ZmZlcgorICogQGxlbjogICAgICBieXRlcyB0byBvdXRwdXQKKyAqCisgKiBDb2xsZWN0IGRhdGEgZnJvbSBtZW1vcnkgYnVmZmVyIGludG8gYSB0ZW1wb3JhcnkgZmlsZSBmb3IgbGF0ZXIKKyAqIHByb2Nlc3NpbmcuCisgKgorICogUmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KKyAqLworCitzdGF0aWMgaW50Cit4bWxJT0hUVFBXcml0ZSggdm9pZCAqIGNvbnRleHQsIGNvbnN0IGNoYXIgKiBidWZmZXIsIGludCBsZW4gKSB7CisKKyAgICB4bWxJT0hUVFBXcml0ZUN0eHRQdHIJY3R4dCA9IGNvbnRleHQ7CisKKyAgICBpZiAoICggY3R4dCA9PSBOVUxMICkgfHwgKCBjdHh0LT5kb2NfYnVmZiA9PSBOVUxMICkgfHwgKCBidWZmZXIgPT0gTlVMTCApICkKKwlyZXR1cm4gKCAtMSApOworCisgICAgaWYgKCBsZW4gPiAwICkgeworCisJLyogIFVzZSBnendyaXRlIG9yIGZ3cml0ZSBhcyBwcmV2aW91c2x5IHNldHVwIGluIHRoZSBvcGVuIGNhbGwgICovCisKKyNpZmRlZiBIQVZFX1pMSUJfSAorCWlmICggY3R4dC0+Y29tcHJlc3Npb24gPiAwICkKKwkgICAgbGVuID0geG1sWk1lbUJ1ZmZBcHBlbmQoIGN0eHQtPmRvY19idWZmLCBidWZmZXIsIGxlbiApOworCisJZWxzZQorI2VuZGlmCisJICAgIGxlbiA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKCBjdHh0LT5kb2NfYnVmZiwgbGVuLCBidWZmZXIgKTsKKworCWlmICggbGVuIDwgMCApIHsKKwkgICAgeG1sQ2hhciBtc2dbNTAwXTsKKwkgICAgeG1sU3RyUHJpbnRmKG1zZywgNTAwLAorCQkJKGNvbnN0IHhtbENoYXIgKikgInhtbElPSFRUUFdyaXRlOiAgJXNcbiVzICclcycuXG4iLAorCQkJIkVycm9yIGFwcGVuZGluZyB0byBpbnRlcm5hbCBidWZmZXIuIiwKKwkJCSJFcnJvciBzZW5kaW5nIGRvY3VtZW50IHRvIFVSSSIsCisJCQljdHh0LT51cmkgKTsKKwkgICAgeG1sSU9FcnIoWE1MX0lPX1dSSVRFLCAoY29uc3QgY2hhciAqKSBtc2cpOworCX0KKyAgICB9CisKKyAgICByZXR1cm4gKCBsZW4gKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworCisvKioKKyAqIHhtbElPSFRUUENsb3NlOgorICogQGNvbnRleHQ6ICB0aGUgSS9PIGNvbnRleHQKKyAqCisgKiBDbG9zZSBhbiBIVFRQIEkvTyBjaGFubmVsCisgKgorICogUmV0dXJucyAwCisgKi8KK2ludAoreG1sSU9IVFRQQ2xvc2UgKHZvaWQgKiBjb250ZXh0KSB7CisgICAgeG1sTmFub0hUVFBDbG9zZShjb250ZXh0KTsKKyAgICByZXR1cm4gMDsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxJT0hUVENsb3NlV3JpdGUKKyAqIEBjb250ZXh0OiAgVGhlIEkvTyBjb250ZXh0CisgKiBAaHR0cF9tdGhkOiBUaGUgSFRUUCBtZXRob2QgdG8gYmUgdXNlZCB3aGVuIHNlbmRpbmcgdGhlIGRhdGEKKyAqCisgKiBDbG9zZSB0aGUgdHJhbnNtaXQgSFRUUCBJL08gY2hhbm5lbCBhbmQgYWN0dWFsbHkgc2VuZCB0aGUgZGF0YS4KKyAqLworc3RhdGljIGludAoreG1sSU9IVFRQQ2xvc2VXcml0ZSggdm9pZCAqIGNvbnRleHQsIGNvbnN0IGNoYXIgKiBodHRwX210aGQgKSB7CisKKyAgICBpbnQJCQkJY2xvc2VfcmMgPSAtMTsKKyAgICBpbnQJCQkJaHR0cF9ydG4gPSAwOworICAgIGludAkJCQljb250ZW50X2xndGggPSAwOworICAgIHhtbElPSFRUUFdyaXRlQ3R4dFB0cgljdHh0ID0gY29udGV4dDsKKworICAgIGNoYXIgKgkJCWh0dHBfY29udGVudCA9IE5VTEw7CisgICAgY2hhciAqCQkJY29udGVudF9lbmNvZGluZyA9IE5VTEw7CisgICAgY2hhciAqCQkJY29udGVudF90eXBlID0gKGNoYXIgKikgInRleHQveG1sIjsKKyAgICB2b2lkICoJCQlodHRwX2N0eHQgPSBOVUxMOworCisgICAgaWYgKCAoIGN0eHQgPT0gTlVMTCApIHx8ICggaHR0cF9tdGhkID09IE5VTEwgKSApCisJcmV0dXJuICggLTEgKTsKKworICAgIC8qICBSZXRyaWV2ZSB0aGUgY29udGVudCBmcm9tIHRoZSBhcHByb3ByaWF0ZSBidWZmZXIgICovCisKKyNpZmRlZiBIQVZFX1pMSUJfSAorCisgICAgaWYgKCBjdHh0LT5jb21wcmVzc2lvbiA+IDAgKSB7CisJY29udGVudF9sZ3RoID0geG1sWk1lbUJ1ZmZHZXRDb250ZW50KCBjdHh0LT5kb2NfYnVmZiwgJmh0dHBfY29udGVudCApOworCWNvbnRlbnRfZW5jb2RpbmcgPSAoY2hhciAqKSAiQ29udGVudC1FbmNvZGluZzogZ3ppcCI7CisgICAgfQorICAgIGVsc2UKKyNlbmRpZgorICAgIHsKKwkvKiAgUHVsbCB0aGUgZGF0YSBvdXQgb2YgdGhlIG1lbW9yeSBvdXRwdXQgYnVmZmVyICAqLworCisJeG1sT3V0cHV0QnVmZmVyUHRyCWRjdHh0ID0gY3R4dC0+ZG9jX2J1ZmY7CisJaHR0cF9jb250ZW50ID0gKGNoYXIgKilkY3R4dC0+YnVmZmVyLT5jb250ZW50OworCWNvbnRlbnRfbGd0aCA9IGRjdHh0LT5idWZmZXItPnVzZTsKKyAgICB9CisKKyAgICBpZiAoIGh0dHBfY29udGVudCA9PSBOVUxMICkgeworCXhtbENoYXIgbXNnWzUwMF07CisJeG1sU3RyUHJpbnRmKG1zZywgNTAwLAorCQkgICAgIChjb25zdCB4bWxDaGFyICopICJ4bWxJT0hUVFBDbG9zZVdyaXRlOiAgJXMgJyVzJyAlcyAnJXMnLlxuIiwKKwkJICAgICAiRXJyb3IgcmV0cmlldmluZyBjb250ZW50LlxuVW5hYmxlIHRvIiwKKwkJICAgICBodHRwX210aGQsICJkYXRhIHRvIFVSSSIsIGN0eHQtPnVyaSApOworCXhtbElPRXJyKFhNTF9JT19XUklURSwgKGNvbnN0IGNoYXIgKikgbXNnKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKworCWh0dHBfY3R4dCA9IHhtbE5hbm9IVFRQTWV0aG9kKCBjdHh0LT51cmksIGh0dHBfbXRoZCwgaHR0cF9jb250ZW50LAorCQkJCQkmY29udGVudF90eXBlLCBjb250ZW50X2VuY29kaW5nLAorCQkJCQljb250ZW50X2xndGggKTsKKworCWlmICggaHR0cF9jdHh0ICE9IE5VTEwgKSB7CisjaWZkZWYgREVCVUdfSFRUUAorCSAgICAvKiAgSWYgdGVzdGluZy9kZWJ1Z2dpbmcgLSBkdW1wIHJlcGx5IHdpdGggcmVxdWVzdCBjb250ZW50ICAqLworCisJICAgIEZJTEUgKgl0c3RfZmlsZSA9IE5VTEw7CisJICAgIGNoYXIJYnVmZmVyWyA0MDk2IF07CisJICAgIGNoYXIgKglkdW1wX25hbWUgPSBOVUxMOworCSAgICBpbnQJCWF2YWlsOworCisJICAgIHhtbEdlbmVyaWNFcnJvciggeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJ4bWxOYW5vSFRUUENsb3NlV3JpdGU6ICBIVFRQICVzIHRvXG4lcyByZXR1cm5lZCAlZC5cbiIsCisJCQlodHRwX210aGQsIGN0eHQtPnVyaSwKKwkJCXhtbE5hbm9IVFRQUmV0dXJuQ29kZSggaHR0cF9jdHh0ICkgKTsKKworCSAgICAvKgorCSAgICAqKiAgU2luY2UgZWl0aGVyIGNvbnRlbnQgb3IgcmVwbHkgbWF5IGJlIGd6aXBwZWQsCisJICAgICoqICBkdW1wIHRoZW0gdG8gc2VwYXJhdGUgZmlsZXMgaW5zdGVhZCBvZiB0aGUKKwkgICAgKiogIHN0YW5kYXJkIGVycm9yIGNvbnRleHQuCisJICAgICovCisKKwkgICAgZHVtcF9uYW1lID0gdGVtcG5hbSggTlVMTCwgImx4bWwiICk7CisJICAgIGlmICggZHVtcF9uYW1lICE9IE5VTEwgKSB7CisJCSh2b2lkKXNucHJpbnRmKCBidWZmZXIsIHNpemVvZihidWZmZXIpLCAiJXMuY29udGVudCIsIGR1bXBfbmFtZSApOworCisJCXRzdF9maWxlID0gZm9wZW4oIGJ1ZmZlciwgIndiIiApOworCQlpZiAoIHRzdF9maWxlICE9IE5VTEwgKSB7CisJCSAgICB4bWxHZW5lcmljRXJyb3IoIHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiVHJhbnNtaXR0ZWQgY29udGVudCBzYXZlZCBpbiBmaWxlOiAgJXNcbiIsIGJ1ZmZlciApOworCisJCSAgICBmd3JpdGUoIGh0dHBfY29udGVudCwgc2l6ZW9mKCBjaGFyICksCisJCQkJCWNvbnRlbnRfbGd0aCwgdHN0X2ZpbGUgKTsKKwkJICAgIGZjbG9zZSggdHN0X2ZpbGUgKTsKKwkJfQorCisJCSh2b2lkKXNucHJpbnRmKCBidWZmZXIsIHNpemVvZihidWZmZXIpLCAiJXMucmVwbHkiLCBkdW1wX25hbWUgKTsKKwkJdHN0X2ZpbGUgPSBmb3BlbiggYnVmZmVyLCAid2IiICk7CisJCWlmICggdHN0X2ZpbGUgIT0gTlVMTCApIHsKKwkJICAgIHhtbEdlbmVyaWNFcnJvciggeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJSZXBseSBjb250ZW50IHNhdmVkIGluIGZpbGU6ICAlc1xuIiwgYnVmZmVyICk7CisKKworCQkgICAgd2hpbGUgKCAoYXZhaWwgPSB4bWxOYW5vSFRUUFJlYWQoIGh0dHBfY3R4dCwKKwkJCQkJYnVmZmVyLCBzaXplb2YoIGJ1ZmZlciApICkpID4gMCApIHsKKworCQkJZndyaXRlKCBidWZmZXIsIHNpemVvZiggY2hhciApLCBhdmFpbCwgdHN0X2ZpbGUgKTsKKwkJICAgIH0KKworCQkgICAgZmNsb3NlKCB0c3RfZmlsZSApOworCQl9CisKKwkJZnJlZSggZHVtcF9uYW1lICk7CisJICAgIH0KKyNlbmRpZiAgLyogIERFQlVHX0hUVFAgICovCisKKwkgICAgaHR0cF9ydG4gPSB4bWxOYW5vSFRUUFJldHVybkNvZGUoIGh0dHBfY3R4dCApOworCSAgICBpZiAoICggaHR0cF9ydG4gPj0gMjAwICkgJiYgKCBodHRwX3J0biA8IDMwMCApICkKKwkJY2xvc2VfcmMgPSAwOworCSAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxDaGFyIG1zZ1s1MDBdOworICAgICAgICAgICAgICAgIHhtbFN0clByaW50Zihtc2csIDUwMCwKKyAgICAoY29uc3QgeG1sQ2hhciAqKSAieG1sSU9IVFRQQ2xvc2VXcml0ZTogSFRUUCAnJXMnIG9mICVkICVzXG4nJXMnICVzICVkXG4iLAorCQkJICAgIGh0dHBfbXRoZCwgY29udGVudF9sZ3RoLAorCQkJICAgICJieXRlcyB0byBVUkkiLCBjdHh0LT51cmksCisJCQkgICAgImZhaWxlZC4gIEhUVFAgcmV0dXJuIGNvZGU6IiwgaHR0cF9ydG4gKTsKKwkJeG1sSU9FcnIoWE1MX0lPX1dSSVRFLCAoY29uc3QgY2hhciAqKSBtc2cpOworICAgICAgICAgICAgfQorCisJICAgIHhtbE5hbm9IVFRQQ2xvc2UoIGh0dHBfY3R4dCApOworCSAgICB4bWxGcmVlKCBjb250ZW50X3R5cGUgKTsKKwl9CisgICAgfQorCisgICAgLyogIEZpbmFsIGNsZWFudXBzICAqLworCisgICAgeG1sRnJlZUhUVFBXcml0ZUN0eHQoIGN0eHQgKTsKKworICAgIHJldHVybiAoIGNsb3NlX3JjICk7Cit9CisKKy8qKgorICogeG1sSU9IVFRQQ2xvc2VQdXQKKyAqCisgKiBAY29udGV4dDogIFRoZSBJL08gY29udGV4dAorICoKKyAqIENsb3NlIHRoZSB0cmFuc21pdCBIVFRQIEkvTyBjaGFubmVsIGFuZCBhY3R1YWxseSBzZW5kIGRhdGEgdXNpbmcgYSBQVVQKKyAqIEhUVFAgbWV0aG9kLgorICovCitzdGF0aWMgaW50Cit4bWxJT0hUVFBDbG9zZVB1dCggdm9pZCAqIGN0eHQgKSB7CisgICAgcmV0dXJuICggeG1sSU9IVFRQQ2xvc2VXcml0ZSggY3R4dCwgIlBVVCIgKSApOworfQorCisKKy8qKgorICogeG1sSU9IVFRQQ2xvc2VQb3N0CisgKgorICogQGNvbnRleHQ6ICBUaGUgSS9PIGNvbnRleHQKKyAqCisgKiBDbG9zZSB0aGUgdHJhbnNtaXQgSFRUUCBJL08gY2hhbm5lbCBhbmQgYWN0dWFsbHkgc2VuZCBkYXRhIHVzaW5nIGEgUE9TVAorICogSFRUUCBtZXRob2QuCisgKi8KK3N0YXRpYyBpbnQKK3htbElPSFRUUENsb3NlUG9zdCggdm9pZCAqIGN0eHQgKSB7CisgICAgcmV0dXJuICggeG1sSU9IVFRQQ2xvc2VXcml0ZSggY3R4dCwgIlBPU1QiICkgKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworI2VuZGlmIC8qIExJQlhNTF9IVFRQX0VOQUJMRUQgKi8KKworI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUkvTyBmb3IgRlRQIGZpbGUgYWNjZXNzZXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIHhtbElPRlRQTWF0Y2g6CisgKiBAZmlsZW5hbWU6ICB0aGUgVVJJIGZvciBtYXRjaGluZworICoKKyAqIGNoZWNrIGlmIHRoZSBVUkkgbWF0Y2hlcyBhbiBGVFAgb25lCisgKgorICogUmV0dXJucyAxIGlmIG1hdGNoZXMsIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sSU9GVFBNYXRjaCAoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICBpZiAoIXhtbFN0cm5jYXNlY21wKEJBRF9DQVNUIGZpbGVuYW1lLCBCQURfQ0FTVCAiZnRwOi8vIiwgNikpCisJcmV0dXJuKDEpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxJT0ZUUE9wZW46CisgKiBAZmlsZW5hbWU6ICB0aGUgVVJJIGZvciBtYXRjaGluZworICoKKyAqIG9wZW4gYW4gRlRQIEkvTyBjaGFubmVsCisgKgorICogUmV0dXJucyBhbiBJL08gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLwordm9pZCAqCit4bWxJT0ZUUE9wZW4gKGNvbnN0IGNoYXIgKmZpbGVuYW1lKSB7CisgICAgcmV0dXJuKHhtbE5hbm9GVFBPcGVuKGZpbGVuYW1lKSk7Cit9CisKKy8qKgorICogeG1sSU9GVFBSZWFkOgorICogQGNvbnRleHQ6ICB0aGUgSS9PIGNvbnRleHQKKyAqIEBidWZmZXI6ICB3aGVyZSB0byBkcm9wIGRhdGEKKyAqIEBsZW46ICBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUKKyAqCisgKiBSZWFkIEBsZW4gYnl0ZXMgdG8gQGJ1ZmZlciBmcm9tIHRoZSBJL08gY2hhbm5lbC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbgorICovCitpbnQKK3htbElPRlRQUmVhZCh2b2lkICogY29udGV4dCwgY2hhciAqIGJ1ZmZlciwgaW50IGxlbikgeworICAgIGlmICgoYnVmZmVyID09IE5VTEwpIHx8IChsZW4gPCAwKSkgcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oeG1sTmFub0ZUUFJlYWQoY29udGV4dCwgJmJ1ZmZlclswXSwgbGVuKSk7Cit9CisKKy8qKgorICogeG1sSU9GVFBDbG9zZToKKyAqIEBjb250ZXh0OiAgdGhlIEkvTyBjb250ZXh0CisgKgorICogQ2xvc2UgYW4gRlRQIEkvTyBjaGFubmVsCisgKgorICogUmV0dXJucyAwCisgKi8KK2ludAoreG1sSU9GVFBDbG9zZSAodm9pZCAqIGNvbnRleHQpIHsKKyAgICByZXR1cm4gKCB4bWxOYW5vRlRQQ2xvc2UoY29udGV4dCkgKTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfRlRQX0VOQUJMRUQgKi8KKworCisvKioKKyAqIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3M6CisgKiBAbWF0Y2hGdW5jOiAgdGhlIHhtbElucHV0TWF0Y2hDYWxsYmFjaworICogQG9wZW5GdW5jOiAgdGhlIHhtbElucHV0T3BlbkNhbGxiYWNrCisgKiBAcmVhZEZ1bmM6ICB0aGUgeG1sSW5wdXRSZWFkQ2FsbGJhY2sKKyAqIEBjbG9zZUZ1bmM6ICB0aGUgeG1sSW5wdXRDbG9zZUNhbGxiYWNrCisgKgorICogUmVnaXN0ZXIgYSBuZXcgc2V0IG9mIEkvTyBjYWxsYmFjayBmb3IgaGFuZGxpbmcgcGFyc2VyIGlucHV0LgorICoKKyAqIFJldHVybnMgdGhlIHJlZ2lzdGVyZWQgaGFuZGxlciBudW1iZXIgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MoeG1sSW5wdXRNYXRjaENhbGxiYWNrIG1hdGNoRnVuYywKKwl4bWxJbnB1dE9wZW5DYWxsYmFjayBvcGVuRnVuYywgeG1sSW5wdXRSZWFkQ2FsbGJhY2sgcmVhZEZ1bmMsCisJeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGNsb3NlRnVuYykgeworICAgIGlmICh4bWxJbnB1dENhbGxiYWNrTnIgPj0gTUFYX0lOUFVUX0NBTExCQUNLKSB7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgeG1sSW5wdXRDYWxsYmFja1RhYmxlW3htbElucHV0Q2FsbGJhY2tOcl0ubWF0Y2hjYWxsYmFjayA9IG1hdGNoRnVuYzsKKyAgICB4bWxJbnB1dENhbGxiYWNrVGFibGVbeG1sSW5wdXRDYWxsYmFja05yXS5vcGVuY2FsbGJhY2sgPSBvcGVuRnVuYzsKKyAgICB4bWxJbnB1dENhbGxiYWNrVGFibGVbeG1sSW5wdXRDYWxsYmFja05yXS5yZWFkY2FsbGJhY2sgPSByZWFkRnVuYzsKKyAgICB4bWxJbnB1dENhbGxiYWNrVGFibGVbeG1sSW5wdXRDYWxsYmFja05yXS5jbG9zZWNhbGxiYWNrID0gY2xvc2VGdW5jOworICAgIHhtbElucHV0Q2FsbGJhY2tJbml0aWFsaXplZCA9IDE7CisgICAgcmV0dXJuKHhtbElucHV0Q2FsbGJhY2tOcisrKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxSZWdpc3Rlck91dHB1dENhbGxiYWNrczoKKyAqIEBtYXRjaEZ1bmM6ICB0aGUgeG1sT3V0cHV0TWF0Y2hDYWxsYmFjaworICogQG9wZW5GdW5jOiAgdGhlIHhtbE91dHB1dE9wZW5DYWxsYmFjaworICogQHdyaXRlRnVuYzogIHRoZSB4bWxPdXRwdXRXcml0ZUNhbGxiYWNrCisgKiBAY2xvc2VGdW5jOiAgdGhlIHhtbE91dHB1dENsb3NlQ2FsbGJhY2sKKyAqCisgKiBSZWdpc3RlciBhIG5ldyBzZXQgb2YgSS9PIGNhbGxiYWNrIGZvciBoYW5kbGluZyBvdXRwdXQuCisgKgorICogUmV0dXJucyB0aGUgcmVnaXN0ZXJlZCBoYW5kbGVyIG51bWJlciBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MoeG1sT3V0cHV0TWF0Y2hDYWxsYmFjayBtYXRjaEZ1bmMsCisJeG1sT3V0cHV0T3BlbkNhbGxiYWNrIG9wZW5GdW5jLCB4bWxPdXRwdXRXcml0ZUNhbGxiYWNrIHdyaXRlRnVuYywKKwl4bWxPdXRwdXRDbG9zZUNhbGxiYWNrIGNsb3NlRnVuYykgeworICAgIGlmICh4bWxPdXRwdXRDYWxsYmFja05yID49IE1BWF9PVVRQVVRfQ0FMTEJBQ0spIHsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB4bWxPdXRwdXRDYWxsYmFja1RhYmxlW3htbE91dHB1dENhbGxiYWNrTnJdLm1hdGNoY2FsbGJhY2sgPSBtYXRjaEZ1bmM7CisgICAgeG1sT3V0cHV0Q2FsbGJhY2tUYWJsZVt4bWxPdXRwdXRDYWxsYmFja05yXS5vcGVuY2FsbGJhY2sgPSBvcGVuRnVuYzsKKyAgICB4bWxPdXRwdXRDYWxsYmFja1RhYmxlW3htbE91dHB1dENhbGxiYWNrTnJdLndyaXRlY2FsbGJhY2sgPSB3cml0ZUZ1bmM7CisgICAgeG1sT3V0cHV0Q2FsbGJhY2tUYWJsZVt4bWxPdXRwdXRDYWxsYmFja05yXS5jbG9zZWNhbGxiYWNrID0gY2xvc2VGdW5jOworICAgIHhtbE91dHB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPSAxOworICAgIHJldHVybih4bWxPdXRwdXRDYWxsYmFja05yKyspOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzOgorICoKKyAqIFJlZ2lzdGVycyB0aGUgZGVmYXVsdCBjb21waWxlZC1pbiBJL08gaGFuZGxlcnMuCisgKi8KK3ZvaWQKK3htbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzKHZvaWQpIHsKKyAgICBpZiAoeG1sSW5wdXRDYWxsYmFja0luaXRpYWxpemVkKQorCXJldHVybjsKKworI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pICYmICFkZWZpbmVkIChfX0NZR1dJTl9fKQorICAgIHhtbEluaXRQbGF0Zm9ybVNwZWNpZmljSW8oKTsKKyNlbmRpZgorCisgICAgeG1sUmVnaXN0ZXJJbnB1dENhbGxiYWNrcyh4bWxGaWxlTWF0Y2gsIHhtbEZpbGVPcGVuLAorCSAgICAgICAgICAgICAgICAgICAgICB4bWxGaWxlUmVhZCwgeG1sRmlsZUNsb3NlKTsKKyNpZmRlZiBIQVZFX1pMSUJfSAorICAgIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MoeG1sR3pmaWxlTWF0Y2gsIHhtbEd6ZmlsZU9wZW4sCisJICAgICAgICAgICAgICAgICAgICAgIHhtbEd6ZmlsZVJlYWQsIHhtbEd6ZmlsZUNsb3NlKTsKKyNlbmRpZiAvKiBIQVZFX1pMSUJfSCAqLworCisjaWZkZWYgTElCWE1MX0hUVFBfRU5BQkxFRAorICAgIHhtbFJlZ2lzdGVySW5wdXRDYWxsYmFja3MoeG1sSU9IVFRQTWF0Y2gsIHhtbElPSFRUUE9wZW4sCisJICAgICAgICAgICAgICAgICAgICAgIHhtbElPSFRUUFJlYWQsIHhtbElPSFRUUENsb3NlKTsKKyNlbmRpZiAvKiBMSUJYTUxfSFRUUF9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfRlRQX0VOQUJMRUQKKyAgICB4bWxSZWdpc3RlcklucHV0Q2FsbGJhY2tzKHhtbElPRlRQTWF0Y2gsIHhtbElPRlRQT3BlbiwKKwkgICAgICAgICAgICAgICAgICAgICAgeG1sSU9GVFBSZWFkLCB4bWxJT0ZUUENsb3NlKTsKKyNlbmRpZiAvKiBMSUJYTUxfRlRQX0VOQUJMRUQgKi8KKyAgICB4bWxJbnB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPSAxOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrczoKKyAqCisgKiBSZWdpc3RlcnMgdGhlIGRlZmF1bHQgY29tcGlsZWQtaW4gSS9PIGhhbmRsZXJzLgorICovCit2b2lkCit4bWxSZWdpc3RlckRlZmF1bHRPdXRwdXRDYWxsYmFja3MgKHZvaWQpIHsKKyAgICBpZiAoeG1sT3V0cHV0Q2FsbGJhY2tJbml0aWFsaXplZCkKKwlyZXR1cm47CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKyAgICB4bWxJbml0UGxhdGZvcm1TcGVjaWZpY0lvKCk7CisjZW5kaWYKKworICAgIHhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzKHhtbEZpbGVNYXRjaCwgeG1sRmlsZU9wZW5XLAorCSAgICAgICAgICAgICAgICAgICAgICB4bWxGaWxlV3JpdGUsIHhtbEZpbGVDbG9zZSk7CisKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECisgICAgeG1sUmVnaXN0ZXJPdXRwdXRDYWxsYmFja3MoeG1sSU9IVFRQTWF0Y2gsIHhtbElPSFRUUERmbHRPcGVuVywKKwkgICAgICAgICAgICAgICAgICAgICAgIHhtbElPSFRUUFdyaXRlLCB4bWxJT0hUVFBDbG9zZVB1dCk7CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIE5vIHdheSBhLXByaW9yaSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGd6aXBwZWQgZmlsZXMgZnJvbQorIHVuY29tcHJlc3NlZCBvbmVzIGV4Y2VwdCBvcGVuaW5nIGlmIGV4aXN0aW5nIHRoZW4gY2xvc2luZworIGFuZCBzYXZpbmcgd2l0aCBzYW1lIGNvbXByZXNzaW9uIHJhdGlvIC4uLiBhIHBhaW4uCisKKyNpZmRlZiBIQVZFX1pMSUJfSAorICAgIHhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzKHhtbEd6ZmlsZU1hdGNoLCB4bWxHemZpbGVPcGVuLAorCSAgICAgICAgICAgICAgICAgICAgICAgeG1sR3pmaWxlV3JpdGUsIHhtbEd6ZmlsZUNsb3NlKTsKKyNlbmRpZgorCisgTm9yIEZUUCBQVVQgLi4uLgorI2lmZGVmIExJQlhNTF9GVFBfRU5BQkxFRAorICAgIHhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzKHhtbElPRlRQTWF0Y2gsIHhtbElPRlRQT3BlbiwKKwkgICAgICAgICAgICAgICAgICAgICAgIHhtbElPRlRQV3JpdGUsIHhtbElPRlRQQ2xvc2UpOworI2VuZGlmCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICB4bWxPdXRwdXRDYWxsYmFja0luaXRpYWxpemVkID0gMTsKK30KKworI2lmZGVmIExJQlhNTF9IVFRQX0VOQUJMRUQKKy8qKgorICogeG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrczoKKyAqCisgKiBCeSBkZWZhdWx0LCBsaWJ4bWwgc3VibWl0cyBIVFRQIG91dHB1dCByZXF1ZXN0cyB1c2luZyB0aGUgIlBVVCIgbWV0aG9kLgorICogQ2FsbGluZyB0aGlzIG1ldGhvZCBjaGFuZ2VzIHRoZSBIVFRQIG91dHB1dCBtZXRob2QgdG8gdXNlIHRoZSAiUE9TVCIKKyAqIG1ldGhvZCBpbnN0ZWFkLgorICoKKyAqLwordm9pZAoreG1sUmVnaXN0ZXJIVFRQUG9zdENhbGxiYWNrcyggdm9pZCApIHsKKworICAgIC8qICBSZWdpc3RlciBkZWZhdWx0cyBpZiBub3QgZG9uZSBwcmV2aW91c2x5ICAqLworCisgICAgaWYgKCB4bWxPdXRwdXRDYWxsYmFja0luaXRpYWxpemVkID09IDAgKQorCXhtbFJlZ2lzdGVyRGVmYXVsdE91dHB1dENhbGxiYWNrcyggKTsKKworICAgIHhtbFJlZ2lzdGVyT3V0cHV0Q2FsbGJhY2tzKHhtbElPSFRUUE1hdGNoLCB4bWxJT0hUVFBEZmx0T3BlblcsCisJICAgICAgICAgICAgICAgICAgICAgICB4bWxJT0hUVFBXcml0ZSwgeG1sSU9IVFRQQ2xvc2VQb3N0KTsKKyAgICByZXR1cm47Cit9CisjZW5kaWYKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyOgorICogQGVuYzogIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duCisgKgorICogQ3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciBwcm9ncmVzc2l2ZSBwYXJzaW5nCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMCisgKi8KK3htbFBhcnNlcklucHV0QnVmZmVyUHRyCit4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyKHhtbENoYXJFbmNvZGluZyBlbmMpIHsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUGFyc2VySW5wdXRCdWZmZXIpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxJT0Vyck1lbW9yeSgiY3JlYXRpbmcgaW5wdXQgYnVmZmVyIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCAoc2l6ZV90KSBzaXplb2YoeG1sUGFyc2VySW5wdXRCdWZmZXIpKTsKKyAgICByZXQtPmJ1ZmZlciA9IHhtbEJ1ZmZlckNyZWF0ZVNpemUoMiAqIHhtbERlZmF1bHRCdWZmZXJTaXplKTsKKyAgICBpZiAocmV0LT5idWZmZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlKHJldCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXQtPmJ1ZmZlci0+YWxsb2MgPSBYTUxfQlVGRkVSX0FMTE9DX0RPVUJMRUlUOworICAgIHJldC0+ZW5jb2RlciA9IHhtbEdldENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jKTsKKyAgICBpZiAocmV0LT5lbmNvZGVyICE9IE5VTEwpCisgICAgICAgIHJldC0+cmF3ID0geG1sQnVmZmVyQ3JlYXRlU2l6ZSgyICogeG1sRGVmYXVsdEJ1ZmZlclNpemUpOworICAgIGVsc2UKKyAgICAgICAgcmV0LT5yYXcgPSBOVUxMOworICAgIHJldC0+cmVhZGNhbGxiYWNrID0gTlVMTDsKKyAgICByZXQtPmNsb3NlY2FsbGJhY2sgPSBOVUxMOworICAgIHJldC0+Y29udGV4dCA9IE5VTEw7CisgICAgcmV0LT5jb21wcmVzc2VkID0gLTE7CisgICAgcmV0LT5yYXdjb25zdW1lZCA9IDA7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxBbGxvY091dHB1dEJ1ZmZlcjoKKyAqIEBlbmNvZGVyOiAgdGhlIGVuY29kaW5nIGNvbnZlcnRlciBvciBOVUxMCisgKgorICogQ3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIG91dHB1dAorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEwKKyAqLworeG1sT3V0cHV0QnVmZmVyUHRyCit4bWxBbGxvY091dHB1dEJ1ZmZlcih4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXIpIHsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbE91dHB1dEJ1ZmZlclB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxPdXRwdXRCdWZmZXIpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxJT0Vyck1lbW9yeSgiY3JlYXRpbmcgb3V0cHV0IGJ1ZmZlciIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgKHNpemVfdCkgc2l6ZW9mKHhtbE91dHB1dEJ1ZmZlcikpOworICAgIHJldC0+YnVmZmVyID0geG1sQnVmZmVyQ3JlYXRlKCk7CisgICAgaWYgKHJldC0+YnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShyZXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKiB0cnkgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBwcm9ibGVtIHdpdGggV2luZG93cyByZWFsbG9jKCkgKi8KKyAgICBpZiAocmV0LT5idWZmZXItPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfRVhBQ1QpCisgICAgICAgIHJldC0+YnVmZmVyLT5hbGxvYyA9IFhNTF9CVUZGRVJfQUxMT0NfRE9VQkxFSVQ7CisKKyAgICByZXQtPmVuY29kZXIgPSBlbmNvZGVyOworICAgIGlmIChlbmNvZGVyICE9IE5VTEwpIHsKKyAgICAgICAgcmV0LT5jb252ID0geG1sQnVmZmVyQ3JlYXRlU2l6ZSg0MDAwKTsKKwlpZiAocmV0LT5jb252ID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZShyZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCisJLyoKKwkgKiBUaGlzIGNhbGwgaXMgZGVzaWduZWQgdG8gaW5pdGlhdGUgdGhlIGVuY29kZXIgc3RhdGUKKwkgKi8KKwl4bWxDaGFyRW5jT3V0RnVuYyhlbmNvZGVyLCByZXQtPmNvbnYsIE5VTEwpOworICAgIH0gZWxzZQorICAgICAgICByZXQtPmNvbnYgPSBOVUxMOworICAgIHJldC0+d3JpdGVjYWxsYmFjayA9IE5VTEw7CisgICAgcmV0LT5jbG9zZWNhbGxiYWNrID0gTlVMTDsKKyAgICByZXQtPmNvbnRleHQgPSBOVUxMOworICAgIHJldC0+d3JpdHRlbiA9IDA7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxBbGxvY091dHB1dEJ1ZmZlckludGVybmFsOgorICogQGVuY29kZXI6ICB0aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEwKKyAqCisgKiBDcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgb3V0cHV0CisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTAorICovCit4bWxPdXRwdXRCdWZmZXJQdHIKK3htbEFsbG9jT3V0cHV0QnVmZmVySW50ZXJuYWwoeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxPdXRwdXRCdWZmZXJQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sT3V0cHV0QnVmZmVyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sSU9FcnJNZW1vcnkoImNyZWF0aW5nIG91dHB1dCBidWZmZXIiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIChzaXplX3QpIHNpemVvZih4bWxPdXRwdXRCdWZmZXIpKTsKKyAgICByZXQtPmJ1ZmZlciA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgIGlmIChyZXQtPmJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWUocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisKKyAgICAvKgorICAgICAqIEZvciBjb252ZXJzaW9uIGJ1ZmZlcnMgd2UgdXNlIHRoZSBzcGVjaWFsIElPIGhhbmRsaW5nCisgICAgICogV2UgZG9uJ3QgZG8gdGhhdCBmcm9tIHRoZSBleHBvcnRlZCBBUEkgdG8gYXZvaWQgY29uZnVzaW5nCisgICAgICogdXNlcidzIGNvZGUuCisgICAgICovCisgICAgcmV0LT5idWZmZXItPmFsbG9jID0gWE1MX0JVRkZFUl9BTExPQ19JTzsKKyAgICByZXQtPmJ1ZmZlci0+Y29udGVudElPID0gcmV0LT5idWZmZXItPmNvbnRlbnQ7CisKKyAgICByZXQtPmVuY29kZXIgPSBlbmNvZGVyOworICAgIGlmIChlbmNvZGVyICE9IE5VTEwpIHsKKyAgICAgICAgcmV0LT5jb252ID0geG1sQnVmZmVyQ3JlYXRlU2l6ZSg0MDAwKTsKKwlpZiAocmV0LT5jb252ID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZShyZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCisJLyoKKwkgKiBUaGlzIGNhbGwgaXMgZGVzaWduZWQgdG8gaW5pdGlhdGUgdGhlIGVuY29kZXIgc3RhdGUKKwkgKi8KKwl4bWxDaGFyRW5jT3V0RnVuYyhlbmNvZGVyLCByZXQtPmNvbnYsIE5VTEwpOworICAgIH0gZWxzZQorICAgICAgICByZXQtPmNvbnYgPSBOVUxMOworICAgIHJldC0+d3JpdGVjYWxsYmFjayA9IE5VTEw7CisgICAgcmV0LT5jbG9zZWNhbGxiYWNrID0gTlVMTDsKKyAgICByZXQtPmNvbnRleHQgPSBOVUxMOworICAgIHJldC0+d3JpdHRlbiA9IDA7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcjoKKyAqIEBpbjogIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0CisgKgorICogRnJlZSB1cCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQKKyAqLwordm9pZAoreG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGluKSB7CisgICAgaWYgKGluID09IE5VTEwpIHJldHVybjsKKworICAgIGlmIChpbi0+cmF3KSB7CisgICAgICAgIHhtbEJ1ZmZlckZyZWUoaW4tPnJhdyk7CisJaW4tPnJhdyA9IE5VTEw7CisgICAgfQorICAgIGlmIChpbi0+ZW5jb2RlciAhPSBOVUxMKSB7CisgICAgICAgIHhtbENoYXJFbmNDbG9zZUZ1bmMoaW4tPmVuY29kZXIpOworICAgIH0KKyAgICBpZiAoaW4tPmNsb3NlY2FsbGJhY2sgIT0gTlVMTCkgeworCWluLT5jbG9zZWNhbGxiYWNrKGluLT5jb250ZXh0KTsKKyAgICB9CisgICAgaWYgKGluLT5idWZmZXIgIT0gTlVMTCkgeworICAgICAgICB4bWxCdWZmZXJGcmVlKGluLT5idWZmZXIpOworCWluLT5idWZmZXIgPSBOVUxMOworICAgIH0KKworICAgIHhtbEZyZWUoaW4pOworfQorCisjaWZkZWYgTElCWE1MX09VVFBVVF9FTkFCTEVECisvKioKKyAqIHhtbE91dHB1dEJ1ZmZlckNsb3NlOgorICogQG91dDogIGEgYnVmZmVyZWQgb3V0cHV0CisgKgorICogZmx1c2hlcyBhbmQgY2xvc2UgdGhlIG91dHB1dCBJL08gY2hhbm5lbAorICogYW5kIGZyZWUgdXAgYWxsIHRoZSBhc3NvY2lhdGVkIHJlc291cmNlcworICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxPdXRwdXRCdWZmZXJDbG9zZSh4bWxPdXRwdXRCdWZmZXJQdHIgb3V0KQoreworICAgIGludCB3cml0dGVuOworICAgIGludCBlcnJfcmMgPSAwOworCisgICAgaWYgKG91dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBpZiAob3V0LT53cml0ZWNhbGxiYWNrICE9IE5VTEwpCisgICAgICAgIHhtbE91dHB1dEJ1ZmZlckZsdXNoKG91dCk7CisgICAgaWYgKG91dC0+Y2xvc2VjYWxsYmFjayAhPSBOVUxMKSB7CisgICAgICAgIGVycl9yYyA9IG91dC0+Y2xvc2VjYWxsYmFjayhvdXQtPmNvbnRleHQpOworICAgIH0KKyAgICB3cml0dGVuID0gb3V0LT53cml0dGVuOworICAgIGlmIChvdXQtPmNvbnYpIHsKKyAgICAgICAgeG1sQnVmZmVyRnJlZShvdXQtPmNvbnYpOworICAgICAgICBvdXQtPmNvbnYgPSBOVUxMOworICAgIH0KKyAgICBpZiAob3V0LT5lbmNvZGVyICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQ2hhckVuY0Nsb3NlRnVuYyhvdXQtPmVuY29kZXIpOworICAgIH0KKyAgICBpZiAob3V0LT5idWZmZXIgIT0gTlVMTCkgeworICAgICAgICB4bWxCdWZmZXJGcmVlKG91dC0+YnVmZmVyKTsKKyAgICAgICAgb3V0LT5idWZmZXIgPSBOVUxMOworICAgIH0KKworICAgIGlmIChvdXQtPmVycm9yKQorICAgICAgICBlcnJfcmMgPSAtMTsKKyAgICB4bWxGcmVlKG91dCk7CisgICAgcmV0dXJuICgoZXJyX3JjID09IDApID8gd3JpdHRlbiA6IGVycl9yYyk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKK3htbFBhcnNlcklucHV0QnVmZmVyUHRyCitfX3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoY29uc3QgY2hhciAqVVJJLCB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0OworICAgIGludCBpID0gMDsKKyAgICB2b2lkICpjb250ZXh0ID0gTlVMTDsKKworICAgIGlmICh4bWxJbnB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPT0gMCkKKwl4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcygpOworCisgICAgaWYgKFVSSSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIFRyeSB0byBmaW5kIG9uZSBvZiB0aGUgaW5wdXQgYWNjZXB0IG1ldGhvZCBhY2NlcHRpbmcgdGhhdCBzY2hlbWUKKyAgICAgKiBHbyBpbiByZXZlcnNlIHRvIGdpdmUgcHJlY2VkZW5jZSB0byB1c2VyIGRlZmluZWQgaGFuZGxlcnMuCisgICAgICovCisgICAgaWYgKGNvbnRleHQgPT0gTlVMTCkgeworCWZvciAoaSA9IHhtbElucHV0Q2FsbGJhY2tOciAtIDE7aSA+PSAwO2ktLSkgeworCSAgICBpZiAoKHhtbElucHV0Q2FsbGJhY2tUYWJsZVtpXS5tYXRjaGNhbGxiYWNrICE9IE5VTEwpICYmCisJCSh4bWxJbnB1dENhbGxiYWNrVGFibGVbaV0ubWF0Y2hjYWxsYmFjayhVUkkpICE9IDApKSB7CisJCWNvbnRleHQgPSB4bWxJbnB1dENhbGxiYWNrVGFibGVbaV0ub3BlbmNhbGxiYWNrKFVSSSk7CisJCWlmIChjb250ZXh0ICE9IE5VTEwpIHsKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmIChjb250ZXh0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSB0aGUgSW5wdXQgYnVmZmVyIGZyb250LWVuZC4KKyAgICAgKi8KKyAgICByZXQgPSB4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyKGVuYyk7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJcmV0LT5jb250ZXh0ID0gY29udGV4dDsKKwlyZXQtPnJlYWRjYWxsYmFjayA9IHhtbElucHV0Q2FsbGJhY2tUYWJsZVtpXS5yZWFkY2FsbGJhY2s7CisJcmV0LT5jbG9zZWNhbGxiYWNrID0geG1sSW5wdXRDYWxsYmFja1RhYmxlW2ldLmNsb3NlY2FsbGJhY2s7CisjaWZkZWYgSEFWRV9aTElCX0gKKwlpZiAoKHhtbElucHV0Q2FsbGJhY2tUYWJsZVtpXS5vcGVuY2FsbGJhY2sgPT0geG1sR3pmaWxlT3BlbikgJiYKKwkJKHN0cmNtcChVUkksICItIikgIT0gMCkpIHsKKyNpZiBkZWZpbmVkKFpMSUJfVkVSTlVNKSAmJiBaTElCX1ZFUk5VTSA+PSAweDEyMzAKKyAgICAgICAgICAgIHJldC0+Y29tcHJlc3NlZCA9ICFnemRpcmVjdChjb250ZXh0KTsKKyNlbHNlCisJICAgIGlmICgoKHpfc3RyZWFtICopY29udGV4dCktPmF2YWlsX2luID4gNCkgeworCSAgICAgICAgY2hhciAqY3B0ciwgYnVmZjRbNF07CisJCWNwdHIgPSAoY2hhciAqKSAoKHpfc3RyZWFtICopY29udGV4dCktPm5leHRfaW47CisJCWlmIChnenJlYWQoY29udGV4dCwgYnVmZjQsIDQpID09IDQpIHsKKwkJICAgIGlmIChzdHJuY21wKGJ1ZmY0LCBjcHRyLCA0KSA9PSAwKQorCQkgICAgICAgIHJldC0+Y29tcHJlc3NlZCA9IDA7CisJCSAgICBlbHNlCisJCSAgICAgICAgcmV0LT5jb21wcmVzc2VkID0gMTsKKwkJICAgIGd6cmV3aW5kKGNvbnRleHQpOworCQl9CisJICAgIH0KKyNlbmRpZgorCX0KKyNlbmRpZgorICAgIH0KKyAgICBlbHNlCisgICAgICB4bWxJbnB1dENhbGxiYWNrVGFibGVbaV0uY2xvc2VjYWxsYmFjayAoY29udGV4dCk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lOgorICogQFVSSTogIGEgQyBzdHJpbmcgY29udGFpbmluZyB0aGUgVVJJIG9yIGZpbGVuYW1lCisgKiBAZW5jOiAgdGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24KKyAqCisgKiBDcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIG9mIGEgZmlsZQorICogSWYgZmlsZW5hbWUgaXMgIi0nIHRoZW4gd2UgdXNlIHN0ZGluIGFzIHRoZSBpbnB1dC4KKyAqIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQKKyAqIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLgorICogRG8gYW4gZW5jb2RpbmcgY2hlY2sgaWYgZW5jID09IFhNTF9DSEFSX0VOQ09ESU5HX05PTkUKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEwKKyAqLworeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIKK3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoY29uc3QgY2hhciAqVVJJLCB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgaWYgKCh4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUpKSB7CisJCXJldHVybiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUoVVJJLCBlbmMpOworCX0KKwlyZXR1cm4gX194bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKFVSSSwgZW5jKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAoreG1sT3V0cHV0QnVmZmVyUHRyCitfX3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKGNvbnN0IGNoYXIgKlVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgZW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wcmVzc2lvbiBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldDsKKyAgICB4bWxVUklQdHIgcHVyaTsKKyAgICBpbnQgaSA9IDA7CisgICAgdm9pZCAqY29udGV4dCA9IE5VTEw7CisgICAgY2hhciAqdW5lc2NhcGVkID0gTlVMTDsKKyNpZmRlZiBIQVZFX1pMSUJfSAorICAgIGludCBpc19maWxlX3VyaSA9IDE7CisjZW5kaWYKKworICAgIGlmICh4bWxPdXRwdXRDYWxsYmFja0luaXRpYWxpemVkID09IDApCisJeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzKCk7CisKKyAgICBpZiAoVVJJID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHB1cmkgPSB4bWxQYXJzZVVSSShVUkkpOworICAgIGlmIChwdXJpICE9IE5VTEwpIHsKKyNpZmRlZiBIQVZFX1pMSUJfSAorICAgICAgICBpZiAoKHB1cmktPnNjaGVtZSAhPSBOVUxMKSAmJgorCSAgICAoIXhtbFN0ckVxdWFsKEJBRF9DQVNUIHB1cmktPnNjaGVtZSwgQkFEX0NBU1QgImZpbGUiKSkpCisJICAgIGlzX2ZpbGVfdXJpID0gMDsKKyNlbmRpZgorCS8qCisJICogdHJ5IHRvIGxpbWl0IHRoZSBkYW1hZ2VzIG9mIHRoZSBVUkkgdW5lc2NhcGluZyBjb2RlLgorCSAqLworCWlmICgocHVyaS0+c2NoZW1lID09IE5VTEwpIHx8CisJICAgICh4bWxTdHJFcXVhbChCQURfQ0FTVCBwdXJpLT5zY2hlbWUsIEJBRF9DQVNUICJmaWxlIikpKQorCSAgICB1bmVzY2FwZWQgPSB4bWxVUklVbmVzY2FwZVN0cmluZyhVUkksIDAsIE5VTEwpOworCXhtbEZyZWVVUkkocHVyaSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUcnkgdG8gZmluZCBvbmUgb2YgdGhlIG91dHB1dCBhY2NlcHQgbWV0aG9kIGFjY2VwdGluZyB0aGF0IHNjaGVtZQorICAgICAqIEdvIGluIHJldmVyc2UgdG8gZ2l2ZSBwcmVjZWRlbmNlIHRvIHVzZXIgZGVmaW5lZCBoYW5kbGVycy4KKyAgICAgKiB0cnkgd2l0aCBhbiB1bmVzY2FwZWQgdmVyc2lvbiBvZiB0aGUgVVJJCisgICAgICovCisgICAgaWYgKHVuZXNjYXBlZCAhPSBOVUxMKSB7CisjaWZkZWYgSEFWRV9aTElCX0gKKwlpZiAoKGNvbXByZXNzaW9uID4gMCkgJiYgKGNvbXByZXNzaW9uIDw9IDkpICYmIChpc19maWxlX3VyaSA9PSAxKSkgeworCSAgICBjb250ZXh0ID0geG1sR3pmaWxlT3BlblcodW5lc2NhcGVkLCBjb21wcmVzc2lvbik7CisJICAgIGlmIChjb250ZXh0ICE9IE5VTEwpIHsKKwkJcmV0ID0geG1sQWxsb2NPdXRwdXRCdWZmZXJJbnRlcm5hbChlbmNvZGVyKTsKKwkJaWYgKHJldCAhPSBOVUxMKSB7CisJCSAgICByZXQtPmNvbnRleHQgPSBjb250ZXh0OworCQkgICAgcmV0LT53cml0ZWNhbGxiYWNrID0geG1sR3pmaWxlV3JpdGU7CisJCSAgICByZXQtPmNsb3NlY2FsbGJhY2sgPSB4bWxHemZpbGVDbG9zZTsKKwkJfQorCQl4bWxGcmVlKHVuZXNjYXBlZCk7CisJCXJldHVybihyZXQpOworCSAgICB9CisJfQorI2VuZGlmCisJZm9yIChpID0geG1sT3V0cHV0Q2FsbGJhY2tOciAtIDE7aSA+PSAwO2ktLSkgeworCSAgICBpZiAoKHhtbE91dHB1dENhbGxiYWNrVGFibGVbaV0ubWF0Y2hjYWxsYmFjayAhPSBOVUxMKSAmJgorCQkoeG1sT3V0cHV0Q2FsbGJhY2tUYWJsZVtpXS5tYXRjaGNhbGxiYWNrKHVuZXNjYXBlZCkgIT0gMCkpIHsKKyNpZiBkZWZpbmVkKExJQlhNTF9IVFRQX0VOQUJMRUQpICYmIGRlZmluZWQoSEFWRV9aTElCX0gpCisJCS8qICBOZWVkIHRvIHBhc3MgY29tcHJlc3Npb24gcGFyYW1ldGVyIGludG8gSFRUUCBvcGVuIGNhbGxzICAqLworCQlpZiAoeG1sT3V0cHV0Q2FsbGJhY2tUYWJsZVtpXS5tYXRjaGNhbGxiYWNrID09IHhtbElPSFRUUE1hdGNoKQorCQkgICAgY29udGV4dCA9IHhtbElPSFRUUE9wZW5XKHVuZXNjYXBlZCwgY29tcHJlc3Npb24pOworCQllbHNlCisjZW5kaWYKKwkJICAgIGNvbnRleHQgPSB4bWxPdXRwdXRDYWxsYmFja1RhYmxlW2ldLm9wZW5jYWxsYmFjayh1bmVzY2FwZWQpOworCQlpZiAoY29udGV4dCAhPSBOVUxMKQorCQkgICAgYnJlYWs7CisJICAgIH0KKwl9CisJeG1sRnJlZSh1bmVzY2FwZWQpOworICAgIH0KKworICAgIC8qCisgICAgICogSWYgdGhpcyBmYWlsZWQgdHJ5IHdpdGggYSBub24tZXNjYXBlZCBVUkkgdGhpcyBtYXkgYmUgYSBzdHJhbmdlCisgICAgICogZmlsZW5hbWUKKyAgICAgKi8KKyAgICBpZiAoY29udGV4dCA9PSBOVUxMKSB7CisjaWZkZWYgSEFWRV9aTElCX0gKKwlpZiAoKGNvbXByZXNzaW9uID4gMCkgJiYgKGNvbXByZXNzaW9uIDw9IDkpICYmIChpc19maWxlX3VyaSA9PSAxKSkgeworCSAgICBjb250ZXh0ID0geG1sR3pmaWxlT3BlblcoVVJJLCBjb21wcmVzc2lvbik7CisJICAgIGlmIChjb250ZXh0ICE9IE5VTEwpIHsKKwkJcmV0ID0geG1sQWxsb2NPdXRwdXRCdWZmZXJJbnRlcm5hbChlbmNvZGVyKTsKKwkJaWYgKHJldCAhPSBOVUxMKSB7CisJCSAgICByZXQtPmNvbnRleHQgPSBjb250ZXh0OworCQkgICAgcmV0LT53cml0ZWNhbGxiYWNrID0geG1sR3pmaWxlV3JpdGU7CisJCSAgICByZXQtPmNsb3NlY2FsbGJhY2sgPSB4bWxHemZpbGVDbG9zZTsKKwkJfQorCQlyZXR1cm4ocmV0KTsKKwkgICAgfQorCX0KKyNlbmRpZgorCWZvciAoaSA9IHhtbE91dHB1dENhbGxiYWNrTnIgLSAxO2kgPj0gMDtpLS0pIHsKKwkgICAgaWYgKCh4bWxPdXRwdXRDYWxsYmFja1RhYmxlW2ldLm1hdGNoY2FsbGJhY2sgIT0gTlVMTCkgJiYKKwkJKHhtbE91dHB1dENhbGxiYWNrVGFibGVbaV0ubWF0Y2hjYWxsYmFjayhVUkkpICE9IDApKSB7CisjaWYgZGVmaW5lZChMSUJYTUxfSFRUUF9FTkFCTEVEKSAmJiBkZWZpbmVkKEhBVkVfWkxJQl9IKQorCQkvKiAgTmVlZCB0byBwYXNzIGNvbXByZXNzaW9uIHBhcmFtZXRlciBpbnRvIEhUVFAgb3BlbiBjYWxscyAgKi8KKwkJaWYgKHhtbE91dHB1dENhbGxiYWNrVGFibGVbaV0ubWF0Y2hjYWxsYmFjayA9PSB4bWxJT0hUVFBNYXRjaCkKKwkJICAgIGNvbnRleHQgPSB4bWxJT0hUVFBPcGVuVyhVUkksIGNvbXByZXNzaW9uKTsKKwkJZWxzZQorI2VuZGlmCisJCSAgICBjb250ZXh0ID0geG1sT3V0cHV0Q2FsbGJhY2tUYWJsZVtpXS5vcGVuY2FsbGJhY2soVVJJKTsKKwkJaWYgKGNvbnRleHQgIT0gTlVMTCkKKwkJICAgIGJyZWFrOworCSAgICB9CisJfQorICAgIH0KKworICAgIGlmIChjb250ZXh0ID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSB0aGUgT3V0cHV0IGJ1ZmZlciBmcm9udC1lbmQuCisgICAgICovCisgICAgcmV0ID0geG1sQWxsb2NPdXRwdXRCdWZmZXJJbnRlcm5hbChlbmNvZGVyKTsKKyAgICBpZiAocmV0ICE9IE5VTEwpIHsKKwlyZXQtPmNvbnRleHQgPSBjb250ZXh0OworCXJldC0+d3JpdGVjYWxsYmFjayA9IHhtbE91dHB1dENhbGxiYWNrVGFibGVbaV0ud3JpdGVjYWxsYmFjazsKKwlyZXQtPmNsb3NlY2FsbGJhY2sgPSB4bWxPdXRwdXRDYWxsYmFja1RhYmxlW2ldLmNsb3NlY2FsbGJhY2s7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lOgorICogQFVSSTogIGEgQyBzdHJpbmcgY29udGFpbmluZyB0aGUgVVJJIG9yIGZpbGVuYW1lCisgKiBAZW5jb2RlcjogIHRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTAorICogQGNvbXByZXNzaW9uOiAgdGhlIGNvbXByZXNzaW9uIHJhdGlvbiAoMCBub25lLCA5IG1heCkuCisgKgorICogQ3JlYXRlIGEgYnVmZmVyZWQgIG91dHB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHNhdmluZyBvZiBhIGZpbGUKKyAqIElmIGZpbGVuYW1lIGlzICItJyB0aGVuIHdlIHVzZSBzdGRvdXQgYXMgdGhlIG91dHB1dC4KKyAqIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQKKyAqIGJ5IGRlZmF1bHQgaWYgZm91bmQgYXQgY29tcGlsZS10aW1lLgorICogVE9ETzogY3VycmVudGx5IGlmIGNvbXByZXNzaW9uIGlzIHNldCwgdGhlIGxpYnJhcnkgb25seSBzdXBwb3J0CisgKiAgICAgICB3cml0aW5nIHRvIGEgbG9jYWwgZmlsZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgb3V0cHV0IG9yIE5VTEwKKyAqLworeG1sT3V0cHV0QnVmZmVyUHRyCit4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZShjb25zdCBjaGFyICpVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcHJlc3Npb24gQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGlmICgoeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVWYWx1ZSkpIHsKKwkJcmV0dXJuIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUoVVJJLCBlbmNvZGVyLCBjb21wcmVzc2lvbik7CisJfQorCXJldHVybiBfX3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKFVSSSwgZW5jb2RlciwgY29tcHJlc3Npb24pOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZToKKyAqIEBmaWxlOiAgYSBGSUxFKgorICogQGVuYzogIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duCisgKgorICogQ3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2luZyBvZiBhIEZJTEUgKgorICogYnVmZmVyZWQgQyBJL08KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEwKKyAqLworeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIKK3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZShGSUxFICpmaWxlLCB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0OworCisgICAgaWYgKHhtbElucHV0Q2FsbGJhY2tJbml0aWFsaXplZCA9PSAwKQorCXhtbFJlZ2lzdGVyRGVmYXVsdElucHV0Q2FsbGJhY2tzKCk7CisKKyAgICBpZiAoZmlsZSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSB4bWxBbGxvY1BhcnNlcklucHV0QnVmZmVyKGVuYyk7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisgICAgICAgIHJldC0+Y29udGV4dCA9IGZpbGU7CisJcmV0LT5yZWFkY2FsbGJhY2sgPSB4bWxGaWxlUmVhZDsKKwlyZXQtPmNsb3NlY2FsbGJhY2sgPSB4bWxGaWxlRmx1c2g7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKy8qKgorICogeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZToKKyAqIEBmaWxlOiAgYSBGSUxFKgorICogQGVuY29kZXI6ICB0aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEwKKyAqCisgKiBDcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcgdG8gYSBGSUxFICoKKyAqIGJ1ZmZlcmVkIEMgSS9PCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTAorICovCit4bWxPdXRwdXRCdWZmZXJQdHIKK3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUoRklMRSAqZmlsZSwgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldDsKKworICAgIGlmICh4bWxPdXRwdXRDYWxsYmFja0luaXRpYWxpemVkID09IDApCisJeG1sUmVnaXN0ZXJEZWZhdWx0T3V0cHV0Q2FsbGJhY2tzKCk7CisKKyAgICBpZiAoZmlsZSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSB4bWxBbGxvY091dHB1dEJ1ZmZlckludGVybmFsKGVuY29kZXIpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICByZXQtPmNvbnRleHQgPSBmaWxlOworCXJldC0+d3JpdGVjYWxsYmFjayA9IHhtbEZpbGVXcml0ZTsKKwlyZXQtPmNsb3NlY2FsbGJhY2sgPSB4bWxGaWxlRmx1c2g7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sT3V0cHV0QnVmZmVyQ3JlYXRlQnVmZmVyOgorICogQGJ1ZmZlcjogIGEgeG1sQnVmZmVyUHRyCisgKiBAZW5jb2RlcjogIHRoZSBlbmNvZGluZyBjb252ZXJ0ZXIgb3IgTlVMTAorICoKKyAqIENyZWF0ZSBhIGJ1ZmZlcmVkIG91dHB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHNhdmluZyB0byBhIHhtbEJ1ZmZlcgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBwYXJzZXIgb3V0cHV0IG9yIE5VTEwKKyAqLworeG1sT3V0cHV0QnVmZmVyUHRyCit4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIoeG1sQnVmZmVyUHRyIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGVuY29kZXIpIHsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgcmV0OworCisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTygoeG1sT3V0cHV0V3JpdGVDYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxCdWZmZXJXcml0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sT3V0cHV0Q2xvc2VDYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAodm9pZCAqKSBidWZmZXIsIGVuY29kZXIpOworCisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZkOgorICogQGZkOiAgYSBmaWxlIGRlc2NyaXB0b3IgbnVtYmVyCisgKiBAZW5jOiAgdGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24KKyAqCisgKiBDcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGZvciB0aGUgaW5wdXQKKyAqIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEwKKyAqLworeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIKK3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQoaW50IGZkLCB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0OworCisgICAgaWYgKGZkIDwgMCkgcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0geG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcihlbmMpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICByZXQtPmNvbnRleHQgPSAodm9pZCAqKSAobG9uZykgZmQ7CisJcmV0LT5yZWFkY2FsbGJhY2sgPSB4bWxGZFJlYWQ7CisJcmV0LT5jbG9zZWNhbGxiYWNrID0geG1sRmRDbG9zZTsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbToKKyAqIEBtZW06ICB0aGUgbWVtb3J5IGlucHV0CisgKiBAc2l6ZTogIHRoZSBsZW5ndGggb2YgdGhlIG1lbW9yeSBibG9jaworICogQGVuYzogIHRoZSBjaGFyc2V0IGVuY29kaW5nIGlmIGtub3duCisgKgorICogQ3JlYXRlIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0IGZvciB0aGUgcHJvZ3Jlc3NpdmUgcGFyc2luZyBmb3IgdGhlIGlucHV0CisgKiBmcm9tIGEgbWVtb3J5IGFyZWEuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMCisgKi8KK3htbFBhcnNlcklucHV0QnVmZmVyUHRyCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZU1lbShjb25zdCBjaGFyICptZW0sIGludCBzaXplLCB4bWxDaGFyRW5jb2RpbmcgZW5jKSB7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgcmV0OworICAgIGludCBlcnJjb2RlOworCisgICAgaWYgKHNpemUgPD0gMCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChtZW0gPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0geG1sQWxsb2NQYXJzZXJJbnB1dEJ1ZmZlcihlbmMpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICByZXQtPmNvbnRleHQgPSAodm9pZCAqKSBtZW07CisJcmV0LT5yZWFkY2FsbGJhY2sgPSAoeG1sSW5wdXRSZWFkQ2FsbGJhY2spIHhtbE5vcDsKKwlyZXQtPmNsb3NlY2FsbGJhY2sgPSBOVUxMOworCWVycmNvZGUgPSB4bWxCdWZmZXJBZGQocmV0LT5idWZmZXIsIChjb25zdCB4bWxDaGFyICopIG1lbSwgc2l6ZSk7CisJaWYgKGVycmNvZGUgIT0gMCkgeworCSAgICB4bWxGcmVlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVTdGF0aWM6CisgKiBAbWVtOiAgdGhlIG1lbW9yeSBpbnB1dAorICogQHNpemU6ICB0aGUgbGVuZ3RoIG9mIHRoZSBtZW1vcnkgYmxvY2sKKyAqIEBlbmM6ICB0aGUgY2hhcnNldCBlbmNvZGluZyBpZiBrbm93bgorICoKKyAqIENyZWF0ZSBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHBhcnNpbmcgZm9yIHRoZSBpbnB1dAorICogZnJvbSBhbiBpbW11dGFibGUgbWVtb3J5IGFyZWEuIFRoaXMgd2lsbCBub3QgY29weSB0aGUgbWVtb3J5IGFyZWEgdG8KKyAqIHRoZSBidWZmZXIsIGJ1dCB0aGUgbWVtb3J5IGlzIGV4cGVjdGVkIHRvIGJlIGF2YWlsYWJsZSB1bnRpbCB0aGUgZW5kIG9mCisgKiB0aGUgcGFyc2luZywgdGhpcyBpcyB1c2VmdWwgZm9yIGV4YW1wbGUgd2hlbiB1c2luZyBtbWFwJ2VkIGZpbGUuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBpbnB1dCBvciBOVUxMCisgKi8KK3htbFBhcnNlcklucHV0QnVmZmVyUHRyCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyhjb25zdCBjaGFyICptZW0sIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQ2hhckVuY29kaW5nIGVuYykgeworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIHJldDsKKworICAgIGlmIChzaXplIDw9IDApIHJldHVybihOVUxMKTsKKyAgICBpZiAobWVtID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHJldCA9ICh4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxQYXJzZXJJbnB1dEJ1ZmZlcikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbElPRXJyTWVtb3J5KCJjcmVhdGluZyBpbnB1dCBidWZmZXIiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIChzaXplX3QpIHNpemVvZih4bWxQYXJzZXJJbnB1dEJ1ZmZlcikpOworICAgIHJldC0+YnVmZmVyID0geG1sQnVmZmVyQ3JlYXRlU3RhdGljKCh2b2lkICopbWVtLCAoc2l6ZV90KSBzaXplKTsKKyAgICBpZiAocmV0LT5idWZmZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlKHJldCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXQtPmVuY29kZXIgPSB4bWxHZXRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuYyk7CisgICAgaWYgKHJldC0+ZW5jb2RlciAhPSBOVUxMKQorICAgICAgICByZXQtPnJhdyA9IHhtbEJ1ZmZlckNyZWF0ZVNpemUoMiAqIHhtbERlZmF1bHRCdWZmZXJTaXplKTsKKyAgICBlbHNlCisgICAgICAgIHJldC0+cmF3ID0gTlVMTDsKKyAgICByZXQtPmNvbXByZXNzZWQgPSAtMTsKKyAgICByZXQtPmNvbnRleHQgPSAodm9pZCAqKSBtZW07CisgICAgcmV0LT5yZWFkY2FsbGJhY2sgPSBOVUxMOworICAgIHJldC0+Y2xvc2VjYWxsYmFjayA9IE5VTEw7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZDoKKyAqIEBmZDogIGEgZmlsZSBkZXNjcmlwdG9yIG51bWJlcgorICogQGVuY29kZXI6ICB0aGUgZW5jb2RpbmcgY29udmVydGVyIG9yIE5VTEwKKyAqCisgKiBDcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcKKyAqIHRvIGEgZmlsZSBkZXNjcmlwdG9yCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTAorICovCit4bWxPdXRwdXRCdWZmZXJQdHIKK3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZkKGludCBmZCwgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldDsKKworICAgIGlmIChmZCA8IDApIHJldHVybihOVUxMKTsKKworICAgIHJldCA9IHhtbEFsbG9jT3V0cHV0QnVmZmVySW50ZXJuYWwoZW5jb2Rlcik7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisgICAgICAgIHJldC0+Y29udGV4dCA9ICh2b2lkICopIChsb25nKSBmZDsKKwlyZXQtPndyaXRlY2FsbGJhY2sgPSB4bWxGZFdyaXRlOworCXJldC0+Y2xvc2VjYWxsYmFjayA9IE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKgorICogeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVJTzoKKyAqIEBpb3JlYWQ6ICBhbiBJL08gcmVhZCBmdW5jdGlvbgorICogQGlvY2xvc2U6ICBhbiBJL08gY2xvc2UgZnVuY3Rpb24KKyAqIEBpb2N0eDogIGFuIEkvTyBoYW5kbGVyCisgKiBAZW5jOiAgdGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24KKyAqCisgKiBDcmVhdGUgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBwYXJzaW5nIGZvciB0aGUgaW5wdXQKKyAqIGZyb20gYW4gSS9PIGhhbmRsZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcGFyc2VyIGlucHV0IG9yIE5VTEwKKyAqLworeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIKK3htbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8oeG1sSW5wdXRSZWFkQ2FsbGJhY2sgICBpb3JlYWQsCisJIHhtbElucHV0Q2xvc2VDYWxsYmFjayAgaW9jbG9zZSwgdm9pZCAqaW9jdHgsIHhtbENoYXJFbmNvZGluZyBlbmMpIHsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciByZXQ7CisKKyAgICBpZiAoaW9yZWFkID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHJldCA9IHhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIoZW5jKTsKKyAgICBpZiAocmV0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0LT5jb250ZXh0ID0gKHZvaWQgKikgaW9jdHg7CisJcmV0LT5yZWFkY2FsbGJhY2sgPSBpb3JlYWQ7CisJcmV0LT5jbG9zZWNhbGxiYWNrID0gaW9jbG9zZTsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTzoKKyAqIEBpb3dyaXRlOiAgYW4gSS9PIHdyaXRlIGZ1bmN0aW9uCisgKiBAaW9jbG9zZTogIGFuIEkvTyBjbG9zZSBmdW5jdGlvbgorICogQGlvY3R4OiAgYW4gSS9PIGhhbmRsZXIKKyAqIEBlbmNvZGVyOiAgdGhlIGNoYXJzZXQgZW5jb2RpbmcgaWYga25vd24KKyAqCisgKiBDcmVhdGUgYSBidWZmZXJlZCBvdXRwdXQgZm9yIHRoZSBwcm9ncmVzc2l2ZSBzYXZpbmcKKyAqIHRvIGFuIEkvTyBoYW5kbGVyCisgKgorICogUmV0dXJucyB0aGUgbmV3IHBhcnNlciBvdXRwdXQgb3IgTlVMTAorICovCit4bWxPdXRwdXRCdWZmZXJQdHIKK3htbE91dHB1dEJ1ZmZlckNyZWF0ZUlPKHhtbE91dHB1dFdyaXRlQ2FsbGJhY2sgICBpb3dyaXRlLAorCSB4bWxPdXRwdXRDbG9zZUNhbGxiYWNrICBpb2Nsb3NlLCB2b2lkICppb2N0eCwKKwkgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIHJldDsKKworICAgIGlmIChpb3dyaXRlID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHJldCA9IHhtbEFsbG9jT3V0cHV0QnVmZmVySW50ZXJuYWwoZW5jb2Rlcik7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisgICAgICAgIHJldC0+Y29udGV4dCA9ICh2b2lkICopIGlvY3R4OworCXJldC0+d3JpdGVjYWxsYmFjayA9IGlvd3JpdGU7CisJcmV0LT5jbG9zZWNhbGxiYWNrID0gaW9jbG9zZTsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworLyoqCisgKiB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDoKKyAqIEBmdW5jOiBmdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMKKyAqCisgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmb3IgVVJJIGlucHV0IGZpbGUgaGFuZGxpbmcKKyAqCisgKiBSZXR1cm5zIHRoZSBvbGQgdmFsdWUgb2YgdGhlIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbgorICovCit4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYworeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZURlZmF1bHQoeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZUZ1bmMgZnVuYykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBvbGQgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWU7CisgICAgaWYgKG9sZCA9PSBOVUxMKSB7CisJCW9sZCA9IF9feG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZTsKKwl9CisKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUgPSBmdW5jOworICAgIHJldHVybihvbGQpOworfQorCisvKioKKyAqIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRGVmYXVsdDoKKyAqIEBmdW5jOiBmdW5jdGlvbiBwb2ludGVyIHRvIHRoZSBuZXcgT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVGdW5jCisgKgorICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZm9yIFVSSSBvdXRwdXQgZmlsZSBoYW5kbGluZworICoKKyAqIFJldHVybnMgdGhlIG9sZCB2YWx1ZSBvZiB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uCisgKi8KK3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYworeG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWVEZWZhdWx0KHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBmdW5jKQoreworICAgIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lRnVuYyBvbGQgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGaWxlbmFtZVZhbHVlOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgIGlmIChvbGQgPT0gTlVMTCkgeworCQlvbGQgPSBfX3htbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lOworCX0KKyNlbmRpZgorICAgIHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lVmFsdWUgPSBmdW5jOworICAgIHJldHVybihvbGQpOworfQorCisvKioKKyAqIHhtbFBhcnNlcklucHV0QnVmZmVyUHVzaDoKKyAqIEBpbjogIGEgYnVmZmVyZWQgcGFyc2VyIGlucHV0CisgKiBAbGVuOiAgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGFycmF5LgorICogQGJ1ZjogIGFuIGNoYXIgYXJyYXkKKyAqCisgKiBQdXNoIHRoZSBjb250ZW50IG9mIHRoZSBhcnJ5IGluIHRoZSBpbnB1dCBidWZmZXIKKyAqIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgdG8gaW50ZXJuYWwgVVRGLTgKKyAqIFRoaXMgaXMgdXNlZCB3aGVuIG9wZXJhdGluZyB0aGUgcGFyc2VyIGluIHByb2dyZXNzaXZlIChwdXNoKSBtb2RlLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFycyByZWFkIGFuZCBzdG9yZWQgaW4gdGhlIGJ1ZmZlciwgb3IgLTEKKyAqICAgICAgICAgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxQYXJzZXJJbnB1dEJ1ZmZlclB1c2goeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW4sCisJICAgICAgICAgICAgICAgICBpbnQgbGVuLCBjb25zdCBjaGFyICpidWYpIHsKKyAgICBpbnQgbmJjaGFycyA9IDA7CisgICAgaW50IHJldDsKKworICAgIGlmIChsZW4gPCAwKSByZXR1cm4oMCk7CisgICAgaWYgKChpbiA9PSBOVUxMKSB8fCAoaW4tPmVycm9yKSkgcmV0dXJuKC0xKTsKKyAgICBpZiAoaW4tPmVuY29kZXIgIT0gTlVMTCkgeworICAgICAgICB1bnNpZ25lZCBpbnQgdXNlOworCisgICAgICAgIC8qCisJICogU3RvcmUgdGhlIGRhdGEgaW4gdGhlIGluY29taW5nIHJhdyBidWZmZXIKKwkgKi8KKyAgICAgICAgaWYgKGluLT5yYXcgPT0gTlVMTCkgeworCSAgICBpbi0+cmF3ID0geG1sQnVmZmVyQ3JlYXRlKCk7CisJfQorCXJldCA9IHhtbEJ1ZmZlckFkZChpbi0+cmF3LCAoY29uc3QgeG1sQ2hhciAqKSBidWYsIGxlbik7CisJaWYgKHJldCAhPSAwKQorCSAgICByZXR1cm4oLTEpOworCisJLyoKKwkgKiBjb252ZXJ0IGFzIG11Y2ggYXMgcG9zc2libGUgdG8gdGhlIHBhcnNlciByZWFkaW5nIGJ1ZmZlci4KKwkgKi8KKwl1c2UgPSBpbi0+cmF3LT51c2U7CisJbmJjaGFycyA9IHhtbENoYXJFbmNJbkZ1bmMoaW4tPmVuY29kZXIsIGluLT5idWZmZXIsIGluLT5yYXcpOworCWlmIChuYmNoYXJzIDwgMCkgeworCSAgICB4bWxJT0VycihYTUxfSU9fRU5DT0RFUiwgTlVMTCk7CisJICAgIGluLT5lcnJvciA9IFhNTF9JT19FTkNPREVSOworCSAgICByZXR1cm4oLTEpOworCX0KKwlpbi0+cmF3Y29uc3VtZWQgKz0gKHVzZSAtIGluLT5yYXctPnVzZSk7CisgICAgfSBlbHNlIHsKKwluYmNoYXJzID0gbGVuOworICAgICAgICByZXQgPSB4bWxCdWZmZXJBZGQoaW4tPmJ1ZmZlciwgKHhtbENoYXIgKikgYnVmLCBuYmNoYXJzKTsKKwlpZiAocmV0ICE9IDApCisJICAgIHJldHVybigtMSk7CisgICAgfQorI2lmZGVmIERFQlVHX0lOUFVUCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJJL086IHB1c2hlZCAlZCBjaGFycywgYnVmZmVyICVkLyVkXG4iLAorICAgICAgICAgICAgbmJjaGFycywgaW4tPmJ1ZmZlci0+dXNlLCBpbi0+YnVmZmVyLT5zaXplKTsKKyNlbmRpZgorICAgIHJldHVybihuYmNoYXJzKTsKK30KKworLyoqCisgKiBlbmRPZklucHV0OgorICoKKyAqIFdoZW4gcmVhZGluZyBmcm9tIGFuIElucHV0IGNoYW5uZWwgaW5kaWNhdGVkIGVuZCBvZiBmaWxlIG9yIGVycm9yCisgKiBkb24ndCByZXJlYWQgZnJvbSBpdCBhZ2Fpbi4KKyAqLworc3RhdGljIGludAorZW5kT2ZJbnB1dCAodm9pZCAqIGNvbnRleHQgQVRUUklCVVRFX1VOVVNFRCwKKwkgICAgY2hhciAqIGJ1ZmZlciBBVFRSSUJVVEVfVU5VU0VELAorCSAgICBpbnQgbGVuIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93OgorICogQGluOiAgYSBidWZmZXJlZCBwYXJzZXIgaW5wdXQKKyAqIEBsZW46ICBpbmRpY2F0aXZlIHZhbHVlIG9mIHRoZSBhbW91bnQgb2YgY2hhcnMgdG8gcmVhZAorICoKKyAqIEdyb3cgdXAgdGhlIGNvbnRlbnQgb2YgdGhlIGlucHV0IGJ1ZmZlciwgdGhlIG9sZCBkYXRhIGFyZSBwcmVzZXJ2ZWQKKyAqIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgdG8gaW50ZXJuYWwgVVRGLTgKKyAqIFRoaXMgcm91dGluZSBpcyB1c2VkIHdoZW4gb3BlcmF0aW5nIHRoZSBwYXJzZXIgaW4gbm9ybWFsIChwdWxsKSBtb2RlCisgKgorICogVE9ETzogb25lIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSBvbmUgZXh0cmEgY29weSBieSBjb3B5aW5nIGRpcmVjdGx5CisgKiAgICAgICBvbnRvIGluLT5idWZmZXIgb3IgaW4tPnJhdworICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFycyByZWFkIGFuZCBzdG9yZWQgaW4gdGhlIGJ1ZmZlciwgb3IgLTEKKyAqICAgICAgICAgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxQYXJzZXJJbnB1dEJ1ZmZlckdyb3coeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW4sIGludCBsZW4pIHsKKyAgICBjaGFyICpidWZmZXIgPSBOVUxMOworICAgIGludCByZXMgPSAwOworICAgIGludCBuYmNoYXJzID0gMDsKKyAgICBpbnQgYnVmZnJlZTsKKyAgICB1bnNpZ25lZCBpbnQgbmVlZFNpemU7CisKKyAgICBpZiAoKGluID09IE5VTEwpIHx8IChpbi0+ZXJyb3IpKSByZXR1cm4oLTEpOworICAgIGlmICgobGVuIDw9IE1JTkxFTikgJiYgKGxlbiAhPSA0KSkKKyAgICAgICAgbGVuID0gTUlOTEVOOworCisgICAgYnVmZnJlZSA9IGluLT5idWZmZXItPnNpemUgLSBpbi0+YnVmZmVyLT51c2U7CisgICAgaWYgKGJ1ZmZyZWUgPD0gMCkgeworCXhtbElPRXJyKFhNTF9JT19CVUZGRVJfRlVMTCwgTlVMTCk7CisJaW4tPmVycm9yID0gWE1MX0lPX0JVRkZFUl9GVUxMOworCXJldHVybigtMSk7CisgICAgfQorCisgICAgbmVlZFNpemUgPSBpbi0+YnVmZmVyLT51c2UgKyBsZW4gKyAxOworICAgIGlmIChuZWVkU2l6ZSA+IGluLT5idWZmZXItPnNpemUpeworICAgICAgICBpZiAoIXhtbEJ1ZmZlclJlc2l6ZShpbi0+YnVmZmVyLCBuZWVkU2l6ZSkpeworCSAgICB4bWxJT0Vyck1lbW9yeSgiZ3Jvd2luZyBpbnB1dCBidWZmZXIiKTsKKwkgICAgaW4tPmVycm9yID0gWE1MX0VSUl9OT19NRU1PUlk7CisgICAgICAgICAgICByZXR1cm4oLTEpOworICAgICAgICB9CisgICAgfQorICAgIGJ1ZmZlciA9IChjaGFyICopJmluLT5idWZmZXItPmNvbnRlbnRbaW4tPmJ1ZmZlci0+dXNlXTsKKworICAgIC8qCisgICAgICogQ2FsbCB0aGUgcmVhZCBtZXRob2QgZm9yIHRoaXMgSS9PIHR5cGUuCisgICAgICovCisgICAgaWYgKGluLT5yZWFkY2FsbGJhY2sgIT0gTlVMTCkgeworCXJlcyA9IGluLT5yZWFkY2FsbGJhY2soaW4tPmNvbnRleHQsICZidWZmZXJbMF0sIGxlbik7CisJaWYgKHJlcyA8PSAwKQorCSAgICBpbi0+cmVhZGNhbGxiYWNrID0gZW5kT2ZJbnB1dDsKKyAgICB9IGVsc2UgeworCXhtbElPRXJyKFhNTF9JT19OT19JTlBVVCwgTlVMTCk7CisJaW4tPmVycm9yID0gWE1MX0lPX05PX0lOUFVUOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChyZXMgPCAwKSB7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgbGVuID0gcmVzOworICAgIGlmIChpbi0+ZW5jb2RlciAhPSBOVUxMKSB7CisgICAgICAgIHVuc2lnbmVkIGludCB1c2U7CisKKyAgICAgICAgLyoKKwkgKiBTdG9yZSB0aGUgZGF0YSBpbiB0aGUgaW5jb21pbmcgcmF3IGJ1ZmZlcgorCSAqLworICAgICAgICBpZiAoaW4tPnJhdyA9PSBOVUxMKSB7CisJICAgIGluLT5yYXcgPSB4bWxCdWZmZXJDcmVhdGUoKTsKKwl9CisJcmVzID0geG1sQnVmZmVyQWRkKGluLT5yYXcsIChjb25zdCB4bWxDaGFyICopIGJ1ZmZlciwgbGVuKTsKKwlpZiAocmVzICE9IDApCisJICAgIHJldHVybigtMSk7CisKKwkvKgorCSAqIGNvbnZlcnQgYXMgbXVjaCBhcyBwb3NzaWJsZSB0byB0aGUgcGFyc2VyIHJlYWRpbmcgYnVmZmVyLgorCSAqLworCXVzZSA9IGluLT5yYXctPnVzZTsKKwluYmNoYXJzID0geG1sQ2hhckVuY0luRnVuYyhpbi0+ZW5jb2RlciwgaW4tPmJ1ZmZlciwgaW4tPnJhdyk7CisJaWYgKG5iY2hhcnMgPCAwKSB7CisJICAgIHhtbElPRXJyKFhNTF9JT19FTkNPREVSLCBOVUxMKTsKKwkgICAgaW4tPmVycm9yID0gWE1MX0lPX0VOQ09ERVI7CisJICAgIHJldHVybigtMSk7CisJfQorCWluLT5yYXdjb25zdW1lZCArPSAodXNlIC0gaW4tPnJhdy0+dXNlKTsKKyAgICB9IGVsc2UgeworCW5iY2hhcnMgPSBsZW47CisgICAJaW4tPmJ1ZmZlci0+dXNlICs9IG5iY2hhcnM7CisJYnVmZmVyW25iY2hhcnNdID0gMDsKKyAgICB9CisjaWZkZWYgREVCVUdfSU5QVVQKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIkkvTzogcmVhZCAlZCBjaGFycywgYnVmZmVyICVkLyVkXG4iLAorICAgICAgICAgICAgbmJjaGFycywgaW4tPmJ1ZmZlci0+dXNlLCBpbi0+YnVmZmVyLT5zaXplKTsKKyNlbmRpZgorICAgIHJldHVybihuYmNoYXJzKTsKK30KKworLyoqCisgKiB4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQ6CisgKiBAaW46ICBhIGJ1ZmZlcmVkIHBhcnNlciBpbnB1dAorICogQGxlbjogIGluZGljYXRpdmUgdmFsdWUgb2YgdGhlIGFtb3VudCBvZiBjaGFycyB0byByZWFkCisgKgorICogUmVmcmVzaCB0aGUgY29udGVudCBvZiB0aGUgaW5wdXQgYnVmZmVyLCB0aGUgb2xkIGRhdGEgYXJlIGNvbnNpZGVyZWQKKyAqIGNvbnN1bWVkCisgKiBUaGlzIHJvdXRpbmUgaGFuZGxlIHRoZSBJMThOIHRyYW5zY29kaW5nIHRvIGludGVybmFsIFVURi04CisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJzIHJlYWQgYW5kIHN0b3JlZCBpbiB0aGUgYnVmZmVyLCBvciAtMQorICogICAgICAgICBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFBhcnNlcklucHV0QnVmZmVyUmVhZCh4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbiwgaW50IGxlbikgeworICAgIGlmICgoaW4gPT0gTlVMTCkgfHwgKGluLT5lcnJvcikpIHJldHVybigtMSk7CisgICAgaWYgKGluLT5yZWFkY2FsbGJhY2sgIT0gTlVMTCkKKwlyZXR1cm4oeG1sUGFyc2VySW5wdXRCdWZmZXJHcm93KGluLCBsZW4pKTsKKyAgICBlbHNlIGlmICgoaW4tPmJ1ZmZlciAhPSBOVUxMKSAmJgorICAgICAgICAgICAgIChpbi0+YnVmZmVyLT5hbGxvYyA9PSBYTUxfQlVGRkVSX0FMTE9DX0lNTVVUQUJMRSkpCisJcmV0dXJuKDApOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuKC0xKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorLyoqCisgKiB4bWxPdXRwdXRCdWZmZXJXcml0ZToKKyAqIEBvdXQ6ICBhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQKKyAqIEBsZW46ICB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgYXJyYXkuCisgKiBAYnVmOiAgYW4gY2hhciBhcnJheQorICoKKyAqIFdyaXRlIHRoZSBjb250ZW50IG9mIHRoZSBhcnJheSBpbiB0aGUgb3V0cHV0IEkvTyBidWZmZXIKKyAqIFRoaXMgcm91dGluZSBoYW5kbGUgdGhlIEkxOE4gdHJhbnNjb2RpbmcgZnJvbSBpbnRlcm5hbCBVVEYtOAorICogVGhlIGJ1ZmZlciBpcyBsb3NzbGVzcywgaS5lLiB3aWxsIHN0b3JlIGluIGNhc2Ugb2YgcGFydGlhbAorICogb3IgZGVsYXllZCB3cml0ZXMuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJzIGltbWVkaWF0ZWx5IHdyaXR0ZW4sIG9yIC0xCisgKiAgICAgICAgIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sT3V0cHV0QnVmZmVyV3JpdGUoeG1sT3V0cHV0QnVmZmVyUHRyIG91dCwgaW50IGxlbiwgY29uc3QgY2hhciAqYnVmKSB7CisgICAgaW50IG5iY2hhcnMgPSAwOyAvKiBudW1iZXIgb2YgY2hhcnMgdG8gb3V0cHV0IHRvIEkvTyAqLworICAgIGludCByZXQ7ICAgICAgICAgLyogcmV0dXJuIGZyb20gZnVuY3Rpb24gY2FsbCAqLworICAgIGludCB3cml0dGVuID0gMDsgLyogbnVtYmVyIG9mIGNoYXIgd3JpdHRlbiB0byBJL08gc28gZmFyICovCisgICAgaW50IGNodW5rOyAgICAgICAvKiBudW1iZXIgb2YgYnl0ZSBjdXJyZWVudCBwcm9jZXNzZWQgZnJvbSBidWYgKi8KKworICAgIGlmICgob3V0ID09IE5VTEwpIHx8IChvdXQtPmVycm9yKSkgcmV0dXJuKC0xKTsKKyAgICBpZiAobGVuIDwgMCkgcmV0dXJuKDApOworICAgIGlmIChvdXQtPmVycm9yKSByZXR1cm4oLTEpOworCisgICAgZG8geworCWNodW5rID0gbGVuOworCWlmIChjaHVuayA+IDQgKiBNSU5MRU4pCisJICAgIGNodW5rID0gNCAqIE1JTkxFTjsKKworCS8qCisJICogZmlyc3QgaGFuZGxlIGVuY29kaW5nIHN0dWZmLgorCSAqLworCWlmIChvdXQtPmVuY29kZXIgIT0gTlVMTCkgeworCSAgICAvKgorCSAgICAgKiBTdG9yZSB0aGUgZGF0YSBpbiB0aGUgaW5jb21pbmcgcmF3IGJ1ZmZlcgorCSAgICAgKi8KKwkgICAgaWYgKG91dC0+Y29udiA9PSBOVUxMKSB7CisJCW91dC0+Y29udiA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworCSAgICB9CisJICAgIHJldCA9IHhtbEJ1ZmZlckFkZChvdXQtPmJ1ZmZlciwgKGNvbnN0IHhtbENoYXIgKikgYnVmLCBjaHVuayk7CisJICAgIGlmIChyZXQgIT0gMCkKKwkgICAgICAgIHJldHVybigtMSk7CisKKwkgICAgaWYgKChvdXQtPmJ1ZmZlci0+dXNlIDwgTUlOTEVOKSAmJiAoY2h1bmsgPT0gbGVuKSkKKwkJZ290byBkb25lOworCisJICAgIC8qCisJICAgICAqIGNvbnZlcnQgYXMgbXVjaCBhcyBwb3NzaWJsZSB0byB0aGUgcGFyc2VyIHJlYWRpbmcgYnVmZmVyLgorCSAgICAgKi8KKwkgICAgcmV0ID0geG1sQ2hhckVuY091dEZ1bmMob3V0LT5lbmNvZGVyLCBvdXQtPmNvbnYsIG91dC0+YnVmZmVyKTsKKwkgICAgaWYgKChyZXQgPCAwKSAmJiAocmV0ICE9IC0zKSkgeworCQl4bWxJT0VycihYTUxfSU9fRU5DT0RFUiwgTlVMTCk7CisJCW91dC0+ZXJyb3IgPSBYTUxfSU9fRU5DT0RFUjsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICBuYmNoYXJzID0gb3V0LT5jb252LT51c2U7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sQnVmZmVyQWRkKG91dC0+YnVmZmVyLCAoY29uc3QgeG1sQ2hhciAqKSBidWYsIGNodW5rKTsKKwkgICAgaWYgKHJldCAhPSAwKQorCSAgICAgICAgcmV0dXJuKC0xKTsKKwkgICAgbmJjaGFycyA9IG91dC0+YnVmZmVyLT51c2U7CisJfQorCWJ1ZiArPSBjaHVuazsKKwlsZW4gLT0gY2h1bms7CisKKwlpZiAoKG5iY2hhcnMgPCBNSU5MRU4pICYmIChsZW4gPD0gMCkpCisJICAgIGdvdG8gZG9uZTsKKworCWlmIChvdXQtPndyaXRlY2FsbGJhY2spIHsKKwkgICAgLyoKKwkgICAgICogc2Vjb25kIHdyaXRlIHRoZSBzdHVmZiB0byB0aGUgSS9PIGNoYW5uZWwKKwkgICAgICovCisJICAgIGlmIChvdXQtPmVuY29kZXIgIT0gTlVMTCkgeworCQlyZXQgPSBvdXQtPndyaXRlY2FsbGJhY2sob3V0LT5jb250ZXh0LAorCQkJCSAoY29uc3QgY2hhciAqKW91dC0+Y29udi0+Y29udGVudCwgbmJjaGFycyk7CisJCWlmIChyZXQgPj0gMCkKKwkJICAgIHhtbEJ1ZmZlclNocmluayhvdXQtPmNvbnYsIHJldCk7CisJICAgIH0gZWxzZSB7CisJCXJldCA9IG91dC0+d3JpdGVjYWxsYmFjayhvdXQtPmNvbnRleHQsCisJCQkJIChjb25zdCBjaGFyICopb3V0LT5idWZmZXItPmNvbnRlbnQsIG5iY2hhcnMpOworCQlpZiAocmV0ID49IDApCisJCSAgICB4bWxCdWZmZXJTaHJpbmsob3V0LT5idWZmZXIsIHJldCk7CisJICAgIH0KKwkgICAgaWYgKHJldCA8IDApIHsKKwkJeG1sSU9FcnIoWE1MX0lPX1dSSVRFLCBOVUxMKTsKKwkJb3V0LT5lcnJvciA9IFhNTF9JT19XUklURTsKKwkJcmV0dXJuKHJldCk7CisJICAgIH0KKwkgICAgb3V0LT53cml0dGVuICs9IHJldDsKKwl9CisJd3JpdHRlbiArPSBuYmNoYXJzOworICAgIH0gd2hpbGUgKGxlbiA+IDApOworCitkb25lOgorI2lmZGVmIERFQlVHX0lOUFVUCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJJL086IHdyb3RlICVkIGNoYXJzXG4iLCB3cml0dGVuKTsKKyNlbmRpZgorICAgIHJldHVybih3cml0dGVuKTsKK30KKworLyoqCisgKiB4bWxFc2NhcGVDb250ZW50OgorICogQG91dDogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBieXRlcyB0byBzdG9yZSB0aGUgcmVzdWx0CisgKiBAb3V0bGVuOiAgdGhlIGxlbmd0aCBvZiBAb3V0CisgKiBAaW46ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgdW5lc2NhcGVkIFVURi04IGJ5dGVzCisgKiBAaW5sZW46ICB0aGUgbGVuZ3RoIG9mIEBpbgorICoKKyAqIFRha2UgYSBibG9jayBvZiBVVEYtOCBjaGFycyBpbiBhbmQgZXNjYXBlIHRoZW0uCisgKiBSZXR1cm5zIDAgaWYgc3VjY2Vzcywgb3IgLTEgb3RoZXJ3aXNlCisgKiBUaGUgdmFsdWUgb2YgQGlubGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZAorICogICAgIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4KKyAqIFRoZSB2YWx1ZSBvZiBAb3V0bGVuIGFmdGVyIHJldHVybiBpcyB0aGUgbnVtYmVyIG9mIG9jdGV0cyBjb25zdW1lZC4KKyAqLworc3RhdGljIGludAoreG1sRXNjYXBlQ29udGVudCh1bnNpZ25lZCBjaGFyKiBvdXQsIGludCAqb3V0bGVuLAorICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyKiBpbiwgaW50ICppbmxlbikgeworICAgIHVuc2lnbmVkIGNoYXIqIG91dHN0YXJ0ID0gb3V0OworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJhc2UgPSBpbjsKKyAgICB1bnNpZ25lZCBjaGFyKiBvdXRlbmQgPSBvdXQgKyAqb3V0bGVuOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluZW5kOworCisgICAgaW5lbmQgPSBpbiArICgqaW5sZW4pOworCisgICAgd2hpbGUgKChpbiA8IGluZW5kKSAmJiAob3V0IDwgb3V0ZW5kKSkgeworICAgCWlmICgqaW4gPT0gJzwnKSB7CisJICAgIGlmIChvdXRlbmQgLSBvdXQgPCA0KSBicmVhazsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICAqb3V0KysgPSAnbCc7CisJICAgICpvdXQrKyA9ICd0JzsKKwkgICAgKm91dCsrID0gJzsnOworCX0gZWxzZSBpZiAoKmluID09ICc+JykgeworCSAgICBpZiAob3V0ZW5kIC0gb3V0IDwgNCkgYnJlYWs7CisJICAgICpvdXQrKyA9ICcmJzsKKwkgICAgKm91dCsrID0gJ2cnOworCSAgICAqb3V0KysgPSAndCc7CisJICAgICpvdXQrKyA9ICc7JzsKKwl9IGVsc2UgaWYgKCppbiA9PSAnJicpIHsKKwkgICAgaWYgKG91dGVuZCAtIG91dCA8IDUpIGJyZWFrOworCSAgICAqb3V0KysgPSAnJic7CisJICAgICpvdXQrKyA9ICdhJzsKKwkgICAgKm91dCsrID0gJ20nOworCSAgICAqb3V0KysgPSAncCc7CisJICAgICpvdXQrKyA9ICc7JzsKKwl9IGVsc2UgaWYgKCppbiA9PSAnXHInKSB7CisJICAgIGlmIChvdXRlbmQgLSBvdXQgPCA1KSBicmVhazsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICAqb3V0KysgPSAnIyc7CisJICAgICpvdXQrKyA9ICcxJzsKKwkgICAgKm91dCsrID0gJzMnOworCSAgICAqb3V0KysgPSAnOyc7CisJfSBlbHNlIHsKKwkgICAgKm91dCsrID0gKHVuc2lnbmVkIGNoYXIpICppbjsKKwl9CisJKytpbjsKKyAgICB9CisgICAgKm91dGxlbiA9IG91dCAtIG91dHN0YXJ0OworICAgICppbmxlbiA9IGluIC0gYmFzZTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGU6CisgKiBAb3V0OiAgYSBidWZmZXJlZCBwYXJzZXIgb3V0cHV0CisgKiBAc3RyOiAgYSB6ZXJvIHRlcm1pbmF0ZWQgVVRGLTggc3RyaW5nCisgKiBAZXNjYXBpbmc6ICBhbiBvcHRpb25hbCBlc2NhcGluZyBmdW5jdGlvbiAob3IgTlVMTCkKKyAqCisgKiBXcml0ZSB0aGUgY29udGVudCBvZiB0aGUgc3RyaW5nIGluIHRoZSBvdXRwdXQgSS9PIGJ1ZmZlcgorICogVGhpcyByb3V0aW5lIGVzY2FwZXMgdGhlIGNhcmFjdGVycyBhbmQgdGhlbiBoYW5kbGUgdGhlIEkxOE4KKyAqIHRyYW5zY29kaW5nIGZyb20gaW50ZXJuYWwgVVRGLTgKKyAqIFRoZSBidWZmZXIgaXMgbG9zc2xlc3MsIGkuZS4gd2lsbCBzdG9yZSBpbiBjYXNlIG9mIHBhcnRpYWwKKyAqIG9yIGRlbGF5ZWQgd3JpdGVzLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFycyBpbW1lZGlhdGVseSB3cml0dGVuLCBvciAtMQorICogICAgICAgICBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlKHhtbE91dHB1dEJ1ZmZlclB0ciBvdXQsIGNvbnN0IHhtbENoYXIgKnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENoYXJFbmNvZGluZ091dHB1dEZ1bmMgZXNjYXBpbmcpIHsKKyAgICBpbnQgbmJjaGFycyA9IDA7IC8qIG51bWJlciBvZiBjaGFycyB0byBvdXRwdXQgdG8gSS9PICovCisgICAgaW50IHJldDsgICAgICAgICAvKiByZXR1cm4gZnJvbSBmdW5jdGlvbiBjYWxsICovCisgICAgaW50IHdyaXR0ZW4gPSAwOyAvKiBudW1iZXIgb2YgY2hhciB3cml0dGVuIHRvIEkvTyBzbyBmYXIgKi8KKyAgICBpbnQgb2xkd3JpdHRlbj0wOy8qIGxvb3AgZ3VhcmQgKi8KKyAgICBpbnQgY2h1bms7ICAgICAgIC8qIG51bWJlciBvZiBieXRlIGN1cnJlbnRseSBwcm9jZXNzZWQgZnJvbSBzdHIgKi8KKyAgICBpbnQgbGVuOyAgICAgICAgIC8qIG51bWJlciBvZiBieXRlcyBpbiBzdHIgKi8KKyAgICBpbnQgY29uczsgICAgICAgIC8qIGJ5dGUgZnJvbSBzdHIgY29uc3VtZWQgKi8KKworICAgIGlmICgob3V0ID09IE5VTEwpIHx8IChvdXQtPmVycm9yKSB8fCAoc3RyID09IE5VTEwpIHx8CisgICAgICAgIChvdXQtPmJ1ZmZlciA9PSBOVUxMKSB8fAorCShvdXQtPmJ1ZmZlci0+YWxsb2MgPT0gWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUpKSByZXR1cm4oLTEpOworICAgIGxlbiA9IHN0cmxlbigoY29uc3QgY2hhciAqKXN0cik7CisgICAgaWYgKGxlbiA8IDApIHJldHVybigwKTsKKyAgICBpZiAob3V0LT5lcnJvcikgcmV0dXJuKC0xKTsKKyAgICBpZiAoZXNjYXBpbmcgPT0gTlVMTCkgZXNjYXBpbmcgPSB4bWxFc2NhcGVDb250ZW50OworCisgICAgZG8geworICAgICAgICBvbGR3cml0dGVuID0gd3JpdHRlbjsKKworICAgICAgICAvKgorCSAqIGhvdyBtYW55IGJ5dGVzIHRvIGNvbnN1bWUgYW5kIGhvdyBtYW55IGJ5dGVzIHRvIHN0b3JlLgorCSAqLworCWNvbnMgPSBsZW47CisJY2h1bmsgPSAob3V0LT5idWZmZXItPnNpemUgLSBvdXQtPmJ1ZmZlci0+dXNlKSAtIDE7CisKKyAgICAgICAgLyoKKwkgKiBtYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggcm9vbSB0byBzYXZlIGZpcnN0LCBpZiB0aGlzIGlzCisJICogbm90IHRoZSBjYXNlIGZvcmNlIGEgZmx1c2gsIGJ1dCBtYWtlIHN1cmUgd2Ugc3RheSBpbiB0aGUgbG9vcAorCSAqLworCWlmIChjaHVuayA8IDQwKSB7CisJICAgIGlmICh4bWxCdWZmZXJHcm93KG91dC0+YnVmZmVyLCBvdXQtPmJ1ZmZlci0+c2l6ZSArIDEwMCkgPCAwKQorCSAgICAgICAgcmV0dXJuKC0xKTsKKyAgICAgICAgICAgIG9sZHdyaXR0ZW4gPSAtMTsKKwkgICAgY29udGludWU7CisJfQorCisJLyoKKwkgKiBmaXJzdCBoYW5kbGUgZW5jb2Rpbmcgc3R1ZmYuCisJICovCisJaWYgKG91dC0+ZW5jb2RlciAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICAqIFN0b3JlIHRoZSBkYXRhIGluIHRoZSBpbmNvbWluZyByYXcgYnVmZmVyCisJICAgICAqLworCSAgICBpZiAob3V0LT5jb252ID09IE5VTEwpIHsKKwkJb3V0LT5jb252ID0geG1sQnVmZmVyQ3JlYXRlKCk7CisJICAgIH0KKwkgICAgcmV0ID0gZXNjYXBpbmcob3V0LT5idWZmZXItPmNvbnRlbnQgKyBvdXQtPmJ1ZmZlci0+dXNlICwKKwkgICAgICAgICAgICAgICAgICAgJmNodW5rLCBzdHIsICZjb25zKTsKKwkgICAgaWYgKChyZXQgPCAwKSB8fCAoY2h1bmsgPT0gMCkpIC8qIGNodW5rPT0wID0+IG5vdGhpbmcgZG9uZSAqLworCSAgICAgICAgcmV0dXJuKC0xKTsKKwkgICAgb3V0LT5idWZmZXItPnVzZSArPSBjaHVuazsKKwkgICAgb3V0LT5idWZmZXItPmNvbnRlbnRbb3V0LT5idWZmZXItPnVzZV0gPSAwOworCisJICAgIGlmICgob3V0LT5idWZmZXItPnVzZSA8IE1JTkxFTikgJiYgKGNvbnMgPT0gbGVuKSkKKwkJZ290byBkb25lOworCisJICAgIC8qCisJICAgICAqIGNvbnZlcnQgYXMgbXVjaCBhcyBwb3NzaWJsZSB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKwkgICAgICovCisJICAgIHJldCA9IHhtbENoYXJFbmNPdXRGdW5jKG91dC0+ZW5jb2Rlciwgb3V0LT5jb252LCBvdXQtPmJ1ZmZlcik7CisJICAgIGlmICgocmV0IDwgMCkgJiYgKHJldCAhPSAtMykpIHsKKwkJeG1sSU9FcnIoWE1MX0lPX0VOQ09ERVIsIE5VTEwpOworCQlvdXQtPmVycm9yID0gWE1MX0lPX0VOQ09ERVI7CisJCXJldHVybigtMSk7CisJICAgIH0KKwkgICAgbmJjaGFycyA9IG91dC0+Y29udi0+dXNlOworCX0gZWxzZSB7CisJICAgIHJldCA9IGVzY2FwaW5nKG91dC0+YnVmZmVyLT5jb250ZW50ICsgb3V0LT5idWZmZXItPnVzZSAsCisJICAgICAgICAgICAgICAgICAgICZjaHVuaywgc3RyLCAmY29ucyk7CisJICAgIGlmICgocmV0IDwgMCkgfHwgKGNodW5rID09IDApKSAvKiBjaHVuaz09MCA9PiBub3RoaW5nIGRvbmUgKi8KKwkgICAgICAgIHJldHVybigtMSk7CisJICAgIG91dC0+YnVmZmVyLT51c2UgKz0gY2h1bms7CisJICAgIG91dC0+YnVmZmVyLT5jb250ZW50W291dC0+YnVmZmVyLT51c2VdID0gMDsKKwkgICAgbmJjaGFycyA9IG91dC0+YnVmZmVyLT51c2U7CisJfQorCXN0ciArPSBjb25zOworCWxlbiAtPSBjb25zOworCisJaWYgKChuYmNoYXJzIDwgTUlOTEVOKSAmJiAobGVuIDw9IDApKQorCSAgICBnb3RvIGRvbmU7CisKKwlpZiAob3V0LT53cml0ZWNhbGxiYWNrKSB7CisJICAgIC8qCisJICAgICAqIHNlY29uZCB3cml0ZSB0aGUgc3R1ZmYgdG8gdGhlIEkvTyBjaGFubmVsCisJICAgICAqLworCSAgICBpZiAob3V0LT5lbmNvZGVyICE9IE5VTEwpIHsKKwkJcmV0ID0gb3V0LT53cml0ZWNhbGxiYWNrKG91dC0+Y29udGV4dCwKKwkJCQkgKGNvbnN0IGNoYXIgKilvdXQtPmNvbnYtPmNvbnRlbnQsIG5iY2hhcnMpOworCQlpZiAocmV0ID49IDApCisJCSAgICB4bWxCdWZmZXJTaHJpbmsob3V0LT5jb252LCByZXQpOworCSAgICB9IGVsc2UgeworCQlyZXQgPSBvdXQtPndyaXRlY2FsbGJhY2sob3V0LT5jb250ZXh0LAorCQkJCSAoY29uc3QgY2hhciAqKW91dC0+YnVmZmVyLT5jb250ZW50LCBuYmNoYXJzKTsKKwkJaWYgKHJldCA+PSAwKQorCQkgICAgeG1sQnVmZmVyU2hyaW5rKG91dC0+YnVmZmVyLCByZXQpOworCSAgICB9CisJICAgIGlmIChyZXQgPCAwKSB7CisJCXhtbElPRXJyKFhNTF9JT19XUklURSwgTlVMTCk7CisJCW91dC0+ZXJyb3IgPSBYTUxfSU9fV1JJVEU7CisJCXJldHVybihyZXQpOworCSAgICB9CisJICAgIG91dC0+d3JpdHRlbiArPSByZXQ7CisJfSBlbHNlIGlmIChvdXQtPmJ1ZmZlci0+c2l6ZSAtIG91dC0+YnVmZmVyLT51c2UgPCBNSU5MRU4pIHsKKwkgICAgeG1sQnVmZmVyUmVzaXplKG91dC0+YnVmZmVyLCBvdXQtPmJ1ZmZlci0+c2l6ZSArIE1JTkxFTik7CisJfQorCXdyaXR0ZW4gKz0gbmJjaGFyczsKKyAgICB9IHdoaWxlICgobGVuID4gMCkgJiYgKG9sZHdyaXR0ZW4gIT0gd3JpdHRlbikpOworCitkb25lOgorI2lmZGVmIERFQlVHX0lOUFVUCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJJL086IHdyb3RlICVkIGNoYXJzXG4iLCB3cml0dGVuKTsKKyNlbmRpZgorICAgIHJldHVybih3cml0dGVuKTsKK30KKworLyoqCisgKiB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZzoKKyAqIEBvdXQ6ICBhIGJ1ZmZlcmVkIHBhcnNlciBvdXRwdXQKKyAqIEBzdHI6ICBhIHplcm8gdGVybWluYXRlZCBDIHN0cmluZworICoKKyAqIFdyaXRlIHRoZSBjb250ZW50IG9mIHRoZSBzdHJpbmcgaW4gdGhlIG91dHB1dCBJL08gYnVmZmVyCisgKiBUaGlzIHJvdXRpbmUgaGFuZGxlIHRoZSBJMThOIHRyYW5zY29kaW5nIGZyb20gaW50ZXJuYWwgVVRGLTgKKyAqIFRoZSBidWZmZXIgaXMgbG9zc2xlc3MsIGkuZS4gd2lsbCBzdG9yZSBpbiBjYXNlIG9mIHBhcnRpYWwKKyAqIG9yIGRlbGF5ZWQgd3JpdGVzLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFycyBpbW1lZGlhdGVseSB3cml0dGVuLCBvciAtMQorICogICAgICAgICBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHhtbE91dHB1dEJ1ZmZlclB0ciBvdXQsIGNvbnN0IGNoYXIgKnN0cikgeworICAgIGludCBsZW47CisKKyAgICBpZiAoKG91dCA9PSBOVUxMKSB8fCAob3V0LT5lcnJvcikpIHJldHVybigtMSk7CisgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGxlbiA9IHN0cmxlbihzdHIpOworCisgICAgaWYgKGxlbiA+IDApCisJcmV0dXJuKHhtbE91dHB1dEJ1ZmZlcldyaXRlKG91dCwgbGVuLCBzdHIpKTsKKyAgICByZXR1cm4obGVuKTsKK30KKworLyoqCisgKiB4bWxPdXRwdXRCdWZmZXJGbHVzaDoKKyAqIEBvdXQ6ICBhIGJ1ZmZlcmVkIG91dHB1dAorICoKKyAqIGZsdXNoZXMgdGhlIG91dHB1dCBJL08gY2hhbm5lbAorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxPdXRwdXRCdWZmZXJGbHVzaCh4bWxPdXRwdXRCdWZmZXJQdHIgb3V0KSB7CisgICAgaW50IG5iY2hhcnMgPSAwLCByZXQgPSAwOworCisgICAgaWYgKChvdXQgPT0gTlVMTCkgfHwgKG91dC0+ZXJyb3IpKSByZXR1cm4oLTEpOworICAgIC8qCisgICAgICogZmlyc3QgaGFuZGxlIGVuY29kaW5nIHN0dWZmLgorICAgICAqLworICAgIGlmICgob3V0LT5jb252ICE9IE5VTEwpICYmIChvdXQtPmVuY29kZXIgIT0gTlVMTCkpIHsKKwkvKgorCSAqIGNvbnZlcnQgYXMgbXVjaCBhcyBwb3NzaWJsZSB0byB0aGUgcGFyc2VyIHJlYWRpbmcgYnVmZmVyLgorCSAqLworCW5iY2hhcnMgPSB4bWxDaGFyRW5jT3V0RnVuYyhvdXQtPmVuY29kZXIsIG91dC0+Y29udiwgb3V0LT5idWZmZXIpOworCWlmIChuYmNoYXJzIDwgMCkgeworCSAgICB4bWxJT0VycihYTUxfSU9fRU5DT0RFUiwgTlVMTCk7CisJICAgIG91dC0+ZXJyb3IgPSBYTUxfSU9fRU5DT0RFUjsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBzZWNvbmQgZmx1c2ggdGhlIHN0dWZmIHRvIHRoZSBJL08gY2hhbm5lbAorICAgICAqLworICAgIGlmICgob3V0LT5jb252ICE9IE5VTEwpICYmIChvdXQtPmVuY29kZXIgIT0gTlVMTCkgJiYKKwkob3V0LT53cml0ZWNhbGxiYWNrICE9IE5VTEwpKSB7CisJcmV0ID0gb3V0LT53cml0ZWNhbGxiYWNrKG91dC0+Y29udGV4dCwKKwkgICAgICAgICAgIChjb25zdCBjaGFyICopb3V0LT5jb252LT5jb250ZW50LCBvdXQtPmNvbnYtPnVzZSk7CisJaWYgKHJldCA+PSAwKQorCSAgICB4bWxCdWZmZXJTaHJpbmsob3V0LT5jb252LCByZXQpOworICAgIH0gZWxzZSBpZiAob3V0LT53cml0ZWNhbGxiYWNrICE9IE5VTEwpIHsKKwlyZXQgPSBvdXQtPndyaXRlY2FsbGJhY2sob3V0LT5jb250ZXh0LAorCSAgICAgICAgICAgKGNvbnN0IGNoYXIgKilvdXQtPmJ1ZmZlci0+Y29udGVudCwgb3V0LT5idWZmZXItPnVzZSk7CisJaWYgKHJldCA+PSAwKQorCSAgICB4bWxCdWZmZXJTaHJpbmsob3V0LT5idWZmZXIsIHJldCk7CisgICAgfQorICAgIGlmIChyZXQgPCAwKSB7CisJeG1sSU9FcnIoWE1MX0lPX0ZMVVNILCBOVUxMKTsKKwlvdXQtPmVycm9yID0gWE1MX0lPX0ZMVVNIOworCXJldHVybihyZXQpOworICAgIH0KKyAgICBvdXQtPndyaXR0ZW4gKz0gcmV0OworCisjaWZkZWYgREVCVUdfSU5QVVQKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIkkvTzogZmx1c2hlZCAlZCBjaGFyc1xuIiwgcmV0KTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbFBhcnNlckdldERpcmVjdG9yeToKKyAqIEBmaWxlbmFtZTogIHRoZSBwYXRoIHRvIGEgZmlsZQorICoKKyAqIGxvb2t1cCB0aGUgZGlyZWN0b3J5IGZvciB0aGF0IGZpbGUKKyAqCisgKiBSZXR1cm5zIGEgbmV3IGFsbG9jYXRlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5LCBvciBOVUxMLgorICovCitjaGFyICoKK3htbFBhcnNlckdldERpcmVjdG9yeShjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgIGNoYXIgKnJldCA9IE5VTEw7CisgICAgY2hhciBkaXJbMTAyNF07CisgICAgY2hhciAqY3VyOworCisjaWZkZWYgX1dJTjMyX1dDRSAgLyogZWFzeSB3YXkgYnkgbm93IC4uLiB3aW5jZSBkb2VzIG5vdCBoYXZlIGRpcnMhICovCisgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYKKworICAgIGlmICh4bWxJbnB1dENhbGxiYWNrSW5pdGlhbGl6ZWQgPT0gMCkKKwl4bWxSZWdpc3RlckRlZmF1bHRJbnB1dENhbGxiYWNrcygpOworCisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpIHJldHVybihOVUxMKTsKKworI2lmIGRlZmluZWQoV0lOMzIpICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pCisjICAgZGVmaW5lIElTX1hNTFBHRF9TRVAoY2gpICgoY2g9PScvJyl8fChjaD09J1xcJykpCisjZWxzZQorIyAgIGRlZmluZSBJU19YTUxQR0RfU0VQKGNoKSAoY2g9PScvJykKKyNlbmRpZgorCisgICAgc3RybmNweShkaXIsIGZpbGVuYW1lLCAxMDIzKTsKKyAgICBkaXJbMTAyM10gPSAwOworICAgIGN1ciA9ICZkaXJbc3RybGVuKGRpcildOworICAgIHdoaWxlIChjdXIgPiBkaXIpIHsKKyAgICAgICAgIGlmIChJU19YTUxQR0RfU0VQKCpjdXIpKSBicmVhazsKKwkgY3VyIC0tOworICAgIH0KKyAgICBpZiAoSVNfWE1MUEdEX1NFUCgqY3VyKSkgeworICAgICAgICBpZiAoY3VyID09IGRpcikgZGlyWzFdID0gMDsKKwllbHNlICpjdXIgPSAwOworCXJldCA9IHhtbE1lbVN0cmR1cChkaXIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChnZXRjd2QoZGlyLCAxMDI0KSAhPSBOVUxMKSB7CisJICAgIGRpclsxMDIzXSA9IDA7CisJICAgIHJldCA9IHhtbE1lbVN0cmR1cChkaXIpOworCX0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7CisjdW5kZWYgSVNfWE1MUEdEX1NFUAorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCSoKKyAqCQlFeHRlcm5hbCBlbnRpdGllcyBsb2FkaW5nCQkJKgorICoJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbENoZWNrSFRUUElucHV0OgorICogQGN0eHQ6IGFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHJldDogYW4gWE1MIHBhcnNlciBpbnB1dAorICoKKyAqIENoZWNrIGFuIGlucHV0IGluIGNhc2UgaXQgd2FzIGNyZWF0ZWQgZnJvbSBhbiBIVFRQIHN0cmVhbSwgaW4gdGhhdAorICogY2FzZSBpdCB3aWxsIGhhbmRsZSBlbmNvZGluZyBhbmQgdXBkYXRlIG9mIHRoZSBiYXNlIFVSTCBpbiBjYXNlIG9mCisgKiByZWRpcmVjdGlvbi4gSXQgYWxzbyBjaGVja3MgZm9yIEhUVFAgZXJyb3JzIGluIHdoaWNoIGNhc2UgdGhlIGlucHV0CisgKiBpcyBjbGVhbmx5IGZyZWVkIHVwIGFuZCBhbiBhcHByb3ByaWF0ZSBlcnJvciBpcyByYWlzZWQgaW4gY29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIGlucHV0IG9yIE5VTEwgaW4gY2FzZSBvZiBIVFRQIGVycm9yLgorICovCit4bWxQYXJzZXJJbnB1dFB0cgoreG1sQ2hlY2tIVFRQSW5wdXQoeG1sUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxQYXJzZXJJbnB1dFB0ciByZXQpIHsKKyNpZmRlZiBMSUJYTUxfSFRUUF9FTkFCTEVECisgICAgaWYgKChyZXQgIT0gTlVMTCkgJiYgKHJldC0+YnVmICE9IE5VTEwpICYmCisgICAgICAgIChyZXQtPmJ1Zi0+cmVhZGNhbGxiYWNrID09IHhtbElPSFRUUFJlYWQpICYmCisgICAgICAgIChyZXQtPmJ1Zi0+Y29udGV4dCAhPSBOVUxMKSkgeworICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZzsKKyAgICAgICAgY29uc3QgY2hhciAqcmVkaXI7CisgICAgICAgIGNvbnN0IGNoYXIgKm1pbWU7CisgICAgICAgIGludCBjb2RlOworCisgICAgICAgIGNvZGUgPSB4bWxOYW5vSFRUUFJldHVybkNvZGUocmV0LT5idWYtPmNvbnRleHQpOworICAgICAgICBpZiAoY29kZSA+PSA0MDApIHsKKyAgICAgICAgICAgIC8qIGZhdGFsIGVycm9yICovCisJICAgIGlmIChyZXQtPmZpbGVuYW1lICE9IE5VTEwpCisJCV9feG1sTG9hZGVyRXJyKGN0eHQsICJmYWlsZWQgdG8gbG9hZCBIVFRQIHJlc291cmNlIFwiJXNcIlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSByZXQtPmZpbGVuYW1lKTsKKwkgICAgZWxzZQorCQlfX3htbExvYWRlckVycihjdHh0LCAiZmFpbGVkIHRvIGxvYWQgSFRUUCByZXNvdXJjZVxuIiwgTlVMTCk7CisgICAgICAgICAgICB4bWxGcmVlSW5wdXRTdHJlYW0ocmV0KTsKKyAgICAgICAgICAgIHJldCA9IE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisKKyAgICAgICAgICAgIG1pbWUgPSB4bWxOYW5vSFRUUE1pbWVUeXBlKHJldC0+YnVmLT5jb250ZXh0KTsKKyAgICAgICAgICAgIGlmICgoeG1sU3Ryc3RyKEJBRF9DQVNUIG1pbWUsIEJBRF9DQVNUICIveG1sIikpIHx8CisgICAgICAgICAgICAgICAgKHhtbFN0cnN0cihCQURfQ0FTVCBtaW1lLCBCQURfQ0FTVCAiK3htbCIpKSkgeworICAgICAgICAgICAgICAgIGVuY29kaW5nID0geG1sTmFub0hUVFBFbmNvZGluZyhyZXQtPmJ1Zi0+Y29udGV4dCk7CisgICAgICAgICAgICAgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoYW5kbGVyOworCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcihlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFN3aXRjaElucHV0RW5jb2RpbmcoY3R4dCwgcmV0LCBoYW5kbGVyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9feG1sRXJyRW5jb2RpbmcoY3R4dCwgWE1MX0VSUl9VTktOT1dOX0VOQ09ESU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biBlbmNvZGluZyAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBRF9DQVNUIGVuY29kaW5nLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAocmV0LT5lbmNvZGluZyA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0LT5lbmNvZGluZyA9IHhtbFN0cmR1cChCQURfQ0FTVCBlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgfQorI2lmIDAKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoeG1sU3Ryc3RyKEJBRF9DQVNUIG1pbWUsIEJBRF9DQVNUICJodG1sIikpIHsKKyNlbmRpZgorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVkaXIgPSB4bWxOYW5vSFRUUFJlZGlyKHJldC0+YnVmLT5jb250ZXh0KTsKKyAgICAgICAgICAgIGlmIChyZWRpciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaWYgKHJldC0+ZmlsZW5hbWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgeG1sRnJlZSgoeG1sQ2hhciAqKSByZXQtPmZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0LT5kaXJlY3RvcnkgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKCh4bWxDaGFyICopIHJldC0+ZGlyZWN0b3J5KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0LT5kaXJlY3RvcnkgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXQtPmZpbGVuYW1lID0KKyAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHJlZGlyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgaW50IHhtbE5vTmV0RXhpc3RzKGNvbnN0IGNoYXIgKlVSTCkgeworICAgIGNvbnN0IGNoYXIgKnBhdGg7CisKKyAgICBpZiAoVVJMID09IE5VTEwpCisJcmV0dXJuKDApOworCisgICAgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBVUkwsIEJBRF9DQVNUICJmaWxlOi8vbG9jYWxob3N0LyIsIDE3KSkKKyNpZiBkZWZpbmVkIChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKwlwYXRoID0gJlVSTFsxN107CisjZWxzZQorCXBhdGggPSAmVVJMWzE2XTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKCF4bWxTdHJuY2FzZWNtcChCQURfQ0FTVCBVUkwsIEJBRF9DQVNUICJmaWxlOi8vLyIsIDgpKSB7CisjaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pCisJcGF0aCA9ICZVUkxbOF07CisjZWxzZQorCXBhdGggPSAmVVJMWzddOworI2VuZGlmCisgICAgfSBlbHNlCisJcGF0aCA9IFVSTDsKKworICAgIHJldHVybiB4bWxDaGVja0ZpbGVuYW1lKHBhdGgpOworfQorCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorCisvKioKKyAqIHhtbFJlc29sdmVSZXNvdXJjZUZyb21DYXRhbG9nOgorICogQFVSTDogIHRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZAorICogQElEOiAgdGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkCisgKiBAY3R4dDogIHRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBlbnRpdHkgaXMgY2FsbGVkIG9yIE5VTEwKKyAqCisgKiBSZXNvbHZlcyB0aGUgVVJMIGFuZCBJRCBhZ2FpbnN0IHRoZSBhcHByb3ByaWF0ZSBjYXRhbG9nLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IHhtbERlZmF1bHRFeHRlcm5hbEVudGl0eUxvYWRlciBhbmQKKyAqIHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIuCisgKgorICogUmV0dXJucyBhIG5ldyBhbGxvY2F0ZWQgVVJMLCBvciBOVUxMLgorICovCitzdGF0aWMgeG1sQ2hhciAqCit4bWxSZXNvbHZlUmVzb3VyY2VGcm9tQ2F0YWxvZyhjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKklELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sQ2hhciAqcmVzb3VyY2UgPSBOVUxMOworICAgIHhtbENhdGFsb2dBbGxvdyBwcmVmOworCisgICAgLyoKKyAgICAgKiBJZiB0aGUgcmVzb3VyY2UgZG9lc24ndCBleGlzdHMgYXMgYSBmaWxlLAorICAgICAqIHRyeSB0byBsb2FkIGl0IGZyb20gdGhlIHJlc291cmNlIHBvaW50ZWQgaW4gdGhlIGNhdGFsb2dzCisgICAgICovCisgICAgcHJlZiA9IHhtbENhdGFsb2dHZXREZWZhdWx0cygpOworCisgICAgaWYgKChwcmVmICE9IFhNTF9DQVRBX0FMTE9XX05PTkUpICYmICgheG1sTm9OZXRFeGlzdHMoVVJMKSkpIHsKKwkvKgorCSAqIERvIGEgbG9jYWwgbG9va3VwCisJICovCisJaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5jYXRhbG9ncyAhPSBOVUxMKSAmJgorCSAgICAoKHByZWYgPT0gWE1MX0NBVEFfQUxMT1dfQUxMKSB8fAorCSAgICAgKHByZWYgPT0gWE1MX0NBVEFfQUxMT1dfRE9DVU1FTlQpKSkgeworCSAgICByZXNvdXJjZSA9IHhtbENhdGFsb2dMb2NhbFJlc29sdmUoY3R4dC0+Y2F0YWxvZ3MsCisJCQkJCSAgICAgIChjb25zdCB4bWxDaGFyICopSUQsCisJCQkJCSAgICAgIChjb25zdCB4bWxDaGFyICopVVJMKTsKKyAgICAgICAgfQorCS8qCisJICogVHJ5IGEgZ2xvYmFsIGxvb2t1cAorCSAqLworCWlmICgocmVzb3VyY2UgPT0gTlVMTCkgJiYKKwkgICAgKChwcmVmID09IFhNTF9DQVRBX0FMTE9XX0FMTCkgfHwKKwkgICAgIChwcmVmID09IFhNTF9DQVRBX0FMTE9XX0dMT0JBTCkpKSB7CisJICAgIHJlc291cmNlID0geG1sQ2F0YWxvZ1Jlc29sdmUoKGNvbnN0IHhtbENoYXIgKilJRCwKKwkJCQkJIChjb25zdCB4bWxDaGFyICopVVJMKTsKKwl9CisJaWYgKChyZXNvdXJjZSA9PSBOVUxMKSAmJiAoVVJMICE9IE5VTEwpKQorCSAgICByZXNvdXJjZSA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBVUkwpOworCisJLyoKKwkgKiBUT0RPOiBkbyBhbiBVUkkgbG9va3VwIG9uIHRoZSByZWZlcmVuY2UKKwkgKi8KKwlpZiAoKHJlc291cmNlICE9IE5VTEwpICYmICgheG1sTm9OZXRFeGlzdHMoKGNvbnN0IGNoYXIgKilyZXNvdXJjZSkpKSB7CisJICAgIHhtbENoYXIgKnRtcCA9IE5VTEw7CisKKwkgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5jYXRhbG9ncyAhPSBOVUxMKSAmJgorCQkoKHByZWYgPT0gWE1MX0NBVEFfQUxMT1dfQUxMKSB8fAorCQkgKHByZWYgPT0gWE1MX0NBVEFfQUxMT1dfRE9DVU1FTlQpKSkgeworCQl0bXAgPSB4bWxDYXRhbG9nTG9jYWxSZXNvbHZlVVJJKGN0eHQtPmNhdGFsb2dzLCByZXNvdXJjZSk7CisJICAgIH0KKwkgICAgaWYgKCh0bXAgPT0gTlVMTCkgJiYKKwkJKChwcmVmID09IFhNTF9DQVRBX0FMTE9XX0FMTCkgfHwKKwkgICAgICAgICAocHJlZiA9PSBYTUxfQ0FUQV9BTExPV19HTE9CQUwpKSkgeworCQl0bXAgPSB4bWxDYXRhbG9nUmVzb2x2ZVVSSShyZXNvdXJjZSk7CisJICAgIH0KKworCSAgICBpZiAodG1wICE9IE5VTEwpIHsKKwkJeG1sRnJlZShyZXNvdXJjZSk7CisJCXJlc291cmNlID0gdG1wOworCSAgICB9CisJfQorICAgIH0KKworICAgIHJldHVybiByZXNvdXJjZTsKK30KKworI2VuZGlmCisKKy8qKgorICogeG1sRGVmYXVsdEV4dGVybmFsRW50aXR5TG9hZGVyOgorICogQFVSTDogIHRoZSBVUkwgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZAorICogQElEOiAgdGhlIFN5c3RlbSBJRCBmb3IgdGhlIGVudGl0eSB0byBsb2FkCisgKiBAY3R4dDogIHRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBlbnRpdHkgaXMgY2FsbGVkIG9yIE5VTEwKKyAqCisgKiBCeSBkZWZhdWx0IHdlIGRvbid0IGxvYWQgZXh0ZXJuYWwgZW50aXRpdGVzLCB5ZXQuCisgKgorICogUmV0dXJucyBhIG5ldyBhbGxvY2F0ZWQgeG1sUGFyc2VySW5wdXRQdHIsIG9yIE5VTEwuCisgKi8KK3N0YXRpYyB4bWxQYXJzZXJJbnB1dFB0cgoreG1sRGVmYXVsdEV4dGVybmFsRW50aXR5TG9hZGVyKGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbFBhcnNlcklucHV0UHRyIHJldCA9IE5VTEw7CisgICAgeG1sQ2hhciAqcmVzb3VyY2UgPSBOVUxMOworCisjaWZkZWYgREVCVUdfRVhURVJOQUxfRU5USVRJRVMKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgInhtbERlZmF1bHRFeHRlcm5hbEVudGl0eUxvYWRlciglcywgeHh4KVxuIiwgVVJMKTsKKyNlbmRpZgorICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+b3B0aW9ucyAmIFhNTF9QQVJTRV9OT05FVCkpIHsKKyAgICAgICAgaW50IG9wdGlvbnMgPSBjdHh0LT5vcHRpb25zOworCisJY3R4dC0+b3B0aW9ucyAtPSBYTUxfUEFSU0VfTk9ORVQ7CisgICAgICAgIHJldCA9IHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoVVJMLCBJRCwgY3R4dCk7CisJY3R4dC0+b3B0aW9ucyA9IG9wdGlvbnM7CisJcmV0dXJuKHJldCk7CisgICAgfQorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKyAgICByZXNvdXJjZSA9IHhtbFJlc29sdmVSZXNvdXJjZUZyb21DYXRhbG9nKFVSTCwgSUQsIGN0eHQpOworI2VuZGlmCisKKyAgICBpZiAocmVzb3VyY2UgPT0gTlVMTCkKKyAgICAgICAgcmVzb3VyY2UgPSAoeG1sQ2hhciAqKSBVUkw7CisKKyAgICBpZiAocmVzb3VyY2UgPT0gTlVMTCkgeworICAgICAgICBpZiAoSUQgPT0gTlVMTCkKKyAgICAgICAgICAgIElEID0gIk5VTEwiOworICAgICAgICBfX3htbExvYWRlckVycihjdHh0LCAiZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5IFwiJXNcIlxuIiwgSUQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICByZXQgPSB4bWxOZXdJbnB1dEZyb21GaWxlKGN0eHQsIChjb25zdCBjaGFyICopIHJlc291cmNlKTsKKyAgICBpZiAoKHJlc291cmNlICE9IE5VTEwpICYmIChyZXNvdXJjZSAhPSAoeG1sQ2hhciAqKSBVUkwpKQorICAgICAgICB4bWxGcmVlKHJlc291cmNlKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK3N0YXRpYyB4bWxFeHRlcm5hbEVudGl0eUxvYWRlciB4bWxDdXJyZW50RXh0ZXJuYWxFbnRpdHlMb2FkZXIgPQorICAgICAgIHhtbERlZmF1bHRFeHRlcm5hbEVudGl0eUxvYWRlcjsKKworLyoqCisgKiB4bWxTZXRFeHRlcm5hbEVudGl0eUxvYWRlcjoKKyAqIEBmOiAgdGhlIG5ldyBlbnRpdHkgcmVzb2x2ZXIgZnVuY3Rpb24KKyAqCisgKiBDaGFuZ2VzIHRoZSBkZWZhdWx0ZXh0ZXJuYWwgZW50aXR5IHJlc29sdmVyIGZ1bmN0aW9uIGZvciB0aGUgYXBwbGljYXRpb24KKyAqLwordm9pZAoreG1sU2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIoeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIgZikgeworICAgIHhtbEN1cnJlbnRFeHRlcm5hbEVudGl0eUxvYWRlciA9IGY7Cit9CisKKy8qKgorICogeG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXI6CisgKgorICogR2V0IHRoZSBkZWZhdWx0IGV4dGVybmFsIGVudGl0eSByZXNvbHZlciBmdW5jdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uCisgKgorICogUmV0dXJucyB0aGUgeG1sRXh0ZXJuYWxFbnRpdHlMb2FkZXIgZnVuY3Rpb24gcG9pbnRlcgorICovCit4bWxFeHRlcm5hbEVudGl0eUxvYWRlcgoreG1sR2V0RXh0ZXJuYWxFbnRpdHlMb2FkZXIodm9pZCkgeworICAgIHJldHVybih4bWxDdXJyZW50RXh0ZXJuYWxFbnRpdHlMb2FkZXIpOworfQorCisvKioKKyAqIHhtbExvYWRFeHRlcm5hbEVudGl0eToKKyAqIEBVUkw6ICB0aGUgVVJMIGZvciB0aGUgZW50aXR5IHRvIGxvYWQKKyAqIEBJRDogIHRoZSBQdWJsaWMgSUQgZm9yIHRoZSBlbnRpdHkgdG8gbG9hZAorICogQGN0eHQ6ICB0aGUgY29udGV4dCBpbiB3aGljaCB0aGUgZW50aXR5IGlzIGNhbGxlZCBvciBOVUxMCisgKgorICogTG9hZCBhbiBleHRlcm5hbCBlbnRpdHksIG5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoaXMgZnVuY3Rpb24gZm9yCisgKiB1bnBhcnNlZCBlbnRpdGllcyBtYXkgZ2VuZXJhdGUgcHJvYmxlbXMKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxQYXJzZXJJbnB1dFB0ciBvciBOVUxMCisgKi8KK3htbFBhcnNlcklucHV0UHRyCit4bWxMb2FkRXh0ZXJuYWxFbnRpdHkoY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICpJRCwKKyAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpZiAoKFVSTCAhPSBOVUxMKSAmJiAoeG1sTm9OZXRFeGlzdHMoVVJMKSA9PSAwKSkgeworCWNoYXIgKmNhbm9uaWNGaWxlbmFtZTsKKwl4bWxQYXJzZXJJbnB1dFB0ciByZXQ7CisKKwljYW5vbmljRmlsZW5hbWUgPSAoY2hhciAqKSB4bWxDYW5vbmljUGF0aCgoY29uc3QgeG1sQ2hhciAqKSBVUkwpOworCWlmIChjYW5vbmljRmlsZW5hbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sSU9FcnJNZW1vcnkoImJ1aWxkaW5nIGNhbm9uaWNhbCBwYXRoXG4iKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKworCXJldCA9IHhtbEN1cnJlbnRFeHRlcm5hbEVudGl0eUxvYWRlcihjYW5vbmljRmlsZW5hbWUsIElELCBjdHh0KTsKKwl4bWxGcmVlKGNhbm9uaWNGaWxlbmFtZSk7CisJcmV0dXJuKHJldCk7CisgICAgfQorICAgIHJldHVybih4bWxDdXJyZW50RXh0ZXJuYWxFbnRpdHlMb2FkZXIoVVJMLCBJRCwgY3R4dCkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlEaXNhYmxpbmcgTmV0d29yayBhY2Nlc3MJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXI6CisgKiBAVVJMOiAgdGhlIFVSTCBmb3IgdGhlIGVudGl0eSB0byBsb2FkCisgKiBASUQ6ICB0aGUgU3lzdGVtIElEIGZvciB0aGUgZW50aXR5IHRvIGxvYWQKKyAqIEBjdHh0OiAgdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGVudGl0eSBpcyBjYWxsZWQgb3IgTlVMTAorICoKKyAqIEEgc3BlY2lmaWMgZW50aXR5IGxvYWRlciBkaXNhYmxpbmcgbmV0d29yayBhY2Nlc3NlcywgdGhvdWdoIHN0aWxsCisgKiBhbGxvd2luZyBsb2NhbCBjYXRhbG9nIGFjY2Vzc2VzIGZvciByZXNvbHV0aW9uLgorICoKKyAqIFJldHVybnMgYSBuZXcgYWxsb2NhdGVkIHhtbFBhcnNlcklucHV0UHRyLCBvciBOVUxMLgorICovCit4bWxQYXJzZXJJbnB1dFB0cgoreG1sTm9OZXRFeHRlcm5hbEVudGl0eUxvYWRlcihjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKklELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCA9IE5VTEw7CisgICAgeG1sQ2hhciAqcmVzb3VyY2UgPSBOVUxMOworCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorICAgIHJlc291cmNlID0geG1sUmVzb2x2ZVJlc291cmNlRnJvbUNhdGFsb2coVVJMLCBJRCwgY3R4dCk7CisjZW5kaWYKKworICAgIGlmIChyZXNvdXJjZSA9PSBOVUxMKQorCXJlc291cmNlID0gKHhtbENoYXIgKikgVVJMOworCisgICAgaWYgKHJlc291cmNlICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKCgheG1sU3RybmNhc2VjbXAoQkFEX0NBU1QgcmVzb3VyY2UsIEJBRF9DQVNUICJmdHA6Ly8iLCA2KSkgfHwKKyAgICAgICAgICAgICgheG1sU3RybmNhc2VjbXAoQkFEX0NBU1QgcmVzb3VyY2UsIEJBRF9DQVNUICJodHRwOi8vIiwgNykpKSB7CisgICAgICAgICAgICB4bWxJT0VycihYTUxfSU9fTkVUV09SS19BVFRFTVBULCAoY29uc3QgY2hhciAqKSByZXNvdXJjZSk7CisJICAgIGlmIChyZXNvdXJjZSAhPSAoeG1sQ2hhciAqKSBVUkwpCisJCXhtbEZyZWUocmVzb3VyY2UpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0KKyAgICBpbnB1dCA9IHhtbERlZmF1bHRFeHRlcm5hbEVudGl0eUxvYWRlcigoY29uc3QgY2hhciAqKSByZXNvdXJjZSwgSUQsIGN0eHQpOworICAgIGlmIChyZXNvdXJjZSAhPSAoeG1sQ2hhciAqKSBVUkwpCisJeG1sRnJlZShyZXNvdXJjZSk7CisgICAgcmV0dXJuKGlucHV0KTsKK30KKworI2RlZmluZSBib3R0b21feG1sSU8KKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbGNhdGFsb2cuYyBiL2xpYnhtbDItMi43LjcveG1sY2F0YWxvZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OTUwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3htbGNhdGFsb2cuYwpAQCAtMCwwICsxLDYxNCBAQAorLyoKKyAqIHhtbGNhdGFsb2cuYyA6IGEgc21hbGwgdXRpbGl0eSBwcm9ncmFtIHRvIGhhbmRsZSBYTUwgY2F0YWxvZ3MKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKworI2lmZGVmIEhBVkVfTElCUkVBRExJTkUKKyNpbmNsdWRlIDxyZWFkbGluZS9yZWFkbGluZS5oPgorI2lmZGVmIEhBVkVfTElCSElTVE9SWQorI2luY2x1ZGUgPHJlYWRsaW5lL2hpc3RvcnkuaD4KKyNlbmRpZgorI2VuZGlmCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2luY2x1ZGUgPGxpYnhtbC9jYXRhbG9nLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisKKyNpZiBkZWZpbmVkKExJQlhNTF9DQVRBTE9HX0VOQUJMRUQpICYmIGRlZmluZWQoTElCWE1MX09VVFBVVF9FTkFCTEVEKQorc3RhdGljIGludCBzaGVsbCA9IDA7CitzdGF0aWMgaW50IHNnbWwgPSAwOworc3RhdGljIGludCBub291dCA9IDA7CitzdGF0aWMgaW50IGNyZWF0ZSA9IDA7CitzdGF0aWMgaW50IGFkZCA9IDA7CitzdGF0aWMgaW50IGRlbCA9IDA7CitzdGF0aWMgaW50IGNvbnZlcnQgPSAwOworc3RhdGljIGludCBub19zdXBlcl91cGRhdGUgPSAwOworc3RhdGljIGludCB2ZXJib3NlID0gMDsKK3N0YXRpYyBjaGFyICpmaWxlbmFtZSA9IE5VTEw7CisKKworI2lmbmRlZiBYTUxfU0dNTF9ERUZBVUxUX0NBVEFMT0cKKyNkZWZpbmUgWE1MX1NHTUxfREVGQVVMVF9DQVRBTE9HICIvZXRjL3NnbWwvY2F0YWxvZyIKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlTaGVsbCBJbnRlcmZhY2UJCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIHhtbFNoZWxsUmVhZGxpbmU6CisgKiBAcHJvbXB0OiAgdGhlIHByb21wdCB2YWx1ZQorICoKKyAqIFJlYWQgYSBzdHJpbmcKKyAqIAorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gaXQgb3IgTlVMTCBvbiBFT0YgdGhlIGNhbGxlciBpcyBleHBlY3RlZCB0bworICogICAgIGZyZWUgdGhlIHJldHVybmVkIHN0cmluZy4KKyAqLworc3RhdGljIGNoYXIgKgoreG1sU2hlbGxSZWFkbGluZShjb25zdCBjaGFyICpwcm9tcHQpIHsKKyNpZmRlZiBIQVZFX0xJQlJFQURMSU5FCisgICAgY2hhciAqbGluZV9yZWFkOworCisgICAgLyogR2V0IGEgbGluZSBmcm9tIHRoZSB1c2VyLiAqLworICAgIGxpbmVfcmVhZCA9IHJlYWRsaW5lIChwcm9tcHQpOworCisgICAgLyogSWYgdGhlIGxpbmUgaGFzIGFueSB0ZXh0IGluIGl0LCBzYXZlIGl0IG9uIHRoZSBoaXN0b3J5LiAqLworICAgIGlmIChsaW5lX3JlYWQgJiYgKmxpbmVfcmVhZCkKKwlhZGRfaGlzdG9yeSAobGluZV9yZWFkKTsKKworICAgIHJldHVybiAobGluZV9yZWFkKTsKKyNlbHNlCisgICAgY2hhciBsaW5lX3JlYWRbNTAxXTsKKyAgICBjaGFyICpyZXQ7CisgICAgaW50IGxlbjsKKworICAgIGlmIChwcm9tcHQgIT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiVzIiwgcHJvbXB0KTsKKyAgICBpZiAoIWZnZXRzKGxpbmVfcmVhZCwgNTAwLCBzdGRpbikpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBsaW5lX3JlYWRbNTAwXSA9IDA7CisgICAgbGVuID0gc3RybGVuKGxpbmVfcmVhZCk7CisgICAgcmV0ID0gKGNoYXIgKikgbWFsbG9jKGxlbiArIDEpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeworCW1lbWNweSAocmV0LCBsaW5lX3JlYWQsIGxlbiArIDEpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCB1c2Vyc2hlbGwodm9pZCkgeworICAgIGNoYXIgKmNtZGxpbmUgPSBOVUxMLCAqY3VyOworICAgIGludCBuYmFyZ3M7CisgICAgY2hhciBjb21tYW5kWzEwMF07CisgICAgY2hhciBhcmdbNDAwXTsKKyAgICBjaGFyICphcmd2WzIwXTsKKyAgICBpbnQgaSwgcmV0OworICAgIHhtbENoYXIgKmFuczsKKworICAgIHdoaWxlICgxKSB7CisJY21kbGluZSA9IHhtbFNoZWxsUmVhZGxpbmUoIj4gIik7CisJaWYgKGNtZGxpbmUgPT0gTlVMTCkKKwkgICAgcmV0dXJuOworCisJLyoKKwkgKiBQYXJzZSB0aGUgY29tbWFuZCBpdHNlbGYKKwkgKi8KKwljdXIgPSBjbWRsaW5lOworCW5iYXJncyA9IDA7CisJd2hpbGUgKCgqY3VyID09ICcgJykgfHwgKCpjdXIgPT0gJ1x0JykpIGN1cisrOworCWkgPSAwOworCXdoaWxlICgoKmN1ciAhPSAnICcpICYmICgqY3VyICE9ICdcdCcpICYmCisJICAgICAgICgqY3VyICE9ICdcbicpICYmICgqY3VyICE9ICdccicpKSB7CisJICAgIGlmICgqY3VyID09IDApCisJCWJyZWFrOworCSAgICBjb21tYW5kW2krK10gPSAqY3VyKys7CisJfQorCWNvbW1hbmRbaV0gPSAwOworCWlmIChpID09IDApIHsKKwkgICAgZnJlZShjbWRsaW5lKTsKKwkgICAgY29udGludWU7CisJfQorCisJLyoKKwkgKiBQYXJzZSB0aGUgYXJndW1lbnQgc3RyaW5nCisJICovCisJbWVtc2V0KGFyZywgMCwgc2l6ZW9mKGFyZykpOworCXdoaWxlICgoKmN1ciA9PSAnICcpIHx8ICgqY3VyID09ICdcdCcpKSBjdXIrKzsKKwlpID0gMDsKKwl3aGlsZSAoKCpjdXIgIT0gJ1xuJykgJiYgKCpjdXIgIT0gJ1xyJykgJiYgKCpjdXIgIT0gMCkpIHsKKwkgICAgaWYgKCpjdXIgPT0gMCkKKwkJYnJlYWs7CisJICAgIGFyZ1tpKytdID0gKmN1cisrOworCX0KKwlhcmdbaV0gPSAwOworCisJLyoKKwkgKiBQYXJzZSB0aGUgYXJndW1lbnRzCisJICovCisJaSA9IDA7CisJbmJhcmdzID0gMDsKKwljdXIgPSBhcmc7CisJbWVtc2V0KGFyZ3YsIDAsIHNpemVvZihhcmd2KSk7CisJd2hpbGUgKCpjdXIgIT0gMCkgeworCSAgICB3aGlsZSAoKCpjdXIgPT0gJyAnKSB8fCAoKmN1ciA9PSAnXHQnKSkgY3VyKys7CisJICAgIGlmICgqY3VyID09ICdcJycpIHsKKwkJY3VyKys7CisJCWFyZ3ZbaV0gPSBjdXI7CisJCXdoaWxlICgoKmN1ciAhPSAwKSAmJiAoKmN1ciAhPSAnXCcnKSkgY3VyKys7CisJCWlmICgqY3VyID09ICdcJycpIHsKKwkJICAgICpjdXIgPSAwOworCQkgICAgbmJhcmdzKys7CisJCSAgICBpKys7CisJCSAgICBjdXIrKzsKKwkJfQorCSAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJyInKSB7IAorCQljdXIrKzsKKwkJYXJndltpXSA9IGN1cjsKKwkJd2hpbGUgKCgqY3VyICE9IDApICYmICgqY3VyICE9ICciJykpIGN1cisrOworCQlpZiAoKmN1ciA9PSAnIicpIHsKKwkJICAgICpjdXIgPSAwOworCQkgICAgbmJhcmdzKys7CisJCSAgICBpKys7CisJCSAgICBjdXIrKzsKKwkJfQorCSAgICB9IGVsc2UgeworCQlhcmd2W2ldID0gY3VyOworCQl3aGlsZSAoKCpjdXIgIT0gMCkgJiYgKCpjdXIgIT0gJyAnKSAmJiAoKmN1ciAhPSAnXHQnKSkKKwkJICAgIGN1cisrOworCQkqY3VyID0gMDsKKwkJbmJhcmdzKys7CisJCWkrKzsKKwkJY3VyKys7CisJICAgIH0KKwl9CisKKwkvKgorCSAqIHN0YXJ0IGludGVycHJldGluZyB0aGUgY29tbWFuZAorCSAqLworICAgICAgICBpZiAoIXN0cmNtcChjb21tYW5kLCAiZXhpdCIpKQorCSAgICBicmVhazsKKyAgICAgICAgaWYgKCFzdHJjbXAoY29tbWFuZCwgInF1aXQiKSkKKwkgICAgYnJlYWs7CisgICAgICAgIGlmICghc3RyY21wKGNvbW1hbmQsICJieWUiKSkKKwkgICAgYnJlYWs7CisJaWYgKCFzdHJjbXAoY29tbWFuZCwgInB1YmxpYyIpKSB7CisJICAgIGlmIChuYmFyZ3MgIT0gMSkgeworCQlwcmludGYoInB1YmxpYyByZXF1aXJlcyAxIGFyZ3VtZW50c1xuIik7CisJICAgIH0gZWxzZSB7CisJCWFucyA9IHhtbENhdGFsb2dSZXNvbHZlUHVibGljKChjb25zdCB4bWxDaGFyICopIGFyZ3ZbMF0pOworCQlpZiAoYW5zID09IE5VTEwpIHsKKwkJICAgIHByaW50ZigiTm8gZW50cnkgZm9yIFBVQkxJQyAlc1xuIiwgYXJndlswXSk7CisJCX0gZWxzZSB7CisJCSAgICBwcmludGYoIiVzXG4iLCAoY2hhciAqKSBhbnMpOworCQkgICAgeG1sRnJlZShhbnMpOworCQl9CisJICAgIH0KKwl9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgInN5c3RlbSIpKSB7CisJICAgIGlmIChuYmFyZ3MgIT0gMSkgeworCQlwcmludGYoInN5c3RlbSByZXF1aXJlcyAxIGFyZ3VtZW50c1xuIik7CisJICAgIH0gZWxzZSB7CisJCWFucyA9IHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtKChjb25zdCB4bWxDaGFyICopIGFyZ3ZbMF0pOworCQlpZiAoYW5zID09IE5VTEwpIHsKKwkJICAgIHByaW50ZigiTm8gZW50cnkgZm9yIFNZU1RFTSAlc1xuIiwgYXJndlswXSk7CisJCX0gZWxzZSB7CisJCSAgICBwcmludGYoIiVzXG4iLCAoY2hhciAqKSBhbnMpOworCQkgICAgeG1sRnJlZShhbnMpOworCQl9CisJICAgIH0KKwl9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgImFkZCIpKSB7CisJICAgIGlmIChzZ21sKSB7CisJCWlmICgobmJhcmdzICE9IDMpICYmIChuYmFyZ3MgIT0gMikpIHsKKwkJICAgIHByaW50ZigiYWRkIHJlcXVpcmVzIDIgb3IgMyBhcmd1bWVudHNcbiIpOworCQl9IGVsc2UgeworCQkgICAgaWYgKGFyZ3ZbMl0gPT0gTlVMTCkKKwkJCXJldCA9IHhtbENhdGFsb2dBZGQoQkFEX0NBU1QgYXJndlswXSwgTlVMTCwKKwkJCQkJICAgIEJBRF9DQVNUIGFyZ3ZbMV0pOworCQkgICAgZWxzZQorCQkJcmV0ID0geG1sQ2F0YWxvZ0FkZChCQURfQ0FTVCBhcmd2WzBdLCBCQURfQ0FTVCBhcmd2WzFdLAorCQkJCQkgICAgQkFEX0NBU1QgYXJndlsyXSk7CisJCSAgICBpZiAocmV0ICE9IDApCisJCQlwcmludGYoImFkZCBjb21tYW5kIGZhaWxlZFxuIik7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkJaWYgKChuYmFyZ3MgIT0gMykgJiYgKG5iYXJncyAhPSAyKSkgeworCQkgICAgcHJpbnRmKCJhZGQgcmVxdWlyZXMgMiBvciAzIGFyZ3VtZW50c1xuIik7CisJCX0gZWxzZSB7CisJCSAgICBpZiAoYXJndlsyXSA9PSBOVUxMKQorCQkJcmV0ID0geG1sQ2F0YWxvZ0FkZChCQURfQ0FTVCBhcmd2WzBdLCBOVUxMLAorCQkJCQkgICAgQkFEX0NBU1QgYXJndlsxXSk7CisJCSAgICBlbHNlCisJCQlyZXQgPSB4bWxDYXRhbG9nQWRkKEJBRF9DQVNUIGFyZ3ZbMF0sIEJBRF9DQVNUIGFyZ3ZbMV0sCisJCQkJCSAgICBCQURfQ0FTVCBhcmd2WzJdKTsKKwkJICAgIGlmIChyZXQgIT0gMCkKKwkJCXByaW50ZigiYWRkIGNvbW1hbmQgZmFpbGVkXG4iKTsKKwkJfQorCSAgICB9CisJfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJkZWwiKSkgeworCSAgICBpZiAobmJhcmdzICE9IDEpIHsKKwkJcHJpbnRmKCJkZWwgcmVxdWlyZXMgMVxuIik7CisJICAgIH0gZWxzZSB7CisJCXJldCA9IHhtbENhdGFsb2dSZW1vdmUoQkFEX0NBU1QgYXJndlswXSk7CisJCWlmIChyZXQgPD0gMCkKKwkJICAgIHByaW50ZigiZGVsIGNvbW1hbmQgZmFpbGVkXG4iKTsKKworCSAgICB9CisJfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJyZXNvbHZlIikpIHsKKwkgICAgaWYgKG5iYXJncyAhPSAyKSB7CisJCXByaW50ZigicmVzb2x2ZSByZXF1aXJlcyAyIGFyZ3VtZW50c1xuIik7CisJICAgIH0gZWxzZSB7CisJCWFucyA9IHhtbENhdGFsb2dSZXNvbHZlKEJBRF9DQVNUIGFyZ3ZbMF0sCisJCQkgICAgICAgICAgICAgICAgQkFEX0NBU1QgYXJndlsxXSk7CisJCWlmIChhbnMgPT0gTlVMTCkgeworCQkgICAgcHJpbnRmKCJSZXNvbHZlciBmYWlsZWQgdG8gZmluZCBhbiBhbnN3ZXJcbiIpOworCQl9IGVsc2UgeworCQkgICAgcHJpbnRmKCIlc1xuIiwgKGNoYXIgKikgYW5zKTsKKwkJICAgIHhtbEZyZWUoYW5zKTsKKwkJfQorCSAgICB9CisJfSBlbHNlIGlmICghc3RyY21wKGNvbW1hbmQsICJkdW1wIikpIHsKKwkgICAgaWYgKG5iYXJncyAhPSAwKSB7CisJCXByaW50ZigiZHVtcCBoYXMgbm8gYXJndW1lbnRzXG4iKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sQ2F0YWxvZ0R1bXAoc3Rkb3V0KTsKKwkgICAgfQorCX0gZWxzZSBpZiAoIXN0cmNtcChjb21tYW5kLCAiZGVidWciKSkgeworCSAgICBpZiAobmJhcmdzICE9IDApIHsKKwkJcHJpbnRmKCJkZWJ1ZyBoYXMgbm8gYXJndW1lbnRzXG4iKTsKKwkgICAgfSBlbHNlIHsKKwkJdmVyYm9zZSsrOworCQl4bWxDYXRhbG9nU2V0RGVidWcodmVyYm9zZSk7CisJICAgIH0KKwl9IGVsc2UgaWYgKCFzdHJjbXAoY29tbWFuZCwgInF1aWV0IikpIHsKKwkgICAgaWYgKG5iYXJncyAhPSAwKSB7CisJCXByaW50ZigicXVpZXQgaGFzIG5vIGFyZ3VtZW50c1xuIik7CisJICAgIH0gZWxzZSB7CisJCWlmICh2ZXJib3NlID4gMCkKKwkJICAgIHZlcmJvc2UtLTsKKwkJeG1sQ2F0YWxvZ1NldERlYnVnKHZlcmJvc2UpOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgaWYgKHN0cmNtcChjb21tYW5kLCAiaGVscCIpKSB7CisJCXByaW50ZigiVW5yZWNvZ25pemVkIGNvbW1hbmQgJXNcbiIsIGNvbW1hbmQpOworCSAgICB9CisJICAgIHByaW50ZigiQ29tbWFuZHMgYXZhaWxhYmxlOlxuIik7CisJICAgIHByaW50ZigiXHRwdWJsaWMgUHVibGljSUQ6IG1ha2UgYSBQVUJMSUMgaWRlbnRpZmllciBsb29rdXBcbiIpOworCSAgICBwcmludGYoIlx0c3lzdGVtIFN5c3RlbUlEOiBtYWtlIGEgU1lTVEVNIGlkZW50aWZpZXIgbG9va3VwXG4iKTsKKwkgICAgcHJpbnRmKCJcdHJlc29sdmUgUHVibGljSUQgU3lzdGVtSUQ6IGRvIGEgZnVsbCByZXNvbHZlciBsb29rdXBcbiIpOworCSAgICBwcmludGYoIlx0YWRkICd0eXBlJyAnb3JpZycgJ3JlcGxhY2UnIDogYWRkIGFuIGVudHJ5XG4iKTsKKwkgICAgcHJpbnRmKCJcdGRlbCAndmFsdWVzJyA6IHJlbW92ZSB2YWx1ZXNcbiIpOworCSAgICBwcmludGYoIlx0ZHVtcDogcHJpbnQgdGhlIGN1cnJlbnQgY2F0YWxvZyBzdGF0ZVxuIik7CisJICAgIHByaW50ZigiXHRkZWJ1ZzogaW5jcmVhc2UgdGhlIHZlcmJvc2l0eSBsZXZlbFxuIik7CisJICAgIHByaW50ZigiXHRxdWlldDogZGVjcmVhc2UgdGhlIHZlcmJvc2l0eSBsZXZlbFxuIik7CisJICAgIHByaW50ZigiXHRleGl0OiAgcXVpdCB0aGUgc2hlbGxcbiIpOworCX0gCisJZnJlZShjbWRsaW5lKTsgLyogbm90IHhtbEZyZWUgaGVyZSAhICovCisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlNYWluCQkJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIHVzYWdlKGNvbnN0IGNoYXIgKm5hbWUpIHsKKyAgICAvKiBzcGxpdCBpbnRvIDIgcHJpbnRmJ3MgdG8gYXZvaWQgb3Zlcmx5IGxvbmcgc3RyaW5nIChnY2Mgd2FybmluZykgKi8KKyAgICBwcmludGYoIlwKK1VzYWdlIDogJXMgW29wdGlvbnNdIGNhdGFsb2dmaWxlIGVudGl0aWVzLi4uXG5cCitcdFBhcnNlIHRoZSBjYXRhbG9nIGZpbGUgYW5kIHF1ZXJ5IGl0IGZvciB0aGUgZW50aXRpZXNcblwKK1x0LS1zZ21sIDogaGFuZGxlIFNHTUwgU3VwZXIgY2F0YWxvZ3MgZm9yIC0tYWRkIGFuZCAtLWRlbFxuXAorXHQtLXNoZWxsIDogcnVuIGEgc2hlbGwgYWxsb3dpbmcgaW50ZXJhY3RpdmUgcXVlcmllc1xuXAorXHQtLWNyZWF0ZSA6IGNyZWF0ZSBhIG5ldyBjYXRhbG9nXG5cCitcdC0tYWRkICd0eXBlJyAnb3JpZycgJ3JlcGxhY2UnIDogYWRkIGFuIFhNTCBlbnRyeVxuXAorXHQtLWFkZCAnZW50cnknIDogYWRkIGFuIFNHTUwgZW50cnlcbiIsIG5hbWUpOworICAgIHByaW50ZigiXAorXHQtLWRlbCAndmFsdWVzJyA6IHJlbW92ZSB2YWx1ZXNcblwKK1x0LS1ub291dDogYXZvaWQgZHVtcGluZyB0aGUgcmVzdWx0IG9uIHN0ZG91dFxuXAorXHQgICAgICAgICB1c2VkIHdpdGggLS1hZGQgb3IgLS1kZWwsIGl0IHNhdmVzIHRoZSBjYXRhbG9nIGNoYW5nZXNcblwKK1x0ICAgICAgICAgYW5kIHdpdGggLS1zZ21sIGl0IGF1dG9tYXRpY2FsbHkgdXBkYXRlcyB0aGUgc3VwZXIgY2F0YWxvZ1xuXAorXHQtLW5vLXN1cGVyLXVwZGF0ZTogZG8gbm90IHVwZGF0ZSB0aGUgU0dNTCBzdXBlciBjYXRhbG9nXG5cCitcdC12IC0tdmVyYm9zZSA6IHByb3ZpZGUgZGVidWcgaW5mb3JtYXRpb25zXG4iKTsKK30KK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIGludCBpOworICAgIGludCByZXQ7CisgICAgaW50IGV4aXRfdmFsdWUgPSAwOworCisKKyAgICBpZiAoYXJnYyA8PSAxKSB7CisJdXNhZ2UoYXJndlswXSk7CisJcmV0dXJuKDEpOworICAgIH0KKworICAgIExJQlhNTF9URVNUX1ZFUlNJT04KKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYyA7IGkrKykgeworCWlmICghc3RyY21wKGFyZ3ZbaV0sICItIikpCisJICAgIGJyZWFrOworCisJaWYgKGFyZ3ZbaV1bMF0gIT0gJy0nKQorCSAgICBicmVhazsKKwlpZiAoKCFzdHJjbXAoYXJndltpXSwgIi12ZXJib3NlIikpIHx8CisJICAgICghc3RyY21wKGFyZ3ZbaV0sICItdiIpKSB8fAorCSAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS12ZXJib3NlIikpKSB7CisJICAgIHZlcmJvc2UrKzsKKwkgICAgeG1sQ2F0YWxvZ1NldERlYnVnKHZlcmJvc2UpOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1ub291dCIpKSB8fAorCSAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1ub291dCIpKSkgeworICAgICAgICAgICAgbm9vdXQgPSAxOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1zaGVsbCIpKSB8fAorCSAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1zaGVsbCIpKSkgeworCSAgICBzaGVsbCsrOworICAgICAgICAgICAgbm9vdXQgPSAxOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1zZ21sIikpIHx8CisJICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXNnbWwiKSkpIHsKKwkgICAgc2dtbCsrOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1jcmVhdGUiKSkgfHwKKwkgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tY3JlYXRlIikpKSB7CisJICAgIGNyZWF0ZSsrOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1jb252ZXJ0IikpIHx8CisJICAgICghc3RyY21wKGFyZ3ZbaV0sICItLWNvbnZlcnQiKSkpIHsKKwkgICAgY29udmVydCsrOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1uby1zdXBlci11cGRhdGUiKSkgfHwKKwkgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbm8tc3VwZXItdXBkYXRlIikpKSB7CisJICAgIG5vX3N1cGVyX3VwZGF0ZSsrOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1hZGQiKSkgfHwKKwkgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tYWRkIikpKSB7CisJICAgIGlmIChzZ21sKQorCQlpICs9IDI7CisJICAgIGVsc2UKKwkJaSArPSAzOworCSAgICBhZGQrKzsKKwl9IGVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZGVsIikpIHx8CisJICAgICghc3RyY21wKGFyZ3ZbaV0sICItLWRlbCIpKSkgeworCSAgICBpICs9IDE7CisJICAgIGRlbCsrOworCX0gZWxzZSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biBvcHRpb24gJXNcbiIsIGFyZ3ZbaV0pOworCSAgICB1c2FnZShhcmd2WzBdKTsKKwkgICAgcmV0dXJuKDEpOworCX0KKyAgICB9CisKKyAgICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7CisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItYWRkIikpIHx8CisJICAgICghc3RyY21wKGFyZ3ZbaV0sICItLWFkZCIpKSkgeworCSAgICBpZiAoc2dtbCkKKwkJaSArPSAyOworCSAgICBlbHNlCisJCWkgKz0gMzsKKwkgICAgY29udGludWU7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlbCIpKSB8fAorCSAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1kZWwiKSkpIHsKKwkgICAgaSArPSAxOworCisJICAgIC8qIE5vIGNhdGFsb2cgZW50cnkgc3BlY2lmaWVkICovCisJICAgIGlmIChpID09IGFyZ2MgfHwgKHNnbWwgJiYgaSArIDEgPT0gYXJnYykpIHsKKwkJZnByaW50ZihzdGRlcnIsICJObyBjYXRhbG9nIGVudHJ5IHNwZWNpZmllZCB0byByZW1vdmUgZnJvbVxuIik7CisJCXVzYWdlIChhcmd2WzBdKTsKKwkJcmV0dXJuKDEpOworCSAgICB9CisKKwkgICAgY29udGludWU7CisJfSBlbHNlIGlmIChhcmd2W2ldWzBdID09ICctJykKKwkgICAgY29udGludWU7CisJZmlsZW5hbWUgPSBhcmd2W2ldOworCSAgICByZXQgPSB4bWxMb2FkQ2F0YWxvZyhhcmd2W2ldKTsKKwkgICAgaWYgKChyZXQgPCAwKSAmJiAoY3JlYXRlKSkgeworCQl4bWxDYXRhbG9nQWRkKEJBRF9DQVNUICJjYXRhbG9nIiwgQkFEX0NBU1QgYXJndltpXSwgTlVMTCk7CisJICAgIH0KKwlicmVhazsKKyAgICB9CisKKyAgICBpZiAoY29udmVydCkKKyAgICAgICAgcmV0ID0geG1sQ2F0YWxvZ0NvbnZlcnQoKTsKKworICAgIGlmICgoYWRkKSB8fCAoZGVsKSkgeworCWZvciAoaSA9IDE7IGkgPCBhcmdjIDsgaSsrKSB7CisJICAgIGlmICghc3RyY21wKGFyZ3ZbaV0sICItIikpCisJCWJyZWFrOworCisJICAgIGlmIChhcmd2W2ldWzBdICE9ICctJykKKwkJY29udGludWU7CisJICAgIGlmIChzdHJjbXAoYXJndltpXSwgIi1hZGQiKSAmJiBzdHJjbXAoYXJndltpXSwgIi0tYWRkIikgJiYKKwkJc3RyY21wKGFyZ3ZbaV0sICItZGVsIikgJiYgc3RyY21wKGFyZ3ZbaV0sICItLWRlbCIpKQorCQljb250aW51ZTsKKworCSAgICBpZiAoc2dtbCkgeworCQkvKgorCQkgKiBNYWludGVuYW5jZSBvZiBTR01MIGNhdGFsb2dzLgorCQkgKi8KKwkJeG1sQ2F0YWxvZ1B0ciBjYXRhbCA9IE5VTEw7CisJCXhtbENhdGFsb2dQdHIgc3VwZXIgPSBOVUxMOworCisJCWNhdGFsID0geG1sTG9hZFNHTUxTdXBlckNhdGFsb2coYXJndltpICsgMV0pOworCisJCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWFkZCIpKSB8fAorCQkgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tYWRkIikpKSB7CisJCSAgICBpZiAoY2F0YWwgPT0gTlVMTCkKKwkJCWNhdGFsID0geG1sTmV3Q2F0YWxvZygxKTsKKwkJICAgIHhtbEFDYXRhbG9nQWRkKGNhdGFsLCBCQURfQ0FTVCAiQ0FUQUxPRyIsCisJCQkJCSBCQURfQ0FTVCBhcmd2W2kgKyAyXSwgTlVMTCk7CisKKwkJICAgIGlmICghbm9fc3VwZXJfdXBkYXRlKSB7CisJCQlzdXBlciA9IHhtbExvYWRTR01MU3VwZXJDYXRhbG9nKFhNTF9TR01MX0RFRkFVTFRfQ0FUQUxPRyk7CisJCQlpZiAoc3VwZXIgPT0gTlVMTCkKKwkJCSAgICBzdXBlciA9IHhtbE5ld0NhdGFsb2coMSk7CisKKwkJCXhtbEFDYXRhbG9nQWRkKHN1cGVyLCBCQURfQ0FTVCAiQ0FUQUxPRyIsCisJCQkJCSAgICAgQkFEX0NBU1QgYXJndltpICsgMV0sIE5VTEwpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgaWYgKGNhdGFsICE9IE5VTEwpCisJCQlyZXQgPSB4bWxBQ2F0YWxvZ1JlbW92ZShjYXRhbCwgQkFEX0NBU1QgYXJndltpICsgMl0pOworCQkgICAgZWxzZQorCQkJcmV0ID0gLTE7CisJCSAgICBpZiAocmV0IDwgMCkgeworCQkJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gcmVtb3ZlIGVudHJ5IGZyb20gJXNcbiIsCisJCQkJYXJndltpICsgMV0pOworCQkJZXhpdF92YWx1ZSA9IDE7CisJCSAgICB9CisJCSAgICBpZiAoKCFub19zdXBlcl91cGRhdGUpICYmIChub291dCkgJiYgKGNhdGFsICE9IE5VTEwpICYmCisJCQkoeG1sQ2F0YWxvZ0lzRW1wdHkoY2F0YWwpKSkgeworCQkJc3VwZXIgPSB4bWxMb2FkU0dNTFN1cGVyQ2F0YWxvZygKKwkJCQkgICBYTUxfU0dNTF9ERUZBVUxUX0NBVEFMT0cpOworCQkJaWYgKHN1cGVyICE9IE5VTEwpIHsKKwkJCSAgICByZXQgPSB4bWxBQ2F0YWxvZ1JlbW92ZShzdXBlciwKKwkJCQkgICAgQkFEX0NBU1QgYXJndltpICsgMV0pOworCQkJICAgIGlmIChyZXQgPCAwKSB7CisJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCSJGYWlsZWQgdG8gcmVtb3ZlIGVudHJ5IGZyb20gJXNcbiIsCisJCQkJCVhNTF9TR01MX0RFRkFVTFRfQ0FUQUxPRyk7CisJCQkJZXhpdF92YWx1ZSA9IDE7CisJCQkgICAgfQorCQkJfQorCQkgICAgfQorCQl9CisJCWlmIChub291dCkgeworCQkgICAgRklMRSAqb3V0OworCisJCSAgICBpZiAoeG1sQ2F0YWxvZ0lzRW1wdHkoY2F0YWwpKSB7CisJCQlyZW1vdmUoYXJndltpICsgMV0pOworCQkgICAgfSBlbHNlIHsKKwkJCW91dCA9IGZvcGVuKGFyZ3ZbaSArIDFdLCAidyIpOworCQkJaWYgKG91dCA9PSBOVUxMKSB7CisJCQkgICAgZnByaW50ZihzdGRlcnIsICJjb3VsZCBub3Qgb3BlbiAlcyBmb3Igc2F2aW5nXG4iLAorCQkJCSAgICBhcmd2W2kgKyAxXSk7CisJCQkgICAgZXhpdF92YWx1ZSA9IDI7CisJCQkgICAgbm9vdXQgPSAwOworCQkJfSBlbHNlIHsKKwkJCSAgICB4bWxBQ2F0YWxvZ0R1bXAoY2F0YWwsIG91dCk7CisJCQkgICAgZmNsb3NlKG91dCk7CisJCQl9CisJCSAgICB9CisJCSAgICBpZiAoIW5vX3N1cGVyX3VwZGF0ZSAmJiBzdXBlciAhPSBOVUxMKSB7CisJCQlpZiAoeG1sQ2F0YWxvZ0lzRW1wdHkoc3VwZXIpKSB7CisJCQkgICAgcmVtb3ZlKFhNTF9TR01MX0RFRkFVTFRfQ0FUQUxPRyk7CisJCQl9IGVsc2UgeworCQkJICAgIG91dCA9IGZvcGVuKFhNTF9TR01MX0RFRkFVTFRfQ0FUQUxPRywgInciKTsKKwkJCSAgICBpZiAob3V0ID09IE5VTEwpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkJImNvdWxkIG5vdCBvcGVuICVzIGZvciBzYXZpbmdcbiIsCisJCQkJCVhNTF9TR01MX0RFRkFVTFRfQ0FUQUxPRyk7CisJCQkJZXhpdF92YWx1ZSA9IDI7CisJCQkJbm9vdXQgPSAwOworCQkJICAgIH0gZWxzZSB7CisJCQkJCisJCQkJeG1sQUNhdGFsb2dEdW1wKHN1cGVyLCBvdXQpOworCQkJCWZjbG9zZShvdXQpOworCQkJICAgIH0KKwkJCX0KKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIHhtbEFDYXRhbG9nRHVtcChjYXRhbCwgc3Rkb3V0KTsKKwkJfQorCQlpICs9IDI7CisJICAgIH0gZWxzZSB7CisJCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWFkZCIpKSB8fAorCQkgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tYWRkIikpKSB7CisJCQlpZiAoKGFyZ3ZbaSArIDNdID09IE5VTEwpIHx8IChhcmd2W2kgKyAzXVswXSA9PSAwKSkKKwkJCSAgICByZXQgPSB4bWxDYXRhbG9nQWRkKEJBRF9DQVNUIGFyZ3ZbaSArIDFdLCBOVUxMLAorCQkJCQkJQkFEX0NBU1QgYXJndltpICsgMl0pOworCQkJZWxzZQorCQkJICAgIHJldCA9IHhtbENhdGFsb2dBZGQoQkFEX0NBU1QgYXJndltpICsgMV0sCisJCQkJCQlCQURfQ0FTVCBhcmd2W2kgKyAyXSwKKwkJCQkJCUJBRF9DQVNUIGFyZ3ZbaSArIDNdKTsKKwkJCWlmIChyZXQgIT0gMCkgeworCQkJICAgIHByaW50ZigiYWRkIGNvbW1hbmQgZmFpbGVkXG4iKTsKKwkJCSAgICBleGl0X3ZhbHVlID0gMzsKKwkJCX0KKwkJCWkgKz0gMzsKKwkJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlbCIpKSB8fAorCQkgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZGVsIikpKSB7CisJCSAgICByZXQgPSB4bWxDYXRhbG9nUmVtb3ZlKEJBRF9DQVNUIGFyZ3ZbaSArIDFdKTsKKwkJICAgIGlmIChyZXQgPCAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byByZW1vdmUgZW50cnkgJXNcbiIsCisJCQkJYXJndltpICsgMV0pOworCQkJZXhpdF92YWx1ZSA9IDE7CisJCSAgICB9CisJCSAgICBpICs9IDE7CisJCX0KKwkgICAgfQorCX0KKwkKKyAgICB9IGVsc2UgaWYgKHNoZWxsKSB7CisJdXNlcnNoZWxsKCk7CisgICAgfSBlbHNlIHsKKwlmb3IgKGkrKzsgaSA8IGFyZ2M7IGkrKykgeworCSAgICB4bWxVUklQdHIgdXJpOworCSAgICB4bWxDaGFyICphbnM7CisJICAgIAorCSAgICB1cmkgPSB4bWxQYXJzZVVSSShhcmd2W2ldKTsKKwkgICAgaWYgKHVyaSA9PSBOVUxMKSB7CisJCWFucyA9IHhtbENhdGFsb2dSZXNvbHZlUHVibGljKChjb25zdCB4bWxDaGFyICopIGFyZ3ZbaV0pOworCQlpZiAoYW5zID09IE5VTEwpIHsKKwkJICAgIHByaW50ZigiTm8gZW50cnkgZm9yIFBVQkxJQyAlc1xuIiwgYXJndltpXSk7CisJCSAgICBleGl0X3ZhbHVlID0gNDsKKwkJfSBlbHNlIHsKKwkJICAgIHByaW50ZigiJXNcbiIsIChjaGFyICopIGFucyk7CisJCSAgICB4bWxGcmVlKGFucyk7CisJCX0KKwkgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB4bWxGcmVlVVJJKHVyaSk7CisJCWFucyA9IHhtbENhdGFsb2dSZXNvbHZlU3lzdGVtKChjb25zdCB4bWxDaGFyICopIGFyZ3ZbaV0pOworCQlpZiAoYW5zID09IE5VTEwpIHsKKwkJICAgIHByaW50ZigiTm8gZW50cnkgZm9yIFNZU1RFTSAlc1xuIiwgYXJndltpXSk7CisJCSAgICBhbnMgPSB4bWxDYXRhbG9nUmVzb2x2ZVVSSSAoKGNvbnN0IHhtbENoYXIgKikgYXJndltpXSk7CisJCSAgICBpZiAoYW5zID09IE5VTEwpIHsKKwkJCXByaW50ZiAoIk5vIGVudHJ5IGZvciBVUkkgJXNcbiIsIGFyZ3ZbaV0pOworCQkgICAgICAgIGV4aXRfdmFsdWUgPSA0OworCQkgICAgfSBlbHNlIHsKKwkJICAgICAgICBwcmludGYoIiVzXG4iLCAoY2hhciAqKSBhbnMpOworCQkJeG1sRnJlZSAoYW5zKTsKKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIHByaW50ZigiJXNcbiIsIChjaGFyICopIGFucyk7CisJCSAgICB4bWxGcmVlKGFucyk7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKCghc2dtbCkgJiYgKChhZGQpIHx8IChkZWwpIHx8IChjcmVhdGUpIHx8IChjb252ZXJ0KSkpIHsKKwlpZiAobm9vdXQgJiYgZmlsZW5hbWUgJiYgKmZpbGVuYW1lKSB7CisJICAgIEZJTEUgKm91dDsKKworCSAgICBvdXQgPSBmb3BlbihmaWxlbmFtZSwgInciKTsKKwkgICAgaWYgKG91dCA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAiY291bGQgbm90IG9wZW4gJXMgZm9yIHNhdmluZ1xuIiwgZmlsZW5hbWUpOworCQlleGl0X3ZhbHVlID0gMjsKKwkJbm9vdXQgPSAwOworCSAgICB9IGVsc2UgeworCQl4bWxDYXRhbG9nRHVtcChvdXQpOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgeG1sQ2F0YWxvZ0R1bXAoc3Rkb3V0KTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDbGVhbnVwIGFuZCBjaGVjayBmb3IgbWVtb3J5IGxlYWtzCisgICAgICovCisgICAgeG1sQ2xlYW51cFBhcnNlcigpOworICAgIHhtbE1lbW9yeUR1bXAoKTsKKyAgICByZXR1cm4oZXhpdF92YWx1ZSk7Cit9CisjZWxzZQoraW50IG1haW4oaW50IGFyZ2MgQVRUUklCVVRFX1VOVVNFRCwgY2hhciAqKmFyZ3YgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIGZwcmludGYoc3RkZXJyLCAibGlieG1sIHdhcyBub3QgY29tcGlsZWQgd2l0aCBjYXRhbG9nIGFuZCBvdXRwdXQgc3VwcG9ydFxuIik7CisgICAgcmV0dXJuKDEpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbGxpbnQuYyBiL2xpYnhtbDItMi43LjcveG1sbGludC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNzVlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3htbGxpbnQuYwpAQCAtMCwwICsxLDM3MjIgQEAKKy8qCisgKiB4bWxsaW50LmMgOiBhIHNtYWxsIHRlc3RlciBwcm9ncmFtIGZvciBYTUwgaW5wdXQuCisgKgorICogU2VlIENvcHlyaWdodCBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworI2lmIGRlZmluZWQgKF9XSU4zMikgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKyNpZiBkZWZpbmVkIChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18pCisjaW5jbHVkZSA8d2luc29jazIuaD4KKyNwcmFnbWEgY29tbWVudChsaWIsICJ3czJfMzIubGliIikKKyNkZWZpbmUgZ2V0dGltZW9mZGF5KHAxLHAyKQorI2VuZGlmIC8qIF9NU0NfVkVSICovCisjZW5kaWYgLyogX1dJTjMyICovCisKKyNpZmRlZiBIQVZFX1NZU19USU1FX0gKKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9USU1FX0gKKyNpbmNsdWRlIDx0aW1lLmg+CisjZW5kaWYKKworI2lmZGVmIF9fTUlOR1czMl9fCisjZGVmaW5lIF9XSU5TT0NLQVBJXworI2luY2x1ZGUgPHdzb2NrY29tcGF0Lmg+CisjaW5jbHVkZSA8d2luc29jazIuaD4KKyN1bmRlZiBYTUxfU09DS0xFTl9UCisjZGVmaW5lIFhNTF9TT0NLTEVOX1QgdW5zaWduZWQgaW50CisjZW5kaWYKKworI2lmZGVmIEhBVkVfU1lTX1RJTUVCX0gKKyNpbmNsdWRlIDxzeXMvdGltZWIuaD4KKyNlbmRpZgorCisjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkNOVExfSAorI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1VOSVNURF9ICisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorLyogc2VlbXMgbmVlZGVkIGZvciBTb2xhcmlzICovCisjaWZuZGVmIE1BUF9GQUlMRUQKKyNkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQgKikgLTEpCisjZW5kaWYKKyNlbmRpZgorI2lmZGVmIEhBVkVfU1RETElCX0gKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfTElCUkVBRExJTkUKKyNpbmNsdWRlIDxyZWFkbGluZS9yZWFkbGluZS5oPgorI2lmZGVmIEhBVkVfTElCSElTVE9SWQorI2luY2x1ZGUgPHJlYWRsaW5lL2hpc3RvcnkuaD4KKyNlbmRpZgorI2VuZGlmCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHBhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9IVE1MdHJlZS5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3hwYXRoLmg+CisjaW5jbHVkZSA8bGlieG1sL2RlYnVnWE1MLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwveGluY2x1ZGUuaD4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9DQVRBTE9HX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwvY2F0YWxvZy5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGlieG1sL2dsb2JhbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVhZGVyLmg+CisjaWZkZWYgTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9zY2hlbWF0cm9uLmg+CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorI2VuZGlmCisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9wYXR0ZXJuLmg+CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQzE0Tl9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL2MxNG4uaD4KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC94bWxzYXZlLmg+CisjZW5kaWYKKworI2lmbmRlZiBYTUxfWE1MX0RFRkFVTFRfQ0FUQUxPRworI2RlZmluZSBYTUxfWE1MX0RFRkFVTFRfQ0FUQUxPRyAiZmlsZTovLy9ldGMveG1sL2NhdGFsb2ciCisjZW5kaWYKKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxMSU5UX1JFVFVSTl9PSyA9IDAsCS8qIE5vIGVycm9yICovCisgICAgWE1MTElOVF9FUlJfVU5DTEFTUyA9IDEsCS8qIFVuY2xhc3NpZmllZCAqLworICAgIFhNTExJTlRfRVJSX0RURCA9IDIsCS8qIEVycm9yIGluIERURCAqLworICAgIFhNTExJTlRfRVJSX1ZBTElEID0gMywJLyogVmFsaWRhdGlvbiBlcnJvciAqLworICAgIFhNTExJTlRfRVJSX1JERklMRSA9IDQsCS8qIEN0eHRSZWFkRmlsZSBlcnJvciAqLworICAgIFhNTExJTlRfRVJSX1NDSEVNQUNPTVAgPSA1LAkvKiBTY2hlbWEgY29tcGlsYXRpb24gKi8KKyAgICBYTUxMSU5UX0VSUl9PVVQgPSA2LAkvKiBFcnJvciB3cml0aW5nIG91dHB1dCAqLworICAgIFhNTExJTlRfRVJSX1NDSEVNQVBBVCA9IDcsCS8qIEVycm9yIGluIHNjaGVtYSBwYXR0ZXJuICovCisgICAgWE1MTElOVF9FUlJfUkRSRUdJUyA9IDgsCS8qIEVycm9yIGluIFJlYWRlciByZWdpc3RyYXRpb24gKi8KKyAgICBYTUxMSU5UX0VSUl9NRU0gPSA5LAkvKiBPdXQgb2YgbWVtb3J5IGVycm9yICovCisgICAgWE1MTElOVF9FUlJfWFBBVEggPSAxMAkvKiBYUGF0aCBldmFsdWF0aW9uIGVycm9yICovCit9IHhtbGxpbnRSZXR1cm5Db2RlOworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECitzdGF0aWMgaW50IHNoZWxsID0gMDsKK3N0YXRpYyBpbnQgZGVidWdlbnQgPSAwOworI2VuZGlmCitzdGF0aWMgaW50IGRlYnVnID0gMDsKK3N0YXRpYyBpbnQgbWF4bWVtID0gMDsKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECitzdGF0aWMgaW50IGNvcHkgPSAwOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KK3N0YXRpYyBpbnQgcmVjb3ZlcnkgPSAwOworc3RhdGljIGludCBub2VudCA9IDA7CitzdGF0aWMgaW50IG5vYmxhbmtzID0gMDsKK3N0YXRpYyBpbnQgbm9vdXQgPSAwOworc3RhdGljIGludCBub3dyYXAgPSAwOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorc3RhdGljIGludCBmb3JtYXQgPSAwOworc3RhdGljIGNvbnN0IGNoYXIgKm91dHB1dCA9IE5VTEw7CitzdGF0aWMgaW50IGNvbXByZXNzID0gMDsKK3N0YXRpYyBpbnQgb2xkb3V0ID0gMDsKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorc3RhdGljIGludCB2YWxpZCA9IDA7CitzdGF0aWMgaW50IHBvc3R2YWxpZCA9IDA7CitzdGF0aWMgY2hhciAqIGR0ZHZhbGlkID0gTlVMTDsKK3N0YXRpYyBjaGFyICogZHRkdmFsaWRmcGkgPSBOVUxMOworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorc3RhdGljIGNoYXIgKiByZWxheG5nID0gTlVMTDsKK3N0YXRpYyB4bWxSZWxheE5HUHRyIHJlbGF4bmdzY2hlbWFzID0gTlVMTDsKK3N0YXRpYyBjaGFyICogc2NoZW1hID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFQdHIgd3hzY2hlbWFzID0gTlVMTDsKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQKK3N0YXRpYyBjaGFyICogc2NoZW1hdHJvbiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hdHJvblB0ciB3eHNjaGVtYXRyb24gPSBOVUxMOworI2VuZGlmCitzdGF0aWMgaW50IHJlcGVhdCA9IDA7CitzdGF0aWMgaW50IGluc2VydCA9IDA7CisjaWYgZGVmaW5lZChMSUJYTUxfSFRNTF9FTkFCTEVEKSB8fCBkZWZpbmVkKExJQlhNTF9WQUxJRF9FTkFCTEVEKQorc3RhdGljIGludCBodG1sID0gMDsKK3N0YXRpYyBpbnQgeG1sb3V0ID0gMDsKKyNlbmRpZgorc3RhdGljIGludCBodG1sb3V0ID0gMDsKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECitzdGF0aWMgaW50IHB1c2ggPSAwOworI2VuZGlmIC8qIExJQlhNTF9QVVNIX0VOQUJMRUQgKi8KKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKK3N0YXRpYyBpbnQgbWVtb3J5ID0gMDsKKyNlbmRpZgorc3RhdGljIGludCB0ZXN0SU8gPSAwOworc3RhdGljIGNoYXIgKmVuY29kaW5nID0gTlVMTDsKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorc3RhdGljIGludCB4aW5jbHVkZSA9IDA7CisjZW5kaWYKK3N0YXRpYyBpbnQgZHRkYXR0cnMgPSAwOworc3RhdGljIGludCBsb2FkZHRkID0gMDsKK3N0YXRpYyB4bWxsaW50UmV0dXJuQ29kZSBwcm9ncmVzdWx0ID0gWE1MTElOVF9SRVRVUk5fT0s7CitzdGF0aWMgaW50IHRpbWluZyA9IDA7CitzdGF0aWMgaW50IGdlbmVyYXRlID0gMDsKK3N0YXRpYyBpbnQgZHJvcGR0ZCA9IDA7CisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorc3RhdGljIGludCBjYXRhbG9ncyA9IDA7CitzdGF0aWMgaW50IG5vY2F0YWxvZ3MgPSAwOworI2VuZGlmCisjaWZkZWYgTElCWE1MX0MxNE5fRU5BQkxFRAorc3RhdGljIGludCBjYW5vbmljYWwgPSAwOworc3RhdGljIGludCBjYW5vbmljYWxfMTEgPSAwOworc3RhdGljIGludCBleGNfY2Fub25pY2FsID0gMDsKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorc3RhdGljIGludCBzdHJlYW0gPSAwOworc3RhdGljIGludCB3YWxrZXIgPSAwOworI2VuZGlmIC8qIExJQlhNTF9SRUFERVJfRU5BQkxFRCAqLworc3RhdGljIGludCBjaGtyZWdpc3RlciA9IDA7CitzdGF0aWMgaW50IG5icmVnaXN0ZXIgPSAwOworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKK3N0YXRpYyBpbnQgc2F4MSA9IDA7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKK3N0YXRpYyBjb25zdCBjaGFyICpwYXR0ZXJuID0gTlVMTDsKK3N0YXRpYyB4bWxQYXR0ZXJuUHRyIHBhdHRlcm5jID0gTlVMTDsKK3N0YXRpYyB4bWxTdHJlYW1DdHh0UHRyIHBhdHN0cmVhbSA9IE5VTEw7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorc3RhdGljIGNvbnN0IGNoYXIgKnhwYXRocXVlcnkgPSBOVUxMOworI2VuZGlmCitzdGF0aWMgaW50IG9wdGlvbnMgPSBYTUxfUEFSU0VfQ09NUEFDVDsKK3N0YXRpYyBpbnQgc2F4ID0gMDsKK3N0YXRpYyBpbnQgb2xkeG1sMTAgPSAwOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkgRW50aXR5IGxvYWRpbmcgY29udHJvbCBhbmQgY3VzdG9taXphdGlvbi4JCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTUFYX1BBVEhTIDY0CisjaWZkZWYgX1dJTjMyCisjIGRlZmluZSBQQVRIX1NFUEFSQVRPUiAnOycKKyNlbHNlCisjIGRlZmluZSBQQVRIX1NFUEFSQVRPUiAnOicKKyNlbmRpZgorc3RhdGljIHhtbENoYXIgKnBhdGhzW01BWF9QQVRIUyArIDFdOworc3RhdGljIGludCBuYnBhdGhzID0gMDsKK3N0YXRpYyBpbnQgbG9hZF90cmFjZSA9IDA7CisKK3N0YXRpYwordm9pZCBwYXJzZVBhdGgoY29uc3QgeG1sQ2hhciAqcGF0aCkgeworICAgIGNvbnN0IHhtbENoYXIgKmN1cjsKKworICAgIGlmIChwYXRoID09IE5VTEwpCisJcmV0dXJuOworICAgIHdoaWxlICgqcGF0aCAhPSAwKSB7CisJaWYgKG5icGF0aHMgPj0gTUFYX1BBVEhTKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiTUFYX1BBVEhTIHJlYWNoZWQ6IHRvbyBtYW55IHBhdGhzXG4iKTsKKwkgICAgcmV0dXJuOworCX0KKwljdXIgPSBwYXRoOworCXdoaWxlICgoKmN1ciA9PSAnICcpIHx8ICgqY3VyID09IFBBVEhfU0VQQVJBVE9SKSkKKwkgICAgY3VyKys7CisJcGF0aCA9IGN1cjsKKwl3aGlsZSAoKCpjdXIgIT0gMCkgJiYgKCpjdXIgIT0gJyAnKSAmJiAoKmN1ciAhPSBQQVRIX1NFUEFSQVRPUikpCisJICAgIGN1cisrOworCWlmIChjdXIgIT0gcGF0aCkgeworCSAgICBwYXRoc1tuYnBhdGhzXSA9IHhtbFN0cm5kdXAocGF0aCwgY3VyIC0gcGF0aCk7CisJICAgIGlmIChwYXRoc1tuYnBhdGhzXSAhPSBOVUxMKQorCQluYnBhdGhzKys7CisJICAgIHBhdGggPSBjdXI7CisJfQorICAgIH0KK30KKworc3RhdGljIHhtbEV4dGVybmFsRW50aXR5TG9hZGVyIGRlZmF1bHRFbnRpdHlMb2FkZXIgPSBOVUxMOworCitzdGF0aWMgeG1sUGFyc2VySW5wdXRQdHIKK3htbGxpbnRFeHRlcm5hbEVudGl0eUxvYWRlcihjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKklELAorCQkJICAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciByZXQ7CisgICAgd2FybmluZ1NBWEZ1bmMgd2FybmluZyA9IE5VTEw7CisgICAgZXJyb3JTQVhGdW5jIGVyciA9IE5VTEw7CisKKyAgICBpbnQgaTsKKyAgICBjb25zdCBjaGFyICpsYXN0c2VnbWVudCA9IFVSTDsKKyAgICBjb25zdCBjaGFyICppdGVyID0gVVJMOworCisgICAgaWYgKChuYnBhdGhzID4gMCkgJiYgKGl0ZXIgIT0gTlVMTCkpIHsKKwl3aGlsZSAoKml0ZXIgIT0gMCkgeworCSAgICBpZiAoKml0ZXIgPT0gJy8nKQorCQlsYXN0c2VnbWVudCA9IGl0ZXIgKyAxOworCSAgICBpdGVyKys7CisJfQorICAgIH0KKworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4ICE9IE5VTEwpKSB7CisJd2FybmluZyA9IGN0eHQtPnNheC0+d2FybmluZzsKKwllcnIgPSBjdHh0LT5zYXgtPmVycm9yOworCWN0eHQtPnNheC0+d2FybmluZyA9IE5VTEw7CisJY3R4dC0+c2F4LT5lcnJvciA9IE5VTEw7CisgICAgfQorCisgICAgaWYgKGRlZmF1bHRFbnRpdHlMb2FkZXIgIT0gTlVMTCkgeworCXJldCA9IGRlZmF1bHRFbnRpdHlMb2FkZXIoVVJMLCBJRCwgY3R4dCk7CisJaWYgKHJldCAhPSBOVUxMKSB7CisJICAgIGlmICh3YXJuaW5nICE9IE5VTEwpCisJCWN0eHQtPnNheC0+d2FybmluZyA9IHdhcm5pbmc7CisJICAgIGlmIChlcnIgIT0gTlVMTCkKKwkJY3R4dC0+c2F4LT5lcnJvciA9IGVycjsKKwkgICAgaWYgKGxvYWRfdHJhY2UpIHsKKwkJZnByaW50ZiBcCisJCQkoc3RkZXJyLAorCQkJICJMb2FkZWQgVVJMPVwiJXNcIiBJRD1cIiVzXCJcbiIsCisJCQkgVVJMID8gVVJMIDogIihudWxsKSIsCisJCQkgSUQgPyBJRCA6ICIobnVsbCkiKTsKKwkgICAgfQorCSAgICByZXR1cm4ocmV0KTsKKwl9CisgICAgfQorICAgIGZvciAoaSA9IDA7aSA8IG5icGF0aHM7aSsrKSB7CisJeG1sQ2hhciAqbmV3VVJMOworCisJbmV3VVJMID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHBhdGhzW2ldKTsKKwluZXdVUkwgPSB4bWxTdHJjYXQobmV3VVJMLCAoY29uc3QgeG1sQ2hhciAqKSAiLyIpOworCW5ld1VSTCA9IHhtbFN0cmNhdChuZXdVUkwsIChjb25zdCB4bWxDaGFyICopIGxhc3RzZWdtZW50KTsKKwlpZiAobmV3VVJMICE9IE5VTEwpIHsKKwkgICAgcmV0ID0gZGVmYXVsdEVudGl0eUxvYWRlcigoY29uc3QgY2hhciAqKW5ld1VSTCwgSUQsIGN0eHQpOworCSAgICBpZiAocmV0ICE9IE5VTEwpIHsKKwkJaWYgKHdhcm5pbmcgIT0gTlVMTCkKKwkJICAgIGN0eHQtPnNheC0+d2FybmluZyA9IHdhcm5pbmc7CisJCWlmIChlcnIgIT0gTlVMTCkKKwkJICAgIGN0eHQtPnNheC0+ZXJyb3IgPSBlcnI7CisJCWlmIChsb2FkX3RyYWNlKSB7CisJCSAgICBmcHJpbnRmIFwKKwkJCShzdGRlcnIsCisJCQkgIkxvYWRlZCBVUkw9XCIlc1wiIElEPVwiJXNcIlxuIiwKKwkJCSBuZXdVUkwsCisJCQkgSUQgPyBJRCA6ICIobnVsbCkiKTsKKwkJfQorCQl4bWxGcmVlKG5ld1VSTCk7CisJCXJldHVybihyZXQpOworCSAgICB9CisJICAgIHhtbEZyZWUobmV3VVJMKTsKKwl9CisgICAgfQorICAgIGlmIChlcnIgIT0gTlVMTCkKKyAgICAgICAgY3R4dC0+c2F4LT5lcnJvciA9IGVycjsKKyAgICBpZiAod2FybmluZyAhPSBOVUxMKSB7CisJY3R4dC0+c2F4LT53YXJuaW5nID0gd2FybmluZzsKKwlpZiAoVVJMICE9IE5VTEwpCisJICAgIHdhcm5pbmcoY3R4dCwgImZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSBcIiVzXCJcbiIsIFVSTCk7CisJZWxzZSBpZiAoSUQgIT0gTlVMTCkKKwkgICAgd2FybmluZyhjdHh0LCAiZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5IFwiJXNcIlxuIiwgSUQpOworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIE1lbW9yeSBhbGxvY2F0aW9uIGNvbnN1bXB0aW9uIGRlYnVnZ2luZwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB2b2lkCitPT00odm9pZCkKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlJhbiBvdXQgb2YgbWVtb3J5IG5lZWRzID4gJWQgYnl0ZXNcbiIsIG1heG1lbSk7CisgICAgcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX01FTTsKK30KKworc3RhdGljIHZvaWQKK215RnJlZUZ1bmModm9pZCAqbWVtKQoreworICAgIHhtbE1lbUZyZWUobWVtKTsKK30KK3N0YXRpYyB2b2lkICoKK215TWFsbG9jRnVuYyhzaXplX3Qgc2l6ZSkKK3sKKyAgICB2b2lkICpyZXQ7CisKKyAgICByZXQgPSB4bWxNZW1NYWxsb2Moc2l6ZSk7CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisgICAgICAgIGlmICh4bWxNZW1Vc2VkKCkgPiBtYXhtZW0pIHsKKyAgICAgICAgICAgIE9PTSgpOworICAgICAgICAgICAgeG1sTWVtRnJlZShyZXQpOworICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CitzdGF0aWMgdm9pZCAqCitteVJlYWxsb2NGdW5jKHZvaWQgKm1lbSwgc2l6ZV90IHNpemUpCit7CisgICAgdm9pZCAqcmV0OworCisgICAgcmV0ID0geG1sTWVtUmVhbGxvYyhtZW0sIHNpemUpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICBpZiAoeG1sTWVtVXNlZCgpID4gbWF4bWVtKSB7CisgICAgICAgICAgICBPT00oKTsKKyAgICAgICAgICAgIHhtbE1lbUZyZWUocmV0KTsKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorc3RhdGljIGNoYXIgKgorbXlTdHJkdXBGdW5jKGNvbnN0IGNoYXIgKnN0cikKK3sKKyAgICBjaGFyICpyZXQ7CisKKyAgICByZXQgPSB4bWxNZW1vcnlTdHJkdXAoc3RyKTsKKyAgICBpZiAocmV0ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHhtbE1lbVVzZWQoKSA+IG1heG1lbSkgeworICAgICAgICAgICAgT09NKCk7CisgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisgICAgICAgICAgICByZXR1cm4gKE5VTEwpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogSW50ZXJuYWwgdGltaW5nIHJvdXRpbmVzIHRvIHJlbW92ZSB0aGUgbmVjZXNzaXR5IHRvIGhhdmUJCSoKKyAqIHVuaXgtc3BlY2lmaWMgZnVuY3Rpb24gY2FsbHMuCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgSEFWRV9HRVRUSU1FT0ZEQVkKKyNpZmRlZiBIQVZFX1NZU19USU1FQl9ICisjaWZkZWYgSEFWRV9TWVNfVElNRV9ICisjaWZkZWYgSEFWRV9GVElNRQorCitzdGF0aWMgaW50CitteV9nZXR0aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2cCwgdm9pZCAqdHpwKQoreworCXN0cnVjdCB0aW1lYiB0aW1lYnVmZmVyOworCisJZnRpbWUoJnRpbWVidWZmZXIpOworCWlmICh0dnApIHsKKwkJdHZwLT50dl9zZWMgPSB0aW1lYnVmZmVyLnRpbWU7CisJCXR2cC0+dHZfdXNlYyA9IHRpbWVidWZmZXIubWlsbGl0bSAqIDEwMDBMOworCX0KKwlyZXR1cm4gKDApOworfQorI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCisjZGVmaW5lIGdldHRpbWVvZmRheSBteV9nZXR0aW1lb2ZkYXkKKworI2VuZGlmIC8qIEhBVkVfRlRJTUUgKi8KKyNlbmRpZiAvKiBIQVZFX1NZU19USU1FX0ggKi8KKyNlbmRpZiAvKiBIQVZFX1NZU19USU1FQl9IICovCisjZW5kaWYgLyogIUhBVkVfR0VUVElNRU9GREFZICovCisKKyNpZiBkZWZpbmVkKEhBVkVfR0VUVElNRU9GREFZKQorc3RhdGljIHN0cnVjdCB0aW1ldmFsIGJlZ2luLCBlbmQ7CisKKy8qCisgKiBzdGFydFRpbWVyOiBjYWxsIHdoZXJlIHlvdSB3YW50IHRvIHN0YXJ0IHRpbWluZworICovCitzdGF0aWMgdm9pZAorc3RhcnRUaW1lcih2b2lkKQoreworICAgIGdldHRpbWVvZmRheSgmYmVnaW4sIE5VTEwpOworfQorCisvKgorICogZW5kVGltZXI6IGNhbGwgd2hlcmUgeW91IHdhbnQgdG8gc3RvcCB0aW1pbmcgYW5kIHRvIHByaW50IG91dCBhCisgKiAgICAgICAgICAgbWVzc2FnZSBhYm91dCB0aGUgdGltaW5nIHBlcmZvcm1lZDsgZm9ybWF0IGlzIGEgcHJpbnRmCisgKiAgICAgICAgICAgdHlwZSBhcmd1bWVudAorICovCitzdGF0aWMgdm9pZCBYTUxDREVDTAorZW5kVGltZXIoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgICAgbG9uZyBtc2VjOworICAgIHZhX2xpc3QgYXA7CisKKyAgICBnZXR0aW1lb2ZkYXkoJmVuZCwgTlVMTCk7CisgICAgbXNlYyA9IGVuZC50dl9zZWMgLSBiZWdpbi50dl9zZWM7CisgICAgbXNlYyAqPSAxMDAwOworICAgIG1zZWMgKz0gKGVuZC50dl91c2VjIC0gYmVnaW4udHZfdXNlYykgLyAxMDAwOworCisjaWZuZGVmIEhBVkVfU1REQVJHX0gKKyNlcnJvciAiZW5kVGltZXIgcmVxdWlyZWQgc3RkYXJnIGZ1bmN0aW9ucyIKKyNlbmRpZgorICAgIHZhX3N0YXJ0KGFwLCBmbXQpOworICAgIHZmcHJpbnRmKHN0ZGVyciwgZm10LCBhcCk7CisgICAgdmFfZW5kKGFwKTsKKworICAgIGZwcmludGYoc3RkZXJyLCAiIHRvb2sgJWxkIG1zXG4iLCBtc2VjKTsKK30KKyNlbGlmIGRlZmluZWQoSEFWRV9USU1FX0gpCisvKgorICogTm8gZ2V0dGltZW9mZGF5IGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvIG1ha2UgZG8gd2l0aCBjYWxsaW5nIGNsb2NrLgorICogVGhpcyBpcyBvYnZpb3VzbHkgbGVzcyBhY2N1cmF0ZSwgYnV0IHRoZXJlJ3MgbGl0dGxlIHdlIGNhbiBkbyBhYm91dAorICogdGhhdC4KKyAqLworI2lmbmRlZiBDTE9DS1NfUEVSX1NFQworI2RlZmluZSBDTE9DS1NfUEVSX1NFQyAxMDAKKyNlbmRpZgorCitzdGF0aWMgY2xvY2tfdCBiZWdpbiwgZW5kOworc3RhdGljIHZvaWQKK3N0YXJ0VGltZXIodm9pZCkKK3sKKyAgICBiZWdpbiA9IGNsb2NrKCk7Cit9CitzdGF0aWMgdm9pZCBYTUxDREVDTAorZW5kVGltZXIoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgICAgbG9uZyBtc2VjOworICAgIHZhX2xpc3QgYXA7CisKKyAgICBlbmQgPSBjbG9jaygpOworICAgIG1zZWMgPSAoKGVuZCAtIGJlZ2luKSAqIDEwMDApIC8gQ0xPQ0tTX1BFUl9TRUM7CisKKyNpZm5kZWYgSEFWRV9TVERBUkdfSAorI2Vycm9yICJlbmRUaW1lciByZXF1aXJlZCBzdGRhcmcgZnVuY3Rpb25zIgorI2VuZGlmCisgICAgdmFfc3RhcnQoYXAsIGZtdCk7CisgICAgdmZwcmludGYoc3RkZXJyLCBmbXQsIGFwKTsKKyAgICB2YV9lbmQoYXApOworICAgIGZwcmludGYoc3RkZXJyLCAiIHRvb2sgJWxkIG1zXG4iLCBtc2VjKTsKK30KKyNlbHNlCisKKy8qCisgKiBXZSBkb24ndCBoYXZlIGEgZ2V0dGltZW9mZGF5IG9yIHRpbWUuaCwgc28gd2UganVzdCBkb24ndCBkbyB0aW1pbmcKKyAqLworc3RhdGljIHZvaWQKK3N0YXJ0VGltZXIodm9pZCkKK3sKKyAgICAvKgorICAgICAqIERvIG5vdGhpbmcKKyAgICAgKi8KK30KK3N0YXRpYyB2b2lkIFhNTENERUNMCitlbmRUaW1lcihjaGFyICpmb3JtYXQsIC4uLikKK3sKKyAgICAvKgorICAgICAqIFdlIGNhbm5vdCBkbyBhbnl0aGluZyBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSB0aW1pbmcgZnVuY3Rpb24KKyAgICAgKi8KKyNpZmRlZiBIQVZFX1NUREFSR19ICisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisgICAgdmZwcmludGYoc3RkZXJyLCBmb3JtYXQsIGFwKTsKKyAgICB2YV9lbmQoYXApOworICAgIGZwcmludGYoc3RkZXJyLCAiIHdhcyBub3QgdGltZWRcbiIsIG1zZWMpOworI2Vsc2UKKyAgICAvKiBXZSBkb24ndCBoYXZlIGdldHRpbWVvZmRheSwgdGltZSBvciBzdGRhcmcuaCwgd2hhdCBjcmF6eSB3b3JsZCBpcworICAgICAqIHRoaXMgPyEKKyAgICAgKi8KKyNlbmRpZgorfQorI2VuZGlmCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJSFRNTCBvdXB1dAkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGNoYXIgYnVmZmVyWzUwMDAwXTsKKworc3RhdGljIHZvaWQKK3htbEhUTUxFbmNvZGVTZW5kKHZvaWQpIHsKKyAgICBjaGFyICpyZXN1bHQ7CisKKyAgICByZXN1bHQgPSAoY2hhciAqKSB4bWxFbmNvZGVFbnRpdGllc1JlZW50cmFudChOVUxMLCBCQURfQ0FTVCBidWZmZXIpOworICAgIGlmIChyZXN1bHQpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIiVzIiwgcmVzdWx0KTsKKwl4bWxGcmVlKHJlc3VsdCk7CisgICAgfQorICAgIGJ1ZmZlclswXSA9IDA7Cit9CisKKy8qKgorICogeG1sSFRNTFByaW50RmlsZUluZm86CisgKiBAaW5wdXQ6ICBhbiB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dAorICoKKyAqIERpc3BsYXlzIHRoZSBhc3NvY2lhdGVkIGZpbGUgYW5kIGxpbmUgaW5mb3JtYXRpb25zIGZvciB0aGUgY3VycmVudCBpbnB1dAorICovCisKK3N0YXRpYyB2b2lkCit4bWxIVE1MUHJpbnRGaWxlSW5mbyh4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCkgeworICAgIGludCBsZW47CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8cD4iKTsKKworICAgIGxlbiA9IHN0cmxlbihidWZmZXIpOworICAgIGlmIChpbnB1dCAhPSBOVUxMKSB7CisJaWYgKGlucHV0LT5maWxlbmFtZSkgeworCSAgICBzbnByaW50ZigmYnVmZmVyW2xlbl0sIHNpemVvZihidWZmZXIpIC0gbGVuLCAiJXM6JWQ6ICIsIGlucHV0LT5maWxlbmFtZSwKKwkJICAgIGlucHV0LT5saW5lKTsKKwl9IGVsc2UgeworCSAgICBzbnByaW50ZigmYnVmZmVyW2xlbl0sIHNpemVvZihidWZmZXIpIC0gbGVuLCAiRW50aXR5OiBsaW5lICVkOiAiLCBpbnB1dC0+bGluZSk7CisJfQorICAgIH0KKyAgICB4bWxIVE1MRW5jb2RlU2VuZCgpOworfQorCisvKioKKyAqIHhtbEhUTUxQcmludEZpbGVDb250ZXh0OgorICogQGlucHV0OiAgYW4geG1sUGFyc2VySW5wdXRQdHIgaW5wdXQKKyAqCisgKiBEaXNwbGF5cyBjdXJyZW50IGNvbnRleHQgd2l0aGluIHRoZSBpbnB1dCBjb250ZW50IGZvciBlcnJvciB0cmFja2luZworICovCisKK3N0YXRpYyB2b2lkCit4bWxIVE1MUHJpbnRGaWxlQ29udGV4dCh4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dCkgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciwgKmJhc2U7CisgICAgaW50IGxlbjsKKyAgICBpbnQgbjsKKworICAgIGlmIChpbnB1dCA9PSBOVUxMKSByZXR1cm47CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8cHJlPlxuIik7CisgICAgY3VyID0gaW5wdXQtPmN1cjsKKyAgICBiYXNlID0gaW5wdXQtPmJhc2U7CisgICAgd2hpbGUgKChjdXIgPiBiYXNlKSAmJiAoKCpjdXIgPT0gJ1xuJykgfHwgKCpjdXIgPT0gJ1xyJykpKSB7CisJY3VyLS07CisgICAgfQorICAgIG4gPSAwOworICAgIHdoaWxlICgobisrIDwgODApICYmIChjdXIgPiBiYXNlKSAmJiAoKmN1ciAhPSAnXG4nKSAmJiAoKmN1ciAhPSAnXHInKSkKKyAgICAgICAgY3VyLS07CisgICAgaWYgKCgqY3VyID09ICdcbicpIHx8ICgqY3VyID09ICdccicpKSBjdXIrKzsKKyAgICBiYXNlID0gY3VyOworICAgIG4gPSAwOworICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAoKmN1ciAhPSAnXG4nKSAmJiAoKmN1ciAhPSAnXHInKSAmJiAobiA8IDc5KSkgeworCWxlbiA9IHN0cmxlbihidWZmZXIpOworICAgICAgICBzbnByaW50ZigmYnVmZmVyW2xlbl0sIHNpemVvZihidWZmZXIpIC0gbGVuLCAiJWMiLAorCQkgICAgKHVuc2lnbmVkIGNoYXIpICpjdXIrKyk7CisJbisrOworICAgIH0KKyAgICBsZW4gPSBzdHJsZW4oYnVmZmVyKTsKKyAgICBzbnByaW50ZigmYnVmZmVyW2xlbl0sIHNpemVvZihidWZmZXIpIC0gbGVuLCAiXG4iKTsKKyAgICBjdXIgPSBpbnB1dC0+Y3VyOworICAgIHdoaWxlICgoKmN1ciA9PSAnXG4nKSB8fCAoKmN1ciA9PSAnXHInKSkKKwljdXItLTsKKyAgICBuID0gMDsKKyAgICB3aGlsZSAoKGN1ciAhPSBiYXNlKSAmJiAobisrIDwgODApKSB7CisJbGVuID0gc3RybGVuKGJ1ZmZlcik7CisgICAgICAgIHNucHJpbnRmKCZidWZmZXJbbGVuXSwgc2l6ZW9mKGJ1ZmZlcikgLSBsZW4sICIgIik7CisgICAgICAgIGJhc2UrKzsKKyAgICB9CisgICAgbGVuID0gc3RybGVuKGJ1ZmZlcik7CisgICAgc25wcmludGYoJmJ1ZmZlcltsZW5dLCBzaXplb2YoYnVmZmVyKSAtIGxlbiwgIl5cbiIpOworICAgIHhtbEhUTUxFbmNvZGVTZW5kKCk7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8L3ByZT4iKTsKK30KKworLyoqCisgKiB4bWxIVE1MRXJyb3I6CisgKiBAY3R4OiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbXNnOiAgdGhlIG1lc3NhZ2UgdG8gZGlzcGxheS90cmFuc21pdAorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqCisgKiBEaXNwbGF5IGFuZCBmb3JtYXQgYW4gZXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbEhUTUxFcnJvcih2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQ7CisgICAgdmFfbGlzdCBhcmdzOworICAgIGludCBsZW47CisKKyAgICBidWZmZXJbMF0gPSAwOworICAgIGlucHV0ID0gY3R4dC0+aW5wdXQ7CisgICAgaWYgKChpbnB1dCAhPSBOVUxMKSAmJiAoaW5wdXQtPmZpbGVuYW1lID09IE5VTEwpICYmIChjdHh0LT5pbnB1dE5yID4gMSkpIHsKKyAgICAgICAgaW5wdXQgPSBjdHh0LT5pbnB1dFRhYltjdHh0LT5pbnB1dE5yIC0gMl07CisgICAgfQorCisgICAgeG1sSFRNTFByaW50RmlsZUluZm8oaW5wdXQpOworCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8Yj5lcnJvcjwvYj46ICIpOworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgbGVuID0gc3RybGVuKGJ1ZmZlcik7CisgICAgdnNucHJpbnRmKCZidWZmZXJbbGVuXSwgIHNpemVvZihidWZmZXIpIC0gbGVuLCBtc2csIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKKyAgICB4bWxIVE1MRW5jb2RlU2VuZCgpOworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiPC9wPlxuIik7CisKKyAgICB4bWxIVE1MUHJpbnRGaWxlQ29udGV4dChpbnB1dCk7CisgICAgeG1sSFRNTEVuY29kZVNlbmQoKTsKK30KKworLyoqCisgKiB4bWxIVE1MV2FybmluZzoKKyAqIEBjdHg6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbEhUTUxXYXJuaW5nKHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgaW50IGxlbjsKKworICAgIGJ1ZmZlclswXSA9IDA7CisgICAgaW5wdXQgPSBjdHh0LT5pbnB1dDsKKyAgICBpZiAoKGlucHV0ICE9IE5VTEwpICYmIChpbnB1dC0+ZmlsZW5hbWUgPT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0TnIgPiAxKSkgeworICAgICAgICBpbnB1dCA9IGN0eHQtPmlucHV0VGFiW2N0eHQtPmlucHV0TnIgLSAyXTsKKyAgICB9CisKKworICAgIHhtbEhUTUxQcmludEZpbGVJbmZvKGlucHV0KTsKKworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiPGI+d2FybmluZzwvYj46ICIpOworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgbGVuID0gc3RybGVuKGJ1ZmZlcik7CisgICAgdnNucHJpbnRmKCZidWZmZXJbbGVuXSwgIHNpemVvZihidWZmZXIpIC0gbGVuLCBtc2csIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKKyAgICB4bWxIVE1MRW5jb2RlU2VuZCgpOworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiPC9wPlxuIik7CisKKyAgICB4bWxIVE1MUHJpbnRGaWxlQ29udGV4dChpbnB1dCk7CisgICAgeG1sSFRNTEVuY29kZVNlbmQoKTsKK30KKworLyoqCisgKiB4bWxIVE1MVmFsaWRpdHlFcnJvcjoKKyAqIEBjdHg6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhbiB2YWxpZGl0eSBlcnJvciBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwKKyAqIGxpbmUsIHBvc2l0aW9uIGFuZCBleHRyYSBwYXJhbWV0ZXJzLgorICovCitzdGF0aWMgdm9pZCBYTUxDREVDTAoreG1sSFRNTFZhbGlkaXR5RXJyb3Iodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworICAgIHZhX2xpc3QgYXJnczsKKyAgICBpbnQgbGVuOworCisgICAgYnVmZmVyWzBdID0gMDsKKyAgICBpbnB1dCA9IGN0eHQtPmlucHV0OworICAgIGlmICgoaW5wdXQtPmZpbGVuYW1lID09IE5VTEwpICYmIChjdHh0LT5pbnB1dE5yID4gMSkpCisgICAgICAgIGlucHV0ID0gY3R4dC0+aW5wdXRUYWJbY3R4dC0+aW5wdXROciAtIDJdOworCisgICAgeG1sSFRNTFByaW50RmlsZUluZm8oaW5wdXQpOworCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8Yj52YWxpZGl0eSBlcnJvcjwvYj46ICIpOworICAgIGxlbiA9IHN0cmxlbihidWZmZXIpOworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgdnNucHJpbnRmKCZidWZmZXJbbGVuXSwgIHNpemVvZihidWZmZXIpIC0gbGVuLCBtc2csIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKKyAgICB4bWxIVE1MRW5jb2RlU2VuZCgpOworICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiPC9wPlxuIik7CisKKyAgICB4bWxIVE1MUHJpbnRGaWxlQ29udGV4dChpbnB1dCk7CisgICAgeG1sSFRNTEVuY29kZVNlbmQoKTsKKyAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVkFMSUQ7Cit9CisKKy8qKgorICogeG1sSFRNTFZhbGlkaXR5V2FybmluZzoKKyAqIEBjdHg6ICBhbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIHZhbGlkaXR5IHdhcm5pbmcgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsCisgKiBwb3NpdGlvbiBhbmQgZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbEhUTUxWYWxpZGl0eVdhcm5pbmcodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0OworICAgIHZhX2xpc3QgYXJnczsKKyAgICBpbnQgbGVuOworCisgICAgYnVmZmVyWzBdID0gMDsKKyAgICBpbnB1dCA9IGN0eHQtPmlucHV0OworICAgIGlmICgoaW5wdXQtPmZpbGVuYW1lID09IE5VTEwpICYmIChjdHh0LT5pbnB1dE5yID4gMSkpCisgICAgICAgIGlucHV0ID0gY3R4dC0+aW5wdXRUYWJbY3R4dC0+aW5wdXROciAtIDJdOworCisgICAgeG1sSFRNTFByaW50RmlsZUluZm8oaW5wdXQpOworCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8Yj52YWxpZGl0eSB3YXJuaW5nPC9iPjogIik7CisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICBsZW4gPSBzdHJsZW4oYnVmZmVyKTsKKyAgICB2c25wcmludGYoJmJ1ZmZlcltsZW5dLCAgc2l6ZW9mKGJ1ZmZlcikgLSBsZW4sIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworICAgIHhtbEhUTUxFbmNvZGVTZW5kKCk7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICI8L3A+XG4iKTsKKworICAgIHhtbEhUTUxQcmludEZpbGVDb250ZXh0KGlucHV0KTsKKyAgICB4bWxIVE1MRW5jb2RlU2VuZCgpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJU2hlbGwgSW50ZXJmYWNlCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorLyoqCisgKiB4bWxTaGVsbFJlYWRsaW5lOgorICogQHByb21wdDogIHRoZSBwcm9tcHQgdmFsdWUKKyAqCisgKiBSZWFkIGEgc3RyaW5nCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gaXQgb3IgTlVMTCBvbiBFT0YgdGhlIGNhbGxlciBpcyBleHBlY3RlZCB0bworICogICAgIGZyZWUgdGhlIHJldHVybmVkIHN0cmluZy4KKyAqLworc3RhdGljIGNoYXIgKgoreG1sU2hlbGxSZWFkbGluZShjaGFyICpwcm9tcHQpIHsKKyNpZmRlZiBIQVZFX0xJQlJFQURMSU5FCisgICAgY2hhciAqbGluZV9yZWFkOworCisgICAgLyogR2V0IGEgbGluZSBmcm9tIHRoZSB1c2VyLiAqLworICAgIGxpbmVfcmVhZCA9IHJlYWRsaW5lIChwcm9tcHQpOworCisgICAgLyogSWYgdGhlIGxpbmUgaGFzIGFueSB0ZXh0IGluIGl0LCBzYXZlIGl0IG9uIHRoZSBoaXN0b3J5LiAqLworICAgIGlmIChsaW5lX3JlYWQgJiYgKmxpbmVfcmVhZCkKKwlhZGRfaGlzdG9yeSAobGluZV9yZWFkKTsKKworICAgIHJldHVybiAobGluZV9yZWFkKTsKKyNlbHNlCisgICAgY2hhciBsaW5lX3JlYWRbNTAxXTsKKyAgICBjaGFyICpyZXQ7CisgICAgaW50IGxlbjsKKworICAgIGlmIChwcm9tcHQgIT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiVzIiwgcHJvbXB0KTsKKyAgICBpZiAoIWZnZXRzKGxpbmVfcmVhZCwgNTAwLCBzdGRpbikpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBsaW5lX3JlYWRbNTAwXSA9IDA7CisgICAgbGVuID0gc3RybGVuKGxpbmVfcmVhZCk7CisgICAgcmV0ID0gKGNoYXIgKikgbWFsbG9jKGxlbiArIDEpOworICAgIGlmIChyZXQgIT0gTlVMTCkgeworCW1lbWNweSAocmV0LCBsaW5lX3JlYWQsIGxlbiArIDEpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKKyNlbmRpZgorfQorI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisjZW5kaWYgLyogTElCWE1MX0RFQlVHX0VOQUJMRUQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUkvTyBJbnRlcmZhY2VzCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQgbXlSZWFkKEZJTEUgKmYsIGNoYXIgKiBidWYsIGludCBsZW4pIHsKKyAgICByZXR1cm4oZnJlYWQoYnVmLCAxLCBsZW4sIGYpKTsKK30KK3N0YXRpYyB2b2lkIG15Q2xvc2UoRklMRSAqZikgeworICBpZiAoZiAhPSBzdGRpbikgeworICAgIGZjbG9zZShmKTsKKyAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJU0FYIGJhc2VkIHRlc3RzCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBlbXB0eSBTQVggYmxvY2sKKyAqLworc3RhdGljIHhtbFNBWEhhbmRsZXIgZW1wdHlTQVhIYW5kbGVyU3RydWN0ID0geworICAgIE5VTEwsIC8qIGludGVybmFsU3Vic2V0ICovCisgICAgTlVMTCwgLyogaXNTdGFuZGFsb25lICovCisgICAgTlVMTCwgLyogaGFzSW50ZXJuYWxTdWJzZXQgKi8KKyAgICBOVUxMLCAvKiBoYXNFeHRlcm5hbFN1YnNldCAqLworICAgIE5VTEwsIC8qIHJlc29sdmVFbnRpdHkgKi8KKyAgICBOVUxMLCAvKiBnZXRFbnRpdHkgKi8KKyAgICBOVUxMLCAvKiBlbnRpdHlEZWNsICovCisgICAgTlVMTCwgLyogbm90YXRpb25EZWNsICovCisgICAgTlVMTCwgLyogYXR0cmlidXRlRGVjbCAqLworICAgIE5VTEwsIC8qIGVsZW1lbnREZWNsICovCisgICAgTlVMTCwgLyogdW5wYXJzZWRFbnRpdHlEZWNsICovCisgICAgTlVMTCwgLyogc2V0RG9jdW1lbnRMb2NhdG9yICovCisgICAgTlVMTCwgLyogc3RhcnREb2N1bWVudCAqLworICAgIE5VTEwsIC8qIGVuZERvY3VtZW50ICovCisgICAgTlVMTCwgLyogc3RhcnRFbGVtZW50ICovCisgICAgTlVMTCwgLyogZW5kRWxlbWVudCAqLworICAgIE5VTEwsIC8qIHJlZmVyZW5jZSAqLworICAgIE5VTEwsIC8qIGNoYXJhY3RlcnMgKi8KKyAgICBOVUxMLCAvKiBpZ25vcmFibGVXaGl0ZXNwYWNlICovCisgICAgTlVMTCwgLyogcHJvY2Vzc2luZ0luc3RydWN0aW9uICovCisgICAgTlVMTCwgLyogY29tbWVudCAqLworICAgIE5VTEwsIC8qIHhtbFBhcnNlcldhcm5pbmcgKi8KKyAgICBOVUxMLCAvKiB4bWxQYXJzZXJFcnJvciAqLworICAgIE5VTEwsIC8qIHhtbFBhcnNlckVycm9yICovCisgICAgTlVMTCwgLyogZ2V0UGFyYW1ldGVyRW50aXR5ICovCisgICAgTlVMTCwgLyogY2RhdGFCbG9jazsgKi8KKyAgICBOVUxMLCAvKiBleHRlcm5hbFN1YnNldDsgKi8KKyAgICBYTUxfU0FYMl9NQUdJQywKKyAgICBOVUxMLAorICAgIE5VTEwsIC8qIHN0YXJ0RWxlbWVudE5zICovCisgICAgTlVMTCwgLyogZW5kRWxlbWVudE5zICovCisgICAgTlVMTCAgLyogeG1sU3RydWN0dXJlZEVycm9yRnVuYyAqLworfTsKKworc3RhdGljIHhtbFNBWEhhbmRsZXJQdHIgZW1wdHlTQVhIYW5kbGVyID0gJmVtcHR5U0FYSGFuZGxlclN0cnVjdDsKK2V4dGVybiB4bWxTQVhIYW5kbGVyUHRyIGRlYnVnU0FYSGFuZGxlcjsKK3N0YXRpYyBpbnQgY2FsbGJhY2tzOworCisvKioKKyAqIGlzU3RhbmRhbG9uZURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBJcyB0aGlzIGRvY3VtZW50IHRhZ2dlZCBzdGFuZGFsb25lID8KKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZQorICovCitzdGF0aWMgaW50Citpc1N0YW5kYWxvbmVEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuKDApOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmlzU3RhbmRhbG9uZSgpXG4iKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogaGFzSW50ZXJuYWxTdWJzZXREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogRG9lcyB0aGlzIGRvY3VtZW50IGhhcyBhbiBpbnRlcm5hbCBzdWJzZXQKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZQorICovCitzdGF0aWMgaW50CitoYXNJbnRlcm5hbFN1YnNldERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChub291dCkKKwlyZXR1cm4oMCk7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguaGFzSW50ZXJuYWxTdWJzZXQoKVxuIik7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIGhhc0V4dGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0CisgKgorICogUmV0dXJucyAxIGlmIHRydWUKKyAqLworc3RhdGljIGludAoraGFzRXh0ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuKDApOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmhhc0V4dGVybmFsU3Vic2V0KClcbiIpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiBpbnRlcm5hbFN1YnNldERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBEb2VzIHRoaXMgZG9jdW1lbnQgaGFzIGFuIGludGVybmFsIHN1YnNldAorICovCitzdGF0aWMgdm9pZAoraW50ZXJuYWxTdWJzZXREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkgICAgICAgY29uc3QgeG1sQ2hhciAqRXh0ZXJuYWxJRCwgY29uc3QgeG1sQ2hhciAqU3lzdGVtSUQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5pbnRlcm5hbFN1YnNldCglcywiLCBuYW1lKTsKKyAgICBpZiAoRXh0ZXJuYWxJRCA9PSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiICwiKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIgJXMsIiwgRXh0ZXJuYWxJRCk7CisgICAgaWYgKFN5c3RlbUlEID09IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIgKVxuIik7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiICVzKVxuIiwgU3lzdGVtSUQpOworfQorCisvKioKKyAqIGV4dGVybmFsU3Vic2V0RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICoKKyAqIERvZXMgdGhpcyBkb2N1bWVudCBoYXMgYW4gZXh0ZXJuYWwgc3Vic2V0CisgKi8KK3N0YXRpYyB2b2lkCitleHRlcm5hbFN1YnNldERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmV4dGVybmFsU3Vic2V0KCVzLCIsIG5hbWUpOworICAgIGlmIChFeHRlcm5hbElEID09IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIgLCIpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIiAlcywiLCBFeHRlcm5hbElEKTsKKyAgICBpZiAoU3lzdGVtSUQgPT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiApXG4iKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIgJXMpXG4iLCBTeXN0ZW1JRCk7Cit9CisKKy8qKgorICogcmVzb2x2ZUVudGl0eURlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBwdWJsaWNJZDogVGhlIHB1YmxpYyBJRCBvZiB0aGUgZW50aXR5CisgKiBAc3lzdGVtSWQ6IFRoZSBzeXN0ZW0gSUQgb2YgdGhlIGVudGl0eQorICoKKyAqIFNwZWNpYWwgZW50aXR5IHJlc29sdmVyLCBiZXR0ZXIgbGVmdCB0byB0aGUgcGFyc2VyLCBpdCBoYXMKKyAqIG1vcmUgY29udGV4dCB0aGFuIHRoZSBhcHBsaWNhdGlvbiBsYXllci4KKyAqIFRoZSBkZWZhdWx0IGJlaGF2aW91ciBpcyB0byBOT1QgcmVzb2x2ZSB0aGUgZW50aXRpZXMsIGluIHRoYXQgY2FzZQorICogdGhlIEVOVElUWV9SRUYgbm9kZXMgYXJlIGJ1aWx0IGluIHRoZSBzdHJ1Y3R1cmUgKGFuZCB0aGUgcGFyYW1ldGVyCisgKiB2YWx1ZXMpLgorICoKKyAqIFJldHVybnMgdGhlIHhtbFBhcnNlcklucHV0UHRyIGlmIGlubGluZWQgb3IgTlVMTCBmb3IgRE9NIGJlaGF2aW91ci4KKyAqLworc3RhdGljIHhtbFBhcnNlcklucHV0UHRyCityZXNvbHZlRW50aXR5RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuKE5VTEwpOworICAgIC8qIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7ICovCisKKworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnJlc29sdmVFbnRpdHkoIik7CisgICAgaWYgKHB1YmxpY0lkICE9IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICIlcyIsIChjaGFyICopcHVibGljSWQpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIiAiKTsKKyAgICBpZiAoc3lzdGVtSWQgIT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiwgJXMpXG4iLCAoY2hhciAqKXN5c3RlbUlkKTsKKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsICIsIClcbiIpOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiBnZXRFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogVGhlIGVudGl0eSBuYW1lCisgKgorICogR2V0IGFuIGVudGl0eSBieSBuYW1lCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIgaWYgaW5saW5lZCBvciBOVUxMIGZvciBET00gYmVoYXZpb3VyLgorICovCitzdGF0aWMgeG1sRW50aXR5UHRyCitnZXRFbnRpdHlEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuKE5VTEwpOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmdldEVudGl0eSglcylcbiIsIG5hbWUpOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiBnZXRQYXJhbWV0ZXJFbnRpdHlEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogVGhlIGVudGl0eSBuYW1lCisgKgorICogR2V0IGEgcGFyYW1ldGVyIGVudGl0eSBieSBuYW1lCisgKgorICogUmV0dXJucyB0aGUgeG1sUGFyc2VySW5wdXRQdHIKKyAqLworc3RhdGljIHhtbEVudGl0eVB0cgorZ2V0UGFyYW1ldGVyRW50aXR5RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorCXJldHVybihOVUxMKTsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5nZXRQYXJhbWV0ZXJFbnRpdHkoJXMpXG4iLCBuYW1lKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKworLyoqCisgKiBlbnRpdHlEZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgZW50aXR5IG5hbWUKKyAqIEB0eXBlOiAgdGhlIGVudGl0eSB0eXBlCisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBjb250ZW50OiB0aGUgZW50aXR5IHZhbHVlICh3aXRob3V0IHByb2Nlc3NpbmcpLgorICoKKyAqIEFuIGVudGl0eSBkZWZpbml0aW9uIGhhcyBiZWVuIHBhcnNlZAorICovCitzdGF0aWMgdm9pZAorZW50aXR5RGVjbERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgdHlwZSwKKyAgICAgICAgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQsIHhtbENoYXIgKmNvbnRlbnQpCit7Citjb25zdCB4bWxDaGFyICpudWxsc3RyID0gQkFEX0NBU1QgIihudWxsKSI7CisgICAgLyogbm90IGFsbCBsaWJyYXJpZXMgaGFuZGxlIHByaW50aW5nIG51bGwgcG9pbnRlcnMgbmljZWx5ICovCisgICAgaWYgKHB1YmxpY0lkID09IE5VTEwpCisgICAgICAgIHB1YmxpY0lkID0gbnVsbHN0cjsKKyAgICBpZiAoc3lzdGVtSWQgPT0gTlVMTCkKKyAgICAgICAgc3lzdGVtSWQgPSBudWxsc3RyOworICAgIGlmIChjb250ZW50ID09IE5VTEwpCisgICAgICAgIGNvbnRlbnQgPSAoeG1sQ2hhciAqKW51bGxzdHI7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5lbnRpdHlEZWNsKCVzLCAlZCwgJXMsICVzLCAlcylcbiIsCisgICAgICAgICAgICBuYW1lLCB0eXBlLCBwdWJsaWNJZCwgc3lzdGVtSWQsIGNvbnRlbnQpOworfQorCisvKioKKyAqIGF0dHJpYnV0ZURlY2xEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBhdHRyaWJ1dGUgbmFtZQorICogQHR5cGU6ICB0aGUgYXR0cmlidXRlIHR5cGUKKyAqCisgKiBBbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBoYXMgYmVlbiBwYXJzZWQKKyAqLworc3RhdGljIHZvaWQKK2F0dHJpYnV0ZURlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqIGVsZW0sCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGludCB0eXBlLCBpbnQgZGVmLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBkZWZhdWx0VmFsdWUsIHhtbEVudW1lcmF0aW9uUHRyIHRyZWUpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorICAgICAgICByZXR1cm47CisgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PSBOVUxMKQorICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5hdHRyaWJ1dGVEZWNsKCVzLCAlcywgJWQsICVkLCBOVUxMLCAuLi4pXG4iLAorICAgICAgICAgICAgICAgIGVsZW0sIG5hbWUsIHR5cGUsIGRlZik7CisgICAgZWxzZQorICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5hdHRyaWJ1dGVEZWNsKCVzLCAlcywgJWQsICVkLCAlcywgLi4uKVxuIiwKKyAgICAgICAgICAgICAgICBlbGVtLCBuYW1lLCB0eXBlLCBkZWYsIGRlZmF1bHRWYWx1ZSk7CisgICAgeG1sRnJlZUVudW1lcmF0aW9uKHRyZWUpOworfQorCisvKioKKyAqIGVsZW1lbnREZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgZWxlbWVudCBuYW1lCisgKiBAdHlwZTogIHRoZSBlbGVtZW50IHR5cGUKKyAqIEBjb250ZW50OiB0aGUgZWxlbWVudCB2YWx1ZSAod2l0aG91dCBwcm9jZXNzaW5nKS4KKyAqCisgKiBBbiBlbGVtZW50IGRlZmluaXRpb24gaGFzIGJlZW4gcGFyc2VkCisgKi8KK3N0YXRpYyB2b2lkCitlbGVtZW50RGVjbERlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgdHlwZSwKKwkgICAgeG1sRWxlbWVudENvbnRlbnRQdHIgY29udGVudCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChub291dCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguZWxlbWVudERlY2woJXMsICVkLCAuLi4pXG4iLAorICAgICAgICAgICAgbmFtZSwgdHlwZSk7Cit9CisKKy8qKgorICogbm90YXRpb25EZWNsRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbgorICogQHB1YmxpY0lkOiBUaGUgcHVibGljIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBzeXN0ZW1JZDogVGhlIHN5c3RlbSBJRCBvZiB0aGUgZW50aXR5CisgKgorICogV2hhdCB0byBkbyB3aGVuIGEgbm90YXRpb24gZGVjbGFyYXRpb24gaGFzIGJlZW4gcGFyc2VkLgorICovCitzdGF0aWMgdm9pZAorbm90YXRpb25EZWNsRGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICBjb25zdCB4bWxDaGFyICpwdWJsaWNJZCwgY29uc3QgeG1sQ2hhciAqc3lzdGVtSWQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5ub3RhdGlvbkRlY2woJXMsICVzLCAlcylcbiIsCisgICAgICAgICAgICAoY2hhciAqKSBuYW1lLCAoY2hhciAqKSBwdWJsaWNJZCwgKGNoYXIgKikgc3lzdGVtSWQpOworfQorCisvKioKKyAqIHVucGFyc2VkRW50aXR5RGVjbERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZW50aXR5CisgKiBAcHVibGljSWQ6IFRoZSBwdWJsaWMgSUQgb2YgdGhlIGVudGl0eQorICogQHN5c3RlbUlkOiBUaGUgc3lzdGVtIElEIG9mIHRoZSBlbnRpdHkKKyAqIEBub3RhdGlvbk5hbWU6IHRoZSBuYW1lIG9mIHRoZSBub3RhdGlvbgorICoKKyAqIFdoYXQgdG8gZG8gd2hlbiBhbiB1bnBhcnNlZCBlbnRpdHkgZGVjbGFyYXRpb24gaXMgcGFyc2VkCisgKi8KK3N0YXRpYyB2b2lkCit1bnBhcnNlZEVudGl0eURlY2xEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJICAgY29uc3QgeG1sQ2hhciAqcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkLAorCQkgICBjb25zdCB4bWxDaGFyICpub3RhdGlvbk5hbWUpCit7Citjb25zdCB4bWxDaGFyICpudWxsc3RyID0gQkFEX0NBU1QgIihudWxsKSI7CisKKyAgICBpZiAocHVibGljSWQgPT0gTlVMTCkKKyAgICAgICAgcHVibGljSWQgPSBudWxsc3RyOworICAgIGlmIChzeXN0ZW1JZCA9PSBOVUxMKQorICAgICAgICBzeXN0ZW1JZCA9IG51bGxzdHI7CisgICAgaWYgKG5vdGF0aW9uTmFtZSA9PSBOVUxMKQorICAgICAgICBub3RhdGlvbk5hbWUgPSBudWxsc3RyOworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChub291dCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVgudW5wYXJzZWRFbnRpdHlEZWNsKCVzLCAlcywgJXMsICVzKVxuIiwKKyAgICAgICAgICAgIChjaGFyICopIG5hbWUsIChjaGFyICopIHB1YmxpY0lkLCAoY2hhciAqKSBzeXN0ZW1JZCwKKwkgICAgKGNoYXIgKikgbm90YXRpb25OYW1lKTsKK30KKworLyoqCisgKiBzZXREb2N1bWVudExvY2F0b3JEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbG9jOiBBIFNBWCBMb2NhdG9yCisgKgorICogUmVjZWl2ZSB0aGUgZG9jdW1lbnQgbG9jYXRvciBhdCBzdGFydHVwLCBhY3R1YWxseSB4bWxEZWZhdWx0U0FYTG9jYXRvcgorICogRXZlcnl0aGluZyBpcyBhdmFpbGFibGUgb24gdGhlIGNvbnRleHQsIHNvIHRoaXMgaXMgdXNlbGVzcyBpbiBvdXIgY2FzZS4KKyAqLworc3RhdGljIHZvaWQKK3NldERvY3VtZW50TG9jYXRvckRlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCB4bWxTQVhMb2NhdG9yUHRyIGxvYyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChub291dCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguc2V0RG9jdW1lbnRMb2NhdG9yKClcbiIpOworfQorCisvKioKKyAqIHN0YXJ0RG9jdW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogY2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IHN0YXJ0IGJlaW5nIHByb2Nlc3NlZC4KKyAqLworc3RhdGljIHZvaWQKK3N0YXJ0RG9jdW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnN0YXJ0RG9jdW1lbnQoKVxuIik7Cit9CisKKy8qKgorICogZW5kRG9jdW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKgorICogY2FsbGVkIHdoZW4gdGhlIGRvY3VtZW50IGVuZCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLworc3RhdGljIHZvaWQKK2VuZERvY3VtZW50RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorCXJldHVybjsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5lbmREb2N1bWVudCgpXG4iKTsKK30KKworLyoqCisgKiBzdGFydEVsZW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzdGFydEVsZW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqKmF0dHMpCit7CisgICAgaW50IGk7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnN0YXJ0RWxlbWVudCglcyIsIChjaGFyICopIG5hbWUpOworICAgIGlmIChhdHRzICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDsoYXR0c1tpXSAhPSBOVUxMKTtpKyspIHsKKwkgICAgZnByaW50ZihzdGRvdXQsICIsICVzPSciLCBhdHRzW2krK10pOworCSAgICBpZiAoYXR0c1tpXSAhPSBOVUxMKQorCSAgICAgICAgZnByaW50ZihzdGRvdXQsICIlcyciLCBhdHRzW2ldKTsKKwl9CisgICAgfQorICAgIGZwcmludGYoc3Rkb3V0LCAiKVxuIik7Cit9CisKKy8qKgorICogZW5kRWxlbWVudERlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBoYXMgYmVlbiBkZXRlY3RlZC4KKyAqLworc3RhdGljIHZvaWQKK2VuZEVsZW1lbnREZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmVuZEVsZW1lbnQoJXMpXG4iLCAoY2hhciAqKSBuYW1lKTsKK30KKworLyoqCisgKiBjaGFyYWN0ZXJzRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQGNoOiAgYSB4bWxDaGFyIHN0cmluZworICogQGxlbjogdGhlIG51bWJlciBvZiB4bWxDaGFyCisgKgorICogcmVjZWl2aW5nIHNvbWUgY2hhcnMgZnJvbSB0aGUgcGFyc2VyLgorICogUXVlc3Rpb246IGhvdyBtdWNoIGF0IGEgdGltZSA/Pz8KKyAqLworc3RhdGljIHZvaWQKK2NoYXJhY3RlcnNEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqY2gsIGludCBsZW4pCit7CisgICAgY2hhciBvdXRbNDBdOworICAgIGludCBpOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorCXJldHVybjsKKyAgICBmb3IgKGkgPSAwOyhpPGxlbikgJiYgKGkgPCAzMCk7aSsrKQorCW91dFtpXSA9IGNoW2ldOworICAgIG91dFtpXSA9IDA7CisKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5jaGFyYWN0ZXJzKCVzLCAlZClcbiIsIG91dCwgbGVuKTsKK30KKworLyoqCisgKiByZWZlcmVuY2VEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbnRpdHkgbmFtZQorICoKKyAqIGNhbGxlZCB3aGVuIGFuIGVudGl0eSByZWZlcmVuY2UgaXMgZGV0ZWN0ZWQuCisgKi8KK3N0YXRpYyB2b2lkCityZWZlcmVuY2VEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgeG1sQ2hhciAqbmFtZSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnJlZmVyZW5jZSglcylcbiIsIG5hbWUpOworfQorCisvKioKKyAqIGlnbm9yYWJsZVdoaXRlc3BhY2VEZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAY2g6ICBhIHhtbENoYXIgc3RyaW5nCisgKiBAc3RhcnQ6IHRoZSBmaXJzdCBjaGFyIGluIHRoZSBzdHJpbmcKKyAqIEBsZW46IHRoZSBudW1iZXIgb2YgeG1sQ2hhcgorICoKKyAqIHJlY2VpdmluZyBzb21lIGlnbm9yYWJsZSB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBwYXJzZXIuCisgKiBRdWVzdGlvbjogaG93IG11Y2ggYXQgYSB0aW1lID8/PworICovCitzdGF0aWMgdm9pZAoraWdub3JhYmxlV2hpdGVzcGFjZURlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICpjaCwgaW50IGxlbikKK3sKKyAgICBjaGFyIG91dFs0MF07CisgICAgaW50IGk7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZvciAoaSA9IDA7KGk8bGVuKSAmJiAoaSA8IDMwKTtpKyspCisJb3V0W2ldID0gY2hbaV07CisgICAgb3V0W2ldID0gMDsKKyAgICBmcHJpbnRmKHN0ZG91dCwgIlNBWC5pZ25vcmFibGVXaGl0ZXNwYWNlKCVzLCAlZClcbiIsIG91dCwgbGVuKTsKK30KKworLyoqCisgKiBwcm9jZXNzaW5nSW5zdHJ1Y3Rpb25EZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAdGFyZ2V0OiAgdGhlIHRhcmdldCBuYW1lCisgKiBAZGF0YTogdGhlIFBJIGRhdGEncworICogQGxlbjogdGhlIG51bWJlciBvZiB4bWxDaGFyCisgKgorICogQSBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGhhcyBiZWVuIHBhcnNlZC4KKyAqLworc3RhdGljIHZvaWQKK3Byb2Nlc3NpbmdJbnN0cnVjdGlvbkRlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICp0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqZGF0YSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGlmIChkYXRhICE9IE5VTEwpCisJZnByaW50ZihzdGRvdXQsICJTQVgucHJvY2Vzc2luZ0luc3RydWN0aW9uKCVzLCAlcylcbiIsCisJCShjaGFyICopIHRhcmdldCwgKGNoYXIgKikgZGF0YSk7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiU0FYLnByb2Nlc3NpbmdJbnN0cnVjdGlvbiglcywgTlVMTClcbiIsCisJCShjaGFyICopIHRhcmdldCk7Cit9CisKKy8qKgorICogY2RhdGFCbG9ja0RlYnVnOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQHZhbHVlOiAgVGhlIHBjZGF0YSBjb250ZW50CisgKiBAbGVuOiAgdGhlIGJsb2NrIGxlbmd0aAorICoKKyAqIGNhbGxlZCB3aGVuIGEgcGNkYXRhIGJsb2NrIGhhcyBiZWVuIHBhcnNlZAorICovCitzdGF0aWMgdm9pZAorY2RhdGFCbG9ja0RlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCB4bWxDaGFyICp2YWx1ZSwgaW50IGxlbikKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLnBjZGF0YSglLjIwcywgJWQpXG4iLAorCSAgICAoY2hhciAqKSB2YWx1ZSwgbGVuKTsKK30KKworLyoqCisgKiBjb21tZW50RGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQHZhbHVlOiAgdGhlIGNvbW1lbnQgY29udGVudAorICoKKyAqIEEgY29tbWVudCBoYXMgYmVlbiBwYXJzZWQuCisgKi8KK3N0YXRpYyB2b2lkCitjb21tZW50RGVidWcodm9pZCAqY3R4IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IHhtbENoYXIgKnZhbHVlKQoreworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChub291dCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguY29tbWVudCglcylcbiIsIHZhbHVlKTsKK30KKworLyoqCisgKiB3YXJuaW5nRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG1zZzogIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkvdHJhbnNtaXQKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKgorICogRGlzcGxheSBhbmQgZm9ybWF0IGEgd2FybmluZyBtZXNzYWdlcywgZ2l2ZXMgZmlsZSwgbGluZSwgcG9zaXRpb24gYW5kCisgKiBleHRyYSBwYXJhbWV0ZXJzLgorICovCitzdGF0aWMgdm9pZCBYTUxDREVDTAord2FybmluZ0RlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB2YV9saXN0IGFyZ3M7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVgud2FybmluZzogIik7CisgICAgdmZwcmludGYoc3Rkb3V0LCBtc2csIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKK30KKworLyoqCisgKiBlcnJvckRlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIGVycm9yIG1lc3NhZ2VzLCBnaXZlcyBmaWxlLCBsaW5lLCBwb3NpdGlvbiBhbmQKKyAqIGV4dHJhIHBhcmFtZXRlcnMuCisgKi8KK3N0YXRpYyB2b2lkIFhNTENERUNMCitlcnJvckRlYnVnKHZvaWQgKmN0eCBBVFRSSUJVVEVfVU5VU0VELCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB2YV9saXN0IGFyZ3M7CisKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguZXJyb3I6ICIpOworICAgIHZmcHJpbnRmKHN0ZG91dCwgbXNnLCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7Cit9CisKKy8qKgorICogZmF0YWxFcnJvckRlYnVnOgorICogQGN0eHQ6ICBBbiBYTUwgcGFyc2VyIGNvbnRleHQKKyAqIEBtc2c6ICB0aGUgbWVzc2FnZSB0byBkaXNwbGF5L3RyYW5zbWl0CisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICoKKyAqIERpc3BsYXkgYW5kIGZvcm1hdCBhIGZhdGFsRXJyb3IgbWVzc2FnZXMsIGdpdmVzIGZpbGUsIGxpbmUsIHBvc2l0aW9uIGFuZAorICogZXh0cmEgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK2ZhdGFsRXJyb3JEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworCisgICAgY2FsbGJhY2tzKys7CisgICAgaWYgKG5vb3V0KQorCXJldHVybjsKKyAgICB2YV9zdGFydChhcmdzLCBtc2cpOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmZhdGFsRXJyb3I6ICIpOworICAgIHZmcHJpbnRmKHN0ZG91dCwgbXNnLCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7Cit9CisKK3N0YXRpYyB4bWxTQVhIYW5kbGVyIGRlYnVnU0FYSGFuZGxlclN0cnVjdCA9IHsKKyAgICBpbnRlcm5hbFN1YnNldERlYnVnLAorICAgIGlzU3RhbmRhbG9uZURlYnVnLAorICAgIGhhc0ludGVybmFsU3Vic2V0RGVidWcsCisgICAgaGFzRXh0ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICByZXNvbHZlRW50aXR5RGVidWcsCisgICAgZ2V0RW50aXR5RGVidWcsCisgICAgZW50aXR5RGVjbERlYnVnLAorICAgIG5vdGF0aW9uRGVjbERlYnVnLAorICAgIGF0dHJpYnV0ZURlY2xEZWJ1ZywKKyAgICBlbGVtZW50RGVjbERlYnVnLAorICAgIHVucGFyc2VkRW50aXR5RGVjbERlYnVnLAorICAgIHNldERvY3VtZW50TG9jYXRvckRlYnVnLAorICAgIHN0YXJ0RG9jdW1lbnREZWJ1ZywKKyAgICBlbmREb2N1bWVudERlYnVnLAorICAgIHN0YXJ0RWxlbWVudERlYnVnLAorICAgIGVuZEVsZW1lbnREZWJ1ZywKKyAgICByZWZlcmVuY2VEZWJ1ZywKKyAgICBjaGFyYWN0ZXJzRGVidWcsCisgICAgaWdub3JhYmxlV2hpdGVzcGFjZURlYnVnLAorICAgIHByb2Nlc3NpbmdJbnN0cnVjdGlvbkRlYnVnLAorICAgIGNvbW1lbnREZWJ1ZywKKyAgICB3YXJuaW5nRGVidWcsCisgICAgZXJyb3JEZWJ1ZywKKyAgICBmYXRhbEVycm9yRGVidWcsCisgICAgZ2V0UGFyYW1ldGVyRW50aXR5RGVidWcsCisgICAgY2RhdGFCbG9ja0RlYnVnLAorICAgIGV4dGVybmFsU3Vic2V0RGVidWcsCisgICAgMSwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMCit9OworCit4bWxTQVhIYW5kbGVyUHRyIGRlYnVnU0FYSGFuZGxlciA9ICZkZWJ1Z1NBWEhhbmRsZXJTdHJ1Y3Q7CisKKy8qCisgKiBTQVgyIHNwZWNpZmljIGNhbGxiYWNrcworICovCisvKioKKyAqIHN0YXJ0RWxlbWVudE5zRGVidWc6CisgKiBAY3R4dDogIEFuIFhNTCBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICBUaGUgZWxlbWVudCBuYW1lCisgKgorICogY2FsbGVkIHdoZW4gYW4gb3BlbmluZyB0YWcgaGFzIGJlZW4gcHJvY2Vzc2VkLgorICovCitzdGF0aWMgdm9pZAorc3RhcnRFbGVtZW50TnNEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbG9jYWxuYW1lLAorICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKlVSSSwKKwkJICAgIGludCBuYl9uYW1lc3BhY2VzLAorCQkgICAgY29uc3QgeG1sQ2hhciAqKm5hbWVzcGFjZXMsCisJCSAgICBpbnQgbmJfYXR0cmlidXRlcywKKwkJICAgIGludCBuYl9kZWZhdWx0ZWQsCisJCSAgICBjb25zdCB4bWxDaGFyICoqYXR0cmlidXRlcykKK3sKKyAgICBpbnQgaTsKKworICAgIGNhbGxiYWNrcysrOworICAgIGlmIChub291dCkKKwlyZXR1cm47CisgICAgZnByaW50ZihzdGRvdXQsICJTQVguc3RhcnRFbGVtZW50TnMoJXMiLCAoY2hhciAqKSBsb2NhbG5hbWUpOworICAgIGlmIChwcmVmaXggPT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiwgTlVMTCIpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIiwgJXMiLCAoY2hhciAqKSBwcmVmaXgpOworICAgIGlmIChVUkkgPT0gTlVMTCkKKwlmcHJpbnRmKHN0ZG91dCwgIiwgTlVMTCIpOworICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwgIiwgJyVzJyIsIChjaGFyICopIFVSSSk7CisgICAgZnByaW50ZihzdGRvdXQsICIsICVkIiwgbmJfbmFtZXNwYWNlcyk7CisKKyAgICBpZiAobmFtZXNwYWNlcyAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaSA9IDA7aSA8IG5iX25hbWVzcGFjZXMgKiAyO2krKykgeworCSAgICBmcHJpbnRmKHN0ZG91dCwgIiwgeG1sbnMiKTsKKwkgICAgaWYgKG5hbWVzcGFjZXNbaV0gIT0gTlVMTCkKKwkgICAgICAgIGZwcmludGYoc3Rkb3V0LCAiOiVzIiwgbmFtZXNwYWNlc1tpXSk7CisJICAgIGkrKzsKKwkgICAgZnByaW50ZihzdGRvdXQsICI9JyVzJyIsIG5hbWVzcGFjZXNbaV0pOworCX0KKyAgICB9CisgICAgZnByaW50ZihzdGRvdXQsICIsICVkLCAlZCIsIG5iX2F0dHJpYnV0ZXMsIG5iX2RlZmF1bHRlZCk7CisgICAgaWYgKGF0dHJpYnV0ZXMgIT0gTlVMTCkgeworICAgICAgICBmb3IgKGkgPSAwO2kgPCBuYl9hdHRyaWJ1dGVzICogNTtpICs9IDUpIHsKKwkgICAgaWYgKGF0dHJpYnV0ZXNbaSArIDFdICE9IE5VTEwpCisJCWZwcmludGYoc3Rkb3V0LCAiLCAlczolcz0nIiwgYXR0cmlidXRlc1tpICsgMV0sIGF0dHJpYnV0ZXNbaV0pOworCSAgICBlbHNlCisJCWZwcmludGYoc3Rkb3V0LCAiLCAlcz0nIiwgYXR0cmlidXRlc1tpXSk7CisJICAgIGZwcmludGYoc3Rkb3V0LCAiJS40cy4uLicsICVkIiwgYXR0cmlidXRlc1tpICsgM10sCisJCSAgICAoaW50KShhdHRyaWJ1dGVzW2kgKyA0XSAtIGF0dHJpYnV0ZXNbaSArIDNdKSk7CisJfQorICAgIH0KKyAgICBmcHJpbnRmKHN0ZG91dCwgIilcbiIpOworfQorCisvKioKKyAqIGVuZEVsZW1lbnREZWJ1ZzoKKyAqIEBjdHh0OiAgQW4gWE1MIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIFRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBjYWxsZWQgd2hlbiB0aGUgZW5kIG9mIGFuIGVsZW1lbnQgaGFzIGJlZW4gZGV0ZWN0ZWQuCisgKi8KK3N0YXRpYyB2b2lkCitlbmRFbGVtZW50TnNEZWJ1Zyh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmxvY2FsbmFtZSwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKlVSSSkKK3sKKyAgICBjYWxsYmFja3MrKzsKKyAgICBpZiAobm9vdXQpCisJcmV0dXJuOworICAgIGZwcmludGYoc3Rkb3V0LCAiU0FYLmVuZEVsZW1lbnROcyglcyIsIChjaGFyICopIGxvY2FsbmFtZSk7CisgICAgaWYgKHByZWZpeCA9PSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiLCBOVUxMIik7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiLCAlcyIsIChjaGFyICopIHByZWZpeCk7CisgICAgaWYgKFVSSSA9PSBOVUxMKQorCWZwcmludGYoc3Rkb3V0LCAiLCBOVUxMKVxuIik7CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCAiLCAnJXMnKVxuIiwgKGNoYXIgKikgVVJJKTsKK30KKworc3RhdGljIHhtbFNBWEhhbmRsZXIgZGVidWdTQVgySGFuZGxlclN0cnVjdCA9IHsKKyAgICBpbnRlcm5hbFN1YnNldERlYnVnLAorICAgIGlzU3RhbmRhbG9uZURlYnVnLAorICAgIGhhc0ludGVybmFsU3Vic2V0RGVidWcsCisgICAgaGFzRXh0ZXJuYWxTdWJzZXREZWJ1ZywKKyAgICByZXNvbHZlRW50aXR5RGVidWcsCisgICAgZ2V0RW50aXR5RGVidWcsCisgICAgZW50aXR5RGVjbERlYnVnLAorICAgIG5vdGF0aW9uRGVjbERlYnVnLAorICAgIGF0dHJpYnV0ZURlY2xEZWJ1ZywKKyAgICBlbGVtZW50RGVjbERlYnVnLAorICAgIHVucGFyc2VkRW50aXR5RGVjbERlYnVnLAorICAgIHNldERvY3VtZW50TG9jYXRvckRlYnVnLAorICAgIHN0YXJ0RG9jdW1lbnREZWJ1ZywKKyAgICBlbmREb2N1bWVudERlYnVnLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICByZWZlcmVuY2VEZWJ1ZywKKyAgICBjaGFyYWN0ZXJzRGVidWcsCisgICAgaWdub3JhYmxlV2hpdGVzcGFjZURlYnVnLAorICAgIHByb2Nlc3NpbmdJbnN0cnVjdGlvbkRlYnVnLAorICAgIGNvbW1lbnREZWJ1ZywKKyAgICB3YXJuaW5nRGVidWcsCisgICAgZXJyb3JEZWJ1ZywKKyAgICBmYXRhbEVycm9yRGVidWcsCisgICAgZ2V0UGFyYW1ldGVyRW50aXR5RGVidWcsCisgICAgY2RhdGFCbG9ja0RlYnVnLAorICAgIGV4dGVybmFsU3Vic2V0RGVidWcsCisgICAgWE1MX1NBWDJfTUFHSUMsCisgICAgTlVMTCwKKyAgICBzdGFydEVsZW1lbnROc0RlYnVnLAorICAgIGVuZEVsZW1lbnROc0RlYnVnLAorICAgIE5VTEwKK307CisKK3N0YXRpYyB4bWxTQVhIYW5kbGVyUHRyIGRlYnVnU0FYMkhhbmRsZXIgPSAmZGVidWdTQVgySGFuZGxlclN0cnVjdDsKKworc3RhdGljIHZvaWQKK3Rlc3RTQVgoY29uc3QgY2hhciAqZmlsZW5hbWUpIHsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIGhhbmRsZXI7CisgICAgY29uc3QgY2hhciAqdXNlcl9kYXRhID0gInVzZXJfZGF0YSI7IC8qIG1vc3RseSBmb3IgZGVidWdnaW5nICovCisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgYnVmID0gTlVMTDsKKyAgICB4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dFN0cmVhbTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSBOVUxMOworICAgIHhtbFNBWEhhbmRsZXJQdHIgb2xkX3NheCA9IE5VTEw7CisKKyAgICBjYWxsYmFja3MgPSAwOworCisgICAgaWYgKG5vb3V0KSB7CisgICAgICAgIGhhbmRsZXIgPSBlbXB0eVNBWEhhbmRsZXI7CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIH0gZWxzZSBpZiAoc2F4MSkgeworICAgICAgICBoYW5kbGVyID0gZGVidWdTQVhIYW5kbGVyOworI2VuZGlmCisgICAgfSBlbHNlIHsKKyAgICAgICAgaGFuZGxlciA9IGRlYnVnU0FYMkhhbmRsZXI7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBpdCdzIG5vdCB0aGUgc2ltcGxlc3QgY29kZSBidXQgdGhlIG1vc3QgZ2VuZXJpYyBpbiB0ZXJtIG9mIEkvTworICAgICAqLworICAgIGJ1ZiA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoZmlsZW5hbWUsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICBpZiAod3hzY2hlbWFzICE9IE5VTEwpIHsKKyAgICAgICAgaW50IHJldDsKKwl4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQ7CisKKwl2Y3R4dCA9IHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dCh3eHNjaGVtYXMpOworCXhtbFNjaGVtYVNldFZhbGlkRXJyb3JzKHZjdHh0LAorCQkoeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGYsCisJCSh4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jKSBmcHJpbnRmLAorCQlzdGRlcnIpOworCisJcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0odmN0eHQsIGJ1ZiwgMCwgaGFuZGxlciwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKXVzZXJfZGF0YSk7CisJaWYgKHJlcGVhdCA9PSAwKSB7CisJICAgIGlmIChyZXQgPT0gMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIiVzIHZhbGlkYXRlc1xuIiwgZmlsZW5hbWUpOworCSAgICB9IGVsc2UgaWYgKHJldCA+IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICIlcyBmYWlscyB0byB2YWxpZGF0ZVxuIiwgZmlsZW5hbWUpOworCQlwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVkFMSUQ7CisJICAgIH0gZWxzZSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXMgdmFsaWRhdGlvbiBnZW5lcmF0ZWQgYW4gaW50ZXJuYWwgZXJyb3JcbiIsCisJCSAgICAgICBmaWxlbmFtZSk7CisJCXByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9WQUxJRDsKKwkgICAgfQorCX0KKwl4bWxTY2hlbWFGcmVlVmFsaWRDdHh0KHZjdHh0KTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKwkvKgorCSAqIENyZWF0ZSB0aGUgcGFyc2VyIGNvbnRleHQgYW1kIGhvb2sgdGhlIGlucHV0CisJICovCisJY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKwlpZiAoY3R4dCA9PSBOVUxMKSB7CisJICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihidWYpOworCSAgICBnb3RvIGVycm9yOworCX0KKwlvbGRfc2F4ID0gY3R4dC0+c2F4OworCWN0eHQtPnNheCA9IGhhbmRsZXI7CisJY3R4dC0+dXNlckRhdGEgPSAodm9pZCAqKSB1c2VyX2RhdGE7CisJaW5wdXRTdHJlYW0gPSB4bWxOZXdJT0lucHV0U3RyZWFtKGN0eHQsIGJ1ZiwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisJaWYgKGlucHV0U3RyZWFtID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisJICAgIGdvdG8gZXJyb3I7CisJfQorCWlucHV0UHVzaChjdHh0LCBpbnB1dFN0cmVhbSk7CisKKwkvKiBkbyB0aGUgcGFyc2luZyAqLworCXhtbFBhcnNlRG9jdW1lbnQoY3R4dCk7CisKKwlpZiAoY3R4dC0+bXlEb2MgIT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIlNBWCBnZW5lcmF0ZWQgYSBkb2MgIVxuIik7CisJICAgIHhtbEZyZWVEb2MoY3R4dC0+bXlEb2MpOworCSAgICBjdHh0LT5teURvYyA9IE5VTEw7CisJfQorICAgIH0KKworZXJyb3I6CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBjdHh0LT5zYXggPSBvbGRfc2F4OworICAgICAgICB4bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlTdHJlYW0gVGVzdCBwcm9jZXNzaW5nCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKK3N0YXRpYyB2b2lkIHByb2Nlc3NOb2RlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZSwgKnZhbHVlOworICAgIGludCB0eXBlLCBlbXB0eTsKKworICAgIHR5cGUgPSB4bWxUZXh0UmVhZGVyTm9kZVR5cGUocmVhZGVyKTsKKyAgICBlbXB0eSA9IHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudChyZWFkZXIpOworCisgICAgaWYgKGRlYnVnKSB7CisJbmFtZSA9IHhtbFRleHRSZWFkZXJDb25zdE5hbWUocmVhZGVyKTsKKwlpZiAobmFtZSA9PSBOVUxMKQorCSAgICBuYW1lID0gQkFEX0NBU1QgIi0tIjsKKworCXZhbHVlID0geG1sVGV4dFJlYWRlckNvbnN0VmFsdWUocmVhZGVyKTsKKworCisJcHJpbnRmKCIlZCAlZCAlcyAlZCAlZCIsCisJCXhtbFRleHRSZWFkZXJEZXB0aChyZWFkZXIpLAorCQl0eXBlLAorCQluYW1lLAorCQllbXB0eSwKKwkJeG1sVGV4dFJlYWRlckhhc1ZhbHVlKHJlYWRlcikpOworCWlmICh2YWx1ZSA9PSBOVUxMKQorCSAgICBwcmludGYoIlxuIik7CisJZWxzZSB7CisJICAgIHByaW50ZigiICVzXG4iLCB2YWx1ZSk7CisJfQorICAgIH0KKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgaWYgKHBhdHRlcm5jKSB7CisgICAgICAgIHhtbENoYXIgKnBhdGggPSBOVUxMOworICAgICAgICBpbnQgbWF0Y2ggPSAtMTsKKworCWlmICh0eXBlID09IFhNTF9SRUFERVJfVFlQRV9FTEVNRU5UKSB7CisJICAgIC8qIGRvIHRoZSBjaGVjayBvbmx5IG9uIGVsZW1lbnQgc3RhcnQgKi8KKwkgICAgbWF0Y2ggPSB4bWxQYXR0ZXJuTWF0Y2gocGF0dGVybmMsIHhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZShyZWFkZXIpKTsKKworCSAgICBpZiAobWF0Y2gpIHsKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisJCXBhdGggPSB4bWxHZXROb2RlUGF0aCh4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGUocmVhZGVyKSk7CisJCXByaW50ZigiTm9kZSAlcyBtYXRjaGVzIHBhdHRlcm4gJXNcbiIsIHBhdGgsIHBhdHRlcm4pOworI2Vsc2UKKyAgICAgICAgICAgICAgICBwcmludGYoIk5vZGUgJXMgbWF0Y2hlcyBwYXR0ZXJuICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICB4bWxUZXh0UmVhZGVyQ29uc3ROYW1lKHJlYWRlciksIHBhdHRlcm4pOworI2VuZGlmCisJICAgIH0KKwl9CisJaWYgKHBhdHN0cmVhbSAhPSBOVUxMKSB7CisJICAgIGludCByZXQ7CisKKwkgICAgaWYgKHR5cGUgPT0gWE1MX1JFQURFUl9UWVBFX0VMRU1FTlQpIHsKKwkJcmV0ID0geG1sU3RyZWFtUHVzaChwYXRzdHJlYW0sCisJCSAgICAgICAgICAgICAgICAgICAgeG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lKHJlYWRlciksCisJCQkJICAgIHhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaShyZWFkZXIpKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAieG1sU3RyZWFtUHVzaCgpIGZhaWx1cmVcbiIpOworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlU3RyZWFtQ3R4dChwYXRzdHJlYW0pOworCQkgICAgcGF0c3RyZWFtID0gTlVMTDsKKwkJfSBlbHNlIGlmIChyZXQgIT0gbWF0Y2gpIHsKKyNpZiBkZWZpbmVkKExJQlhNTF9UUkVFX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX0RFQlVHX0VOQUJMRUQpCisJCSAgICBpZiAocGF0aCA9PSBOVUxMKSB7CisJCSAgICAgICAgcGF0aCA9IHhtbEdldE5vZGVQYXRoKAorCQkgICAgICAgICAgICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJDdXJyZW50Tm9kZShyZWFkZXIpKTsKKwkJICAgIH0KKyNlbmRpZgorCQkgICAgZnByaW50ZihzdGRlcnIsCisJCSAgICAgICAgICAgICJ4bWxQYXR0ZXJuTWF0Y2ggYW5kIHhtbFN0cmVhbVB1c2ggZGlzYWdyZWVcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAocGF0aCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgIHBhdHRlcm4gJXMgbm9kZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiwgcGF0aCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKwkJICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgcGF0dGVybiAlcyBub2RlICVzXG4iLAorCQkJICAgIHBhdHRlcm4sIHhtbFRleHRSZWFkZXJDb25zdE5hbWUocmVhZGVyKSk7CisJCX0KKworCSAgICB9CisJICAgIGlmICgodHlwZSA9PSBYTUxfUkVBREVSX1RZUEVfRU5EX0VMRU1FTlQpIHx8CisJICAgICAgICAoKHR5cGUgPT0gWE1MX1JFQURFUl9UWVBFX0VMRU1FTlQpICYmIChlbXB0eSkpKSB7CisJICAgICAgICByZXQgPSB4bWxTdHJlYW1Qb3AocGF0c3RyZWFtKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAieG1sU3RyZWFtUG9wKCkgZmFpbHVyZVxuIik7CisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWVTdHJlYW1DdHh0KHBhdHN0cmVhbSk7CisJCSAgICBwYXRzdHJlYW0gPSBOVUxMOworCQl9CisJICAgIH0KKwl9CisJaWYgKHBhdGggIT0gTlVMTCkKKwkgICAgeG1sRnJlZShwYXRoKTsKKyAgICB9CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgc3RyZWFtRmlsZShjaGFyICpmaWxlbmFtZSkgeworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOworICAgIGludCByZXQ7CisjaWZkZWYgSEFWRV9TWVNfTU1BTl9ICisgICAgaW50IGZkID0gLTE7CisgICAgc3RydWN0IHN0YXQgaW5mbzsKKyAgICBjb25zdCBjaGFyICpiYXNlID0gTlVMTDsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCA9IE5VTEw7CisKKyAgICBpZiAobWVtb3J5KSB7CisJaWYgKHN0YXQoZmlsZW5hbWUsICZpbmZvKSA8IDApCisJICAgIHJldHVybjsKKwlpZiAoKGZkID0gb3BlbihmaWxlbmFtZSwgT19SRE9OTFkpKSA8IDApCisJICAgIHJldHVybjsKKwliYXNlID0gbW1hcChOVUxMLCBpbmZvLnN0X3NpemUsIFBST1RfUkVBRCwgTUFQX1NIQVJFRCwgZmQsIDApIDsKKwlpZiAoYmFzZSA9PSAodm9pZCAqKSBNQVBfRkFJTEVEKQorCSAgICByZXR1cm47CisKKwlyZWFkZXIgPSB4bWxSZWFkZXJGb3JNZW1vcnkoYmFzZSwgaW5mby5zdF9zaXplLCBmaWxlbmFtZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgb3B0aW9ucyk7CisgICAgfSBlbHNlCisjZW5kaWYKKwlyZWFkZXIgPSB4bWxSZWFkZXJGb3JGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgaWYgKHBhdHRlcm4gIT0gTlVMTCkgeworICAgICAgICBwYXR0ZXJuYyA9IHhtbFBhdHRlcm5jb21waWxlKChjb25zdCB4bWxDaGFyICopIHBhdHRlcm4sIE5VTEwsIDAsIE5VTEwpOworCWlmIChwYXR0ZXJuYyA9PSBOVUxMKSB7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIlBhdHRlcm4gJXMgZmFpbGVkIHRvIGNvbXBpbGVcbiIsIHBhdHRlcm4pOworICAgICAgICAgICAgcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX1NDSEVNQVBBVDsKKwkgICAgcGF0dGVybiA9IE5VTEw7CisJfQorICAgIH0KKyAgICBpZiAocGF0dGVybmMgIT0gTlVMTCkgeworICAgICAgICBwYXRzdHJlYW0gPSB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dChwYXR0ZXJuYyk7CisJaWYgKHBhdHN0cmVhbSAhPSBOVUxMKSB7CisJICAgIHJldCA9IHhtbFN0cmVhbVB1c2gocGF0c3RyZWFtLCBOVUxMLCBOVUxMKTsKKwkgICAgaWYgKHJldCA8IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJ4bWxTdHJlYW1QdXNoKCkgZmFpbHVyZVxuIik7CisJCXhtbEZyZWVTdHJlYW1DdHh0KHBhdHN0cmVhbSk7CisJCXBhdHN0cmVhbSA9IE5VTEw7CisgICAgICAgICAgICB9CisJfQorICAgIH0KKyNlbmRpZgorCisKKyAgICBpZiAocmVhZGVyICE9IE5VTEwpIHsKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorCWlmICh2YWxpZCkKKwkgICAgeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AocmVhZGVyLCBYTUxfUEFSU0VSX1ZBTElEQVRFLCAxKTsKKwllbHNlCisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKwkgICAgeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3AocmVhZGVyLCBYTUxfUEFSU0VSX0xPQUREVEQsIDEpOworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKwlpZiAocmVsYXhuZyAhPSBOVUxMKSB7CisJICAgIGlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkJc3RhcnRUaW1lcigpOworCSAgICB9CisJICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWxheE5HVmFsaWRhdGUocmVhZGVyLCByZWxheG5nKTsKKwkgICAgaWYgKHJldCA8IDApIHsKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUmVsYXgtTkcgc2NoZW1hICVzIGZhaWxlZCB0byBjb21waWxlXG4iLCByZWxheG5nKTsKKwkJcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX1NDSEVNQUNPTVA7CisJCXJlbGF4bmcgPSBOVUxMOworCSAgICB9CisJICAgIGlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkJZW5kVGltZXIoIkNvbXBpbGluZyB0aGUgc2NoZW1hcyIpOworCSAgICB9CisJfQorCWlmIChzY2hlbWEgIT0gTlVMTCkgeworCSAgICBpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJCXN0YXJ0VGltZXIoKTsKKwkgICAgfQorCSAgICByZXQgPSB4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUocmVhZGVyLCBzY2hlbWEpOworCSAgICBpZiAocmV0IDwgMCkgeworCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJYU0Qgc2NoZW1hICVzIGZhaWxlZCB0byBjb21waWxlXG4iLCBzY2hlbWEpOworCQlwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfU0NIRU1BQ09NUDsKKwkJc2NoZW1hID0gTlVMTDsKKwkgICAgfQorCSAgICBpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJCWVuZFRpbWVyKCJDb21waWxpbmcgdGhlIHNjaGVtYXMiKTsKKwkgICAgfQorCX0KKyNlbmRpZgorCisJLyoKKwkgKiBQcm9jZXNzIGFsbCBub2RlcyBpbiBzZXF1ZW5jZQorCSAqLworCWlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkgICAgc3RhcnRUaW1lcigpOworCX0KKwlyZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworCXdoaWxlIChyZXQgPT0gMSkgeworCSAgICBpZiAoKGRlYnVnKQorI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKwkgICAgICAgIHx8IChwYXR0ZXJuYykKKyNlbmRpZgorCSAgICAgICApCisJCXByb2Nlc3NOb2RlKHJlYWRlcik7CisJICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcik7CisJfQorCWlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisJICAgIGlmIChyZWxheG5nICE9IE5VTEwpCisJCWVuZFRpbWVyKCJQYXJzaW5nIGFuZCB2YWxpZGF0aW5nIik7CisJICAgIGVsc2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisJICAgIGlmICh2YWxpZCkKKwkJZW5kVGltZXIoIlBhcnNpbmcgYW5kIHZhbGlkYXRpbmciKTsKKwkgICAgZWxzZQorI2VuZGlmCisJICAgIGVuZFRpbWVyKCJQYXJzaW5nIik7CisJfQorCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKwlpZiAodmFsaWQpIHsKKwkgICAgaWYgKHhtbFRleHRSZWFkZXJJc1ZhbGlkKHJlYWRlcikgIT0gMSkgeworCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJEb2N1bWVudCAlcyBkb2VzIG5vdCB2YWxpZGF0ZVxuIiwgZmlsZW5hbWUpOworCQlwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVkFMSUQ7CisJICAgIH0KKwl9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisJaWYgKChyZWxheG5nICE9IE5VTEwpIHx8IChzY2hlbWEgIT0gTlVMTCkpIHsKKwkgICAgaWYgKHhtbFRleHRSZWFkZXJJc1ZhbGlkKHJlYWRlcikgIT0gMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIiVzIGZhaWxzIHRvIHZhbGlkYXRlXG4iLCBmaWxlbmFtZSk7CisJCXByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9WQUxJRDsKKwkgICAgfSBlbHNlIHsKKwkJZnByaW50ZihzdGRlcnIsICIlcyB2YWxpZGF0ZXNcbiIsIGZpbGVuYW1lKTsKKwkgICAgfQorCX0KKyNlbmRpZgorCS8qCisJICogRG9uZSwgY2xlYW51cCBhbmQgc3RhdHVzCisJICovCisJeG1sRnJlZVRleHRSZWFkZXIocmVhZGVyKTsKKwlpZiAocmV0ICE9IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICIlcyA6IGZhaWxlZCB0byBwYXJzZVxuIiwgZmlsZW5hbWUpOworCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVU5DTEFTUzsKKwl9CisgICAgfSBlbHNlIHsKKwlmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBvcGVuICVzXG4iLCBmaWxlbmFtZSk7CisJcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX1VOQ0xBU1M7CisgICAgfQorI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyAgICBpZiAocGF0c3RyZWFtICE9IE5VTEwpIHsKKwl4bWxGcmVlU3RyZWFtQ3R4dChwYXRzdHJlYW0pOworCXBhdHN0cmVhbSA9IE5VTEw7CisgICAgfQorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfTU1BTl9ICisgICAgaWYgKG1lbW9yeSkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworCW11bm1hcCgoY2hhciAqKSBiYXNlLCBpbmZvLnN0X3NpemUpOworCWNsb3NlKGZkKTsKKyAgICB9CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgd2Fsa0RvYyh4bWxEb2NQdHIgZG9jKSB7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgaW50IHJldDsKKworI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyAgICB4bWxOb2RlUHRyIHJvb3Q7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZXNwYWNlc1syMl07CisgICAgaW50IGk7CisgICAgeG1sTnNQdHIgbnM7CisKKyAgICByb290ID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBmb3IgKG5zID0gcm9vdC0+bnNEZWYsIGkgPSAwO25zICE9IE5VTEwgJiYgaSA8IDIwO25zPW5zLT5uZXh0KSB7CisgICAgICAgIG5hbWVzcGFjZXNbaSsrXSA9IG5zLT5ocmVmOworICAgICAgICBuYW1lc3BhY2VzW2krK10gPSBucy0+cHJlZml4OworICAgIH0KKyAgICBuYW1lc3BhY2VzW2krK10gPSBOVUxMOworICAgIG5hbWVzcGFjZXNbaV0gPSBOVUxMOworCisgICAgaWYgKHBhdHRlcm4gIT0gTlVMTCkgeworICAgICAgICBwYXR0ZXJuYyA9IHhtbFBhdHRlcm5jb21waWxlKChjb25zdCB4bWxDaGFyICopIHBhdHRlcm4sIGRvYy0+ZGljdCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICZuYW1lc3BhY2VzWzBdKTsKKwlpZiAocGF0dGVybmMgPT0gTlVMTCkgeworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQYXR0ZXJuICVzIGZhaWxlZCB0byBjb21waWxlXG4iLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9TQ0hFTUFQQVQ7CisJICAgIHBhdHRlcm4gPSBOVUxMOworCX0KKyAgICB9CisgICAgaWYgKHBhdHRlcm5jICE9IE5VTEwpIHsKKyAgICAgICAgcGF0c3RyZWFtID0geG1sUGF0dGVybkdldFN0cmVhbUN0eHQocGF0dGVybmMpOworCWlmIChwYXRzdHJlYW0gIT0gTlVMTCkgeworCSAgICByZXQgPSB4bWxTdHJlYW1QdXNoKHBhdHN0cmVhbSwgTlVMTCwgTlVMTCk7CisJICAgIGlmIChyZXQgPCAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAieG1sU3RyZWFtUHVzaCgpIGZhaWx1cmVcbiIpOworCQl4bWxGcmVlU3RyZWFtQ3R4dChwYXRzdHJlYW0pOworCQlwYXRzdHJlYW0gPSBOVUxMOworICAgICAgICAgICAgfQorCX0KKyAgICB9CisjZW5kaWYgLyogTElCWE1MX1BBVFRFUk5fRU5BQkxFRCAqLworICAgIHJlYWRlciA9IHhtbFJlYWRlcldhbGtlcihkb2MpOworICAgIGlmIChyZWFkZXIgIT0gTlVMTCkgeworCWlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkgICAgc3RhcnRUaW1lcigpOworCX0KKwlyZXQgPSB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworCXdoaWxlIChyZXQgPT0gMSkgeworCSAgICBpZiAoKGRlYnVnKQorI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKwkgICAgICAgIHx8IChwYXR0ZXJuYykKKyNlbmRpZgorCSAgICAgICApCisJCXByb2Nlc3NOb2RlKHJlYWRlcik7CisJICAgIHJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcik7CisJfQorCWlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkgICAgZW5kVGltZXIoIndhbGtpbmcgdGhyb3VnaCB0aGUgZG9jIik7CisJfQorCXhtbEZyZWVUZXh0UmVhZGVyKHJlYWRlcik7CisJaWYgKHJldCAhPSAwKSB7CisJICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIHdhbGsgdGhyb3VnaCB0aGUgZG9jXG4iKTsKKwkgICAgcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX1VOQ0xBU1M7CisJfQorICAgIH0gZWxzZSB7CisJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gY3JhdGUgYSByZWFkZXIgZnJvbSB0aGUgZG9jdW1lbnRcbiIpOworCXByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9VTkNMQVNTOworICAgIH0KKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgaWYgKHBhdHN0cmVhbSAhPSBOVUxMKSB7CisJeG1sRnJlZVN0cmVhbUN0eHQocGF0c3RyZWFtKTsKKwlwYXRzdHJlYW0gPSBOVUxMOworICAgIH0KKyNlbmRpZgorfQorI2VuZGlmIC8qIExJQlhNTF9SRUFERVJfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlYUGF0aCBRdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB2b2lkIGRvWFBhdGhEdW1wKHhtbFhQYXRoT2JqZWN0UHRyIGN1cikgeworICAgIHN3aXRjaChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYUEFUSF9OT0RFU0VUOiB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZTsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyAgICAgICAgICAgIHhtbFNhdmVDdHh0UHRyIGN0eHQ7CisKKyAgICAgICAgICAgIGlmIChjdXItPm5vZGVzZXR2YWwtPm5vZGVOciA8PSAwKSB7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJYUGF0aCBzZXQgaXMgZW1wdHlcbiIpOworICAgICAgICAgICAgICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9YUEFUSDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN0eHQgPSB4bWxTYXZlVG9GZCgxLCBOVUxMLCAwKTsKKyAgICAgICAgICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk91dCBvZiBtZW1vcnkgZm9yIFhQYXRoXG4iKTsKKyAgICAgICAgICAgICAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfTUVNOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaSA9IDA7aSA8IGN1ci0+bm9kZXNldHZhbC0+bm9kZU5yO2krKykgeworICAgICAgICAgICAgICAgIG5vZGUgPSBjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV07CisgICAgICAgICAgICAgICAgeG1sU2F2ZVRyZWUoY3R4dCwgbm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4bWxTYXZlQ2xvc2UoY3R4dCk7CisjZWxzZQorICAgICAgICAgICAgcHJpbnRmKCJ4cGF0aCByZXR1cm5lZCAlZCBub2Rlc1xuIiwgY3VyLT5ub2Rlc2V0dmFsLT5ub2RlTnIpOworI2VuZGlmCisJICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgWFBBVEhfQk9PTEVBTjoKKwkgICAgaWYgKGN1ci0+Ym9vbHZhbCkgcHJpbnRmKCJ0cnVlIik7CisJICAgIGVsc2UgcHJpbnRmKCJmYWxzZSIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisJICAgIHN3aXRjaCAoeG1sWFBhdGhJc0luZihjdXItPmZsb2F0dmFsKSkgeworCSAgICBjYXNlIDE6CisJCXByaW50ZigiSW5maW5pdHkiKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgLTE6CisJCXByaW50ZigiLUluZmluaXR5Iik7CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlpZiAoeG1sWFBhdGhJc05hTihjdXItPmZsb2F0dmFsKSkgeworCQkgICAgcHJpbnRmKCJOYU4iKTsKKwkJfSBlbHNlIHsKKwkJICAgIHByaW50ZigiJTBnIiwgY3VyLT5mbG9hdHZhbCk7CisJCX0KKwkgICAgfQorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9TVFJJTkc6CisJICAgIHByaW50ZigiJXMiLCAoY29uc3QgY2hhciAqKSBjdXItPnN0cmluZ3ZhbCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKwkgICAgZnByaW50ZihzdGRlcnIsICJYUGF0aCBPYmplY3QgaXMgdW5pbml0aWFsaXplZFxuIik7CisgICAgICAgICAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfWFBBVEg7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIGZwcmludGYoc3RkZXJyLCAiWFBhdGggb2JqZWN0IG9mIHVuZXhwZWN0ZWQgdHlwZVxuIik7CisgICAgICAgICAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfWFBBVEg7CisJICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQgZG9YUGF0aFF1ZXJ5KHhtbERvY1B0ciBkb2MsIGNvbnN0IGNoYXIgKnF1ZXJ5KSB7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQ7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzOworCisgICAgY3R4dCA9IHhtbFhQYXRoTmV3Q29udGV4dChkb2MpOworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJPdXQgb2YgbWVtb3J5IGZvciBYUGF0aFxuIik7CisgICAgICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9NRU07CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY3R4dC0+bm9kZSA9IHhtbERvY0dldFJvb3RFbGVtZW50KGRvYyk7CisgICAgcmVzID0geG1sWFBhdGhFdmFsKEJBRF9DQVNUIHF1ZXJ5LCBjdHh0KTsKKyAgICB4bWxYUGF0aEZyZWVDb250ZXh0KGN0eHQpOworCisgICAgaWYgKHJlcyA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiWFBhdGggZXZhbHVhdGlvbiBmYWlsdXJlXG4iKTsKKyAgICAgICAgcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX1hQQVRIOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRvWFBhdGhEdW1wKHJlcyk7CisgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHJlcyk7Cit9CisjZW5kaWYgLyogTElCWE1MX1hQQVRIX0VOQUJMRUQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVRyZWUgVGVzdCBwcm9jZXNzaW5nCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIHBhcnNlQW5kUHJpbnRGaWxlKGNoYXIgKmZpbGVuYW1lLCB4bWxQYXJzZXJDdHh0UHRyIHJlY3R4dCkgeworICAgIHhtbERvY1B0ciBkb2MgPSBOVUxMOworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKyAgICB4bWxEb2NQdHIgdG1wOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKworICAgIGlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpCisJc3RhcnRUaW1lcigpOworCisKKyNpZmRlZiBMSUJYTUxfVFJFRV9FTkFCTEVECisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpIHsKKwlpZiAoZ2VuZXJhdGUpIHsKKwkgICAgeG1sTm9kZVB0ciBuOworCisJICAgIGRvYyA9IHhtbE5ld0RvYyhCQURfQ0FTVCAiMS4wIik7CisJICAgIG4gPSB4bWxOZXdEb2NOb2RlKGRvYywgTlVMTCwgQkFEX0NBU1QgImluZm8iLCBOVUxMKTsKKwkgICAgeG1sTm9kZVNldENvbnRlbnQobiwgQkFEX0NBU1QgImFiYyIpOworCSAgICB4bWxEb2NTZXRSb290RWxlbWVudChkb2MsIG4pOworCX0KKyAgICB9CisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECisgICAgZWxzZSBpZiAoKGh0bWwpICYmIChwdXNoKSkgeworICAgICAgICBGSUxFICpmOworCisjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQgKF9fQ1lHV0lOX18pCisJZiA9IGZvcGVuKGZpbGVuYW1lLCAicmIiKTsKKyNlbHNlCisJZiA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworI2VuZGlmCisgICAgICAgIGlmIChmICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGludCByZXMsIHNpemUgPSAzOworICAgICAgICAgICAgY2hhciBjaGFyc1s0MDk2XTsKKyAgICAgICAgICAgIGh0bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKyAgICAgICAgICAgIC8qIGlmIChyZXBlYXQpICovCisgICAgICAgICAgICAgICAgc2l6ZSA9IDQwOTY7CisgICAgICAgICAgICByZXMgPSBmcmVhZChjaGFycywgMSwgNCwgZik7CisgICAgICAgICAgICBpZiAocmVzID4gMCkgeworICAgICAgICAgICAgICAgIGN0eHQgPSBodG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFycywgcmVzLCBmaWxlbmFtZSwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKChyZXMgPSBmcmVhZChjaGFycywgMSwgc2l6ZSwgZikpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBodG1sUGFyc2VDaHVuayhjdHh0LCBjaGFycywgcmVzLCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaHRtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworICAgICAgICAgICAgICAgIGRvYyA9IGN0eHQtPm15RG9jOworICAgICAgICAgICAgICAgIGh0bWxGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZjbG9zZShmKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfUFVTSF9FTkFCTEVEICovCisjaWZkZWYgSEFWRV9TWVNfTU1BTl9ICisgICAgZWxzZSBpZiAoKGh0bWwpICYmIChtZW1vcnkpKSB7CisJaW50IGZkOworCXN0cnVjdCBzdGF0IGluZm87CisJY29uc3QgY2hhciAqYmFzZTsKKwlpZiAoc3RhdChmaWxlbmFtZSwgJmluZm8pIDwgMCkKKwkgICAgcmV0dXJuOworCWlmICgoZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05MWSkpIDwgMCkKKwkgICAgcmV0dXJuOworCWJhc2UgPSBtbWFwKE5VTEwsIGluZm8uc3Rfc2l6ZSwgUFJPVF9SRUFELCBNQVBfU0hBUkVELCBmZCwgMCkgOworCWlmIChiYXNlID09ICh2b2lkICopIE1BUF9GQUlMRUQpCisJICAgIHJldHVybjsKKworCWRvYyA9IGh0bWxSZWFkTWVtb3J5KChjaGFyICopIGJhc2UsIGluZm8uc3Rfc2l6ZSwgZmlsZW5hbWUsCisJICAgICAgICAgICAgICAgICAgICAgTlVMTCwgb3B0aW9ucyk7CisKKwltdW5tYXAoKGNoYXIgKikgYmFzZSwgaW5mby5zdF9zaXplKTsKKwljbG9zZShmZCk7CisgICAgfQorI2VuZGlmCisgICAgZWxzZSBpZiAoaHRtbCkgeworCWRvYyA9IGh0bWxSZWFkRmlsZShmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9IVE1MX0VOQUJMRUQgKi8KKyAgICBlbHNlIHsKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECisJLyoKKwkgKiBidWlsZCBhbiBYTUwgdHJlZSBmcm9tIGEgc3RyaW5nOworCSAqLworCWlmIChwdXNoKSB7CisJICAgIEZJTEUgKmY7CisKKwkgICAgLyogJy0nIFVzdWFsbHkgbWVhbnMgc3RkaW4gLTxzdmVuQHplbi5vcmc+ICovCisJICAgIGlmICgoZmlsZW5hbWVbMF0gPT0gJy0nKSAmJiAoZmlsZW5hbWVbMV0gPT0gMCkpIHsKKwkgICAgICBmID0gc3RkaW47CisJICAgIH0gZWxzZSB7CisjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQgKF9fREpHUFBfXykgJiYgIWRlZmluZWQgKF9fQ1lHV0lOX18pCisJCWYgPSBmb3BlbihmaWxlbmFtZSwgInJiIik7CisjZWxzZQorCQlmID0gZm9wZW4oZmlsZW5hbWUsICJyIik7CisjZW5kaWYKKwkgICAgfQorCSAgICBpZiAoZiAhPSBOVUxMKSB7CisJCWludCByZXQ7CisJICAgICAgICBpbnQgcmVzLCBzaXplID0gMTAyNDsKKwkgICAgICAgIGNoYXIgY2hhcnNbMTAyNF07CisgICAgICAgICAgICAgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworCisJCS8qIGlmIChyZXBlYXQpIHNpemUgPSAxMDI0OyAqLworCQlyZXMgPSBmcmVhZChjaGFycywgMSwgNCwgZik7CisJCWlmIChyZXMgPiAwKSB7CisJCSAgICBjdHh0ID0geG1sQ3JlYXRlUHVzaFBhcnNlckN0eHQoTlVMTCwgTlVMTCwKKwkJICAgICAgICAgICAgICAgIGNoYXJzLCByZXMsIGZpbGVuYW1lKTsKKwkJICAgIHhtbEN0eHRVc2VPcHRpb25zKGN0eHQsIG9wdGlvbnMpOworCQkgICAgd2hpbGUgKChyZXMgPSBmcmVhZChjaGFycywgMSwgc2l6ZSwgZikpID4gMCkgeworCQkJeG1sUGFyc2VDaHVuayhjdHh0LCBjaGFycywgcmVzLCAwKTsKKwkJICAgIH0KKwkJICAgIHhtbFBhcnNlQ2h1bmsoY3R4dCwgY2hhcnMsIDAsIDEpOworCQkgICAgZG9jID0gY3R4dC0+bXlEb2M7CisJCSAgICByZXQgPSBjdHh0LT53ZWxsRm9ybWVkOworCQkgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJCSAgICBpZiAoIXJldCkgeworCQkJeG1sRnJlZURvYyhkb2MpOworCQkJZG9jID0gTlVMTDsKKwkJICAgIH0KKwkgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZiAhPSBzdGRpbikKKyAgICAgICAgICAgICAgICAgICAgZmNsb3NlKGYpOworCSAgICB9CisJfSBlbHNlCisjZW5kaWYgLyogTElCWE1MX1BVU0hfRU5BQkxFRCAqLworICAgICAgICBpZiAodGVzdElPKSB7CisJICAgIGlmICgoZmlsZW5hbWVbMF0gPT0gJy0nKSAmJiAoZmlsZW5hbWVbMV0gPT0gMCkpIHsKKwkgICAgICAgIGRvYyA9IHhtbFJlYWRGZCgwLCBOVUxMLCBOVUxMLCBvcHRpb25zKTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIEZJTEUgKmY7CisKKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSAmJiAhZGVmaW5lZCAoX19DWUdXSU5fXykKKwkJZiA9IGZvcGVuKGZpbGVuYW1lLCAicmIiKTsKKyNlbHNlCisJCWYgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyNlbmRpZgorCQlpZiAoZiAhPSBOVUxMKSB7CisJCSAgICBpZiAocmVjdHh0ID09IE5VTEwpCisJCQlkb2MgPSB4bWxSZWFkSU8oKHhtbElucHV0UmVhZENhbGxiYWNrKSBteVJlYWQsCisJCQkJCSh4bWxJbnB1dENsb3NlQ2FsbGJhY2spIG15Q2xvc2UsIGYsCisJCQkJCWZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKwkJICAgIGVsc2UKKwkJCWRvYyA9IHhtbEN0eHRSZWFkSU8ocmVjdHh0LAorCQkJICAgICAgICAgICAgICAgICh4bWxJbnB1dFJlYWRDYWxsYmFjaykgbXlSZWFkLAorCQkJCQkoeG1sSW5wdXRDbG9zZUNhbGxiYWNrKSBteUNsb3NlLCBmLAorCQkJCQlmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisJCX0gZWxzZQorCQkgICAgZG9jID0gTlVMTDsKKwkgICAgfQorCX0gZWxzZSBpZiAoaHRtbG91dCkgeworCSAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKwkgICAgaWYgKHJlY3R4dCA9PSBOVUxMKQorCQljdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworCSAgICBlbHNlCisJICAgICAgICBjdHh0ID0gcmVjdHh0OworCSAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisJICAgICAgICBkb2MgPSBOVUxMOworCSAgICB9IGVsc2UgeworCSAgICAgICAgY3R4dC0+c2F4LT5lcnJvciA9IHhtbEhUTUxFcnJvcjsKKwkgICAgICAgIGN0eHQtPnNheC0+d2FybmluZyA9IHhtbEhUTUxXYXJuaW5nOworCSAgICAgICAgY3R4dC0+dmN0eHQuZXJyb3IgPSB4bWxIVE1MVmFsaWRpdHlFcnJvcjsKKwkgICAgICAgIGN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxIVE1MVmFsaWRpdHlXYXJuaW5nOworCisJCWRvYyA9IHhtbEN0eHRSZWFkRmlsZShjdHh0LCBmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisKKwkJaWYgKHJlY3R4dCA9PSBOVUxMKQorCQkgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJICAgIH0KKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKKwl9IGVsc2UgaWYgKG1lbW9yeSkgeworCSAgICBpbnQgZmQ7CisJICAgIHN0cnVjdCBzdGF0IGluZm87CisJICAgIGNvbnN0IGNoYXIgKmJhc2U7CisJICAgIGlmIChzdGF0KGZpbGVuYW1lLCAmaW5mbykgPCAwKQorCQlyZXR1cm47CisJICAgIGlmICgoZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05MWSkpIDwgMCkKKwkJcmV0dXJuOworCSAgICBiYXNlID0gbW1hcChOVUxMLCBpbmZvLnN0X3NpemUsIFBST1RfUkVBRCwgTUFQX1NIQVJFRCwgZmQsIDApIDsKKwkgICAgaWYgKGJhc2UgPT0gKHZvaWQgKikgTUFQX0ZBSUxFRCkKKwkgICAgICAgIHJldHVybjsKKworCSAgICBpZiAocmVjdHh0ID09IE5VTEwpCisJCWRvYyA9IHhtbFJlYWRNZW1vcnkoKGNoYXIgKikgYmFzZSwgaW5mby5zdF9zaXplLAorCQkgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKwkgICAgZWxzZQorCQlkb2MgPSB4bWxDdHh0UmVhZE1lbW9yeShyZWN0eHQsIChjaGFyICopIGJhc2UsIGluZm8uc3Rfc2l6ZSwKKwkJCSAgICAgICAgICAgICAgICBmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisKKwkgICAgbXVubWFwKChjaGFyICopIGJhc2UsIGluZm8uc3Rfc2l6ZSk7CisJICAgIGNsb3NlKGZkKTsKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisJfSBlbHNlIGlmICh2YWxpZCkgeworCSAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSBOVUxMOworCisJICAgIGlmIChyZWN0eHQgPT0gTlVMTCkKKwkJY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKwkgICAgZWxzZQorCSAgICAgICAgY3R4dCA9IHJlY3R4dDsKKwkgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworCSAgICAgICAgZG9jID0gTlVMTDsKKwkgICAgfSBlbHNlIHsKKwkJZG9jID0geG1sQ3R4dFJlYWRGaWxlKGN0eHQsIGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKworCQlpZiAoY3R4dC0+dmFsaWQgPT0gMCkKKwkJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9SREZJTEU7CisJCWlmIChyZWN0eHQgPT0gTlVMTCkKKwkJICAgIHhtbEZyZWVQYXJzZXJDdHh0KGN0eHQpOworCSAgICB9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKwl9IGVsc2UgeworCSAgICBpZiAocmVjdHh0ICE9IE5VTEwpCisJICAgICAgICBkb2MgPSB4bWxDdHh0UmVhZEZpbGUocmVjdHh0LCBmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucyk7CisJICAgIGVsc2UgeworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICAgICAgICAgICAgICBpZiAoc2F4MSkKKwkJICAgIGRvYyA9IHhtbFBhcnNlRmlsZShmaWxlbmFtZSk7CisJCWVsc2UKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisJCWRvYyA9IHhtbFJlYWRGaWxlKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zKTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIElmIHdlIGRvbid0IGhhdmUgYSBkb2N1bWVudCB3ZSBtaWdodCBhcyB3ZWxsIGdpdmUgdXAuICBEbyB3ZQorICAgICAqIHdhbnQgYW4gZXJyb3IgbWVzc2FnZSBoZXJlPyAgPHN2ZW5AemVuLm9yZz4gKi8KKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKwlwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVU5DTEFTUzsKKwlyZXR1cm47CisgICAgfQorCisgICAgaWYgKCh0aW1pbmcpICYmICghcmVwZWF0KSkgeworCWVuZFRpbWVyKCJQYXJzaW5nIik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBSZW1vdmUgRE9DVFlQRSBub2RlcworICAgICAqLworICAgIGlmIChkcm9wZHRkKSB7CisJeG1sRHRkUHRyIGR0ZDsKKworCWR0ZCA9IHhtbEdldEludFN1YnNldChkb2MpOworCWlmIChkdGQgIT0gTlVMTCkgeworCSAgICB4bWxVbmxpbmtOb2RlKCh4bWxOb2RlUHRyKWR0ZCk7CisJICAgIHhtbEZyZWVEdGQoZHRkKTsKKwl9CisgICAgfQorCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICBpZiAoeGluY2x1ZGUpIHsKKwlpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJICAgIHN0YXJ0VGltZXIoKTsKKwl9CisJaWYgKHhtbFhJbmNsdWRlUHJvY2Vzc0ZsYWdzKGRvYywgb3B0aW9ucykgPCAwKQorCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVU5DTEFTUzsKKwlpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJICAgIGVuZFRpbWVyKCJYaW5jbHVkZSBwcm9jZXNzaW5nIik7CisJfQorICAgIH0KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX1hQQVRIX0VOQUJMRUQKKyAgICBpZiAoeHBhdGhxdWVyeSAhPSBOVUxMKSB7CisgICAgICAgIGRvWFBhdGhRdWVyeShkb2MsIHhwYXRocXVlcnkpOworICAgIH0KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgIC8qCisgICAgICogc2hlbGwgaW50ZXJhY3Rpb24KKyAgICAgKi8KKyAgICBpZiAoc2hlbGwpIHsKKyAgICAgICAgeG1sWFBhdGhPcmRlckRvY0VsZW1zKGRvYyk7CisgICAgICAgIHhtbFNoZWxsKGRvYywgZmlsZW5hbWUsIHhtbFNoZWxsUmVhZGxpbmUsIHN0ZG91dCk7CisgICAgfQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKyAgICAvKgorICAgICAqIHRlc3QgaW50ZXJtZWRpYXRlIGNvcHkgaWYgbmVlZGVkLgorICAgICAqLworICAgIGlmIChjb3B5KSB7CisgICAgICAgIHRtcCA9IGRvYzsKKwlpZiAodGltaW5nKSB7CisJICAgIHN0YXJ0VGltZXIoKTsKKwl9CisJZG9jID0geG1sQ29weURvYyhkb2MsIDEpOworCWlmICh0aW1pbmcpIHsKKwkgICAgZW5kVGltZXIoIkNvcHlpbmciKTsKKwl9CisJaWYgKHRpbWluZykgeworCSAgICBzdGFydFRpbWVyKCk7CisJfQorCXhtbEZyZWVEb2ModG1wKTsKKwlpZiAodGltaW5nKSB7CisJICAgIGVuZFRpbWVyKCJGcmVlaW5nIG9yaWdpbmFsIik7CisJfQorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfVFJFRV9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorICAgIGlmICgoaW5zZXJ0KSAmJiAoIWh0bWwpKSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIqIGxpc3RbMjU2XTsKKwlpbnQgbmIsIGk7CisJeG1sTm9kZVB0ciBub2RlOworCisJaWYgKGRvYy0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCSAgICBub2RlID0gZG9jLT5jaGlsZHJlbjsKKwkgICAgd2hpbGUgKChub2RlICE9IE5VTEwpICYmIChub2RlLT5sYXN0ID09IE5VTEwpKSBub2RlID0gbm9kZS0+bmV4dDsKKwkgICAgaWYgKG5vZGUgIT0gTlVMTCkgeworCQluYiA9IHhtbFZhbGlkR2V0VmFsaWRFbGVtZW50cyhub2RlLT5sYXN0LCBOVUxMLCBsaXN0LCAyNTYpOworCQlpZiAobmIgPCAwKSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgImNvdWxkIG5vdCBnZXQgdmFsaWQgbGlzdCBvZiBlbGVtZW50c1xuIik7CisJCX0gZWxzZSBpZiAobmIgPT0gMCkgeworCQkgICAgZnByaW50ZihzdGRlcnIsICJObyBlbGVtZW50IGNhbiBiZSBpbnNlcnRlZCB1bmRlciByb290XG4iKTsKKwkJfSBlbHNlIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiJWQgZWxlbWVudCB0eXBlcyBjYW4gYmUgaW5zZXJ0ZWQgdW5kZXIgcm9vdDpcbiIsCisJCSAgICAgICAgICAgbmIpOworCQkgICAgZm9yIChpID0gMDtpIDwgbmI7aSsrKSB7CisJCQkgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgKGNoYXIgKikgbGlzdFtpXSk7CisJCSAgICB9CisJCX0KKwkgICAgfQorCX0KKyAgICB9ZWxzZQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisgICAgaWYgKHdhbGtlcikgeworICAgICAgICB3YWxrRG9jKGRvYyk7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9SRUFERVJfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgIGlmIChub291dCA9PSAwKSB7CisgICAgICAgIGludCByZXQ7CisKKwkvKgorCSAqIHByaW50IGl0LgorCSAqLworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisJaWYgKCFkZWJ1ZykgeworI2VuZGlmCisJICAgIGlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkJc3RhcnRUaW1lcigpOworCSAgICB9CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgICAgICAgICAgaWYgKChodG1sKSAmJiAoIXhtbG91dCkpIHsKKwkJaWYgKGNvbXByZXNzKSB7CisJCSAgICBodG1sU2F2ZUZpbGUob3V0cHV0ID8gb3V0cHV0IDogIi0iLCBkb2MpOworCQl9CisJCWVsc2UgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwkJICAgIGlmICggZm9ybWF0ICkgeworCQkJaHRtbFNhdmVGaWxlRm9ybWF0KG91dHB1dCA/IG91dHB1dCA6ICItIiwgZG9jLCBlbmNvZGluZywgMSk7CisJCSAgICB9CisJCSAgICBlbHNlIHsKKwkJCWh0bWxTYXZlRmlsZUZvcm1hdChvdXRwdXQgPyBvdXRwdXQgOiAiLSIsIGRvYywgZW5jb2RpbmcsIDApOworCQkgICAgfQorCQl9CisJCWVsc2UgaWYgKGZvcm1hdCkgeworCQkgICAgaHRtbFNhdmVGaWxlRm9ybWF0KG91dHB1dCA/IG91dHB1dCA6ICItIiwgZG9jLCBOVUxMLCAxKTsKKwkJfQorCQllbHNlIHsKKwkJICAgIEZJTEUgKm91dDsKKwkJICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKwkJCW91dCA9IHN0ZG91dDsKKwkJICAgIGVsc2UgeworCQkJb3V0ID0gZm9wZW4ob3V0cHV0LCJ3YiIpOworCQkgICAgfQorCQkgICAgaWYgKG91dCAhPSBOVUxMKSB7CisJCQlpZiAoaHRtbERvY0R1bXAob3V0LCBkb2MpIDwgMCkKKwkJCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfT1VUOworCisJCQlpZiAob3V0cHV0ICE9IE5VTEwpCisJCQkgICAgZmNsb3NlKG91dCk7CisJCSAgICB9IGVsc2UgeworCQkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gb3BlbiAlc1xuIiwgb3V0cHV0KTsKKwkJCXByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9PVVQ7CisJCSAgICB9CisJCX0KKwkJaWYgKCh0aW1pbmcpICYmICghcmVwZWF0KSkgeworCQkgICAgZW5kVGltZXIoIlNhdmluZyIpOworCQl9CisJICAgIH0gZWxzZQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0MxNE5fRU5BQkxFRAorICAgICAgICAgICAgaWYgKGNhbm9uaWNhbCkgeworCSAgICAgICAgeG1sQ2hhciAqcmVzdWx0ID0gTlVMTDsKKwkJaW50IHNpemU7CisKKwkJc2l6ZSA9IHhtbEMxNE5Eb2NEdW1wTWVtb3J5KGRvYywgTlVMTCwgWE1MX0MxNE5fMV8wLCBOVUxMLCAxLCAmcmVzdWx0KTsKKwkJaWYgKHNpemUgPj0gMCkgeworCQkgICAgd3JpdGUoMSwgcmVzdWx0LCBzaXplKTsKKwkJICAgIHhtbEZyZWUocmVzdWx0KTsKKwkJfSBlbHNlIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGNhbm9uaWNhbGl6ZVxuIik7CisJCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfT1VUOworCQl9CisJICAgIH0gZWxzZSBpZiAoY2Fub25pY2FsKSB7CisJICAgICAgICB4bWxDaGFyICpyZXN1bHQgPSBOVUxMOworCQlpbnQgc2l6ZTsKKworCQlzaXplID0geG1sQzE0TkRvY0R1bXBNZW1vcnkoZG9jLCBOVUxMLCBYTUxfQzE0Tl8xXzEsIE5VTEwsIDEsICZyZXN1bHQpOworCQlpZiAoc2l6ZSA+PSAwKSB7CisJCSAgICB3cml0ZSgxLCByZXN1bHQsIHNpemUpOworCQkgICAgeG1sRnJlZShyZXN1bHQpOworCQl9IGVsc2UgeworCQkgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gY2Fub25pY2FsaXplXG4iKTsKKwkJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9PVVQ7CisJCX0KKwkgICAgfSBlbHNlCisgICAgICAgICAgICBpZiAoZXhjX2Nhbm9uaWNhbCkgeworCSAgICAgICAgeG1sQ2hhciAqcmVzdWx0ID0gTlVMTDsKKwkJaW50IHNpemU7CisKKwkJc2l6ZSA9IHhtbEMxNE5Eb2NEdW1wTWVtb3J5KGRvYywgTlVMTCwgWE1MX0MxNE5fRVhDTFVTSVZFXzFfMCwgTlVMTCwgMSwgJnJlc3VsdCk7CisJCWlmIChzaXplID49IDApIHsKKwkJICAgIHdyaXRlKDEsIHJlc3VsdCwgc2l6ZSk7CisJCSAgICB4bWxGcmVlKHJlc3VsdCk7CisJCX0gZWxzZSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBjYW5vbmljYWxpemVcbiIpOworCQkgICAgcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX09VVDsKKwkJfQorCSAgICB9IGVsc2UKKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX01NQU5fSAorCSAgICBpZiAobWVtb3J5KSB7CisJCXhtbENoYXIgKnJlc3VsdDsKKwkJaW50IGxlbjsKKworCQlpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworCQkgICAgaWYgKCBmb3JtYXQgKSB7CisJCSAgICAgICAgeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYyhkb2MsICZyZXN1bHQsICZsZW4sIGVuY29kaW5nLCAxKTsKKwkJICAgIH0gZWxzZSB7CisJCQl4bWxEb2NEdW1wTWVtb3J5RW5jKGRvYywgJnJlc3VsdCwgJmxlbiwgZW5jb2RpbmcpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgaWYgKGZvcm1hdCkKKwkJCXhtbERvY0R1bXBGb3JtYXRNZW1vcnkoZG9jLCAmcmVzdWx0LCAmbGVuLCAxKTsKKwkJICAgIGVsc2UKKwkJCXhtbERvY0R1bXBNZW1vcnkoZG9jLCAmcmVzdWx0LCAmbGVuKTsKKwkJfQorCQlpZiAocmVzdWx0ID09IE5VTEwpIHsKKwkJICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHNhdmVcbiIpOworCQkgICAgcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX09VVDsKKwkJfSBlbHNlIHsKKwkJICAgIHdyaXRlKDEsIHJlc3VsdCwgbGVuKTsKKwkJICAgIHhtbEZyZWUocmVzdWx0KTsKKwkJfQorCisJICAgIH0gZWxzZQorI2VuZGlmIC8qIEhBVkVfU1lTX01NQU5fSCAqLworCSAgICBpZiAoY29tcHJlc3MpIHsKKwkJeG1sU2F2ZUZpbGUob3V0cHV0ID8gb3V0cHV0IDogIi0iLCBkb2MpOworCSAgICB9IGVsc2UgaWYgKG9sZG91dCkgeworCSAgICAgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwkJICAgIGlmICggZm9ybWF0ICkgeworCQkJcmV0ID0geG1sU2F2ZUZvcm1hdEZpbGVFbmMob3V0cHV0ID8gb3V0cHV0IDogIi0iLCBkb2MsCisJCQkJCQkgICBlbmNvZGluZywgMSk7CisJCSAgICB9CisJCSAgICBlbHNlIHsKKwkJCXJldCA9IHhtbFNhdmVGaWxlRW5jKG91dHB1dCA/IG91dHB1dCA6ICItIiwgZG9jLAorCQkJICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcpOworCQkgICAgfQorCQkgICAgaWYgKHJldCA8IDApIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHNhdmUgdG8gJXNcbiIsCisJCQkJb3V0cHV0ID8gb3V0cHV0IDogIi0iKTsKKwkJCXByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9PVVQ7CisJCSAgICB9CisJCX0gZWxzZSBpZiAoZm9ybWF0KSB7CisJCSAgICByZXQgPSB4bWxTYXZlRm9ybWF0RmlsZShvdXRwdXQgPyBvdXRwdXQgOiAiLSIsIGRvYywgMSk7CisJCSAgICBpZiAocmV0IDwgMCkgeworCQkJZnByaW50ZihzdGRlcnIsICJmYWlsZWQgc2F2ZSB0byAlc1xuIiwKKwkJCQlvdXRwdXQgPyBvdXRwdXQgOiAiLSIpOworCQkJcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX09VVDsKKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIEZJTEUgKm91dDsKKwkJICAgIGlmIChvdXRwdXQgPT0gTlVMTCkKKwkJCW91dCA9IHN0ZG91dDsKKwkJICAgIGVsc2UgeworCQkJb3V0ID0gZm9wZW4ob3V0cHV0LCJ3YiIpOworCQkgICAgfQorCQkgICAgaWYgKG91dCAhPSBOVUxMKSB7CisJCQlpZiAoeG1sRG9jRHVtcChvdXQsIGRvYykgPCAwKQorCQkJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9PVVQ7CisKKwkJCWlmIChvdXRwdXQgIT0gTlVMTCkKKwkJCSAgICBmY2xvc2Uob3V0KTsKKwkJICAgIH0gZWxzZSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCB0byBvcGVuICVzXG4iLCBvdXRwdXQpOworCQkJcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX09VVDsKKwkJICAgIH0KKwkJfQorCSAgICB9IGVsc2UgeworCSAgICAgICAgeG1sU2F2ZUN0eHRQdHIgY3R4dDsKKwkJaW50IHNhdmVPcHRzID0gMDsKKworICAgICAgICAgICAgICAgIGlmIChmb3JtYXQpCisJCSAgICBzYXZlT3B0cyB8PSBYTUxfU0FWRV9GT1JNQVQ7CisKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgICAgICAgICAgICAgaWYgKHhtbG91dCkKKyAgICAgICAgICAgICAgICAgICAgc2F2ZU9wdHMgfD0gWE1MX1NBVkVfQVNfWE1MOworI2VuZGlmCisKKwkJaWYgKG91dHB1dCA9PSBOVUxMKQorCQkgICAgY3R4dCA9IHhtbFNhdmVUb0ZkKDEsIGVuY29kaW5nLCBzYXZlT3B0cyk7CisJCWVsc2UKKwkJICAgIGN0eHQgPSB4bWxTYXZlVG9GaWxlbmFtZShvdXRwdXQsIGVuY29kaW5nLCBzYXZlT3B0cyk7CisKKwkJaWYgKGN0eHQgIT0gTlVMTCkgeworCQkgICAgaWYgKHhtbFNhdmVEb2MoY3R4dCwgZG9jKSA8IDApIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHNhdmUgdG8gJXNcbiIsCisJCQkJb3V0cHV0ID8gb3V0cHV0IDogIi0iKTsKKwkJCXByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9PVVQ7CisJCSAgICB9CisJCSAgICB4bWxTYXZlQ2xvc2UoY3R4dCk7CisJCX0gZWxzZSB7CisJCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfT1VUOworCQl9CisJICAgIH0KKwkgICAgaWYgKCh0aW1pbmcpICYmICghcmVwZWF0KSkgeworCQllbmRUaW1lcigiU2F2aW5nIik7CisJICAgIH0KKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorCX0gZWxzZSB7CisJICAgIEZJTEUgKm91dDsKKwkgICAgaWYgKG91dHB1dCA9PSBOVUxMKQorCSAgICAgICAgb3V0ID0gc3Rkb3V0OworCSAgICBlbHNlIHsKKwkJb3V0ID0gZm9wZW4ob3V0cHV0LCJ3YiIpOworCSAgICB9CisJICAgIGlmIChvdXQgIT0gTlVMTCkgeworCQl4bWxEZWJ1Z0R1bXBEb2N1bWVudChvdXQsIGRvYyk7CisKKwkJaWYgKG91dHB1dCAhPSBOVUxMKQorCQkgICAgZmNsb3NlKG91dCk7CisJICAgIH0gZWxzZSB7CisJCWZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gJXNcbiIsIG91dHB1dCk7CisJCXByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9PVVQ7CisJICAgIH0KKwl9CisjZW5kaWYKKyAgICB9CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorICAgIC8qCisgICAgICogQSBwb3N0ZXJpb3JpIHZhbGlkYXRpb24gdGVzdAorICAgICAqLworICAgIGlmICgoZHRkdmFsaWQgIT0gTlVMTCkgfHwgKGR0ZHZhbGlkZnBpICE9IE5VTEwpKSB7CisJeG1sRHRkUHRyIGR0ZDsKKworCWlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkgICAgc3RhcnRUaW1lcigpOworCX0KKwlpZiAoZHRkdmFsaWQgIT0gTlVMTCkKKwkgICAgZHRkID0geG1sUGFyc2VEVEQoTlVMTCwgKGNvbnN0IHhtbENoYXIgKilkdGR2YWxpZCk7CisJZWxzZQorCSAgICBkdGQgPSB4bWxQYXJzZURURCgoY29uc3QgeG1sQ2hhciAqKWR0ZHZhbGlkZnBpLCBOVUxMKTsKKwlpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJICAgIGVuZFRpbWVyKCJQYXJzaW5nIERURCIpOworCX0KKwlpZiAoZHRkID09IE5VTEwpIHsKKwkgICAgaWYgKGR0ZHZhbGlkICE9IE5VTEwpCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkNvdWxkIG5vdCBwYXJzZSBEVEQgJXNcbiIsIGR0ZHZhbGlkKTsKKwkgICAgZWxzZQorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSJDb3VsZCBub3QgcGFyc2UgRFREICVzXG4iLCBkdGR2YWxpZGZwaSk7CisJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9EVEQ7CisJfSBlbHNlIHsKKwkgICAgeG1sVmFsaWRDdHh0UHRyIGN2cDsKKworCSAgICBpZiAoKGN2cCA9IHhtbE5ld1ZhbGlkQ3R4dCgpKSA9PSBOVUxMKSB7CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkNvdWxkbid0IGFsbG9jYXRlIHZhbGlkYXRpb24gY29udGV4dFxuIik7CisJCWV4aXQoLTEpOworCSAgICB9CisJICAgIGN2cC0+dXNlckRhdGEgPSAodm9pZCAqKSBzdGRlcnI7CisJICAgIGN2cC0+ZXJyb3IgICAgPSAoeG1sVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGY7CisJICAgIGN2cC0+d2FybmluZyAgPSAoeG1sVmFsaWRpdHlXYXJuaW5nRnVuYykgZnByaW50ZjsKKworCSAgICBpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJCXN0YXJ0VGltZXIoKTsKKwkgICAgfQorCSAgICBpZiAoIXhtbFZhbGlkYXRlRHRkKGN2cCwgZG9jLCBkdGQpKSB7CisJCWlmIChkdGR2YWxpZCAhPSBOVUxMKQorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkRvY3VtZW50ICVzIGRvZXMgbm90IHZhbGlkYXRlIGFnYWluc3QgJXNcbiIsCisJCQkgICAgZmlsZW5hbWUsIGR0ZHZhbGlkKTsKKwkJZWxzZQorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkRvY3VtZW50ICVzIGRvZXMgbm90IHZhbGlkYXRlIGFnYWluc3QgJXNcbiIsCisJCQkgICAgZmlsZW5hbWUsIGR0ZHZhbGlkZnBpKTsKKwkJcHJvZ3Jlc3VsdCA9IFhNTExJTlRfRVJSX1ZBTElEOworCSAgICB9CisJICAgIGlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkJZW5kVGltZXIoIlZhbGlkYXRpbmcgYWdhaW5zdCBEVEQiKTsKKwkgICAgfQorCSAgICB4bWxGcmVlVmFsaWRDdHh0KGN2cCk7CisJICAgIHhtbEZyZWVEdGQoZHRkKTsKKwl9CisgICAgfSBlbHNlIGlmIChwb3N0dmFsaWQpIHsKKwl4bWxWYWxpZEN0eHRQdHIgY3ZwOworCisJaWYgKChjdnAgPSB4bWxOZXdWYWxpZEN0eHQoKSkgPT0gTlVMTCkgeworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJDb3VsZG4ndCBhbGxvY2F0ZSB2YWxpZGF0aW9uIGNvbnRleHRcbiIpOworCSAgICBleGl0KC0xKTsKKwl9CisKKwlpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJICAgIHN0YXJ0VGltZXIoKTsKKwl9CisJY3ZwLT51c2VyRGF0YSA9ICh2b2lkICopIHN0ZGVycjsKKwljdnAtPmVycm9yICAgID0gKHhtbFZhbGlkaXR5RXJyb3JGdW5jKSBmcHJpbnRmOworCWN2cC0+d2FybmluZyAgPSAoeG1sVmFsaWRpdHlXYXJuaW5nRnVuYykgZnByaW50ZjsKKwlpZiAoIXhtbFZhbGlkYXRlRG9jdW1lbnQoY3ZwLCBkb2MpKSB7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIkRvY3VtZW50ICVzIGRvZXMgbm90IHZhbGlkYXRlXG4iLCBmaWxlbmFtZSk7CisJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9WQUxJRDsKKwl9CisJaWYgKCh0aW1pbmcpICYmICghcmVwZWF0KSkgeworCSAgICBlbmRUaW1lcigiVmFsaWRhdGluZyIpOworCX0KKwl4bWxGcmVlVmFsaWRDdHh0KGN2cCk7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisjaWZkZWYgTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRAorICAgIGlmICh3eHNjaGVtYXRyb24gIT0gTlVMTCkgeworCXhtbFNjaGVtYXRyb25WYWxpZEN0eHRQdHIgY3R4dDsKKwlpbnQgcmV0OworCWludCBmbGFnOworCisJaWYgKCh0aW1pbmcpICYmICghcmVwZWF0KSkgeworCSAgICBzdGFydFRpbWVyKCk7CisJfQorCisJaWYgKGRlYnVnKQorCSAgICBmbGFnID0gWE1MX1NDSEVNQVRST05fT1VUX1hNTDsKKwllbHNlCisJICAgIGZsYWcgPSBYTUxfU0NIRU1BVFJPTl9PVVRfVEVYVDsKKwlpZiAobm9vdXQpCisJICAgIGZsYWcgfD0gWE1MX1NDSEVNQVRST05fT1VUX1FVSUVUOworCWN0eHQgPSB4bWxTY2hlbWF0cm9uTmV3VmFsaWRDdHh0KHd4c2NoZW1hdHJvbiwgZmxhZyk7CisjaWYgMAorCXhtbFNjaGVtYXRyb25TZXRWYWxpZEVycm9ycyhjdHh0LAorCQkoeG1sU2NoZW1hdHJvblZhbGlkaXR5RXJyb3JGdW5jKSBmcHJpbnRmLAorCQkoeG1sU2NoZW1hdHJvblZhbGlkaXR5V2FybmluZ0Z1bmMpIGZwcmludGYsCisJCXN0ZGVycik7CisjZW5kaWYKKwlyZXQgPSB4bWxTY2hlbWF0cm9uVmFsaWRhdGVEb2MoY3R4dCwgZG9jKTsKKwlpZiAocmV0ID09IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICIlcyB2YWxpZGF0ZXNcbiIsIGZpbGVuYW1lKTsKKwl9IGVsc2UgaWYgKHJldCA+IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICIlcyBmYWlscyB0byB2YWxpZGF0ZVxuIiwgZmlsZW5hbWUpOworCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVkFMSUQ7CisJfSBlbHNlIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICIlcyB2YWxpZGF0aW9uIGdlbmVyYXRlZCBhbiBpbnRlcm5hbCBlcnJvclxuIiwKKwkJICAgZmlsZW5hbWUpOworCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVkFMSUQ7CisJfQorCXhtbFNjaGVtYXRyb25GcmVlVmFsaWRDdHh0KGN0eHQpOworCWlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkgICAgZW5kVGltZXIoIlZhbGlkYXRpbmciKTsKKwl9CisgICAgfQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIGlmIChyZWxheG5nc2NoZW1hcyAhPSBOVUxMKSB7CisJeG1sUmVsYXhOR1ZhbGlkQ3R4dFB0ciBjdHh0OworCWludCByZXQ7CisKKwlpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJICAgIHN0YXJ0VGltZXIoKTsKKwl9CisKKwljdHh0ID0geG1sUmVsYXhOR05ld1ZhbGlkQ3R4dChyZWxheG5nc2NoZW1hcyk7CisJeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzKGN0eHQsCisJCSh4bWxSZWxheE5HVmFsaWRpdHlFcnJvckZ1bmMpIGZwcmludGYsCisJCSh4bWxSZWxheE5HVmFsaWRpdHlXYXJuaW5nRnVuYykgZnByaW50ZiwKKwkJc3RkZXJyKTsKKwlyZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVEb2MoY3R4dCwgZG9jKTsKKwlpZiAocmV0ID09IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICIlcyB2YWxpZGF0ZXNcbiIsIGZpbGVuYW1lKTsKKwl9IGVsc2UgaWYgKHJldCA+IDApIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICIlcyBmYWlscyB0byB2YWxpZGF0ZVxuIiwgZmlsZW5hbWUpOworCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVkFMSUQ7CisJfSBlbHNlIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICIlcyB2YWxpZGF0aW9uIGdlbmVyYXRlZCBhbiBpbnRlcm5hbCBlcnJvclxuIiwKKwkJICAgZmlsZW5hbWUpOworCSAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfVkFMSUQ7CisJfQorCXhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KGN0eHQpOworCWlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwkgICAgZW5kVGltZXIoIlZhbGlkYXRpbmciKTsKKwl9CisgICAgfSBlbHNlIGlmICh3eHNjaGVtYXMgIT0gTlVMTCkgeworCXhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OworCWludCByZXQ7CisKKwlpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJICAgIHN0YXJ0VGltZXIoKTsKKwl9CisKKwljdHh0ID0geG1sU2NoZW1hTmV3VmFsaWRDdHh0KHd4c2NoZW1hcyk7CisJeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMoY3R4dCwKKwkJKHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jKSBmcHJpbnRmLAorCQkoeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYykgZnByaW50ZiwKKwkJc3RkZXJyKTsKKwlyZXQgPSB4bWxTY2hlbWFWYWxpZGF0ZURvYyhjdHh0LCBkb2MpOworCWlmIChyZXQgPT0gMCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIHZhbGlkYXRlc1xuIiwgZmlsZW5hbWUpOworCX0gZWxzZSBpZiAocmV0ID4gMCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIGZhaWxzIHRvIHZhbGlkYXRlXG4iLCBmaWxlbmFtZSk7CisJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9WQUxJRDsKKwl9IGVsc2UgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIHZhbGlkYXRpb24gZ2VuZXJhdGVkIGFuIGludGVybmFsIGVycm9yXG4iLAorCQkgICBmaWxlbmFtZSk7CisJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9WQUxJRDsKKwl9CisJeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dChjdHh0KTsKKwlpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJICAgIGVuZFRpbWVyKCJWYWxpZGF0aW5nIik7CisJfQorICAgIH0KKyNlbmRpZgorCisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKyNpZiBkZWZpbmVkKExJQlhNTF9IVE1MX0VOQUJMRUQpIHx8IGRlZmluZWQoTElCWE1MX1ZBTElEX0VOQUJMRUQpCisgICAgaWYgKChkZWJ1Z2VudCkgJiYgKCFodG1sKSkKKwl4bWxEZWJ1Z0R1bXBFbnRpdGllcyhzdGRlcnIsIGRvYyk7CisjZW5kaWYKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBmcmVlIGl0LgorICAgICAqLworICAgIGlmICgodGltaW5nKSAmJiAoIXJlcGVhdCkpIHsKKwlzdGFydFRpbWVyKCk7CisgICAgfQorICAgIHhtbEZyZWVEb2MoZG9jKTsKKyAgICBpZiAoKHRpbWluZykgJiYgKCFyZXBlYXQpKSB7CisJZW5kVGltZXIoIkZyZWVpbmciKTsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlVc2FnZSBhbmQgTWFpbgkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgdm9pZCBzaG93VmVyc2lvbihjb25zdCBjaGFyICpuYW1lKSB7CisgICAgZnByaW50ZihzdGRlcnIsICIlczogdXNpbmcgbGlieG1sIHZlcnNpb24gJXNcbiIsIG5hbWUsIHhtbFBhcnNlclZlcnNpb24pOworICAgIGZwcmludGYoc3RkZXJyLCAiICAgY29tcGlsZWQgd2l0aDogIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfVEhSRUFEKSkgZnByaW50ZihzdGRlcnIsICJUaHJlYWRzICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX1RSRUUpKSBmcHJpbnRmKHN0ZGVyciwgIlRyZWUgIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfT1VUUFVUKSkgZnByaW50ZihzdGRlcnIsICJPdXRwdXQgIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfUFVTSCkpIGZwcmludGYoc3RkZXJyLCAiUHVzaCAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9SRUFERVIpKSBmcHJpbnRmKHN0ZGVyciwgIlJlYWRlciAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9QQVRURVJOKSkgZnByaW50ZihzdGRlcnIsICJQYXR0ZXJucyAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9XUklURVIpKSBmcHJpbnRmKHN0ZGVyciwgIldyaXRlciAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9TQVgxKSkgZnByaW50ZihzdGRlcnIsICJTQVh2MSAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9GVFApKSBmcHJpbnRmKHN0ZGVyciwgIkZUUCAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9IVFRQKSkgZnByaW50ZihzdGRlcnIsICJIVFRQICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX1ZBTElEKSkgZnByaW50ZihzdGRlcnIsICJEVERWYWxpZCAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9IVE1MKSkgZnByaW50ZihzdGRlcnIsICJIVE1MICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX0xFR0FDWSkpIGZwcmludGYoc3RkZXJyLCAiTGVnYWN5ICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX0MxNE4pKSBmcHJpbnRmKHN0ZGVyciwgIkMxNE4gIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfQ0FUQUxPRykpIGZwcmludGYoc3RkZXJyLCAiQ2F0YWxvZyAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9YUEFUSCkpIGZwcmludGYoc3RkZXJyLCAiWFBhdGggIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfWFBUUikpIGZwcmludGYoc3RkZXJyLCAiWFBvaW50ZXIgIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfWElOQ0xVREUpKSBmcHJpbnRmKHN0ZGVyciwgIlhJbmNsdWRlICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX0lDT05WKSkgZnByaW50ZihzdGRlcnIsICJJY29udiAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9JU084ODU5WCkpIGZwcmludGYoc3RkZXJyLCAiSVNPODg1OVggIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfVU5JQ09ERSkpIGZwcmludGYoc3RkZXJyLCAiVW5pY29kZSAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9SRUdFWFApKSBmcHJpbnRmKHN0ZGVyciwgIlJlZ2V4cHMgIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfQVVUT01BVEEpKSBmcHJpbnRmKHN0ZGVyciwgIkF1dG9tYXRhICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX0VYUFIpKSBmcHJpbnRmKHN0ZGVyciwgIkV4cHIgIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfU0NIRU1BUykpIGZwcmludGYoc3RkZXJyLCAiU2NoZW1hcyAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9TQ0hFTUFUUk9OKSkgZnByaW50ZihzdGRlcnIsICJTY2hlbWF0cm9uICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX01PRFVMRVMpKSBmcHJpbnRmKHN0ZGVyciwgIk1vZHVsZXMgIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfREVCVUcpKSBmcHJpbnRmKHN0ZGVyciwgIkRlYnVnICIpOworICAgIGlmICh4bWxIYXNGZWF0dXJlKFhNTF9XSVRIX0RFQlVHX01FTSkpIGZwcmludGYoc3RkZXJyLCAiTWVtRGVidWcgIik7CisgICAgaWYgKHhtbEhhc0ZlYXR1cmUoWE1MX1dJVEhfREVCVUdfUlVOKSkgZnByaW50ZihzdGRlcnIsICJSdW5EZWJ1ZyAiKTsKKyAgICBpZiAoeG1sSGFzRmVhdHVyZShYTUxfV0lUSF9aTElCKSkgZnByaW50ZihzdGRlcnIsICJabGliICIpOworICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKK30KKworc3RhdGljIHZvaWQgdXNhZ2UoY29uc3QgY2hhciAqbmFtZSkgeworICAgIHByaW50ZigiVXNhZ2UgOiAlcyBbb3B0aW9uc10gWE1MZmlsZXMgLi4uXG4iLCBuYW1lKTsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyAgICBwcmludGYoIlx0UGFyc2UgdGhlIFhNTCBmaWxlcyBhbmQgb3V0cHV0IHRoZSByZXN1bHQgb2YgdGhlIHBhcnNpbmdcbiIpOworI2Vsc2UKKyAgICBwcmludGYoIlx0UGFyc2UgdGhlIFhNTCBmaWxlc1xuIik7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisgICAgcHJpbnRmKCJcdC0tdmVyc2lvbiA6IGRpc3BsYXkgdGhlIHZlcnNpb24gb2YgdGhlIFhNTCBsaWJyYXJ5IHVzZWRcbiIpOworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisgICAgcHJpbnRmKCJcdC0tZGVidWcgOiBkdW1wIGEgZGVidWcgdHJlZSBvZiB0aGUgaW4tbWVtb3J5IGRvY3VtZW50XG4iKTsKKyAgICBwcmludGYoIlx0LS1zaGVsbCA6IHJ1biBhIG5hdmlnYXRpbmcgc2hlbGxcbiIpOworICAgIHByaW50ZigiXHQtLWRlYnVnZW50IDogZGVidWcgdGhlIGVudGl0aWVzIGRlZmluZWQgaW4gdGhlIGRvY3VtZW50XG4iKTsKKyNlbHNlCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisgICAgcHJpbnRmKCJcdC0tZGVidWcgOiBkdW1wIHRoZSBub2RlcyBjb250ZW50IHdoZW4gdXNpbmcgLS1zdHJlYW1cbiIpOworI2VuZGlmIC8qIExJQlhNTF9SRUFERVJfRU5BQkxFRCAqLworI2VuZGlmCisjaWZkZWYgTElCWE1MX1RSRUVfRU5BQkxFRAorICAgIHByaW50ZigiXHQtLWNvcHkgOiB1c2VkIHRvIHRlc3QgdGhlIGludGVybmFsIGNvcHkgaW1wbGVtZW50YXRpb25cbiIpOworI2VuZGlmIC8qIExJQlhNTF9UUkVFX0VOQUJMRUQgKi8KKyAgICBwcmludGYoIlx0LS1yZWNvdmVyIDogb3V0cHV0IHdoYXQgd2FzIHBhcnNhYmxlIG9uIGJyb2tlbiBYTUwgZG9jdW1lbnRzXG4iKTsKKyAgICBwcmludGYoIlx0LS1odWdlIDogcmVtb3ZlIGFueSBpbnRlcm5hbCBhcmJpdHJhcnkgcGFyc2VyIGxpbWl0c1xuIik7CisgICAgcHJpbnRmKCJcdC0tbm9lbnQgOiBzdWJzdGl0dXRlIGVudGl0eSByZWZlcmVuY2VzIGJ5IHRoZWlyIHZhbHVlXG4iKTsKKyAgICBwcmludGYoIlx0LS1ub291dCA6IGRvbid0IG91dHB1dCB0aGUgcmVzdWx0IHRyZWVcbiIpOworICAgIHByaW50ZigiXHQtLXBhdGggJ3BhdGhzJzogcHJvdmlkZSBhIHNldCBvZiBwYXRocyBmb3IgcmVzb3VyY2VzXG4iKTsKKyAgICBwcmludGYoIlx0LS1sb2FkLXRyYWNlIDogcHJpbnQgdHJhY2Ugb2YgYWxsIGV4dGVybmFsIGVudGl0ZXMgbG9hZGVkXG4iKTsKKyAgICBwcmludGYoIlx0LS1ub25ldCA6IHJlZnVzZSB0byBmZXRjaCBEVERzIG9yIGVudGl0aWVzIG92ZXIgbmV0d29ya1xuIik7CisgICAgcHJpbnRmKCJcdC0tbm9jb21wYWN0IDogZG8gbm90IGdlbmVyYXRlIGNvbXBhY3QgdGV4dCBub2Rlc1xuIik7CisgICAgcHJpbnRmKCJcdC0taHRtbG91dCA6IG91dHB1dCByZXN1bHRzIGFzIEhUTUxcbiIpOworICAgIHByaW50ZigiXHQtLW5vd3JhcCA6IGRvIG5vdCBwdXQgSFRNTCBkb2Mgd3JhcHBlclxuIik7CisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICBwcmludGYoIlx0LS12YWxpZCA6IHZhbGlkYXRlIHRoZSBkb2N1bWVudCBpbiBhZGRpdGlvbiB0byBzdGQgd2VsbC1mb3JtZWQgY2hlY2tcbiIpOworICAgIHByaW50ZigiXHQtLXBvc3R2YWxpZCA6IGRvIGEgcG9zdGVyaW9yaSB2YWxpZGF0aW9uLCBpLmUgYWZ0ZXIgcGFyc2luZ1xuIik7CisgICAgcHJpbnRmKCJcdC0tZHRkdmFsaWQgVVJMIDogZG8gYSBwb3N0ZXJpb3JpIHZhbGlkYXRpb24gYWdhaW5zdCBhIGdpdmVuIERURFxuIik7CisgICAgcHJpbnRmKCJcdC0tZHRkdmFsaWRmcGkgRlBJIDogc2FtZSBidXQgbmFtZSB0aGUgRFREIHdpdGggYSBQdWJsaWMgSWRlbnRpZmllclxuIik7CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKyAgICBwcmludGYoIlx0LS10aW1pbmcgOiBwcmludCBzb21lIHRpbWluZ3NcbiIpOworICAgIHByaW50ZigiXHQtLW91dHB1dCBmaWxlIG9yIC1vIGZpbGU6IHNhdmUgdG8gYSBnaXZlbiBmaWxlXG4iKTsKKyAgICBwcmludGYoIlx0LS1yZXBlYXQgOiByZXBlYXQgMTAwIHRpbWVzLCBmb3IgdGltaW5nIG9yIHByb2ZpbGluZ1xuIik7CisgICAgcHJpbnRmKCJcdC0taW5zZXJ0IDogYWQtaG9jIHRlc3QgZm9yIHZhbGlkIGluc2VydGlvbnNcbiIpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorI2lmZGVmIEhBVkVfWkxJQl9ICisgICAgcHJpbnRmKCJcdC0tY29tcHJlc3MgOiB0dXJuIG9uIGd6aXAgY29tcHJlc3Npb24gb2Ygb3V0cHV0XG4iKTsKKyNlbmRpZgorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKyAgICBwcmludGYoIlx0LS1odG1sIDogdXNlIHRoZSBIVE1MIHBhcnNlclxuIik7CisgICAgcHJpbnRmKCJcdC0teG1sb3V0IDogZm9yY2UgdG8gdXNlIHRoZSBYTUwgc2VyaWFsaXplciB3aGVuIHVzaW5nIC0taHRtbFxuIik7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUFVTSF9FTkFCTEVECisgICAgcHJpbnRmKCJcdC0tcHVzaCA6IHVzZSB0aGUgcHVzaCBtb2RlIG9mIHRoZSBwYXJzZXJcbiIpOworI2VuZGlmIC8qIExJQlhNTF9QVVNIX0VOQUJMRUQgKi8KKyNpZmRlZiBIQVZFX1NZU19NTUFOX0gKKyAgICBwcmludGYoIlx0LS1tZW1vcnkgOiBwYXJzZSBmcm9tIG1lbW9yeVxuIik7CisjZW5kaWYKKyAgICBwcmludGYoIlx0LS1tYXhtZW0gbmJieXRlcyA6IGxpbWl0cyBtZW1vcnkgYWxsb2NhdGlvbiB0byBuYmJ5dGVzIGJ5dGVzXG4iKTsKKyAgICBwcmludGYoIlx0LS1ub3dhcm5pbmcgOiBkbyBub3QgZW1pdCB3YXJuaW5ncyBmcm9tIHBhcnNlci92YWxpZGF0b3JcbiIpOworICAgIHByaW50ZigiXHQtLW5vYmxhbmtzIDogZHJvcCAoaWdub3JhYmxlPykgYmxhbmtzIHNwYWNlc1xuIik7CisgICAgcHJpbnRmKCJcdC0tbm9jZGF0YSA6IHJlcGxhY2UgY2RhdGEgc2VjdGlvbiB3aXRoIHRleHQgbm9kZXNcbiIpOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorICAgIHByaW50ZigiXHQtLWZvcm1hdCA6IHJlZm9ybWF0L3JlaW5kZW50IHRoZSBpbnB1dFxuIik7CisgICAgcHJpbnRmKCJcdC0tZW5jb2RlIGVuY29kaW5nIDogb3V0cHV0IGluIHRoZSBnaXZlbiBlbmNvZGluZ1xuIik7CisgICAgcHJpbnRmKCJcdC0tZHJvcGR0ZCA6IHJlbW92ZSB0aGUgRE9DVFlQRSBvZiB0aGUgaW5wdXQgZG9jc1xuIik7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisgICAgcHJpbnRmKCJcdC0tYzE0biA6IHNhdmUgaW4gVzNDIGNhbm9uaWNhbCBmb3JtYXQgdjEuMCAod2l0aCBjb21tZW50cylcbiIpOworICAgIHByaW50ZigiXHQtLWMxNG4xMSA6IHNhdmUgaW4gVzNDIGNhbm9uaWNhbCBmb3JtYXQgdjEuMSAod2l0aCBjb21tZW50cylcbiIpOworICAgIHByaW50ZigiXHQtLWV4Yy1jMTRuIDogc2F2ZSBpbiBXM0MgZXhjbHVzaXZlIGNhbm9uaWNhbCBmb3JtYXQgKHdpdGggY29tbWVudHMpXG4iKTsKKyNpZmRlZiBMSUJYTUxfQzE0Tl9FTkFCTEVECisjZW5kaWYgLyogTElCWE1MX0MxNE5fRU5BQkxFRCAqLworICAgIHByaW50ZigiXHQtLW5zY2xlYW4gOiByZW1vdmUgcmVkdW5kYW50IG5hbWVzcGFjZSBkZWNsYXJhdGlvbnNcbiIpOworICAgIHByaW50ZigiXHQtLXRlc3RJTyA6IHRlc3QgdXNlciBJL08gc3VwcG9ydFxuIik7CisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorICAgIHByaW50ZigiXHQtLWNhdGFsb2dzIDogdXNlIFNHTUwgY2F0YWxvZ3MgZnJvbSAkU0dNTF9DQVRBTE9HX0ZJTEVTXG4iKTsKKyAgICBwcmludGYoIlx0ICAgICAgICAgICAgIG90aGVyd2lzZSBYTUwgQ2F0YWxvZ3Mgc3RhcnRpbmcgZnJvbSBcbiIpOworICAgIHByaW50ZigiXHQgICAgICAgICAlcyBhcmUgYWN0aXZhdGVkIGJ5IGRlZmF1bHRcbiIsIFhNTF9YTUxfREVGQVVMVF9DQVRBTE9HKTsKKyAgICBwcmludGYoIlx0LS1ub2NhdGFsb2dzOiBkZWFjdGl2YXRlIGFsbCBjYXRhbG9nc1xuIik7CisjZW5kaWYKKyAgICBwcmludGYoIlx0LS1hdXRvIDogZ2VuZXJhdGUgYSBzbWFsbCBkb2Mgb24gdGhlIGZseVxuIik7CisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICBwcmludGYoIlx0LS14aW5jbHVkZSA6IGRvIFhJbmNsdWRlIHByb2Nlc3NpbmdcbiIpOworICAgIHByaW50ZigiXHQtLW5veGluY2x1ZGVub2RlIDogc2FtZSBidXQgZG8gbm90IGdlbmVyYXRlIFhJbmNsdWRlIG5vZGVzXG4iKTsKKyAgICBwcmludGYoIlx0LS1ub2ZpeHVwLWJhc2UtdXJpcyA6IGRvIG5vdCBmaXh1cCB4bWw6YmFzZSB1cmlzXG4iKTsKKyNlbmRpZgorICAgIHByaW50ZigiXHQtLWxvYWRkdGQgOiBmZXRjaCBleHRlcm5hbCBEVERcbiIpOworICAgIHByaW50ZigiXHQtLWR0ZGF0dHIgOiBsb2FkZHRkICsgcG9wdWxhdGUgdGhlIHRyZWUgd2l0aCBpbmhlcml0ZWQgYXR0cmlidXRlcyBcbiIpOworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorICAgIHByaW50ZigiXHQtLXN0cmVhbSA6IHVzZSB0aGUgc3RyZWFtaW5nIGludGVyZmFjZSB0byBwcm9jZXNzIHZlcnkgbGFyZ2UgZmlsZXNcbiIpOworICAgIHByaW50ZigiXHQtLXdhbGtlciA6IGNyZWF0ZSBhIHJlYWRlciBhbmQgd2FsayB0aG91Z2ggdGhlIHJlc3VsdGluZyBkb2NcbiIpOworI2VuZGlmIC8qIExJQlhNTF9SRUFERVJfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyAgICBwcmludGYoIlx0LS1wYXR0ZXJuIHBhdHRlcm5fdmFsdWUgOiB0ZXN0IHRoZSBwYXR0ZXJuIHN1cHBvcnRcbiIpOworI2VuZGlmCisgICAgcHJpbnRmKCJcdC0tY2hrcmVnaXN0ZXIgOiB2ZXJpZnkgdGhlIG5vZGUgcmVnaXN0cmF0aW9uIGNvZGVcbiIpOworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICBwcmludGYoIlx0LS1yZWxheG5nIHNjaGVtYSA6IGRvIFJlbGF4TkcgdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBzY2hlbWFcbiIpOworICAgIHByaW50ZigiXHQtLXNjaGVtYSBzY2hlbWEgOiBkbyB2YWxpZGF0aW9uIGFnYWluc3QgdGhlIFdYUyBzY2hlbWFcbiIpOworI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRAorICAgIHByaW50ZigiXHQtLXNjaGVtYXRyb24gc2NoZW1hIDogZG8gdmFsaWRhdGlvbiBhZ2FpbnN0IGEgc2NoZW1hdHJvblxuIik7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgcHJpbnRmKCJcdC0tc2F4MTogdXNlIHRoZSBvbGQgU0FYMSBpbnRlcmZhY2VzIGZvciBwcm9jZXNzaW5nXG4iKTsKKyNlbmRpZgorICAgIHByaW50ZigiXHQtLXNheDogZG8gbm90IGJ1aWxkIGEgdHJlZSBidXQgd29yayBqdXN0IGF0IHRoZSBTQVggbGV2ZWxcbiIpOworICAgIHByaW50ZigiXHQtLW9sZHhtbDEwOiB1c2UgWE1MLTEuMCBwYXJzaW5nIHJ1bGVzIGJlZm9yZSB0aGUgNXRoIGVkaXRpb25cbiIpOworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisgICAgcHJpbnRmKCJcdC0teHBhdGggZXhwcjogZXZhbHVhdGUgdGhlIFhQYXRoIGV4cHJlc3Npb24sIGlucGx5IC0tbm9vdXRcbiIpOworI2VuZGlmCisKKyAgICBwcmludGYoIlxuTGlieG1sIHByb2plY3QgaG9tZSBwYWdlOiBodHRwOi8veG1sc29mdC5vcmcvXG4iKTsKKyAgICBwcmludGYoIlRvIHJlcG9ydCBidWdzIG9yIGdldCBzb21lIGhlbHAgY2hlY2s6IGh0dHA6Ly94bWxzb2Z0Lm9yZy9idWdzLmh0bWxcbiIpOworfQorCitzdGF0aWMgdm9pZCByZWdpc3Rlck5vZGUoeG1sTm9kZVB0ciBub2RlKQoreworICAgIG5vZGUtPl9wcml2YXRlID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICAgKihsb25nKilub2RlLT5fcHJpdmF0ZSA9IChsb25nKSAweDgxNzI2MzU0OworICAgIG5icmVnaXN0ZXIrKzsKK30KKworc3RhdGljIHZvaWQgZGVyZWdpc3Rlck5vZGUoeG1sTm9kZVB0ciBub2RlKQoreworICAgIGFzc2VydChub2RlLT5fcHJpdmF0ZSAhPSBOVUxMKTsKKyAgICBhc3NlcnQoKihsb25nKilub2RlLT5fcHJpdmF0ZSA9PSAobG9uZykgMHg4MTcyNjM1NCk7CisgICAgZnJlZShub2RlLT5fcHJpdmF0ZSk7CisgICAgbmJyZWdpc3Rlci0tOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgaW50IGksIGFjb3VudDsKKyAgICBpbnQgZmlsZXMgPSAwOworICAgIGludCB2ZXJzaW9uID0gMDsKKyAgICBjb25zdCBjaGFyKiBpbmRlbnQ7CisKKyAgICBpZiAoYXJnYyA8PSAxKSB7CisJdXNhZ2UoYXJndlswXSk7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICBMSUJYTUxfVEVTVF9WRVJTSU9OCisgICAgZm9yIChpID0gMTsgaSA8IGFyZ2MgOyBpKyspIHsKKwlpZiAoIXN0cmNtcChhcmd2W2ldLCAiLSIpKQorCSAgICBicmVhazsKKworCWlmIChhcmd2W2ldWzBdICE9ICctJykKKwkgICAgY29udGludWU7CisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZGVidWciKSkgfHwgKCFzdHJjbXAoYXJndltpXSwgIi0tZGVidWciKSkpCisJICAgIGRlYnVnKys7CisJZWxzZQorI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItc2hlbGwiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1zaGVsbCIpKSkgeworCSAgICBzaGVsbCsrOworICAgICAgICAgICAgbm9vdXQgPSAxOworICAgICAgICB9IGVsc2UKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9UUkVFX0VOQUJMRUQKKwlpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1jb3B5IikpIHx8ICghc3RyY21wKGFyZ3ZbaV0sICItLWNvcHkiKSkpCisJICAgIGNvcHkrKzsKKwllbHNlCisjZW5kaWYgLyogTElCWE1MX1RSRUVfRU5BQkxFRCAqLworCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXJlY292ZXIiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1yZWNvdmVyIikpKSB7CisJICAgIHJlY292ZXJ5Kys7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX1JFQ09WRVI7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWh1Z2UiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1odWdlIikpKSB7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX0hVR0U7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vZW50IikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9lbnQiKSkpIHsKKwkgICAgbm9lbnQrKzsKKwkgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9FTlQ7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5zY2xlYW4iKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1uc2NsZWFuIikpKSB7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX05TQ0xFQU47CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vY2RhdGEiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1ub2NkYXRhIikpKSB7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX05PQ0RBVEE7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vZGljdCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW5vZGljdCIpKSkgeworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9OT0RJQ1Q7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXZlcnNpb24iKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS12ZXJzaW9uIikpKSB7CisJICAgIHNob3dWZXJzaW9uKGFyZ3ZbMF0pOworCSAgICB2ZXJzaW9uID0gMTsKKwl9IGVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbm9vdXQiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1ub291dCIpKSkKKwkgICAgbm9vdXQrKzsKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW8iKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLW91dHB1dCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW91dHB1dCIpKSkgeworCSAgICBpKys7CisJICAgIG91dHB1dCA9IGFyZ3ZbaV07CisJfQorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItaHRtbG91dCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLWh0bWxvdXQiKSkpCisJICAgIGh0bWxvdXQrKzsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vd3JhcCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW5vd3JhcCIpKSkKKwkgICAgbm93cmFwKys7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItaHRtbCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLWh0bWwiKSkpIHsKKwkgICAgaHRtbCsrOworICAgICAgICB9CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi14bWxvdXQiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS14bWxvdXQiKSkpIHsKKwkgICAgeG1sb3V0Kys7CisgICAgICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfSFRNTF9FTkFCTEVEICovCisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1sb2FkZHRkIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbG9hZGR0ZCIpKSkgeworCSAgICBsb2FkZHRkKys7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX0RURExPQUQ7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWR0ZGF0dHIiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1kdGRhdHRyIikpKSB7CisJICAgIGxvYWRkdGQrKzsKKwkgICAgZHRkYXR0cnMrKzsKKwkgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfRFREQVRUUjsKKwl9CisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXZhbGlkIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tdmFsaWQiKSkpIHsKKwkgICAgdmFsaWQrKzsKKwkgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfRFREVkFMSUQ7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXBvc3R2YWxpZCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXBvc3R2YWxpZCIpKSkgeworCSAgICBwb3N0dmFsaWQrKzsKKwkgICAgbG9hZGR0ZCsrOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9EVERMT0FEOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1kdGR2YWxpZCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLWR0ZHZhbGlkIikpKSB7CisJICAgIGkrKzsKKwkgICAgZHRkdmFsaWQgPSBhcmd2W2ldOworCSAgICBsb2FkZHRkKys7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX0RURExPQUQ7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWR0ZHZhbGlkZnBpIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZHRkdmFsaWRmcGkiKSkpIHsKKwkgICAgaSsrOworCSAgICBkdGR2YWxpZGZwaSA9IGFyZ3ZbaV07CisJICAgIGxvYWRkdGQrKzsKKwkgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfRFRETE9BRDsKKyAgICAgICAgfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1kcm9wZHRkIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZHJvcGR0ZCIpKSkKKwkgICAgZHJvcGR0ZCsrOworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItaW5zZXJ0IikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0taW5zZXJ0IikpKQorCSAgICBpbnNlcnQrKzsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXRpbWluZyIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXRpbWluZyIpKSkKKwkgICAgdGltaW5nKys7CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1hdXRvIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tYXV0byIpKSkKKwkgICAgZ2VuZXJhdGUrKzsKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXJlcGVhdCIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXJlcGVhdCIpKSkgeworCSAgICBpZiAocmVwZWF0KQorCSAgICAgICAgcmVwZWF0ICo9IDEwOworCSAgICBlbHNlCisJICAgICAgICByZXBlYXQgPSAxMDA7CisJfQorI2lmZGVmIExJQlhNTF9QVVNIX0VOQUJMRUQKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXB1c2giKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1wdXNoIikpKQorCSAgICBwdXNoKys7CisjZW5kaWYgLyogTElCWE1MX1BVU0hfRU5BQkxFRCAqLworI2lmZGVmIEhBVkVfU1lTX01NQU5fSAorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbWVtb3J5IikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbWVtb3J5IikpKQorCSAgICBtZW1vcnkrKzsKKyNlbmRpZgorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItdGVzdElPIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tdGVzdElPIikpKQorCSAgICB0ZXN0SU8rKzsKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICIteGluY2x1ZGUiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS14aW5jbHVkZSIpKSkgeworCSAgICB4aW5jbHVkZSsrOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9YSU5DTFVERTsKKwl9CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1ub3hpbmNsdWRlbm9kZSIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW5veGluY2x1ZGVub2RlIikpKSB7CisJICAgIHhpbmNsdWRlKys7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX1hJTkNMVURFOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9OT1hJTkNOT0RFOworCX0KKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vZml4dXAtYmFzZS11cmlzIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9maXh1cC1iYXNlLXVyaXMiKSkpIHsKKwkgICAgeGluY2x1ZGUrKzsKKwkgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfWElOQ0xVREU7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX05PQkFTRUZJWDsKKwl9CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQKKyNpZmRlZiBIQVZFX1pMSUJfSAorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItY29tcHJlc3MiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1jb21wcmVzcyIpKSkgeworCSAgICBjb21wcmVzcysrOworCSAgICB4bWxTZXRDb21wcmVzc01vZGUoOSk7CisgICAgICAgIH0KKyNlbmRpZgorI2VuZGlmIC8qIExJQlhNTF9PVVRQVVRfRU5BQkxFRCAqLworCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbm93YXJuaW5nIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbm93YXJuaW5nIikpKSB7CisJICAgIHhtbEdldFdhcm5pbmdzRGVmYXVsdFZhbHVlID0gMDsKKwkgICAgeG1sUGVkYW50aWNQYXJzZXJEZWZhdWx0KDApOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9OT1dBUk5JTkc7CisgICAgICAgIH0KKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXBlZGFudGljIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tcGVkYW50aWMiKSkpIHsKKwkgICAgeG1sR2V0V2FybmluZ3NEZWZhdWx0VmFsdWUgPSAxOworCSAgICB4bWxQZWRhbnRpY1BhcnNlckRlZmF1bHQoMSk7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX1BFREFOVElDOworICAgICAgICB9CisjaWZkZWYgTElCWE1MX0RFQlVHX0VOQUJMRUQKKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWRlYnVnZW50IikpIHx8CisJCSAoIXN0cmNtcChhcmd2W2ldLCAiLS1kZWJ1Z2VudCIpKSkgeworCSAgICBkZWJ1Z2VudCsrOworCSAgICB4bWxQYXJzZXJEZWJ1Z0VudGl0aWVzID0gMTsKKwl9CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfQzE0Tl9FTkFCTEVECisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1jMTRuIikpIHx8CisJCSAoIXN0cmNtcChhcmd2W2ldLCAiLS1jMTRuIikpKSB7CisJICAgIGNhbm9uaWNhbCsrOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9OT0VOVCB8IFhNTF9QQVJTRV9EVERBVFRSIHwgWE1MX1BBUlNFX0RURExPQUQ7CisJfQorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItYzE0bjExIikpIHx8CisJCSAoIXN0cmNtcChhcmd2W2ldLCAiLS1jMTRuMTEiKSkpIHsKKwkgICAgY2Fub25pY2FsXzExKys7CisJICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX05PRU5UIHwgWE1MX1BBUlNFX0RUREFUVFIgfCBYTUxfUEFSU0VfRFRETE9BRDsKKwl9CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1leGMtYzE0biIpKSB8fAorCQkgKCFzdHJjbXAoYXJndltpXSwgIi0tZXhjLWMxNG4iKSkpIHsKKwkgICAgZXhjX2Nhbm9uaWNhbCsrOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9OT0VOVCB8IFhNTF9QQVJTRV9EVERBVFRSIHwgWE1MX1BBUlNFX0RURExPQUQ7CisJfQorI2VuZGlmCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItY2F0YWxvZ3MiKSkgfHwKKwkJICghc3RyY21wKGFyZ3ZbaV0sICItLWNhdGFsb2dzIikpKSB7CisJICAgIGNhdGFsb2dzKys7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vY2F0YWxvZ3MiKSkgfHwKKwkJICghc3RyY21wKGFyZ3ZbaV0sICItLW5vY2F0YWxvZ3MiKSkpIHsKKwkgICAgbm9jYXRhbG9ncysrOworCX0KKyNlbmRpZgorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZW5jb2RlIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZW5jb2RlIikpKSB7CisJICAgIGkrKzsKKwkgICAgZW5jb2RpbmcgPSBhcmd2W2ldOworCSAgICAvKgorCSAgICAgKiBPSyBpdCdzIGZvciB0ZXN0aW5nIHB1cnBvc2VzCisJICAgICAqLworCSAgICB4bWxBZGRFbmNvZGluZ0FsaWFzKCJVVEYtOCIsICJEVkVuYyIpOworICAgICAgICB9CisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1ub2JsYW5rcyIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW5vYmxhbmtzIikpKSB7CisJICAgICBub2JsYW5rcysrOworCSAgICAgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCk7CisgICAgICAgIH0KKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW1heG1lbSIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLW1heG1lbSIpKSkgeworCSAgICAgaSsrOworCSAgICAgaWYgKHNzY2FuZihhcmd2W2ldLCAiJWQiLCAmbWF4bWVtKSA9PSAxKSB7CisJICAgICAgICAgeG1sTWVtU2V0dXAobXlGcmVlRnVuYywgbXlNYWxsb2NGdW5jLCBteVJlYWxsb2NGdW5jLAorCQkgICAgICAgICAgICAgbXlTdHJkdXBGdW5jKTsKKwkgICAgIH0gZWxzZSB7CisJICAgICAgICAgbWF4bWVtID0gMDsKKwkgICAgIH0KKyAgICAgICAgfQorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZm9ybWF0IikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZm9ybWF0IikpKSB7CisJICAgICBub2JsYW5rcysrOworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorCSAgICAgZm9ybWF0Kys7CisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisJICAgICB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKTsKKwl9CisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1zdHJlYW0iKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1zdHJlYW0iKSkpIHsKKwkgICAgIHN0cmVhbSsrOworCX0KKwllbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXdhbGtlciIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXdhbGtlciIpKSkgeworCSAgICAgd2Fsa2VyKys7CisgICAgICAgICAgICAgbm9vdXQrKzsKKwl9CisjZW5kaWYgLyogTElCWE1MX1JFQURFUl9FTkFCTEVEICovCisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItc2F4MSIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXNheDEiKSkpIHsKKwkgICAgc2F4MSsrOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9TQVgxOworCX0KKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisJZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1zYXgiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1zYXgiKSkpIHsKKwkgICAgc2F4Kys7CisJfQorCWVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItY2hrcmVnaXN0ZXIiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1jaGtyZWdpc3RlciIpKSkgeworCSAgICBjaGtyZWdpc3RlcisrOworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKwl9IGVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItcmVsYXhuZyIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXJlbGF4bmciKSkpIHsKKwkgICAgaSsrOworCSAgICByZWxheG5nID0gYXJndltpXTsKKwkgICAgbm9lbnQrKzsKKwkgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9FTlQ7CisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXNjaGVtYSIpKSB8fAorCSAgICAgICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXNjaGVtYSIpKSkgeworCSAgICBpKys7CisJICAgIHNjaGVtYSA9IGFyZ3ZbaV07CisJICAgIG5vZW50Kys7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfU0NIRU1BVFJPTl9FTkFCTEVECisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXNjaGVtYXRyb24iKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1zY2hlbWF0cm9uIikpKSB7CisJICAgIGkrKzsKKwkgICAgc2NoZW1hdHJvbiA9IGFyZ3ZbaV07CisJICAgIG5vZW50Kys7CisjZW5kaWYKKyAgICAgICAgfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW5vbmV0IikpIHx8CisgICAgICAgICAgICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9uZXQiKSkpIHsKKwkgICAgb3B0aW9ucyB8PSBYTUxfUEFSU0VfTk9ORVQ7CisJICAgIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKHhtbE5vTmV0RXh0ZXJuYWxFbnRpdHlMb2FkZXIpOworICAgICAgICB9IGVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbm9jb21wYWN0IikpIHx8CisgICAgICAgICAgICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbm9jb21wYWN0IikpKSB7CisJICAgIG9wdGlvbnMgJj0gflhNTF9QQVJTRV9DT01QQUNUOworCX0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1sb2FkLXRyYWNlIikpIHx8CisJICAgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1sb2FkLXRyYWNlIikpKSB7CisJICAgIGxvYWRfdHJhY2UrKzsKKyAgICAgICAgfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXBhdGgiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1wYXRoIikpKSB7CisJICAgIGkrKzsKKwkgICAgcGFyc2VQYXRoKEJBRF9DQVNUIGFyZ3ZbaV0pOworI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyAgICAgICAgfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXBhdHRlcm4iKSkgfHwKKyAgICAgICAgICAgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1wYXR0ZXJuIikpKSB7CisJICAgIGkrKzsKKwkgICAgcGF0dGVybiA9IGFyZ3ZbaV07CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfWFBBVEhfRU5BQkxFRAorICAgICAgICB9IGVsc2UgaWYgKCghc3RyY21wKGFyZ3ZbaV0sICIteHBhdGgiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS14cGF0aCIpKSkgeworCSAgICBpKys7CisJICAgIG5vb3V0Kys7CisJICAgIHhwYXRocXVlcnkgPSBhcmd2W2ldOworI2VuZGlmCisJfSBlbHNlIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLW9sZHhtbDEwIikpIHx8CisJICAgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1vbGR4bWwxMCIpKSkgeworCSAgICBvbGR4bWwxMCsrOworCSAgICBvcHRpb25zIHw9IFhNTF9QQVJTRV9PTEQxMDsKKwl9IGVsc2UgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gb3B0aW9uICVzXG4iLCBhcmd2W2ldKTsKKwkgICAgdXNhZ2UoYXJndlswXSk7CisJICAgIHJldHVybigxKTsKKwl9CisgICAgfQorCisjaWZkZWYgTElCWE1MX0NBVEFMT0dfRU5BQkxFRAorICAgIGlmIChub2NhdGFsb2dzID09IDApIHsKKwlpZiAoY2F0YWxvZ3MpIHsKKwkgICAgY29uc3QgY2hhciAqY2F0YWw7CisKKwkgICAgY2F0YWwgPSBnZXRlbnYoIlNHTUxfQ0FUQUxPR19GSUxFUyIpOworCSAgICBpZiAoY2F0YWwgIT0gTlVMTCkgeworCQl4bWxMb2FkQ2F0YWxvZ3MoY2F0YWwpOworCSAgICB9IGVsc2UgeworCQlmcHJpbnRmKHN0ZGVyciwgIlZhcmlhYmxlICRTR01MX0NBVEFMT0dfRklMRVMgbm90IHNldFxuIik7CisJICAgIH0KKwl9CisgICAgfQorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaWYgKHNheDEpCisgICAgICAgIHhtbFNBWERlZmF1bHRWZXJzaW9uKDEpOworICAgIGVsc2UKKyAgICAgICAgeG1sU0FYRGVmYXVsdFZlcnNpb24oMik7CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworCisgICAgaWYgKGNoa3JlZ2lzdGVyKSB7CisJeG1sUmVnaXN0ZXJOb2RlRGVmYXVsdChyZWdpc3Rlck5vZGUpOworCXhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdChkZXJlZ2lzdGVyTm9kZSk7CisgICAgfQorCisgICAgaW5kZW50ID0gZ2V0ZW52KCJYTUxMSU5UX0lOREVOVCIpOworICAgIGlmKGluZGVudCAhPSBOVUxMKSB7CisJeG1sVHJlZUluZGVudFN0cmluZyA9IGluZGVudDsKKyAgICB9CisKKworICAgIGRlZmF1bHRFbnRpdHlMb2FkZXIgPSB4bWxHZXRFeHRlcm5hbEVudGl0eUxvYWRlcigpOworICAgIHhtbFNldEV4dGVybmFsRW50aXR5TG9hZGVyKHhtbGxpbnRFeHRlcm5hbEVudGl0eUxvYWRlcik7CisKKyAgICB4bWxMaW5lTnVtYmVyc0RlZmF1bHQoMSk7CisgICAgaWYgKGxvYWRkdGQgIT0gMCkKKwl4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIHw9IFhNTF9ERVRFQ1RfSURTOworICAgIGlmIChkdGRhdHRycykKKwl4bWxMb2FkRXh0RHRkRGVmYXVsdFZhbHVlIHw9IFhNTF9DT01QTEVURV9BVFRSUzsKKyAgICBpZiAobm9lbnQgIT0gMCkgeG1sU3Vic3RpdHV0ZUVudGl0aWVzRGVmYXVsdCgxKTsKKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorICAgIGlmICh2YWxpZCAhPSAwKSB4bWxEb1ZhbGlkaXR5Q2hlY2tpbmdEZWZhdWx0VmFsdWUgPSAxOworI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisgICAgaWYgKChodG1sb3V0KSAmJiAoIW5vd3JhcCkpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOXCJcbiIpOworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiXHRcImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkXCI+XG4iKTsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgIjxodG1sPjxoZWFkPjx0aXRsZT4lcyBvdXRwdXQ8L3RpdGxlPjwvaGVhZD5cbiIsCisJCWFyZ3ZbMF0pOworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAiPGJvZHkgYmdjb2xvcj1cIiNmZmZmZmZcIj48aDEgYWxpZ249XCJjZW50ZXJcIj4lcyBvdXRwdXQ8L2gxPlxuIiwKKwkJYXJndlswXSk7CisgICAgfQorCisjaWZkZWYgTElCWE1MX1NDSEVNQVRST05fRU5BQkxFRAorICAgIGlmICgoc2NoZW1hdHJvbiAhPSBOVUxMKSAmJiAoc2F4ID09IDApCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisgICAgICAgICYmIChzdHJlYW0gPT0gMCkKKyNlbmRpZiAvKiBMSUJYTUxfUkVBREVSX0VOQUJMRUQgKi8KKwkpIHsKKwl4bWxTY2hlbWF0cm9uUGFyc2VyQ3R4dFB0ciBjdHh0OworCisgICAgICAgIC8qIGZvcmNlcyBsb2FkaW5nIHRoZSBEVERzICovCisgICAgICAgIHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUgfD0gMTsKKwlvcHRpb25zIHw9IFhNTF9QQVJTRV9EVERMT0FEOworCWlmICh0aW1pbmcpIHsKKwkgICAgc3RhcnRUaW1lcigpOworCX0KKwljdHh0ID0geG1sU2NoZW1hdHJvbk5ld1BhcnNlckN0eHQoc2NoZW1hdHJvbik7CisjaWYgMAorCXhtbFNjaGVtYXRyb25TZXRQYXJzZXJFcnJvcnMoY3R4dCwKKwkJKHhtbFNjaGVtYXRyb25WYWxpZGl0eUVycm9yRnVuYykgZnByaW50ZiwKKwkJKHhtbFNjaGVtYXRyb25WYWxpZGl0eVdhcm5pbmdGdW5jKSBmcHJpbnRmLAorCQlzdGRlcnIpOworI2VuZGlmCisJd3hzY2hlbWF0cm9uID0geG1sU2NoZW1hdHJvblBhcnNlKGN0eHQpOworCWlmICh3eHNjaGVtYXRyb24gPT0gTlVMTCkgeworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJTY2hlbWF0cm9uIHNjaGVtYSAlcyBmYWlsZWQgdG8gY29tcGlsZVxuIiwgc2NoZW1hdHJvbik7CisgICAgICAgICAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfU0NIRU1BQ09NUDsKKwkgICAgc2NoZW1hdHJvbiA9IE5VTEw7CisJfQorCXhtbFNjaGVtYXRyb25GcmVlUGFyc2VyQ3R4dChjdHh0KTsKKwlpZiAodGltaW5nKSB7CisJICAgIGVuZFRpbWVyKCJDb21waWxpbmcgdGhlIHNjaGVtYXMiKTsKKwl9CisgICAgfQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIGlmICgocmVsYXhuZyAhPSBOVUxMKSAmJiAoc2F4ID09IDApCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisgICAgICAgICYmIChzdHJlYW0gPT0gMCkKKyNlbmRpZiAvKiBMSUJYTUxfUkVBREVSX0VOQUJMRUQgKi8KKwkpIHsKKwl4bWxSZWxheE5HUGFyc2VyQ3R4dFB0ciBjdHh0OworCisgICAgICAgIC8qIGZvcmNlcyBsb2FkaW5nIHRoZSBEVERzICovCisgICAgICAgIHhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUgfD0gMTsKKwlvcHRpb25zIHw9IFhNTF9QQVJTRV9EVERMT0FEOworCWlmICh0aW1pbmcpIHsKKwkgICAgc3RhcnRUaW1lcigpOworCX0KKwljdHh0ID0geG1sUmVsYXhOR05ld1BhcnNlckN0eHQocmVsYXhuZyk7CisJeG1sUmVsYXhOR1NldFBhcnNlckVycm9ycyhjdHh0LAorCQkoeG1sUmVsYXhOR1ZhbGlkaXR5RXJyb3JGdW5jKSBmcHJpbnRmLAorCQkoeG1sUmVsYXhOR1ZhbGlkaXR5V2FybmluZ0Z1bmMpIGZwcmludGYsCisJCXN0ZGVycik7CisJcmVsYXhuZ3NjaGVtYXMgPSB4bWxSZWxheE5HUGFyc2UoY3R4dCk7CisJaWYgKHJlbGF4bmdzY2hlbWFzID09IE5VTEwpIHsKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiUmVsYXgtTkcgc2NoZW1hICVzIGZhaWxlZCB0byBjb21waWxlXG4iLCByZWxheG5nKTsKKyAgICAgICAgICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9TQ0hFTUFDT01QOworCSAgICByZWxheG5nID0gTlVMTDsKKwl9CisJeG1sUmVsYXhOR0ZyZWVQYXJzZXJDdHh0KGN0eHQpOworCWlmICh0aW1pbmcpIHsKKwkgICAgZW5kVGltZXIoIkNvbXBpbGluZyB0aGUgc2NoZW1hcyIpOworCX0KKyAgICB9IGVsc2UgaWYgKChzY2hlbWEgIT0gTlVMTCkKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKwkJJiYgKHN0cmVhbSA9PSAwKQorI2VuZGlmCisJKSB7CisJeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0OworCisJaWYgKHRpbWluZykgeworCSAgICBzdGFydFRpbWVyKCk7CisJfQorCWN0eHQgPSB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0KHNjaGVtYSk7CisJeG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzKGN0eHQsCisJCSh4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYykgZnByaW50ZiwKKwkJKHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMpIGZwcmludGYsCisJCXN0ZGVycik7CisJd3hzY2hlbWFzID0geG1sU2NoZW1hUGFyc2UoY3R4dCk7CisJaWYgKHd4c2NoZW1hcyA9PSBOVUxMKSB7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIldYUyBzY2hlbWEgJXMgZmFpbGVkIHRvIGNvbXBpbGVcbiIsIHNjaGVtYSk7CisgICAgICAgICAgICBwcm9ncmVzdWx0ID0gWE1MTElOVF9FUlJfU0NIRU1BQ09NUDsKKwkgICAgc2NoZW1hID0gTlVMTDsKKwl9CisJeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJaWYgKHRpbWluZykgeworCSAgICBlbmRUaW1lcigiQ29tcGlsaW5nIHRoZSBzY2hlbWFzIik7CisJfQorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorICAgIGlmICgocGF0dGVybiAhPSBOVUxMKQorI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorICAgICAgICAmJiAod2Fsa2VyID09IDApCisjZW5kaWYKKwkpIHsKKyAgICAgICAgcGF0dGVybmMgPSB4bWxQYXR0ZXJuY29tcGlsZSgoY29uc3QgeG1sQ2hhciAqKSBwYXR0ZXJuLCBOVUxMLCAwLCBOVUxMKTsKKwlpZiAocGF0dGVybmMgPT0gTlVMTCkgeworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQYXR0ZXJuICVzIGZhaWxlZCB0byBjb21waWxlXG4iLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9TQ0hFTUFQQVQ7CisJICAgIHBhdHRlcm4gPSBOVUxMOworCX0KKyAgICB9CisjZW5kaWYgLyogTElCWE1MX1BBVFRFUk5fRU5BQkxFRCAqLworICAgIGZvciAoaSA9IDE7IGkgPCBhcmdjIDsgaSsrKSB7CisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZW5jb2RlIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZW5jb2RlIikpKSB7CisJICAgIGkrKzsKKwkgICAgY29udGludWU7CisgICAgICAgIH0gZWxzZSBpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1vIikpIHx8CisgICAgICAgICAgICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi1vdXRwdXQiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1vdXRwdXQiKSkpIHsKKyAgICAgICAgICAgIGkrKzsKKwkgICAgY29udGludWU7CisgICAgICAgIH0KKyNpZmRlZiBMSUJYTUxfVkFMSURfRU5BQkxFRAorCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLWR0ZHZhbGlkIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tZHRkdmFsaWQiKSkpIHsKKwkgICAgaSsrOworCSAgICBjb250aW51ZTsKKyAgICAgICAgfQorCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXBhdGgiKSkgfHwKKyAgICAgICAgICAgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1wYXRoIikpKSB7CisgICAgICAgICAgICBpKys7CisJICAgIGNvbnRpbnVlOworICAgICAgICB9CisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItZHRkdmFsaWRmcGkiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1kdGR2YWxpZGZwaSIpKSkgeworCSAgICBpKys7CisJICAgIGNvbnRpbnVlOworICAgICAgICB9CisjZW5kaWYgLyogTElCWE1MX1ZBTElEX0VOQUJMRUQgKi8KKwlpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1yZWxheG5nIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tcmVsYXhuZyIpKSkgeworCSAgICBpKys7CisJICAgIGNvbnRpbnVlOworICAgICAgICB9CisJaWYgKCghc3RyY21wKGFyZ3ZbaV0sICItbWF4bWVtIikpIHx8CisJICAgICAgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tbWF4bWVtIikpKSB7CisJICAgIGkrKzsKKwkgICAgY29udGludWU7CisgICAgICAgIH0KKwlpZiAoKCFzdHJjbXAoYXJndltpXSwgIi1zY2hlbWEiKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1zY2hlbWEiKSkpIHsKKwkgICAgaSsrOworCSAgICBjb250aW51ZTsKKyAgICAgICAgfQorCWlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXNjaGVtYXRyb24iKSkgfHwKKwkgICAgICAgICAoIXN0cmNtcChhcmd2W2ldLCAiLS1zY2hlbWF0cm9uIikpKSB7CisJICAgIGkrKzsKKwkgICAgY29udGludWU7CisgICAgICAgIH0KKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgICAgIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXBhdHRlcm4iKSkgfHwKKwkgICAgKCFzdHJjbXAoYXJndltpXSwgIi0tcGF0dGVybiIpKSkgeworCSAgICBpKys7CisJICAgIGNvbnRpbnVlOworCX0KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisgICAgICAgIGlmICgoIXN0cmNtcChhcmd2W2ldLCAiLXhwYXRoIikpIHx8CisJICAgICghc3RyY21wKGFyZ3ZbaV0sICItLXhwYXRoIikpKSB7CisJICAgIGkrKzsKKwkgICAgY29udGludWU7CisJfQorI2VuZGlmCisJaWYgKCh0aW1pbmcpICYmIChyZXBlYXQpKQorCSAgICBzdGFydFRpbWVyKCk7CisJLyogUmVtZW1iZXIgZmlsZSBuYW1lcy4gICItIiBtZWFucyBzdGRpbi4gIDxzdmVuQHplbi5vcmc+ICovCisJaWYgKChhcmd2W2ldWzBdICE9ICctJykgfHwgKHN0cmNtcChhcmd2W2ldLCAiLSIpID09IDApKSB7CisJICAgIGlmIChyZXBlYXQpIHsKKwkJeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gTlVMTDsKKworCQlmb3IgKGFjb3VudCA9IDA7YWNvdW50IDwgcmVwZWF0O2Fjb3VudCsrKSB7CisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisJCSAgICBpZiAoc3RyZWFtICE9IDApIHsKKwkJCXN0cmVhbUZpbGUoYXJndltpXSk7CisJCSAgICB9IGVsc2UgeworI2VuZGlmIC8qIExJQlhNTF9SRUFERVJfRU5BQkxFRCAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNheCkgeworCQkJICAgIHRlc3RTQVgoYXJndltpXSk7CisJCQl9IGVsc2UgeworCQkJICAgIGlmIChjdHh0ID09IE5VTEwpCisJCQkJY3R4dCA9IHhtbE5ld1BhcnNlckN0eHQoKTsKKwkJCSAgICBwYXJzZUFuZFByaW50RmlsZShhcmd2W2ldLCBjdHh0KTsKKwkJCX0KKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKwkJICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfUkVBREVSX0VOQUJMRUQgKi8KKwkJfQorCQlpZiAoY3R4dCAhPSBOVUxMKQorCQkgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJICAgIH0gZWxzZSB7CisJCW5icmVnaXN0ZXIgPSAwOworCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisJCWlmIChzdHJlYW0gIT0gMCkKKwkJICAgIHN0cmVhbUZpbGUoYXJndltpXSk7CisJCWVsc2UKKyNlbmRpZiAvKiBMSUJYTUxfUkVBREVSX0VOQUJMRUQgKi8KKyAgICAgICAgICAgICAgICBpZiAoc2F4KSB7CisJCSAgICB0ZXN0U0FYKGFyZ3ZbaV0pOworCQl9IGVsc2UgeworCQkgICAgcGFyc2VBbmRQcmludEZpbGUoYXJndltpXSwgTlVMTCk7CisJCX0KKworICAgICAgICAgICAgICAgIGlmICgoY2hrcmVnaXN0ZXIpICYmIChuYnJlZ2lzdGVyICE9IDApKSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgIlJlZ2lzdHJhdGlvbiBjb3VudCBvZmY6ICVkXG4iLCBuYnJlZ2lzdGVyKTsKKwkJICAgIHByb2dyZXN1bHQgPSBYTUxMSU5UX0VSUl9SRFJFR0lTOworCQl9CisJICAgIH0KKwkgICAgZmlsZXMgKys7CisJICAgIGlmICgodGltaW5nKSAmJiAocmVwZWF0KSkgeworCQllbmRUaW1lcigiJWQgaXRlcmF0aW9ucyIsIHJlcGVhdCk7CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmIChnZW5lcmF0ZSkKKwlwYXJzZUFuZFByaW50RmlsZShOVUxMLCBOVUxMKTsKKyAgICBpZiAoKGh0bWxvdXQpICYmICghbm93cmFwKSkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiPC9ib2R5PjwvaHRtbD5cbiIpOworICAgIH0KKyAgICBpZiAoKGZpbGVzID09IDApICYmICghZ2VuZXJhdGUpICYmICh2ZXJzaW9uID09IDApKSB7CisJdXNhZ2UoYXJndlswXSk7CisgICAgfQorI2lmZGVmIExJQlhNTF9TQ0hFTUFUUk9OX0VOQUJMRUQKKyAgICBpZiAod3hzY2hlbWF0cm9uICE9IE5VTEwpCisJeG1sU2NoZW1hdHJvbkZyZWUod3hzY2hlbWF0cm9uKTsKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICBpZiAocmVsYXhuZ3NjaGVtYXMgIT0gTlVMTCkKKwl4bWxSZWxheE5HRnJlZShyZWxheG5nc2NoZW1hcyk7CisgICAgaWYgKHd4c2NoZW1hcyAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWUod3hzY2hlbWFzKTsKKyAgICB4bWxSZWxheE5HQ2xlYW51cFR5cGVzKCk7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgaWYgKHBhdHRlcm5jICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVQYXR0ZXJuKHBhdHRlcm5jKTsKKyNlbmRpZgorICAgIHhtbENsZWFudXBQYXJzZXIoKTsKKyAgICB4bWxNZW1vcnlEdW1wKCk7CisKKyAgICByZXR1cm4ocHJvZ3Jlc3VsdCk7Cit9CisKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcveG1sbWVtb3J5LmMgYi9saWJ4bWwyLTIuNy43L3htbG1lbW9yeS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzM2FiYjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3htbG1lbW9yeS5jCkBAIC0wLDAgKzEsMTEyMCBAQAorLyoKKyAqIHhtbG1lbW9yeS5jOiAgbGlieG1sIG1lbW9yeSBhbGxvY2F0b3Igd3JhcHBlci4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1RJTUVfSAorI2luY2x1ZGUgPHRpbWUuaD4KKyNlbmRpZgorCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2Vsc2UKKyNpZmRlZiBIQVZFX01BTExPQ19ICisjaW5jbHVkZSA8bWFsbG9jLmg+CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9DVFlQRV9ICisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNlbmRpZgorCisvKiAjZGVmaW5lIERFQlVHX01FTU9SWSAqLworCisvKioKKyAqIE1FTV9MSVNUOgorICoKKyAqIGtlZXAgdHJhY2sgb2YgYWxsIGFsbG9jYXRlZCBibG9ja3MgZm9yIGVycm9yIHJlcG9ydGluZworICogQWx3YXlzIGJ1aWxkIHRoZSBtZW1vcnkgbGlzdCAhCisgKi8KKyNpZmRlZiBERUJVR19NRU1PUllfTE9DQVRJT04KKyNpZm5kZWYgTUVNX0xJU1QKKyNkZWZpbmUgTUVNX0xJU1QgLyoga2VlcCBhIGxpc3Qgb2YgYWxsIHRoZSBhbGxvY2F0ZWQgbWVtb3J5IGJsb2NrcyAqLworI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CS8qIG11c3QgY29tZSBiZWZvcmUgeG1sbWVtb3J5LmggKi8KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3RocmVhZHMuaD4KKworc3RhdGljIGludCB4bWxNZW1Jbml0aWFsaXplZCA9IDA7CitzdGF0aWMgdW5zaWduZWQgbG9uZyAgZGVidWdNZW1TaXplID0gMDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nICBkZWJ1Z01lbUJsb2NrcyA9IDA7CitzdGF0aWMgdW5zaWduZWQgbG9uZyAgZGVidWdNYXhNZW1TaXplID0gMDsKK3N0YXRpYyB4bWxNdXRleFB0ciB4bWxNZW1NdXRleCA9IE5VTEw7CisKK3ZvaWQgeG1sTWFsbG9jQnJlYWtwb2ludCh2b2lkKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAJCU1hY3JvcywgdmFyaWFibGVzIGFuZCBhc3NvY2lhdGVkIHR5cGVzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgIWRlZmluZWQoTElCWE1MX1RIUkVBRF9FTkFCTEVEKSAmJiAhZGVmaW5lZChMSUJYTUxfVEhSRUFEX0FMTE9DX0VOQUJMRUQpCisjaWZkZWYgeG1sTWFsbG9jCisjdW5kZWYgeG1sTWFsbG9jCisjZW5kaWYKKyNpZmRlZiB4bWxSZWFsbG9jCisjdW5kZWYgeG1sUmVhbGxvYworI2VuZGlmCisjaWZkZWYgeG1sTWVtU3RyZHVwCisjdW5kZWYgeG1sTWVtU3RyZHVwCisjZW5kaWYKKyNlbmRpZgorCisvKgorICogRWFjaCBvZiB0aGUgYmxvY2tzIGFsbG9jYXRlZCBiZWdpbiB3aXRoIGEgaGVhZGVyIGNvbnRhaW5pbmcgaW5mb3JtYXRpb25zCisgKi8KKworI2RlZmluZSBNRU1UQUcgMHg1YWE1CisKKyNkZWZpbmUgTUFMTE9DX1RZUEUgMQorI2RlZmluZSBSRUFMTE9DX1RZUEUgMgorI2RlZmluZSBTVFJEVVBfVFlQRSAzCisjZGVmaW5lIE1BTExPQ19BVE9NSUNfVFlQRSA0CisjZGVmaW5lIFJFQUxMT0NfQVRPTUlDX1RZUEUgNQorCit0eXBlZGVmIHN0cnVjdCBtZW1ub2QgeworICAgIHVuc2lnbmVkIGludCAgIG1oX3RhZzsKKyAgICB1bnNpZ25lZCBpbnQgICBtaF90eXBlOworICAgIHVuc2lnbmVkIGxvbmcgIG1oX251bWJlcjsKKyAgICBzaXplX3QgICAgICAgICBtaF9zaXplOworI2lmZGVmIE1FTV9MSVNUCisgICBzdHJ1Y3QgbWVtbm9kICptaF9uZXh0OworICAgc3RydWN0IG1lbW5vZCAqbWhfcHJldjsKKyNlbmRpZgorICAgY29uc3QgY2hhciAgICAqbWhfZmlsZTsKKyAgIHVuc2lnbmVkIGludCAgIG1oX2xpbmU7Cit9ICBNRU1IRFI7CisKKworI2lmZGVmIFNVTjQKKyNkZWZpbmUgQUxJR05fU0laRSAgMTYKKyNlbHNlCisjZGVmaW5lIEFMSUdOX1NJWkUgIHNpemVvZihkb3VibGUpCisjZW5kaWYKKyNkZWZpbmUgSERSX1NJWkUgICAgc2l6ZW9mKE1FTUhEUikKKyNkZWZpbmUgUkVTRVJWRV9TSVpFICgoKEhEUl9TSVpFICsgKEFMSUdOX1NJWkUtMSkpIFwKKwkJICAgICAgLyBBTElHTl9TSVpFICkgKiBBTElHTl9TSVpFKQorCisKKyNkZWZpbmUgQ0xJRU5UXzJfSERSKGEpICgoTUVNSERSICopICgoKGNoYXIgKikgKGEpKSAtIFJFU0VSVkVfU0laRSkpCisjZGVmaW5lIEhEUl8yX0NMSUVOVChhKSAgICAoKHZvaWQgKikgKCgoY2hhciAqKSAoYSkpICsgUkVTRVJWRV9TSVpFKSkKKworCitzdGF0aWMgdW5zaWduZWQgaW50IGJsb2NrPTA7CitzdGF0aWMgdW5zaWduZWQgaW50IHhtbE1lbVN0b3BBdEJsb2NrID0gMDsKK3N0YXRpYyB2b2lkICp4bWxNZW1UcmFjZUJsb2NrQXQgPSBOVUxMOworI2lmZGVmIE1FTV9MSVNUCitzdGF0aWMgTUVNSERSICptZW1saXN0ID0gTlVMTDsKKyNlbmRpZgorCitzdGF0aWMgdm9pZCBkZWJ1Z21lbV90YWdfZXJyb3Iodm9pZCAqYWRkcik7CisjaWZkZWYgTUVNX0xJU1QKK3N0YXRpYyB2b2lkICBkZWJ1Z21lbV9saXN0X2FkZChNRU1IRFIgKik7CitzdGF0aWMgdm9pZCBkZWJ1Z21lbV9saXN0X2RlbGV0ZShNRU1IRFIgKik7CisjZW5kaWYKKyNkZWZpbmUgTWVtX1RhZ19FcnIoYSkgZGVidWdtZW1fdGFnX2Vycm9yKGEpOworCisjaWZuZGVmIFRFU1RfUE9JTlQKKyNkZWZpbmUgVEVTVF9QT0lOVAorI2VuZGlmCisKKy8qKgorICogeG1sTWFsbG9jQnJlYWtwb2ludDoKKyAqCisgKiBCcmVha3BvaW50IHRvIHVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIHhtbE1lbVN0b3BBdEJsb2NrLiBXaGVuIHRoZSBibG9jaworICogbnVtYmVyIHJlYWNoZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4gT25lIG5lZWQgdG8gYWRkIGEgYnJlYWtwb2ludAorICogdG8gaXQgdG8gZ2V0IHRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBnaXZlbiBibG9jayBpcyBhbGxvY2F0ZWQuCisgKi8KKwordm9pZAoreG1sTWFsbG9jQnJlYWtwb2ludCh2b2lkKSB7CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJ4bWxNYWxsb2NCcmVha3BvaW50IHJlYWNoZWQgb24gYmxvY2sgJWRcbiIsIHhtbE1lbVN0b3BBdEJsb2NrKTsKK30KKworLyoqCisgKiB4bWxNYWxsb2NMb2M6CisgKiBAc2l6ZTogIGFuIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuCisgKiBAZmlsZTogIHRoZSBmaWxlIG5hbWUgb3IgTlVMTAorICogQGxpbmU6ICB0aGUgbGluZSBudW1iZXIKKyAqCisgKiBhIG1hbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgYXJlYSBvciBOVUxMIGluIGNhc2Ugb2YgbGFjayBvZiBtZW1vcnkuCisgKi8KKwordm9pZCAqCit4bWxNYWxsb2NMb2Moc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKiBmaWxlLCBpbnQgbGluZSkKK3sKKyAgICBNRU1IRFIgKnA7CisgICAgdm9pZCAqcmV0OworCisgICAgaWYgKCF4bWxNZW1Jbml0aWFsaXplZCkgeG1sSW5pdE1lbW9yeSgpOworI2lmZGVmIERFQlVHX01FTU9SWQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiTWFsbG9jKCVkKVxuIixzaXplKTsKKyNlbmRpZgorCisgICAgVEVTVF9QT0lOVAorCisgICAgcCA9IChNRU1IRFIgKikgbWFsbG9jKFJFU0VSVkVfU0laRStzaXplKTsKKworICAgIGlmICghcCkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTWFsbG9jTG9jIDogT3V0IG9mIGZyZWUgc3BhY2VcbiIpOworCXhtbE1lbW9yeUR1bXAoKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHAtPm1oX3RhZyA9IE1FTVRBRzsKKyAgICBwLT5taF9zaXplID0gc2l6ZTsKKyAgICBwLT5taF90eXBlID0gTUFMTE9DX1RZUEU7CisgICAgcC0+bWhfZmlsZSA9IGZpbGU7CisgICAgcC0+bWhfbGluZSA9IGxpbmU7CisgICAgeG1sTXV0ZXhMb2NrKHhtbE1lbU11dGV4KTsKKyAgICBwLT5taF9udW1iZXIgPSArK2Jsb2NrOworICAgIGRlYnVnTWVtU2l6ZSArPSBzaXplOworICAgIGRlYnVnTWVtQmxvY2tzKys7CisgICAgaWYgKGRlYnVnTWVtU2l6ZSA+IGRlYnVnTWF4TWVtU2l6ZSkgZGVidWdNYXhNZW1TaXplID0gZGVidWdNZW1TaXplOworI2lmZGVmIE1FTV9MSVNUCisgICAgZGVidWdtZW1fbGlzdF9hZGQocCk7CisjZW5kaWYKKyAgICB4bWxNdXRleFVubG9jayh4bWxNZW1NdXRleCk7CisKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIk1hbGxvYyglZCkgT2tcbiIsc2l6ZSk7CisjZW5kaWYKKworICAgIGlmICh4bWxNZW1TdG9wQXRCbG9jayA9PSBwLT5taF9udW1iZXIpIHhtbE1hbGxvY0JyZWFrcG9pbnQoKTsKKworICAgIHJldCA9IEhEUl8yX0NMSUVOVChwKTsKKworICAgIGlmICh4bWxNZW1UcmFjZUJsb2NrQXQgPT0gcmV0KSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiJXAgOiBNYWxsb2MoJWxkKSBPa1xuIiwgeG1sTWVtVHJhY2VCbG9ja0F0LCBzaXplKTsKKwl4bWxNYWxsb2NCcmVha3BvaW50KCk7CisgICAgfQorCisgICAgVEVTVF9QT0lOVAorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sTWFsbG9jQXRvbWljTG9jOgorICogQHNpemU6ICBhbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLgorICogQGZpbGU6ICB0aGUgZmlsZSBuYW1lIG9yIE5VTEwKKyAqIEBsaW5lOiAgdGhlIGxpbmUgbnVtYmVyCisgKgorICogYSBtYWxsb2MoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGFyZWEgb3IgTlVMTCBpbiBjYXNlIG9mIGxhY2sgb2YgbWVtb3J5LgorICovCisKK3ZvaWQgKgoreG1sTWFsbG9jQXRvbWljTG9jKHNpemVfdCBzaXplLCBjb25zdCBjaGFyICogZmlsZSwgaW50IGxpbmUpCit7CisgICAgTUVNSERSICpwOworICAgIHZvaWQgKnJldDsKKworICAgIGlmICgheG1sTWVtSW5pdGlhbGl6ZWQpIHhtbEluaXRNZW1vcnkoKTsKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIk1hbGxvYyglZClcbiIsc2l6ZSk7CisjZW5kaWYKKworICAgIFRFU1RfUE9JTlQKKworICAgIHAgPSAoTUVNSERSICopIG1hbGxvYyhSRVNFUlZFX1NJWkUrc2l6ZSk7CisKKyAgICBpZiAoIXApIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE1hbGxvY0xvYyA6IE91dCBvZiBmcmVlIHNwYWNlXG4iKTsKKwl4bWxNZW1vcnlEdW1wKCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBwLT5taF90YWcgPSBNRU1UQUc7CisgICAgcC0+bWhfc2l6ZSA9IHNpemU7CisgICAgcC0+bWhfdHlwZSA9IE1BTExPQ19BVE9NSUNfVFlQRTsKKyAgICBwLT5taF9maWxlID0gZmlsZTsKKyAgICBwLT5taF9saW5lID0gbGluZTsKKyAgICB4bWxNdXRleExvY2soeG1sTWVtTXV0ZXgpOworICAgIHAtPm1oX251bWJlciA9ICsrYmxvY2s7CisgICAgZGVidWdNZW1TaXplICs9IHNpemU7CisgICAgZGVidWdNZW1CbG9ja3MrKzsKKyAgICBpZiAoZGVidWdNZW1TaXplID4gZGVidWdNYXhNZW1TaXplKSBkZWJ1Z01heE1lbVNpemUgPSBkZWJ1Z01lbVNpemU7CisjaWZkZWYgTUVNX0xJU1QKKyAgICBkZWJ1Z21lbV9saXN0X2FkZChwKTsKKyNlbmRpZgorICAgIHhtbE11dGV4VW5sb2NrKHhtbE1lbU11dGV4KTsKKworI2lmZGVmIERFQlVHX01FTU9SWQorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiTWFsbG9jKCVkKSBPa1xuIixzaXplKTsKKyNlbmRpZgorCisgICAgaWYgKHhtbE1lbVN0b3BBdEJsb2NrID09IHAtPm1oX251bWJlcikgeG1sTWFsbG9jQnJlYWtwb2ludCgpOworCisgICAgcmV0ID0gSERSXzJfQ0xJRU5UKHApOworCisgICAgaWYgKHhtbE1lbVRyYWNlQmxvY2tBdCA9PSByZXQpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSIlcCA6IE1hbGxvYyglbGQpIE9rXG4iLCB4bWxNZW1UcmFjZUJsb2NrQXQsIHNpemUpOworCXhtbE1hbGxvY0JyZWFrcG9pbnQoKTsKKyAgICB9CisKKyAgICBURVNUX1BPSU5UCisKKyAgICByZXR1cm4ocmV0KTsKK30KKy8qKgorICogeG1sTWVtTWFsbG9jOgorICogQHNpemU6ICBhbiBpbnQgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlIHRvIGFsbG9jYXRlLgorICoKKyAqIGEgbWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS4KKyAqLworCit2b2lkICoKK3htbE1lbU1hbGxvYyhzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4oeG1sTWFsbG9jTG9jKHNpemUsICJub25lIiwgMCkpOworfQorCisvKioKKyAqIHhtbFJlYWxsb2NMb2M6CisgKiBAcHRyOiAgdGhlIGluaXRpYWwgbWVtb3J5IGJsb2NrIHBvaW50ZXIKKyAqIEBzaXplOiAgYW4gaW50IHNwZWNpZnlpbmcgdGhlIHNpemUgaW4gYnl0ZSB0byBhbGxvY2F0ZS4KKyAqIEBmaWxlOiAgdGhlIGZpbGUgbmFtZSBvciBOVUxMCisgKiBAbGluZTogIHRoZSBsaW5lIG51bWJlcgorICoKKyAqIGEgcmVhbGxvYygpIGVxdWl2YWxlbnQsIHdpdGggbG9nZ2luZyBvZiB0aGUgYWxsb2NhdGlvbiBpbmZvLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgYXJlYSBvciBOVUxMIGluIGNhc2Ugb2YgbGFjayBvZiBtZW1vcnkuCisgKi8KKwordm9pZCAqCit4bWxSZWFsbG9jTG9jKHZvaWQgKnB0cixzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqIGZpbGUsIGludCBsaW5lKQoreworICAgIE1FTUhEUiAqcDsKKyAgICB1bnNpZ25lZCBsb25nIG51bWJlcjsKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICBzaXplX3Qgb2xkc2l6ZTsKKyNlbmRpZgorCisgICAgaWYgKHB0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oeG1sTWFsbG9jTG9jKHNpemUsIGZpbGUsIGxpbmUpKTsKKworICAgIGlmICgheG1sTWVtSW5pdGlhbGl6ZWQpIHhtbEluaXRNZW1vcnkoKTsKKyAgICBURVNUX1BPSU5UCisKKyAgICBwID0gQ0xJRU5UXzJfSERSKHB0cik7CisgICAgbnVtYmVyID0gcC0+bWhfbnVtYmVyOworICAgIGlmICh4bWxNZW1TdG9wQXRCbG9jayA9PSBudW1iZXIpIHhtbE1hbGxvY0JyZWFrcG9pbnQoKTsKKyAgICBpZiAocC0+bWhfdGFnICE9IE1FTVRBRykgeworICAgICAgIE1lbV9UYWdfRXJyKHApOworCSBnb3RvIGVycm9yOworICAgIH0KKyAgICBwLT5taF90YWcgPSB+TUVNVEFHOworICAgIHhtbE11dGV4TG9jayh4bWxNZW1NdXRleCk7CisgICAgZGVidWdNZW1TaXplIC09IHAtPm1oX3NpemU7CisgICAgZGVidWdNZW1CbG9ja3MtLTsKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICBvbGRzaXplID0gcC0+bWhfc2l6ZTsKKyNlbmRpZgorI2lmZGVmIE1FTV9MSVNUCisgICAgZGVidWdtZW1fbGlzdF9kZWxldGUocCk7CisjZW5kaWYKKyAgICB4bWxNdXRleFVubG9jayh4bWxNZW1NdXRleCk7CisKKyAgICBwID0gKE1FTUhEUiAqKSByZWFsbG9jKHAsUkVTRVJWRV9TSVpFK3NpemUpOworICAgIGlmICghcCkgeworCSBnb3RvIGVycm9yOworICAgIH0KKyAgICBpZiAoeG1sTWVtVHJhY2VCbG9ja0F0ID09IHB0cikgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIiVwIDogUmVhbGxvY2VkKCVsZCAtPiAlbGQpIE9rXG4iLAorCQkJeG1sTWVtVHJhY2VCbG9ja0F0LCBwLT5taF9zaXplLCBzaXplKTsKKwl4bWxNYWxsb2NCcmVha3BvaW50KCk7CisgICAgfQorICAgIHAtPm1oX3RhZyA9IE1FTVRBRzsKKyAgICBwLT5taF9udW1iZXIgPSBudW1iZXI7CisgICAgcC0+bWhfdHlwZSA9IFJFQUxMT0NfVFlQRTsKKyAgICBwLT5taF9zaXplID0gc2l6ZTsKKyAgICBwLT5taF9maWxlID0gZmlsZTsKKyAgICBwLT5taF9saW5lID0gbGluZTsKKyAgICB4bWxNdXRleExvY2soeG1sTWVtTXV0ZXgpOworICAgIGRlYnVnTWVtU2l6ZSArPSBzaXplOworICAgIGRlYnVnTWVtQmxvY2tzKys7CisgICAgaWYgKGRlYnVnTWVtU2l6ZSA+IGRlYnVnTWF4TWVtU2l6ZSkgZGVidWdNYXhNZW1TaXplID0gZGVidWdNZW1TaXplOworI2lmZGVmIE1FTV9MSVNUCisgICAgZGVidWdtZW1fbGlzdF9hZGQocCk7CisjZW5kaWYKKyAgICB4bWxNdXRleFVubG9jayh4bWxNZW1NdXRleCk7CisKKyAgICBURVNUX1BPSU5UCisKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIlJlYWxsb2NlZCglZCB0byAlZCkgT2tcbiIsIG9sZHNpemUsIHNpemUpOworI2VuZGlmCisgICAgcmV0dXJuKEhEUl8yX0NMSUVOVChwKSk7CisKK2Vycm9yOgorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxNZW1SZWFsbG9jOgorICogQHB0cjogIHRoZSBpbml0aWFsIG1lbW9yeSBibG9jayBwb2ludGVyCisgKiBAc2l6ZTogIGFuIGludCBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGUgdG8gYWxsb2NhdGUuCisgKgorICogYSByZWFsbG9jKCkgZXF1aXZhbGVudCwgd2l0aCBsb2dnaW5nIG9mIHRoZSBhbGxvY2F0aW9uIGluZm8uCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBhcmVhIG9yIE5VTEwgaW4gY2FzZSBvZiBsYWNrIG9mIG1lbW9yeS4KKyAqLworCit2b2lkICoKK3htbE1lbVJlYWxsb2Modm9pZCAqcHRyLHNpemVfdCBzaXplKSB7CisgICAgcmV0dXJuKHhtbFJlYWxsb2NMb2MocHRyLCBzaXplLCAibm9uZSIsIDApKTsKK30KKworLyoqCisgKiB4bWxNZW1GcmVlOgorICogQHB0cjogIHRoZSBtZW1vcnkgYmxvY2sgcG9pbnRlcgorICoKKyAqIGEgZnJlZSgpIGVxdWl2YWxlbnQsIHdpdGggZXJyb3IgY2hlY2tpbmcuCisgKi8KK3ZvaWQKK3htbE1lbUZyZWUodm9pZCAqcHRyKQoreworICAgIE1FTUhEUiAqcDsKKyAgICBjaGFyICp0YXJnZXQ7CisjaWZkZWYgREVCVUdfTUVNT1JZCisgICAgc2l6ZV90IHNpemU7CisjZW5kaWYKKworICAgIGlmIChwdHIgPT0gTlVMTCkKKwlyZXR1cm47CisKKyAgICBpZiAocHRyID09ICh2b2lkICopIC0xKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJ0cnlpbmcgdG8gZnJlZSBwb2ludGVyIGZyb20gZnJlZWQgYXJlYVxuIik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgaWYgKHhtbE1lbVRyYWNlQmxvY2tBdCA9PSBwdHIpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSIlcCA6IEZyZWVkKClcbiIsIHhtbE1lbVRyYWNlQmxvY2tBdCk7CisJeG1sTWFsbG9jQnJlYWtwb2ludCgpOworICAgIH0KKworICAgIFRFU1RfUE9JTlQKKworICAgIHRhcmdldCA9IChjaGFyICopIHB0cjsKKworICAgIHAgPSBDTElFTlRfMl9IRFIocHRyKTsKKyAgICBpZiAocC0+bWhfdGFnICE9IE1FTVRBRykgeworICAgICAgICBNZW1fVGFnX0VycihwKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgaWYgKHhtbE1lbVN0b3BBdEJsb2NrID09IHAtPm1oX251bWJlcikgeG1sTWFsbG9jQnJlYWtwb2ludCgpOworICAgIHAtPm1oX3RhZyA9IH5NRU1UQUc7CisgICAgbWVtc2V0KHRhcmdldCwgLTEsIHAtPm1oX3NpemUpOworICAgIHhtbE11dGV4TG9jayh4bWxNZW1NdXRleCk7CisgICAgZGVidWdNZW1TaXplIC09IHAtPm1oX3NpemU7CisgICAgZGVidWdNZW1CbG9ja3MtLTsKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICBzaXplID0gcC0+bWhfc2l6ZTsKKyNlbmRpZgorI2lmZGVmIE1FTV9MSVNUCisgICAgZGVidWdtZW1fbGlzdF9kZWxldGUocCk7CisjZW5kaWYKKyAgICB4bWxNdXRleFVubG9jayh4bWxNZW1NdXRleCk7CisKKyAgICBmcmVlKHApOworCisgICAgVEVTVF9QT0lOVAorCisjaWZkZWYgREVCVUdfTUVNT1JZCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJGcmVlZCglZCkgT2tcbiIsIHNpemUpOworI2VuZGlmCisKKyAgICByZXR1cm47CisKK2Vycm9yOgorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAieG1sTWVtRnJlZSglbFgpIGVycm9yXG4iLCAodW5zaWduZWQgbG9uZykgcHRyKTsKKyAgICB4bWxNYWxsb2NCcmVha3BvaW50KCk7CisgICAgcmV0dXJuOworfQorCisvKioKKyAqIHhtbE1lbVN0cmR1cExvYzoKKyAqIEBzdHI6ICB0aGUgaW5pdGlhbCBzdHJpbmcgcG9pbnRlcgorICogQGZpbGU6ICB0aGUgZmlsZSBuYW1lIG9yIE5VTEwKKyAqIEBsaW5lOiAgdGhlIGxpbmUgbnVtYmVyCisgKgorICogYSBzdHJkdXAoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IHN0cmluZyBvciBOVUxMIGlmIGFsbG9jYXRpb24gZXJyb3Igb2NjdXJyZWQuCisgKi8KKworY2hhciAqCit4bWxNZW1TdHJkdXBMb2MoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSkKK3sKKyAgICBjaGFyICpzOworICAgIHNpemVfdCBzaXplID0gc3RybGVuKHN0cikgKyAxOworICAgIE1FTUhEUiAqcDsKKworICAgIGlmICgheG1sTWVtSW5pdGlhbGl6ZWQpIHhtbEluaXRNZW1vcnkoKTsKKyAgICBURVNUX1BPSU5UCisKKyAgICBwID0gKE1FTUhEUiAqKSBtYWxsb2MoUkVTRVJWRV9TSVpFK3NpemUpOworICAgIGlmICghcCkgeworICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgcC0+bWhfdGFnID0gTUVNVEFHOworICAgIHAtPm1oX3NpemUgPSBzaXplOworICAgIHAtPm1oX3R5cGUgPSBTVFJEVVBfVFlQRTsKKyAgICBwLT5taF9maWxlID0gZmlsZTsKKyAgICBwLT5taF9saW5lID0gbGluZTsKKyAgICB4bWxNdXRleExvY2soeG1sTWVtTXV0ZXgpOworICAgIHAtPm1oX251bWJlciA9ICsrYmxvY2s7CisgICAgZGVidWdNZW1TaXplICs9IHNpemU7CisgICAgZGVidWdNZW1CbG9ja3MrKzsKKyAgICBpZiAoZGVidWdNZW1TaXplID4gZGVidWdNYXhNZW1TaXplKSBkZWJ1Z01heE1lbVNpemUgPSBkZWJ1Z01lbVNpemU7CisjaWZkZWYgTUVNX0xJU1QKKyAgICBkZWJ1Z21lbV9saXN0X2FkZChwKTsKKyNlbmRpZgorICAgIHhtbE11dGV4VW5sb2NrKHhtbE1lbU11dGV4KTsKKworICAgIHMgPSAoY2hhciAqKSBIRFJfMl9DTElFTlQocCk7CisKKyAgICBpZiAoeG1sTWVtU3RvcEF0QmxvY2sgPT0gcC0+bWhfbnVtYmVyKSB4bWxNYWxsb2NCcmVha3BvaW50KCk7CisKKyAgICBpZiAocyAhPSBOVUxMKQorICAgICAgc3RyY3B5KHMsc3RyKTsKKyAgICBlbHNlCisgICAgICBnb3RvIGVycm9yOworCisgICAgVEVTVF9QT0lOVAorCisgICAgaWYgKHhtbE1lbVRyYWNlQmxvY2tBdCA9PSBzKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiJXAgOiBTdHJkdXAoKSBPa1xuIiwgeG1sTWVtVHJhY2VCbG9ja0F0KTsKKwl4bWxNYWxsb2NCcmVha3BvaW50KCk7CisgICAgfQorCisgICAgcmV0dXJuKHMpOworCitlcnJvcjoKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sTWVtb3J5U3RyZHVwOgorICogQHN0cjogIHRoZSBpbml0aWFsIHN0cmluZyBwb2ludGVyCisgKgorICogYSBzdHJkdXAoKSBlcXVpdmFsZW50LCB3aXRoIGxvZ2dpbmcgb2YgdGhlIGFsbG9jYXRpb24gaW5mby4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IHN0cmluZyBvciBOVUxMIGlmIGFsbG9jYXRpb24gZXJyb3Igb2NjdXJyZWQuCisgKi8KKworY2hhciAqCit4bWxNZW1vcnlTdHJkdXAoY29uc3QgY2hhciAqc3RyKSB7CisgICAgcmV0dXJuKHhtbE1lbVN0cmR1cExvYyhzdHIsICJub25lIiwgMCkpOworfQorCisvKioKKyAqIHhtbE1lbVVzZWQ6CisgKgorICogUHJvdmlkZXMgdGhlIGFtb3VudCBvZiBtZW1vcnkgY3VycmVudGx5IGFsbG9jYXRlZAorICoKKyAqIFJldHVybnMgYW4gaW50IHJlcHJlc2VudGluZyB0aGUgYW1vdW50IG9mIG1lbW9yeSBhbGxvY2F0ZWQuCisgKi8KKworaW50Cit4bWxNZW1Vc2VkKHZvaWQpIHsKKyAgICAgcmV0dXJuKGRlYnVnTWVtU2l6ZSk7Cit9CisKKy8qKgorICogeG1sTWVtQmxvY2tzOgorICoKKyAqIFByb3ZpZGVzIHRoZSBudW1iZXIgb2YgbWVtb3J5IGFyZWFzIGN1cnJlbnRseSBhbGxvY2F0ZWQKKyAqCisgKiBSZXR1cm5zIGFuIGludCByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBibG9ja3MKKyAqLworCitpbnQKK3htbE1lbUJsb2Nrcyh2b2lkKSB7CisgICAgIHJldHVybihkZWJ1Z01lbUJsb2Nrcyk7Cit9CisKKyNpZmRlZiBNRU1fTElTVAorLyoqCisgKiB4bWxNZW1Db250ZW50U2hvdzoKKyAqIEBmcDogIGEgRklMRSBkZXNjcmlwdG9yIHVzZWQgYXMgdGhlIG91dHB1dCBmaWxlCisgKiBAcDogIGEgbWVtb3J5IGJsb2NrIGhlYWRlcgorICoKKyAqIHRyaWVzIHRvIHNob3cgc29tZSBjb250ZW50IGZyb20gdGhlIG1lbW9yeSBibG9jaworICovCisKK3N0YXRpYyB2b2lkCit4bWxNZW1Db250ZW50U2hvdyhGSUxFICpmcCwgTUVNSERSICpwKQoreworICAgIGludCBpLGosayxsZW4gPSBwLT5taF9zaXplOworICAgIGNvbnN0IGNoYXIgKmJ1ZiA9IChjb25zdCBjaGFyICopIEhEUl8yX0NMSUVOVChwKTsKKworICAgIGlmIChwID09IE5VTEwpIHsKKwlmcHJpbnRmKGZwLCAiIE5VTEwiKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgZm9yIChpID0gMDtpIDwgbGVuO2krKykgeworICAgICAgICBpZiAoYnVmW2ldID09IDApIGJyZWFrOworCWlmICghaXNwcmludCgodW5zaWduZWQgY2hhcikgYnVmW2ldKSkgYnJlYWs7CisgICAgfQorICAgIGlmICgoaSA8IDQpICYmICgoYnVmW2ldICE9IDApIHx8IChpID09IDApKSkgeworICAgICAgICBpZiAobGVuID49IDQpIHsKKwkgICAgTUVNSERSICpxOworCSAgICB2b2lkICpjdXI7CisKKyAgICAgICAgICAgIGZvciAoaiA9IDA7KGogPCBsZW4gLTMpICYmIChqIDwgNDApO2ogKz0gNCkgeworCQljdXIgPSAqKCh2b2lkICoqKSAmYnVmW2pdKTsKKwkJcSA9IENMSUVOVF8yX0hEUihjdXIpOworCQlwID0gbWVtbGlzdDsKKwkJayA9IDA7CisJCXdoaWxlIChwICE9IE5VTEwpIHsKKwkJICAgIGlmIChwID09IHEpIGJyZWFrOworCQkgICAgcCA9IHAtPm1oX25leHQ7CisJCSAgICBpZiAoaysrID4gMTAwKSBicmVhazsKKwkJfQorCQlpZiAoKHAgIT0gTlVMTCkgJiYgKHAgPT0gcSkpIHsKKwkJICAgIGZwcmludGYoZnAsICIgcG9pbnRlciB0byAjJWx1IGF0IGluZGV4ICVkIiwKKwkJICAgICAgICAgICAgcC0+bWhfbnVtYmVyLCBqKTsKKwkJICAgIHJldHVybjsKKwkJfQorCSAgICB9CisJfQorICAgIH0gZWxzZSBpZiAoKGkgPT0gMCkgJiYgKGJ1ZltpXSA9PSAwKSkgeworICAgICAgICBmcHJpbnRmKGZwLCIgbnVsbCIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChidWZbaV0gPT0gMCkgZnByaW50ZihmcCwiIFwiJS4yNXNcIiIsIGJ1Zik7CisJZWxzZSB7CisgICAgICAgICAgICBmcHJpbnRmKGZwLCIgWyIpOworCSAgICBmb3IgKGogPSAwO2ogPCBpO2orKykKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLCIlYyIsIGJ1ZltqXSk7CisgICAgICAgICAgICBmcHJpbnRmKGZwLCJdIik7CisJfQorICAgIH0KK30KKyNlbmRpZgorCisvKioKKyAqIHhtbE1lbURpc3BsYXlMYXN0OgorICogQGZwOiAgYSBGSUxFIGRlc2NyaXB0b3IgdXNlZCBhcyB0aGUgb3V0cHV0IGZpbGUsIGlmIE5VTEwsIHRoZSByZXN1bHQgaXMKKyAqICAgICAgIHdyaXR0ZW4gdG8gdGhlIGZpbGUgLm1lbW9yeWxpc3QKKyAqIEBuYkJ5dGVzOiB0aGUgYW1vdW50IG9mIG1lbW9yeSB0byBkdW1wCisgKgorICogdGhlIGxhc3QgbmJCeXRlcyBvZiBtZW1vcnkgYWxsb2NhdGVkIGFuZCBub3QgZnJlZWQsIHVzZWZ1bCBmb3IgZHVtcGluZworICogdGhlIG1lbW9yeSBsZWZ0IGFsbG9jYXRlZCBiZXR3ZWVuIHR3byBwbGFjZXMgYXQgcnVudGltZS4KKyAqLworCit2b2lkCit4bWxNZW1EaXNwbGF5TGFzdChGSUxFICpmcCwgbG9uZyBuYkJ5dGVzKQoreworI2lmZGVmIE1FTV9MSVNUCisgICAgTUVNSERSICpwOworICAgIHVuc2lnbmVkIGlkeDsKKyAgICBpbnQgICAgIG5iID0gMDsKKyNlbmRpZgorICAgIEZJTEUgKm9sZF9mcCA9IGZwOworCisgICAgaWYgKG5iQnl0ZXMgPD0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGZwID09IE5VTEwpIHsKKwlmcCA9IGZvcGVuKCIubWVtb3J5bGlzdCIsICJ3Iik7CisJaWYgKGZwID09IE5VTEwpCisJICAgIHJldHVybjsKKyAgICB9CisKKyNpZmRlZiBNRU1fTElTVAorICAgIGZwcmludGYoZnAsIiAgIExhc3QgJWxpIE1FTU9SWSBBTExPQ0FURUQgOiAlbHUsIE1BWCB3YXMgJWx1XG4iLAorICAgICAgICAgICAgbmJCeXRlcywgZGVidWdNZW1TaXplLCBkZWJ1Z01heE1lbVNpemUpOworICAgIGZwcmludGYoZnAsIkJMT0NLICBOVU1CRVIgICBTSVpFICBUWVBFXG4iKTsKKyAgICBpZHggPSAwOworICAgIHhtbE11dGV4TG9jayh4bWxNZW1NdXRleCk7CisgICAgcCA9IG1lbWxpc3Q7CisgICAgd2hpbGUgKChwKSAmJiAobmJCeXRlcyA+IDApKSB7CisJICBmcHJpbnRmKGZwLCIlLTV1ICAlNmx1ICU2bHUgIixpZHgrKyxwLT5taF9udW1iZXIsCisJCSAgKHVuc2lnbmVkIGxvbmcpcC0+bWhfc2l6ZSk7CisgICAgICAgIHN3aXRjaCAocC0+bWhfdHlwZSkgeworICAgICAgICAgICBjYXNlIFNUUkRVUF9UWVBFOmZwcmludGYoZnAsInN0cmR1cCgpICBpbiAiKTticmVhazsKKyAgICAgICAgICAgY2FzZSBNQUxMT0NfVFlQRTpmcHJpbnRmKGZwLCJtYWxsb2MoKSAgaW4gIik7YnJlYWs7CisgICAgICAgICAgIGNhc2UgUkVBTExPQ19UWVBFOmZwcmludGYoZnAsInJlYWxsb2MoKSBpbiAiKTticmVhazsKKyAgICAgICAgICAgY2FzZSBNQUxMT0NfQVRPTUlDX1RZUEU6ZnByaW50ZihmcCwiYXRvbWljbWFsbG9jKCkgIGluICIpO2JyZWFrOworICAgICAgICAgICBjYXNlIFJFQUxMT0NfQVRPTUlDX1RZUEU6ZnByaW50ZihmcCwiYXRvbWljcmVhbGxvYygpIGluICIpO2JyZWFrOworICAgICAgICAgICBkZWZhdWx0OgorCSAgICAgICAgZnByaW50ZihmcCwiVW5rbm93biBtZW1vcnkgYmxvY2ssIG1heSBiZSBjb3JydXB0ZWQiKTsKKwkJeG1sTXV0ZXhVbmxvY2soeG1sTWVtTXV0ZXgpOworCQlpZiAob2xkX2ZwID09IE5VTEwpCisJCSAgICBmY2xvc2UoZnApOworCQlyZXR1cm47CisgICAgICAgIH0KKwlpZiAocC0+bWhfZmlsZSAhPSBOVUxMKSBmcHJpbnRmKGZwLCIlcygldSkiLCBwLT5taF9maWxlLCBwLT5taF9saW5lKTsKKyAgICAgICAgaWYgKHAtPm1oX3RhZyAhPSBNRU1UQUcpCisJICAgICAgZnByaW50ZihmcCwiICBJTlZBTElEIik7CisgICAgICAgIG5iKys7CisJaWYgKG5iIDwgMTAwKQorCSAgICB4bWxNZW1Db250ZW50U2hvdyhmcCwgcCk7CisJZWxzZQorCSAgICBmcHJpbnRmKGZwLCIgc2tpcCIpOworCisgICAgICAgIGZwcmludGYoZnAsIlxuIik7CisJbmJCeXRlcyAtPSAodW5zaWduZWQgbG9uZylwLT5taF9zaXplOworICAgICAgICBwID0gcC0+bWhfbmV4dDsKKyAgICB9CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sTWVtTXV0ZXgpOworI2Vsc2UKKyAgICBmcHJpbnRmKGZwLCJNZW1vcnkgbGlzdCBub3QgY29tcGlsZWQgKE1FTV9MSVNUIG5vdCBkZWZpbmVkICEpXG4iKTsKKyNlbmRpZgorICAgIGlmIChvbGRfZnAgPT0gTlVMTCkKKwlmY2xvc2UoZnApOworfQorCisvKioKKyAqIHhtbE1lbURpc3BsYXk6CisgKiBAZnA6ICBhIEZJTEUgZGVzY3JpcHRvciB1c2VkIGFzIHRoZSBvdXRwdXQgZmlsZSwgaWYgTlVMTCwgdGhlIHJlc3VsdCBpcworICogICAgICAgd3JpdHRlbiB0byB0aGUgZmlsZSAubWVtb3J5bGlzdAorICoKKyAqIHNob3cgaW4tZXh0ZW5zbyB0aGUgbWVtb3J5IGJsb2NrcyBhbGxvY2F0ZWQKKyAqLworCit2b2lkCit4bWxNZW1EaXNwbGF5KEZJTEUgKmZwKQoreworI2lmZGVmIE1FTV9MSVNUCisgICAgTUVNSERSICpwOworICAgIHVuc2lnbmVkIGlkeDsKKyAgICBpbnQgICAgIG5iID0gMDsKKyNpZiBkZWZpbmVkKEhBVkVfTE9DQUxUSU1FKSAmJiBkZWZpbmVkKEhBVkVfU1RSRlRJTUUpCisgICAgdGltZV90IGN1cnJlbnRUaW1lOworICAgIGNoYXIgYnVmWzUwMF07CisgICAgc3RydWN0IHRtICogdHN0cnVjdDsKKyNlbmRpZgorI2VuZGlmCisgICAgRklMRSAqb2xkX2ZwID0gZnA7CisKKyAgICBpZiAoZnAgPT0gTlVMTCkgeworCWZwID0gZm9wZW4oIi5tZW1vcnlsaXN0IiwgInciKTsKKwlpZiAoZnAgPT0gTlVMTCkKKwkgICAgcmV0dXJuOworICAgIH0KKworI2lmZGVmIE1FTV9MSVNUCisjaWYgZGVmaW5lZChIQVZFX0xPQ0FMVElNRSkgJiYgZGVmaW5lZChIQVZFX1NUUkZUSU1FKQorICAgIGN1cnJlbnRUaW1lID0gdGltZShOVUxMKTsKKyAgICB0c3RydWN0ID0gbG9jYWx0aW1lKCZjdXJyZW50VGltZSk7CisgICAgc3RyZnRpbWUoYnVmLCBzaXplb2YoYnVmKSAtIDEsICIlSTolTTolUyAlcCIsIHRzdHJ1Y3QpOworICAgIGZwcmludGYoZnAsIiAgICAgICVzXG5cbiIsIGJ1Zik7CisjZW5kaWYKKworCisgICAgZnByaW50ZihmcCwiICAgICAgTUVNT1JZIEFMTE9DQVRFRCA6ICVsdSwgTUFYIHdhcyAlbHVcbiIsCisgICAgICAgICAgICBkZWJ1Z01lbVNpemUsIGRlYnVnTWF4TWVtU2l6ZSk7CisgICAgZnByaW50ZihmcCwiQkxPQ0sgIE5VTUJFUiAgIFNJWkUgIFRZUEVcbiIpOworICAgIGlkeCA9IDA7CisgICAgeG1sTXV0ZXhMb2NrKHhtbE1lbU11dGV4KTsKKyAgICBwID0gbWVtbGlzdDsKKyAgICB3aGlsZSAocCkgeworCSAgZnByaW50ZihmcCwiJS01dSAgJTZsdSAlNmx1ICIsaWR4KysscC0+bWhfbnVtYmVyLAorCQkgICh1bnNpZ25lZCBsb25nKXAtPm1oX3NpemUpOworICAgICAgICBzd2l0Y2ggKHAtPm1oX3R5cGUpIHsKKyAgICAgICAgICAgY2FzZSBTVFJEVVBfVFlQRTpmcHJpbnRmKGZwLCJzdHJkdXAoKSAgaW4gIik7YnJlYWs7CisgICAgICAgICAgIGNhc2UgTUFMTE9DX1RZUEU6ZnByaW50ZihmcCwibWFsbG9jKCkgIGluICIpO2JyZWFrOworICAgICAgICAgICBjYXNlIFJFQUxMT0NfVFlQRTpmcHJpbnRmKGZwLCJyZWFsbG9jKCkgaW4gIik7YnJlYWs7CisgICAgICAgICAgIGNhc2UgTUFMTE9DX0FUT01JQ19UWVBFOmZwcmludGYoZnAsImF0b21pY21hbGxvYygpICBpbiAiKTticmVhazsKKyAgICAgICAgICAgY2FzZSBSRUFMTE9DX0FUT01JQ19UWVBFOmZwcmludGYoZnAsImF0b21pY3JlYWxsb2MoKSBpbiAiKTticmVhazsKKyAgICAgICAgICAgZGVmYXVsdDoKKwkgICAgICAgIGZwcmludGYoZnAsIlVua25vd24gbWVtb3J5IGJsb2NrLCBtYXkgYmUgY29ycnVwdGVkIik7CisJCXhtbE11dGV4VW5sb2NrKHhtbE1lbU11dGV4KTsKKwkJaWYgKG9sZF9mcCA9PSBOVUxMKQorCQkgICAgZmNsb3NlKGZwKTsKKwkJcmV0dXJuOworICAgICAgICB9CisJaWYgKHAtPm1oX2ZpbGUgIT0gTlVMTCkgZnByaW50ZihmcCwiJXMoJXUpIiwgcC0+bWhfZmlsZSwgcC0+bWhfbGluZSk7CisgICAgICAgIGlmIChwLT5taF90YWcgIT0gTUVNVEFHKQorCSAgICAgIGZwcmludGYoZnAsIiAgSU5WQUxJRCIpOworICAgICAgICBuYisrOworCWlmIChuYiA8IDEwMCkKKwkgICAgeG1sTWVtQ29udGVudFNob3coZnAsIHApOworCWVsc2UKKwkgICAgZnByaW50ZihmcCwiIHNraXAiKTsKKworICAgICAgICBmcHJpbnRmKGZwLCJcbiIpOworICAgICAgICBwID0gcC0+bWhfbmV4dDsKKyAgICB9CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sTWVtTXV0ZXgpOworI2Vsc2UKKyAgICBmcHJpbnRmKGZwLCJNZW1vcnkgbGlzdCBub3QgY29tcGlsZWQgKE1FTV9MSVNUIG5vdCBkZWZpbmVkICEpXG4iKTsKKyNlbmRpZgorICAgIGlmIChvbGRfZnAgPT0gTlVMTCkKKwlmY2xvc2UoZnApOworfQorCisjaWZkZWYgTUVNX0xJU1QKKworc3RhdGljIHZvaWQgZGVidWdtZW1fbGlzdF9hZGQoTUVNSERSICpwKQoreworICAgICBwLT5taF9uZXh0ID0gbWVtbGlzdDsKKyAgICAgcC0+bWhfcHJldiA9IE5VTEw7CisgICAgIGlmIChtZW1saXN0KSBtZW1saXN0LT5taF9wcmV2ID0gcDsKKyAgICAgbWVtbGlzdCA9IHA7CisjaWZkZWYgTUVNX0xJU1RfREVCVUcKKyAgICAgaWYgKHN0ZGVycikKKyAgICAgTWVtX0Rpc3BsYXkoc3RkZXJyKTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCBkZWJ1Z21lbV9saXN0X2RlbGV0ZShNRU1IRFIgKnApCit7CisgICAgIGlmIChwLT5taF9uZXh0KQorICAgICBwLT5taF9uZXh0LT5taF9wcmV2ID0gcC0+bWhfcHJldjsKKyAgICAgaWYgKHAtPm1oX3ByZXYpCisgICAgIHAtPm1oX3ByZXYtPm1oX25leHQgPSBwLT5taF9uZXh0OworICAgICBlbHNlIG1lbWxpc3QgPSBwLT5taF9uZXh0OworI2lmZGVmIE1FTV9MSVNUX0RFQlVHCisgICAgIGlmIChzdGRlcnIpCisgICAgIE1lbV9EaXNwbGF5KHN0ZGVycik7CisjZW5kaWYKK30KKworI2VuZGlmCisKKy8qCisgKiBkZWJ1Z21lbV90YWdfZXJyb3I6CisgKgorICogaW50ZXJuYWwgZXJyb3IgZnVuY3Rpb24uCisgKi8KKworc3RhdGljIHZvaWQgZGVidWdtZW1fdGFnX2Vycm9yKHZvaWQgKnApCit7CisgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAgIk1lbW9yeSB0YWcgZXJyb3Igb2NjdXJzIDolcCBcblx0IGJ5ZVxuIiwgcCk7CisjaWZkZWYgTUVNX0xJU1QKKyAgICAgaWYgKHN0ZGVycikKKyAgICAgeG1sTWVtRGlzcGxheShzdGRlcnIpOworI2VuZGlmCit9CisKKyNpZmRlZiBNRU1fTElTVAorc3RhdGljIEZJTEUgKnhtbE1lbW9yeUR1bXBGaWxlID0gTlVMTDsKKyNlbmRpZgorCisvKioKKyAqIHhtbE1lbVNob3c6CisgKiBAZnA6ICBhIEZJTEUgZGVzY3JpcHRvciB1c2VkIGFzIHRoZSBvdXRwdXQgZmlsZQorICogQG5yOiAgbnVtYmVyIG9mIGVudHJpZXMgdG8gZHVtcAorICoKKyAqIHNob3cgYSBzaG93IGRpc3BsYXkgb2YgdGhlIG1lbW9yeSBhbGxvY2F0ZWQsIGFuZCBkdW1wCisgKiB0aGUgQG5yIGxhc3QgYWxsb2NhdGVkIGFyZWFzIHdoaWNoIHdlcmUgbm90IGZyZWVkCisgKi8KKwordm9pZAoreG1sTWVtU2hvdyhGSUxFICpmcCwgaW50IG5yIEFUVFJJQlVURV9VTlVTRUQpCit7CisjaWZkZWYgTUVNX0xJU1QKKyAgICBNRU1IRFIgKnA7CisjZW5kaWYKKworICAgIGlmIChmcCAhPSBOVUxMKQorCWZwcmludGYoZnAsIiAgICAgIE1FTU9SWSBBTExPQ0FURUQgOiAlbHUsIE1BWCB3YXMgJWx1XG4iLAorCQlkZWJ1Z01lbVNpemUsIGRlYnVnTWF4TWVtU2l6ZSk7CisjaWZkZWYgTUVNX0xJU1QKKyAgICB4bWxNdXRleExvY2soeG1sTWVtTXV0ZXgpOworICAgIGlmIChuciA+IDApIHsKKwlmcHJpbnRmKGZwLCJOVU1CRVIgICBTSVpFICBUWVBFICAgV0hFUkVcbiIpOworCXAgPSBtZW1saXN0OworCXdoaWxlICgocCkgJiYgbnIgPiAwKSB7CisJICAgICAgZnByaW50ZihmcCwiJTZsdSAlNmx1ICIscC0+bWhfbnVtYmVyLCh1bnNpZ25lZCBsb25nKXAtPm1oX3NpemUpOworCSAgICBzd2l0Y2ggKHAtPm1oX3R5cGUpIHsKKwkgICAgICAgY2FzZSBTVFJEVVBfVFlQRTpmcHJpbnRmKGZwLCJzdHJkdXAoKSAgaW4gIik7YnJlYWs7CisJICAgICAgIGNhc2UgTUFMTE9DX1RZUEU6ZnByaW50ZihmcCwibWFsbG9jKCkgIGluICIpO2JyZWFrOworCSAgICAgICBjYXNlIE1BTExPQ19BVE9NSUNfVFlQRTpmcHJpbnRmKGZwLCJhdG9taWNtYWxsb2MoKSAgaW4gIik7YnJlYWs7CisJICAgICAgY2FzZSBSRUFMTE9DX1RZUEU6ZnByaW50ZihmcCwicmVhbGxvYygpIGluICIpO2JyZWFrOworCSAgICAgIGNhc2UgUkVBTExPQ19BVE9NSUNfVFlQRTpmcHJpbnRmKGZwLCJhdG9taWNyZWFsbG9jKCkgaW4gIik7YnJlYWs7CisJCWRlZmF1bHQ6ZnByaW50ZihmcCwiICAgPz8/ICAgIGluICIpO2JyZWFrOworCSAgICB9CisJICAgIGlmIChwLT5taF9maWxlICE9IE5VTEwpCisJICAgICAgICBmcHJpbnRmKGZwLCIlcygldSkiLCBwLT5taF9maWxlLCBwLT5taF9saW5lKTsKKwkgICAgaWYgKHAtPm1oX3RhZyAhPSBNRU1UQUcpCisJCWZwcmludGYoZnAsIiAgSU5WQUxJRCIpOworCSAgICB4bWxNZW1Db250ZW50U2hvdyhmcCwgcCk7CisJICAgIGZwcmludGYoZnAsIlxuIik7CisJICAgIG5yLS07CisJICAgIHAgPSBwLT5taF9uZXh0OworCX0KKyAgICB9CisgICAgeG1sTXV0ZXhVbmxvY2soeG1sTWVtTXV0ZXgpOworI2VuZGlmIC8qIE1FTV9MSVNUICovCit9CisKKy8qKgorICogeG1sTWVtb3J5RHVtcDoKKyAqCisgKiBEdW1wIGluLWV4dGVuc28gdGhlIG1lbW9yeSBibG9ja3MgYWxsb2NhdGVkIHRvIHRoZSBmaWxlIC5tZW1vcnlsaXN0CisgKi8KKwordm9pZAoreG1sTWVtb3J5RHVtcCh2b2lkKQoreworI2lmZGVmIE1FTV9MSVNUCisgICAgRklMRSAqZHVtcDsKKworICAgIGlmIChkZWJ1Z01heE1lbVNpemUgPT0gMCkKKwlyZXR1cm47CisgICAgZHVtcCA9IGZvcGVuKCIubWVtZHVtcCIsICJ3Iik7CisgICAgaWYgKGR1bXAgPT0gTlVMTCkKKwl4bWxNZW1vcnlEdW1wRmlsZSA9IHN0ZGVycjsKKyAgICBlbHNlIHhtbE1lbW9yeUR1bXBGaWxlID0gZHVtcDsKKworICAgIHhtbE1lbURpc3BsYXkoeG1sTWVtb3J5RHVtcEZpbGUpOworCisgICAgaWYgKGR1bXAgIT0gTlVMTCkgZmNsb3NlKGR1bXApOworI2VuZGlmIC8qIE1FTV9MSVNUICovCit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkqCisgKgkJSW5pdGlhbGl6YXRpb24gUm91dGluZXMJCQkJKgorICoJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbEluaXRNZW1vcnk6CisgKgorICogSW5pdGlhbGl6ZSB0aGUgbWVtb3J5IGxheWVyLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzCisgKi8KK2ludAoreG1sSW5pdE1lbW9yeSh2b2lkKQoreworI2lmZGVmIEhBVkVfU1RETElCX0gKKyAgICAgY2hhciAqYnJlYWtwb2ludDsKKyNlbmRpZgorI2lmZGVmIERFQlVHX01FTU9SWQorICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgICJ4bWxJbml0TWVtb3J5KClcbiIpOworI2VuZGlmCisgICAgLyoKKyAgICAgVGhpcyBpcyByZWFsbHkgbm90IGdvb2QgY29kZSAoc2VlIEJ1ZyAxMzA0MTkpLiAgU3VnZ2VzdGlvbnMgZm9yCisgICAgIGltcHJvdmVtZW50IHdpbGwgYmUgd2VsY29tZSEKKyAgICAqLworICAgICBpZiAoeG1sTWVtSW5pdGlhbGl6ZWQpIHJldHVybigtMSk7CisgICAgIHhtbE1lbUluaXRpYWxpemVkID0gMTsKKyAgICAgeG1sTWVtTXV0ZXggPSB4bWxOZXdNdXRleCgpOworCisjaWZkZWYgSEFWRV9TVERMSUJfSAorICAgICBicmVha3BvaW50ID0gZ2V0ZW52KCJYTUxfTUVNX0JSRUFLUE9JTlQiKTsKKyAgICAgaWYgKGJyZWFrcG9pbnQgIT0gTlVMTCkgeworICAgICAgICAgc3NjYW5mKGJyZWFrcG9pbnQsICIldWQiLCAmeG1sTWVtU3RvcEF0QmxvY2spOworICAgICB9CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NURExJQl9ICisgICAgIGJyZWFrcG9pbnQgPSBnZXRlbnYoIlhNTF9NRU1fVFJBQ0UiKTsKKyAgICAgaWYgKGJyZWFrcG9pbnQgIT0gTlVMTCkgeworICAgICAgICAgc3NjYW5mKGJyZWFrcG9pbnQsICIlcCIsICZ4bWxNZW1UcmFjZUJsb2NrQXQpOworICAgICB9CisjZW5kaWYKKworI2lmZGVmIERFQlVHX01FTU9SWQorICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgICJ4bWxJbml0TWVtb3J5KCkgT2tcbiIpOworI2VuZGlmCisgICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxDbGVhbnVwTWVtb3J5OgorICoKKyAqIEZyZWUgdXAgYWxsIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHRoZSBsaWJyYXJ5IGZvciBpdHMgb3duCisgKiB1c2UuIFRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYnkgdXNlciBsZXZlbCBjb2RlLgorICovCit2b2lkCit4bWxDbGVhbnVwTWVtb3J5KHZvaWQpIHsKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICAieG1sQ2xlYW51cE1lbW9yeSgpXG4iKTsKKyNlbmRpZgorICAgIGlmICh4bWxNZW1Jbml0aWFsaXplZCA9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICB4bWxGcmVlTXV0ZXgoeG1sTWVtTXV0ZXgpOworICAgIHhtbE1lbU11dGV4ID0gTlVMTDsKKyAgICB4bWxNZW1Jbml0aWFsaXplZCA9IDA7CisjaWZkZWYgREVCVUdfTUVNT1JZCisgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAgInhtbENsZWFudXBNZW1vcnkoKSBPa1xuIik7CisjZW5kaWYKK30KKworLyoqCisgKiB4bWxNZW1TZXR1cDoKKyAqIEBmcmVlRnVuYzogdGhlIGZyZWUoKSBmdW5jdGlvbiB0byB1c2UKKyAqIEBtYWxsb2NGdW5jOiB0aGUgbWFsbG9jKCkgZnVuY3Rpb24gdG8gdXNlCisgKiBAcmVhbGxvY0Z1bmM6IHRoZSByZWFsbG9jKCkgZnVuY3Rpb24gdG8gdXNlCisgKiBAc3RyZHVwRnVuYzogdGhlIHN0cmR1cCgpIGZ1bmN0aW9uIHRvIHVzZQorICoKKyAqIE92ZXJyaWRlIHRoZSBkZWZhdWx0IG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIHdpdGggYSBuZXcgc2V0CisgKiBUaGlzIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBsaWJ4bWwgcm91dGluZXMgIQorICoKKyAqIFNob3VsZCB0aGlzIGJlIGJsb2NrZWQgaWYgdGhlcmUgd2FzIGFscmVhZHkgc29tZSBhbGxvY2F0aW9ucworICogZG9uZSA/CisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MKKyAqLworaW50Cit4bWxNZW1TZXR1cCh4bWxGcmVlRnVuYyBmcmVlRnVuYywgeG1sTWFsbG9jRnVuYyBtYWxsb2NGdW5jLAorICAgICAgICAgICAgeG1sUmVhbGxvY0Z1bmMgcmVhbGxvY0Z1bmMsIHhtbFN0cmR1cEZ1bmMgc3RyZHVwRnVuYykgeworI2lmZGVmIERFQlVHX01FTU9SWQorICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgICJ4bWxNZW1TZXR1cCgpXG4iKTsKKyNlbmRpZgorICAgIGlmIChmcmVlRnVuYyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKG1hbGxvY0Z1bmMgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFsbG9jRnVuYyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHN0cmR1cEZ1bmMgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIHhtbEZyZWUgPSBmcmVlRnVuYzsKKyAgICB4bWxNYWxsb2MgPSBtYWxsb2NGdW5jOworICAgIHhtbE1hbGxvY0F0b21pYyA9IG1hbGxvY0Z1bmM7CisgICAgeG1sUmVhbGxvYyA9IHJlYWxsb2NGdW5jOworICAgIHhtbE1lbVN0cmR1cCA9IHN0cmR1cEZ1bmM7CisjaWZkZWYgREVCVUdfTUVNT1JZCisgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAgInhtbE1lbVNldHVwKCkgT2tcbiIpOworI2VuZGlmCisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbE1lbUdldDoKKyAqIEBmcmVlRnVuYzogcGxhY2UgdG8gc2F2ZSB0aGUgZnJlZSgpIGZ1bmN0aW9uIGluIHVzZQorICogQG1hbGxvY0Z1bmM6IHBsYWNlIHRvIHNhdmUgdGhlIG1hbGxvYygpIGZ1bmN0aW9uIGluIHVzZQorICogQHJlYWxsb2NGdW5jOiBwbGFjZSB0byBzYXZlIHRoZSByZWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlCisgKiBAc3RyZHVwRnVuYzogcGxhY2UgdG8gc2F2ZSB0aGUgc3RyZHVwKCkgZnVuY3Rpb24gaW4gdXNlCisgKgorICogUHJvdmlkZXMgdGhlIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIHNldCBjdXJyZW50bHkgaW4gdXNlCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MKKyAqLworaW50Cit4bWxNZW1HZXQoeG1sRnJlZUZ1bmMgKmZyZWVGdW5jLCB4bWxNYWxsb2NGdW5jICptYWxsb2NGdW5jLAorCSAgeG1sUmVhbGxvY0Z1bmMgKnJlYWxsb2NGdW5jLCB4bWxTdHJkdXBGdW5jICpzdHJkdXBGdW5jKSB7CisgICAgaWYgKGZyZWVGdW5jICE9IE5VTEwpICpmcmVlRnVuYyA9IHhtbEZyZWU7CisgICAgaWYgKG1hbGxvY0Z1bmMgIT0gTlVMTCkgKm1hbGxvY0Z1bmMgPSB4bWxNYWxsb2M7CisgICAgaWYgKHJlYWxsb2NGdW5jICE9IE5VTEwpICpyZWFsbG9jRnVuYyA9IHhtbFJlYWxsb2M7CisgICAgaWYgKHN0cmR1cEZ1bmMgIT0gTlVMTCkgKnN0cmR1cEZ1bmMgPSB4bWxNZW1TdHJkdXA7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbEdjTWVtU2V0dXA6CisgKiBAZnJlZUZ1bmM6IHRoZSBmcmVlKCkgZnVuY3Rpb24gdG8gdXNlCisgKiBAbWFsbG9jRnVuYzogdGhlIG1hbGxvYygpIGZ1bmN0aW9uIHRvIHVzZQorICogQG1hbGxvY0F0b21pY0Z1bmM6IHRoZSBtYWxsb2MoKSBmdW5jdGlvbiB0byB1c2UgZm9yIGF0b21pYyBhbGxvY2F0aW9ucworICogQHJlYWxsb2NGdW5jOiB0aGUgcmVhbGxvYygpIGZ1bmN0aW9uIHRvIHVzZQorICogQHN0cmR1cEZ1bmM6IHRoZSBzdHJkdXAoKSBmdW5jdGlvbiB0byB1c2UKKyAqCisgKiBPdmVycmlkZSB0aGUgZGVmYXVsdCBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucyB3aXRoIGEgbmV3IHNldAorICogVGhpcyBoYXMgdG8gYmUgY2FsbGVkIGJlZm9yZSBhbnkgb3RoZXIgbGlieG1sIHJvdXRpbmVzICEKKyAqIFRoZSBtYWxsb2NBdG9taWNGdW5jIGlzIHNwZWNpYWxpemVkIGZvciBhdG9taWMgYmxvY2sKKyAqIGFsbG9jYXRpb25zIChpLmUuIG9mIGFyZWFzICB1c2VmdWwgZm9yIGdhcmJhZ2UgY29sbGVjdGVkIG1lbW9yeSBhbGxvY2F0b3JzCisgKgorICogU2hvdWxkIHRoaXMgYmUgYmxvY2tlZCBpZiB0aGVyZSB3YXMgYWxyZWFkeSBzb21lIGFsbG9jYXRpb25zCisgKiBkb25lID8KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcworICovCitpbnQKK3htbEdjTWVtU2V0dXAoeG1sRnJlZUZ1bmMgZnJlZUZ1bmMsIHhtbE1hbGxvY0Z1bmMgbWFsbG9jRnVuYywKKyAgICAgICAgICAgICAgeG1sTWFsbG9jRnVuYyBtYWxsb2NBdG9taWNGdW5jLCB4bWxSZWFsbG9jRnVuYyByZWFsbG9jRnVuYywKKwkgICAgICB4bWxTdHJkdXBGdW5jIHN0cmR1cEZ1bmMpIHsKKyNpZmRlZiBERUJVR19NRU1PUlkKKyAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICAieG1sR2NNZW1TZXR1cCgpXG4iKTsKKyNlbmRpZgorICAgIGlmIChmcmVlRnVuYyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKG1hbGxvY0Z1bmMgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChtYWxsb2NBdG9taWNGdW5jID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhbGxvY0Z1bmMgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChzdHJkdXBGdW5jID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICB4bWxGcmVlID0gZnJlZUZ1bmM7CisgICAgeG1sTWFsbG9jID0gbWFsbG9jRnVuYzsKKyAgICB4bWxNYWxsb2NBdG9taWMgPSBtYWxsb2NBdG9taWNGdW5jOworICAgIHhtbFJlYWxsb2MgPSByZWFsbG9jRnVuYzsKKyAgICB4bWxNZW1TdHJkdXAgPSBzdHJkdXBGdW5jOworI2lmZGVmIERFQlVHX01FTU9SWQorICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgICJ4bWxHY01lbVNldHVwKCkgT2tcbiIpOworI2VuZGlmCisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbEdjTWVtR2V0OgorICogQGZyZWVGdW5jOiBwbGFjZSB0byBzYXZlIHRoZSBmcmVlKCkgZnVuY3Rpb24gaW4gdXNlCisgKiBAbWFsbG9jRnVuYzogcGxhY2UgdG8gc2F2ZSB0aGUgbWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlCisgKiBAbWFsbG9jQXRvbWljRnVuYzogcGxhY2UgdG8gc2F2ZSB0aGUgYXRvbWljIG1hbGxvYygpIGZ1bmN0aW9uIGluIHVzZQorICogQHJlYWxsb2NGdW5jOiBwbGFjZSB0byBzYXZlIHRoZSByZWFsbG9jKCkgZnVuY3Rpb24gaW4gdXNlCisgKiBAc3RyZHVwRnVuYzogcGxhY2UgdG8gc2F2ZSB0aGUgc3RyZHVwKCkgZnVuY3Rpb24gaW4gdXNlCisgKgorICogUHJvdmlkZXMgdGhlIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIHNldCBjdXJyZW50bHkgaW4gdXNlCisgKiBUaGUgbWFsbG9jQXRvbWljRnVuYyBpcyBzcGVjaWFsaXplZCBmb3IgYXRvbWljIGJsb2NrCisgKiBhbGxvY2F0aW9ucyAoaS5lLiBvZiBhcmVhcyAgdXNlZnVsIGZvciBnYXJiYWdlIGNvbGxlY3RlZCBtZW1vcnkgYWxsb2NhdG9ycworICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzCisgKi8KK2ludAoreG1sR2NNZW1HZXQoeG1sRnJlZUZ1bmMgKmZyZWVGdW5jLCB4bWxNYWxsb2NGdW5jICptYWxsb2NGdW5jLAorICAgICAgICAgICAgeG1sTWFsbG9jRnVuYyAqbWFsbG9jQXRvbWljRnVuYywgeG1sUmVhbGxvY0Z1bmMgKnJlYWxsb2NGdW5jLAorCSAgICB4bWxTdHJkdXBGdW5jICpzdHJkdXBGdW5jKSB7CisgICAgaWYgKGZyZWVGdW5jICE9IE5VTEwpICpmcmVlRnVuYyA9IHhtbEZyZWU7CisgICAgaWYgKG1hbGxvY0Z1bmMgIT0gTlVMTCkgKm1hbGxvY0Z1bmMgPSB4bWxNYWxsb2M7CisgICAgaWYgKG1hbGxvY0F0b21pY0Z1bmMgIT0gTlVMTCkgKm1hbGxvY0F0b21pY0Z1bmMgPSB4bWxNYWxsb2NBdG9taWM7CisgICAgaWYgKHJlYWxsb2NGdW5jICE9IE5VTEwpICpyZWFsbG9jRnVuYyA9IHhtbFJlYWxsb2M7CisgICAgaWYgKHN0cmR1cEZ1bmMgIT0gTlVMTCkgKnN0cmR1cEZ1bmMgPSB4bWxNZW1TdHJkdXA7CisgICAgcmV0dXJuKDApOworfQorCisjZGVmaW5lIGJvdHRvbV94bWxtZW1vcnkKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbG1vZHVsZS5jIGIvbGlieG1sMi0yLjcuNy94bWxtb2R1bGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmZkNjEwCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy94bWxtb2R1bGUuYwpAQCAtMCwwICsxLDQ0NSBAQAorLyoKKyAqIHhtbG1vZHVsZS5jIDogYmFzaWMgQVBJIGZvciBkeW5hbWljIG1vZHVsZSBsb2FkaW5nIGFkZGVkIDIuNi4xNworICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBqb2Vsd3JlZWRAY29tY2FzdC5uZXQKKyAqCisgKiBodHRwOi8vd3d3LmZvcnRyYW4tMjAwMC5jb20vQXJuYXVkUmVjaXBlcy9zaGFyZWRsaWIuaHRtbAorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbG1vZHVsZS5oPgorI2luY2x1ZGUgPGxpYnhtbC9nbG9iYWxzLmg+CisKKyNpZmRlZiBMSUJYTUxfTU9EVUxFU19FTkFCTEVECisKK3N0cnVjdCBfeG1sTW9kdWxlIHsKKyAgICB1bnNpZ25lZCBjaGFyICpuYW1lOworICAgIHZvaWQgKmhhbmRsZTsKK307CisKK3N0YXRpYyB2b2lkICp4bWxNb2R1bGVQbGF0Zm9ybU9wZW4oY29uc3QgY2hhciAqbmFtZSk7CitzdGF0aWMgaW50IHhtbE1vZHVsZVBsYXRmb3JtQ2xvc2Uodm9pZCAqaGFuZGxlKTsKK3N0YXRpYyBpbnQgeG1sTW9kdWxlUGxhdGZvcm1TeW1ib2wodm9pZCAqaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICoqcmVzdWx0KTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAJCW1vZHVsZSBtZW1vcnkgZXJyb3IgaGFuZGxlcgkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sTW9kdWxlRXJyTWVtb3J5OgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb24KKyAqCisgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBjb25kaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbE1vZHVsZUVyck1lbW9yeSh4bWxNb2R1bGVQdHIgbW9kdWxlLCBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTDsKKworICAgIGlmIChtb2R1bGUgIT0gTlVMTCkgeworICAgICAgICBuYW1lID0gKGNvbnN0IGNoYXIgKikgbW9kdWxlLT5uYW1lOworICAgIH0KKworICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9NT0RVTEUsCisgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfTk9fTUVNT1JZLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBleHRyYSwKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwgTlVMTCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCA6ICVzXG4iLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sTW9kdWxlT3BlbjoKKyAqIEBuYW1lOiB0aGUgbW9kdWxlIG5hbWUKKyAqIEBvcHRpb25zOiBhIHNldCBvZiB4bWxNb2R1bGVPcHRpb24KKyAqCisgKiBPcGVucyBhIG1vZHVsZS9zaGFyZWQgbGlicmFyeSBnaXZlbiBpdHMgbmFtZSBvciBwYXRoCisgKiBUT0RPOiBvcHRpb25zIGFyZSBub3QgeWV0IGltcGxlbWVudGVkLgorICoKKyAqIFJldHVybnMgYSBoYW5kbGUgZm9yIHRoZSBtb2R1bGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbE1vZHVsZVB0cgoreG1sTW9kdWxlT3Blbihjb25zdCBjaGFyICpuYW1lLCBpbnQgb3B0aW9ucyBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbE1vZHVsZVB0ciBtb2R1bGU7CisKKyAgICBtb2R1bGUgPSAoeG1sTW9kdWxlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE1vZHVsZSkpOworICAgIGlmIChtb2R1bGUgPT0gTlVMTCkgeworICAgICAgICB4bWxNb2R1bGVFcnJNZW1vcnkoTlVMTCwgImNyZWF0aW5nIG1vZHVsZSIpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKworICAgIG1lbXNldChtb2R1bGUsIDAsIHNpemVvZih4bWxNb2R1bGUpKTsKKworICAgIG1vZHVsZS0+aGFuZGxlID0geG1sTW9kdWxlUGxhdGZvcm1PcGVuKG5hbWUpOworCisgICAgaWYgKG1vZHVsZS0+aGFuZGxlID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShtb2R1bGUpOworICAgICAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgWE1MX0ZST01fTU9EVUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgWE1MX01PRFVMRV9PUEVOLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgTlVMTCwgMCwgMCwgImZhaWxlZCB0byBvcGVuICVzXG4iLCBuYW1lKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIG1vZHVsZS0+bmFtZSA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSBuYW1lKTsKKyAgICByZXR1cm4gKG1vZHVsZSk7Cit9CisKKy8qKgorICogeG1sTW9kdWxlU3ltYm9sOgorICogQG1vZHVsZTogdGhlIG1vZHVsZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSBzeW1ib2wKKyAqIEBzeW1ib2w6IHRoZSByZXN1bHRpbmcgc3ltYm9sIGFkZHJlc3MKKyAqCisgKiBMb29rdXAgZm9yIGEgc3ltYm9sIGFkZHJlc3MgaW4gdGhlIGdpdmVuIG1vZHVsZQorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgc3ltYm9sIHdhcyBmb3VuZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbE1vZHVsZVN5bWJvbCh4bWxNb2R1bGVQdHIgbW9kdWxlLCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICoqc3ltYm9sKQoreworICAgIGludCByYyA9IC0xOworCQorICAgIGlmICgoTlVMTCA9PSBtb2R1bGUpIHx8IChzeW1ib2wgPT0gTlVMTCkpIHsKKyAgICAgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFhNTF9GUk9NX01PRFVMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9NT0RVTEVfT1BFTiwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIDAsIDAsICJudWxsIHBhcmFtZXRlclxuIik7CisgICAgICAgIHJldHVybiByYzsKKyAgICB9CisKKyAgICByYyA9IHhtbE1vZHVsZVBsYXRmb3JtU3ltYm9sKG1vZHVsZS0+aGFuZGxlLCBuYW1lLCBzeW1ib2wpOworCisgICAgaWYgKHJjID09IC0xKSB7CisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9NT0RVTEUsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfTU9EVUxFX09QRU4sIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBmaW5kIHN5bWJvbDogJXNcbiIsCisJCQkobmFtZSA9PSBOVUxMID8gIk5VTEwiIDogbmFtZSkpOworICAgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbE1vZHVsZUNsb3NlOgorICogQG1vZHVsZTogdGhlIG1vZHVsZSBoYW5kbGUKKyAqCisgKiBUaGUgY2xvc2Ugb3BlcmF0aW9ucyB1bmxvYWQgdGhlIGFzc29jaWF0ZWQgbW9kdWxlIGFuZCBmcmVlIHRoZQorICogZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSBtb2R1bGUuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcywgLTEgaW4gY2FzZSBvZiBhcmd1bWVudCBlcnJvciBhbmQgLTIKKyAqICAgICAgICAgaWYgdGhlIG1vZHVsZSBjb3VsZCBub3QgYmUgY2xvc2VkL3VubG9hZGVkLgorICovCitpbnQKK3htbE1vZHVsZUNsb3NlKHhtbE1vZHVsZVB0ciBtb2R1bGUpCit7CisgICAgaW50IHJjOworCisgICAgaWYgKE5VTEwgPT0gbW9kdWxlKSB7CisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9NT0RVTEUsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfTU9EVUxFX0NMT1NFLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgMCwgMCwgIm51bGwgbW9kdWxlIHBvaW50ZXJcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmMgPSB4bWxNb2R1bGVQbGF0Zm9ybUNsb3NlKG1vZHVsZS0+aGFuZGxlKTsKKworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9NT0RVTEUsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfTU9EVUxFX0NMT1NFLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgbW9kdWxlLT5uYW1lLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBjbG9zZTogJXNcbiIsIG1vZHVsZS0+bmFtZSk7CisgICAgICAgIHJldHVybiAtMjsKKyAgICB9CisKKyAgICByYyA9IHhtbE1vZHVsZUZyZWUobW9kdWxlKTsKKyAgICByZXR1cm4gKHJjKTsKK30KKworLyoqCisgKiB4bWxNb2R1bGVGcmVlOgorICogQG1vZHVsZTogdGhlIG1vZHVsZSBoYW5kbGUKKyAqCisgKiBUaGUgZnJlZSBvcGVyYXRpb25zIGZyZWUgdGhlIGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgbW9kdWxlCisgKiBidXQgZG9lcyBub3QgdW5sb2FkIHRoZSBhc3NvY2lhdGVkIHNoYXJlZCBsaWJyYXJ5IHdoaWNoIG1heSBzdGlsbAorICogYmUgaW4gdXNlLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgYXJndW1lbnQgZXJyb3IKKyAqLworaW50Cit4bWxNb2R1bGVGcmVlKHhtbE1vZHVsZVB0ciBtb2R1bGUpCit7CisgICAgaWYgKE5VTEwgPT0gbW9kdWxlKSB7CisgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9NT0RVTEUsCisgICAgICAgICAgICAgICAgICAgICAgICBYTUxfTU9EVUxFX0NMT1NFLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgMCwgMCwgIm51bGwgbW9kdWxlIHBvaW50ZXJcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgeG1sRnJlZShtb2R1bGUtPm5hbWUpOworICAgIHhtbEZyZWUobW9kdWxlKTsKKworICAgIHJldHVybiAoMCk7Cit9CisKKyNpZiBkZWZpbmVkKEhBVkVfRExPUEVOKSAmJiAhZGVmaW5lZChfV0lOMzIpCisjaWZkZWYgSEFWRV9ETEZDTl9ICisjaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCisjaWZuZGVmIFJUTERfR0xPQkFMICAgICAgICAgICAgLyogRm9yIFRydTY0IFVOSVggNC4wICovCisjZGVmaW5lIFJUTERfR0xPQkFMIDAKKyNlbmRpZgorCisvKioKKyAqIHhtbE1vZHVsZVBsYXRmb3JtT3BlbjoKKyAqIEBuYW1lOiBwYXRoIHRvIHRoZSBtb2R1bGUKKyAqCisgKiByZXR1cm5zIGEgaGFuZGxlIG9uIHN1Y2Nlc3MsIGFuZCB6ZXJvIG9uIGVycm9yLgorICovCisKK3N0YXRpYyB2b2lkICoKK3htbE1vZHVsZVBsYXRmb3JtT3Blbihjb25zdCBjaGFyICpuYW1lKQoreworICAgIHJldHVybiBkbG9wZW4obmFtZSwgUlRMRF9HTE9CQUwgfCBSVExEX05PVyk7Cit9CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybUNsb3NlOgorICogQGhhbmRsZTogaGFuZGxlIHRvIHRoZSBtb2R1bGUKKyAqCisgKiByZXR1cm5zIDAgb24gc3VjY2VzcywgYW5kIG5vbi16ZXJvIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtQ2xvc2Uodm9pZCAqaGFuZGxlKQoreworICAgIHJldHVybiBkbGNsb3NlKGhhbmRsZSk7Cit9CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybVN5bWJvbDoKKyAqIGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvZGxzeW0uaHRtbAorICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIHRoZSBsb2FkZWQgc3ltYm9sIGluIHJlc3VsdCwgYW5kIC0xIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtU3ltYm9sKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqKnN5bWJvbCkKK3sKKyAgICAqc3ltYm9sID0gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyAgICBpZiAoZGxlcnJvcigpICE9IE5VTEwpIHsKKwlyZXR1cm4gLTE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisjZWxzZSAvKiAhIEhBVkVfRExPUEVOICovCisKKyNpZmRlZiBIQVZFX1NITExPQUQgICAgICAgICAgICAgLyogSEFWRV9TSExMT0FEICovCisjaWZkZWYgSEFWRV9ETF9ICisjaW5jbHVkZSA8ZGwuaD4KKyNlbmRpZgorLyoKKyAqIHhtbE1vZHVsZVBsYXRmb3JtT3BlbjoKKyAqIHJldHVybnMgYSBoYW5kbGUgb24gc3VjY2VzcywgYW5kIHplcm8gb24gZXJyb3IuCisgKi8KKworc3RhdGljIHZvaWQgKgoreG1sTW9kdWxlUGxhdGZvcm1PcGVuKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgcmV0dXJuIHNobF9sb2FkKG5hbWUsIEJJTkRfSU1NRURJQVRFLCAwTCk7Cit9CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybUNsb3NlOgorICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIGFuZCBub24temVybyBvbiBlcnJvci4KKyAqLworCitzdGF0aWMgaW50Cit4bWxNb2R1bGVQbGF0Zm9ybUNsb3NlKHZvaWQgKmhhbmRsZSkKK3sKKyAgICByZXR1cm4gc2hsX3VubG9hZChoYW5kbGUpOworfQorCisvKgorICogeG1sTW9kdWxlUGxhdGZvcm1TeW1ib2w6CisgKiBodHRwOi8vZG9jcy5ocC5jb20vZW4vQjIzNTUtOTA2ODMvc2hsX2xvYWQuM1guaHRtbAorICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIHRoZSBsb2FkZWQgc3ltYm9sIGluIHJlc3VsdCwgYW5kIC0xIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtU3ltYm9sKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqKnN5bWJvbCkKK3sKKyAgICBpbnQgcmM7CisKKyAgICBlcnJubyA9IDA7CisgICAgcmMgPSBzaGxfZmluZHN5bSgmaGFuZGxlLCBuYW1lLCBUWVBFX1VOREVGSU5FRCwgc3ltYm9sKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKyNlbmRpZiAvKiBIQVZFX1NITExPQUQgKi8KKyNlbmRpZiAvKiAhIEhBVkVfRExPUEVOICovCisKKyNpZmRlZiBfV0lOMzIKKworI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworLyoKKyAqIHhtbE1vZHVsZVBsYXRmb3JtT3BlbjoKKyAqIHJldHVybnMgYSBoYW5kbGUgb24gc3VjY2VzcywgYW5kIHplcm8gb24gZXJyb3IuCisgKi8KKworc3RhdGljIHZvaWQgKgoreG1sTW9kdWxlUGxhdGZvcm1PcGVuKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgcmV0dXJuIExvYWRMaWJyYXJ5KG5hbWUpOworfQorCisvKgorICogeG1sTW9kdWxlUGxhdGZvcm1DbG9zZToKKyAqIHJldHVybnMgMCBvbiBzdWNjZXNzLCBhbmQgbm9uLXplcm8gb24gZXJyb3IuCisgKi8KKworc3RhdGljIGludAoreG1sTW9kdWxlUGxhdGZvcm1DbG9zZSh2b2lkICpoYW5kbGUpCit7CisgICAgaW50IHJjOworCisgICAgcmMgPSBGcmVlTGlicmFyeShoYW5kbGUpOworICAgIHJldHVybiAoMCA9PSByYyk7Cit9CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybVN5bWJvbDoKKyAqIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vbGlicmFyeS9kZWZhdWx0LmFzcD91cmw9L2xpYnJhcnkvZW4tdXMvZGxscHJvYy9iYXNlL2dldHByb2NhZGRyZXNzLmFzcAorICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIHRoZSBsb2FkZWQgc3ltYm9sIGluIHJlc3VsdCwgYW5kIC0xIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtU3ltYm9sKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqKnN5bWJvbCkKK3sKKyAgICAqc3ltYm9sID0gR2V0UHJvY0FkZHJlc3MoaGFuZGxlLCBuYW1lKTsKKyAgICByZXR1cm4gKE5VTEwgPT0gKnN5bWJvbCkgPyAtMSA6IDA7Cit9CisKKyNlbmRpZiAvKiBfV0lOMzIgKi8KKworI2lmZGVmIEhBVkVfQkVPUworCisjaW5jbHVkZSA8a2VybmVsL2ltYWdlLmg+CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybU9wZW46CisgKiBiZW9zIGFwaSBpbmZvOiBodHRwOi8vd3d3LmJldW5pdGVkLm9yZy9iZWJvb2svVGhlJTIwS2VybmVsJTIwS2l0L0ltYWdlcy5odG1sCisgKiByZXR1cm5zIGEgaGFuZGxlIG9uIHN1Y2Nlc3MsIGFuZCB6ZXJvIG9uIGVycm9yLgorICovCisKK3N0YXRpYyB2b2lkICoKK3htbE1vZHVsZVBsYXRmb3JtT3Blbihjb25zdCBjaGFyICpuYW1lKQoreworICAgIHJldHVybiAodm9pZCAqKSBsb2FkX2FkZF9vbihuYW1lKTsKK30KKworLyoKKyAqIHhtbE1vZHVsZVBsYXRmb3JtQ2xvc2U6CisgKiBiZW9zIGFwaSBpbmZvOiBodHRwOi8vd3d3LmJldW5pdGVkLm9yZy9iZWJvb2svVGhlJTIwS2VybmVsJTIwS2l0L0ltYWdlcy5odG1sCisgKiByZXR1cm5zIDAgb24gc3VjY2VzcywgYW5kIG5vbi16ZXJvIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtQ2xvc2Uodm9pZCAqaGFuZGxlKQoreworICAgIHN0YXR1c190IHJjOworCisgICAgcmMgPSB1bmxvYWRfYWRkX29uKChpbWFnZV9pZCkgaGFuZGxlKTsKKworICAgIGlmIChyYyA9PSBCX09LKQorICAgICAgICByZXR1cm4gMDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAtMTsKK30KKworLyoKKyAqIHhtbE1vZHVsZVBsYXRmb3JtU3ltYm9sOgorICogYmVvcyBhcGkgaW5mbzogaHR0cDovL3d3dy5iZXVuaXRlZC5vcmcvYmVib29rL1RoZSUyMEtlcm5lbCUyMEtpdC9JbWFnZXMuaHRtbAorICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIHRoZSBsb2FkZWQgc3ltYm9sIGluIHJlc3VsdCwgYW5kIC0xIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtU3ltYm9sKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqKnN5bWJvbCkKK3sKKyAgICBzdGF0dXNfdCByYzsKKworICAgIHJjID0gZ2V0X2ltYWdlX3N5bWJvbCgoaW1hZ2VfaWQpIGhhbmRsZSwgbmFtZSwgQl9TWU1CT0xfVFlQRV9BTlksIHN5bWJvbCk7CisKKyAgICByZXR1cm4gKHJjID09IEJfT0spID8gMCA6IC0xOworfQorCisjZW5kaWYgLyogSEFWRV9CRU9TICovCisKKyNpZmRlZiBIQVZFX09TMgorCisjaW5jbHVkZSA8b3MyLmg+CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybU9wZW46CisgKiBvczIgYXBpIGluZm86IGh0dHA6Ly93d3cuZWRtMi5jb20vb3MyYXBpL0Rvcy9Eb3NMb2FkTW9kdWxlLmh0bWwKKyAqIHJldHVybnMgYSBoYW5kbGUgb24gc3VjY2VzcywgYW5kIHplcm8gb24gZXJyb3IuCisgKi8KKworc3RhdGljIHZvaWQgKgoreG1sTW9kdWxlUGxhdGZvcm1PcGVuKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgY2hhciBlcnJidWZbMjU2XTsKKyAgICB2b2lkICpoYW5kbGU7CisgICAgaW50IHJjOworCisgICAgcmMgPSBEb3NMb2FkTW9kdWxlKGVycmJ1Ziwgc2l6ZW9mKGVycmJ1ZikgLSAxLCBuYW1lLCAmaGFuZGxlKTsKKworICAgIGlmIChyYykKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gKGhhbmRsZSk7Cit9CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybUNsb3NlOgorICogb3MyIGFwaSBpbmZvOiBodHRwOi8vd3d3LmVkbTIuY29tL29zMmFwaS9Eb3MvRG9zRnJlZU1vZHVsZS5odG1sCisgKiByZXR1cm5zIDAgb24gc3VjY2VzcywgYW5kIG5vbi16ZXJvIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtQ2xvc2Uodm9pZCAqaGFuZGxlKQoreworICAgIHJldHVybiBEb3NGcmVlTW9kdWxlKGhhbmRsZSk7Cit9CisKKy8qCisgKiB4bWxNb2R1bGVQbGF0Zm9ybVN5bWJvbDoKKyAqIG9zMiBhcGkgaW5mbzogaHR0cDovL3d3dy5lZG0yLmNvbS9vczJhcGkvRG9zL0Rvc1F1ZXJ5UHJvY0FkZHIuaHRtbAorICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIHRoZSBsb2FkZWQgc3ltYm9sIGluIHJlc3VsdCwgYW5kIC0xIG9uIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbE1vZHVsZVBsYXRmb3JtU3ltYm9sKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqKnN5bWJvbCkKK3sKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IERvc1F1ZXJ5UHJvY0FkZHIoaGFuZGxlLCAwLCBuYW1lLCBzeW1ib2wpOworCisgICAgcmV0dXJuIChyYyA9PSBOT19FUlJPUikgPyAwIDogLTE7Cit9CisKKyNlbmRpZiAvKiBIQVZFX09TMiAqLworCisjZGVmaW5lIGJvdHRvbV94bWxtb2R1bGUKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCisjZW5kaWYgLyogTElCWE1MX01PRFVMRVNfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy94bWxyZWFkZXIuYyBiL2xpYnhtbDItMi43LjcveG1scmVhZGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJhZmFjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveG1scmVhZGVyLmMKQEAgLTAsMCArMSw1NzYyIEBACisvKgorICogeG1scmVhZGVyLmM6IGltcGxlbWVudHMgdGhlIHhtbFRleHRSZWFkZXIgc3RyZWFtaW5nIG5vZGUgQVBJCisgKgorICogTk9URToKKyAqICAgWG1sVGV4dFJlYWRlci5Ob3JtYWxpemF0aW9uIFByb3BlcnR5IHdvbid0IGJlIHN1cHBvcnRlZCwgc2luY2UKKyAqICAgICBpdCBtYWtlcyB0aGUgcGFyc2VyIG5vbiBjb21wbGlhbnQgdG8gdGhlIFhNTCByZWNvbW1lbmRhdGlvbgorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworLyoKKyAqIFRPRE9zOgorICogICAtIFhNTCBTY2hlbWFzIHZhbGlkYXRpb24KKyAqLworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorI2luY2x1ZGUgPHN0cmluZy5oPiAvKiBmb3IgbWVtc2V0KCkgb25seSAhICovCisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKyNpZmRlZiBIQVZFX0NUWVBFX0gKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVERMSUJfSAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3htbElPLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHJlYWRlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3JlbGF4bmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hcy5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3hpbmNsdWRlLmg+CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3BhdHRlcm4uaD4KKyNlbmRpZgorCisjZGVmaW5lIE1BWF9FUlJfTVNHX1NJWkUgNjQwMDAKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgVkFfQ09QWSB3YXMgY29kZWQgZm9sbG93aW5nIGFuIGV4YW1wbGUgaW4KKyAqIHRoZSBTYW1iYSBwcm9qZWN0LiAgSXQgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBzb21lCisgKiBlc290ZXJpYyBpbXBsZW1lbnRhdGlvbnMgb2YgdmFfbGlzdCAoaS5lLiBpdCBtYXkgbmVlZAorICogc29tZXRoaW5nIGludm9sdmluZyBhIG1lbWNweSkgYnV0IChob3BlZnVsbHkpIHdpbGwgYmUKKyAqIHN1ZmZpY2llbnQgZm9yIGxpYnhtbDIuCisgKi8KKyNpZm5kZWYgVkFfQ09QWQorICAjaWZkZWYgSEFWRV9WQV9DT1BZCisgICAgI2RlZmluZSBWQV9DT1BZKGRlc3QsIHNyYykgdmFfY29weShkZXN0LCBzcmMpCisgICNlbHNlCisgICAgI2lmZGVmIEhBVkVfX19WQV9DT1BZCisgICAgICAjZGVmaW5lIFZBX0NPUFkoZGVzdCxzcmMpIF9fdmFfY29weShkZXN0LCBzcmMpCisgICAgI2Vsc2UKKyAgICAgICNkZWZpbmUgVkFfQ09QWShkZXN0LHNyYykgKGRlc3QpID0gKHNyYykKKyAgICAjZW5kaWYKKyAgI2VuZGlmCisjZW5kaWYKKworLyogI2RlZmluZSBERUJVR19DQUxMQkFDS1MgKi8KKy8qICNkZWZpbmUgREVCVUdfUkVBREVSICovCisKKy8qKgorICogVE9ETzoKKyAqCisgKiBtYWNybyB0byBmbGFnIHVuaW1wbGVtZW50ZWQgYmxvY2tzCisgKi8KKyNkZWZpbmUgVE9ETwkJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJVbmltcGxlbWVudGVkIGJsb2NrIGF0ICVzOiVkXG4iLAkJCQlcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworCisjaWZkZWYgREVCVUdfUkVBREVSCisjZGVmaW5lIERVTVBfUkVBREVSIHhtbFRleHRSZWFkZXJEZWJ1ZyhyZWFkZXIpOworI2Vsc2UKKyNkZWZpbmUgRFVNUF9SRUFERVIKKyNlbmRpZgorCisjZGVmaW5lIENIVU5LX1NJWkUgNTEyCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCVRoZSBwYXJzZXI6IG1hcHMgdGhlIFRleHQgUmVhZGVyIEFQSSBvbiB0b3Agb2YgdGhlIGV4aXN0aW5nCSoKKyAqCQlwYXJzaW5nIHJvdXRpbmVzIGJ1aWxkaW5nIGEgdHJlZQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBYTUxfVEVYVFJFQURFUl9JTlBVVAkxCisjZGVmaW5lIFhNTF9URVhUUkVBREVSX0NUWFQJMgorCit0eXBlZGVmIGVudW0geworICAgIFhNTF9URVhUUkVBREVSX05PTkUgPSAtMSwKKyAgICBYTUxfVEVYVFJFQURFUl9TVEFSVD0gMCwKKyAgICBYTUxfVEVYVFJFQURFUl9FTEVNRU5UPSAxLAorICAgIFhNTF9URVhUUkVBREVSX0VORD0gMiwKKyAgICBYTUxfVEVYVFJFQURFUl9FTVBUWT0gMywKKyAgICBYTUxfVEVYVFJFQURFUl9CQUNLVFJBQ0s9IDQsCisgICAgWE1MX1RFWFRSRUFERVJfRE9ORT0gNSwKKyAgICBYTUxfVEVYVFJFQURFUl9FUlJPUj0gNgorfSB4bWxUZXh0UmVhZGVyU3RhdGU7CisKK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1RFWFRSRUFERVJfTk9UX1ZBTElEQVRFID0gMCwKKyAgICBYTUxfVEVYVFJFQURFUl9WQUxJREFURV9EVEQgPSAxLAorICAgIFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX1JORyA9IDIsCisgICAgWE1MX1RFWFRSRUFERVJfVkFMSURBVEVfWFNEID0gNAorfSB4bWxUZXh0UmVhZGVyVmFsaWRhdGU7CisKK3N0cnVjdCBfeG1sVGV4dFJlYWRlciB7CisgICAgaW50CQkJCW1vZGU7CS8qIHRoZSBwYXJzaW5nIG1vZGUgKi8KKyAgICB4bWxEb2NQdHIJCQlkb2M7ICAgIC8qIHdoZW4gd2Fsa2luZyBhbiBleGlzdGluZyBkb2MgKi8KKyAgICB4bWxUZXh0UmVhZGVyVmFsaWRhdGUgICAgICAgdmFsaWRhdGU7LyogaXMgdGhlcmUgYW55IHZhbGlkYXRpb24gKi8KKyAgICBpbnQJCQkJYWxsb2NzOwkvKiB3aGF0IHN0cnVjdHVyZSB3ZXJlIGRlYWxsb2NhdGVkICovCisgICAgeG1sVGV4dFJlYWRlclN0YXRlCQlzdGF0ZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyCQljdHh0OwkvKiB0aGUgcGFyc2VyIGNvbnRleHQgKi8KKyAgICB4bWxTQVhIYW5kbGVyUHRyCQlzYXg7CS8qIHRoZSBwYXJzZXIgU0FYIGNhbGxiYWNrcyAqLworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyCWlucHV0OwkvKiB0aGUgaW5wdXQgKi8KKyAgICBzdGFydEVsZW1lbnRTQVhGdW5jCQlzdGFydEVsZW1lbnQ7LyogaW5pdGlhbCBTQVggY2FsbGJhY2tzICovCisgICAgZW5kRWxlbWVudFNBWEZ1bmMJCWVuZEVsZW1lbnQ7ICAvKiBpZGVtICovCisgICAgc3RhcnRFbGVtZW50TnNTQVgyRnVuYwlzdGFydEVsZW1lbnROczsvKiBpZGVtICovCisgICAgZW5kRWxlbWVudE5zU0FYMkZ1bmMJZW5kRWxlbWVudE5zOyAgLyogaWRlbSAqLworICAgIGNoYXJhY3RlcnNTQVhGdW5jCQljaGFyYWN0ZXJzOworICAgIGNkYXRhQmxvY2tTQVhGdW5jCQljZGF0YUJsb2NrOworICAgIHVuc2lnbmVkIGludAkJYmFzZTsJLyogYmFzZSBvZiB0aGUgc2VnbWVudCBpbiB0aGUgaW5wdXQgKi8KKyAgICB1bnNpZ25lZCBpbnQJCWN1cjsJLyogY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgKi8KKyAgICB4bWxOb2RlUHRyCQkJbm9kZTsJLyogY3VycmVudCBub2RlICovCisgICAgeG1sTm9kZVB0cgkJCWN1cm5vZGU7LyogY3VycmVudCBhdHRyaWJ1dGUgbm9kZSAqLworICAgIGludAkJCQlkZXB0aDsgIC8qIGRlcHRoIG9mIHRoZSBjdXJyZW50IG5vZGUgKi8KKyAgICB4bWxOb2RlUHRyCQkJZmFrZXRleHQ7LyogZmFrZSB4bWxOcyBjaGxkICovCisgICAgaW50CQkJCXByZXNlcnZlOy8qIHByZXNlcnZlIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgKi8KKyAgICB4bWxCdWZmZXJQdHIJCWJ1ZmZlcjsgLyogdXNlZCB0byByZXR1cm4gY29uc3QgeG1sQ2hhciAqICovCisgICAgeG1sRGljdFB0cgkJCWRpY3Q7CS8qIHRoZSBjb250ZXh0IGRpY3Rpb25uYXJ5ICovCisKKyAgICAvKiBlbnRpdHkgc3RhY2sgd2hlbiB0cmF2ZXJzaW5nIGVudGl0aWVzIGNvbnRlbnQgKi8KKyAgICB4bWxOb2RlUHRyICAgICAgICAgZW50OyAgICAgICAgICAvKiBDdXJyZW50IEVudGl0eSBSZWYgTm9kZSAqLworICAgIGludCAgICAgICAgICAgICAgICBlbnROcjsgICAgICAgIC8qIERlcHRoIG9mIHRoZSBlbnRpdGllcyBzdGFjayAqLworICAgIGludCAgICAgICAgICAgICAgICBlbnRNYXg7ICAgICAgIC8qIE1heCBkZXB0aCBvZiB0aGUgZW50aXRpZXMgc3RhY2sgKi8KKyAgICB4bWxOb2RlUHRyICAgICAgICAqZW50VGFiOyAgICAgICAvKiBhcnJheSBvZiBlbnRpdGllcyAqLworCisgICAgLyogZXJyb3IgaGFuZGxpbmcgKi8KKyAgICB4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIGVycm9yRnVuYzsgICAgLyogY2FsbGJhY2sgZnVuY3Rpb24gKi8KKyAgICB2b2lkICAgICAgICAgICAgICAgICAgKmVycm9yRnVuY0FyZzsgLyogY2FsbGJhY2sgZnVuY3Rpb24gdXNlciBhcmd1bWVudCAqLworCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIC8qIEhhbmRsaW5nIG9mIFJlbGF4TkcgdmFsaWRhdGlvbiAqLworICAgIHhtbFJlbGF4TkdQdHIgICAgICAgICAgcm5nU2NoZW1hczsJLyogVGhlIFJlbGF4IE5HIHNjaGVtYXMgKi8KKyAgICB4bWxSZWxheE5HVmFsaWRDdHh0UHRyIHJuZ1ZhbGlkQ3R4dDsvKiBUaGUgUmVsYXggTkcgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50ICAgICAgICAgICAgICAgICAgICBybmdWYWxpZEVycm9yczsvKiBUaGUgbnVtYmVyIG9mIGVycm9ycyBkZXRlY3RlZCAqLworICAgIHhtbE5vZGVQdHIgICAgICAgICAgICAgcm5nRnVsbE5vZGU7CS8qIHRoZSBub2RlIGlmIFJORyBub3QgcHJvZ3Jlc3NpdmUgKi8KKyAgICAvKiBIYW5kbGluZyBvZiBTY2hlbWFzIHZhbGlkYXRpb24gKi8KKyAgICB4bWxTY2hlbWFQdHIgICAgICAgICAgeHNkU2NoZW1hczsJLyogVGhlIFNjaGVtYXMgc2NoZW1hcyAqLworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB4c2RWYWxpZEN0eHQ7LyogVGhlIFNjaGVtYXMgdmFsaWRhdGlvbiBjb250ZXh0ICovCisgICAgaW50ICAgICAgICAgICAgICAgICAgIHhzZFByZXNlcnZlQ3R4dDsgLyogMSBpZiB0aGUgY29udGV4dCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgICAgeHNkVmFsaWRFcnJvcnM7LyogVGhlIG51bWJlciBvZiBlcnJvcnMgZGV0ZWN0ZWQgKi8KKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyICAgeHNkUGx1ZzsJLyogdGhlIHNjaGVtYXMgcGx1ZyBpbiBTQVggcGlwZWxpbmUgKi8KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECisgICAgLyogSGFuZGxpbmcgb2YgWEluY2x1ZGUgcHJvY2Vzc2luZyAqLworICAgIGludCAgICAgICAgICAgICAgICB4aW5jbHVkZTsJLyogaXMgeGluY2x1ZGUgYXNrZWQgZm9yICovCisgICAgY29uc3QgeG1sQ2hhciAqICAgIHhpbmNsdWRlX25hbWU7CS8qIHRoZSB4aW5jbHVkZSBuYW1lIGZyb20gZGljdCAqLworICAgIHhtbFhJbmNsdWRlQ3R4dFB0ciB4aW5jY3R4dDsJLyogdGhlIHhpbmNsdWRlIGNvbnRleHQgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgaW5feGluY2x1ZGU7CS8qIGNvdW50cyBmb3IgeGluY2x1ZGUgKi8KKyNlbmRpZgorI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyAgICBpbnQgICAgICAgICAgICAgICAgcGF0dGVybk5yOyAgICAgICAvKiBudW1iZXIgb2YgcHJlc2VydmUgcGF0dGVybnMgKi8KKyAgICBpbnQgICAgICAgICAgICAgICAgcGF0dGVybk1heDsgICAgICAvKiBtYXggcHJlc2VydmUgcGF0dGVybnMgKi8KKyAgICB4bWxQYXR0ZXJuUHRyICAgICAqcGF0dGVyblRhYjsgICAgICAvKiBhcnJheSBvZiBwcmVzZXJ2ZSBwYXR0ZXJucyAqLworI2VuZGlmCisgICAgaW50ICAgICAgICAgICAgICAgIHByZXNlcnZlczsJLyogbGV2ZWwgb2YgcHJlc2VydmVzICovCisgICAgaW50ICAgICAgICAgICAgICAgIHBhcnNlckZsYWdzOwkvKiB0aGUgc2V0IG9mIG9wdGlvbnMgc2V0ICovCisgICAgLyogU3RydWN0dXJlZCBlcnJvciBoYW5kbGluZyAqLworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc0Vycm9yRnVuYzsgIC8qIGNhbGxiYWNrIGZ1bmN0aW9uICovCit9OworCisjZGVmaW5lIE5PREVfSVNfRU1QVFkJCTB4MQorI2RlZmluZSBOT0RFX0lTX1BSRVNFUlZFRAkweDIKKyNkZWZpbmUgTk9ERV9JU19TUFJFU0VSVkVECTB4NAorCisvKioKKyAqIENPTlNUU1RSOgorICoKKyAqIE1hY3JvIHVzZWQgdG8gcmV0dXJuIGFuIGludGVybmVkIHN0cmluZworICovCisjZGVmaW5lIENPTlNUU1RSKHN0cikgeG1sRGljdExvb2t1cChyZWFkZXItPmRpY3QsIChzdHIpLCAtMSkKKyNkZWZpbmUgQ09OU1RRU1RSKHAsIHN0cikgeG1sRGljdFFMb29rdXAocmVhZGVyLT5kaWN0LCAocCksIChzdHIpKQorCitzdGF0aWMgaW50IHhtbFRleHRSZWFkZXJSZWFkVHJlZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CitzdGF0aWMgaW50IHhtbFRleHRSZWFkZXJOZXh0VHJlZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcik7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJT3VyIG93biB2ZXJzaW9uIG9mIHRoZSBmcmVlaW5nIHJvdXRpbmVzIGFzIHdlIHJlY3ljbGUgbm9kZXMJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBESUNUX0ZSRUU6CisgKiBAc3RyOiAgYSBzdHJpbmcKKyAqCisgKiBGcmVlIGEgc3RyaW5nIGlmIGl0IGlzIG5vdCBvd25lZCBieSB0aGUgImRpY3QiIGRpY3Rpb25uYXJ5IGluIHRoZQorICogY3VycmVudCBzY29wZQorICovCisjZGVmaW5lIERJQ1RfRlJFRShzdHIpCQkJCQkJXAorCWlmICgoc3RyKSAmJiAoKCFkaWN0KSB8fAkJCQlcCisJICAgICh4bWxEaWN0T3ducyhkaWN0LCAoY29uc3QgeG1sQ2hhciAqKShzdHIpKSA9PSAwKSkpCVwKKwkgICAgeG1sRnJlZSgoY2hhciAqKShzdHIpKTsKKworc3RhdGljIHZvaWQgeG1sVGV4dFJlYWRlckZyZWVOb2RlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCB4bWxOb2RlUHRyIGN1cik7CitzdGF0aWMgdm9pZCB4bWxUZXh0UmVhZGVyRnJlZU5vZGVMaXN0KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCB4bWxOb2RlUHRyIGN1cik7CisKKy8qKgorICogeG1sRnJlZUlEOgorICogQG5vdDogIEEgaWQKKyAqCisgKiBEZWFsbG9jYXRlIHRoZSBtZW1vcnkgdXNlZCBieSBhbiBpZCBkZWZpbml0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGcmVlSUQoeG1sSURQdHIgaWQpIHsKKyAgICB4bWxEaWN0UHRyIGRpY3QgPSBOVUxMOworCisgICAgaWYgKGlkID09IE5VTEwpIHJldHVybjsKKworICAgIGlmIChpZC0+ZG9jICE9IE5VTEwpCisgICAgICAgIGRpY3QgPSBpZC0+ZG9jLT5kaWN0OworCisgICAgaWYgKGlkLT52YWx1ZSAhPSBOVUxMKQorCURJQ1RfRlJFRShpZC0+dmFsdWUpCisgICAgeG1sRnJlZShpZCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclJlbW92ZUlEOgorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGF0dHI6ICB0aGUgYXR0cmlidXRlCisgKgorICogUmVtb3ZlIHRoZSBnaXZlbiBhdHRyaWJ1dGUgZnJvbSB0aGUgSUQgdGFibGUgbWFpbnRhaW5lZCBpbnRlcm5hbGx5LgorICoKKyAqIFJldHVybnMgLTEgaWYgdGhlIGxvb2t1cCBmYWlsZWQgYW5kIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFRleHRSZWFkZXJSZW1vdmVJRCh4bWxEb2NQdHIgZG9jLCB4bWxBdHRyUHRyIGF0dHIpIHsKKyAgICB4bWxJRFRhYmxlUHRyIHRhYmxlOworICAgIHhtbElEUHRyIGlkOworICAgIHhtbENoYXIgKklEOworCisgICAgaWYgKGRvYyA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChhdHRyID09IE5VTEwpIHJldHVybigtMSk7CisgICAgdGFibGUgPSAoeG1sSURUYWJsZVB0cikgZG9jLT5pZHM7CisgICAgaWYgKHRhYmxlID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICBJRCA9IHhtbE5vZGVMaXN0R2V0U3RyaW5nKGRvYywgYXR0ci0+Y2hpbGRyZW4sIDEpOworICAgIGlmIChJRCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWQgPSB4bWxIYXNoTG9va3VwKHRhYmxlLCBJRCk7CisgICAgeG1sRnJlZShJRCk7CisgICAgaWYgKGlkID09IE5VTEwgfHwgaWQtPmF0dHIgIT0gYXR0cikgeworCXJldHVybigtMSk7CisgICAgfQorICAgIGlkLT5uYW1lID0gYXR0ci0+bmFtZTsKKyAgICBpZC0+YXR0ciA9IE5VTEw7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJGcmVlUHJvcDoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAY3VyOiAgdGhlIG5vZGUKKyAqCisgKiBGcmVlIGEgbm9kZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFRleHRSZWFkZXJGcmVlUHJvcCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgeG1sQXR0clB0ciBjdXIpIHsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisKKyAgICBkaWN0ID0gcmVhZGVyLT5jdHh0LT5kaWN0OworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKChfX3htbFJlZ2lzdGVyQ2FsbGJhY2tzKSAmJiAoeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUpKQorCXhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKCh4bWxOb2RlUHRyKSBjdXIpOworCisgICAgLyogQ2hlY2sgZm9yIElEIHJlbW92YWwgLT4gbGVhZGluZyB0byBpbnZhbGlkIHJlZmVyZW5jZXMgISAqLworICAgIGlmICgoY3VyLT5wYXJlbnQgIT0gTlVMTCkgJiYgKGN1ci0+cGFyZW50LT5kb2MgIT0gTlVMTCkgJiYKKwkoKGN1ci0+cGFyZW50LT5kb2MtPmludFN1YnNldCAhPSBOVUxMKSB8fAorCSAoY3VyLT5wYXJlbnQtPmRvYy0+ZXh0U3Vic2V0ICE9IE5VTEwpKSkgeworICAgICAgICBpZiAoeG1sSXNJRChjdXItPnBhcmVudC0+ZG9jLCBjdXItPnBhcmVudCwgY3VyKSkKKwkgICAgeG1sVGV4dFJlYWRlclJlbW92ZUlEKGN1ci0+cGFyZW50LT5kb2MsIGN1cik7CisgICAgfQorICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpCisgICAgICAgIHhtbFRleHRSZWFkZXJGcmVlTm9kZUxpc3QocmVhZGVyLCBjdXItPmNoaWxkcmVuKTsKKworICAgIERJQ1RfRlJFRShjdXItPm5hbWUpOworICAgIGlmICgocmVhZGVyICE9IE5VTEwpICYmIChyZWFkZXItPmN0eHQgIT0gTlVMTCkgJiYKKyAgICAgICAgKHJlYWRlci0+Y3R4dC0+ZnJlZUF0dHJzTnIgPCAxMDApKSB7CisgICAgICAgIGN1ci0+bmV4dCA9IHJlYWRlci0+Y3R4dC0+ZnJlZUF0dHJzOworCXJlYWRlci0+Y3R4dC0+ZnJlZUF0dHJzID0gY3VyOworCXJlYWRlci0+Y3R4dC0+ZnJlZUF0dHJzTnIrKzsKKyAgICB9IGVsc2UgeworCXhtbEZyZWUoY3VyKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckZyZWVQcm9wTGlzdDoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAY3VyOiAgdGhlIGZpcnN0IHByb3BlcnR5IGluIHRoZSBsaXN0CisgKgorICogRnJlZSBhIHByb3BlcnR5IGFuZCBhbGwgaXRzIHNpYmxpbmdzLCBhbGwgdGhlIGNoaWxkcmVuIGFyZSBmcmVlZCB0b28uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyRnJlZVByb3BMaXN0KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCB4bWxBdHRyUHRyIGN1cikgeworICAgIHhtbEF0dHJQdHIgbmV4dDsKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgbmV4dCA9IGN1ci0+bmV4dDsKKyAgICAgICAgeG1sVGV4dFJlYWRlckZyZWVQcm9wKHJlYWRlciwgY3VyKTsKKwljdXIgPSBuZXh0OworICAgIH0KK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyRnJlZU5vZGVMaXN0OgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBjdXI6ICB0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgbGlzdAorICoKKyAqIEZyZWUgYSBub2RlIGFuZCBhbGwgaXRzIHNpYmxpbmdzLCB0aGlzIGlzIGEgcmVjdXJzaXZlIGJlaGF2aW91ciwgYWxsCisgKiB0aGUgY2hpbGRyZW4gYXJlIGZyZWVkIHRvby4KKyAqLworc3RhdGljIHZvaWQKK3htbFRleHRSZWFkZXJGcmVlTm9kZUxpc3QoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgeG1sTm9kZVB0ciBuZXh0OworICAgIHhtbERpY3RQdHIgZGljdDsKKworICAgIGRpY3QgPSByZWFkZXItPmN0eHQtPmRpY3Q7CisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwl4bWxGcmVlTnNMaXN0KCh4bWxOc1B0cikgY3VyKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorCShjdXItPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpIHsKKwl4bWxGcmVlRG9jKCh4bWxEb2NQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKyAgICAgICAgbmV4dCA9IGN1ci0+bmV4dDsKKwkvKiB1bnJvbGwgdG8gc3BlZWQgdXAgZnJlZWluZyB0aGUgZG9jdW1lbnQgKi8KKwlpZiAoY3VyLT50eXBlICE9IFhNTF9EVERfTk9ERSkgeworCisJICAgIGlmICgoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCQkoY3VyLT50eXBlICE9IFhNTF9FTlRJVFlfUkVGX05PREUpKSB7CisJCWlmIChjdXItPmNoaWxkcmVuLT5wYXJlbnQgPT0gY3VyKQorCQkgICAgeG1sVGV4dFJlYWRlckZyZWVOb2RlTGlzdChyZWFkZXIsIGN1ci0+Y2hpbGRyZW4pOworCQljdXItPmNoaWxkcmVuID0gTlVMTDsKKwkgICAgfQorCisJICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwkJeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoY3VyKTsKKworCSAgICBpZiAoKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKwkJIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX1NUQVJUKSB8fAorCQkgKGN1ci0+dHlwZSA9PSBYTUxfWElOQ0xVREVfRU5EKSkgJiYKKwkJKGN1ci0+cHJvcGVydGllcyAhPSBOVUxMKSkKKwkJeG1sVGV4dFJlYWRlckZyZWVQcm9wTGlzdChyZWFkZXIsIGN1ci0+cHJvcGVydGllcyk7CisJICAgIGlmICgoY3VyLT5jb250ZW50ICE9ICh4bWxDaGFyICopICYoY3VyLT5wcm9wZXJ0aWVzKSkgJiYKKwkgICAgICAgIChjdXItPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkJKGN1ci0+dHlwZSAhPSBYTUxfWElOQ0xVREVfU1RBUlQpICYmCisJCShjdXItPnR5cGUgIT0gWE1MX1hJTkNMVURFX0VORCkgJiYKKwkJKGN1ci0+dHlwZSAhPSBYTUxfRU5USVRZX1JFRl9OT0RFKSkgeworCQlESUNUX0ZSRUUoY3VyLT5jb250ZW50KTsKKwkgICAgfQorCSAgICBpZiAoKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwKKwkgICAgICAgICAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkgfHwKKwkJIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX0VORCkpICYmCisJCShjdXItPm5zRGVmICE9IE5VTEwpKQorCQl4bWxGcmVlTnNMaXN0KGN1ci0+bnNEZWYpOworCisJICAgIC8qCisJICAgICAqIHdlIGRvbid0IGZyZWUgZWxlbWVudCBuYW1lcyBoZXJlIHRoZXkgYXJlIGludGVybmVkIG5vdworCSAgICAgKi8KKwkgICAgaWYgKChjdXItPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkgJiYKKwkJKGN1ci0+dHlwZSAhPSBYTUxfQ09NTUVOVF9OT0RFKSkKKwkJRElDVF9GUkVFKGN1ci0+bmFtZSk7CisJICAgIGlmICgoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCQkgKGN1ci0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSkgJiYKKwkgICAgICAgIChyZWFkZXIgIT0gTlVMTCkgJiYgKHJlYWRlci0+Y3R4dCAhPSBOVUxMKSAmJgorCQkocmVhZGVyLT5jdHh0LT5mcmVlRWxlbXNOciA8IDEwMCkpIHsKKwkgICAgICAgIGN1ci0+bmV4dCA9IHJlYWRlci0+Y3R4dC0+ZnJlZUVsZW1zOworCQlyZWFkZXItPmN0eHQtPmZyZWVFbGVtcyA9IGN1cjsKKwkJcmVhZGVyLT5jdHh0LT5mcmVlRWxlbXNOcisrOworCSAgICB9IGVsc2UgeworCQl4bWxGcmVlKGN1cik7CisJICAgIH0KKwl9CisJY3VyID0gbmV4dDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckZyZWVOb2RlOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBjdXI6ICB0aGUgbm9kZQorICoKKyAqIEZyZWUgYSBub2RlLCB0aGlzIGlzIGEgcmVjdXJzaXZlIGJlaGF2aW91ciwgYWxsIHRoZSBjaGlsZHJlbiBhcmUgZnJlZWQgdG9vLgorICogVGhpcyBkb2Vzbid0IHVubGluayB0aGUgY2hpbGQgZnJvbSB0aGUgbGlzdCwgdXNlIHhtbFVubGlua05vZGUoKSBmaXJzdC4KKyAqLworc3RhdGljIHZvaWQKK3htbFRleHRSZWFkZXJGcmVlTm9kZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICB4bWxEaWN0UHRyIGRpY3Q7CisKKyAgICBkaWN0ID0gcmVhZGVyLT5jdHh0LT5kaWN0OworICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0RURF9OT0RFKSB7CisJeG1sRnJlZUR0ZCgoeG1sRHRkUHRyKSBjdXIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwl4bWxGcmVlTnMoKHhtbE5zUHRyKSBjdXIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJeG1sVGV4dFJlYWRlckZyZWVQcm9wKHJlYWRlciwgKHhtbEF0dHJQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKworICAgIGlmICgoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCShjdXItPnR5cGUgIT0gWE1MX0VOVElUWV9SRUZfTk9ERSkpIHsKKwlpZiAoY3VyLT5jaGlsZHJlbi0+cGFyZW50ID09IGN1cikKKwkgICAgeG1sVGV4dFJlYWRlckZyZWVOb2RlTGlzdChyZWFkZXIsIGN1ci0+Y2hpbGRyZW4pOworCWN1ci0+Y2hpbGRyZW4gPSBOVUxMOworICAgIH0KKworICAgIGlmICgoX194bWxSZWdpc3RlckNhbGxiYWNrcykgJiYgKHhtbERlcmVnaXN0ZXJOb2RlRGVmYXVsdFZhbHVlKSkKKwl4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZShjdXIpOworCisgICAgaWYgKCgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX1NUQVJUKSB8fAorCSAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9FTkQpKSAmJgorCShjdXItPnByb3BlcnRpZXMgIT0gTlVMTCkpCisJeG1sVGV4dFJlYWRlckZyZWVQcm9wTGlzdChyZWFkZXIsIGN1ci0+cHJvcGVydGllcyk7CisgICAgaWYgKChjdXItPmNvbnRlbnQgIT0gKHhtbENoYXIgKikgJihjdXItPnByb3BlcnRpZXMpKSAmJgorICAgICAgICAoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisJKGN1ci0+dHlwZSAhPSBYTUxfWElOQ0xVREVfU1RBUlQpICYmCisJKGN1ci0+dHlwZSAhPSBYTUxfWElOQ0xVREVfRU5EKSAmJgorCShjdXItPnR5cGUgIT0gWE1MX0VOVElUWV9SRUZfTk9ERSkpIHsKKwlESUNUX0ZSRUUoY3VyLT5jb250ZW50KTsKKyAgICB9CisgICAgaWYgKCgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJIChjdXItPnR5cGUgPT0gWE1MX1hJTkNMVURFX1NUQVJUKSB8fAorCSAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9FTkQpKSAmJgorCShjdXItPm5zRGVmICE9IE5VTEwpKQorCXhtbEZyZWVOc0xpc3QoY3VyLT5uc0RlZik7CisKKyAgICAvKgorICAgICAqIHdlIGRvbid0IGZyZWUgbmFtZXMgaGVyZSB0aGV5IGFyZSBpbnRlcm5lZCBub3cKKyAgICAgKi8KKyAgICBpZiAoKGN1ci0+dHlwZSAhPSBYTUxfVEVYVF9OT0RFKSAmJgorICAgICAgICAoY3VyLT50eXBlICE9IFhNTF9DT01NRU5UX05PREUpKQorCURJQ1RfRlJFRShjdXItPm5hbWUpOworCisgICAgaWYgKCgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJIChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkpICYmCisJKHJlYWRlciAhPSBOVUxMKSAmJiAocmVhZGVyLT5jdHh0ICE9IE5VTEwpICYmCisJKHJlYWRlci0+Y3R4dC0+ZnJlZUVsZW1zTnIgPCAxMDApKSB7CisJY3VyLT5uZXh0ID0gcmVhZGVyLT5jdHh0LT5mcmVlRWxlbXM7CisJcmVhZGVyLT5jdHh0LT5mcmVlRWxlbXMgPSBjdXI7CisJcmVhZGVyLT5jdHh0LT5mcmVlRWxlbXNOcisrOworICAgIH0gZWxzZSB7CisJeG1sRnJlZShjdXIpOworICAgIH0KK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyRnJlZUlEVGFibGU6CisgKiBAdGFibGU6ICBBbiBpZCB0YWJsZQorICoKKyAqIERlYWxsb2NhdGUgdGhlIG1lbW9yeSB1c2VkIGJ5IGFuIElEIGhhc2ggdGFibGUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyRnJlZUlEVGFibGUoeG1sSURUYWJsZVB0ciB0YWJsZSkgeworICAgIHhtbEhhc2hGcmVlKHRhYmxlLCAoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxGcmVlSUQpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJGcmVlRG9jOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBjdXI6ICBwb2ludGVyIHRvIHRoZSBkb2N1bWVudAorICoKKyAqIEZyZWUgdXAgYWxsIHRoZSBzdHJ1Y3R1cmVzIHVzZWQgYnkgYSBkb2N1bWVudCwgdHJlZSBpbmNsdWRlZC4KKyAqLworc3RhdGljIHZvaWQKK3htbFRleHRSZWFkZXJGcmVlRG9jKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCB4bWxEb2NQdHIgY3VyKSB7CisgICAgeG1sRHRkUHRyIGV4dFN1YnNldCwgaW50U3Vic2V0OworCisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm47CisKKyAgICBpZiAoKF9feG1sUmVnaXN0ZXJDYWxsYmFja3MpICYmICh4bWxEZXJlZ2lzdGVyTm9kZURlZmF1bHRWYWx1ZSkpCisJeG1sRGVyZWdpc3Rlck5vZGVEZWZhdWx0VmFsdWUoKHhtbE5vZGVQdHIpIGN1cik7CisKKyAgICAvKgorICAgICAqIERvIHRoaXMgYmVmb3JlIGZyZWVpbmcgdGhlIGNoaWxkcmVuIGxpc3QgdG8gYXZvaWQgSUQgbG9va3VwcworICAgICAqLworICAgIGlmIChjdXItPmlkcyAhPSBOVUxMKSB4bWxUZXh0UmVhZGVyRnJlZUlEVGFibGUoKHhtbElEVGFibGVQdHIpIGN1ci0+aWRzKTsKKyAgICBjdXItPmlkcyA9IE5VTEw7CisgICAgaWYgKGN1ci0+cmVmcyAhPSBOVUxMKSB4bWxGcmVlUmVmVGFibGUoKHhtbFJlZlRhYmxlUHRyKSBjdXItPnJlZnMpOworICAgIGN1ci0+cmVmcyA9IE5VTEw7CisgICAgZXh0U3Vic2V0ID0gY3VyLT5leHRTdWJzZXQ7CisgICAgaW50U3Vic2V0ID0gY3VyLT5pbnRTdWJzZXQ7CisgICAgaWYgKGludFN1YnNldCA9PSBleHRTdWJzZXQpCisJZXh0U3Vic2V0ID0gTlVMTDsKKyAgICBpZiAoZXh0U3Vic2V0ICE9IE5VTEwpIHsKKwl4bWxVbmxpbmtOb2RlKCh4bWxOb2RlUHRyKSBjdXItPmV4dFN1YnNldCk7CisJY3VyLT5leHRTdWJzZXQgPSBOVUxMOworCXhtbEZyZWVEdGQoZXh0U3Vic2V0KTsKKyAgICB9CisgICAgaWYgKGludFN1YnNldCAhPSBOVUxMKSB7CisJeG1sVW5saW5rTm9kZSgoeG1sTm9kZVB0cikgY3VyLT5pbnRTdWJzZXQpOworCWN1ci0+aW50U3Vic2V0ID0gTlVMTDsKKwl4bWxGcmVlRHRkKGludFN1YnNldCk7CisgICAgfQorCisgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeG1sVGV4dFJlYWRlckZyZWVOb2RlTGlzdChyZWFkZXIsIGN1ci0+Y2hpbGRyZW4pOworCisgICAgaWYgKGN1ci0+dmVyc2lvbiAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGN1ci0+dmVyc2lvbik7CisgICAgaWYgKGN1ci0+bmFtZSAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGN1ci0+bmFtZSk7CisgICAgaWYgKGN1ci0+ZW5jb2RpbmcgIT0gTlVMTCkgeG1sRnJlZSgoY2hhciAqKSBjdXItPmVuY29kaW5nKTsKKyAgICBpZiAoY3VyLT5vbGROcyAhPSBOVUxMKSB4bWxGcmVlTnNMaXN0KGN1ci0+b2xkTnMpOworICAgIGlmIChjdXItPlVSTCAhPSBOVUxMKSB4bWxGcmVlKChjaGFyICopIGN1ci0+VVJMKTsKKyAgICBpZiAoY3VyLT5kaWN0ICE9IE5VTEwpIHhtbERpY3RGcmVlKGN1ci0+ZGljdCk7CisKKyAgICB4bWxGcmVlKGN1cik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlUaGUgcmVhZGVyIGNvcmUgcGFyc2VyCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZmRlZiBERUJVR19SRUFERVIKK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyRGVidWcoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5jdHh0ID09IE5VTEwpKSB7CisJZnByaW50ZihzdGRlcnIsICJ4bWxUZXh0UmVhZGVyIE5VTExcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgZnByaW50ZihzdGRlcnIsICJ4bWxUZXh0UmVhZGVyOiBzdGF0ZSAlZCBkZXB0aCAlZCAiLAorCSAgICByZWFkZXItPnN0YXRlLCByZWFkZXItPmRlcHRoKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpIHsKKwlmcHJpbnRmKHN0ZGVyciwgIm5vZGUgPSBOVUxMXG4iKTsKKyAgICB9IGVsc2UgeworCWZwcmludGYoc3RkZXJyLCAibm9kZSAlc1xuIiwgcmVhZGVyLT5ub2RlLT5uYW1lKTsKKyAgICB9CisgICAgZnByaW50ZihzdGRlcnIsICIgIGlucHV0OiBiYXNlICVkLCBjdXIgJWQsIGRlcHRoICVkOiAiLAorCSAgICByZWFkZXItPmJhc2UsIHJlYWRlci0+Y3VyLCByZWFkZXItPmN0eHQtPm5vZGVOcik7CisgICAgaWYgKHJlYWRlci0+aW5wdXQtPmJ1ZmZlciA9PSBOVUxMKSB7CisJZnByaW50ZihzdGRlcnIsICJidWZmZXIgaXMgTlVMTFxuIik7CisgICAgfSBlbHNlIHsKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorCXhtbERlYnVnRHVtcFN0cmluZyhzdGRlcnIsCisJCSZyZWFkZXItPmlucHV0LT5idWZmZXItPmNvbnRlbnRbcmVhZGVyLT5jdXJdKTsKKyNlbmRpZgorCWZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICB9Cit9CisjZW5kaWYKKworLyoqCisgKiB4bWxUZXh0UmVhZGVyRW50UHVzaDoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAdmFsdWU6ICB0aGUgZW50aXR5IHJlZmVyZW5jZSBub2RlCisgKgorICogUHVzaGVzIGEgbmV3IGVudGl0eSByZWZlcmVuY2Ugbm9kZSBvbiB0b3Agb2YgdGhlIGVudGl0aWVzIHN0YWNrCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2YgZXJyb3IsIHRoZSBpbmRleCBpbiB0aGUgc3RhY2sgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFRleHRSZWFkZXJFbnRQdXNoKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCB4bWxOb2RlUHRyIHZhbHVlKQoreworICAgIGlmIChyZWFkZXItPmVudE1heCA8PSAwKSB7CisJcmVhZGVyLT5lbnRNYXggPSAxMDsKKwlyZWFkZXItPmVudFRhYiA9ICh4bWxOb2RlUHRyICopIHhtbE1hbGxvYyhyZWFkZXItPmVudE1heCAqCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocmVhZGVyLT5lbnRUYWJbMF0pKTsKKyAgICAgICAgaWYgKHJlYWRlci0+ZW50VGFiID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAieG1sTWFsbG9jIGZhaWxlZCAhXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHJlYWRlci0+ZW50TnIgPj0gcmVhZGVyLT5lbnRNYXgpIHsKKyAgICAgICAgcmVhZGVyLT5lbnRNYXggKj0gMjsKKyAgICAgICAgcmVhZGVyLT5lbnRUYWIgPQorICAgICAgICAgICAgKHhtbE5vZGVQdHIgKikgeG1sUmVhbGxvYyhyZWFkZXItPmVudFRhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLT5lbnRNYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocmVhZGVyLT5lbnRUYWJbMF0pKTsKKyAgICAgICAgaWYgKHJlYWRlci0+ZW50VGFiID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAieG1sUmVhbGxvYyBmYWlsZWQgIVxuIik7CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICB9CisgICAgfQorICAgIHJlYWRlci0+ZW50VGFiW3JlYWRlci0+ZW50TnJdID0gdmFsdWU7CisgICAgcmVhZGVyLT5lbnQgPSB2YWx1ZTsKKyAgICByZXR1cm4gKHJlYWRlci0+ZW50TnIrKyk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckVudFBvcDoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogUG9wcyB0aGUgdG9wIGVsZW1lbnQgZW50aXR5IGZyb20gdGhlIGVudGl0aWVzIHN0YWNrCisgKgorICogUmV0dXJucyB0aGUgZW50aXR5IGp1c3QgcmVtb3ZlZAorICovCitzdGF0aWMgeG1sTm9kZVB0cgoreG1sVGV4dFJlYWRlckVudFBvcCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikKK3sKKyAgICB4bWxOb2RlUHRyIHJldDsKKworICAgIGlmIChyZWFkZXItPmVudE5yIDw9IDApCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgcmVhZGVyLT5lbnROci0tOworICAgIGlmIChyZWFkZXItPmVudE5yID4gMCkKKyAgICAgICAgcmVhZGVyLT5lbnQgPSByZWFkZXItPmVudFRhYltyZWFkZXItPmVudE5yIC0gMV07CisgICAgZWxzZQorICAgICAgICByZWFkZXItPmVudCA9IE5VTEw7CisgICAgcmV0ID0gcmVhZGVyLT5lbnRUYWJbcmVhZGVyLT5lbnROcl07CisgICAgcmVhZGVyLT5lbnRUYWJbcmVhZGVyLT5lbnROcl0gPSBOVUxMOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyU3RhcnRFbGVtZW50OgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQGZ1bGxuYW1lOiAgVGhlIGVsZW1lbnQgbmFtZSwgaW5jbHVkaW5nIG5hbWVzcGFjZSBwcmVmaXgKKyAqIEBhdHRzOiAgQW4gYXJyYXkgb2YgbmFtZS92YWx1ZSBhdHRyaWJ1dGVzIHBhaXJzLCBOVUxMIHRlcm1pbmF0ZWQKKyAqCisgKiBjYWxsZWQgd2hlbiBhbiBvcGVuaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyU3RhcnRFbGVtZW50KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqZnVsbG5hbWUsCisJICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqKmF0dHMpIHsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyID0gY3R4dC0+X3ByaXZhdGU7CisKKyNpZmRlZiBERUJVR19DQUxMQkFDS1MKKyAgICBwcmludGYoInhtbFRleHRSZWFkZXJTdGFydEVsZW1lbnQoJXMpXG4iLCBmdWxsbmFtZSk7CisjZW5kaWYKKyAgICBpZiAoKHJlYWRlciAhPSBOVUxMKSAmJiAocmVhZGVyLT5zdGFydEVsZW1lbnQgIT0gTlVMTCkpIHsKKwlyZWFkZXItPnN0YXJ0RWxlbWVudChjdHgsIGZ1bGxuYW1lLCBhdHRzKTsKKwlpZiAoKGN0eHQtPm5vZGUgIT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmCisJICAgIChjdHh0LT5pbnB1dC0+Y3VyICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dC0+Y3VyWzBdID09ICcvJykgJiYKKwkgICAgKGN0eHQtPmlucHV0LT5jdXJbMV0gPT0gJz4nKSkKKwkgICAgY3R4dC0+bm9kZS0+ZXh0cmEgPSBOT0RFX0lTX0VNUFRZOworICAgIH0KKyAgICBpZiAocmVhZGVyICE9IE5VTEwpCisJcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0VMRU1FTlQ7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckVuZEVsZW1lbnQ6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAZnVsbG5hbWU6ICBUaGUgZWxlbWVudCBuYW1lLCBpbmNsdWRpbmcgbmFtZXNwYWNlIHByZWZpeAorICoKKyAqIGNhbGxlZCB3aGVuIGFuIGVuZGluZyB0YWcgaGFzIGJlZW4gcHJvY2Vzc2VkLgorICovCitzdGF0aWMgdm9pZAoreG1sVGV4dFJlYWRlckVuZEVsZW1lbnQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpmdWxsbmFtZSkgeworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXIgPSBjdHh0LT5fcHJpdmF0ZTsKKworI2lmZGVmIERFQlVHX0NBTExCQUNLUworICAgIHByaW50ZigieG1sVGV4dFJlYWRlckVuZEVsZW1lbnQoJXMpXG4iLCBmdWxsbmFtZSk7CisjZW5kaWYKKyAgICBpZiAoKHJlYWRlciAhPSBOVUxMKSAmJiAocmVhZGVyLT5lbmRFbGVtZW50ICE9IE5VTEwpKSB7CisJcmVhZGVyLT5lbmRFbGVtZW50KGN0eCwgZnVsbG5hbWUpOworICAgIH0KK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyU3RhcnRFbGVtZW50TnM6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAbG9jYWxuYW1lOiAgdGhlIGxvY2FsIG5hbWUgb2YgdGhlIGVsZW1lbnQKKyAqIEBwcmVmaXg6ICB0aGUgZWxlbWVudCBuYW1lc3BhY2UgcHJlZml4IGlmIGF2YWlsYWJsZQorICogQFVSSTogIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBuYW1lIGlmIGF2YWlsYWJsZQorICogQG5iX25hbWVzcGFjZXM6ICBudW1iZXIgb2YgbmFtZXNwYWNlIGRlZmluaXRpb25zIG9uIHRoYXQgbm9kZQorICogQG5hbWVzcGFjZXM6ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiBwcmVmaXgvVVJJIHBhaXJzIG5hbWVzcGFjZSBkZWZpbml0aW9ucworICogQG5iX2F0dHJpYnV0ZXM6ICB0aGUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMgb24gdGhhdCBub2RlCisgKiBuYl9kZWZhdWx0ZWQ6ICB0aGUgbnVtYmVyIG9mIGRlZmF1bHRlZCBhdHRyaWJ1dGVzLgorICogQGF0dHJpYnV0ZXM6ICBwb2ludGVyIHRvIHRoZSBhcnJheSBvZiAobG9jYWxuYW1lL3ByZWZpeC9VUkkvdmFsdWUvZW5kKQorICogICAgICAgICAgICAgICBhdHRyaWJ1dGUgdmFsdWVzLgorICoKKyAqIGNhbGxlZCB3aGVuIGFuIG9wZW5pbmcgdGFnIGhhcyBiZWVuIHByb2Nlc3NlZC4KKyAqLworc3RhdGljIHZvaWQKK3htbFRleHRSZWFkZXJTdGFydEVsZW1lbnROcyh2b2lkICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqbG9jYWxuYW1lLAorCQkgICAgICBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCSAgICAgIGNvbnN0IHhtbENoYXIgKlVSSSwKKwkJICAgICAgaW50IG5iX25hbWVzcGFjZXMsCisJCSAgICAgIGNvbnN0IHhtbENoYXIgKipuYW1lc3BhY2VzLAorCQkgICAgICBpbnQgbmJfYXR0cmlidXRlcywKKwkJICAgICAgaW50IG5iX2RlZmF1bHRlZCwKKwkJICAgICAgY29uc3QgeG1sQ2hhciAqKmF0dHJpYnV0ZXMpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciA9IGN0eHQtPl9wcml2YXRlOworCisjaWZkZWYgREVCVUdfQ0FMTEJBQ0tTCisgICAgcHJpbnRmKCJ4bWxUZXh0UmVhZGVyU3RhcnRFbGVtZW50TnMoJXMpXG4iLCBsb2NhbG5hbWUpOworI2VuZGlmCisgICAgaWYgKChyZWFkZXIgIT0gTlVMTCkgJiYgKHJlYWRlci0+c3RhcnRFbGVtZW50TnMgIT0gTlVMTCkpIHsKKwlyZWFkZXItPnN0YXJ0RWxlbWVudE5zKGN0eCwgbG9jYWxuYW1lLCBwcmVmaXgsIFVSSSwgbmJfbmFtZXNwYWNlcywKKwkgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZXMsIG5iX2F0dHJpYnV0ZXMsIG5iX2RlZmF1bHRlZCwKKwkJCSAgICAgICBhdHRyaWJ1dGVzKTsKKwlpZiAoKGN0eHQtPm5vZGUgIT0gTlVMTCkgJiYgKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmCisJICAgIChjdHh0LT5pbnB1dC0+Y3VyICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dC0+Y3VyWzBdID09ICcvJykgJiYKKwkgICAgKGN0eHQtPmlucHV0LT5jdXJbMV0gPT0gJz4nKSkKKwkgICAgY3R4dC0+bm9kZS0+ZXh0cmEgPSBOT0RFX0lTX0VNUFRZOworICAgIH0KKyAgICBpZiAocmVhZGVyICE9IE5VTEwpCisJcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0VMRU1FTlQ7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckVuZEVsZW1lbnROczoKKyAqIEBjdHg6IHRoZSB1c2VyIGRhdGEgKFhNTCBwYXJzZXIgY29udGV4dCkKKyAqIEBsb2NhbG5hbWU6ICB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgZWxlbWVudAorICogQHByZWZpeDogIHRoZSBlbGVtZW50IG5hbWVzcGFjZSBwcmVmaXggaWYgYXZhaWxhYmxlCisgKiBAVVJJOiAgdGhlIGVsZW1lbnQgbmFtZXNwYWNlIG5hbWUgaWYgYXZhaWxhYmxlCisgKgorICogY2FsbGVkIHdoZW4gYW4gZW5kaW5nIHRhZyBoYXMgYmVlbiBwcm9jZXNzZWQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyRW5kRWxlbWVudE5zKHZvaWQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGxvY2FsbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHByZWZpeCwKKwkJICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBVUkkpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciA9IGN0eHQtPl9wcml2YXRlOworCisjaWZkZWYgREVCVUdfQ0FMTEJBQ0tTCisgICAgcHJpbnRmKCJ4bWxUZXh0UmVhZGVyRW5kRWxlbWVudE5zKCVzKVxuIiwgbG9jYWxuYW1lKTsKKyNlbmRpZgorICAgIGlmICgocmVhZGVyICE9IE5VTEwpICYmIChyZWFkZXItPmVuZEVsZW1lbnROcyAhPSBOVUxMKSkgeworCXJlYWRlci0+ZW5kRWxlbWVudE5zKGN0eCwgbG9jYWxuYW1lLCBwcmVmaXgsIFVSSSk7CisgICAgfQorfQorCisKKy8qKgorICogeG1sVGV4dFJlYWRlckNoYXJhY3RlcnM6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKiBAY2g6ICBhIHhtbENoYXIgc3RyaW5nCisgKiBAbGVuOiB0aGUgbnVtYmVyIG9mIHhtbENoYXIKKyAqCisgKiByZWNlaXZpbmcgc29tZSBjaGFycyBmcm9tIHRoZSBwYXJzZXIuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyQ2hhcmFjdGVycyh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKmNoLCBpbnQgbGVuKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjdHg7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXIgPSBjdHh0LT5fcHJpdmF0ZTsKKworI2lmZGVmIERFQlVHX0NBTExCQUNLUworICAgIHByaW50ZigieG1sVGV4dFJlYWRlckNoYXJhY3RlcnMoKVxuIik7CisjZW5kaWYKKyAgICBpZiAoKHJlYWRlciAhPSBOVUxMKSAmJiAocmVhZGVyLT5jaGFyYWN0ZXJzICE9IE5VTEwpKSB7CisJcmVhZGVyLT5jaGFyYWN0ZXJzKGN0eCwgY2gsIGxlbik7CisgICAgfQorfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJDRGF0YUJsb2NrOgorICogQGN0eDogdGhlIHVzZXIgZGF0YSAoWE1MIHBhcnNlciBjb250ZXh0KQorICogQHZhbHVlOiAgVGhlIHBjZGF0YSBjb250ZW50CisgKiBAbGVuOiAgdGhlIGJsb2NrIGxlbmd0aAorICoKKyAqIGNhbGxlZCB3aGVuIGEgcGNkYXRhIGJsb2NrIGhhcyBiZWVuIHBhcnNlZAorICovCitzdGF0aWMgdm9pZAoreG1sVGV4dFJlYWRlckNEYXRhQmxvY2sodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpjaCwgaW50IGxlbikKK3sKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4OworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyID0gY3R4dC0+X3ByaXZhdGU7CisKKyNpZmRlZiBERUJVR19DQUxMQkFDS1MKKyAgICBwcmludGYoInhtbFRleHRSZWFkZXJDRGF0YUJsb2NrKClcbiIpOworI2VuZGlmCisgICAgaWYgKChyZWFkZXIgIT0gTlVMTCkgJiYgKHJlYWRlci0+Y2RhdGFCbG9jayAhPSBOVUxMKSkgeworCXJlYWRlci0+Y2RhdGFCbG9jayhjdHgsIGNoLCBsZW4pOworICAgIH0KK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyUHVzaERhdGE6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFB1c2ggZGF0YSBkb3duIHRoZSBwcm9ncmVzc2l2ZSBwYXJzZXIgdW50aWwgYSBzaWduaWZpY2FudCBjYWxsYmFjaworICogZ290IHJhaXNlZC4KKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sVGV4dFJlYWRlclB1c2hEYXRhKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgeG1sQnVmZmVyUHRyIGluYnVmOworICAgIGludCB2YWwsIHM7CisgICAgeG1sVGV4dFJlYWRlclN0YXRlIG9sZHN0YXRlOworCisgICAgaWYgKChyZWFkZXItPmlucHV0ID09IE5VTEwpIHx8IChyZWFkZXItPmlucHV0LT5idWZmZXIgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKworICAgIG9sZHN0YXRlID0gcmVhZGVyLT5zdGF0ZTsKKyAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfTk9ORTsKKyAgICBpbmJ1ZiA9IHJlYWRlci0+aW5wdXQtPmJ1ZmZlcjsKKworICAgIHdoaWxlIChyZWFkZXItPnN0YXRlID09IFhNTF9URVhUUkVBREVSX05PTkUpIHsKKwlpZiAoaW5idWYtPnVzZSA8IHJlYWRlci0+Y3VyICsgQ0hVTktfU0laRSkgeworCSAgICAvKgorCSAgICAgKiBSZWZpbGwgdGhlIGJ1ZmZlciB1bmxlc3Mgd2UgYXJlIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmVhbQorCSAgICAgKi8KKwkgICAgaWYgKHJlYWRlci0+bW9kZSAhPSBYTUxfVEVYVFJFQURFUl9NT0RFX0VPRikgeworCQl2YWwgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlclJlYWQocmVhZGVyLT5pbnB1dCwgNDA5Nik7CisJCWlmICgodmFsID09IDApICYmCisJCSAgICAoaW5idWYtPmFsbG9jID09IFhNTF9CVUZGRVJfQUxMT0NfSU1NVVRBQkxFKSkgeworCQkgICAgaWYgKGluYnVmLT51c2UgPT0gcmVhZGVyLT5jdXIpIHsKKwkJCXJlYWRlci0+bW9kZSA9IFhNTF9URVhUUkVBREVSX01PREVfRU9GOworCQkJcmVhZGVyLT5zdGF0ZSA9IG9sZHN0YXRlOworCQkgICAgfQorCQl9IGVsc2UgaWYgKHZhbCA8IDApIHsKKwkJICAgIHJlYWRlci0+bW9kZSA9IFhNTF9URVhUUkVBREVSX01PREVfRU9GOworCQkgICAgcmVhZGVyLT5zdGF0ZSA9IG9sZHN0YXRlOworCQkgICAgaWYgKChvbGRzdGF0ZSAhPSBYTUxfVEVYVFJFQURFUl9TVEFSVCkgfHwKKwkJCShyZWFkZXItPmN0eHQtPm15RG9jICE9IE5VTEwpKQorCQkJcmV0dXJuKHZhbCk7CisJCX0gZWxzZSBpZiAodmFsID09IDApIHsKKwkJICAgIC8qIG1hcmsgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIGFuZCBwcm9jZXNzIHRoZSByZW1haW5zICovCisJCSAgICByZWFkZXItPm1vZGUgPSBYTUxfVEVYVFJFQURFUl9NT0RFX0VPRjsKKwkJICAgIGJyZWFrOworCQl9CisKKwkgICAgfSBlbHNlCisJCWJyZWFrOworCX0KKwkvKgorCSAqIHBhcnNlIGJ5IGJsb2NrIG9mIENIVU5LX1NJWkUgYnl0ZXMsIHZhcmlvdXMgdGVzdHMgc2hvdyB0aGF0CisJICogaXQncyB0aGUgYmVzdCB0cmFkZW9mZiBhdCBsZWFzdCBvbiBhIDEuMkdIIER1cm9uCisJICovCisJaWYgKGluYnVmLT51c2UgPj0gcmVhZGVyLT5jdXIgKyBDSFVOS19TSVpFKSB7CisJICAgIHZhbCA9IHhtbFBhcnNlQ2h1bmsocmVhZGVyLT5jdHh0LAorCQkgICAgICAgICAgKGNvbnN0IGNoYXIgKikgJmluYnVmLT5jb250ZW50W3JlYWRlci0+Y3VyXSwKKwkJCSAgQ0hVTktfU0laRSwgMCk7CisJICAgIHJlYWRlci0+Y3VyICs9IENIVU5LX1NJWkU7CisJICAgIGlmICgodmFsICE9IDApIHx8IChyZWFkZXItPmN0eHQtPndlbGxGb3JtZWQgPT0gMCkpCisJCXJldHVybigtMSk7CisJfSBlbHNlIHsKKwkgICAgcyA9IGluYnVmLT51c2UgLSByZWFkZXItPmN1cjsKKwkgICAgdmFsID0geG1sUGFyc2VDaHVuayhyZWFkZXItPmN0eHQsCisJCSAgICAgICAgICAoY29uc3QgY2hhciAqKSAmaW5idWYtPmNvbnRlbnRbcmVhZGVyLT5jdXJdLAorCQkJICBzLCAwKTsKKwkgICAgcmVhZGVyLT5jdXIgKz0gczsKKwkgICAgaWYgKCh2YWwgIT0gMCkgfHwgKHJlYWRlci0+Y3R4dC0+d2VsbEZvcm1lZCA9PSAwKSkKKwkJcmV0dXJuKC0xKTsKKwkgICAgYnJlYWs7CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogRGlzY2FyZCB0aGUgY29uc3VtZWQgaW5wdXQgd2hlbiBuZWVkZWQgYW5kIHBvc3NpYmxlCisgICAgICovCisgICAgaWYgKHJlYWRlci0+bW9kZSA9PSBYTUxfVEVYVFJFQURFUl9NT0RFX0lOVEVSQUNUSVZFKSB7CisgICAgICAgIGlmIChpbmJ1Zi0+YWxsb2MgIT0gWE1MX0JVRkZFUl9BTExPQ19JTU1VVEFCTEUpIHsKKwkgICAgaWYgKChyZWFkZXItPmN1ciA+PSA0MDk2KSAmJgorCQkoaW5idWYtPnVzZSAtIHJlYWRlci0+Y3VyIDw9IENIVU5LX1NJWkUpKSB7CisJCXZhbCA9IHhtbEJ1ZmZlclNocmluayhpbmJ1ZiwgcmVhZGVyLT5jdXIpOworCQlpZiAodmFsID49IDApIHsKKwkJICAgIHJlYWRlci0+Y3VyIC09IHZhbDsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogQXQgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIHNpZ25hbCB0aGF0IHRoZSB3b3JrIGlzIGRvbmUgdG8gdGhlIFB1c2gKKyAgICAgKiBwYXJzZXIuCisgICAgICovCisgICAgZWxzZSBpZiAocmVhZGVyLT5tb2RlID09IFhNTF9URVhUUkVBREVSX01PREVfRU9GKSB7CisJaWYgKHJlYWRlci0+c3RhdGUgIT0gWE1MX1RFWFRSRUFERVJfRE9ORSkgeworCSAgICBzID0gaW5idWYtPnVzZSAtIHJlYWRlci0+Y3VyOworCSAgICB2YWwgPSB4bWxQYXJzZUNodW5rKHJlYWRlci0+Y3R4dCwKKwkJICAgIChjb25zdCBjaGFyICopICZpbmJ1Zi0+Y29udGVudFtyZWFkZXItPmN1cl0sCisJCSAgICBzLCAxKTsKKwkgICAgcmVhZGVyLT5jdXIgPSBpbmJ1Zi0+dXNlOworCSAgICByZWFkZXItPnN0YXRlICA9IFhNTF9URVhUUkVBREVSX0RPTkU7CisJICAgIGlmICgodmFsICE9IDApIHx8IChyZWFkZXItPmN0eHQtPndlbGxGb3JtZWQgPT0gMCkpCisJICAgICAgICByZXR1cm4oLTEpOworCX0KKyAgICB9CisgICAgcmVhZGVyLT5zdGF0ZSA9IG9sZHN0YXRlOworICAgIHJldHVybigwKTsKK30KKworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorLyoqCisgKiB4bWxUZXh0UmVhZGVyVmFsaWRhdGVQdXNoOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBQdXNoIHRoZSBjdXJyZW50IG5vZGUgZm9yIHZhbGlkYXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbFRleHRSZWFkZXJWYWxpZGF0ZVB1c2goeG1sVGV4dFJlYWRlclB0ciByZWFkZXIgQVRUUklCVVRFX1VOVVNFRCkgeworICAgIHhtbE5vZGVQdHIgbm9kZSA9IHJlYWRlci0+bm9kZTsKKworI2lmZGVmIExJQlhNTF9WQUxJRF9FTkFCTEVECisgICAgaWYgKChyZWFkZXItPnZhbGlkYXRlID09IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX0RURCkgJiYKKyAgICAgICAgKHJlYWRlci0+Y3R4dCAhPSBOVUxMKSAmJiAocmVhZGVyLT5jdHh0LT52YWxpZGF0ZSA9PSAxKSkgeworCWlmICgobm9kZS0+bnMgPT0gTlVMTCkgfHwgKG5vZGUtPm5zLT5wcmVmaXggPT0gTlVMTCkpIHsKKwkgICAgcmVhZGVyLT5jdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZVB1c2hFbGVtZW50KCZyZWFkZXItPmN0eHQtPnZjdHh0LAorCQkJCSAgICByZWFkZXItPmN0eHQtPm15RG9jLCBub2RlLCBub2RlLT5uYW1lKTsKKwl9IGVsc2UgeworCSAgICAvKiBUT0RPIHVzZSB0aGUgQnVpbGRRTmFtZSBpbnRlcmZhY2UgKi8KKwkgICAgeG1sQ2hhciAqcW5hbWU7CisKKwkgICAgcW5hbWUgPSB4bWxTdHJkdXAobm9kZS0+bnMtPnByZWZpeCk7CisJICAgIHFuYW1lID0geG1sU3RyY2F0KHFuYW1lLCBCQURfQ0FTVCAiOiIpOworCSAgICBxbmFtZSA9IHhtbFN0cmNhdChxbmFtZSwgbm9kZS0+bmFtZSk7CisJICAgIHJlYWRlci0+Y3R4dC0+dmFsaWQgJj0geG1sVmFsaWRhdGVQdXNoRWxlbWVudCgmcmVhZGVyLT5jdHh0LT52Y3R4dCwKKwkJCQkgICAgcmVhZGVyLT5jdHh0LT5teURvYywgbm9kZSwgcW5hbWUpOworCSAgICBpZiAocW5hbWUgIT0gTlVMTCkKKwkJeG1sRnJlZShxbmFtZSk7CisJfQorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICBpZiAoKHJlYWRlci0+dmFsaWRhdGUgPT0gWE1MX1RFWFRSRUFERVJfVkFMSURBVEVfUk5HKSAmJgorICAgICAgICAgICAgICAgKHJlYWRlci0+cm5nVmFsaWRDdHh0ICE9IE5VTEwpKSB7CisJaW50IHJldDsKKworCWlmIChyZWFkZXItPnJuZ0Z1bGxOb2RlICE9IE5VTEwpIHJldHVybjsKKwlyZXQgPSB4bWxSZWxheE5HVmFsaWRhdGVQdXNoRWxlbWVudChyZWFkZXItPnJuZ1ZhbGlkQ3R4dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXItPmN0eHQtPm15RG9jLAorCQkJCQkgICAgbm9kZSk7CisJaWYgKHJldCA9PSAwKSB7CisJICAgIC8qCisJICAgICAqIHRoaXMgZWxlbWVudCByZXF1aXJlcyBhIGZ1bGwgdHJlZQorCSAgICAgKi8KKwkgICAgbm9kZSA9IHhtbFRleHRSZWFkZXJFeHBhbmQocmVhZGVyKTsKKwkgICAgaWYgKG5vZGUgPT0gTlVMTCkgeworcHJpbnRmKCJFeHBhbmQgZmFpbGVkICFcbiIpOworCSAgICAgICAgcmV0ID0gLTE7CisJICAgIH0gZWxzZSB7CisJCXJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZUZ1bGxFbGVtZW50KHJlYWRlci0+cm5nVmFsaWRDdHh0LAorCQkJCQkJICAgIHJlYWRlci0+Y3R4dC0+bXlEb2MsCisJCQkJCQkgICAgbm9kZSk7CisJCXJlYWRlci0+cm5nRnVsbE5vZGUgPSBub2RlOworCSAgICB9CisJfQorCWlmIChyZXQgIT0gMSkKKwkgICAgcmVhZGVyLT5ybmdWYWxpZEVycm9ycysrOworICAgIH0KKyNlbmRpZgorfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJWYWxpZGF0ZUNEYXRhOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBkYXRhOiAgcG9pbnRlciB0byB0aGUgQ0RhdGEKKyAqIEBsZW46ICBsZW5naHQgb2YgdGhlIENEYXRhIGJsb2NrIGluIGJ5dGVzLgorICoKKyAqIFB1c2ggc29tZSBDRGF0YSBmb3IgdmFsaWRhdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sVGV4dFJlYWRlclZhbGlkYXRlQ0RhdGEoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpkYXRhLCBpbnQgbGVuKSB7CisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICBpZiAoKHJlYWRlci0+dmFsaWRhdGUgPT0gWE1MX1RFWFRSRUFERVJfVkFMSURBVEVfRFREKSAmJgorICAgICAgICAocmVhZGVyLT5jdHh0ICE9IE5VTEwpICYmIChyZWFkZXItPmN0eHQtPnZhbGlkYXRlID09IDEpKSB7CisJcmVhZGVyLT5jdHh0LT52YWxpZCAmPSB4bWxWYWxpZGF0ZVB1c2hDRGF0YSgmcmVhZGVyLT5jdHh0LT52Y3R4dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGxlbik7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9WQUxJRF9FTkFCTEVEICovCisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIGlmICgocmVhZGVyLT52YWxpZGF0ZSA9PSBYTUxfVEVYVFJFQURFUl9WQUxJREFURV9STkcpICYmCisgICAgICAgICAgICAgICAocmVhZGVyLT5ybmdWYWxpZEN0eHQgIT0gTlVMTCkpIHsKKwlpbnQgcmV0OworCisJaWYgKHJlYWRlci0+cm5nRnVsbE5vZGUgIT0gTlVMTCkgcmV0dXJuOworCXJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVB1c2hDRGF0YShyZWFkZXItPnJuZ1ZhbGlkQ3R4dCwgZGF0YSwgbGVuKTsKKwlpZiAocmV0ICE9IDEpCisJICAgIHJlYWRlci0+cm5nVmFsaWRFcnJvcnMrKzsKKyAgICB9CisjZW5kaWYKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyVmFsaWRhdGVQb3A6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFBvcCB0aGUgY3VycmVudCBub2RlIGZyb20gdmFsaWRhdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sVGV4dFJlYWRlclZhbGlkYXRlUG9wKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgeG1sTm9kZVB0ciBub2RlID0gcmVhZGVyLT5ub2RlOworCisjaWZkZWYgTElCWE1MX1ZBTElEX0VOQUJMRUQKKyAgICBpZiAoKHJlYWRlci0+dmFsaWRhdGUgPT0gWE1MX1RFWFRSRUFERVJfVkFMSURBVEVfRFREKSAmJgorICAgICAgICAocmVhZGVyLT5jdHh0ICE9IE5VTEwpICYmIChyZWFkZXItPmN0eHQtPnZhbGlkYXRlID09IDEpKSB7CisJaWYgKChub2RlLT5ucyA9PSBOVUxMKSB8fCAobm9kZS0+bnMtPnByZWZpeCA9PSBOVUxMKSkgeworCSAgICByZWFkZXItPmN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlUG9wRWxlbWVudCgmcmVhZGVyLT5jdHh0LT52Y3R4dCwKKwkJCQkgICAgcmVhZGVyLT5jdHh0LT5teURvYywgbm9kZSwgbm9kZS0+bmFtZSk7CisJfSBlbHNlIHsKKwkgICAgLyogVE9ETyB1c2UgdGhlIEJ1aWxkUU5hbWUgaW50ZXJmYWNlICovCisJICAgIHhtbENoYXIgKnFuYW1lOworCisJICAgIHFuYW1lID0geG1sU3RyZHVwKG5vZGUtPm5zLT5wcmVmaXgpOworCSAgICBxbmFtZSA9IHhtbFN0cmNhdChxbmFtZSwgQkFEX0NBU1QgIjoiKTsKKwkgICAgcW5hbWUgPSB4bWxTdHJjYXQocW5hbWUsIG5vZGUtPm5hbWUpOworCSAgICByZWFkZXItPmN0eHQtPnZhbGlkICY9IHhtbFZhbGlkYXRlUG9wRWxlbWVudCgmcmVhZGVyLT5jdHh0LT52Y3R4dCwKKwkJCQkgICAgcmVhZGVyLT5jdHh0LT5teURvYywgbm9kZSwgcW5hbWUpOworCSAgICBpZiAocW5hbWUgIT0gTlVMTCkKKwkJeG1sRnJlZShxbmFtZSk7CisJfQorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfVkFMSURfRU5BQkxFRCAqLworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICBpZiAoKHJlYWRlci0+dmFsaWRhdGUgPT0gWE1MX1RFWFRSRUFERVJfVkFMSURBVEVfUk5HKSAmJgorICAgICAgICAgICAgICAgKHJlYWRlci0+cm5nVmFsaWRDdHh0ICE9IE5VTEwpKSB7CisJaW50IHJldDsKKworCWlmIChyZWFkZXItPnJuZ0Z1bGxOb2RlICE9IE5VTEwpIHsKKwkgICAgaWYgKG5vZGUgPT0gcmVhZGVyLT5ybmdGdWxsTm9kZSkKKwkgICAgICAgIHJlYWRlci0+cm5nRnVsbE5vZGUgPSBOVUxMOworCSAgICByZXR1cm47CisJfQorCXJldCA9IHhtbFJlbGF4TkdWYWxpZGF0ZVBvcEVsZW1lbnQocmVhZGVyLT5ybmdWYWxpZEN0eHQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXItPmN0eHQtPm15RG9jLAorCQkJCQkgICBub2RlKTsKKwlpZiAocmV0ICE9IDEpCisJICAgIHJlYWRlci0+cm5nVmFsaWRFcnJvcnMrKzsKKyAgICB9CisjZW5kaWYKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyVmFsaWRhdGVFbnRpdHk6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIEhhbmRsZSB0aGUgdmFsaWRhdGlvbiB3aGVuIGFuIGVudGl0eSByZWZlcmVuY2UgaXMgZW5jb3VudGVyZWQgYW5kCisgKiBlbnRpdHkgc3Vic3RpdHV0aW9uIGlzIG5vdCBhY3RpdmF0ZWQuIEFzIGEgcmVzdWx0IHRoZSBwYXJzZXIgaW50ZXJmYWNlCisgKiBtdXN0IHdhbGsgdGhyb3VnaCB0aGUgZW50aXR5IGFuZCBkbyB0aGUgdmFsaWRhdGlvbiBjYWxscworICovCitzdGF0aWMgdm9pZAoreG1sVGV4dFJlYWRlclZhbGlkYXRlRW50aXR5KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgeG1sTm9kZVB0ciBvbGRub2RlID0gcmVhZGVyLT5ub2RlOworICAgIHhtbE5vZGVQdHIgbm9kZSA9IHJlYWRlci0+bm9kZTsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQgPSByZWFkZXItPmN0eHQ7CisKKyAgICBkbyB7CisJaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgeworCSAgICAvKgorCSAgICAgKiBDYXNlIHdoZXJlIHRoZSB1bmRlcmx5aW5nIHRyZWUgaXMgbm90IGF2YWlsYmxlLCBsb29rdXAgdGhlIGVudGl0eQorCSAgICAgKiBhbmQgd2FsayBpdC4KKwkgICAgICovCisJICAgIGlmICgobm9kZS0+Y2hpbGRyZW4gPT0gTlVMTCkgJiYgKGN0eHQtPnNheCAhPSBOVUxMKSAmJgorCQkoY3R4dC0+c2F4LT5nZXRFbnRpdHkgIT0gTlVMTCkpIHsKKwkJbm9kZS0+Y2hpbGRyZW4gPSAoeG1sTm9kZVB0cikKKwkJICAgIGN0eHQtPnNheC0+Z2V0RW50aXR5KGN0eHQsIG5vZGUtPm5hbWUpOworCSAgICB9CisKKwkgICAgaWYgKChub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCQkobm9kZS0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSAmJgorCQkobm9kZS0+Y2hpbGRyZW4tPmNoaWxkcmVuICE9IE5VTEwpKSB7CisJCXhtbFRleHRSZWFkZXJFbnRQdXNoKHJlYWRlciwgbm9kZSk7CisJCW5vZGUgPSBub2RlLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisJCWNvbnRpbnVlOworCSAgICB9IGVsc2UgeworCQkvKgorCQkgKiBUaGUgZXJyb3IgaGFzIHByb2JhYmx5IGJlIHJhaXNlZCBhbHJlYWR5LgorCQkgKi8KKwkJaWYgKG5vZGUgPT0gb2xkbm9kZSkKKwkJICAgIGJyZWFrOworCQlub2RlID0gbm9kZS0+bmV4dDsKKwkgICAgfQorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorCX0gZWxzZSBpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJICAgIHJlYWRlci0+bm9kZSA9IG5vZGU7CisJICAgIHhtbFRleHRSZWFkZXJWYWxpZGF0ZVB1c2gocmVhZGVyKTsKKwl9IGVsc2UgaWYgKChub2RlLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisJCSAgIChub2RlLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisgICAgICAgICAgICB4bWxUZXh0UmVhZGVyVmFsaWRhdGVDRGF0YShyZWFkZXIsIG5vZGUtPmNvbnRlbnQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFN0cmxlbihub2RlLT5jb250ZW50KSk7CisjZW5kaWYKKwl9CisKKwkvKgorCSAqIGdvIHRvIG5leHQgbm9kZQorCSAqLworCWlmIChub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJICAgIG5vZGUgPSBub2RlLT5jaGlsZHJlbjsKKwkgICAgY29udGludWU7CisJfSBlbHNlIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgeG1sVGV4dFJlYWRlclZhbGlkYXRlUG9wKHJlYWRlcik7CisJfQorCWlmIChub2RlLT5uZXh0ICE9IE5VTEwpIHsKKwkgICAgbm9kZSA9IG5vZGUtPm5leHQ7CisJICAgIGNvbnRpbnVlOworCX0KKwlkbyB7CisJICAgIG5vZGUgPSBub2RlLT5wYXJlbnQ7CisJICAgIGlmIChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkgICAgICAgIHhtbE5vZGVQdHIgdG1wOworCQlpZiAocmVhZGVyLT5lbnROciA9PSAwKSB7CisJCSAgICB3aGlsZSAoKHRtcCA9IG5vZGUtPmxhc3QpICE9IE5VTEwpIHsKKwkJCWlmICgodG1wLT5leHRyYSAmIE5PREVfSVNfUFJFU0VSVkVEKSA9PSAwKSB7CisJCQkgICAgeG1sVW5saW5rTm9kZSh0bXApOworCQkJICAgIHhtbFRleHRSZWFkZXJGcmVlTm9kZShyZWFkZXIsIHRtcCk7CisJCQl9IGVsc2UKKwkJCSAgICBicmVhazsKKwkJICAgIH0KKwkJfQorCQlyZWFkZXItPm5vZGUgPSBub2RlOworCQl4bWxUZXh0UmVhZGVyVmFsaWRhdGVQb3AocmVhZGVyKTsKKwkgICAgfQorCSAgICBpZiAoKG5vZGUtPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSAmJgorCQkocmVhZGVyLT5lbnQgIT0gTlVMTCkgJiYgKHJlYWRlci0+ZW50LT5jaGlsZHJlbiA9PSBub2RlKSkgeworCQlub2RlID0geG1sVGV4dFJlYWRlckVudFBvcChyZWFkZXIpOworCSAgICB9CisJICAgIGlmIChub2RlID09IG9sZG5vZGUpCisJCWJyZWFrOworCSAgICBpZiAobm9kZS0+bmV4dCAhPSBOVUxMKSB7CisJCW5vZGUgPSBub2RlLT5uZXh0OworCQlicmVhazsKKwkgICAgfQorCX0gd2hpbGUgKChub2RlICE9IE5VTEwpICYmIChub2RlICE9IG9sZG5vZGUpKTsKKyAgICB9IHdoaWxlICgobm9kZSAhPSBOVUxMKSAmJiAobm9kZSAhPSBvbGRub2RlKSk7CisgICAgcmVhZGVyLT5ub2RlID0gb2xkbm9kZTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKworCisvKioKKyAqIHhtbFRleHRSZWFkZXJHZXRTdWNjZXNzb3I6CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgbm9kZQorICoKKyAqIEdldCB0aGUgc3VjY2Vzc29yIG9mIGEgbm9kZSBpZiBhdmFpbGFibGUuCisgKgorICogUmV0dXJucyB0aGUgc3VjY2Vzc29yIG5vZGUgb3IgTlVMTAorICovCitzdGF0aWMgeG1sTm9kZVB0cgoreG1sVGV4dFJlYWRlckdldFN1Y2Nlc3Nvcih4bWxOb2RlUHRyIGN1cikgeworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuKE5VTEwpIDsgLyogRVJST1IgKi8KKyAgICBpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHJldHVybihjdXItPm5leHQpIDsKKyAgICBkbyB7CisgICAgICAgIGN1ciA9IGN1ci0+cGFyZW50OworICAgICAgICBpZiAoY3VyID09IE5VTEwpIGJyZWFrOworICAgICAgICBpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHJldHVybihjdXItPm5leHQpOworICAgIH0gd2hpbGUgKGN1ciAhPSBOVUxMKTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyRG9FeHBhbmQ6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIE1ha2VzIHN1cmUgdGhhdCB0aGUgY3VycmVudCBub2RlIGlzIGZ1bGx5IHJlYWQgYXMgd2VsbCBhcyBhbGwgaXRzCisgKiBkZXNjZW5kYW50LiBJdCBtZWFucyB0aGUgZnVsbCBET00gc3VidHJlZSBtdXN0IGJlIGF2YWlsYWJsZSBhdCB0aGUKKyAqIGVuZCBvZiB0aGUgY2FsbC4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdGhlIG5vZGUgd2FzIGV4cGFuZGVkIHN1Y2Nlc3NmdWxseSwgMCBpZiB0aGVyZSBpcyBubyBtb3JlCisgKiAgICAgICAgICBub2RlcyB0byByZWFkLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFRleHRSZWFkZXJEb0V4cGFuZCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGludCB2YWw7CisKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5ub2RlID09IE5VTEwpIHx8IChyZWFkZXItPmN0eHQgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgZG8geworCWlmIChyZWFkZXItPmN0eHQtPmluc3RhdGUgPT0gWE1MX1BBUlNFUl9FT0YpIHJldHVybigxKTsKKworICAgICAgICBpZiAoeG1sVGV4dFJlYWRlckdldFN1Y2Nlc3NvcihyZWFkZXItPm5vZGUpICE9IE5VTEwpCisJICAgIHJldHVybigxKTsKKwlpZiAocmVhZGVyLT5jdHh0LT5ub2RlTnIgPCByZWFkZXItPmRlcHRoKQorCSAgICByZXR1cm4oMSk7CisJaWYgKHJlYWRlci0+bW9kZSA9PSBYTUxfVEVYVFJFQURFUl9NT0RFX0VPRikKKwkgICAgcmV0dXJuKDEpOworCXZhbCA9IHhtbFRleHRSZWFkZXJQdXNoRGF0YShyZWFkZXIpOworCWlmICh2YWwgPCAwKXsKKwkgICAgcmVhZGVyLT5tb2RlID0gWE1MX1RFWFRSRUFERVJfTU9ERV9FUlJPUjsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfSB3aGlsZShyZWFkZXItPm1vZGUgIT0gWE1MX1RFWFRSRUFERVJfTU9ERV9FT0YpOworICAgIHJldHVybigxKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyQ29sbGVjdFNpYmxpbmdzOgorICogQG5vZGU6ICAgIHRoZSBmaXJzdCBjaGlsZAorICoKKyAqICBUcmF2ZXJzZSBkZXB0aC1maXJzdCB0aHJvdWdoIGFsbCBzaWJsaW5nIG5vZGVzIGFuZCB0aGVpciBjaGlsZHJlbgorICogIG5vZGVzIGFuZCBjb25jYXRlbmF0ZSB0aGVpciBjb250ZW50LiBUaGlzIGlzIGFuIGF1eGlsaWFyeSBmdW5jdGlvbgorICogIHRvIHhtbFRleHRSZWFkZXJSZWFkU3RyaW5nLgorICoKKyAqICBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGNvbnRlbnQsIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbENoYXIgKgoreG1sVGV4dFJlYWRlckNvbGxlY3RTaWJsaW5ncyh4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sQnVmZmVyUHRyIGJ1ZmZlcjsKKyAgICB4bWxDaGFyICpyZXQ7CisKKyAgICBidWZmZXIgPSB4bWxCdWZmZXJDcmVhdGUoKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBmb3IgKCA7IG5vZGUgIT0gTlVMTDsgbm9kZSA9IG5vZGUtPm5leHQpIHsKKyAgICAgICBzd2l0Y2ggKG5vZGUtPnR5cGUpIHsKKyAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICB4bWxCdWZmZXJDYXQoYnVmZmVyLCBub2RlLT5jb250ZW50KTsKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOiB7CisgICAgICAgICAgIHhtbENoYXIgKnRtcDsKKworCSAgIHRtcCA9IHhtbFRleHRSZWFkZXJDb2xsZWN0U2libGluZ3Mobm9kZS0+Y2hpbGRyZW4pOworICAgICAgICAgICB4bWxCdWZmZXJDYXQoYnVmZmVyLCB0bXApOworCSAgIHhtbEZyZWUodG1wKTsKKwkgICBicmVhazsKKyAgICAgICB9CisgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgfQorICAgIH0KKyAgICByZXQgPSBidWZmZXItPmNvbnRlbnQ7CisgICAgYnVmZmVyLT5jb250ZW50ID0gTlVMTDsKKyAgICB4bWxCdWZmZXJGcmVlKGJ1ZmZlcik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclJlYWQ6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqICBNb3ZlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gdGhlIG5leHQgbm9kZSBpbgorICogIHRoZSBzdHJlYW0sIGV4cG9zaW5nIGl0cyBwcm9wZXJ0aWVzLgorICoKKyAqICBSZXR1cm5zIDEgaWYgdGhlIG5vZGUgd2FzIHJlYWQgc3VjY2Vzc2Z1bGx5LCAwIGlmIHRoZXJlIGlzIG5vIG1vcmUKKyAqICAgICAgICAgIG5vZGVzIHRvIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0UmVhZGVyUmVhZCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGludCB2YWwsIG9sZGRlcHRoID0gMDsKKyAgICB4bWxUZXh0UmVhZGVyU3RhdGUgb2xkc3RhdGUgPSBYTUxfVEVYVFJFQURFUl9TVEFSVDsKKyAgICB4bWxOb2RlUHRyIG9sZG5vZGUgPSBOVUxMOworCisKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICByZWFkZXItPmN1cm5vZGUgPSBOVUxMOworICAgIGlmIChyZWFkZXItPmRvYyAhPSBOVUxMKQorICAgICAgICByZXR1cm4oeG1sVGV4dFJlYWRlclJlYWRUcmVlKHJlYWRlcikpOworICAgIGlmIChyZWFkZXItPmN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPmN0eHQtPndlbGxGb3JtZWQgIT0gMSkKKwlyZXR1cm4oLTEpOworCisjaWZkZWYgREVCVUdfUkVBREVSCisgICAgZnByaW50ZihzdGRlcnIsICJcblJFQUQgIik7CisgICAgRFVNUF9SRUFERVIKKyNlbmRpZgorICAgIGlmIChyZWFkZXItPm1vZGUgPT0gWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMKSB7CisJcmVhZGVyLT5tb2RlID0gWE1MX1RFWFRSRUFERVJfTU9ERV9JTlRFUkFDVElWRTsKKwkvKgorCSAqIEluaXRpYWwgc3RhdGUKKwkgKi8KKwlkbyB7CisJICAgIHZhbCA9IHhtbFRleHRSZWFkZXJQdXNoRGF0YShyZWFkZXIpOworCQlpZiAodmFsIDwgMCl7CisJCQlyZWFkZXItPm1vZGUgPSBYTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SOworCQkJcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0VSUk9SOworCQlyZXR1cm4oLTEpOworCQl9CisJfSB3aGlsZSAoKHJlYWRlci0+Y3R4dC0+bm9kZSA9PSBOVUxMKSAmJgorCQkgKChyZWFkZXItPm1vZGUgIT0gWE1MX1RFWFRSRUFERVJfTU9ERV9FT0YpICYmCisJCSAgKHJlYWRlci0+c3RhdGUgIT0gWE1MX1RFWFRSRUFERVJfRE9ORSkpKTsKKwlpZiAocmVhZGVyLT5jdHh0LT5ub2RlID09IE5VTEwpIHsKKwkgICAgaWYgKHJlYWRlci0+Y3R4dC0+bXlEb2MgIT0gTlVMTCkgeworCQlyZWFkZXItPm5vZGUgPSByZWFkZXItPmN0eHQtPm15RG9jLT5jaGlsZHJlbjsKKwkgICAgfQorCSAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpeworCQkJcmVhZGVyLT5tb2RlID0gWE1MX1RFWFRSRUFERVJfTU9ERV9FUlJPUjsKKwkJCXJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9FUlJPUjsKKwkJcmV0dXJuKC0xKTsKKwkJfQorCSAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRUxFTUVOVDsKKwl9IGVsc2UgeworCSAgICBpZiAocmVhZGVyLT5jdHh0LT5teURvYyAhPSBOVUxMKSB7CisJCXJlYWRlci0+bm9kZSA9IHJlYWRlci0+Y3R4dC0+bXlEb2MtPmNoaWxkcmVuOworCSAgICB9CisJICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwkJcmVhZGVyLT5ub2RlID0gcmVhZGVyLT5jdHh0LT5ub2RlVGFiWzBdOworCSAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRUxFTUVOVDsKKwl9CisJcmVhZGVyLT5kZXB0aCA9IDA7CisJcmVhZGVyLT5jdHh0LT5wYXJzZU1vZGUgPSBYTUxfUEFSU0VfUkVBREVSOworCWdvdG8gbm9kZV9mb3VuZDsKKyAgICB9CisgICAgb2xkc3RhdGUgPSByZWFkZXItPnN0YXRlOworICAgIG9sZGRlcHRoID0gcmVhZGVyLT5jdHh0LT5ub2RlTnI7CisgICAgb2xkbm9kZSA9IHJlYWRlci0+bm9kZTsKKworZ2V0X25leHRfbm9kZToKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpIHsKKwlpZiAocmVhZGVyLT5tb2RlID09IFhNTF9URVhUUkVBREVSX01PREVfRU9GKQorCSAgICByZXR1cm4oMCk7CisJZWxzZQorCSAgICByZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogSWYgd2UgYXJlIG5vdCBiYWNrdHJhY2tpbmcgb24gYW5jZXN0b3JzIG9yIGV4YW1pbmVkIG5vZGVzLAorICAgICAqIHRoYXQgdGhlIHBhcnNlciBkaWRuJ3QgZmluaXNoZWQgb3IgdGhhdCB3ZSBhcmVudCBhdCB0aGUgZW5kCisgICAgICogb2Ygc3RyZWFtLCBjb250aW51ZSBwcm9jZXNzaW5nLgorICAgICAqLworICAgIHdoaWxlICgocmVhZGVyLT5ub2RlICE9IE5VTEwpICYmIChyZWFkZXItPm5vZGUtPm5leHQgPT0gTlVMTCkgJiYKKwkgICAocmVhZGVyLT5jdHh0LT5ub2RlTnIgPT0gb2xkZGVwdGgpICYmCisgICAgICAgICAgICgob2xkc3RhdGUgPT0gWE1MX1RFWFRSRUFERVJfQkFDS1RSQUNLKSB8fAorICAgICAgICAgICAgKHJlYWRlci0+bm9kZS0+Y2hpbGRyZW4gPT0gTlVMTCkgfHwKKwkgICAgKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSB8fAorCSAgICAoKHJlYWRlci0+bm9kZS0+Y2hpbGRyZW4gIT0gTlVMTCkgJiYKKwkgICAgIChyZWFkZXItPm5vZGUtPmNoaWxkcmVuLT50eXBlID09IFhNTF9URVhUX05PREUpICYmCisJICAgICAocmVhZGVyLT5ub2RlLT5jaGlsZHJlbi0+bmV4dCA9PSBOVUxMKSkgfHwKKwkgICAgKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfRFREX05PREUpIHx8CisJICAgIChyZWFkZXItPm5vZGUtPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHx8CisJICAgIChyZWFkZXItPm5vZGUtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpICYmCisJICAgKChyZWFkZXItPmN0eHQtPm5vZGUgPT0gTlVMTCkgfHwKKwkgICAgKHJlYWRlci0+Y3R4dC0+bm9kZSA9PSByZWFkZXItPm5vZGUpIHx8CisJICAgIChyZWFkZXItPmN0eHQtPm5vZGUgPT0gcmVhZGVyLT5ub2RlLT5wYXJlbnQpKSAmJgorCSAgIChyZWFkZXItPmN0eHQtPmluc3RhdGUgIT0gWE1MX1BBUlNFUl9FT0YpKSB7CisJdmFsID0geG1sVGV4dFJlYWRlclB1c2hEYXRhKHJlYWRlcik7CisJaWYgKHZhbCA8IDApeworCQlyZWFkZXItPm1vZGUgPSBYTUxfVEVYVFJFQURFUl9NT0RFX0VSUk9SOworCQlyZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRVJST1I7CisJICAgIHJldHVybigtMSk7CisJfQorCWlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwkgICAgZ290byBub2RlX2VuZDsKKyAgICB9CisgICAgaWYgKG9sZHN0YXRlICE9IFhNTF9URVhUUkVBREVSX0JBQ0tUUkFDSykgeworCWlmICgocmVhZGVyLT5ub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCSAgICAocmVhZGVyLT5ub2RlLT50eXBlICE9IFhNTF9FTlRJVFlfUkVGX05PREUpICYmCisJICAgIChyZWFkZXItPm5vZGUtPnR5cGUgIT0gWE1MX1hJTkNMVURFX1NUQVJUKSAmJgorCSAgICAocmVhZGVyLT5ub2RlLT50eXBlICE9IFhNTF9EVERfTk9ERSkpIHsKKwkgICAgcmVhZGVyLT5ub2RlID0gcmVhZGVyLT5ub2RlLT5jaGlsZHJlbjsKKwkgICAgcmVhZGVyLT5kZXB0aCsrOworCSAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRUxFTUVOVDsKKwkgICAgZ290byBub2RlX2ZvdW5kOworCX0KKyAgICB9CisgICAgaWYgKHJlYWRlci0+bm9kZS0+bmV4dCAhPSBOVUxMKSB7CisJaWYgKChvbGRzdGF0ZSA9PSBYTUxfVEVYVFJFQURFUl9FTEVNRU5UKSAmJgorICAgICAgICAgICAgKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCSAgICAocmVhZGVyLT5ub2RlLT5jaGlsZHJlbiA9PSBOVUxMKSAmJgorCSAgICAoKHJlYWRlci0+bm9kZS0+ZXh0cmEgJiBOT0RFX0lTX0VNUFRZKSA9PSAwKQorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECisJICAgICYmIChyZWFkZXItPmluX3hpbmNsdWRlIDw9IDApCisjZW5kaWYKKwkgICAgKSB7CisJICAgIHJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9FTkQ7CisJICAgIGdvdG8gbm9kZV9mb3VuZDsKKwl9CisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisJaWYgKChyZWFkZXItPnZhbGlkYXRlKSAmJgorCSAgICAocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKQorCSAgICB4bWxUZXh0UmVhZGVyVmFsaWRhdGVQb3AocmVhZGVyKTsKKyNlbmRpZiAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKyAgICAgICAgaWYgKChyZWFkZXItPnByZXNlcnZlcyA+IDApICYmCisJICAgIChyZWFkZXItPm5vZGUtPmV4dHJhICYgTk9ERV9JU19TUFJFU0VSVkVEKSkKKwkgICAgcmVhZGVyLT5wcmVzZXJ2ZXMtLTsKKwlyZWFkZXItPm5vZGUgPSByZWFkZXItPm5vZGUtPm5leHQ7CisJcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0VMRU1FTlQ7CisKKwkvKgorCSAqIENsZWFudXAgb2YgdGhlIG9sZCBub2RlCisJICovCisJaWYgKChyZWFkZXItPnByZXNlcnZlcyA9PSAwKSAmJgorI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECisJICAgIChyZWFkZXItPmluX3hpbmNsdWRlID09IDApICYmCisjZW5kaWYKKwkgICAgKHJlYWRlci0+ZW50TnIgPT0gMCkgJiYKKwkgICAgKHJlYWRlci0+bm9kZS0+cHJldiAhPSBOVUxMKSAmJgorICAgICAgICAgICAgKHJlYWRlci0+bm9kZS0+cHJldi0+dHlwZSAhPSBYTUxfRFREX05PREUpICYmCisJICAgIChyZWFkZXItPmVudE5yID09IDApKSB7CisJICAgIHhtbE5vZGVQdHIgdG1wID0gcmVhZGVyLT5ub2RlLT5wcmV2OworCSAgICBpZiAoKHRtcC0+ZXh0cmEgJiBOT0RFX0lTX1BSRVNFUlZFRCkgPT0gMCkgeworCQl4bWxVbmxpbmtOb2RlKHRtcCk7CisJCXhtbFRleHRSZWFkZXJGcmVlTm9kZShyZWFkZXIsIHRtcCk7CisJICAgIH0KKwl9CisKKwlnb3RvIG5vZGVfZm91bmQ7CisgICAgfQorICAgIGlmICgob2xkc3RhdGUgPT0gWE1MX1RFWFRSRUFERVJfRUxFTUVOVCkgJiYKKwkocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJKHJlYWRlci0+bm9kZS0+Y2hpbGRyZW4gPT0gTlVMTCkgJiYKKwkoKHJlYWRlci0+bm9kZS0+ZXh0cmEgJiBOT0RFX0lTX0VNUFRZKSA9PSAwKSkgezsKKwlyZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRU5EOworCWdvdG8gbm9kZV9mb3VuZDsKKyAgICB9CisjaWZkZWYgTElCWE1MX1JFR0VYUF9FTkFCTEVECisgICAgaWYgKChyZWFkZXItPnZhbGlkYXRlKSAmJiAocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKQorCXhtbFRleHRSZWFkZXJWYWxpZGF0ZVBvcChyZWFkZXIpOworI2VuZGlmIC8qIExJQlhNTF9SRUdFWFBfRU5BQkxFRCAqLworICAgIGlmICgocmVhZGVyLT5wcmVzZXJ2ZXMgPiAwKSAmJgorCShyZWFkZXItPm5vZGUtPmV4dHJhICYgTk9ERV9JU19TUFJFU0VSVkVEKSkKKwlyZWFkZXItPnByZXNlcnZlcy0tOworICAgIHJlYWRlci0+bm9kZSA9IHJlYWRlci0+bm9kZS0+cGFyZW50OworICAgIGlmICgocmVhZGVyLT5ub2RlID09IE5VTEwpIHx8CisJKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFKSB8fAorI2VuZGlmCisJKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworCWlmIChyZWFkZXItPm1vZGUgIT0gWE1MX1RFWFRSRUFERVJfTU9ERV9FT0YpIHsKKwkgICAgdmFsID0geG1sUGFyc2VDaHVuayhyZWFkZXItPmN0eHQsICIiLCAwLCAxKTsKKwkgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0RPTkU7CisJICAgIGlmICh2YWwgIT0gMCkKKwkgICAgICAgIHJldHVybigtMSk7CisJfQorCXJlYWRlci0+bm9kZSA9IE5VTEw7CisJcmVhZGVyLT5kZXB0aCA9IC0xOworCisJLyoKKwkgKiBDbGVhbnVwIG9mIHRoZSBvbGQgbm9kZQorCSAqLworCWlmICgob2xkbm9kZSAhPSBOVUxMKSAmJiAocmVhZGVyLT5wcmVzZXJ2ZXMgPT0gMCkgJiYKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorCSAgICAocmVhZGVyLT5pbl94aW5jbHVkZSA9PSAwKSAmJgorI2VuZGlmCisJICAgIChyZWFkZXItPmVudE5yID09IDApICYmCisJICAgIChvbGRub2RlLT50eXBlICE9IFhNTF9EVERfTk9ERSkgJiYKKwkgICAgKChvbGRub2RlLT5leHRyYSAmIE5PREVfSVNfUFJFU0VSVkVEKSA9PSAwKSAmJgorCSAgICAocmVhZGVyLT5lbnROciA9PSAwKSkgeworCSAgICB4bWxVbmxpbmtOb2RlKG9sZG5vZGUpOworCSAgICB4bWxUZXh0UmVhZGVyRnJlZU5vZGUocmVhZGVyLCBvbGRub2RlKTsKKwl9CisKKwlnb3RvIG5vZGVfZW5kOworICAgIH0KKyAgICBpZiAoKHJlYWRlci0+cHJlc2VydmVzID09IDApICYmCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICAgICAgKHJlYWRlci0+aW5feGluY2x1ZGUgPT0gMCkgJiYKKyNlbmRpZgorCShyZWFkZXItPmVudE5yID09IDApICYmCisgICAgICAgIChyZWFkZXItPm5vZGUtPmxhc3QgIT0gTlVMTCkgJiYKKyAgICAgICAgKChyZWFkZXItPm5vZGUtPmxhc3QtPmV4dHJhICYgTk9ERV9JU19QUkVTRVJWRUQpID09IDApKSB7CisJeG1sTm9kZVB0ciB0bXAgPSByZWFkZXItPm5vZGUtPmxhc3Q7CisJeG1sVW5saW5rTm9kZSh0bXApOworCXhtbFRleHRSZWFkZXJGcmVlTm9kZShyZWFkZXIsIHRtcCk7CisgICAgfQorICAgIHJlYWRlci0+ZGVwdGgtLTsKKyAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfQkFDS1RSQUNLOworCitub2RlX2ZvdW5kOgorICAgIERVTVBfUkVBREVSCisKKyAgICAvKgorICAgICAqIElmIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgcGllY2Ugb2YgQ0RBVEEgbWFrZSBzdXJlIGl0J3MgZmluaXNoZWQKKyAgICAgKi8KKyAgICBpZiAoKHJlYWRlci0+bm9kZSAhPSBOVUxMKSAmJgorICAgICAgICAocmVhZGVyLT5ub2RlLT5uZXh0ID09IE5VTEwpICYmCisgICAgICAgICgocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisJIChyZWFkZXItPm5vZGUtPnR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkpKSB7CisgICAgICAgICAgICBpZiAoeG1sVGV4dFJlYWRlckV4cGFuZChyZWFkZXIpID09IE5VTEwpCisJICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICAvKgorICAgICAqIEhhbmRsZSBYSW5jbHVkZSBpZiBhc2tlZCBmb3IKKyAgICAgKi8KKyAgICBpZiAoKHJlYWRlci0+eGluY2x1ZGUpICYmIChyZWFkZXItPm5vZGUgIT0gTlVMTCkgJiYKKwkocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJKHJlYWRlci0+bm9kZS0+bnMgIT0gTlVMTCkgJiYKKwkoKHhtbFN0ckVxdWFsKHJlYWRlci0+bm9kZS0+bnMtPmhyZWYsIFhJTkNMVURFX05TKSkgfHwKKwkgKHhtbFN0ckVxdWFsKHJlYWRlci0+bm9kZS0+bnMtPmhyZWYsIFhJTkNMVURFX09MRF9OUykpKSkgeworCWlmIChyZWFkZXItPnhpbmNjdHh0ID09IE5VTEwpIHsKKwkgICAgcmVhZGVyLT54aW5jY3R4dCA9IHhtbFhJbmNsdWRlTmV3Q29udGV4dChyZWFkZXItPmN0eHQtPm15RG9jKTsKKwkgICAgeG1sWEluY2x1ZGVTZXRGbGFncyhyZWFkZXItPnhpbmNjdHh0LAorCSAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci0+cGFyc2VyRmxhZ3MgJiAoflhNTF9QQVJTRV9OT1hJTkNOT0RFKSk7CisJfQorCS8qCisJICogZXhwYW5kIHRoYXQgbm9kZSBhbmQgcHJvY2VzcyBpdAorCSAqLworCWlmICh4bWxUZXh0UmVhZGVyRXhwYW5kKHJlYWRlcikgPT0gTlVMTCkKKwkgICAgcmV0dXJuIC0xOworCXhtbFhJbmNsdWRlUHJvY2Vzc05vZGUocmVhZGVyLT54aW5jY3R4dCwgcmVhZGVyLT5ub2RlKTsKKyAgICB9CisgICAgaWYgKChyZWFkZXItPm5vZGUgIT0gTlVMTCkgJiYgKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfWElOQ0xVREVfU1RBUlQpKSB7CisgICAgICAgIHJlYWRlci0+aW5feGluY2x1ZGUrKzsKKwlnb3RvIGdldF9uZXh0X25vZGU7CisgICAgfQorICAgIGlmICgocmVhZGVyLT5ub2RlICE9IE5VTEwpICYmIChyZWFkZXItPm5vZGUtPnR5cGUgPT0gWE1MX1hJTkNMVURFX0VORCkpIHsKKyAgICAgICAgcmVhZGVyLT5pbl94aW5jbHVkZS0tOworCWdvdG8gZ2V0X25leHRfbm9kZTsKKyAgICB9CisjZW5kaWYKKyAgICAvKgorICAgICAqIEhhbmRsZSBlbnRpdGllcyBlbnRlciBhbmQgZXhpdCB3aGVuIGluIGVudGl0eSByZXBsYWNlbWVudCBtb2RlCisgICAgICovCisgICAgaWYgKChyZWFkZXItPm5vZGUgIT0gTlVMTCkgJiYKKwkocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9FTlRJVFlfUkVGX05PREUpICYmCisJKHJlYWRlci0+Y3R4dCAhPSBOVUxMKSAmJiAocmVhZGVyLT5jdHh0LT5yZXBsYWNlRW50aXRpZXMgPT0gMSkpIHsKKwkvKgorCSAqIENhc2Ugd2hlcmUgdGhlIHVuZGVybHlpbmcgdHJlZSBpcyBub3QgYXZhaWxibGUsIGxvb2t1cCB0aGUgZW50aXR5CisJICogYW5kIHdhbGsgaXQuCisJICovCisJaWYgKChyZWFkZXItPm5vZGUtPmNoaWxkcmVuID09IE5VTEwpICYmIChyZWFkZXItPmN0eHQtPnNheCAhPSBOVUxMKSAmJgorCSAgICAocmVhZGVyLT5jdHh0LT5zYXgtPmdldEVudGl0eSAhPSBOVUxMKSkgeworCSAgICByZWFkZXItPm5vZGUtPmNoaWxkcmVuID0gKHhtbE5vZGVQdHIpCisJCXJlYWRlci0+Y3R4dC0+c2F4LT5nZXRFbnRpdHkocmVhZGVyLT5jdHh0LCByZWFkZXItPm5vZGUtPm5hbWUpOworCX0KKworCWlmICgocmVhZGVyLT5ub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCSAgICAocmVhZGVyLT5ub2RlLT5jaGlsZHJlbi0+dHlwZSA9PSBYTUxfRU5USVRZX0RFQ0wpICYmCisJICAgIChyZWFkZXItPm5vZGUtPmNoaWxkcmVuLT5jaGlsZHJlbiAhPSBOVUxMKSkgeworCSAgICB4bWxUZXh0UmVhZGVyRW50UHVzaChyZWFkZXIsIHJlYWRlci0+bm9kZSk7CisJICAgIHJlYWRlci0+bm9kZSA9IHJlYWRlci0+bm9kZS0+Y2hpbGRyZW4tPmNoaWxkcmVuOworCX0KKyNpZmRlZiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQKKyAgICB9IGVsc2UgaWYgKChyZWFkZXItPm5vZGUgIT0gTlVMTCkgJiYKKwkgICAgICAgKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSAmJgorCSAgICAgICAocmVhZGVyLT5jdHh0ICE9IE5VTEwpICYmIChyZWFkZXItPnZhbGlkYXRlKSkgeworCXhtbFRleHRSZWFkZXJWYWxpZGF0ZUVudGl0eShyZWFkZXIpOworI2VuZGlmIC8qIExJQlhNTF9SRUdFWFBfRU5BQkxFRCAqLworICAgIH0KKyAgICBpZiAoKHJlYWRlci0+bm9kZSAhPSBOVUxMKSAmJgorCShyZWFkZXItPm5vZGUtPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSAmJgorCShyZWFkZXItPmVudCAhPSBOVUxMKSAmJiAocmVhZGVyLT5lbnQtPmNoaWxkcmVuID09IHJlYWRlci0+bm9kZSkpIHsKKwlyZWFkZXItPm5vZGUgPSB4bWxUZXh0UmVhZGVyRW50UG9wKHJlYWRlcik7CisJcmVhZGVyLT5kZXB0aCsrOworICAgICAgICBnb3RvIGdldF9uZXh0X25vZGU7CisgICAgfQorI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorICAgIGlmICgocmVhZGVyLT52YWxpZGF0ZSkgJiYgKHJlYWRlci0+bm9kZSAhPSBOVUxMKSkgeworCXhtbE5vZGVQdHIgbm9kZSA9IHJlYWRlci0+bm9kZTsKKworCWlmICgobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorICAgICAgICAgICAgKChyZWFkZXItPnN0YXRlICE9IFhNTF9URVhUUkVBREVSX0VORCkgJiYKKwkgICAgIChyZWFkZXItPnN0YXRlICE9IFhNTF9URVhUUkVBREVSX0JBQ0tUUkFDSykpKSB7CisJICAgIHhtbFRleHRSZWFkZXJWYWxpZGF0ZVB1c2gocmVhZGVyKTsKKwl9IGVsc2UgaWYgKChub2RlLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisJCSAgIChub2RlLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisgICAgICAgICAgICB4bWxUZXh0UmVhZGVyVmFsaWRhdGVDRGF0YShyZWFkZXIsIG5vZGUtPmNvbnRlbnQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFN0cmxlbihub2RlLT5jb250ZW50KSk7CisJfQorICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfUkVHRVhQX0VOQUJMRUQgKi8KKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgaWYgKChyZWFkZXItPnBhdHRlcm5OciA+IDApICYmIChyZWFkZXItPnN0YXRlICE9IFhNTF9URVhUUkVBREVSX0VORCkgJiYKKyAgICAgICAgKHJlYWRlci0+c3RhdGUgIT0gWE1MX1RFWFRSRUFERVJfQkFDS1RSQUNLKSkgeworICAgICAgICBpbnQgaTsKKwlmb3IgKGkgPSAwO2kgPCByZWFkZXItPnBhdHRlcm5OcjtpKyspIHsKKwkgICAgIGlmICh4bWxQYXR0ZXJuTWF0Y2gocmVhZGVyLT5wYXR0ZXJuVGFiW2ldLCByZWFkZXItPm5vZGUpID09IDEpIHsKKwkgICAgICAgICB4bWxUZXh0UmVhZGVyUHJlc2VydmUocmVhZGVyKTsKKwkJIGJyZWFrOworICAgICAgICAgICAgIH0KKwl9CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9QQVRURVJOX0VOQUJMRUQgKi8KKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisgICAgaWYgKChyZWFkZXItPnZhbGlkYXRlID09IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX1hTRCkgJiYKKyAgICAgICAgKHJlYWRlci0+eHNkVmFsaWRFcnJvcnMgPT0gMCkgJiYKKwkocmVhZGVyLT54c2RWYWxpZEN0eHQgIT0gTlVMTCkpIHsKKwlyZWFkZXItPnhzZFZhbGlkRXJyb3JzID0gIXhtbFNjaGVtYUlzVmFsaWQocmVhZGVyLT54c2RWYWxpZEN0eHQpOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVEICovCisgICAgcmV0dXJuKDEpOworbm9kZV9lbmQ6CisgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0RPTkU7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJSZWFkU3RhdGU6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIEdldHMgdGhlIHJlYWQgc3RhdGUgb2YgdGhlIHJlYWRlci4KKyAqCisgKiBSZXR1cm5zIHRoZSBzdGF0ZSB2YWx1ZSwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJSZWFkU3RhdGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICByZXR1cm4ocmVhZGVyLT5tb2RlKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyRXhwYW5kOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBSZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgbm9kZSBhbmQgdGhlIGZ1bGwgc3VidHJlZS4gSXQgdGhlbiBtYWtlcworICogdGhlIHN1YnRyZWUgYXZhaWxhYmxlIHVudGlsIHRoZSBuZXh0IHhtbFRleHRSZWFkZXJSZWFkKCkgY2FsbAorICoKKyAqIFJldHVybnMgYSBub2RlIHBvaW50ZXIgdmFsaWQgdW50aWwgdGhlIG5leHQgeG1sVGV4dFJlYWRlclJlYWQoKSBjYWxsCisgKiAgICAgICAgIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sTm9kZVB0cgoreG1sVGV4dFJlYWRlckV4cGFuZCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGlmICgocmVhZGVyID09IE5VTEwpIHx8IChyZWFkZXItPm5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5kb2MgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHJlYWRlci0+bm9kZSk7CisgICAgaWYgKHJlYWRlci0+Y3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKHhtbFRleHRSZWFkZXJEb0V4cGFuZChyZWFkZXIpIDwgMCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIHJldHVybihyZWFkZXItPm5vZGUpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJOZXh0OgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBTa2lwIHRvIHRoZSBub2RlIGZvbGxvd2luZyB0aGUgY3VycmVudCBvbmUgaW4gZG9jdW1lbnQgb3JkZXIgd2hpbGUKKyAqIGF2b2lkaW5nIHRoZSBzdWJ0cmVlIGlmIGFueS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdGhlIG5vZGUgd2FzIHJlYWQgc3VjY2Vzc2Z1bGx5LCAwIGlmIHRoZXJlIGlzIG5vIG1vcmUKKyAqICAgICAgICAgIG5vZGVzIHRvIHJlYWQsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0UmVhZGVyTmV4dCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGludCByZXQ7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5kb2MgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHhtbFRleHRSZWFkZXJOZXh0VHJlZShyZWFkZXIpKTsKKyAgICBjdXIgPSByZWFkZXItPm5vZGU7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSkKKyAgICAgICAgcmV0dXJuKHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcikpOworICAgIGlmIChyZWFkZXItPnN0YXRlID09IFhNTF9URVhUUkVBREVSX0VORCB8fCByZWFkZXItPnN0YXRlID09IFhNTF9URVhUUkVBREVSX0JBQ0tUUkFDSykKKyAgICAgICAgcmV0dXJuKHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcikpOworICAgIGlmIChjdXItPmV4dHJhICYgTk9ERV9JU19FTVBUWSkKKyAgICAgICAgcmV0dXJuKHhtbFRleHRSZWFkZXJSZWFkKHJlYWRlcikpOworICAgIGRvIHsKKyAgICAgICAgcmV0ID0geG1sVGV4dFJlYWRlclJlYWQocmVhZGVyKTsKKwlpZiAocmV0ICE9IDEpCisJICAgIHJldHVybihyZXQpOworICAgIH0gd2hpbGUgKHJlYWRlci0+bm9kZSAhPSBjdXIpOworICAgIHJldHVybih4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpKTsKK30KKworI2lmZGVmIExJQlhNTF9XUklURVJfRU5BQkxFRAorLyoqCisgKiB4bWxUZXh0UmVhZGVyUmVhZElubmVyWG1sOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBSZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgbm9kZSwgaW5jbHVkaW5nIGNoaWxkIG5vZGVzIGFuZCBtYXJrdXAuCisgKgorICogUmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBYTUwgY29udGVudCwgb3IgTlVMTCBpZiB0aGUgY3VycmVudCBub2RlCisgKiAgICAgICAgIGlzIG5laXRoZXIgYW4gZWxlbWVudCBub3IgYXR0cmlidXRlLCBvciBoYXMgbm8gY2hpbGQgbm9kZXMuIFRoZQorICogICAgICAgICBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLgorICovCit4bWxDaGFyICoKK3htbFRleHRSZWFkZXJSZWFkSW5uZXJYbWwoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICB4bWxDaGFyICpyZXNidWY7CisgICAgeG1sTm9kZVB0ciBub2RlLCBjdXJfbm9kZTsKKyAgICB4bWxCdWZmZXJQdHIgYnVmZiwgYnVmZjI7CisgICAgeG1sRG9jUHRyIGRvYzsKKworICAgIGlmICh4bWxUZXh0UmVhZGVyRXhwYW5kKHJlYWRlcikgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZG9jID0gcmVhZGVyLT5kb2M7CisgICAgYnVmZiA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgIGZvciAoY3VyX25vZGUgPSByZWFkZXItPm5vZGUtPmNoaWxkcmVuOyBjdXJfbm9kZSAhPSBOVUxMOworICAgICAgICAgY3VyX25vZGUgPSBjdXJfbm9kZS0+bmV4dCkgeworICAgICAgICBub2RlID0geG1sRG9jQ29weU5vZGUoY3VyX25vZGUsIGRvYywgMSk7CisgICAgICAgIGJ1ZmYyID0geG1sQnVmZmVyQ3JlYXRlKCk7CisgICAgICAgIGlmICh4bWxOb2RlRHVtcChidWZmMiwgZG9jLCBub2RlLCAwLCAwKSA9PSAtMSkgeworICAgICAgICAgICAgeG1sRnJlZU5vZGUobm9kZSk7CisgICAgICAgICAgICB4bWxCdWZmZXJGcmVlKGJ1ZmYyKTsKKyAgICAgICAgICAgIHhtbEJ1ZmZlckZyZWUoYnVmZik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICB4bWxCdWZmZXJDYXQoYnVmZiwgYnVmZjItPmNvbnRlbnQpOworICAgICAgICB4bWxGcmVlTm9kZShub2RlKTsKKyAgICAgICAgeG1sQnVmZmVyRnJlZShidWZmMik7CisgICAgfQorICAgIHJlc2J1ZiA9IGJ1ZmYtPmNvbnRlbnQ7CisgICAgYnVmZi0+Y29udGVudCA9IE5VTEw7CisKKyAgICB4bWxCdWZmZXJGcmVlKGJ1ZmYpOworICAgIHJldHVybiByZXNidWY7Cit9CisjZW5kaWYKKworI2lmZGVmIExJQlhNTF9XUklURVJfRU5BQkxFRAorLyoqCisgKiB4bWxUZXh0UmVhZGVyUmVhZE91dGVyWG1sOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBSZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgbm9kZSwgaW5jbHVkaW5nIGNoaWxkIG5vZGVzIGFuZCBtYXJrdXAuCisgKgorICogUmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBYTUwgY29udGVudCwgb3IgTlVMTCBpZiB0aGUgY3VycmVudCBub2RlCisgKiAgICAgICAgIGlzIG5laXRoZXIgYW4gZWxlbWVudCBub3IgYXR0cmlidXRlLCBvciBoYXMgbm8gY2hpbGQgbm9kZXMuIFRoZQorICogICAgICAgICBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLgorICovCit4bWxDaGFyICoKK3htbFRleHRSZWFkZXJSZWFkT3V0ZXJYbWwoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICB4bWxDaGFyICpyZXNidWY7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIHhtbEJ1ZmZlclB0ciBidWZmOworICAgIHhtbERvY1B0ciBkb2M7CisKKyAgICBub2RlID0gcmVhZGVyLT5ub2RlOworICAgIGRvYyA9IHJlYWRlci0+ZG9jOworICAgIGlmICh4bWxUZXh0UmVhZGVyRXhwYW5kKHJlYWRlcikgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgbm9kZSA9IHhtbERvY0NvcHlOb2RlKG5vZGUsIGRvYywgMSk7CisgICAgYnVmZiA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgIGlmICh4bWxOb2RlRHVtcChidWZmLCBkb2MsIG5vZGUsIDAsIDApID09IC0xKSB7CisgICAgICAgIHhtbEZyZWVOb2RlKG5vZGUpOworICAgICAgICB4bWxCdWZmZXJGcmVlKGJ1ZmYpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXNidWYgPSBidWZmLT5jb250ZW50OworICAgIGJ1ZmYtPmNvbnRlbnQgPSBOVUxMOworCisgICAgeG1sRnJlZU5vZGUobm9kZSk7CisgICAgeG1sQnVmZmVyRnJlZShidWZmKTsKKyAgICByZXR1cm4gcmVzYnVmOworfQorI2VuZGlmCisKKy8qKgorICogeG1sVGV4dFJlYWRlclJlYWRTdHJpbmc6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFJlYWRzIHRoZSBjb250ZW50cyBvZiBhbiBlbGVtZW50IG9yIGEgdGV4dCBub2RlIGFzIGEgc3RyaW5nLgorICoKKyAqIFJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgY29udGVudHMgb2YgdGhlIEVsZW1lbnQgb3IgVGV4dCBub2RlLAorICogICAgICAgICBvciBOVUxMIGlmIHRoZSByZWFkZXIgaXMgcG9zaXRpb25lZCBvbiBhbnkgb3RoZXIgdHlwZSBvZiBub2RlLgorICogICAgICAgICBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyUmVhZFN0cmluZyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikKK3sKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5ub2RlID09IE5VTEwpKQorICAgICAgIHJldHVybihOVUxMKTsKKworICAgIG5vZGUgPSAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpID8gcmVhZGVyLT5jdXJub2RlIDogcmVhZGVyLT5ub2RlOworICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICBpZiAobm9kZS0+Y29udGVudCAhPSBOVUxMKQorICAgICAgICAgICByZXR1cm4oeG1sU3RyZHVwKG5vZGUtPmNvbnRlbnQpKTsKKyAgICAgICBicmVhazsKKyAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJaWYgKHhtbFRleHRSZWFkZXJEb0V4cGFuZChyZWFkZXIpICE9IC0xKSB7CisJICAgIHJldHVybiB4bWxUZXh0UmVhZGVyQ29sbGVjdFNpYmxpbmdzKG5vZGUtPmNoaWxkcmVuKTsKKwl9CisgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJVE9ETworCWJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworI2lmIDAKKy8qKgorICogeG1sVGV4dFJlYWRlclJlYWRCYXNlNjQ6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQGFycmF5OiAgYSBieXRlIGFycmF5IHRvIHN0b3JlIHRoZSBjb250ZW50LgorICogQG9mZnNldDogIHRoZSB6ZXJvLWJhc2VkIGluZGV4IGludG8gYXJyYXkgd2hlcmUgdGhlIG1ldGhvZCBzaG91bGQKKyAqICAgICAgICAgICBiZWdpbiB0byB3cml0ZS4KKyAqIEBsZW46ICB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlLgorICoKKyAqIFJlYWRzIGFuZCBkZWNvZGVzIHRoZSBCYXNlNjQgZW5jb2RlZCBjb250ZW50cyBvZiBhbiBlbGVtZW50IGFuZAorICogc3RvcmVzIHRoZSByZXN1bHQgaW4gYSBieXRlIGJ1ZmZlci4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byBhcnJheSwgb3IgemVybyBpZiB0aGUgY3VycmVudAorICogICAgICAgICBpbnN0YW5jZSBpcyBub3QgcG9zaXRpb25lZCBvbiBhbiBlbGVtZW50IG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sVGV4dFJlYWRlclJlYWRCYXNlNjQoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICphcnJheSBBVFRSSUJVVEVfVU5VU0VELAorCSAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0IEFUVFJJQlVURV9VTlVTRUQsCisJCQlpbnQgbGVuIEFUVFJJQlVURV9VTlVTRUQpIHsKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5jdHh0ID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+Y3R4dC0+d2VsbEZvcm1lZCAhPSAxKQorCXJldHVybigtMSk7CisKKyAgICBpZiAoKHJlYWRlci0+bm9kZSA9PSBOVUxMKSB8fCAocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpKQorCXJldHVybigwKTsKKyAgICBUT0RPCisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJSZWFkQmluSGV4OgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBhcnJheTogIGEgYnl0ZSBhcnJheSB0byBzdG9yZSB0aGUgY29udGVudC4KKyAqIEBvZmZzZXQ6ICB0aGUgemVyby1iYXNlZCBpbmRleCBpbnRvIGFycmF5IHdoZXJlIHRoZSBtZXRob2Qgc2hvdWxkCisgKiAgICAgICAgICAgYmVnaW4gdG8gd3JpdGUuCisgKiBAbGVuOiAgdGhlIG51bWJlciBvZiBieXRlcyB0byB3cml0ZS4KKyAqCisgKiBSZWFkcyBhbmQgZGVjb2RlcyB0aGUgQmluSGV4IGVuY29kZWQgY29udGVudHMgb2YgYW4gZWxlbWVudCBhbmQKKyAqIHN0b3JlcyB0aGUgcmVzdWx0IGluIGEgYnl0ZSBidWZmZXIuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gdG8gYXJyYXksIG9yIHplcm8gaWYgdGhlIGN1cnJlbnQKKyAqICAgICAgICAgaW5zdGFuY2UgaXMgbm90IHBvc2l0aW9uZWQgb24gYW4gZWxlbWVudCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFRleHRSZWFkZXJSZWFkQmluSGV4KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYXJyYXkgQVRUUklCVVRFX1VOVVNFRCwKKwkgICAgICAgICAgICAgICAgaW50IG9mZnNldCBBVFRSSUJVVEVfVU5VU0VELAorCQkJaW50IGxlbiBBVFRSSUJVVEVfVU5VU0VEKSB7CisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHJlYWRlci0+Y3R4dCA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPmN0eHQtPndlbGxGb3JtZWQgIT0gMSkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKChyZWFkZXItPm5vZGUgPT0gTlVMTCkgfHwgKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSkKKwlyZXR1cm4oMCk7CisgICAgVE9ETworICAgIHJldHVybigwKTsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJT3BlcmF0aW5nIG9uIGEgcHJlcGFyc2VkIHRyZWUJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50Cit4bWxUZXh0UmVhZGVyTmV4dFRyZWUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpCit7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgaWYgKHJlYWRlci0+c3RhdGUgPT0gWE1MX1RFWFRSRUFERVJfRU5EKQorICAgICAgICByZXR1cm4oMCk7CisKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpIHsKKyAgICAgICAgaWYgKHJlYWRlci0+ZG9jLT5jaGlsZHJlbiA9PSBOVUxMKSB7CisgICAgICAgICAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRU5EOworICAgICAgICAgICAgcmV0dXJuKDApOworICAgICAgICB9CisKKyAgICAgICAgcmVhZGVyLT5ub2RlID0gcmVhZGVyLT5kb2MtPmNoaWxkcmVuOworICAgICAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfU1RBUlQ7CisgICAgICAgIHJldHVybigxKTsKKyAgICB9CisKKyAgICBpZiAocmVhZGVyLT5zdGF0ZSAhPSBYTUxfVEVYVFJFQURFUl9CQUNLVFJBQ0spIHsKKwkvKiBIZXJlIHJlbW92ZWQgdHJhdmVyc2FsIHRvIGNoaWxkLCBiZWNhdXNlIHdlIHdhbnQgdG8gc2tpcCB0aGUgc3VidHJlZSwKKwlyZXBsYWNlIHdpdGggdHJhdmVyc2FsIHRvIHNpYmxpbmcgdG8gc2tpcCBzdWJ0cmVlICovCisgICAgICAgIGlmIChyZWFkZXItPm5vZGUtPm5leHQgIT0gMCkgeworCSAgICAvKiBNb3ZlIHRvIHNpYmxpbmcgaWYgcHJlc2VudCxza2lwcGluZyBzdWItdHJlZSAqLworICAgICAgICAgICAgcmVhZGVyLT5ub2RlID0gcmVhZGVyLT5ub2RlLT5uZXh0OworICAgICAgICAgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX1NUQVJUOworICAgICAgICAgICAgcmV0dXJuKDEpOworICAgICAgICB9CisKKwkvKiBpZiByZWFkZXItPm5vZGUtPm5leHQgaXMgTlVMTCBtZWFuIG5vIHN1YnRyZWUgZm9yIGN1cnJlbnQgbm9kZSwKKwlzbyBuZWVkIHRvIG1vdmUgdG8gc2libGluZyBvZiBwYXJlbnQgbm9kZSBpZiBwcmVzZW50ICovCisgICAgICAgIGlmICgocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisgICAgICAgICAgICAocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkpIHsKKyAgICAgICAgICAgIHJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9CQUNLVFJBQ0s7CisJICAgIC8qIFRoaXMgd2lsbCBtb3ZlIHRvIHBhcmVudCBpZiBwcmVzZW50ICovCisgICAgICAgICAgICB4bWxUZXh0UmVhZGVyUmVhZChyZWFkZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHJlYWRlci0+bm9kZS0+bmV4dCAhPSAwKSB7CisgICAgICAgIHJlYWRlci0+bm9kZSA9IHJlYWRlci0+bm9kZS0+bmV4dDsKKyAgICAgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX1NUQVJUOworICAgICAgICByZXR1cm4oMSk7CisgICAgfQorCisgICAgaWYgKHJlYWRlci0+bm9kZS0+cGFyZW50ICE9IDApIHsKKyAgICAgICAgaWYgKHJlYWRlci0+bm9kZS0+cGFyZW50LT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB7CisgICAgICAgICAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRU5EOworICAgICAgICAgICAgcmV0dXJuKDApOworICAgICAgICB9CisKKyAgICAgICAgcmVhZGVyLT5ub2RlID0gcmVhZGVyLT5ub2RlLT5wYXJlbnQ7CisgICAgICAgIHJlYWRlci0+ZGVwdGgtLTsKKyAgICAgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0JBQ0tUUkFDSzsKKwkvKiBSZXBlYXQgcHJvY2VzcyB0byBtb3ZlIHRvIHNpYmxpbmcgb2YgcGFyZW50IG5vZGUgaWYgcHJlc2VudCAqLworICAgICAgICB4bWxUZXh0UmVhZGVyTmV4dFRyZWUocmVhZGVyKTsKKyAgICB9CisKKyAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRU5EOworCisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJSZWFkVHJlZToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogIE1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgbmV4dCBub2RlIGluCisgKiAgdGhlIHN0cmVhbSwgZXhwb3NpbmcgaXRzIHByb3BlcnRpZXMuCisgKgorICogIFJldHVybnMgMSBpZiB0aGUgbm9kZSB3YXMgcmVhZCBzdWNjZXNzZnVsbHksIDAgaWYgdGhlcmUgaXMgbm8gbW9yZQorICogICAgICAgICAgbm9kZXMgdG8gcmVhZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxUZXh0UmVhZGVyUmVhZFRyZWUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAocmVhZGVyLT5zdGF0ZSA9PSBYTUxfVEVYVFJFQURFUl9FTkQpCisgICAgICAgIHJldHVybigwKTsKKworbmV4dF9ub2RlOgorICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkgeworICAgICAgICBpZiAocmVhZGVyLT5kb2MtPmNoaWxkcmVuID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9FTkQ7CisgICAgICAgICAgICByZXR1cm4oMCk7CisgICAgICAgIH0KKworICAgICAgICByZWFkZXItPm5vZGUgPSByZWFkZXItPmRvYy0+Y2hpbGRyZW47CisgICAgICAgIHJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9TVEFSVDsKKyAgICAgICAgZ290byBmb3VuZF9ub2RlOworICAgIH0KKworICAgIGlmICgocmVhZGVyLT5zdGF0ZSAhPSBYTUxfVEVYVFJFQURFUl9CQUNLVFJBQ0spICYmCisgICAgICAgIChyZWFkZXItPm5vZGUtPnR5cGUgIT0gWE1MX0RURF9OT0RFKSAmJgorICAgICAgICAocmVhZGVyLT5ub2RlLT50eXBlICE9IFhNTF9YSU5DTFVERV9TVEFSVCkgJiYKKwkocmVhZGVyLT5ub2RlLT50eXBlICE9IFhNTF9FTlRJVFlfUkVGX05PREUpKSB7CisgICAgICAgIGlmIChyZWFkZXItPm5vZGUtPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHJlYWRlci0+bm9kZSA9IHJlYWRlci0+bm9kZS0+Y2hpbGRyZW47CisgICAgICAgICAgICByZWFkZXItPmRlcHRoKys7CisgICAgICAgICAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfU1RBUlQ7CisgICAgICAgICAgICBnb3RvIGZvdW5kX25vZGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworICAgICAgICAgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0JBQ0tUUkFDSzsKKyAgICAgICAgICAgIGdvdG8gZm91bmRfbm9kZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyZWFkZXItPm5vZGUtPm5leHQgIT0gTlVMTCkgeworICAgICAgICByZWFkZXItPm5vZGUgPSByZWFkZXItPm5vZGUtPm5leHQ7CisgICAgICAgIHJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9TVEFSVDsKKyAgICAgICAgZ290byBmb3VuZF9ub2RlOworICAgIH0KKworICAgIGlmIChyZWFkZXItPm5vZGUtPnBhcmVudCAhPSBOVUxMKSB7CisgICAgICAgIGlmICgocmVhZGVyLT5ub2RlLT5wYXJlbnQtPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHx8CisJICAgIChyZWFkZXItPm5vZGUtPnBhcmVudC0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworICAgICAgICAgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX0VORDsKKyAgICAgICAgICAgIHJldHVybigwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlYWRlci0+bm9kZSA9IHJlYWRlci0+bm9kZS0+cGFyZW50OworICAgICAgICByZWFkZXItPmRlcHRoLS07CisgICAgICAgIHJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9CQUNLVFJBQ0s7CisgICAgICAgIGdvdG8gZm91bmRfbm9kZTsKKyAgICB9CisKKyAgICByZWFkZXItPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfRU5EOworCitmb3VuZF9ub2RlOgorICAgIGlmICgocmVhZGVyLT5ub2RlLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkgfHwKKyAgICAgICAgKHJlYWRlci0+bm9kZS0+dHlwZSA9PSBYTUxfWElOQ0xVREVfRU5EKSkKKwlnb3RvIG5leHRfbm9kZTsKKworICAgIHJldHVybigxKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyTmV4dFNpYmxpbmc6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFNraXAgdG8gdGhlIG5vZGUgZm9sbG93aW5nIHRoZSBjdXJyZW50IG9uZSBpbiBkb2N1bWVudCBvcmRlciB3aGlsZQorICogYXZvaWRpbmcgdGhlIHN1YnRyZWUgaWYgYW55LgorICogQ3VycmVudGx5IGltcGxlbWVudGVkIG9ubHkgZm9yIFJlYWRlcnMgYnVpbHQgb24gYSBkb2N1bWVudAorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgbm9kZSB3YXMgcmVhZCBzdWNjZXNzZnVsbHksIDAgaWYgdGhlcmUgaXMgbm8gbW9yZQorICogICAgICAgICAgbm9kZXMgdG8gcmVhZCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJOZXh0U2libGluZyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5kb2MgPT0gTlVMTCkgeworICAgICAgICAvKiBUT0RPICovCisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBpZiAocmVhZGVyLT5zdGF0ZSA9PSBYTUxfVEVYVFJFQURFUl9FTkQpCisgICAgICAgIHJldHVybigwKTsKKworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHhtbFRleHRSZWFkZXJOZXh0VHJlZShyZWFkZXIpKTsKKworICAgIGlmIChyZWFkZXItPm5vZGUtPm5leHQgIT0gTlVMTCkgeworICAgICAgICByZWFkZXItPm5vZGUgPSByZWFkZXItPm5vZGUtPm5leHQ7CisgICAgICAgIHJlYWRlci0+c3RhdGUgPSBYTUxfVEVYVFJFQURFUl9TVEFSVDsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9ycwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKgorICogeG1sTmV3VGV4dFJlYWRlcjoKKyAqIEBpbnB1dDogdGhlIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIHVzZWQgdG8gcmVhZCBkYXRhCisgKiBAVVJJOiB0aGUgVVJJIGluZm9ybWF0aW9uIGZvciB0aGUgc291cmNlIGlmIGF2YWlsYWJsZQorICoKKyAqIENyZWF0ZSBhbiB4bWxUZXh0UmVhZGVyIHN0cnVjdHVyZSBmZWQgd2l0aCBAaW5wdXQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgeG1sVGV4dFJlYWRlclB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sVGV4dFJlYWRlclB0cgoreG1sTmV3VGV4dFJlYWRlcih4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCwgY29uc3QgY2hhciAqVVJJKSB7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZXQ7CisKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgcmV0ID0geG1sTWFsbG9jKHNpemVvZih4bWxUZXh0UmVhZGVyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3VGV4dFJlYWRlciA6IG1hbGxvYyBmYWlsZWRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFRleHRSZWFkZXIpKTsKKyAgICByZXQtPmRvYyA9IE5VTEw7CisgICAgcmV0LT5lbnRUYWIgPSBOVUxMOworICAgIHJldC0+ZW50TWF4ID0gMDsKKyAgICByZXQtPmVudE5yID0gMDsKKyAgICByZXQtPmlucHV0ID0gaW5wdXQ7CisgICAgcmV0LT5idWZmZXIgPSB4bWxCdWZmZXJDcmVhdGVTaXplKDEwMCk7CisgICAgaWYgKHJldC0+YnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShyZXQpOworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5ld1RleHRSZWFkZXIgOiBtYWxsb2MgZmFpbGVkXG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldC0+c2F4ID0gKHhtbFNBWEhhbmRsZXIgKikgeG1sTWFsbG9jKHNpemVvZih4bWxTQVhIYW5kbGVyKSk7CisgICAgaWYgKHJldC0+c2F4ID09IE5VTEwpIHsKKwl4bWxCdWZmZXJGcmVlKHJldC0+YnVmZmVyKTsKKwl4bWxGcmVlKHJldCk7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3VGV4dFJlYWRlciA6IG1hbGxvYyBmYWlsZWRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgeG1sU0FYVmVyc2lvbihyZXQtPnNheCwgMik7CisgICAgcmV0LT5zdGFydEVsZW1lbnQgPSByZXQtPnNheC0+c3RhcnRFbGVtZW50OworICAgIHJldC0+c2F4LT5zdGFydEVsZW1lbnQgPSB4bWxUZXh0UmVhZGVyU3RhcnRFbGVtZW50OworICAgIHJldC0+ZW5kRWxlbWVudCA9IHJldC0+c2F4LT5lbmRFbGVtZW50OworICAgIHJldC0+c2F4LT5lbmRFbGVtZW50ID0geG1sVGV4dFJlYWRlckVuZEVsZW1lbnQ7CisjaWZkZWYgTElCWE1MX1NBWDFfRU5BQkxFRAorICAgIGlmIChyZXQtPnNheC0+aW5pdGlhbGl6ZWQgPT0gWE1MX1NBWDJfTUFHSUMpIHsKKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisJcmV0LT5zdGFydEVsZW1lbnROcyA9IHJldC0+c2F4LT5zdGFydEVsZW1lbnROczsKKwlyZXQtPnNheC0+c3RhcnRFbGVtZW50TnMgPSB4bWxUZXh0UmVhZGVyU3RhcnRFbGVtZW50TnM7CisJcmV0LT5lbmRFbGVtZW50TnMgPSByZXQtPnNheC0+ZW5kRWxlbWVudE5zOworCXJldC0+c2F4LT5lbmRFbGVtZW50TnMgPSB4bWxUZXh0UmVhZGVyRW5kRWxlbWVudE5zOworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICB9IGVsc2UgeworCXJldC0+c3RhcnRFbGVtZW50TnMgPSBOVUxMOworCXJldC0+ZW5kRWxlbWVudE5zID0gTlVMTDsKKyAgICB9CisjZW5kaWYgLyogTElCWE1MX1NBWDFfRU5BQkxFRCAqLworICAgIHJldC0+Y2hhcmFjdGVycyA9IHJldC0+c2F4LT5jaGFyYWN0ZXJzOworICAgIHJldC0+c2F4LT5jaGFyYWN0ZXJzID0geG1sVGV4dFJlYWRlckNoYXJhY3RlcnM7CisgICAgcmV0LT5zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UgPSB4bWxUZXh0UmVhZGVyQ2hhcmFjdGVyczsKKyAgICByZXQtPmNkYXRhQmxvY2sgPSByZXQtPnNheC0+Y2RhdGFCbG9jazsKKyAgICByZXQtPnNheC0+Y2RhdGFCbG9jayA9IHhtbFRleHRSZWFkZXJDRGF0YUJsb2NrOworCisgICAgcmV0LT5tb2RlID0gWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMOworICAgIHJldC0+bm9kZSA9IE5VTEw7CisgICAgcmV0LT5jdXJub2RlID0gTlVMTDsKKyAgICBpZiAocmV0LT5pbnB1dC0+YnVmZmVyLT51c2UgPCA0KSB7CisJeG1sUGFyc2VySW5wdXRCdWZmZXJSZWFkKGlucHV0LCA0KTsKKyAgICB9CisgICAgaWYgKHJldC0+aW5wdXQtPmJ1ZmZlci0+dXNlID49IDQpIHsKKwlyZXQtPmN0eHQgPSB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dChyZXQtPnNheCwgTlVMTCwKKwkJCShjb25zdCBjaGFyICopIHJldC0+aW5wdXQtPmJ1ZmZlci0+Y29udGVudCwgNCwgVVJJKTsKKwlyZXQtPmJhc2UgPSAwOworCXJldC0+Y3VyID0gNDsKKyAgICB9IGVsc2UgeworCXJldC0+Y3R4dCA9IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KHJldC0+c2F4LCBOVUxMLCBOVUxMLCAwLCBVUkkpOworCXJldC0+YmFzZSA9IDA7CisJcmV0LT5jdXIgPSAwOworICAgIH0KKworICAgIGlmIChyZXQtPmN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbE5ld1RleHRSZWFkZXIgOiBtYWxsb2MgZmFpbGVkXG4iKTsKKwl4bWxCdWZmZXJGcmVlKHJldC0+YnVmZmVyKTsKKwl4bWxGcmVlKHJldC0+c2F4KTsKKwl4bWxGcmVlKHJldCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXQtPmN0eHQtPnBhcnNlTW9kZSA9IFhNTF9QQVJTRV9SRUFERVI7CisgICAgcmV0LT5jdHh0LT5fcHJpdmF0ZSA9IHJldDsKKyAgICByZXQtPmN0eHQtPmxpbmVudW1iZXJzID0gMTsKKyAgICByZXQtPmN0eHQtPmRpY3ROYW1lcyA9IDE7CisgICAgcmV0LT5hbGxvY3MgPSBYTUxfVEVYVFJFQURFUl9DVFhUOworICAgIC8qCisgICAgICogdXNlIHRoZSBwYXJzZXIgZGljdGlvbm5hcnkgdG8gYWxsb2NhdGUgYWxsIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIG5hbWVzCisgICAgICovCisgICAgcmV0LT5jdHh0LT5kb2NkaWN0ID0gMTsKKyAgICByZXQtPmRpY3QgPSByZXQtPmN0eHQtPmRpY3Q7CisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICByZXQtPnhpbmNsdWRlID0gMDsKKyNlbmRpZgorI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyAgICByZXQtPnBhdHRlcm5NYXggPSAwOworICAgIHJldC0+cGF0dGVyblRhYiA9IE5VTEw7CisjZW5kaWYKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxOZXdUZXh0UmVhZGVyRmlsZW5hbWU6CisgKiBAVVJJOiB0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSB0byBwcm9jZXNzCisgKgorICogQ3JlYXRlIGFuIHhtbFRleHRSZWFkZXIgc3RydWN0dXJlIGZlZCB3aXRoIHRoZSByZXNvdXJjZSBhdCBAVVJJCisgKgorICogUmV0dXJucyB0aGUgbmV3IHhtbFRleHRSZWFkZXJQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFRleHRSZWFkZXJQdHIKK3htbE5ld1RleHRSZWFkZXJGaWxlbmFtZShjb25zdCBjaGFyICpVUkkpIHsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJldDsKKyAgICBjaGFyICpkaXJlY3RvcnkgPSBOVUxMOworCisgICAgaW5wdXQgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKFVSSSwgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldCA9IHhtbE5ld1RleHRSZWFkZXIoaW5wdXQsIFVSSSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGlucHV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldC0+YWxsb2NzIHw9IFhNTF9URVhUUkVBREVSX0lOUFVUOworICAgIGlmIChyZXQtPmN0eHQtPmRpcmVjdG9yeSA9PSBOVUxMKQorICAgICAgICBkaXJlY3RvcnkgPSB4bWxQYXJzZXJHZXREaXJlY3RvcnkoVVJJKTsKKyAgICBpZiAoKHJldC0+Y3R4dC0+ZGlyZWN0b3J5ID09IE5VTEwpICYmIChkaXJlY3RvcnkgIT0gTlVMTCkpCisgICAgICAgIHJldC0+Y3R4dC0+ZGlyZWN0b3J5ID0gKGNoYXIgKikgeG1sU3RyZHVwKCh4bWxDaGFyICopIGRpcmVjdG9yeSk7CisgICAgaWYgKGRpcmVjdG9yeSAhPSBOVUxMKQorCXhtbEZyZWUoZGlyZWN0b3J5KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxGcmVlVGV4dFJlYWRlcjoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0cgorICoKKyAqIERlYWxsb2NhdGUgYWxsIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgcmVhZGVyCisgKi8KK3ZvaWQKK3htbEZyZWVUZXh0UmVhZGVyKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybjsKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisgICAgaWYgKHJlYWRlci0+cm5nU2NoZW1hcyAhPSBOVUxMKSB7CisJeG1sUmVsYXhOR0ZyZWUocmVhZGVyLT5ybmdTY2hlbWFzKTsKKwlyZWFkZXItPnJuZ1NjaGVtYXMgPSBOVUxMOworICAgIH0KKyAgICBpZiAocmVhZGVyLT5ybmdWYWxpZEN0eHQgIT0gTlVMTCkgeworCXhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KHJlYWRlci0+cm5nVmFsaWRDdHh0KTsKKwlyZWFkZXItPnJuZ1ZhbGlkQ3R4dCA9IE5VTEw7CisgICAgfQorICAgIGlmIChyZWFkZXItPnhzZFBsdWcgIT0gTlVMTCkgeworCXhtbFNjaGVtYVNBWFVucGx1ZyhyZWFkZXItPnhzZFBsdWcpOworCXJlYWRlci0+eHNkUGx1ZyA9IE5VTEw7CisgICAgfQorICAgIGlmIChyZWFkZXItPnhzZFZhbGlkQ3R4dCAhPSBOVUxMKSB7CisJaWYgKCEgcmVhZGVyLT54c2RQcmVzZXJ2ZUN0eHQpCisJICAgIHhtbFNjaGVtYUZyZWVWYWxpZEN0eHQocmVhZGVyLT54c2RWYWxpZEN0eHQpOworCXJlYWRlci0+eHNkVmFsaWRDdHh0ID0gTlVMTDsKKyAgICB9CisgICAgaWYgKHJlYWRlci0+eHNkU2NoZW1hcyAhPSBOVUxMKSB7CisJeG1sU2NoZW1hRnJlZShyZWFkZXItPnhzZFNjaGVtYXMpOworCXJlYWRlci0+eHNkU2NoZW1hcyA9IE5VTEw7CisgICAgfQorI2VuZGlmCisjaWZkZWYgTElCWE1MX1hJTkNMVURFX0VOQUJMRUQKKyAgICBpZiAocmVhZGVyLT54aW5jY3R4dCAhPSBOVUxMKQorCXhtbFhJbmNsdWRlRnJlZUNvbnRleHQocmVhZGVyLT54aW5jY3R4dCk7CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisgICAgaWYgKHJlYWRlci0+cGF0dGVyblRhYiAhPSBOVUxMKSB7CisgICAgICAgIGludCBpOworCWZvciAoaSA9IDA7aSA8IHJlYWRlci0+cGF0dGVybk5yO2krKykgeworCSAgICBpZiAocmVhZGVyLT5wYXR0ZXJuVGFiW2ldICE9IE5VTEwpCisJICAgICAgICB4bWxGcmVlUGF0dGVybihyZWFkZXItPnBhdHRlcm5UYWJbaV0pOworCX0KKwl4bWxGcmVlKHJlYWRlci0+cGF0dGVyblRhYik7CisgICAgfQorI2VuZGlmCisgICAgaWYgKHJlYWRlci0+ZmFrZXRleHQgIT0gTlVMTCkgeworCXhtbEZyZWVOb2RlKHJlYWRlci0+ZmFrZXRleHQpOworICAgIH0KKyAgICBpZiAocmVhZGVyLT5jdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHJlYWRlci0+ZGljdCA9PSByZWFkZXItPmN0eHQtPmRpY3QpCisJICAgIHJlYWRlci0+ZGljdCA9IE5VTEw7CisJaWYgKHJlYWRlci0+Y3R4dC0+bXlEb2MgIT0gTlVMTCkgeworCSAgICBpZiAocmVhZGVyLT5wcmVzZXJ2ZSA9PSAwKQorCQl4bWxUZXh0UmVhZGVyRnJlZURvYyhyZWFkZXIsIHJlYWRlci0+Y3R4dC0+bXlEb2MpOworCSAgICByZWFkZXItPmN0eHQtPm15RG9jID0gTlVMTDsKKwl9CisJaWYgKChyZWFkZXItPmN0eHQtPnZjdHh0LnZzdGF0ZVRhYiAhPSBOVUxMKSAmJgorCSAgICAocmVhZGVyLT5jdHh0LT52Y3R4dC52c3RhdGVNYXggPiAwKSl7CisJICAgIHhtbEZyZWUocmVhZGVyLT5jdHh0LT52Y3R4dC52c3RhdGVUYWIpOworCSAgICByZWFkZXItPmN0eHQtPnZjdHh0LnZzdGF0ZVRhYiA9IE5VTEw7CisJICAgIHJlYWRlci0+Y3R4dC0+dmN0eHQudnN0YXRlTWF4ID0gMDsKKwl9CisJaWYgKHJlYWRlci0+YWxsb2NzICYgWE1MX1RFWFRSRUFERVJfQ1RYVCkKKwkgICAgeG1sRnJlZVBhcnNlckN0eHQocmVhZGVyLT5jdHh0KTsKKyAgICB9CisgICAgaWYgKHJlYWRlci0+c2F4ICE9IE5VTEwpCisJeG1sRnJlZShyZWFkZXItPnNheCk7CisgICAgaWYgKChyZWFkZXItPmlucHV0ICE9IE5VTEwpICAmJiAocmVhZGVyLT5hbGxvY3MgJiBYTUxfVEVYVFJFQURFUl9JTlBVVCkpCisJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKHJlYWRlci0+aW5wdXQpOworICAgIGlmIChyZWFkZXItPmJ1ZmZlciAhPSBOVUxMKQorICAgICAgICB4bWxCdWZmZXJGcmVlKHJlYWRlci0+YnVmZmVyKTsKKyAgICBpZiAocmVhZGVyLT5lbnRUYWIgIT0gTlVMTCkKKwl4bWxGcmVlKHJlYWRlci0+ZW50VGFiKTsKKyAgICBpZiAocmVhZGVyLT5kaWN0ICE9IE5VTEwpCisgICAgICAgIHhtbERpY3RGcmVlKHJlYWRlci0+ZGljdCk7CisgICAgeG1sRnJlZShyZWFkZXIpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJTWV0aG9kcyBmb3IgWG1sVGV4dFJlYWRlcgkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKgorICogeG1sVGV4dFJlYWRlckNsb3NlOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBUaGlzIG1ldGhvZCByZWxlYXNlcyBhbnkgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSB0aGUgY3VycmVudCBpbnN0YW5jZQorICogY2hhbmdlcyB0aGUgc3RhdGUgdG8gQ2xvc2VkIGFuZCBjbG9zZSBhbnkgdW5kZXJseWluZyBpbnB1dC4KKyAqCisgKiBSZXR1cm5zIDAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJDbG9zZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIHJlYWRlci0+bm9kZSA9IE5VTEw7CisgICAgcmVhZGVyLT5jdXJub2RlID0gTlVMTDsKKyAgICByZWFkZXItPm1vZGUgPSBYTUxfVEVYVFJFQURFUl9NT0RFX0NMT1NFRDsKKyAgICBpZiAocmVhZGVyLT5jdHh0ICE9IE5VTEwpIHsKKwl4bWxTdG9wUGFyc2VyKHJlYWRlci0+Y3R4dCk7CisJaWYgKHJlYWRlci0+Y3R4dC0+bXlEb2MgIT0gTlVMTCkgeworCSAgICBpZiAocmVhZGVyLT5wcmVzZXJ2ZSA9PSAwKQorCQl4bWxUZXh0UmVhZGVyRnJlZURvYyhyZWFkZXIsIHJlYWRlci0+Y3R4dC0+bXlEb2MpOworCSAgICByZWFkZXItPmN0eHQtPm15RG9jID0gTlVMTDsKKwl9CisgICAgfQorICAgIGlmICgocmVhZGVyLT5pbnB1dCAhPSBOVUxMKSAgJiYgKHJlYWRlci0+YWxsb2NzICYgWE1MX1RFWFRSRUFERVJfSU5QVVQpKSB7CisJeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKHJlYWRlci0+aW5wdXQpOworCXJlYWRlci0+YWxsb2NzIC09IFhNTF9URVhUUkVBREVSX0lOUFVUOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZU5vOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBubzogdGhlIHplcm8tYmFzZWQgaW5kZXggb2YgdGhlIGF0dHJpYnV0ZSByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50CisgKgorICogUHJvdmlkZXMgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgd2l0aCB0aGUgc3BlY2lmaWVkIGluZGV4IHJlbGF0aXZlCisgKiB0byB0aGUgY29udGFpbmluZyBlbGVtZW50LgorICoKKyAqIFJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUsIG9yIE5VTEwKKyAqICAgIGluIGNhc2Ugb2YgZXJyb3IuIFRoZSBzdHJpbmcgbXVzdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLgorICovCit4bWxDaGFyICoKK3htbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVObyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgaW50IG5vKSB7CisgICAgeG1sQ2hhciAqcmV0OworICAgIGludCBpOworICAgIHhtbEF0dHJQdHIgY3VyOworICAgIHhtbE5zUHRyIG5zOworCisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgLyogVE9ETzogaGFuZGxlIHRoZSB4bWxEZWNsICovCisgICAgaWYgKHJlYWRlci0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybihOVUxMKTsKKworICAgIG5zID0gcmVhZGVyLT5ub2RlLT5uc0RlZjsKKyAgICBmb3IgKGkgPSAwOyhpIDwgbm8pICYmIChucyAhPSBOVUxMKTtpKyspIHsKKwlucyA9IG5zLT5uZXh0OworICAgIH0KKyAgICBpZiAobnMgIT0gTlVMTCkKKwlyZXR1cm4oeG1sU3RyZHVwKG5zLT5ocmVmKSk7CisKKyAgICBjdXIgPSByZWFkZXItPm5vZGUtPnByb3BlcnRpZXM7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBmb3IgKDtpIDwgbm87aSsrKSB7CisJY3VyID0gY3VyLT5uZXh0OworCWlmIChjdXIgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICAvKiBUT0RPIHdhbGsgdGhlIERURCBpZiBwcmVzZW50ICovCisKKyAgICByZXQgPSB4bWxOb2RlTGlzdEdldFN0cmluZyhyZWFkZXItPm5vZGUtPmRvYywgY3VyLT5jaGlsZHJlbiwgMSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm4oeG1sU3RyZHVwKCh4bWxDaGFyICopIiIpKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBuYW1lOiB0aGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4KKyAqCisgKiBQcm92aWRlcyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSB3aXRoIHRoZSBzcGVjaWZpZWQgcXVhbGlmaWVkIG5hbWUuCisgKgorICogUmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZSwgb3IgTlVMTAorICogICAgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sVGV4dFJlYWRlckdldEF0dHJpYnV0ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbENoYXIgKnByZWZpeCA9IE5VTEw7CisgICAgeG1sQ2hhciAqbG9jYWxuYW1lOworICAgIHhtbE5zUHRyIG5zOworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAobmFtZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgLyogVE9ETzogaGFuZGxlIHRoZSB4bWxEZWNsICovCisgICAgaWYgKHJlYWRlci0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybihOVUxMKTsKKworICAgIGxvY2FsbmFtZSA9IHhtbFNwbGl0UU5hbWUyKG5hbWUsICZwcmVmaXgpOworICAgIGlmIChsb2NhbG5hbWUgPT0gTlVMTCkgeworCQkvKgorCQkgKiBOYW1lc3BhY2UgZGVmYXVsdCBkZWNsCisJCSAqLworCQlpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgInhtbG5zIikpIHsKKwkJCW5zID0gcmVhZGVyLT5ub2RlLT5uc0RlZjsKKwkJCXdoaWxlIChucyAhPSBOVUxMKSB7CisJCQkJaWYgKG5zLT5wcmVmaXggPT0gTlVMTCkgeworCQkJCQlyZXR1cm4oeG1sU3RyZHVwKG5zLT5ocmVmKSk7CisJCQkJfQorCQkJCW5zID0gbnMtPm5leHQ7CisJCQl9CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCQlyZXR1cm4oeG1sR2V0Tm9Oc1Byb3AocmVhZGVyLT5ub2RlLCBuYW1lKSk7CisJfQorCisgICAgLyoKKyAgICAgKiBOYW1lc3BhY2UgZGVmYXVsdCBkZWNsCisgICAgICovCisgICAgaWYgKHhtbFN0ckVxdWFsKHByZWZpeCwgQkFEX0NBU1QgInhtbG5zIikpIHsKKwkJbnMgPSByZWFkZXItPm5vZGUtPm5zRGVmOworCQl3aGlsZSAobnMgIT0gTlVMTCkgeworCQkJaWYgKChucy0+cHJlZml4ICE9IE5VTEwpICYmICh4bWxTdHJFcXVhbChucy0+cHJlZml4LCBsb2NhbG5hbWUpKSkgeworCQkJCXJldCA9IHhtbFN0cmR1cChucy0+aHJlZik7CisJCQkJYnJlYWs7CisJCQl9CisJCQlucyA9IG5zLT5uZXh0OworCQl9CisgICAgfSBlbHNlIHsKKwkJbnMgPSB4bWxTZWFyY2hOcyhyZWFkZXItPm5vZGUtPmRvYywgcmVhZGVyLT5ub2RlLCBwcmVmaXgpOworCQlpZiAobnMgIT0gTlVMTCkKKwkJCXJldCA9IHhtbEdldE5zUHJvcChyZWFkZXItPm5vZGUsIGxvY2FsbmFtZSwgbnMtPmhyZWYpOworCX0KKworICAgIHhtbEZyZWUobG9jYWxuYW1lKTsKKyAgICBpZiAocHJlZml4ICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUocHJlZml4KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworCisvKioKKyAqIHhtbFRleHRSZWFkZXJHZXRBdHRyaWJ1dGVOczoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAbG9jYWxOYW1lOiB0aGUgbG9jYWwgbmFtZSBvZiB0aGUgYXR0cmlidXRlLgorICogQG5hbWVzcGFjZVVSSTogdGhlIG5hbWVzcGFjZSBVUkkgb2YgdGhlIGF0dHJpYnV0ZS4KKyAqCisgKiBQcm92aWRlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUKKyAqCisgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlLCBvciBOVUxMCisgKiAgICBpbiBjYXNlIG9mIGVycm9yLiBUaGUgc3RyaW5nIG11c3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyR2V0QXR0cmlidXRlTnMoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsIGNvbnN0IHhtbENoYXIgKmxvY2FsTmFtZSwKKwkJCSAgICBjb25zdCB4bWxDaGFyICpuYW1lc3BhY2VVUkkpIHsKKyAgICB4bWxDaGFyICpwcmVmaXggPSBOVUxMOworICAgIHhtbE5zUHRyIG5zOworCisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKGxvY2FsTmFtZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgLyogVE9ETzogaGFuZGxlIHRoZSB4bWxEZWNsICovCisgICAgaWYgKHJlYWRlci0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybihOVUxMKTsKKworICAgIGlmICh4bWxTdHJFcXVhbChuYW1lc3BhY2VVUkksIEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIpKSB7CisJCWlmICghIHhtbFN0ckVxdWFsKGxvY2FsTmFtZSwgQkFEX0NBU1QgInhtbG5zIikpIHsKKwkJCXByZWZpeCA9IEJBRF9DQVNUIGxvY2FsTmFtZTsKKwkJfQorCQlucyA9IHJlYWRlci0+bm9kZS0+bnNEZWY7CisJCXdoaWxlIChucyAhPSBOVUxMKSB7CisJCQlpZiAoKHByZWZpeCA9PSBOVUxMICYmIG5zLT5wcmVmaXggPT0gTlVMTCkgfHwKKwkJCQkoKG5zLT5wcmVmaXggIT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKG5zLT5wcmVmaXgsIGxvY2FsTmFtZSkpKSkgeworCQkJCXJldHVybiB4bWxTdHJkdXAobnMtPmhyZWYpOworCQkJfQorCQkJbnMgPSBucy0+bmV4dDsKKwkJfQorCQlyZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4oeG1sR2V0TnNQcm9wKHJlYWRlci0+bm9kZSwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyR2V0UmVtYWluZGVyOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBNZXRob2QgdG8gZ2V0IHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlcmVkIFhNTC4gdGhpcyBtZXRob2Qgc3RvcHMgdGhlCisgKiBwYXJzZXIsIHNldCBpdHMgc3RhdGUgdG8gRW5kIE9mIEZpbGUgYW5kIHJldHVybiB0aGUgaW5wdXQgc3RyZWFtIHdpdGgKKyAqIHdoYXQgaXMgbGVmdCB0aGF0IHRoZSBwYXJzZXIgZGlkIG5vdCB1c2UuCisgKgorICogVGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdCBnb29kLCB0aGUgcGFyc2VyIGNlcnRhaW5seSBwcm9jZ3Jlc3NlZCBwYXN0CisgKiB3aGF0J3MgbGVmdCBpbiByZWFkZXItPmlucHV0LCBhbmQgdGhlcmUgaXMgYW4gYWxsb2NhdGlvbiBwcm9ibGVtLiBCZXN0CisgKiB3b3VsZCBiZSB0byByZXdyaXRlIGl0IGRpZmZlcmVudGx5LgorICoKKyAqIFJldHVybnMgdGhlIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGF0dGFjaGVkIHRvIHRoZSBYTUwgb3IgTlVMTAorICogICAgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIKK3htbFRleHRSZWFkZXJHZXRSZW1haW5kZXIoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciByZXQgPSBOVUxMOworCisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgcmVhZGVyLT5ub2RlID0gTlVMTDsKKyAgICByZWFkZXItPmN1cm5vZGUgPSBOVUxMOworICAgIHJlYWRlci0+bW9kZSA9IFhNTF9URVhUUkVBREVSX01PREVfRU9GOworICAgIGlmIChyZWFkZXItPmN0eHQgIT0gTlVMTCkgeworCXhtbFN0b3BQYXJzZXIocmVhZGVyLT5jdHh0KTsKKwlpZiAocmVhZGVyLT5jdHh0LT5teURvYyAhPSBOVUxMKSB7CisJICAgIGlmIChyZWFkZXItPnByZXNlcnZlID09IDApCisJCXhtbFRleHRSZWFkZXJGcmVlRG9jKHJlYWRlciwgcmVhZGVyLT5jdHh0LT5teURvYyk7CisJICAgIHJlYWRlci0+Y3R4dC0+bXlEb2MgPSBOVUxMOworCX0KKyAgICB9CisgICAgaWYgKHJlYWRlci0+YWxsb2NzICYgWE1MX1RFWFRSRUFERVJfSU5QVVQpIHsKKwlyZXQgPSByZWFkZXItPmlucHV0OworCXJlYWRlci0+aW5wdXQgPSBOVUxMOworCXJlYWRlci0+YWxsb2NzIC09IFhNTF9URVhUUkVBREVSX0lOUFVUOworICAgIH0gZWxzZSB7CisJLyoKKwkgKiBIdW0sIG9uZSBtYXkgbmVlZCB0byBkdXBsaWNhdGUgdGhlIGRhdGEgc3RydWN0dXJlIGJlY2F1c2UKKwkgKiB3aXRob3V0IHJlZmVyZW5jZSBjb3VudGluZyB0aGUgaW5wdXQgbWF5IGJlIGZyZWVkIHR3aWNlOgorCSAqICAgLSBieSB0aGUgbGF5ZXIgd2hpY2ggYWxsb2NhdGVkIGl0LgorCSAqICAgLSBieSB0aGUgbGF5ZXIgdG8gd2hpY2ggd291bGQgaGF2ZSBiZWVuIHJldHVybmVkIHRvLgorCSAqLworCVRPRE8KKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2U6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQHByZWZpeDogdGhlIHByZWZpeCB3aG9zZSBuYW1lc3BhY2UgVVJJIGlzIHRvIGJlIHJlc29sdmVkLiBUbyByZXR1cm4KKyAqICAgICAgICAgIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSwgc3BlY2lmeSBOVUxMCisgKgorICogUmVzb2x2ZXMgYSBuYW1lc3BhY2UgcHJlZml4IGluIHRoZSBzY29wZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LgorICoKKyAqIFJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZXNwYWNlIFVSSSB0byB3aGljaCB0aGUgcHJlZml4IG1hcHMKKyAqICAgIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4gVGhlIHN0cmluZyBtdXN0IGJlIGRlYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sVGV4dFJlYWRlckxvb2t1cE5hbWVzcGFjZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgY29uc3QgeG1sQ2hhciAqcHJlZml4KSB7CisgICAgeG1sTnNQdHIgbnM7CisKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBucyA9IHhtbFNlYXJjaE5zKHJlYWRlci0+bm9kZS0+ZG9jLCByZWFkZXItPm5vZGUsIHByZWZpeCk7CisgICAgaWYgKG5zID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldHVybih4bWxTdHJkdXAobnMtPmhyZWYpKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyTW92ZVRvQXR0cmlidXRlTm86CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQG5vOiB0aGUgemVyby1iYXNlZCBpbmRleCBvZiB0aGUgYXR0cmlidXRlIHJlbGF0aXZlIHRvIHRoZSBjb250YWluaW5nCisgKiAgICAgIGVsZW1lbnQuCisgKgorICogTW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBhdHRyaWJ1dGUgd2l0aAorICogdGhlIHNwZWNpZmllZCBpbmRleCByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBlbGVtZW50LgorICoKKyAqIFJldHVybnMgMSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kCisgKi8KK2ludAoreG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZU5vKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCBpbnQgbm8pIHsKKyAgICBpbnQgaTsKKyAgICB4bWxBdHRyUHRyIGN1cjsKKyAgICB4bWxOc1B0ciBuczsKKworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIC8qIFRPRE86IGhhbmRsZSB0aGUgeG1sRGVjbCAqLworICAgIGlmIChyZWFkZXItPm5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwlyZXR1cm4oLTEpOworCisgICAgcmVhZGVyLT5jdXJub2RlID0gTlVMTDsKKworICAgIG5zID0gcmVhZGVyLT5ub2RlLT5uc0RlZjsKKyAgICBmb3IgKGkgPSAwOyhpIDwgbm8pICYmIChucyAhPSBOVUxMKTtpKyspIHsKKwlucyA9IG5zLT5uZXh0OworICAgIH0KKyAgICBpZiAobnMgIT0gTlVMTCkgeworCXJlYWRlci0+Y3Vybm9kZSA9ICh4bWxOb2RlUHRyKSBuczsKKwlyZXR1cm4oMSk7CisgICAgfQorCisgICAgY3VyID0gcmVhZGVyLT5ub2RlLT5wcm9wZXJ0aWVzOworICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm4oMCk7CisgICAgZm9yICg7aSA8IG5vO2krKykgeworCWN1ciA9IGN1ci0+bmV4dDsKKwlpZiAoY3VyID09IE5VTEwpCisJICAgIHJldHVybigwKTsKKyAgICB9CisgICAgLyogVE9ETyB3YWxrIHRoZSBEVEQgaWYgcHJlc2VudCAqLworCisgICAgcmVhZGVyLT5jdXJub2RlID0gKHhtbE5vZGVQdHIpIGN1cjsKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlck1vdmVUb0F0dHJpYnV0ZToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAbmFtZTogdGhlIHF1YWxpZmllZCBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUuCisgKgorICogTW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBhdHRyaWJ1dGUgd2l0aAorICogdGhlIHNwZWNpZmllZCBxdWFsaWZpZWQgbmFtZS4KKyAqCisgKiBSZXR1cm5zIDEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBmb3VuZAorICovCitpbnQKK3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsIGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB4bWxDaGFyICpwcmVmaXggPSBOVUxMOworICAgIHhtbENoYXIgKmxvY2FsbmFtZTsKKyAgICB4bWxOc1B0ciBuczsKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAobmFtZSA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgLyogVE9ETzogaGFuZGxlIHRoZSB4bWxEZWNsICovCisgICAgaWYgKHJlYWRlci0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybigwKTsKKworICAgIGxvY2FsbmFtZSA9IHhtbFNwbGl0UU5hbWUyKG5hbWUsICZwcmVmaXgpOworICAgIGlmIChsb2NhbG5hbWUgPT0gTlVMTCkgeworCS8qCisJICogTmFtZXNwYWNlIGRlZmF1bHQgZGVjbAorCSAqLworCWlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAieG1sbnMiKSkgeworCSAgICBucyA9IHJlYWRlci0+bm9kZS0+bnNEZWY7CisJICAgIHdoaWxlIChucyAhPSBOVUxMKSB7CisJCWlmIChucy0+cHJlZml4ID09IE5VTEwpIHsKKwkJICAgIHJlYWRlci0+Y3Vybm9kZSA9ICh4bWxOb2RlUHRyKSBuczsKKwkJICAgIHJldHVybigxKTsKKwkJfQorCQlucyA9IG5zLT5uZXh0OworCSAgICB9CisJICAgIHJldHVybigwKTsKKwl9CisKKwlwcm9wID0gcmVhZGVyLT5ub2RlLT5wcm9wZXJ0aWVzOworCXdoaWxlIChwcm9wICE9IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgICogT25lIG5lZWQgdG8gaGF2ZQorCSAgICAgKiAgIC0gc2FtZSBhdHRyaWJ1dGUgbmFtZXMKKwkgICAgICogICAtIGFuZCB0aGUgYXR0cmlidXRlIGNhcnJ5aW5nIHRoYXQgbmFtZXNwYWNlCisJICAgICAqLworCSAgICBpZiAoKHhtbFN0ckVxdWFsKHByb3AtPm5hbWUsIG5hbWUpKSAmJgorCQkoKHByb3AtPm5zID09IE5VTEwpIHx8IChwcm9wLT5ucy0+cHJlZml4ID09IE5VTEwpKSkgeworCQlyZWFkZXItPmN1cm5vZGUgPSAoeG1sTm9kZVB0cikgcHJvcDsKKwkJcmV0dXJuKDEpOworCSAgICB9CisJICAgIHByb3AgPSBwcm9wLT5uZXh0OworCX0KKwlyZXR1cm4oMCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lc3BhY2UgZGVmYXVsdCBkZWNsCisgICAgICovCisgICAgaWYgKHhtbFN0ckVxdWFsKHByZWZpeCwgQkFEX0NBU1QgInhtbG5zIikpIHsKKwlucyA9IHJlYWRlci0+bm9kZS0+bnNEZWY7CisJd2hpbGUgKG5zICE9IE5VTEwpIHsKKwkgICAgaWYgKChucy0+cHJlZml4ICE9IE5VTEwpICYmICh4bWxTdHJFcXVhbChucy0+cHJlZml4LCBsb2NhbG5hbWUpKSkgeworCQlyZWFkZXItPmN1cm5vZGUgPSAoeG1sTm9kZVB0cikgbnM7CisJCWdvdG8gZm91bmQ7CisJICAgIH0KKwkgICAgbnMgPSBucy0+bmV4dDsKKwl9CisJZ290byBub3RfZm91bmQ7CisgICAgfQorICAgIHByb3AgPSByZWFkZXItPm5vZGUtPnByb3BlcnRpZXM7CisgICAgd2hpbGUgKHByb3AgIT0gTlVMTCkgeworCS8qCisJICogT25lIG5lZWQgdG8gaGF2ZQorCSAqICAgLSBzYW1lIGF0dHJpYnV0ZSBuYW1lcworCSAqICAgLSBhbmQgdGhlIGF0dHJpYnV0ZSBjYXJyeWluZyB0aGF0IG5hbWVzcGFjZQorCSAqLworCWlmICgoeG1sU3RyRXF1YWwocHJvcC0+bmFtZSwgbG9jYWxuYW1lKSkgJiYKKwkgICAgKHByb3AtPm5zICE9IE5VTEwpICYmICh4bWxTdHJFcXVhbChwcm9wLT5ucy0+cHJlZml4LCBwcmVmaXgpKSkgeworCSAgICByZWFkZXItPmN1cm5vZGUgPSAoeG1sTm9kZVB0cikgcHJvcDsKKwkgICAgZ290byBmb3VuZDsKKwl9CisJcHJvcCA9IHByb3AtPm5leHQ7CisgICAgfQorbm90X2ZvdW5kOgorICAgIGlmIChsb2NhbG5hbWUgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShsb2NhbG5hbWUpOworICAgIGlmIChwcmVmaXggIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShwcmVmaXgpOworICAgIHJldHVybigwKTsKKworZm91bmQ6CisgICAgaWYgKGxvY2FsbmFtZSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGxvY2FsbmFtZSk7CisgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHByZWZpeCk7CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOczoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAbG9jYWxOYW1lOiAgdGhlIGxvY2FsIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4KKyAqIEBuYW1lc3BhY2VVUkk6ICB0aGUgbmFtZXNwYWNlIFVSSSBvZiB0aGUgYXR0cmlidXRlLgorICoKKyAqIE1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgYXR0cmlidXRlIHdpdGggdGhlCisgKiBzcGVjaWZpZWQgbG9jYWwgbmFtZSBhbmQgbmFtZXNwYWNlIFVSSS4KKyAqCisgKiBSZXR1cm5zIDEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBmb3VuZAorICovCitpbnQKK3htbFRleHRSZWFkZXJNb3ZlVG9BdHRyaWJ1dGVOcyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwljb25zdCB4bWxDaGFyICpsb2NhbE5hbWUsIGNvbnN0IHhtbENoYXIgKm5hbWVzcGFjZVVSSSkgeworICAgIHhtbEF0dHJQdHIgcHJvcDsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgeG1sTnNQdHIgbnM7CisgICAgeG1sQ2hhciAqcHJlZml4ID0gTlVMTDsKKworICAgIGlmICgocmVhZGVyID09IE5VTEwpIHx8IChsb2NhbE5hbWUgPT0gTlVMTCkgfHwgKG5hbWVzcGFjZVVSSSA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPm5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwlyZXR1cm4oMCk7CisgICAgbm9kZSA9IHJlYWRlci0+bm9kZTsKKworICAgIGlmICh4bWxTdHJFcXVhbChuYW1lc3BhY2VVUkksIEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIpKSB7CisJCWlmICghIHhtbFN0ckVxdWFsKGxvY2FsTmFtZSwgQkFEX0NBU1QgInhtbG5zIikpIHsKKwkJCXByZWZpeCA9IEJBRF9DQVNUIGxvY2FsTmFtZTsKKwkJfQorCQlucyA9IHJlYWRlci0+bm9kZS0+bnNEZWY7CisJCXdoaWxlIChucyAhPSBOVUxMKSB7CisJCQlpZiAoKHByZWZpeCA9PSBOVUxMICYmIG5zLT5wcmVmaXggPT0gTlVMTCkgfHwKKwkJCQkoKG5zLT5wcmVmaXggIT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKG5zLT5wcmVmaXgsIGxvY2FsTmFtZSkpKSkgeworCQkJCXJlYWRlci0+Y3Vybm9kZSA9ICh4bWxOb2RlUHRyKSBuczsKKwkJCQlyZXR1cm4oMSk7CisJCQl9CisJCQlucyA9IG5zLT5uZXh0OworCQl9CisJCXJldHVybigwKTsKKyAgICB9CisKKyAgICBwcm9wID0gbm9kZS0+cHJvcGVydGllczsKKyAgICB3aGlsZSAocHJvcCAhPSBOVUxMKSB7CisJLyoKKwkgKiBPbmUgbmVlZCB0byBoYXZlCisJICogICAtIHNhbWUgYXR0cmlidXRlIG5hbWVzCisJICogICAtIGFuZCB0aGUgYXR0cmlidXRlIGNhcnJ5aW5nIHRoYXQgbmFtZXNwYWNlCisJICovCisgICAgICAgIGlmICh4bWxTdHJFcXVhbChwcm9wLT5uYW1lLCBsb2NhbE5hbWUpICYmCisJICAgICgocHJvcC0+bnMgIT0gTlVMTCkgJiYKKwkgICAgICh4bWxTdHJFcXVhbChwcm9wLT5ucy0+aHJlZiwgbmFtZXNwYWNlVVJJKSkpKSB7CisJICAgIHJlYWRlci0+Y3Vybm9kZSA9ICh4bWxOb2RlUHRyKSBwcm9wOworCSAgICByZXR1cm4oMSk7CisgICAgICAgIH0KKwlwcm9wID0gcHJvcC0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJNb3ZlVG9GaXJzdEF0dHJpYnV0ZToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogTW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBmaXJzdCBhdHRyaWJ1dGUKKyAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBub2RlLgorICoKKyAqIFJldHVybnMgMSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kCisgKi8KK2ludAoreG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybigwKTsKKworICAgIGlmIChyZWFkZXItPm5vZGUtPm5zRGVmICE9IE5VTEwpIHsKKwlyZWFkZXItPmN1cm5vZGUgPSAoeG1sTm9kZVB0cikgcmVhZGVyLT5ub2RlLT5uc0RlZjsKKwlyZXR1cm4oMSk7CisgICAgfQorICAgIGlmIChyZWFkZXItPm5vZGUtPnByb3BlcnRpZXMgIT0gTlVMTCkgeworCXJlYWRlci0+Y3Vybm9kZSA9ICh4bWxOb2RlUHRyKSByZWFkZXItPm5vZGUtPnByb3BlcnRpZXM7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGU6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIE1vdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB0byB0aGUgbmV4dCBhdHRyaWJ1dGUKKyAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBub2RlLgorICoKKyAqIFJldHVybnMgMSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IsIDAgaWYgbm90IGZvdW5kCisgKi8KK2ludAoreG1sVGV4dFJlYWRlck1vdmVUb05leHRBdHRyaWJ1dGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpCisJcmV0dXJuKDApOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oeG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlKHJlYWRlcikpOworCisgICAgaWYgKHJlYWRlci0+Y3Vybm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwl4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgcmVhZGVyLT5jdXJub2RlOworCWlmIChucy0+bmV4dCAhPSBOVUxMKSB7CisJICAgIHJlYWRlci0+Y3Vybm9kZSA9ICh4bWxOb2RlUHRyKSBucy0+bmV4dDsKKwkgICAgcmV0dXJuKDEpOworCX0KKwlpZiAocmVhZGVyLT5ub2RlLT5wcm9wZXJ0aWVzICE9IE5VTEwpIHsKKwkgICAgcmVhZGVyLT5jdXJub2RlID0gKHhtbE5vZGVQdHIpIHJlYWRlci0+bm9kZS0+cHJvcGVydGllczsKKwkgICAgcmV0dXJuKDEpOworCX0KKwlyZXR1cm4oMCk7CisgICAgfSBlbHNlIGlmICgocmVhZGVyLT5jdXJub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgJiYKKwkgICAgICAgKHJlYWRlci0+Y3Vybm9kZS0+bmV4dCAhPSBOVUxMKSkgeworCXJlYWRlci0+Y3Vybm9kZSA9IHJlYWRlci0+Y3Vybm9kZS0+bmV4dDsKKwlyZXR1cm4oMSk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyTW92ZVRvRWxlbWVudDoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogTW92ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIHRoZSBub2RlIHRoYXQKKyAqIGNvbnRhaW5zIHRoZSBjdXJyZW50IEF0dHJpYnV0ZSAgbm9kZS4KKyAqCisgKiBSZXR1cm5zIDEgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIG5vdCBtb3ZlZAorICovCitpbnQKK3htbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybigwKTsKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpIHsKKwlyZWFkZXItPmN1cm5vZGUgPSBOVUxMOworCXJldHVybigxKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJSZWFkQXR0cmlidXRlVmFsdWU6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFBhcnNlcyBhbiBhdHRyaWJ1dGUgdmFsdWUgaW50byBvbmUgb3IgbW9yZSBUZXh0IGFuZCBFbnRpdHlSZWZlcmVuY2Ugbm9kZXMuCisgKgorICogUmV0dXJucyAxIGluIGNhc2Ugb2Ygc3VjY2VzcywgMCBpZiB0aGUgcmVhZGVyIHdhcyBub3QgcG9zaXRpb25uZWQgb24gYW4KKyAqICAgICAgICAgdHRyaWJ1dGUgbm9kZSBvciBhbGwgdGhlIGF0dHJpYnV0ZSB2YWx1ZXMgaGF2ZSBiZWVuIHJlYWQsIG9yIC0xCisgKiAgICAgICAgIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sVGV4dFJlYWRlclJlYWRBdHRyaWJ1dGVWYWx1ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oMCk7CisgICAgaWYgKHJlYWRlci0+Y3Vybm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpIHsKKwlpZiAocmVhZGVyLT5jdXJub2RlLT5jaGlsZHJlbiA9PSBOVUxMKQorCSAgICByZXR1cm4oMCk7CisJcmVhZGVyLT5jdXJub2RlID0gcmVhZGVyLT5jdXJub2RlLT5jaGlsZHJlbjsKKyAgICB9IGVsc2UgaWYgKHJlYWRlci0+Y3Vybm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwl4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgcmVhZGVyLT5jdXJub2RlOworCisJaWYgKHJlYWRlci0+ZmFrZXRleHQgPT0gTlVMTCkgeworCSAgICByZWFkZXItPmZha2V0ZXh0ID0geG1sTmV3RG9jVGV4dChyZWFkZXItPm5vZGUtPmRvYywKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucy0+aHJlZik7CisJfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgocmVhZGVyLT5mYWtldGV4dC0+Y29udGVudCAhPSBOVUxMKSAmJgorCSAgICAgICAgKHJlYWRlci0+ZmFrZXRleHQtPmNvbnRlbnQgIT0KKwkJICh4bWxDaGFyICopICYocmVhZGVyLT5mYWtldGV4dC0+cHJvcGVydGllcykpKQorCQl4bWxGcmVlKHJlYWRlci0+ZmFrZXRleHQtPmNvbnRlbnQpOworCSAgICByZWFkZXItPmZha2V0ZXh0LT5jb250ZW50ID0geG1sU3RyZHVwKG5zLT5ocmVmKTsKKwl9CisJcmVhZGVyLT5jdXJub2RlID0gcmVhZGVyLT5mYWtldGV4dDsKKyAgICB9IGVsc2UgeworCWlmIChyZWFkZXItPmN1cm5vZGUtPm5leHQgPT0gTlVMTCkKKwkgICAgcmV0dXJuKDApOworCXJlYWRlci0+Y3Vybm9kZSA9IHJlYWRlci0+Y3Vybm9kZS0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJDb25zdEVuY29kaW5nOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBEZXRlcm1pbmUgdGhlIGVuY29kaW5nIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFkLgorICoKKyAqIFJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZW5jb2Rpbmcgb2YgdGhlIGRvY3VtZW50IG9yIE5VTEwgaW4KKyAqIGNhc2Ugb2YgZXJyb3IuICBUaGUgc3RyaW5nIGlzIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlci4KKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyQ29uc3RFbmNvZGluZyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbERvY1B0ciBkb2MgPSBOVUxMOworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+ZG9jICE9IE5VTEwpCisgICAgICAgIGRvYyA9IHJlYWRlci0+ZG9jOworICAgIGVsc2UgaWYgKHJlYWRlci0+Y3R4dCAhPSBOVUxMKQorCWRvYyA9IHJlYWRlci0+Y3R4dC0+bXlEb2M7CisgICAgaWYgKGRvYyA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIGlmIChkb2MtPmVuY29kaW5nID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGVsc2UKKyAgICAgIHJldHVybihDT05TVFNUUihkb2MtPmVuY29kaW5nKSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUFjY2VzIEFQSSB0byB0aGUgY3VycmVudCBub2RlCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxUZXh0UmVhZGVyQXR0cmlidXRlQ291bnQ6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFByb3ZpZGVzIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBvZiB0aGUgY3VycmVudCBub2RlCisgKgorICogUmV0dXJucyAwIGkgbm8gYXR0cmlidXRlcywgLTEgaW4gY2FzZSBvZiBlcnJvciBvciB0aGUgYXR0cmlidXRlIGNvdW50CisgKi8KK2ludAoreG1sVGV4dFJlYWRlckF0dHJpYnV0ZUNvdW50KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaW50IHJldDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgeG1sTnNQdHIgbnM7CisgICAgeG1sTm9kZVB0ciBub2RlOworCisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybigwKTsKKworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlub2RlID0gcmVhZGVyLT5jdXJub2RlOworICAgIGVsc2UKKwlub2RlID0gcmVhZGVyLT5ub2RlOworCisgICAgaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwlyZXR1cm4oMCk7CisgICAgaWYgKChyZWFkZXItPnN0YXRlID09IFhNTF9URVhUUkVBREVSX0VORCkgfHwKKwkocmVhZGVyLT5zdGF0ZSA9PSBYTUxfVEVYVFJFQURFUl9CQUNLVFJBQ0spKQorCXJldHVybigwKTsKKyAgICByZXQgPSAwOworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlyZXQrKzsKKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgbnMgPSBub2RlLT5uc0RlZjsKKyAgICB3aGlsZSAobnMgIT0gTlVMTCkgeworCXJldCsrOworCW5zID0gbnMtPm5leHQ7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJOb2RlVHlwZToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogR2V0IHRoZSBub2RlIHR5cGUgb2YgdGhlIGN1cnJlbnQgbm9kZQorICogUmVmZXJlbmNlOgorICogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RvdGdudS9wbmV0bGliLWRvYy9TeXN0ZW0vWG1sL1htbE5vZGVUeXBlLmh0bWwKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxOb2RlVHlwZSBvZiB0aGUgY3VycmVudCBub2RlIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0UmVhZGVyTm9kZVR5cGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpCisJcmV0dXJuKFhNTF9SRUFERVJfVFlQRV9OT05FKTsKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpCisJbm9kZSA9IHJlYWRlci0+Y3Vybm9kZTsKKyAgICBlbHNlCisJbm9kZSA9IHJlYWRlci0+bm9kZTsKKyAgICBzd2l0Y2ggKG5vZGUtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCSAgICBpZiAoKHJlYWRlci0+c3RhdGUgPT0gWE1MX1RFWFRSRUFERVJfRU5EKSB8fAorCQkocmVhZGVyLT5zdGF0ZSA9PSBYTUxfVEVYVFJFQURFUl9CQUNLVFJBQ0spKQorCQlyZXR1cm4oWE1MX1JFQURFUl9UWVBFX0VORF9FTEVNRU5UKTsKKwkgICAgcmV0dXJuKFhNTF9SRUFERVJfVFlQRV9FTEVNRU5UKTsKKyAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICByZXR1cm4oWE1MX1JFQURFUl9UWVBFX0FUVFJJQlVURSk7CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgaWYgKHhtbElzQmxhbmtOb2RlKHJlYWRlci0+bm9kZSkpIHsKKwkJaWYgKHhtbE5vZGVHZXRTcGFjZVByZXNlcnZlKHJlYWRlci0+bm9kZSkpCisJCSAgICByZXR1cm4oWE1MX1JFQURFUl9UWVBFX1NJR05JRklDQU5UX1dISVRFU1BBQ0UpOworCQllbHNlCisJCSAgICByZXR1cm4oWE1MX1JFQURFUl9UWVBFX1dISVRFU1BBQ0UpOworCSAgICB9IGVsc2UgeworCQlyZXR1cm4oWE1MX1JFQURFUl9UWVBFX1RFWFQpOworCSAgICB9CisgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkgICAgcmV0dXJuKFhNTF9SRUFERVJfVFlQRV9DREFUQSk7CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkgICAgcmV0dXJuKFhNTF9SRUFERVJfVFlQRV9FTlRJVFlfUkVGRVJFTkNFKTsKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisJICAgIHJldHVybihYTUxfUkVBREVSX1RZUEVfRU5USVRZKTsKKyAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKwkgICAgcmV0dXJuKFhNTF9SRUFERVJfVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OKTsKKyAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICByZXR1cm4oWE1MX1JFQURFUl9UWVBFX0NPTU1FTlQpOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwkgICAgcmV0dXJuKFhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVCk7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkgICAgcmV0dXJuKFhNTF9SRUFERVJfVFlQRV9ET0NVTUVOVF9GUkFHTUVOVCk7CisgICAgICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJICAgIHJldHVybihYTUxfUkVBREVSX1RZUEVfTk9UQVRJT04pOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorCSAgICByZXR1cm4oWE1MX1JFQURFUl9UWVBFX0RPQ1VNRU5UX1RZUEUpOworCisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKyAgICAgICAgY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorCSAgICByZXR1cm4oWE1MX1JFQURFUl9UWVBFX05PTkUpOworICAgIH0KKyAgICByZXR1cm4oLTEpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudDoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBlbXB0eQorICoKKyAqIFJldHVybnMgMSBpZiBlbXB0eSwgMCBpZiBub3QgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0UmVhZGVySXNFbXB0eUVsZW1lbnQoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5ub2RlID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKQorCXJldHVybigwKTsKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpCisJcmV0dXJuKDApOworICAgIGlmIChyZWFkZXItPm5vZGUtPmNoaWxkcmVuICE9IE5VTEwpCisJcmV0dXJuKDApOworICAgIGlmIChyZWFkZXItPnN0YXRlID09IFhNTF9URVhUUkVBREVSX0VORCkKKwlyZXR1cm4oMCk7CisgICAgaWYgKHJlYWRlci0+ZG9jICE9IE5VTEwpCisgICAgICAgIHJldHVybigxKTsKKyNpZmRlZiBMSUJYTUxfWElOQ0xVREVfRU5BQkxFRAorICAgIGlmIChyZWFkZXItPmluX3hpbmNsdWRlID4gMCkKKyAgICAgICAgcmV0dXJuKDEpOworI2VuZGlmCisgICAgcmV0dXJuKChyZWFkZXItPm5vZGUtPmV4dHJhICYgTk9ERV9JU19FTVBUWSkgIT0gMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckxvY2FsTmFtZToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIGxvY2FsIG5hbWUgb2YgdGhlIG5vZGUuCisgKgorICogUmV0dXJucyB0aGUgbG9jYWwgbmFtZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsCisgKiAgIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyTG9jYWxOYW1lKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIGlmICgocmVhZGVyID09IE5VTEwpIHx8IChyZWFkZXItPm5vZGUgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlub2RlID0gcmVhZGVyLT5jdXJub2RlOworICAgIGVsc2UKKwlub2RlID0gcmVhZGVyLT5ub2RlOworICAgIGlmIChub2RlLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCXhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSBub2RlOworCWlmIChucy0+cHJlZml4ID09IE5VTEwpCisJICAgIHJldHVybih4bWxTdHJkdXAoQkFEX0NBU1QgInhtbG5zIikpOworCWVsc2UKKwkgICAgcmV0dXJuKHhtbFN0cmR1cChucy0+cHJlZml4KSk7CisgICAgfQorICAgIGlmICgobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkpCisJcmV0dXJuKHhtbFRleHRSZWFkZXJOYW1lKHJlYWRlcikpOworICAgIHJldHVybih4bWxTdHJkdXAobm9kZS0+bmFtZSkpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJDb25zdExvY2FsTmFtZToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIGxvY2FsIG5hbWUgb2YgdGhlIG5vZGUuCisgKgorICogUmV0dXJucyB0aGUgbG9jYWwgbmFtZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZQorICogICAgICAgICBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuCisgKi8KK2NvbnN0IHhtbENoYXIgKgoreG1sVGV4dFJlYWRlckNvbnN0TG9jYWxOYW1lKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIGlmICgocmVhZGVyID09IE5VTEwpIHx8IChyZWFkZXItPm5vZGUgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlub2RlID0gcmVhZGVyLT5jdXJub2RlOworICAgIGVsc2UKKwlub2RlID0gcmVhZGVyLT5ub2RlOworICAgIGlmIChub2RlLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCXhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSBub2RlOworCWlmIChucy0+cHJlZml4ID09IE5VTEwpCisJICAgIHJldHVybihDT05TVFNUUihCQURfQ0FTVCAieG1sbnMiKSk7CisJZWxzZQorCSAgICByZXR1cm4obnMtPnByZWZpeCk7CisgICAgfQorICAgIGlmICgobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkpCisJcmV0dXJuKHhtbFRleHRSZWFkZXJDb25zdE5hbWUocmVhZGVyKSk7CisgICAgcmV0dXJuKG5vZGUtPm5hbWUpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJOYW1lOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBUaGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIG5vZGUsIGVxdWFsIHRvIFByZWZpeCA6TG9jYWxOYW1lLgorICoKKyAqIFJldHVybnMgdGhlIGxvY2FsIG5hbWUgb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLAorICogICBpZiBub24gTlVMTCBpdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sVGV4dFJlYWRlck5hbWUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgeG1sQ2hhciAqcmV0OworCisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHJlYWRlci0+bm9kZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+Y3Vybm9kZSAhPSBOVUxMKQorCW5vZGUgPSByZWFkZXItPmN1cm5vZGU7CisgICAgZWxzZQorCW5vZGUgPSByZWFkZXItPm5vZGU7CisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJICAgIGlmICgobm9kZS0+bnMgPT0gTlVMTCkgfHwKKwkJKG5vZGUtPm5zLT5wcmVmaXggPT0gTlVMTCkpCisJCXJldHVybih4bWxTdHJkdXAobm9kZS0+bmFtZSkpOworCisJICAgIHJldCA9IHhtbFN0cmR1cChub2RlLT5ucy0+cHJlZml4KTsKKwkgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgQkFEX0NBU1QgIjoiKTsKKwkgICAgcmV0ID0geG1sU3RyY2F0KHJldCwgbm9kZS0+bmFtZSk7CisJICAgIHJldHVybihyZXQpOworICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisJICAgIHJldHVybih4bWxTdHJkdXAoQkFEX0NBU1QgIiN0ZXh0IikpOworICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisJICAgIHJldHVybih4bWxTdHJkdXAoQkFEX0NBU1QgIiNjZGF0YS1zZWN0aW9uIikpOworICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCSAgICByZXR1cm4oeG1sU3RyZHVwKG5vZGUtPm5hbWUpKTsKKyAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKwkgICAgcmV0dXJuKHhtbFN0cmR1cChub2RlLT5uYW1lKSk7CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkgICAgcmV0dXJuKHhtbFN0cmR1cChCQURfQ0FTVCAiI2NvbW1lbnQiKSk7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisgICAgICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorCSAgICByZXR1cm4oeG1sU3RyZHVwKEJBRF9DQVNUICIjZG9jdW1lbnQiKSk7CisgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkgICAgcmV0dXJuKHhtbFN0cmR1cChCQURfQ0FTVCAiI2RvY3VtZW50LWZyYWdtZW50IikpOworICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCSAgICByZXR1cm4oeG1sU3RyZHVwKG5vZGUtPm5hbWUpKTsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9EVERfTk9ERToKKwkgICAgcmV0dXJuKHhtbFN0cmR1cChub2RlLT5uYW1lKSk7CisgICAgICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOiB7CisJICAgIHhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSBub2RlOworCisJICAgIHJldCA9IHhtbFN0cmR1cChCQURfQ0FTVCAieG1sbnMiKTsKKwkgICAgaWYgKG5zLT5wcmVmaXggPT0gTlVMTCkKKwkJcmV0dXJuKHJldCk7CisJICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIEJBRF9DQVNUICI6Iik7CisJICAgIHJldCA9IHhtbFN0cmNhdChyZXQsIG5zLT5wcmVmaXgpOworCSAgICByZXR1cm4ocmV0KTsKKwl9CisKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJDb25zdE5hbWU6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgbm9kZSwgZXF1YWwgdG8gUHJlZml4IDpMb2NhbE5hbWUuCisgKgorICogUmV0dXJucyB0aGUgbG9jYWwgbmFtZSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsIHRoZSBzdHJpbmcgaXMKKyAqICAgICAgICAgZGVhbGxvY2F0ZWQgd2l0aCB0aGUgcmVhZGVyLgorICovCitjb25zdCB4bWxDaGFyICoKK3htbFRleHRSZWFkZXJDb25zdE5hbWUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5ub2RlID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpCisJbm9kZSA9IHJlYWRlci0+Y3Vybm9kZTsKKyAgICBlbHNlCisJbm9kZSA9IHJlYWRlci0+bm9kZTsKKyAgICBzd2l0Y2ggKG5vZGUtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgaWYgKChub2RlLT5ucyA9PSBOVUxMKSB8fAorCQkobm9kZS0+bnMtPnByZWZpeCA9PSBOVUxMKSkKKwkJcmV0dXJuKG5vZGUtPm5hbWUpOworCSAgICByZXR1cm4oQ09OU1RRU1RSKG5vZGUtPm5zLT5wcmVmaXgsIG5vZGUtPm5hbWUpKTsKKyAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorCSAgICByZXR1cm4oQ09OU1RTVFIoQkFEX0NBU1QgIiN0ZXh0IikpOworICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisJICAgIHJldHVybihDT05TVFNUUihCQURfQ0FTVCAiI2NkYXRhLXNlY3Rpb24iKSk7CisgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJICAgIHJldHVybihDT05TVFNUUihub2RlLT5uYW1lKSk7CisgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisJICAgIHJldHVybihDT05TVFNUUihub2RlLT5uYW1lKSk7CisgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkgICAgcmV0dXJuKENPTlNUU1RSKEJBRF9DQVNUICIjY29tbWVudCIpKTsKKyAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKyAgICAgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisJICAgIHJldHVybihDT05TVFNUUihCQURfQ0FTVCAiI2RvY3VtZW50IikpOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJICAgIHJldHVybihDT05TVFNUUihCQURfQ0FTVCAiI2RvY3VtZW50LWZyYWdtZW50IikpOworICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCSAgICByZXR1cm4oQ09OU1RTVFIobm9kZS0+bmFtZSkpOworICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorCSAgICByZXR1cm4oQ09OU1RTVFIobm9kZS0+bmFtZSkpOworICAgICAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDogeworCSAgICB4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgbm9kZTsKKworCSAgICBpZiAobnMtPnByZWZpeCA9PSBOVUxMKQorCQlyZXR1cm4oQ09OU1RTVFIoQkFEX0NBU1QgInhtbG5zIikpOworCSAgICByZXR1cm4oQ09OU1RRU1RSKEJBRF9DQVNUICJ4bWxucyIsIG5zLT5wcmVmaXgpKTsKKwl9CisKKyAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfREVDTDoKKyAgICAgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJQcmVmaXg6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIEEgc2hvcnRoYW5kIHJlZmVyZW5jZSB0byB0aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBwcmVmaXggb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLAorICogICAgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLgorICovCit4bWxDaGFyICoKK3htbFRleHRSZWFkZXJQcmVmaXgoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHJlYWRlci0+bm9kZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+Y3Vybm9kZSAhPSBOVUxMKQorCW5vZGUgPSByZWFkZXItPmN1cm5vZGU7CisgICAgZWxzZQorCW5vZGUgPSByZWFkZXItPm5vZGU7CisgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJeG1sTnNQdHIgbnMgPSAoeG1sTnNQdHIpIG5vZGU7CisJaWYgKG5zLT5wcmVmaXggPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCXJldHVybih4bWxTdHJkdXAoQkFEX0NBU1QgInhtbG5zIikpOworICAgIH0KKyAgICBpZiAoKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfQVRUUklCVVRFX05PREUpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKG5vZGUtPm5zICE9IE5VTEwpICYmIChub2RlLT5ucy0+cHJlZml4ICE9IE5VTEwpKQorCXJldHVybih4bWxTdHJkdXAobm9kZS0+bnMtPnByZWZpeCkpOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXg6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIEEgc2hvcnRoYW5kIHJlZmVyZW5jZSB0byB0aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBwcmVmaXggb3IgTlVMTCBpZiBub3QgYXZhaWxhYmxlLCB0aGUgc3RyaW5nIGlzIGRlYWxsb2NhdGVkCisgKiAgICAgICAgIHdpdGggdGhlIHJlYWRlci4KKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyQ29uc3RQcmVmaXgoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHJlYWRlci0+bm9kZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+Y3Vybm9kZSAhPSBOVUxMKQorCW5vZGUgPSByZWFkZXItPmN1cm5vZGU7CisgICAgZWxzZQorCW5vZGUgPSByZWFkZXItPm5vZGU7CisgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJeG1sTnNQdHIgbnMgPSAoeG1sTnNQdHIpIG5vZGU7CisJaWYgKG5zLT5wcmVmaXggPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCXJldHVybihDT05TVFNUUihCQURfQ0FTVCAieG1sbnMiKSk7CisgICAgfQorICAgIGlmICgobm9kZS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCShub2RlLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmICgobm9kZS0+bnMgIT0gTlVMTCkgJiYgKG5vZGUtPm5zLT5wcmVmaXggIT0gTlVMTCkpCisJcmV0dXJuKENPTlNUU1RSKG5vZGUtPm5zLT5wcmVmaXgpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlck5hbWVzcGFjZVVyaToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIFVSSSBkZWZpbmluZyB0aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBuYW1lc3BhY2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwKKyAqICAgIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIGlmICgocmVhZGVyID09IE5VTEwpIHx8IChyZWFkZXItPm5vZGUgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlub2RlID0gcmVhZGVyLT5jdXJub2RlOworICAgIGVsc2UKKwlub2RlID0gcmVhZGVyLT5ub2RlOworICAgIGlmIChub2RlLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkKKwlyZXR1cm4oeG1sU3RyZHVwKEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIpKTsKKyAgICBpZiAoKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfQVRUUklCVVRFX05PREUpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAobm9kZS0+bnMgIT0gTlVMTCkKKwlyZXR1cm4oeG1sU3RyZHVwKG5vZGUtPm5zLT5ocmVmKSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIFVSSSBkZWZpbmluZyB0aGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBuYW1lc3BhY2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZworICogICAgICAgICB3aWxsIGJlIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlcgorICovCitjb25zdCB4bWxDaGFyICoKK3htbFRleHRSZWFkZXJDb25zdE5hbWVzcGFjZVVyaSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5ub2RlID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpCisJbm9kZSA9IHJlYWRlci0+Y3Vybm9kZTsKKyAgICBlbHNlCisJbm9kZSA9IHJlYWRlci0+bm9kZTsKKyAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpCisJcmV0dXJuKENPTlNUU1RSKEJBRF9DQVNUICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIpKTsKKyAgICBpZiAoKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfQVRUUklCVVRFX05PREUpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAobm9kZS0+bnMgIT0gTlVMTCkKKwlyZXR1cm4oQ09OU1RTVFIobm9kZS0+bnMtPmhyZWYpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckJhc2VVcmk6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFRoZSBiYXNlIFVSSSBvZiB0aGUgbm9kZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBiYXNlIFVSSSBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUsCisgKiAgICBpZiBub24gTlVMTCBpdCBuZWVkIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuCisgKi8KK3htbENoYXIgKgoreG1sVGV4dFJlYWRlckJhc2VVcmkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5ub2RlID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICByZXR1cm4oeG1sTm9kZUdldEJhc2UoTlVMTCwgcmVhZGVyLT5ub2RlKSk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckNvbnN0QmFzZVVyaToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIGJhc2UgVVJJIG9mIHRoZSBub2RlLgorICoKKyAqIFJldHVybnMgdGhlIGJhc2UgVVJJIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZSwgdGhlIHN0cmluZworICogICAgICAgICB3aWxsIGJlIGRlYWxsb2NhdGVkIHdpdGggdGhlIHJlYWRlcgorICovCitjb25zdCB4bWxDaGFyICoKK3htbFRleHRSZWFkZXJDb25zdEJhc2VVcmkoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxDaGFyICp0bXA7CisgICAgY29uc3QgeG1sQ2hhciAqcmV0OworCisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHJlYWRlci0+bm9kZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgdG1wID0geG1sTm9kZUdldEJhc2UoTlVMTCwgcmVhZGVyLT5ub2RlKTsKKyAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXQgPSBDT05TVFNUUih0bXApOworICAgIHhtbEZyZWUodG1wKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyRGVwdGg6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFRoZSBkZXB0aCBvZiB0aGUgbm9kZSBpbiB0aGUgdHJlZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBkZXB0aCBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFJlYWRlckRlcHRoKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybigwKTsKKworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkgeworCWlmICgocmVhZGVyLT5jdXJub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgfHwKKwkgICAgKHJlYWRlci0+Y3Vybm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCSAgICByZXR1cm4ocmVhZGVyLT5kZXB0aCArIDEpOworCXJldHVybihyZWFkZXItPmRlcHRoICsgMik7CisgICAgfQorICAgIHJldHVybihyZWFkZXItPmRlcHRoKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlczoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogV2hldGhlciB0aGUgbm9kZSBoYXMgYXR0cmlidXRlcy4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSwgYW5kIC0xIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0UmVhZGVySGFzQXR0cmlidXRlcyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpCisJcmV0dXJuKDApOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlub2RlID0gcmVhZGVyLT5jdXJub2RlOworICAgIGVsc2UKKwlub2RlID0gcmVhZGVyLT5ub2RlOworCisgICAgaWYgKChub2RlLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJKChub2RlLT5wcm9wZXJ0aWVzICE9IE5VTEwpIHx8IChub2RlLT5uc0RlZiAhPSBOVUxMKSkpCisJcmV0dXJuKDEpOworICAgIC8qIFRPRE86IGhhbmRsZSB0aGUgeG1sRGVjbCAqLworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVySGFzVmFsdWU6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFdoZXRoZXIgdGhlIG5vZGUgY2FuIGhhdmUgYSB0ZXh0IHZhbHVlLgorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlLCAwIGlmIGZhbHNlLCBhbmQgLTEgaW4gY2FzZSBvciBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJIYXNWYWx1ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpCisJcmV0dXJuKDApOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlub2RlID0gcmVhZGVyLT5jdXJub2RlOworICAgIGVsc2UKKwlub2RlID0gcmVhZGVyLT5ub2RlOworCisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwkgICAgcmV0dXJuKDEpOworCWRlZmF1bHQ6CisJICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclZhbHVlOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBQcm92aWRlcyB0aGUgdGV4dCB2YWx1ZSBvZiB0aGUgbm9kZSBpZiBwcmVzZW50CisgKgorICogUmV0dXJucyB0aGUgc3RyaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZS4gVGhlIHJlc3VsdCBtdXN0IGJlIGRlYWxsb2NhdGVkCisgKiAgICAgd2l0aCB4bWxGcmVlKCkKKyAqLworeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyVmFsdWUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocmVhZGVyLT5ub2RlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlub2RlID0gcmVhZGVyLT5jdXJub2RlOworICAgIGVsc2UKKwlub2RlID0gcmVhZGVyLT5ub2RlOworCisgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorCSAgICByZXR1cm4oeG1sU3RyZHVwKCgoeG1sTnNQdHIpIG5vZGUpLT5ocmVmKSk7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOnsKKwkgICAgeG1sQXR0clB0ciBhdHRyID0gKHhtbEF0dHJQdHIpIG5vZGU7CisKKwkgICAgaWYgKGF0dHItPnBhcmVudCAhPSBOVUxMKQorCQlyZXR1cm4gKHhtbE5vZGVMaXN0R2V0U3RyaW5nCisJCQkoYXR0ci0+cGFyZW50LT5kb2MsIGF0dHItPmNoaWxkcmVuLCAxKSk7CisJICAgIGVsc2UKKwkJcmV0dXJuICh4bWxOb2RlTGlzdEdldFN0cmluZyhOVUxMLCBhdHRyLT5jaGlsZHJlbiwgMSkpOworCSAgICBicmVhazsKKwl9CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgICAgICBpZiAobm9kZS0+Y29udGVudCAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHJldHVybiAoeG1sU3RyZHVwKG5vZGUtPmNvbnRlbnQpKTsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJDb25zdFZhbHVlOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBQcm92aWRlcyB0aGUgdGV4dCB2YWx1ZSBvZiB0aGUgbm9kZSBpZiBwcmVzZW50CisgKgorICogUmV0dXJucyB0aGUgc3RyaW5nIG9yIE5VTEwgaWYgbm90IGF2YWlsYWJsZS4gVGhlIHJlc3VsdCB3aWxsIGJlCisgKiAgICAgZGVhbGxvY2F0ZWQgb24gdGhlIG5leHQgUmVhZCgpIG9wZXJhdGlvbi4KKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyQ29uc3RWYWx1ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+Y3Vybm9kZSAhPSBOVUxMKQorCW5vZGUgPSByZWFkZXItPmN1cm5vZGU7CisgICAgZWxzZQorCW5vZGUgPSByZWFkZXItPm5vZGU7CisKKyAgICBzd2l0Y2ggKG5vZGUtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJICAgIHJldHVybigoKHhtbE5zUHRyKSBub2RlKS0+aHJlZik7CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOnsKKwkgICAgeG1sQXR0clB0ciBhdHRyID0gKHhtbEF0dHJQdHIpIG5vZGU7CisKKwkgICAgaWYgKChhdHRyLT5jaGlsZHJlbiAhPSBOVUxMKSAmJgorCSAgICAgICAgKGF0dHItPmNoaWxkcmVuLT50eXBlID09IFhNTF9URVhUX05PREUpICYmCisJCShhdHRyLT5jaGlsZHJlbi0+bmV4dCA9PSBOVUxMKSkKKwkJcmV0dXJuKGF0dHItPmNoaWxkcmVuLT5jb250ZW50KTsKKwkgICAgZWxzZSB7CisJCWlmIChyZWFkZXItPmJ1ZmZlciA9PSBOVUxMKQorCQkgICAgcmVhZGVyLT5idWZmZXIgPSB4bWxCdWZmZXJDcmVhdGVTaXplKDEwMCk7CisJCWlmIChyZWFkZXItPmJ1ZmZlciA9PSBOVUxMKSB7CisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkgICAgInhtbFRleHRSZWFkZXJTZXR1cCA6IG1hbGxvYyBmYWlsZWRcbiIpOworCQkgICAgcmV0dXJuIChOVUxMKTsKKwkJfQorCSAgICAgICAgcmVhZGVyLT5idWZmZXItPnVzZSA9IDA7CisJICAgICAgICB4bWxOb2RlQnVmR2V0Q29udGVudChyZWFkZXItPmJ1ZmZlciwgbm9kZSk7CisJCXJldHVybihyZWFkZXItPmJ1ZmZlci0+Y29udGVudCk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJfQorICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICByZXR1cm4obm9kZS0+Y29udGVudCk7CisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVySXNEZWZhdWx0OgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBXaGV0aGVyIGFuIEF0dHJpYnV0ZSAgbm9kZSB3YXMgZ2VuZXJhdGVkIGZyb20gdGhlIGRlZmF1bHQgdmFsdWUKKyAqIGRlZmluZWQgaW4gdGhlIERURCBvciBzY2hlbWEuCisgKgorICogUmV0dXJucyAwIGlmIG5vdCBkZWZhdWx0ZWQsIDEgaWYgZGVmYXVsdGVkLCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJJc0RlZmF1bHQoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclF1b3RlQ2hhcjoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIHF1b3RhdGlvbiBtYXJrIGNoYXJhY3RlciB1c2VkIHRvIGVuY2xvc2UgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZS4KKyAqCisgKiBSZXR1cm5zICIgb3IgJyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJRdW90ZUNoYXIoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICAvKiBUT0RPIG1heWJlIGxvb2t1cCB0aGUgYXR0cmlidXRlIHZhbHVlIGZvciAiIGZpcnN0ICovCisgICAgcmV0dXJuKChpbnQpICciJyk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclhtbExhbmc6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFRoZSB4bWw6bGFuZyBzY29wZSB3aXRoaW4gd2hpY2ggdGhlIG5vZGUgcmVzaWRlcy4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWw6bGFuZyB2YWx1ZSBvciBOVUxMIGlmIG5vbmUgZXhpc3RzLiwKKyAqICAgIGlmIG5vbiBOVUxMIGl0IG5lZWQgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4KKyAqLworeG1sQ2hhciAqCit4bWxUZXh0UmVhZGVyWG1sTGFuZyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICByZXR1cm4oeG1sTm9kZUdldExhbmcocmVhZGVyLT5ub2RlKSk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZzoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIHhtbDpsYW5nIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbm9kZSByZXNpZGVzLgorICoKKyAqIFJldHVybnMgdGhlIHhtbDpsYW5nIHZhbHVlIG9yIE5VTEwgaWYgbm9uZSBleGlzdHMuCisgKi8KK2NvbnN0IHhtbENoYXIgKgoreG1sVGV4dFJlYWRlckNvbnN0WG1sTGFuZyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbENoYXIgKnRtcDsKKyAgICBjb25zdCB4bWxDaGFyICpyZXQ7CisKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgdG1wID0geG1sTm9kZUdldExhbmcocmVhZGVyLT5ub2RlKTsKKyAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXQgPSBDT05TVFNUUih0bXApOworICAgIHhtbEZyZWUodG1wKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyQ29uc3RTdHJpbmc6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQHN0cjogIHRoZSBzdHJpbmcgdG8gaW50ZXJuLgorICoKKyAqIEdldCBhbiBpbnRlcm5lZCBzdHJpbmcgZnJvbSB0aGUgcmVhZGVyLCBhbGxvd3MgZm9yIGV4YW1wbGUgdG8KKyAqIHNwZWVkdXAgc3RyaW5nIG5hbWUgY29tcGFyaXNvbnMKKyAqCisgKiBSZXR1cm5zIGFuIGludGVybmVkIGNvcHkgb2YgdGhlIHN0cmluZyBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoZQorICogICAgICAgICBzdHJpbmcgd2lsbCBiZSBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuCisgKi8KK2NvbnN0IHhtbENoYXIgKgoreG1sVGV4dFJlYWRlckNvbnN0U3RyaW5nKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCBjb25zdCB4bWxDaGFyICpzdHIpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldHVybihDT05TVFNUUihzdHIpKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyTm9ybWFsaXphdGlvbjoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogVGhlIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0byBub3JtYWxpemUgd2hpdGUgc3BhY2UgYW5kIGF0dHJpYnV0ZSB2YWx1ZXMuCisgKiBTaW5jZSBhdHRyaWJ1dGUgdmFsdWUgYW5kIGVuZCBvZiBsaW5lIG5vcm1hbGl6YXRpb25zIGFyZSBhIE1VU1QgaW4gdGhlIFhNTAorICogc3BlY2lmaWNhdGlvbiBvbmx5IHRoZSB2YWx1ZSB0cnVlIGlzIGFjY2VwdGVkLiBUaGUgYnJva2VuIGJhaGF2aW91ciBvZgorICogYWNjZXB0aW5nIG91dCBvZiByYW5nZSBjaGFyYWN0ZXIgZW50aXRpZXMgbGlrZSAmIzA7IGlzIG9mIGNvdXJzZSBub3QKKyAqIHN1cHBvcnRlZCBlaXRoZXIuCisgKgorICogUmV0dXJucyAxIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sVGV4dFJlYWRlck5vcm1hbGl6YXRpb24oeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlFeHRlbnNpb25zIHRvIHRoZSBiYXNlIEFQSXMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sVGV4dFJlYWRlclNldFBhcnNlclByb3A6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQHByb3A6ICB0aGUgeG1sUGFyc2VyUHJvcGVydGllcyB0byBzZXQKKyAqIEB2YWx1ZTogIHVzdWFsbHkgMCBvciAxIHRvIChkZSlhY3RpdmF0ZSBpdAorICoKKyAqIENoYW5nZSB0aGUgcGFyc2VyIHByb2Nlc3NpbmcgYmVoYXZpb3VyIGJ5IGNoYW5naW5nIHNvbWUgb2YgaXRzIGludGVybmFsCisgKiBwcm9wZXJ0aWVzLiBOb3RlIHRoYXQgc29tZSBwcm9wZXJ0aWVzIGNhbiBvbmx5IGJlIGNoYW5nZWQgYmVmb3JlIGFueQorICogcmVhZCBoYXMgYmVlbiBkb25lLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgY2FsbCB3YXMgc3VjY2Vzc2Z1bCwgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJTZXRQYXJzZXJQcm9wKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCBpbnQgcHJvcCwgaW50IHZhbHVlKSB7CisgICAgeG1sUGFyc2VyUHJvcGVydGllcyBwID0gKHhtbFBhcnNlclByb3BlcnRpZXMpIHByb3A7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0OworCisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHJlYWRlci0+Y3R4dCA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGN0eHQgPSByZWFkZXItPmN0eHQ7CisKKyAgICBzd2l0Y2ggKHApIHsKKyAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0xPQUREVEQ6CisJICAgIGlmICh2YWx1ZSAhPSAwKSB7CisJCWlmIChjdHh0LT5sb2Fkc3Vic2V0ID09IDApIHsKKwkJICAgIGlmIChyZWFkZXItPm1vZGUgIT0gWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMKQorCQkJcmV0dXJuKC0xKTsKKwkJICAgIGN0eHQtPmxvYWRzdWJzZXQgPSBYTUxfREVURUNUX0lEUzsKKwkJfQorCSAgICB9IGVsc2UgeworCQljdHh0LT5sb2Fkc3Vic2V0ID0gMDsKKwkgICAgfQorCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9ERUZBVUxUQVRUUlM6CisJICAgIGlmICh2YWx1ZSAhPSAwKSB7CisJCWN0eHQtPmxvYWRzdWJzZXQgfD0gWE1MX0NPTVBMRVRFX0FUVFJTOworCSAgICB9IGVsc2UgeworCQlpZiAoY3R4dC0+bG9hZHN1YnNldCAmIFhNTF9DT01QTEVURV9BVFRSUykKKwkJICAgIGN0eHQtPmxvYWRzdWJzZXQgLT0gWE1MX0NPTVBMRVRFX0FUVFJTOworCSAgICB9CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfUEFSU0VSX1ZBTElEQVRFOgorCSAgICBpZiAodmFsdWUgIT0gMCkgeworCQljdHh0LT52YWxpZGF0ZSA9IDE7CisJCXJlYWRlci0+dmFsaWRhdGUgPSBYTUxfVEVYVFJFQURFUl9WQUxJREFURV9EVEQ7CisJICAgIH0gZWxzZSB7CisJCWN0eHQtPnZhbGlkYXRlID0gMDsKKwkgICAgfQorCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9TVUJTVF9FTlRJVElFUzoKKwkgICAgaWYgKHZhbHVlICE9IDApIHsKKwkJY3R4dC0+cmVwbGFjZUVudGl0aWVzID0gMTsKKwkgICAgfSBlbHNlIHsKKwkJY3R4dC0+cmVwbGFjZUVudGl0aWVzID0gMDsKKwkgICAgfQorCSAgICByZXR1cm4oMCk7CisgICAgfQorICAgIHJldHVybigtMSk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckdldFBhcnNlclByb3A6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQHByb3A6ICB0aGUgeG1sUGFyc2VyUHJvcGVydGllcyB0byBnZXQKKyAqCisgKiBSZWFkIHRoZSBwYXJzZXIgaW50ZXJuYWwgcHJvcGVydHkuCisgKgorICogUmV0dXJucyB0aGUgdmFsdWUsIHVzdWFsbHkgMCBvciAxLCBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFRleHRSZWFkZXJHZXRQYXJzZXJQcm9wKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCBpbnQgcHJvcCkgeworICAgIHhtbFBhcnNlclByb3BlcnRpZXMgcCA9ICh4bWxQYXJzZXJQcm9wZXJ0aWVzKSBwcm9wOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIGlmICgocmVhZGVyID09IE5VTEwpIHx8IChyZWFkZXItPmN0eHQgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBjdHh0ID0gcmVhZGVyLT5jdHh0OworCisgICAgc3dpdGNoIChwKSB7CisgICAgICAgIGNhc2UgWE1MX1BBUlNFUl9MT0FERFREOgorCSAgICBpZiAoKGN0eHQtPmxvYWRzdWJzZXQgIT0gMCkgfHwgKGN0eHQtPnZhbGlkYXRlICE9IDApKQorCQlyZXR1cm4oMSk7CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfUEFSU0VSX0RFRkFVTFRBVFRSUzoKKwkgICAgaWYgKGN0eHQtPmxvYWRzdWJzZXQgJiBYTUxfQ09NUExFVEVfQVRUUlMpCisJCXJldHVybigxKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9QQVJTRVJfVkFMSURBVEU6CisJICAgIHJldHVybihyZWFkZXItPnZhbGlkYXRlKTsKKwljYXNlIFhNTF9QQVJTRVJfU1VCU1RfRU5USVRJRVM6CisJICAgIHJldHVybihjdHh0LT5yZXBsYWNlRW50aXRpZXMpOworICAgIH0KKyAgICByZXR1cm4oLTEpOworfQorCisKKy8qKgorICogeG1sVGV4dFJlYWRlckdldFBhcnNlckxpbmVOdW1iZXI6CisgKiBAcmVhZGVyOiB0aGUgdXNlciBkYXRhIChYTUwgcmVhZGVyIGNvbnRleHQpCisgKgorICogUHJvdmlkZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFyc2luZyBwb2ludC4KKyAqCisgKiBSZXR1cm5zIGFuIGludCBvciAwIGlmIG5vdCBhdmFpbGFibGUKKyAqLworaW50Cit4bWxUZXh0UmVhZGVyR2V0UGFyc2VyTGluZU51bWJlcih4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikKK3sKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5jdHh0ID09IE5VTEwpIHx8CisgICAgICAgIChyZWFkZXItPmN0eHQtPmlucHV0ID09IE5VTEwpKSB7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIHJldHVybiAocmVhZGVyLT5jdHh0LT5pbnB1dC0+bGluZSk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcjoKKyAqIEByZWFkZXI6IHRoZSB1c2VyIGRhdGEgKFhNTCByZWFkZXIgY29udGV4dCkKKyAqCisgKiBQcm92aWRlIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBjdXJyZW50IHBhcnNpbmcgcG9pbnQuCisgKgorICogUmV0dXJucyBhbiBpbnQgb3IgMCBpZiBub3QgYXZhaWxhYmxlCisgKi8KK2ludAoreG1sVGV4dFJlYWRlckdldFBhcnNlckNvbHVtbk51bWJlcih4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikKK3sKKyAgICBpZiAoKHJlYWRlciA9PSBOVUxMKSB8fCAocmVhZGVyLT5jdHh0ID09IE5VTEwpIHx8CisgICAgICAgIChyZWFkZXItPmN0eHQtPmlucHV0ID09IE5VTEwpKSB7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIHJldHVybiAocmVhZGVyLT5jdHh0LT5pbnB1dC0+Y29sKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyQ3VycmVudE5vZGU6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIEhhY2tpbmcgaW50ZXJmYWNlIGFsbG93aW5nIHRvIGdldCB0aGUgeG1sTm9kZVB0ciBjb3JyZXBvbmRpbmcgdG8gdGhlCisgKiBjdXJyZW50IG5vZGUgYmVpbmcgYWNjZXNzZWQgYnkgdGhlIHhtbFRleHRSZWFkZXIuIFRoaXMgaXMgZGFuZ2Vyb3VzCisgKiBiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIG5vZGUgbWF5IGJlIGRlc3Ryb3llZCBvbiB0aGUgbmV4dCBSZWFkcy4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxOb2RlUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sTm9kZVB0cgoreG1sVGV4dFJlYWRlckN1cnJlbnROb2RlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIGlmIChyZWFkZXItPmN1cm5vZGUgIT0gTlVMTCkKKwlyZXR1cm4ocmVhZGVyLT5jdXJub2RlKTsKKyAgICByZXR1cm4ocmVhZGVyLT5ub2RlKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyUHJlc2VydmU6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIFRoaXMgdGVsbHMgdGhlIFhNTCBSZWFkZXIgdG8gcHJlc2VydmUgdGhlIGN1cnJlbnQgbm9kZS4KKyAqIFRoZSBjYWxsZXIgbXVzdCBhbHNvIHVzZSB4bWxUZXh0UmVhZGVyQ3VycmVudERvYygpIHRvCisgKiBrZWVwIGFuIGhhbmRsZSBvbiB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IG9uY2UgcGFyc2luZyBoYXMgZmluaXNoZWQKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxOb2RlUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sTm9kZVB0cgoreG1sVGV4dFJlYWRlclByZXNlcnZlKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgeG1sTm9kZVB0ciBjdXIsIHBhcmVudDsKKworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBpZiAocmVhZGVyLT5jdXJub2RlICE9IE5VTEwpCisgICAgICAgIGN1ciA9IHJlYWRlci0+Y3Vybm9kZTsKKyAgICBlbHNlCisgICAgICAgIGN1ciA9IHJlYWRlci0+bm9kZTsKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIGlmICgoY3VyLT50eXBlICE9IFhNTF9ET0NVTUVOVF9OT0RFKSAmJiAoY3VyLT50eXBlICE9IFhNTF9EVERfTk9ERSkpIHsKKwljdXItPmV4dHJhIHw9IE5PREVfSVNfUFJFU0VSVkVEOworCWN1ci0+ZXh0cmEgfD0gTk9ERV9JU19TUFJFU0VSVkVEOworICAgIH0KKyAgICByZWFkZXItPnByZXNlcnZlcysrOworCisgICAgcGFyZW50ID0gY3VyLT5wYXJlbnQ7OworICAgIHdoaWxlIChwYXJlbnQgIT0gTlVMTCkgeworICAgICAgICBpZiAocGFyZW50LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisJICAgIHBhcmVudC0+ZXh0cmEgfD0gTk9ERV9JU19QUkVTRVJWRUQ7CisJcGFyZW50ID0gcGFyZW50LT5wYXJlbnQ7CisgICAgfQorICAgIHJldHVybihjdXIpOworfQorCisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorLyoqCisgKiB4bWxUZXh0UmVhZGVyUHJlc2VydmVQYXR0ZXJuOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBwYXR0ZXJuOiAgYW4gWFBhdGggc3Vic2V0IHBhdHRlcm4KKyAqIEBuYW1lc3BhY2VzOiB0aGUgcHJlZml4IGRlZmluaXRpb25zLCBhcnJheSBvZiBbVVJJLCBwcmVmaXhdIG9yIE5VTEwKKyAqCisgKiBUaGlzIHRlbGxzIHRoZSBYTUwgUmVhZGVyIHRvIHByZXNlcnZlIGFsbCBub2RlcyBtYXRjaGVkIGJ5IHRoZQorICogcGF0dGVybi4gVGhlIGNhbGxlciBtdXN0IGFsc28gdXNlIHhtbFRleHRSZWFkZXJDdXJyZW50RG9jKCkgdG8KKyAqIGtlZXAgYW4gaGFuZGxlIG9uIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgb25jZSBwYXJzaW5nIGhhcyBmaW5pc2hlZAorICoKKyAqIFJldHVybnMgYSBwb3NpdGl2ZSBudW1iZXIgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFJlYWRlclByZXNlcnZlUGF0dGVybih4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgY29uc3QgeG1sQ2hhciAqcGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqKm5hbWVzcGFjZXMpCit7CisgICAgeG1sUGF0dGVyblB0ciBjb21wOworCisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHBhdHRlcm4gPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKworICAgIGNvbXAgPSB4bWxQYXR0ZXJuY29tcGlsZShwYXR0ZXJuLCByZWFkZXItPmRpY3QsIDAsIG5hbWVzcGFjZXMpOworICAgIGlmIChjb21wID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICBpZiAocmVhZGVyLT5wYXR0ZXJuTWF4IDw9IDApIHsKKwlyZWFkZXItPnBhdHRlcm5NYXggPSA0OworCXJlYWRlci0+cGF0dGVyblRhYiA9ICh4bWxQYXR0ZXJuUHRyICopIHhtbE1hbGxvYyhyZWFkZXItPnBhdHRlcm5NYXggKgorCQkJCQkgICAgICBzaXplb2YocmVhZGVyLT5wYXR0ZXJuVGFiWzBdKSk7CisgICAgICAgIGlmIChyZWFkZXItPnBhdHRlcm5UYWIgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJ4bWxNYWxsb2MgZmFpbGVkICFcbiIpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHJlYWRlci0+cGF0dGVybk5yID49IHJlYWRlci0+cGF0dGVybk1heCkgeworICAgICAgICB4bWxQYXR0ZXJuUHRyICp0bXA7CisgICAgICAgIHJlYWRlci0+cGF0dGVybk1heCAqPSAyOworCXRtcCA9ICh4bWxQYXR0ZXJuUHRyICopIHhtbFJlYWxsb2MocmVhZGVyLT5wYXR0ZXJuVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXItPnBhdHRlcm5NYXggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocmVhZGVyLT5wYXR0ZXJuVGFiWzBdKSk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJ4bWxSZWFsbG9jIGZhaWxlZCAhXG4iKTsKKwkgICAgcmVhZGVyLT5wYXR0ZXJuTWF4IC89IDI7CisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICAgfQorCXJlYWRlci0+cGF0dGVyblRhYiA9IHRtcDsKKyAgICB9CisgICAgcmVhZGVyLT5wYXR0ZXJuVGFiW3JlYWRlci0+cGF0dGVybk5yXSA9IGNvbXA7CisgICAgcmV0dXJuKHJlYWRlci0+cGF0dGVybk5yKyspOworfQorI2VuZGlmCisKKy8qKgorICogeG1sVGV4dFJlYWRlckN1cnJlbnREb2M6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICoKKyAqIEhhY2tpbmcgaW50ZXJmYWNlIGFsbG93aW5nIHRvIGdldCB0aGUgeG1sRG9jUHRyIGNvcnJlcG9uZGluZyB0byB0aGUKKyAqIGN1cnJlbnQgZG9jdW1lbnQgYmVpbmcgYWNjZXNzZWQgYnkgdGhlIHhtbFRleHRSZWFkZXIuCisgKiBOT1RFOiBhcyBhIHJlc3VsdCBvZiB0aGlzIGNhbGwsIHRoZSByZWFkZXIgd2lsbCBub3QgZGVzdHJveSB0aGUKKyAqICAgICAgIGFzc29jaWF0ZWQgWE1MIGRvY3VtZW50IGFuZCBjYWxsaW5nIHhtbEZyZWVEb2MoKSBvbiB0aGUgcmVzdWx0CisgKiAgICAgICBpcyBuZWVkZWQgb25jZSB0aGUgcmVhZGVyIHBhcnNpbmcgaGFzIGZpbmlzaGVkLgorICoKKyAqIFJldHVybnMgdGhlIHhtbERvY1B0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbERvY1B0cgoreG1sVGV4dFJlYWRlckN1cnJlbnREb2MoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyZWFkZXItPmRvYyAhPSBOVUxMKQorICAgICAgICByZXR1cm4ocmVhZGVyLT5kb2MpOworICAgIGlmICgocmVhZGVyLT5jdHh0ID09IE5VTEwpIHx8IChyZWFkZXItPmN0eHQtPm15RG9jID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKworICAgIHJlYWRlci0+cHJlc2VydmUgPSAxOworICAgIHJldHVybihyZWFkZXItPmN0eHQtPm15RG9jKTsKK30KKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKK3N0YXRpYyBjaGFyICp4bWxUZXh0UmVhZGVyQnVpbGRNZXNzYWdlKGNvbnN0IGNoYXIgKm1zZywgdmFfbGlzdCBhcCk7CisKK3N0YXRpYyB2b2lkIFhNTENERUNMCit4bWxUZXh0UmVhZGVyVmFsaWRpdHlFcnJvcih2b2lkICpjdHh0LCBjb25zdCBjaGFyICptc2csIC4uLik7CisKK3N0YXRpYyB2b2lkIFhNTENERUNMCit4bWxUZXh0UmVhZGVyVmFsaWRpdHlXYXJuaW5nKHZvaWQgKmN0eHQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKTsKKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbFRleHRSZWFkZXJWYWxpZGl0eUVycm9yUmVsYXkodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciA9ICh4bWxUZXh0UmVhZGVyUHRyKSBjdHg7CisKKyAgICBjaGFyICpzdHI7CisKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgc3RyID0geG1sVGV4dFJlYWRlckJ1aWxkTWVzc2FnZShtc2csIGFwKTsKKyAgICBpZiAoIXJlYWRlci0+ZXJyb3JGdW5jKSB7CisgICAgICAgIHhtbFRleHRSZWFkZXJWYWxpZGl0eUVycm9yKGN0eCwgIiVzIiwgc3RyKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZWFkZXItPmVycm9yRnVuYyhyZWFkZXItPmVycm9yRnVuY0FyZywgc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIGxvY2F0b3IgKi8gKTsKKyAgICB9CisgICAgaWYgKHN0ciAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHN0cik7CisgICAgdmFfZW5kKGFwKTsKK30KKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmdSZWxheSh2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyID0gKHhtbFRleHRSZWFkZXJQdHIpIGN0eDsKKworICAgIGNoYXIgKnN0cjsKKworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgbXNnKTsKKyAgICBzdHIgPSB4bWxUZXh0UmVhZGVyQnVpbGRNZXNzYWdlKG1zZywgYXApOworICAgIGlmICghcmVhZGVyLT5lcnJvckZ1bmMpIHsKKyAgICAgICAgeG1sVGV4dFJlYWRlclZhbGlkaXR5V2FybmluZyhjdHgsICIlcyIsIHN0cik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVhZGVyLT5lcnJvckZ1bmMocmVhZGVyLT5lcnJvckZ1bmNBcmcsIHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIGxvY2F0b3IgKi8gKTsKKyAgICB9CisgICAgaWYgKHN0ciAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHN0cik7CisgICAgdmFfZW5kKGFwKTsKK30KKworc3RhdGljIHZvaWQKKyAgeG1sVGV4dFJlYWRlclN0cnVjdHVyZWRFcnJvcih2b2lkICpjdHh0LCB4bWxFcnJvclB0ciBlcnJvcik7CisKK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyVmFsaWRpdHlTdHJ1Y3R1cmVkUmVsYXkodm9pZCAqdXNlckRhdGEsIHhtbEVycm9yUHRyIGVycm9yKQoreworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyID0gKHhtbFRleHRSZWFkZXJQdHIpIHVzZXJEYXRhOworCisgICAgaWYgKHJlYWRlci0+c0Vycm9yRnVuYykgeworICAgICAgICByZWFkZXItPnNFcnJvckZ1bmMocmVhZGVyLT5lcnJvckZ1bmNBcmcsIGVycm9yKTsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxUZXh0UmVhZGVyU3RydWN0dXJlZEVycm9yKHJlYWRlciwgZXJyb3IpOworICAgIH0KK30KKy8qKgorICogeG1sVGV4dFJlYWRlclJlbGF4TkdTZXRTY2hlbWE6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQHNjaGVtYTogIGEgcHJlY29tcGlsZWQgUmVsYXhORyBzY2hlbWEKKyAqCisgKiBVc2UgUmVsYXhORyB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLgorICogQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLgorICogaWYgQHNjaGVtYSBpcyBOVUxMLCB0aGVuIFJlbGF4TkcgdmFsaWRhdGlvbiBpcyBkZXNhY3RpdmF0ZWQuCisgQCBUaGUgQHNjaGVtYSBzaG91bGQgbm90IGJlIGZyZWVkIHVudGlsIHRoZSByZWFkZXIgaXMgZGVhbGxvY2F0ZWQKKyAqIG9yIGl0cyB1c2UgaGFzIGJlZW4gZGVhY3RpdmF0ZWQuCisgKgorICogUmV0dXJucyAwIGluIGNhc2UgdGhlIFJlbGF4TkcgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGVzKWFjdGl2YXRlZCBhbmQKKyAqICAgICAgICAgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxUZXh0UmVhZGVyUmVsYXhOR1NldFNjaGVtYSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgeG1sUmVsYXhOR1B0ciBzY2hlbWEpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaWYgKHNjaGVtYSA9PSBOVUxMKSB7CisgICAgICAgIGlmIChyZWFkZXItPnJuZ1NjaGVtYXMgIT0gTlVMTCkgeworCSAgICB4bWxSZWxheE5HRnJlZShyZWFkZXItPnJuZ1NjaGVtYXMpOworCSAgICByZWFkZXItPnJuZ1NjaGVtYXMgPSBOVUxMOworCX0KKyAgICAgICAgaWYgKHJlYWRlci0+cm5nVmFsaWRDdHh0ICE9IE5VTEwpIHsKKwkgICAgeG1sUmVsYXhOR0ZyZWVWYWxpZEN0eHQocmVhZGVyLT5ybmdWYWxpZEN0eHQpOworCSAgICByZWFkZXItPnJuZ1ZhbGlkQ3R4dCA9IE5VTEw7CisgICAgICAgIH0KKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmIChyZWFkZXItPm1vZGUgIT0gWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+cm5nU2NoZW1hcyAhPSBOVUxMKSB7CisJeG1sUmVsYXhOR0ZyZWUocmVhZGVyLT5ybmdTY2hlbWFzKTsKKwlyZWFkZXItPnJuZ1NjaGVtYXMgPSBOVUxMOworICAgIH0KKyAgICBpZiAocmVhZGVyLT5ybmdWYWxpZEN0eHQgIT0gTlVMTCkgeworCXhtbFJlbGF4TkdGcmVlVmFsaWRDdHh0KHJlYWRlci0+cm5nVmFsaWRDdHh0KTsKKwlyZWFkZXItPnJuZ1ZhbGlkQ3R4dCA9IE5VTEw7CisgICAgfQorICAgIHJlYWRlci0+cm5nVmFsaWRDdHh0ID0geG1sUmVsYXhOR05ld1ZhbGlkQ3R4dChzY2hlbWEpOworICAgIGlmIChyZWFkZXItPnJuZ1ZhbGlkQ3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPmVycm9yRnVuYyAhPSBOVUxMKSB7CisJeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzKHJlYWRlci0+cm5nVmFsaWRDdHh0LAorCQkJeG1sVGV4dFJlYWRlclZhbGlkaXR5RXJyb3JSZWxheSwKKwkJCXhtbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmdSZWxheSwKKwkJCXJlYWRlcik7CisgICAgfQorCWlmIChyZWFkZXItPnNFcnJvckZ1bmMgIT0gTlVMTCkgeworCQl4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHJlYWRlci0+cm5nVmFsaWRDdHh0LAorCQkJeG1sVGV4dFJlYWRlclZhbGlkaXR5U3RydWN0dXJlZFJlbGF5LAorCQkJcmVhZGVyKTsKKyAgICB9CisgICAgcmVhZGVyLT5ybmdWYWxpZEVycm9ycyA9IDA7CisgICAgcmVhZGVyLT5ybmdGdWxsTm9kZSA9IE5VTEw7CisgICAgcmVhZGVyLT52YWxpZGF0ZSA9IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX1JORzsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclNldFNjaGVtYToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAc2NoZW1hOiAgYSBwcmVjb21waWxlZCBTY2hlbWEgc2NoZW1hCisgKgorICogVXNlIFhTRCBTY2hlbWEgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4KKyAqIEFjdGl2YXRpb24gaXMgb25seSBwb3NzaWJsZSBiZWZvcmUgdGhlIGZpcnN0IFJlYWQoKS4KKyAqIGlmIEBzY2hlbWEgaXMgTlVMTCwgdGhlbiBTY2hlbWEgdmFsaWRhdGlvbiBpcyBkZXNhY3RpdmF0ZWQuCisgQCBUaGUgQHNjaGVtYSBzaG91bGQgbm90IGJlIGZyZWVkIHVudGlsIHRoZSByZWFkZXIgaXMgZGVhbGxvY2F0ZWQKKyAqIG9yIGl0cyB1c2UgaGFzIGJlZW4gZGVhY3RpdmF0ZWQuCisgKgorICogUmV0dXJucyAwIGluIGNhc2UgdGhlIFNjaGVtYSB2YWxpZGF0aW9uIGNvdWxkIGJlIChkZXMpYWN0aXZhdGVkIGFuZAorICogICAgICAgICAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFRleHRSZWFkZXJTZXRTY2hlbWEoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsIHhtbFNjaGVtYVB0ciBzY2hlbWEpIHsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaWYgKHNjaGVtYSA9PSBOVUxMKSB7CisJaWYgKHJlYWRlci0+eHNkUGx1ZyAhPSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVNBWFVucGx1ZyhyZWFkZXItPnhzZFBsdWcpOworCSAgICByZWFkZXItPnhzZFBsdWcgPSBOVUxMOworCX0KKyAgICAgICAgaWYgKHJlYWRlci0+eHNkVmFsaWRDdHh0ICE9IE5VTEwpIHsKKwkgICAgaWYgKCEgcmVhZGVyLT54c2RQcmVzZXJ2ZUN0eHQpCisJCXhtbFNjaGVtYUZyZWVWYWxpZEN0eHQocmVhZGVyLT54c2RWYWxpZEN0eHQpOworCSAgICByZWFkZXItPnhzZFZhbGlkQ3R4dCA9IE5VTEw7CisgICAgICAgIH0KKwlyZWFkZXItPnhzZFByZXNlcnZlQ3R4dCA9IDA7CisgICAgICAgIGlmIChyZWFkZXItPnhzZFNjaGVtYXMgIT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFGcmVlKHJlYWRlci0+eHNkU2NoZW1hcyk7CisJICAgIHJlYWRlci0+eHNkU2NoZW1hcyA9IE5VTEw7CisJfQorCXJldHVybigwKTsKKyAgICB9CisgICAgaWYgKHJlYWRlci0+bW9kZSAhPSBYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT54c2RQbHVnICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFTQVhVbnBsdWcocmVhZGVyLT54c2RQbHVnKTsKKwlyZWFkZXItPnhzZFBsdWcgPSBOVUxMOworICAgIH0KKyAgICBpZiAocmVhZGVyLT54c2RWYWxpZEN0eHQgIT0gTlVMTCkgeworCWlmICghIHJlYWRlci0+eHNkUHJlc2VydmVDdHh0KQorCSAgICB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0KHJlYWRlci0+eHNkVmFsaWRDdHh0KTsKKwlyZWFkZXItPnhzZFZhbGlkQ3R4dCA9IE5VTEw7CisgICAgfQorICAgIHJlYWRlci0+eHNkUHJlc2VydmVDdHh0ID0gMDsKKyAgICBpZiAocmVhZGVyLT54c2RTY2hlbWFzICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFGcmVlKHJlYWRlci0+eHNkU2NoZW1hcyk7CisJcmVhZGVyLT54c2RTY2hlbWFzID0gTlVMTDsKKyAgICB9CisgICAgcmVhZGVyLT54c2RWYWxpZEN0eHQgPSB4bWxTY2hlbWFOZXdWYWxpZEN0eHQoc2NoZW1hKTsKKyAgICBpZiAocmVhZGVyLT54c2RWYWxpZEN0eHQgPT0gTlVMTCkgeworCXhtbFNjaGVtYUZyZWUocmVhZGVyLT54c2RTY2hlbWFzKTsKKwlyZWFkZXItPnhzZFNjaGVtYXMgPSBOVUxMOworICAgICAgICByZXR1cm4oLTEpOworICAgIH0KKyAgICByZWFkZXItPnhzZFBsdWcgPSB4bWxTY2hlbWFTQVhQbHVnKHJlYWRlci0+eHNkVmFsaWRDdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihyZWFkZXItPmN0eHQtPnNheCksCisJCQkJICAgICAgICYocmVhZGVyLT5jdHh0LT51c2VyRGF0YSkpOworICAgIGlmIChyZWFkZXItPnhzZFBsdWcgPT0gTlVMTCkgeworCXhtbFNjaGVtYUZyZWUocmVhZGVyLT54c2RTY2hlbWFzKTsKKwlyZWFkZXItPnhzZFNjaGVtYXMgPSBOVUxMOworCXhtbFNjaGVtYUZyZWVWYWxpZEN0eHQocmVhZGVyLT54c2RWYWxpZEN0eHQpOworCXJlYWRlci0+eHNkVmFsaWRDdHh0ID0gTlVMTDsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBpZiAocmVhZGVyLT5lcnJvckZ1bmMgIT0gTlVMTCkgeworCXhtbFNjaGVtYVNldFZhbGlkRXJyb3JzKHJlYWRlci0+eHNkVmFsaWRDdHh0LAorCQkJeG1sVGV4dFJlYWRlclZhbGlkaXR5RXJyb3JSZWxheSwKKwkJCXhtbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmdSZWxheSwKKwkJCXJlYWRlcik7CisgICAgfQorCWlmIChyZWFkZXItPnNFcnJvckZ1bmMgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMocmVhZGVyLT54c2RWYWxpZEN0eHQsCisJCQl4bWxUZXh0UmVhZGVyVmFsaWRpdHlTdHJ1Y3R1cmVkUmVsYXksCisJCQlyZWFkZXIpOworICAgIH0KKyAgICByZWFkZXItPnhzZFZhbGlkRXJyb3JzID0gMDsKKyAgICByZWFkZXItPnZhbGlkYXRlID0gWE1MX1RFWFRSRUFERVJfVkFMSURBVEVfWFNEOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyUmVsYXhOR1ZhbGlkYXRlOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBybmc6ICB0aGUgcGF0aCB0byBhIFJlbGF4Tkcgc2NoZW1hIG9yIE5VTEwKKyAqCisgKiBVc2UgUmVsYXhORyB0byB2YWxpZGF0ZSB0aGUgZG9jdW1lbnQgYXMgaXQgaXMgcHJvY2Vzc2VkLgorICogQWN0aXZhdGlvbiBpcyBvbmx5IHBvc3NpYmxlIGJlZm9yZSB0aGUgZmlyc3QgUmVhZCgpLgorICogaWYgQHJuZyBpcyBOVUxMLCB0aGVuIFJlbGF4TkcgdmFsaWRhdGlvbiBpcyBkZWFjdGl2YXRlZC4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSB0aGUgUmVsYXhORyB2YWxpZGF0aW9uIGNvdWxkIGJlIChkZSlhY3RpdmF0ZWQgYW5kCisgKiAgICAgICAgIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sVGV4dFJlYWRlclJlbGF4TkdWYWxpZGF0ZSh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgY29uc3QgY2hhciAqcm5nKSB7CisgICAgeG1sUmVsYXhOR1BhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIGlmIChybmcgPT0gTlVMTCkgeworICAgICAgICBpZiAocmVhZGVyLT5ybmdWYWxpZEN0eHQgIT0gTlVMTCkgeworCSAgICB4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dChyZWFkZXItPnJuZ1ZhbGlkQ3R4dCk7CisJICAgIHJlYWRlci0+cm5nVmFsaWRDdHh0ID0gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVhZGVyLT5ybmdTY2hlbWFzICE9IE5VTEwpIHsKKwkgICAgeG1sUmVsYXhOR0ZyZWUocmVhZGVyLT5ybmdTY2hlbWFzKTsKKwkgICAgcmVhZGVyLT5ybmdTY2hlbWFzID0gTlVMTDsKKwl9CisJcmV0dXJuKDApOworICAgIH0KKyAgICBpZiAocmVhZGVyLT5tb2RlICE9IFhNTF9URVhUUkVBREVSX01PREVfSU5JVElBTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChyZWFkZXItPnJuZ1NjaGVtYXMgIT0gTlVMTCkgeworCXhtbFJlbGF4TkdGcmVlKHJlYWRlci0+cm5nU2NoZW1hcyk7CisJcmVhZGVyLT5ybmdTY2hlbWFzID0gTlVMTDsKKyAgICB9CisgICAgaWYgKHJlYWRlci0+cm5nVmFsaWRDdHh0ICE9IE5VTEwpIHsKKwl4bWxSZWxheE5HRnJlZVZhbGlkQ3R4dChyZWFkZXItPnJuZ1ZhbGlkQ3R4dCk7CisJcmVhZGVyLT5ybmdWYWxpZEN0eHQgPSBOVUxMOworICAgIH0KKyAgICBjdHh0ID0geG1sUmVsYXhOR05ld1BhcnNlckN0eHQocm5nKTsKKyAgICBpZiAocmVhZGVyLT5lcnJvckZ1bmMgIT0gTlVMTCkgeworCXhtbFJlbGF4TkdTZXRQYXJzZXJFcnJvcnMoY3R4dCwKKwkJCSB4bWxUZXh0UmVhZGVyVmFsaWRpdHlFcnJvclJlbGF5LAorCQkJIHhtbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmdSZWxheSwKKwkJCSByZWFkZXIpOworICAgIH0KKyAgICBpZiAocmVhZGVyLT5zRXJyb3JGdW5jICE9IE5VTEwpIHsKKwl4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHJlYWRlci0+cm5nVmFsaWRDdHh0LAorCQkJeG1sVGV4dFJlYWRlclZhbGlkaXR5U3RydWN0dXJlZFJlbGF5LAorCQkJcmVhZGVyKTsKKyAgICB9CisgICAgcmVhZGVyLT5ybmdTY2hlbWFzID0geG1sUmVsYXhOR1BhcnNlKGN0eHQpOworICAgIHhtbFJlbGF4TkdGcmVlUGFyc2VyQ3R4dChjdHh0KTsKKyAgICBpZiAocmVhZGVyLT5ybmdTY2hlbWFzID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmVhZGVyLT5ybmdWYWxpZEN0eHQgPSB4bWxSZWxheE5HTmV3VmFsaWRDdHh0KHJlYWRlci0+cm5nU2NoZW1hcyk7CisgICAgaWYgKHJlYWRlci0+cm5nVmFsaWRDdHh0ID09IE5VTEwpIHsKKwl4bWxSZWxheE5HRnJlZShyZWFkZXItPnJuZ1NjaGVtYXMpOworCXJlYWRlci0+cm5nU2NoZW1hcyA9IE5VTEw7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorICAgIGlmIChyZWFkZXItPmVycm9yRnVuYyAhPSBOVUxMKSB7CisJeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzKHJlYWRlci0+cm5nVmFsaWRDdHh0LAorCQkJIHhtbFRleHRSZWFkZXJWYWxpZGl0eUVycm9yUmVsYXksCisJCQkgeG1sVGV4dFJlYWRlclZhbGlkaXR5V2FybmluZ1JlbGF5LAorCQkJIHJlYWRlcik7CisgICAgfQorCWlmIChyZWFkZXItPnNFcnJvckZ1bmMgIT0gTlVMTCkgeworCQl4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHJlYWRlci0+cm5nVmFsaWRDdHh0LAorCQkJeG1sVGV4dFJlYWRlclZhbGlkaXR5U3RydWN0dXJlZFJlbGF5LAorCQkJcmVhZGVyKTsKKyAgICB9CisgICAgcmVhZGVyLT5ybmdWYWxpZEVycm9ycyA9IDA7CisgICAgcmVhZGVyLT5ybmdGdWxsTm9kZSA9IE5VTEw7CisgICAgcmVhZGVyLT52YWxpZGF0ZSA9IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX1JORzsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlSW50ZXJuYWw6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQHhzZDogIHRoZSBwYXRoIHRvIGEgVzNDIFhTRCBzY2hlbWEgb3IgTlVMTAorICogQGN0eHQ6IHRoZSBYTUwgU2NoZW1hIHZhbGlkYXRpb24gY29udGV4dCBvciBOVUxMCisgKiBAb3B0aW9uczogb3B0aW9ucyAobm90IHVzZWQgeWV0KQorICoKKyAqIFZhbGlkYXRlIHRoZSBkb2N1bWVudCBhcyBpdCBpcyBwcm9jZXNzZWQgdXNpbmcgWE1MIFNjaGVtYS4KKyAqIEFjdGl2YXRpb24gaXMgb25seSBwb3NzaWJsZSBiZWZvcmUgdGhlIGZpcnN0IFJlYWQoKS4KKyAqIElmIGJvdGggQHhzZCBhbmQgQGN0eHQgYXJlIE5VTEwgdGhlbiBYTUwgU2NoZW1hIHZhbGlkYXRpb24gaXMgZGVhY3RpdmF0ZWQuCisgKgorICogUmV0dXJucyAwIGluIGNhc2UgdGhlIHNjaGVtYXMgdmFsaWRhdGlvbiBjb3VsZCBiZSAoZGUpYWN0aXZhdGVkIGFuZAorICogICAgICAgICAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVJbnRlcm5hbCh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwKKwkJCQkgICAgY29uc3QgY2hhciAqeHNkLAorCQkJCSAgICB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkgICAgaW50IG9wdGlvbnMgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICBpZiAoKHhzZCAhPSBOVUxMKSAmJiAoY3R4dCAhPSBOVUxMKSkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKCgoeHNkICE9IE5VTEwpIHx8IChjdHh0ICE9IE5VTEwpKSAmJgorCSgocmVhZGVyLT5tb2RlICE9IFhNTF9URVhUUkVBREVSX01PREVfSU5JVElBTCkgfHwKKyAgICAgICAgKHJlYWRlci0+Y3R4dCA9PSBOVUxMKSkpCisJcmV0dXJuKC0xKTsKKworICAgIC8qIENsZWFudXAgcHJldmlvdXMgdmFsaWRhdGlvbiBzdHVmZi4gKi8KKyAgICBpZiAocmVhZGVyLT54c2RQbHVnICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFTQVhVbnBsdWcocmVhZGVyLT54c2RQbHVnKTsKKwlyZWFkZXItPnhzZFBsdWcgPSBOVUxMOworICAgIH0KKyAgICBpZiAocmVhZGVyLT54c2RWYWxpZEN0eHQgIT0gTlVMTCkgeworCWlmICghIHJlYWRlci0+eHNkUHJlc2VydmVDdHh0KQorCSAgICB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0KHJlYWRlci0+eHNkVmFsaWRDdHh0KTsKKwlyZWFkZXItPnhzZFZhbGlkQ3R4dCA9IE5VTEw7CisgICAgfQorICAgIHJlYWRlci0+eHNkUHJlc2VydmVDdHh0ID0gMDsKKyAgICBpZiAocmVhZGVyLT54c2RTY2hlbWFzICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFGcmVlKHJlYWRlci0+eHNkU2NoZW1hcyk7CisJcmVhZGVyLT54c2RTY2hlbWFzID0gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoKHhzZCA9PSBOVUxMKSAmJiAoY3R4dCA9PSBOVUxMKSkgeworCS8qIFdlIGp1c3Qgd2FudCB0byBkZWFjdGl2YXRlIHRoZSB2YWxpZGF0aW9uLCBzbyBnZXQgb3V0LiAqLworCXJldHVybigwKTsKKyAgICB9CisKKyAgICBpZiAoeHNkICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0OworCS8qIFBhcnNlIHRoZSBzY2hlbWEgYW5kIGNyZWF0ZSB2YWxpZGF0aW9uIGVudmlyb25tZW50LiAqLworCXBjdHh0ID0geG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCh4c2QpOworCWlmIChyZWFkZXItPmVycm9yRnVuYyAhPSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVNldFBhcnNlckVycm9ycyhwY3R4dCwKKwkJeG1sVGV4dFJlYWRlclZhbGlkaXR5RXJyb3JSZWxheSwKKwkJeG1sVGV4dFJlYWRlclZhbGlkaXR5V2FybmluZ1JlbGF5LAorCQlyZWFkZXIpOworCX0KKwlyZWFkZXItPnhzZFNjaGVtYXMgPSB4bWxTY2hlbWFQYXJzZShwY3R4dCk7CisJeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQocGN0eHQpOworCWlmIChyZWFkZXItPnhzZFNjaGVtYXMgPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKwlyZWFkZXItPnhzZFZhbGlkQ3R4dCA9IHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dChyZWFkZXItPnhzZFNjaGVtYXMpOworCWlmIChyZWFkZXItPnhzZFZhbGlkQ3R4dCA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYUZyZWUocmVhZGVyLT54c2RTY2hlbWFzKTsKKwkgICAgcmVhZGVyLT54c2RTY2hlbWFzID0gTlVMTDsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJcmVhZGVyLT54c2RQbHVnID0geG1sU2NoZW1hU0FYUGx1ZyhyZWFkZXItPnhzZFZhbGlkQ3R4dCwKKwkgICAgJihyZWFkZXItPmN0eHQtPnNheCksCisJICAgICYocmVhZGVyLT5jdHh0LT51c2VyRGF0YSkpOworCWlmIChyZWFkZXItPnhzZFBsdWcgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFGcmVlKHJlYWRlci0+eHNkU2NoZW1hcyk7CisJICAgIHJlYWRlci0+eHNkU2NoZW1hcyA9IE5VTEw7CisJICAgIHhtbFNjaGVtYUZyZWVWYWxpZEN0eHQocmVhZGVyLT54c2RWYWxpZEN0eHQpOworCSAgICByZWFkZXItPnhzZFZhbGlkQ3R4dCA9IE5VTEw7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0gZWxzZSB7CisJLyogVXNlIHRoZSBnaXZlbiB2YWxpZGF0aW9uIGNvbnRleHQuICovCisJcmVhZGVyLT54c2RWYWxpZEN0eHQgPSBjdHh0OworCXJlYWRlci0+eHNkUHJlc2VydmVDdHh0ID0gMTsKKwlyZWFkZXItPnhzZFBsdWcgPSB4bWxTY2hlbWFTQVhQbHVnKHJlYWRlci0+eHNkVmFsaWRDdHh0LAorCSAgICAmKHJlYWRlci0+Y3R4dC0+c2F4KSwKKwkgICAgJihyZWFkZXItPmN0eHQtPnVzZXJEYXRhKSk7CisJaWYgKHJlYWRlci0+eHNkUGx1ZyA9PSBOVUxMKSB7CisJICAgIHJlYWRlci0+eHNkVmFsaWRDdHh0ID0gTlVMTDsKKwkgICAgcmVhZGVyLT54c2RQcmVzZXJ2ZUN0eHQgPSAwOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIFJlZGlyZWN0IHRoZSB2YWxpZGF0aW9uIGNvbnRleHQncyBlcnJvciBjaGFubmVscyB0byB1c2UKKyAgICAqIHRoZSByZWFkZXIgY2hhbm5lbHMuCisgICAgKiBUT0RPOiBJbiBjYXNlIHRoZSB1c2VyIHByb3ZpZGVzIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgd2UKKyAgICAqICAgY291bGQgbWFrZSB0aGlzIHJlZGlyZWN0aW9uIG9wdGlvbmFsLgorICAgICovCisgICAgaWYgKHJlYWRlci0+ZXJyb3JGdW5jICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyhyZWFkZXItPnhzZFZhbGlkQ3R4dCwKKwkJCSB4bWxUZXh0UmVhZGVyVmFsaWRpdHlFcnJvclJlbGF5LAorCQkJIHhtbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmdSZWxheSwKKwkJCSByZWFkZXIpOworICAgIH0KKwlpZiAocmVhZGVyLT5zRXJyb3JGdW5jICE9IE5VTEwpIHsKKwkJeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHJlYWRlci0+eHNkVmFsaWRDdHh0LAorCQkJeG1sVGV4dFJlYWRlclZhbGlkaXR5U3RydWN0dXJlZFJlbGF5LAorCQkJcmVhZGVyKTsKKyAgICB9CisgICAgcmVhZGVyLT54c2RWYWxpZEVycm9ycyA9IDA7CisgICAgcmVhZGVyLT52YWxpZGF0ZSA9IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX1hTRDsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlQ3R4dDoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAY3R4dDogdGhlIFhNTCBTY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwKKyAqIEBvcHRpb25zOiBvcHRpb25zIChub3QgdXNlZCB5ZXQpCisgKgorICogVXNlIFczQyBYU0Qgc2NoZW1hIGNvbnRleHQgdG8gdmFsaWRhdGUgdGhlIGRvY3VtZW50IGFzIGl0IGlzIHByb2Nlc3NlZC4KKyAqIEFjdGl2YXRpb24gaXMgb25seSBwb3NzaWJsZSBiZWZvcmUgdGhlIGZpcnN0IFJlYWQoKS4KKyAqIElmIEBjdHh0IGlzIE5VTEwsIHRoZW4gWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGlzIGRlYWN0aXZhdGVkLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIHRoZSBzY2hlbWFzIHZhbGlkYXRpb24gY291bGQgYmUgKGRlKWFjdGl2YXRlZCBhbmQKKyAqICAgICAgICAgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGVDdHh0KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorCQkJCSAgICB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCQkgICAgaW50IG9wdGlvbnMpCit7CisgICAgcmV0dXJuKHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZUludGVybmFsKHJlYWRlciwgTlVMTCwgY3R4dCwgb3B0aW9ucykpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJTY2hlbWFWYWxpZGF0ZToKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKiBAeHNkOiAgdGhlIHBhdGggdG8gYSBXM0MgWFNEIHNjaGVtYSBvciBOVUxMCisgKgorICogVXNlIFczQyBYU0Qgc2NoZW1hIHRvIHZhbGlkYXRlIHRoZSBkb2N1bWVudCBhcyBpdCBpcyBwcm9jZXNzZWQuCisgKiBBY3RpdmF0aW9uIGlzIG9ubHkgcG9zc2libGUgYmVmb3JlIHRoZSBmaXJzdCBSZWFkKCkuCisgKiBJZiBAeHNkIGlzIE5VTEwsIHRoZW4gWE1MIFNjaGVtYSB2YWxpZGF0aW9uIGlzIGRlYWN0aXZhdGVkLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIHRoZSBzY2hlbWFzIHZhbGlkYXRpb24gY291bGQgYmUgKGRlKWFjdGl2YXRlZCBhbmQKKyAqICAgICAgICAgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworaW50Cit4bWxUZXh0UmVhZGVyU2NoZW1hVmFsaWRhdGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsIGNvbnN0IGNoYXIgKnhzZCkKK3sKKyAgICByZXR1cm4oeG1sVGV4dFJlYWRlclNjaGVtYVZhbGlkYXRlSW50ZXJuYWwocmVhZGVyLCB4c2QsIE5VTEwsIDApKTsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2w6CisgKiBAcmVhZGVyOiB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGN1cnJlbnQgbm9kZSBpcyBhIG5hbWVzcGFjZSBkZWNsYXJhdGlvbgorICogcmF0aGVyIHRoYW4gYSByZWd1bGFyIGF0dHJpYnV0ZS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBhIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiwgMCBpZiBpdAorICogaXMgYSByZWd1bGFyIGF0dHJpYnV0ZSBvciBvdGhlciB0eXBlIG9mIG5vZGUsIG9yIC0xIGluIGNhc2Ugb2YKKyAqIGVycm9yLgorICovCitpbnQKK3htbFRleHRSZWFkZXJJc05hbWVzcGFjZURlY2woeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+bm9kZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHJlYWRlci0+Y3Vybm9kZSAhPSBOVUxMKQorCW5vZGUgPSByZWFkZXItPmN1cm5vZGU7CisgICAgZWxzZQorCW5vZGUgPSByZWFkZXItPm5vZGU7CisKKyAgICBpZiAoWE1MX05BTUVTUEFDRV9ERUNMID09IG5vZGUtPnR5cGUpCisJcmV0dXJuKDEpOworICAgIGVsc2UKKwlyZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbjoKKyAqIEByZWFkZXI6ICB0aGUgeG1sVGV4dFJlYWRlclB0ciB1c2VkCisgKgorICogRGV0ZXJtaW5lIHRoZSBYTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQgYmVpbmcgcmVhZC4KKyAqCisgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFhNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCBvciBOVUxMCisgKiBpbiBjYXNlIG9mIGVycm9yLiAgVGhlIHN0cmluZyBpcyBkZWFsbG9jYXRlZCB3aXRoIHRoZSByZWFkZXIuCisgKi8KK2NvbnN0IHhtbENoYXIgKgoreG1sVGV4dFJlYWRlckNvbnN0WG1sVmVyc2lvbih4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcikgeworICAgIHhtbERvY1B0ciBkb2MgPSBOVUxMOworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKHJlYWRlci0+ZG9jICE9IE5VTEwpCisgICAgICAgIGRvYyA9IHJlYWRlci0+ZG9jOworICAgIGVsc2UgaWYgKHJlYWRlci0+Y3R4dCAhPSBOVUxMKQorCWRvYyA9IHJlYWRlci0+Y3R4dC0+bXlEb2M7CisgICAgaWYgKGRvYyA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIGlmIChkb2MtPnZlcnNpb24gPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgZWxzZQorICAgICAgcmV0dXJuKENPTlNUU1RSKGRvYy0+dmVyc2lvbikpOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJTdGFuZGFsb25lOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBEZXRlcm1pbmUgdGhlIHN0YW5kYWxvbmUgc3RhdHVzIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFkLgorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgZG9jdW1lbnQgd2FzIGRlY2xhcmVkIHRvIGJlIHN0YW5kYWxvbmUsIDAgaWYgaXQKKyAqIHdhcyBkZWNsYXJlZCB0byBiZSBub3Qgc3RhbmRhbG9uZSwgb3IgLTEgaWYgdGhlIGRvY3VtZW50IGRpZCBub3QKKyAqIHNwZWNpZnkgaXRzIHN0YW5kYWxvbmUgc3RhdHVzIG9yIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sVGV4dFJlYWRlclN0YW5kYWxvbmUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIpIHsKKyAgICB4bWxEb2NQdHIgZG9jID0gTlVMTDsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocmVhZGVyLT5kb2MgIT0gTlVMTCkKKyAgICAgICAgZG9jID0gcmVhZGVyLT5kb2M7CisgICAgZWxzZSBpZiAocmVhZGVyLT5jdHh0ICE9IE5VTEwpCisJZG9jID0gcmVhZGVyLT5jdHh0LT5teURvYzsKKyAgICBpZiAoZG9jID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKworICAgIHJldHVybihkb2MtPnN0YW5kYWxvbmUpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJRXJyb3IgSGFuZGxpbmcgRXh0ZW5zaW9ucyAgICAgICAgICAgICAgICAgICAgICAgKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBoZWxwZXIgdG8gYnVpbGQgYSB4bWxNYWxsb2MnZWQgc3RyaW5nIGZyb20gYSBmb3JtYXQgYW5kIHZhX2xpc3QgKi8KK3N0YXRpYyBjaGFyICoKK3htbFRleHRSZWFkZXJCdWlsZE1lc3NhZ2UoY29uc3QgY2hhciAqbXNnLCB2YV9saXN0IGFwKSB7CisgICAgaW50IHNpemUgPSAwOworICAgIGludCBjaGFyczsKKyAgICBjaGFyICpsYXJnZXI7CisgICAgY2hhciAqc3RyID0gTlVMTDsKKyAgICB2YV9saXN0IGFxOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgVkFfQ09QWShhcSwgYXApOworICAgICAgICBjaGFycyA9IHZzbnByaW50ZihzdHIsIHNpemUsIG1zZywgYXEpOworICAgICAgICB2YV9lbmQoYXEpOworICAgICAgICBpZiAoY2hhcnMgPCAwKSB7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAidnNucHJpbnRmIGZhaWxlZCAhXG4iKTsKKwkgICAgaWYgKHN0cikKKwkJeG1sRnJlZShzdHIpOworCSAgICByZXR1cm4gTlVMTDsKKwl9CisJaWYgKChjaGFycyA8IHNpemUpIHx8IChzaXplID09IE1BWF9FUlJfTVNHX1NJWkUpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChjaGFycyA8IE1BWF9FUlJfTVNHX1NJWkUpCisJc2l6ZSA9IGNoYXJzICsgMTsKKwllbHNlCisJCXNpemUgPSBNQVhfRVJSX01TR19TSVpFOworICAgICAgICBpZiAoKGxhcmdlciA9IChjaGFyICopIHhtbFJlYWxsb2Moc3RyLCBzaXplKSkgPT0gTlVMTCkgeworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInhtbFJlYWxsb2MgZmFpbGVkICFcbiIpOworCSAgICBpZiAoc3RyKQorICAgICAgICAgICAgICAgIHhtbEZyZWUoc3RyKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHN0ciA9IGxhcmdlcjsKKyAgICB9CisKKyAgICByZXR1cm4gc3RyOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJMb2NhdG9yTGluZU51bWJlcjoKKyAqIEBsb2NhdG9yOiB0aGUgeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIgdXNlZAorICoKKyAqIE9idGFpbiB0aGUgbGluZSBudW1iZXIgZm9yIHRoZSBnaXZlbiBsb2NhdG9yLgorICoKKyAqIFJldHVybnMgdGhlIGxpbmUgbnVtYmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sVGV4dFJlYWRlckxvY2F0b3JMaW5lTnVtYmVyKHhtbFRleHRSZWFkZXJMb2NhdG9yUHRyIGxvY2F0b3IpIHsKKyAgICAvKiB3ZSBrbm93IHRoYXQgbG9jYXRvciBpcyBhIHhtbFBhcnNlckN0eHRQdHIgKi8KKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eCA9ICh4bWxQYXJzZXJDdHh0UHRyKWxvY2F0b3I7CisgICAgaW50IHJldCA9IC0xOworCisgICAgaWYgKGxvY2F0b3IgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBpZiAoY3R4LT5ub2RlICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxHZXRMaW5lTm8oY3R4LT5ub2RlKTsKKyAgICB9CisgICAgZWxzZSB7CisJLyogaW5zcGlyZWQgZnJvbSBlcnJvci5jICovCisJeG1sUGFyc2VySW5wdXRQdHIgaW5wdXQ7CisJaW5wdXQgPSBjdHgtPmlucHV0OworCWlmICgoaW5wdXQtPmZpbGVuYW1lID09IE5VTEwpICYmIChjdHgtPmlucHV0TnIgPiAxKSkKKwkgICAgaW5wdXQgPSBjdHgtPmlucHV0VGFiW2N0eC0+aW5wdXROciAtIDJdOworCWlmIChpbnB1dCAhPSBOVUxMKSB7CisJICAgIHJldCA9IGlucHV0LT5saW5lOworCX0KKwllbHNlIHsKKwkgICAgcmV0ID0gLTE7CisJfQorICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qKgorICogeG1sVGV4dFJlYWRlckxvY2F0b3JCYXNlVVJJOgorICogQGxvY2F0b3I6IHRoZSB4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciB1c2VkCisgKgorICogT2J0YWluIHRoZSBiYXNlIFVSSSBmb3IgdGhlIGdpdmVuIGxvY2F0b3IuCisgKgorICogUmV0dXJucyB0aGUgYmFzZSBVUkkgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLAorICogICAgaWYgbm9uIE5VTEwgaXQgbmVlZCB0byBiZSBmcmVlZCBieSB0aGUgY2FsbGVyLgorICovCit4bWxDaGFyICoKK3htbFRleHRSZWFkZXJMb2NhdG9yQmFzZVVSSSh4bWxUZXh0UmVhZGVyTG9jYXRvclB0ciBsb2NhdG9yKSB7CisgICAgLyogd2Uga25vdyB0aGF0IGxvY2F0b3IgaXMgYSB4bWxQYXJzZXJDdHh0UHRyICovCisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHggPSAoeG1sUGFyc2VyQ3R4dFB0cilsb2NhdG9yOworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisKKyAgICBpZiAobG9jYXRvciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN0eC0+bm9kZSAhPSBOVUxMKSB7CisJcmV0ID0geG1sTm9kZUdldEJhc2UoTlVMTCxjdHgtPm5vZGUpOworICAgIH0KKyAgICBlbHNlIHsKKwkvKiBpbnNwaXJlZCBmcm9tIGVycm9yLmMgKi8KKwl4bWxQYXJzZXJJbnB1dFB0ciBpbnB1dDsKKwlpbnB1dCA9IGN0eC0+aW5wdXQ7CisJaWYgKChpbnB1dC0+ZmlsZW5hbWUgPT0gTlVMTCkgJiYgKGN0eC0+aW5wdXROciA+IDEpKQorCSAgICBpbnB1dCA9IGN0eC0+aW5wdXRUYWJbY3R4LT5pbnB1dE5yIC0gMl07CisJaWYgKGlucHV0ICE9IE5VTEwpIHsKKwkgICAgcmV0ID0geG1sU3RyZHVwKEJBRF9DQVNUIGlucHV0LT5maWxlbmFtZSk7CisJfQorCWVsc2UgeworCSAgICByZXQgPSBOVUxMOworCX0KKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZAoreG1sVGV4dFJlYWRlckdlbmVyaWNFcnJvcih2b2lkICpjdHh0LCB4bWxQYXJzZXJTZXZlcml0aWVzIHNldmVyaXR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzdHIpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHggPSAoeG1sUGFyc2VyQ3R4dFB0cikgY3R4dDsKKworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyID0gKHhtbFRleHRSZWFkZXJQdHIpIGN0eC0+X3ByaXZhdGU7CisKKyAgICBpZiAoc3RyICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHJlYWRlci0+ZXJyb3JGdW5jKQorICAgICAgICAgICAgcmVhZGVyLT5lcnJvckZ1bmMocmVhZGVyLT5lcnJvckZ1bmNBcmcsIHN0ciwgc2V2ZXJpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sVGV4dFJlYWRlckxvY2F0b3JQdHIpIGN0eCk7CisgICAgICAgIHhtbEZyZWUoc3RyKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxUZXh0UmVhZGVyU3RydWN0dXJlZEVycm9yKHZvaWQgKmN0eHQsIHhtbEVycm9yUHRyIGVycm9yKQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eHQ7CisKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciA9ICh4bWxUZXh0UmVhZGVyUHRyKSBjdHgtPl9wcml2YXRlOworCisgICAgaWYgKGVycm9yICYmIHJlYWRlci0+c0Vycm9yRnVuYykgeworICAgICAgICByZWFkZXItPnNFcnJvckZ1bmMocmVhZGVyLT5lcnJvckZ1bmNBcmcsICh4bWxFcnJvclB0cikgZXJyb3IpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbFRleHRSZWFkZXJFcnJvcih2b2lkICpjdHh0LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgeG1sVGV4dFJlYWRlckdlbmVyaWNFcnJvcihjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1BBUlNFUl9TRVZFUklUWV9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJCdWlsZE1lc3NhZ2UobXNnLCBhcCkpOworICAgIHZhX2VuZChhcCk7CisKK30KKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbFRleHRSZWFkZXJXYXJuaW5nKHZvaWQgKmN0eHQsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQoreworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgbXNnKTsKKyAgICB4bWxUZXh0UmVhZGVyR2VuZXJpY0Vycm9yKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUEFSU0VSX1NFVkVSSVRZX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxUZXh0UmVhZGVyQnVpbGRNZXNzYWdlKG1zZywgYXApKTsKKyAgICB2YV9lbmQoYXApOworfQorCitzdGF0aWMgdm9pZCBYTUxDREVDTAoreG1sVGV4dFJlYWRlclZhbGlkaXR5RXJyb3Iodm9pZCAqY3R4dCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcDsKKworICAgIGludCBsZW4gPSB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKikgbXNnKTsKKworICAgIGlmICgobGVuID4gMSkgJiYgKG1zZ1tsZW4gLSAyXSAhPSAnOicpKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIHNvbWUgY2FsbGJhY2tzIG9ubHkgcmVwb3J0IGxvY2F0b3IgaW5mb3JtYXRpb246CisgICAgICAgICAqIHNraXAgdGhlbSAobWltaWNraW5nIGJlaGF2aW91ciBpbiBlcnJvci5jKQorICAgICAgICAgKi8KKyAgICAgICAgdmFfc3RhcnQoYXAsIG1zZyk7CisgICAgICAgIHhtbFRleHRSZWFkZXJHZW5lcmljRXJyb3IoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfUEFSU0VSX1NFVkVSSVRZX1ZBTElESVRZX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJCdWlsZE1lc3NhZ2UobXNnLCBhcCkpOworICAgICAgICB2YV9lbmQoYXApOworICAgIH0KK30KKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3htbFRleHRSZWFkZXJWYWxpZGl0eVdhcm5pbmcodm9pZCAqY3R4dCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit7CisgICAgdmFfbGlzdCBhcDsKKworICAgIGludCBsZW4gPSB4bWxTdHJsZW4oKGNvbnN0IHhtbENoYXIgKikgbXNnKTsKKworICAgIGlmICgobGVuICE9IDApICYmIChtc2dbbGVuIC0gMV0gIT0gJzonKSkgeworICAgICAgICAvKgorICAgICAgICAgKiBzb21lIGNhbGxiYWNrcyBvbmx5IHJlcG9ydCBsb2NhdG9yIGluZm9ybWF0aW9uOgorICAgICAgICAgKiBza2lwIHRoZW0gKG1pbWlja2luZyBiZWhhdmlvdXIgaW4gZXJyb3IuYykKKyAgICAgICAgICovCisgICAgICAgIHZhX3N0YXJ0KGFwLCBtc2cpOworICAgICAgICB4bWxUZXh0UmVhZGVyR2VuZXJpY0Vycm9yKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1BBUlNFUl9TRVZFUklUWV9WQUxJRElUWV9XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJCdWlsZE1lc3NhZ2UobXNnLCBhcCkpOworICAgICAgICB2YV9lbmQoYXApOworICAgIH0KK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBmOgl0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCBvbiBlcnJvciBhbmQgd2FybmluZ3MKKyAqIEBhcmc6ICAgIGEgdXNlciBhcmd1bWVudCB0byBwYXNzIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbgorICoKKyAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBlcnJvciBhbmQgd2FybmluZ3MuCisgKgorICogSWYgQGYgaXMgTlVMTCwgdGhlIGRlZmF1bHQgZXJyb3IgYW5kIHdhcm5pbmcgaGFuZGxlcnMgYXJlIHJlc3RvcmVkLgorICovCit2b2lkCit4bWxUZXh0UmVhZGVyU2V0RXJyb3JIYW5kbGVyKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxUZXh0UmVhZGVyRXJyb3JGdW5jIGYsIHZvaWQgKmFyZykKK3sKKyAgICBpZiAoZiAhPSBOVUxMKSB7CisgICAgICAgIHJlYWRlci0+Y3R4dC0+c2F4LT5lcnJvciA9IHhtbFRleHRSZWFkZXJFcnJvcjsKKyAgICAgICAgcmVhZGVyLT5jdHh0LT5zYXgtPnNlcnJvciA9IE5VTEw7CisgICAgICAgIHJlYWRlci0+Y3R4dC0+dmN0eHQuZXJyb3IgPSB4bWxUZXh0UmVhZGVyVmFsaWRpdHlFcnJvcjsKKyAgICAgICAgcmVhZGVyLT5jdHh0LT5zYXgtPndhcm5pbmcgPSB4bWxUZXh0UmVhZGVyV2FybmluZzsKKyAgICAgICAgcmVhZGVyLT5jdHh0LT52Y3R4dC53YXJuaW5nID0geG1sVGV4dFJlYWRlclZhbGlkaXR5V2FybmluZzsKKyAgICAgICAgcmVhZGVyLT5lcnJvckZ1bmMgPSBmOworICAgICAgICByZWFkZXItPnNFcnJvckZ1bmMgPSBOVUxMOworICAgICAgICByZWFkZXItPmVycm9yRnVuY0FyZyA9IGFyZzsKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisgICAgICAgIGlmIChyZWFkZXItPnJuZ1ZhbGlkQ3R4dCkgeworICAgICAgICAgICAgeG1sUmVsYXhOR1NldFZhbGlkRXJyb3JzKHJlYWRlci0+cm5nVmFsaWRDdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJWYWxpZGl0eUVycm9yUmVsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sVGV4dFJlYWRlclZhbGlkaXR5V2FybmluZ1JlbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlcik7CisgICAgICAgICAgICB4bWxSZWxheE5HU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHJlYWRlci0+cm5nVmFsaWRDdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChyZWFkZXItPnhzZFZhbGlkQ3R4dCkgeworICAgICAgICAgICAgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMocmVhZGVyLT54c2RWYWxpZEN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxUZXh0UmVhZGVyVmFsaWRpdHlFcnJvclJlbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sVGV4dFJlYWRlclZhbGlkaXR5V2FybmluZ1JlbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyKTsKKyAgICAgICAgICAgIHhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyhyZWFkZXItPnhzZFZhbGlkQ3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIpOworICAgICAgICB9CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICAvKiByZXN0b3JlIGRlZmF1bHRzICovCisgICAgICAgIHJlYWRlci0+Y3R4dC0+c2F4LT5lcnJvciA9IHhtbFBhcnNlckVycm9yOworICAgICAgICByZWFkZXItPmN0eHQtPnZjdHh0LmVycm9yID0geG1sUGFyc2VyVmFsaWRpdHlFcnJvcjsKKyAgICAgICAgcmVhZGVyLT5jdHh0LT5zYXgtPndhcm5pbmcgPSB4bWxQYXJzZXJXYXJuaW5nOworICAgICAgICByZWFkZXItPmN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc7CisgICAgICAgIHJlYWRlci0+ZXJyb3JGdW5jID0gTlVMTDsKKyAgICAgICAgcmVhZGVyLT5zRXJyb3JGdW5jID0gTlVMTDsKKyAgICAgICAgcmVhZGVyLT5lcnJvckZ1bmNBcmcgPSBOVUxMOworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICAgICAgaWYgKHJlYWRlci0+cm5nVmFsaWRDdHh0KSB7CisgICAgICAgICAgICB4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMocmVhZGVyLT5ybmdWYWxpZEN0eHQsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyKTsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMocmVhZGVyLT5ybmdWYWxpZEN0eHQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlYWRlci0+eHNkVmFsaWRDdHh0KSB7CisgICAgICAgICAgICB4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyhyZWFkZXItPnhzZFZhbGlkQ3R4dCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlcik7CisgICAgICAgICAgICB4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMocmVhZGVyLT54c2RWYWxpZEN0eHQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorfQorCisvKioKKyogeG1sVGV4dFJlYWRlclNldFN0cnVjdHVyZWRFcnJvckhhbmRsZXI6CisgKiBAcmVhZGVyOiAgdGhlIHhtbFRleHRSZWFkZXJQdHIgdXNlZAorICogQGY6CXRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBjYWxsIG9uIGVycm9yIGFuZCB3YXJuaW5ncworICogQGFyZzogICAgYSB1c2VyIGFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uCisgKgorICogUmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIGVycm9yIGFuZCB3YXJuaW5ncy4KKyAqCisgKiBJZiBAZiBpcyBOVUxMLCB0aGUgZGVmYXVsdCBlcnJvciBhbmQgd2FybmluZyBoYW5kbGVycyBhcmUgcmVzdG9yZWQuCisgKi8KK3ZvaWQKK3htbFRleHRSZWFkZXJTZXRTdHJ1Y3R1cmVkRXJyb3JIYW5kbGVyKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBmLCB2b2lkICphcmcpCit7CisgICAgaWYgKGYgIT0gTlVMTCkgeworICAgICAgICByZWFkZXItPmN0eHQtPnNheC0+ZXJyb3IgPSBOVUxMOworICAgICAgICByZWFkZXItPmN0eHQtPnNheC0+c2Vycm9yID0geG1sVGV4dFJlYWRlclN0cnVjdHVyZWRFcnJvcjsKKyAgICAgICAgcmVhZGVyLT5jdHh0LT52Y3R4dC5lcnJvciA9IHhtbFRleHRSZWFkZXJWYWxpZGl0eUVycm9yOworICAgICAgICByZWFkZXItPmN0eHQtPnNheC0+d2FybmluZyA9IHhtbFRleHRSZWFkZXJXYXJuaW5nOworICAgICAgICByZWFkZXItPmN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxUZXh0UmVhZGVyVmFsaWRpdHlXYXJuaW5nOworICAgICAgICByZWFkZXItPnNFcnJvckZ1bmMgPSBmOworICAgICAgICByZWFkZXItPmVycm9yRnVuYyA9IE5VTEw7CisgICAgICAgIHJlYWRlci0+ZXJyb3JGdW5jQXJnID0gYXJnOworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICAgICAgaWYgKHJlYWRlci0+cm5nVmFsaWRDdHh0KSB7CisgICAgICAgICAgICB4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMocmVhZGVyLT5ybmdWYWxpZEN0eHQsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyKTsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMocmVhZGVyLT5ybmdWYWxpZEN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sVGV4dFJlYWRlclZhbGlkaXR5U3RydWN0dXJlZFJlbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChyZWFkZXItPnhzZFZhbGlkQ3R4dCkgeworICAgICAgICAgICAgeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMocmVhZGVyLT54c2RWYWxpZEN0eHQsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIpOworICAgICAgICAgICAgeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHJlYWRlci0+eHNkVmFsaWRDdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sVGV4dFJlYWRlclZhbGlkaXR5U3RydWN0dXJlZFJlbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlcik7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIC8qIHJlc3RvcmUgZGVmYXVsdHMgKi8KKyAgICAgICAgcmVhZGVyLT5jdHh0LT5zYXgtPmVycm9yID0geG1sUGFyc2VyRXJyb3I7CisgICAgICAgIHJlYWRlci0+Y3R4dC0+c2F4LT5zZXJyb3IgPSBOVUxMOworICAgICAgICByZWFkZXItPmN0eHQtPnZjdHh0LmVycm9yID0geG1sUGFyc2VyVmFsaWRpdHlFcnJvcjsKKyAgICAgICAgcmVhZGVyLT5jdHh0LT5zYXgtPndhcm5pbmcgPSB4bWxQYXJzZXJXYXJuaW5nOworICAgICAgICByZWFkZXItPmN0eHQtPnZjdHh0Lndhcm5pbmcgPSB4bWxQYXJzZXJWYWxpZGl0eVdhcm5pbmc7CisgICAgICAgIHJlYWRlci0+ZXJyb3JGdW5jID0gTlVMTDsKKyAgICAgICAgcmVhZGVyLT5zRXJyb3JGdW5jID0gTlVMTDsKKyAgICAgICAgcmVhZGVyLT5lcnJvckZ1bmNBcmcgPSBOVUxMOworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyAgICAgICAgaWYgKHJlYWRlci0+cm5nVmFsaWRDdHh0KSB7CisgICAgICAgICAgICB4bWxSZWxheE5HU2V0VmFsaWRFcnJvcnMocmVhZGVyLT5ybmdWYWxpZEN0eHQsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyKTsKKyAgICAgICAgICAgIHhtbFJlbGF4TkdTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMocmVhZGVyLT5ybmdWYWxpZEN0eHQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlYWRlci0+eHNkVmFsaWRDdHh0KSB7CisgICAgICAgICAgICB4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyhyZWFkZXItPnhzZFZhbGlkQ3R4dCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlcik7CisgICAgICAgICAgICB4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMocmVhZGVyLT54c2RWYWxpZEN0eHQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJJc1ZhbGlkOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqCisgKiBSZXRyaWV2ZSB0aGUgdmFsaWRpdHkgc3RhdHVzIGZyb20gdGhlIHBhcnNlciBjb250ZXh0CisgKgorICogUmV0dXJucyB0aGUgZmxhZyB2YWx1ZSAxIGlmIHZhbGlkLCAwIGlmIG5vLCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRSZWFkZXJJc1ZhbGlkKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKQoreworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisjaWZkZWYgTElCWE1MX1NDSEVNQVNfRU5BQkxFRAorICAgIGlmIChyZWFkZXItPnZhbGlkYXRlID09IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX1JORykKKyAgICAgICAgcmV0dXJuIChyZWFkZXItPnJuZ1ZhbGlkRXJyb3JzID09IDApOworICAgIGlmIChyZWFkZXItPnZhbGlkYXRlID09IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX1hTRCkKKyAgICAgICAgcmV0dXJuIChyZWFkZXItPnhzZFZhbGlkRXJyb3JzID09IDApOworI2VuZGlmCisgICAgaWYgKChyZWFkZXItPmN0eHQgIT0gTlVMTCkgJiYgKHJlYWRlci0+Y3R4dC0+dmFsaWRhdGUgPT0gMSkpCisgICAgICAgIHJldHVybiAocmVhZGVyLT5jdHh0LT52YWxpZCk7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyR2V0RXJyb3JIYW5kbGVyOgorICogQHJlYWRlcjogIHRoZSB4bWxUZXh0UmVhZGVyUHRyIHVzZWQKKyAqIEBmOgl0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb3IgTlVMTCBpcyBubyBjYWxsYmFjayBoYXMgYmVlbiByZWdpc3RlcmVkCisgKiBAYXJnOiAgICBhIHVzZXIgYXJndW1lbnQKKyAqCisgKiBSZXRyaWV2ZSB0aGUgZXJyb3IgY2FsbGJhY2sgZnVuY3Rpb24gYW5kIHVzZXIgYXJndW1lbnQuCisgKi8KK3ZvaWQKK3htbFRleHRSZWFkZXJHZXRFcnJvckhhbmRsZXIoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFRleHRSZWFkZXJFcnJvckZ1bmMgKiBmLCB2b2lkICoqYXJnKQoreworICAgIGlmIChmICE9IE5VTEwpCisgICAgICAgICpmID0gcmVhZGVyLT5lcnJvckZ1bmM7CisgICAgaWYgKGFyZyAhPSBOVUxMKQorICAgICAgICAqYXJnID0gcmVhZGVyLT5lcnJvckZ1bmNBcmc7Cit9CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCU5ldyBzZXQgKDIuNi4wKSBvZiBzaW1wbGVyIGFuZCBtb3JlIGZsZXhpYmxlIEFQSXMJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxUZXh0UmVhZGVyU2V0dXA6CisgKiBAcmVhZGVyOiAgYW4gWE1MIHJlYWRlcgorICogQGlucHV0OiB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciB1c2VkIHRvIGZlZWQgdGhlIHJlYWRlciwgd2lsbAorICogICAgICAgICBiZSBkZXN0cm95ZWQgd2l0aCBpdC4KKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICoKKyAqIFNldHVwIGFuIFhNTCByZWFkZXIgd2l0aCBuZXcgb3B0aW9ucworICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sVGV4dFJlYWRlclNldHVwKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLAorICAgICAgICAgICAgICAgICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0LCBjb25zdCBjaGFyICpVUkwsCisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkgeworICAgICAgICBpZiAoaW5wdXQgIT0gTlVMTCkKKwkgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGlucHV0KTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiB3ZSBmb3JjZSB0aGUgZ2VuZXJhdGlvbiBvZiBjb21wYWN0IHRleHQgbm9kZXMgb24gdGhlIHJlYWRlcgorICAgICAqIHNpbmNlIHVzciBhcHBsaWNhdGlvbnMgc2hvdWxkIG5ldmVyIG1vZGlmeSB0aGUgdHJlZQorICAgICAqLworICAgIG9wdGlvbnMgfD0gWE1MX1BBUlNFX0NPTVBBQ1Q7CisKKyAgICByZWFkZXItPmRvYyA9IE5VTEw7CisgICAgcmVhZGVyLT5lbnROciA9IDA7CisgICAgcmVhZGVyLT5wYXJzZXJGbGFncyA9IG9wdGlvbnM7CisgICAgcmVhZGVyLT52YWxpZGF0ZSA9IFhNTF9URVhUUkVBREVSX05PVF9WQUxJREFURTsKKyAgICBpZiAoKGlucHV0ICE9IE5VTEwpICYmIChyZWFkZXItPmlucHV0ICE9IE5VTEwpICYmCisgICAgICAgIChyZWFkZXItPmFsbG9jcyAmIFhNTF9URVhUUkVBREVSX0lOUFVUKSkgeworCXhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihyZWFkZXItPmlucHV0KTsKKwlyZWFkZXItPmlucHV0ID0gTlVMTDsKKwlyZWFkZXItPmFsbG9jcyAtPSBYTUxfVEVYVFJFQURFUl9JTlBVVDsKKyAgICB9CisgICAgaWYgKGlucHV0ICE9IE5VTEwpIHsKKwlyZWFkZXItPmlucHV0ID0gaW5wdXQ7CisJcmVhZGVyLT5hbGxvY3MgfD0gWE1MX1RFWFRSRUFERVJfSU5QVVQ7CisgICAgfQorICAgIGlmIChyZWFkZXItPmJ1ZmZlciA9PSBOVUxMKQorICAgICAgICByZWFkZXItPmJ1ZmZlciA9IHhtbEJ1ZmZlckNyZWF0ZVNpemUoMTAwKTsKKyAgICBpZiAocmVhZGVyLT5idWZmZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0UmVhZGVyU2V0dXAgOiBtYWxsb2MgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIGlmIChyZWFkZXItPnNheCA9PSBOVUxMKQorCXJlYWRlci0+c2F4ID0gKHhtbFNBWEhhbmRsZXIgKikgeG1sTWFsbG9jKHNpemVvZih4bWxTQVhIYW5kbGVyKSk7CisgICAgaWYgKHJlYWRlci0+c2F4ID09IE5VTEwpIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFJlYWRlclNldHVwIDogbWFsbG9jIGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICB4bWxTQVhWZXJzaW9uKHJlYWRlci0+c2F4LCAyKTsKKyAgICByZWFkZXItPnN0YXJ0RWxlbWVudCA9IHJlYWRlci0+c2F4LT5zdGFydEVsZW1lbnQ7CisgICAgcmVhZGVyLT5zYXgtPnN0YXJ0RWxlbWVudCA9IHhtbFRleHRSZWFkZXJTdGFydEVsZW1lbnQ7CisgICAgcmVhZGVyLT5lbmRFbGVtZW50ID0gcmVhZGVyLT5zYXgtPmVuZEVsZW1lbnQ7CisgICAgcmVhZGVyLT5zYXgtPmVuZEVsZW1lbnQgPSB4bWxUZXh0UmVhZGVyRW5kRWxlbWVudDsKKyNpZmRlZiBMSUJYTUxfU0FYMV9FTkFCTEVECisgICAgaWYgKHJlYWRlci0+c2F4LT5pbml0aWFsaXplZCA9PSBYTUxfU0FYMl9NQUdJQykgeworI2VuZGlmIC8qIExJQlhNTF9TQVgxX0VOQUJMRUQgKi8KKyAgICAgICAgcmVhZGVyLT5zdGFydEVsZW1lbnROcyA9IHJlYWRlci0+c2F4LT5zdGFydEVsZW1lbnROczsKKyAgICAgICAgcmVhZGVyLT5zYXgtPnN0YXJ0RWxlbWVudE5zID0geG1sVGV4dFJlYWRlclN0YXJ0RWxlbWVudE5zOworICAgICAgICByZWFkZXItPmVuZEVsZW1lbnROcyA9IHJlYWRlci0+c2F4LT5lbmRFbGVtZW50TnM7CisgICAgICAgIHJlYWRlci0+c2F4LT5lbmRFbGVtZW50TnMgPSB4bWxUZXh0UmVhZGVyRW5kRWxlbWVudE5zOworI2lmZGVmIExJQlhNTF9TQVgxX0VOQUJMRUQKKyAgICB9IGVsc2UgeworICAgICAgICByZWFkZXItPnN0YXJ0RWxlbWVudE5zID0gTlVMTDsKKyAgICAgICAgcmVhZGVyLT5lbmRFbGVtZW50TnMgPSBOVUxMOworICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfU0FYMV9FTkFCTEVEICovCisgICAgcmVhZGVyLT5jaGFyYWN0ZXJzID0gcmVhZGVyLT5zYXgtPmNoYXJhY3RlcnM7CisgICAgcmVhZGVyLT5zYXgtPmNoYXJhY3RlcnMgPSB4bWxUZXh0UmVhZGVyQ2hhcmFjdGVyczsKKyAgICByZWFkZXItPnNheC0+aWdub3JhYmxlV2hpdGVzcGFjZSA9IHhtbFRleHRSZWFkZXJDaGFyYWN0ZXJzOworICAgIHJlYWRlci0+Y2RhdGFCbG9jayA9IHJlYWRlci0+c2F4LT5jZGF0YUJsb2NrOworICAgIHJlYWRlci0+c2F4LT5jZGF0YUJsb2NrID0geG1sVGV4dFJlYWRlckNEYXRhQmxvY2s7CisKKyAgICByZWFkZXItPm1vZGUgPSBYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUw7CisgICAgcmVhZGVyLT5ub2RlID0gTlVMTDsKKyAgICByZWFkZXItPmN1cm5vZGUgPSBOVUxMOworICAgIGlmIChpbnB1dCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChyZWFkZXItPmlucHV0LT5idWZmZXItPnVzZSA8IDQpIHsKKyAgICAgICAgICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUmVhZChpbnB1dCwgNCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlYWRlci0+Y3R4dCA9PSBOVUxMKSB7CisgICAgICAgICAgICBpZiAocmVhZGVyLT5pbnB1dC0+YnVmZmVyLT51c2UgPj0gNCkgeworICAgICAgICAgICAgICAgIHJlYWRlci0+Y3R4dCA9IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KHJlYWRlci0+c2F4LCBOVUxMLAorCQkgICAgICAgKGNvbnN0IGNoYXIgKikgcmVhZGVyLT5pbnB1dC0+YnVmZmVyLT5jb250ZW50LCA0LCBVUkwpOworICAgICAgICAgICAgICAgIHJlYWRlci0+YmFzZSA9IDA7CisgICAgICAgICAgICAgICAgcmVhZGVyLT5jdXIgPSA0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZWFkZXItPmN0eHQgPQorICAgICAgICAgICAgICAgICAgICB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dChyZWFkZXItPnNheCwgTlVMTCwgTlVMTCwgMCwgVVJMKTsKKyAgICAgICAgICAgICAgICByZWFkZXItPmJhc2UgPSAwOworICAgICAgICAgICAgICAgIHJlYWRlci0+Y3VyID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKwkgICAgeG1sUGFyc2VySW5wdXRQdHIgaW5wdXRTdHJlYW07CisJICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGJ1ZjsKKwkgICAgeG1sQ2hhckVuY29kaW5nIGVuYyA9IFhNTF9DSEFSX0VOQ09ESU5HX05PTkU7CisKKwkgICAgeG1sQ3R4dFJlc2V0KHJlYWRlci0+Y3R4dCk7CisJICAgIGJ1ZiA9IHhtbEFsbG9jUGFyc2VySW5wdXRCdWZmZXIoZW5jKTsKKwkgICAgaWYgKGJ1ZiA9PSBOVUxMKSByZXR1cm4oLTEpOworCSAgICBpbnB1dFN0cmVhbSA9IHhtbE5ld0lucHV0U3RyZWFtKHJlYWRlci0+Y3R4dCk7CisJICAgIGlmIChpbnB1dFN0cmVhbSA9PSBOVUxMKSB7CisJCXhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihidWYpOworCQlyZXR1cm4oLTEpOworCSAgICB9CisKKwkgICAgaWYgKFVSTCA9PSBOVUxMKQorCQlpbnB1dFN0cmVhbS0+ZmlsZW5hbWUgPSBOVUxMOworCSAgICBlbHNlCisJCWlucHV0U3RyZWFtLT5maWxlbmFtZSA9IChjaGFyICopCisJCSAgICB4bWxDYW5vbmljUGF0aCgoY29uc3QgeG1sQ2hhciAqKSBVUkwpOworCSAgICBpbnB1dFN0cmVhbS0+YnVmID0gYnVmOworCSAgICBpbnB1dFN0cmVhbS0+YmFzZSA9IGlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKwkgICAgaW5wdXRTdHJlYW0tPmN1ciA9IGlucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+Y29udGVudDsKKwkgICAgaW5wdXRTdHJlYW0tPmVuZCA9CisgICAgICAgICAgICAmaW5wdXRTdHJlYW0tPmJ1Zi0+YnVmZmVyLT5jb250ZW50W2lucHV0U3RyZWFtLT5idWYtPmJ1ZmZlci0+dXNlXTsKKworCSAgICBpbnB1dFB1c2gocmVhZGVyLT5jdHh0LCBpbnB1dFN0cmVhbSk7CisJICAgIHJlYWRlci0+Y3VyID0gMDsKKwl9CisgICAgICAgIGlmIChyZWFkZXItPmN0eHQgPT0gTlVMTCkgeworICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRSZWFkZXJTZXR1cCA6IG1hbGxvYyBmYWlsZWRcbiIpOworICAgICAgICAgICAgcmV0dXJuICgtMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHJlYWRlci0+ZGljdCAhPSBOVUxMKSB7CisgICAgICAgIGlmIChyZWFkZXItPmN0eHQtPmRpY3QgIT0gTlVMTCkgeworCSAgICBpZiAocmVhZGVyLT5kaWN0ICE9IHJlYWRlci0+Y3R4dC0+ZGljdCkgeworCQl4bWxEaWN0RnJlZShyZWFkZXItPmRpY3QpOworCQlyZWFkZXItPmRpY3QgPSByZWFkZXItPmN0eHQtPmRpY3Q7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICByZWFkZXItPmN0eHQtPmRpY3QgPSByZWFkZXItPmRpY3Q7CisJfQorICAgIH0gZWxzZSB7CisJaWYgKHJlYWRlci0+Y3R4dC0+ZGljdCA9PSBOVUxMKQorCSAgICByZWFkZXItPmN0eHQtPmRpY3QgPSB4bWxEaWN0Q3JlYXRlKCk7CisgICAgICAgIHJlYWRlci0+ZGljdCA9IHJlYWRlci0+Y3R4dC0+ZGljdDsKKyAgICB9CisgICAgcmVhZGVyLT5jdHh0LT5fcHJpdmF0ZSA9IHJlYWRlcjsKKyAgICByZWFkZXItPmN0eHQtPmxpbmVudW1iZXJzID0gMTsKKyAgICByZWFkZXItPmN0eHQtPmRpY3ROYW1lcyA9IDE7CisgICAgLyoKKyAgICAgKiB1c2UgdGhlIHBhcnNlciBkaWN0aW9ubmFyeSB0byBhbGxvY2F0ZSBhbGwgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXMgbmFtZXMKKyAgICAgKi8KKyAgICByZWFkZXItPmN0eHQtPmRvY2RpY3QgPSAxOworICAgIHJlYWRlci0+Y3R4dC0+cGFyc2VNb2RlID0gWE1MX1BBUlNFX1JFQURFUjsKKworI2lmZGVmIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECisgICAgaWYgKHJlYWRlci0+eGluY2N0eHQgIT0gTlVMTCkgeworCXhtbFhJbmNsdWRlRnJlZUNvbnRleHQocmVhZGVyLT54aW5jY3R4dCk7CisJcmVhZGVyLT54aW5jY3R4dCA9IE5VTEw7CisgICAgfQorICAgIGlmIChvcHRpb25zICYgWE1MX1BBUlNFX1hJTkNMVURFKSB7CisgICAgICAgIHJlYWRlci0+eGluY2x1ZGUgPSAxOworCXJlYWRlci0+eGluY2x1ZGVfbmFtZSA9IHhtbERpY3RMb29rdXAocmVhZGVyLT5kaWN0LCBYSU5DTFVERV9OT0RFLCAtMSk7CisJb3B0aW9ucyAtPSBYTUxfUEFSU0VfWElOQ0xVREU7CisgICAgfSBlbHNlCisgICAgICAgIHJlYWRlci0+eGluY2x1ZGUgPSAwOworICAgIHJlYWRlci0+aW5feGluY2x1ZGUgPSAwOworI2VuZGlmCisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorICAgIGlmIChyZWFkZXItPnBhdHRlcm5UYWIgPT0gTlVMTCkgeworICAgICAgICByZWFkZXItPnBhdHRlcm5OciA9IDA7CisJcmVhZGVyLT5wYXR0ZXJuTWF4ID0gMDsKKyAgICB9CisgICAgd2hpbGUgKHJlYWRlci0+cGF0dGVybk5yID4gMCkgeworICAgICAgICByZWFkZXItPnBhdHRlcm5Oci0tOworCWlmIChyZWFkZXItPnBhdHRlcm5UYWJbcmVhZGVyLT5wYXR0ZXJuTnJdICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZVBhdHRlcm4ocmVhZGVyLT5wYXR0ZXJuVGFiW3JlYWRlci0+cGF0dGVybk5yXSk7CisgICAgICAgICAgICByZWFkZXItPnBhdHRlcm5UYWJbcmVhZGVyLT5wYXR0ZXJuTnJdID0gTlVMTDsKKwl9CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAob3B0aW9ucyAmIFhNTF9QQVJTRV9EVERWQUxJRCkKKyAgICAgICAgcmVhZGVyLT52YWxpZGF0ZSA9IFhNTF9URVhUUkVBREVSX1ZBTElEQVRFX0RURDsKKworICAgIHhtbEN0eHRVc2VPcHRpb25zKHJlYWRlci0+Y3R4dCwgb3B0aW9ucyk7CisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKyAgICAgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBoZGxyOworCisgICAgICAgIGhkbHIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcihlbmNvZGluZyk7CisgICAgICAgIGlmIChoZGxyICE9IE5VTEwpCisgICAgICAgICAgICB4bWxTd2l0Y2hUb0VuY29kaW5nKHJlYWRlci0+Y3R4dCwgaGRscik7CisgICAgfQorICAgIGlmICgoVVJMICE9IE5VTEwpICYmIChyZWFkZXItPmN0eHQtPmlucHV0ICE9IE5VTEwpICYmCisgICAgICAgIChyZWFkZXItPmN0eHQtPmlucHV0LT5maWxlbmFtZSA9PSBOVUxMKSkKKyAgICAgICAgcmVhZGVyLT5jdHh0LT5pbnB1dC0+ZmlsZW5hbWUgPSAoY2hhciAqKQorICAgICAgICAgICAgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIFVSTCk7CisKKyAgICByZWFkZXItPmRvYyA9IE5VTEw7CisKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFRleHRSZWFkZXJCeXRlQ29uc3VtZWQ6CisgKiBAcmVhZGVyOiBhbiBYTUwgcmVhZGVyCisgKgorICogVGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgY3VycmVudCBpbmRleCBvZiB0aGUgcGFyc2VyIHVzZWQKKyAqIGJ5IHRoZSByZWFkZXIsIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBlbnRpdHkuCisgKiBUaGlzIGZ1bmN0aW9uIGFjdHVhbGx5IGp1c3Qgd3JhcHMgYSBjYWxsIHRvIHhtbEJ5dGVzQ29uc3VtZWQoKQorICogZm9yIHRoZSBwYXJzZXIgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggdGhlIHJlYWRlci4KKyAqIFNlZSB4bWxCeXRlc0NvbnN1bWVkKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgKgorICogUmV0dXJucyB0aGUgaW5kZXggaW4gYnl0ZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBlbnRpdHkgb3IgLTEKKyAqICAgICAgICAgaW4gY2FzZSB0aGUgaW5kZXggY291bGQgbm90IGJlIGNvbXB1dGVkLgorICovCitsb25nCit4bWxUZXh0UmVhZGVyQnl0ZUNvbnN1bWVkKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyKSB7CisgICAgaWYgKChyZWFkZXIgPT0gTlVMTCkgfHwgKHJlYWRlci0+Y3R4dCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oeG1sQnl0ZUNvbnN1bWVkKHJlYWRlci0+Y3R4dCkpOworfQorCisKKy8qKgorICogeG1sUmVhZGVyV2Fsa2VyOgorICogQGRvYzogIGEgcHJlcGFyc2VkIGRvY3VtZW50CisgKgorICogQ3JlYXRlIGFuIHhtbHRleHRSZWFkZXIgZm9yIGEgcHJlcGFyc2VkIGRvY3VtZW50LgorICoKKyAqIFJldHVybnMgdGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxUZXh0UmVhZGVyUHRyCit4bWxSZWFkZXJXYWxrZXIoeG1sRG9jUHRyIGRvYykKK3sKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJldDsKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0geG1sTWFsbG9jKHNpemVvZih4bWxUZXh0UmVhZGVyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sTmV3VGV4dFJlYWRlciA6IG1hbGxvYyBmYWlsZWRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFRleHRSZWFkZXIpKTsKKyAgICByZXQtPmVudE5yID0gMDsKKyAgICByZXQtPmlucHV0ID0gTlVMTDsKKyAgICByZXQtPm1vZGUgPSBYTUxfVEVYVFJFQURFUl9NT0RFX0lOSVRJQUw7CisgICAgcmV0LT5ub2RlID0gTlVMTDsKKyAgICByZXQtPmN1cm5vZGUgPSBOVUxMOworICAgIHJldC0+YmFzZSA9IDA7CisgICAgcmV0LT5jdXIgPSAwOworICAgIHJldC0+YWxsb2NzID0gWE1MX1RFWFRSRUFERVJfQ1RYVDsKKyAgICByZXQtPmRvYyA9IGRvYzsKKyAgICByZXQtPnN0YXRlID0gWE1MX1RFWFRSRUFERVJfU1RBUlQ7CisgICAgcmV0LT5kaWN0ID0geG1sRGljdENyZWF0ZSgpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFJlYWRlckZvckRvYzoKKyAqIEBjdXI6ICBhIHBvaW50ZXIgdG8gYSB6ZXJvIHRlcm1pbmF0ZWQgc3RyaW5nCisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24KKyAqCisgKiBDcmVhdGUgYW4geG1sdGV4dFJlYWRlciBmb3IgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC4KKyAqIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sVGV4dFJlYWRlclB0cgoreG1sUmVhZGVyRm9yRG9jKGNvbnN0IHhtbENoYXIgKiBjdXIsIGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpCit7CisgICAgaW50IGxlbjsKKworICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBsZW4gPSB4bWxTdHJsZW4oY3VyKTsKKworICAgIHJldHVybiAoeG1sUmVhZGVyRm9yTWVtb3J5CisgICAgICAgICAgICAoKGNvbnN0IGNoYXIgKikgY3VyLCBsZW4sIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMpKTsKK30KKworLyoqCisgKiB4bWxSZWFkZXJGb3JGaWxlOgorICogQGZpbGVuYW1lOiAgYSBmaWxlIG9yIFVSTAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogcGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4KKyAqIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sVGV4dFJlYWRlclB0cgoreG1sUmVhZGVyRm9yRmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOworCisgICAgcmVhZGVyID0geG1sTmV3VGV4dFJlYWRlckZpbGVuYW1lKGZpbGVuYW1lKTsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgeG1sVGV4dFJlYWRlclNldHVwKHJlYWRlciwgTlVMTCwgTlVMTCwgZW5jb2RpbmcsIG9wdGlvbnMpOworICAgIHJldHVybiAocmVhZGVyKTsKK30KKworLyoqCisgKiB4bWxSZWFkZXJGb3JNZW1vcnk6CisgKiBAYnVmZmVyOiAgYSBwb2ludGVyIHRvIGEgY2hhciBhcnJheQorICogQHNpemU6ICB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICoKKyAqIENyZWF0ZSBhbiB4bWx0ZXh0UmVhZGVyIGZvciBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LgorICogVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyByZWFkZXIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxUZXh0UmVhZGVyUHRyCit4bWxSZWFkZXJGb3JNZW1vcnkoY29uc3QgY2hhciAqYnVmZmVyLCBpbnQgc2l6ZSwgY29uc3QgY2hhciAqVVJMLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBidWY7CisKKyAgICBidWYgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyhidWZmZXIsIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChidWYgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICByZWFkZXIgPSB4bWxOZXdUZXh0UmVhZGVyKGJ1ZiwgVVJMKTsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGJ1Zik7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHJlYWRlci0+YWxsb2NzIHw9IFhNTF9URVhUUkVBREVSX0lOUFVUOworICAgIHhtbFRleHRSZWFkZXJTZXR1cChyZWFkZXIsIE5VTEwsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMpOworICAgIHJldHVybiAocmVhZGVyKTsKK30KKworLyoqCisgKiB4bWxSZWFkZXJGb3JGZDoKKyAqIEBmZDogIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yCisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24KKyAqCisgKiBDcmVhdGUgYW4geG1sdGV4dFJlYWRlciBmb3IgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IuCisgKiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uCisgKiBOT1RFIHRoYXQgdGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsIG5vdCBiZSBjbG9zZWQgd2hlbiB0aGUKKyAqICAgICAgcmVhZGVyIGlzIGNsb3NlZCBvciByZXNldC4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sVGV4dFJlYWRlclB0cgoreG1sUmVhZGVyRm9yRmQoaW50IGZkLCBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxUZXh0UmVhZGVyUHRyIHJlYWRlcjsKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKworICAgIGlmIChmZCA8IDApCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQoZmQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlucHV0LT5jbG9zZWNhbGxiYWNrID0gTlVMTDsKKyAgICByZWFkZXIgPSB4bWxOZXdUZXh0UmVhZGVyKGlucHV0LCBVUkwpOworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlUGFyc2VySW5wdXRCdWZmZXIoaW5wdXQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICByZWFkZXItPmFsbG9jcyB8PSBYTUxfVEVYVFJFQURFUl9JTlBVVDsKKyAgICB4bWxUZXh0UmVhZGVyU2V0dXAocmVhZGVyLCBOVUxMLCBVUkwsIGVuY29kaW5nLCBvcHRpb25zKTsKKyAgICByZXR1cm4gKHJlYWRlcik7Cit9CisKKy8qKgorICogeG1sUmVhZGVyRm9ySU86CisgKiBAaW9yZWFkOiAgYW4gSS9PIHJlYWQgZnVuY3Rpb24KKyAqIEBpb2Nsb3NlOiAgYW4gSS9PIGNsb3NlIGZ1bmN0aW9uCisgKiBAaW9jdHg6ICBhbiBJL08gaGFuZGxlcgorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogQ3JlYXRlIGFuIHhtbHRleHRSZWFkZXIgZm9yIGFuIFhNTCBkb2N1bWVudCBmcm9tIEkvTyBmdW5jdGlvbnMgYW5kIHNvdXJjZS4KKyAqIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcmVhZGVyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sVGV4dFJlYWRlclB0cgoreG1sUmVhZGVyRm9ySU8oeG1sSW5wdXRSZWFkQ2FsbGJhY2sgaW9yZWFkLCB4bWxJbnB1dENsb3NlQ2FsbGJhY2sgaW9jbG9zZSwKKyAgICAgICAgICAgICAgIHZvaWQgKmlvY3R4LCBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpCit7CisgICAgeG1sVGV4dFJlYWRlclB0ciByZWFkZXI7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7CisKKyAgICBpZiAoaW9yZWFkID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8oaW9yZWFkLCBpb2Nsb3NlLCBpb2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgcmVhZGVyID0geG1sTmV3VGV4dFJlYWRlcihpbnB1dCwgVVJMKTsKKyAgICBpZiAocmVhZGVyID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZVBhcnNlcklucHV0QnVmZmVyKGlucHV0KTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgcmVhZGVyLT5hbGxvY3MgfD0gWE1MX1RFWFRSRUFERVJfSU5QVVQ7CisgICAgeG1sVGV4dFJlYWRlclNldHVwKHJlYWRlciwgTlVMTCwgVVJMLCBlbmNvZGluZywgb3B0aW9ucyk7CisgICAgcmV0dXJuIChyZWFkZXIpOworfQorCisvKioKKyAqIHhtbFJlYWRlck5ld1dhbGtlcjoKKyAqIEByZWFkZXI6ICBhbiBYTUwgcmVhZGVyCisgKiBAZG9jOiAgYSBwcmVwYXJzZWQgZG9jdW1lbnQKKyAqCisgKiBTZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGEgcHJlcGFyc2VkIFhNTCBkb2N1bWVudC4KKyAqIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFJlYWRlck5ld1dhbGtlcih4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgeG1sRG9jUHRyIGRvYykKK3sKKyAgICBpZiAoZG9jID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpZiAocmVhZGVyLT5pbnB1dCAhPSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXJzZXJJbnB1dEJ1ZmZlcihyZWFkZXItPmlucHV0KTsKKyAgICB9CisgICAgaWYgKHJlYWRlci0+Y3R4dCAhPSBOVUxMKSB7CisJeG1sQ3R4dFJlc2V0KHJlYWRlci0+Y3R4dCk7CisgICAgfQorCisgICAgcmVhZGVyLT5lbnROciA9IDA7CisgICAgcmVhZGVyLT5pbnB1dCA9IE5VTEw7CisgICAgcmVhZGVyLT5tb2RlID0gWE1MX1RFWFRSRUFERVJfTU9ERV9JTklUSUFMOworICAgIHJlYWRlci0+bm9kZSA9IE5VTEw7CisgICAgcmVhZGVyLT5jdXJub2RlID0gTlVMTDsKKyAgICByZWFkZXItPmJhc2UgPSAwOworICAgIHJlYWRlci0+Y3VyID0gMDsKKyAgICByZWFkZXItPmFsbG9jcyA9IFhNTF9URVhUUkVBREVSX0NUWFQ7CisgICAgcmVhZGVyLT5kb2MgPSBkb2M7CisgICAgcmVhZGVyLT5zdGF0ZSA9IFhNTF9URVhUUkVBREVSX1NUQVJUOworICAgIGlmIChyZWFkZXItPmRpY3QgPT0gTlVMTCkgeworICAgICAgICBpZiAoKHJlYWRlci0+Y3R4dCAhPSBOVUxMKSAmJiAocmVhZGVyLT5jdHh0LT5kaWN0ICE9IE5VTEwpKQorCSAgICByZWFkZXItPmRpY3QgPSByZWFkZXItPmN0eHQtPmRpY3Q7CisJZWxzZQorCSAgICByZWFkZXItPmRpY3QgPSB4bWxEaWN0Q3JlYXRlKCk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxSZWFkZXJOZXdEb2M6CisgKiBAcmVhZGVyOiAgYW4gWE1MIHJlYWRlcgorICogQGN1cjogIGEgcG9pbnRlciB0byBhIHplcm8gdGVybWluYXRlZCBzdHJpbmcKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICoKKyAqIFNldHVwIGFuIHhtbHRleHRSZWFkZXIgdG8gcGFyc2UgYW4gWE1MIGluLW1lbW9yeSBkb2N1bWVudC4KKyAqIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4KKyAqIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFJlYWRlck5ld0RvYyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgY29uc3QgeG1sQ2hhciAqIGN1ciwKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKworICAgIGludCBsZW47CisKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBsZW4gPSB4bWxTdHJsZW4oY3VyKTsKKyAgICByZXR1cm4gKHhtbFJlYWRlck5ld01lbW9yeShyZWFkZXIsIChjb25zdCBjaGFyICopY3VyLCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMLCBlbmNvZGluZywgb3B0aW9ucykpOworfQorCisvKioKKyAqIHhtbFJlYWRlck5ld0ZpbGU6CisgKiBAcmVhZGVyOiAgYW4gWE1MIHJlYWRlcgorICogQGZpbGVuYW1lOiAgYSBmaWxlIG9yIFVSTAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogcGFyc2UgYW4gWE1MIGZpbGUgZnJvbSB0aGUgZmlsZXN5c3RlbSBvciB0aGUgbmV0d29yay4KKyAqIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4KKyAqIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFJlYWRlck5ld0ZpbGUoeG1sVGV4dFJlYWRlclB0ciByZWFkZXIsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7CisKKyAgICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIGlucHV0ID0KKyAgICAgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJDcmVhdGVGaWxlbmFtZShmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfQ0hBUl9FTkNPRElOR19OT05FKTsKKyAgICBpZiAoaW5wdXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgcmV0dXJuICh4bWxUZXh0UmVhZGVyU2V0dXAocmVhZGVyLCBpbnB1dCwgZmlsZW5hbWUsIGVuY29kaW5nLCBvcHRpb25zKSk7Cit9CisKKy8qKgorICogeG1sUmVhZGVyTmV3TWVtb3J5OgorICogQHJlYWRlcjogIGFuIFhNTCByZWFkZXIKKyAqIEBidWZmZXI6ICBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5CisgKiBAc2l6ZTogIHRoZSBzaXplIG9mIHRoZSBhcnJheQorICogQFVSTDogIHRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGRvY3VtZW50IGVuY29kaW5nLCBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uCisgKgorICogU2V0dXAgYW4geG1sdGV4dFJlYWRlciB0byBwYXJzZSBhbiBYTUwgaW4tbWVtb3J5IGRvY3VtZW50LgorICogVGhlIHBhcnNpbmcgZmxhZ3MgQG9wdGlvbnMgYXJlIGEgY29tYmluYXRpb24gb2YgeG1sUGFyc2VyT3B0aW9uLgorICogVGhpcyByZXVzZXMgdGhlIGV4aXN0aW5nIEByZWFkZXIgeG1sVGV4dFJlYWRlci4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sUmVhZGVyTmV3TWVtb3J5KHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCBjb25zdCBjaGFyICpidWZmZXIsIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKlVSTCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0OworCisgICAgaWYgKHJlYWRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgaW5wdXQgPSB4bWxQYXJzZXJJbnB1dEJ1ZmZlckNyZWF0ZVN0YXRpYyhidWZmZXIsIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICByZXR1cm4gKHhtbFRleHRSZWFkZXJTZXR1cChyZWFkZXIsIGlucHV0LCBVUkwsIGVuY29kaW5nLCBvcHRpb25zKSk7Cit9CisKKy8qKgorICogeG1sUmVhZGVyTmV3RmQ6CisgKiBAcmVhZGVyOiAgYW4gWE1MIHJlYWRlcgorICogQGZkOiAgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IKKyAqIEBVUkw6ICB0aGUgYmFzZSBVUkwgdG8gdXNlIGZvciB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbgorICoKKyAqIFNldHVwIGFuIHhtbHRleHRSZWFkZXIgdG8gcGFyc2UgYW4gWE1MIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IuCisgKiBOT1RFIHRoYXQgdGhlIGZpbGUgZGVzY3JpcHRvciB3aWxsIG5vdCBiZSBjbG9zZWQgd2hlbiB0aGUKKyAqICAgICAgcmVhZGVyIGlzIGNsb3NlZCBvciByZXNldC4KKyAqIFRoZSBwYXJzaW5nIGZsYWdzIEBvcHRpb25zIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHhtbFBhcnNlck9wdGlvbi4KKyAqIFRoaXMgcmV1c2VzIHRoZSBleGlzdGluZyBAcmVhZGVyIHhtbFRleHRSZWFkZXIuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFJlYWRlck5ld0ZkKHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyLCBpbnQgZmQsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICpVUkwsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dDsKKworICAgIGlmIChmZCA8IDApCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmQoZmQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUpOworICAgIGlmIChpbnB1dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBpbnB1dC0+Y2xvc2VjYWxsYmFjayA9IE5VTEw7CisgICAgcmV0dXJuICh4bWxUZXh0UmVhZGVyU2V0dXAocmVhZGVyLCBpbnB1dCwgVVJMLCBlbmNvZGluZywgb3B0aW9ucykpOworfQorCisvKioKKyAqIHhtbFJlYWRlck5ld0lPOgorICogQHJlYWRlcjogIGFuIFhNTCByZWFkZXIKKyAqIEBpb3JlYWQ6ICBhbiBJL08gcmVhZCBmdW5jdGlvbgorICogQGlvY2xvc2U6ICBhbiBJL08gY2xvc2UgZnVuY3Rpb24KKyAqIEBpb2N0eDogIGFuIEkvTyBoYW5kbGVyCisgKiBAVVJMOiAgdGhlIGJhc2UgVVJMIHRvIHVzZSBmb3IgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKKyAqIEBvcHRpb25zOiAgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24KKyAqCisgKiBTZXR1cCBhbiB4bWx0ZXh0UmVhZGVyIHRvIHBhcnNlIGFuIFhNTCBkb2N1bWVudCBmcm9tIEkvTyBmdW5jdGlvbnMKKyAqIGFuZCBzb3VyY2UuCisgKiBUaGUgcGFyc2luZyBmbGFncyBAb3B0aW9ucyBhcmUgYSBjb21iaW5hdGlvbiBvZiB4bWxQYXJzZXJPcHRpb24uCisgKiBUaGlzIHJldXNlcyB0aGUgZXhpc3RpbmcgQHJlYWRlciB4bWxUZXh0UmVhZGVyLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxSZWFkZXJOZXdJTyh4bWxUZXh0UmVhZGVyUHRyIHJlYWRlciwgeG1sSW5wdXRSZWFkQ2FsbGJhY2sgaW9yZWFkLAorICAgICAgICAgICAgICAgeG1sSW5wdXRDbG9zZUNhbGxiYWNrIGlvY2xvc2UsIHZvaWQgKmlvY3R4LAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqVVJMLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7CisKKyAgICBpZiAoaW9yZWFkID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIGlmIChyZWFkZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlSU8oaW9yZWFkLCBpb2Nsb3NlLCBpb2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIHJldHVybiAoeG1sVGV4dFJlYWRlclNldHVwKHJlYWRlciwgaW5wdXQsIFVSTCwgZW5jb2RpbmcsIG9wdGlvbnMpKTsKK30KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlVdGlsaXRpZXMJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZmRlZiBOT1RfVVNFRF9ZRVQKKworLyoqCisgKiB4bWxCYXNlNjREZWNvZGU6CisgKiBAaW46ICB0aGUgaW5wdXQgYnVmZmVyCisgKiBAaW5sZW46ICB0aGUgc2l6ZSBvZiB0aGUgaW5wdXQgKGluKSwgdGhlIHNpemUgcmVhZCBmcm9tIGl0IChvdXQpCisgKiBAdG86ICB0aGUgb3V0cHV0IGJ1ZmZlcgorICogQHRvbGVuOiAgdGhlIHNpemUgb2YgdGhlIG91dHB1dCAoaW4pLCB0aGUgc2l6ZSB3cml0dGVuIHRvIChvdXQpCisgKgorICogQmFzZTY0IGRlY29kZXIsIHJlYWRzIGZyb20gQGluIGFuZCBzYXZlIGluIEB0bworICogVE9ETzogdGVsbCBqb2R5IHdoZW4gdGhpcyBpcyBhY3R1YWxseSBleHBvcnRlZAorICoKKyAqIFJldHVybnMgMCBpZiBhbGwgdGhlIGlucHV0IHdhcyBjb25zdW1lciwgMSBpZiB0aGUgQmFzZTY0IGVuZCB3YXMgcmVhY2hlZCwKKyAqICAgICAgICAgMiBpZiB0aGVyZSB3YXNuJ3QgZW5vdWdoIHNwYWNlIG9uIHRoZSBvdXRwdXQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sQmFzZTY0RGVjb2RlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCB1bnNpZ25lZCBsb25nICppbmxlbiwKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0bywgdW5zaWduZWQgbG9uZyAqdG9sZW4pCit7CisgICAgdW5zaWduZWQgbG9uZyBpbmN1cjsgICAgICAgIC8qIGN1cnJlbnQgaW5kZXggaW4gaW5bXSAqLworCisgICAgdW5zaWduZWQgbG9uZyBpbmJsazsgICAgICAgIC8qIGxhc3QgYmxvY2sgaW5kZXggaW4gaW5bXSAqLworCisgICAgdW5zaWduZWQgbG9uZyBvdXRjdXI7ICAgICAgIC8qIGN1cnJlbnQgaW5kZXggaW4gb3V0W10gKi8KKworICAgIHVuc2lnbmVkIGxvbmcgaW5tYXg7ICAgICAgICAvKiBzaXplIG9mIGluW10gKi8KKworICAgIHVuc2lnbmVkIGxvbmcgb3V0bWF4OyAgICAgICAvKiBzaXplIG9mIG91dFtdICovCisKKyAgICB1bnNpZ25lZCBjaGFyIGN1cjsgICAgICAgICAgLyogdGhlIGN1cnJlbnQgdmFsdWUgcmVhZCBmcm9tIGluW10gKi8KKworICAgIHVuc2lnbmVkIGNoYXIgaW50bXBbNF0sIG91dHRtcFs0XTsgIC8qIHRlbXBvcmFyeSBidWZmZXJzIGZvciB0aGUgY29udmVydCAqLworCisgICAgaW50IG5iaW50bXA7ICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBieXRlIGluIGludG1wW10gKi8KKworICAgIGludCBpc19pZ25vcmU7ICAgICAgICAgICAgICAvKiBjdXIgc2hvdWxkIGJlIGlnbm9yZWQgKi8KKworICAgIGludCBpc19lbmQgPSAwOyAgICAgICAgICAgICAvKiB0aGUgZW5kIG9mIHRoZSBiYXNlNjQgd2FzIGZvdW5kICovCisKKyAgICBpbnQgcmV0dmFsID0gMTsKKworICAgIGludCBpOworCisgICAgaWYgKChpbiA9PSBOVUxMKSB8fCAoaW5sZW4gPT0gTlVMTCkgfHwgKHRvID09IE5VTEwpIHx8ICh0b2xlbiA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpbmN1ciA9IDA7CisgICAgaW5ibGsgPSAwOworICAgIG91dGN1ciA9IDA7CisgICAgaW5tYXggPSAqaW5sZW47CisgICAgb3V0bWF4ID0gKnRvbGVuOworICAgIG5iaW50bXAgPSAwOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKGluY3VyID49IGlubWF4KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGN1ciA9IGluW2luY3VyKytdOworICAgICAgICBpc19pZ25vcmUgPSAwOworICAgICAgICBpZiAoKGN1ciA+PSAnQScpICYmIChjdXIgPD0gJ1onKSkKKyAgICAgICAgICAgIGN1ciA9IGN1ciAtICdBJzsKKyAgICAgICAgZWxzZSBpZiAoKGN1ciA+PSAnYScpICYmIChjdXIgPD0gJ3onKSkKKyAgICAgICAgICAgIGN1ciA9IGN1ciAtICdhJyArIDI2OworICAgICAgICBlbHNlIGlmICgoY3VyID49ICcwJykgJiYgKGN1ciA8PSAnOScpKQorICAgICAgICAgICAgY3VyID0gY3VyIC0gJzAnICsgNTI7CisgICAgICAgIGVsc2UgaWYgKGN1ciA9PSAnKycpCisgICAgICAgICAgICBjdXIgPSA2MjsKKyAgICAgICAgZWxzZSBpZiAoY3VyID09ICcvJykKKyAgICAgICAgICAgIGN1ciA9IDYzOworICAgICAgICBlbHNlIGlmIChjdXIgPT0gJy4nKQorICAgICAgICAgICAgY3VyID0gMDsKKyAgICAgICAgZWxzZSBpZiAoY3VyID09ICc9JykgICAgLypubyBvcCAsIGVuZCBvZiB0aGUgYmFzZTY0IHN0cmVhbSAqLworICAgICAgICAgICAgaXNfZW5kID0gMTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpc19pZ25vcmUgPSAxOworICAgICAgICAgICAgaWYgKG5iaW50bXAgPT0gMCkKKyAgICAgICAgICAgICAgICBpbmJsayA9IGluY3VyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFpc19pZ25vcmUpIHsKKyAgICAgICAgICAgIGludCBuYm91dHRtcCA9IDM7CisKKyAgICAgICAgICAgIGludCBpc19icmVhayA9IDA7CisKKyAgICAgICAgICAgIGlmIChpc19lbmQpIHsKKyAgICAgICAgICAgICAgICBpZiAobmJpbnRtcCA9PSAwKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpZiAoKG5iaW50bXAgPT0gMSkgfHwgKG5iaW50bXAgPT0gMikpCisgICAgICAgICAgICAgICAgICAgIG5ib3V0dG1wID0gMTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5ib3V0dG1wID0gMjsKKyAgICAgICAgICAgICAgICBuYmludG1wID0gMzsKKyAgICAgICAgICAgICAgICBpc19icmVhayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnRtcFtuYmludG1wKytdID0gY3VyOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGlmIGludG1wIGlzIGZ1bGwsIHB1c2ggdGhlIDRieXRlIHNlcXVlbmNlIGFzIGEgMyBieXRlCisgICAgICAgICAgICAgKiBzZXF1ZW5jZSBvdXQKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKG5iaW50bXAgPT0gNCkgeworICAgICAgICAgICAgICAgIG5iaW50bXAgPSAwOworICAgICAgICAgICAgICAgIG91dHRtcFswXSA9IChpbnRtcFswXSA8PCAyKSB8ICgoaW50bXBbMV0gJiAweDMwKSA+PiA0KTsKKyAgICAgICAgICAgICAgICBvdXR0bXBbMV0gPQorICAgICAgICAgICAgICAgICAgICAoKGludG1wWzFdICYgMHgwRikgPDwgNCkgfCAoKGludG1wWzJdICYgMHgzQykgPj4gMik7CisgICAgICAgICAgICAgICAgb3V0dG1wWzJdID0gKChpbnRtcFsyXSAmIDB4MDMpIDw8IDYpIHwgKGludG1wWzNdICYgMHgzRik7CisgICAgICAgICAgICAgICAgaWYgKG91dGN1ciArIDMgPj0gb3V0bWF4KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYm91dHRtcDsgaSsrKQorICAgICAgICAgICAgICAgICAgICB0b1tvdXRjdXIrK10gPSBvdXR0bXBbaV07CisgICAgICAgICAgICAgICAgaW5ibGsgPSBpbmN1cjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzX2JyZWFrKSB7CisgICAgICAgICAgICAgICAgcmV0dmFsID0gMDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgICp0b2xlbiA9IG91dGN1cjsKKyAgICAqaW5sZW4gPSBpbmJsazsKKyAgICByZXR1cm4gKHJldHZhbCk7Cit9CisKKy8qCisgKiBUZXN0IHJvdXRpbmUgZm9yIHRoZSB4bWxCYXNlNjREZWNvZGUgZnVuY3Rpb24KKyAqLworI2lmIDAKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICAgY2hhciAqaW5wdXQgPSAiICBWVzQgZ2NHVjAgICAgICAgIFxuICAgICAgYVhRZ2RHVnpkQ0F1Q2c9PSAiOworCisgICAgY2hhciBvdXRwdXRbMTAwXTsKKworICAgIGNoYXIgb3V0cHV0MlsxMDBdOworCisgICAgY2hhciBvdXRwdXQzWzEwMF07CisKKyAgICB1bnNpZ25lZCBsb25nIGlubGVuID0gc3RybGVuKGlucHV0KTsKKworICAgIHVuc2lnbmVkIGxvbmcgb3V0bGVuID0gMTAwOworCisgICAgaW50IHJldDsKKworICAgIHVuc2lnbmVkIGxvbmcgY29ucywgdG1wLCB0bXAyLCBwcm9kOworCisgICAgLyoKKyAgICAgKiBEaXJlY3QKKyAgICAgKi8KKyAgICByZXQgPSB4bWxCYXNlNjREZWNvZGUoaW5wdXQsICZpbmxlbiwgb3V0cHV0LCAmb3V0bGVuKTsKKworICAgIG91dHB1dFtvdXRsZW5dID0gMDsKKyAgICBwcmludGYoInJldDogJWQsIGlubGVuOiAlbGQgLCBvdXRsZW46ICVsZCwgb3V0cHV0OiAnJXMnXG4iLCByZXQsIGlubGVuLAorICAgICAgICAgICBvdXRsZW4sIG91dHB1dClpbmRlbnQ6IFN0YW5kYXJkIGlucHV0OjE3OTogRXJyb3I6VW5tYXRjaGVkICNlbmRpZgorOworCisgICAgLyoKKyAgICAgKiBvdXRwdXQgY2h1bmtpbmcKKyAgICAgKi8KKyAgICBjb25zID0gMDsKKyAgICBwcm9kID0gMDsKKyAgICB3aGlsZSAoY29ucyA8IGlubGVuKSB7CisgICAgICAgIHRtcCA9IDU7CisgICAgICAgIHRtcDIgPSBpbmxlbiAtIGNvbnM7CisKKyAgICAgICAgcHJpbnRmKCIlbGQgJWxkXG4iLCBjb25zLCBwcm9kKTsKKyAgICAgICAgcmV0ID0geG1sQmFzZTY0RGVjb2RlKCZpbnB1dFtjb25zXSwgJnRtcDIsICZvdXRwdXQyW3Byb2RdLCAmdG1wKTsKKyAgICAgICAgY29ucyArPSB0bXAyOworICAgICAgICBwcm9kICs9IHRtcDsKKyAgICAgICAgcHJpbnRmKCIlbGQgJWxkXG4iLCBjb25zLCBwcm9kKTsKKyAgICB9CisgICAgb3V0cHV0MltvdXRsZW5dID0gMDsKKyAgICBwcmludGYoInJldDogJWQsIGNvbnM6ICVsZCAsIHByb2Q6ICVsZCwgb3V0cHV0OiAnJXMnXG4iLCByZXQsIGNvbnMsCisgICAgICAgICAgIHByb2QsIG91dHB1dDIpOworCisgICAgLyoKKyAgICAgKiBpbnB1dCBjaHVua2luZworICAgICAqLworICAgIGNvbnMgPSAwOworICAgIHByb2QgPSAwOworICAgIHdoaWxlIChjb25zIDwgaW5sZW4pIHsKKyAgICAgICAgdG1wID0gMTAwIC0gcHJvZDsKKyAgICAgICAgdG1wMiA9IGlubGVuIC0gY29uczsKKyAgICAgICAgaWYgKHRtcDIgPiA1KQorICAgICAgICAgICAgdG1wMiA9IDU7CisKKyAgICAgICAgcHJpbnRmKCIlbGQgJWxkXG4iLCBjb25zLCBwcm9kKTsKKyAgICAgICAgcmV0ID0geG1sQmFzZTY0RGVjb2RlKCZpbnB1dFtjb25zXSwgJnRtcDIsICZvdXRwdXQzW3Byb2RdLCAmdG1wKTsKKyAgICAgICAgY29ucyArPSB0bXAyOworICAgICAgICBwcm9kICs9IHRtcDsKKyAgICAgICAgcHJpbnRmKCIlbGQgJWxkXG4iLCBjb25zLCBwcm9kKTsKKyAgICB9CisgICAgb3V0cHV0M1tvdXRsZW5dID0gMDsKKyAgICBwcmludGYoInJldDogJWQsIGNvbnM6ICVsZCAsIHByb2Q6ICVsZCwgb3V0cHV0OiAnJXMnXG4iLCByZXQsIGNvbnMsCisgICAgICAgICAgIHByb2QsIG91dHB1dDMpOworICAgIHJldHVybiAoMCk7CisKK30KKyNlbmRpZgorI2VuZGlmIC8qIE5PVF9VU0VEX1lFVCAqLworI2RlZmluZSBib3R0b21feG1scmVhZGVyCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgorI2VuZGlmIC8qIExJQlhNTF9SRUFERVJfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy94bWxyZWdleHAuYyBiL2xpYnhtbDItMi43LjcveG1scmVnZXhwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFmZjMzZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveG1scmVnZXhwLmMKQEAgLTAsMCArMSw4MTUzIEBACisvKgorICogcmVnZXhwLmM6IGdlbmVyaWMgYW5kIGV4dGVuc2libGUgUmVndWxhciBFeHByZXNzaW9uIGVuZ2luZQorICoKKyAqIEJhc2ljYWxseSBkZXNpZ25lZCB3aXRoIHRoZSBwdXJwb3NlIG9mIGNvbXBpbGluZyByZWdleHBzIGZvciAKKyAqIHRoZSB2YXJpZXR5IG9mIHZhbGlkYXRpb24vc2hlbWFzIG1lY2hhbmlzbXMgbm93IGF2YWlsYWJsZSBpbgorICogWE1MIHJlbGF0ZWQgc3BlY2lmaWNhdGlvbnMgdGhlc2UgaW5jbHVkZToKKyAqICAgIC0gWE1MLTEuMCBEVEQgdmFsaWRhdGlvbgorICogICAgLSBYTUwgU2NoZW1hcyBzdHJ1Y3R1cmUgcGFydCAxCisgKiAgICAtIFhNTCBTY2hlbWFzIERhdGF0eXBlcyBwYXJ0IDIgZXNwZWNpYWxseSBBcHBlbmRpeCBGCisgKiAgICAtIFJFTEFYLU5HL1RSRVggaS5lLiB0aGUgY291bnRlciBwcm9wb3NhbAorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+CisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIExJQlhNTF9SRUdFWFBfRU5BQkxFRAorCisvKiAjZGVmaW5lIERFQlVHX0VSUiAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpZmRlZiBIQVZFX0xJTUlUU19ICisjaW5jbHVkZSA8bGltaXRzLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxyZWdleHAuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sYXV0b21hdGEuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdW5pY29kZS5oPgorCisjaWZuZGVmIElOVF9NQVgKKyNkZWZpbmUgSU5UX01BWCAxMjM0NTY3ODkgLyogZWFzeSB0byBmbGFnIGFuZCBiaWcgZW5vdWdoIGZvciBvdXIgbmVlZHMgKi8KKyNlbmRpZgorCisvKiAjZGVmaW5lIERFQlVHX1JFR0VYUF9HUkFQSCAqLworLyogI2RlZmluZSBERUJVR19SRUdFWFBfRVhFQyAqLworLyogI2RlZmluZSBERUJVR19QVVNIICovCisvKiAjZGVmaW5lIERFQlVHX0NPTVBBQ1RJT04gKi8KKworI2RlZmluZSBNQVhfUFVTSCAxMDAwMDAwMAorCisjZGVmaW5lIEVSUk9SKHN0cikJCQkJCQkJXAorICAgIGN0eHQtPmVycm9yID0gWE1MX1JFR0VYUF9DT01QSUxFX0VSUk9SOwkJCQlcCisgICAgeG1sUmVnZXhwRXJyQ29tcGlsZShjdHh0LCBzdHIpOworI2RlZmluZSBORVhUIGN0eHQtPmN1cisrCisjZGVmaW5lIENVUiAoKihjdHh0LT5jdXIpKQorI2RlZmluZSBOWFQoaW5kZXgpIChjdHh0LT5jdXJbaW5kZXhdKQorCisjZGVmaW5lIENVUl9TQ0hBUihzLCBsKSB4bWxTdHJpbmdDdXJyZW50Q2hhcihOVUxMLCBzLCAmbCkKKyNkZWZpbmUgTkVYVEwobCkgY3R4dC0+Y3VyICs9IGw7CisjZGVmaW5lIFhNTF9SRUdfU1RSSU5HX1NFUEFSQVRPUiAnfCcKKy8qCisgKiBOZWVkIFBSRVYgdG8gY2hlY2sgb24gYSAnLScgd2l0aGluIGEgQ2hhcmFjdGVyIEdyb3VwLiBNYXkgb25seSBiZSB1c2VkCisgKiB3aGVuIGl0J3MgZ3VhcmFudGVlZCB0aGF0IGN1ciBpcyBub3QgYXQgdGhlIGJlZ2lubmluZyBvZiBjdHh0LT5zdHJpbmchCisgKi8KKyNkZWZpbmUgUFJFViAoY3R4dC0+Y3VyWy0xXSkKKworLyoqCisgKiBUT0RPOgorICoKKyAqIG1hY3JvIHRvIGZsYWcgdW5pbXBsZW1lbnRlZCBibG9ja3MKKyAqLworI2RlZmluZSBUT0RPIAkJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJVbmltcGxlbWVudGVkIGJsb2NrIGF0ICVzOiVkXG4iLAkJCQlcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlEYXRhdHlwZXMgYW5kIHN0cnVjdHVyZXMJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogTm90ZTogdGhlIG9yZGVyIG9mIHRoZSBlbnVtcyBiZWxvdyBpcyBzaWduaWZpY2FudCwgZG8gbm90IHNodWZmbGUKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfUkVHRVhQX0VQU0lMT04gPSAxLAorICAgIFhNTF9SRUdFWFBfQ0hBUlZBTCwKKyAgICBYTUxfUkVHRVhQX1JBTkdFUywKKyAgICBYTUxfUkVHRVhQX1NVQlJFRywgIC8qIHVzZWQgZm9yICgpIHN1YiByZWdleHBzICovCisgICAgWE1MX1JFR0VYUF9TVFJJTkcsCisgICAgWE1MX1JFR0VYUF9BTllDSEFSLCAvKiAuICovCisgICAgWE1MX1JFR0VYUF9BTllTUEFDRSwgLyogXHMgKi8KKyAgICBYTUxfUkVHRVhQX05PVFNQQUNFLCAvKiBcUyAqLworICAgIFhNTF9SRUdFWFBfSU5JVE5BTUUsIC8qIFxsICovCisgICAgWE1MX1JFR0VYUF9OT1RJTklUTkFNRSwgLyogXEwgKi8KKyAgICBYTUxfUkVHRVhQX05BTUVDSEFSLCAvKiBcYyAqLworICAgIFhNTF9SRUdFWFBfTk9UTkFNRUNIQVIsIC8qIFxDICovCisgICAgWE1MX1JFR0VYUF9ERUNJTUFMLCAvKiBcZCAqLworICAgIFhNTF9SRUdFWFBfTk9UREVDSU1BTCwgLyogXEQgKi8KKyAgICBYTUxfUkVHRVhQX1JFQUxDSEFSLCAvKiBcdyAqLworICAgIFhNTF9SRUdFWFBfTk9UUkVBTENIQVIsIC8qIFxXICovCisgICAgWE1MX1JFR0VYUF9MRVRURVIgPSAxMDAsCisgICAgWE1MX1JFR0VYUF9MRVRURVJfVVBQRVJDQVNFLAorICAgIFhNTF9SRUdFWFBfTEVUVEVSX0xPV0VSQ0FTRSwKKyAgICBYTUxfUkVHRVhQX0xFVFRFUl9USVRMRUNBU0UsCisgICAgWE1MX1JFR0VYUF9MRVRURVJfTU9ESUZJRVIsCisgICAgWE1MX1JFR0VYUF9MRVRURVJfT1RIRVJTLAorICAgIFhNTF9SRUdFWFBfTUFSSywKKyAgICBYTUxfUkVHRVhQX01BUktfTk9OU1BBQ0lORywKKyAgICBYTUxfUkVHRVhQX01BUktfU1BBQ0VDT01CSU5JTkcsCisgICAgWE1MX1JFR0VYUF9NQVJLX0VOQ0xPU0lORywKKyAgICBYTUxfUkVHRVhQX05VTUJFUiwKKyAgICBYTUxfUkVHRVhQX05VTUJFUl9ERUNJTUFMLAorICAgIFhNTF9SRUdFWFBfTlVNQkVSX0xFVFRFUiwKKyAgICBYTUxfUkVHRVhQX05VTUJFUl9PVEhFUlMsCisgICAgWE1MX1JFR0VYUF9QVU5DVCwKKyAgICBYTUxfUkVHRVhQX1BVTkNUX0NPTk5FQ1RPUiwKKyAgICBYTUxfUkVHRVhQX1BVTkNUX0RBU0gsCisgICAgWE1MX1JFR0VYUF9QVU5DVF9PUEVOLAorICAgIFhNTF9SRUdFWFBfUFVOQ1RfQ0xPU0UsCisgICAgWE1MX1JFR0VYUF9QVU5DVF9JTklUUVVPVEUsCisgICAgWE1MX1JFR0VYUF9QVU5DVF9GSU5RVU9URSwKKyAgICBYTUxfUkVHRVhQX1BVTkNUX09USEVSUywKKyAgICBYTUxfUkVHRVhQX1NFUEFSLAorICAgIFhNTF9SRUdFWFBfU0VQQVJfU1BBQ0UsCisgICAgWE1MX1JFR0VYUF9TRVBBUl9MSU5FLAorICAgIFhNTF9SRUdFWFBfU0VQQVJfUEFSQSwKKyAgICBYTUxfUkVHRVhQX1NZTUJPTCwKKyAgICBYTUxfUkVHRVhQX1NZTUJPTF9NQVRILAorICAgIFhNTF9SRUdFWFBfU1lNQk9MX0NVUlJFTkNZLAorICAgIFhNTF9SRUdFWFBfU1lNQk9MX01PRElGSUVSLAorICAgIFhNTF9SRUdFWFBfU1lNQk9MX09USEVSUywKKyAgICBYTUxfUkVHRVhQX09USEVSLAorICAgIFhNTF9SRUdFWFBfT1RIRVJfQ09OVFJPTCwKKyAgICBYTUxfUkVHRVhQX09USEVSX0ZPUk1BVCwKKyAgICBYTUxfUkVHRVhQX09USEVSX1BSSVZBVEUsCisgICAgWE1MX1JFR0VYUF9PVEhFUl9OQSwKKyAgICBYTUxfUkVHRVhQX0JMT0NLX05BTUUKK30geG1sUmVnQXRvbVR5cGU7CisKK3R5cGVkZWYgZW51bSB7CisgICAgWE1MX1JFR0VYUF9RVUFOVF9FUFNJTE9OID0gMSwKKyAgICBYTUxfUkVHRVhQX1FVQU5UX09OQ0UsCisgICAgWE1MX1JFR0VYUF9RVUFOVF9PUFQsCisgICAgWE1MX1JFR0VYUF9RVUFOVF9NVUxULAorICAgIFhNTF9SRUdFWFBfUVVBTlRfUExVUywKKyAgICBYTUxfUkVHRVhQX1FVQU5UX09OQ0VPTkxZLAorICAgIFhNTF9SRUdFWFBfUVVBTlRfQUxMLAorICAgIFhNTF9SRUdFWFBfUVVBTlRfUkFOR0UKK30geG1sUmVnUXVhbnRUeXBlOworCit0eXBlZGVmIGVudW0geworICAgIFhNTF9SRUdFWFBfU1RBUlRfU1RBVEUgPSAxLAorICAgIFhNTF9SRUdFWFBfRklOQUxfU1RBVEUsCisgICAgWE1MX1JFR0VYUF9UUkFOU19TVEFURSwKKyAgICBYTUxfUkVHRVhQX1NJTktfU1RBVEUsCisgICAgWE1MX1JFR0VYUF9VTlJFQUNIX1NUQVRFCit9IHhtbFJlZ1N0YXRlVHlwZTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfUkVHRVhQX01BUktfTk9STUFMID0gMCwKKyAgICBYTUxfUkVHRVhQX01BUktfU1RBUlQsCisgICAgWE1MX1JFR0VYUF9NQVJLX1ZJU0lURUQKK30geG1sUmVnTWFya2VkVHlwZTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlZ1JhbmdlIHhtbFJlZ1JhbmdlOwordHlwZWRlZiB4bWxSZWdSYW5nZSAqeG1sUmVnUmFuZ2VQdHI7CisKK3N0cnVjdCBfeG1sUmVnUmFuZ2UgeworICAgIGludCBuZWc7CQkvKiAwIG5vcm1hbCwgMSBub3QsIDIgZXhjbHVkZSAqLworICAgIHhtbFJlZ0F0b21UeXBlIHR5cGU7CisgICAgaW50IHN0YXJ0OworICAgIGludCBlbmQ7CisgICAgeG1sQ2hhciAqYmxvY2tOYW1lOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlZ0F0b20geG1sUmVnQXRvbTsKK3R5cGVkZWYgeG1sUmVnQXRvbSAqeG1sUmVnQXRvbVB0cjsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbEF1dG9tYXRhU3RhdGUgeG1sUmVnU3RhdGU7Cit0eXBlZGVmIHhtbFJlZ1N0YXRlICp4bWxSZWdTdGF0ZVB0cjsKKworc3RydWN0IF94bWxSZWdBdG9tIHsKKyAgICBpbnQgbm87CisgICAgeG1sUmVnQXRvbVR5cGUgdHlwZTsKKyAgICB4bWxSZWdRdWFudFR5cGUgcXVhbnQ7CisgICAgaW50IG1pbjsKKyAgICBpbnQgbWF4OworCisgICAgdm9pZCAqdmFsdWVwOworICAgIHZvaWQgKnZhbHVlcDI7CisgICAgaW50IG5lZzsKKyAgICBpbnQgY29kZXBvaW50OworICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXJ0OworICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXJ0MDsKKyAgICB4bWxSZWdTdGF0ZVB0ciBzdG9wOworICAgIGludCBtYXhSYW5nZXM7CisgICAgaW50IG5iUmFuZ2VzOworICAgIHhtbFJlZ1JhbmdlUHRyICpyYW5nZXM7CisgICAgdm9pZCAqZGF0YTsKK307CisKK3R5cGVkZWYgc3RydWN0IF94bWxSZWdDb3VudGVyIHhtbFJlZ0NvdW50ZXI7Cit0eXBlZGVmIHhtbFJlZ0NvdW50ZXIgKnhtbFJlZ0NvdW50ZXJQdHI7CisKK3N0cnVjdCBfeG1sUmVnQ291bnRlciB7CisgICAgaW50IG1pbjsKKyAgICBpbnQgbWF4OworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlZ1RyYW5zIHhtbFJlZ1RyYW5zOwordHlwZWRlZiB4bWxSZWdUcmFucyAqeG1sUmVnVHJhbnNQdHI7CisKK3N0cnVjdCBfeG1sUmVnVHJhbnMgeworICAgIHhtbFJlZ0F0b21QdHIgYXRvbTsKKyAgICBpbnQgdG87CisgICAgaW50IGNvdW50ZXI7CisgICAgaW50IGNvdW50OworICAgIGludCBuZDsKK307CisKK3N0cnVjdCBfeG1sQXV0b21hdGFTdGF0ZSB7CisgICAgeG1sUmVnU3RhdGVUeXBlIHR5cGU7CisgICAgeG1sUmVnTWFya2VkVHlwZSBtYXJrOworICAgIHhtbFJlZ01hcmtlZFR5cGUgcmVhY2hlZDsKKyAgICBpbnQgbm87CisgICAgaW50IG1heFRyYW5zOworICAgIGludCBuYlRyYW5zOworICAgIHhtbFJlZ1RyYW5zICp0cmFuczsKKyAgICAvKiAga25vd2luZyBzdGF0ZXMgcG9udGluZyB0byB1cyBjYW4gc3BlZWQgdGhpbmdzIHVwICovCisgICAgaW50IG1heFRyYW5zVG87CisgICAgaW50IG5iVHJhbnNUbzsKKyAgICBpbnQgKnRyYW5zVG87Cit9OworCit0eXBlZGVmIHN0cnVjdCBfeG1sQXV0b21hdGEgeG1sUmVnUGFyc2VyQ3R4dDsKK3R5cGVkZWYgeG1sUmVnUGFyc2VyQ3R4dCAqeG1sUmVnUGFyc2VyQ3R4dFB0cjsKKworI2RlZmluZSBBTV9BVVRPTUFUQV9STkcgMQorCitzdHJ1Y3QgX3htbEF1dG9tYXRhIHsKKyAgICB4bWxDaGFyICpzdHJpbmc7CisgICAgeG1sQ2hhciAqY3VyOworCisgICAgaW50IGVycm9yOworICAgIGludCBuZWc7CisKKyAgICB4bWxSZWdTdGF0ZVB0ciBzdGFydDsKKyAgICB4bWxSZWdTdGF0ZVB0ciBlbmQ7CisgICAgeG1sUmVnU3RhdGVQdHIgc3RhdGU7CisKKyAgICB4bWxSZWdBdG9tUHRyIGF0b207CisKKyAgICBpbnQgbWF4QXRvbXM7CisgICAgaW50IG5iQXRvbXM7CisgICAgeG1sUmVnQXRvbVB0ciAqYXRvbXM7CisKKyAgICBpbnQgbWF4U3RhdGVzOworICAgIGludCBuYlN0YXRlczsKKyAgICB4bWxSZWdTdGF0ZVB0ciAqc3RhdGVzOworCisgICAgaW50IG1heENvdW50ZXJzOworICAgIGludCBuYkNvdW50ZXJzOworICAgIHhtbFJlZ0NvdW50ZXIgKmNvdW50ZXJzOworCisgICAgaW50IGRldGVybWluaXN0OworICAgIGludCBuZWdzOworICAgIGludCBmbGFnczsKK307CisKK3N0cnVjdCBfeG1sUmVnZXhwIHsKKyAgICB4bWxDaGFyICpzdHJpbmc7CisgICAgaW50IG5iU3RhdGVzOworICAgIHhtbFJlZ1N0YXRlUHRyICpzdGF0ZXM7CisgICAgaW50IG5iQXRvbXM7CisgICAgeG1sUmVnQXRvbVB0ciAqYXRvbXM7CisgICAgaW50IG5iQ291bnRlcnM7CisgICAgeG1sUmVnQ291bnRlciAqY291bnRlcnM7CisgICAgaW50IGRldGVybWluaXN0OworICAgIGludCBmbGFnczsKKyAgICAvKgorICAgICAqIFRoYXQncyB0aGUgY29tcGFjdCBmb3JtIGZvciBkZXRlcm1pbmlzdHMgYXV0b21hdGFzCisgICAgICovCisgICAgaW50IG5ic3RhdGVzOworICAgIGludCAqY29tcGFjdDsKKyAgICB2b2lkICoqdHJhbnNkYXRhOworICAgIGludCBuYnN0cmluZ3M7CisgICAgeG1sQ2hhciAqKnN0cmluZ01hcDsKK307CisKK3R5cGVkZWYgc3RydWN0IF94bWxSZWdFeGVjUm9sbGJhY2sgeG1sUmVnRXhlY1JvbGxiYWNrOwordHlwZWRlZiB4bWxSZWdFeGVjUm9sbGJhY2sgKnhtbFJlZ0V4ZWNSb2xsYmFja1B0cjsKKworc3RydWN0IF94bWxSZWdFeGVjUm9sbGJhY2sgeworICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXRlOy8qIHRoZSBjdXJyZW50IHN0YXRlICovCisgICAgaW50IGluZGV4OwkJLyogdGhlIGluZGV4IGluIHRoZSBpbnB1dCBzdGFjayAqLworICAgIGludCBuZXh0YnJhbmNoOwkvKiB0aGUgbmV4dCB0cmFuc2l0aW9uIHRvIGV4cGxvcmUgaW4gdGhhdCBzdGF0ZSAqLworICAgIGludCAqY291bnRzOwkvKiBzYXZlIHRoZSBhdXRvbWF0YSBzdGF0ZSBpZiBpdCBoYXMgc29tZSAqLworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFJlZ0lucHV0VG9rZW4geG1sUmVnSW5wdXRUb2tlbjsKK3R5cGVkZWYgeG1sUmVnSW5wdXRUb2tlbiAqeG1sUmVnSW5wdXRUb2tlblB0cjsKKworc3RydWN0IF94bWxSZWdJbnB1dFRva2VuIHsKKyAgICB4bWxDaGFyICp2YWx1ZTsKKyAgICB2b2lkICpkYXRhOworfTsKKworc3RydWN0IF94bWxSZWdFeGVjQ3R4dCB7CisgICAgaW50IHN0YXR1czsJCS8qIGV4ZWN1dGlvbiBzdGF0dXMgIT0gMCBpbmRpY2F0ZSBhbiBlcnJvciAqLworICAgIGludCBkZXRlcm1pbmlzdDsJLyogZGlkIHdlIGZpbmQgYW4gaW5kZXRlcm1pbmlzdGljIGJlaGF2aW91ciAqLworICAgIHhtbFJlZ2V4cFB0ciBjb21wOwkvKiB0aGUgY29tcGlsZWQgcmVnZXhwICovCisgICAgeG1sUmVnRXhlY0NhbGxiYWNrcyBjYWxsYmFjazsKKyAgICB2b2lkICpkYXRhOworCisgICAgeG1sUmVnU3RhdGVQdHIgc3RhdGU7LyogdGhlIGN1cnJlbnQgc3RhdGUgKi8KKyAgICBpbnQgdHJhbnNubzsJLyogdGhlIGN1cnJlbnQgdHJhbnNpdGlvbiBvbiB0aGF0IHN0YXRlICovCisgICAgaW50IHRyYW5zY291bnQ7CS8qIHRoZSBudW1iZXIgb2YgY2hhcnMgaW4gY2hhciBjb3VudGVkIHRyYW5zaXRpb25zICovCisKKyAgICAvKgorICAgICAqIEEgc3RhY2sgb2Ygcm9sbGJhY2sgc3RhdGVzCisgICAgICovCisgICAgaW50IG1heFJvbGxiYWNrczsKKyAgICBpbnQgbmJSb2xsYmFja3M7CisgICAgeG1sUmVnRXhlY1JvbGxiYWNrICpyb2xsYmFja3M7CisKKyAgICAvKgorICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgYXV0b21hdGEgaWYgYW55CisgICAgICovCisgICAgaW50ICpjb3VudHM7CisKKyAgICAvKgorICAgICAqIFRoZSBpbnB1dCBzdGFjaworICAgICAqLworICAgIGludCBpbnB1dFN0YWNrTWF4OworICAgIGludCBpbnB1dFN0YWNrTnI7CisgICAgaW50IGluZGV4OworICAgIGludCAqY2hhclN0YWNrOworICAgIGNvbnN0IHhtbENoYXIgKmlucHV0U3RyaW5nOyAvKiB3aGVuIG9wZXJhdGluZyBvbiBjaGFyYWN0ZXJzICovCisgICAgeG1sUmVnSW5wdXRUb2tlblB0ciBpbnB1dFN0YWNrOy8qIHdoZW4gb3BlcmF0aW5nIG9uIHN0cmluZ3MgKi8KKworICAgIC8qCisgICAgICogZXJyb3IgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBpbnQgZXJyU3RhdGVObzsJCS8qIHRoZSBlcnJvciBzdGF0ZSBudW1iZXIgKi8KKyAgICB4bWxSZWdTdGF0ZVB0ciBlcnJTdGF0ZTsgICAgLyogdGhlIGVycm9yIHN0YXRlICovCisgICAgeG1sQ2hhciAqZXJyU3RyaW5nOwkJLyogdGhlIHN0cmluZyByYWlzaW5nIHRoZSBlcnJvciAqLworICAgIGludCAqZXJyQ291bnRzOwkJLyogY291bnRlcnMgYXQgdGhlIGVycm9yIHN0YXRlICovCisgICAgaW50IG5iUHVzaDsKK307CisKKyNkZWZpbmUgUkVHRVhQX0FMTF9DT1VOVEVSCTB4MTIzNDU2CisjZGVmaW5lIFJFR0VYUF9BTExfTEFYX0NPVU5URVIJMHgxMjM0NTcKKworc3RhdGljIHZvaWQgeG1sRkFQYXJzZVJlZ0V4cCh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsIGludCB0b3ApOworc3RhdGljIHZvaWQgeG1sUmVnRnJlZVN0YXRlKHhtbFJlZ1N0YXRlUHRyIHN0YXRlKTsKK3N0YXRpYyB2b2lkIHhtbFJlZ0ZyZWVBdG9tKHhtbFJlZ0F0b21QdHIgYXRvbSk7CitzdGF0aWMgaW50IHhtbFJlZ1N0ckVxdWFsV2lsZGNhcmQoY29uc3QgeG1sQ2hhciAqZXhwU3RyLCBjb25zdCB4bWxDaGFyICp2YWxTdHIpOworc3RhdGljIGludCB4bWxSZWdDaGVja0NoYXJhY3Rlcih4bWxSZWdBdG9tUHRyIGF0b20sIGludCBjb2RlcG9pbnQpOworc3RhdGljIGludCB4bWxSZWdDaGVja0NoYXJhY3RlclJhbmdlKHhtbFJlZ0F0b21UeXBlIHR5cGUsIGludCBjb2RlcG9pbnQsCisgICAgICAgICAgICAgICAgICBpbnQgbmVnLCBpbnQgc3RhcnQsIGludCBlbmQsIGNvbnN0IHhtbENoYXIgKmJsb2NrTmFtZSk7CisKK3ZvaWQgeG1sQXV0b21hdGFTZXRGbGFncyh4bWxBdXRvbWF0YVB0ciBhbSwgaW50IGZsYWdzKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAJCVJlZ2V4cCBtZW1vcnkgZXJyb3IgaGFuZGxlcgkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIHhtbFJlZ2V4cEVyck1lbW9yeToKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9uCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWdleHBFcnJNZW1vcnkoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpleHRyYSkKK3sKKyAgICBjb25zdCBjaGFyICpyZWdleHAgPSBOVUxMOworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgcmVnZXhwID0gKGNvbnN0IGNoYXIgKikgY3R4dC0+c3RyaW5nOworCWN0eHQtPmVycm9yID0gWE1MX0VSUl9OT19NRU1PUlk7CisgICAgfQorICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBYTUxfRlJPTV9SRUdFWFAsCisJCSAgICBYTUxfRVJSX05PX01FTU9SWSwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgZXh0cmEsCisJCSAgICByZWdleHAsIE5VTEwsIDAsIDAsCisJCSAgICAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIDogJXNcbiIsIGV4dHJhKTsKK30KKworLyoqCisgKiB4bWxSZWdleHBFcnJDb21waWxlOgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb24KKyAqCisgKiBIYW5kbGUgYSBjb21waWxhdGlvbiBmYWlsdXJlCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWdleHBFcnJDb21waWxlKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCwgY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgY29uc3QgY2hhciAqcmVnZXhwID0gTlVMTDsKKyAgICBpbnQgaWR4ID0gMDsKKworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgcmVnZXhwID0gKGNvbnN0IGNoYXIgKikgY3R4dC0+c3RyaW5nOworCWlkeCA9IGN0eHQtPmN1ciAtIGN0eHQtPnN0cmluZzsKKwljdHh0LT5lcnJvciA9IFhNTF9SRUdFWFBfQ09NUElMRV9FUlJPUjsKKyAgICB9CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFhNTF9GUk9NX1JFR0VYUCwKKwkJICAgIFhNTF9SRUdFWFBfQ09NUElMRV9FUlJPUiwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgZXh0cmEsCisJCSAgICByZWdleHAsIE5VTEwsIGlkeCwgMCwKKwkJICAgICJmYWlsZWQgdG8gY29tcGlsZTogJXNcbiIsIGV4dHJhKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQkJQWxsb2NhdGlvbi9EZWFsbG9jYXRpb24JCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludCB4bWxGQUNvbXB1dGVzRGV0ZXJtaW5pc20oeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0KTsKKy8qKgorICogeG1sUmVnRXB4RnJvbVBhcnNlOgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQgdXNlZCB0byBidWlsZCBpdAorICoKKyAqIEFsbG9jYXRlIGEgbmV3IHJlZ2V4cCBhbmQgZmlsbCBpdCB3aXRoIHRoZSByZXN1bHQgZnJvbSB0aGUgcGFyc2VyCisgKgorICogUmV0dXJucyB0aGUgbmV3IHJlZ2V4cCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFJlZ2V4cFB0cgoreG1sUmVnRXB4RnJvbVBhcnNlKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIHhtbFJlZ2V4cFB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sUmVnZXhwUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlZ2V4cCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFJlZ2V4cEVyck1lbW9yeShjdHh0LCAiY29tcGlsaW5nIHJlZ2V4cCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlZ2V4cCkpOworICAgIHJldC0+c3RyaW5nID0gY3R4dC0+c3RyaW5nOworICAgIHJldC0+bmJTdGF0ZXMgPSBjdHh0LT5uYlN0YXRlczsKKyAgICByZXQtPnN0YXRlcyA9IGN0eHQtPnN0YXRlczsKKyAgICByZXQtPm5iQXRvbXMgPSBjdHh0LT5uYkF0b21zOworICAgIHJldC0+YXRvbXMgPSBjdHh0LT5hdG9tczsKKyAgICByZXQtPm5iQ291bnRlcnMgPSBjdHh0LT5uYkNvdW50ZXJzOworICAgIHJldC0+Y291bnRlcnMgPSBjdHh0LT5jb3VudGVyczsKKyAgICByZXQtPmRldGVybWluaXN0ID0gY3R4dC0+ZGV0ZXJtaW5pc3Q7CisgICAgcmV0LT5mbGFncyA9IGN0eHQtPmZsYWdzOworICAgIGlmIChyZXQtPmRldGVybWluaXN0ID09IC0xKSB7CisgICAgICAgIHhtbFJlZ2V4cElzRGV0ZXJtaW5pc3QocmV0KTsKKyAgICB9CisKKyAgICBpZiAoKHJldC0+ZGV0ZXJtaW5pc3QgIT0gMCkgJiYKKwkocmV0LT5uYkNvdW50ZXJzID09IDApICYmCisJKGN0eHQtPm5lZ3MgPT0gMCkgJiYKKwkocmV0LT5hdG9tcyAhPSBOVUxMKSAmJgorCShyZXQtPmF0b21zWzBdICE9IE5VTEwpICYmCisJKHJldC0+YXRvbXNbMF0tPnR5cGUgPT0gWE1MX1JFR0VYUF9TVFJJTkcpKSB7CisJaW50IGksIGosIG5ic3RhdGVzID0gMCwgbmJhdG9tcyA9IDA7CisJaW50ICpzdGF0ZVJlbWFwOworCWludCAqc3RyaW5nUmVtYXA7CisJaW50ICp0cmFuc2l0aW9uczsKKwl2b2lkICoqdHJhbnNkYXRhOworCXhtbENoYXIgKipzdHJpbmdNYXA7CisgICAgICAgIHhtbENoYXIgKnZhbHVlOworCisJLyoKKwkgKiBTd2l0Y2ggdG8gYSBjb21wYWN0IHJlcHJlc2VudGF0aW9uCisJICogMS8gY291bnRpbmcgdGhlIGVmZmVjdGl2ZSBudW1iZXIgb2Ygc3RhdGVzIGxlZnQKKwkgKiAyLyBjb3VudGluZyB0aGUgdW5pcXVlIG51bWJlciBvZiBhdG9tcywgYW5kIGNoZWNrIHRoYXQKKwkgKiAgICB0aGV5IGFyZSBhbGwgb2YgdGhlIHN0cmluZyB0eXBlCisJICogMy8gYnVpbGQgYSB0YWJsZSBzdGF0ZSB4IGF0b20gZm9yIHRoZSB0cmFuc2l0aW9ucworCSAqLworCisJc3RhdGVSZW1hcCA9IHhtbE1hbGxvYyhyZXQtPm5iU3RhdGVzICogc2l6ZW9mKGludCkpOworCWlmIChzdGF0ZVJlbWFwID09IE5VTEwpIHsKKwkgICAgeG1sUmVnZXhwRXJyTWVtb3J5KGN0eHQsICJjb21waWxpbmcgcmVnZXhwIik7CisJICAgIHhtbEZyZWUocmV0KTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKwlmb3IgKGkgPSAwO2kgPCByZXQtPm5iU3RhdGVzO2krKykgeworCSAgICBpZiAocmV0LT5zdGF0ZXNbaV0gIT0gTlVMTCkgeworCQlzdGF0ZVJlbWFwW2ldID0gbmJzdGF0ZXM7CisJCW5ic3RhdGVzKys7CisJICAgIH0gZWxzZSB7CisJCXN0YXRlUmVtYXBbaV0gPSAtMTsKKwkgICAgfQorCX0KKyNpZmRlZiBERUJVR19DT01QQUNUSU9OCisJcHJpbnRmKCJGaW5hbDogJWQgc3RhdGVzXG4iLCBuYnN0YXRlcyk7CisjZW5kaWYKKwlzdHJpbmdNYXAgPSB4bWxNYWxsb2MocmV0LT5uYkF0b21zICogc2l6ZW9mKGNoYXIgKikpOworCWlmIChzdHJpbmdNYXAgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImNvbXBpbGluZyByZWdleHAiKTsKKwkgICAgeG1sRnJlZShzdGF0ZVJlbWFwKTsKKwkgICAgeG1sRnJlZShyZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCXN0cmluZ1JlbWFwID0geG1sTWFsbG9jKHJldC0+bmJBdG9tcyAqIHNpemVvZihpbnQpKTsKKwlpZiAoc3RyaW5nUmVtYXAgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImNvbXBpbGluZyByZWdleHAiKTsKKwkgICAgeG1sRnJlZShzdHJpbmdNYXApOworCSAgICB4bWxGcmVlKHN0YXRlUmVtYXApOworCSAgICB4bWxGcmVlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJZm9yIChpID0gMDtpIDwgcmV0LT5uYkF0b21zO2krKykgeworCSAgICBpZiAoKHJldC0+YXRvbXNbaV0tPnR5cGUgPT0gWE1MX1JFR0VYUF9TVFJJTkcpICYmCisJCShyZXQtPmF0b21zW2ldLT5xdWFudCA9PSBYTUxfUkVHRVhQX1FVQU5UX09OQ0UpKSB7CisJCXZhbHVlID0gcmV0LT5hdG9tc1tpXS0+dmFsdWVwOworICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7aiA8IG5iYXRvbXM7aisrKSB7CisJCSAgICBpZiAoeG1sU3RyRXF1YWwoc3RyaW5nTWFwW2pdLCB2YWx1ZSkpIHsKKwkJCXN0cmluZ1JlbWFwW2ldID0gajsKKwkJCWJyZWFrOworCQkgICAgfQorCQl9CisJCWlmIChqID49IG5iYXRvbXMpIHsKKwkJICAgIHN0cmluZ1JlbWFwW2ldID0gbmJhdG9tczsKKwkJICAgIHN0cmluZ01hcFtuYmF0b21zXSA9IHhtbFN0cmR1cCh2YWx1ZSk7CisJCSAgICBpZiAoc3RyaW5nTWFwW25iYXRvbXNdID09IE5VTEwpIHsKKwkJCWZvciAoaSA9IDA7aSA8IG5iYXRvbXM7aSsrKQorCQkJICAgIHhtbEZyZWUoc3RyaW5nTWFwW2ldKTsKKwkJCXhtbEZyZWUoc3RyaW5nUmVtYXApOworCQkJeG1sRnJlZShzdHJpbmdNYXApOworCQkJeG1sRnJlZShzdGF0ZVJlbWFwKTsKKwkJCXhtbEZyZWUocmV0KTsKKwkJCXJldHVybihOVUxMKTsKKwkJICAgIH0KKwkJICAgIG5iYXRvbXMrKzsKKwkJfQorCSAgICB9IGVsc2UgeworCQl4bWxGcmVlKHN0YXRlUmVtYXApOworCQl4bWxGcmVlKHN0cmluZ1JlbWFwKTsKKwkJZm9yIChpID0gMDtpIDwgbmJhdG9tcztpKyspCisJCSAgICB4bWxGcmVlKHN0cmluZ01hcFtpXSk7CisJCXhtbEZyZWUoc3RyaW5nTWFwKTsKKwkJeG1sRnJlZShyZXQpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwl9CisjaWZkZWYgREVCVUdfQ09NUEFDVElPTgorCXByaW50ZigiRmluYWw6ICVkIGF0b21zXG4iLCBuYmF0b21zKTsKKyNlbmRpZgorCXRyYW5zaXRpb25zID0gKGludCAqKSB4bWxNYWxsb2MoKG5ic3RhdGVzICsgMSkgKgorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5iYXRvbXMgKyAxKSAqIHNpemVvZihpbnQpKTsKKwlpZiAodHJhbnNpdGlvbnMgPT0gTlVMTCkgeworCSAgICB4bWxGcmVlKHN0YXRlUmVtYXApOworCSAgICB4bWxGcmVlKHN0cmluZ1JlbWFwKTsKKwkgICAgeG1sRnJlZShzdHJpbmdNYXApOworCSAgICB4bWxGcmVlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbWVtc2V0KHRyYW5zaXRpb25zLCAwLCAobmJzdGF0ZXMgKyAxKSAqIChuYmF0b21zICsgMSkgKiBzaXplb2YoaW50KSk7CisKKwkvKgorCSAqIEFsbG9jYXRlIHRoZSB0cmFuc2l0aW9uIHRhYmxlLiBUaGUgZmlyc3QgZW50cnkgZm9yIGVhY2gKKwkgKiBzdGF0ZSBjb3JyZXNwb25kcyB0byB0aGUgc3RhdGUgdHlwZS4KKwkgKi8KKwl0cmFuc2RhdGEgPSBOVUxMOworCisJZm9yIChpID0gMDtpIDwgcmV0LT5uYlN0YXRlcztpKyspIHsKKwkgICAgaW50IHN0YXRlbm8sIGF0b21ubywgdGFyZ2V0bm8sIHByZXY7CisJICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXRlOworCSAgICB4bWxSZWdUcmFuc1B0ciB0cmFuczsKKworCSAgICBzdGF0ZW5vID0gc3RhdGVSZW1hcFtpXTsKKwkgICAgaWYgKHN0YXRlbm8gPT0gLTEpCisJCWNvbnRpbnVlOworCSAgICBzdGF0ZSA9IHJldC0+c3RhdGVzW2ldOworCisJICAgIHRyYW5zaXRpb25zW3N0YXRlbm8gKiAobmJhdG9tcyArIDEpXSA9IHN0YXRlLT50eXBlOworCisJICAgIGZvciAoaiA9IDA7aiA8IHN0YXRlLT5uYlRyYW5zO2orKykgeworCQl0cmFucyA9ICYoc3RhdGUtPnRyYW5zW2pdKTsKKwkJaWYgKCh0cmFucy0+dG8gPT0gLTEpIHx8ICh0cmFucy0+YXRvbSA9PSBOVUxMKSkKKwkJICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGF0b21ubyA9IHN0cmluZ1JlbWFwW3RyYW5zLT5hdG9tLT5ub107CisJCWlmICgodHJhbnMtPmF0b20tPmRhdGEgIT0gTlVMTCkgJiYgKHRyYW5zZGF0YSA9PSBOVUxMKSkgeworCQkgICAgdHJhbnNkYXRhID0gKHZvaWQgKiopIHhtbE1hbGxvYyhuYnN0YXRlcyAqIG5iYXRvbXMgKgorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2b2lkICopKTsKKwkJICAgIGlmICh0cmFuc2RhdGEgIT0gTlVMTCkKKwkJCW1lbXNldCh0cmFuc2RhdGEsIDAsCisJCQkgICAgICAgbmJzdGF0ZXMgKiBuYmF0b21zICogc2l6ZW9mKHZvaWQgKikpOworCQkgICAgZWxzZSB7CisJCQl4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImNvbXBpbGluZyByZWdleHAiKTsKKwkJCWJyZWFrOworCQkgICAgfQorCQl9CisJCXRhcmdldG5vID0gc3RhdGVSZW1hcFt0cmFucy0+dG9dOworCQkvKgorCQkgKiBpZiB0aGUgc2FtZSBhdG9tIGNhbiBnZW5lcmF0ZSB0cmFuc2l0aW9ucyB0byAyIGRpZmZlcmVudAorCQkgKiBzdGF0ZXMgdGhlbiBpdCBtZWFucyB0aGUgYXV0b21hdGEgaXMgbm90IGRldGVybWluaXN0IGFuZAorCQkgKiB0aGUgY29tcGFjdCBmb3JtIGNhbid0IGJlIHVzZWQgIQorCQkgKi8KKwkJcHJldiA9IHRyYW5zaXRpb25zW3N0YXRlbm8gKiAobmJhdG9tcyArIDEpICsgYXRvbW5vICsgMV07CisJCWlmIChwcmV2ICE9IDApIHsKKwkJICAgIGlmIChwcmV2ICE9IHRhcmdldG5vICsgMSkgeworCQkJcmV0LT5kZXRlcm1pbmlzdCA9IDA7CisjaWZkZWYgREVCVUdfQ09NUEFDVElPTgorCQkJcHJpbnRmKCJJbmRldDogc3RhdGUgJWQgdHJhbnMgJWQsIGF0b20gJWQgdG8gJWQgOiAlZCB0byAlZFxuIiwKKwkJCSAgICAgICBpLCBqLCB0cmFucy0+YXRvbS0+bm8sIHRyYW5zLT50bywgYXRvbW5vLCB0YXJnZXRubyk7CisJCQlwcmludGYoIiAgICAgICBwcmV2aW91cyB0byBpcyAlZFxuIiwgcHJldik7CisjZW5kaWYKKwkJCWlmICh0cmFuc2RhdGEgIT0gTlVMTCkKKwkJCSAgICB4bWxGcmVlKHRyYW5zZGF0YSk7CisJCQl4bWxGcmVlKHRyYW5zaXRpb25zKTsKKwkJCXhtbEZyZWUoc3RhdGVSZW1hcCk7CisJCQl4bWxGcmVlKHN0cmluZ1JlbWFwKTsKKwkJCWZvciAoaSA9IDA7aSA8IG5iYXRvbXM7aSsrKQorCQkJICAgIHhtbEZyZWUoc3RyaW5nTWFwW2ldKTsKKwkJCXhtbEZyZWUoc3RyaW5nTWFwKTsKKwkJCWdvdG8gbm90X2RldGVybTsKKwkJICAgIH0KKwkJfSBlbHNlIHsKKyNpZiAwCisJCSAgICBwcmludGYoIlN0YXRlICVkIHRyYW5zICVkOiBhdG9tICVkIHRvICVkIDogJWQgdG8gJWRcbiIsCisJCQkgICBpLCBqLCB0cmFucy0+YXRvbS0+bm8sIHRyYW5zLT50bywgYXRvbW5vLCB0YXJnZXRubyk7CisjZW5kaWYKKwkJICAgIHRyYW5zaXRpb25zW3N0YXRlbm8gKiAobmJhdG9tcyArIDEpICsgYXRvbW5vICsgMV0gPQorCQkJdGFyZ2V0bm8gKyAxOyAvKiB0byBhdm9pZCAwICovCisJCSAgICBpZiAodHJhbnNkYXRhICE9IE5VTEwpCisJCQl0cmFuc2RhdGFbc3RhdGVubyAqIG5iYXRvbXMgKyBhdG9tbm9dID0KKwkJCSAgICB0cmFucy0+YXRvbS0+ZGF0YTsKKwkJfQorCSAgICB9CisJfQorCXJldC0+ZGV0ZXJtaW5pc3QgPSAxOworI2lmZGVmIERFQlVHX0NPTVBBQ1RJT04KKwkvKgorCSAqIERlYnVnCisJICovCisJZm9yIChpID0gMDtpIDwgbmJzdGF0ZXM7aSsrKSB7CisJICAgIGZvciAoaiA9IDA7aiA8IG5iYXRvbXMgKyAxO2orKykgeworICAgICAgICAgICAgICAgIHByaW50ZigiJTAyZCAiLCB0cmFuc2l0aW9uc1tpICogKG5iYXRvbXMgKyAxKSArIGpdKTsKKwkgICAgfQorCSAgICBwcmludGYoIlxuIik7CisJfQorCXByaW50ZigiXG4iKTsKKyNlbmRpZgorCS8qCisJICogQ2xlYW51cCBvZiB0aGUgb2xkIGRhdGEKKwkgKi8KKwlpZiAocmV0LT5zdGF0ZXMgIT0gTlVMTCkgeworCSAgICBmb3IgKGkgPSAwO2kgPCByZXQtPm5iU3RhdGVzO2krKykKKwkJeG1sUmVnRnJlZVN0YXRlKHJldC0+c3RhdGVzW2ldKTsKKwkgICAgeG1sRnJlZShyZXQtPnN0YXRlcyk7CisJfQorCXJldC0+c3RhdGVzID0gTlVMTDsKKwlyZXQtPm5iU3RhdGVzID0gMDsKKwlpZiAocmV0LT5hdG9tcyAhPSBOVUxMKSB7CisJICAgIGZvciAoaSA9IDA7aSA8IHJldC0+bmJBdG9tcztpKyspCisJCXhtbFJlZ0ZyZWVBdG9tKHJldC0+YXRvbXNbaV0pOworCSAgICB4bWxGcmVlKHJldC0+YXRvbXMpOworCX0KKwlyZXQtPmF0b21zID0gTlVMTDsKKwlyZXQtPm5iQXRvbXMgPSAwOworCisJcmV0LT5jb21wYWN0ID0gdHJhbnNpdGlvbnM7CisJcmV0LT50cmFuc2RhdGEgPSB0cmFuc2RhdGE7CisJcmV0LT5zdHJpbmdNYXAgPSBzdHJpbmdNYXA7CisJcmV0LT5uYnN0cmluZ3MgPSBuYmF0b21zOworCXJldC0+bmJzdGF0ZXMgPSBuYnN0YXRlczsKKwl4bWxGcmVlKHN0YXRlUmVtYXApOworCXhtbEZyZWUoc3RyaW5nUmVtYXApOworICAgIH0KK25vdF9kZXRlcm06CisgICAgY3R4dC0+c3RyaW5nID0gTlVMTDsKKyAgICBjdHh0LT5uYlN0YXRlcyA9IDA7CisgICAgY3R4dC0+c3RhdGVzID0gTlVMTDsKKyAgICBjdHh0LT5uYkF0b21zID0gMDsKKyAgICBjdHh0LT5hdG9tcyA9IE5VTEw7CisgICAgY3R4dC0+bmJDb3VudGVycyA9IDA7CisgICAgY3R4dC0+Y291bnRlcnMgPSBOVUxMOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFJlZ05ld1BhcnNlckN0eHQ6CisgKiBAc3RyaW5nOiAgdGhlIHN0cmluZyB0byBwYXJzZQorICoKKyAqIEFsbG9jYXRlIGEgbmV3IHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIG5ldyBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sUmVnUGFyc2VyQ3R4dFB0cgoreG1sUmVnTmV3UGFyc2VyQ3R4dChjb25zdCB4bWxDaGFyICpzdHJpbmcpIHsKKyAgICB4bWxSZWdQYXJzZXJDdHh0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxSZWdQYXJzZXJDdHh0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlZ1BhcnNlckN0eHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxSZWdQYXJzZXJDdHh0KSk7CisgICAgaWYgKHN0cmluZyAhPSBOVUxMKQorCXJldC0+c3RyaW5nID0geG1sU3RyZHVwKHN0cmluZyk7CisgICAgcmV0LT5jdXIgPSByZXQtPnN0cmluZzsKKyAgICByZXQtPm5lZyA9IDA7CisgICAgcmV0LT5uZWdzID0gMDsKKyAgICByZXQtPmVycm9yID0gMDsKKyAgICByZXQtPmRldGVybWluaXN0ID0gLTE7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVnTmV3UmFuZ2U6CisgKiBAY3R4dDogIHRoZSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqIEBuZWc6ICBpcyB0aGF0IG5lZ2F0aXZlCisgKiBAdHlwZTogIHRoZSB0eXBlIG9mIHJhbmdlCisgKiBAc3RhcnQ6ICB0aGUgc3RhcnQgY29kZXBvaW50CisgKiBAZW5kOiAgdGhlIGVuZCBjb2RlcG9pbnQKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyByZWdleHAgcmFuZ2UKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgcmFuZ2Ugb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxSZWdSYW5nZVB0cgoreG1sUmVnTmV3UmFuZ2UoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LAorCSAgICAgICBpbnQgbmVnLCB4bWxSZWdBdG9tVHlwZSB0eXBlLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICB4bWxSZWdSYW5nZVB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sUmVnUmFuZ2VQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVnUmFuZ2UpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgcmFuZ2UiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldC0+bmVnID0gbmVnOworICAgIHJldC0+dHlwZSA9IHR5cGU7CisgICAgcmV0LT5zdGFydCA9IHN0YXJ0OworICAgIHJldC0+ZW5kID0gZW5kOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFJlZ0ZyZWVSYW5nZToKKyAqIEByYW5nZTogIHRoZSByZWdleHAgcmFuZ2UKKyAqCisgKiBGcmVlIGEgcmVnZXhwIHJhbmdlCisgKi8KK3N0YXRpYyB2b2lkCit4bWxSZWdGcmVlUmFuZ2UoeG1sUmVnUmFuZ2VQdHIgcmFuZ2UpIHsKKyAgICBpZiAocmFuZ2UgPT0gTlVMTCkKKwlyZXR1cm47CisKKyAgICBpZiAocmFuZ2UtPmJsb2NrTmFtZSAhPSBOVUxMKQorCXhtbEZyZWUocmFuZ2UtPmJsb2NrTmFtZSk7CisgICAgeG1sRnJlZShyYW5nZSk7Cit9CisKKy8qKgorICogeG1sUmVnQ29weVJhbmdlOgorICogQHJhbmdlOiAgdGhlIHJlZ2V4cCByYW5nZQorICoKKyAqIENvcHkgYSByZWdleHAgcmFuZ2UKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgY29weSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyB4bWxSZWdSYW5nZVB0cgoreG1sUmVnQ29weVJhbmdlKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sUmVnUmFuZ2VQdHIgcmFuZ2UpIHsKKyAgICB4bWxSZWdSYW5nZVB0ciByZXQ7CisKKyAgICBpZiAocmFuZ2UgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSB4bWxSZWdOZXdSYW5nZShjdHh0LCByYW5nZS0+bmVnLCByYW5nZS0+dHlwZSwgcmFuZ2UtPnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlLT5lbmQpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGlmIChyYW5nZS0+YmxvY2tOYW1lICE9IE5VTEwpIHsKKwlyZXQtPmJsb2NrTmFtZSA9IHhtbFN0cmR1cChyYW5nZS0+YmxvY2tOYW1lKTsKKwlpZiAocmV0LT5ibG9ja05hbWUgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgcmFuZ2UiKTsKKwkgICAgeG1sUmVnRnJlZVJhbmdlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFJlZ05ld0F0b206CisgKiBAY3R4dDogIHRoZSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqIEB0eXBlOiAgdGhlIHR5cGUgb2YgYXRvbQorICoKKyAqIEFsbG9jYXRlIGEgbmV3IGF0b20KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgYXRvbSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFJlZ0F0b21QdHIKK3htbFJlZ05ld0F0b20oeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxSZWdBdG9tVHlwZSB0eXBlKSB7CisgICAgeG1sUmVnQXRvbVB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sUmVnQXRvbVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxSZWdBdG9tKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sUmVnZXhwRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIGF0b20iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxSZWdBdG9tKSk7CisgICAgcmV0LT50eXBlID0gdHlwZTsKKyAgICByZXQtPnF1YW50ID0gWE1MX1JFR0VYUF9RVUFOVF9PTkNFOworICAgIHJldC0+bWluID0gMDsKKyAgICByZXQtPm1heCA9IDA7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVnRnJlZUF0b206CisgKiBAYXRvbTogIHRoZSByZWdleHAgYXRvbQorICoKKyAqIEZyZWUgYSByZWdleHAgYXRvbQorICovCitzdGF0aWMgdm9pZAoreG1sUmVnRnJlZUF0b20oeG1sUmVnQXRvbVB0ciBhdG9tKSB7CisgICAgaW50IGk7CisKKyAgICBpZiAoYXRvbSA9PSBOVUxMKQorCXJldHVybjsKKworICAgIGZvciAoaSA9IDA7aSA8IGF0b20tPm5iUmFuZ2VzO2krKykKKwl4bWxSZWdGcmVlUmFuZ2UoYXRvbS0+cmFuZ2VzW2ldKTsKKyAgICBpZiAoYXRvbS0+cmFuZ2VzICE9IE5VTEwpCisJeG1sRnJlZShhdG9tLT5yYW5nZXMpOworICAgIGlmICgoYXRvbS0+dHlwZSA9PSBYTUxfUkVHRVhQX1NUUklORykgJiYgKGF0b20tPnZhbHVlcCAhPSBOVUxMKSkKKwl4bWxGcmVlKGF0b20tPnZhbHVlcCk7CisgICAgaWYgKChhdG9tLT50eXBlID09IFhNTF9SRUdFWFBfU1RSSU5HKSAmJiAoYXRvbS0+dmFsdWVwMiAhPSBOVUxMKSkKKwl4bWxGcmVlKGF0b20tPnZhbHVlcDIpOworICAgIGlmICgoYXRvbS0+dHlwZSA9PSBYTUxfUkVHRVhQX0JMT0NLX05BTUUpICYmIChhdG9tLT52YWx1ZXAgIT0gTlVMTCkpCisJeG1sRnJlZShhdG9tLT52YWx1ZXApOworICAgIHhtbEZyZWUoYXRvbSk7Cit9CisKKy8qKgorICogeG1sUmVnQ29weUF0b206CisgKiBAY3R4dDogIHRoZSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqIEBhdG9tOiAgdGhlIG9pZ2luYWwgYXRvbQorICoKKyAqIEFsbG9jYXRlIGEgbmV3IHJlZ2V4cCByYW5nZQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBhdG9tIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sUmVnQXRvbVB0cgoreG1sUmVnQ29weUF0b20oeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxSZWdBdG9tUHRyIGF0b20pIHsKKyAgICB4bWxSZWdBdG9tUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxSZWdBdG9tUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFJlZ0F0b20pKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImNvcHlpbmcgYXRvbSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFJlZ0F0b20pKTsKKyAgICByZXQtPnR5cGUgPSBhdG9tLT50eXBlOworICAgIHJldC0+cXVhbnQgPSBhdG9tLT5xdWFudDsKKyAgICByZXQtPm1pbiA9IGF0b20tPm1pbjsKKyAgICByZXQtPm1heCA9IGF0b20tPm1heDsKKyAgICBpZiAoYXRvbS0+bmJSYW5nZXMgPiAwKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIHJldC0+cmFuZ2VzID0gKHhtbFJlZ1JhbmdlUHRyICopIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVnUmFuZ2VQdHIpICoKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbS0+bmJSYW5nZXMpOworCWlmIChyZXQtPnJhbmdlcyA9PSBOVUxMKSB7CisJICAgIHhtbFJlZ2V4cEVyck1lbW9yeShjdHh0LCAiY29weWluZyBhdG9tIik7CisJICAgIGdvdG8gZXJyb3I7CisJfQorCWZvciAoaSA9IDA7aSA8IGF0b20tPm5iUmFuZ2VzO2krKykgeworCSAgICByZXQtPnJhbmdlc1tpXSA9IHhtbFJlZ0NvcHlSYW5nZShjdHh0LCBhdG9tLT5yYW5nZXNbaV0pOworCSAgICBpZiAocmV0LT5yYW5nZXNbaV0gPT0gTlVMTCkKKwkgICAgICAgIGdvdG8gZXJyb3I7CisJICAgIHJldC0+bmJSYW5nZXMgPSBpICsgMTsKKwl9CisgICAgfQorICAgIHJldHVybihyZXQpOworCitlcnJvcjoKKyAgICB4bWxSZWdGcmVlQXRvbShyZXQpOworICAgIHJldHVybihOVUxMKTsKK30KKworc3RhdGljIHhtbFJlZ1N0YXRlUHRyCit4bWxSZWdOZXdTdGF0ZSh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICB4bWxSZWdTdGF0ZVB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sUmVnU3RhdGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVnU3RhdGUpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgc3RhdGUiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxSZWdTdGF0ZSkpOworICAgIHJldC0+dHlwZSA9IFhNTF9SRUdFWFBfVFJBTlNfU1RBVEU7CisgICAgcmV0LT5tYXJrID0gWE1MX1JFR0VYUF9NQVJLX05PUk1BTDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxSZWdGcmVlU3RhdGU6CisgKiBAc3RhdGU6ICB0aGUgcmVnZXhwIHN0YXRlCisgKgorICogRnJlZSBhIHJlZ2V4cCBzdGF0ZQorICovCitzdGF0aWMgdm9pZAoreG1sUmVnRnJlZVN0YXRlKHhtbFJlZ1N0YXRlUHRyIHN0YXRlKSB7CisgICAgaWYgKHN0YXRlID09IE5VTEwpCisJcmV0dXJuOworCisgICAgaWYgKHN0YXRlLT50cmFucyAhPSBOVUxMKQorCXhtbEZyZWUoc3RhdGUtPnRyYW5zKTsKKyAgICBpZiAoc3RhdGUtPnRyYW5zVG8gIT0gTlVMTCkKKwl4bWxGcmVlKHN0YXRlLT50cmFuc1RvKTsKKyAgICB4bWxGcmVlKHN0YXRlKTsKK30KKworLyoqCisgKiB4bWxSZWdGcmVlUGFyc2VyQ3R4dDoKKyAqIEBjdHh0OiAgdGhlIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICoKKyAqIEZyZWUgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqLworc3RhdGljIHZvaWQKK3htbFJlZ0ZyZWVQYXJzZXJDdHh0KHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCBpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuOworCisgICAgaWYgKGN0eHQtPnN0cmluZyAhPSBOVUxMKQorCXhtbEZyZWUoY3R4dC0+c3RyaW5nKTsKKyAgICBpZiAoY3R4dC0+c3RhdGVzICE9IE5VTEwpIHsKKwlmb3IgKGkgPSAwO2kgPCBjdHh0LT5uYlN0YXRlcztpKyspCisJICAgIHhtbFJlZ0ZyZWVTdGF0ZShjdHh0LT5zdGF0ZXNbaV0pOworCXhtbEZyZWUoY3R4dC0+c3RhdGVzKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmF0b21zICE9IE5VTEwpIHsKKwlmb3IgKGkgPSAwO2kgPCBjdHh0LT5uYkF0b21zO2krKykKKwkgICAgeG1sUmVnRnJlZUF0b20oY3R4dC0+YXRvbXNbaV0pOworCXhtbEZyZWUoY3R4dC0+YXRvbXMpOworICAgIH0KKyAgICBpZiAoY3R4dC0+Y291bnRlcnMgIT0gTlVMTCkKKwl4bWxGcmVlKGN0eHQtPmNvdW50ZXJzKTsKKyAgICB4bWxGcmVlKGN0eHQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlEaXNwbGF5IG9mIERhdGEgc3RydWN0dXJlcwkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB2b2lkCit4bWxSZWdQcmludEF0b21UeXBlKEZJTEUgKm91dHB1dCwgeG1sUmVnQXRvbVR5cGUgdHlwZSkgeworICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfRVBTSUxPTjoKKwkgICAgZnByaW50ZihvdXRwdXQsICJlcHNpbG9uICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0NIQVJWQUw6CisJICAgIGZwcmludGYob3V0cHV0LCAiY2hhcnZhbCAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9SQU5HRVM6CisJICAgIGZwcmludGYob3V0cHV0LCAicmFuZ2VzICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NVQlJFRzoKKwkgICAgZnByaW50ZihvdXRwdXQsICJzdWJleHByICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NUUklORzoKKwkgICAgZnByaW50ZihvdXRwdXQsICJzdHJpbmcgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfQU5ZQ0hBUjoKKwkgICAgZnByaW50ZihvdXRwdXQsICJhbnljaGFyICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0FOWVNQQUNFOgorCSAgICBmcHJpbnRmKG91dHB1dCwgImFueXNwYWNlICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05PVFNQQUNFOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIm5vdHNwYWNlICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0lOSVROQU1FOgorCSAgICBmcHJpbnRmKG91dHB1dCwgImluaXRuYW1lICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05PVElOSVROQU1FOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIm5vdGluaXRuYW1lICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05BTUVDSEFSOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIm5hbWVjaGFyICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05PVE5BTUVDSEFSOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIm5vdG5hbWVjaGFyICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0RFQ0lNQUw6CisJICAgIGZwcmludGYob3V0cHV0LCAiZGVjaW1hbCAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1RERUNJTUFMOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIm5vdGRlY2ltYWwgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUkVBTENIQVI6CisJICAgIGZwcmludGYob3V0cHV0LCAicmVhbGNoYXIgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTk9UUkVBTENIQVI6CisJICAgIGZwcmludGYob3V0cHV0LCAibm90cmVhbGNoYXIgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTEVUVEVSOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJMRVRURVIgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTEVUVEVSX1VQUEVSQ0FTRToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiTEVUVEVSX1VQUEVSQ0FTRSAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9MRVRURVJfTE9XRVJDQVNFOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJMRVRURVJfTE9XRVJDQVNFICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9USVRMRUNBU0U6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIkxFVFRFUl9USVRMRUNBU0UgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTEVUVEVSX01PRElGSUVSOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJMRVRURVJfTU9ESUZJRVIgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTEVUVEVSX09USEVSUzoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiTEVUVEVSX09USEVSUyAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9NQVJLOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJNQVJLICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX01BUktfTk9OU1BBQ0lORzoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiTUFSS19OT05TUEFDSU5HICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX01BUktfU1BBQ0VDT01CSU5JTkc6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIk1BUktfU1BBQ0VDT01CSU5JTkcgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTUFSS19FTkNMT1NJTkc6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIk1BUktfRU5DTE9TSU5HICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05VTUJFUjoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiTlVNQkVSICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05VTUJFUl9ERUNJTUFMOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJOVU1CRVJfREVDSU1BTCAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OVU1CRVJfTEVUVEVSOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJOVU1CRVJfTEVUVEVSICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05VTUJFUl9PVEhFUlM6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIk5VTUJFUl9PVEhFUlMgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1Q6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlBVTkNUICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0NPTk5FQ1RPUjoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiUFVOQ1RfQ09OTkVDVE9SICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0RBU0g6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlBVTkNUX0RBU0ggIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfT1BFTjoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiUFVOQ1RfT1BFTiAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9QVU5DVF9DTE9TRToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiUFVOQ1RfQ0xPU0UgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfSU5JVFFVT1RFOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJQVU5DVF9JTklUUVVPVEUgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfRklOUVVPVEU6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlBVTkNUX0ZJTlFVT1RFICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX09USEVSUzoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiUFVOQ1RfT1RIRVJTICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NFUEFSOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJTRVBBUiAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TRVBBUl9TUEFDRToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiU0VQQVJfU1BBQ0UgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU0VQQVJfTElORToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiU0VQQVJfTElORSAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TRVBBUl9QQVJBOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJTRVBBUl9QQVJBICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NZTUJPTDoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiU1lNQk9MICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NZTUJPTF9NQVRIOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJTWU1CT0xfTUFUSCAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0xfQ1VSUkVOQ1k6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlNZTUJPTF9DVVJSRU5DWSAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0xfTU9ESUZJRVI6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlNZTUJPTF9NT0RJRklFUiAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0xfT1RIRVJTOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJTWU1CT0xfT1RIRVJTICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJPVEhFUiAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9PVEhFUl9DT05UUk9MOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJPVEhFUl9DT05UUk9MICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSX0ZPUk1BVDoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiT1RIRVJfRk9STUFUICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSX1BSSVZBVEU6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIk9USEVSX1BSSVZBVEUgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVJfTkE6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIk9USEVSX05BICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0JMT0NLX05BTUU6CisJICAgIGZwcmludGYob3V0cHV0LCAiQkxPQ0sgIik7IGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3htbFJlZ1ByaW50UXVhbnRUeXBlKEZJTEUgKm91dHB1dCwgeG1sUmVnUXVhbnRUeXBlIHR5cGUpIHsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1FVQU5UX0VQU0lMT046CisJICAgIGZwcmludGYob3V0cHV0LCAiZXBzaWxvbiAiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9RVUFOVF9PTkNFOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIm9uY2UgIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUVVBTlRfT1BUOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIj8gIik7IGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUVVBTlRfTVVMVDoKKwkgICAgZnByaW50ZihvdXRwdXQsICIqICIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1FVQU5UX1BMVVM6CisJICAgIGZwcmludGYob3V0cHV0LCAiKyAiKTsgYnJlYWs7CisJY2FzZSBYTUxfUkVHRVhQX1FVQU5UX1JBTkdFOgorCSAgICBmcHJpbnRmKG91dHB1dCwgInJhbmdlICIpOyBicmVhazsKKwljYXNlIFhNTF9SRUdFWFBfUVVBTlRfT05DRU9OTFk6CisJICAgIGZwcmludGYob3V0cHV0LCAib25jZW9ubHkgIik7IGJyZWFrOworCWNhc2UgWE1MX1JFR0VYUF9RVUFOVF9BTEw6CisJICAgIGZwcmludGYob3V0cHV0LCAiYWxsICIpOyBicmVhazsKKyAgICB9Cit9CitzdGF0aWMgdm9pZAoreG1sUmVnUHJpbnRSYW5nZShGSUxFICpvdXRwdXQsIHhtbFJlZ1JhbmdlUHRyIHJhbmdlKSB7CisgICAgZnByaW50ZihvdXRwdXQsICIgIHJhbmdlOiAiKTsKKyAgICBpZiAocmFuZ2UtPm5lZykKKwlmcHJpbnRmKG91dHB1dCwgIm5lZ2F0aXZlICIpOworICAgIHhtbFJlZ1ByaW50QXRvbVR5cGUob3V0cHV0LCByYW5nZS0+dHlwZSk7CisgICAgZnByaW50ZihvdXRwdXQsICIlYyAtICVjXG4iLCByYW5nZS0+c3RhcnQsIHJhbmdlLT5lbmQpOworfQorCitzdGF0aWMgdm9pZAoreG1sUmVnUHJpbnRBdG9tKEZJTEUgKm91dHB1dCwgeG1sUmVnQXRvbVB0ciBhdG9tKSB7CisgICAgZnByaW50ZihvdXRwdXQsICIgYXRvbTogIik7CisgICAgaWYgKGF0b20gPT0gTlVMTCkgeworCWZwcmludGYob3V0cHV0LCAiTlVMTFxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoYXRvbS0+bmVnKQorICAgICAgICBmcHJpbnRmKG91dHB1dCwgIm5vdCAiKTsKKyAgICB4bWxSZWdQcmludEF0b21UeXBlKG91dHB1dCwgYXRvbS0+dHlwZSk7CisgICAgeG1sUmVnUHJpbnRRdWFudFR5cGUob3V0cHV0LCBhdG9tLT5xdWFudCk7CisgICAgaWYgKGF0b20tPnF1YW50ID09IFhNTF9SRUdFWFBfUVVBTlRfUkFOR0UpCisJZnByaW50ZihvdXRwdXQsICIlZC0lZCAiLCBhdG9tLT5taW4sIGF0b20tPm1heCk7CisgICAgaWYgKGF0b20tPnR5cGUgPT0gWE1MX1JFR0VYUF9TVFJJTkcpCisJZnByaW50ZihvdXRwdXQsICInJXMnICIsIChjaGFyICopIGF0b20tPnZhbHVlcCk7CisgICAgaWYgKGF0b20tPnR5cGUgPT0gWE1MX1JFR0VYUF9DSEFSVkFMKQorCWZwcmludGYob3V0cHV0LCAiY2hhciAlY1xuIiwgYXRvbS0+Y29kZXBvaW50KTsKKyAgICBlbHNlIGlmIChhdG9tLT50eXBlID09IFhNTF9SRUdFWFBfUkFOR0VTKSB7CisJaW50IGk7CisJZnByaW50ZihvdXRwdXQsICIlZCBlbnRyaWVzXG4iLCBhdG9tLT5uYlJhbmdlcyk7CisJZm9yIChpID0gMDsgaSA8IGF0b20tPm5iUmFuZ2VzO2krKykKKwkgICAgeG1sUmVnUHJpbnRSYW5nZShvdXRwdXQsIGF0b20tPnJhbmdlc1tpXSk7CisgICAgfSBlbHNlIGlmIChhdG9tLT50eXBlID09IFhNTF9SRUdFWFBfU1VCUkVHKSB7CisJZnByaW50ZihvdXRwdXQsICJzdGFydCAlZCBlbmQgJWRcbiIsIGF0b20tPnN0YXJ0LT5ubywgYXRvbS0+c3RvcC0+bm8pOworICAgIH0gZWxzZSB7CisJZnByaW50ZihvdXRwdXQsICJcbiIpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3htbFJlZ1ByaW50VHJhbnMoRklMRSAqb3V0cHV0LCB4bWxSZWdUcmFuc1B0ciB0cmFucykgeworICAgIGZwcmludGYob3V0cHV0LCAiICB0cmFuczogIik7CisgICAgaWYgKHRyYW5zID09IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgIk5VTExcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKHRyYW5zLT50byA8IDApIHsKKwlmcHJpbnRmKG91dHB1dCwgInJlbW92ZWRcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKHRyYW5zLT5uZCAhPSAwKSB7CisJaWYgKHRyYW5zLT5uZCA9PSAyKQorCSAgICBmcHJpbnRmKG91dHB1dCwgImxhc3Qgbm90IGRldGVybWluaXN0LCAiKTsKKwllbHNlCisJICAgIGZwcmludGYob3V0cHV0LCAibm90IGRldGVybWluaXN0LCAiKTsKKyAgICB9CisgICAgaWYgKHRyYW5zLT5jb3VudGVyID49IDApIHsKKwlmcHJpbnRmKG91dHB1dCwgImNvdW50ZWQgJWQsICIsIHRyYW5zLT5jb3VudGVyKTsKKyAgICB9CisgICAgaWYgKHRyYW5zLT5jb3VudCA9PSBSRUdFWFBfQUxMX0NPVU5URVIpIHsKKwlmcHJpbnRmKG91dHB1dCwgImFsbCB0cmFuc2l0aW9uLCAiKTsKKyAgICB9IGVsc2UgaWYgKHRyYW5zLT5jb3VudCA+PSAwKSB7CisJZnByaW50ZihvdXRwdXQsICJjb3VudCBiYXNlZCAlZCwgIiwgdHJhbnMtPmNvdW50KTsKKyAgICB9CisgICAgaWYgKHRyYW5zLT5hdG9tID09IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgImVwc2lsb24gdG8gJWRcbiIsIHRyYW5zLT50byk7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAodHJhbnMtPmF0b20tPnR5cGUgPT0gWE1MX1JFR0VYUF9DSEFSVkFMKQorCWZwcmludGYob3V0cHV0LCAiY2hhciAlYyAiLCB0cmFucy0+YXRvbS0+Y29kZXBvaW50KTsKKyAgICBmcHJpbnRmKG91dHB1dCwgImF0b20gJWQsIHRvICVkXG4iLCB0cmFucy0+YXRvbS0+bm8sIHRyYW5zLT50byk7Cit9CisgICAgCitzdGF0aWMgdm9pZAoreG1sUmVnUHJpbnRTdGF0ZShGSUxFICpvdXRwdXQsIHhtbFJlZ1N0YXRlUHRyIHN0YXRlKSB7CisgICAgaW50IGk7CisKKyAgICBmcHJpbnRmKG91dHB1dCwgIiBzdGF0ZTogIik7CisgICAgaWYgKHN0YXRlID09IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgIk5VTExcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKHN0YXRlLT50eXBlID09IFhNTF9SRUdFWFBfU1RBUlRfU1RBVEUpCisJZnByaW50ZihvdXRwdXQsICJTVEFSVCAiKTsKKyAgICBpZiAoc3RhdGUtPnR5cGUgPT0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkKKwlmcHJpbnRmKG91dHB1dCwgIkZJTkFMICIpOworICAgIAorICAgIGZwcmludGYob3V0cHV0LCAiJWQsICVkIHRyYW5zaXRpb25zOlxuIiwgc3RhdGUtPm5vLCBzdGF0ZS0+bmJUcmFucyk7CisgICAgZm9yIChpID0gMDtpIDwgc3RhdGUtPm5iVHJhbnM7IGkrKykgeworCXhtbFJlZ1ByaW50VHJhbnMob3V0cHV0LCAmKHN0YXRlLT50cmFuc1tpXSkpOworICAgIH0KK30KKworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorc3RhdGljIHZvaWQKK3htbFJlZ1ByaW50Q3R4dChGSUxFICpvdXRwdXQsIHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCBpOworCisgICAgZnByaW50ZihvdXRwdXQsICIgY3R4dDogIik7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworCWZwcmludGYob3V0cHV0LCAiTlVMTFxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICBmcHJpbnRmKG91dHB1dCwgIiclcycgIiwgY3R4dC0+c3RyaW5nKTsKKyAgICBpZiAoY3R4dC0+ZXJyb3IpCisJZnByaW50ZihvdXRwdXQsICJlcnJvciAiKTsKKyAgICBpZiAoY3R4dC0+bmVnKQorCWZwcmludGYob3V0cHV0LCAibmVnICIpOworICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKKyAgICBmcHJpbnRmKG91dHB1dCwgIiVkIGF0b21zOlxuIiwgY3R4dC0+bmJBdG9tcyk7CisgICAgZm9yIChpID0gMDtpIDwgY3R4dC0+bmJBdG9tczsgaSsrKSB7CisJZnByaW50ZihvdXRwdXQsICIgJTAyZCAiLCBpKTsKKwl4bWxSZWdQcmludEF0b20ob3V0cHV0LCBjdHh0LT5hdG9tc1tpXSk7CisgICAgfQorICAgIGlmIChjdHh0LT5hdG9tICE9IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgImN1cnJlbnQgYXRvbTpcbiIpOworCXhtbFJlZ1ByaW50QXRvbShvdXRwdXQsIGN0eHQtPmF0b20pOworICAgIH0KKyAgICBmcHJpbnRmKG91dHB1dCwgIiVkIHN0YXRlczoiLCBjdHh0LT5uYlN0YXRlcyk7CisgICAgaWYgKGN0eHQtPnN0YXJ0ICE9IE5VTEwpCisJZnByaW50ZihvdXRwdXQsICIgc3RhcnQ6ICVkIiwgY3R4dC0+c3RhcnQtPm5vKTsKKyAgICBpZiAoY3R4dC0+ZW5kICE9IE5VTEwpCisJZnByaW50ZihvdXRwdXQsICIgZW5kOiAlZCIsIGN0eHQtPmVuZC0+bm8pOworICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKKyAgICBmb3IgKGkgPSAwO2kgPCBjdHh0LT5uYlN0YXRlczsgaSsrKSB7CisJeG1sUmVnUHJpbnRTdGF0ZShvdXRwdXQsIGN0eHQtPnN0YXRlc1tpXSk7CisgICAgfQorICAgIGZwcmludGYob3V0cHV0LCAiJWQgY291bnRlcnM6XG4iLCBjdHh0LT5uYkNvdW50ZXJzKTsKKyAgICBmb3IgKGkgPSAwO2kgPCBjdHh0LT5uYkNvdW50ZXJzOyBpKyspIHsKKwlmcHJpbnRmKG91dHB1dCwgIiAlZDogbWluICVkIG1heCAlZFxuIiwgaSwgY3R4dC0+Y291bnRlcnNbaV0ubWluLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmNvdW50ZXJzW2ldLm1heCk7CisgICAgfQorfQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqCQkgRmluaXRlIEF1dG9tYXRhIHN0cnVjdHVyZXMgbWFuaXB1bGF0aW9ucwkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHZvaWQgCit4bWxSZWdBdG9tQWRkUmFuZ2UoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxSZWdBdG9tUHRyIGF0b20sCisJICAgICAgICAgICBpbnQgbmVnLCB4bWxSZWdBdG9tVHlwZSB0eXBlLCBpbnQgc3RhcnQsIGludCBlbmQsCisJCSAgIHhtbENoYXIgKmJsb2NrTmFtZSkgeworICAgIHhtbFJlZ1JhbmdlUHRyIHJhbmdlOworCisgICAgaWYgKGF0b20gPT0gTlVMTCkgeworCUVSUk9SKCJhZGQgcmFuZ2U6IGF0b20gaXMgTlVMTCIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGF0b20tPnR5cGUgIT0gWE1MX1JFR0VYUF9SQU5HRVMpIHsKKwlFUlJPUigiYWRkIHJhbmdlOiBhdG9tIGlzIG5vdCByYW5nZXMiKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChhdG9tLT5tYXhSYW5nZXMgPT0gMCkgeworCWF0b20tPm1heFJhbmdlcyA9IDQ7CisJYXRvbS0+cmFuZ2VzID0gKHhtbFJlZ1JhbmdlUHRyICopIHhtbE1hbGxvYyhhdG9tLT5tYXhSYW5nZXMgKgorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdSYW5nZVB0cikpOworCWlmIChhdG9tLT5yYW5nZXMgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyByYW5nZXMiKTsKKwkgICAgYXRvbS0+bWF4UmFuZ2VzID0gMDsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9IGVsc2UgaWYgKGF0b20tPm5iUmFuZ2VzID49IGF0b20tPm1heFJhbmdlcykgeworCXhtbFJlZ1JhbmdlUHRyICp0bXA7CisJYXRvbS0+bWF4UmFuZ2VzICo9IDI7CisJdG1wID0gKHhtbFJlZ1JhbmdlUHRyICopIHhtbFJlYWxsb2MoYXRvbS0+cmFuZ2VzLCBhdG9tLT5tYXhSYW5nZXMgKgorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdSYW5nZVB0cikpOworCWlmICh0bXAgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyByYW5nZXMiKTsKKwkgICAgYXRvbS0+bWF4UmFuZ2VzIC89IDI7CisJICAgIHJldHVybjsKKwl9CisJYXRvbS0+cmFuZ2VzID0gdG1wOworICAgIH0KKyAgICByYW5nZSA9IHhtbFJlZ05ld1JhbmdlKGN0eHQsIG5lZywgdHlwZSwgc3RhcnQsIGVuZCk7CisgICAgaWYgKHJhbmdlID09IE5VTEwpCisJcmV0dXJuOworICAgIHJhbmdlLT5ibG9ja05hbWUgPSBibG9ja05hbWU7CisgICAgYXRvbS0+cmFuZ2VzW2F0b20tPm5iUmFuZ2VzKytdID0gcmFuZ2U7CisgICAgCit9CisKK3N0YXRpYyBpbnQKK3htbFJlZ0dldENvdW50ZXIoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaWYgKGN0eHQtPm1heENvdW50ZXJzID09IDApIHsKKwljdHh0LT5tYXhDb3VudGVycyA9IDQ7CisJY3R4dC0+Y291bnRlcnMgPSAoeG1sUmVnQ291bnRlciAqKSB4bWxNYWxsb2MoY3R4dC0+bWF4Q291bnRlcnMgKgorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdDb3VudGVyKSk7CisJaWYgKGN0eHQtPmNvdW50ZXJzID09IE5VTEwpIHsKKwkgICAgeG1sUmVnZXhwRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIGNvdW50ZXIiKTsKKwkgICAgY3R4dC0+bWF4Q291bnRlcnMgPSAwOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9IGVsc2UgaWYgKGN0eHQtPm5iQ291bnRlcnMgPj0gY3R4dC0+bWF4Q291bnRlcnMpIHsKKwl4bWxSZWdDb3VudGVyICp0bXA7CisJY3R4dC0+bWF4Q291bnRlcnMgKj0gMjsKKwl0bXAgPSAoeG1sUmVnQ291bnRlciAqKSB4bWxSZWFsbG9jKGN0eHQtPmNvdW50ZXJzLCBjdHh0LT5tYXhDb3VudGVycyAqCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdDb3VudGVyKSk7CisJaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIHhtbFJlZ2V4cEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBjb3VudGVyIik7CisJICAgIGN0eHQtPm1heENvdW50ZXJzIC89IDI7CisJICAgIHJldHVybigtMSk7CisJfQorCWN0eHQtPmNvdW50ZXJzID0gdG1wOworICAgIH0KKyAgICBjdHh0LT5jb3VudGVyc1tjdHh0LT5uYkNvdW50ZXJzXS5taW4gPSAtMTsKKyAgICBjdHh0LT5jb3VudGVyc1tjdHh0LT5uYkNvdW50ZXJzXS5tYXggPSAtMTsKKyAgICByZXR1cm4oY3R4dC0+bmJDb3VudGVycysrKTsKK30KKworc3RhdGljIGludCAKK3htbFJlZ0F0b21QdXNoKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sUmVnQXRvbVB0ciBhdG9tKSB7CisgICAgaWYgKGF0b20gPT0gTlVMTCkgeworCUVSUk9SKCJhdG9tIHB1c2g6IGF0b20gaXMgTlVMTCIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChjdHh0LT5tYXhBdG9tcyA9PSAwKSB7CisJY3R4dC0+bWF4QXRvbXMgPSA0OworCWN0eHQtPmF0b21zID0gKHhtbFJlZ0F0b21QdHIgKikgeG1sTWFsbG9jKGN0eHQtPm1heEF0b21zICoKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeG1sUmVnQXRvbVB0cikpOworCWlmIChjdHh0LT5hdG9tcyA9PSBOVUxMKSB7CisJICAgIHhtbFJlZ2V4cEVyck1lbW9yeShjdHh0LCAicHVzaGluZyBhdG9tIik7CisJICAgIGN0eHQtPm1heEF0b21zID0gMDsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfSBlbHNlIGlmIChjdHh0LT5uYkF0b21zID49IGN0eHQtPm1heEF0b21zKSB7CisJeG1sUmVnQXRvbVB0ciAqdG1wOworCWN0eHQtPm1heEF0b21zICo9IDI7CisJdG1wID0gKHhtbFJlZ0F0b21QdHIgKikgeG1sUmVhbGxvYyhjdHh0LT5hdG9tcywgY3R4dC0+bWF4QXRvbXMgKgorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdBdG9tUHRyKSk7CisJaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIHhtbFJlZ2V4cEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBjb3VudGVyIik7CisJICAgIGN0eHQtPm1heEF0b21zIC89IDI7CisJICAgIHJldHVybigtMSk7CisJfQorCWN0eHQtPmF0b21zID0gdG1wOworICAgIH0KKyAgICBhdG9tLT5ubyA9IGN0eHQtPm5iQXRvbXM7CisgICAgY3R4dC0+YXRvbXNbY3R4dC0+bmJBdG9tcysrXSA9IGF0b207CisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgdm9pZCAKK3htbFJlZ1N0YXRlQWRkVHJhbnNUbyh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFJlZ1N0YXRlUHRyIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgZnJvbSkgeworICAgIGlmICh0YXJnZXQtPm1heFRyYW5zVG8gPT0gMCkgeworCXRhcmdldC0+bWF4VHJhbnNUbyA9IDg7CisJdGFyZ2V0LT50cmFuc1RvID0gKGludCAqKSB4bWxNYWxsb2ModGFyZ2V0LT5tYXhUcmFuc1RvICoKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoaW50KSk7CisJaWYgKHRhcmdldC0+dHJhbnNUbyA9PSBOVUxMKSB7CisJICAgIHhtbFJlZ2V4cEVyck1lbW9yeShjdHh0LCAiYWRkaW5nIHRyYW5zaXRpb24iKTsKKwkgICAgdGFyZ2V0LT5tYXhUcmFuc1RvID0gMDsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9IGVsc2UgaWYgKHRhcmdldC0+bmJUcmFuc1RvID49IHRhcmdldC0+bWF4VHJhbnNUbykgeworCWludCAqdG1wOworCXRhcmdldC0+bWF4VHJhbnNUbyAqPSAyOworCXRtcCA9IChpbnQgKikgeG1sUmVhbGxvYyh0YXJnZXQtPnRyYW5zVG8sIHRhcmdldC0+bWF4VHJhbnNUbyAqCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGludCkpOworCWlmICh0bXAgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyB0cmFuc2l0aW9uIik7CisJICAgIHRhcmdldC0+bWF4VHJhbnNUbyAvPSAyOworCSAgICByZXR1cm47CisJfQorCXRhcmdldC0+dHJhbnNUbyA9IHRtcDsKKyAgICB9CisgICAgdGFyZ2V0LT50cmFuc1RvW3RhcmdldC0+bmJUcmFuc1RvXSA9IGZyb207CisgICAgdGFyZ2V0LT5uYlRyYW5zVG8rKzsKK30KKworc3RhdGljIHZvaWQgCit4bWxSZWdTdGF0ZUFkZFRyYW5zKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCwgeG1sUmVnU3RhdGVQdHIgc3RhdGUsCisJICAgICAgICAgICAgeG1sUmVnQXRvbVB0ciBhdG9tLCB4bWxSZWdTdGF0ZVB0ciB0YXJnZXQsCisJCSAgICBpbnQgY291bnRlciwgaW50IGNvdW50KSB7CisKKyAgICBpbnQgbnJ0cmFuczsKKworICAgIGlmIChzdGF0ZSA9PSBOVUxMKSB7CisJRVJST1IoImFkZCBzdGF0ZTogc3RhdGUgaXMgTlVMTCIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKHRhcmdldCA9PSBOVUxMKSB7CisJRVJST1IoImFkZCBzdGF0ZTogdGFyZ2V0IGlzIE5VTEwiKTsKKwlyZXR1cm47CisgICAgfQorICAgIC8qCisgICAgICogT3RoZXIgcm91dGluZXMgZm9sbG93IHRoZSBwaGlsb3NvcGh5ICdXaGVuIGluIGRvdWJ0LCBhZGQgYSB0cmFuc2l0aW9uJworICAgICAqIHNvIHdlIGNoZWNrIGhlcmUgd2hldGhlciBzdWNoIGEgdHJhbnNpdGlvbiBpcyBhbHJlYWR5IHByZXNlbnQgYW5kLCBpZgorICAgICAqIHNvLCBzaWxlbnRseSBpZ25vcmUgdGhpcyByZXF1ZXN0LgorICAgICAqLworCisgICAgZm9yIChucnRyYW5zID0gc3RhdGUtPm5iVHJhbnMgLSAxOyBucnRyYW5zID49IDA7IG5ydHJhbnMtLSkgeworCXhtbFJlZ1RyYW5zUHRyIHRyYW5zID0gJihzdGF0ZS0+dHJhbnNbbnJ0cmFuc10pOworCWlmICgodHJhbnMtPmF0b20gPT0gYXRvbSkgJiYKKwkgICAgKHRyYW5zLT50byA9PSB0YXJnZXQtPm5vKSAmJgorCSAgICAodHJhbnMtPmNvdW50ZXIgPT0gY291bnRlcikgJiYKKwkgICAgKHRyYW5zLT5jb3VudCA9PSBjb3VudCkpIHsKKyNpZmRlZiBERUJVR19SRUdFWFBfR1JBUEgKKwkgICAgcHJpbnRmKCJJZ25vcmluZyBkdXBsaWNhdGUgdHJhbnNpdGlvbiBmcm9tICVkIHRvICVkXG4iLAorCQkgICAgc3RhdGUtPm5vLCB0YXJnZXQtPm5vKTsKKyNlbmRpZgorCSAgICByZXR1cm47CisJfQorICAgIH0KKworICAgIGlmIChzdGF0ZS0+bWF4VHJhbnMgPT0gMCkgeworCXN0YXRlLT5tYXhUcmFucyA9IDg7CisJc3RhdGUtPnRyYW5zID0gKHhtbFJlZ1RyYW5zICopIHhtbE1hbGxvYyhzdGF0ZS0+bWF4VHJhbnMgKgorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdUcmFucykpOworCWlmIChzdGF0ZS0+dHJhbnMgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyB0cmFuc2l0aW9uIik7CisJICAgIHN0YXRlLT5tYXhUcmFucyA9IDA7CisJICAgIHJldHVybjsKKwl9CisgICAgfSBlbHNlIGlmIChzdGF0ZS0+bmJUcmFucyA+PSBzdGF0ZS0+bWF4VHJhbnMpIHsKKwl4bWxSZWdUcmFucyAqdG1wOworCXN0YXRlLT5tYXhUcmFucyAqPSAyOworCXRtcCA9ICh4bWxSZWdUcmFucyAqKSB4bWxSZWFsbG9jKHN0YXRlLT50cmFucywgc3RhdGUtPm1heFRyYW5zICoKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeG1sUmVnVHJhbnMpKTsKKwlpZiAodG1wID09IE5VTEwpIHsKKwkgICAgeG1sUmVnZXhwRXJyTWVtb3J5KGN0eHQsICJhZGRpbmcgdHJhbnNpdGlvbiIpOworCSAgICBzdGF0ZS0+bWF4VHJhbnMgLz0gMjsKKwkgICAgcmV0dXJuOworCX0KKwlzdGF0ZS0+dHJhbnMgPSB0bXA7CisgICAgfQorI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorICAgIHByaW50ZigiQWRkIHRyYW5zIGZyb20gJWQgdG8gJWQgIiwgc3RhdGUtPm5vLCB0YXJnZXQtPm5vKTsKKyAgICBpZiAoY291bnQgPT0gUkVHRVhQX0FMTF9DT1VOVEVSKQorCXByaW50ZigiYWxsIHRyYW5zaXRpb25cbiIpOworICAgIGVsc2UgaWYgKGNvdW50ID49IDApCisJcHJpbnRmKCJjb3VudCBiYXNlZCAlZFxuIiwgY291bnQpOworICAgIGVsc2UgaWYgKGNvdW50ZXIgPj0gMCkKKwlwcmludGYoImNvdW50ZWQgJWRcbiIsIGNvdW50ZXIpOworICAgIGVsc2UgaWYgKGF0b20gPT0gTlVMTCkKKwlwcmludGYoImVwc2lsb24gdHJhbnNpdGlvblxuIik7CisgICAgZWxzZSBpZiAoYXRvbSAhPSBOVUxMKSAKKyAgICAgICAgeG1sUmVnUHJpbnRBdG9tKHN0ZG91dCwgYXRvbSk7CisjZW5kaWYKKworICAgIHN0YXRlLT50cmFuc1tzdGF0ZS0+bmJUcmFuc10uYXRvbSA9IGF0b207CisgICAgc3RhdGUtPnRyYW5zW3N0YXRlLT5uYlRyYW5zXS50byA9IHRhcmdldC0+bm87CisgICAgc3RhdGUtPnRyYW5zW3N0YXRlLT5uYlRyYW5zXS5jb3VudGVyID0gY291bnRlcjsKKyAgICBzdGF0ZS0+dHJhbnNbc3RhdGUtPm5iVHJhbnNdLmNvdW50ID0gY291bnQ7CisgICAgc3RhdGUtPnRyYW5zW3N0YXRlLT5uYlRyYW5zXS5uZCA9IDA7CisgICAgc3RhdGUtPm5iVHJhbnMrKzsKKyAgICB4bWxSZWdTdGF0ZUFkZFRyYW5zVG8oY3R4dCwgdGFyZ2V0LCBzdGF0ZS0+bm8pOworfQorCitzdGF0aWMgaW50Cit4bWxSZWdTdGF0ZVB1c2goeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxSZWdTdGF0ZVB0ciBzdGF0ZSkgeworICAgIGlmIChzdGF0ZSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChjdHh0LT5tYXhTdGF0ZXMgPT0gMCkgeworCWN0eHQtPm1heFN0YXRlcyA9IDQ7CisJY3R4dC0+c3RhdGVzID0gKHhtbFJlZ1N0YXRlUHRyICopIHhtbE1hbGxvYyhjdHh0LT5tYXhTdGF0ZXMgKgorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdTdGF0ZVB0cikpOworCWlmIChjdHh0LT5zdGF0ZXMgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyBzdGF0ZSIpOworCSAgICBjdHh0LT5tYXhTdGF0ZXMgPSAwOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9IGVsc2UgaWYgKGN0eHQtPm5iU3RhdGVzID49IGN0eHQtPm1heFN0YXRlcykgeworCXhtbFJlZ1N0YXRlUHRyICp0bXA7CisJY3R4dC0+bWF4U3RhdGVzICo9IDI7CisJdG1wID0gKHhtbFJlZ1N0YXRlUHRyICopIHhtbFJlYWxsb2MoY3R4dC0+c3RhdGVzLCBjdHh0LT5tYXhTdGF0ZXMgKgorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxSZWdTdGF0ZVB0cikpOworCWlmICh0bXAgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyBzdGF0ZSIpOworCSAgICBjdHh0LT5tYXhTdGF0ZXMgLz0gMjsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJY3R4dC0+c3RhdGVzID0gdG1wOworICAgIH0KKyAgICBzdGF0ZS0+bm8gPSBjdHh0LT5uYlN0YXRlczsKKyAgICBjdHh0LT5zdGF0ZXNbY3R4dC0+bmJTdGF0ZXMrK10gPSBzdGF0ZTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sRkFHZW5lcmF0ZUFsbFRyYW5zaXRpb246CisgKiBAY3R4dDogIGEgcmVnZXhwIHBhcnNlciBjb250ZXh0CisgKiBAZnJvbTogIHRoZSBmcm9tIHN0YXRlCisgKiBAdG86ICB0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgZm9yIGJ1aWxkaW5nIGEgbmV3IG9uZQorICogQGxheDoKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGQUdlbmVyYXRlQWxsVHJhbnNpdGlvbih4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICB4bWxSZWdTdGF0ZVB0ciBmcm9tLCB4bWxSZWdTdGF0ZVB0ciB0bywKKwkJCSAgIGludCBsYXgpIHsKKyAgICBpZiAodG8gPT0gTlVMTCkgeworCXRvID0geG1sUmVnTmV3U3RhdGUoY3R4dCk7CisJeG1sUmVnU3RhdGVQdXNoKGN0eHQsIHRvKTsKKwljdHh0LT5zdGF0ZSA9IHRvOworICAgIH0KKyAgICBpZiAobGF4KQorCXhtbFJlZ1N0YXRlQWRkVHJhbnMoY3R4dCwgZnJvbSwgTlVMTCwgdG8sIC0xLCBSRUdFWFBfQUxMX0xBWF9DT1VOVEVSKTsKKyAgICBlbHNlCisJeG1sUmVnU3RhdGVBZGRUcmFucyhjdHh0LCBmcm9tLCBOVUxMLCB0bywgLTEsIFJFR0VYUF9BTExfQ09VTlRFUik7Cit9CisKKy8qKgorICogeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICogQGZyb206ICB0aGUgZnJvbSBzdGF0ZQorICogQHRvOiAgdGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGZvciBidWlsZGluZyBhIG5ldyBvbmUKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGQUdlbmVyYXRlRXBzaWxvblRyYW5zaXRpb24oeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJICAgICAgIHhtbFJlZ1N0YXRlUHRyIGZyb20sIHhtbFJlZ1N0YXRlUHRyIHRvKSB7CisgICAgaWYgKHRvID09IE5VTEwpIHsKKwl0byA9IHhtbFJlZ05ld1N0YXRlKGN0eHQpOworCXhtbFJlZ1N0YXRlUHVzaChjdHh0LCB0byk7CisJY3R4dC0+c3RhdGUgPSB0bzsKKyAgICB9CisgICAgeG1sUmVnU3RhdGVBZGRUcmFucyhjdHh0LCBmcm9tLCBOVUxMLCB0bywgLTEsIC0xKTsKK30KKworLyoqCisgKiB4bWxGQUdlbmVyYXRlQ291bnRlZEVwc2lsb25UcmFuc2l0aW9uOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICogQGZyb206ICB0aGUgZnJvbSBzdGF0ZQorICogQHRvOiAgdGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGZvciBidWlsZGluZyBhIG5ldyBvbmUKKyAqIGNvdW50ZXI6ICB0aGUgY291bnRlciBmb3IgdGhhdCB0cmFuc2l0aW9uCisgKgorICovCitzdGF0aWMgdm9pZAoreG1sRkFHZW5lcmF0ZUNvdW50ZWRFcHNpbG9uVHJhbnNpdGlvbih4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsCisJICAgIHhtbFJlZ1N0YXRlUHRyIGZyb20sIHhtbFJlZ1N0YXRlUHRyIHRvLCBpbnQgY291bnRlcikgeworICAgIGlmICh0byA9PSBOVUxMKSB7CisJdG8gPSB4bWxSZWdOZXdTdGF0ZShjdHh0KTsKKwl4bWxSZWdTdGF0ZVB1c2goY3R4dCwgdG8pOworCWN0eHQtPnN0YXRlID0gdG87CisgICAgfQorICAgIHhtbFJlZ1N0YXRlQWRkVHJhbnMoY3R4dCwgZnJvbSwgTlVMTCwgdG8sIGNvdW50ZXIsIC0xKTsKK30KKworLyoqCisgKiB4bWxGQUdlbmVyYXRlQ291bnRlZFRyYW5zaXRpb246CisgKiBAY3R4dDogIGEgcmVnZXhwIHBhcnNlciBjb250ZXh0CisgKiBAZnJvbTogIHRoZSBmcm9tIHN0YXRlCisgKiBAdG86ICB0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgZm9yIGJ1aWxkaW5nIGEgbmV3IG9uZQorICogY291bnRlcjogIHRoZSBjb3VudGVyIGZvciB0aGF0IHRyYW5zaXRpb24KKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGQUdlbmVyYXRlQ291bnRlZFRyYW5zaXRpb24oeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LAorCSAgICB4bWxSZWdTdGF0ZVB0ciBmcm9tLCB4bWxSZWdTdGF0ZVB0ciB0bywgaW50IGNvdW50ZXIpIHsKKyAgICBpZiAodG8gPT0gTlVMTCkgeworCXRvID0geG1sUmVnTmV3U3RhdGUoY3R4dCk7CisJeG1sUmVnU3RhdGVQdXNoKGN0eHQsIHRvKTsKKwljdHh0LT5zdGF0ZSA9IHRvOworICAgIH0KKyAgICB4bWxSZWdTdGF0ZUFkZFRyYW5zKGN0eHQsIGZyb20sIE5VTEwsIHRvLCAtMSwgY291bnRlcik7Cit9CisKKy8qKgorICogeG1sRkFHZW5lcmF0ZVRyYW5zaXRpb25zOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICogQGZyb206ICB0aGUgZnJvbSBzdGF0ZQorICogQHRvOiAgdGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGZvciBidWlsZGluZyBhIG5ldyBvbmUKKyAqIEBhdG9tOiAgdGhlIGF0b20gZ2VuZXJhdGluZyB0aGUgdHJhbnNpdGlvbgorICoKKyAqIFJldHVybnMgMCBpZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxGQUdlbmVyYXRlVHJhbnNpdGlvbnMoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxSZWdTdGF0ZVB0ciBmcm9tLAorCSAgICAgICAgICAgICAgICAgeG1sUmVnU3RhdGVQdHIgdG8sIHhtbFJlZ0F0b21QdHIgYXRvbSkgeworICAgIHhtbFJlZ1N0YXRlUHRyIGVuZDsKKworICAgIGlmIChhdG9tID09IE5VTEwpIHsKKwlFUlJPUigiZ2VucmF0ZSB0cmFuc2l0aW9uOiBhdG9tID09IE5VTEwiKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBpZiAoYXRvbS0+dHlwZSA9PSBYTUxfUkVHRVhQX1NVQlJFRykgeworCS8qCisJICogdGhpcyBpcyBhIHN1YmV4cHJlc3Npb24gaGFuZGxpbmcgb25lIHNob3VsZCBub3QgbmVlZCB0bworCSAqIGNyZWF0ZSBhIG5ldyBub2RlIGV4Y2VwdCBmb3IgWE1MX1JFR0VYUF9RVUFOVF9SQU5HRS4KKwkgKi8KKwlpZiAoeG1sUmVnQXRvbVB1c2goY3R4dCwgYXRvbSkgPCAwKSB7CisJICAgIHJldHVybigtMSk7CisJfQorCWlmICgodG8gIT0gTlVMTCkgJiYgKGF0b20tPnN0b3AgIT0gdG8pICYmCisJICAgIChhdG9tLT5xdWFudCAhPSBYTUxfUkVHRVhQX1FVQU5UX1JBTkdFKSkgeworCSAgICAvKgorCSAgICAgKiBHZW5lcmF0ZSBhbiBlcHNpbG9uIHRyYW5zaXRpb24gdG8gbGluayB0byB0aGUgdGFyZ2V0CisJICAgICAqLworCSAgICB4bWxGQUdlbmVyYXRlRXBzaWxvblRyYW5zaXRpb24oY3R4dCwgYXRvbS0+c3RvcCwgdG8pOworI2lmZGVmIERWCisJfSBlbHNlIGlmICgodG8gPT0gTlVMTCkgJiYgKGF0b20tPnF1YW50ICE9IFhNTF9SRUdFWFBfUVVBTlRfUkFOR0UpICYmIAorCQkgICAoYXRvbS0+cXVhbnQgIT0gWE1MX1JFR0VYUF9RVUFOVF9PTkNFKSkgeworCSAgICB0byA9IHhtbFJlZ05ld1N0YXRlKGN0eHQpOworCSAgICB4bWxSZWdTdGF0ZVB1c2goY3R4dCwgdG8pOworCSAgICBjdHh0LT5zdGF0ZSA9IHRvOworCSAgICB4bWxGQUdlbmVyYXRlRXBzaWxvblRyYW5zaXRpb24oY3R4dCwgYXRvbS0+c3RvcCwgdG8pOworI2VuZGlmCisJfQorCXN3aXRjaCAoYXRvbS0+cXVhbnQpIHsKKwkgICAgY2FzZSBYTUxfUkVHRVhQX1FVQU5UX09QVDoKKwkJYXRvbS0+cXVhbnQgPSBYTUxfUkVHRVhQX1FVQU5UX09OQ0U7CisJCS8qCisJCSAqIHRyYW5zaXRpb24gZG9uZSB0byB0aGUgc3RhdGUgYWZ0ZXIgZW5kIG9mIGF0b20uCisJCSAqICAgICAgMS4gc2V0IHRyYW5zaXRpb24gZnJvbSBhdG9tIHN0YXJ0IHRvIG5ldyBzdGF0ZQorCQkgKiAgICAgIDIuIHNldCB0cmFuc2l0aW9uIGZyb20gYXRvbSBlbmQgdG8gdGhpcyBzdGF0ZS4gCisJCSAqLworICAgICAgICAgICAgICAgIGlmICh0byA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihjdHh0LCBhdG9tLT5zdGFydCwgMCk7CisgICAgICAgICAgICAgICAgICAgIHhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihjdHh0LCBhdG9tLT5zdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihjdHh0LCBhdG9tLT5zdGFydCwgdG8pOworICAgICAgICAgICAgICAgIH0KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1JFR0VYUF9RVUFOVF9NVUxUOgorCQlhdG9tLT5xdWFudCA9IFhNTF9SRUdFWFBfUVVBTlRfT05DRTsKKwkJeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uKGN0eHQsIGF0b20tPnN0YXJ0LCBhdG9tLT5zdG9wKTsKKwkJeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uKGN0eHQsIGF0b20tPnN0b3AsIGF0b20tPnN0YXJ0KTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1JFR0VYUF9RVUFOVF9QTFVTOgorCQlhdG9tLT5xdWFudCA9IFhNTF9SRUdFWFBfUVVBTlRfT05DRTsKKwkJeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uKGN0eHQsIGF0b20tPnN0b3AsIGF0b20tPnN0YXJ0KTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1JFR0VYUF9RVUFOVF9SQU5HRTogeworCQlpbnQgY291bnRlcjsKKwkJeG1sUmVnU3RhdGVQdHIgaW50ZXIsIG5ld3N0YXRlOworCisJCS8qCisJCSAqIGNyZWF0ZSB0aGUgZmluYWwgc3RhdGUgbm93IGlmIG5lZWRlZAorCQkgKi8KKwkJaWYgKHRvICE9IE5VTEwpIHsKKwkJICAgIG5ld3N0YXRlID0gdG87CisJCX0gZWxzZSB7CisJCSAgICBuZXdzdGF0ZSA9IHhtbFJlZ05ld1N0YXRlKGN0eHQpOworCQkgICAgeG1sUmVnU3RhdGVQdXNoKGN0eHQsIG5ld3N0YXRlKTsKKwkJfQorCisJCS8qCisJCSAqIFRoZSBwcmluY2lwbGUgaGVyZSBpcyB0byB1c2UgY291bnRlZCB0cmFuc2l0aW9uCisJCSAqIHRvIGF2b2lkIGV4cGxvc2lvbiBpbiB0aGUgbnVtYmVyIG9mIHN0YXRlcyBpbiB0aGUKKwkJICogZ3JhcGguIFRoaXMgaXMgY2xlYXJseSBtb3JlIGNvbXBsZXggYnV0IHNob3VsZCBub3QKKwkJICogYmUgZXhwbG9pdGFibGUgYXQgcnVudGltZS4KKwkJICovCisJCWlmICgoYXRvbS0+bWluID09IDApICYmIChhdG9tLT5zdGFydDAgPT0gTlVMTCkpIHsKKwkJICAgIHhtbFJlZ0F0b21QdHIgY29weTsKKwkJICAgIC8qCisJCSAgICAgKiBkdXBsaWNhdGUgYSB0cmFuc2l0aW9uIGJhc2VkIG9uIGF0b20gdG8gY291bnQgbmV4dAorCQkgICAgICogb2NjdXJlbmNlcyBhZnRlciAxLiBXZSBjYW5ub3QgbG9vcCB0byBhdG9tLT5zdGFydAorCQkgICAgICogZGlyZWN0bHkgYmVjYXVzZSB3ZSBuZWVkIGFuIGVwc2lsb24gdHJhbnNpdGlvbiB0byAKKwkJICAgICAqIG5ld3N0YXRlLgorCQkgICAgICovCisJCSAgICAgLyogPz8/PyBGb3Igc29tZSByZWFzb24gaXQgc2VlbXMgd2UgbmV2ZXIgcmVhY2ggdGhhdAorCQkgICAgICAgIGNhc2UsIEkgc3VwcG9zZSB0aGlzIGdvdCBvcHRpbWl6ZWQgb3V0IGJlZm9yZSB3aGVuCisJCQlidWlsZGluZyB0aGUgYXV0b21hdGEgKi8KKwkJICAgIGNvcHkgPSB4bWxSZWdDb3B5QXRvbShjdHh0LCBhdG9tKTsKKwkJICAgIGlmIChjb3B5ID09IE5VTEwpCisJCSAgICAgICAgcmV0dXJuKC0xKTsKKwkJICAgIGNvcHktPnF1YW50ID0gWE1MX1JFR0VYUF9RVUFOVF9PTkNFOworCQkgICAgY29weS0+bWluID0gMDsKKwkJICAgIGNvcHktPm1heCA9IDA7CisKKwkJICAgIGlmICh4bWxGQUdlbmVyYXRlVHJhbnNpdGlvbnMoY3R4dCwgYXRvbS0+c3RhcnQsIE5VTEwsIGNvcHkpCisJCSAgICAgICAgPCAwKQorCQkJcmV0dXJuKC0xKTsKKwkJICAgIGludGVyID0gY3R4dC0+c3RhdGU7CisJCSAgICBjb3VudGVyID0geG1sUmVnR2V0Q291bnRlcihjdHh0KTsKKwkJICAgIGN0eHQtPmNvdW50ZXJzW2NvdW50ZXJdLm1pbiA9IGF0b20tPm1pbiAtIDE7CisJCSAgICBjdHh0LT5jb3VudGVyc1tjb3VudGVyXS5tYXggPSBhdG9tLT5tYXggLSAxOworCQkgICAgLyogY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB3ZSBzZWUgaXQgYWdhaW4gKi8KKwkJICAgIHhtbEZBR2VuZXJhdGVDb3VudGVkRXBzaWxvblRyYW5zaXRpb24oY3R4dCwgaW50ZXIsCisJCQkJCQkgICBhdG9tLT5zdG9wLCBjb3VudGVyKTsKKwkJICAgIC8qIGFsbG93IGEgd2F5IG91dCBiYXNlZCBvbiB0aGUgY291bnQgKi8KKwkJICAgIHhtbEZBR2VuZXJhdGVDb3VudGVkVHJhbnNpdGlvbihjdHh0LCBpbnRlciwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0YXRlLCBjb3VudGVyKTsKKwkJICAgIC8qIGFuZCBhbHNvIGFsbG93IGEgZGlyZWN0IGV4aXQgZm9yIDAgKi8KKwkJICAgIHhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihjdHh0LCBhdG9tLT5zdGFydCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdGF0ZSk7CisJCX0gZWxzZSB7CisJCSAgICAvKgorCQkgICAgICogZWl0aGVyIHdlIG5lZWQgdGhlIGF0b20gYXQgbGVhc3Qgb25jZSBvciB0aGVyZQorCQkgICAgICogaXMgYW4gYXRvbS0+c3RhcnQwIGFsbG93aW5nIHRvIGVhc2lsbHkgcGx1ZyB0aGUKKwkJICAgICAqIGVwc2lsb24gdHJhbnNpdGlvbi4KKwkJICAgICAqLworCQkgICAgY291bnRlciA9IHhtbFJlZ0dldENvdW50ZXIoY3R4dCk7CisJCSAgICBjdHh0LT5jb3VudGVyc1tjb3VudGVyXS5taW4gPSBhdG9tLT5taW4gLSAxOworCQkgICAgY3R4dC0+Y291bnRlcnNbY291bnRlcl0ubWF4ID0gYXRvbS0+bWF4IC0gMTsKKwkJICAgIC8qIGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgd2Ugc2VlIGl0IGFnYWluICovCisJCSAgICB4bWxGQUdlbmVyYXRlQ291bnRlZEVwc2lsb25UcmFuc2l0aW9uKGN0eHQsIGF0b20tPnN0b3AsCisJCQkJCQkgICBhdG9tLT5zdGFydCwgY291bnRlcik7CisJCSAgICAvKiBhbGxvdyBhIHdheSBvdXQgYmFzZWQgb24gdGhlIGNvdW50ICovCisJCSAgICB4bWxGQUdlbmVyYXRlQ291bnRlZFRyYW5zaXRpb24oY3R4dCwgYXRvbS0+c3RvcCwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0YXRlLCBjb3VudGVyKTsKKwkJICAgIC8qIGFuZCBpZiBuZWVkZWQgYWxsb3cgYSBkaXJlY3QgZXhpdCBmb3IgMCAqLworCQkgICAgaWYgKGF0b20tPm1pbiA9PSAwKQorCQkJeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uKGN0eHQsIGF0b20tPnN0YXJ0MCwKKwkJCQkJCSAgICAgICBuZXdzdGF0ZSk7CisKKwkJfQorCQlhdG9tLT5taW4gPSAwOworCQlhdG9tLT5tYXggPSAwOworCQlhdG9tLT5xdWFudCA9IFhNTF9SRUdFWFBfUVVBTlRfT05DRTsKKwkJY3R4dC0+c3RhdGUgPSBuZXdzdGF0ZTsKKwkgICAgfQorCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisJcmV0dXJuKDApOworICAgIH0gCisgICAgaWYgKChhdG9tLT5taW4gPT0gMCkgJiYgKGF0b20tPm1heCA9PSAwKSAmJgorICAgICAgICAgICAgICAgKGF0b20tPnF1YW50ID09IFhNTF9SRUdFWFBfUVVBTlRfUkFOR0UpKSB7CisgICAgICAgIC8qCisJICogd2UgY2FuIGRpc2NhcmQgdGhlIGF0b20gYW5kIGdlbmVyYXRlIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBpbnN0ZWFkCisJICovCisJaWYgKHRvID09IE5VTEwpIHsKKwkgICAgdG8gPSB4bWxSZWdOZXdTdGF0ZShjdHh0KTsKKwkgICAgaWYgKHRvICE9IE5VTEwpCisJCXhtbFJlZ1N0YXRlUHVzaChjdHh0LCB0byk7CisJICAgIGVsc2UgeworCQlyZXR1cm4oLTEpOworCSAgICB9CisJfQorCXhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihjdHh0LCBmcm9tLCB0byk7CisJY3R4dC0+c3RhdGUgPSB0bzsKKwl4bWxSZWdGcmVlQXRvbShhdG9tKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmICh0byA9PSBOVUxMKSB7CisJdG8gPSB4bWxSZWdOZXdTdGF0ZShjdHh0KTsKKwlpZiAodG8gIT0gTlVMTCkKKwkgICAgeG1sUmVnU3RhdGVQdXNoKGN0eHQsIHRvKTsKKwllbHNlIHsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfSAKKyAgICBlbmQgPSB0bzsKKyAgICBpZiAoKGF0b20tPnF1YW50ID09IFhNTF9SRUdFWFBfUVVBTlRfTVVMVCkgfHwgCisgICAgICAgIChhdG9tLT5xdWFudCA9PSBYTUxfUkVHRVhQX1FVQU5UX1BMVVMpKSB7CisJLyoKKwkgKiBEbyBub3QgcG9sbHV0ZSB0aGUgdGFyZ2V0IHN0YXRlIGJ5IGFkZGluZyB0cmFuc2l0aW9ucyBmcm9tCisJICogaXQgYXMgaXQgaXMgbGlrZWx5IHRvIGJlIHRoZSBzaGFyZWQgdGFyZ2V0IG9mIG11bHRpcGxlIGJyYW5jaGVzLgorCSAqIFNvIGlzb2xhdGUgd2l0aCBhbiBlcHNpbG9uIHRyYW5zaXRpb24uCisJICovCisgICAgICAgIHhtbFJlZ1N0YXRlUHRyIHRtcDsKKwkKKwl0bXAgPSB4bWxSZWdOZXdTdGF0ZShjdHh0KTsKKwlpZiAodG1wICE9IE5VTEwpCisJICAgIHhtbFJlZ1N0YXRlUHVzaChjdHh0LCB0bXApOworCWVsc2UgeworCSAgICByZXR1cm4oLTEpOworCX0KKwl4bWxGQUdlbmVyYXRlRXBzaWxvblRyYW5zaXRpb24oY3R4dCwgdG1wLCB0byk7CisJdG8gPSB0bXA7CisgICAgfQorICAgIGlmICh4bWxSZWdBdG9tUHVzaChjdHh0LCBhdG9tKSA8IDApIHsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB4bWxSZWdTdGF0ZUFkZFRyYW5zKGN0eHQsIGZyb20sIGF0b20sIHRvLCAtMSwgLTEpOworICAgIGN0eHQtPnN0YXRlID0gZW5kOworICAgIHN3aXRjaCAoYXRvbS0+cXVhbnQpIHsKKwljYXNlIFhNTF9SRUdFWFBfUVVBTlRfT1BUOgorCSAgICBhdG9tLT5xdWFudCA9IFhNTF9SRUdFWFBfUVVBTlRfT05DRTsKKwkgICAgeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uKGN0eHQsIGZyb20sIHRvKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfUkVHRVhQX1FVQU5UX01VTFQ6CisJICAgIGF0b20tPnF1YW50ID0gWE1MX1JFR0VYUF9RVUFOVF9PTkNFOworCSAgICB4bWxGQUdlbmVyYXRlRXBzaWxvblRyYW5zaXRpb24oY3R4dCwgZnJvbSwgdG8pOworCSAgICB4bWxSZWdTdGF0ZUFkZFRyYW5zKGN0eHQsIHRvLCBhdG9tLCB0bywgLTEsIC0xKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfUkVHRVhQX1FVQU5UX1BMVVM6CisJICAgIGF0b20tPnF1YW50ID0gWE1MX1JFR0VYUF9RVUFOVF9PTkNFOworCSAgICB4bWxSZWdTdGF0ZUFkZFRyYW5zKGN0eHQsIHRvLCBhdG9tLCB0bywgLTEsIC0xKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfUkVHRVhQX1FVQU5UX1JBTkdFOiAKKyNpZiBEVl90ZXN0CisJICAgIGlmIChhdG9tLT5taW4gPT0gMCkgeworCQl4bWxGQUdlbmVyYXRlRXBzaWxvblRyYW5zaXRpb24oY3R4dCwgZnJvbSwgdG8pOworCSAgICB9CisjZW5kaWYKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxGQVJlZHVjZUVwc2lsb25UcmFuc2l0aW9uczoKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqIEBmcm9tbnI6ICB0aGUgZnJvbSBzdGF0ZQorICogQHRvbnI6ICB0aGUgdG8gc3RhdGUgCisgKiBAY291bnRlcjogIHNob3VsZCB0aGF0IHRyYW5zaXRpb24gYmUgYXNzb2NpYXRlZCB0byBhIGNvdW50ZWQKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGQVJlZHVjZUVwc2lsb25UcmFuc2l0aW9ucyh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsIGludCBmcm9tbnIsCisJICAgICAgICAgICAgICAgICAgICAgIGludCB0b25yLCBpbnQgY291bnRlcikgeworICAgIGludCB0cmFuc25yOworICAgIHhtbFJlZ1N0YXRlUHRyIGZyb207CisgICAgeG1sUmVnU3RhdGVQdHIgdG87CisKKyNpZmRlZiBERUJVR19SRUdFWFBfR1JBUEgKKyAgICBwcmludGYoInhtbEZBUmVkdWNlRXBzaWxvblRyYW5zaXRpb25zKCVkLCAlZClcbiIsIGZyb21uciwgdG9ucik7CisjZW5kaWYKKyAgICBmcm9tID0gY3R4dC0+c3RhdGVzW2Zyb21ucl07CisgICAgaWYgKGZyb20gPT0gTlVMTCkKKwlyZXR1cm47CisgICAgdG8gPSBjdHh0LT5zdGF0ZXNbdG9ucl07CisgICAgaWYgKHRvID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmICgodG8tPm1hcmsgPT0gWE1MX1JFR0VYUF9NQVJLX1NUQVJUKSB8fAorCSh0by0+bWFyayA9PSBYTUxfUkVHRVhQX01BUktfVklTSVRFRCkpCisJcmV0dXJuOworCisgICAgdG8tPm1hcmsgPSBYTUxfUkVHRVhQX01BUktfVklTSVRFRDsKKyAgICBpZiAodG8tPnR5cGUgPT0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkgeworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorCXByaW50ZigiU3RhdGUgJWQgaXMgZmluYWwsIHNvICVkIGJlY29tZXMgZmluYWxcbiIsIHRvbnIsIGZyb21ucik7CisjZW5kaWYKKwlmcm9tLT50eXBlID0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURTsKKyAgICB9CisgICAgZm9yICh0cmFuc25yID0gMDt0cmFuc25yIDwgdG8tPm5iVHJhbnM7dHJhbnNucisrKSB7CisgICAgICAgIGlmICh0by0+dHJhbnNbdHJhbnNucl0udG8gPCAwKQorCSAgICBjb250aW51ZTsKKwlpZiAodG8tPnRyYW5zW3RyYW5zbnJdLmF0b20gPT0gTlVMTCkgeworCSAgICAvKgorCSAgICAgKiBEb24ndCByZW1vdmUgY291bnRlZCB0cmFuc2l0aW9ucworCSAgICAgKiBEb24ndCBsb29wIGVpdGhlcgorCSAgICAgKi8KKwkgICAgaWYgKHRvLT50cmFuc1t0cmFuc25yXS50byAhPSBmcm9tbnIpIHsKKwkJaWYgKHRvLT50cmFuc1t0cmFuc25yXS5jb3VudCA+PSAwKSB7CisJCSAgICBpbnQgbmV3dG8gPSB0by0+dHJhbnNbdHJhbnNucl0udG87CisKKwkJICAgIHhtbFJlZ1N0YXRlQWRkVHJhbnMoY3R4dCwgZnJvbSwgTlVMTCwKKwkJCQkJY3R4dC0+c3RhdGVzW25ld3RvXSwgCisJCQkJCS0xLCB0by0+dHJhbnNbdHJhbnNucl0uY291bnQpOworCQl9IGVsc2UgeworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorCQkgICAgcHJpbnRmKCJGb3VuZCBlcHNpbG9uIHRyYW5zICVkIGZyb20gJWQgdG8gJWRcbiIsCisJCQkgICB0cmFuc25yLCB0b25yLCB0by0+dHJhbnNbdHJhbnNucl0udG8pOworI2VuZGlmCisJCSAgICBpZiAodG8tPnRyYW5zW3RyYW5zbnJdLmNvdW50ZXIgPj0gMCkgeworCQkJeG1sRkFSZWR1Y2VFcHNpbG9uVHJhbnNpdGlvbnMoY3R4dCwgZnJvbW5yLAorCQkJCQkgICAgICB0by0+dHJhbnNbdHJhbnNucl0udG8sCisJCQkJCSAgICAgIHRvLT50cmFuc1t0cmFuc25yXS5jb3VudGVyKTsKKwkJICAgIH0gZWxzZSB7CisJCQl4bWxGQVJlZHVjZUVwc2lsb25UcmFuc2l0aW9ucyhjdHh0LCBmcm9tbnIsCisJCQkJCSAgICAgIHRvLT50cmFuc1t0cmFuc25yXS50bywKKwkJCQkJICAgICAgY291bnRlcik7CisJCSAgICB9CisJCX0KKwkgICAgfQorCX0gZWxzZSB7CisJICAgIGludCBuZXd0byA9IHRvLT50cmFuc1t0cmFuc25yXS50bzsKKworCSAgICBpZiAodG8tPnRyYW5zW3RyYW5zbnJdLmNvdW50ZXIgPj0gMCkgeworCQl4bWxSZWdTdGF0ZUFkZFRyYW5zKGN0eHQsIGZyb20sIHRvLT50cmFuc1t0cmFuc25yXS5hdG9tLCAKKwkJCQkgICAgY3R4dC0+c3RhdGVzW25ld3RvXSwgCisJCQkJICAgIHRvLT50cmFuc1t0cmFuc25yXS5jb3VudGVyLCAtMSk7CisJICAgIH0gZWxzZSB7CisJCXhtbFJlZ1N0YXRlQWRkVHJhbnMoY3R4dCwgZnJvbSwgdG8tPnRyYW5zW3RyYW5zbnJdLmF0b20sIAorCQkJCSAgICBjdHh0LT5zdGF0ZXNbbmV3dG9dLCBjb3VudGVyLCAtMSk7CisJICAgIH0KKwl9CisgICAgfQorICAgIHRvLT5tYXJrID0gWE1MX1JFR0VYUF9NQVJLX05PUk1BTDsKK30KKworLyoqCisgKiB4bWxGQUVsaW1pbmF0ZVNpbXBsZUVwc2lsb25UcmFuc2l0aW9uczoKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBFbGltaW5hdGluZyBnZW5lcmFsIGVwc2lsb24gdHJhbnNpdGlvbnMgY2FuIGdldCBjb3N0bHkgaW4gdGhlIGdlbmVyYWwgCisgKiBhbGdvcml0aG0gZHVlIHRvIHRoZSBsYXJnZSBhbW91bnQgb2YgZ2VuZXJhdGVkIG5ldyB0cmFuc2l0aW9ucyBhbmQKKyAqIGFzc29jaWF0ZWQgY29tcGFyaXNvbnMuIEhvd2V2ZXIgZm9yIHNpbXBsZSBlcHNpbG9uIHRyYW5zaXRpb24gdXNlZCBqdXN0CisgKiB0byBzZXBhcmF0ZSBidWlsZGluZyBibG9ja3Mgd2hlbiBnZW5lcmF0aW5nIHRoZSBhdXRvbWF0YSB0aGlzIGNhbiBiZQorICogcmVkdWNlZCB0byBzdGF0ZSBlbGltaW5hdGlvbjoKKyAqICAgIC0gaWYgdGhlcmUgZXhpc3RzIGFuIGVwc2lsb24gZnJvbSBYIHRvIFkKKyAqICAgIC0gaWYgdGhlcmUgaXMgbm8gb3RoZXIgdHJhbnNpdGlvbiBmcm9tIFgKKyAqIHRoZW4gWCBhbmQgWSBhcmUgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgYW5kIFggY2FuIGJlIGVsaW1pbmF0ZWQKKyAqIElmIFggaXMgdGhlIHN0YXJ0IHN0YXRlIHRoZW4gbWFrZSBZIHRoZSBzdGFydCBzdGF0ZSwgZWxzZSByZXBsYWNlIHRoZQorICogdGFyZ2V0IG9mIGFsbCB0cmFuc2l0aW9ucyB0byBYIGJ5IHRyYW5zaXRpb25zIHRvIFkuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGQUVsaW1pbmF0ZVNpbXBsZUVwc2lsb25UcmFuc2l0aW9ucyh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgc3RhdGVuciwgaSwgaiwgbmV3dG87CisgICAgeG1sUmVnU3RhdGVQdHIgc3RhdGUsIHRtcDsKKworICAgIGZvciAoc3RhdGVuciA9IDA7c3RhdGVuciA8IGN0eHQtPm5iU3RhdGVzO3N0YXRlbnIrKykgeworCXN0YXRlID0gY3R4dC0+c3RhdGVzW3N0YXRlbnJdOworCWlmIChzdGF0ZSA9PSBOVUxMKQorCSAgICBjb250aW51ZTsKKwlpZiAoc3RhdGUtPm5iVHJhbnMgIT0gMSkKKwkgICAgY29udGludWU7CisJaWYgKHN0YXRlLT50eXBlID09IFhNTF9SRUdFWFBfVU5SRUFDSF9TVEFURSkKKwkgICAgY29udGludWU7CisJLyogaXMgdGhlIG9ubHkgdHJhbnNpdGlvbiBvdXQgYSBiYXNpYyB0cmFuc2l0aW9uICovCisJaWYgKChzdGF0ZS0+dHJhbnNbMF0uYXRvbSA9PSBOVUxMKSAmJgorCSAgICAoc3RhdGUtPnRyYW5zWzBdLnRvID49IDApICYmCisJICAgIChzdGF0ZS0+dHJhbnNbMF0udG8gIT0gc3RhdGVucikgJiYKKwkgICAgKHN0YXRlLT50cmFuc1swXS5jb3VudGVyIDwgMCkgJiYKKwkgICAgKHN0YXRlLT50cmFuc1swXS5jb3VudCA8IDApKSB7CisJICAgIG5ld3RvID0gc3RhdGUtPnRyYW5zWzBdLnRvOworCisgICAgICAgICAgICBpZiAoc3RhdGUtPnR5cGUgPT0gWE1MX1JFR0VYUF9TVEFSVF9TVEFURSkgeworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorCQlwcmludGYoIkZvdW5kIHNpbXBsZSBlcHNpbG9uIHRyYW5zIGZyb20gc3RhcnQgJWQgdG8gJWRcbiIsCisJCSAgICAgICBzdGF0ZW5yLCBuZXd0byk7CisjZW5kaWYgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyNpZmRlZiBERUJVR19SRUdFWFBfR1JBUEgKKwkJcHJpbnRmKCJGb3VuZCBzaW1wbGUgZXBzaWxvbiB0cmFucyBmcm9tICVkIHRvICVkXG4iLAorCQkgICAgICAgc3RhdGVuciwgbmV3dG8pOworI2VuZGlmICAgICAKKwkgICAgICAgIGZvciAoaSA9IDA7aSA8IHN0YXRlLT5uYlRyYW5zVG87aSsrKSB7CisJCSAgICB0bXAgPSBjdHh0LT5zdGF0ZXNbc3RhdGUtPnRyYW5zVG9baV1dOworCQkgICAgZm9yIChqID0gMDtqIDwgdG1wLT5uYlRyYW5zO2orKykgeworCQkJaWYgKHRtcC0+dHJhbnNbal0udG8gPT0gc3RhdGVucikgeworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorCQkJICAgIHByaW50ZigiQ2hhbmdlZCB0cmFuc2l0aW9uICVkIG9uICVkIHRvIGdvIHRvICVkXG4iLAorCQkJCSAgIGosIHRtcC0+bm8sIG5ld3RvKTsKKyNlbmRpZiAgICAgCisJCQkgICAgdG1wLT50cmFuc1tqXS50byA9IC0xOworCQkJICAgIHhtbFJlZ1N0YXRlQWRkVHJhbnMoY3R4dCwgdG1wLCB0bXAtPnRyYW5zW2pdLmF0b20sCisJCQkgICAgCQkJY3R4dC0+c3RhdGVzW25ld3RvXSwKKwkJCQkJICAgICAgICB0bXAtPnRyYW5zW2pdLmNvdW50ZXIsCisJCQkJCQl0bXAtPnRyYW5zW2pdLmNvdW50KTsKKwkJCX0KKwkJICAgIH0KKwkJfQorCQlpZiAoc3RhdGUtPnR5cGUgPT0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkKKwkJICAgIGN0eHQtPnN0YXRlc1tuZXd0b10tPnR5cGUgPSBYTUxfUkVHRVhQX0ZJTkFMX1NUQVRFOworCQkvKiBlbGltaW5hdGUgdGhlIHRyYW5zaXRpb24gY29tcGxldGVseSAqLworCQlzdGF0ZS0+bmJUcmFucyA9IDA7CisKKyAgICAgICAgICAgICAgICBzdGF0ZS0+dHlwZSA9IFhNTF9SRUdFWFBfVU5SRUFDSF9TVEFURTsKKworCSAgICB9CisgICAgICAgICAgICAKKwl9CisgICAgfQorfQorLyoqCisgKiB4bWxGQUVsaW1pbmF0ZUVwc2lsb25UcmFuc2l0aW9uczoKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGQUVsaW1pbmF0ZUVwc2lsb25UcmFuc2l0aW9ucyh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgc3RhdGVuciwgdHJhbnNucjsKKyAgICB4bWxSZWdTdGF0ZVB0ciBzdGF0ZTsKKyAgICBpbnQgaGFzX2Vwc2lsb247CisKKyAgICBpZiAoY3R4dC0+c3RhdGVzID09IE5VTEwpIHJldHVybjsKKworICAgIC8qCisgICAgICogRWxpbWluYXRlIHNpbXBsZSBlcHNpbG9uIHRyYW5zaXRpb24gYW5kIHRoZSBhc3NvY2lhdGVkIHVucmVhY2hhYmxlCisgICAgICogc3RhdGVzLgorICAgICAqLworICAgIHhtbEZBRWxpbWluYXRlU2ltcGxlRXBzaWxvblRyYW5zaXRpb25zKGN0eHQpOworICAgIGZvciAoc3RhdGVuciA9IDA7c3RhdGVuciA8IGN0eHQtPm5iU3RhdGVzO3N0YXRlbnIrKykgeworCXN0YXRlID0gY3R4dC0+c3RhdGVzW3N0YXRlbnJdOworCWlmICgoc3RhdGUgIT0gTlVMTCkgJiYgKHN0YXRlLT50eXBlID09IFhNTF9SRUdFWFBfVU5SRUFDSF9TVEFURSkpIHsKKyNpZmRlZiBERUJVR19SRUdFWFBfR1JBUEgKKwkgICAgcHJpbnRmKCJSZW1vdmVkIHVucmVhY2hhYmxlIHN0YXRlICVkXG4iLCBzdGF0ZW5yKTsKKyNlbmRpZgorCSAgICB4bWxSZWdGcmVlU3RhdGUoc3RhdGUpOworCSAgICBjdHh0LT5zdGF0ZXNbc3RhdGVucl0gPSBOVUxMOworCX0KKyAgICB9CisKKyAgICBoYXNfZXBzaWxvbiA9IDA7CisKKyAgICAvKgorICAgICAqIEJ1aWxkIHRoZSBjb21wbGV0ZWQgdHJhbnNpdGlvbnMgYnlwYXNzaW5nIHRoZSBlcHNpbG9ucworICAgICAqIFVzZSBhIG1hcmtpbmcgYWxnb3JpdGhtIHRvIGF2b2lkIGxvb3BzCisgICAgICogTWFyayBzaW5rIHN0YXRlcyB0b28uCisgICAgICogUHJvY2VzcyBmcm9tIHRoZSBsYXRlc3RzIHN0YXRlcyBiYWNrd2FyZCB0byB0aGUgc3RhcnQgd2hlbgorICAgICAqIHRoZXJlIGlzIGxvbmcgY2FzY2FkaW5nIGVwc2lsb24gY2hhaW5zIHRoaXMgbWluaW1pemUgdGhlCisgICAgICogcmVjdXJzaW9ucyBhbmQgdHJhbnNpdGlvbiBjb21wYXJlcyB3aGVuIGFkZGluZyB0aGUgbmV3IG9uZXMKKyAgICAgKi8KKyAgICBmb3IgKHN0YXRlbnIgPSBjdHh0LT5uYlN0YXRlcyAtIDE7c3RhdGVuciA+PSAwO3N0YXRlbnItLSkgeworCXN0YXRlID0gY3R4dC0+c3RhdGVzW3N0YXRlbnJdOworCWlmIChzdGF0ZSA9PSBOVUxMKQorCSAgICBjb250aW51ZTsKKwlpZiAoKHN0YXRlLT5uYlRyYW5zID09IDApICYmCisJICAgIChzdGF0ZS0+dHlwZSAhPSBYTUxfUkVHRVhQX0ZJTkFMX1NUQVRFKSkgeworCSAgICBzdGF0ZS0+dHlwZSA9IFhNTF9SRUdFWFBfU0lOS19TVEFURTsKKwl9CisJZm9yICh0cmFuc25yID0gMDt0cmFuc25yIDwgc3RhdGUtPm5iVHJhbnM7dHJhbnNucisrKSB7CisJICAgIGlmICgoc3RhdGUtPnRyYW5zW3RyYW5zbnJdLmF0b20gPT0gTlVMTCkgJiYKKwkJKHN0YXRlLT50cmFuc1t0cmFuc25yXS50byA+PSAwKSkgeworCQlpZiAoc3RhdGUtPnRyYW5zW3RyYW5zbnJdLnRvID09IHN0YXRlbnIpIHsKKwkJICAgIHN0YXRlLT50cmFuc1t0cmFuc25yXS50byA9IC0xOworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorCQkgICAgcHJpbnRmKCJSZW1vdmVkIGxvb3BiYWNrIGVwc2lsb24gdHJhbnMgJWQgb24gJWRcbiIsCisJCQkgICB0cmFuc25yLCBzdGF0ZW5yKTsKKyNlbmRpZgorCQl9IGVsc2UgaWYgKHN0YXRlLT50cmFuc1t0cmFuc25yXS5jb3VudCA8IDApIHsKKwkJICAgIGludCBuZXd0byA9IHN0YXRlLT50cmFuc1t0cmFuc25yXS50bzsKKworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorCQkgICAgcHJpbnRmKCJGb3VuZCBlcHNpbG9uIHRyYW5zICVkIGZyb20gJWQgdG8gJWRcbiIsCisJCQkgICB0cmFuc25yLCBzdGF0ZW5yLCBuZXd0byk7CisjZW5kaWYKKwkJICAgIGhhc19lcHNpbG9uID0gMTsKKwkJICAgIHN0YXRlLT50cmFuc1t0cmFuc25yXS50byA9IC0yOworCQkgICAgc3RhdGUtPm1hcmsgPSBYTUxfUkVHRVhQX01BUktfU1RBUlQ7CisJCSAgICB4bWxGQVJlZHVjZUVwc2lsb25UcmFuc2l0aW9ucyhjdHh0LCBzdGF0ZW5yLAorCQkJCSAgICAgIG5ld3RvLCBzdGF0ZS0+dHJhbnNbdHJhbnNucl0uY291bnRlcik7CisJCSAgICBzdGF0ZS0+bWFyayA9IFhNTF9SRUdFWFBfTUFSS19OT1JNQUw7CisjaWZkZWYgREVCVUdfUkVHRVhQX0dSQVBICisJCX0gZWxzZSB7CisJCSAgICBwcmludGYoIkZvdW5kIGNvdW50ZWQgdHJhbnNpdGlvbiAlZCBvbiAlZFxuIiwKKwkJCSAgIHRyYW5zbnIsIHN0YXRlbnIpOworI2VuZGlmCisJICAgICAgICB9CisJICAgIH0KKwl9CisgICAgfQorICAgIC8qCisgICAgICogRWxpbWluYXRlIHRoZSBlcHNpbG9uIHRyYW5zaXRpb25zCisgICAgICovCisgICAgaWYgKGhhc19lcHNpbG9uKSB7CisJZm9yIChzdGF0ZW5yID0gMDtzdGF0ZW5yIDwgY3R4dC0+bmJTdGF0ZXM7c3RhdGVucisrKSB7CisJICAgIHN0YXRlID0gY3R4dC0+c3RhdGVzW3N0YXRlbnJdOworCSAgICBpZiAoc3RhdGUgPT0gTlVMTCkKKwkJY29udGludWU7CisJICAgIGZvciAodHJhbnNuciA9IDA7dHJhbnNuciA8IHN0YXRlLT5uYlRyYW5zO3RyYW5zbnIrKykgeworCQl4bWxSZWdUcmFuc1B0ciB0cmFucyA9ICYoc3RhdGUtPnRyYW5zW3RyYW5zbnJdKTsKKwkJaWYgKCh0cmFucy0+YXRvbSA9PSBOVUxMKSAmJgorCQkgICAgKHRyYW5zLT5jb3VudCA8IDApICYmCisJCSAgICAodHJhbnMtPnRvID49IDApKSB7CisJCSAgICB0cmFucy0+dG8gPSAtMTsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKworICAgIC8qCisgICAgICogVXNlIHRoaXMgcGFzcyB0byBkZXRlY3QgdW5yZWFjaGFibGUgc3RhdGVzIHRvbworICAgICAqLworICAgIGZvciAoc3RhdGVuciA9IDA7c3RhdGVuciA8IGN0eHQtPm5iU3RhdGVzO3N0YXRlbnIrKykgeworCXN0YXRlID0gY3R4dC0+c3RhdGVzW3N0YXRlbnJdOworCWlmIChzdGF0ZSAhPSBOVUxMKQorCSAgICBzdGF0ZS0+cmVhY2hlZCA9IFhNTF9SRUdFWFBfTUFSS19OT1JNQUw7CisgICAgfQorICAgIHN0YXRlID0gY3R4dC0+c3RhdGVzWzBdOworICAgIGlmIChzdGF0ZSAhPSBOVUxMKQorCXN0YXRlLT5yZWFjaGVkID0gWE1MX1JFR0VYUF9NQVJLX1NUQVJUOworICAgIHdoaWxlIChzdGF0ZSAhPSBOVUxMKSB7CisJeG1sUmVnU3RhdGVQdHIgdGFyZ2V0ID0gTlVMTDsKKwlzdGF0ZS0+cmVhY2hlZCA9IFhNTF9SRUdFWFBfTUFSS19WSVNJVEVEOworCS8qCisJICogTWFyayBhbGwgc3RhdGVzIHJlYWNoYWJsZSBmcm9tIHRoZSBjdXJyZW50IHJlYWNoYWJsZSBzdGF0ZQorCSAqLworCWZvciAodHJhbnNuciA9IDA7dHJhbnNuciA8IHN0YXRlLT5uYlRyYW5zO3RyYW5zbnIrKykgeworCSAgICBpZiAoKHN0YXRlLT50cmFuc1t0cmFuc25yXS50byA+PSAwKSAmJgorCQkoKHN0YXRlLT50cmFuc1t0cmFuc25yXS5hdG9tICE9IE5VTEwpIHx8CisJCSAoc3RhdGUtPnRyYW5zW3RyYW5zbnJdLmNvdW50ID49IDApKSkgeworCQlpbnQgbmV3dG8gPSBzdGF0ZS0+dHJhbnNbdHJhbnNucl0udG87CisKKwkJaWYgKGN0eHQtPnN0YXRlc1tuZXd0b10gPT0gTlVMTCkKKwkJICAgIGNvbnRpbnVlOworCQlpZiAoY3R4dC0+c3RhdGVzW25ld3RvXS0+cmVhY2hlZCA9PSBYTUxfUkVHRVhQX01BUktfTk9STUFMKSB7CisJCSAgICBjdHh0LT5zdGF0ZXNbbmV3dG9dLT5yZWFjaGVkID0gWE1MX1JFR0VYUF9NQVJLX1NUQVJUOworCQkgICAgdGFyZ2V0ID0gY3R4dC0+c3RhdGVzW25ld3RvXTsKKwkJfQorCSAgICB9CisJfQorCisJLyoKKwkgKiBmaW5kIHRoZSBuZXh0IGFjY2Vzc2libGUgc3RhdGUgbm90IGV4cGxvcmVkCisJICovCisJaWYgKHRhcmdldCA9PSBOVUxMKSB7CisJICAgIGZvciAoc3RhdGVuciA9IDE7c3RhdGVuciA8IGN0eHQtPm5iU3RhdGVzO3N0YXRlbnIrKykgeworCQlzdGF0ZSA9IGN0eHQtPnN0YXRlc1tzdGF0ZW5yXTsKKwkJaWYgKChzdGF0ZSAhPSBOVUxMKSAmJiAoc3RhdGUtPnJlYWNoZWQgPT0KKwkJCVhNTF9SRUdFWFBfTUFSS19TVEFSVCkpIHsKKwkJICAgIHRhcmdldCA9IHN0YXRlOworCQkgICAgYnJlYWs7CisJCX0KKwkgICAgfQorCX0KKwlzdGF0ZSA9IHRhcmdldDsKKyAgICB9CisgICAgZm9yIChzdGF0ZW5yID0gMDtzdGF0ZW5yIDwgY3R4dC0+bmJTdGF0ZXM7c3RhdGVucisrKSB7CisJc3RhdGUgPSBjdHh0LT5zdGF0ZXNbc3RhdGVucl07CisJaWYgKChzdGF0ZSAhPSBOVUxMKSAmJiAoc3RhdGUtPnJlYWNoZWQgPT0gWE1MX1JFR0VYUF9NQVJLX05PUk1BTCkpIHsKKyNpZmRlZiBERUJVR19SRUdFWFBfR1JBUEgKKwkgICAgcHJpbnRmKCJSZW1vdmVkIHVucmVhY2hhYmxlIHN0YXRlICVkXG4iLCBzdGF0ZW5yKTsKKyNlbmRpZgorCSAgICB4bWxSZWdGcmVlU3RhdGUoc3RhdGUpOworCSAgICBjdHh0LT5zdGF0ZXNbc3RhdGVucl0gPSBOVUxMOworCX0KKyAgICB9CisKK30KKworc3RhdGljIGludAoreG1sRkFDb21wYXJlUmFuZ2VzKHhtbFJlZ1JhbmdlUHRyIHJhbmdlMSwgeG1sUmVnUmFuZ2VQdHIgcmFuZ2UyKSB7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoKHJhbmdlMS0+dHlwZSA9PSBYTUxfUkVHRVhQX1JBTkdFUykgfHwKKyAgICAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1JBTkdFUykgfHwKKyAgICAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1NVQlJFRykgfHwKKyAgICAgICAgKHJhbmdlMS0+dHlwZSA9PSBYTUxfUkVHRVhQX1NVQlJFRykgfHwKKyAgICAgICAgKHJhbmdlMS0+dHlwZSA9PSBYTUxfUkVHRVhQX1NUUklORykgfHwKKyAgICAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1NUUklORykpCisJcmV0dXJuKC0xKTsKKworICAgIC8qIHB1dCB0aGVtIGluIG9yZGVyICovCisgICAgaWYgKHJhbmdlMS0+dHlwZSA+IHJhbmdlMi0+dHlwZSkgeworICAgICAgICB4bWxSZWdSYW5nZVB0ciB0bXA7CisKKwl0bXAgPSByYW5nZTE7CisJcmFuZ2UxID0gcmFuZ2UyOworCXJhbmdlMiA9IHRtcDsKKyAgICB9CisgICAgaWYgKChyYW5nZTEtPnR5cGUgPT0gWE1MX1JFR0VYUF9BTllDSEFSKSB8fAorICAgICAgICAocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfQU5ZQ0hBUikpIHsKKwlyZXQgPSAxOworICAgIH0gZWxzZSBpZiAoKHJhbmdlMS0+dHlwZSA9PSBYTUxfUkVHRVhQX0VQU0lMT04pIHx8CisgICAgICAgICAgICAgICAocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfRVBTSUxPTikpIHsKKwlyZXR1cm4oMCk7CisgICAgfSBlbHNlIGlmIChyYW5nZTEtPnR5cGUgPT0gcmFuZ2UyLT50eXBlKSB7CisgICAgICAgIGlmIChyYW5nZTEtPnR5cGUgIT0gWE1MX1JFR0VYUF9DSEFSVkFMKQorICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgZWxzZSBpZiAoKHJhbmdlMS0+ZW5kIDwgcmFuZ2UyLT5zdGFydCkgfHwKKwkgICAgICAgICAocmFuZ2UyLT5lbmQgPCByYW5nZTEtPnN0YXJ0KSkKKwkgICAgcmV0ID0gMDsKKwllbHNlCisJICAgIHJldCA9IDE7CisgICAgfSBlbHNlIGlmIChyYW5nZTEtPnR5cGUgPT0gWE1MX1JFR0VYUF9DSEFSVkFMKSB7CisgICAgICAgIGludCBjb2RlcG9pbnQ7CisJaW50IG5lZyA9IDA7CisKKwkvKgorCSAqIGp1c3QgY2hlY2sgYWxsIGNvZGVwb2ludHMgaW4gdGhlIHJhbmdlIGZvciBhY2NlcHRhbmNlLAorCSAqIHRoaXMgaXMgdXN1YWxseSB3YXkgY2hlYXBlciBzaW5jZSBkb25lIG9ubHkgb25jZSBhdAorCSAqIGNvbXBpbGF0aW9uIHRoYW4gdGVzdGluZyBvdmVyIGFuZCBvdmVyIGF0IHJ1bnRpbWUgb3IgCisJICogcHVzaGluZyB0b28gbWFueSBzdGF0ZXMgd2hlbiBldmFsdWF0aW5nLgorCSAqLworCWlmICgoKHJhbmdlMS0+bmVnID09IDApICYmIChyYW5nZTItPm5lZyAhPSAwKSkgfHwKKwkgICAgKChyYW5nZTEtPm5lZyAhPSAwKSAmJiAocmFuZ2UyLT5uZWcgPT0gMCkpKQorCSAgICBuZWcgPSAxOworCisJZm9yIChjb2RlcG9pbnQgPSByYW5nZTEtPnN0YXJ0O2NvZGVwb2ludCA8PSByYW5nZTEtPmVuZCA7Y29kZXBvaW50KyspIHsKKwkgICAgcmV0ID0geG1sUmVnQ2hlY2tDaGFyYWN0ZXJSYW5nZShyYW5nZTItPnR5cGUsIGNvZGVwb2ludCwKKwkJCQkJICAgIDAsIHJhbmdlMi0+c3RhcnQsIHJhbmdlMi0+ZW5kLAorCQkJCQkgICAgcmFuZ2UyLT5ibG9ja05hbWUpOworCSAgICBpZiAocmV0IDwgMCkKKwkgICAgICAgIHJldHVybigtMSk7CisJICAgIGlmICgoKG5lZyA9PSAxKSAmJiAocmV0ID09IDApKSB8fAorCSAgICAgICAgKChuZWcgPT0gMCkgJiYgKHJldCA9PSAxKSkpCisJCXJldHVybigxKTsKKwl9CisJcmV0dXJuKDApOworICAgIH0gZWxzZSBpZiAoKHJhbmdlMS0+dHlwZSA9PSBYTUxfUkVHRVhQX0JMT0NLX05BTUUpIHx8CisgICAgICAgICAgICAgICAocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfQkxPQ0tfTkFNRSkpIHsKKwlpZiAocmFuZ2UxLT50eXBlID09IHJhbmdlMi0+dHlwZSkgeworCSAgICByZXQgPSB4bWxTdHJFcXVhbChyYW5nZTEtPmJsb2NrTmFtZSwgcmFuZ2UyLT5ibG9ja05hbWUpOworCX0gZWxzZSB7CisJICAgIC8qCisJICAgICAqIGNvbXBhcmluZyBhIGJsb2NrIHJhbmdlIHdpdGggYW55dGhpbmcgZWxzZSBpcyB3YXkKKwkgICAgICogdG9vIGNvc3RseSwgYW5kIG1haW50aW5pbmcgdGhlIHRhYmxlIGlzIGxpa2UgdG9vIG11Y2gKKwkgICAgICogbWVtb3J5IHRvbywgc28gbGV0J3MgZm9yY2UgdGhlIGF1dG9tYXRhIHRvIHNhdmUgc3RhdGUKKwkgICAgICogaGVyZS4KKwkgICAgICovCisJICAgIHJldHVybigxKTsKKwl9CisgICAgfSBlbHNlIGlmICgocmFuZ2UxLT50eXBlIDwgWE1MX1JFR0VYUF9MRVRURVIpIHx8CisgICAgICAgICAgICAgICAocmFuZ2UyLT50eXBlIDwgWE1MX1JFR0VYUF9MRVRURVIpKSB7CisJaWYgKChyYW5nZTEtPnR5cGUgPT0gWE1MX1JFR0VYUF9BTllTUEFDRSkgJiYKKwkgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX05PVFNQQUNFKSkKKwkgICAgcmV0ID0gMDsKKwllbHNlIGlmICgocmFuZ2UxLT50eXBlID09IFhNTF9SRUdFWFBfSU5JVE5BTUUpICYmCisJICAgICAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX05PVElOSVROQU1FKSkKKwkgICAgcmV0ID0gMDsKKwllbHNlIGlmICgocmFuZ2UxLT50eXBlID09IFhNTF9SRUdFWFBfTkFNRUNIQVIpICYmCisJICAgICAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX05PVE5BTUVDSEFSKSkKKwkgICAgcmV0ID0gMDsKKwllbHNlIGlmICgocmFuZ2UxLT50eXBlID09IFhNTF9SRUdFWFBfREVDSU1BTCkgJiYKKwkgICAgICAgICAocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfTk9UREVDSU1BTCkpCisJICAgIHJldCA9IDA7CisJZWxzZSBpZiAoKHJhbmdlMS0+dHlwZSA9PSBYTUxfUkVHRVhQX1JFQUxDSEFSKSAmJgorCSAgICAgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9OT1RSRUFMQ0hBUikpCisJICAgIHJldCA9IDA7CisJZWxzZSB7CisJICAgIC8qIHNhbWUgdGhpbmcgdG8gbGltaXQgY29tcGxleGl0eSAqLworCSAgICByZXR1cm4oMSk7CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IDA7CisgICAgICAgIC8qIHJhbmdlMS0+dHlwZSA8IHJhbmdlMi0+dHlwZSBoZXJlICovCisgICAgICAgIHN3aXRjaCAocmFuZ2UxLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1JFR0VYUF9MRVRURVI6CisJICAgICAgICAgLyogYWxsIGRpc2pvaW50IGV4Y2VwdCBpbiB0aGUgc3ViZ3JvdXBzICovCisJICAgICAgICAgaWYgKChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9MRVRURVJfVVBQRVJDQVNFKSB8fAorCQkgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9MRVRURVJfTE9XRVJDQVNFKSB8fAorCQkgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9MRVRURVJfVElUTEVDQVNFKSB8fAorCQkgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9MRVRURVJfTU9ESUZJRVIpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX0xFVFRFUl9PVEhFUlMpKQorCQkgICAgIHJldCA9IDE7CisJCSBicmVhazsKKwkgICAgY2FzZSBYTUxfUkVHRVhQX01BUks6CisJICAgICAgICAgaWYgKChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9NQVJLX05PTlNQQUNJTkcpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX01BUktfU1BBQ0VDT01CSU5JTkcpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX01BUktfRU5DTE9TSU5HKSkKKwkJICAgICByZXQgPSAxOworCQkgYnJlYWs7CisJICAgIGNhc2UgWE1MX1JFR0VYUF9OVU1CRVI6CisJICAgICAgICAgaWYgKChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9OVU1CRVJfREVDSU1BTCkgfHwKKwkJICAgICAocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfTlVNQkVSX0xFVFRFUikgfHwKKwkJICAgICAocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfTlVNQkVSX09USEVSUykpCisJCSAgICAgcmV0ID0gMTsKKwkJIGJyZWFrOworCSAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1Q6CisJICAgICAgICAgaWYgKChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9QVU5DVF9DT05ORUNUT1IpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1BVTkNUX0RBU0gpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1BVTkNUX09QRU4pIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1BVTkNUX0NMT1NFKSB8fAorCQkgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9QVU5DVF9JTklUUVVPVEUpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1BVTkNUX0ZJTlFVT1RFKSB8fAorCQkgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9QVU5DVF9PVEhFUlMpKQorCQkgICAgIHJldCA9IDE7CisJCSBicmVhazsKKwkgICAgY2FzZSBYTUxfUkVHRVhQX1NFUEFSOgorCSAgICAgICAgIGlmICgocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfU0VQQVJfU1BBQ0UpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1NFUEFSX0xJTkUpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1NFUEFSX1BBUkEpKQorCQkgICAgIHJldCA9IDE7CisJCSBicmVhazsKKwkgICAgY2FzZSBYTUxfUkVHRVhQX1NZTUJPTDoKKwkgICAgICAgICBpZiAoKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1NZTUJPTF9NQVRIKSB8fAorCQkgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9TWU1CT0xfQ1VSUkVOQ1kpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX1NZTUJPTF9NT0RJRklFUikgfHwKKwkJICAgICAocmFuZ2UyLT50eXBlID09IFhNTF9SRUdFWFBfU1lNQk9MX09USEVSUykpCisJCSAgICAgcmV0ID0gMTsKKwkJIGJyZWFrOworCSAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVI6CisJICAgICAgICAgaWYgKChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9PVEhFUl9DT05UUk9MKSB8fAorCQkgICAgIChyYW5nZTItPnR5cGUgPT0gWE1MX1JFR0VYUF9PVEhFUl9GT1JNQVQpIHx8CisJCSAgICAgKHJhbmdlMi0+dHlwZSA9PSBYTUxfUkVHRVhQX09USEVSX1BSSVZBVEUpKQorCQkgICAgIHJldCA9IDE7CisJCSBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisJICAgICAgICAgaWYgKChyYW5nZTItPnR5cGUgPj0gWE1MX1JFR0VYUF9MRVRURVIpICYmCisJCSAgICAgKHJhbmdlMi0+dHlwZSA8IFhNTF9SRUdFWFBfQkxPQ0tfTkFNRSkpCisJCSAgICAgcmV0ID0gMDsKKwkJIGVsc2UgeworCQkgICAgIC8qIHNhZmV0eSBuZXQgISAqLworCQkgICAgIHJldHVybigxKTsKKwkJIH0KKwl9CisgICAgfQorICAgIGlmICgoKHJhbmdlMS0+bmVnID09IDApICYmIChyYW5nZTItPm5lZyAhPSAwKSkgfHwKKyAgICAgICAgKChyYW5nZTEtPm5lZyAhPSAwKSAmJiAocmFuZ2UyLT5uZWcgPT0gMCkpKQorCXJldCA9ICFyZXQ7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sRkFDb21wYXJlQXRvbVR5cGVzOgorICogQHR5cGUxOiAgYW4gYXRvbSB0eXBlCisgKiBAdHlwZTI6ICBhbiBhdG9tIHR5cGUKKyAqCisgKiBDb21wYXJlcyB0d28gYXRvbXMgdHlwZSB0byBjaGVjayB3aGV0aGVyIHRoZXkgaW50ZXJzZWN0IGluIHNvbWUgd2F5cywKKyAqIHRoaXMgaXMgdXNlZCBieSB4bWxGQUNvbXBhcmVBdG9tcyBvbmx5CisgKgorICogUmV0dXJucyAxIGlmIHRoZXkgbWF5IGludGVyc2VjdCBhbmQgMCBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sRkFDb21wYXJlQXRvbVR5cGVzKHhtbFJlZ0F0b21UeXBlIHR5cGUxLCB4bWxSZWdBdG9tVHlwZSB0eXBlMikgeworICAgIGlmICgodHlwZTEgPT0gWE1MX1JFR0VYUF9FUFNJTE9OKSB8fAorICAgICAgICAodHlwZTEgPT0gWE1MX1JFR0VYUF9DSEFSVkFMKSB8fAorCSh0eXBlMSA9PSBYTUxfUkVHRVhQX1JBTkdFUykgfHwKKwkodHlwZTEgPT0gWE1MX1JFR0VYUF9TVUJSRUcpIHx8CisJKHR5cGUxID09IFhNTF9SRUdFWFBfU1RSSU5HKSB8fAorCSh0eXBlMSA9PSBYTUxfUkVHRVhQX0FOWUNIQVIpKQorCXJldHVybigxKTsKKyAgICBpZiAoKHR5cGUyID09IFhNTF9SRUdFWFBfRVBTSUxPTikgfHwKKyAgICAgICAgKHR5cGUyID09IFhNTF9SRUdFWFBfQ0hBUlZBTCkgfHwKKwkodHlwZTIgPT0gWE1MX1JFR0VYUF9SQU5HRVMpIHx8CisJKHR5cGUyID09IFhNTF9SRUdFWFBfU1VCUkVHKSB8fAorCSh0eXBlMiA9PSBYTUxfUkVHRVhQX1NUUklORykgfHwKKwkodHlwZTIgPT0gWE1MX1JFR0VYUF9BTllDSEFSKSkKKwlyZXR1cm4oMSk7CisKKyAgICBpZiAodHlwZTEgPT0gdHlwZTIpIHJldHVybigxKTsKKworICAgIC8qIHNpbXBsaWZ5IHN1YnNlcXVlbnQgY29tcGFyZXMgYnkgbWFraW5nIHN1cmUgdHlwZTEgPCB0eXBlMiAqLworICAgIGlmICh0eXBlMSA+IHR5cGUyKSB7CisgICAgICAgIHhtbFJlZ0F0b21UeXBlIHRtcCA9IHR5cGUxOworCXR5cGUxID0gdHlwZTI7CisJdHlwZTIgPSB0bXA7CisgICAgfQorICAgIHN3aXRjaCAodHlwZTEpIHsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0FOWVNQQUNFOiAvKiBccyAqLworCSAgICAvKiBjYW4ndCBiZSBhIGxldHRlciwgbnVtYmVyLCBtYXJrLCBwb250dWF0aW9uLCBzeW1ib2wgKi8KKwkgICAgaWYgKCh0eXBlMiA9PSBYTUxfUkVHRVhQX05PVFNQQUNFKSB8fAorCQkoKHR5cGUyID49IFhNTF9SRUdFWFBfTEVUVEVSKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfTEVUVEVSX09USEVSUykpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfTlVNQkVSKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfTlVNQkVSX09USEVSUykpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfTUFSSykgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX01BUktfRU5DTE9TSU5HKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9QVU5DVCkgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX1BVTkNUX09USEVSUykpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfU1lNQk9MKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfU1lNQk9MX09USEVSUykpCisJICAgICAgICApIHJldHVybigwKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1RTUEFDRTogLyogXFMgKi8KKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9JTklUTkFNRTogLyogXGwgKi8KKwkgICAgLyogY2FuJ3QgYmUgYSBudW1iZXIsIG1hcmssIHNlcGFyYXRvciwgcG9udHVhdGlvbiwgc3ltYm9sIG9yIG90aGVyICovCisJICAgIGlmICgodHlwZTIgPT0gWE1MX1JFR0VYUF9OT1RJTklUTkFNRSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9OVU1CRVIpICYmCisJCSAodHlwZTIgPD0gWE1MX1JFR0VYUF9OVU1CRVJfT1RIRVJTKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9NQVJLKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfTUFSS19FTkNMT1NJTkcpKSB8fAorCSAgICAgICAgKCh0eXBlMiA+PSBYTUxfUkVHRVhQX1NFUEFSKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfU0VQQVJfUEFSQSkpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfUFVOQ1QpICYmCisJCSAodHlwZTIgPD0gWE1MX1JFR0VYUF9QVU5DVF9PVEhFUlMpKSB8fAorCSAgICAgICAgKCh0eXBlMiA+PSBYTUxfUkVHRVhQX1NZTUJPTCkgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX1NZTUJPTF9PVEhFUlMpKSB8fAorCSAgICAgICAgKCh0eXBlMiA+PSBYTUxfUkVHRVhQX09USEVSKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfT1RIRVJfTkEpKQorCQkpIHJldHVybigwKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1RJTklUTkFNRTogLyogXEwgKi8KKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OQU1FQ0hBUjogLyogXGMgKi8KKwkgICAgLyogY2FuJ3QgYmUgYSBtYXJrLCBzZXBhcmF0b3IsIHBvbnR1YXRpb24sIHN5bWJvbCBvciBvdGhlciAqLworCSAgICBpZiAoKHR5cGUyID09IFhNTF9SRUdFWFBfTk9UTkFNRUNIQVIpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfTUFSSykgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX01BUktfRU5DTE9TSU5HKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9QVU5DVCkgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX1BVTkNUX09USEVSUykpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfU0VQQVIpICYmCisJCSAodHlwZTIgPD0gWE1MX1JFR0VYUF9TRVBBUl9QQVJBKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9TWU1CT0wpICYmCisJCSAodHlwZTIgPD0gWE1MX1JFR0VYUF9TWU1CT0xfT1RIRVJTKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9PVEhFUikgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX09USEVSX05BKSkKKwkJKSByZXR1cm4oMCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTk9UTkFNRUNIQVI6IC8qIFxDICovCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfREVDSU1BTDogLyogXGQgKi8KKwkgICAgLyogY2FuJ3QgYmUgYSBsZXR0ZXIsIG1hcmssIHNlcGFyYXRvciwgcG9udHVhdGlvbiwgc3ltYm9sIG9yIG90aGVyICovCisJICAgIGlmICgodHlwZTIgPT0gWE1MX1JFR0VYUF9OT1RERUNJTUFMKSB8fAorCSAgICAgICAgKHR5cGUyID09IFhNTF9SRUdFWFBfUkVBTENIQVIpIHx8CisJCSgodHlwZTIgPj0gWE1MX1JFR0VYUF9MRVRURVIpICYmCisJCSAodHlwZTIgPD0gWE1MX1JFR0VYUF9MRVRURVJfT1RIRVJTKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9NQVJLKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfTUFSS19FTkNMT1NJTkcpKSB8fAorCSAgICAgICAgKCh0eXBlMiA+PSBYTUxfUkVHRVhQX1BVTkNUKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfUFVOQ1RfT1RIRVJTKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9TRVBBUikgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX1NFUEFSX1BBUkEpKSB8fAorCSAgICAgICAgKCh0eXBlMiA+PSBYTUxfUkVHRVhQX1NZTUJPTCkgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX1NZTUJPTF9PVEhFUlMpKSB8fAorCSAgICAgICAgKCh0eXBlMiA+PSBYTUxfUkVHRVhQX09USEVSKSAmJgorCQkgKHR5cGUyIDw9IFhNTF9SRUdFWFBfT1RIRVJfTkEpKQorCQkpcmV0dXJuKDApOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05PVERFQ0lNQUw6IC8qIFxEICovCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUkVBTENIQVI6IC8qIFx3ICovCisJICAgIC8qIGNhbid0IGJlIGEgbWFyaywgc2VwYXJhdG9yLCBwb250dWF0aW9uLCBzeW1ib2wgb3Igb3RoZXIgKi8KKwkgICAgaWYgKCh0eXBlMiA9PSBYTUxfUkVHRVhQX05PVERFQ0lNQUwpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfTUFSSykgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX01BUktfRU5DTE9TSU5HKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9QVU5DVCkgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX1BVTkNUX09USEVSUykpIHx8CisJICAgICAgICAoKHR5cGUyID49IFhNTF9SRUdFWFBfU0VQQVIpICYmCisJCSAodHlwZTIgPD0gWE1MX1JFR0VYUF9TRVBBUl9QQVJBKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9TWU1CT0wpICYmCisJCSAodHlwZTIgPD0gWE1MX1JFR0VYUF9TWU1CT0xfT1RIRVJTKSkgfHwKKwkgICAgICAgICgodHlwZTIgPj0gWE1MX1JFR0VYUF9PVEhFUikgJiYKKwkJICh0eXBlMiA8PSBYTUxfUkVHRVhQX09USEVSX05BKSkKKwkJKXJldHVybigwKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1RSRUFMQ0hBUjogLyogXFcgKi8KKwkgICAgYnJlYWs7CisJLyoKKwkgKiBhdCB0aGF0IHBvaW50IHdlIGtub3cgYm90aCB0eXBlIDEgYW5kIHR5cGUyIGFyZSBmcm9tCisJICogY2hhcmFjdGVyIGNhdGVnb3JpZXMgYXJlIG9yZGVyZWQgYW5kIGFyZSBkaWZmZXJlbnQsCisJICogaXQgYmVjb21lcyBzaW1wbGUgYmVjYXVzZSB0aGlzIGlzIGEgcGFydGl0aW9uCisJICovCisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9MRVRURVI6CisJICAgIGlmICh0eXBlMiA8PSBYTUxfUkVHRVhQX0xFVFRFUl9PVEhFUlMpCisJICAgICAgICByZXR1cm4oMSk7CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9VUFBFUkNBU0U6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9MRVRURVJfTE9XRVJDQVNFOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTEVUVEVSX1RJVExFQ0FTRToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9NT0RJRklFUjoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9PVEhFUlM6CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX01BUks6CisJICAgIGlmICh0eXBlMiA8PSBYTUxfUkVHRVhQX01BUktfRU5DTE9TSU5HKQorCSAgICAgICAgcmV0dXJuKDEpOworCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9NQVJLX05PTlNQQUNJTkc6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9NQVJLX1NQQUNFQ09NQklOSU5HOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTUFSS19FTkNMT1NJTkc6CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05VTUJFUjoKKwkgICAgaWYgKHR5cGUyIDw9IFhNTF9SRUdFWFBfTlVNQkVSX09USEVSUykKKwkgICAgICAgIHJldHVybigxKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTlVNQkVSX0RFQ0lNQUw6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OVU1CRVJfTEVUVEVSOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTlVNQkVSX09USEVSUzoKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1Q6CisJICAgIGlmICh0eXBlMiA8PSBYTUxfUkVHRVhQX1BVTkNUX09USEVSUykKKwkgICAgICAgIHJldHVybigxKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfQ09OTkVDVE9SOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfREFTSDoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX09QRU46CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9QVU5DVF9DTE9TRToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0lOSVRRVU9URToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0ZJTlFVT1RFOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfT1RIRVJTOgorCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TRVBBUjoKKwkgICAgaWYgKHR5cGUyIDw9IFhNTF9SRUdFWFBfU0VQQVJfUEFSQSkKKwkgICAgICAgIHJldHVybigxKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU0VQQVJfU1BBQ0U6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TRVBBUl9MSU5FOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU0VQQVJfUEFSQToKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU1lNQk9MOgorCSAgICBpZiAodHlwZTIgPD0gWE1MX1JFR0VYUF9TWU1CT0xfT1RIRVJTKQorCSAgICAgICAgcmV0dXJuKDEpOworCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0xfTUFUSDoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NZTUJPTF9DVVJSRU5DWToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NZTUJPTF9NT0RJRklFUjoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NZTUJPTF9PVEhFUlM6CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSOgorCSAgICBpZiAodHlwZTIgPD0gWE1MX1JFR0VYUF9PVEhFUl9OQSkKKwkgICAgICAgIHJldHVybigxKTsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVJfQ09OVFJPTDoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSX0ZPUk1BVDoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSX1BSSVZBVEU6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9PVEhFUl9OQToKKwkgICAgcmV0dXJuKDApOworCWRlZmF1bHQ6CisJICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sRkFFcXVhbEF0b21zOgorICogQGF0b20xOiAgYW4gYXRvbQorICogQGF0b20yOiAgYW4gYXRvbQorICogQGRlZXA6IGlmIG5vdCBzZXQgb25seSBjb21wYXJlIHN0cmluZyBwb2ludGVycworICoKKyAqIENvbXBhcmVzIHR3byBhdG9tcyB0byBjaGVjayB3aGV0aGVyIHRoZXkgYXJlIHRoZSBzYW1lIGV4YWN0bHkKKyAqIHRoaXMgaXMgdXNlZCB0byByZW1vdmUgZXF1aXZhbGVudCB0cmFuc2l0aW9ucworICoKKyAqIFJldHVybnMgMSBpZiBzYW1lIGFuZCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxGQUVxdWFsQXRvbXMoeG1sUmVnQXRvbVB0ciBhdG9tMSwgeG1sUmVnQXRvbVB0ciBhdG9tMiwgaW50IGRlZXApIHsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmIChhdG9tMSA9PSBhdG9tMikKKwlyZXR1cm4oMSk7CisgICAgaWYgKChhdG9tMSA9PSBOVUxMKSB8fCAoYXRvbTIgPT0gTlVMTCkpCisJcmV0dXJuKDApOworCisgICAgaWYgKGF0b20xLT50eXBlICE9IGF0b20yLT50eXBlKQorICAgICAgICByZXR1cm4oMCk7CisgICAgc3dpdGNoIChhdG9tMS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfRVBTSUxPTjoKKwkgICAgcmV0ID0gMDsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TVFJJTkc6CisgICAgICAgICAgICBpZiAoIWRlZXApCisgICAgICAgICAgICAgICAgcmV0ID0gKGF0b20xLT52YWx1ZXAgPT0gYXRvbTItPnZhbHVlcCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0geG1sU3RyRXF1YWwoKHhtbENoYXIgKilhdG9tMS0+dmFsdWVwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxDaGFyICopYXRvbTItPnZhbHVlcCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfQ0hBUlZBTDoKKwkgICAgcmV0ID0gKGF0b20xLT5jb2RlcG9pbnQgPT0gYXRvbTItPmNvZGVwb2ludCk7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1JFR0VYUF9SQU5HRVM6CisJICAgIC8qIHRvbyBoYXJkIHRvIGRvIGluIHRoZSBnZW5lcmFsIGNhc2UgKi8KKwkgICAgcmV0ID0gMDsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sRkFDb21wYXJlQXRvbXM6CisgKiBAYXRvbTE6ICBhbiBhdG9tCisgKiBAYXRvbTI6ICBhbiBhdG9tCisgKiBAZGVlcDogaWYgbm90IHNldCBvbmx5IGNvbXBhcmUgc3RyaW5nIHBvaW50ZXJzCisgKgorICogQ29tcGFyZXMgdHdvIGF0b21zIHRvIGNoZWNrIHdoZXRoZXIgdGhleSBpbnRlcnNlY3QgaW4gc29tZSB3YXlzLAorICogdGhpcyBpcyB1c2VkIGJ5IHhtbEZBQ29tcHV0ZXNEZXRlcm1pbmlzbSBhbmQgeG1sRkFSZWN1cnNlRGV0ZXJtaW5pc20gb25seQorICoKKyAqIFJldHVybnMgMSBpZiB5ZXMgYW5kIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbEZBQ29tcGFyZUF0b21zKHhtbFJlZ0F0b21QdHIgYXRvbTEsIHhtbFJlZ0F0b21QdHIgYXRvbTIsIGludCBkZWVwKSB7CisgICAgaW50IHJldCA9IDE7CisKKyAgICBpZiAoYXRvbTEgPT0gYXRvbTIpCisJcmV0dXJuKDEpOworICAgIGlmICgoYXRvbTEgPT0gTlVMTCkgfHwgKGF0b20yID09IE5VTEwpKQorCXJldHVybigwKTsKKworICAgIGlmICgoYXRvbTEtPnR5cGUgPT0gWE1MX1JFR0VYUF9BTllDSEFSKSB8fAorICAgICAgICAoYXRvbTItPnR5cGUgPT0gWE1MX1JFR0VYUF9BTllDSEFSKSkKKwlyZXR1cm4oMSk7CisKKyAgICBpZiAoYXRvbTEtPnR5cGUgPiBhdG9tMi0+dHlwZSkgeworCXhtbFJlZ0F0b21QdHIgdG1wOworCXRtcCA9IGF0b20xOworCWF0b20xID0gYXRvbTI7CisJYXRvbTIgPSB0bXA7CisgICAgfQorICAgIGlmIChhdG9tMS0+dHlwZSAhPSBhdG9tMi0+dHlwZSkgeworICAgICAgICByZXQgPSB4bWxGQUNvbXBhcmVBdG9tVHlwZXMoYXRvbTEtPnR5cGUsIGF0b20yLT50eXBlKTsKKwkvKiBpZiB0aGV5IGNhbid0IGludGVyc2VjdCBhdCB0aGUgdHlwZSBsZXZlbCBicmVhayBub3cgKi8KKwlpZiAocmV0ID09IDApCisJICAgIHJldHVybigwKTsKKyAgICB9CisgICAgc3dpdGNoIChhdG9tMS0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU1RSSU5HOgorICAgICAgICAgICAgaWYgKCFkZWVwKQorICAgICAgICAgICAgICAgIHJldCA9IChhdG9tMS0+dmFsdWVwICE9IGF0b20yLT52YWx1ZXApOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IHhtbFJlZ1N0ckVxdWFsV2lsZGNhcmQoKHhtbENoYXIgKilhdG9tMS0+dmFsdWVwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbENoYXIgKilhdG9tMi0+dmFsdWVwKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9FUFNJTE9OOgorCSAgICBnb3RvIG5vdF9kZXRlcm1pbmlzdDsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0NIQVJWQUw6CisJICAgIGlmIChhdG9tMi0+dHlwZSA9PSBYTUxfUkVHRVhQX0NIQVJWQUwpIHsKKwkJcmV0ID0gKGF0b20xLT5jb2RlcG9pbnQgPT0gYXRvbTItPmNvZGVwb2ludCk7CisJICAgIH0gZWxzZSB7CisJICAgICAgICByZXQgPSB4bWxSZWdDaGVja0NoYXJhY3RlcihhdG9tMiwgYXRvbTEtPmNvZGVwb2ludCk7CisJCWlmIChyZXQgPCAwKQorCQkgICAgcmV0ID0gMTsKKwkgICAgfQorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1JBTkdFUzoKKwkgICAgaWYgKGF0b20yLT50eXBlID09IFhNTF9SRUdFWFBfUkFOR0VTKSB7CisJICAgICAgICBpbnQgaSwgaiwgcmVzOworCQl4bWxSZWdSYW5nZVB0ciByMSwgcjI7CisKKwkJLyoKKwkJICogbmVlZCB0byBjaGVjayB0aGF0IG5vbmUgb2YgdGhlIHJhbmdlcyBldmVudHVhbGx5IG1hdGNoZXMKKwkJICovCisJCWZvciAoaSA9IDA7aSA8IGF0b20xLT5uYlJhbmdlcztpKyspIHsKKwkJICAgIGZvciAoaiA9IDA7aiA8IGF0b20yLT5uYlJhbmdlcztqKyspIHsKKwkJCXIxID0gYXRvbTEtPnJhbmdlc1tpXTsKKwkJCXIyID0gYXRvbTItPnJhbmdlc1tqXTsKKwkJCXJlcyA9IHhtbEZBQ29tcGFyZVJhbmdlcyhyMSwgcjIpOworCQkJaWYgKHJlcyA9PSAxKSB7CisJCQkgICAgcmV0ID0gMTsKKwkJCSAgICBnb3RvIGRvbmU7CisJCQl9CisJCSAgICB9CisJCX0KKwkJcmV0ID0gMDsKKwkgICAgfQorCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICBnb3RvIG5vdF9kZXRlcm1pbmlzdDsKKyAgICB9Citkb25lOgorICAgIGlmIChhdG9tMS0+bmVnICE9IGF0b20yLT5uZWcpIHsKKyAgICAgICAgcmV0ID0gIXJldDsKKyAgICB9CisgICAgaWYgKHJldCA9PSAwKQorICAgICAgICByZXR1cm4oMCk7Citub3RfZGV0ZXJtaW5pc3Q6CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbEZBUmVjdXJzZURldGVybWluaXNtOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGFzc29jaWF0ZWQgcmVnZXhwIGlzIGRldGVybWluaXN0LAorICogc2hvdWxkIGJlIGNhbGxlZCBhZnRlciB4bWxGQUVsaW1pbmF0ZUVwc2lsb25UcmFuc2l0aW9ucygpCisgKgorICovCitzdGF0aWMgaW50Cit4bWxGQVJlY3Vyc2VEZXRlcm1pbmlzbSh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFJlZ1N0YXRlUHRyIHN0YXRlLAorCSAgICAgICAgICAgICAgICAgaW50IHRvLCB4bWxSZWdBdG9tUHRyIGF0b20pIHsKKyAgICBpbnQgcmV0ID0gMTsKKyAgICBpbnQgcmVzOworICAgIGludCB0cmFuc25yLCBuYlRyYW5zOworICAgIHhtbFJlZ1RyYW5zUHRyIHQxOworICAgIGludCBkZWVwID0gMTsKKworICAgIGlmIChzdGF0ZSA9PSBOVUxMKQorCXJldHVybihyZXQpOworCisgICAgaWYgKGN0eHQtPmZsYWdzICYgQU1fQVVUT01BVEFfUk5HKQorICAgICAgICBkZWVwID0gMDsKKworICAgIC8qCisgICAgICogZG9uJ3QgcmVjdXJzZSBvbiB0cmFuc2l0aW9ucyBwb3RlbnRpYWxseSBhZGRlZCBpbiB0aGUgY291cnNlIG9mCisgICAgICogdGhlIGVsaW1pbmF0aW9uLgorICAgICAqLworICAgIG5iVHJhbnMgPSBzdGF0ZS0+bmJUcmFuczsKKyAgICBmb3IgKHRyYW5zbnIgPSAwO3RyYW5zbnIgPCBuYlRyYW5zO3RyYW5zbnIrKykgeworCXQxID0gJihzdGF0ZS0+dHJhbnNbdHJhbnNucl0pOworCS8qCisJICogY2hlY2sgdHJhbnNpdGlvbnMgY29uZmxpY3Rpbmcgd2l0aCB0aGUgb25lIGxvb2tlZCBhdAorCSAqLworCWlmICh0MS0+YXRvbSA9PSBOVUxMKSB7CisJICAgIGlmICh0MS0+dG8gPCAwKQorCQljb250aW51ZTsKKwkgICAgcmVzID0geG1sRkFSZWN1cnNlRGV0ZXJtaW5pc20oY3R4dCwgY3R4dC0+c3RhdGVzW3QxLT50b10sCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvLCBhdG9tKTsKKwkgICAgaWYgKHJlcyA9PSAwKSB7CisJICAgICAgICByZXQgPSAwOworCQkvKiB0MS0+bmQgPSAxOyAqLworCSAgICB9CisJICAgIGNvbnRpbnVlOworCX0KKwlpZiAodDEtPnRvICE9IHRvKQorCSAgICBjb250aW51ZTsKKwlpZiAoeG1sRkFDb21wYXJlQXRvbXModDEtPmF0b20sIGF0b20sIGRlZXApKSB7CisJICAgIHJldCA9IDA7CisJICAgIC8qIG1hcmsgdGhlIHRyYW5zaXRpb24gYXMgbm9uLWRldGVybWluaXN0aWMgKi8KKwkgICAgdDEtPm5kID0gMTsKKwl9CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEZBQ29tcHV0ZXNEZXRlcm1pbmlzbToKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBhc3NvY2lhdGVkIHJlZ2V4cCBpcyBkZXRlcm1pbmlzdCwKKyAqIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgeG1sRkFFbGltaW5hdGVFcHNpbG9uVHJhbnNpdGlvbnMoKQorICoKKyAqLworc3RhdGljIGludAoreG1sRkFDb21wdXRlc0RldGVybWluaXNtKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCBzdGF0ZW5yLCB0cmFuc25yOworICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXRlOworICAgIHhtbFJlZ1RyYW5zUHRyIHQxLCB0MiwgbGFzdDsKKyAgICBpbnQgaTsKKyAgICBpbnQgcmV0ID0gMTsKKyAgICBpbnQgZGVlcCA9IDE7CisKKyNpZmRlZiBERUJVR19SRUdFWFBfR1JBUEgKKyAgICBwcmludGYoInhtbEZBQ29tcHV0ZXNEZXRlcm1pbmlzbVxuIik7CisgICAgeG1sUmVnUHJpbnRDdHh0KHN0ZG91dCwgY3R4dCk7CisjZW5kaWYKKyAgICBpZiAoY3R4dC0+ZGV0ZXJtaW5pc3QgIT0gLTEpCisJcmV0dXJuKGN0eHQtPmRldGVybWluaXN0KTsKKworICAgIGlmIChjdHh0LT5mbGFncyAmIEFNX0FVVE9NQVRBX1JORykKKyAgICAgICAgZGVlcCA9IDA7CisKKyAgICAvKgorICAgICAqIEZpcnN0IGNsZWFudXAgdGhlIGF1dG9tYXRhIHJlbW92aW5nIGNhbmNlbGxlZCB0cmFuc2l0aW9ucworICAgICAqLworICAgIGZvciAoc3RhdGVuciA9IDA7c3RhdGVuciA8IGN0eHQtPm5iU3RhdGVzO3N0YXRlbnIrKykgeworCXN0YXRlID0gY3R4dC0+c3RhdGVzW3N0YXRlbnJdOworCWlmIChzdGF0ZSA9PSBOVUxMKQorCSAgICBjb250aW51ZTsKKwlpZiAoc3RhdGUtPm5iVHJhbnMgPCAyKQorCSAgICBjb250aW51ZTsKKwlmb3IgKHRyYW5zbnIgPSAwO3RyYW5zbnIgPCBzdGF0ZS0+bmJUcmFuczt0cmFuc25yKyspIHsKKwkgICAgdDEgPSAmKHN0YXRlLT50cmFuc1t0cmFuc25yXSk7CisJICAgIC8qCisJICAgICAqIERldGVybWluaXNtIGNoZWNrcyBpbiBjYXNlIG9mIGNvdW50ZWQgb3IgYWxsIHRyYW5zaXRpb25zCisJICAgICAqIHdpbGwgaGF2ZSB0byBiZSBoYW5kbGVkIHNlcGFyYXRlbHkKKwkgICAgICovCisJICAgIGlmICh0MS0+YXRvbSA9PSBOVUxMKSB7CisJCS8qIHQxLT5uZCA9IDE7ICovCisJCWNvbnRpbnVlOworCSAgICB9CisJICAgIGlmICh0MS0+dG8gPT0gLTEpIC8qIGVsaW1pbmF0ZWQgKi8KKwkJY29udGludWU7CisJICAgIGZvciAoaSA9IDA7aSA8IHRyYW5zbnI7aSsrKSB7CisJCXQyID0gJihzdGF0ZS0+dHJhbnNbaV0pOworCQlpZiAodDItPnRvID09IC0xKSAvKiBlbGltaW5hdGVkICovCisJCSAgICBjb250aW51ZTsKKwkJaWYgKHQyLT5hdG9tICE9IE5VTEwpIHsKKwkJICAgIGlmICh0MS0+dG8gPT0gdDItPnRvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogSGVyZSB3ZSB1c2UgZGVlcCBiZWNhdXNlIHdlIHdhbnQgdG8ga2VlcCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyYW5zaXRpb25zIHdoaWNoIGluZGljYXRlIGEgY29uZmxpY3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworCQkJaWYgKHhtbEZBRXF1YWxBdG9tcyh0MS0+YXRvbSwgdDItPmF0b20sIGRlZXApICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQxLT5jb3VudGVyID09IHQyLT5jb3VudGVyKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0MS0+Y291bnQgPT0gdDItPmNvdW50KSkKKwkJCSAgICB0Mi0+dG8gPSAtMTsgLyogZWxpbWluYXRlZCAqLworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDaGVjayBmb3IgYWxsIHN0YXRlcyB0aGF0IHRoZXJlIGFyZW4ndCAyIHRyYW5zaXRpb25zCisgICAgICogd2l0aCB0aGUgc2FtZSBhdG9tIGFuZCBhIGRpZmZlcmVudCB0YXJnZXQuCisgICAgICovCisgICAgZm9yIChzdGF0ZW5yID0gMDtzdGF0ZW5yIDwgY3R4dC0+bmJTdGF0ZXM7c3RhdGVucisrKSB7CisJc3RhdGUgPSBjdHh0LT5zdGF0ZXNbc3RhdGVucl07CisJaWYgKHN0YXRlID09IE5VTEwpCisJICAgIGNvbnRpbnVlOworCWlmIChzdGF0ZS0+bmJUcmFucyA8IDIpCisJICAgIGNvbnRpbnVlOworCWxhc3QgPSBOVUxMOworCWZvciAodHJhbnNuciA9IDA7dHJhbnNuciA8IHN0YXRlLT5uYlRyYW5zO3RyYW5zbnIrKykgeworCSAgICB0MSA9ICYoc3RhdGUtPnRyYW5zW3RyYW5zbnJdKTsKKwkgICAgLyoKKwkgICAgICogRGV0ZXJtaW5pc20gY2hlY2tzIGluIGNhc2Ugb2YgY291bnRlZCBvciBhbGwgdHJhbnNpdGlvbnMKKwkgICAgICogd2lsbCBoYXZlIHRvIGJlIGhhbmRsZWQgc2VwYXJhdGVseQorCSAgICAgKi8KKwkgICAgaWYgKHQxLT5hdG9tID09IE5VTEwpIHsKKwkJY29udGludWU7CisJICAgIH0KKwkgICAgaWYgKHQxLT50byA9PSAtMSkgLyogZWxpbWluYXRlZCAqLworCQljb250aW51ZTsKKwkgICAgZm9yIChpID0gMDtpIDwgdHJhbnNucjtpKyspIHsKKwkJdDIgPSAmKHN0YXRlLT50cmFuc1tpXSk7CisJCWlmICh0Mi0+dG8gPT0gLTEpIC8qIGVsaW1pbmF0ZWQgKi8KKwkJICAgIGNvbnRpbnVlOworCQlpZiAodDItPmF0b20gIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBCdXQgaGVyZSB3ZSBkb24ndCB1c2UgZGVlcCBiZWNhdXNlIHdlIHdhbnQgdG8KKyAgICAgICAgICAgICAgICAgICAgICogZmluZCB0cmFuc2l0aW9ucyB3aGljaCBpbmRpY2F0ZSBhIGNvbmZsaWN0CisgICAgICAgICAgICAgICAgICAgICAqLworCQkgICAgaWYgKHhtbEZBQ29tcGFyZUF0b21zKHQxLT5hdG9tLCB0Mi0+YXRvbSwgMSkpIHsKKwkJCXJldCA9IDA7CisJCQkvKiBtYXJrIHRoZSB0cmFuc2l0aW9ucyBhcyBub24tZGV0ZXJtaW5pc3RpYyBvbmVzICovCisJCQl0MS0+bmQgPSAxOworCQkJdDItPm5kID0gMTsKKwkJCWxhc3QgPSB0MTsKKwkJICAgIH0KKwkJfSBlbHNlIGlmICh0MS0+dG8gIT0gLTEpIHsKKwkJICAgIC8qCisJCSAgICAgKiBkbyB0aGUgY2xvc3VyZSBpbiBjYXNlIG9mIHJlbWFpbmluZyBzcGVjaWZpYworCQkgICAgICogZXBzaWxvbiB0cmFuc2l0aW9ucyBsaWtlIGNob2ljZXMgb3IgYWxsCisJCSAgICAgKi8KKwkJICAgIHJldCA9IHhtbEZBUmVjdXJzZURldGVybWluaXNtKGN0eHQsIGN0eHQtPnN0YXRlc1t0MS0+dG9dLAorCQkJCQkJICAgdDItPnRvLCB0Mi0+YXRvbSk7CisJCSAgICAvKiBkb24ndCBzaG9ydGN1dCB0aGUgY29tcHV0YXRpb24gc28gYWxsIG5vbiBkZXRlcm1pbmlzdGljCisJCSAgICAgICB0cmFuc2l0aW9uIGdldCBtYXJrZWQgZG93bgorCQkgICAgaWYgKHJldCA9PSAwKQorCQkJcmV0dXJuKDApOworCQkgICAgICovCisJCSAgICBpZiAocmV0ID09IDApIHsKKwkJCXQxLT5uZCA9IDE7CisJCQkvKiB0Mi0+bmQgPSAxOyAqLworCQkJbGFzdCA9IHQxOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgICAgLyogZG9uJ3Qgc2hvcnRjdXQgdGhlIGNvbXB1dGF0aW9uIHNvIGFsbCBub24gZGV0ZXJtaW5pc3RpYworCSAgICAgICB0cmFuc2l0aW9uIGdldCBtYXJrZWQgZG93bgorCSAgICBpZiAocmV0ID09IDApCisJCWJyZWFrOyAqLworCX0KKworCS8qCisJICogbWFyayBzcGVjaWZpY2FsbHkgdGhlIGxhc3Qgbm9uLWRldGVybWluaXN0aWMgdHJhbnNpdGlvbgorCSAqIGZyb20gYSBzdGF0ZSBzaW5jZSB0aGVyZSBpcyBubyBuZWVkIHRvIHNldC11cCByb2xsYmFjaworCSAqIGZyb20gaXQKKwkgKi8KKwlpZiAobGFzdCAhPSBOVUxMKSB7CisJICAgIGxhc3QtPm5kID0gMjsKKwl9CisKKwkvKiBkb24ndCBzaG9ydGN1dCB0aGUgY29tcHV0YXRpb24gc28gYWxsIG5vbiBkZXRlcm1pbmlzdGljCisJICAgdHJhbnNpdGlvbiBnZXQgbWFya2VkIGRvd24KKwlpZiAocmV0ID09IDApCisJICAgIGJyZWFrOyAqLworICAgIH0KKworICAgIGN0eHQtPmRldGVybWluaXN0ID0gcmV0OworICAgIHJldHVybihyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKglSb3V0aW5lcyB0byBjaGVjayBpbnB1dCBhZ2FpbnN0IHRyYW5zaXRpb24gYXRvbXMJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK3htbFJlZ0NoZWNrQ2hhcmFjdGVyUmFuZ2UoeG1sUmVnQXRvbVR5cGUgdHlwZSwgaW50IGNvZGVwb2ludCwgaW50IG5lZywKKwkgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIGludCBlbmQsIGNvbnN0IHhtbENoYXIgKmJsb2NrTmFtZSkgeworICAgIGludCByZXQgPSAwOworCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TVFJJTkc6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TVUJSRUc6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9SQU5HRVM6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9FUFNJTE9OOgorCSAgICByZXR1cm4oLTEpOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfQU5ZQ0hBUjoKKwkgICAgcmV0ID0gKChjb2RlcG9pbnQgIT0gJ1xuJykgJiYgKGNvZGVwb2ludCAhPSAnXHInKSk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfQ0hBUlZBTDoKKwkgICAgcmV0ID0gKChjb2RlcG9pbnQgPj0gc3RhcnQpICYmIChjb2RlcG9pbnQgPD0gZW5kKSk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTk9UU1BBQ0U6CisJICAgIG5lZyA9ICFuZWc7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9BTllTUEFDRToKKwkgICAgcmV0ID0gKChjb2RlcG9pbnQgPT0gJ1xuJykgfHwgKGNvZGVwb2ludCA9PSAnXHInKSB8fAorCQkgICAoY29kZXBvaW50ID09ICdcdCcpIHx8IChjb2RlcG9pbnQgPT0gJyAnKSk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTk9USU5JVE5BTUU6CisJICAgIG5lZyA9ICFuZWc7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9JTklUTkFNRToKKwkgICAgcmV0ID0gKElTX0xFVFRFUihjb2RlcG9pbnQpIHx8IAorCQkgICAoY29kZXBvaW50ID09ICdfJykgfHwgKGNvZGVwb2ludCA9PSAnOicpKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1ROQU1FQ0hBUjoKKwkgICAgbmVnID0gIW5lZzsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05BTUVDSEFSOgorCSAgICByZXQgPSAoSVNfTEVUVEVSKGNvZGVwb2ludCkgfHwgSVNfRElHSVQoY29kZXBvaW50KSB8fAorCQkgICAoY29kZXBvaW50ID09ICcuJykgfHwgKGNvZGVwb2ludCA9PSAnLScpIHx8CisJCSAgIChjb2RlcG9pbnQgPT0gJ18nKSB8fCAoY29kZXBvaW50ID09ICc6JykgfHwKKwkJICAgSVNfQ09NQklOSU5HKGNvZGVwb2ludCkgfHwgSVNfRVhURU5ERVIoY29kZXBvaW50KSk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTk9UREVDSU1BTDoKKwkgICAgbmVnID0gIW5lZzsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0RFQ0lNQUw6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0TmQoY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9SRUFMQ0hBUjoKKwkgICAgbmVnID0gIW5lZzsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05PVFJFQUxDSEFSOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFAoY29kZXBvaW50KTsKKwkgICAgaWYgKHJldCA9PSAwKQorCQlyZXQgPSB4bWxVQ1NJc0NhdFooY29kZXBvaW50KTsKKwkgICAgaWYgKHJldCA9PSAwKQorCQlyZXQgPSB4bWxVQ1NJc0NhdEMoY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9MRVRURVI6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0TChjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9VUFBFUkNBU0U6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0THUoY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9MRVRURVJfTE9XRVJDQVNFOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdExsKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTEVUVEVSX1RJVExFQ0FTRToKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRMdChjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9NT0RJRklFUjoKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRMbShjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9PVEhFUlM6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0TG8oY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9NQVJLOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdE0oY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9NQVJLX05PTlNQQUNJTkc6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0TW4oY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9NQVJLX1NQQUNFQ09NQklOSU5HOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdE1jKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTUFSS19FTkNMT1NJTkc6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0TWUoY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OVU1CRVI6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0Tihjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05VTUJFUl9ERUNJTUFMOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdE5kKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTlVNQkVSX0xFVFRFUjoKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRObChjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05VTUJFUl9PVEhFUlM6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0Tm8oY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9QVU5DVDoKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRQKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfQ09OTkVDVE9SOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFBjKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfREFTSDoKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRQZChjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX09QRU46CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0UHMoY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9QVU5DVF9DTE9TRToKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRQZShjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0lOSVRRVU9URToKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRQaShjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0ZJTlFVT1RFOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFBmKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfT1RIRVJTOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFBvKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU0VQQVI6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0Wihjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NFUEFSX1NQQUNFOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFpzKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU0VQQVJfTElORToKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRabChjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NFUEFSX1BBUkE6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0WnAoY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0w6CisJICAgIHJldCA9IHhtbFVDU0lzQ2F0Uyhjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NZTUJPTF9NQVRIOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFNtKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU1lNQk9MX0NVUlJFTkNZOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFNjKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU1lNQk9MX01PRElGSUVSOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdFNrKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU1lNQk9MX09USEVSUzoKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRTbyhjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdEMoY29kZXBvaW50KTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9PVEhFUl9DT05UUk9MOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdENjKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVJfRk9STUFUOgorCSAgICByZXQgPSB4bWxVQ1NJc0NhdENmKGNvZGVwb2ludCk7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVJfUFJJVkFURToKKwkgICAgcmV0ID0geG1sVUNTSXNDYXRDbyhjb2RlcG9pbnQpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSX05BOgorCSAgICAvKiByZXQgPSB4bWxVQ1NJc0NhdENuKGNvZGVwb2ludCk7ICovCisJICAgIC8qIFNlZW1zIGl0IGRvZXNuJ3QgZXhpc3QgYW55bW9yZSBpbiByZWNlbnQgVW5pY29kZSByZWxlYXNlcyAqLworCSAgICByZXQgPSAwOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0JMT0NLX05BTUU6CisJICAgIHJldCA9IHhtbFVDU0lzQmxvY2soY29kZXBvaW50LCAoY29uc3QgY2hhciAqKSBibG9ja05hbWUpOworCSAgICBicmVhazsKKyAgICB9CisgICAgaWYgKG5lZykKKwlyZXR1cm4oIXJldCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFJlZ0NoZWNrQ2hhcmFjdGVyKHhtbFJlZ0F0b21QdHIgYXRvbSwgaW50IGNvZGVwb2ludCkgeworICAgIGludCBpLCByZXQgPSAwOworICAgIHhtbFJlZ1JhbmdlUHRyIHJhbmdlOworCisgICAgaWYgKChhdG9tID09IE5VTEwpIHx8ICghSVNfQ0hBUihjb2RlcG9pbnQpKSkKKwlyZXR1cm4oLTEpOworCisgICAgc3dpdGNoIChhdG9tLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TVUJSRUc6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9FUFNJTE9OOgorCSAgICByZXR1cm4oLTEpOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfQ0hBUlZBTDoKKyAgICAgICAgICAgIHJldHVybihjb2RlcG9pbnQgPT0gYXRvbS0+Y29kZXBvaW50KTsKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1JBTkdFUzogeworCSAgICBpbnQgYWNjZXB0ID0gMDsKKworCSAgICBmb3IgKGkgPSAwO2kgPCBhdG9tLT5uYlJhbmdlcztpKyspIHsKKwkJcmFuZ2UgPSBhdG9tLT5yYW5nZXNbaV07CisJCWlmIChyYW5nZS0+bmVnID09IDIpIHsKKwkJICAgIHJldCA9IHhtbFJlZ0NoZWNrQ2hhcmFjdGVyUmFuZ2UocmFuZ2UtPnR5cGUsIGNvZGVwb2ludCwKKwkJCQkJCTAsIHJhbmdlLT5zdGFydCwgcmFuZ2UtPmVuZCwKKwkJCQkJCXJhbmdlLT5ibG9ja05hbWUpOworCQkgICAgaWYgKHJldCAhPSAwKQorCQkJcmV0dXJuKDApOyAvKiBleGNsdWRlZCBjaGFyICovCisJCX0gZWxzZSBpZiAocmFuZ2UtPm5lZykgeworCQkgICAgcmV0ID0geG1sUmVnQ2hlY2tDaGFyYWN0ZXJSYW5nZShyYW5nZS0+dHlwZSwgY29kZXBvaW50LAorCQkJCQkJMCwgcmFuZ2UtPnN0YXJ0LCByYW5nZS0+ZW5kLAorCQkJCQkJcmFuZ2UtPmJsb2NrTmFtZSk7CisJCSAgICBpZiAocmV0ID09IDApCisJCSAgICAgICAgYWNjZXB0ID0gMTsKKwkJICAgIGVsc2UKKwkJICAgICAgICByZXR1cm4oMCk7CisJCX0gZWxzZSB7CisJCSAgICByZXQgPSB4bWxSZWdDaGVja0NoYXJhY3RlclJhbmdlKHJhbmdlLT50eXBlLCBjb2RlcG9pbnQsCisJCQkJCQkwLCByYW5nZS0+c3RhcnQsIHJhbmdlLT5lbmQsCisJCQkJCQlyYW5nZS0+YmxvY2tOYW1lKTsKKwkJICAgIGlmIChyZXQgIT0gMCkKKwkJCWFjY2VwdCA9IDE7IC8qIG1pZ2h0IHN0aWxsIGJlIGV4Y2x1ZGVkICovCisJCX0KKwkgICAgfQorCSAgICByZXR1cm4oYWNjZXB0KTsKKwl9CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TVFJJTkc6CisJICAgIHByaW50ZigiVE9ETzogWE1MX1JFR0VYUF9TVFJJTkdcbiIpOworCSAgICByZXR1cm4oLTEpOworICAgICAgICBjYXNlIFhNTF9SRUdFWFBfQU5ZQ0hBUjoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0FOWVNQQUNFOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTk9UU1BBQ0U6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9JTklUTkFNRToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX05PVElOSVROQU1FOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTkFNRUNIQVI6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1ROQU1FQ0hBUjoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0RFQ0lNQUw6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1RERUNJTUFMOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUkVBTENIQVI6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OT1RSRUFMQ0hBUjoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUjoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9VUFBFUkNBU0U6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9MRVRURVJfTE9XRVJDQVNFOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTEVUVEVSX1RJVExFQ0FTRToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9NT0RJRklFUjoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX0xFVFRFUl9PVEhFUlM6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9NQVJLOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTUFSS19OT05TUEFDSU5HOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTUFSS19TUEFDRUNPTUJJTklORzoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX01BUktfRU5DTE9TSU5HOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTlVNQkVSOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTlVNQkVSX0RFQ0lNQUw6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9OVU1CRVJfTEVUVEVSOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfTlVNQkVSX09USEVSUzoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfQ09OTkVDVE9SOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfREFTSDoKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX09QRU46CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9QVU5DVF9DTE9TRToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0lOSVRRVU9URToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1BVTkNUX0ZJTlFVT1RFOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfUFVOQ1RfT1RIRVJTOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU0VQQVI6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TRVBBUl9TUEFDRToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX1NFUEFSX0xJTkU6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TRVBBUl9QQVJBOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU1lNQk9MOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfU1lNQk9MX01BVEg6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0xfQ1VSUkVOQ1k6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0xfTU9ESUZJRVI6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9TWU1CT0xfT1RIRVJTOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVI6CisgICAgICAgIGNhc2UgWE1MX1JFR0VYUF9PVEhFUl9DT05UUk9MOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVJfRk9STUFUOgorICAgICAgICBjYXNlIFhNTF9SRUdFWFBfT1RIRVJfUFJJVkFURToKKyAgICAgICAgY2FzZSBYTUxfUkVHRVhQX09USEVSX05BOgorCWNhc2UgWE1MX1JFR0VYUF9CTE9DS19OQU1FOgorCSAgICByZXQgPSB4bWxSZWdDaGVja0NoYXJhY3RlclJhbmdlKGF0b20tPnR5cGUsIGNvZGVwb2ludCwgMCwgMCwgMCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB4bWxDaGFyICopYXRvbS0+dmFsdWVwKTsKKwkgICAgaWYgKGF0b20tPm5lZykKKwkJcmV0ID0gIXJldDsKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKglTYXZpbmcgYW5kIHJlc3RvcmluZyBzdGF0ZSBvZiBhbiBleGVjdXRpb24gY29udGV4dAkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIERFQlVHX1JFR0VYUF9FWEVDCitzdGF0aWMgdm9pZAoreG1sRkFSZWdEZWJ1Z0V4ZWMoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYykgeworICAgIHByaW50Zigic3RhdGU6ICVkOiVkOmlkeCAlZCIsIGV4ZWMtPnN0YXRlLT5ubywgZXhlYy0+dHJhbnNubywgZXhlYy0+aW5kZXgpOworICAgIGlmIChleGVjLT5pbnB1dFN0YWNrICE9IE5VTEwpIHsKKwlpbnQgaTsKKwlwcmludGYoIjogIik7CisJZm9yIChpID0gMDsoaSA8IDMpICYmIChpIDwgZXhlYy0+aW5wdXRTdGFja05yKTtpKyspCisJICAgIHByaW50ZigiJXMgIiwgKGNvbnN0IGNoYXIgKikKKwkgICAgICAgICAgIGV4ZWMtPmlucHV0U3RhY2tbZXhlYy0+aW5wdXRTdGFja05yIC0gKGkgKyAxKV0udmFsdWUpOworICAgIH0gZWxzZSB7CisJcHJpbnRmKCI6ICVzIiwgJihleGVjLT5pbnB1dFN0cmluZ1tleGVjLT5pbmRleF0pKTsKKyAgICB9CisgICAgcHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3N0YXRpYyB2b2lkCit4bWxGQVJlZ0V4ZWNTYXZlKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMpIHsKKyNpZmRlZiBERUJVR19SRUdFWFBfRVhFQworICAgIHByaW50Zigic2F2aW5nICIpOworICAgIGV4ZWMtPnRyYW5zbm8rKzsKKyAgICB4bWxGQVJlZ0RlYnVnRXhlYyhleGVjKTsKKyAgICBleGVjLT50cmFuc25vLS07CisjZW5kaWYKKyNpZmRlZiBNQVhfUFVTSAorICAgIGlmIChleGVjLT5uYlB1c2ggPiBNQVhfUFVTSCkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGV4ZWMtPm5iUHVzaCsrOworI2VuZGlmCisKKyAgICBpZiAoZXhlYy0+bWF4Um9sbGJhY2tzID09IDApIHsKKwlleGVjLT5tYXhSb2xsYmFja3MgPSA0OworCWV4ZWMtPnJvbGxiYWNrcyA9ICh4bWxSZWdFeGVjUm9sbGJhY2sgKikgeG1sTWFsbG9jKGV4ZWMtPm1heFJvbGxiYWNrcyAqCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbFJlZ0V4ZWNSb2xsYmFjaykpOworCWlmIChleGVjLT5yb2xsYmFja3MgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoTlVMTCwgInNhdmluZyByZWdleHAiKTsKKwkgICAgZXhlYy0+bWF4Um9sbGJhY2tzID0gMDsKKwkgICAgcmV0dXJuOworCX0KKwltZW1zZXQoZXhlYy0+cm9sbGJhY2tzLCAwLAorCSAgICAgICBleGVjLT5tYXhSb2xsYmFja3MgKiBzaXplb2YoeG1sUmVnRXhlY1JvbGxiYWNrKSk7CisgICAgfSBlbHNlIGlmIChleGVjLT5uYlJvbGxiYWNrcyA+PSBleGVjLT5tYXhSb2xsYmFja3MpIHsKKwl4bWxSZWdFeGVjUm9sbGJhY2sgKnRtcDsKKwlpbnQgbGVuID0gZXhlYy0+bWF4Um9sbGJhY2tzOworCisJZXhlYy0+bWF4Um9sbGJhY2tzICo9IDI7CisJdG1wID0gKHhtbFJlZ0V4ZWNSb2xsYmFjayAqKSB4bWxSZWFsbG9jKGV4ZWMtPnJvbGxiYWNrcywKKwkJCWV4ZWMtPm1heFJvbGxiYWNrcyAqIHNpemVvZih4bWxSZWdFeGVjUm9sbGJhY2spKTsKKwlpZiAodG1wID09IE5VTEwpIHsKKwkgICAgeG1sUmVnZXhwRXJyTWVtb3J5KE5VTEwsICJzYXZpbmcgcmVnZXhwIik7CisJICAgIGV4ZWMtPm1heFJvbGxiYWNrcyAvPSAyOworCSAgICByZXR1cm47CisJfQorCWV4ZWMtPnJvbGxiYWNrcyA9IHRtcDsKKwl0bXAgPSAmZXhlYy0+cm9sbGJhY2tzW2xlbl07CisJbWVtc2V0KHRtcCwgMCwgKGV4ZWMtPm1heFJvbGxiYWNrcyAtIGxlbikgKiBzaXplb2YoeG1sUmVnRXhlY1JvbGxiYWNrKSk7CisgICAgfQorICAgIGV4ZWMtPnJvbGxiYWNrc1tleGVjLT5uYlJvbGxiYWNrc10uc3RhdGUgPSBleGVjLT5zdGF0ZTsKKyAgICBleGVjLT5yb2xsYmFja3NbZXhlYy0+bmJSb2xsYmFja3NdLmluZGV4ID0gZXhlYy0+aW5kZXg7CisgICAgZXhlYy0+cm9sbGJhY2tzW2V4ZWMtPm5iUm9sbGJhY2tzXS5uZXh0YnJhbmNoID0gZXhlYy0+dHJhbnNubyArIDE7CisgICAgaWYgKGV4ZWMtPmNvbXAtPm5iQ291bnRlcnMgPiAwKSB7CisJaWYgKGV4ZWMtPnJvbGxiYWNrc1tleGVjLT5uYlJvbGxiYWNrc10uY291bnRzID09IE5VTEwpIHsKKwkgICAgZXhlYy0+cm9sbGJhY2tzW2V4ZWMtPm5iUm9sbGJhY2tzXS5jb3VudHMgPSAoaW50ICopCisJCXhtbE1hbGxvYyhleGVjLT5jb21wLT5uYkNvdW50ZXJzICogc2l6ZW9mKGludCkpOworCSAgICBpZiAoZXhlYy0+cm9sbGJhY2tzW2V4ZWMtPm5iUm9sbGJhY2tzXS5jb3VudHMgPT0gTlVMTCkgeworCQl4bWxSZWdleHBFcnJNZW1vcnkoTlVMTCwgInNhdmluZyByZWdleHAiKTsKKwkJZXhlYy0+c3RhdHVzID0gLTU7CisJCXJldHVybjsKKwkgICAgfQorCX0KKwltZW1jcHkoZXhlYy0+cm9sbGJhY2tzW2V4ZWMtPm5iUm9sbGJhY2tzXS5jb3VudHMsIGV4ZWMtPmNvdW50cywKKwkgICAgICAgZXhlYy0+Y29tcC0+bmJDb3VudGVycyAqIHNpemVvZihpbnQpKTsKKyAgICB9CisgICAgZXhlYy0+bmJSb2xsYmFja3MrKzsKK30KKworc3RhdGljIHZvaWQKK3htbEZBUmVnRXhlY1JvbGxCYWNrKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMpIHsKKyAgICBpZiAoZXhlYy0+bmJSb2xsYmFja3MgPD0gMCkgeworCWV4ZWMtPnN0YXR1cyA9IC0xOworI2lmZGVmIERFQlVHX1JFR0VYUF9FWEVDCisJcHJpbnRmKCJyb2xsYmFjayBmYWlsZWQgb24gZW1wdHkgc3RhY2tcbiIpOworI2VuZGlmCisJcmV0dXJuOworICAgIH0KKyAgICBleGVjLT5uYlJvbGxiYWNrcy0tOworICAgIGV4ZWMtPnN0YXRlID0gZXhlYy0+cm9sbGJhY2tzW2V4ZWMtPm5iUm9sbGJhY2tzXS5zdGF0ZTsKKyAgICBleGVjLT5pbmRleCA9IGV4ZWMtPnJvbGxiYWNrc1tleGVjLT5uYlJvbGxiYWNrc10uaW5kZXg7CisgICAgZXhlYy0+dHJhbnNubyA9IGV4ZWMtPnJvbGxiYWNrc1tleGVjLT5uYlJvbGxiYWNrc10ubmV4dGJyYW5jaDsKKyAgICBpZiAoZXhlYy0+Y29tcC0+bmJDb3VudGVycyA+IDApIHsKKwlpZiAoZXhlYy0+cm9sbGJhY2tzW2V4ZWMtPm5iUm9sbGJhY2tzXS5jb3VudHMgPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKHN0ZGVyciwgImV4ZWMgc2F2ZTogYWxsb2NhdGlvbiBmYWlsZWQiKTsKKwkgICAgZXhlYy0+c3RhdHVzID0gLTY7CisJICAgIHJldHVybjsKKwl9CisJbWVtY3B5KGV4ZWMtPmNvdW50cywgZXhlYy0+cm9sbGJhY2tzW2V4ZWMtPm5iUm9sbGJhY2tzXS5jb3VudHMsCisJICAgICAgIGV4ZWMtPmNvbXAtPm5iQ291bnRlcnMgKiBzaXplb2YoaW50KSk7CisgICAgfQorCisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKyAgICBwcmludGYoInJlc3RvcmVkICIpOworICAgIHhtbEZBUmVnRGVidWdFeGVjKGV4ZWMpOworI2VuZGlmCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqCVZlcmlmaWVyLCBydW5uaW5nIGFuIGlucHV0IGFnYWluc3QgYSBjb21waWxlZCByZWdleHAJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK3htbEZBUmVnRXhlYyh4bWxSZWdleHBQdHIgY29tcCwgY29uc3QgeG1sQ2hhciAqY29udGVudCkgeworICAgIHhtbFJlZ0V4ZWNDdHh0IGV4ZWN2YWw7CisgICAgeG1sUmVnRXhlY0N0eHRQdHIgZXhlYyA9ICZleGVjdmFsOworICAgIGludCByZXQsIGNvZGVwb2ludCA9IDAsIGxlbiwgZGV0ZXI7CisKKyAgICBleGVjLT5pbnB1dFN0cmluZyA9IGNvbnRlbnQ7CisgICAgZXhlYy0+aW5kZXggPSAwOworICAgIGV4ZWMtPm5iUHVzaCA9IDA7CisgICAgZXhlYy0+ZGV0ZXJtaW5pc3QgPSAxOworICAgIGV4ZWMtPm1heFJvbGxiYWNrcyA9IDA7CisgICAgZXhlYy0+bmJSb2xsYmFja3MgPSAwOworICAgIGV4ZWMtPnJvbGxiYWNrcyA9IE5VTEw7CisgICAgZXhlYy0+c3RhdHVzID0gMDsKKyAgICBleGVjLT5jb21wID0gY29tcDsKKyAgICBleGVjLT5zdGF0ZSA9IGNvbXAtPnN0YXRlc1swXTsKKyAgICBleGVjLT50cmFuc25vID0gMDsKKyAgICBleGVjLT50cmFuc2NvdW50ID0gMDsKKyAgICBleGVjLT5pbnB1dFN0YWNrID0gTlVMTDsKKyAgICBleGVjLT5pbnB1dFN0YWNrTWF4ID0gMDsKKyAgICBpZiAoY29tcC0+bmJDb3VudGVycyA+IDApIHsKKwlleGVjLT5jb3VudHMgPSAoaW50ICopIHhtbE1hbGxvYyhjb21wLT5uYkNvdW50ZXJzICogc2l6ZW9mKGludCkpOworCWlmIChleGVjLT5jb3VudHMgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoTlVMTCwgInJ1bm5pbmcgcmVnZXhwIik7CisJICAgIHJldHVybigtMSk7CisJfQorICAgICAgICBtZW1zZXQoZXhlYy0+Y291bnRzLCAwLCBjb21wLT5uYkNvdW50ZXJzICogc2l6ZW9mKGludCkpOworICAgIH0gZWxzZQorCWV4ZWMtPmNvdW50cyA9IE5VTEw7CisgICAgd2hpbGUgKChleGVjLT5zdGF0dXMgPT0gMCkgJiYKKwkgICAoKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSAhPSAwKSB8fAorCSAgICAoKGV4ZWMtPnN0YXRlICE9IE5VTEwpICYmCisJICAgICAoZXhlYy0+c3RhdGUtPnR5cGUgIT0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkpKSkgeworCXhtbFJlZ1RyYW5zUHRyIHRyYW5zOworCXhtbFJlZ0F0b21QdHIgYXRvbTsKKworCS8qCisJICogSWYgZW5kIG9mIGlucHV0IG9uIG5vbi10ZXJtaW5hbCBzdGF0ZSwgcm9sbGJhY2ssIGhvd2V2ZXIgd2UgbWF5CisJICogc3RpbGwgaGF2ZSBlcHNpbG9uIGxpa2UgdHJhbnNpdGlvbiBmb3IgY291bnRlZCB0cmFuc2l0aW9ucworCSAqIG9uIGNvdW50ZXJzLCBpbiB0aGF0IGNhc2UgZG9uJ3QgYnJlYWsgdG9vIGVhcmx5LiAgQWRkaXRpb25hbGx5LAorCSAqIGlmIHdlIGFyZSB3b3JraW5nIG9uIGEgcmFuZ2UgbGlrZSAiQUJ7MCwyfSIsIHdoZXJlIEIgaXMgbm90IHByZXNlbnQsCisJICogd2UgZG9uJ3Qgd2FudCB0byBicmVhay4KKwkgKi8KKwlsZW4gPSAxOworCWlmICgoZXhlYy0+aW5wdXRTdHJpbmdbZXhlYy0+aW5kZXhdID09IDApICYmIChleGVjLT5jb3VudHMgPT0gTlVMTCkpIHsKKwkgICAgLyoKKwkgICAgICogaWYgdGhlcmUgaXMgYSB0cmFuc2l0aW9uLCB3ZSBtdXN0IGNoZWNrIGlmCisJICAgICAqICBhdG9tIGFsbG93cyBtaW5PY2N1cnMgb2YgMAorCSAgICAgKi8KKwkgICAgaWYgKGV4ZWMtPnRyYW5zbm8gPCBleGVjLT5zdGF0ZS0+bmJUcmFucykgeworCSAgICAgICAgdHJhbnMgPSAmZXhlYy0+c3RhdGUtPnRyYW5zW2V4ZWMtPnRyYW5zbm9dOworCQlpZiAodHJhbnMtPnRvID49MCkgeworCQkgICAgYXRvbSA9IHRyYW5zLT5hdG9tOworCQkgICAgaWYgKCEoKGF0b20tPm1pbiA9PSAwKSAmJiAoYXRvbS0+bWF4ID4gMCkpKQorCQkgICAgICAgIGdvdG8gcm9sbGJhY2s7CisJCX0KKwkgICAgfSBlbHNlCisJICAgICAgICBnb3RvIHJvbGxiYWNrOworCX0KKworCWV4ZWMtPnRyYW5zY291bnQgPSAwOworCWZvciAoO2V4ZWMtPnRyYW5zbm8gPCBleGVjLT5zdGF0ZS0+bmJUcmFucztleGVjLT50cmFuc25vKyspIHsKKwkgICAgdHJhbnMgPSAmZXhlYy0+c3RhdGUtPnRyYW5zW2V4ZWMtPnRyYW5zbm9dOworCSAgICBpZiAodHJhbnMtPnRvIDwgMCkKKwkJY29udGludWU7CisJICAgIGF0b20gPSB0cmFucy0+YXRvbTsKKwkgICAgcmV0ID0gMDsKKwkgICAgZGV0ZXIgPSAxOworCSAgICBpZiAodHJhbnMtPmNvdW50ID49IDApIHsKKwkJaW50IGNvdW50OworCQl4bWxSZWdDb3VudGVyUHRyIGNvdW50ZXI7CisKKwkJaWYgKGV4ZWMtPmNvdW50cyA9PSBOVUxMKSB7CisJCSAgICBleGVjLT5zdGF0dXMgPSAtMTsKKwkJICAgIGdvdG8gZXJyb3I7CisJCX0KKwkJLyoKKwkJICogQSBjb3VudGVkIHRyYW5zaXRpb24uCisJCSAqLworCisJCWNvdW50ID0gZXhlYy0+Y291bnRzW3RyYW5zLT5jb3VudF07CisJCWNvdW50ZXIgPSAmZXhlYy0+Y29tcC0+Y291bnRlcnNbdHJhbnMtPmNvdW50XTsKKyNpZmRlZiBERUJVR19SRUdFWFBfRVhFQworCQlwcmludGYoInRlc3RpbmcgY291bnQgJWQ6IHZhbCAlZCwgbWluICVkLCBtYXggJWRcbiIsCisJCSAgICAgICB0cmFucy0+Y291bnQsIGNvdW50LCBjb3VudGVyLT5taW4sICBjb3VudGVyLT5tYXgpOworI2VuZGlmCisJCXJldCA9ICgoY291bnQgPj0gY291bnRlci0+bWluKSAmJiAoY291bnQgPD0gY291bnRlci0+bWF4KSk7CisJCWlmICgocmV0KSAmJiAoY291bnRlci0+bWluICE9IGNvdW50ZXItPm1heCkpCisJCSAgICBkZXRlciA9IDA7CisJICAgIH0gZWxzZSBpZiAoYXRvbSA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAiZXBzaWxvbiB0cmFuc2l0aW9uIGxlZnQgYXQgcnVudGltZVxuIik7CisJCWV4ZWMtPnN0YXR1cyA9IC0yOworCQlicmVhazsKKwkgICAgfSBlbHNlIGlmIChleGVjLT5pbnB1dFN0cmluZ1tleGVjLT5pbmRleF0gIT0gMCkgeworICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IENVUl9TQ0hBUigmKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSksIGxlbik7CisJCXJldCA9IHhtbFJlZ0NoZWNrQ2hhcmFjdGVyKGF0b20sIGNvZGVwb2ludCk7CisJCWlmICgocmV0ID09IDEpICYmIChhdG9tLT5taW4gPj0gMCkgJiYgKGF0b20tPm1heCA+IDApKSB7CisJCSAgICB4bWxSZWdTdGF0ZVB0ciB0byA9IGNvbXAtPnN0YXRlc1t0cmFucy0+dG9dOworCisJCSAgICAvKgorCQkgICAgICogdGhpcyBpcyBhIG11bHRpcGxlIGlucHV0IHNlcXVlbmNlCisJCSAgICAgKiBJZiB0aGVyZSBpcyBhIGNvdW50ZXIgYXNzb2NpYXRlZCBpbmNyZW1lbnQgaXQgbm93LgorCQkgICAgICogYmVmb3JlIHBvdGVudGlhbGx5IHNhdmluZyBhbmQgcm9sbGJhY2sKKwkJICAgICAqIGRvIG5vdCBpbmNyZW1lbnQgaWYgdGhlIGNvdW50ZXIgaXMgYWxyZWFkeSBvdmVyIHRoZQorCQkgICAgICogbWF4aW11bSBsaW1pdCBpbiB3aGljaCBjYXNlIGdldCB0byBuZXh0IHRyYW5zaXRpb24KKwkJICAgICAqLworCQkgICAgaWYgKHRyYW5zLT5jb3VudGVyID49IDApIHsKKwkJCXhtbFJlZ0NvdW50ZXJQdHIgY291bnRlcjsKKworCQkJaWYgKChleGVjLT5jb3VudHMgPT0gTlVMTCkgfHwKKwkJCSAgICAoZXhlYy0+Y29tcCA9PSBOVUxMKSB8fAorCQkJICAgIChleGVjLT5jb21wLT5jb3VudGVycyA9PSBOVUxMKSkgeworCQkJICAgIGV4ZWMtPnN0YXR1cyA9IC0xOworCQkJICAgIGdvdG8gZXJyb3I7CisJCQl9CisJCQljb3VudGVyID0gJmV4ZWMtPmNvbXAtPmNvdW50ZXJzW3RyYW5zLT5jb3VudGVyXTsKKwkJCWlmIChleGVjLT5jb3VudHNbdHJhbnMtPmNvdW50ZXJdID49IGNvdW50ZXItPm1heCkKKwkJCSAgICBjb250aW51ZTsgLyogZm9yIGxvb3Agb24gdHJhbnNpdGlvbnMgKi8KKworI2lmZGVmIERFQlVHX1JFR0VYUF9FWEVDCisJCQlwcmludGYoIkluY3JlYXNpbmcgY291bnQgJWRcbiIsIHRyYW5zLT5jb3VudGVyKTsKKyNlbmRpZgorCQkJZXhlYy0+Y291bnRzW3RyYW5zLT5jb3VudGVyXSsrOworCQkgICAgfQorCQkgICAgaWYgKGV4ZWMtPnN0YXRlLT5uYlRyYW5zID4gZXhlYy0+dHJhbnNubyArIDEpIHsKKwkJCXhtbEZBUmVnRXhlY1NhdmUoZXhlYyk7CisJCSAgICB9CisJCSAgICBleGVjLT50cmFuc2NvdW50ID0gMTsKKwkJICAgIGRvIHsKKwkJCS8qCisJCQkgKiBUcnkgdG8gcHJvZ3Jlc3MgYXMgbXVjaCBhcyBwb3NzaWJsZSBvbiB0aGUgaW5wdXQKKwkJCSAqLworCQkJaWYgKGV4ZWMtPnRyYW5zY291bnQgPT0gYXRvbS0+bWF4KSB7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCQlleGVjLT5pbmRleCArPSBsZW47CisJCQkvKgorCQkJICogRW5kIG9mIGlucHV0OiBzdG9wIGhlcmUKKwkJCSAqLworCQkJaWYgKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSA9PSAwKSB7CisJCQkgICAgZXhlYy0+aW5kZXggLT0gbGVuOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJaWYgKGV4ZWMtPnRyYW5zY291bnQgPj0gYXRvbS0+bWluKSB7CisJCQkgICAgaW50IHRyYW5zbm8gPSBleGVjLT50cmFuc25vOworCQkJICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXRlID0gZXhlYy0+c3RhdGU7CisKKwkJCSAgICAvKgorCQkJICAgICAqIFRoZSB0cmFuc2l0aW9uIGlzIGFjY2VwdGFibGUgc2F2ZSBpdAorCQkJICAgICAqLworCQkJICAgIGV4ZWMtPnRyYW5zbm8gPSAtMTsgLyogdHJpY2sgKi8KKwkJCSAgICBleGVjLT5zdGF0ZSA9IHRvOworCQkJICAgIHhtbEZBUmVnRXhlY1NhdmUoZXhlYyk7CisJCQkgICAgZXhlYy0+dHJhbnNubyA9IHRyYW5zbm87CisJCQkgICAgZXhlYy0+c3RhdGUgPSBzdGF0ZTsKKwkJCX0KKwkJCWNvZGVwb2ludCA9IENVUl9TQ0hBUigmKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSksCisJCQkJICAgICAgICAgICAgICBsZW4pOworCQkJcmV0ID0geG1sUmVnQ2hlY2tDaGFyYWN0ZXIoYXRvbSwgY29kZXBvaW50KTsKKwkJCWV4ZWMtPnRyYW5zY291bnQrKzsKKwkJICAgIH0gd2hpbGUgKHJldCA9PSAxKTsKKwkJICAgIGlmIChleGVjLT50cmFuc2NvdW50IDwgYXRvbS0+bWluKQorCQkJcmV0ID0gMDsKKworCQkgICAgLyoKKwkJICAgICAqIElmIHRoZSBsYXN0IGNoZWNrIGZhaWxlZCBidXQgb25lIHRyYW5zaXRpb24gd2FzIGZvdW5kCisJCSAgICAgKiBwb3NzaWJsZSwgcm9sbGJhY2sKKwkJICAgICAqLworCQkgICAgaWYgKHJldCA8IDApCisJCQlyZXQgPSAwOworCQkgICAgaWYgKHJldCA9PSAwKSB7CisJCQlnb3RvIHJvbGxiYWNrOworCQkgICAgfQorCQkgICAgaWYgKHRyYW5zLT5jb3VudGVyID49IDApIHsKKwkJCWlmIChleGVjLT5jb3VudHMgPT0gTlVMTCkgeworCQkJICAgIGV4ZWMtPnN0YXR1cyA9IC0xOworCQkJICAgIGdvdG8gZXJyb3I7CisJCQl9CisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKwkJCXByaW50ZigiRGVjcmVhc2luZyBjb3VudCAlZFxuIiwgdHJhbnMtPmNvdW50ZXIpOworI2VuZGlmCisJCQlleGVjLT5jb3VudHNbdHJhbnMtPmNvdW50ZXJdLS07CisJCSAgICB9CisJCX0gZWxzZSBpZiAoKHJldCA9PSAwKSAmJiAoYXRvbS0+bWluID09IDApICYmIChhdG9tLT5tYXggPiAwKSkgeworCQkgICAgLyoKKwkJICAgICAqIHdlIGRvbid0IG1hdGNoIG9uIHRoZSBjb2RlcG9pbnQsIGJ1dCBtaW5PY2N1cnMgb2YgMAorCQkgICAgICogc2F5cyB0aGF0J3Mgb2suICBTZXR0aW5nIGxlbiB0byAwIGluaGliaXRzIHN0ZXBwaW5nCisJCSAgICAgKiBvdmVyIHRoZSBjb2RlcG9pbnQuCisJCSAgICAgKi8KKwkJICAgIGV4ZWMtPnRyYW5zY291bnQgPSAxOworCQkgICAgbGVuID0gMDsKKwkJICAgIHJldCA9IDE7CisJCX0KKwkgICAgfSBlbHNlIGlmICgoYXRvbS0+bWluID09IDApICYmIChhdG9tLT5tYXggPiAwKSkgeworCSAgICAgICAgLyogYW5vdGhlciBzcG90IHRvIG1hdGNoIHdoZW4gbWluT2NjdXJzIGlzIDAgKi8KKwkJZXhlYy0+dHJhbnNjb3VudCA9IDE7CisJCWxlbiA9IDA7CisJCXJldCA9IDE7CisJICAgIH0KKwkgICAgaWYgKHJldCA9PSAxKSB7CisJCWlmICgodHJhbnMtPm5kID09IDEpIHx8CisJCSAgICAoKHRyYW5zLT5jb3VudCA+PSAwKSAmJiAoZGV0ZXIgPT0gMCkgJiYKKwkJICAgICAoZXhlYy0+c3RhdGUtPm5iVHJhbnMgPiBleGVjLT50cmFuc25vICsgMSkpKSB7CisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKwkJICAgIGlmICh0cmFucy0+bmQgPT0gMSkKKwkJICAgICAgICBwcmludGYoIlNhdmluZyBvbiBuZCB0cmFuc2l0aW9uIGF0b20gJWQgZm9yICVjIGF0ICVkXG4iLAorCQkJICAgICAgIHRyYW5zLT5hdG9tLT5ubywgY29kZXBvaW50LCBleGVjLT5pbmRleCk7CisJCSAgICBlbHNlCisJCSAgICAgICAgcHJpbnRmKCJTYXZpbmcgb24gY291bnRlZCB0cmFuc2l0aW9uIGNvdW50ICVkIGZvciAlYyBhdCAlZFxuIiwKKwkJCSAgICAgICB0cmFucy0+Y291bnQsIGNvZGVwb2ludCwgZXhlYy0+aW5kZXgpOworI2VuZGlmCisJCSAgICB4bWxGQVJlZ0V4ZWNTYXZlKGV4ZWMpOworCQl9CisJCWlmICh0cmFucy0+Y291bnRlciA+PSAwKSB7CisJCSAgICB4bWxSZWdDb3VudGVyUHRyIGNvdW50ZXI7CisKKyAgICAgICAgICAgICAgICAgICAgLyogbWFrZSBzdXJlIHdlIGRvbid0IGdvIG92ZXIgdGhlIGNvdW50ZXIgbWF4aW11bSB2YWx1ZSAqLworCQkgICAgaWYgKChleGVjLT5jb3VudHMgPT0gTlVMTCkgfHwKKwkJCShleGVjLT5jb21wID09IE5VTEwpIHx8CisJCQkoZXhlYy0+Y29tcC0+Y291bnRlcnMgPT0gTlVMTCkpIHsKKwkJCWV4ZWMtPnN0YXR1cyA9IC0xOworCQkJZ290byBlcnJvcjsKKwkJICAgIH0KKwkJICAgIGNvdW50ZXIgPSAmZXhlYy0+Y29tcC0+Y291bnRlcnNbdHJhbnMtPmNvdW50ZXJdOworCQkgICAgaWYgKGV4ZWMtPmNvdW50c1t0cmFucy0+Y291bnRlcl0gPj0gY291bnRlci0+bWF4KQorCQkJY29udGludWU7IC8qIGZvciBsb29wIG9uIHRyYW5zaXRpb25zICovCisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKwkJICAgIHByaW50ZigiSW5jcmVhc2luZyBjb3VudCAlZFxuIiwgdHJhbnMtPmNvdW50ZXIpOworI2VuZGlmCisJCSAgICBleGVjLT5jb3VudHNbdHJhbnMtPmNvdW50ZXJdKys7CisJCX0KKwkJaWYgKCh0cmFucy0+Y291bnQgPj0gMCkgJiYKKwkJICAgICh0cmFucy0+Y291bnQgPCBSRUdFWFBfQUxMX0NPVU5URVIpKSB7CisJCSAgICBpZiAoZXhlYy0+Y291bnRzID09IE5VTEwpIHsKKwkJICAgICAgICBleGVjLT5zdGF0dXMgPSAtMTsKKwkJCWdvdG8gZXJyb3I7CisJCSAgICB9CisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKwkJICAgIHByaW50ZigicmVzZXR0aW5nIGNvdW50ICVkIG9uIHRyYW5zaXRpb25cbiIsCisJCSAgICAgICAgICAgdHJhbnMtPmNvdW50KTsKKyNlbmRpZgorCQkgICAgZXhlYy0+Y291bnRzW3RyYW5zLT5jb3VudF0gPSAwOworCQl9CisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKwkJcHJpbnRmKCJlbnRlcmluZyBzdGF0ZSAlZFxuIiwgdHJhbnMtPnRvKTsKKyNlbmRpZgorCQlleGVjLT5zdGF0ZSA9IGNvbXAtPnN0YXRlc1t0cmFucy0+dG9dOworCQlleGVjLT50cmFuc25vID0gMDsKKwkJaWYgKHRyYW5zLT5hdG9tICE9IE5VTEwpIHsKKwkJICAgIGV4ZWMtPmluZGV4ICs9IGxlbjsKKwkJfQorCQlnb3RvIHByb2dyZXNzOworCSAgICB9IGVsc2UgaWYgKHJldCA8IDApIHsKKwkJZXhlYy0+c3RhdHVzID0gLTQ7CisJCWJyZWFrOworCSAgICB9CisJfQorCWlmICgoZXhlYy0+dHJhbnNubyAhPSAwKSB8fCAoZXhlYy0+c3RhdGUtPm5iVHJhbnMgPT0gMCkpIHsKK3JvbGxiYWNrOgorCSAgICAvKgorCSAgICAgKiBGYWlsZWQgdG8gZmluZCBhIHdheSBvdXQKKwkgICAgICovCisJICAgIGV4ZWMtPmRldGVybWluaXN0ID0gMDsKKyNpZmRlZiBERUJVR19SRUdFWFBfRVhFQworCSAgICBwcmludGYoInJvbGxiYWNrIGZyb20gc3RhdGUgJWQgb24gJWQ6JWNcbiIsIGV4ZWMtPnN0YXRlLT5ubywKKwkgICAgICAgICAgIGNvZGVwb2ludCxjb2RlcG9pbnQpOworI2VuZGlmCisJICAgIHhtbEZBUmVnRXhlY1JvbGxCYWNrKGV4ZWMpOworCX0KK3Byb2dyZXNzOgorCWNvbnRpbnVlOworICAgIH0KK2Vycm9yOgorICAgIGlmIChleGVjLT5yb2xsYmFja3MgIT0gTlVMTCkgeworCWlmIChleGVjLT5jb3VudHMgIT0gTlVMTCkgeworCSAgICBpbnQgaTsKKworCSAgICBmb3IgKGkgPSAwO2kgPCBleGVjLT5tYXhSb2xsYmFja3M7aSsrKQorCQlpZiAoZXhlYy0+cm9sbGJhY2tzW2ldLmNvdW50cyAhPSBOVUxMKQorCQkgICAgeG1sRnJlZShleGVjLT5yb2xsYmFja3NbaV0uY291bnRzKTsKKwl9CisJeG1sRnJlZShleGVjLT5yb2xsYmFja3MpOworICAgIH0KKyAgICBpZiAoZXhlYy0+Y291bnRzICE9IE5VTEwpCisJeG1sRnJlZShleGVjLT5jb3VudHMpOworICAgIGlmIChleGVjLT5zdGF0dXMgPT0gMCkKKwlyZXR1cm4oMSk7CisgICAgaWYgKGV4ZWMtPnN0YXR1cyA9PSAtMSkgeworCWlmIChleGVjLT5uYlB1c2ggPiBNQVhfUFVTSCkKKwkgICAgcmV0dXJuKC0xKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIHJldHVybihleGVjLT5zdGF0dXMpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKglQcm9ncmVzc2l2ZSBpbnRlcmZhY2UgdG8gdGhlIHZlcmlmaWVyIG9uZSBhdG9tIGF0IGEgdGltZQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmZGVmIERFQlVHX0VSUgorc3RhdGljIHZvaWQgdGVzdGVycih4bWxSZWdFeGVjQ3R4dFB0ciBleGVjKTsKKyNlbmRpZgorCisvKioKKyAqIHhtbFJlZ05ld0V4ZWNDdHh0OgorICogQGNvbXA6IGEgcHJlY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9uCisgKiBAY2FsbGJhY2s6IGEgY2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBmb3IgaGFuZGxpbmcgcHJvZ3Jlc3NlcyBpbiB0aGUKKyAqICAgICAgICAgICAgYXV0b21hdGEgbWF0Y2hpbmcgcGhhc2UKKyAqIEBkYXRhOiB0aGUgY29udGV4dCBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIGNhbGxiYWNrIGluIHRoaXMgY29udGV4dAorICoKKyAqIEJ1aWxkIGEgY29udGV4dCB1c2VkIGZvciBwcm9ncmVzc2l2ZSBldmFsdWF0aW9uIG9mIGEgcmVnZXhwLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBjb250ZXh0CisgKi8KK3htbFJlZ0V4ZWNDdHh0UHRyCit4bWxSZWdOZXdFeGVjQ3R4dCh4bWxSZWdleHBQdHIgY29tcCwgeG1sUmVnRXhlY0NhbGxiYWNrcyBjYWxsYmFjaywgdm9pZCAqZGF0YSkgeworICAgIHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWM7CisKKyAgICBpZiAoY29tcCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKGNvbXAtPmNvbXBhY3QgPT0gTlVMTCkgJiYgKGNvbXAtPnN0YXRlcyA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGV4ZWMgPSAoeG1sUmVnRXhlY0N0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sUmVnRXhlY0N0eHQpKTsKKyAgICBpZiAoZXhlYyA9PSBOVUxMKSB7CisJeG1sUmVnZXhwRXJyTWVtb3J5KE5VTEwsICJjcmVhdGluZyBleGVjdXRpb24gY29udGV4dCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGV4ZWMsIDAsIHNpemVvZih4bWxSZWdFeGVjQ3R4dCkpOworICAgIGV4ZWMtPmlucHV0U3RyaW5nID0gTlVMTDsKKyAgICBleGVjLT5pbmRleCA9IDA7CisgICAgZXhlYy0+ZGV0ZXJtaW5pc3QgPSAxOworICAgIGV4ZWMtPm1heFJvbGxiYWNrcyA9IDA7CisgICAgZXhlYy0+bmJSb2xsYmFja3MgPSAwOworICAgIGV4ZWMtPnJvbGxiYWNrcyA9IE5VTEw7CisgICAgZXhlYy0+c3RhdHVzID0gMDsKKyAgICBleGVjLT5jb21wID0gY29tcDsKKyAgICBpZiAoY29tcC0+Y29tcGFjdCA9PSBOVUxMKQorCWV4ZWMtPnN0YXRlID0gY29tcC0+c3RhdGVzWzBdOworICAgIGV4ZWMtPnRyYW5zbm8gPSAwOworICAgIGV4ZWMtPnRyYW5zY291bnQgPSAwOworICAgIGV4ZWMtPmNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgZXhlYy0+ZGF0YSA9IGRhdGE7CisgICAgaWYgKGNvbXAtPm5iQ291bnRlcnMgPiAwKSB7CisgICAgICAgIC8qCisJICogRm9yIGVycm9yIGhhbmRsaW5nLCBleGVjLT5jb3VudHMgaXMgYWxsb2NhdGVkIHR3aWNlIHRoZSBzaXplCisJICogdGhlIHNlY29uZCBoYWxmIGlzIHVzZWQgdG8gc3RvcmUgdGhlIGRhdGEgaW4gY2FzZSBvZiByb2xsYmFjaworCSAqLworCWV4ZWMtPmNvdW50cyA9IChpbnQgKikgeG1sTWFsbG9jKGNvbXAtPm5iQ291bnRlcnMgKiBzaXplb2YoaW50KQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMik7CisJaWYgKGV4ZWMtPmNvdW50cyA9PSBOVUxMKSB7CisJICAgIHhtbFJlZ2V4cEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgZXhlY3V0aW9uIGNvbnRleHQiKTsKKwkgICAgeG1sRnJlZShleGVjKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKyAgICAgICAgbWVtc2V0KGV4ZWMtPmNvdW50cywgMCwgY29tcC0+bmJDb3VudGVycyAqIHNpemVvZihpbnQpICogMik7CisJZXhlYy0+ZXJyQ291bnRzID0gJmV4ZWMtPmNvdW50c1tjb21wLT5uYkNvdW50ZXJzXTsKKyAgICB9IGVsc2UgeworCWV4ZWMtPmNvdW50cyA9IE5VTEw7CisJZXhlYy0+ZXJyQ291bnRzID0gTlVMTDsKKyAgICB9CisgICAgZXhlYy0+aW5wdXRTdGFja01heCA9IDA7CisgICAgZXhlYy0+aW5wdXRTdGFja05yID0gMDsKKyAgICBleGVjLT5pbnB1dFN0YWNrID0gTlVMTDsKKyAgICBleGVjLT5lcnJTdGF0ZU5vID0gLTE7CisgICAgZXhlYy0+ZXJyU3RyaW5nID0gTlVMTDsKKyAgICBleGVjLT5uYlB1c2ggPSAwOworICAgIHJldHVybihleGVjKTsKK30KKworLyoqCisgKiB4bWxSZWdGcmVlRXhlY0N0eHQ6CisgKiBAZXhlYzogYSByZWd1bGFyIGV4cHJlc3Npb24gZXZhdWxhdGlvbiBjb250ZXh0CisgKgorICogRnJlZSB0aGUgc3RydWN0dXJlcyBhc3NvY2lhdGVkIHRvIGEgcmVndWxhciBleHByZXNzaW9uIGV2YXVsYXRpb24gY29udGV4dC4KKyAqLwordm9pZAoreG1sUmVnRnJlZUV4ZWNDdHh0KHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMpIHsKKyAgICBpZiAoZXhlYyA9PSBOVUxMKQorCXJldHVybjsKKworICAgIGlmIChleGVjLT5yb2xsYmFja3MgIT0gTlVMTCkgeworCWlmIChleGVjLT5jb3VudHMgIT0gTlVMTCkgeworCSAgICBpbnQgaTsKKworCSAgICBmb3IgKGkgPSAwO2kgPCBleGVjLT5tYXhSb2xsYmFja3M7aSsrKQorCQlpZiAoZXhlYy0+cm9sbGJhY2tzW2ldLmNvdW50cyAhPSBOVUxMKQorCQkgICAgeG1sRnJlZShleGVjLT5yb2xsYmFja3NbaV0uY291bnRzKTsKKwl9CisJeG1sRnJlZShleGVjLT5yb2xsYmFja3MpOworICAgIH0KKyAgICBpZiAoZXhlYy0+Y291bnRzICE9IE5VTEwpCisJeG1sRnJlZShleGVjLT5jb3VudHMpOworICAgIGlmIChleGVjLT5pbnB1dFN0YWNrICE9IE5VTEwpIHsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7aSA8IGV4ZWMtPmlucHV0U3RhY2tOcjtpKyspIHsKKwkgICAgaWYgKGV4ZWMtPmlucHV0U3RhY2tbaV0udmFsdWUgIT0gTlVMTCkKKwkJeG1sRnJlZShleGVjLT5pbnB1dFN0YWNrW2ldLnZhbHVlKTsKKwl9CisJeG1sRnJlZShleGVjLT5pbnB1dFN0YWNrKTsKKyAgICB9CisgICAgaWYgKGV4ZWMtPmVyclN0cmluZyAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGV4ZWMtPmVyclN0cmluZyk7CisgICAgeG1sRnJlZShleGVjKTsKK30KKworc3RhdGljIHZvaWQKK3htbEZBUmVnRXhlY1NhdmVJbnB1dFN0cmluZyh4bWxSZWdFeGVjQ3R4dFB0ciBleGVjLCBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpIHsKKyNpZmRlZiBERUJVR19QVVNICisgICAgcHJpbnRmKCJzYXZpbmcgdmFsdWU6ICVkOiVzXG4iLCBleGVjLT5pbnB1dFN0YWNrTnIsIHZhbHVlKTsKKyNlbmRpZgorICAgIGlmIChleGVjLT5pbnB1dFN0YWNrTWF4ID09IDApIHsKKwlleGVjLT5pbnB1dFN0YWNrTWF4ID0gNDsKKwlleGVjLT5pbnB1dFN0YWNrID0gKHhtbFJlZ0lucHV0VG9rZW5QdHIpIAorCSAgICB4bWxNYWxsb2MoZXhlYy0+aW5wdXRTdGFja01heCAqIHNpemVvZih4bWxSZWdJbnB1dFRva2VuKSk7CisJaWYgKGV4ZWMtPmlucHV0U3RhY2sgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoTlVMTCwgInB1c2hpbmcgaW5wdXQgc3RyaW5nIik7CisJICAgIGV4ZWMtPmlucHV0U3RhY2tNYXggPSAwOworCSAgICByZXR1cm47CisJfQorICAgIH0gZWxzZSBpZiAoZXhlYy0+aW5wdXRTdGFja05yICsgMSA+PSBleGVjLT5pbnB1dFN0YWNrTWF4KSB7CisJeG1sUmVnSW5wdXRUb2tlblB0ciB0bXA7CisKKwlleGVjLT5pbnB1dFN0YWNrTWF4ICo9IDI7CisJdG1wID0gKHhtbFJlZ0lucHV0VG9rZW5QdHIpIHhtbFJlYWxsb2MoZXhlYy0+aW5wdXRTdGFjaywKKwkJCWV4ZWMtPmlucHV0U3RhY2tNYXggKiBzaXplb2YoeG1sUmVnSW5wdXRUb2tlbikpOworCWlmICh0bXAgPT0gTlVMTCkgeworCSAgICB4bWxSZWdleHBFcnJNZW1vcnkoTlVMTCwgInB1c2hpbmcgaW5wdXQgc3RyaW5nIik7CisJICAgIGV4ZWMtPmlucHV0U3RhY2tNYXggLz0gMjsKKwkgICAgcmV0dXJuOworCX0KKwlleGVjLT5pbnB1dFN0YWNrID0gdG1wOworICAgIH0KKyAgICBleGVjLT5pbnB1dFN0YWNrW2V4ZWMtPmlucHV0U3RhY2tOcl0udmFsdWUgPSB4bWxTdHJkdXAodmFsdWUpOworICAgIGV4ZWMtPmlucHV0U3RhY2tbZXhlYy0+aW5wdXRTdGFja05yXS5kYXRhID0gZGF0YTsKKyAgICBleGVjLT5pbnB1dFN0YWNrTnIrKzsKKyAgICBleGVjLT5pbnB1dFN0YWNrW2V4ZWMtPmlucHV0U3RhY2tOcl0udmFsdWUgPSBOVUxMOworICAgIGV4ZWMtPmlucHV0U3RhY2tbZXhlYy0+aW5wdXRTdGFja05yXS5kYXRhID0gTlVMTDsKK30KKworLyoqCisgKiB4bWxSZWdTdHJFcXVhbFdpbGRjYXJkOgorICogQGV4cFN0cjogIHRoZSBzdHJpbmcgdG8gYmUgZXZhbHVhdGVkIAorICogQHZhbFN0cjogIHRoZSB2YWxpZGF0aW9uIHN0cmluZworICoKKyAqIENoZWNrcyBpZiBib3RoIHN0cmluZ3MgYXJlIGVxdWFsIG9yIGhhdmUgdGhlIHNhbWUgY29udGVudC4gIioiCisgKiBjYW4gYmUgdXNlZCBhcyBhIHdpbGRjYXJkIGluIEB2YWxTdHI7ICJ8IiBpcyB1c2VkIGFzIGEgc2VwZXJhdG9yIG9mIAorICogc3Vic3RyaW5ncyBpbiBib3RoIEBleHBTdHIgYW5kIEB2YWxTdHIuCisgKgorICogUmV0dXJucyAxIGlmIHRoZSBjb21wYXJpc29uIGlzIHNhdGlzZmllZCBhbmQgdGhlIG51bWJlciBvZiBzdWJzdHJpbmdzCisgKiBpcyBlcXVhbCwgMCBvdGhlcndpc2UuCisgKi8KKworc3RhdGljIGludAoreG1sUmVnU3RyRXF1YWxXaWxkY2FyZChjb25zdCB4bWxDaGFyICpleHBTdHIsIGNvbnN0IHhtbENoYXIgKnZhbFN0cikgeworICAgIGlmIChleHBTdHIgPT0gdmFsU3RyKSByZXR1cm4oMSk7CisgICAgaWYgKGV4cFN0ciA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgaWYgKHZhbFN0ciA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgZG8geworCS8qCisJKiBFdmFsIGlmIHdlIGhhdmUgYSB3aWxkY2FyZCBmb3IgdGhlIGN1cnJlbnQgaXRlbS4KKwkqLworICAgICAgICBpZiAoKmV4cFN0ciAhPSAqdmFsU3RyKSB7CisJICAgIC8qIGlmIG9uZSBvZiB0aGVtIHN0YXJ0cyB3aXRoIGEgd2lsZGNhcmQgbWFrZSB2YWxTdHIgYmUgaXQgKi8KKwkgICAgaWYgKCp2YWxTdHIgPT0gJyonKSB7CisJICAgICAgICBjb25zdCB4bWxDaGFyICp0bXA7CisKKwkJdG1wID0gdmFsU3RyOworCQl2YWxTdHIgPSBleHBTdHI7CisJCWV4cFN0ciA9IHRtcDsKKwkgICAgfQorCSAgICBpZiAoKCp2YWxTdHIgIT0gMCkgJiYgKCpleHBTdHIgIT0gMCkgJiYgKCpleHBTdHIrKyA9PSAnKicpKSB7CisJCWRvIHsKKwkJICAgIGlmICgqdmFsU3RyID09IFhNTF9SRUdfU1RSSU5HX1NFUEFSQVRPUikKKwkJCWJyZWFrOworCQkgICAgdmFsU3RyKys7CisJCX0gd2hpbGUgKCp2YWxTdHIgIT0gMCk7CisJCWNvbnRpbnVlOworCSAgICB9IGVsc2UKKwkJcmV0dXJuKDApOworCX0KKwlleHBTdHIrKzsKKwl2YWxTdHIrKzsKKyAgICB9IHdoaWxlICgqdmFsU3RyICE9IDApOworICAgIGlmICgqZXhwU3RyICE9IDApCisJcmV0dXJuICgwKTsKKyAgICBlbHNlCisJcmV0dXJuICgxKTsKK30KKworLyoqCisgKiB4bWxSZWdDb21wYWN0UHVzaFN0cmluZzoKKyAqIEBleGVjOiBhIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dAorICogQGNvbXA6ICB0aGUgcHJlY29tcGlsZWQgZXhlYyB3aXRoIGEgY29tcGFjdCB0YWJsZQorICogQHZhbHVlOiBhIHN0cmluZyB0b2tlbiBpbnB1dAorICogQGRhdGE6IGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgdG9rZW4gdG8gcmV1c2UgaW4gY2FsbGJhY2tzCisgKgorICogUHVzaCBvbmUgaW5wdXQgdG9rZW4gaW4gdGhlIGV4ZWN1dGlvbiBjb250ZXh0CisgKgorICogUmV0dXJuczogMSBpZiB0aGUgcmVnZXhwIHJlYWNoZWQgYSBmaW5hbCBzdGF0ZSwgMCBpZiBub24tZmluYWwsIGFuZAorICogICAgIGEgbmVnYXRpdmUgdmFsdWUgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sUmVnQ29tcGFjdFB1c2hTdHJpbmcoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYywKKwkgICAgICAgICAgICAgICAgeG1sUmVnZXhwUHRyIGNvbXAsCisJICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCSAgICAgICAgICAgICAgICB2b2lkICpkYXRhKSB7CisgICAgaW50IHN0YXRlID0gZXhlYy0+aW5kZXg7CisgICAgaW50IGksIHRhcmdldDsKKworICAgIGlmICgoY29tcCA9PSBOVUxMKSB8fCAoY29tcC0+Y29tcGFjdCA9PSBOVUxMKSB8fCAoY29tcC0+c3RyaW5nTWFwID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgCisgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKwkvKgorCSAqIGFyZSB3ZSBhdCBhIGZpbmFsIHN0YXRlID8KKwkgKi8KKwlpZiAoY29tcC0+Y29tcGFjdFtzdGF0ZSAqIChjb21wLT5uYnN0cmluZ3MgKyAxKV0gPT0KKyAgICAgICAgICAgIFhNTF9SRUdFWFBfRklOQUxfU1RBVEUpCisJICAgIHJldHVybigxKTsKKwlyZXR1cm4oMCk7CisgICAgfQorCisjaWZkZWYgREVCVUdfUFVTSAorICAgIHByaW50ZigidmFsdWUgcHVzaGVkOiAlc1xuIiwgdmFsdWUpOworI2VuZGlmCisKKyAgICAvKgorICAgICAqIEV4YW1pbmUgYWxsIG91dHNpZGUgdHJhbnNpdGlvbnMgZnJvbSBjdXJyZW50IHN0YXRlCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgY29tcC0+bmJzdHJpbmdzO2krKykgeworCXRhcmdldCA9IGNvbXAtPmNvbXBhY3Rbc3RhdGUgKiAoY29tcC0+bmJzdHJpbmdzICsgMSkgKyBpICsgMV07CisJaWYgKCh0YXJnZXQgPiAwKSAmJiAodGFyZ2V0IDw9IGNvbXAtPm5ic3RhdGVzKSkgeworCSAgICB0YXJnZXQtLTsgLyogdG8gYXZvaWQgMCAqLyAgICAKKwkgICAgaWYgKHhtbFJlZ1N0ckVxdWFsV2lsZGNhcmQoY29tcC0+c3RyaW5nTWFwW2ldLCB2YWx1ZSkpIHsKKwkJZXhlYy0+aW5kZXggPSB0YXJnZXQ7CQkKKwkJaWYgKChleGVjLT5jYWxsYmFjayAhPSBOVUxMKSAmJiAoY29tcC0+dHJhbnNkYXRhICE9IE5VTEwpKSB7CisJCSAgICBleGVjLT5jYWxsYmFjayhleGVjLT5kYXRhLCB2YWx1ZSwKKwkJCSAgY29tcC0+dHJhbnNkYXRhW3N0YXRlICogY29tcC0+bmJzdHJpbmdzICsgaV0sIGRhdGEpOworCQl9CisjaWZkZWYgREVCVUdfUFVTSAorCQlwcmludGYoImVudGVyaW5nIHN0YXRlICVkXG4iLCB0YXJnZXQpOworI2VuZGlmCisJCWlmIChjb21wLT5jb21wYWN0W3RhcmdldCAqIChjb21wLT5uYnN0cmluZ3MgKyAxKV0gPT0KKwkJICAgIFhNTF9SRUdFWFBfU0lOS19TVEFURSkKKwkJICAgIGdvdG8gZXJyb3I7CisKKwkJaWYgKGNvbXAtPmNvbXBhY3RbdGFyZ2V0ICogKGNvbXAtPm5ic3RyaW5ncyArIDEpXSA9PQorCQkgICAgWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkKKwkJICAgIHJldHVybigxKTsKKwkJcmV0dXJuKDApOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKgorICAgICAqIEZhaWxlZCB0byBmaW5kIGFuIGV4aXQgdHJhbnNpdGlvbiBvdXQgZnJvbSBjdXJyZW50IHN0YXRlIGZvciB0aGUKKyAgICAgKiBjdXJyZW50IHRva2VuCisgICAgICovCisjaWZkZWYgREVCVUdfUFVTSAorICAgIHByaW50ZigiZmFpbGVkIHRvIGZpbmQgYSB0cmFuc2l0aW9uIGZvciAlcyBvbiBzdGF0ZSAlZFxuIiwgdmFsdWUsIHN0YXRlKTsKKyNlbmRpZgorZXJyb3I6CisgICAgaWYgKGV4ZWMtPmVyclN0cmluZyAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKGV4ZWMtPmVyclN0cmluZyk7CisgICAgZXhlYy0+ZXJyU3RyaW5nID0geG1sU3RyZHVwKHZhbHVlKTsKKyAgICBleGVjLT5lcnJTdGF0ZU5vID0gc3RhdGU7CisgICAgZXhlYy0+c3RhdHVzID0gLTE7CisjaWZkZWYgREVCVUdfRVJSCisgICAgdGVzdGVycihleGVjKTsKKyNlbmRpZgorICAgIHJldHVybigtMSk7Cit9CisKKy8qKgorICogeG1sUmVnRXhlY1B1c2hTdHJpbmdJbnRlcm5hbDoKKyAqIEBleGVjOiBhIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQKKyAqIEB2YWx1ZTogYSBzdHJpbmcgdG9rZW4gaW5wdXQKKyAqIEBkYXRhOiBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRva2VuIHRvIHJldXNlIGluIGNhbGxiYWNrcworICogQGNvbXBvdW5kOiB2YWx1ZSB3YXMgYXNzZW1ibGVkIGZyb20gMiBzdHJpbmdzCisgKgorICogUHVzaCBvbmUgaW5wdXQgdG9rZW4gaW4gdGhlIGV4ZWN1dGlvbiBjb250ZXh0CisgKgorICogUmV0dXJuczogMSBpZiB0aGUgcmVnZXhwIHJlYWNoZWQgYSBmaW5hbCBzdGF0ZSwgMCBpZiBub24tZmluYWwsIGFuZAorICogICAgIGEgbmVnYXRpdmUgdmFsdWUgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sUmVnRXhlY1B1c2hTdHJpbmdJbnRlcm5hbCh4bWxSZWdFeGVjQ3R4dFB0ciBleGVjLCBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLCBpbnQgY29tcG91bmQpIHsKKyAgICB4bWxSZWdUcmFuc1B0ciB0cmFuczsKKyAgICB4bWxSZWdBdG9tUHRyIGF0b207CisgICAgaW50IHJldDsKKyAgICBpbnQgZmluYWwgPSAwOworICAgIGludCBwcm9ncmVzcyA9IDE7CisKKyAgICBpZiAoZXhlYyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKGV4ZWMtPmNvbXAgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChleGVjLT5zdGF0dXMgIT0gMCkKKwlyZXR1cm4oZXhlYy0+c3RhdHVzKTsKKworICAgIGlmIChleGVjLT5jb21wLT5jb21wYWN0ICE9IE5VTEwpCisJcmV0dXJuKHhtbFJlZ0NvbXBhY3RQdXNoU3RyaW5nKGV4ZWMsIGV4ZWMtPmNvbXAsIHZhbHVlLCBkYXRhKSk7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICBpZiAoZXhlYy0+c3RhdGUtPnR5cGUgPT0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkKKwkgICAgcmV0dXJuKDEpOworCWZpbmFsID0gMTsKKyAgICB9CisKKyNpZmRlZiBERUJVR19QVVNICisgICAgcHJpbnRmKCJ2YWx1ZSBwdXNoZWQ6ICVzXG4iLCB2YWx1ZSk7CisjZW5kaWYKKyAgICAvKgorICAgICAqIElmIHdlIGhhdmUgYW4gYWN0aXZlIHJvbGxiYWNrIHN0YWNrIHB1c2ggdGhlIG5ldyB2YWx1ZSB0aGVyZQorICAgICAqIGFuZCBnZXQgYmFjayB0byB3aGVyZSB3ZSB3ZXJlIGxlZnQKKyAgICAgKi8KKyAgICBpZiAoKHZhbHVlICE9IE5VTEwpICYmIChleGVjLT5pbnB1dFN0YWNrTnIgPiAwKSkgeworCXhtbEZBUmVnRXhlY1NhdmVJbnB1dFN0cmluZyhleGVjLCB2YWx1ZSwgZGF0YSk7CisJdmFsdWUgPSBleGVjLT5pbnB1dFN0YWNrW2V4ZWMtPmluZGV4XS52YWx1ZTsKKwlkYXRhID0gZXhlYy0+aW5wdXRTdGFja1tleGVjLT5pbmRleF0uZGF0YTsKKyNpZmRlZiBERUJVR19QVVNICisJcHJpbnRmKCJ2YWx1ZSBsb2FkZWQ6ICVzXG4iLCB2YWx1ZSk7CisjZW5kaWYKKyAgICB9CisKKyAgICB3aGlsZSAoKGV4ZWMtPnN0YXR1cyA9PSAwKSAmJgorCSAgICgodmFsdWUgIT0gTlVMTCkgfHwKKwkgICAgKChmaW5hbCA9PSAxKSAmJgorCSAgICAgKGV4ZWMtPnN0YXRlLT50eXBlICE9IFhNTF9SRUdFWFBfRklOQUxfU1RBVEUpKSkpIHsKKworCS8qCisJICogRW5kIG9mIGlucHV0IG9uIG5vbi10ZXJtaW5hbCBzdGF0ZSwgcm9sbGJhY2ssIGhvd2V2ZXIgd2UgbWF5CisJICogc3RpbGwgaGF2ZSBlcHNpbG9uIGxpa2UgdHJhbnNpdGlvbiBmb3IgY291bnRlZCB0cmFuc2l0aW9ucworCSAqIG9uIGNvdW50ZXJzLCBpbiB0aGF0IGNhc2UgZG9uJ3QgYnJlYWsgdG9vIGVhcmx5LgorCSAqLworCWlmICgodmFsdWUgPT0gTlVMTCkgJiYgKGV4ZWMtPmNvdW50cyA9PSBOVUxMKSkKKwkgICAgZ290byByb2xsYmFjazsKKworCWV4ZWMtPnRyYW5zY291bnQgPSAwOworCWZvciAoO2V4ZWMtPnRyYW5zbm8gPCBleGVjLT5zdGF0ZS0+bmJUcmFucztleGVjLT50cmFuc25vKyspIHsKKwkgICAgdHJhbnMgPSAmZXhlYy0+c3RhdGUtPnRyYW5zW2V4ZWMtPnRyYW5zbm9dOworCSAgICBpZiAodHJhbnMtPnRvIDwgMCkKKwkJY29udGludWU7CisJICAgIGF0b20gPSB0cmFucy0+YXRvbTsKKwkgICAgcmV0ID0gMDsKKwkgICAgaWYgKHRyYW5zLT5jb3VudCA9PSBSRUdFWFBfQUxMX0xBWF9DT1VOVEVSKSB7CisJCWludCBpOworCQlpbnQgY291bnQ7CisJCXhtbFJlZ1RyYW5zUHRyIHQ7CisJCXhtbFJlZ0NvdW50ZXJQdHIgY291bnRlcjsKKworCQlyZXQgPSAwOworCisjaWZkZWYgREVCVUdfUFVTSAorCQlwcmludGYoInRlc3RpbmcgYWxsIGxheCAlZFxuIiwgdHJhbnMtPmNvdW50KTsKKyNlbmRpZgorCQkvKgorCQkgKiBDaGVjayBhbGwgY291bnRlZCB0cmFuc2l0aW9ucyBmcm9tIHRoZSBjdXJyZW50IHN0YXRlCisJCSAqLworCQlpZiAoKHZhbHVlID09IE5VTEwpICYmIChmaW5hbCkpIHsKKwkJICAgIHJldCA9IDE7CisJCX0gZWxzZSBpZiAodmFsdWUgIT0gTlVMTCkgeworCQkgICAgZm9yIChpID0gMDtpIDwgZXhlYy0+c3RhdGUtPm5iVHJhbnM7aSsrKSB7CisJCQl0ID0gJmV4ZWMtPnN0YXRlLT50cmFuc1tpXTsKKwkJCWlmICgodC0+Y291bnRlciA8IDApIHx8ICh0ID09IHRyYW5zKSkKKwkJCSAgICBjb250aW51ZTsKKwkJCWNvdW50ZXIgPSAmZXhlYy0+Y29tcC0+Y291bnRlcnNbdC0+Y291bnRlcl07CisJCQljb3VudCA9IGV4ZWMtPmNvdW50c1t0LT5jb3VudGVyXTsKKwkJCWlmICgoY291bnQgPCBjb3VudGVyLT5tYXgpICYmIAorCQkgICAgICAgICAgICAodC0+YXRvbSAhPSBOVUxMKSAmJgorCQkJICAgICh4bWxTdHJFcXVhbCh2YWx1ZSwgdC0+YXRvbS0+dmFsdWVwKSkpIHsKKwkJCSAgICByZXQgPSAwOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJaWYgKChjb3VudCA+PSBjb3VudGVyLT5taW4pICYmCisJCQkgICAgKGNvdW50IDwgY291bnRlci0+bWF4KSAmJgorCQkJICAgICh0LT5hdG9tICE9IE5VTEwpICYmCisJCQkgICAgKHhtbFN0ckVxdWFsKHZhbHVlLCB0LT5hdG9tLT52YWx1ZXApKSkgeworCQkJICAgIHJldCA9IDE7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCSAgICB9CisJCX0KKwkgICAgfSBlbHNlIGlmICh0cmFucy0+Y291bnQgPT0gUkVHRVhQX0FMTF9DT1VOVEVSKSB7CisJCWludCBpOworCQlpbnQgY291bnQ7CisJCXhtbFJlZ1RyYW5zUHRyIHQ7CisJCXhtbFJlZ0NvdW50ZXJQdHIgY291bnRlcjsKKworCQlyZXQgPSAxOworCisjaWZkZWYgREVCVUdfUFVTSAorCQlwcmludGYoInRlc3RpbmcgYWxsICVkXG4iLCB0cmFucy0+Y291bnQpOworI2VuZGlmCisJCS8qCisJCSAqIENoZWNrIGFsbCBjb3VudGVkIHRyYW5zaXRpb25zIGZyb20gdGhlIGN1cnJlbnQgc3RhdGUKKwkJICovCisJCWZvciAoaSA9IDA7aSA8IGV4ZWMtPnN0YXRlLT5uYlRyYW5zO2krKykgeworICAgICAgICAgICAgICAgICAgICB0ID0gJmV4ZWMtPnN0YXRlLT50cmFuc1tpXTsKKwkJICAgIGlmICgodC0+Y291bnRlciA8IDApIHx8ICh0ID09IHRyYW5zKSkKKwkJCWNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0gJmV4ZWMtPmNvbXAtPmNvdW50ZXJzW3QtPmNvdW50ZXJdOworCQkgICAgY291bnQgPSBleGVjLT5jb3VudHNbdC0+Y291bnRlcl07CisJCSAgICBpZiAoKGNvdW50IDwgY291bnRlci0+bWluKSB8fCAoY291bnQgPiBjb3VudGVyLT5tYXgpKSB7CisJCQlyZXQgPSAwOworCQkJYnJlYWs7CisJCSAgICB9CisJCX0KKwkgICAgfSBlbHNlIGlmICh0cmFucy0+Y291bnQgPj0gMCkgeworCQlpbnQgY291bnQ7CisJCXhtbFJlZ0NvdW50ZXJQdHIgY291bnRlcjsKKworCQkvKgorCQkgKiBBIGNvdW50ZWQgdHJhbnNpdGlvbi4KKwkJICovCisKKwkJY291bnQgPSBleGVjLT5jb3VudHNbdHJhbnMtPmNvdW50XTsKKwkJY291bnRlciA9ICZleGVjLT5jb21wLT5jb3VudGVyc1t0cmFucy0+Y291bnRdOworI2lmZGVmIERFQlVHX1BVU0gKKwkJcHJpbnRmKCJ0ZXN0aW5nIGNvdW50ICVkOiB2YWwgJWQsIG1pbiAlZCwgbWF4ICVkXG4iLAorCQkgICAgICAgdHJhbnMtPmNvdW50LCBjb3VudCwgY291bnRlci0+bWluLCAgY291bnRlci0+bWF4KTsKKyNlbmRpZgorCQlyZXQgPSAoKGNvdW50ID49IGNvdW50ZXItPm1pbikgJiYgKGNvdW50IDw9IGNvdW50ZXItPm1heCkpOworCSAgICB9IGVsc2UgaWYgKGF0b20gPT0gTlVMTCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImVwc2lsb24gdHJhbnNpdGlvbiBsZWZ0IGF0IHJ1bnRpbWVcbiIpOworCQlleGVjLT5zdGF0dXMgPSAtMjsKKwkJYnJlYWs7CisJICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gTlVMTCkgeworCQlyZXQgPSB4bWxSZWdTdHJFcXVhbFdpbGRjYXJkKGF0b20tPnZhbHVlcCwgdmFsdWUpOworCQlpZiAoYXRvbS0+bmVnKSB7CisJCSAgICByZXQgPSAhcmV0OworCQkgICAgaWYgKCFjb21wb3VuZCkKKwkJICAgICAgICByZXQgPSAwOworCQl9CisJCWlmICgocmV0ID09IDEpICYmICh0cmFucy0+Y291bnRlciA+PSAwKSkgeworCQkgICAgeG1sUmVnQ291bnRlclB0ciBjb3VudGVyOworCQkgICAgaW50IGNvdW50OworCisJCSAgICBjb3VudCA9IGV4ZWMtPmNvdW50c1t0cmFucy0+Y291bnRlcl07CisJCSAgICBjb3VudGVyID0gJmV4ZWMtPmNvbXAtPmNvdW50ZXJzW3RyYW5zLT5jb3VudGVyXTsKKwkJICAgIGlmIChjb3VudCA+PSBjb3VudGVyLT5tYXgpCisJCQlyZXQgPSAwOworCQl9CisKKwkJaWYgKChyZXQgPT0gMSkgJiYgKGF0b20tPm1pbiA+IDApICYmIChhdG9tLT5tYXggPiAwKSkgeworCQkgICAgeG1sUmVnU3RhdGVQdHIgdG8gPSBleGVjLT5jb21wLT5zdGF0ZXNbdHJhbnMtPnRvXTsKKworCQkgICAgLyoKKwkJICAgICAqIHRoaXMgaXMgYSBtdWx0aXBsZSBpbnB1dCBzZXF1ZW5jZQorCQkgICAgICovCisJCSAgICBpZiAoZXhlYy0+c3RhdGUtPm5iVHJhbnMgPiBleGVjLT50cmFuc25vICsgMSkgeworCQkJaWYgKGV4ZWMtPmlucHV0U3RhY2tOciA8PSAwKSB7CisJCQkgICAgeG1sRkFSZWdFeGVjU2F2ZUlucHV0U3RyaW5nKGV4ZWMsIHZhbHVlLCBkYXRhKTsKKwkJCX0KKwkJCXhtbEZBUmVnRXhlY1NhdmUoZXhlYyk7CisJCSAgICB9CisJCSAgICBleGVjLT50cmFuc2NvdW50ID0gMTsKKwkJICAgIGRvIHsKKwkJCS8qCisJCQkgKiBUcnkgdG8gcHJvZ3Jlc3MgYXMgbXVjaCBhcyBwb3NzaWJsZSBvbiB0aGUgaW5wdXQKKwkJCSAqLworCQkJaWYgKGV4ZWMtPnRyYW5zY291bnQgPT0gYXRvbS0+bWF4KSB7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCQlleGVjLT5pbmRleCsrOworCQkJdmFsdWUgPSBleGVjLT5pbnB1dFN0YWNrW2V4ZWMtPmluZGV4XS52YWx1ZTsKKwkJCWRhdGEgPSBleGVjLT5pbnB1dFN0YWNrW2V4ZWMtPmluZGV4XS5kYXRhOworI2lmZGVmIERFQlVHX1BVU0gKKwkJCXByaW50ZigidmFsdWUgbG9hZGVkOiAlc1xuIiwgdmFsdWUpOworI2VuZGlmCisKKwkJCS8qCisJCQkgKiBFbmQgb2YgaW5wdXQ6IHN0b3AgaGVyZQorCQkJICovCisJCQlpZiAodmFsdWUgPT0gTlVMTCkgeworCQkJICAgIGV4ZWMtPmluZGV4IC0tOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJaWYgKGV4ZWMtPnRyYW5zY291bnQgPj0gYXRvbS0+bWluKSB7CisJCQkgICAgaW50IHRyYW5zbm8gPSBleGVjLT50cmFuc25vOworCQkJICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXRlID0gZXhlYy0+c3RhdGU7CisKKwkJCSAgICAvKgorCQkJICAgICAqIFRoZSB0cmFuc2l0aW9uIGlzIGFjY2VwdGFibGUgc2F2ZSBpdAorCQkJICAgICAqLworCQkJICAgIGV4ZWMtPnRyYW5zbm8gPSAtMTsgLyogdHJpY2sgKi8KKwkJCSAgICBleGVjLT5zdGF0ZSA9IHRvOworCQkJICAgIGlmIChleGVjLT5pbnB1dFN0YWNrTnIgPD0gMCkgeworCQkJCXhtbEZBUmVnRXhlY1NhdmVJbnB1dFN0cmluZyhleGVjLCB2YWx1ZSwgZGF0YSk7CisJCQkgICAgfQorCQkJICAgIHhtbEZBUmVnRXhlY1NhdmUoZXhlYyk7CisJCQkgICAgZXhlYy0+dHJhbnNubyA9IHRyYW5zbm87CisJCQkgICAgZXhlYy0+c3RhdGUgPSBzdGF0ZTsKKwkJCX0KKwkJCXJldCA9IHhtbFN0ckVxdWFsKHZhbHVlLCBhdG9tLT52YWx1ZXApOworCQkJZXhlYy0+dHJhbnNjb3VudCsrOworCQkgICAgfSB3aGlsZSAocmV0ID09IDEpOworCQkgICAgaWYgKGV4ZWMtPnRyYW5zY291bnQgPCBhdG9tLT5taW4pCisJCQlyZXQgPSAwOworCisJCSAgICAvKgorCQkgICAgICogSWYgdGhlIGxhc3QgY2hlY2sgZmFpbGVkIGJ1dCBvbmUgdHJhbnNpdGlvbiB3YXMgZm91bmQKKwkJICAgICAqIHBvc3NpYmxlLCByb2xsYmFjaworCQkgICAgICovCisJCSAgICBpZiAocmV0IDwgMCkKKwkJCXJldCA9IDA7CisJCSAgICBpZiAocmV0ID09IDApIHsKKwkJCWdvdG8gcm9sbGJhY2s7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBpZiAocmV0ID09IDEpIHsKKwkJaWYgKChleGVjLT5jYWxsYmFjayAhPSBOVUxMKSAmJiAoYXRvbSAhPSBOVUxMKSAmJgorCQkJKGRhdGEgIT0gTlVMTCkpIHsKKwkJICAgIGV4ZWMtPmNhbGxiYWNrKGV4ZWMtPmRhdGEsIGF0b20tPnZhbHVlcCwKKwkJCSAgICAgICAgICAgYXRvbS0+ZGF0YSwgZGF0YSk7CisJCX0KKwkJaWYgKGV4ZWMtPnN0YXRlLT5uYlRyYW5zID4gZXhlYy0+dHJhbnNubyArIDEpIHsKKwkJICAgIGlmIChleGVjLT5pbnB1dFN0YWNrTnIgPD0gMCkgeworCQkJeG1sRkFSZWdFeGVjU2F2ZUlucHV0U3RyaW5nKGV4ZWMsIHZhbHVlLCBkYXRhKTsKKwkJICAgIH0KKwkJICAgIHhtbEZBUmVnRXhlY1NhdmUoZXhlYyk7CisJCX0KKwkJaWYgKHRyYW5zLT5jb3VudGVyID49IDApIHsKKyNpZmRlZiBERUJVR19QVVNICisJCSAgICBwcmludGYoIkluY3JlYXNpbmcgY291bnQgJWRcbiIsIHRyYW5zLT5jb3VudGVyKTsKKyNlbmRpZgorCQkgICAgZXhlYy0+Y291bnRzW3RyYW5zLT5jb3VudGVyXSsrOworCQl9CisJCWlmICgodHJhbnMtPmNvdW50ID49IDApICYmCisJCSAgICAodHJhbnMtPmNvdW50IDwgUkVHRVhQX0FMTF9DT1VOVEVSKSkgeworI2lmZGVmIERFQlVHX1JFR0VYUF9FWEVDCisJCSAgICBwcmludGYoInJlc2V0dGluZyBjb3VudCAlZCBvbiB0cmFuc2l0aW9uXG4iLAorCQkgICAgICAgICAgIHRyYW5zLT5jb3VudCk7CisjZW5kaWYKKwkJICAgIGV4ZWMtPmNvdW50c1t0cmFucy0+Y291bnRdID0gMDsKKwkJfQorI2lmZGVmIERFQlVHX1BVU0gKKwkJcHJpbnRmKCJlbnRlcmluZyBzdGF0ZSAlZFxuIiwgdHJhbnMtPnRvKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGlmICgoZXhlYy0+Y29tcC0+c3RhdGVzW3RyYW5zLT50b10gIT0gTlVMTCkgJiYKKwkJICAgIChleGVjLT5jb21wLT5zdGF0ZXNbdHJhbnMtPnRvXS0+dHlwZSA9PQorCQkgICAgIFhNTF9SRUdFWFBfU0lOS19TVEFURSkpIHsKKwkJICAgIC8qCisJCSAgICAgKiBlbnRlcmluZyBhIHNpbmsgc3RhdGUsIHNhdmUgdGhlIGN1cnJlbnQgc3RhdGUgYXMgZXJyb3IKKwkJICAgICAqIHN0YXRlLgorCQkgICAgICovCisJCSAgICBpZiAoZXhlYy0+ZXJyU3RyaW5nICE9IE5VTEwpCisJCQl4bWxGcmVlKGV4ZWMtPmVyclN0cmluZyk7CisJCSAgICBleGVjLT5lcnJTdHJpbmcgPSB4bWxTdHJkdXAodmFsdWUpOworCQkgICAgZXhlYy0+ZXJyU3RhdGUgPSBleGVjLT5zdGF0ZTsKKwkJICAgIG1lbWNweShleGVjLT5lcnJDb3VudHMsIGV4ZWMtPmNvdW50cywKKwkJCSAgIGV4ZWMtPmNvbXAtPm5iQ291bnRlcnMgKiBzaXplb2YoaW50KSk7CisJCX0KKwkJZXhlYy0+c3RhdGUgPSBleGVjLT5jb21wLT5zdGF0ZXNbdHJhbnMtPnRvXTsKKwkJZXhlYy0+dHJhbnNubyA9IDA7CisJCWlmICh0cmFucy0+YXRvbSAhPSBOVUxMKSB7CisJCSAgICBpZiAoZXhlYy0+aW5wdXRTdGFjayAhPSBOVUxMKSB7CisJCQlleGVjLT5pbmRleCsrOworCQkJaWYgKGV4ZWMtPmluZGV4IDwgZXhlYy0+aW5wdXRTdGFja05yKSB7CisJCQkgICAgdmFsdWUgPSBleGVjLT5pbnB1dFN0YWNrW2V4ZWMtPmluZGV4XS52YWx1ZTsKKwkJCSAgICBkYXRhID0gZXhlYy0+aW5wdXRTdGFja1tleGVjLT5pbmRleF0uZGF0YTsKKyNpZmRlZiBERUJVR19QVVNICisJCQkgICAgcHJpbnRmKCJ2YWx1ZSBsb2FkZWQ6ICVzXG4iLCB2YWx1ZSk7CisjZW5kaWYKKwkJCX0gZWxzZSB7CisJCQkgICAgdmFsdWUgPSBOVUxMOworCQkJICAgIGRhdGEgPSBOVUxMOworI2lmZGVmIERFQlVHX1BVU0gKKwkJCSAgICBwcmludGYoImVuZCBvZiBpbnB1dFxuIik7CisjZW5kaWYKKwkJCX0KKwkJICAgIH0gZWxzZSB7CisJCQl2YWx1ZSA9IE5VTEw7CisJCQlkYXRhID0gTlVMTDsKKyNpZmRlZiBERUJVR19QVVNICisJCQlwcmludGYoImVuZCBvZiBpbnB1dFxuIik7CisjZW5kaWYKKwkJICAgIH0KKwkJfQorCQlnb3RvIHByb2dyZXNzOworCSAgICB9IGVsc2UgaWYgKHJldCA8IDApIHsKKwkJZXhlYy0+c3RhdHVzID0gLTQ7CisJCWJyZWFrOworCSAgICB9CisJfQorCWlmICgoZXhlYy0+dHJhbnNubyAhPSAwKSB8fCAoZXhlYy0+c3RhdGUtPm5iVHJhbnMgPT0gMCkpIHsKK3JvbGxiYWNrOgorICAgICAgICAgICAgLyoKKwkgICAgICogaWYgd2UgZGlkbid0IHlldCByb2xsYmFjayBvbiB0aGUgY3VycmVudCBpbnB1dAorCSAgICAgKiBzdG9yZSB0aGUgY3VycmVudCBzdGF0ZSBhcyB0aGUgZXJyb3Igc3RhdGUuCisJICAgICAqLworCSAgICBpZiAoKHByb2dyZXNzKSAmJiAoZXhlYy0+c3RhdGUgIT0gTlVMTCkgJiYKKwkgICAgICAgIChleGVjLT5zdGF0ZS0+dHlwZSAhPSBYTUxfUkVHRVhQX1NJTktfU1RBVEUpKSB7CisJICAgICAgICBwcm9ncmVzcyA9IDA7CisJCWlmIChleGVjLT5lcnJTdHJpbmcgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUoZXhlYy0+ZXJyU3RyaW5nKTsKKwkJZXhlYy0+ZXJyU3RyaW5nID0geG1sU3RyZHVwKHZhbHVlKTsKKwkJZXhlYy0+ZXJyU3RhdGUgPSBleGVjLT5zdGF0ZTsKKwkJbWVtY3B5KGV4ZWMtPmVyckNvdW50cywgZXhlYy0+Y291bnRzLAorCQkgICAgICAgZXhlYy0+Y29tcC0+bmJDb3VudGVycyAqIHNpemVvZihpbnQpKTsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIEZhaWxlZCB0byBmaW5kIGEgd2F5IG91dAorCSAgICAgKi8KKwkgICAgZXhlYy0+ZGV0ZXJtaW5pc3QgPSAwOworCSAgICB4bWxGQVJlZ0V4ZWNSb2xsQmFjayhleGVjKTsKKwkgICAgaWYgKGV4ZWMtPnN0YXR1cyA9PSAwKSB7CisJCXZhbHVlID0gZXhlYy0+aW5wdXRTdGFja1tleGVjLT5pbmRleF0udmFsdWU7CisJCWRhdGEgPSBleGVjLT5pbnB1dFN0YWNrW2V4ZWMtPmluZGV4XS5kYXRhOworI2lmZGVmIERFQlVHX1BVU0gKKwkJcHJpbnRmKCJ2YWx1ZSBsb2FkZWQ6ICVzXG4iLCB2YWx1ZSk7CisjZW5kaWYKKwkgICAgfQorCX0KKwljb250aW51ZTsKK3Byb2dyZXNzOgorICAgICAgICBwcm9ncmVzcyA9IDE7CisJY29udGludWU7CisgICAgfQorICAgIGlmIChleGVjLT5zdGF0dXMgPT0gMCkgeworICAgICAgICByZXR1cm4oZXhlYy0+c3RhdGUtPnR5cGUgPT0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURSk7CisgICAgfQorI2lmZGVmIERFQlVHX0VSUgorICAgIGlmIChleGVjLT5zdGF0dXMgPCAwKSB7CisJdGVzdGVycihleGVjKTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4oZXhlYy0+c3RhdHVzKTsKK30KKworLyoqCisgKiB4bWxSZWdFeGVjUHVzaFN0cmluZzoKKyAqIEBleGVjOiBhIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQKKyAqIEB2YWx1ZTogYSBzdHJpbmcgdG9rZW4gaW5wdXQKKyAqIEBkYXRhOiBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRva2VuIHRvIHJldXNlIGluIGNhbGxiYWNrcworICoKKyAqIFB1c2ggb25lIGlucHV0IHRva2VuIGluIHRoZSBleGVjdXRpb24gY29udGV4dAorICoKKyAqIFJldHVybnM6IDEgaWYgdGhlIHJlZ2V4cCByZWFjaGVkIGEgZmluYWwgc3RhdGUsIDAgaWYgbm9uLWZpbmFsLCBhbmQKKyAqICAgICBhIG5lZ2F0aXZlIHZhbHVlIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sUmVnRXhlY1B1c2hTdHJpbmcoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYywgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJICAgICAgICAgICAgIHZvaWQgKmRhdGEpIHsKKyAgICByZXR1cm4oeG1sUmVnRXhlY1B1c2hTdHJpbmdJbnRlcm5hbChleGVjLCB2YWx1ZSwgZGF0YSwgMCkpOworfQorCisvKioKKyAqIHhtbFJlZ0V4ZWNQdXNoU3RyaW5nMjoKKyAqIEBleGVjOiBhIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBvciBOVUxMIHRvIGluZGljYXRlIHRoZSBlbmQKKyAqIEB2YWx1ZTogdGhlIGZpcnN0IHN0cmluZyB0b2tlbiBpbnB1dAorICogQHZhbHVlMjogdGhlIHNlY29uZCBzdHJpbmcgdG9rZW4gaW5wdXQKKyAqIEBkYXRhOiBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRva2VuIHRvIHJldXNlIGluIGNhbGxiYWNrcworICoKKyAqIFB1c2ggb25lIGlucHV0IHRva2VuIGluIHRoZSBleGVjdXRpb24gY29udGV4dAorICoKKyAqIFJldHVybnM6IDEgaWYgdGhlIHJlZ2V4cCByZWFjaGVkIGEgZmluYWwgc3RhdGUsIDAgaWYgbm9uLWZpbmFsLCBhbmQKKyAqICAgICBhIG5lZ2F0aXZlIHZhbHVlIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sUmVnRXhlY1B1c2hTdHJpbmcyKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMsIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlMiwgdm9pZCAqZGF0YSkgeworICAgIHhtbENoYXIgYnVmWzE1MF07CisgICAgaW50IGxlbm4sIGxlbnAsIHJldDsKKyAgICB4bWxDaGFyICpzdHI7CisKKyAgICBpZiAoZXhlYyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKGV4ZWMtPmNvbXAgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChleGVjLT5zdGF0dXMgIT0gMCkKKwlyZXR1cm4oZXhlYy0+c3RhdHVzKTsKKworICAgIGlmICh2YWx1ZTIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHhtbFJlZ0V4ZWNQdXNoU3RyaW5nKGV4ZWMsIHZhbHVlLCBkYXRhKSk7CisKKyAgICBsZW5uID0gc3RybGVuKChjaGFyICopIHZhbHVlMik7CisgICAgbGVucCA9IHN0cmxlbigoY2hhciAqKSB2YWx1ZSk7CisKKyAgICBpZiAoMTUwIDwgbGVubiArIGxlbnAgKyAyKSB7CisJc3RyID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKGxlbm4gKyBsZW5wICsgMik7CisJaWYgKHN0ciA9PSBOVUxMKSB7CisJICAgIGV4ZWMtPnN0YXR1cyA9IC0xOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9IGVsc2UgeworCXN0ciA9IGJ1ZjsKKyAgICB9CisgICAgbWVtY3B5KCZzdHJbMF0sIHZhbHVlLCBsZW5wKTsKKyAgICBzdHJbbGVucF0gPSBYTUxfUkVHX1NUUklOR19TRVBBUkFUT1I7CisgICAgbWVtY3B5KCZzdHJbbGVucCArIDFdLCB2YWx1ZTIsIGxlbm4pOworICAgIHN0cltsZW5uICsgbGVucCArIDFdID0gMDsKKworICAgIGlmIChleGVjLT5jb21wLT5jb21wYWN0ICE9IE5VTEwpCisJcmV0ID0geG1sUmVnQ29tcGFjdFB1c2hTdHJpbmcoZXhlYywgZXhlYy0+Y29tcCwgc3RyLCBkYXRhKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nSW50ZXJuYWwoZXhlYywgc3RyLCBkYXRhLCAxKTsKKworICAgIGlmIChzdHIgIT0gYnVmKQorICAgICAgICB4bWxGcmVlKHN0cik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVnRXhlY0dldFZhbHVlczoKKyAqIEBleGVjOiBhIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dAorICogQGVycjogZXJyb3IgZXh0cmFjdGlvbiBvciBub3JtYWwgb25lCisgKiBAbmJ2YWw6IHBvaW50ZXIgdG8gdGhlIG51bWJlciBvZiBhY2NlcHRlZCB2YWx1ZXMgSU4vT1VUCisgKiBAbmJuZWc6IHJldHVybiBudW1iZXIgb2YgbmVnYXRpdmUgdHJhbnNpdGlvbnMKKyAqIEB2YWx1ZXM6IHBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIGFjY2VwdGFibGUgdmFsdWVzCisgKiBAdGVybWluYWw6IHJldHVybiB2YWx1ZSBpZiB0aGlzIHdhcyBhIHRlcm1pbmFsIHN0YXRlCisgKgorICogRXh0cmFjdCBpbmZvcm1hdGlvbnMgZnJvbSB0aGUgcmVnZXhwIGV4ZWN1dGlvbiwgaW50ZXJuYWwgcm91dGluZSB0bworICogaW1wbGVtZW50IHhtbFJlZ0V4ZWNOZXh0VmFsdWVzKCkgYW5kIHhtbFJlZ0V4ZWNFcnJJbmZvKCkKKyAqCisgKiBSZXR1cm5zOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxSZWdFeGVjR2V0VmFsdWVzKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMsIGludCBlcnIsCisgICAgICAgICAgICAgICAgICAgIGludCAqbmJ2YWwsIGludCAqbmJuZWcsCisJCSAgICB4bWxDaGFyICoqdmFsdWVzLCBpbnQgKnRlcm1pbmFsKSB7CisgICAgaW50IG1heHZhbDsKKyAgICBpbnQgbmIgPSAwOworCisgICAgaWYgKChleGVjID09IE5VTEwpIHx8IChuYnZhbCA9PSBOVUxMKSB8fCAobmJuZWcgPT0gTlVMTCkgfHwgCisgICAgICAgICh2YWx1ZXMgPT0gTlVMTCkgfHwgKCpuYnZhbCA8PSAwKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIG1heHZhbCA9ICpuYnZhbDsKKyAgICAqbmJ2YWwgPSAwOworICAgICpuYm5lZyA9IDA7CisgICAgaWYgKChleGVjLT5jb21wICE9IE5VTEwpICYmIChleGVjLT5jb21wLT5jb21wYWN0ICE9IE5VTEwpKSB7CisgICAgICAgIHhtbFJlZ2V4cFB0ciBjb21wOworCWludCB0YXJnZXQsIGksIHN0YXRlOworCisgICAgICAgIGNvbXAgPSBleGVjLT5jb21wOworCisJaWYgKGVycikgeworCSAgICBpZiAoZXhlYy0+ZXJyU3RhdGVObyA9PSAtMSkgcmV0dXJuKC0xKTsKKwkgICAgc3RhdGUgPSBleGVjLT5lcnJTdGF0ZU5vOworCX0gZWxzZSB7CisJICAgIHN0YXRlID0gZXhlYy0+aW5kZXg7CisJfQorCWlmICh0ZXJtaW5hbCAhPSBOVUxMKSB7CisJICAgIGlmIChjb21wLT5jb21wYWN0W3N0YXRlICogKGNvbXAtPm5ic3RyaW5ncyArIDEpXSA9PQorCSAgICAgICAgWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkKKwkJKnRlcm1pbmFsID0gMTsKKwkgICAgZWxzZQorCQkqdGVybWluYWwgPSAwOworCX0KKwlmb3IgKGkgPSAwOyhpIDwgY29tcC0+bmJzdHJpbmdzKSAmJiAobmIgPCBtYXh2YWwpO2krKykgeworCSAgICB0YXJnZXQgPSBjb21wLT5jb21wYWN0W3N0YXRlICogKGNvbXAtPm5ic3RyaW5ncyArIDEpICsgaSArIDFdOworCSAgICBpZiAoKHRhcmdldCA+IDApICYmICh0YXJnZXQgPD0gY29tcC0+bmJzdGF0ZXMpICYmCisJICAgICAgICAoY29tcC0+Y29tcGFjdFsodGFyZ2V0IC0gMSkgKiAoY29tcC0+bmJzdHJpbmdzICsgMSldICE9CisJCSBYTUxfUkVHRVhQX1NJTktfU1RBVEUpKSB7CisJICAgICAgICB2YWx1ZXNbbmIrK10gPSBjb21wLT5zdHJpbmdNYXBbaV07CisJCSgqbmJ2YWwpKys7CisJICAgIH0KKwl9CisJZm9yIChpID0gMDsoaSA8IGNvbXAtPm5ic3RyaW5ncykgJiYgKG5iIDwgbWF4dmFsKTtpKyspIHsKKwkgICAgdGFyZ2V0ID0gY29tcC0+Y29tcGFjdFtzdGF0ZSAqIChjb21wLT5uYnN0cmluZ3MgKyAxKSArIGkgKyAxXTsKKwkgICAgaWYgKCh0YXJnZXQgPiAwKSAmJiAodGFyZ2V0IDw9IGNvbXAtPm5ic3RhdGVzKSAmJgorCSAgICAgICAgKGNvbXAtPmNvbXBhY3RbKHRhcmdldCAtIDEpICogKGNvbXAtPm5ic3RyaW5ncyArIDEpXSA9PQorCQkgWE1MX1JFR0VYUF9TSU5LX1NUQVRFKSkgeworCSAgICAgICAgdmFsdWVzW25iKytdID0gY29tcC0+c3RyaW5nTWFwW2ldOworCQkoKm5ibmVnKSsrOworCSAgICB9CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgIGludCB0cmFuc25vOworCXhtbFJlZ1RyYW5zUHRyIHRyYW5zOworCXhtbFJlZ0F0b21QdHIgYXRvbTsKKwl4bWxSZWdTdGF0ZVB0ciBzdGF0ZTsKKworCWlmICh0ZXJtaW5hbCAhPSBOVUxMKSB7CisJICAgIGlmIChleGVjLT5zdGF0ZS0+dHlwZSA9PSBYTUxfUkVHRVhQX0ZJTkFMX1NUQVRFKQorCQkqdGVybWluYWwgPSAxOworCSAgICBlbHNlCisJCSp0ZXJtaW5hbCA9IDA7CisJfQorCisJaWYgKGVycikgeworCSAgICBpZiAoZXhlYy0+ZXJyU3RhdGUgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKwkgICAgc3RhdGUgPSBleGVjLT5lcnJTdGF0ZTsKKwl9IGVsc2UgeworCSAgICBpZiAoZXhlYy0+c3RhdGUgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKwkgICAgc3RhdGUgPSBleGVjLT5zdGF0ZTsKKwl9CisJZm9yICh0cmFuc25vID0gMDsKKwkgICAgICh0cmFuc25vIDwgc3RhdGUtPm5iVHJhbnMpICYmIChuYiA8IG1heHZhbCk7CisJICAgICB0cmFuc25vKyspIHsKKwkgICAgdHJhbnMgPSAmc3RhdGUtPnRyYW5zW3RyYW5zbm9dOworCSAgICBpZiAodHJhbnMtPnRvIDwgMCkKKwkJY29udGludWU7CisJICAgIGF0b20gPSB0cmFucy0+YXRvbTsKKwkgICAgaWYgKChhdG9tID09IE5VTEwpIHx8IChhdG9tLT52YWx1ZXAgPT0gTlVMTCkpCisJCWNvbnRpbnVlOworCSAgICBpZiAodHJhbnMtPmNvdW50ID09IFJFR0VYUF9BTExfTEFYX0NPVU5URVIpIHsKKwkgICAgICAgIC8qIHRoaXMgc2hvdWxkIG5vdCBiZSByZWFjaGVkIGJ1dCAuLi4gKi8KKwkgICAgICAgIFRPRE87CisJICAgIH0gZWxzZSBpZiAodHJhbnMtPmNvdW50ID09IFJFR0VYUF9BTExfQ09VTlRFUikgeworCSAgICAgICAgLyogdGhpcyBzaG91bGQgbm90IGJlIHJlYWNoZWQgYnV0IC4uLiAqLworCSAgICAgICAgVE9ETzsKKwkgICAgfSBlbHNlIGlmICh0cmFucy0+Y291bnRlciA+PSAwKSB7CisJCXhtbFJlZ0NvdW50ZXJQdHIgY291bnRlciA9IE5VTEw7CisJCWludCBjb3VudDsKKworCQlpZiAoZXJyKQorCQkgICAgY291bnQgPSBleGVjLT5lcnJDb3VudHNbdHJhbnMtPmNvdW50ZXJdOworCQllbHNlCisJCSAgICBjb3VudCA9IGV4ZWMtPmNvdW50c1t0cmFucy0+Y291bnRlcl07CisJCWlmIChleGVjLT5jb21wICE9IE5VTEwpCisJCSAgICBjb3VudGVyID0gJmV4ZWMtPmNvbXAtPmNvdW50ZXJzW3RyYW5zLT5jb3VudGVyXTsKKwkJaWYgKChjb3VudGVyID09IE5VTEwpIHx8IChjb3VudCA8IGNvdW50ZXItPm1heCkpIHsKKwkJICAgIGlmIChhdG9tLT5uZWcpCisJCQl2YWx1ZXNbbmIrK10gPSAoeG1sQ2hhciAqKSBhdG9tLT52YWx1ZXAyOworCQkgICAgZWxzZQorCQkJdmFsdWVzW25iKytdID0gKHhtbENoYXIgKikgYXRvbS0+dmFsdWVwOworCQkgICAgKCpuYnZhbCkrKzsKKwkJfQorCSAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICgoZXhlYy0+Y29tcC0+c3RhdGVzW3RyYW5zLT50b10gIT0gTlVMTCkgJiYKKwkJICAgIChleGVjLT5jb21wLT5zdGF0ZXNbdHJhbnMtPnRvXS0+dHlwZSAhPQorCQkgICAgIFhNTF9SRUdFWFBfU0lOS19TVEFURSkpIHsKKwkJICAgIGlmIChhdG9tLT5uZWcpCisJCQl2YWx1ZXNbbmIrK10gPSAoeG1sQ2hhciAqKSBhdG9tLT52YWx1ZXAyOworCQkgICAgZWxzZQorCQkJdmFsdWVzW25iKytdID0gKHhtbENoYXIgKikgYXRvbS0+dmFsdWVwOworCQkgICAgKCpuYnZhbCkrKzsKKwkJfQorCSAgICB9IAorCX0KKwlmb3IgKHRyYW5zbm8gPSAwOworCSAgICAgKHRyYW5zbm8gPCBzdGF0ZS0+bmJUcmFucykgJiYgKG5iIDwgbWF4dmFsKTsKKwkgICAgIHRyYW5zbm8rKykgeworCSAgICB0cmFucyA9ICZzdGF0ZS0+dHJhbnNbdHJhbnNub107CisJICAgIGlmICh0cmFucy0+dG8gPCAwKQorCQljb250aW51ZTsKKwkgICAgYXRvbSA9IHRyYW5zLT5hdG9tOworCSAgICBpZiAoKGF0b20gPT0gTlVMTCkgfHwgKGF0b20tPnZhbHVlcCA9PSBOVUxMKSkKKwkJY29udGludWU7CisJICAgIGlmICh0cmFucy0+Y291bnQgPT0gUkVHRVhQX0FMTF9MQVhfQ09VTlRFUikgeworCSAgICAgICAgY29udGludWU7CisJICAgIH0gZWxzZSBpZiAodHJhbnMtPmNvdW50ID09IFJFR0VYUF9BTExfQ09VTlRFUikgeworCSAgICAgICAgY29udGludWU7CisJICAgIH0gZWxzZSBpZiAodHJhbnMtPmNvdW50ZXIgPj0gMCkgeworCSAgICAgICAgY29udGludWU7CisJICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKChleGVjLT5jb21wLT5zdGF0ZXNbdHJhbnMtPnRvXSAhPSBOVUxMKSAmJgorCQkgICAgKGV4ZWMtPmNvbXAtPnN0YXRlc1t0cmFucy0+dG9dLT50eXBlID09CisJCSAgICAgWE1MX1JFR0VYUF9TSU5LX1NUQVRFKSkgeworCQkgICAgaWYgKGF0b20tPm5lZykKKwkJCXZhbHVlc1tuYisrXSA9ICh4bWxDaGFyICopIGF0b20tPnZhbHVlcDI7CisJCSAgICBlbHNlCisJCQl2YWx1ZXNbbmIrK10gPSAoeG1sQ2hhciAqKSBhdG9tLT52YWx1ZXA7CisJCSAgICAoKm5ibmVnKSsrOworCQl9CisJICAgIH0gCisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sUmVnRXhlY05leHRWYWx1ZXM6CisgKiBAZXhlYzogYSByZWdleHAgZXhlY3V0aW9uIGNvbnRleHQKKyAqIEBuYnZhbDogcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGFjY2VwdGVkIHZhbHVlcyBJTi9PVVQKKyAqIEBuYm5lZzogcmV0dXJuIG51bWJlciBvZiBuZWdhdGl2ZSB0cmFuc2l0aW9ucworICogQHZhbHVlczogcG9pbnRlciB0byB0aGUgYXJyYXkgb2YgYWNjZXB0YWJsZSB2YWx1ZXMKKyAqIEB0ZXJtaW5hbDogcmV0dXJuIHZhbHVlIGlmIHRoaXMgd2FzIGEgdGVybWluYWwgc3RhdGUKKyAqCisgKiBFeHRyYWN0IGluZm9ybWF0aW9ucyBmcm9tIHRoZSByZWdleHAgZXhlY3V0aW9uLAorICogdGhlIHBhcmFtZXRlciBAdmFsdWVzIG11c3QgcG9pbnQgdG8gYW4gYXJyYXkgb2YgQG5idmFsIHN0cmluZyBwb2ludGVycworICogb24gcmV0dXJuIG5idmFsIHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIHN0cmluZ3MgaW4gdGhhdAorICogc3RhdGUgYW5kIHRoZSBAdmFsdWVzIGFycmF5IHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZW0uIFRoZSBzdHJpbmcgdmFsdWVzCisgKiByZXR1cm5lZCB3aWxsIGJlIGZyZWVkIHdpdGggdGhlIEBleGVjIGNvbnRleHQgYW5kIGRvbid0IG5lZWQgdG8gYmUKKyAqIGRlYWxsb2NhdGVkLgorICoKKyAqIFJldHVybnM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sUmVnRXhlY05leHRWYWx1ZXMoeG1sUmVnRXhlY0N0eHRQdHIgZXhlYywgaW50ICpuYnZhbCwgaW50ICpuYm5lZywKKyAgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKip2YWx1ZXMsIGludCAqdGVybWluYWwpIHsKKyAgICByZXR1cm4oeG1sUmVnRXhlY0dldFZhbHVlcyhleGVjLCAwLCBuYnZhbCwgbmJuZWcsIHZhbHVlcywgdGVybWluYWwpKTsKK30KKworLyoqCisgKiB4bWxSZWdFeGVjRXJySW5mbzoKKyAqIEBleGVjOiBhIHJlZ2V4cCBleGVjdXRpb24gY29udGV4dCBnZW5lcmF0aW5nIGFuIGVycm9yCisgKiBAc3RyaW5nOiByZXR1cm4gdmFsdWUgZm9yIHRoZSBlcnJvciBzdHJpbmcKKyAqIEBuYnZhbDogcG9pbnRlciB0byB0aGUgbnVtYmVyIG9mIGFjY2VwdGVkIHZhbHVlcyBJTi9PVVQKKyAqIEBuYm5lZzogcmV0dXJuIG51bWJlciBvZiBuZWdhdGl2ZSB0cmFuc2l0aW9ucworICogQHZhbHVlczogcG9pbnRlciB0byB0aGUgYXJyYXkgb2YgYWNjZXB0YWJsZSB2YWx1ZXMKKyAqIEB0ZXJtaW5hbDogcmV0dXJuIHZhbHVlIGlmIHRoaXMgd2FzIGEgdGVybWluYWwgc3RhdGUKKyAqCisgKiBFeHRyYWN0IGVycm9yIGluZm9ybWF0aW9ucyBmcm9tIHRoZSByZWdleHAgZXhlY3V0aW9uLCB0aGUgcGFyYW1ldGVyCisgKiBAc3RyaW5nIHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZSB2YWx1ZSBwdXNoZWQgYW5kIG5vdCBhY2NlcHRlZCwKKyAqIHRoZSBwYXJhbWV0ZXIgQHZhbHVlcyBtdXN0IHBvaW50IHRvIGFuIGFycmF5IG9mIEBuYnZhbCBzdHJpbmcgcG9pbnRlcnMKKyAqIG9uIHJldHVybiBuYnZhbCB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBwb3NzaWJsZSBzdHJpbmdzIGluIHRoYXQKKyAqIHN0YXRlIGFuZCB0aGUgQHZhbHVlcyBhcnJheSB3aWxsIGJlIHVwZGF0ZWQgd2l0aCB0aGVtLiBUaGUgc3RyaW5nIHZhbHVlcworICogcmV0dXJuZWQgd2lsbCBiZSBmcmVlZCB3aXRoIHRoZSBAZXhlYyBjb250ZXh0IGFuZCBkb24ndCBuZWVkIHRvIGJlCisgKiBkZWFsbG9jYXRlZC4KKyAqCisgKiBSZXR1cm5zOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFJlZ0V4ZWNFcnJJbmZvKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMsIGNvbnN0IHhtbENoYXIgKipzdHJpbmcsCisgICAgICAgICAgICAgICAgICBpbnQgKm5idmFsLCBpbnQgKm5ibmVnLCB4bWxDaGFyICoqdmFsdWVzLCBpbnQgKnRlcm1pbmFsKSB7CisgICAgaWYgKGV4ZWMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBpZiAoc3RyaW5nICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGV4ZWMtPnN0YXR1cyAhPSAwKQorCSAgICAqc3RyaW5nID0gZXhlYy0+ZXJyU3RyaW5nOworCWVsc2UKKwkgICAgKnN0cmluZyA9IE5VTEw7CisgICAgfQorICAgIHJldHVybih4bWxSZWdFeGVjR2V0VmFsdWVzKGV4ZWMsIDEsIG5idmFsLCBuYm5lZywgdmFsdWVzLCB0ZXJtaW5hbCkpOworfQorCisjaWZkZWYgREVCVUdfRVJSCitzdGF0aWMgdm9pZCB0ZXN0ZXJyKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMpIHsKKyAgICBjb25zdCB4bWxDaGFyICpzdHJpbmc7CisgICAgeG1sQ2hhciAqdmFsdWVzWzVdOworICAgIGludCBuYiA9IDU7CisgICAgaW50IG5ibmVnOworICAgIGludCB0ZXJtaW5hbDsKKyAgICB4bWxSZWdFeGVjRXJySW5mbyhleGVjLCAmc3RyaW5nLCAmbmIsICZuYm5lZywgJnZhbHVlc1swXSwgJnRlcm1pbmFsKTsKK30KKyNlbmRpZgorCisjaWYgMAorc3RhdGljIGludAoreG1sUmVnRXhlY1B1c2hDaGFyKHhtbFJlZ0V4ZWNDdHh0UHRyIGV4ZWMsIGludCBVQ1MpIHsKKyAgICB4bWxSZWdUcmFuc1B0ciB0cmFuczsKKyAgICB4bWxSZWdBdG9tUHRyIGF0b207CisgICAgaW50IHJldDsKKyAgICBpbnQgY29kZXBvaW50LCBsZW47CisKKyAgICBpZiAoZXhlYyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKGV4ZWMtPnN0YXR1cyAhPSAwKQorCXJldHVybihleGVjLT5zdGF0dXMpOworCisgICAgd2hpbGUgKChleGVjLT5zdGF0dXMgPT0gMCkgJiYKKwkgICAoKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSAhPSAwKSB8fAorCSAgICAoZXhlYy0+c3RhdGUtPnR5cGUgIT0gWE1MX1JFR0VYUF9GSU5BTF9TVEFURSkpKSB7CisKKwkvKgorCSAqIEVuZCBvZiBpbnB1dCBvbiBub24tdGVybWluYWwgc3RhdGUsIHJvbGxiYWNrLCBob3dldmVyIHdlIG1heQorCSAqIHN0aWxsIGhhdmUgZXBzaWxvbiBsaWtlIHRyYW5zaXRpb24gZm9yIGNvdW50ZWQgdHJhbnNpdGlvbnMKKwkgKiBvbiBjb3VudGVycywgaW4gdGhhdCBjYXNlIGRvbid0IGJyZWFrIHRvbyBlYXJseS4KKwkgKi8KKwlpZiAoKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSA9PSAwKSAmJiAoZXhlYy0+Y291bnRzID09IE5VTEwpKQorCSAgICBnb3RvIHJvbGxiYWNrOworCisJZXhlYy0+dHJhbnNjb3VudCA9IDA7CisJZm9yICg7ZXhlYy0+dHJhbnNubyA8IGV4ZWMtPnN0YXRlLT5uYlRyYW5zO2V4ZWMtPnRyYW5zbm8rKykgeworCSAgICB0cmFucyA9ICZleGVjLT5zdGF0ZS0+dHJhbnNbZXhlYy0+dHJhbnNub107CisJICAgIGlmICh0cmFucy0+dG8gPCAwKQorCQljb250aW51ZTsKKwkgICAgYXRvbSA9IHRyYW5zLT5hdG9tOworCSAgICByZXQgPSAwOworCSAgICBpZiAodHJhbnMtPmNvdW50ID49IDApIHsKKwkJaW50IGNvdW50OworCQl4bWxSZWdDb3VudGVyUHRyIGNvdW50ZXI7CisKKwkJLyoKKwkJICogQSBjb3VudGVkIHRyYW5zaXRpb24uCisJCSAqLworCisJCWNvdW50ID0gZXhlYy0+Y291bnRzW3RyYW5zLT5jb3VudF07CisJCWNvdW50ZXIgPSAmZXhlYy0+Y29tcC0+Y291bnRlcnNbdHJhbnMtPmNvdW50XTsKKyNpZmRlZiBERUJVR19SRUdFWFBfRVhFQworCQlwcmludGYoInRlc3RpbmcgY291bnQgJWQ6IHZhbCAlZCwgbWluICVkLCBtYXggJWRcbiIsCisJCSAgICAgICB0cmFucy0+Y291bnQsIGNvdW50LCBjb3VudGVyLT5taW4sICBjb3VudGVyLT5tYXgpOworI2VuZGlmCisJCXJldCA9ICgoY291bnQgPj0gY291bnRlci0+bWluKSAmJiAoY291bnQgPD0gY291bnRlci0+bWF4KSk7CisJICAgIH0gZWxzZSBpZiAoYXRvbSA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAiZXBzaWxvbiB0cmFuc2l0aW9uIGxlZnQgYXQgcnVudGltZVxuIik7CisJCWV4ZWMtPnN0YXR1cyA9IC0yOworCQlicmVhazsKKwkgICAgfSBlbHNlIGlmIChleGVjLT5pbnB1dFN0cmluZ1tleGVjLT5pbmRleF0gIT0gMCkgeworICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IENVUl9TQ0hBUigmKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSksIGxlbik7CisJCXJldCA9IHhtbFJlZ0NoZWNrQ2hhcmFjdGVyKGF0b20sIGNvZGVwb2ludCk7CisJCWlmICgocmV0ID09IDEpICYmIChhdG9tLT5taW4gPiAwKSAmJiAoYXRvbS0+bWF4ID4gMCkpIHsKKwkJICAgIHhtbFJlZ1N0YXRlUHRyIHRvID0gZXhlYy0+Y29tcC0+c3RhdGVzW3RyYW5zLT50b107CisKKwkJICAgIC8qCisJCSAgICAgKiB0aGlzIGlzIGEgbXVsdGlwbGUgaW5wdXQgc2VxdWVuY2UKKwkJICAgICAqLworCQkgICAgaWYgKGV4ZWMtPnN0YXRlLT5uYlRyYW5zID4gZXhlYy0+dHJhbnNubyArIDEpIHsKKwkJCXhtbEZBUmVnRXhlY1NhdmUoZXhlYyk7CisJCSAgICB9CisJCSAgICBleGVjLT50cmFuc2NvdW50ID0gMTsKKwkJICAgIGRvIHsKKwkJCS8qCisJCQkgKiBUcnkgdG8gcHJvZ3Jlc3MgYXMgbXVjaCBhcyBwb3NzaWJsZSBvbiB0aGUgaW5wdXQKKwkJCSAqLworCQkJaWYgKGV4ZWMtPnRyYW5zY291bnQgPT0gYXRvbS0+bWF4KSB7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCQlleGVjLT5pbmRleCArPSBsZW47CisJCQkvKgorCQkJICogRW5kIG9mIGlucHV0OiBzdG9wIGhlcmUKKwkJCSAqLworCQkJaWYgKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSA9PSAwKSB7CisJCQkgICAgZXhlYy0+aW5kZXggLT0gbGVuOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJaWYgKGV4ZWMtPnRyYW5zY291bnQgPj0gYXRvbS0+bWluKSB7CisJCQkgICAgaW50IHRyYW5zbm8gPSBleGVjLT50cmFuc25vOworCQkJICAgIHhtbFJlZ1N0YXRlUHRyIHN0YXRlID0gZXhlYy0+c3RhdGU7CisKKwkJCSAgICAvKgorCQkJICAgICAqIFRoZSB0cmFuc2l0aW9uIGlzIGFjY2VwdGFibGUgc2F2ZSBpdAorCQkJICAgICAqLworCQkJICAgIGV4ZWMtPnRyYW5zbm8gPSAtMTsgLyogdHJpY2sgKi8KKwkJCSAgICBleGVjLT5zdGF0ZSA9IHRvOworCQkJICAgIHhtbEZBUmVnRXhlY1NhdmUoZXhlYyk7CisJCQkgICAgZXhlYy0+dHJhbnNubyA9IHRyYW5zbm87CisJCQkgICAgZXhlYy0+c3RhdGUgPSBzdGF0ZTsKKwkJCX0KKwkJCWNvZGVwb2ludCA9IENVUl9TQ0hBUigmKGV4ZWMtPmlucHV0U3RyaW5nW2V4ZWMtPmluZGV4XSksCisJCQkJICAgICAgICAgICAgICBsZW4pOworCQkJcmV0ID0geG1sUmVnQ2hlY2tDaGFyYWN0ZXIoYXRvbSwgY29kZXBvaW50KTsKKwkJCWV4ZWMtPnRyYW5zY291bnQrKzsKKwkJICAgIH0gd2hpbGUgKHJldCA9PSAxKTsKKwkJICAgIGlmIChleGVjLT50cmFuc2NvdW50IDwgYXRvbS0+bWluKQorCQkJcmV0ID0gMDsKKworCQkgICAgLyoKKwkJICAgICAqIElmIHRoZSBsYXN0IGNoZWNrIGZhaWxlZCBidXQgb25lIHRyYW5zaXRpb24gd2FzIGZvdW5kCisJCSAgICAgKiBwb3NzaWJsZSwgcm9sbGJhY2sKKwkJICAgICAqLworCQkgICAgaWYgKHJldCA8IDApCisJCQlyZXQgPSAwOworCQkgICAgaWYgKHJldCA9PSAwKSB7CisJCQlnb3RvIHJvbGxiYWNrOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgICAgaWYgKHJldCA9PSAxKSB7CisJCWlmIChleGVjLT5zdGF0ZS0+bmJUcmFucyA+IGV4ZWMtPnRyYW5zbm8gKyAxKSB7CisJCSAgICB4bWxGQVJlZ0V4ZWNTYXZlKGV4ZWMpOworCQl9CisJCS8qCisJCSAqIHJlc3RhcnQgY291bnQgZm9yIGV4cHJlc3Npb25zIGxpa2UgdGhpcyAoKGFiYyl7Mn0pKgorCQkgKi8KKwkJaWYgKHRyYW5zLT5jb3VudCA+PSAwKSB7CisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKwkJICAgIHByaW50ZigiUmVzZXQgY291bnQgJWRcbiIsIHRyYW5zLT5jb3VudCk7CisjZW5kaWYKKwkJICAgIGV4ZWMtPmNvdW50c1t0cmFucy0+Y291bnRdID0gMDsKKwkJfQorCQlpZiAodHJhbnMtPmNvdW50ZXIgPj0gMCkgeworI2lmZGVmIERFQlVHX1JFR0VYUF9FWEVDCisJCSAgICBwcmludGYoIkluY3JlYXNpbmcgY291bnQgJWRcbiIsIHRyYW5zLT5jb3VudGVyKTsKKyNlbmRpZgorCQkgICAgZXhlYy0+Y291bnRzW3RyYW5zLT5jb3VudGVyXSsrOworCQl9CisjaWZkZWYgREVCVUdfUkVHRVhQX0VYRUMKKwkJcHJpbnRmKCJlbnRlcmluZyBzdGF0ZSAlZFxuIiwgdHJhbnMtPnRvKTsKKyNlbmRpZgorCQlleGVjLT5zdGF0ZSA9IGV4ZWMtPmNvbXAtPnN0YXRlc1t0cmFucy0+dG9dOworCQlleGVjLT50cmFuc25vID0gMDsKKwkJaWYgKHRyYW5zLT5hdG9tICE9IE5VTEwpIHsKKwkJICAgIGV4ZWMtPmluZGV4ICs9IGxlbjsKKwkJfQorCQlnb3RvIHByb2dyZXNzOworCSAgICB9IGVsc2UgaWYgKHJldCA8IDApIHsKKwkJZXhlYy0+c3RhdHVzID0gLTQ7CisJCWJyZWFrOworCSAgICB9CisJfQorCWlmICgoZXhlYy0+dHJhbnNubyAhPSAwKSB8fCAoZXhlYy0+c3RhdGUtPm5iVHJhbnMgPT0gMCkpIHsKK3JvbGxiYWNrOgorCSAgICAvKgorCSAgICAgKiBGYWlsZWQgdG8gZmluZCBhIHdheSBvdXQKKwkgICAgICovCisJICAgIGV4ZWMtPmRldGVybWluaXN0ID0gMDsKKwkgICAgeG1sRkFSZWdFeGVjUm9sbEJhY2soZXhlYyk7CisJfQorcHJvZ3Jlc3M6CisJY29udGludWU7CisgICAgfQorfQorI2VuZGlmCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKglQYXJzZXIgZm9yIHRoZSBTY2hlbWFzIERhdGF0eXBlIFJlZ3VsYXIgRXhwcmVzc2lvbnMJCSoKKyAqCWh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbHNjaGVtYS0yLTIwMDEwNTAyLyNyZWdleHMJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxGQUlzQ2hhcjoKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBbMTBdICAgQ2hhciAgIDo6PSAgIFteLlw/KisoKXwjeDVCI3g1RF0KKyAqLworc3RhdGljIGludAoreG1sRkFJc0NoYXIoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaW50IGN1cjsKKyAgICBpbnQgbGVuOworCisgICAgY3VyID0gQ1VSX1NDSEFSKGN0eHQtPmN1ciwgbGVuKTsKKyAgICBpZiAoKGN1ciA9PSAnLicpIHx8IChjdXIgPT0gJ1xcJykgfHwgKGN1ciA9PSAnPycpIHx8CisJKGN1ciA9PSAnKicpIHx8IChjdXIgPT0gJysnKSB8fCAoY3VyID09ICcoJykgfHwKKwkoY3VyID09ICcpJykgfHwgKGN1ciA9PSAnfCcpIHx8IChjdXIgPT0gMHg1QikgfHwKKwkoY3VyID09IDB4NUQpIHx8IChjdXIgPT0gMCkpCisJcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oY3VyKTsKK30KKworLyoqCisgKiB4bWxGQVBhcnNlQ2hhclByb3A6CisgKiBAY3R4dDogIGEgcmVnZXhwIHBhcnNlciBjb250ZXh0CisgKgorICogWzI3XSAgIGNoYXJQcm9wICAgOjo9ICAgSXNDYXRlZ29yeSB8IElzQmxvY2sKKyAqIFsyOF0gICBJc0NhdGVnb3J5IDo6PSBMZXR0ZXJzIHwgTWFya3MgfCBOdW1iZXJzIHwgUHVuY3R1YXRpb24gfAorICogICAgICAgICAgICAgICAgICAgICAgIFNlcGFyYXRvcnMgfCBTeW1ib2xzIHwgT3RoZXJzIAorICogWzI5XSAgIExldHRlcnMgICA6Oj0gICAnTCcgW3VsdG1vXT8KKyAqIFszMF0gICBNYXJrcyAgIDo6PSAgICdNJyBbbmNlXT8KKyAqIFszMV0gICBOdW1iZXJzICAgOjo9ICAgJ04nIFtkbG9dPworICogWzMyXSAgIFB1bmN0dWF0aW9uICAgOjo9ICAgJ1AnIFtjZHNlaWZvXT8KKyAqIFszM10gICBTZXBhcmF0b3JzICAgOjo9ICAgJ1onIFtzbHBdPworICogWzM0XSAgIFN5bWJvbHMgICA6Oj0gICAnUycgW21ja29dPworICogWzM1XSAgIE90aGVycyAgIDo6PSAgICdDJyBbY2Zvbl0/CisgKiBbMzZdICAgSXNCbG9jayAgIDo6PSAgICdJcycgW2EtekEtWjAtOSN4MkRdKworICovCitzdGF0aWMgdm9pZAoreG1sRkFQYXJzZUNoYXJQcm9wKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCBjdXI7CisgICAgeG1sUmVnQXRvbVR5cGUgdHlwZSA9ICh4bWxSZWdBdG9tVHlwZSkgMDsKKyAgICB4bWxDaGFyICpibG9ja05hbWUgPSBOVUxMOworICAgIAorICAgIGN1ciA9IENVUjsKKyAgICBpZiAoY3VyID09ICdMJykgeworCU5FWFQ7CisJY3VyID0gQ1VSOworCWlmIChjdXIgPT0gJ3UnKSB7CisJICAgIE5FWFQ7CisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX0xFVFRFUl9VUFBFUkNBU0U7CisJfSBlbHNlIGlmIChjdXIgPT0gJ2wnKSB7CisJICAgIE5FWFQ7CisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX0xFVFRFUl9MT1dFUkNBU0U7CisJfSBlbHNlIGlmIChjdXIgPT0gJ3QnKSB7CisJICAgIE5FWFQ7CisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX0xFVFRFUl9USVRMRUNBU0U7CisJfSBlbHNlIGlmIChjdXIgPT0gJ20nKSB7CisJICAgIE5FWFQ7CisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX0xFVFRFUl9NT0RJRklFUjsKKwl9IGVsc2UgaWYgKGN1ciA9PSAnbycpIHsKKwkgICAgTkVYVDsKKwkgICAgdHlwZSA9IFhNTF9SRUdFWFBfTEVUVEVSX09USEVSUzsKKwl9IGVsc2UgeworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9MRVRURVI7CisJfQorICAgIH0gZWxzZSBpZiAoY3VyID09ICdNJykgeworCU5FWFQ7CisJY3VyID0gQ1VSOworCWlmIChjdXIgPT0gJ24nKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIG5vbnNwYWNpbmcgKi8KKwkgICAgdHlwZSA9IFhNTF9SRUdFWFBfTUFSS19OT05TUEFDSU5HOworCX0gZWxzZSBpZiAoY3VyID09ICdjJykgeworCSAgICBORVhUOworCSAgICAvKiBzcGFjaW5nIGNvbWJpbmluZyAqLworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9NQVJLX1NQQUNFQ09NQklOSU5HOworCX0gZWxzZSBpZiAoY3VyID09ICdlJykgeworCSAgICBORVhUOworCSAgICAvKiBlbmNsb3NpbmcgKi8KKwkgICAgdHlwZSA9IFhNTF9SRUdFWFBfTUFSS19FTkNMT1NJTkc7CisJfSBlbHNlIHsKKwkgICAgLyogYWxsIG1hcmtzICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX01BUks7CisJfQorICAgIH0gZWxzZSBpZiAoY3VyID09ICdOJykgeworCU5FWFQ7CisJY3VyID0gQ1VSOworCWlmIChjdXIgPT0gJ2QnKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIGRpZ2l0YWwgKi8KKwkgICAgdHlwZSA9IFhNTF9SRUdFWFBfTlVNQkVSX0RFQ0lNQUw7CisJfSBlbHNlIGlmIChjdXIgPT0gJ2wnKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIGxldHRlciAqLworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9OVU1CRVJfTEVUVEVSOworCX0gZWxzZSBpZiAoY3VyID09ICdvJykgeworCSAgICBORVhUOworCSAgICAvKiBvdGhlciAqLworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9OVU1CRVJfT1RIRVJTOworCX0gZWxzZSB7CisJICAgIC8qIGFsbCBudW1iZXJzICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX05VTUJFUjsKKwl9CisgICAgfSBlbHNlIGlmIChjdXIgPT0gJ1AnKSB7CisJTkVYVDsKKwljdXIgPSBDVVI7CisJaWYgKGN1ciA9PSAnYycpIHsKKwkgICAgTkVYVDsKKwkgICAgLyogY29ubmVjdG9yICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1BVTkNUX0NPTk5FQ1RPUjsKKwl9IGVsc2UgaWYgKGN1ciA9PSAnZCcpIHsKKwkgICAgTkVYVDsKKwkgICAgLyogZGFzaCAqLworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9QVU5DVF9EQVNIOworCX0gZWxzZSBpZiAoY3VyID09ICdzJykgeworCSAgICBORVhUOworCSAgICAvKiBvcGVuICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1BVTkNUX09QRU47CisJfSBlbHNlIGlmIChjdXIgPT0gJ2UnKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIGNsb3NlICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1BVTkNUX0NMT1NFOworCX0gZWxzZSBpZiAoY3VyID09ICdpJykgeworCSAgICBORVhUOworCSAgICAvKiBpbml0aWFsIHF1b3RlICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1BVTkNUX0lOSVRRVU9URTsKKwl9IGVsc2UgaWYgKGN1ciA9PSAnZicpIHsKKwkgICAgTkVYVDsKKwkgICAgLyogZmluYWwgcXVvdGUgKi8KKwkgICAgdHlwZSA9IFhNTF9SRUdFWFBfUFVOQ1RfRklOUVVPVEU7CisJfSBlbHNlIGlmIChjdXIgPT0gJ28nKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIG90aGVyICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1BVTkNUX09USEVSUzsKKwl9IGVsc2UgeworCSAgICAvKiBhbGwgcHVuY3R1YXRpb24gKi8KKwkgICAgdHlwZSA9IFhNTF9SRUdFWFBfUFVOQ1Q7CisJfQorICAgIH0gZWxzZSBpZiAoY3VyID09ICdaJykgeworCU5FWFQ7CisJY3VyID0gQ1VSOworCWlmIChjdXIgPT0gJ3MnKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIHNwYWNlICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1NFUEFSX1NQQUNFOworCX0gZWxzZSBpZiAoY3VyID09ICdsJykgeworCSAgICBORVhUOworCSAgICAvKiBsaW5lICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1NFUEFSX0xJTkU7CisJfSBlbHNlIGlmIChjdXIgPT0gJ3AnKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIHBhcmFncmFwaCAqLworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9TRVBBUl9QQVJBOworCX0gZWxzZSB7CisJICAgIC8qIGFsbCBzZXBhcmF0b3JzICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1NFUEFSOworCX0KKyAgICB9IGVsc2UgaWYgKGN1ciA9PSAnUycpIHsKKwlORVhUOworCWN1ciA9IENVUjsKKwlpZiAoY3VyID09ICdtJykgeworCSAgICBORVhUOworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9TWU1CT0xfTUFUSDsKKwkgICAgLyogbWF0aCAqLworCX0gZWxzZSBpZiAoY3VyID09ICdjJykgeworCSAgICBORVhUOworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9TWU1CT0xfQ1VSUkVOQ1k7CisJICAgIC8qIGN1cnJlbmN5ICovCisJfSBlbHNlIGlmIChjdXIgPT0gJ2snKSB7CisJICAgIE5FWFQ7CisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1NZTUJPTF9NT0RJRklFUjsKKwkgICAgLyogbW9kaWZpZXJzICovCisJfSBlbHNlIGlmIChjdXIgPT0gJ28nKSB7CisJICAgIE5FWFQ7CisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX1NZTUJPTF9PVEhFUlM7CisJICAgIC8qIG90aGVyICovCisJfSBlbHNlIHsKKwkgICAgLyogYWxsIHN5bWJvbHMgKi8KKwkgICAgdHlwZSA9IFhNTF9SRUdFWFBfU1lNQk9MOworCX0KKyAgICB9IGVsc2UgaWYgKGN1ciA9PSAnQycpIHsKKwlORVhUOworCWN1ciA9IENVUjsKKwlpZiAoY3VyID09ICdjJykgeworCSAgICBORVhUOworCSAgICAvKiBjb250cm9sICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX09USEVSX0NPTlRST0w7CisJfSBlbHNlIGlmIChjdXIgPT0gJ2YnKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIGZvcm1hdCAqLworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9PVEhFUl9GT1JNQVQ7CisJfSBlbHNlIGlmIChjdXIgPT0gJ28nKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIHByaXZhdGUgdXNlICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX09USEVSX1BSSVZBVEU7CisJfSBlbHNlIGlmIChjdXIgPT0gJ24nKSB7CisJICAgIE5FWFQ7CisJICAgIC8qIG5vdCBhc3NpZ25lZCAqLworCSAgICB0eXBlID0gWE1MX1JFR0VYUF9PVEhFUl9OQTsKKwl9IGVsc2UgeworCSAgICAvKiBhbGwgb3RoZXJzICovCisJICAgIHR5cGUgPSBYTUxfUkVHRVhQX09USEVSOworCX0KKyAgICB9IGVsc2UgaWYgKGN1ciA9PSAnSScpIHsKKwljb25zdCB4bWxDaGFyICpzdGFydDsKKwlORVhUOworCWN1ciA9IENVUjsKKwlpZiAoY3VyICE9ICdzJykgeworCSAgICBFUlJPUigiSXNYWFhYIGV4cGVjdGVkIik7CisJICAgIHJldHVybjsKKwl9CisJTkVYVDsKKwlzdGFydCA9IGN0eHQtPmN1cjsKKwljdXIgPSBDVVI7CisJaWYgKCgoY3VyID49ICdhJykgJiYgKGN1ciA8PSAneicpKSB8fCAKKwkgICAgKChjdXIgPj0gJ0EnKSAmJiAoY3VyIDw9ICdaJykpIHx8IAorCSAgICAoKGN1ciA+PSAnMCcpICYmIChjdXIgPD0gJzknKSkgfHwgCisJICAgIChjdXIgPT0gMHgyRCkpIHsKKwkgICAgTkVYVDsKKwkgICAgY3VyID0gQ1VSOworCSAgICB3aGlsZSAoKChjdXIgPj0gJ2EnKSAmJiAoY3VyIDw9ICd6JykpIHx8IAorCQkoKGN1ciA+PSAnQScpICYmIChjdXIgPD0gJ1onKSkgfHwgCisJCSgoY3VyID49ICcwJykgJiYgKGN1ciA8PSAnOScpKSB8fCAKKwkJKGN1ciA9PSAweDJEKSkgeworCQlORVhUOworCQljdXIgPSBDVVI7CisJICAgIH0KKwl9CisJdHlwZSA9IFhNTF9SRUdFWFBfQkxPQ0tfTkFNRTsKKwlibG9ja05hbWUgPSB4bWxTdHJuZHVwKHN0YXJ0LCBjdHh0LT5jdXIgLSBzdGFydCk7CisgICAgfSBlbHNlIHsKKwlFUlJPUigiVW5rbm93biBjaGFyIHByb3BlcnR5Iik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3R4dC0+YXRvbSA9PSBOVUxMKSB7CisJY3R4dC0+YXRvbSA9IHhtbFJlZ05ld0F0b20oY3R4dCwgdHlwZSk7CisJaWYgKGN0eHQtPmF0b20gIT0gTlVMTCkKKwkgICAgY3R4dC0+YXRvbS0+dmFsdWVwID0gYmxvY2tOYW1lOworICAgIH0gZWxzZSBpZiAoY3R4dC0+YXRvbS0+dHlwZSA9PSBYTUxfUkVHRVhQX1JBTkdFUykgeworICAgICAgICB4bWxSZWdBdG9tQWRkUmFuZ2UoY3R4dCwgY3R4dC0+YXRvbSwgY3R4dC0+bmVnLAorCQkgICAgICAgICAgIHR5cGUsIDAsIDAsIGJsb2NrTmFtZSk7CisgICAgfQorfQorCisvKioKKyAqIHhtbEZBUGFyc2VDaGFyQ2xhc3NFc2M6CisgKiBAY3R4dDogIGEgcmVnZXhwIHBhcnNlciBjb250ZXh0CisgKgorICogWzIzXSBjaGFyQ2xhc3NFc2MgOjo9ICggU2luZ2xlQ2hhckVzYyB8IE11bHRpQ2hhckVzYyB8IGNhdEVzYyB8IGNvbXBsRXNjICkgCisgKiBbMjRdIFNpbmdsZUNoYXJFc2MgOjo9ICdcJyBbbnJ0XHwuPyorKCl7fSN4MkQjeDVCI3g1RCN4NUVdCisgKiBbMjVdIGNhdEVzYyAgIDo6PSAgICdccHsnIGNoYXJQcm9wICd9JworICogWzI2XSBjb21wbEVzYyA6Oj0gICAnXFB7JyBjaGFyUHJvcCAnfScKKyAqIFszN10gTXVsdGlDaGFyRXNjIDo6PSAnLicgfCAoJ1wnIFtzU2lJY0NkRHdXXSkKKyAqLworc3RhdGljIHZvaWQKK3htbEZBUGFyc2VDaGFyQ2xhc3NFc2MoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaW50IGN1cjsKKworICAgIGlmIChDVVIgPT0gJy4nKSB7CisJaWYgKGN0eHQtPmF0b20gPT0gTlVMTCkgeworCSAgICBjdHh0LT5hdG9tID0geG1sUmVnTmV3QXRvbShjdHh0LCBYTUxfUkVHRVhQX0FOWUNIQVIpOworCX0gZWxzZSBpZiAoY3R4dC0+YXRvbS0+dHlwZSA9PSBYTUxfUkVHRVhQX1JBTkdFUykgeworCSAgICB4bWxSZWdBdG9tQWRkUmFuZ2UoY3R4dCwgY3R4dC0+YXRvbSwgY3R4dC0+bmVnLAorCQkJICAgICAgIFhNTF9SRUdFWFBfQU5ZQ0hBUiwgMCwgMCwgTlVMTCk7CisJfQorCU5FWFQ7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoQ1VSICE9ICdcXCcpIHsKKwlFUlJPUigiRXNjYXBlZCBzZXF1ZW5jZTogZXhwZWN0aW5nIFxcIik7CisJcmV0dXJuOworICAgIH0KKyAgICBORVhUOworICAgIGN1ciA9IENVUjsKKyAgICBpZiAoY3VyID09ICdwJykgeworCU5FWFQ7CisJaWYgKENVUiAhPSAneycpIHsKKwkgICAgRVJST1IoIkV4cGVjdGluZyAneyciKTsKKwkgICAgcmV0dXJuOworCX0KKwlORVhUOworCXhtbEZBUGFyc2VDaGFyUHJvcChjdHh0KTsKKwlpZiAoQ1VSICE9ICd9JykgeworCSAgICBFUlJPUigiRXhwZWN0aW5nICd9JyIpOworCSAgICByZXR1cm47CisJfQorCU5FWFQ7CisgICAgfSBlbHNlIGlmIChjdXIgPT0gJ1AnKSB7CisJTkVYVDsKKwlpZiAoQ1VSICE9ICd7JykgeworCSAgICBFUlJPUigiRXhwZWN0aW5nICd7JyIpOworCSAgICByZXR1cm47CisJfQorCU5FWFQ7CisJeG1sRkFQYXJzZUNoYXJQcm9wKGN0eHQpOworCWN0eHQtPmF0b20tPm5lZyA9IDE7CisJaWYgKENVUiAhPSAnfScpIHsKKwkgICAgRVJST1IoIkV4cGVjdGluZyAnfSciKTsKKwkgICAgcmV0dXJuOworCX0KKwlORVhUOworICAgIH0gZWxzZSBpZiAoKGN1ciA9PSAnbicpIHx8IChjdXIgPT0gJ3InKSB8fCAoY3VyID09ICd0JykgfHwgKGN1ciA9PSAnXFwnKSB8fAorCShjdXIgPT0gJ3wnKSB8fCAoY3VyID09ICcuJykgfHwgKGN1ciA9PSAnPycpIHx8IChjdXIgPT0gJyonKSB8fAorCShjdXIgPT0gJysnKSB8fCAoY3VyID09ICcoJykgfHwgKGN1ciA9PSAnKScpIHx8IChjdXIgPT0gJ3snKSB8fAorCShjdXIgPT0gJ30nKSB8fCAoY3VyID09IDB4MkQpIHx8IChjdXIgPT0gMHg1QikgfHwgKGN1ciA9PSAweDVEKSB8fAorCShjdXIgPT0gMHg1RSkpIHsKKwlpZiAoY3R4dC0+YXRvbSA9PSBOVUxMKSB7CisJICAgIGN0eHQtPmF0b20gPSB4bWxSZWdOZXdBdG9tKGN0eHQsIFhNTF9SRUdFWFBfQ0hBUlZBTCk7CisJICAgIGlmIChjdHh0LT5hdG9tICE9IE5VTEwpIHsKKwkgICAgICAgIHN3aXRjaCAoY3VyKSB7CisJCSAgICBjYXNlICduJzoKKwkJICAgICAgICBjdHh0LT5hdG9tLT5jb2RlcG9pbnQgPSAnXG4nOworCQkJYnJlYWs7CisJCSAgICBjYXNlICdyJzoKKwkJICAgICAgICBjdHh0LT5hdG9tLT5jb2RlcG9pbnQgPSAnXHInOworCQkJYnJlYWs7CisJCSAgICBjYXNlICd0JzoKKwkJICAgICAgICBjdHh0LT5hdG9tLT5jb2RlcG9pbnQgPSAnXHQnOworCQkJYnJlYWs7CisJCSAgICBkZWZhdWx0OgorCQkJY3R4dC0+YXRvbS0+Y29kZXBvaW50ID0gY3VyOworCQl9CisJICAgIH0KKwl9IGVsc2UgaWYgKGN0eHQtPmF0b20tPnR5cGUgPT0gWE1MX1JFR0VYUF9SQU5HRVMpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY3VyKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICAgICAgICAgIGN1ciA9ICdcbic7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3InOgorICAgICAgICAgICAgICAgICAgICBjdXIgPSAnXHInOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICd0JzoKKyAgICAgICAgICAgICAgICAgICAgY3VyID0gJ1x0JzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisJICAgIHhtbFJlZ0F0b21BZGRSYW5nZShjdHh0LCBjdHh0LT5hdG9tLCBjdHh0LT5uZWcsCisJCQkgICAgICAgWE1MX1JFR0VYUF9DSEFSVkFMLCBjdXIsIGN1ciwgTlVMTCk7CisJfQorCU5FWFQ7CisgICAgfSBlbHNlIGlmICgoY3VyID09ICdzJykgfHwgKGN1ciA9PSAnUycpIHx8IChjdXIgPT0gJ2knKSB8fCAoY3VyID09ICdJJykgfHwKKwkoY3VyID09ICdjJykgfHwgKGN1ciA9PSAnQycpIHx8IChjdXIgPT0gJ2QnKSB8fCAoY3VyID09ICdEJykgfHwKKwkoY3VyID09ICd3JykgfHwgKGN1ciA9PSAnVycpKSB7CisJeG1sUmVnQXRvbVR5cGUgdHlwZSA9IFhNTF9SRUdFWFBfQU5ZU1BBQ0U7CisKKwlzd2l0Y2ggKGN1cikgeworCSAgICBjYXNlICdzJzogCisJCXR5cGUgPSBYTUxfUkVHRVhQX0FOWVNQQUNFOworCQlicmVhazsKKwkgICAgY2FzZSAnUyc6IAorCQl0eXBlID0gWE1MX1JFR0VYUF9OT1RTUEFDRTsKKwkJYnJlYWs7CisJICAgIGNhc2UgJ2knOiAKKwkJdHlwZSA9IFhNTF9SRUdFWFBfSU5JVE5BTUU7CisJCWJyZWFrOworCSAgICBjYXNlICdJJzogCisJCXR5cGUgPSBYTUxfUkVHRVhQX05PVElOSVROQU1FOworCQlicmVhazsKKwkgICAgY2FzZSAnYyc6IAorCQl0eXBlID0gWE1MX1JFR0VYUF9OQU1FQ0hBUjsKKwkJYnJlYWs7CisJICAgIGNhc2UgJ0MnOiAKKwkJdHlwZSA9IFhNTF9SRUdFWFBfTk9UTkFNRUNIQVI7CisJCWJyZWFrOworCSAgICBjYXNlICdkJzogCisJCXR5cGUgPSBYTUxfUkVHRVhQX0RFQ0lNQUw7CisJCWJyZWFrOworCSAgICBjYXNlICdEJzogCisJCXR5cGUgPSBYTUxfUkVHRVhQX05PVERFQ0lNQUw7CisJCWJyZWFrOworCSAgICBjYXNlICd3JzogCisJCXR5cGUgPSBYTUxfUkVHRVhQX1JFQUxDSEFSOworCQlicmVhazsKKwkgICAgY2FzZSAnVyc6IAorCQl0eXBlID0gWE1MX1JFR0VYUF9OT1RSRUFMQ0hBUjsKKwkJYnJlYWs7CisJfQorCU5FWFQ7CisJaWYgKGN0eHQtPmF0b20gPT0gTlVMTCkgeworCSAgICBjdHh0LT5hdG9tID0geG1sUmVnTmV3QXRvbShjdHh0LCB0eXBlKTsKKwl9IGVsc2UgaWYgKGN0eHQtPmF0b20tPnR5cGUgPT0gWE1MX1JFR0VYUF9SQU5HRVMpIHsKKwkgICAgeG1sUmVnQXRvbUFkZFJhbmdlKGN0eHQsIGN0eHQtPmF0b20sIGN0eHQtPm5lZywKKwkJCSAgICAgICB0eXBlLCAwLCAwLCBOVUxMKTsKKwl9CisgICAgfSBlbHNlIHsKKwlFUlJPUigiV3JvbmcgZXNjYXBlIHNlcXVlbmNlLCBtaXN1c2Ugb2YgY2hhcmFjdGVyICdcXCciKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sRkFQYXJzZUNoYXJSYW5nZToKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBbMTddICAgY2hhclJhbmdlICAgOjo9ICAgICBzZVJhbmdlIHwgWG1sQ2hhclJlZiB8IFhtbENoYXJJbmNEYXNoIAorICogWzE4XSAgIHNlUmFuZ2UgICA6Oj0gICBjaGFyT3JFc2MgJy0nIGNoYXJPckVzYworICogWzIwXSAgIGNoYXJPckVzYyAgIDo6PSAgIFhtbENoYXIgfCBTaW5nbGVDaGFyRXNjCisgKiBbMjFdICAgWG1sQ2hhciAgIDo6PSAgIFteXCN4MkQjeDVCI3g1RF0KKyAqIFsyMl0gICBYbWxDaGFySW5jRGFzaCAgIDo6PSAgIFteXCN4NUIjeDVEXQorICovCitzdGF0aWMgdm9pZAoreG1sRkFQYXJzZUNoYXJSYW5nZSh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgY3VyLCBsZW47CisgICAgaW50IHN0YXJ0ID0gLTE7CisgICAgaW50IGVuZCA9IC0xOworCisgICAgaWYgKENVUiA9PSAnXDAnKSB7CisgICAgICAgIEVSUk9SKCJFeHBlY3RpbmcgJ10nIik7CisJcmV0dXJuOworICAgIH0KKworICAgIGN1ciA9IENVUjsKKyAgICBpZiAoY3VyID09ICdcXCcpIHsKKwlORVhUOworCWN1ciA9IENVUjsKKwlzd2l0Y2ggKGN1cikgeworCSAgICBjYXNlICduJzogc3RhcnQgPSAweEE7IGJyZWFrOworCSAgICBjYXNlICdyJzogc3RhcnQgPSAweEQ7IGJyZWFrOworCSAgICBjYXNlICd0Jzogc3RhcnQgPSAweDk7IGJyZWFrOworCSAgICBjYXNlICdcXCc6IGNhc2UgJ3wnOiBjYXNlICcuJzogY2FzZSAnLSc6IGNhc2UgJ14nOiBjYXNlICc/JzoKKwkgICAgY2FzZSAnKic6IGNhc2UgJysnOiBjYXNlICd7JzogY2FzZSAnfSc6IGNhc2UgJygnOiBjYXNlICcpJzoKKwkgICAgY2FzZSAnWyc6IGNhc2UgJ10nOgorCQlzdGFydCA9IGN1cjsgYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCUVSUk9SKCJJbnZhbGlkIGVzY2FwZSB2YWx1ZSIpOworCQlyZXR1cm47CisJfQorCWVuZCA9IHN0YXJ0OworICAgICAgICBsZW4gPSAxOworICAgIH0gZWxzZSBpZiAoKGN1ciAhPSAweDVCKSAmJiAoY3VyICE9IDB4NUQpKSB7CisgICAgICAgIGVuZCA9IHN0YXJ0ID0gQ1VSX1NDSEFSKGN0eHQtPmN1ciwgbGVuKTsKKyAgICB9IGVsc2UgeworCUVSUk9SKCJFeHBlY3RpbmcgYSBjaGFyIHJhbmdlIik7CisJcmV0dXJuOworICAgIH0KKyAgICAvKgorICAgICAqIFNpbmNlIHdlIGFyZSAiaW5zaWRlIiBhIHJhbmdlLCB3ZSBjYW4gYXNzdW1lIGN0eHQtPmN1ciBpcyBwYXN0CisgICAgICogdGhlIHN0YXJ0IG9mIGN0eHQtPnN0cmluZywgYW5kIFBSRVYgc2hvdWxkIGJlIHNhZmUKKyAgICAgKi8KKyAgICBpZiAoKHN0YXJ0ID09ICctJykgJiYgKE5YVCgxKSAhPSAnXScpICYmIChQUkVWICE9ICdbJykgJiYgKFBSRVYgIT0gJ14nKSkgeworCU5FWFRMKGxlbik7CisJcmV0dXJuOworICAgIH0KKyAgICBORVhUTChsZW4pOworICAgIGN1ciA9IENVUjsKKyAgICBpZiAoKGN1ciAhPSAnLScpIHx8IChOWFQoMSkgPT0gJ10nKSkgeworICAgICAgICB4bWxSZWdBdG9tQWRkUmFuZ2UoY3R4dCwgY3R4dC0+YXRvbSwgY3R4dC0+bmVnLAorCQkgICAgICAgICAgICAgIFhNTF9SRUdFWFBfQ0hBUlZBTCwgc3RhcnQsIGVuZCwgTlVMTCk7CisJcmV0dXJuOworICAgIH0KKyAgICBORVhUOworICAgIGN1ciA9IENVUjsKKyAgICBpZiAoY3VyID09ICdcXCcpIHsKKwlORVhUOworCWN1ciA9IENVUjsKKwlzd2l0Y2ggKGN1cikgeworCSAgICBjYXNlICduJzogZW5kID0gMHhBOyBicmVhazsKKwkgICAgY2FzZSAncic6IGVuZCA9IDB4RDsgYnJlYWs7CisJICAgIGNhc2UgJ3QnOiBlbmQgPSAweDk7IGJyZWFrOworCSAgICBjYXNlICdcXCc6IGNhc2UgJ3wnOiBjYXNlICcuJzogY2FzZSAnLSc6IGNhc2UgJ14nOiBjYXNlICc/JzoKKwkgICAgY2FzZSAnKic6IGNhc2UgJysnOiBjYXNlICd7JzogY2FzZSAnfSc6IGNhc2UgJygnOiBjYXNlICcpJzoKKwkgICAgY2FzZSAnWyc6IGNhc2UgJ10nOgorCQllbmQgPSBjdXI7IGJyZWFrOworCSAgICBkZWZhdWx0OgorCQlFUlJPUigiSW52YWxpZCBlc2NhcGUgdmFsdWUiKTsKKwkJcmV0dXJuOworCX0KKyAgICAgICAgbGVuID0gMTsKKyAgICB9IGVsc2UgaWYgKChjdXIgIT0gMHg1QikgJiYgKGN1ciAhPSAweDVEKSkgeworICAgICAgICBlbmQgPSBDVVJfU0NIQVIoY3R4dC0+Y3VyLCBsZW4pOworICAgIH0gZWxzZSB7CisJRVJST1IoIkV4cGVjdGluZyB0aGUgZW5kIG9mIGEgY2hhciByYW5nZSIpOworCXJldHVybjsKKyAgICB9CisgICAgTkVYVEwobGVuKTsKKyAgICAvKiBUT0RPIGNoZWNrIHRoYXQgdGhlIHZhbHVlcyBhcmUgYWNjZXB0YWJsZSBjaGFyYWN0ZXIgcmFuZ2VzIGZvciBYTUwgKi8KKyAgICBpZiAoZW5kIDwgc3RhcnQpIHsKKwlFUlJPUigiRW5kIG9mIHJhbmdlIGlzIGJlZm9yZSBzdGFydCBvZiByYW5nZSIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbFJlZ0F0b21BZGRSYW5nZShjdHh0LCBjdHh0LT5hdG9tLCBjdHh0LT5uZWcsCisJCSAgICAgICAgICAgWE1MX1JFR0VYUF9DSEFSVkFMLCBzdGFydCwgZW5kLCBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCisvKioKKyAqIHhtbEZBUGFyc2VQb3NDaGFyR3JvdXA6CisgKiBAY3R4dDogIGEgcmVnZXhwIHBhcnNlciBjb250ZXh0CisgKgorICogWzE0XSAgIHBvc0NoYXJHcm91cCA6Oj0gKCBjaGFyUmFuZ2UgfCBjaGFyQ2xhc3NFc2MgICkrCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGQVBhcnNlUG9zQ2hhckdyb3VwKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGRvIHsKKwlpZiAoQ1VSID09ICdcXCcpIHsKKwkgICAgeG1sRkFQYXJzZUNoYXJDbGFzc0VzYyhjdHh0KTsKKwl9IGVsc2UgeworCSAgICB4bWxGQVBhcnNlQ2hhclJhbmdlKGN0eHQpOworCX0KKyAgICB9IHdoaWxlICgoQ1VSICE9ICddJykgJiYgKENVUiAhPSAnXicpICYmIChDVVIgIT0gJy0nKSAmJgorICAgICAgICAgICAgIChDVVIgIT0gMCkgJiYgKGN0eHQtPmVycm9yID09IDApKTsKK30KKworLyoqCisgKiB4bWxGQVBhcnNlQ2hhckdyb3VwOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICoKKyAqIFsxM10gICBjaGFyR3JvdXAgICAgOjo9IHBvc0NoYXJHcm91cCB8IG5lZ0NoYXJHcm91cCB8IGNoYXJDbGFzc1N1YgorICogWzE1XSAgIG5lZ0NoYXJHcm91cCA6Oj0gJ14nIHBvc0NoYXJHcm91cAorICogWzE2XSAgIGNoYXJDbGFzc1N1YiA6Oj0gKCBwb3NDaGFyR3JvdXAgfCBuZWdDaGFyR3JvdXAgKSAnLScgY2hhckNsYXNzRXhwciAgCisgKiBbMTJdICAgY2hhckNsYXNzRXhwciA6Oj0gJ1snIGNoYXJHcm91cCAnXScKKyAqLworc3RhdGljIHZvaWQKK3htbEZBUGFyc2VDaGFyR3JvdXAoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaW50IG4gPSBjdHh0LT5uZWc7CisgICAgd2hpbGUgKChDVVIgIT0gJ10nKSAmJiAoY3R4dC0+ZXJyb3IgPT0gMCkpIHsKKwlpZiAoQ1VSID09ICdeJykgeworCSAgICBpbnQgbmVnID0gY3R4dC0+bmVnOworCisJICAgIE5FWFQ7CisJICAgIGN0eHQtPm5lZyA9ICFjdHh0LT5uZWc7CisJICAgIHhtbEZBUGFyc2VQb3NDaGFyR3JvdXAoY3R4dCk7CisJICAgIGN0eHQtPm5lZyA9IG5lZzsKKwl9IGVsc2UgaWYgKChDVVIgPT0gJy0nKSAmJiAoTlhUKDEpID09ICdbJykpIHsKKwkgICAgaW50IG5lZyA9IGN0eHQtPm5lZzsKKwkgICAgY3R4dC0+bmVnID0gMjsKKwkgICAgTkVYVDsJLyogZWF0IHRoZSAnLScgKi8KKwkgICAgTkVYVDsJLyogZWF0IHRoZSAnWycgKi8KKwkgICAgeG1sRkFQYXJzZUNoYXJHcm91cChjdHh0KTsKKwkgICAgaWYgKENVUiA9PSAnXScpIHsKKwkJTkVYVDsKKwkgICAgfSBlbHNlIHsKKwkJRVJST1IoImNoYXJDbGFzc0V4cHI6ICddJyBleHBlY3RlZCIpOworCQlicmVhazsKKwkgICAgfQorCSAgICBjdHh0LT5uZWcgPSBuZWc7CisJICAgIGJyZWFrOworCX0gZWxzZSBpZiAoQ1VSICE9ICddJykgeworCSAgICB4bWxGQVBhcnNlUG9zQ2hhckdyb3VwKGN0eHQpOworCX0KKyAgICB9CisgICAgY3R4dC0+bmVnID0gbjsKK30KKworLyoqCisgKiB4bWxGQVBhcnNlQ2hhckNsYXNzOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICoKKyAqIFsxMV0gICBjaGFyQ2xhc3MgICA6Oj0gICAgIGNoYXJDbGFzc0VzYyB8IGNoYXJDbGFzc0V4cHIKKyAqIFsxMl0gICBjaGFyQ2xhc3NFeHByICAgOjo9ICAgJ1snIGNoYXJHcm91cCAnXScKKyAqLworc3RhdGljIHZvaWQKK3htbEZBUGFyc2VDaGFyQ2xhc3MoeG1sUmVnUGFyc2VyQ3R4dFB0ciBjdHh0KSB7CisgICAgaWYgKENVUiA9PSAnWycpIHsKKwlORVhUOworCWN0eHQtPmF0b20gPSB4bWxSZWdOZXdBdG9tKGN0eHQsIFhNTF9SRUdFWFBfUkFOR0VTKTsKKwlpZiAoY3R4dC0+YXRvbSA9PSBOVUxMKQorCSAgICByZXR1cm47CisJeG1sRkFQYXJzZUNoYXJHcm91cChjdHh0KTsKKwlpZiAoQ1VSID09ICddJykgeworCSAgICBORVhUOworCX0gZWxzZSB7CisJICAgIEVSUk9SKCJ4bWxGQVBhcnNlQ2hhckNsYXNzOiAnXScgZXhwZWN0ZWQiKTsKKwl9CisgICAgfSBlbHNlIHsKKwl4bWxGQVBhcnNlQ2hhckNsYXNzRXNjKGN0eHQpOworICAgIH0KK30KKworLyoqCisgKiB4bWxGQVBhcnNlUXVhbnRFeGFjdDoKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBbOF0gICBRdWFudEV4YWN0ICAgOjo9ICAgWzAtOV0rCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3Mgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxGQVBhcnNlUXVhbnRFeGFjdCh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgb2sgPSAwOworCisgICAgd2hpbGUgKChDVVIgPj0gJzAnKSAmJiAoQ1VSIDw9ICc5JykpIHsKKwlyZXQgPSByZXQgKiAxMCArIChDVVIgLSAnMCcpOworCW9rID0gMTsKKwlORVhUOworICAgIH0KKyAgICBpZiAob2sgIT0gMSkgeworCXJldHVybigtMSk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbEZBUGFyc2VRdWFudGlmaWVyOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICoKKyAqIFs0XSAgIHF1YW50aWZpZXIgICA6Oj0gICBbPyorXSB8ICggJ3snIHF1YW50aXR5ICd9JyApCisgKiBbNV0gICBxdWFudGl0eSAgIDo6PSAgIHF1YW50UmFuZ2UgfCBxdWFudE1pbiB8IFF1YW50RXhhY3QKKyAqIFs2XSAgIHF1YW50UmFuZ2UgICA6Oj0gICBRdWFudEV4YWN0ICcsJyBRdWFudEV4YWN0CisgKiBbN10gICBxdWFudE1pbiAgIDo6PSAgIFF1YW50RXhhY3QgJywnCisgKiBbOF0gICBRdWFudEV4YWN0ICAgOjo9ICAgWzAtOV0rCisgKi8KK3N0YXRpYyBpbnQKK3htbEZBUGFyc2VRdWFudGlmaWVyKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCBjdXI7CisKKyAgICBjdXIgPSBDVVI7CisgICAgaWYgKChjdXIgPT0gJz8nKSB8fCAoY3VyID09ICcqJykgfHwgKGN1ciA9PSAnKycpKSB7CisJaWYgKGN0eHQtPmF0b20gIT0gTlVMTCkgeworCSAgICBpZiAoY3VyID09ICc/JykKKwkJY3R4dC0+YXRvbS0+cXVhbnQgPSBYTUxfUkVHRVhQX1FVQU5UX09QVDsKKwkgICAgZWxzZSBpZiAoY3VyID09ICcqJykKKwkJY3R4dC0+YXRvbS0+cXVhbnQgPSBYTUxfUkVHRVhQX1FVQU5UX01VTFQ7CisJICAgIGVsc2UgaWYgKGN1ciA9PSAnKycpCisJCWN0eHQtPmF0b20tPnF1YW50ID0gWE1MX1JFR0VYUF9RVUFOVF9QTFVTOworCX0KKwlORVhUOworCXJldHVybigxKTsKKyAgICB9CisgICAgaWYgKGN1ciA9PSAneycpIHsKKwlpbnQgbWluID0gMCwgbWF4ID0gMDsKKworCU5FWFQ7CisJY3VyID0geG1sRkFQYXJzZVF1YW50RXhhY3QoY3R4dCk7CisJaWYgKGN1ciA+PSAwKQorCSAgICBtaW4gPSBjdXI7CisJaWYgKENVUiA9PSAnLCcpIHsKKwkgICAgTkVYVDsKKwkgICAgaWYgKENVUiA9PSAnfScpCisJICAgICAgICBtYXggPSBJTlRfTUFYOworCSAgICBlbHNlIHsKKwkgICAgICAgIGN1ciA9IHhtbEZBUGFyc2VRdWFudEV4YWN0KGN0eHQpOworCSAgICAgICAgaWYgKGN1ciA+PSAwKQorCQkgICAgbWF4ID0gY3VyOworCQllbHNlIHsKKwkJICAgIEVSUk9SKCJJbXByb3BlciBxdWFudGlmaWVyIik7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoQ1VSID09ICd9JykgeworCSAgICBORVhUOworCX0gZWxzZSB7CisJICAgIEVSUk9SKCJVbnRlcm1pbmF0ZWQgcXVhbnRpZmllciIpOworCX0KKwlpZiAobWF4ID09IDApCisJICAgIG1heCA9IG1pbjsKKwlpZiAoY3R4dC0+YXRvbSAhPSBOVUxMKSB7CisJICAgIGN0eHQtPmF0b20tPnF1YW50ID0gWE1MX1JFR0VYUF9RVUFOVF9SQU5HRTsKKwkgICAgY3R4dC0+YXRvbS0+bWluID0gbWluOworCSAgICBjdHh0LT5hdG9tLT5tYXggPSBtYXg7CisJfQorCXJldHVybigxKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbEZBUGFyc2VBdG9tOgorICogQGN0eHQ6ICBhIHJlZ2V4cCBwYXJzZXIgY29udGV4dAorICoKKyAqIFs5XSAgIGF0b20gICA6Oj0gICBDaGFyIHwgY2hhckNsYXNzIHwgKCAnKCcgcmVnRXhwICcpJyApCisgKi8KK3N0YXRpYyBpbnQKK3htbEZBUGFyc2VBdG9tKHhtbFJlZ1BhcnNlckN0eHRQdHIgY3R4dCkgeworICAgIGludCBjb2RlcG9pbnQsIGxlbjsKKworICAgIGNvZGVwb2ludCA9IHhtbEZBSXNDaGFyKGN0eHQpOworICAgIGlmIChjb2RlcG9pbnQgPiAwKSB7CisJY3R4dC0+YXRvbSA9IHhtbFJlZ05ld0F0b20oY3R4dCwgWE1MX1JFR0VYUF9DSEFSVkFMKTsKKwlpZiAoY3R4dC0+YXRvbSA9PSBOVUxMKQorCSAgICByZXR1cm4oLTEpOworCWNvZGVwb2ludCA9IENVUl9TQ0hBUihjdHh0LT5jdXIsIGxlbik7CisJY3R4dC0+YXRvbS0+Y29kZXBvaW50ID0gY29kZXBvaW50OworCU5FWFRMKGxlbik7CisJcmV0dXJuKDEpOworICAgIH0gZWxzZSBpZiAoQ1VSID09ICd8JykgeworCXJldHVybigwKTsKKyAgICB9IGVsc2UgaWYgKENVUiA9PSAwKSB7CisJcmV0dXJuKDApOworICAgIH0gZWxzZSBpZiAoQ1VSID09ICcpJykgeworCXJldHVybigwKTsKKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnKCcpIHsKKwl4bWxSZWdTdGF0ZVB0ciBzdGFydCwgb2xkZW5kLCBzdGFydDA7CisKKwlORVhUOworCS8qCisJICogdGhpcyBleHRyYSBFcHNpbG9uIHRyYW5zaXRpb24gaXMgbmVlZGVkIGlmIHdlIGNvdW50IHdpdGggMCBhbGxvd2VkCisJICogdW5mb3J0dW5hdGVseSB0aGlzIGNhbid0IGJlIGtub3duIGF0IHRoYXQgcG9pbnQKKwkgKi8KKwl4bWxGQUdlbmVyYXRlRXBzaWxvblRyYW5zaXRpb24oY3R4dCwgY3R4dC0+c3RhdGUsIE5VTEwpOworCXN0YXJ0MCA9IGN0eHQtPnN0YXRlOworCXhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihjdHh0LCBjdHh0LT5zdGF0ZSwgTlVMTCk7CisJc3RhcnQgPSBjdHh0LT5zdGF0ZTsKKwlvbGRlbmQgPSBjdHh0LT5lbmQ7CisJY3R4dC0+ZW5kID0gTlVMTDsKKwljdHh0LT5hdG9tID0gTlVMTDsKKwl4bWxGQVBhcnNlUmVnRXhwKGN0eHQsIDApOworCWlmIChDVVIgPT0gJyknKSB7CisJICAgIE5FWFQ7CisJfSBlbHNlIHsKKwkgICAgRVJST1IoInhtbEZBUGFyc2VBdG9tOiBleHBlY3RpbmcgJyknIik7CisJfQorCWN0eHQtPmF0b20gPSB4bWxSZWdOZXdBdG9tKGN0eHQsIFhNTF9SRUdFWFBfU1VCUkVHKTsKKwlpZiAoY3R4dC0+YXRvbSA9PSBOVUxMKQorCSAgICByZXR1cm4oLTEpOworCWN0eHQtPmF0b20tPnN0YXJ0ID0gc3RhcnQ7CisJY3R4dC0+YXRvbS0+c3RhcnQwID0gc3RhcnQwOworCWN0eHQtPmF0b20tPnN0b3AgPSBjdHh0LT5zdGF0ZTsKKwljdHh0LT5lbmQgPSBvbGRlbmQ7CisJcmV0dXJuKDEpOworICAgIH0gZWxzZSBpZiAoKENVUiA9PSAnWycpIHx8IChDVVIgPT0gJ1xcJykgfHwgKENVUiA9PSAnLicpKSB7CisJeG1sRkFQYXJzZUNoYXJDbGFzcyhjdHh0KTsKKwlyZXR1cm4oMSk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxGQVBhcnNlUGllY2U6CisgKiBAY3R4dDogIGEgcmVnZXhwIHBhcnNlciBjb250ZXh0CisgKgorICogWzNdICAgcGllY2UgICA6Oj0gICBhdG9tIHF1YW50aWZpZXI/CisgKi8KK3N0YXRpYyBpbnQKK3htbEZBUGFyc2VQaWVjZSh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgcmV0OworCisgICAgY3R4dC0+YXRvbSA9IE5VTEw7CisgICAgcmV0ID0geG1sRkFQYXJzZUF0b20oY3R4dCk7CisgICAgaWYgKHJldCA9PSAwKQorCXJldHVybigwKTsKKyAgICBpZiAoY3R4dC0+YXRvbSA9PSBOVUxMKSB7CisJRVJST1IoImludGVybmFsOiBubyBhdG9tIGdlbmVyYXRlZCIpOworICAgIH0KKyAgICB4bWxGQVBhcnNlUXVhbnRpZmllcihjdHh0KTsKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sRkFQYXJzZUJyYW5jaDoKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqIEB0bzogb3B0aW9uYWwgdGFyZ2V0IHRvIHRoZSBlbmQgb2YgdGhlIGJyYW5jaAorICoKKyAqIEB0byBpcyB1c2VkIHRvIG9wdGltaXplIGJ5IHJlbW92aW5nIGR1cGxpY2F0ZSBwYXRoIGluIGF1dG9tYXRhCisgKiBpbiBleHByZXNzaW9ucyBsaWtlIChhfGIpKGN8ZCkKKyAqCisgKiBbMl0gICBicmFuY2ggICA6Oj0gICBwaWVjZSoKKyAqLworc3RhdGljIGludAoreG1sRkFQYXJzZUJyYW5jaCh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFJlZ1N0YXRlUHRyIHRvKSB7CisgICAgeG1sUmVnU3RhdGVQdHIgcHJldmlvdXM7CisgICAgaW50IHJldDsKKworICAgIHByZXZpb3VzID0gY3R4dC0+c3RhdGU7CisgICAgcmV0ID0geG1sRkFQYXJzZVBpZWNlKGN0eHQpOworICAgIGlmIChyZXQgIT0gMCkgeworCWlmICh4bWxGQUdlbmVyYXRlVHJhbnNpdGlvbnMoY3R4dCwgcHJldmlvdXMsIAorCSAgICAgICAgKENVUj09J3wnIHx8IENVUj09JyknKSA/IHRvIDogTlVMTCwgY3R4dC0+YXRvbSkgPCAwKQorCSAgICByZXR1cm4oLTEpOworCXByZXZpb3VzID0gY3R4dC0+c3RhdGU7CisJY3R4dC0+YXRvbSA9IE5VTEw7CisgICAgfQorICAgIHdoaWxlICgocmV0ICE9IDApICYmIChjdHh0LT5lcnJvciA9PSAwKSkgeworCXJldCA9IHhtbEZBUGFyc2VQaWVjZShjdHh0KTsKKwlpZiAocmV0ICE9IDApIHsKKwkgICAgaWYgKHhtbEZBR2VuZXJhdGVUcmFuc2l0aW9ucyhjdHh0LCBwcmV2aW91cywgCisJICAgICAgICAgICAgKENVUj09J3wnIHx8IENVUj09JyknKSA/IHRvIDogTlVMTCwgY3R4dC0+YXRvbSkgPCAwKQorCQkgICAgcmV0dXJuKC0xKTsKKwkgICAgcHJldmlvdXMgPSBjdHh0LT5zdGF0ZTsKKwkgICAgY3R4dC0+YXRvbSA9IE5VTEw7CisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sRkFQYXJzZVJlZ0V4cDoKKyAqIEBjdHh0OiAgYSByZWdleHAgcGFyc2VyIGNvbnRleHQKKyAqIEB0b3A6ICBpcyB0aGlzIHRoZSB0b3AtbGV2ZWwgZXhwcmVzc2lvbiA/CisgKgorICogWzFdICAgcmVnRXhwICAgOjo9ICAgICBicmFuY2ggICggJ3wnIGJyYW5jaCApKgorICovCitzdGF0aWMgdm9pZAoreG1sRkFQYXJzZVJlZ0V4cCh4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQsIGludCB0b3ApIHsKKyAgICB4bWxSZWdTdGF0ZVB0ciBzdGFydCwgZW5kOworCisgICAgLyogaWYgbm90IHRvcCBzdGFydCBzaG91bGQgaGF2ZSBiZWVuIGdlbmVyYXRlZCBieSBhbiBlcHNpbG9uIHRyYW5zICovCisgICAgc3RhcnQgPSBjdHh0LT5zdGF0ZTsKKyAgICBjdHh0LT5lbmQgPSBOVUxMOworICAgIHhtbEZBUGFyc2VCcmFuY2goY3R4dCwgTlVMTCk7CisgICAgaWYgKHRvcCkgeworI2lmZGVmIERFQlVHX1JFR0VYUF9HUkFQSAorCXByaW50ZigiU3RhdGUgJWQgaXMgZmluYWxcbiIsIGN0eHQtPnN0YXRlLT5ubyk7CisjZW5kaWYKKwljdHh0LT5zdGF0ZS0+dHlwZSA9IFhNTF9SRUdFWFBfRklOQUxfU1RBVEU7CisgICAgfQorICAgIGlmIChDVVIgIT0gJ3wnKSB7CisJY3R4dC0+ZW5kID0gY3R4dC0+c3RhdGU7CisJcmV0dXJuOworICAgIH0KKyAgICBlbmQgPSBjdHh0LT5zdGF0ZTsKKyAgICB3aGlsZSAoKENVUiA9PSAnfCcpICYmIChjdHh0LT5lcnJvciA9PSAwKSkgeworCU5FWFQ7CisJY3R4dC0+c3RhdGUgPSBzdGFydDsKKwljdHh0LT5lbmQgPSBOVUxMOworCXhtbEZBUGFyc2VCcmFuY2goY3R4dCwgZW5kKTsKKyAgICB9CisgICAgaWYgKCF0b3ApIHsKKwljdHh0LT5zdGF0ZSA9IGVuZDsKKwljdHh0LT5lbmQgPSBlbmQ7CisgICAgfQorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlUaGUgYmFzaWMgQVBJCQkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFJlZ2V4cFByaW50OgorICogQG91dHB1dDogdGhlIGZpbGUgZm9yIHRoZSBvdXRwdXQgZGVidWcKKyAqIEByZWdleHA6IHRoZSBjb21waWxlZCByZWdleHAKKyAqCisgKiBQcmludCB0aGUgY29udGVudCBvZiB0aGUgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9uCisgKi8KK3ZvaWQKK3htbFJlZ2V4cFByaW50KEZJTEUgKm91dHB1dCwgeG1sUmVnZXhwUHRyIHJlZ2V4cCkgeworICAgIGludCBpOworCisgICAgaWYgKG91dHB1dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgZnByaW50ZihvdXRwdXQsICIgcmVnZXhwOiAiKTsKKyAgICBpZiAocmVnZXhwID09IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgIk5VTExcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgZnByaW50ZihvdXRwdXQsICInJXMnICIsIHJlZ2V4cC0+c3RyaW5nKTsKKyAgICBmcHJpbnRmKG91dHB1dCwgIlxuIik7CisgICAgZnByaW50ZihvdXRwdXQsICIlZCBhdG9tczpcbiIsIHJlZ2V4cC0+bmJBdG9tcyk7CisgICAgZm9yIChpID0gMDtpIDwgcmVnZXhwLT5uYkF0b21zOyBpKyspIHsKKwlmcHJpbnRmKG91dHB1dCwgIiAlMDJkICIsIGkpOworCXhtbFJlZ1ByaW50QXRvbShvdXRwdXQsIHJlZ2V4cC0+YXRvbXNbaV0pOworICAgIH0KKyAgICBmcHJpbnRmKG91dHB1dCwgIiVkIHN0YXRlczoiLCByZWdleHAtPm5iU3RhdGVzKTsKKyAgICBmcHJpbnRmKG91dHB1dCwgIlxuIik7CisgICAgZm9yIChpID0gMDtpIDwgcmVnZXhwLT5uYlN0YXRlczsgaSsrKSB7CisJeG1sUmVnUHJpbnRTdGF0ZShvdXRwdXQsIHJlZ2V4cC0+c3RhdGVzW2ldKTsKKyAgICB9CisgICAgZnByaW50ZihvdXRwdXQsICIlZCBjb3VudGVyczpcbiIsIHJlZ2V4cC0+bmJDb3VudGVycyk7CisgICAgZm9yIChpID0gMDtpIDwgcmVnZXhwLT5uYkNvdW50ZXJzOyBpKyspIHsKKwlmcHJpbnRmKG91dHB1dCwgIiAlZDogbWluICVkIG1heCAlZFxuIiwgaSwgcmVnZXhwLT5jb3VudGVyc1tpXS5taW4sCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnZXhwLT5jb3VudGVyc1tpXS5tYXgpOworICAgIH0KK30KKworLyoqCisgKiB4bWxSZWdleHBDb21waWxlOgorICogQHJlZ2V4cDogIGEgcmVndWxhciBleHByZXNzaW9uIHN0cmluZworICoKKyAqIFBhcnNlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb25mb3JtaW5nIHRvIFhNTCBTY2hlbWFzIFBhcnQgMiBEYXRhdHlwZQorICogQXBwZW5kaXggRiBhbmQgYnVpbGRzIGFuIGF1dG9tYXRhIHN1aXRhYmxlIGZvciB0ZXN0aW5nIHN0cmluZ3MgYWdhaW5zdAorICogdGhhdCByZWd1bGFyIGV4cHJlc3Npb24KKyAqCisgKiBSZXR1cm5zIHRoZSBjb21waWxlZCBleHByZXNzaW9uIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxSZWdleHBQdHIKK3htbFJlZ2V4cENvbXBpbGUoY29uc3QgeG1sQ2hhciAqcmVnZXhwKSB7CisgICAgeG1sUmVnZXhwUHRyIHJldDsKKyAgICB4bWxSZWdQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKyAgICBjdHh0ID0geG1sUmVnTmV3UGFyc2VyQ3R4dChyZWdleHApOworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgLyogaW5pdGlhbGl6ZSB0aGUgcGFyc2VyICovCisgICAgY3R4dC0+ZW5kID0gTlVMTDsKKyAgICBjdHh0LT5zdGFydCA9IGN0eHQtPnN0YXRlID0geG1sUmVnTmV3U3RhdGUoY3R4dCk7CisgICAgeG1sUmVnU3RhdGVQdXNoKGN0eHQsIGN0eHQtPnN0YXJ0KTsKKworICAgIC8qIHBhcnNlIHRoZSBleHByZXNzaW9uIGJ1aWxkaW5nIGFuIGF1dG9tYXRhICovCisgICAgeG1sRkFQYXJzZVJlZ0V4cChjdHh0LCAxKTsKKyAgICBpZiAoQ1VSICE9IDApIHsKKwlFUlJPUigieG1sRkFQYXJzZVJlZ0V4cDogZXh0cmEgY2hhcmFjdGVycyIpOworICAgIH0KKyAgICBpZiAoY3R4dC0+ZXJyb3IgIT0gMCkgeworCXhtbFJlZ0ZyZWVQYXJzZXJDdHh0KGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgY3R4dC0+ZW5kID0gY3R4dC0+c3RhdGU7CisgICAgY3R4dC0+c3RhcnQtPnR5cGUgPSBYTUxfUkVHRVhQX1NUQVJUX1NUQVRFOworICAgIGN0eHQtPmVuZC0+dHlwZSA9IFhNTF9SRUdFWFBfRklOQUxfU1RBVEU7CisKKyAgICAvKiByZW1vdmUgdGhlIEVwc2lsb24gZXhjZXB0IGZvciBjb3VudGVkIHRyYW5zaXRpb25zICovCisgICAgeG1sRkFFbGltaW5hdGVFcHNpbG9uVHJhbnNpdGlvbnMoY3R4dCk7CisKKworICAgIGlmIChjdHh0LT5lcnJvciAhPSAwKSB7CisJeG1sUmVnRnJlZVBhcnNlckN0eHQoY3R4dCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXQgPSB4bWxSZWdFcHhGcm9tUGFyc2UoY3R4dCk7CisgICAgeG1sUmVnRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sUmVnZXhwRXhlYzoKKyAqIEBjb21wOiAgdGhlIGNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbgorICogQGNvbnRlbnQ6ICB0aGUgdmFsdWUgdG8gY2hlY2sgYWdhaW5zdCB0aGUgcmVndWxhciBleHByZXNzaW9uCisgKgorICogQ2hlY2sgaWYgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBnZW5lcmF0ZXMgdGhlIHZhbHVlCisgKgorICogUmV0dXJucyAxIGlmIGl0IG1hdGNoZXMsIDAgaWYgbm90IGFuZCBhIG5lZ2F0aXZlIHZhbHVlIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxSZWdleHBFeGVjKHhtbFJlZ2V4cFB0ciBjb21wLCBjb25zdCB4bWxDaGFyICpjb250ZW50KSB7CisgICAgaWYgKChjb21wID09IE5VTEwpIHx8IChjb250ZW50ID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgcmV0dXJuKHhtbEZBUmVnRXhlYyhjb21wLCBjb250ZW50KSk7Cit9CisKKy8qKgorICogeG1sUmVnZXhwSXNEZXRlcm1pbmlzdDoKKyAqIEBjb21wOiAgdGhlIGNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbgorICoKKyAqIENoZWNrIGlmIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaXMgZGV0ZXJtaW5pc3QKKyAqCisgKiBSZXR1cm5zIDEgaWYgaXQgeWVzLCAwIGlmIG5vdCBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sUmVnZXhwSXNEZXRlcm1pbmlzdCh4bWxSZWdleHBQdHIgY29tcCkgeworICAgIHhtbEF1dG9tYXRhUHRyIGFtOworICAgIGludCByZXQ7CisKKyAgICBpZiAoY29tcCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKGNvbXAtPmRldGVybWluaXN0ICE9IC0xKQorCXJldHVybihjb21wLT5kZXRlcm1pbmlzdCk7CisKKyAgICBhbSA9IHhtbE5ld0F1dG9tYXRhKCk7CisgICAgaWYgKGFtLT5zdGF0ZXMgIT0gTlVMTCkgeworCWludCBpOworCisJZm9yIChpID0gMDtpIDwgYW0tPm5iU3RhdGVzO2krKykKKwkgICAgeG1sUmVnRnJlZVN0YXRlKGFtLT5zdGF0ZXNbaV0pOworCXhtbEZyZWUoYW0tPnN0YXRlcyk7CisgICAgfQorICAgIGFtLT5uYkF0b21zID0gY29tcC0+bmJBdG9tczsKKyAgICBhbS0+YXRvbXMgPSBjb21wLT5hdG9tczsKKyAgICBhbS0+bmJTdGF0ZXMgPSBjb21wLT5uYlN0YXRlczsKKyAgICBhbS0+c3RhdGVzID0gY29tcC0+c3RhdGVzOworICAgIGFtLT5kZXRlcm1pbmlzdCA9IC0xOworICAgIGFtLT5mbGFncyA9IGNvbXAtPmZsYWdzOworICAgIHJldCA9IHhtbEZBQ29tcHV0ZXNEZXRlcm1pbmlzbShhbSk7CisgICAgYW0tPmF0b21zID0gTlVMTDsKKyAgICBhbS0+c3RhdGVzID0gTlVMTDsKKyAgICB4bWxGcmVlQXV0b21hdGEoYW0pOworICAgIGNvbXAtPmRldGVybWluaXN0ID0gcmV0OworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFJlZ0ZyZWVSZWdleHA6CisgKiBAcmVnZXhwOiAgdGhlIHJlZ2V4cAorICoKKyAqIEZyZWUgYSByZWdleHAKKyAqLwordm9pZAoreG1sUmVnRnJlZVJlZ2V4cCh4bWxSZWdleHBQdHIgcmVnZXhwKSB7CisgICAgaW50IGk7CisgICAgaWYgKHJlZ2V4cCA9PSBOVUxMKQorCXJldHVybjsKKworICAgIGlmIChyZWdleHAtPnN0cmluZyAhPSBOVUxMKQorCXhtbEZyZWUocmVnZXhwLT5zdHJpbmcpOworICAgIGlmIChyZWdleHAtPnN0YXRlcyAhPSBOVUxMKSB7CisJZm9yIChpID0gMDtpIDwgcmVnZXhwLT5uYlN0YXRlcztpKyspCisJICAgIHhtbFJlZ0ZyZWVTdGF0ZShyZWdleHAtPnN0YXRlc1tpXSk7CisJeG1sRnJlZShyZWdleHAtPnN0YXRlcyk7CisgICAgfQorICAgIGlmIChyZWdleHAtPmF0b21zICE9IE5VTEwpIHsKKwlmb3IgKGkgPSAwO2kgPCByZWdleHAtPm5iQXRvbXM7aSsrKQorCSAgICB4bWxSZWdGcmVlQXRvbShyZWdleHAtPmF0b21zW2ldKTsKKwl4bWxGcmVlKHJlZ2V4cC0+YXRvbXMpOworICAgIH0KKyAgICBpZiAocmVnZXhwLT5jb3VudGVycyAhPSBOVUxMKQorCXhtbEZyZWUocmVnZXhwLT5jb3VudGVycyk7CisgICAgaWYgKHJlZ2V4cC0+Y29tcGFjdCAhPSBOVUxMKQorCXhtbEZyZWUocmVnZXhwLT5jb21wYWN0KTsKKyAgICBpZiAocmVnZXhwLT50cmFuc2RhdGEgIT0gTlVMTCkKKwl4bWxGcmVlKHJlZ2V4cC0+dHJhbnNkYXRhKTsKKyAgICBpZiAocmVnZXhwLT5zdHJpbmdNYXAgIT0gTlVMTCkgeworCWZvciAoaSA9IDA7IGkgPCByZWdleHAtPm5ic3RyaW5ncztpKyspCisJICAgIHhtbEZyZWUocmVnZXhwLT5zdHJpbmdNYXBbaV0pOworCXhtbEZyZWUocmVnZXhwLT5zdHJpbmdNYXApOworICAgIH0KKworICAgIHhtbEZyZWUocmVnZXhwKTsKK30KKworI2lmZGVmIExJQlhNTF9BVVRPTUFUQV9FTkFCTEVECisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlUaGUgQXV0b21hdGEgaW50ZXJmYWNlCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sTmV3QXV0b21hdGE6CisgKgorICogQ3JlYXRlIGEgbmV3IGF1dG9tYXRhCisgKgorICogUmV0dXJucyB0aGUgbmV3IG9iamVjdCBvciBOVUxMIGluIGNhc2Ugb2YgZmFpbHVyZQorICovCit4bWxBdXRvbWF0YVB0cgoreG1sTmV3QXV0b21hdGEodm9pZCkgeworICAgIHhtbEF1dG9tYXRhUHRyIGN0eHQ7CisKKyAgICBjdHh0ID0geG1sUmVnTmV3UGFyc2VyQ3R4dChOVUxMKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIC8qIGluaXRpYWxpemUgdGhlIHBhcnNlciAqLworICAgIGN0eHQtPmVuZCA9IE5VTEw7CisgICAgY3R4dC0+c3RhcnQgPSBjdHh0LT5zdGF0ZSA9IHhtbFJlZ05ld1N0YXRlKGN0eHQpOworICAgIGlmIChjdHh0LT5zdGFydCA9PSBOVUxMKSB7CisJeG1sRnJlZUF1dG9tYXRhKGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgY3R4dC0+c3RhcnQtPnR5cGUgPSBYTUxfUkVHRVhQX1NUQVJUX1NUQVRFOworICAgIGlmICh4bWxSZWdTdGF0ZVB1c2goY3R4dCwgY3R4dC0+c3RhcnQpIDwgMCkgeworICAgICAgICB4bWxSZWdGcmVlU3RhdGUoY3R4dC0+c3RhcnQpOworCXhtbEZyZWVBdXRvbWF0YShjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGN0eHQtPmZsYWdzID0gMDsKKworICAgIHJldHVybihjdHh0KTsKK30KKworLyoqCisgKiB4bWxGcmVlQXV0b21hdGE6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKgorICogRnJlZSBhbiBhdXRvbWF0YQorICovCit2b2lkCit4bWxGcmVlQXV0b21hdGEoeG1sQXV0b21hdGFQdHIgYW0pIHsKKyAgICBpZiAoYW0gPT0gTlVMTCkKKwlyZXR1cm47CisgICAgeG1sUmVnRnJlZVBhcnNlckN0eHQoYW0pOworfQorCisvKioKKyAqIHhtbEF1dG9tYXRhU2V0RmxhZ3M6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAZmxhZ3M6ICBhIHNldCBvZiBpbnRlcm5hbCBmbGFncworICoKKyAqIFNldCBzb21lIGZsYWdzIG9uIHRoZSBhdXRvbWF0YQorICovCit2b2lkCit4bWxBdXRvbWF0YVNldEZsYWdzKHhtbEF1dG9tYXRhUHRyIGFtLCBpbnQgZmxhZ3MpIHsKKyAgICBpZiAoYW0gPT0gTlVMTCkKKwlyZXR1cm47CisgICAgYW0tPmZsYWdzIHw9IGZsYWdzOworfQorCisvKioKKyAqIHhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlOgorICogQGFtOiBhbiBhdXRvbWF0YQorICoKKyAqIEluaXRpYWwgc3RhdGUgbG9va3VwCisgKgorICogUmV0dXJucyB0aGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgYXV0b21hdGEKKyAqLworeG1sQXV0b21hdGFTdGF0ZVB0cgoreG1sQXV0b21hdGFHZXRJbml0U3RhdGUoeG1sQXV0b21hdGFQdHIgYW0pIHsKKyAgICBpZiAoYW0gPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgcmV0dXJuKGFtLT5zdGFydCk7Cit9CisKKy8qKgorICogeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlOgorICogQGFtOiBhbiBhdXRvbWF0YQorICogQHN0YXRlOiBhIHN0YXRlIGluIHRoaXMgYXV0b21hdGEKKyAqCisgKiBNYWtlcyB0aGF0IHN0YXRlIGEgZmluYWwgc3RhdGUKKyAqCisgKiBSZXR1cm5zIDAgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbEF1dG9tYXRhU2V0RmluYWxTdGF0ZSh4bWxBdXRvbWF0YVB0ciBhbSwgeG1sQXV0b21hdGFTdGF0ZVB0ciBzdGF0ZSkgeworICAgIGlmICgoYW0gPT0gTlVMTCkgfHwgKHN0YXRlID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgc3RhdGUtPnR5cGUgPSBYTUxfUkVHRVhQX0ZJTkFMX1NUQVRFOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb246CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAZnJvbTogdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uCisgKiBAdG86IHRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTAorICogQHRva2VuOiB0aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uCisgKiBAZGF0YTogZGF0YSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlmIHRoZSB0cmFuc2l0aW9uIGlzIGFjdGl2YXRlZAorICoKKyAqIElmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YQorICogYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZQorICogYWN0aXZhdGVkIGJ5IHRoZSB2YWx1ZSBvZiBAdG9rZW4KKyAqCisgKiBSZXR1cm5zIHRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEF1dG9tYXRhU3RhdGVQdHIKK3htbEF1dG9tYXRhTmV3VHJhbnNpdGlvbih4bWxBdXRvbWF0YVB0ciBhbSwgeG1sQXV0b21hdGFTdGF0ZVB0ciBmcm9tLAorCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkJIHZvaWQgKmRhdGEpIHsKKyAgICB4bWxSZWdBdG9tUHRyIGF0b207CisKKyAgICBpZiAoKGFtID09IE5VTEwpIHx8IChmcm9tID09IE5VTEwpIHx8ICh0b2tlbiA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgYXRvbSA9IHhtbFJlZ05ld0F0b20oYW0sIFhNTF9SRUdFWFBfU1RSSU5HKTsKKyAgICBpZiAoYXRvbSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgYXRvbS0+ZGF0YSA9IGRhdGE7CisgICAgaWYgKGF0b20gPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgYXRvbS0+dmFsdWVwID0geG1sU3RyZHVwKHRva2VuKTsKKworICAgIGlmICh4bWxGQUdlbmVyYXRlVHJhbnNpdGlvbnMoYW0sIGZyb20sIHRvLCBhdG9tKSA8IDApIHsKKyAgICAgICAgeG1sUmVnRnJlZUF0b20oYXRvbSk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBpZiAodG8gPT0gTlVMTCkKKwlyZXR1cm4oYW0tPnN0YXRlKTsKKyAgICByZXR1cm4odG8pOworfQorCisvKioKKyAqIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjI6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAZnJvbTogdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uCisgKiBAdG86IHRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTAorICogQHRva2VuOiB0aGUgZmlyc3QgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uCisgKiBAdG9rZW4yOiB0aGUgc2Vjb25kIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbgorICogQGRhdGE6IGRhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpZiB0aGUgdHJhbnNpdGlvbiBpcyBhY3RpdmF0ZWQKKyAqCisgKiBJZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEKKyAqIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUKKyAqIGFjdGl2YXRlZCBieSB0aGUgdmFsdWUgb2YgQHRva2VuCisgKgorICogUmV0dXJucyB0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxBdXRvbWF0YVN0YXRlUHRyCit4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yKHhtbEF1dG9tYXRhUHRyIGFtLCB4bWxBdXRvbWF0YVN0YXRlUHRyIGZyb20sCisJCQkgIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkJICBjb25zdCB4bWxDaGFyICp0b2tlbjIsIHZvaWQgKmRhdGEpIHsKKyAgICB4bWxSZWdBdG9tUHRyIGF0b207CisKKyAgICBpZiAoKGFtID09IE5VTEwpIHx8IChmcm9tID09IE5VTEwpIHx8ICh0b2tlbiA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgYXRvbSA9IHhtbFJlZ05ld0F0b20oYW0sIFhNTF9SRUdFWFBfU1RSSU5HKTsKKyAgICBpZiAoYXRvbSA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBhdG9tLT5kYXRhID0gZGF0YTsKKyAgICBpZiAoKHRva2VuMiA9PSBOVUxMKSB8fCAoKnRva2VuMiA9PSAwKSkgeworCWF0b20tPnZhbHVlcCA9IHhtbFN0cmR1cCh0b2tlbik7CisgICAgfSBlbHNlIHsKKwlpbnQgbGVubiwgbGVucDsKKwl4bWxDaGFyICpzdHI7CisKKwlsZW5uID0gc3RybGVuKChjaGFyICopIHRva2VuMik7CisJbGVucCA9IHN0cmxlbigoY2hhciAqKSB0b2tlbik7CisKKwlzdHIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobGVubiArIGxlbnAgKyAyKTsKKwlpZiAoc3RyID09IE5VTEwpIHsKKwkgICAgeG1sUmVnRnJlZUF0b20oYXRvbSk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbWVtY3B5KCZzdHJbMF0sIHRva2VuLCBsZW5wKTsKKwlzdHJbbGVucF0gPSAnfCc7CisJbWVtY3B5KCZzdHJbbGVucCArIDFdLCB0b2tlbjIsIGxlbm4pOworCXN0cltsZW5uICsgbGVucCArIDFdID0gMDsKKworCWF0b20tPnZhbHVlcCA9IHN0cjsKKyAgICB9CisKKyAgICBpZiAoeG1sRkFHZW5lcmF0ZVRyYW5zaXRpb25zKGFtLCBmcm9tLCB0bywgYXRvbSkgPCAwKSB7CisgICAgICAgIHhtbFJlZ0ZyZWVBdG9tKGF0b20pOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKHRvID09IE5VTEwpCisJcmV0dXJuKGFtLT5zdGF0ZSk7CisgICAgcmV0dXJuKHRvKTsKK30KKworLyoqCisgKiB4bWxBdXRvbWF0YU5ld05lZ1RyYW5zOgorICogQGFtOiBhbiBhdXRvbWF0YQorICogQGZyb206IHRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbgorICogQHRvOiB0aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEwKKyAqIEB0b2tlbjogdGhlIGZpcnN0IGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbgorICogQHRva2VuMjogdGhlIHNlY29uZCBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb24KKyAqIEBkYXRhOiBkYXRhIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaWYgdGhlIHRyYW5zaXRpb24gaXMgYWN0aXZhdGVkCisgKgorICogSWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhCisgKiBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlCisgKiBhY3RpdmF0ZWQgYnkgYW55IHZhbHVlIGV4Y2VwdCAoQHRva2VuLEB0b2tlbjIpCisgKiBOb3RlIHRoYXQgaWYgQHRva2VuMiBpcyBub3QgTlVMTCwgdGhlbiAoWCwgTlVMTCkgd29uJ3QgbWF0Y2ggdG8gZm9sbG93CisgIyB0aGUgc2VtYW50aWMgb2YgWFNEICMjb3RoZXIKKyAqCisgKiBSZXR1cm5zIHRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEF1dG9tYXRhU3RhdGVQdHIKK3htbEF1dG9tYXRhTmV3TmVnVHJhbnMoeG1sQXV0b21hdGFQdHIgYW0sIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJICAgICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkgICAgICAgY29uc3QgeG1sQ2hhciAqdG9rZW4yLCB2b2lkICpkYXRhKSB7CisgICAgeG1sUmVnQXRvbVB0ciBhdG9tOworICAgIHhtbENoYXIgZXJyX21zZ1syMDBdOworCisgICAgaWYgKChhbSA9PSBOVUxMKSB8fCAoZnJvbSA9PSBOVUxMKSB8fCAodG9rZW4gPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGF0b20gPSB4bWxSZWdOZXdBdG9tKGFtLCBYTUxfUkVHRVhQX1NUUklORyk7CisgICAgaWYgKGF0b20gPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgYXRvbS0+ZGF0YSA9IGRhdGE7CisgICAgYXRvbS0+bmVnID0gMTsKKyAgICBpZiAoKHRva2VuMiA9PSBOVUxMKSB8fCAoKnRva2VuMiA9PSAwKSkgeworCWF0b20tPnZhbHVlcCA9IHhtbFN0cmR1cCh0b2tlbik7CisgICAgfSBlbHNlIHsKKwlpbnQgbGVubiwgbGVucDsKKwl4bWxDaGFyICpzdHI7CisKKwlsZW5uID0gc3RybGVuKChjaGFyICopIHRva2VuMik7CisJbGVucCA9IHN0cmxlbigoY2hhciAqKSB0b2tlbik7CisKKwlzdHIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobGVubiArIGxlbnAgKyAyKTsKKwlpZiAoc3RyID09IE5VTEwpIHsKKwkgICAgeG1sUmVnRnJlZUF0b20oYXRvbSk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbWVtY3B5KCZzdHJbMF0sIHRva2VuLCBsZW5wKTsKKwlzdHJbbGVucF0gPSAnfCc7CisJbWVtY3B5KCZzdHJbbGVucCArIDFdLCB0b2tlbjIsIGxlbm4pOworCXN0cltsZW5uICsgbGVucCArIDFdID0gMDsKKworCWF0b20tPnZhbHVlcCA9IHN0cjsKKyAgICB9CisgICAgc25wcmludGYoKGNoYXIgKikgZXJyX21zZywgMTk5LCAibm90ICVzIiwgKGNvbnN0IGNoYXIgKikgYXRvbS0+dmFsdWVwKTsKKyAgICBlcnJfbXNnWzE5OV0gPSAwOworICAgIGF0b20tPnZhbHVlcDIgPSB4bWxTdHJkdXAoZXJyX21zZyk7CisKKyAgICBpZiAoeG1sRkFHZW5lcmF0ZVRyYW5zaXRpb25zKGFtLCBmcm9tLCB0bywgYXRvbSkgPCAwKSB7CisgICAgICAgIHhtbFJlZ0ZyZWVBdG9tKGF0b20pOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgYW0tPm5lZ3MrKzsKKyAgICBpZiAodG8gPT0gTlVMTCkKKwlyZXR1cm4oYW0tPnN0YXRlKTsKKyAgICByZXR1cm4odG8pOworfQorCisvKioKKyAqIHhtbEF1dG9tYXRhTmV3Q291bnRUcmFuczI6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAZnJvbTogdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uCisgKiBAdG86IHRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTAorICogQHRva2VuOiB0aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uCisgKiBAdG9rZW4yOiB0aGUgc2Vjb25kIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbgorICogQG1pbjogIHRoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbgorICogQG1heDogIHRoZSBtYXhpbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbgorICogQGRhdGE6ICBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRyYW5zaXRpb24KKyAqCisgKiBJZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEKKyAqIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUKKyAqIGFjdGl2YXRlZCBieSBhIHN1Y2Nlc3Npb24gb2YgaW5wdXQgb2YgdmFsdWUgQHRva2VuIGFuZCBAdG9rZW4yIGFuZCAKKyAqIHdob3NlIG51bWJlciBpcyBiZXR3ZWVuIEBtaW4gYW5kIEBtYXgKKyAqCisgKiBSZXR1cm5zIHRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEF1dG9tYXRhU3RhdGVQdHIKK3htbEF1dG9tYXRhTmV3Q291bnRUcmFuczIoeG1sQXV0b21hdGFQdHIgYW0sIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIHRvLCBjb25zdCB4bWxDaGFyICp0b2tlbiwKKwkJCSBjb25zdCB4bWxDaGFyICp0b2tlbjIsCisJCQkgaW50IG1pbiwgaW50IG1heCwgdm9pZCAqZGF0YSkgeworICAgIHhtbFJlZ0F0b21QdHIgYXRvbTsKKyAgICBpbnQgY291bnRlcjsKKworICAgIGlmICgoYW0gPT0gTlVMTCkgfHwgKGZyb20gPT0gTlVMTCkgfHwgKHRva2VuID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAobWluIDwgMCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKChtYXggPCBtaW4pIHx8IChtYXggPCAxKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgYXRvbSA9IHhtbFJlZ05ld0F0b20oYW0sIFhNTF9SRUdFWFBfU1RSSU5HKTsKKyAgICBpZiAoYXRvbSA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKHRva2VuMiA9PSBOVUxMKSB8fCAoKnRva2VuMiA9PSAwKSkgeworCWF0b20tPnZhbHVlcCA9IHhtbFN0cmR1cCh0b2tlbik7CisgICAgfSBlbHNlIHsKKwlpbnQgbGVubiwgbGVucDsKKwl4bWxDaGFyICpzdHI7CisKKwlsZW5uID0gc3RybGVuKChjaGFyICopIHRva2VuMik7CisJbGVucCA9IHN0cmxlbigoY2hhciAqKSB0b2tlbik7CisKKwlzdHIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobGVubiArIGxlbnAgKyAyKTsKKwlpZiAoc3RyID09IE5VTEwpIHsKKwkgICAgeG1sUmVnRnJlZUF0b20oYXRvbSk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbWVtY3B5KCZzdHJbMF0sIHRva2VuLCBsZW5wKTsKKwlzdHJbbGVucF0gPSAnfCc7CisJbWVtY3B5KCZzdHJbbGVucCArIDFdLCB0b2tlbjIsIGxlbm4pOworCXN0cltsZW5uICsgbGVucCArIDFdID0gMDsKKworCWF0b20tPnZhbHVlcCA9IHN0cjsKKyAgICB9CisgICAgYXRvbS0+ZGF0YSA9IGRhdGE7CisgICAgaWYgKG1pbiA9PSAwKQorCWF0b20tPm1pbiA9IDE7CisgICAgZWxzZQorCWF0b20tPm1pbiA9IG1pbjsKKyAgICBhdG9tLT5tYXggPSBtYXg7CisKKyAgICAvKgorICAgICAqIGFzc29jaWF0ZSBhIGNvdW50ZXIgdG8gdGhlIHRyYW5zaXRpb24uCisgICAgICovCisgICAgY291bnRlciA9IHhtbFJlZ0dldENvdW50ZXIoYW0pOworICAgIGFtLT5jb3VudGVyc1tjb3VudGVyXS5taW4gPSBtaW47CisgICAgYW0tPmNvdW50ZXJzW2NvdW50ZXJdLm1heCA9IG1heDsKKworICAgIC8qIHhtbEZBR2VuZXJhdGVUcmFuc2l0aW9ucyhhbSwgZnJvbSwgdG8sIGF0b20pOyAqLworICAgIGlmICh0byA9PSBOVUxMKSB7CisgICAgICAgIHRvID0geG1sUmVnTmV3U3RhdGUoYW0pOworCXhtbFJlZ1N0YXRlUHVzaChhbSwgdG8pOworICAgIH0KKyAgICB4bWxSZWdTdGF0ZUFkZFRyYW5zKGFtLCBmcm9tLCBhdG9tLCB0bywgY291bnRlciwgLTEpOworICAgIHhtbFJlZ0F0b21QdXNoKGFtLCBhdG9tKTsKKyAgICBhbS0+c3RhdGUgPSB0bzsKKworICAgIGlmICh0byA9PSBOVUxMKQorCXRvID0gYW0tPnN0YXRlOworICAgIGlmICh0byA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAobWluID09IDApCisJeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uKGFtLCBmcm9tLCB0byk7CisgICAgcmV0dXJuKHRvKTsKK30KKworLyoqCisgKiB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnM6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAZnJvbTogdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uCisgKiBAdG86IHRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTAorICogQHRva2VuOiB0aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uCisgKiBAbWluOiAgdGhlIG1pbmltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuCisgKiBAbWF4OiAgdGhlIG1heGltdW0gc3VjY2Vzc2l2ZSBvY2N1cmVuY2VzIG9mIHRva2VuCisgKiBAZGF0YTogIGRhdGEgYXNzb2NpYXRlZCB0byB0aGUgdHJhbnNpdGlvbgorICoKKyAqIElmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YQorICogYW5kIHRoZW4gYWRkcyBhIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZQorICogYWN0aXZhdGVkIGJ5IGEgc3VjY2Vzc2lvbiBvZiBpbnB1dCBvZiB2YWx1ZSBAdG9rZW4gYW5kIHdob3NlIG51bWJlcgorICogaXMgYmV0d2VlbiBAbWluIGFuZCBAbWF4CisgKgorICogUmV0dXJucyB0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxBdXRvbWF0YVN0YXRlUHRyCit4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMoeG1sQXV0b21hdGFQdHIgYW0sIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIHRvLCBjb25zdCB4bWxDaGFyICp0b2tlbiwKKwkJCSBpbnQgbWluLCBpbnQgbWF4LCB2b2lkICpkYXRhKSB7CisgICAgeG1sUmVnQXRvbVB0ciBhdG9tOworICAgIGludCBjb3VudGVyOworCisgICAgaWYgKChhbSA9PSBOVUxMKSB8fCAoZnJvbSA9PSBOVUxMKSB8fCAodG9rZW4gPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChtaW4gPCAwKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKG1heCA8IG1pbikgfHwgKG1heCA8IDEpKQorCXJldHVybihOVUxMKTsKKyAgICBhdG9tID0geG1sUmVnTmV3QXRvbShhbSwgWE1MX1JFR0VYUF9TVFJJTkcpOworICAgIGlmIChhdG9tID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGF0b20tPnZhbHVlcCA9IHhtbFN0cmR1cCh0b2tlbik7CisgICAgYXRvbS0+ZGF0YSA9IGRhdGE7CisgICAgaWYgKG1pbiA9PSAwKQorCWF0b20tPm1pbiA9IDE7CisgICAgZWxzZQorCWF0b20tPm1pbiA9IG1pbjsKKyAgICBhdG9tLT5tYXggPSBtYXg7CisKKyAgICAvKgorICAgICAqIGFzc29jaWF0ZSBhIGNvdW50ZXIgdG8gdGhlIHRyYW5zaXRpb24uCisgICAgICovCisgICAgY291bnRlciA9IHhtbFJlZ0dldENvdW50ZXIoYW0pOworICAgIGFtLT5jb3VudGVyc1tjb3VudGVyXS5taW4gPSBtaW47CisgICAgYW0tPmNvdW50ZXJzW2NvdW50ZXJdLm1heCA9IG1heDsKKworICAgIC8qIHhtbEZBR2VuZXJhdGVUcmFuc2l0aW9ucyhhbSwgZnJvbSwgdG8sIGF0b20pOyAqLworICAgIGlmICh0byA9PSBOVUxMKSB7CisgICAgICAgIHRvID0geG1sUmVnTmV3U3RhdGUoYW0pOworCXhtbFJlZ1N0YXRlUHVzaChhbSwgdG8pOworICAgIH0KKyAgICB4bWxSZWdTdGF0ZUFkZFRyYW5zKGFtLCBmcm9tLCBhdG9tLCB0bywgY291bnRlciwgLTEpOworICAgIHhtbFJlZ0F0b21QdXNoKGFtLCBhdG9tKTsKKyAgICBhbS0+c3RhdGUgPSB0bzsKKworICAgIGlmICh0byA9PSBOVUxMKQorCXRvID0gYW0tPnN0YXRlOworICAgIGlmICh0byA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAobWluID09IDApCisJeG1sRkFHZW5lcmF0ZUVwc2lsb25UcmFuc2l0aW9uKGFtLCBmcm9tLCB0byk7CisgICAgcmV0dXJuKHRvKTsKK30KKworLyoqCisgKiB4bWxBdXRvbWF0YU5ld09uY2VUcmFuczI6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAZnJvbTogdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uCisgKiBAdG86IHRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTAorICogQHRva2VuOiB0aGUgaW5wdXQgc3RyaW5nIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uCisgKiBAdG9rZW4yOiB0aGUgc2Vjb25kIGlucHV0IHN0cmluZyBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbgorICogQG1pbjogIHRoZSBtaW5pbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbgorICogQG1heDogIHRoZSBtYXhpbXVtIHN1Y2Nlc3NpdmUgb2NjdXJlbmNlcyBvZiB0b2tlbgorICogQGRhdGE6ICBkYXRhIGFzc29jaWF0ZWQgdG8gdGhlIHRyYW5zaXRpb24KKyAqCisgKiBJZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEKKyAqIGFuZCB0aGVuIGFkZHMgYSB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZSB0YXJnZXQgc3RhdGUKKyAqIGFjdGl2YXRlZCBieSBhIHN1Y2Nlc3Npb24gb2YgaW5wdXQgb2YgdmFsdWUgQHRva2VuIGFuZCBAdG9rZW4yIGFuZCB3aG9zZSAKKyAqIG51bWJlciBpcyBiZXR3ZWVuIEBtaW4gYW5kIEBtYXgsIG1vcmVvdmVyIHRoYXQgdHJhbnNpdGlvbiBjYW4gb25seSBiZSAKKyAqIGNyb3NzZWQgb25jZS4KKyAqCisgKiBSZXR1cm5zIHRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEF1dG9tYXRhU3RhdGVQdHIKK3htbEF1dG9tYXRhTmV3T25jZVRyYW5zMih4bWxBdXRvbWF0YVB0ciBhbSwgeG1sQXV0b21hdGFTdGF0ZVB0ciBmcm9tLAorCQkJIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sIGNvbnN0IHhtbENoYXIgKnRva2VuLAorCQkJIGNvbnN0IHhtbENoYXIgKnRva2VuMiwKKwkJCSBpbnQgbWluLCBpbnQgbWF4LCB2b2lkICpkYXRhKSB7CisgICAgeG1sUmVnQXRvbVB0ciBhdG9tOworICAgIGludCBjb3VudGVyOworCisgICAgaWYgKChhbSA9PSBOVUxMKSB8fCAoZnJvbSA9PSBOVUxMKSB8fCAodG9rZW4gPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChtaW4gPCAxKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKG1heCA8IG1pbikgfHwgKG1heCA8IDEpKQorCXJldHVybihOVUxMKTsKKyAgICBhdG9tID0geG1sUmVnTmV3QXRvbShhbSwgWE1MX1JFR0VYUF9TVFJJTkcpOworICAgIGlmIChhdG9tID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmICgodG9rZW4yID09IE5VTEwpIHx8ICgqdG9rZW4yID09IDApKSB7CisJYXRvbS0+dmFsdWVwID0geG1sU3RyZHVwKHRva2VuKTsKKyAgICB9IGVsc2UgeworCWludCBsZW5uLCBsZW5wOworCXhtbENoYXIgKnN0cjsKKworCWxlbm4gPSBzdHJsZW4oKGNoYXIgKikgdG9rZW4yKTsKKwlsZW5wID0gc3RybGVuKChjaGFyICopIHRva2VuKTsKKworCXN0ciA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhsZW5uICsgbGVucCArIDIpOworCWlmIChzdHIgPT0gTlVMTCkgeworCSAgICB4bWxSZWdGcmVlQXRvbShhdG9tKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKwltZW1jcHkoJnN0clswXSwgdG9rZW4sIGxlbnApOworCXN0cltsZW5wXSA9ICd8JzsKKwltZW1jcHkoJnN0cltsZW5wICsgMV0sIHRva2VuMiwgbGVubik7CisJc3RyW2xlbm4gKyBsZW5wICsgMV0gPSAwOworCisJYXRvbS0+dmFsdWVwID0gc3RyOworICAgIH0gICAgCisgICAgYXRvbS0+ZGF0YSA9IGRhdGE7CisgICAgYXRvbS0+cXVhbnQgPSBYTUxfUkVHRVhQX1FVQU5UX09OQ0VPTkxZOworICAgIGF0b20tPm1pbiA9IG1pbjsKKyAgICBhdG9tLT5tYXggPSBtYXg7CisgICAgLyoKKyAgICAgKiBhc3NvY2lhdGUgYSBjb3VudGVyIHRvIHRoZSB0cmFuc2l0aW9uLgorICAgICAqLworICAgIGNvdW50ZXIgPSB4bWxSZWdHZXRDb3VudGVyKGFtKTsKKyAgICBhbS0+Y291bnRlcnNbY291bnRlcl0ubWluID0gMTsKKyAgICBhbS0+Y291bnRlcnNbY291bnRlcl0ubWF4ID0gMTsKKworICAgIC8qIHhtbEZBR2VuZXJhdGVUcmFuc2l0aW9ucyhhbSwgZnJvbSwgdG8sIGF0b20pOyAqLworICAgIGlmICh0byA9PSBOVUxMKSB7CisJdG8gPSB4bWxSZWdOZXdTdGF0ZShhbSk7CisJeG1sUmVnU3RhdGVQdXNoKGFtLCB0byk7CisgICAgfQorICAgIHhtbFJlZ1N0YXRlQWRkVHJhbnMoYW0sIGZyb20sIGF0b20sIHRvLCBjb3VudGVyLCAtMSk7CisgICAgeG1sUmVnQXRvbVB1c2goYW0sIGF0b20pOworICAgIGFtLT5zdGF0ZSA9IHRvOworICAgIHJldHVybih0byk7Cit9CisKKyAgICAKKworLyoqCisgKiB4bWxBdXRvbWF0YU5ld09uY2VUcmFuczoKKyAqIEBhbTogYW4gYXV0b21hdGEKKyAqIEBmcm9tOiB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24KKyAqIEB0bzogdGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMCisgKiBAdG9rZW46IHRoZSBpbnB1dCBzdHJpbmcgYXNzb2NpYXRlZCB0byB0aGF0IHRyYW5zaXRpb24KKyAqIEBtaW46ICB0aGUgbWluaW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW4KKyAqIEBtYXg6ICB0aGUgbWF4aW11bSBzdWNjZXNzaXZlIG9jY3VyZW5jZXMgb2YgdG9rZW4KKyAqIEBkYXRhOiAgZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSB0cmFuc2l0aW9uCisgKgorICogSWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhCisgKiBhbmQgdGhlbiBhZGRzIGEgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlCisgKiBhY3RpdmF0ZWQgYnkgYSBzdWNjZXNzaW9uIG9mIGlucHV0IG9mIHZhbHVlIEB0b2tlbiBhbmQgd2hvc2UgbnVtYmVyCisgKiBpcyBiZXR3ZWVuIEBtaW4gYW5kIEBtYXgsIG1vcmVvdmVyIHRoYXQgdHJhbnNpdGlvbiBjYW4gb25seSBiZSBjcm9zc2VkCisgKiBvbmNlLgorICoKKyAqIFJldHVybnMgdGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sQXV0b21hdGFTdGF0ZVB0cgoreG1sQXV0b21hdGFOZXdPbmNlVHJhbnMoeG1sQXV0b21hdGFQdHIgYW0sIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJCSB4bWxBdXRvbWF0YVN0YXRlUHRyIHRvLCBjb25zdCB4bWxDaGFyICp0b2tlbiwKKwkJCSBpbnQgbWluLCBpbnQgbWF4LCB2b2lkICpkYXRhKSB7CisgICAgeG1sUmVnQXRvbVB0ciBhdG9tOworICAgIGludCBjb3VudGVyOworCisgICAgaWYgKChhbSA9PSBOVUxMKSB8fCAoZnJvbSA9PSBOVUxMKSB8fCAodG9rZW4gPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChtaW4gPCAxKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKG1heCA8IG1pbikgfHwgKG1heCA8IDEpKQorCXJldHVybihOVUxMKTsKKyAgICBhdG9tID0geG1sUmVnTmV3QXRvbShhbSwgWE1MX1JFR0VYUF9TVFJJTkcpOworICAgIGlmIChhdG9tID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGF0b20tPnZhbHVlcCA9IHhtbFN0cmR1cCh0b2tlbik7CisgICAgYXRvbS0+ZGF0YSA9IGRhdGE7CisgICAgYXRvbS0+cXVhbnQgPSBYTUxfUkVHRVhQX1FVQU5UX09OQ0VPTkxZOworICAgIGF0b20tPm1pbiA9IG1pbjsKKyAgICBhdG9tLT5tYXggPSBtYXg7CisgICAgLyoKKyAgICAgKiBhc3NvY2lhdGUgYSBjb3VudGVyIHRvIHRoZSB0cmFuc2l0aW9uLgorICAgICAqLworICAgIGNvdW50ZXIgPSB4bWxSZWdHZXRDb3VudGVyKGFtKTsKKyAgICBhbS0+Y291bnRlcnNbY291bnRlcl0ubWluID0gMTsKKyAgICBhbS0+Y291bnRlcnNbY291bnRlcl0ubWF4ID0gMTsKKworICAgIC8qIHhtbEZBR2VuZXJhdGVUcmFuc2l0aW9ucyhhbSwgZnJvbSwgdG8sIGF0b20pOyAqLworICAgIGlmICh0byA9PSBOVUxMKSB7CisJdG8gPSB4bWxSZWdOZXdTdGF0ZShhbSk7CisJeG1sUmVnU3RhdGVQdXNoKGFtLCB0byk7CisgICAgfQorICAgIHhtbFJlZ1N0YXRlQWRkVHJhbnMoYW0sIGZyb20sIGF0b20sIHRvLCBjb3VudGVyLCAtMSk7CisgICAgeG1sUmVnQXRvbVB1c2goYW0sIGF0b20pOworICAgIGFtLT5zdGF0ZSA9IHRvOworICAgIHJldHVybih0byk7Cit9CisKKy8qKgorICogeG1sQXV0b21hdGFOZXdTdGF0ZToKKyAqIEBhbTogYW4gYXV0b21hdGEKKyAqCisgKiBDcmVhdGUgYSBuZXcgZGlzY29ubmVjdGVkIHN0YXRlIGluIHRoZSBhdXRvbWF0YQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sQXV0b21hdGFTdGF0ZVB0cgoreG1sQXV0b21hdGFOZXdTdGF0ZSh4bWxBdXRvbWF0YVB0ciBhbSkgeworICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG87IAorCisgICAgaWYgKGFtID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHRvID0geG1sUmVnTmV3U3RhdGUoYW0pOworICAgIHhtbFJlZ1N0YXRlUHVzaChhbSwgdG8pOworICAgIHJldHVybih0byk7Cit9CisKKy8qKgorICogeG1sQXV0b21hdGFOZXdFcHNpbG9uOgorICogQGFtOiBhbiBhdXRvbWF0YQorICogQGZyb206IHRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbgorICogQHRvOiB0aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEwKKyAqCisgKiBJZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEKKyAqIGFuZCB0aGVuIGFkZHMgYW4gZXBzaWxvbiB0cmFuc2l0aW9uIGZyb20gdGhlIEBmcm9tIHN0YXRlIHRvIHRoZQorICogdGFyZ2V0IHN0YXRlCisgKgorICogUmV0dXJucyB0aGUgdGFyZ2V0IHN0YXRlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxBdXRvbWF0YVN0YXRlUHRyCit4bWxBdXRvbWF0YU5ld0Vwc2lsb24oeG1sQXV0b21hdGFQdHIgYW0sIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJICAgICAgeG1sQXV0b21hdGFTdGF0ZVB0ciB0bykgeworICAgIGlmICgoYW0gPT0gTlVMTCkgfHwgKGZyb20gPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIHhtbEZBR2VuZXJhdGVFcHNpbG9uVHJhbnNpdGlvbihhbSwgZnJvbSwgdG8pOworICAgIGlmICh0byA9PSBOVUxMKQorCXJldHVybihhbS0+c3RhdGUpOworICAgIHJldHVybih0byk7Cit9CisKKy8qKgorICogeG1sQXV0b21hdGFOZXdBbGxUcmFuczoKKyAqIEBhbTogYW4gYXV0b21hdGEKKyAqIEBmcm9tOiB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24KKyAqIEB0bzogdGhlIHRhcmdldCBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbiBvciBOVUxMCisgKiBAbGF4OiBhbGxvdyB0byB0cmFuc2l0aW9uIGlmIG5vdCBhbGwgYWxsIHRyYW5zaXRpb25zIGhhdmUgYmVlbiBhY3RpdmF0ZWQKKyAqCisgKiBJZiBAdG8gaXMgTlVMTCwgdGhpcyBjcmVhdGVzIGZpcnN0IGEgbmV3IHRhcmdldCBzdGF0ZSBpbiB0aGUgYXV0b21hdGEKKyAqIGFuZCB0aGVuIGFkZHMgYSBhbiBBTEwgdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUKKyAqIHRhcmdldCBzdGF0ZS4gVGhhdCB0cmFuc2l0aW9uIGlzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBhbGxvd2VkIG9ubHkgd2hlbgorICogYWxsIHRyYW5zaXRpb25zIGZyb20gdGhlIEBmcm9tIG5vZGUgaGF2ZSBiZWVuIGFjdGl2YXRlZC4KKyAqCisgKiBSZXR1cm5zIHRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEF1dG9tYXRhU3RhdGVQdHIKK3htbEF1dG9tYXRhTmV3QWxsVHJhbnMoeG1sQXV0b21hdGFQdHIgYW0sIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJICAgICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sIGludCBsYXgpIHsKKyAgICBpZiAoKGFtID09IE5VTEwpIHx8IChmcm9tID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICB4bWxGQUdlbmVyYXRlQWxsVHJhbnNpdGlvbihhbSwgZnJvbSwgdG8sIGxheCk7CisgICAgaWYgKHRvID09IE5VTEwpCisJcmV0dXJuKGFtLT5zdGF0ZSk7CisgICAgcmV0dXJuKHRvKTsKK30KKworLyoqCisgKiB4bWxBdXRvbWF0YU5ld0NvdW50ZXI6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAbWluOiAgdGhlIG1pbmltYWwgdmFsdWUgb24gdGhlIGNvdW50ZXIKKyAqIEBtYXg6ICB0aGUgbWF4aW1hbCB2YWx1ZSBvbiB0aGUgY291bnRlcgorICoKKyAqIENyZWF0ZSBhIG5ldyBjb3VudGVyCisgKgorICogUmV0dXJucyB0aGUgY291bnRlciBudW1iZXIgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQJCQoreG1sQXV0b21hdGFOZXdDb3VudGVyKHhtbEF1dG9tYXRhUHRyIGFtLCBpbnQgbWluLCBpbnQgbWF4KSB7CisgICAgaW50IHJldDsKKworICAgIGlmIChhbSA9PSBOVUxMKQorCXJldHVybigtMSk7CisKKyAgICByZXQgPSB4bWxSZWdHZXRDb3VudGVyKGFtKTsKKyAgICBpZiAocmV0IDwgMCkKKwlyZXR1cm4oLTEpOworICAgIGFtLT5jb3VudGVyc1tyZXRdLm1pbiA9IG1pbjsKKyAgICBhbS0+Y291bnRlcnNbcmV0XS5tYXggPSBtYXg7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnM6CisgKiBAYW06IGFuIGF1dG9tYXRhCisgKiBAZnJvbTogdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uCisgKiBAdG86IHRoZSB0YXJnZXQgcG9pbnQgb2YgdGhlIHRyYW5zaXRpb24gb3IgTlVMTAorICogQGNvdW50ZXI6IHRoZSBjb3VudGVyIGFzc29jaWF0ZWQgdG8gdGhhdCB0cmFuc2l0aW9uCisgKgorICogSWYgQHRvIGlzIE5VTEwsIHRoaXMgY3JlYXRlcyBmaXJzdCBhIG5ldyB0YXJnZXQgc3RhdGUgaW4gdGhlIGF1dG9tYXRhCisgKiBhbmQgdGhlbiBhZGRzIGFuIGVwc2lsb24gdHJhbnNpdGlvbiBmcm9tIHRoZSBAZnJvbSBzdGF0ZSB0byB0aGUgdGFyZ2V0IHN0YXRlCisgKiB3aGljaCB3aWxsIGluY3JlbWVudCB0aGUgY291bnRlciBwcm92aWRlZAorICoKKyAqIFJldHVybnMgdGhlIHRhcmdldCBzdGF0ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sQXV0b21hdGFTdGF0ZVB0cgoreG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMoeG1sQXV0b21hdGFQdHIgYW0sIHhtbEF1dG9tYXRhU3RhdGVQdHIgZnJvbSwKKwkJeG1sQXV0b21hdGFTdGF0ZVB0ciB0bywgaW50IGNvdW50ZXIpIHsKKyAgICBpZiAoKGFtID09IE5VTEwpIHx8IChmcm9tID09IE5VTEwpIHx8IChjb3VudGVyIDwgMCkpCisJcmV0dXJuKE5VTEwpOworICAgIHhtbEZBR2VuZXJhdGVDb3VudGVkRXBzaWxvblRyYW5zaXRpb24oYW0sIGZyb20sIHRvLCBjb3VudGVyKTsKKyAgICBpZiAodG8gPT0gTlVMTCkKKwlyZXR1cm4oYW0tPnN0YXRlKTsKKyAgICByZXR1cm4odG8pOworfQorCisvKioKKyAqIHhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zOgorICogQGFtOiBhbiBhdXRvbWF0YQorICogQGZyb206IHRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgdHJhbnNpdGlvbgorICogQHRvOiB0aGUgdGFyZ2V0IHBvaW50IG9mIHRoZSB0cmFuc2l0aW9uIG9yIE5VTEwKKyAqIEBjb3VudGVyOiB0aGUgY291bnRlciBhc3NvY2lhdGVkIHRvIHRoYXQgdHJhbnNpdGlvbgorICoKKyAqIElmIEB0byBpcyBOVUxMLCB0aGlzIGNyZWF0ZXMgZmlyc3QgYSBuZXcgdGFyZ2V0IHN0YXRlIGluIHRoZSBhdXRvbWF0YQorICogYW5kIHRoZW4gYWRkcyBhbiBlcHNpbG9uIHRyYW5zaXRpb24gZnJvbSB0aGUgQGZyb20gc3RhdGUgdG8gdGhlIHRhcmdldCBzdGF0ZQorICogd2hpY2ggd2lsbCBiZSBhbGxvd2VkIG9ubHkgaWYgdGhlIGNvdW50ZXIgaXMgd2l0aGluIHRoZSByaWdodCByYW5nZS4KKyAqCisgKiBSZXR1cm5zIHRoZSB0YXJnZXQgc3RhdGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEF1dG9tYXRhU3RhdGVQdHIKK3htbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zKHhtbEF1dG9tYXRhUHRyIGFtLCB4bWxBdXRvbWF0YVN0YXRlUHRyIGZyb20sCisJCXhtbEF1dG9tYXRhU3RhdGVQdHIgdG8sIGludCBjb3VudGVyKSB7CisgICAgaWYgKChhbSA9PSBOVUxMKSB8fCAoZnJvbSA9PSBOVUxMKSB8fCAoY291bnRlciA8IDApKQorCXJldHVybihOVUxMKTsKKyAgICB4bWxGQUdlbmVyYXRlQ291bnRlZFRyYW5zaXRpb24oYW0sIGZyb20sIHRvLCBjb3VudGVyKTsKKyAgICBpZiAodG8gPT0gTlVMTCkKKwlyZXR1cm4oYW0tPnN0YXRlKTsKKyAgICByZXR1cm4odG8pOworfQorCisvKioKKyAqIHhtbEF1dG9tYXRhQ29tcGlsZToKKyAqIEBhbTogYW4gYXV0b21hdGEKKyAqCisgKiBDb21waWxlIHRoZSBhdXRvbWF0YSBpbnRvIGEgUmVnIEV4cCByZWFkeSBmb3IgYmVpbmcgZXhlY3V0ZWQuCisgKiBUaGUgYXV0b21hdGEgc2hvdWxkIGJlIGZyZWUgYWZ0ZXIgdGhpcyBwb2ludC4KKyAqCisgKiBSZXR1cm5zIHRoZSBjb21waWxlZCByZWdleHAgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFJlZ2V4cFB0ciAgICAgICAgICAKK3htbEF1dG9tYXRhQ29tcGlsZSh4bWxBdXRvbWF0YVB0ciBhbSkgeworICAgIHhtbFJlZ2V4cFB0ciByZXQ7CisKKyAgICBpZiAoKGFtID09IE5VTEwpIHx8IChhbS0+ZXJyb3IgIT0gMCkpIHJldHVybihOVUxMKTsKKyAgICB4bWxGQUVsaW1pbmF0ZUVwc2lsb25UcmFuc2l0aW9ucyhhbSk7CisgICAgLyogeG1sRkFDb21wdXRlc0RldGVybWluaXNtKGFtKTsgKi8KKyAgICByZXQgPSB4bWxSZWdFcHhGcm9tUGFyc2UoYW0pOworCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sQXV0b21hdGFJc0RldGVybWluaXN0OgorICogQGFtOiBhbiBhdXRvbWF0YQorICoKKyAqIENoZWNrcyBpZiBhbiBhdXRvbWF0YSBpcyBkZXRlcm1pbmlzdC4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSwgMCBpZiBub3QsIGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludCAgICAgICAgICAKK3htbEF1dG9tYXRhSXNEZXRlcm1pbmlzdCh4bWxBdXRvbWF0YVB0ciBhbSkgeworICAgIGludCByZXQ7CisKKyAgICBpZiAoYW0gPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgcmV0ID0geG1sRkFDb21wdXRlc0RldGVybWluaXNtKGFtKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKyNlbmRpZiAvKiBMSUJYTUxfQVVUT01BVEFfRU5BQkxFRCAqLworCisjaWZkZWYgTElCWE1MX0VYUFJfRU5BQkxFRAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJRm9ybWFsIEV4cHJlc3Npb24gaGFuZGxpbmcgY29kZQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlFeHByZXNzaW9uIGhhbmRsaW5nIGNvbnRleHQJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdHJ1Y3QgX3htbEV4cEN0eHQgeworICAgIHhtbERpY3RQdHIgZGljdDsKKyAgICB4bWxFeHBOb2RlUHRyICp0YWJsZTsKKyAgICBpbnQgc2l6ZTsKKyAgICBpbnQgbmJFbGVtczsKKyAgICBpbnQgbmJfbm9kZXM7CisgICAgaW50IG1heE5vZGVzOworICAgIGNvbnN0IGNoYXIgKmV4cHI7CisgICAgY29uc3QgY2hhciAqY3VyOworICAgIGludCBuYl9jb25zOworICAgIGludCB0YWJTaXplOworfTsKKworLyoqCisgKiB4bWxFeHBOZXdDdHh0OgorICogQG1heE5vZGVzOiAgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5vZGVzCisgKiBAZGljdDogIG9wdGlvbmFsIGRpY3Rpb25uYXJ5IHRvIHVzZSBpbnRlcm5hbGx5CisgKgorICogQ3JlYXRlcyBhIG5ldyBjb250ZXh0IGZvciBtYW5pcHVsYXRpbmcgZXhwcmVzc2lvbnMKKyAqCisgKiBSZXR1cm5zIHRoZSBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxFeHBDdHh0UHRyCit4bWxFeHBOZXdDdHh0KGludCBtYXhOb2RlcywgeG1sRGljdFB0ciBkaWN0KSB7CisgICAgeG1sRXhwQ3R4dFB0ciByZXQ7CisgICAgaW50IHNpemUgPSAyNTY7CisKKyAgICBpZiAobWF4Tm9kZXMgPD0gNDA5NikKKyAgICAgICAgbWF4Tm9kZXMgPSA0MDk2OworICAgIAorICAgIHJldCA9ICh4bWxFeHBDdHh0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEV4cEN0eHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sRXhwQ3R4dCkpOworICAgIHJldC0+c2l6ZSA9IHNpemU7CisgICAgcmV0LT5uYkVsZW1zID0gMDsKKyAgICByZXQtPm1heE5vZGVzID0gbWF4Tm9kZXM7CisgICAgcmV0LT50YWJsZSA9IHhtbE1hbGxvYyhzaXplICogc2l6ZW9mKHhtbEV4cE5vZGVQdHIpKTsKKyAgICBpZiAocmV0LT50YWJsZSA9PSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWUocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQtPnRhYmxlLCAwLCBzaXplICogc2l6ZW9mKHhtbEV4cE5vZGVQdHIpKTsKKyAgICBpZiAoZGljdCA9PSBOVUxMKSB7CisgICAgICAgIHJldC0+ZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKwlpZiAocmV0LT5kaWN0ID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZShyZXQtPnRhYmxlKTsKKwkgICAgeG1sRnJlZShyZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJldC0+ZGljdCA9IGRpY3Q7CisJeG1sRGljdFJlZmVyZW5jZShyZXQtPmRpY3QpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxFeHBGcmVlQ3R4dDoKKyAqIEBjdHh0OiAgYW4gZXhwcmVzc2lvbiBjb250ZXh0CisgKgorICogRnJlZSBhbiBleHByZXNzaW9uIGNvbnRleHQKKyAqLwordm9pZAoreG1sRXhwRnJlZUN0eHQoeG1sRXhwQ3R4dFB0ciBjdHh0KSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIHhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworICAgIGlmIChjdHh0LT50YWJsZSAhPSBOVUxMKQorCXhtbEZyZWUoY3R4dC0+dGFibGUpOworICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVN0cnVjdHVyZSBhc3NvY2lhdGVkIHRvIGFuIGV4cHJlc3Npb24gbm9kZQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNQVhfTk9ERVMgMTAwMDAKKworLyogI2RlZmluZSBERUJVR19ERVJJViAqLworCisvKgorICogVE9ETzogCisgKiAtIFdpbGRjYXJkcworICogLSBwdWJsaWMgQVBJIGZvciBjcmVhdGlvbgorICoKKyAqIFN0YXJ0ZWQKKyAqIC0gcmVncmVzc2lvbiB0ZXN0aW5nCisgKgorICogRG9uZQorICogLSBzcGxpdCBpbnRvIG1vZHVsZSBhbmQgdGVzdCB0b29sCisgKiAtIG1lbWxlYWtzCisgKi8KKwordHlwZWRlZiBlbnVtIHsKKyAgICBYTUxfRVhQX05JTEFCTEUgPSAoMSA8PCAwKQorfSB4bWxFeHBOb2RlSW5mbzsKKworI2RlZmluZSBJU19OSUxMQUJMRShub2RlKSAoKG5vZGUpLT5pbmZvICYgWE1MX0VYUF9OSUxBQkxFKQorCitzdHJ1Y3QgX3htbEV4cE5vZGUgeworICAgIHVuc2lnbmVkIGNoYXIgdHlwZTsvKiB4bWxFeHBOb2RlVHlwZSAqLworICAgIHVuc2lnbmVkIGNoYXIgaW5mbzsvKiBPUiBvZiB4bWxFeHBOb2RlSW5mbyAqLworICAgIHVuc2lnbmVkIHNob3J0IGtleTsJLyogdGhlIGhhc2gga2V5ICovCisgICAgdW5zaWduZWQgaW50IHJlZjsJLyogVGhlIG51bWJlciBvZiByZWZlcmVuY2VzICovCisgICAgaW50IGNfbWF4OwkJLyogdGhlIG1heGltdW0gbGVuZ3RoIGl0IGNhbiBjb25zdW1lICovCisgICAgeG1sRXhwTm9kZVB0ciBleHBfbGVmdDsKKyAgICB4bWxFeHBOb2RlUHRyIG5leHQ7LyogdGhlIG5leHQgbm9kZSBpbiB0aGUgaGFzaCB0YWJsZSBvciBmcmVlIGxpc3QgKi8KKyAgICB1bmlvbiB7CisJc3RydWN0IHsKKwkgICAgaW50IGZfbWluOworCSAgICBpbnQgZl9tYXg7CisJfSBjb3VudDsKKwlzdHJ1Y3QgeworCSAgICB4bWxFeHBOb2RlUHRyIGZfcmlnaHQ7CisJfSBjaGlsZHJlbjsKKyAgICAgICAgY29uc3QgeG1sQ2hhciAqZl9zdHI7CisgICAgfSBmaWVsZDsKK307CisKKyNkZWZpbmUgZXhwX21pbiBmaWVsZC5jb3VudC5mX21pbgorI2RlZmluZSBleHBfbWF4IGZpZWxkLmNvdW50LmZfbWF4CisvKiAjZGVmaW5lIGV4cF9sZWZ0IGZpZWxkLmNoaWxkcmVuLmZfbGVmdCAqLworI2RlZmluZSBleHBfcmlnaHQgZmllbGQuY2hpbGRyZW4uZl9yaWdodAorI2RlZmluZSBleHBfc3RyIGZpZWxkLmZfc3RyCisKK3N0YXRpYyB4bWxFeHBOb2RlUHRyIHhtbEV4cE5ld05vZGUoeG1sRXhwQ3R4dFB0ciBjdHh0LCB4bWxFeHBOb2RlVHlwZSB0eXBlKTsKK3N0YXRpYyB4bWxFeHBOb2RlIGZvcmJpZGRlbkV4cE5vZGUgPSB7CisgICAgWE1MX0VYUF9GT1JCSUQsIDAsIDAsIDAsIDAsIE5VTEwsIE5VTEwsIHt7IDAsIDB9fQorfTsKK3htbEV4cE5vZGVQdHIgZm9yYmlkZGVuRXhwID0gJmZvcmJpZGRlbkV4cE5vZGU7CitzdGF0aWMgeG1sRXhwTm9kZSBlbXB0eUV4cE5vZGUgPSB7CisgICAgWE1MX0VYUF9FTVBUWSwgMSwgMCwgMCwgMCwgTlVMTCwgTlVMTCwge3sgMCwgMH19Cit9OworeG1sRXhwTm9kZVB0ciBlbXB0eUV4cCA9ICZlbXB0eUV4cE5vZGU7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogIFRoZSBjdXN0b20gaGFzaCB0YWJsZSBmb3IgdW5pY2l0eSBhbmQgY2Fub25pY2FsaXphdGlvbgkJKgorICogIG9mIHN1Yi1leHByZXNzaW9ucyBwb2ludGVycwkJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiB4bWxFeHBIYXNoTmFtZUNvbXB1dGVLZXk6CisgKiBDYWxjdWxhdGUgdGhlIGhhc2gga2V5IGZvciBhIHRva2VuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBzaG9ydAoreG1sRXhwSGFzaE5hbWVDb21wdXRlS2V5KGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICB1bnNpZ25lZCBzaG9ydCB2YWx1ZSA9IDBMOworICAgIGNoYXIgY2g7CisgICAgCisgICAgaWYgKG5hbWUgIT0gTlVMTCkgeworCXZhbHVlICs9IDMwICogKCpuYW1lKTsKKwl3aGlsZSAoKGNoID0gKm5hbWUrKykgIT0gMCkgeworCSAgICB2YWx1ZSA9IHZhbHVlIF4gKCh2YWx1ZSA8PCA1KSArICh2YWx1ZSA+PiAzKSArICh1bnNpZ25lZCBsb25nKWNoKTsKKwl9CisgICAgfQorICAgIHJldHVybiAodmFsdWUpOworfQorCisvKgorICogeG1sRXhwSGFzaENvbXB1dGVLZXk6CisgKiBDYWxjdWxhdGUgdGhlIGhhc2gga2V5IGZvciBhIGNvbXBvdW5kIGV4cHJlc3Npb24KKyAqLworc3RhdGljIHVuc2lnbmVkIHNob3J0Cit4bWxFeHBIYXNoQ29tcHV0ZUtleSh4bWxFeHBOb2RlVHlwZSB0eXBlLCB4bWxFeHBOb2RlUHRyIGxlZnQsCisgICAgICAgICAgICAgICAgICAgICB4bWxFeHBOb2RlUHRyIHJpZ2h0KSB7CisgICAgdW5zaWduZWQgbG9uZyB2YWx1ZTsKKyAgICB1bnNpZ25lZCBzaG9ydCByZXQ7CisgICAgCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VYUF9TRVE6CisJICAgIHZhbHVlID0gbGVmdC0+a2V5OworCSAgICB2YWx1ZSArPSByaWdodC0+a2V5OworCSAgICB2YWx1ZSAqPSAzOworCSAgICByZXQgPSAodW5zaWduZWQgc2hvcnQpIHZhbHVlOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVhQX09SOgorCSAgICB2YWx1ZSA9IGxlZnQtPmtleTsKKwkgICAgdmFsdWUgKz0gcmlnaHQtPmtleTsKKwkgICAgdmFsdWUgKj0gNzsKKwkgICAgcmV0ID0gKHVuc2lnbmVkIHNob3J0KSB2YWx1ZTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX0VYUF9DT1VOVDoKKwkgICAgdmFsdWUgPSBsZWZ0LT5rZXk7CisJICAgIHZhbHVlICs9IHJpZ2h0LT5rZXk7CisJICAgIHJldCA9ICh1bnNpZ25lZCBzaG9ydCkgdmFsdWU7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHJldCA9IDA7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisKK3N0YXRpYyB4bWxFeHBOb2RlUHRyCit4bWxFeHBOZXdOb2RlKHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVR5cGUgdHlwZSkgeworICAgIHhtbEV4cE5vZGVQdHIgcmV0OworCisgICAgaWYgKGN0eHQtPm5iX25vZGVzID49IE1BWF9OT0RFUykKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIHJldCA9ICh4bWxFeHBOb2RlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbEV4cE5vZGUpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sRXhwTm9kZSkpOworICAgIHJldC0+dHlwZSA9IHR5cGU7CisgICAgcmV0LT5uZXh0ID0gTlVMTDsKKyAgICBjdHh0LT5uYl9ub2RlcysrOworICAgIGN0eHQtPm5iX2NvbnMrKzsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxFeHBIYXNoR2V0RW50cnk6CisgKiBAdGFibGU6IHRoZSBoYXNoIHRhYmxlCisgKgorICogR2V0IHRoZSB1bmlxdWUgZW50cnkgZnJvbSB0aGUgaGFzaCB0YWJsZS4gVGhlIGVudHJ5IGlzIGNyZWF0ZWQgaWYKKyAqIG5lZWRlZC4gQGxlZnQgYW5kIEByaWdodCBhcmUgY29uc3VtZWQsIGkuZS4gdGhlaXIgcmVmIGNvdW50IHdpbGwKKyAqIGJlIGRlY3JlbWVudGVkIGJ5IHRoZSBvcGVyYXRpb24uCisgKgorICogUmV0dXJucyB0aGUgcG9pbnRlciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbEV4cE5vZGVQdHIKK3htbEV4cEhhc2hHZXRFbnRyeSh4bWxFeHBDdHh0UHRyIGN0eHQsIHhtbEV4cE5vZGVUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgeG1sRXhwTm9kZVB0ciBsZWZ0LCB4bWxFeHBOb2RlUHRyIHJpZ2h0LAorCQkgICBjb25zdCB4bWxDaGFyICpuYW1lLCBpbnQgbWluLCBpbnQgbWF4KSB7CisgICAgdW5zaWduZWQgc2hvcnQga2Jhc2UsIGtleTsKKyAgICB4bWxFeHBOb2RlUHRyIGVudHJ5OworICAgIHhtbEV4cE5vZGVQdHIgaW5zZXJ0OworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGluc2VydGlvbiBsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBpZiAodHlwZSA9PSBYTUxfRVhQX0FUT00pIHsKKwlrYmFzZSA9IHhtbEV4cEhhc2hOYW1lQ29tcHV0ZUtleShuYW1lKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gWE1MX0VYUF9DT1VOVCkgeworICAgICAgICAvKiBDT1VOVCByZWR1Y3Rpb24gcnVsZSAxICovCisJLyogYXsxfSAtPiBhICovCisJaWYgKG1pbiA9PSBtYXgpIHsKKwkgICAgaWYgKG1pbiA9PSAxKSB7CisJCXJldHVybihsZWZ0KTsKKwkgICAgfQorCSAgICBpZiAobWluID09IDApIHsKKwkJeG1sRXhwRnJlZShjdHh0LCBsZWZ0KTsKKwkgICAgICAgIHJldHVybihlbXB0eUV4cCk7CisJICAgIH0KKwl9CisJaWYgKG1pbiA8IDApIHsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCBsZWZ0KTsKKwkgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisJfQorICAgICAgICBpZiAobWF4ID09IC0xKQorCSAgICBrYmFzZSA9IG1pbiArIDc5OworCWVsc2UKKwkgICAga2Jhc2UgPSBtYXggLSBtaW47CisJa2Jhc2UgKz0gbGVmdC0+a2V5OworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBYTUxfRVhQX09SKSB7CisgICAgICAgIC8qIEZvcmJpZCByZWR1Y3Rpb24gcnVsZXMgKi8KKyAgICAgICAgaWYgKGxlZnQtPnR5cGUgPT0gWE1MX0VYUF9GT1JCSUQpIHsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCBsZWZ0KTsKKwkgICAgcmV0dXJuKHJpZ2h0KTsKKwl9CisgICAgICAgIGlmIChyaWdodC0+dHlwZSA9PSBYTUxfRVhQX0ZPUkJJRCkgeworCSAgICB4bWxFeHBGcmVlKGN0eHQsIHJpZ2h0KTsKKwkgICAgcmV0dXJuKGxlZnQpOworCX0KKworICAgICAgICAvKiBPUiByZWR1Y3Rpb24gcnVsZSAxICovCisJLyogYSB8IGEgcmVkdWNlZCB0byBhICovCisgICAgICAgIGlmIChsZWZ0ID09IHJpZ2h0KSB7CisJICAgIGxlZnQtPnJlZi0tOworCSAgICByZXR1cm4obGVmdCk7CisJfQorICAgICAgICAvKiBPUiBjYW5vbmljYWxpemF0aW9uIHJ1bGUgMSAqLworCS8qIGxpbmVhcml6ZSAoYSB8IGIpIHwgYyBpbnRvIGEgfCAoYiB8IGMpICovCisgICAgICAgIGlmICgobGVmdC0+dHlwZSA9PSBYTUxfRVhQX09SKSAmJiAocmlnaHQtPnR5cGUgIT0gWE1MX0VYUF9PUikpIHsKKwkgICAgeG1sRXhwTm9kZVB0ciB0bXAgPSBsZWZ0OworICAgICAgICAgICAgbGVmdCA9IHJpZ2h0OworCSAgICByaWdodCA9IHRtcDsKKwl9CisgICAgICAgIC8qIE9SIHJlZHVjdGlvbiBydWxlIDIgKi8KKwkvKiBhIHwgKGEgfCBiKSBhbmQgYiB8IChhIHwgYikgYXJlIHJlZHVjZWQgdG8gYSB8IGIgKi8KKyAgICAgICAgaWYgKHJpZ2h0LT50eXBlID09IFhNTF9FWFBfT1IpIHsKKwkgICAgaWYgKChsZWZ0ID09IHJpZ2h0LT5leHBfbGVmdCkgfHwKKwkgICAgICAgIChsZWZ0ID09IHJpZ2h0LT5leHBfcmlnaHQpKSB7CisJCXhtbEV4cEZyZWUoY3R4dCwgbGVmdCk7CisJCXJldHVybihyaWdodCk7CisJICAgIH0KKwl9CisgICAgICAgIC8qIE9SIGNhbm9uaWNhbGl6YXRpb24gcnVsZSAyICovCisJLyogbGluZWFyaXplIChhIHwgYikgfCBjIGludG8gYSB8IChiIHwgYykgKi8KKyAgICAgICAgaWYgKGxlZnQtPnR5cGUgPT0gWE1MX0VYUF9PUikgeworCSAgICB4bWxFeHBOb2RlUHRyIHRtcDsKKworCSAgICAvKiBPUiBjYW5vbmljYWxpemF0aW9uIHJ1bGUgMiAqLworCSAgICBpZiAoKGxlZnQtPmV4cF9yaWdodC0+dHlwZSAhPSBYTUxfRVhQX09SKSAmJgorCSAgICAgICAgKGxlZnQtPmV4cF9yaWdodC0+a2V5IDwgbGVmdC0+ZXhwX2xlZnQtPmtleSkpIHsKKwkgICAgICAgIHRtcCA9IGxlZnQtPmV4cF9yaWdodDsKKwkJbGVmdC0+ZXhwX3JpZ2h0ID0gbGVmdC0+ZXhwX2xlZnQ7CisJCWxlZnQtPmV4cF9sZWZ0ID0gdG1wOworCSAgICB9CisJICAgIGxlZnQtPmV4cF9yaWdodC0+cmVmKys7CisJICAgIHRtcCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX09SLCBsZWZ0LT5leHBfcmlnaHQsIHJpZ2h0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgMCk7CisJICAgIGxlZnQtPmV4cF9sZWZ0LT5yZWYrKzsKKwkgICAgdG1wID0geG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfT1IsIGxlZnQtPmV4cF9sZWZ0LCB0bXAsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCAwKTsKKwkKKwkgICAgeG1sRXhwRnJlZShjdHh0LCBsZWZ0KTsKKwkgICAgcmV0dXJuKHRtcCk7CisJfQorCWlmIChyaWdodC0+dHlwZSA9PSBYTUxfRVhQX09SKSB7CisJICAgIC8qIE9yZGVyaW5nIGluIHRoZSB0cmVlICovCisJICAgIC8qIEMgfCAoQSB8IEIpIC0+IEEgfCAoQiB8IEMpICovCisJICAgIGlmIChsZWZ0LT5rZXkgPiByaWdodC0+ZXhwX3JpZ2h0LT5rZXkpIHsKKwkJeG1sRXhwTm9kZVB0ciB0bXA7CisJCXJpZ2h0LT5leHBfcmlnaHQtPnJlZisrOworCQl0bXAgPSB4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9PUiwgcmlnaHQtPmV4cF9yaWdodCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsIE5VTEwsIDAsIDApOworCQlyaWdodC0+ZXhwX2xlZnQtPnJlZisrOworCQl0bXAgPSB4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9PUiwgcmlnaHQtPmV4cF9sZWZ0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLCBOVUxMLCAwLCAwKTsKKwkJeG1sRXhwRnJlZShjdHh0LCByaWdodCk7CisJCXJldHVybih0bXApOworCSAgICB9CisJICAgIC8qIE9yZGVyaW5nIGluIHRoZSB0cmVlICovCisJICAgIC8qIEIgfCAoQSB8IEMpIC0+IEEgfCAoQiB8IEMpICovCisJICAgIGlmIChsZWZ0LT5rZXkgPiByaWdodC0+ZXhwX2xlZnQtPmtleSkgeworCQl4bWxFeHBOb2RlUHRyIHRtcDsKKwkJcmlnaHQtPmV4cF9yaWdodC0+cmVmKys7CisJCXRtcCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX09SLCBsZWZ0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQtPmV4cF9yaWdodCwgTlVMTCwgMCwgMCk7CisJCXJpZ2h0LT5leHBfbGVmdC0+cmVmKys7CisJCXRtcCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX09SLCByaWdodC0+ZXhwX2xlZnQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICB0bXAsIE5VTEwsIDAsIDApOworCQl4bWxFeHBGcmVlKGN0eHQsIHJpZ2h0KTsKKwkJcmV0dXJuKHRtcCk7CisJICAgIH0KKwl9CisJLyogd2Uga25vdyBib3RoIHR5cGVzIGFyZSAhPSBYTUxfRVhQX09SIGhlcmUgKi8KKyAgICAgICAgZWxzZSBpZiAobGVmdC0+a2V5ID4gcmlnaHQtPmtleSkgeworCSAgICB4bWxFeHBOb2RlUHRyIHRtcCA9IGxlZnQ7CisgICAgICAgICAgICBsZWZ0ID0gcmlnaHQ7CisJICAgIHJpZ2h0ID0gdG1wOworCX0KKwlrYmFzZSA9IHhtbEV4cEhhc2hDb21wdXRlS2V5KHR5cGUsIGxlZnQsIHJpZ2h0KTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gWE1MX0VYUF9TRVEpIHsKKyAgICAgICAgLyogRm9yYmlkIHJlZHVjdGlvbiBydWxlcyAqLworICAgICAgICBpZiAobGVmdC0+dHlwZSA9PSBYTUxfRVhQX0ZPUkJJRCkgeworCSAgICB4bWxFeHBGcmVlKGN0eHQsIHJpZ2h0KTsKKwkgICAgcmV0dXJuKGxlZnQpOworCX0KKyAgICAgICAgaWYgKHJpZ2h0LT50eXBlID09IFhNTF9FWFBfRk9SQklEKSB7CisJICAgIHhtbEV4cEZyZWUoY3R4dCwgbGVmdCk7CisJICAgIHJldHVybihyaWdodCk7CisJfQorICAgICAgICAvKiBFbXB0eSByZWR1Y3Rpb24gcnVsZXMgKi8KKyAgICAgICAgaWYgKHJpZ2h0LT50eXBlID09IFhNTF9FWFBfRU1QVFkpIHsKKwkgICAgcmV0dXJuKGxlZnQpOworCX0KKyAgICAgICAgaWYgKGxlZnQtPnR5cGUgPT0gWE1MX0VYUF9FTVBUWSkgeworCSAgICByZXR1cm4ocmlnaHQpOworCX0KKwlrYmFzZSA9IHhtbEV4cEhhc2hDb21wdXRlS2V5KHR5cGUsIGxlZnQsIHJpZ2h0KTsKKyAgICB9IGVsc2UgCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIGtleSA9IGtiYXNlICUgY3R4dC0+c2l6ZTsKKyAgICBpZiAoY3R4dC0+dGFibGVba2V5XSAhPSBOVUxMKSB7CisJZm9yIChpbnNlcnQgPSBjdHh0LT50YWJsZVtrZXldOyBpbnNlcnQgIT0gTlVMTDsKKwkgICAgIGluc2VydCA9IGluc2VydC0+bmV4dCkgeworCSAgICBpZiAoKGluc2VydC0+a2V5ID09IGtiYXNlKSAmJgorCSAgICAgICAgKGluc2VydC0+dHlwZSA9PSB0eXBlKSkgeworCQlpZiAodHlwZSA9PSBYTUxfRVhQX0FUT00pIHsKKwkJICAgIGlmIChuYW1lID09IGluc2VydC0+ZXhwX3N0cikgeworCQkJaW5zZXJ0LT5yZWYrKzsKKwkJCXJldHVybihpbnNlcnQpOworCQkgICAgfQorCQl9IGVsc2UgaWYgKHR5cGUgPT0gWE1MX0VYUF9DT1VOVCkgeworCQkgICAgaWYgKChpbnNlcnQtPmV4cF9taW4gPT0gbWluKSAmJiAoaW5zZXJ0LT5leHBfbWF4ID09IG1heCkgJiYKKwkJICAgICAgICAoaW5zZXJ0LT5leHBfbGVmdCA9PSBsZWZ0KSkgeworCQkJaW5zZXJ0LT5yZWYrKzsKKwkJCWxlZnQtPnJlZi0tOworCQkJcmV0dXJuKGluc2VydCk7CisJCSAgICB9CisJCX0gZWxzZSBpZiAoKGluc2VydC0+ZXhwX2xlZnQgPT0gbGVmdCkgJiYKKwkJCSAgIChpbnNlcnQtPmV4cF9yaWdodCA9PSByaWdodCkpIHsKKwkJICAgIGluc2VydC0+cmVmKys7CisJCSAgICBsZWZ0LT5yZWYtLTsKKwkJICAgIHJpZ2h0LT5yZWYtLTsKKwkJICAgIHJldHVybihpbnNlcnQpOworCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgICAgZW50cnkgPSB4bWxFeHBOZXdOb2RlKGN0eHQsIHR5cGUpOworICAgIGlmIChlbnRyeSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgZW50cnktPmtleSA9IGtiYXNlOworICAgIGlmICh0eXBlID09IFhNTF9FWFBfQVRPTSkgeworCWVudHJ5LT5leHBfc3RyID0gbmFtZTsKKwllbnRyeS0+Y19tYXggPSAxOworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBYTUxfRVhQX0NPVU5UKSB7CisgICAgICAgIGVudHJ5LT5leHBfbWluID0gbWluOworICAgICAgICBlbnRyeS0+ZXhwX21heCA9IG1heDsKKwllbnRyeS0+ZXhwX2xlZnQgPSBsZWZ0OworCWlmICgobWluID09IDApIHx8IChJU19OSUxMQUJMRShsZWZ0KSkpCisJICAgIGVudHJ5LT5pbmZvIHw9IFhNTF9FWFBfTklMQUJMRTsKKwlpZiAobWF4IDwgMCkKKwkgICAgZW50cnktPmNfbWF4ID0gLTE7CisJZWxzZQorCSAgICBlbnRyeS0+Y19tYXggPSBtYXggKiBlbnRyeS0+ZXhwX2xlZnQtPmNfbWF4OworICAgIH0gZWxzZSB7CisJZW50cnktPmV4cF9sZWZ0ID0gbGVmdDsKKwllbnRyeS0+ZXhwX3JpZ2h0ID0gcmlnaHQ7CisJaWYgKHR5cGUgPT0gWE1MX0VYUF9PUikgeworCSAgICBpZiAoKElTX05JTExBQkxFKGxlZnQpKSB8fCAoSVNfTklMTEFCTEUocmlnaHQpKSkKKwkJZW50cnktPmluZm8gfD0gWE1MX0VYUF9OSUxBQkxFOworCSAgICBpZiAoKGVudHJ5LT5leHBfbGVmdC0+Y19tYXggPT0gLTEpIHx8CisJICAgICAgICAoZW50cnktPmV4cF9yaWdodC0+Y19tYXggPT0gLTEpKQorCQllbnRyeS0+Y19tYXggPSAtMTsKKwkgICAgZWxzZSBpZiAoZW50cnktPmV4cF9sZWZ0LT5jX21heCA+IGVudHJ5LT5leHBfcmlnaHQtPmNfbWF4KQorCSAgICAgICAgZW50cnktPmNfbWF4ID0gZW50cnktPmV4cF9sZWZ0LT5jX21heDsKKwkgICAgZWxzZQorCSAgICAgICAgZW50cnktPmNfbWF4ID0gZW50cnktPmV4cF9yaWdodC0+Y19tYXg7CisJfSBlbHNlIHsKKwkgICAgaWYgKChJU19OSUxMQUJMRShsZWZ0KSkgJiYgKElTX05JTExBQkxFKHJpZ2h0KSkpCisJCWVudHJ5LT5pbmZvIHw9IFhNTF9FWFBfTklMQUJMRTsKKwkgICAgaWYgKChlbnRyeS0+ZXhwX2xlZnQtPmNfbWF4ID09IC0xKSB8fAorCSAgICAgICAgKGVudHJ5LT5leHBfcmlnaHQtPmNfbWF4ID09IC0xKSkKKwkJZW50cnktPmNfbWF4ID0gLTE7CisJICAgIGVsc2UKKwkgICAgICAgIGVudHJ5LT5jX21heCA9IGVudHJ5LT5leHBfbGVmdC0+Y19tYXggKyBlbnRyeS0+ZXhwX3JpZ2h0LT5jX21heDsKKwl9CisgICAgfQorICAgIGVudHJ5LT5yZWYgPSAxOworICAgIGlmIChjdHh0LT50YWJsZVtrZXldICE9IE5VTEwpCisgICAgICAgIGVudHJ5LT5uZXh0ID0gY3R4dC0+dGFibGVba2V5XTsKKworICAgIGN0eHQtPnRhYmxlW2tleV0gPSBlbnRyeTsKKyAgICBjdHh0LT5uYkVsZW1zKys7CisKKyAgICByZXR1cm4oZW50cnkpOworfQorCisvKioKKyAqIHhtbEV4cEZyZWU6CisgKiBAY3R4dDogdGhlIGV4cHJlc3Npb24gY29udGV4dAorICogQGV4cDogdGhlIGV4cHJlc3Npb24KKyAqCisgKiBEZXJlZmVyZW5jZSB0aGUgZXhwcmVzc2lvbgorICovCit2b2lkCit4bWxFeHBGcmVlKHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHApIHsKKyAgICBpZiAoKGV4cCA9PSBOVUxMKSB8fCAoZXhwID09IGZvcmJpZGRlbkV4cCkgfHwgKGV4cCA9PSBlbXB0eUV4cCkpCisgICAgICAgIHJldHVybjsKKyAgICBleHAtPnJlZi0tOworICAgIGlmIChleHAtPnJlZiA9PSAwKSB7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IGtleTsKKworICAgICAgICAvKiBVbmxpbmsgaXQgZmlyc3QgZnJvbSB0aGUgaGFzaCB0YWJsZSAqLworCWtleSA9IGV4cC0+a2V5ICUgY3R4dC0+c2l6ZTsKKwlpZiAoY3R4dC0+dGFibGVba2V5XSA9PSBleHApIHsKKwkgICAgY3R4dC0+dGFibGVba2V5XSA9IGV4cC0+bmV4dDsKKwl9IGVsc2UgeworCSAgICB4bWxFeHBOb2RlUHRyIHRtcDsKKworCSAgICB0bXAgPSBjdHh0LT50YWJsZVtrZXldOworCSAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKwkgICAgICAgIGlmICh0bXAtPm5leHQgPT0gZXhwKSB7CisJCSAgICB0bXAtPm5leHQgPSBleHAtPm5leHQ7CisJCSAgICBicmVhazsKKwkJfQorCSAgICAgICAgdG1wID0gdG1wLT5uZXh0OworCSAgICB9CisJfQorCisgICAgICAgIGlmICgoZXhwLT50eXBlID09IFhNTF9FWFBfU0VRKSB8fCAoZXhwLT50eXBlID09IFhNTF9FWFBfT1IpKSB7CisJICAgIHhtbEV4cEZyZWUoY3R4dCwgZXhwLT5leHBfbGVmdCk7CisJICAgIHhtbEV4cEZyZWUoY3R4dCwgZXhwLT5leHBfcmlnaHQpOworCX0gZWxzZSBpZiAoZXhwLT50eXBlID09IFhNTF9FWFBfQ09VTlQpIHsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCBleHAtPmV4cF9sZWZ0KTsKKwl9CisgICAgICAgIHhtbEZyZWUoZXhwKTsKKwljdHh0LT5uYl9ub2Rlcy0tOworICAgIH0KK30KKworLyoqCisgKiB4bWxFeHBSZWY6CisgKiBAZXhwOiB0aGUgZXhwcmVzc2lvbgorICoKKyAqIEluY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGV4cHJlc3Npb24KKyAqLwordm9pZAoreG1sRXhwUmVmKHhtbEV4cE5vZGVQdHIgZXhwKSB7CisgICAgaWYgKGV4cCAhPSBOVUxMKQorICAgICAgICBleHAtPnJlZisrOworfQorCisvKioKKyAqIHhtbEV4cE5ld0F0b206CisgKiBAY3R4dDogdGhlIGV4cHJlc3Npb24gY29udGV4dAorICogQG5hbWU6IHRoZSBhdG9tIG5hbWUKKyAqIEBsZW46IHRoZSBhdG9tIG5hbWUgbGVuZ2h0IGluIGJ5dGUgKG9yIC0xKTsKKyAqCisgKiBHZXQgdGhlIGF0b20gYXNzb2NpYXRlZCB0byB0aGlzIG5hbWUgZnJvbSB0aGF0IGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSBub2RlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxFeHBOb2RlUHRyCit4bWxFeHBOZXdBdG9tKHhtbEV4cEN0eHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqbmFtZSwgaW50IGxlbikgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAobmFtZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIG5hbWUgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIG5hbWUsIGxlbik7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIHJldHVybih4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9BVE9NLCBOVUxMLCBOVUxMLCBuYW1lLCAwLCAwKSk7Cit9CisKKy8qKgorICogeG1sRXhwTmV3T3I6CisgKiBAY3R4dDogdGhlIGV4cHJlc3Npb24gY29udGV4dAorICogQGxlZnQ6IGxlZnQgZXhwcmVzc2lvbgorICogQHJpZ2h0OiByaWdodCBleHByZXNzaW9uCisgKgorICogR2V0IHRoZSBhdG9tIGFzc29jaWF0ZWQgdG8gdGhlIGNob2ljZSBAbGVmdCB8IEByaWdodAorICogTm90ZSB0aGF0IEBsZWZ0IGFuZCBAcmlnaHQgYXJlIGNvbnN1bWVkIGluIHRoZSBvcGVyYXRpb24sIHRvIGtlZXAKKyAqIGFuIGhhbmRsZSBvbiB0aGVtIHVzZSB4bWxFeHBSZWYoKSBhbmQgdXNlIHhtbEV4cEZyZWUoKSB0byByZWxlYXNlIHRoZW0sCisgKiB0aGlzIGlzIHRydWUgZXZlbiBpbiBjYXNlIG9mIGZhaWx1cmUgKHVubGVzcyBjdHh0ID09IE5VTEwpLgorICoKKyAqIFJldHVybnMgdGhlIG5vZGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbEV4cE5vZGVQdHIKK3htbEV4cE5ld09yKHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBsZWZ0LCB4bWxFeHBOb2RlUHRyIHJpZ2h0KSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGlmICgobGVmdCA9PSBOVUxMKSB8fCAocmlnaHQgPT0gTlVMTCkpIHsKKyAgICAgICAgeG1sRXhwRnJlZShjdHh0LCBsZWZ0KTsKKyAgICAgICAgeG1sRXhwRnJlZShjdHh0LCByaWdodCk7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX09SLCBsZWZ0LCByaWdodCwgTlVMTCwgMCwgMCkpOworfQorCisvKioKKyAqIHhtbEV4cE5ld1NlcToKKyAqIEBjdHh0OiB0aGUgZXhwcmVzc2lvbiBjb250ZXh0CisgKiBAbGVmdDogbGVmdCBleHByZXNzaW9uCisgKiBAcmlnaHQ6IHJpZ2h0IGV4cHJlc3Npb24KKyAqCisgKiBHZXQgdGhlIGF0b20gYXNzb2NpYXRlZCB0byB0aGUgc2VxdWVuY2UgQGxlZnQgLCBAcmlnaHQKKyAqIE5vdGUgdGhhdCBAbGVmdCBhbmQgQHJpZ2h0IGFyZSBjb25zdW1lZCBpbiB0aGUgb3BlcmF0aW9uLCB0byBrZWVwCisgKiBhbiBoYW5kbGUgb24gdGhlbSB1c2UgeG1sRXhwUmVmKCkgYW5kIHVzZSB4bWxFeHBGcmVlKCkgdG8gcmVsZWFzZSB0aGVtLAorICogdGhpcyBpcyB0cnVlIGV2ZW4gaW4gY2FzZSBvZiBmYWlsdXJlICh1bmxlc3MgY3R4dCA9PSBOVUxMKS4KKyAqCisgKiBSZXR1cm5zIHRoZSBub2RlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxFeHBOb2RlUHRyCit4bWxFeHBOZXdTZXEoeG1sRXhwQ3R4dFB0ciBjdHh0LCB4bWxFeHBOb2RlUHRyIGxlZnQsIHhtbEV4cE5vZGVQdHIgcmlnaHQpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKChsZWZ0ID09IE5VTEwpIHx8IChyaWdodCA9PSBOVUxMKSkgeworICAgICAgICB4bWxFeHBGcmVlKGN0eHQsIGxlZnQpOworICAgICAgICB4bWxFeHBGcmVlKGN0eHQsIHJpZ2h0KTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4oeG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfU0VRLCBsZWZ0LCByaWdodCwgTlVMTCwgMCwgMCkpOworfQorCisvKioKKyAqIHhtbEV4cE5ld1JhbmdlOgorICogQGN0eHQ6IHRoZSBleHByZXNzaW9uIGNvbnRleHQKKyAqIEBzdWJzZXQ6IHRoZSBleHByZXNzaW9uIHRvIGJlIHJlcGVhdGVkCisgKiBAbWluOiB0aGUgbG93ZXIgYm91bmQgZm9yIHRoZSByZXBldGl0aW9uCisgKiBAbWF4OiB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSByZXBldGl0aW9uLCAtMSBtZWFucyBpbmZpbml0ZQorICoKKyAqIEdldCB0aGUgYXRvbSBhc3NvY2lhdGVkIHRvIHRoZSByYW5nZSAoQHN1YnNldCl7QG1pbiwgQG1heH0KKyAqIE5vdGUgdGhhdCBAc3Vic2V0IGlzIGNvbnN1bWVkIGluIHRoZSBvcGVyYXRpb24sIHRvIGtlZXAKKyAqIGFuIGhhbmRsZSBvbiBpdCB1c2UgeG1sRXhwUmVmKCkgYW5kIHVzZSB4bWxFeHBGcmVlKCkgdG8gcmVsZWFzZSBpdCwKKyAqIHRoaXMgaXMgdHJ1ZSBldmVuIGluIGNhc2Ugb2YgZmFpbHVyZSAodW5sZXNzIGN0eHQgPT0gTlVMTCkuCisgKgorICogUmV0dXJucyB0aGUgbm9kZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sRXhwTm9kZVB0cgoreG1sRXhwTmV3UmFuZ2UoeG1sRXhwQ3R4dFB0ciBjdHh0LCB4bWxFeHBOb2RlUHRyIHN1YnNldCwgaW50IG1pbiwgaW50IG1heCkgeworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoKHN1YnNldCA9PSBOVUxMKSB8fCAobWluIDwgMCkgfHwgKG1heCA8IC0xKSB8fAorICAgICAgICAoKG1heCA+PSAwKSAmJiAobWluID4gbWF4KSkpIHsKKwl4bWxFeHBGcmVlKGN0eHQsIHN1YnNldCk7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX0NPVU5ULCBzdWJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBtaW4sIG1heCkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlQdWJsaWMgQVBJIGZvciBvcGVyYXRpb25zIG9uIGV4cHJlc3Npb25zCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK3htbEV4cEdldExhbmd1YWdlSW50KHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHAsIAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhcioqbGlzdCwgaW50IGxlbiwgaW50IG5iKSB7CisgICAgaW50IHRtcCwgdG1wMjsKK3RhaWw6CisgICAgc3dpdGNoIChleHAtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRVhQX0VNUFRZOgorCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX0VYUF9BVE9NOgorCSAgICBmb3IgKHRtcCA9IDA7dG1wIDwgbmI7dG1wKyspCisJICAgICAgICBpZiAobGlzdFt0bXBdID09IGV4cC0+ZXhwX3N0cikKKwkJICAgIHJldHVybigwKTsKKyAgICAgICAgICAgIGlmIChuYiA+PSBsZW4pCisJICAgICAgICByZXR1cm4oLTIpOworCSAgICBsaXN0W25iXSA9IGV4cC0+ZXhwX3N0cjsKKwkgICAgcmV0dXJuKDEpOworICAgICAgICBjYXNlIFhNTF9FWFBfQ09VTlQ6CisJICAgIGV4cCA9IGV4cC0+ZXhwX2xlZnQ7CisJICAgIGdvdG8gdGFpbDsKKyAgICAgICAgY2FzZSBYTUxfRVhQX1NFUToKKyAgICAgICAgY2FzZSBYTUxfRVhQX09SOgorCSAgICB0bXAgPSB4bWxFeHBHZXRMYW5ndWFnZUludChjdHh0LCBleHAtPmV4cF9sZWZ0LCBsaXN0LCBsZW4sIG5iKTsKKwkgICAgaWYgKHRtcCA8IDApCisJICAgICAgICByZXR1cm4odG1wKTsKKwkgICAgdG1wMiA9IHhtbEV4cEdldExhbmd1YWdlSW50KGN0eHQsIGV4cC0+ZXhwX3JpZ2h0LCBsaXN0LCBsZW4sCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYiArIHRtcCk7CisJICAgIGlmICh0bXAyIDwgMCkKKwkgICAgICAgIHJldHVybih0bXAyKTsKKyAgICAgICAgICAgIHJldHVybih0bXAgKyB0bXAyKTsKKyAgICB9CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiB4bWxFeHBHZXRMYW5ndWFnZToKKyAqIEBjdHh0OiB0aGUgZXhwcmVzc2lvbiBjb250ZXh0CisgKiBAZXhwOiB0aGUgZXhwcmVzc2lvbgorICogQGxhbmdMaXN0OiB3aGVyZSB0byBzdG9yZSB0aGUgdG9rZW5zCisgKiBAbGVuOiB0aGUgYWxsb2NhdGVkIGxlbmdodCBvZiBAbGlzdAorICoKKyAqIEZpbmQgYWxsIHRoZSBzdHJpbmdzIHVzZWQgaW4gQGV4cCBhbmQgc3RvcmUgdGhlbSBpbiBAbGlzdAorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiB1bmlxdWUgc3RyaW5ncyBmb3VuZCwgLTEgaW4gY2FzZSBvZiBlcnJvcnMgYW5kCisgKiAgICAgICAgIC0yIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBAbGVuIHN0cmluZ3MKKyAqLworaW50Cit4bWxFeHBHZXRMYW5ndWFnZSh4bWxFeHBDdHh0UHRyIGN0eHQsIHhtbEV4cE5vZGVQdHIgZXhwLCAKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIqKmxhbmdMaXN0LCBpbnQgbGVuKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChleHAgPT0gTlVMTCkgfHwgKGxhbmdMaXN0ID09IE5VTEwpIHx8IChsZW4gPD0gMCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmV0dXJuKHhtbEV4cEdldExhbmd1YWdlSW50KGN0eHQsIGV4cCwgbGFuZ0xpc3QsIGxlbiwgMCkpOworfQorCitzdGF0aWMgaW50Cit4bWxFeHBHZXRTdGFydEludCh4bWxFeHBDdHh0UHRyIGN0eHQsIHhtbEV4cE5vZGVQdHIgZXhwLCAKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIqKmxpc3QsIGludCBsZW4sIGludCBuYikgeworICAgIGludCB0bXAsIHRtcDI7Cit0YWlsOgorICAgIHN3aXRjaCAoZXhwLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VYUF9GT1JCSUQ6CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYTUxfRVhQX0VNUFRZOgorCSAgICByZXR1cm4oMCk7CisgICAgICAgIGNhc2UgWE1MX0VYUF9BVE9NOgorCSAgICBmb3IgKHRtcCA9IDA7dG1wIDwgbmI7dG1wKyspCisJICAgICAgICBpZiAobGlzdFt0bXBdID09IGV4cC0+ZXhwX3N0cikKKwkJICAgIHJldHVybigwKTsKKyAgICAgICAgICAgIGlmIChuYiA+PSBsZW4pCisJICAgICAgICByZXR1cm4oLTIpOworCSAgICBsaXN0W25iXSA9IGV4cC0+ZXhwX3N0cjsKKwkgICAgcmV0dXJuKDEpOworICAgICAgICBjYXNlIFhNTF9FWFBfQ09VTlQ6CisJICAgIGV4cCA9IGV4cC0+ZXhwX2xlZnQ7CisJICAgIGdvdG8gdGFpbDsKKyAgICAgICAgY2FzZSBYTUxfRVhQX1NFUToKKwkgICAgdG1wID0geG1sRXhwR2V0U3RhcnRJbnQoY3R4dCwgZXhwLT5leHBfbGVmdCwgbGlzdCwgbGVuLCBuYik7CisJICAgIGlmICh0bXAgPCAwKQorCSAgICAgICAgcmV0dXJuKHRtcCk7CisJICAgIGlmIChJU19OSUxMQUJMRShleHAtPmV4cF9sZWZ0KSkgeworCQl0bXAyID0geG1sRXhwR2V0U3RhcnRJbnQoY3R4dCwgZXhwLT5leHBfcmlnaHQsIGxpc3QsIGxlbiwKKwkJCQkJICAgIG5iICsgdG1wKTsKKwkJaWYgKHRtcDIgPCAwKQorCQkgICAgcmV0dXJuKHRtcDIpOworCQl0bXAgKz0gdG1wMjsKKwkgICAgfQorICAgICAgICAgICAgcmV0dXJuKHRtcCk7CisgICAgICAgIGNhc2UgWE1MX0VYUF9PUjoKKwkgICAgdG1wID0geG1sRXhwR2V0U3RhcnRJbnQoY3R4dCwgZXhwLT5leHBfbGVmdCwgbGlzdCwgbGVuLCBuYik7CisJICAgIGlmICh0bXAgPCAwKQorCSAgICAgICAgcmV0dXJuKHRtcCk7CisJICAgIHRtcDIgPSB4bWxFeHBHZXRTdGFydEludChjdHh0LCBleHAtPmV4cF9yaWdodCwgbGlzdCwgbGVuLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmIgKyB0bXApOworCSAgICBpZiAodG1wMiA8IDApCisJICAgICAgICByZXR1cm4odG1wMik7CisgICAgICAgICAgICByZXR1cm4odG1wICsgdG1wMik7CisgICAgfQorICAgIHJldHVybigtMSk7Cit9CisKKy8qKgorICogeG1sRXhwR2V0U3RhcnQ6CisgKiBAY3R4dDogdGhlIGV4cHJlc3Npb24gY29udGV4dAorICogQGV4cDogdGhlIGV4cHJlc3Npb24KKyAqIEB0b2tMaXN0OiB3aGVyZSB0byBzdG9yZSB0aGUgdG9rZW5zCisgKiBAbGVuOiB0aGUgYWxsb2NhdGVkIGxlbmdodCBvZiBAbGlzdAorICoKKyAqIEZpbmQgYWxsIHRoZSBzdHJpbmdzIHRoYXQgYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgdGhlIGxhbmd1YWdlcworICogYWNjZXB0ZWQgYnkgQGV4cCBhbmQgc3RvcmUgdGhlbSBpbiBAbGlzdC4gRS5nLiBmb3IgKGEsIGIpIHwgYworICogaXQgd2lsbCByZXR1cm4gdGhlIGxpc3QgW2EsIGNdCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBzdHJpbmdzIGZvdW5kLCAtMSBpbiBjYXNlIG9mIGVycm9ycyBhbmQKKyAqICAgICAgICAgLTIgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIEBsZW4gc3RyaW5ncworICovCitpbnQKK3htbEV4cEdldFN0YXJ0KHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHAsIAorICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhcioqdG9rTGlzdCwgaW50IGxlbikgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZXhwID09IE5VTEwpIHx8ICh0b2tMaXN0ID09IE5VTEwpIHx8IChsZW4gPD0gMCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmV0dXJuKHhtbEV4cEdldFN0YXJ0SW50KGN0eHQsIGV4cCwgdG9rTGlzdCwgbGVuLCAwKSk7Cit9CisKKy8qKgorICogeG1sRXhwSXNOaWxsYWJsZToKKyAqIEBleHA6IHRoZSBleHByZXNzaW9uCisgKgorICogRmluZHMgaWYgdGhlIGV4cHJlc3Npb24gaXMgbmlsbGFibGUsIGkuZS4gaWYgaXQgYWNjZXB0cyB0aGUgZW1wdHkgc2VxdXFuY2UKKyAqCisgKiBSZXR1cm5zIDEgaWYgbmlsbGFibGUsIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sRXhwSXNOaWxsYWJsZSh4bWxFeHBOb2RlUHRyIGV4cCkgeworICAgIGlmIChleHAgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oSVNfTklMTEFCTEUoZXhwKSAhPSAwKTsKK30KKworc3RhdGljIHhtbEV4cE5vZGVQdHIKK3htbEV4cFN0cmluZ0Rlcml2ZUludCh4bWxFeHBDdHh0UHRyIGN0eHQsIHhtbEV4cE5vZGVQdHIgZXhwLCBjb25zdCB4bWxDaGFyICpzdHIpCit7CisgICAgeG1sRXhwTm9kZVB0ciByZXQ7CisKKyAgICBzd2l0Y2ggKGV4cC0+dHlwZSkgeworCWNhc2UgWE1MX0VYUF9FTVBUWToKKwkgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisJY2FzZSBYTUxfRVhQX0ZPUkJJRDoKKwkgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisJY2FzZSBYTUxfRVhQX0FUT006CisJICAgIGlmIChleHAtPmV4cF9zdHIgPT0gc3RyKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwkJcHJpbnRmKCJkZXJpdiBhdG9tOiBlcXVhbCA9PiBFbXB0eVxuIik7CisjZW5kaWYKKwkgICAgICAgIHJldCA9IGVtcHR5RXhwOworCSAgICB9IGVsc2UgeworI2lmZGVmIERFQlVHX0RFUklWCisJCXByaW50ZigiZGVyaXYgYXRvbTogbWlzbWF0Y2ggPT4gZm9yYmlkXG4iKTsKKyNlbmRpZgorCSAgICAgICAgLyogVE9ETyB3aWxkY2FyZHMgaGVyZSAqLworCQlyZXQgPSBmb3JiaWRkZW5FeHA7CisJICAgIH0KKwkgICAgcmV0dXJuKHJldCk7CisJY2FzZSBYTUxfRVhQX09SOiB7CisJICAgIHhtbEV4cE5vZGVQdHIgdG1wOworCisjaWZkZWYgREVCVUdfREVSSVYKKwkgICAgcHJpbnRmKCJkZXJpdiBvcjogPT4gb3IoZGVyaXZzKVxuIik7CisjZW5kaWYKKwkgICAgdG1wID0geG1sRXhwU3RyaW5nRGVyaXZlSW50KGN0eHQsIGV4cC0+ZXhwX2xlZnQsIHN0cik7CisJICAgIGlmICh0bXAgPT0gTlVMTCkgeworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgcmV0ID0geG1sRXhwU3RyaW5nRGVyaXZlSW50KGN0eHQsIGV4cC0+ZXhwX3JpZ2h0LCBzdHIpOworCSAgICBpZiAocmV0ID09IE5VTEwpIHsKKwkgICAgICAgIHhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisgICAgICAgICAgICByZXQgPSB4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9PUiwgdG1wLCByZXQsCisJCQkgICAgIE5VTEwsIDAsIDApOworCSAgICByZXR1cm4ocmV0KTsKKwl9CisJY2FzZSBYTUxfRVhQX1NFUToKKyNpZmRlZiBERUJVR19ERVJJVgorCSAgICBwcmludGYoImRlcml2IHNlcTogc3RhcnRpbmcgd2l0aCBsZWZ0XG4iKTsKKyNlbmRpZgorCSAgICByZXQgPSB4bWxFeHBTdHJpbmdEZXJpdmVJbnQoY3R4dCwgZXhwLT5leHBfbGVmdCwgc3RyKTsKKwkgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJICAgICAgICByZXR1cm4oTlVMTCk7CisJICAgIH0gZWxzZSBpZiAocmV0ID09IGZvcmJpZGRlbkV4cCkgeworCSAgICAgICAgaWYgKElTX05JTExBQkxFKGV4cC0+ZXhwX2xlZnQpKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwkJICAgIHByaW50ZigiZGVyaXYgc2VxOiBsZWZ0IGZhaWxlZCBidXQgbmlsbGFibGVcbiIpOworI2VuZGlmCisJCSAgICByZXQgPSB4bWxFeHBTdHJpbmdEZXJpdmVJbnQoY3R4dCwgZXhwLT5leHBfcmlnaHQsIHN0cik7CisJCX0KKwkgICAgfSBlbHNlIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCQlwcmludGYoImRlcml2IHNlcTogbGVmdCBtYXRjaCA9PiBzZXF1ZW5jZVxuIik7CisjZW5kaWYKKwkgICAgICAgIGV4cC0+ZXhwX3JpZ2h0LT5yZWYrKzsKKwkgICAgICAgIHJldCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX1NFUSwgcmV0LCBleHAtPmV4cF9yaWdodCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIDApOworCSAgICB9CisJICAgIHJldHVybihyZXQpOworCWNhc2UgWE1MX0VYUF9DT1VOVDogeworCSAgICBpbnQgbWluLCBtYXg7CisJICAgIHhtbEV4cE5vZGVQdHIgdG1wOworCisJICAgIGlmIChleHAtPmV4cF9tYXggPT0gMCkKKwkJcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisJICAgIHJldCA9IHhtbEV4cFN0cmluZ0Rlcml2ZUludChjdHh0LCBleHAtPmV4cF9sZWZ0LCBzdHIpOworCSAgICBpZiAocmV0ID09IE5VTEwpCisJICAgICAgICByZXR1cm4oTlVMTCk7CisJICAgIGlmIChyZXQgPT0gZm9yYmlkZGVuRXhwKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwkJcHJpbnRmKCJkZXJpdiBjb3VudDogcGF0dGVybiBtaXNtYXRjaCA9PiBmb3JiaWRcbiIpOworI2VuZGlmCisJICAgICAgICByZXR1cm4ocmV0KTsKKwkgICAgfQorCSAgICBpZiAoZXhwLT5leHBfbWF4ID09IDEpCisJCXJldHVybihyZXQpOworCSAgICBpZiAoZXhwLT5leHBfbWF4IDwgMCkgLyogdW5ib3VuZGVkICovCisJCW1heCA9IC0xOworCSAgICBlbHNlCisJCW1heCA9IGV4cC0+ZXhwX21heCAtIDE7CisJICAgIGlmIChleHAtPmV4cF9taW4gPiAwKQorCQltaW4gPSBleHAtPmV4cF9taW4gLSAxOworCSAgICBlbHNlCisJCW1pbiA9IDA7CisJICAgIGV4cC0+ZXhwX2xlZnQtPnJlZisrOworCSAgICB0bXAgPSB4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9DT1VOVCwgZXhwLT5leHBfbGVmdCwgTlVMTCwKKwkJCQkgICAgIE5VTEwsIG1pbiwgbWF4KTsKKwkgICAgaWYgKHJldCA9PSBlbXB0eUV4cCkgeworI2lmZGVmIERFQlVHX0RFUklWCisJCXByaW50ZigiZGVyaXYgY291bnQ6IG1hdGNoIHRvIGVtcHR5ID0+IG5ldyBjb3VudFxuIik7CisjZW5kaWYKKwkgICAgICAgIHJldHVybih0bXApOworCSAgICB9CisjaWZkZWYgREVCVUdfREVSSVYKKwkgICAgcHJpbnRmKCJkZXJpdiBjb3VudDogbWF0Y2ggPT4gc2VxdWVuY2Ugd2l0aCBuZXcgY291bnRcbiIpOworI2VuZGlmCisJICAgIHJldHVybih4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9TRVEsIHJldCwgdG1wLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIDApKTsKKwl9CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxFeHBTdHJpbmdEZXJpdmU6CisgKiBAY3R4dDogdGhlIGV4cHJlc3Npb24gY29udGV4dAorICogQGV4cDogdGhlIGV4cHJlc3Npb24KKyAqIEBzdHI6IHRoZSBzdHJpbmcKKyAqIEBsZW46IHRoZSBzdHJpbmcgbGVuIGluIGJ5dGVzIGlmIGF2YWlsYWJsZQorICoKKyAqIERvIG9uZSBzdGVwIG9mIEJyem96b3dza2kgZGVyaXZhdGlvbiBvZiB0aGUgZXhwcmVzc2lvbiBAZXhwIHdpdGgKKyAqIHJlc3BlY3QgdG8gdGhlIGlucHV0IHN0cmluZworICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBleHByZXNzaW9uIG9yIE5VTEwgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvcgorICovCit4bWxFeHBOb2RlUHRyCit4bWxFeHBTdHJpbmdEZXJpdmUoeG1sRXhwQ3R4dFB0ciBjdHh0LCB4bWxFeHBOb2RlUHRyIGV4cCwKKyAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpzdHIsIGludCBsZW4pIHsKKyAgICBjb25zdCB4bWxDaGFyICppbnB1dDsKKworICAgIGlmICgoZXhwID09IE5VTEwpIHx8IChjdHh0ID09IE5VTEwpIHx8IChzdHIgPT0gTlVMTCkpIHsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICAqIGNoZWNrIHRoZSBzdHJpbmcgaXMgaW4gdGhlIGRpY3Rpb25uYXJ5LCBpZiB5ZXMgdXNlIGFuIGludGVybmVkCisgICAgICogY29weSwgb3RoZXJ3aXNlIHdlIGtub3cgaXQncyBub3QgYW4gYWNjZXB0YWJsZSBpbnB1dAorICAgICAqLworICAgIGlucHV0ID0geG1sRGljdEV4aXN0cyhjdHh0LT5kaWN0LCBzdHIsIGxlbik7CisgICAgaWYgKGlucHV0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisgICAgfQorICAgIHJldHVybih4bWxFeHBTdHJpbmdEZXJpdmVJbnQoY3R4dCwgZXhwLCBpbnB1dCkpOworfQorCitzdGF0aWMgaW50Cit4bWxFeHBDaGVja0NhcmQoeG1sRXhwTm9kZVB0ciBleHAsIHhtbEV4cE5vZGVQdHIgc3ViKSB7CisgICAgaW50IHJldCA9IDE7CisKKyAgICBpZiAoc3ViLT5jX21heCA9PSAtMSkgeworICAgICAgICBpZiAoZXhwLT5jX21heCAhPSAtMSkKKwkgICAgcmV0ID0gMDsKKyAgICB9IGVsc2UgaWYgKChleHAtPmNfbWF4ID49IDApICYmIChleHAtPmNfbWF4IDwgc3ViLT5jX21heCkpIHsKKyAgICAgICAgcmV0ID0gMDsKKyAgICB9CisjaWYgMAorICAgIGlmICgoSVNfTklMTEFCTEUoc3ViKSkgJiYgKCFJU19OSUxMQUJMRShleHApKSkKKyAgICAgICAgcmV0ID0gMDsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCitzdGF0aWMgeG1sRXhwTm9kZVB0ciB4bWxFeHBFeHBEZXJpdmVJbnQoeG1sRXhwQ3R4dFB0ciBjdHh0LCB4bWxFeHBOb2RlUHRyIGV4cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxFeHBOb2RlUHRyIHN1Yik7CisvKioKKyAqIHhtbEV4cERpdmlkZToKKyAqIEBjdHh0OiB0aGUgZXhwcmVzc2lvbnMgY29udGV4dAorICogQGV4cDogdGhlIGVuZ2xvYmluZyBleHByZXNzaW9uCisgKiBAc3ViOiB0aGUgc3ViZXhwcmVzc2lvbgorICogQG11bHQ6IHRoZSBtdWx0aXBsZSBleHByZXNzaW9uCisgKiBAcmVtYWluOiB0aGUgcmVtYWluIGZyb20gdGhlIGRlcml2YXRpb24gb2YgdGhlIG11bHRpcGxlCisgKgorICogQ2hlY2sgaWYgZXhwIGlzIGEgbXVsdGlwbGUgb2Ygc3ViLCBpLmUuIGlmIHRoZXJlIGlzIGEgZmluaXRlIG51bWJlciBuCisgKiBzbyB0aGF0IHN1YntufSBzdWJzdW1lIGV4cAorICoKKyAqIFJldHVybnMgdGhlIG11bHRpcGxlIHZhbHVlIGlmIHN1Y2Nlc3NmdWwsIDAgaWYgaXQgaXMgbm90IGEgbXVsdGlwbGUKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuZWwgZXJyb3IuCisgKi8KKworc3RhdGljIGludAoreG1sRXhwRGl2aWRlKHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHAsIHhtbEV4cE5vZGVQdHIgc3ViLAorICAgICAgICAgICAgIHhtbEV4cE5vZGVQdHIgKm11bHQsIHhtbEV4cE5vZGVQdHIgKnJlbWFpbikgeworICAgIGludCBpOworICAgIHhtbEV4cE5vZGVQdHIgdG1wLCB0bXAyOworCisgICAgaWYgKG11bHQgIT0gTlVMTCkgKm11bHQgPSBOVUxMOworICAgIGlmIChyZW1haW4gIT0gTlVMTCkgKnJlbWFpbiA9IE5VTEw7CisgICAgaWYgKGV4cC0+Y19tYXggPT0gLTEpIHJldHVybigwKTsKKyAgICBpZiAoSVNfTklMTEFCTEUoZXhwKSAmJiAoIUlTX05JTExBQkxFKHN1YikpKSByZXR1cm4oMCk7CisKKyAgICBmb3IgKGkgPSAxO2kgPD0gZXhwLT5jX21heDtpKyspIHsKKyAgICAgICAgc3ViLT5yZWYrKzsKKyAgICAgICAgdG1wID0geG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfQ09VTlQsCisJCQkJIHN1YiwgTlVMTCwgTlVMTCwgaSwgaSk7CisJaWYgKHRtcCA9PSBOVUxMKSB7CisJICAgIHJldHVybigtMSk7CisJfQorCWlmICgheG1sRXhwQ2hlY2tDYXJkKHRtcCwgZXhwKSkgeworCSAgICB4bWxFeHBGcmVlKGN0eHQsIHRtcCk7CisJICAgIGNvbnRpbnVlOworCX0KKwl0bXAyID0geG1sRXhwRXhwRGVyaXZlSW50KGN0eHQsIHRtcCwgZXhwKTsKKwlpZiAodG1wMiA9PSBOVUxMKSB7CisJICAgIHhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJaWYgKCh0bXAyICE9IGZvcmJpZGRlbkV4cCkgJiYgKElTX05JTExBQkxFKHRtcDIpKSkgeworCSAgICBpZiAocmVtYWluICE9IE5VTEwpCisJICAgICAgICAqcmVtYWluID0gdG1wMjsKKwkgICAgZWxzZQorCSAgICAgICAgeG1sRXhwRnJlZShjdHh0LCB0bXAyKTsKKwkgICAgaWYgKG11bHQgIT0gTlVMTCkKKwkgICAgICAgICptdWx0ID0gdG1wOworCSAgICBlbHNlCisJICAgICAgICB4bWxFeHBGcmVlKGN0eHQsIHRtcCk7CisjaWZkZWYgREVCVUdfREVSSVYKKwkgICAgcHJpbnRmKCJEaXZpZGUgc3VjY2VlZGVkICVkXG4iLCBpKTsKKyNlbmRpZgorCSAgICByZXR1cm4oaSk7CisJfQorCXhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwl4bWxFeHBGcmVlKGN0eHQsIHRtcDIpOworICAgIH0KKyNpZmRlZiBERUJVR19ERVJJVgorICAgIHByaW50ZigiRGl2aWRlIGZhaWxlZFxuIik7CisjZW5kaWYKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sRXhwRXhwRGVyaXZlSW50OgorICogQGN0eHQ6IHRoZSBleHByZXNzaW9ucyBjb250ZXh0CisgKiBAZXhwOiB0aGUgZW5nbG9iaW5nIGV4cHJlc3Npb24KKyAqIEBzdWI6IHRoZSBzdWJleHByZXNzaW9uCisgKgorICogVHJ5IHRvIGRvIGEgc3RlcCBvZiBCcnpvem93c2tpIGRlcml2YXRpb24gYnV0IGF0IGEgaGlnaGVyIGxldmVsCisgKiB0aGUgaW5wdXQgYmVpbmcgYSBzdWJleHByZXNzaW9uLgorICoKKyAqIFJldHVybnMgdGhlIHJlc3VsdGluZyBleHByZXNzaW9uIG9yIE5VTEwgaW4gY2FzZSBvZiBpbnRlcm5hbCBlcnJvcgorICovCitzdGF0aWMgeG1sRXhwTm9kZVB0cgoreG1sRXhwRXhwRGVyaXZlSW50KHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHAsIHhtbEV4cE5vZGVQdHIgc3ViKSB7CisgICAgeG1sRXhwTm9kZVB0ciByZXQsIHRtcCwgdG1wMiwgdG1wMzsKKyAgICBjb25zdCB4bWxDaGFyICoqdGFiOworICAgIGludCBsZW4sIGk7CisKKyAgICAvKgorICAgICAqIEluIGNhc2Ugb2YgZXF1YWxpdHkgYW5kIGlmIHRoZSBleHByZXNzaW9uIGNhbiBvbmx5IGNvbnN1bWUgYSBmaW5pdGUKKyAgICAgKiBhbW91bnQsIHRoZW4gdGhlIGRlcml2YXRpb24gaXMgZW1wdHkKKyAgICAgKi8KKyAgICBpZiAoKGV4cCA9PSBzdWIpICYmIChleHAtPmNfbWF4ID49IDApKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKyAgICAgICAgcHJpbnRmKCJFcXVhbChleHAsIHN1YikgYW5kIGZpbml0ZSAtPiBFbXB0eVxuIik7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuKGVtcHR5RXhwKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBkZWNvbXBvc2Ugc3ViIHNlcXVlbmNlIGZpcnN0CisgICAgICovCisgICAgaWYgKHN1Yi0+dHlwZSA9PSBYTUxfRVhQX0VNUFRZKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKyAgICAgICAgcHJpbnRmKCJFbXB0eShzdWIpIC0+IEVtcHR5XG4iKTsKKyNlbmRpZgorCWV4cC0+cmVmKys7CisgICAgICAgIHJldHVybihleHApOworICAgIH0KKyAgICBpZiAoc3ViLT50eXBlID09IFhNTF9FWFBfU0VRKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKyAgICAgICAgcHJpbnRmKCJTZXEoc3ViKSAtPiBkZWNvbXBvc2VcbiIpOworI2VuZGlmCisgICAgICAgIHRtcCA9IHhtbEV4cEV4cERlcml2ZUludChjdHh0LCBleHAsIHN1Yi0+ZXhwX2xlZnQpOworCWlmICh0bXAgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCWlmICh0bXAgPT0gZm9yYmlkZGVuRXhwKQorCSAgICByZXR1cm4odG1wKTsKKwlyZXQgPSB4bWxFeHBFeHBEZXJpdmVJbnQoY3R4dCwgdG1wLCBzdWItPmV4cF9yaWdodCk7CisJeG1sRXhwRnJlZShjdHh0LCB0bXApOworCXJldHVybihyZXQpOworICAgIH0KKyAgICBpZiAoc3ViLT50eXBlID09IFhNTF9FWFBfT1IpIHsKKyNpZmRlZiBERUJVR19ERVJJVgorICAgICAgICBwcmludGYoIk9yKHN1YikgLT4gZGVjb21wb3NlXG4iKTsKKyNlbmRpZgorICAgICAgICB0bXAgPSB4bWxFeHBFeHBEZXJpdmVJbnQoY3R4dCwgZXhwLCBzdWItPmV4cF9sZWZ0KTsKKwlpZiAodG1wID09IGZvcmJpZGRlbkV4cCkKKwkgICAgcmV0dXJuKHRtcCk7CisJaWYgKHRtcCA9PSBOVUxMKQorCSAgICByZXR1cm4oTlVMTCk7CisJcmV0ID0geG1sRXhwRXhwRGVyaXZlSW50KGN0eHQsIGV4cCwgc3ViLT5leHBfcmlnaHQpOworCWlmICgocmV0ID09IE5VTEwpIHx8IChyZXQgPT0gZm9yYmlkZGVuRXhwKSkgeworCSAgICB4bWxFeHBGcmVlKGN0eHQsIHRtcCk7CisJICAgIHJldHVybihyZXQpOworCX0KKwlyZXR1cm4oeG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfT1IsIHRtcCwgcmV0LCBOVUxMLCAwLCAwKSk7CisgICAgfQorICAgIGlmICgheG1sRXhwQ2hlY2tDYXJkKGV4cCwgc3ViKSkgeworI2lmZGVmIERFQlVHX0RFUklWCisgICAgICAgIHByaW50ZigiQ2hlY2tDYXJkKGV4cCwgc3ViKSBmYWlsZWQgLT4gRm9yYmlkXG4iKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4oZm9yYmlkZGVuRXhwKTsKKyAgICB9CisgICAgc3dpdGNoIChleHAtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfRVhQX0VNUFRZOgorCSAgICBpZiAoc3ViID09IGVtcHR5RXhwKQorCSAgICAgICAgcmV0dXJuKGVtcHR5RXhwKTsKKyNpZmRlZiBERUJVR19ERVJJVgorCSAgICBwcmludGYoIkVtcHR5KGV4cCkgLT4gRm9yYmlkXG4iKTsKKyNlbmRpZgorCSAgICByZXR1cm4oZm9yYmlkZGVuRXhwKTsKKyAgICAgICAgY2FzZSBYTUxfRVhQX0ZPUkJJRDoKKyNpZmRlZiBERUJVR19ERVJJVgorCSAgICBwcmludGYoIkZvcmJpZChleHApIC0+IEZvcmJpZFxuIik7CisjZW5kaWYKKwkgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisgICAgICAgIGNhc2UgWE1MX0VYUF9BVE9NOgorCSAgICBpZiAoc3ViLT50eXBlID09IFhNTF9FWFBfQVRPTSkgeworCSAgICAgICAgLyogVE9ETzogaGFuZGxlIHdpbGRjYXJkcyAqLworCSAgICAgICAgaWYgKGV4cC0+ZXhwX3N0ciA9PSBzdWItPmV4cF9zdHIpIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCQkgICAgcHJpbnRmKCJBdG9tIG1hdGNoIC0+IEVtcHR5XG4iKTsKKyNlbmRpZgorCQkgICAgcmV0dXJuKGVtcHR5RXhwKTsKKyAgICAgICAgICAgICAgICB9CisjaWZkZWYgREVCVUdfREVSSVYKKwkJcHJpbnRmKCJBdG9tIG1pc21hdGNoIC0+IEZvcmJpZFxuIik7CisjZW5kaWYKKwkgICAgICAgIHJldHVybihmb3JiaWRkZW5FeHApOworCSAgICB9CisJICAgIGlmICgoc3ViLT50eXBlID09IFhNTF9FWFBfQ09VTlQpICYmCisJICAgICAgICAoc3ViLT5leHBfbWF4ID09IDEpICYmCisJICAgICAgICAoc3ViLT5leHBfbGVmdC0+dHlwZSA9PSBYTUxfRVhQX0FUT00pKSB7CisJICAgICAgICAvKiBUT0RPOiBoYW5kbGUgd2lsZGNhcmRzICovCisJICAgICAgICBpZiAoZXhwLT5leHBfc3RyID09IHN1Yi0+ZXhwX2xlZnQtPmV4cF9zdHIpIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCQkgICAgcHJpbnRmKCJBdG9tIG1hdGNoIC0+IEVtcHR5XG4iKTsKKyNlbmRpZgorCQkgICAgcmV0dXJuKGVtcHR5RXhwKTsKKwkJfQorI2lmZGVmIERFQlVHX0RFUklWCisJCXByaW50ZigiQXRvbSBtaXNtYXRjaCAtPiBGb3JiaWRcbiIpOworI2VuZGlmCisJICAgICAgICByZXR1cm4oZm9yYmlkZGVuRXhwKTsKKwkgICAgfQorI2lmZGVmIERFQlVHX0RFUklWCisJICAgIHByaW50ZigiQ29tcGV4IGV4cCB2cyBBdG9tIC0+IEZvcmJpZFxuIik7CisjZW5kaWYKKwkgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisgICAgICAgIGNhc2UgWE1MX0VYUF9TRVE6CisJICAgIC8qIHRyeSB0byBnZXQgdGhlIHNlcXVlbmNlIGNvbnN1bWVkIG9ubHkgaWYgcG9zc2libGUgKi8KKwkgICAgaWYgKHhtbEV4cENoZWNrQ2FyZChleHAtPmV4cF9sZWZ0LCBzdWIpKSB7CisJCS8qIFNlZSBpZiB0aGUgc2VxdWVuY2UgY2FuIGJlIGNvbnN1bWVkIGRpcmVjdGx5ICovCisjaWZkZWYgREVCVUdfREVSSVYKKwkJcHJpbnRmKCJTZXEgdHJ5aW5nIGxlZnQgb25seVxuIik7CisjZW5kaWYKKwkJcmV0ID0geG1sRXhwRXhwRGVyaXZlSW50KGN0eHQsIGV4cC0+ZXhwX2xlZnQsIHN1Yik7CisJCWlmICgocmV0ICE9IGZvcmJpZGRlbkV4cCkgJiYgKHJldCAhPSBOVUxMKSkgeworI2lmZGVmIERFQlVHX0RFUklWCisJCSAgICBwcmludGYoIlNlcSB0cnlpbmcgbGVmdCBvbmx5IHdvcmtlZFxuIik7CisjZW5kaWYKKwkJICAgIC8qCisJCSAgICAgKiBUT0RPOiBhc3N1bXB0aW9uIGhlcmUgdGhhdCB3ZSBhcmUgZGV0ZXJtaW5pc3QKKwkJICAgICAqICAgICAgIGkuZS4gd2Ugd29uJ3QgZ2V0IHRvIGEgbmlsbGFibGUgZXhwIGxlZnQKKwkJICAgICAqICAgICAgIHN1YnNldCB3aGljaCBjb3VsZCBiZSBtYXRjaGVkIGJ5IHRoZSByaWdodAorCQkgICAgICogICAgICAgcGFydCB0b28uCisJCSAgICAgKiBlLmcuOiAoYSB8IGIpKywoYSB8IGMpIGFuZCAnYSssYScKKwkJICAgICAqLworCQkgICAgZXhwLT5leHBfcmlnaHQtPnJlZisrOworCQkgICAgcmV0dXJuKHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX1NFUSwgcmV0LAorCQkJCQkgICAgICBleHAtPmV4cF9yaWdodCwgTlVMTCwgMCwgMCkpOworCQl9CisjaWZkZWYgREVCVUdfREVSSVYKKwkgICAgfSBlbHNlIHsKKwkJcHJpbnRmKCJTZXE6IGxlZnQgdG9vIHNob3J0XG4iKTsKKyNlbmRpZgorCSAgICB9CisJICAgIC8qIFRyeSBpbnN0ZWFkIHRvIGRlY29tcG9zZSAqLworCSAgICBpZiAoc3ViLT50eXBlID09IFhNTF9FWFBfQ09VTlQpIHsKKwkJaW50IG1pbiwgbWF4OworCisjaWZkZWYgREVCVUdfREVSSVYKKwkJcHJpbnRmKCJTZXE6IHN1YiBpcyBhIGNvdW50XG4iKTsKKyNlbmRpZgorCSAgICAgICAgcmV0ID0geG1sRXhwRXhwRGVyaXZlSW50KGN0eHQsIGV4cC0+ZXhwX2xlZnQsIHN1Yi0+ZXhwX2xlZnQpOworCQlpZiAocmV0ID09IE5VTEwpCisJCSAgICByZXR1cm4oTlVMTCk7CisJCWlmIChyZXQgIT0gZm9yYmlkZGVuRXhwKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwkJICAgIHByaW50ZigiU2VxICwgQ291bnQgbWF0Y2ggb24gbGVmdFxuIik7CisjZW5kaWYKKwkJICAgIGlmIChzdWItPmV4cF9tYXggPCAwKQorCQkgICAgICAgIG1heCA9IC0xOworCSAgICAgICAgICAgIGVsc2UKKwkJICAgICAgICBtYXggPSBzdWItPmV4cF9tYXggLTE7CisJCSAgICBpZiAoc3ViLT5leHBfbWluID4gMCkKKwkJICAgICAgICBtaW4gPSBzdWItPmV4cF9taW4gLTE7CisJCSAgICBlbHNlCisJCSAgICAgICAgbWluID0gMDsKKwkJICAgIGV4cC0+ZXhwX3JpZ2h0LT5yZWYrKzsKKwkJICAgIHRtcCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX1NFUSwgcmV0LAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cC0+ZXhwX3JpZ2h0LCBOVUxMLCAwLCAwKTsKKwkJICAgIGlmICh0bXAgPT0gTlVMTCkKKwkJICAgICAgICByZXR1cm4oTlVMTCk7CisKKwkJICAgIHN1Yi0+ZXhwX2xlZnQtPnJlZisrOworCQkgICAgdG1wMiA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX0NPVU5ULAorCQkJCSAgICAgIHN1Yi0+ZXhwX2xlZnQsIE5VTEwsIE5VTEwsIG1pbiwgbWF4KTsKKwkJICAgIGlmICh0bXAyID09IE5VTEwpIHsKKwkJICAgICAgICB4bWxFeHBGcmVlKGN0eHQsIHRtcCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCSAgICB9CisJCSAgICByZXQgPSB4bWxFeHBFeHBEZXJpdmVJbnQoY3R4dCwgdG1wLCB0bXAyKTsKKwkJICAgIHhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwkJICAgIHhtbEV4cEZyZWUoY3R4dCwgdG1wMik7CisJCSAgICByZXR1cm4ocmV0KTsKKwkJfQorCSAgICB9CisJICAgIC8qIHdlIG1hZGUgbm8gcHJvZ3Jlc3Mgb24gc3RydWN0dXJlZCBvcGVyYXRpb25zICovCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FWFBfT1I6CisjaWZkZWYgREVCVUdfREVSSVYKKwkgICAgcHJpbnRmKCJPciAsIHRyeWluZyBib3RoIHNpZGVcbiIpOworI2VuZGlmCisJICAgIHJldCA9IHhtbEV4cEV4cERlcml2ZUludChjdHh0LCBleHAtPmV4cF9sZWZ0LCBzdWIpOworCSAgICBpZiAocmV0ID09IE5VTEwpCisJICAgICAgICByZXR1cm4oTlVMTCk7CisJICAgIHRtcCA9IHhtbEV4cEV4cERlcml2ZUludChjdHh0LCBleHAtPmV4cF9yaWdodCwgc3ViKTsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCXhtbEV4cEZyZWUoY3R4dCwgcmV0KTsKKwkgICAgICAgIHJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICByZXR1cm4oeG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfT1IsIHJldCwgdG1wLCBOVUxMLCAwLCAwKSk7CisgICAgICAgIGNhc2UgWE1MX0VYUF9DT1VOVDogeworCSAgICBpbnQgbWluLCBtYXg7CisKKwkgICAgaWYgKHN1Yi0+dHlwZSA9PSBYTUxfRVhQX0NPVU5UKSB7CisJICAgICAgICAvKgorCQkgKiBUcnkgdG8gc2VlIGlmIHRoZSBsb29wIGlzIGNvbXBsZXRlbHkgc3Vic3VtZWQKKwkJICovCisJICAgICAgICB0bXAgPSB4bWxFeHBFeHBEZXJpdmVJbnQoY3R4dCwgZXhwLT5leHBfbGVmdCwgc3ViLT5leHBfbGVmdCk7CisJCWlmICh0bXAgPT0gTlVMTCkKKwkJICAgIHJldHVybihOVUxMKTsKKwkJaWYgKHRtcCA9PSBmb3JiaWRkZW5FeHApIHsKKwkJICAgIGludCBtdWx0OworCisjaWZkZWYgREVCVUdfREVSSVYKKwkJICAgIHByaW50ZigiQ291bnQsIENvdW50IGlubmVyIGRvbid0IHN1YnN1bWVcbiIpOworI2VuZGlmCisJCSAgICBtdWx0ID0geG1sRXhwRGl2aWRlKGN0eHQsIHN1Yi0+ZXhwX2xlZnQsIGV4cC0+ZXhwX2xlZnQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsICZ0bXApOworCQkgICAgaWYgKG11bHQgPD0gMCkgeworI2lmZGVmIERFQlVHX0RFUklWCisJCQlwcmludGYoIkNvdW50LCBDb3VudCBub3QgbXVsdGlwbGUgPT4gZm9yYmlkZGVuXG4iKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisJCSAgICB9CisJCSAgICBpZiAoc3ViLT5leHBfbWF4ID09IC0xKSB7CisJCSAgICAgICAgbWF4ID0gLTE7CisJCQlpZiAoZXhwLT5leHBfbWF4ID09IC0xKSB7CisJCQkgICAgaWYgKGV4cC0+ZXhwX21pbiA8PSBzdWItPmV4cF9taW4gKiBtdWx0KQorCQkJICAgICAgICBtaW4gPSAwOworCQkJICAgIGVsc2UKKwkJCSAgICAgICAgbWluID0gZXhwLT5leHBfbWluIC0gc3ViLT5leHBfbWluICogbXVsdDsKKwkJCX0gZWxzZSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwkJCSAgICBwcmludGYoIkNvdW50LCBDb3VudCBmaW5pdGUgY2FuJ3Qgc3Vic3VtZSBpbmZpbml0ZVxuIik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxFeHBGcmVlKGN0eHQsIHRtcCk7CisJCQkgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisJCQl9CisJCSAgICB9IGVsc2UgeworCQkJaWYgKGV4cC0+ZXhwX21heCA9PSAtMSkgeworI2lmZGVmIERFQlVHX0RFUklWCisJCQkgICAgcHJpbnRmKCJJbmZpbml0ZSBsb29wIGNvbnN1bWUgbXVsdCBmaW5pdGUgbG9vcFxuIik7CisjZW5kaWYKKwkJCSAgICBpZiAoZXhwLT5leHBfbWluID4gc3ViLT5leHBfbWluICogbXVsdCkgeworCQkJCW1heCA9IC0xOworCQkJCW1pbiA9IGV4cC0+ZXhwX21pbiAtIHN1Yi0+ZXhwX21pbiAqIG11bHQ7CisJCQkgICAgfSBlbHNlIHsKKwkJCQltYXggPSAtMTsKKwkJCQltaW4gPSAwOworCQkJICAgIH0KKwkJCX0gZWxzZSB7CisJCQkgICAgaWYgKGV4cC0+ZXhwX21heCA8IHN1Yi0+ZXhwX21heCAqIG11bHQpIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCQkJCXByaW50ZigibG9vcHMgbWF4IG11bHQgbWlzbWF0Y2ggPT4gZm9yYmlkZGVuXG4iKTsKKyNlbmRpZgorCQkJCXhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwkJCQlyZXR1cm4oZm9yYmlkZGVuRXhwKTsKKwkJCSAgICB9CisJCQkgICAgaWYgKHN1Yi0+ZXhwX21heCAqIG11bHQgPiBleHAtPmV4cF9taW4pCisJCQkJbWluID0gMDsKKwkJCSAgICBlbHNlCisJCQkJbWluID0gZXhwLT5leHBfbWluIC0gc3ViLT5leHBfbWF4ICogbXVsdDsKKwkJCSAgICBtYXggPSBleHAtPmV4cF9tYXggLSBzdWItPmV4cF9tYXggKiBtdWx0OworCQkJfQorCQkgICAgfQorCQl9IGVsc2UgaWYgKCFJU19OSUxMQUJMRSh0bXApKSB7CisJCSAgICAvKgorCQkgICAgICogVE9ETzogbG9vcCBoZXJlIHRvIHRyeSB0byBncm93IGlmIHdvcmtpbmcgb24gZmluaXRlCisJCSAgICAgKiAgICAgICBibG9ja3MuCisJCSAgICAgKi8KKyNpZmRlZiBERUJVR19ERVJJVgorCQkgICAgcHJpbnRmKCJDb3VudCwgQ291bnQgcmVtYWluIG5vdCBuaWxsYWJsZSA9PiBmb3JiaWRkZW5cbiIpOworI2VuZGlmCisJCSAgICB4bWxFeHBGcmVlKGN0eHQsIHRtcCk7CisJCSAgICByZXR1cm4oZm9yYmlkZGVuRXhwKTsKKwkJfSBlbHNlIGlmIChzdWItPmV4cF9tYXggPT0gLTEpIHsKKwkJICAgIGlmIChleHAtPmV4cF9tYXggPT0gLTEpIHsKKwkJICAgICAgICBpZiAoZXhwLT5leHBfbWluIDw9IHN1Yi0+ZXhwX21pbikgeworI2lmZGVmIERFQlVHX0RFUklWCisJCQkgICAgcHJpbnRmKCJJbmZpbml0ZSBsb29wcyBPa2F5ID0+IENPVU5UKDAsSW5mKVxuIik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAtMTsKKwkJCSAgICBtaW4gPSAwOworCQkJfSBlbHNlIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCQkJICAgIHByaW50ZigiSW5maW5pdGUgbG9vcHMgbWluID0+IENvdW50KFgsSW5mKVxuIik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSAtMTsKKwkJCSAgICBtaW4gPSBleHAtPmV4cF9taW4gLSBzdWItPmV4cF9taW47CisJCQl9CisJCSAgICB9IGVsc2UgaWYgKGV4cC0+ZXhwX21pbiA+IHN1Yi0+ZXhwX21pbikgeworI2lmZGVmIERFQlVHX0RFUklWCisJCQlwcmludGYoImxvb3BzIG1pbiBtaXNtYXRjaCAxID0+IGZvcmJpZGRlbiA/Pz9cbiIpOworI2VuZGlmCisJCSAgICAgICAgeG1sRXhwRnJlZShjdHh0LCB0bXApOworCQkgICAgICAgIHJldHVybihmb3JiaWRkZW5FeHApOworCQkgICAgfSBlbHNlIHsKKwkJCW1heCA9IC0xOworCQkJbWluID0gMDsKKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIGlmIChleHAtPmV4cF9tYXggPT0gLTEpIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCQkJcHJpbnRmKCJJbmZpbml0ZSBsb29wIGNvbnN1bWUgZmluaXRlIGxvb3BcbiIpOworI2VuZGlmCisJCSAgICAgICAgaWYgKGV4cC0+ZXhwX21pbiA+IHN1Yi0+ZXhwX21pbikgeworCQkJICAgIG1heCA9IC0xOworCQkJICAgIG1pbiA9IGV4cC0+ZXhwX21pbiAtIHN1Yi0+ZXhwX21pbjsKKwkJCX0gZWxzZSB7CisJCQkgICAgbWF4ID0gLTE7CisJCQkgICAgbWluID0gMDsKKwkJCX0KKwkJICAgIH0gZWxzZSB7CisJCSAgICAgICAgaWYgKGV4cC0+ZXhwX21heCA8IHN1Yi0+ZXhwX21heCkgeworI2lmZGVmIERFQlVHX0RFUklWCisJCQkgICAgcHJpbnRmKCJsb29wcyBtYXggbWlzbWF0Y2ggPT4gZm9yYmlkZGVuXG4iKTsKKyNlbmRpZgorCQkJICAgIHhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwkJCSAgICByZXR1cm4oZm9yYmlkZGVuRXhwKTsKKwkJCX0KKwkJCWlmIChzdWItPmV4cF9tYXggPiBleHAtPmV4cF9taW4pCisJCQkgICAgbWluID0gMDsKKwkJCWVsc2UKKwkJCSAgICBtaW4gPSBleHAtPmV4cF9taW4gLSBzdWItPmV4cF9tYXg7CisJCQltYXggPSBleHAtPmV4cF9tYXggLSBzdWItPmV4cF9tYXg7CisJCSAgICB9CisJCX0KKyNpZmRlZiBERUJVR19ERVJJVgorCQlwcmludGYoImxvb3BzIG1hdGNoID0+IFNFUShDT1VOVCgpKVxuIik7CisjZW5kaWYKKwkJZXhwLT5leHBfbGVmdC0+cmVmKys7CisJCXRtcDIgPSB4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9DT1VOVCwgZXhwLT5leHBfbGVmdCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBtaW4sIG1heCk7CisJCWlmICh0bXAyID09IE5VTEwpIHsKKwkJICAgIHJldHVybihOVUxMKTsKKwkJfQorICAgICAgICAgICAgICAgIHJldCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX1NFUSwgdG1wLCB0bXAyLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgMCk7CisJCXJldHVybihyZXQpOworCSAgICB9CisJICAgIHRtcCA9IHhtbEV4cEV4cERlcml2ZUludChjdHh0LCBleHAtPmV4cF9sZWZ0LCBzdWIpOworCSAgICBpZiAodG1wID09IE5VTEwpCisJCXJldHVybihOVUxMKTsKKwkgICAgaWYgKHRtcCA9PSBmb3JiaWRkZW5FeHApIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCQlwcmludGYoImxvb3AgbWlzbWF0Y2ggPT4gZm9yYmlkZGVuXG4iKTsKKyNlbmRpZgorCQlyZXR1cm4oZm9yYmlkZGVuRXhwKTsKKwkgICAgfQorCSAgICBpZiAoZXhwLT5leHBfbWluID4gMCkKKwkJbWluID0gZXhwLT5leHBfbWluIC0gMTsKKwkgICAgZWxzZQorCQltaW4gPSAwOworCSAgICBpZiAoZXhwLT5leHBfbWF4IDwgMCkKKwkJbWF4ID0gLTE7CisJICAgIGVsc2UKKwkJbWF4ID0gZXhwLT5leHBfbWF4IC0gMTsKKworI2lmZGVmIERFQlVHX0RFUklWCisJICAgIHByaW50ZigibG9vcCBtYXRjaCA9PiBTRVEoQ09VTlQoKSlcbiIpOworI2VuZGlmCisJICAgIGV4cC0+ZXhwX2xlZnQtPnJlZisrOworCSAgICB0bXAyID0geG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfQ09VTlQsIGV4cC0+ZXhwX2xlZnQsCisJCQkJICAgICAgTlVMTCwgTlVMTCwgbWluLCBtYXgpOworCSAgICBpZiAodG1wMiA9PSBOVUxMKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIHJldCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX1NFUSwgdG1wLCB0bXAyLAorCQkJCSAgICAgTlVMTCwgMCwgMCk7CisJICAgIHJldHVybihyZXQpOworCX0KKyAgICB9CisKKyNpZmRlZiBERUJVR19ERVJJVgorICAgIHByaW50ZigiRmFsbGJhY2sgdG8gZGVyaXZhdGl2ZVxuIik7CisjZW5kaWYKKyAgICBpZiAoSVNfTklMTEFCTEUoc3ViKSkgeworICAgICAgICBpZiAoIShJU19OSUxMQUJMRShleHApKSkKKwkgICAgcmV0dXJuKGZvcmJpZGRlbkV4cCk7CisJZWxzZQorCSAgICByZXQgPSBlbXB0eUV4cDsKKyAgICB9IGVsc2UKKwlyZXQgPSBOVUxMOworICAgIC8qCisgICAgICogaGVyZSB0aGUgc3RydWN0dXJlZCBkZXJpdmF0aW9uIG1hZGUgbm8gcHJvZ3Jlc3Mgc28KKyAgICAgKiB3ZSB1c2UgdGhlIGRlZmF1bHQgdG9rZW4gYmFzZWQgZGVyaXZhdGlvbiB0byBmb3JjZSBvbmUgbW9yZSBzdGVwCisgICAgICovCisgICAgaWYgKGN0eHQtPnRhYlNpemUgPT0gMCkKKyAgICAgICAgY3R4dC0+dGFiU2l6ZSA9IDQwOworCisgICAgdGFiID0gKGNvbnN0IHhtbENoYXIgKiopIHhtbE1hbGxvYyhjdHh0LT50YWJTaXplICoKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNvbnN0IHhtbENoYXIgKikpOworICAgIGlmICh0YWIgPT0gTlVMTCkgeworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGNvbGxlY3QgYWxsIHRoZSBzdHJpbmdzIGFjY2VwdGVkIGJ5IHRoZSBzdWJleHByZXNzaW9uIG9uIGlucHV0CisgICAgICovCisgICAgbGVuID0geG1sRXhwR2V0U3RhcnRJbnQoY3R4dCwgc3ViLCB0YWIsIGN0eHQtPnRhYlNpemUsIDApOworICAgIHdoaWxlIChsZW4gPCAwKSB7CisgICAgICAgIGNvbnN0IHhtbENoYXIgKip0ZW1wOworCXRlbXAgPSAoY29uc3QgeG1sQ2hhciAqKikgeG1sUmVhbGxvYygoeG1sQ2hhciAqKikgdGFiLCBjdHh0LT50YWJTaXplICogMiAqCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjb25zdCB4bWxDaGFyICopKTsKKwlpZiAodGVtcCA9PSBOVUxMKSB7CisJICAgIHhtbEZyZWUoKHhtbENoYXIgKiopIHRhYik7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJdGFiID0gdGVtcDsKKwljdHh0LT50YWJTaXplICo9IDI7CisJbGVuID0geG1sRXhwR2V0U3RhcnRJbnQoY3R4dCwgc3ViLCB0YWIsIGN0eHQtPnRhYlNpemUsIDApOworICAgIH0KKyAgICBmb3IgKGkgPSAwO2kgPCBsZW47aSsrKSB7CisgICAgICAgIHRtcCA9IHhtbEV4cFN0cmluZ0Rlcml2ZUludChjdHh0LCBleHAsIHRhYltpXSk7CisJaWYgKCh0bXAgPT0gTlVMTCkgfHwgKHRtcCA9PSBmb3JiaWRkZW5FeHApKSB7CisJICAgIHhtbEV4cEZyZWUoY3R4dCwgcmV0KTsKKwkgICAgeG1sRnJlZSgoeG1sQ2hhciAqKikgdGFiKTsKKwkgICAgcmV0dXJuKHRtcCk7CisJfQorCXRtcDIgPSB4bWxFeHBTdHJpbmdEZXJpdmVJbnQoY3R4dCwgc3ViLCB0YWJbaV0pOworCWlmICgodG1wMiA9PSBOVUxMKSB8fCAodG1wMiA9PSBmb3JiaWRkZW5FeHApKSB7CisJICAgIHhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCByZXQpOworCSAgICB4bWxGcmVlKCh4bWxDaGFyICoqKSB0YWIpOworCSAgICByZXR1cm4odG1wKTsKKwl9CisJdG1wMyA9IHhtbEV4cEV4cERlcml2ZUludChjdHh0LCB0bXAsIHRtcDIpOworCXhtbEV4cEZyZWUoY3R4dCwgdG1wKTsKKwl4bWxFeHBGcmVlKGN0eHQsIHRtcDIpOworCisJaWYgKCh0bXAzID09IE5VTEwpIHx8ICh0bXAzID09IGZvcmJpZGRlbkV4cCkpIHsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCByZXQpOworCSAgICB4bWxGcmVlKCh4bWxDaGFyICoqKSB0YWIpOworCSAgICByZXR1cm4odG1wMyk7CisJfQorCisJaWYgKHJldCA9PSBOVUxMKQorCSAgICByZXQgPSB0bXAzOworCWVsc2UgeworCSAgICByZXQgPSB4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9PUiwgcmV0LCB0bXAzLCBOVUxMLCAwLCAwKTsKKwkgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJCXhtbEZyZWUoKHhtbENoYXIgKiopIHRhYik7CisJICAgICAgICByZXR1cm4oTlVMTCk7CisJICAgIH0KKwl9CisgICAgfQorICAgIHhtbEZyZWUoKHhtbENoYXIgKiopIHRhYik7CisgICAgcmV0dXJuKHJldCk7Cit9CisgICAgCisvKioKKyAqIHhtbEV4cEV4cERlcml2ZToKKyAqIEBjdHh0OiB0aGUgZXhwcmVzc2lvbnMgY29udGV4dAorICogQGV4cDogdGhlIGVuZ2xvYmluZyBleHByZXNzaW9uCisgKiBAc3ViOiB0aGUgc3ViZXhwcmVzc2lvbgorICoKKyAqIEV2YWx1YXRlcyB0aGUgZXhwcmVzc2lvbiByZXN1bHRpbmcgZnJvbSBAZXhwIGNvbnN1bWluZyBhIHN1YiBleHByZXNzaW9uIEBzdWIKKyAqIEJhc2VkIG9uIGFsZ2VicmFpYyBkZXJpdmF0aW9uIGFuZCBzb21ldGltZXMgZGlyZWN0IEJyem96b3dza2kgZGVyaXZhdGlvbgorICogaXQgdXN1YWxseSB0YXRrZXMgbGVzcyB0aGFuIGxpbmVhciB0aW1lIGFuZCBjYW4gaGFuZGxlIGV4cHJlc3Npb25zIGdlbmVyYXRpbmcKKyAqIGluZmluaXRlIGxhbmd1YWdlcy4KKyAqCisgKiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgZXhwcmVzc2lvbiBvciBOVUxMIGluIGNhc2Ugb2YgaW50ZXJuYWwgZXJyb3IsIHRoZQorICogICAgICAgICByZXN1bHQgbXVzdCBiZSBmcmVlZAorICovCit4bWxFeHBOb2RlUHRyCit4bWxFeHBFeHBEZXJpdmUoeG1sRXhwQ3R4dFB0ciBjdHh0LCB4bWxFeHBOb2RlUHRyIGV4cCwgeG1sRXhwTm9kZVB0ciBzdWIpIHsKKyAgICBpZiAoKGV4cCA9PSBOVUxMKSB8fCAoY3R4dCA9PSBOVUxMKSB8fCAoc3ViID09IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICAqIE8oMSkgc3BlZWR1cHMKKyAgICAgKi8KKyAgICBpZiAoSVNfTklMTEFCTEUoc3ViKSAmJiAoIUlTX05JTExBQkxFKGV4cCkpKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwlwcmludGYoIlN1YiBuaWxsYWJsZSBhbmQgbm90IGV4cCA6IGNhbid0IHN1YnN1bWVcbiIpOworI2VuZGlmCisgICAgICAgIHJldHVybihmb3JiaWRkZW5FeHApOworICAgIH0KKyAgICBpZiAoeG1sRXhwQ2hlY2tDYXJkKGV4cCwgc3ViKSA9PSAwKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwlwcmludGYoInN1YiBnZW5lcmF0ZSBsb25ndWVyIHNlcXVhbmNlcyB0aGFuIGV4cCA6IGNhbid0IHN1YnN1bWVcbiIpOworI2VuZGlmCisgICAgICAgIHJldHVybihmb3JiaWRkZW5FeHApOworICAgIH0KKyAgICByZXR1cm4oeG1sRXhwRXhwRGVyaXZlSW50KGN0eHQsIGV4cCwgc3ViKSk7Cit9CisKKy8qKgorICogeG1sRXhwU3Vic3VtZToKKyAqIEBjdHh0OiB0aGUgZXhwcmVzc2lvbnMgY29udGV4dAorICogQGV4cDogdGhlIGVuZ2xvYmluZyBleHByZXNzaW9uCisgKiBAc3ViOiB0aGUgc3ViZXhwcmVzc2lvbgorICoKKyAqIENoZWNrIHdoZXRoZXIgQGV4cCBhY2NlcHRzIGFsbCB0aGUgbGFuZ3VhZ2VzIGFjY2V4cHRlZCBieSBAc3ViCisgKiB0aGUgaW5wdXQgYmVpbmcgYSBzdWJleHByZXNzaW9uLgorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgaWYgZmFsc2UgYW5kIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50Cit4bWxFeHBTdWJzdW1lKHhtbEV4cEN0eHRQdHIgY3R4dCwgeG1sRXhwTm9kZVB0ciBleHAsIHhtbEV4cE5vZGVQdHIgc3ViKSB7CisgICAgeG1sRXhwTm9kZVB0ciB0bXA7CisgICAgCisgICAgaWYgKChleHAgPT0gTlVMTCkgfHwgKGN0eHQgPT0gTlVMTCkgfHwgKHN1YiA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIC8qCisgICAgICogVE9ETzogc3BlZWR1cCBieSBjaGVja2luZyB0aGUgbGFuZ3VhZ2Ugb2Ygc3ViIGlzIGEgc3Vic2V0IG9mIHRoZQorICAgICAqICAgICAgIGxhbmd1YWdlIG9mIGV4cAorICAgICAqLworICAgIC8qCisgICAgICogTygxKSBzcGVlZHVwcworICAgICAqLworICAgIGlmIChJU19OSUxMQUJMRShzdWIpICYmICghSVNfTklMTEFCTEUoZXhwKSkpIHsKKyNpZmRlZiBERUJVR19ERVJJVgorCXByaW50ZigiU3ViIG5pbGxhYmxlIGFuZCBub3QgZXhwIDogY2FuJ3Qgc3Vic3VtZVxuIik7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKyAgICBpZiAoeG1sRXhwQ2hlY2tDYXJkKGV4cCwgc3ViKSA9PSAwKSB7CisjaWZkZWYgREVCVUdfREVSSVYKKwlwcmludGYoInN1YiBnZW5lcmF0ZSBsb25ndWVyIHNlcXVhbmNlcyB0aGFuIGV4cCA6IGNhbid0IHN1YnN1bWVcbiIpOworI2VuZGlmCisgICAgICAgIHJldHVybigwKTsKKyAgICB9CisgICAgdG1wID0geG1sRXhwRXhwRGVyaXZlSW50KGN0eHQsIGV4cCwgc3ViKTsKKyNpZmRlZiBERUJVR19ERVJJVgorICAgIHByaW50ZigiUmVzdWx0IGRlcml2YXRpb24gOlxuIik7CisgICAgUFJJTlRfRVhQKHRtcCk7CisjZW5kaWYKKyAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaWYgKHRtcCA9PSBmb3JiaWRkZW5FeHApCisJcmV0dXJuKDApOworICAgIGlmICh0bXAgPT0gZW1wdHlFeHApCisJcmV0dXJuKDEpOworICAgIGlmICgodG1wICE9IE5VTEwpICYmIChJU19OSUxMQUJMRSh0bXApKSkgeworICAgICAgICB4bWxFeHBGcmVlKGN0eHQsIHRtcCk7CisgICAgICAgIHJldHVybigxKTsKKyAgICB9CisgICAgeG1sRXhwRnJlZShjdHh0LCB0bXApOworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVBhcnNpbmcgZXhwcmVzc2lvbiAJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgeG1sRXhwTm9kZVB0ciB4bWxFeHBQYXJzZUV4cHIoeG1sRXhwQ3R4dFB0ciBjdHh0KTsKKworI3VuZGVmIENVUgorI2RlZmluZSBDVVIgKCpjdHh0LT5jdXIpCisjdW5kZWYgTkVYVAorI2RlZmluZSBORVhUIGN0eHQtPmN1cisrOworI3VuZGVmIElTX0JMQU5LCisjZGVmaW5lIElTX0JMQU5LKGMpICgoYyA9PSAnICcpIHx8IChjID09ICdcbicpIHx8IChjID09ICdccicpIHx8IChjID09ICdcdCcpKQorI2RlZmluZSBTS0lQX0JMQU5LUyB3aGlsZSAoSVNfQkxBTksoKmN0eHQtPmN1cikpIGN0eHQtPmN1cisrOworCitzdGF0aWMgaW50Cit4bWxFeHBQYXJzZU51bWJlcih4bWxFeHBDdHh0UHRyIGN0eHQpIHsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIFNLSVBfQkxBTktTCisgICAgaWYgKENVUiA9PSAnKicpIHsKKwlORVhUCisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgaWYgKChDVVIgPCAnMCcpIHx8IChDVVIgPiAnOScpKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHdoaWxlICgoQ1VSID49ICcwJykgJiYgKENVUiA8PSAnOScpKSB7CisgICAgICAgIHJldCA9IHJldCAqIDEwICsgKENVUiAtICcwJyk7CisJTkVYVAorICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHhtbEV4cE5vZGVQdHIKK3htbEV4cFBhcnNlT3IoeG1sRXhwQ3R4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgY2hhciAqYmFzZTsKKyAgICB4bWxFeHBOb2RlUHRyIHJldDsKKyAgICBjb25zdCB4bWxDaGFyICp2YWw7CisKKyAgICBTS0lQX0JMQU5LUworICAgIGJhc2UgPSBjdHh0LT5jdXI7CisgICAgaWYgKCpjdHh0LT5jdXIgPT0gJygnKSB7CisgICAgICAgIE5FWFQKKwlyZXQgPSB4bWxFeHBQYXJzZUV4cHIoY3R4dCk7CisJU0tJUF9CTEFOS1MKKwlpZiAoKmN0eHQtPmN1ciAhPSAnKScpIHsKKwkgICAgZnByaW50ZihzdGRlcnIsICJ1bmJhbGFuY2VkICcoJyA6ICVzXG4iLCBiYXNlKTsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCByZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCU5FWFQ7CisJU0tJUF9CTEFOS1MKKwlnb3RvIHBhcnNlX3F1YW50aWZpZXI7CisgICAgfQorICAgIHdoaWxlICgoQ1VSICE9IDApICYmICghKElTX0JMQU5LKENVUikpKSAmJiAoQ1VSICE9ICcoJykgJiYKKyAgICAgICAgICAgKENVUiAhPSAnKScpICYmIChDVVIgIT0gJ3wnKSAmJiAoQ1VSICE9ICcsJykgJiYgKENVUiAhPSAneycpICYmCisJICAgKENVUiAhPSAnKicpICYmIChDVVIgIT0gJysnKSAmJiAoQ1VSICE9ICc/JykgJiYgKENVUiAhPSAnfScpKQorCU5FWFQ7CisgICAgdmFsID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBCQURfQ0FTVCBiYXNlLCBjdHh0LT5jdXIgLSBiYXNlKTsKKyAgICBpZiAodmFsID09IE5VTEwpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICByZXQgPSB4bWxFeHBIYXNoR2V0RW50cnkoY3R4dCwgWE1MX0VYUF9BVE9NLCBOVUxMLCBOVUxMLCB2YWwsIDAsIDApOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIFNLSVBfQkxBTktTCitwYXJzZV9xdWFudGlmaWVyOgorICAgIGlmIChDVVIgPT0gJ3snKSB7CisgICAgICAgIGludCBtaW4sIG1heDsKKworICAgICAgICBORVhUCisJbWluID0geG1sRXhwUGFyc2VOdW1iZXIoY3R4dCk7CisJaWYgKG1pbiA8IDApIHsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCByZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCVNLSVBfQkxBTktTCisJaWYgKENVUiA9PSAnLCcpIHsKKwkgICAgTkVYVAorCSAgICBtYXggPSB4bWxFeHBQYXJzZU51bWJlcihjdHh0KTsKKwkgICAgU0tJUF9CTEFOS1MKKwl9IGVsc2UKKwkgICAgbWF4ID0gbWluOworCWlmIChDVVIgIT0gJ30nKSB7CisJICAgIHhtbEV4cEZyZWUoY3R4dCwgcmV0KTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKyAgICAgICAgTkVYVAorCXJldCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX0NPVU5ULCByZXQsIE5VTEwsIE5VTEwsCisJICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiwgbWF4KTsKKwlTS0lQX0JMQU5LUworICAgIH0gZWxzZSBpZiAoQ1VSID09ICc/JykgeworICAgICAgICBORVhUCisJcmV0ID0geG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfQ09VTlQsIHJldCwgTlVMTCwgTlVMTCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSk7CisJU0tJUF9CTEFOS1MKKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnKycpIHsKKyAgICAgICAgTkVYVAorCXJldCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX0NPVU5ULCByZXQsIE5VTEwsIE5VTEwsCisJICAgICAgICAgICAgICAgICAgICAgICAgIDEsIC0xKTsKKwlTS0lQX0JMQU5LUworICAgIH0gZWxzZSBpZiAoQ1VSID09ICcqJykgeworICAgICAgICBORVhUCisJcmV0ID0geG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfQ09VTlQsIHJldCwgTlVMTCwgTlVMTCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgMCwgLTEpOworCVNLSVBfQkxBTktTCisgICAgfSAKKyAgICByZXR1cm4ocmV0KTsKK30KKworCitzdGF0aWMgeG1sRXhwTm9kZVB0cgoreG1sRXhwUGFyc2VTZXEoeG1sRXhwQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sRXhwTm9kZVB0ciByZXQsIHJpZ2h0OworCisgICAgcmV0ID0geG1sRXhwUGFyc2VPcihjdHh0KTsKKyAgICBTS0lQX0JMQU5LUworICAgIHdoaWxlIChDVVIgPT0gJ3wnKSB7CisgICAgICAgIE5FWFQKKwlyaWdodCA9IHhtbEV4cFBhcnNlT3IoY3R4dCk7CisJaWYgKHJpZ2h0ID09IE5VTEwpIHsKKwkgICAgeG1sRXhwRnJlZShjdHh0LCByZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCXJldCA9IHhtbEV4cEhhc2hHZXRFbnRyeShjdHh0LCBYTUxfRVhQX09SLCByZXQsIHJpZ2h0LCBOVUxMLCAwLCAwKTsKKwlpZiAocmV0ID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyB4bWxFeHBOb2RlUHRyCit4bWxFeHBQYXJzZUV4cHIoeG1sRXhwQ3R4dFB0ciBjdHh0KSB7CisgICAgeG1sRXhwTm9kZVB0ciByZXQsIHJpZ2h0OworCisgICAgcmV0ID0geG1sRXhwUGFyc2VTZXEoY3R4dCk7CisgICAgU0tJUF9CTEFOS1MKKyAgICB3aGlsZSAoQ1VSID09ICcsJykgeworICAgICAgICBORVhUCisJcmlnaHQgPSB4bWxFeHBQYXJzZVNlcShjdHh0KTsKKwlpZiAocmlnaHQgPT0gTlVMTCkgeworCSAgICB4bWxFeHBGcmVlKGN0eHQsIHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJcmV0ID0geG1sRXhwSGFzaEdldEVudHJ5KGN0eHQsIFhNTF9FWFBfU0VRLCByZXQsIHJpZ2h0LCBOVUxMLCAwLCAwKTsKKwlpZiAocmV0ID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sRXhwUGFyc2U6CisgKiBAY3R4dDogdGhlIGV4cHJlc3Npb25zIGNvbnRleHQKKyAqIEBleHByOiB0aGUgMCB0ZXJtaW5hdGVkIHN0cmluZworICoKKyAqIE1pbmltYWwgcGFyc2VyIGZvciByZWdleHBzLCBpdCB1bmRlcnN0YW5kIHRoZSBmb2xsb3dpbmcgY29uc3RydWN0cworICogIC0gc3RyaW5nIHRlcm1pbmFscworICogIC0gY2hvaWNlIG9wZXJhdG9yIHwKKyAqICAtIHNlcXVlbmNlIG9wZXJhdG9yICwKKyAqICAtIHN1YmV4cHJlc3Npb25zICguLi4pCisgKiAgLSB1c3VhbCBjYXJkaW5hbGl0eSBvcGVyYXRvcnMgKyAqIGFuZCA/CisgKiAgLSBmaW5pdGUgc2VxdWVuY2VzICB7IG1pbiwgbWF4IH0KKyAqICAtIGluZmluaXRlIHNlcXVlbmNlcyB7IG1pbiwgKiB9CisgKiBUaGVyZSBpcyBtaW5pbWFsIGNoZWNraW5ncyBtYWRlIGVzcGVjaWFsbHkgbm8gY2hlY2tpbmcgb24gc3RyaW5ncyB2YWx1ZXMKKyAqCisgKiBSZXR1cm5zIGEgbmV3IGV4cHJlc3Npb24gb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqLworeG1sRXhwTm9kZVB0cgoreG1sRXhwUGFyc2UoeG1sRXhwQ3R4dFB0ciBjdHh0LCBjb25zdCBjaGFyICpleHByKSB7CisgICAgeG1sRXhwTm9kZVB0ciByZXQ7CisKKyAgICBjdHh0LT5leHByID0gZXhwcjsKKyAgICBjdHh0LT5jdXIgPSBleHByOworCisgICAgcmV0ID0geG1sRXhwUGFyc2VFeHByKGN0eHQpOworICAgIFNLSVBfQkxBTktTCisgICAgaWYgKCpjdHh0LT5jdXIgIT0gMCkgeworICAgICAgICB4bWxFeHBGcmVlKGN0eHQsIHJldCk7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxFeHBEdW1wSW50KHhtbEJ1ZmZlclB0ciBidWYsIHhtbEV4cE5vZGVQdHIgZXhwciwgaW50IGdsb2IpIHsKKyAgICB4bWxFeHBOb2RlUHRyIGM7CisKKyAgICBpZiAoZXhwciA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKGdsb2IpIHhtbEJ1ZmZlcldyaXRlQ2hhcihidWYsICIoIik7CisgICAgc3dpdGNoIChleHByLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX0VYUF9FTVBUWToKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgImVtcHR5Iik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FWFBfRk9SQklEOgorCSAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiZm9yYmlkZGVuIik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FWFBfQVRPTToKKwkgICAgeG1sQnVmZmVyV3JpdGVDSEFSKGJ1ZiwgZXhwci0+ZXhwX3N0cik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9FWFBfU0VROgorCSAgICBjID0gZXhwci0+ZXhwX2xlZnQ7CisJICAgIGlmICgoYy0+dHlwZSA9PSBYTUxfRVhQX1NFUSkgfHwgKGMtPnR5cGUgPT0gWE1MX0VYUF9PUikpCisJICAgICAgICB4bWxFeHBEdW1wSW50KGJ1ZiwgYywgMSk7CisJICAgIGVsc2UKKwkgICAgICAgIHhtbEV4cER1bXBJbnQoYnVmLCBjLCAwKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiAsICIpOworCSAgICBjID0gZXhwci0+ZXhwX3JpZ2h0OworCSAgICBpZiAoKGMtPnR5cGUgPT0gWE1MX0VYUF9TRVEpIHx8IChjLT50eXBlID09IFhNTF9FWFBfT1IpKQorCSAgICAgICAgeG1sRXhwRHVtcEludChidWYsIGMsIDEpOworCSAgICBlbHNlCisJICAgICAgICB4bWxFeHBEdW1wSW50KGJ1ZiwgYywgMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVhQX09SOgorCSAgICBjID0gZXhwci0+ZXhwX2xlZnQ7CisJICAgIGlmICgoYy0+dHlwZSA9PSBYTUxfRVhQX1NFUSkgfHwgKGMtPnR5cGUgPT0gWE1MX0VYUF9PUikpCisJICAgICAgICB4bWxFeHBEdW1wSW50KGJ1ZiwgYywgMSk7CisJICAgIGVsc2UKKwkgICAgICAgIHhtbEV4cER1bXBJbnQoYnVmLCBjLCAwKTsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgIiB8ICIpOworCSAgICBjID0gZXhwci0+ZXhwX3JpZ2h0OworCSAgICBpZiAoKGMtPnR5cGUgPT0gWE1MX0VYUF9TRVEpIHx8IChjLT50eXBlID09IFhNTF9FWFBfT1IpKQorCSAgICAgICAgeG1sRXhwRHVtcEludChidWYsIGMsIDEpOworCSAgICBlbHNlCisJICAgICAgICB4bWxFeHBEdW1wSW50KGJ1ZiwgYywgMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVhQX0NPVU5UOiB7CisJICAgIGNoYXIgcmVwWzQwXTsKKwkgICAgCisJICAgIGMgPSBleHByLT5leHBfbGVmdDsKKwkgICAgaWYgKChjLT50eXBlID09IFhNTF9FWFBfU0VRKSB8fCAoYy0+dHlwZSA9PSBYTUxfRVhQX09SKSkKKwkgICAgICAgIHhtbEV4cER1bXBJbnQoYnVmLCBjLCAxKTsKKwkgICAgZWxzZQorCSAgICAgICAgeG1sRXhwRHVtcEludChidWYsIGMsIDApOworCSAgICBpZiAoKGV4cHItPmV4cF9taW4gPT0gMCkgJiYgKGV4cHItPmV4cF9tYXggPT0gMSkpIHsKKwkJcmVwWzBdID0gJz8nOworCQlyZXBbMV0gPSAwOworCSAgICB9IGVsc2UgaWYgKChleHByLT5leHBfbWluID09IDApICYmIChleHByLT5leHBfbWF4ID09IC0xKSkgeworCQlyZXBbMF0gPSAnKic7CisJCXJlcFsxXSA9IDA7CisJICAgIH0gZWxzZSBpZiAoKGV4cHItPmV4cF9taW4gPT0gMSkgJiYgKGV4cHItPmV4cF9tYXggPT0gLTEpKSB7CisJCXJlcFswXSA9ICcrJzsKKwkJcmVwWzFdID0gMDsKKwkgICAgfSBlbHNlIGlmIChleHByLT5leHBfbWF4ID09IGV4cHItPmV4cF9taW4pIHsKKwkgICAgICAgIHNucHJpbnRmKHJlcCwgMzksICJ7JWR9IiwgZXhwci0+ZXhwX21pbik7CisJICAgIH0gZWxzZSBpZiAoZXhwci0+ZXhwX21heCA8IDApIHsKKwkgICAgICAgIHNucHJpbnRmKHJlcCwgMzksICJ7JWQsaW5mfSIsIGV4cHItPmV4cF9taW4pOworCSAgICB9IGVsc2UgeworCSAgICAgICAgc25wcmludGYocmVwLCAzOSwgInslZCwlZH0iLCBleHByLT5leHBfbWluLCBleHByLT5leHBfbWF4KTsKKwkgICAgfQorCSAgICByZXBbMzldID0gMDsKKwkgICAgeG1sQnVmZmVyV3JpdGVDaGFyKGJ1ZiwgcmVwKTsKKwkgICAgYnJlYWs7CisJfQorCWRlZmF1bHQ6CisJICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgaW4gdHJlZVxuIik7CisgICAgfQorICAgIGlmIChnbG9iKQorICAgICAgICB4bWxCdWZmZXJXcml0ZUNoYXIoYnVmLCAiKSIpOworfQorLyoqCisgKiB4bWxFeHBEdW1wOgorICogQGJ1ZjogIGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIG91dHB1dAorICogQGV4cHI6ICB0aGUgY29tcGlsZWQgZXhwcmVzc2lvbgorICoKKyAqIFNlcmlhbGl6ZSB0aGUgZXhwcmVzc2lvbiBhcyBjb21waWxlZCB0byB0aGUgYnVmZmVyCisgKi8KK3ZvaWQKK3htbEV4cER1bXAoeG1sQnVmZmVyUHRyIGJ1ZiwgeG1sRXhwTm9kZVB0ciBleHByKSB7CisgICAgaWYgKChidWYgPT0gTlVMTCkgfHwgKGV4cHIgPT0gTlVMTCkpCisgICAgICAgIHJldHVybjsKKyAgICB4bWxFeHBEdW1wSW50KGJ1ZiwgZXhwciwgMCk7Cit9CisKKy8qKgorICogeG1sRXhwTWF4VG9rZW46CisgKiBAZXhwcjogYSBjb21waWxlZCBleHByZXNzaW9uCisgKgorICogSW5kaWNhdGUgdGhlIG1heGltdW0gbnVtYmVyIG9mIGlucHV0IGEgZXhwcmVzc2lvbiBjYW4gYWNjZXB0CisgKgorICogUmV0dXJucyB0aGUgbWF4aW11bSBsZW5ndGggb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbEV4cE1heFRva2VuKHhtbEV4cE5vZGVQdHIgZXhwcikgeworICAgIGlmIChleHByID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmV0dXJuKGV4cHItPmNfbWF4KTsKK30KKworLyoqCisgKiB4bWxFeHBDdHh0TmJOb2RlczoKKyAqIEBjdHh0OiBhbiBleHByZXNzaW9uIGNvbnRleHQKKyAqCisgKiBEZWJ1Z2dpbmcgZmFjaWxpdHkgcHJvdmlkZXMgdGhlIG51bWJlciBvZiBhbGxvY2F0ZWQgbm9kZXMgYXQgYSB0aGF0IHBvaW50CisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHVzZSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sRXhwQ3R4dE5iTm9kZXMoeG1sRXhwQ3R4dFB0ciBjdHh0KSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oY3R4dC0+bmJfbm9kZXMpOworfQorCisvKioKKyAqIHhtbEV4cEN0eHROYkNvbnM6CisgKiBAY3R4dDogYW4gZXhwcmVzc2lvbiBjb250ZXh0CisgKgorICogRGVidWdnaW5nIGZhY2lsaXR5IHByb3ZpZGVzIHRoZSBudW1iZXIgb2YgYWxsb2NhdGVkIG5vZGVzIG92ZXIgbGlmZXRpbWUKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygbm9kZXMgZXZlciBhbGxvY2F0ZWQgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbEV4cEN0eHROYkNvbnMoeG1sRXhwQ3R4dFB0ciBjdHh0KSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICByZXR1cm4oY3R4dC0+bmJfY29ucyk7Cit9CisKKyNlbmRpZiAvKiBMSUJYTUxfRVhQUl9FTkFCTEVEICovCisjZGVmaW5lIGJvdHRvbV94bWxyZWdleHAKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCisjZW5kaWYgLyogTElCWE1MX1JFR0VYUF9FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbHNhdmUuYyBiL2xpYnhtbDItMi43LjcveG1sc2F2ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYTVkYTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3htbHNhdmUuYwpAQCAtMCwwICsxLDI1NDkgQEAKKy8qCisgKiB4bWxzYXZlLmM6IEltcGxlbWV0YXRpb24gb2YgdGhlIGRvY3VtZW50IHNlcmlhbGl6ZXIKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogZGFuaWVsQHZlaWxsYXJkLmNvbQorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC90cmVlLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHNhdmUuaD4KKworI2RlZmluZSBNQVhfSU5ERU5UIDYwCisKKyNpbmNsdWRlIDxsaWJ4bWwvSFRNTHRyZWUuaD4KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVhIVE1MIGRldGVjdGlvbgkJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBYSFRNTF9TVFJJQ1RfUFVCTElDX0lEIEJBRF9DQVNUIFwKKyAgICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyNkZWZpbmUgWEhUTUxfU1RSSUNUX1NZU1RFTV9JRCBCQURfQ0FTVCBcCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCIKKyNkZWZpbmUgWEhUTUxfRlJBTUVfUFVCTElDX0lEIEJBRF9DQVNUIFwKKyAgICItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIgorI2RlZmluZSBYSFRNTF9GUkFNRV9TWVNURU1fSUQgQkFEX0NBU1QgXAorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLWZyYW1lc2V0LmR0ZCIKKyNkZWZpbmUgWEhUTUxfVFJBTlNfUFVCTElDX0lEIEJBRF9DQVNUIFwKKyAgICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyNkZWZpbmUgWEhUTUxfVFJBTlNfU1lTVEVNX0lEIEJBRF9DQVNUIFwKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIgorCisjZGVmaW5lIFhIVE1MX05TX05BTUUgQkFEX0NBU1QgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiCisvKioKKyAqIHhtbElzWEhUTUw6CisgKiBAc3lzdGVtSUQ6ICB0aGUgc3lzdGVtIGlkZW50aWZpZXIKKyAqIEBwdWJsaWNJRDogIHRoZSBwdWJsaWMgaWRlbnRpZmllcgorICoKKyAqIFRyeSB0byBmaW5kIGlmIHRoZSBkb2N1bWVudCBjb3JyZXNwb25kIHRvIGFuIFhIVE1MIERURAorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlLCAwIGlmIG5vdCBhbmQgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbElzWEhUTUwoY29uc3QgeG1sQ2hhciAqc3lzdGVtSUQsIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lEKSB7CisgICAgaWYgKChzeXN0ZW1JRCA9PSBOVUxMKSAmJiAocHVibGljSUQgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAocHVibGljSUQgIT0gTlVMTCkgeworCWlmICh4bWxTdHJFcXVhbChwdWJsaWNJRCwgWEhUTUxfU1RSSUNUX1BVQkxJQ19JRCkpIHJldHVybigxKTsKKwlpZiAoeG1sU3RyRXF1YWwocHVibGljSUQsIFhIVE1MX0ZSQU1FX1BVQkxJQ19JRCkpIHJldHVybigxKTsKKwlpZiAoeG1sU3RyRXF1YWwocHVibGljSUQsIFhIVE1MX1RSQU5TX1BVQkxJQ19JRCkpIHJldHVybigxKTsKKyAgICB9CisgICAgaWYgKHN5c3RlbUlEICE9IE5VTEwpIHsKKwlpZiAoeG1sU3RyRXF1YWwoc3lzdGVtSUQsIFhIVE1MX1NUUklDVF9TWVNURU1fSUQpKSByZXR1cm4oMSk7CisJaWYgKHhtbFN0ckVxdWFsKHN5c3RlbUlELCBYSFRNTF9GUkFNRV9TWVNURU1fSUQpKSByZXR1cm4oMSk7CisJaWYgKHhtbFN0ckVxdWFsKHN5c3RlbUlELCBYSFRNTF9UUkFOU19TWVNURU1fSUQpKSByZXR1cm4oMSk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorCisjZGVmaW5lIFRPRE8gCQkJCQkJCQlcCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCQkJCVwKKwkgICAgIlVuaW1wbGVtZW50ZWQgYmxvY2sgYXQgJXM6JWRcbiIsCQkJCVwKKyAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisKK3N0cnVjdCBfeG1sU2F2ZUN0eHQgeworICAgIHZvaWQgKl9wcml2YXRlOworICAgIGludCB0eXBlOworICAgIGludCBmZDsKKyAgICBjb25zdCB4bWxDaGFyICpmaWxlbmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICplbmNvZGluZzsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXI7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIGludCBvcHRpb25zOworICAgIGludCBsZXZlbDsKKyAgICBpbnQgZm9ybWF0OworICAgIGNoYXIgaW5kZW50W01BWF9JTkRFTlQgKyAxXTsJLyogYXJyYXkgZm9yIGluZGVudGluZyBvdXRwdXQgKi8KKyAgICBpbnQgaW5kZW50X25yOworICAgIGludCBpbmRlbnRfc2l6ZTsKKyAgICB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIGVzY2FwZTsJLyogdXNlZCBmb3IgZWxlbWVudCBjb250ZW50ICovCisgICAgeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyBlc2NhcGVBdHRyOy8qIHVzZWQgZm9yIGF0dHJpYnV0ZSBjb250ZW50ICovCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJCU91dHB1dCBlcnJvciBoYW5kbGVycwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIHhtbFNhdmVFcnJNZW1vcnk6CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYW4gb3V0IG9mIG1lbW9yeSBjb25kaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3htbFNhdmVFcnJNZW1vcnkoY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9PVVRQVVQsIFhNTF9FUlJfTk9fTUVNT1JZLCBOVUxMLCBOVUxMLCBleHRyYSk7Cit9CisKKy8qKgorICogeG1sU2F2ZUVycjoKKyAqIEBjb2RlOiAgdGhlIGVycm9yIG51bWJlcgorICogQG5vZGU6ICB0aGUgbG9jYXRpb24gb2YgdGhlIGVycm9yLgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTYXZlRXJyKGludCBjb2RlLCB4bWxOb2RlUHRyIG5vZGUsIGNvbnN0IGNoYXIgKmV4dHJhKQoreworICAgIGNvbnN0IGNoYXIgKm1zZyA9IE5VTEw7CisKKyAgICBzd2l0Y2goY29kZSkgeworICAgICAgICBjYXNlIFhNTF9TQVZFX05PVF9VVEY4OgorCSAgICBtc2cgPSAic3RyaW5nIGlzIG5vdCBpbiBVVEYtOFxuIjsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0FWRV9DSEFSX0lOVkFMSUQ6CisJICAgIG1zZyA9ICJpbnZhbGlkIGNoYXJhY3RlciB2YWx1ZVxuIjsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HOgorCSAgICBtc2cgPSAidW5rbm93biBlbmNvZGluZyAlc1xuIjsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0FWRV9OT19ET0NUWVBFOgorCSAgICBtc2cgPSAiZG9jdW1lbnQgaGFzIG5vIERPQ1RZUEVcbiI7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIG1zZyA9ICJ1bmV4cGVjdGVkIGVycm9yIG51bWJlclxuIjsKKyAgICB9CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9PVVRQVVQsIGNvZGUsIG5vZGUsIG1zZywgZXh0cmEpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJU3BlY2lhbCBlc2NhcGluZyByb3V0aW5lcwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB1bnNpZ25lZCBjaGFyICoKK3htbFNlcmlhbGl6ZUhleENoYXJSZWYodW5zaWduZWQgY2hhciAqb3V0LCBpbnQgdmFsKSB7CisgICAgdW5zaWduZWQgY2hhciAqcHRyOworCisgICAgKm91dCsrID0gJyYnOworICAgICpvdXQrKyA9ICcjJzsKKyAgICAqb3V0KysgPSAneCc7CisgICAgaWYgKHZhbCA8IDB4MTApIHB0ciA9IG91dDsKKyAgICBlbHNlIGlmICh2YWwgPCAweDEwMCkgcHRyID0gb3V0ICsgMTsKKyAgICBlbHNlIGlmICh2YWwgPCAweDEwMDApIHB0ciA9IG91dCArIDI7CisgICAgZWxzZSBpZiAodmFsIDwgMHgxMDAwMCkgcHRyID0gb3V0ICsgMzsKKyAgICBlbHNlIGlmICh2YWwgPCAweDEwMDAwMCkgcHRyID0gb3V0ICsgNDsKKyAgICBlbHNlIHB0ciA9IG91dCArIDU7CisgICAgb3V0ID0gcHRyICsgMTsKKyAgICB3aGlsZSAodmFsID4gMCkgeworCXN3aXRjaCAodmFsICYgMHhGKSB7CisJICAgIGNhc2UgMDogKnB0ci0tID0gJzAnOyBicmVhazsKKwkgICAgY2FzZSAxOiAqcHRyLS0gPSAnMSc7IGJyZWFrOworCSAgICBjYXNlIDI6ICpwdHItLSA9ICcyJzsgYnJlYWs7CisJICAgIGNhc2UgMzogKnB0ci0tID0gJzMnOyBicmVhazsKKwkgICAgY2FzZSA0OiAqcHRyLS0gPSAnNCc7IGJyZWFrOworCSAgICBjYXNlIDU6ICpwdHItLSA9ICc1JzsgYnJlYWs7CisJICAgIGNhc2UgNjogKnB0ci0tID0gJzYnOyBicmVhazsKKwkgICAgY2FzZSA3OiAqcHRyLS0gPSAnNyc7IGJyZWFrOworCSAgICBjYXNlIDg6ICpwdHItLSA9ICc4JzsgYnJlYWs7CisJICAgIGNhc2UgOTogKnB0ci0tID0gJzknOyBicmVhazsKKwkgICAgY2FzZSAweEE6ICpwdHItLSA9ICdBJzsgYnJlYWs7CisJICAgIGNhc2UgMHhCOiAqcHRyLS0gPSAnQic7IGJyZWFrOworCSAgICBjYXNlIDB4QzogKnB0ci0tID0gJ0MnOyBicmVhazsKKwkgICAgY2FzZSAweEQ6ICpwdHItLSA9ICdEJzsgYnJlYWs7CisJICAgIGNhc2UgMHhFOiAqcHRyLS0gPSAnRSc7IGJyZWFrOworCSAgICBjYXNlIDB4RjogKnB0ci0tID0gJ0YnOyBicmVhazsKKwkgICAgZGVmYXVsdDogKnB0ci0tID0gJzAnOyBicmVhazsKKwl9CisJdmFsID4+PSA0OworICAgIH0KKyAgICAqb3V0KysgPSAnOyc7CisgICAgKm91dCA9IDA7CisgICAgcmV0dXJuKG91dCk7Cit9CisKKy8qKgorICogeG1sRXNjYXBlRW50aXRpZXM6CisgKiBAb3V0OiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGJ5dGVzIHRvIHN0b3JlIHRoZSByZXN1bHQKKyAqIEBvdXRsZW46ICB0aGUgbGVuZ3RoIG9mIEBvdXQKKyAqIEBpbjogIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiB1bmVzY2FwZWQgVVRGLTggYnl0ZXMKKyAqIEBpbmxlbjogIHRoZSBsZW5ndGggb2YgQGluCisgKgorICogVGFrZSBhIGJsb2NrIG9mIFVURi04IGNoYXJzIGluIGFuZCBlc2NhcGUgdGhlbS4gVXNlZCB3aGVuIHRoZXJlIGlzIG5vCisgKiBlbmNvZGluZyBzcGVjaWZpZWQuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2Nlc3MsIG9yIC0xIG90aGVyd2lzZQorICogVGhlIHZhbHVlIG9mIEBpbmxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQKKyAqICAgICBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIHBvc2l0aXZlLCBlbHNlIHVucHJlZGljdGFibGUuCisgKiBUaGUgdmFsdWUgb2YgQG91dGxlbiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQuCisgKi8KK3N0YXRpYyBpbnQKK3htbEVzY2FwZUVudGl0aWVzKHVuc2lnbmVkIGNoYXIqIG91dCwgaW50ICpvdXRsZW4sCisgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIqIGluLCBpbnQgKmlubGVuKSB7CisgICAgdW5zaWduZWQgY2hhciogb3V0c3RhcnQgPSBvdXQ7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogYmFzZSA9IGluOworICAgIHVuc2lnbmVkIGNoYXIqIG91dGVuZCA9IG91dCArICpvdXRsZW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5lbmQ7CisgICAgaW50IHZhbDsKKworICAgIGluZW5kID0gaW4gKyAoKmlubGVuKTsKKyAgICAKKyAgICB3aGlsZSAoKGluIDwgaW5lbmQpICYmIChvdXQgPCBvdXRlbmQpKSB7CisgICAgCWlmICgqaW4gPT0gJzwnKSB7CisJICAgIGlmIChvdXRlbmQgLSBvdXQgPCA0KSBicmVhazsKKwkgICAgKm91dCsrID0gJyYnOworCSAgICAqb3V0KysgPSAnbCc7CisJICAgICpvdXQrKyA9ICd0JzsKKwkgICAgKm91dCsrID0gJzsnOworCSAgICBpbisrOworCSAgICBjb250aW51ZTsKKwl9IGVsc2UgaWYgKCppbiA9PSAnPicpIHsKKwkgICAgaWYgKG91dGVuZCAtIG91dCA8IDQpIGJyZWFrOworCSAgICAqb3V0KysgPSAnJic7CisJICAgICpvdXQrKyA9ICdnJzsKKwkgICAgKm91dCsrID0gJ3QnOworCSAgICAqb3V0KysgPSAnOyc7CisJICAgIGluKys7CisJICAgIGNvbnRpbnVlOworCX0gZWxzZSBpZiAoKmluID09ICcmJykgeworCSAgICBpZiAob3V0ZW5kIC0gb3V0IDwgNSkgYnJlYWs7CisJICAgICpvdXQrKyA9ICcmJzsKKwkgICAgKm91dCsrID0gJ2EnOworCSAgICAqb3V0KysgPSAnbSc7CisJICAgICpvdXQrKyA9ICdwJzsKKwkgICAgKm91dCsrID0gJzsnOworCSAgICBpbisrOworCSAgICBjb250aW51ZTsKKwl9IGVsc2UgaWYgKCgoKmluID49IDB4MjApICYmICgqaW4gPCAweDgwKSkgfHwKKwkgICAgICAgICAgICgqaW4gPT0gJ1xuJykgfHwgKCppbiA9PSAnXHQnKSkgeworCSAgICAvKgorCSAgICAgKiBkZWZhdWx0IGNhc2UsIGp1c3QgY29weSAhCisJICAgICAqLworCSAgICAqb3V0KysgPSAqaW4rKzsKKwkgICAgY29udGludWU7CisJfSBlbHNlIGlmICgqaW4gPj0gMHg4MCkgeworCSAgICAvKgorCSAgICAgKiBXZSBhc3N1bWUgd2UgaGF2ZSBVVEYtOCBpbnB1dC4KKwkgICAgICovCisJICAgIGlmIChvdXRlbmQgLSBvdXQgPCAxMCkgYnJlYWs7CisKKwkgICAgaWYgKCppbiA8IDB4QzApIHsKKwkJeG1sU2F2ZUVycihYTUxfU0FWRV9OT1RfVVRGOCwgTlVMTCwgTlVMTCk7CisJCWluKys7CisJCWdvdG8gZXJyb3I7CisJICAgIH0gZWxzZSBpZiAoKmluIDwgMHhFMCkgeworCQlpZiAoaW5lbmQgLSBpbiA8IDIpIGJyZWFrOworCQl2YWwgPSAoaW5bMF0pICYgMHgxRjsKKwkJdmFsIDw8PSA2OworCQl2YWwgfD0gKGluWzFdKSAmIDB4M0Y7CisJCWluICs9IDI7CisJICAgIH0gZWxzZSBpZiAoKmluIDwgMHhGMCkgeworCQlpZiAoaW5lbmQgLSBpbiA8IDMpIGJyZWFrOworCQl2YWwgPSAoaW5bMF0pICYgMHgwRjsKKwkJdmFsIDw8PSA2OworCQl2YWwgfD0gKGluWzFdKSAmIDB4M0Y7CisJCXZhbCA8PD0gNjsKKwkJdmFsIHw9IChpblsyXSkgJiAweDNGOworCQlpbiArPSAzOworCSAgICB9IGVsc2UgaWYgKCppbiA8IDB4RjgpIHsKKwkJaWYgKGluZW5kIC0gaW4gPCA0KSBicmVhazsKKwkJdmFsID0gKGluWzBdKSAmIDB4MDc7CisJCXZhbCA8PD0gNjsKKwkJdmFsIHw9IChpblsxXSkgJiAweDNGOworCQl2YWwgPDw9IDY7CisJCXZhbCB8PSAoaW5bMl0pICYgMHgzRjsKKwkJdmFsIDw8PSA2OworCQl2YWwgfD0gKGluWzNdKSAmIDB4M0Y7CisJCWluICs9IDQ7CisJICAgIH0gZWxzZSB7CisJCXhtbFNhdmVFcnIoWE1MX1NBVkVfQ0hBUl9JTlZBTElELCBOVUxMLCBOVUxMKTsKKwkJaW4rKzsKKwkJZ290byBlcnJvcjsKKwkgICAgfQorCSAgICBpZiAoIUlTX0NIQVIodmFsKSkgeworCQl4bWxTYXZlRXJyKFhNTF9TQVZFX0NIQVJfSU5WQUxJRCwgTlVMTCwgTlVMTCk7CisJCWluKys7CisJCWdvdG8gZXJyb3I7CisJICAgIH0KKworCSAgICAvKgorCSAgICAgKiBXZSBjb3VsZCBkbyBtdWx0aXBsZSB0aGluZ3MgaGVyZS4gSnVzdCBzYXZlIGFzIGEgY2hhciByZWYKKwkgICAgICovCisJICAgIG91dCA9IHhtbFNlcmlhbGl6ZUhleENoYXJSZWYob3V0LCB2YWwpOworCX0gZWxzZSBpZiAoSVNfQllURV9DSEFSKCppbikpIHsKKwkgICAgaWYgKG91dGVuZCAtIG91dCA8IDYpIGJyZWFrOworCSAgICBvdXQgPSB4bWxTZXJpYWxpemVIZXhDaGFyUmVmKG91dCwgKmluKyspOworCX0gZWxzZSB7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sRXNjYXBlRW50aXRpZXMgOiBjaGFyIG91dCBvZiByYW5nZVxuIik7CisJICAgIGluKys7CisJICAgIGdvdG8gZXJyb3I7CisJfQorICAgIH0KKyAgICAqb3V0bGVuID0gb3V0IC0gb3V0c3RhcnQ7CisgICAgKmlubGVuID0gaW4gLSBiYXNlOworICAgIHJldHVybigwKTsKK2Vycm9yOgorICAgICpvdXRsZW4gPSBvdXQgLSBvdXRzdGFydDsKKyAgICAqaW5sZW4gPSBpbiAtIGJhc2U7CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbgkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKgorICogeG1sU2F2ZUN0eHRJbml0OgorICogQGN0eHQ6IHRoZSBzYXZpbmcgY29udGV4dAorICoKKyAqIEluaXRpYWxpemUgYSBzYXZpbmcgY29udGV4dAorICovCitzdGF0aWMgdm9pZAoreG1sU2F2ZUN0eHRJbml0KHhtbFNhdmVDdHh0UHRyIGN0eHQpCit7CisgICAgaW50IGk7CisgICAgaW50IGxlbjsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAoKGN0eHQtPmVuY29kaW5nID09IE5VTEwpICYmIChjdHh0LT5lc2NhcGUgPT0gTlVMTCkpCisgICAgICAgIGN0eHQtPmVzY2FwZSA9IHhtbEVzY2FwZUVudGl0aWVzOworICAgIGxlbiA9IHhtbFN0cmxlbigoeG1sQ2hhciAqKXhtbFRyZWVJbmRlbnRTdHJpbmcpOworICAgIGlmICgoeG1sVHJlZUluZGVudFN0cmluZyA9PSBOVUxMKSB8fCAobGVuID09IDApKSB7CisgICAgICAgIG1lbXNldCgmY3R4dC0+aW5kZW50WzBdLCAwLCBNQVhfSU5ERU5UICsgMSk7CisgICAgfSBlbHNlIHsKKwljdHh0LT5pbmRlbnRfc2l6ZSA9IGxlbjsKKwljdHh0LT5pbmRlbnRfbnIgPSBNQVhfSU5ERU5UIC8gY3R4dC0+aW5kZW50X3NpemU7CisJZm9yIChpID0gMDtpIDwgY3R4dC0+aW5kZW50X25yO2krKykKKwkgICAgbWVtY3B5KCZjdHh0LT5pbmRlbnRbaSAqIGN0eHQtPmluZGVudF9zaXplXSwgeG1sVHJlZUluZGVudFN0cmluZywKKwkJICAgY3R4dC0+aW5kZW50X3NpemUpOworICAgICAgICBjdHh0LT5pbmRlbnRbY3R4dC0+aW5kZW50X25yICogY3R4dC0+aW5kZW50X3NpemVdID0gMDsKKyAgICB9CisKKyAgICBpZiAoeG1sU2F2ZU5vRW1wdHlUYWdzKSB7CisJY3R4dC0+b3B0aW9ucyB8PSBYTUxfU0FWRV9OT19FTVBUWTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sRnJlZVNhdmVDdHh0OgorICoKKyAqIEZyZWUgYSBzYXZpbmcgY29udGV4dCwgZGVzdHJveWluZyB0aGUgb3VwdHV0IGluIGFueSByZW1haW5pbmcgYnVmZmVyCisgKi8KK3N0YXRpYyB2b2lkCit4bWxGcmVlU2F2ZUN0eHQoeG1sU2F2ZUN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKGN0eHQtPmVuY29kaW5nICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUoKGNoYXIgKikgY3R4dC0+ZW5jb2RpbmcpOworICAgIGlmIChjdHh0LT5idWYgIT0gTlVMTCkKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyQ2xvc2UoY3R4dC0+YnVmKTsKKyAgICB4bWxGcmVlKGN0eHQpOworfQorCisvKioKKyAqIHhtbE5ld1NhdmVDdHh0OgorICoKKyAqIENyZWF0ZSBhIG5ldyBzYXZpbmcgY29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxTYXZlQ3R4dFB0cgoreG1sTmV3U2F2ZUN0eHQoY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBvcHRpb25zKQoreworICAgIHhtbFNhdmVDdHh0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxTYXZlQ3R4dFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTYXZlQ3R4dCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFNhdmVFcnJNZW1vcnkoImNyZWF0aW5nIHNhdmluZyBjb250ZXh0Iik7CisJcmV0dXJuICggTlVMTCApOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2F2ZUN0eHQpKTsKKworICAgIGlmIChlbmNvZGluZyAhPSBOVUxMKSB7CisgICAgICAgIHJldC0+aGFuZGxlciA9IHhtbEZpbmRDaGFyRW5jb2RpbmdIYW5kbGVyKGVuY29kaW5nKTsKKwlpZiAocmV0LT5oYW5kbGVyID09IE5VTEwpIHsKKwkgICAgeG1sU2F2ZUVycihYTUxfU0FWRV9VTktOT1dOX0VOQ09ESU5HLCBOVUxMLCBlbmNvZGluZyk7CisgICAgICAgICAgICB4bWxGcmVlU2F2ZUN0eHQocmV0KTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKyAgICAgICAgcmV0LT5lbmNvZGluZyA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKWVuY29kaW5nKTsKKwlyZXQtPmVzY2FwZSA9IE5VTEw7CisgICAgfQorICAgIHhtbFNhdmVDdHh0SW5pdChyZXQpOworCisgICAgLyoKKyAgICAgKiBVc2UgdGhlIG9wdGlvbnMKKyAgICAgKi8KKworICAgIC8qIFJlLWNoZWNrIHRoaXMgb3B0aW9uIGFzIGl0IG1heSBhbHJlYWR5IGhhdmUgYmVlbiBzZXQgKi8KKyAgICBpZiAoKHJldC0+b3B0aW9ucyAmIFhNTF9TQVZFX05PX0VNUFRZKSAmJiAhIChvcHRpb25zICYgWE1MX1NBVkVfTk9fRU1QVFkpKSB7CisJb3B0aW9ucyB8PSBYTUxfU0FWRV9OT19FTVBUWTsKKyAgICB9CisKKyAgICByZXQtPm9wdGlvbnMgPSBvcHRpb25zOworICAgIGlmIChvcHRpb25zICYgWE1MX1NBVkVfRk9STUFUKQorICAgICAgICByZXQtPmZvcm1hdCA9IDE7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAgIAkJRHVtcGluZyBYTUwgdHJlZSBjb250ZW50IHRvIGEgc2ltcGxlIGJ1ZmZlcgkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxBdHRyU2VyaWFsaXplQ29udGVudDoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBhdHRyOiAgdGhlIGF0dHJpYnV0ZSBwb2ludGVyCisgKgorICogU2VyaWFsaXplIHRoZSBhdHRyaWJ1dGUgaW4gdGhlIGJ1ZmZlcgorICovCitzdGF0aWMgdm9pZAoreG1sQXR0clNlcmlhbGl6ZUNvbnRlbnQoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgeG1sQXR0clB0ciBhdHRyKQoreworICAgIHhtbE5vZGVQdHIgY2hpbGRyZW47CisKKyAgICBjaGlsZHJlbiA9IGF0dHItPmNoaWxkcmVuOworICAgIHdoaWxlIChjaGlsZHJlbiAhPSBOVUxMKSB7CisgICAgICAgIHN3aXRjaCAoY2hpbGRyZW4tPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkgICAgICAgIHhtbEF0dHJTZXJpYWxpemVUeHRDb250ZW50KGJ1Zi0+YnVmZmVyLCBhdHRyLT5kb2MsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIsIGNoaWxkcmVuLT5jb250ZW50KTsKKwkJYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgICAgICAgICAgeG1sQnVmZmVyQWRkKGJ1Zi0+YnVmZmVyLCBCQURfQ0FTVCAiJiIsIDEpOworICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYtPmJ1ZmZlciwgY2hpbGRyZW4tPm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFN0cmxlbihjaGlsZHJlbi0+bmFtZSkpOworICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYtPmJ1ZmZlciwgQkFEX0NBU1QgIjsiLCAxKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLyogc2hvdWxkIG5vdCBoYXBwZW4gdW5sZXNzIHdlIGhhdmUgYSBiYWRseSBidWlsdCB0cmVlICovCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi0+bmV4dDsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogICAJCUR1bXBpbmcgWE1MIHRyZWUgY29udGVudCB0byBhbiBJL08gb3V0cHV0IGJ1ZmZlcgkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQgeG1sU2F2ZVN3aXRjaEVuY29kaW5nKHhtbFNhdmVDdHh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmVuY29kaW5nKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiA9IGN0eHQtPmJ1ZjsKKworICAgIGlmICgoZW5jb2RpbmcgIT0gTlVMTCkgJiYgKGJ1Zi0+ZW5jb2RlciA9PSBOVUxMKSAmJiAoYnVmLT5jb252ID09IE5VTEwpKSB7CisJYnVmLT5lbmNvZGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoKGNvbnN0IGNoYXIgKillbmNvZGluZyk7CisJaWYgKGJ1Zi0+ZW5jb2RlciA9PSBOVUxMKSB7CisJICAgIHhtbFNhdmVFcnIoWE1MX1NBVkVfVU5LTk9XTl9FTkNPRElORywgTlVMTCwKKwkJICAgICAgIChjb25zdCBjaGFyICopZW5jb2RpbmcpOworCSAgICByZXR1cm4oLTEpOworCX0KKwlidWYtPmNvbnYgPSB4bWxCdWZmZXJDcmVhdGUoKTsKKwlpZiAoYnVmLT5jb252ID09IE5VTEwpIHsKKwkgICAgeG1sQ2hhckVuY0Nsb3NlRnVuYyhidWYtPmVuY29kZXIpOworCSAgICB4bWxTYXZlRXJyTWVtb3J5KCJjcmVhdGluZyBlbmNvZGluZyBidWZmZXIiKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJLyoKKwkgKiBpbml0aWFsaXplIHRoZSBzdGF0ZSwgZS5nLiBpZiBvdXRwdXR0aW5nIGEgQk9NCisJICovCisJeG1sQ2hhckVuY091dEZ1bmMoYnVmLT5lbmNvZGVyLCBidWYtPmNvbnYsIE5VTEwpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQgeG1sU2F2ZUNsZWFyRW5jb2RpbmcoeG1sU2F2ZUN0eHRQdHIgY3R4dCkgeworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWYgPSBjdHh0LT5idWY7CisgICAgeG1sT3V0cHV0QnVmZmVyRmx1c2goYnVmKTsKKyAgICB4bWxDaGFyRW5jQ2xvc2VGdW5jKGJ1Zi0+ZW5jb2Rlcik7CisgICAgeG1sQnVmZmVyRnJlZShidWYtPmNvbnYpOworICAgIGJ1Zi0+ZW5jb2RlciA9IE5VTEw7CisgICAgYnVmLT5jb252ID0gTlVMTDsKKyAgICByZXR1cm4oMCk7Cit9CisKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECitzdGF0aWMgdm9pZAoreGh0bWxOb2RlRHVtcE91dHB1dCh4bWxTYXZlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cik7CisjZW5kaWYKK3N0YXRpYyB2b2lkIHhtbE5vZGVMaXN0RHVtcE91dHB1dCh4bWxTYXZlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cik7CitzdGF0aWMgdm9pZCB4bWxOb2RlRHVtcE91dHB1dEludGVybmFsKHhtbFNhdmVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKTsKK3ZvaWQgeG1sTnNMaXN0RHVtcE91dHB1dCh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLCB4bWxOc1B0ciBjdXIpOworc3RhdGljIGludCB4bWxEb2NDb250ZW50RHVtcE91dHB1dCh4bWxTYXZlQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgY3VyKTsKKworLyoqCisgKiB4bWxOc0R1bXBPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKiBAY3VyOiAgYSBuYW1lc3BhY2UKKyAqCisgKiBEdW1wIGEgbG9jYWwgTmFtZXNwYWNlIGRlZmluaXRpb24uCisgKiBTaG91bGQgYmUgY2FsbGVkIGluIHRoZSBjb250ZXh0IG9mIGF0dHJpYnV0ZXMgZHVtcHMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxOc0R1bXBPdXRwdXQoeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgeG1sTnNQdHIgY3VyKSB7CisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKGJ1ZiA9PSBOVUxMKSkgcmV0dXJuOworICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9MT0NBTF9OQU1FU1BBQ0UpICYmIChjdXItPmhyZWYgIT0gTlVMTCkpIHsKKwlpZiAoeG1sU3RyRXF1YWwoY3VyLT5wcmVmaXgsIEJBRF9DQVNUICJ4bWwiKSkKKwkgICAgcmV0dXJuOworCisgICAgICAgIC8qIFdpdGhpbiB0aGUgY29udGV4dCBvZiBhbiBlbGVtZW50IGF0dHJpYnV0ZXMgKi8KKwlpZiAoY3VyLT5wcmVmaXggIT0gTlVMTCkgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDcsICIgeG1sbnM6Iik7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPnByZWZpeCk7CisJfSBlbHNlCisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgNiwgIiB4bWxucyIpOworCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIj0iKTsKKwl4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyhidWYtPmJ1ZmZlciwgY3VyLT5ocmVmKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sTnNMaXN0RHVtcE91dHB1dDoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBjdXI6ICB0aGUgZmlyc3QgbmFtZXNwYWNlCisgKgorICogRHVtcCBhIGxpc3Qgb2YgbG9jYWwgTmFtZXNwYWNlIGRlZmluaXRpb25zLgorICogU2hvdWxkIGJlIGNhbGxlZCBpbiB0aGUgY29udGV4dCBvZiBhdHRyaWJ1dGVzIGR1bXBzLgorICovCit2b2lkCit4bWxOc0xpc3REdW1wT3V0cHV0KHhtbE91dHB1dEJ1ZmZlclB0ciBidWYsIHhtbE5zUHRyIGN1cikgeworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICB4bWxOc0R1bXBPdXRwdXQoYnVmLCBjdXIpOworCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sRHRkRHVtcE91dHB1dDoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBkdGQ6ICB0aGUgcG9pbnRlciB0byB0aGUgRFRECisgKiAKKyAqIER1bXAgdGhlIFhNTCBkb2N1bWVudCBEVEQsIGlmIGFueS4KKyAqLworc3RhdGljIHZvaWQKK3htbER0ZER1bXBPdXRwdXQoeG1sU2F2ZUN0eHRQdHIgY3R4dCwgeG1sRHRkUHRyIGR0ZCkgeworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7CisgICAgaW50IGZvcm1hdCwgbGV2ZWw7CisgICAgeG1sRG9jUHRyIGRvYzsKKworICAgIGlmIChkdGQgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+YnVmID09IE5VTEwpKQorICAgICAgICByZXR1cm47CisgICAgYnVmID0gY3R4dC0+YnVmOworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMTAsICI8IURPQ1RZUEUgIik7CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWR0ZC0+bmFtZSk7CisgICAgaWYgKGR0ZC0+RXh0ZXJuYWxJRCAhPSBOVUxMKSB7CisJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA4LCAiIFBVQkxJQyAiKTsKKwl4bWxCdWZmZXJXcml0ZVF1b3RlZFN0cmluZyhidWYtPmJ1ZmZlciwgZHRkLT5FeHRlcm5hbElEKTsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICIgIik7CisJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLT5idWZmZXIsIGR0ZC0+U3lzdGVtSUQpOworICAgIH0gIGVsc2UgaWYgKGR0ZC0+U3lzdGVtSUQgIT0gTlVMTCkgeworCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgOCwgIiBTWVNURU0gIik7CisJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLT5idWZmZXIsIGR0ZC0+U3lzdGVtSUQpOworICAgIH0KKyAgICBpZiAoKGR0ZC0+ZW50aXRpZXMgPT0gTlVMTCkgJiYgKGR0ZC0+ZWxlbWVudHMgPT0gTlVMTCkgJiYKKyAgICAgICAgKGR0ZC0+YXR0cmlidXRlcyA9PSBOVUxMKSAmJiAoZHRkLT5ub3RhdGlvbnMgPT0gTlVMTCkgJiYKKwkoZHRkLT5wZW50aXRpZXMgPT0gTlVMTCkpIHsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICI+Iik7CisJcmV0dXJuOworICAgIH0KKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDMsICIgW1xuIik7CisgICAgLyoKKyAgICAgKiBEdW1wIHRoZSBub3RhdGlvbnMgZmlyc3QgdGhleSBhcmUgbm90IGluIHRoZSBEVEQgY2hpbGRyZW4gbGlzdAorICAgICAqIERvIHRoaXMgb25seSBvbiBhIHN0YW5kYWxvbmUgRFREIG9yIG9uIHRoZSBpbnRlcm5hbCBzdWJzZXQgdGhvdWdoLgorICAgICAqLworICAgIGlmICgoZHRkLT5ub3RhdGlvbnMgIT0gTlVMTCkgJiYgKChkdGQtPmRvYyA9PSBOVUxMKSB8fAorICAgICAgICAoZHRkLT5kb2MtPmludFN1YnNldCA9PSBkdGQpKSkgeworICAgICAgICB4bWxEdW1wTm90YXRpb25UYWJsZShidWYtPmJ1ZmZlciwgKHhtbE5vdGF0aW9uVGFibGVQdHIpIGR0ZC0+bm90YXRpb25zKTsKKyAgICB9CisgICAgZm9ybWF0ID0gY3R4dC0+Zm9ybWF0OworICAgIGxldmVsID0gY3R4dC0+bGV2ZWw7CisgICAgZG9jID0gY3R4dC0+ZG9jOworICAgIGN0eHQtPmZvcm1hdCA9IDA7CisgICAgY3R4dC0+bGV2ZWwgPSAtMTsKKyAgICBjdHh0LT5kb2MgPSBkdGQtPmRvYzsKKyAgICB4bWxOb2RlTGlzdER1bXBPdXRwdXQoY3R4dCwgZHRkLT5jaGlsZHJlbik7CisgICAgY3R4dC0+Zm9ybWF0ID0gZm9ybWF0OworICAgIGN0eHQtPmxldmVsID0gbGV2ZWw7CisgICAgY3R4dC0+ZG9jID0gZG9jOworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMiwgIl0+Iik7Cit9CisKKy8qKgorICogeG1sQXR0ckR1bXBPdXRwdXQ6CisgKiBAYnVmOiAgdGhlIFhNTCBidWZmZXIgb3V0cHV0CisgKiBAY3VyOiAgdGhlIGF0dHJpYnV0ZSBwb2ludGVyCisgKgorICogRHVtcCBhbiBYTUwgYXR0cmlidXRlCisgKi8KK3N0YXRpYyB2b2lkCit4bWxBdHRyRHVtcE91dHB1dCh4bWxTYXZlQ3R4dFB0ciBjdHh0LCB4bWxBdHRyUHRyIGN1cikgeworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWY7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybjsKKyAgICBidWYgPSBjdHh0LT5idWY7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSByZXR1cm47CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiICIpOworICAgIGlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJiAoY3VyLT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5zLT5wcmVmaXgpOworCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIjoiKTsKKyAgICB9CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+bmFtZSk7CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAyLCAiPVwiIik7CisgICAgeG1sQXR0clNlcmlhbGl6ZUNvbnRlbnQoYnVmLCBjdXIpOworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIlwiIik7Cit9CisKKy8qKgorICogeG1sQXR0ckxpc3REdW1wT3V0cHV0OgorICogQGJ1ZjogIHRoZSBYTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBmaXJzdCBhdHRyaWJ1dGUgcG9pbnRlcgorICogQGVuY29kaW5nOiAgYW4gb3B0aW9uYWwgZW5jb2Rpbmcgc3RyaW5nCisgKgorICogRHVtcCBhIGxpc3Qgb2YgWE1MIGF0dHJpYnV0ZXMKKyAqLworc3RhdGljIHZvaWQKK3htbEF0dHJMaXN0RHVtcE91dHB1dCh4bWxTYXZlQ3R4dFB0ciBjdHh0LCB4bWxBdHRyUHRyIGN1cikgeworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICB4bWxBdHRyRHVtcE91dHB1dChjdHh0LCBjdXIpOworCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9Cit9CisKKworCisvKioKKyAqIHhtbE5vZGVMaXN0RHVtcE91dHB1dDoKKyAqIEBjdXI6ICB0aGUgZmlyc3Qgbm9kZQorICoKKyAqIER1bXAgYW4gWE1MIG5vZGUgbGlzdCwgcmVjdXJzaXZlIGJlaGF2aW91ciwgY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLgorICovCitzdGF0aWMgdm9pZAoreG1sTm9kZUxpc3REdW1wT3V0cHV0KHhtbFNhdmVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGJ1ZiA9IGN0eHQtPmJ1ZjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN0eHQtPmZvcm1hdCkgJiYgKHhtbEluZGVudFRyZWVPdXRwdXQpICYmCisJICAgICgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJICAgICAoY3VyLT50eXBlID09IFhNTF9DT01NRU5UX05PREUpIHx8CisJICAgICAoY3VyLT50eXBlID09IFhNTF9QSV9OT0RFKSkpCisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgY3R4dC0+aW5kZW50X3NpemUgKgorCSAgICAgICAgICAgICAgICAgICAgICAgICAoY3R4dC0+bGV2ZWwgPiBjdHh0LT5pbmRlbnRfbnIgPyAKKwkJCQkgIGN0eHQtPmluZGVudF9uciA6IGN0eHQtPmxldmVsKSwKKwkJCQkgY3R4dC0+aW5kZW50KTsKKyAgICAgICAgeG1sTm9kZUR1bXBPdXRwdXRJbnRlcm5hbChjdHh0LCBjdXIpOworCWlmIChjdHh0LT5mb3JtYXQpIHsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiXG4iKTsKKwl9CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KK30KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKy8qKgorICogeG1sTm9kZUR1bXBPdXRwdXRJbnRlcm5hbDoKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlCisgKgorICogRHVtcCBhbiBIVE1MIG5vZGUsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsIGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4KKyAqLworc3RhdGljIGludAoraHRtbE5vZGVEdW1wT3V0cHV0SW50ZXJuYWwoeG1sU2F2ZUN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBjb25zdCB4bWxDaGFyICpvbGRlbmMgPSBOVUxMOworICAgIGNvbnN0IHhtbENoYXIgKm9sZGN0eHRlbmMgPSBjdHh0LT5lbmNvZGluZzsKKyAgICBjb25zdCB4bWxDaGFyICplbmNvZGluZyA9IGN0eHQtPmVuY29kaW5nOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWYgPSBjdHh0LT5idWY7CisgICAgaW50IHN3aXRjaGVkX2VuY29kaW5nID0gMDsKKyAgICB4bWxEb2NQdHIgZG9jOworCisgICAgeG1sSW5pdFBhcnNlcigpOworCisgICAgZG9jID0gY3VyLT5kb2M7CisgICAgaWYgKGRvYyAhPSBOVUxMKSB7CisgICAgICAgIG9sZGVuYyA9IGRvYy0+ZW5jb2Rpbmc7CisJaWYgKGN0eHQtPmVuY29kaW5nICE9IE5VTEwpIHsKKwkgICAgZG9jLT5lbmNvZGluZyA9IEJBRF9DQVNUIGN0eHQtPmVuY29kaW5nOworCX0gZWxzZSBpZiAoZG9jLT5lbmNvZGluZyAhPSBOVUxMKSB7CisJICAgIGVuY29kaW5nID0gZG9jLT5lbmNvZGluZzsKKwl9CisgICAgfQorCisgICAgaWYgKChlbmNvZGluZyAhPSBOVUxMKSAmJiAoZG9jICE9IE5VTEwpKQorCWh0bWxTZXRNZXRhRW5jb2RpbmcoZG9jLCAoY29uc3QgeG1sQ2hhciAqKSBlbmNvZGluZyk7CisgICAgaWYgKChlbmNvZGluZyA9PSBOVUxMKSAmJiAoZG9jICE9IE5VTEwpKQorCWVuY29kaW5nID0gaHRtbEdldE1ldGFFbmNvZGluZyhkb2MpOworICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKQorCWVuY29kaW5nID0gQkFEX0NBU1QgIkhUTUwiOworICAgIGlmICgoZW5jb2RpbmcgIT0gTlVMTCkgJiYgKG9sZGN0eHRlbmMgPT0gTlVMTCkgJiYKKwkoYnVmLT5lbmNvZGVyID09IE5VTEwpICYmIChidWYtPmNvbnYgPT0gTlVMTCkpIHsKKwlpZiAoeG1sU2F2ZVN3aXRjaEVuY29kaW5nKGN0eHQsIChjb25zdCBjaGFyKikgZW5jb2RpbmcpIDwgMCkgeworCSAgICBkb2MtPmVuY29kaW5nID0gb2xkZW5jOworCSAgICByZXR1cm4oLTEpOworCX0KKwlzd2l0Y2hlZF9lbmNvZGluZyA9IDE7CisgICAgfQorICAgIGlmIChjdHh0LT5vcHRpb25zICYgWE1MX1NBVkVfRk9STUFUKQorCWh0bWxOb2RlRHVtcEZvcm1hdE91dHB1dChidWYsIGRvYywgY3VyLAorCQkJCSAgICAgICAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAxKTsKKyAgICBlbHNlCisJaHRtbE5vZGVEdW1wRm9ybWF0T3V0cHV0KGJ1ZiwgZG9jLCBjdXIsCisJCQkJICAgICAgIChjb25zdCBjaGFyICopZW5jb2RpbmcsIDApOworICAgIC8qCisgICAgICogUmVzdG9yZSB0aGUgc3RhdGUgb2YgdGhlIHNhdmluZyBjb250ZXh0IGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50CisgICAgICovCisgICAgaWYgKChzd2l0Y2hlZF9lbmNvZGluZykgJiYgKG9sZGN0eHRlbmMgPT0gTlVMTCkpIHsKKwl4bWxTYXZlQ2xlYXJFbmNvZGluZyhjdHh0KTsKKyAgICB9CisgICAgaWYgKGRvYyAhPSBOVUxMKQorCWRvYy0+ZW5jb2RpbmcgPSBvbGRlbmM7CisgICAgcmV0dXJuKDApOworfQorI2VuZGlmCisKKy8qKgorICogeG1sTm9kZUR1bXBPdXRwdXRJbnRlcm5hbDoKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlCisgKgorICogRHVtcCBhbiBYTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91ciwgY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLgorICovCitzdGF0aWMgdm9pZAoreG1sTm9kZUR1bXBPdXRwdXRJbnRlcm5hbCh4bWxTYXZlQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cikgeworICAgIGludCBmb3JtYXQ7CisgICAgeG1sTm9kZVB0ciB0bXA7CisgICAgeG1sQ2hhciAqc3RhcnQsICplbmQ7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGJ1ZiA9IGN0eHQtPmJ1ZjsKKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkKKwlyZXR1cm47CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfWElOQ0xVREVfRU5EKQorCXJldHVybjsKKyAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKyAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworCXhtbERvY0NvbnRlbnREdW1wT3V0cHV0KGN0eHQsICh4bWxEb2NQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgaWYgKGN0eHQtPm9wdGlvbnMgJiBYTUxfU0FWRV9YSFRNTCkgeworICAgICAgICB4aHRtbE5vZGVEdW1wT3V0cHV0KGN0eHQsIGN1cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCgoY3VyLT50eXBlICE9IFhNTF9OQU1FU1BBQ0VfREVDTCkgJiYgKGN1ci0+ZG9jICE9IE5VTEwpICYmCisgICAgICAgICAoY3VyLT5kb2MtPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgJiYKKyAgICAgICAgICgoY3R4dC0+b3B0aW9ucyAmIFhNTF9TQVZFX0FTX1hNTCkgPT0gMCkpIHx8CisgICAgICAgIChjdHh0LT5vcHRpb25zICYgWE1MX1NBVkVfQVNfSFRNTCkpIHsKKwlodG1sTm9kZUR1bXBPdXRwdXRJbnRlcm5hbChjdHh0LCBjdXIpOworCXJldHVybjsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9EVERfTk9ERSkgeworICAgICAgICB4bWxEdGREdW1wT3V0cHV0KGN0eHQsICh4bWxEdGRQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9GUkFHX05PREUpIHsKKyAgICAgICAgeG1sTm9kZUxpc3REdW1wT3V0cHV0KGN0eHQsIGN1ci0+Y2hpbGRyZW4pOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9ERUNMKSB7CisgICAgICAgIHhtbER1bXBFbGVtZW50RGVjbChidWYtPmJ1ZmZlciwgKHhtbEVsZW1lbnRQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfREVDTCkgeworICAgICAgICB4bWxEdW1wQXR0cmlidXRlRGVjbChidWYtPmJ1ZmZlciwgKHhtbEF0dHJpYnV0ZVB0cikgY3VyKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSB7CisgICAgICAgIHhtbER1bXBFbnRpdHlEZWNsKGJ1Zi0+YnVmZmVyLCAoeG1sRW50aXR5UHRyKSBjdXIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB7CisJaWYgKGN1ci0+Y29udGVudCAhPSBOVUxMKSB7CisJICAgIGlmIChjdXItPm5hbWUgIT0geG1sU3RyaW5nVGV4dE5vZW5jKSB7CisgICAgICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUoYnVmLCBjdXItPmNvbnRlbnQsIGN0eHQtPmVzY2FwZSk7CisJICAgIH0gZWxzZSB7CisJCS8qCisJCSAqIERpc2FibGUgZXNjYXBpbmcsIG5lZWRlZCBmb3IgWFNMVAorCQkgKi8KKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKSBjdXItPmNvbnRlbnQpOworCSAgICB9CisJfQorCisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9QSV9OT0RFKSB7CisJaWYgKGN1ci0+Y29udGVudCAhPSBOVUxMKSB7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMiwgIjw/Iik7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworCSAgICBpZiAoY3VyLT5jb250ZW50ICE9IE5VTEwpIHsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiICIpOworCQl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5jb250ZW50KTsKKwkgICAgfQorCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDIsICI/PiIpOworCX0gZWxzZSB7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMiwgIjw/Iik7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDIsICI/PiIpOworCX0KKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0NPTU1FTlRfTk9ERSkgeworCWlmIChjdXItPmNvbnRlbnQgIT0gTlVMTCkgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDQsICI8IS0tIik7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPmNvbnRlbnQpOworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDMsICItLT4iKTsKKwl9CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9FTlRJVFlfUkVGX05PREUpIHsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiJiIpOworCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICI7Iik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpIHsKKwlpZiAoY3VyLT5jb250ZW50ID09IE5VTEwgfHwgKmN1ci0+Y29udGVudCA9PSAnXDAnKSB7CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMTIsICI8IVtDREFUQVtdXT4iKTsKKwl9IGVsc2UgeworCSAgICBzdGFydCA9IGVuZCA9IGN1ci0+Y29udGVudDsKKwkgICAgd2hpbGUgKCplbmQgIT0gJ1wwJykgeworCQlpZiAoKCplbmQgPT0gJ10nKSAmJiAoKihlbmQgKyAxKSA9PSAnXScpICYmCisJCSAgICAoKihlbmQgKyAyKSA9PSAnPicpKSB7CisJCSAgICBlbmQgPSBlbmQgKyAyOworCQkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA5LCAiPCFbQ0RBVEFbIik7CisJCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIGVuZCAtIHN0YXJ0LCAoY29uc3QgY2hhciAqKXN0YXJ0KTsKKwkJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMywgIl1dPiIpOworCQkgICAgc3RhcnQgPSBlbmQ7CisJCX0KKwkJZW5kKys7CisJICAgIH0KKwkgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworCQl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDksICI8IVtDREFUQVsiKTsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKXN0YXJ0KTsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAzLCAiXV0+Iik7CisJICAgIH0KKwl9CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCXhtbEF0dHJEdW1wT3V0cHV0KGN0eHQsICh4bWxBdHRyUHRyKSBjdXIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwl4bWxOc0R1bXBPdXRwdXQoYnVmLCAoeG1sTnNQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKworICAgIGZvcm1hdCA9IGN0eHQtPmZvcm1hdDsKKyAgICBpZiAoZm9ybWF0ID09IDEpIHsKKwl0bXAgPSBjdXItPmNoaWxkcmVuOworCXdoaWxlICh0bXAgIT0gTlVMTCkgeworCSAgICBpZiAoKHRtcC0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorCQkodG1wLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpIHx8CisJCSh0bXAtPnR5cGUgPT0gWE1MX0VOVElUWV9SRUZfTk9ERSkpIHsKKwkJY3R4dC0+Zm9ybWF0ID0gMDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgdG1wID0gdG1wLT5uZXh0OworCX0KKyAgICB9CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiPCIpOworICAgIGlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJiAoY3VyLT5ucy0+cHJlZml4ICE9IE5VTEwpKSB7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5zLT5wcmVmaXgpOworCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIjoiKTsKKyAgICB9CisKKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5uYW1lKTsKKyAgICBpZiAoY3VyLT5uc0RlZikKKyAgICAgICAgeG1sTnNMaXN0RHVtcE91dHB1dChidWYsIGN1ci0+bnNEZWYpOworICAgIGlmIChjdXItPnByb3BlcnRpZXMgIT0gTlVMTCkKKyAgICAgICAgeG1sQXR0ckxpc3REdW1wT3V0cHV0KGN0eHQsIGN1ci0+cHJvcGVydGllcyk7CisKKyAgICBpZiAoKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgfHwgKGN1ci0+Y29udGVudCA9PSBOVUxMKSkgJiYKKwkoY3VyLT5jaGlsZHJlbiA9PSBOVUxMKSAmJiAoKGN0eHQtPm9wdGlvbnMgJiBYTUxfU0FWRV9OT19FTVBUWSkgPT0gMCkpIHsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAyLCAiLz4iKTsKKwljdHh0LT5mb3JtYXQgPSBmb3JtYXQ7CisJcmV0dXJuOworICAgIH0KKyAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICI+Iik7CisgICAgaWYgKChjdXItPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKGN1ci0+Y29udGVudCAhPSBOVUxMKSkgeworCXhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlKGJ1ZiwgY3VyLT5jb250ZW50LCBjdHh0LT5lc2NhcGUpOworICAgIH0KKyAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJaWYgKGN0eHQtPmZvcm1hdCkgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiXG4iKTsKKwlpZiAoY3R4dC0+bGV2ZWwgPj0gMCkgY3R4dC0+bGV2ZWwrKzsKKwl4bWxOb2RlTGlzdER1bXBPdXRwdXQoY3R4dCwgY3VyLT5jaGlsZHJlbik7CisJaWYgKGN0eHQtPmxldmVsID4gMCkgY3R4dC0+bGV2ZWwtLTsKKwlpZiAoKHhtbEluZGVudFRyZWVPdXRwdXQpICYmIChjdHh0LT5mb3JtYXQpKQorCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIGN0eHQtPmluZGVudF9zaXplICoKKwkgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPmxldmVsID4gY3R4dC0+aW5kZW50X25yID8gCisJCQkJICBjdHh0LT5pbmRlbnRfbnIgOiBjdHh0LT5sZXZlbCksCisJCQkJIGN0eHQtPmluZGVudCk7CisgICAgfQorICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMiwgIjwvIik7CisgICAgaWYgKChjdXItPm5zICE9IE5VTEwpICYmIChjdXItPm5zLT5wcmVmaXggIT0gTlVMTCkpIHsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+bnMtPnByZWZpeCk7CisJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiOiIpOworICAgIH0KKworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIj4iKTsKKyAgICBjdHh0LT5mb3JtYXQgPSBmb3JtYXQ7Cit9CisKKy8qKgorICogeG1sRG9jQ29udGVudER1bXBPdXRwdXQ6CisgKiBAY3VyOiAgdGhlIGRvY3VtZW50CisgKgorICogRHVtcCBhbiBYTUwgZG9jdW1lbnQuCisgKi8KK3N0YXRpYyBpbnQKK3htbERvY0NvbnRlbnREdW1wT3V0cHV0KHhtbFNhdmVDdHh0UHRyIGN0eHQsIHhtbERvY1B0ciBjdXIpIHsKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgeG1sRHRkUHRyIGR0ZDsKKyAgICBpbnQgaXNfeGh0bWwgPSAwOworI2VuZGlmCisgICAgY29uc3QgeG1sQ2hhciAqb2xkZW5jID0gY3VyLT5lbmNvZGluZzsKKyAgICBjb25zdCB4bWxDaGFyICpvbGRjdHh0ZW5jID0gY3R4dC0+ZW5jb2Rpbmc7CisgICAgY29uc3QgeG1sQ2hhciAqZW5jb2RpbmcgPSBjdHh0LT5lbmNvZGluZzsKKyAgICB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIG9sZGVzY2FwZSA9IGN0eHQtPmVzY2FwZTsKKyAgICB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIG9sZGVzY2FwZUF0dHIgPSBjdHh0LT5lc2NhcGVBdHRyOworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBidWYgPSBjdHh0LT5idWY7CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsKKyAgICBpbnQgc3dpdGNoZWRfZW5jb2RpbmcgPSAwOworCisgICAgeG1sSW5pdFBhcnNlcigpOworCisgICAgaWYgKChjdXItPnR5cGUgIT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgJiYKKyAgICAgICAgKGN1ci0+dHlwZSAhPSBYTUxfRE9DVU1FTlRfTk9ERSkpCisJIHJldHVybigtMSk7CisKKyAgICBpZiAoY3R4dC0+ZW5jb2RpbmcgIT0gTlVMTCkgeworICAgICAgICBjdXItPmVuY29kaW5nID0gQkFEX0NBU1QgY3R4dC0+ZW5jb2Rpbmc7CisgICAgfSBlbHNlIGlmIChjdXItPmVuY29kaW5nICE9IE5VTEwpIHsKKwllbmNvZGluZyA9IGN1ci0+ZW5jb2Rpbmc7CisgICAgfSBlbHNlIGlmIChjdXItPmNoYXJzZXQgIT0gWE1MX0NIQVJfRU5DT0RJTkdfVVRGOCkgeworCWVuY29kaW5nID0gKGNvbnN0IHhtbENoYXIgKikKKwkJICAgICB4bWxHZXRDaGFyRW5jb2RpbmdOYW1lKCh4bWxDaGFyRW5jb2RpbmcpIGN1ci0+Y2hhcnNldCk7CisgICAgfQorCisgICAgaWYgKCgoY3VyLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpICYmCisgICAgICAgICAoKGN0eHQtPm9wdGlvbnMgJiBYTUxfU0FWRV9BU19YTUwpID09IDApICYmCisgICAgICAgICAoKGN0eHQtPm9wdGlvbnMgJiBYTUxfU0FWRV9YSFRNTCkgPT0gMCkpIHx8CisgICAgICAgIChjdHh0LT5vcHRpb25zICYgWE1MX1NBVkVfQVNfSFRNTCkpIHsKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgICAgIGlmIChlbmNvZGluZyAhPSBOVUxMKQorCSAgICBodG1sU2V0TWV0YUVuY29kaW5nKGN1ciwgKGNvbnN0IHhtbENoYXIgKikgZW5jb2RpbmcpOworICAgICAgICBpZiAoZW5jb2RpbmcgPT0gTlVMTCkKKwkgICAgZW5jb2RpbmcgPSBodG1sR2V0TWV0YUVuY29kaW5nKGN1cik7CisgICAgICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKQorCSAgICBlbmNvZGluZyA9IEJBRF9DQVNUICJIVE1MIjsKKwlpZiAoKGVuY29kaW5nICE9IE5VTEwpICYmIChvbGRjdHh0ZW5jID09IE5VTEwpICYmCisJICAgIChidWYtPmVuY29kZXIgPT0gTlVMTCkgJiYgKGJ1Zi0+Y29udiA9PSBOVUxMKSkgeworCSAgICBpZiAoeG1sU2F2ZVN3aXRjaEVuY29kaW5nKGN0eHQsIChjb25zdCBjaGFyKikgZW5jb2RpbmcpIDwgMCkgeworCQljdXItPmVuY29kaW5nID0gb2xkZW5jOworCQlyZXR1cm4oLTEpOworCSAgICB9CisJfQorICAgICAgICBpZiAoY3R4dC0+b3B0aW9ucyAmIFhNTF9TQVZFX0ZPUk1BVCkKKwkgICAgaHRtbERvY0NvbnRlbnREdW1wRm9ybWF0T3V0cHV0KGJ1ZiwgY3VyLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKillbmNvZGluZywgMSk7CisJZWxzZQorCSAgICBodG1sRG9jQ29udGVudER1bXBGb3JtYXRPdXRwdXQoYnVmLCBjdXIsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKWVuY29kaW5nLCAwKTsKKwlpZiAoY3R4dC0+ZW5jb2RpbmcgIT0gTlVMTCkKKwkgICAgY3VyLT5lbmNvZGluZyA9IG9sZGVuYzsKKwlyZXR1cm4oMCk7CisjZWxzZQorICAgICAgICByZXR1cm4oLTEpOworI2VuZGlmCisgICAgfSBlbHNlIGlmICgoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorICAgICAgICAgICAgICAgKGN0eHQtPm9wdGlvbnMgJiBYTUxfU0FWRV9BU19YTUwpIHx8CisgICAgICAgICAgICAgICAoY3R4dC0+b3B0aW9ucyAmIFhNTF9TQVZFX1hIVE1MKSkgeworCWVuYyA9IHhtbFBhcnNlQ2hhckVuY29kaW5nKChjb25zdCBjaGFyKikgZW5jb2RpbmcpOworCWlmICgoZW5jb2RpbmcgIT0gTlVMTCkgJiYgKG9sZGN0eHRlbmMgPT0gTlVMTCkgJiYKKwkgICAgKGJ1Zi0+ZW5jb2RlciA9PSBOVUxMKSAmJiAoYnVmLT5jb252ID09IE5VTEwpICYmCisJICAgICgoY3R4dC0+b3B0aW9ucyAmIFhNTF9TQVZFX05PX0RFQ0wpID09IDApKSB7CisJICAgIGlmICgoZW5jICE9IFhNTF9DSEFSX0VOQ09ESU5HX1VURjgpICYmCisJCShlbmMgIT0gWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSkgJiYKKwkJKGVuYyAhPSBYTUxfQ0hBUl9FTkNPRElOR19BU0NJSSkpIHsKKwkJLyoKKwkJICogd2UgbmVlZCB0byBzd2l0Y2ggdG8gdGhpcyBlbmNvZGluZyBidXQganVzdCBmb3IgdGhpcworCQkgKiBkb2N1bWVudCBzaW5jZSB3ZSBvdXRwdXQgdGhlIFhNTERlY2wgdGhlIGNvbnZlcnNpb24KKwkJICogbXVzdCBiZSBkb25lIHRvIG5vdCBnZW5lcmF0ZSBub3Qgd2VsbCBmb3JtZWQgZG9jdW1lbnRzLgorCQkgKi8KKwkJaWYgKHhtbFNhdmVTd2l0Y2hFbmNvZGluZyhjdHh0LCAoY29uc3QgY2hhciopIGVuY29kaW5nKSA8IDApIHsKKwkJICAgIGN1ci0+ZW5jb2RpbmcgPSBvbGRlbmM7CisJCSAgICByZXR1cm4oLTEpOworCQl9CisJCXN3aXRjaGVkX2VuY29kaW5nID0gMTsKKwkgICAgfQorCSAgICBpZiAoY3R4dC0+ZXNjYXBlID09IHhtbEVzY2FwZUVudGl0aWVzKQorCQljdHh0LT5lc2NhcGUgPSBOVUxMOworCSAgICBpZiAoY3R4dC0+ZXNjYXBlQXR0ciA9PSB4bWxFc2NhcGVFbnRpdGllcykKKwkJY3R4dC0+ZXNjYXBlQXR0ciA9IE5VTEw7CisJfQorCisKKwkvKgorCSAqIFNhdmUgdGhlIFhNTCBkZWNsYXJhdGlvbgorCSAqLworCWlmICgoY3R4dC0+b3B0aW9ucyAmIFhNTF9TQVZFX05PX0RFQ0wpID09IDApIHsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxNCwgIjw/eG1sIHZlcnNpb249Iik7CisJICAgIGlmIChjdXItPnZlcnNpb24gIT0gTlVMTCkgCisJCXhtbEJ1ZmZlcldyaXRlUXVvdGVkU3RyaW5nKGJ1Zi0+YnVmZmVyLCBjdXItPnZlcnNpb24pOworCSAgICBlbHNlCisJCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgNSwgIlwiMS4wXCIiKTsKKwkgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxMCwgIiBlbmNvZGluZz0iKTsKKwkJeG1sQnVmZmVyV3JpdGVRdW90ZWRTdHJpbmcoYnVmLT5idWZmZXIsICh4bWxDaGFyICopIGVuY29kaW5nKTsKKwkgICAgfQorCSAgICBzd2l0Y2ggKGN1ci0+c3RhbmRhbG9uZSkgeworCQljYXNlIDA6CisJCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDE2LCAiIHN0YW5kYWxvbmU9XCJub1wiIik7CisJCSAgICBicmVhazsKKwkJY2FzZSAxOgorCQkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxNywgIiBzdGFuZGFsb25lPVwieWVzXCIiKTsKKwkJICAgIGJyZWFrOworCSAgICB9CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMywgIj8+XG4iKTsKKwl9CisKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgICAgIGlmIChjdHh0LT5vcHRpb25zICYgWE1MX1NBVkVfWEhUTUwpCisgICAgICAgICAgICBpc194aHRtbCA9IDE7CisJaWYgKChjdHh0LT5vcHRpb25zICYgWE1MX1NBVkVfTk9fWEhUTUwpID09IDApIHsKKwkgICAgZHRkID0geG1sR2V0SW50U3Vic2V0KGN1cik7CisJICAgIGlmIChkdGQgIT0gTlVMTCkgeworCQlpc194aHRtbCA9IHhtbElzWEhUTUwoZHRkLT5TeXN0ZW1JRCwgZHRkLT5FeHRlcm5hbElEKTsKKwkJaWYgKGlzX3hodG1sIDwgMCkgaXNfeGh0bWwgPSAwOworCSAgICB9CisJfQorI2VuZGlmCisJaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCSAgICB4bWxOb2RlUHRyIGNoaWxkID0gY3VyLT5jaGlsZHJlbjsKKworCSAgICB3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworCQljdHh0LT5sZXZlbCA9IDA7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorCQlpZiAoaXNfeGh0bWwpCisJCSAgICB4aHRtbE5vZGVEdW1wT3V0cHV0KGN0eHQsIGNoaWxkKTsKKwkJZWxzZQorI2VuZGlmCisJCSAgICB4bWxOb2RlRHVtcE91dHB1dEludGVybmFsKGN0eHQsIGNoaWxkKTsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiXG4iKTsKKwkJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFJlc3RvcmUgdGhlIHN0YXRlIG9mIHRoZSBzYXZpbmcgY29udGV4dCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudAorICAgICAqLworICAgIGlmICgoc3dpdGNoZWRfZW5jb2RpbmcpICYmIChvbGRjdHh0ZW5jID09IE5VTEwpKSB7CisJeG1sU2F2ZUNsZWFyRW5jb2RpbmcoY3R4dCk7CisJY3R4dC0+ZXNjYXBlID0gb2xkZXNjYXBlOworCWN0eHQtPmVzY2FwZUF0dHIgPSBvbGRlc2NhcGVBdHRyOworICAgIH0KKyAgICBjdXItPmVuY29kaW5nID0gb2xkZW5jOworICAgIHJldHVybigwKTsKK30KKworI2lmZGVmIExJQlhNTF9IVE1MX0VOQUJMRUQKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUZ1bmN0aW9ucyBzcGVjaWZpYyB0byBYSFRNTCBzZXJpYWxpemF0aW9uCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeGh0bWxJc0VtcHR5OgorICogQG5vZGU6ICB0aGUgbm9kZQorICoKKyAqIENoZWNrIGlmIGEgbm9kZSBpcyBhbiBlbXB0eSB4aHRtbCBub2RlCisgKgorICogUmV0dXJucyAxIGlmIHRoZSBub2RlIGlzIGFuIGVtcHR5IG5vZGUsIDAgaWYgbm90IGFuZCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3hodG1sSXNFbXB0eSh4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICBpZiAobm9kZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwlyZXR1cm4oMCk7CisgICAgaWYgKChub2RlLT5ucyAhPSBOVUxMKSAmJiAoIXhtbFN0ckVxdWFsKG5vZGUtPm5zLT5ocmVmLCBYSFRNTF9OU19OQU1FKSkpCisJcmV0dXJuKDApOworICAgIGlmIChub2RlLT5jaGlsZHJlbiAhPSBOVUxMKQorCXJldHVybigwKTsKKyAgICBzd2l0Y2ggKG5vZGUtPm5hbWVbMF0pIHsKKwljYXNlICdhJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJhcmVhIikpCisJCXJldHVybigxKTsKKwkgICAgcmV0dXJuKDApOworCWNhc2UgJ2InOgorCSAgICBpZiAoeG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgQkFEX0NBU1QgImJyIikpCisJCXJldHVybigxKTsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJiYXNlIikpCisJCXJldHVybigxKTsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJiYXNlZm9udCIpKQorCQlyZXR1cm4oMSk7CisJICAgIHJldHVybigwKTsKKwljYXNlICdjJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJjb2wiKSkKKwkJcmV0dXJuKDEpOworCSAgICByZXR1cm4oMCk7CisJY2FzZSAnZic6CisJICAgIGlmICh4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAiZnJhbWUiKSkKKwkJcmV0dXJuKDEpOworCSAgICByZXR1cm4oMCk7CisJY2FzZSAnaCc6CisJICAgIGlmICh4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAiaHIiKSkKKwkJcmV0dXJuKDEpOworCSAgICByZXR1cm4oMCk7CisJY2FzZSAnaSc6CisJICAgIGlmICh4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAiaW1nIikpCisJCXJldHVybigxKTsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJpbnB1dCIpKQorCQlyZXR1cm4oMSk7CisJICAgIGlmICh4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAiaXNpbmRleCIpKQorCQlyZXR1cm4oMSk7CisJICAgIHJldHVybigwKTsKKwljYXNlICdsJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5vZGUtPm5hbWUsIEJBRF9DQVNUICJsaW5rIikpCisJCXJldHVybigxKTsKKwkgICAgcmV0dXJuKDApOworCWNhc2UgJ20nOgorCSAgICBpZiAoeG1sU3RyRXF1YWwobm9kZS0+bmFtZSwgQkFEX0NBU1QgIm1ldGEiKSkKKwkJcmV0dXJuKDEpOworCSAgICByZXR1cm4oMCk7CisJY2FzZSAncCc6CisJICAgIGlmICh4bWxTdHJFcXVhbChub2RlLT5uYW1lLCBCQURfQ0FTVCAicGFyYW0iKSkKKwkJcmV0dXJuKDEpOworCSAgICByZXR1cm4oMCk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4aHRtbEF0dHJMaXN0RHVtcE91dHB1dDoKKyAqIEBjdXI6ICB0aGUgZmlyc3QgYXR0cmlidXRlIHBvaW50ZXIKKyAqCisgKiBEdW1wIGEgbGlzdCBvZiBYTUwgYXR0cmlidXRlcworICovCitzdGF0aWMgdm9pZAoreGh0bWxBdHRyTGlzdER1bXBPdXRwdXQoeG1sU2F2ZUN0eHRQdHIgY3R4dCwgeG1sQXR0clB0ciBjdXIpIHsKKyAgICB4bWxBdHRyUHRyIHhtbF9sYW5nID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGxhbmcgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgbmFtZSA9IE5VTEw7CisgICAgeG1sQXR0clB0ciBpZCA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBwYXJlbnQ7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGJ1ZiA9IGN0eHQtPmJ1ZjsKKyAgICBwYXJlbnQgPSBjdXItPnBhcmVudDsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN1ci0+bnMgPT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpKQorCSAgICBpZCA9IGN1cjsKKwllbHNlCisJaWYgKChjdXItPm5zID09IE5VTEwpICYmICh4bWxTdHJFcXVhbChjdXItPm5hbWUsIEJBRF9DQVNUICJuYW1lIikpKQorCSAgICBuYW1lID0gY3VyOworCWVsc2UKKwlpZiAoKGN1ci0+bnMgPT0gTlVMTCkgJiYgKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgImxhbmciKSkpCisJICAgIGxhbmcgPSBjdXI7CisJZWxzZQorCWlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJiAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAibGFuZyIpKSAmJgorCSAgICAoeG1sU3RyRXF1YWwoY3VyLT5ucy0+cHJlZml4LCBCQURfQ0FTVCAieG1sIikpKQorCSAgICB4bWxfbGFuZyA9IGN1cjsKKwllbHNlIGlmICgoY3VyLT5ucyA9PSBOVUxMKSAmJiAKKwkJICgoY3VyLT5jaGlsZHJlbiA9PSBOVUxMKSB8fAorCQkgIChjdXItPmNoaWxkcmVuLT5jb250ZW50ID09IE5VTEwpIHx8CisJCSAgKGN1ci0+Y2hpbGRyZW4tPmNvbnRlbnRbMF0gPT0gMCkpICYmCisJCSAoaHRtbElzQm9vbGVhbkF0dHIoY3VyLT5uYW1lKSkpIHsKKwkgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkKKwkJeG1sRnJlZU5vZGUoY3VyLT5jaGlsZHJlbik7CisJICAgIGN1ci0+Y2hpbGRyZW4gPSB4bWxOZXdUZXh0KGN1ci0+bmFtZSk7CisJICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpCisJCWN1ci0+Y2hpbGRyZW4tPnBhcmVudCA9ICh4bWxOb2RlUHRyKSBjdXI7CisJfQorICAgICAgICB4bWxBdHRyRHVtcE91dHB1dChjdHh0LCBjdXIpOworCWN1ciA9IGN1ci0+bmV4dDsKKyAgICB9CisgICAgLyoKKyAgICAgKiBDLjgKKyAgICAgKi8KKyAgICBpZiAoKG5hbWUgIT0gTlVMTCkgJiYgKGlkID09IE5VTEwpKSB7CisJaWYgKChwYXJlbnQgIT0gTlVMTCkgJiYgKHBhcmVudC0+bmFtZSAhPSBOVUxMKSAmJgorCSAgICAoKHhtbFN0ckVxdWFsKHBhcmVudC0+bmFtZSwgQkFEX0NBU1QgImEiKSkgfHwKKwkgICAgICh4bWxTdHJFcXVhbChwYXJlbnQtPm5hbWUsIEJBRF9DQVNUICJwIikpIHx8CisJICAgICAoeG1sU3RyRXF1YWwocGFyZW50LT5uYW1lLCBCQURfQ0FTVCAiZGl2IikpIHx8CisJICAgICAoeG1sU3RyRXF1YWwocGFyZW50LT5uYW1lLCBCQURfQ0FTVCAiaW1nIikpIHx8CisJICAgICAoeG1sU3RyRXF1YWwocGFyZW50LT5uYW1lLCBCQURfQ0FTVCAibWFwIikpIHx8CisJICAgICAoeG1sU3RyRXF1YWwocGFyZW50LT5uYW1lLCBCQURfQ0FTVCAiYXBwbGV0IikpIHx8CisJICAgICAoeG1sU3RyRXF1YWwocGFyZW50LT5uYW1lLCBCQURfQ0FTVCAiZm9ybSIpKSB8fAorCSAgICAgKHhtbFN0ckVxdWFsKHBhcmVudC0+bmFtZSwgQkFEX0NBU1QgImZyYW1lIikpIHx8CisJICAgICAoeG1sU3RyRXF1YWwocGFyZW50LT5uYW1lLCBCQURfQ0FTVCAiaWZyYW1lIikpKSkgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDUsICIgaWQ9XCIiKTsKKwkgICAgeG1sQXR0clNlcmlhbGl6ZUNvbnRlbnQoYnVmLCBuYW1lKTsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiXCIiKTsKKwl9CisgICAgfQorICAgIC8qCisgICAgICogQy43LgorICAgICAqLworICAgIGlmICgobGFuZyAhPSBOVUxMKSAmJiAoeG1sX2xhbmcgPT0gTlVMTCkpIHsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDExLCAiIHhtbDpsYW5nPVwiIik7CisJeG1sQXR0clNlcmlhbGl6ZUNvbnRlbnQoYnVmLCBsYW5nKTsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICJcIiIpOworICAgIH0gZWxzZSAKKyAgICBpZiAoKHhtbF9sYW5nICE9IE5VTEwpICYmIChsYW5nID09IE5VTEwpKSB7CisJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA3LCAiIGxhbmc9XCIiKTsKKwl4bWxBdHRyU2VyaWFsaXplQ29udGVudChidWYsIHhtbF9sYW5nKTsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICJcIiIpOworICAgIH0KK30KKworLyoqCisgKiB4aHRtbE5vZGVMaXN0RHVtcE91dHB1dDoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBkb2M6ICB0aGUgWEhUTUwgZG9jdW1lbnQKKyAqIEBjdXI6ICB0aGUgZmlyc3Qgbm9kZQorICogQGxldmVsOiB0aGUgaW1icmljYXRpb24gbGV2ZWwgZm9yIGluZGVudGluZworICogQGZvcm1hdDogaXMgZm9ybWF0dGluZyBhbGxvd2VkCisgKiBAZW5jb2Rpbmc6ICBhbiBvcHRpb25hbCBlbmNvZGluZyBzdHJpbmcKKyAqCisgKiBEdW1wIGFuIFhNTCBub2RlIGxpc3QsIHJlY3Vyc2l2ZSBiZWhhdmlvdXIsIGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4KKyAqIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgeG1sSW5kZW50VHJlZU91dHB1dCA9IDEKKyAqIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQKKyAqLworc3RhdGljIHZvaWQKK3hodG1sTm9kZUxpc3REdW1wT3V0cHV0KHhtbFNhdmVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGJ1ZiA9IGN0eHQtPmJ1ZjsKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN0eHQtPmZvcm1hdCkgJiYgKHhtbEluZGVudFRyZWVPdXRwdXQpICYmCisJICAgIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkpCisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgY3R4dC0+aW5kZW50X3NpemUgKgorCSAgICAgICAgICAgICAgICAgICAgICAgICAoY3R4dC0+bGV2ZWwgPiBjdHh0LT5pbmRlbnRfbnIgPyAKKwkJCQkgIGN0eHQtPmluZGVudF9uciA6IGN0eHQtPmxldmVsKSwKKwkJCQkgY3R4dC0+aW5kZW50KTsKKyAgICAgICAgeGh0bWxOb2RlRHVtcE91dHB1dChjdHh0LCBjdXIpOworCWlmIChjdHh0LT5mb3JtYXQpIHsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiXG4iKTsKKwl9CisJY3VyID0gY3VyLT5uZXh0OworICAgIH0KK30KKworLyoqCisgKiB4aHRtbE5vZGVEdW1wT3V0cHV0OgorICogQGJ1ZjogIHRoZSBYTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBYSFRNTCBkb2N1bWVudAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUKKyAqIEBsZXZlbDogdGhlIGltYnJpY2F0aW9uIGxldmVsIGZvciBpbmRlbnRpbmcKKyAqIEBmb3JtYXQ6IGlzIGZvcm1hdHRpbmcgYWxsb3dlZAorICogQGVuY29kaW5nOiAgYW4gb3B0aW9uYWwgZW5jb2Rpbmcgc3RyaW5nCisgKgorICogRHVtcCBhbiBYSFRNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLCBjaGlsZHJlbiBhcmUgcHJpbnRlZCB0b28uCisgKi8KK3N0YXRpYyB2b2lkCit4aHRtbE5vZGVEdW1wT3V0cHV0KHhtbFNhdmVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaW50IGZvcm1hdCwgYWRkbWV0YSA9IDA7CisgICAgeG1sTm9kZVB0ciB0bXA7CisgICAgeG1sQ2hhciAqc3RhcnQsICplbmQ7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZjsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmICgoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorICAgICAgICAoY3VyLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSB7CisgICAgICAgIHhtbERvY0NvbnRlbnREdW1wT3V0cHV0KGN0eHQsICh4bWxEb2NQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9YSU5DTFVERV9TVEFSVCkKKwlyZXR1cm47CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfWElOQ0xVREVfRU5EKQorCXJldHVybjsKKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9EVERfTk9ERSkgeworICAgICAgICB4bWxEdGREdW1wT3V0cHV0KGN0eHQsICh4bWxEdGRQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9GUkFHX05PREUpIHsKKyAgICAgICAgeGh0bWxOb2RlTGlzdER1bXBPdXRwdXQoY3R4dCwgY3VyLT5jaGlsZHJlbik7CisJcmV0dXJuOworICAgIH0KKyAgICBidWYgPSBjdHh0LT5idWY7CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9ERUNMKSB7CisgICAgICAgIHhtbER1bXBFbGVtZW50RGVjbChidWYtPmJ1ZmZlciwgKHhtbEVsZW1lbnRQdHIpIGN1cik7CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfREVDTCkgeworICAgICAgICB4bWxEdW1wQXR0cmlidXRlRGVjbChidWYtPmJ1ZmZlciwgKHhtbEF0dHJpYnV0ZVB0cikgY3VyKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0VOVElUWV9ERUNMKSB7CisgICAgICAgIHhtbER1bXBFbnRpdHlEZWNsKGJ1Zi0+YnVmZmVyLCAoeG1sRW50aXR5UHRyKSBjdXIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB7CisJaWYgKGN1ci0+Y29udGVudCAhPSBOVUxMKSB7CisJICAgIGlmICgoY3VyLT5uYW1lID09IHhtbFN0cmluZ1RleHQpIHx8CisJCShjdXItPm5hbWUgIT0geG1sU3RyaW5nVGV4dE5vZW5jKSkgeworICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlKGJ1ZiwgY3VyLT5jb250ZW50LCBjdHh0LT5lc2NhcGUpOworCSAgICB9IGVsc2UgeworCQkvKgorCQkgKiBEaXNhYmxlIGVzY2FwaW5nLCBuZWVkZWQgZm9yIFhTTFQKKwkJICovCisJCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKikgY3VyLT5jb250ZW50KTsKKwkgICAgfQorCX0KKworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfUElfTk9ERSkgeworCWlmIChjdXItPmNvbnRlbnQgIT0gTlVMTCkgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDIsICI8PyIpOworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5uYW1lKTsKKwkgICAgaWYgKGN1ci0+Y29udGVudCAhPSBOVUxMKSB7CisJCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIiAiKTsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+Y29udGVudCk7CisJICAgIH0KKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAyLCAiPz4iKTsKKwl9IGVsc2UgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDIsICI8PyIpOworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5uYW1lKTsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAyLCAiPz4iKTsKKwl9CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9DT01NRU5UX05PREUpIHsKKwlpZiAoY3VyLT5jb250ZW50ICE9IE5VTEwpIHsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA0LCAiPCEtLSIpOworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5jb250ZW50KTsKKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAzLCAiLS0+Iik7CisJfQorCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRU5USVRZX1JFRl9OT0RFKSB7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIiYiKTsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5uYW1lKTsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiOyIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSB7CisJaWYgKGN1ci0+Y29udGVudCA9PSBOVUxMIHx8ICpjdXItPmNvbnRlbnQgPT0gJ1wwJykgeworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEyLCAiPCFbQ0RBVEFbXV0+Iik7CisJfSBlbHNlIHsKKwkgICAgc3RhcnQgPSBlbmQgPSBjdXItPmNvbnRlbnQ7CisJICAgIHdoaWxlICgqZW5kICE9ICdcMCcpIHsKKwkJaWYgKCplbmQgPT0gJ10nICYmICooZW5kICsgMSkgPT0gJ10nICYmICooZW5kICsgMikgPT0gJz4nKSB7CisJCSAgICBlbmQgPSBlbmQgKyAyOworCQkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA5LCAiPCFbQ0RBVEFbIik7CisJCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIGVuZCAtIHN0YXJ0LCAoY29uc3QgY2hhciAqKXN0YXJ0KTsKKwkJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMywgIl1dPiIpOworCQkgICAgc3RhcnQgPSBlbmQ7CisJCX0KKwkJZW5kKys7CisJICAgIH0KKwkgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworCQl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDksICI8IVtDREFUQVsiKTsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKXN0YXJ0KTsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAzLCAiXV0+Iik7CisJICAgIH0KKwl9CisJcmV0dXJuOworICAgIH0KKyAgICBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworICAgICAgICB4bWxBdHRyRHVtcE91dHB1dChjdHh0LCAoeG1sQXR0clB0cikgY3VyKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgZm9ybWF0ID0gY3R4dC0+Zm9ybWF0OworICAgIGlmIChmb3JtYXQgPT0gMSkgeworCXRtcCA9IGN1ci0+Y2hpbGRyZW47CisJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJICAgIGlmICgodG1wLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8IAorCQkodG1wLT50eXBlID09IFhNTF9FTlRJVFlfUkVGX05PREUpKSB7CisJCWZvcm1hdCA9IDA7CisJCWJyZWFrOworCSAgICB9CisJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwl9CisgICAgfQorICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIjwiKTsKKyAgICBpZiAoKGN1ci0+bnMgIT0gTlVMTCkgJiYgKGN1ci0+bnMtPnByZWZpeCAhPSBOVUxMKSkgeworICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5ucy0+cHJlZml4KTsKKwl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICI6Iik7CisgICAgfQorCisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+bmFtZSk7CisgICAgaWYgKGN1ci0+bnNEZWYpCisgICAgICAgIHhtbE5zTGlzdER1bXBPdXRwdXQoYnVmLCBjdXItPm5zRGVmKTsKKyAgICBpZiAoKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgImh0bWwiKSAmJgorCShjdXItPm5zID09IE5VTEwpICYmIChjdXItPm5zRGVmID09IE5VTEwpKSkgeworCS8qCisJICogMy4xLjEuIFN0cmljdGx5IENvbmZvcm1pbmcgRG9jdW1lbnRzIEEuMy4xLjEgMy8KKwkgKi8KKwl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsCisJCSIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIiKTsKKyAgICB9CisgICAgaWYgKGN1ci0+cHJvcGVydGllcyAhPSBOVUxMKQorICAgICAgICB4aHRtbEF0dHJMaXN0RHVtcE91dHB1dChjdHh0LCBjdXItPnByb3BlcnRpZXMpOworCisJaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgCisJCShjdXItPnBhcmVudCAhPSBOVUxMKSAmJiAKKwkJKGN1ci0+cGFyZW50LT5wYXJlbnQgPT0gKHhtbE5vZGVQdHIpIGN1ci0+ZG9jKSAmJiAKKwkJeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCJoZWFkIikgJiYgCisJCXhtbFN0ckVxdWFsKGN1ci0+cGFyZW50LT5uYW1lLCBCQURfQ0FTVCJodG1sIikpIHsKKworCQl0bXAgPSBjdXItPmNoaWxkcmVuOworCQl3aGlsZSAodG1wICE9IE5VTEwpIHsKKwkJCWlmICh4bWxTdHJFcXVhbCh0bXAtPm5hbWUsIEJBRF9DQVNUIm1ldGEiKSkgeworCQkJCXhtbENoYXIgKmh0dHBlcXVpdjsKKworCQkJCWh0dHBlcXVpdiA9IHhtbEdldFByb3AodG1wLCBCQURfQ0FTVCJodHRwLWVxdWl2Iik7CisJCQkJaWYgKGh0dHBlcXVpdiAhPSBOVUxMKSB7CisJCQkJCWlmICh4bWxTdHJjYXNlY21wKGh0dHBlcXVpdiwgQkFEX0NBU1QiQ29udGVudC1UeXBlIikgPT0gMCkgeworCQkJCQkJeG1sRnJlZShodHRwZXF1aXYpOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQkJeG1sRnJlZShodHRwZXF1aXYpOworCQkJCX0KKwkJCX0KKwkJCXRtcCA9IHRtcC0+bmV4dDsKKwkJfQorCQlpZiAodG1wID09IE5VTEwpCisJCQlhZGRtZXRhID0gMTsKKwl9CisKKyAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5jaGlsZHJlbiA9PSBOVUxMKSkgeworCWlmICgoKGN1ci0+bnMgPT0gTlVMTCkgfHwgKGN1ci0+bnMtPnByZWZpeCA9PSBOVUxMKSkgJiYKKwkgICAgKCh4aHRtbElzRW1wdHkoY3VyKSA9PSAxKSAmJiAoYWRkbWV0YSA9PSAwKSkpIHsKKwkgICAgLyoKKwkgICAgICogQy4yLiBFbXB0eSBFbGVtZW50cworCSAgICAgKi8KKwkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAzLCAiIC8+Iik7CisJfSBlbHNlIHsKKwkJaWYgKGFkZG1ldGEgPT0gMSkgeworCQkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiPiIpOworCQkJaWYgKGN0eHQtPmZvcm1hdCkgeworCQkJCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIlxuIik7CisJCQkJaWYgKHhtbEluZGVudFRyZWVPdXRwdXQpCisJCQkJCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgY3R4dC0+aW5kZW50X3NpemUgKgorCQkJCQkoY3R4dC0+bGV2ZWwgKyAxID4gY3R4dC0+aW5kZW50X25yID8gCisJCQkJCWN0eHQtPmluZGVudF9uciA6IGN0eHQtPmxldmVsICsgMSksIGN0eHQtPmluZGVudCk7CisJCQl9CisJCQl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsCisJCQkJIjxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PSIpOworCQkJaWYgKGN0eHQtPmVuY29kaW5nKSB7CisJCQkJeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN0eHQtPmVuY29kaW5nKTsKKwkJCX0gZWxzZSB7CisJCQkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA1LCAiVVRGLTgiKTsKKwkJCX0KKwkJCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgNCwgIlwiIC8+Iik7CisJCQlpZiAoY3R4dC0+Zm9ybWF0KQorCQkJCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIlxuIik7CisJCX0gZWxzZSB7CisJCQl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICI+Iik7CisJCX0KKwkgICAgLyoKKwkgICAgICogQy4zLiBFbGVtZW50IE1pbmltaXphdGlvbiBhbmQgRW1wdHkgRWxlbWVudCBDb250ZW50CisJICAgICAqLworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDIsICI8LyIpOworCSAgICBpZiAoKGN1ci0+bnMgIT0gTlVMTCkgJiYgKGN1ci0+bnMtPnByZWZpeCAhPSBOVUxMKSkgeworCQl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3VyLT5ucy0+cHJlZml4KTsKKwkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiOiIpOworCSAgICB9CisJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICI+Iik7CisJfQorCXJldHVybjsKKyAgICB9CisgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiPiIpOworCWlmIChhZGRtZXRhID09IDEpIHsKKwkJaWYgKGN0eHQtPmZvcm1hdCkgeworCQkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiXG4iKTsKKwkJCWlmICh4bWxJbmRlbnRUcmVlT3V0cHV0KQorCQkJCXhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgY3R4dC0+aW5kZW50X3NpemUgKgorCQkJCShjdHh0LT5sZXZlbCArIDEgPiBjdHh0LT5pbmRlbnRfbnIgPyAKKwkJCQljdHh0LT5pbmRlbnRfbnIgOiBjdHh0LT5sZXZlbCArIDEpLCBjdHh0LT5pbmRlbnQpOworCQl9CisJCXhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwKKwkJCSI8bWV0YSBodHRwLWVxdWl2PVwiQ29udGVudC1UeXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD0iKTsKKwkJaWYgKGN0eHQtPmVuY29kaW5nKSB7CisJCQl4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyhidWYsIChjb25zdCBjaGFyICopY3R4dC0+ZW5jb2RpbmcpOworCQl9IGVsc2UgeworCQkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA1LCAiVVRGLTgiKTsKKwkJfQorCQl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDQsICJcIiAvPiIpOworCX0KKyAgICBpZiAoKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5jb250ZW50ICE9IE5VTEwpKSB7CisJeG1sT3V0cHV0QnVmZmVyV3JpdGVFc2NhcGUoYnVmLCBjdXItPmNvbnRlbnQsIGN0eHQtPmVzY2FwZSk7CisgICAgfQorCisjaWYgMAorICAgIC8qCisgICAgKiBUaGlzIHdhcyByZW1vdmVkIGR1ZSB0byBwcm9ibGVtcyB3aXRoIEhUTUwgcHJvY2Vzc29ycy4KKyAgICAqIFNlZSBidWcgIzM0NTE0Ny4KKyAgICAqLworICAgIC8qCisgICAgICogNC44LiBTY3JpcHQgYW5kIFN0eWxlIGVsZW1lbnRzCisgICAgICovCisgICAgaWYgKChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkoKHhtbFN0ckVxdWFsKGN1ci0+bmFtZSwgQkFEX0NBU1QgInNjcmlwdCIpKSB8fAorCSAoeG1sU3RyRXF1YWwoY3VyLT5uYW1lLCBCQURfQ0FTVCAic3R5bGUiKSkpICYmCisJKChjdXItPm5zID09IE5VTEwpIHx8CisJICh4bWxTdHJFcXVhbChjdXItPm5zLT5ocmVmLCBYSFRNTF9OU19OQU1FKSkpKSB7CisJeG1sTm9kZVB0ciBjaGlsZCA9IGN1ci0+Y2hpbGRyZW47CisKKwl3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworCSAgICBpZiAoY2hpbGQtPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworCQlpZiAoKHhtbFN0cmNocihjaGlsZC0+Y29udGVudCwgJzwnKSA9PSBOVUxMKSAmJgorCQkgICAgKHhtbFN0cmNocihjaGlsZC0+Y29udGVudCwgJyYnKSA9PSBOVUxMKSAmJgorCQkgICAgKHhtbFN0cnN0cihjaGlsZC0+Y29udGVudCwgQkFEX0NBU1QgIl1dPiIpID09IE5VTEwpKSB7CisJCSAgICAvKiBOb3RoaW5nIHRvIGVzY2FwZSwgc28ganVzdCBvdXRwdXQgYXMgaXMuLi4gKi8KKwkJICAgIC8qIEZJWE1FOiBTaG91bGQgd2UgZG8gc29tZXRoaW5nIGFib3V0ICItLSIgYWxzbz8gKi8KKwkJICAgIGludCBsZXZlbCA9IGN0eHQtPmxldmVsOworCQkgICAgaW50IGluZGVudCA9IGN0eHQtPmZvcm1hdDsKKworCQkgICAgY3R4dC0+bGV2ZWwgPSAwOworCQkgICAgY3R4dC0+Zm9ybWF0ID0gMDsKKwkJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKikgY2hpbGQtPmNvbnRlbnQpOworCQkgICAgLyogKFdlIGNhbm5vdCB1c2UgeGh0bWxOb2RlRHVtcE91dHB1dCgpIGhlcmUgYmVjYXVzZQorCQkgICAgICogd2Ugd2lzaCB0byBsZWF2ZSAnPicgdW5lc2NhcGVkISkgKi8KKwkJICAgIGN0eHQtPmxldmVsID0gbGV2ZWw7CisJCSAgICBjdHh0LT5mb3JtYXQgPSBpbmRlbnQ7CisJCX0gZWxzZSB7CisJCSAgICAvKiBXZSBtdXN0IHVzZSBhIENEQVRBIHNlY3Rpb24uICBVbmZvcnR1bmF0ZWx5LAorCQkgICAgICogdGhpcyB3aWxsIGJyZWFrIENTUyBhbmQgSmF2YVNjcmlwdCB3aGVuIHJlYWQgYnkKKwkJICAgICAqIGEgYnJvd3NlciBpbiBIVE1MNC1jb21wbGlhbnQgbW9kZS4gOi0oICovCisJCSAgICBzdGFydCA9IGVuZCA9IGNoaWxkLT5jb250ZW50OworCQkgICAgd2hpbGUgKCplbmQgIT0gJ1wwJykgeworCQkJaWYgKCplbmQgPT0gJ10nICYmCisJCQkgICAgKihlbmQgKyAxKSA9PSAnXScgJiYKKwkJCSAgICAqKGVuZCArIDIpID09ICc+JykgeworCQkJICAgIGVuZCA9IGVuZCArIDI7CisJCQkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA5LCAiPCFbQ0RBVEFbIik7CisJCQkgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCBlbmQgLSBzdGFydCwKKwkJCQkJCSAoY29uc3QgY2hhciAqKXN0YXJ0KTsKKwkJCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDMsICJdXT4iKTsKKwkJCSAgICBzdGFydCA9IGVuZDsKKwkJCX0KKwkJCWVuZCsrOworCQkgICAgfQorCQkgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworCQkJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCA5LCAiPCFbQ0RBVEFbIik7CisJCQl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIGVuZCAtIHN0YXJ0LAorCQkJICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKilzdGFydCk7CisJCQl4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDMsICJdXT4iKTsKKwkJICAgIH0KKwkJfQorCSAgICB9IGVsc2UgeworCQlpbnQgbGV2ZWwgPSBjdHh0LT5sZXZlbDsKKwkJaW50IGluZGVudCA9IGN0eHQtPmZvcm1hdDsKKworCQljdHh0LT5sZXZlbCA9IDA7CisJCWN0eHQtPmZvcm1hdCA9IDA7CisJCXhodG1sTm9kZUR1bXBPdXRwdXQoY3R4dCwgY2hpbGQpOworCQljdHh0LT5sZXZlbCA9IGxldmVsOworCQljdHh0LT5mb3JtYXQgPSBpbmRlbnQ7CisJICAgIH0KKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoY3VyLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJaW50IGluZGVudCA9IGN0eHQtPmZvcm1hdDsKKwkKKwlpZiAoZm9ybWF0KSB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIDEsICJcbiIpOworCWlmIChjdHh0LT5sZXZlbCA+PSAwKSBjdHh0LT5sZXZlbCsrOworCWN0eHQtPmZvcm1hdCA9IGZvcm1hdDsKKwl4aHRtbE5vZGVMaXN0RHVtcE91dHB1dChjdHh0LCBjdXItPmNoaWxkcmVuKTsKKwlpZiAoY3R4dC0+bGV2ZWwgPiAwKSBjdHh0LT5sZXZlbC0tOworCWN0eHQtPmZvcm1hdCA9IGluZGVudDsKKwlpZiAoKHhtbEluZGVudFRyZWVPdXRwdXQpICYmIChmb3JtYXQpKQorCSAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZShidWYsIGN0eHQtPmluZGVudF9zaXplICoKKwkgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPmxldmVsID4gY3R4dC0+aW5kZW50X25yID8gCisJCQkJICBjdHh0LT5pbmRlbnRfbnIgOiBjdHh0LT5sZXZlbCksCisJCQkJIGN0eHQtPmluZGVudCk7CisgICAgfQorICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMiwgIjwvIik7CisgICAgaWYgKChjdXItPm5zICE9IE5VTEwpICYmIChjdXItPm5zLT5wcmVmaXggIT0gTlVMTCkpIHsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcoYnVmLCAoY29uc3QgY2hhciAqKWN1ci0+bnMtPnByZWZpeCk7CisJeG1sT3V0cHV0QnVmZmVyV3JpdGUoYnVmLCAxLCAiOiIpOworICAgIH0KKworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKGJ1ZiwgKGNvbnN0IGNoYXIgKiljdXItPm5hbWUpOworICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKGJ1ZiwgMSwgIj4iKTsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJUHVibGljIGVudHJ5IHBvaW50cwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sU2F2ZVRvRmQ6CisgKiBAZmQ6ICBhIGZpbGUgZGVzY3JpcHRvciBudW1iZXIKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBuYW1lIHRvIHVzZSBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgc2V0IG9mIHhtbFNhdmVPcHRpb25zCisgKgorICogQ3JlYXRlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQgc2VyaWFsaXppbmcgdG8gYSBmaWxlIGRlc2NyaXB0b3IKKyAqIHdpdGggdGhlIGVuY29kaW5nIGFuZCB0aGUgb3B0aW9ucyBnaXZlbi4KKyAqCisgKiBSZXR1cm5zIGEgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbFNhdmVDdHh0UHRyCit4bWxTYXZlVG9GZChpbnQgZmQsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgb3B0aW9ucykKK3sKKyAgICB4bWxTYXZlQ3R4dFB0ciByZXQ7CisKKyAgICByZXQgPSB4bWxOZXdTYXZlQ3R4dChlbmNvZGluZywgb3B0aW9ucyk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgcmV0LT5idWYgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVGZChmZCwgcmV0LT5oYW5kbGVyKTsKKyAgICBpZiAocmV0LT5idWYgPT0gTlVMTCkgeworCXhtbEZyZWVTYXZlQ3R4dChyZXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2F2ZVRvRmlsZW5hbWU6CisgKiBAZmlsZW5hbWU6ICBhIGZpbGUgbmFtZSBvciBhbiBVUkwKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBuYW1lIHRvIHVzZSBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgc2V0IG9mIHhtbFNhdmVPcHRpb25zCisgKgorICogQ3JlYXRlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQgc2VyaWFsaXppbmcgdG8gYSBmaWxlbmFtZSBvciBwb3NzaWJseQorICogdG8gYW4gVVJMIChidXQgdGhpcyBpcyBsZXNzIHJlbGlhYmxlKSB3aXRoIHRoZSBlbmNvZGluZyBhbmQgdGhlIG9wdGlvbnMKKyAqIGdpdmVuLgorICoKKyAqIFJldHVybnMgYSBuZXcgc2VyaWFsaXphdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sU2F2ZUN0eHRQdHIKK3htbFNhdmVUb0ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgeG1sU2F2ZUN0eHRQdHIgcmV0OworICAgIGludCBjb21wcmVzc2lvbiA9IDA7IC8qIFRPRE8gaGFuZGxlIGNvbXByZXNzaW9uIG9wdGlvbiAqLworCisgICAgcmV0ID0geG1sTmV3U2F2ZUN0eHQoZW5jb2RpbmcsIG9wdGlvbnMpOworICAgIGlmIChyZXQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHJldC0+YnVmID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoZmlsZW5hbWUsIHJldC0+aGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzaW9uKTsKKyAgICBpZiAocmV0LT5idWYgPT0gTlVMTCkgeworCXhtbEZyZWVTYXZlQ3R4dChyZXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2F2ZVRvQnVmZmVyOgorICogQGJ1ZmZlcjogIGEgYnVmZmVyCisgKiBAZW5jb2Rpbmc6ICB0aGUgZW5jb2RpbmcgbmFtZSB0byB1c2Ugb3IgTlVMTAorICogQG9wdGlvbnM6ICBhIHNldCBvZiB4bWxTYXZlT3B0aW9ucworICoKKyAqIENyZWF0ZSBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0IHNlcmlhbGl6aW5nIHRvIGEgYnVmZmVyCisgKiB3aXRoIHRoZSBlbmNvZGluZyBhbmQgdGhlIG9wdGlvbnMgZ2l2ZW4KKyAqCisgKiBSZXR1cm5zIGEgbmV3IHNlcmlhbGl6YXRpb24gY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KKworeG1sU2F2ZUN0eHRQdHIKK3htbFNhdmVUb0J1ZmZlcih4bWxCdWZmZXJQdHIgYnVmZmVyLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgeG1sU2F2ZUN0eHRQdHIgcmV0OworICAgIHhtbE91dHB1dEJ1ZmZlclB0ciBvdXRfYnVmZjsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXI7CisKKyAgICByZXQgPSB4bWxOZXdTYXZlQ3R4dChlbmNvZGluZywgb3B0aW9ucyk7CisgICAgaWYgKHJldCA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisKKyAgICBpZiAoZW5jb2RpbmcgIT0gTlVMTCkgeworICAgICAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworICAgICAgICBpZiAoaGFuZGxlciA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxGcmVlKHJldCk7CisgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaGFuZGxlciA9IE5VTEw7CisgICAgb3V0X2J1ZmYgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIoYnVmZmVyLCBoYW5kbGVyKTsKKyAgICBpZiAob3V0X2J1ZmYgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlKHJldCk7CisgICAgICAgIGlmIChoYW5kbGVyKSB4bWxDaGFyRW5jQ2xvc2VGdW5jKGhhbmRsZXIpOworICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgfQorCisgICAgcmV0LT5idWYgPSBvdXRfYnVmZjsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTYXZlVG9JTzoKKyAqIEBpb3dyaXRlOiAgYW4gSS9PIHdyaXRlIGZ1bmN0aW9uCisgKiBAaW9jbG9zZTogIGFuIEkvTyBjbG9zZSBmdW5jdGlvbgorICogQGlvY3R4OiAgYW4gSS9PIGhhbmRsZXIKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBuYW1lIHRvIHVzZSBvciBOVUxMCisgKiBAb3B0aW9uczogIGEgc2V0IG9mIHhtbFNhdmVPcHRpb25zCisgKgorICogQ3JlYXRlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQgc2VyaWFsaXppbmcgdG8gYSBmaWxlIGRlc2NyaXB0b3IKKyAqIHdpdGggdGhlIGVuY29kaW5nIGFuZCB0aGUgb3B0aW9ucyBnaXZlbgorICoKKyAqIFJldHVybnMgYSBuZXcgc2VyaWFsaXphdGlvbiBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sU2F2ZUN0eHRQdHIKK3htbFNhdmVUb0lPKHhtbE91dHB1dFdyaXRlQ2FsbGJhY2sgaW93cml0ZSwKKyAgICAgICAgICAgIHhtbE91dHB1dENsb3NlQ2FsbGJhY2sgaW9jbG9zZSwKKyAgICAgICAgICAgIHZvaWQgKmlvY3R4LCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IG9wdGlvbnMpCit7CisgICAgeG1sU2F2ZUN0eHRQdHIgcmV0OworCisgICAgcmV0ID0geG1sTmV3U2F2ZUN0eHQoZW5jb2RpbmcsIG9wdGlvbnMpOworICAgIGlmIChyZXQgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHJldC0+YnVmID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlSU8oaW93cml0ZSwgaW9jbG9zZSwgaW9jdHgsIHJldC0+aGFuZGxlcik7CisgICAgaWYgKHJldC0+YnVmID09IE5VTEwpIHsKKwl4bWxGcmVlU2F2ZUN0eHQocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFNhdmVEb2M6CisgKiBAY3R4dDogIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQKKyAqIEBkb2M6ICBhIGRvY3VtZW50CisgKgorICogU2F2ZSBhIGZ1bGwgZG9jdW1lbnQgdG8gYSBzYXZpbmcgY29udGV4dAorICogVE9ETzogVGhlIGZ1bmN0aW9uIGlzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCB5ZXQgYXMgaXQgZG9lcyBub3QgcmV0dXJuIHRoZQorICogYnl0ZSBjb3VudCBidXQgMCBpbnN0ZWFkCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2xvbmcKK3htbFNhdmVEb2MoeG1sU2F2ZUN0eHRQdHIgY3R4dCwgeG1sRG9jUHRyIGRvYykKK3sKKyAgICBsb25nIHJldCA9IDA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGRvYyA9PSBOVUxMKSkgcmV0dXJuKC0xKTsKKyAgICBpZiAoeG1sRG9jQ29udGVudER1bXBPdXRwdXQoY3R4dCwgZG9jKSA8IDApCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2F2ZVRyZWU6CisgKiBAY3R4dDogIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIHRvcCBub2RlIG9mIHRoZSBzdWJ0cmVlIHRvIHNhdmUKKyAqCisgKiBTYXZlIGEgc3VidHJlZSBzdGFydGluZyBhdCB0aGUgbm9kZSBwYXJhbWV0ZXIgdG8gYSBzYXZpbmcgY29udGV4dAorICogVE9ETzogVGhlIGZ1bmN0aW9uIGlzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCB5ZXQgYXMgaXQgZG9lcyBub3QgcmV0dXJuIHRoZQorICogYnl0ZSBjb3VudCBidXQgMCBpbnN0ZWFkCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2xvbmcKK3htbFNhdmVUcmVlKHhtbFNhdmVDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICBsb25nIHJldCA9IDA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpIHJldHVybigtMSk7CisgICAgeG1sTm9kZUR1bXBPdXRwdXRJbnRlcm5hbChjdHh0LCBub2RlKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTYXZlRmx1c2g6CisgKiBAY3R4dDogIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQKKyAqCisgKiBGbHVzaCBhIGRvY3VtZW50IHNhdmluZyBjb250ZXh0LCBpLmUuIG1ha2Ugc3VyZSB0aGF0IGFsbCBieXRlcyBoYXZlCisgKiBiZWVuIG91dHB1dC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZSB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sU2F2ZUZsdXNoKHhtbFNhdmVDdHh0UHRyIGN0eHQpCit7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoY3R4dC0+YnVmID09IE5VTEwpIHJldHVybigtMSk7CisgICAgcmV0dXJuKHhtbE91dHB1dEJ1ZmZlckZsdXNoKGN0eHQtPmJ1ZikpOworfQorCisvKioKKyAqIHhtbFNhdmVDbG9zZToKKyAqIEBjdHh0OiAgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dAorICoKKyAqIENsb3NlIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQsIGkuZS4gbWFrZSBzdXJlIHRoYXQgYWxsIGJ5dGVzIGhhdmUKKyAqIGJlZW4gb3V0cHV0IGFuZCBmcmVlIHRoZSBhc3NvY2lhdGVkIGRhdGEuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGUgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICovCitpbnQKK3htbFNhdmVDbG9zZSh4bWxTYXZlQ3R4dFB0ciBjdHh0KQoreworICAgIGludCByZXQ7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIHJldCA9IHhtbFNhdmVGbHVzaChjdHh0KTsKKyAgICB4bWxGcmVlU2F2ZUN0eHQoY3R4dCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2F2ZVNldEVzY2FwZToKKyAqIEBjdHh0OiAgYSBkb2N1bWVudCBzYXZpbmcgY29udGV4dAorICogQGVzY2FwZTogIHRoZSBlc2NhcGluZyBmdW5jdGlvbgorICoKKyAqIFNldCBhIGN1c3RvbSBlc2NhcGluZyBmdW5jdGlvbiB0byBiZSB1c2VkIGZvciB0ZXh0IGluIGVsZW1lbnQgY29udGVudAorICoKKyAqIFJldHVybnMgMCBpZiBzdWNjZXNzZnVsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sU2F2ZVNldEVzY2FwZSh4bWxTYXZlQ3R4dFB0ciBjdHh0LCB4bWxDaGFyRW5jb2RpbmdPdXRwdXRGdW5jIGVzY2FwZSkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGN0eHQtPmVzY2FwZSA9IGVzY2FwZTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sU2F2ZVNldEF0dHJFc2NhcGU6CisgKiBAY3R4dDogIGEgZG9jdW1lbnQgc2F2aW5nIGNvbnRleHQKKyAqIEBlc2NhcGU6ICB0aGUgZXNjYXBpbmcgZnVuY3Rpb24KKyAqCisgKiBTZXQgYSBjdXN0b20gZXNjYXBpbmcgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgdGV4dCBpbiBhdHRyaWJ1dGUgY29udGVudAorICoKKyAqIFJldHVybnMgMCBpZiBzdWNjZXNzZnVsIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK2ludAoreG1sU2F2ZVNldEF0dHJFc2NhcGUoeG1sU2F2ZUN0eHRQdHIgY3R4dCwgeG1sQ2hhckVuY29kaW5nT3V0cHV0RnVuYyBlc2NhcGUpCit7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBjdHh0LT5lc2NhcGVBdHRyID0gZXNjYXBlOworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUHVibGljIGVudHJ5IHBvaW50cyBiYXNlZCBvbiBidWZmZXJzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudDoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBhdHRyOiB0aGUgYXR0cmlidXRlIG5vZGUKKyAqIEBzdHJpbmc6IHRoZSB0ZXh0IGNvbnRlbnQKKyAqCisgKiBTZXJpYWxpemUgdGV4dCBhdHRyaWJ1dGUgdmFsdWVzIHRvIGFuIHhtbCBzaW1wbGUgYnVmZmVyCisgKi8KK3ZvaWQKK3htbEF0dHJTZXJpYWxpemVUeHRDb250ZW50KHhtbEJ1ZmZlclB0ciBidWYsIHhtbERvY1B0ciBkb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdHRyUHRyIGF0dHIsIGNvbnN0IHhtbENoYXIgKiBzdHJpbmcpCit7CisgICAgeG1sQ2hhciAqYmFzZSwgKmN1cjsKKworICAgIGlmIChzdHJpbmcgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGJhc2UgPSBjdXIgPSAoeG1sQ2hhciAqKSBzdHJpbmc7CisgICAgd2hpbGUgKCpjdXIgIT0gMCkgeworICAgICAgICBpZiAoKmN1ciA9PSAnXG4nKSB7CisgICAgICAgICAgICBpZiAoYmFzZSAhPSBjdXIpCisgICAgICAgICAgICAgICAgeG1sQnVmZmVyQWRkKGJ1ZiwgYmFzZSwgY3VyIC0gYmFzZSk7CisgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBCQURfQ0FTVCAiJiMxMDsiLCA1KTsKKyAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgYmFzZSA9IGN1cjsKKyAgICAgICAgfSBlbHNlIGlmICgqY3VyID09ICdccicpIHsKKyAgICAgICAgICAgIGlmIChiYXNlICE9IGN1cikKKyAgICAgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBiYXNlLCBjdXIgLSBiYXNlKTsKKyAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsIEJBRF9DQVNUICImIzEzOyIsIDUpOworICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICBiYXNlID0gY3VyOworICAgICAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJ1x0JykgeworICAgICAgICAgICAgaWYgKGJhc2UgIT0gY3VyKQorICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsIGJhc2UsIGN1ciAtIGJhc2UpOworICAgICAgICAgICAgeG1sQnVmZmVyQWRkKGJ1ZiwgQkFEX0NBU1QgIiYjOTsiLCA0KTsKKyAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgYmFzZSA9IGN1cjsKKyAgICAgICAgfSBlbHNlIGlmICgqY3VyID09ICciJykgeworICAgICAgICAgICAgaWYgKGJhc2UgIT0gY3VyKQorICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsIGJhc2UsIGN1ciAtIGJhc2UpOworICAgICAgICAgICAgeG1sQnVmZmVyQWRkKGJ1ZiwgQkFEX0NBU1QgIiZxdW90OyIsIDYpOworICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICBiYXNlID0gY3VyOworICAgICAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJzwnKSB7CisgICAgICAgICAgICBpZiAoYmFzZSAhPSBjdXIpCisgICAgICAgICAgICAgICAgeG1sQnVmZmVyQWRkKGJ1ZiwgYmFzZSwgY3VyIC0gYmFzZSk7CisgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBCQURfQ0FTVCAiJmx0OyIsIDQpOworICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICBiYXNlID0gY3VyOworICAgICAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJz4nKSB7CisgICAgICAgICAgICBpZiAoYmFzZSAhPSBjdXIpCisgICAgICAgICAgICAgICAgeG1sQnVmZmVyQWRkKGJ1ZiwgYmFzZSwgY3VyIC0gYmFzZSk7CisgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBCQURfQ0FTVCAiJmd0OyIsIDQpOworICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICBiYXNlID0gY3VyOworICAgICAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJyYnKSB7CisgICAgICAgICAgICBpZiAoYmFzZSAhPSBjdXIpCisgICAgICAgICAgICAgICAgeG1sQnVmZmVyQWRkKGJ1ZiwgYmFzZSwgY3VyIC0gYmFzZSk7CisgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBCQURfQ0FTVCAiJmFtcDsiLCA1KTsKKyAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgYmFzZSA9IGN1cjsKKyAgICAgICAgfSBlbHNlIGlmICgoKmN1ciA+PSAweDgwKSAmJiAoKGRvYyA9PSBOVUxMKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG9jLT5lbmNvZGluZyA9PSBOVUxMKSkpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBXZSBhc3N1bWUgd2UgaGF2ZSBVVEYtOCBjb250ZW50LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHRtcFsxMF07CisgICAgICAgICAgICBpbnQgdmFsID0gMCwgbCA9IDE7CisKKyAgICAgICAgICAgIGlmIChiYXNlICE9IGN1cikKKyAgICAgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBiYXNlLCBjdXIgLSBiYXNlKTsKKyAgICAgICAgICAgIGlmICgqY3VyIDwgMHhDMCkgeworICAgICAgICAgICAgICAgIHhtbFNhdmVFcnIoWE1MX1NBVkVfTk9UX1VURjgsICh4bWxOb2RlUHRyKSBhdHRyLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGRvYy0+ZW5jb2RpbmcgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIklTTy04ODU5LTEiKTsKKwkJeG1sU2VyaWFsaXplSGV4Q2hhclJlZih0bXAsICpjdXIpOworICAgICAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsICh4bWxDaGFyICopIHRtcCwgLTEpOworICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIGJhc2UgPSBjdXI7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCpjdXIgPCAweEUwKSB7CisgICAgICAgICAgICAgICAgdmFsID0gKGN1clswXSkgJiAweDFGOworICAgICAgICAgICAgICAgIHZhbCA8PD0gNjsKKyAgICAgICAgICAgICAgICB2YWwgfD0gKGN1clsxXSkgJiAweDNGOworICAgICAgICAgICAgICAgIGwgPSAyOworICAgICAgICAgICAgfSBlbHNlIGlmICgqY3VyIDwgMHhGMCkgeworICAgICAgICAgICAgICAgIHZhbCA9IChjdXJbMF0pICYgMHgwRjsKKyAgICAgICAgICAgICAgICB2YWwgPDw9IDY7CisgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMV0pICYgMHgzRjsKKyAgICAgICAgICAgICAgICB2YWwgPDw9IDY7CisgICAgICAgICAgICAgICAgdmFsIHw9IChjdXJbMl0pICYgMHgzRjsKKyAgICAgICAgICAgICAgICBsID0gMzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKmN1ciA8IDB4RjgpIHsKKyAgICAgICAgICAgICAgICB2YWwgPSAoY3VyWzBdKSAmIDB4MDc7CisgICAgICAgICAgICAgICAgdmFsIDw8PSA2OworICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzFdKSAmIDB4M0Y7CisgICAgICAgICAgICAgICAgdmFsIDw8PSA2OworICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzJdKSAmIDB4M0Y7CisgICAgICAgICAgICAgICAgdmFsIDw8PSA2OworICAgICAgICAgICAgICAgIHZhbCB8PSAoY3VyWzNdKSAmIDB4M0Y7CisgICAgICAgICAgICAgICAgbCA9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGwgPT0gMSkgfHwgKCFJU19DSEFSKHZhbCkpKSB7CisgICAgICAgICAgICAgICAgeG1sU2F2ZUVycihYTUxfU0FWRV9DSEFSX0lOVkFMSUQsICh4bWxOb2RlUHRyKSBhdHRyLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGRvYy0+ZW5jb2RpbmcgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIklTTy04ODU5LTEiKTsKKwkJCisJCXhtbFNlcmlhbGl6ZUhleENoYXJSZWYodG1wLCAqY3VyKTsKKyAgICAgICAgICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCAoeG1sQ2hhciAqKSB0bXAsIC0xKTsKKyAgICAgICAgICAgICAgICBjdXIrKzsKKyAgICAgICAgICAgICAgICBiYXNlID0gY3VyOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFdlIGNvdWxkIGRvIG11bHRpcGxlIHRoaW5ncyBoZXJlLiBKdXN0IHNhdmUKKyAgICAgICAgICAgICAqIGFzIGEgY2hhciByZWYKKyAgICAgICAgICAgICAqLworCSAgICB4bWxTZXJpYWxpemVIZXhDaGFyUmVmKHRtcCwgdmFsKTsKKyAgICAgICAgICAgIHhtbEJ1ZmZlckFkZChidWYsICh4bWxDaGFyICopIHRtcCwgLTEpOworICAgICAgICAgICAgY3VyICs9IGw7CisgICAgICAgICAgICBiYXNlID0gY3VyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY3VyKys7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGJhc2UgIT0gY3VyKQorICAgICAgICB4bWxCdWZmZXJBZGQoYnVmLCBiYXNlLCBjdXIgLSBiYXNlKTsKK30KKworLyoqCisgKiB4bWxOb2RlRHVtcDoKKyAqIEBidWY6ICB0aGUgWE1MIGJ1ZmZlciBvdXRwdXQKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlCisgKiBAbGV2ZWw6IHRoZSBpbWJyaWNhdGlvbiBsZXZlbCBmb3IgaW5kZW50aW5nCisgKiBAZm9ybWF0OiBpcyBmb3JtYXR0aW5nIGFsbG93ZWQKKyAqCisgKiBEdW1wIGFuIFhNTCBub2RlLCByZWN1cnNpdmUgYmVoYXZpb3VyLGNoaWxkcmVuIGFyZSBwcmludGVkIHRvby4KKyAqIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgeG1sSW5kZW50VHJlZU91dHB1dCA9IDEKKyAqIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byB0aGUgYnVmZmVyIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxOb2RlRHVtcCh4bWxCdWZmZXJQdHIgYnVmLCB4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGN1ciwgaW50IGxldmVsLAorICAgICAgICAgICAgaW50IGZvcm1hdCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgdXNlOworICAgIGludCByZXQ7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dGJ1ZjsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTm9kZUR1bXAgOiBub2RlID09IE5VTExcbiIpOworI2VuZGlmCisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE5vZGVEdW1wIDogYnVmID09IE5VTExcbiIpOworI2VuZGlmCisgICAgICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBvdXRidWYgPSAoeG1sT3V0cHV0QnVmZmVyUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbE91dHB1dEJ1ZmZlcikpOworICAgIGlmIChvdXRidWYgPT0gTlVMTCkgeworICAgICAgICB4bWxTYXZlRXJyTWVtb3J5KCJjcmVhdGluZyBidWZmZXIiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIG1lbXNldChvdXRidWYsIDAsIChzaXplX3QpIHNpemVvZih4bWxPdXRwdXRCdWZmZXIpKTsKKyAgICBvdXRidWYtPmJ1ZmZlciA9IGJ1ZjsKKyAgICBvdXRidWYtPmVuY29kZXIgPSBOVUxMOworICAgIG91dGJ1Zi0+d3JpdGVjYWxsYmFjayA9IE5VTEw7CisgICAgb3V0YnVmLT5jbG9zZWNhbGxiYWNrID0gTlVMTDsKKyAgICBvdXRidWYtPmNvbnRleHQgPSBOVUxMOworICAgIG91dGJ1Zi0+d3JpdHRlbiA9IDA7CisKKyAgICB1c2UgPSBidWYtPnVzZTsKKyAgICB4bWxOb2RlRHVtcE91dHB1dChvdXRidWYsIGRvYywgY3VyLCBsZXZlbCwgZm9ybWF0LCBOVUxMKTsKKyAgICB4bWxGcmVlKG91dGJ1Zik7CisgICAgcmV0ID0gYnVmLT51c2UgLSB1c2U7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbEVsZW1EdW1wOgorICogQGY6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAZG9jOiAgdGhlIGRvY3VtZW50CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgbm9kZQorICoKKyAqIER1bXAgYW4gWE1ML0hUTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91ciwgY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLgorICovCit2b2lkCit4bWxFbGVtRHVtcChGSUxFICogZiwgeG1sRG9jUHRyIGRvYywgeG1sTm9kZVB0ciBjdXIpCit7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dGJ1ZjsKKworICAgIHhtbEluaXRQYXJzZXIoKTsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgeworI2lmZGVmIERFQlVHX1RSRUUKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sRWxlbUR1bXAgOiBjdXIgPT0gTlVMTFxuIik7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNpZmRlZiBERUJVR19UUkVFCisgICAgaWYgKGRvYyA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbEVsZW1EdW1wIDogZG9jID09IE5VTExcbiIpOworICAgIH0KKyNlbmRpZgorCisgICAgb3V0YnVmID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZShmLCBOVUxMKTsKKyAgICBpZiAob3V0YnVmID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKGRvYyAhPSBOVUxMKSAmJiAoZG9jLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSB7CisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgICAgICBodG1sTm9kZUR1bXBPdXRwdXQob3V0YnVmLCBkb2MsIGN1ciwgTlVMTCk7CisjZWxzZQorCXhtbFNhdmVFcnIoWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwgY3VyLCAiSFRNTCBzdXBwb3J0IG5vdCBjb21waWxlZCBpblxuIik7CisjZW5kaWYgLyogTElCWE1MX0hUTUxfRU5BQkxFRCAqLworICAgIH0gZWxzZQorICAgICAgICB4bWxOb2RlRHVtcE91dHB1dChvdXRidWYsIGRvYywgY3VyLCAwLCAxLCBOVUxMKTsKKyAgICB4bWxPdXRwdXRCdWZmZXJDbG9zZShvdXRidWYpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlTYXZpbmcgZnVuY3Rpb25zIGZyb250LWVuZHMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbE5vZGVEdW1wT3V0cHV0OgorICogQGJ1ZjogIHRoZSBYTUwgYnVmZmVyIG91dHB1dAorICogQGRvYzogIHRoZSBkb2N1bWVudAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUKKyAqIEBsZXZlbDogdGhlIGltYnJpY2F0aW9uIGxldmVsIGZvciBpbmRlbnRpbmcKKyAqIEBmb3JtYXQ6IGlzIGZvcm1hdHRpbmcgYWxsb3dlZAorICogQGVuY29kaW5nOiAgYW4gb3B0aW9uYWwgZW5jb2Rpbmcgc3RyaW5nCisgKgorICogRHVtcCBhbiBYTUwgbm9kZSwgcmVjdXJzaXZlIGJlaGF2aW91ciwgY2hpbGRyZW4gYXJlIHByaW50ZWQgdG9vLgorICogTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiB4bWxJbmRlbnRUcmVlT3V0cHV0ID0gMQorICogb3IgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgd2FzIGNhbGxlZAorICovCit2b2lkCit4bWxOb2RlRHVtcE91dHB1dCh4bWxPdXRwdXRCdWZmZXJQdHIgYnVmLCB4bWxEb2NQdHIgZG9jLCB4bWxOb2RlUHRyIGN1ciwKKyAgICAgICAgICAgICAgICAgIGludCBsZXZlbCwgaW50IGZvcm1hdCwgY29uc3QgY2hhciAqZW5jb2RpbmcpCit7CisgICAgeG1sU2F2ZUN0eHQgY3R4dDsKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgeG1sRHRkUHRyIGR0ZDsKKyAgICBpbnQgaXNfeGh0bWwgPSAwOworI2VuZGlmCisKKyAgICB4bWxJbml0UGFyc2VyKCk7CisKKyAgICBpZiAoKGJ1ZiA9PSBOVUxMKSB8fCAoY3VyID09IE5VTEwpKSByZXR1cm47CisKKyAgICBpZiAoZW5jb2RpbmcgPT0gTlVMTCkKKyAgICAgICAgZW5jb2RpbmcgPSAiVVRGLTgiOworCisgICAgbWVtc2V0KCZjdHh0LCAwLCBzaXplb2YoY3R4dCkpOworICAgIGN0eHQuZG9jID0gZG9jOworICAgIGN0eHQuYnVmID0gYnVmOworICAgIGN0eHQubGV2ZWwgPSBsZXZlbDsKKyAgICBjdHh0LmZvcm1hdCA9IGZvcm1hdDsKKyAgICBjdHh0LmVuY29kaW5nID0gKGNvbnN0IHhtbENoYXIgKikgZW5jb2Rpbmc7CisgICAgeG1sU2F2ZUN0eHRJbml0KCZjdHh0KTsKKyAgICBjdHh0Lm9wdGlvbnMgfD0gWE1MX1NBVkVfQVNfWE1MOworCisjaWZkZWYgTElCWE1MX0hUTUxfRU5BQkxFRAorICAgIGR0ZCA9IHhtbEdldEludFN1YnNldChkb2MpOworICAgIGlmIChkdGQgIT0gTlVMTCkgeworCWlzX3hodG1sID0geG1sSXNYSFRNTChkdGQtPlN5c3RlbUlELCBkdGQtPkV4dGVybmFsSUQpOworCWlmIChpc194aHRtbCA8IDApCisJICAgIGlzX3hodG1sID0gMDsKKyAgICB9CisKKyAgICBpZiAoaXNfeGh0bWwpCisgICAgICAgIHhodG1sTm9kZUR1bXBPdXRwdXQoJmN0eHQsIGN1cik7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHhtbE5vZGVEdW1wT3V0cHV0SW50ZXJuYWwoJmN0eHQsIGN1cik7Cit9CisKKy8qKgorICogeG1sRG9jRHVtcEZvcm1hdE1lbW9yeUVuYzoKKyAqIEBvdXRfZG9jOiAgRG9jdW1lbnQgdG8gZ2VuZXJhdGUgWE1MIHRleHQgZnJvbQorICogQGRvY190eHRfcHRyOiAgTWVtb3J5IHBvaW50ZXIgZm9yIGFsbG9jYXRlZCBYTUwgdGV4dAorICogQGRvY190eHRfbGVuOiAgTGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQKKyAqIEB0eHRfZW5jb2Rpbmc6ICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBYTUwgdGV4dAorICogQGZvcm1hdDogIHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkCisgKgorICogRHVtcCB0aGUgY3VycmVudCBET00gdHJlZSBpbnRvIG1lbW9yeSB1c2luZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHNwZWNpZmllZAorICogYnkgdGhlIGNhbGxlci4gIE5vdGUgaXQgaXMgdXAgdG8gdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZyZWUgdGhlCisgKiBhbGxvY2F0ZWQgbWVtb3J5IHdpdGggeG1sRnJlZSgpLgorICogTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiB4bWxJbmRlbnRUcmVlT3V0cHV0ID0gMQorICogb3IgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgd2FzIGNhbGxlZAorICovCisKK3ZvaWQKK3htbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMoeG1sRG9jUHRyIG91dF9kb2MsIHhtbENoYXIgKipkb2NfdHh0X3B0ciwKKwkJaW50ICogZG9jX3R4dF9sZW4sIGNvbnN0IGNoYXIgKiB0eHRfZW5jb2RpbmcsCisJCWludCBmb3JtYXQpIHsKKyAgICB4bWxTYXZlQ3R4dCBjdHh0OworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBkdW1teSA9IDA7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyICAgICAgICAgIG91dF9idWZmID0gTlVMTDsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyICAgY29udl9oZGxyID0gTlVMTDsKKworICAgIGlmIChkb2NfdHh0X2xlbiA9PSBOVUxMKSB7CisgICAgICAgIGRvY190eHRfbGVuID0gJmR1bW15OyAgIC8qICBDb250aW51ZSwgY2FsbGVyIGp1c3Qgd29uJ3QgZ2V0IGxlbmd0aCAqLworICAgIH0KKworICAgIGlmIChkb2NfdHh0X3B0ciA9PSBOVUxMKSB7CisgICAgICAgICpkb2NfdHh0X2xlbiA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAqZG9jX3R4dF9wdHIgPSBOVUxMOworICAgICpkb2NfdHh0X2xlbiA9IDA7CisKKyAgICBpZiAob3V0X2RvYyA9PSBOVUxMKSB7CisgICAgICAgIC8qICBObyBkb2N1bWVudCwgbm8gb3V0cHV0ICAqLworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiAgVmFsaWRhdGUgdGhlIGVuY29kaW5nIHZhbHVlLCBpZiBwcm92aWRlZC4KKyAgICAgKiAgVGhpcyBsb2dpYyBpcyBjb3BpZWQgZnJvbSB4bWxTYXZlRmlsZUVuYy4KKyAgICAgKi8KKworICAgIGlmICh0eHRfZW5jb2RpbmcgPT0gTlVMTCkKKwl0eHRfZW5jb2RpbmcgPSAoY29uc3QgY2hhciAqKSBvdXRfZG9jLT5lbmNvZGluZzsKKyAgICBpZiAodHh0X2VuY29kaW5nICE9IE5VTEwpIHsKKwljb252X2hkbHIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcih0eHRfZW5jb2RpbmcpOworCWlmICggY29udl9oZGxyID09IE5VTEwgKSB7CisJICAgIHhtbFNhdmVFcnIoWE1MX1NBVkVfVU5LTk9XTl9FTkNPRElORywgKHhtbE5vZGVQdHIpIG91dF9kb2MsCisJCSAgICAgICB0eHRfZW5jb2RpbmcpOworCSAgICByZXR1cm47CisJfQorICAgIH0KKworICAgIGlmICgob3V0X2J1ZmYgPSB4bWxBbGxvY091dHB1dEJ1ZmZlcihjb252X2hkbHIpKSA9PSBOVUxMICkgeworICAgICAgICB4bWxTYXZlRXJyTWVtb3J5KCJjcmVhdGluZyBidWZmZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1lbXNldCgmY3R4dCwgMCwgc2l6ZW9mKGN0eHQpKTsKKyAgICBjdHh0LmRvYyA9IG91dF9kb2M7CisgICAgY3R4dC5idWYgPSBvdXRfYnVmZjsKKyAgICBjdHh0LmxldmVsID0gMDsKKyAgICBjdHh0LmZvcm1hdCA9IGZvcm1hdDsKKyAgICBjdHh0LmVuY29kaW5nID0gKGNvbnN0IHhtbENoYXIgKikgdHh0X2VuY29kaW5nOworICAgIHhtbFNhdmVDdHh0SW5pdCgmY3R4dCk7CisgICAgY3R4dC5vcHRpb25zIHw9IFhNTF9TQVZFX0FTX1hNTDsKKyAgICB4bWxEb2NDb250ZW50RHVtcE91dHB1dCgmY3R4dCwgb3V0X2RvYyk7CisgICAgeG1sT3V0cHV0QnVmZmVyRmx1c2gob3V0X2J1ZmYpOworICAgIGlmIChvdXRfYnVmZi0+Y29udiAhPSBOVUxMKSB7CisJKmRvY190eHRfbGVuID0gb3V0X2J1ZmYtPmNvbnYtPnVzZTsKKwkqZG9jX3R4dF9wdHIgPSB4bWxTdHJuZHVwKG91dF9idWZmLT5jb252LT5jb250ZW50LCAqZG9jX3R4dF9sZW4pOworICAgIH0gZWxzZSB7CisJKmRvY190eHRfbGVuID0gb3V0X2J1ZmYtPmJ1ZmZlci0+dXNlOworCSpkb2NfdHh0X3B0ciA9IHhtbFN0cm5kdXAob3V0X2J1ZmYtPmJ1ZmZlci0+Y29udGVudCwgKmRvY190eHRfbGVuKTsKKyAgICB9CisgICAgKHZvaWQpeG1sT3V0cHV0QnVmZmVyQ2xvc2Uob3V0X2J1ZmYpOworCisgICAgaWYgKCgqZG9jX3R4dF9wdHIgPT0gTlVMTCkgJiYgKCpkb2NfdHh0X2xlbiA+IDApKSB7CisgICAgICAgICpkb2NfdHh0X2xlbiA9IDA7CisgICAgICAgIHhtbFNhdmVFcnJNZW1vcnkoImNyZWF0aW5nIG91dHB1dCIpOworICAgIH0KKworICAgIHJldHVybjsKK30KKworLyoqCisgKiB4bWxEb2NEdW1wTWVtb3J5OgorICogQGN1cjogIHRoZSBkb2N1bWVudAorICogQG1lbTogIE9VVDogdGhlIG1lbW9yeSBwb2ludGVyCisgKiBAc2l6ZTogIE9VVDogdGhlIG1lbW9yeSBsZW5ndGgKKyAqCisgKiBEdW1wIGFuIFhNTCBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHJldHVybiB0aGUgI3htbENoYXIgKiBhbmQgaXQncyBzaXplCisgKiBpbiBieXRlcy4gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4KKyAqIFRoZSByZXN1bHRpbmcgYnl0ZSBhcnJheSBpcyB6ZXJvIHRlcm1pbmF0ZWQsIHRob3VnaCB0aGUgbGFzdCAwIGlzIG5vdAorICogaW5jbHVkZWQgaW4gdGhlIHJldHVybmVkIHNpemUuCisgKi8KK3ZvaWQKK3htbERvY0R1bXBNZW1vcnkoeG1sRG9jUHRyIGN1ciwgeG1sQ2hhcioqbWVtLCBpbnQgKnNpemUpIHsKKyAgICB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jKGN1ciwgbWVtLCBzaXplLCBOVUxMLCAwKTsKK30KKworLyoqCisgKiB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5OgorICogQGN1cjogIHRoZSBkb2N1bWVudAorICogQG1lbTogIE9VVDogdGhlIG1lbW9yeSBwb2ludGVyCisgKiBAc2l6ZTogIE9VVDogdGhlIG1lbW9yeSBsZW5ndGgKKyAqIEBmb3JtYXQ6ICBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZAorICoKKyAqCisgKiBEdW1wIGFuIFhNTCBkb2N1bWVudCBpbiBtZW1vcnkgYW5kIHJldHVybiB0aGUgI3htbENoYXIgKiBhbmQgaXQncyBzaXplLgorICogSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4KKyAqIE5vdGUgdGhhdCBAZm9ybWF0ID0gMSBwcm92aWRlIG5vZGUgaW5kZW50aW5nIG9ubHkgaWYgeG1sSW5kZW50VHJlZU91dHB1dCA9IDEKKyAqIG9yIHhtbEtlZXBCbGFua3NEZWZhdWx0KDApIHdhcyBjYWxsZWQKKyAqLwordm9pZAoreG1sRG9jRHVtcEZvcm1hdE1lbW9yeSh4bWxEb2NQdHIgY3VyLCB4bWxDaGFyKiptZW0sIGludCAqc2l6ZSwgaW50IGZvcm1hdCkgeworICAgIHhtbERvY0R1bXBGb3JtYXRNZW1vcnlFbmMoY3VyLCBtZW0sIHNpemUsIE5VTEwsIGZvcm1hdCk7Cit9CisKKy8qKgorICogeG1sRG9jRHVtcE1lbW9yeUVuYzoKKyAqIEBvdXRfZG9jOiAgRG9jdW1lbnQgdG8gZ2VuZXJhdGUgWE1MIHRleHQgZnJvbQorICogQGRvY190eHRfcHRyOiAgTWVtb3J5IHBvaW50ZXIgZm9yIGFsbG9jYXRlZCBYTUwgdGV4dAorICogQGRvY190eHRfbGVuOiAgTGVuZ3RoIG9mIHRoZSBnZW5lcmF0ZWQgWE1MIHRleHQKKyAqIEB0eHRfZW5jb2Rpbmc6ICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBYTUwgdGV4dAorICoKKyAqIER1bXAgdGhlIGN1cnJlbnQgRE9NIHRyZWUgaW50byBtZW1vcnkgdXNpbmcgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBzcGVjaWZpZWQKKyAqIGJ5IHRoZSBjYWxsZXIuICBOb3RlIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB0byBmcmVlIHRoZQorICogYWxsb2NhdGVkIG1lbW9yeSB3aXRoIHhtbEZyZWUoKS4KKyAqLworCit2b2lkCit4bWxEb2NEdW1wTWVtb3J5RW5jKHhtbERvY1B0ciBvdXRfZG9jLCB4bWxDaGFyICoqZG9jX3R4dF9wdHIsCisJICAgICAgICAgICAgaW50ICogZG9jX3R4dF9sZW4sIGNvbnN0IGNoYXIgKiB0eHRfZW5jb2RpbmcpIHsKKyAgICB4bWxEb2NEdW1wRm9ybWF0TWVtb3J5RW5jKG91dF9kb2MsIGRvY190eHRfcHRyLCBkb2NfdHh0X2xlbiwKKwkgICAgICAgICAgICAgICAgICAgICAgdHh0X2VuY29kaW5nLCAwKTsKK30KKworLyoqCisgKiB4bWxEb2NGb3JtYXREdW1wOgorICogQGY6ICB0aGUgRklMRSoKKyAqIEBjdXI6ICB0aGUgZG9jdW1lbnQKKyAqIEBmb3JtYXQ6IHNob3VsZCBmb3JtYXR0aW5nIHNwYWNlcyBiZWVuIGFkZGVkCisgKgorICogRHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYW4gb3BlbiBGSUxFLgorICoKKyAqIHJldHVybnM6IHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIHhtbEluZGVudFRyZWVPdXRwdXQgPSAxCisgKiBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkCisgKi8KK2ludAoreG1sRG9jRm9ybWF0RHVtcChGSUxFICpmLCB4bWxEb2NQdHIgY3VyLCBpbnQgZm9ybWF0KSB7CisgICAgeG1sU2F2ZUN0eHQgY3R4dDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOworICAgIGNvbnN0IGNoYXIgKiBlbmNvZGluZzsKKyAgICB4bWxDaGFyRW5jb2RpbmdIYW5kbGVyUHRyIGhhbmRsZXIgPSBOVUxMOworICAgIGludCByZXQ7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyNpZmRlZiBERUJVR19UUkVFCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sRG9jRHVtcCA6IGRvY3VtZW50ID09IE5VTExcbiIpOworI2VuZGlmCisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgZW5jb2RpbmcgPSAoY29uc3QgY2hhciAqKSBjdXItPmVuY29kaW5nOworCisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKwloYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworCWlmIChoYW5kbGVyID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZSgoY2hhciAqKSBjdXItPmVuY29kaW5nKTsKKwkgICAgY3VyLT5lbmNvZGluZyA9IE5VTEw7CisJICAgIGVuY29kaW5nID0gTlVMTDsKKwl9CisgICAgfQorICAgIGJ1ZiA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGUoZiwgaGFuZGxlcik7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIG1lbXNldCgmY3R4dCwgMCwgc2l6ZW9mKGN0eHQpKTsKKyAgICBjdHh0LmRvYyA9IGN1cjsKKyAgICBjdHh0LmJ1ZiA9IGJ1ZjsKKyAgICBjdHh0LmxldmVsID0gMDsKKyAgICBjdHh0LmZvcm1hdCA9IGZvcm1hdDsKKyAgICBjdHh0LmVuY29kaW5nID0gKGNvbnN0IHhtbENoYXIgKikgZW5jb2Rpbmc7CisgICAgeG1sU2F2ZUN0eHRJbml0KCZjdHh0KTsKKyAgICBjdHh0Lm9wdGlvbnMgfD0gWE1MX1NBVkVfQVNfWE1MOworICAgIHhtbERvY0NvbnRlbnREdW1wT3V0cHV0KCZjdHh0LCBjdXIpOworCisgICAgcmV0ID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxEb2NEdW1wOgorICogQGY6ICB0aGUgRklMRSoKKyAqIEBjdXI6ICB0aGUgZG9jdW1lbnQKKyAqCisgKiBEdW1wIGFuIFhNTCBkb2N1bWVudCB0byBhbiBvcGVuIEZJTEUuCisgKgorICogcmV0dXJuczogdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50Cit4bWxEb2NEdW1wKEZJTEUgKmYsIHhtbERvY1B0ciBjdXIpIHsKKyAgICByZXR1cm4oeG1sRG9jRm9ybWF0RHVtcCAoZiwgY3VyLCAwKSk7Cit9CisKKy8qKgorICogeG1sU2F2ZUZpbGVUbzoKKyAqIEBidWY6ICBhbiBvdXRwdXQgSS9PIGJ1ZmZlcgorICogQGN1cjogIHRoZSBkb2N1bWVudAorICogQGVuY29kaW5nOiAgdGhlIGVuY29kaW5nIGlmIGFueSBhc3N1bWluZyB0aGUgSS9PIGxheWVyIGhhbmRsZXMgdGhlIHRyYW5jb2RpbmcKKyAqCisgKiBEdW1wIGFuIFhNTCBkb2N1bWVudCB0byBhbiBJL08gYnVmZmVyLgorICogV2FybmluZyAhIFRoaXMgY2FsbCB4bWxPdXRwdXRCdWZmZXJDbG9zZSgpIG9uIGJ1ZiB3aGljaCBpcyBub3QgYXZhaWxhYmxlCisgKiBhZnRlciB0aGlzIGNhbGwuCisgKgorICogcmV0dXJuczogdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50Cit4bWxTYXZlRmlsZVRvKHhtbE91dHB1dEJ1ZmZlclB0ciBidWYsIHhtbERvY1B0ciBjdXIsIGNvbnN0IGNoYXIgKmVuY29kaW5nKSB7CisgICAgeG1sU2F2ZUN0eHQgY3R4dDsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKGJ1ZiA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworICAgICAgICB4bWxPdXRwdXRCdWZmZXJDbG9zZShidWYpOworCXJldHVybigtMSk7CisgICAgfQorICAgIG1lbXNldCgmY3R4dCwgMCwgc2l6ZW9mKGN0eHQpKTsKKyAgICBjdHh0LmRvYyA9IGN1cjsKKyAgICBjdHh0LmJ1ZiA9IGJ1ZjsKKyAgICBjdHh0LmxldmVsID0gMDsKKyAgICBjdHh0LmZvcm1hdCA9IDA7CisgICAgY3R4dC5lbmNvZGluZyA9IChjb25zdCB4bWxDaGFyICopIGVuY29kaW5nOworICAgIHhtbFNhdmVDdHh0SW5pdCgmY3R4dCk7CisgICAgY3R4dC5vcHRpb25zIHw9IFhNTF9TQVZFX0FTX1hNTDsKKyAgICB4bWxEb2NDb250ZW50RHVtcE91dHB1dCgmY3R4dCwgY3VyKTsKKyAgICByZXQgPSB4bWxPdXRwdXRCdWZmZXJDbG9zZShidWYpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFNhdmVGb3JtYXRGaWxlVG86CisgKiBAYnVmOiAgYW4gb3V0cHV0IEkvTyBidWZmZXIKKyAqIEBjdXI6ICB0aGUgZG9jdW1lbnQKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBpZiBhbnkgYXNzdW1pbmcgdGhlIEkvTyBsYXllciBoYW5kbGVzIHRoZSB0cmFuY29kaW5nCisgKiBAZm9ybWF0OiBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZAorICoKKyAqIER1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGFuIEkvTyBidWZmZXIuCisgKiBXYXJuaW5nICEgVGhpcyBjYWxsIHhtbE91dHB1dEJ1ZmZlckNsb3NlKCkgb24gYnVmIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUKKyAqIGFmdGVyIHRoaXMgY2FsbC4KKyAqCisgKiByZXR1cm5zOiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLgorICovCitpbnQKK3htbFNhdmVGb3JtYXRGaWxlVG8oeG1sT3V0cHV0QnVmZmVyUHRyIGJ1ZiwgeG1sRG9jUHRyIGN1ciwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JtYXQpCit7CisgICAgeG1sU2F2ZUN0eHQgY3R4dDsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKGJ1ZiA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmICgoY3VyID09IE5VTEwpIHx8CisgICAgICAgICgoY3VyLT50eXBlICE9IFhNTF9ET0NVTUVOVF9OT0RFKSAmJgorCSAoY3VyLT50eXBlICE9IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSkgeworICAgICAgICB4bWxPdXRwdXRCdWZmZXJDbG9zZShidWYpOworCXJldHVybigtMSk7CisgICAgfQorICAgIG1lbXNldCgmY3R4dCwgMCwgc2l6ZW9mKGN0eHQpKTsKKyAgICBjdHh0LmRvYyA9IGN1cjsKKyAgICBjdHh0LmJ1ZiA9IGJ1ZjsKKyAgICBjdHh0LmxldmVsID0gMDsKKyAgICBjdHh0LmZvcm1hdCA9IGZvcm1hdDsKKyAgICBjdHh0LmVuY29kaW5nID0gKGNvbnN0IHhtbENoYXIgKikgZW5jb2Rpbmc7CisgICAgeG1sU2F2ZUN0eHRJbml0KCZjdHh0KTsKKyAgICBjdHh0Lm9wdGlvbnMgfD0gWE1MX1NBVkVfQVNfWE1MOworICAgIHhtbERvY0NvbnRlbnREdW1wT3V0cHV0KCZjdHh0LCBjdXIpOworICAgIHJldCA9IHhtbE91dHB1dEJ1ZmZlckNsb3NlKGJ1Zik7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNhdmVGb3JtYXRGaWxlRW5jOgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lIG9yIFVSTCB0byBvdXRwdXQKKyAqIEBjdXI6ICB0aGUgZG9jdW1lbnQgYmVpbmcgc2F2ZWQKKyAqIEBlbmNvZGluZzogIHRoZSBuYW1lIG9mIHRoZSBlbmNvZGluZyB0byB1c2Ugb3IgTlVMTC4KKyAqIEBmb3JtYXQ6ICBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmUgYWRkZWQuCisgKgorICogRHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlIG9yIGFuIFVSTC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvciAtMSBpbiBjYXNlIG9mIGVycm9yLgorICogTm90ZSB0aGF0IEBmb3JtYXQgPSAxIHByb3ZpZGUgbm9kZSBpbmRlbnRpbmcgb25seSBpZiB4bWxJbmRlbnRUcmVlT3V0cHV0ID0gMQorICogb3IgeG1sS2VlcEJsYW5rc0RlZmF1bHQoMCkgd2FzIGNhbGxlZAorICovCitpbnQKK3htbFNhdmVGb3JtYXRGaWxlRW5jKCBjb25zdCBjaGFyICogZmlsZW5hbWUsIHhtbERvY1B0ciBjdXIsCisJCQljb25zdCBjaGFyICogZW5jb2RpbmcsIGludCBmb3JtYXQgKSB7CisgICAgeG1sU2F2ZUN0eHQgY3R4dDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgYnVmOworICAgIHhtbENoYXJFbmNvZGluZ0hhbmRsZXJQdHIgaGFuZGxlciA9IE5VTEw7CisgICAgaW50IHJldDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKGVuY29kaW5nID09IE5VTEwpCisJZW5jb2RpbmcgPSAoY29uc3QgY2hhciAqKSBjdXItPmVuY29kaW5nOworCisgICAgaWYgKGVuY29kaW5nICE9IE5VTEwpIHsKKworCSAgICBoYW5kbGVyID0geG1sRmluZENoYXJFbmNvZGluZ0hhbmRsZXIoZW5jb2RpbmcpOworCSAgICBpZiAoaGFuZGxlciA9PSBOVUxMKQorCQlyZXR1cm4oLTEpOworICAgIH0KKworI2lmZGVmIEhBVkVfWkxJQl9ICisgICAgaWYgKGN1ci0+Y29tcHJlc3Npb24gPCAwKSBjdXItPmNvbXByZXNzaW9uID0geG1sR2V0Q29tcHJlc3NNb2RlKCk7CisjZW5kaWYKKyAgICAvKiAKKyAgICAgKiBzYXZlIHRoZSBjb250ZW50IHRvIGEgdGVtcCBidWZmZXIuCisgICAgICovCisgICAgYnVmID0geG1sT3V0cHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoZmlsZW5hbWUsIGhhbmRsZXIsIGN1ci0+Y29tcHJlc3Npb24pOworICAgIGlmIChidWYgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBtZW1zZXQoJmN0eHQsIDAsIHNpemVvZihjdHh0KSk7CisgICAgY3R4dC5kb2MgPSBjdXI7CisgICAgY3R4dC5idWYgPSBidWY7CisgICAgY3R4dC5sZXZlbCA9IDA7CisgICAgY3R4dC5mb3JtYXQgPSBmb3JtYXQ7CisgICAgY3R4dC5lbmNvZGluZyA9IChjb25zdCB4bWxDaGFyICopIGVuY29kaW5nOworICAgIHhtbFNhdmVDdHh0SW5pdCgmY3R4dCk7CisgICAgY3R4dC5vcHRpb25zIHw9IFhNTF9TQVZFX0FTX1hNTDsKKworICAgIHhtbERvY0NvbnRlbnREdW1wT3V0cHV0KCZjdHh0LCBjdXIpOworCisgICAgcmV0ID0geG1sT3V0cHV0QnVmZmVyQ2xvc2UoYnVmKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworCisvKioKKyAqIHhtbFNhdmVGaWxlRW5jOgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lIChvciBVUkwpCisgKiBAY3VyOiAgdGhlIGRvY3VtZW50CisgKiBAZW5jb2Rpbmc6ICB0aGUgbmFtZSBvZiBhbiBlbmNvZGluZyAob3IgTlVMTCkKKyAqCisgKiBEdW1wIGFuIFhNTCBkb2N1bWVudCwgY29udmVydGluZyBpdCB0byB0aGUgZ2l2ZW4gZW5jb2RpbmcKKyAqCisgKiByZXR1cm5zOiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLgorICovCitpbnQKK3htbFNhdmVGaWxlRW5jKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCB4bWxEb2NQdHIgY3VyLCBjb25zdCBjaGFyICplbmNvZGluZykgeworICAgIHJldHVybiAoIHhtbFNhdmVGb3JtYXRGaWxlRW5jKCBmaWxlbmFtZSwgY3VyLCBlbmNvZGluZywgMCApICk7Cit9CisKKy8qKgorICogeG1sU2F2ZUZvcm1hdEZpbGU6CisgKiBAZmlsZW5hbWU6ICB0aGUgZmlsZW5hbWUgKG9yIFVSTCkKKyAqIEBjdXI6ICB0aGUgZG9jdW1lbnQKKyAqIEBmb3JtYXQ6ICBzaG91bGQgZm9ybWF0dGluZyBzcGFjZXMgYmVlbiBhZGRlZAorICoKKyAqIER1bXAgYW4gWE1MIGRvY3VtZW50IHRvIGEgZmlsZS4gV2lsbCB1c2UgY29tcHJlc3Npb24gaWYKKyAqIGNvbXBpbGVkIGluIGFuZCBlbmFibGVkLiBJZiBAZmlsZW5hbWUgaXMgIi0iIHRoZSBzdGRvdXQgZmlsZSBpcworICogdXNlZC4gSWYgQGZvcm1hdCBpcyBzZXQgdGhlbiB0aGUgZG9jdW1lbnQgd2lsbCBiZSBpbmRlbnRlZCBvbiBvdXRwdXQuCisgKiBOb3RlIHRoYXQgQGZvcm1hdCA9IDEgcHJvdmlkZSBub2RlIGluZGVudGluZyBvbmx5IGlmIHhtbEluZGVudFRyZWVPdXRwdXQgPSAxCisgKiBvciB4bWxLZWVwQmxhbmtzRGVmYXVsdCgwKSB3YXMgY2FsbGVkCisgKgorICogcmV0dXJuczogdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50Cit4bWxTYXZlRm9ybWF0RmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSwgeG1sRG9jUHRyIGN1ciwgaW50IGZvcm1hdCkgeworICAgIHJldHVybiAoIHhtbFNhdmVGb3JtYXRGaWxlRW5jKCBmaWxlbmFtZSwgY3VyLCBOVUxMLCBmb3JtYXQgKSApOworfQorCisvKioKKyAqIHhtbFNhdmVGaWxlOgorICogQGZpbGVuYW1lOiAgdGhlIGZpbGVuYW1lIChvciBVUkwpCisgKiBAY3VyOiAgdGhlIGRvY3VtZW50CisgKgorICogRHVtcCBhbiBYTUwgZG9jdW1lbnQgdG8gYSBmaWxlLiBXaWxsIHVzZSBjb21wcmVzc2lvbiBpZgorICogY29tcGlsZWQgaW4gYW5kIGVuYWJsZWQuIElmIEBmaWxlbmFtZSBpcyAiLSIgdGhlIHN0ZG91dCBmaWxlIGlzCisgKiB1c2VkLgorICogcmV0dXJuczogdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9yIC0xIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqLworaW50Cit4bWxTYXZlRmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSwgeG1sRG9jUHRyIGN1cikgeworICAgIHJldHVybih4bWxTYXZlRm9ybWF0RmlsZUVuYyhmaWxlbmFtZSwgY3VyLCBOVUxMLCAwKSk7Cit9CisKKyNlbmRpZiAvKiBMSUJYTUxfT1VUUFVUX0VOQUJMRUQgKi8KKworI2RlZmluZSBib3R0b21feG1sc2F2ZQorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcveG1sc2NoZW1hcy5jIGIvbGlieG1sMi0yLjcuNy94bWxzY2hlbWFzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM4NmM3NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveG1sc2NoZW1hcy5jCkBAIC0wLDAgKzEsMjg3NjYgQEAKKy8qCisgKiBzY2hlbWFzLmMgOiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgWE1MIFNjaGVtYSBoYW5kbGluZyBhbmQKKyAqICAgICAgICAgICAgIHNjaGVtYSB2YWxpZGl0eSBjaGVja2luZworICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBEYW5pZWwgVmVpbGxhcmQgPHZlaWxsYXJkQHJlZGhhdC5jb20+CisgKi8KKworLyoKKyAqIFRPRE86CisgKiAgIC0gd2hlbiB0eXBlcyBhcmUgcmVkZWZpbmVkIGluIGluY2x1ZGVzLCBjaGVjayB0aGF0IGFsbAorICogICAgIHR5cGVzIGluIHRoZSByZWRlZiBsaXN0IGFyZSBlcXVhbAorICogICAgIC0+IG5lZWQgYSB0eXBlIGVxdWFsaXR5IG9wZXJhdGlvbi4KKyAqICAgLSBpZiB3ZSBkb24ndCBpbnRlbmQgdG8gdXNlIHRoZSBzY2hlbWEgZm9yIHNjaGVtYXMsIHdlCisgKiAgICAgbmVlZCB0byB2YWxpZGF0ZSBhbGwgc2NoZW1hIGF0dHJpYnV0ZXMgKHJlZiwgdHlwZSwgbmFtZSkKKyAqICAgICBhZ2FpbnN0IHRoZWlyIHR5cGVzLgorICogICAtIEVsaW1pbmF0ZSBpdGVtIGNyZWF0aW9uIGZvcjogPz8KKyAqCisgKiBVUkdFTlQgVE9ETzoKKyAqICAgLSBGb3IgeHNpLWRyaXZlbiBzY2hlbWEgYWNxdWlzaXRpb24sIGF1Z21lbnQgdGhlIElEQ3MgYWZ0ZXIgZXZlcnkKKyAqICAgICBhY3F1aXNpdGlvbiBlcGlzb2RlICh4bWxTY2hlbWFBdWdtZW50SURDKS4KKyAqCisgKiBOT1RFUzoKKyAqICAgLSBFbGltYXRlZCBpdGVtIGNyZWF0aW9uIGZvcjogPHJlc3RyaWN0aW9uPiwgPGV4dGVuc2lvbj4sCisgKiAgICAgPHNpbXBsZUNvbnRlbnQ+LCA8Y29tcGxleENvbnRlbnQ+LCA8bGlzdD4sIDx1bmlvbj4KKyAqCisgKiBQUk9CTEVNUzoKKyAqICAgLSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3cteG1sLXNjaGVtYS1jb21tZW50cy8yMDA1SnVsU2VwLzAzMzcuaHRtbAorICogICAgIElEQyBYUGF0aCBleHByZXNzaW9uIGFuZCBjaGFtZWxlb24gaW5jbHVkZXM6IHRoZSB0YXJnZXROYW1lc3BhY2UgaXMgY2hhbmdlZCwgc28KKyAqICAgICBYUGF0aCB3aWxsIGhhdmUgdHJvdWJsZSB0byByZXNvbHZlIHRvIHRoaXMgbmFtZXNwYWNlLCBzaW5jZSBub3Qga25vd24uCisgKgorICoKKyAqIENPTlNUUkFJTlRTOgorICoKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqICAgQWxsIEdyb3VwIExpbWl0ZWQgKGNvcy1hbGwtbGltaXRlZCkKKyAqICAgU3RhdHVzOiBjb21wbGV0ZQorICogICAoMS4yKQorICogICAgIEluIHhtbFNjaGVtYUdyb3VwRGVmUmVmZXJlbmNlVGVybUZpeHVwKCkgYW5kCisgKiAgICgyKQorICogICAgIEluIHhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cCgpCisgKiAgICAgVE9ETzogQWN0dWFsbHkgdGhpcyBzaG91bGQgZ28gdG8gY29tcG9uZW50LWxldmVsIGNoZWNrcywKKyAqICAgICBidXQgaXMgZG9uZSBoZXJlIGR1ZSB0byBwZXJmb3JtYW5jZS4gTW92ZSBpdCB0byBhbiBvdGhlciBsYXllcgorICogICAgIGlzIHNjaGVtYSBjb25zdHJ1Y3Rpb24gdmlhIGFuIEFQSSBpcyBpbXBsZW1lbnRlZC4KKyAqLworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworI2lmZGVmIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC9oYXNoLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzLmg+CisjaW5jbHVkZSA8bGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbGF1dG9tYXRhLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbHJlZ2V4cC5oPgorI2luY2x1ZGUgPGxpYnhtbC9kaWN0Lmg+CisjaW5jbHVkZSA8bGlieG1sL2VuY29kaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbElPLmg+CisjaWZkZWYgTElCWE1MX1BBVFRFUk5fRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9wYXR0ZXJuLmg+CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwveG1scmVhZGVyLmg+CisjZW5kaWYKKworLyogI2RlZmluZSBERUJVRyAxICovCisKKy8qICNkZWZpbmUgREVCVUdfQ09OVEVOVCAxICovCisKKy8qICNkZWZpbmUgREVCVUdfVFlQRSAxICovCisKKy8qICNkZWZpbmUgREVCVUdfQ09OVEVOVF9SRUdFWFAgMSAqLworCisvKiAjZGVmaW5lIERFQlVHX0FVVE9NQVRBIDEgKi8KKworLyogI2RlZmluZSBERUJVR19JREMgKi8KKworLyogI2RlZmluZSBERUJVR19JRENfTk9ERV9UQUJMRSAqLworCisvKiAjZGVmaW5lIFdYU19FTEVNX0RFQ0xfQ09OU19FTkFCTEVEICovCisKKyNpZmRlZiBERUJVR19JREMKKyAjaWZuZGVmIERFQlVHX0lEQ19OT0RFX1RBQkxFCisgICNkZWZpbmUgREVCVUdfSURDX05PREVfVEFCTEUKKyAjZW5kaWYKKyNlbmRpZgorCisvKiAjZGVmaW5lIEVOQUJMRV9QQVJUSUNMRV9SRVNUUklDVElPTiAxICovCisKKyNkZWZpbmUgRU5BQkxFX1JFREVGSU5FCisKKy8qICNkZWZpbmUgRU5BQkxFX05BTUVEX0xPQ0FMUyAqLworCisvKiAjZGVmaW5lIEVOQUJMRV9JRENfTk9ERV9UQUJMRVNfVEVTVCAqLworCisjZGVmaW5lIERVTVBfQ09OVEVOVF9NT0RFTAorCisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisvKiAjZGVmaW5lIFhNTF9TQ0hFTUFfUkVBREVSX0VOQUJMRUQgKi8KKyNlbmRpZgorCisjZGVmaW5lIFVOQk9VTkRFRCAoMSA8PCAzMCkKKyNkZWZpbmUgVE9ETyAJCQkJCQkJCVwKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwJCQkJXAorCSAgICAiVW5pbXBsZW1lbnRlZCBibG9jayBhdCAlczolZFxuIiwJCQkJXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKworI2RlZmluZSBYTUxfU0NIRU1BU19OT19OQU1FU1BBQ0UgKGNvbnN0IHhtbENoYXIgKikgIiMjIgorCisvKgorICogVGhlIFhNTCBTY2hlbWFzIG5hbWVzcGFjZXMKKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKnhtbFNjaGVtYU5zID0gKGNvbnN0IHhtbENoYXIgKikKKyAgICAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiOworCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqeG1sU2NoZW1hSW5zdGFuY2VOcyA9IChjb25zdCB4bWxDaGFyICopCisgICAgImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIjsKKworc3RhdGljIGNvbnN0IHhtbENoYXIgKnhtbE5hbWVzcGFjZU5zID0gKGNvbnN0IHhtbENoYXIgKikKKyAgICAiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iOworCisvKgorKiBDb21lIGNhc3RpbmcgbWFjcm9zLgorKi8KKyNkZWZpbmUgQUNUWFRfQ0FTVCAoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyKQorI2RlZmluZSBQQ1RYVF9DQVNUICh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyKQorI2RlZmluZSBWQ1RYVF9DQVNUICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpCisjZGVmaW5lIFdYU19CQVNJQ19DQVNUICh4bWxTY2hlbWFCYXNpY0l0ZW1QdHIpCisjZGVmaW5lIFdYU19UUkVFX0NBU1QgKHhtbFNjaGVtYVRyZWVJdGVtUHRyKQorI2RlZmluZSBXWFNfUFRDX0NBU1QgKHhtbFNjaGVtYVBhcnRpY2xlUHRyKQorI2RlZmluZSBXWFNfVFlQRV9DQVNUICh4bWxTY2hlbWFUeXBlUHRyKQorI2RlZmluZSBXWFNfRUxFTV9DQVNUICh4bWxTY2hlbWFFbGVtZW50UHRyKQorI2RlZmluZSBXWFNfQVRUUl9HUk9VUF9DQVNUICh4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0cikKKyNkZWZpbmUgV1hTX0FUVFJfQ0FTVCAoeG1sU2NoZW1hQXR0cmlidXRlUHRyKQorI2RlZmluZSBXWFNfQVRUUl9VU0VfQ0FTVCAoeG1sU2NoZW1hQXR0cmlidXRlVXNlUHRyKQorI2RlZmluZSBXWFNfQVRUUl9QUk9ISUJfQ0FTVCAoeG1sU2NoZW1hQXR0cmlidXRlVXNlUHJvaGliUHRyKQorI2RlZmluZSBXWFNfTU9ERUxfR1JPVVBERUZfQ0FTVCAoeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cikKKyNkZWZpbmUgV1hTX01PREVMX0dST1VQX0NBU1QgKHhtbFNjaGVtYU1vZGVsR3JvdXBQdHIpCisjZGVmaW5lIFdYU19JRENfQ0FTVCAoeG1sU2NoZW1hSURDUHRyKQorI2RlZmluZSBXWFNfUU5BTUVfQ0FTVCAoeG1sU2NoZW1hUU5hbWVSZWZQdHIpCisjZGVmaW5lIFdYU19MSVNUX0NBU1QgKHhtbFNjaGVtYUl0ZW1MaXN0UHRyKQorCisvKgorKiBNYWNyb3MgdG8gcXVlcnkgY29tbW9uIHByb3BlcnRpZXMgb2YgY29tcG9uZW50cy4KKyovCisjZGVmaW5lIFdYU19JVEVNX05PREUoaSkgeG1sU2NoZW1hR2V0Q29tcG9uZW50Tm9kZShXWFNfQkFTSUNfQ0FTVCAoaSkpCisKKyNkZWZpbmUgV1hTX0lURU1fVFlQRV9OQU1FKGkpIHhtbFNjaGVtYUdldENvbXBvbmVudFR5cGVTdHIoV1hTX0JBU0lDX0NBU1QgKGkpKQorLyoKKyogTWFjcm9zIGZvciBlbGVtZW50IGRlY2xhcmF0aW9ucy4KKyovCisjZGVmaW5lIFdYU19FTEVNX1RZUEVERUYoZSkgKGUpLT5zdWJ0eXBlcworCisjZGVmaW5lIFdYU19TVUJTVF9IRUFEKGl0ZW0pIChpdGVtKS0+cmVmRGVjbAorLyoKKyogTWFjcm9zIGZvciBhdHRyaWJ1dGUgZGVjbGFyYXRpb25zLgorKi8KKyNkZWZpbmUgV1hTX0FUVFJfVFlQRURFRihhKSAoYSktPnN1YnR5cGVzCisvKgorKiBNYWNyb3MgZm9yIGF0dHJpYnV0ZSB1c2VzLgorKi8KKyNkZWZpbmUgV1hTX0FUVFJVU0VfREVDTChhdSkgV1hTX0FUVFJfQ0FTVCAoV1hTX0FUVFJfVVNFX0NBU1QgKGF1KSktPmF0dHJEZWNsCisKKyNkZWZpbmUgV1hTX0FUVFJVU0VfVFlQRURFRihhdSkgV1hTX0FUVFJfVFlQRURFRihXWFNfQVRUUlVTRV9ERUNMKCBXWFNfQVRUUl9VU0VfQ0FTVCBhdSkpCisKKyNkZWZpbmUgV1hTX0FUVFJVU0VfREVDTF9OQU1FKGF1KSAoV1hTX0FUVFJVU0VfREVDTChhdSkpLT5uYW1lCisKKyNkZWZpbmUgV1hTX0FUVFJVU0VfREVDTF9UTlMoYXUpIChXWFNfQVRUUlVTRV9ERUNMKGF1KSktPnRhcmdldE5hbWVzcGFjZQorLyoKKyogTWFjcm9zIGZvciBhdHRyaWJ1dGUgZ3JvdXBzLgorKi8KKyNkZWZpbmUgV1hTX0FUVFJfR1JPVVBfSEFTX1JFRlMoYWcpICgoV1hTX0FUVFJfR1JPVVBfQ0FTVCAoYWcpKS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMpCisjZGVmaW5lIFdYU19BVFRSX0dST1VQX0VYUEFOREVEKGFnKSAoKFdYU19BVFRSX0dST1VQX0NBU1QgKGFnKSktPmZsYWdzICYgWE1MX1NDSEVNQVNfQVRUUkdST1VQX1dJTERDQVJEX0JVSUxERUQpCisvKgorKiBNYWNyb3MgZm9yIHBhcnRpY2xlcy4KKyovCisjZGVmaW5lIFdYU19QQVJUSUNMRShwKSBXWFNfUFRDX0NBU1QgKHApCisKKyNkZWZpbmUgV1hTX1BBUlRJQ0xFX1RFUk0ocCkgKFdYU19QQVJUSUNMRShwKSktPmNoaWxkcmVuCisKKyNkZWZpbmUgV1hTX1BBUlRJQ0xFX1RFUk1fQVNfRUxFTShwKSAoV1hTX0VMRU1fQ0FTVCBXWFNfUEFSVElDTEVfVEVSTShwKSkKKworI2RlZmluZSBXWFNfUEFSVElDTEVfTU9ERUwocCkgV1hTX01PREVMX0dST1VQX0NBU1QgV1hTX1BBUlRJQ0xFKHApLT5jaGlsZHJlbgorLyoKKyogTWFjcm9zIGZvciBtb2RlbCBncm91cHMgZGVmaW5pdGlvbnMuCisqLworI2RlZmluZSBXWFNfTU9ERUxHUk9VUERFRl9NT0RFTChtZ2QpIChXWFNfTU9ERUxfR1JPVVBfQ0FTVCAobWdkKSktPmNoaWxkcmVuCisvKgorKiBNYWNyb3MgZm9yIG1vZGVsIGdyb3Vwcy4KKyovCisjZGVmaW5lIFdYU19JU19NT0RFTF9HUk9VUChpKSBcCisgICAgKCgoaSktPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFKSB8fCBcCisgICAgICgoaSktPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0NIT0lDRSkgfHwgXAorICAgICAoKGkpLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BTEwpKQorCisjZGVmaW5lIFdYU19NT0RFTEdST1VQX1BBUlRJQ0xFKG1nKSBXWFNfUFRDX0NBU1QgKG1nKS0+Y2hpbGRyZW4KKy8qCisqIE1hY3JvcyBmb3Igc2NoZW1hIGJ1Y2tldHMuCisqLworI2RlZmluZSBXWFNfSVNfQlVDS0VUX0lOQ1JFREVGKHQpICgoKHQpID09IFhNTF9TQ0hFTUFfU0NIRU1BX0lOQ0xVREUpIHx8IFwKKyAgICAoKHQpID09IFhNTF9TQ0hFTUFfU0NIRU1BX1JFREVGSU5FKSkKKworI2RlZmluZSBXWFNfSVNfQlVDS0VUX0lNUE1BSU4odCkgKCgodCkgPT0gWE1MX1NDSEVNQV9TQ0hFTUFfTUFJTikgfHwgXAorICAgICgodCkgPT0gWE1MX1NDSEVNQV9TQ0hFTUFfSU1QT1JUKSkKKworI2RlZmluZSBXWFNfSU1QQlVDS0VUKGIpICgoeG1sU2NoZW1hSW1wb3J0UHRyKSAoYikpCisKKyNkZWZpbmUgV1hTX0lOQ0JVQ0tFVChiKSAoKHhtbFNjaGVtYUluY2x1ZGVQdHIpIChiKSkKKy8qCisqIE1hY3JvcyBmb3IgY29tcGxleC9zaW1wbGUgdHlwZXMuCisqLworI2RlZmluZSBXWFNfSVNfQU5ZVFlQRShpKSBcCisgICAgICgoIChpKS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQkFTSUMpICYmIFwKKyAgICAgICggKFdYU19UWVBFX0NBU1QgKGkpKS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZVFlQRSkpCisKKyNkZWZpbmUgV1hTX0lTX0NPTVBMRVgoaSkgXAorICAgICgoKGkpLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYKSB8fCBcCisgICAgICgoaSktPmJ1aWx0SW5UeXBlID09IFhNTF9TQ0hFTUFTX0FOWVRZUEUpKQorCisjZGVmaW5lIFdYU19JU19TSU1QTEUoaXRlbSkgXAorICAgICgoaXRlbS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFKSB8fCBcCisgICAgICgoaXRlbS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQkFTSUMpICYmIFwKKyAgICAgIChpdGVtLT5idWlsdEluVHlwZSAhPSBYTUxfU0NIRU1BU19BTllUWVBFKSkpCisKKyNkZWZpbmUgV1hTX0lTX0FOWV9TSU1QTEVfVFlQRShpKSBcCisgICAgKCgoaSktPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSAmJiBcCisgICAgICAoKGkpLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFKSkKKworI2RlZmluZSBXWFNfSVNfUkVTVFJJQ1RJT04odCkgXAorICAgICgodCktPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9SRVNUUklDVElPTikKKworI2RlZmluZSBXWFNfSVNfRVhURU5TSU9OKHQpIFwKKyAgICAoKHQpLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfRVhURU5TSU9OKQorCisjZGVmaW5lIFdYU19JU19UWVBFX05PVF9GSVhFRChpKSBcCisgICAgKCgoaSktPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSAmJiBcCisgICAgICgoKGkpLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfUkVTT0xWRUQpID09IDApKQorCisjZGVmaW5lIFdYU19JU19UWVBFX05PVF9GSVhFRF8xKGl0ZW0pIFwKKyAgICAoKChpdGVtKS0+dHlwZSAhPSBYTUxfU0NIRU1BX1RZUEVfQkFTSUMpICYmIFwKKyAgICAgKCgoaXRlbSktPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xKSA9PSAwKSkKKworI2RlZmluZSBXWFNfVFlQRV9JU19HTE9CQUwodCkgKCh0KS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX0dMT0JBTCkKKworI2RlZmluZSBXWFNfVFlQRV9JU19MT0NBTCh0KSAoKCh0KS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX0dMT0JBTCkgPT0gMCkKKy8qCisqIE1hY3JvcyBmb3IgZXhjbHVzaXZlbHkgZm9yIGNvbXBsZXggdHlwZXMuCisqLworI2RlZmluZSBXWFNfSEFTX0NPTVBMRVhfQ09OVEVOVChpdGVtKSBcCisgICAgKChpdGVtLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQpIHx8IFwKKyAgICAgKGl0ZW0tPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9FTVBUWSkgfHwgXAorICAgICAoaXRlbS0+Y29udGVudFR5cGUgPT0gWE1MX1NDSEVNQV9DT05URU5UX0VMRU1FTlRTKSkKKworI2RlZmluZSBXWFNfSEFTX1NJTVBMRV9DT05URU5UKGl0ZW0pIFwKKyAgICAoKGl0ZW0tPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEUpIHx8IFwKKyAgICAgKGl0ZW0tPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQykpCisKKyNkZWZpbmUgV1hTX0hBU19NSVhFRF9DT05URU5UKGl0ZW0pIFwKKyAgICAoaXRlbS0+Y29udGVudFR5cGUgPT0gWE1MX1NDSEVNQV9DT05URU5UX01JWEVEKQorCisjZGVmaW5lIFdYU19FTVBUSUFCTEUodCkgXAorICAgICh4bWxTY2hlbWFJc1BhcnRpY2xlRW1wdGlhYmxlKFdYU19QVENfQ0FTVCAodCktPnN1YnR5cGVzKSkKKworI2RlZmluZSBXWFNfVFlQRV9DT05URU5UVFlQRSh0KSAodCktPnN1YnR5cGVzCisKKyNkZWZpbmUgV1hTX1RZUEVfUEFSVElDTEUodCkgV1hTX1BUQ19DQVNUICh0KS0+c3VidHlwZXMKKworI2RlZmluZSBXWFNfVFlQRV9QQVJUSUNMRV9URVJNKHQpIFdYU19QQVJUSUNMRV9URVJNKFdYU19UWVBFX1BBUlRJQ0xFKHQpKQorLyoKKyogTWFjcm9zIGZvciBleGNsdXNpdmVseSBmb3Igc2ltcGxlIHR5cGVzLgorKi8KKyNkZWZpbmUgV1hTX0xJU1RfSVRFTVRZUEUodCkgKHQpLT5zdWJ0eXBlcworCisjZGVmaW5lIFdYU19JU19BVE9NSUModCkgKHQtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQykKKworI2RlZmluZSBXWFNfSVNfTElTVCh0KSAodC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfTElTVCkKKworI2RlZmluZSBXWFNfSVNfVU5JT04odCkgKHQtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OKQorLyoKKyogTWlzYyBwYXJzZXIgY29udGV4dCBtYWNyb3MuCisqLworI2RlZmluZSBXWFNfQ09OU1RSVUNUT1IoY3R4KSAoY3R4KS0+Y29uc3RydWN0b3IKKworI2RlZmluZSBXWFNfSEFTX0JVQ0tFVFMoY3R4KSBcCisoIChXWFNfQ09OU1RSVUNUT1IoKGN0eCkpLT5idWNrZXRzICE9IE5VTEwpICYmIFwKKyhXWFNfQ09OU1RSVUNUT1IoKGN0eCkpLT5idWNrZXRzLT5uYkl0ZW1zID4gMCkgKQorCisjZGVmaW5lIFdYU19TVUJTVF9HUk9VUFMoY3R4KSBXWFNfQ09OU1RSVUNUT1IoKGN0eCkpLT5zdWJzdEdyb3VwcworCisjZGVmaW5lIFdYU19CVUNLRVQoY3R4KSBXWFNfQ09OU1RSVUNUT1IoKGN0eCkpLT5idWNrZXQKKworI2RlZmluZSBXWFNfU0NIRU1BKGN0eCkgKGN0eCktPnNjaGVtYQorCisjZGVmaW5lIFdYU19BRERfTE9DQUwoY3R4LCBpdGVtKSBcCisgICAgeG1sU2NoZW1hQWRkSXRlbVNpemUoJihXWFNfQlVDS0VUKGN0eCktPmxvY2FscyksIDEwLCBpdGVtKQorCisjZGVmaW5lIFdYU19BRERfR0xPQkFMKGN0eCwgaXRlbSkgXAorICAgIHhtbFNjaGVtYUFkZEl0ZW1TaXplKCYoV1hTX0JVQ0tFVChjdHgpLT5nbG9iYWxzKSwgNSwgaXRlbSkKKworI2RlZmluZSBXWFNfQUREX1BFTkRJTkcoY3R4LCBpdGVtKSBcCisgICAgeG1sU2NoZW1hQWRkSXRlbVNpemUoJigoY3R4KS0+Y29uc3RydWN0b3ItPnBlbmRpbmcpLCAxMCwgaXRlbSkKKy8qCisqIHhtbFNjaGVtYUl0ZW1MaXN0IG1hY3Jvcy4KKyovCisjZGVmaW5lIFdYU19JTElTVF9JU19FTVBUWShsKSAoKGwgPT0gTlVMTCkgfHwgKChsKS0+bmJJdGVtcyA9PSAwKSkKKy8qCisqIE1pc2MgbWFjcm9zLgorKi8KKyNkZWZpbmUgSVNfU0NIRU1BKG5vZGUsIHR5cGUpIFwKKyAgICgobm9kZSAhPSBOVUxMKSAmJiAobm9kZS0+bnMgIT0gTlVMTCkgJiYgXAorICAgICh4bWxTdHJFcXVhbChub2RlLT5uYW1lLCAoY29uc3QgeG1sQ2hhciAqKSB0eXBlKSkgJiYgXAorICAgICh4bWxTdHJFcXVhbChub2RlLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSkKKworI2RlZmluZSBGUkVFX0FORF9OVUxMKHN0cikgaWYgKChzdHIpICE9IE5VTEwpIHsgeG1sRnJlZSgoeG1sQ2hhciAqKSAoc3RyKSk7IHN0ciA9IE5VTEw7IH0KKworLyoKKyogU2luY2Ugd2UgcHV0IHRoZSBkZWZhdWx0L2ZpeGVkIHZhbHVlcyBpbnRvIHRoZSBkaWN0LCB3ZSBjYW4KKyogdXNlIHBvaW50ZXIgY29tcGFyaXNvbiBmb3IgdGhvc2UgdmFsdWVzLgorKiBSRU1PVkVEOiAoeG1sU3RyRXF1YWwoKHYxKSwgKHYyKSkpCisqLworI2RlZmluZSBXWFNfQVJFX0RFRkFVTFRfU1RSX0VRVUFMKHYxLCB2MikgKCh2MSkgPT0gKHYyKSkKKworI2RlZmluZSBJTk9ERV9OSUxMRUQoaXRlbSkgKGl0ZW0tPmZsYWdzICYgWE1MX1NDSEVNQV9FTEVNX0lORk9fTklMTEVEKQorCisjZGVmaW5lIENBTl9QQVJTRV9TQ0hFTUEoYikgKCgoYiktPmRvYyAhPSBOVUxMKSAmJiAoKGIpLT5wYXJzZWQgPT0gMCkpCisKKyNkZWZpbmUgSEZBSUxVUkUgaWYgKHJlcyA9PSAtMSkgZ290byBleGl0X2ZhaWx1cmU7CisKKyNkZWZpbmUgSEVSUk9SIGlmIChyZXMgIT0gMCkgZ290byBleGl0X2Vycm9yOworCisjZGVmaW5lIEhTVE9QKGN0eCkgaWYgKChjdHgpLT5zdG9wKSBnb3RvIGV4aXQ7CisvKgorKiBTb21lIGZsYWdzIHVzZWQgZm9yIHZhcmlvdXMgc2NoZW1hIGNvbnN0cmFpbnRzLgorKi8KKyNkZWZpbmUgU1VCU0VUX1JFU1RSSUNUSU9OICAxPDwwCisjZGVmaW5lIFNVQlNFVF9FWFRFTlNJT04gICAgMTw8MQorI2RlZmluZSBTVUJTRVRfU1VCU1RJVFVUSU9OIDE8PDIKKyNkZWZpbmUgU1VCU0VUX0xJU1QgICAgICAgICAxPDwzCisjZGVmaW5lIFNVQlNFVF9VTklPTiAgICAgICAgMTw8NAorCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hTm9kZUluZm8geG1sU2NoZW1hTm9kZUluZm87Cit0eXBlZGVmIHhtbFNjaGVtYU5vZGVJbmZvICp4bWxTY2hlbWFOb2RlSW5mb1B0cjsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUl0ZW1MaXN0IHhtbFNjaGVtYUl0ZW1MaXN0OwordHlwZWRlZiB4bWxTY2hlbWFJdGVtTGlzdCAqeG1sU2NoZW1hSXRlbUxpc3RQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUl0ZW1MaXN0IHsKKyAgICB2b2lkICoqaXRlbXM7ICAvKiB1c2VkIGZvciBkeW5hbWljIGFkZGl0aW9uIG9mIHNjaGVtYXRhICovCisgICAgaW50IG5iSXRlbXM7IC8qIHVzZWQgZm9yIGR5bmFtaWMgYWRkaXRpb24gb2Ygc2NoZW1hdGEgKi8KKyAgICBpbnQgc2l6ZUl0ZW1zOyAvKiB1c2VkIGZvciBkeW5hbWljIGFkZGl0aW9uIG9mIHNjaGVtYXRhICovCit9OworCisjZGVmaW5lIFhNTF9TQ0hFTUFfQ1RYVF9QQVJTRVIgMQorI2RlZmluZSBYTUxfU0NIRU1BX0NUWFRfVkFMSURBVE9SIDIKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUFic3RyYWN0Q3R4dCB4bWxTY2hlbWFBYnN0cmFjdEN0eHQ7Cit0eXBlZGVmIHhtbFNjaGVtYUFic3RyYWN0Q3R4dCAqeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyOworc3RydWN0IF94bWxTY2hlbWFBYnN0cmFjdEN0eHQgeworICAgIGludCB0eXBlOyAvKiBFLmcuIFhNTF9TQ0hFTUFfQ1RYVF9WQUxJREFUT1IgKi8KK307CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFCdWNrZXQgeG1sU2NoZW1hQnVja2V0OwordHlwZWRlZiB4bWxTY2hlbWFCdWNrZXQgKnhtbFNjaGVtYUJ1Y2tldFB0cjsKKworI2RlZmluZSBYTUxfU0NIRU1BX1NDSEVNQV9NQUlOIDAKKyNkZWZpbmUgWE1MX1NDSEVNQV9TQ0hFTUFfSU1QT1JUIDEKKyNkZWZpbmUgWE1MX1NDSEVNQV9TQ0hFTUFfSU5DTFVERSAyCisjZGVmaW5lIFhNTF9TQ0hFTUFfU0NIRU1BX1JFREVGSU5FIDMKKworLyoqCisgKiB4bWxTY2hlbWFTY2hlbWFSZWxhdGlvbjoKKyAqCisgKiBVc2VkIHRvIGNyZWF0ZSBhIGdyYXBoIG9mIHNjaGVtYSByZWxhdGlvbnNoaXBzLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hU2NoZW1hUmVsYXRpb24geG1sU2NoZW1hU2NoZW1hUmVsYXRpb247Cit0eXBlZGVmIHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uICp4bWxTY2hlbWFTY2hlbWFSZWxhdGlvblB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hU2NoZW1hUmVsYXRpb24geworICAgIHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIG5leHQ7CisgICAgaW50IHR5cGU7IC8qIEUuZy4gWE1MX1NDSEVNQV9TQ0hFTUFfSU1QT1JUICovCisgICAgY29uc3QgeG1sQ2hhciAqaW1wb3J0TmFtZXNwYWNlOworICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciBidWNrZXQ7Cit9OworCisjZGVmaW5lIFhNTF9TQ0hFTUFfQlVDS0VUX01BUktFRCAxPDwwCisjZGVmaW5lIFhNTF9TQ0hFTUFfQlVDS0VUX0NPTVBTX0FEREVEIDE8PDEKKworc3RydWN0IF94bWxTY2hlbWFCdWNrZXQgeworICAgIGludCB0eXBlOworICAgIGludCBmbGFnczsKKyAgICBjb25zdCB4bWxDaGFyICpzY2hlbWFMb2NhdGlvbjsKKyAgICBjb25zdCB4bWxDaGFyICpvcmlnVGFyZ2V0TmFtZXNwYWNlOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZTsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIHJlbGF0aW9uczsKKyAgICBpbnQgbG9jYXRlZDsKKyAgICBpbnQgcGFyc2VkOworICAgIGludCBpbXBvcnRlZDsKKyAgICBpbnQgcHJlc2VydmVEb2M7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgZ2xvYmFsczsgLyogR2xvYmFsIGNvbXBvbmVudHMuICovCisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgbG9jYWxzOyAvKiBMb2NhbCBjb21wb25lbnRzLiAqLworfTsKKworLyoqCisgKiB4bWxTY2hlbWFJbXBvcnQ6CisgKiAoZXh0ZW5kcyB4bWxTY2hlbWFCdWNrZXQpCisgKgorICogUmVmbGVjdHMgYSBzY2hlbWEuIEhvbGRzIHNvbWUgaW5mb3JtYXRpb24KKyAqIGFib3V0IHRoZSBzY2hlbWEgYW5kIGl0cyB0b3BsZXZlbCBjb21wb25lbnRzLiBEdXBsaWNhdGUKKyAqIHRvcGxldmVsIGNvbXBvbmVudHMgYXJlIG5vdCBjaGVja2VkIGF0IHRoaXMgbGV2ZWwuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFJbXBvcnQgeG1sU2NoZW1hSW1wb3J0OwordHlwZWRlZiB4bWxTY2hlbWFJbXBvcnQgKnhtbFNjaGVtYUltcG9ydFB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hSW1wb3J0IHsKKyAgICBpbnQgdHlwZTsgLyogTWFpbiBPUiBpbXBvcnQgT1IgaW5jbHVkZS4gKi8KKyAgICBpbnQgZmxhZ3M7CisgICAgY29uc3QgeG1sQ2hhciAqc2NoZW1hTG9jYXRpb247IC8qIFRoZSBVUkkgb2YgdGhlIHNjaGVtYSBkb2N1bWVudC4gKi8KKyAgICAvKiBGb3IgY2hhbWVsZW9uIGluY2x1ZGVzLCBAb3JpZ1RhcmdldE5hbWVzcGFjZSB3aWxsIGJlIE5VTEwgKi8KKyAgICBjb25zdCB4bWxDaGFyICpvcmlnVGFyZ2V0TmFtZXNwYWNlOworICAgIC8qCisgICAgKiBGb3IgY2hhbWVsZW9uIGluY2x1ZGVzLCBAdGFyZ2V0TmFtZXNwYWNlIHdpbGwgYmUgdGhlCisgICAgKiB0YXJnZXROYW1lc3BhY2Ugb2YgdGhlIGluY2x1ZGluZyBzY2hlbWEuCisgICAgKi8KKyAgICBjb25zdCB4bWxDaGFyICp0YXJnZXROYW1lc3BhY2U7CisgICAgeG1sRG9jUHRyIGRvYzsgLyogVGhlIHNjaGVtYSBub2RlLXRyZWUuICovCisgICAgLyogQHJlbGF0aW9ucyB3aWxsIGhvbGQgYW55IGluY2x1ZGVkL2ltcG9ydGVkL3JlZGVmaW5lZCBzY2hlbWFzLiAqLworICAgIHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIHJlbGF0aW9uczsKKyAgICBpbnQgbG9jYXRlZDsKKyAgICBpbnQgcGFyc2VkOworICAgIGludCBpbXBvcnRlZDsKKyAgICBpbnQgcHJlc2VydmVEb2M7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgZ2xvYmFsczsKKyAgICB4bWxTY2hlbWFJdGVtTGlzdFB0ciBsb2NhbHM7CisgICAgLyogVGhlIGltcG9ydGVkIHNjaGVtYS4gKi8KKyAgICB4bWxTY2hlbWFQdHIgc2NoZW1hOworfTsKKworLyoKKyogKGV4dGVuZHMgeG1sU2NoZW1hQnVja2V0KQorKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFJbmNsdWRlIHhtbFNjaGVtYUluY2x1ZGU7Cit0eXBlZGVmIHhtbFNjaGVtYUluY2x1ZGUgKnhtbFNjaGVtYUluY2x1ZGVQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUluY2x1ZGUgeworICAgIGludCB0eXBlOworICAgIGludCBmbGFnczsKKyAgICBjb25zdCB4bWxDaGFyICpzY2hlbWFMb2NhdGlvbjsKKyAgICBjb25zdCB4bWxDaGFyICpvcmlnVGFyZ2V0TmFtZXNwYWNlOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZTsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIHJlbGF0aW9uczsKKyAgICBpbnQgbG9jYXRlZDsKKyAgICBpbnQgcGFyc2VkOworICAgIGludCBpbXBvcnRlZDsKKyAgICBpbnQgcHJlc2VydmVEb2M7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgZ2xvYmFsczsgLyogR2xvYmFsIGNvbXBvbmVudHMuICovCisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgbG9jYWxzOyAvKiBMb2NhbCBjb21wb25lbnRzLiAqLworCisgICAgLyogVGhlIG93bmluZyBtYWluIG9yIGltcG9ydCBzY2hlbWEgYnVja2V0LiAqLworICAgIHhtbFNjaGVtYUltcG9ydFB0ciBvd25lckltcG9ydDsKK307CisKKy8qKgorICogeG1sU2NoZW1hQmFzaWNJdGVtOgorICoKKyAqIFRoZSBhYnN0cmFjdCBiYXNlIHR5cGUgZm9yIHNjaGVtYSBjb21wb25lbnRzLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hQmFzaWNJdGVtIHhtbFNjaGVtYUJhc2ljSXRlbTsKK3R5cGVkZWYgeG1sU2NoZW1hQmFzaWNJdGVtICp4bWxTY2hlbWFCYXNpY0l0ZW1QdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUJhc2ljSXRlbSB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsKK307CisKKy8qKgorICogeG1sU2NoZW1hQW5ub3RJdGVtOgorICoKKyAqIFRoZSBhYnN0cmFjdCBiYXNlIHR5cGUgZm9yIGFubm90YXRlZCBzY2hlbWEgY29tcG9uZW50cy4KKyAqIChFeHRlbmRzIHhtbFNjaGVtYUJhc2ljSXRlbSkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUFubm90SXRlbSB4bWxTY2hlbWFBbm5vdEl0ZW07Cit0eXBlZGVmIHhtbFNjaGVtYUFubm90SXRlbSAqeG1sU2NoZW1hQW5ub3RJdGVtUHRyOworc3RydWN0IF94bWxTY2hlbWFBbm5vdEl0ZW0geworICAgIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGU7CisgICAgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3Q7Cit9OworCisvKioKKyAqIHhtbFNjaGVtYVRyZWVJdGVtOgorICoKKyAqIFRoZSBhYnN0cmFjdCBiYXNlIHR5cGUgZm9yIHRyZWUtbGlrZSBzdHJ1Y3R1cmVkIHNjaGVtYSBjb21wb25lbnRzLgorICogKEV4dGVuZHMgeG1sU2NoZW1hQW5ub3RJdGVtKQorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hVHJlZUl0ZW0geG1sU2NoZW1hVHJlZUl0ZW07Cit0eXBlZGVmIHhtbFNjaGVtYVRyZWVJdGVtICp4bWxTY2hlbWFUcmVlSXRlbVB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hVHJlZUl0ZW0geworICAgIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGU7CisgICAgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3Q7CisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgbmV4dDsKKyAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBjaGlsZHJlbjsKK307CisKKworI2RlZmluZSBYTUxfU0NIRU1BX0FUVFJfVVNFX0ZJWEVEIDE8PDAKKy8qKgorICogeG1sU2NoZW1hQXR0cmlidXRlVXNlUHRyOgorICoKKyAqIFRoZSBhYnN0cmFjdCBiYXNlIHR5cGUgZm9yIHRyZWUtbGlrZSBzdHJ1Y3R1cmVkIHNjaGVtYSBjb21wb25lbnRzLgorICogKEV4dGVuZHMgeG1sU2NoZW1hVHJlZUl0ZW0pCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFBdHRyaWJ1dGVVc2UgeG1sU2NoZW1hQXR0cmlidXRlVXNlOwordHlwZWRlZiB4bWxTY2hlbWFBdHRyaWJ1dGVVc2UgKnhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlVXNlIHsKKyAgICB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlOworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciBuZXh0OyAvKiBUaGUgbmV4dCBhdHRyLiB1c2UuICovCisgICAgLyoKKyAgICAqIFRoZSBhdHRyLiBkZWNsLiBPUiBhIFFOYW1lLXJlZi4gdG8gYW4gYXR0ci4gZGVjbC4gT1IKKyAgICAqIGEgUU5hbWUtcmVmLiB0byBhbiBhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbi4KKyAgICAqLworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVB0ciBhdHRyRGVjbDsKKworICAgIGludCBmbGFnczsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaW50IG9jY3VyczsgLyogcmVxdWlyZWQsIG9wdGlvbmFsICovCisgICAgY29uc3QgeG1sQ2hhciAqIGRlZlZhbHVlOworICAgIHhtbFNjaGVtYVZhbFB0ciBkZWZWYWw7Cit9OworCisvKioKKyAqIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYlB0cjoKKyAqCisgKiBBIGhlbHBlciBjb21wb25lbnQgdG8gcmVmbGVjdCBhdHRyaWJ1dGUgcHJvaGliaXRpb25zLgorICogKEV4dGVuZHMgeG1sU2NoZW1hQmFzaWNJdGVtKQorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hQXR0cmlidXRlVXNlUHJvaGliIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYjsKK3R5cGVkZWYgeG1sU2NoZW1hQXR0cmlidXRlVXNlUHJvaGliICp4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQcm9oaWJQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYiB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsgLyogPT0gWE1MX1NDSEVNQV9FWFRSQV9BVFRSX1VTRV9QUk9ISUIgKi8KKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICp0YXJnZXROYW1lc3BhY2U7CisgICAgaW50IGlzUmVmOworfTsKKworLyoqCisgKiB4bWxTY2hlbWFSZWRlZjoKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVJlZGVmIHhtbFNjaGVtYVJlZGVmOwordHlwZWRlZiB4bWxTY2hlbWFSZWRlZiAqeG1sU2NoZW1hUmVkZWZQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYVJlZGVmIHsKKyAgICB4bWxTY2hlbWFSZWRlZlB0ciBuZXh0OworICAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBpdGVtOyAvKiBUaGUgcmVkZWZpbmluZyBjb21wb25lbnQuICovCisgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIHJlZmVyZW5jZTsgLyogVGhlIHJlZmVyZW5jaW5nIGNvbXBvbmVudC4gKi8KKyAgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgdGFyZ2V0OyAvKiBUaGUgdG8tYmUtcmVkZWZpbmVkIGNvbXBvbmVudC4gKi8KKyAgICBjb25zdCB4bWxDaGFyICpyZWZOYW1lOyAvKiBUaGUgbmFtZSBvZiB0aGUgdG8tYmUtcmVkZWZpbmVkIGNvbXBvbmVudC4gKi8KKyAgICBjb25zdCB4bWxDaGFyICpyZWZUYXJnZXROczsgLyogVGhlIHRhcmdldCBuYW1lc3BhY2Ugb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvLWJlLXJlZGVmaW5lZCBjb21wLiAqLworICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciB0YXJnZXRCdWNrZXQ7IC8qIFRoZSByZWRlZmluZWQgc2NoZW1hLiAqLworfTsKKworLyoqCisgKiB4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0OgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hQ29uc3RydWN0aW9uQ3R4dCB4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0OwordHlwZWRlZiB4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0ICp4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0UHRyOworc3RydWN0IF94bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0IHsKKyAgICB4bWxTY2hlbWFQdHIgbWFpblNjaGVtYTsgLyogVGhlIG1haW4gc2NoZW1hLiAqLworICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciBtYWluQnVja2V0OyAvKiBUaGUgbWFpbiBzY2hlbWEgYnVja2V0ICovCisgICAgeG1sRGljdFB0ciBkaWN0OworICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIGJ1Y2tldHM7IC8qIExpc3Qgb2Ygc2NoZW1hIGJ1Y2tldHMuICovCisgICAgLyogeG1sU2NoZW1hSXRlbUxpc3RQdHIgcmVsYXRpb25zOyAqLyAvKiBMaXN0IG9mIHNjaGVtYSByZWxhdGlvbnMuICovCisgICAgeG1sU2NoZW1hQnVja2V0UHRyIGJ1Y2tldDsgLyogVGhlIGN1cnJlbnQgc2NoZW1hIGJ1Y2tldCAqLworICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIHBlbmRpbmc7IC8qIEFsbCBDb21wb25lbnRzIG9mIGFsbCBzY2hlbWFzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGJlIGZpeGVkLiAqLworICAgIHhtbEhhc2hUYWJsZVB0ciBzdWJzdEdyb3VwczsKKyAgICB4bWxTY2hlbWFSZWRlZlB0ciByZWRlZnM7CisgICAgeG1sU2NoZW1hUmVkZWZQdHIgbGFzdFJlZGVmOworfTsKKworI2RlZmluZSBYTUxfU0NIRU1BU19QQVJTRV9FUlJPUgkJMQorI2RlZmluZSBTQ0hFTUFTX1BBUlNFX09QVElPTlMgWE1MX1BBUlNFX05PRU5UCisKK3N0cnVjdCBfeG1sU2NoZW1hUGFyc2VyQ3R4dCB7CisgICAgaW50IHR5cGU7CisgICAgdm9pZCAqZXJyQ3R4dDsgICAgICAgICAgICAgLyogdXNlciBzcGVjaWZpYyBlcnJvciBjb250ZXh0ICovCisgICAgeG1sU2NoZW1hVmFsaWRpdHlFcnJvckZ1bmMgZXJyb3I7ICAgLyogdGhlIGNhbGxiYWNrIGluIGNhc2Ugb2YgZXJyb3JzICovCisgICAgeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyB3YXJuaW5nOyAgICAgICAvKiB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiB3YXJuaW5nICovCisgICAgaW50IGVycjsKKyAgICBpbnQgbmJlcnJvcnM7CisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3I7CisKKyAgICB4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0UHRyIGNvbnN0cnVjdG9yOworICAgIGludCBvd25zQ29uc3RydWN0b3I7IC8qIFRPRE86IE1vdmUgdGhpcyB0byBwYXJzZXIgKmZsYWdzKi4gKi8KKworICAgIC8qIHhtbFNjaGVtYVB0ciB0b3BzY2hlbWE7CSovCisgICAgLyogeG1sSGFzaFRhYmxlUHRyIG5hbWVzcGFjZXM7ICAqLworCisgICAgeG1sU2NoZW1hUHRyIHNjaGVtYTsgICAgICAgIC8qIFRoZSBtYWluIHNjaGVtYSBpbiB1c2UgKi8KKyAgICBpbnQgY291bnRlcjsKKworICAgIGNvbnN0IHhtbENoYXIgKlVSTDsKKyAgICB4bWxEb2NQdHIgZG9jOworICAgIGludCBwcmVzZXJ2ZTsJCS8qIFdoZXRoZXIgdGhlIGRvYyBzaG91bGQgYmUgZnJlZWQgICovCisKKyAgICBjb25zdCBjaGFyICpidWZmZXI7CisgICAgaW50IHNpemU7CisKKyAgICAvKgorICAgICAqIFVzZWQgdG8gYnVpbGQgY29tcGxleCBlbGVtZW50IGNvbnRlbnQgbW9kZWxzCisgICAgICovCisgICAgeG1sQXV0b21hdGFQdHIgYW07CisgICAgeG1sQXV0b21hdGFTdGF0ZVB0ciBzdGFydDsKKyAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIGVuZDsKKyAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIHN0YXRlOworCisgICAgeG1sRGljdFB0ciBkaWN0OwkJLyogZGljdGlvbm5hcnkgZm9yIGludGVybmVkIHN0cmluZyBuYW1lcyAqLworICAgIHhtbFNjaGVtYVR5cGVQdHIgY3R4dFR5cGU7IC8qIFRoZSBjdXJyZW50IGNvbnRleHQgc2ltcGxlL2NvbXBsZXggdHlwZSAqLworICAgIGludCBvcHRpb25zOworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dDsKKyAgICBpbnQgaXNTNFM7CisgICAgaW50IGlzUmVkZWZpbmU7CisgICAgaW50IHhzaUFzc2VtYmxlOworICAgIGludCBzdG9wOyAvKiBJZiB0aGUgcGFyc2VyIHNob3VsZCBzdG9wOyBpLmUuIGEgY3JpdGljYWwgZXJyb3IuICovCisgICAgY29uc3QgeG1sQ2hhciAqdGFyZ2V0TmFtZXNwYWNlOworICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciByZWRlZmluZWQ7IC8qIFRoZSBzY2hlbWEgdG8gYmUgcmVkZWZpbmVkLiAqLworCisgICAgeG1sU2NoZW1hUmVkZWZQdHIgcmVkZWY7IC8qIFVzZWQgZm9yIHJlZGVmaW5pdGlvbnMuICovCisgICAgaW50IHJlZGVmQ291bnRlcjsgLyogVXNlZCBmb3IgcmVkZWZpbml0aW9ucy4gKi8KKyAgICB4bWxTY2hlbWFJdGVtTGlzdFB0ciBhdHRyUHJvaGliczsKK307CisKKy8qKgorICogeG1sU2NoZW1hUU5hbWVSZWY6CisgKgorICogQSBjb21wb25lbnQgcmVmZXJlbmNlIGl0ZW0gKG5vdCBhIHNjaGVtYSBjb21wb25lbnQpCisgKiAoRXh0ZW5kcyB4bWxTY2hlbWFCYXNpY0l0ZW0pCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFRTmFtZVJlZiB4bWxTY2hlbWFRTmFtZVJlZjsKK3R5cGVkZWYgeG1sU2NoZW1hUU5hbWVSZWYgKnhtbFNjaGVtYVFOYW1lUmVmUHRyOworc3RydWN0IF94bWxTY2hlbWFRTmFtZVJlZiB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsKKyAgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgaXRlbTsgLyogVGhlIHJlc29sdmVkIHJlZmVyZW5jZWQgaXRlbS4gKi8KKyAgICB4bWxTY2hlbWFUeXBlVHlwZSBpdGVtVHlwZTsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZTsKKyAgICB4bWxOb2RlUHRyIG5vZGU7Cit9OworCisvKioKKyAqIHhtbFNjaGVtYVBhcnRpY2xlOgorICoKKyAqIEEgcGFydGljbGUgY29tcG9uZW50LgorICogKEV4dGVuZHMgeG1sU2NoZW1hVHJlZUl0ZW0pCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFQYXJ0aWNsZSB4bWxTY2hlbWFQYXJ0aWNsZTsKK3R5cGVkZWYgeG1sU2NoZW1hUGFydGljbGUgKnhtbFNjaGVtYVBhcnRpY2xlUHRyOworc3RydWN0IF94bWxTY2hlbWFQYXJ0aWNsZSB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsKKyAgICB4bWxTY2hlbWFBbm5vdFB0ciBhbm5vdDsKKyAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBuZXh0OyAvKiBuZXh0IHBhcnRpY2xlICovCisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgY2hpbGRyZW47IC8qIHRoZSAidGVybSIgKGUuZy4gYSBtb2RlbCBncm91cCwKKwlhIGdyb3VwIGRlZmluaXRpb24sIGEgWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRiAoaWYgYSByZWZlcmVuY2UpLAorICAgICAgICBldGMuKSAqLworICAgIGludCBtaW5PY2N1cnM7CisgICAgaW50IG1heE9jY3VyczsKKyAgICB4bWxOb2RlUHRyIG5vZGU7Cit9OworCisvKioKKyAqIHhtbFNjaGVtYU1vZGVsR3JvdXA6CisgKgorICogQSBtb2RlbCBncm91cCBjb21wb25lbnQuCisgKiAoRXh0ZW5kcyB4bWxTY2hlbWFUcmVlSXRlbSkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYU1vZGVsR3JvdXAgeG1sU2NoZW1hTW9kZWxHcm91cDsKK3R5cGVkZWYgeG1sU2NoZW1hTW9kZWxHcm91cCAqeG1sU2NoZW1hTW9kZWxHcm91cFB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hTW9kZWxHcm91cCB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsgLyogWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFLCBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFLCBYTUxfU0NIRU1BX1RZUEVfQUxMICovCisgICAgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3Q7CisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgbmV4dDsgLyogbm90IHVzZWQgKi8KKyAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBjaGlsZHJlbjsgLyogZmlyc3QgcGFydGljbGUgKE9SICJlbGVtZW50IGRlY2wiIE9SICJ3aWxkY2FyZCIpICovCisgICAgeG1sTm9kZVB0ciBub2RlOworfTsKKworI2RlZmluZSBYTUxfU0NIRU1BX01PREVMX0dST1VQX0RFRl9NQVJLRUQgMTw8MAorI2RlZmluZSBYTUxfU0NIRU1BX01PREVMX0dST1VQX0RFRl9SRURFRklORUQgMTw8MQorLyoqCisgKiB4bWxTY2hlbWFNb2RlbEdyb3VwRGVmOgorICoKKyAqIEEgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbiBjb21wb25lbnQuCisgKiAoRXh0ZW5kcyB4bWxTY2hlbWFUcmVlSXRlbSkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYU1vZGVsR3JvdXBEZWYgeG1sU2NoZW1hTW9kZWxHcm91cERlZjsKK3R5cGVkZWYgeG1sU2NoZW1hTW9kZWxHcm91cERlZiAqeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hTW9kZWxHcm91cERlZiB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsgLyogWE1MX1NDSEVNQV9UWVBFX0dST1VQICovCisgICAgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3Q7CisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgbmV4dDsgLyogbm90IHVzZWQgKi8KKyAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBjaGlsZHJlbjsgLyogdGhlICJtb2RlbCBncm91cCIgKi8KKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZTsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaW50IGZsYWdzOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUlEQyB4bWxTY2hlbWFJREM7Cit0eXBlZGVmIHhtbFNjaGVtYUlEQyAqeG1sU2NoZW1hSURDUHRyOworCisvKioKKyAqIHhtbFNjaGVtYUlEQ1NlbGVjdDoKKyAqCisgKiBUaGUgaWRlbnRpdHktY29uc3RyYWludCAiZmllbGQiIGFuZCAic2VsZWN0b3IiIGl0ZW0sIGhvbGRpbmcgdGhlCisgKiBYUGF0aCBleHByZXNzaW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hSURDU2VsZWN0IHhtbFNjaGVtYUlEQ1NlbGVjdDsKK3R5cGVkZWYgeG1sU2NoZW1hSURDU2VsZWN0ICp4bWxTY2hlbWFJRENTZWxlY3RQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUlEQ1NlbGVjdCB7CisgICAgeG1sU2NoZW1hSURDU2VsZWN0UHRyIG5leHQ7CisgICAgeG1sU2NoZW1hSURDUHRyIGlkYzsKKyAgICBpbnQgaW5kZXg7IC8qIGFuIGluZGV4IHBvc2l0aW9uIGlmIHNpZ25pZmljYW50IGZvciBJREMga2V5LXNlcXVlbmNlcyAqLworICAgIGNvbnN0IHhtbENoYXIgKnhwYXRoOyAvKiB0aGUgWFBhdGggZXhwcmVzc2lvbiAqLworICAgIHZvaWQgKnhwYXRoQ29tcDsgLyogdGhlIGNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24gKi8KK307CisKKy8qKgorICogeG1sU2NoZW1hSURDOgorICoKKyAqIFRoZSBpZGVudGl0eS1jb25zdHJhaW50IGRlZmluaXRpb24gY29tcG9uZW50LgorICogKEV4dGVuZHMgeG1sU2NoZW1hQW5ub3RJdGVtKQorICovCisKK3N0cnVjdCBfeG1sU2NoZW1hSURDIHsKKyAgICB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlOworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworICAgIHhtbFNjaGVtYUlEQ1B0ciBuZXh0OworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZTsKKyAgICB4bWxTY2hlbWFJRENTZWxlY3RQdHIgc2VsZWN0b3I7CisgICAgeG1sU2NoZW1hSURDU2VsZWN0UHRyIGZpZWxkczsKKyAgICBpbnQgbmJGaWVsZHM7CisgICAgeG1sU2NoZW1hUU5hbWVSZWZQdHIgcmVmOworfTsKKworLyoqCisgKiB4bWxTY2hlbWFJRENBdWc6CisgKgorICogVGhlIGF1Z21lbnRlZCBJREMgaW5mb3JtYXRpb24gdXNlZCBmb3IgdmFsaWRhdGlvbi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUlEQ0F1ZyB4bWxTY2hlbWFJRENBdWc7Cit0eXBlZGVmIHhtbFNjaGVtYUlEQ0F1ZyAqeG1sU2NoZW1hSURDQXVnUHRyOworc3RydWN0IF94bWxTY2hlbWFJRENBdWcgeworICAgIHhtbFNjaGVtYUlEQ0F1Z1B0ciBuZXh0OyAvKiBuZXh0IGluIGEgbGlzdCAqLworICAgIHhtbFNjaGVtYUlEQ1B0ciBkZWY7IC8qIHRoZSBJREMgZGVmaW5pdGlvbiAqLworICAgIGludCBrZXlyZWZEZXB0aDsgLyogdGhlIGxvd2VzdCB0cmVlIGxldmVsIHRvIHdoaWNoIElEQworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVzIG5lZWQgdG8gYmUgYnViYmxlZCB1cHdhcmRzICovCit9OworCisvKioKKyAqIHhtbFNjaGVtYVBTVklJRENLZXlTZXF1ZW5jZToKKyAqCisgKiBUaGUga2V5IHNlcXVlbmNlIG9mIGEgbm9kZSB0YWJsZSBpdGVtLgorICovCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hUFNWSUlEQ0tleSB4bWxTY2hlbWFQU1ZJSURDS2V5OwordHlwZWRlZiB4bWxTY2hlbWFQU1ZJSURDS2V5ICp4bWxTY2hlbWFQU1ZJSURDS2V5UHRyOworc3RydWN0IF94bWxTY2hlbWFQU1ZJSURDS2V5IHsKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGU7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsKK307CisKKy8qKgorICogeG1sU2NoZW1hUFNWSUlEQ05vZGU6CisgKgorICogVGhlIG5vZGUgdGFibGUgaXRlbSBvZiBhIG5vZGUgdGFibGUuCisgKi8KK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFQU1ZJSURDTm9kZSB4bWxTY2hlbWFQU1ZJSURDTm9kZTsKK3R5cGVkZWYgeG1sU2NoZW1hUFNWSUlEQ05vZGUgKnhtbFNjaGVtYVBTVklJRENOb2RlUHRyOworc3RydWN0IF94bWxTY2hlbWFQU1ZJSURDTm9kZSB7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIHhtbFNjaGVtYVBTVklJRENLZXlQdHIgKmtleXM7CisgICAgaW50IG5vZGVMaW5lOworICAgIGludCBub2RlUU5hbWVJRDsKKworfTsKKworLyoqCisgKiB4bWxTY2hlbWFQU1ZJSURDQmluZGluZzoKKyAqCisgKiBUaGUgaWRlbnRpdHktY29uc3RyYWludCBiaW5kaW5nIGl0ZW0gb2YgdGhlIFtpZGVudGl0eS1jb25zdHJhaW50IHRhYmxlXS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVBTVklJRENCaW5kaW5nIHhtbFNjaGVtYVBTVklJRENCaW5kaW5nOwordHlwZWRlZiB4bWxTY2hlbWFQU1ZJSURDQmluZGluZyAqeG1sU2NoZW1hUFNWSUlEQ0JpbmRpbmdQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYVBTVklJRENCaW5kaW5nIHsKKyAgICB4bWxTY2hlbWFQU1ZJSURDQmluZGluZ1B0ciBuZXh0OyAvKiBuZXh0IGJpbmRpbmcgb2YgYSBzcGVjaWZpYyBub2RlICovCisgICAgeG1sU2NoZW1hSURDUHRyIGRlZmluaXRpb247IC8qIHRoZSBJREMgZGVmaW5pdGlvbiAqLworICAgIHhtbFNjaGVtYVBTVklJRENOb2RlUHRyICpub2RlVGFibGU7IC8qIGFycmF5IG9mIGtleS1zZXF1ZW5jZXMgKi8KKyAgICBpbnQgbmJOb2RlczsgLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIG5vZGUgdGFibGUgKi8KKyAgICBpbnQgc2l6ZU5vZGVzOyAvKiBzaXplIG9mIHRoZSBub2RlIHRhYmxlICovCisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgZHVwbHM7Cit9OworCisKKyNkZWZpbmUgWFBBVEhfU1RBVEVfT0JKX1RZUEVfSURDX1NFTEVDVE9SIDEKKyNkZWZpbmUgWFBBVEhfU1RBVEVfT0JKX1RZUEVfSURDX0ZJRUxEIDIKKworI2RlZmluZSBYUEFUSF9TVEFURV9PQkpfTUFUQ0hFUyAtMgorI2RlZmluZSBYUEFUSF9TVEFURV9PQkpfQkxPQ0tFRCAtMworCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hSURDTWF0Y2hlciB4bWxTY2hlbWFJRENNYXRjaGVyOwordHlwZWRlZiB4bWxTY2hlbWFJRENNYXRjaGVyICp4bWxTY2hlbWFJRENNYXRjaGVyUHRyOworCisvKioKKyAqIHhtbFNjaGVtYUlEQ1N0YXRlT2JqOgorICoKKyAqIFRoZSBzdGF0ZSBvYmplY3QgdXNlZCB0byBldmFsdWF0ZSBYUGF0aCBleHByZXNzaW9ucy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYUlEQ1N0YXRlT2JqIHhtbFNjaGVtYUlEQ1N0YXRlT2JqOwordHlwZWRlZiB4bWxTY2hlbWFJRENTdGF0ZU9iaiAqeG1sU2NoZW1hSURDU3RhdGVPYmpQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYUlEQ1N0YXRlT2JqIHsKKyAgICBpbnQgdHlwZTsKKyAgICB4bWxTY2hlbWFJRENTdGF0ZU9ialB0ciBuZXh0OyAvKiBuZXh0IGlmIGluIGEgbGlzdCAqLworICAgIGludCBkZXB0aDsgLyogZGVwdGggb2YgY3JlYXRpb24gKi8KKyAgICBpbnQgKmhpc3Rvcnk7IC8qIGxpc3Qgb2YgKGRlcHRoLCBzdGF0ZS1pZCkgdHVwbGVzICovCisgICAgaW50IG5iSGlzdG9yeTsKKyAgICBpbnQgc2l6ZUhpc3Rvcnk7CisgICAgeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyOyAvKiB0aGUgY29ycmVzcG9uZGVudCBmaWVsZC9zZWxlY3RvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlciAqLworICAgIHhtbFNjaGVtYUlEQ1NlbGVjdFB0ciBzZWw7CisgICAgdm9pZCAqeHBhdGhDdHh0OworfTsKKworI2RlZmluZSBJRENfTUFUQ0hFUiAwCisKKy8qKgorICogeG1sU2NoZW1hSURDTWF0Y2hlcjoKKyAqCisgKiBVc2VkIHRvIGV2YWx1YXRlIElEQyBzZWxlY3RvcnMgKGFuZCBmaWVsZHMpLgorICovCitzdHJ1Y3QgX3htbFNjaGVtYUlEQ01hdGNoZXIgeworICAgIGludCB0eXBlOworICAgIGludCBkZXB0aDsgLyogdGhlIHRyZWUgZGVwdGggYXQgY3JlYXRpb24gdGltZSAqLworICAgIHhtbFNjaGVtYUlEQ01hdGNoZXJQdHIgbmV4dDsgLyogbmV4dCBpbiB0aGUgbGlzdCAqLworICAgIHhtbFNjaGVtYUlEQ01hdGNoZXJQdHIgbmV4dENhY2hlZDsgLyogbmV4dCBpbiB0aGUgY2FjaGUgbGlzdCAqLworICAgIHhtbFNjaGVtYUlEQ0F1Z1B0ciBhaWRjOyAvKiB0aGUgYXVnbWVudGVkIElEQyBpdGVtICovCisgICAgaW50IGlkY1R5cGU7CisgICAgeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciAqKmtleVNlcXM7IC8qIHRoZSBrZXktc2VxdWVuY2VzIG9mIHRoZSB0YXJnZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMgKi8KKyAgICBpbnQgc2l6ZUtleVNlcXM7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgdGFyZ2V0czsgLyogbGlzdCBvZiB0YXJnZXQtbm9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTY2hlbWFQU1ZJSURDTm9kZVB0cikgZW50cmllcyAqLworfTsKKworLyoKKyogRWxlbWVudCBpbmZvIGZsYWdzLgorKi8KKyNkZWZpbmUgWE1MX1NDSEVNQV9OT0RFX0lORk9fRkxBR19PV05FRF9OQU1FUyAgMTw8MAorI2RlZmluZSBYTUxfU0NIRU1BX05PREVfSU5GT19GTEFHX09XTkVEX1ZBTFVFUyAxPDwxCisjZGVmaW5lIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX05JTExFRAkgICAgICAgMTw8MgorI2RlZmluZSBYTUxfU0NIRU1BX0VMRU1fSU5GT19MT0NBTF9UWVBFCSAgICAgICAxPDwzCisKKyNkZWZpbmUgWE1MX1NDSEVNQV9OT0RFX0lORk9fVkFMVUVfTkVFREVEICAgICAgMTw8NAorI2RlZmluZSBYTUxfU0NIRU1BX0VMRU1fSU5GT19FTVBUWSAgICAgICAgICAgICAxPDw1CisjZGVmaW5lIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0hBU19DT05URU5UICAgICAgIDE8PDYKKworI2RlZmluZSBYTUxfU0NIRU1BX0VMRU1fSU5GT19IQVNfRUxFTV9DT05URU5UICAxPDw3CisjZGVmaW5lIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0VSUl9CQURfQ09OVEVOVCAgMTw8OAorI2RlZmluZSBYTUxfU0NIRU1BX05PREVfSU5GT19FUlJfTk9UX0VYUEVDVEVEICAxPDw5CisjZGVmaW5lIFhNTF9TQ0hFTUFfTk9ERV9JTkZPX0VSUl9CQURfVFlQRSAgMTw8MTAKKworLyoqCisgKiB4bWxTY2hlbWFOb2RlSW5mbzoKKyAqCisgKiBIb2xkcyBpbmZvcm1hdGlvbiBvZiBhbiBlbGVtZW50IG5vZGUuCisgKi8KK3N0cnVjdCBfeG1sU2NoZW1hTm9kZUluZm8geworICAgIGludCBub2RlVHlwZTsKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgaW50IG5vZGVMaW5lOworICAgIGNvbnN0IHhtbENoYXIgKmxvY2FsTmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICpuc05hbWU7CisgICAgY29uc3QgeG1sQ2hhciAqdmFsdWU7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsgLyogdGhlIHByZS1jb21wdXRlZCB2YWx1ZSBpZiBhbnkgKi8KKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGVEZWY7IC8qIHRoZSBjb21wbGV4L3NpbXBsZSB0eXBlIGRlZmluaXRpb24gaWYgYW55ICovCisKKyAgICBpbnQgZmxhZ3M7IC8qIGNvbWJpbmF0aW9uIG9mIG5vZGUgaW5mbyBmbGFncyAqLworCisgICAgaW50IHZhbE5lZWRlZDsKKyAgICBpbnQgbm9ybVZhbDsKKworICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgZGVjbDsgLyogdGhlIGVsZW1lbnQvYXR0cmlidXRlIGRlY2xhcmF0aW9uICovCisgICAgaW50IGRlcHRoOworICAgIHhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyIGlkY1RhYmxlOyAvKiB0aGUgdGFibGUgb2YgUFNWSSBJREMgYmluZGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBzY29wZSBlbGVtZW50Ki8KKyAgICB4bWxTY2hlbWFJRENNYXRjaGVyUHRyIGlkY01hdGNoZXJzOyAvKiB0aGUgSURDIG1hdGNoZXJzIGZvciB0aGUgc2NvcGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50ICovCisgICAgeG1sUmVnRXhlY0N0eHRQdHIgcmVnZXhDdHh0OworCisgICAgY29uc3QgeG1sQ2hhciAqKm5zQmluZGluZ3M7IC8qIE5hbWVzcGFjZSBiaW5kaW5ncyBvbiB0aGlzIGVsZW1lbnQgKi8KKyAgICBpbnQgbmJOc0JpbmRpbmdzOworICAgIGludCBzaXplTnNCaW5kaW5nczsKKworICAgIGludCBoYXNLZXlyZWZzOworICAgIGludCBhcHBsaWVkWFBhdGg7IC8qIEluZGljYXRlcyB0aGF0IGFuIFhQYXRoIGhhcyBiZWVuIGFwcGxpZWQuICovCit9OworCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfVU5LTk9XTiAxCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfQVNTRVNTRUQgMgorI2RlZmluZSBYTUxfU0NIRU1BU19BVFRSX1BST0hJQklURUQgMworI2RlZmluZSBYTUxfU0NIRU1BU19BVFRSX0VSUl9NSVNTSU5HIDQKKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9JTlZBTElEX1ZBTFVFIDUKKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9FUlJfTk9fVFlQRSA2CisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfRVJSX0ZJWEVEX1ZBTFVFIDcKKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9ERUZBVUxUIDgKKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9WQUxJREFURV9WQUxVRSA5CisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfRVJSX1dJTERfU1RSSUNUX05PX0RFQ0wgMTAKKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9IQVNfQVRUUl9VU0UgMTEKKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9IQVNfQVRUUl9ERUNMIDEyCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfV0lMRF9TS0lQIDEzCisjZGVmaW5lIFhNTF9TQ0hFTUFTX0FUVFJfV0lMRF9MQVhfTk9fREVDTCAxNAorI2RlZmluZSBYTUxfU0NIRU1BU19BVFRSX0VSUl9XSUxEX0RVUExJQ0FURV9JRCAxNQorI2RlZmluZSBYTUxfU0NIRU1BU19BVFRSX0VSUl9XSUxEX0FORF9VU0VfSUQgMTYKKyNkZWZpbmUgWE1MX1NDSEVNQVNfQVRUUl9NRVRBIDE3CisvKgorKiBAbWV0YVR5cGUgdmFsdWVzIG9mIHhtbFNjaGVtYUF0dHJJbmZvLgorKi8KKyNkZWZpbmUgWE1MX1NDSEVNQV9BVFRSX0lORk9fTUVUQV9YU0lfVFlQRSAxCisjZGVmaW5lIFhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX05JTCAyCisjZGVmaW5lIFhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX1NDSEVNQV9MT0MgMworI2RlZmluZSBYTUxfU0NIRU1BX0FUVFJfSU5GT19NRVRBX1hTSV9OT19OU19TQ0hFTUFfTE9DIDQKKyNkZWZpbmUgWE1MX1NDSEVNQV9BVFRSX0lORk9fTUVUQV9YTUxOUyA1CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFBdHRySW5mbyB4bWxTY2hlbWFBdHRySW5mbzsKK3R5cGVkZWYgeG1sU2NoZW1hQXR0ckluZm8gKnhtbFNjaGVtYUF0dHJJbmZvUHRyOworc3RydWN0IF94bWxTY2hlbWFBdHRySW5mbyB7CisgICAgaW50IG5vZGVUeXBlOworICAgIHhtbE5vZGVQdHIgbm9kZTsKKyAgICBpbnQgbm9kZUxpbmU7CisgICAgY29uc3QgeG1sQ2hhciAqbG9jYWxOYW1lOworICAgIGNvbnN0IHhtbENoYXIgKm5zTmFtZTsKKyAgICBjb25zdCB4bWxDaGFyICp2YWx1ZTsKKyAgICB4bWxTY2hlbWFWYWxQdHIgdmFsOyAvKiB0aGUgcHJlLWNvbXB1dGVkIHZhbHVlIGlmIGFueSAqLworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZURlZjsgLyogdGhlIGNvbXBsZXgvc2ltcGxlIHR5cGUgZGVmaW5pdGlvbiBpZiBhbnkgKi8KKyAgICBpbnQgZmxhZ3M7IC8qIGNvbWJpbmF0aW9uIG9mIG5vZGUgaW5mbyBmbGFncyAqLworCisgICAgeG1sU2NoZW1hQXR0cmlidXRlUHRyIGRlY2w7IC8qIHRoZSBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gKi8KKyAgICB4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgdXNlOyAgLyogdGhlIGF0dHJpYnV0ZSB1c2UgKi8KKyAgICBpbnQgc3RhdGU7CisgICAgaW50IG1ldGFUeXBlOworICAgIGNvbnN0IHhtbENoYXIgKnZjVmFsdWU7IC8qIHRoZSB2YWx1ZSBjb25zdHJhaW50IHZhbHVlICovCisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgcGFyZW50OworfTsKKworCisjZGVmaW5lIFhNTF9TQ0hFTUFfVkFMSURfQ1RYVF9GTEFHX1NUUkVBTSAxCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkQ3R4dDoKKyAqCisgKiBBIFNjaGVtYXMgdmFsaWRhdGlvbiBjb250ZXh0CisgKi8KK3N0cnVjdCBfeG1sU2NoZW1hVmFsaWRDdHh0IHsKKyAgICBpbnQgdHlwZTsKKyAgICB2b2lkICplcnJDdHh0OyAgICAgICAgICAgICAvKiB1c2VyIHNwZWNpZmljIGRhdGEgYmxvY2sgKi8KKyAgICB4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyBlcnJvcjsgICAvKiB0aGUgY2FsbGJhY2sgaW4gY2FzZSBvZiBlcnJvcnMgKi8KKyAgICB4bWxTY2hlbWFWYWxpZGl0eVdhcm5pbmdGdW5jIHdhcm5pbmc7IC8qIHRoZSBjYWxsYmFjayBpbiBjYXNlIG9mIHdhcm5pbmcgKi8KKyAgICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNlcnJvcjsKKworICAgIHhtbFNjaGVtYVB0ciBzY2hlbWE7ICAgICAgICAvKiBUaGUgc2NoZW1hIGluIHVzZSAqLworICAgIHhtbERvY1B0ciBkb2M7CisgICAgeG1sUGFyc2VySW5wdXRCdWZmZXJQdHIgaW5wdXQ7CisgICAgeG1sQ2hhckVuY29kaW5nIGVuYzsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIHNheDsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIHBhcnNlckN0eHQ7CisgICAgdm9pZCAqdXNlcl9kYXRhOyAvKiBUT0RPOiBXaGF0IGlzIHRoaXMgZm9yPyAqLworCisgICAgaW50IGVycjsKKyAgICBpbnQgbmJlcnJvcnM7CisKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgLyogeG1sU2NoZW1hVHlwZVB0ciB0eXBlOyAqLworCisgICAgeG1sUmVnRXhlY0N0eHRQdHIgcmVnZXhwOworICAgIHhtbFNjaGVtYVZhbFB0ciB2YWx1ZTsKKworICAgIGludCB2YWx1ZVdTOworICAgIGludCBvcHRpb25zOworICAgIHhtbE5vZGVQdHIgdmFsaWRhdGlvblJvb3Q7CisgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dDsKKyAgICBpbnQgeHNpQXNzZW1ibGU7CisKKyAgICBpbnQgZGVwdGg7CisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgKmVsZW1JbmZvczsgLyogYXJyYXkgb2YgZWxlbWVudCBpbmZvcm1hdGlvbnMgKi8KKyAgICBpbnQgc2l6ZUVsZW1JbmZvczsKKyAgICB4bWxTY2hlbWFOb2RlSW5mb1B0ciBpbm9kZTsgLyogdGhlIGN1cnJlbnQgZWxlbWVudCBpbmZvcm1hdGlvbiAqLworCisgICAgeG1sU2NoZW1hSURDQXVnUHRyIGFpZGNzOyAvKiBhIGxpc3Qgb2YgYXVnbWVudGVkIElEQyBpbmZvcm1hdGlvbnMgKi8KKworICAgIHhtbFNjaGVtYUlEQ1N0YXRlT2JqUHRyIHhwYXRoU3RhdGVzOyAvKiBmaXJzdCBhY3RpdmUgc3RhdGUgb2JqZWN0LiAqLworICAgIHhtbFNjaGVtYUlEQ1N0YXRlT2JqUHRyIHhwYXRoU3RhdGVQb29sOyAvKiBmaXJzdCBzdG9yZWQgc3RhdGUgb2JqZWN0LiAqLworICAgIHhtbFNjaGVtYUlEQ01hdGNoZXJQdHIgaWRjTWF0Y2hlckNhY2hlOyAvKiBDYWNoZSBmb3IgSURDIG1hdGNoZXIgb2JqZWN0cy4gKi8KKworICAgIHhtbFNjaGVtYVBTVklJRENOb2RlUHRyICppZGNOb2RlczsgLyogbGlzdCBvZiBhbGwgSURDIG5vZGUtdGFibGUgZW50cmllcyovCisgICAgaW50IG5iSWRjTm9kZXM7CisgICAgaW50IHNpemVJZGNOb2RlczsKKworICAgIHhtbFNjaGVtYVBTVklJRENLZXlQdHIgKmlkY0tleXM7IC8qIGxpc3Qgb2YgYWxsIElEQyBub2RlLXRhYmxlIGVudHJpZXMgKi8KKyAgICBpbnQgbmJJZGNLZXlzOworICAgIGludCBzaXplSWRjS2V5czsKKworICAgIGludCBmbGFnczsKKworICAgIHhtbERpY3RQdHIgZGljdDsKKworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorICAgIHhtbFRleHRSZWFkZXJQdHIgcmVhZGVyOworI2VuZGlmCisKKyAgICB4bWxTY2hlbWFBdHRySW5mb1B0ciAqYXR0ckluZm9zOworICAgIGludCBuYkF0dHJJbmZvczsKKyAgICBpbnQgc2l6ZUF0dHJJbmZvczsKKworICAgIGludCBza2lwRGVwdGg7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgbm9kZVFOYW1lczsKKyAgICBpbnQgaGFzS2V5cmVmczsKKyAgICBpbnQgY3JlYXRlSURDTm9kZVRhYmxlczsKKyAgICBpbnQgcHN2aUV4cG9zZUlEQ05vZGVUYWJsZXM7Cit9OworCisvKioKKyAqIHhtbFNjaGVtYVN1YnN0R3JvdXA6CisgKgorICoKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVN1YnN0R3JvdXAgeG1sU2NoZW1hU3Vic3RHcm91cDsKK3R5cGVkZWYgeG1sU2NoZW1hU3Vic3RHcm91cCAqeG1sU2NoZW1hU3Vic3RHcm91cFB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hU3Vic3RHcm91cCB7CisgICAgeG1sU2NoZW1hRWxlbWVudFB0ciBoZWFkOworICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIG1lbWJlcnM7Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlTb21lIHByZWRlY2xhcmF0aW9ucwkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50IHhtbFNjaGVtYVBhcnNlSW5jbHVkZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKTsKK3N0YXRpYyBpbnQgeG1sU2NoZW1hUGFyc2VSZWRlZmluZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKTsKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVR5cGVGaXh1cCh4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCisgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGN0eHQpOworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sU2NoZW1hRmFjZXRUeXBlVG9TdHJpbmcoeG1sU2NoZW1hVHlwZVR5cGUgdHlwZSk7CitzdGF0aWMgaW50Cit4bWxTY2hlbWFQYXJzZUltcG9ydCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUpOworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tGYWNldFZhbHVlcyh4bWxTY2hlbWFUeXBlUHRyIHR5cGVEZWNsLAorICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQpOworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNsZWFyVmFsaWRDdHh0KHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCk7CitzdGF0aWMgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZQoreG1sU2NoZW1hR2V0V2hpdGVTcGFjZUZhY2V0VmFsdWUoeG1sU2NoZW1hVHlwZVB0ciB0eXBlKTsKK3N0YXRpYyB4bWxTY2hlbWFUcmVlSXRlbVB0cgoreG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJCSB4bWxOb2RlUHRyIG5vZGUsIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGUsCisJCQkgaW50IHdpdGhQYXJ0aWNsZSk7CitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFHZXRDb21wb25lbnRUeXBlU3RyKHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBpdGVtKTsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlTGlua1B0cgoreG1sU2NoZW1hR2V0VW5pb25TaW1wbGVUeXBlTWVtYmVyVHlwZXMoeG1sU2NoZW1hVHlwZVB0ciB0eXBlKTsKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJbnRlcm5hbEVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCisJCSAgICAgY29uc3QgY2hhciAqZnVuY05hbWUsCisJCSAgICAgY29uc3QgY2hhciAqbWVzc2FnZSk7CitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NPU1NURGVyaXZlZE9LKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBjdHh0LAorCQkJICAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCisJCQkgICAgIHhtbFNjaGVtYVR5cGVQdHIgYmFzZVR5cGUsCisJCQkgICAgIGludCBzdWJzZXQpOworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNoZWNrRWxlbWVudERlY2xDb21wb25lbnQoeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtRGVjbCwKKwkJCQkgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQpOworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNvbXBvbmVudExpc3RGcmVlKHhtbFNjaGVtYUl0ZW1MaXN0UHRyIGxpc3QpOworc3RhdGljIHhtbFNjaGVtYVFOYW1lUmVmUHRyCit4bWxTY2hlbWFQYXJzZUF0dHJpYnV0ZUdyb3VwUmVmKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkJeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJCQl4bWxOb2RlUHRyIG5vZGUpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJCUhlbHBlciBmdW5jdGlvbnMJCQkgICAgICAgICoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxTY2hlbWFJdGVtVHlwZVRvU3RyOgorICogQHR5cGU6IHRoZSB0eXBlIG9mIHRoZSBzY2hlbWEgaXRlbQorICoKKyAqIFJldHVybnMgdGhlIGNvbXBvbmVudCBuYW1lIG9mIGEgc2NoZW1hIGl0ZW0uCisgKi8KK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbFNjaGVtYUl0ZW1UeXBlVG9TdHIoeG1sU2NoZW1hVHlwZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9CQVNJQzoKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJzaW1wbGUgdHlwZSBkZWZpbml0aW9uIik7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFOgorCSAgICByZXR1cm4oQkFEX0NBU1QgInNpbXBsZSB0eXBlIGRlZmluaXRpb24iKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOgorCSAgICByZXR1cm4oQkFEX0NBU1QgImNvbXBsZXggdHlwZSBkZWZpbml0aW9uIik7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVDoKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJlbGVtZW50IGRlY2xhcmF0aW9uIik7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRToKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJhdHRyaWJ1dGUgdXNlIik7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFOgorCSAgICByZXR1cm4oQkFEX0NBU1QgImF0dHJpYnV0ZSBkZWNsYXJhdGlvbiIpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCSAgICByZXR1cm4oQkFEX0NBU1QgIm1vZGVsIGdyb3VwIGRlZmluaXRpb24iKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUDoKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbiIpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OOgorCSAgICByZXR1cm4oQkFEX0NBU1QgIm5vdGF0aW9uIGRlY2xhcmF0aW9uIik7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0U6CisJICAgIHJldHVybihCQURfQ0FTVCAibW9kZWwgZ3JvdXAgKHNlcXVlbmNlKSIpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0NIT0lDRToKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJtb2RlbCBncm91cCAoY2hvaWNlKSIpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FMTDoKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJtb2RlbCBncm91cCAoYWxsKSIpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFOgorCSAgICByZXR1cm4oQkFEX0NBU1QgInBhcnRpY2xlIik7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRToKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJ1bmlxdWUgaWRlbnRpdHktY29uc3RyYWludCIpOworCSAgICAvKiByZXR1cm4oQkFEX0NBU1QgIklEQyAodW5pcXVlKSIpOyAqLworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVk6CisJICAgIHJldHVybihCQURfQ0FTVCAia2V5IGlkZW50aXR5LWNvbnN0cmFpbnQiKTsKKwkgICAgLyogcmV0dXJuKEJBRF9DQVNUICJJREMgKGtleSkiKTsgKi8KKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGOgorCSAgICByZXR1cm4oQkFEX0NBU1QgImtleXJlZiBpZGVudGl0eS1jb25zdHJhaW50Iik7CisJICAgIC8qIHJldHVybihCQURfQ0FTVCAiSURDIChrZXlyZWYpIik7ICovCisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQU5ZOgorCSAgICByZXR1cm4oQkFEX0NBU1QgIndpbGRjYXJkIChhbnkpIik7CisJY2FzZSBYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGOgorCSAgICByZXR1cm4oQkFEX0NBU1QgIltoZWxwZXIgY29tcG9uZW50XSBRTmFtZSByZWZlcmVuY2UiKTsKKwljYXNlIFhNTF9TQ0hFTUFfRVhUUkFfQVRUUl9VU0VfUFJPSElCOgorCSAgICByZXR1cm4oQkFEX0NBU1QgIltoZWxwZXIgY29tcG9uZW50XSBhdHRyaWJ1dGUgdXNlIHByb2hpYml0aW9uIik7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuKEJBRF9DQVNUICJOb3QgYSBzY2hlbWEgY29tcG9uZW50Iik7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNjaGVtYUdldENvbXBvbmVudFR5cGVTdHI6CisgKiBAdHlwZTogdGhlIHR5cGUgb2YgdGhlIHNjaGVtYSBpdGVtCisgKgorICogUmV0dXJucyB0aGUgY29tcG9uZW50IG5hbWUgb2YgYSBzY2hlbWEgaXRlbS4KKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sU2NoZW1hR2V0Q29tcG9uZW50VHlwZVN0cih4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgaXRlbSkKK3sKKyAgICBzd2l0Y2ggKGl0ZW0tPnR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9CQVNJQzoKKwkgICAgaWYgKFdYU19JU19DT01QTEVYKFdYU19UWVBFX0NBU1QgaXRlbSkpCisJCXJldHVybihCQURfQ0FTVCAiY29tcGxleCB0eXBlIGRlZmluaXRpb24iKTsKKwkgICAgZWxzZQorCQlyZXR1cm4oQkFEX0NBU1QgInNpbXBsZSB0eXBlIGRlZmluaXRpb24iKTsKKwlkZWZhdWx0OgorCSAgICByZXR1cm4oeG1sU2NoZW1hSXRlbVR5cGVUb1N0cihpdGVtLT50eXBlKSk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNjaGVtYUdldENvbXBvbmVudE5vZGU6CisgKiBAaXRlbTogYSBzY2hlbWEgY29tcG9uZW50CisgKgorICogUmV0dXJucyBub2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2NoZW1hIGNvbXBvbmVudC4KKyAqIE5PVEUgdGhhdCBzdWNoIGEgbm9kZSBuZWVkIG5vdCBiZSBhdmFpbGFibGU7IHBsdXMsIGEgY29tcG9uZW50J3MKKyAqIG5vZGUgbmVlZCBub3QgdG8gcmVmbGVjdCB0aGUgY29tcG9uZW50IGRpcmVjdGx5LCBzaW5jZSB0aGVyZSBpcyBubworICogb25lLXRvLW9uZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgWE1MIFNjaGVtYSByZXByZXNlbnRhdGlvbiBhbmQKKyAqIHRoZSBjb21wb25lbnQgcmVwcmVzZW50YXRpb24uCisgKi8KK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxTY2hlbWFHZXRDb21wb25lbnROb2RlKHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBpdGVtKQoreworICAgIHN3aXRjaCAoaXRlbS0+dHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFFbGVtZW50UHRyKSBpdGVtKS0+bm9kZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hQXR0cmlidXRlUHRyKSBpdGVtKS0+bm9kZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDoKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFUeXBlUHRyKSBpdGVtKS0+bm9kZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQU5ZOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FOWV9BVFRSSUJVVEU6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFXaWxkY2FyZFB0cikgaXRlbSktPm5vZGUpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hUGFydGljbGVQdHIpIGl0ZW0pLT5ub2RlKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0U6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQUxMOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hTW9kZWxHcm91cFB0cikgaXRlbSktPm5vZGUpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cikgaXRlbSktPm5vZGUpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIpIGl0ZW0pLT5ub2RlKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfVU5JUVVFOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVk6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRjoKKwkgICAgcmV0dXJuICgoKHhtbFNjaGVtYUlEQ1B0cikgaXRlbSktPm5vZGUpOworCWNhc2UgWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRjoKKwkgICAgcmV0dXJuKCgoeG1sU2NoZW1hUU5hbWVSZWZQdHIpIGl0ZW0pLT5ub2RlKTsKKwkvKiBUT0RPOiBXaGF0IHRvIGRvIHdpdGggTk9UQVRJT05zPworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hTm90YXRpb25QdHIpIGl0ZW0pLT5ub2RlKTsKKwkqLworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURV9VU0U6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIpIGl0ZW0pLT5ub2RlKTsKKwlkZWZhdWx0OgorCSAgICByZXR1cm4gKE5VTEwpOworICAgIH0KK30KKworI2lmIDAKKy8qKgorICogeG1sU2NoZW1hR2V0TmV4dENvbXBvbmVudDoKKyAqIEBpdGVtOiBhIHNjaGVtYSBjb21wb25lbnQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IHNpYmxpbmcgb2YgdGhlIHNjaGVtYSBjb21wb25lbnQuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIKK3htbFNjaGVtYUdldE5leHRDb21wb25lbnQoeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGl0ZW0pCit7CisgICAgc3dpdGNoIChpdGVtLT50eXBlKSB7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVDoKKwkgICAgcmV0dXJuICgoeG1sU2NoZW1hQmFzaWNJdGVtUHRyKSAoKHhtbFNjaGVtYUVsZW1lbnRQdHIpIGl0ZW0pLT5uZXh0KTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEU6CisJICAgIHJldHVybiAoKHhtbFNjaGVtYUJhc2ljSXRlbVB0cikgKCh4bWxTY2hlbWFBdHRyaWJ1dGVQdHIpIGl0ZW0pLT5uZXh0KTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRToKKwkgICAgcmV0dXJuICgoeG1sU2NoZW1hQmFzaWNJdGVtUHRyKSAoKHhtbFNjaGVtYVR5cGVQdHIpIGl0ZW0pLT5uZXh0KTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTlk6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQU5ZX0FUVFJJQlVURToKKwkgICAgcmV0dXJuIChOVUxMKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRToKKwkgICAgcmV0dXJuICgoeG1sU2NoZW1hQmFzaWNJdGVtUHRyKSAoKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBpdGVtKS0+bmV4dCk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0U6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FMTDoKKwkgICAgcmV0dXJuIChOVUxMKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9HUk9VUDoKKwkgICAgcmV0dXJuIChOVUxMKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUDoKKwkgICAgcmV0dXJuICgoeG1sU2NoZW1hQmFzaWNJdGVtUHRyKSAoKHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyKSBpdGVtKS0+bmV4dCk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUY6CisJICAgIHJldHVybiAoKHhtbFNjaGVtYUJhc2ljSXRlbVB0cikgKCh4bWxTY2hlbWFJRENQdHIpIGl0ZW0pLT5uZXh0KTsKKwlkZWZhdWx0OgorCSAgICByZXR1cm4gKE5VTEwpOworICAgIH0KK30KKyNlbmRpZgorCisKKy8qKgorICogeG1sU2NoZW1hRm9ybWF0UU5hbWU6CisgKiBAYnVmOiB0aGUgc3RyaW5nIGJ1ZmZlcgorICogQG5hbWVzcGFjZU5hbWU6ICB0aGUgbmFtZXNwYWNlIG5hbWUKKyAqIEBsb2NhbE5hbWU6IHRoZSBsb2NhbCBuYW1lCisgKgorICogUmV0dXJucyB0aGUgZ2l2ZW4gUU5hbWUgaW4gdGhlIGZvcm1hdCAie25hbWVzcGFjZU5hbWV9bG9jYWxOYW1lIiBvcgorICoganVzdCAibG9jYWxOYW1lIiBpZiBAbmFtZXNwYWNlTmFtZSBpcyBOVUxMLgorICoKKyAqIFJldHVybnMgdGhlIGxvY2FsTmFtZSBpZiBAbmFtZXNwYWNlTmFtZSBpcyBOVUxMLCBhIGZvcm1hdHRlZAorICogc3RyaW5nIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGNvbnN0IHhtbENoYXIqCit4bWxTY2hlbWFGb3JtYXRRTmFtZSh4bWxDaGFyICoqYnVmLAorCQkgICAgIGNvbnN0IHhtbENoYXIgKm5hbWVzcGFjZU5hbWUsCisJCSAgICAgY29uc3QgeG1sQ2hhciAqbG9jYWxOYW1lKQoreworICAgIEZSRUVfQU5EX05VTEwoKmJ1ZikKKyAgICBpZiAobmFtZXNwYWNlTmFtZSAhPSBOVUxMKSB7CisJKmJ1ZiA9IHhtbFN0cmR1cChCQURfQ0FTVCAieyIpOworCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgbmFtZXNwYWNlTmFtZSk7CisJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAifSIpOworICAgIH0KKyAgICBpZiAobG9jYWxOYW1lICE9IE5VTEwpIHsKKwlpZiAobmFtZXNwYWNlTmFtZSA9PSBOVUxMKQorCSAgICByZXR1cm4obG9jYWxOYW1lKTsKKwkqYnVmID0geG1sU3RyY2F0KCpidWYsIGxvY2FsTmFtZSk7CisgICAgfSBlbHNlIHsKKwkqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICIoTlVMTCkiKTsKKyAgICB9CisgICAgcmV0dXJuICgoY29uc3QgeG1sQ2hhciAqKSAqYnVmKTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIqCit4bWxTY2hlbWFGb3JtYXRRTmFtZU5zKHhtbENoYXIgKipidWYsIHhtbE5zUHRyIG5zLCBjb25zdCB4bWxDaGFyICpsb2NhbE5hbWUpCit7CisgICAgaWYgKG5zICE9IE5VTEwpCisJcmV0dXJuICh4bWxTY2hlbWFGb3JtYXRRTmFtZShidWYsIG5zLT5ocmVmLCBsb2NhbE5hbWUpKTsKKyAgICBlbHNlCisJcmV0dXJuICh4bWxTY2hlbWFGb3JtYXRRTmFtZShidWYsIE5VTEwsIGxvY2FsTmFtZSkpOworfQorCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFHZXRDb21wb25lbnROYW1lKHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBpdGVtKQoreworICAgIHN3aXRjaCAoaXRlbS0+dHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFFbGVtZW50UHRyKSBpdGVtKS0+bmFtZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hQXR0cmlidXRlUHRyKSBpdGVtKS0+bmFtZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0cikgaXRlbSktPm5hbWUpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0JBU0lDOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hVHlwZVB0cikgaXRlbSktPm5hbWUpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cikgaXRlbSktPm5hbWUpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVk6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hSURDUHRyKSBpdGVtKS0+bmFtZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRToKKwkgICAgaWYgKFdYU19BVFRSVVNFX0RFQ0woaXRlbSkgIT0gTlVMTCkgeworCQlyZXR1cm4oeG1sU2NoZW1hR2V0Q29tcG9uZW50TmFtZSgKKwkJICAgIFdYU19CQVNJQ19DQVNUIFdYU19BVFRSVVNFX0RFQ0woaXRlbSkpKTsKKwkgICAgfSBlbHNlCisJCXJldHVybihOVUxMKTsKKwljYXNlIFhNTF9TQ0hFTUFfRVhUUkFfUU5BTUVSRUY6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFRTmFtZVJlZlB0cikgaXRlbSktPm5hbWUpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX05PVEFUSU9OOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hTm90YXRpb25QdHIpIGl0ZW0pLT5uYW1lKTsKKwlkZWZhdWx0OgorCSAgICAvKgorCSAgICAqIE90aGVyIGNvbXBvbmVudHMgY2Fubm90IGhhdmUgbmFtZXMuCisJICAgICovCisJICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gKE5VTEwpOworfQorCisjZGVmaW5lIHhtbFNjaGVtYUdldFFOYW1lUmVmTmFtZShyKSAoV1hTX1FOQU1FX0NBU1QgKHIpKS0+bmFtZQorI2RlZmluZSB4bWxTY2hlbWFHZXRRTmFtZVJlZlRhcmdldE5zKHIpIChXWFNfUU5BTUVfQ0FTVCAocikpLT50YXJnZXROYW1lc3BhY2UKKy8qCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFHZXRRTmFtZVJlZk5hbWUodm9pZCAqcmVmKQoreworICAgIHJldHVybigoKHhtbFNjaGVtYVFOYW1lUmVmUHRyKSByZWYpLT5uYW1lKTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sU2NoZW1hR2V0UU5hbWVSZWZUYXJnZXROcyh2b2lkICpyZWYpCit7CisgICAgcmV0dXJuKCgoeG1sU2NoZW1hUU5hbWVSZWZQdHIpIHJlZiktPnRhcmdldE5hbWVzcGFjZSk7Cit9CisqLworCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFHZXRDb21wb25lbnRUYXJnZXROcyh4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgaXRlbSkKK3sKKyAgICBzd2l0Y2ggKGl0ZW0tPnR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hRWxlbWVudFB0cikgaXRlbSktPnRhcmdldE5hbWVzcGFjZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hQXR0cmlidXRlUHRyKSBpdGVtKS0+dGFyZ2V0TmFtZXNwYWNlKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUDoKKwkgICAgcmV0dXJuICgoKHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyKSBpdGVtKS0+dGFyZ2V0TmFtZXNwYWNlKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9CQVNJQzoKKwkgICAgcmV0dXJuIChCQURfQ0FTVCAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiKTsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDoKKwkgICAgcmV0dXJuICgoKHhtbFNjaGVtYVR5cGVQdHIpIGl0ZW0pLT50YXJnZXROYW1lc3BhY2UpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCSAgICByZXR1cm4gKCgoeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cikgaXRlbSktPnRhcmdldE5hbWVzcGFjZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfVU5JUVVFOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUY6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFJRENQdHIpIGl0ZW0pLT50YXJnZXROYW1lc3BhY2UpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURV9VU0U6CisJICAgIGlmIChXWFNfQVRUUlVTRV9ERUNMKGl0ZW0pICE9IE5VTEwpIHsKKwkJcmV0dXJuKHhtbFNjaGVtYUdldENvbXBvbmVudFRhcmdldE5zKAorCQkgICAgV1hTX0JBU0lDX0NBU1QgV1hTX0FUVFJVU0VfREVDTChpdGVtKSkpOworCSAgICB9CisJICAgIC8qIFRPRE86IFdpbGwgcmV0dXJuaW5nIE5VTEwgYnJlYWsgc29tZXRoaW5nPyAqLworCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfRVhUUkFfUU5BTUVSRUY6CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFRTmFtZVJlZlB0cikgaXRlbSktPnRhcmdldE5hbWVzcGFjZSk7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfTk9UQVRJT046CisJICAgIHJldHVybiAoKCh4bWxTY2hlbWFOb3RhdGlvblB0cikgaXRlbSktPnRhcmdldE5hbWVzcGFjZSk7CisJZGVmYXVsdDoKKwkgICAgLyoKKwkgICAgKiBPdGhlciBjb21wb25lbnRzIGNhbm5vdCBoYXZlIG5hbWVzLgorCSAgICAqLworCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIqCit4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSh4bWxDaGFyICoqYnVmLAorCQkJICAgdm9pZCAqaXRlbSkKK3sKKyAgICByZXR1cm4gKHhtbFNjaGVtYUZvcm1hdFFOYW1lKGJ1ZiwKKwl4bWxTY2hlbWFHZXRDb21wb25lbnRUYXJnZXROcygoeG1sU2NoZW1hQmFzaWNJdGVtUHRyKSBpdGVtKSwKKwl4bWxTY2hlbWFHZXRDb21wb25lbnROYW1lKCh4bWxTY2hlbWFCYXNpY0l0ZW1QdHIpIGl0ZW0pKSk7Cit9CisKK3N0YXRpYyBjb25zdCB4bWxDaGFyKgoreG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oeG1sQ2hhciAqKmJ1Ziwgdm9pZCAqaXRlbSkKK3sKKyAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCisgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBXWFNfSVRFTV9UWVBFX05BTUUoaXRlbSkpOworICAgICpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiAnIik7CisgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLAorCSh4bWxTY2hlbWFCYXNpY0l0ZW1QdHIpIGl0ZW0pKTsKKyAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICInIik7CisgICAgRlJFRV9BTkRfTlVMTChzdHIpOworICAgIHJldHVybigqYnVmKTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIqCit4bWxTY2hlbWFHZXRJRENEZXNpZ25hdGlvbih4bWxDaGFyICoqYnVmLCB4bWxTY2hlbWFJRENQdHIgaWRjKQoreworICAgIHJldHVybih4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbihidWYsIGlkYykpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVdpbGRjYXJkUENUb1N0cmluZzoKKyAqIEBwYzogdGhlIHR5cGUgb2YgcHJvY2Vzc0NvbnRlbnRzCisgKgorICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZSBvZgorICogcHJvY2Vzc0NvbnRlbnRzLgorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFXaWxkY2FyZFBDVG9TdHJpbmcoaW50IHBjKQoreworICAgIHN3aXRjaCAocGMpIHsKKwljYXNlIFhNTF9TQ0hFTUFTX0FOWV9TS0lQOgorCSAgICByZXR1cm4gKEJBRF9DQVNUICJza2lwIik7CisJY2FzZSBYTUxfU0NIRU1BU19BTllfTEFYOgorCSAgICByZXR1cm4gKEJBRF9DQVNUICJsYXgiKTsKKwljYXNlIFhNTF9TQ0hFTUFTX0FOWV9TVFJJQ1Q6CisJICAgIHJldHVybiAoQkFEX0NBU1QgInN0cmljdCIpOworCWRlZmF1bHQ6CisJICAgIHJldHVybiAoQkFEX0NBU1QgImludmFsaWQgcHJvY2VzcyBjb250ZW50cyIpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3BFeHQ6CisgKiBAdmFsOiB0aGUgcHJlY29tcHV0ZWQgdmFsdWUKKyAqIEByZXRWYWx1ZTogdGhlIHJldHVybmVkIHZhbHVlCisgKiBAd3M6IHRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlCisgKgorICogR2V0IGEgdGhlIGNvbm9uaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUuCisgKiBUaGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSByZXR1cm5lZCByZXRWYWx1ZS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbHVlIGNvdWxkIGJlIGJ1aWx0IGFuZCAtMSBpbiBjYXNlIG9mCisgKiAgICAgICAgIEFQSSBlcnJvcnMgb3IgaWYgdGhlIHZhbHVlIHR5cGUgaXMgbm90IHN1cHBvcnRlZCB5ZXQuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUdldENhbm9uVmFsdWVXaHRzcEV4dCh4bWxTY2hlbWFWYWxQdHIgdmFsLAorCQkJICAgICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3MsCisJCQkgICAgICAgeG1sQ2hhciAqKnJldFZhbHVlKQoreworICAgIGludCBsaXN0OworICAgIHhtbFNjaGVtYVZhbFR5cGUgdmFsVHlwZTsKKyAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwgKnZhbHVlMiA9IE5VTEw7CisKKworICAgIGlmICgocmV0VmFsdWUgPT0gTlVMTCkgfHwgKHZhbCA9PSBOVUxMKSkKKwlyZXR1cm4gKC0xKTsKKyAgICBsaXN0ID0geG1sU2NoZW1hVmFsdWVHZXROZXh0KHZhbCkgPyAxIDogMDsKKyAgICAqcmV0VmFsdWUgPSBOVUxMOworICAgIGRvIHsKKwl2YWx1ZSA9IE5VTEw7CisJdmFsVHlwZSA9IHhtbFNjaGVtYUdldFZhbFR5cGUodmFsKTsKKwlzd2l0Y2ggKHZhbFR5cGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19TVFJJTkc6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTk9STVNUUklORzoKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFOgorCQl2YWx1ZSA9IHhtbFNjaGVtYVZhbHVlR2V0QXNTdHJpbmcodmFsKTsKKwkJaWYgKHZhbHVlICE9IE5VTEwpIHsKKwkJICAgIGlmICh3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UpCisJCQl2YWx1ZTIgPSB4bWxTY2hlbWFDb2xsYXBzZVN0cmluZyh2YWx1ZSk7CisJCSAgICBlbHNlIGlmICh3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRSkKKwkJCXZhbHVlMiA9IHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlKHZhbHVlKTsKKwkJICAgIGlmICh2YWx1ZTIgIT0gTlVMTCkKKwkJCXZhbHVlID0gdmFsdWUyOworCQl9CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlpZiAoeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZSh2YWwsICZ2YWx1ZTIpID09IC0xKSB7CisJCSAgICBpZiAodmFsdWUyICE9IE5VTEwpCisJCQl4bWxGcmVlKCh4bWxDaGFyICopIHZhbHVlMik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJCXZhbHVlID0gdmFsdWUyOworCX0KKwlpZiAoKnJldFZhbHVlID09IE5VTEwpCisJICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisJCWlmICghIGxpc3QpCisJCSAgICAqcmV0VmFsdWUgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIiIpOworCSAgICB9IGVsc2UKKwkJKnJldFZhbHVlID0geG1sU3RyZHVwKHZhbHVlKTsKKwllbHNlIGlmICh2YWx1ZSAhPSBOVUxMKSB7CisJICAgIC8qIExpc3QuICovCisJICAgICpyZXRWYWx1ZSA9IHhtbFN0cmNhdCgoeG1sQ2hhciAqKSAqcmV0VmFsdWUsIEJBRF9DQVNUICIgIik7CisJICAgICpyZXRWYWx1ZSA9IHhtbFN0cmNhdCgoeG1sQ2hhciAqKSAqcmV0VmFsdWUsIHZhbHVlKTsKKwl9CisJRlJFRV9BTkRfTlVMTCh2YWx1ZTIpCisJdmFsID0geG1sU2NoZW1hVmFsdWVHZXROZXh0KHZhbCk7CisgICAgfSB3aGlsZSAodmFsICE9IE5VTEwpOworCisgICAgcmV0dXJuICgwKTsKK2ludGVybmFsX2Vycm9yOgorICAgIGlmICgqcmV0VmFsdWUgIT0gTlVMTCkKKwl4bWxGcmVlKCh4bWxDaGFyICopICgqcmV0VmFsdWUpKTsKKyAgICBpZiAodmFsdWUyICE9IE5VTEwpCisJeG1sRnJlZSgoeG1sQ2hhciAqKSB2YWx1ZTIpOworICAgIHJldHVybiAoLTEpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZvcm1hdEl0ZW1Gb3JSZXBvcnQ6CisgKiBAYnVmOiB0aGUgc3RyaW5nIGJ1ZmZlcgorICogQGl0ZW1EZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgaXRlbQorICogQGl0ZW1OYW1lOiB0aGUgbmFtZSBvZiB0aGUgaXRlbQorICogQGl0ZW06IHRoZSBpdGVtIGFzIGFuIG9iamVjdAorICogQGl0ZW1Ob2RlOiB0aGUgbm9kZSBvZiB0aGUgaXRlbQorICogQGxvY2FsOiB0aGUgbG9jYWwgbmFtZQorICogQHBhcnNpbmc6IGlmIHRoZSBmdW5jdGlvbiBpcyB1c2VkIGR1cmluZyB0aGUgcGFyc2UKKyAqCisgKiBSZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGl0ZW0gdXNlZAorICogZm9yIGVycm9yIHJlcG9ydHMuCisgKgorICogVGhlIGZvbGxvd2luZyBvcmRlciBpcyB1c2VkIHRvIGJ1aWxkIHRoZSByZXN1bHRpbmcKKyAqIGRlc2lnbmF0aW9uIGlmIHRoZSBhcmd1bWVudHMgYXJlIG5vdCBOVUxMOgorICogMWEuIElmIGl0ZW1EZXMgbm90IE5VTEwgLT4gaXRlbURlcworICogMWIuIElmIChpdGVtRGVzIG5vdCBOVUxMKSBhbmQgKGl0ZW1OYW1lIG5vdCBOVUxMKQorICogICAgIC0+IGl0ZW1EZXMgKyBpdGVtTmFtZQorICogMi4gSWYgdGhlIHByZWNlZGluZyB3YXMgTlVMTCBhbmQgKGl0ZW0gbm90IE5VTEwpIC0+IGl0ZW0KKyAqIDMuIElmIHRoZSBwcmVjZWRpbmcgd2FzIE5VTEwgYW5kIChpdGVtTm9kZSBub3QgTlVMTCkgLT4gaXRlbU5vZGUKKyAqCisgKiBJZiB0aGUgaXRlbU5vZGUgaXMgYW4gYXR0cmlidXRlIG5vZGUsIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIHJlc3VsdC4KKyAqCisgKiBSZXR1cm5zIHRoZSBmb3JtYXR0ZWQgc3RyaW5nIGFuZCBzZXRzIEBidWYgdG8gdGhlIHJlc3VsdGluZyB2YWx1ZS4KKyAqLworc3RhdGljIHhtbENoYXIqCit4bWxTY2hlbWFGb3JtYXRJdGVtRm9yUmVwb3J0KHhtbENoYXIgKipidWYsCisJCSAgICAgY29uc3QgeG1sQ2hhciAqaXRlbURlcywKKwkJICAgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgaXRlbSwKKwkJICAgICB4bWxOb2RlUHRyIGl0ZW1Ob2RlKQoreworICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisgICAgaW50IG5hbWVkID0gMTsKKworICAgIGlmICgqYnVmICE9IE5VTEwpIHsKKwl4bWxGcmVlKCpidWYpOworCSpidWYgPSBOVUxMOworICAgIH0KKworICAgIGlmIChpdGVtRGVzICE9IE5VTEwpIHsKKwkqYnVmID0geG1sU3RyZHVwKGl0ZW1EZXMpOworICAgIH0gZWxzZSBpZiAoaXRlbSAhPSBOVUxMKSB7CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQkFTSUM6IHsKKwkgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlID0gV1hTX1RZUEVfQ0FTVCBpdGVtOworCisJICAgIGlmIChXWFNfSVNfQVRPTUlDKHR5cGUpKQorCQkqYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJhdG9taWMgdHlwZSAneHM6Iik7CisJICAgIGVsc2UgaWYgKFdYU19JU19MSVNUKHR5cGUpKQorCQkqYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJsaXN0IHR5cGUgJ3hzOiIpOworCSAgICBlbHNlIGlmIChXWFNfSVNfVU5JT04odHlwZSkpCisJCSpidWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgInVuaW9uIHR5cGUgJ3hzOiIpOworCSAgICBlbHNlCisJCSpidWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgInNpbXBsZSB0eXBlICd4czoiKTsKKwkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCB0eXBlLT5uYW1lKTsKKwkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiJyIpOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRTogeworCSAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUgPSBXWFNfVFlQRV9DQVNUIGl0ZW07CisKKwkgICAgaWYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwpIHsKKwkJKmJ1ZiA9IHhtbFN0cmR1cChCQURfQ0FTVCIiKTsKKwkgICAgfSBlbHNlIHsKKwkJKmJ1ZiA9IHhtbFN0cmR1cChCQURfQ0FTVCAibG9jYWwgIik7CisJICAgIH0KKwkgICAgaWYgKFdYU19JU19BVE9NSUModHlwZSkpCisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgImF0b21pYyB0eXBlIik7CisJICAgIGVsc2UgaWYgKFdYU19JU19MSVNUKHR5cGUpKQorCQkqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICJsaXN0IHR5cGUiKTsKKwkgICAgZWxzZSBpZiAoV1hTX0lTX1VOSU9OKHR5cGUpKQorCQkqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICJ1bmlvbiB0eXBlIik7CisJICAgIGVsc2UKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAic2ltcGxlIHR5cGUiKTsKKwkgICAgaWYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwpIHsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiICciKTsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCB0eXBlLT5uYW1lKTsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiJyIpOworCSAgICB9CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDogeworCSAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUgPSBXWFNfVFlQRV9DQVNUIGl0ZW07CisKKwkgICAgaWYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwpCisJCSpidWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIiIpOworCSAgICBlbHNlCisJCSpidWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgImxvY2FsICIpOworCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICJjb21wbGV4IHR5cGUiKTsKKwkgICAgaWYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwpIHsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiICciKTsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCB0eXBlLT5uYW1lKTsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiJyIpOworCSAgICB9CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRTogeworCQl4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgYXVzZTsKKworCQlhdXNlID0gV1hTX0FUVFJfVVNFX0NBU1QgaXRlbTsKKwkJKmJ1ZiA9IHhtbFN0cmR1cChCQURfQ0FTVCAiYXR0cmlidXRlIHVzZSAiKTsKKwkJaWYgKFdYU19BVFRSVVNFX0RFQ0woYXVzZSkgIT0gTlVMTCkgeworCQkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiJyIpOworCQkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLAorCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgV1hTX0FUVFJVU0VfREVDTChhdXNlKSkpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJCQkqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICInIik7CisJCX0gZWxzZSB7CisJCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICIodW5rbm93bikiKTsKKwkJfQorCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURTogeworCQl4bWxTY2hlbWFBdHRyaWJ1dGVQdHIgYXR0cjsKKworCQlhdHRyID0gKHhtbFNjaGVtYUF0dHJpYnV0ZVB0cikgaXRlbTsKKwkJKmJ1ZiA9IHhtbFN0cmR1cChCQURfQ0FTVCAiYXR0cmlidXRlIGRlY2wuIik7CisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiAnIik7CisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJICAgIGF0dHItPnRhcmdldE5hbWVzcGFjZSwgYXR0ci0+bmFtZSkpOworCQlGUkVFX0FORF9OVUxMKHN0cikKKwkJICAgICpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiciKTsKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUDoKKwkgICAgeG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oYnVmLCBpdGVtKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVDogeworCQl4bWxTY2hlbWFFbGVtZW50UHRyIGVsZW07CisKKwkJZWxlbSA9ICh4bWxTY2hlbWFFbGVtZW50UHRyKSBpdGVtOworCQkqYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJlbGVtZW50IGRlY2wuIik7CisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiAnIik7CisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJICAgIGVsZW0tPnRhcmdldE5hbWVzcGFjZSwgZWxlbS0+bmFtZSkpOworCQkqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICInIik7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUY6CisJICAgIGlmIChpdGVtLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9JRENfVU5JUVVFKQorCQkqYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJ1bmlxdWUgJyIpOworCSAgICBlbHNlIGlmIChpdGVtLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZKQorCQkqYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJrZXkgJyIpOworCSAgICBlbHNlCisJCSpidWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgImtleVJlZiAnIik7CisJICAgICpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgKCh4bWxTY2hlbWFJRENQdHIpIGl0ZW0pLT5uYW1lKTsKKwkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiJyIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTlk6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQU5ZX0FUVFJJQlVURToKKwkgICAgKmJ1ZiA9IHhtbFN0cmR1cCh4bWxTY2hlbWFXaWxkY2FyZFBDVG9TdHJpbmcoCisJCSAgICAoKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSBpdGVtKS0+cHJvY2Vzc0NvbnRlbnRzKSk7CisJICAgICpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiB3aWxkY2FyZCIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkU6CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRToKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUzoKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM6CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1BBVFRFUk46CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEg6CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDoKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIOgorCSAgICAqYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJmYWNldCAnIik7CisJICAgICpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgeG1sU2NoZW1hRmFjZXRUeXBlVG9TdHJpbmcoaXRlbS0+dHlwZSkpOworCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICInIik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOiB7CisJCSpidWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIm1vZGVsIGdyb3VwIGRlZi4iKTsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiICciKTsKKwkJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCBpdGVtKSk7CisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiciKTsKKwkJRlJFRV9BTkRfTlVMTChzdHIpCisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0U6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FMTDoKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRToKKwkgICAgKmJ1ZiA9IHhtbFN0cmR1cChXWFNfSVRFTV9UWVBFX05BTUUoaXRlbSkpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTjogeworCQkqYnVmID0geG1sU3RyZHVwKFdYU19JVEVNX1RZUEVfTkFNRShpdGVtKSk7CisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiAnIik7CisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgaXRlbSkpOworCQkqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICInIik7CisJCUZSRUVfQU5EX05VTEwoc3RyKTsKKwkgICAgfQorCWRlZmF1bHQ6CisJICAgIG5hbWVkID0gMDsKKwl9CisgICAgfSBlbHNlCisJbmFtZWQgPSAwOworCisgICAgaWYgKChuYW1lZCA9PSAwKSAmJiAoaXRlbU5vZGUgIT0gTlVMTCkpIHsKKwl4bWxOb2RlUHRyIGVsZW07CisKKwlpZiAoaXRlbU5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKQorCSAgICBlbGVtID0gaXRlbU5vZGUtPnBhcmVudDsKKwllbHNlCisJICAgIGVsZW0gPSBpdGVtTm9kZTsKKwkqYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJFbGVtZW50ICciKTsKKwlpZiAoZWxlbS0+bnMgIT0gTlVMTCkgeworCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsCisJCXhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIGVsZW0tPm5zLT5ocmVmLCBlbGVtLT5uYW1lKSk7CisJICAgIEZSRUVfQU5EX05VTEwoc3RyKQorCX0gZWxzZQorCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIGVsZW0tPm5hbWUpOworCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiciKTsKKworICAgIH0KKyAgICBpZiAoKGl0ZW1Ob2RlICE9IE5VTEwpICYmIChpdGVtTm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpKSB7CisJKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiLCBhdHRyaWJ1dGUgJyIpOworCWlmIChpdGVtTm9kZS0+bnMgIT0gTlVMTCkgeworCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsCisJCWl0ZW1Ob2RlLT5ucy0+aHJlZiwgaXRlbU5vZGUtPm5hbWUpKTsKKwkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJfSBlbHNlCisJICAgICpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgaXRlbU5vZGUtPm5hbWUpOworCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiciKTsKKyAgICB9CisgICAgRlJFRV9BTkRfTlVMTChzdHIpCisKKyAgICByZXR1cm4gKCpidWYpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZvcm1hdEZhY2V0RW51bVNldDoKKyAqIEBidWY6IHRoZSBzdHJpbmcgYnVmZmVyCisgKiBAdHlwZTogdGhlIHR5cGUgaG9sZGluZyB0aGUgZW51bWVyYXRpb24gZmFjZXRzCisgKgorICogQnVpbGRzIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgYWxsIGVudW1lcmF0aW9uIGVsZW1lbnRzLgorICoKKyAqIFJldHVybnMgYSBzdHJpbmcgb2YgYWxsIGVudW1lcmF0aW9uIGVsZW1lbnRzLgorICovCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFGb3JtYXRGYWNldEVudW1TZXQoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkJICAgIHhtbENoYXIgKipidWYsIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsKKyAgICB4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIHdzOworICAgIHhtbENoYXIgKnZhbHVlID0gTlVMTDsKKyAgICBpbnQgcmVzLCBmb3VuZCA9IDA7CisKKyAgICBpZiAoKmJ1ZiAhPSBOVUxMKQorCXhtbEZyZWUoKmJ1Zik7CisgICAgKmJ1ZiA9IE5VTEw7CisKKyAgICBkbyB7CisJLyoKKwkqIFVzZSB0aGUgd2hpdGVzcGFjZSB0eXBlIG9mIHRoZSBiYXNlIHR5cGUuCisJKi8KKwl3cyA9IHhtbFNjaGVtYUdldFdoaXRlU3BhY2VGYWNldFZhbHVlKHR5cGUtPmJhc2VUeXBlKTsKKwlmb3IgKGZhY2V0ID0gdHlwZS0+ZmFjZXRzOyBmYWNldCAhPSBOVUxMOyBmYWNldCA9IGZhY2V0LT5uZXh0KSB7CisJICAgIGlmIChmYWNldC0+dHlwZSAhPSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OKQorCQljb250aW51ZTsKKwkgICAgZm91bmQgPSAxOworCSAgICByZXMgPSB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3BFeHQoZmFjZXQtPnZhbCwKKwkJd3MsICZ2YWx1ZSk7CisJICAgIGlmIChyZXMgPT0gLTEpIHsKKwkJeG1sU2NoZW1hSW50ZXJuYWxFcnIoYWN0eHQsCisJCSAgICAieG1sU2NoZW1hRm9ybWF0RmFjZXRFbnVtU2V0IiwKKwkJICAgICJjb21wdXRlIHRoZSBjYW5vbmljYWwgbGV4aWNhbCByZXByZXNlbnRhdGlvbiIpOworCQlpZiAoKmJ1ZiAhPSBOVUxMKQorCQkgICAgeG1sRnJlZSgqYnVmKTsKKwkJKmJ1ZiA9IE5VTEw7CisJCXJldHVybiAoTlVMTCk7CisJICAgIH0KKwkgICAgaWYgKCpidWYgPT0gTlVMTCkKKwkJKmJ1ZiA9IHhtbFN0cmR1cChCQURfQ0FTVCAiJyIpOworCSAgICBlbHNlCisJCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiwgJyIpOworCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUIHZhbHVlKTsKKwkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiJyIpOworCSAgICBpZiAodmFsdWUgIT0gTlVMTCkgeworCQl4bWxGcmVlKCh4bWxDaGFyICopdmFsdWUpOworCQl2YWx1ZSA9IE5VTEw7CisJICAgIH0KKwl9CisJLyoKKwkqIFRoZSBlbnVtZXJhdGlvbiBmYWNldCBvZiBhIHR5cGUgcmVzdHJpY3RzIHRoZSBlbnVtZXJhdGlvbgorCSogZmFjZXQgb2YgdGhlIGFuY2VzdG9yIHR5cGU7IGkuZS4sIHN1Y2ggcmVzdHJpY3RlZCBlbnVtZXJhdGlvbnMKKwkqIGRvIG5vdCBiZWxvbmcgdG8gdGhlIHNldCBvZiB0aGUgZ2l2ZW4gdHlwZS4gVGh1cyB3ZSBicmVhaworCSogb24gdGhlIGZpcnN0IGZvdW5kIGVudW1lcmF0aW9uLgorCSovCisJaWYgKGZvdW5kKQorCSAgICBicmVhazsKKwl0eXBlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgfSB3aGlsZSAoKHR5cGUgIT0gTlVMTCkgJiYgKHR5cGUtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSk7CisKKyAgICByZXR1cm4gKChjb25zdCB4bWxDaGFyICopICpidWYpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJCUVycm9yIGZ1bmN0aW9ucwkJCQkgICAgICAgICoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIDAKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFFcnJNZW1vcnkoY29uc3QgY2hhciAqbXNnKQoreworICAgIF9feG1sU2ltcGxlRXJyb3IoWE1MX0ZST01fU0NIRU1BU1AsIFhNTF9FUlJfTk9fTUVNT1JZLCBOVUxMLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgbXNnKTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hUFNpbXBsZUVycihjb25zdCBjaGFyICptc2cpCit7CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9TQ0hFTUFTUCwgWE1MX0VSUl9OT19NRU1PUlksIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICBtc2cpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBFcnJNZW1vcnk6CisgKiBAbm9kZTogYSBjb250ZXh0IG5vZGUKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGNvbmRpdGlvbgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hUEVyck1lbW9yeSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmV4dHJhLCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgaWYgKGN0eHQgIT0gTlVMTCkKKyAgICAgICAgY3R4dC0+bmJlcnJvcnMrKzsKKyAgICBfX3htbFNpbXBsZUVycm9yKFhNTF9GUk9NX1NDSEVNQVNQLCBYTUxfRVJSX05PX01FTU9SWSwgbm9kZSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgIGV4dHJhKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQRXJyOgorICogQGN0eHQ6IHRoZSBwYXJzaW5nIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgY29udGV4dCBub2RlCisgKiBAZXJyb3I6IHRoZSBlcnJvciBjb2RlCisgKiBAbXNnOiB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6IGV4dHJhIGRhdGEKKyAqIEBzdHIyOiBleHRyYSBkYXRhCisgKgorICogSGFuZGxlIGEgcGFyc2VyIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFQRXJyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgZXJyb3IsCisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3QgeG1sQ2hhciAqIHN0cjEsIGNvbnN0IHhtbENoYXIgKiBzdHIyKQoreworICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgY2hhbm5lbCA9IE5VTEw7CisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzY2hhbm5lbCA9IE5VTEw7CisgICAgdm9pZCAqZGF0YSA9IE5VTEw7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisgICAgICAgIGN0eHQtPm5iZXJyb3JzKys7CisJY3R4dC0+ZXJyID0gZXJyb3I7CisgICAgICAgIGNoYW5uZWwgPSBjdHh0LT5lcnJvcjsKKyAgICAgICAgZGF0YSA9IGN0eHQtPmVyckN0eHQ7CisJc2NoYW5uZWwgPSBjdHh0LT5zZXJyb3I7CisgICAgfQorICAgIF9feG1sUmFpc2VFcnJvcihzY2hhbm5lbCwgY2hhbm5lbCwgZGF0YSwgY3R4dCwgbm9kZSwgWE1MX0ZST01fU0NIRU1BU1AsCisgICAgICAgICAgICAgICAgICAgIGVycm9yLCBYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBzdHIxLCAoY29uc3QgY2hhciAqKSBzdHIyLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICBtc2csIHN0cjEsIHN0cjIpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBFcnIyOgorICogQGN0eHQ6IHRoZSBwYXJzaW5nIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgY29udGV4dCBub2RlCisgKiBAbm9kZTogdGhlIGN1cnJlbnQgY2hpbGQKKyAqIEBlcnJvcjogdGhlIGVycm9yIGNvZGUKKyAqIEBtc2c6IHRoZSBlcnJvciBtZXNzYWdlCisgKiBAc3RyMTogZXh0cmEgZGF0YQorICogQHN0cjI6IGV4dHJhIGRhdGEKKyAqCisgKiBIYW5kbGUgYSBwYXJzZXIgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBFcnIyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLAorICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBjaGlsZCwgaW50IGVycm9yLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICogc3RyMSwgY29uc3QgeG1sQ2hhciAqIHN0cjIpCit7CisgICAgaWYgKGNoaWxkICE9IE5VTEwpCisgICAgICAgIHhtbFNjaGVtYVBFcnIoY3R4dCwgY2hpbGQsIGVycm9yLCBtc2csIHN0cjEsIHN0cjIpOworICAgIGVsc2UKKyAgICAgICAgeG1sU2NoZW1hUEVycihjdHh0LCBub2RlLCBlcnJvciwgbXNnLCBzdHIxLCBzdHIyKTsKK30KKworCisvKioKKyAqIHhtbFNjaGVtYVBFcnJFeHQ6CisgKiBAY3R4dDogdGhlIHBhcnNpbmcgY29udGV4dAorICogQG5vZGU6IHRoZSBjb250ZXh0IG5vZGUKKyAqIEBlcnJvcjogdGhlIGVycm9yIGNvZGUKKyAqIEBzdHJEYXRhMTogZXh0cmEgZGF0YQorICogQHN0ckRhdGEyOiBleHRyYSBkYXRhCisgKiBAc3RyRGF0YTM6IGV4dHJhIGRhdGEKKyAqIEBtc2c6IHRoZSBtZXNzYWdlCisgKiBAc3RyMTogIGV4dHJhIHBhcmFtZXRlciBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICogQHN0cjI6ICBleHRyYSBwYXJhbWV0ZXIgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqIEBzdHIzOiAgZXh0cmEgcGFyYW1ldGVyIGZvciB0aGUgbWVzc2FnZSBkaXNwbGF5CisgKiBAc3RyNDogIGV4dHJhIHBhcmFtZXRlciBmb3IgdGhlIG1lc3NhZ2UgZGlzcGxheQorICogQHN0cjU6ICBleHRyYSBwYXJhbWV0ZXIgZm9yIHRoZSBtZXNzYWdlIGRpc3BsYXkKKyAqCisgKiBIYW5kbGUgYSBwYXJzZXIgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBFcnJFeHQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUsIGludCBlcnJvciwKKwkJY29uc3QgeG1sQ2hhciAqIHN0ckRhdGExLCBjb25zdCB4bWxDaGFyICogc3RyRGF0YTIsCisJCWNvbnN0IHhtbENoYXIgKiBzdHJEYXRhMywgY29uc3QgY2hhciAqbXNnLCBjb25zdCB4bWxDaGFyICogc3RyMSwKKwkJY29uc3QgeG1sQ2hhciAqIHN0cjIsIGNvbnN0IHhtbENoYXIgKiBzdHIzLCBjb25zdCB4bWxDaGFyICogc3RyNCwKKwkJY29uc3QgeG1sQ2hhciAqIHN0cjUpCit7CisKKyAgICB4bWxHZW5lcmljRXJyb3JGdW5jIGNoYW5uZWwgPSBOVUxMOworICAgIHhtbFN0cnVjdHVyZWRFcnJvckZ1bmMgc2NoYW5uZWwgPSBOVUxMOworICAgIHZvaWQgKmRhdGEgPSBOVUxMOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBjdHh0LT5uYmVycm9ycysrOworCWN0eHQtPmVyciA9IGVycm9yOworICAgICAgICBjaGFubmVsID0gY3R4dC0+ZXJyb3I7CisgICAgICAgIGRhdGEgPSBjdHh0LT5lcnJDdHh0OworCXNjaGFubmVsID0gY3R4dC0+c2Vycm9yOworICAgIH0KKyAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsIGNoYW5uZWwsIGRhdGEsIGN0eHQsIG5vZGUsIFhNTF9GUk9NX1NDSEVNQVNQLAorICAgICAgICAgICAgICAgICAgICBlcnJvciwgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgc3RyRGF0YTEsIChjb25zdCBjaGFyICopIHN0ckRhdGEyLAorCQkgICAgKGNvbnN0IGNoYXIgKikgc3RyRGF0YTMsIDAsIDAsIG1zZywgc3RyMSwgc3RyMiwKKwkJICAgIHN0cjMsIHN0cjQsIHN0cjUpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqIAkJCUFsbHJvdW5kIGVycm9yIGZ1bmN0aW9ucwkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxTY2hlbWFWVHlwZUVyck1lbW9yeToKKyAqIEBub2RlOiBhIGNvbnRleHQgbm9kZQorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFWRXJyTWVtb3J5KHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpleHRyYSwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgY3R4dC0+bmJlcnJvcnMrKzsKKyAgICAgICAgY3R4dC0+ZXJyID0gWE1MX1NDSEVNQVZfSU5URVJOQUw7CisgICAgfQorICAgIF9feG1sU2ltcGxlRXJyb3IoWE1MX0ZST01fU0NIRU1BU1YsIFhNTF9FUlJfTk9fTUVNT1JZLCBub2RlLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgZXh0cmEpOworfQorCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hUFNpbXBsZUludGVybmFsRXJyKHhtbE5vZGVQdHIgbm9kZSwKKwkJCSAgICBjb25zdCBjaGFyICptc2csIGNvbnN0IHhtbENoYXIgKnN0cikKK3sKKyAgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9TQ0hFTUFTUCwgWE1MX1NDSEVNQVBfSU5URVJOQUwsIG5vZGUsCisJIG1zZywgKGNvbnN0IGNoYXIgKikgc3RyKTsKK30KKworI2RlZmluZSBXWFNfRVJST1JfVFlQRV9FUlJPUiAxCisjZGVmaW5lIFdYU19FUlJPUl9UWVBFX1dBUk5JTkcgMgorLyoqCisgKiB4bWxTY2hlbWFFcnIzOgorICogQGN0eHQ6IHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgY29udGV4dCBub2RlCisgKiBAZXJyb3I6IHRoZSBlcnJvciBjb2RlCisgKiBAbXNnOiB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6IGV4dHJhIGRhdGEKKyAqIEBzdHIyOiBleHRyYSBkYXRhCisgKiBAc3RyMzogZXh0cmEgZGF0YQorICoKKyAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUVycjRMaW5lKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBjdHh0LAorCQkgIHhtbEVycm9yTGV2ZWwgZXJyb3JMZXZlbCwKKwkJICBpbnQgZXJyb3IsIHhtbE5vZGVQdHIgbm9kZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKm1zZywKKwkJICBjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyLAorCQkgIGNvbnN0IHhtbENoYXIgKnN0cjMsIGNvbnN0IHhtbENoYXIgKnN0cjQpCit7CisgICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzY2hhbm5lbCA9IE5VTEw7CisgICAgeG1sR2VuZXJpY0Vycm9yRnVuYyBjaGFubmVsID0gTlVMTDsKKyAgICB2b2lkICpkYXRhID0gTlVMTDsKKworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwlpZiAoY3R4dC0+dHlwZSA9PSBYTUxfU0NIRU1BX0NUWFRfVkFMSURBVE9SKSB7CisJICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpIGN0eHQ7CisJICAgIGNvbnN0IGNoYXIgKmZpbGUgPSBOVUxMOworCSAgICBpZiAoZXJyb3JMZXZlbCAhPSBYTUxfRVJSX1dBUk5JTkcpIHsKKwkJdmN0eHQtPm5iZXJyb3JzKys7CisJCXZjdHh0LT5lcnIgPSBlcnJvcjsKKwkJY2hhbm5lbCA9IHZjdHh0LT5lcnJvcjsKKwkgICAgfSBlbHNlIHsKKwkJY2hhbm5lbCA9IHZjdHh0LT53YXJuaW5nOworCSAgICB9CisJICAgIHNjaGFubmVsID0gdmN0eHQtPnNlcnJvcjsKKwkgICAgZGF0YSA9IHZjdHh0LT5lcnJDdHh0OworCisJICAgIC8qCisJICAgICogRXJyb3Igbm9kZS4gSWYgd2Ugc3BlY2lmeSBhIGxpbmUgbnVtYmVyLCB0aGVuCisJICAgICogZG8gbm90IGNoYW5uZWwgYW55IG5vZGUgdG8gdGhlIGVycm9yIGZ1bmN0aW9uLgorCSAgICAqLworCSAgICBpZiAobGluZSA9PSAwKSB7CisJCWlmICgobm9kZSA9PSBOVUxMKSAmJgorCQkgICAgKHZjdHh0LT5kZXB0aCA+PSAwKSAmJgorCQkgICAgKHZjdHh0LT5pbm9kZSAhPSBOVUxMKSkgeworCQkgICAgbm9kZSA9IHZjdHh0LT5pbm9kZS0+bm9kZTsKKwkJfQorCQkvKgorCQkqIEdldCBmaWxlbmFtZSBhbmQgbGluZSBpZiBubyBub2RlLXRyZWUuCisJCSovCisJCWlmICgobm9kZSA9PSBOVUxMKSAmJgorCQkgICAgKHZjdHh0LT5wYXJzZXJDdHh0ICE9IE5VTEwpICYmCisJCSAgICAodmN0eHQtPnBhcnNlckN0eHQtPmlucHV0ICE9IE5VTEwpKSB7CisJCSAgICBmaWxlID0gdmN0eHQtPnBhcnNlckN0eHQtPmlucHV0LT5maWxlbmFtZTsKKwkJICAgIGxpbmUgPSB2Y3R4dC0+cGFyc2VyQ3R4dC0+aW5wdXQtPmxpbmU7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkJLyoKKwkJKiBPdmVycmlkZSB0aGUgZ2l2ZW4gbm9kZSdzIChpZiBhbnkpIHBvc2l0aW9uCisJCSogYW5kIGNoYW5uZWwgb25seSB0aGUgZ2l2ZW4gbGluZSBudW1iZXIuCisJCSovCisJCW5vZGUgPSBOVUxMOworCQkvKgorCQkqIEdldCBmaWxlbmFtZS4KKwkJKi8KKwkJaWYgKHZjdHh0LT5kb2MgIT0gTlVMTCkKKwkJICAgIGZpbGUgPSAoY29uc3QgY2hhciAqKSB2Y3R4dC0+ZG9jLT5VUkw7CisJCWVsc2UgaWYgKCh2Y3R4dC0+cGFyc2VyQ3R4dCAhPSBOVUxMKSAmJgorCQkgICAgKHZjdHh0LT5wYXJzZXJDdHh0LT5pbnB1dCAhPSBOVUxMKSkKKwkJICAgIGZpbGUgPSB2Y3R4dC0+cGFyc2VyQ3R4dC0+aW5wdXQtPmZpbGVuYW1lOworCSAgICB9CisJICAgIF9feG1sUmFpc2VFcnJvcihzY2hhbm5lbCwgY2hhbm5lbCwgZGF0YSwgY3R4dCwKKwkJbm9kZSwgWE1MX0ZST01fU0NIRU1BU1YsCisJCWVycm9yLCBlcnJvckxldmVsLCBmaWxlLCBsaW5lLAorCQkoY29uc3QgY2hhciAqKSBzdHIxLCAoY29uc3QgY2hhciAqKSBzdHIyLAorCQkoY29uc3QgY2hhciAqKSBzdHIzLCAwLCAwLCBtc2csIHN0cjEsIHN0cjIsIHN0cjMsIHN0cjQpOworCisJfSBlbHNlIGlmIChjdHh0LT50eXBlID09IFhNTF9TQ0hFTUFfQ1RYVF9QQVJTRVIpIHsKKwkgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCA9ICh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyKSBjdHh0OworCSAgICBpZiAoZXJyb3JMZXZlbCAhPSBYTUxfRVJSX1dBUk5JTkcpIHsKKwkJcGN0eHQtPm5iZXJyb3JzKys7CisJCXBjdHh0LT5lcnIgPSBlcnJvcjsKKwkJY2hhbm5lbCA9IHBjdHh0LT5lcnJvcjsKKwkgICAgfSBlbHNlIHsKKwkJY2hhbm5lbCA9IHBjdHh0LT53YXJuaW5nOworCSAgICB9CisJICAgIHNjaGFubmVsID0gcGN0eHQtPnNlcnJvcjsKKwkgICAgZGF0YSA9IHBjdHh0LT5lcnJDdHh0OworCSAgICBfX3htbFJhaXNlRXJyb3Ioc2NoYW5uZWwsIGNoYW5uZWwsIGRhdGEsIGN0eHQsCisJCW5vZGUsIFhNTF9GUk9NX1NDSEVNQVNQLCBlcnJvciwKKwkJZXJyb3JMZXZlbCwgTlVMTCwgMCwKKwkJKGNvbnN0IGNoYXIgKikgc3RyMSwgKGNvbnN0IGNoYXIgKikgc3RyMiwKKwkJKGNvbnN0IGNoYXIgKikgc3RyMywgMCwgMCwgbXNnLCBzdHIxLCBzdHIyLCBzdHIzLCBzdHI0KTsKKwl9IGVsc2UgeworCSAgICBUT0RPCisJfQorICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFFcnIzOgorICogQGN0eHQ6IHRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgY29udGV4dCBub2RlCisgKiBAZXJyb3I6IHRoZSBlcnJvciBjb2RlCisgKiBAbXNnOiB0aGUgZXJyb3IgbWVzc2FnZQorICogQHN0cjE6IGV4dHJhIGRhdGEKKyAqIEBzdHIyOiBleHRyYSBkYXRhCisgKiBAc3RyMzogZXh0cmEgZGF0YQorICoKKyAqIEhhbmRsZSBhIHZhbGlkYXRpb24gZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUVycjMoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCSAgICAgIGludCBlcnJvciwgeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFyICptc2csCisJICAgICAgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMiwgY29uc3QgeG1sQ2hhciAqc3RyMykKK3sKKyAgICB4bWxTY2hlbWFFcnI0TGluZShhY3R4dCwgWE1MX0VSUl9FUlJPUiwgZXJyb3IsIG5vZGUsIDAsCisJbXNnLCBzdHIxLCBzdHIyLCBzdHIzLCBOVUxMKTsKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYUVycjQoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCSAgICAgIGludCBlcnJvciwgeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFyICptc2csCisJICAgICAgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMiwKKwkgICAgICBjb25zdCB4bWxDaGFyICpzdHIzLCBjb25zdCB4bWxDaGFyICpzdHI0KQoreworICAgIHhtbFNjaGVtYUVycjRMaW5lKGFjdHh0LCBYTUxfRVJSX0VSUk9SLCBlcnJvciwgbm9kZSwgMCwKKwltc2csIHN0cjEsIHN0cjIsIHN0cjMsIHN0cjQpOworfQorCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRXJyKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBhY3R4dCwKKwkgICAgIGludCBlcnJvciwgeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFyICptc2csCisJICAgICBjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyKQoreworICAgIHhtbFNjaGVtYUVycjQoYWN0eHQsIGVycm9yLCBub2RlLCBtc2csIHN0cjEsIHN0cjIsIE5VTEwsIE5VTEwpOworfQorCitzdGF0aWMgeG1sQ2hhciAqCit4bWxTY2hlbWFGb3JtYXROb2RlRm9yRXJyb3IoeG1sQ2hhciAqKiBtc2csCisJCQkgICAgeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkJICAgIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCisgICAgKm1zZyA9IE5VTEw7CisgICAgaWYgKChub2RlICE9IE5VTEwpICYmCisJKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkobm9kZS0+dHlwZSAhPSBYTUxfQVRUUklCVVRFX05PREUpKQorICAgIHsKKwkvKgorCSogRG9uJ3QgdHJ5IHRvIGZvcm1hdCBvdGhlciBub2RlcyB0aGFuIGVsZW1lbnQgYW5kCisJKiBhdHRyaWJ1dGUgbm9kZXMuCisJKiBQbGF5IHNhdmUgYW5kIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuCisJKi8KKwkqbXNnID0geG1sU3RyZHVwKEJBRF9DQVNUICIiKTsKKwlyZXR1cm4oKm1zZyk7CisgICAgfQorICAgIGlmIChub2RlICE9IE5VTEwpIHsKKwkvKgorCSogV29yayBvbiB0cmVlIG5vZGVzLgorCSovCisJaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJICAgIHhtbE5vZGVQdHIgZWxlbSA9IG5vZGUtPnBhcmVudDsKKworCSAgICAqbXNnID0geG1sU3RyZHVwKEJBRF9DQVNUICJFbGVtZW50ICciKTsKKwkgICAgaWYgKGVsZW0tPm5zICE9IE5VTEwpCisJCSptc2cgPSB4bWxTdHJjYXQoKm1zZywgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJICAgIGVsZW0tPm5zLT5ocmVmLCBlbGVtLT5uYW1lKSk7CisJICAgIGVsc2UKKwkJKm1zZyA9IHhtbFN0cmNhdCgqbXNnLCB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCQkgICAgTlVMTCwgZWxlbS0+bmFtZSkpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cik7CisJICAgICptc2cgPSB4bWxTdHJjYXQoKm1zZywgQkFEX0NBU1QgIicsICIpOworCSAgICAqbXNnID0geG1sU3RyY2F0KCptc2csIEJBRF9DQVNUICJhdHRyaWJ1dGUgJyIpOworCX0gZWxzZSB7CisJICAgICptc2cgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIkVsZW1lbnQgJyIpOworCX0KKwlpZiAobm9kZS0+bnMgIT0gTlVMTCkKKwkgICAgKm1zZyA9IHhtbFN0cmNhdCgqbXNnLCB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCSAgICBub2RlLT5ucy0+aHJlZiwgbm9kZS0+bmFtZSkpOworCWVsc2UKKwkgICAgKm1zZyA9IHhtbFN0cmNhdCgqbXNnLCB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCSAgICBOVUxMLCBub2RlLT5uYW1lKSk7CisJRlJFRV9BTkRfTlVMTChzdHIpOworCSptc2cgPSB4bWxTdHJjYXQoKm1zZywgQkFEX0NBU1QgIic6ICIpOworICAgIH0gZWxzZSBpZiAoYWN0eHQtPnR5cGUgPT0gWE1MX1NDSEVNQV9DVFhUX1ZBTElEQVRPUikgeworCXhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpIGFjdHh0OworCS8qCisJKiBXb3JrIG9uIG5vZGUgaW5mb3MuCisJKi8KKwlpZiAodmN0eHQtPmlub2RlLT5ub2RlVHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpIHsKKwkgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgaWVsZW0gPQorCQl2Y3R4dC0+ZWxlbUluZm9zW3ZjdHh0LT5kZXB0aF07CisKKwkgICAgKm1zZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiRWxlbWVudCAnIik7CisJICAgICptc2cgPSB4bWxTdHJjYXQoKm1zZywgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJaWVsZW0tPm5zTmFtZSwgaWVsZW0tPmxvY2FsTmFtZSkpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cik7CisJICAgICptc2cgPSB4bWxTdHJjYXQoKm1zZywgQkFEX0NBU1QgIicsICIpOworCSAgICAqbXNnID0geG1sU3RyY2F0KCptc2csIEJBRF9DQVNUICJhdHRyaWJ1dGUgJyIpOworCX0gZWxzZSB7CisJICAgICptc2cgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIkVsZW1lbnQgJyIpOworCX0KKwkqbXNnID0geG1sU3RyY2F0KCptc2csIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsCisJICAgIHZjdHh0LT5pbm9kZS0+bnNOYW1lLCB2Y3R4dC0+aW5vZGUtPmxvY2FsTmFtZSkpOworCUZSRUVfQU5EX05VTEwoc3RyKTsKKwkqbXNnID0geG1sU3RyY2F0KCptc2csIEJBRF9DQVNUICInOiAiKTsKKyAgICB9IGVsc2UgaWYgKGFjdHh0LT50eXBlID09IFhNTF9TQ0hFTUFfQ1RYVF9QQVJTRVIpIHsKKwkvKgorCSogSG1tLCBubyBub2RlIHdoaWxlIHBhcnNpbmc/CisJKiBSZXR1cm4gYW4gZW1wdHkgc3RyaW5nLCBpbiBjYXNlIE5VTEwgd2lsbCBicmVhayBzb21ldGhpbmcuCisJKi8KKwkqbXNnID0geG1sU3RyZHVwKEJBRF9DQVNUICIiKTsKKyAgICB9IGVsc2UgeworCVRPRE8KKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICogVkFMIFRPRE86IFRoZSBvdXRwdXQgb2YgdGhlIGdpdmVuIHNjaGVtYSBjb21wb25lbnQgaXMgY3VycmVudGx5CisgICAgKiBkaXNhYmxlZC4KKyAgICAqLworI2lmIDAKKyAgICBpZiAoKHR5cGUgIT0gTlVMTCkgJiYgKHhtbFNjaGVtYUlzR2xvYmFsSXRlbSh0eXBlKSkpIHsKKwkqbXNnID0geG1sU3RyY2F0KCptc2csIEJBRF9DQVNUICIgWyIpOworCSptc2cgPSB4bWxTdHJjYXQoKm1zZywgeG1sU2NoZW1hRm9ybWF0SXRlbUZvclJlcG9ydCgmc3RyLAorCSAgICBOVUxMLCB0eXBlLCBOVUxMLCAwKSk7CisJRlJFRV9BTkRfTlVMTChzdHIpCisJKm1zZyA9IHhtbFN0cmNhdCgqbXNnLCBCQURfQ0FTVCAiXSIpOworICAgIH0KKyNlbmRpZgorICAgIHJldHVybiAoKm1zZyk7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJbnRlcm5hbEVycjIoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkgICAgIGNvbnN0IGNoYXIgKmZ1bmNOYW1lLAorCQkgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsCisJCSAgICAgY29uc3QgeG1sQ2hhciAqc3RyMSwKKwkJICAgICBjb25zdCB4bWxDaGFyICpzdHIyKQoreworICAgIHhtbENoYXIgKm1zZyA9IE5VTEw7CisKKyAgICBpZiAoYWN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIG1zZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiSW50ZXJuYWwgZXJyb3I6ICIpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUIGZ1bmNOYW1lKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLCAiKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCBtZXNzYWdlKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLlxuIik7CisKKyAgICBpZiAoYWN0eHQtPnR5cGUgPT0gWE1MX1NDSEVNQV9DVFhUX1ZBTElEQVRPUikKKwl4bWxTY2hlbWFFcnIoYWN0eHQsIFhNTF9TQ0hFTUFWX0lOVEVSTkFMLCBOVUxMLAorCSAgICAoY29uc3QgY2hhciAqKSBtc2csIHN0cjEsIHN0cjIpOworCisgICAgZWxzZSBpZiAoYWN0eHQtPnR5cGUgPT0gWE1MX1NDSEVNQV9DVFhUX1BBUlNFUikKKwl4bWxTY2hlbWFFcnIoYWN0eHQsIFhNTF9TQ0hFTUFQX0lOVEVSTkFMLCBOVUxMLAorCSAgICAoY29uc3QgY2hhciAqKSBtc2csIHN0cjEsIHN0cjIpOworCisgICAgRlJFRV9BTkRfTlVMTChtc2cpCit9CisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJbnRlcm5hbEVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCisJCSAgICAgY29uc3QgY2hhciAqZnVuY05hbWUsCisJCSAgICAgY29uc3QgY2hhciAqbWVzc2FnZSkKK3sKKyAgICB4bWxTY2hlbWFJbnRlcm5hbEVycjIoYWN0eHQsIGZ1bmNOYW1lLCBtZXNzYWdlLCBOVUxMLCBOVUxMKTsKK30KKworI2lmIDAKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFQSW50ZXJuYWxFcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJICAgICBjb25zdCBjaGFyICpmdW5jTmFtZSwKKwkJICAgICBjb25zdCBjaGFyICptZXNzYWdlLAorCQkgICAgIGNvbnN0IHhtbENoYXIgKnN0cjEsCisJCSAgICAgY29uc3QgeG1sQ2hhciAqc3RyMikKK3sKKyAgICB4bWxTY2hlbWFJbnRlcm5hbEVycjIoQUNUWFRfQ0FTVCBwY3R4dCwgZnVuY05hbWUsIG1lc3NhZ2UsCisJc3RyMSwgc3RyMik7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQKK3htbFNjaGVtYUN1c3RvbUVycjQoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkgICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCSAgIHhtbE5vZGVQdHIgbm9kZSwKKwkJICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGl0ZW0sCisJCSAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsCisJCSAgIGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIsCisJCSAgIGNvbnN0IHhtbENoYXIgKnN0cjMsIGNvbnN0IHhtbENoYXIgKnN0cjQpCit7CisgICAgeG1sQ2hhciAqbXNnID0gTlVMTDsKKworICAgIGlmICgobm9kZSA9PSBOVUxMKSAmJiAoaXRlbSAhPSBOVUxMKSAmJgorCShhY3R4dC0+dHlwZSA9PSBYTUxfU0NIRU1BX0NUWFRfUEFSU0VSKSkgeworCW5vZGUgPSBXWFNfSVRFTV9OT0RFKGl0ZW0pOworCXhtbFNjaGVtYUZvcm1hdEl0ZW1Gb3JSZXBvcnQoJm1zZywgTlVMTCwgaXRlbSwgTlVMTCk7CisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIjogIik7CisgICAgfSBlbHNlCisJeG1sU2NoZW1hRm9ybWF0Tm9kZUZvckVycm9yKCZtc2csIGFjdHh0LCBub2RlKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCAoY29uc3QgeG1sQ2hhciAqKSBtZXNzYWdlKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLlxuIik7CisgICAgeG1sU2NoZW1hRXJyNChhY3R4dCwgZXJyb3IsIG5vZGUsCisJKGNvbnN0IGNoYXIgKikgbXNnLCBzdHIxLCBzdHIyLCBzdHIzLCBzdHI0KTsKKyAgICBGUkVFX0FORF9OVUxMKG1zZykKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYUN1c3RvbUVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCisJCSAgIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKwkJICAgeG1sTm9kZVB0ciBub2RlLAorCQkgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgaXRlbSwKKwkJICAgY29uc3QgY2hhciAqbWVzc2FnZSwKKwkJICAgY29uc3QgeG1sQ2hhciAqc3RyMSwKKwkJICAgY29uc3QgeG1sQ2hhciAqc3RyMikKK3sKKyAgICB4bWxTY2hlbWFDdXN0b21FcnI0KGFjdHh0LCBlcnJvciwgbm9kZSwgaXRlbSwKKwltZXNzYWdlLCBzdHIxLCBzdHIyLCBOVUxMLCBOVUxMKTsKK30KKworCisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFDdXN0b21XYXJuaW5nKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBhY3R4dCwKKwkJICAgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorCQkgICB4bWxOb2RlUHRyIG5vZGUsCisJCSAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSBBVFRSSUJVVEVfVU5VU0VELAorCQkgICBjb25zdCBjaGFyICptZXNzYWdlLAorCQkgICBjb25zdCB4bWxDaGFyICpzdHIxLAorCQkgICBjb25zdCB4bWxDaGFyICpzdHIyLAorCQkgICBjb25zdCB4bWxDaGFyICpzdHIzKQoreworICAgIHhtbENoYXIgKm1zZyA9IE5VTEw7CisKKyAgICB4bWxTY2hlbWFGb3JtYXROb2RlRm9yRXJyb3IoJm1zZywgYWN0eHQsIG5vZGUpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIChjb25zdCB4bWxDaGFyICopIG1lc3NhZ2UpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIuXG4iKTsKKworICAgIC8qIFVSR0VOVCBUT0RPOiBTZXQgdGhlIGVycm9yIGNvZGUgdG8gc29tZXRoaW5nIHNhbmUuICovCisgICAgeG1sU2NoZW1hRXJyNExpbmUoYWN0eHQsIFhNTF9FUlJfV0FSTklORywgZXJyb3IsIG5vZGUsIDAsCisJKGNvbnN0IGNoYXIgKikgbXNnLCBzdHIxLCBzdHIyLCBzdHIzLCBOVUxMKTsKKworICAgIEZSRUVfQU5EX05VTEwobXNnKQorfQorCisKKworc3RhdGljIHZvaWQKK3htbFNjaGVtYUtleXJlZkVycih4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCisJCSAgIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKwkJICAgeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgaWRjTm9kZSwKKwkJICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlIEFUVFJJQlVURV9VTlVTRUQsCisJCSAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsCisJCSAgIGNvbnN0IHhtbENoYXIgKnN0cjEsCisJCSAgIGNvbnN0IHhtbENoYXIgKnN0cjIpCit7CisgICAgeG1sQ2hhciAqbXNnID0gTlVMTCwgKnFuYW1lID0gTlVMTDsKKworICAgIG1zZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiRWxlbWVudCAnJXMnOiAiKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCAoY29uc3QgeG1sQ2hhciAqKSBtZXNzYWdlKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLlxuIik7CisgICAgeG1sU2NoZW1hRXJyNExpbmUoQUNUWFRfQ0FTVCB2Y3R4dCwgWE1MX0VSUl9FUlJPUiwKKwllcnJvciwgTlVMTCwgaWRjTm9kZS0+bm9kZUxpbmUsIChjb25zdCBjaGFyICopIG1zZywKKwl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmcW5hbWUsCisJICAgIHZjdHh0LT5ub2RlUU5hbWVzLT5pdGVtc1tpZGNOb2RlLT5ub2RlUU5hbWVJRCArMV0sCisJICAgIHZjdHh0LT5ub2RlUU5hbWVzLT5pdGVtc1tpZGNOb2RlLT5ub2RlUU5hbWVJRF0pLAorCXN0cjEsIHN0cjIsIE5VTEwpOworICAgIEZSRUVfQU5EX05VTEwocW5hbWUpOworICAgIEZSRUVfQU5EX05VTEwobXNnKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hRXZhbEVycm9yTm9kZVR5cGUoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkJICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGlmIChub2RlICE9IE5VTEwpCisJcmV0dXJuIChub2RlLT50eXBlKTsKKyAgICBpZiAoKGFjdHh0LT50eXBlID09IFhNTF9TQ0hFTUFfQ1RYVF9WQUxJREFUT1IpICYmCisJKCgoeG1sU2NoZW1hVmFsaWRDdHh0UHRyKSBhY3R4dCktPmlub2RlICE9IE5VTEwpKQorCXJldHVybiAoICgoeG1sU2NoZW1hVmFsaWRDdHh0UHRyKSBhY3R4dCktPmlub2RlLT5ub2RlVHlwZSk7CisgICAgcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUlzR2xvYmFsSXRlbSh4bWxTY2hlbWFUeXBlUHRyIGl0ZW0pCit7CisgICAgc3dpdGNoIChpdGVtLT50eXBlKSB7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDoKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU6CisJICAgIGlmIChpdGVtLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMKQorCQlyZXR1cm4oMSk7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCSAgICByZXR1cm4gKDEpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJICAgIGlmICggKCh4bWxTY2hlbWFFbGVtZW50UHRyKSBpdGVtKS0+ZmxhZ3MgJgorCQlYTUxfU0NIRU1BU19FTEVNX0dMT0JBTCkKKwkJcmV0dXJuKDEpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEU6CisJICAgIGlmICggKCh4bWxTY2hlbWFBdHRyaWJ1dGVQdHIpIGl0ZW0pLT5mbGFncyAmCisJCVhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMKQorCQlyZXR1cm4oMSk7CisJICAgIGJyZWFrOworCS8qIE5vdGUgdGhhdCBhdHRyaWJ1dGUgZ3JvdXBzIGFyZSBhbHdheXMgZ2xvYmFsLiAqLworCWRlZmF1bHQ6CisJICAgIHJldHVybigxKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYVNpbXBsZVR5cGVFcnIoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkgICAgICAgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorCQkgICAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkgICAgICAgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCSAgICAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCisJCSAgICAgICBpbnQgZGlzcGxheVZhbHVlKQoreworICAgIHhtbENoYXIgKm1zZyA9IE5VTEw7CisKKyAgICB4bWxTY2hlbWFGb3JtYXROb2RlRm9yRXJyb3IoJm1zZywgYWN0eHQsIG5vZGUpOworCisgICAgaWYgKGRpc3BsYXlWYWx1ZSB8fCAoeG1sU2NoZW1hRXZhbEVycm9yTm9kZVR5cGUoYWN0eHQsIG5vZGUpID09CisJICAgIFhNTF9BVFRSSUJVVEVfTk9ERSkpCisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIiclcycgaXMgbm90IGEgdmFsaWQgdmFsdWUgb2YgIik7CisgICAgZWxzZQorCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJUaGUgY2hhcmFjdGVyIGNvbnRlbnQgaXMgbm90IGEgdmFsaWQgIgorCSAgICAidmFsdWUgb2YgIik7CisKKyAgICBpZiAoISB4bWxTY2hlbWFJc0dsb2JhbEl0ZW0odHlwZSkpCisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgInRoZSBsb2NhbCAiKTsKKyAgICBlbHNlCisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgInRoZSAiKTsKKworICAgIGlmIChXWFNfSVNfQVRPTUlDKHR5cGUpKQorCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJhdG9taWMgdHlwZSIpOworICAgIGVsc2UgaWYgKFdYU19JU19MSVNUKHR5cGUpKQorCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJsaXN0IHR5cGUiKTsKKyAgICBlbHNlIGlmIChXWFNfSVNfVU5JT04odHlwZSkpCisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgInVuaW9uIHR5cGUiKTsKKworICAgIGlmICh4bWxTY2hlbWFJc0dsb2JhbEl0ZW0odHlwZSkpIHsKKwl4bWxDaGFyICpzdHIgPSBOVUxMOworCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIgJyIpOworCWlmICh0eXBlLT5idWlsdEluVHlwZSAhPSAwKSB7CisJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJ4czoiKTsKKwkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgdHlwZS0+bmFtZSk7CisJfSBlbHNlCisJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csCisJCXhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsCisJCSAgICB0eXBlLT50YXJnZXROYW1lc3BhY2UsIHR5cGUtPm5hbWUpKTsKKwltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiJyIpOworCUZSRUVfQU5EX05VTEwoc3RyKTsKKyAgICB9CisgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIi5cbiIpOworICAgIGlmIChkaXNwbGF5VmFsdWUgfHwgKHhtbFNjaGVtYUV2YWxFcnJvck5vZGVUeXBlKGFjdHh0LCBub2RlKSA9PQorCSAgICBYTUxfQVRUUklCVVRFX05PREUpKQorCXhtbFNjaGVtYUVycihhY3R4dCwgZXJyb3IsIG5vZGUsIChjb25zdCBjaGFyICopIG1zZywgdmFsdWUsIE5VTEwpOworICAgIGVsc2UKKwl4bWxTY2hlbWFFcnIoYWN0eHQsIGVycm9yLCBub2RlLCAoY29uc3QgY2hhciAqKSBtc2csIE5VTEwsIE5VTEwpOworICAgIEZSRUVfQU5EX05VTEwobXNnKQorfQorCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFGb3JtYXRFcnJvck5vZGVRTmFtZSh4bWxDaGFyICoqIHN0ciwKKwkJCSAgICAgIHhtbFNjaGVtYU5vZGVJbmZvUHRyIG5pLAorCQkJICAgICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGlmIChub2RlICE9IE5VTEwpIHsKKwlpZiAobm9kZS0+bnMgIT0gTlVMTCkKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFGb3JtYXRRTmFtZShzdHIsIG5vZGUtPm5zLT5ocmVmLCBub2RlLT5uYW1lKSk7CisJZWxzZQorCSAgICByZXR1cm4gKHhtbFNjaGVtYUZvcm1hdFFOYW1lKHN0ciwgTlVMTCwgbm9kZS0+bmFtZSkpOworICAgIH0gZWxzZSBpZiAobmkgIT0gTlVMTCkKKwlyZXR1cm4gKHhtbFNjaGVtYUZvcm1hdFFOYW1lKHN0ciwgbmktPm5zTmFtZSwgbmktPmxvY2FsTmFtZSkpOworICAgIHJldHVybiAoTlVMTCk7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJbGxlZ2FsQXR0ckVycih4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCisJCQl4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCQl4bWxTY2hlbWFBdHRySW5mb1B0ciBuaSwKKwkJCXhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxDaGFyICptc2cgPSBOVUxMLCAqc3RyID0gTlVMTDsKKworICAgIHhtbFNjaGVtYUZvcm1hdE5vZGVGb3JFcnJvcigmbXNnLCBhY3R4dCwgbm9kZSk7CisgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlRoZSBhdHRyaWJ1dGUgJyVzJyBpcyBub3QgYWxsb3dlZC5cbiIpOworICAgIHhtbFNjaGVtYUVycihhY3R4dCwgZXJyb3IsIG5vZGUsIChjb25zdCBjaGFyICopIG1zZywKKwl4bWxTY2hlbWFGb3JtYXRFcnJvck5vZGVRTmFtZSgmc3RyLCAoeG1sU2NoZW1hTm9kZUluZm9QdHIpIG5pLCBub2RlKSwKKwlOVUxMKTsKKyAgICBGUkVFX0FORF9OVUxMKHN0cikKKyAgICBGUkVFX0FORF9OVUxMKG1zZykKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNvbXBsZXhUeXBlRXJyKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBhY3R4dCwKKwkJICAgICAgICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCSAgICAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkJeG1sU2NoZW1hVHlwZVB0ciB0eXBlIEFUVFJJQlVURV9VTlVTRUQsCisJCQljb25zdCBjaGFyICptZXNzYWdlLAorCQkJaW50IG5idmFsLAorCQkJaW50IG5ibmVnLAorCQkJeG1sQ2hhciAqKnZhbHVlcykKK3sKKyAgICB4bWxDaGFyICpzdHIgPSBOVUxMLCAqbXNnID0gTlVMTDsKKyAgICB4bWxDaGFyICpsb2NhbE5hbWUsICpuc05hbWU7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyLCAqZW5kOworICAgIGludCBpOworCisgICAgeG1sU2NoZW1hRm9ybWF0Tm9kZUZvckVycm9yKCZtc2csIGFjdHh0LCBub2RlKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCAoY29uc3QgeG1sQ2hhciAqKSBtZXNzYWdlKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLiIpOworICAgIC8qCisgICAgKiBOb3RlIHRoYXQgaXMgZG9lcyBub3QgbWFrZSBzZW5zZSB0byByZXBvcnQgdGhhdCB3ZSBoYXZlIGEKKyAgICAqIHdpbGRjYXJkIGhlcmUsIHNpbmNlIHRoZSB3aWxkY2FyZCBtaWdodCBiZSB1bmZvbGRlZCBpbnRvCisgICAgKiBtdWx0aXBsZSB0cmFuc2l0aW9ucy4KKyAgICAqLworICAgIGlmIChuYnZhbCArIG5ibmVnID4gMCkgeworCWlmIChuYnZhbCArIG5ibmVnID4gMSkgeworCSAgICBzdHIgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIiBFeHBlY3RlZCBpcyBvbmUgb2YgKCAiKTsKKwl9IGVsc2UKKwkgICAgc3RyID0geG1sU3RyZHVwKEJBRF9DQVNUICIgRXhwZWN0ZWQgaXMgKCAiKTsKKwluc05hbWUgPSBOVUxMOworCisJZm9yIChpID0gMDsgaSA8IG5idmFsICsgbmJuZWc7IGkrKykgeworCSAgICBjdXIgPSB2YWx1ZXNbaV07CisJICAgIGlmIChjdXIgPT0gTlVMTCkKKwkgICAgICAgIGNvbnRpbnVlOworCSAgICBpZiAoKGN1clswXSA9PSAnbicpICYmIChjdXJbMV0gPT0gJ28nKSAmJiAoY3VyWzJdID09ICd0JykgJiYKKwkgICAgICAgIChjdXJbM10gPT0gJyAnKSkgeworCQljdXIgKz0gNDsKKwkJc3RyID0geG1sU3RyY2F0KHN0ciwgQkFEX0NBU1QgIiMjb3RoZXIiKTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIEdldCB0aGUgbG9jYWwgbmFtZS4KKwkgICAgKi8KKwkgICAgbG9jYWxOYW1lID0gTlVMTDsKKworCSAgICBlbmQgPSBjdXI7CisJICAgIGlmICgqZW5kID09ICcqJykgeworCQlsb2NhbE5hbWUgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIioiKTsKKwkJZW5kKys7CisJICAgIH0gZWxzZSB7CisJCXdoaWxlICgoKmVuZCAhPSAwKSAmJiAoKmVuZCAhPSAnfCcpKQorCQkgICAgZW5kKys7CisJCWxvY2FsTmFtZSA9IHhtbFN0cm5jYXQobG9jYWxOYW1lLCBCQURfQ0FTVCBjdXIsIGVuZCAtIGN1cik7CisJICAgIH0KKwkgICAgaWYgKCplbmQgIT0gMCkgeworCQllbmQrKzsKKwkJLyoKKwkJKiBTa2lwICIqfCoiIGlmIHRoZXkgY29tZSB3aXRoIG5lZ2F0ZWQgZXhwcmVzc2lvbnMsIHNpbmNlCisJCSogdGhleSByZXByZXNlbnQgdGhlIHNhbWUgbmVnYXRlZCB3aWxkY2FyZC4KKwkJKi8KKwkJaWYgKChuYm5lZyA9PSAwKSB8fCAoKmVuZCAhPSAnKicpIHx8ICgqbG9jYWxOYW1lICE9ICcqJykpIHsKKwkJICAgIC8qCisJCSAgICAqIEdldCB0aGUgbmFtZXNwYWNlIG5hbWUuCisJCSAgICAqLworCQkgICAgY3VyID0gZW5kOworCQkgICAgaWYgKCplbmQgPT0gJyonKSB7CisJCQluc05hbWUgPSB4bWxTdHJkdXAoQkFEX0NBU1QgInsqfSIpOworCQkgICAgfSBlbHNlIHsKKwkJCXdoaWxlICgqZW5kICE9IDApCisJCQkgICAgZW5kKys7CisKKwkJCWlmIChpID49IG5idmFsKQorCQkJICAgIG5zTmFtZSA9IHhtbFN0cmR1cChCQURfQ0FTVCAieyMjb3RoZXI6Iik7CisJCQllbHNlCisJCQkgICAgbnNOYW1lID0geG1sU3RyZHVwKEJBRF9DQVNUICJ7Iik7CisKKwkJCW5zTmFtZSA9IHhtbFN0cm5jYXQobnNOYW1lLCBCQURfQ0FTVCBjdXIsIGVuZCAtIGN1cik7CisJCQluc05hbWUgPSB4bWxTdHJjYXQobnNOYW1lLCBCQURfQ0FTVCAifSIpOworCQkgICAgfQorCQkgICAgc3RyID0geG1sU3RyY2F0KHN0ciwgQkFEX0NBU1QgbnNOYW1lKTsKKwkJICAgIEZSRUVfQU5EX05VTEwobnNOYW1lKQorCQl9IGVsc2UgeworCQkgICAgRlJFRV9BTkRfTlVMTChsb2NhbE5hbWUpOworCQkgICAgY29udGludWU7CisJCX0KKwkgICAgfQorCSAgICBzdHIgPSB4bWxTdHJjYXQoc3RyLCBCQURfQ0FTVCBsb2NhbE5hbWUpOworCSAgICBGUkVFX0FORF9OVUxMKGxvY2FsTmFtZSk7CisKKwkgICAgaWYgKGkgPCBuYnZhbCArIG5ibmVnIC0xKQorCQlzdHIgPSB4bWxTdHJjYXQoc3RyLCBCQURfQ0FTVCAiLCAiKTsKKwl9CisJc3RyID0geG1sU3RyY2F0KHN0ciwgQkFEX0NBU1QgIiApLlxuIik7CisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1Qgc3RyKTsKKwlGUkVFX0FORF9OVUxMKHN0cikKKyAgICB9IGVsc2UKKyAgICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJcbiIpOworICAgIHhtbFNjaGVtYUVycihhY3R4dCwgZXJyb3IsIG5vZGUsIChjb25zdCBjaGFyICopIG1zZywgTlVMTCwgTlVMTCk7CisgICAgeG1sRnJlZShtc2cpOworfQorCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRmFjZXRFcnIoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkgIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKwkJICB4bWxOb2RlUHRyIG5vZGUsCisJCSAgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCSAgdW5zaWduZWQgbG9uZyBsZW5ndGgsCisJCSAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlLAorCQkgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0LAorCQkgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsCisJCSAgY29uc3QgeG1sQ2hhciAqc3RyMSwKKwkJICBjb25zdCB4bWxDaGFyICpzdHIyKQoreworICAgIHhtbENoYXIgKnN0ciA9IE5VTEwsICptc2cgPSBOVUxMOworICAgIHhtbFNjaGVtYVR5cGVUeXBlIGZhY2V0VHlwZTsKKyAgICBpbnQgbm9kZVR5cGUgPSB4bWxTY2hlbWFFdmFsRXJyb3JOb2RlVHlwZShhY3R4dCwgbm9kZSk7CisKKyAgICB4bWxTY2hlbWFGb3JtYXROb2RlRm9yRXJyb3IoJm1zZywgYWN0eHQsIG5vZGUpOworICAgIGlmIChlcnJvciA9PSBYTUxfU0NIRU1BVl9DVkNfRU5VTUVSQVRJT05fVkFMSUQpIHsKKwlmYWNldFR5cGUgPSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOworCS8qCisJKiBJZiBlbnVtZXJhdGlvbnMgYXJlIHZhbGlkYXRlZCwgb25lIG11c3Qgbm90IGV4cGVjdCB0aGUKKwkqIGZhY2V0IHRvIGJlIGdpdmVuLgorCSovCisgICAgfSBlbHNlCisJZmFjZXRUeXBlID0gZmFjZXQtPnR5cGU7CisgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlsiKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiZmFjZXQgJyIpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIHhtbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nKGZhY2V0VHlwZSkpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICInXSAiKTsKKyAgICBpZiAobWVzc2FnZSA9PSBOVUxMKSB7CisJLyoKKwkqIFVzZSBhIGRlZmF1bHQgbWVzc2FnZS4KKwkqLworCWlmICgoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIKSB8fAorCSAgICAoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIKSB8fAorCSAgICAoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIKSkgeworCisJICAgIGNoYXIgbGVuWzI1XSwgYWN0TGVuWzI1XTsKKworCSAgICAvKiBGSVhNRSwgVE9ETzogV2hhdCBpcyB0aGUgbWF4IGV4cGVjdGVkIHN0cmluZyBsZW5ndGggb2YgdGhlCisJICAgICogdGhpcyB2YWx1ZT8KKwkgICAgKi8KKwkgICAgaWYgKG5vZGVUeXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkKKwkJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlRoZSB2YWx1ZSAnJXMnIGhhcyBhIGxlbmd0aCBvZiAnJXMnOyAiKTsKKwkgICAgZWxzZQorCQltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiVGhlIHZhbHVlIGhhcyBhIGxlbmd0aCBvZiAnJXMnOyAiKTsKKworCSAgICBzbnByaW50ZihsZW4sIDI0LCAiJWx1IiwgeG1sU2NoZW1hR2V0RmFjZXRWYWx1ZUFzVUxvbmcoZmFjZXQpKTsKKwkgICAgc25wcmludGYoYWN0TGVuLCAyNCwgIiVsdSIsIGxlbmd0aCk7CisKKwkgICAgaWYgKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSCkKKwkJbXNnID0geG1sU3RyY2F0KG1zZywKKwkJQkFEX0NBU1QgInRoaXMgZGlmZmVycyBmcm9tIHRoZSBhbGxvd2VkIGxlbmd0aCBvZiAnJXMnLlxuIik7CisJICAgIGVsc2UgaWYgKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSCkKKwkJbXNnID0geG1sU3RyY2F0KG1zZywKKwkJQkFEX0NBU1QgInRoaXMgZXhjZWVkcyB0aGUgYWxsb3dlZCBtYXhpbXVtIGxlbmd0aCBvZiAnJXMnLlxuIik7CisJICAgIGVsc2UgaWYgKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSCkKKwkJbXNnID0geG1sU3RyY2F0KG1zZywKKwkJQkFEX0NBU1QgInRoaXMgdW5kZXJydW5zIHRoZSBhbGxvd2VkIG1pbmltdW0gbGVuZ3RoIG9mICclcycuXG4iKTsKKworCSAgICBpZiAobm9kZVR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKQorCQl4bWxTY2hlbWFFcnIzKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIgKikgbXNnLAorCQkgICAgdmFsdWUsIChjb25zdCB4bWxDaGFyICopIGFjdExlbiwgKGNvbnN0IHhtbENoYXIgKikgbGVuKTsKKwkgICAgZWxzZQorCQl4bWxTY2hlbWFFcnIoYWN0eHQsIGVycm9yLCBub2RlLCAoY29uc3QgY2hhciAqKSBtc2csCisJCSAgICAoY29uc3QgeG1sQ2hhciAqKSBhY3RMZW4sIChjb25zdCB4bWxDaGFyICopIGxlbik7CisKKwl9IGVsc2UgaWYgKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OKSB7CisJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJUaGUgdmFsdWUgJyVzJyBpcyBub3QgYW4gZWxlbWVudCAiCisJCSJvZiB0aGUgc2V0IHslc30uXG4iKTsKKwkgICAgeG1sU2NoZW1hRXJyKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIgKikgbXNnLCB2YWx1ZSwKKwkJeG1sU2NoZW1hRm9ybWF0RmFjZXRFbnVtU2V0KGFjdHh0LCAmc3RyLCB0eXBlKSk7CisJfSBlbHNlIGlmIChmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOKSB7CisJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJUaGUgdmFsdWUgJyVzJyBpcyBub3QgYWNjZXB0ZWQgIgorCQkiYnkgdGhlIHBhdHRlcm4gJyVzJy5cbiIpOworCSAgICB4bWxTY2hlbWFFcnIoYWN0eHQsIGVycm9yLCBub2RlLCAoY29uc3QgY2hhciAqKSBtc2csIHZhbHVlLAorCQlmYWNldC0+dmFsdWUpOworCX0gZWxzZSBpZiAoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFKSB7CisJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJUaGUgdmFsdWUgJyVzJyBpcyBsZXNzIHRoYW4gdGhlICIKKwkJIm1pbmltdW0gdmFsdWUgYWxsb3dlZCAoJyVzJykuXG4iKTsKKwkgICAgeG1sU2NoZW1hRXJyKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIgKikgbXNnLCB2YWx1ZSwKKwkJZmFjZXQtPnZhbHVlKTsKKwl9IGVsc2UgaWYgKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRSkgeworCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiVGhlIHZhbHVlICclcycgaXMgZ3JlYXRlciB0aGFuIHRoZSAiCisJCSJtYXhpbXVtIHZhbHVlIGFsbG93ZWQgKCclcycpLlxuIik7CisJICAgIHhtbFNjaGVtYUVycihhY3R4dCwgZXJyb3IsIG5vZGUsIChjb25zdCBjaGFyICopIG1zZywgdmFsdWUsCisJCWZhY2V0LT52YWx1ZSk7CisJfSBlbHNlIGlmIChmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkUpIHsKKwkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlRoZSB2YWx1ZSAnJXMnIG11c3QgYmUgZ3JlYXRlciB0aGFuICIKKwkJIiclcycuXG4iKTsKKwkgICAgeG1sU2NoZW1hRXJyKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIgKikgbXNnLCB2YWx1ZSwKKwkJZmFjZXQtPnZhbHVlKTsKKwl9IGVsc2UgaWYgKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01BWEVYQ0xVU0lWRSkgeworCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiVGhlIHZhbHVlICclcycgbXVzdCBiZSBsZXNzIHRoYW4gIgorCQkiJyVzJy5cbiIpOworCSAgICB4bWxTY2hlbWFFcnIoYWN0eHQsIGVycm9yLCBub2RlLCAoY29uc3QgY2hhciAqKSBtc2csIHZhbHVlLAorCQlmYWNldC0+dmFsdWUpOworCX0gZWxzZSBpZiAoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFMpIHsKKwkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlRoZSB2YWx1ZSAnJXMnIGhhcyBtb3JlICIKKwkJImRpZ2l0cyB0aGFuIGFyZSBhbGxvd2VkICgnJXMnKS5cbiIpOworCSAgICB4bWxTY2hlbWFFcnIoYWN0eHQsIGVycm9yLCBub2RlLCAoY29uc3QgY2hhciopIG1zZywgdmFsdWUsCisJCWZhY2V0LT52YWx1ZSk7CisJfSBlbHNlIGlmIChmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUykgeworCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiVGhlIHZhbHVlICclcycgaGFzIG1vcmUgZnJhY3Rpb25hbCAiCisJCSJkaWdpdHMgdGhhbiBhcmUgYWxsb3dlZCAoJyVzJykuXG4iKTsKKwkgICAgeG1sU2NoZW1hRXJyKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIqKSBtc2csIHZhbHVlLAorCQlmYWNldC0+dmFsdWUpOworCX0gZWxzZSBpZiAobm9kZVR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJUaGUgdmFsdWUgJyVzJyBpcyBub3QgZmFjZXQtdmFsaWQuXG4iKTsKKwkgICAgeG1sU2NoZW1hRXJyKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIgKikgbXNnLCB2YWx1ZSwgTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlRoZSB2YWx1ZSBpcyBub3QgZmFjZXQtdmFsaWQuXG4iKTsKKwkgICAgeG1sU2NoZW1hRXJyKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIgKikgbXNnLCBOVUxMLCBOVUxMKTsKKwl9CisgICAgfSBlbHNlIHsKKwltc2cgPSB4bWxTdHJjYXQobXNnLCAoY29uc3QgeG1sQ2hhciAqKSBtZXNzYWdlKTsKKwltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLlxuIik7CisJeG1sU2NoZW1hRXJyKGFjdHh0LCBlcnJvciwgbm9kZSwgKGNvbnN0IGNoYXIgKikgbXNnLCBzdHIxLCBzdHIyKTsKKyAgICB9CisgICAgRlJFRV9BTkRfTlVMTChzdHIpCisgICAgeG1sRnJlZShtc2cpOworfQorCisjZGVmaW5lIFZFUlJPUihlcnIsIHR5cGUsIG1zZykgXAorICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHZjdHh0LCBlcnIsIE5VTEwsIHR5cGUsIG1zZywgTlVMTCwgTlVMTCk7CisKKyNkZWZpbmUgVkVSUk9SX0lOVChmdW5jLCBtc2cpIHhtbFNjaGVtYUludGVybmFsRXJyKEFDVFhUX0NBU1QgdmN0eHQsIGZ1bmMsIG1zZyk7CisKKyNkZWZpbmUgUEVSUk9SX0lOVChmdW5jLCBtc2cpIHhtbFNjaGVtYUludGVybmFsRXJyKEFDVFhUX0NBU1QgcGN0eHQsIGZ1bmMsIG1zZyk7CisjZGVmaW5lIFBFUlJPUl9JTlQyKGZ1bmMsIG1zZykgeG1sU2NoZW1hSW50ZXJuYWxFcnIoQUNUWFRfQ0FTVCBjdHh0LCBmdW5jLCBtc2cpOworCisjZGVmaW5lIEFFUlJPUl9JTlQoZnVuYywgbXNnKSB4bWxTY2hlbWFJbnRlcm5hbEVycihhY3R4dCwgZnVuYywgbXNnKTsKKworCisvKioKKyAqIHhtbFNjaGVtYVBNaXNzaW5nQXR0ckVycjoKKyAqIEBjdHh0OiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQG93bmVyRGVzOiB0aGUgZGVzaWduYXRpb24gb2YgIHRoZSBvd25lcgorICogQG93bmVyTmFtZTogdGhlIG5hbWUgb2YgdGhlIG93bmVyCisgKiBAb3duZXJJdGVtOiB0aGUgb3duZXIgYXMgYSBzY2hlbWEgb2JqZWN0CisgKiBAb3duZXJFbGVtOiB0aGUgb3duZXIgYXMgYW4gZWxlbWVudCBub2RlCisgKiBAbm9kZTogdGhlIHBhcmVudCBlbGVtZW50IG5vZGUgb2YgdGhlIG1pc3NpbmcgYXR0cmlidXRlIG5vZGUKKyAqIEB0eXBlOiB0aGUgY29ycmVzcG9uZGluZyB0eXBlIG9mIHRoZSBhdHRyaWJ1dGUgbm9kZQorICoKKyAqIFJlcG9ydHMgYW4gaWxsZWdhbCBhdHRyaWJ1dGUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFQTWlzc2luZ0F0dHJFcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKwkJCSB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgb3duZXJJdGVtLAorCQkJIHhtbE5vZGVQdHIgb3duZXJFbGVtLAorCQkJIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkgY29uc3QgY2hhciAqbWVzc2FnZSkKK3sKKyAgICB4bWxDaGFyICpkZXMgPSBOVUxMOworCisgICAgeG1sU2NoZW1hRm9ybWF0SXRlbUZvclJlcG9ydCgmZGVzLCBOVUxMLCBvd25lckl0ZW0sIG93bmVyRWxlbSk7CisKKyAgICBpZiAobWVzc2FnZSAhPSBOVUxMKQorCXhtbFNjaGVtYVBFcnIoY3R4dCwgb3duZXJFbGVtLCBlcnJvciwgIiVzOiAlcy5cbiIsIEJBRF9DQVNUIGRlcywgQkFEX0NBU1QgbWVzc2FnZSk7CisgICAgZWxzZQorCXhtbFNjaGVtYVBFcnIoY3R4dCwgb3duZXJFbGVtLCBlcnJvciwKKwkgICAgIiVzOiBUaGUgYXR0cmlidXRlICclcycgaXMgcmVxdWlyZWQgYnV0IG1pc3NpbmcuXG4iLAorCSAgICBCQURfQ0FTVCBkZXMsIEJBRF9DQVNUIG5hbWUpOworICAgIEZSRUVfQU5EX05VTEwoZGVzKTsKK30KKworCisvKioKKyAqIHhtbFNjaGVtYVBSZXNDb21wQXR0ckVycjoKKyAqIEBjdHh0OiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycm9yOiB0aGUgZXJyb3IgY29kZQorICogQG93bmVyRGVzOiB0aGUgZGVzaWduYXRpb24gb2YgIHRoZSBvd25lcgorICogQG93bmVySXRlbTogdGhlIG93bmVyIGFzIGEgc2NoZW1hIG9iamVjdAorICogQG93bmVyRWxlbTogdGhlIG93bmVyIGFzIGFuIGVsZW1lbnQgbm9kZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgaG9sZGluZyB0aGUgUU5hbWUKKyAqIEByZWZOYW1lOiB0aGUgcmVmZXJlbmNlZCBsb2NhbCBuYW1lCisgKiBAcmVmVVJJOiB0aGUgcmVmZXJlbmNlZCBuYW1lc3BhY2UgVVJJCisgKiBAbWVzc2FnZTogb3B0aW9uYWwgbWVzc2FnZQorICoKKyAqIFVzZWQgdG8gcmVwb3J0IFFOYW1lIGF0dHJpYnV0ZSB2YWx1ZXMgdGhhdCBmYWlsZWQgdG8gcmVzb2x2ZQorICogdG8gc2NoZW1hIGNvbXBvbmVudHMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFQUmVzQ29tcEF0dHJFcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKwkJCSB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgb3duZXJJdGVtLAorCQkJIHhtbE5vZGVQdHIgb3duZXJFbGVtLAorCQkJIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkgY29uc3QgeG1sQ2hhciAqcmVmTmFtZSwKKwkJCSBjb25zdCB4bWxDaGFyICpyZWZVUkksCisJCQkgeG1sU2NoZW1hVHlwZVR5cGUgcmVmVHlwZSwKKwkJCSBjb25zdCBjaGFyICpyZWZUeXBlU3RyKQoreworICAgIHhtbENoYXIgKmRlcyA9IE5VTEwsICpzdHJBID0gTlVMTDsKKworICAgIHhtbFNjaGVtYUZvcm1hdEl0ZW1Gb3JSZXBvcnQoJmRlcywgTlVMTCwgb3duZXJJdGVtLCBvd25lckVsZW0pOworICAgIGlmIChyZWZUeXBlU3RyID09IE5VTEwpCisJcmVmVHlwZVN0ciA9IChjb25zdCBjaGFyICopIHhtbFNjaGVtYUl0ZW1UeXBlVG9TdHIocmVmVHlwZSk7CisJeG1sU2NoZW1hUEVyckV4dChjdHh0LCBvd25lckVsZW0sIGVycm9yLAorCSAgICBOVUxMLCBOVUxMLCBOVUxMLAorCSAgICAiJXMsIGF0dHJpYnV0ZSAnJXMnOiBUaGUgUU5hbWUgdmFsdWUgJyVzJyBkb2VzIG5vdCByZXNvbHZlIHRvIGEobikgIgorCSAgICAiJXMuXG4iLCBCQURfQ0FTVCBkZXMsIEJBRF9DQVNUIG5hbWUsCisJICAgIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHJBLCByZWZVUkksIHJlZk5hbWUpLAorCSAgICBCQURfQ0FTVCByZWZUeXBlU3RyLCBOVUxMKTsKKyAgICBGUkVFX0FORF9OVUxMKGRlcykKKyAgICBGUkVFX0FORF9OVUxMKHN0ckEpCit9CisKKy8qKgorICogeG1sU2NoZW1hUEN1c3RvbUF0dHJFcnI6CisgKiBAY3R4dDogdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiB0aGUgZXJyb3IgY29kZQorICogQG93bmVyRGVzOiB0aGUgZGVzaWduYXRpb24gb2YgdGhlIG93bmVyCisgKiBAb3duZXJJdGVtOiB0aGUgb3duZXIgYXMgYSBzY2hlbWEgb2JqZWN0CisgKiBAYXR0cjogdGhlIGlsbGVnYWwgYXR0cmlidXRlIG5vZGUKKyAqCisgKiBSZXBvcnRzIGFuIGlsbGVnYWwgYXR0cmlidXRlIGR1cmluZyB0aGUgcGFyc2UuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFQQ3VzdG9tQXR0ckVycih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQl4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCQl4bWxDaGFyICoqb3duZXJEZXMsCisJCQl4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgb3duZXJJdGVtLAorCQkJeG1sQXR0clB0ciBhdHRyLAorCQkJY29uc3QgY2hhciAqbXNnKQoreworICAgIHhtbENoYXIgKmRlcyA9IE5VTEw7CisKKyAgICBpZiAob3duZXJEZXMgPT0gTlVMTCkKKwl4bWxTY2hlbWFGb3JtYXRJdGVtRm9yUmVwb3J0KCZkZXMsIE5VTEwsIG93bmVySXRlbSwgYXR0ci0+cGFyZW50KTsKKyAgICBlbHNlIGlmICgqb3duZXJEZXMgPT0gTlVMTCkgeworCXhtbFNjaGVtYUZvcm1hdEl0ZW1Gb3JSZXBvcnQob3duZXJEZXMsIE5VTEwsIG93bmVySXRlbSwgYXR0ci0+cGFyZW50KTsKKwlkZXMgPSAqb3duZXJEZXM7CisgICAgfSBlbHNlCisJZGVzID0gKm93bmVyRGVzOworICAgIGlmIChhdHRyID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyRXh0KGN0eHQsIE5VTEwsIGVycm9yLCBOVUxMLCBOVUxMLCBOVUxMLAorCSAgICAiJXMsIGF0dHJpYnV0ZSAnJXMnOiAlcy5cbiIsCisJICAgIEJBRF9DQVNUIGRlcywgKGNvbnN0IHhtbENoYXIgKikgIlVua25vd24iLAorCSAgICAoY29uc3QgeG1sQ2hhciAqKSBtc2csIE5VTEwsIE5VTEwpOworICAgIH0gZWxzZSB7CisJeG1sU2NoZW1hUEVyckV4dChjdHh0LCAoeG1sTm9kZVB0cikgYXR0ciwgZXJyb3IsIE5VTEwsIE5VTEwsIE5VTEwsCisJICAgICIlcywgYXR0cmlidXRlICclcyc6ICVzLlxuIiwKKwkgICAgQkFEX0NBU1QgZGVzLCBhdHRyLT5uYW1lLCAoY29uc3QgeG1sQ2hhciAqKSBtc2csIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICBpZiAob3duZXJEZXMgPT0gTlVMTCkKKwlGUkVFX0FORF9OVUxMKGRlcyk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyOgorICogQGN0eHQ6IHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogdGhlIGVycm9yIGNvZGUKKyAqIEBvd25lckRlczogdGhlIGRlc2lnbmF0aW9uIG9mIHRoZSBhdHRyaWJ1dGUncyBvd25lcgorICogQG93bmVySXRlbTogdGhlIGF0dHJpYnV0ZSdzIG93bmVyIGl0ZW0KKyAqIEBhdHRyOiB0aGUgaWxsZWdhbCBhdHRyaWJ1dGUgbm9kZQorICoKKyAqIFJlcG9ydHMgYW4gaWxsZWdhbCBhdHRyaWJ1dGUgZHVyaW5nIHRoZSBwYXJzZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBJbGxlZ2FsQXR0ckVycih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorCQkJIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBvd25lckNvbXAgQVRUUklCVVRFX1VOVVNFRCwKKwkJCSB4bWxBdHRyUHRyIGF0dHIpCit7CisgICAgeG1sQ2hhciAqc3RyQSA9IE5VTEwsICpzdHJCID0gTlVMTDsKKworICAgIHhtbFNjaGVtYUZvcm1hdE5vZGVGb3JFcnJvcigmc3RyQSwgQUNUWFRfQ0FTVCBjdHh0LCBhdHRyLT5wYXJlbnQpOworICAgIHhtbFNjaGVtYUVycjQoQUNUWFRfQ0FTVCBjdHh0LCBlcnJvciwgKHhtbE5vZGVQdHIpIGF0dHIsCisJIiVzVGhlIGF0dHJpYnV0ZSAnJXMnIGlzIG5vdCBhbGxvd2VkLlxuIiwgQkFEX0NBU1Qgc3RyQSwKKwl4bWxTY2hlbWFGb3JtYXRRTmFtZU5zKCZzdHJCLCBhdHRyLT5ucywgYXR0ci0+bmFtZSksCisJTlVMTCwgTlVMTCk7CisgICAgRlJFRV9BTkRfTlVMTChzdHJBKTsKKyAgICBGUkVFX0FORF9OVUxMKHN0ckIpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBDdXN0b21FcnI6CisgKiBAY3R4dDogdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiB0aGUgZXJyb3IgY29kZQorICogQGl0ZW1EZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgc2NoZW1hIGl0ZW0KKyAqIEBpdGVtOiB0aGUgc2NoZW1hIGl0ZW0KKyAqIEBpdGVtRWxlbTogdGhlIG5vZGUgb2YgdGhlIHNjaGVtYSBpdGVtCisgKiBAbWVzc2FnZTogdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBzdHIxOiBhbiBvcHRpb25hbCBwYXJhbSBmb3IgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBzdHIyOiBhbiBvcHRpb25hbCBwYXJhbSBmb3IgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBzdHIzOiBhbiBvcHRpb25hbCBwYXJhbSBmb3IgdGhlIGVycm9yIG1lc3NhZ2UKKyAqCisgKiBSZXBvcnRzIGFuIGVycm9yIGR1cmluZyBwYXJzaW5nLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hUEN1c3RvbUVyckV4dCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCSAgICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCSAgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgaXRlbSwKKwkJICAgIHhtbE5vZGVQdHIgaXRlbUVsZW0sCisJCSAgICBjb25zdCBjaGFyICptZXNzYWdlLAorCQkgICAgY29uc3QgeG1sQ2hhciAqc3RyMSwKKwkJICAgIGNvbnN0IHhtbENoYXIgKnN0cjIsCisJCSAgICBjb25zdCB4bWxDaGFyICpzdHIzKQoreworICAgIHhtbENoYXIgKmRlcyA9IE5VTEwsICptc2cgPSBOVUxMOworCisgICAgeG1sU2NoZW1hRm9ybWF0SXRlbUZvclJlcG9ydCgmZGVzLCBOVUxMLCBpdGVtLCBpdGVtRWxlbSk7CisgICAgbXNnID0geG1sU3RyZHVwKEJBRF9DQVNUICIlczogIik7CisgICAgbXNnID0geG1sU3RyY2F0KG1zZywgKGNvbnN0IHhtbENoYXIgKikgbWVzc2FnZSk7CisgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIi5cbiIpOworICAgIGlmICgoaXRlbUVsZW0gPT0gTlVMTCkgJiYgKGl0ZW0gIT0gTlVMTCkpCisJaXRlbUVsZW0gPSBXWFNfSVRFTV9OT0RFKGl0ZW0pOworICAgIHhtbFNjaGVtYVBFcnJFeHQoY3R4dCwgaXRlbUVsZW0sIGVycm9yLCBOVUxMLCBOVUxMLCBOVUxMLAorCShjb25zdCBjaGFyICopIG1zZywgQkFEX0NBU1QgZGVzLCBzdHIxLCBzdHIyLCBzdHIzLCBOVUxMKTsKKyAgICBGUkVFX0FORF9OVUxMKGRlcyk7CisgICAgRlJFRV9BTkRfTlVMTChtc2cpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBDdXN0b21FcnI6CisgKiBAY3R4dDogdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiB0aGUgZXJyb3IgY29kZQorICogQGl0ZW1EZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgc2NoZW1hIGl0ZW0KKyAqIEBpdGVtOiB0aGUgc2NoZW1hIGl0ZW0KKyAqIEBpdGVtRWxlbTogdGhlIG5vZGUgb2YgdGhlIHNjaGVtYSBpdGVtCisgKiBAbWVzc2FnZTogdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEBzdHIxOiB0aGUgb3B0aW9uYWwgcGFyYW0gZm9yIHRoZSBlcnJvciBtZXNzYWdlCisgKgorICogUmVwb3J0cyBhbiBlcnJvciBkdXJpbmcgcGFyc2luZy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBDdXN0b21FcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkgICAgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorCQkgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGl0ZW0sCisJCSAgICB4bWxOb2RlUHRyIGl0ZW1FbGVtLAorCQkgICAgY29uc3QgY2hhciAqbWVzc2FnZSwKKwkJICAgIGNvbnN0IHhtbENoYXIgKnN0cjEpCit7CisgICAgeG1sU2NoZW1hUEN1c3RvbUVyckV4dChjdHh0LCBlcnJvciwgaXRlbSwgaXRlbUVsZW0sIG1lc3NhZ2UsCisJc3RyMSwgTlVMTCwgTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUEF0dHJVc2VFcnI6CisgKiBAY3R4dDogdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGVycm9yOiB0aGUgZXJyb3IgY29kZQorICogQGl0ZW1EZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgc2NoZW1hIHR5cGUKKyAqIEBpdGVtOiB0aGUgc2NoZW1hIHR5cGUKKyAqIEBpdGVtRWxlbTogdGhlIG5vZGUgb2YgdGhlIHNjaGVtYSB0eXBlCisgKiBAYXR0cjogdGhlIGludmFsaWQgc2NoZW1hIGF0dHJpYnV0ZQorICogQG1lc3NhZ2U6IHRoZSBlcnJvciBtZXNzYWdlCisgKiBAc3RyMTogdGhlIG9wdGlvbmFsIHBhcmFtIGZvciB0aGUgZXJyb3IgbWVzc2FnZQorICoKKyAqIFJlcG9ydHMgYW4gYXR0cmlidXRlIHVzZSBlcnJvciBkdXJpbmcgcGFyc2luZy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBBdHRyVXNlRXJyNCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCSAgICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCSAgICB4bWxOb2RlUHRyIG5vZGUsCisJCSAgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgb3duZXJJdGVtLAorCQkgICAgY29uc3QgeG1sU2NoZW1hQXR0cmlidXRlVXNlUHRyIGF0dHJ1c2UsCisJCSAgICBjb25zdCBjaGFyICptZXNzYWdlLAorCQkgICAgY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMiwKKwkJICAgIGNvbnN0IHhtbENoYXIgKnN0cjMsY29uc3QgeG1sQ2hhciAqc3RyNCkKK3sKKyAgICB4bWxDaGFyICpzdHIgPSBOVUxMLCAqbXNnID0gTlVMTDsKKworICAgIHhtbFNjaGVtYUZvcm1hdEl0ZW1Gb3JSZXBvcnQoJm1zZywgTlVMTCwgb3duZXJJdGVtLCBOVUxMKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiLCAiKTsKKyAgICBtc2cgPSB4bWxTdHJjYXQobXNnLAorCUJBRF9DQVNUIHhtbFNjaGVtYUZvcm1hdEl0ZW1Gb3JSZXBvcnQoJnN0ciwgTlVMTCwKKwlXWFNfQkFTSUNfQ0FTVCBhdHRydXNlLCBOVUxMKSk7CisgICAgRlJFRV9BTkRfTlVMTChzdHIpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICI6ICIpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIChjb25zdCB4bWxDaGFyICopIG1lc3NhZ2UpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIuXG4iKTsKKyAgICB4bWxTY2hlbWFFcnI0KEFDVFhUX0NBU1QgY3R4dCwgZXJyb3IsIG5vZGUsCisJKGNvbnN0IGNoYXIgKikgbXNnLCBzdHIxLCBzdHIyLCBzdHIzLCBzdHI0KTsKKyAgICB4bWxGcmVlKG1zZyk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUElsbGVnYWxGYWNldEF0b21pY0VycjoKKyAqIEBjdHh0OiB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAZXJyb3I6IHRoZSBlcnJvciBjb2RlCisgKiBAdHlwZTogdGhlIHNjaGVtYSB0eXBlCisgKiBAYmFzZVR5cGU6IHRoZSBiYXNlIHR5cGUgb2YgdHlwZQorICogQGZhY2V0OiB0aGUgaWxsZWdhbCBmYWNldAorICoKKyAqIFJlcG9ydHMgYW4gaWxsZWdhbCBmYWNldCBmb3IgYXRvbWljIHNpbXBsZSB0eXBlcy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBJbGxlZ2FsRmFjZXRBdG9taWNFcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCQkgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKwkJCSAgeG1sU2NoZW1hVHlwZVB0ciBiYXNlVHlwZSwKKwkJCSAgeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQpCit7CisgICAgeG1sQ2hhciAqZGVzID0gTlVMTCwgKnN0clQgPSBOVUxMOworCisgICAgeG1sU2NoZW1hRm9ybWF0SXRlbUZvclJlcG9ydCgmZGVzLCBOVUxMLCBXWFNfQkFTSUNfQ0FTVCB0eXBlLCB0eXBlLT5ub2RlKTsKKyAgICB4bWxTY2hlbWFQRXJyRXh0KGN0eHQsIHR5cGUtPm5vZGUsIGVycm9yLCBOVUxMLCBOVUxMLCBOVUxMLAorCSIlczogVGhlIGZhY2V0ICclcycgaXMgbm90IGFsbG93ZWQgb24gdHlwZXMgZGVyaXZlZCBmcm9tIHRoZSAiCisJInR5cGUgJXMuXG4iLAorCUJBRF9DQVNUIGRlcywgeG1sU2NoZW1hRmFjZXRUeXBlVG9TdHJpbmcoZmFjZXQtPnR5cGUpLAorCXhtbFNjaGVtYUZvcm1hdEl0ZW1Gb3JSZXBvcnQoJnN0clQsIE5VTEwsIFdYU19CQVNJQ19DQVNUIGJhc2VUeXBlLCBOVUxMKSwKKwlOVUxMLCBOVUxMKTsKKyAgICBGUkVFX0FORF9OVUxMKGRlcyk7CisgICAgRlJFRV9BTkRfTlVMTChzdHJUKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQSWxsZWdhbEZhY2V0TGlzdFVuaW9uRXJyOgorICogQGN0eHQ6IHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogdGhlIGVycm9yIGNvZGUKKyAqIEBpdGVtRGVzOiB0aGUgZGVzaWduYXRpb24gb2YgdGhlIHNjaGVtYSBpdGVtIGludm9sdmVkCisgKiBAaXRlbTogdGhlIHNjaGVtYSBpdGVtIGludm9sdmVkCisgKiBAZmFjZXQ6IHRoZSBpbGxlZ2FsIGZhY2V0CisgKgorICogUmVwb3J0cyBhbiBpbGxlZ2FsIGZhY2V0IGZvciA8bGlzdD4gYW5kIDx1bmlvbj4uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFQSWxsZWdhbEZhY2V0TGlzdFVuaW9uRXJyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCSAgeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorCQkJICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCisJCQkgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0KQoreworICAgIHhtbENoYXIgKmRlcyA9IE5VTEw7CisKKyAgICB4bWxTY2hlbWFGb3JtYXRJdGVtRm9yUmVwb3J0KCZkZXMsIE5VTEwsIFdYU19CQVNJQ19DQVNUIHR5cGUsCisJdHlwZS0+bm9kZSk7CisgICAgeG1sU2NoZW1hUEVycihjdHh0LCB0eXBlLT5ub2RlLCBlcnJvciwKKwkiJXM6IFRoZSBmYWNldCAnJXMnIGlzIG5vdCBhbGxvd2VkLlxuIiwKKwlCQURfQ0FTVCBkZXMsIHhtbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nKGZhY2V0LT50eXBlKSk7CisgICAgRlJFRV9BTkRfTlVMTChkZXMpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBNdXR1YWxFeGNsQXR0ckVycjoKKyAqIEBjdHh0OiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycm9yOiB0aGUgZXJyb3IgY29kZQorICogQGVsZW1EZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgcGFyZW50IGVsZW1lbnQgbm9kZQorICogQGF0dHI6IHRoZSBiYWQgYXR0cmlidXRlIG5vZGUKKyAqIEB0eXBlOiB0aGUgY29ycmVzcG9uZGluZyB0eXBlIG9mIHRoZSBhdHRyaWJ1dGUgbm9kZQorICoKKyAqIFJlcG9ydHMgYW4gaWxsZWdhbCBhdHRyaWJ1dGUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFQTXV0dWFsRXhjbEF0dHJFcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKwkJCSB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgb3duZXJJdGVtLAorCQkJIHhtbEF0dHJQdHIgYXR0ciwKKwkJCSBjb25zdCBjaGFyICpuYW1lMSwKKwkJCSBjb25zdCBjaGFyICpuYW1lMikKK3sKKyAgICB4bWxDaGFyICpkZXMgPSBOVUxMOworCisgICAgeG1sU2NoZW1hRm9ybWF0SXRlbUZvclJlcG9ydCgmZGVzLCBOVUxMLCBXWFNfQkFTSUNfQ0FTVCBvd25lckl0ZW0sIGF0dHItPnBhcmVudCk7CisgICAgeG1sU2NoZW1hUEVyckV4dChjdHh0LCAoeG1sTm9kZVB0cikgYXR0ciwgZXJyb3IsIE5VTEwsIE5VTEwsIE5VTEwsCisJIiVzOiBUaGUgYXR0cmlidXRlcyAnJXMnIGFuZCAnJXMnIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuXG4iLAorCUJBRF9DQVNUIGRlcywgQkFEX0NBU1QgbmFtZTEsIEJBRF9DQVNUIG5hbWUyLCBOVUxMLCBOVUxMKTsKKyAgICBGUkVFX0FORF9OVUxMKGRlcyk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnI6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZXJyb3I6IHRoZSBlcnJvciBjb2RlCisgKiBAdHlwZTogdGhlIHR5cGUgc3BlY2lmaWVyCisgKiBAb3duZXJEZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgb3duZXIKKyAqIEBvd25lckl0ZW06IHRoZSBzY2hlbWEgb2JqZWN0IGlmIGV4aXN0ZW50CisgKiBAbm9kZTogdGhlIHZhbGlkYXRlZCBub2RlCisgKiBAdmFsdWU6IHRoZSB2YWxpZGF0ZWQgdmFsdWUKKyAqCisgKiBSZXBvcnRzIGEgc2ltcGxlIHR5cGUgdmFsaWRhdGlvbiBlcnJvci4KKyAqIFRPRE86IFNob3VsZCB0aGlzIHJlcG9ydCB0aGUgdmFsdWUgb2YgYW4gZWxlbWVudCBhcyB3ZWxsPworICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJeG1sUGFyc2VyRXJyb3JzIGVycm9yLAorCQkJeG1sU2NoZW1hQmFzaWNJdGVtUHRyIG93bmVySXRlbSBBVFRSSUJVVEVfVU5VU0VELAorCQkJeG1sTm9kZVB0ciBub2RlLAorCQkJeG1sU2NoZW1hVHlwZVB0ciB0eXBlLAorCQkJY29uc3QgY2hhciAqZXhwZWN0ZWQsCisJCQljb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCWNvbnN0IGNoYXIgKm1lc3NhZ2UsCisJCQljb25zdCB4bWxDaGFyICpzdHIxLAorCQkJY29uc3QgeG1sQ2hhciAqc3RyMikKK3sKKyAgICB4bWxDaGFyICptc2cgPSBOVUxMOworCisgICAgeG1sU2NoZW1hRm9ybWF0Tm9kZUZvckVycm9yKCZtc2csIEFDVFhUX0NBU1QgY3R4dCwgbm9kZSk7CisgICAgaWYgKG1lc3NhZ2UgPT0gTlVMTCkgeworCS8qCisJKiBVc2UgZGVmYXVsdCBtZXNzYWdlcy4KKwkqLworCWlmICh0eXBlICE9IE5VTEwpIHsKKwkgICAgaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKQorCQltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiJyVzJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBvZiAiKTsKKwkgICAgZWxzZQorCQltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiVGhlIGNoYXJhY3RlciBjb250ZW50IGlzIG5vdCBhICIKKwkJInZhbGlkIHZhbHVlIG9mICIpOworCSAgICBpZiAoISB4bWxTY2hlbWFJc0dsb2JhbEl0ZW0odHlwZSkpCisJCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJ0aGUgbG9jYWwgIik7CisJICAgIGVsc2UKKwkJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgInRoZSAiKTsKKworCSAgICBpZiAoV1hTX0lTX0FUT01JQyh0eXBlKSkKKwkJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgImF0b21pYyB0eXBlIik7CisJICAgIGVsc2UgaWYgKFdYU19JU19MSVNUKHR5cGUpKQorCQltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAibGlzdCB0eXBlIik7CisJICAgIGVsc2UgaWYgKFdYU19JU19VTklPTih0eXBlKSkKKwkJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgInVuaW9uIHR5cGUiKTsKKworCSAgICBpZiAoeG1sU2NoZW1hSXNHbG9iYWxJdGVtKHR5cGUpKSB7CisJCXhtbENoYXIgKnN0ciA9IE5VTEw7CisJCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIgJyIpOworCQlpZiAodHlwZS0+YnVpbHRJblR5cGUgIT0gMCkgeworCQkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgInhzOiIpOworCQkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgdHlwZS0+bmFtZSk7CisJCX0gZWxzZQorCQkgICAgbXNnID0geG1sU3RyY2F0KG1zZywKKwkJCXhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsCisJCQkgICAgdHlwZS0+dGFyZ2V0TmFtZXNwYWNlLCB0eXBlLT5uYW1lKSk7CisJCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICInLiIpOworCQlGUkVFX0FORF9OVUxMKHN0cik7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICBpZiAobm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpCisJCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICJUaGUgdmFsdWUgJyVzJyBpcyBub3QgdmFsaWQuIik7CisJICAgIGVsc2UKKwkJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIlRoZSBjaGFyYWN0ZXIgY29udGVudCBpcyBub3QgIgorCQkidmFsaWQuIik7CisJfQorCWlmIChleHBlY3RlZCkgeworCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiIEV4cGVjdGVkIGlzICciKTsKKwkgICAgbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgZXhwZWN0ZWQpOworCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiJy5cbiIpOworCX0gZWxzZQorCSAgICBtc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiXG4iKTsKKwlpZiAobm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpCisJICAgIHhtbFNjaGVtYVBFcnIoY3R4dCwgbm9kZSwgZXJyb3IsIChjb25zdCBjaGFyICopIG1zZywgdmFsdWUsIE5VTEwpOworCWVsc2UKKwkgICAgeG1sU2NoZW1hUEVycihjdHh0LCBub2RlLCBlcnJvciwgKGNvbnN0IGNoYXIgKikgbXNnLCBOVUxMLCBOVUxMKTsKKyAgICB9IGVsc2UgeworCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUIG1lc3NhZ2UpOworCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIuXG4iKTsKKwl4bWxTY2hlbWFQRXJyRXh0KGN0eHQsIG5vZGUsIGVycm9yLCBOVUxMLCBOVUxMLCBOVUxMLAorCSAgICAgKGNvbnN0IGNoYXIqKSBtc2csIHN0cjEsIHN0cjIsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICAvKiBDbGVhbnVwLiAqLworICAgIEZSRUVfQU5EX05VTEwobXNnKQorfQorCisvKioKKyAqIHhtbFNjaGVtYVBDb250ZW50RXJyOgorICogQGN0eHQ6IHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogdGhlIGVycm9yIGNvZGUKKyAqIEBvbndlckRlczogdGhlIGRlc2lnbmF0aW9uIG9mIHRoZSBob2xkZXIgb2YgdGhlIGNvbnRlbnQKKyAqIEBvd25lckl0ZW06IHRoZSBvd25lciBpdGVtIG9mIHRoZSBob2xkZXIgb2YgdGhlIGNvbnRlbnQKKyAqIEBvd25lckVsZW06IHRoZSBub2RlIG9mIHRoZSBob2xkZXIgb2YgdGhlIGNvbnRlbnQKKyAqIEBjaGlsZDogdGhlIGludmFsaWQgY2hpbGQgbm9kZQorICogQG1lc3NhZ2U6IHRoZSBvcHRpb25hbCBlcnJvciBtZXNzYWdlCisgKiBAY29udGVudDogdGhlIG9wdGlvbmFsIHN0cmluZyBkZXNjcmliaW5nIHRoZSBjb3JyZWN0IGNvbnRlbnQKKyAqCisgKiBSZXBvcnRzIGFuIGVycm9yIGNvbmNlcm5pbmcgdGhlIGNvbnRlbnQgb2YgYSBzY2hlbWEgZWxlbWVudC4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBDb250ZW50RXJyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJICAgICB4bWxQYXJzZXJFcnJvcnMgZXJyb3IsCisJCSAgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIG93bmVySXRlbSwKKwkJICAgICB4bWxOb2RlUHRyIG93bmVyRWxlbSwKKwkJICAgICB4bWxOb2RlUHRyIGNoaWxkLAorCQkgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsCisJCSAgICAgY29uc3QgY2hhciAqY29udGVudCkKK3sKKyAgICB4bWxDaGFyICpkZXMgPSBOVUxMOworCisgICAgeG1sU2NoZW1hRm9ybWF0SXRlbUZvclJlcG9ydCgmZGVzLCBOVUxMLCBvd25lckl0ZW0sIG93bmVyRWxlbSk7CisgICAgaWYgKG1lc3NhZ2UgIT0gTlVMTCkKKwl4bWxTY2hlbWFQRXJyMihjdHh0LCBvd25lckVsZW0sIGNoaWxkLCBlcnJvciwKKwkgICAgIiVzOiAlcy5cbiIsCisJICAgIEJBRF9DQVNUIGRlcywgQkFEX0NBU1QgbWVzc2FnZSk7CisgICAgZWxzZSB7CisJaWYgKGNvbnRlbnQgIT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQRXJyMihjdHh0LCBvd25lckVsZW0sIGNoaWxkLCBlcnJvciwKKwkJIiVzOiBUaGUgY29udGVudCBpcyBub3QgdmFsaWQuIEV4cGVjdGVkIGlzICVzLlxuIiwKKwkJQkFEX0NBU1QgZGVzLCBCQURfQ0FTVCBjb250ZW50KTsKKwl9IGVsc2UgeworCSAgICB4bWxTY2hlbWFQRXJyMihjdHh0LCBvd25lckVsZW0sIGNoaWxkLCBlcnJvciwKKwkJIiVzOiBUaGUgY29udGVudCBpcyBub3QgdmFsaWQuXG4iLAorCQlCQURfQ0FTVCBkZXMsIE5VTEwpOworCX0KKyAgICB9CisgICAgRlJFRV9BTkRfTlVMTChkZXMpCit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVN0cmVhbWFibGUgZXJyb3IgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVZhbGlkYXRpb24gaGVscGVyIGZ1bmN0aW9ucwkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQkJQWxsb2NhdGlvbiBmdW5jdGlvbnMJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxTY2hlbWFOZXdTY2hlbWFGb3JQYXJzZXJDdHh0OgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBTY2hlbWEgc3RydWN0dXJlLgorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGFsbG9jYXRlZCBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9yIGVycm9yCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFQdHIKK3htbFNjaGVtYU5ld1NjaGVtYSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sU2NoZW1hUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxTY2hlbWFQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgc2NoZW1hIiwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWEpKTsKKyAgICByZXQtPmRpY3QgPSBjdHh0LT5kaWN0OworICAgIHhtbERpY3RSZWZlcmVuY2UocmV0LT5kaWN0KTsKKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFOZXdGYWNldDoKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBGYWNldCBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworeG1sU2NoZW1hRmFjZXRQdHIKK3htbFNjaGVtYU5ld0ZhY2V0KHZvaWQpCit7CisgICAgeG1sU2NoZW1hRmFjZXRQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYUZhY2V0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYUZhY2V0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFGYWNldCkpOworCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYU5ld0Fubm90OgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBub2RlOiAgYSBub2RlCisgKgorICogQWxsb2NhdGUgYSBuZXcgYW5ub3RhdGlvbiBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYUFubm90UHRyCit4bWxTY2hlbWFOZXdBbm5vdCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxTY2hlbWFBbm5vdFB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sU2NoZW1hQW5ub3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hQW5ub3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sU2NoZW1hUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBhbm5vdGF0aW9uIiwgbm9kZSk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFBbm5vdCkpOworICAgIHJldC0+Y29udGVudCA9IG5vZGU7CisgICAgcmV0dXJuIChyZXQpOworfQorCitzdGF0aWMgeG1sU2NoZW1hSXRlbUxpc3RQdHIKK3htbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKHZvaWQpCit7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgcmV0OworCisgICAgcmV0ID0geG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFJdGVtTGlzdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBFcnJNZW1vcnkoTlVMTCwKKwkgICAgImFsbG9jYXRpbmcgYW4gaXRlbSBsaXN0IHN0cnVjdHVyZSIsIE5VTEwpOworCXJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFJdGVtTGlzdCkpOworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYUl0ZW1MaXN0Q2xlYXIoeG1sU2NoZW1hSXRlbUxpc3RQdHIgbGlzdCkKK3sKKyAgICBpZiAobGlzdC0+aXRlbXMgIT0gTlVMTCkgeworCXhtbEZyZWUobGlzdC0+aXRlbXMpOworCWxpc3QtPml0ZW1zID0gTlVMTDsKKyAgICB9CisgICAgbGlzdC0+bmJJdGVtcyA9IDA7CisgICAgbGlzdC0+c2l6ZUl0ZW1zID0gMDsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hSXRlbUxpc3RBZGQoeG1sU2NoZW1hSXRlbUxpc3RQdHIgbGlzdCwgdm9pZCAqaXRlbSkKK3sKKyAgICBpZiAobGlzdC0+aXRlbXMgPT0gTlVMTCkgeworCWxpc3QtPml0ZW1zID0gKHZvaWQgKiopIHhtbE1hbGxvYygKKwkgICAgMjAgKiBzaXplb2Yodm9pZCAqKSk7CisJaWYgKGxpc3QtPml0ZW1zID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBuZXcgaXRlbSBsaXN0IiwgTlVMTCk7CisJICAgIHJldHVybigtMSk7CisJfQorCWxpc3QtPnNpemVJdGVtcyA9IDIwOworICAgIH0gZWxzZSBpZiAobGlzdC0+c2l6ZUl0ZW1zIDw9IGxpc3QtPm5iSXRlbXMpIHsKKwlsaXN0LT5zaXplSXRlbXMgKj0gMjsKKwlsaXN0LT5pdGVtcyA9ICh2b2lkICoqKSB4bWxSZWFsbG9jKGxpc3QtPml0ZW1zLAorCSAgICBsaXN0LT5zaXplSXRlbXMgKiBzaXplb2Yodm9pZCAqKSk7CisJaWYgKGxpc3QtPml0ZW1zID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiZ3Jvd2luZyBpdGVtIGxpc3QiLCBOVUxMKTsKKwkgICAgbGlzdC0+c2l6ZUl0ZW1zID0gMDsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorICAgIGxpc3QtPml0ZW1zW2xpc3QtPm5iSXRlbXMrK10gPSBpdGVtOworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hSXRlbUxpc3RBZGRTaXplKHhtbFNjaGVtYUl0ZW1MaXN0UHRyIGxpc3QsCisJCQkgaW50IGluaXRpYWxTaXplLAorCQkJIHZvaWQgKml0ZW0pCit7CisgICAgaWYgKGxpc3QtPml0ZW1zID09IE5VTEwpIHsKKwlpZiAoaW5pdGlhbFNpemUgPD0gMCkKKwkgICAgaW5pdGlhbFNpemUgPSAxOworCWxpc3QtPml0ZW1zID0gKHZvaWQgKiopIHhtbE1hbGxvYygKKwkgICAgaW5pdGlhbFNpemUgKiBzaXplb2Yodm9pZCAqKSk7CisJaWYgKGxpc3QtPml0ZW1zID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBuZXcgaXRlbSBsaXN0IiwgTlVMTCk7CisJICAgIHJldHVybigtMSk7CisJfQorCWxpc3QtPnNpemVJdGVtcyA9IGluaXRpYWxTaXplOworICAgIH0gZWxzZSBpZiAobGlzdC0+c2l6ZUl0ZW1zIDw9IGxpc3QtPm5iSXRlbXMpIHsKKwlsaXN0LT5zaXplSXRlbXMgKj0gMjsKKwlsaXN0LT5pdGVtcyA9ICh2b2lkICoqKSB4bWxSZWFsbG9jKGxpc3QtPml0ZW1zLAorCSAgICBsaXN0LT5zaXplSXRlbXMgKiBzaXplb2Yodm9pZCAqKSk7CisJaWYgKGxpc3QtPml0ZW1zID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiZ3Jvd2luZyBpdGVtIGxpc3QiLCBOVUxMKTsKKwkgICAgbGlzdC0+c2l6ZUl0ZW1zID0gMDsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorICAgIGxpc3QtPml0ZW1zW2xpc3QtPm5iSXRlbXMrK10gPSBpdGVtOworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hSXRlbUxpc3RJbnNlcnQoeG1sU2NoZW1hSXRlbUxpc3RQdHIgbGlzdCwgdm9pZCAqaXRlbSwgaW50IGlkeCkKK3sKKyAgICBpZiAobGlzdC0+aXRlbXMgPT0gTlVMTCkgeworCWxpc3QtPml0ZW1zID0gKHZvaWQgKiopIHhtbE1hbGxvYygKKwkgICAgMjAgKiBzaXplb2Yodm9pZCAqKSk7CisJaWYgKGxpc3QtPml0ZW1zID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBuZXcgaXRlbSBsaXN0IiwgTlVMTCk7CisJICAgIHJldHVybigtMSk7CisJfQorCWxpc3QtPnNpemVJdGVtcyA9IDIwOworICAgIH0gZWxzZSBpZiAobGlzdC0+c2l6ZUl0ZW1zIDw9IGxpc3QtPm5iSXRlbXMpIHsKKwlsaXN0LT5zaXplSXRlbXMgKj0gMjsKKwlsaXN0LT5pdGVtcyA9ICh2b2lkICoqKSB4bWxSZWFsbG9jKGxpc3QtPml0ZW1zLAorCSAgICBsaXN0LT5zaXplSXRlbXMgKiBzaXplb2Yodm9pZCAqKSk7CisJaWYgKGxpc3QtPml0ZW1zID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiZ3Jvd2luZyBpdGVtIGxpc3QiLCBOVUxMKTsKKwkgICAgbGlzdC0+c2l6ZUl0ZW1zID0gMDsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBKdXN0IGFwcGVuZCBpZiB0aGUgaW5kZXggaXMgZ3JlYXRlci9lcXVhbCB0aGFuIHRoZSBpdGVtIGNvdW50LgorICAgICovCisgICAgaWYgKGlkeCA+PSBsaXN0LT5uYkl0ZW1zKSB7CisJbGlzdC0+aXRlbXNbbGlzdC0+bmJJdGVtcysrXSA9IGl0ZW07CisgICAgfSBlbHNlIHsKKwlpbnQgaTsKKwlmb3IgKGkgPSBsaXN0LT5uYkl0ZW1zOyBpID4gaWR4OyBpLS0pCisJICAgIGxpc3QtPml0ZW1zW2ldID0gbGlzdC0+aXRlbXNbaS0xXTsKKwlsaXN0LT5pdGVtc1tpZHhdID0gaXRlbTsKKwlsaXN0LT5uYkl0ZW1zKys7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworI2lmIDAgLyogZW5hYmxlIGlmIGV2ZXIgbmVlZGVkICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFJdGVtTGlzdEluc2VydFNpemUoeG1sU2NoZW1hSXRlbUxpc3RQdHIgbGlzdCwKKwkJCSAgICBpbnQgaW5pdGlhbFNpemUsCisJCQkgICAgdm9pZCAqaXRlbSwKKwkJCSAgICBpbnQgaWR4KQoreworICAgIGlmIChsaXN0LT5pdGVtcyA9PSBOVUxMKSB7CisJaWYgKGluaXRpYWxTaXplIDw9IDApCisJICAgIGluaXRpYWxTaXplID0gMTsKKwlsaXN0LT5pdGVtcyA9ICh2b2lkICoqKSB4bWxNYWxsb2MoCisJICAgIGluaXRpYWxTaXplICogc2l6ZW9mKHZvaWQgKikpOworCWlmIChsaXN0LT5pdGVtcyA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoTlVMTCwgImFsbG9jYXRpbmcgbmV3IGl0ZW0gbGlzdCIsIE5VTEwpOworCSAgICByZXR1cm4oLTEpOworCX0KKwlsaXN0LT5zaXplSXRlbXMgPSBpbml0aWFsU2l6ZTsKKyAgICB9IGVsc2UgaWYgKGxpc3QtPnNpemVJdGVtcyA8PSBsaXN0LT5uYkl0ZW1zKSB7CisJbGlzdC0+c2l6ZUl0ZW1zICo9IDI7CisJbGlzdC0+aXRlbXMgPSAodm9pZCAqKikgeG1sUmVhbGxvYyhsaXN0LT5pdGVtcywKKwkgICAgbGlzdC0+c2l6ZUl0ZW1zICogc2l6ZW9mKHZvaWQgKikpOworCWlmIChsaXN0LT5pdGVtcyA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoTlVMTCwgImdyb3dpbmcgaXRlbSBsaXN0IiwgTlVMTCk7CisJICAgIGxpc3QtPnNpemVJdGVtcyA9IDA7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKyAgICAvKgorICAgICogSnVzdCBhcHBlbmQgaWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIvZXF1YWwgdGhhbiB0aGUgaXRlbSBjb3VudC4KKyAgICAqLworICAgIGlmIChpZHggPj0gbGlzdC0+bmJJdGVtcykgeworCWxpc3QtPml0ZW1zW2xpc3QtPm5iSXRlbXMrK10gPSBpdGVtOworICAgIH0gZWxzZSB7CisJaW50IGk7CisJZm9yIChpID0gbGlzdC0+bmJJdGVtczsgaSA+IGlkeDsgaS0tKQorCSAgICBsaXN0LT5pdGVtc1tpXSA9IGxpc3QtPml0ZW1zW2ktMV07CisJbGlzdC0+aXRlbXNbaWR4XSA9IGl0ZW07CisJbGlzdC0+bmJJdGVtcysrOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisjZW5kaWYKKworc3RhdGljIGludAoreG1sU2NoZW1hSXRlbUxpc3RSZW1vdmUoeG1sU2NoZW1hSXRlbUxpc3RQdHIgbGlzdCwgaW50IGlkeCkKK3sKKyAgICBpbnQgaTsKKyAgICBpZiAoKGxpc3QtPml0ZW1zID09IE5VTEwpIHx8IChpZHggPj0gbGlzdC0+bmJJdGVtcykpIHsKKwl4bWxTY2hlbWFQU2ltcGxlRXJyKCJJbnRlcm5hbCBlcnJvcjogeG1sU2NoZW1hSXRlbUxpc3RSZW1vdmUsICIKKwkgICAgImluZGV4IGVycm9yLlxuIik7CisJcmV0dXJuKC0xKTsKKyAgICB9CisKKyAgICBpZiAobGlzdC0+bmJJdGVtcyA9PSAxKSB7CisJLyogVE9ETzogUmVhbGx5IGZyZWUgdGhlIGxpc3Q/ICovCisJeG1sRnJlZShsaXN0LT5pdGVtcyk7CisJbGlzdC0+aXRlbXMgPSBOVUxMOworCWxpc3QtPm5iSXRlbXMgPSAwOworCWxpc3QtPnNpemVJdGVtcyA9IDA7CisgICAgfSBlbHNlIGlmIChsaXN0LT5uYkl0ZW1zIC0xID09IGlkeCkgeworCWxpc3QtPm5iSXRlbXMtLTsKKyAgICB9IGVsc2UgeworCWZvciAoaSA9IGlkeDsgaSA8IGxpc3QtPm5iSXRlbXMgLTE7IGkrKykKKwkgICAgbGlzdC0+aXRlbXNbaV0gPSBsaXN0LT5pdGVtc1tpKzFdOworCWxpc3QtPm5iSXRlbXMtLTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUl0ZW1MaXN0RnJlZToKKyAqIEBhbm5vdDogIGEgc2NoZW1hIHR5cGUgc3RydWN0dXJlCisgKgorICogRGVhbGxvY2F0ZSBhIGFubm90YXRpb24gc3RydWN0dXJlCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJdGVtTGlzdEZyZWUoeG1sU2NoZW1hSXRlbUxpc3RQdHIgbGlzdCkKK3sKKyAgICBpZiAobGlzdCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBpZiAobGlzdC0+aXRlbXMgIT0gTlVMTCkKKwl4bWxGcmVlKGxpc3QtPml0ZW1zKTsKKyAgICB4bWxGcmVlKGxpc3QpOworfQorCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hQnVja2V0RnJlZSh4bWxTY2hlbWFCdWNrZXRQdHIgYnVja2V0KQoreworICAgIGlmIChidWNrZXQgPT0gTlVMTCkKKwlyZXR1cm47CisgICAgaWYgKGJ1Y2tldC0+Z2xvYmFscyAhPSBOVUxMKSB7CisJeG1sU2NoZW1hQ29tcG9uZW50TGlzdEZyZWUoYnVja2V0LT5nbG9iYWxzKTsKKwl4bWxTY2hlbWFJdGVtTGlzdEZyZWUoYnVja2V0LT5nbG9iYWxzKTsKKyAgICB9CisgICAgaWYgKGJ1Y2tldC0+bG9jYWxzICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFDb21wb25lbnRMaXN0RnJlZShidWNrZXQtPmxvY2Fscyk7CisJeG1sU2NoZW1hSXRlbUxpc3RGcmVlKGJ1Y2tldC0+bG9jYWxzKTsKKyAgICB9CisgICAgaWYgKGJ1Y2tldC0+cmVsYXRpb25zICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFTY2hlbWFSZWxhdGlvblB0ciBwcmV2LCBjdXIgPSBidWNrZXQtPnJlbGF0aW9uczsKKwlkbyB7CisJICAgIHByZXYgPSBjdXI7CisJICAgIGN1ciA9IGN1ci0+bmV4dDsKKwkgICAgeG1sRnJlZShwcmV2KTsKKwl9IHdoaWxlIChjdXIgIT0gTlVMTCk7CisgICAgfQorICAgIGlmICgoISBidWNrZXQtPnByZXNlcnZlRG9jKSAmJiAoYnVja2V0LT5kb2MgIT0gTlVMTCkpIHsKKwl4bWxGcmVlRG9jKGJ1Y2tldC0+ZG9jKTsKKyAgICB9CisgICAgaWYgKGJ1Y2tldC0+dHlwZSA9PSBYTUxfU0NIRU1BX1NDSEVNQV9JTVBPUlQpIHsKKwlpZiAoV1hTX0lNUEJVQ0tFVChidWNrZXQpLT5zY2hlbWEgIT0gTlVMTCkKKwkgICAgeG1sU2NoZW1hRnJlZShXWFNfSU1QQlVDS0VUKGJ1Y2tldCktPnNjaGVtYSk7CisgICAgfQorICAgIHhtbEZyZWUoYnVja2V0KTsKK30KKworc3RhdGljIHhtbFNjaGVtYUJ1Y2tldFB0cgoreG1sU2NoZW1hQnVja2V0Q3JlYXRlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgaW50IHR5cGUsIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZSkKK3sKKyAgICB4bWxTY2hlbWFCdWNrZXRQdHIgcmV0OworICAgIGludCBzaXplOworICAgIHhtbFNjaGVtYVB0ciBtYWluU2NoZW1hOworCisgICAgaWYgKFdYU19DT05TVFJVQ1RPUihwY3R4dCktPm1haW5TY2hlbWEgPT0gTlVMTCkgeworCVBFUlJPUl9JTlQoInhtbFNjaGVtYUJ1Y2tldENyZWF0ZSIsCisJICAgICJubyBtYWluIHNjaGVtYSBvbiBjb25zdHJ1Y3RvciIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWFpblNjaGVtYSA9IFdYU19DT05TVFJVQ1RPUihwY3R4dCktPm1haW5TY2hlbWE7CisgICAgLyogQ3JlYXRlIHRoZSBzY2hlbWEgYnVja2V0LiAqLworICAgIGlmIChXWFNfSVNfQlVDS0VUX0lOQ1JFREVGKHR5cGUpKQorCXNpemUgPSBzaXplb2YoeG1sU2NoZW1hSW5jbHVkZSk7CisgICAgZWxzZQorCXNpemUgPSBzaXplb2YoeG1sU2NoZW1hSW1wb3J0KTsKKyAgICByZXQgPSAoeG1sU2NoZW1hQnVja2V0UHRyKSB4bWxNYWxsb2Moc2l6ZSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBzY2hlbWEgYnVja2V0IiwgTlVMTCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplKTsKKyAgICByZXQtPnRhcmdldE5hbWVzcGFjZSA9IHRhcmdldE5hbWVzcGFjZTsKKyAgICByZXQtPnR5cGUgPSB0eXBlOworICAgIHJldC0+Z2xvYmFscyA9IHhtbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKCk7CisgICAgaWYgKHJldC0+Z2xvYmFscyA9PSBOVUxMKSB7CisJeG1sRnJlZShyZXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0LT5sb2NhbHMgPSB4bWxTY2hlbWFJdGVtTGlzdENyZWF0ZSgpOworICAgIGlmIChyZXQtPmxvY2FscyA9PSBOVUxMKSB7CisJeG1sRnJlZShyZXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgLyoKKyAgICAqIFRoZSBmb2xsb3dpbmcgd2lsbCBhc3N1cmUgdGhhdCBvbmx5IHRoZSBmaXJzdCBidWNrZXQgaXMgbWFya2VkIGFzCisgICAgKiBYTUxfU0NIRU1BX1NDSEVNQV9NQUlOIGFuZCBpdCBwb2ludHMgdG8gdGhlICptYWluKiBzY2hlbWEuCisgICAgKiBGb3IgZWFjaCBmb2xsb3dpbmcgaW1wb3J0IGJ1Y2tldHMgYW4geG1sU2NoZW1hIHdpbGwgYmUgY3JlYXRlZC4KKyAgICAqIEFuIHhtbFNjaGVtYSB3aWxsIGJlIGNyZWF0ZWQgZm9yIGV2ZXJ5IGRpc3RpbmN0IHRhcmdldE5hbWVzcGFjZS4KKyAgICAqIFdlIGFzc2lnbiB0aGUgdGFyZ2V0TmFtZXNwYWNlIHRvIHRoZSBzY2hlbWF0YSBoZXJlLgorICAgICovCisgICAgaWYgKCEgV1hTX0hBU19CVUNLRVRTKHBjdHh0KSkgeworCWlmIChXWFNfSVNfQlVDS0VUX0lOQ1JFREVGKHR5cGUpKSB7CisJICAgIFBFUlJPUl9JTlQoInhtbFNjaGVtYUJ1Y2tldENyZWF0ZSIsCisJCSJmaXJzdCBidWNrZXQgYnV0IGl0J3MgYW4gaW5jbHVkZSBvciByZWRlZmluZSIpOworCSAgICB4bWxTY2hlbWFCdWNrZXRGcmVlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJLyogRm9yY2UgdGhlIHR5cGUgdG8gYmUgWE1MX1NDSEVNQV9TQ0hFTUFfTUFJTi4gKi8KKwlyZXQtPnR5cGUgPSBYTUxfU0NIRU1BX1NDSEVNQV9NQUlOOworCS8qIFBvaW50IHRvIHRoZSAqbWFpbiogc2NoZW1hLiAqLworCVdYU19DT05TVFJVQ1RPUihwY3R4dCktPm1haW5CdWNrZXQgPSByZXQ7CisJV1hTX0lNUEJVQ0tFVChyZXQpLT5zY2hlbWEgPSBtYWluU2NoZW1hOworCS8qCisJKiBFbnN1cmUgdGhhdCB0aGUgbWFpbiBzY2hlbWEgZ2V0cyBhIHRhcmdldE5hbWVzcGFjZS4KKwkqLworCW1haW5TY2hlbWEtPnRhcmdldE5hbWVzcGFjZSA9IHRhcmdldE5hbWVzcGFjZTsKKyAgICB9IGVsc2UgeworCWlmICh0eXBlID09IFhNTF9TQ0hFTUFfU0NIRU1BX01BSU4pIHsKKwkgICAgUEVSUk9SX0lOVCgieG1sU2NoZW1hQnVja2V0Q3JlYXRlIiwKKwkJIm1haW4gYnVja2V0IGJ1dCBpdCdzIG5vdCB0aGUgZmlyc3Qgb25lIik7CisJICAgIHhtbFNjaGVtYUJ1Y2tldEZyZWUocmV0KTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0gZWxzZSBpZiAodHlwZSA9PSBYTUxfU0NIRU1BX1NDSEVNQV9JTVBPUlQpIHsKKwkgICAgLyoKKwkgICAgKiBDcmVhdGUgYSBzY2hlbWEgZm9yIGltcG9ydHMgYW5kIGFzc2lnbiB0aGUKKwkgICAgKiB0YXJnZXROYW1lc3BhY2UuCisJICAgICovCisJICAgIFdYU19JTVBCVUNLRVQocmV0KS0+c2NoZW1hID0geG1sU2NoZW1hTmV3U2NoZW1hKHBjdHh0KTsKKwkgICAgaWYgKFdYU19JTVBCVUNLRVQocmV0KS0+c2NoZW1hID09IE5VTEwpIHsKKwkJeG1sU2NoZW1hQnVja2V0RnJlZShyZXQpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgV1hTX0lNUEJVQ0tFVChyZXQpLT5zY2hlbWEtPnRhcmdldE5hbWVzcGFjZSA9IHRhcmdldE5hbWVzcGFjZTsKKwl9CisgICAgfQorICAgIGlmIChXWFNfSVNfQlVDS0VUX0lNUE1BSU4odHlwZSkpIHsKKwlpbnQgcmVzOworCS8qCisJKiBJbXBvcnRzIGdvIGludG8gdGhlICJzY2hlbWFzSW1wb3J0cyIgc2xvdCBvZiB0aGUgbWFpbiAqc2NoZW1hKi4KKwkqIE5vdGUgdGhhdCB3ZSBjcmVhdGUgYW4gaW1wb3J0IGVudHJ5IGZvciB0aGUgbWFpbiBzY2hlbWEgYXMgd2VsbDsgaS5lLiwKKwkqIGV2ZW4gaWYgdGhlcmUncyBvbmx5IG9uZSBzY2hlbWEsIHdlJ2xsIGdldCBhbiBpbXBvcnQuCisJKi8KKwlpZiAobWFpblNjaGVtYS0+c2NoZW1hc0ltcG9ydHMgPT0gTlVMTCkgeworCSAgICBtYWluU2NoZW1hLT5zY2hlbWFzSW1wb3J0cyA9IHhtbEhhc2hDcmVhdGVEaWN0KDUsCisJCVdYU19DT05TVFJVQ1RPUihwY3R4dCktPmRpY3QpOworCSAgICBpZiAobWFpblNjaGVtYS0+c2NoZW1hc0ltcG9ydHMgPT0gTlVMTCkgeworCQl4bWxTY2hlbWFCdWNrZXRGcmVlKHJldCk7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCX0KKwlpZiAodGFyZ2V0TmFtZXNwYWNlID09IE5VTEwpCisJICAgIHJlcyA9IHhtbEhhc2hBZGRFbnRyeShtYWluU2NoZW1hLT5zY2hlbWFzSW1wb3J0cywKKwkJWE1MX1NDSEVNQVNfTk9fTkFNRVNQQUNFLCByZXQpOworCWVsc2UKKwkgICAgcmVzID0geG1sSGFzaEFkZEVudHJ5KG1haW5TY2hlbWEtPnNjaGVtYXNJbXBvcnRzLAorCQl0YXJnZXROYW1lc3BhY2UsIHJldCk7CisJaWYgKHJlcyAhPSAwKSB7CisJICAgIFBFUlJPUl9JTlQoInhtbFNjaGVtYUJ1Y2tldENyZWF0ZSIsCisJCSJmYWlsZWQgdG8gYWRkIHRoZSBzY2hlbWEgYnVja2V0IHRvIHRoZSBoYXNoIik7CisJICAgIHhtbFNjaGVtYUJ1Y2tldEZyZWUocmV0KTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKyAgICB9IGVsc2UgeworCS8qIFNldCB0aGUgQG93bmVySW1wb3J0IG9mIGFuIGluY2x1ZGUgYnVja2V0LiAqLworCWlmIChXWFNfSVNfQlVDS0VUX0lNUE1BSU4oV1hTX0NPTlNUUlVDVE9SKHBjdHh0KS0+YnVja2V0LT50eXBlKSkKKwkgICAgV1hTX0lOQ0JVQ0tFVChyZXQpLT5vd25lckltcG9ydCA9CisJCVdYU19JTVBCVUNLRVQoV1hTX0NPTlNUUlVDVE9SKHBjdHh0KS0+YnVja2V0KTsKKwllbHNlCisJICAgIFdYU19JTkNCVUNLRVQocmV0KS0+b3duZXJJbXBvcnQgPQorCQlXWFNfSU5DQlVDS0VUKFdYU19DT05TVFJVQ1RPUihwY3R4dCktPmJ1Y2tldCktPm93bmVySW1wb3J0OworCisJLyogSW5jbHVkZXMgZ290IGludG8gdGhlICJpbmNsdWRlcyIgc2xvdCBvZiB0aGUgKm1haW4qIHNjaGVtYS4gKi8KKwlpZiAobWFpblNjaGVtYS0+aW5jbHVkZXMgPT0gTlVMTCkgeworCSAgICBtYWluU2NoZW1hLT5pbmNsdWRlcyA9IHhtbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKCk7CisJICAgIGlmIChtYWluU2NoZW1hLT5pbmNsdWRlcyA9PSBOVUxMKSB7CisJCXhtbFNjaGVtYUJ1Y2tldEZyZWUocmV0KTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJfQorCXhtbFNjaGVtYUl0ZW1MaXN0QWRkKG1haW5TY2hlbWEtPmluY2x1ZGVzLCByZXQpOworICAgIH0KKyAgICAvKgorICAgICogQWRkIHRvIGxpc3Qgb2YgYWxsIGJ1Y2tldHM7IHRoaXMgaXMgdXNlZCBmb3IgbG9va3VwCisgICAgKiBkdXJpbmcgc2NoZW1hIGNvbnN0cnVjdGlvbiB0aW1lIG9ubHkuCisgICAgKi8KKyAgICBpZiAoeG1sU2NoZW1hSXRlbUxpc3RBZGQoV1hTX0NPTlNUUlVDVE9SKHBjdHh0KS0+YnVja2V0cywgcmV0KSA9PSAtMSkKKwlyZXR1cm4oTlVMTCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUFkZEl0ZW1TaXplKHhtbFNjaGVtYUl0ZW1MaXN0UHRyICpsaXN0LCBpbnQgaW5pdGlhbFNpemUsIHZvaWQgKml0ZW0pCit7CisgICAgaWYgKCpsaXN0ID09IE5VTEwpIHsKKwkqbGlzdCA9IHhtbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKCk7CisJaWYgKCpsaXN0ID09IE5VTEwpCisJICAgIHJldHVybigtMSk7CisgICAgfQorICAgIHhtbFNjaGVtYUl0ZW1MaXN0QWRkU2l6ZSgqbGlzdCwgaW5pdGlhbFNpemUsIGl0ZW0pOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFGcmVlQW5ub3Q6CisgKiBAYW5ub3Q6ICBhIHNjaGVtYSB0eXBlIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBhbm5vdGF0aW9uIHN0cnVjdHVyZQorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRnJlZUFubm90KHhtbFNjaGVtYUFubm90UHRyIGFubm90KQoreworICAgIGlmIChhbm5vdCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGFubm90LT5uZXh0ID09IE5VTEwpIHsKKwl4bWxGcmVlKGFubm90KTsKKyAgICB9IGVsc2UgeworCXhtbFNjaGVtYUFubm90UHRyIHByZXY7CisKKwlkbyB7CisJICAgIHByZXYgPSBhbm5vdDsKKwkgICAgYW5ub3QgPSBhbm5vdC0+bmV4dDsKKwkgICAgeG1sRnJlZShwcmV2KTsKKwl9IHdoaWxlIChhbm5vdCAhPSBOVUxMKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZU5vdGF0aW9uOgorICogQHNjaGVtYTogIGEgc2NoZW1hIG5vdGF0aW9uIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBTY2hlbWEgTm90YXRpb24gc3RydWN0dXJlLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRnJlZU5vdGF0aW9uKHhtbFNjaGVtYU5vdGF0aW9uUHRyIG5vdGEpCit7CisgICAgaWYgKG5vdGEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIHhtbEZyZWUobm90YSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZUF0dHJpYnV0ZToKKyAqIEBhdHRyOiAgYW4gYXR0cmlidXRlIGRlY2xhcmF0aW9uCisgKgorICogRGVhbGxvY2F0ZXMgYW4gYXR0cmlidXRlIGRlY2xhcmF0aW9uIHN0cnVjdHVyZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUZyZWVBdHRyaWJ1dGUoeG1sU2NoZW1hQXR0cmlidXRlUHRyIGF0dHIpCit7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChhdHRyLT5hbm5vdCAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWVBbm5vdChhdHRyLT5hbm5vdCk7CisgICAgaWYgKGF0dHItPmRlZlZhbCAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWVWYWx1ZShhdHRyLT5kZWZWYWwpOworICAgIHhtbEZyZWUoYXR0cik7Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZUF0dHJpYnV0ZVVzZToKKyAqIEB1c2U6ICBhbiBhdHRyaWJ1dGUgdXNlCisgKgorICogRGVhbGxvY2F0ZXMgYW4gYXR0cmlidXRlIHVzZSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFGcmVlQXR0cmlidXRlVXNlKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciB1c2UpCit7CisgICAgaWYgKHVzZSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKHVzZS0+YW5ub3QgIT0gTlVMTCkKKwl4bWxTY2hlbWFGcmVlQW5ub3QodXNlLT5hbm5vdCk7CisgICAgaWYgKHVzZS0+ZGVmVmFsICE9IE5VTEwpCisJeG1sU2NoZW1hRnJlZVZhbHVlKHVzZS0+ZGVmVmFsKTsKKyAgICB4bWxGcmVlKHVzZSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZUF0dHJpYnV0ZVVzZVByb2hpYjoKKyAqIEBwcm9oaWI6ICBhbiBhdHRyaWJ1dGUgdXNlIHByb2hpYml0aW9uCisgKgorICogRGVhbGxvY2F0ZXMgYW4gYXR0cmlidXRlIHVzZSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFGcmVlQXR0cmlidXRlVXNlUHJvaGliKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYlB0ciBwcm9oaWIpCit7CisgICAgaWYgKHByb2hpYiA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgeG1sRnJlZShwcm9oaWIpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZyZWVXaWxkY2FyZE5zU2V0OgorICogc2V0OiAgYSBzY2hlbWEgd2lsZGNhcmQgbmFtZXNwYWNlCisgKgorICogRGVhbGxvY2F0ZXMgYSBsaXN0IG9mIHdpbGRjYXJkIGNvbnN0cmFpbnQgc3RydWN0dXJlcy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUZyZWVXaWxkY2FyZE5zU2V0KHhtbFNjaGVtYVdpbGRjYXJkTnNQdHIgc2V0KQoreworICAgIHhtbFNjaGVtYVdpbGRjYXJkTnNQdHIgbmV4dDsKKworICAgIHdoaWxlIChzZXQgIT0gTlVMTCkgeworCW5leHQgPSBzZXQtPm5leHQ7CisJeG1sRnJlZShzZXQpOworCXNldCA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNjaGVtYUZyZWVXaWxkY2FyZDoKKyAqIEB3aWxkY2FyZDogIGEgd2lsZGNhcmQgc3RydWN0dXJlCisgKgorICogRGVhbGxvY2F0ZXMgYSB3aWxkY2FyZCBzdHJ1Y3R1cmUuCisgKi8KK3ZvaWQKK3htbFNjaGVtYUZyZWVXaWxkY2FyZCh4bWxTY2hlbWFXaWxkY2FyZFB0ciB3aWxkY2FyZCkKK3sKKyAgICBpZiAod2lsZGNhcmQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICh3aWxkY2FyZC0+YW5ub3QgIT0gTlVMTCkKKyAgICAgICAgeG1sU2NoZW1hRnJlZUFubm90KHdpbGRjYXJkLT5hbm5vdCk7CisgICAgaWYgKHdpbGRjYXJkLT5uc1NldCAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWVXaWxkY2FyZE5zU2V0KHdpbGRjYXJkLT5uc1NldCk7CisgICAgaWYgKHdpbGRjYXJkLT5uZWdOc1NldCAhPSBOVUxMKQorCXhtbEZyZWUod2lsZGNhcmQtPm5lZ05zU2V0KTsKKyAgICB4bWxGcmVlKHdpbGRjYXJkKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFGcmVlQXR0cmlidXRlR3JvdXA6CisgKiBAc2NoZW1hOiAgYSBzY2hlbWEgYXR0cmlidXRlIGdyb3VwIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBTY2hlbWEgQXR0cmlidXRlIEdyb3VwIHN0cnVjdHVyZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUZyZWVBdHRyaWJ1dGVHcm91cCh4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciBhdHRyR3IpCit7CisgICAgaWYgKGF0dHJHciA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGF0dHJHci0+YW5ub3QgIT0gTlVMTCkKKyAgICAgICAgeG1sU2NoZW1hRnJlZUFubm90KGF0dHJHci0+YW5ub3QpOworICAgIGlmIChhdHRyR3ItPmF0dHJVc2VzICE9IE5VTEwpCisJeG1sU2NoZW1hSXRlbUxpc3RGcmVlKFdYU19MSVNUX0NBU1QgYXR0ckdyLT5hdHRyVXNlcyk7CisgICAgeG1sRnJlZShhdHRyR3IpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZyZWVRTmFtZVJlZjoKKyAqIEBpdGVtOiBhIFFOYW1lIHJlZmVyZW5jZSBzdHJ1Y3R1cmUKKyAqCisgKiBEZWFsbG9jYXRlYSBhIFFOYW1lIHJlZmVyZW5jZSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFGcmVlUU5hbWVSZWYoeG1sU2NoZW1hUU5hbWVSZWZQdHIgaXRlbSkKK3sKKyAgICB4bWxGcmVlKGl0ZW0pOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZyZWVUeXBlTGlua0xpc3Q6CisgKiBAYWxpbms6IGEgdHlwZSBsaW5rCisgKgorICogRGVhbGxvY2F0ZSBhIGxpc3Qgb2YgdHlwZXMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFGcmVlVHlwZUxpbmtMaXN0KHhtbFNjaGVtYVR5cGVMaW5rUHRyIGxpbmspCit7CisgICAgeG1sU2NoZW1hVHlwZUxpbmtQdHIgbmV4dDsKKworICAgIHdoaWxlIChsaW5rICE9IE5VTEwpIHsKKwluZXh0ID0gbGluay0+bmV4dDsKKwl4bWxGcmVlKGxpbmspOworCWxpbmsgPSBuZXh0OworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYUZyZWVJRENTdGF0ZU9iakxpc3QoeG1sU2NoZW1hSURDU3RhdGVPYmpQdHIgc3RvKQoreworICAgIHhtbFNjaGVtYUlEQ1N0YXRlT2JqUHRyIG5leHQ7CisgICAgd2hpbGUgKHN0byAhPSBOVUxMKSB7CisJbmV4dCA9IHN0by0+bmV4dDsKKwlpZiAoc3RvLT5oaXN0b3J5ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoc3RvLT5oaXN0b3J5KTsKKwlpZiAoc3RvLT54cGF0aEN0eHQgIT0gTlVMTCkKKwkgICAgeG1sRnJlZVN0cmVhbUN0eHQoKHhtbFN0cmVhbUN0eHRQdHIpIHN0by0+eHBhdGhDdHh0KTsKKwl4bWxGcmVlKHN0byk7CisJc3RvID0gbmV4dDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZUlEQzoKKyAqIEBpZGM6IGEgaWRlbnRpdHktY29uc3RyYWludCBkZWZpbml0aW9uCisgKgorICogRGVhbGxvY2F0ZXMgYW4gaWRlbnRpdHktY29uc3RyYWludCBkZWZpbml0aW9uLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRnJlZUlEQyh4bWxTY2hlbWFJRENQdHIgaWRjRGVmKQoreworICAgIHhtbFNjaGVtYUlEQ1NlbGVjdFB0ciBjdXIsIHByZXY7CisKKyAgICBpZiAoaWRjRGVmID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmIChpZGNEZWYtPmFubm90ICE9IE5VTEwpCisgICAgICAgIHhtbFNjaGVtYUZyZWVBbm5vdChpZGNEZWYtPmFubm90KTsKKyAgICAvKiBTZWxlY3RvciAqLworICAgIGlmIChpZGNEZWYtPnNlbGVjdG9yICE9IE5VTEwpIHsKKwlpZiAoaWRjRGVmLT5zZWxlY3Rvci0+eHBhdGhDb21wICE9IE5VTEwpCisJICAgIHhtbEZyZWVQYXR0ZXJuKCh4bWxQYXR0ZXJuUHRyKSBpZGNEZWYtPnNlbGVjdG9yLT54cGF0aENvbXApOworCXhtbEZyZWUoaWRjRGVmLT5zZWxlY3Rvcik7CisgICAgfQorICAgIC8qIEZpZWxkcyAqLworICAgIGlmIChpZGNEZWYtPmZpZWxkcyAhPSBOVUxMKSB7CisJY3VyID0gaWRjRGVmLT5maWVsZHM7CisJZG8geworCSAgICBwcmV2ID0gY3VyOworCSAgICBjdXIgPSBjdXItPm5leHQ7CisJICAgIGlmIChwcmV2LT54cGF0aENvbXAgIT0gTlVMTCkKKwkJeG1sRnJlZVBhdHRlcm4oKHhtbFBhdHRlcm5QdHIpIHByZXYtPnhwYXRoQ29tcCk7CisJICAgIHhtbEZyZWUocHJldik7CisJfSB3aGlsZSAoY3VyICE9IE5VTEwpOworICAgIH0KKyAgICB4bWxGcmVlKGlkY0RlZik7Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZUVsZW1lbnQ6CisgKiBAc2NoZW1hOiAgYSBzY2hlbWEgZWxlbWVudCBzdHJ1Y3R1cmUKKyAqCisgKiBEZWFsbG9jYXRlIGEgU2NoZW1hIEVsZW1lbnQgc3RydWN0dXJlLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRnJlZUVsZW1lbnQoeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtKQoreworICAgIGlmIChlbGVtID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoZWxlbS0+YW5ub3QgIT0gTlVMTCkKKyAgICAgICAgeG1sU2NoZW1hRnJlZUFubm90KGVsZW0tPmFubm90KTsKKyAgICBpZiAoZWxlbS0+Y29udE1vZGVsICE9IE5VTEwpCisgICAgICAgIHhtbFJlZ0ZyZWVSZWdleHAoZWxlbS0+Y29udE1vZGVsKTsKKyAgICBpZiAoZWxlbS0+ZGVmVmFsICE9IE5VTEwpCisJeG1sU2NoZW1hRnJlZVZhbHVlKGVsZW0tPmRlZlZhbCk7CisgICAgeG1sRnJlZShlbGVtKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFGcmVlRmFjZXQ6CisgKiBAZmFjZXQ6ICBhIHNjaGVtYSBmYWNldCBzdHJ1Y3R1cmUKKyAqCisgKiBEZWFsbG9jYXRlIGEgU2NoZW1hIEZhY2V0IHN0cnVjdHVyZS4KKyAqLwordm9pZAoreG1sU2NoZW1hRnJlZUZhY2V0KHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0KQoreworICAgIGlmIChmYWNldCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGZhY2V0LT52YWwgIT0gTlVMTCkKKyAgICAgICAgeG1sU2NoZW1hRnJlZVZhbHVlKGZhY2V0LT52YWwpOworICAgIGlmIChmYWNldC0+cmVnZXhwICE9IE5VTEwpCisgICAgICAgIHhtbFJlZ0ZyZWVSZWdleHAoZmFjZXQtPnJlZ2V4cCk7CisgICAgaWYgKGZhY2V0LT5hbm5vdCAhPSBOVUxMKQorICAgICAgICB4bWxTY2hlbWFGcmVlQW5ub3QoZmFjZXQtPmFubm90KTsKKyAgICB4bWxGcmVlKGZhY2V0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFGcmVlVHlwZToKKyAqIEB0eXBlOiAgYSBzY2hlbWEgdHlwZSBzdHJ1Y3R1cmUKKyAqCisgKiBEZWFsbG9jYXRlIGEgU2NoZW1hIFR5cGUgc3RydWN0dXJlLgorICovCit2b2lkCit4bWxTY2hlbWFGcmVlVHlwZSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgaWYgKHR5cGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICh0eXBlLT5hbm5vdCAhPSBOVUxMKQorICAgICAgICB4bWxTY2hlbWFGcmVlQW5ub3QodHlwZS0+YW5ub3QpOworICAgIGlmICh0eXBlLT5mYWNldHMgIT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldCwgbmV4dDsKKworICAgICAgICBmYWNldCA9IHR5cGUtPmZhY2V0czsKKyAgICAgICAgd2hpbGUgKGZhY2V0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIG5leHQgPSBmYWNldC0+bmV4dDsKKyAgICAgICAgICAgIHhtbFNjaGVtYUZyZWVGYWNldChmYWNldCk7CisgICAgICAgICAgICBmYWNldCA9IG5leHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHR5cGUtPmF0dHJVc2VzICE9IE5VTEwpCisJeG1sU2NoZW1hSXRlbUxpc3RGcmVlKCh4bWxTY2hlbWFJdGVtTGlzdFB0cikgdHlwZS0+YXR0clVzZXMpOworICAgIGlmICh0eXBlLT5tZW1iZXJUeXBlcyAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWVUeXBlTGlua0xpc3QodHlwZS0+bWVtYmVyVHlwZXMpOworICAgIGlmICh0eXBlLT5mYWNldFNldCAhPSBOVUxMKSB7CisJeG1sU2NoZW1hRmFjZXRMaW5rUHRyIG5leHQsIGxpbms7CisKKwlsaW5rID0gdHlwZS0+ZmFjZXRTZXQ7CisJZG8geworCSAgICBuZXh0ID0gbGluay0+bmV4dDsKKwkgICAgeG1sRnJlZShsaW5rKTsKKwkgICAgbGluayA9IG5leHQ7CisJfSB3aGlsZSAobGluayAhPSBOVUxMKTsKKyAgICB9CisgICAgaWYgKHR5cGUtPmNvbnRNb2RlbCAhPSBOVUxMKQorICAgICAgICB4bWxSZWdGcmVlUmVnZXhwKHR5cGUtPmNvbnRNb2RlbCk7CisgICAgeG1sRnJlZSh0eXBlKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFGcmVlTW9kZWxHcm91cERlZjoKKyAqIEBpdGVtOiAgYSBzY2hlbWEgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbgorICoKKyAqIERlYWxsb2NhdGVzIGEgc2NoZW1hIG1vZGVsIGdyb3VwIGRlZmluaXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFGcmVlTW9kZWxHcm91cERlZih4bWxTY2hlbWFNb2RlbEdyb3VwRGVmUHRyIGl0ZW0pCit7CisgICAgaWYgKGl0ZW0tPmFubm90ICE9IE5VTEwpCisJeG1sU2NoZW1hRnJlZUFubm90KGl0ZW0tPmFubm90KTsKKyAgICB4bWxGcmVlKGl0ZW0pOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZyZWVNb2RlbEdyb3VwOgorICogQGl0ZW06ICBhIHNjaGVtYSBtb2RlbCBncm91cAorICoKKyAqIERlYWxsb2NhdGVzIGEgc2NoZW1hIG1vZGVsIGdyb3VwIHN0cnVjdHVyZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUZyZWVNb2RlbEdyb3VwKHhtbFNjaGVtYU1vZGVsR3JvdXBQdHIgaXRlbSkKK3sKKyAgICBpZiAoaXRlbS0+YW5ub3QgIT0gTlVMTCkKKwl4bWxTY2hlbWFGcmVlQW5ub3QoaXRlbS0+YW5ub3QpOworICAgIHhtbEZyZWUoaXRlbSk7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFDb21wb25lbnRMaXN0RnJlZSh4bWxTY2hlbWFJdGVtTGlzdFB0ciBsaXN0KQoreworICAgIGlmICgobGlzdCA9PSBOVUxMKSB8fCAobGlzdC0+bmJJdGVtcyA9PSAwKSkKKwlyZXR1cm47CisgICAgeworCXhtbFNjaGVtYVRyZWVJdGVtUHRyIGl0ZW07CisJeG1sU2NoZW1hVHJlZUl0ZW1QdHIgKml0ZW1zID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyICopIGxpc3QtPml0ZW1zOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGxpc3QtPm5iSXRlbXM7IGkrKykgeworCSAgICBpdGVtID0gaXRlbXNbaV07CisJICAgIGlmIChpdGVtID09IE5VTEwpCisJCWNvbnRpbnVlOworCSAgICBzd2l0Y2ggKGl0ZW0tPnR5cGUpIHsKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFOgorCQljYXNlIFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOgorCQkgICAgeG1sU2NoZW1hRnJlZVR5cGUoKHhtbFNjaGVtYVR5cGVQdHIpIGl0ZW0pOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURToKKwkJICAgIHhtbFNjaGVtYUZyZWVBdHRyaWJ1dGUoKHhtbFNjaGVtYUF0dHJpYnV0ZVB0cikgaXRlbSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRToKKwkJICAgIHhtbFNjaGVtYUZyZWVBdHRyaWJ1dGVVc2UoKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0cikgaXRlbSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQjoKKwkJICAgIHhtbFNjaGVtYUZyZWVBdHRyaWJ1dGVVc2VQcm9oaWIoCisJCQkoeG1sU2NoZW1hQXR0cmlidXRlVXNlUHJvaGliUHRyKSBpdGVtKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UOgorCQkgICAgeG1sU2NoZW1hRnJlZUVsZW1lbnQoKHhtbFNjaGVtYUVsZW1lbnRQdHIpIGl0ZW0pOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFOgorCQkgICAgaWYgKGl0ZW0tPmFubm90ICE9IE5VTEwpCisJCQl4bWxTY2hlbWFGcmVlQW5ub3QoaXRlbS0+YW5ub3QpOworCQkgICAgeG1sRnJlZShpdGVtKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRToKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFOgorCQljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTEw6CisJCSAgICB4bWxTY2hlbWFGcmVlTW9kZWxHcm91cCgoeG1sU2NoZW1hTW9kZWxHcm91cFB0cikgaXRlbSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA6CisJCSAgICB4bWxTY2hlbWFGcmVlQXR0cmlidXRlR3JvdXAoCisJCQkoeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIpIGl0ZW0pOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCQkgICAgeG1sU2NoZW1hRnJlZU1vZGVsR3JvdXBEZWYoCisJCQkoeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cikgaXRlbSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQU5ZOgorCQljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFOgorCQkgICAgeG1sU2NoZW1hRnJlZVdpbGRjYXJkKCh4bWxTY2hlbWFXaWxkY2FyZFB0cikgaXRlbSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWToKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRToKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRjoKKwkJICAgIHhtbFNjaGVtYUZyZWVJREMoKHhtbFNjaGVtYUlEQ1B0cikgaXRlbSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX1RZUEVfTk9UQVRJT046CisJCSAgICB4bWxTY2hlbWFGcmVlTm90YXRpb24oKHhtbFNjaGVtYU5vdGF0aW9uUHRyKSBpdGVtKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9TQ0hFTUFfRVhUUkFfUU5BTUVSRUY6CisJCSAgICB4bWxTY2hlbWFGcmVlUU5hbWVSZWYoKHhtbFNjaGVtYVFOYW1lUmVmUHRyKSBpdGVtKTsKKwkJICAgIGJyZWFrOworCQlkZWZhdWx0OiB7CisJCSAgICAvKiBUT0RPOiBUaGlzIHNob3VsZCBuZXZlciBiZSBoaXQuICovCisJCSAgICB4bWxTY2hlbWFQU2ltcGxlSW50ZXJuYWxFcnIoTlVMTCwKKwkJCSJJbnRlcm5hbCBlcnJvcjogeG1sU2NoZW1hQ29tcG9uZW50TGlzdEZyZWUsICIKKwkJCSJ1bmV4cGVjdGVkIGNvbXBvbmVudCB0eXBlICclcydcbiIsCisJCQkoY29uc3QgeG1sQ2hhciAqKSBXWFNfSVRFTV9UWVBFX05BTUUoaXRlbSkpOworCQkJIH0KKwkJICAgIGJyZWFrOworCSAgICB9CisJfQorCWxpc3QtPm5iSXRlbXMgPSAwOworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFGcmVlOgorICogQHNjaGVtYTogIGEgc2NoZW1hIHN0cnVjdHVyZQorICoKKyAqIERlYWxsb2NhdGUgYSBTY2hlbWEgc3RydWN0dXJlLgorICovCit2b2lkCit4bWxTY2hlbWFGcmVlKHhtbFNjaGVtYVB0ciBzY2hlbWEpCit7CisgICAgaWYgKHNjaGVtYSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgLyogQHZvbGF0aWxlcyBpcyBub3QgdXNlZCBhbnltb3JlIDotLyAqLworICAgIGlmIChzY2hlbWEtPnZvbGF0aWxlcyAhPSBOVUxMKQorCVRPRE8KKyAgICAvKgorICAgICogTm90ZSB0aGF0IHRob3NlIHNsb3RzIGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcKKyAgICAqIHNjaGVtYSBjb21wb25lbnRzIGFueW1vcmU7IHRoaXMgd2lsbCBub3cgYmUgZG9uZSBieQorICAgICogdGhlIHNjaGVtYSBidWNrZXRzLgorICAgICovCisgICAgaWYgKHNjaGVtYS0+bm90YURlY2wgIT0gTlVMTCkKKyAgICAgICAgeG1sSGFzaEZyZWUoc2NoZW1hLT5ub3RhRGVjbCwgTlVMTCk7CisgICAgaWYgKHNjaGVtYS0+YXR0ckRlY2wgIT0gTlVMTCkKKyAgICAgICAgeG1sSGFzaEZyZWUoc2NoZW1hLT5hdHRyRGVjbCwgTlVMTCk7CisgICAgaWYgKHNjaGVtYS0+YXR0cmdycERlY2wgIT0gTlVMTCkKKyAgICAgICAgeG1sSGFzaEZyZWUoc2NoZW1hLT5hdHRyZ3JwRGVjbCwgTlVMTCk7CisgICAgaWYgKHNjaGVtYS0+ZWxlbURlY2wgIT0gTlVMTCkKKyAgICAgICAgeG1sSGFzaEZyZWUoc2NoZW1hLT5lbGVtRGVjbCwgTlVMTCk7CisgICAgaWYgKHNjaGVtYS0+dHlwZURlY2wgIT0gTlVMTCkKKyAgICAgICAgeG1sSGFzaEZyZWUoc2NoZW1hLT50eXBlRGVjbCwgTlVMTCk7CisgICAgaWYgKHNjaGVtYS0+Z3JvdXBEZWNsICE9IE5VTEwpCisgICAgICAgIHhtbEhhc2hGcmVlKHNjaGVtYS0+Z3JvdXBEZWNsLCBOVUxMKTsKKyAgICBpZiAoc2NoZW1hLT5pZGNEZWYgIT0gTlVMTCkKKyAgICAgICAgeG1sSGFzaEZyZWUoc2NoZW1hLT5pZGNEZWYsIE5VTEwpOworCisgICAgaWYgKHNjaGVtYS0+c2NoZW1hc0ltcG9ydHMgIT0gTlVMTCkKKwl4bWxIYXNoRnJlZShzY2hlbWEtPnNjaGVtYXNJbXBvcnRzLAorCQkgICAgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sU2NoZW1hQnVja2V0RnJlZSk7CisgICAgaWYgKHNjaGVtYS0+aW5jbHVkZXMgIT0gTlVMTCkgeworCXhtbFNjaGVtYUl0ZW1MaXN0UHRyIGxpc3QgPSAoeG1sU2NoZW1hSXRlbUxpc3RQdHIpIHNjaGVtYS0+aW5jbHVkZXM7CisJaW50IGk7CisJZm9yIChpID0gMDsgaSA8IGxpc3QtPm5iSXRlbXM7IGkrKykgeworCSAgICB4bWxTY2hlbWFCdWNrZXRGcmVlKCh4bWxTY2hlbWFCdWNrZXRQdHIpIGxpc3QtPml0ZW1zW2ldKTsKKwl9CisJeG1sU2NoZW1hSXRlbUxpc3RGcmVlKGxpc3QpOworICAgIH0KKyAgICBpZiAoc2NoZW1hLT5hbm5vdCAhPSBOVUxMKQorICAgICAgICB4bWxTY2hlbWFGcmVlQW5ub3Qoc2NoZW1hLT5hbm5vdCk7CisgICAgLyogTmV2ZXIgZnJlZSB0aGUgZG9jIGhlcmUsIHNpbmNlIHRoaXMgd2lsbCBiZSBkb25lIGJ5IHRoZSBidWNrZXRzLiAqLworCisgICAgeG1sRGljdEZyZWUoc2NoZW1hLT5kaWN0KTsKKyAgICB4bWxGcmVlKHNjaGVtYSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCURlYnVnIGZ1bmN0aW9ucwkJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIExJQlhNTF9PVVRQVVRfRU5BQkxFRAorCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hVHlwZUR1bXAoeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCBGSUxFICogb3V0cHV0KTsgLyogZm9yd2FyZCAqLworCisvKioKKyAqIHhtbFNjaGVtYUVsZW1lbnREdW1wOgorICogQGVsZW06ICBhbiBlbGVtZW50CisgKiBAb3V0cHV0OiAgdGhlIGZpbGUgb3V0cHV0CisgKgorICogRHVtcCB0aGUgZWxlbWVudAorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRWxlbWVudER1bXAoeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtLCBGSUxFICogb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUgQVRUUklCVVRFX1VOVVNFRCwKKwkJICAgICBjb25zdCB4bWxDaGFyICogbmFtZXNwYWNlIEFUVFJJQlVURV9VTlVTRUQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogY29udGV4dCBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIGlmIChlbGVtID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworCisgICAgZnByaW50ZihvdXRwdXQsICJFbGVtZW50Iik7CisgICAgaWYgKGVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwpCisJZnByaW50ZihvdXRwdXQsICIgKGdsb2JhbCkiKTsKKyAgICBmcHJpbnRmKG91dHB1dCwgIjogJyVzJyAiLCBlbGVtLT5uYW1lKTsKKyAgICBpZiAobmFtZXNwYWNlICE9IE5VTEwpCisJZnByaW50ZihvdXRwdXQsICJucyAnJXMnIiwgbmFtZXNwYWNlKTsKKyAgICBmcHJpbnRmKG91dHB1dCwgIlxuIik7CisjaWYgMAorICAgIGlmICgoZWxlbS0+bWluT2NjdXJzICE9IDEpIHx8IChlbGVtLT5tYXhPY2N1cnMgIT0gMSkpIHsKKwlmcHJpbnRmKG91dHB1dCwgIiAgbWluICVkICIsIGVsZW0tPm1pbk9jY3Vycyk7CisgICAgICAgIGlmIChlbGVtLT5tYXhPY2N1cnMgPj0gVU5CT1VOREVEKQorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJtYXg6IHVuYm91bmRlZFxuIik7CisgICAgICAgIGVsc2UgaWYgKGVsZW0tPm1heE9jY3VycyAhPSAxKQorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJtYXg6ICVkXG4iLCBlbGVtLT5tYXhPY2N1cnMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlxuIik7CisgICAgfQorI2VuZGlmCisgICAgLyoKKyAgICAqIE1pc2Mgb3RoZXIgcHJvcGVydGllcy4KKyAgICAqLworICAgIGlmICgoZWxlbS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFKSB8fAorCShlbGVtLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1QpIHx8CisJKGVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9GSVhFRCkgfHwKKwkoZWxlbS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0RFRkFVTFQpKSB7CisJZnByaW50ZihvdXRwdXQsICIgIHByb3BzOiAiKTsKKwlpZiAoZWxlbS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0ZJWEVEKQorCSAgICBmcHJpbnRmKG91dHB1dCwgIltmaXhlZF0gIik7CisJaWYgKGVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9ERUZBVUxUKQorCSAgICBmcHJpbnRmKG91dHB1dCwgIltkZWZhdWx0XSAiKTsKKwlpZiAoZWxlbS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUKQorCSAgICBmcHJpbnRmKG91dHB1dCwgIlthYnN0cmFjdF0gIik7CisJaWYgKGVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRSkKKwkgICAgZnByaW50ZihvdXRwdXQsICJbbmlsbGFibGVdICIpOworCWZwcmludGYob3V0cHV0LCAiXG4iKTsKKyAgICB9CisgICAgLyoKKyAgICAqIERlZmF1bHQvZml4ZWQgdmFsdWUuCisgICAgKi8KKyAgICBpZiAoZWxlbS0+dmFsdWUgIT0gTlVMTCkKKwlmcHJpbnRmKG91dHB1dCwgIiAgdmFsdWU6ICclcydcbiIsIGVsZW0tPnZhbHVlKTsKKyAgICAvKgorICAgICogVHlwZS4KKyAgICAqLworICAgIGlmIChlbGVtLT5uYW1lZFR5cGUgIT0gTlVMTCkgeworCWZwcmludGYob3V0cHV0LCAiICB0eXBlOiAnJXMnICIsIGVsZW0tPm5hbWVkVHlwZSk7CisJaWYgKGVsZW0tPm5hbWVkVHlwZU5zICE9IE5VTEwpCisJICAgIGZwcmludGYob3V0cHV0LCAibnMgJyVzJ1xuIiwgZWxlbS0+bmFtZWRUeXBlTnMpOworCWVsc2UKKwkgICAgZnByaW50ZihvdXRwdXQsICJcbiIpOworICAgIH0gZWxzZSBpZiAoZWxlbS0+c3VidHlwZXMgIT0gTlVMTCkgeworCS8qCisJKiBEdW1wIGxvY2FsIHR5cGVzLgorCSovCisJeG1sU2NoZW1hVHlwZUR1bXAoZWxlbS0+c3VidHlwZXMsIG91dHB1dCk7CisgICAgfQorICAgIC8qCisgICAgKiBTdWJzdGl0dXRpb24gZ3JvdXAuCisgICAgKi8KKyAgICBpZiAoZWxlbS0+c3Vic3RHcm91cCAhPSBOVUxMKSB7CisJZnByaW50ZihvdXRwdXQsICIgIHN1YnN0aXR1dGlvbkdyb3VwOiAnJXMnICIsIGVsZW0tPnN1YnN0R3JvdXApOworCWlmIChlbGVtLT5zdWJzdEdyb3VwTnMgIT0gTlVMTCkKKwkgICAgZnByaW50ZihvdXRwdXQsICJucyAnJXMnXG4iLCBlbGVtLT5zdWJzdEdyb3VwTnMpOworCWVsc2UKKwkgICAgZnByaW50ZihvdXRwdXQsICJcbiIpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFBbm5vdER1bXA6CisgKiBAb3V0cHV0OiAgdGhlIGZpbGUgb3V0cHV0CisgKiBAYW5ub3Q6ICBhIGFubm90YXRpb24KKyAqCisgKiBEdW1wIHRoZSBhbm5vdGF0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFBbm5vdER1bXAoRklMRSAqIG91dHB1dCwgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3QpCit7CisgICAgeG1sQ2hhciAqY29udGVudDsKKworICAgIGlmIChhbm5vdCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZW50ID0geG1sTm9kZUdldENvbnRlbnQoYW5ub3QtPmNvbnRlbnQpOworICAgIGlmIChjb250ZW50ICE9IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICIgIEFubm90OiAlc1xuIiwgY29udGVudCk7CisgICAgICAgIHhtbEZyZWUoY29udGVudCk7CisgICAgfSBlbHNlCisgICAgICAgIGZwcmludGYob3V0cHV0LCAiICBBbm5vdDogZW1wdHlcbiIpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNvbnRlbnRNb2RlbER1bXA6CisgKiBAcGFydGljbGU6IHRoZSBzY2hlbWEgcGFydGljbGUKKyAqIEBvdXRwdXQ6IHRoZSBmaWxlIG91dHB1dAorICogQGRlcHRoOiB0aGUgZGVwdGggdXNlZCBmb3IgaW50ZW50YXRpb24KKyAqCisgKiBEdW1wIGEgU2NoZW1hVHlwZSBzdHJ1Y3R1cmUKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNvbnRlbnRNb2RlbER1bXAoeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGUsIEZJTEUgKiBvdXRwdXQsIGludCBkZXB0aCkKK3sKKyAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworICAgIHhtbFNjaGVtYVRyZWVJdGVtUHRyIHRlcm07CisgICAgY2hhciBzaGlmdFsxMDBdOworICAgIGludCBpOworCisgICAgaWYgKHBhcnRpY2xlID09IE5VTEwpCisJcmV0dXJuOworICAgIGZvciAoaSA9IDA7KChpIDwgZGVwdGgpICYmIChpIDwgMjUpKTtpKyspCisgICAgICAgIHNoaWZ0WzIgKiBpXSA9IHNoaWZ0WzIgKiBpICsgMV0gPSAnICc7CisgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9IDA7CisgICAgZnByaW50ZihvdXRwdXQsICIlcyIsIHNoaWZ0KTsKKyAgICBpZiAocGFydGljbGUtPmNoaWxkcmVuID09IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgIk1JU1NJTkcgcGFydGljbGUgdGVybVxuIik7CisJcmV0dXJuOworICAgIH0KKyAgICB0ZXJtID0gcGFydGljbGUtPmNoaWxkcmVuOworICAgIGlmICh0ZXJtID09IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgIihOVUxMKSIpOworICAgIH0gZWxzZSB7CisJc3dpdGNoICh0ZXJtLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJCWZwcmludGYob3V0cHV0LCAiRUxFTSAnJXMnIiwgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJICAgICgoeG1sU2NoZW1hRWxlbWVudFB0cil0ZXJtKS0+dGFyZ2V0TmFtZXNwYWNlLAorCQkgICAgKCh4bWxTY2hlbWFFbGVtZW50UHRyKXRlcm0pLT5uYW1lKSk7CisJCUZSRUVfQU5EX05VTEwoc3RyKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFOgorCQlmcHJpbnRmKG91dHB1dCwgIlNFUVVFTkNFIik7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0U6CisJCWZwcmludGYob3V0cHV0LCAiQ0hPSUNFIik7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTEw6CisJCWZwcmludGYob3V0cHV0LCAiQUxMIik7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTlk6CisJCWZwcmludGYob3V0cHV0LCAiQU5ZIik7CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlmcHJpbnRmKG91dHB1dCwgIlVOS05PV05cbiIpOworCQlyZXR1cm47CisJfQorICAgIH0KKyAgICBpZiAocGFydGljbGUtPm1pbk9jY3VycyAhPSAxKQorCWZwcmludGYob3V0cHV0LCAiIG1pbjogJWQiLCBwYXJ0aWNsZS0+bWluT2NjdXJzKTsKKyAgICBpZiAocGFydGljbGUtPm1heE9jY3VycyA+PSBVTkJPVU5ERUQpCisJZnByaW50ZihvdXRwdXQsICIgbWF4OiB1bmJvdW5kZWQiKTsKKyAgICBlbHNlIGlmIChwYXJ0aWNsZS0+bWF4T2NjdXJzICE9IDEpCisJZnByaW50ZihvdXRwdXQsICIgbWF4OiAlZCIsIHBhcnRpY2xlLT5tYXhPY2N1cnMpOworICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKKyAgICBpZiAodGVybSAmJgorCSgodGVybS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UpIHx8CisJICh0ZXJtLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0UpIHx8CisJICh0ZXJtLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BTEwpKSAmJgorCSAodGVybS0+Y2hpbGRyZW4gIT0gTlVMTCkpIHsKKwl4bWxTY2hlbWFDb250ZW50TW9kZWxEdW1wKCh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgdGVybS0+Y2hpbGRyZW4sCisJICAgIG91dHB1dCwgZGVwdGggKzEpOworICAgIH0KKyAgICBpZiAocGFydGljbGUtPm5leHQgIT0gTlVMTCkKKwl4bWxTY2hlbWFDb250ZW50TW9kZWxEdW1wKCh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgcGFydGljbGUtPm5leHQsCisJCW91dHB1dCwgZGVwdGgpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUF0dHJVc2VzRHVtcDoKKyAqIEB1c2VzOiAgYXR0cmlidXRlIHVzZXMgbGlzdAorICogQG91dHB1dDogIHRoZSBmaWxlIG91dHB1dAorICoKKyAqIER1bXBzIGEgbGlzdCBvZiBhdHRyaWJ1dGUgdXNlIGNvbXBvbmVudHMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFBdHRyVXNlc0R1bXAoeG1sU2NoZW1hSXRlbUxpc3RQdHIgdXNlcywgRklMRSAqIG91dHB1dCkKK3sKKyAgICB4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgdXNlOworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYlB0ciBwcm9oaWI7CisgICAgeG1sU2NoZW1hUU5hbWVSZWZQdHIgcmVmOworICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsICp0bnM7CisgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKyAgICBpbnQgaTsKKworICAgIGlmICgodXNlcyA9PSBOVUxMKSB8fCAodXNlcy0+bmJJdGVtcyA9PSAwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZnByaW50ZihvdXRwdXQsICIgIGF0dHJpYnV0ZXM6XG4iKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgdXNlcy0+bmJJdGVtczsgaSsrKSB7CisJdXNlID0gdXNlcy0+aXRlbXNbaV07CisJaWYgKHVzZS0+dHlwZSA9PSBYTUxfU0NIRU1BX0VYVFJBX0FUVFJfVVNFX1BST0hJQikgeworCSAgICBmcHJpbnRmKG91dHB1dCwgIiAgW3Byb2hpYml0aW9uXSAiKTsKKwkgICAgcHJvaGliID0gKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYlB0cikgdXNlOworCSAgICBuYW1lID0gcHJvaGliLT5uYW1lOworCSAgICB0bnMgPSBwcm9oaWItPnRhcmdldE5hbWVzcGFjZTsKKwl9IGVsc2UgaWYgKHVzZS0+dHlwZSA9PSBYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGKSB7CisJICAgIGZwcmludGYob3V0cHV0LCAiICBbcmVmZXJlbmNlXSAiKTsKKwkgICAgcmVmID0gKHhtbFNjaGVtYVFOYW1lUmVmUHRyKSB1c2U7CisJICAgIG5hbWUgPSByZWYtPm5hbWU7CisJICAgIHRucyA9IHJlZi0+dGFyZ2V0TmFtZXNwYWNlOworCX0gZWxzZSB7CisJICAgIGZwcmludGYob3V0cHV0LCAiICBbdXNlXSAiKTsKKwkgICAgbmFtZSA9IFdYU19BVFRSVVNFX0RFQ0xfTkFNRSh1c2UpOworCSAgICB0bnMgPSBXWFNfQVRUUlVTRV9ERUNMX1ROUyh1c2UpOworCX0KKwlmcHJpbnRmKG91dHB1dCwgIiclcydcbiIsCisJICAgIChjb25zdCBjaGFyICopIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIHRucywgbmFtZSkpOworCUZSRUVfQU5EX05VTEwoc3RyKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hVHlwZUR1bXA6CisgKiBAb3V0cHV0OiAgdGhlIGZpbGUgb3V0cHV0CisgKiBAdHlwZTogIGEgdHlwZSBzdHJ1Y3R1cmUKKyAqCisgKiBEdW1wIGEgU2NoZW1hVHlwZSBzdHJ1Y3R1cmUKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVR5cGVEdW1wKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwgRklMRSAqIG91dHB1dCkKK3sKKyAgICBpZiAodHlwZSA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiVHlwZTogTlVMTFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZnByaW50ZihvdXRwdXQsICJUeXBlOiAiKTsKKyAgICBpZiAodHlwZS0+bmFtZSAhPSBOVUxMKQorICAgICAgICBmcHJpbnRmKG91dHB1dCwgIiclcycgIiwgdHlwZS0+bmFtZSk7CisgICAgZWxzZQorICAgICAgICBmcHJpbnRmKG91dHB1dCwgIihubyBuYW1lKSAiKTsKKyAgICBpZiAodHlwZS0+dGFyZ2V0TmFtZXNwYWNlICE9IE5VTEwpCisJZnByaW50ZihvdXRwdXQsICJucyAnJXMnICIsIHR5cGUtPnRhcmdldE5hbWVzcGFjZSk7CisgICAgc3dpdGNoICh0eXBlLT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0JBU0lDOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJbYmFzaWNdICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW3NpbXBsZV0gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW2NvbXBsZXhdICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJbc2VxdWVuY2VdICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0NIT0lDRToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW2Nob2ljZV0gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQUxMOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJbYWxsXSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9VUjoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW3VyXSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTjoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW3Jlc3RyaWN0aW9uXSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT046CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIltleHRlbnNpb25dICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIlt1bmtub3duIHR5cGUgJWRdICIsIHR5cGUtPnR5cGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGZwcmludGYob3V0cHV0LCAiY29udGVudDogIik7CisgICAgc3dpdGNoICh0eXBlLT5jb250ZW50VHlwZSkgeworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9VTktOT1dOOgorICAgICAgICAgICAgZnByaW50ZihvdXRwdXQsICJbdW5rbm93bl0gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFk6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIltlbXB0eV0gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFM6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIltlbGVtZW50XSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRDoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW21peGVkXSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRF9PUl9FTEVNRU5UUzoKKwkvKiBub3QgdXNlZC4gKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQzoKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW2Jhc2ljXSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEU6CisgICAgICAgICAgICBmcHJpbnRmKG91dHB1dCwgIltzaW1wbGVdICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9DT05URU5UX0FOWToKKyAgICAgICAgICAgIGZwcmludGYob3V0cHV0LCAiW2FueV0gIik7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgZnByaW50ZihvdXRwdXQsICJcbiIpOworICAgIGlmICh0eXBlLT5iYXNlICE9IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICIgIGJhc2UgdHlwZTogJyVzJyIsIHR5cGUtPmJhc2UpOworCWlmICh0eXBlLT5iYXNlTnMgIT0gTlVMTCkKKwkgICAgZnByaW50ZihvdXRwdXQsICIgbnMgJyVzJ1xuIiwgdHlwZS0+YmFzZU5zKTsKKwllbHNlCisJICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKKyAgICB9CisgICAgaWYgKHR5cGUtPmF0dHJVc2VzICE9IE5VTEwpCisJeG1sU2NoZW1hQXR0clVzZXNEdW1wKHR5cGUtPmF0dHJVc2VzLCBvdXRwdXQpOworICAgIGlmICh0eXBlLT5hbm5vdCAhPSBOVUxMKQorICAgICAgICB4bWxTY2hlbWFBbm5vdER1bXAob3V0cHV0LCB0eXBlLT5hbm5vdCk7CisjaWZkZWYgRFVNUF9DT05URU5UX01PREVMCisgICAgaWYgKCh0eXBlLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYKSAmJgorCSh0eXBlLT5zdWJ0eXBlcyAhPSBOVUxMKSkgeworCXhtbFNjaGVtYUNvbnRlbnRNb2RlbER1bXAoKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSB0eXBlLT5zdWJ0eXBlcywKKwkgICAgb3V0cHV0LCAxKTsKKyAgICB9CisjZW5kaWYKK30KKworLyoqCisgKiB4bWxTY2hlbWFEdW1wOgorICogQG91dHB1dDogIHRoZSBmaWxlIG91dHB1dAorICogQHNjaGVtYTogIGEgc2NoZW1hIHN0cnVjdHVyZQorICoKKyAqIER1bXAgYSBTY2hlbWEgc3RydWN0dXJlLgorICovCit2b2lkCit4bWxTY2hlbWFEdW1wKEZJTEUgKiBvdXRwdXQsIHhtbFNjaGVtYVB0ciBzY2hlbWEpCit7CisgICAgaWYgKG91dHB1dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKHNjaGVtYSA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiU2NoZW1hczogTlVMTFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZnByaW50ZihvdXRwdXQsICJTY2hlbWFzOiAiKTsKKyAgICBpZiAoc2NoZW1hLT5uYW1lICE9IE5VTEwpCisgICAgICAgIGZwcmludGYob3V0cHV0LCAiJXMsICIsIHNjaGVtYS0+bmFtZSk7CisgICAgZWxzZQorICAgICAgICBmcHJpbnRmKG91dHB1dCwgIm5vIG5hbWUsICIpOworICAgIGlmIChzY2hlbWEtPnRhcmdldE5hbWVzcGFjZSAhPSBOVUxMKQorICAgICAgICBmcHJpbnRmKG91dHB1dCwgIiVzIiwgKGNvbnN0IGNoYXIgKikgc2NoZW1hLT50YXJnZXROYW1lc3BhY2UpOworICAgIGVsc2UKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICJubyB0YXJnZXQgbmFtZXNwYWNlIik7CisgICAgZnByaW50ZihvdXRwdXQsICJcbiIpOworICAgIGlmIChzY2hlbWEtPmFubm90ICE9IE5VTEwpCisgICAgICAgIHhtbFNjaGVtYUFubm90RHVtcChvdXRwdXQsIHNjaGVtYS0+YW5ub3QpOworICAgIHhtbEhhc2hTY2FuKHNjaGVtYS0+dHlwZURlY2wsICh4bWxIYXNoU2Nhbm5lcikgeG1sU2NoZW1hVHlwZUR1bXAsCisgICAgICAgICAgICAgICAgb3V0cHV0KTsKKyAgICB4bWxIYXNoU2NhbkZ1bGwoc2NoZW1hLT5lbGVtRGVjbCwKKyAgICAgICAgICAgICAgICAgICAgKHhtbEhhc2hTY2FubmVyRnVsbCkgeG1sU2NoZW1hRWxlbWVudER1bXAsIG91dHB1dCk7Cit9CisKKyNpZmRlZiBERUJVR19JRENfTk9ERV9UQUJMRQorLyoqCisgKiB4bWxTY2hlbWFEZWJ1Z0R1bXBJRENUYWJsZToKKyAqIEB2Y3R4dDogdGhlIFdYUyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqCisgKiBEaXNwbGF5cyB0aGUgY3VycmVudCBJREMgdGFibGUgZm9yIGRlYnVnIHB1cnBvc2VzLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hRGVidWdEdW1wSURDVGFibGUoRklMRSAqIG91dHB1dCwKKwkJCSAgIGNvbnN0IHhtbENoYXIgKm5hbWVzcGFjZU5hbWUsCisJCQkgICBjb25zdCB4bWxDaGFyICpsb2NhbE5hbWUsCisJCQkgICB4bWxTY2hlbWFQU1ZJSURDQmluZGluZ1B0ciBiaW5kKQoreworICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqdmFsdWU7CisgICAgeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgdGFiOworICAgIHhtbFNjaGVtYVBTVklJRENLZXlQdHIga2V5OworICAgIGludCBpLCBqLCByZXM7CisKKyAgICBmcHJpbnRmKG91dHB1dCwgIklEQzogVEFCTEVTIG9uICclcydcbiIsCisJeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwgbmFtZXNwYWNlTmFtZSwgbG9jYWxOYW1lKSk7CisgICAgRlJFRV9BTkRfTlVMTChzdHIpCisKKyAgICBpZiAoYmluZCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBkbyB7CisJZnByaW50ZihvdXRwdXQsICJJREM6ICAgQklORElORyAnJXMnICglZClcbiIsCisJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHIsCisJCWJpbmQtPmRlZmluaXRpb24pLCBiaW5kLT5uYk5vZGVzKTsKKwlGUkVFX0FORF9OVUxMKHN0cikKKwlmb3IgKGkgPSAwOyBpIDwgYmluZC0+bmJOb2RlczsgaSsrKSB7CisJICAgIHRhYiA9IGJpbmQtPm5vZGVUYWJsZVtpXTsKKwkgICAgZnByaW50ZihvdXRwdXQsICIgICAgICAgICAoICIpOworCSAgICBmb3IgKGogPSAwOyBqIDwgYmluZC0+ZGVmaW5pdGlvbi0+bmJGaWVsZHM7IGorKykgeworCQlrZXkgPSB0YWItPmtleXNbal07CisJCWlmICgoa2V5ICE9IE5VTEwpICYmIChrZXktPnZhbCAhPSBOVUxMKSkgeworCQkgICAgcmVzID0geG1sU2NoZW1hR2V0Q2Fub25WYWx1ZShrZXktPnZhbCwgJnZhbHVlKTsKKwkJICAgIGlmIChyZXMgPj0gMCkKKwkJCWZwcmludGYob3V0cHV0LCAiJyVzJyAiLCB2YWx1ZSk7CisJCSAgICBlbHNlCisJCQlmcHJpbnRmKG91dHB1dCwgIkNBTk9OLVZBTFVFLUZBSUxFRCAiKTsKKwkJICAgIGlmIChyZXMgPT0gMCkKKwkJCUZSRUVfQU5EX05VTEwodmFsdWUpCisJCX0gZWxzZSBpZiAoa2V5ICE9IE5VTEwpCisJCSAgICBmcHJpbnRmKG91dHB1dCwgIihubyB2YWwpLCAiKTsKKwkJZWxzZQorCQkgICAgZnByaW50ZihvdXRwdXQsICIoa2V5IG1pc3NpbmcpLCAiKTsKKwkgICAgfQorCSAgICBmcHJpbnRmKG91dHB1dCwgIilcbiIpOworCX0KKwlpZiAoYmluZC0+ZHVwbHMgJiYgYmluZC0+ZHVwbHMtPm5iSXRlbXMpIHsKKwkgICAgZnByaW50ZihvdXRwdXQsICJJREM6ICAgICBkdXBscyAoJWQpOlxuIiwgYmluZC0+ZHVwbHMtPm5iSXRlbXMpOworCSAgICBmb3IgKGkgPSAwOyBpIDwgYmluZC0+ZHVwbHMtPm5iSXRlbXM7IGkrKykgeworCQl0YWIgPSBiaW5kLT5kdXBscy0+aXRlbXNbaV07CisJCWZwcmludGYob3V0cHV0LCAiICAgICAgICAgKCAiKTsKKwkJZm9yIChqID0gMDsgaiA8IGJpbmQtPmRlZmluaXRpb24tPm5iRmllbGRzOyBqKyspIHsKKwkJICAgIGtleSA9IHRhYi0+a2V5c1tqXTsKKwkJICAgIGlmICgoa2V5ICE9IE5VTEwpICYmIChrZXktPnZhbCAhPSBOVUxMKSkgeworCQkJcmVzID0geG1sU2NoZW1hR2V0Q2Fub25WYWx1ZShrZXktPnZhbCwgJnZhbHVlKTsKKwkJCWlmIChyZXMgPj0gMCkKKwkJCSAgICBmcHJpbnRmKG91dHB1dCwgIiclcycgIiwgdmFsdWUpOworCQkJZWxzZQorCQkJICAgIGZwcmludGYob3V0cHV0LCAiQ0FOT04tVkFMVUUtRkFJTEVEICIpOworCQkJaWYgKHJlcyA9PSAwKQorCQkJICAgIEZSRUVfQU5EX05VTEwodmFsdWUpCisJCSAgICB9IGVsc2UgaWYgKGtleSAhPSBOVUxMKQorCQkgICAgZnByaW50ZihvdXRwdXQsICIobm8gdmFsKSwgIik7CisJCQllbHNlCisJCQkgICAgZnByaW50ZihvdXRwdXQsICIoa2V5IG1pc3NpbmcpLCAiKTsKKwkJfQorCQlmcHJpbnRmKG91dHB1dCwgIilcbiIpOworCSAgICB9CisJfQorCWJpbmQgPSBiaW5kLT5uZXh0OworICAgIH0gd2hpbGUgKGJpbmQgIT0gTlVMTCk7Cit9CisjZW5kaWYgLyogREVCVUdfSURDICovCisjZW5kaWYgLyogTElCWE1MX09VVFBVVF9FTkFCTEVEICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQkJVXRpbGl0aWVzCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sU2NoZW1hR2V0UHJvcE5vZGU6CisgKiBAbm9kZTogdGhlIGVsZW1lbnQgbm9kZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBTZWVrcyBhbiBhdHRyaWJ1dGUgd2l0aCBhIG5hbWUgb2YgQG5hbWUgaW4KKyAqIG5vIG5hbWVzcGFjZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgb3IgTlVMTCBpZiBub3QgcHJlc2VudC4KKyAqLworc3RhdGljIHhtbEF0dHJQdHIKK3htbFNjaGVtYUdldFByb3BOb2RlKHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICB4bWxBdHRyUHRyIHByb3A7CisKKyAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKG5hbWUgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworICAgIHByb3AgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChwcm9wICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKChwcm9wLT5ucyA9PSBOVUxMKSAmJiB4bWxTdHJFcXVhbChwcm9wLT5uYW1lLCBCQURfQ0FTVCBuYW1lKSkKKwkgICAgcmV0dXJuKHByb3ApOworCXByb3AgPSBwcm9wLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKE5VTEwpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldFByb3BOb2RlTnM6CisgKiBAbm9kZTogdGhlIGVsZW1lbnQgbm9kZQorICogQHVyaTogdGhlIHVyaQorICogQG5hbWU6IHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBTZWVrcyBhbiBhdHRyaWJ1dGUgd2l0aCBhIGxvY2FsIG5hbWUgb2YgQG5hbWUgYW5kCisgKiBhIG5hbWVzcGFjZSBVUkkgb2YgQHVyaS4KKyAqCisgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgb3IgTlVMTCBpZiBub3QgcHJlc2VudC4KKyAqLworc3RhdGljIHhtbEF0dHJQdHIKK3htbFNjaGVtYUdldFByb3BOb2RlTnMoeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFyICp1cmksIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgeG1sQXR0clB0ciBwcm9wOworCisgICAgaWYgKChub2RlID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBwcm9wID0gbm9kZS0+cHJvcGVydGllczsKKyAgICB3aGlsZSAocHJvcCAhPSBOVUxMKSB7CisJaWYgKChwcm9wLT5ucyAhPSBOVUxMKSAmJgorCSAgICB4bWxTdHJFcXVhbChwcm9wLT5uYW1lLCBCQURfQ0FTVCBuYW1lKSAmJgorCSAgICB4bWxTdHJFcXVhbChwcm9wLT5ucy0+aHJlZiwgQkFEX0NBU1QgdXJpKSkKKwkgICAgcmV0dXJuKHByb3ApOworCXByb3AgPSBwcm9wLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKE5VTEwpOworfQorCitzdGF0aWMgY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFHZXROb2RlQ29udGVudCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxDaGFyICp2YWw7CisgICAgY29uc3QgeG1sQ2hhciAqcmV0OworCisgICAgdmFsID0geG1sTm9kZUdldENvbnRlbnQobm9kZSk7CisgICAgaWYgKHZhbCA9PSBOVUxMKQorCXZhbCA9IHhtbFN0cmR1cCgoeG1sQ2hhciAqKSIiKTsKKyAgICByZXQgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIHZhbCwgLTEpOworICAgIHhtbEZyZWUodmFsKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnROb0RpY3QoeG1sTm9kZVB0ciBub2RlKQoreworICAgIHJldHVybigoY29uc3QgeG1sQ2hhciopIHhtbE5vZGVHZXRDb250ZW50KG5vZGUpKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFHZXRQcm9wOgorICogQGN0eHQ6IHRoZSBwYXJzZXIgY29udGV4dAorICogQG5vZGU6IHRoZSBub2RlCisgKiBAbmFtZTogdGhlIHByb3BlcnR5IG5hbWUKKyAqCisgKiBSZWFkIGEgYXR0cmlidXRlIHZhbHVlIGFuZCBpbnRlcm5hbGl6ZSB0aGUgc3RyaW5nCisgKgorICogUmV0dXJucyB0aGUgc3RyaW5nIG9yIE5VTEwgaWYgbm90IHByZXNlbnQuCisgKi8KK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbFNjaGVtYUdldFByb3AoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgeG1sQ2hhciAqdmFsOworICAgIGNvbnN0IHhtbENoYXIgKnJldDsKKworICAgIHZhbCA9IHhtbEdldE5vTnNQcm9wKG5vZGUsIEJBRF9DQVNUIG5hbWUpOworICAgIGlmICh2YWwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIHJldCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgdmFsLCAtMSk7CisgICAgeG1sRnJlZSh2YWwpOworICAgIHJldHVybihyZXQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlQYXJzaW5nIGZ1bmN0aW9ucwkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFdYU19GSU5EX0dMT0JBTF9JVEVNKHNsb3QpCQkJXAorICAgIGlmICh4bWxTdHJFcXVhbChuc05hbWUsIHNjaGVtYS0+dGFyZ2V0TmFtZXNwYWNlKSkgeyBcCisJcmV0ID0geG1sSGFzaExvb2t1cChzY2hlbWEtPnNsb3QsIG5hbWUpOyBcCisJaWYgKHJldCAhPSBOVUxMKSBnb3RvIGV4aXQ7IFwKKyAgICB9IFwKKyAgICBpZiAoeG1sSGFzaFNpemUoc2NoZW1hLT5zY2hlbWFzSW1wb3J0cykgPiAxKSB7IFwKKwl4bWxTY2hlbWFJbXBvcnRQdHIgaW1wb3J0OyBcCisJaWYgKG5zTmFtZSA9PSBOVUxMKSBcCisJICAgIGltcG9ydCA9IHhtbEhhc2hMb29rdXAoc2NoZW1hLT5zY2hlbWFzSW1wb3J0cywgXAorCQlYTUxfU0NIRU1BU19OT19OQU1FU1BBQ0UpOyBcCisJZWxzZSBcCisJICAgIGltcG9ydCA9IHhtbEhhc2hMb29rdXAoc2NoZW1hLT5zY2hlbWFzSW1wb3J0cywgbnNOYW1lKTsgXAorCWlmIChpbXBvcnQgPT0gTlVMTCkgXAorCSAgICBnb3RvIGV4aXQ7IFwKKwlyZXQgPSB4bWxIYXNoTG9va3VwKGltcG9ydC0+c2NoZW1hLT5zbG90LCBuYW1lKTsgXAorICAgIH0KKworLyoqCisgKiB4bWxTY2hlbWFHZXRFbGVtOgorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgY29udGV4dAorICogQG5hbWU6ICB0aGUgZWxlbWVudCBuYW1lCisgKiBAbnM6ICB0aGUgZWxlbWVudCBuYW1lc3BhY2UKKyAqCisgKiBMb29rdXAgYSBnbG9iYWwgZWxlbWVudCBkZWNsYXJhdGlvbiBpbiB0aGUgc2NoZW1hLgorICoKKyAqIFJldHVybnMgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24gb3IgTlVMTCBpZiBub3QgZm91bmQuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFFbGVtZW50UHRyCit4bWxTY2hlbWFHZXRFbGVtKHhtbFNjaGVtYVB0ciBzY2hlbWEsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbnNOYW1lKQoreworICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgobmFtZSA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgaWYgKHNjaGVtYSAhPSBOVUxMKSB7CisJV1hTX0ZJTkRfR0xPQkFMX0lURU0oZWxlbURlY2wpCisgICAgfQorZXhpdDoKKyNpZmRlZiBERUJVRworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICBpZiAobnNOYW1lID09IE5VTEwpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb29rdXAgZWxlbWVudCBkZWNsLiAlcyIsIG5hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb29rdXAgZWxlbWVudCBkZWNsLiAlczolcyIsIG5hbWUsCisgICAgICAgICAgICAgICAgICAgIG5zTmFtZSk7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldFR5cGU6CisgKiBAc2NoZW1hOiAgdGhlIG1haW4gc2NoZW1hCisgKiBAbmFtZTogIHRoZSB0eXBlJ3MgbmFtZQorICogbnNOYW1lOiAgdGhlIHR5cGUncyBuYW1lc3BhY2UKKyAqCisgKiBMb29rdXAgYSB0eXBlIGluIHRoZSBzY2hlbWFzIG9yIHRoZSBwcmVkZWZpbmVkIHR5cGVzCisgKgorICogUmV0dXJucyB0aGUgZ3JvdXAgZGVmaW5pdGlvbiBvciBOVUxMIGlmIG5vdCBmb3VuZC4KKyAqLworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIKK3htbFNjaGVtYUdldFR5cGUoeG1sU2NoZW1hUHRyIHNjaGVtYSwgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuc05hbWUpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciByZXQgPSBOVUxMOworCisgICAgaWYgKG5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAvKiBGaXJzdCB0cnkgdGhlIGJ1aWx0LWluIHR5cGVzLiAqLworICAgIGlmICgobnNOYW1lICE9IE5VTEwpICYmIHhtbFN0ckVxdWFsKG5zTmFtZSwgeG1sU2NoZW1hTnMpKSB7CisJcmV0ID0geG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUobmFtZSwgbnNOYW1lKTsKKwlpZiAocmV0ICE9IE5VTEwpCisJICAgIGdvdG8gZXhpdDsKKwkvKgorCSogTm90ZSB0aGF0IHdlIHRyeSB0aGUgcGFyc2VkIHNjaGVtYXMgYXMgd2VsbCBoZXJlCisJKiBzaW5jZSBvbmUgbWlnaHQgaGF2ZSBwYXJzZWQgdGhlIFM0Uywgd2hpY2ggY29udGFpbiBtb3JlCisJKiB0aGFuIHRoZSBidWlsdC1pbiB0eXBlcy4KKwkqIFRPRE86IENhbiB3ZSBvcHRpbWl6ZSB0aGlzPworCSovCisgICAgfQorICAgIGlmIChzY2hlbWEgIT0gTlVMTCkgeworCVdYU19GSU5EX0dMT0JBTF9JVEVNKHR5cGVEZWNsKQorICAgIH0KK2V4aXQ6CisKKyNpZmRlZiBERUJVRworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICBpZiAobnNOYW1lID09IE5VTEwpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb29rdXAgdHlwZSAlcyIsIG5hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb29rdXAgdHlwZSAlczolcyIsIG5hbWUsCisgICAgICAgICAgICAgICAgICAgIG5zTmFtZSk7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldEF0dHJpYnV0ZURlY2w6CisgKiBAc2NoZW1hOiAgdGhlIGNvbnRleHQgb2YgdGhlIHNjaGVtYQorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlCisgKiBAbnM6ICB0aGUgdGFyZ2V0IG5hbWVzcGFjZSBvZiB0aGUgYXR0cmlidXRlCisgKgorICogTG9va3VwIGEgYW4gYXR0cmlidXRlIGluIHRoZSBzY2hlbWEgb3IgaW1wb3J0ZWQgc2NoZW1hcworICoKKyAqIFJldHVybnMgdGhlIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBvciBOVUxMIGlmIG5vdCBmb3VuZC4KKyAqLworc3RhdGljIHhtbFNjaGVtYUF0dHJpYnV0ZVB0cgoreG1sU2NoZW1hR2V0QXR0cmlidXRlRGVjbCh4bWxTY2hlbWFQdHIgc2NoZW1hLCBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5zTmFtZSkKK3sKKyAgICB4bWxTY2hlbWFBdHRyaWJ1dGVQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgobmFtZSA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmIChzY2hlbWEgIT0gTlVMTCkgeworCVdYU19GSU5EX0dMT0JBTF9JVEVNKGF0dHJEZWNsKQorICAgIH0KK2V4aXQ6CisjaWZkZWYgREVCVUcKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgaWYgKG5zTmFtZSA9PSBOVUxMKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gbG9va3VwIGF0dHJpYnV0ZSAlcyIsIG5hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb29rdXAgYXR0cmlidXRlICVzOiVzIiwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgbnNOYW1lKTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hR2V0QXR0cmlidXRlR3JvdXA6CisgKiBAc2NoZW1hOiAgdGhlIGNvbnRleHQgb2YgdGhlIHNjaGVtYQorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGdyb3VwCisgKiBAbnM6ICB0aGUgdGFyZ2V0IG5hbWVzcGFjZSBvZiB0aGUgYXR0cmlidXRlIGdyb3VwCisgKgorICogTG9va3VwIGEgYW4gYXR0cmlidXRlIGdyb3VwIGluIHRoZSBzY2hlbWEgb3IgaW1wb3J0ZWQgc2NoZW1hcworICoKKyAqIFJldHVybnMgdGhlIGF0dHJpYnV0ZSBncm91cCBkZWZpbml0aW9uIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICovCitzdGF0aWMgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIKK3htbFNjaGVtYUdldEF0dHJpYnV0ZUdyb3VwKHhtbFNjaGVtYVB0ciBzY2hlbWEsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbnNOYW1lKQoreworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIHJldCA9IE5VTEw7CisKKyAgICBpZiAoKG5hbWUgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoc2NoZW1hICE9IE5VTEwpIHsKKwlXWFNfRklORF9HTE9CQUxfSVRFTShhdHRyZ3JwRGVjbCkKKyAgICB9CitleGl0OgorICAgIC8qIFRPRE86CisgICAgaWYgKChyZXQgIT0gTlVMTCkgJiYgKHJldC0+cmVkZWYgIT0gTlVMTCkpIHsKKwkqIFJldHVybiB0aGUgbGFzdCByZWRlZmluaXRpb24uICoKKwlyZXQgPSByZXQtPnJlZGVmOworICAgIH0KKyAgICAqLworI2lmZGVmIERFQlVHCisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIGlmIChuc05hbWUgPT0gTlVMTCkKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGxvb2t1cCBhdHRyaWJ1dGUgZ3JvdXAgJXMiLCBuYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gbG9va3VwIGF0dHJpYnV0ZSBncm91cCAlczolcyIsIG5hbWUsCisgICAgICAgICAgICAgICAgICAgIG5zTmFtZSk7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldEdyb3VwOgorICogQHNjaGVtYTogIHRoZSBjb250ZXh0IG9mIHRoZSBzY2hlbWEKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIGdyb3VwCisgKiBAbnM6ICB0aGUgdGFyZ2V0IG5hbWVzcGFjZSBvZiB0aGUgZ3JvdXAKKyAqCisgKiBMb29rdXAgYSBncm91cCBpbiB0aGUgc2NoZW1hIG9yIGltcG9ydGVkIHNjaGVtYXMKKyAqCisgKiBSZXR1cm5zIHRoZSBncm91cCBkZWZpbml0aW9uIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICovCitzdGF0aWMgeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cgoreG1sU2NoZW1hR2V0R3JvdXAoeG1sU2NoZW1hUHRyIHNjaGVtYSwgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuc05hbWUpCit7CisgICAgeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0ciByZXQgPSBOVUxMOworCisgICAgaWYgKChuYW1lID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaWYgKHNjaGVtYSAhPSBOVUxMKSB7CisJV1hTX0ZJTkRfR0xPQkFMX0lURU0oZ3JvdXBEZWNsKQorICAgIH0KK2V4aXQ6CisKKyNpZmRlZiBERUJVRworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICBpZiAobnNOYW1lID09IE5VTEwpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb29rdXAgZ3JvdXAgJXMiLCBuYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gbG9va3VwIGdyb3VwICVzOiVzIiwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgbnNOYW1lKTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFOb3RhdGlvblB0cgoreG1sU2NoZW1hR2V0Tm90YXRpb24oeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJICAgICBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkgICAgIGNvbnN0IHhtbENoYXIgKm5zTmFtZSkKK3sKKyAgICB4bWxTY2hlbWFOb3RhdGlvblB0ciByZXQgPSBOVUxMOworCisgICAgaWYgKChuYW1lID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgaWYgKHNjaGVtYSAhPSBOVUxMKSB7CisJV1hTX0ZJTkRfR0xPQkFMX0lURU0obm90YURlY2wpCisgICAgfQorZXhpdDoKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFJRENQdHIKK3htbFNjaGVtYUdldElEQyh4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQljb25zdCB4bWxDaGFyICpuYW1lLAorCQljb25zdCB4bWxDaGFyICpuc05hbWUpCit7CisgICAgeG1sU2NoZW1hSURDUHRyIHJldCA9IE5VTEw7CisKKyAgICBpZiAoKG5hbWUgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoc2NoZW1hICE9IE5VTEwpIHsKKwlXWFNfRklORF9HTE9CQUxfSVRFTShpZGNEZWYpCisgICAgfQorZXhpdDoKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hR2V0TmFtZWRDb21wb25lbnQ6CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYQorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgZ3JvdXAKKyAqIEBuczogIHRoZSB0YXJnZXQgbmFtZXNwYWNlIG9mIHRoZSBncm91cAorICoKKyAqIExvb2t1cCBhIGdyb3VwIGluIHRoZSBzY2hlbWEgb3IgaW1wb3J0ZWQgc2NoZW1hcworICoKKyAqIFJldHVybnMgdGhlIGdyb3VwIGRlZmluaXRpb24gb3IgTlVMTCBpZiBub3QgZm91bmQuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIKK3htbFNjaGVtYUdldE5hbWVkQ29tcG9uZW50KHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkgICB4bWxTY2hlbWFUeXBlVHlwZSBpdGVtVHlwZSwKKwkJCSAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkgICBjb25zdCB4bWxDaGFyICp0YXJnZXROcykKK3sKKyAgICBzd2l0Y2ggKGl0ZW1UeXBlKSB7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfR1JPVVA6CisJICAgIHJldHVybiAoKHhtbFNjaGVtYUJhc2ljSXRlbVB0cikgeG1sU2NoZW1hR2V0R3JvdXAoc2NoZW1hLAorCQluYW1lLCB0YXJnZXROcykpOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJICAgIHJldHVybiAoKHhtbFNjaGVtYUJhc2ljSXRlbVB0cikgeG1sU2NoZW1hR2V0RWxlbShzY2hlbWEsCisJCW5hbWUsIHRhcmdldE5zKSk7CisJZGVmYXVsdDoKKwkgICAgVE9ETworCSAgICByZXR1cm4gKE5VTEwpOworICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQkJUGFyc2luZyBmdW5jdGlvbnMJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBJU19CTEFOS19OT0RFKG4pCQkJCQkJXAorICAgICgoKG4pLT50eXBlID09IFhNTF9URVhUX05PREUpICYmICh4bWxTY2hlbWFJc0JsYW5rKChuKS0+Y29udGVudCwgLTEpKSkKKworLyoqCisgKiB4bWxTY2hlbWFJc0JsYW5rOgorICogQHN0cjogIGEgc3RyaW5nCisgKiBAbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgb3IgLTEKKyAqCisgKiBDaGVjayBpZiBhIHN0cmluZyBpcyBpZ25vcmFibGUKKyAqCisgKiBSZXR1cm5zIDEgaWYgdGhlIHN0cmluZyBpcyBOVUxMIG9yIG1hZGUgb2YgYmxhbmtzIGNoYXJzLCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFJc0JsYW5rKHhtbENoYXIgKiBzdHIsIGludCBsZW4pCit7CisgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKDEpOworICAgIGlmIChsZW4gPCAwKSB7CisJd2hpbGUgKCpzdHIgIT0gMCkgeworCSAgICBpZiAoIShJU19CTEFOS19DSCgqc3RyKSkpCisJCXJldHVybiAoMCk7CisJICAgIHN0cisrOworCX0KKyAgICB9IGVsc2Ugd2hpbGUgKCgqc3RyICE9IDApICYmIChsZW4gIT0gMCkpIHsKKwlpZiAoIShJU19CTEFOS19DSCgqc3RyKSkpCisJICAgIHJldHVybiAoMCk7CisJc3RyKys7CisJbGVuLS07CisgICAgfQorCisgICAgcmV0dXJuICgxKTsKK30KKworI2RlZmluZSBXWFNfQ09NUF9OQU1FKGMsIHQpICgodCkgKGMpKS0+bmFtZQorI2RlZmluZSBXWFNfQ09NUF9UTlMoYywgdCkgKCh0KSAoYykpLT50YXJnZXROYW1lc3BhY2UKKy8qCisqIHhtbFNjaGVtYUZpbmRSZWRlZkNvbXBJbkdyYXBoOgorKiBBVFRFTlRJT04gVE9ETzogVGhpcyB1c2VzIHBvaW50ZXIgY29tcC4gZm9yIHN0cmluZ3MuCisqLworc3RhdGljIHhtbFNjaGVtYUJhc2ljSXRlbVB0cgoreG1sU2NoZW1hRmluZFJlZGVmQ29tcEluR3JhcGgoeG1sU2NoZW1hQnVja2V0UHRyIGJ1Y2tldCwKKwkJCSAgICAgIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGUsCisJCQkgICAgICBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJICAgICAgY29uc3QgeG1sQ2hhciAqbnNOYW1lKQoreworICAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciByZXQ7CisgICAgaW50IGk7CisKKyAgICBpZiAoKGJ1Y2tldCA9PSBOVUxMKSB8fCAobmFtZSA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKChidWNrZXQtPmdsb2JhbHMgPT0gTlVMTCkgfHwKKwkoYnVja2V0LT5nbG9iYWxzLT5uYkl0ZW1zID09IDApKQorCWdvdG8gc3Vic2NoZW1hczsKKyAgICAvKgorICAgICogU2VhcmNoIGluIGdsb2JhbCBjb21wb25lbnRzLgorICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IGJ1Y2tldC0+Z2xvYmFscy0+bmJJdGVtczsgaSsrKSB7CisJcmV0ID0gYnVja2V0LT5nbG9iYWxzLT5pdGVtc1tpXTsKKwlpZiAocmV0LT50eXBlID09IHR5cGUpIHsKKwkgICAgc3dpdGNoICh0eXBlKSB7CisJCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVg6CisJCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRToKKwkJICAgIGlmICgoV1hTX0NPTVBfTkFNRShyZXQsIHhtbFNjaGVtYVR5cGVQdHIpID09IG5hbWUpICYmCisJCQkoV1hTX0NPTVBfVE5TKHJldCwgeG1sU2NoZW1hVHlwZVB0cikgPT0KKwkJCW5zTmFtZSkpCisJCSAgICB7CisJCQlyZXR1cm4ocmV0KTsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9TQ0hFTUFfVFlQRV9HUk9VUDoKKwkJICAgIGlmICgoV1hTX0NPTVBfTkFNRShyZXQsCisJCQkgICAgeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cikgPT0gbmFtZSkgJiYKKwkJCShXWFNfQ09NUF9UTlMocmV0LAorCQkJICAgIHhtbFNjaGVtYU1vZGVsR3JvdXBEZWZQdHIpID09IG5zTmFtZSkpCisJCSAgICB7CisJCQlyZXR1cm4ocmV0KTsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUDoKKwkJICAgIGlmICgoV1hTX0NPTVBfTkFNRShyZXQsCisJCQkgICAgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIpID09IG5hbWUpICYmCisJCQkoV1hTX0NPTVBfVE5TKHJldCwKKwkJCSAgICB4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0cikgPT0gbnNOYW1lKSkKKwkJICAgIHsKKwkJCXJldHVybihyZXQpOworCQkgICAgfQorCQkgICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCSAgICAvKiBTaG91bGQgbm90IGJlIGhpdC4gKi8KKwkJICAgIHJldHVybihOVUxMKTsKKwkgICAgfQorCX0KKyAgICB9CitzdWJzY2hlbWFzOgorICAgIC8qCisgICAgKiBQcm9jZXNzIGltcG9ydGVkL2luY2x1ZGVkIHNjaGVtYXMuCisgICAgKi8KKyAgICBpZiAoYnVja2V0LT5yZWxhdGlvbnMgIT0gTlVMTCkgeworCXhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIHJlbCA9IGJ1Y2tldC0+cmVsYXRpb25zOworCisJLyoKKwkqIFRPRE86IE1hcmtpbmcgdGhlIGJ1Y2tldCB3aWxsIG5vdCBhdm9pZCBtdWx0aXBsZSBzZWFyY2hlcworCSogaW4gdGhlIHNhbWUgc2NoZW1hLCBidXQgYXZvaWRzIGF0IGxlYXN0IGNpcmN1bGFyaXR5LgorCSovCisJYnVja2V0LT5mbGFncyB8PSBYTUxfU0NIRU1BX0JVQ0tFVF9NQVJLRUQ7CisJZG8geworCSAgICBpZiAoKHJlbC0+YnVja2V0ICE9IE5VTEwpICYmCisJCSgocmVsLT5idWNrZXQtPmZsYWdzICYgWE1MX1NDSEVNQV9CVUNLRVRfTUFSS0VEKSA9PSAwKSkgeworCQlyZXQgPSB4bWxTY2hlbWFGaW5kUmVkZWZDb21wSW5HcmFwaChyZWwtPmJ1Y2tldCwKKwkJICAgIHR5cGUsIG5hbWUsIG5zTmFtZSk7CisJCWlmIChyZXQgIT0gTlVMTCkKKwkJICAgIHJldHVybihyZXQpOworCSAgICB9CisJICAgIHJlbCA9IHJlbC0+bmV4dDsKKwl9IHdoaWxlIChyZWwgIT0gTlVMTCk7CisJIGJ1Y2tldC0+ZmxhZ3MgXj0gWE1MX1NDSEVNQV9CVUNLRVRfTUFSS0VEOworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQWRkTm90YXRpb246CisgKiBAY3R4dDogIGEgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5hbWU6ICB0aGUgaXRlbSBuYW1lCisgKgorICogQWRkIGFuIFhNTCBzY2hlbWEgYW5ub3RhdGlvbiBkZWNsYXJhdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1dHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYU5vdGF0aW9uUHRyCit4bWxTY2hlbWFBZGROb3RhdGlvbih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpuYW1lLCBjb25zdCB4bWxDaGFyICpuc05hbWUsCisJCSAgICAgeG1sTm9kZVB0ciBub2RlIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgeG1sU2NoZW1hTm90YXRpb25QdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0gKHhtbFNjaGVtYU5vdGF0aW9uUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYU5vdGF0aW9uKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwgImFkZCBhbm5vdGF0aW9uIiwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFOb3RhdGlvbikpOworICAgIHJldC0+dHlwZSA9IFhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTjsKKyAgICByZXQtPm5hbWUgPSBuYW1lOworICAgIHJldC0+dGFyZ2V0TmFtZXNwYWNlID0gbnNOYW1lOworICAgIC8qIFRPRE86IGRvIHdlIG5lZWQgdGhlIG5vZGUgdG8gYmUgc2V0PworICAgICogcmV0LT5ub2RlID0gbm9kZTsqLworICAgIFdYU19BRERfR0xPQkFMKGN0eHQsIHJldCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUFkZEF0dHJpYnV0ZToKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAbmFtZTogIHRoZSBpdGVtIG5hbWUKKyAqIEBuYW1lc3BhY2U6ICB0aGUgbmFtZXNwYWNlCisgKgorICogQWRkIGFuIFhNTCBzY2hlbWEgQXR0cnJpYnV0ZSBkZWNsYXJhdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1dHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYUF0dHJpYnV0ZVB0cgoreG1sU2NoZW1hQWRkQXR0cmlidXRlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwgY29uc3QgeG1sQ2hhciAqIG5zTmFtZSwKKwkJICAgICAgeG1sTm9kZVB0ciBub2RlLCBpbnQgdG9wTGV2ZWwpCit7CisgICAgeG1sU2NoZW1hQXR0cmlidXRlUHRyIHJldCA9IE5VTEw7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHJldCA9ICh4bWxTY2hlbWFBdHRyaWJ1dGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hQXR0cmlidXRlKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgYXR0cmlidXRlIiwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFBdHRyaWJ1dGUpKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFOworICAgIHJldC0+bm9kZSA9IG5vZGU7CisgICAgcmV0LT5uYW1lID0gbmFtZTsKKyAgICByZXQtPnRhcmdldE5hbWVzcGFjZSA9IG5zTmFtZTsKKworICAgIGlmICh0b3BMZXZlbCkKKwlXWFNfQUREX0dMT0JBTChjdHh0LCByZXQpOworICAgIGVsc2UKKwlXWFNfQUREX0xPQ0FMKGN0eHQsIHJldCk7CisgICAgV1hTX0FERF9QRU5ESU5HKGN0eHQsIHJldCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUFkZEF0dHJpYnV0ZVVzZToKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAbmFtZTogIHRoZSBpdGVtIG5hbWUKKyAqIEBuYW1lc3BhY2U6ICB0aGUgbmFtZXNwYWNlCisgKgorICogQWRkIGFuIFhNTCBzY2hlbWEgQXR0cnJpYnV0ZSBkZWNsYXJhdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1dHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0cgoreG1sU2NoZW1hQWRkQXR0cmlidXRlVXNlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciByZXQgPSBOVUxMOworCisgICAgaWYgKHBjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICByZXQgPSAoeG1sU2NoZW1hQXR0cmlidXRlVXNlUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFQRXJyTWVtb3J5KHBjdHh0LCAiYWxsb2NhdGluZyBhdHRyaWJ1dGUiLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZSkpOworICAgIHJldC0+dHlwZSA9IFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFOworICAgIHJldC0+bm9kZSA9IG5vZGU7CisKKyAgICBXWFNfQUREX0xPQ0FMKHBjdHh0LCByZXQpOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoKKyogeG1sU2NoZW1hQWRkUmVkZWY6CisqCisqIEFkZHMgYSByZWRlZmluaXRpb24gaW5mb3JtYXRpb24uIFRoaXMgaXMgdXNlZCBhdCBhIGxhdGVyIHN0YWdlIHRvOgorKiByZXNvbHZlIHJlZmVyZW5jZXMgdG8gdGhlIHJlZGVmaW5lZCBjb21wb25lbnRzIGFuZCB0byBjaGVjayBjb25zdHJhaW50cy4KKyovCitzdGF0aWMgeG1sU2NoZW1hUmVkZWZQdHIKK3htbFNjaGVtYUFkZFJlZGVmKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCSAgeG1sU2NoZW1hQnVja2V0UHRyIHRhcmdldEJ1Y2tldCwKKwkJICB2b2lkICppdGVtLAorCQkgIGNvbnN0IHhtbENoYXIgKnJlZk5hbWUsCisJCSAgY29uc3QgeG1sQ2hhciAqcmVmVGFyZ2V0TnMpCit7CisgICAgeG1sU2NoZW1hUmVkZWZQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYVJlZGVmUHRyKQorCXhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hUmVkZWYpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyTWVtb3J5KHBjdHh0LAorCSAgICAiYWxsb2NhdGluZyByZWRlZmluaXRpb24gaW5mbyIsIE5VTEwpOworCXJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFSZWRlZikpOworICAgIHJldC0+aXRlbSA9IGl0ZW07CisgICAgcmV0LT50YXJnZXRCdWNrZXQgPSB0YXJnZXRCdWNrZXQ7CisgICAgcmV0LT5yZWZOYW1lID0gcmVmTmFtZTsKKyAgICByZXQtPnJlZlRhcmdldE5zID0gcmVmVGFyZ2V0TnM7CisgICAgaWYgKFdYU19DT05TVFJVQ1RPUihwY3R4dCktPnJlZGVmcyA9PSBOVUxMKQorCVdYU19DT05TVFJVQ1RPUihwY3R4dCktPnJlZGVmcyA9IHJldDsKKyAgICBlbHNlCisJV1hTX0NPTlNUUlVDVE9SKHBjdHh0KS0+bGFzdFJlZGVmLT5uZXh0ID0gcmV0OworICAgIFdYU19DT05TVFJVQ1RPUihwY3R4dCktPmxhc3RSZWRlZiA9IHJldDsKKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFBZGRBdHRyaWJ1dGVHcm91cERlZmluaXRpb246CisgKiBAY3R4dDogIGEgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5hbWU6ICB0aGUgaXRlbSBuYW1lCisgKiBAbnNOYW1lOiAgdGhlIHRhcmdldCBuYW1lc3BhY2UKKyAqIEBub2RlOiB0aGUgY29ycmVzcG9uZGluZyBub2RlCisgKgorICogQWRkIGFuIFhNTCBzY2hlbWEgQXR0cnJpYnV0ZSBHcm91cCBkZWZpbml0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1dHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyCit4bWxTY2hlbWFBZGRBdHRyaWJ1dGVHcm91cERlZmluaXRpb24oeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEgQVRUUklCVVRFX1VOVVNFRCwKKwkJCSAgIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkgICBjb25zdCB4bWxDaGFyICpuc05hbWUsCisJCQkgICB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgocGN0eHQgPT0gTlVMTCkgfHwgKG5hbWUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICByZXQgPSAoeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIpCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hQXR0cmlidXRlR3JvdXApKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyTWVtb3J5KHBjdHh0LCAiYWxsb2NhdGluZyBhdHRyaWJ1dGUgZ3JvdXAiLCBOVUxMKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hQXR0cmlidXRlR3JvdXApKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA7CisgICAgcmV0LT5uYW1lID0gbmFtZTsKKyAgICByZXQtPnRhcmdldE5hbWVzcGFjZSA9IG5zTmFtZTsKKyAgICByZXQtPm5vZGUgPSBub2RlOworCisgICAgLyogVE9ETzogUmVtb3ZlIHRoZSBmbGFnLiAqLworICAgIHJldC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfQVRUUkdST1VQX0dMT0JBTDsKKyAgICBpZiAocGN0eHQtPmlzUmVkZWZpbmUpIHsKKwlwY3R4dC0+cmVkZWYgPSB4bWxTY2hlbWFBZGRSZWRlZihwY3R4dCwgcGN0eHQtPnJlZGVmaW5lZCwKKwkgICAgcmV0LCBuYW1lLCBuc05hbWUpOworCWlmIChwY3R4dC0+cmVkZWYgPT0gTlVMTCkgeworCSAgICB4bWxGcmVlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJcGN0eHQtPnJlZGVmQ291bnRlciA9IDA7CisgICAgfQorICAgIFdYU19BRERfR0xPQkFMKHBjdHh0LCByZXQpOworICAgIFdYU19BRERfUEVORElORyhwY3R4dCwgcmV0KTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQWRkRWxlbWVudDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAbmFtZTogIHRoZSB0eXBlIG5hbWUKKyAqIEBuYW1lc3BhY2U6ICB0aGUgdHlwZSBuYW1lc3BhY2UKKyAqCisgKiBBZGQgYW4gWE1MIHNjaGVtYSBFbGVtZW50IGRlY2xhcmF0aW9uCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyB0aGUgbmV3IHN0cnV0dXJlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sU2NoZW1hRWxlbWVudFB0cgoreG1sU2NoZW1hQWRkRWxlbWVudCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLCBjb25zdCB4bWxDaGFyICogbnNOYW1lLAorCQkgICAgeG1sTm9kZVB0ciBub2RlLCBpbnQgdG9wTGV2ZWwpCit7CisgICAgeG1sU2NoZW1hRWxlbWVudFB0ciByZXQgPSBOVUxMOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0gKHhtbFNjaGVtYUVsZW1lbnRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hRWxlbWVudCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFQRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIGVsZW1lbnQiLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYUVsZW1lbnQpKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVDsKKyAgICByZXQtPm5hbWUgPSBuYW1lOworICAgIHJldC0+dGFyZ2V0TmFtZXNwYWNlID0gbnNOYW1lOworICAgIHJldC0+bm9kZSA9IG5vZGU7CisKKyAgICBpZiAodG9wTGV2ZWwpCisJV1hTX0FERF9HTE9CQUwoY3R4dCwgcmV0KTsKKyAgICBlbHNlCisJV1hTX0FERF9MT0NBTChjdHh0LCByZXQpOworICAgIFdYU19BRERfUEVORElORyhjdHh0LCByZXQpOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFBZGRUeXBlOgorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBuYW1lOiAgdGhlIGl0ZW0gbmFtZQorICogQG5hbWVzcGFjZTogIHRoZSBuYW1lc3BhY2UKKyAqCisgKiBBZGQgYW4gWE1MIHNjaGVtYSBpdGVtCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyB0aGUgbmV3IHN0cnV0dXJlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0cgoreG1sU2NoZW1hQWRkVHlwZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCSB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwgY29uc3QgeG1sQ2hhciAqIG5zTmFtZSwKKwkJIHhtbE5vZGVQdHIgbm9kZSwgaW50IHRvcExldmVsKQoreworICAgIHhtbFNjaGVtYVR5cGVQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0gKHhtbFNjaGVtYVR5cGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hVHlwZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFQRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIHR5cGUiLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYVR5cGUpKTsKKyAgICByZXQtPnR5cGUgPSB0eXBlOworICAgIHJldC0+bmFtZSA9IG5hbWU7CisgICAgcmV0LT50YXJnZXROYW1lc3BhY2UgPSBuc05hbWU7CisgICAgcmV0LT5ub2RlID0gbm9kZTsKKyAgICBpZiAodG9wTGV2ZWwpIHsKKwlpZiAoY3R4dC0+aXNSZWRlZmluZSkgeworCSAgICBjdHh0LT5yZWRlZiA9IHhtbFNjaGVtYUFkZFJlZGVmKGN0eHQsIGN0eHQtPnJlZGVmaW5lZCwKKwkJcmV0LCBuYW1lLCBuc05hbWUpOworCSAgICBpZiAoY3R4dC0+cmVkZWYgPT0gTlVMTCkgeworCQl4bWxGcmVlKHJldCk7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBjdHh0LT5yZWRlZkNvdW50ZXIgPSAwOworCX0KKwlXWFNfQUREX0dMT0JBTChjdHh0LCByZXQpOworICAgIH0gZWxzZQorCVdYU19BRERfTE9DQUwoY3R4dCwgcmV0KTsKKyAgICBXWFNfQUREX1BFTkRJTkcoY3R4dCwgcmV0KTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFRTmFtZVJlZlB0cgoreG1sU2NoZW1hTmV3UU5hbWVSZWYoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJICAgICB4bWxTY2hlbWFUeXBlVHlwZSByZWZUeXBlLAorCQkgICAgIGNvbnN0IHhtbENoYXIgKnJlZk5hbWUsCisJCSAgICAgY29uc3QgeG1sQ2hhciAqcmVmTnMpCit7CisgICAgeG1sU2NoZW1hUU5hbWVSZWZQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYVFOYW1lUmVmUHRyKQorCXhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hUU5hbWVSZWYpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyTWVtb3J5KHBjdHh0LAorCSAgICAiYWxsb2NhdGluZyBRTmFtZSByZWZlcmVuY2UgaXRlbSIsIE5VTEwpOworCXJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHJldC0+bm9kZSA9IE5VTEw7CisgICAgcmV0LT50eXBlID0gWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRjsKKyAgICByZXQtPm5hbWUgPSByZWZOYW1lOworICAgIHJldC0+dGFyZ2V0TmFtZXNwYWNlID0gcmVmTnM7CisgICAgcmV0LT5pdGVtID0gTlVMTDsKKyAgICByZXQtPml0ZW1UeXBlID0gcmVmVHlwZTsKKyAgICAvKgorICAgICogU3RvcmUgdGhlIHJlZmVyZW5jZSBpdGVtIGluIHRoZSBzY2hlbWEuCisgICAgKi8KKyAgICBXWFNfQUREX0xPQ0FMKHBjdHh0LCByZXQpOworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYlB0cgoreG1sU2NoZW1hQWRkQXR0cmlidXRlVXNlUHJvaGliKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQpCit7CisgICAgeG1sU2NoZW1hQXR0cmlidXRlVXNlUHJvaGliUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQcm9oaWJQdHIpCisJeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQcm9oaWIpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyTWVtb3J5KHBjdHh0LAorCSAgICAiYWxsb2NhdGluZyBhdHRyaWJ1dGUgdXNlIHByb2hpYml0aW9uIiwgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVByb2hpYikpOworICAgIHJldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRVhUUkFfQVRUUl9VU0VfUFJPSElCOworICAgIFdYU19BRERfTE9DQUwocGN0eHQsIHJldCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCisKKy8qKgorICogeG1sU2NoZW1hQWRkTW9kZWxHcm91cDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAdHlwZTogdGhlICJjb21wb3NpdG9yIiB0eXBlIG9mIHRoZSBtb2RlbCBncm91cAorICogQG5vZGU6IHRoZSBub2RlIGluIHRoZSBzY2hlbWEgZG9jCisgKgorICogQWRkcyBhIHNjaGVtYSBtb2RlbCBncm91cAorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1dHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYU1vZGVsR3JvdXBQdHIKK3htbFNjaGVtYUFkZE1vZGVsR3JvdXAoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkgICAgICAgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJICAgICAgIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGUsCisJCSAgICAgICB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hTW9kZWxHcm91cFB0ciByZXQgPSBOVUxMOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICByZXQgPSAoeG1sU2NoZW1hTW9kZWxHcm91cFB0cikKKwl4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYU1vZGVsR3JvdXApKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIG1vZGVsIGdyb3VwIGNvbXBvbmVudCIsCisJICAgIE5VTEwpOworCXJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFNb2RlbEdyb3VwKSk7CisgICAgcmV0LT50eXBlID0gdHlwZTsKKyAgICByZXQtPm5vZGUgPSBub2RlOworICAgIFdYU19BRERfTE9DQUwoY3R4dCwgcmV0KTsKKyAgICBpZiAoKHR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFKSB8fAorCSh0eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0UpKQorCVdYU19BRERfUEVORElORyhjdHh0LCByZXQpOworICAgIHJldHVybiAocmV0KTsKK30KKworCisvKioKKyAqIHhtbFNjaGVtYUFkZFBhcnRpY2xlOgorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiB0aGUgY29ycmVzcG9uZGluZyBub2RlIGluIHRoZSBzY2hlbWEgZG9jCisgKiBAbWluOiB0aGUgbWluT2NjdXJzCisgKiBAbWF4OiB0aGUgbWF4T2NjdXJzCisgKgorICogQWRkcyBhbiBYTUwgc2NoZW1hIHBhcnRpY2xlIGNvbXBvbmVudC4KKyAqICpXQVJOSU5HKiB0aGlzIGludGVyZmFjZSBpcyBoaWdobHkgc3ViamVjdCB0byBjaGFuZ2UKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc3RydXR1cmUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFQYXJ0aWNsZVB0cgoreG1sU2NoZW1hQWRkUGFydGljbGUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkgICAgIHhtbE5vZGVQdHIgbm9kZSwgaW50IG1pbiwgaW50IG1heCkKK3sKKyAgICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciByZXQgPSBOVUxMOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyNpZmRlZiBERUJVRworICAgIGZwcmludGYoc3RkZXJyLCAiQWRkaW5nIHBhcnRpY2xlIGNvbXBvbmVudFxuIik7CisjZW5kaWYKKyAgICByZXQgPSAoeG1sU2NoZW1hUGFydGljbGVQdHIpCisJeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFQYXJ0aWNsZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgcGFydGljbGUgY29tcG9uZW50IiwKKwkgICAgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgcmV0LT50eXBlID0gWE1MX1NDSEVNQV9UWVBFX1BBUlRJQ0xFOworICAgIHJldC0+YW5ub3QgPSBOVUxMOworICAgIHJldC0+bm9kZSA9IG5vZGU7CisgICAgcmV0LT5taW5PY2N1cnMgPSBtaW47CisgICAgcmV0LT5tYXhPY2N1cnMgPSBtYXg7CisgICAgcmV0LT5uZXh0ID0gTlVMTDsKKyAgICByZXQtPmNoaWxkcmVuID0gTlVMTDsKKworICAgIFdYU19BRERfTE9DQUwoY3R4dCwgcmV0KTsKKyAgICAvKgorICAgICogTm90ZSB0aGF0IGFkZGl0aW9uIHRvIHBlbmRpbmcgY29tcG9uZW50cyB3aWxsIGJlIGRvbmUgbG9jYWxseQorICAgICogdG8gdGhlIHNwZWNpZmljIHBhcnNpbmcgZnVuY3Rpb24sIHNpbmNlIHRoZSBtb3N0IHBhcnRpY2xlcworICAgICogbmVlZCBub3QgdG8gYmUgZml4ZWQgdXAgKGkuZS4gdGhlIHJlZmVyZW5jZSB0byBiZSByZXNvbHZlZCkuCisgICAgKiBSRU1PVkVEOiBXWFNfQUREX1BFTkRJTkcoY3R4dCwgcmV0KTsKKyAgICAqLworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFBZGRNb2RlbEdyb3VwRGVmaW5pdGlvbjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5hbWU6ICB0aGUgZ3JvdXAgbmFtZQorICoKKyAqIEFkZCBhbiBYTUwgc2NoZW1hIEdyb3VwIGRlZmluaXRpb24KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc3RydXR1cmUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFNb2RlbEdyb3VwRGVmUHRyCit4bWxTY2hlbWFBZGRNb2RlbEdyb3VwRGVmaW5pdGlvbih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkJIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkJIGNvbnN0IHhtbENoYXIgKm5zTmFtZSwKKwkJCQkgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFNjaGVtYU1vZGVsR3JvdXBEZWZQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0gKHhtbFNjaGVtYU1vZGVsR3JvdXBEZWZQdHIpCisJeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFNb2RlbEdyb3VwRGVmKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyBncm91cCIsIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hTW9kZWxHcm91cERlZikpOworICAgIHJldC0+bmFtZSA9IG5hbWU7CisgICAgcmV0LT50eXBlID0gWE1MX1NDSEVNQV9UWVBFX0dST1VQOworICAgIHJldC0+bm9kZSA9IG5vZGU7CisgICAgcmV0LT50YXJnZXROYW1lc3BhY2UgPSBuc05hbWU7CisKKyAgICBpZiAoY3R4dC0+aXNSZWRlZmluZSkgeworCWN0eHQtPnJlZGVmID0geG1sU2NoZW1hQWRkUmVkZWYoY3R4dCwgY3R4dC0+cmVkZWZpbmVkLAorCSAgICByZXQsIG5hbWUsIG5zTmFtZSk7CisJaWYgKGN0eHQtPnJlZGVmID09IE5VTEwpIHsKKwkgICAgeG1sRnJlZShyZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCWN0eHQtPnJlZGVmQ291bnRlciA9IDA7CisgICAgfQorICAgIFdYU19BRERfR0xPQkFMKGN0eHQsIHJldCk7CisgICAgV1hTX0FERF9QRU5ESU5HKGN0eHQsIHJldCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYU5ld1dpbGRjYXJkTnM6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIENyZWF0ZXMgYSBuZXcgd2lsZGNhcmQgbmFtZXNwYWNlIGNvbnN0cmFpbnQuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHN0cnV0dXJlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sU2NoZW1hV2lsZGNhcmROc1B0cgoreG1sU2NoZW1hTmV3V2lsZGNhcmROc0NvbnN0cmFpbnQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIHhtbFNjaGVtYVdpbGRjYXJkTnNQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYVdpbGRjYXJkTnNQdHIpCisJeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFXaWxkY2FyZE5zKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUEVyck1lbW9yeShjdHh0LCAiY3JlYXRpbmcgd2lsZGNhcmQgbmFtZXNwYWNlIGNvbnN0cmFpbnQiLCBOVUxMKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICByZXQtPnZhbHVlID0gTlVMTDsKKyAgICByZXQtPm5leHQgPSBOVUxMOworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIHhtbFNjaGVtYUlEQ1B0cgoreG1sU2NoZW1hQWRkSURDKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKm5hbWUsIGNvbnN0IHhtbENoYXIgKm5zTmFtZSwKKwkJICBpbnQgY2F0ZWdvcnksIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxTY2hlbWFJRENQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0gKHhtbFNjaGVtYUlEQ1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFJREMpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sU2NoZW1hUEVyck1lbW9yeShjdHh0LAorCSAgICAiYWxsb2NhdGluZyBhbiBpZGVudGl0eS1jb25zdHJhaW50IGRlZmluaXRpb24iLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYUlEQykpOworICAgIC8qIFRoZSB0YXJnZXQgbmFtZXNwYWNlIG9mIHRoZSBwYXJlbnQgZWxlbWVudCBkZWNsYXJhdGlvbi4gKi8KKyAgICByZXQtPnRhcmdldE5hbWVzcGFjZSA9IG5zTmFtZTsKKyAgICByZXQtPm5hbWUgPSBuYW1lOworICAgIHJldC0+dHlwZSA9IGNhdGVnb3J5OworICAgIHJldC0+bm9kZSA9IG5vZGU7CisKKyAgICBXWFNfQUREX0dMT0JBTChjdHh0LCByZXQpOworICAgIC8qCisgICAgKiBPbmx5IGtleXJlZnMgbmVlZCB0byBiZSBmaXh1cCB1cC4KKyAgICAqLworICAgIGlmIChjYXRlZ29yeSA9PSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRikKKwlXWFNfQUREX1BFTkRJTkcoY3R4dCwgcmV0KTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQWRkV2lsZGNhcmQ6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogYSBzY2hlbWEKKyAqCisgKiBBZGRzIGEgd2lsZGNhcmQuCisgKiBJdCBjb3JyZXNwb25kcyB0byBhIHhzZDphbnlBdHRyaWJ1dGUgYW5kIHhzZDphbnkuCisgKgorICogUmV0dXJucyB0aGUgbmV3IHN0cnV0dXJlIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sU2NoZW1hV2lsZGNhcmRQdHIKK3htbFNjaGVtYUFkZFdpbGRjYXJkKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJICAgICB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlLCB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hV2lsZGNhcmRQdHIgcmV0ID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgcmV0ID0gKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYVdpbGRjYXJkKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwgImFkZGluZyB3aWxkY2FyZCIsIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hV2lsZGNhcmQpKTsKKyAgICByZXQtPnR5cGUgPSB0eXBlOworICAgIHJldC0+bm9kZSA9IG5vZGU7CisgICAgV1hTX0FERF9MT0NBTChjdHh0LCByZXQpOworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYVN1YnN0R3JvdXBGcmVlKHhtbFNjaGVtYVN1YnN0R3JvdXBQdHIgZ3JvdXApCit7CisgICAgaWYgKGdyb3VwID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmIChncm91cC0+bWVtYmVycyAhPSBOVUxMKQorCXhtbFNjaGVtYUl0ZW1MaXN0RnJlZShncm91cC0+bWVtYmVycyk7CisgICAgeG1sRnJlZShncm91cCk7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFTdWJzdEdyb3VwUHRyCit4bWxTY2hlbWFTdWJzdEdyb3VwQWRkKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCSAgICAgICB4bWxTY2hlbWFFbGVtZW50UHRyIGhlYWQpCit7CisgICAgeG1sU2NoZW1hU3Vic3RHcm91cFB0ciByZXQ7CisKKyAgICAvKiBJbml0IHN1YnN0IGdyb3VwIGhhc2guICovCisgICAgaWYgKFdYU19TVUJTVF9HUk9VUFMocGN0eHQpID09IE5VTEwpIHsKKwlXWFNfU1VCU1RfR1JPVVBTKHBjdHh0KSA9IHhtbEhhc2hDcmVhdGVEaWN0KDEwLCBwY3R4dC0+ZGljdCk7CisJaWYgKFdYU19TVUJTVF9HUk9VUFMocGN0eHQpID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgLyogQ3JlYXRlIGEgbmV3IHN1YnN0aXR1dGlvbiBncm91cC4gKi8KKyAgICByZXQgPSAoeG1sU2NoZW1hU3Vic3RHcm91cFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFTdWJzdEdyb3VwKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLAorCSAgICAiYWxsb2NhdGluZyBhIHN1YnN0aXR1dGlvbiBncm91cCBjb250YWluZXIiLCBOVUxMKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFTdWJzdEdyb3VwKSk7CisgICAgcmV0LT5oZWFkID0gaGVhZDsKKyAgICAvKiBDcmVhdGUgbGlzdCBvZiBtZW1iZXJzLiAqLworICAgIHJldC0+bWVtYmVycyA9IHhtbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKCk7CisgICAgaWYgKHJldC0+bWVtYmVycyA9PSBOVUxMKSB7CisJeG1sU2NoZW1hU3Vic3RHcm91cEZyZWUocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIC8qIEFkZCBzdWJzdCBncm91cCB0byBoYXNoLiAqLworICAgIGlmICh4bWxIYXNoQWRkRW50cnkyKFdYU19TVUJTVF9HUk9VUFMocGN0eHQpLAorCWhlYWQtPm5hbWUsIGhlYWQtPnRhcmdldE5hbWVzcGFjZSwgcmV0KSAhPSAwKSB7CisJUEVSUk9SX0lOVCgieG1sU2NoZW1hU3Vic3RHcm91cEFkZCIsCisJICAgICJmYWlsZWQgdG8gYWRkIGEgbmV3IHN1YnN0aXR1dGlvbiBjb250YWluZXIiKTsKKwl4bWxTY2hlbWFTdWJzdEdyb3VwRnJlZShyZXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFTdWJzdEdyb3VwUHRyCit4bWxTY2hlbWFTdWJzdEdyb3VwR2V0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCSAgICAgICB4bWxTY2hlbWFFbGVtZW50UHRyIGhlYWQpCit7CisgICAgaWYgKFdYU19TVUJTVF9HUk9VUFMocGN0eHQpID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldHVybih4bWxIYXNoTG9va3VwMihXWFNfU1VCU1RfR1JPVVBTKHBjdHh0KSwKKwloZWFkLT5uYW1lLCBoZWFkLT50YXJnZXROYW1lc3BhY2UpKTsKKworfQorCisvKioKKyAqIHhtbFNjaGVtYUFkZEVsZW1lbnRTdWJzdGl0dXRpb25NZW1iZXI6CisgKiBAcGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGhlYWQ6ICB0aGUgaGVhZCBvZiB0aGUgc3Vic3RpdHV0aW9uIGdyb3VwCisgKiBAbWVtYmVyOiB0aGUgbmV3IG1lbWJlciBvZiB0aGUgc3Vic3RpdHV0aW9uIGdyb3VwCisgKgorICogQWxsb2NhdGUgYSBuZXcgYW5ub3RhdGlvbiBzdHJ1Y3R1cmUuCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgYWxsb2NhdGVkIHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb3IgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQWRkRWxlbWVudFN1YnN0aXR1dGlvbk1lbWJlcih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCSAgICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgaGVhZCwKKwkJCQkgICAgICB4bWxTY2hlbWFFbGVtZW50UHRyIG1lbWJlcikKK3sKKyAgICB4bWxTY2hlbWFTdWJzdEdyb3VwUHRyIHN1YnN0R3JvdXAgPSBOVUxMOworCisgICAgaWYgKChwY3R4dCA9PSBOVUxMKSB8fCAoaGVhZCA9PSBOVUxMKSB8fCAobWVtYmVyID09IE5VTEwpKQorCXJldHVybiAoLTEpOworCisgICAgc3Vic3RHcm91cCA9IHhtbFNjaGVtYVN1YnN0R3JvdXBHZXQocGN0eHQsIGhlYWQpOworICAgIGlmIChzdWJzdEdyb3VwID09IE5VTEwpCisJc3Vic3RHcm91cCA9IHhtbFNjaGVtYVN1YnN0R3JvdXBBZGQocGN0eHQsIGhlYWQpOworICAgIGlmIChzdWJzdEdyb3VwID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoeG1sU2NoZW1hSXRlbUxpc3RBZGQoc3Vic3RHcm91cC0+bWVtYmVycywgbWVtYmVyKSA9PSAtMSkKKwlyZXR1cm4oLTEpOworICAgIHJldHVybigwKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICoJCVV0aWxpdGllcyBmb3IgcGFyc2luZwkJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxTY2hlbWFQVmFsQXR0ck5vZGVRTmFtZVZhbHVlOgorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHNjaGVtYTogdGhlIHNjaGVtYSBjb250ZXh0CisgKiBAb3duZXJEZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgcGFyZW50IGVsZW1lbnQKKyAqIEBvd25lckl0ZW06IHRoZSBwYXJlbnQgYXMgYSBzY2hlbWEgb2JqZWN0CisgKiBAdmFsdWU6ICB0aGUgUU5hbWUgdmFsdWUKKyAqIEBsb2NhbDogdGhlIHJlc3VsdGluZyBsb2NhbCBwYXJ0IGlmIGZvdW5kLCB0aGUgYXR0cmlidXRlIHZhbHVlIG90aGVyd2lzZQorICogQHVyaTogIHRoZSByZXN1bHRpbmcgbmFtZXNwYWNlIFVSSSBpZiBmb3VuZAorICoKKyAqIEV4dHJhY3RzIHRoZSBsb2NhbCBuYW1lIGFuZCB0aGUgVVJJIG9mIGEgUU5hbWUgdmFsdWUgYW5kIHZhbGlkYXRlcyBpdC4KKyAqIFRoaXMgb25lIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgb24gYXR0cmlidXRlIHZhbHVlcyB0aGF0CisgKiBzaG91bGQgcmVzb2x2ZSB0byBzY2hlbWEgY29tcG9uZW50cy4KKyAqCisgKiBSZXR1cm5zIDAsIGluIGNhc2UgdGhlIFFOYW1lIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqIGlmIG5vdCB2YWxpZCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQVmFsQXR0ck5vZGVRTmFtZVZhbHVlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkgICAgICAgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJCQkgICAgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIG93bmVySXRlbSwKKwkJCQkgICAgICAgeG1sQXR0clB0ciBhdHRyLAorCQkJCSAgICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkgICAgICAgY29uc3QgeG1sQ2hhciAqKnVyaSwKKwkJCQkgICAgICAgY29uc3QgeG1sQ2hhciAqKmxvY2FsKQoreworICAgIGNvbnN0IHhtbENoYXIgKnByZWY7CisgICAgeG1sTnNQdHIgbnM7CisgICAgaW50IGxlbiwgcmV0OworCisgICAgKnVyaSA9IE5VTEw7CisgICAgKmxvY2FsID0gTlVMTDsKKyAgICByZXQgPSB4bWxWYWxpZGF0ZVFOYW1lKHZhbHVlLCAxKTsKKyAgICBpZiAocmV0ID4gMCkgeworCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUsCisJICAgIG93bmVySXRlbSwgKHhtbE5vZGVQdHIpIGF0dHIsCisJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX1FOQU1FKSwKKwkgICAgTlVMTCwgdmFsdWUsIE5VTEwsIE5VTEwsIE5VTEwpOworCSpsb2NhbCA9IHZhbHVlOworCXJldHVybiAoY3R4dC0+ZXJyKTsKKyAgICB9IGVsc2UgaWYgKHJldCA8IDApCisJcmV0dXJuICgtMSk7CisKKyAgICBpZiAoIXN0cmNocigoY2hhciAqKSB2YWx1ZSwgJzonKSkgeworCW5zID0geG1sU2VhcmNoTnMoYXR0ci0+ZG9jLCBhdHRyLT5wYXJlbnQsIE5VTEwpOworCWlmIChucykKKwkgICAgKnVyaSA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgbnMtPmhyZWYsIC0xKTsKKwllbHNlIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlMpIHsKKwkgICAgLyogVE9ETzogbW92ZSBYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUyB0byB0aGUKKwkgICAgKiBwYXJzZXIgY29udGV4dC4gKi8KKwkgICAgLyoKKwkgICAgKiBUaGlzIG9uZSB0YWtlcyBjYXJlIG9mIGluY2x1ZGVkIHNjaGVtYXMgd2l0aCBubworCSAgICAqIHRhcmdldCBuYW1lc3BhY2UuCisJICAgICovCisJICAgICp1cmkgPSBjdHh0LT50YXJnZXROYW1lc3BhY2U7CisJfQorCSpsb2NhbCA9IHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgdmFsdWUsIC0xKTsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICAvKgorICAgICogQXQgdGhpcyBwb2ludCB4bWxTcGxpdFFOYW1lMyBoYXMgdG8gcmV0dXJuIGEgbG9jYWwgbmFtZS4KKyAgICAqLworICAgICpsb2NhbCA9IHhtbFNwbGl0UU5hbWUzKHZhbHVlLCAmbGVuKTsKKyAgICAqbG9jYWwgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsICpsb2NhbCwgLTEpOworICAgIHByZWYgPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIHZhbHVlLCBsZW4pOworICAgIG5zID0geG1sU2VhcmNoTnMoYXR0ci0+ZG9jLCBhdHRyLT5wYXJlbnQsIHByZWYpOworICAgIGlmIChucyA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkgICAgb3duZXJJdGVtLCAoeG1sTm9kZVB0cikgYXR0ciwKKwkgICAgeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfUU5BTUUpLCBOVUxMLCB2YWx1ZSwKKwkgICAgIlRoZSB2YWx1ZSAnJXMnIG9mIHNpbXBsZSB0eXBlICd4czpRTmFtZScgaGFzIG5vICIKKwkgICAgImNvcnJlc3BvbmRpbmcgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGluIHNjb3BlIiwgdmFsdWUsIE5VTEwpOworCXJldHVybiAoY3R4dC0+ZXJyKTsKKyAgICB9IGVsc2UgeworICAgICAgICAqdXJpID0geG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCBucy0+aHJlZiwgLTEpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBWYWxBdHRyTm9kZVFOYW1lOgorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHNjaGVtYTogdGhlIHNjaGVtYSBjb250ZXh0CisgKiBAb3duZXJEZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgb3duZXIgZWxlbWVudAorICogQG93bmVySXRlbTogdGhlIG93bmVyIGFzIGEgc2NoZW1hIG9iamVjdAorICogQGF0dHI6ICB0aGUgYXR0cmlidXRlIG5vZGUKKyAqIEBsb2NhbDogdGhlIHJlc3VsdGluZyBsb2NhbCBwYXJ0IGlmIGZvdW5kLCB0aGUgYXR0cmlidXRlIHZhbHVlIG90aGVyd2lzZQorICogQHVyaTogIHRoZSByZXN1bHRpbmcgbmFtZXNwYWNlIFVSSSBpZiBmb3VuZAorICoKKyAqIEV4dHJhY3RzIGFuZCB2YWxpZGF0ZXMgdGhlIFFOYW1lIG9mIGFuIGF0dHJpYnV0ZSB2YWx1ZS4KKyAqIFRoaXMgb25lIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgb24gYXR0cmlidXRlIHZhbHVlcyB0aGF0CisgKiBzaG91bGQgcmVzb2x2ZSB0byBzY2hlbWEgY29tcG9uZW50cy4KKyAqCisgKiBSZXR1cm5zIDAsIGluIGNhc2UgdGhlIFFOYW1lIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqIGlmIG5vdCB2YWxpZCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQVmFsQXR0ck5vZGVRTmFtZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJICAgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkJICAgICAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBvd25lckl0ZW0sCisJCQkJICAgICAgIHhtbEF0dHJQdHIgYXR0ciwKKwkJCQkgICAgICAgY29uc3QgeG1sQ2hhciAqKnVyaSwKKwkJCQkgICAgICAgY29uc3QgeG1sQ2hhciAqKmxvY2FsKQoreworICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlOworCisgICAgdmFsdWUgPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7CisgICAgcmV0dXJuICh4bWxTY2hlbWFQVmFsQXR0ck5vZGVRTmFtZVZhbHVlKGN0eHQsIHNjaGVtYSwKKwlvd25lckl0ZW0sIGF0dHIsIHZhbHVlLCB1cmksIGxvY2FsKSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUFZhbEF0dHJRTmFtZToKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBzY2hlbWE6IHRoZSBzY2hlbWEgY29udGV4dAorICogQG93bmVyRGVzOiB0aGUgZGVzaWduYXRpb24gb2YgdGhlIHBhcmVudCBlbGVtZW50CisgKiBAb3duZXJJdGVtOiB0aGUgb3duZXIgYXMgYSBzY2hlbWEgb2JqZWN0CisgKiBAb3duZXJFbGVtOiAgdGhlIHBhcmVudCBub2RlIG9mIHRoZSBhdHRyaWJ1dGUKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZQorICogQGxvY2FsOiB0aGUgcmVzdWx0aW5nIGxvY2FsIHBhcnQgaWYgZm91bmQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgb3RoZXJ3aXNlCisgKiBAdXJpOiAgdGhlIHJlc3VsdGluZyBuYW1lc3BhY2UgVVJJIGlmIGZvdW5kCisgKgorICogRXh0cmFjdHMgYW5kIHZhbGlkYXRlcyB0aGUgUU5hbWUgb2YgYW4gYXR0cmlidXRlIHZhbHVlLgorICoKKyAqIFJldHVybnMgMCwgaW4gY2FzZSB0aGUgUU5hbWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZQorICogaWYgbm90IHZhbGlkIGFuZCAtMSBpZiBhbiBpbnRlcm5hbCBlcnJvciBvY2N1cnMuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBWYWxBdHRyUU5hbWUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCSAgIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkJICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIG93bmVySXRlbSwKKwkJCQkgICB4bWxOb2RlUHRyIG93bmVyRWxlbSwKKwkJCQkgICBjb25zdCBjaGFyICpuYW1lLAorCQkJCSAgIGNvbnN0IHhtbENoYXIgKip1cmksCisJCQkJICAgY29uc3QgeG1sQ2hhciAqKmxvY2FsKQoreworICAgIHhtbEF0dHJQdHIgYXR0cjsKKworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShvd25lckVsZW0sIG5hbWUpOworICAgIGlmIChhdHRyID09IE5VTEwpIHsKKwkqbG9jYWwgPSBOVUxMOworCSp1cmkgPSBOVUxMOworCXJldHVybiAoMCk7CisgICAgfQorICAgIHJldHVybiAoeG1sU2NoZW1hUFZhbEF0dHJOb2RlUU5hbWUoY3R4dCwgc2NoZW1hLAorCW93bmVySXRlbSwgYXR0ciwgdXJpLCBsb2NhbCkpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBWYWxBdHRySUQ6CisgKiBAY3R4dDogIGEgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAc2NoZW1hOiB0aGUgc2NoZW1hIGNvbnRleHQKKyAqIEBvd25lckRlczogdGhlIGRlc2lnbmF0aW9uIG9mIHRoZSBwYXJlbnQgZWxlbWVudAorICogQG93bmVySXRlbTogdGhlIG93bmVyIGFzIGEgc2NoZW1hIG9iamVjdAorICogQG93bmVyRWxlbTogIHRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgYXR0cmlidXRlCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBFeHRyYWN0cyBhbmQgdmFsaWRhdGVzIHRoZSBJRCBvZiBhbiBhdHRyaWJ1dGUgdmFsdWUuCisgKgorICogUmV0dXJucyAwLCBpbiBjYXNlIHRoZSBJRCBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlCisgKiBpZiBub3QgdmFsaWQgYW5kIC0xIGlmIGFuIGludGVybmFsIGVycm9yIG9jY3Vycy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUFZhbEF0dHJOb2RlSUQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxBdHRyUHRyIGF0dHIpCit7CisgICAgaW50IHJldDsKKyAgICBjb25zdCB4bWxDaGFyICp2YWx1ZTsKKworICAgIGlmIChhdHRyID09IE5VTEwpCisJcmV0dXJuKDApOworICAgIHZhbHVlID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnROb0RpY3QoKHhtbE5vZGVQdHIpIGF0dHIpOworICAgIHJldCA9IHhtbFZhbGlkYXRlTkNOYW1lKHZhbHVlLCAxKTsKKyAgICBpZiAocmV0ID09IDApIHsKKwkvKgorCSogTk9URTogdGhlIElEbmVzcyBtaWdodCBoYXZlIGFscmVhZHkgYmUgZGVjbGFyZWQgaW4gdGhlIERURAorCSovCisJaWYgKGF0dHItPmF0eXBlICE9IFhNTF9BVFRSSUJVVEVfSUQpIHsKKwkgICAgeG1sSURQdHIgcmVzOworCSAgICB4bWxDaGFyICpzdHJpcDsKKworCSAgICAvKgorCSAgICAqIFRPRE86IFVzZSB4bWxTY2hlbWFTdHJpcCBoZXJlOyBpdCdzIG5vdCBleHBvcnRlZCBhdCB0aGlzCisJICAgICogbW9tZW50LgorCSAgICAqLworCSAgICBzdHJpcCA9IHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nKHZhbHVlKTsKKwkgICAgaWYgKHN0cmlwICE9IE5VTEwpIHsKKwkJeG1sRnJlZSgoeG1sQ2hhciAqKSB2YWx1ZSk7CisJCXZhbHVlID0gc3RyaXA7CisJICAgIH0KKyAgICAJICAgIHJlcyA9IHhtbEFkZElEKE5VTEwsIGF0dHItPmRvYywgdmFsdWUsIGF0dHIpOworCSAgICBpZiAocmVzID09IE5VTEwpIHsKKwkJcmV0ID0gWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRTsKKwkJeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUsCisJCSAgICBOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwKKwkJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX0lEKSwKKwkJICAgIE5VTEwsIE5VTEwsICJEdXBsaWNhdGUgdmFsdWUgJyVzJyBvZiBzaW1wbGUgIgorCQkgICAgInR5cGUgJ3hzOklEJyIsIHZhbHVlLCBOVUxMKTsKKwkgICAgfSBlbHNlCisJCWF0dHItPmF0eXBlID0gWE1MX0FUVFJJQlVURV9JRDsKKwl9CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisJcmV0ID0gWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRTsKKwl4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCSAgICBOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwKKwkgICAgeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfSUQpLAorCSAgICBOVUxMLCBOVUxMLCAiVGhlIHZhbHVlICclcycgb2Ygc2ltcGxlIHR5cGUgJ3hzOklEJyBpcyAiCisJICAgICJub3QgYSB2YWxpZCAneHM6TkNOYW1lJyIsCisJICAgIHZhbHVlLCBOVUxMKTsKKyAgICB9CisgICAgaWYgKHZhbHVlICE9IE5VTEwpCisJeG1sRnJlZSgoeG1sQ2hhciAqKXZhbHVlKTsKKworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hUFZhbEF0dHJJRCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCSAgICB4bWxOb2RlUHRyIG93bmVyRWxlbSwKKwkJICAgIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgeG1sQXR0clB0ciBhdHRyOworCisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG93bmVyRWxlbSwgKGNvbnN0IGNoYXIgKikgbmFtZSk7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkKKwlyZXR1cm4oMCk7CisgICAgcmV0dXJuKHhtbFNjaGVtYVBWYWxBdHRyTm9kZUlEKGN0eHQsIGF0dHIpKTsKKworfQorCisvKioKKyAqIHhtbEdldE1heE9jY3VyczoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKgorICogR2V0IHRoZSBtYXhPY2N1cnMgcHJvcGVydHkKKyAqCisgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IGlmIG5vdCBmb3VuZCwgb3IgdGhlIHZhbHVlCisgKi8KK3N0YXRpYyBpbnQKK3htbEdldE1heE9jY3Vycyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSwKKwkJaW50IG1pbiwgaW50IG1heCwgaW50IGRlZiwgY29uc3QgY2hhciAqZXhwZWN0ZWQpCit7CisgICAgY29uc3QgeG1sQ2hhciAqdmFsLCAqY3VyOworICAgIGludCByZXQgPSAwOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAibWF4T2NjdXJzIik7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkKKwlyZXR1cm4gKGRlZik7CisgICAgdmFsID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnQoY3R4dCwgKHhtbE5vZGVQdHIpIGF0dHIpOworCisgICAgaWYgKHhtbFN0ckVxdWFsKHZhbCwgKGNvbnN0IHhtbENoYXIgKikgInVuYm91bmRlZCIpKSB7CisJaWYgKG1heCAhPSBVTkJPVU5ERUQpIHsKKwkgICAgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkJLyogWE1MX1NDSEVNQVBfSU5WQUxJRF9NSU5PQ0NVUlMsICovCisJCU5VTEwsICh4bWxOb2RlUHRyKSBhdHRyLCBOVUxMLCBleHBlY3RlZCwKKwkJdmFsLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwkgICAgcmV0dXJuIChkZWYpOworCX0gZWxzZQorCSAgICByZXR1cm4gKFVOQk9VTkRFRCk7ICAvKiBlbmNvZGluZyBpdCB3aXRoIC0xIG1pZ2h0IGJlIGFub3RoZXIgb3B0aW9uICovCisgICAgfQorCisgICAgY3VyID0gdmFsOworICAgIHdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkKKyAgICAgICAgY3VyKys7CisgICAgaWYgKCpjdXIgPT0gMCkgeworICAgICAgICB4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCSAgICAvKiBYTUxfU0NIRU1BUF9JTlZBTElEX01JTk9DQ1VSUywgKi8KKwkgICAgTlVMTCwgKHhtbE5vZGVQdHIpIGF0dHIsIE5VTEwsIGV4cGVjdGVkLAorCSAgICB2YWwsIE5VTEwsIE5VTEwsIE5VTEwpOworCXJldHVybiAoZGVmKTsKKyAgICB9CisgICAgd2hpbGUgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkgeworICAgICAgICByZXQgPSByZXQgKiAxMCArICgqY3VyIC0gJzAnKTsKKyAgICAgICAgY3VyKys7CisgICAgfQorICAgIHdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkKKyAgICAgICAgY3VyKys7CisgICAgLyoKKyAgICAqIFRPRE86IFJlc3RyaWN0IHRoZSBtYXhpbWFsIHZhbHVlIHRvIEludGVnZXIuCisgICAgKi8KKyAgICBpZiAoKCpjdXIgIT0gMCkgfHwgKHJldCA8IG1pbikgfHwgKChtYXggIT0gLTEpICYmIChyZXQgPiBtYXgpKSkgeworCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUsCisJICAgIC8qIFhNTF9TQ0hFTUFQX0lOVkFMSURfTUlOT0NDVVJTLCAqLworCSAgICBOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwgTlVMTCwgZXhwZWN0ZWQsCisJICAgIHZhbCwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgICAgIHJldHVybiAoZGVmKTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbEdldE1pbk9jY3VyczoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKgorICogR2V0IHRoZSBtaW5PY2N1cnMgcHJvcGVydHkKKyAqCisgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IGlmIG5vdCBmb3VuZCwgb3IgdGhlIHZhbHVlCisgKi8KK3N0YXRpYyBpbnQKK3htbEdldE1pbk9jY3Vycyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgbm9kZSwKKwkJaW50IG1pbiwgaW50IG1heCwgaW50IGRlZiwgY29uc3QgY2hhciAqZXhwZWN0ZWQpCit7CisgICAgY29uc3QgeG1sQ2hhciAqdmFsLCAqY3VyOworICAgIGludCByZXQgPSAwOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAibWluT2NjdXJzIik7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkKKwlyZXR1cm4gKGRlZik7CisgICAgdmFsID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnQoY3R4dCwgKHhtbE5vZGVQdHIpIGF0dHIpOworICAgIGN1ciA9IHZhbDsKKyAgICB3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpCisgICAgICAgIGN1cisrOworICAgIGlmICgqY3VyID09IDApIHsKKyAgICAgICAgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkgICAgLyogWE1MX1NDSEVNQVBfSU5WQUxJRF9NSU5PQ0NVUlMsICovCisJICAgIE5VTEwsICh4bWxOb2RlUHRyKSBhdHRyLCBOVUxMLCBleHBlY3RlZCwKKwkgICAgdmFsLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChkZWYpOworICAgIH0KKyAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CisgICAgICAgIHJldCA9IHJldCAqIDEwICsgKCpjdXIgLSAnMCcpOworICAgICAgICBjdXIrKzsKKyAgICB9CisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKQorICAgICAgICBjdXIrKzsKKyAgICAvKgorICAgICogVE9ETzogUmVzdHJpY3QgdGhlIG1heGltYWwgdmFsdWUgdG8gSW50ZWdlci4KKyAgICAqLworICAgIGlmICgoKmN1ciAhPSAwKSB8fCAocmV0IDwgbWluKSB8fCAoKG1heCAhPSAtMSkgJiYgKHJldCA+IG1heCkpKSB7CisJeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkgICAgLyogWE1MX1NDSEVNQVBfSU5WQUxJRF9NSU5PQ0NVUlMsICovCisJICAgIE5VTEwsICh4bWxOb2RlUHRyKSBhdHRyLCBOVUxMLCBleHBlY3RlZCwKKwkgICAgdmFsLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChkZWYpOworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUEdldEJvb2xOb2RlVmFsdWU6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQG93bmVyRGVzOiAgb3duZXIgZGVzaWduYXRpb24KKyAqIEBvd25lckl0ZW06ICB0aGUgb3duZXIgYXMgYSBzY2hlbWEgaXRlbQorICogQG5vZGU6IHRoZSBub2RlIGhvbGRpbmcgdGhlIHZhbHVlCisgKgorICogQ29udmVydHMgYSBib29sZWFuIHN0cmluZyB2YWx1ZSBpbnRvIDEgb3IgMC4KKyAqCisgKiBSZXR1cm5zIDAgb3IgMS4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUEdldEJvb2xOb2RlVmFsdWUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIG93bmVySXRlbSwKKwkJCSAgIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxDaGFyICp2YWx1ZSA9IE5VTEw7CisgICAgaW50IHJlcyA9IDA7CisKKyAgICB2YWx1ZSA9IHhtbE5vZGVHZXRDb250ZW50KG5vZGUpOworICAgIC8qCisgICAgKiAzLjIuMi4xIExleGljYWwgcmVwcmVzZW50YXRpb24KKyAgICAqIEFuIGluc3RhbmNlIG9mIGEgZGF0YXR5cGUgdGhhdCBpcyBkZWZpbmVkIGFzIO+/vWJvb2xlYW7vv70KKyAgICAqIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgbGVnYWwgbGl0ZXJhbHMge3RydWUsIGZhbHNlLCAxLCAwfS4KKyAgICAqLworICAgIGlmICh4bWxTdHJFcXVhbChCQURfQ0FTVCB2YWx1ZSwgQkFEX0NBU1QgInRydWUiKSkKKyAgICAgICAgcmVzID0gMTsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChCQURfQ0FTVCB2YWx1ZSwgQkFEX0NBU1QgImZhbHNlIikpCisgICAgICAgIHJlcyA9IDA7CisgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwoQkFEX0NBU1QgdmFsdWUsIEJBRF9DQVNUICIxIikpCisJcmVzID0gMTsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbChCQURfQ0FTVCB2YWx1ZSwgQkFEX0NBU1QgIjAiKSkKKyAgICAgICAgcmVzID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9CT09MRUFOLAorCSAgICBvd25lckl0ZW0sIG5vZGUsCisJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX0JPT0xFQU4pLAorCSAgICBOVUxMLCBCQURfQ0FTVCB2YWx1ZSwKKwkgICAgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgfQorICAgIGlmICh2YWx1ZSAhPSBOVUxMKQorCXhtbEZyZWUodmFsdWUpOworICAgIHJldHVybiAocmVzKTsKK30KKworLyoqCisgKiB4bWxHZXRCb29sZWFuUHJvcDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKiBAbmFtZTogIHRoZSBhdHRyaWJ1dGUgbmFtZQorICogQGRlZjogIHRoZSBkZWZhdWx0IHZhbHVlCisgKgorICogRXZhbHVhdGUgaWYgYSBib29sZWFuIHByb3BlcnR5IGlzIHNldAorICoKKyAqIFJldHVybnMgdGhlIGRlZmF1bHQgaWYgbm90IGZvdW5kLCAwIGlmIGZvdW5kIHRvIGJlIGZhbHNlLAorICogMSBpZiBmb3VuZCB0byBiZSB0cnVlCisgKi8KK3N0YXRpYyBpbnQKK3htbEdldEJvb2xlYW5Qcm9wKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJICB4bWxOb2RlUHRyIG5vZGUsCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBpbnQgZGVmKQoreworICAgIGNvbnN0IHhtbENoYXIgKnZhbDsKKworICAgIHZhbCA9IHhtbFNjaGVtYUdldFByb3AoY3R4dCwgbm9kZSwgbmFtZSk7CisgICAgaWYgKHZhbCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKGRlZik7CisgICAgLyoKKyAgICAqIDMuMi4yLjEgTGV4aWNhbCByZXByZXNlbnRhdGlvbgorICAgICogQW4gaW5zdGFuY2Ugb2YgYSBkYXRhdHlwZSB0aGF0IGlzIGRlZmluZWQgYXMg77+9Ym9vbGVhbu+/vQorICAgICogY2FuIGhhdmUgdGhlIGZvbGxvd2luZyBsZWdhbCBsaXRlcmFscyB7dHJ1ZSwgZmFsc2UsIDEsIDB9LgorICAgICovCisgICAgaWYgKHhtbFN0ckVxdWFsKHZhbCwgQkFEX0NBU1QgInRydWUiKSkKKyAgICAgICAgZGVmID0gMTsKKyAgICBlbHNlIGlmICh4bWxTdHJFcXVhbCh2YWwsIEJBRF9DQVNUICJmYWxzZSIpKQorICAgICAgICBkZWYgPSAwOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKHZhbCwgQkFEX0NBU1QgIjEiKSkKKwlkZWYgPSAxOworICAgIGVsc2UgaWYgKHhtbFN0ckVxdWFsKHZhbCwgQkFEX0NBU1QgIjAiKSkKKyAgICAgICAgZGVmID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfSU5WQUxJRF9CT09MRUFOLAorCSAgICBOVUxMLAorCSAgICAoeG1sTm9kZVB0cikgeG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgbmFtZSksCisJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX0JPT0xFQU4pLAorCSAgICBOVUxMLCB2YWwsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gKGRlZik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqCQlTaGVtYSBleHRyYWN0aW9uIGZyb20gYW4gSW5mb3NldAkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFQYXJzZVNpbXBsZVR5cGUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQsIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkJCQkJIGludCB0b3BMZXZlbCk7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFQYXJzZUNvbXBsZXhUeXBlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkJCQkJICBpbnQgdG9wTGV2ZWwpOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hUGFyc2VSZXN0cmljdGlvbih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwKKwkJCQkJCSAgeG1sU2NoZW1hVHlwZVR5cGUgcGFyZW50VHlwZSk7CitzdGF0aWMgeG1sU2NoZW1hQmFzaWNJdGVtUHRyCit4bWxTY2hlbWFQYXJzZUxvY2FsQXR0cmlidXRlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkgICAgIHhtbE5vZGVQdHIgbm9kZSwKKwkJCSAgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgdXNlcywKKwkJCSAgICAgaW50IHBhcmVudFR5cGUpOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hUGFyc2VMaXN0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSk7CitzdGF0aWMgeG1sU2NoZW1hV2lsZGNhcmRQdHIKK3htbFNjaGVtYVBhcnNlQW55QXR0cmlidXRlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEsIHhtbE5vZGVQdHIgbm9kZSk7CisKKy8qKgorICogeG1sU2NoZW1hUFZhbEF0dHJOb2RlVmFsdWU6CisgKgorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQG93bmVyRGVzOiB0aGUgZGVzaWduYXRpb24gb2YgdGhlIHBhcmVudCBlbGVtZW50CisgKiBAb3duZXJJdGVtOiB0aGUgc2NoZW1hIG9iamVjdCBvd25lciBpZiBleGlzdGVudAorICogQGF0dHI6ICB0aGUgc2NoZW1hIGF0dHJpYnV0ZSBub2RlIGJlaW5nIHZhbGlkYXRlZAorICogQHZhbHVlOiB0aGUgdmFsdWUKKyAqIEB0eXBlOiB0aGUgYnVpbHQtaW4gdHlwZSB0byBiZSB2YWxpZGF0ZWQgYWdhaW5zdAorICoKKyAqIFZhbGlkYXRlcyBhIHZhbHVlIGFnYWluc3QgdGhlIGdpdmVuIGJ1aWx0LWluIHR5cGUuCisgKiBUaGlzIG9uZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGludGVybmFsbHkgZm9yIHZhbGlkYXRpb24KKyAqIG9mIHNjaGVtYSBhdHRyaWJ1dGUgdmFsdWVzIGR1cmluZyBwYXJzaW5nIG9mIHRoZSBzY2hlbWEuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlCisgKiBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUFZhbEF0dHJOb2RlVmFsdWUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCSAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBvd25lckl0ZW0sCisJCQkgICB4bWxBdHRyUHRyIGF0dHIsCisJCQkgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCSAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKworICAgIGludCByZXQgPSAwOworCisgICAgLyoKKyAgICAqIE5PVEU6IFNob3VsZCB3ZSBtb3ZlIHRoaXMgdG8geG1sc2NoZW1hdHlwZXMuYz8gSG1tLCBidXQgdGhpcworICAgICogb25lIGlzIHJlYWxseSBtZWFudCB0byBiZSB1c2VkIGludGVybmFsbHksIHNvIGJldHRlciBub3QuCisgICAgKi8KKyAgICBpZiAoKHBjdHh0ID09IE5VTEwpIHx8ICh0eXBlID09IE5VTEwpIHx8IChhdHRyID09IE5VTEwpKQorCXJldHVybiAoLTEpOworICAgIGlmICh0eXBlLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykgeworCVBFUlJPUl9JTlQoInhtbFNjaGVtYVBWYWxBdHRyTm9kZVZhbHVlIiwKKwkgICAgInRoZSBnaXZlbiB0eXBlIGlzIG5vdCBhIGJ1aWx0LWluIHR5cGUiKTsKKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgc3dpdGNoICh0eXBlLT5idWlsdEluVHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQVNfTkNOQU1FOgorCWNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6CisJY2FzZSBYTUxfU0NIRU1BU19BTllVUkk6CisJY2FzZSBYTUxfU0NIRU1BU19UT0tFTjoKKwljYXNlIFhNTF9TQ0hFTUFTX0xBTkdVQUdFOgorCSAgICByZXQgPSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSh0eXBlLCB2YWx1ZSwgTlVMTCwKKwkJKHhtbE5vZGVQdHIpIGF0dHIpOworCSAgICBicmVhazsKKwlkZWZhdWx0OiB7CisJICAgIFBFUlJPUl9JTlQoInhtbFNjaGVtYVBWYWxBdHRyTm9kZVZhbHVlIiwKKwkJInZhbGlkYXRpb24gdXNpbmcgdGhlIGdpdmVuIHR5cGUgaXMgbm90IHN1cHBvcnRlZCB3aGlsZSAiCisJCSJwYXJzaW5nIGEgc2NoZW1hIik7CisJICAgIHJldHVybiAoLTEpOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIFRPRE86IFNob3VsZCB3ZSB1c2UgdGhlIFM0UyBlcnJvciBjb2RlcyBpbnN0ZWFkPworICAgICovCisgICAgaWYgKHJldCA8IDApIHsKKwlQRVJST1JfSU5UKCJ4bWxTY2hlbWFQVmFsQXR0ck5vZGVWYWx1ZSIsCisJICAgICJmYWlsZWQgdG8gdmFsaWRhdGUgYSBzY2hlbWEgYXR0cmlidXRlIHZhbHVlIik7CisJcmV0dXJuICgtMSk7CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisJaWYgKFdYU19JU19MSVNUKHR5cGUpKQorCSAgICByZXQgPSBYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzI7CisJZWxzZQorCSAgICByZXQgPSBYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzE7CisJeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIocGN0eHQsCisJICAgIHJldCwgb3duZXJJdGVtLCAoeG1sTm9kZVB0cikgYXR0ciwKKwkgICAgdHlwZSwgTlVMTCwgdmFsdWUsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUFZhbEF0dHJOb2RlOgorICoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBvd25lckRlczogdGhlIGRlc2lnbmF0aW9uIG9mIHRoZSBwYXJlbnQgZWxlbWVudAorICogQG93bmVySXRlbTogdGhlIHNjaGVtYSBvYmplY3Qgb3duZXIgaWYgZXhpc3RlbnQKKyAqIEBhdHRyOiAgdGhlIHNjaGVtYSBhdHRyaWJ1dGUgbm9kZSBiZWluZyB2YWxpZGF0ZWQKKyAqIEB0eXBlOiB0aGUgYnVpbHQtaW4gdHlwZSB0byBiZSB2YWxpZGF0ZWQgYWdhaW5zdAorICogQHZhbHVlOiB0aGUgcmVzdWx0aW5nIHZhbHVlIGlmIGFueQorICoKKyAqIEV4dHJhY3RzIGFuZCB2YWxpZGF0ZXMgYSB2YWx1ZSBhZ2FpbnN0IHRoZSBnaXZlbiBidWlsdC1pbiB0eXBlLgorICogVGhpcyBvbmUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbnRlcm5hbGx5IGZvciB2YWxpZGF0aW9uCisgKiBvZiBzY2hlbWEgYXR0cmlidXRlIHZhbHVlcyBkdXJpbmcgcGFyc2luZyBvZiB0aGUgc2NoZW1hLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZQorICogbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBWYWxBdHRyTm9kZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgb3duZXJJdGVtLAorCQkJICAgeG1sQXR0clB0ciBhdHRyLAorCQkJICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlLAorCQkJICAgY29uc3QgeG1sQ2hhciAqKnZhbHVlKQoreworICAgIGNvbnN0IHhtbENoYXIgKnZhbDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAodHlwZSA9PSBOVUxMKSB8fCAoYXR0ciA9PSBOVUxMKSkKKwlyZXR1cm4gKC0xKTsKKworICAgIHZhbCA9IHhtbFNjaGVtYUdldE5vZGVDb250ZW50KGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyKTsKKyAgICBpZiAodmFsdWUgIT0gTlVMTCkKKwkqdmFsdWUgPSB2YWw7CisKKyAgICByZXR1cm4gKHhtbFNjaGVtYVBWYWxBdHRyTm9kZVZhbHVlKGN0eHQsIG93bmVySXRlbSwgYXR0ciwKKwl2YWwsIHR5cGUpKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQVmFsQXR0cjoKKyAqCisgKiBAY3R4dDogIGEgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAbm9kZTogdGhlIGVsZW1lbnQgbm9kZSBvZiB0aGUgYXR0cmlidXRlCisgKiBAb3duZXJEZXM6IHRoZSBkZXNpZ25hdGlvbiBvZiB0aGUgcGFyZW50IGVsZW1lbnQKKyAqIEBvd25lckl0ZW06IHRoZSBzY2hlbWEgb2JqZWN0IG93bmVyIGlmIGV4aXN0ZW50CisgKiBAb3duZXJFbGVtOiB0aGUgb3duZXIgZWxlbWVudCBub2RlCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBzY2hlbWEgYXR0cmlidXRlIG5vZGUKKyAqIEB0eXBlOiB0aGUgYnVpbHQtaW4gdHlwZSB0byBiZSB2YWxpZGF0ZWQgYWdhaW5zdAorICogQHZhbHVlOiB0aGUgcmVzdWx0aW5nIHZhbHVlIGlmIGFueQorICoKKyAqIEV4dHJhY3RzIGFuZCB2YWxpZGF0ZXMgYSB2YWx1ZSBhZ2FpbnN0IHRoZSBnaXZlbiBidWlsdC1pbiB0eXBlLgorICogVGhpcyBvbmUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbnRlcm5hbGx5IGZvciB2YWxpZGF0aW9uCisgKiBvZiBzY2hlbWEgYXR0cmlidXRlIHZhbHVlcyBkdXJpbmcgcGFyc2luZyBvZiB0aGUgc2NoZW1hLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZQorICogbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBWYWxBdHRyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJICAgICAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBvd25lckl0ZW0sCisJCSAgICAgICB4bWxOb2RlUHRyIG93bmVyRWxlbSwKKwkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisJCSAgICAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCisJCSAgICAgICBjb25zdCB4bWxDaGFyICoqdmFsdWUpCit7CisgICAgeG1sQXR0clB0ciBhdHRyOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8ICh0eXBlID09IE5VTEwpKSB7CisJaWYgKHZhbHVlICE9IE5VTEwpCisJICAgICp2YWx1ZSA9IE5VTEw7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgIGlmICh0eXBlLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykgeworCWlmICh2YWx1ZSAhPSBOVUxMKQorCSAgICAqdmFsdWUgPSBOVUxMOworCXhtbFNjaGVtYVBFcnIoY3R4dCwgb3duZXJFbGVtLAorCSAgICBYTUxfU0NIRU1BUF9JTlRFUk5BTCwKKwkgICAgIkludGVybmFsIGVycm9yOiB4bWxTY2hlbWFQVmFsQXR0ciwgdGhlIGdpdmVuICIKKwkgICAgInR5cGUgJyVzJyBpcyBub3QgYSBidWlsdC1pbiB0eXBlLlxuIiwKKwkgICAgdHlwZS0+bmFtZSwgTlVMTCk7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShvd25lckVsZW0sIG5hbWUpOworICAgIGlmIChhdHRyID09IE5VTEwpIHsKKwlpZiAodmFsdWUgIT0gTlVMTCkKKwkgICAgKnZhbHVlID0gTlVMTDsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICByZXR1cm4gKHhtbFNjaGVtYVBWYWxBdHRyTm9kZShjdHh0LCBvd25lckl0ZW0sIGF0dHIsCisJdHlwZSwgdmFsdWUpKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tSZWZlcmVuY2UoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJICB4bWxTY2hlbWFQdHIgc2NoZW1hIEFUVFJJQlVURV9VTlVTRUQsCisJCSAgeG1sTm9kZVB0ciBub2RlLAorCQkgIHhtbEF0dHJQdHIgYXR0ciwKKwkJICBjb25zdCB4bWxDaGFyICpuYW1lc3BhY2VOYW1lKQoreworICAgIC8qIFRPRE86IFBvaW50ZXIgY29tcGFyaXNvbiBpbnN0ZWFkPyAqLworICAgIGlmICh4bWxTdHJFcXVhbChwY3R4dC0+dGFyZ2V0TmFtZXNwYWNlLCBuYW1lc3BhY2VOYW1lKSkKKwlyZXR1cm4gKDApOworICAgIGlmICh4bWxTdHJFcXVhbCh4bWxTY2hlbWFOcywgbmFtZXNwYWNlTmFtZSkpCisJcmV0dXJuICgwKTsKKyAgICAvKgorICAgICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZWQgbmFtZXNwYWNlIHdhcyA8aW1wb3J0PmVkLgorICAgICovCisgICAgaWYgKFdYU19CVUNLRVQocGN0eHQpLT5yZWxhdGlvbnMgIT0gTlVMTCkgeworCXhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIHJlbDsKKworCXJlbCA9IFdYU19CVUNLRVQocGN0eHQpLT5yZWxhdGlvbnM7CisJZG8geworCSAgICBpZiAoV1hTX0lTX0JVQ0tFVF9JTVBNQUlOKHJlbC0+dHlwZSkgJiYKKwkJeG1sU3RyRXF1YWwobmFtZXNwYWNlTmFtZSwgcmVsLT5pbXBvcnROYW1lc3BhY2UpKQorCQlyZXR1cm4gKDApOworCSAgICByZWwgPSByZWwtPm5leHQ7CisJfSB3aGlsZSAocmVsICE9IE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICogTm8gbWF0Y2hpbmcgPGltcG9ydD5lZCBuYW1lc3BhY2UgZm91bmQuCisgICAgKi8KKyAgICB7CisJeG1sTm9kZVB0ciBuID0gKGF0dHIgIT0gTlVMTCkgPyAoeG1sTm9kZVB0cikgYXR0ciA6IG5vZGU7CisKKwlpZiAobmFtZXNwYWNlTmFtZSA9PSBOVUxMKQorCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUsIG4sIE5VTEwsCisJCSJSZWZlcmVuY2VzIGZyb20gdGhpcyBzY2hlbWEgdG8gY29tcG9uZW50cyBpbiBubyAiCisJCSJuYW1lc3BhY2UgYXJlIG5vdCBhbGxvd2VkLCBzaW5jZSBub3QgaW5kaWNhdGVkIGJ5IGFuICIKKwkJImltcG9ydCBzdGF0ZW1lbnQiLCBOVUxMLCBOVUxMKTsKKwllbHNlCisJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCQlYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSwgbiwgTlVMTCwKKwkJIlJlZmVyZW5jZXMgZnJvbSB0aGlzIHNjaGVtYSB0byBjb21wb25lbnRzIGluIHRoZSAiCisJCSJuYW1lc3BhY2UgJyVzJyBhcmUgbm90IGFsbG93ZWQsIHNpbmNlIG5vdCBpbmRpY2F0ZWQgYnkgYW4gIgorCQkiaW1wb3J0IHN0YXRlbWVudCIsIG5hbWVzcGFjZU5hbWUsIE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gKFhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUxvY2FsQXR0cmlidXRlczoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICogQHR5cGU6ICB0aGUgaG9zdGluZyB0eXBlIHdoZXJlIHRoZSBhdHRyaWJ1dGVzIHdpbGwgYmUgYW5jaG9yZWQKKyAqCisgKiBQYXJzZXMgYXR0cmlidXRlIHVzZXMgYW5kIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbnMgYW5kCisgKiBhdHRyaWJ1dGUgZ3JvdXAgcmVmZXJlbmNlcy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUGFyc2VMb2NhbEF0dHJpYnV0ZXMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciAqY2hpbGQsIHhtbFNjaGVtYUl0ZW1MaXN0UHRyICpsaXN0LAorCQkJaW50IHBhcmVudFR5cGUsIGludCAqaGFzUmVmcykKK3sKKyAgICB2b2lkICppdGVtOworCisgICAgd2hpbGUgKChJU19TQ0hFTUEoKCpjaGlsZCksICJhdHRyaWJ1dGUiKSkgfHwKKyAgICAgICAgICAgKElTX1NDSEVNQSgoKmNoaWxkKSwgImF0dHJpYnV0ZUdyb3VwIikpKSB7CisgICAgICAgIGlmIChJU19TQ0hFTUEoKCpjaGlsZCksICJhdHRyaWJ1dGUiKSkgeworCSAgICBpdGVtID0geG1sU2NoZW1hUGFyc2VMb2NhbEF0dHJpYnV0ZShjdHh0LCBzY2hlbWEsICpjaGlsZCwKKwkJKmxpc3QsIHBhcmVudFR5cGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaXRlbSA9IHhtbFNjaGVtYVBhcnNlQXR0cmlidXRlR3JvdXBSZWYoY3R4dCwgc2NoZW1hLCAqY2hpbGQpOworCSAgICBpZiAoKGl0ZW0gIT0gTlVMTCkgJiYgKGhhc1JlZnMgIT0gTlVMTCkpCisJCSpoYXNSZWZzID0gMTsKKyAgICAgICAgfQorCWlmIChpdGVtICE9IE5VTEwpIHsKKwkgICAgaWYgKCpsaXN0ID09IE5VTEwpIHsKKwkJLyogVE9ETzogQ3VzdG9taXplIGdyb3cgZmFjdG9yLiAqLworCQkqbGlzdCA9IHhtbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKCk7CisJCWlmICgqbGlzdCA9PSBOVUxMKQorCQkgICAgcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICBpZiAoeG1sU2NoZW1hSXRlbUxpc3RBZGRTaXplKCpsaXN0LCAyLCBpdGVtKSA9PSAtMSkKKwkJcmV0dXJuKC0xKTsKKwl9CisgICAgICAgICpjaGlsZCA9ICgqY2hpbGQpLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBBdHRycmlidXRlIGRlY2xhcmF0aW9uCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBpbXByb3BlciBhbmQKKyAqICAgICAgICAgMSBpbiBjYXNlIG9mIHN1Y2Nlc3MuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFBbm5vdFB0cgoreG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBub2RlLCBpbnQgbmVlZGVkKQoreworICAgIHhtbFNjaGVtYUFubm90UHRyIHJldDsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgaW50IGJhcmtlZCA9IDA7CisKKyAgICAvKgorICAgICogSU5GTzogUzRTIGNvbXBsZXRlZC4KKyAgICAqLworICAgIC8qCisgICAgKiBpZCA9IElECisgICAgKiB7YW55IGF0dHJpYnV0ZXMgd2l0aCBub24tc2NoZW1hIG5hbWVzcGFjZSAuIC4gLn0+CisgICAgKiBDb250ZW50OiAoYXBwaW5mbyB8IGRvY3VtZW50YXRpb24pKgorICAgICovCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIGlmIChuZWVkZWQpCisJcmV0ID0geG1sU2NoZW1hTmV3QW5ub3QoY3R4dCwgbm9kZSk7CisgICAgZWxzZQorCXJldCA9IE5VTEw7CisgICAgYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisgICAgd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCWlmICgoKGF0dHItPm5zID09IE5VTEwpICYmCisJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpKSB8fAorCSAgICAoKGF0dHItPm5zICE9IE5VTEwpICYmCisJICAgIHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpKSB7CisKKwkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwl9CisJYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorICAgIHhtbFNjaGVtYVBWYWxBdHRySUQoY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisgICAgLyoKKyAgICAqIEFuZCBub3cgZm9yIHRoZSBjaGlsZHJlbi4uLgorICAgICovCisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICB3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworCWlmIChJU19TQ0hFTUEoY2hpbGQsICJhcHBpbmZvIikpIHsKKwkgICAgLyogVE9ETzogbWFrZSBhdmFpbGFibGUgdGhlIGNvbnRlbnQgb2YgImFwcGluZm8iLiAqLworCSAgICAvKgorCSAgICAqIHNvdXJjZSA9IGFueVVSSQorCSAgICAqIHthbnkgYXR0cmlidXRlcyB3aXRoIG5vbi1zY2hlbWEgbmFtZXNwYWNlIC4gLiAufT4KKwkgICAgKiBDb250ZW50OiAoe2FueX0pKgorCSAgICAqLworCSAgICBhdHRyID0gY2hpbGQtPnByb3BlcnRpZXM7CisJICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkJaWYgKCgoYXR0ci0+bnMgPT0gTlVMTCkgJiYKKwkJICAgICAoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJzb3VyY2UiKSkpIHx8CisJCSAgICAgKChhdHRyLT5ucyAhPSBOVUxMKSAmJgorCQkgICAgICB4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSkgeworCisJCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkJfQorCQlhdHRyID0gYXR0ci0+bmV4dDsKKwkgICAgfQorCSAgICB4bWxTY2hlbWFQVmFsQXR0cihjdHh0LCBOVUxMLCBjaGlsZCwgInNvdXJjZSIsCisJCXhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX0FOWVVSSSksIE5VTEwpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiZG9jdW1lbnRhdGlvbiIpKSB7CisJICAgIC8qIFRPRE86IG1ha2UgYXZhaWxhYmxlIHRoZSBjb250ZW50IG9mICJkb2N1bWVudGF0aW9uIi4gKi8KKwkgICAgLyoKKwkgICAgKiBzb3VyY2UgPSBhbnlVUkkKKwkgICAgKiB7YW55IGF0dHJpYnV0ZXMgd2l0aCBub24tc2NoZW1hIG5hbWVzcGFjZSAuIC4gLn0+CisJICAgICogQ29udGVudDogKHthbnl9KSoKKwkgICAgKi8KKwkgICAgYXR0ciA9IGNoaWxkLT5wcm9wZXJ0aWVzOworCSAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisJCWlmIChhdHRyLT5ucyA9PSBOVUxMKSB7CisJCSAgICBpZiAoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJzb3VyY2UiKSkgeworCQkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykgfHwKKwkJCSh4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibGFuZyIpICYmCisJCQkoIXhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCBYTUxfWE1MX05BTUVTUEFDRSkpKSkgeworCisJCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJCSAgICB9CisJCX0KKwkJYXR0ciA9IGF0dHItPm5leHQ7CisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBBdHRyaWJ1dGUgInhtbDpsYW5nIi4KKwkgICAgKi8KKwkgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlTnMoY2hpbGQsIChjb25zdCBjaGFyICopIFhNTF9YTUxfTkFNRVNQQUNFLCAibGFuZyIpOworCSAgICBpZiAoYXR0ciAhPSBOVUxMKQorCQl4bWxTY2hlbWFQVmFsQXR0ck5vZGUoY3R4dCwgTlVMTCwgYXR0ciwKKwkJeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfTEFOR1VBR0UpLCBOVUxMKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9IGVsc2UgeworCSAgICBpZiAoIWJhcmtlZCkKKwkJeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCQkgICAgTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsICIoYXBwaW5mbyB8IGRvY3VtZW50YXRpb24pKiIpOworCSAgICBiYXJrZWQgPSAxOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VGYWNldDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBGYWNldCBkZWNsYXJhdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIG5ldyB0eXBlIHN0cnVjdHVyZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYUZhY2V0UHRyCit4bWxTY2hlbWFQYXJzZUZhY2V0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKyAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0OworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBmYWNldCA9IHhtbFNjaGVtYU5ld0ZhY2V0KCk7CisgICAgaWYgKGZhY2V0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sU2NoZW1hUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBmYWNldCIsIG5vZGUpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBmYWNldC0+bm9kZSA9IG5vZGU7CisgICAgdmFsdWUgPSB4bWxTY2hlbWFHZXRQcm9wKGN0eHQsIG5vZGUsICJ2YWx1ZSIpOworICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnIyKGN0eHQsIG5vZGUsIGNoaWxkLCBYTUxfU0NIRU1BUF9GQUNFVF9OT19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIkZhY2V0ICVzIGhhcyBubyB2YWx1ZVxuIiwgbm9kZS0+bmFtZSwgTlVMTCk7CisgICAgICAgIHhtbFNjaGVtYUZyZWVGYWNldChmYWNldCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIGlmIChJU19TQ0hFTUEobm9kZSwgIm1pbkluY2x1c2l2ZSIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9NSU5JTkNMVVNJVkU7CisgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEobm9kZSwgIm1pbkV4Y2x1c2l2ZSIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkU7CisgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEobm9kZSwgIm1heEluY2x1c2l2ZSIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU7CisgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEobm9kZSwgIm1heEV4Y2x1c2l2ZSIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9NQVhFWENMVVNJVkU7CisgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEobm9kZSwgInRvdGFsRGlnaXRzIikpIHsKKyAgICAgICAgZmFjZXQtPnR5cGUgPSBYTUxfU0NIRU1BX0ZBQ0VUX1RPVEFMRElHSVRTOworICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKG5vZGUsICJmcmFjdGlvbkRpZ2l0cyIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUzsKKyAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShub2RlLCAicGF0dGVybiIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOOworICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKG5vZGUsICJlbnVtZXJhdGlvbiIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9FTlVNRVJBVElPTjsKKyAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShub2RlLCAid2hpdGVTcGFjZSIpKSB7CisgICAgICAgIGZhY2V0LT50eXBlID0gWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFOworICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKG5vZGUsICJsZW5ndGgiKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIOworICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKG5vZGUsICJtYXhMZW5ndGgiKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIOworICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKG5vZGUsICJtaW5MZW5ndGgiKSkgeworICAgICAgICBmYWNldC0+dHlwZSA9IFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIOworICAgIH0gZWxzZSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnIyKGN0eHQsIG5vZGUsIGNoaWxkLCBYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX1RZUEUsCisgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIGZhY2V0IHR5cGUgJXNcbiIsIG5vZGUtPm5hbWUsIE5VTEwpOworICAgICAgICB4bWxTY2hlbWFGcmVlRmFjZXQoZmFjZXQpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICB4bWxTY2hlbWFQVmFsQXR0cklEKGN0eHQsIG5vZGUsIEJBRF9DQVNUICJpZCIpOworICAgIGZhY2V0LT52YWx1ZSA9IHZhbHVlOworICAgIGlmICgoZmFjZXQtPnR5cGUgIT0gWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOKSAmJgorCShmYWNldC0+dHlwZSAhPSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OKSkgeworCWNvbnN0IHhtbENoYXIgKmZpeGVkOworCisJZml4ZWQgPSB4bWxTY2hlbWFHZXRQcm9wKGN0eHQsIG5vZGUsICJmaXhlZCIpOworCWlmIChmaXhlZCAhPSBOVUxMKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChmaXhlZCwgQkFEX0NBU1QgInRydWUiKSkKKwkJZmFjZXQtPmZpeGVkID0gMTsKKwl9CisgICAgfQorICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisgICAgICAgIGZhY2V0LT5hbm5vdCA9IHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSk7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorICAgIGlmIChjaGlsZCAhPSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnIyKGN0eHQsIG5vZGUsIGNoaWxkLCBYTUxfU0NIRU1BUF9VTktOT1dOX0ZBQ0VUX0NISUxELAorICAgICAgICAgICAgICAgICAgICAgICAiRmFjZXQgJXMgaGFzIHVuZXhwZWN0ZWQgY2hpbGQgY29udGVudFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+bmFtZSwgTlVMTCk7CisgICAgfQorICAgIHJldHVybiAoZmFjZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBhcnNlV2lsZGNhcmROczoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEB3aWxkYzogIHRoZSB3aWxkY2FyZCwgYWxyZWFkeSBjcmVhdGVkCisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKgorICogUGFyc2VzIHRoZSBhdHRyaWJ1dGUgInByb2Nlc3NDb250ZW50cyIgYW5kICJuYW1lc3BhY2UiCisgKiBvZiBhIHhzZDphbnlBdHRyaWJ1dGUgYW5kIHhzZDphbnkuCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyAwIGlmIGV2ZXJ5dGhpbmcgZ29lcyBmaW5lLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqIGlmIHNvbWV0aGluZyBpcyBub3QgdmFsaWQgYW5kIC0xIGlmIGFuIGludGVybmFsIGVycm9yIG9jY3Vycy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUGFyc2VXaWxkY2FyZE5zKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCSB4bWxTY2hlbWFQdHIgc2NoZW1hIEFUVFJJQlVURV9VTlVTRUQsCisJCQkgeG1sU2NoZW1hV2lsZGNhcmRQdHIgd2lsZGMsCisJCQkgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGNvbnN0IHhtbENoYXIgKnBjLCAqbnMsICpkaWN0bnNJdGVtOworICAgIGludCByZXQgPSAwOworICAgIHhtbENoYXIgKm5zSXRlbTsKKyAgICB4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIHRtcCwgbGFzdE5zID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisKKyAgICBwYyA9IHhtbFNjaGVtYUdldFByb3AoY3R4dCwgbm9kZSwgInByb2Nlc3NDb250ZW50cyIpOworICAgIGlmICgocGMgPT0gTlVMTCkKKyAgICAgICAgfHwgKHhtbFN0ckVxdWFsKHBjLCAoY29uc3QgeG1sQ2hhciAqKSAic3RyaWN0IikpKSB7CisgICAgICAgIHdpbGRjLT5wcm9jZXNzQ29udGVudHMgPSBYTUxfU0NIRU1BU19BTllfU1RSSUNUOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwocGMsIChjb25zdCB4bWxDaGFyICopICJza2lwIikpIHsKKyAgICAgICAgd2lsZGMtPnByb2Nlc3NDb250ZW50cyA9IFhNTF9TQ0hFTUFTX0FOWV9TS0lQOworICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwocGMsIChjb25zdCB4bWxDaGFyICopICJsYXgiKSkgeworICAgICAgICB3aWxkYy0+cHJvY2Vzc0NvbnRlbnRzID0gWE1MX1NDSEVNQVNfQU5ZX0xBWDsKKyAgICB9IGVsc2UgeworICAgICAgICB4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCSAgICBOVUxMLCBub2RlLAorCSAgICBOVUxMLCAiKHN0cmljdCB8IHNraXAgfCBsYXgpIiwgcGMsCisJICAgIE5VTEwsIE5VTEwsIE5VTEwpOworICAgICAgICB3aWxkYy0+cHJvY2Vzc0NvbnRlbnRzID0gWE1MX1NDSEVNQVNfQU5ZX1NUUklDVDsKKwlyZXQgPSBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFOworICAgIH0KKyAgICAvKgorICAgICAqIEJ1aWxkIHRoZSBuYW1lc3BhY2UgY29uc3RyYWludHMuCisgICAgICovCisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJuYW1lc3BhY2UiKTsKKyAgICBucyA9IHhtbFNjaGVtYUdldE5vZGVDb250ZW50KGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyKTsKKyAgICBpZiAoKGF0dHIgPT0gTlVMTCkgfHwgKHhtbFN0ckVxdWFsKG5zLCBCQURfQ0FTVCAiIyNhbnkiKSkpCisJd2lsZGMtPmFueSA9IDE7CisgICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwobnMsIEJBRF9DQVNUICIjI290aGVyIikpIHsKKwl3aWxkYy0+bmVnTnNTZXQgPSB4bWxTY2hlbWFOZXdXaWxkY2FyZE5zQ29uc3RyYWludChjdHh0KTsKKwlpZiAod2lsZGMtPm5lZ05zU2V0ID09IE5VTEwpIHsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCXdpbGRjLT5uZWdOc1NldC0+dmFsdWUgPSBjdHh0LT50YXJnZXROYW1lc3BhY2U7CisgICAgfSBlbHNlIHsKKwljb25zdCB4bWxDaGFyICplbmQsICpjdXI7CisKKwljdXIgPSBuczsKKwlkbyB7CisJICAgIHdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkKKwkJY3VyKys7CisJICAgIGVuZCA9IGN1cjsKKwkgICAgd2hpbGUgKCgqZW5kICE9IDApICYmICghKElTX0JMQU5LX0NIKCplbmQpKSkpCisJCWVuZCsrOworCSAgICBpZiAoZW5kID09IGN1cikKKwkJYnJlYWs7CisJICAgIG5zSXRlbSA9IHhtbFN0cm5kdXAoY3VyLCBlbmQgLSBjdXIpOworCSAgICBpZiAoKHhtbFN0ckVxdWFsKG5zSXRlbSwgQkFEX0NBU1QgIiMjb3RoZXIiKSkgfHwKKwkJICAgICh4bWxTdHJFcXVhbChuc0l0ZW0sIEJBRF9DQVNUICIjI2FueSIpKSkgeworCQl4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVIsCisJCSAgICBOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwKKwkJICAgIE5VTEwsCisJCSAgICAiKCgjI2FueSB8ICMjb3RoZXIpIHwgTGlzdCBvZiAoeHM6YW55VVJJIHwgIgorCQkgICAgIigjI3RhcmdldE5hbWVzcGFjZSB8ICMjbG9jYWwpKSkiLAorCQkgICAgbnNJdGVtLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJcmV0ID0gWE1MX1NDSEVNQVBfV0lMRENBUkRfSU5WQUxJRF9OU19NRU1CRVI7CisJICAgIH0gZWxzZSB7CisJCWlmICh4bWxTdHJFcXVhbChuc0l0ZW0sIEJBRF9DQVNUICIjI3RhcmdldE5hbWVzcGFjZSIpKSB7CisJCSAgICBkaWN0bnNJdGVtID0gY3R4dC0+dGFyZ2V0TmFtZXNwYWNlOworCQl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5zSXRlbSwgQkFEX0NBU1QgIiMjbG9jYWwiKSkgeworCQkgICAgZGljdG5zSXRlbSA9IE5VTEw7CisJCX0gZWxzZSB7CisJCSAgICAvKgorCQkgICAgKiBWYWxpZGF0ZSB0aGUgaXRlbSAoYW55VVJJKS4KKwkJICAgICovCisJCSAgICB4bWxTY2hlbWFQVmFsQXR0ck5vZGVWYWx1ZShjdHh0LCBOVUxMLCBhdHRyLAorCQkJbnNJdGVtLCB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllVUkkpKTsKKwkJICAgIGRpY3Ruc0l0ZW0gPSB4bWxEaWN0TG9va3VwKGN0eHQtPmRpY3QsIG5zSXRlbSwgLTEpOworCQl9CisJCS8qCisJCSogQXZvaWQgZHVibGljYXRlIG5hbWVzcGFjZXMuCisJCSovCisJCXRtcCA9IHdpbGRjLT5uc1NldDsKKwkJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJCSAgICBpZiAoZGljdG5zSXRlbSA9PSB0bXAtPnZhbHVlKQorCQkJYnJlYWs7CisJCSAgICB0bXAgPSB0bXAtPm5leHQ7CisJCX0KKwkJaWYgKHRtcCA9PSBOVUxMKSB7CisJCSAgICB0bXAgPSB4bWxTY2hlbWFOZXdXaWxkY2FyZE5zQ29uc3RyYWludChjdHh0KTsKKwkJICAgIGlmICh0bXAgPT0gTlVMTCkgeworCQkJeG1sRnJlZShuc0l0ZW0pOworCQkJcmV0dXJuICgtMSk7CisJCSAgICB9CisJCSAgICB0bXAtPnZhbHVlID0gZGljdG5zSXRlbTsKKwkJICAgIHRtcC0+bmV4dCA9IE5VTEw7CisJCSAgICBpZiAod2lsZGMtPm5zU2V0ID09IE5VTEwpCisJCQl3aWxkYy0+bnNTZXQgPSB0bXA7CisJCSAgICBlbHNlIGlmIChsYXN0TnMgIT0gTlVMTCkKKwkJCWxhc3ROcy0+bmV4dCA9IHRtcDsKKwkJICAgIGxhc3ROcyA9IHRtcDsKKwkJfQorCisJICAgIH0KKwkgICAgeG1sRnJlZShuc0l0ZW0pOworCSAgICBjdXIgPSBlbmQ7CisJfSB3aGlsZSAoKmN1ciAhPSAwKTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQQ2hlY2tQYXJ0aWNsZUNvcnJlY3RfMih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJIHhtbFNjaGVtYVBhcnRpY2xlUHRyIGl0ZW0gQVRUUklCVVRFX1VOVVNFRCwKKwkJCQkgeG1sTm9kZVB0ciBub2RlLAorCQkJCSBpbnQgbWluT2NjdXJzLAorCQkJCSBpbnQgbWF4T2NjdXJzKSB7CisKKyAgICBpZiAoKG1heE9jY3VycyA9PSAwKSAmJiAoIG1pbk9jY3VycyA9PSAwKSkKKwlyZXR1cm4gKDApOworICAgIGlmIChtYXhPY2N1cnMgIT0gVU5CT1VOREVEKSB7CisJLyoKKwkqIFRPRE86IE1heWJlIHdlIHNob3VsZCBiZXR0ZXIgbm90IGNyZWF0ZSB0aGUgcGFydGljbGUsCisJKiBpZiBtaW4vbWF4IGlzIGludmFsaWQsIHNpbmNlIGl0IGNvdWxkIGNvbmZ1c2UgdGhlIGJ1aWxkIG9mIHRoZQorCSogY29udGVudCBtb2RlbC4KKwkqLworCS8qCisJKiAzLjkuNiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IFBhcnRpY2xlIENvcnJlY3QKKwkqCisJKi8KKwlpZiAobWF4T2NjdXJzIDwgMSkgeworCSAgICAvKgorCSAgICAqIDIuMiB7bWF4IG9jY3Vyc30gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4KKwkgICAgKi8KKwkgICAgeG1sU2NoZW1hUEN1c3RvbUF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMiwKKwkJTlVMTCwgTlVMTCwKKwkJeG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgIm1heE9jY3VycyIpLAorCQkiVGhlIHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEiKTsKKwkgICAgcmV0dXJuIChYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8yKTsKKwl9IGVsc2UgaWYgKG1pbk9jY3VycyA+IG1heE9jY3VycykgeworCSAgICAvKgorCSAgICAqIDIuMSB7bWluIG9jY3Vyc30gbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIHttYXggb2NjdXJzfS4KKwkgICAgKi8KKwkgICAgeG1sU2NoZW1hUEN1c3RvbUF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUF9QUk9QU19DT1JSRUNUXzJfMSwKKwkJTlVMTCwgTlVMTCwKKwkJeG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgIm1pbk9jY3VycyIpLAorCQkiVGhlIHZhbHVlIG11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiB0aGUgdmFsdWUgb2YgJ21heE9jY3VycyciKTsKKwkgICAgcmV0dXJuIChYTUxfU0NIRU1BUF9QX1BST1BTX0NPUlJFQ1RfMl8xKTsKKwl9CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VBbnk6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBQYXJzZWEgYSBYTUwgc2NoZW1hIDxhbnk+IGVsZW1lbnQuIEEgcGFydGljbGUgYW5kIHdpbGRjYXJkCisgKiB3aWxsIGJlIGNyZWF0ZWQgKGV4Y2VwdCBpZiBtaW5PY2N1cnM9PW1heE9jY3Vycz09MCwgaW4gdGhpcyBjYXNlCisgKiBub3RoaW5nIHdpbGwgYmUgY3JlYXRlZCkuCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyB0aGUgcGFydGljbGUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yIG9yIGlmIG1pbk9jY3Vycz09bWF4T2NjdXJzPT0wCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFQYXJ0aWNsZVB0cgoreG1sU2NoZW1hUGFyc2VBbnkoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIHBhcnRpY2xlOworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIHdpbGQ7CisgICAgaW50IG1pbiwgbWF4OworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICB4bWxTY2hlbWFBbm5vdFB0ciBhbm5vdCA9IE5VTEw7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibWluT2NjdXJzIikpICYmCisJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm1heE9jY3VycyIpKSAmJgorCSAgICAgICAgKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibmFtZXNwYWNlIikpICYmCisJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInByb2Nlc3NDb250ZW50cyIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKyAgICAvKgorICAgICogbWluT2NjdXJzL21heE9jY3Vycy4KKyAgICAqLworICAgIG1heCA9IHhtbEdldE1heE9jY3VycyhjdHh0LCBub2RlLCAwLCBVTkJPVU5ERUQsIDEsCisJIih4czpub25OZWdhdGl2ZUludGVnZXIgfCB1bmJvdW5kZWQpIik7CisgICAgbWluID0geG1sR2V0TWluT2NjdXJzKGN0eHQsIG5vZGUsIDAsIC0xLCAxLAorCSJ4czpub25OZWdhdGl2ZUludGVnZXIiKTsKKyAgICB4bWxTY2hlbWFQQ2hlY2tQYXJ0aWNsZUNvcnJlY3RfMihjdHh0LCBOVUxMLCBub2RlLCBtaW4sIG1heCk7CisgICAgLyoKKyAgICAqIENyZWF0ZSAmIHBhcnNlIHRoZSB3aWxkY2FyZC4KKyAgICAqLworICAgIHdpbGQgPSB4bWxTY2hlbWFBZGRXaWxkY2FyZChjdHh0LCBzY2hlbWEsIFhNTF9TQ0hFTUFfVFlQRV9BTlksIG5vZGUpOworICAgIGlmICh3aWxkID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKyAgICB4bWxTY2hlbWFQYXJzZVdpbGRjYXJkTnMoY3R4dCwgc2NoZW1hLCB3aWxkLCBub2RlKTsKKyAgICAvKgorICAgICogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisgICAgKi8KKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKyAgICAgICAgYW5ub3QgPSB4bWxTY2hlbWFQYXJzZUFubm90YXRpb24oY3R4dCwgY2hpbGQsIDEpOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwKKwkgICAgTlVMTCwgIihhbm5vdGF0aW9uPykiKTsKKyAgICB9CisgICAgLyoKKyAgICAqIE5vIGNvbXBvbmVudCBpZiBtaW5PY2N1cnM9PW1heE9jY3Vycz09MC4KKyAgICAqLworICAgIGlmICgobWluID09IDApICYmIChtYXggPT0gMCkpIHsKKwkvKiBEb24ndCBmcmVlIHRoZSB3aWxkY2FyZCwgc2luY2UgaXQncyBhbHJlYWR5IG9uIHRoZSBsaXN0LiAqLworCXJldHVybiAoTlVMTCk7CisgICAgfQorICAgIC8qCisgICAgKiBDcmVhdGUgdGhlIHBhcnRpY2xlLgorICAgICovCisgICAgcGFydGljbGUgPSB4bWxTY2hlbWFBZGRQYXJ0aWNsZShjdHh0LCBub2RlLCBtaW4sIG1heCk7CisgICAgaWYgKHBhcnRpY2xlID09IE5VTEwpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgcGFydGljbGUtPmFubm90ID0gYW5ub3Q7CisgICAgcGFydGljbGUtPmNoaWxkcmVuID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyKSB3aWxkOworCisgICAgcmV0dXJuIChwYXJ0aWNsZSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VOb3RhdGlvbjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBOb3RhdGlvbiBkZWNsYXJhdGlvbgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJ1Y3R1cmUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFOb3RhdGlvblB0cgoreG1sU2NoZW1hUGFyc2VOb3RhdGlvbih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbFNjaGVtYU5vdGF0aW9uUHRyIHJldDsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIG5hbWUgPSB4bWxTY2hlbWFHZXRQcm9wKGN0eHQsIG5vZGUsICJuYW1lIik7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFQRXJyMihjdHh0LCBub2RlLCBjaGlsZCwgWE1MX1NDSEVNQVBfTk9UQVRJT05fTk9fTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIk5vdGF0aW9uIGhhcyBubyBuYW1lXG4iLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgcmV0ID0geG1sU2NoZW1hQWRkTm90YXRpb24oY3R4dCwgc2NoZW1hLCBuYW1lLAorCWN0eHQtPnRhcmdldE5hbWVzcGFjZSwgbm9kZSk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIHhtbFNjaGVtYVBWYWxBdHRySUQoY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisKKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKyAgICAgICAgcmV0LT5hbm5vdCA9IHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSk7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorICAgIGlmIChjaGlsZCAhPSBOVUxMKSB7CisJeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJICAgIE5VTEwsIG5vZGUsIGNoaWxkLAorCSAgICBOVUxMLCAiKGFubm90YXRpb24/KSIpOworICAgIH0KKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUFueUF0dHJpYnV0ZToKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBBbnlBdHRycmlidXRlIGRlY2xhcmF0aW9uCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyBhIHdpbGRjYXJkIG9yIE5VTEwuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFXaWxkY2FyZFB0cgoreG1sU2NoZW1hUGFyc2VBbnlBdHRyaWJ1dGUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hUHRyIHNjaGVtYSwgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIHJldDsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHJldCA9IHhtbFNjaGVtYUFkZFdpbGRjYXJkKGN0eHQsIHNjaGVtYSwgWE1MX1NDSEVNQV9UWVBFX0FOWV9BVFRSSUJVVEUsCisJbm9kZSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIC8qCisgICAgKiBDaGVjayBmb3IgaWxsZWdhbCBhdHRyaWJ1dGVzLgorICAgICovCisgICAgYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisgICAgd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCWlmIChhdHRyLT5ucyA9PSBOVUxMKSB7CisJICAgIGlmICgoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJpZCIpKSAmJgorCSAgICAgICAgKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibmFtZXNwYWNlIikpICYmCisJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInByb2Nlc3NDb250ZW50cyIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKyAgICAvKgorICAgICogUGFyc2UgdGhlIG5hbWVzcGFjZSBsaXN0LgorICAgICovCisgICAgaWYgKHhtbFNjaGVtYVBhcnNlV2lsZGNhcmROcyhjdHh0LCBzY2hlbWEsIHJldCwgbm9kZSkgIT0gMCkKKwlyZXR1cm4gKE5VTEwpOworICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworICAgICAgICByZXQtPmFubm90ID0geG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKGN0eHQsIGNoaWxkLCAxKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkgICAgTlVMTCwgbm9kZSwgY2hpbGQsCisJICAgIE5VTEwsICIoYW5ub3RhdGlvbj8pIik7CisgICAgfQorCisgICAgcmV0dXJuIChyZXQpOworfQorCisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VBdHRyaWJ1dGU6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBwYXJzZSBhIFhNTCBzY2hlbWEgQXR0cnJpYnV0ZSBkZWNsYXJhdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbi4KKyAqLworc3RhdGljIHhtbFNjaGVtYUJhc2ljSXRlbVB0cgoreG1sU2NoZW1hUGFyc2VMb2NhbEF0dHJpYnV0ZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQkJICAgICB4bWxOb2RlUHRyIG5vZGUsCisJCQkgICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIHVzZXMsCisJCQkgICAgIGludCBwYXJlbnRUeXBlKQoreworICAgIGNvbnN0IHhtbENoYXIgKmF0dHJWYWx1ZSwgKm5hbWUgPSBOVUxMLCAqbnMgPSBOVUxMOworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciB1c2UgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICBjb25zdCB4bWxDaGFyICp0bXBOcyA9IE5VTEwsICp0bXBOYW1lID0gTlVMTCwgKmRlZlZhbHVlID0gTlVMTDsKKyAgICBpbnQgaXNSZWYgPSAwLCBvY2N1cnMgPSBYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTDsKKyAgICBpbnQJbmJlcnJvcnMsIGhhc0Zvcm0gPSAwLCBkZWZWYWx1ZVR5cGUgPSAwOworCisjZGVmaW5lIFdYU19BVFRSX0RFRl9WQUxfREVGQVVMVCAxCisjZGVmaW5lIFdYU19BVFRSX0RFRl9WQUxfRklYRUQgMgorCisgICAgLyoKKyAgICAgKiAzLjIuMyBDb25zdHJhaW50cyBvbiBYTUwgUmVwcmVzZW50YXRpb25zIG9mIEF0dHJpYnV0ZSBEZWNsYXJhdGlvbnMKKyAgICAgKi8KKworICAgIGlmICgocGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBhdHRyID0geG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgInJlZiIpOworICAgIGlmIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoeG1sU2NoZW1hUFZhbEF0dHJOb2RlUU5hbWUocGN0eHQsIHNjaGVtYSwKKwkgICAgTlVMTCwgYXR0ciwgJnRtcE5zLCAmdG1wTmFtZSkgIT0gMCkgeworCSAgICByZXR1cm4gKE5VTEwpOworCX0KKwlpZiAoeG1sU2NoZW1hQ2hlY2tSZWZlcmVuY2UocGN0eHQsIHNjaGVtYSwgbm9kZSwgYXR0ciwgdG1wTnMpICE9IDApCisJICAgIHJldHVybihOVUxMKTsKKwlpc1JlZiA9IDE7CisgICAgfQorICAgIG5iZXJyb3JzID0gcGN0eHQtPm5iZXJyb3JzOworICAgIC8qCisgICAgKiBDaGVjayBmb3IgaWxsZWdhbCBhdHRyaWJ1dGVzLgorICAgICovCisgICAgYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisgICAgd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCWlmIChhdHRyLT5ucyA9PSBOVUxMKSB7CisJICAgIGlmIChpc1JlZikgeworCQlpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpIHsKKwkJICAgIHhtbFNjaGVtYVBWYWxBdHRyTm9kZUlEKHBjdHh0LCBhdHRyKTsKKwkJICAgIGdvdG8gYXR0cl9uZXh0OworCQl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJyZWYiKSkgeworCQkgICAgZ290byBhdHRyX25leHQ7CisJCX0KKwkgICAgfSBlbHNlIHsKKwkJaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJuYW1lIikpIHsKKwkJICAgIGdvdG8gYXR0cl9uZXh0OworCQl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJpZCIpKSB7CisJCSAgICB4bWxTY2hlbWFQVmFsQXR0ck5vZGVJRChwY3R4dCwgYXR0cik7CisJCSAgICBnb3RvIGF0dHJfbmV4dDsKKwkJfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAidHlwZSIpKSB7CisJCSAgICB4bWxTY2hlbWFQVmFsQXR0ck5vZGVRTmFtZShwY3R4dCwgc2NoZW1hLCBOVUxMLAorCQkJYXR0ciwgJnRtcE5zLCAmdG1wTmFtZSk7CisJCSAgICBnb3RvIGF0dHJfbmV4dDsKKwkJfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiZm9ybSIpKSB7CisJCSAgICAvKgorCQkgICAgKiBFdmFsdWF0ZSB0aGUgdGFyZ2V0IG5hbWVzcGFjZQorCQkgICAgKi8KKwkJICAgIGhhc0Zvcm0gPSAxOworCQkgICAgYXR0clZhbHVlID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnQocGN0eHQsCisJCQkoeG1sTm9kZVB0cikgYXR0cik7CisJCSAgICBpZiAoeG1sU3RyRXF1YWwoYXR0clZhbHVlLCBCQURfQ0FTVCAicXVhbGlmaWVkIikpIHsKKwkJCW5zID0gcGN0eHQtPnRhcmdldE5hbWVzcGFjZTsKKwkJICAgIH0gZWxzZSBpZiAoIXhtbFN0ckVxdWFsKGF0dHJWYWx1ZSwgQkFEX0NBU1QgInVucXVhbGlmaWVkIikpCisJCSAgICB7CisJCQl4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihwY3R4dCwKKwkJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCQkJICAgIE5VTEwsICh4bWxOb2RlUHRyKSBhdHRyLAorCQkJICAgIE5VTEwsICIocXVhbGlmaWVkIHwgdW5xdWFsaWZpZWQpIiwKKwkJCSAgICBhdHRyVmFsdWUsIE5VTEwsIE5VTEwsIE5VTEwpOworCQkgICAgfQorCQkgICAgZ290byBhdHRyX25leHQ7CisJCX0KKwkgICAgfQorCSAgICBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInVzZSIpKSB7CisKKwkJYXR0clZhbHVlID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnQocGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyKTsKKwkJLyogVE9ETzogTWF5YmUgd2UgbmVlZCB0byBub3JtYWxpemUgdGhlIHZhbHVlIGJlZm9yZWhhbmQuICovCisJCWlmICh4bWxTdHJFcXVhbChhdHRyVmFsdWUsIEJBRF9DQVNUICJvcHRpb25hbCIpKQorCQkgICAgb2NjdXJzID0gWE1MX1NDSEVNQVNfQVRUUl9VU0VfT1BUSU9OQUw7CisJCWVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHJWYWx1ZSwgQkFEX0NBU1QgInByb2hpYml0ZWQiKSkKKwkJICAgIG9jY3VycyA9IFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQ7CisJCWVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHJWYWx1ZSwgQkFEX0NBU1QgInJlcXVpcmVkIikpCisJCSAgICBvY2N1cnMgPSBYTUxfU0NIRU1BU19BVFRSX1VTRV9SRVFVSVJFRDsKKwkJZWxzZSB7CisJCSAgICB4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihwY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX0lOVkFMSURfQVRUUl9VU0UsCisJCQlOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwKKwkJCU5VTEwsICIob3B0aW9uYWwgfCBwcm9oaWJpdGVkIHwgcmVxdWlyZWQpIiwKKwkJCWF0dHJWYWx1ZSwgTlVMTCwgTlVMTCwgTlVMTCk7CisJCX0KKwkJZ290byBhdHRyX25leHQ7CisJICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImRlZmF1bHQiKSkgeworCQkvKgorCQkqIDMuMi4zIDogMQorCQkqIGRlZmF1bHQgYW5kIGZpeGVkIG11c3Qgbm90IGJvdGggYmUgcHJlc2VudC4KKwkJKi8KKwkJaWYgKGRlZlZhbHVlKSB7CisJCSAgICB4bWxTY2hlbWFQTXV0dWFsRXhjbEF0dHJFcnIocGN0eHQsCisJCQlYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzEsCisJCQlOVUxMLCBhdHRyLCAiZGVmYXVsdCIsICJmaXhlZCIpOworCQl9IGVsc2UgeworCQkgICAgZGVmVmFsdWUgPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChwY3R4dCwgKHhtbE5vZGVQdHIpIGF0dHIpOworCQkgICAgZGVmVmFsdWVUeXBlID0gV1hTX0FUVFJfREVGX1ZBTF9ERUZBVUxUOworCQl9CisJCWdvdG8gYXR0cl9uZXh0OworCSAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJmaXhlZCIpKSB7CisJCS8qCisJCSogMy4yLjMgOiAxCisJCSogZGVmYXVsdCBhbmQgZml4ZWQgbXVzdCBub3QgYm90aCBiZSBwcmVzZW50LgorCQkqLworCQlpZiAoZGVmVmFsdWUpIHsKKwkJICAgIHhtbFNjaGVtYVBNdXR1YWxFeGNsQXR0ckVycihwY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMSwKKwkJCU5VTEwsIGF0dHIsICJkZWZhdWx0IiwgImZpeGVkIik7CisJCX0gZWxzZSB7CisJCSAgICBkZWZWYWx1ZSA9IHhtbFNjaGVtYUdldE5vZGVDb250ZW50KHBjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7CisJCSAgICBkZWZWYWx1ZVR5cGUgPSBXWFNfQVRUUl9ERUZfVkFMX0ZJWEVEOworCQl9CisJCWdvdG8gYXR0cl9uZXh0OworCSAgICB9CisJfSBlbHNlIGlmICghIHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpCisJICAgIGdvdG8gYXR0cl9uZXh0OworCisJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisKK2F0dHJfbmV4dDoKKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgLyoKKyAgICAqIDMuMi4zIDogMgorICAgICogSWYgZGVmYXVsdCBhbmQgdXNlIGFyZSBib3RoIHByZXNlbnQsIHVzZSBtdXN0IGhhdmUKKyAgICAqIHRoZSBhY3R1YWwgdmFsdWUgb3B0aW9uYWwuCisgICAgKi8KKyAgICBpZiAoKGRlZlZhbHVlVHlwZSA9PSBXWFNfQVRUUl9ERUZfVkFMX0RFRkFVTFQpICYmCisJKG9jY3VycyAhPSBYTUxfU0NIRU1BU19BVFRSX1VTRV9PUFRJT05BTCkpIHsKKwl4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihwY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV8yLAorCSAgICBOVUxMLCBub2RlLCBOVUxMLAorCSAgICAiKG9wdGlvbmFsIHwgcHJvaGliaXRlZCB8IHJlcXVpcmVkKSIsIE5VTEwsCisJICAgICJUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAndXNlJyBtdXN0IGJlICdvcHRpb25hbCcgIgorCSAgICAiaWYgdGhlIGF0dHJpYnV0ZSAnZGVmYXVsdCcgaXMgcHJlc2VudCIsCisJICAgIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICogV2Ugd2FudCBjb3JyZWN0IGF0dHJpYnV0ZXMuCisgICAgKi8KKyAgICBpZiAobmJlcnJvcnMgIT0gcGN0eHQtPm5iZXJyb3JzKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoISBpc1JlZikgeworCXhtbFNjaGVtYUF0dHJpYnV0ZVB0ciBhdHRyRGVjbDsKKworCS8qIFRPRE86IG1vdmUgWE1MX1NDSEVNQVNfUVVBTElGX0FUVFIgdG8gdGhlIHBhcnNlci4gKi8KKwlpZiAoKCEgaGFzRm9ybSkgJiYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19RVUFMSUZfQVRUUikpCisJICAgIG5zID0gcGN0eHQtPnRhcmdldE5hbWVzcGFjZTsKKwkvKgorCSogMy4yLjYgU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OiB4c2k6IE5vdCBBbGxvd2VkCisJKiBUT0RPOiBNb3ZlIHRoaXMgdG8gdGhlIGNvbXBvbmVudCBsYXllci4KKwkqLworCWlmICh4bWxTdHJFcXVhbChucywgeG1sU2NoZW1hSW5zdGFuY2VOcykpIHsKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCVhNTF9TQ0hFTUFQX05PX1hTSSwKKwkJbm9kZSwgTlVMTCwKKwkJIlRoZSB0YXJnZXQgbmFtZXNwYWNlIG11c3Qgbm90IG1hdGNoICclcyciLAorCQl4bWxTY2hlbWFJbnN0YW5jZU5zLCBOVUxMKTsKKwl9CisJYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJuYW1lIik7CisJaWYgKGF0dHIgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQTWlzc2luZ0F0dHJFcnIocGN0eHQsIFhNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkcsCisJCU5VTEwsIG5vZGUsICJuYW1lIiwgTlVMTCk7CisJICAgIHJldHVybiAoTlVMTCk7CisJfQorCWlmICh4bWxTY2hlbWFQVmFsQXR0ck5vZGUocGN0eHQsIE5VTEwsIGF0dHIsCisJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX05DTkFNRSksICZuYW1lKSAhPSAwKSB7CisJICAgIHJldHVybiAoTlVMTCk7CisJfQorCS8qCisJKiAzLjIuNiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IHhtbG5zIE5vdCBBbGxvd2VkCisJKiBUT0RPOiBNb3ZlIHRoaXMgdG8gdGhlIGNvbXBvbmVudCBsYXllci4KKwkqLworCWlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAieG1sbnMiKSkgeworCSAgICB4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihwY3R4dCwKKwkJWE1MX1NDSEVNQVBfTk9fWE1MTlMsCisJCU5VTEwsICh4bWxOb2RlUHRyKSBhdHRyLAorCQl4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19OQ05BTUUpLCBOVUxMLCBOVUxMLAorCQkiVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgbXVzdCBub3QgbWF0Y2ggJ3htbG5zJyIsCisJCU5VTEwsIE5VTEwpOworCSAgICByZXR1cm4gKE5VTEwpOworCX0KKwlpZiAob2NjdXJzID09IFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQpCisJICAgIGdvdG8gY2hlY2tfY2hpbGRyZW47CisJLyoKKwkqIENyZWF0ZSB0aGUgYXR0cmlidXRlIHVzZSBjb21wb25lbnQuCisJKi8KKwl1c2UgPSB4bWxTY2hlbWFBZGRBdHRyaWJ1dGVVc2UocGN0eHQsIG5vZGUpOworCWlmICh1c2UgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCXVzZS0+b2NjdXJzID0gb2NjdXJzOworCS8qCisJKiBDcmVhdGUgdGhlIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbi4KKwkqLworCWF0dHJEZWNsID0geG1sU2NoZW1hQWRkQXR0cmlidXRlKHBjdHh0LCBzY2hlbWEsIG5hbWUsIG5zLCBub2RlLCAwKTsKKwlpZiAoYXR0ckRlY2wgPT0gTlVMTCkKKwkgICAgcmV0dXJuIChOVUxMKTsKKwlpZiAodG1wTmFtZSAhPSBOVUxMKSB7CisJICAgIGF0dHJEZWNsLT50eXBlTmFtZSA9IHRtcE5hbWU7CisJICAgIGF0dHJEZWNsLT50eXBlTnMgPSB0bXBOczsKKwl9CisJdXNlLT5hdHRyRGVjbCA9IGF0dHJEZWNsOworCS8qCisJKiBWYWx1ZSBjb25zdHJhaW50LgorCSovCisJaWYgKGRlZlZhbHVlICE9IE5VTEwpIHsKKwkgICAgYXR0ckRlY2wtPmRlZlZhbHVlID0gZGVmVmFsdWU7CisJICAgIGlmIChkZWZWYWx1ZVR5cGUgPT0gV1hTX0FUVFJfREVGX1ZBTF9GSVhFRCkKKwkJYXR0ckRlY2wtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0FUVFJfRklYRUQ7CisJfQorICAgIH0gZWxzZSBpZiAob2NjdXJzICE9IFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1BST0hJQklURUQpIHsKKwl4bWxTY2hlbWFRTmFtZVJlZlB0ciByZWY7CisKKwkvKgorCSogQ3JlYXRlIHRoZSBhdHRyaWJ1dGUgdXNlIGNvbXBvbmVudC4KKwkqLworCXVzZSA9IHhtbFNjaGVtYUFkZEF0dHJpYnV0ZVVzZShwY3R4dCwgbm9kZSk7CisJaWYgKHVzZSA9PSBOVUxMKQorCSAgICByZXR1cm4oTlVMTCk7CisJLyoKKwkqIFdlIG5lZWQgdG8gcmVzb2x2ZSB0aGUgcmVmZXJlbmNlIGF0IGxhdGVyIHN0YWdlLgorCSovCisJV1hTX0FERF9QRU5ESU5HKHBjdHh0LCB1c2UpOworCXVzZS0+b2NjdXJzID0gb2NjdXJzOworCS8qCisJKiBDcmVhdGUgYSBRTmFtZSByZWZlcmVuY2UgdG8gdGhlIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbi4KKwkqLworCXJlZiA9IHhtbFNjaGVtYU5ld1FOYW1lUmVmKHBjdHh0LCBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFLAorCSAgICB0bXBOYW1lLCB0bXBOcyk7CisJaWYgKHJlZiA9PSBOVUxMKQorCSAgICByZXR1cm4oTlVMTCk7CisJLyoKKwkqIEFzc2lnbiB0aGUgcmVmZXJlbmNlLiBUaGlzIHdpbGwgYmUgc3Vic3RpdHV0ZWQgZm9yIHRoZQorCSogcmVmZXJlbmNlZCBhdHRyaWJ1dGUgZGVjbGFyYXRpb24gd2hlbiB0aGUgUU5hbWUgaXMgcmVzb2x2ZWQuCisJKi8KKwl1c2UtPmF0dHJEZWNsID0gV1hTX0FUVFJfQ0FTVCByZWY7CisJLyoKKwkqIFZhbHVlIGNvbnN0cmFpbnQuCisJKi8KKwlpZiAoZGVmVmFsdWUgIT0gTlVMTCkKKwkgICAgdXNlLT5kZWZWYWx1ZSA9IGRlZlZhbHVlOworCSAgICBpZiAoZGVmVmFsdWVUeXBlID09IFdYU19BVFRSX0RFRl9WQUxfRklYRUQpCisJCXVzZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9BVFRSX1VTRV9GSVhFRDsKKyAgICB9CisKK2NoZWNrX2NoaWxkcmVuOgorICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgaWYgKG9jY3VycyA9PSBYTUxfU0NIRU1BU19BVFRSX1VTRV9QUk9ISUJJVEVEKSB7CisJeG1sU2NoZW1hQXR0cmlidXRlVXNlUHJvaGliUHRyIHByb2hpYjsKKworCWlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKwkgICAgeG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKHBjdHh0LCBjaGlsZCwgMCk7CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfQorCWlmIChjaGlsZCAhPSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBDb250ZW50RXJyKHBjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkJTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJCSIoYW5ub3RhdGlvbj8pIik7CisJfQorCS8qCisJKiBDaGVjayBmb3IgcG9pbnRsZXNzbmVzcyBvZiBhdHRyaWJ1dGUgcHJvaGliaXRpb25zLgorCSovCisJaWYgKHBhcmVudFR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQKSB7CisJICAgIHhtbFNjaGVtYUN1c3RvbVdhcm5pbmcoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJWE1MX1NDSEVNQVBfV0FSTl9BVFRSX1BPSU5UTEVTU19QUk9ILAorCQlub2RlLCBOVUxMLAorCQkiU2tpcHBpbmcgYXR0cmlidXRlIHVzZSBwcm9oaWJpdGlvbiwgc2luY2UgaXQgaXMgIgorCQkicG9pbnRsZXNzIGluc2lkZSBhbiA8YXR0cmlidXRlR3JvdXA+IiwKKwkJTlVMTCwgTlVMTCwgTlVMTCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9IGVsc2UgaWYgKHBhcmVudFR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0VYVEVOU0lPTikgeworCSAgICB4bWxTY2hlbWFDdXN0b21XYXJuaW5nKEFDVFhUX0NBU1QgcGN0eHQsCisJCVhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9QT0lOVExFU1NfUFJPSCwKKwkJbm9kZSwgTlVMTCwKKwkJIlNraXBwaW5nIGF0dHJpYnV0ZSB1c2UgcHJvaGliaXRpb24sIHNpbmNlIGl0IGlzICIKKwkJInBvaW50bGVzcyB3aGVuIGV4dGVuZGluZyBhIHR5cGUiLAorCQlOVUxMLCBOVUxMLCBOVUxMKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKwlpZiAoISBpc1JlZikgeworCSAgICB0bXBOYW1lID0gbmFtZTsKKwkgICAgdG1wTnMgPSBuczsKKwl9CisJLyoKKwkqIENoZWNrIGZvciBkdXBsaWNhdGUgYXR0cmlidXRlIHByb2hpYml0aW9ucy4KKwkqLworCWlmICh1c2VzKSB7CisJICAgIGludCBpOworCisJICAgIGZvciAoaSA9IDA7IGkgPCB1c2VzLT5uYkl0ZW1zOyBpKyspIHsKKwkJdXNlID0gdXNlcy0+aXRlbXNbaV07CisJCWlmICgodXNlLT50eXBlID09IFhNTF9TQ0hFTUFfRVhUUkFfQVRUUl9VU0VfUFJPSElCKSAmJgorCQkgICAgKHRtcE5hbWUgPT0gKFdYU19BVFRSX1BST0hJQl9DQVNUIHVzZSktPm5hbWUpICYmCisJCSAgICAodG1wTnMgPT0gKFdYU19BVFRSX1BST0hJQl9DQVNUIHVzZSktPnRhcmdldE5hbWVzcGFjZSkpCisJCXsKKwkJICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwkJICAgIHhtbFNjaGVtYUN1c3RvbVdhcm5pbmcoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9QT0lOVExFU1NfUFJPSCwKKwkJCW5vZGUsIE5VTEwsCisJCQkiU2tpcHBpbmcgZHVwbGljYXRlIGF0dHJpYnV0ZSB1c2UgcHJvaGliaXRpb24gJyVzJyIsCisJCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLCB0bXBOcywgdG1wTmFtZSksCisJCQlOVUxMLCBOVUxMKTsKKwkJICAgIEZSRUVfQU5EX05VTEwoc3RyKQorCQkgICAgcmV0dXJuKE5VTEwpOworCQl9CisJICAgIH0KKwl9CisJLyoKKwkqIENyZWF0ZSB0aGUgYXR0cmlidXRlIHByb2hpYml0aW9uIGhlbHBlciBjb21wb25lbnQuCisJKi8KKwlwcm9oaWIgPSB4bWxTY2hlbWFBZGRBdHRyaWJ1dGVVc2VQcm9oaWIocGN0eHQpOworCWlmIChwcm9oaWIgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCXByb2hpYi0+bm9kZSA9IG5vZGU7CisJcHJvaGliLT5uYW1lID0gdG1wTmFtZTsKKwlwcm9oaWItPnRhcmdldE5hbWVzcGFjZSA9IHRtcE5zOworCWlmIChpc1JlZikgeworCSAgICAvKgorCSAgICAqIFdlIG5lZWQgYXQgbGVhc3QgdG8gcmVzb2x2ZSB0byB0aGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uLgorCSAgICAqLworCSAgICBXWFNfQUREX1BFTkRJTkcocGN0eHQsIHByb2hpYik7CisJfQorCXJldHVybihXWFNfQkFTSUNfQ0FTVCBwcm9oaWIpOworICAgIH0gZWxzZSB7CisJaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworCSAgICAvKgorCSAgICAqIFRPRE86IFNob3VsZCB0aGlzIGdvIGludG8gdGhlIGF0dHIgZGVjbD8KKwkgICAgKi8KKwkgICAgdXNlLT5hbm5vdCA9IHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihwY3R4dCwgY2hpbGQsIDEpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKwlpZiAoaXNSZWYpIHsKKwkgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwkJaWYgKElTX1NDSEVNQShjaGlsZCwgInNpbXBsZVR5cGUiKSkKKwkJICAgIC8qCisJCSAgICAqIDMuMi4zIDogMy4yCisJCSAgICAqIElmIHJlZiBpcyBwcmVzZW50LCB0aGVuIGFsbCBvZiA8c2ltcGxlVHlwZT4sCisJCSAgICAqIGZvcm0gYW5kIHR5cGUgbXVzdCBiZSBhYnNlbnQuCisJCSAgICAqLworCQkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIocGN0eHQsCisJCQlYTUxfU0NIRU1BUF9TUkNfQVRUUklCVVRFXzNfMiwKKwkJCU5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLAorCQkJIihhbm5vdGF0aW9uPykiKTsKKwkJZWxzZQorCQkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIocGN0eHQsCisJCQlYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkJCU5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLAorCQkJIihhbm5vdGF0aW9uPykiKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJzaW1wbGVUeXBlIikpIHsKKwkJaWYgKFdYU19BVFRSVVNFX0RFQ0wodXNlKS0+dHlwZU5hbWUgIT0gTlVMTCkgeworCQkgICAgLyoKKwkJICAgICogMy4yLjMgOiA0CisJCSAgICAqIHR5cGUgYW5kIDxzaW1wbGVUeXBlPiBtdXN0IG5vdCBib3RoIGJlIHByZXNlbnQuCisJCSAgICAqLworCQkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIocGN0eHQsIFhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfNCwKKwkJCU5VTEwsIG5vZGUsIGNoaWxkLAorCQkJIlRoZSBhdHRyaWJ1dGUgJ3R5cGUnIGFuZCB0aGUgPHNpbXBsZVR5cGU+IGNoaWxkICIKKwkJCSJhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIiwgTlVMTCk7CisJCX0gZWxzZQorCQkgICAgV1hTX0FUVFJVU0VfVFlQRURFRih1c2UpID0KKwkJCXhtbFNjaGVtYVBhcnNlU2ltcGxlVHlwZShwY3R4dCwgc2NoZW1hLCBjaGlsZCwgMCk7CisJCWNoaWxkID0gY2hpbGQtPm5leHQ7CisJICAgIH0KKwkgICAgaWYgKGNoaWxkICE9IE5VTEwpCisJCXhtbFNjaGVtYVBDb250ZW50RXJyKHBjdHh0LCBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkJTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJCSIoYW5ub3RhdGlvbj8sIHNpbXBsZVR5cGU/KSIpOworCX0KKyAgICB9CisgICAgcmV0dXJuIChXWFNfQkFTSUNfQ0FTVCB1c2UpOworfQorCisKK3N0YXRpYyB4bWxTY2hlbWFBdHRyaWJ1dGVQdHIKK3htbFNjaGVtYVBhcnNlR2xvYmFsQXR0cmlidXRlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQkJICAgICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGNvbnN0IHhtbENoYXIgKmF0dHJWYWx1ZTsKKyAgICB4bWxTY2hlbWFBdHRyaWJ1dGVQdHIgcmV0OworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKworICAgIC8qCisgICAgICogTm90ZSB0aGF0IHRoZSB3M2Mgc3BlYyBhc3N1bWVzIHRoZSBzY2hlbWEgdG8gYmUgdmFsaWRhdGVkIHdpdGggc2NoZW1hCisgICAgICogZm9yIHNjaGVtYXMgYmVmb3JlaGFuZC4KKyAgICAgKgorICAgICAqIDMuMi4zIENvbnN0cmFpbnRzIG9uIFhNTCBSZXByZXNlbnRhdGlvbnMgb2YgQXR0cmlidXRlIERlY2xhcmF0aW9ucworICAgICAqLworICAgIGlmICgocGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAvKgorICAgICogMy4yLjMgOiAzLjEKKyAgICAqIE9uZSBvZiByZWYgb3IgbmFtZSBtdXN0IGJlIHByZXNlbnQsIGJ1dCBub3QgYm90aAorICAgICovCisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJuYW1lIik7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBNaXNzaW5nQXR0ckVycihwY3R4dCwgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTUlTU0lORywKKwkgICAgTlVMTCwgbm9kZSwgIm5hbWUiLCBOVUxMKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBpZiAoeG1sU2NoZW1hUFZhbEF0dHJOb2RlKHBjdHh0LCBOVUxMLCBhdHRyLAorCXhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX05DTkFNRSksICZhdHRyVmFsdWUpICE9IDApIHsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICogMy4yLjYgU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OiB4bWxucyBOb3QgQWxsb3dlZAorICAgICogVE9ETzogTW92ZSB0aGlzIHRvIHRoZSBjb21wb25lbnQgbGF5ZXIuCisgICAgKi8KKyAgICBpZiAoeG1sU3RyRXF1YWwoYXR0clZhbHVlLCBCQURfQ0FTVCAieG1sbnMiKSkgeworCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9OT19YTUxOUywKKwkgICAgTlVMTCwgKHhtbE5vZGVQdHIpIGF0dHIsCisJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX05DTkFNRSksIE5VTEwsIE5VTEwsCisJICAgICJUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSBtdXN0IG5vdCBtYXRjaCAneG1sbnMnIiwKKwkgICAgTlVMTCwgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgLyoKKyAgICAqIDMuMi42IFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogeHNpOiBOb3QgQWxsb3dlZAorICAgICogVE9ETzogTW92ZSB0aGlzIHRvIHRoZSBjb21wb25lbnQgbGF5ZXIuCisgICAgKiAgICAgICBPciBiZXR0ZXIgbGVhdmUgaXQgaGVyZSBhbmQgYWRkIGl0IHRvIHRoZSBjb21wb25lbnQgbGF5ZXIKKyAgICAqICAgICAgIGlmIHdlIGhhdmUgYSBzY2hlbWEgY29uc3RydWN0aW9uIEFQSS4KKyAgICAqLworICAgIGlmICh4bWxTdHJFcXVhbChwY3R4dC0+dGFyZ2V0TmFtZXNwYWNlLCB4bWxTY2hlbWFJbnN0YW5jZU5zKSkgeworCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9OT19YU0ksIG5vZGUsIE5VTEwsCisJICAgICJUaGUgdGFyZ2V0IG5hbWVzcGFjZSBtdXN0IG5vdCBtYXRjaCAnJXMnIiwKKwkgICAgeG1sU2NoZW1hSW5zdGFuY2VOcywgTlVMTCk7CisgICAgfQorCisgICAgcmV0ID0geG1sU2NoZW1hQWRkQXR0cmlidXRlKHBjdHh0LCBzY2hlbWEsIGF0dHJWYWx1ZSwKKwlwY3R4dC0+dGFyZ2V0TmFtZXNwYWNlLCBub2RlLCAxKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKyAgICByZXQtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0FUVFJfR0xPQkFMOworCisgICAgLyoKKyAgICAqIENoZWNrIGZvciBpbGxlZ2FsIGF0dHJpYnV0ZXMuCisgICAgKi8KKyAgICBhdHRyID0gbm9kZS0+cHJvcGVydGllczsKKyAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisJaWYgKGF0dHItPm5zID09IE5VTEwpIHsKKwkgICAgaWYgKCgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpICYmCisJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImRlZmF1bHQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiZml4ZWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibmFtZSIpKSAmJgorCQkoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJ0eXBlIikpKQorCSAgICB7CisJCXhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwl9CisJYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorICAgIHhtbFNjaGVtYVBWYWxBdHRyUU5hbWUocGN0eHQsIHNjaGVtYSwgTlVMTCwKKwlub2RlLCAidHlwZSIsICZyZXQtPnR5cGVOcywgJnJldC0+dHlwZU5hbWUpOworCisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChwY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisgICAgLyoKKyAgICAqIEF0dHJpYnV0ZSAiZml4ZWQiLgorICAgICovCisgICAgcmV0LT5kZWZWYWx1ZSA9IHhtbFNjaGVtYUdldFByb3AocGN0eHQsIG5vZGUsICJmaXhlZCIpOworICAgIGlmIChyZXQtPmRlZlZhbHVlICE9IE5VTEwpCisJcmV0LT5mbGFncyB8PSBYTUxfU0NIRU1BU19BVFRSX0ZJWEVEOworICAgIC8qCisgICAgKiBBdHRyaWJ1dGUgImRlZmF1bHQiLgorICAgICovCisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJkZWZhdWx0Iik7CisgICAgaWYgKGF0dHIgIT0gTlVMTCkgeworCS8qCisJKiAzLjIuMyA6IDEKKwkqIGRlZmF1bHQgYW5kIGZpeGVkIG11c3Qgbm90IGJvdGggYmUgcHJlc2VudC4KKwkqLworCWlmIChyZXQtPmZsYWdzICYgWE1MX1NDSEVNQVNfQVRUUl9GSVhFRCkgeworCSAgICB4bWxTY2hlbWFQTXV0dWFsRXhjbEF0dHJFcnIocGN0eHQsIFhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfMSwKKwkJV1hTX0JBU0lDX0NBU1QgcmV0LCBhdHRyLCAiZGVmYXVsdCIsICJmaXhlZCIpOworCX0gZWxzZQorCSAgICByZXQtPmRlZlZhbHVlID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnQocGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyKTsKKyAgICB9CisgICAgLyoKKyAgICAqIEFuZCBub3cgZm9yIHRoZSBjaGlsZHJlbi4uLgorICAgICovCisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisgICAgICAgIHJldC0+YW5ub3QgPSB4bWxTY2hlbWFQYXJzZUFubm90YXRpb24ocGN0eHQsIGNoaWxkLCAxKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgInNpbXBsZVR5cGUiKSkgeworCWlmIChyZXQtPnR5cGVOYW1lICE9IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiAzLjIuMyA6IDQKKwkgICAgKiB0eXBlIGFuZCA8c2ltcGxlVHlwZT4gbXVzdCBub3QgYm90aCBiZSBwcmVzZW50LgorCSAgICAqLworCSAgICB4bWxTY2hlbWFQQ29udGVudEVycihwY3R4dCwgWE1MX1NDSEVNQVBfU1JDX0FUVFJJQlVURV80LAorCQlOVUxMLCBub2RlLCBjaGlsZCwKKwkJIlRoZSBhdHRyaWJ1dGUgJ3R5cGUnIGFuZCB0aGUgPHNpbXBsZVR5cGU+IGNoaWxkICIKKwkJImFyZSBtdXR1YWxseSBleGNsdXNpdmUiLCBOVUxMKTsKKwl9IGVsc2UKKwkgICAgcmV0LT5zdWJ0eXBlcyA9IHhtbFNjaGVtYVBhcnNlU2ltcGxlVHlwZShwY3R4dCwgc2NoZW1hLCBjaGlsZCwgMCk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpCisJeG1sU2NoZW1hUENvbnRlbnRFcnIocGN0eHQsIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwKKwkgICAgIihhbm5vdGF0aW9uPywgc2ltcGxlVHlwZT8pIik7CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VBdHRyaWJ1dGVHcm91cFJlZjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIFBhcnNlIGFuIGF0dHJpYnV0ZSBncm91cCBkZWZpbml0aW9uIHJlZmVyZW5jZS4KKyAqIE5vdGUgdGhhdCBhIHJlZmVyZW5jZSB0byBhbiBhdHRyaWJ1dGUgZ3JvdXAgZG9lcyBub3QKKyAqIGNvcnJlc3BvbmQgdG8gYW55IGNvbXBvbmVudCBhdCBhbGwuCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyB0aGUgYXR0cmlidXRlIGdyb3VwIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbFNjaGVtYVFOYW1lUmVmUHRyCit4bWxTY2hlbWFQYXJzZUF0dHJpYnV0ZUdyb3VwUmVmKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkJeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJCQl4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hUU5hbWVSZWZQdHIgcmV0OworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICBjb25zdCB4bWxDaGFyICpyZWZOcyA9IE5VTEwsICpyZWYgPSBOVUxMOworCisgICAgaWYgKChwY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJyZWYiKTsKKyAgICBpZiAoYXR0ciA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUE1pc3NpbmdBdHRyRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HLAorCSAgICBOVUxMLCBub2RlLCAicmVmIiwgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgeG1sU2NoZW1hUFZhbEF0dHJOb2RlUU5hbWUocGN0eHQsIHNjaGVtYSwKKwlOVUxMLCBhdHRyLCAmcmVmTnMsICZyZWYpOworICAgIGlmICh4bWxTY2hlbWFDaGVja1JlZmVyZW5jZShwY3R4dCwgc2NoZW1hLCBub2RlLCBhdHRyLCByZWZOcykgIT0gMCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAicmVmIikpICYmCisJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpKQorCSAgICB7CisJCXhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwl9CisJYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorICAgIC8qIEF0dHJpYnV0ZSBJRCAqLworICAgIHhtbFNjaGVtYVBWYWxBdHRySUQocGN0eHQsIG5vZGUsIEJBRF9DQVNUICJpZCIpOworCisgICAgLyoKKyAgICAqIEFuZCBub3cgZm9yIHRoZSBjaGlsZHJlbi4uLgorICAgICovCisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisJLyoKKwkqIFRPRE86IFdlIGRvIG5vdCBoYXZlIGEgcGxhY2UgdG8gc3RvcmUgdGhlIGFubm90YXRpb24sIGRvIHdlPworCSovCisgICAgICAgIHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihwY3R4dCwgY2hpbGQsIDApOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkgICAgTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJICAgICIoYW5ub3RhdGlvbj8pIik7CisgICAgfQorCisgICAgLyoKKyAgICAqIEhhbmRsZSBhdHRyaWJ1dGUgZ3JvdXAgcmVkZWZpbml0aW9ucy4KKyAgICAqLworICAgIGlmIChwY3R4dC0+aXNSZWRlZmluZSAmJiBwY3R4dC0+cmVkZWYgJiYKKwkocGN0eHQtPnJlZGVmLT5pdGVtLT50eXBlID09CisJICAgIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUCkgJiYKKwkocmVmID09IHBjdHh0LT5yZWRlZi0+cmVmTmFtZSkgJiYKKwkocmVmTnMgPT0gcGN0eHQtPnJlZGVmLT5yZWZUYXJnZXROcykpCisgICAgeworCS8qCisJKiBTUEVDIHNyYy1yZWRlZmluZToKKwkqICg3LjEpICJJZiBpdCBoYXMgYW4gPGF0dHJpYnV0ZUdyb3VwPiBhbW9uZyBpdHMgY29udGVudHMKKwkqIHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2Ygd2hvc2UgcmVmIFthdHRyaWJ1dGVdIGlzIHRoZSBzYW1lCisJKiBhcyB0aGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIGl0cyBvd24gbmFtZSBhdHRyaWJ1dGUgcGx1cworCSogdGFyZ2V0IG5hbWVzcGFjZSwgdGhlbiBpdCBtdXN0IGhhdmUgZXhhY3RseSBvbmUgc3VjaCBncm91cC4iCisJKi8KKwlpZiAocGN0eHQtPnJlZGVmQ291bnRlciAhPSAwKSB7CisJICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwgbm9kZSwgTlVMTCwKKwkJIlRoZSByZWRlZmluaW5nIGF0dHJpYnV0ZSBncm91cCBkZWZpbml0aW9uICIKKwkJIiclcycgbXVzdCBub3QgY29udGFpbiBtb3JlIHRoYW4gb25lICIKKwkJInJlZmVyZW5jZSB0byB0aGUgcmVkZWZpbmVkIGRlZmluaXRpb24iLAorCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLCByZWZOcywgcmVmKSwgTlVMTCk7CisJICAgIEZSRUVfQU5EX05VTEwoc3RyKTsKKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKwlwY3R4dC0+cmVkZWZDb3VudGVyKys7CisJLyoKKwkqIFVSR0VOVCBUT0RPOiBIb3cgdG8gZW5zdXJlIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIG5vdCBiZQorCSogaGFuZGxlZCBieSB0aGUgbm9ybWFsIGNvbXBvbmVudCByZXNvbHV0aW9uIG1lY2hhbmlzbT8KKwkqLworCXJldCA9IHhtbFNjaGVtYU5ld1FOYW1lUmVmKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVAsIHJlZiwgcmVmTnMpOworCWlmIChyZXQgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCXJldC0+bm9kZSA9IG5vZGU7CisJcGN0eHQtPnJlZGVmLT5yZWZlcmVuY2UgPSBXWFNfQkFTSUNfQ0FTVCByZXQ7CisgICAgfSBlbHNlIHsKKwkvKgorCSogQ3JlYXRlIGEgUU5hbWUtcmVmZXJlbmNlIGhlbHBlciBjb21wb25lbnQuIFdlIHdpbGwgc3Vic3RpdHV0ZSB0aGlzCisJKiBjb21wb25lbnQgZm9yIHRoZSBhdHRyaWJ1dGUgdXNlcyBvZiB0aGUgcmVmZXJlbmNlZCBhdHRyaWJ1dGUgZ3JvdXAKKwkqIGRlZmluaXRpb24uCisJKi8KKwlyZXQgPSB4bWxTY2hlbWFOZXdRTmFtZVJlZihwY3R4dCwKKwkgICAgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQLCByZWYsIHJlZk5zKTsKKwlpZiAocmV0ID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKwlyZXQtPm5vZGUgPSBub2RlOworCS8qIEFkZCB0byBwZW5kaW5nIGl0ZW1zLCB0byBiZSBhYmxlIHRvIHJlc29sdmUgdGhlIHJlZmVyZW5jZS4gKi8KKwlXWFNfQUREX1BFTkRJTkcocGN0eHQsIHJldCk7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUF0dHJpYnV0ZUdyb3VwRGVmaW5pdGlvbjoKKyAqIEBwY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBwYXJzZSBhIFhNTCBzY2hlbWEgQXR0cmlidXRlIEdyb3VwIGRlY2xhcmF0aW9uCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyB0aGUgYXR0cmlidXRlIGdyb3VwIGRlZmluaXRpb24gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIKK3htbFNjaGVtYVBhcnNlQXR0cmlidXRlR3JvdXBEZWZpbml0aW9uKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkJICAgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkJICAgICAgIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIHJldDsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgaW50IGhhc1JlZnMgPSAwOworCisgICAgaWYgKChwY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJuYW1lIik7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBNaXNzaW5nQXR0ckVycihwY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTUlTU0lORywKKwkgICAgTlVMTCwgbm9kZSwgIm5hbWUiLCBOVUxMKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICAvKgorICAgICogVGhlIG5hbWUgaXMgY3J1Y2lhbCwgZXhpdCBpZiBpbnZhbGlkLgorICAgICovCisgICAgaWYgKHhtbFNjaGVtYVBWYWxBdHRyTm9kZShwY3R4dCwKKwlOVUxMLCBhdHRyLAorCXhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX05DTkFNRSksICZuYW1lKSAhPSAwKSB7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgcmV0ID0geG1sU2NoZW1hQWRkQXR0cmlidXRlR3JvdXBEZWZpbml0aW9uKHBjdHh0LCBzY2hlbWEsCisJbmFtZSwgcGN0eHQtPnRhcmdldE5hbWVzcGFjZSwgbm9kZSk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorCXJldHVybiAoTlVMTCk7CisgICAgLyoKKyAgICAqIENoZWNrIGZvciBpbGxlZ2FsIGF0dHJpYnV0ZXMuCisgICAgKi8KKyAgICBhdHRyID0gbm9kZS0+cHJvcGVydGllczsKKyAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisJaWYgKGF0dHItPm5zID09IE5VTEwpIHsKKwkgICAgaWYgKCgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm5hbWUiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkpCisJICAgIHsKKwkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKHBjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCSAgICB9CisJfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSB7CisJICAgIHhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihwY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgLyogQXR0cmlidXRlIElEICovCisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChwY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisgICAgLyoKKyAgICAqIEFuZCBub3cgZm9yIHRoZSBjaGlsZHJlbi4uLgorICAgICovCisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisgICAgICAgIHJldC0+YW5ub3QgPSB4bWxTY2hlbWFQYXJzZUFubm90YXRpb24ocGN0eHQsIGNoaWxkLCAxKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgLyoKKyAgICAqIFBhcnNlIGNvbnRhaW5lZCBhdHRyaWJ1dGUgZGVjbHMvcmVmcy4KKyAgICAqLworICAgIGlmICh4bWxTY2hlbWFQYXJzZUxvY2FsQXR0cmlidXRlcyhwY3R4dCwgc2NoZW1hLCAmY2hpbGQsCisJKHhtbFNjaGVtYUl0ZW1MaXN0UHRyICopICYocmV0LT5hdHRyVXNlcyksCisJWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQLCAmaGFzUmVmcykgPT0gLTEpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChoYXNSZWZzKQorCXJldC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTOworICAgIC8qCisgICAgKiBQYXJzZSB0aGUgYXR0cmlidXRlIHdpbGRjYXJkLgorICAgICovCisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgImFueUF0dHJpYnV0ZSIpKSB7CisJcmV0LT5hdHRyaWJ1dGVXaWxkY2FyZCA9IHhtbFNjaGVtYVBhcnNlQW55QXR0cmlidXRlKHBjdHh0LAorCSAgICBzY2hlbWEsIGNoaWxkKTsKKwljaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkgICAgTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJICAgICIoYW5ub3RhdGlvbj8sICgoYXR0cmlidXRlIHwgYXR0cmlidXRlR3JvdXApKiwgYW55QXR0cmlidXRlPykpIik7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQVmFsQXR0ckZvcm1EZWZhdWx0OgorICogQHZhbHVlOiAgdGhlIHZhbHVlCisgKiBAZmxhZ3M6IHRoZSBmbGFncyB0byBiZSBtb2RpZmllZAorICogQGZsYWdRdWFsaWZpZWQ6IHRoZSBzcGVjaWZpYyBmbGFnIGZvciAicXVhbGlmaWVkIgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIDEgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQVmFsQXR0ckZvcm1EZWZhdWx0KGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJICAgICBpbnQgKmZsYWdzLAorCQkJICAgICBpbnQgZmxhZ1F1YWxpZmllZCkKK3sKKyAgICBpZiAoeG1sU3RyRXF1YWwodmFsdWUsIEJBRF9DQVNUICJxdWFsaWZpZWQiKSkgeworCWlmICAoKCpmbGFncyAmIGZsYWdRdWFsaWZpZWQpID09IDApCisJICAgICpmbGFncyB8PSBmbGFnUXVhbGlmaWVkOworICAgIH0gZWxzZSBpZiAoIXhtbFN0ckVxdWFsKHZhbHVlLCBCQURfQ0FTVCAidW5xdWFsaWZpZWQiKSkKKwlyZXR1cm4gKDEpOworCisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQVmFsQXR0ckJsb2NrRmluYWw6CisgKiBAdmFsdWU6ICB0aGUgdmFsdWUKKyAqIEBmbGFnczogdGhlIGZsYWdzIHRvIGJlIG1vZGlmaWVkCisgKiBAZmxhZ0FsbDogdGhlIHNwZWNpZmljIGZsYWcgZm9yICIjYWxsIgorICogQGZsYWdFeHRlbnNpb246IHRoZSBzcGVjaWZpYyBmbGFnIGZvciAiZXh0ZW5zaW9uIgorICogQGZsYWdSZXN0cmljdGlvbjogdGhlIHNwZWNpZmljIGZsYWcgZm9yICJyZXN0cmljdGlvbiIKKyAqIEBmbGFnU3Vic3RpdHV0aW9uOiB0aGUgc3BlY2lmaWMgZmxhZyBmb3IgInN1YnN0aXR1dGlvbiIKKyAqIEBmbGFnTGlzdDogdGhlIHNwZWNpZmljIGZsYWcgZm9yICJsaXN0IgorICogQGZsYWdVbmlvbjogdGhlIHNwZWNpZmljIGZsYWcgZm9yICJ1bmlvbiIKKyAqCisgKiBWYWxpZGF0ZXMgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgImZpbmFsIiBhbmQgImJsb2NrIi4gVGhlIHZhbHVlCisgKiBpcyBjb252ZXJ0ZWQgaW50byB0aGUgc3BlY2lmaWVkIGZsYWcgdmFsdWVzIGFuZCByZXR1cm5lZCBpbiBAZmxhZ3MuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgMSBvdGhlcndpc2UuCisgKi8KKworc3RhdGljIGludAoreG1sU2NoZW1hUFZhbEF0dHJCbG9ja0ZpbmFsKGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJICAgIGludCAqZmxhZ3MsCisJCQkgICAgaW50IGZsYWdBbGwsCisJCQkgICAgaW50IGZsYWdFeHRlbnNpb24sCisJCQkgICAgaW50IGZsYWdSZXN0cmljdGlvbiwKKwkJCSAgICBpbnQgZmxhZ1N1YnN0aXR1dGlvbiwKKwkJCSAgICBpbnQgZmxhZ0xpc3QsCisJCQkgICAgaW50IGZsYWdVbmlvbikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIC8qCisgICAgKiBUT0RPOiBUaGlzIGRvZXMgbm90IGNoZWNrIGZvciBkdWJsaWNhdGUgZW50cmllcy4KKyAgICAqLworICAgIGlmICgoZmxhZ3MgPT0gTlVMTCkgfHwgKHZhbHVlID09IE5VTEwpKQorCXJldHVybiAoLTEpOworICAgIGlmICh2YWx1ZVswXSA9PSAwKQorCXJldHVybiAoMCk7CisgICAgaWYgKHhtbFN0ckVxdWFsKHZhbHVlLCBCQURfQ0FTVCAiI2FsbCIpKSB7CisJaWYgKGZsYWdBbGwgIT0gLTEpCisJICAgICpmbGFncyB8PSBmbGFnQWxsOworCWVsc2UgeworCSAgICBpZiAoZmxhZ0V4dGVuc2lvbiAhPSAtMSkKKwkJKmZsYWdzIHw9IGZsYWdFeHRlbnNpb247CisJICAgIGlmIChmbGFnUmVzdHJpY3Rpb24gIT0gLTEpCisJCSpmbGFncyB8PSBmbGFnUmVzdHJpY3Rpb247CisJICAgIGlmIChmbGFnU3Vic3RpdHV0aW9uICE9IC0xKQorCQkqZmxhZ3MgfD0gZmxhZ1N1YnN0aXR1dGlvbjsKKwkgICAgaWYgKGZsYWdMaXN0ICE9IC0xKQorCQkqZmxhZ3MgfD0gZmxhZ0xpc3Q7CisJICAgIGlmIChmbGFnVW5pb24gIT0gLTEpCisJCSpmbGFncyB8PSBmbGFnVW5pb247CisJfQorICAgIH0gZWxzZSB7CisJY29uc3QgeG1sQ2hhciAqZW5kLCAqY3VyID0gdmFsdWU7CisJeG1sQ2hhciAqaXRlbTsKKworCWRvIHsKKwkgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKQorCQljdXIrKzsKKwkgICAgZW5kID0gY3VyOworCSAgICB3aGlsZSAoKCplbmQgIT0gMCkgJiYgKCEoSVNfQkxBTktfQ0goKmVuZCkpKSkKKwkJZW5kKys7CisJICAgIGlmIChlbmQgPT0gY3VyKQorCQlicmVhazsKKwkgICAgaXRlbSA9IHhtbFN0cm5kdXAoY3VyLCBlbmQgLSBjdXIpOworCSAgICBpZiAoeG1sU3RyRXF1YWwoaXRlbSwgQkFEX0NBU1QgImV4dGVuc2lvbiIpKSB7CisJCWlmIChmbGFnRXh0ZW5zaW9uICE9IC0xKSB7CisJCSAgICBpZiAoKCpmbGFncyAmIGZsYWdFeHRlbnNpb24pID09IDApCisJCQkqZmxhZ3MgfD0gZmxhZ0V4dGVuc2lvbjsKKwkJfSBlbHNlCisJCSAgICByZXQgPSAxOworCSAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGl0ZW0sIEJBRF9DQVNUICJyZXN0cmljdGlvbiIpKSB7CisJCWlmIChmbGFnUmVzdHJpY3Rpb24gIT0gLTEpIHsKKwkJICAgIGlmICgoKmZsYWdzICYgZmxhZ1Jlc3RyaWN0aW9uKSA9PSAwKQorCQkJKmZsYWdzIHw9IGZsYWdSZXN0cmljdGlvbjsKKwkJfSBlbHNlCisJCSAgICByZXQgPSAxOworCSAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGl0ZW0sIEJBRF9DQVNUICJzdWJzdGl0dXRpb24iKSkgeworCQlpZiAoZmxhZ1N1YnN0aXR1dGlvbiAhPSAtMSkgeworCQkgICAgaWYgKCgqZmxhZ3MgJiBmbGFnU3Vic3RpdHV0aW9uKSA9PSAwKQorCQkJKmZsYWdzIHw9IGZsYWdTdWJzdGl0dXRpb247CisJCX0gZWxzZQorCQkgICAgcmV0ID0gMTsKKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChpdGVtLCBCQURfQ0FTVCAibGlzdCIpKSB7CisJCWlmIChmbGFnTGlzdCAhPSAtMSkgeworCQkgICAgaWYgKCgqZmxhZ3MgJiBmbGFnTGlzdCkgPT0gMCkKKwkJCSpmbGFncyB8PSBmbGFnTGlzdDsKKwkJfSBlbHNlCisJCSAgICByZXQgPSAxOworCSAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGl0ZW0sIEJBRF9DQVNUICJ1bmlvbiIpKSB7CisJCWlmIChmbGFnVW5pb24gIT0gLTEpIHsKKwkJICAgIGlmICgoKmZsYWdzICYgZmxhZ1VuaW9uKSA9PSAwKQorCQkJKmZsYWdzIHw9IGZsYWdVbmlvbjsKKwkJfSBlbHNlCisJCSAgICByZXQgPSAxOworCSAgICB9IGVsc2UKKwkJcmV0ID0gMTsKKwkgICAgaWYgKGl0ZW0gIT0gTlVMTCkKKwkJeG1sRnJlZShpdGVtKTsKKwkgICAgY3VyID0gZW5kOworCX0gd2hpbGUgKChyZXQgPT0gMCkgJiYgKCpjdXIgIT0gMCkpOworICAgIH0KKworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tDU2VsZWN0b3JYUGF0aCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICAgIHhtbFNjaGVtYUlEQ1B0ciBpZGMsCisJCQkgICAgIHhtbFNjaGVtYUlEQ1NlbGVjdFB0ciBzZWxlY3RvciwKKwkJCSAgICAgeG1sQXR0clB0ciBhdHRyLAorCQkJICAgICBpbnQgaXNGaWVsZCkKK3sKKyAgICB4bWxOb2RlUHRyIG5vZGU7CisKKyAgICAvKgorICAgICogYy1zZWxlY3Rvci14cGF0aDoKKyAgICAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogU2VsZWN0b3IgVmFsdWUgT0sKKyAgICAqCisgICAgKiBUT0RPOiAxIFRoZSB7c2VsZWN0b3J9IG11c3QgYmUgYSB2YWxpZCBYUGF0aCBleHByZXNzaW9uLCBhcyBkZWZpbmVkCisgICAgKiBpbiBbWFBhdGhdLgorICAgICovCisgICAgaWYgKHNlbGVjdG9yID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyKGN0eHQsIGlkYy0+bm9kZSwKKwkgICAgWE1MX1NDSEVNQVBfSU5URVJOQUwsCisJICAgICJJbnRlcm5hbCBlcnJvcjogeG1sU2NoZW1hQ2hlY2tDU2VsZWN0b3JYUGF0aCwgIgorCSAgICAidGhlIHNlbGVjdG9yIGlzIG5vdCBzcGVjaWZpZWQuXG4iLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgaWYgKGF0dHIgPT0gTlVMTCkKKwlub2RlID0gaWRjLT5ub2RlOworICAgIGVsc2UKKwlub2RlID0gKHhtbE5vZGVQdHIpIGF0dHI7CisgICAgaWYgKHNlbGVjdG9yLT54cGF0aCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCSAgICAvKiBUT0RPOiBBZGp1c3QgZXJyb3IgY29kZS4gKi8KKwkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkgICAgTlVMTCwgbm9kZSwKKwkgICAgIlRoZSBYUGF0aCBleHByZXNzaW9uIG9mIHRoZSBzZWxlY3RvciBpcyBub3QgdmFsaWQiLCBOVUxMKTsKKwlyZXR1cm4gKFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUpOworICAgIH0gZWxzZSB7CisJY29uc3QgeG1sQ2hhciAqKm5zQXJyYXkgPSBOVUxMOworCXhtbE5zUHRyICpuc0xpc3QgPSBOVUxMOworCS8qCisJKiBDb21waWxlIHRoZSBYUGF0aCBleHByZXNzaW9uLgorCSovCisJLyoKKwkqIFRPRE86IFdlIG5lZWQgdGhlIGFycmF5IG9mIGluLXNjb3BlIG5hbWVzcGFjZXMgZm9yIGNvbXBpbGF0aW9uLgorCSogVE9ETzogQ2FsbCB4bWxQYXR0ZXJuY29tcGlsZSB3aXRoIGRpZmZlcmVudCBvcHRpb25zIGZvciBzZWxlY3Rvci8KKwkqIGZpZWxkLgorCSovCisJaWYgKGF0dHIgPT0gTlVMTCkKKwkgICAgbnNMaXN0ID0gTlVMTDsKKwllbHNlCisJICAgIG5zTGlzdCA9IHhtbEdldE5zTGlzdChhdHRyLT5kb2MsIGF0dHItPnBhcmVudCk7CisJLyoKKwkqIEJ1aWxkIGFuIGFycmF5IG9mIHByZWZpeGVzIGFuZCBuYW1lc3BhY2VzLgorCSovCisJaWYgKG5zTGlzdCAhPSBOVUxMKSB7CisJICAgIGludCBpLCBjb3VudCA9IDA7CisKKwkgICAgZm9yIChpID0gMDsgbnNMaXN0W2ldICE9IE5VTEw7IGkrKykKKwkJY291bnQrKzsKKworCSAgICBuc0FycmF5ID0gKGNvbnN0IHhtbENoYXIgKiopIHhtbE1hbGxvYygKKwkJKGNvdW50ICogMiArIDEpICogc2l6ZW9mKGNvbnN0IHhtbENoYXIgKikpOworCSAgICBpZiAobnNBcnJheSA9PSBOVUxMKSB7CisJCXhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwgImFsbG9jYXRpbmcgYSBuYW1lc3BhY2UgYXJyYXkiLAorCQkgICAgTlVMTCk7CisJCXhtbEZyZWUobnNMaXN0KTsKKwkJcmV0dXJuICgtMSk7CisJICAgIH0KKwkgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJbnNBcnJheVsyICogaV0gPSBuc0xpc3RbaV0tPmhyZWY7CisJCW5zQXJyYXlbMiAqIGkgKyAxXSA9IG5zTGlzdFtpXS0+cHJlZml4OworCSAgICB9CisJICAgIG5zQXJyYXlbY291bnQgKiAyXSA9IE5VTEw7CisJICAgIHhtbEZyZWUobnNMaXN0KTsKKwl9CisJLyoKKwkqIFRPRE86IERpZmZlcmVudGlhdGUgYmV0d2VlbiAic2VsZWN0b3IiIGFuZCAiZmllbGQiLgorCSovCisJaWYgKGlzRmllbGQpCisJICAgIHNlbGVjdG9yLT54cGF0aENvbXAgPSAodm9pZCAqKSB4bWxQYXR0ZXJuY29tcGlsZShzZWxlY3Rvci0+eHBhdGgsCisJCU5VTEwsIFhNTF9QQVRURVJOX1hTRklFTEQsIG5zQXJyYXkpOworCWVsc2UKKwkgICAgc2VsZWN0b3ItPnhwYXRoQ29tcCA9ICh2b2lkICopIHhtbFBhdHRlcm5jb21waWxlKHNlbGVjdG9yLT54cGF0aCwKKwkJTlVMTCwgWE1MX1BBVFRFUk5fWFNTRUwsIG5zQXJyYXkpOworCWlmIChuc0FycmF5ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKHhtbENoYXIgKiopIG5zQXJyYXkpOworCisJaWYgKHNlbGVjdG9yLT54cGF0aENvbXAgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJCS8qIFRPRE86IEFkanVzdCBlcnJvciBjb2RlPyAqLworCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCQlOVUxMLCBub2RlLAorCQkiVGhlIFhQYXRoIGV4cHJlc3Npb24gJyVzJyBjb3VsZCBub3QgYmUgIgorCQkiY29tcGlsZWQiLCBzZWxlY3Rvci0+eHBhdGgpOworCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUpOworCX0KKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworI2RlZmluZSBBRERfQU5OT1RBVElPTihhbm5vdCkgICBcCisgICAgeG1sU2NoZW1hQW5ub3RQdHIgY3VyID0gaXRlbS0+YW5ub3Q7IFwKKyAgICBpZiAoaXRlbS0+YW5ub3QgPT0gTlVMTCkgeyAgXAorCWl0ZW0tPmFubm90ID0gYW5ub3Q7ICAgIFwKKwlyZXR1cm4gKGFubm90KTsgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjdXIgPSBpdGVtLT5hbm5vdDsgICAgICAgICAgXAorICAgIGlmIChjdXItPm5leHQgIT0gTlVMTCkgeyAgICBcCisJY3VyID0gY3VyLT5uZXh0OwlcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjdXItPm5leHQgPSBhbm5vdDsKKworLyoqCisgKiB4bWxTY2hlbWFBc3NpZ25Bbm5vdGF0aW9uOgorICogQGl0ZW06IHRoZSBzY2hlbWEgY29tcG9uZW50CisgKiBAYW5ub3Q6IHRoZSBhbm5vdGF0aW9uCisgKgorICogQWRkcyB0aGUgYW5ub3RhdGlvbiB0byB0aGUgZ2l2ZW4gc2NoZW1hIGNvbXBvbmVudC4KKyAqCisgKiBSZXR1cm5zIHRoZSBnaXZlbiBhbm5vdGFpb24uCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFBbm5vdFB0cgoreG1sU2NoZW1hQWRkQW5ub3RhdGlvbih4bWxTY2hlbWFBbm5vdEl0ZW1QdHIgYW5uSXRlbSwKKwkJICAgICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90KQoreworICAgIGlmICgoYW5uSXRlbSA9PSBOVUxMKSB8fCAoYW5ub3QgPT0gTlVMTCkpCisJcmV0dXJuIChOVUxMKTsKKyAgICBzd2l0Y2ggKGFubkl0ZW0tPnR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UOiB7CisJCXhtbFNjaGVtYUVsZW1lbnRQdHIgaXRlbSA9ICh4bWxTY2hlbWFFbGVtZW50UHRyKSBhbm5JdGVtOworCQlBRERfQU5OT1RBVElPTihhbm5vdCkKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEU6IHsKKwkJeG1sU2NoZW1hQXR0cmlidXRlUHRyIGl0ZW0gPSAoeG1sU2NoZW1hQXR0cmlidXRlUHRyKSBhbm5JdGVtOworCQlBRERfQU5OT1RBVElPTihhbm5vdCkKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FOWTogeworCQl4bWxTY2hlbWFXaWxkY2FyZFB0ciBpdGVtID0gKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSBhbm5JdGVtOworCQlBRERfQU5OT1RBVElPTihhbm5vdCkKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUY6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRTogeworCQl4bWxTY2hlbWFBbm5vdEl0ZW1QdHIgaXRlbSA9ICh4bWxTY2hlbWFBbm5vdEl0ZW1QdHIpIGFubkl0ZW07CisJCUFERF9BTk5PVEFUSU9OKGFubm90KQorCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQOiB7CisJCXhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIGl0ZW0gPQorCQkgICAgKHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyKSBhbm5JdGVtOworCQlBRERfQU5OT1RBVElPTihhbm5vdCkKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTjogeworCQl4bWxTY2hlbWFOb3RhdGlvblB0ciBpdGVtID0gKHhtbFNjaGVtYU5vdGF0aW9uUHRyKSBhbm5JdGVtOworCQlBRERfQU5OT1RBVElPTihhbm5vdCkKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkU6CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRToKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUzoKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM6CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1BBVFRFUk46CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEg6CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDoKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIOiB7CisJCXhtbFNjaGVtYUZhY2V0UHRyIGl0ZW0gPSAoeG1sU2NoZW1hRmFjZXRQdHIpIGFubkl0ZW07CisJCUFERF9BTk5PVEFUSU9OKGFubm90KQorCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRToKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOiB7CisJCXhtbFNjaGVtYVR5cGVQdHIgaXRlbSA9ICh4bWxTY2hlbWFUeXBlUHRyKSBhbm5JdGVtOworCQlBRERfQU5OT1RBVElPTihhbm5vdCkKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfVFlQRV9HUk9VUDogeworCQl4bWxTY2hlbWFNb2RlbEdyb3VwRGVmUHRyIGl0ZW0gPSAoeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cikgYW5uSXRlbTsKKwkJQUREX0FOTk9UQVRJT04oYW5ub3QpCisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0U6CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFOgorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FMTDogeworCQl4bWxTY2hlbWFNb2RlbEdyb3VwUHRyIGl0ZW0gPSAoeG1sU2NoZW1hTW9kZWxHcm91cFB0cikgYW5uSXRlbTsKKwkJQUREX0FOTk9UQVRJT04oYW5ub3QpCisJICAgIH0KKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgIHhtbFNjaGVtYVBDdXN0b21FcnIoTlVMTCwKKwkJWE1MX1NDSEVNQVBfSU5URVJOQUwsCisJCU5VTEwsIE5VTEwsCisJCSJJbnRlcm5hbCBlcnJvcjogeG1sU2NoZW1hQWRkQW5ub3RhdGlvbiwgIgorCQkiVGhlIGl0ZW0gaXMgbm90IGEgYW5ub3RhdGVkIHNjaGVtYSBjb21wb25lbnQiLCBOVUxMKTsKKwkgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gKGFubm90KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUlEQ1NlbGVjdG9yQW5kRmllbGQ6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBQYXJzZXMgYSBYTUwgU2NoZW1hIGlkZW50aXR5LWNvbnRyYWludCBkZWZpbml0aW9uJ3MKKyAqIDxzZWxlY3Rvcj4gYW5kIDxmaWVsZD4gZWxlbWVudHMuCisgKgorICogUmV0dXJucyB0aGUgcGFyc2VkIGlkZW50aXR5LWNvbnN0cmFpbnQgZGVmaW5pdGlvbi4KKyAqLworc3RhdGljIHhtbFNjaGVtYUlEQ1NlbGVjdFB0cgoreG1sU2NoZW1hUGFyc2VJRENTZWxlY3RvckFuZEZpZWxkKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCSAgeG1sU2NoZW1hSURDUHRyIGlkYywKKwkJCSAgeG1sTm9kZVB0ciBub2RlLAorCQkJICBpbnQgaXNGaWVsZCkKK3sKKyAgICB4bWxTY2hlbWFJRENTZWxlY3RQdHIgaXRlbTsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAieHBhdGgiKSkpIHsKKwkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJICAgIH0KKwl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpIHsKKwkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwl9CisJYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorICAgIC8qCisgICAgKiBDcmVhdGUgdGhlIGl0ZW0uCisgICAgKi8KKyAgICBpdGVtID0gKHhtbFNjaGVtYUlEQ1NlbGVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFJRENTZWxlY3QpKTsKKyAgICBpZiAoaXRlbSA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoY3R4dCwKKwkgICAgImFsbG9jYXRpbmcgYSAnc2VsZWN0b3InIG9mIGFuIGlkZW50aXR5LWNvbnN0cmFpbnQgZGVmaW5pdGlvbiIsCisJICAgIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoaXRlbSwgMCwgc2l6ZW9mKHhtbFNjaGVtYUlEQ1NlbGVjdCkpOworICAgIC8qCisgICAgKiBBdHRyaWJ1dGUgInhwYXRoIiAobWFuZGF0b3J5KS4KKyAgICAqLworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAieHBhdGgiKTsKKyAgICBpZiAoYXR0ciA9PSBOVUxMKSB7CisgICAgCXhtbFNjaGVtYVBNaXNzaW5nQXR0ckVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HLAorCSAgICBOVUxMLCBub2RlLAorCSAgICAibmFtZSIsIE5VTEwpOworICAgIH0gZWxzZSB7CisJaXRlbS0+eHBhdGggPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7CisJLyoKKwkqIFVSR0VOVCBUT0RPOiAiZmllbGQicyBoYXZlIGFuIG90aGVyIHN5bnRheCB0aGFuICJzZWxlY3RvciJzLgorCSovCisKKwlpZiAoeG1sU2NoZW1hQ2hlY2tDU2VsZWN0b3JYUGF0aChjdHh0LCBpZGMsIGl0ZW0sIGF0dHIsCisJICAgIGlzRmllbGQpID09IC0xKSB7CisJICAgIHhtbFNjaGVtYVBFcnIoY3R4dCwKKwkJKHhtbE5vZGVQdHIpIGF0dHIsCisJCVhNTF9TQ0hFTUFQX0lOVEVSTkFMLAorCQkiSW50ZXJuYWwgZXJyb3I6IHhtbFNjaGVtYVBhcnNlSURDU2VsZWN0b3JBbmRGaWVsZCwgIgorCQkidmFsaWRhdGluZyB0aGUgWFBhdGggZXhwcmVzc2lvbiBvZiBhIElEQyBzZWxlY3Rvci5cbiIsCisJCU5VTEwsIE5VTEwpOworCX0KKworICAgIH0KKyAgICB4bWxTY2hlbWFQVmFsQXR0cklEKGN0eHQsIG5vZGUsIEJBRF9DQVNUICJpZCIpOworICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworCS8qCisJKiBBZGQgdGhlIGFubm90YXRpb24gdG8gdGhlIHBhcmVudCBJREMuCisJKi8KKwl4bWxTY2hlbWFBZGRBbm5vdGF0aW9uKCh4bWxTY2hlbWFBbm5vdEl0ZW1QdHIpIGlkYywKKwkgICAgeG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKGN0eHQsIGNoaWxkLCAxKSk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkgICAgTlVMTCwgbm9kZSwgY2hpbGQsCisJICAgIE5VTEwsICIoYW5ub3RhdGlvbj8pIik7CisgICAgfQorCisgICAgcmV0dXJuIChpdGVtKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUlEQzoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIFBhcnNlcyBhIFhNTCBTY2hlbWEgaWRlbnRpdHktY29udHJhaW50IGRlZmluaXRpb24uCisgKgorICogUmV0dXJucyB0aGUgcGFyc2VkIGlkZW50aXR5LWNvbnN0cmFpbnQgZGVmaW5pdGlvbi4KKyAqLworc3RhdGljIHhtbFNjaGVtYUlEQ1B0cgoreG1sU2NoZW1hUGFyc2VJREMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkgIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCSAgeG1sTm9kZVB0ciBub2RlLAorCQkgIHhtbFNjaGVtYVR5cGVUeXBlIGlkY0NhdGVnb3J5LAorCQkgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZSkKK3sKKyAgICB4bWxTY2hlbWFJRENQdHIgaXRlbSA9IE5VTEw7CisgICAgeG1sTm9kZVB0ciBjaGlsZCA9IE5VTEw7CisgICAgeG1sQXR0clB0ciBhdHRyOworICAgIGNvbnN0IHhtbENoYXIgKm5hbWUgPSBOVUxMOworICAgIHhtbFNjaGVtYUlEQ1NlbGVjdFB0ciBmaWVsZCA9IE5VTEwsIGxhc3RGaWVsZCA9IE5VTEw7CisKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibmFtZSIpKSAmJgorCQkoKGlkY0NhdGVnb3J5ICE9IFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGKSB8fAorCQkgKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAicmVmZXIiKSkpKSB7CisJCXhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCSAgICB9CisJfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSB7CisJICAgIHhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJfQorCWF0dHIgPSBhdHRyLT5uZXh0OworICAgIH0KKyAgICAvKgorICAgICogQXR0cmlidXRlICJuYW1lIiAobWFuZGF0b3J5KS4KKyAgICAqLworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAibmFtZSIpOworICAgIGlmIChhdHRyID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQTWlzc2luZ0F0dHJFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTUlTU0lORywKKwkgICAgTlVMTCwgbm9kZSwKKwkgICAgIm5hbWUiLCBOVUxMKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0gZWxzZSBpZiAoeG1sU2NoZW1hUFZhbEF0dHJOb2RlKGN0eHQsCisJTlVMTCwgYXR0ciwKKwl4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19OQ05BTUUpLCAmbmFtZSkgIT0gMCkgeworCXJldHVybiAoTlVMTCk7CisgICAgfQorICAgIC8qIENyZWF0ZSB0aGUgY29tcG9uZW50LiAqLworICAgIGl0ZW0gPSB4bWxTY2hlbWFBZGRJREMoY3R4dCwgc2NoZW1hLCBuYW1lLCB0YXJnZXROYW1lc3BhY2UsCisJaWRjQ2F0ZWdvcnksIG5vZGUpOworICAgIGlmIChpdGVtID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKyAgICBpZiAoaWRjQ2F0ZWdvcnkgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpIHsKKwkvKgorCSogQXR0cmlidXRlICJyZWZlciIgKG1hbmRhdG9yeSkuCisJKi8KKwlhdHRyID0geG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgInJlZmVyIik7CisJaWYgKGF0dHIgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQTWlzc2luZ0F0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTUlTU0lORywKKwkJTlVMTCwgbm9kZSwKKwkJInJlZmVyIiwgTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiBDcmVhdGUgYSByZWZlcmVuY2UgaXRlbS4KKwkgICAgKi8KKwkgICAgaXRlbS0+cmVmID0geG1sU2NoZW1hTmV3UU5hbWVSZWYoY3R4dCwgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVksCisJCU5VTEwsIE5VTEwpOworCSAgICBpZiAoaXRlbS0+cmVmID09IE5VTEwpCisJCXJldHVybiAoTlVMTCk7CisJICAgIHhtbFNjaGVtYVBWYWxBdHRyTm9kZVFOYW1lKGN0eHQsIHNjaGVtYSwKKwkJTlVMTCwgYXR0ciwKKwkJJihpdGVtLT5yZWYtPnRhcmdldE5hbWVzcGFjZSksCisJCSYoaXRlbS0+cmVmLT5uYW1lKSk7CisJICAgIHhtbFNjaGVtYUNoZWNrUmVmZXJlbmNlKGN0eHQsIHNjaGVtYSwgbm9kZSwgYXR0ciwKKwkJaXRlbS0+cmVmLT50YXJnZXROYW1lc3BhY2UpOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIEFuZCBub3cgZm9yIHRoZSBjaGlsZHJlbi4uLgorICAgICovCisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisJaXRlbS0+YW5ub3QgPSB4bWxTY2hlbWFQYXJzZUFubm90YXRpb24oY3R4dCwgY2hpbGQsIDEpOworCWNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorICAgIGlmIChjaGlsZCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0VMRU1fTUlTU0lORywKKwkJTlVMTCwgbm9kZSwgY2hpbGQsCisJCSJBIGNoaWxkIGVsZW1lbnQgaXMgbWlzc2luZyIsCisJCSIoYW5ub3RhdGlvbj8sIChzZWxlY3RvciwgZmllbGQrKSkiKTsKKyAgICB9CisgICAgLyoKKyAgICAqIENoaWxkIGVsZW1lbnQgPHNlbGVjdG9yPi4KKyAgICAqLworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJzZWxlY3RvciIpKSB7CisJaXRlbS0+c2VsZWN0b3IgPSB4bWxTY2hlbWFQYXJzZUlEQ1NlbGVjdG9yQW5kRmllbGQoY3R4dCwKKwkgICAgaXRlbSwgY2hpbGQsIDApOworCWNoaWxkID0gY2hpbGQtPm5leHQ7CisJLyoKKwkqIENoaWxkIGVsZW1lbnRzIDxmaWVsZD4uCisJKi8KKwlpZiAoSVNfU0NIRU1BKGNoaWxkLCAiZmllbGQiKSkgeworCSAgICBkbyB7CisJCWZpZWxkID0geG1sU2NoZW1hUGFyc2VJRENTZWxlY3RvckFuZEZpZWxkKGN0eHQsCisJCSAgICBpdGVtLCBjaGlsZCwgMSk7CisJCWlmIChmaWVsZCAhPSBOVUxMKSB7CisJCSAgICBmaWVsZC0+aW5kZXggPSBpdGVtLT5uYkZpZWxkczsKKwkJICAgIGl0ZW0tPm5iRmllbGRzKys7CisJCSAgICBpZiAobGFzdEZpZWxkICE9IE5VTEwpCisJCQlsYXN0RmllbGQtPm5leHQgPSBmaWVsZDsKKwkJICAgIGVsc2UKKwkJCWl0ZW0tPmZpZWxkcyA9IGZpZWxkOworCQkgICAgbGFzdEZpZWxkID0gZmllbGQ7CisJCX0KKwkJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwkgICAgfSB3aGlsZSAoSVNfU0NIRU1BKGNoaWxkLCAiZmllbGQiKSk7CisJfSBlbHNlIHsKKwkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJCU5VTEwsIG5vZGUsIGNoaWxkLAorCQlOVUxMLCAiKGFubm90YXRpb24/LCAoc2VsZWN0b3IsIGZpZWxkKykpIik7CisJfQorICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwKKwkgICAgTlVMTCwgIihhbm5vdGF0aW9uPywgKHNlbGVjdG9yLCBmaWVsZCspKSIpOworICAgIH0KKworICAgIHJldHVybiAoaXRlbSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VFbGVtZW50OgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKiBAdG9wTGV2ZWw6IGluZGljYXRlcyBpZiB0aGlzIGlzIGdsb2JhbCBkZWNsYXJhdGlvbgorICoKKyAqIFBhcnNlcyBhIFhNTCBzY2hlbWEgZWxlbWVudCBkZWNsYXJhdGlvbi4KKyAqICpXQVJOSU5HKiB0aGlzIGludGVyZmFjZSBpcyBoaWdobHkgc3ViamVjdCB0byBjaGFuZ2UKKyAqCisgKiBSZXR1cm5zIHRoZSBlbGVtZW50IGRlY2xhcmF0aW9uIG9yIGEgcGFydGljbGU7IE5VTEwgaW4gY2FzZQorICogb2YgYW4gZXJyb3Igb3IgaWYgdGhlIHBhcnRpY2xlIGhhcyBtaW5PY2N1cnM9PW1heE9jY3Vycz09MC4KKyAqLworc3RhdGljIHhtbFNjaGVtYUJhc2ljSXRlbVB0cgoreG1sU2NoZW1hUGFyc2VFbGVtZW50KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKyAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUsIGludCAqaXNFbGVtUmVmLCBpbnQgdG9wTGV2ZWwpCit7CisgICAgeG1sU2NoZW1hRWxlbWVudFB0ciBkZWNsID0gTlVMTDsKKyAgICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciBwYXJ0aWNsZSA9IE5VTEw7CisgICAgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3QgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0ciwgbmFtZUF0dHI7CisgICAgaW50IG1pbiwgbWF4LCBpc1JlZiA9IDA7CisgICAgeG1sQ2hhciAqZGVzID0gTlVMTDsKKworICAgIC8qIDMuMy4zIENvbnN0cmFpbnRzIG9uIFhNTCBSZXByZXNlbnRhdGlvbnMgb2YgRWxlbWVudCBEZWNsYXJhdGlvbnMgKi8KKyAgICAvKiBUT0RPOiBDb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiAzLjMuNiAqLworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBpZiAoaXNFbGVtUmVmICE9IE5VTEwpCisJKmlzRWxlbVJlZiA9IDA7CisgICAgLyoKKyAgICAqIElmIHdlIGdldCBhICJyZWYiIGF0dHJpYnV0ZSBvbiBhIGxvY2FsIDxlbGVtZW50PiB3ZSB3aWxsIGFzc3VtZSBpdCdzCisgICAgKiBhIHJlZmVyZW5jZSAtIGV2ZW4gaWYgdGhlcmUncyBhICJuYW1lIiBhdHRyaWJ1dGU7IHRoaXMgc2VlbXMgdG8gYmUgbW9yZQorICAgICogcm9idXN0LgorICAgICovCisgICAgbmFtZUF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAibmFtZSIpOworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAicmVmIik7CisgICAgaWYgKCh0b3BMZXZlbCkgfHwgKGF0dHIgPT0gTlVMTCkpIHsKKwlpZiAobmFtZUF0dHIgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQTWlzc2luZ0F0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTUlTU0lORywKKwkJTlVMTCwgbm9kZSwgIm5hbWUiLCBOVUxMKTsKKwkgICAgcmV0dXJuIChOVUxMKTsKKwl9CisgICAgfSBlbHNlCisJaXNSZWYgPSAxOworCisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKwlhbm5vdCA9IHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgLyoKKyAgICAqIFNraXAgcGFydGljbGUgcGFydCBpZiBhIGdsb2JhbCBkZWNsYXJhdGlvbi4KKyAgICAqLworICAgIGlmICh0b3BMZXZlbCkKKwlnb3RvIGRlY2xhcmF0aW9uX3BhcnQ7CisgICAgLyoKKyAgICAqIFRoZSBwYXJ0aWNsZSBwYXJ0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgKi8KKyAgICBtaW4gPSB4bWxHZXRNaW5PY2N1cnMoY3R4dCwgbm9kZSwgMCwgLTEsIDEsICJ4czpub25OZWdhdGl2ZUludGVnZXIiKTsKKyAgICBtYXggPSB4bWxHZXRNYXhPY2N1cnMoY3R4dCwgbm9kZSwgMCwgVU5CT1VOREVELCAxLCAiKHhzOm5vbk5lZ2F0aXZlSW50ZWdlciB8IHVuYm91bmRlZCkiKTsKKyAgICB4bWxTY2hlbWFQQ2hlY2tQYXJ0aWNsZUNvcnJlY3RfMihjdHh0LCBOVUxMLCBub2RlLCBtaW4sIG1heCk7CisgICAgcGFydGljbGUgPSB4bWxTY2hlbWFBZGRQYXJ0aWNsZShjdHh0LCBub2RlLCBtaW4sIG1heCk7CisgICAgaWYgKHBhcnRpY2xlID09IE5VTEwpCisJZ290byByZXR1cm5fbnVsbDsKKworICAgIC8qIHJldC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfRUxFTV9SRUY7ICovCisKKyAgICBpZiAoaXNSZWYpIHsKKwljb25zdCB4bWxDaGFyICpyZWZOcyA9IE5VTEwsICpyZWYgPSBOVUxMOworCXhtbFNjaGVtYVFOYW1lUmVmUHRyIHJlZmVyID0gTlVMTDsKKwkvKgorCSogVGhlIHJlZmVyZW5jZSBwYXJ0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCSovCisJaWYgKGlzRWxlbVJlZiAhPSBOVUxMKQorCSAgICAqaXNFbGVtUmVmID0gMTsKKworCXhtbFNjaGVtYVBWYWxBdHRyTm9kZVFOYW1lKGN0eHQsIHNjaGVtYSwKKwkgICAgTlVMTCwgYXR0ciwgJnJlZk5zLCAmcmVmKTsKKwl4bWxTY2hlbWFDaGVja1JlZmVyZW5jZShjdHh0LCBzY2hlbWEsIG5vZGUsIGF0dHIsIHJlZk5zKTsKKwkvKgorCSogU1BFQyAoMy4zLjMgOiAyLjEpICJPbmUgb2YgcmVmIG9yIG5hbWUgbXVzdCBiZSBwcmVzZW50LCBidXQgbm90IGJvdGgiCisJKi8KKwlpZiAobmFtZUF0dHIgIT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQTXV0dWFsRXhjbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMl8xLCBOVUxMLCBuYW1lQXR0ciwgInJlZiIsICJuYW1lIik7CisJfQorCS8qCisJKiBDaGVjayBmb3IgaWxsZWdhbCBhdHRyaWJ1dGVzLgorCSovCisJYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisJd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCSAgICBpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCQlpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInJlZiIpIHx8CisJCSAgICB4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibmFtZSIpIHx8CisJCSAgICB4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSB8fAorCQkgICAgeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm1heE9jY3VycyIpIHx8CisJCSAgICB4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibWluT2NjdXJzIikpCisJCXsKKwkJICAgIGF0dHIgPSBhdHRyLT5uZXh0OworCQkgICAgY29udGludWU7CisJCX0gZWxzZSB7CisJCSAgICAvKiBTUEVDICgzLjMuMyA6IDIuMikgKi8KKwkJICAgIHhtbFNjaGVtYVBDdXN0b21BdHRyRXJyKGN0eHQsCisJCQlYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8yXzIsCisJCQlOVUxMLCBOVUxMLCBhdHRyLAorCQkJIk9ubHkgdGhlIGF0dHJpYnV0ZXMgJ21pbk9jY3VycycsICdtYXhPY2N1cnMnIGFuZCAiCisJCQkiJ2lkJyBhcmUgYWxsb3dlZCBpbiBhZGRpdGlvbiB0byAncmVmJyIpOworCQkgICAgYnJlYWs7CisJCX0KKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSB7CisJCXhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCSAgICB9CisJICAgIGF0dHIgPSBhdHRyLT5uZXh0OworCX0KKwkvKgorCSogTm8gY2hpbGRyZW4gZXhjZXB0IDxhbm5vdGF0aW9uPiBleHBlY3RlZC4KKwkqLworCWlmIChjaGlsZCAhPSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCQlOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwgIihhbm5vdGF0aW9uPykiKTsKKwl9CisJaWYgKChtaW4gPT0gMCkgJiYgKG1heCA9PSAwKSkKKwkgICAgZ290byByZXR1cm5fbnVsbDsKKwkvKgorCSogQ3JlYXRlIHRoZSByZWZlcmVuY2UgaXRlbSBhbmQgYXR0YWNoIGl0IHRvIHRoZSBwYXJ0aWNsZS4KKwkqLworCXJlZmVyID0geG1sU2NoZW1hTmV3UU5hbWVSZWYoY3R4dCwgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQsCisJICAgIHJlZiwgcmVmTnMpOworCWlmIChyZWZlciA9PSBOVUxMKQorCSAgICBnb3RvIHJldHVybl9udWxsOworCXBhcnRpY2xlLT5jaGlsZHJlbiA9ICh4bWxTY2hlbWFUcmVlSXRlbVB0cikgcmVmZXI7CisJcGFydGljbGUtPmFubm90ID0gYW5ub3Q7CisJLyoKKwkqIEFkZCB0aGUgcGFydGljbGUgdG8gcGVuZGluZyBjb21wb25lbnRzLCBzaW5jZSB0aGUgcmVmZXJlbmNlCisJKiBuZWVkIHRvIGJlIHJlc29sdmVkLgorCSovCisJV1hTX0FERF9QRU5ESU5HKGN0eHQsIHBhcnRpY2xlKTsKKwlyZXR1cm4gKCh4bWxTY2hlbWFCYXNpY0l0ZW1QdHIpIHBhcnRpY2xlKTsKKyAgICB9CisgICAgLyoKKyAgICAqIFRoZSBkZWNsYXJhdGlvbiBwYXJ0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgKi8KK2RlY2xhcmF0aW9uX3BhcnQ6CisgICAgeworCWNvbnN0IHhtbENoYXIgKm5zID0gTlVMTCwgKmZpeGVkLCAqbmFtZSwgKmF0dHJWYWx1ZTsKKwl4bWxTY2hlbWFJRENQdHIgY3VySURDID0gTlVMTCwgbGFzdElEQyA9IE5VTEw7CisKKwlpZiAoeG1sU2NoZW1hUFZhbEF0dHJOb2RlKGN0eHQsIE5VTEwsIG5hbWVBdHRyLAorCSAgICB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19OQ05BTUUpLCAmbmFtZSkgIT0gMCkKKwkgICAgZ290byByZXR1cm5fbnVsbDsKKwkvKgorCSogRXZhbHVhdGUgdGhlIHRhcmdldCBuYW1lc3BhY2UuCisJKi8KKwlpZiAodG9wTGV2ZWwpIHsKKwkgICAgbnMgPSBjdHh0LT50YXJnZXROYW1lc3BhY2U7CisJfSBlbHNlIHsKKwkgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJmb3JtIik7CisJICAgIGlmIChhdHRyICE9IE5VTEwpIHsKKwkJYXR0clZhbHVlID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnQoY3R4dCwgKHhtbE5vZGVQdHIpIGF0dHIpOworCQlpZiAoeG1sU3RyRXF1YWwoYXR0clZhbHVlLCBCQURfQ0FTVCAicXVhbGlmaWVkIikpIHsKKwkJICAgIG5zID0gY3R4dC0+dGFyZ2V0TmFtZXNwYWNlOworCQl9IGVsc2UgaWYgKCF4bWxTdHJFcXVhbChhdHRyVmFsdWUsIEJBRF9DQVNUICJ1bnF1YWxpZmllZCIpKSB7CisJCSAgICB4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihjdHh0LAorCQkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkJCU5VTEwsICh4bWxOb2RlUHRyKSBhdHRyLAorCQkJTlVMTCwgIihxdWFsaWZpZWQgfCB1bnF1YWxpZmllZCkiLAorCQkJYXR0clZhbHVlLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJfQorCSAgICB9IGVsc2UgaWYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19RVUFMSUZfRUxFTSkKKwkJbnMgPSBjdHh0LT50YXJnZXROYW1lc3BhY2U7CisJfQorCWRlY2wgPSB4bWxTY2hlbWFBZGRFbGVtZW50KGN0eHQsIG5hbWUsIG5zLCBub2RlLCB0b3BMZXZlbCk7CisJaWYgKGRlY2wgPT0gTlVMTCkgeworCSAgICBnb3RvIHJldHVybl9udWxsOworCX0KKwkvKgorCSogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKwkqLworCWF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworCXdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkgICAgaWYgKGF0dHItPm5zID09IE5VTEwpIHsKKwkJaWYgKCgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm5hbWUiKSkgJiYKKwkJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInR5cGUiKSkgJiYKKwkJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpICYmCisJCSAgICAoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJkZWZhdWx0IikpICYmCisJCSAgICAoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJmaXhlZCIpKSAmJgorCQkgICAgKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiYmxvY2siKSkgJiYKKwkJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm5pbGxhYmxlIikpKQorCQl7CisJCSAgICBpZiAodG9wTGV2ZWwgPT0gMCkgeworCQkJaWYgKCgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm1heE9jY3VycyIpKSAmJgorCQkJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm1pbk9jY3VycyIpKSAmJgorCQkJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImZvcm0iKSkpCisJCQl7CisJCQkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCQkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCQkJfQorCQkgICAgfSBlbHNlIGlmICgoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJmaW5hbCIpKSAmJgorCQkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiYWJzdHJhY3QiKSkgJiYKKwkJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgInN1YnN0aXR1dGlvbkdyb3VwIikpKSB7CisKKwkJCXhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkJICAgIH0KKwkJfQorCSAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpIHsKKworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCSAgICBhdHRyID0gYXR0ci0+bmV4dDsKKwl9CisJLyoKKwkqIEV4dHJhY3QvdmFsaWRhdGUgYXR0cmlidXRlcy4KKwkqLworCWlmICh0b3BMZXZlbCkgeworCSAgICAvKgorCSAgICAqIFByb2Nlc3MgdG9wIGF0dHJpYnV0ZXMgb2YgZ2xvYmFsIGVsZW1lbnQgZGVjbGFyYXRpb25zIGhlcmUuCisJICAgICovCisJICAgIGRlY2wtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0VMRU1fR0xPQkFMOworCSAgICBkZWNsLT5mbGFncyB8PSBYTUxfU0NIRU1BU19FTEVNX1RPUExFVkVMOworCSAgICB4bWxTY2hlbWFQVmFsQXR0clFOYW1lKGN0eHQsIHNjaGVtYSwKKwkJTlVMTCwgbm9kZSwgInN1YnN0aXR1dGlvbkdyb3VwIiwKKwkJJihkZWNsLT5zdWJzdEdyb3VwTnMpLCAmKGRlY2wtPnN1YnN0R3JvdXApKTsKKwkgICAgaWYgKHhtbEdldEJvb2xlYW5Qcm9wKGN0eHQsIG5vZGUsICJhYnN0cmFjdCIsIDApKQorCQlkZWNsLT5mbGFncyB8PSBYTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUOworCSAgICAvKgorCSAgICAqIEF0dHJpYnV0ZSAiZmluYWwiLgorCSAgICAqLworCSAgICBhdHRyID0geG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgImZpbmFsIik7CisJICAgIGlmIChhdHRyID09IE5VTEwpIHsKKwkJaWYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTikKKwkJICAgIGRlY2wtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfRVhURU5TSU9OOworCQlpZiAoc2NoZW1hLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04pCisJCSAgICBkZWNsLT5mbGFncyB8PSBYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OOworCSAgICB9IGVsc2UgeworCQlhdHRyVmFsdWUgPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7CisJCWlmICh4bWxTY2hlbWFQVmFsQXR0ckJsb2NrRmluYWwoYXR0clZhbHVlLCAmKGRlY2wtPmZsYWdzKSwKKwkJICAgIC0xLAorCQkgICAgWE1MX1NDSEVNQVNfRUxFTV9GSU5BTF9FWFRFTlNJT04sCisJCSAgICBYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX1JFU1RSSUNUSU9OLCAtMSwgLTEsIC0xKSAhPSAwKSB7CisJCSAgICB4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihjdHh0LAorCQkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkJCU5VTEwsICh4bWxOb2RlUHRyKSBhdHRyLAorCQkJTlVMTCwgIigjYWxsIHwgTGlzdCBvZiAoZXh0ZW5zaW9uIHwgcmVzdHJpY3Rpb24pKSIsCisJCQlhdHRyVmFsdWUsIE5VTEwsIE5VTEwsIE5VTEwpOworCQl9CisJICAgIH0KKwl9CisJLyoKKwkqIEF0dHJpYnV0ZSAiYmxvY2siLgorCSovCisJYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJibG9jayIpOworCWlmIChhdHRyID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBBcHBseSBkZWZhdWx0ICJibG9jayIgdmFsdWVzLgorCSAgICAqLworCSAgICBpZiAoc2NoZW1hLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfUkVTVFJJQ1RJT04pCisJCWRlY2wtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT047CisJICAgIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT04pCisJCWRlY2wtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OOworCSAgICBpZiAoc2NoZW1hLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OKQorCQlkZWNsLT5mbGFncyB8PSBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTjsKKwl9IGVsc2UgeworCSAgICBhdHRyVmFsdWUgPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7CisJICAgIGlmICh4bWxTY2hlbWFQVmFsQXR0ckJsb2NrRmluYWwoYXR0clZhbHVlLCAmKGRlY2wtPmZsYWdzKSwKKwkJLTEsCisJCVhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfRVhURU5TSU9OLAorCQlYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OLAorCQlYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1NVQlNUSVRVVElPTiwgLTEsIC0xKSAhPSAwKSB7CisJCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCQkgICAgTlVMTCwgKHhtbE5vZGVQdHIpIGF0dHIsCisJCSAgICBOVUxMLCAiKCNhbGwgfCBMaXN0IG9mIChleHRlbnNpb24gfCAiCisJCSAgICAicmVzdHJpY3Rpb24gfCBzdWJzdGl0dXRpb24pKSIsIGF0dHJWYWx1ZSwKKwkJICAgIE5VTEwsIE5VTEwsIE5VTEwpOworCSAgICB9CisJfQorCWlmICh4bWxHZXRCb29sZWFuUHJvcChjdHh0LCBub2RlLCAibmlsbGFibGUiLCAwKSkKKwkgICAgZGVjbC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRTsKKworCWF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAidHlwZSIpOworCWlmIChhdHRyICE9IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUFZhbEF0dHJOb2RlUU5hbWUoY3R4dCwgc2NoZW1hLAorCQlOVUxMLCBhdHRyLAorCQkmKGRlY2wtPm5hbWVkVHlwZU5zKSwgJihkZWNsLT5uYW1lZFR5cGUpKTsKKwkgICAgeG1sU2NoZW1hQ2hlY2tSZWZlcmVuY2UoY3R4dCwgc2NoZW1hLCBub2RlLAorCQlhdHRyLCBkZWNsLT5uYW1lZFR5cGVOcyk7CisJfQorCWRlY2wtPnZhbHVlID0geG1sU2NoZW1hR2V0UHJvcChjdHh0LCBub2RlLCAiZGVmYXVsdCIpOworCWF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAiZml4ZWQiKTsKKwlpZiAoYXR0ciAhPSBOVUxMKSB7CisJICAgIGZpeGVkID0geG1sU2NoZW1hR2V0Tm9kZUNvbnRlbnQoY3R4dCwgKHhtbE5vZGVQdHIpIGF0dHIpOworCSAgICBpZiAoZGVjbC0+dmFsdWUgIT0gTlVMTCkgeworCQkvKgorCQkqIDMuMy4zIDogMQorCQkqIGRlZmF1bHQgYW5kIGZpeGVkIG11c3Qgbm90IGJvdGggYmUgcHJlc2VudC4KKwkJKi8KKwkJeG1sU2NoZW1hUE11dHVhbEV4Y2xBdHRyRXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TUkNfRUxFTUVOVF8xLAorCQkgICAgTlVMTCwgYXR0ciwgImRlZmF1bHQiLCAiZml4ZWQiKTsKKwkgICAgfSBlbHNlIHsKKwkJZGVjbC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfRUxFTV9GSVhFRDsKKwkJZGVjbC0+dmFsdWUgPSBmaXhlZDsKKwkgICAgfQorCX0KKwkvKgorCSogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisJKi8KKwlpZiAoSVNfU0NIRU1BKGNoaWxkLCAiY29tcGxleFR5cGUiKSkgeworCSAgICAvKgorCSAgICAqIDMuMy4zIDogMworCSAgICAqICJ0eXBlIiBhbmQgZWl0aGVyIDxzaW1wbGVUeXBlPiBvciA8Y29tcGxleFR5cGU+IGFyZSBtdXR1YWxseQorCSAgICAqIGV4Y2x1c2l2ZQorCSAgICAqLworCSAgICBpZiAoZGVjbC0+bmFtZWRUeXBlICE9IE5VTEwpIHsKKwkJeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1NSQ19FTEVNRU5UXzMsCisJCSAgICBOVUxMLCBub2RlLCBjaGlsZCwKKwkJICAgICJUaGUgYXR0cmlidXRlICd0eXBlJyBhbmQgdGhlIDxjb21wbGV4VHlwZT4gY2hpbGQgYXJlICIKKwkJICAgICJtdXR1YWxseSBleGNsdXNpdmUiLCBOVUxMKTsKKwkgICAgfSBlbHNlCisJCVdYU19FTEVNX1RZUEVERUYoZGVjbCkgPSB4bWxTY2hlbWFQYXJzZUNvbXBsZXhUeXBlKGN0eHQsIHNjaGVtYSwgY2hpbGQsIDApOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAic2ltcGxlVHlwZSIpKSB7CisJICAgIC8qCisJICAgICogMy4zLjMgOiAzCisJICAgICogInR5cGUiIGFuZCBlaXRoZXIgPHNpbXBsZVR5cGU+IG9yIDxjb21wbGV4VHlwZT4gYXJlCisJICAgICogbXV0dWFsbHkgZXhjbHVzaXZlCisJICAgICovCisJICAgIGlmIChkZWNsLT5uYW1lZFR5cGUgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfU1JDX0VMRU1FTlRfMywKKwkJICAgIE5VTEwsIG5vZGUsIGNoaWxkLAorCQkgICAgIlRoZSBhdHRyaWJ1dGUgJ3R5cGUnIGFuZCB0aGUgPHNpbXBsZVR5cGU+IGNoaWxkIGFyZSAiCisJCSAgICAibXV0dWFsbHkgZXhjbHVzaXZlIiwgTlVMTCk7CisJICAgIH0gZWxzZQorCQlXWFNfRUxFTV9UWVBFREVGKGRlY2wpID0geG1sU2NoZW1hUGFyc2VTaW1wbGVUeXBlKGN0eHQsIHNjaGVtYSwgY2hpbGQsIDApOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKwl3aGlsZSAoKElTX1NDSEVNQShjaGlsZCwgInVuaXF1ZSIpKSB8fAorCSAgICAoSVNfU0NIRU1BKGNoaWxkLCAia2V5IikpIHx8IChJU19TQ0hFTUEoY2hpbGQsICJrZXlyZWYiKSkpIHsKKwkgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgInVuaXF1ZSIpKSB7CisJCWN1cklEQyA9IHhtbFNjaGVtYVBhcnNlSURDKGN0eHQsIHNjaGVtYSwgY2hpbGQsCisJCSAgICBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRSwgZGVjbC0+dGFyZ2V0TmFtZXNwYWNlKTsKKwkgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJrZXkiKSkgeworCQljdXJJREMgPSB4bWxTY2hlbWFQYXJzZUlEQyhjdHh0LCBzY2hlbWEsIGNoaWxkLAorCQkgICAgWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVksIGRlY2wtPnRhcmdldE5hbWVzcGFjZSk7CisJICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAia2V5cmVmIikpIHsKKwkJY3VySURDID0geG1sU2NoZW1hUGFyc2VJREMoY3R4dCwgc2NoZW1hLCBjaGlsZCwKKwkJICAgIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGLCBkZWNsLT50YXJnZXROYW1lc3BhY2UpOworCSAgICB9CisJICAgIGlmIChsYXN0SURDICE9IE5VTEwpCisJCWxhc3RJREMtPm5leHQgPSBjdXJJREM7CisJICAgIGVsc2UKKwkJZGVjbC0+aWRjcyA9ICh2b2lkICopIGN1cklEQzsKKwkgICAgbGFzdElEQyA9IGN1cklEQzsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9CisJaWYgKGNoaWxkICE9IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJCU5VTEwsIG5vZGUsIGNoaWxkLAorCQlOVUxMLCAiKGFubm90YXRpb24/LCAoKHNpbXBsZVR5cGUgfCBjb21wbGV4VHlwZSk/LCAiCisJCSIodW5pcXVlIHwga2V5IHwga2V5cmVmKSopKSIpOworCX0KKwlkZWNsLT5hbm5vdCA9IGFubm90OworICAgIH0KKyAgICAvKgorICAgICogTk9URTogRWxlbWVudCBEZWNsYXJhdGlvbiBSZXByZXNlbnRhdGlvbiBPSyA0LiB3aWxsIGJlIGNoZWNrZWQgYXQgYQorICAgICogZGlmZmVyZW50IGxheWVyLgorICAgICovCisgICAgRlJFRV9BTkRfTlVMTChkZXMpCisgICAgaWYgKHRvcExldmVsKQorCXJldHVybiAoKHhtbFNjaGVtYUJhc2ljSXRlbVB0cikgZGVjbCk7CisgICAgZWxzZSB7CisJcGFydGljbGUtPmNoaWxkcmVuID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyKSBkZWNsOworCXJldHVybiAoKHhtbFNjaGVtYUJhc2ljSXRlbVB0cikgcGFydGljbGUpOworICAgIH0KKworcmV0dXJuX251bGw6CisgICAgRlJFRV9BTkRfTlVMTChkZXMpOworICAgIGlmIChhbm5vdCAhPSBOVUxMKSB7CisJaWYgKHBhcnRpY2xlICE9IE5VTEwpCisJICAgIHBhcnRpY2xlLT5hbm5vdCA9IE5VTEw7CisJaWYgKGRlY2wgIT0gTlVMTCkKKwkgICAgZGVjbC0+YW5ub3QgPSBOVUxMOworCXhtbFNjaGVtYUZyZWVBbm5vdChhbm5vdCk7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VVbmlvbjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBVbmlvbiBkZWZpbml0aW9uCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGludGVybmFsIGVycm9yLCAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgYSBwb3NpdGl2ZQorICogZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBhcnNlVW5pb24oeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlOworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIgPSBOVUxMOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworICAgIC8qIE5vdCBhIGNvbXBvbmVudCwgZG9uJ3QgY3JlYXRlIGl0LiAqLworICAgIHR5cGUgPSBjdHh0LT5jdHh0VHlwZTsKKyAgICAvKgorICAgICogTWFyayB0aGUgc2ltcGxlIHR5cGUgYXMgYmVpbmcgb2YgdmFyaWV0eSAidW5pb24iLgorICAgICovCisgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX1VOSU9OOworICAgIC8qCisgICAgKiBTUEVDIChCYXNlIHR5cGUpICgyKSAiSWYgdGhlIDxsaXN0PiBvciA8dW5pb24+IGFsdGVybmF0aXZlIGlzIGNob3NlbiwKKyAgICAqIHRoZW4gdGhlIO+/vXNpbXBsZSB1ci10eXBlIGRlZmluaXRpb27vv70uIgorICAgICovCisgICAgdHlwZS0+YmFzZVR5cGUgPSB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFKTsKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibWVtYmVyVHlwZXMiKSkpIHsKKwkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJICAgIH0KKwl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpIHsKKwkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwl9CisJYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorICAgIHhtbFNjaGVtYVBWYWxBdHRySUQoY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisgICAgLyoKKyAgICAqIEF0dHJpYnV0ZSAibWVtYmVyVHlwZXMiLiBUaGlzIGlzIGEgbGlzdCBvZiBRTmFtZXMuCisgICAgKiBUT0RPOiBDaGVjayB0aGUgdmFsdWUgdG8gY29udGFpbiBhbnl0aGluZy4KKyAgICAqLworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAibWVtYmVyVHlwZXMiKTsKKyAgICBpZiAoYXR0ciAhPSBOVUxMKSB7CisJY29uc3QgeG1sQ2hhciAqZW5kOworCXhtbENoYXIgKnRtcDsKKwljb25zdCB4bWxDaGFyICpsb2NhbE5hbWUsICpuc05hbWU7CisJeG1sU2NoZW1hVHlwZUxpbmtQdHIgbGluaywgbGFzdExpbmsgPSBOVUxMOworCXhtbFNjaGVtYVFOYW1lUmVmUHRyIHJlZjsKKworCWN1ciA9IHhtbFNjaGVtYUdldE5vZGVDb250ZW50KGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyKTsKKwl0eXBlLT5iYXNlID0gY3VyOworCWRvIHsKKwkgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKQorCQljdXIrKzsKKwkgICAgZW5kID0gY3VyOworCSAgICB3aGlsZSAoKCplbmQgIT0gMCkgJiYgKCEoSVNfQkxBTktfQ0goKmVuZCkpKSkKKwkJZW5kKys7CisJICAgIGlmIChlbmQgPT0gY3VyKQorCQlicmVhazsKKwkgICAgdG1wID0geG1sU3RybmR1cChjdXIsIGVuZCAtIGN1cik7CisJICAgIGlmICh4bWxTY2hlbWFQVmFsQXR0ck5vZGVRTmFtZVZhbHVlKGN0eHQsIHNjaGVtYSwKKwkJTlVMTCwgYXR0ciwgQkFEX0NBU1QgdG1wLCAmbnNOYW1lLCAmbG9jYWxOYW1lKSA9PSAwKSB7CisJCS8qCisJCSogQ3JlYXRlIHRoZSBtZW1iZXIgdHlwZSBsaW5rLgorCQkqLworCQlsaW5rID0gKHhtbFNjaGVtYVR5cGVMaW5rUHRyKQorCQkgICAgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFUeXBlTGluaykpOworCQlpZiAobGluayA9PSBOVUxMKSB7CisJCSAgICB4bWxTY2hlbWFQRXJyTWVtb3J5KGN0eHQsICJ4bWxTY2hlbWFQYXJzZVVuaW9uLCAiCisJCQkiYWxsb2NhdGluZyBhIHR5cGUgbGluayIsIE5VTEwpOworCQkgICAgcmV0dXJuICgtMSk7CisJCX0KKwkJbGluay0+dHlwZSA9IE5VTEw7CisJCWxpbmstPm5leHQgPSBOVUxMOworCQlpZiAobGFzdExpbmsgPT0gTlVMTCkKKwkJICAgIHR5cGUtPm1lbWJlclR5cGVzID0gbGluazsKKwkJZWxzZQorCQkgICAgbGFzdExpbmstPm5leHQgPSBsaW5rOworCQlsYXN0TGluayA9IGxpbms7CisJCS8qCisJCSogQ3JlYXRlIGEgcmVmZXJlbmNlIGl0ZW0uCisJCSovCisJCXJlZiA9IHhtbFNjaGVtYU5ld1FOYW1lUmVmKGN0eHQsIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEUsCisJCSAgICBsb2NhbE5hbWUsIG5zTmFtZSk7CisJCWlmIChyZWYgPT0gTlVMTCkgeworCQkgICAgRlJFRV9BTkRfTlVMTCh0bXApCisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCQkvKgorCQkqIEFzc2lnbiB0aGUgcmVmZXJlbmNlIHRvIHRoZSBsaW5rLCBpdCB3aWxsIGJlIHJlc29sdmVkCisJCSogbGF0ZXIgZHVyaW5nIGZpeHVwIG9mIHRoZSB1bmlvbiBzaW1wbGUgdHlwZS4KKwkJKi8KKwkJbGluay0+dHlwZSA9ICh4bWxTY2hlbWFUeXBlUHRyKSByZWY7CisJICAgIH0KKwkgICAgRlJFRV9BTkRfTlVMTCh0bXApCisJICAgIGN1ciA9IGVuZDsKKwl9IHdoaWxlICgqY3VyICE9IDApOworCisgICAgfQorICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworCS8qCisJKiBBZGQgdGhlIGFubm90YXRpb24gdG8gdGhlIHNpbXBsZSB0eXBlIGFuY2VzdG9yLgorCSovCisJeG1sU2NoZW1hQWRkQW5ub3RhdGlvbigoeG1sU2NoZW1hQW5ub3RJdGVtUHRyKSB0eXBlLAorCSAgICB4bWxTY2hlbWFQYXJzZUFubm90YXRpb24oY3R4dCwgY2hpbGQsIDEpKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgInNpbXBsZVR5cGUiKSkgeworCXhtbFNjaGVtYVR5cGVQdHIgc3VidHlwZSwgbGFzdCA9IE5VTEw7CisKKwkvKgorCSogQW5jaG9yIHRoZSBtZW1iZXIgdHlwZXMgaW4gdGhlICJzdWJ0eXBlcyIgZmllbGQgb2YgdGhlCisJKiBzaW1wbGUgdHlwZS4KKwkqLworCXdoaWxlIChJU19TQ0hFTUEoY2hpbGQsICJzaW1wbGVUeXBlIikpIHsKKwkgICAgc3VidHlwZSA9ICh4bWxTY2hlbWFUeXBlUHRyKQorCQl4bWxTY2hlbWFQYXJzZVNpbXBsZVR5cGUoY3R4dCwgc2NoZW1hLCBjaGlsZCwgMCk7CisJICAgIGlmIChzdWJ0eXBlICE9IE5VTEwpIHsKKwkJaWYgKGxhc3QgPT0gTlVMTCkgeworCQkgICAgdHlwZS0+c3VidHlwZXMgPSBzdWJ0eXBlOworCQkgICAgbGFzdCA9IHN1YnR5cGU7CisJCX0gZWxzZSB7CisJCSAgICBsYXN0LT5uZXh0ID0gc3VidHlwZTsKKwkJICAgIGxhc3QgPSBzdWJ0eXBlOworCQl9CisJCWxhc3QtPm5leHQgPSBOVUxMOworCSAgICB9CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfQorICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwgIihhbm5vdGF0aW9uPywgc2ltcGxlVHlwZSopIik7CisgICAgfQorICAgIGlmICgoYXR0ciA9PSBOVUxMKSAmJiAodHlwZS0+c3VidHlwZXMgPT0gTlVMTCkpIHsKKwkgLyoKKwkqIHNyYy11bmlvbi1tZW1iZXJUeXBlcy1vci1zaW1wbGVUeXBlcworCSogRWl0aGVyIHRoZSBtZW1iZXJUeXBlcyBbYXR0cmlidXRlXSBvZiB0aGUgPHVuaW9uPiBlbGVtZW50IG11c3QKKwkqIGJlIG5vbi1lbXB0eSBvciB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBzaW1wbGVUeXBlIFtjaGlsZF0uCisJKi8KKwl4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1NSQ19VTklPTl9NRU1CRVJUWVBFU19PUl9TSU1QTEVUWVBFUywKKwkgICAgTlVMTCwgbm9kZSwKKwkgICAgIkVpdGhlciB0aGUgYXR0cmlidXRlICdtZW1iZXJUeXBlcycgb3IgIgorCSAgICAiYXQgbGVhc3Qgb25lIDxzaW1wbGVUeXBlPiBjaGlsZCBtdXN0IGJlIHByZXNlbnQiLCBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUxpc3Q6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBwYXJzZSBhIFhNTCBzY2hlbWEgTGlzdCBkZWZpbml0aW9uCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBpbXByb3BlciBhbmQKKyAqICAgICAgICAgMSBpbiBjYXNlIG9mIHN1Y2Nlc3MuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyCit4bWxTY2hlbWFQYXJzZUxpc3QoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGU7CisgICAgeG1sTm9kZVB0ciBjaGlsZCA9IE5VTEw7CisgICAgeG1sQXR0clB0ciBhdHRyOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgLyogTm90IGEgY29tcG9uZW50LCBkb24ndCBjcmVhdGUgaXQuICovCisgICAgdHlwZSA9IGN0eHQtPmN0eHRUeXBlOworICAgIC8qCisgICAgKiBNYXJrIHRoZSB0eXBlIGFzIGJlaW5nIG9mIHZhcmlldHkgImxpc3QiLgorICAgICovCisgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1Q7CisgICAgLyoKKyAgICAqIFNQRUMgKEJhc2UgdHlwZSkgKDIpICJJZiB0aGUgPGxpc3Q+IG9yIDx1bmlvbj4gYWx0ZXJuYXRpdmUgaXMgY2hvc2VuLAorICAgICogdGhlbiB0aGUg77+9c2ltcGxlIHVyLXR5cGUgZGVmaW5pdGlvbu+/vS4iCisgICAgKi8KKyAgICB0eXBlLT5iYXNlVHlwZSA9IHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUpOworICAgIC8qCisgICAgKiBDaGVjayBmb3IgaWxsZWdhbCBhdHRyaWJ1dGVzLgorICAgICovCisgICAgYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisgICAgd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCWlmIChhdHRyLT5ucyA9PSBOVUxMKSB7CisJICAgIGlmICgoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJpZCIpKSAmJgorCQkoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJpdGVtVHlwZSIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisKKyAgICB4bWxTY2hlbWFQVmFsQXR0cklEKGN0eHQsIG5vZGUsIEJBRF9DQVNUICJpZCIpOworCisgICAgLyoKKyAgICAqIEF0dHJpYnV0ZSAiaXRlbVR5cGUiLiBOT1RFIHRoYXQgd2Ugd2lsbCB1c2UgdGhlICJyZWYiIGFuZCAicmVmTnMiCisgICAgKiBmaWVsZHMgZm9yIGhvbGRpbmcgdGhlIHJlZmVyZW5jZSB0byB0aGUgaXRlbVR5cGUuCisgICAgKgorICAgICogUkVWQU1QIFRPRE86IFVzZSB0aGUgImJhc2UiIGFuZCAiYmFzZU5zIiBmaWVsZHMsIHNpbmNlIHdlIHdpbGwgcmVtb3ZlCisgICAgKiB0aGUgInJlZiIgZmllbGRzLgorICAgICovCisgICAgeG1sU2NoZW1hUFZhbEF0dHJRTmFtZShjdHh0LCBzY2hlbWEsIE5VTEwsCisJbm9kZSwgIml0ZW1UeXBlIiwgJih0eXBlLT5iYXNlTnMpLCAmKHR5cGUtPmJhc2UpKTsKKyAgICAvKgorICAgICogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisgICAgKi8KKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKwl4bWxTY2hlbWFBZGRBbm5vdGF0aW9uKCh4bWxTY2hlbWFBbm5vdEl0ZW1QdHIpIHR5cGUsCisJICAgIHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSkpOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAic2ltcGxlVHlwZSIpKSB7CisJLyoKKwkqIHNyYy1saXN0LWl0ZW1UeXBlLW9yLXNpbXBsZVR5cGUKKwkqIEVpdGhlciB0aGUgaXRlbVR5cGUgW2F0dHJpYnV0ZV0gb3IgdGhlIDxzaW1wbGVUeXBlPiBbY2hpbGRdIG9mCisJKiB0aGUgPGxpc3Q+IGVsZW1lbnQgbXVzdCBiZSBwcmVzZW50LCBidXQgbm90IGJvdGguCisJKi8KKwlpZiAodHlwZS0+YmFzZSAhPSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzEsCisJCU5VTEwsIG5vZGUsCisJCSJUaGUgYXR0cmlidXRlICdpdGVtVHlwZScgYW5kIHRoZSA8c2ltcGxlVHlwZT4gY2hpbGQgIgorCQkiYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIsIE5VTEwpOworCX0gZWxzZSB7CisJICAgIHR5cGUtPnN1YnR5cGVzID0geG1sU2NoZW1hUGFyc2VTaW1wbGVUeXBlKGN0eHQsIHNjaGVtYSwgY2hpbGQsIDApOworCX0KKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9IGVsc2UgaWYgKHR5cGUtPmJhc2UgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzEsCisJICAgIE5VTEwsIG5vZGUsCisJICAgICJFaXRoZXIgdGhlIGF0dHJpYnV0ZSAnaXRlbVR5cGUnIG9yIHRoZSA8c2ltcGxlVHlwZT4gY2hpbGQgIgorCSAgICAibXVzdCBiZSBwcmVzZW50IiwgTlVMTCk7CisgICAgfQorICAgIGlmIChjaGlsZCAhPSBOVUxMKSB7CisJeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJICAgIE5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLCAiKGFubm90YXRpb24/LCBzaW1wbGVUeXBlPykiKTsKKyAgICB9CisgICAgaWYgKCh0eXBlLT5iYXNlID09IE5VTEwpICYmCisJKHR5cGUtPnN1YnR5cGVzID09IE5VTEwpICYmCisJKHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJpdGVtVHlwZSIpID09IE5VTEwpKSB7CisJeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMSwKKwkgICAgTlVMTCwgbm9kZSwKKwkgICAgIkVpdGhlciB0aGUgYXR0cmlidXRlICdpdGVtVHlwZScgb3IgdGhlIDxzaW1wbGVUeXBlPiBjaGlsZCAiCisJICAgICJtdXN0IGJlIHByZXNlbnQiLCBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZVNpbXBsZVR5cGU6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBwYXJzZSBhIFhNTCBzY2hlbWEgU2ltcGxlIFR5cGUgZGVmaW5pdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiB0aGUgZGVjbGFyYXRpb24gaXMgaW1wcm9wZXIgYW5kCisgKiAxIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KKyAqLworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIKK3htbFNjaGVtYVBhcnNlU2ltcGxlVHlwZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlLCBpbnQgdG9wTGV2ZWwpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCBvbGRDdHh0VHlwZTsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICphdHRyVmFsdWUgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICBpbnQgaGFzUmVzdHJpY3Rpb24gPSAwOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBpZiAodG9wTGV2ZWwpIHsKKwlhdHRyID0geG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgIm5hbWUiKTsKKwlpZiAoYXR0ciA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBNaXNzaW5nQXR0ckVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HLAorCQlOVUxMLCBub2RlLAorCQkibmFtZSIsIE5VTEwpOworCSAgICByZXR1cm4gKE5VTEwpOworCX0gZWxzZSB7CisJICAgIGlmICh4bWxTY2hlbWFQVmFsQXR0ck5vZGUoY3R4dCwKKwkJTlVMTCwgYXR0ciwKKwkJeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfTkNOQU1FKSwgJmF0dHJWYWx1ZSkgIT0gMCkKKwkJcmV0dXJuIChOVUxMKTsKKwkgICAgLyoKKwkgICAgKiBTa2lwIGJ1aWx0LWluIHR5cGVzLgorCSAgICAqLworCSAgICBpZiAoY3R4dC0+aXNTNFMpIHsKKwkJeG1sU2NoZW1hVHlwZVB0ciBiaVR5cGU7CisKKwkJaWYgKGN0eHQtPmlzUmVkZWZpbmUpIHsKKwkJICAgIC8qCisJCSAgICAqIFJFREVGSU5FOiBEaXNhbGxvdyByZWRlZmluaXRpb24gb2YgYnVpbHQtaW4tdHlwZXMuCisJCSAgICAqIFRPRE86IEl0IHNlZW1zIHRoYXQgdGhlIHNwZWMgZG9lcyBub3Qgc2F5IGFueXRoaW5nCisJCSAgICAqIGFib3V0IHRoaXMgY2FzZS4KKwkJICAgICovCisJCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsIFhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwKKwkJCU5VTEwsIG5vZGUsCisJCQkiUmVkZWZpbml0aW9uIG9mIGJ1aWx0LWluIHNpbXBsZSB0eXBlcyBpcyBub3QgIgorCQkJInN1cHBvcnRlZCIsIE5VTEwpOworCQkgICAgcmV0dXJuKE5VTEwpOworCQl9CisJCWJpVHlwZSA9IHhtbFNjaGVtYUdldFByZWRlZmluZWRUeXBlKGF0dHJWYWx1ZSwgeG1sU2NoZW1hTnMpOworCQlpZiAoYmlUeXBlICE9IE5VTEwpCisJCSAgICByZXR1cm4gKGJpVHlwZSk7CisJICAgIH0KKwl9CisgICAgfQorICAgIC8qCisgICAgKiBUYXJnZXROYW1lc3BhY2U6CisgICAgKiBTUEVDICJUaGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIHRoZSB0YXJnZXROYW1lc3BhY2UgW2F0dHJpYnV0ZV0KKyAgICAqIG9mIHRoZSA8c2NoZW1hPiBhbmNlc3RvciBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gaWYgcHJlc2VudCwKKyAgICAqIG90aGVyd2lzZSDvv71hYnNlbnTvv70uCisgICAgKi8KKyAgICBpZiAodG9wTGV2ZWwgPT0gMCkgeworI2lmZGVmIEVOQUJMRV9OQU1FRF9MT0NBTFMKKyAgICAgICAgY2hhciBidWZbNDBdOworI2VuZGlmCisJLyoKKwkqIFBhcnNlIGFzIGxvY2FsIHNpbXBsZSB0eXBlIGRlZmluaXRpb24uCisJKi8KKyNpZmRlZiBFTkFCTEVfTkFNRURfTE9DQUxTCisgICAgICAgIHNucHJpbnRmKGJ1ZiwgMzksICIjU1QlZCIsIGN0eHQtPmNvdW50ZXIrKyArIDEpOworCXR5cGUgPSB4bWxTY2hlbWFBZGRUeXBlKGN0eHQsIHNjaGVtYSwKKwkgICAgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSwKKwkgICAgeG1sRGljdExvb2t1cChjdHh0LT5kaWN0LCAoY29uc3QgeG1sQ2hhciAqKWJ1ZiwgLTEpLAorCSAgICBjdHh0LT50YXJnZXROYW1lc3BhY2UsIG5vZGUsIDApOworI2Vsc2UKKwl0eXBlID0geG1sU2NoZW1hQWRkVHlwZShjdHh0LCBzY2hlbWEsCisJICAgIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEUsCisJICAgIE5VTEwsIGN0eHQtPnRhcmdldE5hbWVzcGFjZSwgbm9kZSwgMCk7CisjZW5kaWYKKwlpZiAodHlwZSA9PSBOVUxMKQorCSAgICByZXR1cm4gKE5VTEwpOworCXR5cGUtPnR5cGUgPSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFOworCXR5cGUtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX1NJTVBMRTsKKwkvKgorCSogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKwkqLworCWF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworCXdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkgICAgaWYgKGF0dHItPm5zID09IE5VTEwpIHsKKwkJaWYgKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgeworCQkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJCX0KKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSB7CisJCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCSAgICBhdHRyID0gYXR0ci0+bmV4dDsKKwl9CisgICAgfSBlbHNlIHsKKwkvKgorCSogUGFyc2UgYXMgZ2xvYmFsIHNpbXBsZSB0eXBlIGRlZmluaXRpb24uCisJKgorCSogTm90ZSB0aGF0IGF0dHJWYWx1ZSBpcyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAibmFtZSIgaGVyZS4KKwkqLworCXR5cGUgPSB4bWxTY2hlbWFBZGRUeXBlKGN0eHQsIHNjaGVtYSwgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSwKKwkgICAgYXR0clZhbHVlLCBjdHh0LT50YXJnZXROYW1lc3BhY2UsIG5vZGUsIDEpOworCWlmICh0eXBlID09IE5VTEwpCisJICAgIHJldHVybiAoTlVMTCk7CisJdHlwZS0+dHlwZSA9IFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU7CisJdHlwZS0+Y29udGVudFR5cGUgPSBYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFOworCXR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfR0xPQkFMOworCS8qCisJKiBDaGVjayBmb3IgaWxsZWdhbCBhdHRyaWJ1dGVzLgorCSovCisJYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisJd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCSAgICBpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCQlpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm5hbWUiKSkgJiYKKwkJICAgICgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImZpbmFsIikpKSB7CisJCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkJfQorCSAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpIHsKKwkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJICAgIH0KKwkgICAgYXR0ciA9IGF0dHItPm5leHQ7CisJfQorCS8qCisJKiBBdHRyaWJ1dGUgImZpbmFsIi4KKwkqLworCWF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAiZmluYWwiKTsKKwlpZiAoYXR0ciA9PSBOVUxMKSB7CisJICAgIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9SRVNUUklDVElPTikKKwkJdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTjsKKwkgICAgaWYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1QpCisJCXR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVDsKKwkgICAgaWYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1VOSU9OKQorCQl0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OOworCX0gZWxzZSB7CisJICAgIGF0dHJWYWx1ZSA9IHhtbFNjaGVtYUdldFByb3AoY3R4dCwgbm9kZSwgImZpbmFsIik7CisJICAgIGlmICh4bWxTY2hlbWFQVmFsQXR0ckJsb2NrRmluYWwoYXR0clZhbHVlLCAmKHR5cGUtPmZsYWdzKSwKKwkJLTEsIC0xLCBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OLCAtMSwKKwkJWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9MSVNULAorCQlYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1VOSU9OKSAhPSAwKSB7CisKKwkJeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUUsCisJCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCAoeG1sTm9kZVB0cikgYXR0ciwKKwkJICAgIE5VTEwsICIoI2FsbCB8IExpc3Qgb2YgKGxpc3QgfCB1bmlvbiB8IHJlc3RyaWN0aW9uKSIsCisJCSAgICBhdHRyVmFsdWUsIE5VTEwsIE5VTEwsIE5VTEwpOworCSAgICB9CisJfQorICAgIH0KKyAgICB0eXBlLT50YXJnZXROYW1lc3BhY2UgPSBjdHh0LT50YXJnZXROYW1lc3BhY2U7CisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKyAgICAvKgorICAgICogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisgICAgKi8KKyAgICBvbGRDdHh0VHlwZSA9IGN0eHQtPmN0eHRUeXBlOworCisgICAgY3R4dC0+Y3R4dFR5cGUgPSB0eXBlOworCisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisgICAgICAgIHR5cGUtPmFubm90ID0geG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKGN0eHQsIGNoaWxkLCAxKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LCBYTUxfU0NIRU1BUF9TNFNfRUxFTV9NSVNTSU5HLAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwKKwkgICAgIihhbm5vdGF0aW9uPywgKHJlc3RyaWN0aW9uIHwgbGlzdCB8IHVuaW9uKSkiKTsKKyAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgInJlc3RyaWN0aW9uIikpIHsKKyAgICAgICAgeG1sU2NoZW1hUGFyc2VSZXN0cmljdGlvbihjdHh0LCBzY2hlbWEsIGNoaWxkLAorCSAgICBYTUxfU0NIRU1BX1RZUEVfU0lNUExFKTsKKwloYXNSZXN0cmljdGlvbiA9IDE7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJsaXN0IikpIHsKKyAgICAgICAgeG1sU2NoZW1hUGFyc2VMaXN0KGN0eHQsIHNjaGVtYSwgY2hpbGQpOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAidW5pb24iKSkgeworICAgICAgICB4bWxTY2hlbWFQYXJzZVVuaW9uKGN0eHQsIHNjaGVtYSwgY2hpbGQpOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwKKwkgICAgIihhbm5vdGF0aW9uPywgKHJlc3RyaWN0aW9uIHwgbGlzdCB8IHVuaW9uKSkiKTsKKyAgICB9CisgICAgLyoKKyAgICAqIFJFREVGSU5FOiBTUEVDIHNyYy1yZWRlZmluZSAoNSkKKyAgICAqICJXaXRoaW4gdGhlIFtjaGlsZHJlbl0sIGVhY2ggPHNpbXBsZVR5cGU+IG11c3QgaGF2ZSBhCisgICAgKiA8cmVzdHJpY3Rpb24+IGFtb25nIGl0cyBbY2hpbGRyZW5dIC4uLiB0aGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIHdob3NlCisgICAgKiBiYXNlIFthdHRyaWJ1dGVdIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIO+/vWFjdHVhbCB2YWx1Ze+/vSBvZiBpdHMgb3duCisgICAgKiBuYW1lIGF0dHJpYnV0ZSBwbHVzIHRhcmdldCBuYW1lc3BhY2U7IgorICAgICovCisgICAgaWYgKHRvcExldmVsICYmIGN0eHQtPmlzUmVkZWZpbmUgJiYgKCEgaGFzUmVzdHJpY3Rpb24pKSB7CisJeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LCBYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUsCisJICAgIE5VTEwsIG5vZGUsICJUaGlzIGlzIGEgcmVkZWZpbml0aW9uLCB0aHVzIHRoZSAiCisJICAgICI8c2ltcGxlVHlwZT4gbXVzdCBoYXZlIGEgPHJlc3RyaWN0aW9uPiBjaGlsZCIsIE5VTEwpOworICAgIH0KKworICAgIGN0eHQtPmN0eHRUeXBlID0gb2xkQ3R4dFR5cGU7CisgICAgcmV0dXJuICh0eXBlKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZU1vZGVsR3JvdXBEZWZSZWY6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQHNjaGVtYTogdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICB0aGUgbm9kZQorICoKKyAqIFBhcnNlcyBhIHJlZmVyZW5jZSB0byBhIG1vZGVsIGdyb3VwIGRlZmluaXRpb24uCisgKgorICogV2Ugd2lsbCByZXR1cm4gYSBwYXJ0aWNsZSBjb21wb25lbnQgd2l0aCBhIHFuYW1lLWNvbXBvbmVudCBvcgorICogTlVMTCBpbiBjYXNlIG9mIGFuIGVycm9yLgorICovCitzdGF0aWMgeG1sU2NoZW1hVHJlZUl0ZW1QdHIKK3htbFNjaGVtYVBhcnNlTW9kZWxHcm91cERlZlJlZih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICAgICAgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJCSAgICAgICB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgaXRlbTsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgY29uc3QgeG1sQ2hhciAqcmVmID0gTlVMTCwgKnJlZk5zID0gTlVMTDsKKyAgICBpbnQgbWluLCBtYXg7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAicmVmIik7CisgICAgaWYgKGF0dHIgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBNaXNzaW5nQXR0ckVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HLAorCSAgICBOVUxMLCBub2RlLCAicmVmIiwgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9IGVsc2UgaWYgKHhtbFNjaGVtYVBWYWxBdHRyTm9kZVFOYW1lKGN0eHQsIHNjaGVtYSwgTlVMTCwKKwlhdHRyLCAmcmVmTnMsICZyZWYpICE9IDApIHsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICB4bWxTY2hlbWFDaGVja1JlZmVyZW5jZShjdHh0LCBzY2hlbWEsIG5vZGUsIGF0dHIsIHJlZk5zKTsKKyAgICBtaW4gPSB4bWxHZXRNaW5PY2N1cnMoY3R4dCwgbm9kZSwgMCwgLTEsIDEsICJ4czpub25OZWdhdGl2ZUludGVnZXIiKTsKKyAgICBtYXggPSB4bWxHZXRNYXhPY2N1cnMoY3R4dCwgbm9kZSwgMCwgVU5CT1VOREVELCAxLAorCSIoeHM6bm9uTmVnYXRpdmVJbnRlZ2VyIHwgdW5ib3VuZGVkKSIpOworICAgIC8qCisgICAgKiBDaGVjayBmb3IgaWxsZWdhbCBhdHRyaWJ1dGVzLgorICAgICovCisgICAgYXR0ciA9IG5vZGUtPnByb3BlcnRpZXM7CisgICAgd2hpbGUgKGF0dHIgIT0gTlVMTCkgeworCWlmIChhdHRyLT5ucyA9PSBOVUxMKSB7CisJICAgIGlmICgoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJyZWYiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibWluT2NjdXJzIikpICYmCisJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm1heE9jY3VycyIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKyAgICBpdGVtID0geG1sU2NoZW1hQWRkUGFydGljbGUoY3R4dCwgbm9kZSwgbWluLCBtYXgpOworICAgIGlmIChpdGVtID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKyAgICAvKgorICAgICogQ3JlYXRlIGEgcW5hbWUtcmVmZXJlbmNlIGFuZCBzZXQgYXMgdGhlIHRlcm07IGl0IHdpbGwgYmUgc3Vic3RpdHV0ZWQKKyAgICAqIGZvciB0aGUgbW9kZWwgZ3JvdXAgYWZ0ZXIgdGhlIHJlZmVyZW5jZSBoYXMgYmVlbiByZXNvbHZlZC4KKyAgICAqLworICAgIGl0ZW0tPmNoaWxkcmVuID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyKQorCXhtbFNjaGVtYU5ld1FOYW1lUmVmKGN0eHQsIFhNTF9TQ0hFTUFfVFlQRV9HUk9VUCwgcmVmLCByZWZOcyk7CisgICAgeG1sU2NoZW1hUENoZWNrUGFydGljbGVDb3JyZWN0XzIoY3R4dCwgaXRlbSwgbm9kZSwgbWluLCBtYXgpOworICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgLyogVE9ETzogSXMgYW5ub3RhdGlvbiBldmVuIGFsbG93ZWQgZm9yIGEgbW9kZWwgZ3JvdXAgcmVmZXJlbmNlPyAqLworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKwkvKgorCSogVE9ETzogV2hhdCB0byBkbyBleGFjdGx5IHdpdGggdGhlIGFubm90YXRpb24/CisJKi8KKwlpdGVtLT5hbm5vdCA9IHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkgICAgTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJICAgICIoYW5ub3RhdGlvbj8pIik7CisgICAgfQorICAgIC8qCisgICAgKiBDb3JyZXNwb25kcyB0byBubyBjb21wb25lbnQgYXQgYWxsIGlmIG1pbk9jY3Vycz09bWF4T2NjdXJzPT0wLgorICAgICovCisgICAgaWYgKChtaW4gPT0gMCkgJiYgKG1heCA9PSAwKSkKKwlyZXR1cm4gKE5VTEwpOworCisgICAgcmV0dXJuICgoeG1sU2NoZW1hVHJlZUl0ZW1QdHIpIGl0ZW0pOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cERlZmluaXRpb246CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBQYXJzZXMgYSBYTUwgc2NoZW1hIG1vZGVsIGdyb3VwIGRlZmluaXRpb24uCisgKgorICogTm90ZSB0aGF0IHRoZSBjb250cmFpbnQgc3JjLXJlZGVmaW5lICg2LjIpIGNhbid0IGJlIGFwcGxpZWQgdW50aWwKKyAqIHJlZmVyZW5jZXMgaGF2ZSBiZWVuIHJlc29sdmVkLiBTbyB3ZSB3aWxsIGRvIHRoaXMgYXQgdGhlCisgKiBjb21wb25lbnQgZml4dXAgbGV2ZWwuCisgKgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBlcnJvciwgMCBpZiB0aGUgZGVjbGFyYXRpb24gaXMgaW1wcm9wZXIgYW5kCisgKiAgICAgICAgIDEgaW4gY2FzZSBvZiBzdWNjZXNzLgorICovCitzdGF0aWMgeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0cgoreG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwRGVmaW5pdGlvbih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJICAgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJCQkgICB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0ciBpdGVtOworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICBjb25zdCB4bWxDaGFyICpuYW1lOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisKKyAgICBhdHRyID0geG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgIm5hbWUiKTsKKyAgICBpZiAoYXR0ciA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUE1pc3NpbmdBdHRyRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkcsCisJICAgIE5VTEwsIG5vZGUsCisJICAgICJuYW1lIiwgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9IGVsc2UgaWYgKHhtbFNjaGVtYVBWYWxBdHRyTm9kZShjdHh0LCBOVUxMLCBhdHRyLAorCXhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX05DTkFNRSksICZuYW1lKSAhPSAwKSB7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgaXRlbSA9IHhtbFNjaGVtYUFkZE1vZGVsR3JvdXBEZWZpbml0aW9uKGN0eHQsIHNjaGVtYSwgbmFtZSwKKwljdHh0LT50YXJnZXROYW1lc3BhY2UsIG5vZGUpOworICAgIGlmIChpdGVtID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibmFtZSIpKSAmJgorCQkoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJpZCIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKyAgICAvKgorICAgICogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisgICAgKi8KKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKwlpdGVtLT5hbm5vdCA9IHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgImFsbCIpKSB7CisJaXRlbS0+Y2hpbGRyZW4gPSB4bWxTY2hlbWFQYXJzZU1vZGVsR3JvdXAoY3R4dCwgc2NoZW1hLCBjaGlsZCwKKwkgICAgWE1MX1NDSEVNQV9UWVBFX0FMTCwgMCk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImNob2ljZSIpKSB7CisJaXRlbS0+Y2hpbGRyZW4gPSB4bWxTY2hlbWFQYXJzZU1vZGVsR3JvdXAoY3R4dCwgc2NoZW1hLCBjaGlsZCwKKwkgICAgWE1MX1NDSEVNQV9UWVBFX0NIT0lDRSwgMCk7CisJY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgInNlcXVlbmNlIikpIHsKKwlpdGVtLT5jaGlsZHJlbiA9IHhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cChjdHh0LCBzY2hlbWEsIGNoaWxkLAorCSAgICBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UsIDApOworCWNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorCisKKworICAgIGlmIChjaGlsZCAhPSBOVUxMKSB7CisJeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJICAgIE5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLAorCSAgICAiKGFubm90YXRpb24/LCAoYWxsIHwgY2hvaWNlIHwgc2VxdWVuY2UpPykiKTsKKyAgICB9CisgICAgcmV0dXJuIChpdGVtKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDbGVhbnVwRG9jOgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBub2RlOiAgdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50LgorICoKKyAqIHJlbW92ZXMgdW53YW50ZWQgbm9kZXMgaW4gYSBzY2hlbWFzIGRvY3VtZW50IHRyZWUKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNsZWFudXBEb2MoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIHJvb3QpCit7CisgICAgeG1sTm9kZVB0ciBkZWxldGUsIGN1cjsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAocm9vdCA9PSBOVUxMKSkgcmV0dXJuOworCisgICAgLyoKKyAgICAgKiBSZW1vdmUgYWxsIHRoZSBibGFuayB0ZXh0IG5vZGVzCisgICAgICovCisgICAgZGVsZXRlID0gTlVMTDsKKyAgICBjdXIgPSByb290OworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworICAgICAgICBpZiAoZGVsZXRlICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFVubGlua05vZGUoZGVsZXRlKTsKKyAgICAgICAgICAgIHhtbEZyZWVOb2RlKGRlbGV0ZSk7CisgICAgICAgICAgICBkZWxldGUgPSBOVUxMOworICAgICAgICB9CisgICAgICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworICAgICAgICAgICAgaWYgKElTX0JMQU5LX05PREUoY3VyKSkgeworICAgICAgICAgICAgICAgIGlmICh4bWxOb2RlR2V0U3BhY2VQcmVzZXJ2ZShjdXIpICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVsZXRlID0gY3VyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICgoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisgICAgICAgICAgICAgICAgICAgKGN1ci0+dHlwZSAhPSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSkgeworICAgICAgICAgICAgZGVsZXRlID0gY3VyOworICAgICAgICAgICAgZ290byBza2lwX2NoaWxkcmVuOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogU2tpcCB0byBuZXh0IG5vZGUKKyAgICAgICAgICovCisgICAgICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmICgoY3VyLT5jaGlsZHJlbi0+dHlwZSAhPSBYTUxfRU5USVRZX0RFQ0wpICYmCisgICAgICAgICAgICAgICAgKGN1ci0+Y2hpbGRyZW4tPnR5cGUgIT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgJiYKKyAgICAgICAgICAgICAgICAoY3VyLT5jaGlsZHJlbi0+dHlwZSAhPSBYTUxfRU5USVRZX05PREUpKSB7CisgICAgICAgICAgICAgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgc2tpcF9jaGlsZHJlbjoKKyAgICAgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgICAgICBjdXIgPSBjdXItPm5leHQ7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGN1ciA9IGN1ci0+cGFyZW50OworICAgICAgICAgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKGN1ciA9PSByb290KSB7CisgICAgICAgICAgICAgICAgY3VyID0gTlVMTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjdXItPm5leHQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGN1ciA9IGN1ci0+bmV4dDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAoY3VyICE9IE5VTEwpOworICAgIH0KKyAgICBpZiAoZGVsZXRlICE9IE5VTEwpIHsKKyAgICAgICAgeG1sVW5saW5rTm9kZShkZWxldGUpOworICAgICAgICB4bWxGcmVlTm9kZShkZWxldGUpOworICAgICAgICBkZWxldGUgPSBOVUxMOworICAgIH0KK30KKworCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hQ2xlYXJTY2hlbWFEZWZhdWx0cyh4bWxTY2hlbWFQdHIgc2NoZW1hKQoreworICAgIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfUVVBTElGX0VMRU0pCisJc2NoZW1hLT5mbGFncyBePSBYTUxfU0NIRU1BU19RVUFMSUZfRUxFTTsKKworICAgIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfUVVBTElGX0FUVFIpCisJc2NoZW1hLT5mbGFncyBePSBYTUxfU0NIRU1BU19RVUFMSUZfQVRUUjsKKworICAgIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT04pCisJc2NoZW1hLT5mbGFncyBePSBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0VYVEVOU0lPTjsKKyAgICBpZiAoc2NoZW1hLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04pCisJc2NoZW1hLT5mbGFncyBePSBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OOworICAgIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUKQorCXNjaGVtYS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9MSVNUOworICAgIGlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9VTklPTikKKwlzY2hlbWEtPmZsYWdzIF49IFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfVU5JT047CisKKyAgICBpZiAoc2NoZW1hLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OKQorCXNjaGVtYS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT047CisgICAgaWYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OKQorCXNjaGVtYS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9SRVNUUklDVElPTjsKKyAgICBpZiAoc2NoZW1hLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfU1VCU1RJVFVUSU9OKQorCXNjaGVtYS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9TVUJTVElUVVRJT047Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBhcnNlU2NoZW1hRWxlbWVudCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICAgIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkgICAgIHhtbE5vZGVQdHIgbm9kZSkKK3sKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgY29uc3QgeG1sQ2hhciAqdmFsOworICAgIGludCByZXMgPSAwLCBvbGRFcnJzID0gY3R4dC0+bmJlcnJvcnM7CisKKyAgICAvKgorICAgICogVGhvc2UgZmxhZ3Mgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBwYXJzZXIgY29udGV4dCBmbGFncywKKyAgICAqIHNpbmNlIHRoZXkgYXJlIG5vdCB2aXNpYmxlIGF0IHRoZSBjb21wb25lbnQgbGV2ZWwuIEkuZS4KKyAgICAqIHRoZXkgYXJlIHVzZWQgaWYgcHJvY2Vzc2luZyBzY2hlbWEgKmRvY3VtZW50cyogb25seS4KKyAgICAqLworICAgIHJlcyA9IHhtbFNjaGVtYVBWYWxBdHRySUQoY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisgICAgSEZBSUxVUkU7CisKKyAgICAvKgorICAgICogU2luY2UgdGhlIHZlcnNpb24gaXMgb2YgdHlwZSB4czp0b2tlbiwgd2Ugd29uJ3QgYm90aGVyIHRvCisgICAgKiBjaGVjayBpdC4KKyAgICAqLworICAgIC8qIFJFTU9WRUQ6CisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJ2ZXJzaW9uIik7CisgICAgaWYgKGF0dHIgIT0gTlVMTCkgeworCXJlcyA9IHhtbFNjaGVtYVBWYWxBdHRyTm9kZShjdHh0LCBOVUxMLCBOVUxMLCBhdHRyLAorCSAgICB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19UT0tFTiksICZ2YWwpOworCUhGQUlMVVJFOworICAgIH0KKyAgICAqLworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAidGFyZ2V0TmFtZXNwYWNlIik7CisgICAgaWYgKGF0dHIgIT0gTlVMTCkgeworCXJlcyA9IHhtbFNjaGVtYVBWYWxBdHRyTm9kZShjdHh0LCBOVUxMLCBhdHRyLAorCSAgICB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllVUkkpLCBOVUxMKTsKKwlIRkFJTFVSRTsKKwlpZiAocmVzICE9IDApIHsKKwkgICAgY3R4dC0+c3RvcCA9IFhNTF9TQ0hFTUFQX1M0U19BVFRSX0lOVkFMSURfVkFMVUU7CisJICAgIGdvdG8gZXhpdDsKKwl9CisgICAgfQorICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAiZWxlbWVudEZvcm1EZWZhdWx0Iik7CisgICAgaWYgKGF0dHIgIT0gTlVMTCkgeworCXZhbCA9IHhtbFNjaGVtYUdldE5vZGVDb250ZW50KGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyKTsKKwlyZXMgPSB4bWxTY2hlbWFQVmFsQXR0ckZvcm1EZWZhdWx0KHZhbCwgJnNjaGVtYS0+ZmxhZ3MsCisJICAgIFhNTF9TQ0hFTUFTX1FVQUxJRl9FTEVNKTsKKwlIRkFJTFVSRTsKKwlpZiAocmVzICE9IDApIHsKKwkgICAgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfRUxFTUZPUk1ERUZBVUxUX1ZBTFVFLAorCQlOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwgTlVMTCwKKwkJIihxdWFsaWZpZWQgfCB1bnF1YWxpZmllZCkiLCB2YWwsIE5VTEwsIE5VTEwsIE5VTEwpOworCX0KKyAgICB9CisgICAgYXR0ciA9IHhtbFNjaGVtYUdldFByb3BOb2RlKG5vZGUsICJhdHRyaWJ1dGVGb3JtRGVmYXVsdCIpOworICAgIGlmIChhdHRyICE9IE5VTEwpIHsKKwl2YWwgPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7CisJcmVzID0geG1sU2NoZW1hUFZhbEF0dHJGb3JtRGVmYXVsdCh2YWwsICZzY2hlbWEtPmZsYWdzLAorCSAgICBYTUxfU0NIRU1BU19RVUFMSUZfQVRUUik7CisJSEZBSUxVUkU7CisJaWYgKHJlcyAhPSAwKSB7CisJICAgIHhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX0FUVFJGT1JNREVGQVVMVF9WQUxVRSwKKwkJTlVMTCwgKHhtbE5vZGVQdHIpIGF0dHIsIE5VTEwsCisJCSIocXVhbGlmaWVkIHwgdW5xdWFsaWZpZWQpIiwgdmFsLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwl9CisgICAgfQorICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAiZmluYWxEZWZhdWx0Iik7CisgICAgaWYgKGF0dHIgIT0gTlVMTCkgeworCXZhbCA9IHhtbFNjaGVtYUdldE5vZGVDb250ZW50KGN0eHQsICh4bWxOb2RlUHRyKSBhdHRyKTsKKwlyZXMgPSB4bWxTY2hlbWFQVmFsQXR0ckJsb2NrRmluYWwodmFsLCAmKHNjaGVtYS0+ZmxhZ3MpLCAtMSwKKwkgICAgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT04sCisJICAgIFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfUkVTVFJJQ1RJT04sCisJICAgIC0xLAorCSAgICBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX0xJU1QsCisJICAgIFhNTF9TQ0hFTUFTX0ZJTkFMX0RFRkFVTFRfVU5JT04pOworCUhGQUlMVVJFOworCWlmIChyZXMgIT0gMCkgeworCSAgICB4bWxTY2hlbWFQU2ltcGxlVHlwZUVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCQlOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwgTlVMTCwKKwkJIigjYWxsIHwgTGlzdCBvZiAoZXh0ZW5zaW9uIHwgcmVzdHJpY3Rpb24gfCBsaXN0IHwgdW5pb24pKSIsCisJCXZhbCwgTlVMTCwgTlVMTCwgTlVMTCk7CisJfQorICAgIH0KKyAgICBhdHRyID0geG1sU2NoZW1hR2V0UHJvcE5vZGUobm9kZSwgImJsb2NrRGVmYXVsdCIpOworICAgIGlmIChhdHRyICE9IE5VTEwpIHsKKwl2YWwgPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChjdHh0LCAoeG1sTm9kZVB0cikgYXR0cik7CisJcmVzID0geG1sU2NoZW1hUFZhbEF0dHJCbG9ja0ZpbmFsKHZhbCwgJihzY2hlbWEtPmZsYWdzKSwgLTEsCisJICAgIFhNTF9TQ0hFTUFTX0JMT0NLX0RFRkFVTFRfRVhURU5TSU9OLAorCSAgICBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OLAorCSAgICBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1NVQlNUSVRVVElPTiwgLTEsIC0xKTsKKwlIRkFJTFVSRTsKKwlpZiAocmVzICE9IDApIHsKKwkgICAgeG1sU2NoZW1hUFNpbXBsZVR5cGVFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkJTlVMTCwgKHhtbE5vZGVQdHIpIGF0dHIsIE5VTEwsCisJCSIoI2FsbCB8IExpc3Qgb2YgKGV4dGVuc2lvbiB8IHJlc3RyaWN0aW9uIHwgc3Vic3RpdHV0aW9uKSkiLAorCQl2YWwsIE5VTEwsIE5VTEwsIE5VTEwpOworCX0KKyAgICB9CisKK2V4aXQ6CisgICAgaWYgKG9sZEVycnMgIT0gY3R4dC0+bmJlcnJvcnMpCisJcmVzID0gY3R4dC0+ZXJyOworICAgIHJldHVybihyZXMpOworZXhpdF9mYWlsdXJlOgorICAgIHJldHVybigtMSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VTY2hlbWFUb3BMZXZlbDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYXMKKyAqIEBub2RlczogIHRoZSBsaXN0IG9mIHRvcCBsZXZlbCBub2RlcworICoKKyAqIFJldHVybnMgdGhlIGludGVybmFsIFhNTCBTY2hlbWEgc3RydWN0dXJlIGJ1aWx0IGZyb20gdGhlIHJlc291cmNlIG9yCisgKiAgICAgICAgIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQYXJzZVNjaGVtYVRvcExldmVsKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hUHRyIHNjaGVtYSwgeG1sTm9kZVB0ciBub2RlcykKK3sKKyAgICB4bWxOb2RlUHRyIGNoaWxkOworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworICAgIGludCByZXMgPSAwLCBvbGRFcnJzLCB0bXBPbGRFcnJzOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGVzID09IE5VTEwpKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgb2xkRXJycyA9IGN0eHQtPm5iZXJyb3JzOworICAgIGNoaWxkID0gbm9kZXM7CisgICAgd2hpbGUgKChJU19TQ0hFTUEoY2hpbGQsICJpbmNsdWRlIikpIHx8CisJICAgKElTX1NDSEVNQShjaGlsZCwgImltcG9ydCIpKSB8fAorCSAgIChJU19TQ0hFTUEoY2hpbGQsICJyZWRlZmluZSIpKSB8fAorCSAgIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpKSB7CisJaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworCSAgICBhbm5vdCA9IHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSk7CisJICAgIGlmIChzY2hlbWEtPmFubm90ID09IE5VTEwpCisJCXNjaGVtYS0+YW5ub3QgPSBhbm5vdDsKKwkgICAgZWxzZQorCQl4bWxTY2hlbWFGcmVlQW5ub3QoYW5ub3QpOworCX0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiaW1wb3J0IikpIHsKKwkgICAgdG1wT2xkRXJycyA9IGN0eHQtPm5iZXJyb3JzOworCSAgICByZXMgPSB4bWxTY2hlbWFQYXJzZUltcG9ydChjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgSEZBSUxVUkU7CisJICAgIEhTVE9QKGN0eHQpOworCSAgICBpZiAodG1wT2xkRXJycyAhPSBjdHh0LT5uYmVycm9ycykKKwkJZ290byBleGl0OworCX0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiaW5jbHVkZSIpKSB7CisJICAgIHRtcE9sZEVycnMgPSBjdHh0LT5uYmVycm9yczsKKwkgICAgcmVzID0geG1sU2NoZW1hUGFyc2VJbmNsdWRlKGN0eHQsIHNjaGVtYSwgY2hpbGQpOworCSAgICBIRkFJTFVSRTsKKwkgICAgSFNUT1AoY3R4dCk7CisJICAgIGlmICh0bXBPbGRFcnJzICE9IGN0eHQtPm5iZXJyb3JzKQorCQlnb3RvIGV4aXQ7CisJfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJyZWRlZmluZSIpKSB7CisJICAgIHRtcE9sZEVycnMgPSBjdHh0LT5uYmVycm9yczsKKwkgICAgcmVzID0geG1sU2NoZW1hUGFyc2VSZWRlZmluZShjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgSEZBSUxVUkU7CisJICAgIEhTVE9QKGN0eHQpOworCSAgICBpZiAodG1wT2xkRXJycyAhPSBjdHh0LT5uYmVycm9ycykKKwkJZ290byBleGl0OworCX0KKwljaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICAvKgorICAgICogVVJHRU5UIFRPRE86IENoYW5nZSB0aGUgZnVuY3Rpb25zIHRvIHJldHVybiBpbnQgcmVzdWx0cy4KKyAgICAqIFdlIG5lZWQgZXNwZWNpYWxseSB0byBjYXRjaCBpbnRlcm5hbCBlcnJvcnMuCisgICAgKi8KKyAgICB3aGlsZSAoY2hpbGQgIT0gTlVMTCkgeworCWlmIChJU19TQ0hFTUEoY2hpbGQsICJjb21wbGV4VHlwZSIpKSB7CisJICAgIHhtbFNjaGVtYVBhcnNlQ29tcGxleFR5cGUoY3R4dCwgc2NoZW1hLCBjaGlsZCwgMSk7CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJzaW1wbGVUeXBlIikpIHsKKwkgICAgeG1sU2NoZW1hUGFyc2VTaW1wbGVUeXBlKGN0eHQsIHNjaGVtYSwgY2hpbGQsIDEpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiZWxlbWVudCIpKSB7CisJICAgIHhtbFNjaGVtYVBhcnNlRWxlbWVudChjdHh0LCBzY2hlbWEsIGNoaWxkLCBOVUxMLCAxKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImF0dHJpYnV0ZSIpKSB7CisJICAgIHhtbFNjaGVtYVBhcnNlR2xvYmFsQXR0cmlidXRlKGN0eHQsIHNjaGVtYSwgY2hpbGQpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYXR0cmlidXRlR3JvdXAiKSkgeworCSAgICB4bWxTY2hlbWFQYXJzZUF0dHJpYnV0ZUdyb3VwRGVmaW5pdGlvbihjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImdyb3VwIikpIHsKKwkgICAgeG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwRGVmaW5pdGlvbihjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgIm5vdGF0aW9uIikpIHsKKwkgICAgeG1sU2NoZW1hUGFyc2VOb3RhdGlvbihjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9IGVsc2UgeworCSAgICB4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkJTlVMTCwgY2hpbGQtPnBhcmVudCwgY2hpbGQsCisJCU5VTEwsICIoKGluY2x1ZGUgfCBpbXBvcnQgfCByZWRlZmluZSB8IGFubm90YXRpb24pKiwgIgorCQkiKCgoc2ltcGxlVHlwZSB8IGNvbXBsZXhUeXBlIHwgZ3JvdXAgfCBhdHRyaWJ1dGVHcm91cCkgIgorCQkifCBlbGVtZW50IHwgYXR0cmlidXRlIHwgbm90YXRpb24pLCBhbm5vdGF0aW9uKikqKSIpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKwl3aGlsZSAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisJICAgIC8qCisJICAgICogVE9ETzogV2Ugc2hvdWxkIGFkZCBhbGwgYW5ub3RhdGlvbnMuCisJICAgICovCisJICAgIGFubm90ID0geG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKGN0eHQsIGNoaWxkLCAxKTsKKwkgICAgaWYgKHNjaGVtYS0+YW5ub3QgPT0gTlVMTCkKKwkJc2NoZW1hLT5hbm5vdCA9IGFubm90OworCSAgICBlbHNlCisJCXhtbFNjaGVtYUZyZWVBbm5vdChhbm5vdCk7CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfQorICAgIH0KK2V4aXQ6CisgICAgY3R4dC0+Y3R4dFR5cGUgPSBOVUxMOworICAgIGlmIChvbGRFcnJzICE9IGN0eHQtPm5iZXJyb3JzKQorCXJlcyA9IGN0eHQtPmVycjsKKyAgICByZXR1cm4ocmVzKTsKK2V4aXRfZmFpbHVyZToKKyAgICByZXR1cm4oLTEpOworfQorCitzdGF0aWMgeG1sU2NoZW1hU2NoZW1hUmVsYXRpb25QdHIKK3htbFNjaGVtYVNjaGVtYVJlbGF0aW9uQ3JlYXRlKHZvaWQpCit7CisgICAgeG1sU2NoZW1hU2NoZW1hUmVsYXRpb25QdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyKQorCXhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hU2NoZW1hUmVsYXRpb24pKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyTWVtb3J5KE5VTEwsICJhbGxvY2F0aW5nIHNjaGVtYSByZWxhdGlvbiIsIE5VTEwpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uKSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNpZiAwCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hU2NoZW1hUmVsYXRpb25GcmVlKHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIHJlbCkKK3sKKyAgICB4bWxGcmVlKHJlbCk7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQKK3htbFNjaGVtYVJlZGVmTGlzdEZyZWUoeG1sU2NoZW1hUmVkZWZQdHIgcmVkZWYpCit7CisgICAgeG1sU2NoZW1hUmVkZWZQdHIgcHJldjsKKworICAgIHdoaWxlIChyZWRlZiAhPSBOVUxMKSB7CisJcHJldiA9IHJlZGVmOworCXJlZGVmID0gcmVkZWYtPm5leHQ7CisJeG1sRnJlZShwcmV2KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0RnJlZSh4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0UHRyIGNvbikKK3sKKyAgICAvKgorICAgICogQWZ0ZXIgdGhlIGNvbnN0cnVjdGlvbiBjb250ZXh0IGhhcyBiZWVuIGZyZWVkLCB0aGVyZSB3aWxsIGJlCisgICAgKiBubyBzY2hlbWEgZ3JhcGggYXZhaWxhYmxlIGFueSBtb3JlLiBPbmx5IHRoZSBzY2hlbWEgYnVja2V0cworICAgICogd2lsbCBzdGF5IGFsaXZlLCB3aGljaCBhcmUgcHV0IGludG8gdGhlICJzY2hlbWFzSW1wb3J0cyIgYW5kCisgICAgKiAiaW5jbHVkZXMiIHNsb3RzIG9mIHRoZSB4bWxTY2hlbWEuCisgICAgKi8KKyAgICBpZiAoY29uLT5idWNrZXRzICE9IE5VTEwpCisJeG1sU2NoZW1hSXRlbUxpc3RGcmVlKGNvbi0+YnVja2V0cyk7CisgICAgaWYgKGNvbi0+cGVuZGluZyAhPSBOVUxMKQorCXhtbFNjaGVtYUl0ZW1MaXN0RnJlZShjb24tPnBlbmRpbmcpOworICAgIGlmIChjb24tPnN1YnN0R3JvdXBzICE9IE5VTEwpCisJeG1sSGFzaEZyZWUoY29uLT5zdWJzdEdyb3VwcywKKwkgICAgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sU2NoZW1hU3Vic3RHcm91cEZyZWUpOworICAgIGlmIChjb24tPnJlZGVmcyAhPSBOVUxMKQorCXhtbFNjaGVtYVJlZGVmTGlzdEZyZWUoY29uLT5yZWRlZnMpOworICAgIGlmIChjb24tPmRpY3QgIT0gTlVMTCkKKwl4bWxEaWN0RnJlZShjb24tPmRpY3QpOworICAgIHhtbEZyZWUoY29uKTsKK30KKworc3RhdGljIHhtbFNjaGVtYUNvbnN0cnVjdGlvbkN0eHRQdHIKK3htbFNjaGVtYUNvbnN0cnVjdGlvbkN0eHRDcmVhdGUoeG1sRGljdFB0ciBkaWN0KQoreworICAgIHhtbFNjaGVtYUNvbnN0cnVjdGlvbkN0eHRQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYUNvbnN0cnVjdGlvbkN0eHRQdHIpCisJeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVBFcnJNZW1vcnkoTlVMTCwKKwkgICAgImFsbG9jYXRpbmcgc2NoZW1hIGNvbnN0cnVjdGlvbiBjb250ZXh0IiwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0KSk7CisKKyAgICByZXQtPmJ1Y2tldHMgPSB4bWxTY2hlbWFJdGVtTGlzdENyZWF0ZSgpOworICAgIGlmIChyZXQtPmJ1Y2tldHMgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBFcnJNZW1vcnkoTlVMTCwKKwkgICAgImFsbG9jYXRpbmcgbGlzdCBvZiBzY2hlbWEgYnVja2V0cyIsIE5VTEwpOworCXhtbEZyZWUocmV0KTsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgcmV0LT5wZW5kaW5nID0geG1sU2NoZW1hSXRlbUxpc3RDcmVhdGUoKTsKKyAgICBpZiAocmV0LT5wZW5kaW5nID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQRXJyTWVtb3J5KE5VTEwsCisJICAgICJhbGxvY2F0aW5nIGxpc3Qgb2YgcGVuZGluZyBnbG9iYWwgY29tcG9uZW50cyIsIE5VTEwpOworCXhtbFNjaGVtYUNvbnN0cnVjdGlvbkN0eHRGcmVlKHJldCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIHJldC0+ZGljdCA9IGRpY3Q7CisgICAgeG1sRGljdFJlZmVyZW5jZShkaWN0KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIKK3htbFNjaGVtYVBhcnNlckN0eHRDcmVhdGUodm9pZCkKK3sKKyAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYVBhcnNlckN0eHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sU2NoZW1hUEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBzY2hlbWEgcGFyc2VyIGNvbnRleHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sU2NoZW1hUGFyc2VyQ3R4dCkpOworICAgIHJldC0+dHlwZSA9IFhNTF9TQ0hFTUFfQ1RYVF9QQVJTRVI7CisgICAgcmV0LT5hdHRyUHJvaGlicyA9IHhtbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKCk7CisgICAgaWYgKHJldC0+YXR0clByb2hpYnMgPT0gTlVMTCkgeworCXhtbEZyZWUocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYU5ld1BhcnNlckN0eHRVc2VEaWN0OgorICogQFVSTDogIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hCisgKiBAZGljdDogdGhlIGRpY3Rpb25hcnkgdG8gYmUgdXNlZAorICoKKyAqIENyZWF0ZSBhbiBYTUwgU2NoZW1hcyBwYXJzZSBjb250ZXh0IGZvciB0aGF0IGZpbGUvcmVzb3VyY2UgZXhwZWN0ZWQKKyAqIHRvIGNvbnRhaW4gYW4gWE1MIFNjaGVtYXMgZmlsZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIKK3htbFNjaGVtYU5ld1BhcnNlckN0eHRVc2VEaWN0KGNvbnN0IGNoYXIgKlVSTCwgeG1sRGljdFB0ciBkaWN0KQoreworICAgIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcmV0OworCisgICAgcmV0ID0geG1sU2NoZW1hUGFyc2VyQ3R4dENyZWF0ZSgpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICByZXQtPmRpY3QgPSBkaWN0OworICAgIHhtbERpY3RSZWZlcmVuY2UoZGljdCk7CisgICAgaWYgKFVSTCAhPSBOVUxMKQorCXJldC0+VVJMID0geG1sRGljdExvb2t1cChkaWN0LCAoY29uc3QgeG1sQ2hhciAqKSBVUkwsIC0xKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNyZWF0ZVBDdHh0T25WQ3R4dCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgaWYgKHZjdHh0LT5wY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIGlmICh2Y3R4dC0+c2NoZW1hICE9IE5VTEwpCisJICAgIHZjdHh0LT5wY3R4dCA9CisJCXhtbFNjaGVtYU5ld1BhcnNlckN0eHRVc2VEaWN0KCIqIiwgdmN0eHQtPnNjaGVtYS0+ZGljdCk7CisJZWxzZQorCSAgICB2Y3R4dC0+cGN0eHQgPSB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0KCIqIik7CisJaWYgKHZjdHh0LT5wY3R4dCA9PSBOVUxMKSB7CisJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYUNyZWF0ZVBDdHh0T25WQ3R4dCIsCisJCSJmYWlsZWQgdG8gY3JlYXRlIGEgdGVtcC4gcGFyc2VyIGNvbnRleHQiKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCS8qIFRPRE86IFBhc3MgdXNlciBkYXRhLiAqLworCXhtbFNjaGVtYVNldFBhcnNlckVycm9ycyh2Y3R4dC0+cGN0eHQsIHZjdHh0LT5lcnJvciwKKwkgICAgdmN0eHQtPndhcm5pbmcsIHZjdHh0LT5lcnJDdHh0KTsKKwl4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzKHZjdHh0LT5wY3R4dCwgdmN0eHQtPnNlcnJvciwKKwkgICAgdmN0eHQtPmVyckN0eHQpOworICAgIH0KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldFNjaGVtYUJ1Y2tldDoKKyAqIEBwY3R4dDogdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHNjaGVtYUxvY2F0aW9uOiB0aGUgVVJJIG9mIHRoZSBzY2hlbWEgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm5zIGEgc2NoZW1hIGJ1Y2tldCBpZiBpdCB3YXMgYWxyZWFkeSBwYXJzZWQuCisgKgorICogUmV0dXJucyBhIHNjaGVtYSBidWNrZXQgaWYgaXQgd2FzIGFscmVhZHkgcGFyc2VkIGZyb20KKyAqICAgICAgICAgQHNjaGVtYUxvY2F0aW9uLCBOVUxMIG90aGVyd2lzZS4KKyAqLworc3RhdGljIHhtbFNjaGVtYUJ1Y2tldFB0cgoreG1sU2NoZW1hR2V0U2NoZW1hQnVja2V0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgICAgY29uc3QgeG1sQ2hhciAqc2NoZW1hTG9jYXRpb24pCit7CisgICAgeG1sU2NoZW1hQnVja2V0UHRyIGN1cjsKKyAgICB4bWxTY2hlbWFJdGVtTGlzdFB0ciBsaXN0OworCisgICAgbGlzdCA9IHBjdHh0LT5jb25zdHJ1Y3Rvci0+YnVja2V0czsKKyAgICBpZiAobGlzdC0+bmJJdGVtcyA9PSAwKQorCXJldHVybihOVUxMKTsKKyAgICBlbHNlIHsKKwlpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgbGlzdC0+bmJJdGVtczsgaSsrKSB7CisJICAgIGN1ciA9ICh4bWxTY2hlbWFCdWNrZXRQdHIpIGxpc3QtPml0ZW1zW2ldOworCSAgICAvKiBQb2ludGVyIGNvbXBhcmlzb24hICovCisJICAgIGlmIChjdXItPnNjaGVtYUxvY2F0aW9uID09IHNjaGVtYUxvY2F0aW9uKQorCQlyZXR1cm4oY3VyKTsKKwl9CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworc3RhdGljIHhtbFNjaGVtYUJ1Y2tldFB0cgoreG1sU2NoZW1hR2V0Q2hhbWVsZW9uU2NoZW1hQnVja2V0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkJICAgICBjb25zdCB4bWxDaGFyICpzY2hlbWFMb2NhdGlvbiwKKwkJCQkgICAgIGNvbnN0IHhtbENoYXIgKnRhcmdldE5hbWVzcGFjZSkKK3sKKyAgICB4bWxTY2hlbWFCdWNrZXRQdHIgY3VyOworICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIGxpc3Q7CisKKyAgICBsaXN0ID0gcGN0eHQtPmNvbnN0cnVjdG9yLT5idWNrZXRzOworICAgIGlmIChsaXN0LT5uYkl0ZW1zID09IDApCisJcmV0dXJuKE5VTEwpOworICAgIGVsc2UgeworCWludCBpOworCWZvciAoaSA9IDA7IGkgPCBsaXN0LT5uYkl0ZW1zOyBpKyspIHsKKwkgICAgY3VyID0gKHhtbFNjaGVtYUJ1Y2tldFB0cikgbGlzdC0+aXRlbXNbaV07CisJICAgIC8qIFBvaW50ZXIgY29tcGFyaXNvbiEgKi8KKwkgICAgaWYgKChjdXItPm9yaWdUYXJnZXROYW1lc3BhY2UgPT0gTlVMTCkgJiYKKwkJKGN1ci0+c2NoZW1hTG9jYXRpb24gPT0gc2NoZW1hTG9jYXRpb24pICYmCisJCShjdXItPnRhcmdldE5hbWVzcGFjZSA9PSB0YXJnZXROYW1lc3BhY2UpKQorCQlyZXR1cm4oY3VyKTsKKwl9CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworCisjZGVmaW5lIElTX0JBRF9TQ0hFTUFfRE9DKGIpIFwKKyAgICAoKChiKS0+ZG9jID09IE5VTEwpICYmICgoYiktPnNjaGVtYUxvY2F0aW9uICE9IE5VTEwpKQorCitzdGF0aWMgeG1sU2NoZW1hQnVja2V0UHRyCit4bWxTY2hlbWFHZXRTY2hlbWFCdWNrZXRCeVROUyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCSBjb25zdCB4bWxDaGFyICp0YXJnZXROYW1lc3BhY2UsCisJCQkJIGludCBpbXBvcnRlZCkKK3sKKyAgICB4bWxTY2hlbWFCdWNrZXRQdHIgY3VyOworICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIGxpc3Q7CisKKyAgICBsaXN0ID0gcGN0eHQtPmNvbnN0cnVjdG9yLT5idWNrZXRzOworICAgIGlmIChsaXN0LT5uYkl0ZW1zID09IDApCisJcmV0dXJuKE5VTEwpOworICAgIGVsc2UgeworCWludCBpOworCWZvciAoaSA9IDA7IGkgPCBsaXN0LT5uYkl0ZW1zOyBpKyspIHsKKwkgICAgY3VyID0gKHhtbFNjaGVtYUJ1Y2tldFB0cikgbGlzdC0+aXRlbXNbaV07CisJICAgIGlmICgoISBJU19CQURfU0NIRU1BX0RPQyhjdXIpKSAmJgorCQkoY3VyLT5vcmlnVGFyZ2V0TmFtZXNwYWNlID09IHRhcmdldE5hbWVzcGFjZSkgJiYKKwkJKChpbXBvcnRlZCAmJiBjdXItPmltcG9ydGVkKSB8fAorCQkgKCghaW1wb3J0ZWQpICYmICghY3VyLT5pbXBvcnRlZCkpKSkKKwkJcmV0dXJuKGN1cik7CisJfQorICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBhcnNlTmV3RG9jV2l0aENvbnRleHQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQkgICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciBidWNrZXQpCit7CisgICAgaW50IG9sZEZsYWdzOworICAgIHhtbERvY1B0ciBvbGREb2M7CisgICAgeG1sTm9kZVB0ciBub2RlOworICAgIGludCByZXQsIG9sZEVycnM7CisgICAgeG1sU2NoZW1hQnVja2V0UHRyIG9sZGJ1Y2tldCA9IHBjdHh0LT5jb25zdHJ1Y3Rvci0+YnVja2V0OworCisgICAgLyoKKyAgICAqIFNhdmUgb2xkIHZhbHVlczsgcmVzZXQgdGhlICptYWluKiBzY2hlbWEuCisgICAgKiBVUkdFTlQgVE9ETzogVGhpcyBpcyBub3QgZ29vZDsgbW92ZSB0aGUgcGVyLWRvY3VtZW50IGluZm9ybWF0aW9uCisgICAgKiB0byB0aGUgcGFyc2VyLiBHZXQgcmlkIG9mIHBhc3NpbmcgdGhlIG1haW4gc2NoZW1hIHRvIHRoZQorICAgICogcGFyc2luZyBmdW5jdGlvbnMuCisgICAgKi8KKyAgICBvbGRGbGFncyA9IHNjaGVtYS0+ZmxhZ3M7CisgICAgb2xkRG9jID0gc2NoZW1hLT5kb2M7CisgICAgaWYgKHNjaGVtYS0+ZmxhZ3MgIT0gMCkKKwl4bWxTY2hlbWFDbGVhclNjaGVtYURlZmF1bHRzKHNjaGVtYSk7CisgICAgc2NoZW1hLT5kb2MgPSBidWNrZXQtPmRvYzsKKyAgICBwY3R4dC0+c2NoZW1hID0gc2NoZW1hOworICAgIC8qCisgICAgKiBLZWVwIHRoZSBjdXJyZW50IHRhcmdldCBuYW1lc3BhY2Ugb24gdGhlIHBhcnNlciAqbm90KiBvbiB0aGUKKyAgICAqIG1haW4gc2NoZW1hLgorICAgICovCisgICAgcGN0eHQtPnRhcmdldE5hbWVzcGFjZSA9IGJ1Y2tldC0+dGFyZ2V0TmFtZXNwYWNlOworICAgIFdYU19DT05TVFJVQ1RPUihwY3R4dCktPmJ1Y2tldCA9IGJ1Y2tldDsKKworICAgIGlmICgoYnVja2V0LT50YXJnZXROYW1lc3BhY2UgIT0gTlVMTCkgJiYKKwl4bWxTdHJFcXVhbChidWNrZXQtPnRhcmdldE5hbWVzcGFjZSwgeG1sU2NoZW1hTnMpKSB7CisJLyoKKwkqIFdlIGFyZSBwYXJzaW5nIHRoZSBzY2hlbWEgZm9yIHNjaGVtYXMhCisJKi8KKwlwY3R4dC0+aXNTNFMgPSAxOworICAgIH0KKyAgICAvKiBNYXJrIGl0IGFzIHBhcnNlZCwgZXZlbiBpZiBwYXJzaW5nIGZhaWxzLiAqLworICAgIGJ1Y2tldC0+cGFyc2VkKys7CisgICAgLyogQ29tcGlsZSB0aGUgc2NoZW1hIGRvYy4gKi8KKyAgICBub2RlID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoYnVja2V0LT5kb2MpOworICAgIHJldCA9IHhtbFNjaGVtYVBhcnNlU2NoZW1hRWxlbWVudChwY3R4dCwgc2NoZW1hLCBub2RlKTsKKyAgICBpZiAocmV0ICE9IDApCisJZ290byBleGl0OworICAgIC8qIEFuIGVtcHR5IHNjaGVtYTsganVzdCBnZXQgb3V0LiAqLworICAgIGlmIChub2RlLT5jaGlsZHJlbiA9PSBOVUxMKQorCWdvdG8gZXhpdDsKKyAgICBvbGRFcnJzID0gcGN0eHQtPm5iZXJyb3JzOworICAgIHJldCA9IHhtbFNjaGVtYVBhcnNlU2NoZW1hVG9wTGV2ZWwocGN0eHQsIHNjaGVtYSwgbm9kZS0+Y2hpbGRyZW4pOworICAgIGlmIChyZXQgIT0gMCkKKwlnb3RvIGV4aXQ7CisgICAgLyoKKyAgICAqIFRPRE86IE5vdCBuaWNlLCBidXQgSSdtIG5vdCAxMDAlIHN1cmUgd2Ugd2lsbCBnZXQgYWx3YXlzIGFuIGVycm9yCisgICAgKiBhcyBhIHJlc3VsdCBvZiB0aGUgb2JvdmUgZnVuY3Rpb25zOyBzbyBiZXR0ZXIgcmVseSBvbiBwY3R4dC0+ZXJyCisgICAgKiBhcyB3ZWxsLgorICAgICovCisgICAgaWYgKChyZXQgPT0gMCkgJiYgKG9sZEVycnMgIT0gcGN0eHQtPm5iZXJyb3JzKSkgeworCXJldCA9IHBjdHh0LT5lcnI7CisJZ290byBleGl0OworICAgIH0KKworZXhpdDoKKyAgICBXWFNfQ09OU1RSVUNUT1IocGN0eHQpLT5idWNrZXQgPSBvbGRidWNrZXQ7CisgICAgLyogUmVzdG9yZSBzY2hlbWEgdmFsdWVzLiAqLworICAgIHNjaGVtYS0+ZG9jID0gb2xkRG9jOworICAgIHNjaGVtYS0+ZmxhZ3MgPSBvbGRGbGFnczsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hUGFyc2VOZXdEb2MoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQkgICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciBidWNrZXQpCit7CisgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBuZXdwY3R4dDsKKyAgICBpbnQgcmVzID0gMDsKKworICAgIGlmIChidWNrZXQgPT0gTlVMTCkKKwlyZXR1cm4oMCk7CisgICAgaWYgKGJ1Y2tldC0+cGFyc2VkKSB7CisJUEVSUk9SX0lOVCgieG1sU2NoZW1hUGFyc2VOZXdEb2MiLAorCSAgICAicmVwYXJzaW5nIGEgc2NoZW1hIGRvYyIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChidWNrZXQtPmRvYyA9PSBOVUxMKSB7CisJUEVSUk9SX0lOVCgieG1sU2NoZW1hUGFyc2VOZXdEb2MiLAorCSAgICAicGFyc2luZyBhIHNjaGVtYSBkb2MsIGJ1dCB0aGVyZSdzIG5vIGRvYyIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChwY3R4dC0+Y29uc3RydWN0b3IgPT0gTlVMTCkgeworCVBFUlJPUl9JTlQoInhtbFNjaGVtYVBhcnNlTmV3RG9jIiwKKwkgICAgIm5vIGNvbnN0cnVjdG9yIik7CisJcmV0dXJuKC0xKTsKKyAgICB9CisgICAgLyogQ3JlYXRlIGFuZCBpbml0IHRoZSB0ZW1wb3JhcnkgcGFyc2VyIGNvbnRleHQuICovCisgICAgbmV3cGN0eHQgPSB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0VXNlRGljdCgKKwkoY29uc3QgY2hhciAqKSBidWNrZXQtPnNjaGVtYUxvY2F0aW9uLCBwY3R4dC0+ZGljdCk7CisgICAgaWYgKG5ld3BjdHh0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBuZXdwY3R4dC0+Y29uc3RydWN0b3IgPSBwY3R4dC0+Y29uc3RydWN0b3I7CisgICAgLyoKKyAgICAqIFRPRE86IENhbiB3ZSBhdm9pZCB0aGF0IHRoZSBwYXJzZXIga25vd3MgYWJvdXQgdGhlIG1haW4gc2NoZW1hPworICAgICogSXQgd291bGQgYmUgYmV0dGVyIGlmIGhlIGtub3dzIGFib3V0IHRoZSBjdXJyZW50IHNjaGVtYSBidWNrZXQKKyAgICAqIG9ubHkuCisgICAgKi8KKyAgICBuZXdwY3R4dC0+c2NoZW1hID0gc2NoZW1hOworICAgIHhtbFNjaGVtYVNldFBhcnNlckVycm9ycyhuZXdwY3R4dCwgcGN0eHQtPmVycm9yLCBwY3R4dC0+d2FybmluZywKKwlwY3R4dC0+ZXJyQ3R4dCk7CisgICAgeG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyhuZXdwY3R4dCwgcGN0eHQtPnNlcnJvciwKKwlwY3R4dC0+ZXJyQ3R4dCk7CisgICAgbmV3cGN0eHQtPmNvdW50ZXIgPSBwY3R4dC0+Y291bnRlcjsKKworCisgICAgcmVzID0geG1sU2NoZW1hUGFyc2VOZXdEb2NXaXRoQ29udGV4dChuZXdwY3R4dCwgc2NoZW1hLCBidWNrZXQpOworCisgICAgLyogQ2hhbm5lbCBiYWNrIGVycm9ycyBhbmQgY2xlYW51cCB0aGUgdGVtcG9yYXJ5IHBhcnNlciBjb250ZXh0LiAqLworICAgIGlmIChyZXMgIT0gMCkKKwlwY3R4dC0+ZXJyID0gcmVzOworICAgIHBjdHh0LT5uYmVycm9ycyArPSBuZXdwY3R4dC0+bmJlcnJvcnM7CisgICAgcGN0eHQtPmNvdW50ZXIgPSBuZXdwY3R4dC0+Y291bnRlcjsKKyAgICBuZXdwY3R4dC0+Y29uc3RydWN0b3IgPSBOVUxMOworICAgIC8qIEZyZWUgdGhlIHBhcnNlciBjb250ZXh0LiAqLworICAgIHhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0KG5ld3BjdHh0KTsKKyAgICByZXR1cm4ocmVzKTsKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYVNjaGVtYVJlbGF0aW9uQWRkQ2hpbGQoeG1sU2NoZW1hQnVja2V0UHRyIGJ1Y2tldCwKKwkJCQl4bWxTY2hlbWFTY2hlbWFSZWxhdGlvblB0ciByZWwpCit7CisgICAgeG1sU2NoZW1hU2NoZW1hUmVsYXRpb25QdHIgY3VyID0gYnVja2V0LT5yZWxhdGlvbnM7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwlidWNrZXQtPnJlbGF0aW9ucyA9IHJlbDsKKwlyZXR1cm47CisgICAgfQorICAgIHdoaWxlIChjdXItPm5leHQgIT0gTlVMTCkKKwljdXIgPSBjdXItPm5leHQ7CisgICAgY3VyLT5uZXh0ID0gcmVsOworfQorCisKK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbFNjaGVtYUJ1aWxkQWJzb2x1dGVVUkkoeG1sRGljdFB0ciBkaWN0LCBjb25zdCB4bWxDaGFyKiBsb2NhdGlvbiwKKwkJCSAgeG1sTm9kZVB0ciBjdHh0Tm9kZSkKK3sKKyAgICAvKgorICAgICogQnVpbGQgYW4gYWJzb2x1ZSBsb2NhdGlvbiBVUkkuCisgICAgKi8KKyAgICBpZiAobG9jYXRpb24gIT0gTlVMTCkgeworCWlmIChjdHh0Tm9kZSA9PSBOVUxMKQorCSAgICByZXR1cm4obG9jYXRpb24pOworCWVsc2UgeworCSAgICB4bWxDaGFyICpiYXNlLCAqVVJJOworCSAgICBjb25zdCB4bWxDaGFyICpyZXQgPSBOVUxMOworCisJICAgIGJhc2UgPSB4bWxOb2RlR2V0QmFzZShjdHh0Tm9kZS0+ZG9jLCBjdHh0Tm9kZSk7CisJICAgIGlmIChiYXNlID09IE5VTEwpIHsKKwkJVVJJID0geG1sQnVpbGRVUkkobG9jYXRpb24sIGN0eHROb2RlLT5kb2MtPlVSTCk7CisJICAgIH0gZWxzZSB7CisJCVVSSSA9IHhtbEJ1aWxkVVJJKGxvY2F0aW9uLCBiYXNlKTsKKwkJeG1sRnJlZShiYXNlKTsKKwkgICAgfQorCSAgICBpZiAoVVJJICE9IE5VTEwpIHsKKwkJcmV0ID0geG1sRGljdExvb2t1cChkaWN0LCBVUkksIC0xKTsKKwkJeG1sRnJlZShVUkkpOworCQlyZXR1cm4ocmV0KTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisKKworLyoqCisgKiB4bWxTY2hlbWFBZGRTY2hlbWFEb2M6CisgKiBAcGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKgorICogUGFyc2UgYW4gaW5jbHVkZWQgKGFuZCB0by1iZS1yZWRlZmluZWQpIFhNTCBzY2hlbWEgZG9jdW1lbnQuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBvbiBlcnJvcnMgYW5kCisgKiAgICAgICAgIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUFkZFNjaGVtYURvYyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQlpbnQgdHlwZSwgLyogaW1wb3J0IG9yIGluY2x1ZGUgb3IgcmVkZWZpbmUgKi8KKwkJY29uc3QgeG1sQ2hhciAqc2NoZW1hTG9jYXRpb24sCisJCXhtbERvY1B0ciBzY2hlbWFEb2MsCisJCWNvbnN0IGNoYXIgKnNjaGVtYUJ1ZmZlciwKKwkJaW50IHNjaGVtYUJ1ZmZlckxlbiwKKwkJeG1sTm9kZVB0ciBpbnZva2luZ05vZGUsCisJCWNvbnN0IHhtbENoYXIgKnNvdXJjZVRhcmdldE5hbWVzcGFjZSwKKwkJY29uc3QgeG1sQ2hhciAqaW1wb3J0TmFtZXNwYWNlLAorCQl4bWxTY2hlbWFCdWNrZXRQdHIgKmJ1Y2tldCkKK3sKKyAgICBjb25zdCB4bWxDaGFyICp0YXJnZXROYW1lc3BhY2UgPSBOVUxMOworICAgIHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uUHRyIHJlbGF0aW9uID0gTlVMTDsKKyAgICB4bWxEb2NQdHIgZG9jID0gTlVMTDsKKyAgICBpbnQgcmVzID0gMCwgZXJyID0gMCwgbG9jYXRlZCA9IDAsIHByZXNlcnZlRG9jID0gMDsKKyAgICB4bWxTY2hlbWFCdWNrZXRQdHIgYmt0ID0gTlVMTDsKKworICAgIGlmIChidWNrZXQgIT0gTlVMTCkKKwkqYnVja2V0ID0gTlVMTDsKKworICAgIHN3aXRjaCAodHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQV9TQ0hFTUFfSU1QT1JUOgorCWNhc2UgWE1MX1NDSEVNQV9TQ0hFTUFfTUFJTjoKKwkgICAgZXJyID0gWE1MX1NDSEVNQVBfU1JDX0lNUE9SVDsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1NDSEVNQV9JTkNMVURFOgorCSAgICBlcnIgPSBYTUxfU0NIRU1BUF9TUkNfSU5DTFVERTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BX1NDSEVNQV9SRURFRklORToKKwkgICAgZXJyID0gWE1MX1NDSEVNQVBfU1JDX1JFREVGSU5FOworCSAgICBicmVhazsKKyAgICB9CisKKworICAgIC8qIFNwZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSBtYWluIHNjaGVtYToKKyAgICAqIHNraXAgdGhlIGxvY2F0aW9uIGFuZCByZWxhdGlvbiBsb2dpYyBhbmQganVzdCBwYXJzZSB0aGUgZG9jLgorICAgICogV2UgbmVlZCBqdXN0IGEgYnVja2V0IHRvIGJlIHJldHVybmVkIGluIHRoaXMgY2FzZS4KKyAgICAqLworICAgIGlmICgodHlwZSA9PSBYTUxfU0NIRU1BX1NDSEVNQV9NQUlOKSB8fCAoISBXWFNfSEFTX0JVQ0tFVFMocGN0eHQpKSkKKwlnb3RvIGRvY19sb2FkOworCisgICAgLyogTm90ZSB0aGF0IHdlIGV4cGVjdCB0aGUgbG9jYXRpb24gdG8gYmUgYW4gYWJzdWx1dGUgVVJJLiAqLworICAgIGlmIChzY2hlbWFMb2NhdGlvbiAhPSBOVUxMKSB7CisJYmt0ID0geG1sU2NoZW1hR2V0U2NoZW1hQnVja2V0KHBjdHh0LCBzY2hlbWFMb2NhdGlvbik7CisJaWYgKChia3QgIT0gTlVMTCkgJiYKKwkgICAgKHBjdHh0LT5jb25zdHJ1Y3Rvci0+YnVja2V0ID09IGJrdCkpIHsKKwkgICAgLyogUmVwb3J0IHNlbGYtaW1wb3J0cy9pbmNsdXNpb25zL3JlZGVmaW5pdGlvbnMuICovCisKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsIGVyciwKKwkJaW52b2tpbmdOb2RlLCBOVUxMLAorCQkiVGhlIHNjaGVtYSBtdXN0IG5vdCBpbXBvcnQvaW5jbHVkZS9yZWRlZmluZSBpdHNlbGYiLAorCQlOVUxMLCBOVUxMKTsKKwkgICAgZ290byBleGl0OworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIENyZWF0ZSBhIHJlbGF0aW9uIGZvciB0aGUgZ3JhcGggb2Ygc2NoZW1hcy4KKyAgICAqLworICAgIHJlbGF0aW9uID0geG1sU2NoZW1hU2NoZW1hUmVsYXRpb25DcmVhdGUoKTsKKyAgICBpZiAocmVsYXRpb24gPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIHhtbFNjaGVtYVNjaGVtYVJlbGF0aW9uQWRkQ2hpbGQocGN0eHQtPmNvbnN0cnVjdG9yLT5idWNrZXQsCisJcmVsYXRpb24pOworICAgIHJlbGF0aW9uLT50eXBlID0gdHlwZTsKKworICAgIC8qCisgICAgKiBTYXZlIHRoZSBuYW1lc3BhY2UgaW1wb3J0IGluZm9ybWF0aW9uLgorICAgICovCisgICAgaWYgKFdYU19JU19CVUNLRVRfSU1QTUFJTih0eXBlKSkgeworCXJlbGF0aW9uLT5pbXBvcnROYW1lc3BhY2UgPSBpbXBvcnROYW1lc3BhY2U7CisJaWYgKHNjaGVtYUxvY2F0aW9uID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBObyBsb2NhdGlvbjsgdGhpcyBpcyBqdXN0IGFuIGltcG9ydCBvZiB0aGUgbmFtZXNwYWNlLgorCSAgICAqIE5vdGUgdGhhdCB3ZSBkb24ndCBhc3NpZ24gYSBidWNrZXQgdG8gdGhlIHJlbGF0aW9uCisJICAgICogaW4gdGhpcyBjYXNlLgorCSAgICAqLworCSAgICBnb3RvIGV4aXQ7CisJfQorCXRhcmdldE5hbWVzcGFjZSA9IGltcG9ydE5hbWVzcGFjZTsKKyAgICB9CisKKyAgICAvKiBEaWQgd2UgYWxyZWFkeSBmZXRjaCB0aGUgZG9jPyAqLworICAgIGlmIChia3QgIT0gTlVMTCkgeworCWlmICgoV1hTX0lTX0JVQ0tFVF9JTVBNQUlOKHR5cGUpKSAmJiAoISBia3QtPmltcG9ydGVkKSkgeworCSAgICAvKgorCSAgICAqIFdlIGluY2x1ZGVkL3JlZGVmaW5lZCBhbmQgdGhlbiB0cnkgdG8gaW1wb3J0IGEgc2NoZW1hLAorCSAgICAqIGJ1dCB0aGUgbmV3IGxvY2F0aW9uIHByb3ZpZGVkIGZvciBpbXBvcnQgd2FzIGRpZmZlcmVudC4KKwkgICAgKi8KKwkgICAgaWYgKHNjaGVtYUxvY2F0aW9uID09IE5VTEwpCisJCXNjaGVtYUxvY2F0aW9uID0gQkFEX0NBU1QgImluX21lbW9yeV9idWZmZXIiOworCSAgICBpZiAoIXhtbFN0ckVxdWFsKHNjaGVtYUxvY2F0aW9uLAorCQlia3QtPnNjaGVtYUxvY2F0aW9uKSkgeworCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwgZXJyLAorCQkgICAgaW52b2tpbmdOb2RlLCBOVUxMLAorCQkgICAgIlRoZSBzY2hlbWEgZG9jdW1lbnQgJyVzJyBjYW5ub3QgYmUgaW1wb3J0ZWQsIHNpbmNlICIKKwkJICAgICJpdCB3YXMgYWxyZWFkeSBpbmNsdWRlZCBvciByZWRlZmluZWQiLAorCQkgICAgc2NoZW1hTG9jYXRpb24sIE5VTEwpOworCQlnb3RvIGV4aXQ7CisJICAgIH0KKwl9IGVsc2UgaWYgKCghIFdYU19JU19CVUNLRVRfSU1QTUFJTih0eXBlKSkgJiYgKGJrdC0+aW1wb3J0ZWQpKSB7CisJICAgIC8qCisJICAgICogV2UgaW1wb3J0ZWQgYW5kIHRoZW4gdHJ5IHRvIGluY2x1ZGUvcmVkZWZpbmUgYSBzY2hlbWEsCisJICAgICogYnV0IHRoZSBuZXcgbG9jYXRpb24gcHJvdmlkZWQgZm9yIHRoZSBpbmNsdWRlL3JlZGVmaW5lCisJICAgICogd2FzIGRpZmZlcmVudC4KKwkgICAgKi8KKwkgICAgaWYgKHNjaGVtYUxvY2F0aW9uID09IE5VTEwpCisJCXNjaGVtYUxvY2F0aW9uID0gQkFEX0NBU1QgImluX21lbW9yeV9idWZmZXIiOworCSAgICBpZiAoIXhtbFN0ckVxdWFsKHNjaGVtYUxvY2F0aW9uLAorCQlia3QtPnNjaGVtYUxvY2F0aW9uKSkgeworCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwgZXJyLAorCQkgICAgaW52b2tpbmdOb2RlLCBOVUxMLAorCQkgICAgIlRoZSBzY2hlbWEgZG9jdW1lbnQgJyVzJyBjYW5ub3QgYmUgaW5jbHVkZWQgb3IgIgorCQkgICAgInJlZGVmaW5lZCwgc2luY2UgaXQgd2FzIGFscmVhZHkgaW1wb3J0ZWQiLAorCQkgICAgc2NoZW1hTG9jYXRpb24sIE5VTEwpOworCQlnb3RvIGV4aXQ7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgaWYgKFdYU19JU19CVUNLRVRfSU1QTUFJTih0eXBlKSkgeworCS8qCisJKiBHaXZlbiB0aGF0IHRoZSBzY2hlbWFMb2NhdGlvbiBbYXR0cmlidXRlXSBpcyBvbmx5IGEgaGludCwgaXQgaXMgb3BlbgorCSogdG8gYXBwbGljYXRpb25zIHRvIGlnbm9yZSBhbGwgYnV0IHRoZSBmaXJzdCA8aW1wb3J0PiBmb3IgYSBnaXZlbgorCSogbmFtZXNwYWNlLCByZWdhcmRsZXNzIG9mIHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2Ygc2NoZW1hTG9jYXRpb24sIGJ1dAorCSogc3VjaCBhIHN0cmF0ZWd5IHJpc2tzIG1pc3NpbmcgdXNlZnVsIGluZm9ybWF0aW9uIHdoZW4gbmV3CisJKiBzY2hlbWFMb2NhdGlvbnMgYXJlIG9mZmVyZWQuCisJKgorCSogV2Ugd2lsbCB1c2UgdGhlIGZpcnN0IDxpbXBvcnQ+IHRoYXQgY29tZXMgd2l0aCBhIGxvY2F0aW9uLgorCSogRnVydGhlciA8aW1wb3J0PnMgKndpdGgqIGEgbG9jYXRpb24sIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLgorCSogVE9ETzogQmV0dGVyIHdvdWxkIGJlIHRvIGp1c3QgcmVwb3J0IGEgd2FybmluZyBoZXJlLCBidXQKKwkqIHdlJ2xsIHRyeSBpdCB0aGlzIHdheSB1bnRpbCBzb21lb25lIGNvbXBsYWlucy4KKwkqCisJKiBTY2hlbWEgRG9jdW1lbnQgTG9jYXRpb24gU3RyYXRlZ3k6CisJKiAzIEJhc2VkIG9uIHRoZSBuYW1lc3BhY2UgbmFtZSwgaWRlbnRpZnkgYW4gZXhpc3Rpbmcgc2NoZW1hIGRvY3VtZW50LAorCSogZWl0aGVyIGFzIGEgcmVzb3VyY2Ugd2hpY2ggaXMgYW4gWE1MIGRvY3VtZW50IG9yIGEgPHNjaGVtYT4gZWxlbWVudAorCSogaW5mb3JtYXRpb24gaXRlbSwgaW4gc29tZSBsb2NhbCBzY2hlbWEgcmVwb3NpdG9yeTsKKwkqIDUgQXR0ZW1wdCB0byByZXNvbHZlIHRoZSBuYW1lc3BhY2UgbmFtZSB0byBsb2NhdGUgc3VjaCBhIHJlc291cmNlLgorCSoKKwkqIE5PVEU6ICgzKSBhbmQgKDUpIGFyZSBub3Qgc3VwcG9ydGVkLgorCSovCisJaWYgKGJrdCAhPSBOVUxMKSB7CisJICAgIHJlbGF0aW9uLT5idWNrZXQgPSBia3Q7CisJICAgIGdvdG8gZXhpdDsKKwl9CisJYmt0ID0geG1sU2NoZW1hR2V0U2NoZW1hQnVja2V0QnlUTlMocGN0eHQsCisJICAgIGltcG9ydE5hbWVzcGFjZSwgMSk7CisKKwlpZiAoYmt0ICE9IE5VTEwpIHsKKwkgICAgcmVsYXRpb24tPmJ1Y2tldCA9IGJrdDsKKwkgICAgaWYgKGJrdC0+c2NoZW1hTG9jYXRpb24gPT0gTlVMTCkgeworCQkvKiBGaXJzdCBnaXZlbiBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hOyBsb2FkIHRoZSBkb2MuICovCisJCWJrdC0+c2NoZW1hTG9jYXRpb24gPSBzY2hlbWFMb2NhdGlvbjsKKwkgICAgfSBlbHNlIHsKKwkJaWYgKCF4bWxTdHJFcXVhbChzY2hlbWFMb2NhdGlvbiwKKwkJICAgIGJrdC0+c2NoZW1hTG9jYXRpb24pKSB7CisJCSAgICAvKgorCQkgICAgKiBBZGRpdGlvbmFsIGxvY2F0aW9uIGdpdmVuOyBqdXN0IHNraXAgaXQuCisJCSAgICAqIFVSR0VOVCBUT0RPOiBXZSBzaG91bGQgcmVwb3J0IGEgd2FybmluZyBoZXJlLgorCQkgICAgKiByZXMgPSBYTUxfU0NIRU1BUF9TUkNfSU1QT1JUOworCQkgICAgKi8KKwkJICAgIGlmIChzY2hlbWFMb2NhdGlvbiA9PSBOVUxMKQorCQkJc2NoZW1hTG9jYXRpb24gPSBCQURfQ0FTVCAiaW5fbWVtb3J5X2J1ZmZlciI7CisKKwkJICAgIHhtbFNjaGVtYUN1c3RvbVdhcm5pbmcoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX1dBUk5fU0tJUF9TQ0hFTUEsCisJCQlpbnZva2luZ05vZGUsIE5VTEwsCisJCQkiU2tpcHBpbmcgaW1wb3J0IG9mIHNjaGVtYSBsb2NhdGVkIGF0ICclcycgZm9yIHRoZSAiCisJCQkibmFtZXNwYWNlICclcycsIHNpbmNlIHRoaXMgbmFtZXNwYWNlIHdhcyBhbHJlYWR5ICIKKwkJCSJpbXBvcnRlZCB3aXRoIHRoZSBzY2hlbWEgbG9jYXRlZCBhdCAnJXMnIiwKKwkJCXNjaGVtYUxvY2F0aW9uLCBpbXBvcnROYW1lc3BhY2UsIGJrdC0+c2NoZW1hTG9jYXRpb24pOworCQl9CisJCWdvdG8gZXhpdDsKKwkgICAgfQorCX0KKwkvKgorCSogTm8gYnVja2V0ICsgZmlyc3QgbG9jYXRpb246IGxvYWQgdGhlIGRvYyBhbmQgY3JlYXRlIGEKKwkqIGJ1Y2tldC4KKwkqLworICAgIH0gZWxzZSB7CisJLyogPGluY2x1ZGU+IGFuZCA8cmVkZWZpbmU+ICovCisJaWYgKGJrdCAhPSBOVUxMKSB7CisKKwkgICAgaWYgKChia3QtPm9yaWdUYXJnZXROYW1lc3BhY2UgPT0gTlVMTCkgJiYKKwkJKGJrdC0+dGFyZ2V0TmFtZXNwYWNlICE9IHNvdXJjZVRhcmdldE5hbWVzcGFjZSkpIHsKKwkJeG1sU2NoZW1hQnVja2V0UHRyIGNoYW1lbDsKKworCQkvKgorCQkqIENoYW1lbGVvbiBpbmNsdWRlL3JlZGVmaW5lOiBza2lwIGxvYWRpbmcgb25seSBpZiBpdCB3YXMKKwkJKiBhbGVhZHkgYnVpbGQgZm9yIHRoZSB0YXJnZXROYW1lc3BhY2Ugb2YgdGhlIGluY2x1ZGluZworCQkqIHNjaGVtYS4KKwkJKi8KKwkJLyoKKwkJKiBVUkdFTlQgVE9ETzogSWYgdGhlIHNjaGVtYSBpcyBhIGNoYW1lbGVvbi1pbmNsdWRlIHRoZW4gY29weQorCQkqIHRoZSBjb21wb25lbnRzIGludG8gdGhlIGluY2x1ZGluZyBzY2hlbWEgYW5kIG1vZGlmeSB0aGUKKwkJKiB0YXJnZXROYW1lc3BhY2Ugb2YgdGhvc2UgY29tcG9uZW50cywgZG8gbm90aGluZyBvdGhlcndpc2UuCisJCSogTk9URTogVGhpcyBpcyBjdXJyZW50bHkgd29ya2VkLWFyb3VuZCBieSBjb21waWxpbmcgdGhlCisJCSogY2hhbWVsZW9uIGZvciBldmVyeSBkZXN0aW5jdCBpbmNsdWRpbmcgdGFyZ2V0TmFtZXNwYWNlOyB0aHVzCisJCSogbm90IHBlcmZvcm1hbnQgYXQgdGhlIG1vbWVudC4KKwkJKiBUT0RPOiBDaGVjayB3aGVuIHRoZSBuYW1lc3BhY2UgaW4gd2lsZGNhcmRzIGZvciBjaGFtZWxlb25zCisJCSogbmVlZHMgdG8gYmUgY29udmVydGVkOiBiZWZvcmUgd2UgYnVpbHQgd2lsZGNhcmQgaW50ZXJzZWN0aW9ucworCQkqIG9yIGFmdGVyLgorCQkqICAgQW5zd2VyOiBhZnRlciEKKwkJKi8KKwkJY2hhbWVsID0geG1sU2NoZW1hR2V0Q2hhbWVsZW9uU2NoZW1hQnVja2V0KHBjdHh0LAorCQkgICAgc2NoZW1hTG9jYXRpb24sIHNvdXJjZVRhcmdldE5hbWVzcGFjZSk7CisJCWlmIChjaGFtZWwgIT0gTlVMTCkgeworCQkgICAgLyogQSBmaXR0aW5nIGNoYW1lbGVvbiB3YXMgYWxyZWFkeSBwYXJzZWQ7IE5PUC4gKi8KKwkJICAgIHJlbGF0aW9uLT5idWNrZXQgPSBjaGFtZWw7CisJCSAgICBnb3RvIGV4aXQ7CisJCX0KKwkJLyoKKwkJKiBXZSBuZWVkIHRvIHBhcnNlIHRoZSBjaGFtZWxlb24gYWdhaW4gZm9yIGEgZGlmZmVyZW50CisJCSogdGFyZ2V0TmFtZXNwYWNlLgorCQkqIENIQU1FTEVPTiBUT0RPOiBPcHRpbWl6ZSB0aGlzIGJ5IG9ubHkgcGFyc2luZyB0aGUKKwkJKiBjaGFtZWxlb24gb25jZSwgYW5kIHRoZW4gY29weWluZyB0aGUgY29tcG9uZW50cyB0bworCQkqIHRoZSBuZXcgdGFyZ2V0TmFtZXNwYWNlLgorCQkqLworCQlia3QgPSBOVUxMOworCSAgICB9IGVsc2UgeworCQlyZWxhdGlvbi0+YnVja2V0ID0gYmt0OworCQlnb3RvIGV4aXQ7CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmICgoYmt0ICE9IE5VTEwpICYmIChia3QtPmRvYyAhPSBOVUxMKSkgeworCVBFUlJPUl9JTlQoInhtbFNjaGVtYUFkZFNjaGVtYURvYyIsCisJICAgICJ0cnlpbmcgdG8gbG9hZCBhIHNjaGVtYSBkb2MsIGJ1dCBhIGRvYyBpcyBhbHJlYWR5ICIKKwkgICAgImFzc2lnbmVkIHRvIHRoZSBzY2hlbWEgYnVja2V0Iik7CisJZ290byBleGl0X2ZhaWx1cmU7CisgICAgfQorCitkb2NfbG9hZDoKKyAgICAvKgorICAgICogTG9hZCB0aGUgZG9jdW1lbnQuCisgICAgKi8KKyAgICBpZiAoc2NoZW1hRG9jICE9IE5VTEwpIHsKKwlkb2MgPSBzY2hlbWFEb2M7CisJLyogRG9uJyBmcmVlIHRoaXMgb25lLCBzaW5jZSBpdCB3YXMgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4gKi8KKwlwcmVzZXJ2ZURvYyA9IDE7CisJLyogVE9ETzogRG9lcyB0aGUgY29udGV4dCBvciB0aGUgZG9jIGhvbGQgdGhlIGxvY2F0aW9uPyAqLworCWlmIChzY2hlbWFEb2MtPlVSTCAhPSBOVUxMKQorCSAgICBzY2hlbWFMb2NhdGlvbiA9IHhtbERpY3RMb29rdXAocGN0eHQtPmRpY3QsCisJCXNjaGVtYURvYy0+VVJMLCAtMSk7CisgICAgICAgIGVsc2UKKwkgICAgc2NoZW1hTG9jYXRpb24gPSBCQURfQ0FTVCAiaW5fbWVtb3J5X2J1ZmZlciI7CisgICAgfSBlbHNlIGlmICgoc2NoZW1hTG9jYXRpb24gIT0gTlVMTCkgfHwgKHNjaGVtYUJ1ZmZlciAhPSBOVUxMKSkgeworCXhtbFBhcnNlckN0eHRQdHIgcGFyc2VyQ3R4dDsKKworCXBhcnNlckN0eHQgPSB4bWxOZXdQYXJzZXJDdHh0KCk7CisJaWYgKHBhcnNlckN0eHQgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQRXJyTWVtb3J5KE5VTEwsICJ4bWxTY2hlbWFHZXREb2MsICIKKwkJImFsbG9jYXRpbmcgYSBwYXJzZXIgY29udGV4dCIsIE5VTEwpOworCSAgICBnb3RvIGV4aXRfZmFpbHVyZTsKKwl9CisJaWYgKChwY3R4dC0+ZGljdCAhPSBOVUxMKSAmJiAocGFyc2VyQ3R4dC0+ZGljdCAhPSBOVUxMKSkgeworCSAgICAvKgorCSAgICAqIFRPRE86IERvIHdlIGhhdmUgdG8gYnVyZGVuIHRoZSBzY2hlbWEgcGFyc2VyIGRpY3Qgd2l0aCBhbGwKKwkgICAgKiB0aGUgY29udGVudCBvZiB0aGUgc2NoZW1hIGRvYz8KKwkgICAgKi8KKwkgICAgeG1sRGljdEZyZWUocGFyc2VyQ3R4dC0+ZGljdCk7CisJICAgIHBhcnNlckN0eHQtPmRpY3QgPSBwY3R4dC0+ZGljdDsKKwkgICAgeG1sRGljdFJlZmVyZW5jZShwYXJzZXJDdHh0LT5kaWN0KTsKKwl9CisJaWYgKHNjaGVtYUxvY2F0aW9uICE9IE5VTEwpIHsKKwkgICAgLyogUGFyc2UgZnJvbSBmaWxlLiAqLworCSAgICBkb2MgPSB4bWxDdHh0UmVhZEZpbGUocGFyc2VyQ3R4dCwgKGNvbnN0IGNoYXIgKikgc2NoZW1hTG9jYXRpb24sCisJCU5VTEwsIFNDSEVNQVNfUEFSU0VfT1BUSU9OUyk7CisJfSBlbHNlIGlmIChzY2hlbWFCdWZmZXIgIT0gTlVMTCkgeworCSAgICAvKiBQYXJzZSBmcm9tIG1lbW9yeSBidWZmZXIuICovCisJICAgIGRvYyA9IHhtbEN0eHRSZWFkTWVtb3J5KHBhcnNlckN0eHQsIHNjaGVtYUJ1ZmZlciwgc2NoZW1hQnVmZmVyTGVuLAorCQlOVUxMLCBOVUxMLCBTQ0hFTUFTX1BBUlNFX09QVElPTlMpOworCSAgICBzY2hlbWFMb2NhdGlvbiA9IEJBRF9DQVNUICJpbl9tZW1vcnlfYnVmZmVyIjsKKwkgICAgaWYgKGRvYyAhPSBOVUxMKQorCQlkb2MtPlVSTCA9IHhtbFN0cmR1cChzY2hlbWFMb2NhdGlvbik7CisJfQorCS8qCisJKiBGb3IgPGltcG9ydD46CisJKiAyLjEgVGhlIHJlZmVyZW50IGlzIChhIGZyYWdtZW50IG9mKSBhIHJlc291cmNlIHdoaWNoIGlzIGFuCisJKiBYTUwgZG9jdW1lbnQgKHNlZSBjbGF1c2UgMS4xKSwgd2hpY2ggaW4gdHVybiBjb3JyZXNwb25kcyB0bworCSogYSA8c2NoZW1hPiBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gaW4gYSB3ZWxsLWZvcm1lZCBpbmZvcm1hdGlvbgorCSogc2V0LCB3aGljaCBpbiB0dXJuIGNvcnJlc3BvbmRzIHRvIGEgdmFsaWQgc2NoZW1hLgorCSogVE9ETzogKDIuMSkgZnJhZ21lbnRzIG9mIFhNTCBkb2N1bWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQuCisJKgorCSogMi4yIFRoZSByZWZlcmVudCBpcyBhIDxzY2hlbWE+IGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSBpbgorCSogYSB3ZWxsLWZvcm1lZCBpbmZvcm1hdGlvbiBzZXQsIHdoaWNoIGluIHR1cm4gY29ycmVzcG9uZHMKKwkqIHRvIGEgdmFsaWQgc2NoZW1hLgorCSogVE9ETzogKDIuMikgaXMgbm90IHN1cHBvcnRlZC4KKwkqLworCWlmIChkb2MgPT0gTlVMTCkgeworCSAgICB4bWxFcnJvclB0ciBsZXJyOworCSAgICBsZXJyID0geG1sR2V0TGFzdEVycm9yKCk7CisJICAgIC8qCisJICAgICogQ2hlY2sgaWYgdGhpcyBhIHBhcnNlciBlcnJvciwgb3IgaWYgdGhlIGRvY3VtZW50IGNvdWxkCisJICAgICoganVzdCBub3QgYmUgbG9jYXRlZC4KKwkgICAgKiBUT0RPOiBUcnkgdG8gZmluZCBzcGVjaWZpYyBlcnJvciBjb2RlcyB0byByZWFjdCBvbmx5IG9uCisJICAgICogbG9jYWxpc2F0aW9uIGZhaWx1cmVzLgorCSAgICAqLworCSAgICBpZiAoKGxlcnIgPT0gTlVMTCkgfHwgKGxlcnItPmRvbWFpbiAhPSBYTUxfRlJPTV9JTykpIHsKKwkJLyoKKwkJKiBXZSBhc3N1bWUgYSBwYXJzZXIgZXJyb3IgaGVyZS4KKwkJKi8KKwkJbG9jYXRlZCA9IDE7CisJCS8qIFRPRE86IEVycm9yIGNvZGUgPz8gKi8KKwkJcmVzID0gWE1MX1NDSEVNQVBfU1JDX0lNUE9SVF8yXzE7CisJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LCByZXMsCisJCSAgICBpbnZva2luZ05vZGUsIE5VTEwsCisJCSAgICAiRmFpbGVkIHRvIHBhcnNlIHRoZSBYTUwgcmVzb3VyY2UgJyVzJyIsCisJCSAgICBzY2hlbWFMb2NhdGlvbiwgTlVMTCk7CisJICAgIH0KKwl9CisJeG1sRnJlZVBhcnNlckN0eHQocGFyc2VyQ3R4dCk7CisJaWYgKChkb2MgPT0gTlVMTCkgJiYgbG9jYXRlZCkKKwkgICAgZ290byBleGl0X2Vycm9yOworICAgIH0gZWxzZSB7CisJeG1sU2NoZW1hUEVycihwY3R4dCwgTlVMTCwKKwkgICAgWE1MX1NDSEVNQVBfTk9USElOR19UT19QQVJTRSwKKwkgICAgIk5vIGluZm9ybWF0aW9uIGZvciBwYXJzaW5nIHdhcyBwcm92aWRlZCB3aXRoIHRoZSAiCisJICAgICJnaXZlbiBzY2hlbWEgcGFyc2VyIGNvbnRleHQuXG4iLAorCSAgICBOVUxMLCBOVUxMKTsKKwlnb3RvIGV4aXRfZmFpbHVyZTsKKyAgICB9CisgICAgLyoKKyAgICAqIFByZXByb2Nlc3MgdGhlIGRvY3VtZW50LgorICAgICovCisgICAgaWYgKGRvYyAhPSBOVUxMKSB7CisJeG1sTm9kZVB0ciBkb2NFbGVtID0gTlVMTDsKKworCWxvY2F0ZWQgPSAxOworCWRvY0VsZW0gPSB4bWxEb2NHZXRSb290RWxlbWVudChkb2MpOworCWlmIChkb2NFbGVtID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsIFhNTF9TQ0hFTUFQX05PUk9PVCwKKwkJaW52b2tpbmdOb2RlLCBOVUxMLAorCQkiVGhlIGRvY3VtZW50ICclcycgaGFzIG5vIGRvY3VtZW50IGVsZW1lbnQiLAorCQlzY2hlbWFMb2NhdGlvbiwgTlVMTCk7CisJICAgIGdvdG8gZXhpdF9lcnJvcjsKKwl9CisJLyoKKwkqIFJlbW92ZSBhbGwgdGhlIGJsYW5rIHRleHQgbm9kZXMuCisJKi8KKwl4bWxTY2hlbWFDbGVhbnVwRG9jKHBjdHh0LCBkb2NFbGVtKTsKKwkvKgorCSogQ2hlY2sgdGhlIHNjaGVtYSdzIHRvcCBsZXZlbCBlbGVtZW50LgorCSovCisJaWYgKCFJU19TQ0hFTUEoZG9jRWxlbSwgInNjaGVtYSIpKSB7CisJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LCBYTUxfU0NIRU1BUF9OT1RfU0NIRU1BLAorCQlpbnZva2luZ05vZGUsIE5VTEwsCisJCSJUaGUgWE1MIGRvY3VtZW50ICclcycgaXMgbm90IGEgc2NoZW1hIGRvY3VtZW50IiwKKwkJc2NoZW1hTG9jYXRpb24sIE5VTEwpOworCSAgICBnb3RvIGV4aXRfZXJyb3I7CisJfQorCS8qCisJKiBOb3RlIHRoYXQgd2UgZG9uJ3QgYXBwbHkgYSB0eXBlIGNoZWNrIGZvciB0aGUKKwkqIHRhcmdldE5hbWVzcGFjZSB2YWx1ZSBoZXJlLgorCSovCisJdGFyZ2V0TmFtZXNwYWNlID0geG1sU2NoZW1hR2V0UHJvcChwY3R4dCwgZG9jRWxlbSwKKwkgICAgInRhcmdldE5hbWVzcGFjZSIpOworICAgIH0KKworLyogYWZ0ZXJfZG9jX2xvYWRpbmc6ICovCisgICAgaWYgKChia3QgPT0gTlVMTCkgJiYgbG9jYXRlZCkgeworCS8qIE9ubHkgY3JlYXRlIGEgYnVja2V0IGlmIHRoZSBzY2hlbWEgd2FzIGxvY2F0ZWQuICovCisgICAgICAgIGJrdCA9IHhtbFNjaGVtYUJ1Y2tldENyZWF0ZShwY3R4dCwgdHlwZSwKKwkgICAgdGFyZ2V0TmFtZXNwYWNlKTsKKwlpZiAoYmt0ID09IE5VTEwpCisJICAgIGdvdG8gZXhpdF9mYWlsdXJlOworICAgIH0KKyAgICBpZiAoYmt0ICE9IE5VTEwpIHsKKwlia3QtPnNjaGVtYUxvY2F0aW9uID0gc2NoZW1hTG9jYXRpb247CisJYmt0LT5sb2NhdGVkID0gbG9jYXRlZDsKKwlpZiAoZG9jICE9IE5VTEwpIHsKKwkgICAgYmt0LT5kb2MgPSBkb2M7CisJICAgIGJrdC0+dGFyZ2V0TmFtZXNwYWNlID0gdGFyZ2V0TmFtZXNwYWNlOworCSAgICBia3QtPm9yaWdUYXJnZXROYW1lc3BhY2UgPSB0YXJnZXROYW1lc3BhY2U7CisJICAgIGlmIChwcmVzZXJ2ZURvYykKKwkJYmt0LT5wcmVzZXJ2ZURvYyA9IDE7CisJfQorCWlmIChXWFNfSVNfQlVDS0VUX0lNUE1BSU4odHlwZSkpCisJICAgIGJrdC0+aW1wb3J0ZWQrKzsKKwkgICAgLyoKKwkgICAgKiBBZGQgaXQgdG8gdGhlIGdyYXBoIG9mIHNjaGVtYXMuCisJICAgICovCisJaWYgKHJlbGF0aW9uICE9IE5VTEwpCisJICAgIHJlbGF0aW9uLT5idWNrZXQgPSBia3Q7CisgICAgfQorCitleGl0OgorICAgIC8qCisgICAgKiBSZXR1cm4gdGhlIGJ1Y2tldCBleHBsaWNpdGVseTsgdGhpcyBpcyBuZWVkZWQgZm9yIHRoZQorICAgICogbWFpbiBzY2hlbWEuCisgICAgKi8KKyAgICBpZiAoYnVja2V0ICE9IE5VTEwpCisJKmJ1Y2tldCA9IGJrdDsKKyAgICByZXR1cm4gKDApOworCitleGl0X2Vycm9yOgorICAgIGlmICgoZG9jICE9IE5VTEwpICYmICghIHByZXNlcnZlRG9jKSkgeworCXhtbEZyZWVEb2MoZG9jKTsKKwlpZiAoYmt0ICE9IE5VTEwpCisJICAgIGJrdC0+ZG9jID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuKHBjdHh0LT5lcnIpOworCitleGl0X2ZhaWx1cmU6CisgICAgaWYgKChkb2MgIT0gTlVMTCkgJiYgKCEgcHJlc2VydmVEb2MpKSB7CisJeG1sRnJlZURvYyhkb2MpOworCWlmIChia3QgIT0gTlVMTCkKKwkgICAgYmt0LT5kb2MgPSBOVUxMOworICAgIH0KKyAgICByZXR1cm4gKC0xKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUltcG9ydDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBJbXBvcnQgZGVmaW5pdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBpZgorICogbm90IHZhbGlkIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQYXJzZUltcG9ydCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIHhtbE5vZGVQdHIgY2hpbGQ7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZXNwYWNlTmFtZSA9IE5VTEwsICpzY2hlbWFMb2NhdGlvbiA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqdGhpc1RhcmdldE5hbWVzcGFjZTsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sU2NoZW1hQnVja2V0UHRyIGJ1Y2tldCA9IE5VTEw7CisKKyAgICBpZiAoKHBjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoLTEpOworCisgICAgLyoKKyAgICAqIENoZWNrIGZvciBpbGxlZ2FsIGF0dHJpYnV0ZXMuCisgICAgKi8KKyAgICBhdHRyID0gbm9kZS0+cHJvcGVydGllczsKKyAgICB3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisJaWYgKGF0dHItPm5zID09IE5VTEwpIHsKKwkgICAgaWYgKCgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpICYmCisJCSgheG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgIm5hbWVzcGFjZSIpKSAmJgorCQkoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJzY2hlbWFMb2NhdGlvbiIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIocGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJICAgIH0KKwl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpIHsKKwkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKHBjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJfQorCWF0dHIgPSBhdHRyLT5uZXh0OworICAgIH0KKyAgICAvKgorICAgICogRXh0cmFjdCBhbmQgdmFsaWRhdGUgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGlmICh4bWxTY2hlbWFQVmFsQXR0cihwY3R4dCwgTlVMTCwgbm9kZSwKKwkibmFtZXNwYWNlIiwgeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfQU5ZVVJJKSwKKwkmbmFtZXNwYWNlTmFtZSkgIT0gMCkgeworCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCSAgICBOVUxMLCBub2RlLAorCSAgICB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllVUkkpLAorCSAgICBOVUxMLCBuYW1lc3BhY2VOYW1lLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4gKHBjdHh0LT5lcnIpOworICAgIH0KKworICAgIGlmICh4bWxTY2hlbWFQVmFsQXR0cihwY3R4dCwgTlVMTCwgbm9kZSwKKwkic2NoZW1hTG9jYXRpb24iLCB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllVUkkpLAorCSZzY2hlbWFMb2NhdGlvbikgIT0gMCkgeworCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9JTlZBTElEX1ZBTFVFLAorCSAgICBOVUxMLCBub2RlLAorCSAgICB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllVUkkpLAorCSAgICBOVUxMLCBuYW1lc3BhY2VOYW1lLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4gKHBjdHh0LT5lcnIpOworICAgIH0KKyAgICAvKgorICAgICogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisgICAgKi8KKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogdGhlIGFubm90YXRpb24gaGVyZSBpcyBzaW1wbHkgZGlzY2FyZGVkIC4uLgorCSAqIFRPRE86IHJlYWxseT8KKyAgICAgICAgICovCisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorICAgIGlmIChjaGlsZCAhPSBOVUxMKSB7CisJeG1sU2NoZW1hUENvbnRlbnRFcnIocGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwKKwkgICAgIihhbm5vdGF0aW9uPykiKTsKKyAgICB9CisgICAgLyoKKyAgICAqIEFwcGx5IGFkZGl0aW9uYWwgY29uc3RyYWludHMuCisgICAgKgorICAgICogTm90ZSB0aGF0IGl0IGlzIGltcG9ydGFudCB0byB1c2UgdGhlIG9yaWdpbmFsIEB0YXJnZXROYW1lc3BhY2UKKyAgICAqIChvciBub25lIGF0IGFsbCksIHRvIHJ1bGUgb3V0IGltcG9ydHMgb2Ygc2NoZW1hcyBfd2l0aF8gYQorICAgICogQHRhcmdldE5hbWVzcGFjZSBpZiB0aGUgaW1wb3J0aW5nIHNjaGVtYSBpcyBhIGNoYW1lbGVvbiBzY2hlbWEKKyAgICAqICh3aXRoIG5vIEB0YXJnZXROYW1lc3BhY2UpLgorICAgICovCisgICAgdGhpc1RhcmdldE5hbWVzcGFjZSA9IFdYU19CVUNLRVQocGN0eHQpLT5vcmlnVGFyZ2V0TmFtZXNwYWNlOworICAgIGlmIChuYW1lc3BhY2VOYW1lICE9IE5VTEwpIHsKKwkvKgorCSogMS4xIElmIHRoZSBuYW1lc3BhY2UgW2F0dHJpYnV0ZV0gaXMgcHJlc2VudCwgdGhlbiBpdHMg77+9YWN0dWFsIHZhbHVl77+9CisJKiBtdXN0IG5vdCBtYXRjaCB0aGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIHRoZSBlbmNsb3NpbmcgPHNjaGVtYT4ncworCSogdGFyZ2V0TmFtZXNwYWNlIFthdHRyaWJ1dGVdLgorCSovCisJaWYgKHhtbFN0ckVxdWFsKHRoaXNUYXJnZXROYW1lc3BhY2UsIG5hbWVzcGFjZU5hbWUpKSB7CisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8xLAorCQlOVUxMLCBub2RlLAorCQkiVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgJ25hbWVzcGFjZScgbXVzdCBub3QgbWF0Y2ggIgorCQkidGhlIHRhcmdldCBuYW1lc3BhY2UgJyVzJyBvZiB0aGUgaW1wb3J0aW5nIHNjaGVtYSIsCisJCXRoaXNUYXJnZXROYW1lc3BhY2UpOworCSAgICByZXR1cm4gKHBjdHh0LT5lcnIpOworCX0KKyAgICB9IGVsc2UgeworCS8qCisJKiAxLjIgSWYgdGhlIG5hbWVzcGFjZSBbYXR0cmlidXRlXSBpcyBub3QgcHJlc2VudCwgdGhlbiB0aGUgZW5jbG9zaW5nCisJKiA8c2NoZW1hPiBtdXN0IGhhdmUgYSB0YXJnZXROYW1lc3BhY2UgW2F0dHJpYnV0ZV0uCisJKi8KKwlpZiAodGhpc1RhcmdldE5hbWVzcGFjZSA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19JTVBPUlRfMV8yLAorCQlOVUxMLCBub2RlLAorCQkiVGhlIGF0dHJpYnV0ZSAnbmFtZXNwYWNlJyBtdXN0IGJlIGV4aXN0ZW50IGlmICIKKwkJInRoZSBpbXBvcnRpbmcgc2NoZW1hIGhhcyBubyB0YXJnZXQgbmFtZXNwYWNlIiwKKwkJTlVMTCk7CisJICAgIHJldHVybiAocGN0eHQtPmVycik7CisJfQorICAgIH0KKyAgICAvKgorICAgICogTG9jYXRlIGFuZCBhY3F1aXJlIHRoZSBzY2hlbWEgZG9jdW1lbnQuCisgICAgKi8KKyAgICBpZiAoc2NoZW1hTG9jYXRpb24gIT0gTlVMTCkKKwlzY2hlbWFMb2NhdGlvbiA9IHhtbFNjaGVtYUJ1aWxkQWJzb2x1dGVVUkkocGN0eHQtPmRpY3QsCisJICAgIHNjaGVtYUxvY2F0aW9uLCBub2RlKTsKKyAgICByZXQgPSB4bWxTY2hlbWFBZGRTY2hlbWFEb2MocGN0eHQsIFhNTF9TQ0hFTUFfU0NIRU1BX0lNUE9SVCwKKwlzY2hlbWFMb2NhdGlvbiwgTlVMTCwgTlVMTCwgMCwgbm9kZSwgdGhpc1RhcmdldE5hbWVzcGFjZSwKKwluYW1lc3BhY2VOYW1lLCAmYnVja2V0KTsKKworICAgIGlmIChyZXQgIT0gMCkKKwlyZXR1cm4ocmV0KTsKKworICAgIC8qCisgICAgKiBGb3IgPGltcG9ydD46ICJJdCBpcyAqbm90KiBhbiBlcnJvciBmb3IgdGhlIGFwcGxpY2F0aW9uCisgICAgKiBzY2hlbWEgcmVmZXJlbmNlIHN0cmF0ZWd5IHRvIGZhaWwuIgorICAgICogU28ganVzdCBkb24ndCBwYXJzZSBpZiBubyBzY2hlbWEgZG9jdW1lbnQgd2FzIGZvdW5kLgorICAgICogTm90ZSB0aGF0IHdlIHdpbGwgZ2V0IG5vIGJ1Y2tldCBpZiB0aGUgc2NoZW1hIGNvdWxkIG5vdCBiZQorICAgICogbG9jYXRlZCBvciBpZiB0aGVyZSB3YXMgbm8gc2NoZW1hTG9jYXRpb24uCisgICAgKi8KKyAgICBpZiAoKGJ1Y2tldCA9PSBOVUxMKSAmJiAoc2NoZW1hTG9jYXRpb24gIT0gTlVMTCkpIHsKKwl4bWxTY2hlbWFDdXN0b21XYXJuaW5nKEFDVFhUX0NBU1QgcGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1dBUk5fVU5MT0NBVEVEX1NDSEVNQSwKKwkgICAgbm9kZSwgTlVMTCwKKwkgICAgIkZhaWxlZCB0byBsb2NhdGUgYSBzY2hlbWEgYXQgbG9jYXRpb24gJyVzJy4gIgorCSAgICAiU2tpcHBpbmcgdGhlIGltcG9ydCIsIHNjaGVtYUxvY2F0aW9uLCBOVUxMLCBOVUxMKTsKKyAgICB9CisKKyAgICBpZiAoKGJ1Y2tldCAhPSBOVUxMKSAmJiBDQU5fUEFSU0VfU0NIRU1BKGJ1Y2tldCkpIHsKKwlyZXQgPSB4bWxTY2hlbWFQYXJzZU5ld0RvYyhwY3R4dCwgc2NoZW1hLCBidWNrZXQpOworICAgIH0KKworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hUGFyc2VJbmNsdWRlT3JSZWRlZmluZUF0dHJzKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkJICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQkJCSAgICAgeG1sTm9kZVB0ciBub2RlLAorCQkJCSAgICAgeG1sQ2hhciAqKnNjaGVtYUxvY2F0aW9uLAorCQkJCSAgICAgaW50IHR5cGUpCit7CisgICAgeG1sQXR0clB0ciBhdHRyOworCisgICAgaWYgKChwY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpIHx8CisJKHNjaGVtYUxvY2F0aW9uID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgICpzY2hlbWFMb2NhdGlvbiA9IE5VTEw7CisgICAgLyoKKyAgICAqIENoZWNrIGZvciBpbGxlZ2FsIGF0dHJpYnV0ZXMuCisgICAgKiBBcHBsaWVzIGZvciBib3RoIDxpbmNsdWRlPiBhbmQgPHJlZGVmaW5lPi4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAic2NoZW1hTG9jYXRpb24iKSkpIHsKKwkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKHBjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCSAgICB9CisJfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSB7CisJICAgIHhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihwY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChwY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisgICAgLyoKKyAgICAqIFByZWxpbWluYXJ5IHN0ZXAsIGV4dHJhY3QgdGhlIFVSSS1SZWZlcmVuY2UgYW5kIG1ha2UgYW4gVVJJCisgICAgKiBmcm9tIHRoZSBiYXNlLgorICAgICovCisgICAgLyoKKyAgICAqIEF0dHJpYnV0ZSAic2NoZW1hTG9jYXRpb24iIGlzIG1hbmRhdG9yeS4KKyAgICAqLworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAic2NoZW1hTG9jYXRpb24iKTsKKyAgICBpZiAoYXR0ciAhPSBOVUxMKSB7CisgICAgICAgIHhtbENoYXIgKmJhc2UgPSBOVUxMOworICAgICAgICB4bWxDaGFyICp1cmkgPSBOVUxMOworCisJaWYgKHhtbFNjaGVtYVBWYWxBdHRyTm9kZShwY3R4dCwgTlVMTCwgYXR0ciwKKwkgICAgeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfQU5ZVVJJKSwKKwkgICAgKGNvbnN0IHhtbENoYXIgKiopIHNjaGVtYUxvY2F0aW9uKSAhPSAwKQorCSAgICBnb3RvIGV4aXRfZXJyb3I7CisJYmFzZSA9IHhtbE5vZGVHZXRCYXNlKG5vZGUtPmRvYywgbm9kZSk7CisJaWYgKGJhc2UgPT0gTlVMTCkgeworCSAgICB1cmkgPSB4bWxCdWlsZFVSSSgqc2NoZW1hTG9jYXRpb24sIG5vZGUtPmRvYy0+VVJMKTsKKwl9IGVsc2UgeworCSAgICB1cmkgPSB4bWxCdWlsZFVSSSgqc2NoZW1hTG9jYXRpb24sIGJhc2UpOworCSAgICB4bWxGcmVlKGJhc2UpOworCX0KKwlpZiAodXJpID09IE5VTEwpIHsKKwkgICAgUEVSUk9SX0lOVCgieG1sU2NoZW1hUGFyc2VJbmNsdWRlT3JSZWRlZmluZSIsCisJCSJjb3VsZCBub3QgYnVpbGQgYW4gVVJJIGZyb20gdGhlIHNjaGVtYUxvY2F0aW9uIikKKwkgICAgZ290byBleGl0X2ZhaWx1cmU7CisJfQorCSgqc2NoZW1hTG9jYXRpb24pID0gKHhtbENoYXIgKikgeG1sRGljdExvb2t1cChwY3R4dC0+ZGljdCwgdXJpLCAtMSk7CisJeG1sRnJlZSh1cmkpOworICAgIH0gZWxzZSB7CisJeG1sU2NoZW1hUE1pc3NpbmdBdHRyRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9NSVNTSU5HLAorCSAgICBOVUxMLCBub2RlLCAic2NoZW1hTG9jYXRpb24iLCBOVUxMKTsKKwlnb3RvIGV4aXRfZXJyb3I7CisgICAgfQorICAgIC8qCisgICAgKiBSZXBvcnQgc2VsZi1pbmNsdXNpb24gYW5kIHNlbGYtcmVkZWZpbml0aW9uLgorICAgICovCisgICAgaWYgKHhtbFN0ckVxdWFsKCpzY2hlbWFMb2NhdGlvbiwgcGN0eHQtPlVSTCkpIHsKKwlpZiAodHlwZSA9PSBYTUxfU0NIRU1BX1NDSEVNQV9SRURFRklORSkgeworCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCQlYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUsCisJCU5VTEwsIG5vZGUsCisJCSJUaGUgc2NoZW1hIGRvY3VtZW50ICclcycgY2Fubm90IHJlZGVmaW5lIGl0c2VsZi4iLAorCQkqc2NoZW1hTG9jYXRpb24pOworCX0gZWxzZSB7CisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19JTkNMVURFLAorCQlOVUxMLCBub2RlLAorCQkiVGhlIHNjaGVtYSBkb2N1bWVudCAnJXMnIGNhbm5vdCBpbmNsdWRlIGl0c2VsZi4iLAorCQkqc2NoZW1hTG9jYXRpb24pOworCX0KKwlnb3RvIGV4aXRfZXJyb3I7CisgICAgfQorCisgICAgcmV0dXJuKDApOworZXhpdF9lcnJvcjoKKyAgICByZXR1cm4ocGN0eHQtPmVycik7CitleGl0X2ZhaWx1cmU6CisgICAgcmV0dXJuKC0xKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hUGFyc2VJbmNsdWRlT3JSZWRlZmluZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCXhtbFNjaGVtYVB0ciBzY2hlbWEsCisJCQkJeG1sTm9kZVB0ciBub2RlLAorCQkJCWludCB0eXBlKQoreworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIGNvbnN0IHhtbENoYXIgKnNjaGVtYUxvY2F0aW9uID0gTlVMTDsKKyAgICBpbnQgcmVzID0gMDsgLyogaGFzUmVkZWZpbml0aW9ucyA9IDAgKi8KKyAgICBpbnQgaXNDaGFtZWxlb24gPSAwLCB3YXNDaGFtZWxlb24gPSAwOworICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciBidWNrZXQgPSBOVUxMOworCisgICAgaWYgKChwY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIC8qCisgICAgKiBQYXJzZSBhdHRyaWJ1dGVzLiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNjaGVtYUxvY2F0aW9uIHdpbGwKKyAgICAqIGJlIGFscmVhZHkgY29udmVydGVkIHRvIGFuIGFic29sdXRlIFVSSS4KKyAgICAqLworICAgIHJlcyA9IHhtbFNjaGVtYVBhcnNlSW5jbHVkZU9yUmVkZWZpbmVBdHRycyhwY3R4dCwgc2NoZW1hLAorCW5vZGUsICh4bWxDaGFyICoqKSAoJnNjaGVtYUxvY2F0aW9uKSwgdHlwZSk7CisgICAgaWYgKHJlcyAhPSAwKQorCXJldHVybihyZXMpOworICAgIC8qCisgICAgKiBMb2FkIGFuZCBhZGQgdGhlIHNjaGVtYSBkb2N1bWVudC4KKyAgICAqLworICAgIHJlcyA9IHhtbFNjaGVtYUFkZFNjaGVtYURvYyhwY3R4dCwgdHlwZSwgc2NoZW1hTG9jYXRpb24sIE5VTEwsCisJTlVMTCwgMCwgbm9kZSwgcGN0eHQtPnRhcmdldE5hbWVzcGFjZSwgTlVMTCwgJmJ1Y2tldCk7CisgICAgaWYgKHJlcyAhPSAwKQorCXJldHVybihyZXMpOworICAgIC8qCisgICAgKiBJZiB3ZSBnZXQgbm8gc2NoZW1hIGJ1Y2tldCBiYWNrLCB0aGVuIHRoaXMgbWVhbnMgdGhhdCB0aGUgc2NoZW1hCisgICAgKiBkb2N1bWVudCBjb3VsZCBub3QgYmUgbG9jYXRlZCBvciB3YXMgYnJva2VuIFhNTCBvciB3YXMgbm90CisgICAgKiBhIHNjaGVtYSBkb2N1bWVudC4KKyAgICAqLworICAgIGlmICgoYnVja2V0ID09IE5VTEwpIHx8IChidWNrZXQtPmRvYyA9PSBOVUxMKSkgeworCWlmICh0eXBlID09IFhNTF9TQ0hFTUFfU0NIRU1BX0lOQ0xVREUpIHsKKwkgICAgLyoKKwkgICAgKiBXQVJOSU5HIGZvciA8aW5jbHVkZT46CisJICAgICogV2Ugd2lsbCByYWlzZSBhbiBlcnJvciBpZiB0aGUgc2NoZW1hIGNhbm5vdCBiZSBsb2NhdGVkCisJICAgICogZm9yIGluY2x1c2lvbnMsIHNpbmNlIHRoZSB0aGF0IHdhcyB0aGUgZmVlZGJhY2sgZnJvbSB0aGUKKwkgICAgKiBzY2hlbWEgcGVvcGxlLiBJLmUuIHRoZSBmb2xsb3dpbmcgc3BlYyBwaWVjZSB3aWxsICpub3QqIGJlCisJICAgICogc2F0aXNmaWVkOgorCSAgICAqIFNQRUMgc3JjLWluY2x1ZGU6ICJJdCBpcyBub3QgYW4gZXJyb3IgZm9yIHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2YgdGhlCisJICAgICogc2NoZW1hTG9jYXRpb24gW2F0dHJpYnV0ZV0gdG8gZmFpbCB0byByZXNvbHZlIGl0IGFsbCwgaW4gd2hpY2gKKwkgICAgKiBjYXNlIG5vIGNvcnJlc3BvbmRpbmcgaW5jbHVzaW9uIGlzIHBlcmZvcm1lZC4KKwkgICAgKiBTbyBkbyB3ZSBuZWVkIGEgd2FybmluZyByZXBvcnQgaGVyZT8iCisJICAgICovCisJICAgIHJlcyA9IFhNTF9TQ0hFTUFQX1NSQ19JTkNMVURFOworCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwgcmVzLAorCQlub2RlLCBOVUxMLAorCQkiRmFpbGVkIHRvIGxvYWQgdGhlIGRvY3VtZW50ICclcycgZm9yIGluY2x1c2lvbiIsCisJCXNjaGVtYUxvY2F0aW9uLCBOVUxMKTsKKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAqIE5PVEU6IFRoaXMgd2FzIGNoYW5nZWQgdG8gcmFpc2UgYW4gZXJyb3IgZXZlbiBpZiBubyByZWRlZmluaXRpb25zCisJICAgICogYXJlIHNwZWNpZmllZC4KKwkgICAgKgorCSAgICAqIFNQRUMgc3JjLXJlZGVmaW5lICgxKQorCSAgICAqICJJZiB0aGVyZSBhcmUgYW55IGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbXMgYW1vbmcgdGhlIFtjaGlsZHJlbl0KKwkgICAgKiBvdGhlciB0aGFuIDxhbm5vdGF0aW9uPiB0aGVuIHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2YgdGhlCisJICAgICogc2NoZW1hTG9jYXRpb24gW2F0dHJpYnV0ZV0gbXVzdCBzdWNjZXNzZnVsbHkgcmVzb2x2ZS4iCisJICAgICogVE9ETzogQXNrIHRoZSBXRyBpZiBhIHRoZSBsb2NhdGlvbiBoYXMgYWx3YXlzIHRvIHJlc29sdmUKKwkgICAgKiBoZXJlIGFzIHdlbGwhCisJICAgICovCisJICAgIHJlcyA9IFhNTF9TQ0hFTUFQX1NSQ19SRURFRklORTsKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsIHJlcywKKwkJbm9kZSwgTlVMTCwKKwkJIkZhaWxlZCB0byBsb2FkIHRoZSBkb2N1bWVudCAnJXMnIGZvciByZWRlZmluaXRpb24iLAorCQlzY2hlbWFMb2NhdGlvbiwgTlVMTCk7CisJfQorICAgIH0gZWxzZSB7CisJLyoKKwkqIENoZWNrIHRhcmdldE5hbWVzcGFjZSBzYW5pdHkgYmVmb3JlIHBhcnNpbmcgdGhlIG5ldyBzY2hlbWEuCisJKiBUT0RPOiBOb3RlIHRoYXQgd2Ugd29uJ3QgY2hlY2sgZnVydGhlciBjb250ZW50IGlmIHRoZQorCSogdGFyZ2V0TmFtZXNwYWNlIHdhcyBiYWQuCisJKi8KKwlpZiAoYnVja2V0LT5vcmlnVGFyZ2V0TmFtZXNwYWNlICE9IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBTUEVDIHNyYy1pbmNsdWRlICgyLjEpCisJICAgICogIlNJSSBoYXMgYSB0YXJnZXROYW1lc3BhY2UgW2F0dHJpYnV0ZV0sIGFuZCBpdHMg77+9YWN0dWFsCisJICAgICogdmFsdWXvv70gaXMgaWRlbnRpY2FsIHRvIHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2YgdGhlIHRhcmdldE5hbWVzcGFjZQorCSAgICAqIFthdHRyaWJ1dGVdIG9mIFNJSe+/vSAod2hpY2ggbXVzdCBoYXZlIHN1Y2ggYW4gW2F0dHJpYnV0ZV0pLiIKKwkgICAgKi8KKwkgICAgaWYgKHBjdHh0LT50YXJnZXROYW1lc3BhY2UgPT0gTlVMTCkgeworCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1NSQ19JTkNMVURFLAorCQkgICAgbm9kZSwgTlVMTCwKKwkJICAgICJUaGUgdGFyZ2V0IG5hbWVzcGFjZSBvZiB0aGUgaW5jbHVkZWQvcmVkZWZpbmVkIHNjaGVtYSAiCisJCSAgICAiJyVzJyBoYXMgdG8gYmUgYWJzZW50LCBzaW5jZSB0aGUgaW5jbHVkaW5nL3JlZGVmaW5pbmcgIgorCQkgICAgInNjaGVtYSBoYXMgbm8gdGFyZ2V0IG5hbWVzcGFjZSIsCisJCSAgICBzY2hlbWFMb2NhdGlvbiwgTlVMTCk7CisJCWdvdG8gZXhpdF9lcnJvcjsKKwkgICAgfSBlbHNlIGlmICgheG1sU3RyRXF1YWwoYnVja2V0LT5vcmlnVGFyZ2V0TmFtZXNwYWNlLAorCQlwY3R4dC0+dGFyZ2V0TmFtZXNwYWNlKSkgeworCQkvKiBUT0RPOiBDaGFuZ2UgZXJyb3IgZnVuY3Rpb24uICovCisJCXhtbFNjaGVtYVBDdXN0b21FcnJFeHQocGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TUkNfSU5DTFVERSwKKwkJICAgIE5VTEwsIG5vZGUsCisJCSAgICAiVGhlIHRhcmdldCBuYW1lc3BhY2UgJyVzJyBvZiB0aGUgaW5jbHVkZWQvcmVkZWZpbmVkICIKKwkJICAgICJzY2hlbWEgJyVzJyBkaWZmZXJzIGZyb20gJyVzJyBvZiB0aGUgIgorCQkgICAgImluY2x1ZGluZy9yZWRlZmluaW5nIHNjaGVtYSIsCisJCSAgICBidWNrZXQtPm9yaWdUYXJnZXROYW1lc3BhY2UsIHNjaGVtYUxvY2F0aW9uLAorCQkgICAgcGN0eHQtPnRhcmdldE5hbWVzcGFjZSk7CisJCWdvdG8gZXhpdF9lcnJvcjsKKwkgICAgfQorCX0gZWxzZSBpZiAocGN0eHQtPnRhcmdldE5hbWVzcGFjZSAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICogQ2hhbWVsZW9uczogdGhlIG9yaWdpbmFsIHRhcmdldCBuYW1lc3BhY2Ugd2lsbAorCSAgICAqIGRpZmZlciBmcm9tIHRoZSByZXN1bHRpbmcgbmFtZXNwYWNlLgorCSAgICAqLworCSAgICBpc0NoYW1lbGVvbiA9IDE7CisJICAgIGlmIChidWNrZXQtPnBhcnNlZCAmJgorCQlidWNrZXQtPm9yaWdUYXJnZXROYW1lc3BhY2UgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1NSQ19JTkNMVURFLAorCQkgICAgbm9kZSwgTlVMTCwKKwkJICAgICJUaGUgdGFyZ2V0IG5hbWVzcGFjZSBvZiB0aGUgaW5jbHVkZWQvcmVkZWZpbmVkIHNjaGVtYSAiCisJCSAgICAiJyVzJyBoYXMgdG8gYmUgYWJzZW50IG9yIHRoZSBzYW1lIGFzIHRoZSAiCisJCSAgICAiaW5jbHVkaW5nL3JlZGVmaW5pbmcgc2NoZW1hJ3MgdGFyZ2V0IG5hbWVzcGFjZSIsCisJCSAgICBzY2hlbWFMb2NhdGlvbiwgTlVMTCk7CisJCWdvdG8gZXhpdF9lcnJvcjsKKwkgICAgfQorCSAgICBidWNrZXQtPnRhcmdldE5hbWVzcGFjZSA9IHBjdHh0LT50YXJnZXROYW1lc3BhY2U7CisJfQorICAgIH0KKyAgICAvKgorICAgICogUGFyc2UgdGhlIHNjaGVtYS4KKyAgICAqLworICAgIGlmIChidWNrZXQgJiYgKCFidWNrZXQtPnBhcnNlZCkgJiYgKGJ1Y2tldC0+ZG9jICE9IE5VTEwpKSB7CisJaWYgKGlzQ2hhbWVsZW9uKSB7CisJICAgIC8qIFRPRE86IEdldCByaWQgb2YgdGhpcyBmbGFnIG9uIHRoZSBzY2hlbWEgaXRzZWxmLiAqLworCSAgICBpZiAoKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19JTkNMVURJTkdfQ09OVkVSVF9OUykgPT0gMCkgeworCQlzY2hlbWEtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0lOQ0xVRElOR19DT05WRVJUX05TOworCSAgICB9IGVsc2UKKwkJd2FzQ2hhbWVsZW9uID0gMTsKKwl9CisJeG1sU2NoZW1hUGFyc2VOZXdEb2MocGN0eHQsIHNjaGVtYSwgYnVja2V0KTsKKwkvKiBSZXN0b3JlIGNoYW1lbGVvbiBmbGFnLiAqLworCWlmIChpc0NoYW1lbGVvbiAmJiAoIXdhc0NoYW1lbGVvbikpCisJICAgIHNjaGVtYS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQVNfSU5DTFVESU5HX0NPTlZFUlRfTlM7CisgICAgfQorICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgaWYgKHR5cGUgPT0gWE1MX1NDSEVNQV9TQ0hFTUFfUkVERUZJTkUpIHsKKwkvKgorCSogUGFyc2UgKHNpbXBsZVR5cGUgfCBjb21wbGV4VHlwZSB8IGdyb3VwIHwgYXR0cmlidXRlR3JvdXApKSoKKwkqLworCXBjdHh0LT5yZWRlZmluZWQgPSBidWNrZXQ7CisJLyoKKwkqIEhvdyB0byBwcm9jZWVkIGlmIHRoZSByZWRlZmluZWQgc2NoZW1hIHdhcyBub3QgbG9jYXRlZD8KKwkqLworCXBjdHh0LT5pc1JlZGVmaW5lID0gMTsKKwl3aGlsZSAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpIHx8CisJICAgIElTX1NDSEVNQShjaGlsZCwgInNpbXBsZVR5cGUiKSB8fAorCSAgICBJU19TQ0hFTUEoY2hpbGQsICJjb21wbGV4VHlwZSIpIHx8CisJICAgIElTX1NDSEVNQShjaGlsZCwgImdyb3VwIikgfHwKKwkgICAgSVNfU0NIRU1BKGNoaWxkLCAiYXR0cmlidXRlR3JvdXAiKSkgeworCSAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisJCS8qCisJCSogVE9ETzogZGlzY2FyZCBvciBub3Q/CisJCSovCisJICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAic2ltcGxlVHlwZSIpKSB7CisJCXhtbFNjaGVtYVBhcnNlU2ltcGxlVHlwZShwY3R4dCwgc2NoZW1hLCBjaGlsZCwgMSk7CisJICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiY29tcGxleFR5cGUiKSkgeworCQl4bWxTY2hlbWFQYXJzZUNvbXBsZXhUeXBlKHBjdHh0LCBzY2hlbWEsIGNoaWxkLCAxKTsKKwkJLyogaGFzUmVkZWZpbml0aW9ucyA9IDE7ICovCisJICAgIH0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiZ3JvdXAiKSkgeworCQkvKiBoYXNSZWRlZmluaXRpb25zID0gMTsgKi8KKwkJeG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwRGVmaW5pdGlvbihwY3R4dCwKKwkJICAgIHNjaGVtYSwgY2hpbGQpOworCSAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImF0dHJpYnV0ZUdyb3VwIikpIHsKKwkJLyogaGFzUmVkZWZpbml0aW9ucyA9IDE7ICovCisJCXhtbFNjaGVtYVBhcnNlQXR0cmlidXRlR3JvdXBEZWZpbml0aW9uKHBjdHh0LCBzY2hlbWEsCisJCSAgICBjaGlsZCk7CisJICAgIH0KKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9CisJcGN0eHQtPnJlZGVmaW5lZCA9IE5VTEw7CisJcGN0eHQtPmlzUmVkZWZpbmUgPSAwOworICAgIH0gZWxzZSB7CisJaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworCSAgICAvKgorCSAgICAqIFRPRE86IGRpc2NhcmQgb3Igbm90PworCSAgICAqLworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwlyZXMgPSBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRDsKKwlpZiAodHlwZSA9PSBYTUxfU0NIRU1BX1NDSEVNQV9SRURFRklORSkgeworCSAgICB4bWxTY2hlbWFQQ29udGVudEVycihwY3R4dCwgcmVzLAorCQlOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwKKwkJIihhbm5vdGF0aW9uIHwgKHNpbXBsZVR5cGUgfCBjb21wbGV4VHlwZSB8IGdyb3VwIHwgYXR0cmlidXRlR3JvdXApKSoiKTsKKwl9IGVsc2UgeworCSAgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIocGN0eHQsIHJlcywKKwkJTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJCSIoYW5ub3RhdGlvbj8pIik7CisJfQorICAgIH0KKyAgICByZXR1cm4ocmVzKTsKKworZXhpdF9lcnJvcjoKKyAgICByZXR1cm4ocGN0eHQtPmVycik7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBhcnNlUmVkZWZpbmUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlKQoreworICAgIGludCByZXM7CisjaWZuZGVmIEVOQUJMRV9SRURFRklORQorICAgIFRPRE8KKyAgICByZXR1cm4oMCk7CisjZW5kaWYKKyAgICByZXMgPSB4bWxTY2hlbWFQYXJzZUluY2x1ZGVPclJlZGVmaW5lKHBjdHh0LCBzY2hlbWEsIG5vZGUsCisJWE1MX1NDSEVNQV9TQ0hFTUFfUkVERUZJTkUpOworICAgIGlmIChyZXMgIT0gMCkKKwlyZXR1cm4ocmVzKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBhcnNlSW5jbHVkZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUpCit7CisgICAgaW50IHJlczsKKworICAgIHJlcyA9IHhtbFNjaGVtYVBhcnNlSW5jbHVkZU9yUmVkZWZpbmUocGN0eHQsIHNjaGVtYSwgbm9kZSwKKwlYTUxfU0NIRU1BX1NDSEVNQV9JTkNMVURFKTsKKyAgICBpZiAocmVzICE9IDApCisJcmV0dXJuKHJlcyk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICogQHR5cGU6IHRoZSAiY29tcG9zaXRvciIgdHlwZQorICogQHBhcnRpY2xlTmVlZGVkOiBpZiBhIGEgbW9kZWwgZ3JvdXAgd2l0aCBhIHBhcnRpY2xlCisgKgorICogcGFyc2UgYSBYTUwgc2NoZW1hIFNlcXVlbmNlIGRlZmluaXRpb24uCisgKiBBcHBsaWVzIHBhcnRzIG9mOgorICogICBTY2hlbWEgUmVwcmVzZW50YXRpb24gQ29uc3RyYWludDoKKyAqICAgICBSZWRlZmluaXRpb24gQ29uc3RyYWludHMgYW5kIFNlbWFudGljcyAoc3JjLXJlZGVmaW5lKQorICogICAgICg2LjEpLCAoNi4xLjEpLCAoNi4xLjIpCisgKgorICogICBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiAgICAgQWxsIEdyb3VwIExpbWl0ZWQgKGNvcy1hbGwtbGltaXRlZCkgKDIpCisgKiAgICAgVE9ETzogQWN0dWFsbHkgdGhpcyBzaG91bGQgZ28gdG8gY29tcG9uZW50LWxldmVsIGNoZWNrcywKKyAqICAgICBidXQgaXMgZG9uZSBoZXJlIGR1ZSB0byBwZXJmb3JtYW5jZS4gTW92ZSBpdCB0byBhbiBvdGhlciBsYXllcgorICogICAgIGlzIHNjaGVtYSBjb25zdHJ1Y3Rpb24gdmlhIGFuIEFQSSBpcyBpbXBsZW1lbnRlZC4KKyAqCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGVycm9yLCAwIGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBpbXByb3BlciBhbmQKKyAqICAgICAgICAgMSBpbiBjYXNlIG9mIHN1Y2Nlc3MuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFUcmVlSXRlbVB0cgoreG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwgeG1sU2NoZW1hUHRyIHNjaGVtYSwKKwkJCSB4bWxOb2RlUHRyIG5vZGUsIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGUsCisJCQkgaW50IHdpdGhQYXJ0aWNsZSkKK3sKKyAgICB4bWxTY2hlbWFNb2RlbEdyb3VwUHRyIGl0ZW07CisgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGUgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICBpbnQgbWluID0gMSwgbWF4ID0gMSwgaXNFbGVtUmVmLCBoYXNSZWZzID0gMDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworICAgIC8qCisgICAgKiBDcmVhdGUgYSBtb2RlbCBncm91cCB3aXRoIHRoZSBnaXZlbiBjb21wb3NpdG9yLgorICAgICovCisgICAgaXRlbSA9IHhtbFNjaGVtYUFkZE1vZGVsR3JvdXAoY3R4dCwgc2NoZW1hLCB0eXBlLCBub2RlKTsKKyAgICBpZiAoaXRlbSA9PSBOVUxMKQorCXJldHVybiAoTlVMTCk7CisKKyAgICBpZiAod2l0aFBhcnRpY2xlKSB7CisJaWYgKHR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0FMTCkgeworCSAgICBtaW4gPSB4bWxHZXRNaW5PY2N1cnMoY3R4dCwgbm9kZSwgMCwgMSwgMSwgIigwIHwgMSkiKTsKKwkgICAgbWF4ID0geG1sR2V0TWF4T2NjdXJzKGN0eHQsIG5vZGUsIDEsIDEsIDEsICIxIik7CisJfSBlbHNlIHsKKwkgICAgLyogY2hvaWNlICsgc2VxdWVuY2UgKi8KKwkgICAgbWluID0geG1sR2V0TWluT2NjdXJzKGN0eHQsIG5vZGUsIDAsIC0xLCAxLCAieHM6bm9uTmVnYXRpdmVJbnRlZ2VyIik7CisJICAgIG1heCA9IHhtbEdldE1heE9jY3VycyhjdHh0LCBub2RlLCAwLCBVTkJPVU5ERUQsIDEsCisJCSIoeHM6bm9uTmVnYXRpdmVJbnRlZ2VyIHwgdW5ib3VuZGVkKSIpOworCX0KKwl4bWxTY2hlbWFQQ2hlY2tQYXJ0aWNsZUNvcnJlY3RfMihjdHh0LCBOVUxMLCBub2RlLCBtaW4sIG1heCk7CisJLyoKKwkqIENyZWF0ZSBhIHBhcnRpY2xlCisJKi8KKwlwYXJ0aWNsZSA9IHhtbFNjaGVtYUFkZFBhcnRpY2xlKGN0eHQsIG5vZGUsIG1pbiwgbWF4KTsKKwlpZiAocGFydGljbGUgPT0gTlVMTCkKKwkgICAgcmV0dXJuIChOVUxMKTsKKwlwYXJ0aWNsZS0+Y2hpbGRyZW4gPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIpIGl0ZW07CisJLyoKKwkqIENoZWNrIGZvciBpbGxlZ2FsIGF0dHJpYnV0ZXMuCisJKi8KKwlhdHRyID0gbm9kZS0+cHJvcGVydGllczsKKwl3aGlsZSAoYXR0ciAhPSBOVUxMKSB7CisJICAgIGlmIChhdHRyLT5ucyA9PSBOVUxMKSB7CisJCWlmICgoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJpZCIpKSAmJgorCQkgICAgKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibWF4T2NjdXJzIikpICYmCisJCSAgICAoIXhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJtaW5PY2N1cnMiKSkpIHsKKwkJICAgIHhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCQl9CisJICAgIH0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCSAgICBhdHRyID0gYXR0ci0+bmV4dDsKKwl9CisgICAgfSBlbHNlIHsKKwkvKgorCSogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKwkqLworCWF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworCXdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwkgICAgaWYgKGF0dHItPm5zID09IE5VTEwpIHsKKwkJaWYgKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgeworCQkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJCX0KKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSB7CisJCXhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCSAgICB9CisJICAgIGF0dHIgPSBhdHRyLT5uZXh0OworCX0KKyAgICB9CisKKyAgICAvKgorICAgICogRXh0cmFjdCBhbmQgdmFsaWRhdGUgYXR0cmlidXRlcy4KKyAgICAqLworICAgIHhtbFNjaGVtYVBWYWxBdHRySUQoY3R4dCwgbm9kZSwgQkFEX0NBU1QgImlkIik7CisgICAgLyoKKyAgICAqIEFuZCBub3cgZm9yIHRoZSBjaGlsZHJlbi4uLgorICAgICovCisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisgICAgICAgIGl0ZW0tPmFubm90ID0geG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKGN0eHQsIGNoaWxkLCAxKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKHR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0FMTCkgeworCXhtbFNjaGVtYVBhcnRpY2xlUHRyIHBhcnQsIGxhc3QgPSBOVUxMOworCisJd2hpbGUgKElTX1NDSEVNQShjaGlsZCwgImVsZW1lbnQiKSkgeworCSAgICBwYXJ0ID0gKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSB4bWxTY2hlbWFQYXJzZUVsZW1lbnQoY3R4dCwKKwkJc2NoZW1hLCBjaGlsZCwgJmlzRWxlbVJlZiwgMCk7CisJICAgIC8qCisJICAgICogU1BFQyBjb3MtYWxsLWxpbWl0ZWQgKDIpCisJICAgICogIlRoZSB7bWF4IG9jY3Vyc30gb2YgYWxsIHRoZSBwYXJ0aWNsZXMgaW4gdGhlIHtwYXJ0aWNsZXN9CisJICAgICogb2YgdGhlICgnYWxsJykgZ3JvdXAgbXVzdCBiZSAwIG9yIDEuCisJICAgICovCisJICAgIGlmIChwYXJ0ICE9IE5VTEwpIHsKKwkJaWYgKGlzRWxlbVJlZikKKwkJICAgIGhhc1JlZnMrKzsKKwkJaWYgKHBhcnQtPm1pbk9jY3VycyA+IDEpIHsKKwkJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCwKKwkJCU5VTEwsIGNoaWxkLAorCQkJIkludmFsaWQgdmFsdWUgZm9yIG1pbk9jY3VycyAobXVzdCBiZSAwIG9yIDEpIiwKKwkJCU5VTEwpOworCQkgICAgLyogUmVzZXQgdG8gMS4gKi8KKwkJICAgIHBhcnQtPm1pbk9jY3VycyA9IDE7CisJCX0KKwkJaWYgKHBhcnQtPm1heE9jY3VycyA+IDEpIHsKKwkJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCwKKwkJCU5VTEwsIGNoaWxkLAorCQkJIkludmFsaWQgdmFsdWUgZm9yIG1heE9jY3VycyAobXVzdCBiZSAwIG9yIDEpIiwKKwkJCU5VTEwpOworCQkgICAgLyogUmVzZXQgdG8gMS4gKi8KKwkJICAgIHBhcnQtPm1heE9jY3VycyA9IDE7CisJCX0KKwkJaWYgKGxhc3QgPT0gTlVMTCkKKwkJICAgIGl0ZW0tPmNoaWxkcmVuID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyKSBwYXJ0OworCQllbHNlCisJCSAgICBsYXN0LT5uZXh0ID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyKSBwYXJ0OworCQlsYXN0ID0gcGFydDsKKwkgICAgfQorCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKwlpZiAoY2hpbGQgIT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkJTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJCSIoYW5ub3RhdGlvbj8sIChhbm5vdGF0aW9uPywgZWxlbWVudCopIik7CisJfQorICAgIH0gZWxzZSB7CisJLyogY2hvaWNlICsgc2VxdWVuY2UgKi8KKwl4bWxTY2hlbWFUcmVlSXRlbVB0ciBwYXJ0ID0gTlVMTCwgbGFzdCA9IE5VTEw7CisKKwl3aGlsZSAoKElTX1NDSEVNQShjaGlsZCwgImVsZW1lbnQiKSkgfHwKKwkgICAgKElTX1NDSEVNQShjaGlsZCwgImdyb3VwIikpIHx8CisJICAgIChJU19TQ0hFTUEoY2hpbGQsICJhbnkiKSkgfHwKKwkgICAgKElTX1NDSEVNQShjaGlsZCwgImNob2ljZSIpKSB8fAorCSAgICAoSVNfU0NIRU1BKGNoaWxkLCAic2VxdWVuY2UiKSkpIHsKKworCSAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiZWxlbWVudCIpKSB7CisJCXBhcnQgPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIpCisJCSAgICB4bWxTY2hlbWFQYXJzZUVsZW1lbnQoY3R4dCwgc2NoZW1hLCBjaGlsZCwgJmlzRWxlbVJlZiwgMCk7CisJCWlmIChwYXJ0ICYmIGlzRWxlbVJlZikKKwkJICAgIGhhc1JlZnMrKzsKKwkgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJncm91cCIpKSB7CisJCXBhcnQgPQorCQkgICAgeG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwRGVmUmVmKGN0eHQsIHNjaGVtYSwgY2hpbGQpOworCQlpZiAocGFydCAhPSBOVUxMKQorCQkgICAgaGFzUmVmcysrOworCQkvKgorCQkqIEhhbmRsZSByZWRlZmluaXRpb25zLgorCQkqLworCQlpZiAoY3R4dC0+aXNSZWRlZmluZSAmJiBjdHh0LT5yZWRlZiAmJgorCQkgICAgKGN0eHQtPnJlZGVmLT5pdGVtLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9HUk9VUCkgJiYKKwkJICAgIHBhcnQgJiYgcGFydC0+Y2hpbGRyZW4pCisJCXsKKwkJICAgIGlmICgoeG1sU2NoZW1hR2V0UU5hbWVSZWZOYW1lKHBhcnQtPmNoaWxkcmVuKSA9PQorCQkJICAgIGN0eHQtPnJlZGVmLT5yZWZOYW1lKSAmJgorCQkJKHhtbFNjaGVtYUdldFFOYW1lUmVmVGFyZ2V0TnMocGFydC0+Y2hpbGRyZW4pID09CisJCQkgICAgY3R4dC0+cmVkZWYtPnJlZlRhcmdldE5zKSkKKwkJICAgIHsKKwkJCS8qCisJCQkqIFNQRUMgc3JjLXJlZGVmaW5lOgorCQkJKiAoNi4xKSAiSWYgaXQgaGFzIGEgPGdyb3VwPiBhbW9uZyBpdHMgY29udGVudHMgYXQKKwkJCSogc29tZSBsZXZlbCB0aGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIHdob3NlIHJlZgorCQkJKiBbYXR0cmlidXRlXSBpcyB0aGUgc2FtZSBhcyB0aGUg77+9YWN0dWFsIHZhbHVl77+9IG9mCisJCQkqIGl0cyBvd24gbmFtZSBhdHRyaWJ1dGUgcGx1cyB0YXJnZXQgbmFtZXNwYWNlLCB0aGVuCisJCQkqIGFsbCBvZiB0aGUgZm9sbG93aW5nIG11c3QgYmUgdHJ1ZToiCisJCQkqICg2LjEuMSkgIkl0IG11c3QgaGF2ZSBleGFjdGx5IG9uZSBzdWNoIGdyb3VwLiIKKwkJCSovCisJCQlpZiAoY3R4dC0+cmVkZWZDb3VudGVyICE9IDApIHsKKwkJCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCisJCQkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgY3R4dCwKKwkJCQlYTUxfU0NIRU1BUF9TUkNfUkVERUZJTkUsIGNoaWxkLCBOVUxMLAorCQkJCSJUaGUgcmVkZWZpbmluZyBtb2RlbCBncm91cCBkZWZpbml0aW9uICIKKwkJCQkiJyVzJyBtdXN0IG5vdCBjb250YWluIG1vcmUgdGhhbiBvbmUgIgorCQkJCSJyZWZlcmVuY2UgdG8gdGhlIHJlZGVmaW5lZCBkZWZpbml0aW9uIiwKKwkJCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCQkJCSAgICBjdHh0LT5yZWRlZi0+cmVmVGFyZ2V0TnMsCisJCQkJICAgIGN0eHQtPnJlZGVmLT5yZWZOYW1lKSwKKwkJCQlOVUxMKTsKKwkJCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwkJCSAgICBwYXJ0ID0gTlVMTDsKKwkJCX0gZWxzZSBpZiAoKChXWFNfUEFSVElDTEUocGFydCkpLT5taW5PY2N1cnMgIT0gMSkgfHwKKwkJCSAgICAoKFdYU19QQVJUSUNMRShwYXJ0KSktPm1heE9jY3VycyAhPSAxKSkKKwkJCXsKKwkJCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCQkJICAgIC8qCisJCQkgICAgKiBTUEVDIHNyYy1yZWRlZmluZToKKwkJCSAgICAqICg2LjEuMikgIlRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2YgYm90aCB0aGF0CisJCQkgICAgKiBncm91cCdzIG1pbk9jY3VycyBhbmQgbWF4T2NjdXJzIFthdHRyaWJ1dGVdCisJCQkgICAgKiBtdXN0IGJlIDEgKG9yIO+/vWFic2VudO+/vSkuCisJCQkgICAgKi8KKwkJCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBjdHh0LAorCQkJCVhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwgY2hpbGQsIE5VTEwsCisJCQkJIlRoZSByZWRlZmluaW5nIG1vZGVsIGdyb3VwIGRlZmluaXRpb24gIgorCQkJCSInJXMnIG11c3Qgbm90IGNvbnRhaW4gYSByZWZlcmVuY2UgdG8gdGhlICIKKwkJCQkicmVkZWZpbmVkIGRlZmluaXRpb24gd2l0aCBhICIKKwkJCQkibWF4T2NjdXJzL21pbk9jY3VycyBvdGhlciB0aGFuIDEiLAorCQkJCXhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsCisJCQkJICAgIGN0eHQtPnJlZGVmLT5yZWZUYXJnZXROcywKKwkJCQkgICAgY3R4dC0+cmVkZWYtPnJlZk5hbWUpLAorCQkJCU5VTEwpOworCQkJICAgIEZSRUVfQU5EX05VTEwoc3RyKQorCQkJICAgIHBhcnQgPSBOVUxMOworCQkJfQorCQkJY3R4dC0+cmVkZWYtPnJlZmVyZW5jZSA9IFdYU19CQVNJQ19DQVNUIHBhcnQ7CisJCQljdHh0LT5yZWRlZkNvdW50ZXIrKzsKKwkJICAgIH0KKwkJfQorCSAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImFueSIpKSB7CisJCXBhcnQgPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIpCisJCSAgICB4bWxTY2hlbWFQYXJzZUFueShjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJjaG9pY2UiKSkgeworCQlwYXJ0ID0geG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwKGN0eHQsIHNjaGVtYSwgY2hpbGQsCisJCSAgICBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFLCAxKTsKKwkgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJzZXF1ZW5jZSIpKSB7CisJCXBhcnQgPSB4bWxTY2hlbWFQYXJzZU1vZGVsR3JvdXAoY3R4dCwgc2NoZW1hLCBjaGlsZCwKKwkJICAgIFhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRSwgMSk7CisJICAgIH0KKwkgICAgaWYgKHBhcnQgIT0gTlVMTCkgeworCQlpZiAobGFzdCA9PSBOVUxMKQorCQkgICAgaXRlbS0+Y2hpbGRyZW4gPSBwYXJ0OworCQllbHNlCisJCSAgICBsYXN0LT5uZXh0ID0gcGFydDsKKwkJbGFzdCA9IHBhcnQ7CisJICAgIH0KKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9CisJaWYgKGNoaWxkICE9IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJCU5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLAorCQkiKGFubm90YXRpb24/LCAoZWxlbWVudCB8IGdyb3VwIHwgY2hvaWNlIHwgc2VxdWVuY2UgfCBhbnkpKikiKTsKKwl9CisgICAgfQorICAgIGlmICgobWF4ID09IDApICYmIChtaW4gPT0gMCkpCisJcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoaGFzUmVmcykgeworCS8qCisJKiBXZSBuZWVkIHRvIHJlc29sdmUgcmVmZXJlbmNlcy4KKwkqLworCVdYU19BRERfUEVORElORyhjdHh0LCBpdGVtKTsKKyAgICB9CisgICAgaWYgKHdpdGhQYXJ0aWNsZSkKKwlyZXR1cm4gKCh4bWxTY2hlbWFUcmVlSXRlbVB0cikgcGFydGljbGUpOworICAgIGVsc2UKKwlyZXR1cm4gKCh4bWxTY2hlbWFUcmVlSXRlbVB0cikgaXRlbSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VSZXN0cmljdGlvbjoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBSZXN0cmljdGlvbiBkZWZpbml0aW9uCisgKiAqV0FSTklORyogdGhpcyBpbnRlcmZhY2UgaXMgaGlnaGx5IHN1YmplY3QgdG8gY2hhbmdlCisgKgorICogUmV0dXJucyB0aGUgdHlwZSBkZWZpbml0aW9uIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0cgoreG1sU2NoZW1hUGFyc2VSZXN0cmljdGlvbih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsIHhtbFNjaGVtYVB0ciBzY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbm9kZSwgeG1sU2NoZW1hVHlwZVR5cGUgcGFyZW50VHlwZSkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGU7CisgICAgeG1sTm9kZVB0ciBjaGlsZCA9IE5VTEw7CisgICAgeG1sQXR0clB0ciBhdHRyOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgLyogTm90IGEgY29tcG9uZW50LCBkb24ndCBjcmVhdGUgaXQuICovCisgICAgdHlwZSA9IGN0eHQtPmN0eHRUeXBlOworICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT047CisKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiYmFzZSIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisgICAgLyoKKyAgICAqIEV4dHJhY3QgYW5kIHZhbGlkYXRlIGF0dHJpYnV0ZXMuCisgICAgKi8KKyAgICB4bWxTY2hlbWFQVmFsQXR0cklEKGN0eHQsIG5vZGUsIEJBRF9DQVNUICJpZCIpOworICAgIC8qCisgICAgKiBBdHRyaWJ1dGUKKyAgICAqLworICAgIC8qCisgICAgKiBFeHRyYWN0IHRoZSBiYXNlIHR5cGUuIFRoZSAiYmFzZSIgYXR0cmlidXRlIGlzIG1hbmRhdG9yeSBpZiBpbnNpZGUKKyAgICAqIGEgY29tcGxleCB0eXBlIG9yIGlmIHJlZGVmaW5pbmcuCisgICAgKgorICAgICogU1BFQyAoMS4yKSAiLi4ub3RoZXJ3aXNlICg8cmVzdHJpY3Rpb24+IGhhcyBubyA8c2ltcGxlVHlwZT4gIgorICAgICogYW1vbmcgaXRzIFtjaGlsZHJlbl0pLCB0aGUgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbiB3aGljaCBpcworICAgICogdGhlIHtjb250ZW50IHR5cGV9IG9mIHRoZSB0eXBlIGRlZmluaXRpb24g77+9cmVzb2x2ZWTvv70gdG8gYnkKKyAgICAqIHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2YgdGhlIGJhc2UgW2F0dHJpYnV0ZV0iCisgICAgKi8KKyAgICBpZiAoeG1sU2NoZW1hUFZhbEF0dHJRTmFtZShjdHh0LCBzY2hlbWEsIE5VTEwsIG5vZGUsICJiYXNlIiwKKwkmKHR5cGUtPmJhc2VOcyksICYodHlwZS0+YmFzZSkpID09IDApCisgICAgeworCWlmICgodHlwZS0+YmFzZSA9PSBOVUxMKSAmJiAodHlwZS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWCkpIHsKKwkgICAgeG1sU2NoZW1hUE1pc3NpbmdBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkcsCisJCU5VTEwsIG5vZGUsICJiYXNlIiwgTlVMTCk7CisJfSBlbHNlIGlmICgoY3R4dC0+aXNSZWRlZmluZSkgJiYKKwkgICAgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9HTE9CQUwpKQorCXsKKwkgICAgaWYgKHR5cGUtPmJhc2UgPT0gTlVMTCkgeworCQl4bWxTY2hlbWFQTWlzc2luZ0F0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkcsCisJCSAgICBOVUxMLCBub2RlLCAiYmFzZSIsIE5VTEwpOworCSAgICB9IGVsc2UgaWYgKCghIHhtbFN0ckVxdWFsKHR5cGUtPmJhc2UsIHR5cGUtPm5hbWUpKSB8fAorCQkoISB4bWxTdHJFcXVhbCh0eXBlLT5iYXNlTnMsIHR5cGUtPnRhcmdldE5hbWVzcGFjZSkpKQorCSAgICB7CisJCXhtbENoYXIgKnN0cjEgPSBOVUxMLCAqc3RyMiA9IE5VTEw7CisJCS8qCisJCSogUkVERUZJTkU6IFNQRUMgc3JjLXJlZGVmaW5lICg1KQorCQkqICJXaXRoaW4gdGhlIFtjaGlsZHJlbl0sIGVhY2ggPHNpbXBsZVR5cGU+IG11c3QgaGF2ZSBhCisJCSogPHJlc3RyaWN0aW9uPiBhbW9uZyBpdHMgW2NoaWxkcmVuXSAuLi4gdGhlIO+/vWFjdHVhbCB2YWx1Ze+/vSBvZgorCQkqIHdob3NlIGJhc2UgW2F0dHJpYnV0ZV0gbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUg77+9YWN0dWFsIHZhbHVl77+9CisJCSogb2YgaXRzIG93biBuYW1lIGF0dHJpYnV0ZSBwbHVzIHRhcmdldCBuYW1lc3BhY2U7IgorCQkqLworCQl4bWxTY2hlbWFQQ3VzdG9tRXJyRXh0KGN0eHQsIFhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwKKwkJICAgIE5VTEwsIG5vZGUsICJUaGlzIGlzIGEgcmVkZWZpbml0aW9uLCBidXQgdGhlIFFOYW1lICIKKwkJICAgICJ2YWx1ZSAnJXMnIG9mIHRoZSAnYmFzZScgYXR0cmlidXRlIGRvZXMgbm90IG1hdGNoIHRoZSAiCisJCSAgICAidHlwZSdzIGRlc2lnbmF0aW9uICclcyciLAorCQkgICAgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0cjEsIHR5cGUtPmJhc2VOcywgdHlwZS0+YmFzZSksCisJCSAgICB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyMiwgdHlwZS0+dGFyZ2V0TmFtZXNwYWNlLAorCQkJdHlwZS0+bmFtZSksIE5VTEwpOworCQlGUkVFX0FORF9OVUxMKHN0cjEpOworCQlGUkVFX0FORF9OVUxMKHN0cjIpOworCQkvKiBBdm9pZCBjb25mdXNpb24gYW5kIGVyYXNlIHRoZSB2YWx1ZXMuICovCisJCXR5cGUtPmJhc2UgPSBOVUxMOworCQl0eXBlLT5iYXNlTnMgPSBOVUxMOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKgorICAgICogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisgICAgKi8KKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKwkvKgorCSogQWRkIHRoZSBhbm5vdGF0aW9uIHRvIHRoZSBzaW1wbGUgdHlwZSBhbmNlc3Rvci4KKwkqLworCXhtbFNjaGVtYUFkZEFubm90YXRpb24oKHhtbFNjaGVtYUFubm90SXRlbVB0cikgdHlwZSwKKwkgICAgeG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKGN0eHQsIGNoaWxkLCAxKSk7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorICAgIGlmIChwYXJlbnRUeXBlID09IFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEUpIHsKKwkvKgorCSogQ29ycmVzcG9uZHMgdG8gPHNpbXBsZVR5cGU+PHJlc3RyaWN0aW9uPjxzaW1wbGVUeXBlPi4KKwkqLworCWlmIChJU19TQ0hFTUEoY2hpbGQsICJzaW1wbGVUeXBlIikpIHsKKwkgICAgaWYgKHR5cGUtPmJhc2UgIT0gTlVMTCkgeworCQkvKgorCQkqIHNyYy1yZXN0cmljdGlvbi1iYXNlLW9yLXNpbXBsZVR5cGUKKwkJKiBFaXRoZXIgdGhlIGJhc2UgW2F0dHJpYnV0ZV0gb3IgdGhlIHNpbXBsZVR5cGUgW2NoaWxkXSBvZiB0aGUKKwkJKiA8cmVzdHJpY3Rpb24+IGVsZW1lbnQgbXVzdCBiZSBwcmVzZW50LCBidXQgbm90IGJvdGguCisJCSovCisJCXhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TUkNfUkVTVFJJQ1RJT05fQkFTRV9PUl9TSU1QTEVUWVBFLAorCQkgICAgTlVMTCwgbm9kZSwgY2hpbGQsCisJCSAgICAiVGhlIGF0dHJpYnV0ZSAnYmFzZScgYW5kIHRoZSA8c2ltcGxlVHlwZT4gY2hpbGQgYXJlICIKKwkJICAgICJtdXR1YWxseSBleGNsdXNpdmUiLCBOVUxMKTsKKwkgICAgfSBlbHNlIHsKKwkJdHlwZS0+YmFzZVR5cGUgPSAoeG1sU2NoZW1hVHlwZVB0cikKKwkJICAgIHhtbFNjaGVtYVBhcnNlU2ltcGxlVHlwZShjdHh0LCBzY2hlbWEsIGNoaWxkLCAwKTsKKwkgICAgfQorCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0gZWxzZSBpZiAodHlwZS0+YmFzZSA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19SRVNUUklDVElPTl9CQVNFX09SX1NJTVBMRVRZUEUsCisJCU5VTEwsIG5vZGUsIGNoaWxkLAorCQkiRWl0aGVyIHRoZSBhdHRyaWJ1dGUgJ2Jhc2UnIG9yIGEgPHNpbXBsZVR5cGU+IGNoaWxkICIKKwkJIm11c3QgYmUgcHJlc2VudCIsIE5VTEwpOworCX0KKyAgICB9IGVsc2UgaWYgKHBhcmVudFR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVhfQ09OVEVOVCkgeworCS8qCisJKiBDb3JyZXNwb25kcyB0byA8Y29tcGxleFR5cGU+PGNvbXBsZXhDb250ZW50PjxyZXN0cmljdGlvbj4uLi4KKwkqIGZvbGxvd2VkIGJ5OgorCSoKKwkqIE1vZGVsIGdyb3VwcyA8YWxsPiwgPGNob2ljZT4gYW5kIDxzZXF1ZW5jZT4uCisJKi8KKwlpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYWxsIikpIHsKKwkgICAgdHlwZS0+c3VidHlwZXMgPSAoeG1sU2NoZW1hVHlwZVB0cikKKwkJeG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwKGN0eHQsIHNjaGVtYSwgY2hpbGQsCisJCSAgICBYTUxfU0NIRU1BX1RZUEVfQUxMLCAxKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImNob2ljZSIpKSB7CisJICAgIHR5cGUtPnN1YnR5cGVzID0gKHhtbFNjaGVtYVR5cGVQdHIpCisJCXhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cChjdHh0LAorCQkgICAgc2NoZW1hLCBjaGlsZCwgWE1MX1NDSEVNQV9UWVBFX0NIT0lDRSwgMSk7CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJzZXF1ZW5jZSIpKSB7CisJICAgIHR5cGUtPnN1YnR5cGVzID0gKHhtbFNjaGVtYVR5cGVQdHIpCisJCXhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cChjdHh0LCBzY2hlbWEsIGNoaWxkLAorCQkgICAgWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFLCAxKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwkvKgorCSogTW9kZWwgZ3JvdXAgcmVmZXJlbmNlIDxncm91cD4uCisJKi8KKwl9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImdyb3VwIikpIHsKKwkgICAgdHlwZS0+c3VidHlwZXMgPSAoeG1sU2NoZW1hVHlwZVB0cikKKwkJeG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwRGVmUmVmKGN0eHQsIHNjaGVtYSwgY2hpbGQpOworCSAgICAvKgorCSAgICAqIE5vdGUgdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcmVzb2x2ZWQgaW4KKwkgICAgKiB4bWxTY2hlbWFSZXNvbHZlVHlwZVJlZmVyZW5jZXMoKTsKKwkgICAgKi8KKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9CisgICAgfSBlbHNlIGlmIChwYXJlbnRUeXBlID09IFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVCkgeworCS8qCisJKiBDb3JyZXNwb25kcyB0byA8Y29tcGxleFR5cGU+PHNpbXBsZUNvbnRlbnQ+PHJlc3RyaWN0aW9uPi4uLgorCSoKKwkqICIxLjEgdGhlIHNpbXBsZSB0eXBlIGRlZmluaXRpb24gY29ycmVzcG9uZGluZyB0byB0aGUgPHNpbXBsZVR5cGU+CisJKiBhbW9uZyB0aGUgW2NoaWxkcmVuXSBvZiA8cmVzdHJpY3Rpb24+IGlmIHRoZXJlIGlzIG9uZTsiCisJKi8KKwlpZiAoSVNfU0NIRU1BKGNoaWxkLCAic2ltcGxlVHlwZSIpKSB7CisJICAgIC8qCisJICAgICogV2Ugd2lsbCBzdG9yZSB0aGUgdG8tYmUtcmVzdHJpY3RlZCBzaW1wbGUgdHlwZSBpbgorCSAgICAqIHR5cGUtPmNvbnRlbnRUeXBlRGVmICp0ZW1wb3JhcmlseSouCisJICAgICovCisJICAgIHR5cGUtPmNvbnRlbnRUeXBlRGVmID0gKHhtbFNjaGVtYVR5cGVQdHIpCisJCXhtbFNjaGVtYVBhcnNlU2ltcGxlVHlwZShjdHh0LCBzY2hlbWEsIGNoaWxkLCAwKTsKKwkgICAgaWYgKCB0eXBlLT5jb250ZW50VHlwZURlZiA9PSBOVUxMKQorCQlyZXR1cm4gKE5VTEwpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKyAgICB9CisKKyAgICBpZiAoKHBhcmVudFR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSkgfHwKKwkocGFyZW50VHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFX0NPTlRFTlQpKSB7CisJeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQsIGxhc3RmYWNldCA9IE5VTEw7CisJLyoKKwkqIENvcnJlc3BvbmRzIHRvIDxjb21wbGV4VHlwZT48c2ltcGxlQ29udGVudD48cmVzdHJpY3Rpb24+Li4uCisJKiA8c2ltcGxlVHlwZT48cmVzdHJpY3Rpb24+Li4uCisJKi8KKworCS8qCisJKiBBZGQgdGhlIGZhY2V0cyB0byB0aGUgc2ltcGxlIHR5cGUgYW5jZXN0b3IuCisJKi8KKwkvKgorCSogVE9ETzogRGF0YXR5cGVzOiA0LjEuMyBDb25zdHJhaW50cyBvbiBYTUwgUmVwcmVzZW50YXRpb24gb2YKKwkqIFNpbXBsZSBUeXBlIERlZmluaXRpb24gU2NoZW1hIFJlcHJlc2VudGF0aW9uIENvbnN0cmFpbnQ6CisJKiAqU2luZ2xlIEZhY2V0IFZhbHVlKgorCSovCisJd2hpbGUgKChJU19TQ0hFTUEoY2hpbGQsICJtaW5JbmNsdXNpdmUiKSkgfHwKKwkgICAgKElTX1NDSEVNQShjaGlsZCwgIm1pbkV4Y2x1c2l2ZSIpKSB8fAorCSAgICAoSVNfU0NIRU1BKGNoaWxkLCAibWF4SW5jbHVzaXZlIikpIHx8CisJICAgIChJU19TQ0hFTUEoY2hpbGQsICJtYXhFeGNsdXNpdmUiKSkgfHwKKwkgICAgKElTX1NDSEVNQShjaGlsZCwgInRvdGFsRGlnaXRzIikpIHx8CisJICAgIChJU19TQ0hFTUEoY2hpbGQsICJmcmFjdGlvbkRpZ2l0cyIpKSB8fAorCSAgICAoSVNfU0NIRU1BKGNoaWxkLCAicGF0dGVybiIpKSB8fAorCSAgICAoSVNfU0NIRU1BKGNoaWxkLCAiZW51bWVyYXRpb24iKSkgfHwKKwkgICAgKElTX1NDSEVNQShjaGlsZCwgIndoaXRlU3BhY2UiKSkgfHwKKwkgICAgKElTX1NDSEVNQShjaGlsZCwgImxlbmd0aCIpKSB8fAorCSAgICAoSVNfU0NIRU1BKGNoaWxkLCAibWF4TGVuZ3RoIikpIHx8CisJICAgIChJU19TQ0hFTUEoY2hpbGQsICJtaW5MZW5ndGgiKSkpIHsKKwkgICAgZmFjZXQgPSB4bWxTY2hlbWFQYXJzZUZhY2V0KGN0eHQsIHNjaGVtYSwgY2hpbGQpOworCSAgICBpZiAoZmFjZXQgIT0gTlVMTCkgeworCQlpZiAobGFzdGZhY2V0ID09IE5VTEwpCisJCSAgICB0eXBlLT5mYWNldHMgPSBmYWNldDsKKwkJZWxzZQorCQkgICAgbGFzdGZhY2V0LT5uZXh0ID0gZmFjZXQ7CisJCWxhc3RmYWNldCA9IGZhY2V0OworCQlsYXN0ZmFjZXQtPm5leHQgPSBOVUxMOworCSAgICB9CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfQorCS8qCisJKiBDcmVhdGUgbGlua3MgZm9yIGRlcml2YXRpb24gYW5kIHZhbGlkYXRpb24uCisJKi8KKwlpZiAodHlwZS0+ZmFjZXRzICE9IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hRmFjZXRMaW5rUHRyIGZhY2V0TGluaywgbGFzdEZhY2V0TGluayA9IE5VTEw7CisKKwkgICAgZmFjZXQgPSB0eXBlLT5mYWNldHM7CisJICAgIGRvIHsKKwkJZmFjZXRMaW5rID0gKHhtbFNjaGVtYUZhY2V0TGlua1B0cikKKwkJICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hRmFjZXRMaW5rKSk7CisJCWlmIChmYWNldExpbmsgPT0gTlVMTCkgeworCQkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShjdHh0LCAiYWxsb2NhdGluZyBhIGZhY2V0IGxpbmsiLCBOVUxMKTsKKwkJICAgIHhtbEZyZWUoZmFjZXRMaW5rKTsKKwkJICAgIHJldHVybiAoTlVMTCk7CisJCX0KKwkJZmFjZXRMaW5rLT5mYWNldCA9IGZhY2V0OworCQlmYWNldExpbmstPm5leHQgPSBOVUxMOworCQlpZiAobGFzdEZhY2V0TGluayA9PSBOVUxMKQorCQkgICAgdHlwZS0+ZmFjZXRTZXQgPSBmYWNldExpbms7CisJCWVsc2UKKwkJICAgIGxhc3RGYWNldExpbmstPm5leHQgPSBmYWNldExpbms7CisJCWxhc3RGYWNldExpbmsgPSBmYWNldExpbms7CisJCWZhY2V0ID0gZmFjZXQtPm5leHQ7CisJICAgIH0gd2hpbGUgKGZhY2V0ICE9IE5VTEwpOworCX0KKyAgICB9CisgICAgaWYgKHR5cGUtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVgpIHsKKwkvKgorCSogQXR0cmlidXRlIHVzZXMvZGVjbGFyYXRpb25zLgorCSovCisJaWYgKHhtbFNjaGVtYVBhcnNlTG9jYWxBdHRyaWJ1dGVzKGN0eHQsIHNjaGVtYSwgJmNoaWxkLAorCSAgICAoeG1sU2NoZW1hSXRlbUxpc3RQdHIgKikgJih0eXBlLT5hdHRyVXNlcyksCisJICAgIFhNTF9TQ0hFTUFfVFlQRV9SRVNUUklDVElPTiwgTlVMTCkgPT0gLTEpCisJICAgIHJldHVybihOVUxMKTsKKwkvKgorCSogQXR0cmlidXRlIHdpbGRjYXJkLgorCSovCisJaWYgKElTX1NDSEVNQShjaGlsZCwgImFueUF0dHJpYnV0ZSIpKSB7CisJICAgIHR5cGUtPmF0dHJpYnV0ZVdpbGRjYXJkID0KKwkJeG1sU2NoZW1hUGFyc2VBbnlBdHRyaWJ1dGUoY3R4dCwgc2NoZW1hLCBjaGlsZCk7CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfQorICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCWlmIChwYXJlbnRUeXBlID09IFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYX0NPTlRFTlQpIHsKKwkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJCU5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLAorCQkiYW5ub3RhdGlvbj8sIChncm91cCB8IGFsbCB8IGNob2ljZSB8IHNlcXVlbmNlKT8sICIKKwkJIigoYXR0cmlidXRlIHwgYXR0cmlidXRlR3JvdXApKiwgYW55QXR0cmlidXRlPykpIik7CisJfSBlbHNlIGlmIChwYXJlbnRUeXBlID09IFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVCkgeworCSAgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJCU5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLAorCQkiKGFubm90YXRpb24/LCAoc2ltcGxlVHlwZT8sIChtaW5FeGNsdXNpdmUgfCBtaW5JbmNsdXNpdmUgfCAiCisJCSJtYXhFeGNsdXNpdmUgfCBtYXhJbmNsdXNpdmUgfCB0b3RhbERpZ2l0cyB8IGZyYWN0aW9uRGlnaXRzIHwgIgorCQkibGVuZ3RoIHwgbWluTGVuZ3RoIHwgbWF4TGVuZ3RoIHwgZW51bWVyYXRpb24gfCB3aGl0ZVNwYWNlIHwgIgorCQkicGF0dGVybikqKT8sICgoYXR0cmlidXRlIHwgYXR0cmlidXRlR3JvdXApKiwgYW55QXR0cmlidXRlPykpIik7CisJfSBlbHNlIHsKKwkgICAgLyogU2ltcGxlIHR5cGUgKi8KKwkgICAgeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0VMRU1fTk9UX0FMTE9XRUQsCisJCU5VTEwsIG5vZGUsIGNoaWxkLCBOVUxMLAorCQkiKGFubm90YXRpb24/LCAoc2ltcGxlVHlwZT8sIChtaW5FeGNsdXNpdmUgfCBtaW5JbmNsdXNpdmUgfCAiCisJCSJtYXhFeGNsdXNpdmUgfCBtYXhJbmNsdXNpdmUgfCB0b3RhbERpZ2l0cyB8IGZyYWN0aW9uRGlnaXRzIHwgIgorCQkibGVuZ3RoIHwgbWluTGVuZ3RoIHwgbWF4TGVuZ3RoIHwgZW51bWVyYXRpb24gfCB3aGl0ZVNwYWNlIHwgIgorCQkicGF0dGVybikqKSkiKTsKKwl9CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VFeHRlbnNpb246CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQHNjaGVtYTogIHRoZSBzY2hlbWEgYmVpbmcgYnVpbHQKKyAqIEBub2RlOiAgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgWE1MIFNjaGVtYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBQYXJzZXMgYW4gPGV4dGVuc2lvbj4sIHdoaWNoIGlzIGZvdW5kIGluc2lkZSBhCisgKiA8c2ltcGxlQ29udGVudD4gb3IgPGNvbXBsZXhDb250ZW50Pi4KKyAqICpXQVJOSU5HKiB0aGlzIGludGVyZmFjZSBpcyBoaWdobHkgc3ViamVjdCB0byBjaGFuZ2UuCisgKgorICogVE9ETzogUmV0dXJucyB0aGUgdHlwZSBkZWZpbml0aW9uIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0cgoreG1sU2NoZW1hUGFyc2VFeHRlbnNpb24oeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciBub2RlLCB4bWxTY2hlbWFUeXBlVHlwZSBwYXJlbnRUeXBlKQoreworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZTsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAvKiBOb3QgYSBjb21wb25lbnQsIGRvbid0IGNyZWF0ZSBpdC4gKi8KKyAgICB0eXBlID0gY3R4dC0+Y3R4dFR5cGU7CisgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9ERVJJVkFUSU9OX01FVEhPRF9FWFRFTlNJT047CisKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiYmFzZSIpKSkgeworCQl4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnMtPmhyZWYsIHhtbFNjaGVtYU5zKSkgeworCSAgICB4bWxTY2hlbWFQSWxsZWdhbEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCX0KKwlhdHRyID0gYXR0ci0+bmV4dDsKKyAgICB9CisKKyAgICB4bWxTY2hlbWFQVmFsQXR0cklEKGN0eHQsIG5vZGUsIEJBRF9DQVNUICJpZCIpOworCisgICAgLyoKKyAgICAqIEF0dHJpYnV0ZSAiYmFzZSIgLSBtYW5kYXRvcnkuCisgICAgKi8KKyAgICBpZiAoKHhtbFNjaGVtYVBWYWxBdHRyUU5hbWUoY3R4dCwgc2NoZW1hLCBOVUxMLCBub2RlLAorCSJiYXNlIiwgJih0eXBlLT5iYXNlTnMpLCAmKHR5cGUtPmJhc2UpKSA9PSAwKSAmJgorCSh0eXBlLT5iYXNlID09IE5VTEwpKSB7CisJeG1sU2NoZW1hUE1pc3NpbmdBdHRyRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkcsCisJICAgIE5VTEwsIG5vZGUsICJiYXNlIiwgTlVMTCk7CisgICAgfQorICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworCS8qCisJKiBBZGQgdGhlIGFubm90YXRpb24gdG8gdGhlIHR5cGUgYW5jZXN0b3IuCisJKi8KKwl4bWxTY2hlbWFBZGRBbm5vdGF0aW9uKCh4bWxTY2hlbWFBbm5vdEl0ZW1QdHIpIHR5cGUsCisJICAgIHhtbFNjaGVtYVBhcnNlQW5ub3RhdGlvbihjdHh0LCBjaGlsZCwgMSkpOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBpZiAocGFyZW50VHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UKSB7CisJLyoKKwkqIENvcnJlc3BvbmRzIHRvIDxjb21wbGV4VHlwZT48Y29tcGxleENvbnRlbnQ+PGV4dGVuc2lvbj4uLi4gYW5kOgorCSoKKwkqIE1vZGVsIGdyb3VwcyA8YWxsPiwgPGNob2ljZT4sIDxzZXF1ZW5jZT4gYW5kIDxncm91cD4uCisJKi8KKwlpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYWxsIikpIHsKKwkgICAgdHlwZS0+c3VidHlwZXMgPSAoeG1sU2NoZW1hVHlwZVB0cikKKwkJeG1sU2NoZW1hUGFyc2VNb2RlbEdyb3VwKGN0eHQsIHNjaGVtYSwKKwkJICAgIGNoaWxkLCBYTUxfU0NIRU1BX1RZUEVfQUxMLCAxKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImNob2ljZSIpKSB7CisJICAgIHR5cGUtPnN1YnR5cGVzID0gKHhtbFNjaGVtYVR5cGVQdHIpCisJCXhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cChjdHh0LCBzY2hlbWEsCisJCSAgICBjaGlsZCwgWE1MX1NDSEVNQV9UWVBFX0NIT0lDRSwgMSk7CisJICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisJfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJzZXF1ZW5jZSIpKSB7CisJICAgIHR5cGUtPnN1YnR5cGVzID0gKHhtbFNjaGVtYVR5cGVQdHIpCisJCXhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cChjdHh0LCBzY2hlbWEsCisJCWNoaWxkLCBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0UsIDEpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0gZWxzZSBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiZ3JvdXAiKSkgeworCSAgICB0eXBlLT5zdWJ0eXBlcyA9ICh4bWxTY2hlbWFUeXBlUHRyKQorCQl4bWxTY2hlbWFQYXJzZU1vZGVsR3JvdXBEZWZSZWYoY3R4dCwgc2NoZW1hLCBjaGlsZCk7CisJICAgIC8qCisJICAgICogTm90ZSB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSByZXNvbHZlZCBpbgorCSAgICAqIHhtbFNjaGVtYVJlc29sdmVUeXBlUmVmZXJlbmNlcygpOworCSAgICAqLworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwkvKgorCSogQXR0cmlidXRlIHVzZXMvZGVjbGFyYXRpb25zLgorCSovCisJaWYgKHhtbFNjaGVtYVBhcnNlTG9jYWxBdHRyaWJ1dGVzKGN0eHQsIHNjaGVtYSwgJmNoaWxkLAorCSAgICAoeG1sU2NoZW1hSXRlbUxpc3RQdHIgKikgJih0eXBlLT5hdHRyVXNlcyksCisJICAgIFhNTF9TQ0hFTUFfVFlQRV9FWFRFTlNJT04sIE5VTEwpID09IC0xKQorCSAgICByZXR1cm4oTlVMTCk7CisJLyoKKwkqIEF0dHJpYnV0ZSB3aWxkY2FyZC4KKwkqLworCWlmIChJU19TQ0hFTUEoY2hpbGQsICJhbnlBdHRyaWJ1dGUiKSkgeworCSAgICBjdHh0LT5jdHh0VHlwZS0+YXR0cmlidXRlV2lsZGNhcmQgPQorCQl4bWxTY2hlbWFQYXJzZUFueUF0dHJpYnV0ZShjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKwl9CisgICAgfQorICAgIGlmIChjaGlsZCAhPSBOVUxMKSB7CisJaWYgKHBhcmVudFR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVhfQ09OVEVOVCkgeworCSAgICAvKiBDb21wbGV4IGNvbnRlbnQgZXh0ZW5zaW9uLiAqLworCSAgICB4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkJTlVMTCwgbm9kZSwgY2hpbGQsIE5VTEwsCisJCSIoYW5ub3RhdGlvbj8sICgoZ3JvdXAgfCBhbGwgfCBjaG9pY2UgfCBzZXF1ZW5jZSk/LCAiCisJCSIoKGF0dHJpYnV0ZSB8IGF0dHJpYnV0ZUdyb3VwKSosIGFueUF0dHJpYnV0ZT8pKSkiKTsKKwl9IGVsc2UgeworCSAgICAvKiBTaW1wbGUgY29udGVudCBleHRlbnNpb24uICovCisJICAgIHhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCQlOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwKKwkJIihhbm5vdGF0aW9uPywgKChhdHRyaWJ1dGUgfCBhdHRyaWJ1dGVHcm91cCkqLCAiCisJCSJhbnlBdHRyaWJ1dGU/KSkiKTsKKwl9CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VTaW1wbGVDb250ZW50OgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKgorICogcGFyc2UgYSBYTUwgc2NoZW1hIFNpbXBsZUNvbnRlbnQgZGVmaW5pdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIHR5cGUgZGVmaW5pdGlvbiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUGFyc2VTaW1wbGVDb250ZW50KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLCB4bWxOb2RlUHRyIG5vZGUsCisJCQkgICAgaW50ICpoYXNSZXN0cmljdGlvbk9yRXh0ZW5zaW9uKQoreworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZTsKKyAgICB4bWxOb2RlUHRyIGNoaWxkID0gTlVMTDsKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSB8fAorCShoYXNSZXN0cmljdGlvbk9yRXh0ZW5zaW9uID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAqaGFzUmVzdHJpY3Rpb25PckV4dGVuc2lvbiA9IDA7CisgICAgLyogTm90IGEgY29tcG9uZW50LCBkb24ndCBjcmVhdGUgaXQuICovCisgICAgdHlwZSA9IGN0eHQtPmN0eHRUeXBlOworICAgIHR5cGUtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX1NJTVBMRTsKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkpIHsKKwkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJICAgIH0KKwl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpIHsKKwkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwl9CisJYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorCisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKworICAgIC8qCisgICAgKiBBbmQgbm93IGZvciB0aGUgY2hpbGRyZW4uLi4KKyAgICAqLworICAgIGNoaWxkID0gbm9kZS0+Y2hpbGRyZW47CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgImFubm90YXRpb24iKSkgeworCS8qCisJKiBBZGQgdGhlIGFubm90YXRpb24gdG8gdGhlIGNvbXBsZXggdHlwZSBhbmNlc3Rvci4KKwkqLworCXhtbFNjaGVtYUFkZEFubm90YXRpb24oKHhtbFNjaGVtYUFubm90SXRlbVB0cikgdHlwZSwKKwkgICAgeG1sU2NoZW1hUGFyc2VBbm5vdGF0aW9uKGN0eHQsIGNoaWxkLCAxKSk7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfQorICAgIGlmIChjaGlsZCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUENvbnRlbnRFcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfUzRTX0VMRU1fTUlTU0lORywKKwkgICAgTlVMTCwgbm9kZSwgTlVMTCwgTlVMTCwKKwkgICAgIihhbm5vdGF0aW9uPywgKHJlc3RyaWN0aW9uIHwgZXh0ZW5zaW9uKSkiKTsKKyAgICB9CisgICAgaWYgKGNoaWxkID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9NSVNTSU5HLAorCSAgICBOVUxMLCBub2RlLCBOVUxMLCBOVUxMLAorCSAgICAiKGFubm90YXRpb24/LCAocmVzdHJpY3Rpb24gfCBleHRlbnNpb24pKSIpOworICAgIH0KKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAicmVzdHJpY3Rpb24iKSkgeworICAgICAgICB4bWxTY2hlbWFQYXJzZVJlc3RyaWN0aW9uKGN0eHQsIHNjaGVtYSwgY2hpbGQsCisJICAgIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEVfQ09OVEVOVCk7CisJKCpoYXNSZXN0cmljdGlvbk9yRXh0ZW5zaW9uKSA9IDE7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJleHRlbnNpb24iKSkgeworICAgICAgICB4bWxTY2hlbWFQYXJzZUV4dGVuc2lvbihjdHh0LCBzY2hlbWEsIGNoaWxkLAorCSAgICBYTUxfU0NIRU1BX1RZUEVfU0lNUExFX0NPTlRFTlQpOworCSgqaGFzUmVzdHJpY3Rpb25PckV4dGVuc2lvbikgPSAxOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBpZiAoY2hpbGQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX05PVF9BTExPV0VELAorCSAgICBOVUxMLCBub2RlLCBjaGlsZCwgTlVMTCwKKwkgICAgIihhbm5vdGF0aW9uPywgKHJlc3RyaWN0aW9uIHwgZXh0ZW5zaW9uKSkiKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFQYXJzZUNvbXBsZXhDb250ZW50OgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hIGJlaW5nIGJ1aWx0CisgKiBAbm9kZTogIGEgc3VidHJlZSBjb250YWluaW5nIFhNTCBTY2hlbWEgaW5mb3JtYXRpb25zCisgKgorICogcGFyc2UgYSBYTUwgc2NoZW1hIENvbXBsZXhDb250ZW50IGRlZmluaXRpb24KKyAqICpXQVJOSU5HKiB0aGlzIGludGVyZmFjZSBpcyBoaWdobHkgc3ViamVjdCB0byBjaGFuZ2UKKyAqCisgKiBSZXR1cm5zIHRoZSB0eXBlIGRlZmluaXRpb24gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBhcnNlQ29tcGxleENvbnRlbnQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLCB4bWxOb2RlUHRyIG5vZGUsCisJCQkgICAgIGludCAqaGFzUmVzdHJpY3Rpb25PckV4dGVuc2lvbikKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGU7CisgICAgeG1sTm9kZVB0ciBjaGlsZCA9IE5VTEw7CisgICAgeG1sQXR0clB0ciBhdHRyOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzY2hlbWEgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkgfHwKKwkoaGFzUmVzdHJpY3Rpb25PckV4dGVuc2lvbiA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgKmhhc1Jlc3RyaWN0aW9uT3JFeHRlbnNpb24gPSAwOworICAgIC8qIE5vdCBhIGNvbXBvbmVudCwgZG9uJ3QgY3JlYXRlIGl0LiAqLworICAgIHR5cGUgPSBjdHh0LT5jdHh0VHlwZTsKKyAgICAvKgorICAgICogQ2hlY2sgZm9yIGlsbGVnYWwgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAiaWQiKSkgJiYKKwkJKCF4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibWl4ZWQiKSkpCisJICAgIHsKKwkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJICAgIH0KKwl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zLT5ocmVmLCB4bWxTY2hlbWFOcykpIHsKKwkgICAgeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX05PVF9BTExPV0VELCBOVUxMLCBhdHRyKTsKKwl9CisJYXR0ciA9IGF0dHItPm5leHQ7CisgICAgfQorCisgICAgeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKworICAgIC8qCisgICAgKiBTZXQgdGhlICdtaXhlZCcgb24gdGhlIGNvbXBsZXggdHlwZSBhbmNlc3Rvci4KKyAgICAqLworICAgIGlmICh4bWxHZXRCb29sZWFuUHJvcChjdHh0LCBub2RlLCAibWl4ZWQiLCAwKSkgIHsKKwlpZiAoKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9NSVhFRCkgPT0gMCkKKwkgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9NSVhFRDsKKyAgICB9CisgICAgY2hpbGQgPSBub2RlLT5jaGlsZHJlbjsKKyAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYW5ub3RhdGlvbiIpKSB7CisJLyoKKwkqIEFkZCB0aGUgYW5ub3RhdGlvbiB0byB0aGUgY29tcGxleCB0eXBlIGFuY2VzdG9yLgorCSovCisJeG1sU2NoZW1hQWRkQW5ub3RhdGlvbigoeG1sU2NoZW1hQW5ub3RJdGVtUHRyKSB0eXBlLAorCSAgICB4bWxTY2hlbWFQYXJzZUFubm90YXRpb24oY3R4dCwgY2hpbGQsIDEpKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkID09IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9NSVNTSU5HLAorCSAgICBOVUxMLCBub2RlLCBOVUxMLAorCSAgICBOVUxMLCAiKGFubm90YXRpb24/LCAocmVzdHJpY3Rpb24gfCBleHRlbnNpb24pKSIpOworICAgIH0KKyAgICBpZiAoY2hpbGQgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBDb250ZW50RXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1M0U19FTEVNX01JU1NJTkcsCisJICAgIE5VTEwsIG5vZGUsIE5VTEwsCisJICAgIE5VTEwsICIoYW5ub3RhdGlvbj8sIChyZXN0cmljdGlvbiB8IGV4dGVuc2lvbikpIik7CisgICAgfQorICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJyZXN0cmljdGlvbiIpKSB7CisgICAgICAgIHhtbFNjaGVtYVBhcnNlUmVzdHJpY3Rpb24oY3R4dCwgc2NoZW1hLCBjaGlsZCwKKwkgICAgWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVhfQ09OVEVOVCk7CisJKCpoYXNSZXN0cmljdGlvbk9yRXh0ZW5zaW9uKSA9IDE7CisgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHQ7CisgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJleHRlbnNpb24iKSkgeworICAgICAgICB4bWxTY2hlbWFQYXJzZUV4dGVuc2lvbihjdHh0LCBzY2hlbWEsIGNoaWxkLAorCSAgICBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWF9DT05URU5UKTsKKwkoKmhhc1Jlc3RyaWN0aW9uT3JFeHRlbnNpb24pID0gMTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkgICAgTlVMTCwgbm9kZSwgY2hpbGQsCisJICAgIE5VTEwsICIoYW5ub3RhdGlvbj8sIChyZXN0cmljdGlvbiB8IGV4dGVuc2lvbikpIik7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VDb21wbGV4VHlwZToKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2NoZW1hOiAgdGhlIHNjaGVtYSBiZWluZyBidWlsdAorICogQG5vZGU6ICBhIHN1YnRyZWUgY29udGFpbmluZyBYTUwgU2NoZW1hIGluZm9ybWF0aW9ucworICoKKyAqIHBhcnNlIGEgWE1MIHNjaGVtYSBDb21wbGV4IFR5cGUgZGVmaW5pdGlvbgorICogKldBUk5JTkcqIHRoaXMgaW50ZXJmYWNlIGlzIGhpZ2hseSBzdWJqZWN0IHRvIGNoYW5nZQorICoKKyAqIFJldHVybnMgdGhlIHR5cGUgZGVmaW5pdGlvbiBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIKK3htbFNjaGVtYVBhcnNlQ29tcGxleFR5cGUoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LCB4bWxTY2hlbWFQdHIgc2NoZW1hLAorICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIG5vZGUsIGludCB0b3BMZXZlbCkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUsIGN0eHRUeXBlOworICAgIHhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOworICAgIGNvbnN0IHhtbENoYXIgKm5hbWUgPSBOVUxMOworICAgIHhtbEF0dHJQdHIgYXR0cjsKKyAgICBjb25zdCB4bWxDaGFyICphdHRyVmFsdWU7CisjaWZkZWYgRU5BQkxFX05BTUVEX0xPQ0FMUworICAgIGNoYXIgYnVmWzQwXTsKKyNlbmRpZgorICAgIGludCBmaW5hbCA9IDAsIGJsb2NrID0gMCwgaGFzUmVzdHJpY3Rpb25PckV4dGVuc2lvbiA9IDA7CisKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoc2NoZW1hID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKE5VTEwpOworCisgICAgY3R4dFR5cGUgPSBjdHh0LT5jdHh0VHlwZTsKKworICAgIGlmICh0b3BMZXZlbCkgeworCWF0dHIgPSB4bWxTY2hlbWFHZXRQcm9wTm9kZShub2RlLCAibmFtZSIpOworCWlmIChhdHRyID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUE1pc3NpbmdBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1M0U19BVFRSX01JU1NJTkcsIE5VTEwsIG5vZGUsICJuYW1lIiwgTlVMTCk7CisJICAgIHJldHVybiAoTlVMTCk7CisJfSBlbHNlIGlmICh4bWxTY2hlbWFQVmFsQXR0ck5vZGUoY3R4dCwgTlVMTCwgYXR0ciwKKwkgICAgeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfTkNOQU1FKSwgJm5hbWUpICE9IDApIHsKKwkgICAgcmV0dXJuIChOVUxMKTsKKwl9CisgICAgfQorCisgICAgaWYgKHRvcExldmVsID09IDApIHsKKwkvKgorCSogUGFyc2UgYXMgbG9jYWwgY29tcGxleCB0eXBlIGRlZmluaXRpb24uCisJKi8KKyNpZmRlZiBFTkFCTEVfTkFNRURfTE9DQUxTCisgICAgICAgIHNucHJpbnRmKGJ1ZiwgMzksICIjQ1QlZCIsIGN0eHQtPmNvdW50ZXIrKyArIDEpOworCXR5cGUgPSB4bWxTY2hlbWFBZGRUeXBlKGN0eHQsIHNjaGVtYSwKKwkgICAgWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVgsCisJICAgIHhtbERpY3RMb29rdXAoY3R4dC0+ZGljdCwgKGNvbnN0IHhtbENoYXIgKilidWYsIC0xKSwKKwkgICAgY3R4dC0+dGFyZ2V0TmFtZXNwYWNlLCBub2RlLCAwKTsKKyNlbHNlCisJdHlwZSA9IHhtbFNjaGVtYUFkZFR5cGUoY3R4dCwgc2NoZW1hLAorCSAgICBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWCwKKwkgICAgTlVMTCwgY3R4dC0+dGFyZ2V0TmFtZXNwYWNlLCBub2RlLCAwKTsKKyNlbmRpZgorCWlmICh0eXBlID09IE5VTEwpCisJICAgIHJldHVybiAoTlVMTCk7CisJbmFtZSA9IHR5cGUtPm5hbWU7CisJdHlwZS0+bm9kZSA9IG5vZGU7CisJdHlwZS0+dHlwZSA9IFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOworCS8qCisJKiBUT0RPOiBXZSBuZWVkIHRoZSB0YXJnZXQgbmFtZXNwYWNlLgorCSovCisgICAgfSBlbHNlIHsKKwkvKgorCSogUGFyc2UgYXMgZ2xvYmFsIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uLgorCSovCisJdHlwZSA9IHhtbFNjaGVtYUFkZFR5cGUoY3R4dCwgc2NoZW1hLAorCSAgICBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWCwKKwkgICAgbmFtZSwgY3R4dC0+dGFyZ2V0TmFtZXNwYWNlLCBub2RlLCAxKTsKKwlpZiAodHlwZSA9PSBOVUxMKQorCSAgICByZXR1cm4gKE5VTEwpOworCXR5cGUtPm5vZGUgPSBub2RlOworCXR5cGUtPnR5cGUgPSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDsKKwl0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0dMT0JBTDsKKyAgICB9CisgICAgdHlwZS0+dGFyZ2V0TmFtZXNwYWNlID0gY3R4dC0+dGFyZ2V0TmFtZXNwYWNlOworICAgIC8qCisgICAgKiBIYW5kbGUgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworICAgIHdoaWxlIChhdHRyICE9IE5VTEwpIHsKKwlpZiAoYXR0ci0+bnMgPT0gTlVMTCkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImlkIikpIHsKKwkJLyoKKwkJKiBBdHRyaWJ1dGUgImlkIi4KKwkJKi8KKwkJeG1sU2NoZW1hUFZhbEF0dHJJRChjdHh0LCBub2RlLCBCQURfQ0FTVCAiaWQiKTsKKwkgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibWl4ZWQiKSkgeworCQkvKgorCQkqIEF0dHJpYnV0ZSAibWl4ZWQiLgorCQkqLworCQlpZiAoeG1sU2NoZW1hUEdldEJvb2xOb2RlVmFsdWUoY3R4dCwKKwkJCU5VTEwsICh4bWxOb2RlUHRyKSBhdHRyKSkKKwkJICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQ7CisJICAgIH0gZWxzZSBpZiAodG9wTGV2ZWwpIHsKKwkJLyoKKwkJKiBBdHRyaWJ1dGVzIG9mIGdsb2JhbCBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbnMuCisJCSovCisJCWlmICh4bWxTdHJFcXVhbChhdHRyLT5uYW1lLCBCQURfQ0FTVCAibmFtZSIpKSB7CisJCSAgICAvKiBQYXNzLiAqLworCQl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJhYnN0cmFjdCIpKSB7CisJCSAgICAvKgorCQkgICAgKiBBdHRyaWJ1dGUgImFic3RyYWN0Ii4KKwkJICAgICovCisJCSAgICBpZiAoeG1sU2NoZW1hUEdldEJvb2xOb2RlVmFsdWUoY3R4dCwKKwkJCSAgICBOVUxMLCAoeG1sTm9kZVB0cikgYXR0cikpCisJCQl0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUOworCQl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5hbWUsIEJBRF9DQVNUICJmaW5hbCIpKSB7CisJCSAgICAvKgorCQkgICAgKiBBdHRyaWJ1dGUgImZpbmFsIi4KKwkJICAgICovCisJCSAgICBhdHRyVmFsdWUgPSB4bWxTY2hlbWFHZXROb2RlQ29udGVudChjdHh0LAorCQkJKHhtbE5vZGVQdHIpIGF0dHIpOworCQkgICAgaWYgKHhtbFNjaGVtYVBWYWxBdHRyQmxvY2tGaW5hbChhdHRyVmFsdWUsCisJCQkmKHR5cGUtPmZsYWdzKSwKKwkJCS0xLAorCQkJWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9FWFRFTlNJT04sCisJCQlYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OLAorCQkJLTEsIC0xLCAtMSkgIT0gMCkKKwkJICAgIHsKKwkJCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKGN0eHQsCisJCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkJCSAgICBOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwgTlVMTCwKKwkJCSAgICAiKCNhbGwgfCBMaXN0IG9mIChleHRlbnNpb24gfCByZXN0cmljdGlvbikpIiwKKwkJCSAgICBhdHRyVmFsdWUsIE5VTEwsIE5VTEwsIE5VTEwpOworCQkgICAgfSBlbHNlCisJCQlmaW5hbCA9IDE7CisJCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bmFtZSwgQkFEX0NBU1QgImJsb2NrIikpIHsKKwkJICAgIC8qCisJCSAgICAqIEF0dHJpYnV0ZSAiYmxvY2siLgorCQkgICAgKi8KKwkJICAgIGF0dHJWYWx1ZSA9IHhtbFNjaGVtYUdldE5vZGVDb250ZW50KGN0eHQsCisJCQkoeG1sTm9kZVB0cikgYXR0cik7CisJCSAgICBpZiAoeG1sU2NoZW1hUFZhbEF0dHJCbG9ja0ZpbmFsKGF0dHJWYWx1ZSwgJih0eXBlLT5mbGFncyksCisJCQktMSwKKwkJCVhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OLAorCQkJWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTiwKKwkJCS0xLCAtMSwgLTEpICE9IDApIHsKKwkJCXhtbFNjaGVtYVBTaW1wbGVUeXBlRXJyKGN0eHQsCisJCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfSU5WQUxJRF9WQUxVRSwKKwkJCSAgICBOVUxMLCAoeG1sTm9kZVB0cikgYXR0ciwgTlVMTCwKKwkJCSAgICAiKCNhbGwgfCBMaXN0IG9mIChleHRlbnNpb24gfCByZXN0cmljdGlvbikpICIsCisJCQkgICAgYXR0clZhbHVlLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJICAgIH0gZWxzZQorCQkJYmxvY2sgPSAxOworCQl9IGVsc2UgeworCQkJeG1sU2NoZW1hUElsbGVnYWxBdHRyRXJyKGN0eHQsCisJCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCQl9CisJICAgIH0gZWxzZSB7CisJCXhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfUzRTX0FUVFJfTk9UX0FMTE9XRUQsIE5VTEwsIGF0dHIpOworCSAgICB9CisJfSBlbHNlIGlmICh4bWxTdHJFcXVhbChhdHRyLT5ucy0+aHJlZiwgeG1sU2NoZW1hTnMpKSB7CisJICAgIHhtbFNjaGVtYVBJbGxlZ2FsQXR0ckVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TNFNfQVRUUl9OT1RfQUxMT1dFRCwgTlVMTCwgYXR0cik7CisJfQorCWF0dHIgPSBhdHRyLT5uZXh0OworICAgIH0KKyAgICBpZiAoISBibG9jaykgeworCS8qCisJKiBBcHBseSBkZWZhdWx0ICJibG9jayIgdmFsdWVzLgorCSovCisJaWYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19CTE9DS19ERUZBVUxUX1JFU1RSSUNUSU9OKQorCSAgICB0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OOworCWlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfQkxPQ0tfREVGQVVMVF9FWFRFTlNJT04pCisJICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OOworICAgIH0KKyAgICBpZiAoISBmaW5hbCkgeworCS8qCisJKiBBcHBseSBkZWZhdWx0ICJibG9jayIgdmFsdWVzLgorCSovCisJaWYgKHNjaGVtYS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19GSU5BTF9ERUZBVUxUX1JFU1RSSUNUSU9OKQorCSAgICB0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OOworCWlmIChzY2hlbWEtPmZsYWdzICYgWE1MX1NDSEVNQVNfRklOQUxfREVGQVVMVF9FWFRFTlNJT04pCisJICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OOworICAgIH0KKyAgICAvKgorICAgICogQW5kIG5vdyBmb3IgdGhlIGNoaWxkcmVuLi4uCisgICAgKi8KKyAgICBjaGlsZCA9IG5vZGUtPmNoaWxkcmVuOworICAgIGlmIChJU19TQ0hFTUEoY2hpbGQsICJhbm5vdGF0aW9uIikpIHsKKyAgICAgICAgdHlwZS0+YW5ub3QgPSB4bWxTY2hlbWFQYXJzZUFubm90YXRpb24oY3R4dCwgY2hpbGQsIDEpOworICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgIH0KKyAgICBjdHh0LT5jdHh0VHlwZSA9IHR5cGU7CisgICAgaWYgKElTX1NDSEVNQShjaGlsZCwgInNpbXBsZUNvbnRlbnQiKSkgeworCS8qCisJKiA8Y29tcGxleFR5cGU+PHNpbXBsZUNvbnRlbnQ+Li4uCisJKiAzLjQuMyA6IDIuMgorCSogU3BlY2lmeWluZyBtaXhlZD0ndHJ1ZScgd2hlbiB0aGUgPHNpbXBsZUNvbnRlbnQ+CisJKiBhbHRlcm5hdGl2ZSBpcyBjaG9zZW4gaGFzIG5vIGVmZmVjdAorCSovCisJaWYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9NSVhFRCkKKwkgICAgdHlwZS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQVNfVFlQRV9NSVhFRDsKKyAgICAgICAgeG1sU2NoZW1hUGFyc2VTaW1wbGVDb250ZW50KGN0eHQsIHNjaGVtYSwgY2hpbGQsCisJICAgICZoYXNSZXN0cmljdGlvbk9yRXh0ZW5zaW9uKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImNvbXBsZXhDb250ZW50IikpIHsKKwkvKgorCSogPGNvbXBsZXhUeXBlPjxjb21wbGV4Q29udGVudD4uLi4KKwkqLworCXR5cGUtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZOworICAgICAgICB4bWxTY2hlbWFQYXJzZUNvbXBsZXhDb250ZW50KGN0eHQsIHNjaGVtYSwgY2hpbGQsCisJICAgICZoYXNSZXN0cmljdGlvbk9yRXh0ZW5zaW9uKTsKKyAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICB9IGVsc2UgeworCS8qCisJKiBFLmcgPGNvbXBsZXhUeXBlPjxzZXF1ZW5jZT4uLi4gb3IgPGNvbXBsZXhUeXBlPjxhdHRyaWJ1dGU+Li4uIGV0Yy4KKwkqCisJKiBTUEVDCisJKiAiLi4udGhlIHRoaXJkIGFsdGVybmF0aXZlIChuZWl0aGVyIDxzaW1wbGVDb250ZW50PiBub3IKKwkqIDxjb21wbGV4Q29udGVudD4pIGlzIGNob3Nlbi4gVGhpcyBjYXNlIGlzIHVuZGVyc3Rvb2QgYXMgc2hvcnRoYW5kCisJKiBmb3IgY29tcGxleCBjb250ZW50IHJlc3RyaWN0aW5nIHRoZSDvv711ci10eXBlIGRlZmluaXRpb27vv70sIGFuZCB0aGUKKwkqIGRldGFpbHMgb2YgdGhlIG1hcHBpbmdzIHNob3VsZCBiZSBtb2RpZmllZCBhcyBuZWNlc3NhcnkuCisJKi8KKwl0eXBlLT5iYXNlVHlwZSA9IHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX0FOWVRZUEUpOworCXR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfREVSSVZBVElPTl9NRVRIT0RfUkVTVFJJQ1RJT047CisJLyoKKwkqIFBhcnNlIG1vZGVsIGdyb3Vwcy4KKwkqLworICAgICAgICBpZiAoSVNfU0NIRU1BKGNoaWxkLCAiYWxsIikpIHsKKyAgICAgICAgICAgIHR5cGUtPnN1YnR5cGVzID0gKHhtbFNjaGVtYVR5cGVQdHIpCisJCXhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cChjdHh0LCBzY2hlbWEsIGNoaWxkLAorCQkgICAgWE1MX1NDSEVNQV9UWVBFX0FMTCwgMSk7CisgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgICAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImNob2ljZSIpKSB7CisgICAgICAgICAgICB0eXBlLT5zdWJ0eXBlcyA9ICh4bWxTY2hlbWFUeXBlUHRyKQorCQl4bWxTY2hlbWFQYXJzZU1vZGVsR3JvdXAoY3R4dCwgc2NoZW1hLCBjaGlsZCwKKwkJICAgIFhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0UsIDEpOworICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dDsKKyAgICAgICAgfSBlbHNlIGlmIChJU19TQ0hFTUEoY2hpbGQsICJzZXF1ZW5jZSIpKSB7CisgICAgICAgICAgICB0eXBlLT5zdWJ0eXBlcyA9ICh4bWxTY2hlbWFUeXBlUHRyKQorCQl4bWxTY2hlbWFQYXJzZU1vZGVsR3JvdXAoY3R4dCwgc2NoZW1hLCBjaGlsZCwKKwkJICAgIFhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRSwgMSk7CisgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgICAgICB9IGVsc2UgaWYgKElTX1NDSEVNQShjaGlsZCwgImdyb3VwIikpIHsKKyAgICAgICAgICAgIHR5cGUtPnN1YnR5cGVzID0gKHhtbFNjaGVtYVR5cGVQdHIpCisJCXhtbFNjaGVtYVBhcnNlTW9kZWxHcm91cERlZlJlZihjdHh0LCBzY2hlbWEsIGNoaWxkKTsKKwkgICAgLyoKKwkgICAgKiBOb3RlIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHJlc29sdmVkIGluCisJICAgICogeG1sU2NoZW1hUmVzb2x2ZVR5cGVSZWZlcmVuY2VzKCk7CisJICAgICovCisgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworICAgICAgICB9CisJLyoKKwkqIFBhcnNlIGF0dHJpYnV0ZSBkZWNscy9yZWZzLgorCSovCisgICAgICAgIGlmICh4bWxTY2hlbWFQYXJzZUxvY2FsQXR0cmlidXRlcyhjdHh0LCBzY2hlbWEsICZjaGlsZCwKKwkgICAgKHhtbFNjaGVtYUl0ZW1MaXN0UHRyICopICYodHlwZS0+YXR0clVzZXMpLAorCSAgICBYTUxfU0NIRU1BX1RZUEVfUkVTVFJJQ1RJT04sIE5VTEwpID09IC0xKQorCSAgICByZXR1cm4oTlVMTCk7CisJLyoKKwkqIFBhcnNlIGF0dHJpYnV0ZSB3aWxkY2FyZC4KKwkqLworCWlmIChJU19TQ0hFTUEoY2hpbGQsICJhbnlBdHRyaWJ1dGUiKSkgeworCSAgICB0eXBlLT5hdHRyaWJ1dGVXaWxkY2FyZCA9IHhtbFNjaGVtYVBhcnNlQW55QXR0cmlidXRlKGN0eHQsIHNjaGVtYSwgY2hpbGQpOworCSAgICBjaGlsZCA9IGNoaWxkLT5uZXh0OworCX0KKyAgICB9CisgICAgaWYgKGNoaWxkICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFQQ29udGVudEVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TNFNfRUxFTV9OT1RfQUxMT1dFRCwKKwkgICAgTlVMTCwgbm9kZSwgY2hpbGQsCisJICAgIE5VTEwsICIoYW5ub3RhdGlvbj8sIChzaW1wbGVDb250ZW50IHwgY29tcGxleENvbnRlbnQgfCAiCisJICAgICIoKGdyb3VwIHwgYWxsIHwgY2hvaWNlIHwgc2VxdWVuY2UpPywgKChhdHRyaWJ1dGUgfCAiCisJICAgICJhdHRyaWJ1dGVHcm91cCkqLCBhbnlBdHRyaWJ1dGU/KSkpKSIpOworICAgIH0KKyAgICAvKgorICAgICogUkVERUZJTkU6IFNQRUMgc3JjLXJlZGVmaW5lICg1KQorICAgICovCisgICAgaWYgKHRvcExldmVsICYmIGN0eHQtPmlzUmVkZWZpbmUgJiYgKCEgaGFzUmVzdHJpY3Rpb25PckV4dGVuc2lvbikpIHsKKwl4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsIFhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwKKwkgICAgTlVMTCwgbm9kZSwgIlRoaXMgaXMgYSByZWRlZmluaXRpb24sIHRodXMgdGhlICIKKwkgICAgIjxjb21wbGV4VHlwZT4gbXVzdCBoYXZlIGEgPHJlc3RyaWN0aW9uPiBvciA8ZXh0ZW5zaW9uPiAiCisJICAgICJncmFuZC1jaGlsZCIsIE5VTEwpOworICAgIH0KKyAgICBjdHh0LT5jdHh0VHlwZSA9IGN0eHRUeXBlOworICAgIHJldHVybiAodHlwZSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVZhbGlkYXRpbmcgdXNpbmcgU2NoZW1hcwkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVJlYWRpbmcvV3JpdGluZyBTY2hlbWFzCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiAwIC8qIFdpbGwgYmUgZW5hYmxlZCBpZiBpdCBpcyBjbGVhciB3aGF0IG9wdGlvbnMgYXJlIG5lZWRlZC4gKi8KKy8qKgorICogeG1sU2NoZW1hUGFyc2VyQ3R4dFNldE9wdGlvbnM6CisgKiBAY3R4dDoJYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBvcHRpb25zOiBhIGNvbWJpbmF0aW9uIG9mIHhtbFNjaGVtYVBhcnNlck9wdGlvbgorICoKKyAqIFNldHMgdGhlIG9wdGlvbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIHBhcnNlLgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgYW4KKyAqIEFQSSBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUGFyc2VyQ3R4dFNldE9wdGlvbnMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJICAgICAgaW50IG9wdGlvbnMpCisKK3sKKyAgICBpbnQgaTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuICgtMSk7CisgICAgLyoKKyAgICAqIFdBUk5JTkc6IENoYW5nZSB0aGUgc3RhcnQgdmFsdWUgaWYgYWRkaW5nIHRvIHRoZQorICAgICogeG1sU2NoZW1hUGFyc2VPcHRpb24uCisgICAgKi8KKyAgICBmb3IgKGkgPSAxOyBpIDwgKGludCkgc2l6ZW9mKGludCkgKiA4OyBpKyspIHsKKyAgICAgICAgaWYgKG9wdGlvbnMgJiAxPDxpKSB7CisJICAgIHJldHVybiAoLTEpOworICAgICAgICB9CisgICAgfQorICAgIGN0eHQtPm9wdGlvbnMgPSBvcHRpb25zOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9uczoKKyAqIEBjdHh0OiBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIG9wdGlvbiBjb21iaW5hdGlvbiBvZiB0aGUgcGFyc2VyIGNvbnRleHQuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVBhcnNlckN0eHRHZXRPcHRpb25zKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKKworeworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuICgtMSk7CisgICAgZWxzZQorCXJldHVybiAoY3R4dC0+b3B0aW9ucyk7Cit9CisjZW5kaWYKKworLyoqCisgKiB4bWxTY2hlbWFOZXdQYXJzZXJDdHh0OgorICogQFVSTDogIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2NoZW1hCisgKgorICogQ3JlYXRlIGFuIFhNTCBTY2hlbWFzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZmlsZS9yZXNvdXJjZSBleHBlY3RlZAorICogdG8gY29udGFpbiBhbiBYTUwgU2NoZW1hcyBmaWxlLgorICoKKyAqIFJldHVybnMgdGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxTY2hlbWFQYXJzZXJDdHh0UHRyCit4bWxTY2hlbWFOZXdQYXJzZXJDdHh0KGNvbnN0IGNoYXIgKlVSTCkKK3sKKyAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHJldDsKKworICAgIGlmIChVUkwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIHJldCA9IHhtbFNjaGVtYVBhcnNlckN0eHRDcmVhdGUoKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldC0+ZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKyAgICByZXQtPlVSTCA9IHhtbERpY3RMb29rdXAocmV0LT5kaWN0LCAoY29uc3QgeG1sQ2hhciAqKSBVUkwsIC0xKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hTmV3TWVtUGFyc2VyQ3R4dDoKKyAqIEBidWZmZXI6ICBhIHBvaW50ZXIgdG8gYSBjaGFyIGFycmF5IGNvbnRhaW5pbmcgdGhlIHNjaGVtYXMKKyAqIEBzaXplOiAgdGhlIHNpemUgb2YgdGhlIGFycmF5CisgKgorICogQ3JlYXRlIGFuIFhNTCBTY2hlbWFzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgbWVtb3J5IGJ1ZmZlciBleHBlY3RlZAorICogdG8gY29udGFpbiBhbiBYTUwgU2NoZW1hcyBmaWxlLgorICoKKyAqIFJldHVybnMgdGhlIHBhcnNlciBjb250ZXh0IG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxTY2hlbWFQYXJzZXJDdHh0UHRyCit4bWxTY2hlbWFOZXdNZW1QYXJzZXJDdHh0KGNvbnN0IGNoYXIgKmJ1ZmZlciwgaW50IHNpemUpCit7CisgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciByZXQ7CisKKyAgICBpZiAoKGJ1ZmZlciA9PSBOVUxMKSB8fCAoc2l6ZSA8PSAwKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICByZXQgPSB4bWxTY2hlbWFQYXJzZXJDdHh0Q3JlYXRlKCk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICByZXQtPmJ1ZmZlciA9IGJ1ZmZlcjsKKyAgICByZXQtPnNpemUgPSBzaXplOworICAgIHJldC0+ZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dDoKKyAqIEBkb2M6ICBhIHByZXBhcnNlZCBkb2N1bWVudCB0cmVlCisgKgorICogQ3JlYXRlIGFuIFhNTCBTY2hlbWFzIHBhcnNlIGNvbnRleHQgZm9yIHRoYXQgZG9jdW1lbnQuCisgKiBOQi4gVGhlIGRvY3VtZW50IG1heSBiZSBtb2RpZmllZCBkdXJpbmcgdGhlIHBhcnNpbmcgcHJvY2Vzcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBwYXJzZXIgY29udGV4dCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sU2NoZW1hUGFyc2VyQ3R4dFB0cgoreG1sU2NoZW1hTmV3RG9jUGFyc2VyQ3R4dCh4bWxEb2NQdHIgZG9jKQoreworICAgIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcmV0OworCisgICAgaWYgKGRvYyA9PSBOVUxMKQorICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICByZXQgPSB4bWxTY2hlbWFQYXJzZXJDdHh0Q3JlYXRlKCk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICByZXQtPmRvYyA9IGRvYzsKKyAgICByZXQtPmRpY3QgPSB4bWxEaWN0Q3JlYXRlKCk7CisgICAgLyogVGhlIGFwcGxpY2F0aW9uIGhhcyByZXNwb25zaWJpbGl0eSBmb3IgdGhlIGRvY3VtZW50ICovCisgICAgcmV0LT5wcmVzZXJ2ZSA9IDE7CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQ6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBGcmVlIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB0byB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKi8KK3ZvaWQKK3htbFNjaGVtYUZyZWVQYXJzZXJDdHh0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGN0eHQtPmRvYyAhPSBOVUxMICYmICFjdHh0LT5wcmVzZXJ2ZSkKKyAgICAgICAgeG1sRnJlZURvYyhjdHh0LT5kb2MpOworICAgIGlmIChjdHh0LT52Y3R4dCAhPSBOVUxMKSB7CisJeG1sU2NoZW1hRnJlZVZhbGlkQ3R4dChjdHh0LT52Y3R4dCk7CisgICAgfQorICAgIGlmIChjdHh0LT5vd25zQ29uc3RydWN0b3IgJiYgKGN0eHQtPmNvbnN0cnVjdG9yICE9IE5VTEwpKSB7CisJeG1sU2NoZW1hQ29uc3RydWN0aW9uQ3R4dEZyZWUoY3R4dC0+Y29uc3RydWN0b3IpOworCWN0eHQtPmNvbnN0cnVjdG9yID0gTlVMTDsKKwljdHh0LT5vd25zQ29uc3RydWN0b3IgPSAwOworICAgIH0KKyAgICBpZiAoY3R4dC0+YXR0clByb2hpYnMgIT0gTlVMTCkKKwl4bWxTY2hlbWFJdGVtTGlzdEZyZWUoY3R4dC0+YXR0clByb2hpYnMpOworICAgIHhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlCdWlsZGluZyB0aGUgY29udGVudCBtb2RlbHMJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sU2NoZW1hQnVpbGRDb250ZW50TW9kZWxGb3JTdWJzdEdyb3VwOgorICoKKyAqIFJldHVybnMgMSBpZiBuaWxsYWJsZSwgMCBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQnVpbGRDb250ZW50TW9kZWxGb3JTdWJzdEdyb3VwKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGUsIGludCBjb3VudGVyLCB4bWxBdXRvbWF0YVN0YXRlUHRyIGVuZCkKK3sKKyAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIHN0YXJ0LCB0bXA7CisgICAgeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtRGVjbCwgbWVtYmVyOworICAgIHhtbFNjaGVtYVN1YnN0R3JvdXBQdHIgc3Vic3RHcm91cDsKKyAgICBpbnQgaTsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGVsZW1EZWNsID0gKHhtbFNjaGVtYUVsZW1lbnRQdHIpIHBhcnRpY2xlLT5jaGlsZHJlbjsKKyAgICAvKgorICAgICogV3JhcCB0aGUgc3Vic3RpdHV0aW9uIGdyb3VwIHdpdGggYSBDSE9JQ0UuCisgICAgKi8KKyAgICBzdGFydCA9IHBjdHh0LT5zdGF0ZTsKKyAgICBpZiAoZW5kID09IE5VTEwpCisJZW5kID0geG1sQXV0b21hdGFOZXdTdGF0ZShwY3R4dC0+YW0pOworICAgIHN1YnN0R3JvdXAgPSB4bWxTY2hlbWFTdWJzdEdyb3VwR2V0KHBjdHh0LCBlbGVtRGVjbCk7CisgICAgaWYgKHN1YnN0R3JvdXAgPT0gTlVMTCkgeworCXhtbFNjaGVtYVBFcnIocGN0eHQsIFdYU19JVEVNX05PREUocGFydGljbGUpLAorCSAgICBYTUxfU0NIRU1BUF9JTlRFUk5BTCwKKwkgICAgIkludGVybmFsIGVycm9yOiB4bWxTY2hlbWFCdWlsZENvbnRlbnRNb2RlbEZvclN1YnN0R3JvdXAsICIKKwkgICAgImRlY2xhcmF0aW9uIGlzIG1hcmtlZCBoYXZpbmcgYSBzdWJzdC4gZ3JvdXAgYnV0IG5vbmUgIgorCSAgICAiYXZhaWxhYmxlLlxuIiwgZWxlbURlY2wtPm5hbWUsIE5VTEwpOworCXJldHVybigwKTsKKyAgICB9CisgICAgaWYgKGNvdW50ZXIgPj0gMCkgeworCS8qCisJKiBOT1RFIHRoYXQgd2UgcHV0IHRoZSBkZWNsYXJhdGlvbiBpbiwgZXZlbiBpZiBpdCdzIGFic3RyYWN0LgorCSogSG93ZXZlciwgYW4gZXJyb3Igd2lsbCBiZSByYWlzZWQgZHVyaW5nICp2YWxpZGF0aW9uKiBpZiBhbiBlbGVtZW50CisJKiBpbmZvcm1hdGlvbiBpdGVtIHNoYWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGFic3RyYWN0IGVsZW1lbnQKKwkqIGRlY2xhcmF0aW9uLgorCSovCisJdG1wID0geG1sQXV0b21hdGFOZXdDb3VudGVkVHJhbnMocGN0eHQtPmFtLCBzdGFydCwgTlVMTCwgY291bnRlcik7CisgICAgICAgIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIocGN0eHQtPmFtLCB0bXAsIGVuZCwKKwkgICAgICAgICAgICBlbGVtRGVjbC0+bmFtZSwgZWxlbURlY2wtPnRhcmdldE5hbWVzcGFjZSwgZWxlbURlY2wpOworCS8qCisJKiBBZGQgc3Vic3QuIGdyb3VwIG1lbWJlcnMuCisJKi8KKwlmb3IgKGkgPSAwOyBpIDwgc3Vic3RHcm91cC0+bWVtYmVycy0+bmJJdGVtczsgaSsrKSB7CisJICAgIG1lbWJlciA9ICh4bWxTY2hlbWFFbGVtZW50UHRyKSBzdWJzdEdyb3VwLT5tZW1iZXJzLT5pdGVtc1tpXTsKKyAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIocGN0eHQtPmFtLCB0bXAsIGVuZCwKKwkJICAgICAgICAgICAgICAgbWVtYmVyLT5uYW1lLCBtZW1iZXItPnRhcmdldE5hbWVzcGFjZSwgbWVtYmVyKTsKKwl9CisgICAgfSBlbHNlIGlmIChwYXJ0aWNsZS0+bWF4T2NjdXJzID09IDEpIHsKKwkvKgorCSogTk9URSB0aGF0IHdlIHB1dCB0aGUgZGVjbGFyYXRpb24gaW4sIGV2ZW4gaWYgaXQncyBhYnN0cmFjdCwKKwkqLworCXhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sCisJICAgIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIocGN0eHQtPmFtLAorCSAgICBzdGFydCwgTlVMTCwKKwkgICAgZWxlbURlY2wtPm5hbWUsIGVsZW1EZWNsLT50YXJnZXROYW1lc3BhY2UsIGVsZW1EZWNsKSwgZW5kKTsKKwkvKgorCSogQWRkIHN1YnN0LiBncm91cCBtZW1iZXJzLgorCSovCisJZm9yIChpID0gMDsgaSA8IHN1YnN0R3JvdXAtPm1lbWJlcnMtPm5iSXRlbXM7IGkrKykgeworCSAgICBtZW1iZXIgPSAoeG1sU2NoZW1hRWxlbWVudFB0cikgc3Vic3RHcm91cC0+bWVtYmVycy0+aXRlbXNbaV07CisJICAgIC8qCisJICAgICogTk9URTogVGhpcyBmaXhlcyBidWcgIzM0MTE1MC4geG1sQXV0b21hdGFOZXdPbmNlVHJhbnMyKCkKKwkgICAgKiAgd2FzIGluY29ycmVjdGx5IHVzZWQgaW5zdGVhZCBvZiB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yKCkKKwkgICAgKiAgKHNlZW1zIGxpa2UgYSBjb3B5JnBhc3RlIGJ1ZyBmcm9tIHRoZSBYTUxfU0NIRU1BX1RZUEVfQUxMCisJICAgICogIHNlY3Rpb24gaW4geG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsKCkgKS4KKwkgICAgKiBUT0RPOiBDaGVjayBpZiB4bWxBdXRvbWF0YU5ld09uY2VUcmFuczIoKSB3YXMgaW5zdGVhZAorCSAgICAqICBpbnRlbmRlZCBmb3IgdGhlIGFib3ZlICJjb3VudGVyIiBzZWN0aW9uIG9yaWdpbmFsbHkuIEkuZS4sCisJICAgICogIGNoZWNrIHhzOmFsbCB3aXRoIHN1YnN0LWdyb3Vwcy4KKwkgICAgKgorCSAgICAqIHRtcCA9IHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMihwY3R4dC0+YW0sIHN0YXJ0LCBOVUxMLAorCSAgICAqCSAgICAgICAgICAgICAgIG1lbWJlci0+bmFtZSwgbWVtYmVyLT50YXJnZXROYW1lc3BhY2UsCisJICAgICoJCSAgICAgICAxLCAxLCBtZW1iZXIpOworCSAgICAqLworCSAgICB0bXAgPSB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yKHBjdHh0LT5hbSwgc3RhcnQsIE5VTEwsCisJCW1lbWJlci0+bmFtZSwgbWVtYmVyLT50YXJnZXROYW1lc3BhY2UsIG1lbWJlcik7CisJICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHRtcCwgZW5kKTsKKwl9CisgICAgfSBlbHNlIHsKKwl4bWxBdXRvbWF0YVN0YXRlUHRyIGhvcDsKKwlpbnQgbWF4T2NjdXJzID0gcGFydGljbGUtPm1heE9jY3VycyA9PSBVTkJPVU5ERUQgPworCSAgICBVTkJPVU5ERUQgOiBwYXJ0aWNsZS0+bWF4T2NjdXJzIC0gMTsKKwlpbnQgbWluT2NjdXJzID0gcGFydGljbGUtPm1pbk9jY3VycyA8IDEgPyAwIDogcGFydGljbGUtPm1pbk9jY3VycyAtIDE7CisKKwljb3VudGVyID0KKwkgICAgeG1sQXV0b21hdGFOZXdDb3VudGVyKHBjdHh0LT5hbSwgbWluT2NjdXJzLAorCSAgICBtYXhPY2N1cnMpOworCWhvcCA9IHhtbEF1dG9tYXRhTmV3U3RhdGUocGN0eHQtPmFtKTsKKworCXhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sCisJICAgIHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIocGN0eHQtPmFtLAorCSAgICBzdGFydCwgTlVMTCwKKwkgICAgZWxlbURlY2wtPm5hbWUsIGVsZW1EZWNsLT50YXJnZXROYW1lc3BhY2UsIGVsZW1EZWNsKSwKKwkgICAgaG9wKTsKKwkvKgorCSAqIEFkZCBzdWJzdC4gZ3JvdXAgbWVtYmVycy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgc3Vic3RHcm91cC0+bWVtYmVycy0+bmJJdGVtczsgaSsrKSB7CisJICAgIG1lbWJlciA9ICh4bWxTY2hlbWFFbGVtZW50UHRyKSBzdWJzdEdyb3VwLT5tZW1iZXJzLT5pdGVtc1tpXTsKKwkgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKHBjdHh0LT5hbSwKKwkJeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMihwY3R4dC0+YW0sCisJCXN0YXJ0LCBOVUxMLAorCQltZW1iZXItPm5hbWUsIG1lbWJlci0+dGFyZ2V0TmFtZXNwYWNlLCBtZW1iZXIpLAorCQlob3ApOworCX0KKwl4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyhwY3R4dC0+YW0sIGhvcCwgc3RhcnQsIGNvdW50ZXIpOworCXhtbEF1dG9tYXRhTmV3Q291bnRlclRyYW5zKHBjdHh0LT5hbSwgaG9wLCBlbmQsIGNvdW50ZXIpOworICAgIH0KKyAgICBpZiAocGFydGljbGUtPm1pbk9jY3VycyA9PSAwKSB7CisJeG1sQXV0b21hdGFOZXdFcHNpbG9uKHBjdHh0LT5hbSwgc3RhcnQsIGVuZCk7CisgICAgICAgIHJldCA9IDE7CisgICAgfQorICAgIHBjdHh0LT5zdGF0ZSA9IGVuZDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFCdWlsZENvbnRlbnRNb2RlbEZvckVsZW1lbnQ6CisgKgorICogUmV0dXJucyAxIGlmIG5pbGxhYmxlLCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFCdWlsZENvbnRlbnRNb2RlbEZvckVsZW1lbnQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCSAgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGUpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoKCh4bWxTY2hlbWFFbGVtZW50UHRyKSBwYXJ0aWNsZS0+Y2hpbGRyZW4pLT5mbGFncyAmCisJWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEKSB7CisJLyoKKwkqIFN1YnN0aXR1dGlvbiBncm91cHMuCisJKi8KKwlyZXQgPSB4bWxTY2hlbWFCdWlsZENvbnRlbnRNb2RlbEZvclN1YnN0R3JvdXAoY3R4dCwgcGFydGljbGUsIC0xLCBOVUxMKTsKKyAgICB9IGVsc2UgeworCXhtbFNjaGVtYUVsZW1lbnRQdHIgZWxlbURlY2w7CisJeG1sQXV0b21hdGFTdGF0ZVB0ciBzdGFydDsKKworCWVsZW1EZWNsID0gKHhtbFNjaGVtYUVsZW1lbnRQdHIpIHBhcnRpY2xlLT5jaGlsZHJlbjsKKworCWlmIChlbGVtRGVjbC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUKQorCSAgICByZXR1cm4oMCk7CisJaWYgKHBhcnRpY2xlLT5tYXhPY2N1cnMgPT0gMSkgeworCSAgICBzdGFydCA9IGN0eHQtPnN0YXRlOworCSAgICBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIoY3R4dC0+YW0sIHN0YXJ0LCBOVUxMLAorCQkgICAgZWxlbURlY2wtPm5hbWUsIGVsZW1EZWNsLT50YXJnZXROYW1lc3BhY2UsIGVsZW1EZWNsKTsKKwl9IGVsc2UgaWYgKChwYXJ0aWNsZS0+bWF4T2NjdXJzID49IFVOQk9VTkRFRCkgJiYKKwkgICAgICAgICAgIChwYXJ0aWNsZS0+bWluT2NjdXJzIDwgMikpIHsKKwkgICAgLyogU3BlY2lhbCBjYXNlLiAqLworCSAgICBzdGFydCA9IGN0eHQtPnN0YXRlOworCSAgICBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIoY3R4dC0+YW0sIHN0YXJ0LCBOVUxMLAorCQllbGVtRGVjbC0+bmFtZSwgZWxlbURlY2wtPnRhcmdldE5hbWVzcGFjZSwgZWxlbURlY2wpOworCSAgICBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIoY3R4dC0+YW0sIGN0eHQtPnN0YXRlLCBjdHh0LT5zdGF0ZSwKKwkJZWxlbURlY2wtPm5hbWUsIGVsZW1EZWNsLT50YXJnZXROYW1lc3BhY2UsIGVsZW1EZWNsKTsKKwl9IGVsc2UgeworCSAgICBpbnQgY291bnRlcjsKKwkgICAgaW50IG1heE9jY3VycyA9IHBhcnRpY2xlLT5tYXhPY2N1cnMgPT0gVU5CT1VOREVEID8KKwkJCSAgICBVTkJPVU5ERUQgOiBwYXJ0aWNsZS0+bWF4T2NjdXJzIC0gMTsKKwkgICAgaW50IG1pbk9jY3VycyA9IHBhcnRpY2xlLT5taW5PY2N1cnMgPCAxID8KKwkJCSAgICAwIDogcGFydGljbGUtPm1pbk9jY3VycyAtIDE7CisKKwkgICAgc3RhcnQgPSB4bWxBdXRvbWF0YU5ld0Vwc2lsb24oY3R4dC0+YW0sIGN0eHQtPnN0YXRlLCBOVUxMKTsKKwkgICAgY291bnRlciA9IHhtbEF1dG9tYXRhTmV3Q291bnRlcihjdHh0LT5hbSwgbWluT2NjdXJzLCBtYXhPY2N1cnMpOworCSAgICBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIoY3R4dC0+YW0sIHN0YXJ0LCBOVUxMLAorCQllbGVtRGVjbC0+bmFtZSwgZWxlbURlY2wtPnRhcmdldE5hbWVzcGFjZSwgZWxlbURlY2wpOworCSAgICB4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyhjdHh0LT5hbSwgY3R4dC0+c3RhdGUsIHN0YXJ0LCBjb3VudGVyKTsKKwkgICAgY3R4dC0+c3RhdGUgPSB4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyhjdHh0LT5hbSwgY3R4dC0+c3RhdGUsCisJCU5VTEwsIGNvdW50ZXIpOworCX0KKwlpZiAocGFydGljbGUtPm1pbk9jY3VycyA9PSAwKSB7CisJICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihjdHh0LT5hbSwgc3RhcnQsIGN0eHQtPnN0YXRlKTsKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAcGFydGljbGU6ICB0aGUgcGFydGljbGUgY29tcG9uZW50CisgKiBAbmFtZTogIHRoZSBjb21wbGV4IHR5cGUncyBuYW1lIHdob3NlIGNvbnRlbnQgaXMgYmVpbmcgYnVpbHQKKyAqCisgKiBDcmVhdGUgdGhlIGF1dG9tYXRvbiBmb3IgdGhlIHtjb250ZW50IHR5cGV9IG9mIGEgY29tcGxleCB0eXBlLgorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgY29udGVudCBpcyBuaWxsYWJsZSwgMCBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGUpCit7CisgICAgaW50IHJldCA9IDAsIHRtcDI7CisKKyAgICBpZiAocGFydGljbGUgPT0gTlVMTCkgeworCVBFUlJPUl9JTlQoInhtbFNjaGVtYUJ1aWxkQUNvbnRlbnRNb2RlbCIsICJwYXJ0aWNsZSBpcyBOVUxMIik7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICBpZiAocGFydGljbGUtPmNoaWxkcmVuID09IE5VTEwpIHsKKwkvKgorCSogSnVzdCByZXR1cm4gaW4gdGhpcyBjYXNlLiBBIG1pc3NpbmcgInRlcm0iIG9mIHRoZSBwYXJ0aWNsZQorCSogbWlnaHQgYXJpc2UgZHVlIHRvIGFuIGludmFsaWQgInRlcm0iIGNvbXBvbmVudC4KKwkqLworCXJldHVybigxKTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHBhcnRpY2xlLT5jaGlsZHJlbi0+dHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0FOWTogeworCSAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIHN0YXJ0LCBlbmQ7CisJICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIHdpbGQ7CisJICAgIHhtbFNjaGVtYVdpbGRjYXJkTnNQdHIgbnM7CisKKwkgICAgd2lsZCA9ICh4bWxTY2hlbWFXaWxkY2FyZFB0cikgcGFydGljbGUtPmNoaWxkcmVuOworCisJICAgIHN0YXJ0ID0gcGN0eHQtPnN0YXRlOworCSAgICBlbmQgPSB4bWxBdXRvbWF0YU5ld1N0YXRlKHBjdHh0LT5hbSk7CisKKwkgICAgaWYgKHBhcnRpY2xlLT5tYXhPY2N1cnMgPT0gMSkgeworCQlpZiAod2lsZC0+YW55ID09IDEpIHsKKwkJICAgIC8qCisJCSAgICAqIFdlIG5lZWQgdG8gYWRkIGJvdGggdHJhbnNpdGlvbnM6CisJCSAgICAqCisJCSAgICAqIDEuIHRoZSB7IioiLCAiKiJ9IGZvciBlbGVtZW50cyBpbiBhIG5hbWVzcGFjZS4KKwkJICAgICovCisJCSAgICBwY3R4dC0+c3RhdGUgPQorCQkJeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMihwY3R4dC0+YW0sCisJCQlzdGFydCwgTlVMTCwgQkFEX0NBU1QgIioiLCBCQURfQ0FTVCAiKiIsIHdpbGQpOworCQkgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKHBjdHh0LT5hbSwgcGN0eHQtPnN0YXRlLCBlbmQpOworCQkgICAgLyoKKwkJICAgICogMi4gdGhlIHsiKiJ9IGZvciBlbGVtZW50cyBpbiBubyBuYW1lc3BhY2UuCisJCSAgICAqLworCQkgICAgcGN0eHQtPnN0YXRlID0KKwkJCXhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIocGN0eHQtPmFtLAorCQkJc3RhcnQsIE5VTEwsIEJBRF9DQVNUICIqIiwgTlVMTCwgd2lsZCk7CisJCSAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24ocGN0eHQtPmFtLCBwY3R4dC0+c3RhdGUsIGVuZCk7CisKKwkJfSBlbHNlIGlmICh3aWxkLT5uc1NldCAhPSBOVUxMKSB7CisJCSAgICBucyA9IHdpbGQtPm5zU2V0OworCQkgICAgZG8geworCQkJcGN0eHQtPnN0YXRlID0gc3RhcnQ7CisJCQlwY3R4dC0+c3RhdGUgPSB4bWxBdXRvbWF0YU5ld1RyYW5zaXRpb24yKHBjdHh0LT5hbSwKKwkJCSAgICBwY3R4dC0+c3RhdGUsIE5VTEwsIEJBRF9DQVNUICIqIiwgbnMtPnZhbHVlLCB3aWxkKTsKKwkJCXhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHBjdHh0LT5zdGF0ZSwgZW5kKTsKKwkJCW5zID0gbnMtPm5leHQ7CisJCSAgICB9IHdoaWxlIChucyAhPSBOVUxMKTsKKworCQl9IGVsc2UgaWYgKHdpbGQtPm5lZ05zU2V0ICE9IE5VTEwpIHsKKwkJICAgIHBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3TmVnVHJhbnMocGN0eHQtPmFtLAorCQkJc3RhcnQsIGVuZCwgQkFEX0NBU1QgIioiLCB3aWxkLT5uZWdOc1NldC0+dmFsdWUsCisJCQl3aWxkKTsKKwkJfQorCSAgICB9IGVsc2UgeworCQlpbnQgY291bnRlcjsKKwkJeG1sQXV0b21hdGFTdGF0ZVB0ciBob3A7CisJCWludCBtYXhPY2N1cnMgPQorCQkgICAgcGFydGljbGUtPm1heE9jY3VycyA9PSBVTkJPVU5ERUQgPyBVTkJPVU5ERUQgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLT5tYXhPY2N1cnMgLSAxOworCQlpbnQgbWluT2NjdXJzID0KKwkJICAgIHBhcnRpY2xlLT5taW5PY2N1cnMgPCAxID8gMCA6IHBhcnRpY2xlLT5taW5PY2N1cnMgLSAxOworCisJCWNvdW50ZXIgPSB4bWxBdXRvbWF0YU5ld0NvdW50ZXIocGN0eHQtPmFtLCBtaW5PY2N1cnMsIG1heE9jY3Vycyk7CisJCWhvcCA9IHhtbEF1dG9tYXRhTmV3U3RhdGUocGN0eHQtPmFtKTsKKwkJaWYgKHdpbGQtPmFueSA9PSAxKSB7CisJCSAgICBwY3R4dC0+c3RhdGUgPQorCQkJeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMihwY3R4dC0+YW0sCisJCQlzdGFydCwgTlVMTCwgQkFEX0NBU1QgIioiLCBCQURfQ0FTVCAiKiIsIHdpbGQpOworCQkgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKHBjdHh0LT5hbSwgcGN0eHQtPnN0YXRlLCBob3ApOworCQkgICAgcGN0eHQtPnN0YXRlID0KKwkJCXhtbEF1dG9tYXRhTmV3VHJhbnNpdGlvbjIocGN0eHQtPmFtLAorCQkJc3RhcnQsIE5VTEwsIEJBRF9DQVNUICIqIiwgTlVMTCwgd2lsZCk7CisJCSAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24ocGN0eHQtPmFtLCBwY3R4dC0+c3RhdGUsIGhvcCk7CisJCX0gZWxzZSBpZiAod2lsZC0+bnNTZXQgIT0gTlVMTCkgeworCQkgICAgbnMgPSB3aWxkLT5uc1NldDsKKwkJICAgIGRvIHsKKwkJCXBjdHh0LT5zdGF0ZSA9CisJCQkgICAgeG1sQXV0b21hdGFOZXdUcmFuc2l0aW9uMihwY3R4dC0+YW0sCisJCQkJc3RhcnQsIE5VTEwsIEJBRF9DQVNUICIqIiwgbnMtPnZhbHVlLCB3aWxkKTsKKwkJCXhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHBjdHh0LT5zdGF0ZSwgaG9wKTsKKwkJCW5zID0gbnMtPm5leHQ7CisJCSAgICB9IHdoaWxlIChucyAhPSBOVUxMKTsKKworCQl9IGVsc2UgaWYgKHdpbGQtPm5lZ05zU2V0ICE9IE5VTEwpIHsKKwkJICAgIHBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3TmVnVHJhbnMocGN0eHQtPmFtLAorCQkJc3RhcnQsIGhvcCwgQkFEX0NBU1QgIioiLCB3aWxkLT5uZWdOc1NldC0+dmFsdWUsCisJCQl3aWxkKTsKKwkJfQorCQl4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyhwY3R4dC0+YW0sIGhvcCwgc3RhcnQsIGNvdW50ZXIpOworCQl4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyhwY3R4dC0+YW0sIGhvcCwgZW5kLCBjb3VudGVyKTsKKwkgICAgfQorCSAgICBpZiAocGFydGljbGUtPm1pbk9jY3VycyA9PSAwKSB7CisJCXhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgICAgIHJldCA9IDE7CisJICAgIH0KKwkgICAgcGN0eHQtPnN0YXRlID0gZW5kOworICAgICAgICAgICAgYnJlYWs7CisJfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UOgorCSAgICByZXQgPSB4bWxTY2hlbWFCdWlsZENvbnRlbnRNb2RlbEZvckVsZW1lbnQocGN0eHQsIHBhcnRpY2xlKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFOnsKKyAgICAgICAgICAgIHhtbFNjaGVtYVRyZWVJdGVtUHRyIHN1YjsKKworICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBJZiBtYXggYW5kIG1pbiBvY2N1cmFuY2VzIGFyZSBkZWZhdWx0ICgxKSB0aGVuCisgICAgICAgICAgICAgKiBzaW1wbHkgaXRlcmF0ZSBvdmVyIHRoZSBwYXJ0aWNsZXMgb2YgdGhlIDxzZXF1ZW5jZT4uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICgocGFydGljbGUtPm1pbk9jY3VycyA9PSAxKSAmJiAocGFydGljbGUtPm1heE9jY3VycyA9PSAxKSkgeworICAgICAgICAgICAgICAgIHN1YiA9IHBhcnRpY2xlLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3ViICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdG1wMiA9IHhtbFNjaGVtYUJ1aWxkQUNvbnRlbnRNb2RlbChwY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sU2NoZW1hUGFydGljbGVQdHIpIHN1Yik7CisgICAgICAgICAgICAgICAgICAgIGlmICh0bXAyICE9IDEpIHJldCA9IDA7CisgICAgICAgICAgICAgICAgICAgIHN1YiA9IHN1Yi0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgb2xkc3RhdGUgPSBwY3R4dC0+c3RhdGU7CisKKyAgICAgICAgICAgICAgICBpZiAocGFydGljbGUtPm1heE9jY3VycyA+PSBVTkJPVU5ERUQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnRpY2xlLT5taW5PY2N1cnMgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudGVyOworCisgICAgICAgICAgICAgICAgICAgICAgICBwY3R4dC0+c3RhdGUgPSB4bWxBdXRvbWF0YU5ld0Vwc2lsb24ocGN0eHQtPmFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZHN0YXRlLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9sZHN0YXRlID0gcGN0eHQtPnN0YXRlOworCisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0geG1sQXV0b21hdGFOZXdDb3VudGVyKHBjdHh0LT5hbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS0+bWluT2NjdXJzIC0gMSwgVU5CT1VOREVEKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc3ViID0gcGFydGljbGUtPmNoaWxkcmVuLT5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzdWIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcDIgPSB4bWxTY2hlbWFCdWlsZEFDb250ZW50TW9kZWwocGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgc3ViKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wMiAhPSAxKSByZXQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YiA9IHN1Yi0+bmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHBjdHh0LT5zdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zKHBjdHh0LT5hbSwgdG1wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkc3RhdGUsIGNvdW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgcGN0eHQtPnN0YXRlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0NvdW50ZXJUcmFucyhwY3R4dC0+YW0sIHRtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBjb3VudGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24ocGN0eHQtPmFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkc3RhdGUsIHBjdHh0LT5zdGF0ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkc3RhdGUsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkc3RhdGUgPSBwY3R4dC0+c3RhdGU7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YiA9IHBhcnRpY2xlLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3ViICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAyID0geG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsKHBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgc3ViKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wMiAhPSAxKSByZXQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YiA9IHN1Yi0+bmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHBjdHh0LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogZXBzaWxvbiBuZWVkZWQgdG8gYmxvY2sgcHJldmlvdXMgdHJhbnMgZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgICogYmVpbmcgYWxsb3dlZCB0byBlbnRlciBiYWNrIGZyb20gYW5vdGhlcgorICAgICAgICAgICAgICAgICAgICAgICAgICogY29uc3RydWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFydGljbGUtPm1pbk9jY3VycyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKHBjdHh0LT5hbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkc3RhdGUsIHBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHBhcnRpY2xlLT5tYXhPY2N1cnMgPiAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHBhcnRpY2xlLT5taW5PY2N1cnMgPiAxKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YVN0YXRlUHRyIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50ZXI7CisKKyAgICAgICAgICAgICAgICAgICAgcGN0eHQtPnN0YXRlID0geG1sQXV0b21hdGFOZXdFcHNpbG9uKHBjdHh0LT5hbSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9sZHN0YXRlLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgb2xkc3RhdGUgPSBwY3R4dC0+c3RhdGU7CisKKyAgICAgICAgICAgICAgICAgICAgY291bnRlciA9IHhtbEF1dG9tYXRhTmV3Q291bnRlcihwY3R4dC0+YW0sCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS0+bWluT2NjdXJzIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLT5tYXhPY2N1cnMgLSAxKTsKKworICAgICAgICAgICAgICAgICAgICBzdWIgPSBwYXJ0aWNsZS0+Y2hpbGRyZW4tPmNoaWxkcmVuOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3ViICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcDIgPSB4bWxTY2hlbWFCdWlsZEFDb250ZW50TW9kZWwocGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBzdWIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcDIgIT0gMSkgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YiA9IHN1Yi0+bmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBwY3R4dC0+c3RhdGU7CisgICAgICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3Q291bnRlZFRyYW5zKHBjdHh0LT5hbSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCwgb2xkc3RhdGUsIGNvdW50ZXIpOworICAgICAgICAgICAgICAgICAgICBwY3R4dC0+c3RhdGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMocGN0eHQtPmFtLCB0bXAsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChwYXJ0aWNsZS0+bWluT2NjdXJzID09IDApIHx8IChyZXQgPT0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZHN0YXRlLCBwY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN1YiA9IHBhcnRpY2xlLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzdWIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdG1wMiA9IHhtbFNjaGVtYUJ1aWxkQUNvbnRlbnRNb2RlbChwY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sU2NoZW1hUGFydGljbGVQdHIpIHN1Yik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wMiAhPSAxKSByZXQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgc3ViID0gc3ViLT5uZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0aWNsZS0+bWluT2NjdXJzID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIG9sZHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFOnsKKyAgICAgICAgICAgIHhtbFNjaGVtYVRyZWVJdGVtUHRyIHN1YjsKKyAgICAgICAgICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgc3RhcnQsIGVuZDsKKworICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgIHN0YXJ0ID0gcGN0eHQtPnN0YXRlOworICAgICAgICAgICAgZW5kID0geG1sQXV0b21hdGFOZXdTdGF0ZShwY3R4dC0+YW0pOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogaXRlcmF0ZSBvdmVyIHRoZSBzdWJ0eXBlcyBhbmQgcmVtZXJnZSB0aGUgZW5kIHdpdGggYW4KKyAgICAgICAgICAgICAqIGVwc2lsb24gdHJhbnNpdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAocGFydGljbGUtPm1heE9jY3VycyA9PSAxKSB7CisgICAgICAgICAgICAgICAgc3ViID0gcGFydGljbGUtPmNoaWxkcmVuLT5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3ViICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgcGN0eHQtPnN0YXRlID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIHRtcDIgPSB4bWxTY2hlbWFCdWlsZEFDb250ZW50TW9kZWwocGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBzdWIpOworICAgICAgICAgICAgICAgICAgICBpZiAodG1wMiA9PSAxKSByZXQgPSAxOworICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24ocGN0eHQtPmFtLCBwY3R4dC0+c3RhdGUsIGVuZCk7CisgICAgICAgICAgICAgICAgICAgIHN1YiA9IHN1Yi0+bmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBjb3VudGVyOworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhU3RhdGVQdHIgaG9wLCBiYXNlOworICAgICAgICAgICAgICAgIGludCBtYXhPY2N1cnMgPSBwYXJ0aWNsZS0+bWF4T2NjdXJzID09IFVOQk9VTkRFRCA/CisgICAgICAgICAgICAgICAgICAgIFVOQk9VTkRFRCA6IHBhcnRpY2xlLT5tYXhPY2N1cnMgLSAxOworICAgICAgICAgICAgICAgIGludCBtaW5PY2N1cnMgPQorICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS0+bWluT2NjdXJzIDwgMSA/IDAgOiBwYXJ0aWNsZS0+bWluT2NjdXJzIC0gMTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogdXNlIGEgY291bnRlciB0byBrZWVwIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YgdHJhbnN0aW9ucworICAgICAgICAgICAgICAgICAqIHdoaWNoIHdlbnQgdGhyb3VnaCB0aGUgY2hvaWNlLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGNvdW50ZXIgPQorICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0NvdW50ZXIocGN0eHQtPmFtLCBtaW5PY2N1cnMsIG1heE9jY3Vycyk7CisgICAgICAgICAgICAgICAgaG9wID0geG1sQXV0b21hdGFOZXdTdGF0ZShwY3R4dC0+YW0pOworICAgICAgICAgICAgICAgIGJhc2UgPSB4bWxBdXRvbWF0YU5ld1N0YXRlKHBjdHh0LT5hbSk7CisKKyAgICAgICAgICAgICAgICBzdWIgPSBwYXJ0aWNsZS0+Y2hpbGRyZW4tPmNoaWxkcmVuOworICAgICAgICAgICAgICAgIHdoaWxlIChzdWIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBwY3R4dC0+c3RhdGUgPSBiYXNlOworICAgICAgICAgICAgICAgICAgICB0bXAyID0geG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsKHBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgc3ViKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRtcDIgPT0gMSkgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdFcHNpbG9uKHBjdHh0LT5hbSwgcGN0eHQtPnN0YXRlLCBob3ApOworICAgICAgICAgICAgICAgICAgICBzdWIgPSBzdWItPm5leHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHN0YXJ0LCBiYXNlKTsKKyAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0NvdW50ZWRUcmFucyhwY3R4dC0+YW0sIGhvcCwgYmFzZSwgY291bnRlcik7CisgICAgICAgICAgICAgICAgeG1sQXV0b21hdGFOZXdDb3VudGVyVHJhbnMocGN0eHQtPmFtLCBob3AsIGVuZCwgY291bnRlcik7CisgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAxKQorICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0Vwc2lsb24ocGN0eHQtPmFtLCBiYXNlLCBlbmQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBhcnRpY2xlLT5taW5PY2N1cnMgPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwY3R4dC0+c3RhdGUgPSBlbmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTEw6eworICAgICAgICAgICAgeG1sQXV0b21hdGFTdGF0ZVB0ciBzdGFydCwgdG1wOworICAgICAgICAgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgc3ViOworICAgICAgICAgICAgeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtRGVjbDsKKworICAgICAgICAgICAgcmV0ID0gMTsKKworICAgICAgICAgICAgc3ViID0gKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBwYXJ0aWNsZS0+Y2hpbGRyZW4tPmNoaWxkcmVuOworICAgICAgICAgICAgaWYgKHN1YiA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICByZXQgPSAwOworCisgICAgICAgICAgICBzdGFydCA9IHBjdHh0LT5zdGF0ZTsKKyAgICAgICAgICAgIHRtcCA9IHhtbEF1dG9tYXRhTmV3U3RhdGUocGN0eHQtPmFtKTsKKyAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHBjdHh0LT5zdGF0ZSwgdG1wKTsKKyAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSA9IHRtcDsKKyAgICAgICAgICAgIHdoaWxlIChzdWIgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSA9IHRtcDsKKworICAgICAgICAgICAgICAgIGVsZW1EZWNsID0gKHhtbFNjaGVtYUVsZW1lbnRQdHIpIHN1Yi0+Y2hpbGRyZW47CisgICAgICAgICAgICAgICAgaWYgKGVsZW1EZWNsID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgUEVSUk9SX0lOVCgieG1sU2NoZW1hQnVpbGRBQ29udGVudE1vZGVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICI8ZWxlbWVudD4gcGFydGljbGUgaGFzIG5vIHRlcm0iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuKHJldCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICogTk9URTogVGhlIHttYXggb2NjdXJzfSBvZiBhbGwgdGhlIHBhcnRpY2xlcyBpbiB0aGUKKyAgICAgICAgICAgICAgICAqIHtwYXJ0aWNsZXN9IG9mIHRoZSBncm91cCBtdXN0IGJlIDAgb3IgMTsgdGhpcyBpcworICAgICAgICAgICAgICAgICogYWxyZWFkeSBlbnN1cmVkIGR1cmluZyB0aGUgcGFyc2Ugb2YgdGhlIGNvbnRlbnQgb2YKKyAgICAgICAgICAgICAgICAqIDxhbGw+LgorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYgKGVsZW1EZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fU1VCU1RfR1JPVVBfSEVBRCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgY291bnRlcjsKKworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIGFuIGFic3RyYWN0IGdyb3VwLCB3ZSBuZWVkIHRvIHNoYXJlCisgICAgICAgICAgICAgICAgICAgICAqIHRoZSBzYW1lIGNvdW50ZXIgZm9yIGFsbCB0aGUgZWxlbWVudCB0cmFuc2l0aW9ucworICAgICAgICAgICAgICAgICAgICAgKiBkZXJpdmVkIGZyb20gdGhlIGdyb3VwCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0geG1sQXV0b21hdGFOZXdDb3VudGVyKHBjdHh0LT5hbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yi0+bWluT2NjdXJzLCBzdWItPm1heE9jY3Vycyk7CisgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYUJ1aWxkQ29udGVudE1vZGVsRm9yU3Vic3RHcm91cChwY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YiwgY291bnRlciwgcGN0eHQtPnN0YXRlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHN1Yi0+bWluT2NjdXJzID09IDEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoc3ViLT5tYXhPY2N1cnMgPT0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3T25jZVRyYW5zMihwY3R4dC0+YW0sIHBjdHh0LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1EZWNsLT5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbURlY2wtPnRhcmdldE5hbWVzcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIGVsZW1EZWNsKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoc3ViLT5taW5PY2N1cnMgPT0gMCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChzdWItPm1heE9jY3VycyA9PSAxKSkgeworCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdXRvbWF0YU5ld0NvdW50VHJhbnMyKHBjdHh0LT5hbSwgcGN0eHQtPnN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjdHh0LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtRGVjbC0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtRGVjbC0+dGFyZ2V0TmFtZXNwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtRGVjbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3ViID0gKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBzdWItPm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwY3R4dC0+c3RhdGUgPQorICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3QWxsVHJhbnMocGN0eHQtPmFtLCBwY3R4dC0+c3RhdGUsIE5VTEwsIDApOworICAgICAgICAgICAgaWYgKHBhcnRpY2xlLT5taW5PY2N1cnMgPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbEF1dG9tYXRhTmV3RXBzaWxvbihwY3R4dC0+YW0sIHN0YXJ0LCBwY3R4dC0+c3RhdGUpOworICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCWNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCSAgICAvKgorCSAgICAqIElmIHdlIGhpdCBhIG1vZGVsIGdyb3VwIGRlZmluaXRpb24sIHRoZW4gdGhpcyBtZWFucyB0aGF0CisJICAgICogaXQgd2FzIGVtcHR5LCB0aHVzIHdhcyBub3Qgc3Vic3RpdHV0ZWQgZm9yIHRoZSBjb250YWluaW5nCisJICAgICogbW9kZWwgZ3JvdXAuIEp1c3QgZG8gbm90aGluZyBpbiB0aGlzIGNhc2UuCisJICAgICogVE9ETzogQnV0IHRoZSBncm91cCBzaG91bGQgYmUgc3Vic3RpdHV0ZWQgYW5kIG5vdCBvY2N1ciBhdAorCSAgICAqIGFsbCBpbiB0aGUgY29udGVudCBtb2RlbCBhdCB0aGlzIHBvaW50LiBGaXggdGhpcy4KKwkgICAgKi8KKyAgICAgICAgICAgIHJldCA9IDE7CisJICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorCSAgICB4bWxTY2hlbWFJbnRlcm5hbEVycjIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJInhtbFNjaGVtYUJ1aWxkQUNvbnRlbnRNb2RlbCIsCisJCSJmb3VuZCB1bmV4cGVjdGVkIHRlcm0gb2YgdHlwZSAnJXMnIGluIGNvbnRlbnQgbW9kZWwiLAorCQlXWFNfSVRFTV9UWVBFX05BTUUocGFydGljbGUtPmNoaWxkcmVuKSwgTlVMTCk7CisgICAgICAgICAgICByZXR1cm4ocmV0KTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQnVpbGRDb250ZW50TW9kZWw6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEB0eXBlOiAgdGhlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uCisgKiBAbmFtZTogIHRoZSBlbGVtZW50IG5hbWUKKyAqCisgKiBCdWlsZHMgdGhlIGNvbnRlbnQgbW9kZWwgb2YgdGhlIGNvbXBsZXggdHlwZS4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUJ1aWxkQ29udGVudE1vZGVsKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKwkJCSAgIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoKHR5cGUtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVgpIHx8CisJKHR5cGUtPmNvbnRNb2RlbCAhPSBOVUxMKSB8fAorCSgodHlwZS0+Y29udGVudFR5cGUgIT0gWE1MX1NDSEVNQV9DT05URU5UX0VMRU1FTlRTKSAmJgorCSh0eXBlLT5jb250ZW50VHlwZSAhPSBYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQpKSkKKwlyZXR1cm47CisKKyNpZmRlZiBERUJVR19DT05URU5UCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICJCdWlsZGluZyBjb250ZW50IG1vZGVsIGZvciAlc1xuIiwgbmFtZSk7CisjZW5kaWYKKyAgICBjdHh0LT5hbSA9IE5VTEw7CisgICAgY3R4dC0+YW0gPSB4bWxOZXdBdXRvbWF0YSgpOworICAgIGlmIChjdHh0LT5hbSA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiQ2Fubm90IGNyZWF0ZSBhdXRvbWF0YSBmb3IgY29tcGxleCB0eXBlICVzXG4iLCB0eXBlLT5uYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjdHh0LT5zdGF0ZSA9IHhtbEF1dG9tYXRhR2V0SW5pdFN0YXRlKGN0eHQtPmFtKTsKKyAgICAvKgorICAgICogQnVpbGQgdGhlIGF1dG9tYXRvbi4KKyAgICAqLworICAgIHhtbFNjaGVtYUJ1aWxkQUNvbnRlbnRNb2RlbChjdHh0LCBXWFNfVFlQRV9QQVJUSUNMRSh0eXBlKSk7CisgICAgeG1sQXV0b21hdGFTZXRGaW5hbFN0YXRlKGN0eHQtPmFtLCBjdHh0LT5zdGF0ZSk7CisgICAgdHlwZS0+Y29udE1vZGVsID0geG1sQXV0b21hdGFDb21waWxlKGN0eHQtPmFtKTsKKyAgICBpZiAodHlwZS0+Y29udE1vZGVsID09IE5VTEwpIHsKKyAgICAgICAgeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9JTlRFUk5BTCwKKwkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgdHlwZS0+bm9kZSwKKwkgICAgIkZhaWxlZCB0byBjb21waWxlIHRoZSBjb250ZW50IG1vZGVsIiwgTlVMTCk7CisgICAgfSBlbHNlIGlmICh4bWxSZWdleHBJc0RldGVybWluaXN0KHR5cGUtPmNvbnRNb2RlbCkgIT0gMSkgeworICAgICAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX05PVF9ERVRFUk1JTklTVElDLAorCSAgICAvKiBYTUxfU0NIRU1BU19FUlJfTk9UREVURVJNSU5JU1QsICovCisJICAgIFdYU19CQVNJQ19DQVNUIHR5cGUsIHR5cGUtPm5vZGUsCisJICAgICJUaGUgY29udGVudCBtb2RlbCBpcyBub3QgZGV0ZXJtaW5pc3QiLCBOVUxMKTsKKyAgICB9IGVsc2UgeworI2lmZGVmIERFQlVHX0NPTlRFTlRfUkVHRVhQCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQgbW9kZWwgb2YgJXM6XG4iLCB0eXBlLT5uYW1lKTsKKyAgICAgICAgeG1sUmVnZXhwUHJpbnQoc3RkZXJyLCB0eXBlLT5jb250TW9kZWwpOworI2VuZGlmCisgICAgfQorICAgIGN0eHQtPnN0YXRlID0gTlVMTDsKKyAgICB4bWxGcmVlQXV0b21hdGEoY3R4dC0+YW0pOworICAgIGN0eHQtPmFtID0gTlVMTDsKK30KKworLyoqCisgKiB4bWxTY2hlbWFSZXNvbHZlRWxlbWVudFJlZmVyZW5jZXM6CisgKiBAZWxlbTogIHRoZSBzY2hlbWEgZWxlbWVudCBjb250ZXh0CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXNvbHZlcyB0aGUgcmVmZXJlbmNlcyBvZiBhbiBlbGVtZW50IGRlY2xhcmF0aW9uCisgKiBvciBwYXJ0aWNsZSwgd2hpY2ggaGFzIGFuIGVsZW1lbnQgZGVjbGFyYXRpb24gYXMgaXQncworICogdGVybS4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVJlc29sdmVFbGVtZW50UmVmZXJlbmNlcyh4bWxTY2hlbWFFbGVtZW50UHRyIGVsZW1EZWNsLAorCQkJCSAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZWxlbURlY2wgPT0gTlVMTCkgfHwKKwkoKGVsZW1EZWNsICE9IE5VTEwpICYmCisJKGVsZW1EZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfUkVTT0xWRUQpKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVsZW1EZWNsLT5mbGFncyB8PSBYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX1JFU09MVkVEOworCisgICAgaWYgKChlbGVtRGVjbC0+c3VidHlwZXMgPT0gTlVMTCkgJiYgKGVsZW1EZWNsLT5uYW1lZFR5cGUgIT0gTlVMTCkpIHsKKwl4bWxTY2hlbWFUeXBlUHRyIHR5cGU7CisKKwkvKiAodHlwZSBkZWZpbml0aW9uKSAuLi4gb3RoZXJ3aXNlIHRoZSB0eXBlIGRlZmluaXRpb24g77+9cmVzb2x2ZWTvv70KKwkqIHRvIGJ5IHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2YgdGhlIHR5cGUgW2F0dHJpYnV0ZV0gLi4uCisJKi8KKwl0eXBlID0geG1sU2NoZW1hR2V0VHlwZShjdHh0LT5zY2hlbWEsIGVsZW1EZWNsLT5uYW1lZFR5cGUsCisJICAgIGVsZW1EZWNsLT5uYW1lZFR5cGVOcyk7CisJaWYgKHR5cGUgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQUmVzQ29tcEF0dHJFcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUsCisJCVdYU19CQVNJQ19DQVNUIGVsZW1EZWNsLCBlbGVtRGVjbC0+bm9kZSwKKwkJInR5cGUiLCBlbGVtRGVjbC0+bmFtZWRUeXBlLCBlbGVtRGVjbC0+bmFtZWRUeXBlTnMsCisJCVhNTF9TQ0hFTUFfVFlQRV9CQVNJQywgInR5cGUgZGVmaW5pdGlvbiIpOworCX0gZWxzZQorCSAgICBlbGVtRGVjbC0+c3VidHlwZXMgPSB0eXBlOworICAgIH0KKyAgICBpZiAoZWxlbURlY2wtPnN1YnN0R3JvdXAgIT0gTlVMTCkgeworCXhtbFNjaGVtYUVsZW1lbnRQdHIgc3Vic3RIZWFkOworCisJLyoKKwkqIEZJWE1FIFRPRE86IERvIHdlIG5lZWQgYSBuZXcgZmllbGQgaW4gX3htbFNjaGVtYUVsZW1lbnQgZm9yCisJKiBzdWJzdGl0dXRpb25Hcm91cD8KKwkqLworCXN1YnN0SGVhZCA9IHhtbFNjaGVtYUdldEVsZW0oY3R4dC0+c2NoZW1hLCBlbGVtRGVjbC0+c3Vic3RHcm91cCwKKwkgICAgZWxlbURlY2wtPnN1YnN0R3JvdXBOcyk7CisJaWYgKHN1YnN0SGVhZCA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVBSZXNDb21wQXR0ckVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSwKKwkJV1hTX0JBU0lDX0NBU1QgZWxlbURlY2wsIE5VTEwsCisJCSJzdWJzdGl0dXRpb25Hcm91cCIsIGVsZW1EZWNsLT5zdWJzdEdyb3VwLAorCQllbGVtRGVjbC0+c3Vic3RHcm91cE5zLCBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVCwgTlVMTCk7CisJfSBlbHNlIHsKKwkgICAgeG1sU2NoZW1hUmVzb2x2ZUVsZW1lbnRSZWZlcmVuY2VzKHN1YnN0SGVhZCwgY3R4dCk7CisJICAgIC8qCisJICAgICogU2V0IHRoZSAic3Vic3RpdHV0aW9uIGdyb3VwIGFmZmlsaWF0aW9uIi4KKwkgICAgKiBOT1RFIHRoYXQgbm93IHdlIHVzZSB0aGUgInJlZkRlY2wiIGZpZWxkIGZvciB0aGlzLgorCSAgICAqLworCSAgICBXWFNfU1VCU1RfSEVBRChlbGVtRGVjbCkgPSBzdWJzdEhlYWQ7CisJICAgIC8qCisJICAgICogVGhlIHR5cGUgZGVmaW5pdGlvbnMgaXMgc2V0IHRvOgorCSAgICAqIFNQRUMgIi4uLnRoZSB7dHlwZSBkZWZpbml0aW9ufSBvZiB0aGUgZWxlbWVudAorCSAgICAqIGRlY2xhcmF0aW9uIO+/vXJlc29sdmVk77+9IHRvIGJ5IHRoZSDvv71hY3R1YWwgdmFsdWXvv70KKwkgICAgKiBvZiB0aGUgc3Vic3RpdHV0aW9uR3JvdXAgW2F0dHJpYnV0ZV0sIGlmIHByZXNlbnQiCisJICAgICovCisJICAgIGlmIChlbGVtRGVjbC0+c3VidHlwZXMgPT0gTlVMTCkKKwkJZWxlbURlY2wtPnN1YnR5cGVzID0gc3Vic3RIZWFkLT5zdWJ0eXBlczsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBTUEVDICJUaGUgZGVmaW5pdGlvbiBvZiBhbnlUeXBlIHNlcnZlcyBhcyB0aGUgZGVmYXVsdCB0eXBlIGRlZmluaXRpb24KKyAgICAqIGZvciBlbGVtZW50IGRlY2xhcmF0aW9ucyB3aG9zZSBYTUwgcmVwcmVzZW50YXRpb24gZG9lcyBub3Qgc3BlY2lmeSBvbmUuIgorICAgICovCisgICAgaWYgKChlbGVtRGVjbC0+c3VidHlwZXMgPT0gTlVMTCkgJiYKKwkoZWxlbURlY2wtPm5hbWVkVHlwZSA9PSBOVUxMKSAmJgorCShlbGVtRGVjbC0+c3Vic3RHcm91cCA9PSBOVUxMKSkKKwllbGVtRGVjbC0+c3VidHlwZXMgPSB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllUWVBFKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFSZXNvbHZlVW5pb25NZW1iZXJUeXBlczoKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHR5cGU6ICB0aGUgc2NoZW1hIHNpbXBsZSB0eXBlIGRlZmluaXRpb24KKyAqCisgKiBDaGVja3MgYW5kIGJ1aWxkcyB0aGUgIm1lbWJlciB0eXBlIGRlZmluaXRpb25zIiBwcm9wZXJ0eSBvZiB0aGUgdW5pb24KKyAqIHNpbXBsZSB0eXBlLiBUaGlzIGhhbmRsZXMgcGFydCAoMSksIHBhcnQgKDIpIGlzIGRvbmUgaW4KKyAqIHhtbFNjaGVtYUZpbmlzaE1lbWJlclR5cGVEZWZpbml0aW9uc1Byb3BlcnR5KCkKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgZXJyb3IsIDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFSZXNvbHZlVW5pb25NZW1iZXJUeXBlcyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKworICAgIHhtbFNjaGVtYVR5cGVMaW5rUHRyIGxpbmssIGxhc3RMaW5rLCBuZXdMaW5rOworICAgIHhtbFNjaGVtYVR5cGVQdHIgbWVtYmVyVHlwZTsKKworICAgIC8qCisgICAgKiBTUEVDICgxKSAiSWYgdGhlIDx1bmlvbj4gYWx0ZXJuYXRpdmUgaXMgY2hvc2VuLCB0aGVuIFtEZWZpbml0aW9uOl0KKyAgICAqIGRlZmluZSB0aGUgZXhwbGljaXQgbWVtYmVycyBhcyB0aGUgdHlwZSBkZWZpbml0aW9ucyDvv71yZXNvbHZlZO+/vQorICAgICogdG8gYnkgdGhlIGl0ZW1zIGluIHRoZSDvv71hY3R1YWwgdmFsdWXvv70gb2YgdGhlIG1lbWJlclR5cGVzIFthdHRyaWJ1dGVdLAorICAgICogaWYgYW55LCBmb2xsb3dlZCBieSB0aGUgdHlwZSBkZWZpbml0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICAgICogPHNpbXBsZVR5cGU+cyBhbW9uZyB0aGUgW2NoaWxkcmVuXSBvZiA8dW5pb24+LCBpZiBhbnkuIgorICAgICovCisgICAgLyoKKyAgICAqIFJlc29sdmUgcmVmZXJlbmNlcy4KKyAgICAqLworICAgIGxpbmsgPSB0eXBlLT5tZW1iZXJUeXBlczsKKyAgICBsYXN0TGluayA9IE5VTEw7CisgICAgd2hpbGUgKGxpbmsgIT0gTlVMTCkgeworCWNvbnN0IHhtbENoYXIgKm5hbWUsICpuc05hbWU7CisKKwluYW1lID0gKCh4bWxTY2hlbWFRTmFtZVJlZlB0cikgbGluay0+dHlwZSktPm5hbWU7CisJbnNOYW1lID0gKCh4bWxTY2hlbWFRTmFtZVJlZlB0cikgbGluay0+dHlwZSktPnRhcmdldE5hbWVzcGFjZTsKKworCW1lbWJlclR5cGUgPSB4bWxTY2hlbWFHZXRUeXBlKGN0eHQtPnNjaGVtYSwgbmFtZSwgbnNOYW1lKTsKKwlpZiAoKG1lbWJlclR5cGUgPT0gTlVMTCkgfHwgKCEgV1hTX0lTX1NJTVBMRShtZW1iZXJUeXBlKSkpIHsKKwkgICAgeG1sU2NoZW1hUFJlc0NvbXBBdHRyRXJyKGN0eHQsIFhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCB0eXBlLT5ub2RlLCAibWVtYmVyVHlwZXMiLAorCQluYW1lLCBuc05hbWUsIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEUsIE5VTEwpOworCSAgICAvKgorCSAgICAqIFJlbW92ZSB0aGUgbWVtYmVyIHR5cGUgbGluay4KKwkgICAgKi8KKwkgICAgaWYgKGxhc3RMaW5rID09IE5VTEwpCisJCXR5cGUtPm1lbWJlclR5cGVzID0gbGluay0+bmV4dDsKKwkgICAgZWxzZQorCQlsYXN0TGluay0+bmV4dCA9IGxpbmstPm5leHQ7CisJICAgIG5ld0xpbmsgPSBsaW5rOworCSAgICBsaW5rID0gbGluay0+bmV4dDsKKwkgICAgeG1sRnJlZShuZXdMaW5rKTsKKwl9IGVsc2UgeworCSAgICBsaW5rLT50eXBlID0gbWVtYmVyVHlwZTsKKwkgICAgbGFzdExpbmsgPSBsaW5rOworCSAgICBsaW5rID0gbGluay0+bmV4dDsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBBZGQgbG9jYWwgc2ltcGxlIHR5cGVzLAorICAgICovCisgICAgbWVtYmVyVHlwZSA9IHR5cGUtPnN1YnR5cGVzOworICAgIHdoaWxlIChtZW1iZXJUeXBlICE9IE5VTEwpIHsKKwlsaW5rID0gKHhtbFNjaGVtYVR5cGVMaW5rUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYVR5cGVMaW5rKSk7CisJaWYgKGxpbmsgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIGEgdHlwZSBsaW5rIiwgTlVMTCk7CisJICAgIHJldHVybiAoLTEpOworCX0KKwlsaW5rLT50eXBlID0gbWVtYmVyVHlwZTsKKwlsaW5rLT5uZXh0ID0gTlVMTDsKKwlpZiAobGFzdExpbmsgPT0gTlVMTCkKKwkgICAgdHlwZS0+bWVtYmVyVHlwZXMgPSBsaW5rOworCWVsc2UKKwkgICAgbGFzdExpbmstPm5leHQgPSBsaW5rOworCWxhc3RMaW5rID0gbGluazsKKwltZW1iZXJUeXBlID0gbWVtYmVyVHlwZS0+bmV4dDsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFJc0Rlcml2ZWRGcm9tQnVpbHRJblR5cGU6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEB0eXBlOiAgdGhlIHR5cGUgZGVmaW5pdGlvbgorICogQHZhbFR5cGU6IHRoZSB2YWx1ZSB0eXBlCisgKgorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgdHlwZSBoYXMgdGhlIGdpdmVuIHZhbHVlIHR5cGUsIG9yCisgKiBpcyBkZXJpdmVkIGZyb20gc3VjaCBhIHR5cGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUlzRGVyaXZlZEZyb21CdWlsdEluVHlwZSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUsIGludCB2YWxUeXBlKQoreworICAgIGlmICh0eXBlID09IE5VTEwpCisJcmV0dXJuICgwKTsKKyAgICBpZiAoV1hTX0lTX0NPTVBMRVgodHlwZSkpCisJcmV0dXJuICgwKTsKKyAgICBpZiAodHlwZS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQkFTSUMpIHsKKwlpZiAodHlwZS0+YnVpbHRJblR5cGUgPT0gdmFsVHlwZSkKKwkgICAgcmV0dXJuKDEpOworCWlmICgodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSkgfHwKKwkgICAgKHR5cGUtPmJ1aWx0SW5UeXBlID09IFhNTF9TQ0hFTUFTX0FOWVRZUEUpKQorCSAgICByZXR1cm4gKDApOworCXJldHVybih4bWxTY2hlbWFJc0Rlcml2ZWRGcm9tQnVpbHRJblR5cGUodHlwZS0+c3VidHlwZXMsIHZhbFR5cGUpKTsKKyAgICB9CisgICAgcmV0dXJuKHhtbFNjaGVtYUlzRGVyaXZlZEZyb21CdWlsdEluVHlwZSh0eXBlLT5zdWJ0eXBlcywgdmFsVHlwZSkpOworfQorCisjaWYgMAorLyoqCisgKiB4bWxTY2hlbWFJc0Rlcml2ZWRGcm9tQnVpbHRJblR5cGU6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEB0eXBlOiAgdGhlIHR5cGUgZGVmaW5pdGlvbgorICogQHZhbFR5cGU6IHRoZSB2YWx1ZSB0eXBlCisgKgorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgdHlwZSBoYXMgdGhlIGdpdmVuIHZhbHVlIHR5cGUsIG9yCisgKiBpcyBkZXJpdmVkIGZyb20gc3VjaCBhIHR5cGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUlzVXNlckRlcml2ZWRGcm9tQnVpbHRJblR5cGUoeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCBpbnQgdmFsVHlwZSkKK3sKKyAgICBpZiAodHlwZSA9PSBOVUxMKQorCXJldHVybiAoMCk7CisgICAgaWYgKFdYU19JU19DT01QTEVYKHR5cGUpKQorCXJldHVybiAoMCk7CisgICAgaWYgKHR5cGUtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSB7CisJaWYgKHR5cGUtPmJ1aWx0SW5UeXBlID09IHZhbFR5cGUpCisJICAgIHJldHVybigxKTsKKwlyZXR1cm4gKDApOworICAgIH0gZWxzZQorCXJldHVybih4bWxTY2hlbWFJc0Rlcml2ZWRGcm9tQnVpbHRJblR5cGUodHlwZS0+c3VidHlwZXMsIHZhbFR5cGUpKTsKKworICAgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyCit4bWxTY2hlbWFRdWVyeUJ1aWx0SW5UeXBlKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICBpZiAodHlwZSA9PSBOVUxMKQorCXJldHVybiAoTlVMTCk7CisgICAgaWYgKFdYU19JU19DT01QTEVYKHR5cGUpKQorCXJldHVybiAoTlVMTCk7CisgICAgaWYgKHR5cGUtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKQorCXJldHVybih0eXBlKTsKKyAgICByZXR1cm4oeG1sU2NoZW1hUXVlcnlCdWlsdEluVHlwZSh0eXBlLT5zdWJ0eXBlcykpOworfQorI2VuZGlmCisKKy8qKgorICogeG1sU2NoZW1hR2V0UHJpbWl0aXZlVHlwZToKKyAqIEB0eXBlOiAgdGhlIHNpbXBsZVR5cGUgZGVmaW5pdGlvbgorICoKKyAqIFJldHVybnMgdGhlIHByaW1pdGl2ZSB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlIG9yCisgKiBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyCit4bWxTY2hlbWFHZXRQcmltaXRpdmVUeXBlKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKworICAgIHdoaWxlICh0eXBlICE9IE5VTEwpIHsKKwkvKgorCSogTm90ZSB0aGF0IGFueVNpbXBsZVR5cGUgaXMgYWN0dWFsbHkgbm90IGEgcHJpbWl0aXZlIHR5cGUKKwkqIGJ1dCB3ZSBuZWVkIHRoYXQgaGVyZS4KKwkqLworCWlmICgodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSkgfHwKKwkgICAodHlwZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX0JVSUxUSU5fUFJJTUlUSVZFKSkKKwkgICAgcmV0dXJuICh0eXBlKTsKKwl0eXBlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgfQorCisgICAgcmV0dXJuIChOVUxMKTsKK30KKworI2lmIDAKKy8qKgorICogeG1sU2NoZW1hR2V0QnVpbHRJblR5cGVBbmNlc3RvcjoKKyAqIEB0eXBlOiAgdGhlIHNpbXBsZVR5cGUgZGVmaW5pdGlvbgorICoKKyAqIFJldHVybnMgdGhlIHByaW1pdGl2ZSB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlIG9yCisgKiBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyCit4bWxTY2hlbWFHZXRCdWlsdEluVHlwZUFuY2VzdG9yKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICBpZiAoV1hTX0lTX0xJU1QodHlwZSkgfHwgV1hTX0lTX1VOSU9OKHR5cGUpKQorCXJldHVybiAoMCk7CisgICAgd2hpbGUgKHR5cGUgIT0gTlVMTCkgeworCWlmICh0eXBlLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykKKwkgICAgcmV0dXJuICh0eXBlKTsKKwl0eXBlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgfQorCisgICAgcmV0dXJuIChOVUxMKTsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbFNjaGVtYUNsb25lV2lsZGNhcmROc0NvbnN0cmFpbnRzOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAZGVzdDogIHRoZSBkZXN0aW5hdGlvbiB3aWxkY2FyZAorICogQHNvdXJjZTogdGhlIHNvdXJjZSB3aWxkY2FyZAorICoKKyAqIENsb25lcyB0aGUgbmFtZXNwYWNlIGNvbnN0cmFpbnRzIG9mIHNvdXJjZQorICogYW5kIGFzc2lnbmVzIHRoZW0gdG8gZGVzdC4KKyAqIFJldHVybnMgLTEgb24gaW50ZXJuYWwgZXJyb3IsIDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDbG9uZVdpbGRjYXJkTnNDb25zdHJhaW50cyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIGRlc3QsCisJCQkJICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIHNvdXJjZSkKK3sKKyAgICB4bWxTY2hlbWFXaWxkY2FyZE5zUHRyIGN1ciwgdG1wLCBsYXN0OworCisgICAgaWYgKChzb3VyY2UgPT0gTlVMTCkgfHwgKGRlc3QgPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBkZXN0LT5hbnkgPSBzb3VyY2UtPmFueTsKKyAgICBjdXIgPSBzb3VyY2UtPm5zU2V0OworICAgIGxhc3QgPSBOVUxMOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCXRtcCA9IHhtbFNjaGVtYU5ld1dpbGRjYXJkTnNDb25zdHJhaW50KGN0eHQpOworCWlmICh0bXAgPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKwl0bXAtPnZhbHVlID0gY3VyLT52YWx1ZTsKKwlpZiAobGFzdCA9PSBOVUxMKQorCSAgICBkZXN0LT5uc1NldCA9IHRtcDsKKwllbHNlCisJICAgIGxhc3QtPm5leHQgPSB0bXA7CisJbGFzdCA9IHRtcDsKKwljdXIgPSBjdXItPm5leHQ7CisgICAgfQorICAgIGlmIChkZXN0LT5uZWdOc1NldCAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWVXaWxkY2FyZE5zU2V0KGRlc3QtPm5lZ05zU2V0KTsKKyAgICBpZiAoc291cmNlLT5uZWdOc1NldCAhPSBOVUxMKSB7CisJZGVzdC0+bmVnTnNTZXQgPSB4bWxTY2hlbWFOZXdXaWxkY2FyZE5zQ29uc3RyYWludChjdHh0KTsKKwlpZiAoZGVzdC0+bmVnTnNTZXQgPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKwlkZXN0LT5uZWdOc1NldC0+dmFsdWUgPSBzb3VyY2UtPm5lZ05zU2V0LT52YWx1ZTsKKyAgICB9IGVsc2UKKwlkZXN0LT5uZWdOc1NldCA9IE5VTEw7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVVuaW9uV2lsZGNhcmRzOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAY29tcGxldGVXaWxkOiAgdGhlIGZpcnN0IHdpbGRjYXJkCisgKiBAY3VyV2lsZDogdGhlIHNlY29uZCB3aWxkY2FyZAorICoKKyAqIFVuaW9ucyB0aGUgbmFtZXNwYWNlIGNvbnN0cmFpbnRzIG9mIHRoZSBnaXZlbiB3aWxkY2FyZHMuCisgKiBAY29tcGxldGVXaWxkIHdpbGwgaG9sZCB0aGUgcmVzdWx0aW5nIHVuaW9uLgorICogUmV0dXJucyBhIHBvc2l0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZSwgLTEgaW4gY2FzZSBvZiBhbgorICogaW50ZXJuYWwgZXJyb3IsIDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFVbmlvbldpbGRjYXJkcyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICAgeG1sU2NoZW1hV2lsZGNhcmRQdHIgY29tcGxldGVXaWxkLAorCQkJICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIGN1cldpbGQpCit7CisgICAgeG1sU2NoZW1hV2lsZGNhcmROc1B0ciBjdXIsIGN1ckIsIHRtcDsKKworICAgIC8qCisgICAgKiAxIElmIE8xIGFuZCBPMiBhcmUgdGhlIHNhbWUgdmFsdWUsIHRoZW4gdGhhdCB2YWx1ZSBtdXN0IGJlIHRoZQorICAgICogdmFsdWUuCisgICAgKi8KKyAgICBpZiAoKGNvbXBsZXRlV2lsZC0+YW55ID09IGN1cldpbGQtPmFueSkgJiYKKwkoKGNvbXBsZXRlV2lsZC0+bnNTZXQgPT0gTlVMTCkgPT0gKGN1cldpbGQtPm5zU2V0ID09IE5VTEwpKSAmJgorCSgoY29tcGxldGVXaWxkLT5uZWdOc1NldCA9PSBOVUxMKSA9PSAoY3VyV2lsZC0+bmVnTnNTZXQgPT0gTlVMTCkpKSB7CisKKwlpZiAoKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgPT0gTlVMTCkgfHwKKwkgICAgKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQtPnZhbHVlID09IGN1cldpbGQtPm5lZ05zU2V0LT52YWx1ZSkpIHsKKworCSAgICBpZiAoY29tcGxldGVXaWxkLT5uc1NldCAhPSBOVUxMKSB7CisJCWludCBmb3VuZCA9IDA7CisKKwkJLyoKKwkJKiBDaGVjayBlcXVhbGl0eSBvZiBzZXRzLgorCQkqLworCQljdXIgPSBjb21wbGV0ZVdpbGQtPm5zU2V0OworCQl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkJICAgIGZvdW5kID0gMDsKKwkJICAgIGN1ckIgPSBjdXJXaWxkLT5uc1NldDsKKwkJICAgIHdoaWxlIChjdXJCICE9IE5VTEwpIHsKKwkJCWlmIChjdXItPnZhbHVlID09IGN1ckItPnZhbHVlKSB7CisJCQkgICAgZm91bmQgPSAxOworCQkJICAgIGJyZWFrOworCQkJfQorCQkJY3VyQiA9IGN1ckItPm5leHQ7CisJCSAgICB9CisJCSAgICBpZiAoIWZvdW5kKQorCQkJYnJlYWs7CisJCSAgICBjdXIgPSBjdXItPm5leHQ7CisJCX0KKwkJaWYgKGZvdW5kKQorCQkgICAgcmV0dXJuKDApOworCSAgICB9IGVsc2UKKwkJcmV0dXJuKDApOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIDIgSWYgZWl0aGVyIE8xIG9yIE8yIGlzIGFueSwgdGhlbiBhbnkgbXVzdCBiZSB0aGUgdmFsdWUKKyAgICAqLworICAgIGlmIChjb21wbGV0ZVdpbGQtPmFueSAhPSBjdXJXaWxkLT5hbnkpIHsKKwlpZiAoY29tcGxldGVXaWxkLT5hbnkgPT0gMCkgeworCSAgICBjb21wbGV0ZVdpbGQtPmFueSA9IDE7CisJICAgIGlmIChjb21wbGV0ZVdpbGQtPm5zU2V0ICE9IE5VTEwpIHsKKwkJeG1sU2NoZW1hRnJlZVdpbGRjYXJkTnNTZXQoY29tcGxldGVXaWxkLT5uc1NldCk7CisJCWNvbXBsZXRlV2lsZC0+bnNTZXQgPSBOVUxMOworCSAgICB9CisJICAgIGlmIChjb21wbGV0ZVdpbGQtPm5lZ05zU2V0ICE9IE5VTEwpIHsKKwkJeG1sRnJlZShjb21wbGV0ZVdpbGQtPm5lZ05zU2V0KTsKKwkJY29tcGxldGVXaWxkLT5uZWdOc1NldCA9IE5VTEw7CisJICAgIH0KKwl9CisJcmV0dXJuICgwKTsKKyAgICB9CisgICAgLyoKKyAgICAqIDMgSWYgYm90aCBPMSBhbmQgTzIgYXJlIHNldHMgb2YgKG5hbWVzcGFjZSBuYW1lcyBvciDvv71hYnNlbnTvv70pLAorICAgICogdGhlbiB0aGUgdW5pb24gb2YgdGhvc2Ugc2V0cyBtdXN0IGJlIHRoZSB2YWx1ZS4KKyAgICAqLworICAgIGlmICgoY29tcGxldGVXaWxkLT5uc1NldCAhPSBOVUxMKSAmJiAoY3VyV2lsZC0+bnNTZXQgIT0gTlVMTCkpIHsKKwlpbnQgZm91bmQ7CisJeG1sU2NoZW1hV2lsZGNhcmROc1B0ciBzdGFydDsKKworCWN1ciA9IGN1cldpbGQtPm5zU2V0OworCXN0YXJ0ID0gY29tcGxldGVXaWxkLT5uc1NldDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgZm91bmQgPSAwOworCSAgICBjdXJCID0gc3RhcnQ7CisJICAgIHdoaWxlIChjdXJCICE9IE5VTEwpIHsKKwkJaWYgKGN1ci0+dmFsdWUgPT0gY3VyQi0+dmFsdWUpIHsKKwkJICAgIGZvdW5kID0gMTsKKwkJICAgIGJyZWFrOworCQl9CisJCWN1ckIgPSBjdXJCLT5uZXh0OworCSAgICB9CisJICAgIGlmICghZm91bmQpIHsKKwkJdG1wID0geG1sU2NoZW1hTmV3V2lsZGNhcmROc0NvbnN0cmFpbnQoY3R4dCk7CisJCWlmICh0bXAgPT0gTlVMTCkKKwkJICAgIHJldHVybiAoLTEpOworCQl0bXAtPnZhbHVlID0gY3VyLT52YWx1ZTsKKwkJdG1wLT5uZXh0ID0gY29tcGxldGVXaWxkLT5uc1NldDsKKwkJY29tcGxldGVXaWxkLT5uc1NldCA9IHRtcDsKKwkgICAgfQorCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorCisJcmV0dXJuKDApOworICAgIH0KKyAgICAvKgorICAgICogNCBJZiB0aGUgdHdvIGFyZSBuZWdhdGlvbnMgb2YgZGlmZmVyZW50IHZhbHVlcyAobmFtZXNwYWNlIG5hbWVzCisgICAgKiBvciDvv71hYnNlbnTvv70pLCB0aGVuIGEgcGFpciBvZiBub3QgYW5kIO+/vWFic2VudO+/vSBtdXN0IGJlIHRoZSB2YWx1ZS4KKyAgICAqLworICAgIGlmICgoY29tcGxldGVXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJgorCShjdXJXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJgorCShjb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSAhPSBjdXJXaWxkLT5uZWdOc1NldC0+dmFsdWUpKSB7CisJY29tcGxldGVXaWxkLT5uZWdOc1NldC0+dmFsdWUgPSBOVUxMOworCisJcmV0dXJuKDApOworICAgIH0KKyAgICAvKgorICAgICAqIDUuCisgICAgICovCisgICAgaWYgKCgoY29tcGxldGVXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJgorCShjb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSAhPSBOVUxMKSAmJgorCShjdXJXaWxkLT5uc1NldCAhPSBOVUxMKSkgfHwKKwkoKGN1cldpbGQtPm5lZ05zU2V0ICE9IE5VTEwpICYmCisJKGN1cldpbGQtPm5lZ05zU2V0LT52YWx1ZSAhPSBOVUxMKSAmJgorCShjb21wbGV0ZVdpbGQtPm5zU2V0ICE9IE5VTEwpKSkgeworCisJaW50IG5zRm91bmQsIGFic2VudEZvdW5kID0gMDsKKworCWlmIChjb21wbGV0ZVdpbGQtPm5zU2V0ICE9IE5VTEwpIHsKKwkgICAgY3VyID0gY29tcGxldGVXaWxkLT5uc1NldDsKKwkgICAgY3VyQiA9IGN1cldpbGQtPm5lZ05zU2V0OworCX0gZWxzZSB7CisJICAgIGN1ciA9IGN1cldpbGQtPm5zU2V0OworCSAgICBjdXJCID0gY29tcGxldGVXaWxkLT5uZWdOc1NldDsKKwl9CisJbnNGb3VuZCA9IDA7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJICAgIGlmIChjdXItPnZhbHVlID09IE5VTEwpCisJCWFic2VudEZvdW5kID0gMTsKKwkgICAgZWxzZSBpZiAoY3VyLT52YWx1ZSA9PSBjdXJCLT52YWx1ZSkKKwkJbnNGb3VuZCA9IDE7CisJICAgIGlmIChuc0ZvdW5kICYmIGFic2VudEZvdW5kKQorCQlicmVhazsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKworCWlmIChuc0ZvdW5kICYmIGFic2VudEZvdW5kKSB7CisJICAgIC8qCisJICAgICogNS4xIElmIHRoZSBzZXQgUyBpbmNsdWRlcyBib3RoIHRoZSBuZWdhdGVkIG5hbWVzcGFjZQorCSAgICAqIG5hbWUgYW5kIO+/vWFic2VudO+/vSwgdGhlbiBhbnkgbXVzdCBiZSB0aGUgdmFsdWUuCisJICAgICovCisJICAgIGNvbXBsZXRlV2lsZC0+YW55ID0gMTsKKwkgICAgaWYgKGNvbXBsZXRlV2lsZC0+bnNTZXQgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFGcmVlV2lsZGNhcmROc1NldChjb21wbGV0ZVdpbGQtPm5zU2V0KTsKKwkJY29tcGxldGVXaWxkLT5uc1NldCA9IE5VTEw7CisJICAgIH0KKwkgICAgaWYgKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgIT0gTlVMTCkgeworCQl4bWxGcmVlKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQpOworCQljb21wbGV0ZVdpbGQtPm5lZ05zU2V0ID0gTlVMTDsKKwkgICAgfQorCX0gZWxzZSBpZiAobnNGb3VuZCAmJiAoIWFic2VudEZvdW5kKSkgeworCSAgICAvKgorCSAgICAqIDUuMiBJZiB0aGUgc2V0IFMgaW5jbHVkZXMgdGhlIG5lZ2F0ZWQgbmFtZXNwYWNlIG5hbWUKKwkgICAgKiBidXQgbm90IO+/vWFic2VudO+/vSwgdGhlbiBhIHBhaXIgb2Ygbm90IGFuZCDvv71hYnNlbnTvv70gbXVzdAorCSAgICAqIGJlIHRoZSB2YWx1ZS4KKwkgICAgKi8KKwkgICAgaWYgKGNvbXBsZXRlV2lsZC0+bnNTZXQgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFGcmVlV2lsZGNhcmROc1NldChjb21wbGV0ZVdpbGQtPm5zU2V0KTsKKwkJY29tcGxldGVXaWxkLT5uc1NldCA9IE5VTEw7CisJICAgIH0KKwkgICAgaWYgKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgPT0gTlVMTCkgeworCQljb21wbGV0ZVdpbGQtPm5lZ05zU2V0ID0geG1sU2NoZW1hTmV3V2lsZGNhcmROc0NvbnN0cmFpbnQoY3R4dCk7CisJCWlmIChjb21wbGV0ZVdpbGQtPm5lZ05zU2V0ID09IE5VTEwpCisJCSAgICByZXR1cm4gKC0xKTsKKwkgICAgfQorCSAgICBjb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSA9IE5VTEw7CisJfSBlbHNlIGlmICgoIW5zRm91bmQpICYmIGFic2VudEZvdW5kKSB7CisJICAgIC8qCisJICAgICogNS4zIElmIHRoZSBzZXQgUyBpbmNsdWRlcyDvv71hYnNlbnTvv70gYnV0IG5vdCB0aGUgbmVnYXRlZAorCSAgICAqIG5hbWVzcGFjZSBuYW1lLCB0aGVuIHRoZSB1bmlvbiBpcyBub3QgZXhwcmVzc2libGUuCisJICAgICovCisJICAgIHhtbFNjaGVtYVBFcnIoY3R4dCwgY29tcGxldGVXaWxkLT5ub2RlLAorCQlYTUxfU0NIRU1BUF9VTklPTl9OT1RfRVhQUkVTU0lCTEUsCisJCSJUaGUgdW5pb24gb2YgdGhlIHdpbGNhcmQgaXMgbm90IGV4cHJlc3NpYmxlLlxuIiwKKwkJTlVMTCwgTlVMTCk7CisJICAgIHJldHVybihYTUxfU0NIRU1BUF9VTklPTl9OT1RfRVhQUkVTU0lCTEUpOworCX0gZWxzZSBpZiAoKCFuc0ZvdW5kKSAmJiAoIWFic2VudEZvdW5kKSkgeworCSAgICAvKgorCSAgICAqIDUuNCBJZiB0aGUgc2V0IFMgZG9lcyBub3QgaW5jbHVkZSBlaXRoZXIgdGhlIG5lZ2F0ZWQgbmFtZXNwYWNlCisJICAgICogbmFtZSBvciDvv71hYnNlbnTvv70sIHRoZW4gd2hpY2hldmVyIG9mIE8xIG9yIE8yIGlzIGEgcGFpciBvZiBub3QKKwkgICAgKiBhbmQgYSBuYW1lc3BhY2UgbmFtZSBtdXN0IGJlIHRoZSB2YWx1ZS4KKwkgICAgKi8KKwkgICAgaWYgKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgPT0gTlVMTCkgeworCQlpZiAoY29tcGxldGVXaWxkLT5uc1NldCAhPSBOVUxMKSB7CisJCSAgICB4bWxTY2hlbWFGcmVlV2lsZGNhcmROc1NldChjb21wbGV0ZVdpbGQtPm5zU2V0KTsKKwkJICAgIGNvbXBsZXRlV2lsZC0+bnNTZXQgPSBOVUxMOworCQl9CisJCWNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgPSB4bWxTY2hlbWFOZXdXaWxkY2FyZE5zQ29uc3RyYWludChjdHh0KTsKKwkJaWYgKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgPT0gTlVMTCkKKwkJICAgIHJldHVybiAoLTEpOworCQljb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSA9IGN1cldpbGQtPm5lZ05zU2V0LT52YWx1ZTsKKwkgICAgfQorCX0KKwlyZXR1cm4gKDApOworICAgIH0KKyAgICAvKgorICAgICAqIDYuCisgICAgICovCisgICAgaWYgKCgoY29tcGxldGVXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJgorCShjb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSA9PSBOVUxMKSAmJgorCShjdXJXaWxkLT5uc1NldCAhPSBOVUxMKSkgfHwKKwkoKGN1cldpbGQtPm5lZ05zU2V0ICE9IE5VTEwpICYmCisJKGN1cldpbGQtPm5lZ05zU2V0LT52YWx1ZSA9PSBOVUxMKSAmJgorCShjb21wbGV0ZVdpbGQtPm5zU2V0ICE9IE5VTEwpKSkgeworCisJaWYgKGNvbXBsZXRlV2lsZC0+bnNTZXQgIT0gTlVMTCkgeworCSAgICBjdXIgPSBjb21wbGV0ZVdpbGQtPm5zU2V0OworCX0gZWxzZSB7CisJICAgIGN1ciA9IGN1cldpbGQtPm5zU2V0OworCX0KKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKGN1ci0+dmFsdWUgPT0gTlVMTCkgeworCQkvKgorCQkqIDYuMSBJZiB0aGUgc2V0IFMgaW5jbHVkZXMg77+9YWJzZW5077+9LCB0aGVuIGFueSBtdXN0IGJlIHRoZQorCQkqIHZhbHVlLgorCQkqLworCQljb21wbGV0ZVdpbGQtPmFueSA9IDE7CisJCWlmIChjb21wbGV0ZVdpbGQtPm5zU2V0ICE9IE5VTEwpIHsKKwkJICAgIHhtbFNjaGVtYUZyZWVXaWxkY2FyZE5zU2V0KGNvbXBsZXRlV2lsZC0+bnNTZXQpOworCQkgICAgY29tcGxldGVXaWxkLT5uc1NldCA9IE5VTEw7CisJCX0KKwkJaWYgKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgIT0gTlVMTCkgeworCQkgICAgeG1sRnJlZShjb21wbGV0ZVdpbGQtPm5lZ05zU2V0KTsKKwkJICAgIGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgPSBOVUxMOworCQl9CisJCXJldHVybiAoMCk7CisJICAgIH0KKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKwlpZiAoY29tcGxldGVXaWxkLT5uZWdOc1NldCA9PSBOVUxMKSB7CisJICAgIC8qCisJICAgICogNi4yIElmIHRoZSBzZXQgUyBkb2VzIG5vdCBpbmNsdWRlIO+/vWFic2VudO+/vSwgdGhlbiBhIHBhaXIgb2Ygbm90CisJICAgICogYW5kIO+/vWFic2VudO+/vSBtdXN0IGJlIHRoZSB2YWx1ZS4KKwkgICAgKi8KKwkgICAgaWYgKGNvbXBsZXRlV2lsZC0+bnNTZXQgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFGcmVlV2lsZGNhcmROc1NldChjb21wbGV0ZVdpbGQtPm5zU2V0KTsKKwkJY29tcGxldGVXaWxkLT5uc1NldCA9IE5VTEw7CisJICAgIH0KKwkgICAgY29tcGxldGVXaWxkLT5uZWdOc1NldCA9IHhtbFNjaGVtYU5ld1dpbGRjYXJkTnNDb25zdHJhaW50KGN0eHQpOworCSAgICBpZiAoY29tcGxldGVXaWxkLT5uZWdOc1NldCA9PSBOVUxMKQorCQlyZXR1cm4gKC0xKTsKKwkgICAgY29tcGxldGVXaWxkLT5uZWdOc1NldC0+dmFsdWUgPSBOVUxMOworCX0KKwlyZXR1cm4gKDApOworICAgIH0KKyAgICByZXR1cm4gKDApOworCit9CisKKy8qKgorICogeG1sU2NoZW1hSW50ZXJzZWN0V2lsZGNhcmRzOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAY29tcGxldGVXaWxkOiAgdGhlIGZpcnN0IHdpbGRjYXJkCisgKiBAY3VyV2lsZDogdGhlIHNlY29uZCB3aWxkY2FyZAorICoKKyAqIEludGVyc2VjdHMgdGhlIG5hbWVzcGFjZSBjb25zdHJhaW50cyBvZiB0aGUgZ2l2ZW4gd2lsZGNhcmRzLgorICogQGNvbXBsZXRlV2lsZCB3aWxsIGhvbGQgdGhlIHJlc3VsdGluZyBpbnRlcnNlY3Rpb24uCisgKiBSZXR1cm5zIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLCAtMSBpbiBjYXNlIG9mIGFuCisgKiBpbnRlcm5hbCBlcnJvciwgMCBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUludGVyc2VjdFdpbGRjYXJkcyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICAgeG1sU2NoZW1hV2lsZGNhcmRQdHIgY29tcGxldGVXaWxkLAorCQkJICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIGN1cldpbGQpCit7CisgICAgeG1sU2NoZW1hV2lsZGNhcmROc1B0ciBjdXIsIGN1ckIsIHByZXYsICB0bXA7CisKKyAgICAvKgorICAgICogMSBJZiBPMSBhbmQgTzIgYXJlIHRoZSBzYW1lIHZhbHVlLCB0aGVuIHRoYXQgdmFsdWUgbXVzdCBiZSB0aGUKKyAgICAqIHZhbHVlLgorICAgICovCisgICAgaWYgKChjb21wbGV0ZVdpbGQtPmFueSA9PSBjdXJXaWxkLT5hbnkpICYmCisJKChjb21wbGV0ZVdpbGQtPm5zU2V0ID09IE5VTEwpID09IChjdXJXaWxkLT5uc1NldCA9PSBOVUxMKSkgJiYKKwkoKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgPT0gTlVMTCkgPT0gKGN1cldpbGQtPm5lZ05zU2V0ID09IE5VTEwpKSkgeworCisJaWYgKChjb21wbGV0ZVdpbGQtPm5lZ05zU2V0ID09IE5VTEwpIHx8CisJICAgIChjb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSA9PSBjdXJXaWxkLT5uZWdOc1NldC0+dmFsdWUpKSB7CisKKwkgICAgaWYgKGNvbXBsZXRlV2lsZC0+bnNTZXQgIT0gTlVMTCkgeworCQlpbnQgZm91bmQgPSAwOworCisJCS8qCisJCSogQ2hlY2sgZXF1YWxpdHkgb2Ygc2V0cy4KKwkJKi8KKwkJY3VyID0gY29tcGxldGVXaWxkLT5uc1NldDsKKwkJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCSAgICBmb3VuZCA9IDA7CisJCSAgICBjdXJCID0gY3VyV2lsZC0+bnNTZXQ7CisJCSAgICB3aGlsZSAoY3VyQiAhPSBOVUxMKSB7CisJCQlpZiAoY3VyLT52YWx1ZSA9PSBjdXJCLT52YWx1ZSkgeworCQkJICAgIGZvdW5kID0gMTsKKwkJCSAgICBicmVhazsKKwkJCX0KKwkJCWN1ckIgPSBjdXJCLT5uZXh0OworCQkgICAgfQorCQkgICAgaWYgKCFmb3VuZCkKKwkJCWJyZWFrOworCQkgICAgY3VyID0gY3VyLT5uZXh0OworCQl9CisJCWlmIChmb3VuZCkKKwkJICAgIHJldHVybigwKTsKKwkgICAgfSBlbHNlCisJCXJldHVybigwKTsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiAyIElmIGVpdGhlciBPMSBvciBPMiBpcyBhbnksIHRoZW4gdGhlIG90aGVyIG11c3QgYmUgdGhlIHZhbHVlLgorICAgICovCisgICAgaWYgKChjb21wbGV0ZVdpbGQtPmFueSAhPSBjdXJXaWxkLT5hbnkpICYmIChjb21wbGV0ZVdpbGQtPmFueSkpIHsKKwlpZiAoeG1sU2NoZW1hQ2xvbmVXaWxkY2FyZE5zQ29uc3RyYWludHMoY3R4dCwgY29tcGxldGVXaWxkLCBjdXJXaWxkKSA9PSAtMSkKKwkgICAgcmV0dXJuKC0xKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIC8qCisgICAgKiAzIElmIGVpdGhlciBPMSBvciBPMiBpcyBhIHBhaXIgb2Ygbm90IGFuZCBhIHZhbHVlIChhIG5hbWVzcGFjZQorICAgICogbmFtZSBvciDvv71hYnNlbnTvv70pIGFuZCB0aGUgb3RoZXIgaXMgYSBzZXQgb2YgKG5hbWVzcGFjZSBuYW1lcyBvcgorICAgICog77+9YWJzZW5077+9KSwgdGhlbiB0aGF0IHNldCwgbWludXMgdGhlIG5lZ2F0ZWQgdmFsdWUgaWYgaXQgd2FzIGluCisgICAgKiB0aGUgc2V0LCBtaW51cyDvv71hYnNlbnTvv70gaWYgaXQgd2FzIGluIHRoZSBzZXQsIG11c3QgYmUgdGhlIHZhbHVlLgorICAgICovCisgICAgaWYgKCgoY29tcGxldGVXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJiAoY3VyV2lsZC0+bnNTZXQgIT0gTlVMTCkpIHx8CisJKChjdXJXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJiAoY29tcGxldGVXaWxkLT5uc1NldCAhPSBOVUxMKSkpIHsKKwljb25zdCB4bWxDaGFyICpuZWc7CisKKwlpZiAoY29tcGxldGVXaWxkLT5uc1NldCA9PSBOVUxMKSB7CisJICAgIG5lZyA9IGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQtPnZhbHVlOworCSAgICBpZiAoeG1sU2NoZW1hQ2xvbmVXaWxkY2FyZE5zQ29uc3RyYWludHMoY3R4dCwgY29tcGxldGVXaWxkLCBjdXJXaWxkKSA9PSAtMSkKKwkJcmV0dXJuKC0xKTsKKwl9IGVsc2UKKwkgICAgbmVnID0gY3VyV2lsZC0+bmVnTnNTZXQtPnZhbHVlOworCS8qCisJKiBSZW1vdmUgYWJzZW50IGFuZCBuZWdhdGVkLgorCSovCisJcHJldiA9IE5VTEw7CisJY3VyID0gY29tcGxldGVXaWxkLT5uc1NldDsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKGN1ci0+dmFsdWUgPT0gTlVMTCkgeworCQlpZiAocHJldiA9PSBOVUxMKQorCQkgICAgY29tcGxldGVXaWxkLT5uc1NldCA9IGN1ci0+bmV4dDsKKwkJZWxzZQorCQkgICAgcHJldi0+bmV4dCA9IGN1ci0+bmV4dDsKKwkJeG1sRnJlZShjdXIpOworCQlicmVhazsKKwkgICAgfQorCSAgICBwcmV2ID0gY3VyOworCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfQorCWlmIChuZWcgIT0gTlVMTCkgeworCSAgICBwcmV2ID0gTlVMTDsKKwkgICAgY3VyID0gY29tcGxldGVXaWxkLT5uc1NldDsKKwkgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCWlmIChjdXItPnZhbHVlID09IG5lZykgeworCQkgICAgaWYgKHByZXYgPT0gTlVMTCkKKwkJCWNvbXBsZXRlV2lsZC0+bnNTZXQgPSBjdXItPm5leHQ7CisJCSAgICBlbHNlCisJCQlwcmV2LT5uZXh0ID0gY3VyLT5uZXh0OworCQkgICAgeG1sRnJlZShjdXIpOworCQkgICAgYnJlYWs7CisJCX0KKwkJcHJldiA9IGN1cjsKKwkJY3VyID0gY3VyLT5uZXh0OworCSAgICB9CisJfQorCisJcmV0dXJuKDApOworICAgIH0KKyAgICAvKgorICAgICogNCBJZiBib3RoIE8xIGFuZCBPMiBhcmUgc2V0cyBvZiAobmFtZXNwYWNlIG5hbWVzIG9yIO+/vWFic2VudO+/vSksCisgICAgKiB0aGVuIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhvc2Ugc2V0cyBtdXN0IGJlIHRoZSB2YWx1ZS4KKyAgICAqLworICAgIGlmICgoY29tcGxldGVXaWxkLT5uc1NldCAhPSBOVUxMKSAmJiAoY3VyV2lsZC0+bnNTZXQgIT0gTlVMTCkpIHsKKwlpbnQgZm91bmQ7CisKKwljdXIgPSBjb21wbGV0ZVdpbGQtPm5zU2V0OworCXByZXYgPSBOVUxMOworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICBmb3VuZCA9IDA7CisJICAgIGN1ckIgPSBjdXJXaWxkLT5uc1NldDsKKwkgICAgd2hpbGUgKGN1ckIgIT0gTlVMTCkgeworCQlpZiAoY3VyLT52YWx1ZSA9PSBjdXJCLT52YWx1ZSkgeworCQkgICAgZm91bmQgPSAxOworCQkgICAgYnJlYWs7CisJCX0KKwkJY3VyQiA9IGN1ckItPm5leHQ7CisJICAgIH0KKwkgICAgaWYgKCFmb3VuZCkgeworCQlpZiAocHJldiA9PSBOVUxMKQorCQkgICAgY29tcGxldGVXaWxkLT5uc1NldCA9IGN1ci0+bmV4dDsKKwkJZWxzZQorCQkgICAgcHJldi0+bmV4dCA9IGN1ci0+bmV4dDsKKwkJdG1wID0gY3VyLT5uZXh0OworCQl4bWxGcmVlKGN1cik7CisJCWN1ciA9IHRtcDsKKwkJY29udGludWU7CisJICAgIH0KKwkgICAgcHJldiA9IGN1cjsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKworCXJldHVybigwKTsKKyAgICB9CisgICAgLyogNSBJZiB0aGUgdHdvIGFyZSBuZWdhdGlvbnMgb2YgZGlmZmVyZW50IG5hbWVzcGFjZSBuYW1lcywKKyAgICAqIHRoZW4gdGhlIGludGVyc2VjdGlvbiBpcyBub3QgZXhwcmVzc2libGUKKyAgICAqLworICAgIGlmICgoY29tcGxldGVXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJgorCShjdXJXaWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJgorCShjb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSAhPSBjdXJXaWxkLT5uZWdOc1NldC0+dmFsdWUpICYmCisJKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQtPnZhbHVlICE9IE5VTEwpICYmCisJKGN1cldpbGQtPm5lZ05zU2V0LT52YWx1ZSAhPSBOVUxMKSkgeworCisJeG1sU2NoZW1hUEVycihjdHh0LCBjb21wbGV0ZVdpbGQtPm5vZGUsIFhNTF9TQ0hFTUFQX0lOVEVSU0VDVElPTl9OT1RfRVhQUkVTU0lCTEUsCisJICAgICJUaGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB3aWxjYXJkIGlzIG5vdCBleHByZXNzaWJsZS5cbiIsCisJICAgIE5VTEwsIE5VTEwpOworCXJldHVybihYTUxfU0NIRU1BUF9JTlRFUlNFQ1RJT05fTk9UX0VYUFJFU1NJQkxFKTsKKyAgICB9CisgICAgLyoKKyAgICAqIDYgSWYgdGhlIG9uZSBpcyBhIG5lZ2F0aW9uIG9mIGEgbmFtZXNwYWNlIG5hbWUgYW5kIHRoZSBvdGhlcgorICAgICogaXMgYSBuZWdhdGlvbiBvZiDvv71hYnNlbnTvv70sIHRoZW4gdGhlIG9uZSB3aGljaCBpcyB0aGUgbmVnYXRpb24KKyAgICAqIG9mIGEgbmFtZXNwYWNlIG5hbWUgbXVzdCBiZSB0aGUgdmFsdWUuCisgICAgKi8KKyAgICBpZiAoKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQgIT0gTlVMTCkgJiYgKGN1cldpbGQtPm5lZ05zU2V0ICE9IE5VTEwpICYmCisJKGNvbXBsZXRlV2lsZC0+bmVnTnNTZXQtPnZhbHVlICE9IGN1cldpbGQtPm5lZ05zU2V0LT52YWx1ZSkgJiYKKwkoY29tcGxldGVXaWxkLT5uZWdOc1NldC0+dmFsdWUgPT0gTlVMTCkpIHsKKwljb21wbGV0ZVdpbGQtPm5lZ05zU2V0LT52YWx1ZSA9ICBjdXJXaWxkLT5uZWdOc1NldC0+dmFsdWU7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFJc1dpbGRjYXJkTnNDb25zdHJhaW50U3Vic2V0OgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAc3ViOiAgdGhlIGZpcnN0IHdpbGRjYXJkCisgKiBAc3VwZXI6IHRoZSBzZWNvbmQgd2lsZGNhcmQKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IFdpbGRjYXJkIFN1YnNldCAoY29zLW5zLXN1YnNldCkKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIG5hbWVzcGFjZSBjb25zdHJhaW50IG9mIEBzdWIgaXMgYW4gaW50ZW5zaW9uYWwKKyAqIHN1YnNldCBvZiBAc3VwZXIsIDEgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NPU05TU3Vic2V0KHhtbFNjaGVtYVdpbGRjYXJkUHRyIHN1YiwKKwkJCSAgeG1sU2NoZW1hV2lsZGNhcmRQdHIgc3VwZXIpCit7CisgICAgLyoKKyAgICAqIDEgc3VwZXIgbXVzdCBiZSBhbnkuCisgICAgKi8KKyAgICBpZiAoc3VwZXItPmFueSkKKwlyZXR1cm4gKDApOworICAgIC8qCisgICAgKiAyLjEgc3ViIG11c3QgYmUgYSBwYWlyIG9mIG5vdCBhbmQgYSBuYW1lc3BhY2UgbmFtZSBvciDvv71hYnNlbnTvv70uCisgICAgKiAyLjIgc3VwZXIgbXVzdCBiZSBhIHBhaXIgb2Ygbm90IGFuZCB0aGUgc2FtZSB2YWx1ZS4KKyAgICAqLworICAgIGlmICgoc3ViLT5uZWdOc1NldCAhPSBOVUxMKSAmJgorCShzdXBlci0+bmVnTnNTZXQgIT0gTlVMTCkgJiYKKwkoc3ViLT5uZWdOc1NldC0+dmFsdWUgPT0gc3ViLT5uZWdOc1NldC0+dmFsdWUpKQorCXJldHVybiAoMCk7CisgICAgLyoKKyAgICAqIDMuMSBzdWIgbXVzdCBiZSBhIHNldCB3aG9zZSBtZW1iZXJzIGFyZSBlaXRoZXIgbmFtZXNwYWNlIG5hbWVzIG9yIO+/vWFic2VudO+/vS4KKyAgICAqLworICAgIGlmIChzdWItPm5zU2V0ICE9IE5VTEwpIHsKKwkvKgorCSogMy4yLjEgc3VwZXIgbXVzdCBiZSB0aGUgc2FtZSBzZXQgb3IgYSBzdXBlcnNldCB0aGVyZW9mLgorCSovCisJaWYgKHN1cGVyLT5uc1NldCAhPSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVdpbGRjYXJkTnNQdHIgY3VyLCBjdXJCOworCSAgICBpbnQgZm91bmQgPSAwOworCisJICAgIGN1ciA9IHN1Yi0+bnNTZXQ7CisJICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCQlmb3VuZCA9IDA7CisJCWN1ckIgPSBzdXBlci0+bnNTZXQ7CisJCXdoaWxlIChjdXJCICE9IE5VTEwpIHsKKwkJICAgIGlmIChjdXItPnZhbHVlID09IGN1ckItPnZhbHVlKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGN1ckIgPSBjdXJCLT5uZXh0OworCQl9CisJCWlmICghZm91bmQpCisJCSAgICByZXR1cm4gKDEpOworCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKwkgICAgaWYgKGZvdW5kKQorCQlyZXR1cm4gKDApOworCX0gZWxzZSBpZiAoc3VwZXItPm5lZ05zU2V0ICE9IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hV2lsZGNhcmROc1B0ciBjdXI7CisJICAgIC8qCisJICAgICogMy4yLjIgc3VwZXIgbXVzdCBiZSBhIHBhaXIgb2Ygbm90IGFuZCBhIG5hbWVzcGFjZSBuYW1lIG9yCisJICAgICog77+9YWJzZW5077+9IGFuZCB0aGF0IHZhbHVlIG11c3Qgbm90IGJlIGluIHN1YidzIHNldC4KKwkgICAgKi8KKwkgICAgY3VyID0gc3ViLT5uc1NldDsKKwkgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCWlmIChjdXItPnZhbHVlID09IHN1cGVyLT5uZWdOc1NldC0+dmFsdWUpCisJCSAgICByZXR1cm4gKDEpOworCQljdXIgPSBjdXItPm5leHQ7CisJICAgIH0KKwkgICAgcmV0dXJuICgwKTsKKwl9CisgICAgfQorICAgIHJldHVybiAoMSk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUdldEVmZmVjdGl2ZVZhbHVlQ29uc3RyYWludCh4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgYXR0cnVzZSwKKwkJCQkgICAgIGludCAqZml4ZWQsCisJCQkJICAgICBjb25zdCB4bWxDaGFyICoqdmFsdWUsCisJCQkJICAgICB4bWxTY2hlbWFWYWxQdHIgKnZhbCkKK3sKKyAgICAqZml4ZWQgPSAwOworICAgICp2YWx1ZSA9IE5VTEw7CisgICAgaWYgKHZhbCAhPSAwKQorCSp2YWwgPSBOVUxMOworCisgICAgaWYgKGF0dHJ1c2UtPmRlZlZhbHVlICE9IE5VTEwpIHsKKwkqdmFsdWUgPSBhdHRydXNlLT5kZWZWYWx1ZTsKKwlpZiAodmFsICE9IE5VTEwpCisJICAgICp2YWwgPSBhdHRydXNlLT5kZWZWYWw7CisJaWYgKGF0dHJ1c2UtPmZsYWdzICYgWE1MX1NDSEVNQV9BVFRSX1VTRV9GSVhFRCkKKwkgICAgKmZpeGVkID0gMTsKKwlyZXR1cm4oMSk7CisgICAgfSBlbHNlIGlmICgoYXR0cnVzZS0+YXR0ckRlY2wgIT0gTlVMTCkgJiYKKwkoYXR0cnVzZS0+YXR0ckRlY2wtPmRlZlZhbHVlICE9IE5VTEwpKSB7CisJKnZhbHVlID0gYXR0cnVzZS0+YXR0ckRlY2wtPmRlZlZhbHVlOworCWlmICh2YWwgIT0gTlVMTCkKKwkgICAgKnZhbCA9IGF0dHJ1c2UtPmF0dHJEZWNsLT5kZWZWYWw7CisJaWYgKGF0dHJ1c2UtPmF0dHJEZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0FUVFJfRklYRUQpCisJICAgICpmaXhlZCA9IDE7CisJcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisvKioKKyAqIHhtbFNjaGVtYUNoZWNrQ1ZDV2lsZGNhcmROYW1lc3BhY2U6CisgKiBAd2lsZDogIHRoZSB3aWxkY2FyZAorICogQG5zOiAgdGhlIG5hbWVzcGFjZQorICoKKyAqIFZhbGlkYXRpb24gUnVsZTogV2lsZGNhcmQgYWxsb3dzIE5hbWVzcGFjZSBOYW1lCisgKiAoY3ZjLXdpbGRjYXJkLW5hbWVzcGFjZSkKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGdpdmVuIG5hbWVzcGFjZSBtYXRjaGVzIHRoZSB3aWxkY2FyZCwKKyAqIDEgb3RoZXJ3aXNlIGFuZCAtMSBvbiBBUEkgZXJyb3JzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NWQ1dpbGRjYXJkTmFtZXNwYWNlKHhtbFNjaGVtYVdpbGRjYXJkUHRyIHdpbGQsCisJCQkJICAgY29uc3QgeG1sQ2hhciogbnMpCit7CisgICAgaWYgKHdpbGQgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKHdpbGQtPmFueSkKKwlyZXR1cm4oMCk7CisgICAgZWxzZSBpZiAod2lsZC0+bnNTZXQgIT0gTlVMTCkgeworCXhtbFNjaGVtYVdpbGRjYXJkTnNQdHIgY3VyOworCisJY3VyID0gd2lsZC0+bnNTZXQ7CisJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChjdXItPnZhbHVlLCBucykpCisJCXJldHVybigwKTsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCX0KKyAgICB9IGVsc2UgaWYgKCh3aWxkLT5uZWdOc1NldCAhPSBOVUxMKSAmJiAobnMgIT0gTlVMTCkgJiYKKwkoIXhtbFN0ckVxdWFsKHdpbGQtPm5lZ05zU2V0LT52YWx1ZSwgbnMpKSkKKwlyZXR1cm4oMCk7CisKKyAgICByZXR1cm4oMSk7Cit9CisKKyNkZWZpbmUgWE1MX1NDSEVNQV9BQ1RJT05fREVSSVZFIDAKKyNkZWZpbmUgWE1MX1NDSEVNQV9BQ1RJT05fUkVERUZJTkUgMQorCisjZGVmaW5lIFdYU19BQ1RJT05fU1RSKGEpIFwKKygoYSkgPT0gWE1MX1NDSEVNQV9BQ1RJT05fREVSSVZFKSA/IChjb25zdCB4bWxDaGFyICopICJiYXNlIiA6IChjb25zdCB4bWxDaGFyICopICJyZWRlZmluZWQiCisKKy8qCisqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyogICBEZXJpdmF0aW9uIFZhbGlkIChSZXN0cmljdGlvbiwgQ29tcGxleCkKKyogICBkZXJpdmF0aW9uLW9rLXJlc3RyaWN0aW9uICgyKSAtICg0KQorKgorKiBBVFRFTlRJT046CisqIEluIFhNTCBTY2hlbWEgMS4xIHRoaXMgd2lsbCBiZToKKyogVmFsaWRhdGlvbiBSdWxlOgorKiAgICAgQ2hlY2tpbmcgY29tcGxleCB0eXBlIHN1YnN1bXB0aW9uIChwcmFjdGljYWxTdWJzdW1wdGlvbikgKDEsIDIgYW5kIDMpCisqCisqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tEZXJpdmF0aW9uT0tSZXN0cmljdGlvbjJ0bzQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCQkgICAgICAgaW50IGFjdGlvbiwKKwkJCQkgICAgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGl0ZW0sCisJCQkJICAgICAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBiYXNlSXRlbSwKKwkJCQkgICAgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgdXNlcywKKwkJCQkgICAgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgYmFzZVVzZXMsCisJCQkJICAgICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIHdpbGQsCisJCQkJICAgICAgIHhtbFNjaGVtYVdpbGRjYXJkUHRyIGJhc2VXaWxkKQoreworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciBjdXIgPSBOVUxMLCBiY3VyOworICAgIGludCBpLCBqLCBmb3VuZDsgLyogZXJyID0gMDsgKi8KKyAgICBjb25zdCB4bWxDaGFyICpiRWZmVmFsdWU7CisgICAgaW50IGVmZkZpeGVkOworCisgICAgaWYgKHVzZXMgIT0gTlVMTCkgeworCWZvciAoaSA9IDA7IGkgPCB1c2VzLT5uYkl0ZW1zOyBpKyspIHsKKwkgICAgY3VyID0gdXNlcy0+aXRlbXNbaV07CisJICAgIGZvdW5kID0gMDsKKwkgICAgaWYgKGJhc2VVc2VzID09IE5VTEwpCisJCWdvdG8gbm90X2ZvdW5kOworCSAgICBmb3IgKGogPSAwOyBqIDwgYmFzZVVzZXMtPm5iSXRlbXM7IGorKykgeworCQliY3VyID0gYmFzZVVzZXMtPml0ZW1zW2pdOworCQlpZiAoKFdYU19BVFRSVVNFX0RFQ0xfTkFNRShjdXIpID09CisJCQlXWFNfQVRUUlVTRV9ERUNMX05BTUUoYmN1cikpICYmCisJCSAgICAoV1hTX0FUVFJVU0VfREVDTF9UTlMoY3VyKSA9PQorCQkJV1hTX0FUVFJVU0VfREVDTF9UTlMoYmN1cikpKQorCQl7CisJCSAgICAvKgorCQkgICAgKiAoMi4xKSAiSWYgdGhlcmUgaXMgYW4gYXR0cmlidXRlIHVzZSBpbiB0aGUge2F0dHJpYnV0ZQorCQkgICAgKiB1c2VzfSBvZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSAoY2FsbCB0aGlzIEIpIHdob3NlCisJCSAgICAqIHthdHRyaWJ1dGUgZGVjbGFyYXRpb259IGhhcyB0aGUgc2FtZSB7bmFtZX0gYW5kIHt0YXJnZXQKKwkJICAgICogbmFtZXNwYWNlfSwgdGhlbiAgYWxsIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiIKKwkJICAgICovCisJCSAgICBmb3VuZCA9IDE7CisKKwkJICAgIGlmICgoY3VyLT5vY2N1cnMgPT0gWE1MX1NDSEVNQVNfQVRUUl9VU0VfT1BUSU9OQUwpICYmCisJCQkoYmN1ci0+b2NjdXJzID09IFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEKSkKKwkJICAgIHsKKwkJCXhtbENoYXIgKnN0ciA9IE5VTEw7CisJCQkvKgorCQkJKiAoMi4xLjEpICJvbmUgb2YgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHRydWU6IgorCQkJKiAoMi4xLjEuMSkgIkIncyB7cmVxdWlyZWR9IGlzIGZhbHNlLiIKKwkJCSogKDIuMS4xLjIpICJSJ3Mge3JlcXVpcmVkfSBpcyB0cnVlLiIKKwkJCSovCisJCQl4bWxTY2hlbWFQQXR0clVzZUVycjQocGN0eHQsCisJCQkgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMSwKKwkJCSAgICBXWFNfSVRFTV9OT0RFKGl0ZW0pLCBpdGVtLCBjdXIsCisJCQkgICAgIlRoZSAnb3B0aW9uYWwnIGF0dHJpYnV0ZSB1c2UgaXMgaW5jb25zaXN0ZW50ICIKKwkJCSAgICAid2l0aCB0aGUgY29ycmVzcG9uZGluZyAncmVxdWlyZWQnIGF0dHJpYnV0ZSB1c2Ugb2YgIgorCQkJICAgICJ0aGUgJXMgJXMiLAorCQkJICAgIFdYU19BQ1RJT05fU1RSKGFjdGlvbiksCisJCQkgICAgeG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oJnN0ciwgYmFzZUl0ZW0pLAorCQkJICAgIE5VTEwsIE5VTEwpOworCQkJRlJFRV9BTkRfTlVMTChzdHIpOworCQkJLyogZXJyID0gcGN0eHQtPmVycjsgKi8KKwkJICAgIH0gZWxzZSBpZiAoeG1sU2NoZW1hQ2hlY2tDT1NTVERlcml2ZWRPSyhBQ1RYVF9DQVNUIHBjdHh0LAorCQkJV1hTX0FUVFJVU0VfVFlQRURFRihjdXIpLAorCQkJV1hTX0FUVFJVU0VfVFlQRURFRihiY3VyKSwgMCkgIT0gMCkKKwkJICAgIHsKKwkJCXhtbENoYXIgKnN0ckEgPSBOVUxMLCAqc3RyQiA9IE5VTEwsICpzdHJDID0gTlVMTDsKKworCQkJLyoKKwkJCSogU1BFQyAoMi4xLjIpICJSJ3Mge2F0dHJpYnV0ZSBkZWNsYXJhdGlvbn0ncworCQkJKiB7dHlwZSBkZWZpbml0aW9ufSBtdXN0IGJlIHZhbGlkbHkgZGVyaXZlZCBmcm9tCisJCQkqIEIncyB7dHlwZSBkZWZpbml0aW9ufSBnaXZlbiB0aGUgZW1wdHkgc2V0IGFzCisJCQkqIGRlZmluZWQgaW4gVHlwZSBEZXJpdmF0aW9uIE9LIChTaW1wbGUpICjvv70zLjE0LjYpLiIKKwkJCSovCisJCQl4bWxTY2hlbWFQQXR0clVzZUVycjQocGN0eHQsCisJCQkgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8yXzFfMiwKKwkJCSAgICBXWFNfSVRFTV9OT0RFKGl0ZW0pLCBpdGVtLCBjdXIsCisJCQkgICAgIlRoZSBhdHRyaWJ1dGUgZGVjbGFyYXRpb24ncyAlcyAiCisJCQkgICAgImlzIG5vdCB2YWxpZGx5IGRlcml2ZWQgZnJvbSAiCisJCQkgICAgInRoZSBjb3JyZXNwb25kaW5nICVzIG9mIHRoZSAiCisJCQkgICAgImF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBpbiB0aGUgJXMgJXMiLAorCQkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudERlc2lnbmF0aW9uKCZzdHJBLAorCQkJCVdYU19BVFRSVVNFX1RZUEVERUYoY3VyKSksCisJCQkgICAgeG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oJnN0ckIsCisJCQkJV1hTX0FUVFJVU0VfVFlQRURFRihiY3VyKSksCisJCQkgICAgV1hTX0FDVElPTl9TVFIoYWN0aW9uKSwKKwkJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyQywgYmFzZUl0ZW0pKTsKKwkJCSAgICAvKiB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyLCBiYXNlSXRlbSksICovCisJCQlGUkVFX0FORF9OVUxMKHN0ckEpOworCQkJRlJFRV9BTkRfTlVMTChzdHJCKTsKKwkJCUZSRUVfQU5EX05VTEwoc3RyQyk7CisJCQkvKiBlcnIgPSBwY3R4dC0+ZXJyOyAqLworCQkgICAgfSBlbHNlIHsKKwkJCS8qCisJCQkqIDIuMS4zIFtEZWZpbml0aW9uOl0gIExldCB0aGUgZWZmZWN0aXZlIHZhbHVlCisJCQkqIGNvbnN0cmFpbnQgb2YgYW4gYXR0cmlidXRlIHVzZSBiZSBpdHMge3ZhbHVlCisJCQkqIGNvbnN0cmFpbnR9LCBpZiBwcmVzZW50LCBvdGhlcndpc2UgaXRzIHthdHRyaWJ1dGUKKwkJCSogZGVjbGFyYXRpb259J3Mge3ZhbHVlIGNvbnN0cmFpbnR9IC4KKwkJCSovCisJCQl4bWxTY2hlbWFHZXRFZmZlY3RpdmVWYWx1ZUNvbnN0cmFpbnQoYmN1ciwKKwkJCSAgICAmZWZmRml4ZWQsICZiRWZmVmFsdWUsIE5VTEwpOworCQkJLyoKKwkJCSogMi4xLjMgLi4uIG9uZSBvZiB0aGUgZm9sbG93aW5nIG11c3QgYmUgdHJ1ZQorCQkJKgorCQkJKiAyLjEuMy4xIEIncyDvv71lZmZlY3RpdmUgdmFsdWUgY29uc3RyYWludO+/vSBpcworCQkJKiDvv71hYnNlbnTvv70gb3IgZGVmYXVsdC4KKwkJCSovCisJCQlpZiAoKGJFZmZWYWx1ZSAhPSBOVUxMKSAmJgorCQkJICAgIChlZmZGaXhlZCA9PSAxKSkgeworCQkJICAgIGNvbnN0IHhtbENoYXIgKnJFZmZWYWx1ZSA9IE5VTEw7CisKKwkJCSAgICB4bWxTY2hlbWFHZXRFZmZlY3RpdmVWYWx1ZUNvbnN0cmFpbnQoYmN1ciwKKwkJCQkmZWZmRml4ZWQsICZyRWZmVmFsdWUsIE5VTEwpOworCQkJICAgIC8qCisJCQkgICAgKiAyLjEuMy4yIFIncyDvv71lZmZlY3RpdmUgdmFsdWUgY29uc3RyYWludO+/vSBpcworCQkJICAgICogZml4ZWQgd2l0aCB0aGUgc2FtZSBzdHJpbmcgYXMgQidzLgorCQkJICAgICogTUFZQkUgVE9ETzogQ29tcGFyZSB0aGUgY29tcHV0ZWQgdmFsdWVzLgorCQkJICAgICogICAgICAgSG1tLCBpdCBzYXlzICJzYW1lIHN0cmluZyIgc28KKwkJCSAgICAqICAgICAgIHN0cmluZy1lcXVhbGl0eSBtaWdodCByZWFsbHkgYmUgc3VmZmljaWVudC4KKwkJCSAgICAqLworCQkJICAgIGlmICgoZWZmRml4ZWQgPT0gMCkgfHwKKwkJCQkoISBXWFNfQVJFX0RFRkFVTFRfU1RSX0VRVUFMKHJFZmZWYWx1ZSwgYkVmZlZhbHVlKSkpCisJCQkgICAgeworCQkJCXhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwkJCQl4bWxTY2hlbWFQQXR0clVzZUVycjQocGN0eHQsCisJCQkJICAgIFhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8xXzMsCisJCQkJICAgIFdYU19JVEVNX05PREUoaXRlbSksIGl0ZW0sIGN1ciwKKwkJCQkgICAgIlRoZSBlZmZlY3RpdmUgdmFsdWUgY29uc3RyYWludCBvZiB0aGUgIgorCQkJCSAgICAiYXR0cmlidXRlIHVzZSBpcyBpbmNvbnNpc3RlbnQgd2l0aCAiCisJCQkJICAgICJpdHMgY29ycmVzcG9uZGVudCBpbiB0aGUgJXMgJXMiLAorCQkJCSAgICBXWFNfQUNUSU9OX1NUUihhY3Rpb24pLAorCQkJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyLAorCQkJCQliYXNlSXRlbSksCisJCQkJICAgIE5VTEwsIE5VTEwpOworCQkJCUZSRUVfQU5EX05VTEwoc3RyKTsKKwkJCQkvKiBlcnIgPSBwY3R4dC0+ZXJyOyAqLworCQkJICAgIH0KKwkJCX0KKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0KK25vdF9mb3VuZDoKKwkgICAgaWYgKCFmb3VuZCkgeworCQkvKgorCQkqICgyLjIpICJvdGhlcndpc2UgdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gbXVzdCBoYXZlIGFuCisJCSoge2F0dHJpYnV0ZSB3aWxkY2FyZH0gYW5kIHRoZSB7dGFyZ2V0IG5hbWVzcGFjZX0gb2YgdGhlCisJCSogUidzIHthdHRyaWJ1dGUgZGVjbGFyYXRpb259IG11c3QgYmUg77+9dmFsaWTvv70gd2l0aCByZXNwZWN0CisJCSogdG8gdGhhdCB3aWxkY2FyZCwgYXMgZGVmaW5lZCBpbiBXaWxkY2FyZCBhbGxvd3MgTmFtZXNwYWNlCisJCSogTmFtZSAo77+9My4xMC40KS4iCisJCSovCisJCWlmICgoYmFzZVdpbGQgPT0gTlVMTCkgfHwKKwkJICAgICh4bWxTY2hlbWFDaGVja0NWQ1dpbGRjYXJkTmFtZXNwYWNlKGJhc2VXaWxkLAorCQkgICAgKFdYU19BVFRSVVNFX0RFQ0woY3VyKSktPnRhcmdldE5hbWVzcGFjZSkgIT0gMCkpCisJCXsKKwkJICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwkJICAgIHhtbFNjaGVtYVBBdHRyVXNlRXJyNChwY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX0RFUklWQVRJT05fT0tfUkVTVFJJQ1RJT05fMl8yLAorCQkJV1hTX0lURU1fTk9ERShpdGVtKSwgaXRlbSwgY3VyLAorCQkJIk5laXRoZXIgYSBtYXRjaGluZyBhdHRyaWJ1dGUgdXNlLCAiCisJCQkibm9yIGEgbWF0Y2hpbmcgd2lsZGNhcmQgZXhpc3RzIGluIHRoZSAlcyAlcyIsCisJCQlXWFNfQUNUSU9OX1NUUihhY3Rpb24pLAorCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oJnN0ciwgYmFzZUl0ZW0pLAorCQkJTlVMTCwgTlVMTCk7CisJCSAgICBGUkVFX0FORF9OVUxMKHN0cik7CisJCSAgICAvKiBlcnIgPSBwY3R4dC0+ZXJyOyAqLworCQl9CisJICAgIH0KKwl9CisgICAgfQorICAgIC8qCisgICAgKiBTUEVDIGRlcml2YXRpb24tb2stcmVzdHJpY3Rpb24gKDMpOgorICAgICogKDMpICJGb3IgZWFjaCBhdHRyaWJ1dGUgdXNlIGluIHRoZSB7YXR0cmlidXRlIHVzZXN9IG9mIHRoZSB7YmFzZSB0eXBlCisgICAgKiBkZWZpbml0aW9ufSB3aG9zZSB7cmVxdWlyZWR9IGlzIHRydWUsIHRoZXJlIG11c3QgYmUgYW4gYXR0cmlidXRlCisgICAgKiB1c2Ugd2l0aCBhbiB7YXR0cmlidXRlIGRlY2xhcmF0aW9ufSB3aXRoIHRoZSBzYW1lIHtuYW1lfSBhbmQKKyAgICAqIHt0YXJnZXQgbmFtZXNwYWNlfSBhcyBpdHMge2F0dHJpYnV0ZSBkZWNsYXJhdGlvbn0gaW4gdGhlIHthdHRyaWJ1dGUKKyAgICAqIHVzZXN9IG9mIHRoZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbiBpdHNlbGYgd2hvc2Uge3JlcXVpcmVkfSBpcyB0cnVlLgorICAgICovCisgICAgaWYgKGJhc2VVc2VzICE9IE5VTEwpIHsKKwlmb3IgKGogPSAwOyBqIDwgYmFzZVVzZXMtPm5iSXRlbXM7IGorKykgeworCSAgICBiY3VyID0gYmFzZVVzZXMtPml0ZW1zW2pdOworCSAgICBpZiAoYmN1ci0+b2NjdXJzICE9IFhNTF9TQ0hFTUFTX0FUVFJfVVNFX1JFUVVJUkVEKQorCQljb250aW51ZTsKKwkgICAgZm91bmQgPSAwOworCSAgICBpZiAodXNlcyAhPSBOVUxMKSB7CisJCWZvciAoaSA9IDA7IGkgPCB1c2VzLT5uYkl0ZW1zOyBpKyspIHsKKwkJICAgIGN1ciA9IHVzZXMtPml0ZW1zW2ldOworCQkgICAgaWYgKChXWFNfQVRUUlVTRV9ERUNMX05BTUUoY3VyKSA9PQorCQkJV1hTX0FUVFJVU0VfREVDTF9OQU1FKGJjdXIpKSAmJgorCQkJKFdYU19BVFRSVVNFX0RFQ0xfVE5TKGN1cikgPT0KKwkJCVdYU19BVFRSVVNFX0RFQ0xfVE5TKGJjdXIpKSkgeworCQkJZm91bmQgPSAxOworCQkJYnJlYWs7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBpZiAoIWZvdW5kKSB7CisJCXhtbENoYXIgKnN0ckEgPSBOVUxMLCAqc3RyQiA9IE5VTEw7CisKKwkJeG1sU2NoZW1hQ3VzdG9tRXJyNChBQ1RYVF9DQVNUIHBjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8zLAorCQkgICAgTlVMTCwgaXRlbSwKKwkJICAgICJBIG1hdGNoaW5nIGF0dHJpYnV0ZSB1c2UgZm9yIHRoZSAiCisJCSAgICAiJ3JlcXVpcmVkJyAlcyBvZiB0aGUgJXMgJXMgaXMgbWlzc2luZyIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyQSwgYmN1ciksCisJCSAgICBXWFNfQUNUSU9OX1NUUihhY3Rpb24pLAorCQkgICAgeG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oJnN0ckIsIGJhc2VJdGVtKSwKKwkJICAgIE5VTEwpOworCQlGUkVFX0FORF9OVUxMKHN0ckEpOworCQlGUkVFX0FORF9OVUxMKHN0ckIpOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKgorICAgICogZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbiAoNCkKKyAgICAqLworICAgIGlmICh3aWxkICE9IE5VTEwpIHsKKwkvKgorCSogKDQpICJJZiB0aGVyZSBpcyBhbiB7YXR0cmlidXRlIHdpbGRjYXJkfSwgYWxsIG9mIHRoZQorCSogZm9sbG93aW5nIG11c3QgYmUgdHJ1ZToiCisJKi8KKwlpZiAoYmFzZVdpbGQgPT0gTlVMTCkgeworCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCisJICAgIC8qCisJICAgICogKDQuMSkgIlRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IG11c3QgYWxzbyBoYXZlIG9uZS4iCisJICAgICovCisJICAgIHhtbFNjaGVtYUN1c3RvbUVycjQoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzEsCisJCU5VTEwsIGl0ZW0sCisJCSJUaGUgJXMgaGFzIGFuIGF0dHJpYnV0ZSB3aWxkY2FyZCwgIgorCQkiYnV0IHRoZSAlcyAlcyAnJXMnIGRvZXMgbm90IGhhdmUgb25lIiwKKwkJV1hTX0lURU1fVFlQRV9OQU1FKGl0ZW0pLAorCQlXWFNfQUNUSU9OX1NUUihhY3Rpb24pLAorCQlXWFNfSVRFTV9UWVBFX05BTUUoYmFzZUl0ZW0pLAorCQl4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCBiYXNlSXRlbSkpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cik7CisJICAgIHJldHVybihwY3R4dC0+ZXJyKTsKKwl9IGVsc2UgaWYgKChiYXNlV2lsZC0+YW55ID09IDApICYmCisJCXhtbFNjaGVtYUNoZWNrQ09TTlNTdWJzZXQod2lsZCwgYmFzZVdpbGQpKQorCXsKKwkgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKwkgICAgLyoKKwkgICAgKiAoNC4yKSAiVGhlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uJ3Mge2F0dHJpYnV0ZSB3aWxkY2FyZH0ncworCSAgICAqIHtuYW1lc3BhY2UgY29uc3RyYWludH0gbXVzdCBiZSBhIHN1YnNldCBvZiB0aGUge2Jhc2UgdHlwZQorCSAgICAqIGRlZmluaXRpb259J3Mge2F0dHJpYnV0ZSB3aWxkY2FyZH0ncyB7bmFtZXNwYWNlIGNvbnN0cmFpbnR9LAorCSAgICAqIGFzIGRlZmluZWQgYnkgV2lsZGNhcmQgU3Vic2V0ICjvv70zLjEwLjYpLiIKKwkgICAgKi8KKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyNChBQ1RYVF9DQVNUIHBjdHh0LAorCQlYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzRfMiwKKwkJTlVMTCwgaXRlbSwKKwkJIlRoZSBhdHRyaWJ1dGUgd2lsZGNhcmQgaXMgbm90IGEgdmFsaWQgIgorCQkic3Vic2V0IG9mIHRoZSB3aWxkY2FyZCBpbiB0aGUgJXMgJXMgJyVzJyIsCisJCVdYU19BQ1RJT05fU1RSKGFjdGlvbiksCisJCVdYU19JVEVNX1RZUEVfTkFNRShiYXNlSXRlbSksCisJCXhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHIsIGJhc2VJdGVtKSwKKwkJTlVMTCk7CisJICAgIEZSRUVfQU5EX05VTEwoc3RyKTsKKwkgICAgcmV0dXJuKHBjdHh0LT5lcnIpOworCX0KKwkvKiA0LjMgVW5sZXNzIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IGlzIHRoZSDvv711ci10eXBlCisJKiBkZWZpbml0aW9u77+9LCB0aGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24ncyB7YXR0cmlidXRlCisJKiB3aWxkY2FyZH0ncyB7cHJvY2VzcyBjb250ZW50c30gbXVzdCBiZSBpZGVudGljYWwgdG8gb3IKKwkqIHN0cm9uZ2VyIHRoYW4gdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0ncyB7YXR0cmlidXRlCisJKiB3aWxkY2FyZH0ncyB7cHJvY2VzcyBjb250ZW50c30sIHdoZXJlIHN0cmljdCBpcyBzdHJvbmdlcgorCSogdGhhbiBsYXggaXMgc3Ryb25nZXIgdGhhbiBza2lwLgorCSovCisJaWYgKCghIFdYU19JU19BTllUWVBFKGJhc2VJdGVtKSkgJiYKKwkgICAgKHdpbGQtPnByb2Nlc3NDb250ZW50cyA8IGJhc2VXaWxkLT5wcm9jZXNzQ29udGVudHMpKSB7CisJICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisJICAgIHhtbFNjaGVtYUN1c3RvbUVycjQoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl80XzMsCisJCU5VTEwsIGJhc2VJdGVtLAorCQkiVGhlIHtwcm9jZXNzIGNvbnRlbnRzfSBvZiB0aGUgYXR0cmlidXRlIHdpbGRjYXJkIGlzICIKKwkJIndlYWtlciB0aGFuIHRoZSBvbmUgaW4gdGhlICVzICVzICclcyciLAorCQlXWFNfQUNUSU9OX1NUUihhY3Rpb24pLAorCQlXWFNfSVRFTV9UWVBFX05BTUUoYmFzZUl0ZW0pLAorCQl4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCBiYXNlSXRlbSksCisJCU5VTEwpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwkJcmV0dXJuKHBjdHh0LT5lcnIpOworCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUV4cGFuZEF0dHJpYnV0ZUdyb3VwUmVmcyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCSAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGl0ZW0sCisJCQkJICB4bWxTY2hlbWFXaWxkY2FyZFB0ciAqY29tcGxldGVXaWxkLAorCQkJCSAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgbGlzdCwKKwkJCQkgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIHByb2hpYnMpOworLyoqCisgKiB4bWxTY2hlbWFGaXh1cFR5cGVBdHRyaWJ1dGVVc2VzOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAdHlwZTogIHRoZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbgorICoKKyAqCisgKiBCdWlsZHMgdGhlIHdpbGRjYXJkIGFuZCB0aGUgYXR0cmlidXRlIHVzZXMgb24gdGhlIGdpdmVuIGNvbXBsZXggdHlwZS4KKyAqIFJldHVybnMgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJzLCAwIG90aGVyd2lzZS4KKyAqCisgKiBBVFRFTlRJT04gVE9ETzogRXhwZXJpbWFudGFsbHkgdGhpcyB1c2VzIHBvaW50ZXIgY29tcGFyaXNvbnMgZm9yCisgKiBzdHJpbmdzLCBzbyByZWNoZWNrIHRoaXMgaWYgd2Ugc3RhcnQgdG8gaGFyZGNvZGUgc29tZSBzY2hlbWF0YSwgc2luY2UKKyAqIHRoZXkgbWlnaHQgbm90IGJlIGluIHRoZSBzYW1lIGRpY3QuCisgKiBOT1RFOiBJdCBpcyBhbGxvd2VkIHRvICJleHRlbmQiIHRoZSB4czphbnlUeXBlIHR5cGUuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUZpeHVwVHlwZUF0dHJpYnV0ZVVzZXMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCQkgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIGJhc2VUeXBlID0gTlVMTDsKKyAgICB4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgdXNlOworICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIHVzZXMsIGJhc2VVc2VzLCBwcm9oaWJzID0gTlVMTDsKKworICAgIGlmICh0eXBlLT5iYXNlVHlwZSA9PSBOVUxMKSB7CisJUEVSUk9SX0lOVCgieG1sU2NoZW1hRml4dXBUeXBlQXR0cmlidXRlVXNlcyIsCisJICAgICJubyBiYXNlIHR5cGUiKTsKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgfQorICAgIGJhc2VUeXBlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRChiYXNlVHlwZSkpCisJaWYgKHhtbFNjaGVtYVR5cGVGaXh1cChiYXNlVHlwZSwgQUNUWFRfQ0FTVCBwY3R4dCkgPT0gLTEpCisJICAgIHJldHVybigtMSk7CisKKyAgICB1c2VzID0gdHlwZS0+YXR0clVzZXM7CisgICAgYmFzZVVzZXMgPSBiYXNlVHlwZS0+YXR0clVzZXM7CisgICAgLyoKKyAgICAqIEV4cGFuZCBhdHRyaWJ1dGUgZ3JvdXAgcmVmZXJlbmNlcy4gQW5kIGJ1aWxkIHRoZSAnY29tcGxldGUnCisgICAgKiB3aWxkY2FyZCwgaS5lLiBpbnRlcnNlY3QgbXVsdGlwbGUgd2lsZGNhcmRzLgorICAgICogTW92ZSBhdHRyaWJ1dGUgcHJvaGliaXRpb25zIGludG8gYSBzZXBhcmF0ZSBsaXN0LgorICAgICovCisgICAgaWYgKHVzZXMgIT0gTlVMTCkgeworCWlmIChXWFNfSVNfUkVTVFJJQ1RJT04odHlwZSkpIHsKKwkgICAgLyoKKwkgICAgKiBUaGlzIG9uZSB3aWxsIHRyYW5zZmVyIGFsbCBhdHRyLiBwcm9oaWJpdGlvbnMKKwkgICAgKiBpbnRvIHBjdHh0LT5hdHRyUHJvaGlicy4KKwkgICAgKi8KKwkgICAgaWYgKHhtbFNjaGVtYUV4cGFuZEF0dHJpYnV0ZUdyb3VwUmVmcyhwY3R4dCwKKwkJV1hTX0JBU0lDX0NBU1QgdHlwZSwgJih0eXBlLT5hdHRyaWJ1dGVXaWxkY2FyZCksIHVzZXMsCisJCXBjdHh0LT5hdHRyUHJvaGlicykgPT0gLTEpCisJICAgIHsKKwkJUEVSUk9SX0lOVCgieG1sU2NoZW1hRml4dXBUeXBlQXR0cmlidXRlVXNlcyIsCisJCSJmYWlsZWQgdG8gZXhwYW5kIGF0dHJpYnV0ZXMiKTsKKwkgICAgfQorCSAgICBpZiAocGN0eHQtPmF0dHJQcm9oaWJzLT5uYkl0ZW1zICE9IDApCisJCXByb2hpYnMgPSBwY3R4dC0+YXR0clByb2hpYnM7CisJfSBlbHNlIHsKKwkgICAgaWYgKHhtbFNjaGVtYUV4cGFuZEF0dHJpYnV0ZUdyb3VwUmVmcyhwY3R4dCwKKwkJV1hTX0JBU0lDX0NBU1QgdHlwZSwgJih0eXBlLT5hdHRyaWJ1dGVXaWxkY2FyZCksIHVzZXMsCisJCU5VTEwpID09IC0xKQorCSAgICB7CisJCVBFUlJPUl9JTlQoInhtbFNjaGVtYUZpeHVwVHlwZUF0dHJpYnV0ZVVzZXMiLAorCQkiZmFpbGVkIHRvIGV4cGFuZCBhdHRyaWJ1dGVzIik7CisJICAgIH0KKwl9CisgICAgfQorICAgIC8qCisgICAgKiBJbmhlcml0IHRoZSBhdHRyaWJ1dGUgdXNlcyBvZiB0aGUgYmFzZSB0eXBlLgorICAgICovCisgICAgaWYgKGJhc2VVc2VzICE9IE5VTEwpIHsKKwlpbnQgaSwgajsKKwl4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQcm9oaWJQdHIgcHJvOworCisJaWYgKFdYU19JU19SRVNUUklDVElPTih0eXBlKSkgeworCSAgICBpbnQgdXNlc0NvdW50OworCSAgICB4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgdG1wOworCisJICAgIGlmICh1c2VzICE9IE5VTEwpCisJCXVzZXNDb3VudCA9IHVzZXMtPm5iSXRlbXM7CisJICAgIGVsc2UKKwkJdXNlc0NvdW50ID0gMDsKKworCSAgICAvKiBSZXN0cmljdGlvbi4gKi8KKwkgICAgZm9yIChpID0gMDsgaSA8IGJhc2VVc2VzLT5uYkl0ZW1zOyBpKyspIHsKKwkJdXNlID0gYmFzZVVzZXMtPml0ZW1zW2ldOworCQlpZiAocHJvaGlicykgeworCQkgICAgLyoKKwkJICAgICogRmlsdGVyIG91dCBwcm9oaWJpdGVkIHVzZXMuCisJCSAgICAqLworCQkgICAgZm9yIChqID0gMDsgaiA8IHByb2hpYnMtPm5iSXRlbXM7IGorKykgeworCQkJcHJvID0gcHJvaGlicy0+aXRlbXNbal07CisJCQlpZiAoKFdYU19BVFRSVVNFX0RFQ0xfTkFNRSh1c2UpID09IHByby0+bmFtZSkgJiYKKwkJCSAgICAoV1hTX0FUVFJVU0VfREVDTF9UTlModXNlKSA9PQorCQkJCXByby0+dGFyZ2V0TmFtZXNwYWNlKSkKKwkJCXsKKwkJCSAgICBnb3RvIGluaGVyaXRfbmV4dDsKKwkJCX0KKwkJICAgIH0KKwkJfQorCQlpZiAodXNlc0NvdW50KSB7CisJCSAgICAvKgorCQkgICAgKiBGaWx0ZXIgb3V0IGV4aXN0aW5nIHVzZXMuCisJCSAgICAqLworCQkgICAgZm9yIChqID0gMDsgaiA8IHVzZXNDb3VudDsgaisrKSB7CisJCQl0bXAgPSB1c2VzLT5pdGVtc1tqXTsKKwkJCWlmICgoV1hTX0FUVFJVU0VfREVDTF9OQU1FKHVzZSkgPT0KKwkJCQlXWFNfQVRUUlVTRV9ERUNMX05BTUUodG1wKSkgJiYKKwkJCSAgICAoV1hTX0FUVFJVU0VfREVDTF9UTlModXNlKSA9PQorCQkJCVdYU19BVFRSVVNFX0RFQ0xfVE5TKHRtcCkpKQorCQkJeworCQkJICAgIGdvdG8gaW5oZXJpdF9uZXh0OworCQkJfQorCQkgICAgfQorCQl9CisJCWlmICh1c2VzID09IE5VTEwpIHsKKwkJICAgIHR5cGUtPmF0dHJVc2VzID0geG1sU2NoZW1hSXRlbUxpc3RDcmVhdGUoKTsKKwkJICAgIGlmICh0eXBlLT5hdHRyVXNlcyA9PSBOVUxMKQorCQkJZ290byBleGl0X2ZhaWx1cmU7CisJCSAgICB1c2VzID0gdHlwZS0+YXR0clVzZXM7CisJCX0KKwkJeG1sU2NoZW1hSXRlbUxpc3RBZGRTaXplKHVzZXMsIDIsIHVzZSk7Citpbmhlcml0X25leHQ6IHt9CisJICAgIH0KKwl9IGVsc2UgeworCSAgICAvKiBFeHRlbnNpb24uICovCisJICAgIGZvciAoaSA9IDA7IGkgPCBiYXNlVXNlcy0+bmJJdGVtczsgaSsrKSB7CisJCXVzZSA9IGJhc2VVc2VzLT5pdGVtc1tpXTsKKwkJaWYgKHVzZXMgPT0gTlVMTCkgeworCQkgICAgdHlwZS0+YXR0clVzZXMgPSB4bWxTY2hlbWFJdGVtTGlzdENyZWF0ZSgpOworCQkgICAgaWYgKHR5cGUtPmF0dHJVc2VzID09IE5VTEwpCisJCQlnb3RvIGV4aXRfZmFpbHVyZTsKKwkJICAgIHVzZXMgPSB0eXBlLT5hdHRyVXNlczsKKwkJfQorCQl4bWxTY2hlbWFJdGVtTGlzdEFkZFNpemUodXNlcywgYmFzZVVzZXMtPm5iSXRlbXMsIHVzZSk7CisJICAgIH0KKwl9CisgICAgfQorICAgIC8qCisgICAgKiBTaHJpbmsgYXR0ci4gdXNlcy4KKyAgICAqLworICAgIGlmICh1c2VzKSB7CisJaWYgKHVzZXMtPm5iSXRlbXMgPT0gMCkgeworCSAgICB4bWxTY2hlbWFJdGVtTGlzdEZyZWUodXNlcyk7CisJICAgIHR5cGUtPmF0dHJVc2VzID0gTlVMTDsKKwl9CisJLyoKKwkqIFRPRE86IFdlIGNvdWxkIHNocmluayB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkKKwkqIHRvIGZpdCB0aGUgYWN0dWFsIG51bWJlciBvZiBpdGVtcy4KKwkqLworICAgIH0KKyAgICAvKgorICAgICogQ29tcHV0ZSB0aGUgY29tcGxldGUgd2lsZGNhcmQuCisgICAgKi8KKyAgICBpZiAoV1hTX0lTX0VYVEVOU0lPTih0eXBlKSkgeworCWlmIChiYXNlVHlwZS0+YXR0cmlidXRlV2lsZGNhcmQgIT0gTlVMTCkgeworCSAgICAvKgorCSAgICAqICgzLjIuMi4xKSAiSWYgdGhlIO+/vWJhc2Ugd2lsZGNhcmTvv70gaXMgbm9uLe+/vWFic2VudO+/vSwgdGhlbgorCSAgICAqIHRoZSBhcHByb3ByaWF0ZSBjYXNlIGFtb25nIHRoZSBmb2xsb3dpbmc6IgorCSAgICAqLworCSAgICBpZiAodHlwZS0+YXR0cmlidXRlV2lsZGNhcmQgIT0gTlVMTCkgeworCQkvKgorCQkqIFVuaW9uIHRoZSBjb21wbGV0ZSB3aWxkY2FyZCB3aXRoIHRoZSBiYXNlIHdpbGRjYXJkLgorCQkqIFNQRUMge2F0dHJpYnV0ZSB3aWxkY2FyZH0KKwkJKiAoMy4yLjIuMS4yKSAib3RoZXJ3aXNlIGEgd2lsZGNhcmQgd2hvc2Uge3Byb2Nlc3MgY29udGVudHN9CisJCSogYW5kIHthbm5vdGF0aW9ufSBhcmUgdGhvc2Ugb2YgdGhlIO+/vWNvbXBsZXRlIHdpbGRjYXJk77+9LAorCQkqIGFuZCB3aG9zZSB7bmFtZXNwYWNlIGNvbnN0cmFpbnR9IGlzIHRoZSBpbnRlbnNpb25hbCB1bmlvbgorCQkqIG9mIHRoZSB7bmFtZXNwYWNlIGNvbnN0cmFpbnR9IG9mIHRoZSDvv71jb21wbGV0ZSB3aWxkY2FyZO+/vQorCQkqIGFuZCBvZiB0aGUg77+9YmFzZSB3aWxkY2FyZO+/vSwgYXMgZGVmaW5lZCBpbiBBdHRyaWJ1dGUKKwkJKiBXaWxkY2FyZCBVbmlvbiAo77+9My4xMC42KS4iCisJCSovCisJCWlmICh4bWxTY2hlbWFVbmlvbldpbGRjYXJkcyhwY3R4dCwgdHlwZS0+YXR0cmlidXRlV2lsZGNhcmQsCisJCSAgICBiYXNlVHlwZS0+YXR0cmlidXRlV2lsZGNhcmQpID09IC0xKQorCQkgICAgZ290byBleGl0X2ZhaWx1cmU7CisJICAgIH0gZWxzZSB7CisJCS8qCisJCSogKDMuMi4yLjEuMSkgIklmIHRoZSDvv71jb21wbGV0ZSB3aWxkY2FyZO+/vSBpcyDvv71hYnNlbnTvv70sCisJCSogdGhlbiB0aGUg77+9YmFzZSB3aWxkY2FyZO+/vS4iCisJCSovCisJCXR5cGUtPmF0dHJpYnV0ZVdpbGRjYXJkID0gYmFzZVR5cGUtPmF0dHJpYnV0ZVdpbGRjYXJkOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiAoMy4yLjIuMikgIm90aGVyd2lzZSAodGhlIO+/vWJhc2Ugd2lsZGNhcmTvv70gaXMg77+9YWJzZW5077+9KSB0aGUKKwkgICAgKiDvv71jb21wbGV0ZSB3aWxkY2FyZCIKKwkgICAgKiBOT09QCisJICAgICovCisJfQorICAgIH0gZWxzZSB7CisJLyoKKwkqIFNQRUMge2F0dHJpYnV0ZSB3aWxkY2FyZH0KKwkqICgzLjEpICJJZiB0aGUgPHJlc3RyaWN0aW9uPiBhbHRlcm5hdGl2ZSBpcyBjaG9zZW4sIHRoZW4gdGhlCisJKiDvv71jb21wbGV0ZSB3aWxkY2FyZO+/vTsiCisJKiBOT09QCisJKi8KKyAgICB9CisKKyAgICByZXR1cm4gKDApOworCitleGl0X2ZhaWx1cmU6CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFUeXBlRmluYWxDb250YWluczoKKyAqIEBzY2hlbWE6ICB0aGUgc2NoZW1hCisgKiBAdHlwZTogIHRoZSB0eXBlIGRlZmluaXRpb24KKyAqIEBmaW5hbDogdGhlIGZpbmFsCisgKgorICogRXZhbHVhdGVzIGlmIGEgdHlwZSBkZWZpbml0aW9uIGNvbnRhaW5zIHRoZSBnaXZlbiAiZmluYWwiLgorICogVGhpcyBkb2VzIHRha2UgImZpbmFsRGVmYXVsdCIgaW50byBhY2NvdW50IGFzIHdlbGwuCisgKgorICogUmV0dXJucyAxIGlmIHRoZSB0eXBlIGRvZXMgY29udGFpbnQgdGhlIGdpdmVuICJmaW5hbCIsCisgKiAwIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hVHlwZUZpbmFsQ29udGFpbnMoeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCBpbnQgZmluYWwpCit7CisgICAgaWYgKHR5cGUgPT0gTlVMTCkKKwlyZXR1cm4gKDApOworICAgIGlmICh0eXBlLT5mbGFncyAmIGZpbmFsKQorCXJldHVybiAoMSk7CisgICAgZWxzZQorCXJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hR2V0VW5pb25TaW1wbGVUeXBlTWVtYmVyVHlwZXM6CisgKiBAdHlwZTogIHRoZSBVbmlvbiBTaW1wbGUgVHlwZQorICoKKyAqIFJldHVybnMgYSBsaXN0IG9mIG1lbWJlciB0eXBlcyBvZiBAdHlwZSBpZiBleGlzdGluZywKKyAqIHJldHVybnMgTlVMTCBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFUeXBlTGlua1B0cgoreG1sU2NoZW1hR2V0VW5pb25TaW1wbGVUeXBlTWVtYmVyVHlwZXMoeG1sU2NoZW1hVHlwZVB0ciB0eXBlKQoreworICAgIHdoaWxlICgodHlwZSAhPSBOVUxMKSAmJiAodHlwZS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFKSkgeworCWlmICh0eXBlLT5tZW1iZXJUeXBlcyAhPSBOVUxMKQorCSAgICByZXR1cm4gKHR5cGUtPm1lbWJlclR5cGVzKTsKKwllbHNlCisJICAgIHR5cGUgPSB0eXBlLT5iYXNlVHlwZTsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFHZXRQYXJ0aWNsZVRvdGFsUmFuZ2VNaW46CisgKiBAcGFydGljbGU6IHRoZSBwYXJ0aWNsZQorICoKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogRWZmZWN0aXZlIFRvdGFsIFJhbmdlCisgKiAoYWxsIGFuZCBzZXF1ZW5jZSkgKyAoY2hvaWNlKQorICoKKyAqIFJldHVybnMgdGhlIG1pbmltdW4gRWZmZWN0aXZlIFRvdGFsIFJhbmdlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFHZXRQYXJ0aWNsZVRvdGFsUmFuZ2VNaW4oeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGUpCit7CisgICAgaWYgKChwYXJ0aWNsZS0+Y2hpbGRyZW4gPT0gTlVMTCkgfHwKKwkocGFydGljbGUtPm1pbk9jY3VycyA9PSAwKSkKKwlyZXR1cm4gKDApOworICAgIGlmIChwYXJ0aWNsZS0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0NIT0lDRSkgeworCWludCBtaW4gPSAtMSwgY3VyOworCXhtbFNjaGVtYVBhcnRpY2xlUHRyIHBhcnQgPQorCSAgICAoeG1sU2NoZW1hUGFydGljbGVQdHIpIHBhcnRpY2xlLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisKKwlpZiAocGFydCA9PSBOVUxMKQorCSAgICByZXR1cm4gKDApOworCXdoaWxlIChwYXJ0ICE9IE5VTEwpIHsKKwkgICAgaWYgKChwYXJ0LT5jaGlsZHJlbi0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVCkgfHwKKwkJKHBhcnQtPmNoaWxkcmVuLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BTlkpKQorCQljdXIgPSBwYXJ0LT5taW5PY2N1cnM7CisJICAgIGVsc2UKKwkJY3VyID0geG1sU2NoZW1hR2V0UGFydGljbGVUb3RhbFJhbmdlTWluKHBhcnQpOworCSAgICBpZiAoY3VyID09IDApCisJCXJldHVybiAoMCk7CisJICAgIGlmICgobWluID4gY3VyKSB8fCAobWluID09IC0xKSkKKwkJbWluID0gY3VyOworCSAgICBwYXJ0ID0gKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBwYXJ0LT5uZXh0OworCX0KKwlyZXR1cm4gKHBhcnRpY2xlLT5taW5PY2N1cnMgKiBtaW4pOworICAgIH0gZWxzZSB7CisJLyogPGFsbD4gYW5kIDxzZXF1ZW5jZT4gKi8KKwlpbnQgc3VtID0gMDsKKwl4bWxTY2hlbWFQYXJ0aWNsZVB0ciBwYXJ0ID0KKwkgICAgKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBwYXJ0aWNsZS0+Y2hpbGRyZW4tPmNoaWxkcmVuOworCisJaWYgKHBhcnQgPT0gTlVMTCkKKwkgICAgcmV0dXJuICgwKTsKKwlkbyB7CisJICAgIGlmICgocGFydC0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQpIHx8CisJCShwYXJ0LT5jaGlsZHJlbi0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQU5ZKSkKKwkJc3VtICs9IHBhcnQtPm1pbk9jY3VyczsKKwkgICAgZWxzZQorCQlzdW0gKz0geG1sU2NoZW1hR2V0UGFydGljbGVUb3RhbFJhbmdlTWluKHBhcnQpOworCSAgICBwYXJ0ID0gKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBwYXJ0LT5uZXh0OworCX0gd2hpbGUgKHBhcnQgIT0gTlVMTCk7CisJcmV0dXJuIChwYXJ0aWNsZS0+bWluT2NjdXJzICogc3VtKTsKKyAgICB9Cit9CisKKyNpZiAwCisvKioKKyAqIHhtbFNjaGVtYUdldFBhcnRpY2xlVG90YWxSYW5nZU1heDoKKyAqIEBwYXJ0aWNsZTogdGhlIHBhcnRpY2xlCisgKgorICogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OiBFZmZlY3RpdmUgVG90YWwgUmFuZ2UKKyAqIChhbGwgYW5kIHNlcXVlbmNlKSArIChjaG9pY2UpCisgKgorICogUmV0dXJucyB0aGUgbWF4aW11bSBFZmZlY3RpdmUgVG90YWwgUmFuZ2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUdldFBhcnRpY2xlVG90YWxSYW5nZU1heCh4bWxTY2hlbWFQYXJ0aWNsZVB0ciBwYXJ0aWNsZSkKK3sKKyAgICBpZiAoKHBhcnRpY2xlLT5jaGlsZHJlbiA9PSBOVUxMKSB8fAorCShwYXJ0aWNsZS0+Y2hpbGRyZW4tPmNoaWxkcmVuID09IE5VTEwpKQorCXJldHVybiAoMCk7CisgICAgaWYgKHBhcnRpY2xlLT5jaGlsZHJlbi0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFKSB7CisJaW50IG1heCA9IC0xLCBjdXI7CisJeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydCA9CisJICAgICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgcGFydGljbGUtPmNoaWxkcmVuLT5jaGlsZHJlbjsKKworCWZvciAoOyBwYXJ0ICE9IE5VTEw7IHBhcnQgPSAoeG1sU2NoZW1hUGFydGljbGVQdHIpIHBhcnQtPm5leHQpIHsKKwkgICAgaWYgKHBhcnQtPmNoaWxkcmVuID09IE5VTEwpCisJCWNvbnRpbnVlOworCSAgICBpZiAoKHBhcnQtPmNoaWxkcmVuLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UKSB8fAorCQkocGFydC0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0FOWSkpCisJCWN1ciA9IHBhcnQtPm1heE9jY3VyczsKKwkgICAgZWxzZQorCQljdXIgPSB4bWxTY2hlbWFHZXRQYXJ0aWNsZVRvdGFsUmFuZ2VNYXgocGFydCk7CisJICAgIGlmIChjdXIgPT0gVU5CT1VOREVEKQorCQlyZXR1cm4gKFVOQk9VTkRFRCk7CisJICAgIGlmICgobWF4IDwgY3VyKSB8fCAobWF4ID09IC0xKSkKKwkJbWF4ID0gY3VyOworCX0KKwkvKiBUT0RPOiBIYW5kbGUgb3ZlcmZsb3dzPyAqLworCXJldHVybiAocGFydGljbGUtPm1heE9jY3VycyAqIG1heCk7CisgICAgfSBlbHNlIHsKKwkvKiA8YWxsPiBhbmQgPHNlcXVlbmNlPiAqLworCWludCBzdW0gPSAwLCBjdXI7CisJeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydCA9CisJICAgICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgcGFydGljbGUtPmNoaWxkcmVuLT5jaGlsZHJlbjsKKworCWZvciAoOyBwYXJ0ICE9IE5VTEw7IHBhcnQgPSAoeG1sU2NoZW1hUGFydGljbGVQdHIpIHBhcnQtPm5leHQpIHsKKwkgICAgaWYgKHBhcnQtPmNoaWxkcmVuID09IE5VTEwpCisJCWNvbnRpbnVlOworCSAgICBpZiAoKHBhcnQtPmNoaWxkcmVuLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UKSB8fAorCQkocGFydC0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0FOWSkpCisJCWN1ciA9IHBhcnQtPm1heE9jY3VyczsKKwkgICAgZWxzZQorCQljdXIgPSB4bWxTY2hlbWFHZXRQYXJ0aWNsZVRvdGFsUmFuZ2VNYXgocGFydCk7CisJICAgIGlmIChjdXIgPT0gVU5CT1VOREVEKQorCQlyZXR1cm4gKFVOQk9VTkRFRCk7CisJICAgIGlmICgoY3VyID4gMCkgJiYgKHBhcnRpY2xlLT5tYXhPY2N1cnMgPT0gVU5CT1VOREVEKSkKKwkJcmV0dXJuIChVTkJPVU5ERUQpOworCSAgICBzdW0gKz0gY3VyOworCX0KKwkvKiBUT0RPOiBIYW5kbGUgb3ZlcmZsb3dzPyAqLworCXJldHVybiAocGFydGljbGUtPm1heE9jY3VycyAqIHN1bSk7CisgICAgfQorfQorI2VuZGlmCisKKy8qKgorICogeG1sU2NoZW1hSXNQYXJ0aWNsZUVtcHRpYWJsZToKKyAqIEBwYXJ0aWNsZTogdGhlIHBhcnRpY2xlCisgKgorICogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OiBQYXJ0aWNsZSBFbXB0aWFibGUKKyAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBwYXJ0aWNsZSBpcyBlbXB0aWFibGUuCisgKgorICogUmV0dXJucyAxIGlmIGVtcHRpYWJsZSwgMCBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUlzUGFydGljbGVFbXB0aWFibGUoeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGUpCit7CisgICAgLyoKKyAgICAqIFNQRUMgKDEpICJJdHMge21pbiBvY2N1cnN9IGlzIDAuIgorICAgICovCisgICAgaWYgKChwYXJ0aWNsZSA9PSBOVUxMKSB8fCAocGFydGljbGUtPm1pbk9jY3VycyA9PSAwKSB8fAorCShwYXJ0aWNsZS0+Y2hpbGRyZW4gPT0gTlVMTCkpCisJcmV0dXJuICgxKTsKKyAgICAvKgorICAgICogU1BFQyAoMikgIkl0cyB7dGVybX0gaXMgYSBncm91cCBhbmQgdGhlIG1pbmltdW0gcGFydCBvZiB0aGUKKyAgICAqIGVmZmVjdGl2ZSB0b3RhbCByYW5nZSBvZiB0aGF0IGdyb3VwLCBbLi4uXSBpcyAwLiIKKyAgICAqLworICAgIGlmIChXWFNfSVNfTU9ERUxfR1JPVVAocGFydGljbGUtPmNoaWxkcmVuKSkgeworCWlmICh4bWxTY2hlbWFHZXRQYXJ0aWNsZVRvdGFsUmFuZ2VNaW4ocGFydGljbGUpID09IDApCisJICAgIHJldHVybiAoMSk7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tDT1NTVERlcml2ZWRPSzoKKyAqIEBhY3R4dDogYSBjb250ZXh0CisgKiBAdHlwZTogIHRoZSBkZXJpdmVkIHNpbXBsZSB0eXBlIGRlZmluaXRpb24KKyAqIEBiYXNlVHlwZTogIHRoZSBiYXNlIHR5cGUgZGVmaW5pdGlvbgorICogQHN1YnNldDogdGhlIHN1YnNldCBvZiAoJ3Jlc3RyaWN0aW9uJywgZWN0LikKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiBUeXBlIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKGNvcy1zdC1kZXJpdmVkLU9LKQorICoKKyAqIENoZWNrcyB3aGV0ZXIgQHR5cGUgY2FuIGJlIHZhbGlkbHkKKyAqIGRlcml2ZWQgZnJvbSBAYmFzZVR5cGUuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIGFuIHBvc2l0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NPU1NURGVyaXZlZE9LKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBhY3R4dCwKKwkJCSAgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlLAorCQkJICAgICB4bWxTY2hlbWFUeXBlUHRyIGJhc2VUeXBlLAorCQkJICAgICBpbnQgc3Vic2V0KQoreworICAgIC8qCisgICAgKiAxIFRoZXkgYXJlIHRoZSBzYW1lIHR5cGUgZGVmaW5pdGlvbi4KKyAgICAqIFRPRE86IFRoZSBpZGVudHkgY2hlY2sgbWlnaHQgaGF2ZSB0byBiZSBtb3JlIGNvbXBsZXggdGhhbiB0aGlzLgorICAgICovCisgICAgaWYgKHR5cGUgPT0gYmFzZVR5cGUpCisJcmV0dXJuICgwKTsKKyAgICAvKgorICAgICogMi4xIHJlc3RyaWN0aW9uIGlzIG5vdCBpbiB0aGUgc3Vic2V0LCBvciBpbiB0aGUge2ZpbmFsfQorICAgICogb2YgaXRzIG93biB7YmFzZSB0eXBlIGRlZmluaXRpb259OworICAgICoKKyAgICAqIE5PVEUgdGhhdCB0aGlzIHdpbGwgYmUgdXNlZCBhbHNvIHZpYSAieHNpOnR5cGUiLgorICAgICoKKyAgICAqIFRPRE86IFJldmlzZSB0aGlzLCBpdCBsb29rcyBzdHJhbmdlLiBIb3cgY2FuIHRoZSAidHlwZSIKKyAgICAqIG5vdCBiZSBmaXhlZCBvciAqaW4qIGZpeGluZz8KKyAgICAqLworICAgIGlmIChXWFNfSVNfVFlQRV9OT1RfRklYRUQodHlwZSkpCisJaWYgKHhtbFNjaGVtYVR5cGVGaXh1cCh0eXBlLCBhY3R4dCkgPT0gLTEpCisJICAgIHJldHVybigtMSk7CisgICAgaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRChiYXNlVHlwZSkpCisJaWYgKHhtbFNjaGVtYVR5cGVGaXh1cChiYXNlVHlwZSwgYWN0eHQpID09IC0xKQorCSAgICByZXR1cm4oLTEpOworICAgIGlmICgoc3Vic2V0ICYgU1VCU0VUX1JFU1RSSUNUSU9OKSB8fAorCSh4bWxTY2hlbWFUeXBlRmluYWxDb250YWlucyh0eXBlLT5iYXNlVHlwZSwKKwkgICAgWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTikpKSB7CisJcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfREVSSVZFRF9PS18yXzEpOworICAgIH0KKyAgICAvKiAyLjIgKi8KKyAgICBpZiAodHlwZS0+YmFzZVR5cGUgPT0gYmFzZVR5cGUpIHsKKwkvKgorCSogMi4yLjEgRCdzIO+/vWJhc2UgdHlwZSBkZWZpbml0aW9u77+9IGlzIEIuCisJKi8KKwlyZXR1cm4gKDApOworICAgIH0KKyAgICAvKgorICAgICogMi4yLjIgRCdzIO+/vWJhc2UgdHlwZSBkZWZpbml0aW9u77+9IGlzIG5vdCB0aGUg77+9dXItdHlwZSBkZWZpbml0aW9u77+9CisgICAgKiBhbmQgaXMgdmFsaWRseSBkZXJpdmVkIGZyb20gQiBnaXZlbiB0aGUgc3Vic2V0LCBhcyBkZWZpbmVkIGJ5IHRoaXMKKyAgICAqIGNvbnN0cmFpbnQuCisgICAgKi8KKyAgICBpZiAoKCEgV1hTX0lTX0FOWVRZUEUodHlwZS0+YmFzZVR5cGUpKSAmJgorCSh4bWxTY2hlbWFDaGVja0NPU1NURGVyaXZlZE9LKGFjdHh0LCB0eXBlLT5iYXNlVHlwZSwKKwkgICAgYmFzZVR5cGUsIHN1YnNldCkgPT0gMCkpIHsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICAvKgorICAgICogMi4yLjMgRCdzIHt2YXJpZXR5fSBpcyBsaXN0IG9yIHVuaW9uIGFuZCBCIGlzIHRoZSDvv71zaW1wbGUgdXItdHlwZQorICAgICogZGVmaW5pdGlvbu+/vS4KKyAgICAqLworICAgIGlmIChXWFNfSVNfQU5ZX1NJTVBMRV9UWVBFKGJhc2VUeXBlKSAmJgorCShXWFNfSVNfTElTVCh0eXBlKSB8fCBXWFNfSVNfVU5JT04odHlwZSkpKSB7CisJcmV0dXJuICgwKTsKKyAgICB9CisgICAgLyoKKyAgICAqIDIuMi40IEIncyB7dmFyaWV0eX0gaXMgdW5pb24gYW5kIEQgaXMgdmFsaWRseSBkZXJpdmVkIGZyb20gYSB0eXBlCisgICAgKiBkZWZpbml0aW9uIGluIEIncyB7bWVtYmVyIHR5cGUgZGVmaW5pdGlvbnN9IGdpdmVuIHRoZSBzdWJzZXQsIGFzCisgICAgKiBkZWZpbmVkIGJ5IHRoaXMgY29uc3RyYWludC4KKyAgICAqCisgICAgKiBOT1RFOiBUaGlzIHNlZW1zIG5vdCB0byBpbnZvbHZlIGJ1aWx0LWluIHR5cGVzLCBzaW5jZSB0aGVyZSBpcyBubworICAgICogYnVpbHQtaW4gVW5pb24gU2ltcGxlIFR5cGUuCisgICAgKi8KKyAgICBpZiAoV1hTX0lTX1VOSU9OKGJhc2VUeXBlKSkgeworCXhtbFNjaGVtYVR5cGVMaW5rUHRyIGN1cjsKKworCWN1ciA9IGJhc2VUeXBlLT5tZW1iZXJUeXBlczsKKwl3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwkgICAgaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRChjdXItPnR5cGUpKQorCQlpZiAoeG1sU2NoZW1hVHlwZUZpeHVwKGN1ci0+dHlwZSwgYWN0eHQpID09IC0xKQorCQkgICAgcmV0dXJuKC0xKTsKKwkgICAgaWYgKHhtbFNjaGVtYUNoZWNrQ09TU1REZXJpdmVkT0soYWN0eHQsCisJCSAgICB0eXBlLCBjdXItPnR5cGUsIHN1YnNldCkgPT0gMCkKKwkgICAgeworCQkvKgorCQkqIEl0IGp1c3QgaGFzIHRvIGJlIHZhbGlkbHkgZGVyaXZlZCBmcm9tIGF0IGxlYXN0IG9uZQorCQkqIG1lbWJlci10eXBlLgorCQkqLworCQlyZXR1cm4gKDApOworCSAgICB9CisJICAgIGN1ciA9IGN1ci0+bmV4dDsKKwl9CisgICAgfQorICAgIHJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX0RFUklWRURfT0tfMl8yKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja1R5cGVEZWZDaXJjdWxhckludGVybmFsOgorICogQHBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGN0eHRUeXBlOiAgdGhlIHR5cGUgZGVmaW5pdGlvbgorICogQGFuY2VzdG9yOiBhbiBhbmNlc3RvciBvZiBAY3R4dFR5cGUKKyAqCisgKiBDaGVja3Mgc3QtcHJvcHMtY29ycmVjdCAoMikgKyBjdC1wcm9wcy1jb3JyZWN0ICgzKS4KKyAqIENpcmN1bGFyIHR5cGUgZGVmaW5pdGlvbnMgYXJlIG5vdCBhbGxvd2VkLgorICoKKyAqIFJldHVybnMgWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8yIGlmIHRoZSBnaXZlbiB0eXBlIGlzCisgKiBjaXJjdWxhciwgMCBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNoZWNrVHlwZURlZkNpcmN1bGFySW50ZXJuYWwoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCSAgIHhtbFNjaGVtYVR5cGVQdHIgY3R4dFR5cGUsCisJCQkgICB4bWxTY2hlbWFUeXBlUHRyIGFuY2VzdG9yKQoreworICAgIGludCByZXQ7CisKKyAgICBpZiAoKGFuY2VzdG9yID09IE5VTEwpIHx8IChhbmNlc3Rvci0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQkFTSUMpKQorCXJldHVybiAoMCk7CisKKyAgICBpZiAoY3R4dFR5cGUgPT0gYW5jZXN0b3IpIHsKKwl4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzIsCisJICAgIFdYU19CQVNJQ19DQVNUIGN0eHRUeXBlLCBXWFNfSVRFTV9OT0RFKGN0eHRUeXBlKSwKKwkgICAgIlRoZSBkZWZpbml0aW9uIGlzIGNpcmN1bGFyIiwgTlVMTCk7CisJcmV0dXJuIChYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzIpOworICAgIH0KKyAgICBpZiAoYW5jZXN0b3ItPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQpIHsKKwkvKgorCSogQXZvaWQgaW5pZmluaXRlIHJlY3Vyc2lvbiBvbiBjaXJjdWxhciB0eXBlcyBub3QgeWV0IGNoZWNrZWQuCisJKi8KKwlyZXR1cm4gKDApOworICAgIH0KKyAgICBhbmNlc3Rvci0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQ7CisgICAgcmV0ID0geG1sU2NoZW1hQ2hlY2tUeXBlRGVmQ2lyY3VsYXJJbnRlcm5hbChwY3R4dCwgY3R4dFR5cGUsCisJYW5jZXN0b3ItPmJhc2VUeXBlKTsKKyAgICBhbmNlc3Rvci0+ZmxhZ3MgXj0gWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQ7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrVHlwZURlZkNpcmN1bGFyOgorICogQGl0ZW06ICB0aGUgY29tcGxleC9zaW1wbGUgdHlwZSBkZWZpbml0aW9uCisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgbmFtZQorICoKKyAqIENoZWNrcyBmb3IgY2lyY3VsYXIgdHlwZSBkZWZpbml0aW9ucy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNoZWNrVHlwZURlZkNpcmN1bGFyKHhtbFNjaGVtYVR5cGVQdHIgaXRlbSwKKwkJCSAgICAgIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoKGl0ZW0gPT0gTlVMTCkgfHwKKwkoaXRlbS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQkFTSUMpIHx8CisJKGl0ZW0tPmJhc2VUeXBlID09IE5VTEwpKQorCXJldHVybjsKKyAgICB4bWxTY2hlbWFDaGVja1R5cGVEZWZDaXJjdWxhckludGVybmFsKGN0eHQsIGl0ZW0sCisJaXRlbS0+YmFzZVR5cGUpOworfQorCisvKgorKiBTaW1wbGUgVHlwZSBEZWZpbml0aW9uIFJlcHJlc2VudGF0aW9uIE9LIChzcmMtc2ltcGxlLXR5cGUpIDQKKyoKKyogIjQgQ2lyY3VsYXIgdW5pb24gdHlwZSBkZWZpbml0aW9uIGlzIGRpc2FsbG93ZWQuIFRoYXQgaXMsIGlmIHRoZQorKiA8dW5pb24+IGFsdGVybmF0aXZlIGlzIGNob3NlbiwgdGhlcmUgbXVzdCBub3QgYmUgYW55IGVudHJpZXMgaW4gdGhlCisqIG1lbWJlclR5cGVzIFthdHRyaWJ1dGVdIGF0IGFueSBkZXB0aCB3aGljaCByZXNvbHZlIHRvIHRoZSBjb21wb25lbnQKKyogY29ycmVzcG9uZGluZyB0byB0aGUgPHNpbXBsZVR5cGU+LiIKKyoKKyogTm90ZSB0aGF0IHRoaXMgc2hvdWxkIHdvcmsgb24gdGhlICpyZXByZXNlbnRhdGlvbiogb2YgYSBjb21wb25lbnQsCisqIHRodXMgYXNzdW1lcyBhbnkgdW5pb24gdHlwZXMgaW4gdGhlIG1lbWJlciB0eXBlcyBub3QgYmVpbmcgeWV0CisqIHN1YnN0aXR1dGVkLiBBdCB0aGlzIHN0YWdlIHdlIG5lZWQgdGhlIHZhcmlldHkgb2YgdGhlIHR5cGVzCisqIHRvIGJlIGFscmVhZHkgY29tcHV0ZWQuCisqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tVbmlvblR5cGVEZWZDaXJjdWxhclJlY3VyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkJCXhtbFNjaGVtYVR5cGVQdHIgY3R4VHlwZSwKKwkJCQkJeG1sU2NoZW1hVHlwZUxpbmtQdHIgbWVtYmVycykKK3sKKyAgICB4bWxTY2hlbWFUeXBlTGlua1B0ciBtZW1iZXI7CisgICAgeG1sU2NoZW1hVHlwZVB0ciBtZW1iZXJUeXBlOworCisgICAgbWVtYmVyID0gbWVtYmVyczsKKyAgICB3aGlsZSAobWVtYmVyICE9IE5VTEwpIHsKKwltZW1iZXJUeXBlID0gbWVtYmVyLT50eXBlOworCXdoaWxlICgobWVtYmVyVHlwZSAhPSBOVUxMKSAmJgorCSAgICAobWVtYmVyVHlwZS0+dHlwZSAhPSBYTUxfU0NIRU1BX1RZUEVfQkFTSUMpKSB7CisJICAgIGlmIChtZW1iZXJUeXBlID09IGN0eFR5cGUpIHsKKwkJeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1NSQ19TSU1QTEVfVFlQRV80LAorCQkgICAgV1hTX0JBU0lDX0NBU1QgY3R4VHlwZSwgTlVMTCwKKwkJICAgICJUaGUgdW5pb24gdHlwZSBkZWZpbml0aW9uIGlzIGNpcmN1bGFyIiwgTlVMTCk7CisJCXJldHVybiAoWE1MX1NDSEVNQVBfU1JDX1NJTVBMRV9UWVBFXzQpOworCSAgICB9CisJICAgIGlmICgoV1hTX0lTX1VOSU9OKG1lbWJlclR5cGUpKSAmJgorCQkoKG1lbWJlclR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9NQVJLRUQpID09IDApKQorCSAgICB7CisJCWludCByZXM7CisJCW1lbWJlclR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfTUFSS0VEOworCQlyZXMgPSB4bWxTY2hlbWFDaGVja1VuaW9uVHlwZURlZkNpcmN1bGFyUmVjdXIocGN0eHQsCisJCSAgICBjdHhUeXBlLAorCQkgICAgeG1sU2NoZW1hR2V0VW5pb25TaW1wbGVUeXBlTWVtYmVyVHlwZXMobWVtYmVyVHlwZSkpOworCQltZW1iZXJUeXBlLT5mbGFncyBePSBYTUxfU0NIRU1BU19UWVBFX01BUktFRDsKKwkJaWYgKHJlcyAhPSAwKQorCQkgICAgcmV0dXJuKHJlcyk7CisJICAgIH0KKwkgICAgbWVtYmVyVHlwZSA9IG1lbWJlclR5cGUtPmJhc2VUeXBlOworCX0KKwltZW1iZXIgPSBtZW1iZXItPm5leHQ7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tVbmlvblR5cGVEZWZDaXJjdWxhcih4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCSAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICBpZiAoISBXWFNfSVNfVU5JT04odHlwZSkpCisJcmV0dXJuKDApOworICAgIHJldHVybih4bWxTY2hlbWFDaGVja1VuaW9uVHlwZURlZkNpcmN1bGFyUmVjdXIocGN0eHQsIHR5cGUsCisJdHlwZS0+bWVtYmVyVHlwZXMpKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFSZXNvbHZlVHlwZVJlZmVyZW5jZXM6CisgKiBAaXRlbTogIHRoZSBjb21wbGV4L3NpbXBsZSB0eXBlIGRlZmluaXRpb24KKyAqIEBjdHh0OiAgdGhlIHBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBuYW1lCisgKgorICogUmVzb2x2ZXNlIHR5cGUgZGVmaW5pdGlvbiByZWZlcmVuY2VzCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFSZXNvbHZlVHlwZVJlZmVyZW5jZXMoeG1sU2NoZW1hVHlwZVB0ciB0eXBlRGVmLAorCQkJIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAodHlwZURlZiA9PSBOVUxMKQorCXJldHVybjsKKworICAgIC8qCisgICAgKiBSZXNvbHZlIHRoZSBiYXNlIHR5cGUuCisgICAgKi8KKyAgICBpZiAodHlwZURlZi0+YmFzZVR5cGUgPT0gTlVMTCkgeworCXR5cGVEZWYtPmJhc2VUeXBlID0geG1sU2NoZW1hR2V0VHlwZShjdHh0LT5zY2hlbWEsCisJICAgIHR5cGVEZWYtPmJhc2UsIHR5cGVEZWYtPmJhc2VOcyk7CisJaWYgKHR5cGVEZWYtPmJhc2VUeXBlID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUFJlc0NvbXBBdHRyRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlRGVmLCB0eXBlRGVmLT5ub2RlLAorCQkiYmFzZSIsIHR5cGVEZWYtPmJhc2UsIHR5cGVEZWYtPmJhc2VOcywKKwkJWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSwgTlVMTCk7CisJICAgIHJldHVybjsKKwl9CisgICAgfQorICAgIGlmIChXWFNfSVNfU0lNUExFKHR5cGVEZWYpKSB7CisJaWYgKFdYU19JU19VTklPTih0eXBlRGVmKSkgeworCSAgICAvKgorCSAgICAqIFJlc29sdmUgdGhlIG1lbWJlclR5cGVzLgorCSAgICAqLworCSAgICB4bWxTY2hlbWFSZXNvbHZlVW5pb25NZW1iZXJUeXBlcyhjdHh0LCB0eXBlRGVmKTsKKwkgICAgcmV0dXJuOworCX0gZWxzZSBpZiAoV1hTX0lTX0xJU1QodHlwZURlZikpIHsKKwkgICAgLyoKKwkgICAgKiBSZXNvbHZlIHRoZSBpdGVtVHlwZS4KKwkgICAgKi8KKwkgICAgaWYgKCh0eXBlRGVmLT5zdWJ0eXBlcyA9PSBOVUxMKSAmJiAodHlwZURlZi0+YmFzZSAhPSBOVUxMKSkgeworCisJCXR5cGVEZWYtPnN1YnR5cGVzID0geG1sU2NoZW1hR2V0VHlwZShjdHh0LT5zY2hlbWEsCisJCSAgICB0eXBlRGVmLT5iYXNlLCB0eXBlRGVmLT5iYXNlTnMpOworCisJCWlmICgodHlwZURlZi0+c3VidHlwZXMgPT0gTlVMTCkgfHwKKwkJICAgICghIFdYU19JU19TSU1QTEUodHlwZURlZi0+c3VidHlwZXMpKSkKKwkJeworCQkgICAgdHlwZURlZi0+c3VidHlwZXMgPSBOVUxMOworCQkgICAgeG1sU2NoZW1hUFJlc0NvbXBBdHRyRXJyKGN0eHQsCisJCQlYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSwKKwkJCVdYU19CQVNJQ19DQVNUIHR5cGVEZWYsIHR5cGVEZWYtPm5vZGUsCisJCQkiaXRlbVR5cGUiLCB0eXBlRGVmLT5iYXNlLCB0eXBlRGVmLT5iYXNlTnMsCisJCQlYTUxfU0NIRU1BX1RZUEVfU0lNUExFLCBOVUxMKTsKKwkJfQorCSAgICB9CisJICAgIHJldHVybjsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBUaGUgYmFsbCBvZiBsZXR0ZXJzIGJlbG93IG1lYW5zLCB0aGF0IGlmIHdlIGhhdmUgYSBwYXJ0aWNsZQorICAgICogd2hpY2ggaGFzIGEgUU5hbWUtaGVscGVyIGNvbXBvbmVudCBhcyBpdHMge3Rlcm19LCB3ZSB3YW50CisgICAgKiB0byByZXNvbHZlIGl0Li4uCisgICAgKi8KKyAgICBlbHNlIGlmICgoV1hTX1RZUEVfQ09OVEVOVFRZUEUodHlwZURlZikgIT0gTlVMTCkgJiYKKwkoKFdYU19UWVBFX0NPTlRFTlRUWVBFKHR5cGVEZWYpKS0+dHlwZSA9PQorCSAgICBYTUxfU0NIRU1BX1RZUEVfUEFSVElDTEUpICYmCisJKFdYU19UWVBFX1BBUlRJQ0xFX1RFUk0odHlwZURlZikgIT0gTlVMTCkgJiYKKwkoKFdYU19UWVBFX1BBUlRJQ0xFX1RFUk0odHlwZURlZikpLT50eXBlID09CisJICAgIFhNTF9TQ0hFTUFfRVhUUkFfUU5BTUVSRUYpKQorICAgIHsKKwl4bWxTY2hlbWFRTmFtZVJlZlB0ciByZWYgPQorCSAgICBXWFNfUU5BTUVfQ0FTVCBXWFNfVFlQRV9QQVJUSUNMRV9URVJNKHR5cGVEZWYpOworCXhtbFNjaGVtYU1vZGVsR3JvdXBEZWZQdHIgZ3JvdXBEZWY7CisKKwkvKgorCSogVVJHRU5UIFRPRE86IFRlc3QgdGhpcy4KKwkqLworCVdYU19UWVBFX1BBUlRJQ0xFX1RFUk0odHlwZURlZikgPSBOVUxMOworCS8qCisJKiBSZXNvbHZlIHRoZSBNRyBkZWZpbml0aW9uIHJlZmVyZW5jZS4KKwkqLworCWdyb3VwRGVmID0KKwkgICAgV1hTX01PREVMX0dST1VQREVGX0NBU1QgeG1sU2NoZW1hR2V0TmFtZWRDb21wb25lbnQoY3R4dC0+c2NoZW1hLAorCQlyZWYtPml0ZW1UeXBlLCByZWYtPm5hbWUsIHJlZi0+dGFyZ2V0TmFtZXNwYWNlKTsKKwlpZiAoZ3JvdXBEZWYgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQUmVzQ29tcEF0dHJFcnIoY3R4dCwgWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUsCisJCU5VTEwsIFdYU19JVEVNX05PREUoV1hTX1RZUEVfUEFSVElDTEUodHlwZURlZikpLAorCQkicmVmIiwgcmVmLT5uYW1lLCByZWYtPnRhcmdldE5hbWVzcGFjZSwgcmVmLT5pdGVtVHlwZSwKKwkJTlVMTCk7CisJICAgIC8qIFJlbW92ZSB0aGUgcGFydGljbGUuICovCisJICAgIFdYU19UWVBFX0NPTlRFTlRUWVBFKHR5cGVEZWYpID0gTlVMTDsKKwl9IGVsc2UgaWYgKFdYU19NT0RFTEdST1VQREVGX01PREVMKGdyb3VwRGVmKSA9PSBOVUxMKQorCSAgICAvKiBSZW1vdmUgdGhlIHBhcnRpY2xlLiAqLworCSAgICBXWFNfVFlQRV9DT05URU5UVFlQRSh0eXBlRGVmKSA9IE5VTEw7CisJZWxzZSB7CisJICAgIC8qCisJICAgICogQXNzaWduIHRoZSBNRyBkZWZpbml0aW9uJ3Mge21vZGVsIGdyb3VwfSB0byB0aGUKKwkgICAgKiBwYXJ0aWNsZSdzIHt0ZXJtfS4KKwkgICAgKi8KKwkgICAgV1hTX1RZUEVfUEFSVElDTEVfVEVSTSh0eXBlRGVmKSA9IFdYU19NT0RFTEdST1VQREVGX01PREVMKGdyb3VwRGVmKTsKKworCSAgICBpZiAoV1hTX01PREVMR1JPVVBERUZfTU9ERUwoZ3JvdXBEZWYpLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BTEwpIHsKKwkJLyoKKwkJKiBTUEVDIGNvcy1hbGwtbGltaXRlZCAoMS4yKQorCQkqICIxLjIgdGhlIHt0ZXJtfSBwcm9wZXJ0eSBvZiBhIHBhcnRpY2xlIHdpdGgKKwkJKiB7bWF4IG9jY3Vyc309MSB3aGljaCBpcyBwYXJ0IG9mIGEgcGFpciB3aGljaCBjb25zdGl0dXRlcworCQkqIHRoZSB7Y29udGVudCB0eXBlfSBvZiBhIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uLiIKKwkJKi8KKwkJaWYgKChXWFNfVFlQRV9QQVJUSUNMRSh0eXBlRGVmKSktPm1heE9jY3VycyAhPSAxKSB7CisJCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBjdHh0LAorCQkJLyogVE9ETzogZXJyb3IgY29kZSAqLworCQkJWE1MX1NDSEVNQVBfQ09TX0FMTF9MSU1JVEVELAorCQkJV1hTX0lURU1fTk9ERShXWFNfVFlQRV9QQVJUSUNMRSh0eXBlRGVmKSksIE5VTEwsCisJCQkiVGhlIHBhcnRpY2xlJ3Mge21heCBvY2N1cnN9IG11c3QgYmUgMSwgc2luY2UgdGhlICIKKwkJCSJyZWZlcmVuY2UgcmVzb2x2ZXMgdG8gYW4gJ2FsbCcgbW9kZWwgZ3JvdXAiLAorCQkJTlVMTCwgTlVMTCk7CisJCX0KKwkgICAgfQorCX0KKyAgICB9Cit9CisKKworCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrU1RQcm9wc0NvcnJlY3Q6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEB0eXBlOiAgdGhlIHNpbXBsZSB0eXBlIGRlZmluaXRpb24KKyAqCisgKiBDaGVja3Mgc3QtcHJvcHMtY29ycmVjdC4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHByb3BlcnRpZXMgYXJlIGNvcnJlY3QsCisgKiBpZiBub3QsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBhbmQgLTEgb24gaW50ZXJuYWwKKyAqIGVycm9ycy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tTVFByb3BzQ29ycmVjdCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIGJhc2VUeXBlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKworICAgIC8qIFNUQVRFOiBlcnJvciBmdW5jcyBjb252ZXJ0ZWQuICovCisgICAgLyoKKyAgICAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogU2ltcGxlIFR5cGUgRGVmaW5pdGlvbiBQcm9wZXJ0aWVzIENvcnJlY3QKKyAgICAqCisgICAgKiBOT1RFOiBUaGlzIGlzIHNvbWVob3cgcmVkdW5kYW50LCBzaW5jZSB3ZSBhY3R1YWxseSBidWlsdCBhIHNpbXBsZSB0eXBlCisgICAgKiB0byBoYXZlIGFsbCB0aGUgbmVlZGVkIGluZm9ybWF0aW9uOyB0aGlzIGFjdHMgYXMgYW4gc2VsZiB0ZXN0LgorICAgICovCisgICAgLyogQmFzZSB0eXBlOiBJZiB0aGUgZGF0YXR5cGUgaGFzIGJlZW4g77+9ZGVyaXZlZO+/vSBieSDvv71yZXN0cmljdGlvbu+/vQorICAgICogdGhlbiB0aGUgU2ltcGxlIFR5cGUgRGVmaW5pdGlvbiBjb21wb25lbnQgZnJvbSB3aGljaCBpdCBpcyDvv71kZXJpdmVk77+9LAorICAgICogb3RoZXJ3aXNlIHRoZSBTaW1wbGUgVHlwZSBEZWZpbml0aW9uIGZvciBhbnlTaW1wbGVUeXBlICjvv700LjEuNikuCisgICAgKi8KKyAgICBpZiAoYmFzZVR5cGUgPT0gTlVMTCkgeworCS8qCisJKiBUT0RPOiBUaGluayBhYm91dDogIm1vZHVsbyB0aGUgaW1wYWN0IG9mIE1pc3NpbmcKKwkqIFN1Yi1jb21wb25lbnRzICjvv701LjMpLiIKKwkqLworCXhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xLAorCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCSAgICAiTm8gYmFzZSB0eXBlIGV4aXN0ZW50IiwgTlVMTCk7CisJcmV0dXJuIChYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzEpOworCisgICAgfQorICAgIGlmICghIFdYU19JU19TSU1QTEUoYmFzZVR5cGUpKSB7CisJeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TVF9QUk9QU19DT1JSRUNUXzEsCisJICAgIFdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJICAgICJUaGUgYmFzZSB0eXBlICclcycgaXMgbm90IGEgc2ltcGxlIHR5cGUiLAorCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCBiYXNlVHlwZSkpOworCUZSRUVfQU5EX05VTEwoc3RyKQorCXJldHVybiAoWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xKTsKKyAgICB9CisgICAgaWYgKCAoV1hTX0lTX0xJU1QodHlwZSkgfHwgV1hTX0lTX1VOSU9OKHR5cGUpKSAmJgorCSAoV1hTX0lTX1JFU1RSSUNUSU9OKHR5cGUpID09IDApICYmCisJICghIFdYU19JU19BTllfU0lNUExFX1RZUEUoYmFzZVR5cGUpKSkgeworCXhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xLAorCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCSAgICAiQSB0eXBlLCBkZXJpdmVkIGJ5IGxpc3Qgb3IgdW5pb24sIG11c3QgaGF2ZSAiCisJICAgICJ0aGUgc2ltcGxlIHVyLXR5cGUgZGVmaW5pdGlvbiBhcyBiYXNlIHR5cGUsIG5vdCAnJXMnIiwKKwkgICAgeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgYmFzZVR5cGUpKTsKKwlGUkVFX0FORF9OVUxMKHN0cikKKwlyZXR1cm4gKFhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMSk7CisgICAgfQorICAgIC8qCisgICAgKiBWYXJpZXR5OiBPbmUgb2Yge2F0b21pYywgbGlzdCwgdW5pb259LgorICAgICovCisgICAgaWYgKCghIFdYU19JU19BVE9NSUModHlwZSkpICYmICghIFdYU19JU19VTklPTih0eXBlKSkgJiYKKwkoISBXWFNfSVNfTElTVCh0eXBlKSkpIHsKKwl4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMSwKKwkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkgICAgIlRoZSB2YXJpZXR5IGlzIGFic2VudCIsIE5VTEwpOworCXJldHVybiAoWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8xKTsKKyAgICB9CisgICAgLyogVE9ETzogRmluaXNoIHRoaXMuIEhtbSwgaXMgdGhpcyBmaW5pc2hlZD8gKi8KKworICAgIC8qCisgICAgKiAzIFRoZSB7ZmluYWx9IG9mIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IG11c3Qgbm90IGNvbnRhaW4gcmVzdHJpY3Rpb24uCisgICAgKi8KKyAgICBpZiAoeG1sU2NoZW1hVHlwZUZpbmFsQ29udGFpbnMoYmFzZVR5cGUsCisJWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTikpIHsKKwl4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1NUX1BST1BTX0NPUlJFQ1RfMywKKwkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkgICAgIlRoZSAnZmluYWwnIG9mIGl0cyBiYXNlIHR5cGUgJyVzJyBtdXN0IG5vdCBjb250YWluICIKKwkgICAgIidyZXN0cmljdGlvbiciLAorCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCBiYXNlVHlwZSkpOworCUZSRUVfQU5EX05VTEwoc3RyKQorCXJldHVybiAoWE1MX1NDSEVNQVBfU1RfUFJPUFNfQ09SUkVDVF8zKTsKKyAgICB9CisKKyAgICAvKgorICAgICogMiBBbGwgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbnMgbXVzdCBiZSBkZXJpdmVkIHVsdGltYXRlbHkgZnJvbSB0aGUg77+9c2ltcGxlCisgICAgKiB1ci10eXBlIGRlZmluaXRpb24gKHNv77+9IGNpcmN1bGFyIGRlZmluaXRpb25zIGFyZSBkaXNhbGxvd2VkKS4gVGhhdCBpcywgaXQKKyAgICAqIG11c3QgYmUgcG9zc2libGUgdG8gcmVhY2ggYSBidWlsdC1pbiBwcmltaXRpdmUgZGF0YXR5cGUgb3IgdGhlIO+/vXNpbXBsZQorICAgICogdXItdHlwZSBkZWZpbml0aW9u77+9IGJ5IHJlcGVhdGVkbHkgZm9sbG93aW5nIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259LgorICAgICoKKyAgICAqIE5PVEU6IHRoaXMgaXMgZG9uZSBpbiB4bWxTY2hlbWFDaGVja1R5cGVEZWZDaXJjdWxhcigpLgorICAgICovCisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja0NPU1NUUmVzdHJpY3RzOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAdHlwZTogIHRoZSBzaW1wbGUgdHlwZSBkZWZpbml0aW9uCisgKgorICogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OgorICogRGVyaXZhdGlvbiBWYWxpZCAoUmVzdHJpY3Rpb24sIFNpbXBsZSkgKGNvcy1zdC1yZXN0cmljdHMpCisKKyAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gQHR5cGUgKHNpbXBsZVR5cGUpIGlzIGRlcml2ZWQgdmFsaWRseSBieSByZXN0cmljdGlvbi4KKyAqIFNUQVRVUzoKKyAqCisgKiBSZXR1cm5zIC0xIG9uIGludGVybmFsIGVycm9ycywgMCBpZiB0aGUgdHlwZSBpcyB2YWxpZGx5IGRlcml2ZWQsCisgKiBhIHBvc2l0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NPU1NUUmVzdHJpY3RzKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCisgICAgaWYgKHR5cGUtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSkgeworCVBFUlJPUl9JTlQoInhtbFNjaGVtYUNoZWNrQ09TU1RSZXN0cmljdHMiLAorCSAgICAiZ2l2ZW4gdHlwZSBpcyBub3QgYSB1c2VyLWRlcml2ZWQgc2ltcGxlVHlwZSIpOworCXJldHVybiAoLTEpOworICAgIH0KKworICAgIGlmIChXWFNfSVNfQVRPTUlDKHR5cGUpKSB7CisJeG1sU2NoZW1hVHlwZVB0ciBwcmltaXRpdmU7CisJLyoKKwkqIDEuMSBUaGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBtdXN0IGJlIGFuIGF0b21pYyBzaW1wbGUKKwkqIHR5cGUgZGVmaW5pdGlvbiBvciBhIGJ1aWx0LWluIHByaW1pdGl2ZSBkYXRhdHlwZS4KKwkqLworCWlmICghIFdYU19JU19BVE9NSUModHlwZS0+YmFzZVR5cGUpKSB7CisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8xLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkiVGhlIGJhc2UgdHlwZSAnJXMnIGlzIG5vdCBhbiBhdG9taWMgc2ltcGxlIHR5cGUiLAorCQl4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCB0eXBlLT5iYXNlVHlwZSkpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwkgICAgcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMSk7CisJfQorCS8qIDEuMiBUaGUge2ZpbmFsfSBvZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBtdXN0IG5vdCBjb250YWluCisJKiByZXN0cmljdGlvbi4KKwkqLworCS8qIE9QVElNSVpFIFRPRE8gOiBUaGlzIGlzIGFscmVhZHkgZG9uZSBpbiB4bWxTY2hlbWFDaGVja1N0UHJvcHNDb3JyZWN0ICovCisJaWYgKHhtbFNjaGVtYVR5cGVGaW5hbENvbnRhaW5zKHR5cGUtPmJhc2VUeXBlLAorCSAgICBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX1JFU1RSSUNUSU9OKSkgeworCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCQlYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfMiwKKwkJV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJIlRoZSBmaW5hbCBvZiBpdHMgYmFzZSB0eXBlICclcycgbXVzdCBub3QgY29udGFpbiAncmVzdHJpY3Rpb24nIiwKKwkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgdHlwZS0+YmFzZVR5cGUpKTsKKwkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJICAgIHJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18xXzIpOworCX0KKworCS8qCisJKiAxLjMuMSBERiBtdXN0IGJlIGFuIGFsbG93ZWQgY29uc3RyYWluaW5nIGZhY2V0IGZvciB0aGUge3ByaW1pdGl2ZQorCSogdHlwZSBkZWZpbml0aW9ufSwgYXMgc3BlY2lmaWVkIGluIHRoZSBhcHByb3ByaWF0ZSBzdWJzZWN0aW9uIG9mIDMuMgorCSogUHJpbWl0aXZlIGRhdGF0eXBlcy4KKwkqLworCWlmICh0eXBlLT5mYWNldHMgIT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsKKwkgICAgaW50IG9rID0gMTsKKworCSAgICBwcmltaXRpdmUgPSB4bWxTY2hlbWFHZXRQcmltaXRpdmVUeXBlKHR5cGUpOworCSAgICBpZiAocHJpbWl0aXZlID09IE5VTEwpIHsKKwkJUEVSUk9SX0lOVCgieG1sU2NoZW1hQ2hlY2tDT1NTVFJlc3RyaWN0cyIsCisJCSAgICAiZmFpbGVkIHRvIGdldCBwcmltaXRpdmUgdHlwZSIpOworCQlyZXR1cm4gKC0xKTsKKwkgICAgfQorCSAgICBmYWNldCA9IHR5cGUtPmZhY2V0czsKKwkgICAgZG8geworCQlpZiAoeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0KHByaW1pdGl2ZSwgZmFjZXQtPnR5cGUpID09IDApIHsKKwkJICAgIG9rID0gMDsKKwkJICAgIHhtbFNjaGVtYVBJbGxlZ2FsRmFjZXRBdG9taWNFcnIocGN0eHQsCisJCQlYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzFfM18xLAorCQkJdHlwZSwgcHJpbWl0aXZlLCBmYWNldCk7CisJCX0KKwkJZmFjZXQgPSBmYWNldC0+bmV4dDsKKwkgICAgfSB3aGlsZSAoZmFjZXQgIT0gTlVMTCk7CisJICAgIGlmIChvayA9PSAwKQorCQlyZXR1cm4gKFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMV8zXzEpOworCX0KKwkvKgorCSogU1BFQyAoMS4zLjIpICJJZiB0aGVyZSBpcyBhIGZhY2V0IG9mIHRoZSBzYW1lIGtpbmQgaW4gdGhlIHtmYWNldHN9CisJKiBvZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSAoY2FsbCB0aGlzIEJGKSx0aGVuIHRoZSBERidzIHt2YWx1ZX0KKwkqIG11c3QgYmUgYSB2YWxpZCByZXN0cmljdGlvbiBvZiBCRidzIHt2YWx1ZX0gYXMgZGVmaW5lZCBpbgorCSogW1hNTCBTY2hlbWFzOiBEYXRhdHlwZXNdLiIKKwkqCisJKiBOT1RFICgxLjMuMikgRmFjZXQgZGVyaXZhdGlvbiBjb25zdHJhaW50cyBhcmUgY3VycmVudGx5IGhhbmRsZWQgaW4KKwkqIHhtbFNjaGVtYURlcml2ZUFuZFZhbGlkYXRlRmFjZXRzKCkKKwkqLworICAgIH0gZWxzZSBpZiAoV1hTX0lTX0xJU1QodHlwZSkpIHsKKwl4bWxTY2hlbWFUeXBlUHRyIGl0ZW1UeXBlID0gTlVMTDsKKworCWl0ZW1UeXBlID0gdHlwZS0+c3VidHlwZXM7CisJaWYgKChpdGVtVHlwZSA9PSBOVUxMKSB8fCAoISBXWFNfSVNfU0lNUExFKGl0ZW1UeXBlKSkpIHsKKwkgICAgUEVSUk9SX0lOVCgieG1sU2NoZW1hQ2hlY2tDT1NTVFJlc3RyaWN0cyIsCisJCSJmYWlsZWQgdG8gZXZhbHVhdGUgdGhlIGl0ZW0gdHlwZSIpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisJaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRChpdGVtVHlwZSkpCisJICAgIHhtbFNjaGVtYVR5cGVGaXh1cChpdGVtVHlwZSwgQUNUWFRfQ0FTVCBwY3R4dCk7CisJLyoKKwkqIDIuMSBUaGUge2l0ZW0gdHlwZSBkZWZpbml0aW9ufSBtdXN0IGhhdmUgYSB7dmFyaWV0eX0gb2YgYXRvbWljIG9yCisJKiB1bmlvbiAoaW4gd2hpY2ggY2FzZSBhbGwgdGhlIHttZW1iZXIgdHlwZSBkZWZpbml0aW9uc30KKwkqIG11c3QgYmUgYXRvbWljKS4KKwkqLworCWlmICgoISBXWFNfSVNfQVRPTUlDKGl0ZW1UeXBlKSkgJiYKKwkgICAgKCEgV1hTX0lTX1VOSU9OKGl0ZW1UeXBlKSkpIHsKKwkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwkJWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzEsCisJCVdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCSJUaGUgaXRlbSB0eXBlICclcycgZG9lcyBub3QgaGF2ZSBhIHZhcmlldHkgb2YgYXRvbWljIG9yIHVuaW9uIiwKKwkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgaXRlbVR5cGUpKTsKKwkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJICAgIHJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzEpOworCX0gZWxzZSBpZiAoV1hTX0lTX1VOSU9OKGl0ZW1UeXBlKSkgeworCSAgICB4bWxTY2hlbWFUeXBlTGlua1B0ciBtZW1iZXI7CisKKwkgICAgbWVtYmVyID0gaXRlbVR5cGUtPm1lbWJlclR5cGVzOworCSAgICB3aGlsZSAobWVtYmVyICE9IE5VTEwpIHsKKwkJaWYgKCEgV1hTX0lTX0FUT01JQyhtZW1iZXItPnR5cGUpKSB7CisJCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCQkJWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzEsCisJCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkJIlRoZSBpdGVtIHR5cGUgaXMgYSB1bmlvbiB0eXBlLCBidXQgdGhlICIKKwkJCSJtZW1iZXIgdHlwZSAnJXMnIG9mIHRoaXMgaXRlbSB0eXBlIGlzIG5vdCBhdG9taWMiLAorCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgbWVtYmVyLT50eXBlKSk7CisJCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwkJICAgIHJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzEpOworCQl9CisJCW1lbWJlciA9IG1lbWJlci0+bmV4dDsKKwkgICAgfQorCX0KKworCWlmIChXWFNfSVNfQU5ZX1NJTVBMRV9UWVBFKHR5cGUtPmJhc2VUeXBlKSkgeworCSAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsKKwkgICAgLyoKKwkgICAgKiBUaGlzIGlzIHRoZSBjYXNlIGlmIHdlIGhhdmU6IDxzaW1wbGVUeXBlPjxsaXN0IC4uCisJICAgICovCisJICAgIC8qCisJICAgICogMi4zLjEKKwkgICAgKiAyLjMuMS4xIFRoZSB7ZmluYWx9IG9mIHRoZSB7aXRlbSB0eXBlIGRlZmluaXRpb259IG11c3Qgbm90CisJICAgICogY29udGFpbiBsaXN0LgorCSAgICAqLworCSAgICBpZiAoeG1sU2NoZW1hVHlwZUZpbmFsQ29udGFpbnMoaXRlbVR5cGUsCisJCVhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfTElTVCkpIHsKKwkJeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzFfMSwKKwkJICAgIFdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCSAgICAiVGhlIGZpbmFsIG9mIGl0cyBpdGVtIHR5cGUgJyVzJyBtdXN0IG5vdCBjb250YWluICdsaXN0JyIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCBpdGVtVHlwZSkpOworCQlGUkVFX0FORF9OVUxMKHN0cikKKwkJcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzEpOworCSAgICB9CisJICAgIC8qCisJICAgICogMi4zLjEuMiBUaGUge2ZhY2V0c30gbXVzdCBvbmx5IGNvbnRhaW4gdGhlIHdoaXRlU3BhY2UKKwkgICAgKiBmYWNldCBjb21wb25lbnQuCisJICAgICogT1BUSU1JWkUgVE9ETzogdGhlIFM0UyBhbHJlYWR5IGRpc2FsbG93cyBhbnkgZmFjZXQKKwkgICAgKiB0byBiZSBzcGVjaWZpZWQuCisJICAgICovCisJICAgIGlmICh0eXBlLT5mYWNldHMgIT0gTlVMTCkgeworCQlmYWNldCA9IHR5cGUtPmZhY2V0czsKKwkJZG8geworCQkgICAgaWYgKGZhY2V0LT50eXBlICE9IFhNTF9TQ0hFTUFfRkFDRVRfV0hJVEVTUEFDRSkgeworCQkJeG1sU2NoZW1hUElsbGVnYWxGYWNldExpc3RVbmlvbkVycihwY3R4dCwKKwkJCSAgICBYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzIsCisJCQkgICAgdHlwZSwgZmFjZXQpOworCQkJcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18xXzIpOworCQkgICAgfQorCQkgICAgZmFjZXQgPSBmYWNldC0+bmV4dDsKKwkJfSB3aGlsZSAoZmFjZXQgIT0gTlVMTCk7CisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBNQVlCRSBUT0RPOiAoSG1tLCBub3QgcmVhbGx5KSBEYXRhdHlwZXMgc3RhdGVzOgorCSAgICAqIEEg77+9bGlzdO+/vSBkYXRhdHlwZSBjYW4gYmUg77+9ZGVyaXZlZO+/vSBmcm9tIGFuIO+/vWF0b21pY++/vSBkYXRhdHlwZQorCSAgICAqIHdob3NlIO+/vWxleGljYWwgc3BhY2Xvv70gYWxsb3dzIHNwYWNlIChzdWNoIGFzIHN0cmluZyBvciBhbnlVUkkpb3IKKwkgICAgKiBhIO+/vXVuaW9u77+9IGRhdGF0eXBlIGFueSBvZiB3aG9zZSB7bWVtYmVyIHR5cGUgZGVmaW5pdGlvbnN9J3MKKwkgICAgKiDvv71sZXhpY2FsIHNwYWNl77+9IGFsbG93cyBzcGFjZS4KKwkgICAgKi8KKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAqIFRoaXMgaXMgdGhlIGNhc2UgaWYgd2UgaGF2ZTogPHNpbXBsZVR5cGU+PHJlc3RyaWN0aW9uIC4uLgorCSAgICAqIEkuZS4gdGhlIHZhcmlldHkgb2YgImxpc3QiIGlzIGluaGVyaXRlZC4KKwkgICAgKi8KKwkgICAgLyoKKwkgICAgKiAyLjMuMgorCSAgICAqIDIuMy4yLjEgVGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gbXVzdCBoYXZlIGEge3ZhcmlldHl9IG9mIGxpc3QuCisJICAgICovCisJICAgIGlmICghIFdYU19JU19MSVNUKHR5cGUtPmJhc2VUeXBlKSkgeworCQl4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl8xLAorCQkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJICAgICJUaGUgYmFzZSB0eXBlICclcycgbXVzdCBiZSBhIGxpc3QgdHlwZSIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCB0eXBlLT5iYXNlVHlwZSkpOworCQlGUkVFX0FORF9OVUxMKHN0cikKKwkJcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzEpOworCSAgICB9CisJICAgIC8qCisJICAgICogMi4zLjIuMiBUaGUge2ZpbmFsfSBvZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBtdXN0IG5vdAorCSAgICAqIGNvbnRhaW4gcmVzdHJpY3Rpb24uCisJICAgICovCisJICAgIGlmICh4bWxTY2hlbWFUeXBlRmluYWxDb250YWlucyh0eXBlLT5iYXNlVHlwZSwKKwkJWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTikpIHsKKwkJeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMiwKKwkJICAgIFdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCSAgICAiVGhlICdmaW5hbCcgb2YgdGhlIGJhc2UgdHlwZSAnJXMnIG11c3Qgbm90IGNvbnRhaW4gJ3Jlc3RyaWN0aW9uJyIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCB0eXBlLT5iYXNlVHlwZSkpOworCQlGUkVFX0FORF9OVUxMKHN0cikKKwkJcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzIpOworCSAgICB9CisJICAgIC8qCisJICAgICogMi4zLjIuMyBUaGUge2l0ZW0gdHlwZSBkZWZpbml0aW9ufSBtdXN0IGJlIHZhbGlkbHkgZGVyaXZlZAorCSAgICAqIGZyb20gdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0ncyB7aXRlbSB0eXBlIGRlZmluaXRpb259IGdpdmVuCisJICAgICogdGhlIGVtcHR5IHNldCwgYXMgZGVmaW5lZCBpbiBUeXBlIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKO+/vTMuMTQuNikuCisJICAgICovCisJICAgIHsKKwkJeG1sU2NoZW1hVHlwZVB0ciBiYXNlSXRlbVR5cGU7CisKKwkJYmFzZUl0ZW1UeXBlID0gdHlwZS0+YmFzZVR5cGUtPnN1YnR5cGVzOworCQlpZiAoKGJhc2VJdGVtVHlwZSA9PSBOVUxMKSB8fCAoISBXWFNfSVNfU0lNUExFKGJhc2VJdGVtVHlwZSkpKSB7CisJCSAgICBQRVJST1JfSU5UKCJ4bWxTY2hlbWFDaGVja0NPU1NUUmVzdHJpY3RzIiwKKwkJCSJmYWlsZWQgdG8gZXZhbCB0aGUgaXRlbSB0eXBlIG9mIGEgYmFzZSB0eXBlIik7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCQlpZiAoKGl0ZW1UeXBlICE9IGJhc2VJdGVtVHlwZSkgJiYKKwkJICAgICh4bWxTY2hlbWFDaGVja0NPU1NURGVyaXZlZE9LKEFDVFhUX0NBU1QgcGN0eHQsIGl0ZW1UeXBlLAorCQkJYmFzZUl0ZW1UeXBlLCAwKSAhPSAwKSkgeworCQkgICAgeG1sQ2hhciAqc3RyQklUID0gTlVMTCwgKnN0ckJUID0gTlVMTDsKKwkJICAgIHhtbFNjaGVtYVBDdXN0b21FcnJFeHQocGN0eHQsCisJCQlYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzJfM18yXzMsCisJCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkJIlRoZSBpdGVtIHR5cGUgJyVzJyBpcyBub3QgdmFsaWRseSBkZXJpdmVkIGZyb20gIgorCQkJInRoZSBpdGVtIHR5cGUgJyVzJyBvZiB0aGUgYmFzZSB0eXBlICclcyciLAorCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgaXRlbVR5cGUpLAorCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ckJJVCwgYmFzZUl0ZW1UeXBlKSwKKwkJCXhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHJCVCwgdHlwZS0+YmFzZVR5cGUpKTsKKworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJCSAgICBGUkVFX0FORF9OVUxMKHN0ckJJVCkKKwkJICAgIEZSRUVfQU5EX05VTEwoc3RyQlQpCisJCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfMl8zXzJfMyk7CisJCX0KKwkgICAgfQorCisJICAgIGlmICh0eXBlLT5mYWNldHMgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsKKwkJaW50IG9rID0gMTsKKwkJLyoKKwkJKiAyLjMuMi40IE9ubHkgbGVuZ3RoLCBtaW5MZW5ndGgsIG1heExlbmd0aCwgd2hpdGVTcGFjZSwgcGF0dGVybgorCQkqIGFuZCBlbnVtZXJhdGlvbiBmYWNldCBjb21wb25lbnRzIGFyZSBhbGxvd2VkIGFtb25nIHRoZSB7ZmFjZXRzfS4KKwkJKi8KKwkJZmFjZXQgPSB0eXBlLT5mYWNldHM7CisJCWRvIHsKKwkJICAgIHN3aXRjaCAoZmFjZXQtPnR5cGUpIHsKKwkJCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEg6CisJCQljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIOgorCQkJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDoKKwkJCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFOgorCQkJICAgIC8qCisJCQkgICAgKiBUT0RPOiAyLjUuMS4yIExpc3QgZGF0YXR5cGVzCisJCQkgICAgKiBUaGUgdmFsdWUgb2Yg77+9d2hpdGVTcGFjZe+/vSBpcyBmaXhlZCB0byB0aGUgdmFsdWUgY29sbGFwc2UuCisJCQkgICAgKi8KKwkJCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOOgorCQkJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOgorCQkJICAgIGJyZWFrOworCQkJZGVmYXVsdDogeworCQkJICAgIHhtbFNjaGVtYVBJbGxlZ2FsRmFjZXRMaXN0VW5pb25FcnIocGN0eHQsCisJCQkJWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80LAorCQkJCXR5cGUsIGZhY2V0KTsKKwkJCSAgICAvKgorCQkJICAgICogV2UgY291bGQgcmV0dXJuLCBidXQgaXQncyBuaWNlciB0byByZXBvcnQgYWxsCisJCQkgICAgKiBpbnZhbGlkIGZhY2V0cy4KKwkJCSAgICAqLworCQkJICAgIG9rID0gMDsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGZhY2V0ID0gZmFjZXQtPm5leHQ7CisJCX0gd2hpbGUgKGZhY2V0ICE9IE5VTEwpOworCQlpZiAob2sgPT0gMCkKKwkJICAgIHJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18yXzNfMl80KTsKKwkJLyoKKwkJKiBTUEVDICgyLjMuMi41KSAoc2FtZSBhcyAxLjMuMikKKwkJKgorCQkqIE5PVEUgKDIuMy4yLjUpIFRoaXMgaXMgY3VycmVudGx5IGRvbmUgaW4KKwkJKiB4bWxTY2hlbWFEZXJpdmVBbmRWYWxpZGF0ZUZhY2V0cygpCisJCSovCisJICAgIH0KKwl9CisgICAgfSBlbHNlIGlmIChXWFNfSVNfVU5JT04odHlwZSkpIHsKKwkvKgorCSogMy4xIFRoZSB7bWVtYmVyIHR5cGUgZGVmaW5pdGlvbnN9IG11c3QgYWxsIGhhdmUge3ZhcmlldHl9IG9mCisJKiBhdG9taWMgb3IgbGlzdC4KKwkqLworCXhtbFNjaGVtYVR5cGVMaW5rUHRyIG1lbWJlcjsKKworCW1lbWJlciA9IHR5cGUtPm1lbWJlclR5cGVzOworCXdoaWxlIChtZW1iZXIgIT0gTlVMTCkgeworCSAgICBpZiAoV1hTX0lTX1RZUEVfTk9UX0ZJWEVEKG1lbWJlci0+dHlwZSkpCisJCXhtbFNjaGVtYVR5cGVGaXh1cChtZW1iZXItPnR5cGUsIEFDVFhUX0NBU1QgcGN0eHQpOworCisJICAgIGlmICgoISBXWFNfSVNfQVRPTUlDKG1lbWJlci0+dHlwZSkpICYmCisJCSghIFdYU19JU19MSVNUKG1lbWJlci0+dHlwZSkpKSB7CisJCXhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfMSwKKwkJICAgIFdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCSAgICAiVGhlIG1lbWJlciB0eXBlICclcycgaXMgbmVpdGhlciBhbiBhdG9taWMsIG5vciBhIGxpc3QgdHlwZSIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCBtZW1iZXItPnR5cGUpKTsKKwkJRlJFRV9BTkRfTlVMTChzdHIpCisJCXJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzEpOworCSAgICB9CisJICAgIG1lbWJlciA9IG1lbWJlci0+bmV4dDsKKwl9CisJLyoKKwkqIDMuMy4xIElmIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IGlzIHRoZSDvv71zaW1wbGUgdXItdHlwZQorCSogZGVmaW5pdGlvbu+/vQorCSovCisJaWYgKHR5cGUtPmJhc2VUeXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFKSB7CisJICAgIC8qCisJICAgICogMy4zLjEuMSBBbGwgb2YgdGhlIHttZW1iZXIgdHlwZSBkZWZpbml0aW9uc30gbXVzdCBoYXZlIGEKKwkgICAgKiB7ZmluYWx9IHdoaWNoIGRvZXMgbm90IGNvbnRhaW4gdW5pb24uCisJICAgICovCisJICAgIG1lbWJlciA9IHR5cGUtPm1lbWJlclR5cGVzOworCSAgICB3aGlsZSAobWVtYmVyICE9IE5VTEwpIHsKKwkJaWYgKHhtbFNjaGVtYVR5cGVGaW5hbENvbnRhaW5zKG1lbWJlci0+dHlwZSwKKwkJICAgIFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfVU5JT04pKSB7CisJCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCQkJWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMSwKKwkJCVdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCQkiVGhlICdmaW5hbCcgb2YgbWVtYmVyIHR5cGUgJyVzJyBjb250YWlucyAndW5pb24nIiwKKwkJCXhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHIsIG1lbWJlci0+dHlwZSkpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzEpOworCQl9CisJCW1lbWJlciA9IG1lbWJlci0+bmV4dDsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIDMuMy4xLjIgVGhlIHtmYWNldHN9IG11c3QgYmUgZW1wdHkuCisJICAgICovCisJICAgIGlmICh0eXBlLT5mYWNldFNldCAhPSBOVUxMKSB7CisJCXhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18xXzIsCisJCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkgICAgIk5vIGZhY2V0cyBhbGxvd2VkIiwgTlVMTCk7CisJCXJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMV8yKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIC8qCisJICAgICogMy4zLjIuMSBUaGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBtdXN0IGhhdmUgYSB7dmFyaWV0eX0gb2YgdW5pb24uCisJICAgICogSS5lLiB0aGUgdmFyaWV0eSBvZiAibGlzdCIgaXMgaW5oZXJpdGVkLgorCSAgICAqLworCSAgICBpZiAoISBXWFNfSVNfVU5JT04odHlwZS0+YmFzZVR5cGUpKSB7CisJCXhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzEsCisJCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkgICAgIlRoZSBiYXNlIHR5cGUgJyVzJyBpcyBub3QgYSB1bmlvbiB0eXBlIiwKKwkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHIsIHR5cGUtPmJhc2VUeXBlKSk7CisJCUZSRUVfQU5EX05VTEwoc3RyKQorCQlyZXR1cm4gKFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMSk7CisJICAgIH0KKwkgICAgLyoKKwkgICAgKiAzLjMuMi4yIFRoZSB7ZmluYWx9IG9mIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IG11c3Qgbm90IGNvbnRhaW4gcmVzdHJpY3Rpb24uCisJICAgICovCisJICAgIGlmICh4bWxTY2hlbWFUeXBlRmluYWxDb250YWlucyh0eXBlLT5iYXNlVHlwZSwKKwkJWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTikpIHsKKwkJeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX0NPU19TVF9SRVNUUklDVFNfM18zXzJfMiwKKwkJICAgIFdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCSAgICAiVGhlICdmaW5hbCcgb2YgaXRzIGJhc2UgdHlwZSAnJXMnIG11c3Qgbm90IGNvbnRhaW4gJ3Jlc3RyaWN0aW9uJyIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyLCB0eXBlLT5iYXNlVHlwZSkpOworCQlGUkVFX0FORF9OVUxMKHN0cikKKwkJcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzIpOworCSAgICB9CisJICAgIC8qCisJICAgICogMy4zLjIuMyBUaGUge21lbWJlciB0eXBlIGRlZmluaXRpb25zfSwgaW4gb3JkZXIsIG11c3QgYmUgdmFsaWRseQorCSAgICAqIGRlcml2ZWQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyB0eXBlIGRlZmluaXRpb25zIGluIHRoZSB7YmFzZQorCSAgICAqIHR5cGUgZGVmaW5pdGlvbn0ncyB7bWVtYmVyIHR5cGUgZGVmaW5pdGlvbnN9IGdpdmVuIHRoZSBlbXB0eSBzZXQsCisJICAgICogYXMgZGVmaW5lZCBpbiBUeXBlIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKO+/vTMuMTQuNikuCisJICAgICovCisJICAgIHsKKwkJeG1sU2NoZW1hVHlwZUxpbmtQdHIgYmFzZU1lbWJlcjsKKworCQkvKgorCQkqIE9QVElNSVpFOiBpZiB0aGUgdHlwZSBpcyByZXN0cmljdGluZywgaXQgaGFzIG5vIGxvY2FsIGRlZmluZWQKKwkJKiBtZW1iZXIgdHlwZXMgYW5kIGluaGVyaXRzIHRoZSBtZW1iZXIgdHlwZXMgb2YgdGhlIGJhc2UgdHlwZTsKKwkJKiB0aHVzIGEgY2hlY2sgZm9yIGVxdWFsaXR5IGNhbiBiZSBza2lwcGVkLgorCQkqLworCQkvKgorCQkqIEV2ZW4gd29yc2U6IEkgY2Fubm90IHNlZSBhIHNjZW5hcmlvIHdoZXJlIGEgcmVzdHJpY3RpbmcKKwkJKiB1bmlvbiBzaW1wbGUgdHlwZSBjYW4gaGF2ZSBvdGhlciBtZW1iZXIgdHlwZXMgYXMgdGhlIG1lbWJlcgorCQkqIHR5cGVzIG9mIGl0J3MgYmFzZSB0eXBlLiBUaGlzIGNoZWNrIHNlZW1zIG5vdCBuZWNlc3Nhcnkgd2l0aAorCQkqIHJlc3BlY3QgdG8gdGhlIGRlcml2YXRpb24gcHJvY2VzcyBpbiBsaWJ4bWwyLgorCQkqIEJ1dCBuZWNlc3NhcnkgaWYgY29uc3RydWN0aW5nIHR5cGVzIHdpdGggYW4gQVBJLgorCQkqLworCQlpZiAodHlwZS0+bWVtYmVyVHlwZXMgIT0gTlVMTCkgeworCQkgICAgbWVtYmVyID0gdHlwZS0+bWVtYmVyVHlwZXM7CisJCSAgICBiYXNlTWVtYmVyID0geG1sU2NoZW1hR2V0VW5pb25TaW1wbGVUeXBlTWVtYmVyVHlwZXModHlwZS0+YmFzZVR5cGUpOworCQkgICAgaWYgKChtZW1iZXIgPT0gTlVMTCkgJiYgKGJhc2VNZW1iZXIgIT0gTlVMTCkpIHsKKwkJCVBFUlJPUl9JTlQoInhtbFNjaGVtYUNoZWNrQ09TU1RSZXN0cmljdHMiLAorCQkJICAgICJkaWZmZXJlbnQgbnVtYmVyIG9mIG1lbWJlciB0eXBlcyBpbiBiYXNlIik7CisJCSAgICB9CisJCSAgICB3aGlsZSAobWVtYmVyICE9IE5VTEwpIHsKKwkJCWlmIChiYXNlTWVtYmVyID09IE5VTEwpIHsKKwkJCSAgICBQRVJST1JfSU5UKCJ4bWxTY2hlbWFDaGVja0NPU1NUUmVzdHJpY3RzIiwKKwkJCSAgICAiZGlmZmVyZW50IG51bWJlciBvZiBtZW1iZXIgdHlwZXMgaW4gYmFzZSIpOworCQkJfSBlbHNlIGlmICgobWVtYmVyLT50eXBlICE9IGJhc2VNZW1iZXItPnR5cGUpICYmCisJCQkgICAgKHhtbFNjaGVtYUNoZWNrQ09TU1REZXJpdmVkT0soQUNUWFRfQ0FTVCBwY3R4dCwKKwkJCQltZW1iZXItPnR5cGUsIGJhc2VNZW1iZXItPnR5cGUsIDApICE9IDApKSB7CisJCQkgICAgeG1sQ2hhciAqc3RyQk1UID0gTlVMTCwgKnN0ckJUID0gTlVMTDsKKworCQkJICAgIHhtbFNjaGVtYVBDdXN0b21FcnJFeHQocGN0eHQsCisJCQkJWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl8zLAorCQkJCVdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCQkJIlRoZSBtZW1iZXIgdHlwZSAlcyBpcyBub3QgdmFsaWRseSAiCisJCQkJImRlcml2ZWQgZnJvbSBpdHMgY29ycmVzcG9uZGluZyBtZW1iZXIgIgorCQkJCSJ0eXBlICVzIG9mIHRoZSBiYXNlIHR5cGUgJXMiLAorCQkJCXhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHIsIG1lbWJlci0+dHlwZSksCisJCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ckJNVCwgYmFzZU1lbWJlci0+dHlwZSksCisJCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ckJULCB0eXBlLT5iYXNlVHlwZSkpOworCQkJICAgIEZSRUVfQU5EX05VTEwoc3RyKQorCQkJICAgIEZSRUVfQU5EX05VTEwoc3RyQk1UKQorCQkJICAgIEZSRUVfQU5EX05VTEwoc3RyQlQpCisJCQkgICAgcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfU1RfUkVTVFJJQ1RTXzNfM18yXzMpOworCQkJfQorCQkJbWVtYmVyID0gbWVtYmVyLT5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VNZW1iZXIgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlTWVtYmVyID0gYmFzZU1lbWJlci0+bmV4dDsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJICAgIC8qCisJICAgICogMy4zLjIuNCBPbmx5IHBhdHRlcm4gYW5kIGVudW1lcmF0aW9uIGZhY2V0IGNvbXBvbmVudHMgYXJlCisJICAgICogYWxsb3dlZCBhbW9uZyB0aGUge2ZhY2V0c30uCisJICAgICovCisJICAgIGlmICh0eXBlLT5mYWNldHMgIT0gTlVMTCkgeworCQl4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsKKwkJaW50IG9rID0gMTsKKworCQlmYWNldCA9IHR5cGUtPmZhY2V0czsKKwkJZG8geworCQkgICAgaWYgKChmYWNldC0+dHlwZSAhPSBYTUxfU0NIRU1BX0ZBQ0VUX1BBVFRFUk4pICYmCisJCQkoZmFjZXQtPnR5cGUgIT0gWE1MX1NDSEVNQV9GQUNFVF9FTlVNRVJBVElPTikpIHsKKwkJCXhtbFNjaGVtYVBJbGxlZ2FsRmFjZXRMaXN0VW5pb25FcnIocGN0eHQsCisJCQkJWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl80LAorCQkJCXR5cGUsIGZhY2V0KTsKKwkJCW9rID0gMDsKKwkJICAgIH0KKwkJICAgIGZhY2V0ID0gZmFjZXQtPm5leHQ7CisJCX0gd2hpbGUgKGZhY2V0ICE9IE5VTEwpOworCQlpZiAob2sgPT0gMCkKKwkJICAgIHJldHVybiAoWE1MX1NDSEVNQVBfQ09TX1NUX1JFU1RSSUNUU18zXzNfMl80KTsKKworCSAgICB9CisJICAgIC8qCisJICAgICogU1BFQyAoMy4zLjIuNSkgKHNhbWUgYXMgMS4zLjIpCisJICAgICoKKwkgICAgKiBOT1RFICgzLjMuMi41KSBUaGlzIGlzIGN1cnJlbnRseSBkb25lIGluCisJICAgICogeG1sU2NoZW1hRGVyaXZlQW5kVmFsaWRhdGVGYWNldHMoKQorCSAgICAqLworCX0KKyAgICB9CisKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrU1JDU2ltcGxlVHlwZToKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHR5cGU6ICB0aGUgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbgorICoKKyAqIENoZWNrcyBjcmMtc2ltcGxlLXR5cGUgY29uc3RyYWludHMuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLAorICogaWYgbm90IGEgcG9zaXRpdmUgZXJyb3IgY29kZSBhbmQgLTEgb24gaW50ZXJuYWwKKyAqIGVycm9ycy4KKyAqLworI2lmIDAKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNoZWNrU1JDU2ltcGxlVHlwZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlKQoreworICAgIC8qCisgICAgKiBzcmMtc2ltcGxlLXR5cGUuMSBUaGUgY29ycmVzcG9uZGluZyBzaW1wbGUgdHlwZSBkZWZpbml0aW9uLCBpZiBhbnksCisgICAgKiBtdXN0IHNhdGlzZnkgdGhlIGNvbmRpdGlvbnMgc2V0IG91dCBpbiBDb25zdHJhaW50cyBvbiBTaW1wbGUgVHlwZQorICAgICogRGVmaW5pdGlvbiBTY2hlbWEgQ29tcG9uZW50cyAo77+9My4xNC42KS4KKyAgICAqLworICAgIGlmIChXWFNfSVNfUkVTVFJJQ1RJT04odHlwZSkpIHsKKwkvKgorCSogc3JjLXNpbXBsZS10eXBlLjIgIklmIHRoZSA8cmVzdHJpY3Rpb24+IGFsdGVybmF0aXZlIGlzIGNob3NlbiwKKwkqIGVpdGhlciBpdCBtdXN0IGhhdmUgYSBiYXNlIFthdHRyaWJ1dGVdIG9yIGEgPHNpbXBsZVR5cGU+IGFtb25nIGl0cworCSogW2NoaWxkcmVuXSwgYnV0IG5vdCBib3RoLiIKKwkqIE5PVEU6IFRoaXMgaXMgY2hlY2tlZCBpbiB0aGUgcGFyc2UgZnVuY3Rpb24gb2YgPHJlc3RyaWN0aW9uPi4KKwkqLworCS8qCisJKgorCSovCisgICAgfSBlbHNlIGlmIChXWFNfSVNfTElTVCh0eXBlKSkgeworCS8qIHNyYy1zaW1wbGUtdHlwZS4zICJJZiB0aGUgPGxpc3Q+IGFsdGVybmF0aXZlIGlzIGNob3NlbiwgZWl0aGVyIGl0IG11c3QgaGF2ZQorCSogYW4gaXRlbVR5cGUgW2F0dHJpYnV0ZV0gb3IgYSA8c2ltcGxlVHlwZT4gYW1vbmcgaXRzIFtjaGlsZHJlbl0sCisJKiBidXQgbm90IGJvdGguIgorCSoKKwkqIE5PVEU6IFRoaXMgaXMgY2hlY2tlZCBpbiB0aGUgcGFyc2UgZnVuY3Rpb24gb2YgPGxpc3Q+LgorCSovCisgICAgfSBlbHNlIGlmIChXWFNfSVNfVU5JT04odHlwZSkpIHsKKwkvKgorCSogc3JjLXNpbXBsZS10eXBlLjQgaXMgY2hlY2tlZCBpbiB4bWxTY2hlbWFDaGVja1VuaW9uVHlwZURlZkNpcmN1bGFyKCkuCisJKi8KKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKyNlbmRpZgorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDcmVhdGVWQ3R4dE9uUEN0eHQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgaWYgKGN0eHQtPnZjdHh0ID09IE5VTEwpIHsKKwljdHh0LT52Y3R4dCA9IHhtbFNjaGVtYU5ld1ZhbGlkQ3R4dChOVUxMKTsKKwlpZiAoY3R4dC0+dmN0eHQgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQRXJyKGN0eHQsIE5VTEwsCisJCVhNTF9TQ0hFTUFQX0lOVEVSTkFMLAorCQkiSW50ZXJuYWwgZXJyb3I6IHhtbFNjaGVtYUNyZWF0ZVZDdHh0T25QQ3R4dCwgIgorCQkiZmFpbGVkIHRvIGNyZWF0ZSBhIHRlbXAuIHZhbGlkYXRpb24gY29udGV4dC5cbiIsCisJCU5VTEwsIE5VTEwpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisJLyogVE9ETzogUGFzcyB1c2VyIGRhdGEuICovCisJeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMoY3R4dC0+dmN0eHQsCisJICAgIGN0eHQtPmVycm9yLCBjdHh0LT53YXJuaW5nLCBjdHh0LT5lcnJDdHh0KTsKKwl4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMoY3R4dC0+dmN0eHQsCisJICAgIGN0eHQtPnNlcnJvciwgY3R4dC0+ZXJyQ3R4dCk7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUoeG1sU2NoZW1hQWJzdHJhY3RDdHh0UHRyIGFjdHh0LAorCQkJICAgICB4bWxOb2RlUHRyIG5vZGUsCisJCQkgICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKwkJCSAgICAgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCQkgICAgIHhtbFNjaGVtYVZhbFB0ciAqcmV0VmFsLAorCQkJICAgICBpbnQgZmlyZUVycm9ycywKKwkJCSAgICAgaW50IG5vcm1hbGl6ZSwKKwkJCSAgICAgaW50IGlzTm9ybWFsaXplZCk7CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VDaGVja0NPU1ZhbGlkRGVmYXVsdDoKKyAqIEBwY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEB0eXBlOiAgdGhlIHNpbXBsZSB0eXBlIGRlZmluaXRpb24KKyAqIEB2YWx1ZTogdGhlIGRlZmF1bHQgdmFsdWUKKyAqIEBub2RlOiBhbiBvcHRpb25hbCBub2RlICh0aGUgaG9sZGVyIG9mIHRoZSB2YWx1ZSkKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IEVsZW1lbnQgRGVmYXVsdCBWYWxpZCAoSW1tZWRpYXRlKQorICogKGNvcy12YWxpZC1kZWZhdWx0KQorICogVGhpcyB3aWxsIGJlIHVzZWQgYnkgdGhlIHBhcnNlciBvbmx5LiBGb3IgdGhlIHZhbGlkYXRvciB0aGVyZSdzCisgKiBhbiBvdGhlciB2ZXJzaW9uLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgY29uc3RyYWludHMgYXJlIHNhdGlzZmllZCwKKyAqIGlmIG5vdCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIGFuZCAtMSBvbiBpbnRlcm5hbAorICogZXJyb3JzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQYXJzZUNoZWNrQ09TVmFsaWREZWZhdWx0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkJICAgeG1sTm9kZVB0ciBub2RlLAorCQkJCSAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKwkJCQkgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkgICB4bWxTY2hlbWFWYWxQdHIgKnZhbCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIC8qCisgICAgKiBjb3MtdmFsaWQtZGVmYXVsdDoKKyAgICAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogRWxlbWVudCBEZWZhdWx0IFZhbGlkIChJbW1lZGlhdGUpCisgICAgKiBGb3IgYSBzdHJpbmcgdG8gYmUgYSB2YWxpZCBkZWZhdWx0IHdpdGggcmVzcGVjdCB0byBhIHR5cGUKKyAgICAqIGRlZmluaXRpb24gdGhlIGFwcHJvcHJpYXRlIGNhc2UgYW1vbmcgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHRydWU6CisgICAgKi8KKyAgICBpZiBXWFNfSVNfQ09NUExFWCh0eXBlKSB7CisJLyoKKwkqIENvbXBsZXggdHlwZS4KKwkqCisJKiBTUEVDICgyLjEpICJpdHMge2NvbnRlbnQgdHlwZX0gbXVzdCBiZSBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24KKwkqIG9yIG1peGVkLiIKKwkqIFNQRUMgKDIuMi4yKSAiSWYgdGhlIHtjb250ZW50IHR5cGV9IGlzIG1peGVkLCB0aGVuIHRoZSB7Y29udGVudAorCSogdHlwZX0ncyBwYXJ0aWNsZSBtdXN0IGJlIO+/vWVtcHRpYWJsZe+/vSBhcyBkZWZpbmVkIGJ5CisJKiBQYXJ0aWNsZSBFbXB0aWFibGUgKO+/vTMuOS42KS4iCisJKi8KKwlpZiAoKCEgV1hTX0hBU19TSU1QTEVfQ09OVEVOVCh0eXBlKSkgJiYKKwkgICAgKCghIFdYU19IQVNfTUlYRURfQ09OVEVOVCh0eXBlKSkgfHwgKCEgV1hTX0VNUFRJQUJMRSh0eXBlKSkpKSB7CisJICAgIC8qIE5PVEUgdGhhdCB0aGlzIGNvdmVycyAoMi4yLjIpIGFzIHdlbGwuICovCisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMSwKKwkJV1hTX0JBU0lDX0NBU1QgdHlwZSwgdHlwZS0+bm9kZSwKKwkJIkZvciBhIHN0cmluZyB0byBiZSBhIHZhbGlkIGRlZmF1bHQsIHRoZSB0eXBlIGRlZmluaXRpb24gIgorCQkibXVzdCBiZSBhIHNpbXBsZSB0eXBlIG9yIGEgY29tcGxleCB0eXBlIHdpdGggbWl4ZWQgY29udGVudCAiCisJCSJhbmQgYSBwYXJ0aWNsZSBlbXB0aWFibGUiLCBOVUxMKTsKKwkgICAgcmV0dXJuKFhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMSk7CisJfQorICAgIH0KKyAgICAvKgorICAgICogMSBJZiB0aGUgdHlwZSBkZWZpbml0aW9uIGlzIGEgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbiwgdGhlbiB0aGUgc3RyaW5nCisgICAgKiBtdXN0IGJlIO+/vXZhbGlk77+9IHdpdGggcmVzcGVjdCB0byB0aGF0IGRlZmluaXRpb24gYXMgZGVmaW5lZCBieSBTdHJpbmcKKyAgICAqIFZhbGlkICjvv70zLjE0LjQpLgorICAgICoKKyAgICAqIEFORAorICAgICoKKyAgICAqIDIuMi4xIElmIHRoZSB7Y29udGVudCB0eXBlfSBpcyBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24sIHRoZW4gdGhlCisgICAgKiBzdHJpbmcgbXVzdCBiZSDvv712YWxpZO+/vSB3aXRoIHJlc3BlY3QgdG8gdGhhdCBzaW1wbGUgdHlwZSBkZWZpbml0aW9uCisgICAgKiBhcyBkZWZpbmVkIGJ5IFN0cmluZyBWYWxpZCAo77+9My4xNC40KS4KKyAgICAqLworICAgIGlmIChXWFNfSVNfU0lNUExFKHR5cGUpKQorCXJldCA9IHhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUoQUNUWFRfQ0FTVCBwY3R4dCwgbm9kZSwKKwkgICAgdHlwZSwgdmFsdWUsIHZhbCwgMSwgMSwgMCk7CisgICAgZWxzZSBpZiAoV1hTX0hBU19TSU1QTEVfQ09OVEVOVCh0eXBlKSkKKwlyZXQgPSB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKEFDVFhUX0NBU1QgcGN0eHQsIG5vZGUsCisJICAgIHR5cGUtPmNvbnRlbnRUeXBlRGVmLCB2YWx1ZSwgdmFsLCAxLCAxLCAwKTsKKyAgICBlbHNlCisJcmV0dXJuIChyZXQpOworCisgICAgaWYgKHJldCA8IDApIHsKKwlQRVJST1JfSU5UKCJ4bWxTY2hlbWFQYXJzZUNoZWNrQ09TVmFsaWREZWZhdWx0IiwKKwkgICAgImNhbGxpbmcgeG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSgpIik7CisgICAgfQorCisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrQ1RQcm9wc0NvcnJlY3Q6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEB0eXBlOiAgdGhlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uCisgKgorICouKDQuNikgQ29uc3RyYWludHMgb24gQ29tcGxleCBUeXBlIERlZmluaXRpb24gU2NoZW1hIENvbXBvbmVudHMKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqIENvbXBsZXggVHlwZSBEZWZpbml0aW9uIFByb3BlcnRpZXMgQ29ycmVjdCAoY3QtcHJvcHMtY29ycmVjdCkKKyAqIFNUQVRVUzogKHNlZW1zKSBjb21wbGV0ZQorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgY29uc3RyYWludHMgYXJlIHNhdGlzZmllZCwgYSBwb3NpdGl2ZQorICogZXJyb3IgY29kZSBpZiBub3QgYW5kIC0xIGlmIGFuIGludGVybmFsIGVycm9yIG9jY3VyZWQuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNoZWNrQ1RQcm9wc0NvcnJlY3QoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCSAgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlKQoreworICAgIC8qCisgICAgKiBUT0RPOiBDb3JyZWN0IHRoZSBlcnJvciBjb2RlOyBYTUxfU0NIRU1BUF9TUkNfQ1RfMSBpcyB1c2VkIHRlbXBvcmFyaWx5LgorICAgICoKKyAgICAqIFNQRUMgKDEpICJUaGUgdmFsdWVzIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGEgY29tcGxleCB0eXBlIGRlZmluaXRpb24gbXVzdAorICAgICogYmUgYXMgZGVzY3JpYmVkIGluIHRoZSBwcm9wZXJ0eSB0YWJsZWF1IGluIFRoZSBDb21wbGV4IFR5cGUgRGVmaW5pdGlvbgorICAgICogU2NoZW1hIENvbXBvbmVudCAo77+9My40LjEpLCBtb2R1bG8gdGhlIGltcGFjdCBvZiBNaXNzaW5nCisgICAgKiBTdWItY29tcG9uZW50cyAo77+9NS4zKS4iCisgICAgKi8KKyAgICBpZiAoKHR5cGUtPmJhc2VUeXBlICE9IE5VTEwpICYmCisJKFdYU19JU19TSU1QTEUodHlwZS0+YmFzZVR5cGUpKSAmJgorCShXWFNfSVNfRVhURU5TSU9OKHR5cGUpID09IDApKSB7CisJLyoKKwkqIFNQRUMgKDIpICJJZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBpcyBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24sCisJKiB0aGUge2Rlcml2YXRpb24gbWV0aG9kfSBtdXN0IGJlIGV4dGVuc2lvbi4iCisJKi8KKwl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfU1JDX0NUXzEsCisJICAgIE5VTEwsIFdYU19CQVNJQ19DQVNUIHR5cGUsCisJICAgICJJZiB0aGUgYmFzZSB0eXBlIGlzIGEgc2ltcGxlIHR5cGUsIHRoZSBkZXJpdmF0aW9uIG1ldGhvZCBtdXN0IGJlICIKKwkgICAgIidleHRlbnNpb24nIiwgTlVMTCwgTlVMTCk7CisJcmV0dXJuIChYTUxfU0NIRU1BUF9TUkNfQ1RfMSk7CisgICAgfQorICAgIC8qCisgICAgKiBTUEVDICgzKSAiQ2lyY3VsYXIgZGVmaW5pdGlvbnMgYXJlIGRpc2FsbG93ZWQsIGV4Y2VwdCBmb3IgdGhlIO+/vXVyLXR5cGUKKyAgICAqIGRlZmluaXRpb27vv70uIFRoYXQgaXMsIGl0IG11c3QgYmUgcG9zc2libGUgdG8gcmVhY2ggdGhlIO+/vXVyLXR5cGUKKyAgICAqIGRlZmluaXRpb24gYnkgcmVwZWF0ZWRseSBmb2xsb3dpbmcgdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0uIgorICAgICoKKyAgICAqIE5PVEUgKDMpIGlzIGRvbmUgaW4geG1sU2NoZW1hQ2hlY2tUeXBlRGVmQ2lyY3VsYXIoKS4KKyAgICAqLworICAgIC8qCisgICAgKiBOT1RFIHRoYXQgKDQpIGFuZCAoNSkgbmVlZCB0aGUgZm9sbG93aW5nOgorICAgICogICAtIGF0dHJpYnV0ZSB1c2VzIG5lZWQgdG8gYmUgYWxyZWFkeSBpbmhlcml0ZWQgKGFwcGx5IGF0dHIuIHByb2hpYml0aW9ucykKKyAgICAqICAgLSBhdHRyaWJ1dGUgZ3JvdXAgcmVmZXJlbmNlcyBuZWVkIHRvIGJlIGV4cGFuZGVkIGFscmVhZHkKKyAgICAqICAgLSBzaW1wbGUgdHlwZXMgbmVlZCB0byBiZSB0eXBlZml4ZWQgYWxyZWFkeQorICAgICovCisgICAgaWYgKHR5cGUtPmF0dHJVc2VzICYmCisJKCgoeG1sU2NoZW1hSXRlbUxpc3RQdHIpIHR5cGUtPmF0dHJVc2VzKS0+bmJJdGVtcyA+IDEpKQorICAgIHsKKwl4bWxTY2hlbWFJdGVtTGlzdFB0ciB1c2VzID0gKHhtbFNjaGVtYUl0ZW1MaXN0UHRyKSB0eXBlLT5hdHRyVXNlczsKKwl4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgdXNlLCB0bXA7CisJaW50IGksIGosIGhhc0lkID0gMDsKKworCWZvciAoaSA9IHVzZXMtPm5iSXRlbXMgLTE7IGkgPj0gMDsgaS0tKSB7CisJICAgIHVzZSA9IHVzZXMtPml0ZW1zW2ldOworCisJICAgIC8qCisJICAgICogU1BFQyBjdC1wcm9wcy1jb3JyZWN0CisJICAgICogKDQpICJUd28gZGlzdGluY3QgYXR0cmlidXRlIGRlY2xhcmF0aW9ucyBpbiB0aGUKKwkgICAgKiB7YXR0cmlidXRlIHVzZXN9IG11c3Qgbm90IGhhdmUgaWRlbnRpY2FsIHtuYW1lfXMgYW5kCisJICAgICoge3RhcmdldCBuYW1lc3BhY2V9cy4iCisJICAgICovCisJICAgIGlmIChpID4gMCkgeworCQlmb3IgKGogPSBpIC0xOyBqID49IDA7IGotLSkgeworCQkgICAgdG1wID0gdXNlcy0+aXRlbXNbal07CisJCSAgICBpZiAoKFdYU19BVFRSVVNFX0RFQ0xfTkFNRSh1c2UpID09CisJCQlXWFNfQVRUUlVTRV9ERUNMX05BTUUodG1wKSkgJiYKKwkJCShXWFNfQVRUUlVTRV9ERUNMX1ROUyh1c2UpID09CisJCQlXWFNfQVRUUlVTRV9ERUNMX1ROUyh0bXApKSkKKwkJICAgIHsKKwkJCXhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwkJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCQkJICAgIFhNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1QsCisJCQkgICAgTlVMTCwgV1hTX0JBU0lDX0NBU1QgdHlwZSwKKwkJCSAgICAiRHVwbGljYXRlICVzIiwKKwkJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyLCB1c2UpLAorCQkJICAgIE5VTEwpOworCQkJRlJFRV9BTkRfTlVMTChzdHIpOworCQkJLyoKKwkJCSogUmVtb3ZlIHRoZSBkdXBsaWNhdGUuCisJCQkqLworCQkJaWYgKHhtbFNjaGVtYUl0ZW1MaXN0UmVtb3ZlKHVzZXMsIGkpID09IC0xKQorCQkJICAgIGdvdG8gZXhpdF9mYWlsdXJlOworCQkJZ290byBuZXh0X3VzZTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJICAgIC8qCisJICAgICogU1BFQyBjdC1wcm9wcy1jb3JyZWN0CisJICAgICogKDUpICJUd28gZGlzdGluY3QgYXR0cmlidXRlIGRlY2xhcmF0aW9ucyBpbiB0aGUKKwkgICAgKiB7YXR0cmlidXRlIHVzZXN9IG11c3Qgbm90IGhhdmUge3R5cGUgZGVmaW5pdGlvbn1zIHdoaWNoCisJICAgICogYXJlIG9yIGFyZSBkZXJpdmVkIGZyb20gSUQuIgorCSAgICAqLworCSAgICBpZiAoV1hTX0FUVFJVU0VfVFlQRURFRih1c2UpICE9IE5VTEwpIHsKKwkJaWYgKHhtbFNjaGVtYUlzRGVyaXZlZEZyb21CdWlsdEluVHlwZSgKKwkJICAgIFdYU19BVFRSVVNFX1RZUEVERUYodXNlKSwgWE1MX1NDSEVNQVNfSUQpKQorCQl7CisJCSAgICBpZiAoaGFzSWQpIHsKKwkJCXhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwkJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCQkJICAgIFhNTF9TQ0hFTUFQX0FHX1BST1BTX0NPUlJFQ1QsCisJCQkgICAgTlVMTCwgV1hTX0JBU0lDX0NBU1QgdHlwZSwKKwkJCSAgICAiVGhlcmUgbXVzdCBub3QgZXhpc3QgbW9yZSB0aGFuIG9uZSBhdHRyaWJ1dGUgIgorCQkJICAgICJkZWNsYXJhdGlvbiBvZiB0eXBlICd4czpJRCcgIgorCQkJICAgICIob3IgZGVyaXZlZCBmcm9tICd4czpJRCcpLiBUaGUgJXMgdmlvbGF0ZXMgdGhpcyAiCisJCQkgICAgImNvbnN0cmFpbnQiLAorCQkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudERlc2lnbmF0aW9uKCZzdHIsIHVzZSksCisJCQkgICAgTlVMTCk7CisJCQlGUkVFX0FORF9OVUxMKHN0cik7CisJCQlpZiAoeG1sU2NoZW1hSXRlbUxpc3RSZW1vdmUodXNlcywgaSkgPT0gLTEpCisJCQkgICAgZ290byBleGl0X2ZhaWx1cmU7CisJCSAgICB9CisKKwkJICAgIGhhc0lkID0gMTsKKwkJfQorCSAgICB9CituZXh0X3VzZToge30KKwl9CisgICAgfQorICAgIHJldHVybiAoMCk7CitleGl0X2ZhaWx1cmU6CisgICAgcmV0dXJuKC0xKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hQXJlRXF1YWxUeXBlcyh4bWxTY2hlbWFUeXBlUHRyIHR5cGVBLAorCQkgICAgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlQikKK3sKKyAgICAvKgorICAgICogVE9ETzogVGhpcyBzaG91bGQgaW1wbGVtZW50IGNvbXBvbmVudC1pZGVudGl0eQorICAgICogaW4gdGhlIGZ1dHVyZS4KKyAgICAqLworICAgIGlmICgodHlwZUEgPT0gTlVMTCkgfHwgKHR5cGVCID09IE5VTEwpKQorCXJldHVybiAoMCk7CisgICAgcmV0dXJuICh0eXBlQSA9PSB0eXBlQik7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tDT1NDVERlcml2ZWRPSzoKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHR5cGU6ICB0aGUgdG8tYmUgZGVyaXZlZCBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbgorICogQGJhc2VUeXBlOiAgdGhlIGJhc2UgY29tcGxleCB0eXBlIGRlZmluaXRpb24KKyAqIEBzZXQ6IHRoZSBnaXZlbiBzZXQKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiBUeXBlIERlcml2YXRpb24gT0sgKENvbXBsZXgpIChjb3MtY3QtZGVyaXZlZC1vaykKKyAqCisgKiBTVEFUVVM6IGNvbXBsZXRlZAorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgY29uc3RyYWludHMgYXJlIHNhdGlzZmllZCwgb3IgMQorICogaWYgbm90LgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NPU0NURGVyaXZlZE9LKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBhY3R4dCwKKwkJCSAgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlLAorCQkJICAgICB4bWxTY2hlbWFUeXBlUHRyIGJhc2VUeXBlLAorCQkJICAgICBpbnQgc2V0KQoreworICAgIGludCBlcXVhbCA9IHhtbFNjaGVtYUFyZUVxdWFsVHlwZXModHlwZSwgYmFzZVR5cGUpOworICAgIC8qIFRPRE86IEVycm9yIGNvZGVzLiAqLworICAgIC8qCisgICAgKiBTUEVDICJGb3IgYSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbiAoY2FsbCBpdCBELCBmb3IgZGVyaXZlZCkKKyAgICAqIHRvIGJlIHZhbGlkbHkgZGVyaXZlZCBmcm9tIGEgdHlwZSBkZWZpbml0aW9uIChjYWxsIHRoaXMKKyAgICAqIEIsIGZvciBiYXNlKSBnaXZlbiBhIHN1YnNldCBvZiB7ZXh0ZW5zaW9uLCByZXN0cmljdGlvbn0KKyAgICAqIGFsbCBvZiB0aGUgZm9sbG93aW5nIG11c3QgYmUgdHJ1ZToiCisgICAgKi8KKyAgICBpZiAoISBlcXVhbCkgeworCS8qCisJKiBTUEVDICgxKSAiSWYgQiBhbmQgRCBhcmUgbm90IHRoZSBzYW1lIHR5cGUgZGVmaW5pdGlvbiwgdGhlbiB0aGUKKwkqIHtkZXJpdmF0aW9uIG1ldGhvZH0gb2YgRCBtdXN0IG5vdCBiZSBpbiB0aGUgc3Vic2V0LiIKKwkqLworCWlmICgoKHNldCAmIFNVQlNFVF9FWFRFTlNJT04pICYmIChXWFNfSVNfRVhURU5TSU9OKHR5cGUpKSkgfHwKKwkgICAgKChzZXQgJiBTVUJTRVRfUkVTVFJJQ1RJT04pICYmIChXWFNfSVNfUkVTVFJJQ1RJT04odHlwZSkpKSkKKwkgICAgcmV0dXJuICgxKTsKKyAgICB9IGVsc2UgeworCS8qCisJKiBTUEVDICgyLjEpICJCIGFuZCBEIG11c3QgYmUgdGhlIHNhbWUgdHlwZSBkZWZpbml0aW9uLiIKKwkqLworCXJldHVybiAoMCk7CisgICAgfQorICAgIC8qCisgICAgKiBTUEVDICgyLjIpICJCIG11c3QgYmUgRCdzIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0uIgorICAgICovCisgICAgaWYgKHR5cGUtPmJhc2VUeXBlID09IGJhc2VUeXBlKQorCXJldHVybiAoMCk7CisgICAgLyoKKyAgICAqIFNQRUMgKDIuMy4xKSAiRCdzIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gbXVzdCBub3QgYmUgdGhlIO+/vXVyLXR5cGUKKyAgICAqIGRlZmluaXRpb27vv70uIgorICAgICovCisgICAgaWYgKFdYU19JU19BTllUWVBFKHR5cGUtPmJhc2VUeXBlKSkKKwlyZXR1cm4gKDEpOworCisgICAgaWYgKFdYU19JU19DT01QTEVYKHR5cGUtPmJhc2VUeXBlKSkgeworCS8qCisJKiBTUEVDICgyLjMuMi4xKSAiSWYgRCdzIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gaXMgY29tcGxleCwgdGhlbiBpdAorCSogbXVzdCBiZSB2YWxpZGx5IGRlcml2ZWQgZnJvbSBCIGdpdmVuIHRoZSBzdWJzZXQgYXMgZGVmaW5lZCBieSB0aGlzCisJKiBjb25zdHJhaW50LiIKKwkqLworCXJldHVybiAoeG1sU2NoZW1hQ2hlY2tDT1NDVERlcml2ZWRPSyhhY3R4dCwgdHlwZS0+YmFzZVR5cGUsCisJICAgIGJhc2VUeXBlLCBzZXQpKTsKKyAgICB9IGVsc2UgeworCS8qCisJKiBTUEVDICgyLjMuMi4yKSAiSWYgRCdzIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gaXMgc2ltcGxlLCB0aGVuIGl0CisJKiBtdXN0IGJlIHZhbGlkbHkgZGVyaXZlZCBmcm9tIEIgZ2l2ZW4gdGhlIHN1YnNldCBhcyBkZWZpbmVkIGluIFR5cGUKKwkqIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKO+/vTMuMTQuNikuCisJKi8KKwlyZXR1cm4gKHhtbFNjaGVtYUNoZWNrQ09TU1REZXJpdmVkT0soYWN0eHQsIHR5cGUtPmJhc2VUeXBlLAorCSAgICBiYXNlVHlwZSwgc2V0KSk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrQ09TRGVyaXZlZE9LOgorICogQHR5cGU6ICB0aGUgZGVyaXZlZCBzaW1wbGUgdHlwZSBkZWZpbml0aW9uCisgKiBAYmFzZVR5cGU6ICB0aGUgYmFzZSB0eXBlIGRlZmluaXRpb24KKyAqCisgKiBDYWxsczoKKyAqIFR5cGUgRGVyaXZhdGlvbiBPSyAoU2ltcGxlKSBBTkQgVHlwZSBEZXJpdmF0aW9uIE9LIChDb21wbGV4KQorICoKKyAqIENoZWNrcyB3aGV0ZXIgQHR5cGUgY2FuIGJlIHZhbGlkbHkgZGVyaXZlZCBmcm9tIEBiYXNlVHlwZS4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgYW4gcG9zaXRpdmUgZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNoZWNrQ09TRGVyaXZlZE9LKHhtbFNjaGVtYUFic3RyYWN0Q3R4dFB0ciBhY3R4dCwKKwkJCSAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKwkJCSAgIHhtbFNjaGVtYVR5cGVQdHIgYmFzZVR5cGUsCisJCQkgICBpbnQgc2V0KQoreworICAgIGlmIChXWFNfSVNfU0lNUExFKHR5cGUpKQorCXJldHVybiAoeG1sU2NoZW1hQ2hlY2tDT1NTVERlcml2ZWRPSyhhY3R4dCwgdHlwZSwgYmFzZVR5cGUsIHNldCkpOworICAgIGVsc2UKKwlyZXR1cm4gKHhtbFNjaGVtYUNoZWNrQ09TQ1REZXJpdmVkT0soYWN0eHQsIHR5cGUsIGJhc2VUeXBlLCBzZXQpKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja0NPU0NURXh0ZW5kczoKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHR5cGU6ICB0aGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24KKyAqCisgKiAoMy40LjYpIENvbnN0cmFpbnRzIG9uIENvbXBsZXggVHlwZSBEZWZpbml0aW9uIFNjaGVtYSBDb21wb25lbnRzCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiBEZXJpdmF0aW9uIFZhbGlkIChFeHRlbnNpb24pIChjb3MtY3QtZXh0ZW5kcykKKyAqCisgKiBTVEFUVVM6CisgKiAgIG1pc3Npbmc6CisgKiAgICAgKDEuNSkKKyAqICAgICAoMS40LjMuMi4yLjIpICJQYXJ0aWNsZSBWYWxpZCAoRXh0ZW5zaW9uKSIKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGNvbnN0cmFpbnRzIGFyZSBzYXRpc2ZpZWQsIGEgcG9zaXRpdmUKKyAqIGVycm9yIGNvZGUgaWYgbm90IGFuZCAtMSBpZiBhbiBpbnRlcm5hbCBlcnJvciBvY2N1cmVkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NPU0NURXh0ZW5kcyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciBiYXNlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgLyoKKyAgICAqIFRPRE86IENvcnJlY3QgdGhlIGVycm9yIGNvZGU7IFhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSBpcyB1c2VkCisgICAgKiB0ZW1wb3JhcmlseSBvbmx5LgorICAgICovCisgICAgLyoKKyAgICAqIFNQRUMgKDEpICJJZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBpcyBhIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uLAorICAgICogdGhlbiBhbGwgb2YgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHRydWU6IgorICAgICovCisgICAgaWYgKFdYU19JU19DT01QTEVYKGJhc2UpKSB7CisJLyoKKwkqIFNQRUMgKDEuMSkgIlRoZSB7ZmluYWx9IG9mIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IG11c3Qgbm90CisJKiBjb250YWluIGV4dGVuc2lvbi4iCisJKi8KKwlpZiAoYmFzZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX0ZJTkFMX0VYVEVOU0lPTikgeworCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSwKKwkJV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJIlRoZSAnZmluYWwnIG9mIHRoZSBiYXNlIHR5cGUgZGVmaW5pdGlvbiAiCisJCSJjb250YWlucyAnZXh0ZW5zaW9uJyIsIE5VTEwpOworCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSk7CisJfQorCisJLyoKKwkqIEFUVEVOVElPTjogVGhlIGNvbnN0cmFpbnMgKDEuMikgYW5kICgxLjMpIGFyZSBub3QgYXBwbGllZCwKKwkqIHNpbmNlIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgc2F0aXNmaWVkIHRocm91Z2ggdGhlCisJKiBpbmhlcml0aW5nIG1lY2hhbmlzbS4KKwkqIE5vdGUgdGhhdCBldmVuIGlmIHJlZGVmaW5pbmcgY29tcG9uZW50cywgdGhlIGluaGVyaXRpbmcgbWVjaGFuaXNtCisJKiBpcyB1c2VkLgorCSovCisjaWYgMAorCS8qCisJKiBTUEVDICgxLjIpICJJdHMge2F0dHJpYnV0ZSB1c2VzfSBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB7YXR0cmlidXRlCisJKiB1c2VzfQorCSogb2YgdGhlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uIGl0c2VsZiwgdGhhdCBpcywgZm9yIGV2ZXJ5IGF0dHJpYnV0ZQorCSogdXNlIGluIHRoZSB7YXR0cmlidXRlIHVzZXN9IG9mIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259LCB0aGVyZQorCSogbXVzdCBiZSBhbiBhdHRyaWJ1dGUgdXNlIGluIHRoZSB7YXR0cmlidXRlIHVzZXN9IG9mIHRoZSBjb21wbGV4CisJKiB0eXBlIGRlZmluaXRpb24gaXRzZWxmIHdob3NlIHthdHRyaWJ1dGUgZGVjbGFyYXRpb259IGhhcyB0aGUgc2FtZQorCSoge25hbWV9LCB7dGFyZ2V0IG5hbWVzcGFjZX0gYW5kIHt0eXBlIGRlZmluaXRpb259IGFzIGl0cyBhdHRyaWJ1dGUKKwkqIGRlY2xhcmF0aW9uIgorCSovCisJaWYgKGJhc2UtPmF0dHJVc2VzICE9IE5VTEwpIHsKKwkgICAgaW50IGksIGosIGZvdW5kOworCSAgICB4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgdXNlLCBidXNlOworCisJICAgIGZvciAoaSA9IDA7IGkgPCAoV1hTX0xJU1RfQ0FTVCBiYXNlLT5hdHRyVXNlcyktPm5iSXRlbXM7IGkgKyspIHsKKwkJYnVzZSA9IChXWFNfTElTVF9DQVNUIGJhc2UtPmF0dHJVc2VzKS0+aXRlbXNbaV07CisJCWZvdW5kID0gMDsKKwkJaWYgKHR5cGUtPmF0dHJVc2VzICE9IE5VTEwpIHsKKwkJICAgIHVzZSA9IChXWFNfTElTVF9DQVNUIHR5cGUtPmF0dHJVc2VzKS0+aXRlbXNbal07CisJCSAgICBmb3IgKGogPSAwOyBqIDwgKFdYU19MSVNUX0NBU1QgdHlwZS0+YXR0clVzZXMpLT5uYkl0ZW1zOyBqICsrKQorCQkgICAgeworCQkJaWYgKChXWFNfQVRUUlVTRV9ERUNMX05BTUUodXNlKSA9PQorCQkJCVdYU19BVFRSVVNFX0RFQ0xfTkFNRShidXNlKSkgJiYKKwkJCSAgICAoV1hTX0FUVFJVU0VfREVDTF9UTlModXNlKSA9PQorCQkJCVdYU19BVFRSVVNFX0RFQ0xfVE5TKGJ1c2UpKSAmJgorCQkJICAgIChXWFNfQVRUUlVTRV9UWVBFREVGKHVzZSkgPT0KKwkJCQlXWFNfQVRUUlVTRV9UWVBFREVGKGJ1c2UpKQorCQkJeworCQkJICAgIGZvdW5kID0gMTsKKwkJCSAgICBicmVhazsKKwkJCX0KKwkJICAgIH0KKwkJfQorCQlpZiAoISBmb3VuZCkgeworCQkgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKworCQkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMiwKKwkJCU5VTEwsIFdYU19CQVNJQ19DQVNUIHR5cGUsCisJCQkvKgorCQkJKiBUT0RPOiBUaGUgcmVwb3J0IGRvZXMgbm90IGluZGljYXRlIHRoYXQgYWxzbyB0aGUKKwkJCSogdHlwZSBuZWVkcyB0byBiZSB0aGUgc2FtZS4KKwkJCSovCisJCQkiVGhpcyB0eXBlIGlzIG1pc3NpbmcgYSBtYXRjaGluZyBjb3JyZXNwb25kZW50ICIKKwkJCSJmb3IgaXRzIHtiYXNlIHR5cGV9J3MgJXMgaW4gaXRzIHthdHRyaWJ1dGUgdXNlc30iLAorCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oJnN0ciwKKwkJCSAgICBidXNlLT5jaGlsZHJlbiksCisJCQlOVUxMKTsKKwkJICAgIEZSRUVfQU5EX05VTEwoc3RyKQorCQl9CisJICAgIH0KKwl9CisJLyoKKwkqIFNQRUMgKDEuMykgIklmIGl0IGhhcyBhbiB7YXR0cmlidXRlIHdpbGRjYXJkfSwgdGhlIGNvbXBsZXggdHlwZQorCSogZGVmaW5pdGlvbiBtdXN0IGFsc28gaGF2ZSBvbmUsIGFuZCB0aGUgYmFzZSB0eXBlIGRlZmluaXRpb24ncworCSoge2F0dHJpYnV0ZSAgd2lsZGNhcmR9J3Mge25hbWVzcGFjZSBjb25zdHJhaW50fSBtdXN0IGJlIGEgc3Vic2V0CisJKiBvZiB0aGUgY29tcGxleCAgdHlwZSBkZWZpbml0aW9uJ3Mge2F0dHJpYnV0ZSB3aWxkY2FyZH0ncyB7bmFtZXNwYWNlCisJKiBjb25zdHJhaW50fSwgYXMgZGVmaW5lZCBieSBXaWxkY2FyZCBTdWJzZXQgKO+/vTMuMTAuNikuIgorCSovCisKKwkvKgorCSogTUFZQkUgVE9ETzogRW5hYmxlIGlmIGV2ZXIgbmVlZGVkLiBCdXQgdGhpcyB3aWxsIGJlIG5lZWRlZCBvbmx5CisJKiBpZiBjcmVhdGVkIHRoZSB0eXBlIHZpYSBhIHNjaGVtYSBjb25zdHJ1Y3Rpb24gQVBJLgorCSovCisJaWYgKGJhc2UtPmF0dHJpYnV0ZVdpbGRjYXJkICE9IE5VTEwpIHsKKwkgICAgaWYgKHR5cGUtPmF0dHJpYnV0ZVdpbGNhcmQgPT0gTlVMTCkgeworCQl4bWxDaGFyICpzdHIgPSBOVUxMOworCisJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8zLAorCQkgICAgTlVMTCwgdHlwZSwKKwkJICAgICJUaGUgYmFzZSAlcyBoYXMgYW4gYXR0cmlidXRlIHdpbGRjYXJkLCAiCisJCSAgICAiYnV0IHRoaXMgdHlwZSBpcyBtaXNzaW5nIGFuIGF0dHJpYnV0ZSB3aWxkY2FyZCIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyLCBiYXNlKSk7CisJCUZSRUVfQU5EX05VTEwoc3RyKQorCisJICAgIH0gZWxzZSBpZiAoeG1sU2NoZW1hQ2hlY2tDT1NOU1N1YnNldCgKKwkJYmFzZS0+YXR0cmlidXRlV2lsZGNhcmQsIHR5cGUtPmF0dHJpYnV0ZVdpbGRjYXJkKSkKKwkgICAgeworCQl4bWxDaGFyICpzdHIgPSBOVUxMOworCisJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8zLAorCQkgICAgTlVMTCwgdHlwZSwKKwkJICAgICJUaGUgYXR0cmlidXRlIHdpbGRjYXJkIGlzIG5vdCBhIHZhbGlkICIKKwkJICAgICJzdXBlcnNldCBvZiB0aGUgb25lIGluIHRoZSBiYXNlICVzIiwKKwkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudERlc2lnbmF0aW9uKCZzdHIsIGJhc2UpKTsKKwkJRlJFRV9BTkRfTlVMTChzdHIpCisJICAgIH0KKwl9CisjZW5kaWYKKwkvKgorCSogU1BFQyAoMS40KSAiT25lIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiIKKwkqLworCWlmICgodHlwZS0+Y29udGVudFR5cGVEZWYgIT0gTlVMTCkgJiYKKwkgICAgKHR5cGUtPmNvbnRlbnRUeXBlRGVmID09IGJhc2UtPmNvbnRlbnRUeXBlRGVmKSkgeworCSAgICAvKgorCSAgICAqIFNQRUMgKDEuNC4xKSAiVGhlIHtjb250ZW50IHR5cGV9IG9mIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259CisJICAgICogYW5kIHRoZSB7Y29udGVudCB0eXBlfSBvZiB0aGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24gaXRzZWxmCisJICAgICogbXVzdCBiZSB0aGUgc2FtZSBzaW1wbGUgdHlwZSBkZWZpbml0aW9uIgorCSAgICAqIFBBU1MKKwkgICAgKi8KKwl9IGVsc2UgaWYgKCh0eXBlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkpICYmCisJICAgIChiYXNlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkpICkgeworCSAgICAvKgorCSAgICAqIFNQRUMgKDEuNC4yKSAiVGhlIHtjb250ZW50IHR5cGV9IG9mIGJvdGggdGhlIHtiYXNlIHR5cGUKKwkgICAgKiBkZWZpbml0aW9ufSBhbmQgdGhlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uIGl0c2VsZiBtdXN0CisJICAgICogYmUgZW1wdHkuIgorCSAgICAqIFBBU1MKKwkgICAgKi8KKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAqIFNQRUMgKDEuNC4zKSAiQWxsIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiIKKwkgICAgKi8KKwkgICAgaWYgKHR5cGUtPnN1YnR5cGVzID09IE5VTEwpIHsKKwkJLyoKKwkJKiBTUEVDIDEuNC4zLjEgVGhlIHtjb250ZW50IHR5cGV9IG9mIHRoZSBjb21wbGV4IHR5cGUKKwkJKiBkZWZpbml0aW9uIGl0c2VsZiBtdXN0IHNwZWNpZnkgYSBwYXJ0aWNsZS4KKwkJKi8KKwkJeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xLAorCQkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJICAgICJUaGUgY29udGVudCB0eXBlIG11c3Qgc3BlY2lmeSBhIHBhcnRpY2xlIiwgTlVMTCk7CisJCXJldHVybiAoWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xKTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIFNQRUMgKDEuNC4zLjIpICJPbmUgb2YgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHRydWU6IgorCSAgICAqLworCSAgICBpZiAoYmFzZS0+Y29udGVudFR5cGUgPT0gWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZKSB7CisJCS8qCisJCSogU1BFQyAoMS40LjMuMi4xKSAiVGhlIHtjb250ZW50IHR5cGV9IG9mIHRoZSB7YmFzZSB0eXBlCisJCSogZGVmaW5pdGlvbn0gbXVzdCBiZSBlbXB0eS4KKwkJKiBQQVNTCisJCSovCisJICAgIH0gZWxzZSB7CisJCS8qCisJCSogU1BFQyAoMS40LjMuMi4yKSAiQWxsIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiIKKwkJKi8KKwkJaWYgKCh0eXBlLT5jb250ZW50VHlwZSAhPSBiYXNlLT5jb250ZW50VHlwZSkgfHwKKwkJICAgICgodHlwZS0+Y29udGVudFR5cGUgIT0gWE1MX1NDSEVNQV9DT05URU5UX01JWEVEKSAmJgorCQkgICAgKHR5cGUtPmNvbnRlbnRUeXBlICE9IFhNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUykpKSB7CisJCSAgICAvKgorCQkgICAgKiBTUEVDICgxLjQuMy4yLjIuMSkgIkJvdGgge2NvbnRlbnQgdHlwZX1zIG11c3QgYmUgbWl4ZWQKKwkJICAgICogb3IgYm90aCBtdXN0IGJlIGVsZW1lbnQtb25seS4iCisJCSAgICAqLworCQkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCQkJWE1MX1NDSEVNQVBfQ09TX0NUX0VYVEVORFNfMV8xLAorCQkJV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJCSJUaGUgY29udGVudCB0eXBlIG9mIGJvdGgsIHRoZSB0eXBlIGFuZCBpdHMgYmFzZSAiCisJCQkidHlwZSwgbXVzdCBlaXRoZXIgJ21peGVkJyBvciAnZWxlbWVudC1vbmx5JyIsIE5VTEwpOworCQkgICAgcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzEpOworCQl9CisJCS8qCisJCSogVVJHRU5UIFRPRE8gU1BFQyAoMS40LjMuMi4yLjIpICJUaGUgcGFydGljbGUgb2YgdGhlCisJCSogY29tcGxleCB0eXBlIGRlZmluaXRpb24gbXVzdCBiZSBhIO+/vXZhbGlkIGV4dGVuc2lvbu+/vQorCQkqIG9mIHRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259J3MgcGFydGljbGUsIGFzIGRlZmluZWQKKwkJKiBpbiBQYXJ0aWNsZSBWYWxpZCAoRXh0ZW5zaW9uKSAo77+9My45LjYpLiIKKwkJKgorCQkqIE5PVEUgdGhhdCB3ZSB3b24ndCBjaGVjayAiUGFydGljbGUgVmFsaWQgKEV4dGVuc2lvbikiLAorCQkqIHNpbmNlIGl0IGlzIGVuc3VyZWQgYnkgdGhlIGRlcml2YXRpb24gcHJvY2VzcyBpbgorCQkqIHhtbFNjaGVtYVR5cGVGaXh1cCgpLiBXZSBuZWVkIHRvIGltcGxlbWVudCB0aGlzIHdoZW4gaGVhZGluZworCQkqIGZvciBhIGNvbnN0cnVjdGlvbiBBUEkKKwkJKiBUT0RPOiAhISBUaGlzIGlzIG5lZWRlZCB0byBiZSBjaGVja2VkIGlmIHJlZGVmaW5pbmcgYSB0eXBlICEhCisJCSovCisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBVUkdFTlQgVE9ETyAoMS41KQorCSAgICAqLworCX0KKyAgICB9IGVsc2UgeworCS8qCisJKiBTUEVDICgyKSAiSWYgdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gaXMgYSBzaW1wbGUgdHlwZSBkZWZpbml0aW9uLAorCSogdGhlbiBhbGwgb2YgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHRydWU6IgorCSovCisJaWYgKHR5cGUtPmNvbnRlbnRUeXBlRGVmICE9IGJhc2UpIHsKKwkgICAgLyoKKwkgICAgKiBTUEVDICgyLjEpICJUaGUge2NvbnRlbnQgdHlwZX0gbXVzdCBiZSB0aGUgc2FtZSBzaW1wbGUgdHlwZQorCSAgICAqIGRlZmluaXRpb24uIgorCSAgICAqLworCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSwKKwkJV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJIlRoZSBjb250ZW50IHR5cGUgbXVzdCBiZSB0aGUgc2ltcGxlIGJhc2UgdHlwZSIsIE5VTEwpOworCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFQX0NPU19DVF9FWFRFTkRTXzFfMSk7CisJfQorCWlmIChiYXNlLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfRklOQUxfRVhURU5TSU9OKSB7CisJICAgIC8qCisJICAgICogU1BFQyAoMi4yKSAiVGhlIHtmaW5hbH0gb2YgdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gbXVzdCBub3QKKwkgICAgKiBjb250YWluIGV4dGVuc2lvbiIKKwkgICAgKiBOT1RFIHRoYXQgdGhpcyBpcyB0aGUgc2FtZSBhcyAoMS4xKS4KKwkgICAgKi8KKwkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzEsCisJCVdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCSJUaGUgJ2ZpbmFsJyBvZiB0aGUgYmFzZSB0eXBlIGRlZmluaXRpb24gIgorCQkiY29udGFpbnMgJ2V4dGVuc2lvbiciLCBOVUxMKTsKKwkgICAgcmV0dXJuIChYTUxfU0NIRU1BUF9DT1NfQ1RfRVhURU5EU18xXzEpOworCX0KKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja0Rlcml2YXRpb25PS1Jlc3RyaWN0aW9uOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAdHlwZTogIHRoZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbgorICoKKyAqICgzLjQuNikgQ29uc3RyYWludHMgb24gQ29tcGxleCBUeXBlIERlZmluaXRpb24gU2NoZW1hIENvbXBvbmVudHMKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqIERlcml2YXRpb24gVmFsaWQgKFJlc3RyaWN0aW9uLCBDb21wbGV4KSAoZGVyaXZhdGlvbi1vay1yZXN0cmljdGlvbikKKyAqCisgKiBTVEFUVVM6CisgKiAgIG1pc3Npbmc6CisgKiAgICAgKDUuNC4yKSA/Pz8KKyAqCisgKiBBVFRFTlRJT046CisgKiBJbiBYTUwgU2NoZW1hIDEuMSB0aGlzIHdpbGwgYmU6CisgKiBWYWxpZGF0aW9uIFJ1bGU6IENoZWNraW5nIGNvbXBsZXggdHlwZSBzdWJzdW1wdGlvbgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgY29uc3RyYWludHMgYXJlIHNhdGlzZmllZCwgYSBwb3NpdGl2ZQorICogZXJyb3IgY29kZSBpZiBub3QgYW5kIC0xIGlmIGFuIGludGVybmFsIGVycm9yIG9jY3VyZWQuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNoZWNrRGVyaXZhdGlvbk9LUmVzdHJpY3Rpb24oeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCSAgICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIGJhc2U7CisKKyAgICAvKgorICAgICogVE9ETzogQ29ycmVjdCB0aGUgZXJyb3IgY29kZTsgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xIGlzIHVzZWQKKyAgICAqIHRlbXBvcmFyaWx5IG9ubHkuCisgICAgKi8KKyAgICBiYXNlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgaWYgKCEgV1hTX0lTX0NPTVBMRVgoYmFzZSkpIHsKKwl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzEsCisJICAgIHR5cGUtPm5vZGUsIFdYU19CQVNJQ19DQVNUIHR5cGUsCisJICAgICJUaGUgYmFzZSB0eXBlIG11c3QgYmUgYSBjb21wbGV4IHR5cGUiLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4oY3R4dC0+ZXJyKTsKKyAgICB9CisgICAgaWYgKGJhc2UtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9GSU5BTF9SRVNUUklDVElPTikgeworCS8qCisJKiBTUEVDICgxKSAiVGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gbXVzdCBiZSBhIGNvbXBsZXggdHlwZQorCSogZGVmaW5pdGlvbiB3aG9zZSB7ZmluYWx9IGRvZXMgbm90IGNvbnRhaW4gcmVzdHJpY3Rpb24uIgorCSovCisJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xLAorCSAgICB0eXBlLT5ub2RlLCBXWFNfQkFTSUNfQ0FTVCB0eXBlLAorCSAgICAiVGhlICdmaW5hbCcgb2YgdGhlIGJhc2UgdHlwZSBkZWZpbml0aW9uICIKKwkgICAgImNvbnRhaW5zICdyZXN0cmljdGlvbiciLCBOVUxMLCBOVUxMKTsKKwlyZXR1cm4gKGN0eHQtPmVycik7CisgICAgfQorICAgIC8qCisgICAgKiBTUEVDICgyKSwgKDMpIGFuZCAoNCkKKyAgICAqIFRob3NlIGFyZSBoYW5kbGVkIGluIGEgc2VwYXJhdGUgZnVuY3Rpb24sIHNpbmNlIHRoZQorICAgICogc2FtZSBjb25zdHJhaW50cyBhcmUgbmVlZGVkIGZvciByZWRlZmluaXRpb24gb2YKKyAgICAqIGF0dHJpYnV0ZSBncm91cHMgYXMgd2VsbC4KKyAgICAqLworICAgIGlmICh4bWxTY2hlbWFDaGVja0Rlcml2YXRpb25PS1Jlc3RyaWN0aW9uMnRvNChjdHh0LAorCVhNTF9TQ0hFTUFfQUNUSU9OX0RFUklWRSwKKwlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBXWFNfQkFTSUNfQ0FTVCBiYXNlLAorCXR5cGUtPmF0dHJVc2VzLCBiYXNlLT5hdHRyVXNlcywKKwl0eXBlLT5hdHRyaWJ1dGVXaWxkY2FyZCwKKwliYXNlLT5hdHRyaWJ1dGVXaWxkY2FyZCkgPT0gLTEpCisgICAgeworCXJldHVybigtMSk7CisgICAgfQorICAgIC8qCisgICAgKiBTUEVDICg1KSAiT25lIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOiIKKyAgICAqLworICAgIGlmIChiYXNlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19BTllUWVBFKSB7CisJLyoKKwkqIFNQRUMgKDUuMSkgIlRoZSB7YmFzZSB0eXBlIGRlZmluaXRpb259IG11c3QgYmUgdGhlCisJKiDvv711ci10eXBlIGRlZmluaXRpb27vv70uIgorCSogUEFTUworCSovCisgICAgfSBlbHNlIGlmICgodHlwZS0+Y29udGVudFR5cGUgPT0gWE1MX1NDSEVNQV9DT05URU5UX1NJTVBMRSkgfHwKKwkgICAgKHR5cGUtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9CQVNJQykpIHsKKwkvKgorCSogU1BFQyAoNS4yLjEpICJUaGUge2NvbnRlbnQgdHlwZX0gb2YgdGhlIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uCisJKiBtdXN0IGJlIGEgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbiIKKwkqCisJKiBTUEVDICg1LjIuMikgIk9uZSBvZiB0aGUgZm9sbG93aW5nIG11c3QgYmUgdHJ1ZToiCisJKi8KKwlpZiAoKGJhc2UtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEUpIHx8CisJICAgIChiYXNlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUMpKQorCXsKKwkgICAgaW50IGVycjsKKwkgICAgLyoKKwkgICAgKiBTUEVDICg1LjIuMi4xKSAiVGhlIHtjb250ZW50IHR5cGV9IG9mIHRoZSB7YmFzZSB0eXBlCisJICAgICogZGVmaW5pdGlvbn0gbXVzdCBiZSBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24gZnJvbSB3aGljaAorCSAgICAqIHRoZSB7Y29udGVudCB0eXBlfSBpcyB2YWxpZGx5IGRlcml2ZWQgZ2l2ZW4gdGhlIGVtcHR5CisJICAgICogc2V0IGFzIGRlZmluZWQgaW4gVHlwZSBEZXJpdmF0aW9uIE9LIChTaW1wbGUpICjvv70zLjE0LjYpLiIKKwkgICAgKgorCSAgICAqIEFUVEVOVElPTiBUT0RPOiBUaGlzIHNlZW1zIG5vdCBuZWVkZWQgaWYgdGhlIHR5cGUgaW1wbGljaXRlbHkKKwkgICAgKiBkZXJpdmVkIGZyb20gdGhlIGJhc2UgdHlwZS4KKwkgICAgKgorCSAgICAqLworCSAgICBlcnIgPSB4bWxTY2hlbWFDaGVja0NPU1NURGVyaXZlZE9LKEFDVFhUX0NBU1QgY3R4dCwKKwkJdHlwZS0+Y29udGVudFR5cGVEZWYsIGJhc2UtPmNvbnRlbnRUeXBlRGVmLCAwKTsKKwkgICAgaWYgKGVyciAhPSAwKSB7CisJCXhtbENoYXIgKnN0ckEgPSBOVUxMLCAqc3RyQiA9IE5VTEw7CisKKwkJaWYgKGVyciA9PSAtMSkKKwkJICAgIHJldHVybigtMSk7CisJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9ERVJJVkFUSU9OX09LX1JFU1RSSUNUSU9OXzEsCisJCSAgICBOVUxMLCBXWFNfQkFTSUNfQ0FTVCB0eXBlLAorCQkgICAgIlRoZSB7Y29udGVudCB0eXBlfSAlcyBpcyBub3QgdmFsaWRseSBkZXJpdmVkIGZyb20gdGhlICIKKwkJICAgICJiYXNlIHR5cGUncyB7Y29udGVudCB0eXBlfSAlcyIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyQSwKKwkJCXR5cGUtPmNvbnRlbnRUeXBlRGVmKSwKKwkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudERlc2lnbmF0aW9uKCZzdHJCLAorCQkJYmFzZS0+Y29udGVudFR5cGVEZWYpKTsKKwkJRlJFRV9BTkRfTlVMTChzdHJBKTsKKwkJRlJFRV9BTkRfTlVMTChzdHJCKTsKKwkJcmV0dXJuKGN0eHQtPmVycik7CisJICAgIH0KKwl9IGVsc2UgaWYgKChiYXNlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQpICYmCisJICAgICh4bWxTY2hlbWFJc1BhcnRpY2xlRW1wdGlhYmxlKAorCQkoeG1sU2NoZW1hUGFydGljbGVQdHIpIGJhc2UtPnN1YnR5cGVzKSkpIHsKKwkgICAgLyoKKwkgICAgKiBTUEVDICg1LjIuMi4yKSAiVGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gbXVzdCBiZSBtaXhlZAorCSAgICAqIGFuZCBoYXZlIGEgcGFydGljbGUgd2hpY2ggaXMg77+9ZW1wdGlhYmxl77+9IGFzIGRlZmluZWQgaW4KKwkgICAgKiBQYXJ0aWNsZSBFbXB0aWFibGUgKO+/vTMuOS42KS4iCisJICAgICogUEFTUworCSAgICAqLworCX0gZWxzZSB7CisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkiVGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgYmFzZSB0eXBlIG11c3QgYmUgZWl0aGVyICIKKwkJImEgc2ltcGxlIHR5cGUgb3IgJ21peGVkJyBhbmQgYW4gZW1wdGlhYmxlIHBhcnRpY2xlIiwgTlVMTCk7CisJICAgIHJldHVybiAoY3R4dC0+ZXJyKTsKKwl9CisgICAgfSBlbHNlIGlmICh0eXBlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkpIHsKKwkvKgorCSogU1BFQyAoNS4zLjEpICJUaGUge2NvbnRlbnQgdHlwZX0gb2YgdGhlIGNvbXBsZXggdHlwZSBpdHNlbGYgbXVzdAorCSogYmUgZW1wdHkiCisJKi8KKwlpZiAoYmFzZS0+Y29udGVudFR5cGUgPT0gWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZKSB7CisJICAgIC8qCisJICAgICogU1BFQyAoNS4zLjIuMSkgIlRoZSB7Y29udGVudCB0eXBlfSBvZiB0aGUge2Jhc2UgdHlwZQorCSAgICAqIGRlZmluaXRpb259IG11c3QgYWxzbyBiZSBlbXB0eS4iCisJICAgICogUEFTUworCSAgICAqLworCX0gZWxzZSBpZiAoKChiYXNlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFMpIHx8CisJICAgIChiYXNlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQpKSAmJgorCSAgICB4bWxTY2hlbWFJc1BhcnRpY2xlRW1wdGlhYmxlKAorCQkoeG1sU2NoZW1hUGFydGljbGVQdHIpIGJhc2UtPnN1YnR5cGVzKSkgeworCSAgICAvKgorCSAgICAqIFNQRUMgKDUuMy4yLjIpICJUaGUge2NvbnRlbnQgdHlwZX0gb2YgdGhlIHtiYXNlIHR5cGUKKwkgICAgKiBkZWZpbml0aW9ufSBtdXN0IGJlIGVsZW1lbnRPbmx5IG9yIG1peGVkIGFuZCBoYXZlIGEgcGFydGljbGUKKwkgICAgKiB3aGljaCBpcyDvv71lbXB0aWFibGXvv70gYXMgZGVmaW5lZCBpbiBQYXJ0aWNsZSBFbXB0aWFibGUgKO+/vTMuOS42KS4iCisJICAgICogUEFTUworCSAgICAqLworCX0gZWxzZSB7CisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkiVGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgYmFzZSB0eXBlIG11c3QgYmUgZWl0aGVyICIKKwkJImVtcHR5IG9yICdtaXhlZCcgKG9yICdlbGVtZW50cy1vbmx5JykgYW5kIGFuIGVtcHRpYWJsZSAiCisJCSJwYXJ0aWNsZSIsIE5VTEwpOworCSAgICByZXR1cm4gKGN0eHQtPmVycik7CisJfQorICAgIH0gZWxzZSBpZiAoKHR5cGUtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUykgfHwKKwlXWFNfSEFTX01JWEVEX0NPTlRFTlQodHlwZSkpIHsKKwkvKgorCSogU1BFQyAoNS40LjEuMSkgIlRoZSB7Y29udGVudCB0eXBlfSBvZiB0aGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24KKwkqIGl0c2VsZiBtdXN0IGJlIGVsZW1lbnQtb25seSIKKwkqLworCWlmIChXWFNfSEFTX01JWEVEX0NPTlRFTlQodHlwZSkgJiYgKCEgV1hTX0hBU19NSVhFRF9DT05URU5UKGJhc2UpKSkgeworCSAgICAvKgorCSAgICAqIFNQRUMgKDUuNC4xLjIpICJUaGUge2NvbnRlbnQgdHlwZX0gb2YgdGhlIGNvbXBsZXggdHlwZQorCSAgICAqIGRlZmluaXRpb24gaXRzZWxmIGFuZCBvZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufSBtdXN0IGJlCisJICAgICogbWl4ZWQiCisJICAgICovCisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkiSWYgdGhlIGNvbnRlbnQgdHlwZSBpcyAnbWl4ZWQnLCB0aGVuIHRoZSBjb250ZW50IHR5cGUgb2YgdGhlICIKKwkJImJhc2UgdHlwZSBtdXN0IGFsc28gYmUgJ21peGVkJyIsIE5VTEwpOworCSAgICByZXR1cm4gKGN0eHQtPmVycik7CisJfQorCS8qCisJKiBTUEVDICg1LjQuMikgIlRoZSBwYXJ0aWNsZSBvZiB0aGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24gaXRzZWxmCisJKiBtdXN0IGJlIGEg77+9dmFsaWQgcmVzdHJpY3Rpb27vv70gb2YgdGhlIHBhcnRpY2xlIG9mIHRoZSB7Y29udGVudAorCSogdHlwZX0gb2YgdGhlIHtiYXNlIHR5cGUgZGVmaW5pdGlvbn0gYXMgZGVmaW5lZCBpbiBQYXJ0aWNsZSBWYWxpZAorCSogKFJlc3RyaWN0aW9uKSAo77+9My45LjYpLgorCSoKKwkqIFVSR0VOVCBUT0RPOiAoNS40LjIpCisJKi8KKyAgICB9IGVsc2UgeworCXhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfREVSSVZBVElPTl9PS19SRVNUUklDVElPTl8xLAorCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCSAgICAiVGhlIHR5cGUgaXMgbm90IGEgdmFsaWQgcmVzdHJpY3Rpb24gb2YgaXRzIGJhc2UgdHlwZSIsIE5VTEwpOworCXJldHVybiAoY3R4dC0+ZXJyKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja0NUQ29tcG9uZW50OgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAdHlwZTogIHRoZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbgorICoKKyAqICgzLjQuNikgQ29uc3RyYWludHMgb24gQ29tcGxleCBUeXBlIERlZmluaXRpb24gU2NoZW1hIENvbXBvbmVudHMKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGNvbnN0cmFpbnRzIGFyZSBzYXRpc2ZpZWQsIGEgcG9zaXRpdmUKKyAqIGVycm9yIGNvZGUgaWYgbm90IGFuZCAtMSBpZiBhbiBpbnRlcm5hbCBlcnJvciBvY2N1cmVkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NUQ29tcG9uZW50KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCSAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlKQoreworICAgIGludCByZXQ7CisgICAgLyoKKyAgICAqIENvbXBsZXggVHlwZSBEZWZpbml0aW9uIFByb3BlcnRpZXMgQ29ycmVjdAorICAgICovCisgICAgcmV0ID0geG1sU2NoZW1hQ2hlY2tDVFByb3BzQ29ycmVjdChjdHh0LCB0eXBlKTsKKyAgICBpZiAocmV0ICE9IDApCisJcmV0dXJuIChyZXQpOworICAgIGlmIChXWFNfSVNfRVhURU5TSU9OKHR5cGUpKQorCXJldCA9IHhtbFNjaGVtYUNoZWNrQ09TQ1RFeHRlbmRzKGN0eHQsIHR5cGUpOworICAgIGVsc2UKKwlyZXQgPSB4bWxTY2hlbWFDaGVja0Rlcml2YXRpb25PS1Jlc3RyaWN0aW9uKGN0eHQsIHR5cGUpOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja1NSQ0NUOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAdHlwZTogIHRoZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbgorICoKKyAqICgzLjQuMykgQ29uc3RyYWludHMgb24gWE1MIFJlcHJlc2VudGF0aW9ucyBvZiBDb21wbGV4IFR5cGUgRGVmaW5pdGlvbnM6CisgKiBTY2hlbWEgUmVwcmVzZW50YXRpb24gQ29uc3RyYWludDoKKyAqIENvbXBsZXggVHlwZSBEZWZpbml0aW9uIFJlcHJlc2VudGF0aW9uIE9LIChzcmMtY3QpCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLCBhIHBvc2l0aXZlCisgKiBlcnJvciBjb2RlIGlmIG5vdCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJlZC4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tTUkNDVCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCSAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciBiYXNlOworICAgIGludCByZXQgPSAwOworCisgICAgLyoKKyAgICAqIFRPRE86IEFkanVzdCB0aGUgZXJyb3IgY29kZXMgaGVyZSwgYXMgSSB1c2VkCisgICAgKiBYTUxfU0NIRU1BUF9TUkNfQ1RfMSBvbmx5IHlldC4KKyAgICAqLworICAgIGJhc2UgPSB0eXBlLT5iYXNlVHlwZTsKKyAgICBpZiAoISBXWFNfSEFTX1NJTVBMRV9DT05URU5UKHR5cGUpKSB7CisJLyoKKwkqIDEgSWYgdGhlIDxjb21wbGV4Q29udGVudD4gYWx0ZXJuYXRpdmUgaXMgY2hvc2VuLCB0aGUgdHlwZSBkZWZpbml0aW9uCisJKiDvv71yZXNvbHZlZO+/vSB0byBieSB0aGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIHRoZSBiYXNlIFthdHRyaWJ1dGVdCisJKiBtdXN0IGJlIGEgY29tcGxleCB0eXBlIGRlZmluaXRpb247CisJKi8KKwlpZiAoISBXWFNfSVNfQ09NUExFWChiYXNlKSkgeworCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19DVF8xLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCB0eXBlLT5ub2RlLAorCQkiSWYgdXNpbmcgPGNvbXBsZXhDb250ZW50PiwgdGhlIGJhc2UgdHlwZSBpcyBleHBlY3RlZCB0byBiZSAiCisJCSJhIGNvbXBsZXggdHlwZS4gVGhlIGJhc2UgdHlwZSAnJXMnIGlzIGEgc2ltcGxlIHR5cGUiLAorCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLCBiYXNlLT50YXJnZXROYW1lc3BhY2UsCisJCWJhc2UtPm5hbWUpKTsKKwkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJICAgIHJldHVybiAoWE1MX1NDSEVNQVBfU1JDX0NUXzEpOworCX0KKyAgICB9IGVsc2UgeworCS8qCisJKiBTUEVDCisJKiAyIElmIHRoZSA8c2ltcGxlQ29udGVudD4gYWx0ZXJuYXRpdmUgaXMgY2hvc2VuLCBhbGwgb2YgdGhlCisJKiBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOgorCSogMi4xIFRoZSB0eXBlIGRlZmluaXRpb24g77+9cmVzb2x2ZWTvv70gdG8gYnkgdGhlIO+/vWFjdHVhbCB2YWx1Ze+/vSBvZiB0aGUKKwkqIGJhc2UgW2F0dHJpYnV0ZV0gbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKwkqLworCWlmIChXWFNfSVNfU0lNUExFKGJhc2UpKSB7CisJICAgIGlmIChXWFNfSVNfRVhURU5TSU9OKHR5cGUpID09IDApIHsKKwkJeG1sQ2hhciAqc3RyID0gTlVMTDsKKwkJLyoKKwkJKiAyLjEuMyBvbmx5IGlmIHRoZSA8ZXh0ZW5zaW9uPiBhbHRlcm5hdGl2ZSBpcyBhbHNvCisJCSogY2hvc2VuLCBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24uCisJCSovCisJCS8qIFRPRE86IENoYW5nZSBlcnJvciBjb2RlIHRvIC4uLl9TUkNfQ1RfMl8xXzMuICovCisJCXhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1NSQ19DVF8xLAorCQkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJICAgICJJZiB1c2luZyA8c2ltcGxlQ29udGVudD4gYW5kIDxyZXN0cmljdGlvbj4sIHRoZSBiYXNlICIKKwkJICAgICJ0eXBlIG11c3QgYmUgYSBjb21wbGV4IHR5cGUuIFRoZSBiYXNlIHR5cGUgJyVzJyBpcyAiCisJCSAgICAiYSBzaW1wbGUgdHlwZSIsCisJCSAgICB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLCBiYXNlLT50YXJnZXROYW1lc3BhY2UsCisJCQliYXNlLT5uYW1lKSk7CisJCUZSRUVfQU5EX05VTEwoc3RyKQorCQlyZXR1cm4gKFhNTF9TQ0hFTUFQX1NSQ19DVF8xKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIC8qIEJhc2UgdHlwZSBpcyBhIGNvbXBsZXggdHlwZS4gKi8KKwkgICAgaWYgKChiYXNlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFKSB8fAorCQkoYmFzZS0+Y29udGVudFR5cGUgPT0gWE1MX1NDSEVNQV9DT05URU5UX0JBU0lDKSkgeworCQkvKgorCQkqIDIuMS4xIGEgY29tcGxleCB0eXBlIGRlZmluaXRpb24gd2hvc2Uge2NvbnRlbnQgdHlwZX0gaXMgYQorCQkqIHNpbXBsZSB0eXBlIGRlZmluaXRpb247CisJCSogUEFTUworCQkqLworCQlpZiAoYmFzZS0+Y29udGVudFR5cGVEZWYgPT0gTlVMTCkgeworCQkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LCBYTUxfU0NIRU1BUF9JTlRFUk5BTCwKKwkJCVdYU19CQVNJQ19DQVNUIHR5cGUsIE5VTEwsCisJCQkiSW50ZXJuYWwgZXJyb3I6IHhtbFNjaGVtYUNoZWNrU1JDQ1QsICIKKwkJCSInJXMnLCBiYXNlIHR5cGUgaGFzIG5vIGNvbnRlbnQgdHlwZSIsCisJCQl0eXBlLT5uYW1lKTsKKwkJICAgIHJldHVybiAoLTEpOworCQl9CisJICAgIH0gZWxzZSBpZiAoKGJhc2UtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRCkgJiYKKwkJKFdYU19JU19SRVNUUklDVElPTih0eXBlKSkpIHsKKworCQkvKgorCQkqIDIuMS4yIG9ubHkgaWYgdGhlIDxyZXN0cmljdGlvbj4gYWx0ZXJuYXRpdmUgaXMgYWxzbworCQkqIGNob3NlbiwgYSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbiB3aG9zZSB7Y29udGVudCB0eXBlfQorCQkqIGlzIG1peGVkIGFuZCBhIHBhcnRpY2xlIGVtcHRpYWJsZS4KKwkJKi8KKwkJaWYgKCEgeG1sU2NoZW1hSXNQYXJ0aWNsZUVtcHRpYWJsZSgKKwkJICAgICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgYmFzZS0+c3VidHlwZXMpKSB7CisJCSAgICByZXQgPSBYTUxfU0NIRU1BUF9TUkNfQ1RfMTsKKwkJfSBlbHNlCisJCSAgICAvKgorCQkgICAgKiBBdHRlbnRpb246IGF0IHRoaXMgcG9pbnQgdGhlIDxzaW1wbGVUeXBlPiBjaGlsZCBpcyBpbgorCQkgICAgKiAtPmNvbnRlbnRUeXBlRGVmIChwdXQgdGhlcmUgZHVyaW5nIHBhcnNpbmcpLgorCQkgICAgKi8KKwkJICAgIGlmICh0eXBlLT5jb250ZW50VHlwZURlZiA9PSBOVUxMKSB7CisJCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCQkgICAgLyoKKwkJICAgICogMi4yIElmIGNsYXVzZSAyLjEuMiBhYm92ZSBpcyBzYXRpc2ZpZWQsIHRoZW4gdGhlcmUKKwkJICAgICogbXVzdCBiZSBhIDxzaW1wbGVUeXBlPiBhbW9uZyB0aGUgW2NoaWxkcmVuXSBvZgorCQkgICAgKiA8cmVzdHJpY3Rpb24+LgorCQkgICAgKi8KKwkJICAgIC8qIFRPRE86IENoYW5nZSBlcnJvciBjb2RlIHRvIC4uLl9TUkNfQ1RfMl8yLiAqLworCQkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCQkJWE1MX1NDSEVNQVBfU1JDX0NUXzEsCisJCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkJIkEgPHNpbXBsZVR5cGU+IGlzIGV4cGVjdGVkIGFtb25nIHRoZSBjaGlsZHJlbiAiCisJCQkib2YgPHJlc3RyaWN0aW9uPiwgaWYgPHNpbXBsZUNvbnRlbnQ+IGlzIHVzZWQgYW5kICIKKwkJCSJ0aGUgYmFzZSB0eXBlICclcycgaXMgYSBjb21wbGV4IHR5cGUiLAorCQkJeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwgYmFzZS0+dGFyZ2V0TmFtZXNwYWNlLAorCQkJYmFzZS0+bmFtZSkpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpCisJCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFQX1NSQ19DVF8xKTsKKwkJfQorCSAgICB9IGVsc2UgeworCQlyZXQgPSBYTUxfU0NIRU1BUF9TUkNfQ1RfMTsKKwkgICAgfQorCX0KKwlpZiAocmV0ID4gMCkgeworCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCSAgICBpZiAoV1hTX0lTX1JFU1RSSUNUSU9OKHR5cGUpKSB7CisJCXhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX1NSQ19DVF8xLAorCQkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJICAgICJJZiA8c2ltcGxlQ29udGVudD4gYW5kIDxyZXN0cmljdGlvbj4gaXMgdXNlZCwgdGhlICIKKwkJICAgICJiYXNlIHR5cGUgbXVzdCBiZSBhIHNpbXBsZSB0eXBlIG9yIGEgY29tcGxleCB0eXBlIHdpdGggIgorCQkgICAgIm1peGVkIGNvbnRlbnQgYW5kIHBhcnRpY2xlIGVtcHRpYWJsZS4gVGhlIGJhc2UgdHlwZSAiCisJCSAgICAiJyVzJyBpcyBub25lIG9mIHRob3NlIiwKKwkJICAgIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIGJhc2UtPnRhcmdldE5hbWVzcGFjZSwKKwkJICAgIGJhc2UtPm5hbWUpKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfU1JDX0NUXzEsCisJCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkgICAgIklmIDxzaW1wbGVDb250ZW50PiBhbmQgPGV4dGVuc2lvbj4gaXMgdXNlZCwgdGhlICIKKwkJICAgICJiYXNlIHR5cGUgbXVzdCBiZSBhIHNpbXBsZSB0eXBlLiBUaGUgYmFzZSB0eXBlICclcycgIgorCQkgICAgImlzIGEgY29tcGxleCB0eXBlIiwKKwkJICAgIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIGJhc2UtPnRhcmdldE5hbWVzcGFjZSwKKwkJICAgIGJhc2UtPm5hbWUpKTsKKwkgICAgfQorCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBTUEVDICgzKSAiVGhlIGNvcnJlc3BvbmRpbmcgY29tcGxleCB0eXBlIGRlZmluaXRpb24gY29tcG9uZW50IG11c3QKKyAgICAqIHNhdGlzZnkgdGhlIGNvbmRpdGlvbnMgc2V0IG91dCBpbiBDb25zdHJhaW50cyBvbiBDb21wbGV4IFR5cGUKKyAgICAqIERlZmluaXRpb24gU2NoZW1hIENvbXBvbmVudHMgKO+/vTMuNC42KTsiCisgICAgKiBOT1RFICgzKSB3aWxsIGJlIGRvbmUgaW4geG1sU2NoZW1hVHlwZUZpeHVwKCkuCisgICAgKi8KKyAgICAvKgorICAgICogU1BFQyAoNCkgSWYgY2xhdXNlIDIuMi4xIG9yIGNsYXVzZSAyLjIuMiBpbiB0aGUgY29ycmVzcG9uZGVuY2Ugc3BlY2lmaWNhdGlvbgorICAgICogYWJvdmUgZm9yIHthdHRyaWJ1dGUgd2lsZGNhcmR9IGlzIHNhdGlzZmllZCwgdGhlIGludGVuc2lvbmFsCisgICAgKiBpbnRlcnNlY3Rpb24gbXVzdCBiZSBleHByZXNzaWJsZSwgYXMgZGVmaW5lZCBpbiBBdHRyaWJ1dGUgV2lsZGNhcmQKKyAgICAqIEludGVyc2VjdGlvbiAo77+9My4xMC42KS4KKyAgICAqIE5PVEUgKDQpIGlzIGRvbmUgaW4geG1sU2NoZW1hRml4dXBUeXBlQXR0cmlidXRlVXNlcygpLgorICAgICovCisgICAgcmV0dXJuIChyZXQpOworfQorCisjaWZkZWYgRU5BQkxFX1BBUlRJQ0xFX1JFU1RSSUNUSU9OCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrUGFydGljbGVSYW5nZU9LOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAdHlwZTogIHRoZSBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbgorICoKKyAqICgzLjkuNikgQ29uc3RyYWludHMgb24gUGFydGljbGUgU2NoZW1hIENvbXBvbmVudHMKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqIE9jY3VycmVuY2UgUmFuZ2UgT0sgKHJhbmdlLW9rKQorICoKKyAqIFNUQVRVUzogY29tcGxldGUKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGNvbnN0cmFpbnRzIGFyZSBzYXRpc2ZpZWQsIGEgcG9zaXRpdmUKKyAqIGVycm9yIGNvZGUgaWYgbm90IGFuZCAtMSBpZiBhbiBpbnRlcm5hbCBlcnJvciBvY2N1cmVkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja1BhcnRpY2xlUmFuZ2VPSyhpbnQgcm1pbiwgaW50IHJtYXgsCisJCQkgICAgICBpbnQgYm1pbiwgaW50IGJtYXgpCit7CisgICAgaWYgKHJtaW4gPCBibWluKQorCXJldHVybiAoMSk7CisgICAgaWYgKChibWF4ICE9IFVOQk9VTkRFRCkgJiYKKwkocm1heCA+IGJtYXgpKQorCXJldHVybiAoMSk7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja1JDYXNlTmFtZUFuZFR5cGVPSzoKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHI6IHRoZSByZXN0cmljdGluZyBlbGVtZW50IGRlY2xhcmF0aW9uIHBhcnRpY2xlCisgKiBAYjogdGhlIGJhc2UgZWxlbWVudCBkZWNsYXJhdGlvbiBwYXJ0aWNsZQorICoKKyAqICgzLjkuNikgQ29uc3RyYWludHMgb24gUGFydGljbGUgU2NoZW1hIENvbXBvbmVudHMKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqIFBhcnRpY2xlIFJlc3RyaWN0aW9uIE9LIChFbHQ6RWx0IC0tIE5hbWVBbmRUeXBlT0spCisgKiAocmNhc2UtTmFtZUFuZFR5cGVPSykKKyAqCisgKiBTVEFUVVM6CisgKiAgIE1JU1NJTkcgKDMuMi4zKQorICogICBDTEFSSUZZOiAoMy4yLjIpCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLCBhIHBvc2l0aXZlCisgKiBlcnJvciBjb2RlIGlmIG5vdCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJlZC4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tSQ2FzZU5hbWVBbmRUeXBlT0soeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCSB4bWxTY2hlbWFQYXJ0aWNsZVB0ciByLAorCQkJCSB4bWxTY2hlbWFQYXJ0aWNsZVB0ciBiKQoreworICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgZWxlbVIsIGVsZW1COworCisgICAgLyogVE9ETzogRXJyb3IgY29kZXMgKHJjYXNlLU5hbWVBbmRUeXBlT0spLiAqLworICAgIGVsZW1SID0gKHhtbFNjaGVtYUVsZW1lbnRQdHIpIHItPmNoaWxkcmVuOworICAgIGVsZW1CID0gKHhtbFNjaGVtYUVsZW1lbnRQdHIpIGItPmNoaWxkcmVuOworICAgIC8qCisgICAgKiBTUEVDICgxKSAiVGhlIGRlY2xhcmF0aW9ucycge25hbWV9cyBhbmQge3RhcmdldCBuYW1lc3BhY2V9cyBhcmUKKyAgICAqIHRoZSBzYW1lLiIKKyAgICAqLworICAgIGlmICgoZWxlbVIgIT0gZWxlbUIpICYmCisJKCghIHhtbFN0ckVxdWFsKGVsZW1SLT5uYW1lLCBlbGVtQi0+bmFtZSkpIHx8CisJKCEgeG1sU3RyRXF1YWwoZWxlbVItPnRhcmdldE5hbWVzcGFjZSwgZWxlbUItPnRhcmdldE5hbWVzcGFjZSkpKSkKKwlyZXR1cm4gKDEpOworICAgIC8qCisgICAgKiBTUEVDICgyKSAiUidzIG9jY3VycmVuY2UgcmFuZ2UgaXMgYSB2YWxpZCByZXN0cmljdGlvbiBvZiBCJ3MKKyAgICAqIG9jY3VycmVuY2UgcmFuZ2UgYXMgZGVmaW5lZCBieSBPY2N1cnJlbmNlIFJhbmdlIE9LICjvv70zLjkuNikuIgorICAgICovCisgICAgaWYgKHhtbFNjaGVtYUNoZWNrUGFydGljbGVSYW5nZU9LKHItPm1pbk9jY3Vycywgci0+bWF4T2NjdXJzLAorCSAgICBiLT5taW5PY2N1cnMsIGItPm1heE9jY3VycykgIT0gMCkKKwlyZXR1cm4gKDEpOworICAgIC8qCisgICAgKiBTUEVDICgzLjEpICJCb3RoIEIncyBkZWNsYXJhdGlvbidzIHtzY29wZX0gYW5kIFIncyBkZWNsYXJhdGlvbidzCisgICAgKiB7c2NvcGV9IGFyZSBnbG9iYWwuIgorICAgICovCisgICAgaWYgKGVsZW1SID09IGVsZW1CKQorCXJldHVybiAoMCk7CisgICAgLyoKKyAgICAqIFNQRUMgKDMuMi4xKSAiRWl0aGVyIEIncyB7bmlsbGFibGV9IGlzIHRydWUgb3IgUidzIHtuaWxsYWJsZX0gaXMgZmFsc2UuIgorICAgICovCisgICAgaWYgKCgoZWxlbUItPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRSkgPT0gMCkgJiYKKwkoZWxlbVItPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9OSUxMQUJMRSkpCisJIHJldHVybiAoMSk7CisgICAgLyoKKyAgICAqIFNQRUMgKDMuMi4yKSAiZWl0aGVyIEIncyBkZWNsYXJhdGlvbidzIHt2YWx1ZSBjb25zdHJhaW50fSBpcyBhYnNlbnQsCisgICAgKiBvciBpcyBub3QgZml4ZWQsIG9yIFIncyBkZWNsYXJhdGlvbidzIHt2YWx1ZSBjb25zdHJhaW50fSBpcyBmaXhlZAorICAgICogd2l0aCB0aGUgc2FtZSB2YWx1ZS4iCisgICAgKi8KKyAgICBpZiAoKGVsZW1CLT52YWx1ZSAhPSBOVUxMKSAmJiAoZWxlbUItPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9GSVhFRCkgJiYKKwkoKGVsZW1SLT52YWx1ZSA9PSBOVUxMKSB8fAorCSAoKGVsZW1SLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fRklYRUQpID09IDApIHx8CisJIC8qIFRPRE86IEVxdWFsaXR5IG9mIHRoZSBpbml0aWFsIHZhbHVlIG9yIG5vcm1hbGl6ZWQgb3IgY2Fub25pY2FsPyAqLworCSAoISB4bWxTdHJFcXVhbChlbGVtUi0+dmFsdWUsIGVsZW1CLT52YWx1ZSkpKSkKKwkgcmV0dXJuICgxKTsKKyAgICAvKgorICAgICogVE9ETzogU1BFQyAoMy4yLjMpICJSJ3MgZGVjbGFyYXRpb24ncyB7aWRlbnRpdHktY29uc3RyYWludAorICAgICogZGVmaW5pdGlvbnN9IGlzIGEgc3Vic2V0IG9mIEIncyBkZWNsYXJhdGlvbidzIHtpZGVudGl0eS1jb25zdHJhaW50CisgICAgKiBkZWZpbml0aW9uc30sIGlmIGFueS4iCisgICAgKi8KKyAgICBpZiAoZWxlbUItPmlkY3MgIT0gTlVMTCkgeworCS8qIFRPRE8gKi8KKyAgICB9CisgICAgLyoKKyAgICAqIFNQRUMgKDMuMi40KSAiUidzIGRlY2xhcmF0aW9uJ3Mge2Rpc2FsbG93ZWQgc3Vic3RpdHV0aW9uc30gaXMgYQorICAgICogc3VwZXJzZXQgb2YgQidzIGRlY2xhcmF0aW9uJ3Mge2Rpc2FsbG93ZWQgc3Vic3RpdHV0aW9uc30uIgorICAgICovCisgICAgaWYgKCgoZWxlbUItPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT04pICYmCisJICgoZWxlbVItPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT04pID09IDApKSB8fAorCSgoZWxlbUItPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19SRVNUUklDVElPTikgJiYKKwkgKChlbGVtUi0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OKSA9PSAwKSkgfHwKKwkoKGVsZW1CLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OKSAmJgorCSAoKGVsZW1SLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfU1VCU1RJVFVUSU9OKSA9PSAwKSkpCisJIHJldHVybiAoMSk7CisgICAgLyoKKyAgICAqIFNQRUMgKDMuMi41KSAiUidzIHt0eXBlIGRlZmluaXRpb259IGlzIHZhbGlkbHkgZGVyaXZlZCBnaXZlbgorICAgICoge2V4dGVuc2lvbiwgbGlzdCwgdW5pb259IGZyb20gQidzIHt0eXBlIGRlZmluaXRpb259IgorICAgICoKKyAgICAqIEJBRFNQRUMgVE9ETzogV2hhdCdzIHRoZSBwb2ludCBvZiBhZGRpbmcgImxpc3QiIGFuZCAidW5pb24iIHRvIHRoZQorICAgICogc2V0LCBpZiB0aGUgY29ycmVzcG9uZGluZyBjb25zdHJhaW50cyBoYW5kbGUgInJlc3RyaWN0aW9uIiBhbmQKKyAgICAqICJleHRlbnNpb24iIG9ubHk/CisgICAgKgorICAgICovCisgICAgeworCWludCBzZXQgPSAwOworCisJc2V0IHw9IFNVQlNFVF9FWFRFTlNJT047CisJc2V0IHw9IFNVQlNFVF9MSVNUOworCXNldCB8PSBTVUJTRVRfVU5JT047CisJaWYgKHhtbFNjaGVtYUNoZWNrQ09TRGVyaXZlZE9LKEFDVFhUX0NBU1QgY3R4dCwgZWxlbVItPnN1YnR5cGVzLAorCSAgICBlbGVtQi0+c3VidHlwZXMsIHNldCkgIT0gMCkKKwkgICAgcmV0dXJuICgxKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja1JDYXNlTlNDb21wYXQ6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEByOiB0aGUgcmVzdHJpY3RpbmcgZWxlbWVudCBkZWNsYXJhdGlvbiBwYXJ0aWNsZQorICogQGI6IHRoZSBiYXNlIHdpbGRjYXJkIHBhcnRpY2xlCisgKgorICogKDMuOS42KSBDb25zdHJhaW50cyBvbiBQYXJ0aWNsZSBTY2hlbWEgQ29tcG9uZW50cworICogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OgorICogUGFydGljbGUgRGVyaXZhdGlvbiBPSyAoRWx0OkFueSAtLSBOU0NvbXBhdCkKKyAqIChyY2FzZS1OU0NvbXBhdCkKKyAqCisgKiBTVEFUVVM6IGNvbXBsZXRlCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLCBhIHBvc2l0aXZlCisgKiBlcnJvciBjb2RlIGlmIG5vdCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJlZC4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tSQ2FzZU5TQ29tcGF0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCSAgICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciByLAorCQkJICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIGIpCit7CisgICAgLyogVE9ETzpFcnJvciBjb2RlcyAocmNhc2UtTlNDb21wYXQpLiAqLworICAgIC8qCisgICAgKiBTUEVDICJGb3IgYW4gZWxlbWVudCBkZWNsYXJhdGlvbiBwYXJ0aWNsZSB0byBiZSBhIO+/vXZhbGlkIHJlc3RyaWN0aW9u77+9CisgICAgKiBvZiBhIHdpbGRjYXJkIHBhcnRpY2xlIGFsbCBvZiB0aGUgZm9sbG93aW5nIG11c3QgYmUgdHJ1ZToiCisgICAgKgorICAgICogU1BFQyAoMSkgIlRoZSBlbGVtZW50IGRlY2xhcmF0aW9uJ3Mge3RhcmdldCBuYW1lc3BhY2V9IGlzIO+/vXZhbGlk77+9CisgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIHdpbGRjYXJkJ3Mge25hbWVzcGFjZSBjb25zdHJhaW50fSBhcyBkZWZpbmVkIGJ5CisgICAgKiBXaWxkY2FyZCBhbGxvd3MgTmFtZXNwYWNlIE5hbWUgKO+/vTMuMTAuNCkuIgorICAgICovCisgICAgaWYgKHhtbFNjaGVtYUNoZWNrQ1ZDV2lsZGNhcmROYW1lc3BhY2UoKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSBiLT5jaGlsZHJlbiwKKwkoKHhtbFNjaGVtYUVsZW1lbnRQdHIpIHItPmNoaWxkcmVuKS0+dGFyZ2V0TmFtZXNwYWNlKSAhPSAwKQorCXJldHVybiAoMSk7CisgICAgLyoKKyAgICAqIFNQRUMgKDIpICJSJ3Mgb2NjdXJyZW5jZSByYW5nZSBpcyBhIHZhbGlkIHJlc3RyaWN0aW9uIG9mIEIncworICAgICogb2NjdXJyZW5jZSByYW5nZSBhcyBkZWZpbmVkIGJ5IE9jY3VycmVuY2UgUmFuZ2UgT0sgKO+/vTMuOS42KS4iCisgICAgKi8KKyAgICBpZiAoeG1sU2NoZW1hQ2hlY2tQYXJ0aWNsZVJhbmdlT0soci0+bWluT2NjdXJzLCByLT5tYXhPY2N1cnMsCisJICAgIGItPm1pbk9jY3VycywgYi0+bWF4T2NjdXJzKSAhPSAwKQorCXJldHVybiAoMSk7CisKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrUkNhc2VSZWN1cnNlQXNJZkdyb3VwOgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAcjogdGhlIHJlc3RyaWN0aW5nIGVsZW1lbnQgZGVjbGFyYXRpb24gcGFydGljbGUKKyAqIEBiOiB0aGUgYmFzZSBtb2RlbCBncm91cCBwYXJ0aWNsZQorICoKKyAqICgzLjkuNikgQ29uc3RyYWludHMgb24gUGFydGljbGUgU2NoZW1hIENvbXBvbmVudHMKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqIFBhcnRpY2xlIERlcml2YXRpb24gT0sgKEVsdDpBbGwvQ2hvaWNlL1NlcXVlbmNlIC0tIFJlY3Vyc2VBc0lmR3JvdXApCisgKiAocmNhc2UtUmVjdXJzZUFzSWZHcm91cCkKKyAqCisgKiBTVEFUVVM6IFRPRE8KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGNvbnN0cmFpbnRzIGFyZSBzYXRpc2ZpZWQsIGEgcG9zaXRpdmUKKyAqIGVycm9yIGNvZGUgaWYgbm90IGFuZCAtMSBpZiBhbiBpbnRlcm5hbCBlcnJvciBvY2N1cmVkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja1JDYXNlUmVjdXJzZUFzSWZHcm91cCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIHIsCisJCQkJICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIGIpCit7CisgICAgLyogVE9ETzogRXJyb3IgY29kZXMgKHJjYXNlLVJlY3Vyc2VBc0lmR3JvdXApLiAqLworICAgIFRPRE8KKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrUkNhc2VOU1N1YnNldDoKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHI6IHRoZSByZXN0cmljdGluZyB3aWxkY2FyZCBwYXJ0aWNsZQorICogQGI6IHRoZSBiYXNlIHdpbGRjYXJkIHBhcnRpY2xlCisgKgorICogKDMuOS42KSBDb25zdHJhaW50cyBvbiBQYXJ0aWNsZSBTY2hlbWEgQ29tcG9uZW50cworICogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OgorICogUGFydGljbGUgRGVyaXZhdGlvbiBPSyAoQW55OkFueSAtLSBOU1N1YnNldCkKKyAqIChyY2FzZS1OU1N1YnNldCkKKyAqCisgKiBTVEFUVVM6IGNvbXBsZXRlCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLCBhIHBvc2l0aXZlCisgKiBlcnJvciBjb2RlIGlmIG5vdCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJlZC4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tSQ2FzZU5TU3Vic2V0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgciwKKwkJCQkgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgYiwKKwkJCQkgICAgaW50IGlzQW55VHlwZUJhc2UpCit7CisgICAgLyogVE9ETzogRXJyb3IgY29kZXMgKHJjYXNlLU5TU3Vic2V0KS4gKi8KKyAgICAvKgorICAgICogU1BFQyAoMSkgIlIncyBvY2N1cnJlbmNlIHJhbmdlIGlzIGEgdmFsaWQgcmVzdHJpY3Rpb24gb2YgQidzCisgICAgKiBvY2N1cnJlbmNlIHJhbmdlIGFzIGRlZmluZWQgYnkgT2NjdXJyZW5jZSBSYW5nZSBPSyAo77+9My45LjYpLiIKKyAgICAqLworICAgIGlmICh4bWxTY2hlbWFDaGVja1BhcnRpY2xlUmFuZ2VPSyhyLT5taW5PY2N1cnMsIHItPm1heE9jY3VycywKKwkgICAgYi0+bWluT2NjdXJzLCBiLT5tYXhPY2N1cnMpKQorCXJldHVybiAoMSk7CisgICAgLyoKKyAgICAqIFNQRUMgKDIpICJSJ3Mge25hbWVzcGFjZSBjb25zdHJhaW50fSBtdXN0IGJlIGFuIGludGVuc2lvbmFsIHN1YnNldAorICAgICogb2YgQidzIHtuYW1lc3BhY2UgY29uc3RyYWludH0gYXMgZGVmaW5lZCBieSBXaWxkY2FyZCBTdWJzZXQgKO+/vTMuMTAuNikuIgorICAgICovCisgICAgaWYgKHhtbFNjaGVtYUNoZWNrQ09TTlNTdWJzZXQoKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSByLT5jaGlsZHJlbiwKKwkoeG1sU2NoZW1hV2lsZGNhcmRQdHIpIGItPmNoaWxkcmVuKSkKKwlyZXR1cm4gKDEpOworICAgIC8qCisgICAgKiBTUEVDICgzKSAiVW5sZXNzIEIgaXMgdGhlIGNvbnRlbnQgbW9kZWwgd2lsZGNhcmQgb2YgdGhlIO+/vXVyLXR5cGUKKyAgICAqIGRlZmluaXRpb27vv70sIFIncyB7cHJvY2VzcyBjb250ZW50c30gbXVzdCBiZSBpZGVudGljYWwgdG8gb3Igc3Ryb25nZXIKKyAgICAqIHRoYW4gQidzIHtwcm9jZXNzIGNvbnRlbnRzfSwgd2hlcmUgc3RyaWN0IGlzIHN0cm9uZ2VyIHRoYW4gbGF4IGlzCisgICAgKiBzdHJvbmdlciB0aGFuIHNraXAuIgorICAgICovCisgICAgaWYgKCEgaXNBbnlUeXBlQmFzZSkgeworCWlmICggKCh4bWxTY2hlbWFXaWxkY2FyZFB0cikgci0+Y2hpbGRyZW4pLT5wcm9jZXNzQ29udGVudHMgPAorCSAgICAoKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSBiLT5jaGlsZHJlbiktPnByb2Nlc3NDb250ZW50cykKKwkgICAgcmV0dXJuICgxKTsKKyAgICB9CisKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrQ09TUGFydGljbGVSZXN0cmljdDoKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHR5cGU6ICB0aGUgY29tcGxleCB0eXBlIGRlZmluaXRpb24KKyAqCisgKiAoMy45LjYpIENvbnN0cmFpbnRzIG9uIFBhcnRpY2xlIFNjaGVtYSBDb21wb25lbnRzCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiBQYXJ0aWNsZSBWYWxpZCAoUmVzdHJpY3Rpb24pIChjb3MtcGFydGljbGUtcmVzdHJpY3QpCisgKgorICogU1RBVFVTOiBUT0RPCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLCBhIHBvc2l0aXZlCisgKiBlcnJvciBjb2RlIGlmIG5vdCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJlZC4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tDT1NQYXJ0aWNsZVJlc3RyaWN0KHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCQkgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIHIsCisJCQkJICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciBiKQoreworICAgIGludCByZXQgPSAwOworCisgICAgLypwYXJ0ID0gV1hTX1RZUEVfUEFSVElDTEUodHlwZSk7CisgICAgYmFzZVBhcnQgPSBXWFNfVFlQRV9QQVJUSUNMRShiYXNlKTsKKyAgICAqLworCisgICAgVE9ETworCisgICAgLyoKKyAgICAqIFNQRUMgKDEpICJUaGV5IGFyZSB0aGUgc2FtZSBwYXJ0aWNsZS4iCisgICAgKi8KKyAgICBpZiAociA9PSBiKQorCXJldHVybiAoMCk7CisKKworICAgIHJldHVybiAoMCk7Cit9CisKKyNpZiAwCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrUkNhc2VOU1JlY3Vyc2VDaGVja0NhcmRpbmFsaXR5OgorICogQGN0eHQ6ICB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAcjogdGhlIG1vZGVsIGdyb3VwIHBhcnRpY2xlCisgKiBAYjogdGhlIGJhc2Ugd2lsZGNhcmQgcGFydGljbGUKKyAqCisgKiAoMy45LjYpIENvbnN0cmFpbnRzIG9uIFBhcnRpY2xlIFNjaGVtYSBDb21wb25lbnRzCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiBQYXJ0aWNsZSBEZXJpdmF0aW9uIE9LIChBbGwvQ2hvaWNlL1NlcXVlbmNlOkFueSAtLQorICogICAgICAgICAgICAgICAgICAgICAgICAgTlNSZWN1cnNlQ2hlY2tDYXJkaW5hbGl0eSkKKyAqIChyY2FzZS1OU1JlY3Vyc2VDaGVja0NhcmRpbmFsaXR5KQorICoKKyAqIFNUQVRVUzogVE9ETzogc3Vic3QtZ3JvdXBzCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBjb25zdHJhaW50cyBhcmUgc2F0aXNmaWVkLCBhIHBvc2l0aXZlCisgKiBlcnJvciBjb2RlIGlmIG5vdCBhbmQgLTEgaWYgYW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJlZC4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tSQ2FzZU5TUmVjdXJzZUNoZWNrQ2FyZGluYWxpdHkoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJCQkgICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIHIsCisJCQkJCSAgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgYikKK3sKKyAgICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciBwYXJ0OworICAgIC8qIFRPRE86IEVycm9yIGNvZGVzIChyY2FzZS1OU1JlY3Vyc2VDaGVja0NhcmRpbmFsaXR5KS4gKi8KKyAgICBpZiAoKHItPmNoaWxkcmVuID09IE5VTEwpIHx8IChyLT5jaGlsZHJlbi0+Y2hpbGRyZW4gPT0gTlVMTCkpCisJcmV0dXJuICgtMSk7CisgICAgLyoKKyAgICAqIFNQRUMgIkZvciBhIGdyb3VwIHBhcnRpY2xlIHRvIGJlIGEg77+9dmFsaWQgcmVzdHJpY3Rpb27vv70gb2YgYQorICAgICogd2lsZGNhcmQgcGFydGljbGUuLi4iCisgICAgKgorICAgICogU1BFQyAoMSkgIkV2ZXJ5IG1lbWJlciBvZiB0aGUge3BhcnRpY2xlc30gb2YgdGhlIGdyb3VwIGlzIGEg77+9dmFsaWQKKyAgICAqIHJlc3RyaWN0aW9u77+9IG9mIHRoZSB3aWxkY2FyZCBhcyBkZWZpbmVkIGJ5CisgICAgKiBQYXJ0aWNsZSBWYWxpZCAoUmVzdHJpY3Rpb24pICjvv70zLjkuNikuIgorICAgICovCisgICAgcGFydCA9ICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgci0+Y2hpbGRyZW4tPmNoaWxkcmVuOworICAgIGRvIHsKKwlpZiAoeG1sU2NoZW1hQ2hlY2tDT1NQYXJ0aWNsZVJlc3RyaWN0KGN0eHQsIHBhcnQsIGIpKQorCSAgICByZXR1cm4gKDEpOworCXBhcnQgPSAoeG1sU2NoZW1hUGFydGljbGVQdHIpIHBhcnQtPm5leHQ7CisgICAgfSB3aGlsZSAocGFydCAhPSBOVUxMKTsKKyAgICAvKgorICAgICogU1BFQyAoMikgIlRoZSBlZmZlY3RpdmUgdG90YWwgcmFuZ2Ugb2YgdGhlIGdyb3VwIFsuLi5dIGlzIGEKKyAgICAqIHZhbGlkIHJlc3RyaWN0aW9uIG9mIEIncyBvY2N1cnJlbmNlIHJhbmdlIGFzIGRlZmluZWQgYnkKKyAgICAqIE9jY3VycmVuY2UgUmFuZ2UgT0sgKO+/vTMuOS42KS4iCisgICAgKi8KKyAgICBpZiAoeG1sU2NoZW1hQ2hlY2tQYXJ0aWNsZVJhbmdlT0soCisJICAgIHhtbFNjaGVtYUdldFBhcnRpY2xlVG90YWxSYW5nZU1pbihyKSwKKwkgICAgeG1sU2NoZW1hR2V0UGFydGljbGVUb3RhbFJhbmdlTWF4KHIpLAorCSAgICBiLT5taW5PY2N1cnMsIGItPm1heE9jY3VycykgIT0gMCkKKwlyZXR1cm4gKDEpOworICAgIHJldHVybiAoMCk7Cit9CisjZW5kaWYKKworLyoqCisgKiB4bWxTY2hlbWFDaGVja1JDYXNlUmVjdXJzZToKKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHI6IHRoZSA8YWxsPiBvciA8c2VxdWVuY2U+IG1vZGVsIGdyb3VwIHBhcnRpY2xlCisgKiBAYjogdGhlIGJhc2UgPGFsbD4gb3IgPHNlcXVlbmNlPiBtb2RlbCBncm91cCBwYXJ0aWNsZQorICoKKyAqICgzLjkuNikgQ29uc3RyYWludHMgb24gUGFydGljbGUgU2NoZW1hIENvbXBvbmVudHMKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqIFBhcnRpY2xlIERlcml2YXRpb24gT0sgKEFsbDpBbGwsU2VxdWVuY2U6U2VxdWVuY2UgLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3Vyc2UpCisgKiAocmNhc2UtUmVjdXJzZSkKKyAqCisgKiBTVEFUVVM6ICA/CisgKiBUT0RPOiBzdWJzdC1ncm91cHMKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGNvbnN0cmFpbnRzIGFyZSBzYXRpc2ZpZWQsIGEgcG9zaXRpdmUKKyAqIGVycm9yIGNvZGUgaWYgbm90IGFuZCAtMSBpZiBhbiBpbnRlcm5hbCBlcnJvciBvY2N1cmVkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja1JDYXNlUmVjdXJzZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkgICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciByLAorCQkJICAgeG1sU2NoZW1hUGFydGljbGVQdHIgYikKK3sKKyAgICAvKiB4bWxTY2hlbWFQYXJ0aWNsZVB0ciBwYXJ0OyAqLworICAgIC8qIFRPRE86IEVycm9yIGNvZGVzIChyY2FzZS1SZWN1cnNlKS4gKi8KKyAgICBpZiAoKHItPmNoaWxkcmVuID09IE5VTEwpIHx8IChiLT5jaGlsZHJlbiA9PSBOVUxMKSB8fAorCShyLT5jaGlsZHJlbi0+dHlwZSAhPSBiLT5jaGlsZHJlbi0+dHlwZSkpCisJcmV0dXJuICgtMSk7CisgICAgLyoKKyAgICAqIFNQRUMgIkZvciBhbiBhbGwgb3Igc2VxdWVuY2UgZ3JvdXAgcGFydGljbGUgdG8gYmUgYSDvv712YWxpZAorICAgICogcmVzdHJpY3Rpb27vv70gb2YgYW5vdGhlciBncm91cCBwYXJ0aWNsZSB3aXRoIHRoZSBzYW1lIHtjb21wb3NpdG9yfS4uLiIKKyAgICAqCisgICAgKiBTUEVDICgxKSAiUidzIG9jY3VycmVuY2UgcmFuZ2UgaXMgYSB2YWxpZCByZXN0cmljdGlvbiBvZiBCJ3MKKyAgICAqIG9jY3VycmVuY2UgcmFuZ2UgYXMgZGVmaW5lZCBieSBPY2N1cnJlbmNlIFJhbmdlIE9LICjvv70zLjkuNikuIgorICAgICovCisgICAgaWYgKHhtbFNjaGVtYUNoZWNrUGFydGljbGVSYW5nZU9LKHItPm1pbk9jY3Vycywgci0+bWF4T2NjdXJzLAorCSAgICBiLT5taW5PY2N1cnMsIGItPm1heE9jY3VycykpCisJcmV0dXJuICgxKTsKKworCisgICAgcmV0dXJuICgwKTsKK30KKworI2VuZGlmCisKKyNkZWZpbmUgRkFDRVRfUkVTVFJfTVVUVUFMX0VSUihmYWMxLCBmYWMyKSBcCisgICAgeG1sU2NoZW1hUEN1c3RvbUVyckV4dChwY3R4dCwgICAgICBcCisJWE1MX1NDSEVNQVBfSU5WQUxJRF9GQUNFVF9WQUxVRSwgXAorCVdYU19CQVNJQ19DQVNUIGZhYzEsIGZhYzEtPm5vZGUsIFwKKwkiSXQgaXMgYW4gZXJyb3IgZm9yIGJvdGggJyVzJyBhbmQgJyVzJyB0byBiZSBzcGVjaWZpZWQgb24gdGhlICJcCisJInNhbWUgdHlwZSBkZWZpbml0aW9uIiwgXAorCUJBRF9DQVNUIHhtbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nKGZhYzEtPnR5cGUpLCBcCisJQkFEX0NBU1QgeG1sU2NoZW1hRmFjZXRUeXBlVG9TdHJpbmcoZmFjMi0+dHlwZSksIE5VTEwpOworCisjZGVmaW5lIEZBQ0VUX1JFU1RSX0VSUihmYWMxLCBtc2cpIFwKKyAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LCAgICAgIFwKKwlYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFLCBcCisJV1hTX0JBU0lDX0NBU1QgZmFjMSwgZmFjMS0+bm9kZSwgXAorCW1zZywgTlVMTCk7CisKKyNkZWZpbmUgRkFDRVRfUkVTVFJfRklYRURfRVJSKGZhYykgXAorICAgIHhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsIFwKKwlYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFLCBcCisJV1hTX0JBU0lDX0NBU1QgZmFjLCBmYWMtPm5vZGUsIFwKKwkiVGhlIGJhc2UgdHlwZSdzIGZhY2V0IGlzICdmaXhlZCcsIHRodXMgdGhlIHZhbHVlIG11c3Qgbm90ICIgXAorCSJkaWZmZXIiLCBOVUxMKTsKKworc3RhdGljIHZvaWQKK3htbFNjaGVtYURlcml2ZUZhY2V0RXJyKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQl4bWxTY2hlbWFGYWNldFB0ciBmYWNldDEsCisJCQl4bWxTY2hlbWFGYWNldFB0ciBmYWNldDIsCisJCQlpbnQgbGVzc0dyZWF0ZXIsCisJCQlpbnQgb3JFcXVhbCwKKwkJCWludCBvZkJhc2UpCit7CisgICAgeG1sQ2hhciAqbXNnID0gTlVMTDsKKworICAgIG1zZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiJyIpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIHhtbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nKGZhY2V0MS0+dHlwZSkpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICInIGhhcyB0byBiZSIpOworICAgIGlmIChsZXNzR3JlYXRlciA9PSAwKQorCW1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIgZXF1YWwgdG8iKTsKKyAgICBpZiAobGVzc0dyZWF0ZXIgPT0gMSkKKwltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiIGdyZWF0ZXIgdGhhbiIpOworICAgIGVsc2UKKwltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiIGxlc3MgdGhhbiIpOworCisgICAgaWYgKG9yRXF1YWwpCisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIiBvciBlcXVhbCB0byIpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIEJBRF9DQVNUICIgJyIpOworICAgIG1zZyA9IHhtbFN0cmNhdChtc2csIHhtbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nKGZhY2V0Mi0+dHlwZSkpOworICAgIGlmIChvZkJhc2UpCisJbXNnID0geG1sU3RyY2F0KG1zZywgQkFEX0NBU1QgIicgb2YgdGhlIGJhc2UgdHlwZSIpOworICAgIGVsc2UKKwltc2cgPSB4bWxTdHJjYXQobXNnLCBCQURfQ0FTVCAiJyIpOworCisgICAgeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwlYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFLAorCVdYU19CQVNJQ19DQVNUIGZhY2V0MSwgTlVMTCwKKwkoY29uc3QgY2hhciAqKSBtc2csIE5VTEwpOworCisgICAgaWYgKG1zZyAhPSBOVUxMKQorCXhtbEZyZWUobXNnKTsKK30KKworLyoKKyogeG1sU2NoZW1hRGVyaXZlQW5kVmFsaWRhdGVGYWNldHM6CisqCisqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDogU2ltcGxlIFR5cGUgUmVzdHJpY3Rpb24gKEZhY2V0cykKKyogKHN0LXJlc3RyaWN0LWZhY2V0cykKKyovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFEZXJpdmVBbmRWYWxpZGF0ZUZhY2V0cyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCSB4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgeG1sU2NoZW1hVHlwZVB0ciBiYXNlID0gdHlwZS0+YmFzZVR5cGU7CisgICAgeG1sU2NoZW1hRmFjZXRMaW5rUHRyIGxpbmssIGN1ciwgbGFzdCA9IE5VTEw7CisgICAgeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQsIGJmYWNldCwKKwlmbGVuZ3RoID0gTlVMTCwgZnRvdGRpZyA9IE5VTEwsIGZmcmFjZGlnID0gTlVMTCwKKwlmbWF4bGVuID0gTlVMTCwgZm1pbmxlbiA9IE5VTEwsIC8qIGZhY2V0cyBvZiB0aGUgY3VycmVudCB0eXBlICovCisJZm1pbmluYyA9IE5VTEwsIGZtYXhpbmMgPSBOVUxMLAorCWZtaW5leGMgPSBOVUxMLCBmbWF4ZXhjID0gTlVMTCwKKwliZmxlbmd0aCA9IE5VTEwsIGJmdG90ZGlnID0gTlVMTCwgYmZmcmFjZGlnID0gTlVMTCwKKwliZm1heGxlbiA9IE5VTEwsIGJmbWlubGVuID0gTlVMTCwgLyogZmFjZXRzIG9mIHRoZSBiYXNlIHR5cGUgKi8KKwliZm1pbmluYyA9IE5VTEwsIGJmbWF4aW5jID0gTlVMTCwKKwliZm1pbmV4YyA9IE5VTEwsIGJmbWF4ZXhjID0gTlVMTDsKKyAgICBpbnQgcmVzOyAvKiBlcnIgPSAwLCBmaXhlZEVycjsgKi8KKworICAgIC8qCisgICAgKiBTUEVDIHN0LXJlc3RyaWN0LWZhY2V0cyAxOgorICAgICogIlRoZSB7dmFyaWV0eX0gb2YgUiBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIEIuIgorICAgICovCisgICAgLyoKKyAgICAqIFNQRUMgc3QtcmVzdHJpY3QtZmFjZXRzIDI6CisgICAgKiAiSWYge3ZhcmlldHl9IGlzIGF0b21pYywgdGhlIHtwcmltaXRpdmUgdHlwZSBkZWZpbml0aW9ufQorICAgICogb2YgUiBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIEIuIgorICAgICoKKyAgICAqIE5PVEU6IHdlIGxlYXZlIDEgJiAyIG91dCBmb3Igbm93LCBzaW5jZSB0aGlzIHdpbGwgYmUKKyAgICAqIHNhdGlzZmllZCBieSB0aGUgZGVyaXZhdGlvbiBwcm9jZXNzLgorICAgICogQ09OU1RSVUNUSU9OIFRPRE86IE1heWJlIG5lZWRlZCBpZiB1c2luZyBhIGNvbnN0cnVjdGlvbiBBUEkuCisgICAgKi8KKyAgICAvKgorICAgICogU1BFQyBzdC1yZXN0cmljdC1mYWNldHMgMzoKKyAgICAqICJUaGUge2ZhY2V0c30gb2YgUiBhcmUgdGhlIHVuaW9uIG9mIFMgYW5kIHRoZSB7ZmFjZXRzfQorICAgICogb2YgQiwgZWxpbWluYXRpbmcgZHVwbGljYXRlcy4gVG8gZWxpbWluYXRlIGR1cGxpY2F0ZXMsCisgICAgKiB3aGVuIGEgZmFjZXQgb2YgdGhlIHNhbWUga2luZCBvY2N1cnMgaW4gYm90aCBTIGFuZCB0aGUKKyAgICAqIHtmYWNldHN9IG9mIEIsIHRoZSBvbmUgaW4gdGhlIHtmYWNldHN9IG9mIEIgaXMgbm90CisgICAgKiBpbmNsdWRlZCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIGVudW1lcmF0aW9uIGFuZCBwYXR0ZXJuCisgICAgKiBmYWNldHMsIGZvciB3aGljaCBtdWx0aXBsZSBvY2N1cnJlbmNlcyB3aXRoIGRpc3RpbmN0IHZhbHVlcworICAgICogYXJlIGFsbG93ZWQuIgorICAgICovCisKKyAgICBpZiAoKHR5cGUtPmZhY2V0U2V0ID09IE5VTEwpICYmIChiYXNlLT5mYWNldFNldCA9PSBOVUxMKSkKKwlyZXR1cm4gKDApOworCisgICAgbGFzdCA9IHR5cGUtPmZhY2V0U2V0OworICAgIGlmIChsYXN0ICE9IE5VTEwpCisJd2hpbGUgKGxhc3QtPm5leHQgIT0gTlVMTCkKKwkgICAgbGFzdCA9IGxhc3QtPm5leHQ7CisKKyAgICBmb3IgKGN1ciA9IHR5cGUtPmZhY2V0U2V0OyBjdXIgIT0gTlVMTDsgY3VyID0gY3VyLT5uZXh0KSB7CisJZmFjZXQgPSBjdXItPmZhY2V0OworCXN3aXRjaCAoZmFjZXQtPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSDoKKwkJZmxlbmd0aCA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSDoKKwkJZm1pbmxlbiA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRToKKwkJZm1pbmluYyA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRToKKwkJZm1pbmV4YyA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDoKKwkJZm1heGxlbiA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRToKKwkJZm1heGluYyA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWEVYQ0xVU0lWRToKKwkJZm1heGV4YyA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1RPVEFMRElHSVRTOgorCQlmdG90ZGlnID0gZmFjZXQ7IGJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM6CisJCWZmcmFjZGlnID0gZmFjZXQ7IGJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIGZvciAoY3VyID0gYmFzZS0+ZmFjZXRTZXQ7IGN1ciAhPSBOVUxMOyBjdXIgPSBjdXItPm5leHQpIHsKKwlmYWNldCA9IGN1ci0+ZmFjZXQ7CisJc3dpdGNoIChmYWNldC0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIOgorCQliZmxlbmd0aCA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSDoKKwkJYmZtaW5sZW4gPSBmYWNldDsgYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5JTkNMVVNJVkU6CisJCWJmbWluaW5jID0gZmFjZXQ7IGJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlORVhDTFVTSVZFOgorCQliZm1pbmV4YyA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDoKKwkJYmZtYXhsZW4gPSBmYWNldDsgYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU6CisJCWJmbWF4aW5jID0gZmFjZXQ7IGJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFOgorCQliZm1heGV4YyA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1RPVEFMRElHSVRTOgorCQliZnRvdGRpZyA9IGZhY2V0OyBicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0ZSQUNUSU9ORElHSVRTOgorCQliZmZyYWNkaWcgPSBmYWNldDsgYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWJyZWFrOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIGxlbmd0aCBhbmQgbWluTGVuZ3RoIG9yIG1heExlbmd0aCAoMi4yKSArICgzLjIpCisgICAgKi8KKyAgICBpZiAoZmxlbmd0aCAmJiAoZm1pbmxlbiB8fCBmbWF4bGVuKSkgeworCUZBQ0VUX1JFU1RSX0VSUihmbGVuZ3RoLCAiSXQgaXMgYW4gZXJyb3IgZm9yIGJvdGggJ2xlbmd0aCcgYW5kICIKKwkgICAgImVpdGhlciBvZiAnbWluTGVuZ3RoJyBvciAnbWF4TGVuZ3RoJyB0byBiZSBzcGVjaWZpZWQgb24gIgorCSAgICAidGhlIHNhbWUgdHlwZSBkZWZpbml0aW9uIikKKyAgICB9CisgICAgLyoKKyAgICAqIE11dHVhbCBleGNsdXNpb25zIGluIHRoZSBzYW1lIGRlcml2YXRpb24gc3RlcC4KKyAgICAqLworICAgIGlmICgoZm1heGluYykgJiYgKGZtYXhleGMpKSB7CisJLyoKKwkqIFNDQyAibWF4SW5jbHVzaXZlIGFuZCBtYXhFeGNsdXNpdmUiCisJKi8KKwlGQUNFVF9SRVNUUl9NVVRVQUxfRVJSKGZtYXhpbmMsIGZtYXhleGMpCisgICAgfQorICAgIGlmICgoZm1pbmluYykgJiYgKGZtaW5leGMpKSB7CisJLyoKKwkqIFNDQyAibWluSW5jbHVzaXZlIGFuZCBtaW5FeGNsdXNpdmUiCisJKi8KKwlGQUNFVF9SRVNUUl9NVVRVQUxfRVJSKGZtaW5pbmMsIGZtaW5leGMpCisgICAgfQorCisgICAgaWYgKGZsZW5ndGggJiYgYmZsZW5ndGgpIHsKKwkvKgorCSogU0NDICJsZW5ndGggdmFsaWQgcmVzdHJpY3Rpb24iCisJKiBUaGUgdmFsdWVzIGhhdmUgdG8gYmUgZXF1YWwuCisJKi8KKwlyZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZsZW5ndGgtPnZhbCwgYmZsZW5ndGgtPnZhbCk7CisJaWYgKHJlcyA9PSAtMikKKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwlpZiAocmVzICE9IDApCisJICAgIHhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbGVuZ3RoLCBiZmxlbmd0aCwgMCwgMCwgMSk7CisJaWYgKChyZXMgIT0gMCkgJiYgKGJmbGVuZ3RoLT5maXhlZCkpIHsKKwkgICAgRkFDRVRfUkVTVFJfRklYRURfRVJSKGZsZW5ndGgpCisJfQorCisgICAgfQorICAgIGlmIChmbWlubGVuICYmIGJmbWlubGVuKSB7CisJLyoKKwkqIFNDQyAibWluTGVuZ3RoIHZhbGlkIHJlc3RyaWN0aW9uIgorCSogbWluTGVuZ3RoID49IEJBU0UgbWluTGVuZ3RoCisJKi8KKwlyZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtaW5sZW4tPnZhbCwgYmZtaW5sZW4tPnZhbCk7CisJaWYgKHJlcyA9PSAtMikKKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwlpZiAocmVzID09IC0xKQorCSAgICB4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1pbmxlbiwgYmZtaW5sZW4sIDEsIDEsIDEpOworCWlmICgocmVzICE9IDApICYmIChiZm1pbmxlbi0+Zml4ZWQpKSB7CisJICAgIEZBQ0VUX1JFU1RSX0ZJWEVEX0VSUihmbWlubGVuKQorCX0KKyAgICB9CisgICAgaWYgKGZtYXhsZW4gJiYgYmZtYXhsZW4pIHsKKwkvKgorCSogU0NDICJtYXhMZW5ndGggdmFsaWQgcmVzdHJpY3Rpb24iCisJKiBtYXhMZW5ndGggPD0gQkFTRSBtaW5MZW5ndGgKKwkqLworCXJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1heGxlbi0+dmFsLCBiZm1heGxlbi0+dmFsKTsKKwlpZiAocmVzID09IC0yKQorCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCWlmIChyZXMgPT0gMSkKKwkgICAgeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtYXhsZW4sIGJmbWF4bGVuLCAtMSwgMSwgMSk7CisJaWYgKChyZXMgIT0gMCkgJiYgKGJmbWF4bGVuLT5maXhlZCkpIHsKKwkgICAgRkFDRVRfUkVTVFJfRklYRURfRVJSKGZtYXhsZW4pCisJfQorICAgIH0KKyAgICAvKgorICAgICogU0NDICJsZW5ndGggYW5kIG1pbkxlbmd0aCBvciBtYXhMZW5ndGgiCisgICAgKi8KKyAgICBpZiAoISBmbGVuZ3RoKQorCWZsZW5ndGggPSBiZmxlbmd0aDsKKyAgICBpZiAoZmxlbmd0aCkgeworCWlmICghIGZtaW5sZW4pCisJICAgIGZtaW5sZW4gPSBiZm1pbmxlbjsKKwlpZiAoZm1pbmxlbikgeworCSAgICAvKiAoMS4xKSBsZW5ndGggPj0gbWluTGVuZ3RoICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZmxlbmd0aC0+dmFsLCBmbWlubGVuLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzID09IC0xKQorCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZmxlbmd0aCwgZm1pbmxlbiwgMSwgMSwgMCk7CisJfQorCWlmICghIGZtYXhsZW4pCisJICAgIGZtYXhsZW4gPSBiZm1heGxlbjsKKwlpZiAoZm1heGxlbikgeworCSAgICAvKiAoMi4xKSBsZW5ndGggPD0gbWF4TGVuZ3RoICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZmxlbmd0aC0+dmFsLCBmbWF4bGVuLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzID09IDEpCisJCXhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbGVuZ3RoLCBmbWF4bGVuLCAtMSwgMSwgMCk7CisJfQorICAgIH0KKyAgICBpZiAoZm1heGluYykgeworCS8qCisJKiAibWF4SW5jbHVzaXZlIgorCSovCisJaWYgKGZtaW5pbmMpIHsKKwkgICAgLyogU0NDICJtYXhJbmNsdXNpdmUgPj0gbWluSW5jbHVzaXZlIiAqLworCSAgICByZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtYXhpbmMtPnZhbCwgZm1pbmluYy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyA9PSAtMSkgeworCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1heGluYywgZm1pbmluYywgMSwgMSwgMCk7CisJICAgIH0KKwl9CisJLyoKKwkqIFNDQyAibWF4SW5jbHVzaXZlIHZhbGlkIHJlc3RyaWN0aW9uIgorCSovCisJaWYgKGJmbWF4aW5jKSB7CisJICAgIC8qIG1heEluY2x1c2l2ZSA8PSBCQVNFIG1heEluY2x1c2l2ZSAqLworCSAgICByZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtYXhpbmMtPnZhbCwgYmZtYXhpbmMtPnZhbCk7CisJICAgIGlmIChyZXMgPT0gLTIpCisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIGlmIChyZXMgPT0gMSkKKwkJeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtYXhpbmMsIGJmbWF4aW5jLCAtMSwgMSwgMSk7CisJICAgIGlmICgocmVzICE9IDApICYmIChiZm1heGluYy0+Zml4ZWQpKSB7CisJCUZBQ0VUX1JFU1RSX0ZJWEVEX0VSUihmbWF4aW5jKQorCSAgICB9CisJfQorCWlmIChiZm1heGV4YykgeworCSAgICAvKiBtYXhJbmNsdXNpdmUgPCBCQVNFIG1heEV4Y2x1c2l2ZSAqLworCSAgICByZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtYXhpbmMtPnZhbCwgYmZtYXhleGMtPnZhbCk7CisJICAgIGlmIChyZXMgPT0gLTIpCisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIGlmIChyZXMgIT0gLTEpIHsKKwkJeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtYXhpbmMsIGJmbWF4ZXhjLCAtMSwgMCwgMSk7CisJICAgIH0KKwl9CisJaWYgKGJmbWluaW5jKSB7CisJICAgIC8qIG1heEluY2x1c2l2ZSA+PSBCQVNFIG1pbkluY2x1c2l2ZSAqLworCSAgICByZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtYXhpbmMtPnZhbCwgYmZtaW5pbmMtPnZhbCk7CisJICAgIGlmIChyZXMgPT0gLTIpCisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIGlmIChyZXMgPT0gLTEpIHsKKwkJeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtYXhpbmMsIGJmbWluaW5jLCAxLCAxLCAxKTsKKwkgICAgfQorCX0KKwlpZiAoYmZtaW5leGMpIHsKKwkgICAgLyogbWF4SW5jbHVzaXZlID4gQkFTRSBtaW5FeGNsdXNpdmUgKi8KKwkgICAgcmVzID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlcyhmbWF4aW5jLT52YWwsIGJmbWluZXhjLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzICE9IDEpIHsKKwkJeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtYXhpbmMsIGJmbWluZXhjLCAxLCAwLCAxKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKGZtYXhleGMpIHsKKwkvKgorCSogIm1heEV4Y2x1c2l2ZSA+PSBtaW5FeGNsdXNpdmUiCisJKi8KKwlpZiAoZm1pbmV4YykgeworCSAgICByZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtYXhleGMtPnZhbCwgZm1pbmV4Yy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyA9PSAtMSkgeworCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1heGV4YywgZm1pbmV4YywgMSwgMSwgMCk7CisJICAgIH0KKwl9CisJLyoKKwkqICJtYXhFeGNsdXNpdmUgdmFsaWQgcmVzdHJpY3Rpb24iCisJKi8KKwlpZiAoYmZtYXhleGMpIHsKKwkgICAgLyogbWF4RXhjbHVzaXZlIDw9IEJBU0UgbWF4RXhjbHVzaXZlICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1heGV4Yy0+dmFsLCBiZm1heGV4Yy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyA9PSAxKSB7CisJCXhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbWF4ZXhjLCBiZm1heGV4YywgLTEsIDEsIDEpOworCSAgICB9CisJICAgIGlmICgocmVzICE9IDApICYmIChiZm1heGV4Yy0+Zml4ZWQpKSB7CisJCUZBQ0VUX1JFU1RSX0ZJWEVEX0VSUihmbWF4ZXhjKQorCSAgICB9CisJfQorCWlmIChiZm1heGluYykgeworCSAgICAvKiBtYXhFeGNsdXNpdmUgPD0gQkFTRSBtYXhJbmNsdXNpdmUgKi8KKwkgICAgcmVzID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlcyhmbWF4ZXhjLT52YWwsIGJmbWF4aW5jLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzID09IDEpIHsKKwkJeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtYXhleGMsIGJmbWF4aW5jLCAtMSwgMSwgMSk7CisJICAgIH0KKwl9CisJaWYgKGJmbWluaW5jKSB7CisJICAgIC8qIG1heEV4Y2x1c2l2ZSA+IEJBU0UgbWluSW5jbHVzaXZlICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1heGV4Yy0+dmFsLCBiZm1pbmluYy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyAhPSAxKSB7CisJCXhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbWF4ZXhjLCBiZm1pbmluYywgMSwgMCwgMSk7CisJICAgIH0KKwl9CisJaWYgKGJmbWluZXhjKSB7CisJICAgIC8qIG1heEV4Y2x1c2l2ZSA+IEJBU0UgbWluRXhjbHVzaXZlICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1heGV4Yy0+dmFsLCBiZm1pbmV4Yy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyAhPSAxKSB7CisJCXhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbWF4ZXhjLCBiZm1pbmV4YywgMSwgMCwgMSk7CisJICAgIH0KKwl9CisgICAgfQorICAgIGlmIChmbWluZXhjKSB7CisJLyoKKwkqICJtaW5FeGNsdXNpdmUgPCBtYXhJbmNsdXNpdmUiCisJKi8KKwlpZiAoZm1heGluYykgeworCSAgICByZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtaW5leGMtPnZhbCwgZm1heGluYy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyAhPSAtMSkgeworCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1pbmV4YywgZm1heGluYywgLTEsIDAsIDApOworCSAgICB9CisJfQorCS8qCisJKiAibWluRXhjbHVzaXZlIHZhbGlkIHJlc3RyaWN0aW9uIgorCSovCisJaWYgKGJmbWluZXhjKSB7CisJICAgIC8qIG1pbkV4Y2x1c2l2ZSA+PSBCQVNFIG1pbkV4Y2x1c2l2ZSAqLworCSAgICByZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZtaW5leGMtPnZhbCwgYmZtaW5leGMtPnZhbCk7CisJICAgIGlmIChyZXMgPT0gLTIpCisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIGlmIChyZXMgPT0gLTEpIHsKKwkJeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtaW5leGMsIGJmbWluZXhjLCAxLCAxLCAxKTsKKwkgICAgfQorCSAgICBpZiAoKHJlcyAhPSAwKSAmJiAoYmZtaW5leGMtPmZpeGVkKSkgeworCQlGQUNFVF9SRVNUUl9GSVhFRF9FUlIoZm1pbmV4YykKKwkgICAgfQorCX0KKwlpZiAoYmZtYXhpbmMpIHsKKwkgICAgLyogbWluRXhjbHVzaXZlIDw9IEJBU0UgbWF4SW5jbHVzaXZlICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1pbmV4Yy0+dmFsLCBiZm1heGluYy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyA9PSAxKSB7CisJCXhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbWluZXhjLCBiZm1heGluYywgLTEsIDEsIDEpOworCSAgICB9CisJfQorCWlmIChiZm1pbmluYykgeworCSAgICAvKiBtaW5FeGNsdXNpdmUgPj0gQkFTRSBtaW5JbmNsdXNpdmUgKi8KKwkgICAgcmVzID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlcyhmbWluZXhjLT52YWwsIGJmbWluaW5jLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzID09IC0xKSB7CisJCXhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbWluZXhjLCBiZm1pbmluYywgMSwgMSwgMSk7CisJICAgIH0KKwl9CisJaWYgKGJmbWF4ZXhjKSB7CisJICAgIC8qIG1pbkV4Y2x1c2l2ZSA8IEJBU0UgbWF4RXhjbHVzaXZlICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1pbmV4Yy0+dmFsLCBiZm1heGV4Yy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyAhPSAtMSkgeworCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1pbmV4YywgYmZtYXhleGMsIC0xLCAwLCAxKTsKKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKGZtaW5pbmMpIHsKKwkvKgorCSogIm1pbkluY2x1c2l2ZSA8IG1heEV4Y2x1c2l2ZSIKKwkqLworCWlmIChmbWF4ZXhjKSB7CisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1pbmluYy0+dmFsLCBmbWF4ZXhjLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzICE9IC0xKSB7CisJCXhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmbWluaW5jLCBmbWF4ZXhjLCAtMSwgMCwgMCk7CisJICAgIH0KKwl9CisJLyoKKwkqICJtaW5FeGNsdXNpdmUgdmFsaWQgcmVzdHJpY3Rpb24iCisJKi8KKwlpZiAoYmZtaW5pbmMpIHsKKwkgICAgLyogbWluSW5jbHVzaXZlID49IEJBU0UgbWluSW5jbHVzaXZlICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1pbmluYy0+dmFsLCBiZm1pbmluYy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyA9PSAtMSkgeworCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1pbmluYywgYmZtaW5pbmMsIDEsIDEsIDEpOworCSAgICB9CisJICAgIGlmICgocmVzICE9IDApICYmIChiZm1pbmluYy0+Zml4ZWQpKSB7CisJCUZBQ0VUX1JFU1RSX0ZJWEVEX0VSUihmbWluaW5jKQorCSAgICB9CisJfQorCWlmIChiZm1heGluYykgeworCSAgICAvKiBtaW5JbmNsdXNpdmUgPD0gQkFTRSBtYXhJbmNsdXNpdmUgKi8KKwkgICAgcmVzID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlcyhmbWluaW5jLT52YWwsIGJmbWF4aW5jLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzID09IDEpIHsKKwkJeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZtaW5pbmMsIGJmbWF4aW5jLCAtMSwgMSwgMSk7CisJICAgIH0KKwl9CisJaWYgKGJmbWluZXhjKSB7CisJICAgIC8qIG1pbkluY2x1c2l2ZSA+IEJBU0UgbWluRXhjbHVzaXZlICovCisJICAgIHJlcyA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXMoZm1pbmluYy0+dmFsLCBiZm1pbmV4Yy0+dmFsKTsKKwkgICAgaWYgKHJlcyA9PSAtMikKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWYgKHJlcyAhPSAxKQorCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1pbmluYywgYmZtaW5leGMsIDEsIDAsIDEpOworCX0KKwlpZiAoYmZtYXhleGMpIHsKKwkgICAgLyogbWluSW5jbHVzaXZlIDwgQkFTRSBtYXhFeGNsdXNpdmUgKi8KKwkgICAgcmVzID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlcyhmbWluaW5jLT52YWwsIGJmbWF4ZXhjLT52YWwpOworCSAgICBpZiAocmVzID09IC0yKQorCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICBpZiAocmVzICE9IC0xKQorCQl4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZm1pbmluYywgYmZtYXhleGMsIC0xLCAwLCAxKTsKKwl9CisgICAgfQorICAgIGlmIChmdG90ZGlnICYmIGJmdG90ZGlnKSB7CisJLyoKKwkqIFNDQyAiIHRvdGFsRGlnaXRzIHZhbGlkIHJlc3RyaWN0aW9uIgorCSogdG90YWxEaWdpdHMgPD0gQkFTRSB0b3RhbERpZ2l0cworCSovCisJcmVzID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlcyhmdG90ZGlnLT52YWwsIGJmdG90ZGlnLT52YWwpOworCWlmIChyZXMgPT0gLTIpCisJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJaWYgKHJlcyA9PSAxKQorCSAgICB4bWxTY2hlbWFEZXJpdmVGYWNldEVycihwY3R4dCwgZnRvdGRpZywgYmZ0b3RkaWcsCisJICAgIC0xLCAxLCAxKTsKKwlpZiAoKHJlcyAhPSAwKSAmJiAoYmZ0b3RkaWctPmZpeGVkKSkgeworCSAgICBGQUNFVF9SRVNUUl9GSVhFRF9FUlIoZnRvdGRpZykKKwl9CisgICAgfQorICAgIGlmIChmZnJhY2RpZyAmJiBiZmZyYWNkaWcpIHsKKwkvKgorCSogU0NDICAiZnJhY3Rpb25EaWdpdHMgdmFsaWQgcmVzdHJpY3Rpb24iCisJKiBmcmFjdGlvbkRpZ2l0cyA8PSBCQVNFIGZyYWN0aW9uRGlnaXRzCisJKi8KKwlyZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZmcmFjZGlnLT52YWwsIGJmZnJhY2RpZy0+dmFsKTsKKwlpZiAocmVzID09IC0yKQorCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCWlmIChyZXMgPT0gMSkKKwkgICAgeG1sU2NoZW1hRGVyaXZlRmFjZXRFcnIocGN0eHQsIGZmcmFjZGlnLCBiZmZyYWNkaWcsCisJICAgIC0xLCAxLCAxKTsKKwlpZiAoKHJlcyAhPSAwKSAmJiAoYmZmcmFjZGlnLT5maXhlZCkpIHsKKwkgICAgRkFDRVRfUkVTVFJfRklYRURfRVJSKGZmcmFjZGlnKQorCX0KKyAgICB9CisgICAgLyoKKyAgICAqIFNDQyAiZnJhY3Rpb25EaWdpdHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRvdGFsRGlnaXRzIgorICAgICovCisgICAgaWYgKCEgZnRvdGRpZykKKwlmdG90ZGlnID0gYmZ0b3RkaWc7CisgICAgaWYgKCEgZmZyYWNkaWcpCisJZmZyYWNkaWcgPSBiZmZyYWNkaWc7CisgICAgaWYgKGZ0b3RkaWcgJiYgZmZyYWNkaWcpIHsKKwlyZXMgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKGZmcmFjZGlnLT52YWwsIGZ0b3RkaWctPnZhbCk7CisJaWYgKHJlcyA9PSAtMikKKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwlpZiAocmVzID09IDEpCisJICAgIHhtbFNjaGVtYURlcml2ZUZhY2V0RXJyKHBjdHh0LCBmZnJhY2RpZywgZnRvdGRpZywKKwkJLTEsIDEsIDApOworICAgIH0KKyAgICAvKgorICAgICogKkVudW1lcmF0aW9ucyogd29uJyBiZSBhZGRlZCBoZXJlLCBzaW5jZSBvbmx5IHRoZSBmaXJzdCBzZXQKKyAgICAqIG9mIGVudW1lcmF0aW9ucyBpbiB0aGUgYW5jZXN0b3Itb3Itc2VsZiBheGlzIGlzIHVzZWQKKyAgICAqIGZvciB2YWxpZGF0aW9uLCBwbHVzIHdlIG5lZWQgdG8gdXNlIHRoZSBiYXNlIHR5cGUgb2YgdGhvc2UKKyAgICAqIGVudW1lcmF0aW9ucyBmb3Igd2hpdGVzcGFjZS4KKyAgICAqCisgICAgKiAqUGF0dGVybnMqOiB3b24ndCBiZSBhZGQgaGVyZSwgc2luY2UgdGhleSBhcmUgT1JlZCBhdAorICAgICogdHlwZSBsZXZlbCBhbmQgQU5EZWQgYXQgYW5jZXN0b3IgbGV2ZWwuIFRoaXMgd2lsbAorICAgICogaGFwcGVkIGR1cmluZyB2YWxpZGF0aW9uIGJ5IHdhbGtpbmcgdGhlIGJhc2UgYXhpcworICAgICogb2YgdGhlIHR5cGUuCisgICAgKi8KKyAgICBmb3IgKGN1ciA9IGJhc2UtPmZhY2V0U2V0OyBjdXIgIT0gTlVMTDsgY3VyID0gY3VyLT5uZXh0KSB7CisJYmZhY2V0ID0gY3VyLT5mYWNldDsKKwkvKgorCSogU3BlY2lhbCBoYW5kbGluZyBvZiBlbnVtZXJhdGlvbnMgYW5kIHBhdHRlcm5zLgorCSogVE9ETzogaG1tLCB0aGV5IHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBzZXQsIHNvIHJlbW92ZSB0aGlzLgorCSovCisJaWYgKChiZmFjZXQtPnR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOKSB8fAorCSAgICAoYmZhY2V0LT50eXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT04pKQorCSAgICBjb250aW51ZTsKKwkvKgorCSogU2VhcmNoIGZvciBhIGR1cGxpY2F0ZSBmYWNldCBpbiB0aGUgY3VycmVudCB0eXBlLgorCSovCisJbGluayA9IHR5cGUtPmZhY2V0U2V0OworCS8qIGVyciA9IDA7ICovCisJLyogZml4ZWRFcnIgPSAwOyAqLworCXdoaWxlIChsaW5rICE9IE5VTEwpIHsKKwkgICAgZmFjZXQgPSBsaW5rLT5mYWNldDsKKwkgICAgaWYgKGZhY2V0LT50eXBlID09IGJmYWNldC0+dHlwZSkgeworCQlzd2l0Y2ggKGZhY2V0LT50eXBlKSB7CisJCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfV0hJVEVTUEFDRToKKwkJCS8qCisJCQkqIFRoZSB3aGl0ZXNwYWNlIG11c3QgYmUgc3Ryb25nZXIuCisJCQkqLworCQkJaWYgKGZhY2V0LT53aGl0ZXNwYWNlIDwgYmZhY2V0LT53aGl0ZXNwYWNlKSB7CisJCQkgICAgRkFDRVRfUkVTVFJfRVJSKGZhY2V0LAorCQkJCSJUaGUgJ3doaXRlc3BhY2UnIHZhbHVlIGhhcyB0byBiZSBlcXVhbCB0byAiCisJCQkJIm9yIHN0cm9uZ2VyIHRoYW4gdGhlICd3aGl0ZXNwYWNlJyB2YWx1ZSBvZiAiCisJCQkJInRoZSBiYXNlIHR5cGUiKQorCQkJfQorCQkJaWYgKChiZmFjZXQtPmZpeGVkKSAmJgorCQkJICAgIChmYWNldC0+d2hpdGVzcGFjZSAhPSBiZmFjZXQtPndoaXRlc3BhY2UpKSB7CisJCQkgICAgRkFDRVRfUkVTVFJfRklYRURfRVJSKGZhY2V0KQorCQkJfQorCQkJYnJlYWs7CisJCSAgICBkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwkJLyogRHVwbGljYXRlIGZvdW5kLiAqLworCQlicmVhazsKKwkgICAgfQorCSAgICBsaW5rID0gbGluay0+bmV4dDsKKwl9CisJLyoKKwkqIElmIG5vIGR1cGxpY2F0ZSB3YXMgZm91bmQ6IGFkZCB0aGUgYmFzZSB0eXBlcydzIGZhY2V0CisJKiB0byB0aGUgc2V0LgorCSovCisJaWYgKGxpbmsgPT0gTlVMTCkgeworCSAgICBsaW5rID0gKHhtbFNjaGVtYUZhY2V0TGlua1B0cikKKwkJeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFGYWNldExpbmspKTsKKwkgICAgaWYgKGxpbmsgPT0gTlVMTCkgeworCQl4bWxTY2hlbWFQRXJyTWVtb3J5KHBjdHh0LAorCQkgICAgImRlcml2aW5nIGZhY2V0cywgY3JlYXRpbmcgYSBmYWNldCBsaW5rIiwgTlVMTCk7CisJCXJldHVybiAoLTEpOworCSAgICB9CisJICAgIGxpbmstPmZhY2V0ID0gY3VyLT5mYWNldDsKKwkgICAgbGluay0+bmV4dCA9IE5VTEw7CisJICAgIGlmIChsYXN0ID09IE5VTEwpCisJCXR5cGUtPmZhY2V0U2V0ID0gbGluazsKKwkgICAgZWxzZQorCQlsYXN0LT5uZXh0ID0gbGluazsKKwkgICAgbGFzdCA9IGxpbms7CisJfQorCisgICAgfQorCisgICAgcmV0dXJuICgwKTsKK2ludGVybmFsX2Vycm9yOgorICAgIFBFUlJPUl9JTlQoInhtbFNjaGVtYURlcml2ZUFuZFZhbGlkYXRlRmFjZXRzIiwKKwkiYW4gZXJyb3Igb2NjdXJlZCIpOworICAgIHJldHVybiAoLTEpOworfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFGaW5pc2hNZW1iZXJUeXBlRGVmaW5pdGlvbnNQcm9wZXJ0eSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCQkgICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICB4bWxTY2hlbWFUeXBlTGlua1B0ciBsaW5rLCBsYXN0TGluaywgcHJldkxpbmssIHN1YkxpbmssIG5ld0xpbms7CisgICAgLyoKKyAgICAqIFRoZSBhY3R1YWwgdmFsdWUgaXMgdGhlbiBmb3JtZWQgYnkgcmVwbGFjaW5nIGFueSB1bmlvbiB0eXBlCisgICAgKiBkZWZpbml0aW9uIGluIHRoZSDvv71leHBsaWNpdCBtZW1iZXJz77+9IHdpdGggdGhlIG1lbWJlcnMgb2YgdGhlaXIKKyAgICAqIHttZW1iZXIgdHlwZSBkZWZpbml0aW9uc30sIGluIG9yZGVyLgorICAgICoKKyAgICAqIFRPRE86IFRoZXJlJ3MgYSBidWcgZW50cnkgYXQKKyAgICAqICJodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3cteG1sLXNjaGVtYS1jb21tZW50cy8yMDA1SnVsU2VwLzAyODcuaHRtbCIKKyAgICAqIHdoaWNoIGluZGljYXRlcyB0aGF0IHdlJ2xsIGtlZXAgdGhlIHVuaW9uIHR5cGVzIHRoZSBmdXR1cmUuCisgICAgKi8KKyAgICBsaW5rID0gdHlwZS0+bWVtYmVyVHlwZXM7CisgICAgd2hpbGUgKGxpbmsgIT0gTlVMTCkgeworCisJaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRChsaW5rLT50eXBlKSkKKwkgICAgeG1sU2NoZW1hVHlwZUZpeHVwKGxpbmstPnR5cGUsIEFDVFhUX0NBU1QgcGN0eHQpOworCisJaWYgKFdYU19JU19VTklPTihsaW5rLT50eXBlKSkgeworCSAgICBzdWJMaW5rID0geG1sU2NoZW1hR2V0VW5pb25TaW1wbGVUeXBlTWVtYmVyVHlwZXMobGluay0+dHlwZSk7CisJICAgIGlmIChzdWJMaW5rICE9IE5VTEwpIHsKKwkJbGluay0+dHlwZSA9IHN1YkxpbmstPnR5cGU7CisJCWlmIChzdWJMaW5rLT5uZXh0ICE9IE5VTEwpIHsKKwkJICAgIGxhc3RMaW5rID0gbGluay0+bmV4dDsKKwkJICAgIHN1YkxpbmsgPSBzdWJMaW5rLT5uZXh0OworCQkgICAgcHJldkxpbmsgPSBsaW5rOworCQkgICAgd2hpbGUgKHN1YkxpbmsgIT0gTlVMTCkgeworCQkJbmV3TGluayA9ICh4bWxTY2hlbWFUeXBlTGlua1B0cikKKwkJCSAgICB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYVR5cGVMaW5rKSk7CisJCQlpZiAobmV3TGluayA9PSBOVUxMKSB7CisJCQkgICAgeG1sU2NoZW1hUEVyck1lbW9yeShwY3R4dCwgImFsbG9jYXRpbmcgYSB0eXBlIGxpbmsiLAorCQkJCU5VTEwpOworCQkJICAgIHJldHVybiAoLTEpOworCQkJfQorCQkJbmV3TGluay0+dHlwZSA9IHN1YkxpbmstPnR5cGU7CisJCQlwcmV2TGluay0+bmV4dCA9IG5ld0xpbms7CisJCQlwcmV2TGluayA9IG5ld0xpbms7CisJCQluZXdMaW5rLT5uZXh0ID0gbGFzdExpbms7CisKKwkJCXN1YkxpbmsgPSBzdWJMaW5rLT5uZXh0OworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisJbGluayA9IGxpbmstPm5leHQ7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFUeXBlRml4dXBPcHRpbUZhY2V0cyh4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgaW50IGhhcyA9IDAsIG5lZWRWYWwgPSAwLCBub3JtVmFsID0gMDsKKworICAgIGhhcwk9ICh0eXBlLT5iYXNlVHlwZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFMpID8gMSA6IDA7CisgICAgaWYgKGhhcykgeworCW5lZWRWYWwgPSAodHlwZS0+YmFzZVR5cGUtPmZsYWdzICYKKwkgICAgWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUpID8gMSA6IDA7CisJbm9ybVZhbCA9ICh0eXBlLT5iYXNlVHlwZS0+ZmxhZ3MgJgorCSAgICBYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRCkgPyAxIDogMDsKKyAgICB9CisgICAgaWYgKHR5cGUtPmZhY2V0cyAhPSBOVUxMKSB7CisJeG1sU2NoZW1hRmFjZXRQdHIgZmFjOworCisJZm9yIChmYWMgPSB0eXBlLT5mYWNldHM7IGZhYyAhPSBOVUxMOyBmYWMgPSBmYWMtPm5leHQpIHsKKwkgICAgc3dpdGNoIChmYWMtPnR5cGUpIHsKKwkJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0U6CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1BBVFRFUk46CisJCSAgICBub3JtVmFsID0gMTsKKwkJICAgIGhhcyA9IDE7CisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOgorCQkgICAgbmVlZFZhbCA9IDE7CisJCSAgICBub3JtVmFsID0gMTsKKwkJICAgIGhhcyA9IDE7CisJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJICAgIGhhcyA9IDE7CisJCSAgICBicmVhazsKKwkgICAgfQorCX0KKyAgICB9CisgICAgaWYgKG5vcm1WYWwpCisJdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9OT1JNVkFMVUVORUVERUQ7CisgICAgaWYgKG5lZWRWYWwpCisJdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUU7CisgICAgaWYgKGhhcykKKwl0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFM7CisKKyAgICBpZiAoaGFzICYmICghIG5lZWRWYWwpICYmIFdYU19JU19BVE9NSUModHlwZSkpIHsKKwl4bWxTY2hlbWFUeXBlUHRyIHByaW0gPSB4bWxTY2hlbWFHZXRQcmltaXRpdmVUeXBlKHR5cGUpOworCS8qCisJKiBPUFRJTUlaRSBWQUwgVE9ETzogU29tZSBmYWNldHMgbmVlZCBhIGNvbXB1dGVkIHZhbHVlLgorCSovCisJaWYgKChwcmltLT5idWlsdEluVHlwZSAhPSBYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFKSAmJgorCSAgICAocHJpbS0+YnVpbHRJblR5cGUgIT0gWE1MX1NDSEVNQVNfU1RSSU5HKSkgeworCSAgICB0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0ZBQ0VUU05FRURWQUxVRTsKKwl9CisgICAgfQorfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFUeXBlRml4dXBXaGl0ZXNwYWNlKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKworCisgICAgLyoKKyAgICAqIEV2YWx1YXRlIHRoZSB3aGl0ZXNwYWNlLWZhY2V0IHZhbHVlLgorICAgICovCisgICAgaWYgKFdYU19JU19MSVNUKHR5cGUpKSB7CisJdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX0NPTExBUFNFOworCXJldHVybiAoMCk7CisgICAgfSBlbHNlIGlmIChXWFNfSVNfVU5JT04odHlwZSkpCisJcmV0dXJuICgwKTsKKworICAgIGlmICh0eXBlLT5mYWNldFNldCAhPSBOVUxMKSB7CisJeG1sU2NoZW1hRmFjZXRMaW5rUHRyIGxpbjsKKworCWZvciAobGluID0gdHlwZS0+ZmFjZXRTZXQ7IGxpbiAhPSBOVUxMOyBsaW4gPSBsaW4tPm5leHQpIHsKKwkgICAgaWYgKGxpbi0+ZmFjZXQtPnR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFKSB7CisJCXN3aXRjaCAobGluLT5mYWNldC0+d2hpdGVzcGFjZSkgeworCQljYXNlIFhNTF9TQ0hFTUFTX0ZBQ0VUX1BSRVNFUlZFOgorCQkgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX1NDSEVNQVNfRkFDRVRfUkVQTEFDRToKKwkJICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFOworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U6CisJCSAgICB0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfQ09MTEFQU0U7CisJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJICAgIHJldHVybiAoLTEpOworCQl9CisJCXJldHVybiAoMCk7CisJICAgIH0KKwl9CisgICAgfQorICAgIC8qCisgICAgKiBGb3IgYWxsIO+/vWF0b21pY++/vSBkYXRhdHlwZXMgb3RoZXIgdGhhbiBzdHJpbmcgKGFuZCB0eXBlcyDvv71kZXJpdmVk77+9CisgICAgKiBieSDvv71yZXN0cmljdGlvbu+/vSBmcm9tIGl0KSB0aGUgdmFsdWUgb2Ygd2hpdGVTcGFjZSBpcyBmaXhlZCB0bworICAgICogY29sbGFwc2UKKyAgICAqLworICAgIHsKKwl4bWxTY2hlbWFUeXBlUHRyIGFuYzsKKworCWZvciAoYW5jID0gdHlwZS0+YmFzZVR5cGU7IGFuYyAhPSBOVUxMICYmCisJCWFuYy0+YnVpbHRJblR5cGUgIT0gWE1MX1NDSEVNQVNfQU5ZVFlQRTsKKwkJYW5jID0gYW5jLT5iYXNlVHlwZSkgeworCisJICAgIGlmIChhbmMtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSB7CisJCWlmIChhbmMtPmJ1aWx0SW5UeXBlID09IFhNTF9TQ0hFTUFTX05PUk1TVFJJTkcpIHsKKwkJICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9SRVBMQUNFOworCisJCX0gZWxzZSBpZiAoKGFuYy0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfU1RSSU5HKSB8fAorCQkgICAgKGFuYy0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSkpIHsKKwkJICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9QUkVTRVJWRTsKKworCQl9IGVsc2UKKwkJICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfV0hJVEVTUEFDRV9DT0xMQVBTRTsKKwkJYnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUZpeHVwU2ltcGxlVHlwZVN0YWdlT25lKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCQkgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICBpZiAodHlwZS0+dHlwZSAhPSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFKQorCXJldHVybigwKTsKKyAgICBpZiAoISBXWFNfSVNfVFlQRV9OT1RfRklYRURfMSh0eXBlKSkKKwlyZXR1cm4oMCk7CisgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9GSVhVUF8xOworCisgICAgaWYgKFdYU19JU19MSVNUKHR5cGUpKSB7CisJLyoKKwkqIENvcnJlc3BvbmRzIHRvIDxzaW1wbGVUeXBlPjxsaXN0Pi4uLgorCSovCisJaWYgKHR5cGUtPnN1YnR5cGVzID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBUaGlzIG9uZSBpcyByZWFsbHkgbmVlZGVkLCBzbyBnZXQgb3V0LgorCSAgICAqLworCSAgICBQRVJST1JfSU5UKCJ4bWxTY2hlbWFGaXh1cFNpbXBsZVR5cGVTdGFnZU9uZSIsCisJCSJsaXN0IHR5cGUgaGFzIG5vIGl0ZW0tdHlwZSBhc3NpZ25lZCIpOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9IGVsc2UgaWYgKFdYU19JU19VTklPTih0eXBlKSkgeworCS8qCisJKiBDb3JyZXNwb25kcyB0byA8c2ltcGxlVHlwZT48dW5pb24+Li4uCisJKi8KKwlpZiAodHlwZS0+bWVtYmVyVHlwZXMgPT0gTlVMTCkgeworCSAgICAvKgorCSAgICAqIFRoaXMgb25lIGlzIHJlYWxseSBuZWVkZWQsIHNvIGdldCBvdXQuCisJICAgICovCisJICAgIFBFUlJPUl9JTlQoInhtbFNjaGVtYUZpeHVwU2ltcGxlVHlwZVN0YWdlT25lIiwKKwkJInVuaW9uIHR5cGUgaGFzIG5vIG1lbWJlci10eXBlcyBhc3NpZ25lZCIpOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9IGVsc2UgeworCS8qCisJKiBDb3JyZXNwb25kcyB0byA8c2ltcGxlVHlwZT48cmVzdHJpY3Rpb24+Li4uCisJKi8KKwlpZiAodHlwZS0+YmFzZVR5cGUgPT0gTlVMTCkgeworCSAgICBQRVJST1JfSU5UKCJ4bWxTY2hlbWFGaXh1cFNpbXBsZVR5cGVTdGFnZU9uZSIsCisJCSJ0eXBlIGhhcyBubyBiYXNlLXR5cGUgYXNzaWduZWQiKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRF8xKHR5cGUtPmJhc2VUeXBlKSkKKwkgICAgaWYgKHhtbFNjaGVtYUZpeHVwU2ltcGxlVHlwZVN0YWdlT25lKHBjdHh0LCB0eXBlLT5iYXNlVHlwZSkgPT0gLTEpCisJCXJldHVybigtMSk7CisJLyoKKwkqIFZhcmlldHkKKwkqIElmIHRoZSA8cmVzdHJpY3Rpb24+IGFsdGVybmF0aXZlIGlzIGNob3NlbiwgdGhlbiB0aGUKKwkqIHt2YXJpZXR5fSBvZiB0aGUge2Jhc2UgdHlwZSBkZWZpbml0aW9ufS4KKwkqLworCWlmIChXWFNfSVNfQVRPTUlDKHR5cGUtPmJhc2VUeXBlKSkKKwkgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQzsKKwllbHNlIGlmIChXWFNfSVNfTElTVCh0eXBlLT5iYXNlVHlwZSkpIHsKKwkgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1Q7CisJICAgIC8qCisJICAgICogSW5oZXJpdCB0aGUgaXRlbVR5cGUuCisJICAgICovCisJICAgIHR5cGUtPnN1YnR5cGVzID0gdHlwZS0+YmFzZVR5cGUtPnN1YnR5cGVzOworCX0gZWxzZSBpZiAoV1hTX0lTX1VOSU9OKHR5cGUtPmJhc2VUeXBlKSkgeworCSAgICB0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX1ZBUklFVFlfVU5JT047CisJICAgIC8qCisJICAgICogTk9URSB0aGF0IHdlIHdvbid0IGFzc2lnbiB0aGUgbWVtYmVyVHlwZXMgb2YgdGhlIGJhc2UsCisJICAgICogc2luY2UgdGhpcyB3aWxsIG1ha2UgdHJvdWJsZSB3aGVuIGZyZWVpbmcgdGhlbTsgd2Ugd2lsbAorCSAgICAqIHVzZSBhIGxvb2t1cCBmdW5jdGlvbiB0byBhY2Nlc3MgdGhlbSBpbnN0ZWFkLgorCSAgICAqLworCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisjaWZkZWYgREVCVUdfVFlQRQorc3RhdGljIHZvaWQKK3htbFNjaGVtYURlYnVnRml4ZWRUeXBlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGN0eHQsCisJCSAgICAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgaWYgKHR5cGUtPm5vZGUgIT0gTlVMTCkgeworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJUeXBlIG9mICVzIDogJXM6JWQgOiIsIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLT5ub2RlLT5kb2MtPlVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEdldExpbmVObyh0eXBlLT5ub2RlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJUeXBlIG9mICVzIDoiLCBuYW1lKTsKKyAgICB9CisgICAgaWYgKChXWFNfSVNfU0lNUExFKHR5cGUpKSB8fCAoV1hTX0lTX0NPTVBMRVgodHlwZSkpKSB7CisJc3dpdGNoICh0eXBlLT5jb250ZW50VHlwZSkgeworCSAgICBjYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEU6CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAic2ltcGxlXG4iKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9DT05URU5UX0VMRU1FTlRTOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImVsZW1lbnRzXG4iKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9DT05URU5UX1VOS05PV046CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAidW5rbm93biAhISFcbiIpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFk6CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiZW1wdHlcbiIpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQ6CisJCWlmICh4bWxTY2hlbWFJc1BhcnRpY2xlRW1wdGlhYmxlKCh4bWxTY2hlbWFQYXJ0aWNsZVB0cikKKwkJICAgIHR5cGUtPnN1YnR5cGVzKSkKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIm1peGVkIGFzIGVtcHRpYWJsZSBwYXJ0aWNsZVxuIik7CisJCWVsc2UKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAibWl4ZWRcbiIpOworCQlicmVhazsKKwkJLyogUmVtb3ZlZCwgc2luY2Ugbm90IHVzZWQuICovCisJCS8qCisJCWNhc2UgWE1MX1NDSEVNQV9DT05URU5UX01JWEVEX09SX0VMRU1FTlRTOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIm1peGVkIG9yIGVsZW1zXG4iKTsKKwkJYnJlYWs7CisJCSovCisJICAgIGNhc2UgWE1MX1NDSEVNQV9DT05URU5UX0JBU0lDOgorCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImJhc2ljXG4iKTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIm5vdCByZWdpc3RlcmVkICEhIVxuIik7CisJCWJyZWFrOworCX0KKyAgICB9Cit9CisjZW5kaWYKKworLyoKKyogMy4xNC42IENvbnN0cmFpbnRzIG9uIFNpbXBsZSBUeXBlIERlZmluaXRpb24gU2NoZW1hIENvbXBvbmVudHMKKyovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFGaXh1cFNpbXBsZVR5cGVTdGFnZVR3byh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCSB4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgaW50IHJlcywgb2xkZXJycyA9IHBjdHh0LT5uYmVycm9yczsKKworICAgIGlmICh0eXBlLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEUpCisJcmV0dXJuKC0xKTsKKworICAgIGlmICghIFdYU19JU19UWVBFX05PVF9GSVhFRCh0eXBlKSkKKwlyZXR1cm4oMCk7CisKKyAgICB0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEOworICAgIHR5cGUtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX1NJTVBMRTsKKworICAgIGlmICh0eXBlLT5iYXNlVHlwZSA9PSBOVUxMKSB7CisJUEVSUk9SX0lOVCgieG1sU2NoZW1hRml4dXBTaW1wbGVUeXBlU3RhZ2VUd28iLAorCSAgICAibWlzc2luZyBiYXNlVHlwZSIpOworCWdvdG8gZXhpdF9mYWlsdXJlOworICAgIH0KKyAgICBpZiAoV1hTX0lTX1RZUEVfTk9UX0ZJWEVEKHR5cGUtPmJhc2VUeXBlKSkKKwl4bWxTY2hlbWFUeXBlRml4dXAodHlwZS0+YmFzZVR5cGUsIEFDVFhUX0NBU1QgcGN0eHQpOworICAgIC8qCisgICAgKiBJZiBhIG1lbWJlciB0eXBlIG9mIGEgdW5pb24gaXMgYSB1bmlvbiBpdHNlbGYsIHdlIG5lZWQgdG8gc3Vic3RpdHV0ZQorICAgICogdGhhdCBtZW1iZXIgdHlwZSBmb3IgaXRzIG1lbWJlciB0eXBlcy4KKyAgICAqIE5PVEUgdGhhdCB0aGlzIG1pZ2h0IGNoYW5nZSBpbiBXWFMgMS4xOyBpLmUuIHdlIHdpbGwga2VlcCB0aGUgdW5pb24KKyAgICAqIHR5cGVzIGluIFdYUyAxLjEuCisgICAgKi8KKyAgICBpZiAoKHR5cGUtPm1lbWJlclR5cGVzICE9IE5VTEwpICYmCisJKHhtbFNjaGVtYUZpbmlzaE1lbWJlclR5cGVEZWZpbml0aW9uc1Byb3BlcnR5KHBjdHh0LCB0eXBlKSA9PSAtMSkpCisJcmV0dXJuKC0xKTsKKyAgICAvKgorICAgICogU1BFQyBzcmMtc2ltcGxlLXR5cGUgMQorICAgICogIlRoZSBjb3JyZXNwb25kaW5nIHNpbXBsZSB0eXBlIGRlZmluaXRpb24sIGlmIGFueSwgbXVzdCBzYXRpc2Z5CisgICAgKiB0aGUgY29uZGl0aW9ucyBzZXQgb3V0IGluIENvbnN0cmFpbnRzIG9uIFNpbXBsZSBUeXBlIERlZmluaXRpb24KKyAgICAqIFNjaGVtYSBDb21wb25lbnRzICjvv70zLjE0LjYpLiIKKyAgICAqLworICAgIC8qCisgICAgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IFNpbXBsZSBUeXBlIERlZmluaXRpb24gUHJvcGVydGllcyBDb3JyZWN0CisgICAgKiAoc3QtcHJvcHMtY29ycmVjdCkKKyAgICAqLworICAgIHJlcyA9IHhtbFNjaGVtYUNoZWNrU1RQcm9wc0NvcnJlY3QocGN0eHQsIHR5cGUpOworICAgIEhGQUlMVVJFIEhFUlJPUgorICAgIC8qCisgICAgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IERlcml2YXRpb24gVmFsaWQgKFJlc3RyaWN0aW9uLCBTaW1wbGUpCisgICAgKiAoY29zLXN0LXJlc3RyaWN0cykKKyAgICAqLworICAgIHJlcyA9IHhtbFNjaGVtYUNoZWNrQ09TU1RSZXN0cmljdHMocGN0eHQsIHR5cGUpOworICAgIEhGQUlMVVJFIEhFUlJPUgorICAgIC8qCisgICAgKiBUT0RPOiBSZW1vdmVkIHRoZSBlcnJvciByZXBvcnQsIHNpbmNlIGl0IGdvdCBhbm5veWluZyB0byBnZXQgYW4KKyAgICAqIGV4dHJhIGVycm9yIHJlcG9ydCwgaWYgYW55dGhpbmcgZmFpbGVkIHVudGlsIG5vdy4KKyAgICAqIEVuYWJsZSB0aGlzIGlmIG5lZWRlZC4KKyAgICAqCisgICAgKiB4bWxTY2hlbWFQRXJyKGN0eHQsIHR5cGUtPm5vZGUsCisgICAgKiAgICBYTUxfU0NIRU1BUF9TUkNfU0lNUExFX1RZUEVfMSwKKyAgICAqICAgICJTaW1wbGUgdHlwZSAnJXMnIGRvZXMgbm90IHNhdGlzZnkgdGhlIGNvbnN0cmFpbnRzICIKKyAgICAqICAgICJvbiBzaW1wbGUgdHlwZSBkZWZpbml0aW9ucy5cbiIsCisgICAgKiAgICB0eXBlLT5uYW1lLCBOVUxMKTsKKyAgICAqLworICAgIC8qCisgICAgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IFNpbXBsZSBUeXBlIFJlc3RyaWN0aW9uIChGYWNldHMpCisgICAgKiAoc3QtcmVzdHJpY3QtZmFjZXRzKQorICAgICovCisgICAgcmVzID0geG1sU2NoZW1hQ2hlY2tGYWNldFZhbHVlcyh0eXBlLCBwY3R4dCk7CisgICAgSEZBSUxVUkUgSEVSUk9SCisgICAgaWYgKCh0eXBlLT5mYWNldFNldCAhPSBOVUxMKSB8fAorCSh0eXBlLT5iYXNlVHlwZS0+ZmFjZXRTZXQgIT0gTlVMTCkpIHsKKwlyZXMgPSB4bWxTY2hlbWFEZXJpdmVBbmRWYWxpZGF0ZUZhY2V0cyhwY3R4dCwgdHlwZSk7CisJSEZBSUxVUkUgSEVSUk9SCisgICAgfQorICAgIC8qCisgICAgKiBXaGl0ZXNwYWNlIHZhbHVlLgorICAgICovCisgICAgcmVzID0geG1sU2NoZW1hVHlwZUZpeHVwV2hpdGVzcGFjZSh0eXBlKTsKKyAgICBIRkFJTFVSRSBIRVJST1IKKyAgICB4bWxTY2hlbWFUeXBlRml4dXBPcHRpbUZhY2V0cyh0eXBlKTsKKworZXhpdF9lcnJvcjoKKyNpZmRlZiBERUJVR19UWVBFCisgICAgeG1sU2NoZW1hRGVidWdGaXhlZFR5cGUocGN0eHQsIHR5cGUpOworI2VuZGlmCisgICAgaWYgKG9sZGVycnMgIT0gcGN0eHQtPm5iZXJyb3JzKQorCXJldHVybihwY3R4dC0+ZXJyKTsKKyAgICByZXR1cm4oMCk7CisKK2V4aXRfZmFpbHVyZToKKyNpZmRlZiBERUJVR19UWVBFCisgICAgeG1sU2NoZW1hRGVidWdGaXhlZFR5cGUocGN0eHQsIHR5cGUpOworI2VuZGlmCisgICAgcmV0dXJuKC0xKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hRml4dXBDb21wbGV4VHlwZSh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgaW50IHJlcyA9IDAsIG9sZGVycnMgPSBwY3R4dC0+bmJlcnJvcnM7CisgICAgeG1sU2NoZW1hVHlwZVB0ciBiYXNlVHlwZSA9IHR5cGUtPmJhc2VUeXBlOworCisgICAgaWYgKCEgV1hTX0lTX1RZUEVfTk9UX0ZJWEVEKHR5cGUpKQorCXJldHVybigwKTsKKyAgICB0eXBlLT5mbGFncyB8PSBYTUxfU0NIRU1BU19UWVBFX0lOVEVSTkFMX1JFU09MVkVEOworICAgIGlmIChiYXNlVHlwZSA9PSBOVUxMKSB7CisJUEVSUk9SX0lOVCgieG1sU2NoZW1hRml4dXBDb21wbGV4VHlwZSIsCisJICAgICJtaXNzaW5nIGJhc2VUeXBlIik7CisJZ290byBleGl0X2ZhaWx1cmU7CisgICAgfQorICAgIC8qCisgICAgKiBGaXh1cCB0aGUgYmFzZSB0eXBlLgorICAgICovCisgICAgaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRChiYXNlVHlwZSkpCisJeG1sU2NoZW1hVHlwZUZpeHVwKGJhc2VUeXBlLCBBQ1RYVF9DQVNUIHBjdHh0KTsKKyAgICBpZiAoYmFzZVR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEKSB7CisJLyoKKwkqIFNraXAgZml4dXAgaWYgdGhlIGJhc2UgdHlwZSBpcyBpbnZhbGlkLgorCSogVE9ETzogR2VuZXJhdGUgYSB3YXJuaW5nIQorCSovCisJcmV0dXJuKDApOworICAgIH0KKyAgICAvKgorICAgICogVGhpcyBiYXNpY2FsbHkgY2hlY2tzIGlmIHRoZSBiYXNlIHR5cGUgY2FuIGJlIGRlcml2ZWQuCisgICAgKi8KKyAgICByZXMgPSB4bWxTY2hlbWFDaGVja1NSQ0NUKHBjdHh0LCB0eXBlKTsKKyAgICBIRkFJTFVSRSBIRVJST1IKKyAgICAvKgorICAgICogRml4dXAgdGhlIGNvbnRlbnQgdHlwZS4KKyAgICAqLworICAgIGlmICh0eXBlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfU0lNUExFKSB7CisJLyoKKwkqIENvcnJlc3BvbmRzIHRvIDxjb21wbGV4VHlwZT48c2ltcGxlQ29udGVudD4uLi4KKwkqLworCWlmICgoV1hTX0lTX0NPTVBMRVgoYmFzZVR5cGUpKSAmJgorCSAgICAoYmFzZVR5cGUtPmNvbnRlbnRUeXBlRGVmICE9IE5VTEwpICYmCisJICAgIChXWFNfSVNfUkVTVFJJQ1RJT04odHlwZSkpKSB7CisJICAgIHhtbFNjaGVtYVR5cGVQdHIgY29udGVudEJhc2UsIGNvbnRlbnQ7CisjaWZkZWYgRU5BQkxFX05BTUVEX0xPQ0FMUworCSAgICBjaGFyIGJ1ZlszMF07CisJICAgIGNvbnN0IHhtbENoYXIgKnRtcG5hbWU7CisjZW5kaWYKKwkgICAgLyoKKwkgICAgKiBTUEVDICgxKSBJZiA8cmVzdHJpY3Rpb24+ICsgYmFzZSB0eXBlIGlzIDxjb21wbGV4VHlwZT4sCisJICAgICogIndob3NlIG93biB7Y29udGVudCB0eXBlfSBpcyBhIHNpbXBsZSB0eXBlLi4uIgorCSAgICAqLworCSAgICBpZiAodHlwZS0+Y29udGVudFR5cGVEZWYgIT0gTlVMTCkgeworCQkvKgorCQkqIFNQRUMgKDEuMSkgInRoZSBzaW1wbGUgdHlwZSBkZWZpbml0aW9uIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisJCSogPHNpbXBsZVR5cGU+IGFtb25nIHRoZSBbY2hpbGRyZW5dIG9mIDxyZXN0cmljdGlvbj4gaWYgdGhlcmUKKwkJKiBpcyBvbmU7IgorCQkqIE5vdGUgdGhhdCB0aGlzICI8c2ltcGxlVHlwZT4gYW1vbmcgdGhlIFtjaGlsZHJlbl0iIHdhcyBwdXQKKwkJKiBpbnRvIC0+Y29udGVudFR5cGVEZWYgZHVyaW5nIHBhcnNpbmcuCisJCSovCisJCWNvbnRlbnRCYXNlID0gdHlwZS0+Y29udGVudFR5cGVEZWY7CisJCXR5cGUtPmNvbnRlbnRUeXBlRGVmID0gTlVMTDsKKwkgICAgfSBlbHNlIHsKKwkJLyoKKwkJKiAoMS4yKSAiLi4ub3RoZXJ3aXNlICg8cmVzdHJpY3Rpb24+IGhhcyBubyA8c2ltcGxlVHlwZT4KKwkJKiBhbW9uZyBpdHMgW2NoaWxkcmVuXSksIHRoZSBzaW1wbGUgdHlwZSBkZWZpbml0aW9uIHdoaWNoCisJCSogaXMgdGhlIHtjb250ZW50IHR5cGV9IG9mIHRoZSAuLi4gYmFzZSB0eXBlLiIKKwkJKi8KKwkJY29udGVudEJhc2UgPSBiYXNlVHlwZS0+Y29udGVudFR5cGVEZWY7CisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBTUEVDCisJICAgICogIi4uLiBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24gd2hpY2ggcmVzdHJpY3RzIHRoZSBzaW1wbGUKKwkgICAgKiB0eXBlIGRlZmluaXRpb24gaWRlbnRpZmllZCBpbiBjbGF1c2UgMS4xIG9yIGNsYXVzZSAxLjIKKwkgICAgKiB3aXRoIGEgc2V0IG9mIGZhY2V0IGNvbXBvbmVudHMiCisJICAgICoKKwkgICAgKiBDcmVhdGUgdGhlIGFub255bW91cyBzaW1wbGUgdHlwZSwgd2hpY2ggd2lsbCBiZSB0aGUgY29udGVudAorCSAgICAqIHR5cGUgb2YgdGhlIGNvbXBsZXggdHlwZS4KKwkgICAgKi8KKyNpZmRlZiBFTkFCTEVfTkFNRURfTE9DQUxTCisJICAgIHNucHJpbnRmKGJ1ZiwgMjksICIjc2NTVCVkIiwgKysocGN0eHQtPmNvdW50ZXIpKTsKKwkgICAgdG1wbmFtZSA9IHhtbERpY3RMb29rdXAocGN0eHQtPmRpY3QsIEJBRF9DQVNUIGJ1ZiwgLTEpOworCSAgICBjb250ZW50ID0geG1sU2NoZW1hQWRkVHlwZShwY3R4dCwgcGN0eHQtPnNjaGVtYSwKKwkJWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSwgdG1wbmFtZSwgdHlwZS0+dGFyZ2V0TmFtZXNwYWNlLAorCQl0eXBlLT5ub2RlLCAwKTsKKyNlbHNlCisJICAgIGNvbnRlbnQgPSB4bWxTY2hlbWFBZGRUeXBlKHBjdHh0LCBwY3R4dC0+c2NoZW1hLAorCQlYTUxfU0NIRU1BX1RZUEVfU0lNUExFLCBOVUxMLCB0eXBlLT50YXJnZXROYW1lc3BhY2UsCisJCXR5cGUtPm5vZGUsIDApOworI2VuZGlmCisJICAgIGlmIChjb250ZW50ID09IE5VTEwpCisJCWdvdG8gZXhpdF9mYWlsdXJlOworCSAgICAvKgorCSAgICAqIFdlIHdpbGwgdXNlIHRoZSBzYW1lIG5vZGUgYXMgZm9yIHRoZSA8Y29tcGxleFR5cGU+CisJICAgICogdG8gaGF2ZSBpdCBzb21laG93IGFuY2hvcmVkIGluIHRoZSBzY2hlbWEgZG9jLgorCSAgICAqLworCSAgICBjb250ZW50LT50eXBlID0gWE1MX1NDSEVNQV9UWVBFX1NJTVBMRTsKKwkgICAgY29udGVudC0+YmFzZVR5cGUgPSBjb250ZW50QmFzZTsKKwkgICAgLyoKKwkgICAgKiBNb3ZlIHRoZSBmYWNldHMsIHByZXZpb3VzbHkgYW5jaG9yZWQgb24gdGhlCisJICAgICogY29tcGxleFR5cGUgZHVyaW5nIHBhcnNpbmcuCisJICAgICovCisJICAgIGNvbnRlbnQtPmZhY2V0cyA9IHR5cGUtPmZhY2V0czsKKwkgICAgdHlwZS0+ZmFjZXRzID0gTlVMTDsKKwkgICAgY29udGVudC0+ZmFjZXRTZXQgPSB0eXBlLT5mYWNldFNldDsKKwkgICAgdHlwZS0+ZmFjZXRTZXQgPSBOVUxMOworCisJICAgIHR5cGUtPmNvbnRlbnRUeXBlRGVmID0gY29udGVudDsKKwkgICAgaWYgKFdYU19JU19UWVBFX05PVF9GSVhFRChjb250ZW50QmFzZSkpCisJCXhtbFNjaGVtYVR5cGVGaXh1cChjb250ZW50QmFzZSwgQUNUWFRfQ0FTVCBwY3R4dCk7CisJICAgIC8qCisJICAgICogRml4dXAgdGhlIG5ld2x5IGNyZWF0ZWQgdHlwZS4gV2UgZG9uJ3QgbmVlZCB0byBjaGVjaworCSAgICAqIGZvciBjaXJjdWxhcml0eSBoZXJlLgorCSAgICAqLworCSAgICByZXMgPSB4bWxTY2hlbWFGaXh1cFNpbXBsZVR5cGVTdGFnZU9uZShwY3R4dCwgY29udGVudCk7CisJICAgIEhGQUlMVVJFIEhFUlJPUgorCSAgICByZXMgPSB4bWxTY2hlbWFGaXh1cFNpbXBsZVR5cGVTdGFnZVR3byhwY3R4dCwgY29udGVudCk7CisJICAgIEhGQUlMVVJFIEhFUlJPUgorCisJfSBlbHNlIGlmICgoV1hTX0lTX0NPTVBMRVgoYmFzZVR5cGUpKSAmJgorCSAgICAoYmFzZVR5cGUtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRCkgJiYKKwkgICAgKFdYU19JU19SRVNUUklDVElPTih0eXBlKSkpIHsKKwkgICAgLyoKKwkgICAgKiBTUEVDICgyKSBJZiA8cmVzdHJpY3Rpb24+ICsgYmFzZSBpcyBhIG1peGVkIDxjb21wbGV4VHlwZT4gd2l0aAorCSAgICAqIGFuIGVtcHRpYWJsZSBwYXJ0aWNsZSwgdGhlbiBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24gd2hpY2gKKwkgICAgKiByZXN0cmljdHMgdGhlIDxyZXN0cmljdGlvbj4ncyA8c2ltcGxlVHlwZT4gY2hpbGQuCisJICAgICovCisJICAgIGlmICgodHlwZS0+Y29udGVudFR5cGVEZWYgPT0gTlVMTCkgfHwKKwkJKHR5cGUtPmNvbnRlbnRUeXBlRGVmLT5iYXNlVHlwZSA9PSBOVUxMKSkgeworCQkvKgorCQkqIFRPRE86IENoZWNrIGlmIHRoaXMgZXZlciBoYXBwZW5zLgorCQkqLworCQl4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCQkgICAgWE1MX1NDSEVNQVBfSU5URVJOQUwsCisJCSAgICBXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkgICAgIkludGVybmFsIGVycm9yOiB4bWxTY2hlbWFUeXBlRml4dXAsICIKKwkJICAgICJjb21wbGV4IHR5cGUgJyVzJzogdGhlIDxzaW1wbGVDb250ZW50PjxyZXN0cmljdGlvbj4gIgorCQkgICAgImlzIG1pc3NpbmcgYSA8c2ltcGxlVHlwZT4gY2hpbGQsIGJ1dCB3YXMgbm90IGNhdGNoZWQgIgorCQkgICAgImJ5IHhtbFNjaGVtYUNoZWNrU1JDQ1QoKSIsIHR5cGUtPm5hbWUpOworCQlnb3RvIGV4aXRfZmFpbHVyZTsKKwkgICAgfQorCX0gZWxzZSBpZiAoKFdYU19JU19DT01QTEVYKGJhc2VUeXBlKSkgJiYgV1hTX0lTX0VYVEVOU0lPTih0eXBlKSkgeworCSAgICAvKgorCSAgICAqIFNQRUMgKDMpIElmIDxleHRlbnNpb24+ICsgYmFzZSBpcyA8Y29tcGxleFR5cGU+IHdpdGgKKwkgICAgKiA8c2ltcGxlVHlwZT4gY29udGVudCwgIi4uLnRoZW4gdGhlIHtjb250ZW50IHR5cGV9IG9mIHRoYXQKKwkgICAgKiBjb21wbGV4IHR5cGUgZGVmaW5pdGlvbiIKKwkgICAgKi8KKwkgICAgaWYgKGJhc2VUeXBlLT5jb250ZW50VHlwZURlZiA9PSBOVUxMKSB7CisJCS8qCisJCSogVE9ETzogQ2hlY2sgaWYgdGhpcyBldmVyIGhhcHBlbnMuIHhtbFNjaGVtYUNoZWNrU1JDQ1QKKwkJKiBzaG91bGQgaGF2ZSBjYXRjaGVkIHRoaXMgYWxyZWFkeS4KKwkJKi8KKwkJeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX0lOVEVSTkFMLAorCQkgICAgV1hTX0JBU0lDX0NBU1QgdHlwZSwgTlVMTCwKKwkJICAgICJJbnRlcm5hbCBlcnJvcjogeG1sU2NoZW1hVHlwZUZpeHVwLCAiCisJCSAgICAiY29tcGxleCB0eXBlICclcyc6IHRoZSA8ZXh0ZW5zaW9uPmVkIGJhc2UgdHlwZSBpcyAiCisJCSAgICAiYSBjb21wbGV4IHR5cGUgd2l0aCBubyBzaW1wbGUgY29udGVudCB0eXBlIiwKKwkJICAgIHR5cGUtPm5hbWUpOworCQlnb3RvIGV4aXRfZmFpbHVyZTsKKwkgICAgfQorCSAgICB0eXBlLT5jb250ZW50VHlwZURlZiA9IGJhc2VUeXBlLT5jb250ZW50VHlwZURlZjsKKwl9IGVsc2UgaWYgKChXWFNfSVNfU0lNUExFKGJhc2VUeXBlKSkgJiYgV1hTX0lTX0VYVEVOU0lPTih0eXBlKSkgeworCSAgICAvKgorCSAgICAqIFNQRUMgKDQpIDxleHRlbnNpb24+ICsgYmFzZSBpcyA8c2ltcGxlVHlwZT4KKwkgICAgKiAiLi4uIHRoZW4gdGhhdCBzaW1wbGUgdHlwZSBkZWZpbml0aW9uIgorCSAgICAqLworCSAgICB0eXBlLT5jb250ZW50VHlwZURlZiA9IGJhc2VUeXBlOworCX0gZWxzZSB7CisJICAgIC8qCisJICAgICogVE9ETzogQ2hlY2sgaWYgdGhpcyBldmVyIGhhcHBlbnMuCisJICAgICovCisJICAgIHhtbFNjaGVtYVBDdXN0b21FcnIocGN0eHQsCisJCVhNTF9TQ0hFTUFQX0lOVEVSTkFMLAorCQlXWFNfQkFTSUNfQ0FTVCB0eXBlLCBOVUxMLAorCQkiSW50ZXJuYWwgZXJyb3I6IHhtbFNjaGVtYVR5cGVGaXh1cCwgIgorCQkiY29tcGxleCB0eXBlICclcycgd2l0aCA8c2ltcGxlQ29udGVudD46IHVuaGFuZGxlZCAiCisJCSJkZXJpdmF0aW9uIGNhc2UiLCB0eXBlLT5uYW1lKTsKKwkgICAgZ290byBleGl0X2ZhaWx1cmU7CisJfQorICAgIH0gZWxzZSB7CisJaW50IGR1bW15U2VxdWVuY2UgPSAwOworCXhtbFNjaGVtYVBhcnRpY2xlUHRyIHBhcnRpY2xlID0KKwkgICAgKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSB0eXBlLT5zdWJ0eXBlczsKKwkvKgorCSogQ29ycmVzcG9uZHMgdG8gPGNvbXBsZXhUeXBlPjxjb21wbGV4Q29udGVudD4uLi4KKwkqCisJKiBOT1RFIHRoYXQgdGhlIGVmZmVjdGl2ZSBtaXhlZCB3YXMgYWxyZWFkeSBzZXQgZHVyaW5nIHBhcnNpbmcgb2YKKwkqIDxjb21wbGV4VHlwZT4gYW5kIDxjb21wbGV4Q29udGVudD47IGl0cyBmbGFnIHZhbHVlIGlzCisJKiBYTUxfU0NIRU1BU19UWVBFX01JWEVELgorCSoKKwkqIENvbXB1dGUgdGhlICJlZmZlY3RpdmUgY29udGVudCI6CisJKiAoMi4xLjEpICsgKDIuMS4yKSArICgyLjEuMykKKwkqLworCWlmICgocGFydGljbGUgPT0gTlVMTCkgfHwKKwkgICAgKChwYXJ0aWNsZS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfUEFSVElDTEUpICYmCisJICAgICgocGFydGljbGUtPmNoaWxkcmVuLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BTEwpIHx8CisJICAgIChwYXJ0aWNsZS0+Y2hpbGRyZW4tPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFKSB8fAorCSAgICAoKHBhcnRpY2xlLT5jaGlsZHJlbi0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFKSAmJgorCSAgICAocGFydGljbGUtPm1pbk9jY3VycyA9PSAwKSkpICYmCisJICAgICggKCh4bWxTY2hlbWFUcmVlSXRlbVB0cikgcGFydGljbGUtPmNoaWxkcmVuKS0+Y2hpbGRyZW4gPT0gTlVMTCkpKSB7CisJICAgIGlmICh0eXBlLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQpIHsKKwkJLyoKKwkJKiBTUEVDICgyLjEuNCkgIklmIHRoZSDvv71lZmZlY3RpdmUgbWl4ZWTvv70gaXMgdHJ1ZSwgdGhlbgorCQkqIGEgcGFydGljbGUgd2hvc2UgcHJvcGVydGllcyBhcmUgYXMgZm9sbG93czouLi4iCisJCSoKKwkJKiBFbXB0eSBzZXF1ZW5jZSBtb2RlbCBncm91cCB3aXRoCisJCSogbWluT2NjdXJzL21heE9jY3VycyA9IDEgKGkuZS4gYSAicGFydGljbGUgZW1wdGlhYmxlIikuCisJCSogTk9URSB0aGF0IHdlIHNpbGwgYXNzaWduIGl0IHRoZSA8Y29tcGxleFR5cGU+IG5vZGUgdG8KKwkJKiBzb21laG93IGFuY2hvciBpdCBpbiB0aGUgZG9jLgorCQkqLworCQlpZiAoKHBhcnRpY2xlID09IE5VTEwpIHx8CisJCSAgICAocGFydGljbGUtPmNoaWxkcmVuLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRSkpIHsKKwkJICAgIC8qCisJCSAgICAqIENyZWF0ZSB0aGUgcGFydGljbGUuCisJCSAgICAqLworCQkgICAgcGFydGljbGUgPSB4bWxTY2hlbWFBZGRQYXJ0aWNsZShwY3R4dCwKKwkJCXR5cGUtPm5vZGUsIDEsIDEpOworCQkgICAgaWYgKHBhcnRpY2xlID09IE5VTEwpCisJCQlnb3RvIGV4aXRfZmFpbHVyZTsKKwkJICAgIC8qCisJCSAgICAqIENyZWF0ZSB0aGUgbW9kZWwgZ3JvdXAuCisJCSAgICAqLyAvKiBVUkdFTlQgVE9ETzogYXZvaWQgYWRkaW5nIHRvIHBlbmRpbmcgaXRlbXMuICovCisJCSAgICBwYXJ0aWNsZS0+Y2hpbGRyZW4gPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIpCisJCQl4bWxTY2hlbWFBZGRNb2RlbEdyb3VwKHBjdHh0LCBwY3R4dC0+c2NoZW1hLAorCQkJWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFLCB0eXBlLT5ub2RlKTsKKwkJICAgIGlmIChwYXJ0aWNsZS0+Y2hpbGRyZW4gPT0gTlVMTCkKKwkJCWdvdG8gZXhpdF9mYWlsdXJlOworCisJCSAgICB0eXBlLT5zdWJ0eXBlcyA9ICh4bWxTY2hlbWFUeXBlUHRyKSBwYXJ0aWNsZTsKKwkJfQorCQlkdW1teVNlcXVlbmNlID0gMTsKKwkJdHlwZS0+Y29udGVudFR5cGUgPSBYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFM7CisJICAgIH0gZWxzZSB7CisJCS8qCisJCSogU1BFQyAoMi4xLjUpICJvdGhlcndpc2UgZW1wdHkiCisJCSovCisJCXR5cGUtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiBTUEVDICgyLjIpICJvdGhlcndpc2UgdGhlIHBhcnRpY2xlIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisJICAgICogPGFsbD4sIDxjaG9pY2U+LCA8Z3JvdXA+IG9yIDxzZXF1ZW5jZT4gYW1vbmcgdGhlCisJICAgICogW2NoaWxkcmVuXS4iCisJICAgICovCisJICAgIHR5cGUtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX0VMRU1FTlRTOworCX0KKwkvKgorCSogQ29tcHV0ZSB0aGUgImNvbnRlbnQgdHlwZSIuCisJKi8KKwlpZiAoV1hTX0lTX1JFU1RSSUNUSU9OKHR5cGUpKSB7CisJICAgIC8qCisJICAgICogU1BFQyAoMy4xKSAiSWYgPHJlc3RyaWN0aW9uPi4uLiIKKwkgICAgKiAoMy4xLjEpICsgKDMuMS4yKSAqLworCSAgICBpZiAodHlwZS0+Y29udGVudFR5cGUgIT0gWE1MX1NDSEVNQV9DT05URU5UX0VNUFRZKSB7CisJCWlmICh0eXBlLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfTUlYRUQpCisJCSAgICB0eXBlLT5jb250ZW50VHlwZSA9IFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRDsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIC8qCisJICAgICogU1BFQyAoMy4yKSAiSWYgPGV4dGVuc2lvbj4uLi4iCisJICAgICovCisJICAgIGlmICh0eXBlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkpIHsKKwkJLyoKKwkJKiBTUEVDICgzLjIuMSkKKwkJKiAiSWYgdGhlIO+/vWVmZmVjdGl2ZSBjb250ZW5077+9IGlzIGVtcHR5LCB0aGVuIHRoZQorCQkqICB7Y29udGVudCB0eXBlfSBvZiB0aGUgWy4uLl0gYmFzZSAuLi4iCisJCSovCisJCXR5cGUtPmNvbnRlbnRUeXBlID0gYmFzZVR5cGUtPmNvbnRlbnRUeXBlOworCQl0eXBlLT5zdWJ0eXBlcyA9IGJhc2VUeXBlLT5zdWJ0eXBlczsKKwkJLyoKKwkJKiBGaXhlcyBidWcgIzM0NzMxNjoKKwkJKiBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlIGJhc2UgdHlwZSBoYXMgYSBzaW1wbGUKKwkJKiB0eXBlIGRlZmluaXRpb24gYXMgY29udGVudC4KKwkJKi8KKwkJdHlwZS0+Y29udGVudFR5cGVEZWYgPSBiYXNlVHlwZS0+Y29udGVudFR5cGVEZWY7CisJCS8qCisJCSogTk9URSB0aGF0IHRoZSBlZmZlY3RpdmUgbWl4ZWQgaXMgaWdub3JlZCBoZXJlLgorCQkqLworCSAgICB9IGVsc2UgaWYgKGJhc2VUeXBlLT5jb250ZW50VHlwZSA9PSBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkpIHsKKwkJLyoKKwkJKiBTUEVDICgzLjIuMikKKwkJKi8KKwkJaWYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9NSVhFRCkKKwkJICAgIHR5cGUtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX01JWEVEOworCSAgICB9IGVsc2UgeworCQkvKgorCQkqIFNQRUMgKDMuMi4zKQorCQkqLworCQlpZiAodHlwZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX01JWEVEKQorCQkgICAgdHlwZS0+Y29udGVudFR5cGUgPSBYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQ7CisJCSAgICAvKgorCQkgICAgKiAiQSBtb2RlbCBncm91cCB3aG9zZSB7Y29tcG9zaXRvcn0gaXMgc2VxdWVuY2UgYW5kIHdob3NlCisJCSAgICAqIHtwYXJ0aWNsZXN9IGFyZS4uLiIKKwkJICAgICovCisJCWlmICgoV1hTX1RZUEVfUEFSVElDTEUodHlwZSkgIT0gTlVMTCkgJiYKKwkJICAgIChXWFNfVFlQRV9QQVJUSUNMRV9URVJNKHR5cGUpICE9IE5VTEwpICYmCisJCSAgICAoKFdYU19UWVBFX1BBUlRJQ0xFX1RFUk0odHlwZSkpLT50eXBlID09CisJCQlYTUxfU0NIRU1BX1RZUEVfQUxMKSkKKwkJeworCQkgICAgLyoKKwkJICAgICogU1BFQyBjb3MtYWxsLWxpbWl0ZWQgKDEpCisJCSAgICAqLworCQkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCQkvKiBUT0RPOiBlcnJvciBjb2RlICovCisJCQlYTUxfU0NIRU1BUF9DT1NfQUxMX0xJTUlURUQsCisJCQlXWFNfSVRFTV9OT0RFKHR5cGUpLCBOVUxMLAorCQkJIlRoZSB0eXBlIGhhcyBhbiAnYWxsJyBtb2RlbCBncm91cCBpbiBpdHMgIgorCQkJIntjb250ZW50IHR5cGV9IGFuZCB0aHVzIGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gIgorCQkJImEgbm9uLWVtcHR5IHR5cGUsIHNpbmNlIHRoaXMgd291bGQgcHJvZHVjZSBhICIKKwkJCSInc2VxdWVuY2UnIG1vZGVsIGdyb3VwIGNvbnRhaW5pbmcgdGhlICdhbGwnICIKKwkJCSJtb2RlbCBncm91cDsgJ2FsbCcgbW9kZWwgZ3JvdXBzIGFyZSBub3QgIgorCQkJImFsbG93ZWQgdG8gYXBwZWFyIGluc2lkZSBvdGhlciBtb2RlbCBncm91cHMiLAorCQkJTlVMTCwgTlVMTCk7CisKKwkJfSBlbHNlIGlmICgoV1hTX1RZUEVfUEFSVElDTEUoYmFzZVR5cGUpICE9IE5VTEwpICYmCisJCSAgICAoV1hTX1RZUEVfUEFSVElDTEVfVEVSTShiYXNlVHlwZSkgIT0gTlVMTCkgJiYKKwkJICAgICgoV1hTX1RZUEVfUEFSVElDTEVfVEVSTShiYXNlVHlwZSkpLT50eXBlID09CisJCQlYTUxfU0NIRU1BX1RZUEVfQUxMKSkKKwkJeworCQkgICAgLyoKKwkJICAgICogU1BFQyBjb3MtYWxsLWxpbWl0ZWQgKDEpCisJCSAgICAqLworCQkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCQkvKiBUT0RPOiBlcnJvciBjb2RlICovCisJCQlYTUxfU0NIRU1BUF9DT1NfQUxMX0xJTUlURUQsCisJCQlXWFNfSVRFTV9OT0RFKHR5cGUpLCBOVUxMLAorCQkJIkEgdHlwZSBjYW5ub3QgYmUgZGVyaXZlZCBieSBleHRlbnNpb24gZnJvbSBhIHR5cGUgIgorCQkJIndoaWNoIGhhcyBhbiAnYWxsJyBtb2RlbCBncm91cCBpbiBpdHMgIgorCQkJIntjb250ZW50IHR5cGV9LCBzaW5jZSB0aGlzIHdvdWxkIHByb2R1Y2UgYSAiCisJCQkiJ3NlcXVlbmNlJyBtb2RlbCBncm91cCBjb250YWluaW5nIHRoZSAnYWxsJyAiCisJCQkibW9kZWwgZ3JvdXA7ICdhbGwnIG1vZGVsIGdyb3VwcyBhcmUgbm90ICIKKwkJCSJhbGxvd2VkIHRvIGFwcGVhciBpbnNpZGUgb3RoZXIgbW9kZWwgZ3JvdXBzIiwKKwkJCU5VTEwsIE5VTEwpOworCisJCX0gZWxzZSBpZiAoISBkdW1teVNlcXVlbmNlKSB7CisJCSAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBlZmZlY3RpdmVDb250ZW50ID0KKwkJCSh4bWxTY2hlbWFUcmVlSXRlbVB0cikgdHlwZS0+c3VidHlwZXM7CisJCSAgICAvKgorCQkgICAgKiBDcmVhdGUgdGhlIHBhcnRpY2xlLgorCQkgICAgKi8KKwkJICAgIHBhcnRpY2xlID0geG1sU2NoZW1hQWRkUGFydGljbGUocGN0eHQsCisJCQl0eXBlLT5ub2RlLCAxLCAxKTsKKwkJICAgIGlmIChwYXJ0aWNsZSA9PSBOVUxMKQorCQkJZ290byBleGl0X2ZhaWx1cmU7CisJCSAgICAvKgorCQkgICAgKiBDcmVhdGUgdGhlICJzZXF1ZW5jZSIgbW9kZWwgZ3JvdXAuCisJCSAgICAqLworCQkgICAgcGFydGljbGUtPmNoaWxkcmVuID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyKQorCQkJeG1sU2NoZW1hQWRkTW9kZWxHcm91cChwY3R4dCwgcGN0eHQtPnNjaGVtYSwKKwkJCVhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRSwgdHlwZS0+bm9kZSk7CisJCSAgICBpZiAocGFydGljbGUtPmNoaWxkcmVuID09IE5VTEwpCisJCQlnb3RvIGV4aXRfZmFpbHVyZTsKKwkJICAgIFdYU19UWVBFX0NPTlRFTlRUWVBFKHR5cGUpID0gKHhtbFNjaGVtYVR5cGVQdHIpIHBhcnRpY2xlOworCQkgICAgLyoKKwkJICAgICogU1BFQyAidGhlIHBhcnRpY2xlIG9mIHRoZSB7Y29udGVudCB0eXBlfSBvZgorCQkgICAgKiB0aGUgLi4uIGJhc2UgLi4uIgorCQkgICAgKiBDcmVhdGUgYSBkdXBsaWNhdGUgb2YgdGhlIGJhc2UgdHlwZSdzIHBhcnRpY2xlCisJCSAgICAqIGFuZCBhc3NpZ24gaXRzICJ0ZXJtIiB0byBpdC4KKwkJICAgICovCisJCSAgICBwYXJ0aWNsZS0+Y2hpbGRyZW4tPmNoaWxkcmVuID0KKwkJCSh4bWxTY2hlbWFUcmVlSXRlbVB0cikgeG1sU2NoZW1hQWRkUGFydGljbGUocGN0eHQsCisJCQl0eXBlLT5ub2RlLAorCQkJKCh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgdHlwZS0+c3VidHlwZXMpLT5taW5PY2N1cnMsCisJCQkoKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSB0eXBlLT5zdWJ0eXBlcyktPm1heE9jY3Vycyk7CisJCSAgICBpZiAocGFydGljbGUtPmNoaWxkcmVuLT5jaGlsZHJlbiA9PSBOVUxMKQorCQkJZ290byBleGl0X2ZhaWx1cmU7CisJCSAgICBwYXJ0aWNsZSA9ICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikKKwkJCXBhcnRpY2xlLT5jaGlsZHJlbi0+Y2hpbGRyZW47CisJCSAgICBwYXJ0aWNsZS0+Y2hpbGRyZW4gPQorCQkJKCh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgYmFzZVR5cGUtPnN1YnR5cGVzKS0+Y2hpbGRyZW47CisJCSAgICAvKgorCQkgICAgKiBTUEVDICJmb2xsb3dlZCBieSB0aGUg77+9ZWZmZWN0aXZlIGNvbnRlbnTvv70uIgorCQkgICAgKi8KKwkJICAgIHBhcnRpY2xlLT5uZXh0ID0gZWZmZWN0aXZlQ29udGVudDsKKwkJICAgIC8qCisJCSAgICAqIFRoaXMgYWxsIHdpbGwgcmVzdWx0IGluOgorCQkgICAgKiBuZXctcGFydGljbGUKKwkJICAgICogICAtLT4gbmV3LXNlcXVlbmNlKAorCQkgICAgKiAgICAgICAgIG5ldy1wYXJ0aWNsZQorCQkgICAgKiAgICAgICAgICAgLS0+IGJhc2UtbW9kZWwsCisJCSAgICAqICAgICAgICAgdGhpcy1wYXJ0aWNsZQorCQkgICAgKgkgICAgICAgIC0tPiB0aGlzLW1vZGVsCisJCSAgICAqCSAgICApCisJCSAgICAqLworCQl9IGVsc2UgeworCQkgICAgLyoKKwkJICAgICogVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYW4gZW1wdHkKKwkJICAgICogPHNlcXVlbmNlPiB3aXRoIG1pbk9jY3Vycz09bWF4T2NjdXJzPT0xLgorCQkgICAgKiBKdXN0IGFkZCB0aGUgYmFzZSB0eXBlcydzIGNvbnRlbnQgdHlwZS4KKwkJICAgICogTk9URSB0aGF0LCBhbHRob3VnaCB3ZSBtaXNzIHRvIGFkZCBhbiBpbnRlcm1lZGlhdGUKKwkJICAgICogPHNlcXVlbmNlPiwgdGhpcyBzaG91bGQgcHJvZHVjZSBubyBkaWZmZXJlbmNlIHRvCisJCSAgICAqIG5laXRoZXIgdGhlIHJlZ2V4IGNvbXBpbGF0aW9uIG9mIHRoZSBjb250ZW50IG1vZGVsLAorCQkgICAgKiBub3IgdG8gdGhlIGNvbXBsZXggdHlwZSBjb250cmFpbnRzLgorCQkgICAgKi8KKwkJICAgIHBhcnRpY2xlLT5jaGlsZHJlbi0+Y2hpbGRyZW4gPQorCQkJKHhtbFNjaGVtYVRyZWVJdGVtUHRyKSBiYXNlVHlwZS0+c3VidHlwZXM7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisgICAgLyoKKyAgICAqIE5vdyBmaXh1cCBhdHRyaWJ1dGUgdXNlczoKKyAgICAqICAgLSBleHBhbmQgYXR0ci4gZ3JvdXAgcmVmZXJlbmNlcworICAgICogICAgIC0gaW50ZXJzZWN0IGF0dHJpYnV0ZSB3aWxkY2FyZHMKKyAgICAqICAgLSBpbmhlcml0IGF0dHJpYnV0ZSB1c2VzIG9mIHRoZSBiYXNlIHR5cGUKKyAgICAqICAgLSBpbmhlcml0IG9yIHVuaW9uIGF0dHIuIHdpbGRjYXJkcyBpZiBleHRlbmRpbmcKKyAgICAqICAgLSBhcHBseSBhdHRyLiB1c2UgcHJvaGliaXRpb25zIGlmIHJlc3RyaWN0aW5nCisgICAgKi8KKyAgICByZXMgPSB4bWxTY2hlbWFGaXh1cFR5cGVBdHRyaWJ1dGVVc2VzKHBjdHh0LCB0eXBlKTsKKyAgICBIRkFJTFVSRSBIRVJST1IKKyAgICAvKgorICAgICogQXBwbHkgdGhlIGNvbXBsZXggdHlwZSBjb21wb25lbnQgY29uc3RyYWludHM7IHRoaXMgd2lsbCBub3QKKyAgICAqIGNoZWNrIGF0dHJpYnV0ZXMsIHNpbmNlIHRoaXMgaXMgZG9uZSBpbgorICAgICogeG1sU2NoZW1hRml4dXBUeXBlQXR0cmlidXRlVXNlcygpLgorICAgICovCisgICAgcmVzID0geG1sU2NoZW1hQ2hlY2tDVENvbXBvbmVudChwY3R4dCwgdHlwZSk7CisgICAgSEZBSUxVUkUgSEVSUk9SCisKKyNpZmRlZiBERUJVR19UWVBFCisgICAgeG1sU2NoZW1hRGVidWdGaXhlZFR5cGUocGN0eHQsIHR5cGUpOworI2VuZGlmCisgICAgaWYgKG9sZGVycnMgIT0gcGN0eHQtPm5iZXJyb3JzKQorCXJldHVybihwY3R4dC0+ZXJyKTsKKyAgICBlbHNlCisJcmV0dXJuKDApOworCitleGl0X2Vycm9yOgorICAgIHR5cGUtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfSU5URVJOQUxfSU5WQUxJRDsKKyNpZmRlZiBERUJVR19UWVBFCisgICAgeG1sU2NoZW1hRGVidWdGaXhlZFR5cGUocGN0eHQsIHR5cGUpOworI2VuZGlmCisgICAgcmV0dXJuKHBjdHh0LT5lcnIpOworCitleGl0X2ZhaWx1cmU6CisgICAgdHlwZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9JTlRFUk5BTF9JTlZBTElEOworI2lmZGVmIERFQlVHX1RZUEUKKyAgICB4bWxTY2hlbWFEZWJ1Z0ZpeGVkVHlwZShwY3R4dCwgdHlwZSk7CisjZW5kaWYKKyAgICByZXR1cm4oLTEpOworfQorCisKKy8qKgorICogeG1sU2NoZW1hVHlwZUZpeHVwOgorICogQHR5cGVEZWNsOiAgdGhlIHNjaGVtYSB0eXBlIGRlZmluaXRpb24KKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICoKKyAqIEZpeGVzIHRoZSBjb250ZW50IG1vZGVsIG9mIHRoZSB0eXBlLgorICogVVJHRU5UIFRPRE86IFdlIG5lZWQgYW4gaW50IHJlc3VsdCEKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hVHlwZUZpeHVwKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKyAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQpCit7CisgICAgaWYgKHR5cGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKDApOworICAgIGlmIChhY3R4dC0+dHlwZSAhPSBYTUxfU0NIRU1BX0NUWFRfUEFSU0VSKSB7CisJQUVSUk9SX0lOVCgieG1sU2NoZW1hVHlwZUZpeHVwIiwKKwkgICAgInRoaXMgZnVuY3Rpb24gbmVlZHMgYSBwYXJzZXIgY29udGV4dCIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmICghIFdYU19JU19UWVBFX05PVF9GSVhFRCh0eXBlKSkKKwlyZXR1cm4oMCk7CisgICAgaWYgKHR5cGUtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVgpCisJcmV0dXJuKHhtbFNjaGVtYUZpeHVwQ29tcGxleFR5cGUoUENUWFRfQ0FTVCBhY3R4dCwgdHlwZSkpOworICAgIGVsc2UgaWYgKHR5cGUtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX1NJTVBMRSkKKwlyZXR1cm4oeG1sU2NoZW1hRml4dXBTaW1wbGVUeXBlU3RhZ2VUd28oUENUWFRfQ0FTVCBhY3R4dCwgdHlwZSkpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDaGVja0ZhY2V0OgorICogQGZhY2V0OiAgdGhlIGZhY2V0CisgKiBAdHlwZURlY2w6ICB0aGUgc2NoZW1hIHR5cGUgZGVmaW5pdGlvbgorICogQHBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dCBvciBOVUxMCisgKiBAbmFtZTogdGhlIG9wdGlvbmFsIG5hbWUgb2YgdGhlIHR5cGUKKyAqCisgKiBDaGVja3MgYW5kIGNvbXB1dGVzIHRoZSB2YWx1ZXMgb2YgZmFjZXRzLgorICoKKyAqIFJldHVybnMgMCBpZiB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIGlmIG5vdCB2YWxpZCBhbmQKKyAqICAgICAgICAgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hQ2hlY2tGYWNldCh4bWxTY2hlbWFGYWNldFB0ciBmYWNldCwKKyAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlRGVjbCwKKyAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lIEFUVFJJQlVURV9VTlVTRUQpCit7CisgICAgaW50IHJldCA9IDAsIGN0eHRHaXZlbjsKKworICAgIGlmICgoZmFjZXQgPT0gTlVMTCkgfHwgKHR5cGVEZWNsID09IE5VTEwpKQorICAgICAgICByZXR1cm4oLTEpOworICAgIC8qCisgICAgKiBUT0RPOiB3aWxsIHRoZSBwYXJzZXIgY29udGV4dCBiZSBnaXZlbiBpZiB1c2VkIGZyb20KKyAgICAqIHRoZSByZWxheE5HIG1vZHVsZT8KKyAgICAqLworICAgIGlmIChwY3R4dCA9PSBOVUxMKQorCWN0eHRHaXZlbiA9IDA7CisgICAgZWxzZQorCWN0eHRHaXZlbiA9IDE7CisKKyAgICBzd2l0Y2ggKGZhY2V0LT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5JTkNMVVNJVkU6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkU6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NQVhFWENMVVNJVkU6CisJY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOiB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBPa2F5IHdlIG5lZWQgdG8gdmFsaWRhdGUgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICogYXQgdGhhdCBwb2ludC4KKyAgICAgICAgICAgICAgICAgKi8KKwkJeG1sU2NoZW1hVHlwZVB0ciBiYXNlOworCisJCS8qIDQuMy41LjUgQ29uc3RyYWludHMgb24gZW51bWVyYXRpb24gU2NoZW1hIENvbXBvbmVudHMKKwkJKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IGVudW1lcmF0aW9uIHZhbGlkIHJlc3RyaWN0aW9uCisJCSogSXQgaXMgYW4g77+9ZXJyb3Lvv70gaWYgYW55IG1lbWJlciBvZiB7dmFsdWV9IGlzIG5vdCBpbiB0aGUKKwkJKiDvv712YWx1ZSBzcGFjZe+/vSBvZiB7YmFzZSB0eXBlIGRlZmluaXRpb259LgorCQkqCisJCSogbWluSW5jbHVzaXZlLCBtYXhJbmNsdXNpdmUsIG1pbkV4Y2x1c2l2ZSwgbWF4RXhjbHVzaXZlOgorCQkqIFRoZSB2YWx1ZSDvv71tdXN077+9IGJlIGluIHRoZQorCQkqIO+/vXZhbHVlIHNwYWNl77+9IG9mIHRoZSDvv71iYXNlIHR5cGXvv70uCisJCSovCisJCS8qCisJCSogVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBkZWxpdmVyIGEgY29tcGlsZWQgdmFsdWUKKwkJKiBvbiB0aGUgZmFjZXQuIEluIHRoaXMgaW1wbGVtZW50YXRpb24gb2YgWE1MIFNjaGVtYXRhIHRoZQorCQkqIHR5cGUgaG9sZGluZyBhIGZhY2V0LCB3b24ndCBiZSBhIGJ1aWx0LWluIHR5cGUuCisJCSogVGh1cyB0byBlbnN1cmUgdGhhdCBvdGhlciBBUEkKKwkJKiBjYWxscyAocmVsYXhuZykgZG8gd29yaywgaWYgdGhlIGdpdmVuIHR5cGUgaXMgYSBidWlsdC1pbgorCQkqIHR5cGUsIHdlIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGdpdmVuIGJ1aWx0LWluIHR5cGUgKmlzCisJCSogYWxyZWFkeSogdGhlIGJhc2UgdHlwZS4KKwkJKi8KKwkJaWYgKHR5cGVEZWNsLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykgeworCQkgICAgYmFzZSA9IHR5cGVEZWNsLT5iYXNlVHlwZTsKKwkJICAgIGlmIChiYXNlID09IE5VTEwpIHsKKwkJCVBFUlJPUl9JTlQoInhtbFNjaGVtYUNoZWNrRmFjZXQiLAorCQkJICAgICJhIHR5cGUgdXNlciBkZXJpdmVkIHR5cGUgaGFzIG5vIGJhc2UgdHlwZSIpOworCQkJcmV0dXJuICgtMSk7CisJCSAgICB9CisJCX0gZWxzZQorCQkgICAgYmFzZSA9IHR5cGVEZWNsOworCisJCWlmICghIGN0eHRHaXZlbikgeworCQkgICAgLyoKKwkJICAgICogQSBjb250ZXh0IGlzIG5lZWRlZCBpZiBjYWxsZWQgZnJvbSBSZWxheE5HLgorCQkgICAgKi8KKwkJICAgIHBjdHh0ID0geG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCgiKiIpOworCQkgICAgaWYgKHBjdHh0ID09IE5VTEwpCisJCQlyZXR1cm4gKC0xKTsKKwkJfQorCQkvKgorCQkqIE5PVEU6IFRoaXMgY2FsbCBkb2VzIG5vdCBjaGVjayB0aGUgY29udGVudCBub2RlcywKKwkJKiBzaW5jZSB0aGV5IGFyZSBub3QgYXZhaWxhYmxlOgorCQkqIGZhY2V0LT5ub2RlIGlzIGp1c3QgdGhlIG5vZGUgaG9sZGluZyB0aGUgZmFjZXQKKwkJKiBkZWZpbml0aW9uLCAqbm90KiB0aGUgYXR0cmlidXRlIGhvbGRpbmcgdGhlICp2YWx1ZSoKKwkJKiBvZiB0aGUgZmFjZXQuCisJCSovCisJCXJldCA9IHhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUoCisJCSAgICBBQ1RYVF9DQVNUIHBjdHh0LCBmYWNldC0+bm9kZSwgYmFzZSwKKwkJICAgIGZhY2V0LT52YWx1ZSwgJihmYWNldC0+dmFsKSwgMSwgMSwgMCk7CisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisJCSAgICBpZiAocmV0IDwgMCkgeworCQkJLyogTm8gZXJyb3IgbWVzc2FnZSBmb3IgUmVsYXhORy4gKi8KKwkJCWlmIChjdHh0R2l2ZW4pIHsKKwkJCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJCQlYTUxfU0NIRU1BUF9JTlRFUk5BTCwgZmFjZXQtPm5vZGUsIE5VTEwsCisJCQkJIkludGVybmFsIGVycm9yOiB4bWxTY2hlbWFDaGVja0ZhY2V0LCAiCisJCQkJImZhaWxlZCB0byB2YWxpZGF0ZSB0aGUgdmFsdWUgJyVzJyBvZiB0aGUgIgorCQkJCSJmYWNldCAnJXMnIGFnYWluc3QgdGhlIGJhc2UgdHlwZSIsCisJCQkJZmFjZXQtPnZhbHVlLCB4bWxTY2hlbWFGYWNldFR5cGVUb1N0cmluZyhmYWNldC0+dHlwZSkpOworCQkJfQorCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJICAgIH0KKwkJICAgIHJldCA9IFhNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUU7CisJCSAgICAvKiBObyBlcnJvciBtZXNzYWdlIGZvciBSZWxheE5HLiAqLworCQkgICAgaWYgKGN0eHRHaXZlbikgeworCQkJeG1sQ2hhciAqc3RyID0gTlVMTDsKKworCQkJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCQkgICAgcmV0LCBmYWNldC0+bm9kZSwgV1hTX0JBU0lDX0NBU1QgZmFjZXQsCisJCQkgICAgIlRoZSB2YWx1ZSAnJXMnIG9mIHRoZSBmYWNldCBkb2VzIG5vdCB2YWxpZGF0ZSAiCisJCQkgICAgImFnYWluc3QgdGhlIGJhc2UgdHlwZSAnJXMnIiwKKwkJCSAgICBmYWNldC0+dmFsdWUsCisJCQkgICAgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJCQliYXNlLT50YXJnZXROYW1lc3BhY2UsIGJhc2UtPm5hbWUpKTsKKwkJCUZSRUVfQU5EX05VTEwoc3RyKTsKKwkJICAgIH0KKwkJICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZhY2V0LT52YWwgPT0gTlVMTCkgeworCQkgICAgaWYgKGN0eHRHaXZlbikgeworCQkJUEVSUk9SX0lOVCgieG1sU2NoZW1hQ2hlY2tGYWNldCIsCisJCQkgICAgInZhbHVlIHdhcyBub3QgY29tcHV0ZWQiKTsKKwkJICAgIH0KKwkJICAgIFRPRE8KKwkJfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTjoKKyAgICAgICAgICAgIGZhY2V0LT5yZWdleHAgPSB4bWxSZWdleHBDb21waWxlKGZhY2V0LT52YWx1ZSk7CisgICAgICAgICAgICBpZiAoZmFjZXQtPnJlZ2V4cCA9PSBOVUxMKSB7CisJCXJldCA9IFhNTF9TQ0hFTUFQX1JFR0VYUF9JTlZBTElEOworCQkvKiBObyBlcnJvciBtZXNzYWdlIGZvciBSZWxheE5HLiAqLworCQlpZiAoY3R4dEdpdmVuKSB7CisJCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJCXJldCwgZmFjZXQtPm5vZGUsIFdYU19CQVNJQ19DQVNUIHR5cGVEZWNsLAorCQkJIlRoZSB2YWx1ZSAnJXMnIG9mIHRoZSBmYWNldCAncGF0dGVybicgaXMgbm90IGEgIgorCQkJInZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiIsCisJCQlmYWNldC0+dmFsdWUsIE5VTEwpOworCQl9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1RPVEFMRElHSVRTOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEg6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEg6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEg6CisKKwkgICAgaWYgKGZhY2V0LT50eXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFMpIHsKKwkJcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVQcmVkZWZpbmVkVHlwZSgKKwkJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX1BJTlRFR0VSKSwKKwkJICAgIGZhY2V0LT52YWx1ZSwgJihmYWNldC0+dmFsKSk7CisJICAgIH0gZWxzZSB7CisJCXJldCA9IHhtbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUoCisJCSAgICB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19OTklOVEVHRVIpLAorCQkgICAgZmFjZXQtPnZhbHVlLCAmKGZhY2V0LT52YWwpKTsKKwkgICAgfQorCSAgICBpZiAocmV0ICE9IDApIHsKKwkJaWYgKHJldCA8IDApIHsKKwkJICAgIC8qIE5vIGVycm9yIG1lc3NhZ2UgZm9yIFJlbGF4TkcuICovCisJCSAgICBpZiAoY3R4dEdpdmVuKSB7CisJCQlQRVJST1JfSU5UKCJ4bWxTY2hlbWFDaGVja0ZhY2V0IiwKKwkJCSAgICAidmFsaWRhdGluZyBmYWNldCB2YWx1ZSIpOworCQkgICAgfQorCQkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJfQorCQlyZXQgPSBYTUxfU0NIRU1BUF9JTlZBTElEX0ZBQ0VUX1ZBTFVFOworCQkvKiBObyBlcnJvciBtZXNzYWdlIGZvciBSZWxheE5HLiAqLworCQlpZiAoY3R4dEdpdmVuKSB7CisJCSAgICAvKiBlcnJvciBjb2RlICovCisJCSAgICB4bWxTY2hlbWFDdXN0b21FcnI0KEFDVFhUX0NBU1QgcGN0eHQsCisJCQlyZXQsIGZhY2V0LT5ub2RlLCBXWFNfQkFTSUNfQ0FTVCB0eXBlRGVjbCwKKwkJCSJUaGUgdmFsdWUgJyVzJyBvZiB0aGUgZmFjZXQgJyVzJyBpcyBub3QgYSB2YWxpZCAnJXMnIiwKKwkJCWZhY2V0LT52YWx1ZSwKKwkJCXhtbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nKGZhY2V0LT50eXBlKSwKKwkJCShmYWNldC0+dHlwZSAhPSBYTUxfU0NIRU1BX0ZBQ0VUX1RPVEFMRElHSVRTKSA/CisJCQkgICAgQkFEX0NBU1QgIm5vbk5lZ2F0aXZlSW50ZWdlciIgOgorCQkJICAgIEJBRF9DQVNUICJwb3NpdGl2ZUludGVnZXIiLAorCQkJTlVMTCk7CisJCX0KKwkgICAgfQorCSAgICBicmVhazsKKworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfV0hJVEVTUEFDRTp7CisgICAgICAgICAgICAgICAgaWYgKHhtbFN0ckVxdWFsKGZhY2V0LT52YWx1ZSwgQkFEX0NBU1QgInByZXNlcnZlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFjZXQtPndoaXRlc3BhY2UgPSBYTUxfU0NIRU1BU19GQUNFVF9QUkVTRVJWRTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGZhY2V0LT52YWx1ZSwgQkFEX0NBU1QgInJlcGxhY2UiKSkgeworICAgICAgICAgICAgICAgICAgICBmYWNldC0+d2hpdGVzcGFjZSA9IFhNTF9TQ0hFTUFTX0ZBQ0VUX1JFUExBQ0U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChmYWNldC0+dmFsdWUsIEJBRF9DQVNUICJjb2xsYXBzZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGZhY2V0LT53aGl0ZXNwYWNlID0gWE1MX1NDSEVNQVNfRkFDRVRfQ09MTEFQU0U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKwkJICAgIHJldCA9IFhNTF9TQ0hFTUFQX0lOVkFMSURfRkFDRVRfVkFMVUU7CisgICAgICAgICAgICAgICAgICAgIC8qIE5vIGVycm9yIG1lc3NhZ2UgZm9yIFJlbGF4TkcuICovCisJCSAgICBpZiAoY3R4dEdpdmVuKSB7CisJCQkvKiBlcnJvciB3YXMgcHJldmlvdXNseTogWE1MX1NDSEVNQVBfSU5WQUxJRF9XSElURV9TUEFDRSAqLworCQkJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCQkgICAgcmV0LCBmYWNldC0+bm9kZSwgV1hTX0JBU0lDX0NBU1QgdHlwZURlY2wsCisJCQkgICAgIlRoZSB2YWx1ZSAnJXMnIG9mIHRoZSBmYWNldCAnd2hpdGVzcGFjZScgaXMgbm90ICIKKwkJCSAgICAidmFsaWQiLCBmYWNldC0+dmFsdWUsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorZXhpdDoKKyAgICBpZiAoKCEgY3R4dEdpdmVuKSAmJiAocGN0eHQgIT0gTlVMTCkpCisJeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQocGN0eHQpOworICAgIHJldHVybiAocmV0KTsKK2ludGVybmFsX2Vycm9yOgorICAgIGlmICgoISBjdHh0R2l2ZW4pICYmIChwY3R4dCAhPSBOVUxMKSkKKwl4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dChwY3R4dCk7CisgICAgcmV0dXJuICgtMSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tGYWNldFZhbHVlczoKKyAqIEB0eXBlRGVjbDogIHRoZSBzY2hlbWEgdHlwZSBkZWZpbml0aW9uCisgKiBAY3R4dDogIHRoZSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBDaGVja3MgdGhlIGRlZmF1bHQgdmFsdWVzIHR5cGVzLCBlc3BlY2lhbGx5IGZvciBmYWNldHMKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tGYWNldFZhbHVlcyh4bWxTY2hlbWFUeXBlUHRyIHR5cGVEZWNsLAorCQkJICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0KQoreworICAgIGludCByZXMsIG9sZGVycnMgPSBwY3R4dC0+bmJlcnJvcnM7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZSA9IHR5cGVEZWNsLT5uYW1lOworICAgIC8qCisgICAgKiBOT1RFOiBJdCBpcyBpbnRlbmRlZCB0byB1c2UgdGhlIGZhY2V0cyBsaXN0LCBpbnN0ZWFkCisgICAgKiBvZiBmYWNldFNldC4KKyAgICAqLworICAgIGlmICh0eXBlRGVjbC0+ZmFjZXRzICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFGYWNldFB0ciBmYWNldCA9IHR5cGVEZWNsLT5mYWNldHM7CisKKwkvKgorCSogVGVtcG9yYXJpbHkgYXNzaWduIHRoZSAic2NoZW1hIiB0byB0aGUgdmFsaWRhdGlvbiBjb250ZXh0CisJKiBvZiB0aGUgcGFyc2VyIGNvbnRleHQuIFRoaXMgaXMgbmVlZGVkIGZvciBOT1RBVElPTiB2YWxpZGF0aW9uLgorCSovCisJaWYgKHBjdHh0LT52Y3R4dCA9PSBOVUxMKSB7CisJICAgIGlmICh4bWxTY2hlbWFDcmVhdGVWQ3R4dE9uUEN0eHQocGN0eHQpID09IC0xKQorCQlyZXR1cm4oLTEpOworCX0KKwlwY3R4dC0+dmN0eHQtPnNjaGVtYSA9IHBjdHh0LT5zY2hlbWE7CisJd2hpbGUgKGZhY2V0ICE9IE5VTEwpIHsKKwkgICAgcmVzID0geG1sU2NoZW1hQ2hlY2tGYWNldChmYWNldCwgdHlwZURlY2wsIHBjdHh0LCBuYW1lKTsKKwkgICAgSEZBSUxVUkUKKwkgICAgZmFjZXQgPSBmYWNldC0+bmV4dDsKKwl9CisJcGN0eHQtPnZjdHh0LT5zY2hlbWEgPSBOVUxMOworICAgIH0KKyAgICBpZiAob2xkZXJycyAhPSBwY3R4dC0+bmJlcnJvcnMpCisJcmV0dXJuKHBjdHh0LT5lcnIpOworICAgIHJldHVybigwKTsKK2V4aXRfZmFpbHVyZToKKyAgICByZXR1cm4oLTEpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldENpcmNNb2RlbEdyRGVmUmVmOgorICogQGN0eHRNR3JvdXA6IHRoZSBzZWFyY2hlZCBtb2RlbCBncm91cAorICogQHNlbGZNR3JvdXA6IHRoZSBzZWNvbmQgc2VhcmNoZWQgbW9kZWwgZ3JvdXAKKyAqIEBwYXJ0aWNsZTogdGhlIGZpcnN0IHBhcnRpY2xlCisgKgorICogVGhpcyBvbmUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieQorICogeG1sU2NoZW1hQ2hlY2tHcm91cERlZkNpcmN1bGFyIG9ubHkuCisgKgorICogUmV0dXJucyB0aGUgcGFydGljbGUgd2l0aCB0aGUgY2lyY3VsYXIgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbiByZWZlcmVuY2UsCisgKiBvdGhlcndpc2UgTlVMTC4KKyAqLworc3RhdGljIHhtbFNjaGVtYVRyZWVJdGVtUHRyCit4bWxTY2hlbWFHZXRDaXJjTW9kZWxHckRlZlJlZih4bWxTY2hlbWFNb2RlbEdyb3VwRGVmUHRyIGdyb3VwRGVmLAorCQkJICAgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgcGFydGljbGUpCit7CisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgY2lyYyA9IE5VTEw7CisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgdGVybTsKKyAgICB4bWxTY2hlbWFNb2RlbEdyb3VwRGVmUHRyIGdkZWY7CisKKyAgICBmb3IgKDsgcGFydGljbGUgIT0gTlVMTDsgcGFydGljbGUgPSBwYXJ0aWNsZS0+bmV4dCkgeworCXRlcm0gPSBwYXJ0aWNsZS0+Y2hpbGRyZW47CisJaWYgKHRlcm0gPT0gTlVMTCkKKwkgICAgY29udGludWU7CisJc3dpdGNoICh0ZXJtLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCQlnZGVmID0gKHhtbFNjaGVtYU1vZGVsR3JvdXBEZWZQdHIpIHRlcm07CisJCWlmIChnZGVmID09IGdyb3VwRGVmKQorCQkgICAgcmV0dXJuIChwYXJ0aWNsZSk7CisJCS8qCisJCSogTWFyayB0aGlzIG1vZGVsIGdyb3VwIGRlZmluaXRpb24gdG8gYXZvaWQgaW5maW5pdGUKKwkJKiByZWN1cnNpb24gb24gY2lyY3VsYXIgcmVmZXJlbmNlcyBub3QgeWV0IGV4YW1pbmVkLgorCQkqLworCQlpZiAoZ2RlZi0+ZmxhZ3MgJiBYTUxfU0NIRU1BX01PREVMX0dST1VQX0RFRl9NQVJLRUQpCisJCSAgICBjb250aW51ZTsKKwkJaWYgKGdkZWYtPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkJICAgIGdkZWYtPmZsYWdzIHw9IFhNTF9TQ0hFTUFfTU9ERUxfR1JPVVBfREVGX01BUktFRDsKKwkJICAgIGNpcmMgPSB4bWxTY2hlbWFHZXRDaXJjTW9kZWxHckRlZlJlZihncm91cERlZiwKKwkJCWdkZWYtPmNoaWxkcmVuLT5jaGlsZHJlbik7CisJCSAgICBnZGVmLT5mbGFncyBePSBYTUxfU0NIRU1BX01PREVMX0dST1VQX0RFRl9NQVJLRUQ7CisJCSAgICBpZiAoY2lyYyAhPSBOVUxMKQorCQkJcmV0dXJuIChjaXJjKTsKKwkJfQorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0U6CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0NIT0lDRToKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQUxMOgorCQljaXJjID0geG1sU2NoZW1hR2V0Q2lyY01vZGVsR3JEZWZSZWYoZ3JvdXBEZWYsIHRlcm0tPmNoaWxkcmVuKTsKKwkJaWYgKGNpcmMgIT0gTlVMTCkKKwkJICAgIHJldHVybiAoY2lyYyk7CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tHcm91cERlZkNpcmN1bGFyOgorICogQGl0ZW06ICB0aGUgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIG5hbWUKKyAqCisgKiBDaGVja3MgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgdG8gbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbnMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFDaGVja0dyb3VwRGVmQ2lyY3VsYXIoeG1sU2NoZW1hTW9kZWxHcm91cERlZlB0ciBpdGVtLAorCQkJICAgICAgIHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICAvKgorICAgICogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OiBNb2RlbCBHcm91cCBDb3JyZWN0CisgICAgKiAyIENpcmN1bGFyIGdyb3VwcyBhcmUgZGlzYWxsb3dlZC4gVGhhdCBpcywgd2l0aGluIHRoZSB7cGFydGljbGVzfQorICAgICogb2YgYSBncm91cCB0aGVyZSBtdXN0IG5vdCBiZSBhdCBhbnkgZGVwdGggYSBwYXJ0aWNsZSB3aG9zZSB7dGVybX0KKyAgICAqIGlzIHRoZSBncm91cCBpdHNlbGYuCisgICAgKi8KKyAgICBpZiAoKGl0ZW0gPT0gTlVMTCkgfHwKKwkoaXRlbS0+dHlwZSAhPSBYTUxfU0NIRU1BX1RZUEVfR1JPVVApIHx8CisJKGl0ZW0tPmNoaWxkcmVuID09IE5VTEwpKQorCXJldHVybjsKKyAgICB7CisJeG1sU2NoZW1hVHJlZUl0ZW1QdHIgY2lyYzsKKworCWNpcmMgPSB4bWxTY2hlbWFHZXRDaXJjTW9kZWxHckRlZlJlZihpdGVtLCBpdGVtLT5jaGlsZHJlbi0+Y2hpbGRyZW4pOworCWlmIChjaXJjICE9IE5VTEwpIHsKKwkgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKwkgICAgLyoKKwkgICAgKiBUT0RPOiBUaGUgZXJyb3IgcmVwb3J0IGlzIG5vdCBhZGVxdWF0ZTogdGhpcyBjb25zdHJhaW50CisJICAgICogaXMgZGVmaW5lZCBmb3IgbW9kZWwgZ3JvdXBzIGJ1dCBub3QgZGVmaW5pdGlvbnMsIGJ1dCBzaW5jZQorCSAgICAqIHRoZXJlIGNhbm5vdCBiZSBhbnkgY2lyY3VsYXIgbW9kZWwgZ3JvdXBzIHdpdGhvdXQgYSBtb2RlbCBncm91cAorCSAgICAqIGRlZmluaXRpb24gKGlmIG5vdCB1c2luZyBhIGNvbnN0cnVjdGlvbiBBUEkpLCB3ZSBjaGVjayB0aG9zZQorCSAgICAqIGRlZmludGlvbnMgb25seS4KKwkgICAgKi8KKwkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9NR19QUk9QU19DT1JSRUNUXzIsCisJCU5VTEwsIFdYU19JVEVNX05PREUoY2lyYyksCisJCSJDaXJjdWxhciByZWZlcmVuY2UgdG8gdGhlIG1vZGVsIGdyb3VwIGRlZmluaXRpb24gJyVzJyAiCisJCSJkZWZpbmVkIiwgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJICAgIGl0ZW0tPnRhcmdldE5hbWVzcGFjZSwgaXRlbS0+bmFtZSkpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwkgICAgLyoKKwkgICAgKiBOT1RFOiBXZSB3aWxsIGN1dCB0aGUgcmVmZXJlbmNlIHRvIGF2b2lkIGZ1cnRoZXIKKwkgICAgKiBjb25mdXNpb24gb2YgdGhlIHByb2Nlc3Nvci4gVGhpcyBpcyBhIGZhdGFsIGVycm9yLgorCSAgICAqLworCSAgICBjaXJjLT5jaGlsZHJlbiA9IE5VTEw7CisJfQorICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFNb2RlbEdyb3VwVG9Nb2RlbEdyb3VwRGVmRml4dXA6CisgKiBAY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQG1nOiAgdGhlIG1vZGVsIGdyb3VwCisgKgorICogQXNzaWducyB0aGUgbW9kZWwgZ3JvdXAgb2YgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbnMgdG8gdGhlICJ0ZXJtIgorICogb2YgdGhlIHJlZmVyZW5jaW5nIHBhcnRpY2xlLgorICogSW4geG1sU2NoZW1hUmVzb2x2ZU1vZGVsR3JvdXBQYXJ0aWNsZVJlZmVyZW5jZXMgdGhlIG1vZGVsIGdyb3VwCisgKiBkZWZpbml0aW9ucyB3ZXJlIGFzc2lnbmVkIHRvIHRoZSAidGVybSIsIHNpbmNlIG5lZWRlZCBmb3IgdGhlCisgKiBjaXJjdWxhcml0eSBjaGVjay4KKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiAgICAgQWxsIEdyb3VwIExpbWl0ZWQgKGNvcy1hbGwtbGltaXRlZCkgKDEuMikKKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYU1vZGVsR3JvdXBUb01vZGVsR3JvdXBEZWZGaXh1cCgKKyAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQgQVRUUklCVVRFX1VOVVNFRCwKKyAgICB4bWxTY2hlbWFNb2RlbEdyb3VwUHRyIG1nKQoreworICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIHBhcnRpY2xlID0gV1hTX01PREVMR1JPVVBfUEFSVElDTEUobWcpOworCisgICAgd2hpbGUgKHBhcnRpY2xlICE9IE5VTEwpIHsKKwlpZiAoKFdYU19QQVJUSUNMRV9URVJNKHBhcnRpY2xlKSA9PSBOVUxMKSB8fAorCSAgICAoKFdYU19QQVJUSUNMRV9URVJNKHBhcnRpY2xlKSktPnR5cGUgIT0KKwkJWE1MX1NDSEVNQV9UWVBFX0dST1VQKSkKKwl7CisJICAgIHBhcnRpY2xlID0gV1hTX1BUQ19DQVNUIHBhcnRpY2xlLT5uZXh0OworCSAgICBjb250aW51ZTsKKwl9CisJaWYgKFdYU19NT0RFTEdST1VQREVGX01PREVMKFdYU19QQVJUSUNMRV9URVJNKHBhcnRpY2xlKSkgPT0gTlVMTCkgeworCSAgICAvKgorCSAgICAqIFRPRE86IFJlbW92ZSB0aGUgcGFydGljbGUuCisJICAgICovCisJICAgIFdYU19QQVJUSUNMRV9URVJNKHBhcnRpY2xlKSA9IE5VTEw7CisJICAgIHBhcnRpY2xlID0gV1hTX1BUQ19DQVNUIHBhcnRpY2xlLT5uZXh0OworCSAgICBjb250aW51ZTsKKwl9CisJLyoKKwkqIEFzc2lnbiB0aGUgbW9kZWwgZ3JvdXAgdG8gdGhlIHt0ZXJtfSBvZiB0aGUgcGFydGljbGUuCisJKi8KKwlXWFNfUEFSVElDTEVfVEVSTShwYXJ0aWNsZSkgPQorCSAgICBXWFNfVFJFRV9DQVNUIFdYU19NT0RFTEdST1VQREVGX01PREVMKFdYU19QQVJUSUNMRV9URVJNKHBhcnRpY2xlKSk7CisKKwlwYXJ0aWNsZSA9IFdYU19QVENfQ0FTVCBwYXJ0aWNsZS0+bmV4dDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tBdHRyR3JvdXBDaXJjdWxhclJlY3VyOgorICogQGN0eHRHcjogdGhlIHNlYXJjaGVkIGF0dHJpYnV0ZSBncm91cAorICogQGF0dHI6IHRoZSBjdXJyZW50IGF0dHJpYnV0ZSBsaXN0IHRvIGJlIHByb2Nlc3NlZAorICoKKyAqIFRoaXMgb25lIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkKKyAqIHhtbFNjaGVtYUNoZWNrQXR0ckdyb3VwQ2lyY3VsYXIgb25seS4KKyAqCisgKiBSZXR1cm5zIHRoZSBjaXJjdWxhciBhdHRyaWJ1dGUgZ3JvdSByZWZlcmVuY2UsIG90aGVyd2lzZSBOVUxMLgorICovCitzdGF0aWMgeG1sU2NoZW1hUU5hbWVSZWZQdHIKK3htbFNjaGVtYUNoZWNrQXR0ckdyb3VwQ2lyY3VsYXJSZWN1cih4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciBjdHh0R3IsCisJCQkJICAgICB4bWxTY2hlbWFJdGVtTGlzdFB0ciBsaXN0KQoreworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIGdyOworICAgIHhtbFNjaGVtYVFOYW1lUmVmUHRyIHJlZiwgY2lyYzsKKyAgICBpbnQgaTsKKyAgICAvKgorICAgICogV2Ugd2lsbCBzZWFyY2ggZm9yIGFuIGF0dHJpYnV0ZSBncm91cCByZWZlcmVuY2Ugd2hpY2gKKyAgICAqIHJlZmVyZW5jZXMgdGhlIGNvbnRleHQgYXR0cmlidXRlIGdyb3VwLgorICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IGxpc3QtPm5iSXRlbXM7IGkrKykgeworCXJlZiA9IGxpc3QtPml0ZW1zW2ldOworCWlmICgocmVmLT50eXBlID09IFhNTF9TQ0hFTUFfRVhUUkFfUU5BTUVSRUYpICYmCisJICAgIChyZWYtPml0ZW1UeXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUCkgJiYKKwkgICAgKHJlZi0+aXRlbSAhPSBOVUxMKSkKKwl7CisJICAgIGdyID0gV1hTX0FUVFJfR1JPVVBfQ0FTVCByZWYtPml0ZW07CisJICAgIGlmIChnciA9PSBjdHh0R3IpCisJCXJldHVybihyZWYpOworCSAgICBpZiAoZ3ItPmZsYWdzICYgWE1MX1NDSEVNQVNfQVRUUkdST1VQX01BUktFRCkKKwkJY29udGludWU7CisJICAgIC8qCisJICAgICogTWFyayBhcyB2aXNpdGVkIHRvIGF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbiBvbgorCSAgICAqIGNpcmN1bGFyIHJlZmVyZW5jZXMgbm90IHlldCBleGFtaW5lZC4KKwkgICAgKi8KKwkgICAgaWYgKChnci0+YXR0clVzZXMpICYmCisJCShnci0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfSEFTX1JFRlMpKQorCSAgICB7CisJCWdyLT5mbGFncyB8PSBYTUxfU0NIRU1BU19BVFRSR1JPVVBfTUFSS0VEOworCQljaXJjID0geG1sU2NoZW1hQ2hlY2tBdHRyR3JvdXBDaXJjdWxhclJlY3VyKGN0eHRHciwKKwkJICAgICh4bWxTY2hlbWFJdGVtTGlzdFB0cikgZ3ItPmF0dHJVc2VzKTsKKwkJZ3ItPmZsYWdzIF49IFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9NQVJLRUQ7CisJCWlmIChjaXJjICE9IE5VTEwpCisJCSAgICByZXR1cm4gKGNpcmMpOworCSAgICB9CisKKwl9CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tBdHRyR3JvdXBDaXJjdWxhcjoKKyAqIGF0dHJHcjogIHRoZSBhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbgorICogQGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIG5hbWUKKyAqCisgKiBDaGVja3MgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgb2YgYXR0cmlidXRlIGdyb3Vwcy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tBdHRyR3JvdXBDaXJjdWxhcih4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cFB0ciBhdHRyR3IsCisJCQkJeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIC8qCisgICAgKiBTY2hlbWEgUmVwcmVzZW50YXRpb24gQ29uc3RyYWludDoKKyAgICAqIEF0dHJpYnV0ZSBHcm91cCBEZWZpbml0aW9uIFJlcHJlc2VudGF0aW9uIE9LCisgICAgKiAzIENpcmN1bGFyIGdyb3VwIHJlZmVyZW5jZSBpcyBkaXNhbGxvd2VkIG91dHNpZGUgPHJlZGVmaW5lPi4KKyAgICAqIFRoYXQgaXMsIHVubGVzcyB0aGlzIGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSdzIHBhcmVudCBpcworICAgICogPHJlZGVmaW5lPiwgdGhlbiBhbW9uZyB0aGUgW2NoaWxkcmVuXSwgaWYgYW55LCB0aGVyZSBtdXN0CisgICAgKiBub3QgYmUgYW4gPGF0dHJpYnV0ZUdyb3VwPiB3aXRoIHJlZiBbYXR0cmlidXRlXSB3aGljaCByZXNvbHZlcworICAgICogdG8gdGhlIGNvbXBvbmVudCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgPGF0dHJpYnV0ZUdyb3VwPi4gSW5kaXJlY3QKKyAgICAqIGNpcmN1bGFyaXR5IGlzIGFsc28gcnVsZWQgb3V0LiBUaGF0IGlzLCB3aGVuIFFOYW1lIHJlc29sdXRpb24KKyAgICAqIChTY2hlbWEgRG9jdW1lbnQpICjvv70zLjE1LjMpIGlzIGFwcGxpZWQgdG8gYSDvv71RTmFtZe+/vSBhcmlzaW5nIGZyb20KKyAgICAqIGFueSA8YXR0cmlidXRlR3JvdXA+cyB3aXRoIGEgcmVmIFthdHRyaWJ1dGVdIGFtb25nIHRoZSBbY2hpbGRyZW5dLAorICAgICogaXQgbXVzdCBub3QgYmUgdGhlIGNhc2UgdGhhdCBhIO+/vVFOYW1l77+9IGlzIGVuY291bnRlcmVkIGF0IGFueSBkZXB0aAorICAgICogd2hpY2ggcmVzb2x2ZXMgdG8gdGhlIGNvbXBvbmVudCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgPGF0dHJpYnV0ZUdyb3VwPi4KKyAgICAqLworICAgIGlmIChhdHRyR3ItPmF0dHJVc2VzID09IE5VTEwpCisJcmV0dXJuKDApOworICAgIGVsc2UgaWYgKChhdHRyR3ItPmZsYWdzICYgWE1MX1NDSEVNQVNfQVRUUkdST1VQX0hBU19SRUZTKSA9PSAwKQorCXJldHVybigwKTsKKyAgICBlbHNlIHsKKwl4bWxTY2hlbWFRTmFtZVJlZlB0ciBjaXJjOworCisJY2lyYyA9IHhtbFNjaGVtYUNoZWNrQXR0ckdyb3VwQ2lyY3VsYXJSZWN1cihhdHRyR3IsCisJICAgICh4bWxTY2hlbWFJdGVtTGlzdFB0cikgYXR0ckdyLT5hdHRyVXNlcyk7CisJaWYgKGNpcmMgIT0gTlVMTCkgeworCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCSAgICAvKgorCSAgICAqIFRPRE86IFJlcG9ydCB0aGUgcmVmZXJlbmNlZCBhdHRyIGdyb3VwIGFzIFFOYW1lLgorCSAgICAqLworCSAgICB4bWxTY2hlbWFQQ3VzdG9tRXJyKGN0eHQsCisJCVhNTF9TQ0hFTUFQX1NSQ19BVFRSSUJVVEVfR1JPVVBfMywKKwkJTlVMTCwgV1hTX0lURU1fTk9ERShXWFNfQkFTSUNfQ0FTVCBjaXJjKSwKKwkJIkNpcmN1bGFyIHJlZmVyZW5jZSB0byB0aGUgYXR0cmlidXRlIGdyb3VwICclcycgIgorCQkiZGVmaW5lZCIsIHhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHIsIGF0dHJHcikpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cik7CisJICAgIC8qCisJICAgICogTk9URTogV2Ugd2lsbCBjdXQgdGhlIHJlZmVyZW5jZSB0byBhdm9pZCBmdXJ0aGVyCisJICAgICogY29uZnVzaW9uIG9mIHRoZSBwcm9jZXNzb3IuCisJICAgICogQkFEU1BFQyBUT0RPOiBUaGUgc3BlYyBzaG91bGQgZGVmaW5lIGhvdyB0byBwcm9jZXNzIGluIHRoaXMgY2FzZS4KKwkgICAgKi8KKwkgICAgY2lyYy0+aXRlbSA9IE5VTEw7CisJICAgIHJldHVybihjdHh0LT5lcnIpOworCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cEV4cGFuZFJlZnMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCQkgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIGF0dHJHcik7CisKKy8qKgorICogeG1sU2NoZW1hRXhwYW5kQXR0cmlidXRlR3JvdXBSZWZzOgorICogQHBjdHh0OiB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBub2RlOiB0aGUgbm9kZSBvZiB0aGUgY29tcG9uZW50IGhvbGRpbmcgdGhlIGF0dHJpYnV0ZSB1c2VzCisgKiBAY29tcGxldGVXaWxkOiB0aGUgaW50ZXJzZWN0ZWQgd2lsZGNhcmQgdG8gYmUgcmV0dXJuZWQKKyAqIEBsaXN0OiB0aGUgYXR0cmlidXRlIHVzZXMKKyAqCisgKiBTdWJzdGl0dXRlcyBjb250YWluZWQgYXR0cmlidXRlIGdyb3VwIHJlZmVyZW5jZXMKKyAqIGZvciB0aGVpciBhdHRyaWJ1dGUgdXNlcy4gV2lsY2FyZHMgYXJlIGludGVyc2VjdGVkLgorICogQXR0cmlidXRlIHVzZSBwcm9oaWJpdGlvbnMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgbGlzdAorICogYW5kIHJldHVybmVkIHZpYSB0aGUgQHByb2hpYnMgbGlzdC4KKyAqIFBvaW50bGVzc25lc3Mgb2YgYXR0ci4gcHJvaGlicywgaWYgYSBtYXRjaGluZyBhdHRyLiBkZWNsCisgKiBpcyBleGlzdGVudCBhIHdlbGwsIGFyZSBjaGVja2VkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFFeHBhbmRBdHRyaWJ1dGVHcm91cFJlZnMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCQkgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBpdGVtLAorCQkJCSAgeG1sU2NoZW1hV2lsZGNhcmRQdHIgKmNvbXBsZXRlV2lsZCwKKwkJCQkgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIGxpc3QsCisJCQkJICB4bWxTY2hlbWFJdGVtTGlzdFB0ciBwcm9oaWJzKQoreworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIGdyOworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciB1c2U7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgc3VibGlzdDsKKyAgICBpbnQgaSwgajsKKyAgICBpbnQgY3JlYXRlZCA9ICgqY29tcGxldGVXaWxkID09IE5VTEwpID8gMCA6IDE7CisKKyAgICBpZiAocHJvaGlicykKKwlwcm9oaWJzLT5uYkl0ZW1zID0gMDsKKworICAgIGZvciAoaSA9IDA7IGkgPCBsaXN0LT5uYkl0ZW1zOyBpKyspIHsKKwl1c2UgPSBsaXN0LT5pdGVtc1tpXTsKKworCWlmICh1c2UtPnR5cGUgPT0gWE1MX1NDSEVNQV9FWFRSQV9BVFRSX1VTRV9QUk9ISUIpIHsKKwkgICAgaWYgKHByb2hpYnMgPT0gTlVMTCkgeworCQlQRVJST1JfSU5UKCJ4bWxTY2hlbWFFeHBhbmRBdHRyaWJ1dGVHcm91cFJlZnMiLAorCQkgICAgInVuZXhwZWN0ZWQgYXR0ciBwcm9oaWJpdGlvbiBmb3VuZCIpOworCQlyZXR1cm4oLTEpOworCSAgICB9CisJICAgIC8qCisJICAgICogUmVtb3ZlIGZyb20gYXR0cmlidXRlIHVzZXMuCisJICAgICovCisJICAgIGlmICh4bWxTY2hlbWFJdGVtTGlzdFJlbW92ZShsaXN0LCBpKSA9PSAtMSkKKwkJcmV0dXJuKC0xKTsKKwkgICAgaS0tOworCSAgICAvKgorCSAgICAqIE5vdGUgdGhhdCBkdXBsaWNhdGUgcHJvaGliaXRpb25zIHdlcmUgYWxyZWFkeQorCSAgICAqIGhhbmRsZWQgYXQgcGFyc2luZyB0aW1lLgorCSAgICAqLworCSAgICAvKgorCSAgICAqIEFkZCB0byBsaXN0IG9mIHByb2hpYml0aW9ucy4KKwkgICAgKi8KKwkgICAgeG1sU2NoZW1hSXRlbUxpc3RBZGRTaXplKHByb2hpYnMsIDIsIHVzZSk7CisJICAgIGNvbnRpbnVlOworCX0KKwlpZiAoKHVzZS0+dHlwZSA9PSBYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGKSAmJgorCSAgICAoKFdYU19RTkFNRV9DQVNUIHVzZSktPml0ZW1UeXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUCkpCisJeworCSAgICBpZiAoKFdYU19RTkFNRV9DQVNUIHVzZSktPml0ZW0gPT0gTlVMTCkKKwkJcmV0dXJuKC0xKTsKKwkgICAgZ3IgPSBXWFNfQVRUUl9HUk9VUF9DQVNUIChXWFNfUU5BTUVfQ0FTVCB1c2UpLT5pdGVtOworCSAgICAvKgorCSAgICAqIEV4cGFuZCB0aGUgcmVmZXJlbmNlZCBhdHRyLiBncm91cC4KKwkgICAgKiBUT0RPOiByZW1vdmUgdGhpcywgdGhpcyBpcyBkb25lIGluIGEgcHJldmlvdXMgc3RlcCwgc28KKwkgICAgKiBhbHJlYWR5IGRvbmUgaGVyZS4KKwkgICAgKi8KKwkgICAgaWYgKChnci0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfV0lMRENBUkRfQlVJTERFRCkgPT0gMCkgeworCQlpZiAoeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBFeHBhbmRSZWZzKHBjdHh0LCBncikgPT0gLTEpCisJCSAgICByZXR1cm4oLTEpOworCSAgICB9CisJICAgIC8qCisJICAgICogQnVpbGQgdGhlICdjb21wbGV0ZScgd2lsZGNhcmQ7IGkuZS4gaW50ZXJzZWN0IG11bHRpcGxlCisJICAgICogd2lsZGNhcmRzLgorCSAgICAqLworCSAgICBpZiAoZ3ItPmF0dHJpYnV0ZVdpbGRjYXJkICE9IE5VTEwpIHsKKwkJaWYgKCpjb21wbGV0ZVdpbGQgPT0gTlVMTCkgeworCQkgICAgKmNvbXBsZXRlV2lsZCA9IGdyLT5hdHRyaWJ1dGVXaWxkY2FyZDsKKwkJfSBlbHNlIHsKKwkJICAgIGlmICghIGNyZWF0ZWQpIHsKKwkJCXhtbFNjaGVtYVdpbGRjYXJkUHRyIHRtcFdpbGQ7CisKKwkJCSAvKgorCQkJKiBDb3B5IHRoZSBmaXJzdCBlbmNvdW50ZXJlZCB3aWxkY2FyZCBhcyBjb250ZXh0LAorCQkJKiBleGNlcHQgZm9yIHRoZSBhbm5vdGF0aW9uLgorCQkJKgorCQkJKiBBbHRob3VnaCB0aGUgY29tcGxldGUgd2lsZGNhcmQgbWlnaHQgbm90IGNvcnJlc3BvbmQKKwkJCSogdG8gYW55IG5vZGUgaW4gdGhlIHNjaGVtYSwgd2Ugd2lsbCBhbmNob3IgaXQgb24KKwkJCSogdGhlIG5vZGUgb2YgdGhlIG93bmVyIGNvbXBvbmVudC4KKwkJCSovCisJCQl0bXBXaWxkID0gIHhtbFNjaGVtYUFkZFdpbGRjYXJkKHBjdHh0LCBwY3R4dC0+c2NoZW1hLAorCQkJICAgIFhNTF9TQ0hFTUFfVFlQRV9BTllfQVRUUklCVVRFLAorCQkJICAgIFdYU19JVEVNX05PREUoaXRlbSkpOworCQkJaWYgKHRtcFdpbGQgPT0gTlVMTCkKKwkJCSAgICByZXR1cm4oLTEpOworCQkJaWYgKHhtbFNjaGVtYUNsb25lV2lsZGNhcmROc0NvbnN0cmFpbnRzKHBjdHh0LAorCQkJICAgIHRtcFdpbGQsICpjb21wbGV0ZVdpbGQpID09IC0xKQorCQkJICAgIHJldHVybiAoLTEpOworCQkJdG1wV2lsZC0+cHJvY2Vzc0NvbnRlbnRzID0gKCpjb21wbGV0ZVdpbGQpLT5wcm9jZXNzQ29udGVudHM7CisJCQkqY29tcGxldGVXaWxkID0gdG1wV2lsZDsKKwkJCWNyZWF0ZWQgPSAxOworCQkgICAgfQorCisJCSAgICBpZiAoeG1sU2NoZW1hSW50ZXJzZWN0V2lsZGNhcmRzKHBjdHh0LCAqY29tcGxldGVXaWxkLAorCQkJZ3ItPmF0dHJpYnV0ZVdpbGRjYXJkKSA9PSAtMSkKKwkJCXJldHVybigtMSk7CisJCX0KKwkgICAgfQorCSAgICAvKgorCSAgICAqIEp1c3QgcmVtb3ZlIHRoZSByZWZlcmVuY2UgaWYgdGhlIHJlZmVyZW5jZWQgZ3JvdXAgZG9lcyBub3QKKwkgICAgKiBjb250YWluIGFueSBhdHRyaWJ1dGUgdXNlcy4KKwkgICAgKi8KKwkgICAgc3VibGlzdCA9ICgoeG1sU2NoZW1hSXRlbUxpc3RQdHIpIGdyLT5hdHRyVXNlcyk7CisJICAgIGlmICgoc3VibGlzdCA9PSBOVUxMKSB8fCBzdWJsaXN0LT5uYkl0ZW1zID09IDApIHsKKwkJaWYgKHhtbFNjaGVtYUl0ZW1MaXN0UmVtb3ZlKGxpc3QsIGkpID09IC0xKQorCQkgICAgcmV0dXJuKC0xKTsKKwkJaS0tOworCQljb250aW51ZTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIEFkZCB0aGUgYXR0cmlidXRlIHVzZXMuCisJICAgICovCisJICAgIGxpc3QtPml0ZW1zW2ldID0gc3VibGlzdC0+aXRlbXNbMF07CisJICAgIGlmIChzdWJsaXN0LT5uYkl0ZW1zICE9IDEpIHsKKwkJZm9yIChqID0gMTsgaiA8IHN1Ymxpc3QtPm5iSXRlbXM7IGorKykgeworCQkgICAgaSsrOworCQkgICAgaWYgKHhtbFNjaGVtYUl0ZW1MaXN0SW5zZXJ0KGxpc3QsCisJCQkgICAgc3VibGlzdC0+aXRlbXNbal0sIGkpID09IC0xKQorCQkJcmV0dXJuKC0xKTsKKwkJfQorCSAgICB9CisJfQorCisgICAgfQorICAgIC8qCisgICAgKiBIYW5kbGUgcG9pbnRsZXNzIHByb2hpYml0aW9ucyBvZiBkZWNsYXJlZCBhdHRyaWJ1dGVzLgorICAgICovCisgICAgaWYgKHByb2hpYnMgJiYgKHByb2hpYnMtPm5iSXRlbXMgIT0gMCkgJiYgKGxpc3QtPm5iSXRlbXMgIT0gMCkpIHsKKwl4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQcm9oaWJQdHIgcHJvaGliOworCisJZm9yIChpID0gcHJvaGlicy0+bmJJdGVtcyAtMTsgaSA+PSAwOyBpLS0pIHsKKwkgICAgcHJvaGliID0gcHJvaGlicy0+aXRlbXNbaV07CisJICAgIGZvciAoaiA9IDA7IGogPCBsaXN0LT5uYkl0ZW1zOyBqKyspIHsKKwkJdXNlID0gbGlzdC0+aXRlbXNbal07CisKKwkJaWYgKChwcm9oaWItPm5hbWUgPT0gV1hTX0FUVFJVU0VfREVDTF9OQU1FKHVzZSkpICYmCisJCSAgICAocHJvaGliLT50YXJnZXROYW1lc3BhY2UgPT0gV1hTX0FUVFJVU0VfREVDTF9UTlModXNlKSkpCisJCXsKKwkJICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwkJICAgIHhtbFNjaGVtYUN1c3RvbVdhcm5pbmcoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJCVhNTF9TQ0hFTUFQX1dBUk5fQVRUUl9QT0lOVExFU1NfUFJPSCwKKwkJCXByb2hpYi0+bm9kZSwgTlVMTCwKKwkJCSJTa2lwcGluZyBwb2ludGxlc3MgYXR0cmlidXRlIHVzZSBwcm9oaWJpdGlvbiAiCisJCQkiJyVzJywgc2luY2UgYSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSB1c2UgIgorCQkJImV4aXN0cyBhbHJlYWR5IGluIHRoZSB0eXBlIGRlZmluaXRpb24iLAorCQkJeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwKKwkJCSAgICBwcm9oaWItPnRhcmdldE5hbWVzcGFjZSwgcHJvaGliLT5uYW1lKSwKKwkJCU5VTEwsIE5VTEwpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpOworCQkgICAgLyoKKwkJICAgICogUmVtb3ZlIHRoZSBwcm9oaWJpdGlvbi4KKwkJICAgICovCisJCSAgICBpZiAoeG1sU2NoZW1hSXRlbUxpc3RSZW1vdmUocHJvaGlicywgaSkgPT0gLTEpCisJCQlyZXR1cm4oLTEpOworCQkgICAgYnJlYWs7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwRXhwYW5kUmVmczoKKyAqIEBwY3R4dDogIHRoZSBwYXJzZXIgY29udGV4dAorICogQGF0dHJHcjogIHRoZSBhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbgorICoKKyAqIENvbXB1dGF0aW9uIG9mOgorICoge2F0dHJpYnV0ZSB1c2VzfSBwcm9wZXJ0eQorICoge2F0dHJpYnV0ZSB3aWxkY2FyZH0gcHJvcGVydHkKKyAqCisgKiBTdWJzdGl0dXRlcyBjb250YWluZWQgYXR0cmlidXRlIGdyb3VwIHJlZmVyZW5jZXMKKyAqIGZvciB0aGVpciBhdHRyaWJ1dGUgdXNlcy4gV2lsY2FyZHMgYXJlIGludGVyc2VjdGVkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cEV4cGFuZFJlZnMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCQkgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyIGF0dHJHcikKK3sKKyAgICBpZiAoKGF0dHJHci0+YXR0clVzZXMgPT0gTlVMTCkgfHwKKwkoYXR0ckdyLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEKSkKKwlyZXR1cm4oMCk7CisKKyAgICBhdHRyR3ItPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0FUVFJHUk9VUF9XSUxEQ0FSRF9CVUlMREVEOworICAgIGlmICh4bWxTY2hlbWFFeHBhbmRBdHRyaWJ1dGVHcm91cFJlZnMocGN0eHQsIFdYU19CQVNJQ19DQVNUIGF0dHJHciwKKwkmKGF0dHJHci0+YXR0cmlidXRlV2lsZGNhcmQpLCBhdHRyR3ItPmF0dHJVc2VzLCBOVUxMKSA9PSAtMSkKKwlyZXR1cm4oLTEpOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFBdHRyaWJ1dGVHcm91cEV4cGFuZFJlZnM6CisgKiBAcGN0eHQ6ICB0aGUgcGFyc2VyIGNvbnRleHQKKyAqIEBhdHRyR3I6ICB0aGUgYXR0cmlidXRlIGdyb3VwIGRlZmluaXRpb24KKyAqCisgKiBTdWJzdGl0dXRlcyBjb250YWluZWQgYXR0cmlidXRlIGdyb3VwIHJlZmVyZW5jZXMKKyAqIGZvciB0aGVpciBhdHRyaWJ1dGUgdXNlcy4gV2lsY2FyZHMgYXJlIGludGVyc2VjdGVkLgorICoKKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqICAgIEF0dHJpYnV0ZSBHcm91cCBEZWZpbml0aW9uIFByb3BlcnRpZXMgQ29ycmVjdCAoYWctcHJvcHMtY29ycmVjdCkKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tBR1Byb3BzQ29ycmVjdCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJCSAgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIgYXR0ckdyKQoreworICAgIC8qCisgICAgKiBTUEVDIGFnLXByb3BzLWNvcnJlY3QKKyAgICAqICgxKSAiVGhlIHZhbHVlcyBvZiB0aGUgcHJvcGVydGllcyBvZiBhbiBhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbgorICAgICogbXVzdCBiZSBhcyBkZXNjcmliZWQgaW4gdGhlIHByb3BlcnR5IHRhYmxlYXUgaW4gVGhlIEF0dHJpYnV0ZQorICAgICogR3JvdXAgRGVmaW5pdGlvbiBTY2hlbWEgQ29tcG9uZW50ICjvv70zLjYuMSksIG1vZHVsbyB0aGUgaW1wYWN0IG9mCisgICAgKiBNaXNzaW5nIFN1Yi1jb21wb25lbnRzICjvv701LjMpOyIKKyAgICAqLworCisgICAgaWYgKChhdHRyR3ItPmF0dHJVc2VzICE9IE5VTEwpICYmCisJKFdYU19MSVNUX0NBU1QgYXR0ckdyLT5hdHRyVXNlcyktPm5iSXRlbXMgPiAxKQorICAgIHsKKwl4bWxTY2hlbWFJdGVtTGlzdFB0ciB1c2VzID0gV1hTX0xJU1RfQ0FTVCBhdHRyR3ItPmF0dHJVc2VzOworCXhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciB1c2UsIHRtcDsKKwlpbnQgaSwgaiwgaGFzSWQgPSAwOworCisJZm9yIChpID0gdXNlcy0+bmJJdGVtcyAtMTsgaSA+PSAwOyBpLS0pIHsKKwkgICAgdXNlID0gdXNlcy0+aXRlbXNbaV07CisJICAgIC8qCisJICAgICogU1BFQyBhZy1wcm9wcy1jb3JyZWN0CisJICAgICogKDIpICJUd28gZGlzdGluY3QgbWVtYmVycyBvZiB0aGUge2F0dHJpYnV0ZSB1c2VzfSBtdXN0IG5vdCBoYXZlCisJICAgICoge2F0dHJpYnV0ZSBkZWNsYXJhdGlvbn1zIGJvdGggb2Ygd2hvc2Uge25hbWV9cyBtYXRjaCBhbmQgd2hvc2UKKwkgICAgKiB7dGFyZ2V0IG5hbWVzcGFjZX1zIGFyZSBpZGVudGljYWwuIgorCSAgICAqLworCSAgICBpZiAoaSA+IDApIHsKKwkJZm9yIChqID0gaSAtMTsgaiA+PSAwOyBqLS0pIHsKKwkJICAgIHRtcCA9IHVzZXMtPml0ZW1zW2pdOworCQkgICAgaWYgKChXWFNfQVRUUlVTRV9ERUNMX05BTUUodXNlKSA9PQorCQkJV1hTX0FUVFJVU0VfREVDTF9OQU1FKHRtcCkpICYmCisJCQkoV1hTX0FUVFJVU0VfREVDTF9UTlModXNlKSA9PQorCQkJV1hTX0FUVFJVU0VfREVDTF9UTlModG1wKSkpCisJCSAgICB7CisJCQl4bWxDaGFyICpzdHIgPSBOVUxMOworCisJCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJCSAgICBYTUxfU0NIRU1BUF9BR19QUk9QU19DT1JSRUNULAorCQkJICAgIGF0dHJHci0+bm9kZSwgV1hTX0JBU0lDX0NBU1QgYXR0ckdyLAorCQkJICAgICJEdXBsaWNhdGUgJXMiLAorCQkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudERlc2lnbmF0aW9uKCZzdHIsIHVzZSksCisJCQkgICAgTlVMTCk7CisJCQlGUkVFX0FORF9OVUxMKHN0cik7CisJCQkvKgorCQkJKiBSZW1vdmUgdGhlIGR1cGxpY2F0ZS4KKwkJCSovCisJCQlpZiAoeG1sU2NoZW1hSXRlbUxpc3RSZW1vdmUodXNlcywgaSkgPT0gLTEpCisJCQkgICAgcmV0dXJuKC0xKTsKKwkJCWdvdG8gbmV4dF91c2U7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICAvKgorCSAgICAqIFNQRUMgYWctcHJvcHMtY29ycmVjdAorCSAgICAqICgzKSAiVHdvIGRpc3RpbmN0IG1lbWJlcnMgb2YgdGhlIHthdHRyaWJ1dGUgdXNlc30gbXVzdCBub3QgaGF2ZQorCSAgICAqIHthdHRyaWJ1dGUgZGVjbGFyYXRpb259cyBib3RoIG9mIHdob3NlIHt0eXBlIGRlZmluaXRpb259cyBhcmUgb3IKKwkgICAgKiBhcmUgZGVyaXZlZCBmcm9tIElELiIKKwkgICAgKiBUT0RPOiBEb2VzICdkZXJpdmVkJyBpbmNsdWRlIG1lbWJlci10eXBlcyBvZiB1bmlvbnM/CisJICAgICovCisJICAgIGlmIChXWFNfQVRUUlVTRV9UWVBFREVGKHVzZSkgIT0gTlVMTCkgeworCQlpZiAoeG1sU2NoZW1hSXNEZXJpdmVkRnJvbUJ1aWx0SW5UeXBlKAorCQkgICAgV1hTX0FUVFJVU0VfVFlQRURFRih1c2UpLCBYTUxfU0NIRU1BU19JRCkpCisJCXsKKwkJICAgIGlmIChoYXNJZCkgeworCQkJeG1sQ2hhciAqc3RyID0gTlVMTDsKKworCQkJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCQkgICAgWE1MX1NDSEVNQVBfQUdfUFJPUFNfQ09SUkVDVCwKKwkJCSAgICBhdHRyR3ItPm5vZGUsIFdYU19CQVNJQ19DQVNUIGF0dHJHciwKKwkJCSAgICAiVGhlcmUgbXVzdCBub3QgZXhpc3QgbW9yZSB0aGFuIG9uZSBhdHRyaWJ1dGUgIgorCQkJICAgICJkZWNsYXJhdGlvbiBvZiB0eXBlICd4czpJRCcgIgorCQkJICAgICIob3IgZGVyaXZlZCBmcm9tICd4czpJRCcpLiBUaGUgJXMgdmlvbGF0ZXMgdGhpcyAiCisJCQkgICAgImNvbnN0cmFpbnQiLAorCQkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudERlc2lnbmF0aW9uKCZzdHIsIHVzZSksCisJCQkgICAgTlVMTCk7CisJCQlGUkVFX0FORF9OVUxMKHN0cik7CisJCQlpZiAoeG1sU2NoZW1hSXRlbUxpc3RSZW1vdmUodXNlcywgaSkgPT0gLTEpCisJCQkgICAgcmV0dXJuKC0xKTsKKwkJICAgIH0KKwkJICAgIGhhc0lkID0gMTsKKwkJfQorCSAgICB9CituZXh0X3VzZToge30KKwl9CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFSZXNvbHZlQXR0ckdyb3VwUmVmZXJlbmNlczoKKyAqIEBhdHRyZ3JwRGVjbDogIHRoZSBzY2hlbWEgYXR0cmlidXRlIGRlZmluaXRpb24KKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqCisgKiBSZXNvbHZlcyByZWZlcmVuY2VzIHRvIGF0dHJpYnV0ZSBncm91cCBkZWZpbml0aW9ucy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUmVzb2x2ZUF0dHJHcm91cFJlZmVyZW5jZXMoeG1sU2NoZW1hUU5hbWVSZWZQdHIgcmVmLAorCQkJCSAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgeG1sU2NoZW1hQXR0cmlidXRlR3JvdXBQdHIgZ3JvdXA7CisKKyAgICBpZiAocmVmLT5pdGVtICE9IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKyAgICBncm91cCA9IHhtbFNjaGVtYUdldEF0dHJpYnV0ZUdyb3VwKGN0eHQtPnNjaGVtYSwKKwlyZWYtPm5hbWUsCisJcmVmLT50YXJnZXROYW1lc3BhY2UpOworICAgIGlmIChncm91cCA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUFJlc0NvbXBBdHRyRXJyKGN0eHQsCisJICAgIFhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFLAorCSAgICBOVUxMLCByZWYtPm5vZGUsCisJICAgICJyZWYiLCByZWYtPm5hbWUsIHJlZi0+dGFyZ2V0TmFtZXNwYWNlLAorCSAgICByZWYtPml0ZW1UeXBlLCBOVUxMKTsKKwlyZXR1cm4oY3R4dC0+ZXJyKTsKKyAgICB9CisgICAgcmVmLT5pdGVtID0gV1hTX0JBU0lDX0NBU1QgZ3JvdXA7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrQXR0clByb3BzQ29ycmVjdDoKKyAqIEBpdGVtOiAgYW4gc2NoZW1hIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbi91c2UKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZQorICoKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiAgICBBdHRyaWJ1dGUgRGVjbGFyYXRpb24gUHJvcGVydGllcyBDb3JyZWN0IChhLXByb3BzLWNvcnJlY3QpCisgKgorICogVmFsaWRhdGVzIHRoZSB2YWx1ZSBjb25zdHJhaW50cyBvZiBhbiBhdHRyaWJ1dGUgZGVjbGFyYXRpb24vdXNlLgorICogTk9URSB0aGF0IHRoaXMgbmVlZHMgdGhlIHNpbWxlIHR5cGUgZGVmaW5pdGlvbnMgdG8gYmUgYWxyZWFkeQorICogICBidWlsZGVkIGFuZCBjaGVja2VkLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0F0dHJQcm9wc0NvcnJlY3QoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCSAgICAgICB4bWxTY2hlbWFBdHRyaWJ1dGVQdHIgYXR0cikKK3sKKworICAgIC8qCisgICAgKiBTUEVDIGEtcHJvcHMtY29ycmVjdCAoMSkKKyAgICAqICJUaGUgdmFsdWVzIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBtdXN0CisgICAgKiBiZSBhcyBkZXNjcmliZWQgaW4gdGhlIHByb3BlcnR5IHRhYmxlYXUgaW4gVGhlIEF0dHJpYnV0ZQorICAgICogRGVjbGFyYXRpb24gU2NoZW1hIENvbXBvbmVudCAo77+9My4yLjEpLCBtb2R1bG8gdGhlIGltcGFjdCBvZgorICAgICogTWlzc2luZyBTdWItY29tcG9uZW50cyAo77+9NS4zKS4iCisgICAgKi8KKworICAgIGlmIChXWFNfQVRUUl9UWVBFREVGKGF0dHIpID09IE5VTEwpCisJcmV0dXJuKDApOworCisgICAgaWYgKGF0dHItPmRlZlZhbHVlICE9IE5VTEwpIHsKKwlpbnQgcmV0OworCisJLyoKKwkqIFNQRUMgYS1wcm9wcy1jb3JyZWN0ICgzKQorCSogIklmIHRoZSB7dHlwZSBkZWZpbml0aW9ufSBpcyBvciBpcyBkZXJpdmVkIGZyb20gSUQgdGhlbiB0aGVyZQorCSogbXVzdCBub3QgYmUgYSB7dmFsdWUgY29uc3RyYWludH0uIgorCSovCisJaWYgKHhtbFNjaGVtYUlzRGVyaXZlZEZyb21CdWlsdEluVHlwZSgKKwkgICAgV1hTX0FUVFJfVFlQRURFRihhdHRyKSwgWE1MX1NDSEVNQVNfSUQpKQorCXsKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCVhNTF9TQ0hFTUFQX0FfUFJPUFNfQ09SUkVDVF8zLAorCQlOVUxMLCBXWFNfQkFTSUNfQ0FTVCBhdHRyLAorCQkiVmFsdWUgY29uc3RyYWludHMgYXJlIG5vdCBhbGxvd2VkIGlmIHRoZSB0eXBlIGRlZmluaXRpb24gIgorCQkiaXMgb3IgaXMgZGVyaXZlZCBmcm9tIHhzOklEIiwKKwkJTlVMTCwgTlVMTCk7CisJICAgIHJldHVybihwY3R4dC0+ZXJyKTsKKwl9CisJLyoKKwkqIFNQRUMgYS1wcm9wcy1jb3JyZWN0ICgyKQorCSogImlmIHRoZXJlIGlzIGEge3ZhbHVlIGNvbnN0cmFpbnR9LCB0aGUgY2Fub25pY2FsIGxleGljYWwKKwkqIHJlcHJlc2VudGF0aW9uIG9mIGl0cyB2YWx1ZSBtdXN0IGJlIO+/vXZhbGlk77+9IHdpdGggcmVzcGVjdAorCSogdG8gdGhlIHt0eXBlIGRlZmluaXRpb259IGFzIGRlZmluZWQgaW4gU3RyaW5nIFZhbGlkICjvv70zLjE0LjQpLiIKKwkqIFRPRE86IERvbid0IGNhcmUgYWJvdXQgdGhlICpjb25vbmljYWwqIHN0dWZmIGhlcmUsIHRoaXMgcmVxdWlyZW1lbnQKKwkqIHdpbGwgYmUgcmVtb3ZlZCBpbiBXWFMgMS4xIGFueXdheS4KKwkqLworCXJldCA9IHhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUoQUNUWFRfQ0FTVCBwY3R4dCwKKwkgICAgYXR0ci0+bm9kZSwgV1hTX0FUVFJfVFlQRURFRihhdHRyKSwKKwkgICAgYXR0ci0+ZGVmVmFsdWUsICYoYXR0ci0+ZGVmVmFsKSwKKwkgICAgMSwgMSwgMCk7CisJaWYgKHJldCAhPSAwKSB7CisJICAgIGlmIChyZXQgPCAwKSB7CisJCVBFUlJPUl9JTlQoInhtbFNjaGVtYUNoZWNrQXR0clByb3BzQ29ycmVjdCIsCisJCSAgICAiY2FsbGluZyB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKCkiKTsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJWE1MX1NDSEVNQVBfQV9QUk9QU19DT1JSRUNUXzIsCisJCU5VTEwsIFdYU19CQVNJQ19DQVNUIGF0dHIsCisJCSJUaGUgdmFsdWUgb2YgdGhlIHZhbHVlIGNvbnN0cmFpbnQgaXMgbm90IHZhbGlkIiwKKwkJTlVMTCwgTlVMTCk7CisJICAgIHJldHVybihwY3R4dC0+ZXJyKTsKKwl9CisgICAgfQorCisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgeG1sU2NoZW1hRWxlbWVudFB0cgoreG1sU2NoZW1hQ2hlY2tTdWJzdEdyb3VwQ2lyY3VsYXIoeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtRGVjbCwKKwkJCQkgeG1sU2NoZW1hRWxlbWVudFB0ciBhbmNlc3RvcikKK3sKKyAgICB4bWxTY2hlbWFFbGVtZW50UHRyIHJldDsKKworICAgIGlmIChXWFNfU1VCU1RfSEVBRChhbmNlc3RvcikgPT0gTlVMTCkKKwlyZXR1cm4gKE5VTEwpOworICAgIGlmIChXWFNfU1VCU1RfSEVBRChhbmNlc3RvcikgPT0gZWxlbURlY2wpCisJcmV0dXJuIChhbmNlc3Rvcik7CisKKyAgICBpZiAoV1hTX1NVQlNUX0hFQUQoYW5jZXN0b3IpLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVIpCisJcmV0dXJuIChOVUxMKTsKKyAgICBXWFNfU1VCU1RfSEVBRChhbmNlc3RvciktPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVI7CisgICAgcmV0ID0geG1sU2NoZW1hQ2hlY2tTdWJzdEdyb3VwQ2lyY3VsYXIoZWxlbURlY2wsCisJV1hTX1NVQlNUX0hFQUQoYW5jZXN0b3IpKTsKKyAgICBXWFNfU1VCU1RfSEVBRChhbmNlc3RvciktPmZsYWdzIF49IFhNTF9TQ0hFTUFTX0VMRU1fQ0lSQ1VMQVI7CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tFbGVtUHJvcHNDb3JyZWN0OgorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGRlY2w6IHRoZSBlbGVtZW50IGRlY2xhcmF0aW9uCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiBFbGVtZW50IERlY2xhcmF0aW9uIFByb3BlcnRpZXMgQ29ycmVjdCAoZS1wcm9wcy1jb3JyZWN0KQorICoKKyAqIFNUQVRVUzoKKyAqICAgbWlzc2luZzogKDYpCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNoZWNrRWxlbVByb3BzQ29ycmVjdCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0LAorCQkJICAgICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgZWxlbURlY2wpCit7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlRGVmID0gV1hTX0VMRU1fVFlQRURFRihlbGVtRGVjbCk7CisgICAgLyoKKyAgICAqIFNQRUMgKDEpICJUaGUgdmFsdWVzIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIGVsZW1lbnQgZGVjbGFyYXRpb24KKyAgICAqIG11c3QgYmUgYXMgZGVzY3JpYmVkIGluIHRoZSBwcm9wZXJ0eSB0YWJsZWF1IGluIFRoZSBFbGVtZW50CisgICAgKiBEZWNsYXJhdGlvbiBTY2hlbWEgQ29tcG9uZW50ICjvv70zLjMuMSksIG1vZHVsbyB0aGUgaW1wYWN0IG9mIE1pc3NpbmcKKyAgICAqIFN1Yi1jb21wb25lbnRzICjvv701LjMpLiIKKyAgICAqLworICAgIGlmIChXWFNfU1VCU1RfSEVBRChlbGVtRGVjbCkgIT0gTlVMTCkgeworCXhtbFNjaGVtYUVsZW1lbnRQdHIgaGVhZCA9IFdYU19TVUJTVF9IRUFEKGVsZW1EZWNsKSwgY2lyYzsKKworCXhtbFNjaGVtYUNoZWNrRWxlbWVudERlY2xDb21wb25lbnQoaGVhZCwgcGN0eHQpOworCS8qCisJKiBTUEVDICgzKSAiSWYgdGhlcmUgaXMgYSBub24t77+9YWJzZW5077+9IHtzdWJzdGl0dXRpb24gZ3JvdXAKKwkqIGFmZmlsaWF0aW9ufSwgdGhlbiB7c2NvcGV9IG11c3QgYmUgZ2xvYmFsLiIKKwkqLworCWlmICgoZWxlbURlY2wtPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9HTE9CQUwpID09IDApIHsKKwkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihwY3R4dCwKKwkJWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzMsCisJCVdYU19CQVNJQ19DQVNUIGVsZW1EZWNsLCBOVUxMLAorCQkiT25seSBnbG9iYWwgZWxlbWVudCBkZWNsYXJhdGlvbnMgY2FuIGhhdmUgYSAiCisJCSJzdWJzdGl0dXRpb24gZ3JvdXAgYWZmaWxpYXRpb24iLCBOVUxMKTsKKwkgICAgcmV0ID0gWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzM7CisJfQorCS8qCisJKiBUT0RPOiBTUEVDICg2KSAiQ2lyY3VsYXIgc3Vic3RpdHV0aW9uIGdyb3VwcyBhcmUgZGlzYWxsb3dlZC4KKwkqIFRoYXQgaXMsIGl0IG11c3Qgbm90IGJlIHBvc3NpYmxlIHRvIHJldHVybiB0byBhbiBlbGVtZW50IGRlY2xhcmF0aW9uCisJKiBieSByZXBlYXRlZGx5IGZvbGxvd2luZyB0aGUge3N1YnN0aXR1dGlvbiBncm91cCBhZmZpbGlhdGlvbn0KKwkqIHByb3BlcnR5LiIKKwkqLworCWlmIChoZWFkID09IGVsZW1EZWNsKQorCSAgICBjaXJjID0gaGVhZDsKKwllbHNlIGlmIChXWFNfU1VCU1RfSEVBRChoZWFkKSAhPSBOVUxMKQorCSAgICBjaXJjID0geG1sU2NoZW1hQ2hlY2tTdWJzdEdyb3VwQ2lyY3VsYXIoaGVhZCwgaGVhZCk7CisJZWxzZQorCSAgICBjaXJjID0gTlVMTDsKKwlpZiAoY2lyYyAhPSBOVUxMKSB7CisJICAgIHhtbENoYXIgKnN0ckEgPSBOVUxMLCAqc3RyQiA9IE5VTEw7CisKKwkgICAgeG1sU2NoZW1hUEN1c3RvbUVyckV4dChwY3R4dCwKKwkJWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzYsCisJCVdYU19CQVNJQ19DQVNUIGNpcmMsIE5VTEwsCisJCSJUaGUgZWxlbWVudCBkZWNsYXJhdGlvbiAnJXMnIGRlZmluZXMgYSBjaXJjdWxhciAiCisJCSJzdWJzdGl0dXRpb24gZ3JvdXAgdG8gZWxlbWVudCBkZWNsYXJhdGlvbiAnJXMnIiwKKwkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ckEsIGNpcmMpLAorCQl4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyQiwgaGVhZCksCisJCU5VTEwpOworCSAgICBGUkVFX0FORF9OVUxMKHN0ckEpCisJICAgIEZSRUVfQU5EX05VTEwoc3RyQikKKwkgICAgcmV0ID0gWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzY7CisJfQorCS8qCisJKiBTUEVDICg0KSAiSWYgdGhlcmUgaXMgYSB7c3Vic3RpdHV0aW9uIGdyb3VwIGFmZmlsaWF0aW9ufSwKKwkqIHRoZSB7dHlwZSBkZWZpbml0aW9ufQorCSogb2YgdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24gbXVzdCBiZSB2YWxpZGx5IGRlcml2ZWQgZnJvbSB0aGUge3R5cGUKKwkqIGRlZmluaXRpb259IG9mIHRoZSB7c3Vic3RpdHV0aW9uIGdyb3VwIGFmZmlsaWF0aW9ufSwgZ2l2ZW4gdGhlIHZhbHVlCisJKiBvZiB0aGUge3N1YnN0aXR1dGlvbiBncm91cCBleGNsdXNpb25zfSBvZiB0aGUge3N1YnN0aXR1dGlvbiBncm91cAorCSogYWZmaWxpYXRpb259LCBhcyBkZWZpbmVkIGluIFR5cGUgRGVyaXZhdGlvbiBPSyAoQ29tcGxleCkgKO+/vTMuNC42KQorCSogKGlmIHRoZSB7dHlwZSBkZWZpbml0aW9ufSBpcyBjb21wbGV4KSBvciBhcyBkZWZpbmVkIGluCisJKiBUeXBlIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKO+/vTMuMTQuNikgKGlmIHRoZSB7dHlwZSBkZWZpbml0aW9ufSBpcworCSogc2ltcGxlKS4iCisJKgorCSogTk9URToge3N1YnN0aXR1dGlvbiBncm91cCBleGNsdXNpb25zfSBtZWFucyB0aGUgdmFsdWVzIG9mIHRoZQorCSogYXR0cmlidXRlICJmaW5hbCIuCisJKi8KKworCWlmICh0eXBlRGVmICE9IFdYU19FTEVNX1RZUEVERUYoV1hTX1NVQlNUX0hFQUQoZWxlbURlY2wpKSkgeworCSAgICBpbnQgc2V0ID0gMDsKKworCSAgICBpZiAoaGVhZC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0ZJTkFMX0VYVEVOU0lPTikKKwkJc2V0IHw9IFNVQlNFVF9FWFRFTlNJT047CisJICAgIGlmIChoZWFkLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fRklOQUxfUkVTVFJJQ1RJT04pCisJCXNldCB8PSBTVUJTRVRfUkVTVFJJQ1RJT047CisKKwkgICAgaWYgKHhtbFNjaGVtYUNoZWNrQ09TRGVyaXZlZE9LKEFDVFhUX0NBU1QgcGN0eHQsIHR5cGVEZWYsCisJCVdYU19FTEVNX1RZUEVERUYoaGVhZCksIHNldCkgIT0gMCkgeworCQl4bWxDaGFyICpzdHJBID0gTlVMTCwgKnN0ckIgPSBOVUxMLCAqc3RyQyA9IE5VTEw7CisKKwkJcmV0ID0gWE1MX1NDSEVNQVBfRV9QUk9QU19DT1JSRUNUXzQ7CisJCXhtbFNjaGVtYVBDdXN0b21FcnJFeHQocGN0eHQsCisJCSAgICBYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNCwKKwkJICAgIFdYU19CQVNJQ19DQVNUIGVsZW1EZWNsLCBOVUxMLAorCQkgICAgIlRoZSB0eXBlIGRlZmluaXRpb24gJyVzJyB3YXMgIgorCQkgICAgImVpdGhlciByZWplY3RlZCBieSB0aGUgc3Vic3RpdHV0aW9uIGdyb3VwICIKKwkJICAgICJhZmZpbGlhdGlvbiAnJXMnLCBvciBub3QgdmFsaWRseSBkZXJpdmVkIGZyb20gaXRzIHR5cGUgIgorCQkgICAgImRlZmluaXRpb24gJyVzJyIsCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyQSwgdHlwZURlZiksCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyQiwgaGVhZCksCisJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnRRTmFtZSgmc3RyQywgV1hTX0VMRU1fVFlQRURFRihoZWFkKSkpOworCQlGUkVFX0FORF9OVUxMKHN0ckEpCisJCUZSRUVfQU5EX05VTEwoc3RyQikKKwkJRlJFRV9BTkRfTlVMTChzdHJDKQorCSAgICB9CisJfQorICAgIH0KKyAgICAvKgorICAgICogU1BFQyAoNSkgIklmIHRoZSB7dHlwZSBkZWZpbml0aW9ufSBvciB7dHlwZSBkZWZpbml0aW9ufSdzCisgICAgKiB7Y29udGVudCB0eXBlfQorICAgICogaXMgb3IgaXMgZGVyaXZlZCBmcm9tIElEIHRoZW4gdGhlcmUgbXVzdCBub3QgYmUgYSB7dmFsdWUgY29uc3RyYWludH0uCisgICAgKiBOb3RlOiBUaGUgdXNlIG9mIElEIGFzIGEgdHlwZSBkZWZpbml0aW9uIGZvciBlbGVtZW50cyBnb2VzIGJleW9uZAorICAgICogWE1MIDEuMCwgYW5kIHNob3VsZCBiZSBhdm9pZGVkIGlmIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzIGRlc2lyZWQiCisgICAgKi8KKyAgICBpZiAoKGVsZW1EZWNsLT52YWx1ZSAhPSBOVUxMKSAmJgorCSgoV1hTX0lTX1NJTVBMRSh0eXBlRGVmKSAmJgorCSAgeG1sU2NoZW1hSXNEZXJpdmVkRnJvbUJ1aWx0SW5UeXBlKHR5cGVEZWYsIFhNTF9TQ0hFTUFTX0lEKSkgfHwKKwkgKFdYU19JU19DT01QTEVYKHR5cGVEZWYpICYmCisJICBXWFNfSEFTX1NJTVBMRV9DT05URU5UKHR5cGVEZWYpICYmCisJICB4bWxTY2hlbWFJc0Rlcml2ZWRGcm9tQnVpbHRJblR5cGUodHlwZURlZi0+Y29udGVudFR5cGVEZWYsCisJICAgIFhNTF9TQ0hFTUFTX0lEKSkpKSB7CisKKwlyZXQgPSBYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNTsKKwl4bWxTY2hlbWFQQ3VzdG9tRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9FX1BST1BTX0NPUlJFQ1RfNSwKKwkgICAgV1hTX0JBU0lDX0NBU1QgZWxlbURlY2wsIE5VTEwsCisJICAgICJUaGUgdHlwZSBkZWZpbml0aW9uIChvciB0eXBlIGRlZmluaXRpb24ncyBjb250ZW50IHR5cGUpIGlzIG9yICIKKwkgICAgImlzIGRlcml2ZWQgZnJvbSBJRDsgdmFsdWUgY29uc3RyYWludHMgYXJlIG5vdCBhbGxvd2VkIGluICIKKwkgICAgImNvbmp1bmN0aW9uIHdpdGggc3VjaCBhIHR5cGUgZGVmaW5pdGlvbiIsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoZWxlbURlY2wtPnZhbHVlICE9IE5VTEwpIHsKKwlpbnQgdmNyZXQ7CisJeG1sTm9kZVB0ciBub2RlID0gTlVMTDsKKworCS8qCisJKiBTUEVDICgyKSAiSWYgdGhlcmUgaXMgYSB7dmFsdWUgY29uc3RyYWludH0sIHRoZSBjYW5vbmljYWwgbGV4aWNhbAorCSogcmVwcmVzZW50YXRpb24gb2YgaXRzIHZhbHVlIG11c3QgYmUg77+9dmFsaWTvv70gd2l0aCByZXNwZWN0IHRvIHRoZQorCSoge3R5cGUgZGVmaW5pdGlvbn0gYXMgZGVmaW5lZCBpbiBFbGVtZW50IERlZmF1bHQgVmFsaWQgKEltbWVkaWF0ZSkKKwkqICjvv70zLjMuNikuIgorCSovCisJaWYgKHR5cGVEZWYgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQRXJyKHBjdHh0LCBlbGVtRGVjbC0+bm9kZSwKKwkJWE1MX1NDSEVNQVBfSU5URVJOQUwsCisJCSJJbnRlcm5hbCBlcnJvcjogeG1sU2NoZW1hQ2hlY2tFbGVtUHJvcHNDb3JyZWN0LCAiCisJCSJ0eXBlIGlzIG1pc3NpbmcuLi4gc2tpcHBpbmcgdmFsaWRhdGlvbiBvZiAiCisJCSJ0aGUgdmFsdWUgY29uc3RyYWludCIsIE5VTEwsIE5VTEwpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisJaWYgKGVsZW1EZWNsLT5ub2RlICE9IE5VTEwpIHsKKwkgICAgaWYgKGVsZW1EZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fRklYRUQpCisJCW5vZGUgPSAoeG1sTm9kZVB0cikgeG1sSGFzUHJvcChlbGVtRGVjbC0+bm9kZSwKKwkJICAgIEJBRF9DQVNUICJmaXhlZCIpOworCSAgICBlbHNlCisJCW5vZGUgPSAoeG1sTm9kZVB0cikgeG1sSGFzUHJvcChlbGVtRGVjbC0+bm9kZSwKKwkJICAgIEJBRF9DQVNUICJkZWZhdWx0Iik7CisJfQorCXZjcmV0ID0geG1sU2NoZW1hUGFyc2VDaGVja0NPU1ZhbGlkRGVmYXVsdChwY3R4dCwgbm9kZSwKKwkgICAgdHlwZURlZiwgZWxlbURlY2wtPnZhbHVlLCAmKGVsZW1EZWNsLT5kZWZWYWwpKTsKKwlpZiAodmNyZXQgIT0gMCkgeworCSAgICBpZiAodmNyZXQgPCAwKSB7CisJCVBFUlJPUl9JTlQoInhtbFNjaGVtYUVsZW1DaGVja1ZhbENvbnN0ciIsCisJCSAgICAiZmFpbGVkIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZSBjb25zdHJhaW50IG9mIGFuICIKKwkJICAgICJlbGVtZW50IGRlY2xhcmF0aW9uIik7CisJCXJldHVybiAoLTEpOworCSAgICB9CisJICAgIHJldHVybiAodmNyZXQpOworCX0KKyAgICB9CisKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tFbGVtU3Vic3RHcm91cDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgcGFyc2VyIGNvbnRleHQKKyAqIEBkZWNsOiB0aGUgZWxlbWVudCBkZWNsYXJhdGlvbgorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlCisgKgorICogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OgorICogU3Vic3RpdHV0aW9uIEdyb3VwIChjb3MtZXF1aXYtY2xhc3MpCisgKgorICogSW4gTGlieG1sMiB0aGUgc3Vic3QuIGdyb3VwcyB3aWxsIGJlIHByZWNvbXB1dGVkLCBpbiB0ZXJtcyBvZiB0aGF0CisgKiBhIGxpc3Qgd2lsbCBiZSBidWlsdCBmb3IgZWFjaCBzdWJzdC4gZ3JvdXAgaGVhZCwgaG9sZGluZyBhbGwgZGlyZWN0CisgKiByZWZlcmVudHMgdG8gdGhpcyBoZWFkLgorICogTk9URSB0aGF0IHRoaXMgZnVuY3Rpb24gbmVlZHM6CisgKiAgIDEuIGNpcmN1bGFyIHN1YnN0LiBncm91cHMgdG8gYmUgY2hlY2tlZCBiZWZvcmVoYW5kCisgKiAgIDIuIHRoZSBkZWNsYXJhdGlvbidzIHR5cGUgdG8gYmUgZGVyaXZlZCBmcm9tIHRoZSBoZWFkJ3MgdHlwZQorICoKKyAqIFNUQVRVUzoKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFDaGVja0VsZW1TdWJzdEdyb3VwKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKwkJCSAgICAgeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtRGVjbCkKK3sKKyAgICBpZiAoKFdYU19TVUJTVF9IRUFEKGVsZW1EZWNsKSA9PSBOVUxMKSB8fAorCS8qIFNQRUMgKDEpICJJdHMge2Fic3RyYWN0fSBpcyBmYWxzZS4iICovCisJKGVsZW1EZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fQUJTVFJBQ1QpKQorCXJldHVybjsKKyAgICB7CisJeG1sU2NoZW1hRWxlbWVudFB0ciBoZWFkOworCXhtbFNjaGVtYVR5cGVQdHIgaGVhZFR5cGUsIHR5cGU7CisJaW50IHNldCwgbWV0aFNldDsKKwkvKgorCSogU1BFQyAoMikgIkl0IGlzIHZhbGlkbHkgc3Vic3RpdHV0YWJsZSBmb3IgSEVBRCBzdWJqZWN0IHRvIEhFQUQncworCSoge2Rpc2FsbG93ZWQgc3Vic3RpdHV0aW9uc30gYXMgdGhlIGJsb2NraW5nIGNvbnN0cmFpbnQsIGFzIGRlZmluZWQgaW4KKwkqIFN1YnN0aXR1dGlvbiBHcm91cCBPSyAoVHJhbnNpdGl2ZSkgKO+/vTMuMy42KS4iCisJKi8KKwlmb3IgKGhlYWQgPSBXWFNfU1VCU1RfSEVBRChlbGVtRGVjbCk7IGhlYWQgIT0gTlVMTDsKKwkgICAgaGVhZCA9IFdYU19TVUJTVF9IRUFEKGhlYWQpKSB7CisJICAgIHNldCA9IDA7CisJICAgIG1ldGhTZXQgPSAwOworCSAgICAvKgorCSAgICAqIFRoZSBibG9ja2luZyBjb25zdHJhaW50cy4KKwkgICAgKi8KKwkgICAgaWYgKGhlYWQtPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19TVUJTVElUVVRJT04pCisJCWNvbnRpbnVlOworCSAgICBoZWFkVHlwZSA9IGhlYWQtPnN1YnR5cGVzOworCSAgICB0eXBlID0gZWxlbURlY2wtPnN1YnR5cGVzOworCSAgICBpZiAoaGVhZFR5cGUgPT0gdHlwZSkKKwkJZ290byBhZGRfbWVtYmVyOworCSAgICBpZiAoaGVhZC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX1JFU1RSSUNUSU9OKQorCQlzZXQgfD0gWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTjsKKwkgICAgaWYgKGhlYWQtPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9CTE9DS19FWFRFTlNJT04pCisJCXNldCB8PSBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTjsKKwkgICAgLyoKKwkgICAgKiBTUEVDOiBTdWJzdGl0dXRpb24gR3JvdXAgT0sgKFRyYW5zaXRpdmUpICgyLjMpCisJICAgICogIlRoZSBzZXQgb2YgYWxsIHtkZXJpdmF0aW9uIG1ldGhvZH1zIGludm9sdmVkIGluIHRoZQorCSAgICAqIGRlcml2YXRpb24gb2YgRCdzIHt0eXBlIGRlZmluaXRpb259IGZyb20gQydzIHt0eXBlIGRlZmluaXRpb259CisJICAgICogZG9lcyBub3QgaW50ZXJzZWN0IHdpdGggdGhlIHVuaW9uIG9mIHRoZSBibG9ja2luZyBjb25zdHJhaW50LAorCSAgICAqIEMncyB7cHJvaGliaXRlZCBzdWJzdGl0dXRpb25zfSAoaWYgQyBpcyBjb21wbGV4LCBvdGhlcndpc2UgdGhlCisJICAgICogZW1wdHkgc2V0KSBhbmQgdGhlIHtwcm9oaWJpdGVkIHN1YnN0aXR1dGlvbnN9IChyZXNwZWN0aXZlbHkgdGhlCisJICAgICogZW1wdHkgc2V0KSBvZiBhbnkgaW50ZXJtZWRpYXRlIHt0eXBlIGRlZmluaXRpb259cyBpbiB0aGUKKwkgICAgKiBkZXJpdmF0aW9uIG9mIEQncyB7dHlwZSBkZWZpbml0aW9ufSBmcm9tIEMncyB7dHlwZSBkZWZpbml0aW9ufS4iCisJICAgICovCisJICAgIC8qCisJICAgICogT1BUSU1JWkUgVE9ETzogT3B0aW1pemUgdGhpcyBhIGJpdCwgc2luY2UsIGlmIHRyYXZlcnNpbmcgdGhlCisJICAgICogc3Vic3QuaGVhZCBheGlzLCB0aGUgbWV0aFNldCBkb2VzIG5vdCBuZWVkIHRvIGJlIGNvbXB1dGVkIGZvcgorCSAgICAqIHRoZSBmdWxsIGRlcHRoIG92ZXIgYW5kIG92ZXIuCisJICAgICovCisJICAgIC8qCisJICAgICogVGhlIHNldCBvZiBhbGwge2Rlcml2YXRpb24gbWV0aG9kfXMgaW52b2x2ZWQgaW4gdGhlIGRlcml2YXRpb24KKwkgICAgKi8KKwkgICAgd2hpbGUgKCh0eXBlICE9IE5VTEwpICYmICh0eXBlICE9IGhlYWRUeXBlKSkgeworCQlpZiAoKFdYU19JU19FWFRFTlNJT04odHlwZSkpICYmCisJCSAgICAoKG1ldGhTZXQgJiBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OKSA9PSAwKSkKKwkJICAgIG1ldGhTZXQgfD0gWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT047CisKKwkJaWYgKFdYU19JU19SRVNUUklDVElPTih0eXBlKSAmJgorCQkgICAgKChtZXRoU2V0ICYgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTikgPT0gMCkpCisJCSAgICBtZXRoU2V0IHw9IFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT047CisKKwkJdHlwZSA9IHR5cGUtPmJhc2VUeXBlOworCSAgICB9CisJICAgIC8qCisJICAgICogVGhlIHtwcm9oaWJpdGVkIHN1YnN0aXR1dGlvbnN9IG9mIGFsbCBpbnRlcm1lZGlhdGUgdHlwZXMgKworCSAgICAqIHRoZSBoZWFkJ3MgdHlwZS4KKwkgICAgKi8KKwkgICAgdHlwZSA9IGVsZW1EZWNsLT5zdWJ0eXBlcy0+YmFzZVR5cGU7CisJICAgIHdoaWxlICh0eXBlICE9IE5VTEwpIHsKKwkJaWYgKFdYU19JU19DT01QTEVYKHR5cGUpKSB7CisJCSAgICBpZiAoKHR5cGUtPmZsYWdzICYKKwkJCSAgICBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX0VYVEVOU0lPTikgJiYKKwkJCSgoc2V0ICYgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT04pID09IDApKQorCQkgICAgc2V0IHw9IFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OOworCQkgICAgaWYgKCh0eXBlLT5mbGFncyAmCisJCQkgICAgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTikgJiYKKwkJCSgoc2V0ICYgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTikgPT0gMCkpCisJCSAgICBzZXQgfD0gWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19SRVNUUklDVElPTjsKKwkJfSBlbHNlCisJCSAgICBicmVhazsKKwkJaWYgKHR5cGUgPT0gaGVhZFR5cGUpCisJCSAgICBicmVhazsKKwkJdHlwZSA9IHR5cGUtPmJhc2VUeXBlOworCSAgICB9CisJICAgIGlmICgoc2V0ICE9IDApICYmCisJCSgoKHNldCAmIFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OKSAmJgorCQkobWV0aFNldCAmIFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfRVhURU5TSU9OKSkgfHwKKwkJKChzZXQgJiBYTUxfU0NIRU1BU19UWVBFX0JMT0NLX1JFU1RSSUNUSU9OKSAmJgorCQkobWV0aFNldCAmIFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT04pKSkpIHsKKwkJY29udGludWU7CisJICAgIH0KK2FkZF9tZW1iZXI6CisJICAgIHhtbFNjaGVtYUFkZEVsZW1lbnRTdWJzdGl0dXRpb25NZW1iZXIoY3R4dCwgaGVhZCwgZWxlbURlY2wpOworCSAgICBpZiAoKGhlYWQtPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9TVUJTVF9HUk9VUF9IRUFEKSA9PSAwKQorCQloZWFkLT5mbGFncyB8PSBYTUxfU0NIRU1BU19FTEVNX1NVQlNUX0dST1VQX0hFQUQ7CisJfQorICAgIH0KK30KKworI2lmZGVmIFdYU19FTEVNX0RFQ0xfQ09OU19FTkFCTEVEIC8qIGVuYWJsZSB3aGVuIGZpbmlzaGVkICovCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrRWxlbWVudERlY2xDb21wb25lbnQKKyAqIEBwY3R4dDogdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQGN0eHRDb21wb25lbnQ6IHRoZSBjb250ZXh0IGNvbXBvbmVudCAoYW4gZWxlbWVudCBkZWNsYXJhdGlvbikKKyAqIEBjdHh0UGFydGljbGU6IHRoZSBmaXJzdCBwYXJ0aWNsZSBvZiB0aGUgY29udGV4dCBjb21wb25lbnQKKyAqIEBzZWFyY2hQYXJ0aWNsZTogdGhlIGVsZW1lbnQgZGVjbGFyYXRpb24gcGFydGljbGUgdG8gYmUgYW5hbHlzZWQKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IEVsZW1lbnQgRGVjbGFyYXRpb25zIENvbnNpc3RlbnQKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tFbGVtZW50RGVjbENvbnNpc3RlbnQoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCQkgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGN0eHRDb21wb25lbnQsCisJCQkJICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIGN0eHRQYXJ0aWNsZSwKKwkJCQkgICAgeG1sU2NoZW1hUGFydGljbGVQdHIgc2VhcmNoUGFydGljbGUsCisJCQkJICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIGN1clBhcnRpY2xlLAorCQkJCSAgICBpbnQgc2VhcmNoKQoreworICAgIHJldHVybigwKTsKKworICAgIGludCByZXQgPSAwOworICAgIHhtbFNjaGVtYVBhcnRpY2xlUHRyIGN1ciA9IGN1clBhcnRpY2xlOworICAgIGlmIChjdXJQYXJ0aWNsZSA9PSBOVUxMKSB7CisJcmV0dXJuKDApOworICAgIH0KKyAgICBpZiAoV1hTX1BBUlRJQ0xFX1RFUk0oY3VyUGFydGljbGUpID09IE5VTEwpIHsKKwkvKgorCSogSnVzdCByZXR1cm4gaW4gdGhpcyBjYXNlLiBBIG1pc3NpbmcgInRlcm0iIG9mIHRoZSBwYXJ0aWNsZQorCSogbWlnaHQgYXJpc2UgZHVlIHRvIGFuIGludmFsaWQgInRlcm0iIGNvbXBvbmVudC4KKwkqLworCXJldHVybigwKTsKKyAgICB9CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJc3dpdGNoIChXWFNfUEFSVElDTEVfVEVSTShjdXIpLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0FOWToKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJCWlmIChzZWFyY2ggPT0gMCkgeworCQkgICAgcmV0ID0geG1sU2NoZW1hQ2hlY2tFbGVtZW50RGVjbENvbnNpc3RlbnQocGN0eHQsCisJCQljdHh0Q29tcG9uZW50LCBjdHh0UGFydGljbGUsIGN1ciwgY3R4dFBhcnRpY2xlLCAxKTsKKwkJICAgIGlmIChyZXQgIT0gMCkKKwkJCXJldHVybihyZXQpOworCQl9IGVsc2UgeworCQkgICAgeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtID0KKwkJCVdYU19FTEVNX0NBU1QoV1hTX1BBUlRJQ0xFX1RFUk0oY3VyKSk7CisJCSAgICAvKgorCQkgICAgKiBTUEVDIEVsZW1lbnQgRGVjbGFyYXRpb25zIENvbnNpc3RlbnQ6CisJCSAgICAqICJJZiB0aGUge3BhcnRpY2xlc30gY29udGFpbnMsIGVpdGhlciBkaXJlY3RseSwKKwkJICAgICogaW5kaXJlY3RseSAodGhhdCBpcywgd2l0aGluIHRoZSB7cGFydGljbGVzfSBvZiBhCisJCSAgICAqIGNvbnRhaW5lZCBtb2RlbCBncm91cCwgcmVjdXJzaXZlbHkpIG9yIO+/vWltcGxpY2l0bHnvv70KKwkJICAgICogdHdvIG9yIG1vcmUgZWxlbWVudCBkZWNsYXJhdGlvbiBwYXJ0aWNsZXMgd2l0aAorCQkgICAgKiB0aGUgc2FtZSB7bmFtZX0gYW5kIHt0YXJnZXQgbmFtZXNwYWNlfSwgdGhlbgorCQkgICAgKiBhbGwgdGhlaXIgdHlwZSBkZWZpbml0aW9ucyBtdXN0IGJlIHRoZSBzYW1lCisJCSAgICAqIHRvcC1sZXZlbCBkZWZpbml0aW9uIFsuLi5dIgorCQkgICAgKi8KKwkJICAgIGlmICh4bWxTdHJFcXVhbChXWFNfUEFSVElDTEVfVEVSTV9BU19FTEVNKGN1ciktPm5hbWUsCisJCQkgICAgV1hTX1BBUlRJQ0xFX1RFUk1fQVNfRUxFTShzZWFyY2hQYXJ0aWNsZSktPm5hbWUpICYmCisJCQl4bWxTdHJFcXVhbChXWFNfUEFSVElDTEVfVEVSTV9BU19FTEVNKGN1ciktPnRhcmdldE5hbWVzcGFjZSwKKwkJCSAgICBXWFNfUEFSVElDTEVfVEVSTV9BU19FTEVNKHNlYXJjaFBhcnRpY2xlKS0+dGFyZ2V0TmFtZXNwYWNlKSkKKwkJICAgIHsKKwkJCXhtbENoYXIgKnN0ckEgPSBOVUxMLCAqc3RyQiA9IE5VTEw7CisKKwkJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCQkJICAgIC8qIFRPRE86IGVycm9yIGNvZGUgKi8KKwkJCSAgICBYTUxfU0NIRU1BUF9DT1NfTk9OQU1CSUcsCisJCQkgICAgV1hTX0lURU1fTk9ERShjdXIpLCBOVUxMLAorCQkJICAgICJJbiB0aGUgY29udGVudCBtb2RlbCBvZiAlcywgdGhlcmUgYXJlIG11bHRpcGxlICIKKwkJCSAgICAiZWxlbWVudCBkZWNsYXJhdGlvbnMgZm9yICclcycgd2l0aCBkaWZmZXJlbnQgIgorCQkJICAgICJ0eXBlIGRlZmluaXRpb25zIiwKKwkJCSAgICB4bWxTY2hlbWFHZXRDb21wb25lbnREZXNpZ25hdGlvbigmc3RyQSwKKwkJCQljdHh0Q29tcG9uZW50KSwKKwkJCSAgICB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyQiwKKwkJCQlXWFNfUEFSVElDTEVfVEVSTV9BU19FTEVNKGN1ciktPnRhcmdldE5hbWVzcGFjZSwKKwkJCQlXWFNfUEFSVElDTEVfVEVSTV9BU19FTEVNKGN1ciktPm5hbWUpKTsKKwkJCUZSRUVfQU5EX05VTEwoc3RyQSk7CisJCQlGUkVFX0FORF9OVUxMKHN0ckIpOworCQkJcmV0dXJuKFhNTF9TQ0hFTUFQX0NPU19OT05BTUJJRyk7CisJCSAgICB9CisJCX0KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFOiB7CisJCWJyZWFrOworCQl9CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0NIT0lDRTp7CisJCS8qCisJCXhtbFNjaGVtYVRyZWVJdGVtUHRyIHN1YjsKKworCQlzdWIgPSBXWFNfUEFSVElDTEVfVEVSTShwYXJ0aWNsZSktPmNoaWxkcmVuOyAgKHhtbFNjaGVtYVBhcnRpY2xlUHRyKQorCQl3aGlsZSAoc3ViICE9IE5VTEwpIHsKKwkJICAgIHJldCA9IHhtbFNjaGVtYUNoZWNrRWxlbWVudERlY2xDb25zaXN0ZW50KHBjdHh0LCBjdHh0Q29tcG9uZW50LAorCQkJY3R4dFBhcnRpY2xlLCBjdHh0RWxlbSk7CisJCSAgICBpZiAocmV0ICE9IDApCisJCQlyZXR1cm4ocmV0KTsKKwkJICAgIHN1YiA9IHN1Yi0+bmV4dDsKKwkJfQorCQkqLworCQlicmVhazsKKwkJfQorCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9BTEw6CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9HUk9VUDoKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCXhtbFNjaGVtYUludGVybmFsRXJyMihBQ1RYVF9DQVNUIHBjdHh0LAorCQkgICAgInhtbFNjaGVtYUNoZWNrRWxlbWVudERlY2xDb25zaXN0ZW50IiwKKwkJICAgICJmb3VuZCB1bmV4cGVjdGVkIHRlcm0gb2YgdHlwZSAnJXMnIGluIGNvbnRlbnQgbW9kZWwiLAorCQkgICAgV1hTX0lURU1fVFlQRV9OQU1FKFdYU19QQVJUSUNMRV9URVJNKGN1cikpLCBOVUxMKTsKKwkJcmV0dXJuKC0xKTsKKwl9CisJY3VyID0gKHhtbFNjaGVtYVBhcnRpY2xlUHRyKSBjdXItPm5leHQ7CisgICAgfQorCitleGl0OgorICAgIHJldHVybihyZXQpOworfQorI2VuZGlmCisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tFbGVtZW50RGVjbENvbXBvbmVudAorICogQGl0ZW06ICBhbiBzY2hlbWEgZWxlbWVudCBkZWNsYXJhdGlvbi9wYXJ0aWNsZQorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlCisgKgorICogVmFsaWRhdGVzIHRoZSB2YWx1ZSBjb25zdHJhaW50cyBvZiBhbiBlbGVtZW50IGRlY2xhcmF0aW9uLgorICogQWRkcyBzdWJzdGl0dXRpb24gZ3JvdXAgbWVtYmVycy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNoZWNrRWxlbWVudERlY2xDb21wb25lbnQoeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtRGVjbCwKKwkJCQkgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQpCit7CisgICAgaWYgKGVsZW1EZWNsID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmIChlbGVtRGVjbC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQpCisJcmV0dXJuOworICAgIGVsZW1EZWNsLT5mbGFncyB8PSBYTUxfU0NIRU1BU19FTEVNX0lOVEVSTkFMX0NIRUNLRUQ7CisgICAgaWYgKHhtbFNjaGVtYUNoZWNrRWxlbVByb3BzQ29ycmVjdChjdHh0LCBlbGVtRGVjbCkgPT0gMCkgeworCS8qCisJKiBBZGRzIHN1YnN0aXR1dGlvbiBncm91cCBtZW1iZXJzLgorCSovCisJeG1sU2NoZW1hQ2hlY2tFbGVtU3Vic3RHcm91cChjdHh0LCBlbGVtRGVjbCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNjaGVtYVJlc29sdmVNb2RlbEdyb3VwUGFydGljbGVSZWZlcmVuY2VzOgorICogQHBhcnRpY2xlOiAgYSBwYXJ0aWNsZSBjb21wb25lbnQKKyAqIEBjdHh0OiAgYSBwYXJzZXIgY29udGV4dAorICoKKyAqIFJlc29sdmVzIHJlZmVyZW5jZXMgb2YgYSBtb2RlbCBncm91cCdzIHtwYXJ0aWNsZXN9IHRvCisgKiBtb2RlbCBncm91cCBkZWZpbml0aW9ucyBhbmQgdG8gZWxlbWVudCBkZWNsYXJhdGlvbnMuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFSZXNvbHZlTW9kZWxHcm91cFBhcnRpY2xlUmVmZXJlbmNlcygKKyAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgeG1sU2NoZW1hTW9kZWxHcm91cFB0ciBtZykKK3sKKyAgICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciBwYXJ0aWNsZSA9IFdYU19NT0RFTEdST1VQX1BBUlRJQ0xFKG1nKTsKKyAgICB4bWxTY2hlbWFRTmFtZVJlZlB0ciByZWY7CisgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIHJlZkl0ZW07CisKKyAgICAvKgorICAgICogVVJHRU5UIFRPRE86IFRlc3QgdGhpcy4KKyAgICAqLworICAgIHdoaWxlIChwYXJ0aWNsZSAhPSBOVUxMKSB7CisJaWYgKChXWFNfUEFSVElDTEVfVEVSTShwYXJ0aWNsZSkgPT0gTlVMTCkgfHwKKwkgICAgKChXWFNfUEFSVElDTEVfVEVSTShwYXJ0aWNsZSkpLT50eXBlICE9CisJCVhNTF9TQ0hFTUFfRVhUUkFfUU5BTUVSRUYpKQorCXsKKwkgICAgZ290byBuZXh0X3BhcnRpY2xlOworCX0KKwlyZWYgPSBXWFNfUU5BTUVfQ0FTVCBXWFNfUEFSVElDTEVfVEVSTShwYXJ0aWNsZSk7CisJLyoKKwkqIFJlc29sdmUgdGhlIHJlZmVyZW5jZS4KKwkqIE5VTEwgdGhlIHt0ZXJtfSBieSBkZWZhdWx0LgorCSovCisJcGFydGljbGUtPmNoaWxkcmVuID0gTlVMTDsKKworCXJlZkl0ZW0gPSB4bWxTY2hlbWFHZXROYW1lZENvbXBvbmVudChjdHh0LT5zY2hlbWEsCisJICAgIHJlZi0+aXRlbVR5cGUsIHJlZi0+bmFtZSwgcmVmLT50YXJnZXROYW1lc3BhY2UpOworCWlmIChyZWZJdGVtID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hUFJlc0NvbXBBdHRyRXJyKGN0eHQsIFhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFLAorCQlOVUxMLCBXWFNfSVRFTV9OT0RFKHBhcnRpY2xlKSwgInJlZiIsIHJlZi0+bmFtZSwKKwkJcmVmLT50YXJnZXROYW1lc3BhY2UsIHJlZi0+aXRlbVR5cGUsIE5VTEwpOworCSAgICAvKiBUT0RPOiByZW1vdmUgdGhlIHBhcnRpY2xlLiAqLworCSAgICBnb3RvIG5leHRfcGFydGljbGU7CisJfQorCWlmIChyZWZJdGVtLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9HUk9VUCkgeworCSAgICBpZiAoV1hTX01PREVMR1JPVVBERUZfTU9ERUwocmVmSXRlbSkgPT0gTlVMTCkKKwkJLyogVE9ETzogcmVtb3ZlIHRoZSBwYXJ0aWNsZS4gKi8KKwkJZ290byBuZXh0X3BhcnRpY2xlOworCSAgICAvKgorCSAgICAqIE5PVEUgdGhhdCB3ZSB3aWxsIGFzc2lnbiB0aGUgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbgorCSAgICAqIGl0c2VsZiB0byB0aGUgInRlcm0iIG9mIHRoZSBwYXJ0aWNsZS4gVGhpcyB3aWxsIGVhc2UKKwkgICAgKiB0aGUgY2hlY2sgZm9yIGNpcmN1bGFyIG1vZGVsIGdyb3VwIGRlZmluaXRpb25zLiBBZnRlcgorCSAgICAqIHRoYXQgdGhlICJ0ZXJtIiB3aWxsIGJlIGFzc2lnbmVkIHRoZSBtb2RlbCBncm91cCBvZiB0aGUKKwkgICAgKiBtb2RlbCBncm91cCBkZWZpbml0aW9uLgorCSAgICAqLworCSAgICBpZiAoKFdYU19NT0RFTEdST1VQREVGX01PREVMKHJlZkl0ZW0pKS0+dHlwZSA9PQorCQkgICAgWE1MX1NDSEVNQV9UWVBFX0FMTCkgeworCQkvKgorCQkqIFNQRUMgY29zLWFsbC1saW1pdGVkICgxKQorCQkqIFNQRUMgY29zLWFsbC1saW1pdGVkICgxLjIpCisJCSogIkl0IGFwcGVhcnMgb25seSBhcyB0aGUgdmFsdWUgb2Ygb25lIG9yIGJvdGggb2YgdGhlCisJCSogZm9sbG93aW5nIHByb3BlcnRpZXM6IgorCQkqICgxLjEpICJ0aGUge21vZGVsIGdyb3VwfSBwcm9wZXJ0eSBvZiBhIG1vZGVsIGdyb3VwCisJCSogICAgICAgIGRlZmluaXRpb24uIgorCQkqICgxLjIpICJ0aGUge3Rlcm19IHByb3BlcnR5IG9mIGEgcGFydGljbGUgWy4uLiBvZl0gdGhlICIKKwkJKiB7Y29udGVudCB0eXBlfSBvZiBhIGNvbXBsZXggdHlwZSBkZWZpbml0aW9uLiIKKwkJKi8KKwkJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgY3R4dCwKKwkJICAgIC8qIFRPRE86IGVycm9yIGNvZGUgKi8KKwkJICAgIFhNTF9TQ0hFTUFQX0NPU19BTExfTElNSVRFRCwKKwkJICAgIFdYU19JVEVNX05PREUocGFydGljbGUpLCBOVUxMLAorCQkgICAgIkEgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbiBpcyByZWZlcmVuY2VkLCBidXQgIgorCQkgICAgIml0IGNvbnRhaW5zIGFuICdhbGwnIG1vZGVsIGdyb3VwLCB3aGljaCAiCisJCSAgICAiY2Fubm90IGJlIGNvbnRhaW5lZCBieSBtb2RlbCBncm91cHMiLAorCQkgICAgTlVMTCwgTlVMTCk7CisJCS8qIFRPRE86IHJlbW92ZSB0aGUgcGFydGljbGUuICovCisJCWdvdG8gbmV4dF9wYXJ0aWNsZTsKKwkgICAgfQorCSAgICBwYXJ0aWNsZS0+Y2hpbGRyZW4gPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIpIHJlZkl0ZW07CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiBUT0RPOiBBcmUgcmVmZXJlbmNlZCBlbGVtZW50IGRlY2xhcmF0aW9ucyB0aGUgb25seQorCSAgICAqIG90aGVyIGNvbXBvbmVudHMgd2UgZXhwZWN0IGhlcmU/CisJICAgICovCisJICAgIHBhcnRpY2xlLT5jaGlsZHJlbiA9ICh4bWxTY2hlbWFUcmVlSXRlbVB0cikgcmVmSXRlbTsKKwl9CituZXh0X3BhcnRpY2xlOgorCXBhcnRpY2xlID0gV1hTX1BUQ19DQVNUIHBhcnRpY2xlLT5uZXh0OworICAgIH0KK30KKworc3RhdGljIGludAoreG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwoeG1sU2NoZW1hVmFsUHRyIHgsCisJCSAgICAgICB4bWxTY2hlbWFWYWxQdHIgeSkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR4LCB0eSwgcHR4LCBwdHk7CisgICAgaW50IHJldDsKKworICAgIHdoaWxlICh4ICE9IE5VTEwpIHsKKwkvKiBTYW1lIHR5cGVzLiAqLworCXR4ID0geG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoeG1sU2NoZW1hR2V0VmFsVHlwZSh4KSk7CisJdHkgPSB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZSh4bWxTY2hlbWFHZXRWYWxUeXBlKHkpKTsKKwlwdHggPSB4bWxTY2hlbWFHZXRQcmltaXRpdmVUeXBlKHR4KTsKKwlwdHkgPSB4bWxTY2hlbWFHZXRQcmltaXRpdmVUeXBlKHR5KTsKKwkvKgorCSogKDEpIGlmIGEgZGF0YXR5cGUgVCcgaXMg77+9ZGVyaXZlZO+/vSBieSDvv71yZXN0cmljdGlvbu+/vSBmcm9tIGFuCisJKiBhdG9taWMgZGF0YXR5cGUgVCB0aGVuIHRoZSDvv712YWx1ZSBzcGFjZe+/vSBvZiBUJyBpcyBhIHN1YnNldCBvZgorCSogdGhlIO+/vXZhbHVlIHNwYWNl77+9IG9mIFQuICovCisJLyoKKwkqICgyKSBpZiBkYXRhdHlwZXMgVCcgYW5kIFQnJyBhcmUg77+9ZGVyaXZlZO+/vSBieSDvv71yZXN0cmljdGlvbu+/vQorCSogZnJvbSBhIGNvbW1vbiBhdG9taWMgYW5jZXN0b3IgVCB0aGVuIHRoZSDvv712YWx1ZSBzcGFjZe+/vXMgb2YgVCcKKwkqIGFuZCBUJycgbWF5IG92ZXJsYXAuCisJKi8KKwlpZiAocHR4ICE9IHB0eSkKKwkgICAgcmV0dXJuKDApOworCS8qCisJKiBXZSBhc3N1bWUgY29tcHV0ZWQgdmFsdWVzIHRvIGJlIG5vcm1hbGl6ZWQsIHNvIGRvIGEgZmFzdAorCSogc3RyaW5nIGNvbXBhcmlzb24gZm9yIHN0cmluZyBiYXNlZCB0eXBlcy4KKwkqLworCWlmICgocHR4LT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19TVFJJTkcpIHx8CisJICAgIFdYU19JU19BTllfU0lNUExFX1RZUEUocHR4KSkgeworCSAgICBpZiAoISB4bWxTdHJFcXVhbCgKKwkJeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyh4KSwKKwkJeG1sU2NoZW1hVmFsdWVHZXRBc1N0cmluZyh5KSkpCisJCXJldHVybiAoMCk7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwKAorCQl4LCBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkUsCisJCXksIFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRSk7CisJICAgIGlmIChyZXQgPT0gLTIpCisJCXJldHVybigtMSk7CisJICAgIGlmIChyZXQgIT0gMCkKKwkJcmV0dXJuKDApOworCX0KKwkvKgorCSogTGlzdHMuCisJKi8KKwl4ID0geG1sU2NoZW1hVmFsdWVHZXROZXh0KHgpOworCWlmICh4ICE9IE5VTEwpIHsKKwkgICAgeSA9IHhtbFNjaGVtYVZhbHVlR2V0TmV4dCh5KTsKKwkgICAgaWYgKHkgPT0gTlVMTCkKKwkJcmV0dXJuICgwKTsKKwl9IGVsc2UgaWYgKHhtbFNjaGVtYVZhbHVlR2V0TmV4dCh5KSAhPSBOVUxMKQorCSAgICByZXR1cm4gKDApOworCWVsc2UKKwkgICAgcmV0dXJuICgxKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFSZXNvbHZlQXR0clVzZVJlZmVyZW5jZXM6CisgKiBAaXRlbTogIGFuIGF0dHJpYnV0ZSB1c2UKKyAqIEBjdHh0OiAgYSBwYXJzZXIgY29udGV4dAorICoKKyAqIFJlc29sdmVzIHRoZSByZWZlcmVuY2VkIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbi4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hUmVzb2x2ZUF0dHJVc2VSZWZlcmVuY2VzKHhtbFNjaGVtYUF0dHJpYnV0ZVVzZVB0ciBhdXNlLAorCQkJCSAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoYXVzZSA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGlmICgoYXVzZS0+YXR0ckRlY2wgPT0gTlVMTCkgfHwKKwkoYXVzZS0+YXR0ckRlY2wtPnR5cGUgIT0gWE1MX1NDSEVNQV9FWFRSQV9RTkFNRVJFRikpCisJcmV0dXJuKDApOworCisgICAgeworCXhtbFNjaGVtYVFOYW1lUmVmUHRyIHJlZiA9IFdYU19RTkFNRV9DQVNUIGF1c2UtPmF0dHJEZWNsOworCisJLyoKKwkqIFRPRE86IEV2YWx1YXRlLCB3aGF0IGVycm9ycyBjb3VsZCBvY2N1ciBpZiB0aGUgZGVjbGFyYXRpb24gaXMgbm90CisJKiBmb3VuZC4KKwkqLworCWF1c2UtPmF0dHJEZWNsID0geG1sU2NoZW1hR2V0QXR0cmlidXRlRGVjbChjdHh0LT5zY2hlbWEsCisJICAgIHJlZi0+bmFtZSwgcmVmLT50YXJnZXROYW1lc3BhY2UpOworICAgICAgICBpZiAoYXVzZS0+YXR0ckRlY2wgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFQUmVzQ29tcEF0dHJFcnIoY3R4dCwKKwkgICAgCVhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFLAorCQlXWFNfQkFTSUNfQ0FTVCBhdXNlLCBhdXNlLT5ub2RlLAorCQkicmVmIiwgcmVmLT5uYW1lLCByZWYtPnRhcmdldE5hbWVzcGFjZSwKKwkJWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURSwgTlVMTCk7CisgICAgICAgICAgICByZXR1cm4oY3R4dC0+ZXJyKTs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNoZWNrQXR0clVzZVByb3BzQ29ycmVjdDoKKyAqIEBjdHh0OiAgYSBwYXJzZXIgY29udGV4dAorICogQHVzZTogIGFuIGF0dHJpYnV0ZSB1c2UKKyAqCisgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6CisgKiBBdHRyaWJ1dGUgVXNlIENvcnJlY3QgKGF1LXByb3BzLWNvcnJlY3QpCisgKgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0F0dHJVc2VQcm9wc0NvcnJlY3QoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJICAgICB4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQdHIgdXNlKQoreworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAodXNlID09IE5VTEwpKQorCXJldHVybigtMSk7CisgICAgaWYgKCh1c2UtPmRlZlZhbHVlID09IE5VTEwpIHx8IChXWFNfQVRUUlVTRV9ERUNMKHVzZSkgPT0gTlVMTCkgfHwKKwkoKFdYU19BVFRSVVNFX0RFQ0wodXNlKSktPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURSkpCisJcmV0dXJuKDApOworCisgICAgLyoKKyAgICAqIFNQRUMgYXUtcHJvcHMtY29ycmVjdCAoMSkKKyAgICAqICJUaGUgdmFsdWVzIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIGF0dHJpYnV0ZSB1c2UgbXVzdCBiZSBhcworICAgICogZGVzY3JpYmVkIGluIHRoZSBwcm9wZXJ0eSB0YWJsZWF1IGluIFRoZSBBdHRyaWJ1dGUgVXNlIFNjaGVtYQorICAgICogQ29tcG9uZW50ICjvv70zLjUuMSksIG1vZHVsbyB0aGUgaW1wYWN0IG9mIE1pc3NpbmcKKyAgICAqIFN1Yi1jb21wb25lbnRzICjvv701LjMpLiIKKyAgICAqLworCisgICAgaWYgKCgoV1hTX0FUVFJVU0VfREVDTCh1c2UpKS0+ZGVmVmFsdWUgIT0gTlVMTCkgJiYKKwkoKFdYU19BVFRSVVNFX0RFQ0wodXNlKSktPmZsYWdzICYgWE1MX1NDSEVNQVNfQVRUUl9GSVhFRCkgJiYKKyAgICAgICAgKCh1c2UtPmZsYWdzICYgWE1MX1NDSEVNQV9BVFRSX1VTRV9GSVhFRCkgPT0gMCkpCisgICAgeworCXhtbFNjaGVtYVBDdXN0b21FcnIoY3R4dCwKKwkgICAgWE1MX1NDSEVNQVBfQVVfUFJPUFNfQ09SUkVDVF8yLAorCSAgICBXWFNfQkFTSUNfQ0FTVCB1c2UsIE5VTEwsCisJICAgICJUaGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uIGhhcyBhICdmaXhlZCcgdmFsdWUgY29uc3RyYWludCAiCisJICAgICIsIHRodXMgdGhlIGF0dHJpYnV0ZSB1c2UgbXVzdCBhbHNvIGhhdmUgYSAnZml4ZWQnIHZhbHVlICIKKwkgICAgImNvbnN0cmFpbnQiLAorCSAgICBOVUxMKTsKKwlyZXR1cm4oY3R4dC0+ZXJyKTsKKyAgICB9CisgICAgLyoKKyAgICAqIENvbXB1dGUgYW5kIGNoZWNrIHRoZSB2YWx1ZSBjb25zdHJhaW50J3MgdmFsdWUuCisgICAgKi8KKyAgICBpZiAoKHVzZS0+ZGVmVmFsICE9IE5VTEwpICYmIChXWFNfQVRUUlVTRV9UWVBFREVGKHVzZSkgIT0gTlVMTCkpIHsKKwlpbnQgcmV0OworCS8qCisJKiBUT0RPOiBUaGUgc3BlYyBzZWVtcyB0byBiZSBtaXNzaW5nIGEgY2hlY2sgb2YgdGhlCisJKiB2YWx1ZSBjb25zdHJhaW50IG9mIHRoZSBhdHRyaWJ1dGUgdXNlLiBXZSB3aWxsIGRvIGl0IGhlcmUuCisJKi8KKwkvKgorCSogU1BFQyBhLXByb3BzLWNvcnJlY3QgKDMpCisJKi8KKwlpZiAoeG1sU2NoZW1hSXNEZXJpdmVkRnJvbUJ1aWx0SW5UeXBlKAorCSAgICBXWFNfQVRUUlVTRV9UWVBFREVGKHVzZSksIFhNTF9TQ0hFTUFTX0lEKSkKKwl7CisJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIGN0eHQsCisJCVhNTF9TQ0hFTUFQX0FVX1BST1BTX0NPUlJFQ1QsCisJCU5VTEwsIFdYU19CQVNJQ19DQVNUIHVzZSwKKwkJIlZhbHVlIGNvbnN0cmFpbnRzIGFyZSBub3QgYWxsb3dlZCBpZiB0aGUgdHlwZSBkZWZpbml0aW9uICIKKwkJImlzIG9yIGlzIGRlcml2ZWQgZnJvbSB4czpJRCIsCisJCU5VTEwsIE5VTEwpOworCSAgICByZXR1cm4oY3R4dC0+ZXJyKTsKKwl9CisKKwlyZXQgPSB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKEFDVFhUX0NBU1QgY3R4dCwKKwkgICAgdXNlLT5ub2RlLCBXWFNfQVRUUlVTRV9UWVBFREVGKHVzZSksCisJICAgIHVzZS0+ZGVmVmFsdWUsICYodXNlLT5kZWZWYWwpLAorCSAgICAxLCAxLCAwKTsKKwlpZiAocmV0ICE9IDApIHsKKwkgICAgaWYgKHJldCA8IDApIHsKKwkJUEVSUk9SX0lOVDIoInhtbFNjaGVtYUNoZWNrQXR0clVzZVByb3BzQ29ycmVjdCIsCisJCSAgICAiY2FsbGluZyB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKCkiKTsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBjdHh0LAorCQlYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNULAorCQlOVUxMLCBXWFNfQkFTSUNfQ0FTVCB1c2UsCisJCSJUaGUgdmFsdWUgb2YgdGhlIHZhbHVlIGNvbnN0cmFpbnQgaXMgbm90IHZhbGlkIiwKKwkJTlVMTCwgTlVMTCk7CisJICAgIHJldHVybihjdHh0LT5lcnIpOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIFNQRUMgYXUtcHJvcHMtY29ycmVjdCAoMikKKyAgICAqICJJZiB0aGUge2F0dHJpYnV0ZSBkZWNsYXJhdGlvbn0gaGFzIGEgZml4ZWQKKyAgICAqIHt2YWx1ZSBjb25zdHJhaW50fSwgdGhlbiBpZiB0aGUgYXR0cmlidXRlIHVzZSBpdHNlbGYgaGFzIGEKKyAgICAqIHt2YWx1ZSBjb25zdHJhaW50fSwgaXQgbXVzdCBhbHNvIGJlIGZpeGVkIGFuZCBpdHMgdmFsdWUgbXVzdCBtYXRjaAorICAgICogdGhhdCBvZiB0aGUge2F0dHJpYnV0ZSBkZWNsYXJhdGlvbn0ncyB7dmFsdWUgY29uc3RyYWludH0uIgorICAgICovCisgICAgaWYgKCgoV1hTX0FUVFJVU0VfREVDTCh1c2UpKS0+ZGVmVmFsICE9IE5VTEwpICYmCisJKCgoV1hTX0FUVFJVU0VfREVDTCh1c2UpKS0+ZmxhZ3MgJiBYTUxfU0NIRU1BX0FUVFJfVVNFX0ZJWEVEKSA9PSAwKSkKKyAgICB7CisJaWYgKCEgeG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwodXNlLT5kZWZWYWwsCisJCShXWFNfQVRUUlVTRV9ERUNMKHVzZSkpLT5kZWZWYWwpKQorCXsKKwkgICAgeG1sU2NoZW1hUEN1c3RvbUVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9BVV9QUk9QU19DT1JSRUNUXzIsCisJCVdYU19CQVNJQ19DQVNUIHVzZSwgTlVMTCwKKwkJIlRoZSAnZml4ZWQnIHZhbHVlIGNvbnN0cmFpbnQgb2YgdGhlIGF0dHJpYnV0ZSB1c2UgIgorCQkibXVzdCBtYXRjaCB0aGUgYXR0cmlidXRlIGRlY2xhcmF0aW9uJ3MgdmFsdWUgIgorCQkiY29uc3RyYWludCAnJXMnIiwKKwkJKFdYU19BVFRSVVNFX0RFQ0wodXNlKSktPmRlZlZhbHVlKTsKKwl9CisJcmV0dXJuKGN0eHQtPmVycik7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworCisKKworLyoqCisgKiB4bWxTY2hlbWFSZXNvbHZlQXR0clR5cGVSZWZlcmVuY2VzOgorICogQGl0ZW06ICBhbiBhdHRyaWJ1dGUgZGVjbGFyYXRpb24KKyAqIEBjdHh0OiAgYSBwYXJzZXIgY29udGV4dAorICoKKyAqIFJlc29sdmVzIHRoZSByZWZlcmVuY2VkIHR5cGUgZGVmaW5pdGlvbiBjb21wb25lbnQuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVJlc29sdmVBdHRyVHlwZVJlZmVyZW5jZXMoeG1sU2NoZW1hQXR0cmlidXRlUHRyIGl0ZW0sCisJCQkJICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0KQoreworICAgIC8qCisgICAgKiBUaGUgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRoZSA8c2ltcGxlVHlwZT4gZWxlbWVudAorICAgICogaW5mb3JtYXRpb24gaXRlbSBpbiB0aGUgW2NoaWxkcmVuXSwgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIHRoZSBzaW1wbGUKKyAgICAqIHR5cGUgZGVmaW5pdGlvbiDvv71yZXNvbHZlZO+/vSB0byBieSB0aGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIHRoZSB0eXBlCisgICAgKiBbYXR0cmlidXRlXSwgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIHRoZSDvv71zaW1wbGUgdXItdHlwZSBkZWZpbml0aW9u77+9LgorICAgICovCisgICAgaWYgKGl0ZW0tPmZsYWdzICYgWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRCkKKwlyZXR1cm4oMCk7CisgICAgaXRlbS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfQVRUUl9JTlRFUk5BTF9SRVNPTFZFRDsKKyAgICBpZiAoaXRlbS0+c3VidHlwZXMgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKDApOworICAgIGlmIChpdGVtLT50eXBlTmFtZSAhPSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZTsKKworCXR5cGUgPSB4bWxTY2hlbWFHZXRUeXBlKGN0eHQtPnNjaGVtYSwgaXRlbS0+dHlwZU5hbWUsCisJICAgIGl0ZW0tPnR5cGVOcyk7CisJaWYgKCh0eXBlID09IE5VTEwpIHx8ICghIFdYU19JU19TSU1QTEUodHlwZSkpKSB7CisJICAgIHhtbFNjaGVtYVBSZXNDb21wQXR0ckVycihjdHh0LAorCQlYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSwKKwkJV1hTX0JBU0lDX0NBU1QgaXRlbSwgaXRlbS0+bm9kZSwKKwkJInR5cGUiLCBpdGVtLT50eXBlTmFtZSwgaXRlbS0+dHlwZU5zLAorCQlYTUxfU0NIRU1BX1RZUEVfU0lNUExFLCBOVUxMKTsKKwkgICAgcmV0dXJuKGN0eHQtPmVycik7CisJfSBlbHNlCisJICAgIGl0ZW0tPnN1YnR5cGVzID0gdHlwZTsKKworICAgIH0gZWxzZSB7CisJLyoKKwkqIFRoZSB0eXBlIGRlZmF1bHRzIHRvIHRoZSB4czphbnlTaW1wbGVUeXBlLgorCSovCisJaXRlbS0+c3VidHlwZXMgPSB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVJlc29sdmVJRENLZXlSZWZlcmVuY2VzOgorICogQGlkYzogIHRoZSBpZGVudGl0eS1jb25zdHJhaW50IGRlZmluaXRpb24KKyAqIEBjdHh0OiAgdGhlIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQG5hbWU6ICB0aGUgYXR0cmlidXRlIG5hbWUKKyAqCisgKiBSZXNvbHZlIGtleVJlZiByZWZlcmVuY2VzIHRvIGtleS91bmlxdWUgSURDcy4KKyAqIFNjaGVtYSBDb21wb25lbnQgQ29uc3RyYWludDoKKyAqICAgSWRlbnRpdHktY29uc3RyYWludCBEZWZpbml0aW9uIFByb3BlcnRpZXMgQ29ycmVjdCAoYy1wcm9wcy1jb3JyZWN0KQorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFSZXNvbHZlSURDS2V5UmVmZXJlbmNlcyh4bWxTY2hlbWFJRENQdHIgaWRjLAorCQkJICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0KQoreworICAgIGlmIChpZGMtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpCisgICAgICAgIHJldHVybigwKTsKKyAgICBpZiAoaWRjLT5yZWYtPm5hbWUgIT0gTlVMTCkgeworCWlkYy0+cmVmLT5pdGVtID0gKHhtbFNjaGVtYUJhc2ljSXRlbVB0cikKKwkgICAgeG1sU2NoZW1hR2V0SURDKHBjdHh0LT5zY2hlbWEsIGlkYy0+cmVmLT5uYW1lLAorCQlpZGMtPnJlZi0+dGFyZ2V0TmFtZXNwYWNlKTsKKyAgICAgICAgaWYgKGlkYy0+cmVmLT5pdGVtID09IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBUT0RPOiBJdCBpcyBhY3R1YWxseSBub3QgYW4gZXJyb3IgdG8gZmFpbCB0byByZXNvbHZlCisJICAgICogYXQgdGhpcyBzdGFnZS4gQlVUIHdlIG5lZWQgdG8gYmUgdGhhdCBzdHJpY3QhCisJICAgICovCisJICAgIHhtbFNjaGVtYVBSZXNDb21wQXR0ckVycihwY3R4dCwKKwkJWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUsCisJCVdYU19CQVNJQ19DQVNUIGlkYywgaWRjLT5ub2RlLAorCQkicmVmZXIiLCBpZGMtPnJlZi0+bmFtZSwKKwkJaWRjLT5yZWYtPnRhcmdldE5hbWVzcGFjZSwKKwkJWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVksIE5VTEwpOworICAgICAgICAgICAgcmV0dXJuKHBjdHh0LT5lcnIpOworCX0gZWxzZSBpZiAoaWRjLT5yZWYtPml0ZW0tPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpIHsKKwkgICAgLyoKKwkgICAgKiBTUEVDIGMtcHJvcHMtY29ycmVjdCAoMSkKKwkgICAgKi8KKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCVhNTF9TQ0hFTUFQX0NfUFJPUFNfQ09SUkVDVCwKKwkJTlVMTCwgV1hTX0JBU0lDX0NBU1QgaWRjLAorCQkiVGhlIGtleXJlZiByZWZlcmVuY2VzIGEga2V5cmVmIiwKKwkJTlVMTCwgTlVMTCk7CisJICAgIGlkYy0+cmVmLT5pdGVtID0gTlVMTDsKKwkgICAgcmV0dXJuKHBjdHh0LT5lcnIpOworCX0gZWxzZSB7CisJICAgIGlmIChpZGMtPm5iRmllbGRzICE9CisJCSgoeG1sU2NoZW1hSURDUHRyKSBpZGMtPnJlZi0+aXRlbSktPm5iRmllbGRzKSB7CisJCXhtbENoYXIgKnN0ciA9IE5VTEw7CisJCXhtbFNjaGVtYUlEQ1B0ciByZWZlcjsKKworCQlyZWZlciA9ICh4bWxTY2hlbWFJRENQdHIpIGlkYy0+cmVmLT5pdGVtOworCQkvKgorCQkqIFNQRUMgYy1wcm9wcy1jb3JyZWN0KDIpCisJCSogIklmIHRoZSB7aWRlbnRpdHktY29uc3RyYWludCBjYXRlZ29yeX0gaXMga2V5cmVmLAorCQkqIHRoZSBjYXJkaW5hbGl0eSBvZiB0aGUge2ZpZWxkc30gbXVzdCBlcXVhbCB0aGF0IG9mCisJCSogdGhlIHtmaWVsZHN9IG9mIHRoZSB7cmVmZXJlbmNlZCBrZXl9LgorCQkqLworCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFQX0NfUFJPUFNfQ09SUkVDVCwKKwkJICAgIE5VTEwsIFdYU19CQVNJQ19DQVNUIGlkYywKKwkJICAgICJUaGUgY2FyZGluYWxpdHkgb2YgdGhlIGtleXJlZiBkaWZmZXJzIGZyb20gdGhlICIKKwkJICAgICJjYXJkaW5hbGl0eSBvZiB0aGUgcmVmZXJlbmNlZCBrZXkvdW5pcXVlICclcyciLAorCQkgICAgeG1sU2NoZW1hRm9ybWF0UU5hbWUoJnN0ciwgcmVmZXItPnRhcmdldE5hbWVzcGFjZSwKKwkJCXJlZmVyLT5uYW1lKSwKKwkJICAgIE5VTEwpOworCQlGUkVFX0FORF9OVUxMKHN0cikKKwkJcmV0dXJuKHBjdHh0LT5lcnIpOworCSAgICB9CisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVJlc29sdmVBdHRyVXNlUHJvaGliUmVmZXJlbmNlcyh4bWxTY2hlbWFBdHRyaWJ1dGVVc2VQcm9oaWJQdHIgcHJvaGliLAorCQkJCSAgICAgICB4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0KQoreworICAgIGlmICh4bWxTY2hlbWFHZXRBdHRyaWJ1dGVEZWNsKHBjdHh0LT5zY2hlbWEsIHByb2hpYi0+bmFtZSwKKwlwcm9oaWItPnRhcmdldE5hbWVzcGFjZSkgPT0gTlVMTCkgeworCisJeG1sU2NoZW1hUFJlc0NvbXBBdHRyRXJyKHBjdHh0LAorCSAgICBYTUxfU0NIRU1BUF9TUkNfUkVTT0xWRSwKKwkgICAgTlVMTCwgcHJvaGliLT5ub2RlLAorCSAgICAicmVmIiwgcHJvaGliLT5uYW1lLCBwcm9oaWItPnRhcmdldE5hbWVzcGFjZSwKKwkgICAgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURSwgTlVMTCk7CisJcmV0dXJuKFhNTF9TQ0hFTUFQX1NSQ19SRVNPTFZFKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisjZGVmaW5lIFdYU19SRURFRklORURfVFlQRShjKSBcCisoKCh4bWxTY2hlbWFUeXBlUHRyKSBpdGVtKS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRCkKKworI2RlZmluZSBXWFNfUkVERUZJTkVEX01PREVMX0dST1VQX0RFRihjKSBcCisoKCh4bWxTY2hlbWFNb2RlbEdyb3VwRGVmUHRyKSBpdGVtKS0+ZmxhZ3MgJiBYTUxfU0NIRU1BX01PREVMX0dST1VQX0RFRl9SRURFRklORUQpCisKKyNkZWZpbmUgV1hTX1JFREVGSU5FRF9BVFRSX0dST1VQKGMpIFwKKygoKHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyKSBpdGVtKS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19BVFRSR1JPVVBfUkVERUZJTkVEKQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja1NSQ1JlZGVmaW5lRmlyc3QoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCkKK3sKKyAgICBpbnQgZXJyID0gMDsKKyAgICB4bWxTY2hlbWFSZWRlZlB0ciByZWRlZiA9IFdYU19DT05TVFJVQ1RPUihwY3R4dCktPnJlZGVmczsKKyAgICB4bWxTY2hlbWFCYXNpY0l0ZW1QdHIgcHJldiwgaXRlbTsKKyAgICBpbnQgd2FzUmVkZWZpbmVkOworCisgICAgaWYgKHJlZGVmID09IE5VTEwpCisJcmV0dXJuKDApOworCisgICAgZG8geworCWl0ZW0gPSByZWRlZi0+aXRlbTsKKwkvKgorCSogRmlyc3QgdHJ5IHRvIGxvY2F0ZSB0aGUgcmVkZWZpbmVkIGNvbXBvbmVudCBpbiB0aGUKKwkqIHNjaGVtYSBncmFwaCBzdGFydGluZyB3aXRoIHRoZSByZWRlZmluZWQgc2NoZW1hLgorCSogTk9URTogQWNjb3JkaW5nIHRvIHRoaXMgc2NoZW1hIGJ1ZyBlbnRyeToKKwkqICAgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXhtbC1zY2hlbWEtY29tbWVudHMvMjAwNU9jdERlYy8wMDE5Lmh0bWwKKwkqICAgaXQncyBub3QgY2xlYXIgaWYgdGhlIHJlZmVyZW5jZWQgY29tcG9uZW50IG5lZWRzIHRvIG9yaWdpbmF0ZQorCSogICBmcm9tIHRoZSA8cmVkZWZpbmU+ZCBzY2hlbWEgX2RvY3VtZW50XyBvciB0aGUgc2NoZW1hOyB0aGUgbGF0dGVyCisJKiAgIHdvdWxkIGluY2x1ZGUgYWxsIGltcG9ydGVkIGFuZCBpbmNsdWRlZCBzdWItc2NoZW1hcyBvZiB0aGUKKwkqICAgPHJlZGVmaW5lPmQgc2NoZW1hLiBDdXJyZW5sdHkgd2UgbGF0dGVyIGFwcHJvYWNoIGlzIHVzZWQuCisJKiAgIFNVUFBMRU1FTlQ6IEl0IHNlZW1zIHRoYXQgdGhlIFdHIG1vdmVzIHRvd2FyZHMgdGhlIGxhdHRlcgorCSogICBhcHByb2FjaCwgc28gd2UgYXJlIGRvaW5nIGl0IHJpZ2h0LgorCSoKKwkqLworCXByZXYgPSB4bWxTY2hlbWFGaW5kUmVkZWZDb21wSW5HcmFwaCgKKwkgICAgcmVkZWYtPnRhcmdldEJ1Y2tldCwgaXRlbS0+dHlwZSwKKwkgICAgcmVkZWYtPnJlZk5hbWUsIHJlZGVmLT5yZWZUYXJnZXROcyk7CisJaWYgKHByZXYgPT0gTlVMTCkgeworCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCSAgICB4bWxOb2RlUHRyIG5vZGU7CisKKwkgICAgLyoKKwkgICAgKiBTUEVDIHNyYy1yZWRlZmluZToKKwkgICAgKiAoNi4yLjEpICJUaGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIGl0cyBvd24gbmFtZSBhdHRyaWJ1dGUgcGx1cworCSAgICAqIHRhcmdldCBuYW1lc3BhY2UgbXVzdCBzdWNjZXNzZnVsbHkg77+9cmVzb2x2Ze+/vSB0byBhIG1vZGVsCisJICAgICogZ3JvdXAgZGVmaW5pdGlvbiBpbiBJLiIKKwkgICAgKiAoNy4yLjEpICJUaGUg77+9YWN0dWFsIHZhbHVl77+9IG9mIGl0cyBvd24gbmFtZSBhdHRyaWJ1dGUgcGx1cworCSAgICAqIHRhcmdldCBuYW1lc3BhY2UgbXVzdCBzdWNjZXNzZnVsbHkg77+9cmVzb2x2Ze+/vSB0byBhbiBhdHRyaWJ1dGUKKwkgICAgKiBncm91cCBkZWZpbml0aW9uIGluIEkuIgorCisJICAgICoKKwkgICAgKiBOb3RlIHRoYXQsIGlmIHdlIGFyZSByZWRlZmluaW5nIHdpdGggdGhlIHVzZSBvZiByZWZlcmVuY2VzCisJICAgICogdG8gY29tcG9uZW50cywgdGhlIHNwZWMgYXNzdW1lcyB0aGUgc3JjLXJlc29sdmUgdG8gYmUgdXNlZDsKKwkgICAgKiBidXQgdGhpcyB3b24ndCBhc3N1cmUgdGhhdCB3ZSBzZWFyY2ggb25seSAqaW5zaWRlKiB0aGUKKwkgICAgKiByZWRlZmluZWQgc2NoZW1hLgorCSAgICAqLworCSAgICBpZiAocmVkZWYtPnJlZmVyZW5jZSkKKwkJbm9kZSA9IFdYU19JVEVNX05PREUocmVkZWYtPnJlZmVyZW5jZSk7CisJICAgIGVsc2UKKwkJbm9kZSA9IFdYU19JVEVNX05PREUoaXRlbSk7CisJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHBjdHh0LAorCQkvKgorCQkqIFRPRE86IGVycm9yIGNvZGUuCisJCSogUHJvYmFibHkgWE1MX1NDSEVNQVBfU1JDX1JFU09MVkUsIGlmIHRoaXMgaXMgdXNpbmcgdGhlCisJCSogcmVmZXJlbmNlIGtpbmQuCisJCSovCisJCVhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwgbm9kZSwgTlVMTCwKKwkJIlRoZSAlcyAnJXMnIHRvIGJlIHJlZGVmaW5lZCBjb3VsZCBub3QgYmUgZm91bmQgaW4gIgorCQkidGhlIHJlZGVmaW5lZCBzY2hlbWEiLAorCQlXWFNfSVRFTV9UWVBFX05BTUUoaXRlbSksCisJCXhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIHJlZGVmLT5yZWZUYXJnZXROcywKKwkJICAgIHJlZGVmLT5yZWZOYW1lKSk7CisJICAgIEZSRUVfQU5EX05VTEwoc3RyKTsKKwkgICAgZXJyID0gcGN0eHQtPmVycjsKKwkgICAgcmVkZWYgPSByZWRlZi0+bmV4dDsKKwkgICAgY29udGludWU7CisJfQorCS8qCisJKiBUT0RPOiBPYnRhaW5pbmcgYW5kIHNldHRpbmcgdGhlIHJlZGVmaW5pdGlvbiBzdGF0ZSBpcyByZWFsbHkKKwkqIGNsdW1zeS4KKwkqLworCXdhc1JlZGVmaW5lZCA9IDA7CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVg6CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRToKKwkJaWYgKChXWFNfVFlQRV9DQVNUIHByZXYpLT5mbGFncyAmCisJCSAgICBYTUxfU0NIRU1BU19UWVBFX1JFREVGSU5FRCkKKwkJeworCQkgICAgd2FzUmVkZWZpbmVkID0gMTsKKwkJICAgIGJyZWFrOworCQl9CisJCS8qIE1hcmsgaXQgYXMgcmVkZWZpbmVkLiAqLworCQkoV1hTX1RZUEVfQ0FTVCBwcmV2KS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9SRURFRklORUQ7CisJCS8qCisJCSogQXNzaWduIHRoZSByZWRlZmluZWQgdHlwZSB0byB0aGUKKwkJKiBiYXNlIHR5cGUgb2YgdGhlIHJlZGVmaW5pbmcgdHlwZS4KKwkJKiBUT0RPOiBIb3cKKwkJKi8KKwkJKCh4bWxTY2hlbWFUeXBlUHRyKSBpdGVtKS0+YmFzZVR5cGUgPQorCQkgICAgKHhtbFNjaGVtYVR5cGVQdHIpIHByZXY7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9HUk9VUDoKKwkJaWYgKChXWFNfTU9ERUxfR1JPVVBERUZfQ0FTVCBwcmV2KS0+ZmxhZ3MgJgorCQkgICAgWE1MX1NDSEVNQV9NT0RFTF9HUk9VUF9ERUZfUkVERUZJTkVEKQorCQl7CisJCSAgICB3YXNSZWRlZmluZWQgPSAxOworCQkgICAgYnJlYWs7CisJCX0KKwkJLyogTWFyayBpdCBhcyByZWRlZmluZWQuICovCisJCShXWFNfTU9ERUxfR1JPVVBERUZfQ0FTVCBwcmV2KS0+ZmxhZ3MgfD0KKwkJICAgIFhNTF9TQ0hFTUFfTU9ERUxfR1JPVVBfREVGX1JFREVGSU5FRDsKKwkJaWYgKHJlZGVmLT5yZWZlcmVuY2UgIT0gTlVMTCkgeworCQkgICAgLyoKKwkJICAgICogT3ZlcndyaXRlIHRoZSBRTmFtZS1yZWZlcmVuY2Ugd2l0aCB0aGUKKwkJICAgICogcmVmZXJlbmNlZCBtb2RlbCBncm91cCBkZWYuCisJCSAgICAqLworCQkgICAgKFdYU19QVENfQ0FTVCByZWRlZi0+cmVmZXJlbmNlKS0+Y2hpbGRyZW4gPQorCQkJV1hTX1RSRUVfQ0FTVCBwcmV2OworCQl9CisJCXJlZGVmLT50YXJnZXQgPSBwcmV2OworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA6CisJCWlmICgoV1hTX0FUVFJfR1JPVVBfQ0FTVCBwcmV2KS0+ZmxhZ3MgJgorCQkgICAgWE1MX1NDSEVNQVNfQVRUUkdST1VQX1JFREVGSU5FRCkKKwkJeworCQkgICAgd2FzUmVkZWZpbmVkID0gMTsKKwkJICAgIGJyZWFrOworCQl9CisJCShXWFNfQVRUUl9HUk9VUF9DQVNUIHByZXYpLT5mbGFncyB8PQorCQkgICAgWE1MX1NDSEVNQVNfQVRUUkdST1VQX1JFREVGSU5FRDsKKwkJaWYgKHJlZGVmLT5yZWZlcmVuY2UgIT0gTlVMTCkgeworCQkgICAgLyoKKwkJICAgICogQXNzaWduIHRoZSByZWRlZmluZWQgYXR0cmlidXRlIGdyb3VwIHRvIHRoZQorCQkgICAgKiBRTmFtZS1yZWZlcmVuY2UgY29tcG9uZW50LgorCQkgICAgKiBUaGlzIGlzIHRoZSBlYXN5IGNhc2UsIHNpbmNlIHdlIHdpbGwganVzdAorCQkgICAgKiBleHBhbmQgdGhlIHJlZGVmaW5lZCBncm91cC4KKwkJICAgICovCisJCSAgICAoV1hTX1FOQU1FX0NBU1QgcmVkZWYtPnJlZmVyZW5jZSktPml0ZW0gPSBwcmV2OworCQkgICAgcmVkZWYtPnRhcmdldCA9IE5VTEw7CisJCX0gZWxzZSB7CisJCSAgICAvKgorCQkgICAgKiBUaGlzIGlzIHRoZSBjb21wbGljYXRlZCBjYXNlOiB3ZSBuZWVkCisJCSAgICAqIHRvIGFwcGx5IHNyYy1yZWRlZmluZSAoNy4yLjIpIGF0IGEgbGF0ZXIKKwkJICAgICogc3RhZ2UsIGkuZS4gd2hlbiBhdHRyaWJ1dGUgZ3JvdXAgcmVmZXJlbmNlcworCQkgICAgKiBoYXZlIGJlZWQgZXhwYW5kZWQgYW5kIHNpbXBsZSB0eXBlcyBoYXZlCisJCSAgICAqIGJlZWQgZml4ZWQuCisJCSAgICAqLworCQkgICAgcmVkZWYtPnRhcmdldCA9IHByZXY7CisJCX0KKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCVBFUlJPUl9JTlQoInhtbFNjaGVtYVJlc29sdmVSZWRlZlJlZmVyZW5jZXMiLAorCQkgICAgIlVuZXhwZWN0ZWQgcmVkZWZpbmVkIGNvbXBvbmVudCB0eXBlIik7CisJCXJldHVybigtMSk7CisJfQorCWlmICh3YXNSZWRlZmluZWQpIHsKKwkgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKwkgICAgeG1sTm9kZVB0ciBub2RlOworCisJICAgIGlmIChyZWRlZi0+cmVmZXJlbmNlKQorCQlub2RlID0gV1hTX0lURU1fTk9ERShyZWRlZi0+cmVmZXJlbmNlKTsKKwkgICAgZWxzZQorCQlub2RlID0gV1hTX0lURU1fTk9ERShyZWRlZi0+aXRlbSk7CisKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgcGN0eHQsCisJCS8qIFRPRE86IGVycm9yIGNvZGUuICovCisJCVhNTF9TQ0hFTUFQX1NSQ19SRURFRklORSwKKwkJbm9kZSwgTlVMTCwKKwkJIlRoZSByZWZlcmVuY2VkICVzIHdhcyBhbHJlYWR5IHJlZGVmaW5lZC4gTXVsdGlwbGUgIgorCQkicmVkZWZpbml0aW9uIG9mIHRoZSBzYW1lIGNvbXBvbmVudCBpcyBub3Qgc3VwcG9ydGVkIiwKKwkJeG1sU2NoZW1hR2V0Q29tcG9uZW50RGVzaWduYXRpb24oJnN0ciwgcHJldiksCisJCU5VTEwpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwkgICAgZXJyID0gcGN0eHQtPmVycjsKKwkgICAgcmVkZWYgPSByZWRlZi0+bmV4dDsKKwkgICAgY29udGludWU7CisJfQorCXJlZGVmID0gcmVkZWYtPm5leHQ7CisgICAgfSB3aGlsZSAocmVkZWYgIT0gTlVMTCk7CisKKyAgICByZXR1cm4oZXJyKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hQ2hlY2tTUkNSZWRlZmluZVNlY29uZCh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIHBjdHh0KQoreworICAgIGludCBlcnIgPSAwOworICAgIHhtbFNjaGVtYVJlZGVmUHRyIHJlZGVmID0gV1hTX0NPTlNUUlVDVE9SKHBjdHh0KS0+cmVkZWZzOworICAgIHhtbFNjaGVtYUJhc2ljSXRlbVB0ciBpdGVtOworCisgICAgaWYgKHJlZGVmID09IE5VTEwpCisJcmV0dXJuKDApOworCisgICAgZG8geworCWlmIChyZWRlZi0+dGFyZ2V0ID09IE5VTEwpIHsKKwkgICAgcmVkZWYgPSByZWRlZi0+bmV4dDsKKwkgICAgY29udGludWU7CisJfQorCWl0ZW0gPSByZWRlZi0+aXRlbTsKKworCXN3aXRjaCAoaXRlbS0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU6CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVg6CisJCS8qCisJCSogU2luY2UgdGhlIHNwZWMgd2FudHMgdGhlIHtuYW1lfSBvZiB0aGUgcmVkZWZpbmVkCisJCSogdHlwZSB0byBiZSAnYWJzZW50Jywgd2UnbGwgTlVMTCBpdC4KKwkJKi8KKwkJKFdYU19UWVBFX0NBU1QgcmVkZWYtPnRhcmdldCktPm5hbWUgPSBOVUxMOworCisJCS8qCisJCSogVE9ETzogU2VlbXMgbGlrZSB0aGVyZSdzIG5vdGhpbmcgbW9yZSB0byBkby4gVGhlIG5vcm1hbAorCQkqIGluaGVyaXRhbmNlIG1lY2hhbmlzbSBpcyB1c2VkLiBCdXQgbm90IDEwMCUgc3VyZS4KKwkJKi8KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCQkvKgorCQkqIFVSR0VOVCBUT0RPOgorCQkqIFNQRUMgc3JjLXJlZGVmaW5lOgorCQkqICg2LjIuMikgIlRoZSB7bW9kZWwgZ3JvdXB9IG9mIHRoZSBtb2RlbCBncm91cCBkZWZpbml0aW9uCisJCSogd2hpY2ggY29ycmVzcG9uZHMgdG8gaXQgcGVyIFhNTCBSZXByZXNlbnRhdGlvbiBvZiBNb2RlbAorCQkqIEdyb3VwIERlZmluaXRpb24gU2NoZW1hIENvbXBvbmVudHMgKO+/vTMuNy4yKSBtdXN0IGJlIGEKKwkJKiDvv712YWxpZCByZXN0cmljdGlvbu+/vSBvZiB0aGUge21vZGVsIGdyb3VwfSBvZiB0aGF0IG1vZGVsCisJCSogZ3JvdXAgZGVmaW5pdGlvbiBpbiBJLCBhcyBkZWZpbmVkIGluIFBhcnRpY2xlIFZhbGlkCisJCSogKFJlc3RyaWN0aW9uKSAo77+9My45LjYpLiIKKwkJKi8KKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQOgorCQkvKgorCQkqIFNQRUMgc3JjLXJlZGVmaW5lOgorCQkqICg3LjIuMikgIlRoZSB7YXR0cmlidXRlIHVzZXN9IGFuZCB7YXR0cmlidXRlIHdpbGRjYXJkfSBvZgorCQkqIHRoZSBhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbiB3aGljaCBjb3JyZXNwb25kcyB0byBpdAorCQkqIHBlciBYTUwgUmVwcmVzZW50YXRpb24gb2YgQXR0cmlidXRlIEdyb3VwIERlZmluaXRpb24gU2NoZW1hCisJCSogQ29tcG9uZW50cyAo77+9My42LjIpIG11c3QgYmUg77+9dmFsaWQgcmVzdHJpY3Rpb25z77+9IG9mIHRoZQorCQkqIHthdHRyaWJ1dGUgdXNlc30gYW5kIHthdHRyaWJ1dGUgd2lsZGNhcmR9IG9mIHRoYXQgYXR0cmlidXRlCisJCSogZ3JvdXAgZGVmaW5pdGlvbiBpbiBJLCBhcyBkZWZpbmVkIGluIGNsYXVzZSAyLCBjbGF1c2UgMyBhbmQKKwkJKiBjbGF1c2UgNCBvZiBEZXJpdmF0aW9uIFZhbGlkIChSZXN0cmljdGlvbiwgQ29tcGxleCkKKwkJKiAo77+9My40LjYpICh3aGVyZSByZWZlcmVuY2VzIHRvIHRoZSBiYXNlIHR5cGUgZGVmaW5pdGlvbiBhcmUKKwkJKiB1bmRlcnN0b29kIGFzIHJlZmVyZW5jZXMgdG8gdGhlIGF0dHJpYnV0ZSBncm91cCBkZWZpbml0aW9uCisJCSogaW4gSSkuIgorCQkqLworCQllcnIgPSB4bWxTY2hlbWFDaGVja0Rlcml2YXRpb25PS1Jlc3RyaWN0aW9uMnRvNChwY3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFfQUNUSU9OX1JFREVGSU5FLAorCQkgICAgaXRlbSwgcmVkZWYtPnRhcmdldCwKKwkJICAgIChXWFNfQVRUUl9HUk9VUF9DQVNUIGl0ZW0pLT5hdHRyVXNlcywKKwkJICAgIChXWFNfQVRUUl9HUk9VUF9DQVNUIHJlZGVmLT50YXJnZXQpLT5hdHRyVXNlcywKKwkJICAgIChXWFNfQVRUUl9HUk9VUF9DQVNUIGl0ZW0pLT5hdHRyaWJ1dGVXaWxkY2FyZCwKKwkJICAgIChXWFNfQVRUUl9HUk9VUF9DQVNUIHJlZGVmLT50YXJnZXQpLT5hdHRyaWJ1dGVXaWxkY2FyZCk7CisJCWlmIChlcnIgPT0gLTEpCisJCSAgICByZXR1cm4oLTEpOworCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCXJlZGVmID0gcmVkZWYtPm5leHQ7CisgICAgfSB3aGlsZSAocmVkZWYgIT0gTlVMTCk7CisgICAgcmV0dXJuKDApOworfQorCisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUFkZENvbXBvbmVudHMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJICAgICAgIHhtbFNjaGVtYUJ1Y2tldFB0ciBidWNrZXQpCit7CisgICAgeG1sU2NoZW1hQmFzaWNJdGVtUHRyIGl0ZW07CisgICAgaW50IGVycjsKKyAgICB4bWxIYXNoVGFibGVQdHIgKnRhYmxlOworICAgIGNvbnN0IHhtbENoYXIgKm5hbWU7CisgICAgaW50IGk7CisKKyNkZWZpbmUgV1hTX0dFVF9HTE9CQUxfSEFTSChjLCBzbG90KSB7IFwKKyAgICBpZiAoV1hTX0lTX0JVQ0tFVF9JTVBNQUlOKChjKS0+dHlwZSkpIFwKKwl0YWJsZSA9ICYoV1hTX0lNUEJVQ0tFVCgoYykpLT5zY2hlbWEtPnNsb3QpOyBcCisgICAgZWxzZSBcCisJdGFibGUgPSAmKFdYU19JTkNCVUNLRVQoKGMpKS0+b3duZXJJbXBvcnQtPnNjaGVtYS0+c2xvdCk7IH0KKworICAgIC8qCisgICAgKiBBZGQgZ2xvYmFsIGNvbXBvbmVudHMgdG8gdGhlIHNjaGVtYSdzIGhhc2ggdGFibGVzLgorICAgICogVGhpcyBpcyB0aGUgcGxhY2Ugd2hlcmUgZHVwbGljYXRlIGNvbXBvbmVudHMgd2lsbCBiZQorICAgICogZGV0ZWN0ZWQuCisgICAgKiBUT0RPOiBJIHRoaW5rIG5vcm1hbGx5IHdlIHNob3VsZCBzdXBwb3J0IGltcG9ydHMgb2YgdGhlCisgICAgKiAgIHNhbWUgbmFtZXNwYWNlIGZyb20gbXVsdGlwbGUgbG9jYXRpb25zLiBXZSBkb24ndCBkbyBjdXJyZW50bHksCisgICAgKiAgIGJ1dCBpZiB3ZSBkbyB0aGVuIGFjY29yZGluZyB0bzoKKyAgICAqICAgaHR0cDovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIyMjQKKyAgICAqICAgd2Ugd291bGQgbmVlZCwgaWYgaW1wb3J0ZWQgZGlyZWN0bHksIHRvIGltcG9ydCByZWRlZmluZWQKKyAgICAqICAgY29tcG9uZW50cyBhcyB3ZWxsIHRvIGJlIGFibGUgdG8gY2F0Y2ggY2xhc2hpbmcgY29tcG9uZW50cy4KKyAgICAqICAgKEkgaG9wZSBJJ2xsIHN0aWxsIGtub3cgd2hhdCB0aGlzIG1lYW5zIGFmdGVyIHNvbWUgbW9udGhzIDotKCkKKyAgICAqLworICAgIGlmIChidWNrZXQgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChidWNrZXQtPmZsYWdzICYgWE1MX1NDSEVNQV9CVUNLRVRfQ09NUFNfQURERUQpCisJcmV0dXJuKDApOworICAgIGJ1Y2tldC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9CVUNLRVRfQ09NUFNfQURERUQ7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgYnVja2V0LT5nbG9iYWxzLT5uYkl0ZW1zOyBpKyspIHsKKwlpdGVtID0gYnVja2V0LT5nbG9iYWxzLT5pdGVtc1tpXTsKKwl0YWJsZSA9IE5VTEw7CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0NPTVBMRVg6CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NJTVBMRToKKwkJaWYgKFdYU19SRURFRklORURfVFlQRShpdGVtKSkKKwkJICAgIGNvbnRpbnVlOworCQluYW1lID0gKFdYU19UWVBFX0NBU1QgaXRlbSktPm5hbWU7CisJCVdYU19HRVRfR0xPQkFMX0hBU0goYnVja2V0LCB0eXBlRGVjbCkKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJCW5hbWUgPSAoV1hTX0VMRU1fQ0FTVCBpdGVtKS0+bmFtZTsKKwkJV1hTX0dFVF9HTE9CQUxfSEFTSChidWNrZXQsIGVsZW1EZWNsKQorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFOgorCQluYW1lID0gKFdYU19BVFRSX0NBU1QgaXRlbSktPm5hbWU7CisJCVdYU19HRVRfR0xPQkFMX0hBU0goYnVja2V0LCBhdHRyRGVjbCkKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0dST1VQOgorCQlpZiAoV1hTX1JFREVGSU5FRF9NT0RFTF9HUk9VUF9ERUYoaXRlbSkpCisJCSAgICBjb250aW51ZTsKKwkJbmFtZSA9IChXWFNfTU9ERUxfR1JPVVBERUZfQ0FTVCBpdGVtKS0+bmFtZTsKKwkJV1hTX0dFVF9HTE9CQUxfSEFTSChidWNrZXQsIGdyb3VwRGVjbCkKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQOgorCQlpZiAoV1hTX1JFREVGSU5FRF9BVFRSX0dST1VQKGl0ZW0pKQorCQkgICAgY29udGludWU7CisJCW5hbWUgPSAoV1hTX0FUVFJfR1JPVVBfQ0FTVCBpdGVtKS0+bmFtZTsKKwkJV1hTX0dFVF9HTE9CQUxfSEFTSChidWNrZXQsIGF0dHJncnBEZWNsKQorCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWToKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX1VOSVFVRToKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRjoKKwkJbmFtZSA9IChXWFNfSURDX0NBU1QgaXRlbSktPm5hbWU7CisJCVdYU19HRVRfR0xPQkFMX0hBU0goYnVja2V0LCBpZGNEZWYpCisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9OT1RBVElPTjoKKwkJbmFtZSA9ICgoeG1sU2NoZW1hTm90YXRpb25QdHIpIGl0ZW0pLT5uYW1lOworCQlXWFNfR0VUX0dMT0JBTF9IQVNIKGJ1Y2tldCwgbm90YURlY2wpCisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlQRVJST1JfSU5UKCJ4bWxTY2hlbWFBZGRDb21wb25lbnRzIiwKKwkJICAgICJVbmV4cGVjdGVkIGdsb2JhbCBjb21wb25lbnQgdHlwZSIpOworCQljb250aW51ZTsKKwl9CisJaWYgKCp0YWJsZSA9PSBOVUxMKSB7CisJICAgICp0YWJsZSA9IHhtbEhhc2hDcmVhdGVEaWN0KDEwLCBwY3R4dC0+ZGljdCk7CisJICAgIGlmICgqdGFibGUgPT0gTlVMTCkgeworCQlQRVJST1JfSU5UKCJ4bWxTY2hlbWFBZGRDb21wb25lbnRzIiwKKwkJICAgICJmYWlsZWQgdG8gY3JlYXRlIGEgY29tcG9uZW50IGhhc2ggdGFibGUiKTsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCX0KKwllcnIgPSB4bWxIYXNoQWRkRW50cnkoKnRhYmxlLCBuYW1lLCBpdGVtKTsKKwlpZiAoZXJyICE9IDApIHsKKwkgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKworCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCBwY3R4dCwKKwkJWE1MX1NDSEVNQVBfUkVERUZJTkVEX1RZUEUsCisJCVdYU19JVEVNX05PREUoaXRlbSksCisJCVdYU19CQVNJQ19DQVNUIGl0ZW0sCisJCSJBIGdsb2JhbCAlcyAnJXMnIGRvZXMgYWxyZWFkeSBleGlzdCIsCisJCVdYU19JVEVNX1RZUEVfTkFNRShpdGVtKSwKKwkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ciwgaXRlbSkpOworCSAgICBGUkVFX0FORF9OVUxMKHN0cik7CisJfQorICAgIH0KKyAgICAvKgorICAgICogUHJvY2VzcyBpbXBvcnRlZC9pbmNsdWRlZCBzY2hlbWFzLgorICAgICovCisgICAgaWYgKGJ1Y2tldC0+cmVsYXRpb25zICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFTY2hlbWFSZWxhdGlvblB0ciByZWwgPSBidWNrZXQtPnJlbGF0aW9uczsKKwlkbyB7CisJICAgIGlmICgocmVsLT5idWNrZXQgIT0gTlVMTCkgJiYKKwkJKChyZWwtPmJ1Y2tldC0+ZmxhZ3MgJiBYTUxfU0NIRU1BX0JVQ0tFVF9DT01QU19BRERFRCkgPT0gMCkpIHsKKwkJaWYgKHhtbFNjaGVtYUFkZENvbXBvbmVudHMocGN0eHQsIHJlbC0+YnVja2V0KSA9PSAtMSkKKwkJICAgIHJldHVybigtMSk7CisJICAgIH0KKwkgICAgcmVsID0gcmVsLT5uZXh0OworCX0gd2hpbGUgKHJlbCAhPSBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFGaXh1cENvbXBvbmVudHMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dCwKKwkJCSB4bWxTY2hlbWFCdWNrZXRQdHIgcm9vdEJ1Y2tldCkKK3sKKyAgICB4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0UHRyIGNvbiA9IHBjdHh0LT5jb25zdHJ1Y3RvcjsKKyAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBpdGVtLCAqaXRlbXM7CisgICAgaW50IG5iSXRlbXMsIGksIHJldCA9IDA7CisgICAgeG1sU2NoZW1hQnVja2V0UHRyIG9sZGJ1Y2tldCA9IGNvbi0+YnVja2V0OworICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgZWxlbURlY2w7CisKKyNkZWZpbmUgRklYSEZBSUxVUkUgaWYgKHBjdHh0LT5lcnIgPT0gWE1MX1NDSEVNQVBfSU5URVJOQUwpIGdvdG8gZXhpdF9mYWlsdXJlOworCisgICAgaWYgKChjb24tPnBlbmRpbmcgPT0gTlVMTCkgfHwKKwkoY29uLT5wZW5kaW5nLT5uYkl0ZW1zID09IDApKQorCXJldHVybigwKTsKKworICAgIC8qCisgICAgKiBTaW5jZSB4bWxTY2hlbWFGaXh1cENvbXBsZXhUeXBlKCkgd2lsbCBjcmVhdGUgbmV3IHBhcnRpY2xlcworICAgICogKGxvY2FsIGNvbXBvbmVudHMpLCBhbmQgdGhvc2UgcGFydGljbGUgY29tcG9uZW50cyBuZWVkIGEgYnVja2V0CisgICAgKiBvbiB0aGUgY29uc3RydWN0b3IsIHdlJ2xsIGFzc3VyZSBoZXJlIHRoYXQgdGhlIGNvbnN0cnVjdG9yIGhhcworICAgICogYSBidWNrZXQuCisgICAgKiBUT0RPOiBUaGluayBhYm91dCBzdG9yaW5nIGxvY2FscyBfb25seV8gb24gdGhlIG1haW4gYnVja2V0LgorICAgICovCisgICAgaWYgKGNvbi0+YnVja2V0ID09IE5VTEwpCisJY29uLT5idWNrZXQgPSByb290QnVja2V0OworCisgICAgLyogVE9ETzoKKyAgICAqIFNQRUMgKHNyYy1yZWRlZmluZSk6CisgICAgKiAoNi4yKSAiSWYgaXQgaGFzIG5vIHN1Y2ggc2VsZi1yZWZlcmVuY2UsIHRoZW4gYWxsIG9mIHRoZQorICAgICogZm9sbG93aW5nIG11c3QgYmUgdHJ1ZToiCisKKyAgICAqICg2LjIuMikgVGhlIHttb2RlbCBncm91cH0gb2YgdGhlIG1vZGVsIGdyb3VwIGRlZmluaXRpb24gd2hpY2gKKyAgICAqIGNvcnJlc3BvbmRzIHRvIGl0IHBlciBYTUwgUmVwcmVzZW50YXRpb24gb2YgTW9kZWwgR3JvdXAKKyAgICAqIERlZmluaXRpb24gU2NoZW1hIENvbXBvbmVudHMgKO+/vTMuNy4yKSBtdXN0IGJlIGEg77+9dmFsaWQKKyAgICAqIHJlc3RyaWN0aW9u77+9IG9mIHRoZSB7bW9kZWwgZ3JvdXB9IG9mIHRoYXQgbW9kZWwgZ3JvdXAgZGVmaW5pdGlvbgorICAgICogaW4gSSwgYXMgZGVmaW5lZCBpbiBQYXJ0aWNsZSBWYWxpZCAoUmVzdHJpY3Rpb24pICjvv70zLjkuNikuIgorICAgICovCisgICAgeG1sU2NoZW1hQ2hlY2tTUkNSZWRlZmluZUZpcnN0KHBjdHh0KTsKKworICAgIC8qCisgICAgKiBBZGQgZ2xvYmFsIGNvbXBvbmVudHMgdG8gdGhlIHNjaGVtYXRhJ3MgaGFzaCB0YWJsZXMuCisgICAgKi8KKyAgICB4bWxTY2hlbWFBZGRDb21wb25lbnRzKHBjdHh0LCByb290QnVja2V0KTsKKworICAgIHBjdHh0LT5jdHh0VHlwZSA9IE5VTEw7CisgICAgaXRlbXMgPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIgKikgY29uLT5wZW5kaW5nLT5pdGVtczsKKyAgICBuYkl0ZW1zID0gY29uLT5wZW5kaW5nLT5uYkl0ZW1zOworICAgIC8qCisgICAgKiBOb3cgdGhhdCB3ZSBoYXZlIHBhcnNlZCAqYWxsKiB0aGUgc2NoZW1hIGRvY3VtZW50KHMpIGFuZCBjb252ZXJ0ZWQKKyAgICAqIHRoZW0gdG8gc2NoZW1hIGNvbXBvbmVudHMsIHdlIGNhbiByZXNvbHZlIHJlZmVyZW5jZXMsIGFwcGx5IGNvbXBvbmVudAorICAgICogY29uc3RyYWludHMsIGNyZWF0ZSB0aGUgRlNBIGZyb20gdGhlIGNvbnRlbnQgbW9kZWwsIGV0Yy4KKyAgICAqLworICAgIC8qCisgICAgKiBSZXNvbHZlIHJlZmVyZW5jZXMgb2YuLgorICAgICoKKyAgICAqIDEuIGVsZW1lbnQgZGVjbGFyYXRpb25zOgorICAgICogICAtIHRoZSB0eXBlIGRlZmluaXRpb24KKyAgICAqICAgLSB0aGUgc3Vic3RpdHV0aW9uIGdyb3VwIGFmZmlsaWF0aW9uCisgICAgKiAyLiBzaW1wbGUvY29tcGxleCB0eXBlczoKKyAgICAqICAgLSB0aGUgYmFzZSB0eXBlIGRlZmluaXRpb24KKyAgICAqICAgLSB0aGUgbWVtYmVyVHlwZXMgb2YgdW5pb24gdHlwZXMKKyAgICAqICAgLSB0aGUgaXRlbVR5cGUgb2YgbGlzdCB0eXBlcworICAgICogMy4gYXR0cmlidXRlcyBkZWNsYXJhdGlvbnMgYW5kIGF0dHJpYnV0ZSB1c2VzOgorICAgICogICAtIHRoZSB0eXBlIGRlZmluaXRpb24KKyAgICAqICAgLSBpZiBhbiBhdHRyaWJ1dGUgdXNlLCB0aGVuIHRoZSBhdHRyaWJ1dGUgZGVjbGFyYXRpb24KKyAgICAqIDQuIGF0dHJpYnV0ZSBncm91cCByZWZlcmVuY2VzOgorICAgICogICAtIHRoZSBhdHRyaWJ1dGUgZ3JvdXAgZGVmaW5pdGlvbgorICAgICogNS4gcGFydGljbGVzOgorICAgICogICAtIHRoZSB0ZXJtIG9mIHRoZSBwYXJ0aWNsZSAoZS5nLiBhIG1vZGVsIGdyb3VwKQorICAgICogNi4gSURDIGtleS1yZWZlcmVuY2VzOgorICAgICogICAtIHRoZSByZWZlcmVuY2VkIElEQyAna2V5JyBvciAndW5pcXVlJyBkZWZpbml0aW9uCisgICAgKiA3LiBBdHRyaWJ1dGUgcHJvaGliaXRpb25zIHdoaWNoIGhhZCBhICJyZWYiIGF0dHJpYnV0ZS4KKyAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBuYkl0ZW1zOyBpKyspIHsKKwlpdGVtID0gaXRlbXNbaV07CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0VMRU1FTlQ6CisJCXhtbFNjaGVtYVJlc29sdmVFbGVtZW50UmVmZXJlbmNlcygKKwkJICAgICh4bWxTY2hlbWFFbGVtZW50UHRyKSBpdGVtLCBwY3R4dCk7CisJCUZJWEhGQUlMVVJFOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDoKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFOgorCQl4bWxTY2hlbWFSZXNvbHZlVHlwZVJlZmVyZW5jZXMoCisJCSAgICAoeG1sU2NoZW1hVHlwZVB0cikgaXRlbSwgcGN0eHQpOworCQlGSVhIRkFJTFVSRTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURToKKwkJeG1sU2NoZW1hUmVzb2x2ZUF0dHJUeXBlUmVmZXJlbmNlcygKKwkJICAgICh4bWxTY2hlbWFBdHRyaWJ1dGVQdHIpIGl0ZW0sIHBjdHh0KTsKKwkJRklYSEZBSUxVUkU7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVfVVNFOgorCQl4bWxTY2hlbWFSZXNvbHZlQXR0clVzZVJlZmVyZW5jZXMoCisJCSAgICAoeG1sU2NoZW1hQXR0cmlidXRlVXNlUHRyKSBpdGVtLCBwY3R4dCk7CisJCUZJWEhGQUlMVVJFOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0VYVFJBX1FOQU1FUkVGOgorCQlpZiAoKFdYU19RTkFNRV9DQVNUIGl0ZW0pLT5pdGVtVHlwZSA9PQorCQkgICAgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQKQorCQl7CisJCSAgICB4bWxTY2hlbWFSZXNvbHZlQXR0ckdyb3VwUmVmZXJlbmNlcygKKwkJCVdYU19RTkFNRV9DQVNUIGl0ZW0sIHBjdHh0KTsKKwkJfQorCQlGSVhIRkFJTFVSRTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX1NFUVVFTkNFOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9DSE9JQ0U6CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0FMTDoKKwkJeG1sU2NoZW1hUmVzb2x2ZU1vZGVsR3JvdXBQYXJ0aWNsZVJlZmVyZW5jZXMocGN0eHQsCisJCSAgICBXWFNfTU9ERUxfR1JPVVBfQ0FTVCBpdGVtKTsKKwkJRklYSEZBSUxVUkU7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfVU5JUVVFOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9JRENfS0VZUkVGOgorCQl4bWxTY2hlbWFSZXNvbHZlSURDS2V5UmVmZXJlbmNlcygKKwkJICAgICh4bWxTY2hlbWFJRENQdHIpIGl0ZW0sIHBjdHh0KTsKKwkJRklYSEZBSUxVUkU7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfRVhUUkFfQVRUUl9VU0VfUFJPSElCOgorCQkvKgorCQkqIEhhbmRsZSBhdHRyaWJ1ZSBwcm9oaWJpdGlvbiB3aGljaCBoYWQgYQorCQkqICJyZWYiIGF0dHJpYnV0ZS4KKwkJKi8KKwkJeG1sU2NoZW1hUmVzb2x2ZUF0dHJVc2VQcm9oaWJSZWZlcmVuY2VzKAorCQkgICAgV1hTX0FUVFJfUFJPSElCX0NBU1QgaXRlbSwgcGN0eHQpOworCQlGSVhIRkFJTFVSRTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKHBjdHh0LT5uYmVycm9ycyAhPSAwKQorCWdvdG8gZXhpdF9lcnJvcjsKKworICAgIC8qCisgICAgKiBOb3cgdGhhdCBhbGwgcmVmZXJlbmNlcyBhcmUgcmVzb2x2ZWQgd2UKKyAgICAqIGNhbiBjaGVjayBmb3IgY2lyY3VsYXJpdHkgb2YuLi4KKyAgICAqIDEuIHRoZSBiYXNlIGF4aXMgb2YgdHlwZSBkZWZpbml0aW9ucworICAgICogMi4gbmVzdGVkIG1vZGVsIGdyb3VwIGRlZmluaXRpb25zCisgICAgKiAzLiBuZXN0ZWQgYXR0cmlidXRlIGdyb3VwIGRlZmluaXRpb25zCisgICAgKiBUT0RPOiBjaGVjayBmb3IgY2lyY3VhbCBzdWJzdGl0dXRpb24gZ3JvdXBzLgorICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IG5iSXRlbXM7IGkrKykgeworCWl0ZW0gPSBpdGVtc1tpXTsKKwkvKgorCSogTGV0J3MgYmV0dGVyIHN0b3Agb24gdGhlIGZpcnN0IGVycm9yIGhlcmUuCisJKi8KKwlzd2l0Y2ggKGl0ZW0tPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ09NUExFWDoKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFOgorCQl4bWxTY2hlbWFDaGVja1R5cGVEZWZDaXJjdWxhcigKKwkJICAgICh4bWxTY2hlbWFUeXBlUHRyKSBpdGVtLCBwY3R4dCk7CisJCUZJWEhGQUlMVVJFOworCQlpZiAocGN0eHQtPm5iZXJyb3JzICE9IDApCisJCSAgICBnb3RvIGV4aXRfZXJyb3I7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9HUk9VUDoKKwkJeG1sU2NoZW1hQ2hlY2tHcm91cERlZkNpcmN1bGFyKAorCQkgICAgKHhtbFNjaGVtYU1vZGVsR3JvdXBEZWZQdHIpIGl0ZW0sIHBjdHh0KTsKKwkJRklYSEZBSUxVUkU7CisJCWlmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkKKwkJICAgIGdvdG8gZXhpdF9lcnJvcjsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURUdST1VQOgorCQl4bWxTY2hlbWFDaGVja0F0dHJHcm91cENpcmN1bGFyKAorCQkgICAgKHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwUHRyKSBpdGVtLCBwY3R4dCk7CisJCUZJWEhGQUlMVVJFOworCQlpZiAocGN0eHQtPm5iZXJyb3JzICE9IDApCisJCSAgICBnb3RvIGV4aXRfZXJyb3I7CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIGlmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkKKwlnb3RvIGV4aXRfZXJyb3I7CisgICAgLyoKKyAgICAqIE1vZGVsIGdyb3VwIGRlZmluaXRpb24gcmVmZXJlbmNlczoKKyAgICAqIFN1Y2ggYSByZWZlcmVuY2UgaXMgcmVmbGVjdGVkIGJ5IGEgcGFydGljbGUgYXQgdGhlIGNvbXBvbmVudAorICAgICogbGV2ZWwuIFVudGlsIG5vdyB0aGUgJ3Rlcm0nIG9mIHN1Y2ggcGFydGljbGVzIHBvaW50ZWQKKyAgICAqIHRvIHRoZSBtb2RlbCBncm91cCBkZWZpbml0aW9uOyB0aGlzIHdhcyBkb25lLCBpbiBvcmRlciB0bworICAgICogZWFzZSBjaXJjdWxhcml0eSBjaGVja3MuIE5vdyB3ZSBuZWVkIHRvIHNldCB0aGUgJ3Rlcm0nIG9mCisgICAgKiBzdWNoIHBhcnRpY2xlcyB0byB0aGUgbW9kZWwgZ3JvdXAgb2YgdGhlIG1vZGVsIGdyb3VwIGRlZmluaXRpb24uCisgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJJdGVtczsgaSsrKSB7CisJaXRlbSA9IGl0ZW1zW2ldOworCXN3aXRjaCAoaXRlbS0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9TRVFVRU5DRToKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQ0hPSUNFOgorCQl4bWxTY2hlbWFNb2RlbEdyb3VwVG9Nb2RlbEdyb3VwRGVmRml4dXAocGN0eHQsCisJCSAgICBXWFNfTU9ERUxfR1JPVVBfQ0FTVCBpdGVtKTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKHBjdHh0LT5uYmVycm9ycyAhPSAwKQorCWdvdG8gZXhpdF9lcnJvcjsKKyAgICAvKgorICAgICogRXhwYW5kIGF0dHJpYnV0ZSBncm91cCByZWZlcmVuY2VzIG9mIGF0dHJpYnV0ZSBncm91cCBkZWZpbml0aW9ucy4KKyAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBuYkl0ZW1zOyBpKyspIHsKKwlpdGVtID0gaXRlbXNbaV07CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9BVFRSSUJVVEVHUk9VUDoKKwkJaWYgKCghIFdYU19BVFRSX0dST1VQX0VYUEFOREVEKGl0ZW0pKSAmJgorCQkgICAgV1hTX0FUVFJfR1JPVVBfSEFTX1JFRlMoaXRlbSkpCisJCXsKKwkJICAgIHhtbFNjaGVtYUF0dHJpYnV0ZUdyb3VwRXhwYW5kUmVmcyhwY3R4dCwKKwkJCVdYU19BVFRSX0dST1VQX0NBU1QgaXRlbSk7CisJCSAgICBGSVhIRkFJTFVSRTsKKwkJfQorCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorICAgIH0KKyAgICBpZiAocGN0eHQtPm5iZXJyb3JzICE9IDApCisJZ290byBleGl0X2Vycm9yOworICAgIC8qCisgICAgKiBGaXJzdCBjb21wdXRlIHRoZSB2YXJpZXR5IG9mIHNpbXBsZSB0eXBlcy4gVGhpcyBpcyBuZWVkZWQgYXMKKyAgICAqIGEgc2VwZXJhdGUgc3RlcCwgc2luY2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGJlIGFibGUgdG8gZGV0ZWN0CisgICAgKiBjaXJjdWxhciB1bmlvbiB0eXBlcyBpbiBhbGwgY2FzZXMuCisgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJJdGVtczsgaSsrKSB7CisJaXRlbSA9IGl0ZW1zW2ldOworCXN3aXRjaCAoaXRlbS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFOgorCQlpZiAoV1hTX0lTX1RZUEVfTk9UX0ZJWEVEXzEoKHhtbFNjaGVtYVR5cGVQdHIpIGl0ZW0pKSB7CisJCSAgICB4bWxTY2hlbWFGaXh1cFNpbXBsZVR5cGVTdGFnZU9uZShwY3R4dCwKKwkJCSh4bWxTY2hlbWFUeXBlUHRyKSBpdGVtKTsKKwkJICAgIEZJWEhGQUlMVVJFOworCQl9CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIGlmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkKKwlnb3RvIGV4aXRfZXJyb3I7CisgICAgLyoKKyAgICAqIERldGVjdCBjaXJjdWxhciB1bmlvbiB0eXBlcy4gTm90ZSB0aGF0IHRoaXMgbmVlZHMgdGhlIHZhcmlldHkgdG8KKyAgICAqIGJlIGFscmVhZHkgY29tcHV0ZWQuCisgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJJdGVtczsgaSsrKSB7CisJaXRlbSA9IGl0ZW1zW2ldOworCXN3aXRjaCAoaXRlbS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfU0lNUExFOgorCQlpZiAoKCh4bWxTY2hlbWFUeXBlUHRyKSBpdGVtKS0+bWVtYmVyVHlwZXMgIT0gTlVMTCkgeworCQkgICAgeG1sU2NoZW1hQ2hlY2tVbmlvblR5cGVEZWZDaXJjdWxhcihwY3R4dCwKKwkJCSh4bWxTY2hlbWFUeXBlUHRyKSBpdGVtKTsKKwkJICAgIEZJWEhGQUlMVVJFOworCQl9CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIGlmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkKKwlnb3RvIGV4aXRfZXJyb3I7CisKKyAgICAvKgorICAgICogRG8gdGhlIGNvbXBsZXRlIHR5cGUgZml4dXAgZm9yIHNpbXBsZSB0eXBlcy4KKyAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBuYkl0ZW1zOyBpKyspIHsKKwlpdGVtID0gaXRlbXNbaV07CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9TSU1QTEU6CisJCWlmIChXWFNfSVNfVFlQRV9OT1RfRklYRUQoV1hTX1RZUEVfQ0FTVCBpdGVtKSkgeworCQkgICAgeG1sU2NoZW1hRml4dXBTaW1wbGVUeXBlU3RhZ2VUd28ocGN0eHQsIFdYU19UWVBFX0NBU1QgaXRlbSk7CisJCSAgICBGSVhIRkFJTFVSRTsKKwkJfQorCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorICAgIH0KKyAgICBpZiAocGN0eHQtPm5iZXJyb3JzICE9IDApCisJZ290byBleGl0X2Vycm9yOworICAgIC8qCisgICAgKiBBdCB0aGlzIHBvaW50IHdlIG5lZWQgYnVpbGQgYW5kIGNoZWNrIGFsbCBzaW1wbGUgdHlwZXMuCisgICAgKi8KKyAgICAvKgorICAgICogQXBwbHkgY29udHJhaW50cyBmb3IgYXR0cmlidXRlIGRlY2xhcmF0aW9ucy4KKyAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBuYkl0ZW1zOyBpKyspIHsKKwlpdGVtID0gaXRlbXNbaV07CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9UWVBFX0FUVFJJQlVURToKKwkJeG1sU2NoZW1hQ2hlY2tBdHRyUHJvcHNDb3JyZWN0KHBjdHh0LCBXWFNfQVRUUl9DQVNUIGl0ZW0pOworCQlGSVhIRkFJTFVSRTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKHBjdHh0LT5uYmVycm9ycyAhPSAwKQorCWdvdG8gZXhpdF9lcnJvcjsKKyAgICAvKgorICAgICogQXBwbHkgY29uc3RyYWludHMgZm9yIGF0dHJpYnV0ZSB1c2VzLgorICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IG5iSXRlbXM7IGkrKykgeworCWl0ZW0gPSBpdGVtc1tpXTsKKwlzd2l0Y2ggKGl0ZW0tPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFX1VTRToKKwkJaWYgKCgoeG1sU2NoZW1hQXR0cmlidXRlVXNlUHRyKWl0ZW0pLT5kZWZWYWx1ZSAhPSBOVUxMKSB7CisJCSAgICB4bWxTY2hlbWFDaGVja0F0dHJVc2VQcm9wc0NvcnJlY3QocGN0eHQsCisJCQlXWFNfQVRUUl9VU0VfQ0FTVCBpdGVtKTsKKwkJICAgIEZJWEhGQUlMVVJFOworCQl9CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIGlmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkKKwlnb3RvIGV4aXRfZXJyb3I7CisKKyAgICAvKgorICAgICogQXBwbHkgY29uc3RyYWludHMgZm9yIGF0dHJpYnV0ZSBncm91cCBkZWZpbml0aW9ucy4KKyAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBuYkl0ZW1zOyBpKyspIHsKKwlpdGVtID0gaXRlbXNbaV07CisJc3dpdGNoIChpdGVtLT50eXBlKSB7CisJY2FzZSBYTUxfU0NIRU1BX1RZUEVfQVRUUklCVVRFR1JPVVA6CisJICAgIGlmICgoIChXWFNfQVRUUl9HUk9VUF9DQVNUIGl0ZW0pLT5hdHRyVXNlcyAhPSBOVUxMKSAmJgorCQkoIChXWFNfTElTVF9DQVNUIChXWFNfQVRUUl9HUk9VUF9DQVNUIGl0ZW0pLT5hdHRyVXNlcyktPm5iSXRlbXMgPiAxKSkKKwkgICAgeworCQl4bWxTY2hlbWFDaGVja0FHUHJvcHNDb3JyZWN0KHBjdHh0LCBXWFNfQVRUUl9HUk9VUF9DQVNUIGl0ZW0pOworCQlGSVhIRkFJTFVSRTsKKwkgICAgfQorCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKwl9CisgICAgfQorICAgIGlmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkKKwlnb3RvIGV4aXRfZXJyb3I7CisKKyAgICAvKgorICAgICogQXBwbHkgY29uc3RyYWludHMgZm9yIHJlZGVmaW5pdGlvbnMuCisgICAgKi8KKyAgICBpZiAoV1hTX0NPTlNUUlVDVE9SKHBjdHh0KS0+cmVkZWZzICE9IE5VTEwpCisJeG1sU2NoZW1hQ2hlY2tTUkNSZWRlZmluZVNlY29uZChwY3R4dCk7CisgICAgaWYgKHBjdHh0LT5uYmVycm9ycyAhPSAwKQorCWdvdG8gZXhpdF9lcnJvcjsKKworICAgIC8qCisgICAgKiBDb21wbGV4IHR5cGVzIGFyZSBidWlsZGVkIGFuZCBjaGVja2VkLgorICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IG5iSXRlbXM7IGkrKykgeworCWl0ZW0gPSBjb24tPnBlbmRpbmctPml0ZW1zW2ldOworCXN3aXRjaCAoaXRlbS0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOgorCQlpZiAoV1hTX0lTX1RZUEVfTk9UX0ZJWEVEKFdYU19UWVBFX0NBU1QgaXRlbSkpIHsKKwkJICAgIHhtbFNjaGVtYUZpeHVwQ29tcGxleFR5cGUocGN0eHQsIFdYU19UWVBFX0NBU1QgaXRlbSk7CisJCSAgICBGSVhIRkFJTFVSRTsKKwkJfQorCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorICAgIH0KKyAgICBpZiAocGN0eHQtPm5iZXJyb3JzICE9IDApCisJZ290byBleGl0X2Vycm9yOworCisgICAgLyoKKyAgICAqIFRoZSBsaXN0IGNvdWxkIGhhdmUgY2hhbmdlZCwgc2luY2UgeG1sU2NoZW1hRml4dXBDb21wbGV4VHlwZSgpCisgICAgKiB3aWxsIGNyZWF0ZSBwYXJ0aWNsZXMgYW5kIG1vZGVsIGdyb3VwcyBpbiBzb21lIGNhc2VzLgorICAgICovCisgICAgaXRlbXMgPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIgKikgY29uLT5wZW5kaW5nLT5pdGVtczsKKyAgICBuYkl0ZW1zID0gY29uLT5wZW5kaW5nLT5uYkl0ZW1zOworCisgICAgLyoKKyAgICAqIEFwcGx5IHNvbWUgY29uc3RyYWludHMgZm9yIGVsZW1lbnQgZGVjbGFyYXRpb25zLgorICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IG5iSXRlbXM7IGkrKykgeworCWl0ZW0gPSBpdGVtc1tpXTsKKwlzd2l0Y2ggKGl0ZW0tPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVDoKKwkJZWxlbURlY2wgPSAoeG1sU2NoZW1hRWxlbWVudFB0cikgaXRlbTsKKworCQlpZiAoKGVsZW1EZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fSU5URVJOQUxfQ0hFQ0tFRCkgPT0gMCkKKwkJeworCQkgICAgeG1sU2NoZW1hQ2hlY2tFbGVtZW50RGVjbENvbXBvbmVudCgKKwkJCSh4bWxTY2hlbWFFbGVtZW50UHRyKSBlbGVtRGVjbCwgcGN0eHQpOworCQkgICAgRklYSEZBSUxVUkU7CisJCX0KKworI2lmZGVmIFdYU19FTEVNX0RFQ0xfQ09OU19FTkFCTEVECisJCS8qCisJCSogU2NoZW1hIENvbXBvbmVudCBDb25zdHJhaW50OiBFbGVtZW50IERlY2xhcmF0aW9ucyBDb25zaXN0ZW50CisJCSogQXBwbHkgdGhpcyBjb25zdHJhaW50IHRvIGxvY2FsIHR5cGVzIG9mIGVsZW1lbnQgZGVjbGFyYXRpb25zLgorCQkqLworCQlpZiAoKFdYU19FTEVNX1RZUEVERUYoZWxlbURlY2wpICE9IE5VTEwpICYmCisJCSAgICAoV1hTX0lTX0NPTVBMRVgoV1hTX0VMRU1fVFlQRURFRihlbGVtRGVjbCkpKSAmJgorCQkgICAgKFdYU19UWVBFX0lTX0xPQ0FMKFdYU19FTEVNX1RZUEVERUYoZWxlbURlY2wpKSkpCisJCXsKKwkJICAgIHhtbFNjaGVtYUNoZWNrRWxlbWVudERlY2xDb25zaXN0ZW50KHBjdHh0LAorCQkJV1hTX0JBU0lDX0NBU1QgZWxlbURlY2wsCisJCQlXWFNfVFlQRV9QQVJUSUNMRShXWFNfRUxFTV9UWVBFREVGKGVsZW1EZWNsKSksCisJCQlOVUxMLCBOVUxMLCAwKTsKKwkJfQorI2VuZGlmCisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisgICAgfQorICAgIGlmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkKKwlnb3RvIGV4aXRfZXJyb3I7CisKKyAgICAvKgorICAgICogRmluYWxseSB3ZSBjYW4gYnVpbGQgdGhlIGF1dG9tYXRvbiBmcm9tIHRoZSBjb250ZW50IG1vZGVsIG9mCisgICAgKiBjb21wbGV4IHR5cGVzLgorICAgICovCisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJJdGVtczsgaSsrKSB7CisJaXRlbSA9IGl0ZW1zW2ldOworCXN3aXRjaCAoaXRlbS0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9TQ0hFTUFfVFlQRV9DT01QTEVYOgorCQl4bWxTY2hlbWFCdWlsZENvbnRlbnRNb2RlbCgoeG1sU2NoZW1hVHlwZVB0cikgaXRlbSwgcGN0eHQpOworCQkvKiBGSVhIRkFJTFVSRTsgKi8KKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWJyZWFrOworCX0KKyAgICB9CisgICAgaWYgKHBjdHh0LT5uYmVycm9ycyAhPSAwKQorCWdvdG8gZXhpdF9lcnJvcjsKKyAgICAvKgorICAgICogVVJHRU5UIFRPRE86IGNvcy1lbGVtZW50LWNvbnNpc3RlbnQKKyAgICAqLworICAgIGdvdG8gZXhpdDsKKworZXhpdF9lcnJvcjoKKyAgICByZXQgPSBwY3R4dC0+ZXJyOworICAgIGdvdG8gZXhpdDsKKworZXhpdF9mYWlsdXJlOgorICAgIHJldCA9IC0xOworCitleGl0OgorICAgIC8qCisgICAgKiBSZXNldCB0aGUgY29uc3RydWN0b3IuIFRoaXMgaXMgbmVlZGVkIGZvciBYU0kgYWNxdWlzaXRpb24sIHNpbmNlCisgICAgKiB0aG9zZSBpdGVtcyB3aWxsIGJlIHByb2Nlc3NlZCBvdmVyIGFuZCBvdmVyIGFnYWluIGZvciBldmVyeSBYU0kKKyAgICAqIGlmIG5vdCBjbGVhcmVkIGhlcmUuCisgICAgKi8KKyAgICBjb24tPmJ1Y2tldCA9IG9sZGJ1Y2tldDsKKyAgICBjb24tPnBlbmRpbmctPm5iSXRlbXMgPSAwOworICAgIGlmIChjb24tPnN1YnN0R3JvdXBzICE9IE5VTEwpIHsKKwl4bWxIYXNoRnJlZShjb24tPnN1YnN0R3JvdXBzLAorCSAgICAoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxTY2hlbWFTdWJzdEdyb3VwRnJlZSk7CisJY29uLT5zdWJzdEdyb3VwcyA9IE5VTEw7CisgICAgfQorICAgIGlmIChjb24tPnJlZGVmcyAhPSBOVUxMKSB7CisJeG1sU2NoZW1hUmVkZWZMaXN0RnJlZShjb24tPnJlZGVmcyk7CisJY29uLT5yZWRlZnMgPSBOVUxMOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKy8qKgorICogeG1sU2NoZW1hUGFyc2U6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIHBhcnNlIGEgc2NoZW1hIGRlZmluaXRpb24gcmVzb3VyY2UgYW5kIGJ1aWxkIGFuIGludGVybmFsCisgKiBYTUwgU2hlbWEgc3RydXR1cmUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5zdGFuY2VzLgorICoKKyAqIFJldHVybnMgdGhlIGludGVybmFsIFhNTCBTY2hlbWEgc3RydWN0dXJlIGJ1aWx0IGZyb20gdGhlIHJlc291cmNlIG9yCisgKiAgICAgICAgIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxTY2hlbWFQdHIKK3htbFNjaGVtYVBhcnNlKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCkKK3sKKyAgICB4bWxTY2hlbWFQdHIgbWFpblNjaGVtYSA9IE5VTEw7CisgICAgeG1sU2NoZW1hQnVja2V0UHRyIGJ1Y2tldCA9IE5VTEw7CisgICAgaW50IHJlczsKKworICAgIC8qCisgICAgKiBUaGlzIG9uZSBpcyB1c2VkIGlmIHRoZSBzY2hlbWEgdG8gYmUgcGFyc2VkIHdhcyBzcGVjaWZpZWQgdmlhCisgICAgKiB0aGUgQVBJOyBpLmUuIG5vdCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSB2YWxpZGF0ZWQgaW5zdGFuY2UgZG9jdW1lbnQuCisgICAgKi8KKworICAgIHhtbFNjaGVtYUluaXRUeXBlcygpOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIC8qIFRPRE86IEluaXQgdGhlIGNvbnRleHQuIElzIHRoaXMgYWxsIHdlIG5lZWQ/Ki8KKyAgICBjdHh0LT5uYmVycm9ycyA9IDA7CisgICAgY3R4dC0+ZXJyID0gMDsKKyAgICBjdHh0LT5jb3VudGVyID0gMDsKKworICAgIC8qIENyZWF0ZSB0aGUgKm1haW4qIHNjaGVtYS4gKi8KKyAgICBtYWluU2NoZW1hID0geG1sU2NoZW1hTmV3U2NoZW1hKGN0eHQpOworICAgIGlmIChtYWluU2NoZW1hID09IE5VTEwpCisJZ290byBleGl0X2ZhaWx1cmU7CisgICAgLyoKKyAgICAqIENyZWF0ZSB0aGUgc2NoZW1hIGNvbnN0cnVjdG9yLgorICAgICovCisgICAgaWYgKGN0eHQtPmNvbnN0cnVjdG9yID09IE5VTEwpIHsKKwljdHh0LT5jb25zdHJ1Y3RvciA9IHhtbFNjaGVtYUNvbnN0cnVjdGlvbkN0eHRDcmVhdGUoY3R4dC0+ZGljdCk7CisJaWYgKGN0eHQtPmNvbnN0cnVjdG9yID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKwkvKiBUYWtlIG93bmVyc2hpcCBvZiB0aGUgY29uc3RydWN0b3IgdG8gYmUgYWJsZSB0byBmcmVlIGl0LiAqLworCWN0eHQtPm93bnNDb25zdHJ1Y3RvciA9IDE7CisgICAgfQorICAgIGN0eHQtPmNvbnN0cnVjdG9yLT5tYWluU2NoZW1hID0gbWFpblNjaGVtYTsKKyAgICAvKgorICAgICogTG9jYXRlIGFuZCBhZGQgdGhlIHNjaGVtYSBkb2N1bWVudC4KKyAgICAqLworICAgIHJlcyA9IHhtbFNjaGVtYUFkZFNjaGVtYURvYyhjdHh0LCBYTUxfU0NIRU1BX1NDSEVNQV9NQUlOLAorCWN0eHQtPlVSTCwgY3R4dC0+ZG9jLCBjdHh0LT5idWZmZXIsIGN0eHQtPnNpemUsIE5VTEwsCisJTlVMTCwgTlVMTCwgJmJ1Y2tldCk7CisgICAgaWYgKHJlcyA9PSAtMSkKKwlnb3RvIGV4aXRfZmFpbHVyZTsKKyAgICBpZiAocmVzICE9IDApCisJZ290byBleGl0OworCisgICAgaWYgKGJ1Y2tldCA9PSBOVUxMKSB7CisJLyogVE9ETzogRXJyb3IgY29kZSwgYWN0dWFsbHkgd2UgZmFpbGVkIHRvICpsb2NhdGUqIHRoZSBzY2hlbWEuICovCisJaWYgKGN0eHQtPlVSTCkKKwkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgY3R4dCwgWE1MX1NDSEVNQVBfRkFJTEVEX0xPQUQsCisJCU5VTEwsIE5VTEwsCisJCSJGYWlsZWQgdG8gbG9jYXRlIHRoZSBtYWluIHNjaGVtYSByZXNvdXJjZSBhdCAnJXMnIiwKKwkJY3R4dC0+VVJMLCBOVUxMKTsKKwllbHNlCisJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIGN0eHQsIFhNTF9TQ0hFTUFQX0ZBSUxFRF9MT0FELAorCQlOVUxMLCBOVUxMLAorCQkiRmFpbGVkIHRvIGxvY2F0ZSB0aGUgbWFpbiBzY2hlbWEgcmVzb3VyY2UiLAorCQkgICAgTlVMTCwgTlVMTCk7CisJZ290byBleGl0OworICAgIH0KKyAgICAvKiBUaGVuIGRvIHRoZSBwYXJzaW5nIGZvciBnb29kLiAqLworICAgIGlmICh4bWxTY2hlbWFQYXJzZU5ld0RvY1dpdGhDb250ZXh0KGN0eHQsIG1haW5TY2hlbWEsIGJ1Y2tldCkgPT0gLTEpCisJZ290byBleGl0X2ZhaWx1cmU7CisgICAgaWYgKGN0eHQtPm5iZXJyb3JzICE9IDApCisJZ290byBleGl0OworCisgICAgbWFpblNjaGVtYS0+ZG9jID0gYnVja2V0LT5kb2M7CisgICAgbWFpblNjaGVtYS0+cHJlc2VydmUgPSBjdHh0LT5wcmVzZXJ2ZTsKKworICAgIGN0eHQtPnNjaGVtYSA9IG1haW5TY2hlbWE7CisKKyAgICBpZiAoeG1sU2NoZW1hRml4dXBDb21wb25lbnRzKGN0eHQsIFdYU19DT05TVFJVQ1RPUihjdHh0KS0+bWFpbkJ1Y2tldCkgPT0gLTEpCisJZ290byBleGl0X2ZhaWx1cmU7CisKKyAgICAvKgorICAgICogVE9ETzogVGhpcyBpcyBub3QgbmljZSwgc2luY2Ugd2UgY2Fubm90IGRpc3Rpbmd1aXNoIGZyb20gdGhlCisgICAgKiByZXN1bHQgaWYgdGhlcmUgd2FzIGFuIGludGVybmFsIGVycm9yIG9yIG5vdC4KKyAgICAqLworZXhpdDoKKyAgICBpZiAoY3R4dC0+bmJlcnJvcnMgIT0gMCkgeworCWlmIChtYWluU2NoZW1hKSB7CisJICAgIHhtbFNjaGVtYUZyZWUobWFpblNjaGVtYSk7CisJICAgIG1haW5TY2hlbWEgPSBOVUxMOworCX0KKwlpZiAoY3R4dC0+Y29uc3RydWN0b3IpIHsKKwkgICAgeG1sU2NoZW1hQ29uc3RydWN0aW9uQ3R4dEZyZWUoY3R4dC0+Y29uc3RydWN0b3IpOworCSAgICBjdHh0LT5jb25zdHJ1Y3RvciA9IE5VTEw7CisJICAgIGN0eHQtPm93bnNDb25zdHJ1Y3RvciA9IDA7CisJfQorICAgIH0KKyAgICBjdHh0LT5zY2hlbWEgPSBOVUxMOworICAgIHJldHVybihtYWluU2NoZW1hKTsKK2V4aXRfZmFpbHVyZToKKyAgICAvKgorICAgICogUXVpdGUgdmVyYm9zZSwgYnV0IHNob3VsZCBjYXRjaCBpbnRlcm5hbCBlcnJvcnMsIHdoaWNoIHdlcmUKKyAgICAqIG5vdCBjb21tdW5pdGF0ZWQuCisgICAgKi8KKyAgICBpZiAobWFpblNjaGVtYSkgeworICAgICAgICB4bWxTY2hlbWFGcmVlKG1haW5TY2hlbWEpOworCW1haW5TY2hlbWEgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+Y29uc3RydWN0b3IpIHsKKwl4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0RnJlZShjdHh0LT5jb25zdHJ1Y3Rvcik7CisJY3R4dC0+Y29uc3RydWN0b3IgPSBOVUxMOworCWN0eHQtPm93bnNDb25zdHJ1Y3RvciA9IDA7CisgICAgfQorICAgIFBFUlJPUl9JTlQyKCJ4bWxTY2hlbWFQYXJzZSIsCisJIkFuIGludGVybmFsIGVycm9yIG9jY3VyZWQiKTsKKyAgICBjdHh0LT5zY2hlbWEgPSBOVUxMOworICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFTZXRQYXJzZXJFcnJvcnM6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycjogIHRoZSBlcnJvciBjYWxsYmFjaworICogQHdhcm46ICB0aGUgd2FybmluZyBjYWxsYmFjaworICogQGN0eDogIGNvbnRleHR1YWwgZGF0YSBmb3IgdGhlIGNhbGxiYWNrcworICoKKyAqIFNldCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIHVzZWQgdG8gaGFuZGxlIGVycm9ycyBmb3IgYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqLwordm9pZAoreG1sU2NoZW1hU2V0UGFyc2VyRXJyb3JzKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFWYWxpZGl0eUVycm9yRnVuYyBlcnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyB3YXJuLCB2b2lkICpjdHgpCit7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGN0eHQtPmVycm9yID0gZXJyOworICAgIGN0eHQtPndhcm5pbmcgPSB3YXJuOworICAgIGN0eHQtPmVyckN0eHQgPSBjdHg7CisgICAgaWYgKGN0eHQtPnZjdHh0ICE9IE5VTEwpCisJeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnMoY3R4dC0+dmN0eHQsIGVyciwgd2FybiwgY3R4KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFTZXRQYXJzZXJTdHJ1Y3R1cmVkRXJyb3JzOgorICogQGN0eHQ6ICBhIHNjaGVtYSBwYXJzZXIgY29udGV4dAorICogQHNlcnJvcjogIHRoZSBzdHJ1Y3R1cmVkIGVycm9yIGZ1bmN0aW9uCisgKiBAY3R4OiB0aGUgZnVuY3Rpb25zIGNvbnRleHQKKyAqCisgKiBTZXQgdGhlIHN0cnVjdHVyZWQgZXJyb3IgY2FsbGJhY2sKKyAqLwordm9pZAoreG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyh4bWxTY2hlbWFQYXJzZXJDdHh0UHRyIGN0eHQsCisJCQkJICAgeG1sU3RydWN0dXJlZEVycm9yRnVuYyBzZXJyb3IsCisJCQkJICAgdm9pZCAqY3R4KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuOworICAgIGN0eHQtPnNlcnJvciA9IHNlcnJvcjsKKyAgICBjdHh0LT5lcnJDdHh0ID0gY3R4OworICAgIGlmIChjdHh0LT52Y3R4dCAhPSBOVUxMKQorCXhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9ycyhjdHh0LT52Y3R4dCwgc2Vycm9yLCBjdHgpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldFBhcnNlckVycm9yczoKKyAqIEBjdHh0OiAgYSBYTWwtU2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAZXJyOiB0aGUgZXJyb3IgY2FsbGJhY2sgcmVzdWx0CisgKiBAd2FybjogdGhlIHdhcm5pbmcgY2FsbGJhY2sgcmVzdWx0CisgKiBAY3R4OiBjb250ZXh0dWFsIGRhdGEgZm9yIHRoZSBjYWxsYmFja3MgcmVzdWx0CisgKgorICogR2V0IHRoZSBjYWxsYmFjayBpbmZvcm1hdGlvbiB1c2VkIHRvIGhhbmRsZSBlcnJvcnMgZm9yIGEgcGFyc2VyIGNvbnRleHQKKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxTY2hlbWFHZXRQYXJzZXJFcnJvcnMoeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBjdHh0LAorCQkJIHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jICogZXJyLAorCQkJIHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMgKiB3YXJuLCB2b2lkICoqY3R4KQoreworCWlmIChjdHh0ID09IE5VTEwpCisJCXJldHVybigtMSk7CisJaWYgKGVyciAhPSBOVUxMKQorCQkqZXJyID0gY3R4dC0+ZXJyb3I7CisJaWYgKHdhcm4gIT0gTlVMTCkKKwkJKndhcm4gPSBjdHh0LT53YXJuaW5nOworCWlmIChjdHggIT0gTlVMTCkKKwkJKmN0eCA9IGN0eHQtPmVyckN0eHQ7CisJcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nOgorICogQHR5cGU6ICB0aGUgZmFjZXQgdHlwZQorICoKKyAqIENvbnZlcnQgdGhlIHhtbFNjaGVtYVR5cGVUeXBlIHRvIGEgY2hhciBzdHJpbmcuCisgKgorICogUmV0dXJucyB0aGUgY2hhciBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZhY2V0IHR5cGUgaWYgdGhlCisgKiAgICAgdHlwZSBpcyBhIGZhY2V0IGFuZCBhbiAiSW50ZXJuYWwgRXJyb3IiIHN0cmluZyBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBjb25zdCB4bWxDaGFyICoKK3htbFNjaGVtYUZhY2V0VHlwZVRvU3RyaW5nKHhtbFNjaGVtYVR5cGVUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOOgorICAgICAgICAgICAgcmV0dXJuIChCQURfQ0FTVCAicGF0dGVybiIpOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFOgorICAgICAgICAgICAgcmV0dXJuIChCQURfQ0FTVCAibWF4RXhjbHVzaXZlIik7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU6CisgICAgICAgICAgICByZXR1cm4gKEJBRF9DQVNUICJtYXhJbmNsdXNpdmUiKTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRToKKyAgICAgICAgICAgIHJldHVybiAoQkFEX0NBU1QgIm1pbkV4Y2x1c2l2ZSIpOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFOgorICAgICAgICAgICAgcmV0dXJuIChCQURfQ0FTVCAibWluSW5jbHVzaXZlIik7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFOgorICAgICAgICAgICAgcmV0dXJuIChCQURfQ0FTVCAid2hpdGVTcGFjZSIpOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT046CisgICAgICAgICAgICByZXR1cm4gKEJBRF9DQVNUICJlbnVtZXJhdGlvbiIpOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIOgorICAgICAgICAgICAgcmV0dXJuIChCQURfQ0FTVCAibGVuZ3RoIik7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEg6CisgICAgICAgICAgICByZXR1cm4gKEJBRF9DQVNUICJtYXhMZW5ndGgiKTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSDoKKyAgICAgICAgICAgIHJldHVybiAoQkFEX0NBU1QgIm1pbkxlbmd0aCIpOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFM6CisgICAgICAgICAgICByZXR1cm4gKEJBRF9DQVNUICJ0b3RhbERpZ2l0cyIpOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM6CisgICAgICAgICAgICByZXR1cm4gKEJBRF9DQVNUICJmcmFjdGlvbkRpZ2l0cyIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAoQkFEX0NBU1QgIkludGVybmFsIEVycm9yIik7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlCit4bWxTY2hlbWFHZXRXaGl0ZVNwYWNlRmFjZXRWYWx1ZSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUpCit7CisgICAgLyoKKyAgICAqIFRoZSBub3JtYWxpemF0aW9uIHR5cGUgY2FuIGJlIGNoYW5nZWQgb25seSBmb3IgdHlwZXMgd2hpY2ggYXJlIGRlcml2ZWQKKyAgICAqIGZyb20geHNkOnN0cmluZy4KKyAgICAqLworICAgIGlmICh0eXBlLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykgeworCS8qCisJKiBOb3RlIHRoYXQgd2UgYXNzdW1lIGEgd2hpdGVzcGFjZSBvZiBwcmVzZXJ2ZSBmb3IgYW55U2ltcGxlVHlwZS4KKwkqLworCWlmICgodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfU1RSSU5HKSB8fAorCSAgICAodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSkpCisJICAgIHJldHVybihYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUFJFU0VSVkUpOworCWVsc2UgaWYgKHR5cGUtPmJ1aWx0SW5UeXBlID09IFhNTF9TQ0hFTUFTX05PUk1TVFJJTkcpCisJICAgIHJldHVybihYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRSk7CisJZWxzZSB7CisJICAgIC8qCisJICAgICogRm9yIGFsbCDvv71hdG9taWPvv70gZGF0YXR5cGVzIG90aGVyIHRoYW4gc3RyaW5nIChhbmQgdHlwZXMg77+9ZGVyaXZlZO+/vQorCSAgICAqIGJ5IO+/vXJlc3RyaWN0aW9u77+9IGZyb20gaXQpIHRoZSB2YWx1ZSBvZiB3aGl0ZVNwYWNlIGlzIGZpeGVkIHRvCisJICAgICogY29sbGFwc2UKKwkgICAgKiBOb3RlIHRoYXQgdGhpcyBpbmNsdWRlcyBidWlsdC1pbiBsaXN0IGRhdGF0eXBlcy4KKwkgICAgKi8KKwkgICAgcmV0dXJuKFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSk7CisJfQorICAgIH0gZWxzZSBpZiAoV1hTX0lTX0xJU1QodHlwZSkpIHsKKwkvKgorCSogRm9yIGxpc3QgdHlwZXMgdGhlIGZhY2V0ICJ3aGl0ZVNwYWNlIiBpcyBmaXhlZCB0byAiY29sbGFwc2UiLgorCSovCisJcmV0dXJuIChYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UpOworICAgIH0gZWxzZSBpZiAoV1hTX0lTX1VOSU9OKHR5cGUpKSB7CisJcmV0dXJuIChYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTik7CisgICAgfSBlbHNlIGlmIChXWFNfSVNfQVRPTUlDKHR5cGUpKSB7CisJaWYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9XSElURVNQQUNFX1BSRVNFUlZFKQorCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRSk7CisJZWxzZSBpZiAodHlwZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX1dISVRFU1BBQ0VfUkVQTEFDRSkKKwkgICAgcmV0dXJuIChYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRSk7CisJZWxzZQorCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSk7CisgICAgfQorICAgIHJldHVybiAoLTEpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlTaW1wbGUgdHlwZSB2YWxpZGF0aW9uCQkJCSoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQkJRE9NIFZhbGlkYXRpb24gY29kZQkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFNjaGVtYUFzc2VtYmxlQnlMb2NhdGlvbjoKKyAqIEBwY3R4dDogIGEgc2NoZW1hIHBhcnNlciBjb250ZXh0CisgKiBAdmN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzY2hlbWE6IHRoZSBleGlzdGluZyBzY2hlbWEKKyAqIEBub2RlOiB0aGUgbm9kZSB0aGF0IGZpcmVkIHRoZSBhc3NlbWJsaW5nCisgKiBAbnNOYW1lOiB0aGUgbmFtZXNwYWNlIG5hbWUgb2YgdGhlIG5ldyBzY2hlbWEKKyAqIEBsb2NhdGlvbjogdGhlIGxvY2F0aW9uIG9mIHRoZSBzY2hlbWEKKyAqCisgKiBFeHBhbmRzIGFuIGV4aXN0aW5nIHNjaGVtYSBieSBhbiBhZGRpdGlvbmFsIHNjaGVtYS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIG5ldyBzY2hlbWEgaXMgY29ycmVjdCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlCisgKiBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQXNzZW1ibGVCeUxvY2F0aW9uKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSAgICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQkJICAgIHhtbE5vZGVQdHIgbm9kZSwKKwkJCSAgICBjb25zdCB4bWxDaGFyICpuc05hbWUsCisJCQkgICAgY29uc3QgeG1sQ2hhciAqbG9jYXRpb24pCit7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dDsKKyAgICB4bWxTY2hlbWFCdWNrZXRQdHIgYnVja2V0ID0gTlVMTDsKKworICAgIGlmICgodmN0eHQgPT0gTlVMTCkgfHwgKHNjaGVtYSA9PSBOVUxMKSkKKwlyZXR1cm4gKC0xKTsKKworICAgIGlmICh2Y3R4dC0+cGN0eHQgPT0gTlVMTCkgeworCVZFUlJPUl9JTlQoInhtbFNjaGVtYUFzc2VtYmxlQnlMb2NhdGlvbiIsCisJICAgICJubyBwYXJzZXIgY29udGV4dCBhdmFpbGFibGUiKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBwY3R4dCA9IHZjdHh0LT5wY3R4dDsKKyAgICBpZiAocGN0eHQtPmNvbnN0cnVjdG9yID09IE5VTEwpIHsKKwlQRVJST1JfSU5UKCJ4bWxTY2hlbWFBc3NlbWJsZUJ5TG9jYXRpb24iLAorCSAgICAibm8gY29uc3RydWN0b3IiKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICAvKgorICAgICogQWNxdWlyZSB0aGUgc2NoZW1hIGRvY3VtZW50LgorICAgICovCisgICAgbG9jYXRpb24gPSB4bWxTY2hlbWFCdWlsZEFic29sdXRlVVJJKHBjdHh0LT5kaWN0LAorCWxvY2F0aW9uLCBub2RlKTsKKyAgICAvKgorICAgICogTm90ZSB0aGF0IHdlIHBhc3MgWE1MX1NDSEVNQV9TQ0hFTUFfSU1QT1JUIGhlcmU7CisgICAgKiB0aGUgcHJvY2VzcyB3aWxsIGF1dG9tYXRpY2FsbHkgY2hhbmdlIHRoaXMgdG8KKyAgICAqIFhNTF9TQ0hFTUFfU0NIRU1BX01BSU4gaWYgaXQgaXMgdGhlIGZpcnN0IHNjaGVtYSBkb2N1bWVudC4KKyAgICAqLworICAgIHJldCA9IHhtbFNjaGVtYUFkZFNjaGVtYURvYyhwY3R4dCwgWE1MX1NDSEVNQV9TQ0hFTUFfSU1QT1JULAorCWxvY2F0aW9uLCBOVUxMLCBOVUxMLCAwLCBub2RlLCBOVUxMLCBuc05hbWUsCisJJmJ1Y2tldCk7CisgICAgaWYgKHJldCAhPSAwKQorCXJldHVybihyZXQpOworICAgIGlmIChidWNrZXQgPT0gTlVMTCkgeworCS8qCisJKiBHZW5lcmF0ZSBhIHdhcm5pbmcgdGhhdCB0aGUgZG9jdW1lbnQgY291bGQgbm90IGJlIGxvY2F0ZWQuCisJKi8KKwl4bWxTY2hlbWFDdXN0b21XYXJuaW5nKEFDVFhUX0NBU1QgdmN0eHQsIFhNTF9TQ0hFTUFWX01JU0MsCisJICAgIG5vZGUsIE5VTEwsCisJICAgICJUaGUgZG9jdW1lbnQgYXQgbG9jYXRpb24gJyVzJyBjb3VsZCBub3QgYmUgYWNxdWlyZWQiLAorCSAgICBsb2NhdGlvbiwgTlVMTCwgTlVMTCk7CisJcmV0dXJuKHJldCk7CisgICAgfQorICAgIC8qCisgICAgKiBUaGUgZmlyc3QgbG9jYXRlZCBzY2hlbWEgd2lsbCBiZSBoYW5kbGVkIGFzIGlmIGFsbCBvdGhlcgorICAgICogc2NoZW1hcyBpbXBvcnRlZCBieSBYU0kgd2VyZSBpbXBvcnRlZCBieSB0aGlzIGZpcnN0IHNjaGVtYS4KKyAgICAqLworICAgIGlmICgoYnVja2V0ICE9IE5VTEwpICYmCisJKFdYU19DT05TVFJVQ1RPUihwY3R4dCktPmJ1Y2tldCA9PSBOVUxMKSkKKwlXWFNfQ09OU1RSVUNUT1IocGN0eHQpLT5idWNrZXQgPSBidWNrZXQ7CisgICAgLyoKKyAgICAqIFRPRE86IElzIHRoaXMgaGFuZGxlZCBsaWtlIGFuIGltcG9ydD8gSS5lLiBpcyBpdCBub3QgYW4gZXJyb3IKKyAgICAqIGlmIHRoZSBzY2hlbWEgY2Fubm90IGJlIGxvY2F0ZWQ/CisgICAgKi8KKyAgICBpZiAoKGJ1Y2tldCA9PSBOVUxMKSB8fCAoISBDQU5fUEFSU0VfU0NIRU1BKGJ1Y2tldCkpKQorCXJldHVybigwKTsKKyAgICAvKgorICAgICogV2Ugd2lsbCByZXVzZSB0aGUgcGFyc2VyIGNvbnRleHQgZm9yIGV2ZXJ5IHNjaGVtYSBpbXBvcnRlZAorICAgICogZGlyZWN0bHkgdmlhIFhTSS4gU28gcmVzZXQgdGhlIGNvbnRleHQuCisgICAgKi8KKyAgICBwY3R4dC0+bmJlcnJvcnMgPSAwOworICAgIHBjdHh0LT5lcnIgPSAwOworICAgIHBjdHh0LT5kb2MgPSBidWNrZXQtPmRvYzsKKworICAgIHJldCA9IHhtbFNjaGVtYVBhcnNlTmV3RG9jV2l0aENvbnRleHQocGN0eHQsIHNjaGVtYSwgYnVja2V0KTsKKyAgICBpZiAocmV0ID09IC0xKSB7CisJcGN0eHQtPmRvYyA9IE5VTEw7CisJZ290byBleGl0X2ZhaWx1cmU7CisgICAgfQorICAgIC8qIFBhcmFub2lkIGVycm9yIGNoYW5uZWxsaW5nLiAqLworICAgIGlmICgocmV0ID09IDApICYmIChwY3R4dC0+bmJlcnJvcnMgIT0gMCkpCisJcmV0ID0gcGN0eHQtPmVycjsKKyAgICBpZiAocGN0eHQtPm5iZXJyb3JzID09IDApIHsKKwkvKgorCSogT25seSBib3RoZXIgdG8gZml4dXAgcGVuZGluZyBjb21wb25lbnRzLCBpZiB0aGVyZSB3YXMKKwkqIG5vIGVycm9yIHlldC4KKwkqIEZvciBldmVyeSBYU0kgYWNxdWlyZWQgc2NoZW1hIChhbmQgaXRzIHN1Yi1zY2hlbWF0YSkgd2Ugd2lsbAorCSogZml4dXAgdGhlIGNvbXBvbmVudHMuCisJKi8KKwl4bWxTY2hlbWFGaXh1cENvbXBvbmVudHMocGN0eHQsIGJ1Y2tldCk7CisJcmV0ID0gcGN0eHQtPmVycjsKKwkvKgorCSogTm90IG5pY2UsIGJ1dCB3ZSBuZWVkIHNvbWVob3cgdG8gY2hhbm5lbCB0aGUgc2NoZW1hIHBhcnNlcgorCSogZXJyb3IgdG8gdGhlIHZhbGlkYXRpb24gY29udGV4dC4KKwkqLworCWlmICgocmV0ICE9IDApICYmICh2Y3R4dC0+ZXJyID09IDApKQorCSAgICB2Y3R4dC0+ZXJyID0gcmV0OworCXZjdHh0LT5uYmVycm9ycyArPSBwY3R4dC0+bmJlcnJvcnM7CisgICAgfSBlbHNlIHsKKwkvKiBBZGQgdG8gdmFsaWRhdGlvbiBlcnJvciBzdW0uICovCisJdmN0eHQtPm5iZXJyb3JzICs9IHBjdHh0LT5uYmVycm9yczsKKyAgICB9CisgICAgcGN0eHQtPmRvYyA9IE5VTEw7CisgICAgcmV0dXJuKHJldCk7CitleGl0X2ZhaWx1cmU6CisgICAgcGN0eHQtPmRvYyA9IE5VTEw7CisgICAgcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyB4bWxTY2hlbWFBdHRySW5mb1B0cgoreG1sU2NoZW1hR2V0TWV0YUF0dHJJbmZvKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSBpbnQgbWV0YVR5cGUpCit7CisgICAgaWYgKHZjdHh0LT5uYkF0dHJJbmZvcyA9PSAwKQorCXJldHVybiAoTlVMTCk7CisgICAgeworCWludCBpOworCXhtbFNjaGVtYUF0dHJJbmZvUHRyIGlhdHRyOworCisJZm9yIChpID0gMDsgaSA8IHZjdHh0LT5uYkF0dHJJbmZvczsgaSsrKSB7CisJICAgIGlhdHRyID0gdmN0eHQtPmF0dHJJbmZvc1tpXTsKKwkgICAgaWYgKGlhdHRyLT5tZXRhVHlwZSA9PSBtZXRhVHlwZSkKKwkJcmV0dXJuIChpYXR0cik7CisJfQorCisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQXNzZW1ibGVCeVhTSToKKyAqIEB2Y3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIEV4cGFuZHMgYW4gZXhpc3Rpbmcgc2NoZW1hIGJ5IGFuIGFkZGl0aW9uYWwgc2NoZW1hIHVzaW5nCisgKiB0aGUgeHNpOnNjaGVtYUxvY2F0aW9uIG9yIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIGF0dHJpYnV0ZQorICogb2YgYW4gaW5zdGFuY2UuIElmIHhzaTpub05hbWVzcGFjZVNjaGVtYUxvY2F0aW9uIGlzIHVzZWQsIEBub05hbWVzcGFjZQorICogbXVzdCBiZSBzZXQgdG8gMS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIG5ldyBzY2hlbWEgaXMgY29ycmVjdCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlCisgKiBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQXNzZW1ibGVCeVhTSSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyLCAqZW5kOworICAgIGNvbnN0IHhtbENoYXIgKm5zbmFtZSA9IE5VTEwsICpsb2NhdGlvbjsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGludCByZXQgPSAwOworICAgIHhtbFNjaGVtYUF0dHJJbmZvUHRyIGlhdHRyOworCisgICAgLyoKKyAgICAqIFBhcnNlIHRoZSB2YWx1ZTsgd2Ugd2lsbCBhc3N1bWUgYW4gZXZlbiBudW1iZXIgb2YgdmFsdWVzCisgICAgKiB0byBiZSBnaXZlbiAodGhpcyBpcyBob3cgWGVyY2VzIGFuZCBYU1Ygd29yaykuCisgICAgKgorICAgICogVVJHRU5UIFRPRE86ICEhIFRoaXMgbmVlZHMgdG8gd29yayBmb3IgYm90aAorICAgICogQG5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24gQU5EIEBzY2hlbWFMb2NhdGlvbiBvbiB0aGUgc2FtZQorICAgICogZWxlbWVudCAhIQorICAgICovCisgICAgaWF0dHIgPSB4bWxTY2hlbWFHZXRNZXRhQXR0ckluZm8odmN0eHQsCisJWE1MX1NDSEVNQV9BVFRSX0lORk9fTUVUQV9YU0lfU0NIRU1BX0xPQyk7CisgICAgaWYgKGlhdHRyID09IE5VTEwpCisJaWF0dHIgPSB4bWxTY2hlbWFHZXRNZXRhQXR0ckluZm8odmN0eHQsCisJWE1MX1NDSEVNQV9BVFRSX0lORk9fTUVUQV9YU0lfTk9fTlNfU0NIRU1BX0xPQyk7CisgICAgaWYgKGlhdHRyID09IE5VTEwpCisJcmV0dXJuICgwKTsKKyAgICBjdXIgPSBpYXR0ci0+dmFsdWU7CisgICAgZG8geworCS8qCisJKiBUT0RPOiBNb3ZlIHRoZSBzdHJpbmcgcGFyc2luZyBtZWNoYW5pc20gYXdheSBmcm9tIGhlcmUuCisJKi8KKwlpZiAoaWF0dHItPm1ldGFUeXBlID09IFhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX1NDSEVNQV9MT0MpIHsKKwkgICAgLyoKKwkgICAgKiBHZXQgdGhlIG5hbWVzcGFjZSBuYW1lLgorCSAgICAqLworCSAgICB3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpCisJCWN1cisrOworCSAgICBlbmQgPSBjdXI7CisJICAgIHdoaWxlICgoKmVuZCAhPSAwKSAmJiAoIShJU19CTEFOS19DSCgqZW5kKSkpKQorCQllbmQrKzsKKwkgICAgaWYgKGVuZCA9PSBjdXIpCisJCWJyZWFrOworCSAgICBjb3VudCsrOyAvKiBUT0RPOiBEb24ndCB1c2UgdGhlIHNjaGVtYSdzIGRpY3QuICovCisJICAgIG5zbmFtZSA9IHhtbERpY3RMb29rdXAodmN0eHQtPnNjaGVtYS0+ZGljdCwgY3VyLCBlbmQgLSBjdXIpOworCSAgICBjdXIgPSBlbmQ7CisJfQorCS8qCisJKiBHZXQgdGhlIFVSSS4KKwkqLworCXdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkKKwkgICAgY3VyKys7CisJZW5kID0gY3VyOworCXdoaWxlICgoKmVuZCAhPSAwKSAmJiAoIShJU19CTEFOS19DSCgqZW5kKSkpKQorCSAgICBlbmQrKzsKKwlpZiAoZW5kID09IGN1cikgeworCSAgICBpZiAoaWF0dHItPm1ldGFUeXBlID09CisJCVhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX1NDSEVNQV9MT0MpCisJICAgIHsKKwkJLyoKKwkJKiBJZiB1c2luZyBAc2NoZW1hTG9jYXRpb24gdGhlbiB0dXBsZXMgYXJlIGV4cGVjdGVkLgorCQkqIEkuZS4gdGhlIG5hbWVzcGFjZSBuYW1lICphbmQqIHRoZSBkb2N1bWVudCdzIFVSSS4KKwkJKi8KKwkJeG1sU2NoZW1hQ3VzdG9tV2FybmluZyhBQ1RYVF9DQVNUIHZjdHh0LCBYTUxfU0NIRU1BVl9NSVNDLAorCQkgICAgaWF0dHItPm5vZGUsIE5VTEwsCisJCSAgICAiVGhlIHZhbHVlIG11c3QgY29uc2lzdCBvZiB0dXBsZXM6IHRoZSB0YXJnZXQgbmFtZXNwYWNlICIKKwkJICAgICJuYW1lIGFuZCB0aGUgZG9jdW1lbnQncyBVUkkiLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwkgICAgfQorCSAgICBicmVhazsKKwl9CisJY291bnQrKzsgLyogVE9ETzogRG9uJ3QgdXNlIHRoZSBzY2hlbWEncyBkaWN0LiAqLworCWxvY2F0aW9uID0geG1sRGljdExvb2t1cCh2Y3R4dC0+c2NoZW1hLT5kaWN0LCBjdXIsIGVuZCAtIGN1cik7CisJY3VyID0gZW5kOworCXJldCA9IHhtbFNjaGVtYUFzc2VtYmxlQnlMb2NhdGlvbih2Y3R4dCwgdmN0eHQtPnNjaGVtYSwKKwkgICAgaWF0dHItPm5vZGUsIG5zbmFtZSwgbG9jYXRpb24pOworCWlmIChyZXQgPT0gLTEpIHsKKwkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hQXNzZW1ibGVCeVhTSSIsCisJCSJhc3NlbWJsaW5nIHNjaGVtYXRhIik7CisJICAgIHJldHVybiAoLTEpOworCX0KKyAgICB9IHdoaWxlICgqY3VyICE9IDApOworICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sU2NoZW1hTG9va3VwTmFtZXNwYWNlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSBjb25zdCB4bWxDaGFyICpwcmVmaXgpCit7CisgICAgaWYgKHZjdHh0LT5zYXggIT0gTlVMTCkgeworCWludCBpLCBqOworCXhtbFNjaGVtYU5vZGVJbmZvUHRyIGlub2RlOworCisJZm9yIChpID0gdmN0eHQtPmRlcHRoOyBpID49IDA7IGktLSkgeworCSAgICBpZiAodmN0eHQtPmVsZW1JbmZvc1tpXS0+bmJOc0JpbmRpbmdzICE9IDApIHsKKwkJaW5vZGUgPSB2Y3R4dC0+ZWxlbUluZm9zW2ldOworCQlmb3IgKGogPSAwOyBqIDwgaW5vZGUtPm5iTnNCaW5kaW5ncyAqIDI7IGogKz0gMikgeworCQkgICAgaWYgKCgocHJlZml4ID09IE5VTEwpICYmCisJCQkgICAgKGlub2RlLT5uc0JpbmRpbmdzW2pdID09IE5VTEwpKSB8fAorCQkJKChwcmVmaXggIT0gTlVMTCkgJiYgeG1sU3RyRXF1YWwocHJlZml4LAorCQkJICAgIGlub2RlLT5uc0JpbmRpbmdzW2pdKSkpIHsKKworCQkJLyoKKwkJCSogTm90ZSB0aGF0IHRoZSBuYW1lc3BhY2UgYmluZGluZ3MgYXJlIGFscmVhZHkKKwkJCSogaW4gYSBzdHJpbmcgZGljdC4KKwkJCSovCisJCQlyZXR1cm4gKGlub2RlLT5uc0JpbmRpbmdzW2orMV0pOworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisJcmV0dXJuIChOVUxMKTsKKyNpZmRlZiBMSUJYTUxfUkVBREVSX0VOQUJMRUQKKyAgICB9IGVsc2UgaWYgKHZjdHh0LT5yZWFkZXIgIT0gTlVMTCkgeworCXhtbENoYXIgKm5zTmFtZTsKKworCW5zTmFtZSA9IHhtbFRleHRSZWFkZXJMb29rdXBOYW1lc3BhY2UodmN0eHQtPnJlYWRlciwgcHJlZml4KTsKKwlpZiAobnNOYW1lICE9IE5VTEwpIHsKKwkgICAgY29uc3QgeG1sQ2hhciAqcmV0OworCisJICAgIHJldCA9IHhtbERpY3RMb29rdXAodmN0eHQtPmRpY3QsIG5zTmFtZSwgLTEpOworCSAgICB4bWxGcmVlKG5zTmFtZSk7CisJICAgIHJldHVybiAocmV0KTsKKwl9IGVsc2UKKwkgICAgcmV0dXJuIChOVUxMKTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisJeG1sTnNQdHIgbnM7CisKKwlpZiAoKHZjdHh0LT5pbm9kZS0+bm9kZSA9PSBOVUxMKSB8fAorCSAgICAodmN0eHQtPmlub2RlLT5ub2RlLT5kb2MgPT0gTlVMTCkpIHsKKwkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hTG9va3VwTmFtZXNwYWNlIiwKKwkJIm5vIG5vZGUgb3Igbm9kZSdzIGRvYyBhdmFsaWFibGUiKTsKKwkgICAgcmV0dXJuIChOVUxMKTsKKwl9CisJbnMgPSB4bWxTZWFyY2hOcyh2Y3R4dC0+aW5vZGUtPm5vZGUtPmRvYywKKwkgICAgdmN0eHQtPmlub2RlLT5ub2RlLCBwcmVmaXgpOworCWlmIChucyAhPSBOVUxMKQorCSAgICByZXR1cm4gKG5zLT5ocmVmKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KK30KKworLyoKKyogVGhpcyBvbmUgd29ya3Mgb24gdGhlIHNjaGVtYSBvZiB0aGUgdmFsaWRhdGlvbiBjb250ZXh0LgorKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZhbGlkYXRlTm90YXRpb24oeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0LAorCQkJICB4bWxTY2hlbWFQdHIgc2NoZW1hLAorCQkJICB4bWxOb2RlUHRyIG5vZGUsCisJCQkgIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJICB4bWxTY2hlbWFWYWxQdHIgKnZhbCwKKwkJCSAgaW50IHZhbE5lZWRlZCkKK3sKKyAgICBpbnQgcmV0OworCisgICAgaWYgKHZjdHh0ICYmICh2Y3R4dC0+c2NoZW1hID09IE5VTEwpKSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hVmFsaWRhdGVOb3RhdGlvbiIsCisJICAgICJhIHNjaGVtYSBpcyBuZWVkZWQgb24gdGhlIHZhbGlkYXRpb24gY29udGV4dCIpOworCXJldHVybiAoLTEpOworICAgIH0KKyAgICByZXQgPSB4bWxWYWxpZGF0ZVFOYW1lKHZhbHVlLCAxKTsKKyAgICBpZiAocmV0ICE9IDApCisJcmV0dXJuIChyZXQpOworICAgIHsKKwl4bWxDaGFyICpsb2NhbE5hbWUgPSBOVUxMOworCXhtbENoYXIgKnByZWZpeCA9IE5VTEw7CisKKwlsb2NhbE5hbWUgPSB4bWxTcGxpdFFOYW1lMih2YWx1ZSwgJnByZWZpeCk7CisJaWYgKHByZWZpeCAhPSBOVUxMKSB7CisJICAgIGNvbnN0IHhtbENoYXIgKm5zTmFtZSA9IE5VTEw7CisKKwkgICAgaWYgKHZjdHh0ICE9IE5VTEwpCisJCW5zTmFtZSA9IHhtbFNjaGVtYUxvb2t1cE5hbWVzcGFjZSh2Y3R4dCwgQkFEX0NBU1QgcHJlZml4KTsKKwkgICAgZWxzZSBpZiAobm9kZSAhPSBOVUxMKSB7CisJCXhtbE5zUHRyIG5zID0geG1sU2VhcmNoTnMobm9kZS0+ZG9jLCBub2RlLCBwcmVmaXgpOworCQlpZiAobnMgIT0gTlVMTCkKKwkJICAgIG5zTmFtZSA9IG5zLT5ocmVmOworCSAgICB9IGVsc2UgeworCQl4bWxGcmVlKHByZWZpeCk7CisJCXhtbEZyZWUobG9jYWxOYW1lKTsKKwkJcmV0dXJuICgxKTsKKwkgICAgfQorCSAgICBpZiAobnNOYW1lID09IE5VTEwpIHsKKwkJeG1sRnJlZShwcmVmaXgpOworCQl4bWxGcmVlKGxvY2FsTmFtZSk7CisJCXJldHVybiAoMSk7CisJICAgIH0KKwkgICAgaWYgKHhtbFNjaGVtYUdldE5vdGF0aW9uKHNjaGVtYSwgbG9jYWxOYW1lLCBuc05hbWUpICE9IE5VTEwpIHsKKwkJaWYgKCh2YWxOZWVkZWQpICYmICh2YWwgIT0gTlVMTCkpIHsKKwkJICAgICgqdmFsKSA9IHhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUoeG1sU3RyZHVwKGxvY2FsTmFtZSksCisJCQkJCQkgICAgICAgeG1sU3RyZHVwKG5zTmFtZSkpOworCQkgICAgaWYgKCp2YWwgPT0gTlVMTCkKKwkJCXJldCA9IC0xOworCQl9CisJICAgIH0gZWxzZQorCQlyZXQgPSAxOworCSAgICB4bWxGcmVlKHByZWZpeCk7CisJICAgIHhtbEZyZWUobG9jYWxOYW1lKTsKKwl9IGVsc2UgeworCSAgICBpZiAoeG1sU2NoZW1hR2V0Tm90YXRpb24oc2NoZW1hLCB2YWx1ZSwgTlVMTCkgIT0gTlVMTCkgeworCQlpZiAodmFsTmVlZGVkICYmICh2YWwgIT0gTlVMTCkpIHsKKwkJICAgICgqdmFsKSA9IHhtbFNjaGVtYU5ld05PVEFUSU9OVmFsdWUoCisJCQlCQURfQ0FTVCB4bWxTdHJkdXAodmFsdWUpLCBOVUxMKTsKKwkJICAgIGlmICgqdmFsID09IE5VTEwpCisJCQlyZXQgPSAtMTsKKwkJfQorCSAgICB9IGVsc2UKKwkJcmV0dXJuICgxKTsKKwl9CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hVkFkZE5vZGVRTmFtZSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCisJCSAgICAgICBjb25zdCB4bWxDaGFyKiBsbmFtZSwKKwkJICAgICAgIGNvbnN0IHhtbENoYXIqIG5zbmFtZSkKK3sKKyAgICBpbnQgaTsKKworICAgIGxuYW1lID0geG1sRGljdExvb2t1cCh2Y3R4dC0+ZGljdCwgbG5hbWUsIC0xKTsKKyAgICBpZiAobG5hbWUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGlmIChuc25hbWUgIT0gTlVMTCkgeworCW5zbmFtZSA9IHhtbERpY3RMb29rdXAodmN0eHQtPmRpY3QsIG5zbmFtZSwgLTEpOworCWlmIChuc25hbWUgPT0gTlVMTCkKKwkgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IHZjdHh0LT5ub2RlUU5hbWVzLT5uYkl0ZW1zOyBpICs9IDIpIHsKKwlpZiAoKHZjdHh0LT5ub2RlUU5hbWVzLT5pdGVtcyBbaV0gPT0gbG5hbWUpICYmCisJICAgICh2Y3R4dC0+bm9kZVFOYW1lcy0+aXRlbXNbaSArMV0gPT0gbnNuYW1lKSkKKwkgICAgLyogQWxyZWFkeSB0aGVyZSAqLworCSAgICByZXR1cm4oaSk7CisgICAgfQorICAgIC8qIEFkZCBuZXcgZW50cnkuICovCisgICAgaSA9IHZjdHh0LT5ub2RlUU5hbWVzLT5uYkl0ZW1zOworICAgIHhtbFNjaGVtYUl0ZW1MaXN0QWRkKHZjdHh0LT5ub2RlUU5hbWVzLCAodm9pZCAqKSBsbmFtZSk7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RBZGQodmN0eHQtPm5vZGVRTmFtZXMsICh2b2lkICopIG5zbmFtZSk7CisgICAgcmV0dXJuKGkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAgVmFsaWRhdGlvbiBvZiBpZGVudGl0eS1jb25zdHJhaW50cyAoSURDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFNjaGVtYUF1Z21lbnRJREM6CisgKiBAaWRjRGVmOiB0aGUgSURDIGRlZmluaXRpb24KKyAqCisgKiBDcmVhdGVzIGFuIGF1Z21lbnRlZCBJREMgZGVmaW5pdGlvbiBpdGVtLgorICoKKyAqIFJldHVybnMgdGhlIGl0ZW0sIG9yIE5VTEwgb24gaW50ZXJuYWwgZXJyb3JzLgorICovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hQXVnbWVudElEQyh4bWxTY2hlbWFJRENQdHIgaWRjRGVmLAorCQkgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0KQoreworICAgIHhtbFNjaGVtYUlEQ0F1Z1B0ciBhaWRjOworCisgICAgYWlkYyA9ICh4bWxTY2hlbWFJRENBdWdQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hSURDQXVnKSk7CisgICAgaWYgKGFpZGMgPT0gTlVMTCkgeworCXhtbFNjaGVtYVZFcnJNZW1vcnkodmN0eHQsCisJICAgICJ4bWxTY2hlbWFBdWdtZW50SURDOiBhbGxvY2F0aW5nIGFuIGF1Z21lbnRlZCBJREMgZGVmaW5pdGlvbiIsCisJICAgIE5VTEwpOworCXJldHVybjsKKyAgICB9CisgICAgYWlkYy0+a2V5cmVmRGVwdGggPSAtMTsKKyAgICBhaWRjLT5kZWYgPSBpZGNEZWY7CisgICAgYWlkYy0+bmV4dCA9IE5VTEw7CisgICAgaWYgKHZjdHh0LT5haWRjcyA9PSBOVUxMKQorCXZjdHh0LT5haWRjcyA9IGFpZGM7CisgICAgZWxzZSB7CisJYWlkYy0+bmV4dCA9IHZjdHh0LT5haWRjczsKKwl2Y3R4dC0+YWlkY3MgPSBhaWRjOworICAgIH0KKyAgICAvKgorICAgICogU2F2ZSBpZiB3ZSBoYXZlIGtleXJlZnMgYXQgYWxsLgorICAgICovCisgICAgaWYgKCh2Y3R4dC0+aGFzS2V5cmVmcyA9PSAwKSAmJgorCShpZGNEZWYtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpKQorCXZjdHh0LT5oYXNLZXlyZWZzID0gMTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFBdWdtZW50SW1wb3J0ZWRJREM6CisgKiBAaW1wb3J0ZWQ6IHRoZSBpbXBvcnRlZCBzY2hlbWEKKyAqCisgKiBDcmVhdGVzIGFuIGF1Z21lbnRlZCBJREMgZGVmaW5pdGlvbiBmb3IgdGhlIGltcG9ydGVkIHNjaGVtYS4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUF1Z21lbnRJbXBvcnRlZElEQyh4bWxTY2hlbWFJbXBvcnRQdHIgaW1wb3J0ZWQsIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkgeworICAgIGlmIChpbXBvcnRlZC0+c2NoZW1hLT5pZGNEZWYgIT0gTlVMTCkgeworCSAgICB4bWxIYXNoU2NhbihpbXBvcnRlZC0+c2NoZW1hLT5pZGNEZWYgLAorCSAgICAoeG1sSGFzaFNjYW5uZXIpIHhtbFNjaGVtYUF1Z21lbnRJREMsIHZjdHh0KTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hSURDTmV3QmluZGluZzoKKyAqIEBpZGNEZWY6IHRoZSBJREMgZGVmaW5pdGlvbiBvZiB0aGlzIGJpbmRpbmcKKyAqCisgKiBDcmVhdGVzIGEgbmV3IElEQyBiaW5kaW5nLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBJREMgYmluZGluZywgTlVMTCBvbiBpbnRlcm5hbCBlcnJvcnMuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFQU1ZJSURDQmluZGluZ1B0cgoreG1sU2NoZW1hSURDTmV3QmluZGluZyh4bWxTY2hlbWFJRENQdHIgaWRjRGVmKQoreworICAgIHhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxTY2hlbWFQU1ZJSURDQmluZGluZ1B0cikgeG1sTWFsbG9jKAorCSAgICBzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ0JpbmRpbmcpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFWRXJyTWVtb3J5KE5VTEwsCisJICAgICJhbGxvY2F0aW5nIGEgUFNWSSBJREMgYmluZGluZyBpdGVtIiwgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYVBTVklJRENCaW5kaW5nKSk7CisgICAgcmV0LT5kZWZpbml0aW9uID0gaWRjRGVmOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFJRENTdG9yZU5vZGVUYWJsZUl0ZW06CisgKiBAdmN0eHQ6IHRoZSBXWFMgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAaXRlbTogdGhlIElEQyBub2RlIHRhYmxlIGl0ZW0KKyAqCisgKiBUaGUgdmFsaWRhdGlvbiBjb250ZXh0IGlzIHVzZWQgdG8gc3RvcmUgSURDIG5vZGUgdGFibGUgaXRlbXMuCisgKiBUaGV5IGFyZSBzdG9yZWQgdG8gYXZvaWQgY29weWluZyB0aGVtIGlmIElEQyBub2RlLXRhYmxlcyBhcmUgbWVyZ2VkCisgKiB3aXRoIGNvcnJlc3BvbmRpbmcgcGFyZW50IElEQyBub2RlLXRhYmxlcyAoYnViYmxpbmcpLgorICoKKyAqIFJldHVybnMgMCBpZiBzdWNjZWVkZWQsIC0xIG9uIGludGVybmFsIGVycm9ycy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hSURDU3RvcmVOb2RlVGFibGVJdGVtKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSAgICAgICB4bWxTY2hlbWFQU1ZJSURDTm9kZVB0ciBpdGVtKQoreworICAgIC8qCisgICAgKiBBZGQgdG8gZ29iYWwgbGlzdC4KKyAgICAqLworICAgIGlmICh2Y3R4dC0+aWRjTm9kZXMgPT0gTlVMTCkgeworCXZjdHh0LT5pZGNOb2RlcyA9ICh4bWxTY2hlbWFQU1ZJSURDTm9kZVB0ciAqKQorCSAgICB4bWxNYWxsb2MoMjAgKiBzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpKTsKKwlpZiAodmN0eHQtPmlkY05vZGVzID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVkVyck1lbW9yeSh2Y3R4dCwKKwkJImFsbG9jYXRpbmcgdGhlIElEQyBub2RlIHRhYmxlIGl0ZW0gbGlzdCIsIE5VTEwpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisJdmN0eHQtPnNpemVJZGNOb2RlcyA9IDIwOworICAgIH0gZWxzZSBpZiAodmN0eHQtPnNpemVJZGNOb2RlcyA8PSB2Y3R4dC0+bmJJZGNOb2RlcykgeworCXZjdHh0LT5zaXplSWRjTm9kZXMgKj0gMjsKKwl2Y3R4dC0+aWRjTm9kZXMgPSAoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgKikKKwkgICAgeG1sUmVhbGxvYyh2Y3R4dC0+aWRjTm9kZXMsIHZjdHh0LT5zaXplSWRjTm9kZXMgKgorCSAgICBzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpKTsKKwlpZiAodmN0eHQtPmlkY05vZGVzID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVkVyck1lbW9yeSh2Y3R4dCwKKwkJInJlLWFsbG9jYXRpbmcgdGhlIElEQyBub2RlIHRhYmxlIGl0ZW0gbGlzdCIsIE5VTEwpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisgICAgfQorICAgIHZjdHh0LT5pZGNOb2Rlc1t2Y3R4dC0+bmJJZGNOb2RlcysrXSA9IGl0ZW07CisKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUlEQ1N0b3JlS2V5OgorICogQHZjdHh0OiB0aGUgV1hTIHZhbGlkYXRpb24gY29udGV4dAorICogQGl0ZW06IHRoZSBJREMga2V5CisgKgorICogVGhlIHZhbGlkYXRpb24gY29udGV4dCBpcyB1c2VkIHRvIHN0b3JlIGFuIElEQyBrZXkuCisgKgorICogUmV0dXJucyAwIGlmIHN1Y2NlZWRlZCwgLTEgb24gaW50ZXJuYWwgZXJyb3JzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFJRENTdG9yZUtleSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCisJCSAgICAgeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciBrZXkpCit7CisgICAgLyoKKyAgICAqIEFkZCB0byBnb2JhbCBsaXN0LgorICAgICovCisgICAgaWYgKHZjdHh0LT5pZGNLZXlzID09IE5VTEwpIHsKKwl2Y3R4dC0+aWRjS2V5cyA9ICh4bWxTY2hlbWFQU1ZJSURDS2V5UHRyICopCisJICAgIHhtbE1hbGxvYyg0MCAqIHNpemVvZih4bWxTY2hlbWFQU1ZJSURDS2V5UHRyKSk7CisJaWYgKHZjdHh0LT5pZGNLZXlzID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVkVyck1lbW9yeSh2Y3R4dCwKKwkJImFsbG9jYXRpbmcgdGhlIElEQyBrZXkgc3RvcmFnZSBsaXN0IiwgTlVMTCk7CisJICAgIHJldHVybiAoLTEpOworCX0KKwl2Y3R4dC0+c2l6ZUlkY0tleXMgPSA0MDsKKyAgICB9IGVsc2UgaWYgKHZjdHh0LT5zaXplSWRjS2V5cyA8PSB2Y3R4dC0+bmJJZGNLZXlzKSB7CisJdmN0eHQtPnNpemVJZGNLZXlzICo9IDI7CisJdmN0eHQtPmlkY0tleXMgPSAoeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciAqKQorCSAgICB4bWxSZWFsbG9jKHZjdHh0LT5pZGNLZXlzLCB2Y3R4dC0+c2l6ZUlkY0tleXMgKgorCSAgICBzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ0tleVB0cikpOworCWlmICh2Y3R4dC0+aWRjS2V5cyA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVZFcnJNZW1vcnkodmN0eHQsCisJCSJyZS1hbGxvY2F0aW5nIHRoZSBJREMga2V5IHN0b3JhZ2UgbGlzdCIsIE5VTEwpOworCSAgICByZXR1cm4gKC0xKTsKKwl9CisgICAgfQorICAgIHZjdHh0LT5pZGNLZXlzW3ZjdHh0LT5uYklkY0tleXMrK10gPSBrZXk7CisKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUlEQ0FwcGVuZE5vZGVUYWJsZUl0ZW06CisgKiBAYmluZDogdGhlIElEQyBiaW5kaW5nCisgKiBAbnRJdGVtOiB0aGUgbm9kZS10YWJsZSBpdGVtCisgKgorICogQXBwZW5kcyB0aGUgSURDIG5vZGUtdGFibGUgaXRlbSB0byB0aGUgYmluZGluZy4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBhbmQgLTEgb24gaW50ZXJuYWwgZXJyb3JzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFJRENBcHBlbmROb2RlVGFibGVJdGVtKHhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyIGJpbmQsCisJCQkJeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgbnRJdGVtKQoreworICAgIGlmIChiaW5kLT5ub2RlVGFibGUgPT0gTlVMTCkgeworCWJpbmQtPnNpemVOb2RlcyA9IDEwOworCWJpbmQtPm5vZGVUYWJsZSA9ICh4bWxTY2hlbWFQU1ZJSURDTm9kZVB0ciAqKQorCSAgICB4bWxNYWxsb2MoMTAgKiBzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpKTsKKwlpZiAoYmluZC0+bm9kZVRhYmxlID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVkVyck1lbW9yeShOVUxMLAorCQkiYWxsb2NhdGluZyBhbiBhcnJheSBvZiBJREMgbm9kZS10YWJsZSBpdGVtcyIsIE5VTEwpOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9IGVsc2UgaWYgKGJpbmQtPnNpemVOb2RlcyA8PSBiaW5kLT5uYk5vZGVzKSB7CisJYmluZC0+c2l6ZU5vZGVzICo9IDI7CisJYmluZC0+bm9kZVRhYmxlID0gKHhtbFNjaGVtYVBTVklJRENOb2RlUHRyICopCisJICAgIHhtbFJlYWxsb2MoYmluZC0+bm9kZVRhYmxlLCBiaW5kLT5zaXplTm9kZXMgKgorCQlzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpKTsKKwlpZiAoYmluZC0+bm9kZVRhYmxlID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVkVyck1lbW9yeShOVUxMLAorCQkicmUtYWxsb2NhdGluZyBhbiBhcnJheSBvZiBJREMgbm9kZS10YWJsZSBpdGVtcyIsIE5VTEwpOworCSAgICByZXR1cm4oLTEpOworCX0KKyAgICB9CisgICAgYmluZC0+bm9kZVRhYmxlW2JpbmQtPm5iTm9kZXMrK10gPSBudEl0ZW07CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUlEQ0FjcXVpcmVCaW5kaW5nOgorICogQHZjdHh0OiB0aGUgV1hTIHZhbGlkYXRpb24gY29udGV4dAorICogQG1hdGNoZXI6IHRoZSBJREMgbWF0Y2hlcgorICoKKyAqIExvb2tzIHVwIGFuIFBTVkkgSURDIGJpbmRpbmcsIGZvciB0aGUgSURDIGRlZmluaXRpb24gYW5kCisgKiBvZiB0aGUgZ2l2ZW4gbWF0Y2hlci4gSWYgbm9uZSBmb3VuZCwgYSBuZXcgb25lIGlzIGNyZWF0ZWQKKyAqIGFuZCBhZGRlZCB0byB0aGUgSURDIHRhYmxlLgorICoKKyAqIFJldHVybnMgYW4gSURDIGJpbmRpbmcgb3IgTlVMTCBvbiBpbnRlcm5hbCBlcnJvcnMuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFQU1ZJSURDQmluZGluZ1B0cgoreG1sU2NoZW1hSURDQWNxdWlyZUJpbmRpbmcoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0LAorCQkJICB4bWxTY2hlbWFJRENNYXRjaGVyUHRyIG1hdGNoZXIpCit7CisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgaWVsZW07CisKKyAgICBpZWxlbSA9IHZjdHh0LT5lbGVtSW5mb3NbbWF0Y2hlci0+ZGVwdGhdOworCisgICAgaWYgKGllbGVtLT5pZGNUYWJsZSA9PSBOVUxMKSB7CisJaWVsZW0tPmlkY1RhYmxlID0geG1sU2NoZW1hSURDTmV3QmluZGluZyhtYXRjaGVyLT5haWRjLT5kZWYpOworCWlmIChpZWxlbS0+aWRjVGFibGUgPT0gTlVMTCkKKwkgICAgcmV0dXJuIChOVUxMKTsKKwlyZXR1cm4oaWVsZW0tPmlkY1RhYmxlKTsKKyAgICB9IGVsc2UgeworCXhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyIGJpbmQgPSBOVUxMOworCisJYmluZCA9IGllbGVtLT5pZGNUYWJsZTsKKwlkbyB7CisJICAgIGlmIChiaW5kLT5kZWZpbml0aW9uID09IG1hdGNoZXItPmFpZGMtPmRlZikKKwkJcmV0dXJuKGJpbmQpOworCSAgICBpZiAoYmluZC0+bmV4dCA9PSBOVUxMKSB7CisJCWJpbmQtPm5leHQgPSB4bWxTY2hlbWFJRENOZXdCaW5kaW5nKG1hdGNoZXItPmFpZGMtPmRlZik7CisJCWlmIChiaW5kLT5uZXh0ID09IE5VTEwpCisJCSAgICByZXR1cm4gKE5VTEwpOworCQlyZXR1cm4oYmluZC0+bmV4dCk7CisJICAgIH0KKwkgICAgYmluZCA9IGJpbmQtPm5leHQ7CisJfSB3aGlsZSAoYmluZCAhPSBOVUxMKTsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworc3RhdGljIHhtbFNjaGVtYUl0ZW1MaXN0UHRyCit4bWxTY2hlbWFJRENBY3F1aXJlVGFyZ2V0TGlzdCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQgQVRUUklCVVRFX1VOVVNFRCwKKwkJCSAgICAgeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyKQoreworICAgIGlmIChtYXRjaGVyLT50YXJnZXRzID09IE5VTEwpCisJbWF0Y2hlci0+dGFyZ2V0cyA9IHhtbFNjaGVtYUl0ZW1MaXN0Q3JlYXRlKCk7CisgICAgcmV0dXJuKG1hdGNoZXItPnRhcmdldHMpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUlEQ0ZyZWVLZXk6CisgKiBAa2V5OiB0aGUgSURDIGtleQorICoKKyAqIEZyZWVzIGFuIElEQyBrZXkgdG9nZXRoZXIgd2l0aCBpdHMgY29tcGlsZWQgdmFsdWUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJRENGcmVlS2V5KHhtbFNjaGVtYVBTVklJRENLZXlQdHIga2V5KQoreworICAgIGlmIChrZXktPnZhbCAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWVWYWx1ZShrZXktPnZhbCk7CisgICAgeG1sRnJlZShrZXkpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUlEQ0ZyZWVCaW5kaW5nOgorICoKKyAqIEZyZWVzIGFuIElEQyBiaW5kaW5nLiBOb3RlIHRoYXQgdGhlIG5vZGUgdGFibGUtaXRlbXMKKyAqIGFyZSBub3QgZnJlZWQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJRENGcmVlQmluZGluZyh4bWxTY2hlbWFQU1ZJSURDQmluZGluZ1B0ciBiaW5kKQoreworICAgIGlmIChiaW5kLT5ub2RlVGFibGUgIT0gTlVMTCkKKwl4bWxGcmVlKGJpbmQtPm5vZGVUYWJsZSk7CisgICAgaWYgKGJpbmQtPmR1cGxzICE9IE5VTEwpCisJeG1sU2NoZW1hSXRlbUxpc3RGcmVlKGJpbmQtPmR1cGxzKTsKKyAgICB4bWxGcmVlKGJpbmQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUlEQ0ZyZWVJRENUYWJsZToKKyAqIEBiaW5kOiB0aGUgZmlyc3QgSURDIGJpbmRpbmcgaW4gdGhlIGxpc3QKKyAqCisgKiBGcmVlcyBhbiBJREMgdGFibGUsIGkuZS4gYWxsIHRoZSBJREMgYmluZGluZ3MgaW4gdGhlIGxpc3QuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJRENGcmVlSURDVGFibGUoeG1sU2NoZW1hUFNWSUlEQ0JpbmRpbmdQdHIgYmluZCkKK3sKKyAgICB4bWxTY2hlbWFQU1ZJSURDQmluZGluZ1B0ciBwcmV2OworCisgICAgd2hpbGUgKGJpbmQgIT0gTlVMTCkgeworCXByZXYgPSBiaW5kOworCWJpbmQgPSBiaW5kLT5uZXh0OworCXhtbFNjaGVtYUlEQ0ZyZWVCaW5kaW5nKHByZXYpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFJRENGcmVlTWF0Y2hlckxpc3Q6CisgKiBAbWF0Y2hlcjogdGhlIGZpcnN0IElEQyBtYXRjaGVyIGluIHRoZSBsaXN0CisgKgorICogRnJlZXMgYSBsaXN0IG9mIElEQyBtYXRjaGVycy4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUlEQ0ZyZWVNYXRjaGVyTGlzdCh4bWxTY2hlbWFJRENNYXRjaGVyUHRyIG1hdGNoZXIpCit7CisgICAgeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBuZXh0OworCisgICAgd2hpbGUgKG1hdGNoZXIgIT0gTlVMTCkgeworCW5leHQgPSBtYXRjaGVyLT5uZXh0OworCWlmIChtYXRjaGVyLT5rZXlTZXFzICE9IE5VTEwpIHsKKwkgICAgaW50IGk7CisJICAgIGZvciAoaSA9IDA7IGkgPCBtYXRjaGVyLT5zaXplS2V5U2VxczsgaSsrKQorCQlpZiAobWF0Y2hlci0+a2V5U2Vxc1tpXSAhPSBOVUxMKQorCQkgICAgeG1sRnJlZShtYXRjaGVyLT5rZXlTZXFzW2ldKTsKKwkgICAgeG1sRnJlZShtYXRjaGVyLT5rZXlTZXFzKTsKKwl9CisJaWYgKG1hdGNoZXItPnRhcmdldHMgIT0gTlVMTCkgeworCSAgICBpZiAobWF0Y2hlci0+aWRjVHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRikgeworCQlpbnQgaTsKKwkJeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgaWRjTm9kZTsKKwkJLyoKKwkJKiBOb2RlLXRhYmxlIGl0ZW1zIGZvciBrZXlyZWZzIGFyZSBub3Qgc3RvcmVkIGdsb2JhbGx5CisJCSogdG8gdGhlIHZhbGlkYXRpb24gY29udGV4dCwgc2luY2UgdGhleSBhcmUgbm90IGJ1YmJsZWQuCisJCSogV2UgbmVlZCB0byBmcmVlIHRoZW0gaGVyZS4KKwkJKi8KKwkJZm9yIChpID0gMDsgaSA8IG1hdGNoZXItPnRhcmdldHMtPm5iSXRlbXM7IGkrKykgeworCQkgICAgaWRjTm9kZSA9CisJCQkoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpIG1hdGNoZXItPnRhcmdldHMtPml0ZW1zW2ldOworCQkgICAgeG1sRnJlZShpZGNOb2RlLT5rZXlzKTsKKwkJICAgIHhtbEZyZWUoaWRjTm9kZSk7CisJCX0KKwkgICAgfQorCSAgICB4bWxTY2hlbWFJdGVtTGlzdEZyZWUobWF0Y2hlci0+dGFyZ2V0cyk7CisJfQorCXhtbEZyZWUobWF0Y2hlcik7CisJbWF0Y2hlciA9IG5leHQ7CisgICAgfQorfQorCisvKioKKyAqIHhtbFNjaGVtYUlEQ1JlbGVhc2VNYXRjaGVyTGlzdDoKKyAqIEB2Y3R4dDogdGhlIFdYUyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBtYXRjaGVyOiB0aGUgZmlyc3QgSURDIG1hdGNoZXIgaW4gdGhlIGxpc3QKKyAqCisgKiBDYWNoZXMgYSBsaXN0IG9mIElEQyBtYXRjaGVycyBmb3IgcmV1c2UuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFJRENSZWxlYXNlTWF0Y2hlckxpc3QoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0LAorCQkJICAgICAgIHhtbFNjaGVtYUlEQ01hdGNoZXJQdHIgbWF0Y2hlcikKK3sKKyAgICB4bWxTY2hlbWFJRENNYXRjaGVyUHRyIG5leHQ7CisKKyAgICB3aGlsZSAobWF0Y2hlciAhPSBOVUxMKSB7CisJbmV4dCA9IG1hdGNoZXItPm5leHQ7CisJaWYgKG1hdGNoZXItPmtleVNlcXMgIT0gTlVMTCkgeworCSAgICBpbnQgaTsKKwkgICAgLyoKKwkgICAgKiBEb24ndCBmcmVlIHRoZSBhcnJheSwgYnV0IG9ubHkgdGhlIGNvbnRlbnQuCisJICAgICovCisJICAgIGZvciAoaSA9IDA7IGkgPCBtYXRjaGVyLT5zaXplS2V5U2VxczsgaSsrKQorCQlpZiAobWF0Y2hlci0+a2V5U2Vxc1tpXSAhPSBOVUxMKSB7CisJCSAgICB4bWxGcmVlKG1hdGNoZXItPmtleVNlcXNbaV0pOworCQkgICAgbWF0Y2hlci0+a2V5U2Vxc1tpXSA9IE5VTEw7CisJCX0KKwl9CisJaWYgKG1hdGNoZXItPnRhcmdldHMpIHsKKwkgICAgaWYgKG1hdGNoZXItPmlkY1R5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpIHsKKwkJaW50IGk7CisJCXhtbFNjaGVtYVBTVklJRENOb2RlUHRyIGlkY05vZGU7CisJCS8qCisJCSogTm9kZS10YWJsZSBpdGVtcyBmb3Iga2V5cmVmcyBhcmUgbm90IHN0b3JlZCBnbG9iYWxseQorCQkqIHRvIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQsIHNpbmNlIHRoZXkgYXJlIG5vdCBidWJibGVkLgorCQkqIFdlIG5lZWQgdG8gZnJlZSB0aGVtIGhlcmUuCisJCSovCisJCWZvciAoaSA9IDA7IGkgPCBtYXRjaGVyLT50YXJnZXRzLT5uYkl0ZW1zOyBpKyspIHsKKwkJICAgIGlkY05vZGUgPQorCQkJKHhtbFNjaGVtYVBTVklJRENOb2RlUHRyKSBtYXRjaGVyLT50YXJnZXRzLT5pdGVtc1tpXTsKKwkJICAgIHhtbEZyZWUoaWRjTm9kZS0+a2V5cyk7CisJCSAgICB4bWxGcmVlKGlkY05vZGUpOworCQl9CisJICAgIH0KKwkgICAgeG1sU2NoZW1hSXRlbUxpc3RGcmVlKG1hdGNoZXItPnRhcmdldHMpOworCSAgICBtYXRjaGVyLT50YXJnZXRzID0gTlVMTDsKKwl9CisJbWF0Y2hlci0+bmV4dCA9IE5VTEw7CisJLyoKKwkqIENhY2hlIHRoZSBtYXRjaGVyLgorCSovCisJaWYgKHZjdHh0LT5pZGNNYXRjaGVyQ2FjaGUgIT0gTlVMTCkKKwkgICAgbWF0Y2hlci0+bmV4dENhY2hlZCA9IHZjdHh0LT5pZGNNYXRjaGVyQ2FjaGU7CisJdmN0eHQtPmlkY01hdGNoZXJDYWNoZSA9IG1hdGNoZXI7CisKKwltYXRjaGVyID0gbmV4dDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sU2NoZW1hSURDQWRkU3RhdGVPYmplY3Q6CisgKiBAdmN0eHQ6IHRoZSBXWFMgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAbWF0Y2hlcjogdGhlIElEQyBtYXRjaGVyCisgKiBAc2VsOiB0aGUgWFBhdGggaW5mb3JtYXRpb24KKyAqIEBwYXJlbnQ6IHRoZSBwYXJlbnQgInNlbGVjdG9yIiBzdGF0ZSBvYmplY3QgaWYgYW55CisgKiBAdHlwZTogInNlbGVjdG9yIiBvciAiZmllbGQiCisgKgorICogQ3JlYXRlcy9yZXVzZXMgYW5kIGFjdGl2YXRlcyBzdGF0ZSBvYmplY3RzIGZvciB0aGUgZ2l2ZW4KKyAqIFhQYXRoIGluZm9ybWF0aW9uOyBpZiB0aGUgWFBhdGggZXhwcmVzc2lvbiBjb25zaXN0cyBvZiB1bmlvbnMsCisgKiBtdWx0aXBsZSBzdGF0ZSBvYmplY3RzIGFyZSBjcmVhdGVkIGZvciBldmVyeSB1bmlvbmVkIGV4cHJlc3Npb24uCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIC0xIG9uIGludGVybmFsIGVycm9ycy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hSURDQWRkU3RhdGVPYmplY3QoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0LAorCQkJeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyLAorCQkJeG1sU2NoZW1hSURDU2VsZWN0UHRyIHNlbCwKKwkJCWludCB0eXBlKQoreworICAgIHhtbFNjaGVtYUlEQ1N0YXRlT2JqUHRyIHN0bzsKKworICAgIC8qCisgICAgKiBSZXVzZSB0aGUgc3RhdGUgb2JqZWN0cyBmcm9tIHRoZSBwb29sLgorICAgICovCisgICAgaWYgKHZjdHh0LT54cGF0aFN0YXRlUG9vbCAhPSBOVUxMKSB7CisJc3RvID0gdmN0eHQtPnhwYXRoU3RhdGVQb29sOworCXZjdHh0LT54cGF0aFN0YXRlUG9vbCA9IHN0by0+bmV4dDsKKwlzdG8tPm5leHQgPSBOVUxMOworICAgIH0gZWxzZSB7CisJLyoKKwkqIENyZWF0ZSBhIG5ldyBzdGF0ZSBvYmplY3QuCisJKi8KKwlzdG8gPSAoeG1sU2NoZW1hSURDU3RhdGVPYmpQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hSURDU3RhdGVPYmopKTsKKwlpZiAoc3RvID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVkVyck1lbW9yeShOVUxMLAorCQkiYWxsb2NhdGluZyBhbiBJREMgc3RhdGUgb2JqZWN0IiwgTlVMTCk7CisJICAgIHJldHVybiAoLTEpOworCX0KKwltZW1zZXQoc3RvLCAwLCBzaXplb2YoeG1sU2NoZW1hSURDU3RhdGVPYmopKTsKKyAgICB9CisgICAgLyoKKyAgICAqIEFkZCB0byBnbG9iYWwgbGlzdC4KKyAgICAqLworICAgIGlmICh2Y3R4dC0+eHBhdGhTdGF0ZXMgIT0gTlVMTCkKKwlzdG8tPm5leHQgPSB2Y3R4dC0+eHBhdGhTdGF0ZXM7CisgICAgdmN0eHQtPnhwYXRoU3RhdGVzID0gc3RvOworCisgICAgLyoKKyAgICAqIEZyZWUgdGhlIG9sZCB4cGF0aCB2YWxpZGF0aW9uIGNvbnRleHQuCisgICAgKi8KKyAgICBpZiAoc3RvLT54cGF0aEN0eHQgIT0gTlVMTCkKKwl4bWxGcmVlU3RyZWFtQ3R4dCgoeG1sU3RyZWFtQ3R4dFB0cikgc3RvLT54cGF0aEN0eHQpOworCisgICAgLyoKKyAgICAqIENyZWF0ZSBhIG5ldyBYUGF0aCAocGF0dGVybikgdmFsaWRhdGlvbiBjb250ZXh0LgorICAgICovCisgICAgc3RvLT54cGF0aEN0eHQgPSAodm9pZCAqKSB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dCgKKwkoeG1sUGF0dGVyblB0cikgc2VsLT54cGF0aENvbXApOworICAgIGlmIChzdG8tPnhwYXRoQ3R4dCA9PSBOVUxMKSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hSURDQWRkU3RhdGVPYmplY3QiLAorCSAgICAiZmFpbGVkIHRvIGNyZWF0ZSBhbiBYUGF0aCB2YWxpZGF0aW9uIGNvbnRleHQiKTsKKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgc3RvLT50eXBlID0gdHlwZTsKKyAgICBzdG8tPmRlcHRoID0gdmN0eHQtPmRlcHRoOworICAgIHN0by0+bWF0Y2hlciA9IG1hdGNoZXI7CisgICAgc3RvLT5zZWwgPSBzZWw7CisgICAgc3RvLT5uYkhpc3RvcnkgPSAwOworCisjaWZkZWYgREVCVUdfSURDCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJJREM6ICAgU1RPIHB1c2ggJyVzJ1xuIiwKKwlzdG8tPnNlbC0+eHBhdGgpOworI2VuZGlmCisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFYUGF0aEV2YWx1YXRlOgorICogQHZjdHh0OiB0aGUgV1hTIHZhbGlkYXRpb24gY29udGV4dAorICogQG5vZGVUeXBlOiB0aGUgbm9kZVR5cGUgb2YgdGhlIGN1cnJlbnQgbm9kZQorICoKKyAqIEV2YWx1YXRlcyBhbGwgYWN0aXZlIFhQYXRoIHN0YXRlIG9iamVjdHMuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIElDICJmaWVsZCIgc3RhdGUgb2JqZWN0cyB3aGljaCByZXNvbHZlZCB0bworICogdGhpcyBub2RlLCAwIGlmIG5vbmUgcmVzb2x2ZWQgYW5kIC0xIG9uIGludGVybmFsIGVycm9ycy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hWFBhdGhFdmFsdWF0ZSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCisJCSAgICAgICB4bWxFbGVtZW50VHlwZSBub2RlVHlwZSkKK3sKKyAgICB4bWxTY2hlbWFJRENTdGF0ZU9ialB0ciBzdG8sIGhlYWQgPSBOVUxMLCBmaXJzdDsKKyAgICBpbnQgcmVzLCByZXNvbHZlZCA9IDAsIGRlcHRoID0gdmN0eHQtPmRlcHRoOworCisgICAgaWYgKHZjdHh0LT54cGF0aFN0YXRlcyA9PSBOVUxMKQorCXJldHVybiAoMCk7CisKKyAgICBpZiAobm9kZVR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKQorCWRlcHRoKys7CisjaWZkZWYgREVCVUdfSURDCisgICAgeworCXhtbENoYXIgKnN0ciA9IE5VTEw7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJJREM6IEVWQUwgb24gJXMsIGRlcHRoICVkLCB0eXBlICVkXG4iLAorCSAgICB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLCB2Y3R4dC0+aW5vZGUtPm5zTmFtZSwKKwkJdmN0eHQtPmlub2RlLT5sb2NhbE5hbWUpLCBkZXB0aCwgbm9kZVR5cGUpOworCUZSRUVfQU5EX05VTEwoc3RyKQorICAgIH0KKyNlbmRpZgorICAgIC8qCisgICAgKiBQcm9jZXNzIGFsbCBhY3RpdmUgWFBhdGggc3RhdGUgb2JqZWN0cy4KKyAgICAqLworICAgIGZpcnN0ID0gdmN0eHQtPnhwYXRoU3RhdGVzOworICAgIHN0byA9IGZpcnN0OworICAgIHdoaWxlIChzdG8gIT0gaGVhZCkgeworI2lmZGVmIERFQlVHX0lEQworCWlmIChzdG8tPnR5cGUgPT0gWFBBVEhfU1RBVEVfT0JKX1RZUEVfSURDX1NFTEVDVE9SKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIklEQzogICBbJyVzJ10gc2VsZWN0b3IgJyVzJ1xuIiwKKwkJc3RvLT5tYXRjaGVyLT5haWRjLT5kZWYtPm5hbWUsIHN0by0+c2VsLT54cGF0aCk7CisJZWxzZQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIklEQzogICBbJyVzJ10gZmllbGQgJyVzJ1xuIiwKKwkJc3RvLT5tYXRjaGVyLT5haWRjLT5kZWYtPm5hbWUsIHN0by0+c2VsLT54cGF0aCk7CisjZW5kaWYKKwlpZiAobm9kZVR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkgICAgcmVzID0geG1sU3RyZWFtUHVzaCgoeG1sU3RyZWFtQ3R4dFB0cikgc3RvLT54cGF0aEN0eHQsCisJCXZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLCB2Y3R4dC0+aW5vZGUtPm5zTmFtZSk7CisJZWxzZQorCSAgICByZXMgPSB4bWxTdHJlYW1QdXNoQXR0cigoeG1sU3RyZWFtQ3R4dFB0cikgc3RvLT54cGF0aEN0eHQsCisJCXZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLCB2Y3R4dC0+aW5vZGUtPm5zTmFtZSk7CisKKwlpZiAocmVzID09IC0xKSB7CisJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVhQYXRoRXZhbHVhdGUiLAorCQkiY2FsbGluZyB4bWxTdHJlYW1QdXNoKCkiKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorCWlmIChyZXMgPT0gMCkKKwkgICAgZ290byBuZXh0X3N0bzsKKwkvKgorCSogRnVsbCBtYXRjaC4KKwkqLworI2lmZGVmIERFQlVHX0lEQworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiSURDOiAgICAgIgorCSAgICAiTUFUQ0hcbiIpOworI2VuZGlmCisJLyoKKwkqIFJlZ2lzdGVyIGEgbWF0Y2ggaW4gdGhlIHN0YXRlIG9iamVjdCBoaXN0b3J5LgorCSovCisJaWYgKHN0by0+aGlzdG9yeSA9PSBOVUxMKSB7CisJICAgIHN0by0+aGlzdG9yeSA9IChpbnQgKikgeG1sTWFsbG9jKDUgKiBzaXplb2YoaW50KSk7CisJICAgIGlmIChzdG8tPmhpc3RvcnkgPT0gTlVMTCkgeworCQl4bWxTY2hlbWFWRXJyTWVtb3J5KE5VTEwsCisJCSAgICAiYWxsb2NhdGluZyB0aGUgc3RhdGUgb2JqZWN0IGhpc3RvcnkiLCBOVUxMKTsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICBzdG8tPnNpemVIaXN0b3J5ID0gNTsKKwl9IGVsc2UgaWYgKHN0by0+c2l6ZUhpc3RvcnkgPD0gc3RvLT5uYkhpc3RvcnkpIHsKKwkgICAgc3RvLT5zaXplSGlzdG9yeSAqPSAyOworCSAgICBzdG8tPmhpc3RvcnkgPSAoaW50ICopIHhtbFJlYWxsb2Moc3RvLT5oaXN0b3J5LAorCQlzdG8tPnNpemVIaXN0b3J5ICogc2l6ZW9mKGludCkpOworCSAgICBpZiAoc3RvLT5oaXN0b3J5ID09IE5VTEwpIHsKKwkJeG1sU2NoZW1hVkVyck1lbW9yeShOVUxMLAorCQkgICAgInJlLWFsbG9jYXRpbmcgdGhlIHN0YXRlIG9iamVjdCBoaXN0b3J5IiwgTlVMTCk7CisJCXJldHVybigtMSk7CisJICAgIH0KKwl9CisJc3RvLT5oaXN0b3J5W3N0by0+bmJIaXN0b3J5KytdID0gZGVwdGg7CisKKyNpZmRlZiBERUJVR19JREMKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIklEQzogICAgICAgcHVzaCBtYXRjaCAnJWQnXG4iLAorCSAgICB2Y3R4dC0+ZGVwdGgpOworI2VuZGlmCisKKwlpZiAoc3RvLT50eXBlID09IFhQQVRIX1NUQVRFX09CSl9UWVBFX0lEQ19TRUxFQ1RPUikgeworCSAgICB4bWxTY2hlbWFJRENTZWxlY3RQdHIgc2VsOworCSAgICAvKgorCSAgICAqIEFjdGl2YXRlIHN0YXRlIG9iamVjdHMgZm9yIHRoZSBJREMgZmllbGRzIG9mCisJICAgICogdGhlIElEQyBzZWxlY3Rvci4KKwkgICAgKi8KKyNpZmRlZiBERUJVR19JREMKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJJREM6ICAgICAiCisJCSJhY3RpdmF0aW5nIGZpZWxkIHN0YXRlc1xuIik7CisjZW5kaWYKKwkgICAgc2VsID0gc3RvLT5tYXRjaGVyLT5haWRjLT5kZWYtPmZpZWxkczsKKwkgICAgd2hpbGUgKHNlbCAhPSBOVUxMKSB7CisJCWlmICh4bWxTY2hlbWFJRENBZGRTdGF0ZU9iamVjdCh2Y3R4dCwgc3RvLT5tYXRjaGVyLAorCQkgICAgc2VsLCBYUEFUSF9TVEFURV9PQkpfVFlQRV9JRENfRklFTEQpID09IC0xKQorCQkgICAgcmV0dXJuICgtMSk7CisJCXNlbCA9IHNlbC0+bmV4dDsKKwkgICAgfQorCX0gZWxzZSBpZiAoc3RvLT50eXBlID09IFhQQVRIX1NUQVRFX09CSl9UWVBFX0lEQ19GSUVMRCkgeworCSAgICAvKgorCSAgICAqIEFuIElEQyBrZXkgbm9kZSB3YXMgZm91bmQgYnkgdGhlIElEQyBmaWVsZC4KKwkgICAgKi8KKyNpZmRlZiBERUJVR19JREMKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJJREM6ICAgICBrZXkgZm91bmRcbiIpOworI2VuZGlmCisJICAgIC8qCisJICAgICogTm90aWZ5IHRoYXQgdGhlIGNoYXJhY3RlciB2YWx1ZSBvZiB0aGlzIG5vZGUgaXMKKwkgICAgKiBuZWVkZWQuCisJICAgICovCisJICAgIGlmIChyZXNvbHZlZCA9PSAwKSB7CisJCWlmICgodmN0eHQtPmlub2RlLT5mbGFncyAmCisJCSAgICBYTUxfU0NIRU1BX05PREVfSU5GT19WQUxVRV9ORUVERUQpID09IDApCisJCXZjdHh0LT5pbm9kZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9OT0RFX0lORk9fVkFMVUVfTkVFREVEOworCSAgICB9CisJICAgIHJlc29sdmVkKys7CisJfQorbmV4dF9zdG86CisJaWYgKHN0by0+bmV4dCA9PSBOVUxMKSB7CisJICAgIC8qCisJICAgICogRXZhbHVhdGUgZmllbGQgc3RhdGUgb2JqZWN0cyBjcmVhdGVkIG9uIHRoaXMgbm9kZSBhcyB3ZWxsLgorCSAgICAqLworCSAgICBoZWFkID0gZmlyc3Q7CisJICAgIHN0byA9IHZjdHh0LT54cGF0aFN0YXRlczsKKwl9IGVsc2UKKwkgICAgc3RvID0gc3RvLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKHJlc29sdmVkKTsKK30KKworc3RhdGljIGNvbnN0IHhtbENoYXIgKgoreG1sU2NoZW1hRm9ybWF0SURDS2V5U2VxdWVuY2UoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0LAorCQkJICAgICAgeG1sQ2hhciAqKmJ1ZiwKKwkJCSAgICAgIHhtbFNjaGVtYVBTVklJRENLZXlQdHIgKnNlcSwKKwkJCSAgICAgIGludCBjb3VudCkKK3sKKyAgICBpbnQgaSwgcmVzOworICAgIHhtbENoYXIgKnZhbHVlID0gTlVMTDsKKworICAgICpidWYgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIlsiKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCSpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIiciKTsKKwlyZXMgPSB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3BFeHQoc2VxW2ldLT52YWwsCisJICAgIHhtbFNjaGVtYUdldFdoaXRlU3BhY2VGYWNldFZhbHVlKHNlcVtpXS0+dHlwZSksCisJICAgICZ2YWx1ZSk7CisJaWYgKHJlcyA9PSAwKQorCSAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUIHZhbHVlKTsKKwllbHNlIHsKKwkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hRm9ybWF0SURDS2V5U2VxdWVuY2UiLAorCQkiZmFpbGVkIHRvIGNvbXB1dGUgYSBjYW5vbmljYWwgdmFsdWUiKTsKKwkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiPz8/Iik7CisJfQorCWlmIChpIDwgY291bnQgLTEpCisJICAgICpidWYgPSB4bWxTdHJjYXQoKmJ1ZiwgQkFEX0NBU1QgIicsICIpOworCWVsc2UKKwkgICAgKmJ1ZiA9IHhtbFN0cmNhdCgqYnVmLCBCQURfQ0FTVCAiJyIpOworCWlmICh2YWx1ZSAhPSBOVUxMKSB7CisJICAgIHhtbEZyZWUodmFsdWUpOworCSAgICB2YWx1ZSA9IE5VTEw7CisJfQorICAgIH0KKyAgICAqYnVmID0geG1sU3RyY2F0KCpidWYsIEJBRF9DQVNUICJdIik7CisKKyAgICByZXR1cm4gKEJBRF9DQVNUICpidWYpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVhQYXRoUG9wOgorICogQHZjdHh0OiB0aGUgV1hTIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIFBvcHMgYWxsIFhQYXRoIHN0YXRlcy4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBhbmQgLTEgb24gaW50ZXJuYWwgZXJyb3JzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFYUGF0aFBvcCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgeG1sU2NoZW1hSURDU3RhdGVPYmpQdHIgc3RvOworICAgIGludCByZXM7CisKKyAgICBpZiAodmN0eHQtPnhwYXRoU3RhdGVzID09IE5VTEwpCisJcmV0dXJuKDApOworICAgIHN0byA9IHZjdHh0LT54cGF0aFN0YXRlczsKKyAgICBkbyB7CisJcmVzID0geG1sU3RyZWFtUG9wKCh4bWxTdHJlYW1DdHh0UHRyKSBzdG8tPnhwYXRoQ3R4dCk7CisJaWYgKHJlcyA9PSAtMSkKKwkgICAgcmV0dXJuICgtMSk7CisJc3RvID0gc3RvLT5uZXh0OworICAgIH0gd2hpbGUgKHN0byAhPSBOVUxMKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hWFBhdGhQcm9jZXNzSGlzdG9yeToKKyAqIEB2Y3R4dDogdGhlIFdYUyB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEB0eXBlOiB0aGUgc2ltcGxlL2NvbXBsZXggdHlwZSBvZiB0aGUgY3VycmVudCBub2RlIGlmIGFueSBhdCBhbGwKKyAqIEB2YWw6IHRoZSBwcmVjb21waWxlZCB2YWx1ZQorICoKKyAqIFByb2Nlc3NlcyBhbmQgcG9wcyB0aGUgaGlzdG9yeSBpdGVtcyBvZiB0aGUgSURDIHN0YXRlIG9iamVjdHMuCisgKiBJREMga2V5LXNlcXVlbmNlcyBhcmUgdmFsaWRhdGVkL2NyZWF0ZWQgb24gSURDIGJpbmRpbmdzLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIGFuZCAtMSBvbiBpbnRlcm5hbCBlcnJvcnMuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYVhQYXRoUHJvY2Vzc0hpc3RvcnkoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0LAorCQkJICAgICBpbnQgZGVwdGgpCit7CisgICAgeG1sU2NoZW1hSURDU3RhdGVPYmpQdHIgc3RvLCBuZXh0c3RvOworICAgIGludCByZXMsIG1hdGNoRGVwdGg7CisgICAgeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciBrZXkgPSBOVUxMOworICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSA9IHZjdHh0LT5pbm9kZS0+dHlwZURlZiwgc2ltcGxlVHlwZSA9IE5VTEw7CisKKyAgICBpZiAodmN0eHQtPnhwYXRoU3RhdGVzID09IE5VTEwpCisJcmV0dXJuICgwKTsKKyAgICBzdG8gPSB2Y3R4dC0+eHBhdGhTdGF0ZXM7CisKKyNpZmRlZiBERUJVR19JREMKKyAgICB7CisJeG1sQ2hhciAqc3RyID0gTlVMTDsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgIklEQzogQkFDSyBvbiAlcywgZGVwdGggJWRcbiIsCisJICAgIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIHZjdHh0LT5pbm9kZS0+bnNOYW1lLAorCQl2Y3R4dC0+aW5vZGUtPmxvY2FsTmFtZSksIHZjdHh0LT5kZXB0aCk7CisJRlJFRV9BTkRfTlVMTChzdHIpCisgICAgfQorI2VuZGlmCisgICAgLyoKKyAgICAqIEV2YWx1YXRlIHRoZSBzdGF0ZSBvYmplY3RzLgorICAgICovCisgICAgd2hpbGUgKHN0byAhPSBOVUxMKSB7CisJcmVzID0geG1sU3RyZWFtUG9wKCh4bWxTdHJlYW1DdHh0UHRyKSBzdG8tPnhwYXRoQ3R4dCk7CisJaWYgKHJlcyA9PSAtMSkgeworCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFYUGF0aFByb2Nlc3NIaXN0b3J5IiwKKwkJImNhbGxpbmcgeG1sU3RyZWFtUG9wKCkiKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfQorI2lmZGVmIERFQlVHX0lEQworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiSURDOiAgIHN0cmVhbSBwb3AgJyVzJ1xuIiwKKwkgICAgc3RvLT5zZWwtPnhwYXRoKTsKKyNlbmRpZgorCWlmIChzdG8tPm5iSGlzdG9yeSA9PSAwKQorCSAgICBnb3RvIGRlcmVnaXN0ZXJfY2hlY2s7CisKKwltYXRjaERlcHRoID0gc3RvLT5oaXN0b3J5W3N0by0+bmJIaXN0b3J5IC0xXTsKKworCS8qCisJKiBPbmx5IG1hdGNoZXMgYXQgdGhlIGN1cnJlbnQgZGVwdGggYXJlIG9mIGludGVyZXN0LgorCSovCisJaWYgKG1hdGNoRGVwdGggIT0gZGVwdGgpIHsKKwkgICAgc3RvID0gc3RvLT5uZXh0OworCSAgICBjb250aW51ZTsKKwl9CisJaWYgKHN0by0+dHlwZSA9PSBYUEFUSF9TVEFURV9PQkpfVFlQRV9JRENfRklFTEQpIHsKKwkgICAgLyoKKwkgICAgKiBOT1RFOiBBY2NvcmRpbmcgdG8KKwkgICAgKiAgIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMTk4CisJICAgICogICAuLi4gdGhlIHNpbXBsZS1jb250ZW50IG9mIGNvbXBsZXggdHlwZXMgaXMgYWxzbyBhbGxvd2VkLgorCSAgICAqLworCisJICAgIGlmIChXWFNfSVNfQ09NUExFWCh0eXBlKSkgeworCQlpZiAoV1hTX0hBU19TSU1QTEVfQ09OVEVOVCh0eXBlKSkgeworCQkgICAgLyoKKwkJICAgICogU2FuaXR5IGNoZWNrIGZvciBjb21wbGV4IHR5cGVzIHdpdGggc2ltcGxlIGNvbnRlbnQuCisJCSAgICAqLworCQkgICAgc2ltcGxlVHlwZSA9IHR5cGUtPmNvbnRlbnRUeXBlRGVmOworCQkgICAgaWYgKHNpbXBsZVR5cGUgPT0gTlVMTCkgeworCQkJVkVSUk9SX0lOVCgieG1sU2NoZW1hWFBhdGhQcm9jZXNzSGlzdG9yeSIsCisJCQkgICAgImZpZWxkIHJlc29sdmVzIHRvIGEgQ1Qgd2l0aCBzaW1wbGUgY29udGVudCAiCisJCQkgICAgImJ1dCB0aGUgQ1QgaXMgbWlzc2luZyB0aGUgU1QgZGVmaW5pdGlvbiIpOworCQkJcmV0dXJuICgtMSk7CisJCSAgICB9CisJCX0gZWxzZQorCQkgICAgc2ltcGxlVHlwZSA9IE5VTEw7CisJICAgIH0gZWxzZQorCQlzaW1wbGVUeXBlID0gdHlwZTsKKwkgICAgaWYgKHNpbXBsZVR5cGUgPT0gTlVMTCkgeworCQl4bWxDaGFyICpzdHIgPSBOVUxMOworCisJCS8qCisJCSogTm90IHF1YWxpZmllZCBpZiB0aGUgZmllbGQgcmVzb2x2ZXMgdG8gYSBub2RlIG9mIG5vbgorCQkqIHNpbXBsZSB0eXBlLgorCQkqLworCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCB2Y3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFWX0NWQ19JREMsIE5VTEwsCisJCSAgICBXWFNfQkFTSUNfQ0FTVCBzdG8tPm1hdGNoZXItPmFpZGMtPmRlZiwKKwkJICAgICJUaGUgWFBhdGggJyVzJyBvZiBhIGZpZWxkIG9mICVzIGRvZXMgZXZhbHVhdGUgdG8gYSBub2RlIG9mICIKKwkJICAgICJub24tc2ltcGxlIHR5cGUiLAorCQkgICAgc3RvLT5zZWwtPnhwYXRoLAorCQkgICAgeG1sU2NoZW1hR2V0SURDRGVzaWduYXRpb24oJnN0ciwgc3RvLT5tYXRjaGVyLT5haWRjLT5kZWYpKTsKKwkJRlJFRV9BTkRfTlVMTChzdHIpOworCQlzdG8tPm5iSGlzdG9yeS0tOworCQlnb3RvIGRlcmVnaXN0ZXJfY2hlY2s7CisJICAgIH0KKworCSAgICBpZiAoKGtleSA9PSBOVUxMKSAmJiAodmN0eHQtPmlub2RlLT52YWwgPT0gTlVMTCkpIHsKKwkJLyoKKwkJKiBGYWlsZWQgdG8gcHJvdmlkZSB0aGUgbm9ybWFsaXplZCB2YWx1ZTsgbWF5YmUKKwkJKiB0aGUgdmFsdWUgd2FzIGludmFsaWQuCisJCSovCisJCVZFUlJPUihYTUxfU0NIRU1BVl9DVkNfSURDLAorCQkgICAgV1hTX0JBU0lDX0NBU1Qgc3RvLT5tYXRjaGVyLT5haWRjLT5kZWYsCisJCSAgICAiV2FybmluZzogTm8gcHJlY29tcHV0ZWQgdmFsdWUgYXZhaWxhYmxlLCB0aGUgdmFsdWUgIgorCQkgICAgIndhcyBlaXRoZXIgaW52YWxpZCBvciBzb21ldGhpbmcgc3RyYW5nZSBoYXBwZW5kIik7CisJCXN0by0+bmJIaXN0b3J5LS07CisJCWdvdG8gZGVyZWdpc3Rlcl9jaGVjazsKKwkgICAgfSBlbHNlIHsKKwkJeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyID0gc3RvLT5tYXRjaGVyOworCQl4bWxTY2hlbWFQU1ZJSURDS2V5UHRyICprZXlTZXE7CisJCWludCBwb3MsIGlkeDsKKworCQkvKgorCQkqIFRoZSBrZXkgd2lsbCBiZSBhbmNob3JlZCBvbiB0aGUgbWF0Y2hlcidzIGxpc3Qgb2YKKwkJKiBrZXktc2VxdWVuY2VzLiBUaGUgcG9zaXRpb24gaW4gdGhpcyBsaXN0IGlzIGRldGVybWluZWQKKwkJKiBieSB0aGUgdGFyZ2V0IG5vZGUncyBkZXB0aCByZWxhdGl2ZSB0byB0aGUgbWF0Y2hlcidzCisJCSogZGVwdGggb2YgY3JlYXRpb24gKGkuZS4gdGhlIGRlcHRoIG9mIHRoZSBzY29wZSBlbGVtZW50KS4KKwkJKgorCQkqIEVsZW1lbnQgICAgICAgIERlcHRoICAgIFBvcyAgIExpc3QtZW50cmllcworCQkqIDxzY29wZT4gICAgICAgICAgMCAgICAgICAgICAgICAgTlVMTAorCQkqICAgPGJhcj4gICAgICAgICAgMSAgICAgICAgICAgICAgTlVMTAorCQkqICAgICA8dGFyZ2V0Lz4gICAgMiAgICAgICAyICAgICAgdGFyZ2V0CisJCSogICA8YmFyPgorICAgICAgICAgICAgICAgICogPC9zY29wZT4KKwkJKgorCQkqIFRoZSBzaXplIG9mIHRoZSBsaXN0IGlzIG9ubHkgZGVwZW5kYW50IG9uIHRoZSBkZXB0aCBvZgorCQkqIHRoZSB0cmVlLgorCQkqIEFuIGVudHJ5IHdpbGwgYmUgTlVMTGVkIGluIHNlbGVjdG9yX2xlYXZlLCBpLmUuIHdoZW4KKwkJKiB3ZSBoaXQgdGhlIHRhcmdldCdzCisJCSovCisJCXBvcyA9IHN0by0+ZGVwdGggLSBtYXRjaGVyLT5kZXB0aDsKKwkJaWR4ID0gc3RvLT5zZWwtPmluZGV4OworCisJCS8qCisJCSogQ3JlYXRlL2dyb3cgdGhlIGFycmF5IG9mIGtleS1zZXF1ZW5jZXMuCisJCSovCisJCWlmIChtYXRjaGVyLT5rZXlTZXFzID09IE5VTEwpIHsKKwkJICAgIGlmIChwb3MgPiA5KQorCQkJbWF0Y2hlci0+c2l6ZUtleVNlcXMgPSBwb3MgKiAyOworCQkgICAgZWxzZQorCQkJbWF0Y2hlci0+c2l6ZUtleVNlcXMgPSAxMDsKKwkJICAgIG1hdGNoZXItPmtleVNlcXMgPSAoeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciAqKikKKwkJCXhtbE1hbGxvYyhtYXRjaGVyLT5zaXplS2V5U2VxcyAqCisJCQlzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciAqKSk7CisJCSAgICBpZiAobWF0Y2hlci0+a2V5U2VxcyA9PSBOVUxMKSB7CisJCQl4bWxTY2hlbWFWRXJyTWVtb3J5KE5VTEwsCisJCQkgICAgImFsbG9jYXRpbmcgYW4gYXJyYXkgb2Yga2V5LXNlcXVlbmNlcyIsCisJCQkgICAgTlVMTCk7CisJCQlyZXR1cm4oLTEpOworCQkgICAgfQorCQkgICAgbWVtc2V0KG1hdGNoZXItPmtleVNlcXMsIDAsCisJCQltYXRjaGVyLT5zaXplS2V5U2VxcyAqCisJCQlzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciAqKSk7CisJCX0gZWxzZSBpZiAocG9zID49IG1hdGNoZXItPnNpemVLZXlTZXFzKSB7CisJCSAgICBpbnQgaSA9IG1hdGNoZXItPnNpemVLZXlTZXFzOworCisJCSAgICBtYXRjaGVyLT5zaXplS2V5U2VxcyAqPSAyOworCQkgICAgbWF0Y2hlci0+a2V5U2VxcyA9ICh4bWxTY2hlbWFQU1ZJSURDS2V5UHRyICoqKQorCQkJeG1sUmVhbGxvYyhtYXRjaGVyLT5rZXlTZXFzLAorCQkJbWF0Y2hlci0+c2l6ZUtleVNlcXMgKgorCQkJc2l6ZW9mKHhtbFNjaGVtYVBTVklJRENLZXlQdHIgKikpOworCQkgICAgaWYgKG1hdGNoZXItPmtleVNlcXMgPT0gTlVMTCkgeworCQkJeG1sU2NoZW1hVkVyck1lbW9yeShOVUxMLAorCQkJICAgICJyZWFsbG9jYXRpbmcgYW4gYXJyYXkgb2Yga2V5LXNlcXVlbmNlcyIsCisJCQkgICAgTlVMTCk7CisJCQlyZXR1cm4gKC0xKTsKKwkJICAgIH0KKwkJICAgIC8qCisJCSAgICAqIFRoZSBhcnJheSBuZWVkcyB0byBiZSBOVUxMZWQuCisJCSAgICAqIFRPRE86IFVzZSBtZW1zZXQ/CisJCSAgICAqLworCQkgICAgZm9yICg7IGkgPCBtYXRjaGVyLT5zaXplS2V5U2VxczsgaSsrKQorCQkJbWF0Y2hlci0+a2V5U2Vxc1tpXSA9IE5VTEw7CisJCX0KKworCQkvKgorCQkqIEdldC9jcmVhdGUgdGhlIGtleS1zZXF1ZW5jZS4KKwkJKi8KKwkJa2V5U2VxID0gbWF0Y2hlci0+a2V5U2Vxc1twb3NdOworCQlpZiAoa2V5U2VxID09IE5VTEwpIHsKKwkJICAgIGdvdG8gY3JlYXRlX3NlcXVlbmNlOworCQl9IGVsc2UgaWYgKGtleVNlcVtpZHhdICE9IE5VTEwpIHsKKwkJICAgIHhtbENoYXIgKnN0ciA9IE5VTEw7CisJCSAgICAvKgorCQkgICAgKiBjdmMtaWRlbnRpdHktY29uc3RyYWludDoKKwkJICAgICogMyBGb3IgZWFjaCBub2RlIGluIHRoZSDvv710YXJnZXQgbm9kZSBzZXTvv70gYWxsCisJCSAgICAqIG9mIHRoZSB7ZmllbGRzfSwgd2l0aCB0aGF0IG5vZGUgYXMgdGhlIGNvbnRleHQKKwkJICAgICogbm9kZSwgZXZhbHVhdGUgdG8gZWl0aGVyIGFuIGVtcHR5IG5vZGUtc2V0IG9yCisJCSAgICAqIGEgbm9kZS1zZXQgd2l0aCBleGFjdGx5IG9uZSBtZW1iZXIsIHdoaWNoIG11c3QKKwkJICAgICogaGF2ZSBhIHNpbXBsZSB0eXBlLgorCQkgICAgKgorCQkgICAgKiBUaGUga2V5IHdhcyBhbHJlYWR5IHNldDsgcmVwb3J0IGFuIGVycm9yLgorCQkgICAgKi8KKwkJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHZjdHh0LAorCQkJWE1MX1NDSEVNQVZfQ1ZDX0lEQywgTlVMTCwKKwkJCVdYU19CQVNJQ19DQVNUIG1hdGNoZXItPmFpZGMtPmRlZiwKKwkJCSJUaGUgWFBhdGggJyVzJyBvZiBhIGZpZWxkIG9mICVzIGV2YWx1YXRlcyB0byBhICIKKwkJCSJub2RlLXNldCB3aXRoIG1vcmUgdGhhbiBvbmUgbWVtYmVyIiwKKwkJCXN0by0+c2VsLT54cGF0aCwKKwkJCXhtbFNjaGVtYUdldElEQ0Rlc2lnbmF0aW9uKCZzdHIsIG1hdGNoZXItPmFpZGMtPmRlZikpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpOworCQkgICAgc3RvLT5uYkhpc3RvcnktLTsKKwkJICAgIGdvdG8gZGVyZWdpc3Rlcl9jaGVjazsKKwkJfSBlbHNlCisJCSAgICBnb3RvIGNyZWF0ZV9rZXk7CisKK2NyZWF0ZV9zZXF1ZW5jZToKKwkJLyoKKwkJKiBDcmVhdGUgYSBrZXktc2VxdWVuY2UuCisJCSovCisJCWtleVNlcSA9ICh4bWxTY2hlbWFQU1ZJSURDS2V5UHRyICopIHhtbE1hbGxvYygKKwkJICAgIG1hdGNoZXItPmFpZGMtPmRlZi0+bmJGaWVsZHMgKgorCQkgICAgc2l6ZW9mKHhtbFNjaGVtYVBTVklJRENLZXlQdHIpKTsKKwkJaWYgKGtleVNlcSA9PSBOVUxMKSB7CisJCSAgICB4bWxTY2hlbWFWRXJyTWVtb3J5KE5VTEwsCisJCQkiYWxsb2NhdGluZyBhbiBJREMga2V5LXNlcXVlbmNlIiwgTlVMTCk7CisJCSAgICByZXR1cm4oLTEpOworCQl9CisJCW1lbXNldChrZXlTZXEsIDAsIG1hdGNoZXItPmFpZGMtPmRlZi0+bmJGaWVsZHMgKgorCQkgICAgc2l6ZW9mKHhtbFNjaGVtYVBTVklJRENLZXlQdHIpKTsKKwkJbWF0Y2hlci0+a2V5U2Vxc1twb3NdID0ga2V5U2VxOworY3JlYXRlX2tleToKKwkJLyoKKwkJKiBDcmVhdGUgYSBrZXkgb25jZSBwZXIgbm9kZSBvbmx5LgorCQkqLworCQlpZiAoa2V5ID09IE5VTEwpIHsKKwkJICAgIGtleSA9ICh4bWxTY2hlbWFQU1ZJSURDS2V5UHRyKSB4bWxNYWxsb2MoCisJCQlzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ0tleSkpOworCQkgICAgaWYgKGtleSA9PSBOVUxMKSB7CisJCQl4bWxTY2hlbWFWRXJyTWVtb3J5KE5VTEwsCisJCQkgICAgImFsbG9jYXRpbmcgYSBJREMga2V5IiwgTlVMTCk7CisJCQl4bWxGcmVlKGtleVNlcSk7CisJCQltYXRjaGVyLT5rZXlTZXFzW3Bvc10gPSBOVUxMOworCQkJcmV0dXJuKC0xKTsKKwkJICAgIH0KKwkJICAgIC8qCisJCSAgICAqIENvbnN1bWUgdGhlIGNvbXBpbGVkIHZhbHVlLgorCQkgICAgKi8KKwkJICAgIGtleS0+dHlwZSA9IHNpbXBsZVR5cGU7CisJCSAgICBrZXktPnZhbCA9IHZjdHh0LT5pbm9kZS0+dmFsOworCQkgICAgdmN0eHQtPmlub2RlLT52YWwgPSBOVUxMOworCQkgICAgLyoKKwkJICAgICogU3RvcmUgdGhlIGtleSBpbiBhIGdsb2JhbCBsaXN0LgorCQkgICAgKi8KKwkJICAgIGlmICh4bWxTY2hlbWFJRENTdG9yZUtleSh2Y3R4dCwga2V5KSA9PSAtMSkgeworCQkJeG1sU2NoZW1hSURDRnJlZUtleShrZXkpOworCQkJcmV0dXJuICgtMSk7CisJCSAgICB9CisJCX0KKwkJa2V5U2VxW2lkeF0gPSBrZXk7CisJICAgIH0KKwl9IGVsc2UgaWYgKHN0by0+dHlwZSA9PSBYUEFUSF9TVEFURV9PQkpfVFlQRV9JRENfU0VMRUNUT1IpIHsKKworCSAgICB4bWxTY2hlbWFQU1ZJSURDS2V5UHRyICoqa2V5U2VxID0gTlVMTDsKKwkgICAgLyogeG1sU2NoZW1hUFNWSUlEQ0JpbmRpbmdQdHIgYmluZDsgKi8KKwkgICAgeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgbnRJdGVtOworCSAgICB4bWxTY2hlbWFJRENNYXRjaGVyUHRyIG1hdGNoZXI7CisJICAgIHhtbFNjaGVtYUlEQ1B0ciBpZGM7CisJICAgIHhtbFNjaGVtYUl0ZW1MaXN0UHRyIHRhcmdldHM7CisJICAgIGludCBwb3MsIGksIGosIG5iS2V5czsKKwkgICAgLyoKKwkgICAgKiBIZXJlIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBzY2VuYXJpbzoKKwkgICAgKiBBbiBJREMgJ3NlbGVjdG9yJyBzdGF0ZSBvYmplY3QgcmVzb2x2ZWQgdG8gYSB0YXJnZXQgbm9kZSwKKwkgICAgKiBkdXJpbmcgdGhlIHRpbWUgdGhpcyB0YXJnZXQgbm9kZSB3YXMgaW4gdGhlCisJICAgICogYW5jZXN0b3Itb3Itc2VsZiBheGlzLCB0aGUgJ2ZpZWxkJyBzdGF0ZSBvYmplY3QocykgbG9va2VkCisJICAgICogb3V0IGZvciBtYXRjaGluZyBub2RlcyB0byBjcmVhdGUgYSBrZXktc2VxdWVuY2UgZm9yIHRoaXMKKwkgICAgKiB0YXJnZXQgbm9kZS4gTm93IHdlIGFyZSBiYWNrIHRvIHRoaXMgdGFyZ2V0IG5vZGUgYW5kIG5lZWQKKwkgICAgKiB0byBwdXQgdGhlIGtleS1zZXF1ZW5jZSwgdG9nZXRoZXIgd2l0aCB0aGUgdGFyZ2V0IG5vZGUKKwkgICAgKiBpdHNlbGYsIGludG8gdGhlIG5vZGUtdGFibGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSURDCisJICAgICogYmluZGluZy4KKwkgICAgKi8KKwkgICAgbWF0Y2hlciA9IHN0by0+bWF0Y2hlcjsKKwkgICAgaWRjID0gbWF0Y2hlci0+YWlkYy0+ZGVmOworCSAgICBuYktleXMgPSBpZGMtPm5iRmllbGRzOworCSAgICBwb3MgPSBkZXB0aCAtIG1hdGNoZXItPmRlcHRoOworCSAgICAvKgorCSAgICAqIENoZWNrIGlmIHRoZSBtYXRjaGVyIGhhcyBhbnkga2V5LXNlcXVlbmNlcyBhdCBhbGwsIHBsdXMKKwkgICAgKiBpZiBpdCBoYXMgYSBrZXktc2VxdWVuY2UgZm9yIHRoZSBjdXJyZW50IHRhcmdldCBub2RlLgorCSAgICAqLworCSAgICBpZiAoKG1hdGNoZXItPmtleVNlcXMgPT0gTlVMTCkgfHwKKwkJKG1hdGNoZXItPnNpemVLZXlTZXFzIDw9IHBvcykpIHsKKwkJaWYgKGlkYy0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWSkKKwkJICAgIGdvdG8gc2VsZWN0b3Jfa2V5X2Vycm9yOworCQllbHNlCisJCSAgICBnb3RvIHNlbGVjdG9yX2xlYXZlOworCSAgICB9CisKKwkgICAga2V5U2VxID0gJihtYXRjaGVyLT5rZXlTZXFzW3Bvc10pOworCSAgICBpZiAoKmtleVNlcSA9PSBOVUxMKSB7CisJCWlmIChpZGMtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVkpCisJCSAgICBnb3RvIHNlbGVjdG9yX2tleV9lcnJvcjsKKwkJZWxzZQorCQkgICAgZ290byBzZWxlY3Rvcl9sZWF2ZTsKKwkgICAgfQorCisJICAgIGZvciAoaSA9IDA7IGkgPCBuYktleXM7IGkrKykgeworCQlpZiAoKCprZXlTZXEpW2ldID09IE5VTEwpIHsKKwkJICAgIC8qCisJCSAgICAqIE5vdCBxdWFsaWZpZWQsIGlmIG5vdCBhbGwgZmllbGRzIGRpZCByZXNvbHZlLgorCQkgICAgKi8KKwkJICAgIGlmIChpZGMtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVkpIHsKKwkJCS8qCisJCQkqIEFsbCBmaWVsZHMgb2YgYSAia2V5IiBJREMgbXVzdCByZXNvbHZlLgorCQkJKi8KKwkJCWdvdG8gc2VsZWN0b3Jfa2V5X2Vycm9yOworCQkgICAgfQorCQkgICAgZ290byBzZWxlY3Rvcl9sZWF2ZTsKKwkJfQorCSAgICB9CisJICAgIC8qCisJICAgICogQWxsIGZpZWxkcyBkaWQgcmVzb2x2ZS4KKwkgICAgKi8KKworCSAgICAvKgorCSAgICAqIDQuMSBJZiB0aGUge2lkZW50aXR5LWNvbnN0cmFpbnQgY2F0ZWdvcnl9IGlzIHVuaXF1ZSgva2V5KSwKKwkgICAgKiB0aGVuIG5vIHR3byBtZW1iZXJzIG9mIHRoZSDvv71xdWFsaWZpZWQgbm9kZSBzZXTvv70gaGF2ZQorCSAgICAqIO+/vWtleS1zZXF1ZW5jZXPvv70gd2hvc2UgbWVtYmVycyBhcmUgcGFpcndpc2UgZXF1YWwsIGFzCisJICAgICogZGVmaW5lZCBieSBFcXVhbCBpbiBbWE1MIFNjaGVtYXM6IERhdGF0eXBlc10uCisJICAgICoKKwkgICAgKiBHZXQgdGhlIElEQyBiaW5kaW5nIGZyb20gdGhlIG1hdGNoZXIgYW5kIGNoZWNrIGZvcgorCSAgICAqIGR1cGxpY2F0ZSBrZXktc2VxdWVuY2VzLgorCSAgICAqLworI2lmIDAKKwkgICAgYmluZCA9IHhtbFNjaGVtYUlEQ0FjcXVpcmVCaW5kaW5nKHZjdHh0LCBtYXRjaGVyKTsKKyNlbmRpZgorCSAgICB0YXJnZXRzID0geG1sU2NoZW1hSURDQWNxdWlyZVRhcmdldExpc3QodmN0eHQsIG1hdGNoZXIpOworCSAgICBpZiAoKGlkYy0+dHlwZSAhPSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRikgJiYKKwkJKHRhcmdldHMtPm5iSXRlbXMgIT0gMCkpIHsKKwkJeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciBja2V5LCBia2V5LCAqYmtleVNlcTsKKworCQlpID0gMDsKKwkJcmVzID0gMDsKKwkJLyoKKwkJKiBDb21wYXJlIHRoZSBrZXktc2VxdWVuY2VzLCBrZXkgYnkga2V5LgorCQkqLworCQlkbyB7CisJCSAgICBia2V5U2VxID0KKwkJCSgoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpIHRhcmdldHMtPml0ZW1zW2ldKS0+a2V5czsKKwkJICAgIGZvciAoaiA9IDA7IGogPCBuYktleXM7IGorKykgeworCQkJY2tleSA9ICgqa2V5U2VxKVtqXTsKKwkJCWJrZXkgPSBia2V5U2VxW2pdOworCQkJcmVzID0geG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwoY2tleS0+dmFsLCBia2V5LT52YWwpOworCQkJaWYgKHJlcyA9PSAtMSkgeworCQkJICAgIHJldHVybiAoLTEpOworCQkJfSBlbHNlIGlmIChyZXMgPT0gMCkgeworCQkJICAgIC8qCisJCQkgICAgKiBPbmUgb2YgdGhlIGtleXMgZGlmZmVycywgc28gdGhlIGtleS1zZXF1ZW5jZQorCQkJICAgICogd29uJ3QgYmUgZXF1YWw7IGdldCBvdXQuCisJCQkgICAgKi8KKwkJCSAgICBicmVhazsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGlmIChyZXMgPT0gMSkgeworCQkJLyoKKwkJCSogRHVwbGljYXRlIGtleS1zZXF1ZW5jZSBmb3VuZC4KKwkJCSovCisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGkrKzsKKwkJfSB3aGlsZSAoaSA8IHRhcmdldHMtPm5iSXRlbXMpOworCQlpZiAoaSAhPSB0YXJnZXRzLT5uYkl0ZW1zKSB7CisJCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMLCAqc3RyQiA9IE5VTEw7CisJCSAgICAvKgorCQkgICAgKiBUT0RPOiBUcnkgdG8gcmVwb3J0IHRoZSBrZXktc2VxdWVuY2UuCisJCSAgICAqLworCQkgICAgeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgdmN0eHQsCisJCQlYTUxfU0NIRU1BVl9DVkNfSURDLCBOVUxMLAorCQkJV1hTX0JBU0lDX0NBU1QgaWRjLAorCQkJIkR1cGxpY2F0ZSBrZXktc2VxdWVuY2UgJXMgaW4gJXMiLAorCQkJeG1sU2NoZW1hRm9ybWF0SURDS2V5U2VxdWVuY2UodmN0eHQsICZzdHIsCisJCQkgICAgKCprZXlTZXEpLCBuYktleXMpLAorCQkJeG1sU2NoZW1hR2V0SURDRGVzaWduYXRpb24oJnN0ckIsIGlkYykpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHJCKTsKKwkJICAgIGdvdG8gc2VsZWN0b3JfbGVhdmU7CisJCX0KKwkgICAgfQorCSAgICAvKgorCSAgICAqIEFkZCBhIG5vZGUtdGFibGUgaXRlbSB0byB0aGUgSURDIGJpbmRpbmcuCisJICAgICovCisJICAgIG50SXRlbSA9ICh4bWxTY2hlbWFQU1ZJSURDTm9kZVB0cikgeG1sTWFsbG9jKAorCQlzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGUpKTsKKwkgICAgaWYgKG50SXRlbSA9PSBOVUxMKSB7CisJCXhtbFNjaGVtYVZFcnJNZW1vcnkoTlVMTCwKKwkJICAgICJhbGxvY2F0aW5nIGFuIElEQyBub2RlLXRhYmxlIGl0ZW0iLCBOVUxMKTsKKwkJeG1sRnJlZSgqa2V5U2VxKTsKKwkJKmtleVNlcSA9IE5VTEw7CisJCXJldHVybigtMSk7CisJICAgIH0KKwkgICAgbWVtc2V0KG50SXRlbSwgMCwgc2l6ZW9mKHhtbFNjaGVtYVBTVklJRENOb2RlKSk7CisKKwkgICAgLyoKKwkgICAgKiBTdG9yZSB0aGUgbm9kZS10YWJsZSBpdGVtIGluIGEgZ2xvYmFsIGxpc3QuCisJICAgICovCisJICAgIGlmIChpZGMtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpIHsKKwkJaWYgKHhtbFNjaGVtYUlEQ1N0b3JlTm9kZVRhYmxlSXRlbSh2Y3R4dCwgbnRJdGVtKSA9PSAtMSkgeworCQkgICAgeG1sRnJlZShudEl0ZW0pOworCQkgICAgeG1sRnJlZSgqa2V5U2VxKTsKKwkJICAgICprZXlTZXEgPSBOVUxMOworCQkgICAgcmV0dXJuICgtMSk7CisJCX0KKwkJbnRJdGVtLT5ub2RlUU5hbWVJRCA9IC0xOworCSAgICB9IGVsc2UgeworCQkvKgorCQkqIFNhdmUgYSBjYWNoZWQgUU5hbWUgZm9yIHRoaXMgbm9kZSBvbiB0aGUgSURDIG5vZGUsIHRvIGJlCisJCSogYWJsZSB0byByZXBvcnQgaXQsIGV2ZW4gaWYgdGhlIG5vZGUgaXMgbm90IHNhdmVkLgorCQkqLworCQludEl0ZW0tPm5vZGVRTmFtZUlEID0geG1sU2NoZW1hVkFkZE5vZGVRTmFtZSh2Y3R4dCwKKwkJICAgIHZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLCB2Y3R4dC0+aW5vZGUtPm5zTmFtZSk7CisJCWlmIChudEl0ZW0tPm5vZGVRTmFtZUlEID09IC0xKSB7CisJCSAgICB4bWxGcmVlKG50SXRlbSk7CisJCSAgICB4bWxGcmVlKCprZXlTZXEpOworCQkgICAgKmtleVNlcSA9IE5VTEw7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCSAgICB9CisJICAgIC8qCisJICAgICogSW5pdCB0aGUgbm9kZS10YWJsZSBpdGVtOiBTYXZlIHRoZSBub2RlLCBwb3NpdGlvbiBhbmQKKwkgICAgKiBjb25zdW1lIHRoZSBrZXktc2VxdWVuY2UuCisJICAgICovCisJICAgIG50SXRlbS0+bm9kZSA9IHZjdHh0LT5ub2RlOworCSAgICBudEl0ZW0tPm5vZGVMaW5lID0gdmN0eHQtPmlub2RlLT5ub2RlTGluZTsKKwkgICAgbnRJdGVtLT5rZXlzID0gKmtleVNlcTsKKwkgICAgKmtleVNlcSA9IE5VTEw7CisjaWYgMAorCSAgICBpZiAoeG1sU2NoZW1hSURDQXBwZW5kTm9kZVRhYmxlSXRlbShiaW5kLCBudEl0ZW0pID09IC0xKQorI2VuZGlmCisJICAgIGlmICh4bWxTY2hlbWFJdGVtTGlzdEFkZCh0YXJnZXRzLCBudEl0ZW0pID09IC0xKSB7CisJCWlmIChpZGMtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpIHsKKwkJICAgIC8qCisJCSAgICAqIEZyZWUgdGhlIGl0ZW0sIHNpbmNlIGtleXJlZiBpdGVtcyB3b24ndCBiZQorCQkgICAgKiBwdXQgb24gYSBnbG9iYWwgbGlzdC4KKwkJICAgICovCisJCSAgICB4bWxGcmVlKG50SXRlbS0+a2V5cyk7CisJCSAgICB4bWxGcmVlKG50SXRlbSk7CisJCX0KKwkJcmV0dXJuICgtMSk7CisJICAgIH0KKworCSAgICBnb3RvIHNlbGVjdG9yX2xlYXZlOworc2VsZWN0b3Jfa2V5X2Vycm9yOgorCSAgICB7CisJCXhtbENoYXIgKnN0ciA9IE5VTEw7CisJCS8qCisJCSogNC4yLjEgKEtFWSkgVGhlIO+/vXRhcmdldCBub2RlIHNldO+/vSBhbmQgdGhlCisJCSog77+9cXVhbGlmaWVkIG5vZGUgc2V077+9IGFyZSBlcXVhbCwgdGhhdCBpcywgZXZlcnkKKwkJKiBtZW1iZXIgb2YgdGhlIO+/vXRhcmdldCBub2RlIHNldO+/vSBpcyBhbHNvIGEgbWVtYmVyCisJCSogb2YgdGhlIO+/vXF1YWxpZmllZCBub2RlIHNldO+/vSBhbmQgdmljZSB2ZXJzYS4KKwkJKi8KKwkJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgdmN0eHQsCisJCSAgICBYTUxfU0NIRU1BVl9DVkNfSURDLCBOVUxMLAorCQkgICAgV1hTX0JBU0lDX0NBU1QgaWRjLAorCQkgICAgIk5vdCBhbGwgZmllbGRzIG9mICVzIGV2YWx1YXRlIHRvIGEgbm9kZSIsCisJCSAgICB4bWxTY2hlbWFHZXRJRENEZXNpZ25hdGlvbigmc3RyLCBpZGMpLCBOVUxMKTsKKwkJRlJFRV9BTkRfTlVMTChzdHIpOworCSAgICB9CitzZWxlY3Rvcl9sZWF2ZToKKwkgICAgLyoKKwkgICAgKiBGcmVlIHRoZSBrZXktc2VxdWVuY2UgaWYgbm90IGFkZGVkIHRvIHRoZSBJREMgdGFibGUuCisJICAgICovCisJICAgIGlmICgoa2V5U2VxICE9IE5VTEwpICYmICgqa2V5U2VxICE9IE5VTEwpKSB7CisJCXhtbEZyZWUoKmtleVNlcSk7CisJCSprZXlTZXEgPSBOVUxMOworCSAgICB9CisJfSAvKiBpZiBzZWxlY3RvciAqLworCisJc3RvLT5uYkhpc3RvcnktLTsKKworZGVyZWdpc3Rlcl9jaGVjazoKKwkvKgorCSogRGVyZWdpc3RlciBzdGF0ZSBvYmplY3RzIGlmIHRoZXkgcmVhY2ggdGhlIGRlcHRoIG9mIGNyZWF0aW9uLgorCSovCisJaWYgKChzdG8tPm5iSGlzdG9yeSA9PSAwKSAmJiAoc3RvLT5kZXB0aCA9PSBkZXB0aCkpIHsKKyNpZmRlZiBERUJVR19JREMKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJJREM6ICAgU1RPIHBvcCAnJXMnXG4iLAorCQlzdG8tPnNlbC0+eHBhdGgpOworI2VuZGlmCisJICAgIGlmICh2Y3R4dC0+eHBhdGhTdGF0ZXMgIT0gc3RvKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVhQYXRoUHJvY2Vzc0hpc3RvcnkiLAorCQkgICAgIlRoZSBzdGF0ZSBvYmplY3QgdG8gYmUgcmVtb3ZlZCBpcyBub3QgdGhlIGZpcnN0ICIKKwkJICAgICJpbiB0aGUgbGlzdCIpOworCSAgICB9CisJICAgIG5leHRzdG8gPSBzdG8tPm5leHQ7CisJICAgIC8qCisJICAgICogVW5saW5rIGZyb20gdGhlIGxpc3Qgb2YgYWN0aXZlIFhQYXRoIHN0YXRlIG9iamVjdHMuCisJICAgICovCisJICAgIHZjdHh0LT54cGF0aFN0YXRlcyA9IHN0by0+bmV4dDsKKwkgICAgc3RvLT5uZXh0ID0gdmN0eHQtPnhwYXRoU3RhdGVQb29sOworCSAgICAvKgorCSAgICAqIExpbmsgaXQgdG8gdGhlIHBvb2wgb2YgcmV1c2FibGUgc3RhdGUgb2JqZWN0cy4KKwkgICAgKi8KKwkgICAgdmN0eHQtPnhwYXRoU3RhdGVQb29sID0gc3RvOworCSAgICBzdG8gPSBuZXh0c3RvOworCX0gZWxzZQorCSAgICBzdG8gPSBzdG8tPm5leHQ7CisgICAgfSAvKiB3aGlsZSAoc3RvICE9IE5VTEwpICovCisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFJRENSZWdpc3Rlck1hdGNoZXJzOgorICogQHZjdHh0OiB0aGUgV1hTIHZhbGlkYXRpb24gY29udGV4dAorICogQGVsZW1EZWNsOiB0aGUgZWxlbWVudCBkZWNsYXJhdGlvbgorICoKKyAqIENyZWF0ZXMgaGVscGVyIG9iamVjdHMgdG8gZXZhbHVhdGUgSURDIHNlbGVjdG9ycy9maWVsZHMKKyAqIHN1Y2Nlc3NpdmVseS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgT0sgYW5kIC0xIG9uIGludGVybmFsIGVycm9ycy4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hSURDUmVnaXN0ZXJNYXRjaGVycyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCisJCQkgICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgZWxlbURlY2wpCit7CisgICAgeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyLCBsYXN0ID0gTlVMTDsKKyAgICB4bWxTY2hlbWFJRENQdHIgaWRjLCByZWZJZGM7CisgICAgeG1sU2NoZW1hSURDQXVnUHRyIGFpZGM7CisKKyAgICBpZGMgPSAoeG1sU2NoZW1hSURDUHRyKSBlbGVtRGVjbC0+aWRjczsKKyAgICBpZiAoaWRjID09IE5VTEwpCisJcmV0dXJuICgwKTsKKworI2lmZGVmIERFQlVHX0lEQworICAgIHsKKwl4bWxDaGFyICpzdHIgPSBOVUxMOworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCSAgICAiSURDOiBSRUdJU1RFUiBvbiAlcywgZGVwdGggJWRcbiIsCisJICAgIChjaGFyICopIHhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIHZjdHh0LT5pbm9kZS0+bnNOYW1lLAorCQl2Y3R4dC0+aW5vZGUtPmxvY2FsTmFtZSksIHZjdHh0LT5kZXB0aCk7CisJRlJFRV9BTkRfTlVMTChzdHIpCisgICAgfQorI2VuZGlmCisgICAgaWYgKHZjdHh0LT5pbm9kZS0+aWRjTWF0Y2hlcnMgIT0gTlVMTCkgeworCVZFUlJPUl9JTlQoInhtbFNjaGVtYUlEQ1JlZ2lzdGVyTWF0Y2hlcnMiLAorCSAgICAiVGhlIGNoYWluIG9mIElEQyBtYXRjaGVycyBpcyBleHBlY3RlZCB0byBiZSBlbXB0eSIpOworCXJldHVybiAoLTEpOworICAgIH0KKyAgICBkbyB7CisJaWYgKGlkYy0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfSURDX0tFWVJFRikgeworCSAgICAvKgorCSAgICAqIFNpbmNlIElEQ3MgYnViYmxlcyBhcmUgZXhwZW5zaXZlIHdlIG5lZWQgdG8ga25vdyB0aGUKKwkgICAgKiBkZXB0aCBhdCB3aGljaCB0aGUgYnViYmxlcyBzaG91bGQgc3RvcDsgdGhpcyB3aWxsIGJlCisJICAgICogdGhlIGRlcHRoIG9mIHRoZSB0b3AtbW9zdCBrZXlyZWYgSURDLiBJZiBubyBrZXlyZWYKKwkgICAgKiByZWZlcmVuY2VzIGEga2V5L3VuaXF1ZSBJREMsIHRoZSBrZXlyZWZEZXB0aCB3aWxsCisJICAgICogYmUgLTEsIGluZGljYXRpbmcgdGhhdCBubyBidWJibGVzIGFyZSBuZWVkZWQuCisJICAgICovCisJICAgIHJlZklkYyA9ICh4bWxTY2hlbWFJRENQdHIpIGlkYy0+cmVmLT5pdGVtOworCSAgICBpZiAocmVmSWRjICE9IE5VTEwpIHsKKwkJLyoKKwkJKiBSZW1lbWJlciB0aGF0IHdlIGhhdmUga2V5cmVmcyBvbiB0aGlzIG5vZGUuCisJCSovCisJCXZjdHh0LT5pbm9kZS0+aGFzS2V5cmVmcyA9IDE7CisJCS8qCisJCSogTG9va3VwIHRoZSByZWZlcmVuY2VkIGF1Z21lbnRlZCBJREMgaW5mby4KKwkJKi8KKwkJYWlkYyA9IHZjdHh0LT5haWRjczsKKwkJd2hpbGUgKGFpZGMgIT0gTlVMTCkgeworCQkgICAgaWYgKGFpZGMtPmRlZiA9PSByZWZJZGMpCisJCQlicmVhazsKKwkJICAgIGFpZGMgPSBhaWRjLT5uZXh0OworCQl9CisJCWlmIChhaWRjID09IE5VTEwpIHsKKwkJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYUlEQ1JlZ2lzdGVyTWF0Y2hlcnMiLAorCQkJIkNvdWxkIG5vdCBmaW5kIGFuIGF1Z21lbnRlZCBJREMgaXRlbSBmb3IgYW4gSURDICIKKwkJCSJkZWZpbml0aW9uIik7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCQlpZiAoKGFpZGMtPmtleXJlZkRlcHRoID09IC0xKSB8fAorCQkgICAgKHZjdHh0LT5kZXB0aCA8IGFpZGMtPmtleXJlZkRlcHRoKSkKKwkJICAgIGFpZGMtPmtleXJlZkRlcHRoID0gdmN0eHQtPmRlcHRoOworCSAgICB9CisJfQorCS8qCisJKiBMb29rdXAgdGhlIGF1Z21lbnRlZCBJREMgaXRlbSBmb3IgdGhlIElEQyBkZWZpbml0aW9uLgorCSovCisJYWlkYyA9IHZjdHh0LT5haWRjczsKKwl3aGlsZSAoYWlkYyAhPSBOVUxMKSB7CisJICAgIGlmIChhaWRjLT5kZWYgPT0gaWRjKQorCQlicmVhazsKKwkgICAgYWlkYyA9IGFpZGMtPm5leHQ7CisJfQorCWlmIChhaWRjID09IE5VTEwpIHsKKwkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hSURDUmVnaXN0ZXJNYXRjaGVycyIsCisJCSJDb3VsZCBub3QgZmluZCBhbiBhdWdtZW50ZWQgSURDIGl0ZW0gZm9yIGFuIElEQyBkZWZpbml0aW9uIik7CisJICAgIHJldHVybiAoLTEpOworCX0KKwkvKgorCSogQ3JlYXRlIGFuIElEQyBtYXRjaGVyIGZvciBldmVyeSBJREMgZGVmaW5pdGlvbi4KKwkqLworCWlmICh2Y3R4dC0+aWRjTWF0Y2hlckNhY2hlICE9IE5VTEwpIHsKKwkgICAgLyoKKwkgICAgKiBSZXVzZSBhIGNhY2hlZCBtYXRjaGVyLgorCSAgICAqLworCSAgICBtYXRjaGVyID0gdmN0eHQtPmlkY01hdGNoZXJDYWNoZTsKKwkgICAgdmN0eHQtPmlkY01hdGNoZXJDYWNoZSA9IG1hdGNoZXItPm5leHRDYWNoZWQ7CisJICAgIG1hdGNoZXItPm5leHRDYWNoZWQgPSBOVUxMOworCX0gZWxzZSB7CisJICAgIG1hdGNoZXIgPSAoeG1sU2NoZW1hSURDTWF0Y2hlclB0cikKKwkJeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFJRENNYXRjaGVyKSk7CisJICAgIGlmIChtYXRjaGVyID09IE5VTEwpIHsKKwkJeG1sU2NoZW1hVkVyck1lbW9yeSh2Y3R4dCwKKwkJICAgICJhbGxvY2F0aW5nIGFuIElEQyBtYXRjaGVyIiwgTlVMTCk7CisJCXJldHVybiAoLTEpOworCSAgICB9CisJICAgIG1lbXNldChtYXRjaGVyLCAwLCBzaXplb2YoeG1sU2NoZW1hSURDTWF0Y2hlcikpOworCX0KKwlpZiAobGFzdCA9PSBOVUxMKQorCSAgICB2Y3R4dC0+aW5vZGUtPmlkY01hdGNoZXJzID0gbWF0Y2hlcjsKKwllbHNlCisJICAgIGxhc3QtPm5leHQgPSBtYXRjaGVyOworCWxhc3QgPSBtYXRjaGVyOworCisJbWF0Y2hlci0+dHlwZSA9IElEQ19NQVRDSEVSOworCW1hdGNoZXItPmRlcHRoID0gdmN0eHQtPmRlcHRoOworCW1hdGNoZXItPmFpZGMgPSBhaWRjOworCW1hdGNoZXItPmlkY1R5cGUgPSBhaWRjLT5kZWYtPnR5cGU7CisjaWZkZWYgREVCVUdfSURDCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJJREM6ICAgcmVnaXN0ZXIgbWF0Y2hlclxuIik7CisjZW5kaWYKKwkvKgorCSogSW5pdCB0aGUgYXV0b21hdG9uIHN0YXRlIG9iamVjdC4KKwkqLworCWlmICh4bWxTY2hlbWFJRENBZGRTdGF0ZU9iamVjdCh2Y3R4dCwgbWF0Y2hlciwKKwkgICAgaWRjLT5zZWxlY3RvciwgWFBBVEhfU1RBVEVfT0JKX1RZUEVfSURDX1NFTEVDVE9SKSA9PSAtMSkKKwkgICAgcmV0dXJuICgtMSk7CisKKwlpZGMgPSBpZGMtPm5leHQ7CisgICAgfSB3aGlsZSAoaWRjICE9IE5VTEwpOworICAgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUlEQ0ZpbGxOb2RlVGFibGVzKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSAgIHhtbFNjaGVtYU5vZGVJbmZvUHRyIGllbGVtKQoreworICAgIHhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyIGJpbmQ7CisgICAgaW50IHJlcywgaSwgaiwgaywgbmJUYXJnZXRzLCBuYkZpZWxkcywgbmJEdXBscywgbmJOb2RlVGFibGU7CisgICAgeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciAqa2V5cywgKm50a2V5czsKKyAgICB4bWxTY2hlbWFQU1ZJSURDTm9kZVB0ciAqdGFyZ2V0cywgKmR1cGxzOworCisgICAgeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyID0gaWVsZW0tPmlkY01hdGNoZXJzOworICAgIC8qIHZjdHh0LT5jcmVhdGVJRENOb2RlVGFibGVzICovCisgICAgd2hpbGUgKG1hdGNoZXIgIT0gTlVMTCkgeworCS8qCisJKiBTa2lwIGtleXJlZiBJRENzIGFuZCBlbXB0eSBJREMgdGFyZ2V0LWxpc3RzLgorCSovCisJaWYgKChtYXRjaGVyLT5haWRjLT5kZWYtPnR5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpIHx8CisJICAgIFdYU19JTElTVF9JU19FTVBUWShtYXRjaGVyLT50YXJnZXRzKSkKKwl7CisJICAgIG1hdGNoZXIgPSBtYXRjaGVyLT5uZXh0OworCSAgICBjb250aW51ZTsKKwl9CisJLyoKKwkqIElmIHdlIF93YW50XyB0aGUgSURDIG5vZGUtdGFibGUgdG8gYmUgY3JlYXRlZCBpbiBhbnkgY2FzZQorCSogdGhlbiBkbyBzby4gT3RoZXJ3aXNlIGNyZWF0ZSB0aGVtIG9ubHkgaWYga2V5cmVmcyBuZWVkIHRoZW0uCisJKi8KKwlpZiAoKCEgdmN0eHQtPmNyZWF0ZUlEQ05vZGVUYWJsZXMpICYmCisJICAgICgobWF0Y2hlci0+YWlkYy0+a2V5cmVmRGVwdGggPT0gLTEpIHx8CisJICAgICAobWF0Y2hlci0+YWlkYy0+a2V5cmVmRGVwdGggPiB2Y3R4dC0+ZGVwdGgpKSkKKwl7CisJICAgIG1hdGNoZXIgPSBtYXRjaGVyLT5uZXh0OworCSAgICBjb250aW51ZTsKKwl9CisJLyoKKwkqIEdldC9jcmVhdGUgdGhlIElEQyBiaW5kaW5nIG9uIHRoaXMgZWxlbWVudCBmb3IgdGhlIElEQyBkZWZpbml0aW9uLgorCSovCisJYmluZCA9IHhtbFNjaGVtYUlEQ0FjcXVpcmVCaW5kaW5nKHZjdHh0LCBtYXRjaGVyKTsKKworCWlmICghIFdYU19JTElTVF9JU19FTVBUWShiaW5kLT5kdXBscykpIHsKKwkgICAgZHVwbHMgPSAoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgKikgYmluZC0+ZHVwbHMtPml0ZW1zOworCSAgICBuYkR1cGxzID0gYmluZC0+ZHVwbHMtPm5iSXRlbXM7CisJfSBlbHNlIHsKKwkgICAgZHVwbHMgPSBOVUxMOworCSAgICBuYkR1cGxzID0gMDsKKwl9CisJaWYgKGJpbmQtPm5vZGVUYWJsZSAhPSBOVUxMKSB7CisJICAgIG5iTm9kZVRhYmxlID0gYmluZC0+bmJOb2RlczsKKwl9IGVsc2UgeworCSAgICBuYk5vZGVUYWJsZSA9IDA7CisJfQorCisJaWYgKChuYk5vZGVUYWJsZSA9PSAwKSAmJiAobmJEdXBscyA9PSAwKSkgeworCSAgICAvKgorCSAgICAqIFRyYW5zZmVyIGFsbCBJREMgdGFyZ2V0LW5vZGVzIHRvIHRoZSBJREMgbm9kZS10YWJsZS4KKwkgICAgKi8KKwkgICAgYmluZC0+bm9kZVRhYmxlID0KKwkJKHhtbFNjaGVtYVBTVklJRENOb2RlUHRyICopIG1hdGNoZXItPnRhcmdldHMtPml0ZW1zOworCSAgICBiaW5kLT5zaXplTm9kZXMgPSBtYXRjaGVyLT50YXJnZXRzLT5zaXplSXRlbXM7CisJICAgIGJpbmQtPm5iTm9kZXMgPSBtYXRjaGVyLT50YXJnZXRzLT5uYkl0ZW1zOworCisJICAgIG1hdGNoZXItPnRhcmdldHMtPml0ZW1zID0gTlVMTDsKKwkgICAgbWF0Y2hlci0+dGFyZ2V0cy0+c2l6ZUl0ZW1zID0gMDsKKwkgICAgbWF0Y2hlci0+dGFyZ2V0cy0+bmJJdGVtcyA9IDA7CisJfSBlbHNlIHsKKwkgICAgLyoKKwkgICAgKiBDb21wYXJlIHRoZSBrZXktc2VxdWVuY2VzIGFuZCBhZGQgdG8gdGhlIElEQyBub2RlLXRhYmxlLgorCSAgICAqLworCSAgICBuYlRhcmdldHMgPSBtYXRjaGVyLT50YXJnZXRzLT5uYkl0ZW1zOworCSAgICB0YXJnZXRzID0gKHhtbFNjaGVtYVBTVklJRENOb2RlUHRyICopIG1hdGNoZXItPnRhcmdldHMtPml0ZW1zOworCSAgICBuYkZpZWxkcyA9IG1hdGNoZXItPmFpZGMtPmRlZi0+bmJGaWVsZHM7CisJICAgIGkgPSAwOworCSAgICBkbyB7CisJCWtleXMgPSB0YXJnZXRzW2ldLT5rZXlzOworCQlpZiAobmJEdXBscykgeworCQkgICAgLyoKKwkJICAgICogU2VhcmNoIGluIGFscmVhZHkgZm91bmQgZHVwbGljYXRlcyBmaXJzdC4KKwkJICAgICovCisJCSAgICBqID0gMDsKKwkJICAgIGRvIHsKKwkJCWlmIChuYkZpZWxkcyA9PSAxKSB7CisJCQkgICAgcmVzID0geG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwoa2V5c1swXS0+dmFsLAorCQkJCWR1cGxzW2pdLT5rZXlzWzBdLT52YWwpOworCQkJICAgIGlmIChyZXMgPT0gLTEpCisJCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJCSAgICBpZiAocmVzID09IDEpIHsKKwkJCQkvKgorCQkJCSogRXF1YWwga2V5LXNlcXVlbmNlLgorCQkJCSovCisJCQkJZ290byBuZXh0X3RhcmdldDsKKwkJCSAgICB9CisJCQl9IGVsc2UgeworCQkJICAgIHJlcyA9IDA7CisJCQkgICAgbnRrZXlzID0gZHVwbHNbal0tPmtleXM7CisJCQkgICAgZm9yIChrID0gMDsgayA8IG5iRmllbGRzOyBrKyspIHsKKwkJCQlyZXMgPSB4bWxTY2hlbWFBcmVWYWx1ZXNFcXVhbChrZXlzW2tdLT52YWwsCisJCQkJICAgIG50a2V5c1trXS0+dmFsKTsKKwkJCQlpZiAocmVzID09IC0xKQorCQkJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQkJCWlmIChyZXMgPT0gMCkgeworCQkJCSAgICAvKgorCQkJCSAgICAqIE9uZSBvZiB0aGUga2V5cyBkaWZmZXJzLgorCQkJCSAgICAqLworCQkJCSAgICBicmVhazsKKwkJCQl9CisJCQkgICAgfQorCQkJICAgIGlmIChyZXMgPT0gMSkgeworCQkJCS8qCisJCQkJKiBFcXVhbCBrZXktc2VxdWVuY2UgZm91bmQuCisJCQkJKi8KKwkJCQlnb3RvIG5leHRfdGFyZ2V0OworCQkJICAgIH0KKwkJCX0KKwkJCWorKzsKKwkJICAgIH0gd2hpbGUgKGogPCBuYkR1cGxzKTsKKwkJfQorCQlpZiAobmJOb2RlVGFibGUpIHsKKwkJICAgIGogPSAwOworCQkgICAgZG8geworCQkJaWYgKG5iRmllbGRzID09IDEpIHsKKwkJCSAgICByZXMgPSB4bWxTY2hlbWFBcmVWYWx1ZXNFcXVhbChrZXlzWzBdLT52YWwsCisJCQkJYmluZC0+bm9kZVRhYmxlW2pdLT5rZXlzWzBdLT52YWwpOworCQkJICAgIGlmIChyZXMgPT0gLTEpCisJCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJCSAgICBpZiAocmVzID09IDApIHsKKwkJCQkvKgorCQkJCSogVGhlIGtleS1zZXF1ZW5jZSBkaWZmZXJzLgorCQkJCSovCisJCQkJZ290byBuZXh0X25vZGVfdGFibGVfZW50cnk7CisJCQkgICAgfQorCQkJfSBlbHNlIHsKKwkJCSAgICByZXMgPSAwOworCQkJICAgIG50a2V5cyA9IGJpbmQtPm5vZGVUYWJsZVtqXS0+a2V5czsKKwkJCSAgICBmb3IgKGsgPSAwOyBrIDwgbmJGaWVsZHM7IGsrKykgeworCQkJCXJlcyA9IHhtbFNjaGVtYUFyZVZhbHVlc0VxdWFsKGtleXNba10tPnZhbCwKKwkJCQkgICAgbnRrZXlzW2tdLT52YWwpOworCQkJCWlmIChyZXMgPT0gLTEpCisJCQkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCQkJaWYgKHJlcyA9PSAwKSB7CisJCQkJICAgIC8qCisJCQkJICAgICogT25lIG9mIHRoZSBrZXlzIGRpZmZlcnMuCisJCQkJICAgICovCisJCQkJICAgIGdvdG8gbmV4dF9ub2RlX3RhYmxlX2VudHJ5OworCQkJCX0KKwkJCSAgICB9CisJCQl9CisJCQkvKgorCQkJKiBBZGQgdGhlIGR1cGxpY2F0ZSB0byB0aGUgbGlzdCBvZiBkdXBsaWNhdGVzLgorCQkJKi8KKwkJCWlmIChiaW5kLT5kdXBscyA9PSBOVUxMKSB7CisJCQkgICAgYmluZC0+ZHVwbHMgPSB4bWxTY2hlbWFJdGVtTGlzdENyZWF0ZSgpOworCQkJICAgIGlmIChiaW5kLT5kdXBscyA9PSBOVUxMKQorCQkJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCQl9CisJCQlpZiAoeG1sU2NoZW1hSXRlbUxpc3RBZGQoYmluZC0+ZHVwbHMsIGJpbmQtPm5vZGVUYWJsZVtqXSkgPT0gLTEpCisJCQkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJCS8qCisJCQkqIFJlbW92ZSB0aGUgZHVwbGljYXRlIGVudHJ5IGZyb20gdGhlIElEQyBub2RlLXRhYmxlLgorCQkJKi8KKwkJCWJpbmQtPm5vZGVUYWJsZVtqXSA9IGJpbmQtPm5vZGVUYWJsZVtiaW5kLT5uYk5vZGVzIC0xXTsKKwkJCWJpbmQtPm5iTm9kZXMtLTsKKworCQkJZ290byBuZXh0X3RhcmdldDsKKworbmV4dF9ub2RlX3RhYmxlX2VudHJ5OgorCQkJaisrOworCQkgICAgfSB3aGlsZSAoaiA8IG5iTm9kZVRhYmxlKTsKKwkJfQorCQkvKgorCQkqIElmIGV2ZXJ5dGhpbmcgaXMgZmluZSwgdGhlbiBhZGQgdGhlIElEQyB0YXJnZXQtbm9kZSB0bworCQkqIHRoZSBJREMgbm9kZS10YWJsZS4KKwkJKi8KKwkJaWYgKHhtbFNjaGVtYUlEQ0FwcGVuZE5vZGVUYWJsZUl0ZW0oYmluZCwgdGFyZ2V0c1tpXSkgPT0gLTEpCisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCituZXh0X3RhcmdldDoKKwkJaSsrOworCSAgICB9IHdoaWxlIChpIDwgbmJUYXJnZXRzKTsKKwl9CisJbWF0Y2hlciA9IG1hdGNoZXItPm5leHQ7CisgICAgfQorICAgIHJldHVybigwKTsKKworaW50ZXJuYWxfZXJyb3I6CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFCdWJibGVJRENOb2RlVGFibGVzOgorICogQGRlcHRoOiB0aGUgY3VycmVudCB0cmVlIGRlcHRoCisgKgorICogTWVyZ2VzIElEQyBiaW5kaW5ncyBvZiBhbiBlbGVtZW50IGF0IEBkZXB0aCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIElEQworICogYmluZGluZ3Mgb2YgaXRzIHBhcmVudCBlbGVtZW50LiBJZiBhIGR1cGxpY2F0ZSBub3RlLXRhYmxlIGVudHJ5IGlzIGZvdW5kLAorICogYm90aCwgdGhlIHBhcmVudCBub2RlLXRhYmxlIGVudHJ5IGFuZCBjaGlsZCBlbnRyeSBhcmUgZGlzY2FyZGVkIGZyb20gdGhlCisgKiBub2RlLXRhYmxlIG9mIHRoZSBwYXJlbnQuCisgKgorICogUmV0dXJucyAwIGlmIE9LIGFuZCAtMSBvbiBpbnRlcm5hbCBlcnJvcnMuCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUJ1YmJsZUlEQ05vZGVUYWJsZXMoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0KQoreworICAgIHhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyIGJpbmQ7IC8qIElEQyBiaW5kaW5ncyBvZiB0aGUgY3VycmVudCBub2RlLiAqLworICAgIHhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyICpwYXJUYWJsZSwgcGFyQmluZCA9IE5VTEw7IC8qIHBhcmVudCBJREMgYmluZGluZ3MuICovCisgICAgeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgbm9kZSwgcGFyTm9kZSA9IE5VTEwsICpkdXBscywgKnBhck5vZGVzOyAvKiBub2RlLXRhYmxlIGVudHJpZXMuICovCisgICAgeG1sU2NoZW1hSURDQXVnUHRyIGFpZGM7CisgICAgaW50IGksIGosIGssIHJldCA9IDAsIG5iRmllbGRzLCBvbGROdW0sIG9sZER1cGxzOworCisgICAgYmluZCA9IHZjdHh0LT5pbm9kZS0+aWRjVGFibGU7CisgICAgaWYgKGJpbmQgPT0gTlVMTCkgeworCS8qIEZpbmUsIG5vIHRhYmxlLCBubyBidWJibGVzLiAqLworCXJldHVybiAoMCk7CisgICAgfQorCisgICAgcGFyVGFibGUgPSAmKHZjdHh0LT5lbGVtSW5mb3NbdmN0eHQtPmRlcHRoIC0xXS0+aWRjVGFibGUpOworICAgIC8qCisgICAgKiBXYWxrIGFsbCBiaW5kaW5nczsgY3JlYXRlIG5ldyBvciBhZGQgdG8gZXhpc3RpbmcgYmluZGluZ3MuCisgICAgKiBSZW1vdmUgZHVwbGljYXRlIGtleS1zZXF1ZW5jZXMuCisgICAgKi8KKyAgICB3aGlsZSAoYmluZCAhPSBOVUxMKSB7CisKKwlpZiAoKGJpbmQtPm5iTm9kZXMgPT0gMCkgJiYgV1hTX0lMSVNUX0lTX0VNUFRZKGJpbmQtPmR1cGxzKSkKKwkgICAgZ290byBuZXh0X2JpbmRpbmc7CisJLyoKKwkqIENoZWNrIGlmIHRoZSBrZXkvdW5pcXVlIElEQyB0YWJsZSBuZWVkcyB0byBiZSBidWJibGVkLgorCSovCisJaWYgKCEgdmN0eHQtPmNyZWF0ZUlEQ05vZGVUYWJsZXMpIHsKKwkgICAgYWlkYyA9IHZjdHh0LT5haWRjczsKKwkgICAgZG8geworCQlpZiAoYWlkYy0+ZGVmID09IGJpbmQtPmRlZmluaXRpb24pIHsKKwkJICAgIGlmICgoYWlkYy0+a2V5cmVmRGVwdGggPT0gLTEpIHx8CisJCQkoYWlkYy0+a2V5cmVmRGVwdGggPj0gdmN0eHQtPmRlcHRoKSkgeworCQkJZ290byBuZXh0X2JpbmRpbmc7CisJCSAgICB9CisJCSAgICBicmVhazsKKwkJfQorCQlhaWRjID0gYWlkYy0+bmV4dDsKKwkgICAgfSB3aGlsZSAoYWlkYyAhPSBOVUxMKTsKKwl9CisKKwlpZiAocGFyVGFibGUgIT0gTlVMTCkKKwkgICAgcGFyQmluZCA9ICpwYXJUYWJsZTsKKwkvKgorCSogU2VhcmNoIGEgbWF0Y2hpbmcgcGFyZW50IGJpbmRpbmcgZm9yIHRoZQorCSogSURDIGRlZmluaXRpb24uCisJKi8KKwl3aGlsZSAocGFyQmluZCAhPSBOVUxMKSB7CisJICAgIGlmIChwYXJCaW5kLT5kZWZpbml0aW9uID09IGJpbmQtPmRlZmluaXRpb24pCisJCWJyZWFrOworCSAgICBwYXJCaW5kID0gcGFyQmluZC0+bmV4dDsKKwl9CisKKwlpZiAocGFyQmluZCAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICogQ29tcGFyZSBldmVyeSBub2RlLXRhYmxlIGVudHJ5IG9mIHRoZSBjaGlsZCBub2RlLAorCSAgICAqIGkuZS4gdGhlIGtleS1zZXF1ZW5jZSB3aXRoaW4sIC4uLgorCSAgICAqLworCSAgICBvbGROdW0gPSBwYXJCaW5kLT5uYk5vZGVzOyAvKiBTa2lwIG5ld2x5IGFkZGVkIGl0ZW1zLiAqLworCisJICAgIGlmICghIFdYU19JTElTVF9JU19FTVBUWShwYXJCaW5kLT5kdXBscykpIHsKKwkJb2xkRHVwbHMgPSBwYXJCaW5kLT5kdXBscy0+bmJJdGVtczsKKwkJZHVwbHMgPSAoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgKikgcGFyQmluZC0+ZHVwbHMtPml0ZW1zOworCSAgICB9IGVsc2UgeworCQlkdXBscyA9IE5VTEw7CisJCW9sZER1cGxzID0gMDsKKwkgICAgfQorCisJICAgIHBhck5vZGVzID0gcGFyQmluZC0+bm9kZVRhYmxlOworCSAgICBuYkZpZWxkcyA9IGJpbmQtPmRlZmluaXRpb24tPm5iRmllbGRzOworCisJICAgIGZvciAoaSA9IDA7IGkgPCBiaW5kLT5uYk5vZGVzOyBpKyspIHsKKwkJbm9kZSA9IGJpbmQtPm5vZGVUYWJsZVtpXTsKKwkJaWYgKG5vZGUgPT0gTlVMTCkKKwkJICAgIGNvbnRpbnVlOworCQkvKgorCQkqIC4uLndpdGggZXZlcnkga2V5LXNlcXVlbmNlIG9mIHRoZSBwYXJlbnQgbm9kZSwgYWxyZWFkeQorCQkqIGV2YWx1YXRlZCB0byBiZSBhIGR1cGxpY2F0ZSBrZXktc2VxdWVuY2UuCisJCSovCisJCWlmIChvbGREdXBscykgeworCQkgICAgaiA9IDA7CisJCSAgICB3aGlsZSAoaiA8IG9sZER1cGxzKSB7CisJCQlpZiAobmJGaWVsZHMgPT0gMSkgeworCQkJICAgIHJldCA9IHhtbFNjaGVtYUFyZVZhbHVlc0VxdWFsKAorCQkJCW5vZGUtPmtleXNbMF0tPnZhbCwKKwkJCQlkdXBsc1tqXS0+a2V5c1swXS0+dmFsKTsKKwkJCSAgICBpZiAocmV0ID09IC0xKQorCQkJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCQkgICAgaWYgKHJldCA9PSAwKSB7CisJCQkJaisrOworCQkJCWNvbnRpbnVlOworCQkJICAgIH0KKwkJCX0gZWxzZSB7CisJCQkgICAgcGFyTm9kZSA9IGR1cGxzW2pdOworCQkJICAgIGZvciAoayA9IDA7IGsgPCBuYkZpZWxkczsgaysrKSB7CisJCQkJcmV0ID0geG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwoCisJCQkJICAgIG5vZGUtPmtleXNba10tPnZhbCwKKwkJCQkgICAgcGFyTm9kZS0+a2V5c1trXS0+dmFsKTsKKwkJCQlpZiAocmV0ID09IC0xKQorCQkJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQkJCWlmIChyZXQgPT0gMCkKKwkJCQkgICAgYnJlYWs7CisJCQkgICAgfQorCQkJfQorCQkJaWYgKHJldCA9PSAxKQorCQkJICAgIC8qIER1cGxpY2F0ZSBmb3VuZC4gKi8KKwkJCSAgICBicmVhazsKKwkJCWorKzsKKwkJICAgIH0KKwkJICAgIGlmIChqICE9IG9sZER1cGxzKSB7CisJCQkvKiBEdXBsaWNhdGUgZm91bmQuIFNraXAgdGhpcyBlbnRyeS4gKi8KKwkJCWNvbnRpbnVlOworCQkgICAgfQorCQl9CisJCS8qCisJCSogLi4uIGFuZCB3aXRoIGV2ZXJ5IGtleS1zZXF1ZW5jZSBvZiB0aGUgcGFyZW50IG5vZGUuCisJCSovCisJCWlmIChvbGROdW0pIHsKKwkJICAgIGogPSAwOworCQkgICAgd2hpbGUgKGogPCBvbGROdW0pIHsKKwkJCXBhck5vZGUgPSBwYXJOb2Rlc1tqXTsKKwkJCWlmIChuYkZpZWxkcyA9PSAxKSB7CisJCQkgICAgcmV0ID0geG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwoCisJCQkJbm9kZS0+a2V5c1swXS0+dmFsLAorCQkJCXBhck5vZGUtPmtleXNbMF0tPnZhbCk7CisJCQkgICAgaWYgKHJldCA9PSAtMSkKKwkJCQlnb3RvIGludGVybmFsX2Vycm9yOworCQkJICAgIGlmIChyZXQgPT0gMCkgeworCQkJCWorKzsKKwkJCQljb250aW51ZTsKKwkJCSAgICB9CisJCQl9IGVsc2UgeworCQkJICAgIGZvciAoayA9IDA7IGsgPCBuYkZpZWxkczsgaysrKSB7CisJCQkJcmV0ID0geG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwoCisJCQkJICAgIG5vZGUtPmtleXNba10tPnZhbCwKKwkJCQkgICAgcGFyTm9kZS0+a2V5c1trXS0+dmFsKTsKKwkJCQlpZiAocmV0ID09IC0xKQorCQkJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQkJCWlmIChyZXQgPT0gMCkKKwkJCQkgICAgYnJlYWs7CisJCQkgICAgfQorCQkJfQorCQkJaWYgKHJldCA9PSAxKQorCQkJICAgIC8qIER1cGxpY2F0ZSBmb3VuZC4gKi8KKwkJCSAgICBicmVhazsKKwkJCWorKzsKKwkJICAgIH0KKwkJICAgIGlmIChqICE9IG9sZE51bSkgeworCQkJLyoKKwkJCSogSGFuZGxlIGR1cGxpY2F0ZXMuIE1vdmUgdGhlIGR1cGxpY2F0ZSBpbgorCQkJKiB0aGUgcGFyZW50J3Mgbm9kZS10YWJsZSB0byB0aGUgbGlzdCBvZgorCQkJKiBkdXBsaWNhdGVzLgorCQkJKi8KKwkJCW9sZE51bS0tOworCQkJcGFyQmluZC0+bmJOb2Rlcy0tOworCQkJLyoKKwkJCSogTW92ZSBsYXN0IG9sZCBpdGVtIHRvIHBvcyBvZiBkdXBsaWNhdGUuCisJCQkqLworCQkJcGFyTm9kZXNbal0gPSBwYXJOb2Rlc1tvbGROdW1dOworCisJCQlpZiAocGFyQmluZC0+bmJOb2RlcyAhPSBvbGROdW0pIHsKKwkJCSAgICAvKgorCQkJICAgICogSWYgbmV3IGl0ZW1zIGV4aXN0LCBtb3ZlIGxhc3QgbmV3IGl0ZW0gdG8KKwkJCSAgICAqIGxhc3Qgb2Ygb2xkIGl0ZW1zLgorCQkJICAgICovCisJCQkgICAgcGFyTm9kZXNbb2xkTnVtXSA9CisJCQkJcGFyTm9kZXNbcGFyQmluZC0+bmJOb2Rlc107CisJCQl9CisJCQlpZiAocGFyQmluZC0+ZHVwbHMgPT0gTlVMTCkgeworCQkJICAgIHBhckJpbmQtPmR1cGxzID0geG1sU2NoZW1hSXRlbUxpc3RDcmVhdGUoKTsKKwkJCSAgICBpZiAocGFyQmluZC0+ZHVwbHMgPT0gTlVMTCkKKwkJCQlnb3RvIGludGVybmFsX2Vycm9yOworCQkJfQorCQkJeG1sU2NoZW1hSXRlbUxpc3RBZGQocGFyQmluZC0+ZHVwbHMsIHBhck5vZGUpOworCQkgICAgfSBlbHNlIHsKKwkJCS8qCisJCQkqIEFkZCB0aGUgbm9kZS10YWJsZSBlbnRyeSAobm9kZSBhbmQga2V5LXNlcXVlbmNlKSBvZgorCQkJKiB0aGUgY2hpbGQgbm9kZSB0byB0aGUgbm9kZSB0YWJsZSBvZiB0aGUgcGFyZW50IG5vZGUuCisJCQkqLworCQkJaWYgKHBhckJpbmQtPm5vZGVUYWJsZSA9PSBOVUxMKSB7CisJCQkgICAgcGFyQmluZC0+bm9kZVRhYmxlID0gKHhtbFNjaGVtYVBTVklJRENOb2RlUHRyICopCisJCQkJeG1sTWFsbG9jKDEwICogc2l6ZW9mKHhtbFNjaGVtYVBTVklJRENOb2RlUHRyKSk7CisJCQkgICAgaWYgKHBhckJpbmQtPm5vZGVUYWJsZSA9PSBOVUxMKSB7CisJCQkJeG1sU2NoZW1hVkVyck1lbW9yeShOVUxMLAorCQkJCSAgICAiYWxsb2NhdGluZyBJREMgbGlzdCBvZiBub2RlLXRhYmxlIGl0ZW1zIiwgTlVMTCk7CisJCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJCSAgICB9CisJCQkgICAgcGFyQmluZC0+c2l6ZU5vZGVzID0gMTsKKwkJCX0gZWxzZSBpZiAocGFyQmluZC0+bmJOb2RlcyA+PSBwYXJCaW5kLT5zaXplTm9kZXMpIHsKKwkJCSAgICBwYXJCaW5kLT5zaXplTm9kZXMgKj0gMjsKKwkJCSAgICBwYXJCaW5kLT5ub2RlVGFibGUgPSAoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgKikKKwkJCQl4bWxSZWFsbG9jKHBhckJpbmQtPm5vZGVUYWJsZSwgcGFyQmluZC0+c2l6ZU5vZGVzICoKKwkJCQlzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpKTsKKwkJCSAgICBpZiAocGFyQmluZC0+bm9kZVRhYmxlID09IE5VTEwpIHsKKwkJCQl4bWxTY2hlbWFWRXJyTWVtb3J5KE5VTEwsCisJCQkJICAgICJyZS1hbGxvY2F0aW5nIElEQyBsaXN0IG9mIG5vZGUtdGFibGUgaXRlbXMiLCBOVUxMKTsKKwkJCQlnb3RvIGludGVybmFsX2Vycm9yOworCQkJICAgIH0KKwkJCX0KKwkJCXBhck5vZGVzID0gcGFyQmluZC0+bm9kZVRhYmxlOworCQkJLyoKKwkJCSogQXBwZW5kIHRoZSBuZXcgbm9kZS10YWJsZSBlbnRyeSB0byB0aGUgJ25ldyBub2RlLXRhYmxlCisJCQkqIGVudHJpZXMnIHNlY3Rpb24uCisJCQkqLworCQkJcGFyTm9kZXNbcGFyQmluZC0+bmJOb2RlcysrXSA9IG5vZGU7CisJCSAgICB9CisKKwkJfQorCisJICAgIH0KKwl9IGVsc2UgeworCSAgICAvKgorCSAgICAqIE5vIGJpbmRpbmcgZm9yIHRoZSBJREMgd2FzIGZvdW5kOiBjcmVhdGUgYSBuZXcgb25lIGFuZAorCSAgICAqIGNvcHkgYWxsIG5vZGUtdGFibGVzLgorCSAgICAqLworCSAgICBwYXJCaW5kID0geG1sU2NoZW1hSURDTmV3QmluZGluZyhiaW5kLT5kZWZpbml0aW9uKTsKKwkgICAgaWYgKHBhckJpbmQgPT0gTlVMTCkKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKworCSAgICAvKgorCSAgICAqIFRPRE86IEhtbSwgaG93IHRvIG9wdGltaXplIHRoZSBpbml0aWFsIG51bWJlciBvZgorCSAgICAqIGFsbG9jYXRlZCBlbnRyaWVzPworCSAgICAqLworCSAgICBpZiAoYmluZC0+bmJOb2RlcyAhPSAwKSB7CisJCS8qCisJCSogQWRkIGFsbCBJREMgbm9kZS10YWJsZSBlbnRyaWVzLgorCQkqLworCQlpZiAoISB2Y3R4dC0+cHN2aUV4cG9zZUlEQ05vZGVUYWJsZXMpIHsKKwkJICAgIC8qCisJCSAgICAqIEp1c3QgbW92ZSB0aGUgZW50cmllcy4KKwkJICAgICogTk9URTogdGhpcyBpcyBxdWl0ZSBzYXZlIGhlcmUsIHNpbmNlCisJCSAgICAqIGFsbCB0aGUga2V5cmVmIGxvb2t1cHMgaGF2ZSBhbHJlYWR5IGJlZW4KKwkJICAgICogcGVyZm9ybWVkLgorCQkgICAgKi8KKwkJICAgIHBhckJpbmQtPm5vZGVUYWJsZSA9IGJpbmQtPm5vZGVUYWJsZTsKKwkJICAgIGJpbmQtPm5vZGVUYWJsZSA9IE5VTEw7CisJCSAgICBwYXJCaW5kLT5zaXplTm9kZXMgPSBiaW5kLT5zaXplTm9kZXM7CisJCSAgICBiaW5kLT5zaXplTm9kZXMgPSAwOworCQkgICAgcGFyQmluZC0+bmJOb2RlcyA9IGJpbmQtPm5iTm9kZXM7CisJCSAgICBiaW5kLT5uYk5vZGVzID0gMDsKKwkJfSBlbHNlIHsKKwkJICAgIC8qCisJCSAgICAqIENvcHkgdGhlIGVudHJpZXMuCisJCSAgICAqLworCQkgICAgcGFyQmluZC0+bm9kZVRhYmxlID0gKHhtbFNjaGVtYVBTVklJRENOb2RlUHRyICopCisJCQl4bWxNYWxsb2MoYmluZC0+bmJOb2RlcyAqCisJCQlzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpKTsKKwkJICAgIGlmIChwYXJCaW5kLT5ub2RlVGFibGUgPT0gTlVMTCkgeworCQkJeG1sU2NoZW1hVkVyck1lbW9yeShOVUxMLAorCQkJICAgICJhbGxvY2F0aW5nIGFuIGFycmF5IG9mIElEQyBub2RlLXRhYmxlICIKKwkJCSAgICAiaXRlbXMiLCBOVUxMKTsKKwkJCXhtbFNjaGVtYUlEQ0ZyZWVCaW5kaW5nKHBhckJpbmQpOworCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJICAgIH0KKwkJICAgIHBhckJpbmQtPnNpemVOb2RlcyA9IGJpbmQtPm5iTm9kZXM7CisJCSAgICBwYXJCaW5kLT5uYk5vZGVzID0gYmluZC0+bmJOb2RlczsKKwkJICAgIG1lbWNweShwYXJCaW5kLT5ub2RlVGFibGUsIGJpbmQtPm5vZGVUYWJsZSwKKwkJCWJpbmQtPm5iTm9kZXMgKiBzaXplb2YoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpKTsKKwkJfQorCSAgICB9CisJICAgIGlmIChiaW5kLT5kdXBscykgeworCQkvKgorCQkqIE1vdmUgdGhlIGR1cGxpY2F0ZXMuCisJCSovCisJCWlmIChwYXJCaW5kLT5kdXBscyAhPSBOVUxMKQorCQkgICAgeG1sU2NoZW1hSXRlbUxpc3RGcmVlKHBhckJpbmQtPmR1cGxzKTsKKwkJcGFyQmluZC0+ZHVwbHMgPSBiaW5kLT5kdXBsczsKKwkJYmluZC0+ZHVwbHMgPSBOVUxMOworCSAgICB9CisgICAgICAgICAgICBpZiAocGFyVGFibGUgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGlmICgqcGFyVGFibGUgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgKnBhclRhYmxlID0gcGFyQmluZDsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyQmluZC0+bmV4dCA9ICpwYXJUYWJsZTsKKyAgICAgICAgICAgICAgICAgICAgKnBhclRhYmxlID0gcGFyQmluZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisJfQorCituZXh0X2JpbmRpbmc6CisJYmluZCA9IGJpbmQtPm5leHQ7CisgICAgfQorICAgIHJldHVybiAoMCk7CisKK2ludGVybmFsX2Vycm9yOgorICAgIHJldHVybigtMSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2hlY2tDVkNJRENLZXlSZWY6CisgKiBAdmN0eHQ6IHRoZSBXWFMgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZWxlbURlY2w6IHRoZSBlbGVtZW50IGRlY2xhcmF0aW9uCisgKgorICogQ2hlY2sgdGhlIGN2Yy1pZGMta2V5cmVmIGNvbnN0cmFpbnRzLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDaGVja0NWQ0lEQ0tleVJlZih4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyOworICAgIHhtbFNjaGVtYVBTVklJRENCaW5kaW5nUHRyIGJpbmQ7CisKKyAgICBtYXRjaGVyID0gdmN0eHQtPmlub2RlLT5pZGNNYXRjaGVyczsKKyAgICAvKgorICAgICogRmluZCBhIGtleXJlZi4KKyAgICAqLworICAgIHdoaWxlIChtYXRjaGVyICE9IE5VTEwpIHsKKwlpZiAoKG1hdGNoZXItPmlkY1R5cGUgPT0gWE1MX1NDSEVNQV9UWVBFX0lEQ19LRVlSRUYpICYmCisJICAgIG1hdGNoZXItPnRhcmdldHMgJiYKKwkgICAgbWF0Y2hlci0+dGFyZ2V0cy0+bmJJdGVtcykKKwl7CisJICAgIGludCBpLCBqLCBrLCByZXMsIG5iRmllbGRzLCBoYXNEdXBsczsKKwkgICAgeG1sU2NoZW1hUFNWSUlEQ0tleVB0ciAqcmVmS2V5cywgKmtleXM7CisJICAgIHhtbFNjaGVtYVBTVklJRENOb2RlUHRyIHJlZk5vZGUgPSBOVUxMOworCisJICAgIG5iRmllbGRzID0gbWF0Y2hlci0+YWlkYy0+ZGVmLT5uYkZpZWxkczsKKworCSAgICAvKgorCSAgICAqIEZpbmQgdGhlIElEQyBub2RlLXRhYmxlIGZvciB0aGUgcmVmZXJlbmNlZCBJREMga2V5L3VuaXF1ZS4KKwkgICAgKi8KKwkgICAgYmluZCA9IHZjdHh0LT5pbm9kZS0+aWRjVGFibGU7CisJICAgIHdoaWxlIChiaW5kICE9IE5VTEwpIHsKKwkJaWYgKCh4bWxTY2hlbWFJRENQdHIpIG1hdGNoZXItPmFpZGMtPmRlZi0+cmVmLT5pdGVtID09CisJCSAgICBiaW5kLT5kZWZpbml0aW9uKQorCQkgICAgYnJlYWs7CisJCWJpbmQgPSBiaW5kLT5uZXh0OworCSAgICB9CisJICAgIGhhc0R1cGxzID0gKGJpbmQgJiYgYmluZC0+ZHVwbHMgJiYgYmluZC0+ZHVwbHMtPm5iSXRlbXMpID8gMSA6IDA7CisJICAgIC8qCisJICAgICogU2VhcmNoIGZvciBhIG1hdGNoaW5nIGtleS1zZXF1ZW5jZXMuCisJICAgICovCisJICAgIGZvciAoaSA9IDA7IGkgPCBtYXRjaGVyLT50YXJnZXRzLT5uYkl0ZW1zOyBpKyspIHsKKwkJcmVzID0gMDsKKwkJcmVmTm9kZSA9IG1hdGNoZXItPnRhcmdldHMtPml0ZW1zW2ldOworCQlpZiAoYmluZCAhPSBOVUxMKSB7CisJCSAgICByZWZLZXlzID0gcmVmTm9kZS0+a2V5czsKKwkJICAgIGZvciAoaiA9IDA7IGogPCBiaW5kLT5uYk5vZGVzOyBqKyspIHsKKwkJCWtleXMgPSBiaW5kLT5ub2RlVGFibGVbal0tPmtleXM7CisJCQlmb3IgKGsgPSAwOyBrIDwgbmJGaWVsZHM7IGsrKykgeworCQkJICAgIHJlcyA9IHhtbFNjaGVtYUFyZVZhbHVlc0VxdWFsKGtleXNba10tPnZhbCwKKwkJCQlyZWZLZXlzW2tdLT52YWwpOworCQkJICAgIGlmIChyZXMgPT0gMCkKKwkJCQlicmVhazsKKwkJCSAgICBlbHNlIGlmIChyZXMgPT0gLTEpIHsKKwkJCQlyZXR1cm4gKC0xKTsKKwkJCSAgICB9CisJCQl9CisJCQlpZiAocmVzID09IDEpIHsKKwkJCSAgICAvKgorCQkJICAgICogTWF0Y2ggZm91bmQuCisJCQkgICAgKi8KKwkJCSAgICBicmVhazsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGlmICgocmVzID09IDApICYmIGhhc0R1cGxzKSB7CisJCQkvKgorCQkJKiBTZWFyY2ggaW4gZHVwbGljYXRlcworCQkJKi8KKwkJCWZvciAoaiA9IDA7IGogPCBiaW5kLT5kdXBscy0+bmJJdGVtczsgaisrKSB7CisJCQkgICAga2V5cyA9ICgoeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIpCisJCQkJYmluZC0+ZHVwbHMtPml0ZW1zW2pdKS0+a2V5czsKKwkJCSAgICBmb3IgKGsgPSAwOyBrIDwgbmJGaWVsZHM7IGsrKykgeworCQkJCXJlcyA9IHhtbFNjaGVtYUFyZVZhbHVlc0VxdWFsKGtleXNba10tPnZhbCwKKwkJCQkgICAgcmVmS2V5c1trXS0+dmFsKTsKKwkJCQlpZiAocmVzID09IDApCisJCQkJICAgIGJyZWFrOworCQkJCWVsc2UgaWYgKHJlcyA9PSAtMSkgeworCQkJCSAgICByZXR1cm4gKC0xKTsKKwkJCQl9CisJCQkgICAgfQorCQkJICAgIGlmIChyZXMgPT0gMSkgeworCQkJCS8qCisJCQkJKiBNYXRjaCBpbiBkdXBsaWNhdGVzIGZvdW5kLgorCQkJCSovCisJCQkJeG1sQ2hhciAqc3RyID0gTlVMTCwgKnN0ckIgPSBOVUxMOworCQkJCXhtbFNjaGVtYUtleXJlZkVycih2Y3R4dCwKKwkJCQkgICAgWE1MX1NDSEVNQVZfQ1ZDX0lEQywgcmVmTm9kZSwKKwkJCQkgICAgKHhtbFNjaGVtYVR5cGVQdHIpIG1hdGNoZXItPmFpZGMtPmRlZiwKKwkJCQkgICAgIk1vcmUgdGhhbiBvbmUgbWF0Y2ggZm91bmQgZm9yICIKKwkJCQkgICAgImtleS1zZXF1ZW5jZSAlcyBvZiBrZXlyZWYgJyVzJyIsCisJCQkJICAgIHhtbFNjaGVtYUZvcm1hdElEQ0tleVNlcXVlbmNlKHZjdHh0LCAmc3RyLAorCQkJCQlyZWZOb2RlLT5rZXlzLCBuYkZpZWxkcyksCisJCQkJICAgIHhtbFNjaGVtYUdldENvbXBvbmVudFFOYW1lKCZzdHJCLAorCQkJCQltYXRjaGVyLT5haWRjLT5kZWYpKTsKKwkJCQlGUkVFX0FORF9OVUxMKHN0cik7CisJCQkJRlJFRV9BTkRfTlVMTChzdHJCKTsKKwkJCQlicmVhazsKKwkJCSAgICB9CisJCQl9CisJCSAgICB9CisJCX0KKworCQlpZiAocmVzID09IDApIHsKKwkJICAgIHhtbENoYXIgKnN0ciA9IE5VTEwsICpzdHJCID0gTlVMTDsKKwkJICAgIHhtbFNjaGVtYUtleXJlZkVycih2Y3R4dCwKKwkJCVhNTF9TQ0hFTUFWX0NWQ19JREMsIHJlZk5vZGUsCisJCQkoeG1sU2NoZW1hVHlwZVB0cikgbWF0Y2hlci0+YWlkYy0+ZGVmLAorCQkJIk5vIG1hdGNoIGZvdW5kIGZvciBrZXktc2VxdWVuY2UgJXMgb2Yga2V5cmVmICclcyciLAorCQkJeG1sU2NoZW1hRm9ybWF0SURDS2V5U2VxdWVuY2UodmN0eHQsICZzdHIsCisJCQkgICAgcmVmTm9kZS0+a2V5cywgbmJGaWVsZHMpLAorCQkJeG1sU2NoZW1hR2V0Q29tcG9uZW50UU5hbWUoJnN0ckIsIG1hdGNoZXItPmFpZGMtPmRlZikpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHIpOworCQkgICAgRlJFRV9BTkRfTlVMTChzdHJCKTsKKwkJfQorCSAgICB9CisJfQorCW1hdGNoZXIgPSBtYXRjaGVyLT5uZXh0OworICAgIH0KKyAgICAvKiBUT0RPOiBSZXR1cm4gYW4gZXJyb3IgaWYgYW55IGVycm9yIGVuY291bnRlcmVkLiAqLworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIAkJCQkJCQkJCSoKKyAqIAkJCVhNTCBSZWFkZXIgdmFsaWRhdGlvbiBjb2RlICAgICAgICAgICAgICAgICAgICAgICoKKyAqIAkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB4bWxTY2hlbWFBdHRySW5mb1B0cgoreG1sU2NoZW1hR2V0RnJlc2hBdHRySW5mbyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgeG1sU2NoZW1hQXR0ckluZm9QdHIgaWF0dHI7CisgICAgLyoKKyAgICAqIEdyb3cvY3JlYXRlIGxpc3Qgb2YgYXR0cmlidXRlIGluZm9zLgorICAgICovCisgICAgaWYgKHZjdHh0LT5hdHRySW5mb3MgPT0gTlVMTCkgeworCXZjdHh0LT5hdHRySW5mb3MgPSAoeG1sU2NoZW1hQXR0ckluZm9QdHIgKikKKwkgICAgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFBdHRySW5mb1B0cikpOworCXZjdHh0LT5zaXplQXR0ckluZm9zID0gMTsKKwlpZiAodmN0eHQtPmF0dHJJbmZvcyA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVZFcnJNZW1vcnkodmN0eHQsCisJCSJhbGxvY2F0aW5nIGF0dHJpYnV0ZSBpbmZvIGxpc3QiLCBOVUxMKTsKKwkgICAgcmV0dXJuIChOVUxMKTsKKwl9CisgICAgfSBlbHNlIGlmICh2Y3R4dC0+c2l6ZUF0dHJJbmZvcyA8PSB2Y3R4dC0+bmJBdHRySW5mb3MpIHsKKwl2Y3R4dC0+c2l6ZUF0dHJJbmZvcysrOworCXZjdHh0LT5hdHRySW5mb3MgPSAoeG1sU2NoZW1hQXR0ckluZm9QdHIgKikKKwkgICAgeG1sUmVhbGxvYyh2Y3R4dC0+YXR0ckluZm9zLAorCQl2Y3R4dC0+c2l6ZUF0dHJJbmZvcyAqIHNpemVvZih4bWxTY2hlbWFBdHRySW5mb1B0cikpOworCWlmICh2Y3R4dC0+YXR0ckluZm9zID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVkVyck1lbW9yeSh2Y3R4dCwKKwkJInJlLWFsbG9jYXRpbmcgYXR0cmlidXRlIGluZm8gbGlzdCIsIE5VTEwpOworCSAgICByZXR1cm4gKE5VTEwpOworCX0KKyAgICB9IGVsc2UgeworCWlhdHRyID0gdmN0eHQtPmF0dHJJbmZvc1t2Y3R4dC0+bmJBdHRySW5mb3MrK107CisJaWYgKGlhdHRyLT5sb2NhbE5hbWUgIT0gTlVMTCkgeworCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFHZXRGcmVzaEF0dHJJbmZvIiwKKwkJImF0dHIgaW5mbyBub3QgY2xlYXJlZCIpOworCSAgICByZXR1cm4gKE5VTEwpOworCX0KKwlpYXR0ci0+bm9kZVR5cGUgPSBYTUxfQVRUUklCVVRFX05PREU7CisJcmV0dXJuIChpYXR0cik7CisgICAgfQorICAgIC8qCisgICAgKiBDcmVhdGUgYW4gYXR0cmlidXRlIGluZm8uCisgICAgKi8KKyAgICBpYXR0ciA9ICh4bWxTY2hlbWFBdHRySW5mb1B0cikKKwl4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYUF0dHJJbmZvKSk7CisgICAgaWYgKGlhdHRyID09IE5VTEwpIHsKKwl4bWxTY2hlbWFWRXJyTWVtb3J5KHZjdHh0LCAiY3JlYXRpbmcgbmV3IGF0dHJpYnV0ZSBpbmZvIiwgTlVMTCk7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGlhdHRyLCAwLCBzaXplb2YoeG1sU2NoZW1hQXR0ckluZm8pKTsKKyAgICBpYXR0ci0+bm9kZVR5cGUgPSBYTUxfQVRUUklCVVRFX05PREU7CisgICAgdmN0eHQtPmF0dHJJbmZvc1t2Y3R4dC0+bmJBdHRySW5mb3MrK10gPSBpYXR0cjsKKworICAgIHJldHVybiAoaWF0dHIpOworfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWYWxpZGF0b3JQdXNoQXR0cmlidXRlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCXhtbE5vZGVQdHIgYXR0ck5vZGUsCisJCQlpbnQgbm9kZUxpbmUsCisJCQljb25zdCB4bWxDaGFyICpsb2NhbE5hbWUsCisJCQljb25zdCB4bWxDaGFyICpuc05hbWUsCisJCQlpbnQgb3duZWROYW1lcywKKwkJCXhtbENoYXIgKnZhbHVlLAorCQkJaW50IG93bmVkVmFsdWUpCit7CisgICAgeG1sU2NoZW1hQXR0ckluZm9QdHIgYXR0cjsKKworICAgIGF0dHIgPSB4bWxTY2hlbWFHZXRGcmVzaEF0dHJJbmZvKHZjdHh0KTsKKyAgICBpZiAoYXR0ciA9PSBOVUxMKSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hUHVzaEF0dHJpYnV0ZSIsCisJICAgICJjYWxsaW5nIHhtbFNjaGVtYUdldEZyZXNoQXR0ckluZm8oKSIpOworCXJldHVybiAoLTEpOworICAgIH0KKyAgICBhdHRyLT5ub2RlID0gYXR0ck5vZGU7CisgICAgYXR0ci0+bm9kZUxpbmUgPSBub2RlTGluZTsKKyAgICBhdHRyLT5zdGF0ZSA9IFhNTF9TQ0hFTUFTX0FUVFJfVU5LTk9XTjsKKyAgICBhdHRyLT5sb2NhbE5hbWUgPSBsb2NhbE5hbWU7CisgICAgYXR0ci0+bnNOYW1lID0gbnNOYW1lOworICAgIGlmIChvd25lZE5hbWVzKQorCWF0dHItPmZsYWdzIHw9IFhNTF9TQ0hFTUFfTk9ERV9JTkZPX0ZMQUdfT1dORURfTkFNRVM7CisgICAgLyoKKyAgICAqIEV2YWx1YXRlIGlmIGl0J3MgYW4gWFNJIGF0dHJpYnV0ZS4KKyAgICAqLworICAgIGlmIChuc05hbWUgIT0gTlVMTCkgeworCWlmICh4bWxTdHJFcXVhbChsb2NhbE5hbWUsIEJBRF9DQVNUICJuaWwiKSkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnNOYW1lLCB4bWxTY2hlbWFJbnN0YW5jZU5zKSkgeworCQlhdHRyLT5tZXRhVHlwZSA9IFhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX05JTDsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwobG9jYWxOYW1lLCBCQURfQ0FTVCAidHlwZSIpKSB7CisJICAgIGlmICh4bWxTdHJFcXVhbChhdHRyLT5uc05hbWUsIHhtbFNjaGVtYUluc3RhbmNlTnMpKSB7CisJCWF0dHItPm1ldGFUeXBlID0gWE1MX1NDSEVNQV9BVFRSX0lORk9fTUVUQV9YU0lfVFlQRTsKKwkgICAgfQorCX0gZWxzZSBpZiAoeG1sU3RyRXF1YWwobG9jYWxOYW1lLCBCQURfQ0FTVCAic2NoZW1hTG9jYXRpb24iKSkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnNOYW1lLCB4bWxTY2hlbWFJbnN0YW5jZU5zKSkgeworCQlhdHRyLT5tZXRhVHlwZSA9IFhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX1NDSEVNQV9MT0M7CisJICAgIH0KKwl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGxvY2FsTmFtZSwgQkFEX0NBU1QgIm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24iKSkgeworCSAgICBpZiAoeG1sU3RyRXF1YWwoYXR0ci0+bnNOYW1lLCB4bWxTY2hlbWFJbnN0YW5jZU5zKSkgeworCQlhdHRyLT5tZXRhVHlwZSA9IFhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX05PX05TX1NDSEVNQV9MT0M7CisJICAgIH0KKwl9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKGF0dHItPm5zTmFtZSwgeG1sTmFtZXNwYWNlTnMpKSB7CisJICAgIGF0dHItPm1ldGFUeXBlID0gWE1MX1NDSEVNQV9BVFRSX0lORk9fTUVUQV9YTUxOUzsKKwl9CisgICAgfQorICAgIGF0dHItPnZhbHVlID0gdmFsdWU7CisgICAgaWYgKG93bmVkVmFsdWUpCisJYXR0ci0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9OT0RFX0lORk9fRkxBR19PV05FRF9WQUxVRVM7CisgICAgaWYgKGF0dHItPm1ldGFUeXBlICE9IDApCisJYXR0ci0+c3RhdGUgPSBYTUxfU0NIRU1BU19BVFRSX01FVEE7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDbGVhckVsZW1JbmZvOgorICogQHZjdHh0OiB0aGUgV1hTIHZhbGlkYXRpb24gY29udGV4dAorICogQGllbGVtOiB0aGUgZWxlbWVudCBpbmZvcm1hdGlvbiBpdGVtCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFDbGVhckVsZW1JbmZvKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJICAgICAgIHhtbFNjaGVtYU5vZGVJbmZvUHRyIGllbGVtKQoreworICAgIGllbGVtLT5oYXNLZXlyZWZzID0gMDsKKyAgICBpZWxlbS0+YXBwbGllZFhQYXRoID0gMDsKKyAgICBpZiAoaWVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQV9OT0RFX0lORk9fRkxBR19PV05FRF9OQU1FUykgeworCUZSRUVfQU5EX05VTEwoaWVsZW0tPmxvY2FsTmFtZSk7CisJRlJFRV9BTkRfTlVMTChpZWxlbS0+bnNOYW1lKTsKKyAgICB9IGVsc2UgeworCWllbGVtLT5sb2NhbE5hbWUgPSBOVUxMOworCWllbGVtLT5uc05hbWUgPSBOVUxMOworICAgIH0KKyAgICBpZiAoaWVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQV9OT0RFX0lORk9fRkxBR19PV05FRF9WQUxVRVMpIHsKKwlGUkVFX0FORF9OVUxMKGllbGVtLT52YWx1ZSk7CisgICAgfSBlbHNlIHsKKwlpZWxlbS0+dmFsdWUgPSBOVUxMOworICAgIH0KKyAgICBpZiAoaWVsZW0tPnZhbCAhPSBOVUxMKSB7CisJLyoKKwkqIFBTVkkgVE9ETzogQmUgY2FyZWZ1bCBub3QgdG8gZnJlZSBpdCB3aGVuIHRoZSB2YWx1ZSBpcworCSogZXhwb3NlZCB2aWEgUFNWSS4KKwkqLworCXhtbFNjaGVtYUZyZWVWYWx1ZShpZWxlbS0+dmFsKTsKKwlpZWxlbS0+dmFsID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGllbGVtLT5pZGNNYXRjaGVycyAhPSBOVUxMKSB7CisJLyoKKwkqIFJFVklTSVQgT1BUSU1JWkUgVE9ETzogVXNlIGEgcG9vbCBvZiBJREMgbWF0Y2hlcnMuCisJKiAgIERvZXMgaXQgd29yaz8KKwkqLworCXhtbFNjaGVtYUlEQ1JlbGVhc2VNYXRjaGVyTGlzdCh2Y3R4dCwgaWVsZW0tPmlkY01hdGNoZXJzKTsKKyNpZiAwCisJeG1sU2NoZW1hSURDRnJlZU1hdGNoZXJMaXN0KGllbGVtLT5pZGNNYXRjaGVycyk7CisjZW5kaWYKKwlpZWxlbS0+aWRjTWF0Y2hlcnMgPSBOVUxMOworICAgIH0KKyAgICBpZiAoaWVsZW0tPmlkY1RhYmxlICE9IE5VTEwpIHsKKwkvKgorCSogT1BUSU1JWkUgVE9ETzogVXNlIGEgcG9vbCBvZiBJREMgdGFibGVzPz8uCisJKi8KKwl4bWxTY2hlbWFJRENGcmVlSURDVGFibGUoaWVsZW0tPmlkY1RhYmxlKTsKKwlpZWxlbS0+aWRjVGFibGUgPSBOVUxMOworICAgIH0KKyAgICBpZiAoaWVsZW0tPnJlZ2V4Q3R4dCAhPSBOVUxMKSB7CisJeG1sUmVnRnJlZUV4ZWNDdHh0KGllbGVtLT5yZWdleEN0eHQpOworCWllbGVtLT5yZWdleEN0eHQgPSBOVUxMOworICAgIH0KKyAgICBpZiAoaWVsZW0tPm5zQmluZGluZ3MgIT0gTlVMTCkgeworCXhtbEZyZWUoKHhtbENoYXIgKiopaWVsZW0tPm5zQmluZGluZ3MpOworCWllbGVtLT5uc0JpbmRpbmdzID0gTlVMTDsKKwlpZWxlbS0+bmJOc0JpbmRpbmdzID0gMDsKKwlpZWxlbS0+c2l6ZU5zQmluZGluZ3MgPSAwOworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFHZXRGcmVzaEVsZW1JbmZvOgorICogQHZjdHh0OiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIENyZWF0ZXMvcmV1c2VzIGFuZCBpbml0aWFsaXplcyB0aGUgZWxlbWVudCBpbmZvIGl0ZW0gZm9yCisgKiB0aGUgY3VycmVjdCB0cmVlIGRlcHRoLgorICoKKyAqIFJldHVybnMgdGhlIGVsZW1lbnQgaW5mbyBpdGVtIG9yIE5VTEwgb24gQVBJIG9yIGludGVybmFsIGVycm9ycy4KKyAqLworc3RhdGljIHhtbFNjaGVtYU5vZGVJbmZvUHRyCit4bWxTY2hlbWFHZXRGcmVzaEVsZW1JbmZvKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkKK3sKKyAgICB4bWxTY2hlbWFOb2RlSW5mb1B0ciBpbmZvID0gTlVMTDsKKworICAgIGlmICh2Y3R4dC0+ZGVwdGggPiB2Y3R4dC0+c2l6ZUVsZW1JbmZvcykgeworCVZFUlJPUl9JTlQoInhtbFNjaGVtYUdldEZyZXNoRWxlbUluZm8iLAorCSAgICAiaW5jb25zaXN0ZW50IGRlcHRoIGVuY291bnRlcmVkIik7CisJcmV0dXJuIChOVUxMKTsKKyAgICB9CisgICAgaWYgKHZjdHh0LT5lbGVtSW5mb3MgPT0gTlVMTCkgeworCXZjdHh0LT5lbGVtSW5mb3MgPSAoeG1sU2NoZW1hTm9kZUluZm9QdHIgKikKKwkgICAgeG1sTWFsbG9jKDEwICogc2l6ZW9mKHhtbFNjaGVtYU5vZGVJbmZvUHRyKSk7CisJaWYgKHZjdHh0LT5lbGVtSW5mb3MgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFWRXJyTWVtb3J5KHZjdHh0LAorCQkiYWxsb2NhdGluZyB0aGUgZWxlbWVudCBpbmZvIGFycmF5IiwgTlVMTCk7CisJICAgIHJldHVybiAoTlVMTCk7CisJfQorCW1lbXNldCh2Y3R4dC0+ZWxlbUluZm9zLCAwLCAxMCAqIHNpemVvZih4bWxTY2hlbWFOb2RlSW5mb1B0cikpOworCXZjdHh0LT5zaXplRWxlbUluZm9zID0gMTA7CisgICAgfSBlbHNlIGlmICh2Y3R4dC0+c2l6ZUVsZW1JbmZvcyA8PSB2Y3R4dC0+ZGVwdGgpIHsKKwlpbnQgaSA9IHZjdHh0LT5zaXplRWxlbUluZm9zOworCisJdmN0eHQtPnNpemVFbGVtSW5mb3MgKj0gMjsKKwl2Y3R4dC0+ZWxlbUluZm9zID0gKHhtbFNjaGVtYU5vZGVJbmZvUHRyICopCisJICAgIHhtbFJlYWxsb2ModmN0eHQtPmVsZW1JbmZvcywgdmN0eHQtPnNpemVFbGVtSW5mb3MgKgorCSAgICBzaXplb2YoeG1sU2NoZW1hTm9kZUluZm9QdHIpKTsKKwlpZiAodmN0eHQtPmVsZW1JbmZvcyA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVZFcnJNZW1vcnkodmN0eHQsCisJCSJyZS1hbGxvY2F0aW5nIHRoZSBlbGVtZW50IGluZm8gYXJyYXkiLCBOVUxMKTsKKwkgICAgcmV0dXJuIChOVUxMKTsKKwl9CisJLyoKKwkqIFdlIG5lZWQgdGhlIG5ldyBtZW1vcnkgdG8gYmUgTlVMTGVkLgorCSogVE9ETzogVXNlIG1lbXNldCBpbnN0ZWFkPworCSovCisJZm9yICg7IGkgPCB2Y3R4dC0+c2l6ZUVsZW1JbmZvczsgaSsrKQorCSAgICB2Y3R4dC0+ZWxlbUluZm9zW2ldID0gTlVMTDsKKyAgICB9IGVsc2UKKwlpbmZvID0gdmN0eHQtPmVsZW1JbmZvc1t2Y3R4dC0+ZGVwdGhdOworCisgICAgaWYgKGluZm8gPT0gTlVMTCkgeworCWluZm8gPSAoeG1sU2NoZW1hTm9kZUluZm9QdHIpCisJICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hTm9kZUluZm8pKTsKKwlpZiAoaW5mbyA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVZFcnJNZW1vcnkodmN0eHQsCisJCSJhbGxvY2F0aW5nIGFuIGVsZW1lbnQgaW5mbyIsIE5VTEwpOworCSAgICByZXR1cm4gKE5VTEwpOworCX0KKwl2Y3R4dC0+ZWxlbUluZm9zW3ZjdHh0LT5kZXB0aF0gPSBpbmZvOworICAgIH0gZWxzZSB7CisJaWYgKGluZm8tPmxvY2FsTmFtZSAhPSBOVUxMKSB7CisJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYUdldEZyZXNoRWxlbUluZm8iLAorCQkiZWxlbSBpbmZvIGhhcyBub3QgYmVlbiBjbGVhcmVkIik7CisJICAgIHJldHVybiAoTlVMTCk7CisJfQorICAgIH0KKyAgICBtZW1zZXQoaW5mbywgMCwgc2l6ZW9mKHhtbFNjaGVtYU5vZGVJbmZvKSk7CisgICAgaW5mby0+bm9kZVR5cGUgPSBYTUxfRUxFTUVOVF9OT0RFOworICAgIGluZm8tPmRlcHRoID0gdmN0eHQtPmRlcHRoOworCisgICAgcmV0dXJuIChpbmZvKTsKK30KKworI2RlZmluZSBBQ1RJVkFURV9BVFRSSUJVVEUoaXRlbSkgdmN0eHQtPmlub2RlID0gKHhtbFNjaGVtYU5vZGVJbmZvUHRyKSBpdGVtOworI2RlZmluZSBBQ1RJVkFURV9FTEVNIHZjdHh0LT5pbm9kZSA9IHZjdHh0LT5lbGVtSW5mb3NbdmN0eHQtPmRlcHRoXTsKKyNkZWZpbmUgQUNUSVZBVEVfUEFSRU5UX0VMRU0gdmN0eHQtPmlub2RlID0gdmN0eHQtPmVsZW1JbmZvc1t2Y3R4dC0+ZGVwdGggLTFdOworCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0cyh4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCisJCQl4bWxOb2RlUHRyIG5vZGUsCisJCQl4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCisJCQl4bWxTY2hlbWFWYWxUeXBlIHZhbFR5cGUsCisJCQljb25zdCB4bWxDaGFyICogdmFsdWUsCisJCQl4bWxTY2hlbWFWYWxQdHIgdmFsLAorCQkJdW5zaWduZWQgbG9uZyBsZW5ndGgsCisJCQlpbnQgZmlyZUVycm9ycykKK3sKKyAgICBpbnQgcmV0LCBlcnJvciA9IDA7CisKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHRtcFR5cGU7CisgICAgeG1sU2NoZW1hRmFjZXRMaW5rUHRyIGZhY2V0TGluazsKKyAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldDsKKyAgICB1bnNpZ25lZCBsb25nIGxlbiA9IDA7CisgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB3czsKKworICAgIC8qCisgICAgKiBJbiBMaWJ4bWwyLCBkZXJpdmVkIGJ1aWx0LWluIHR5cGVzIGhhdmUgY3VycmVudGx5IG5vIGV4cGxpY2l0IGZhY2V0cy4KKyAgICAqLworICAgIGlmICh0eXBlLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykKKwlyZXR1cm4gKDApOworCisgICAgLyoKKyAgICAqIE5PVEU6IERvIG5vdCBqdW1wIGF3YXksIGlmIHRoZSBmYWNldFNldCBvZiB0aGUgZ2l2ZW4gdHlwZSBpcworICAgICogZW1wdHk6IHVudGlsIG5vdywgInBhdHRlcm4iIGFuZCAiZW51bWVyYXRpb24iIGZhY2V0cyBvZiB0aGUKKyAgICAqICpiYXNlIHR5cGVzKiBuZWVkIHRvIGJlIGNoZWNrZWQgYXMgd2VsbC4KKyAgICAqLworICAgIGlmICh0eXBlLT5mYWNldFNldCA9PSBOVUxMKQorCWdvdG8gcGF0dGVybl9hbmRfZW51bTsKKworICAgIGlmICghIFdYU19JU19BVE9NSUModHlwZSkpIHsKKwlpZiAoV1hTX0lTX0xJU1QodHlwZSkpCisJICAgIGdvdG8gV1hTX0lTX0xJU1Q7CisJZWxzZQorCSAgICBnb3RvIHBhdHRlcm5fYW5kX2VudW07CisgICAgfQorICAgIC8qCisgICAgKiBXaGl0ZXNwYWNlIGhhbmRsaW5nIGlzIG9ubHkgb2YgaW1wb3J0YW5jZSBmb3Igc3RyaW5nLWJhc2VkCisgICAgKiB0eXBlcy4KKyAgICAqLworICAgIHRtcFR5cGUgPSB4bWxTY2hlbWFHZXRQcmltaXRpdmVUeXBlKHR5cGUpOworICAgIGlmICgodG1wVHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfU1RSSU5HKSB8fAorCVdYU19JU19BTllfU0lNUExFX1RZUEUodG1wVHlwZSkpIHsKKwl3cyA9IHhtbFNjaGVtYUdldFdoaXRlU3BhY2VGYWNldFZhbHVlKHR5cGUpOworICAgIH0gZWxzZQorCXdzID0gWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFOworICAgIC8qCisgICAgKiBJZiB0aGUgdmFsdWUgd2FzIG5vdCBjb21wdXRlZCAoZm9yIHN0cmluZyBvcgorICAgICogYW55U2ltcGxlVHlwZSBiYXNlZCB0eXBlcyksIHRoZW4gdXNlIHRoZSBwcm92aWRlZAorICAgICogdHlwZS4KKyAgICAqLworICAgIGlmICh2YWwgPT0gTlVMTCkKKwl2YWxUeXBlID0gdmFsVHlwZTsKKyAgICBlbHNlCisJdmFsVHlwZSA9IHhtbFNjaGVtYUdldFZhbFR5cGUodmFsKTsKKworICAgIHJldCA9IDA7CisgICAgZm9yIChmYWNldExpbmsgPSB0eXBlLT5mYWNldFNldDsgZmFjZXRMaW5rICE9IE5VTEw7CisJZmFjZXRMaW5rID0gZmFjZXRMaW5rLT5uZXh0KSB7CisJLyoKKwkqIFNraXAgdGhlIHBhdHRlcm4gIndoaXRlU3BhY2UiOiBpdCBpcyB1c2VkIHRvCisJKiBmb3JtYXQgdGhlIGNoYXJhY3RlciBjb250ZW50IGJlZm9yZWhhbmQuCisJKi8KKwlzd2l0Y2ggKGZhY2V0TGluay0+ZmFjZXQtPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0U6CisJICAgIGNhc2UgWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT046CisJCWNvbnRpbnVlOworCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIOgorCQlyZXQgPSB4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0V2h0c3AoZmFjZXRMaW5rLT5mYWNldCwKKwkJICAgIHZhbFR5cGUsIHZhbHVlLCB2YWwsICZsZW4sIHdzKTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCXJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRXaHRzcChmYWNldExpbmstPmZhY2V0LCB3cywKKwkJICAgIHZhbFR5cGUsIHZhbHVlLCB2YWwsIHdzKTsKKwkJYnJlYWs7CisJfQorCWlmIChyZXQgPCAwKSB7CisJICAgIEFFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRlRmFjZXRzIiwKKwkJInZhbGlkYXRpbmcgYWdhaW5zdCBhIGF0b21pYyB0eXBlIGZhY2V0Iik7CisJICAgIHJldHVybiAoLTEpOworCX0gZWxzZSBpZiAocmV0ID4gMCkgeworCSAgICBpZiAoZmlyZUVycm9ycykKKwkJeG1sU2NoZW1hRmFjZXRFcnIoYWN0eHQsIHJldCwgbm9kZSwKKwkJdmFsdWUsIGxlbiwgdHlwZSwgZmFjZXRMaW5rLT5mYWNldCwgTlVMTCwgTlVMTCwgTlVMTCk7CisJICAgIGVsc2UKKwkJcmV0dXJuIChyZXQpOworCSAgICBpZiAoZXJyb3IgPT0gMCkKKwkJZXJyb3IgPSByZXQ7CisJfQorCXJldCA9IDA7CisgICAgfQorCitXWFNfSVNfTElTVDoKKyAgICBpZiAoISBXWFNfSVNfTElTVCh0eXBlKSkKKwlnb3RvIHBhdHRlcm5fYW5kX2VudW07CisgICAgLyoKKyAgICAqICJsZW5ndGgiLCAibWluTGVuZ3RoIiBhbmQgIm1heExlbmd0aCIgb2YgbGlzdCB0eXBlcy4KKyAgICAqLworICAgIHJldCA9IDA7CisgICAgZm9yIChmYWNldExpbmsgPSB0eXBlLT5mYWNldFNldDsgZmFjZXRMaW5rICE9IE5VTEw7CisJZmFjZXRMaW5rID0gZmFjZXRMaW5rLT5uZXh0KSB7CisKKwlzd2l0Y2ggKGZhY2V0TGluay0+ZmFjZXQtPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSDoKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSDoKKwkgICAgY2FzZSBYTUxfU0NIRU1BX0ZBQ0VUX01BWExFTkdUSDoKKwkJcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0KGZhY2V0TGluay0+ZmFjZXQsCisJCSAgICB2YWx1ZSwgbGVuZ3RoLCBOVUxMKTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWNvbnRpbnVlOworCX0KKwlpZiAocmV0IDwgMCkgeworCSAgICBBRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0cyIsCisJCSJ2YWxpZGF0aW5nIGFnYWluc3QgYSBsaXN0IHR5cGUgZmFjZXQiKTsKKwkgICAgcmV0dXJuICgtMSk7CisJfSBlbHNlIGlmIChyZXQgPiAwKSB7CisJICAgIGlmIChmaXJlRXJyb3JzKQorCQl4bWxTY2hlbWFGYWNldEVycihhY3R4dCwgcmV0LCBub2RlLAorCQl2YWx1ZSwgbGVuZ3RoLCB0eXBlLCBmYWNldExpbmstPmZhY2V0LCBOVUxMLCBOVUxMLCBOVUxMKTsKKwkgICAgZWxzZQorCQlyZXR1cm4gKHJldCk7CisJICAgIGlmIChlcnJvciA9PSAwKQorCQllcnJvciA9IHJldDsKKwl9CisJcmV0ID0gMDsKKyAgICB9CisKK3BhdHRlcm5fYW5kX2VudW06CisgICAgaWYgKGVycm9yID49IDApIHsKKwlpbnQgZm91bmQgPSAwOworCS8qCisJKiBQcm9jZXNzIGVudW1lcmF0aW9ucy4gRmFjZXQgdmFsdWVzIGFyZSBpbiB0aGUgdmFsdWUgc3BhY2UKKwkqIG9mIHRoZSBkZWZpbmluZyB0eXBlJ3MgYmFzZSB0eXBlLiBUaGlzIHNlZW1zIHRvIGJlIGEgYnVnIGluIHRoZQorCSogWE1MIFNjaGVtYSAxLjAgc3BlYy4gVXNlIHRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIGJhc2UgdHlwZS4KKwkqIE9ubHkgdGhlIGZpcnN0IHNldCBvZiBlbnVtZXJhdGlvbnMgaW4gdGhlIGFuY2VzdG9yLW9yLXNlbGYgYXhpcworCSogaXMgdXNlZCBmb3IgdmFsaWRhdGlvbi4KKwkqLworCXJldCA9IDA7CisJdG1wVHlwZSA9IHR5cGU7CisJZG8geworCSAgICBmb3IgKGZhY2V0ID0gdG1wVHlwZS0+ZmFjZXRzOyBmYWNldCAhPSBOVUxMOyBmYWNldCA9IGZhY2V0LT5uZXh0KSB7CisJCWlmIChmYWNldC0+dHlwZSAhPSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OKQorCQkgICAgY29udGludWU7CisJCWZvdW5kID0gMTsKKwkJcmV0ID0geG1sU2NoZW1hQXJlVmFsdWVzRXF1YWwoZmFjZXQtPnZhbCwgdmFsKTsKKwkJaWYgKHJldCA9PSAxKQorCQkgICAgYnJlYWs7CisJCWVsc2UgaWYgKHJldCA8IDApIHsKKwkJICAgIEFFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRlRmFjZXRzIiwKKwkJCSJ2YWxpZGF0aW5nIGFnYWluc3QgYW4gZW51bWVyYXRpb24gZmFjZXQiKTsKKwkJICAgIHJldHVybiAoLTEpOworCQl9CisJICAgIH0KKwkgICAgaWYgKHJldCAhPSAwKQorCQlicmVhazsKKwkgICAgLyoKKwkgICAgKiBCcmVhayBvbiB0aGUgZmlyc3Qgc2V0IG9mIGVudW1lcmF0aW9ucy4gQW55IGFkZGl0aW9uYWwKKwkgICAgKiAgZW51bWVyYXRpb25zIHdoaWNoIG1pZ2h0IGJlIGV4aXN0ZW50IG9uIHRoZSBhbmNlc3RvcnMKKwkgICAgKiAgb2YgdGhlIGN1cnJlbnQgdHlwZSBhcmUgcmVzdHJpY3RlZCBieSB0aGlzIHNldDsgdGh1cworCSAgICAqICAqbXVzdCogKm5vdCogYmUgdGFrZW4gaW50byBhY2NvdW50LgorCSAgICAqLworCSAgICBpZiAoZm91bmQpCisJCWJyZWFrOworCSAgICB0bXBUeXBlID0gdG1wVHlwZS0+YmFzZVR5cGU7CisJfSB3aGlsZSAoKHRtcFR5cGUgIT0gTlVMTCkgJiYKKwkgICAgKHRtcFR5cGUtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSk7CisJaWYgKGZvdW5kICYmIChyZXQgPT0gMCkpIHsKKwkgICAgcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX0VOVU1FUkFUSU9OX1ZBTElEOworCSAgICBpZiAoZmlyZUVycm9ycykgeworCQl4bWxTY2hlbWFGYWNldEVycihhY3R4dCwgcmV0LCBub2RlLAorCQkgICAgdmFsdWUsIDAsIHR5cGUsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworCSAgICB9IGVsc2UKKwkJcmV0dXJuIChyZXQpOworCSAgICBpZiAoZXJyb3IgPT0gMCkKKwkJZXJyb3IgPSByZXQ7CisJfQorICAgIH0KKworICAgIGlmIChlcnJvciA+PSAwKSB7CisJaW50IGZvdW5kOworCS8qCisJKiBQcm9jZXNzIHBhdHRlcnMuIFBhdHRlcm4gZmFjZXRzIGFyZSBPUmVkIGF0IHR5cGUgbGV2ZWwKKwkqIGFuZCBBTkRlZCBpZiBkZXJpdmVkLiBXYWxrIHRoZSBiYXNlIHR5cGUgYXhpcy4KKwkqLworCXRtcFR5cGUgPSB0eXBlOworCWZhY2V0ID0gTlVMTDsKKwlkbyB7CisJICAgIGZvdW5kID0gMDsKKwkgICAgZm9yIChmYWNldExpbmsgPSB0bXBUeXBlLT5mYWNldFNldDsgZmFjZXRMaW5rICE9IE5VTEw7CisJCWZhY2V0TGluayA9IGZhY2V0TGluay0+bmV4dCkgeworCQlpZiAoZmFjZXRMaW5rLT5mYWNldC0+dHlwZSAhPSBYTUxfU0NIRU1BX0ZBQ0VUX1BBVFRFUk4pCisJCSAgICBjb250aW51ZTsKKwkJZm91bmQgPSAxOworCQkvKgorCQkqIE5PVEUgdGhhdCBmb3IgcGF0dGVybnMsIEB2YWx1ZSBuZWVkcyB0byBiZSB0aGUKKwkJKiBub3JtYWxpemVkIHZhdWxlLgorCQkqLworCQlyZXQgPSB4bWxSZWdleHBFeGVjKGZhY2V0TGluay0+ZmFjZXQtPnJlZ2V4cCwgdmFsdWUpOworCQlpZiAocmV0ID09IDEpCisJCSAgICBicmVhazsKKwkJZWxzZSBpZiAocmV0IDwgMCkgeworCQkgICAgQUVSUk9SX0lOVCgieG1sU2NoZW1hVmFsaWRhdGVGYWNldHMiLAorCQkJInZhbGlkYXRpbmcgYWdhaW5zdCBhIHBhdHRlcm4gZmFjZXQiKTsKKwkJICAgIHJldHVybiAoLTEpOworCQl9IGVsc2UgeworCQkgICAgLyoKKwkJICAgICogU2F2ZSB0aGUgbGFzdCBub24tdmFsaWRhdGluZyBmYWNldC4KKwkJICAgICovCisJCSAgICBmYWNldCA9IGZhY2V0TGluay0+ZmFjZXQ7CisJCX0KKwkgICAgfQorCSAgICBpZiAoZm91bmQgJiYgKHJldCAhPSAxKSkgeworCQlyZXQgPSBYTUxfU0NIRU1BVl9DVkNfUEFUVEVSTl9WQUxJRDsKKwkJaWYgKGZpcmVFcnJvcnMpIHsKKwkJICAgIHhtbFNjaGVtYUZhY2V0RXJyKGFjdHh0LCByZXQsIG5vZGUsCisJCQl2YWx1ZSwgMCwgdHlwZSwgZmFjZXQsIE5VTEwsIE5VTEwsIE5VTEwpOworCQl9IGVsc2UKKwkJICAgIHJldHVybiAocmV0KTsKKwkJaWYgKGVycm9yID09IDApCisJCSAgICBlcnJvciA9IHJldDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgdG1wVHlwZSA9IHRtcFR5cGUtPmJhc2VUeXBlOworCX0gd2hpbGUgKCh0bXBUeXBlICE9IE5VTEwpICYmICh0bXBUeXBlLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykpOworICAgIH0KKworICAgIHJldHVybiAoZXJyb3IpOworfQorCitzdGF0aWMgeG1sQ2hhciAqCit4bWxTY2hlbWFOb3JtYWxpemVWYWx1ZSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUsCisJCQljb25zdCB4bWxDaGFyICp2YWx1ZSkKK3sKKyAgICBzd2l0Y2ggKHhtbFNjaGVtYUdldFdoaXRlU3BhY2VGYWNldFZhbHVlKHR5cGUpKSB7CisJY2FzZSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0U6CisJICAgIHJldHVybiAoeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcodmFsdWUpKTsKKwljYXNlIFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlKHZhbHVlKSk7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZhbGlkYXRlUU5hbWUoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0LAorCQkgICAgICAgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCSAgICAgICB4bWxTY2hlbWFWYWxQdHIgKnZhbCwKKwkJICAgICAgIGludCB2YWxOZWVkZWQpCit7CisgICAgaW50IHJldDsKKyAgICBjb25zdCB4bWxDaGFyICpuc05hbWU7CisgICAgeG1sQ2hhciAqbG9jYWwsICpwcmVmaXggPSBOVUxMOworCisgICAgcmV0ID0geG1sVmFsaWRhdGVRTmFtZSh2YWx1ZSwgMSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisJaWYgKHJldCA9PSAtMSkgeworCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZVFOYW1lIiwKKwkJImNhbGxpbmcgeG1sVmFsaWRhdGVRTmFtZSgpIik7CisJICAgIHJldHVybiAoLTEpOworCX0KKwlyZXR1cm4oIFhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSk7CisgICAgfQorICAgIC8qCisgICAgKiBOT1RFOiB4bWxTcGxpdFFOYW1lMiB3aWxsIGFsd2F5cyByZXR1cm4gYSBkdXBsaWNhdGVkCisgICAgKiBzdHJpbmdzLgorICAgICovCisgICAgbG9jYWwgPSB4bWxTcGxpdFFOYW1lMih2YWx1ZSwgJnByZWZpeCk7CisgICAgaWYgKGxvY2FsID09IE5VTEwpCisJbG9jYWwgPSB4bWxTdHJkdXAodmFsdWUpOworICAgIC8qCisgICAgKiBPUFRJTUlaRSBUT0RPOiBVc2UgZmxhZ3MgZm9yOgorICAgICogIC0gaXMgdGhlcmUgYW55IG5hbWVzcGFjZSBiaW5kaW5nPworICAgICogIC0gaXMgdGhlcmUgYSBkZWZhdWx0IG5hbWVzcGFjZT8KKyAgICAqLworICAgIG5zTmFtZSA9IHhtbFNjaGVtYUxvb2t1cE5hbWVzcGFjZSh2Y3R4dCwgcHJlZml4KTsKKworICAgIGlmIChwcmVmaXggIT0gTlVMTCkgeworCXhtbEZyZWUocHJlZml4KTsKKwkvKgorCSogQSBuYW1lc3BhY2UgbXVzdCBiZSBmb3VuZCBpZiB0aGUgcHJlZml4IGlzCisJKiBOT1QgTlVMTC4KKwkqLworCWlmIChuc05hbWUgPT0gTlVMTCkgeworCSAgICByZXQgPSBYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzE7CisJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHZjdHh0LCByZXQsIE5VTEwsCisJCVdYU19CQVNJQ19DQVNUIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX1FOQU1FKSwKKwkJIlRoZSBRTmFtZSB2YWx1ZSAnJXMnIGhhcyBubyAiCisJCSJjb3JyZXNwb25kaW5nIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBpbiAiCisJCSJzY29wZSIsIHZhbHVlLCBOVUxMKTsKKwkgICAgaWYgKGxvY2FsICE9IE5VTEwpCisJCXhtbEZyZWUobG9jYWwpOworCSAgICByZXR1cm4gKHJldCk7CisJfQorICAgIH0KKyAgICBpZiAodmFsTmVlZGVkICYmIHZhbCkgeworCWlmIChuc05hbWUgIT0gTlVMTCkKKwkgICAgKnZhbCA9IHhtbFNjaGVtYU5ld1FOYW1lVmFsdWUoCisJCUJBRF9DQVNUIHhtbFN0cmR1cChuc05hbWUpLCBCQURfQ0FTVCBsb2NhbCk7CisJZWxzZQorCSAgICAqdmFsID0geG1sU2NoZW1hTmV3UU5hbWVWYWx1ZShOVUxMLAorCQlCQURfQ0FTVCBsb2NhbCk7CisgICAgfSBlbHNlCisJeG1sRnJlZShsb2NhbCk7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoKKyogY3ZjLXNpbXBsZS10eXBlCisqLworc3RhdGljIGludAoreG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSh4bWxTY2hlbWFBYnN0cmFjdEN0eHRQdHIgYWN0eHQsCisJCQkgICAgIHhtbE5vZGVQdHIgbm9kZSwKKwkJCSAgICAgeG1sU2NoZW1hVHlwZVB0ciB0eXBlLAorCQkJICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCSAgICAgeG1sU2NoZW1hVmFsUHRyICpyZXRWYWwsCisJCQkgICAgIGludCBmaXJlRXJyb3JzLAorCQkJICAgICBpbnQgbm9ybWFsaXplLAorCQkJICAgICBpbnQgaXNOb3JtYWxpemVkKQoreworICAgIGludCByZXQgPSAwLCB2YWxOZWVkZWQgPSAocmV0VmFsKSA/IDEgOiAwOworICAgIHhtbFNjaGVtYVZhbFB0ciB2YWwgPSBOVUxMOworICAgIC8qIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3M7ICovCisgICAgeG1sQ2hhciAqbm9ybVZhbHVlID0gTlVMTDsKKworI2RlZmluZSBOT1JNQUxJWkUoYXR5cGUpIFwKKyAgICBpZiAoKCEgaXNOb3JtYWxpemVkKSAmJiBcCisgICAgKG5vcm1hbGl6ZSB8fCAodHlwZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRCkpKSB7IFwKKwlub3JtVmFsdWUgPSB4bWxTY2hlbWFOb3JtYWxpemVWYWx1ZShhdHlwZSwgdmFsdWUpOyBcCisJaWYgKG5vcm1WYWx1ZSAhPSBOVUxMKSBcCisJICAgIHZhbHVlID0gbm9ybVZhbHVlOyBcCisJaXNOb3JtYWxpemVkID0gMTsgXAorICAgIH0KKworICAgIGlmICgocmV0VmFsICE9IE5VTEwpICYmICgqcmV0VmFsICE9IE5VTEwpKSB7CisJeG1sU2NoZW1hRnJlZVZhbHVlKCpyZXRWYWwpOworCSpyZXRWYWwgPSBOVUxMOworICAgIH0KKyAgICAvKgorICAgICogMy4xNC40IFNpbXBsZSBUeXBlIERlZmluaXRpb24gVmFsaWRhdGlvbiBSdWxlcworICAgICogVmFsaWRhdGlvbiBSdWxlOiBTdHJpbmcgVmFsaWQKKyAgICAqLworICAgIC8qCisgICAgKiAxIEl0IGlzIHNjaGVtYS12YWxpZCB3aXRoIHJlc3BlY3QgdG8gdGhhdCBkZWZpbml0aW9uIGFzIGRlZmluZWQKKyAgICAqIGJ5IERhdGF0eXBlIFZhbGlkIGluIFtYTUwgU2NoZW1hczogRGF0YXR5cGVzXS4KKyAgICAqLworICAgIC8qCisgICAgKiAyLjEgSWYgVGhlIGRlZmluaXRpb24gaXMgRU5USVRZIG9yIGlzIHZhbGlkbHkgZGVyaXZlZCBmcm9tIEVOVElUWSBnaXZlbgorICAgICogdGhlIGVtcHR5IHNldCwgYXMgZGVmaW5lZCBpbiBUeXBlIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKO+/vTMuMTQuNiksIHRoZW4KKyAgICAqIHRoZSBzdHJpbmcgbXVzdCBiZSBhIO+/vWRlY2xhcmVkIGVudGl0eSBuYW1l77+9LgorICAgICovCisgICAgLyoKKyAgICAqIDIuMiBJZiBUaGUgZGVmaW5pdGlvbiBpcyBFTlRJVElFUyBvciBpcyB2YWxpZGx5IGRlcml2ZWQgZnJvbSBFTlRJVElFUworICAgICogZ2l2ZW4gdGhlIGVtcHR5IHNldCwgYXMgZGVmaW5lZCBpbiBUeXBlIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKO+/vTMuMTQuNiksCisgICAgKiB0aGVuIGV2ZXJ5IHdoaXRlc3BhY2UtZGVsaW1pdGVkIHN1YnN0cmluZyBvZiB0aGUgc3RyaW5nIG11c3QgYmUgYSDvv71kZWNsYXJlZAorICAgICogZW50aXR5IG5hbWXvv70uCisgICAgKi8KKyAgICAvKgorICAgICogMi4zIG90aGVyd2lzZSBubyBmdXJ0aGVyIGNvbmRpdGlvbiBhcHBsaWVzLgorICAgICovCisgICAgaWYgKCghIHZhbE5lZWRlZCkgJiYgKHR5cGUtPmZsYWdzICYgWE1MX1NDSEVNQVNfVFlQRV9GQUNFVFNORUVEVkFMVUUpKQorCXZhbE5lZWRlZCA9IDE7CisgICAgaWYgKHZhbHVlID09IE5VTEwpCisJdmFsdWUgPSBCQURfQ0FTVCAiIjsKKyAgICBpZiAoV1hTX0lTX0FOWV9TSU1QTEVfVFlQRSh0eXBlKSB8fCBXWFNfSVNfQVRPTUlDKHR5cGUpKSB7CisJeG1sU2NoZW1hVHlwZVB0ciBiaVR5cGU7IC8qIFRoZSBidWlsdC1pbiB0eXBlLiAqLworCS8qCisJKiBTUEVDICgxLjIuMSkgImlmIHt2YXJpZXR5fSBpcyDvv71hdG9taWPvv70gdGhlbiB0aGUgc3RyaW5nIG11c3Qg77+9bWF0Y2jvv70KKwkqIGEgbGl0ZXJhbCBpbiB0aGUg77+9bGV4aWNhbCBzcGFjZe+/vSBvZiB7YmFzZSB0eXBlIGRlZmluaXRpb259IgorCSovCisJLyoKKwkqIFdoaXRlc3BhY2Utbm9ybWFsaXplLgorCSovCisJTk9STUFMSVpFKHR5cGUpOworCWlmICh0eXBlLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9CQVNJQykgeworCSAgICAvKgorCSAgICAqIEdldCB0aGUgYnVpbHQtaW4gdHlwZS4KKwkgICAgKi8KKwkgICAgYmlUeXBlID0gdHlwZS0+YmFzZVR5cGU7CisJICAgIHdoaWxlICgoYmlUeXBlICE9IE5VTEwpICYmCisJCShiaVR5cGUtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSkKKwkJYmlUeXBlID0gYmlUeXBlLT5iYXNlVHlwZTsKKworCSAgICBpZiAoYmlUeXBlID09IE5VTEwpIHsKKwkJQUVSUk9SX0lOVCgieG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSIsCisJCSAgICAiY291bGQgbm90IGdldCB0aGUgYnVpbHQtaW4gdHlwZSIpOworCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICB9CisJfSBlbHNlCisJICAgIGJpVHlwZSA9IHR5cGU7CisJLyoKKwkqIE5PVEFUSU9OcyBuZWVkIHRvIGJlIHByb2Nlc3NlZCBoZXJlLCBzaW5jZSB0aGV5IG5lZWQKKwkqIHRvIGxvb2t1cCBpbiB0aGUgaGFzaHRhYmxlIG9mIE5PVEFUSU9OIGRlY2xhcmF0aW9ucyBvZiB0aGUgc2NoZW1hLgorCSovCisJaWYgKGFjdHh0LT50eXBlID09IFhNTF9TQ0hFTUFfQ1RYVF9WQUxJREFUT1IpIHsKKwkgICAgc3dpdGNoIChiaVR5cGUtPmJ1aWx0SW5UeXBlKSB7CisJCWNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046CisJCSAgICByZXQgPSB4bWxTY2hlbWFWYWxpZGF0ZU5vdGF0aW9uKAorCQkJKHhtbFNjaGVtYVZhbGlkQ3R4dFB0cikgYWN0eHQsCisJCQkoKHhtbFNjaGVtYVZhbGlkQ3R4dFB0cikgYWN0eHQpLT5zY2hlbWEsCisJCQlOVUxMLCB2YWx1ZSwgJnZhbCwgdmFsTmVlZGVkKTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhNTF9TQ0hFTUFTX1FOQU1FOgorCQkgICAgcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVRTmFtZSgoeG1sU2NoZW1hVmFsaWRDdHh0UHRyKSBhY3R4dCwKKwkJCXZhbHVlLCAmdmFsLCB2YWxOZWVkZWQpOworCQkgICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCSAgICAvKiB3cyA9IHhtbFNjaGVtYUdldFdoaXRlU3BhY2VGYWNldFZhbHVlKHR5cGUpOyAqLworCQkgICAgaWYgKHZhbE5lZWRlZCkKKwkJCXJldCA9IHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtKGJpVHlwZSwKKwkJCSAgICB2YWx1ZSwgJnZhbCwgbm9kZSk7CisJCSAgICBlbHNlCisJCQlyZXQgPSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZU5vTm9ybShiaVR5cGUsCisJCQkgICAgdmFsdWUsIE5VTEwsIG5vZGUpOworCQkgICAgYnJlYWs7CisJICAgIH0KKwl9IGVsc2UgaWYgKGFjdHh0LT50eXBlID09IFhNTF9TQ0hFTUFfQ1RYVF9QQVJTRVIpIHsKKwkgICAgc3dpdGNoIChiaVR5cGUtPmJ1aWx0SW5UeXBlKSB7CisJCWNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046CisJCSAgICByZXQgPSB4bWxTY2hlbWFWYWxpZGF0ZU5vdGF0aW9uKE5VTEwsCisJCQkoKHhtbFNjaGVtYVBhcnNlckN0eHRQdHIpIGFjdHh0KS0+c2NoZW1hLCBub2RlLAorCQkJdmFsdWUsICZ2YWwsIHZhbE5lZWRlZCk7CisJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJICAgIC8qIHdzID0geG1sU2NoZW1hR2V0V2hpdGVTcGFjZUZhY2V0VmFsdWUodHlwZSk7ICovCisJCSAgICBpZiAodmFsTmVlZGVkKQorCQkJcmV0ID0geG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0oYmlUeXBlLAorCQkJICAgIHZhbHVlLCAmdmFsLCBub2RlKTsKKwkJICAgIGVsc2UKKwkJCXJldCA9IHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtKGJpVHlwZSwKKwkJCSAgICB2YWx1ZSwgTlVMTCwgbm9kZSk7CisJCSAgICBicmVhazsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIC8qCisJICAgICogVmFsaWRhdGlvbiB2aWEgYSBwdWJsaWMgQVBJIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQuCisJICAgICovCisJICAgIFRPRE8KKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwl9CisJaWYgKHJldCAhPSAwKSB7CisJICAgIGlmIChyZXQgPCAwKSB7CisJCUFFUlJPUl9JTlQoInhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUiLAorCQkgICAgInZhbGlkYXRpbmcgYWdhaW5zdCBhIGJ1aWx0LWluIHR5cGUiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCSAgICBpZiAoV1hTX0lTX0xJU1QodHlwZSkpCisJCXJldCA9IFhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMjsKKwkgICAgZWxzZQorCQlyZXQgPSBYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzE7CisJfQorCWlmICgocmV0ID09IDApICYmICh0eXBlLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUykpIHsKKwkgICAgLyoKKwkgICAgKiBDaGVjayBmYWNldHMuCisJICAgICovCisJICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRzKGFjdHh0LCBub2RlLCB0eXBlLAorCQkoeG1sU2NoZW1hVmFsVHlwZSkgYmlUeXBlLT5idWlsdEluVHlwZSwgdmFsdWUsIHZhbCwKKwkJMCwgZmlyZUVycm9ycyk7CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0IDwgMCkgeworCQkgICAgQUVSUk9SX0lOVCgieG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSIsCisJCQkidmFsaWRhdGluZyBmYWNldHMgb2YgYXRvbWljIHNpbXBsZSB0eXBlIik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJCWlmIChXWFNfSVNfTElTVCh0eXBlKSkKKwkJICAgIHJldCA9IFhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMjsKKwkJZWxzZQorCQkgICAgcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8xOworCSAgICB9CisJfQorCWlmIChmaXJlRXJyb3JzICYmIChyZXQgPiAwKSkKKwkgICAgeG1sU2NoZW1hU2ltcGxlVHlwZUVycihhY3R4dCwgcmV0LCBub2RlLCB2YWx1ZSwgdHlwZSwgMSk7CisgICAgfSBlbHNlIGlmIChXWFNfSVNfTElTVCh0eXBlKSkgeworCisJeG1sU2NoZW1hVHlwZVB0ciBpdGVtVHlwZTsKKwljb25zdCB4bWxDaGFyICpjdXIsICplbmQ7CisJeG1sQ2hhciAqdG1wVmFsdWUgPSBOVUxMOworCXVuc2lnbmVkIGxvbmcgbGVuID0gMDsKKwl4bWxTY2hlbWFWYWxQdHIgcHJldlZhbCA9IE5VTEwsIGN1clZhbCA9IE5VTEw7CisJLyogMS4yLjIgaWYge3ZhcmlldHl9IGlzIO+/vWxpc3Tvv70gdGhlbiB0aGUgc3RyaW5nIG11c3QgYmUgYSBzZXF1ZW5jZQorCSogb2Ygd2hpdGUgc3BhY2Ugc2VwYXJhdGVkIHRva2VucywgZWFjaCBvZiB3aGljaCDvv71tYXRjaO+/vWVzIGEgbGl0ZXJhbAorCSogaW4gdGhlIO+/vWxleGljYWwgc3BhY2Xvv70gb2Yge2l0ZW0gdHlwZSBkZWZpbml0aW9ufQorCSovCisJLyoKKwkqIE5vdGUgdGhhdCBYTUxfU0NIRU1BU19UWVBFX05PUk1WQUxVRU5FRURFRCB3aWxsIGJlIHNldCBpZgorCSogdGhlIGxpc3QgdHlwZSBoYXMgYW4gZW51bSBvciBwYXR0ZXJuIGZhY2V0LgorCSovCisJTk9STUFMSVpFKHR5cGUpOworCS8qCisJKiBWQUwgVE9ETzogT3B0aW1pemUgdmFsaWRhdGlvbiBvZiBlbXB0eSB2YWx1ZXMuCisJKiBWQUwgVE9ETzogV2UgZG8gbm90IGhhdmUgY29tcHV0ZWQgdmFsdWVzIGZvciBsaXN0cy4KKwkqLworCWl0ZW1UeXBlID0gV1hTX0xJU1RfSVRFTVRZUEUodHlwZSk7CisJY3VyID0gdmFsdWU7CisJZG8geworCSAgICB3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpCisJCWN1cisrOworCSAgICBlbmQgPSBjdXI7CisJICAgIHdoaWxlICgoKmVuZCAhPSAwKSAmJiAoIShJU19CTEFOS19DSCgqZW5kKSkpKQorCQllbmQrKzsKKwkgICAgaWYgKGVuZCA9PSBjdXIpCisJCWJyZWFrOworCSAgICB0bXBWYWx1ZSA9IHhtbFN0cm5kdXAoY3VyLCBlbmQgLSBjdXIpOworCSAgICBsZW4rKzsKKworCSAgICBpZiAodmFsTmVlZGVkKQorCQlyZXQgPSB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKGFjdHh0LCBub2RlLCBpdGVtVHlwZSwKKwkJICAgIHRtcFZhbHVlLCAmY3VyVmFsLCBmaXJlRXJyb3JzLCAwLCAxKTsKKwkgICAgZWxzZQorCQlyZXQgPSB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKGFjdHh0LCBub2RlLCBpdGVtVHlwZSwKKwkJICAgIHRtcFZhbHVlLCBOVUxMLCBmaXJlRXJyb3JzLCAwLCAxKTsKKwkgICAgRlJFRV9BTkRfTlVMTCh0bXBWYWx1ZSk7CisJICAgIGlmIChjdXJWYWwgIT0gTlVMTCkgeworCQkvKgorCQkqIEFkZCB0byBsaXN0IG9mIGNvbXB1dGVkIHZhbHVlcy4KKwkJKi8KKwkJaWYgKHZhbCA9PSBOVUxMKQorCQkgICAgdmFsID0gY3VyVmFsOworCQllbHNlCisJCSAgICB4bWxTY2hlbWFWYWx1ZUFwcGVuZChwcmV2VmFsLCBjdXJWYWwpOworCQlwcmV2VmFsID0gY3VyVmFsOworCQljdXJWYWwgPSBOVUxMOworCSAgICB9CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0IDwgMCkgeworCQkgICAgQUVSUk9SX0lOVCgieG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSIsCisJCQkidmFsaWRhdGluZyBhbiBpdGVtIG9mIGxpc3Qgc2ltcGxlIHR5cGUiKTsKKwkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCX0KKwkJcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8yOworCQlicmVhazsKKwkgICAgfQorCSAgICBjdXIgPSBlbmQ7CisJfSB3aGlsZSAoKmN1ciAhPSAwKTsKKwlGUkVFX0FORF9OVUxMKHRtcFZhbHVlKTsKKwlpZiAoKHJldCA9PSAwKSAmJiAodHlwZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX0hBU19GQUNFVFMpKSB7CisJICAgIC8qCisJICAgICogQXBwbHkgZmFjZXRzIChwYXR0ZXJuLCBlbnVtZXJhdGlvbikuCisJICAgICovCisJICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRmFjZXRzKGFjdHh0LCBub2RlLCB0eXBlLAorCQlYTUxfU0NIRU1BU19VTktOT1dOLCB2YWx1ZSwgdmFsLAorCQlsZW4sIGZpcmVFcnJvcnMpOworCSAgICBpZiAocmV0ICE9IDApIHsKKwkJaWYgKHJldCA8IDApIHsKKwkJICAgIEFFUlJPUl9JTlQoInhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUiLAorCQkJInZhbGlkYXRpbmcgZmFjZXRzIG9mIGxpc3Qgc2ltcGxlIHR5cGUiKTsKKwkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCX0KKwkJcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8yOworCSAgICB9CisJfQorCWlmIChmaXJlRXJyb3JzICYmIChyZXQgPiAwKSkgeworCSAgICAvKgorCSAgICAqIFJlcG9ydCB0aGUgbm9ybWFsaXplZCB2YWx1ZS4KKwkgICAgKi8KKwkgICAgbm9ybWFsaXplID0gMTsKKwkgICAgTk9STUFMSVpFKHR5cGUpOworCSAgICB4bWxTY2hlbWFTaW1wbGVUeXBlRXJyKGFjdHh0LCByZXQsIG5vZGUsIHZhbHVlLCB0eXBlLCAxKTsKKwl9CisgICAgfSBlbHNlIGlmIChXWFNfSVNfVU5JT04odHlwZSkpIHsKKwl4bWxTY2hlbWFUeXBlTGlua1B0ciBtZW1iZXJMaW5rOworCS8qCisJKiBUT0RPOiBGb3IgYWxsIGRhdGF0eXBlcyDvv71kZXJpdmVk77+9IGJ5IO+/vXVuaW9u77+9ICB3aGl0ZVNwYWNlIGRvZXMKKwkqIG5vdCBhcHBseSBkaXJlY3RseTsgaG93ZXZlciwgdGhlIG5vcm1hbGl6YXRpb24gYmVoYXZpb3Igb2Yg77+9dW5pb27vv70KKwkqIHR5cGVzIGlzIGNvbnRyb2xsZWQgYnkgdGhlIHZhbHVlIG9mIHdoaXRlU3BhY2Ugb24gdGhhdCBvbmUgb2YgdGhlCisJKiDvv71tZW1iZXJUeXBlc++/vSBhZ2FpbnN0IHdoaWNoIHRoZSDvv711bmlvbu+/vSBpcyBzdWNjZXNzZnVsbHkgdmFsaWRhdGVkLgorCSoKKwkqIFRoaXMgbWVhbnMgdGhhdCB0aGUgdmFsdWUgaXMgbm9ybWFsaXplZCBieSB0aGUgZmlyc3QgdmFsaWRhdGluZworCSogbWVtYmVyIHR5cGUsIHRoZW4gdGhlIGZhY2V0cyBvZiB0aGUgdW5pb24gdHlwZSBhcmUgYXBwbGllZC4gVGhpcworCSogbmVlZHMgY2hhbmdpbmcgb2YgdGhlIHZhbHVlIQorCSovCisKKwkvKgorCSogMS4yLjMgaWYge3ZhcmlldHl9IGlzIO+/vXVuaW9u77+9IHRoZW4gdGhlIHN0cmluZyBtdXN0IO+/vW1hdGNo77+9IGEKKwkqIGxpdGVyYWwgaW4gdGhlIO+/vWxleGljYWwgc3BhY2Xvv70gb2YgYXQgbGVhc3Qgb25lIG1lbWJlciBvZgorCSoge21lbWJlciB0eXBlIGRlZmluaXRpb25zfQorCSovCisJbWVtYmVyTGluayA9IHhtbFNjaGVtYUdldFVuaW9uU2ltcGxlVHlwZU1lbWJlclR5cGVzKHR5cGUpOworCWlmIChtZW1iZXJMaW5rID09IE5VTEwpIHsKKwkgICAgQUVSUk9SX0lOVCgieG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSIsCisJCSJ1bmlvbiBzaW1wbGUgdHlwZSBoYXMgbm8gbWVtYmVyIHR5cGVzIik7CisJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJfQorCS8qCisJKiBBbHdheXMgbm9ybWFsaXplIHVuaW9uIHR5cGUgdmFsdWVzLCBzaW5jZSB3ZSBjdXJyZW50bHkKKwkqIGNhbm5vdCBzdG9yZSB0aGUgd2hpdGVzcGFjZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSB2YWx1ZQorCSogaXRzZWxmOyBvdGhlcndpc2UgYSBsYXRlciB2YWx1ZS1jb21wYXJpc29uIHdvdWxkIGJlCisJKiBub3QgcG9zc2libGUuCisJKi8KKwl3aGlsZSAobWVtYmVyTGluayAhPSBOVUxMKSB7CisJICAgIGlmICh2YWxOZWVkZWQpCisJCXJldCA9IHhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUoYWN0eHQsIG5vZGUsCisJCSAgICBtZW1iZXJMaW5rLT50eXBlLCB2YWx1ZSwgJnZhbCwgMCwgMSwgMCk7CisJICAgIGVsc2UKKwkJcmV0ID0geG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZShhY3R4dCwgbm9kZSwKKwkJICAgIG1lbWJlckxpbmstPnR5cGUsIHZhbHVlLCBOVUxMLCAwLCAxLCAwKTsKKwkgICAgaWYgKHJldCA8PSAwKQorCQlicmVhazsKKwkgICAgbWVtYmVyTGluayA9IG1lbWJlckxpbmstPm5leHQ7CisJfQorCWlmIChyZXQgIT0gMCkgeworCSAgICBpZiAocmV0IDwgMCkgeworCQlBRVJST1JfSU5UKCJ4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlIiwKKwkJICAgICJ2YWxpZGF0aW5nIG1lbWJlcnMgb2YgdW5pb24gc2ltcGxlIHR5cGUiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCSAgICByZXQgPSBYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzM7CisJfQorCS8qCisJKiBBcHBseSBmYWNldHMgKHBhdHRlcm4sIGVudW1lcmF0aW9uKS4KKwkqLworCWlmICgocmV0ID09IDApICYmICh0eXBlLT5mbGFncyAmIFhNTF9TQ0hFTUFTX1RZUEVfSEFTX0ZBQ0VUUykpIHsKKwkgICAgLyoKKwkgICAgKiBUaGUgbm9ybWFsaXphdGlvbiBiZWhhdmlvciBvZiDvv711bmlvbu+/vSB0eXBlcyBpcyBjb250cm9sbGVkIGJ5CisJICAgICogdGhlIHZhbHVlIG9mIHdoaXRlU3BhY2Ugb24gdGhhdCBvbmUgb2YgdGhlIO+/vW1lbWJlclR5cGVz77+9CisJICAgICogYWdhaW5zdCB3aGljaCB0aGUg77+9dW5pb27vv70gaXMgc3VjY2Vzc2Z1bGx5IHZhbGlkYXRlZC4KKwkgICAgKi8KKwkgICAgTk9STUFMSVpFKG1lbWJlckxpbmstPnR5cGUpOworCSAgICByZXQgPSB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0cyhhY3R4dCwgbm9kZSwgdHlwZSwKKwkJWE1MX1NDSEVNQVNfVU5LTk9XTiwgdmFsdWUsIHZhbCwKKwkJMCwgZmlyZUVycm9ycyk7CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0IDwgMCkgeworCQkgICAgQUVSUk9SX0lOVCgieG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSIsCisJCQkidmFsaWRhdGluZyBmYWNldHMgb2YgdW5pb24gc2ltcGxlIHR5cGUiKTsKKwkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCX0KKwkJcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX0RBVEFUWVBFX1ZBTElEXzFfMl8zOworCSAgICB9CisJfQorCWlmIChmaXJlRXJyb3JzICYmIChyZXQgPiAwKSkKKwkgICAgeG1sU2NoZW1hU2ltcGxlVHlwZUVycihhY3R4dCwgcmV0LCBub2RlLCB2YWx1ZSwgdHlwZSwgMSk7CisgICAgfQorCisgICAgaWYgKG5vcm1WYWx1ZSAhPSBOVUxMKQorCXhtbEZyZWUobm9ybVZhbHVlKTsKKyAgICBpZiAocmV0ID09IDApIHsKKwlpZiAocmV0VmFsICE9IE5VTEwpCisJICAgICpyZXRWYWwgPSB2YWw7CisJZWxzZSBpZiAodmFsICE9IE5VTEwpCisJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZSh2YWwpOworICAgIH0gZWxzZSBpZiAodmFsICE9IE5VTEwpCisJeG1sU2NoZW1hRnJlZVZhbHVlKHZhbCk7CisgICAgcmV0dXJuIChyZXQpOworaW50ZXJuYWxfZXJyb3I6CisgICAgaWYgKG5vcm1WYWx1ZSAhPSBOVUxMKQorCXhtbEZyZWUobm9ybVZhbHVlKTsKKyAgICBpZiAodmFsICE9IE5VTEwpCisJeG1sU2NoZW1hRnJlZVZhbHVlKHZhbCk7CisgICAgcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZFeHBhbmRRTmFtZSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCisJCQkgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCSAgIGNvbnN0IHhtbENoYXIgKipuc05hbWUsCisJCQkgICBjb25zdCB4bWxDaGFyICoqbG9jYWxOYW1lKQoreworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKChuc05hbWUgPT0gTlVMTCkgfHwgKGxvY2FsTmFtZSA9PSBOVUxMKSkKKwlyZXR1cm4gKC0xKTsKKyAgICAqbnNOYW1lID0gTlVMTDsKKyAgICAqbG9jYWxOYW1lID0gTlVMTDsKKworICAgIHJldCA9IHhtbFZhbGlkYXRlUU5hbWUodmFsdWUsIDEpOworICAgIGlmIChyZXQgPT0gLTEpCisJcmV0dXJuICgtMSk7CisgICAgaWYgKHJldCA+IDApIHsKKwl4bWxTY2hlbWFTaW1wbGVUeXBlRXJyKEFDVFhUX0NBU1QgdmN0eHQsCisJICAgIFhNTF9TQ0hFTUFWX0NWQ19EQVRBVFlQRV9WQUxJRF8xXzJfMSwgTlVMTCwKKwkgICAgdmFsdWUsIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX1FOQU1FKSwgMSk7CisJcmV0dXJuICgxKTsKKyAgICB9CisgICAgeworCXhtbENoYXIgKmxvY2FsID0gTlVMTDsKKwl4bWxDaGFyICpwcmVmaXg7CisKKwkvKgorCSogTk9URTogeG1sU3BsaXRRTmFtZTIgd2lsbCByZXR1cm4gYSBkdXBsaWNhdGVkCisJKiBzdHJpbmcuCisJKi8KKwlsb2NhbCA9IHhtbFNwbGl0UU5hbWUyKHZhbHVlLCAmcHJlZml4KTsKKwlpZiAobG9jYWwgPT0gTlVMTCkKKwkgICAgKmxvY2FsTmFtZSA9IHhtbERpY3RMb29rdXAodmN0eHQtPmRpY3QsIHZhbHVlLCAtMSk7CisJZWxzZSB7CisJICAgICpsb2NhbE5hbWUgPSB4bWxEaWN0TG9va3VwKHZjdHh0LT5kaWN0LCBsb2NhbCwgLTEpOworCSAgICB4bWxGcmVlKGxvY2FsKTsKKwl9CisKKwkqbnNOYW1lID0geG1sU2NoZW1hTG9va3VwTmFtZXNwYWNlKHZjdHh0LCBwcmVmaXgpOworCisJaWYgKHByZWZpeCAhPSBOVUxMKSB7CisJICAgIHhtbEZyZWUocHJlZml4KTsKKwkgICAgLyoKKwkgICAgKiBBIG5hbWVzcGFjZSBtdXN0IGJlIGZvdW5kIGlmIHRoZSBwcmVmaXggaXMgTk9UIE5VTEwuCisJICAgICovCisJICAgIGlmICgqbnNOYW1lID09IE5VTEwpIHsKKwkJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgdmN0eHQsCisJCSAgICBYTUxfU0NIRU1BVl9DVkNfREFUQVRZUEVfVkFMSURfMV8yXzEsIE5VTEwsCisJCSAgICBXWFNfQkFTSUNfQ0FTVCB4bWxTY2hlbWFHZXRCdWlsdEluVHlwZShYTUxfU0NIRU1BU19RTkFNRSksCisJCSAgICAiVGhlIFFOYW1lIHZhbHVlICclcycgaGFzIG5vICIKKwkJICAgICJjb3JyZXNwb25kaW5nIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBpbiBzY29wZSIsCisJCSAgICB2YWx1ZSwgTlVMTCk7CisJCXJldHVybiAoMik7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVByb2Nlc3NYU0lUeXBlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCXhtbFNjaGVtYUF0dHJJbmZvUHRyIGlhdHRyLAorCQkJeG1sU2NoZW1hVHlwZVB0ciAqbG9jYWxUeXBlLAorCQkJeG1sU2NoZW1hRWxlbWVudFB0ciBlbGVtRGVjbCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICAvKgorICAgICogY3ZjLWVsdCAoMy4zLjQpIDogKDQpCisgICAgKiBBTkQKKyAgICAqIFNjaGVtYS1WYWxpZGl0eSBBc3Nlc3NtZW50IChFbGVtZW50KSAoY3ZjLWFzc2Vzcy1lbHQpCisgICAgKiAgICgxLjIuMS4yLjEpIC0gKDEuMi4xLjIuNCkKKyAgICAqIEhhbmRsZSAneHNpOnR5cGUnLgorICAgICovCisgICAgaWYgKGxvY2FsVHlwZSA9PSBOVUxMKQorCXJldHVybiAoLTEpOworICAgICpsb2NhbFR5cGUgPSBOVUxMOworICAgIGlmIChpYXR0ciA9PSBOVUxMKQorCXJldHVybiAoMCk7CisgICAgZWxzZSB7CisJY29uc3QgeG1sQ2hhciAqbnNOYW1lID0gTlVMTCwgKmxvY2FsID0gTlVMTDsKKwkvKgorCSogVE9ETzogV2Ugc2hvdWxkIHJlcG9ydCBhICp3YXJuaW5nKiB0aGF0IHRoZSB0eXBlIHdhcyBvdmVycmlkZW4KKwkqIGJ5IHRoZSBpbnN0YW5jZS4KKwkqLworCUFDVElWQVRFX0FUVFJJQlVURShpYXR0cik7CisJLyoKKwkqIChjdmMtZWx0KSAoMy4zLjQpIDogKDQuMSkKKwkqIChjdmMtYXNzZXNzLWVsdCkgKDEuMi4xLjIuMikKKwkqLworCXJldCA9IHhtbFNjaGVtYVZFeHBhbmRRTmFtZSh2Y3R4dCwgaWF0dHItPnZhbHVlLAorCSAgICAmbnNOYW1lLCAmbG9jYWwpOworCWlmIChyZXQgIT0gMCkgeworCSAgICBpZiAocmV0IDwgMCkgeworCQlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUVsZW1lbnRCeURlY2xhcmF0aW9uIiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYVFOYW1lRXhwYW5kKCkgdG8gdmFsaWRhdGUgdGhlICIKKwkJICAgICJhdHRyaWJ1dGUgJ3hzaTp0eXBlJyIpOworCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICB9CisJICAgIGdvdG8gZXhpdDsKKwl9CisJLyoKKwkqIChjdmMtZWx0KSAoMy4zLjQpIDogKDQuMikKKwkqIChjdmMtYXNzZXNzLWVsdCkgKDEuMi4xLjIuMykKKwkqLworCSpsb2NhbFR5cGUgPSB4bWxTY2hlbWFHZXRUeXBlKHZjdHh0LT5zY2hlbWEsIGxvY2FsLCBuc05hbWUpOworCWlmICgqbG9jYWxUeXBlID09IE5VTEwpIHsKKwkgICAgeG1sQ2hhciAqc3RyID0gTlVMTDsKKworCSAgICB4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCB2Y3R4dCwKKwkJWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzIsIE5VTEwsCisJCVdYU19CQVNJQ19DQVNUIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX1FOQU1FKSwKKwkJIlRoZSBRTmFtZSB2YWx1ZSAnJXMnIG9mIHRoZSB4c2k6dHlwZSBhdHRyaWJ1dGUgZG9lcyBub3QgIgorCQkicmVzb2x2ZSB0byBhIHR5cGUgZGVmaW5pdGlvbiIsCisJCXhtbFNjaGVtYUZvcm1hdFFOYW1lKCZzdHIsIG5zTmFtZSwgbG9jYWwpLCBOVUxMKTsKKwkgICAgRlJFRV9BTkRfTlVMTChzdHIpOworCSAgICByZXQgPSB2Y3R4dC0+ZXJyOworCSAgICBnb3RvIGV4aXQ7CisJfQorCWlmIChlbGVtRGVjbCAhPSBOVUxMKSB7CisJICAgIGludCBzZXQgPSAwOworCisJICAgIC8qCisJICAgICogU1BFQyBjdmMtZWx0ICgzLjMuNCkgOiAoNC4zKSAoVHlwZSBEZXJpdmF0aW9uIE9LKQorCSAgICAqICJUaGUg77+9bG9jYWwgdHlwZSBkZWZpbml0aW9u77+9IG11c3QgYmUgdmFsaWRseQorCSAgICAqIGRlcml2ZWQgZnJvbSB0aGUge3R5cGUgZGVmaW5pdGlvbn0gZ2l2ZW4gdGhlIHVuaW9uIG9mCisJICAgICogdGhlIHtkaXNhbGxvd2VkIHN1YnN0aXR1dGlvbnN9IGFuZCB0aGUge3R5cGUgZGVmaW5pdGlvbn0ncworCSAgICAqIHtwcm9oaWJpdGVkIHN1YnN0aXR1dGlvbnN9LCBhcyBkZWZpbmVkIGluCisJICAgICogVHlwZSBEZXJpdmF0aW9uIE9LIChDb21wbGV4KSAo77+9My40LjYpCisJICAgICogKGlmIGl0IGlzIGEgY29tcGxleCB0eXBlIGRlZmluaXRpb24pLAorCSAgICAqIG9yIGdpdmVuIHtkaXNhbGxvd2VkIHN1YnN0aXR1dGlvbnN9IGFzIGRlZmluZWQgaW4gVHlwZQorCSAgICAqIERlcml2YXRpb24gT0sgKFNpbXBsZSkgKO+/vTMuMTQuNikgKGlmIGl0IGlzIGEgc2ltcGxlIHR5cGUKKwkgICAgKiBkZWZpbml0aW9uKS4iCisJICAgICoKKwkgICAgKiB7ZGlzYWxsb3dlZCBzdWJzdGl0dXRpb25zfTogdGhlICJibG9jayIgb24gdGhlIGVsZW1lbnQgZGVjbC4KKwkgICAgKiB7cHJvaGliaXRlZCBzdWJzdGl0dXRpb25zfTogdGhlICJibG9jayIgb24gdGhlIHR5cGUgZGVmLgorCSAgICAqLworCSAgICAvKgorCSAgICAqIE9QVElNSVpFIFRPRE86IFdlIGNvdWxkIG1hcCB0eXBlcyBhbHJlYWR5IGV2YWx1YXRlZAorCSAgICAqIHRvIGJlIHZhbGlkbHkgZGVyaXZlZCBmcm9tIG90aGVyIHR5cGVzIHRvIGF2b2lkIGNoZWNraW5nCisJICAgICogdGhpcyBvdmVyIGFuZCBvdmVyIGZvciB0aGUgc2FtZSB0eXBlcy4KKwkgICAgKi8KKwkgICAgaWYgKChlbGVtRGVjbC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0JMT0NLX0VYVEVOU0lPTikgfHwKKwkJKGVsZW1EZWNsLT5zdWJ0eXBlcy0+ZmxhZ3MgJgorCQkgICAgWE1MX1NDSEVNQVNfVFlQRV9CTE9DS19FWFRFTlNJT04pKQorCQlzZXQgfD0gU1VCU0VUX0VYVEVOU0lPTjsKKworCSAgICBpZiAoKGVsZW1EZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fQkxPQ0tfUkVTVFJJQ1RJT04pIHx8CisJCShlbGVtRGVjbC0+c3VidHlwZXMtPmZsYWdzICYKKwkJICAgIFhNTF9TQ0hFTUFTX1RZUEVfQkxPQ0tfUkVTVFJJQ1RJT04pKQorCQlzZXQgfD0gU1VCU0VUX1JFU1RSSUNUSU9OOworCisJICAgIC8qCisJICAgICogUkVNT1ZFRCBhbmQgQ0hBTkdFRCBzaW5jZSB0aGlzIHByb2R1Y2VkIGEgcGFyc2VyIGNvbnRleHQKKwkgICAgKiB3aGljaCBhZGRzIHRvIHRoZSBzdHJpbmcgZGljdCBvZiB0aGUgc2NoZW1hLiBTbyB0aGlzIHdvdWxkCisJICAgICogY2hhbmdlIHRoZSBzY2hlbWEgYW5kIHdlIGRvbid0IHdhbnQgdGhpcy4gV2UgZG9uJ3QgbmVlZAorCSAgICAqIHRoZSBwYXJzZXIgY29udGV4dCBhbnltb3JlLgorCSAgICAqCisJICAgICogaWYgKCh2Y3R4dC0+cGN0eHQgPT0gTlVMTCkgJiYKKwkgICAgKgkoeG1sU2NoZW1hQ3JlYXRlUEN0eHRPblZDdHh0KHZjdHh0KSA9PSAtMSkpCisJICAgICoJICAgIHJldHVybiAoLTEpOworCSAgICAqLworCisJICAgIGlmICh4bWxTY2hlbWFDaGVja0NPU0Rlcml2ZWRPSyhBQ1RYVF9DQVNUIHZjdHh0LCAqbG9jYWxUeXBlLAorCQllbGVtRGVjbC0+c3VidHlwZXMsIHNldCkgIT0gMCkgeworCQl4bWxDaGFyICpzdHIgPSBOVUxMOworCisJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHZjdHh0LAorCQkgICAgWE1MX1NDSEVNQVZfQ1ZDX0VMVF80XzMsIE5VTEwsIE5VTEwsCisJCSAgICAiVGhlIHR5cGUgZGVmaW5pdGlvbiAnJXMnLCBzcGVjaWZpZWQgYnkgeHNpOnR5cGUsIGlzICIKKwkJICAgICJibG9ja2VkIG9yIG5vdCB2YWxpZGx5IGRlcml2ZWQgZnJvbSB0aGUgdHlwZSBkZWZpbml0aW9uICIKKwkJICAgICJvZiB0aGUgZWxlbWVudCBkZWNsYXJhdGlvbiIsCisJCSAgICB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCQkJKCpsb2NhbFR5cGUpLT50YXJnZXROYW1lc3BhY2UsCisJCQkoKmxvY2FsVHlwZSktPm5hbWUpLAorCQkgICAgTlVMTCk7CisJCUZSRUVfQU5EX05VTEwoc3RyKTsKKwkJcmV0ID0gdmN0eHQtPmVycjsKKwkJKmxvY2FsVHlwZSA9IE5VTEw7CisJICAgIH0KKwl9CisgICAgfQorZXhpdDoKKyAgICBBQ1RJVkFURV9FTEVNOworICAgIHJldHVybiAocmV0KTsKK2ludGVybmFsX2Vycm9yOgorICAgIEFDVElWQVRFX0VMRU07CisgICAgcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZhbGlkYXRlRWxlbURlY2woeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0KQoreworICAgIHhtbFNjaGVtYUVsZW1lbnRQdHIgZWxlbURlY2wgPSB2Y3R4dC0+aW5vZGUtPmRlY2w7CisgICAgeG1sU2NoZW1hVHlwZVB0ciBhY3R1YWxUeXBlOworCisgICAgLyoKKyAgICAqIGN2Yy1lbHQgKDMuMy40KSA6IDEKKyAgICAqLworICAgIGlmIChlbGVtRGVjbCA9PSBOVUxMKSB7CisJVkVSUk9SKFhNTF9TQ0hFTUFWX0NWQ19FTFRfMSwgTlVMTCwKKwkgICAgIk5vIG1hdGNoaW5nIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSIpOworICAgICAgICByZXR1cm4gKHZjdHh0LT5lcnIpOworICAgIH0KKyAgICBhY3R1YWxUeXBlID0gV1hTX0VMRU1fVFlQRURFRihlbGVtRGVjbCk7CisgICAgLyoKKyAgICAqIGN2Yy1lbHQgKDMuMy40KSA6IDIKKyAgICAqLworICAgIGlmIChlbGVtRGVjbC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX0FCU1RSQUNUKSB7CisJVkVSUk9SKFhNTF9TQ0hFTUFWX0NWQ19FTFRfMiwgTlVMTCwKKwkgICAgIlRoZSBlbGVtZW50IGRlY2xhcmF0aW9uIGlzIGFic3RyYWN0Iik7CisgICAgICAgIHJldHVybiAodmN0eHQtPmVycik7CisgICAgfQorICAgIGlmIChhY3R1YWxUeXBlID09IE5VTEwpIHsKKyAgICAJVkVSUk9SKFhNTF9TQ0hFTUFWX0NWQ19UWVBFXzEsIE5VTEwsCisgICAgCSAgICAiVGhlIHR5cGUgZGVmaW5pdGlvbiBpcyBhYnNlbnQiKTsKKyAgICAJcmV0dXJuIChYTUxfU0NIRU1BVl9DVkNfVFlQRV8xKTsKKyAgICB9CisgICAgaWYgKHZjdHh0LT5uYkF0dHJJbmZvcyAhPSAwKSB7CisJaW50IHJldDsKKwl4bWxTY2hlbWFBdHRySW5mb1B0ciBpYXR0cjsKKwkvKgorCSogY3ZjLWVsdCAoMy4zLjQpIDogMworCSogSGFuZGxlICd4c2k6bmlsJy4KKwkqLworCWlhdHRyID0geG1sU2NoZW1hR2V0TWV0YUF0dHJJbmZvKHZjdHh0LAorCSAgICBYTUxfU0NIRU1BX0FUVFJfSU5GT19NRVRBX1hTSV9OSUwpOworCWlmIChpYXR0cikgeworCSAgICBBQ1RJVkFURV9BVFRSSUJVVEUoaWF0dHIpOworCSAgICAvKgorCSAgICAqIFZhbGlkYXRlIHRoZSB2YWx1ZS4KKwkgICAgKi8KKwkgICAgcmV0ID0geG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSgKKwkJQUNUWFRfQ0FTVCB2Y3R4dCwgTlVMTCwKKwkJeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfQk9PTEVBTiksCisJCWlhdHRyLT52YWx1ZSwgJihpYXR0ci0+dmFsKSwgMSwgMCwgMCk7CisJICAgIEFDVElWQVRFX0VMRU07CisJICAgIGlmIChyZXQgPCAwKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRlRWxlbURlY2wiLAorCQkgICAgImNhbGxpbmcgeG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSgpIHRvICIKKwkJICAgICJ2YWxpZGF0ZSB0aGUgYXR0cmlidXRlICd4c2k6bmlsJyIpOworCQlyZXR1cm4gKC0xKTsKKwkgICAgfQorCSAgICBpZiAocmV0ID09IDApIHsKKwkJaWYgKChlbGVtRGVjbC0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19FTEVNX05JTExBQkxFKSA9PSAwKSB7CisJCSAgICAvKgorCQkgICAgKiBjdmMtZWx0ICgzLjMuNCkgOiAzLjEKKwkJICAgICovCisJCSAgICBWRVJST1IoWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzEsIE5VTEwsCisJCQkiVGhlIGVsZW1lbnQgaXMgbm90ICduaWxsYWJsZSciKTsKKwkJICAgIC8qIERvZXMgbm90IHJldHVybiBhbiBlcnJvciBvbiBwdXJwb3NlLiAqLworCQl9IGVsc2UgeworCQkgICAgaWYgKHhtbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuKGlhdHRyLT52YWwpKSB7CisJCQkvKgorCQkJKiBjdmMtZWx0ICgzLjMuNCkgOiAzLjIuMgorCQkJKi8KKwkJCWlmICgoZWxlbURlY2wtPmZsYWdzICYgWE1MX1NDSEVNQVNfRUxFTV9GSVhFRCkgJiYKKwkJCSAgICAoZWxlbURlY2wtPnZhbHVlICE9IE5VTEwpKSB7CisJCQkgICAgVkVSUk9SKFhNTF9TQ0hFTUFWX0NWQ19FTFRfM18yXzIsIE5VTEwsCisJCQkJIlRoZSBlbGVtZW50IGNhbm5vdCBiZSAnbmlsbGVkJyBiZWNhdXNlICIKKwkJCQkidGhlcmUgaXMgYSBmaXhlZCB2YWx1ZSBjb25zdHJhaW50IGRlZmluZWQgIgorCQkJCSJmb3IgaXQiKTsKKwkJCSAgICAgLyogRG9lcyBub3QgcmV0dXJuIGFuIGVycm9yIG9uIHB1cnBvc2UuICovCisJCQl9IGVsc2UKKwkJCSAgICB2Y3R4dC0+aW5vZGUtPmZsYWdzIHw9CisJCQkJWE1MX1NDSEVNQV9FTEVNX0lORk9fTklMTEVEOworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisJLyoKKwkqIGN2Yy1lbHQgKDMuMy40KSA6IDQKKwkqIEhhbmRsZSAneHNpOnR5cGUnLgorCSovCisJaWF0dHIgPSB4bWxTY2hlbWFHZXRNZXRhQXR0ckluZm8odmN0eHQsCisJICAgIFhNTF9TQ0hFTUFfQVRUUl9JTkZPX01FVEFfWFNJX1RZUEUpOworCWlmIChpYXR0cikgeworCSAgICB4bWxTY2hlbWFUeXBlUHRyIGxvY2FsVHlwZSA9IE5VTEw7CisKKwkgICAgcmV0ID0geG1sU2NoZW1hUHJvY2Vzc1hTSVR5cGUodmN0eHQsIGlhdHRyLCAmbG9jYWxUeXBlLAorCQllbGVtRGVjbCk7CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0ID09IC0xKSB7CisJCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUVsZW1EZWNsIiwKKwkJCSJjYWxsaW5nIHhtbFNjaGVtYVByb2Nlc3NYU0lUeXBlKCkgdG8gIgorCQkJInByb2Nlc3MgdGhlIGF0dHJpYnV0ZSAneHNpOnR5cGUnIik7CisJCSAgICByZXR1cm4gKC0xKTsKKwkJfQorCQkvKiBEb2VzIG5vdCByZXR1cm4gYW4gZXJyb3Igb24gcHVycG9zZS4gKi8KKwkgICAgfQorCSAgICBpZiAobG9jYWxUeXBlICE9IE5VTEwpIHsKKwkJdmN0eHQtPmlub2RlLT5mbGFncyB8PSBYTUxfU0NIRU1BX0VMRU1fSU5GT19MT0NBTF9UWVBFOworCQlhY3R1YWxUeXBlID0gbG9jYWxUeXBlOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKgorICAgICogSURDOiBSZWdpc3RlciBpZGVudGl0eS1jb25zdHJhaW50IFhQYXRoIG1hdGNoZXJzLgorICAgICovCisgICAgaWYgKChlbGVtRGVjbC0+aWRjcyAhPSBOVUxMKSAmJgorCSh4bWxTY2hlbWFJRENSZWdpc3Rlck1hdGNoZXJzKHZjdHh0LCBlbGVtRGVjbCkgPT0gLTEpKQorCSAgICByZXR1cm4gKC0xKTsKKyAgICAvKgorICAgICogTm8gYWN0dWFsIHR5cGUgZGVmaW5pdGlvbi4KKyAgICAqLworICAgIGlmIChhY3R1YWxUeXBlID09IE5VTEwpIHsKKyAgICAJVkVSUk9SKFhNTF9TQ0hFTUFWX0NWQ19UWVBFXzEsIE5VTEwsCisgICAgCSAgICAiVGhlIHR5cGUgZGVmaW5pdGlvbiBpcyBhYnNlbnQiKTsKKyAgICAJcmV0dXJuIChYTUxfU0NIRU1BVl9DVkNfVFlQRV8xKTsKKyAgICB9CisgICAgLyoKKyAgICAqIFJlbWVtYmVyIHRoZSBhY3R1YWwgdHlwZSBkZWZpbml0aW9uLgorICAgICovCisgICAgdmN0eHQtPmlub2RlLT50eXBlRGVmID0gYWN0dWFsVHlwZTsKKworICAgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZBdHRyaWJ1dGVzU2ltcGxlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkKK3sKKyAgICB4bWxTY2hlbWFBdHRySW5mb1B0ciBpYXR0cjsKKyAgICBpbnQgcmV0ID0gMCwgaTsKKworICAgIC8qCisgICAgKiBTUEVDIGN2Yy10eXBlICgzLjEuMSkKKyAgICAqICJUaGUgYXR0cmlidXRlcyBvZiBtdXN0IGJlIGVtcHR5LCBleGNlcHRpbmcgdGhvc2Ugd2hvc2UgbmFtZXNwYWNlCisgICAgKiBuYW1lIGlzIGlkZW50aWNhbCB0byBodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSBhbmQKKyAgICAqIHdob3NlIGxvY2FsIG5hbWUgaXMgb25lIG9mIHR5cGUsIG5pbCwgc2NoZW1hTG9jYXRpb24gb3IKKyAgICAqIG5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24uIgorICAgICovCisgICAgaWYgKHZjdHh0LT5uYkF0dHJJbmZvcyA9PSAwKQorCXJldHVybiAoMCk7CisgICAgZm9yIChpID0gMDsgaSA8IHZjdHh0LT5uYkF0dHJJbmZvczsgaSsrKSB7CisJaWF0dHIgPSB2Y3R4dC0+YXR0ckluZm9zW2ldOworCWlmICghIGlhdHRyLT5tZXRhVHlwZSkgeworCSAgICBBQ1RJVkFURV9BVFRSSUJVVEUoaWF0dHIpCisJICAgIHhtbFNjaGVtYUlsbGVnYWxBdHRyRXJyKEFDVFhUX0NBU1QgdmN0eHQsCisJCVhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xLCBpYXR0ciwgTlVMTCk7CisJICAgIHJldCA9IFhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8xOworICAgICAgICB9CisgICAgfQorICAgIEFDVElWQVRFX0VMRU0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qCisqIENsZWFudXAgY3VycmVudGx5IHVzZWQgYXR0cmlidXRlIGluZm9zLgorKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFDbGVhckF0dHJJbmZvcyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgaW50IGk7CisgICAgeG1sU2NoZW1hQXR0ckluZm9QdHIgYXR0cjsKKworICAgIGlmICh2Y3R4dC0+bmJBdHRySW5mb3MgPT0gMCkKKwlyZXR1cm47CisgICAgZm9yIChpID0gMDsgaSA8IHZjdHh0LT5uYkF0dHJJbmZvczsgaSsrKSB7CisJYXR0ciA9IHZjdHh0LT5hdHRySW5mb3NbaV07CisJaWYgKGF0dHItPmZsYWdzICYgWE1MX1NDSEVNQV9OT0RFX0lORk9fRkxBR19PV05FRF9OQU1FUykgeworCSAgICBpZiAoYXR0ci0+bG9jYWxOYW1lICE9IE5VTEwpCisJCXhtbEZyZWUoKHhtbENoYXIgKikgYXR0ci0+bG9jYWxOYW1lKTsKKwkgICAgaWYgKGF0dHItPm5zTmFtZSAhPSBOVUxMKQorCQl4bWxGcmVlKCh4bWxDaGFyICopIGF0dHItPm5zTmFtZSk7CisJfQorCWlmIChhdHRyLT5mbGFncyAmIFhNTF9TQ0hFTUFfTk9ERV9JTkZPX0ZMQUdfT1dORURfVkFMVUVTKSB7CisJICAgIGlmIChhdHRyLT52YWx1ZSAhPSBOVUxMKQorCQl4bWxGcmVlKCh4bWxDaGFyICopIGF0dHItPnZhbHVlKTsKKwl9CisJaWYgKGF0dHItPnZhbCAhPSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZShhdHRyLT52YWwpOworCSAgICBhdHRyLT52YWwgPSBOVUxMOworCX0KKwltZW1zZXQoYXR0ciwgMCwgc2l6ZW9mKHhtbFNjaGVtYUF0dHJJbmZvKSk7CisgICAgfQorICAgIHZjdHh0LT5uYkF0dHJJbmZvcyA9IDA7Cit9CisKKy8qCisqIDMuNC40IENvbXBsZXggVHlwZSBEZWZpbml0aW9uIFZhbGlkYXRpb24gUnVsZXMKKyogICBFbGVtZW50IExvY2FsbHkgVmFsaWQgKENvbXBsZXggVHlwZSkgKGN2Yy1jb21wbGV4LXR5cGUpCisqIDMuMi40IEF0dHJpYnV0ZSBEZWNsYXJhdGlvbiBWYWxpZGF0aW9uIFJ1bGVzCisqICAgVmFsaWRhdGlvbiBSdWxlOiBBdHRyaWJ1dGUgTG9jYWxseSBWYWxpZCAoY3ZjLWF0dHJpYnV0ZSkKKyogICBBdHRyaWJ1dGUgTG9jYWxseSBWYWxpZCAoVXNlKSAoY3ZjLWF1KQorKgorKiBPbmx5ICJhc3Nlc3NlZCIgYXR0cmlidXRlIGluZm9ybWF0aW9uIGl0ZW1zIHdpbGwgYmUgdmlzaWJsZSB0bworKiBJRENzLiBJLmUuIG5vdCAibGF4IiAod2l0aG91dCBkZWNsYXJhdGlvbikgYW5kICJza2lwIiB3aWxkIGF0dHJpYnV0ZXMuCisqLworc3RhdGljIGludAoreG1sU2NoZW1hVkF0dHJpYnV0ZXNDb21wbGV4KHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkKK3sKKyAgICB4bWxTY2hlbWFUeXBlUHRyIHR5cGUgPSB2Y3R4dC0+aW5vZGUtPnR5cGVEZWY7CisgICAgeG1sU2NoZW1hSXRlbUxpc3RQdHIgYXR0clVzZUxpc3Q7CisgICAgeG1sU2NoZW1hQXR0cmlidXRlVXNlUHRyIGF0dHJVc2UgPSBOVUxMOworICAgIHhtbFNjaGVtYUF0dHJpYnV0ZVB0ciBhdHRyRGVjbCA9IE5VTEw7CisgICAgeG1sU2NoZW1hQXR0ckluZm9QdHIgaWF0dHIsIHRtcGlhdHRyOworICAgIGludCBpLCBqLCBmb3VuZCwgbmJBdHRycywgbmJVc2VzOworICAgIGludCB4cGF0aFJlcyA9IDAsIHJlcywgd2lsZElEcyA9IDAsIGZpeGVkOworICAgIHhtbE5vZGVQdHIgZGVmQXR0ck93bmVyRWxlbSA9IE5VTEw7CisKKyAgICAvKgorICAgICogU1BFQyAoY3ZjLWF0dHJpYnV0ZSkKKyAgICAqICgxKSAiVGhlIGRlY2xhcmF0aW9uIG11c3Qgbm90IGJlIO+/vWFic2VudO+/vSAoc2VlIE1pc3NpbmcKKyAgICAqIFN1Yi1jb21wb25lbnRzICjvv701LjMpIGZvciBob3cgdGhpcyBjYW4gZmFpbCB0byBiZQorICAgICogdGhlIGNhc2UpLiIKKyAgICAqICgyKSAiSXRzIHt0eXBlIGRlZmluaXRpb259IG11c3Qgbm90IGJlIGFic2VudC4iCisgICAgKgorICAgICogTk9URSAoMSkgKyAoMik6IFRoaXMgaXMgbm90IGhhbmRsZWQgaGVyZSwgc2luY2Ugd2UgY3VycmVudGx5IGRvIG5vdAorICAgICogYWxsb3cgdmFsaWRhdGlvbiBhZ2FpbnN0IHNjaGVtYXMgd2hpY2ggaGF2ZSBtaXNzaW5nIHN1Yi1jb21wb25lbnRzLgorICAgICoKKyAgICAqIFNQRUMgKGN2Yy1jb21wbGV4LXR5cGUpCisgICAgKiAoMykgIkZvciBlYWNoIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBpdGVtIGluIHRoZSBlbGVtZW50IGluZm9ybWF0aW9uCisgICAgKiBpdGVtJ3MgW2F0dHJpYnV0ZXNdIGV4Y2VwdGluZyB0aG9zZSB3aG9zZSBbbmFtZXNwYWNlIG5hbWVdIGlzCisgICAgKiBpZGVudGljYWwgdG8gaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UgYW5kIHdob3NlCisgICAgKiBbbG9jYWwgbmFtZV0gaXMgb25lIG9mIHR5cGUsIG5pbCwgc2NoZW1hTG9jYXRpb24gb3IKKyAgICAqIG5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb24sIHRoZSBhcHByb3ByaWF0ZSBjYXNlIGFtb25nIHRoZSBmb2xsb3dpbmcKKyAgICAqIG11c3QgYmUgdHJ1ZToKKyAgICAqCisgICAgKi8KKyAgICBhdHRyVXNlTGlzdCA9ICh4bWxTY2hlbWFJdGVtTGlzdFB0cikgdHlwZS0+YXR0clVzZXM7CisgICAgLyoKKyAgICAqIEBuYkF0dHJzIGlzIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBwcmVzZW50IGluIHRoZSBpbnN0YW5jZS4KKyAgICAqLworICAgIG5iQXR0cnMgPSB2Y3R4dC0+bmJBdHRySW5mb3M7CisgICAgaWYgKGF0dHJVc2VMaXN0ICE9IE5VTEwpCisJbmJVc2VzID0gYXR0clVzZUxpc3QtPm5iSXRlbXM7CisgICAgZWxzZQorCW5iVXNlcyA9IDA7CisgICAgZm9yIChpID0gMDsgaSA8IG5iVXNlczsgaSsrKSB7CisgICAgICAgIGZvdW5kID0gMDsKKwlhdHRyVXNlID0gYXR0clVzZUxpc3QtPml0ZW1zW2ldOworCWF0dHJEZWNsID0gV1hTX0FUVFJVU0VfREVDTChhdHRyVXNlKTsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IG5iQXR0cnM7IGorKykgeworCSAgICBpYXR0ciA9IHZjdHh0LT5hdHRySW5mb3Nbal07CisJICAgIC8qCisJICAgICogU1BFQyAoY3ZjLWNvbXBsZXgtdHlwZSkgKDMpCisJICAgICogU2tpcCBtZXRhIGF0dHJpYnV0ZXMuCisJICAgICovCisJICAgIGlmIChpYXR0ci0+bWV0YVR5cGUpCisJCWNvbnRpbnVlOworCSAgICBpZiAoaWF0dHItPmxvY2FsTmFtZVswXSAhPSBhdHRyRGVjbC0+bmFtZVswXSkKKwkJY29udGludWU7CisJICAgIGlmICgheG1sU3RyRXF1YWwoaWF0dHItPmxvY2FsTmFtZSwgYXR0ckRlY2wtPm5hbWUpKQorCQljb250aW51ZTsKKwkgICAgaWYgKCF4bWxTdHJFcXVhbChpYXR0ci0+bnNOYW1lLCBhdHRyRGVjbC0+dGFyZ2V0TmFtZXNwYWNlKSkKKwkJY29udGludWU7CisJICAgIGZvdW5kID0gMTsKKwkgICAgLyoKKwkgICAgKiBTUEVDIChjdmMtY29tcGxleC10eXBlKQorCSAgICAqICgzLjEpICJJZiB0aGVyZSBpcyBhbW9uZyB0aGUge2F0dHJpYnV0ZSB1c2VzfSBhbiBhdHRyaWJ1dGUKKwkgICAgKiB1c2Ugd2l0aCBhbiB7YXR0cmlidXRlIGRlY2xhcmF0aW9ufSB3aG9zZSB7bmFtZX0gbWF0Y2hlcworCSAgICAqIHRoZSBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gaXRlbSdzIFtsb2NhbCBuYW1lXSBhbmQgd2hvc2UKKwkgICAgKiB7dGFyZ2V0IG5hbWVzcGFjZX0gaXMgaWRlbnRpY2FsIHRvIHRoZSBhdHRyaWJ1dGUgaW5mb3JtYXRpb24KKwkgICAgKiBpdGVtJ3MgW25hbWVzcGFjZSBuYW1lXSAod2hlcmUgYW4g77+9YWJzZW5077+9IHt0YXJnZXQgbmFtZXNwYWNlfQorCSAgICAqIGlzIHRha2VuIHRvIGJlIGlkZW50aWNhbCB0byBhIFtuYW1lc3BhY2UgbmFtZV0gd2l0aCBubyB2YWx1ZSksCisJICAgICogdGhlbiB0aGUgYXR0cmlidXRlIGluZm9ybWF0aW9uIG11c3QgYmUg77+9dmFsaWTvv70gd2l0aCByZXNwZWN0CisJICAgICogdG8gdGhhdCBhdHRyaWJ1dGUgdXNlIGFzIHBlciBBdHRyaWJ1dGUgTG9jYWxseSBWYWxpZCAoVXNlKQorCSAgICAqICjvv70zLjUuNCkuIEluIHRoaXMgY2FzZSB0aGUge2F0dHJpYnV0ZSBkZWNsYXJhdGlvbn0gb2YgdGhhdAorCSAgICAqIGF0dHJpYnV0ZSB1c2UgaXMgdGhlIO+/vWNvbnRleHQtZGV0ZXJtaW5lZCBkZWNsYXJhdGlvbu+/vSBmb3IgdGhlCisJICAgICogYXR0cmlidXRlIGluZm9ybWF0aW9uIGl0ZW0gd2l0aCByZXNwZWN0IHRvIFNjaGVtYS1WYWxpZGl0eQorCSAgICAqIEFzc2Vzc21lbnQgKEF0dHJpYnV0ZSkgKO+/vTMuMi40KSBhbmQKKwkgICAgKiBBc3Nlc3NtZW50IE91dGNvbWUgKEF0dHJpYnV0ZSkgKO+/vTMuMi41KS4KKwkgICAgKi8KKwkgICAgaWF0dHItPnN0YXRlID0gWE1MX1NDSEVNQVNfQVRUUl9BU1NFU1NFRDsKKwkgICAgaWF0dHItPnVzZSA9IGF0dHJVc2U7CisJICAgIC8qCisJICAgICogQ29udGV4dC1kZXRlcm1pbmVkIGRlY2xhcmF0aW9uLgorCSAgICAqLworCSAgICBpYXR0ci0+ZGVjbCA9IGF0dHJEZWNsOworCSAgICBpYXR0ci0+dHlwZURlZiA9IGF0dHJEZWNsLT5zdWJ0eXBlczsKKwkgICAgYnJlYWs7CisJfQorCisJaWYgKGZvdW5kKQorCSAgICBjb250aW51ZTsKKworCWlmIChhdHRyVXNlLT5vY2N1cnMgPT0gWE1MX1NDSEVNQVNfQVRUUl9VU0VfUkVRVUlSRUQpIHsKKwkgICAgLyoKKwkgICAgKiBIYW5kbGUgbm9uLWV4aXN0ZW50LCByZXF1aXJlZCBhdHRyaWJ1dGVzLgorCSAgICAqCisJICAgICogU1BFQyAoY3ZjLWNvbXBsZXgtdHlwZSkKKwkgICAgKiAoNCkgIlRoZSB7YXR0cmlidXRlIGRlY2xhcmF0aW9ufSBvZiBlYWNoIGF0dHJpYnV0ZSB1c2UgaW4KKwkgICAgKiB0aGUge2F0dHJpYnV0ZSB1c2VzfSB3aG9zZSB7cmVxdWlyZWR9IGlzIHRydWUgbWF0Y2hlcyBvbmUKKwkgICAgKiBvZiB0aGUgYXR0cmlidXRlIGluZm9ybWF0aW9uIGl0ZW1zIGluIHRoZSBlbGVtZW50IGluZm9ybWF0aW9uCisJICAgICogaXRlbSdzIFthdHRyaWJ1dGVzXSBhcyBwZXIgY2xhdXNlIDMuMSBhYm92ZS4iCisJICAgICovCisJICAgIHRtcGlhdHRyID0geG1sU2NoZW1hR2V0RnJlc2hBdHRySW5mbyh2Y3R4dCk7CisJICAgIGlmICh0bXBpYXR0ciA9PSBOVUxMKSB7CisJCVZFUlJPUl9JTlQoCisJCSAgICAieG1sU2NoZW1hVkF0dHJpYnV0ZXNDb21wbGV4IiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYUdldEZyZXNoQXR0ckluZm8oKSIpOworCQlyZXR1cm4gKC0xKTsKKwkgICAgfQorCSAgICB0bXBpYXR0ci0+c3RhdGUgPSBYTUxfU0NIRU1BU19BVFRSX0VSUl9NSVNTSU5HOworCSAgICB0bXBpYXR0ci0+dXNlID0gYXR0clVzZTsKKwkgICAgdG1waWF0dHItPmRlY2wgPSBhdHRyRGVjbDsKKwl9IGVsc2UgaWYgKChhdHRyVXNlLT5vY2N1cnMgPT0gWE1MX1NDSEVNQVNfQVRUUl9VU0VfT1BUSU9OQUwpICYmCisJICAgICgoYXR0clVzZS0+ZGVmVmFsdWUgIT0gTlVMTCkgfHwKKwkgICAgIChhdHRyRGVjbC0+ZGVmVmFsdWUgIT0gTlVMTCkpKSB7CisJICAgIC8qCisJICAgICogSGFuZGxlIG5vbi1leGlzdGVudCwgb3B0aW9uYWwsIGRlZmF1bHQvZml4ZWQgYXR0cmlidXRlcy4KKwkgICAgKi8KKwkgICAgdG1waWF0dHIgPSB4bWxTY2hlbWFHZXRGcmVzaEF0dHJJbmZvKHZjdHh0KTsKKwkgICAgaWYgKHRtcGlhdHRyID09IE5VTEwpIHsKKwkJVkVSUk9SX0lOVCgKKwkJICAgICJ4bWxTY2hlbWFWQXR0cmlidXRlc0NvbXBsZXgiLAorCQkgICAgImNhbGxpbmcgeG1sU2NoZW1hR2V0RnJlc2hBdHRySW5mbygpIik7CisJCXJldHVybiAoLTEpOworCSAgICB9CisJICAgIHRtcGlhdHRyLT5zdGF0ZSA9IFhNTF9TQ0hFTUFTX0FUVFJfREVGQVVMVDsKKwkgICAgdG1waWF0dHItPnVzZSA9IGF0dHJVc2U7CisJICAgIHRtcGlhdHRyLT5kZWNsID0gYXR0ckRlY2w7CisJICAgIHRtcGlhdHRyLT50eXBlRGVmID0gYXR0ckRlY2wtPnN1YnR5cGVzOworCSAgICB0bXBpYXR0ci0+bG9jYWxOYW1lID0gYXR0ckRlY2wtPm5hbWU7CisJICAgIHRtcGlhdHRyLT5uc05hbWUgPSBhdHRyRGVjbC0+dGFyZ2V0TmFtZXNwYWNlOworCX0KKyAgICB9CisKKyAgICBpZiAodmN0eHQtPm5iQXR0ckluZm9zID09IDApCisJcmV0dXJuICgwKTsKKyAgICAvKgorICAgICogVmFsaWRhdGUgYWdhaW5zdCB0aGUgd2lsZGNhcmQuCisgICAgKi8KKyAgICBpZiAodHlwZS0+YXR0cmlidXRlV2lsZGNhcmQgIT0gTlVMTCkgeworCS8qCisJKiBTUEVDIChjdmMtY29tcGxleC10eXBlKQorCSogKDMuMi4xKSAiVGhlcmUgbXVzdCBiZSBhbiB7YXR0cmlidXRlIHdpbGRjYXJkfS4iCisJKi8KKwlmb3IgKGkgPSAwOyBpIDwgbmJBdHRyczsgaSsrKSB7CisJICAgIGlhdHRyID0gdmN0eHQtPmF0dHJJbmZvc1tpXTsKKwkgICAgLyoKKwkgICAgKiBTUEVDIChjdmMtY29tcGxleC10eXBlKSAoMykKKwkgICAgKiBTa2lwIG1ldGEgYXR0cmlidXRlcy4KKwkgICAgKi8KKwkgICAgaWYgKGlhdHRyLT5zdGF0ZSAhPSBYTUxfU0NIRU1BU19BVFRSX1VOS05PV04pCisJCWNvbnRpbnVlOworCSAgICAvKgorCSAgICAqIFNQRUMgKGN2Yy1jb21wbGV4LXR5cGUpCisJICAgICogKDMuMi4yKSAiVGhlIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBpdGVtIG11c3QgYmUg77+9dmFsaWTvv70gd2l0aAorCSAgICAqIHJlc3BlY3QgdG8gaXQgYXMgZGVmaW5lZCBpbiBJdGVtIFZhbGlkIChXaWxkY2FyZCkgKO+/vTMuMTAuNCkuIgorCSAgICAqCisJICAgICogU1BFQyBJdGVtIFZhbGlkIChXaWxkY2FyZCkgKGN2Yy13aWxkY2FyZCkKKwkgICAgKiAiLi4uIGl0cyBbbmFtZXNwYWNlIG5hbWVdIG11c3QgYmUg77+9dmFsaWTvv70gd2l0aCByZXNwZWN0IHRvCisJICAgICogdGhlIHdpbGRjYXJkIGNvbnN0cmFpbnQsIGFzIGRlZmluZWQgaW4gV2lsZGNhcmQgYWxsb3dzCisJICAgICogTmFtZXNwYWNlIE5hbWUgKO+/vTMuMTAuNCkuIgorCSAgICAqLworCSAgICBpZiAoeG1sU2NoZW1hQ2hlY2tDVkNXaWxkY2FyZE5hbWVzcGFjZSh0eXBlLT5hdHRyaWJ1dGVXaWxkY2FyZCwKKwkJICAgIGlhdHRyLT5uc05hbWUpID09IDApIHsKKwkJLyoKKwkJKiBIYW5kbGUgcHJvY2Vzc0NvbnRlbnRzLgorCQkqCisJCSogU1BFQyAoY3ZjLXdpbGRjYXJkKToKKwkJKiBwcm9jZXNzQ29udGVudHMgfCBjb250ZXh0LWRldGVybWluZWQgZGVjbGFyYXRpb246CisJCSogInN0cmljdCIgICAgICAgICAgIm11c3RGaW5kIgorCQkqICJsYXgiICAgICAgICAgICAgICJub25lIgorCQkqICJza2lwIiAgICAgICAgICAgICJza2lwIgorCQkqLworCQlpZiAodHlwZS0+YXR0cmlidXRlV2lsZGNhcmQtPnByb2Nlc3NDb250ZW50cyA9PQorCQkgICAgWE1MX1NDSEVNQVNfQU5ZX1NLSVApIHsKKwkJICAgICAvKgorCQkgICAgKiBjb250ZXh0LWRldGVybWluZWQgZGVjbGFyYXRpb24gPSAic2tpcCIKKwkJICAgICoKKwkJICAgICogU1BFQyBQU1ZJIEFzc2Vzc21lbnQgT3V0Y29tZSAoQXR0cmlidXRlKQorCQkgICAgKiBbdmFsaWRpdHldID0gIm5vdEtub3duIgorCQkgICAgKiBbdmFsaWRhdGlvbiBhdHRlbXB0ZWRdID0gIm5vbmUiCisJCSAgICAqLworCQkgICAgaWF0dHItPnN0YXRlID0gWE1MX1NDSEVNQVNfQVRUUl9XSUxEX1NLSVA7CisJCSAgICBjb250aW51ZTsKKwkJfQorCQkvKgorCQkqIEZpbmQgYW4gYXR0cmlidXRlIGRlY2xhcmF0aW9uLgorCQkqLworCQlpYXR0ci0+ZGVjbCA9IHhtbFNjaGVtYUdldEF0dHJpYnV0ZURlY2wodmN0eHQtPnNjaGVtYSwKKwkJICAgIGlhdHRyLT5sb2NhbE5hbWUsIGlhdHRyLT5uc05hbWUpOworCQlpZiAoaWF0dHItPmRlY2wgIT0gTlVMTCkgeworCQkgICAgaWF0dHItPnN0YXRlID0gWE1MX1NDSEVNQVNfQVRUUl9BU1NFU1NFRDsKKwkJICAgIC8qCisJCSAgICAqIFNQRUMgKGN2Yy1jb21wbGV4LXR5cGUpCisJCSAgICAqICg1KSAiTGV0IFtEZWZpbml0aW9uOl0gIHRoZSB3aWxkIElEcyBiZSB0aGUgc2V0IG9mCisJCSAgICAqIGFsbCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gaXRlbSB0byB3aGljaCBjbGF1c2UgMy4yCisJCSAgICAqIGFwcGxpZWQgYW5kIHdob3NlIO+/vXZhbGlkYXRpb27vv70gcmVzdWx0ZWQgaW4gYQorCQkgICAgKiDvv71jb250ZXh0LWRldGVybWluZWQgZGVjbGFyYXRpb27vv70gb2YgbXVzdEZpbmQgb3Igbm8KKwkJICAgICog77+9Y29udGV4dC1kZXRlcm1pbmVkIGRlY2xhcmF0aW9u77+9IGF0IGFsbCwgYW5kIHdob3NlCisJCSAgICAqIFtsb2NhbCBuYW1lXSBhbmQgW25hbWVzcGFjZSBuYW1lXSByZXNvbHZlIChhcworCQkgICAgKiBkZWZpbmVkIGJ5IFFOYW1lIHJlc29sdXRpb24gKEluc3RhbmNlKSAo77+9My4xNS40KSkgdG8KKwkJICAgICogYW4gYXR0cmlidXRlIGRlY2xhcmF0aW9uIHdob3NlIHt0eXBlIGRlZmluaXRpb259IGlzCisJCSAgICAqIG9yIGlzIGRlcml2ZWQgZnJvbSBJRC4gVGhlbiBhbGwgb2YgdGhlIGZvbGxvd2luZworCQkgICAgKiBtdXN0IGJlIHRydWU6IgorCQkgICAgKi8KKwkJICAgIGlhdHRyLT50eXBlRGVmID0gV1hTX0FUVFJfVFlQRURFRihpYXR0ci0+ZGVjbCk7CisJCSAgICBpZiAoeG1sU2NoZW1hSXNEZXJpdmVkRnJvbUJ1aWx0SW5UeXBlKAorCQkJaWF0dHItPnR5cGVEZWYsIFhNTF9TQ0hFTUFTX0lEKSkgeworCQkJLyoKKwkJCSogU1BFQyAoNS4xKSAiVGhlcmUgbXVzdCBiZSBubyBtb3JlIHRoYW4gb25lCisJCQkqIGl0ZW0gaW4g77+9d2lsZCBJRHPvv70uIgorCQkJKi8KKwkJCWlmICh3aWxkSURzICE9IDApIHsKKwkJCSAgICAvKiBWQUwgVE9ETyAqLworCQkJICAgIGlhdHRyLT5zdGF0ZSA9IFhNTF9TQ0hFTUFTX0FUVFJfRVJSX1dJTERfRFVQTElDQVRFX0lEOworCQkJICAgIFRPRE8KKwkJCSAgICBjb250aW51ZTsKKwkJCX0KKwkJCXdpbGRJRHMrKzsKKwkJCS8qCisJCQkqIFNQRUMgKGN2Yy1jb21wbGV4LXR5cGUpCisJCQkqICg1LjIpICJJZiDvv713aWxkIElEc++/vSBpcyBub24tZW1wdHksIHRoZXJlIG11c3Qgbm90CisJCQkqIGJlIGFueSBhdHRyaWJ1dGUgdXNlcyBhbW9uZyB0aGUge2F0dHJpYnV0ZSB1c2VzfQorCQkJKiB3aG9zZSB7YXR0cmlidXRlIGRlY2xhcmF0aW9ufSdzIHt0eXBlIGRlZmluaXRpb259CisJCQkqIGlzIG9yIGlzIGRlcml2ZWQgZnJvbSBJRC4iCisJCQkqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJVc2VMaXN0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgYXR0clVzZUxpc3QtPm5iSXRlbXM7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeG1sU2NoZW1hSXNEZXJpdmVkRnJvbUJ1aWx0SW5UeXBlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1hTX0FUVFJVU0VfVFlQRURFRihhdHRyVXNlTGlzdC0+aXRlbXNbal0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfSUQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVUkdFTlQgVkFMIFRPRE86IGltcGxlbWVudCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlhdHRyLT5zdGF0ZSA9IFhNTF9TQ0hFTUFTX0FUVFJfRVJSX1dJTERfQU5EX1VTRV9JRDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPRE8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgfQorCQl9IGVsc2UgaWYgKHR5cGUtPmF0dHJpYnV0ZVdpbGRjYXJkLT5wcm9jZXNzQ29udGVudHMgPT0KKwkJICAgIFhNTF9TQ0hFTUFTX0FOWV9MQVgpIHsKKwkJICAgIGlhdHRyLT5zdGF0ZSA9IFhNTF9TQ0hFTUFTX0FUVFJfV0lMRF9MQVhfTk9fREVDTDsKKwkJICAgIC8qCisJCSAgICAqIFNQRUMgUFNWSSBBc3Nlc3NtZW50IE91dGNvbWUgKEF0dHJpYnV0ZSkKKwkJICAgICogW3ZhbGlkaXR5XSA9ICJub3RLbm93biIKKwkJICAgICogW3ZhbGlkYXRpb24gYXR0ZW1wdGVkXSA9ICJub25lIgorCQkgICAgKi8KKwkJfSBlbHNlIHsKKwkJICAgIGlhdHRyLT5zdGF0ZSA9IFhNTF9TQ0hFTUFTX0FUVFJfRVJSX1dJTERfU1RSSUNUX05PX0RFQ0w7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisKKyAgICBpZiAodmN0eHQtPm5iQXR0ckluZm9zID09IDApCisJcmV0dXJuICgwKTsKKworICAgIC8qCisgICAgKiBHZXQgdGhlIG93bmVyIGVsZW1lbnQ7IG5lZWRlZCBmb3IgY3JlYXRpb24gb2YgZGVmYXVsdCBhdHRyaWJ1dGVzLgorICAgICogVGhpcyBmaXhlcyBidWcgIzM0MTMzNywgcmVwb3J0ZWQgYnkgRGF2aWQgR3JvaG1hbm4uCisgICAgKi8KKyAgICBpZiAodmN0eHQtPm9wdGlvbnMgJiBYTUxfU0NIRU1BX1ZBTF9WQ19JX0NSRUFURSkgeworCXhtbFNjaGVtYU5vZGVJbmZvUHRyIGllbGVtID0gdmN0eHQtPmVsZW1JbmZvc1t2Y3R4dC0+ZGVwdGhdOworCWlmIChpZWxlbSAmJiBpZWxlbS0+bm9kZSAmJiBpZWxlbS0+bm9kZS0+ZG9jKQorCSAgICBkZWZBdHRyT3duZXJFbGVtID0gaWVsZW0tPm5vZGU7CisgICAgfQorICAgIC8qCisgICAgKiBWYWxpZGF0ZSB2YWx1ZXMsIGNyZWF0ZSBkZWZhdWx0IGF0dHJpYnV0ZXMsIGV2YWx1YXRlIElEQ3MuCisgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgdmN0eHQtPm5iQXR0ckluZm9zOyBpKyspIHsKKwlpYXR0ciA9IHZjdHh0LT5hdHRySW5mb3NbaV07CisJLyoKKwkqIFZBTCBUT0RPOiBOb3RlIHRoYXQgd2Ugd29uJ3QgdHJ5IHRvIHJlc29sdmUgSURDcyB0bworCSogImxheCIgYW5kICJza2lwIiB2YWxpZGF0ZWQgYXR0cmlidXRlcy4gQ2hlY2sgd2hhdCB0bworCSogZG8gaW4gdGhpcyBjYXNlLgorCSovCisJaWYgKChpYXR0ci0+c3RhdGUgIT0gWE1MX1NDSEVNQVNfQVRUUl9BU1NFU1NFRCkgJiYKKwkgICAgKGlhdHRyLT5zdGF0ZSAhPSBYTUxfU0NIRU1BU19BVFRSX0RFRkFVTFQpKQorCSAgICBjb250aW51ZTsKKwkvKgorCSogVkFMIFRPRE86IFdoYXQgdG8gZG8gaWYgdGhlIHR5cGUgZGVmaW5pdGlvbiBpcyBtaXNzaW5nPworCSovCisJaWYgKGlhdHRyLT50eXBlRGVmID09IE5VTEwpIHsKKwkgICAgaWF0dHItPnN0YXRlID0gWE1MX1NDSEVNQVNfQVRUUl9FUlJfTk9fVFlQRTsKKwkgICAgY29udGludWU7CisJfQorCisJQUNUSVZBVEVfQVRUUklCVVRFKGlhdHRyKTsKKwlmaXhlZCA9IDA7CisJeHBhdGhSZXMgPSAwOworCisJaWYgKHZjdHh0LT54cGF0aFN0YXRlcyAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICogRXZhbHVhdGUgSURDcy4KKwkgICAgKi8KKwkgICAgeHBhdGhSZXMgPSB4bWxTY2hlbWFYUGF0aEV2YWx1YXRlKHZjdHh0LAorCQlYTUxfQVRUUklCVVRFX05PREUpOworCSAgICBpZiAoeHBhdGhSZXMgPT0gLTEpIHsKKwkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVkF0dHJpYnV0ZXNDb21wbGV4IiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYVhQYXRoRXZhbHVhdGUoKSIpOworCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICB9CisJfQorCisJaWYgKGlhdHRyLT5zdGF0ZSA9PSBYTUxfU0NIRU1BU19BVFRSX0RFRkFVTFQpIHsKKwkgICAgLyoKKwkgICAgKiBEZWZhdWx0L2ZpeGVkIGF0dHJpYnV0ZXMuCisJICAgICogV2UgbmVlZCB0aGUgdmFsdWUgb25seSBpZiB3ZSBuZWVkIHRvIHJlc29sdmUgSURDcyBvcgorCSAgICAqIHdpbGwgY3JlYXRlIGRlZmF1bHQgYXR0cmlidXRlcy4KKwkgICAgKi8KKwkgICAgaWYgKCh4cGF0aFJlcykgfHwgKGRlZkF0dHJPd25lckVsZW0pKSB7CisJCWlmIChpYXR0ci0+dXNlLT5kZWZWYWx1ZSAhPSBOVUxMKSB7CisJCSAgICBpYXR0ci0+dmFsdWUgPSAoeG1sQ2hhciAqKSBpYXR0ci0+dXNlLT5kZWZWYWx1ZTsKKwkJICAgIGlhdHRyLT52YWwgPSBpYXR0ci0+dXNlLT5kZWZWYWw7CisJCX0gZWxzZSB7CisJCSAgICBpYXR0ci0+dmFsdWUgPSAoeG1sQ2hhciAqKSBpYXR0ci0+ZGVjbC0+ZGVmVmFsdWU7CisJCSAgICBpYXR0ci0+dmFsID0gaWF0dHItPmRlY2wtPmRlZlZhbDsKKwkJfQorCQkvKgorCQkqIElEQ3Mgd2lsbCBjb25zdW1lIHRoZSBwcmVjb21wdXRlZCBkZWZhdWx0IHZhbHVlLAorCQkqIHNvIHdlIG5lZWQgdG8gY2xvbmUgaXQuCisJCSovCisJCWlmIChpYXR0ci0+dmFsID09IE5VTEwpIHsKKwkJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVZBdHRyaWJ1dGVzQ29tcGxleCIsCisJCQkiZGVmYXVsdC9maXhlZCB2YWx1ZSBvbiBhbiBhdHRyaWJ1dGUgdXNlIHdhcyAiCisJCQkibm90IHByZWNvbXB1dGVkIik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJCWlhdHRyLT52YWwgPSB4bWxTY2hlbWFDb3B5VmFsdWUoaWF0dHItPnZhbCk7CisJCWlmIChpYXR0ci0+dmFsID09IE5VTEwpIHsKKwkJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVZBdHRyaWJ1dGVzQ29tcGxleCIsCisJCQkiY2FsbGluZyB4bWxTY2hlbWFDb3B5VmFsdWUoKSIpOworCQkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJfQorCSAgICB9CisJICAgIC8qCisJICAgICogUFNWSTogQWRkIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCBlbGVtZW50LgorCSAgICAqIFZBTCBUT0RPOiBTaG91bGQgd2UgdXNlIHRoZSAqbm9ybWFsaXplZCogdmFsdWU/IFRoaXMgY3VycmVudGx5CisJICAgICogICB1c2VzIHRoZSAqaW5pdGlhbCogdmFsdWUuCisJICAgICovCisKKwkgICAgaWYgKGRlZkF0dHJPd25lckVsZW0pIHsKKwkJeG1sQ2hhciAqbm9ybVZhbHVlOworCQljb25zdCB4bWxDaGFyICp2YWx1ZTsKKworCQl2YWx1ZSA9IGlhdHRyLT52YWx1ZTsKKwkJLyoKKwkJKiBOb3JtYWxpemUgdGhlIHZhbHVlLgorCQkqLworCQlub3JtVmFsdWUgPSB4bWxTY2hlbWFOb3JtYWxpemVWYWx1ZShpYXR0ci0+dHlwZURlZiwKKwkJICAgIGlhdHRyLT52YWx1ZSk7CisJCWlmIChub3JtVmFsdWUgIT0gTlVMTCkKKwkJICAgIHZhbHVlID0gQkFEX0NBU1Qgbm9ybVZhbHVlOworCisJCWlmIChpYXR0ci0+bnNOYW1lID09IE5VTEwpIHsKKwkJICAgIGlmICh4bWxOZXdQcm9wKGRlZkF0dHJPd25lckVsZW0sCisJCQlpYXR0ci0+bG9jYWxOYW1lLCB2YWx1ZSkgPT0gTlVMTCkgeworCQkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVkF0dHJpYnV0ZXNDb21wbGV4IiwKKwkJCSAgICAiY2FsbGxpbmcgeG1sTmV3UHJvcCgpIik7CisJCQlpZiAobm9ybVZhbHVlICE9IE5VTEwpCisJCQkgICAgeG1sRnJlZShub3JtVmFsdWUpOworCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIHhtbE5zUHRyIG5zOworCisJCSAgICBucyA9IHhtbFNlYXJjaE5zQnlIcmVmKGRlZkF0dHJPd25lckVsZW0tPmRvYywKKwkJCWRlZkF0dHJPd25lckVsZW0sIGlhdHRyLT5uc05hbWUpOworCQkgICAgaWYgKG5zID09IE5VTEwpIHsKKwkJCXhtbENoYXIgcHJlZml4WzEyXTsKKwkJCWludCBjb3VudGVyID0gMDsKKworCQkJLyoKKwkJCSogQ3JlYXRlIGEgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIG9uIHRoZSB2YWxpZGF0aW9uCisJCQkqIHJvb3Qgbm9kZSBpZiBubyBuYW1lc3BhY2UgZGVjbGFyYXRpb24gaXMgaW4gc2NvcGUuCisJCQkqLworCQkJZG8geworCQkJICAgIHNucHJpbnRmKChjaGFyICopIHByZWZpeCwgMTIsICJwJWQiLCBjb3VudGVyKyspOworCQkJICAgIG5zID0geG1sU2VhcmNoTnMoZGVmQXR0ck93bmVyRWxlbS0+ZG9jLAorCQkJCWRlZkF0dHJPd25lckVsZW0sIEJBRF9DQVNUIHByZWZpeCk7CisJCQkgICAgaWYgKGNvdW50ZXIgPiAxMDAwKSB7CisJCQkJVkVSUk9SX0lOVCgKKwkJCQkgICAgInhtbFNjaGVtYVZBdHRyaWJ1dGVzQ29tcGxleCIsCisJCQkJICAgICJjb3VsZCBub3QgY29tcHV0ZSBhIG5zIHByZWZpeCBmb3IgYSAiCisJCQkJICAgICJkZWZhdWx0L2ZpeGVkIGF0dHJpYnV0ZSIpOworCQkJCWlmIChub3JtVmFsdWUgIT0gTlVMTCkKKwkJCQkgICAgeG1sRnJlZShub3JtVmFsdWUpOworCQkJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCQkgICAgfQorCQkJfSB3aGlsZSAobnMgIT0gTlVMTCk7CisJCQlucyA9IHhtbE5ld05zKHZjdHh0LT52YWxpZGF0aW9uUm9vdCwKKwkJCSAgICBpYXR0ci0+bnNOYW1lLCBCQURfQ0FTVCBwcmVmaXgpOworCQkgICAgfQorCQkgICAgLyoKKwkJICAgICogVE9ETzoKKwkJICAgICogaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXhtbC1zY2hlbWEtY29tbWVudHMvMjAwNUp1bFNlcC8wNDA2Lmh0bWwKKwkJICAgICogSWYgd2UgaGF2ZSBRTmFtZXM6IGRvIHdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlJ3MgYQorCQkgICAgKiBwcmVmaXggZGVmaW5lZCBmb3IgdGhlIFFOYW1lPworCQkgICAgKi8KKwkJICAgIHhtbE5ld05zUHJvcChkZWZBdHRyT3duZXJFbGVtLCBucywgaWF0dHItPmxvY2FsTmFtZSwgdmFsdWUpOworCQl9CisJCWlmIChub3JtVmFsdWUgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUobm9ybVZhbHVlKTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIEdvIGRpcmVjdGx5IHRvIElEQyBldmFsdWF0aW9uLgorCSAgICAqLworCSAgICBnb3RvIGV2YWxfaWRjczsKKwl9CisJLyoKKwkqIFZhbGlkYXRlIHRoZSB2YWx1ZS4KKwkqLworCWlmICh2Y3R4dC0+dmFsdWUgIT0gTlVMTCkgeworCSAgICAvKgorCSAgICAqIEZyZWUgbGFzdCBjb21wdXRlZCB2YWx1ZTsganVzdCBmb3Igc2FmZXR5IHJlYXNvbnMuCisJICAgICovCisJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZSh2Y3R4dC0+dmFsdWUpOworCSAgICB2Y3R4dC0+dmFsdWUgPSBOVUxMOworCX0KKwkvKgorCSogTm90ZSB0aGF0IHRoZSBhdHRyaWJ1dGUgKnVzZSogY2FuIGJlIHVuYXZhaWxhYmxlLCBpZgorCSogdGhlIGF0dHJpYnV0ZSB3YXMgYSB3aWxkIGF0dHJpYnV0ZS4KKwkqLworCWlmICgoaWF0dHItPmRlY2wtPmZsYWdzICYgWE1MX1NDSEVNQVNfQVRUUl9GSVhFRCkgfHwKKwkgICAgKChpYXR0ci0+dXNlICE9IE5VTEwpICYmCisJICAgICAoaWF0dHItPnVzZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19BVFRSX0ZJWEVEKSkpCisJICAgIGZpeGVkID0gMTsKKwllbHNlCisJICAgIGZpeGVkID0gMDsKKwkvKgorCSogU1BFQyAoY3ZjLWF0dHJpYnV0ZSkKKwkqICgzKSAiVGhlIGl0ZW0ncyDvv71ub3JtYWxpemVkIHZhbHVl77+9IG11c3QgYmUgbG9jYWxseSDvv712YWxpZO+/vQorCSogd2l0aCByZXNwZWN0IHRvIHRoYXQge3R5cGUgZGVmaW5pdGlvbn0gYXMgcGVyCisJKiBTdHJpbmcgVmFsaWQgKO+/vTMuMTQuNCkuIgorCSoKKwkqIFZBTCBUT0RPOiBEbyB3ZSBhbHJlYWR5IGhhdmUgdGhlCisJKiAibm9ybWFsaXplZCBhdHRyaWJ1dGUgdmFsdWUiIGhlcmU/CisJKi8KKwlpZiAoeHBhdGhSZXMgfHwgZml4ZWQpIHsKKwkgICAgaWF0dHItPmZsYWdzIHw9IFhNTF9TQ0hFTUFfTk9ERV9JTkZPX1ZBTFVFX05FRURFRDsKKwkgICAgLyoKKwkgICAgKiBSZXF1ZXN0IGEgY29tcHV0ZWQgdmFsdWUuCisJICAgICovCisJICAgIHJlcyA9IHhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUoCisJCUFDVFhUX0NBU1QgdmN0eHQsCisJCWlhdHRyLT5ub2RlLCBpYXR0ci0+dHlwZURlZiwgaWF0dHItPnZhbHVlLCAmKGlhdHRyLT52YWwpLAorCQkxLCAxLCAwKTsKKwl9IGVsc2UgeworCSAgICByZXMgPSB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKAorCQlBQ1RYVF9DQVNUIHZjdHh0LAorCQlpYXR0ci0+bm9kZSwgaWF0dHItPnR5cGVEZWYsIGlhdHRyLT52YWx1ZSwgTlVMTCwKKwkJMSwgMCwgMCk7CisJfQorCisJaWYgKHJlcyAhPSAwKSB7CisJICAgIGlmIChyZXMgPT0gLTEpIHsKKwkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVkF0dHJpYnV0ZXNDb21wbGV4IiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYVN0cmVhbVZhbGlkYXRlU2ltcGxlVHlwZVZhbHVlKCkiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCSAgICBpYXR0ci0+c3RhdGUgPSBYTUxfU0NIRU1BU19BVFRSX0lOVkFMSURfVkFMVUU7CisJICAgIC8qCisJICAgICogU1BFQyBQU1ZJIEFzc2Vzc21lbnQgT3V0Y29tZSAoQXR0cmlidXRlKQorCSAgICAqIFt2YWxpZGl0eV0gPSAiaW52YWxpZCIKKwkgICAgKi8KKwkgICAgZ290byBldmFsX2lkY3M7CisJfQorCisJaWYgKGZpeGVkKSB7CisJICAgIC8qCisJICAgICogU1BFQyBBdHRyaWJ1dGUgTG9jYWxseSBWYWxpZCAoVXNlKSAoY3ZjLWF1KQorCSAgICAqICJGb3IgYW4gYXR0cmlidXRlIGluZm9ybWF0aW9uIGl0ZW0gdG8gYmXvv712YWxpZO+/vQorCSAgICAqIHdpdGggcmVzcGVjdCB0byBhbiBhdHRyaWJ1dGUgdXNlIGl0cyAqbm9ybWFsaXplZCoKKwkgICAgKiB2YWx1Ze+/vSBtdXN0IG1hdGNoIHRoZSAqY2Fub25pY2FsKiBsZXhpY2FsCisJICAgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIGF0dHJpYnV0ZSB1c2UncyB7dmFsdWUKKwkgICAgKiBjb25zdHJhaW50fXZhbHVlLCBpZiBpdCBpcyBwcmVzZW50IGFuZCBmaXhlZC4iCisJICAgICoKKwkgICAgKiBWQUwgVE9ETzogVGhlIHJlcXVpcmVtZW50IGZvciB0aGUgKmNhbm9uaWNhbCogdmFsdWUKKwkgICAgKiB3aWxsIGJlIHJlbW92ZWQgaW4gWE1MIFNjaGVtYSAxLjEuCisJICAgICovCisJICAgIC8qCisJICAgICogU1BFQyBBdHRyaWJ1dGUgTG9jYWxseSBWYWxpZCAoY3ZjLWF0dHJpYnV0ZSkKKwkgICAgKiAoNCkgIlRoZSBpdGVtJ3MgKmFjdHVhbCogdmFsdWXvv70gbXVzdCBtYXRjaCB0aGUgKnZhbHVlKiBvZgorCSAgICAqIHRoZSB7dmFsdWUgY29uc3RyYWludH0sIGlmIGl0IGlzIHByZXNlbnQgYW5kIGZpeGVkLiIKKwkgICAgKi8KKwkgICAgaWYgKGlhdHRyLT52YWwgPT0gTlVMTCkgeworCQkvKiBWQUwgVE9ETzogQSB2YWx1ZSB3YXMgbm90IHByZWNvbXB1dGVkLiAqLworCQlUT0RPCisJCWdvdG8gZXZhbF9pZGNzOworCSAgICB9CisJICAgIGlmICgoaWF0dHItPnVzZSAhPSBOVUxMKSAmJgorCQkoaWF0dHItPnVzZS0+ZGVmVmFsdWUgIT0gTlVMTCkpIHsKKwkJaWYgKGlhdHRyLT51c2UtPmRlZlZhbCA9PSBOVUxMKSB7CisJCSAgICAvKiBWQUwgVE9ETzogQSBkZWZhdWx0IHZhbHVlIHdhcyBub3QgcHJlY29tcHV0ZWQuICovCisJCSAgICBUT0RPCisJCSAgICBnb3RvIGV2YWxfaWRjczsKKwkJfQorCQlpYXR0ci0+dmNWYWx1ZSA9IGlhdHRyLT51c2UtPmRlZlZhbHVlOworCQkvKgorCQlpZiAoeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwKGF0dHItPnZhbCwKKwkJICAgICh4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlKSB3cywKKwkJICAgIGF0dHItPnVzZS0+ZGVmVmFsLAorCQkgICAgKHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUpIHdzKSAhPSAwKSB7CisJCSovCisJCWlmICghIHhtbFNjaGVtYUFyZVZhbHVlc0VxdWFsKGlhdHRyLT52YWwsIGlhdHRyLT51c2UtPmRlZlZhbCkpCisJCSAgICBpYXR0ci0+c3RhdGUgPSBYTUxfU0NIRU1BU19BVFRSX0VSUl9GSVhFRF9WQUxVRTsKKwkgICAgfSBlbHNlIHsKKwkJaWYgKGlhdHRyLT5kZWNsLT5kZWZWYWwgPT0gTlVMTCkgeworCQkgICAgLyogVkFMIFRPRE86IEEgZGVmYXVsdCB2YWx1ZSB3YXMgbm90IHByZWNvbXB1dGVkLiAqLworCQkgICAgVE9ETworCQkgICAgZ290byBldmFsX2lkY3M7CisJCX0KKwkJaWF0dHItPnZjVmFsdWUgPSBpYXR0ci0+ZGVjbC0+ZGVmVmFsdWU7CisJCS8qCisJCWlmICh4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3AoYXR0ci0+dmFsLAorCQkgICAgKHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUpIHdzLAorCQkgICAgYXR0ckRlY2wtPmRlZlZhbCwKKwkJICAgICh4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlKSB3cykgIT0gMCkgeworCQkqLworCQlpZiAoISB4bWxTY2hlbWFBcmVWYWx1ZXNFcXVhbChpYXR0ci0+dmFsLCBpYXR0ci0+ZGVjbC0+ZGVmVmFsKSkKKwkJICAgIGlhdHRyLT5zdGF0ZSA9IFhNTF9TQ0hFTUFTX0FUVFJfRVJSX0ZJWEVEX1ZBTFVFOworCSAgICB9CisJICAgIC8qCisJICAgICogW3ZhbGlkaXR5XSA9ICJ2YWxpZCIKKwkgICAgKi8KKwl9CitldmFsX2lkY3M6CisJLyoKKwkqIEV2YWx1YXRlIElEQ3MuCisJKi8KKwlpZiAoeHBhdGhSZXMpIHsKKwkgICAgaWYgKHhtbFNjaGVtYVhQYXRoUHJvY2Vzc0hpc3RvcnkodmN0eHQsCisJCXZjdHh0LT5kZXB0aCArMSkgPT0gLTEpIHsKKwkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVkF0dHJpYnV0ZXNDb21wbGV4IiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYVhQYXRoRXZhbHVhdGUoKSIpOworCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICB9CisJfSBlbHNlIGlmICh2Y3R4dC0+eHBhdGhTdGF0ZXMgIT0gTlVMTCkKKwkgICAgeG1sU2NoZW1hWFBhdGhQb3AodmN0eHQpOworICAgIH0KKworICAgIC8qCisgICAgKiBSZXBvcnQgZXJyb3JzLgorICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IHZjdHh0LT5uYkF0dHJJbmZvczsgaSsrKSB7CisJaWF0dHIgPSB2Y3R4dC0+YXR0ckluZm9zW2ldOworCWlmICgoaWF0dHItPnN0YXRlID09IFhNTF9TQ0hFTUFTX0FUVFJfTUVUQSkgfHwKKwkgICAgKGlhdHRyLT5zdGF0ZSA9PSBYTUxfU0NIRU1BU19BVFRSX0FTU0VTU0VEKSB8fAorCSAgICAoaWF0dHItPnN0YXRlID09IFhNTF9TQ0hFTUFTX0FUVFJfV0lMRF9TS0lQKSB8fAorCSAgICAoaWF0dHItPnN0YXRlID09IFhNTF9TQ0hFTUFTX0FUVFJfV0lMRF9MQVhfTk9fREVDTCkpCisJICAgIGNvbnRpbnVlOworCUFDVElWQVRFX0FUVFJJQlVURShpYXR0cik7CisJc3dpdGNoIChpYXR0ci0+c3RhdGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19BVFRSX0VSUl9NSVNTSU5HOiB7CisJCSAgICB4bWxDaGFyICpzdHIgPSBOVUxMOworCQkgICAgQUNUSVZBVEVfRUxFTTsKKwkJICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHZjdHh0LAorCQkJWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV80LCBOVUxMLCBOVUxMLAorCQkJIlRoZSBhdHRyaWJ1dGUgJyVzJyBpcyByZXF1aXJlZCBidXQgbWlzc2luZyIsCisJCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCQkJICAgIGlhdHRyLT5kZWNsLT50YXJnZXROYW1lc3BhY2UsCisJCQkgICAgaWF0dHItPmRlY2wtPm5hbWUpLAorCQkJTlVMTCk7CisJCSAgICBGUkVFX0FORF9OVUxMKHN0cikKKwkJICAgIGJyZWFrOworCQl9CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfQVRUUl9FUlJfTk9fVFlQRToKKwkJVkVSUk9SKFhNTF9TQ0hFTUFWX0NWQ19BVFRSSUJVVEVfMiwgTlVMTCwKKwkJICAgICJUaGUgdHlwZSBkZWZpbml0aW9uIGlzIGFic2VudCIpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19BVFRSX0VSUl9GSVhFRF9WQUxVRToKKwkJeG1sU2NoZW1hQ3VzdG9tRXJyKEFDVFhUX0NBU1QgdmN0eHQsCisJCSAgICBYTUxfU0NIRU1BVl9DVkNfQVUsIE5VTEwsIE5VTEwsCisJCSAgICAiVGhlIHZhbHVlICclcycgZG9lcyBub3QgbWF0Y2ggdGhlIGZpeGVkICIKKwkJICAgICJ2YWx1ZSBjb25zdHJhaW50ICclcyciLAorCQkgICAgaWF0dHItPnZhbHVlLCBpYXR0ci0+dmNWYWx1ZSk7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0FUVFJfRVJSX1dJTERfU1RSSUNUX05PX0RFQ0w6CisJCVZFUlJPUihYTUxfU0NIRU1BVl9DVkNfV0lMRENBUkQsIE5VTEwsCisJCSAgICAiTm8gbWF0Y2hpbmcgZ2xvYmFsIGF0dHJpYnV0ZSBkZWNsYXJhdGlvbiBhdmFpbGFibGUsIGJ1dCAiCisJCSAgICAiZGVtYW5kZWQgYnkgdGhlIHN0cmljdCB3aWxkY2FyZCIpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19BVFRSX1VOS05PV046CisJCWlmIChpYXR0ci0+bWV0YVR5cGUpCisJCSAgICBicmVhazsKKwkJLyoKKwkJKiBNQVlCRSBWQUwgVE9ETzogT25lIG1pZ2h0IHJlcG9ydCBkaWZmZXJlbnQgZXJyb3IgbWVzc2FnZXMKKwkJKiBmb3IgdGhlIGZvbGxvd2luZyBlcnJvcnMuCisJCSovCisJCWlmICh0eXBlLT5hdHRyaWJ1dGVXaWxkY2FyZCA9PSBOVUxMKSB7CisJCSAgICB4bWxTY2hlbWFJbGxlZ2FsQXR0ckVycihBQ1RYVF9DQVNUIHZjdHh0LAorCQkJWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8zXzJfMSwgaWF0dHIsIE5VTEwpOworCQl9IGVsc2UgeworCQkgICAgeG1sU2NoZW1hSWxsZWdhbEF0dHJFcnIoQUNUWFRfQ0FTVCB2Y3R4dCwKKwkJCVhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfM18yXzIsIGlhdHRyLCBOVUxMKTsKKwkJfQorCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorICAgIH0KKworICAgIEFDVElWQVRFX0VMRU07CisgICAgcmV0dXJuICgwKTsKK2ludGVybmFsX2Vycm9yOgorICAgIEFDVElWQVRFX0VMRU07CisgICAgcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZhbGlkYXRlRWxlbVdpbGRjYXJkKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSAgICAgIGludCAqc2tpcCkKK3sKKyAgICB4bWxTY2hlbWFXaWxkY2FyZFB0ciB3aWxkID0gKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSB2Y3R4dC0+aW5vZGUtPmRlY2w7CisgICAgLyoKKyAgICAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgaWRlbnRpZmllZCB0byBiZQorICAgICogbWF0Y2hpbmcgdGhlIHdpbGRjYXJkLgorICAgICovCisgICAgaWYgKChza2lwID09IE5VTEwpIHx8ICh3aWxkID09IE5VTEwpIHx8CisJKHdpbGQtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0FOWSkpIHsKKwlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUVsZW1XaWxkY2FyZCIsCisJICAgICJiYWQgYXJndW1lbnRzIik7CisJcmV0dXJuICgtMSk7CisgICAgfQorICAgICpza2lwID0gMDsKKyAgICBpZiAod2lsZC0+cHJvY2Vzc0NvbnRlbnRzID09IFhNTF9TQ0hFTUFTX0FOWV9TS0lQKSB7CisJLyoKKwkqIFVSR0VOVCBWQUwgVE9ETzogRWl0aGVyIHdlIG5lZWQgdG8gcG9zaXRpb24gdGhlIHN0cmVhbSB0byB0aGUKKwkqIG5leHQgc2libGluZywgb3Igd2FsayB0aGUgd2hvbGUgc3VidHJlZS4KKwkqLworCSpza2lwID0gMTsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICB7CisJeG1sU2NoZW1hRWxlbWVudFB0ciBkZWNsID0gTlVMTDsKKworCWRlY2wgPSB4bWxTY2hlbWFHZXRFbGVtKHZjdHh0LT5zY2hlbWEsCisJICAgIHZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLCB2Y3R4dC0+aW5vZGUtPm5zTmFtZSk7CisJaWYgKGRlY2wgIT0gTlVMTCkgeworCSAgICB2Y3R4dC0+aW5vZGUtPmRlY2wgPSBkZWNsOworCSAgICByZXR1cm4gKDApOworCX0KKyAgICB9CisgICAgaWYgKHdpbGQtPnByb2Nlc3NDb250ZW50cyA9PSBYTUxfU0NIRU1BU19BTllfU1RSSUNUKSB7CisJLyogVkFMIFRPRE86IENoYW5nZSB0byBwcm9wZXIgZXJyb3IgY29kZS4gKi8KKwlWRVJST1IoWE1MX1NDSEVNQVZfQ1ZDX0VMVF8xLCBOVUxMLCAvKiBXWFNfQkFTSUNfQ0FTVCB3aWxkICovCisJICAgICJObyBtYXRjaGluZyBnbG9iYWwgZWxlbWVudCBkZWNsYXJhdGlvbiBhdmFpbGFibGUsIGJ1dCAiCisJICAgICJkZW1hbmRlZCBieSB0aGUgc3RyaWN0IHdpbGRjYXJkIik7CisJcmV0dXJuICh2Y3R4dC0+ZXJyKTsKKyAgICB9CisgICAgaWYgKHZjdHh0LT5uYkF0dHJJbmZvcyAhPSAwKSB7CisJeG1sU2NoZW1hQXR0ckluZm9QdHIgaWF0dHI7CisJLyoKKwkqIFNQRUMgVmFsaWRhdGlvbiBSdWxlOiBTY2hlbWEtVmFsaWRpdHkgQXNzZXNzbWVudCAoRWxlbWVudCkKKwkqICgxLjIuMS4yLjEpIC0gKDEuMi4xLjIuMyApCisJKgorCSogVXNlIHRoZSB4c2k6dHlwZSBhdHRyaWJ1dGUgZm9yIHRoZSB0eXBlIGRlZmluaXRpb24uCisJKi8KKwlpYXR0ciA9IHhtbFNjaGVtYUdldE1ldGFBdHRySW5mbyh2Y3R4dCwKKwkgICAgWE1MX1NDSEVNQV9BVFRSX0lORk9fTUVUQV9YU0lfVFlQRSk7CisJaWYgKGlhdHRyICE9IE5VTEwpIHsKKwkgICAgaWYgKHhtbFNjaGVtYVByb2Nlc3NYU0lUeXBlKHZjdHh0LCBpYXR0ciwKKwkJJih2Y3R4dC0+aW5vZGUtPnR5cGVEZWYpLCBOVUxMKSA9PSAtMSkgeworCQlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUVsZW1XaWxkY2FyZCIsCisJCSAgICAiY2FsbGluZyB4bWxTY2hlbWFQcm9jZXNzWFNJVHlwZSgpIHRvICIKKwkJICAgICJwcm9jZXNzIHRoZSBhdHRyaWJ1dGUgJ3hzaTpuaWwnIik7CisJCXJldHVybiAoLTEpOworCSAgICB9CisJICAgIC8qCisJICAgICogRG9uJ3QgcmV0dXJuIGFuIGVycm9yIG9uIHB1cnBvc2UuCisJICAgICovCisJICAgIHJldHVybiAoMCk7CisJfQorICAgIH0KKyAgICAvKgorICAgICogU1BFQyBWYWxpZGF0aW9uIFJ1bGU6IFNjaGVtYS1WYWxpZGl0eSBBc3Nlc3NtZW50IChFbGVtZW50KQorICAgICoKKyAgICAqIEZhbGxiYWNrIHRvICJhbnlUeXBlIi4KKyAgICAqLworICAgIHZjdHh0LT5pbm9kZS0+dHlwZURlZiA9CisJeG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoWE1MX1NDSEVNQVNfQU5ZVFlQRSk7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoKKyogeG1sU2NoZW1hQ2hlY2tDT1NWYWxpZERlZmF1bHQ6CisqCisqIFRoaXMgd2lsbCBiZSBjYWxsZWQgaWY6IG5vdCBuaWxsZWQsIG5vIGNvbnRlbnQgYW5kIGEgZGVmYXVsdC9maXhlZAorKiB2YWx1ZSBpcyBwcm92aWRlZC4KKyovCisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNoZWNrQ09TVmFsaWREZWZhdWx0KHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSAgICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJICAgICAgeG1sU2NoZW1hVmFsUHRyICp2YWwpCit7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgaW5vZGUgPSB2Y3R4dC0+aW5vZGU7CisKKyAgICAvKgorICAgICogY29zLXZhbGlkLWRlZmF1bHQ6CisgICAgKiBTY2hlbWEgQ29tcG9uZW50IENvbnN0cmFpbnQ6IEVsZW1lbnQgRGVmYXVsdCBWYWxpZCAoSW1tZWRpYXRlKQorICAgICogRm9yIGEgc3RyaW5nIHRvIGJlIGEgdmFsaWQgZGVmYXVsdCB3aXRoIHJlc3BlY3QgdG8gYSB0eXBlCisgICAgKiBkZWZpbml0aW9uIHRoZSBhcHByb3ByaWF0ZSBjYXNlIGFtb25nIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOgorICAgICovCisgICAgaWYgV1hTX0lTX0NPTVBMRVgoaW5vZGUtPnR5cGVEZWYpIHsKKwkvKgorCSogQ29tcGxleCB0eXBlLgorCSoKKwkqIFNQRUMgKDIuMSkgIml0cyB7Y29udGVudCB0eXBlfSBtdXN0IGJlIGEgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbgorCSogb3IgbWl4ZWQuIgorCSogU1BFQyAoMi4yLjIpICJJZiB0aGUge2NvbnRlbnQgdHlwZX0gaXMgbWl4ZWQsIHRoZW4gdGhlIHtjb250ZW50CisJKiB0eXBlfSdzIHBhcnRpY2xlIG11c3QgYmUg77+9ZW1wdGlhYmxl77+9IGFzIGRlZmluZWQgYnkKKwkqIFBhcnRpY2xlIEVtcHRpYWJsZSAo77+9My45LjYpLiIKKwkqLworCWlmICgoISBXWFNfSEFTX1NJTVBMRV9DT05URU5UKGlub2RlLT50eXBlRGVmKSkgJiYKKwkgICAgKCghIFdYU19IQVNfTUlYRURfQ09OVEVOVChpbm9kZS0+dHlwZURlZikpIHx8CisJICAgICAoISBXWFNfRU1QVElBQkxFKGlub2RlLT50eXBlRGVmKSkpKSB7CisJICAgIHJldCA9IFhNTF9TQ0hFTUFQX0NPU19WQUxJRF9ERUZBVUxUXzJfMTsKKwkgICAgLyogTk9URSB0aGF0IHRoaXMgY292ZXJzICgyLjIuMikgYXMgd2VsbC4gKi8KKwkgICAgVkVSUk9SKHJldCwgTlVMTCwKKwkJIkZvciBhIHN0cmluZyB0byBiZSBhIHZhbGlkIGRlZmF1bHQsIHRoZSB0eXBlIGRlZmluaXRpb24gIgorCQkibXVzdCBiZSBhIHNpbXBsZSB0eXBlIG9yIGEgY29tcGxleCB0eXBlIHdpdGggc2ltcGxlIGNvbnRlbnQgIgorCQkib3IgbWl4ZWQgY29udGVudCBhbmQgYSBwYXJ0aWNsZSBlbXB0aWFibGUiKTsKKwkgICAgcmV0dXJuKHJldCk7CisJfQorICAgIH0KKyAgICAvKgorICAgICogMSBJZiB0aGUgdHlwZSBkZWZpbml0aW9uIGlzIGEgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbiwgdGhlbiB0aGUgc3RyaW5nCisgICAgKiBtdXN0IGJlIO+/vXZhbGlk77+9IHdpdGggcmVzcGVjdCB0byB0aGF0IGRlZmluaXRpb24gYXMgZGVmaW5lZCBieSBTdHJpbmcKKyAgICAqIFZhbGlkICjvv70zLjE0LjQpLgorICAgICoKKyAgICAqIEFORAorICAgICoKKyAgICAqIDIuMi4xIElmIHRoZSB7Y29udGVudCB0eXBlfSBpcyBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24sIHRoZW4gdGhlCisgICAgKiBzdHJpbmcgbXVzdCBiZSDvv712YWxpZO+/vSB3aXRoIHJlc3BlY3QgdG8gdGhhdCBzaW1wbGUgdHlwZSBkZWZpbml0aW9uCisgICAgKiBhcyBkZWZpbmVkIGJ5IFN0cmluZyBWYWxpZCAo77+9My4xNC40KS4KKyAgICAqLworICAgIGlmIChXWFNfSVNfU0lNUExFKGlub2RlLT50eXBlRGVmKSkgeworCisJcmV0ID0geG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZShBQ1RYVF9DQVNUIHZjdHh0LAorCSAgICBOVUxMLCBpbm9kZS0+dHlwZURlZiwgdmFsdWUsIHZhbCwgMSwgMSwgMCk7CisKKyAgICB9IGVsc2UgaWYgKFdYU19IQVNfU0lNUExFX0NPTlRFTlQoaW5vZGUtPnR5cGVEZWYpKSB7CisKKwlyZXQgPSB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKEFDVFhUX0NBU1QgdmN0eHQsCisJICAgIE5VTEwsIGlub2RlLT50eXBlRGVmLT5jb250ZW50VHlwZURlZiwgdmFsdWUsIHZhbCwgMSwgMSwgMCk7CisgICAgfQorICAgIGlmIChyZXQgPCAwKSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hQ2hlY2tDT1NWYWxpZERlZmF1bHQiLAorCSAgICAiY2FsbGluZyB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKCkiKTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hVkNvbnRlbnRNb2RlbENhbGxiYWNrKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCBBVFRSSUJVVEVfVU5VU0VELAorCQkJICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lIEFUVFJJQlVURV9VTlVTRUQsCisJCQkgICAgICAgeG1sU2NoZW1hRWxlbWVudFB0ciBpdGVtLAorCQkJICAgICAgIHhtbFNjaGVtYU5vZGVJbmZvUHRyIGlub2RlKQoreworICAgIGlub2RlLT5kZWNsID0gaXRlbTsKKyNpZmRlZiBERUJVR19DT05URU5UCisgICAgeworCXhtbENoYXIgKnN0ciA9IE5VTEw7CisKKwlpZiAoaXRlbS0+dHlwZSA9PSBYTUxfU0NIRU1BX1RZUEVfRUxFTUVOVCkgeworCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkFVVE9NQVRPTiBjYWxsYmFjayBmb3IgJyVzJyBbZGVjbGFyYXRpb25dXG4iLAorCQl4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCQlpbm9kZS0+bG9jYWxOYW1lLCBpbm9kZS0+bnNOYW1lKSk7CisJfSBlbHNlIHsKKwkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiQVVUT01BVE9OIGNhbGxiYWNrIGZvciAnJXMnIFt3aWxkY2FyZF1cbiIsCisJCSAgICB4bWxTY2hlbWFGb3JtYXRRTmFtZSgmc3RyLAorCQkgICAgaW5vZGUtPmxvY2FsTmFtZSwgaW5vZGUtPm5zTmFtZSkpOworCisJfQorCUZSRUVfQU5EX05VTEwoc3RyKQorICAgIH0KKyNlbmRpZgorfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWYWxpZGF0b3JQdXNoRWxlbSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgdmN0eHQtPmlub2RlID0geG1sU2NoZW1hR2V0RnJlc2hFbGVtSW5mbyh2Y3R4dCk7CisgICAgaWYgKHZjdHh0LT5pbm9kZSA9PSBOVUxMKSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hVmFsaWRhdG9yUHVzaEVsZW0iLAorCSAgICAiY2FsbGluZyB4bWxTY2hlbWFHZXRGcmVzaEVsZW1JbmZvKCkiKTsKKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgdmN0eHQtPm5iQXR0ckluZm9zID0gMDsKKyAgICByZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWQ2hlY2tJTm9kZURhdGFUeXBlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCwKKwkJCSAgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgaW5vZGUsCisJCQkgICAgIHhtbFNjaGVtYVR5cGVQdHIgdHlwZSwKKwkJCSAgICAgY29uc3QgeG1sQ2hhciAqdmFsdWUpCit7CisgICAgaWYgKGlub2RlLT5mbGFncyAmIFhNTF9TQ0hFTUFfTk9ERV9JTkZPX1ZBTFVFX05FRURFRCkKKwlyZXR1cm4gKHhtbFNjaGVtYVZDaGVja0NWQ1NpbXBsZVR5cGUoCisJICAgIEFDVFhUX0NBU1QgdmN0eHQsIE5VTEwsCisJICAgIHR5cGUsIHZhbHVlLCAmKGlub2RlLT52YWwpLCAxLCAxLCAwKSk7CisgICAgZWxzZQorCXJldHVybiAoeG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSgKKwkgICAgQUNUWFRfQ0FTVCB2Y3R4dCwgTlVMTCwKKwkgICAgdHlwZSwgdmFsdWUsIE5VTEwsIDEsIDAsIDApKTsKK30KKworCisKKy8qCisqIFByb2Nlc3MgRU5EIG9mIGVsZW1lbnQuCisqLworc3RhdGljIGludAoreG1sU2NoZW1hVmFsaWRhdG9yUG9wRWxlbSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgaW5vZGUgPSB2Y3R4dC0+aW5vZGU7CisKKyAgICBpZiAodmN0eHQtPm5iQXR0ckluZm9zICE9IDApCisJeG1sU2NoZW1hQ2xlYXJBdHRySW5mb3ModmN0eHQpOworICAgIGlmIChpbm9kZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BX05PREVfSU5GT19FUlJfTk9UX0VYUEVDVEVEKSB7CisJLyoKKwkqIFRoaXMgZWxlbWVudCB3YXMgbm90IGV4cGVjdGVkOworCSogd2Ugd2lsbCBub3QgdmFsaWRhdGUgY2hpbGQgZWxlbWVudHMgb2YgYnJva2VuIHBhcmVudHMuCisJKiBTa2lwIHZhbGlkYXRpb24gb2YgYWxsIGNvbnRlbnQgb2YgdGhlIHBhcmVudC4KKwkqLworCXZjdHh0LT5za2lwRGVwdGggPSB2Y3R4dC0+ZGVwdGggLTE7CisJZ290byBlbmRfZWxlbTsKKyAgICB9CisgICAgaWYgKChpbm9kZS0+dHlwZURlZiA9PSBOVUxMKSB8fAorCShpbm9kZS0+ZmxhZ3MgJiBYTUxfU0NIRU1BX05PREVfSU5GT19FUlJfQkFEX1RZUEUpKSB7CisJLyoKKwkqIDEuIHRoZSB0eXBlIGRlZmluaXRpb24gbWlnaHQgYmUgbWlzc2luZyBpZiB0aGUgZWxlbWVudCB3YXMKKwkqICAgIGVycm9yIHByb25lCisJKiAyLiBpdCBtaWdodCBiZSBhYnN0cmFjdC4KKwkqLworCWdvdG8gZW5kX2VsZW07CisgICAgfQorICAgIC8qCisgICAgKiBDaGVjayB0aGUgY29udGVudCBtb2RlbC4KKyAgICAqLworICAgIGlmICgoaW5vZGUtPnR5cGVEZWYtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRCkgfHwKKwkoaW5vZGUtPnR5cGVEZWYtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUykpIHsKKworCS8qCisJKiBXb3JrYXJvdW5kIGZvciAiYW55VHlwZSIuCisJKi8KKwlpZiAoaW5vZGUtPnR5cGVEZWYtPmJ1aWx0SW5UeXBlID09IFhNTF9TQ0hFTUFTX0FOWVRZUEUpCisJICAgIGdvdG8gY2hhcmFjdGVyX2NvbnRlbnQ7CisKKwlpZiAoKGlub2RlLT5mbGFncyAmIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0VSUl9CQURfQ09OVEVOVCkgPT0gMCkgeworCSAgICB4bWxDaGFyICp2YWx1ZXNbMTBdOworCSAgICBpbnQgdGVybWluYWwsIG5idmFsID0gMTAsIG5ibmVnOworCisJICAgIGlmIChpbm9kZS0+cmVnZXhDdHh0ID09IE5VTEwpIHsKKwkJLyoKKwkJKiBDcmVhdGUgdGhlIHJlZ2V4IGNvbnRleHQuCisJCSovCisJCWlub2RlLT5yZWdleEN0eHQgPQorCQkgICAgeG1sUmVnTmV3RXhlY0N0eHQoaW5vZGUtPnR5cGVEZWYtPmNvbnRNb2RlbCwKKwkJICAgICh4bWxSZWdFeGVjQ2FsbGJhY2tzKSB4bWxTY2hlbWFWQ29udGVudE1vZGVsQ2FsbGJhY2ssCisJCSAgICB2Y3R4dCk7CisJCWlmIChpbm9kZS0+cmVnZXhDdHh0ID09IE5VTEwpIHsKKwkJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRvclBvcEVsZW0iLAorCQkJImZhaWxlZCB0byBjcmVhdGUgYSByZWdleCBjb250ZXh0Iik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisjaWZkZWYgREVCVUdfQVVUT01BVEEKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiQVVUT01BVE9OIGNyZWF0ZSBvbiAnJXMnXG4iLCBpbm9kZS0+bG9jYWxOYW1lKTsKKyNlbmRpZgorCSAgICB9CisJICAgIC8qCisJICAgICogR2V0IGhvbGQgb2YgdGhlIHN0aWxsIGV4cGVjdGVkIGNvbnRlbnQsIHNpbmNlIGEgZnVydGhlcgorCSAgICAqIGNhbGwgdG8geG1sUmVnRXhlY1B1c2hTdHJpbmcoKSB3aWxsIGxvb3NlIHRoaXMgaW5mb3JtYXRpb24uCisJICAgICovCisJICAgIHhtbFJlZ0V4ZWNOZXh0VmFsdWVzKGlub2RlLT5yZWdleEN0eHQsCisJCSZuYnZhbCwgJm5ibmVnLCAmdmFsdWVzWzBdLCAmdGVybWluYWwpOworCSAgICByZXQgPSB4bWxSZWdFeGVjUHVzaFN0cmluZyhpbm9kZS0+cmVnZXhDdHh0LCBOVUxMLCBOVUxMKTsKKwkgICAgaWYgKChyZXQ8MCkgfHwgKChyZXQ9PTApICYmICghSU5PREVfTklMTEVEKGlub2RlKSkpKSB7CisJCS8qCisJCSogU3RpbGwgbWlzc2luZyBzb21ldGhpbmcuCisJCSovCisJCXJldCA9IDE7CisJCWlub2RlLT5mbGFncyB8PQorCQkgICAgWE1MX1NDSEVNQV9FTEVNX0lORk9fRVJSX0JBRF9DT05URU5UOworCQl4bWxTY2hlbWFDb21wbGV4VHlwZUVycihBQ1RYVF9DQVNUIHZjdHh0LAorCQkgICAgWE1MX1NDSEVNQVZfRUxFTUVOVF9DT05URU5ULCBOVUxMLCBOVUxMLAorCQkgICAgIk1pc3NpbmcgY2hpbGQgZWxlbWVudChzKSIsCisJCSAgICBuYnZhbCwgbmJuZWcsIHZhbHVlcyk7CisjaWZkZWYgREVCVUdfQVVUT01BVEEKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiQVVUT01BVE9OIG1pc3NpbmcgRVJST1Igb24gJyVzJ1xuIiwKKwkJICAgIGlub2RlLT5sb2NhbE5hbWUpOworI2VuZGlmCisJICAgIH0gZWxzZSB7CisJCS8qCisJCSogQ29udGVudCBtb2RlbCBpcyBzYXRpc2ZpZWQuCisJCSovCisJCXJldCA9IDA7CisjaWZkZWYgREVCVUdfQVVUT01BVEEKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSAgICAiQVVUT01BVE9OIHN1Y2NlZWRlZCBvbiAnJXMnXG4iLAorCQkgICAgaW5vZGUtPmxvY2FsTmFtZSk7CisjZW5kaWYKKwkgICAgfQorCisJfQorICAgIH0KKyAgICBpZiAoaW5vZGUtPnR5cGVEZWYtPmNvbnRlbnRUeXBlID09IFhNTF9TQ0hFTUFfQ09OVEVOVF9FTEVNRU5UUykKKwlnb3RvIGVuZF9lbGVtOworCitjaGFyYWN0ZXJfY29udGVudDoKKworICAgIGlmICh2Y3R4dC0+dmFsdWUgIT0gTlVMTCkgeworCXhtbFNjaGVtYUZyZWVWYWx1ZSh2Y3R4dC0+dmFsdWUpOworCXZjdHh0LT52YWx1ZSA9IE5VTEw7CisgICAgfQorICAgIC8qCisgICAgKiBDaGVjayBjaGFyYWN0ZXIgY29udGVudC4KKyAgICAqLworICAgIGlmIChpbm9kZS0+ZGVjbCA9PSBOVUxMKSB7CisJLyoKKwkqIFNwZWVkdXAgaWYgbm8gZGVjbGFyYXRpb24gZXhpc3RzLgorCSovCisJaWYgKFdYU19JU19TSU1QTEUoaW5vZGUtPnR5cGVEZWYpKSB7CisJICAgIHJldCA9IHhtbFNjaGVtYVZDaGVja0lOb2RlRGF0YVR5cGUodmN0eHQsCisJCWlub2RlLCBpbm9kZS0+dHlwZURlZiwgaW5vZGUtPnZhbHVlKTsKKwl9IGVsc2UgaWYgKFdYU19IQVNfU0lNUExFX0NPTlRFTlQoaW5vZGUtPnR5cGVEZWYpKSB7CisJICAgIHJldCA9IHhtbFNjaGVtYVZDaGVja0lOb2RlRGF0YVR5cGUodmN0eHQsCisJCWlub2RlLCBpbm9kZS0+dHlwZURlZi0+Y29udGVudFR5cGVEZWYsCisJCWlub2RlLT52YWx1ZSk7CisJfQorCWlmIChyZXQgPCAwKSB7CisJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRvclBvcEVsZW0iLAorCQkiY2FsbGluZyB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKCkiKTsKKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwl9CisJZ290byBlbmRfZWxlbTsKKyAgICB9CisgICAgLyoKKyAgICAqIGN2Yy1lbHQgKDMuMy40KSA6IDUKKyAgICAqIFRoZSBhcHByb3ByaWF0ZSBjYXNlIGFtb25nIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOgorICAgICovCisgICAgLyoKKyAgICAqIGN2Yy1lbHQgKDMuMy40KSA6IDUuMQorICAgICogSWYgdGhlIGRlY2xhcmF0aW9uIGhhcyBhIHt2YWx1ZSBjb25zdHJhaW50fSwKKyAgICAqIHRoZSBpdGVtIGhhcyBuZWl0aGVyIGVsZW1lbnQgbm9yIGNoYXJhY3RlciBbY2hpbGRyZW5dIGFuZAorICAgICogY2xhdXNlIDMuMiBoYXMgbm90IGFwcGxpZWQsIHRoZW4gYWxsIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOgorICAgICovCisgICAgaWYgKChpbm9kZS0+ZGVjbC0+dmFsdWUgIT0gTlVMTCkgJiYKKwkoaW5vZGUtPmZsYWdzICYgWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFkpICYmCisJKCEgSU5PREVfTklMTEVEKGlub2RlKSkpIHsKKwkvKgorCSogY3ZjLWVsdCAoMy4zLjQpIDogNS4xLjEKKwkqIElmIHRoZSDvv71hY3R1YWwgdHlwZSBkZWZpbml0aW9u77+9IGlzIGEg77+9bG9jYWwgdHlwZSBkZWZpbml0aW9u77+9CisJKiB0aGVuIHRoZSBjYW5vbmljYWwgbGV4aWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUge3ZhbHVlIGNvbnN0cmFpbnR9CisJKiB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgZGVmYXVsdCBmb3IgdGhlIO+/vWFjdHVhbCB0eXBlIGRlZmluaXRpb27vv70gYXMKKwkqIGRlZmluZWQgaW4gRWxlbWVudCBEZWZhdWx0IFZhbGlkIChJbW1lZGlhdGUpICjvv70zLjMuNikuCisJKi8KKwkvKgorCSogTk9URTogJ2xvY2FsJyBhYm92ZSBtZWFucyB0eXBlcyBhY3F1aXJlZCBieSB4c2k6dHlwZS4KKwkqIE5PVEU6IEFsdGhvdWdoIHRoZSAqY2Fub25pY2FsKiB2YWx1ZSBpcyBzdGF0ZWQsIGl0IGlzIG5vdAorCSogcmVsZXZhbnQgaWYgY2Fub25pY2FsIG9yIG5vdC4gQWRkaXRpb25hbGx5IFhNTCBTY2hlbWEgMS4xCisJKiB3aWxsIHJlbW92ZWQgdGhpcyByZXF1aXJlbWVudCBhcyB3ZWxsLgorCSovCisJaWYgKGlub2RlLT5mbGFncyAmIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0xPQ0FMX1RZUEUpIHsKKworCSAgICByZXQgPSB4bWxTY2hlbWFDaGVja0NPU1ZhbGlkRGVmYXVsdCh2Y3R4dCwKKwkJaW5vZGUtPmRlY2wtPnZhbHVlLCAmKGlub2RlLT52YWwpKTsKKwkgICAgaWYgKHJldCAhPSAwKSB7CisJCWlmIChyZXQgPCAwKSB7CisJCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0b3JQb3BFbGVtIiwKKwkJCSJjYWxsaW5nIHhtbFNjaGVtYUNoZWNrQ09TVmFsaWREZWZhdWx0KCkiKTsKKwkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCX0KKwkJZ290byBlbmRfZWxlbTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIFN0b3AgaGVyZSwgdG8gYXZvaWQgcmVkdW5kYW50IHZhbGlkYXRpb24gb2YgdGhlIHZhbHVlCisJICAgICogKHNlZSBmb2xsb3dpbmcpLgorCSAgICAqLworCSAgICBnb3RvIGRlZmF1bHRfcHN2aTsKKwl9CisJLyoKKwkqIGN2Yy1lbHQgKDMuMy40KSA6IDUuMS4yCisJKiBUaGUgZWxlbWVudCBpbmZvcm1hdGlvbiBpdGVtIHdpdGggdGhlIGNhbm9uaWNhbCBsZXhpY2FsCisJKiByZXByZXNlbnRhdGlvbiBvZiB0aGUge3ZhbHVlIGNvbnN0cmFpbnR9IHZhbHVlIHVzZWQgYXMgaXRzCisJKiDvv71ub3JtYWxpemVkIHZhbHVl77+9IG11c3QgYmUg77+9dmFsaWTvv70gd2l0aCByZXNwZWN0IHRvIHRoZQorCSog77+9YWN0dWFsIHR5cGUgZGVmaW5pdGlvbu+/vSBhcyBkZWZpbmVkIGJ5IEVsZW1lbnQgTG9jYWxseSBWYWxpZCAoVHlwZSkKKwkqICjvv70zLjMuNCkuCisJKi8KKwlpZiAoV1hTX0lTX1NJTVBMRShpbm9kZS0+dHlwZURlZikpIHsKKwkgICAgcmV0ID0geG1sU2NoZW1hVkNoZWNrSU5vZGVEYXRhVHlwZSh2Y3R4dCwKKwkJaW5vZGUsIGlub2RlLT50eXBlRGVmLCBpbm9kZS0+ZGVjbC0+dmFsdWUpOworCX0gZWxzZSBpZiAoV1hTX0hBU19TSU1QTEVfQ09OVEVOVChpbm9kZS0+dHlwZURlZikpIHsKKwkgICAgcmV0ID0geG1sU2NoZW1hVkNoZWNrSU5vZGVEYXRhVHlwZSh2Y3R4dCwKKwkJaW5vZGUsIGlub2RlLT50eXBlRGVmLT5jb250ZW50VHlwZURlZiwKKwkJaW5vZGUtPmRlY2wtPnZhbHVlKTsKKwl9CisJaWYgKHJldCAhPSAwKSB7CisJICAgIGlmIChyZXQgPCAwKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRvclBvcEVsZW0iLAorCQkgICAgImNhbGxpbmcgeG1sU2NoZW1hVkNoZWNrQ1ZDU2ltcGxlVHlwZSgpIik7CisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIH0KKwkgICAgZ290byBlbmRfZWxlbTsKKwl9CisKK2RlZmF1bHRfcHN2aToKKwkvKgorCSogUFNWSTogQ3JlYXRlIGEgdGV4dCBub2RlIG9uIHRoZSBpbnN0YW5jZSBlbGVtZW50LgorCSovCisJaWYgKCh2Y3R4dC0+b3B0aW9ucyAmIFhNTF9TQ0hFTUFfVkFMX1ZDX0lfQ1JFQVRFKSAmJgorCSAgICAoaW5vZGUtPm5vZGUgIT0gTlVMTCkpIHsKKwkgICAgeG1sTm9kZVB0ciB0ZXh0Q2hpbGQ7CisJICAgIHhtbENoYXIgKm5vcm1WYWx1ZTsKKwkgICAgLyoKKwkgICAgKiBWQUwgVE9ETzogTm9ybWFsaXplIHRoZSB2YWx1ZS4KKwkgICAgKi8KKwkgICAgbm9ybVZhbHVlID0geG1sU2NoZW1hTm9ybWFsaXplVmFsdWUoaW5vZGUtPnR5cGVEZWYsCisJCWlub2RlLT5kZWNsLT52YWx1ZSk7CisJICAgIGlmIChub3JtVmFsdWUgIT0gTlVMTCkgeworCQl0ZXh0Q2hpbGQgPSB4bWxOZXdUZXh0KEJBRF9DQVNUIG5vcm1WYWx1ZSk7CisJCXhtbEZyZWUobm9ybVZhbHVlKTsKKwkgICAgfSBlbHNlCisJCXRleHRDaGlsZCA9IHhtbE5ld1RleHQoaW5vZGUtPmRlY2wtPnZhbHVlKTsKKwkgICAgaWYgKHRleHRDaGlsZCA9PSBOVUxMKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRvclBvcEVsZW0iLAorCQkgICAgImNhbGxpbmcgeG1sTmV3VGV4dCgpIik7CisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIH0gZWxzZQorCQl4bWxBZGRDaGlsZChpbm9kZS0+bm9kZSwgdGV4dENoaWxkKTsKKwl9CisKKyAgICB9IGVsc2UgaWYgKCEgSU5PREVfTklMTEVEKGlub2RlKSkgeworCS8qCisJKiA1LjIuMSBUaGUgZWxlbWVudCBpbmZvcm1hdGlvbiBpdGVtIG11c3QgYmUg77+9dmFsaWTvv70gd2l0aCByZXNwZWN0CisJKiB0byB0aGUg77+9YWN0dWFsIHR5cGUgZGVmaW5pdGlvbu+/vSBhcyBkZWZpbmVkIGJ5IEVsZW1lbnQgTG9jYWxseQorCSogVmFsaWQgKFR5cGUpICjvv70zLjMuNCkuCisJKi8KKwlpZiAoV1hTX0lTX1NJTVBMRShpbm9kZS0+dHlwZURlZikpIHsKKwkgICAgIC8qCisJICAgICogU1BFQyAoY3ZjLXR5cGUpICgzLjEpCisJICAgICogIklmIHRoZSB0eXBlIGRlZmluaXRpb24gaXMgYSBzaW1wbGUgdHlwZSBkZWZpbml0aW9uLCAuLi4iCisJICAgICogKDMuMS4zKSAiSWYgY2xhdXNlIDMuMiBvZiBFbGVtZW50IExvY2FsbHkgVmFsaWQKKwkgICAgKiAoRWxlbWVudCkgKO+/vTMuMy40KSBkaWQgbm90IGFwcGx5LCB0aGVuIHRoZSDvv71ub3JtYWxpemVkIHZhbHVl77+9CisJICAgICogbXVzdCBiZSDvv712YWxpZO+/vSB3aXRoIHJlc3BlY3QgdG8gdGhlIHR5cGUgZGVmaW5pdGlvbiBhcyBkZWZpbmVkCisJICAgICogYnkgU3RyaW5nIFZhbGlkICjvv70zLjE0LjQpLgorCSAgICAqLworCSAgICByZXQgPSB4bWxTY2hlbWFWQ2hlY2tJTm9kZURhdGFUeXBlKHZjdHh0LAorCQkgICAgaW5vZGUsIGlub2RlLT50eXBlRGVmLCBpbm9kZS0+dmFsdWUpOworCX0gZWxzZSBpZiAoV1hTX0hBU19TSU1QTEVfQ09OVEVOVChpbm9kZS0+dHlwZURlZikpIHsKKwkgICAgLyoKKwkgICAgKiBTUEVDIChjdmMtdHlwZSkgKDMuMikgIklmIHRoZSB0eXBlIGRlZmluaXRpb24gaXMgYSBjb21wbGV4IHR5cGUKKwkgICAgKiBkZWZpbml0aW9uLCB0aGVuIHRoZSBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gbXVzdCBiZQorCSAgICAqIO+/vXZhbGlk77+9IHdpdGggcmVzcGVjdCB0byB0aGUgdHlwZSBkZWZpbml0aW9uIGFzIHBlcgorCSAgICAqIEVsZW1lbnQgTG9jYWxseSBWYWxpZCAoQ29tcGxleCBUeXBlKSAo77+9My40LjQpOyIKKwkgICAgKgorCSAgICAqIFNQRUMgKGN2Yy1jb21wbGV4LXR5cGUpICgyLjIpCisJICAgICogIklmIHRoZSB7Y29udGVudCB0eXBlfSBpcyBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24sIC4uLgorCSAgICAqIHRoZSDvv71ub3JtYWxpemVkIHZhbHVl77+9IG9mIHRoZSBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gaXMKKwkgICAgKiDvv712YWxpZO+/vSB3aXRoIHJlc3BlY3QgdG8gdGhhdCBzaW1wbGUgdHlwZSBkZWZpbml0aW9uIGFzCisJICAgICogZGVmaW5lZCBieSBTdHJpbmcgVmFsaWQgKO+/vTMuMTQuNCkuIgorCSAgICAqLworCSAgICByZXQgPSB4bWxTY2hlbWFWQ2hlY2tJTm9kZURhdGFUeXBlKHZjdHh0LAorCQlpbm9kZSwgaW5vZGUtPnR5cGVEZWYtPmNvbnRlbnRUeXBlRGVmLCBpbm9kZS0+dmFsdWUpOworCX0KKwlpZiAocmV0ICE9IDApIHsKKwkgICAgaWYgKHJldCA8IDApIHsKKwkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVmFsaWRhdG9yUG9wRWxlbSIsCisJCSAgICAiY2FsbGluZyB4bWxTY2hlbWFWQ2hlY2tDVkNTaW1wbGVUeXBlKCkiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCSAgICBnb3RvIGVuZF9lbGVtOworCX0KKwkvKgorCSogNS4yLjIgSWYgdGhlcmUgaXMgYSBmaXhlZCB7dmFsdWUgY29uc3RyYWludH0gYW5kIGNsYXVzZSAzLjIgaGFzCisJKiBub3QgYXBwbGllZCwgYWxsIG9mIHRoZSBmb2xsb3dpbmcgbXVzdCBiZSB0cnVlOgorCSovCisJaWYgKChpbm9kZS0+ZGVjbC0+dmFsdWUgIT0gTlVMTCkgJiYKKwkgICAgKGlub2RlLT5kZWNsLT5mbGFncyAmIFhNTF9TQ0hFTUFTX0VMRU1fRklYRUQpKSB7CisKKwkgICAgLyoKKwkgICAgKiBUT0RPOiBXZSB3aWxsIG5lZWQgYSBjb21wdXRlZCB2YWx1ZSwgd2hlbiBjb21wYXJpc29uIGlzCisJICAgICogZG9uZSBvbiBjb21wdXRlZCB2YWx1ZXMuCisJICAgICovCisJICAgIC8qCisJICAgICogNS4yLjIuMSBUaGUgZWxlbWVudCBpbmZvcm1hdGlvbiBpdGVtIG11c3QgaGF2ZSBubyBlbGVtZW50CisJICAgICogaW5mb3JtYXRpb24gaXRlbSBbY2hpbGRyZW5dLgorCSAgICAqLworCSAgICBpZiAoaW5vZGUtPmZsYWdzICYKKwkJICAgIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0hBU19FTEVNX0NPTlRFTlQpIHsKKwkJcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8xOworCQlWRVJST1IocmV0LCBOVUxMLAorCQkgICAgIlRoZSBjb250ZW50IG11c3Qgbm90IGNvbnRhaW50IGVsZW1lbnQgbm9kZXMgc2luY2UgIgorCQkgICAgInRoZXJlIGlzIGEgZml4ZWQgdmFsdWUgY29uc3RyYWludCIpOworCQlnb3RvIGVuZF9lbGVtOworCSAgICB9IGVsc2UgeworCQkvKgorCQkqIDUuMi4yLjIgVGhlIGFwcHJvcHJpYXRlIGNhc2UgYW1vbmcgdGhlIGZvbGxvd2luZyBtdXN0CisJCSogYmUgdHJ1ZToKKwkJKi8KKwkJaWYgKFdYU19IQVNfTUlYRURfQ09OVEVOVChpbm9kZS0+dHlwZURlZikpIHsKKwkJICAgIC8qCisJCSAgICAqIDUuMi4yLjIuMSBJZiB0aGUge2NvbnRlbnQgdHlwZX0gb2YgdGhlIO+/vWFjdHVhbCB0eXBlCisJCSAgICAqIGRlZmluaXRpb27vv70gaXMgbWl4ZWQsIHRoZW4gdGhlICppbml0aWFsIHZhbHVlKiBvZiB0aGUKKwkJICAgICogaXRlbSBtdXN0IG1hdGNoIHRoZSBjYW5vbmljYWwgbGV4aWNhbCByZXByZXNlbnRhdGlvbgorCQkgICAgKiBvZiB0aGUge3ZhbHVlIGNvbnN0cmFpbnR9IHZhbHVlLgorCQkgICAgKgorCQkgICAgKiAuLi4gdGhlICppbml0aWFsIHZhbHVlKiBvZiBhbiBlbGVtZW50IGluZm9ybWF0aW9uCisJCSAgICAqIGl0ZW0gaXMgdGhlIHN0cmluZyBjb21wb3NlZCBvZiwgaW4gb3JkZXIsIHRoZQorCQkgICAgKiBbY2hhcmFjdGVyIGNvZGVdIG9mIGVhY2ggY2hhcmFjdGVyIGluZm9ybWF0aW9uIGl0ZW0gaW4KKwkJICAgICogdGhlIFtjaGlsZHJlbl0gb2YgdGhhdCBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0uCisJCSAgICAqLworCQkgICAgaWYgKCEgeG1sU3RyRXF1YWwoaW5vZGUtPnZhbHVlLCBpbm9kZS0+ZGVjbC0+dmFsdWUpKXsKKwkJCS8qCisJCQkqIFZBTCBUT0RPOiBSZXBvcnQgaW52YWxpZCAmIGV4cGVjdGVkIHZhbHVlcyBhcyB3ZWxsLgorCQkJKiBWQUwgVE9ETzogSW1wbGVtZW50IHRoZSBjYW5vbmljYWwgc3R1ZmYuCisJCQkqLworCQkJcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX0VMVF81XzJfMl8yXzE7CisJCQl4bWxTY2hlbWFDdXN0b21FcnIoQUNUWFRfQ0FTVCB2Y3R4dCwKKwkJCSAgICByZXQsIE5VTEwsIE5VTEwsCisJCQkgICAgIlRoZSBpbml0aWFsIHZhbHVlICclcycgZG9lcyBub3QgbWF0Y2ggdGhlIGZpeGVkICIKKwkJCSAgICAidmFsdWUgY29uc3RyYWludCAnJXMnIiwKKwkJCSAgICBpbm9kZS0+dmFsdWUsIGlub2RlLT5kZWNsLT52YWx1ZSk7CisJCQlnb3RvIGVuZF9lbGVtOworCQkgICAgfQorCQl9IGVsc2UgaWYgKFdYU19IQVNfU0lNUExFX0NPTlRFTlQoaW5vZGUtPnR5cGVEZWYpKSB7CisJCSAgICAvKgorCQkgICAgKiA1LjIuMi4yLjIgSWYgdGhlIHtjb250ZW50IHR5cGV9IG9mIHRoZSDvv71hY3R1YWwgdHlwZQorCQkgICAgKiBkZWZpbml0aW9u77+9IGlzIGEgc2ltcGxlIHR5cGUgZGVmaW5pdGlvbiwgdGhlbiB0aGUKKwkJICAgICogKmFjdHVhbCB2YWx1ZSogb2YgdGhlIGl0ZW0gbXVzdCBtYXRjaCB0aGUgY2Fub25pY2FsCisJCSAgICAqIGxleGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHt2YWx1ZSBjb25zdHJhaW50fSB2YWx1ZS4KKwkJICAgICovCisJCSAgICAvKgorCQkgICAgKiBWQUwgVE9ETzogKmFjdHVhbCB2YWx1ZSogaXMgdGhlIG5vcm1hbGl6ZWQgdmFsdWUsIGltcGwuCisJCSAgICAqICAgICAgICAgICB0aGlzLgorCQkgICAgKiBWQUwgVE9ETzogUmVwb3J0IGludmFsaWQgJiBleHBlY3RlZCB2YWx1ZXMgYXMgd2VsbC4KKwkJICAgICogVkFMIFRPRE86IEltcGxlbWVudCBhIGNvbXBhcmlzb24gd2l0aCB0aGUgY29tcHV0ZWQgdmFsdWVzLgorCQkgICAgKi8KKwkJICAgIGlmICghIHhtbFN0ckVxdWFsKGlub2RlLT52YWx1ZSwKKwkJCSAgICBpbm9kZS0+ZGVjbC0+dmFsdWUpKSB7CisJCQlyZXQgPSBYTUxfU0NIRU1BVl9DVkNfRUxUXzVfMl8yXzJfMjsKKwkJCXhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIHZjdHh0LAorCQkJICAgIHJldCwgTlVMTCwgTlVMTCwKKwkJCSAgICAiVGhlIGFjdHVhbCB2YWx1ZSAnJXMnIGRvZXMgbm90IG1hdGNoIHRoZSBmaXhlZCAiCisJCQkgICAgInZhbHVlIGNvbnN0cmFpbnQgJyVzJyIsCisJCQkgICAgaW5vZGUtPnZhbHVlLAorCQkJICAgIGlub2RlLT5kZWNsLT52YWx1ZSk7CisJCQlnb3RvIGVuZF9lbGVtOworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisgICAgfQorCitlbmRfZWxlbToKKyAgICBpZiAodmN0eHQtPmRlcHRoIDwgMCkgeworCS8qIFRPRE86IHJhaXNlIGVycm9yPyAqLworCXJldHVybiAoMCk7CisgICAgfQorICAgIGlmICh2Y3R4dC0+ZGVwdGggPT0gdmN0eHQtPnNraXBEZXB0aCkKKwl2Y3R4dC0+c2tpcERlcHRoID0gLTE7CisgICAgLyoKKyAgICAqIEV2YWx1YXRlIHRoZSBoaXN0b3J5IG9mIFhQYXRoIHN0YXRlIG9iamVjdHMuCisgICAgKi8KKyAgICBpZiAoaW5vZGUtPmFwcGxpZWRYUGF0aCAmJgorCSh4bWxTY2hlbWFYUGF0aFByb2Nlc3NIaXN0b3J5KHZjdHh0LCB2Y3R4dC0+ZGVwdGgpID09IC0xKSkKKwlnb3RvIGludGVybmFsX2Vycm9yOworICAgIC8qCisgICAgKiBNQVlCRSBUT0RPOgorICAgICogU1BFQyAoNikgIlRoZSBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gbXVzdCBiZSDvv712YWxpZO+/vSB3aXRoCisgICAgKiByZXNwZWN0IHRvIGVhY2ggb2YgdGhlIHtpZGVudGl0eS1jb25zdHJhaW50IGRlZmluaXRpb25zfSBhcyBwZXIKKyAgICAqIElkZW50aXR5LWNvbnN0cmFpbnQgU2F0aXNmaWVkICjvv70zLjExLjQpLiIKKyAgICAqLworICAgIC8qCisgICAgKiBQU1ZJIFRPRE86IElmIHdlIGV4cG9zZSBJREMgbm9kZS10YWJsZXMgdmlhIFBTVkkgdGhlbiB0aGUgdGFibGVzCisgICAgKiAgIG5lZWQgdG8gYmUgYnVpbHQgaW4gYW55IGNhc2UuCisgICAgKiAgIFdlIHdpbGwgY3VycmVudGx5IGJ1aWxkIElEQyBub2RlLXRhYmxlcyBhbmQgYnViYmxlIHRoZW0gb25seSBpZgorICAgICogICBrZXlyZWZzIGRvIGV4aXN0LgorICAgICovCisKKyAgICAvKgorICAgICogQWRkIHRoZSBjdXJyZW50IElEQyB0YXJnZXQtbm9kZXMgdG8gdGhlIElEQyBub2RlLXRhYmxlcy4KKyAgICAqLworICAgIGlmICgoaW5vZGUtPmlkY01hdGNoZXJzICE9IE5VTEwpICYmCisJKHZjdHh0LT5oYXNLZXlyZWZzIHx8IHZjdHh0LT5jcmVhdGVJRENOb2RlVGFibGVzKSkKKyAgICB7CisJaWYgKHhtbFNjaGVtYUlEQ0ZpbGxOb2RlVGFibGVzKHZjdHh0LCBpbm9kZSkgPT0gLTEpCisJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisgICAgfQorICAgIC8qCisgICAgKiBWYWxpZGF0ZSBJREMga2V5cmVmcy4KKyAgICAqLworICAgIGlmICh2Y3R4dC0+aW5vZGUtPmhhc0tleXJlZnMpCisJaWYgKHhtbFNjaGVtYUNoZWNrQ1ZDSURDS2V5UmVmKHZjdHh0KSA9PSAtMSkKKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKyAgICAvKgorICAgICogTWVyZ2UvZnJlZSB0aGUgSURDIHRhYmxlLgorICAgICovCisgICAgaWYgKGlub2RlLT5pZGNUYWJsZSAhPSBOVUxMKSB7CisjaWZkZWYgREVCVUdfSURDX05PREVfVEFCTEUKKwl4bWxTY2hlbWFEZWJ1Z0R1bXBJRENUYWJsZShzdGRvdXQsCisJICAgIGlub2RlLT5uc05hbWUsCisJICAgIGlub2RlLT5sb2NhbE5hbWUsCisJICAgIGlub2RlLT5pZGNUYWJsZSk7CisjZW5kaWYKKwlpZiAoKHZjdHh0LT5kZXB0aCA+IDApICYmCisJICAgICh2Y3R4dC0+aGFzS2V5cmVmcyB8fCB2Y3R4dC0+Y3JlYXRlSURDTm9kZVRhYmxlcykpCisJeworCSAgICAvKgorCSAgICAqIE1lcmdlIHRoZSBJREMgbm9kZSB0YWJsZSB3aXRoIHRoZSB0YWJsZSBvZiB0aGUgcGFyZW50IG5vZGUuCisJICAgICovCisJICAgIGlmICh4bWxTY2hlbWFCdWJibGVJRENOb2RlVGFibGVzKHZjdHh0KSA9PSAtMSkKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBDbGVhciB0aGUgY3VycmVudCBpZWxlbS4KKyAgICAqIFZBTCBUT0RPOiBEb24ndCBmcmVlIHRoZSBQU1ZJIElEQyB0YWJsZXMgaWYgdGhleSBhcmUKKyAgICAqIHJlcXVlc3RlZCBmb3IgdGhlIFBTVkkuCisgICAgKi8KKyAgICB4bWxTY2hlbWFDbGVhckVsZW1JbmZvKHZjdHh0LCBpbm9kZSk7CisgICAgLyoKKyAgICAqIFNraXAgZnVydGhlciBwcm9jZXNzaW5nIGlmIHdlIGFyZSBvbiB0aGUgdmFsaWRhdGlvbiByb290LgorICAgICovCisgICAgaWYgKHZjdHh0LT5kZXB0aCA9PSAwKSB7CisJdmN0eHQtPmRlcHRoLS07CisJdmN0eHQtPmlub2RlID0gTlVMTDsKKwlyZXR1cm4gKDApOworICAgIH0KKyAgICAvKgorICAgICogUmVzZXQgdGhlIGtleXJlZkRlcHRoIGlmIG5lZWRlZC4KKyAgICAqLworICAgIGlmICh2Y3R4dC0+YWlkY3MgIT0gTlVMTCkgeworCXhtbFNjaGVtYUlEQ0F1Z1B0ciBhaWRjID0gdmN0eHQtPmFpZGNzOworCWRvIHsKKwkgICAgaWYgKGFpZGMtPmtleXJlZkRlcHRoID09IHZjdHh0LT5kZXB0aCkgeworCQkvKgorCQkqIEEgJ2tleXJlZkRlcHRoJyBvZiBhIGtleS91bmlxdWUgSURDIG1hdGNoZXMgdGhlIGN1cnJlbnQKKwkJKiBkZXB0aCwgdGhpcyBtZWFucyB0aGF0IHdlIGFyZSBsZWF2aW5nIHRoZSBzY29wZSBvZiB0aGUKKwkJKiB0b3AtbW9zdCBrZXlyZWYgSURDIHdoaWNoIHJlZmVycyB0byB0aGlzIElEQy4KKwkJKi8KKwkJYWlkYy0+a2V5cmVmRGVwdGggPSAtMTsKKwkgICAgfQorCSAgICBhaWRjID0gYWlkYy0+bmV4dDsKKwl9IHdoaWxlIChhaWRjICE9IE5VTEwpOworICAgIH0KKyAgICB2Y3R4dC0+ZGVwdGgtLTsKKyAgICB2Y3R4dC0+aW5vZGUgPSB2Y3R4dC0+ZWxlbUluZm9zW3ZjdHh0LT5kZXB0aF07CisgICAgLyoKKyAgICAqIFZBTCBUT0RPOiA3IElmIHRoZSBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gaXMgdGhlIO+/vXZhbGlkYXRpb24gcm9vdO+/vSwgaXQgbXVzdCBiZQorICAgICog77+9dmFsaWTvv70gcGVyIFZhbGlkYXRpb24gUm9vdCBWYWxpZCAoSUQvSURSRUYpICjvv70zLjMuNCkuCisgICAgKi8KKyAgICByZXR1cm4gKHJldCk7CisKK2ludGVybmFsX2Vycm9yOgorICAgIHZjdHh0LT5lcnIgPSAtMTsKKyAgICByZXR1cm4gKC0xKTsKK30KKworLyoKKyogMy40LjQgQ29tcGxleCBUeXBlIERlZmluaXRpb24gVmFsaWRhdGlvbiBSdWxlcworKiBWYWxpZGF0aW9uIFJ1bGU6IEVsZW1lbnQgTG9jYWxseSBWYWxpZCAoQ29tcGxleCBUeXBlKSAoY3ZjLWNvbXBsZXgtdHlwZSkKKyovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWYWxpZGF0ZUNoaWxkRWxlbSh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgcGllbGVtOworICAgIHhtbFNjaGVtYVR5cGVQdHIgcHR5cGU7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAodmN0eHQtPmRlcHRoIDw9IDApIHsKKwlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUNoaWxkRWxlbSIsCisJICAgICJub3QgaW50ZW5kZWQgZm9yIHRoZSB2YWxpZGF0aW9uIHJvb3QiKTsKKwlyZXR1cm4gKC0xKTsKKyAgICB9CisgICAgcGllbGVtID0gdmN0eHQtPmVsZW1JbmZvc1t2Y3R4dC0+ZGVwdGggLTFdOworICAgIGlmIChwaWVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFkpCisJcGllbGVtLT5mbGFncyBePSBYTUxfU0NIRU1BX0VMRU1fSU5GT19FTVBUWTsKKyAgICAvKgorICAgICogSGFuZGxlICduaWxsZWQnIGVsZW1lbnRzLgorICAgICovCisgICAgaWYgKElOT0RFX05JTExFRChwaWVsZW0pKSB7CisJLyoKKwkqIFNQRUMgKGN2Yy1lbHQpICgzLjMuNCkgOiAoMy4yLjEpCisJKi8KKwlBQ1RJVkFURV9QQVJFTlRfRUxFTTsKKwlyZXQgPSBYTUxfU0NIRU1BVl9DVkNfRUxUXzNfMl8xOworCVZFUlJPUihyZXQsIE5VTEwsCisJICAgICJOZWl0aGVyIGNoYXJhY3RlciBub3IgZWxlbWVudCBjb250ZW50IGlzIGFsbG93ZWQsICIKKwkgICAgImJlY2F1c2UgdGhlIGVsZW1lbnQgd2FzICduaWxsZWQnIik7CisJQUNUSVZBVEVfRUxFTTsKKwlnb3RvIHVuZXhwZWN0ZWRfZWxlbTsKKyAgICB9CisKKyAgICBwdHlwZSA9IHBpZWxlbS0+dHlwZURlZjsKKworICAgIGlmIChwdHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZVFlQRSkgeworCS8qCisJKiBXb3JrYXJvdW5kIGZvciAiYW55VHlwZSI6IHdlIGhhdmUgY3VycmVudGx5IG5vIGNvbnRlbnQgbW9kZWwKKwkqIGFzc2lnbmVkIGZvciAiYW55VHlwZSIsIHNvIGhhbmRsZSBpdCBleHBsaWNpdGVseS4KKwkqICJhbnlUeXBlIiBoYXMgYW4gdW5ib3VuZGVkLCBsYXggImFueSIgd2lsZGNhcmQuCisJKi8KKwl2Y3R4dC0+aW5vZGUtPmRlY2wgPSB4bWxTY2hlbWFHZXRFbGVtKHZjdHh0LT5zY2hlbWEsCisJICAgIHZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLAorCSAgICB2Y3R4dC0+aW5vZGUtPm5zTmFtZSk7CisKKwlpZiAodmN0eHQtPmlub2RlLT5kZWNsID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hQXR0ckluZm9QdHIgaWF0dHI7CisJICAgIC8qCisJICAgICogUHJvY2VzcyAieHNpOnR5cGUiLgorCSAgICAqIFNQRUMgKGN2Yy1hc3Nlc3MtZWx0KSAoMS4yLjEuMi4xKSAtICgxLjIuMS4yLjMpCisJICAgICovCisJICAgIGlhdHRyID0geG1sU2NoZW1hR2V0TWV0YUF0dHJJbmZvKHZjdHh0LAorCQlYTUxfU0NIRU1BX0FUVFJfSU5GT19NRVRBX1hTSV9UWVBFKTsKKwkgICAgaWYgKGlhdHRyICE9IE5VTEwpIHsKKwkJcmV0ID0geG1sU2NoZW1hUHJvY2Vzc1hTSVR5cGUodmN0eHQsIGlhdHRyLAorCQkgICAgJih2Y3R4dC0+aW5vZGUtPnR5cGVEZWYpLCBOVUxMKTsKKwkJaWYgKHJldCAhPSAwKSB7CisJCSAgICBpZiAocmV0ID09IC0xKSB7CisJCQlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUNoaWxkRWxlbSIsCisJCQkgICAgImNhbGxpbmcgeG1sU2NoZW1hUHJvY2Vzc1hTSVR5cGUoKSB0byAiCisJCQkgICAgInByb2Nlc3MgdGhlIGF0dHJpYnV0ZSAneHNpOm5pbCciKTsKKwkJCXJldHVybiAoLTEpOworCQkgICAgfQorCQkgICAgcmV0dXJuIChyZXQpOworCQl9CisJICAgIH0gZWxzZSB7CisJCSAvKgorCQkgKiBGYWxsYmFjayB0byAiYW55VHlwZSIuCisJCSAqCisJCSAqIFNQRUMgKGN2Yy1hc3Nlc3MtZWx0KQorCQkgKiAiSWYgdGhlIGl0ZW0gY2Fubm90IGJlIO+/vXN0cmljdGx5IGFzc2Vzc2Vk77+9LCBbLi4uXQorCQkgKiBhbiBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0ncyBzY2hlbWEgdmFsaWRpdHkgbWF5IGJlIGxheGx5CisJCSAqIGFzc2Vzc2VkIGlmIGl0cyDvv71jb250ZXh0LWRldGVybWluZWQgZGVjbGFyYXRpb27vv70gaXMgbm90CisJCSAqIHNraXAgYnkg77+9dmFsaWRhdGluZ++/vSB3aXRoIHJlc3BlY3QgdG8gdGhlIO+/vXVyLXR5cGUKKwkJICogZGVmaW5pdGlvbu+/vSBhcyBwZXIgRWxlbWVudCBMb2NhbGx5IFZhbGlkIChUeXBlKSAo77+9My4zLjQpLiIKKwkJKi8KKwkJdmN0eHQtPmlub2RlLT50eXBlRGVmID0KKwkJICAgIHhtbFNjaGVtYUdldEJ1aWx0SW5UeXBlKFhNTF9TQ0hFTUFTX0FOWVRZUEUpOworCSAgICB9CisJfQorCXJldHVybiAoMCk7CisgICAgfQorCisgICAgc3dpdGNoIChwdHlwZS0+Y29udGVudFR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9FTVBUWToKKwkgICAgLyoKKwkgICAgKiBTUEVDICgyLjEpICJJZiB0aGUge2NvbnRlbnQgdHlwZX0gaXMgZW1wdHksIHRoZW4gdGhlCisJICAgICogZWxlbWVudCBpbmZvcm1hdGlvbiBpdGVtIGhhcyBubyBjaGFyYWN0ZXIgb3IgZWxlbWVudAorCSAgICAqIGluZm9ybWF0aW9uIGl0ZW0gW2NoaWxkcmVuXS4iCisJICAgICovCisJICAgIEFDVElWQVRFX1BBUkVOVF9FTEVNCisJICAgIHJldCA9IFhNTF9TQ0hFTUFWX0NWQ19DT01QTEVYX1RZUEVfMl8xOworCSAgICBWRVJST1IocmV0LCBOVUxMLAorCQkiRWxlbWVudCBjb250ZW50IGlzIG5vdCBhbGxvd2VkLCAiCisJCSJiZWNhdXNlIHRoZSBjb250ZW50IHR5cGUgaXMgZW1wdHkiKTsKKwkgICAgQUNUSVZBVEVfRUxFTQorCSAgICBnb3RvIHVuZXhwZWN0ZWRfZWxlbTsKKwkgICAgYnJlYWs7CisKKwljYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFM6IHsKKwkgICAgeG1sUmVnRXhlY0N0eHRQdHIgcmVnZXhDdHh0OworCSAgICB4bWxDaGFyICp2YWx1ZXNbMTBdOworCSAgICBpbnQgdGVybWluYWwsIG5idmFsID0gMTAsIG5ibmVnOworCisJICAgIC8qIFZBTCBUT0RPOiBPcHRpbWl6ZWQgImFueVR5cGUiIHZhbGlkYXRpb24uKi8KKworCSAgICBpZiAocHR5cGUtPmNvbnRNb2RlbCA9PSBOVUxMKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRlQ2hpbGRFbGVtIiwKKwkJICAgICJ0eXBlIGhhcyBlbGVtIGNvbnRlbnQgYnV0IG5vIGNvbnRlbnQgbW9kZWwiKTsKKwkJcmV0dXJuICgtMSk7CisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBTYWZldHkgYmVsZiBmb3IgZXZhbHVhdGlvbiBpZiB0aGUgY29udC4gbW9kZWwgd2FzIGFscmVhZHkKKwkgICAgKiBleGFtaW5lZCB0byBiZSBpbnZhbGlkLgorCSAgICAqLworCSAgICBpZiAocGllbGVtLT5mbGFncyAmIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0VSUl9CQURfQ09OVEVOVCkgeworCQlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUNoaWxkRWxlbSIsCisJCSAgICAidmFsaWRhdGluZyBlbGVtLCBidXQgZWxlbSBjb250ZW50IGlzIGFscmVhZHkgaW52YWxpZCIpOworCQlyZXR1cm4gKC0xKTsKKwkgICAgfQorCisJICAgIHJlZ2V4Q3R4dCA9IHBpZWxlbS0+cmVnZXhDdHh0OworCSAgICBpZiAocmVnZXhDdHh0ID09IE5VTEwpIHsKKwkJLyoKKwkJKiBDcmVhdGUgdGhlIHJlZ2V4IGNvbnRleHQuCisJCSovCisJCXJlZ2V4Q3R4dCA9IHhtbFJlZ05ld0V4ZWNDdHh0KHB0eXBlLT5jb250TW9kZWwsCisJCSAgICAoeG1sUmVnRXhlY0NhbGxiYWNrcykgeG1sU2NoZW1hVkNvbnRlbnRNb2RlbENhbGxiYWNrLAorCQkgICAgdmN0eHQpOworCQlpZiAocmVnZXhDdHh0ID09IE5VTEwpIHsKKwkJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRlQ2hpbGRFbGVtIiwKKwkJCSJmYWlsZWQgdG8gY3JlYXRlIGEgcmVnZXggY29udGV4dCIpOworCQkgICAgcmV0dXJuICgtMSk7CisJCX0KKwkJcGllbGVtLT5yZWdleEN0eHQgPSByZWdleEN0eHQ7CisjaWZkZWYgREVCVUdfQVVUT01BVEEKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJBVVRPTUFUQSBjcmVhdGUgb24gJyVzJ1xuIiwKKwkJICAgIHBpZWxlbS0+bG9jYWxOYW1lKTsKKyNlbmRpZgorCSAgICB9CisKKwkgICAgLyoKKwkgICAgKiBTUEVDICgyLjQpICJJZiB0aGUge2NvbnRlbnQgdHlwZX0gaXMgZWxlbWVudC1vbmx5IG9yIG1peGVkLAorCSAgICAqIHRoZW4gdGhlIHNlcXVlbmNlIG9mIHRoZSBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0ncworCSAgICAqIGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSBbY2hpbGRyZW5dLCBpZiBhbnksIHRha2VuIGluCisJICAgICogb3JkZXIsIGlzIO+/vXZhbGlk77+9IHdpdGggcmVzcGVjdCB0byB0aGUge2NvbnRlbnQgdHlwZX0ncworCSAgICAqIHBhcnRpY2xlLCBhcyBkZWZpbmVkIGluIEVsZW1lbnQgU2VxdWVuY2UgTG9jYWxseSBWYWxpZAorCSAgICAqIChQYXJ0aWNsZSkgKO+/vTMuOS40KS4iCisJICAgICovCisJICAgIHJldCA9IHhtbFJlZ0V4ZWNQdXNoU3RyaW5nMihyZWdleEN0eHQsCisJCXZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLAorCQl2Y3R4dC0+aW5vZGUtPm5zTmFtZSwKKwkJdmN0eHQtPmlub2RlKTsKKyNpZmRlZiBERUJVR19BVVRPTUFUQQorCSAgICBpZiAocmV0IDwgMCkKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCSJBVVRPTUFUT04gcHVzaCBFUlJPUiBmb3IgJyVzJyBvbiAnJXMnXG4iLAorCQl2Y3R4dC0+aW5vZGUtPmxvY2FsTmFtZSwgcGllbGVtLT5sb2NhbE5hbWUpOworCSAgICBlbHNlCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkiQVVUT01BVE9OIHB1c2ggT0sgZm9yICclcycgb24gJyVzJ1xuIiwKKwkJdmN0eHQtPmlub2RlLT5sb2NhbE5hbWUsIHBpZWxlbS0+bG9jYWxOYW1lKTsKKyNlbmRpZgorCSAgICBpZiAodmN0eHQtPmVyciA9PSBYTUxfU0NIRU1BVl9JTlRFUk5BTCkgeworCQlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUNoaWxkRWxlbSIsCisJCSAgICAiY2FsbGluZyB4bWxSZWdFeGVjUHVzaFN0cmluZzIoKSIpOworCQlyZXR1cm4gKC0xKTsKKwkgICAgfQorCSAgICBpZiAocmV0IDwgMCkgeworCQl4bWxSZWdFeGVjRXJySW5mbyhyZWdleEN0eHQsIE5VTEwsICZuYnZhbCwgJm5ibmVnLAorCQkgICAgJnZhbHVlc1swXSwgJnRlcm1pbmFsKTsKKwkJeG1sU2NoZW1hQ29tcGxleFR5cGVFcnIoQUNUWFRfQ0FTVCB2Y3R4dCwKKwkJICAgIFhNTF9TQ0hFTUFWX0VMRU1FTlRfQ09OVEVOVCwgTlVMTCxOVUxMLAorCQkgICAgIlRoaXMgZWxlbWVudCBpcyBub3QgZXhwZWN0ZWQiLAorCQkgICAgbmJ2YWwsIG5ibmVnLCB2YWx1ZXMpOworCQlyZXQgPSB2Y3R4dC0+ZXJyOworCQlnb3RvIHVuZXhwZWN0ZWRfZWxlbTsKKwkgICAgfSBlbHNlCisJCXJldCA9IDA7CisJfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFfQ09OVEVOVF9TSU1QTEU6CisJY2FzZSBYTUxfU0NIRU1BX0NPTlRFTlRfQkFTSUM6CisJICAgIEFDVElWQVRFX1BBUkVOVF9FTEVNCisJICAgIGlmIChXWFNfSVNfQ09NUExFWChwdHlwZSkpIHsKKwkJLyoKKwkJKiBTUEVDIChjdmMtY29tcGxleC10eXBlKSAoMi4yKQorCQkqICJJZiB0aGUge2NvbnRlbnQgdHlwZX0gaXMgYSBzaW1wbGUgdHlwZSBkZWZpbml0aW9uLCB0aGVuCisJCSogdGhlIGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSBoYXMgbm8gZWxlbWVudCBpbmZvcm1hdGlvbgorCQkqIGl0ZW0gW2NoaWxkcmVuXSwgLi4uIgorCQkqLworCQlyZXQgPSBYTUxfU0NIRU1BVl9DVkNfQ09NUExFWF9UWVBFXzJfMjsKKwkJVkVSUk9SKHJldCwgTlVMTCwgIkVsZW1lbnQgY29udGVudCBpcyBub3QgYWxsb3dlZCwgIgorCQkgICAgImJlY2F1c2UgdGhlIGNvbnRlbnQgdHlwZSBpcyBhIHNpbXBsZSB0eXBlIGRlZmluaXRpb24iKTsKKwkgICAgfSBlbHNlIHsKKwkJLyoKKwkJKiBTUEVDIChjdmMtdHlwZSkgKDMuMS4yKSAiVGhlIGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSBtdXN0CisJCSogaGF2ZSBubyBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gW2NoaWxkcmVuXS4iCisJCSovCisJCXJldCA9IFhNTF9TQ0hFTUFWX0NWQ19UWVBFXzNfMV8yOworCQlWRVJST1IocmV0LCBOVUxMLCAiRWxlbWVudCBjb250ZW50IGlzIG5vdCBhbGxvd2VkLCAiCisJCSAgICAiYmVjYXVzZSB0aGUgdHlwZSBkZWZpbml0aW9uIGlzIHNpbXBsZSIpOworCSAgICB9CisJICAgIEFDVElWQVRFX0VMRU0KKwkgICAgcmV0ID0gdmN0eHQtPmVycjsKKwkgICAgZ290byB1bmV4cGVjdGVkX2VsZW07CisJICAgIGJyZWFrOworCisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAocmV0KTsKK3VuZXhwZWN0ZWRfZWxlbToKKyAgICAvKgorICAgICogUG9wIHRoaXMgZWxlbWVudCBhbmQgc2V0IHRoZSBza2lwRGVwdGggdG8gc2tpcAorICAgICogYWxsIGZ1cnRoZXIgY29udGVudCBvZiB0aGUgcGFyZW50IGVsZW1lbnQuCisgICAgKi8KKyAgICB2Y3R4dC0+c2tpcERlcHRoID0gdmN0eHQtPmRlcHRoOworICAgIHZjdHh0LT5pbm9kZS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9OT0RFX0lORk9fRVJSX05PVF9FWFBFQ1RFRDsKKyAgICBwaWVsZW0tPmZsYWdzIHw9IFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0VSUl9CQURfQ09OVEVOVDsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKyNkZWZpbmUgWE1MX1NDSEVNQV9QVVNIX1RFWFRfUEVSU0lTVCAxCisjZGVmaW5lIFhNTF9TQ0hFTUFfUFVTSF9URVhUX0NSRUFURUQgMgorI2RlZmluZSBYTUxfU0NIRU1BX1BVU0hfVEVYVF9WT0xBVElMRSAzCisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZQdXNoVGV4dCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQsCisJCSAgaW50IG5vZGVUeXBlLCBjb25zdCB4bWxDaGFyICp2YWx1ZSwgaW50IGxlbiwKKwkJICBpbnQgbW9kZSwgaW50ICpjb25zdW1lZCkKK3sKKyAgICAvKgorICAgICogVW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRvIGR1cGxpY2F0ZSB0aGUgdGV4dCBzb21ldGltZXMuCisgICAgKiBPUFRJTUlaRTogTWF5YmUgd2UgY291bGQgc2tpcCBpdCwgaWY6CisgICAgKiAgIDEuIGNvbnRlbnQgdHlwZSBpcyBzaW1wbGUKKyAgICAqICAgMi4gd2hpdGVzcGFjZSBpcyAiY29sbGFwc2UiCisgICAgKiAgIDMuIGl0IGNvbnNpc3RzIG9mIHdoaXRlc3BhY2Ugb25seQorICAgICoKKyAgICAqIFByb2Nlc3MgY2hhcmFjdGVyIGNvbnRlbnQuCisgICAgKi8KKyAgICBpZiAoY29uc3VtZWQgIT0gTlVMTCkKKwkqY29uc3VtZWQgPSAwOworICAgIGlmIChJTk9ERV9OSUxMRUQodmN0eHQtPmlub2RlKSkgeworCS8qCisJKiBTUEVDIGN2Yy1lbHQgKDMuMy40IC0gMy4yLjEpCisJKiAiVGhlIGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSBtdXN0IGhhdmUgbm8gY2hhcmFjdGVyIG9yCisJKiBlbGVtZW50IGluZm9ybWF0aW9uIGl0ZW0gW2NoaWxkcmVuXS4iCisJKi8KKwlWRVJST1IoWE1MX1NDSEVNQVZfQ1ZDX0VMVF8zXzJfMSwgTlVMTCwKKwkgICAgIk5laXRoZXIgY2hhcmFjdGVyIG5vciBlbGVtZW50IGNvbnRlbnQgaXMgYWxsb3dlZCAiCisJICAgICJiZWNhdXNlIHRoZSBlbGVtZW50IGlzICduaWxsZWQnIik7CisJcmV0dXJuICh2Y3R4dC0+ZXJyKTsKKyAgICB9CisgICAgLyoKKyAgICAqIFNQRUMgKDIuMSkgIklmIHRoZSB7Y29udGVudCB0eXBlfSBpcyBlbXB0eSwgdGhlbiB0aGUKKyAgICAqIGVsZW1lbnQgaW5mb3JtYXRpb24gaXRlbSBoYXMgbm8gY2hhcmFjdGVyIG9yIGVsZW1lbnQKKyAgICAqIGluZm9ybWF0aW9uIGl0ZW0gW2NoaWxkcmVuXS4iCisgICAgKi8KKyAgICBpZiAodmN0eHQtPmlub2RlLT50eXBlRGVmLT5jb250ZW50VHlwZSA9PQorCSAgICBYTUxfU0NIRU1BX0NPTlRFTlRfRU1QVFkpIHsKKwlWRVJST1IoWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzEsIE5VTEwsCisJICAgICJDaGFyYWN0ZXIgY29udGVudCBpcyBub3QgYWxsb3dlZCwgIgorCSAgICAiYmVjYXVzZSB0aGUgY29udGVudCB0eXBlIGlzIGVtcHR5Iik7CisJcmV0dXJuICh2Y3R4dC0+ZXJyKTsKKyAgICB9CisKKyAgICBpZiAodmN0eHQtPmlub2RlLT50eXBlRGVmLT5jb250ZW50VHlwZSA9PQorCSAgICBYTUxfU0NIRU1BX0NPTlRFTlRfRUxFTUVOVFMpIHsKKwlpZiAoKG5vZGVUeXBlICE9IFhNTF9URVhUX05PREUpIHx8CisJICAgICghIHhtbFNjaGVtYUlzQmxhbmsoKHhtbENoYXIgKikgdmFsdWUsIGxlbikpKSB7CisJICAgIC8qCisJICAgICogU1BFQyBjdmMtY29tcGxleC10eXBlICgyLjMpCisJICAgICogIklmIHRoZSB7Y29udGVudCB0eXBlfSBpcyBlbGVtZW50LW9ubHksIHRoZW4gdGhlCisJICAgICogZWxlbWVudCBpbmZvcm1hdGlvbiBpdGVtIGhhcyBubyBjaGFyYWN0ZXIgaW5mb3JtYXRpb24KKwkgICAgKiBpdGVtIFtjaGlsZHJlbl0gb3RoZXIgdGhhbiB0aG9zZSB3aG9zZSBbY2hhcmFjdGVyCisJICAgICogY29kZV0gaXMgZGVmaW5lZCBhcyBhIHdoaXRlIHNwYWNlIGluIFtYTUwgMS4wIChTZWNvbmQKKwkgICAgKiBFZGl0aW9uKV0uIgorCSAgICAqLworCSAgICBWRVJST1IoWE1MX1NDSEVNQVZfQ1ZDX0NPTVBMRVhfVFlQRV8yXzMsIE5VTEwsCisJCSJDaGFyYWN0ZXIgY29udGVudCBvdGhlciB0aGFuIHdoaXRlc3BhY2UgaXMgbm90IGFsbG93ZWQgIgorCQkiYmVjYXVzZSB0aGUgY29udGVudCB0eXBlIGlzICdlbGVtZW50LW9ubHknIik7CisJICAgIHJldHVybiAodmN0eHQtPmVycik7CisJfQorCXJldHVybiAoMCk7CisgICAgfQorCisgICAgaWYgKCh2YWx1ZSA9PSBOVUxMKSB8fCAodmFsdWVbMF0gPT0gMCkpCisJcmV0dXJuICgwKTsKKyAgICAvKgorICAgICogU2F2ZSB0aGUgdmFsdWUuCisgICAgKiBOT1RFIHRoYXQgZXZlbiBpZiB0aGUgY29udGVudCB0eXBlIGlzICptaXhlZCosIHdlIG5lZWQgdGhlCisgICAgKiAqaW5pdGlhbCB2YWx1ZSogZm9yIGRlZmF1bHQvZml4ZWQgdmFsdWUgY29uc3RyYWludHMuCisgICAgKi8KKyAgICBpZiAoKHZjdHh0LT5pbm9kZS0+dHlwZURlZi0+Y29udGVudFR5cGUgPT0gWE1MX1NDSEVNQV9DT05URU5UX01JWEVEKSAmJgorCSgodmN0eHQtPmlub2RlLT5kZWNsID09IE5VTEwpIHx8CisJKHZjdHh0LT5pbm9kZS0+ZGVjbC0+dmFsdWUgPT0gTlVMTCkpKQorCXJldHVybiAoMCk7CisKKyAgICBpZiAodmN0eHQtPmlub2RlLT52YWx1ZSA9PSBOVUxMKSB7CisJLyoKKwkqIFNldCB0aGUgdmFsdWUuCisJKi8KKwlzd2l0Y2ggKG1vZGUpIHsKKwkgICAgY2FzZSBYTUxfU0NIRU1BX1BVU0hfVEVYVF9QRVJTSVNUOgorCQkvKgorCQkqIFdoZW4gd29ya2luZyBvbiBhIHRyZWUuCisJCSovCisJCXZjdHh0LT5pbm9kZS0+dmFsdWUgPSB2YWx1ZTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9QVVNIX1RFWFRfQ1JFQVRFRDoKKwkJLyoKKwkJKiBXaGVuIHdvcmtpbmcgd2l0aCB0aGUgcmVhZGVyLgorCQkqIFRoZSB2YWx1ZSB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBlbGVtZW50IGluZm8uCisJCSovCisJCXZjdHh0LT5pbm9kZS0+dmFsdWUgPSB2YWx1ZTsKKwkJaWYgKGNvbnN1bWVkICE9IE5VTEwpCisJCSAgICAqY29uc3VtZWQgPSAxOworCQl2Y3R4dC0+aW5vZGUtPmZsYWdzIHw9CisJCSAgICBYTUxfU0NIRU1BX05PREVfSU5GT19GTEFHX09XTkVEX1ZBTFVFUzsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQV9QVVNIX1RFWFRfVk9MQVRJTEU6CisJCS8qCisJCSogV2hlbiB3b3JraW5nIHdpdGggU0FYLgorCQkqIFRoZSB2YWx1ZSB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBlbGVtZW50IGluZm8uCisJCSovCisJCWlmIChsZW4gIT0gLTEpCisJCSAgICB2Y3R4dC0+aW5vZGUtPnZhbHVlID0gQkFEX0NBU1QgeG1sU3RybmR1cCh2YWx1ZSwgbGVuKTsKKwkJZWxzZQorCQkgICAgdmN0eHQtPmlub2RlLT52YWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cCh2YWx1ZSk7CisJCXZjdHh0LT5pbm9kZS0+ZmxhZ3MgfD0KKwkJICAgIFhNTF9TQ0hFTUFfTk9ERV9JTkZPX0ZMQUdfT1dORURfVkFMVUVTOworCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorICAgIH0gZWxzZSB7CisJaWYgKGxlbiA8IDApCisJICAgIGxlbiA9IHhtbFN0cmxlbih2YWx1ZSk7CisJLyoKKwkqIENvbmNhdCB0aGUgdmFsdWUuCisJKi8KKwlpZiAodmN0eHQtPmlub2RlLT5mbGFncyAmIFhNTF9TQ0hFTUFfTk9ERV9JTkZPX0ZMQUdfT1dORURfVkFMVUVTKSB7CisJICAgIHZjdHh0LT5pbm9kZS0+dmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJuY2F0KAorCQkoeG1sQ2hhciAqKSB2Y3R4dC0+aW5vZGUtPnZhbHVlLCB2YWx1ZSwgbGVuKTsKKwl9IGVsc2UgeworCSAgICB2Y3R4dC0+aW5vZGUtPnZhbHVlID0KKwkJQkFEX0NBU1QgeG1sU3RybmNhdE5ldyh2Y3R4dC0+aW5vZGUtPnZhbHVlLCB2YWx1ZSwgbGVuKTsKKwkgICAgdmN0eHQtPmlub2RlLT5mbGFncyB8PSBYTUxfU0NIRU1BX05PREVfSU5GT19GTEFHX09XTkVEX1ZBTFVFUzsKKwl9CisgICAgfQorCisgICAgcmV0dXJuICgwKTsKK30KKworc3RhdGljIGludAoreG1sU2NoZW1hVmFsaWRhdGVFbGVtKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmICgodmN0eHQtPnNraXBEZXB0aCAhPSAtMSkgJiYKKwkodmN0eHQtPmRlcHRoID49IHZjdHh0LT5za2lwRGVwdGgpKSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hVmFsaWRhdGVFbGVtIiwKKwkgICAgImluIHNraXAtc3RhdGUiKTsKKwlnb3RvIGludGVybmFsX2Vycm9yOworICAgIH0KKyAgICBpZiAodmN0eHQtPnhzaUFzc2VtYmxlKSB7CisJLyoKKwkqIFdlIHdpbGwgc3RvcCB2YWxpZGF0aW9uIGlmIHRoZXJlIHdhcyBhbiBlcnJvciBkdXJpbmcKKwkqIGR5bmFtaWMgc2NoZW1hIGNvbnN0cnVjdGlvbi4KKwkqIE5vdGUgdGhhdCB3ZSBzaW1wbHkgc2V0IEBza2lwRGVwdGggdG8gMCwgdGhpcyBjb3VsZAorCSogbWVhbiB0aGF0IGEgc3RyZWFtaW5nIGRvY3VtZW50IHZpYSBTQVggd291bGQgYmUKKwkqIHN0aWxsIHJlYWQgdG8gdGhlIGVuZCBidXQgaXQgd29uJ3QgYmUgdmFsaWRhdGVkIGFueSBtb3JlLgorCSogVE9ETzogSWYgd2UgYXJlIHN1cmUgaG93IHRvIHN0b3AgdGhlIHZhbGlkYXRpb24gYXQgb25jZQorCSogICBmb3IgYWxsIGlucHV0IHNjZW5hcmlvcywgdGhlbiB0aGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvCisJKiAgIGluc3RhbnRseSBzdG9wIHRoZSB2YWxpZGF0aW9uLgorCSovCisJcmV0ID0geG1sU2NoZW1hQXNzZW1ibGVCeVhTSSh2Y3R4dCk7CisJaWYgKHJldCAhPSAwKSB7CisJICAgIGlmIChyZXQgPT0gLTEpCisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIHZjdHh0LT5za2lwRGVwdGggPSAwOworCSAgICByZXR1cm4ocmV0KTsKKwl9CisgICAgfQorICAgIGlmICh2Y3R4dC0+ZGVwdGggPiAwKSB7CisJLyoKKwkqIFZhbGlkYXRlIHRoaXMgZWxlbWVudCBhZ2FpbnN0IHRoZSBjb250ZW50IG1vZGVsCisJKiBvZiB0aGUgcGFyZW50LgorCSovCisJcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVDaGlsZEVsZW0odmN0eHQpOworCWlmIChyZXQgIT0gMCkgeworCSAgICBpZiAocmV0IDwgMCkgeworCQlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUVsZW0iLAorCQkgICAgImNhbGxpbmcgeG1sU2NoZW1hU3RyZWFtVmFsaWRhdGVDaGlsZEVsZW1lbnQoKSIpOworCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICB9CisJICAgIGdvdG8gZXhpdDsKKwl9CisJaWYgKHZjdHh0LT5kZXB0aCA9PSB2Y3R4dC0+c2tpcERlcHRoKQorCSAgICBnb3RvIGV4aXQ7CisJaWYgKCh2Y3R4dC0+aW5vZGUtPmRlY2wgPT0gTlVMTCkgJiYKKwkgICAgKHZjdHh0LT5pbm9kZS0+dHlwZURlZiA9PSBOVUxMKSkgeworCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUVsZW0iLAorCQkidGhlIGNoaWxkIGVsZW1lbnQgd2FzIHZhbGlkIGJ1dCBuZWl0aGVyIHRoZSAiCisJCSJkZWNsYXJhdGlvbiBub3IgdGhlIHR5cGUgd2FzIHNldCIpOworCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCX0KKyAgICB9IGVsc2UgeworCS8qCisJKiBHZXQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSB2YWxpZGF0aW9uIHJvb3QuCisJKi8KKwl2Y3R4dC0+aW5vZGUtPmRlY2wgPSB4bWxTY2hlbWFHZXRFbGVtKHZjdHh0LT5zY2hlbWEsCisJICAgIHZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLAorCSAgICB2Y3R4dC0+aW5vZGUtPm5zTmFtZSk7CisJaWYgKHZjdHh0LT5pbm9kZS0+ZGVjbCA9PSBOVUxMKSB7CisJICAgIHJldCA9IFhNTF9TQ0hFTUFWX0NWQ19FTFRfMTsKKwkgICAgVkVSUk9SKHJldCwgTlVMTCwKKwkJIk5vIG1hdGNoaW5nIGdsb2JhbCBkZWNsYXJhdGlvbiBhdmFpbGFibGUgIgorCQkiZm9yIHRoZSB2YWxpZGF0aW9uIHJvb3QiKTsKKwkgICAgZ290byBleGl0OworCX0KKyAgICB9CisKKyAgICBpZiAodmN0eHQtPmlub2RlLT5kZWNsID09IE5VTEwpCisJZ290byB0eXBlX3ZhbGlkYXRpb247CisKKyAgICBpZiAodmN0eHQtPmlub2RlLT5kZWNsLT50eXBlID09IFhNTF9TQ0hFTUFfVFlQRV9BTlkpIHsKKwlpbnQgc2tpcDsKKwkvKgorCSogV2lsZGNhcmRzLgorCSovCisJcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVFbGVtV2lsZGNhcmQodmN0eHQsICZza2lwKTsKKwlpZiAocmV0ICE9IDApIHsKKwkgICAgaWYgKHJldCA8IDApIHsKKwkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVmFsaWRhdGVFbGVtIiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYVZhbGlkYXRlRWxlbVdpbGRjYXJkKCkiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCSAgICBnb3RvIGV4aXQ7CisJfQorCWlmIChza2lwKSB7CisJICAgIHZjdHh0LT5za2lwRGVwdGggPSB2Y3R4dC0+ZGVwdGg7CisJICAgIGdvdG8gZXhpdDsKKwl9CisJLyoKKwkqIFRoZSBkZWNsYXJhdGlvbiBtaWdodCBiZSBzZXQgYnkgdGhlIHdpbGRjYXJkIHZhbGlkYXRpb24sCisJKiB3aGVuIHRoZSBwcm9jZXNzQ29udGVudHMgaXMgImxheCIgb3IgInN0cmljdCIuCisJKi8KKwlpZiAodmN0eHQtPmlub2RlLT5kZWNsLT50eXBlICE9IFhNTF9TQ0hFTUFfVFlQRV9FTEVNRU5UKSB7CisJICAgIC8qCisJICAgICogQ2xlYXIgdGhlICJkZWNsIiBmaWVsZCB0byBub3QgY29uZnVzZSBmdXJ0aGVyIHByb2Nlc3NpbmcuCisJICAgICovCisJICAgIHZjdHh0LT5pbm9kZS0+ZGVjbCA9IE5VTEw7CisJICAgIGdvdG8gdHlwZV92YWxpZGF0aW9uOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIFZhbGlkYXRlIGFnYWluc3QgdGhlIGRlY2xhcmF0aW9uLgorICAgICovCisgICAgcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVFbGVtRGVjbCh2Y3R4dCk7CisgICAgaWYgKHJldCAhPSAwKSB7CisJaWYgKHJldCA8IDApIHsKKwkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hVmFsaWRhdGVFbGVtIiwKKwkJImNhbGxpbmcgeG1sU2NoZW1hVmFsaWRhdGVFbGVtRGVjbCgpIik7CisJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJfQorCWdvdG8gZXhpdDsKKyAgICB9CisgICAgLyoKKyAgICAqIFZhbGlkYXRlIGFnYWluc3QgdGhlIHR5cGUgZGVmaW5pdGlvbi4KKyAgICAqLwordHlwZV92YWxpZGF0aW9uOgorCisgICAgaWYgKHZjdHh0LT5pbm9kZS0+dHlwZURlZiA9PSBOVUxMKSB7CisJdmN0eHQtPmlub2RlLT5mbGFncyB8PSBYTUxfU0NIRU1BX05PREVfSU5GT19FUlJfQkFEX1RZUEU7CisJcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMTsKKyAgICAJVkVSUk9SKHJldCwgTlVMTCwKKyAgICAJICAgICJUaGUgdHlwZSBkZWZpbml0aW9uIGlzIGFic2VudCIpOworCWdvdG8gZXhpdDsKKyAgICB9CisgICAgaWYgKHZjdHh0LT5pbm9kZS0+dHlwZURlZi0+ZmxhZ3MgJiBYTUxfU0NIRU1BU19UWVBFX0FCU1RSQUNUKSB7CisJdmN0eHQtPmlub2RlLT5mbGFncyB8PSBYTUxfU0NIRU1BX05PREVfSU5GT19FUlJfQkFEX1RZUEU7CisJcmV0ID0gWE1MX1NDSEVNQVZfQ1ZDX1RZUEVfMjsKKyAgICAJICAgIFZFUlJPUihyZXQsIE5VTEwsCisgICAgCSAgICAiVGhlIHR5cGUgZGVmaW5pdGlvbiBpcyBhYnN0cmFjdCIpOworCWdvdG8gZXhpdDsKKyAgICB9CisgICAgLyoKKyAgICAqIEV2YWx1YXRlIElEQ3MuIERvIGl0IGhlcmUsIHNpbmNlIG5ldyBJREMgbWF0Y2hlcnMgYXJlIHJlZ2lzdGVyZWQKKyAgICAqIGR1cmluZyB2YWxpZGF0aW9uIGFnYWluc3QgdGhlIGRlY2xhcmF0aW9uLiBUaGlzIG11c3QgYmUgZG9uZQorICAgICogX2JlZm9yZV8gYXR0cmlidXRlIHZhbGlkYXRpb24uCisgICAgKi8KKyAgICBpZiAodmN0eHQtPnhwYXRoU3RhdGVzICE9IE5VTEwpIHsKKwlyZXQgPSB4bWxTY2hlbWFYUGF0aEV2YWx1YXRlKHZjdHh0LCBYTUxfRUxFTUVOVF9OT0RFKTsKKwl2Y3R4dC0+aW5vZGUtPmFwcGxpZWRYUGF0aCA9IDE7CisJaWYgKHJldCA9PSAtMSkgeworCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFWYWxpZGF0ZUVsZW0iLAorCQkiY2FsbGluZyB4bWxTY2hlbWFYUGF0aEV2YWx1YXRlKCkiKTsKKwkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBWYWxpZGF0ZSBhdHRyaWJ1dGVzLgorICAgICovCisgICAgaWYgKFdYU19JU19DT01QTEVYKHZjdHh0LT5pbm9kZS0+dHlwZURlZikpIHsKKwlpZiAoKHZjdHh0LT5uYkF0dHJJbmZvcyAhPSAwKSB8fAorCSAgICAodmN0eHQtPmlub2RlLT50eXBlRGVmLT5hdHRyVXNlcyAhPSBOVUxMKSkgeworCisJICAgIHJldCA9IHhtbFNjaGVtYVZBdHRyaWJ1dGVzQ29tcGxleCh2Y3R4dCk7CisJfQorICAgIH0gZWxzZSBpZiAodmN0eHQtPm5iQXR0ckluZm9zICE9IDApIHsKKworCXJldCA9IHhtbFNjaGVtYVZBdHRyaWJ1dGVzU2ltcGxlKHZjdHh0KTsKKyAgICB9CisgICAgLyoKKyAgICAqIENsZWFyIHJlZ2lzdGVyZWQgYXR0cmlidXRlcy4KKyAgICAqLworICAgIGlmICh2Y3R4dC0+bmJBdHRySW5mb3MgIT0gMCkKKwl4bWxTY2hlbWFDbGVhckF0dHJJbmZvcyh2Y3R4dCk7CisgICAgaWYgKHJldCA9PSAtMSkgeworCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZhbGlkYXRlRWxlbSIsCisJICAgICJjYWxsaW5nIGF0dHJpYnV0ZXMgdmFsaWRhdGlvbiIpOworCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisgICAgfQorICAgIC8qCisgICAgKiBEb24ndCByZXR1cm4gYW4gZXJyb3IgaWYgYXR0cmlidXRlcyBhcmUgaW52YWxpZCBvbiBwdXJwb3NlLgorICAgICovCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBpZiAocmV0ICE9IDApCisJdmN0eHQtPnNraXBEZXB0aCA9IHZjdHh0LT5kZXB0aDsKKyAgICByZXR1cm4gKHJldCk7CitpbnRlcm5hbF9lcnJvcjoKKyAgICByZXR1cm4gKC0xKTsKK30KKworI2lmZGVmIFhNTF9TQ0hFTUFfUkVBREVSX0VOQUJMRUQKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZSZWFkZXJXYWxrKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkKK3sKKyAgICBjb25zdCBpbnQgV0hUU1AgPSAxMywgU0lHTl9XSFRTUCA9IDE0LCBFTkRfRUxFTSA9IDE1OworICAgIGludCBkZXB0aCwgbm9kZVR5cGUsIHJldCA9IDAsIGNvbnN1bWVkOworICAgIHhtbFNjaGVtYU5vZGVJbmZvUHRyIGllbGVtOworCisgICAgdmN0eHQtPmRlcHRoID0gLTE7CisgICAgcmV0ID0geG1sVGV4dFJlYWRlclJlYWQodmN0eHQtPnJlYWRlcik7CisgICAgLyoKKyAgICAqIE1vdmUgdG8gdGhlIGRvY3VtZW50IGVsZW1lbnQuCisgICAgKi8KKyAgICB3aGlsZSAocmV0ID09IDEpIHsKKwlub2RlVHlwZSA9IHhtbFRleHRSZWFkZXJOb2RlVHlwZSh2Y3R4dC0+cmVhZGVyKTsKKwlpZiAobm9kZVR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkgICAgZ290byByb290X2ZvdW5kOworCXJldCA9IHhtbFRleHRSZWFkZXJSZWFkKHZjdHh0LT5yZWFkZXIpOworICAgIH0KKyAgICBnb3RvIGV4aXQ7CisKK3Jvb3RfZm91bmQ6CisKKyAgICBkbyB7CisJZGVwdGggPSB4bWxUZXh0UmVhZGVyRGVwdGgodmN0eHQtPnJlYWRlcik7CisJbm9kZVR5cGUgPSB4bWxUZXh0UmVhZGVyTm9kZVR5cGUodmN0eHQtPnJlYWRlcik7CisKKwlpZiAobm9kZVR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCisJICAgIHZjdHh0LT5kZXB0aCsrOworCSAgICBpZiAoeG1sU2NoZW1hVmFsaWRhdG9yUHVzaEVsZW0odmN0eHQpID09IC0xKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZSZWFkZXJXYWxrIiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYVZhbGlkYXRvclB1c2hFbGVtKCkiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCSAgICBpZWxlbSA9IHZjdHh0LT5pbm9kZTsKKwkgICAgaWVsZW0tPmxvY2FsTmFtZSA9IHhtbFRleHRSZWFkZXJMb2NhbE5hbWUodmN0eHQtPnJlYWRlcik7CisJICAgIGllbGVtLT5uc05hbWUgPSB4bWxUZXh0UmVhZGVyTmFtZXNwYWNlVXJpKHZjdHh0LT5yZWFkZXIpOworCSAgICBpZWxlbS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9OT0RFX0lORk9fRkxBR19PV05FRF9OQU1FUzsKKwkgICAgLyoKKwkgICAgKiBJcyB0aGUgZWxlbWVudCBlbXB0eT8KKwkgICAgKi8KKwkgICAgcmV0ID0geG1sVGV4dFJlYWRlcklzRW1wdHlFbGVtZW50KHZjdHh0LT5yZWFkZXIpOworCSAgICBpZiAocmV0ID09IC0xKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZSZWFkZXJXYWxrIiwKKwkJICAgICJjYWxsaW5nIHhtbFRleHRSZWFkZXJJc0VtcHR5RWxlbWVudCgpIik7CisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIH0KKwkgICAgaWYgKHJldCkgeworCQlpZWxlbS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFk7CisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBSZWdpc3RlciBhdHRyaWJ1dGVzLgorCSAgICAqLworCSAgICB2Y3R4dC0+bmJBdHRySW5mb3MgPSAwOworCSAgICByZXQgPSB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUodmN0eHQtPnJlYWRlcik7CisJICAgIGlmIChyZXQgPT0gLTEpIHsKKwkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVlJlYWRlcldhbGsiLAorCQkgICAgImNhbGxpbmcgeG1sVGV4dFJlYWRlck1vdmVUb0ZpcnN0QXR0cmlidXRlKCkiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCSAgICBpZiAocmV0ID09IDEpIHsKKwkJZG8geworCQkgICAgLyoKKwkJICAgICogVkFMIFRPRE86IEhvdyBkbyB3ZSBrbm93IHRoYXQgdGhlIHJlYWRlciB3b3JrcyBvbiBhCisJCSAgICAqIG5vZGUgdHJlZSwgdG8gYmUgYWJsZSB0byBwYXNzIGEgbm9kZSBoZXJlPworCQkgICAgKi8KKwkJICAgIGlmICh4bWxTY2hlbWFWYWxpZGF0b3JQdXNoQXR0cmlidXRlKHZjdHh0LCBOVUxMLAorCQkJKGNvbnN0IHhtbENoYXIgKikgeG1sVGV4dFJlYWRlckxvY2FsTmFtZSh2Y3R4dC0+cmVhZGVyKSwKKwkJCXhtbFRleHRSZWFkZXJOYW1lc3BhY2VVcmkodmN0eHQtPnJlYWRlciksIDEsCisJCQl4bWxUZXh0UmVhZGVyVmFsdWUodmN0eHQtPnJlYWRlciksIDEpID09IC0xKSB7CisKKwkJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZSZWFkZXJXYWxrIiwKKwkJCSAgICAiY2FsbGluZyB4bWxTY2hlbWFWYWxpZGF0b3JQdXNoQXR0cmlidXRlKCkiKTsKKwkJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCSAgICB9CisJCSAgICByZXQgPSB4bWxUZXh0UmVhZGVyTW92ZVRvTmV4dEF0dHJpYnV0ZSh2Y3R4dC0+cmVhZGVyKTsKKwkJICAgIGlmIChyZXQgPT0gLTEpIHsKKwkJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZSZWFkZXJXYWxrIiwKKwkJCSAgICAiY2FsbGluZyB4bWxUZXh0UmVhZGVyTW92ZVRvRmlyc3RBdHRyaWJ1dGUoKSIpOworCQkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJICAgIH0KKwkJfSB3aGlsZSAocmV0ID09IDEpOworCQkvKgorCQkqIEJhY2sgdG8gZWxlbWVudCBwb3NpdGlvbi4KKwkJKi8KKwkJcmV0ID0geG1sVGV4dFJlYWRlck1vdmVUb0VsZW1lbnQodmN0eHQtPnJlYWRlcik7CisJCWlmIChyZXQgPT0gLTEpIHsKKwkJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVZSZWFkZXJXYWxrIiwKKwkJCSJjYWxsaW5nIHhtbFRleHRSZWFkZXJNb3ZlVG9FbGVtZW50KCkiKTsKKwkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCX0KKwkgICAgfQorCSAgICAvKgorCSAgICAqIFZhbGlkYXRlIHRoZSBlbGVtZW50LgorCSAgICAqLworCSAgICByZXQ9IHhtbFNjaGVtYVZhbGlkYXRlRWxlbSh2Y3R4dCk7CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0ID09IC0xKSB7CisJCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFWUmVhZGVyV2FsayIsCisJCQkiY2FsbGluZyB4bWxTY2hlbWFWYWxpZGF0ZUVsZW0oKSIpOworCQkgICAgZ290byBpbnRlcm5hbF9lcnJvcjsKKwkJfQorCQlnb3RvIGV4aXQ7CisJICAgIH0KKwkgICAgaWYgKHZjdHh0LT5kZXB0aCA9PSB2Y3R4dC0+c2tpcERlcHRoKSB7CisJCWludCBjdXJEZXB0aDsKKwkJLyoKKwkJKiBTa2lwIGFsbCBjb250ZW50LgorCQkqLworCQlpZiAoKGllbGVtLT5mbGFncyAmIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0VNUFRZKSA9PSAwKSB7CisJCSAgICByZXQgPSB4bWxUZXh0UmVhZGVyUmVhZCh2Y3R4dC0+cmVhZGVyKTsKKwkJICAgIGN1ckRlcHRoID0geG1sVGV4dFJlYWRlckRlcHRoKHZjdHh0LT5yZWFkZXIpOworCQkgICAgd2hpbGUgKChyZXQgPT0gMSkgJiYgKGN1ckRlcHRoICE9IGRlcHRoKSkgeworCQkJcmV0ID0geG1sVGV4dFJlYWRlclJlYWQodmN0eHQtPnJlYWRlcik7CisJCQljdXJEZXB0aCA9IHhtbFRleHRSZWFkZXJEZXB0aCh2Y3R4dC0+cmVhZGVyKTsKKwkJICAgIH0KKwkJICAgIGlmIChyZXQgPCAwKSB7CisJCQkvKgorCQkJKiBWQUwgVE9ETzogQSByZWFkZXIgZXJyb3Igb2NjdXJlZDsgd2hhdCB0byBkbyBoZXJlPworCQkJKi8KKwkJCXJldCA9IDE7CisJCQlnb3RvIGV4aXQ7CisJCSAgICB9CisJCX0KKwkJZ290byBsZWF2ZV9lbGVtOworCSAgICB9CisJICAgIC8qCisJICAgICogUkVBREVSIFZBTCBUT0RPOiBJcyBhbiBFTkRfRUxFTSByZWFsbHkgbmV2ZXIgY2FsbGVkCisJICAgICogaWYgdGhlIGVsZW0gaXMgZW1wdHk/CisJICAgICovCisJICAgIGlmIChpZWxlbS0+ZmxhZ3MgJiBYTUxfU0NIRU1BX0VMRU1fSU5GT19FTVBUWSkKKwkJZ290byBsZWF2ZV9lbGVtOworCX0gZWxzZSBpZiAobm9kZVR5cGUgPT0gRU5EX0VMRU0pIHsKKwkgICAgLyoKKwkgICAgKiBQcm9jZXNzIEVORCBvZiBlbGVtZW50LgorCSAgICAqLworbGVhdmVfZWxlbToKKwkgICAgcmV0ID0geG1sU2NoZW1hVmFsaWRhdG9yUG9wRWxlbSh2Y3R4dCk7CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0IDwgMCkgeworCQkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hVlJlYWRlcldhbGsiLAorCQkJImNhbGxpbmcgeG1sU2NoZW1hVmFsaWRhdG9yUG9wRWxlbSgpIik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJCWdvdG8gZXhpdDsKKwkgICAgfQorCSAgICBpZiAodmN0eHQtPmRlcHRoID49IDApCisJCWllbGVtID0gdmN0eHQtPmlub2RlOworCSAgICBlbHNlCisJCWllbGVtID0gTlVMTDsKKwl9IGVsc2UgaWYgKChub2RlVHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorCSAgICAobm9kZVR5cGUgPT0gWE1MX0NEQVRBX1NFQ1RJT05fTk9ERSkgfHwKKwkgICAgKG5vZGVUeXBlID09IFdIVFNQKSB8fAorCSAgICAobm9kZVR5cGUgPT0gU0lHTl9XSFRTUCkpIHsKKwkgICAgLyoKKwkgICAgKiBQcm9jZXNzIGNoYXJhY3RlciBjb250ZW50LgorCSAgICAqLworCSAgICB4bWxDaGFyICp2YWx1ZTsKKworCSAgICBpZiAoKG5vZGVUeXBlID09IFdIVFNQKSB8fCAobm9kZVR5cGUgPT0gU0lHTl9XSFRTUCkpCisJCW5vZGVUeXBlID0gWE1MX1RFWFRfTk9ERTsKKworCSAgICB2YWx1ZSA9IHhtbFRleHRSZWFkZXJWYWx1ZSh2Y3R4dC0+cmVhZGVyKTsKKwkgICAgcmV0ID0geG1sU2NoZW1hVlB1c2hUZXh0KHZjdHh0LCBub2RlVHlwZSwgQkFEX0NBU1QgdmFsdWUsCisJCS0xLCBYTUxfU0NIRU1BX1BVU0hfVEVYVF9DUkVBVEVELCAmY29uc3VtZWQpOworCSAgICBpZiAoISBjb25zdW1lZCkKKwkJeG1sRnJlZSh2YWx1ZSk7CisJICAgIGlmIChyZXQgPT0gLTEpIHsKKwkJVkVSUk9SX0lOVCgieG1sU2NoZW1hVlJlYWRlcldhbGsiLAorCQkgICAgImNhbGxpbmcgeG1sU2NoZW1hVlB1c2hUZXh0KCkiKTsKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgfQorCX0gZWxzZSBpZiAoKG5vZGVUeXBlID09IFhNTF9FTlRJVFlfTk9ERSkgfHwKKwkgICAgKG5vZGVUeXBlID09IFhNTF9FTlRJVFlfUkVGX05PREUpKSB7CisJICAgIC8qCisJICAgICogVkFMIFRPRE86IFdoYXQgdG8gZG8gd2l0aCBlbnRpdGllcz8KKwkgICAgKi8KKwkgICAgVE9ETworCX0KKwkvKgorCSogUmVhZCBuZXh0IG5vZGUuCisJKi8KKwlyZXQgPSB4bWxUZXh0UmVhZGVyUmVhZCh2Y3R4dC0+cmVhZGVyKTsKKyAgICB9IHdoaWxlIChyZXQgPT0gMSk7CisKK2V4aXQ6CisgICAgcmV0dXJuIChyZXQpOworaW50ZXJuYWxfZXJyb3I6CisgICAgcmV0dXJuICgtMSk7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQkJU0FYIHZhbGlkYXRpb24gaGFuZGxlcnMJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyogUHJvY2VzcyB0ZXh0IGNvbnRlbnQuCisqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYVNBWEhhbmRsZVRleHQodm9pZCAqY3R4LAorCQkgICAgICAgY29uc3QgeG1sQ2hhciAqIGNoLAorCQkgICAgICAgaW50IGxlbikKK3sKKyAgICB4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQgPSAoeG1sU2NoZW1hVmFsaWRDdHh0UHRyKSBjdHg7CisKKyAgICBpZiAodmN0eHQtPmRlcHRoIDwgMCkKKwlyZXR1cm47CisgICAgaWYgKCh2Y3R4dC0+c2tpcERlcHRoICE9IC0xKSAmJiAodmN0eHQtPmRlcHRoID49IHZjdHh0LT5za2lwRGVwdGgpKQorCXJldHVybjsKKyAgICBpZiAodmN0eHQtPmlub2RlLT5mbGFncyAmIFhNTF9TQ0hFTUFfRUxFTV9JTkZPX0VNUFRZKQorCXZjdHh0LT5pbm9kZS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFk7CisgICAgaWYgKHhtbFNjaGVtYVZQdXNoVGV4dCh2Y3R4dCwgWE1MX1RFWFRfTk9ERSwgY2gsIGxlbiwKKwlYTUxfU0NIRU1BX1BVU0hfVEVYVF9WT0xBVElMRSwgTlVMTCkgPT0gLTEpIHsKKwlWRVJST1JfSU5UKCJ4bWxTY2hlbWFTQVhIYW5kbGVDRGF0YVNlY3Rpb24iLAorCSAgICAiY2FsbGluZyB4bWxTY2hlbWFWUHVzaFRleHQoKSIpOworCXZjdHh0LT5lcnIgPSAtMTsKKwl4bWxTdG9wUGFyc2VyKHZjdHh0LT5wYXJzZXJDdHh0KTsKKyAgICB9Cit9CisKKy8qCisqIFByb2Nlc3MgQ0RBVEEgY29udGVudC4KKyovCitzdGF0aWMgdm9pZAoreG1sU2NoZW1hU0FYSGFuZGxlQ0RhdGFTZWN0aW9uKHZvaWQgKmN0eCwKKwkJCSAgICAgY29uc3QgeG1sQ2hhciAqIGNoLAorCQkJICAgICBpbnQgbGVuKQoreworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpIGN0eDsKKworICAgIGlmICh2Y3R4dC0+ZGVwdGggPCAwKQorCXJldHVybjsKKyAgICBpZiAoKHZjdHh0LT5za2lwRGVwdGggIT0gLTEpICYmICh2Y3R4dC0+ZGVwdGggPj0gdmN0eHQtPnNraXBEZXB0aCkpCisJcmV0dXJuOworICAgIGlmICh2Y3R4dC0+aW5vZGUtPmZsYWdzICYgWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFkpCisJdmN0eHQtPmlub2RlLT5mbGFncyBePSBYTUxfU0NIRU1BX0VMRU1fSU5GT19FTVBUWTsKKyAgICBpZiAoeG1sU2NoZW1hVlB1c2hUZXh0KHZjdHh0LCBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFLCBjaCwgbGVuLAorCVhNTF9TQ0hFTUFfUFVTSF9URVhUX1ZPTEFUSUxFLCBOVUxMKSA9PSAtMSkgeworCVZFUlJPUl9JTlQoInhtbFNjaGVtYVNBWEhhbmRsZUNEYXRhU2VjdGlvbiIsCisJICAgICJjYWxsaW5nIHhtbFNjaGVtYVZQdXNoVGV4dCgpIik7CisJdmN0eHQtPmVyciA9IC0xOworCXhtbFN0b3BQYXJzZXIodmN0eHQtPnBhcnNlckN0eHQpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYVNBWEhhbmRsZVJlZmVyZW5jZSh2b2lkICpjdHggQVRUUklCVVRFX1VOVVNFRCwKKwkJCSAgICBjb25zdCB4bWxDaGFyICogbmFtZSBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpIGN0eDsKKworICAgIGlmICh2Y3R4dC0+ZGVwdGggPCAwKQorCXJldHVybjsKKyAgICBpZiAoKHZjdHh0LT5za2lwRGVwdGggIT0gLTEpICYmICh2Y3R4dC0+ZGVwdGggPj0gdmN0eHQtPnNraXBEZXB0aCkpCisJcmV0dXJuOworICAgIC8qIFNBWCBWQUwgVE9ETzogV2hhdCB0byBkbyBoZXJlPyAqLworICAgIFRPRE8KK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYVNBWEhhbmRsZVN0YXJ0RWxlbWVudE5zKHZvaWQgKmN0eCwKKwkJCQkgY29uc3QgeG1sQ2hhciAqIGxvY2FsbmFtZSwKKwkJCQkgY29uc3QgeG1sQ2hhciAqIHByZWZpeCBBVFRSSUJVVEVfVU5VU0VELAorCQkJCSBjb25zdCB4bWxDaGFyICogVVJJLAorCQkJCSBpbnQgbmJfbmFtZXNwYWNlcywKKwkJCQkgY29uc3QgeG1sQ2hhciAqKiBuYW1lc3BhY2VzLAorCQkJCSBpbnQgbmJfYXR0cmlidXRlcywKKwkJCQkgaW50IG5iX2RlZmF1bHRlZCBBVFRSSUJVVEVfVU5VU0VELAorCQkJCSBjb25zdCB4bWxDaGFyICoqIGF0dHJpYnV0ZXMpCit7CisgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0ID0gKHhtbFNjaGVtYVZhbGlkQ3R4dFB0cikgY3R4OworICAgIGludCByZXQ7CisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgaWVsZW07CisgICAgaW50IGksIGo7CisKKyAgICAvKgorICAgICogU0FYIFZBTCBUT0RPOiBXaGF0IHRvIGRvIHdpdGggbmJfZGVmYXVsdGVkPworICAgICovCisgICAgLyoKKyAgICAqIFNraXAgZWxlbWVudHMgaWYgaW5zaWRlIGEgInNraXAiIHdpbGRjYXJkIG9yIGludmFsaWQuCisgICAgKi8KKyAgICB2Y3R4dC0+ZGVwdGgrKzsKKyAgICBpZiAoKHZjdHh0LT5za2lwRGVwdGggIT0gLTEpICYmICh2Y3R4dC0+ZGVwdGggPj0gdmN0eHQtPnNraXBEZXB0aCkpCisJcmV0dXJuOworICAgIC8qCisgICAgKiBQdXNoIHRoZSBlbGVtZW50LgorICAgICovCisgICAgaWYgKHhtbFNjaGVtYVZhbGlkYXRvclB1c2hFbGVtKHZjdHh0KSA9PSAtMSkgeworCVZFUlJPUl9JTlQoInhtbFNjaGVtYVNBWEhhbmRsZVN0YXJ0RWxlbWVudE5zIiwKKwkgICAgImNhbGxpbmcgeG1sU2NoZW1hVmFsaWRhdG9yUHVzaEVsZW0oKSIpOworCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisgICAgfQorICAgIGllbGVtID0gdmN0eHQtPmlub2RlOworICAgIC8qCisgICAgKiBUT0RPOiBJcyB0aGlzIE9LPworICAgICovCisgICAgaWVsZW0tPm5vZGVMaW5lID0geG1sU0FYMkdldExpbmVOdW1iZXIodmN0eHQtPnBhcnNlckN0eHQpOworICAgIGllbGVtLT5sb2NhbE5hbWUgPSBsb2NhbG5hbWU7CisgICAgaWVsZW0tPm5zTmFtZSA9IFVSSTsKKyAgICBpZWxlbS0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFk7CisgICAgLyoKKyAgICAqIFJlZ2lzdGVyIG5hbWVzcGFjZXMgb24gdGhlIGVsZW0gaW5mby4KKyAgICAqLworICAgIGlmIChuYl9uYW1lc3BhY2VzICE9IDApIHsKKwkvKgorCSogQWx0aG91Z2ggdGhlIHBhcnNlciBidWlsZHMgaXRzIG93biBuYW1lc3BhY2UgbGlzdCwKKwkqIHdlIGhhdmUgbm8gYWNjZXNzIHRvIGl0LCBzbyB3ZSdsbCB1c2UgYW4gb3duIG9uZS4KKwkqLworICAgICAgICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IG5iX25hbWVzcGFjZXM7IGkrKywgaiArPSAyKSB7CisJICAgIC8qCisJICAgICogU3RvcmUgcHJlZml4IGFuZCBuYW1lc3BhY2UgbmFtZS4KKwkgICAgKi8KKwkgICAgaWYgKGllbGVtLT5uc0JpbmRpbmdzID09IE5VTEwpIHsKKwkJaWVsZW0tPm5zQmluZGluZ3MgPQorCQkgICAgKGNvbnN0IHhtbENoYXIgKiopIHhtbE1hbGxvYygxMCAqCisJCQlzaXplb2YoY29uc3QgeG1sQ2hhciAqKSk7CisJCWlmIChpZWxlbS0+bnNCaW5kaW5ncyA9PSBOVUxMKSB7CisJCSAgICB4bWxTY2hlbWFWRXJyTWVtb3J5KHZjdHh0LAorCQkJImFsbG9jYXRpbmcgbmFtZXNwYWNlIGJpbmRpbmdzIGZvciBTQVggdmFsaWRhdGlvbiIsCisJCQlOVUxMKTsKKwkJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJCX0KKwkJaWVsZW0tPm5iTnNCaW5kaW5ncyA9IDA7CisJCWllbGVtLT5zaXplTnNCaW5kaW5ncyA9IDU7CisJICAgIH0gZWxzZSBpZiAoaWVsZW0tPnNpemVOc0JpbmRpbmdzIDw9IGllbGVtLT5uYk5zQmluZGluZ3MpIHsKKwkJaWVsZW0tPnNpemVOc0JpbmRpbmdzICo9IDI7CisJCWllbGVtLT5uc0JpbmRpbmdzID0KKwkJICAgIChjb25zdCB4bWxDaGFyICoqKSB4bWxSZWFsbG9jKAorCQkJKHZvaWQgKikgaWVsZW0tPm5zQmluZGluZ3MsCisJCQlpZWxlbS0+c2l6ZU5zQmluZGluZ3MgKiAyICogc2l6ZW9mKGNvbnN0IHhtbENoYXIgKikpOworCQlpZiAoaWVsZW0tPm5zQmluZGluZ3MgPT0gTlVMTCkgeworCQkgICAgeG1sU2NoZW1hVkVyck1lbW9yeSh2Y3R4dCwKKwkJCSJyZS1hbGxvY2F0aW5nIG5hbWVzcGFjZSBiaW5kaW5ncyBmb3IgU0FYIHZhbGlkYXRpb24iLAorCQkJTlVMTCk7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJICAgIH0KKworCSAgICBpZWxlbS0+bnNCaW5kaW5nc1tpZWxlbS0+bmJOc0JpbmRpbmdzICogMl0gPSBuYW1lc3BhY2VzW2pdOworCSAgICBpZiAobmFtZXNwYWNlc1tqKzFdWzBdID09IDApIHsKKwkJLyoKKwkJKiBIYW5kbGUgeG1sbnM9IiIuCisJCSovCisJCWllbGVtLT5uc0JpbmRpbmdzW2llbGVtLT5uYk5zQmluZGluZ3MgKiAyICsgMV0gPSBOVUxMOworCSAgICB9IGVsc2UKKwkJaWVsZW0tPm5zQmluZGluZ3NbaWVsZW0tPm5iTnNCaW5kaW5ncyAqIDIgKyAxXSA9CisJCSAgICBuYW1lc3BhY2VzW2orMV07CisJICAgIGllbGVtLT5uYk5zQmluZGluZ3MrKzsKKwl9CisgICAgfQorICAgIC8qCisgICAgKiBSZWdpc3RlciBhdHRyaWJ1dGVzLgorICAgICogU0FYIFZBTCBUT0RPOiBXZSBhcmUgbm90IGFkZGluZyBuYW1lc3BhY2UgZGVjbGFyYXRpb24KKyAgICAqIGF0dHJpYnV0ZXMgeWV0LgorICAgICovCisgICAgaWYgKG5iX2F0dHJpYnV0ZXMgIT0gMCkgeworCXhtbENoYXIgKnZhbHVlOworCisgICAgICAgIGZvciAoaiA9IDAsIGkgPSAwOyBpIDwgbmJfYXR0cmlidXRlczsgaSsrLCBqICs9IDUpIHsKKwkgICAgLyoKKwkgICAgKiBEdXBsaWNhdGUgdGhlIHZhbHVlLgorCSAgICAqLworCSAgICB2YWx1ZSA9IHhtbFN0cm5kdXAoYXR0cmlidXRlc1tqKzNdLAorCQlhdHRyaWJ1dGVzW2orNF0gLSBhdHRyaWJ1dGVzW2orM10pOworCSAgICAvKgorCSAgICAqIFRPRE86IFNldCB0aGUgbm9kZSBsaW5lLgorCSAgICAqLworCSAgICByZXQgPSB4bWxTY2hlbWFWYWxpZGF0b3JQdXNoQXR0cmlidXRlKHZjdHh0LAorCQlOVUxMLCBpZWxlbS0+bm9kZUxpbmUsIGF0dHJpYnV0ZXNbal0sIGF0dHJpYnV0ZXNbaisyXSwgMCwKKwkJdmFsdWUsIDEpOworCSAgICBpZiAocmV0ID09IC0xKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVNBWEhhbmRsZVN0YXJ0RWxlbWVudE5zIiwKKwkJICAgICJjYWxsaW5nIHhtbFNjaGVtYVZhbGlkYXRvclB1c2hBdHRyaWJ1dGUoKSIpOworCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICB9CisJfQorICAgIH0KKyAgICAvKgorICAgICogVmFsaWRhdGUgdGhlIGVsZW1lbnQuCisgICAgKi8KKyAgICByZXQgPSB4bWxTY2hlbWFWYWxpZGF0ZUVsZW0odmN0eHQpOworICAgIGlmIChyZXQgIT0gMCkgeworCWlmIChyZXQgPT0gLTEpIHsKKwkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hU0FYSGFuZGxlU3RhcnRFbGVtZW50TnMiLAorCQkiY2FsbGluZyB4bWxTY2hlbWFWYWxpZGF0ZUVsZW0oKSIpOworCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCX0KKwlnb3RvIGV4aXQ7CisgICAgfQorCitleGl0OgorICAgIHJldHVybjsKK2ludGVybmFsX2Vycm9yOgorICAgIHZjdHh0LT5lcnIgPSAtMTsKKyAgICB4bWxTdG9wUGFyc2VyKHZjdHh0LT5wYXJzZXJDdHh0KTsKKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFTQVhIYW5kbGVFbmRFbGVtZW50TnModm9pZCAqY3R4LAorCQkJICAgICAgIGNvbnN0IHhtbENoYXIgKiBsb2NhbG5hbWUgQVRUUklCVVRFX1VOVVNFRCwKKwkJCSAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4IEFUVFJJQlVURV9VTlVTRUQsCisJCQkgICAgICAgY29uc3QgeG1sQ2hhciAqIFVSSSBBVFRSSUJVVEVfVU5VU0VEKQoreworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpIGN0eDsKKyAgICBpbnQgcmVzOworCisgICAgLyoKKyAgICAqIFNraXAgZWxlbWVudHMgaWYgaW5zaWRlIGEgInNraXAiIHdpbGRjYXJkIG9yIGlmIGludmFsaWQuCisgICAgKi8KKyAgICBpZiAodmN0eHQtPnNraXBEZXB0aCAhPSAtMSkgeworCWlmICh2Y3R4dC0+ZGVwdGggPiB2Y3R4dC0+c2tpcERlcHRoKSB7CisJICAgIHZjdHh0LT5kZXB0aC0tOworCSAgICByZXR1cm47CisJfSBlbHNlCisJICAgIHZjdHh0LT5za2lwRGVwdGggPSAtMTsKKyAgICB9CisgICAgLyoKKyAgICAqIFNBWCBWQUwgVE9ETzogSnVzdCBhIHRlbXBvcmFyeSBjaGVjay4KKyAgICAqLworICAgIGlmICgoIXhtbFN0ckVxdWFsKHZjdHh0LT5pbm9kZS0+bG9jYWxOYW1lLCBsb2NhbG5hbWUpKSB8fAorCSgheG1sU3RyRXF1YWwodmN0eHQtPmlub2RlLT5uc05hbWUsIFVSSSkpKSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hU0FYSGFuZGxlRW5kRWxlbWVudE5zIiwKKwkgICAgImVsZW0gcG9wIG1pc21hdGNoIik7CisgICAgfQorICAgIHJlcyA9IHhtbFNjaGVtYVZhbGlkYXRvclBvcEVsZW0odmN0eHQpOworICAgIGlmIChyZXMgIT0gMCkgeworCWlmIChyZXMgPCAwKSB7CisJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVNBWEhhbmRsZUVuZEVsZW1lbnROcyIsCisJCSJjYWxsaW5nIHhtbFNjaGVtYVZhbGlkYXRvclBvcEVsZW0oKSIpOworCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCX0KKwlnb3RvIGV4aXQ7CisgICAgfQorZXhpdDoKKyAgICByZXR1cm47CitpbnRlcm5hbF9lcnJvcjoKKyAgICB2Y3R4dC0+ZXJyID0gLTE7CisgICAgeG1sU3RvcFBhcnNlcih2Y3R4dC0+cGFyc2VyQ3R4dCk7CisgICAgcmV0dXJuOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQkJCQkJCQkqCisgKiAJCQlWYWxpZGF0aW9uIGludGVyZmFjZXMJCQkJKgorICogCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxTY2hlbWFOZXdWYWxpZEN0eHQ6CisgKiBAc2NoZW1hOiAgYSBwcmVjb21waWxlZCBYTUwgU2NoZW1hcworICoKKyAqIENyZWF0ZSBhbiBYTUwgU2NoZW1hcyB2YWxpZGF0aW9uIGNvbnRleHQgYmFzZWQgb24gdGhlIGdpdmVuIHNjaGVtYS4KKyAqCisgKiBSZXR1cm5zIHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFNjaGVtYVZhbGlkQ3R4dFB0cgoreG1sU2NoZW1hTmV3VmFsaWRDdHh0KHhtbFNjaGVtYVB0ciBzY2hlbWEpCit7CisgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxTY2hlbWFWYWxpZEN0eHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hVmFsaWRDdHh0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYVZFcnJNZW1vcnkoTlVMTCwgImFsbG9jYXRpbmcgdmFsaWRhdGlvbiBjb250ZXh0IiwgTlVMTCk7CisgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFWYWxpZEN0eHQpKTsKKyAgICByZXQtPnR5cGUgPSBYTUxfU0NIRU1BX0NUWFRfVkFMSURBVE9SOworICAgIHJldC0+ZGljdCA9IHhtbERpY3RDcmVhdGUoKTsKKyAgICByZXQtPm5vZGVRTmFtZXMgPSB4bWxTY2hlbWFJdGVtTGlzdENyZWF0ZSgpOworICAgIHJldC0+c2NoZW1hID0gc2NoZW1hOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDbGVhclZhbGlkQ3R4dDoKKyAqIEBjdHh0OiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIEZyZWUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0OworICogbGVhdmVzIHNvbWUgZmllbGRzIGFsaXZlIGludGVuZGVkIGZvciByZXVzZSBvZiB0aGUgY29udGV4dC4KKyAqLworc3RhdGljIHZvaWQKK3htbFNjaGVtYUNsZWFyVmFsaWRDdHh0KHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkKK3sKKyAgICBpZiAodmN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyoKKyAgICAqIFRPRE86IFNob3VsZCB3ZSBjbGVhciB0aGUgZmxhZ3M/CisgICAgKiAgIE1pZ2h0IGJlIHByb2JsZW1hdGljIGlmIG9uZSByZXVzZXMgdGhlIGNvbnRleHQKKyAgICAqICAgYW5kIGFzc3VtZXMgdGhhdCB0aGUgb3B0aW9ucyByZW1haW4gdGhlIHNhbWUuCisgICAgKi8KKyAgICB2Y3R4dC0+ZmxhZ3MgPSAwOworICAgIHZjdHh0LT52YWxpZGF0aW9uUm9vdCA9IE5VTEw7CisgICAgdmN0eHQtPmRvYyA9IE5VTEw7CisjaWZkZWYgTElCWE1MX1JFQURFUl9FTkFCTEVECisgICAgdmN0eHQtPnJlYWRlciA9IE5VTEw7CisjZW5kaWYKKyAgICB2Y3R4dC0+aGFzS2V5cmVmcyA9IDA7CisKKyAgICBpZiAodmN0eHQtPnZhbHVlICE9IE5VTEwpIHsKKyAgICAgICAgeG1sU2NoZW1hRnJlZVZhbHVlKHZjdHh0LT52YWx1ZSk7CisJdmN0eHQtPnZhbHVlID0gTlVMTDsKKyAgICB9CisgICAgLyoKKyAgICAqIEF1Z21lbnRlZCBJREMgaW5mb3JtYXRpb24uCisgICAgKi8KKyAgICBpZiAodmN0eHQtPmFpZGNzICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFJRENBdWdQdHIgY3VyID0gdmN0eHQtPmFpZGNzLCBuZXh0OworCWRvIHsKKwkgICAgbmV4dCA9IGN1ci0+bmV4dDsKKwkgICAgeG1sRnJlZShjdXIpOworCSAgICBjdXIgPSBuZXh0OworCX0gd2hpbGUgKGN1ciAhPSBOVUxMKTsKKwl2Y3R4dC0+YWlkY3MgPSBOVUxMOworICAgIH0KKyAgICBpZiAodmN0eHQtPmlkY01hdGNoZXJDYWNoZSAhPSBOVUxMKSB7CisJeG1sU2NoZW1hSURDTWF0Y2hlclB0ciBtYXRjaGVyID0gdmN0eHQtPmlkY01hdGNoZXJDYWNoZSwgdG1wOworCisJd2hpbGUgKG1hdGNoZXIpIHsKKwkgICAgdG1wID0gbWF0Y2hlcjsKKwkgICAgbWF0Y2hlciA9IG1hdGNoZXItPm5leHRDYWNoZWQ7CisJICAgIHhtbFNjaGVtYUlEQ0ZyZWVNYXRjaGVyTGlzdCh0bXApOworCX0KKwl2Y3R4dC0+aWRjTWF0Y2hlckNhY2hlID0gTlVMTDsKKyAgICB9CisKKworICAgIGlmICh2Y3R4dC0+aWRjTm9kZXMgIT0gTlVMTCkgeworCWludCBpOworCXhtbFNjaGVtYVBTVklJRENOb2RlUHRyIGl0ZW07CisKKwlmb3IgKGkgPSAwOyBpIDwgdmN0eHQtPm5iSWRjTm9kZXM7IGkrKykgeworCSAgICBpdGVtID0gdmN0eHQtPmlkY05vZGVzW2ldOworCSAgICB4bWxGcmVlKGl0ZW0tPmtleXMpOworCSAgICB4bWxGcmVlKGl0ZW0pOworCX0KKwl4bWxGcmVlKHZjdHh0LT5pZGNOb2Rlcyk7CisJdmN0eHQtPmlkY05vZGVzID0gTlVMTDsKKwl2Y3R4dC0+bmJJZGNOb2RlcyA9IDA7CisJdmN0eHQtPnNpemVJZGNOb2RlcyA9IDA7CisgICAgfQorICAgIC8qCisgICAgKiBOb3RlIHRoYXQgd2Ugd29uJ3QgZGVsZXRlIHRoZSBYUGF0aCBzdGF0ZSBwb29sIGhlcmUuCisgICAgKi8KKyAgICBpZiAodmN0eHQtPnhwYXRoU3RhdGVzICE9IE5VTEwpIHsKKwl4bWxTY2hlbWFGcmVlSURDU3RhdGVPYmpMaXN0KHZjdHh0LT54cGF0aFN0YXRlcyk7CisJdmN0eHQtPnhwYXRoU3RhdGVzID0gTlVMTDsKKyAgICB9CisgICAgLyoKKyAgICAqIEF0dHJpYnV0ZSBpbmZvLgorICAgICovCisgICAgaWYgKHZjdHh0LT5uYkF0dHJJbmZvcyAhPSAwKSB7CisJeG1sU2NoZW1hQ2xlYXJBdHRySW5mb3ModmN0eHQpOworICAgIH0KKyAgICAvKgorICAgICogRWxlbWVudCBpbmZvLgorICAgICovCisgICAgaWYgKHZjdHh0LT5lbGVtSW5mb3MgIT0gTlVMTCkgeworCWludCBpOworCXhtbFNjaGVtYU5vZGVJbmZvUHRyIGVpOworCisJZm9yIChpID0gMDsgaSA8IHZjdHh0LT5zaXplRWxlbUluZm9zOyBpKyspIHsKKwkgICAgZWkgPSB2Y3R4dC0+ZWxlbUluZm9zW2ldOworCSAgICBpZiAoZWkgPT0gTlVMTCkKKwkJYnJlYWs7CisJICAgIHhtbFNjaGVtYUNsZWFyRWxlbUluZm8odmN0eHQsIGVpKTsKKwl9CisgICAgfQorICAgIHhtbFNjaGVtYUl0ZW1MaXN0Q2xlYXIodmN0eHQtPm5vZGVRTmFtZXMpOworICAgIC8qIFJlY3JlYXRlIHRoZSBkaWN0LiAqLworICAgIHhtbERpY3RGcmVlKHZjdHh0LT5kaWN0KTsKKyAgICAvKgorICAgICogVE9ETzogSXMgaXMgc2F2ZSB0byByZWNyZWF0ZSBpdD8gRG8gd2UgaGF2ZSBhIHNjZW5hcmlvCisgICAgKiB3aGVyZSB0aGUgdXNlciBwcm92aWRlcyB0aGUgZGljdD8KKyAgICAqLworICAgIHZjdHh0LT5kaWN0ID0geG1sRGljdENyZWF0ZSgpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUZyZWVWYWxpZEN0eHQ6CisgKiBAY3R4dDogIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogRnJlZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqLwordm9pZAoreG1sU2NoZW1hRnJlZVZhbGlkQ3R4dCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGN0eHQtPnZhbHVlICE9IE5VTEwpCisgICAgICAgIHhtbFNjaGVtYUZyZWVWYWx1ZShjdHh0LT52YWx1ZSk7CisgICAgaWYgKGN0eHQtPnBjdHh0ICE9IE5VTEwpCisJeG1sU2NoZW1hRnJlZVBhcnNlckN0eHQoY3R4dC0+cGN0eHQpOworICAgIGlmIChjdHh0LT5pZGNOb2RlcyAhPSBOVUxMKSB7CisJaW50IGk7CisJeG1sU2NoZW1hUFNWSUlEQ05vZGVQdHIgaXRlbTsKKworCWZvciAoaSA9IDA7IGkgPCBjdHh0LT5uYklkY05vZGVzOyBpKyspIHsKKwkgICAgaXRlbSA9IGN0eHQtPmlkY05vZGVzW2ldOworCSAgICB4bWxGcmVlKGl0ZW0tPmtleXMpOworCSAgICB4bWxGcmVlKGl0ZW0pOworCX0KKwl4bWxGcmVlKGN0eHQtPmlkY05vZGVzKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmlkY0tleXMgIT0gTlVMTCkgeworCWludCBpOworCWZvciAoaSA9IDA7IGkgPCBjdHh0LT5uYklkY0tleXM7IGkrKykKKwkgICAgeG1sU2NoZW1hSURDRnJlZUtleShjdHh0LT5pZGNLZXlzW2ldKTsKKwl4bWxGcmVlKGN0eHQtPmlkY0tleXMpOworICAgIH0KKworICAgIGlmIChjdHh0LT54cGF0aFN0YXRlcyAhPSBOVUxMKSB7CisJeG1sU2NoZW1hRnJlZUlEQ1N0YXRlT2JqTGlzdChjdHh0LT54cGF0aFN0YXRlcyk7CisJY3R4dC0+eHBhdGhTdGF0ZXMgPSBOVUxMOworICAgIH0KKyAgICBpZiAoY3R4dC0+eHBhdGhTdGF0ZVBvb2wgIT0gTlVMTCkgeworCXhtbFNjaGVtYUZyZWVJRENTdGF0ZU9iakxpc3QoY3R4dC0+eHBhdGhTdGF0ZVBvb2wpOworCWN0eHQtPnhwYXRoU3RhdGVQb29sID0gTlVMTDsKKyAgICB9CisKKyAgICAvKgorICAgICogQXVnbWVudGVkIElEQyBpbmZvcm1hdGlvbi4KKyAgICAqLworICAgIGlmIChjdHh0LT5haWRjcyAhPSBOVUxMKSB7CisJeG1sU2NoZW1hSURDQXVnUHRyIGN1ciA9IGN0eHQtPmFpZGNzLCBuZXh0OworCWRvIHsKKwkgICAgbmV4dCA9IGN1ci0+bmV4dDsKKwkgICAgeG1sRnJlZShjdXIpOworCSAgICBjdXIgPSBuZXh0OworCX0gd2hpbGUgKGN1ciAhPSBOVUxMKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmF0dHJJbmZvcyAhPSBOVUxMKSB7CisJaW50IGk7CisJeG1sU2NoZW1hQXR0ckluZm9QdHIgYXR0cjsKKworCS8qIEp1c3QgYSBwYXJhbm9pZCBjYWxsIHRvIHRoZSBjbGVhbnVwLiAqLworCWlmIChjdHh0LT5uYkF0dHJJbmZvcyAhPSAwKQorCSAgICB4bWxTY2hlbWFDbGVhckF0dHJJbmZvcyhjdHh0KTsKKwlmb3IgKGkgPSAwOyBpIDwgY3R4dC0+c2l6ZUF0dHJJbmZvczsgaSsrKSB7CisJICAgIGF0dHIgPSBjdHh0LT5hdHRySW5mb3NbaV07CisJICAgIHhtbEZyZWUoYXR0cik7CisJfQorCXhtbEZyZWUoY3R4dC0+YXR0ckluZm9zKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmVsZW1JbmZvcyAhPSBOVUxMKSB7CisJaW50IGk7CisJeG1sU2NoZW1hTm9kZUluZm9QdHIgZWk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY3R4dC0+c2l6ZUVsZW1JbmZvczsgaSsrKSB7CisJICAgIGVpID0gY3R4dC0+ZWxlbUluZm9zW2ldOworCSAgICBpZiAoZWkgPT0gTlVMTCkKKwkJYnJlYWs7CisJICAgIHhtbFNjaGVtYUNsZWFyRWxlbUluZm8oY3R4dCwgZWkpOworCSAgICB4bWxGcmVlKGVpKTsKKwl9CisJeG1sRnJlZShjdHh0LT5lbGVtSW5mb3MpOworICAgIH0KKyAgICBpZiAoY3R4dC0+bm9kZVFOYW1lcyAhPSBOVUxMKQorCXhtbFNjaGVtYUl0ZW1MaXN0RnJlZShjdHh0LT5ub2RlUU5hbWVzKTsKKyAgICBpZiAoY3R4dC0+ZGljdCAhPSBOVUxMKQorCXhtbERpY3RGcmVlKGN0eHQtPmRpY3QpOworICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hSXNWYWxpZDoKKyAqIEBjdHh0OiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIENoZWNrIGlmIGFueSBlcnJvciB3YXMgZGV0ZWN0ZWQgZHVyaW5nIHZhbGlkYXRpb24uCisgKgorICogUmV0dXJucyAxIGlmIHZhbGlkIHNvIGZhciwgMCBpZiBlcnJvcnMgd2VyZSBkZXRlY3RlZCwgYW5kIC0xIGluIGNhc2UKKyAqICAgICAgICAgb2YgaW50ZXJuYWwgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hSXNWYWxpZCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworICAgIHJldHVybihjdHh0LT5lcnIgPT0gMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hU2V0VmFsaWRFcnJvcnM6CisgKiBAY3R4dDogIGEgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICogQGVycjogIHRoZSBlcnJvciBmdW5jdGlvbgorICogQHdhcm46IHRoZSB3YXJuaW5nIGZ1bmN0aW9uCisgKiBAY3R4OiB0aGUgZnVuY3Rpb25zIGNvbnRleHQKKyAqCisgKiBTZXQgdGhlIGVycm9yIGFuZCB3YXJuaW5nIGNhbGxiYWNrIGluZm9ybWF0aW9ucworICovCit2b2lkCit4bWxTY2hlbWFTZXRWYWxpZEVycm9ycyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jIGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYVZhbGlkaXR5V2FybmluZ0Z1bmMgd2Fybiwgdm9pZCAqY3R4KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBjdHh0LT5lcnJvciA9IGVycjsKKyAgICBjdHh0LT53YXJuaW5nID0gd2FybjsKKyAgICBjdHh0LT5lcnJDdHh0ID0gY3R4OworICAgIGlmIChjdHh0LT5wY3R4dCAhPSBOVUxMKQorCXhtbFNjaGVtYVNldFBhcnNlckVycm9ycyhjdHh0LT5wY3R4dCwgZXJyLCB3YXJuLCBjdHgpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVNldFZhbGlkU3RydWN0dXJlZEVycm9yczoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAc2Vycm9yOiAgdGhlIHN0cnVjdHVyZWQgZXJyb3IgZnVuY3Rpb24KKyAqIEBjdHg6IHRoZSBmdW5jdGlvbnMgY29udGV4dAorICoKKyAqIFNldCB0aGUgc3RydWN0dXJlZCBlcnJvciBjYWxsYmFjaworICovCit2b2lkCit4bWxTY2hlbWFTZXRWYWxpZFN0cnVjdHVyZWRFcnJvcnMoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQsCisJCQkJICB4bWxTdHJ1Y3R1cmVkRXJyb3JGdW5jIHNlcnJvciwgdm9pZCAqY3R4KQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKwljdHh0LT5zZXJyb3IgPSBzZXJyb3I7CisgICAgY3R4dC0+ZXJyb3IgPSBOVUxMOworICAgIGN0eHQtPndhcm5pbmcgPSBOVUxMOworICAgIGN0eHQtPmVyckN0eHQgPSBjdHg7CisgICAgaWYgKGN0eHQtPnBjdHh0ICE9IE5VTEwpCisJeG1sU2NoZW1hU2V0UGFyc2VyU3RydWN0dXJlZEVycm9ycyhjdHh0LT5wY3R4dCwgc2Vycm9yLCBjdHgpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldFZhbGlkRXJyb3JzOgorICogQGN0eHQ6IGEgWE1MLVNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBlcnI6IHRoZSBlcnJvciBmdW5jdGlvbiByZXN1bHQKKyAqIEB3YXJuOiB0aGUgd2FybmluZyBmdW5jdGlvbiByZXN1bHQKKyAqIEBjdHg6IHRoZSBmdW5jdGlvbnMgY29udGV4dCByZXN1bHQKKyAqCisgKiBHZXQgdGhlIGVycm9yIGFuZCB3YXJuaW5nIGNhbGxiYWNrIGluZm9ybWF0aW9ucworICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBlcnJvciBhbmQgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxTY2hlbWFHZXRWYWxpZEVycm9ycyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCwKKwkJCXhtbFNjaGVtYVZhbGlkaXR5RXJyb3JGdW5jICogZXJyLAorCQkJeG1sU2NoZW1hVmFsaWRpdHlXYXJuaW5nRnVuYyAqIHdhcm4sIHZvaWQgKipjdHgpCit7CisJaWYgKGN0eHQgPT0gTlVMTCkKKwkJcmV0dXJuICgtMSk7CisJaWYgKGVyciAhPSBOVUxMKQorCQkqZXJyID0gY3R4dC0+ZXJyb3I7CisJaWYgKHdhcm4gIT0gTlVMTCkKKwkJKndhcm4gPSBjdHh0LT53YXJuaW5nOworCWlmIChjdHggIT0gTlVMTCkKKwkJKmN0eCA9IGN0eHQtPmVyckN0eHQ7CisJcmV0dXJuICgwKTsKK30KKworCisvKioKKyAqIHhtbFNjaGVtYVNldFZhbGlkT3B0aW9uczoKKyAqIEBjdHh0OglhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBvcHRpb25zOiBhIGNvbWJpbmF0aW9uIG9mIHhtbFNjaGVtYVZhbGlkT3B0aW9uCisgKgorICogU2V0cyB0aGUgb3B0aW9ucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgdmFsaWRhdGlvbi4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGFuCisgKiBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hU2V0VmFsaWRPcHRpb25zKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0LAorCQkJIGludCBvcHRpb25zKQorCit7CisgICAgaW50IGk7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybiAoLTEpOworICAgIC8qCisgICAgKiBXQVJOSU5HOiBDaGFuZ2UgdGhlIHN0YXJ0IHZhbHVlIGlmIGFkZGluZyB0byB0aGUKKyAgICAqIHhtbFNjaGVtYVZhbGlkT3B0aW9uLgorICAgICogVE9ETzogSXMgdGhlcmUgYW4gb3RoZXIsIG1vcmUgZWFzeSB0byBtYWludGFpbiwKKyAgICAqIHdheT8KKyAgICAqLworICAgIGZvciAoaSA9IDE7IGkgPCAoaW50KSBzaXplb2YoaW50KSAqIDg7IGkrKykgeworICAgICAgICBpZiAob3B0aW9ucyAmIDE8PGkpCisJICAgIHJldHVybiAoLTEpOworICAgIH0KKyAgICBjdHh0LT5vcHRpb25zID0gb3B0aW9uczsKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkQ3R4dEdldE9wdGlvbnM6CisgKiBAY3R4dDogYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogR2V0IHRoZSB2YWxpZGF0aW9uIGNvbnRleHQgb3B0aW9ucy4KKyAqCisgKiBSZXR1cm5zIHRoZSBvcHRpb24gY29tYmluYXRpb24gb3IgLTEgb24gZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hVmFsaWRDdHh0R2V0T3B0aW9ucyh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCkKKworeworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuICgtMSk7CisgICAgZWxzZQorCXJldHVybiAoY3R4dC0+b3B0aW9ucyk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZEb2NXYWxrKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciB2Y3R4dCkKK3sKKyAgICB4bWxBdHRyUHRyIGF0dHI7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sU2NoZW1hTm9kZUluZm9QdHIgaWVsZW0gPSBOVUxMOworICAgIHhtbE5vZGVQdHIgbm9kZSwgdmFsUm9vdDsKKyAgICBjb25zdCB4bWxDaGFyICpuc05hbWU7CisKKyAgICAvKiBET0MgVkFMIFRPRE86IE1vdmUgdGhpcyB0byB0aGUgc3RhcnQgZnVuY3Rpb24uICovCisgICAgdmFsUm9vdCA9IHhtbERvY0dldFJvb3RFbGVtZW50KHZjdHh0LT5kb2MpOworICAgIGlmICh2YWxSb290ID09IE5VTEwpIHsKKwkvKiBWQUwgVE9ETzogRXJyb3IgY29kZT8gKi8KKwlWRVJST1IoMSwgTlVMTCwgIlRoZSBkb2N1bWVudCBoYXMgbm8gZG9jdW1lbnQgZWxlbWVudCIpOworCXJldHVybiAoMSk7CisgICAgfQorICAgIHZjdHh0LT5kZXB0aCA9IC0xOworICAgIHZjdHh0LT52YWxpZGF0aW9uUm9vdCA9IHZhbFJvb3Q7CisgICAgbm9kZSA9IHZhbFJvb3Q7CisgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworCWlmICgodmN0eHQtPnNraXBEZXB0aCAhPSAtMSkgJiYgKHZjdHh0LT5kZXB0aCA+PSB2Y3R4dC0+c2tpcERlcHRoKSkKKwkgICAgZ290byBuZXh0X3NpYmxpbmc7CisJaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCisJICAgIC8qCisJICAgICogSW5pdCB0aGUgbm9kZS1pbmZvLgorCSAgICAqLworCSAgICB2Y3R4dC0+ZGVwdGgrKzsKKwkgICAgaWYgKHhtbFNjaGVtYVZhbGlkYXRvclB1c2hFbGVtKHZjdHh0KSA9PSAtMSkKKwkJZ290byBpbnRlcm5hbF9lcnJvcjsKKwkgICAgaWVsZW0gPSB2Y3R4dC0+aW5vZGU7CisJICAgIGllbGVtLT5ub2RlID0gbm9kZTsKKwkgICAgaWVsZW0tPm5vZGVMaW5lID0gbm9kZS0+bGluZTsKKwkgICAgaWVsZW0tPmxvY2FsTmFtZSA9IG5vZGUtPm5hbWU7CisJICAgIGlmIChub2RlLT5ucyAhPSBOVUxMKQorCQlpZWxlbS0+bnNOYW1lID0gbm9kZS0+bnMtPmhyZWY7CisJICAgIGllbGVtLT5mbGFncyB8PSBYTUxfU0NIRU1BX0VMRU1fSU5GT19FTVBUWTsKKwkgICAgLyoKKwkgICAgKiBSZWdpc3RlciBhdHRyaWJ1dGVzLgorCSAgICAqIERPQyBWQUwgVE9ETzogV2UgZG8gbm90IHJlZ2lzdGVyIG5hbWVzcGFjZSBkZWNsYXJhdGlvbgorCSAgICAqIGF0dHJpYnV0ZXMgeWV0LgorCSAgICAqLworCSAgICB2Y3R4dC0+bmJBdHRySW5mb3MgPSAwOworCSAgICBpZiAobm9kZS0+cHJvcGVydGllcyAhPSBOVUxMKSB7CisJCWF0dHIgPSBub2RlLT5wcm9wZXJ0aWVzOworCQlkbyB7CisJCSAgICBpZiAoYXR0ci0+bnMgIT0gTlVMTCkKKwkJCW5zTmFtZSA9IGF0dHItPm5zLT5ocmVmOworCQkgICAgZWxzZQorCQkJbnNOYW1lID0gTlVMTDsKKwkJICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRvclB1c2hBdHRyaWJ1dGUodmN0eHQsCisJCQkoeG1sTm9kZVB0cikgYXR0ciwKKwkJCS8qCisJCQkqIE5vdGUgdGhhdCB3ZSBnaXZlIGl0IHRoZSBsaW5lIG51bWJlciBvZiB0aGUKKwkJCSogcGFyZW50IGVsZW1lbnQuCisJCQkqLworCQkJaWVsZW0tPm5vZGVMaW5lLAorCQkJYXR0ci0+bmFtZSwgbnNOYW1lLCAwLAorCQkJeG1sTm9kZUxpc3RHZXRTdHJpbmcoYXR0ci0+ZG9jLCBhdHRyLT5jaGlsZHJlbiwgMSksIDEpOworCQkgICAgaWYgKHJldCA9PSAtMSkgeworCQkJVkVSUk9SX0lOVCgieG1sU2NoZW1hRG9jV2FsayIsCisJCQkgICAgImNhbGxpbmcgeG1sU2NoZW1hVmFsaWRhdG9yUHVzaEF0dHJpYnV0ZSgpIik7CisJCQlnb3RvIGludGVybmFsX2Vycm9yOworCQkgICAgfQorCQkgICAgYXR0ciA9IGF0dHItPm5leHQ7CisJCX0gd2hpbGUgKGF0dHIpOworCSAgICB9CisJICAgIC8qCisJICAgICogVmFsaWRhdGUgdGhlIGVsZW1lbnQuCisJICAgICovCisJICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRWxlbSh2Y3R4dCk7CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0ID09IC0xKSB7CisJCSAgICBWRVJST1JfSU5UKCJ4bWxTY2hlbWFEb2NXYWxrIiwKKwkJCSJjYWxsaW5nIHhtbFNjaGVtYVZhbGlkYXRlRWxlbSgpIik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJCS8qCisJCSogRG9uJ3Qgc3RvcCB2YWxpZGF0aW9uOyBqdXN0IHNraXAgdGhlIGNvbnRlbnQKKwkJKiBvZiB0aGlzIGVsZW1lbnQuCisJCSovCisJCWdvdG8gbGVhdmVfbm9kZTsKKwkgICAgfQorCSAgICBpZiAoKHZjdHh0LT5za2lwRGVwdGggIT0gLTEpICYmCisJCSh2Y3R4dC0+ZGVwdGggPj0gdmN0eHQtPnNraXBEZXB0aCkpCisJCWdvdG8gbGVhdmVfbm9kZTsKKwl9IGVsc2UgaWYgKChub2RlLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisJICAgIChub2RlLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisJICAgIC8qCisJICAgICogUHJvY2VzcyBjaGFyYWN0ZXIgY29udGVudC4KKwkgICAgKi8KKwkgICAgaWYgKChpZWxlbSAhPSBOVUxMKSAmJiAoaWVsZW0tPmZsYWdzICYgWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFkpKQorCQlpZWxlbS0+ZmxhZ3MgXj0gWE1MX1NDSEVNQV9FTEVNX0lORk9fRU1QVFk7CisJICAgIHJldCA9IHhtbFNjaGVtYVZQdXNoVGV4dCh2Y3R4dCwgbm9kZS0+dHlwZSwgbm9kZS0+Y29udGVudCwKKwkJLTEsIFhNTF9TQ0hFTUFfUFVTSF9URVhUX1BFUlNJU1QsIE5VTEwpOworCSAgICBpZiAocmV0IDwgMCkgeworCQlWRVJST1JfSU5UKCJ4bWxTY2hlbWFWRG9jV2FsayIsCisJCSAgICAiY2FsbGluZyB4bWxTY2hlbWFWUHVzaFRleHQoKSIpOworCQlnb3RvIGludGVybmFsX2Vycm9yOworCSAgICB9CisJICAgIC8qCisJICAgICogRE9DIFZBTCBUT0RPOiBTaG91bGQgd2Ugc2tpcCBmdXJ0aGVyIHZhbGlkYXRpb24gb2YgdGhlCisJICAgICogZWxlbWVudCBjb250ZW50IGhlcmU/CisJICAgICovCisJfSBlbHNlIGlmICgobm9kZS0+dHlwZSA9PSBYTUxfRU5USVRZX05PREUpIHx8CisJICAgIChub2RlLT50eXBlID09IFhNTF9FTlRJVFlfUkVGX05PREUpKSB7CisJICAgIC8qCisJICAgICogRE9DIFZBTCBUT0RPOiBXaGF0IHRvIGRvIHdpdGggZW50aXRpZXM/CisJICAgICovCisJICAgIFZFUlJPUl9JTlQoInhtbFNjaGVtYVZEb2NXYWxrIiwKKwkJInRoZXJlIGlzIGF0IGxlYXN0IG9uZSBlbnRpdHkgcmVmZXJlbmNlIGluIHRoZSBub2RlLXRyZWUgIgorCQkiY3VycmVudGx5IGJlaW5nIHZhbGlkYXRlZC4gUHJvY2Vzc2luZyBvZiBlbnRpdGllcyB3aXRoICIKKwkJInRoaXMgWE1MIFNjaGVtYSBwcm9jZXNzb3IgaXMgbm90IHN1cHBvcnRlZCAoeWV0KS4gUGxlYXNlICIKKwkJInN1YnN0aXR1dGUgZW50aXRpZXMgYmVmb3JlIHZhbGlkYXRpb24uIik7CisJICAgIGdvdG8gaW50ZXJuYWxfZXJyb3I7CisJfSBlbHNlIHsKKwkgICAgZ290byBsZWF2ZV9ub2RlOworCSAgICAvKgorCSAgICAqIERPQyBWQUwgVE9ETzogWEluY2x1ZGUgbm9kZXMsIGV0Yy4KKwkgICAgKi8KKwl9CisJLyoKKwkqIFdhbGsgdGhlIGRvYy4KKwkqLworCWlmIChub2RlLT5jaGlsZHJlbiAhPSBOVUxMKSB7CisJICAgIG5vZGUgPSBub2RlLT5jaGlsZHJlbjsKKwkgICAgY29udGludWU7CisJfQorbGVhdmVfbm9kZToKKwlpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJICAgIC8qCisJICAgICogTGVhdmluZyB0aGUgc2NvcGUgb2YgYW4gZWxlbWVudC4KKwkgICAgKi8KKwkgICAgaWYgKG5vZGUgIT0gdmN0eHQtPmlub2RlLT5ub2RlKSB7CisJCVZFUlJPUl9JTlQoInhtbFNjaGVtYVZEb2NXYWxrIiwKKwkJICAgICJlbGVtZW50IHBvc2l0aW9uIG1pc21hdGNoIik7CisJCWdvdG8gaW50ZXJuYWxfZXJyb3I7CisJICAgIH0KKwkgICAgcmV0ID0geG1sU2NoZW1hVmFsaWRhdG9yUG9wRWxlbSh2Y3R4dCk7CisJICAgIGlmIChyZXQgIT0gMCkgeworCQlpZiAocmV0IDwgMCkgeworCQkgICAgVkVSUk9SX0lOVCgieG1sU2NoZW1hVkRvY1dhbGsiLAorCQkJImNhbGxpbmcgeG1sU2NoZW1hVmFsaWRhdG9yUG9wRWxlbSgpIik7CisJCSAgICBnb3RvIGludGVybmFsX2Vycm9yOworCQl9CisJICAgIH0KKwkgICAgaWYgKG5vZGUgPT0gdmFsUm9vdCkKKwkJZ290byBleGl0OworCX0KK25leHRfc2libGluZzoKKwlpZiAobm9kZS0+bmV4dCAhPSBOVUxMKQorCSAgICBub2RlID0gbm9kZS0+bmV4dDsKKwllbHNlIHsKKwkgICAgbm9kZSA9IG5vZGUtPnBhcmVudDsKKwkgICAgZ290byBsZWF2ZV9ub2RlOworCX0KKyAgICB9CisKK2V4aXQ6CisgICAgcmV0dXJuIChyZXQpOworaW50ZXJuYWxfZXJyb3I6CisgICAgcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVByZVJ1bih4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpIHsKKyAgICAvKgorICAgICogU29tZSBpbml0aWFsaXphdGlvbi4KKyAgICAqLworICAgIHZjdHh0LT5lcnIgPSAwOworICAgIHZjdHh0LT5uYmVycm9ycyA9IDA7CisgICAgdmN0eHQtPmRlcHRoID0gLTE7CisgICAgdmN0eHQtPnNraXBEZXB0aCA9IC0xOworICAgIHZjdHh0LT54c2lBc3NlbWJsZSA9IDA7CisgICAgdmN0eHQtPmhhc0tleXJlZnMgPSAwOworI2lmZGVmIEVOQUJMRV9JRENfTk9ERV9UQUJMRVNfVEVTVAorICAgIHZjdHh0LT5jcmVhdGVJRENOb2RlVGFibGVzID0gMTsKKyNlbHNlCisgICAgdmN0eHQtPmNyZWF0ZUlEQ05vZGVUYWJsZXMgPSAwOworI2VuZGlmCisgICAgLyoKKyAgICAqIENyZWF0ZSBhIHNjaGVtYSArIHBhcnNlciBpZiBuZWNlc3NhcnkuCisgICAgKi8KKyAgICBpZiAodmN0eHQtPnNjaGVtYSA9PSBOVUxMKSB7CisJeG1sU2NoZW1hUGFyc2VyQ3R4dFB0ciBwY3R4dDsKKworCXZjdHh0LT54c2lBc3NlbWJsZSA9IDE7CisJLyoKKwkqIElmIG5vdCBzY2hlbWEgd2FzIGdpdmVuIHRoZW4gd2Ugd2lsbCBjcmVhdGUgYSBzY2hlbWEKKwkqIGR5bmFtaWNhbGx5IHVzaW5nIFhTSSBzY2hlbWEgbG9jYXRpb25zLgorCSoKKwkqIENyZWF0ZSB0aGUgc2NoZW1hIHBhcnNlciBjb250ZXh0LgorCSovCisJaWYgKCh2Y3R4dC0+cGN0eHQgPT0gTlVMTCkgJiYKKwkgICAoeG1sU2NoZW1hQ3JlYXRlUEN0eHRPblZDdHh0KHZjdHh0KSA9PSAtMSkpCisJICAgcmV0dXJuICgtMSk7CisJcGN0eHQgPSB2Y3R4dC0+cGN0eHQ7CisJcGN0eHQtPnhzaUFzc2VtYmxlID0gMTsKKwkvKgorCSogQ3JlYXRlIHRoZSBzY2hlbWEuCisJKi8KKwl2Y3R4dC0+c2NoZW1hID0geG1sU2NoZW1hTmV3U2NoZW1hKHBjdHh0KTsKKwlpZiAodmN0eHQtPnNjaGVtYSA9PSBOVUxMKQorCSAgICByZXR1cm4gKC0xKTsKKwkvKgorCSogQ3JlYXRlIHRoZSBzY2hlbWEgY29uc3RydWN0aW9uIGNvbnRleHQuCisJKi8KKwlwY3R4dC0+Y29uc3RydWN0b3IgPSB4bWxTY2hlbWFDb25zdHJ1Y3Rpb25DdHh0Q3JlYXRlKHBjdHh0LT5kaWN0KTsKKwlpZiAocGN0eHQtPmNvbnN0cnVjdG9yID09IE5VTEwpCisJICAgIHJldHVybigtMSk7CisJcGN0eHQtPmNvbnN0cnVjdG9yLT5tYWluU2NoZW1hID0gdmN0eHQtPnNjaGVtYTsKKwkvKgorCSogVGFrZSBvd25lcnNoaXAgb2YgdGhlIGNvbnN0cnVjdG9yIHRvIGJlIGFibGUgdG8gZnJlZSBpdC4KKwkqLworCXBjdHh0LT5vd25zQ29uc3RydWN0b3IgPSAxOworICAgIH0KKyAgICAvKgorICAgICogQXVnbWVudCB0aGUgSURDIGRlZmluaXRpb25zIGZvciB0aGUgbWFpbiBzY2hlbWEgYW5kIGFsbCBpbXBvcnRlZCBvbmVzCisgICAgKiBOT1RFOiBtYWluIHNjaGVtYSBpZiB0aGUgZmlyc3QgaW4gdGhlIGltcG9ydGVkIGxpc3QKKyAgICAqLworICAgIHhtbEhhc2hTY2FuKHZjdHh0LT5zY2hlbWEtPnNjaGVtYXNJbXBvcnRzLCh4bWxIYXNoU2Nhbm5lcil4bWxTY2hlbWFBdWdtZW50SW1wb3J0ZWRJREMsIHZjdHh0KTsKKworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIHZvaWQKK3htbFNjaGVtYVBvc3RSdW4oeG1sU2NoZW1hVmFsaWRDdHh0UHRyIHZjdHh0KSB7CisgICAgaWYgKHZjdHh0LT54c2lBc3NlbWJsZSkgeworCWlmICh2Y3R4dC0+c2NoZW1hICE9IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hRnJlZSh2Y3R4dC0+c2NoZW1hKTsKKwkgICAgdmN0eHQtPnNjaGVtYSA9IE5VTEw7CisJfQorICAgIH0KKyAgICB4bWxTY2hlbWFDbGVhclZhbGlkQ3R4dCh2Y3R4dCk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFNjaGVtYVZTdGFydCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmN0eHQpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoeG1sU2NoZW1hUHJlUnVuKHZjdHh0KSA8IDApCisgICAgICAgIHJldHVybigtMSk7CisKKyAgICBpZiAodmN0eHQtPmRvYyAhPSBOVUxMKSB7CisJLyoKKwkgKiBUcmVlIHZhbGlkYXRpb24uCisJICovCisJcmV0ID0geG1sU2NoZW1hVkRvY1dhbGsodmN0eHQpOworI2lmZGVmIExJQlhNTF9SRUFERVJfRU5BQkxFRAorICAgIH0gZWxzZSBpZiAodmN0eHQtPnJlYWRlciAhPSBOVUxMKSB7CisJLyoKKwkgKiBYTUwgUmVhZGVyIHZhbGlkYXRpb24uCisJICovCisjaWZkZWYgWE1MX1NDSEVNQV9SRUFERVJfRU5BQkxFRAorCXJldCA9IHhtbFNjaGVtYVZSZWFkZXJXYWxrKHZjdHh0KTsKKyNlbmRpZgorI2VuZGlmCisgICAgfSBlbHNlIGlmICgodmN0eHQtPnNheCAhPSBOVUxMKSAmJiAodmN0eHQtPnBhcnNlckN0eHQgIT0gTlVMTCkpIHsKKwkvKgorCSAqIFNBWCB2YWxpZGF0aW9uLgorCSAqLworCXJldCA9IHhtbFBhcnNlRG9jdW1lbnQodmN0eHQtPnBhcnNlckN0eHQpOworICAgIH0gZWxzZSB7CisJVkVSUk9SX0lOVCgieG1sU2NoZW1hVlN0YXJ0IiwKKwkgICAgIm5vIGluc3RhbmNlIHRvIHZhbGlkYXRlIik7CisJcmV0ID0gLTE7CisgICAgfQorCisgICAgeG1sU2NoZW1hUG9zdFJ1bih2Y3R4dCk7CisgICAgaWYgKHJldCA9PSAwKQorCXJldCA9IHZjdHh0LT5lcnI7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkYXRlT25lRWxlbWVudDoKKyAqIEBjdHh0OiAgYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKiBAZWxlbTogIGFuIGVsZW1lbnQgbm9kZQorICoKKyAqIFZhbGlkYXRlIGEgYnJhbmNoIG9mIGEgdHJlZSwgc3RhcnRpbmcgd2l0aCB0aGUgZ2l2ZW4gQGVsZW0uCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBlbGVtZW50IGFuZCBpdHMgc3VidHJlZSBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvcgorICogY29kZSBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworaW50Cit4bWxTY2hlbWFWYWxpZGF0ZU9uZUVsZW1lbnQoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgZWxlbSkKK3sKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGVsZW0gPT0gTlVMTCkgfHwgKGVsZW0tPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpCisJcmV0dXJuICgtMSk7CisKKyAgICBpZiAoY3R4dC0+c2NoZW1hID09IE5VTEwpCisJcmV0dXJuICgtMSk7CisKKyAgICBjdHh0LT5kb2MgPSBlbGVtLT5kb2M7CisgICAgY3R4dC0+bm9kZSA9IGVsZW07CisgICAgY3R4dC0+dmFsaWRhdGlvblJvb3QgPSBlbGVtOworICAgIHJldHVybih4bWxTY2hlbWFWU3RhcnQoY3R4dCkpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkYXRlRG9jOgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBkb2M6ICBhIHBhcnNlZCBkb2N1bWVudCB0cmVlCisgKgorICogVmFsaWRhdGUgYSBkb2N1bWVudCB0cmVlIGluIG1lbW9yeS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIGRvY3VtZW50IGlzIHNjaGVtYXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZQorICogICAgIG51bWJlciBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitpbnQKK3htbFNjaGVtYVZhbGlkYXRlRG9jKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0LCB4bWxEb2NQdHIgZG9jKQoreworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoZG9jID09IE5VTEwpKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIGN0eHQtPmRvYyA9IGRvYzsKKyAgICBjdHh0LT5ub2RlID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoZG9jKTsKKyAgICBpZiAoY3R4dC0+bm9kZSA9PSBOVUxMKSB7CisgICAgICAgIHhtbFNjaGVtYUN1c3RvbUVycihBQ1RYVF9DQVNUIGN0eHQsCisJICAgIFhNTF9TQ0hFTUFWX0RPQ1VNRU5UX0VMRU1FTlRfTUlTU0lORywKKwkgICAgKHhtbE5vZGVQdHIpIGRvYywgTlVMTCwKKwkgICAgIlRoZSBkb2N1bWVudCBoYXMgbm8gZG9jdW1lbnQgZWxlbWVudCIsIE5VTEwsIE5VTEwpOworICAgICAgICByZXR1cm4gKGN0eHQtPmVycik7CisgICAgfQorICAgIGN0eHQtPnZhbGlkYXRpb25Sb290ID0gY3R4dC0+bm9kZTsKKyAgICByZXR1cm4gKHhtbFNjaGVtYVZTdGFydChjdHh0KSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogCQkJCQkJCQkJKgorICogCQlGdW5jdGlvbiBhbmQgZGF0YSBmb3IgU0FYIHN0cmVhbWluZyBBUEkJCQkqCisgKiAJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVNwbGl0U0FYRGF0YSB4bWxTY2hlbWFTcGxpdFNBWERhdGE7Cit0eXBlZGVmIHhtbFNjaGVtYVNwbGl0U0FYRGF0YSAqeG1sU2NoZW1hU3BsaXRTQVhEYXRhUHRyOworCitzdHJ1Y3QgX3htbFNjaGVtYVNwbGl0U0FYRGF0YSB7CisgICAgeG1sU0FYSGFuZGxlclB0ciAgICAgIHVzZXJfc2F4OworICAgIHZvaWQgICAgICAgICAgICAgICAgICp1c2VyX2RhdGE7CisgICAgeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQ7CisgICAgeG1sU0FYSGFuZGxlclB0ciAgICAgIHNjaGVtYXNfc2F4OworfTsKKworI2RlZmluZSBYTUxfU0FYX1BMVUdfTUFHSUMgMHhkYzQzYmEyMQorCitzdHJ1Y3QgX3htbFNjaGVtYVNBWFBsdWcgeworICAgIHVuc2lnbmVkIGludCBtYWdpYzsKKworICAgIC8qIHRoZSBvcmlnaW5hbCBjYWxsYmFja3MgaW5mb3JtYXRpb25zICovCisgICAgeG1sU0FYSGFuZGxlclB0ciAgICAgKnVzZXJfc2F4X3B0cjsKKyAgICB4bWxTQVhIYW5kbGVyUHRyICAgICAgdXNlcl9zYXg7CisgICAgdm9pZCAgICAgICAgICAgICAgICAqKnVzZXJfZGF0YV9wdHI7CisgICAgdm9pZCAgICAgICAgICAgICAgICAgKnVzZXJfZGF0YTsKKworICAgIC8qIHRoZSBibG9jayBwbHVnZ2VkIGJhY2sgYW5kIHZhbGlkYXRpb24gaW5mb3JtYXRpb25zICovCisgICAgeG1sU0FYSGFuZGxlciAgICAgICAgIHNjaGVtYXNfc2F4OworICAgIHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0OworfTsKKworLyogQWxsIHRob3NlIGZ1bmN0aW9ucyBqdXN0IGJvdW5jZXMgdG8gdGhlIHVzZXIgcHJvdmlkZWQgU0FYIGhhbmRsZXJzICovCitzdGF0aWMgdm9pZAoraW50ZXJuYWxTdWJzZXRTcGxpdCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJICAgICAgIGNvbnN0IHhtbENoYXIgKkV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIgKlN5c3RlbUlEKQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPmludGVybmFsU3Vic2V0ICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5pbnRlcm5hbFN1YnNldChjdHh0LT51c2VyX2RhdGEsIG5hbWUsIEV4dGVybmFsSUQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbUlEKTsKK30KKworc3RhdGljIGludAoraXNTdGFuZGFsb25lU3BsaXQodm9pZCAqY3R4KQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPmlzU3RhbmRhbG9uZSAhPSBOVUxMKSkKKwlyZXR1cm4oY3R4dC0+dXNlcl9zYXgtPmlzU3RhbmRhbG9uZShjdHh0LT51c2VyX2RhdGEpKTsKKyAgICByZXR1cm4oMCk7Cit9CisKK3N0YXRpYyBpbnQKK2hhc0ludGVybmFsU3Vic2V0U3BsaXQodm9pZCAqY3R4KQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPmhhc0ludGVybmFsU3Vic2V0ICE9IE5VTEwpKQorCXJldHVybihjdHh0LT51c2VyX3NheC0+aGFzSW50ZXJuYWxTdWJzZXQoY3R4dC0+dXNlcl9kYXRhKSk7CisgICAgcmV0dXJuKDApOworfQorCitzdGF0aWMgaW50CitoYXNFeHRlcm5hbFN1YnNldFNwbGl0KHZvaWQgKmN0eCkKK3sKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPnVzZXJfc2F4LT5oYXNFeHRlcm5hbFN1YnNldCAhPSBOVUxMKSkKKwlyZXR1cm4oY3R4dC0+dXNlcl9zYXgtPmhhc0V4dGVybmFsU3Vic2V0KGN0eHQtPnVzZXJfZGF0YSkpOworICAgIHJldHVybigwKTsKK30KKworc3RhdGljIHZvaWQKK2V4dGVybmFsU3Vic2V0U3BsaXQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgICBjb25zdCB4bWxDaGFyICpFeHRlcm5hbElELCBjb25zdCB4bWxDaGFyICpTeXN0ZW1JRCkKK3sKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPnVzZXJfc2F4LT5leHRlcm5hbFN1YnNldCAhPSBOVUxMKSkKKwljdHh0LT51c2VyX3NheC0+ZXh0ZXJuYWxTdWJzZXQoY3R4dC0+dXNlcl9kYXRhLCBuYW1lLCBFeHRlcm5hbElELAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW1JRCk7Cit9CisKK3N0YXRpYyB4bWxQYXJzZXJJbnB1dFB0cgorcmVzb2x2ZUVudGl0eVNwbGl0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkKQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPnJlc29sdmVFbnRpdHkgIT0gTlVMTCkpCisJcmV0dXJuKGN0eHQtPnVzZXJfc2F4LT5yZXNvbHZlRW50aXR5KGN0eHQtPnVzZXJfZGF0YSwgcHVibGljSWQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbUlkKSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCitzdGF0aWMgeG1sRW50aXR5UHRyCitnZXRFbnRpdHlTcGxpdCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUpCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+Z2V0RW50aXR5ICE9IE5VTEwpKQorCXJldHVybihjdHh0LT51c2VyX3NheC0+Z2V0RW50aXR5KGN0eHQtPnVzZXJfZGF0YSwgbmFtZSkpOworICAgIHJldHVybihOVUxMKTsKK30KKworc3RhdGljIHhtbEVudGl0eVB0cgorZ2V0UGFyYW1ldGVyRW50aXR5U3BsaXQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpuYW1lKQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPmdldFBhcmFtZXRlckVudGl0eSAhPSBOVUxMKSkKKwlyZXR1cm4oY3R4dC0+dXNlcl9zYXgtPmdldFBhcmFtZXRlckVudGl0eShjdHh0LT51c2VyX2RhdGEsIG5hbWUpKTsKKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKworc3RhdGljIHZvaWQKK2VudGl0eURlY2xTcGxpdCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGludCB0eXBlLAorICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCwgeG1sQ2hhciAqY29udGVudCkKK3sKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPnVzZXJfc2F4LT5lbnRpdHlEZWNsICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5lbnRpdHlEZWNsKGN0eHQtPnVzZXJfZGF0YSwgbmFtZSwgdHlwZSwgcHVibGljSWQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVtSWQsIGNvbnRlbnQpOworfQorCitzdGF0aWMgdm9pZAorYXR0cmlidXRlRGVjbFNwbGl0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIGVsZW0sCisgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGludCB0eXBlLCBpbnQgZGVmLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBkZWZhdWx0VmFsdWUsIHhtbEVudW1lcmF0aW9uUHRyIHRyZWUpCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+YXR0cmlidXRlRGVjbCAhPSBOVUxMKSkgeworCWN0eHQtPnVzZXJfc2F4LT5hdHRyaWJ1dGVEZWNsKGN0eHQtPnVzZXJfZGF0YSwgZWxlbSwgbmFtZSwgdHlwZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYsIGRlZmF1bHRWYWx1ZSwgdHJlZSk7CisgICAgfSBlbHNlIHsKKwl4bWxGcmVlRW51bWVyYXRpb24odHJlZSk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorZWxlbWVudERlY2xTcGxpdCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUsIGludCB0eXBlLAorCSAgICB4bWxFbGVtZW50Q29udGVudFB0ciBjb250ZW50KQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPmVsZW1lbnREZWNsICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5lbGVtZW50RGVjbChjdHh0LT51c2VyX2RhdGEsIG5hbWUsIHR5cGUsIGNvbnRlbnQpOworfQorCitzdGF0aWMgdm9pZAorbm90YXRpb25EZWNsU3BsaXQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpuYW1lLAorCSAgICAgY29uc3QgeG1sQ2hhciAqcHVibGljSWQsIGNvbnN0IHhtbENoYXIgKnN5c3RlbUlkKQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPm5vdGF0aW9uRGVjbCAhPSBOVUxMKSkKKwljdHh0LT51c2VyX3NheC0+bm90YXRpb25EZWNsKGN0eHQtPnVzZXJfZGF0YSwgbmFtZSwgcHVibGljSWQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1JZCk7Cit9CisKK3N0YXRpYyB2b2lkCit1bnBhcnNlZEVudGl0eURlY2xTcGxpdCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCSAgIGNvbnN0IHhtbENoYXIgKnB1YmxpY0lkLCBjb25zdCB4bWxDaGFyICpzeXN0ZW1JZCwKKwkJICAgY29uc3QgeG1sQ2hhciAqbm90YXRpb25OYW1lKQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPnVucGFyc2VkRW50aXR5RGVjbCAhPSBOVUxMKSkKKwljdHh0LT51c2VyX3NheC0+dW5wYXJzZWRFbnRpdHlEZWNsKGN0eHQtPnVzZXJfZGF0YSwgbmFtZSwgcHVibGljSWQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1JZCwgbm90YXRpb25OYW1lKTsKK30KKworc3RhdGljIHZvaWQKK3NldERvY3VtZW50TG9jYXRvclNwbGl0KHZvaWQgKmN0eCwgeG1sU0FYTG9jYXRvclB0ciBsb2MpCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+c2V0RG9jdW1lbnRMb2NhdG9yICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5zZXREb2N1bWVudExvY2F0b3IoY3R4dC0+dXNlcl9kYXRhLCBsb2MpOworfQorCitzdGF0aWMgdm9pZAorc3RhcnREb2N1bWVudFNwbGl0KHZvaWQgKmN0eCkKK3sKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPnVzZXJfc2F4LT5zdGFydERvY3VtZW50ICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5zdGFydERvY3VtZW50KGN0eHQtPnVzZXJfZGF0YSk7Cit9CisKK3N0YXRpYyB2b2lkCitlbmREb2N1bWVudFNwbGl0KHZvaWQgKmN0eCkKK3sKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPnVzZXJfc2F4LT5lbmREb2N1bWVudCAhPSBOVUxMKSkKKwljdHh0LT51c2VyX3NheC0+ZW5kRG9jdW1lbnQoY3R4dC0+dXNlcl9kYXRhKTsKK30KKworc3RhdGljIHZvaWQKK3Byb2Nlc3NpbmdJbnN0cnVjdGlvblNwbGl0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmRhdGEpCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+cHJvY2Vzc2luZ0luc3RydWN0aW9uICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY3R4dC0+dXNlcl9kYXRhLCB0YXJnZXQsIGRhdGEpOworfQorCitzdGF0aWMgdm9pZAorY29tbWVudFNwbGl0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqdmFsdWUpCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+Y29tbWVudCAhPSBOVUxMKSkKKwljdHh0LT51c2VyX3NheC0+Y29tbWVudChjdHh0LT51c2VyX2RhdGEsIHZhbHVlKTsKK30KKworLyoKKyAqIFZhcmFyZ3MgZXJyb3IgY2FsbGJhY2tzIHRvIHRoZSB1c2VyIGFwcGxpY2F0aW9uLCBoYXJkZXIgLi4uCisgKi8KKworc3RhdGljIHZvaWQgWE1MQ0RFQ0wKK3dhcm5pbmdTcGxpdCh2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm1zZyBBVFRSSUJVVEVfVU5VU0VELCAuLi4pIHsKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPnVzZXJfc2F4LT53YXJuaW5nICE9IE5VTEwpKSB7CisJVE9ETworICAgIH0KK30KK3N0YXRpYyB2b2lkIFhNTENERUNMCitlcnJvclNwbGl0KHZvaWQgKmN0eCwgY29uc3QgY2hhciAqbXNnIEFUVFJJQlVURV9VTlVTRUQsIC4uLikgeworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPmVycm9yICE9IE5VTEwpKSB7CisJVE9ETworICAgIH0KK30KK3N0YXRpYyB2b2lkIFhNTENERUNMCitmYXRhbEVycm9yU3BsaXQodm9pZCAqY3R4LCBjb25zdCBjaGFyICptc2cgQVRUUklCVVRFX1VOVVNFRCwgLi4uKSB7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+ZmF0YWxFcnJvciAhPSBOVUxMKSkgeworCVRPRE8KKyAgICB9Cit9CisKKy8qCisgKiBUaG9zZSBhcmUgZnVuY3Rpb24gd2hlcmUgYm90aCB0aGUgdXNlciBoYW5kbGVyIGFuZCB0aGUgc2NoZW1hcyBoYW5kbGVyCisgKiBuZWVkIHRvIGJlIGNhbGxlZC4KKyAqLworc3RhdGljIHZvaWQKK2NoYXJhY3RlcnNTcGxpdCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKmNoLCBpbnQgbGVuKQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICgoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYgKGN0eHQtPnVzZXJfc2F4LT5jaGFyYWN0ZXJzICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5jaGFyYWN0ZXJzKGN0eHQtPnVzZXJfZGF0YSwgY2gsIGxlbik7CisgICAgaWYgKGN0eHQtPmN0eHQgIT0gTlVMTCkKKwl4bWxTY2hlbWFTQVhIYW5kbGVUZXh0KGN0eHQtPmN0eHQsIGNoLCBsZW4pOworfQorCitzdGF0aWMgdm9pZAoraWdub3JhYmxlV2hpdGVzcGFjZVNwbGl0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqY2gsIGludCBsZW4pCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UgIT0gTlVMTCkpCisJY3R4dC0+dXNlcl9zYXgtPmlnbm9yYWJsZVdoaXRlc3BhY2UoY3R4dC0+dXNlcl9kYXRhLCBjaCwgbGVuKTsKKyAgICBpZiAoY3R4dC0+Y3R4dCAhPSBOVUxMKQorCXhtbFNjaGVtYVNBWEhhbmRsZVRleHQoY3R4dC0+Y3R4dCwgY2gsIGxlbik7Cit9CisKK3N0YXRpYyB2b2lkCitjZGF0YUJsb2NrU3BsaXQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICp2YWx1ZSwgaW50IGxlbikKK3sKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+Y2RhdGFCbG9jayAhPSBOVUxMKSkKKwljdHh0LT51c2VyX3NheC0+Y2RhdGFCbG9jayhjdHh0LT51c2VyX2RhdGEsIHZhbHVlLCBsZW4pOworICAgIGlmIChjdHh0LT5jdHh0ICE9IE5VTEwpCisJeG1sU2NoZW1hU0FYSGFuZGxlQ0RhdGFTZWN0aW9uKGN0eHQtPmN0eHQsIHZhbHVlLCBsZW4pOworfQorCitzdGF0aWMgdm9pZAorcmVmZXJlbmNlU3BsaXQodm9pZCAqY3R4LCBjb25zdCB4bWxDaGFyICpuYW1lKQoreworICAgIHhtbFNjaGVtYVNBWFBsdWdQdHIgY3R4dCA9ICh4bWxTY2hlbWFTQVhQbHVnUHRyKSBjdHg7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+dXNlcl9zYXggIT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPnVzZXJfc2F4LT5yZWZlcmVuY2UgIT0gTlVMTCkpCisJY3R4dC0+dXNlcl9zYXgtPnJlZmVyZW5jZShjdHh0LT51c2VyX2RhdGEsIG5hbWUpOworICAgIGlmIChjdHh0LT5jdHh0ICE9IE5VTEwpCisgICAgICAgIHhtbFNjaGVtYVNBWEhhbmRsZVJlZmVyZW5jZShjdHh0LT51c2VyX2RhdGEsIG5hbWUpOworfQorCitzdGF0aWMgdm9pZAorc3RhcnRFbGVtZW50TnNTcGxpdCh2b2lkICpjdHgsIGNvbnN0IHhtbENoYXIgKiBsb2NhbG5hbWUsCisJCSAgICBjb25zdCB4bWxDaGFyICogcHJlZml4LCBjb25zdCB4bWxDaGFyICogVVJJLAorCQkgICAgaW50IG5iX25hbWVzcGFjZXMsIGNvbnN0IHhtbENoYXIgKiogbmFtZXNwYWNlcywKKwkJICAgIGludCBuYl9hdHRyaWJ1dGVzLCBpbnQgbmJfZGVmYXVsdGVkLAorCQkgICAgY29uc3QgeG1sQ2hhciAqKiBhdHRyaWJ1dGVzKSB7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBjdHh0ID0gKHhtbFNjaGVtYVNBWFBsdWdQdHIpIGN0eDsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKChjdHh0LT51c2VyX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAoY3R4dC0+dXNlcl9zYXgtPnN0YXJ0RWxlbWVudE5zICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5zdGFydEVsZW1lbnROcyhjdHh0LT51c2VyX2RhdGEsIGxvY2FsbmFtZSwgcHJlZml4LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkksIG5iX25hbWVzcGFjZXMsIG5hbWVzcGFjZXMsCisJCQkJICAgICAgIG5iX2F0dHJpYnV0ZXMsIG5iX2RlZmF1bHRlZCwKKwkJCQkgICAgICAgYXR0cmlidXRlcyk7CisgICAgaWYgKGN0eHQtPmN0eHQgIT0gTlVMTCkKKwl4bWxTY2hlbWFTQVhIYW5kbGVTdGFydEVsZW1lbnROcyhjdHh0LT5jdHh0LCBsb2NhbG5hbWUsIHByZWZpeCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkksIG5iX25hbWVzcGFjZXMsIG5hbWVzcGFjZXMsCisJCQkJCSBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0ZWQsCisJCQkJCSBhdHRyaWJ1dGVzKTsKK30KKworc3RhdGljIHZvaWQKK2VuZEVsZW1lbnROc1NwbGl0KHZvaWQgKmN0eCwgY29uc3QgeG1sQ2hhciAqIGxvY2FsbmFtZSwKKwkJICAgIGNvbnN0IHhtbENoYXIgKiBwcmVmaXgsIGNvbnN0IHhtbENoYXIgKiBVUkkpIHsKKyAgICB4bWxTY2hlbWFTQVhQbHVnUHRyIGN0eHQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgY3R4OworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKGN0eHQtPnVzZXJfc2F4ICE9IE5VTEwpICYmCisgICAgICAgIChjdHh0LT51c2VyX3NheC0+ZW5kRWxlbWVudE5zICE9IE5VTEwpKQorCWN0eHQtPnVzZXJfc2F4LT5lbmRFbGVtZW50TnMoY3R4dC0+dXNlcl9kYXRhLCBsb2NhbG5hbWUsIHByZWZpeCwgVVJJKTsKKyAgICBpZiAoY3R4dC0+Y3R4dCAhPSBOVUxMKQorCXhtbFNjaGVtYVNBWEhhbmRsZUVuZEVsZW1lbnROcyhjdHh0LT5jdHh0LCBsb2NhbG5hbWUsIHByZWZpeCwgVVJJKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFTQVhQbHVnOgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBzYXg6ICBhIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIHhtbFNBWEhhbmRsZXJQdHIKKyAqIEB1c2VyX2RhdGE6ICBhIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIFNBWCB1c2VyIGRhdGEgcG9pbnRlcgorICoKKyAqIFBsdWcgYSBTQVggYmFzZWQgdmFsaWRhdGlvbiBsYXllciBpbiBhIFNBWCBwYXJzaW5nIGV2ZW50IGZsb3cuCisgKiBUaGUgb3JpZ2luYWwgQHNheHB0ciBhbmQgQGRhdGFwdHIgZGF0YSBhcmUgcmVwbGFjZWQgYnkgbmV3IHBvaW50ZXJzCisgKiBidXQgdGhlIGNhbGxzIHRvIHRoZSBvcmlnaW5hbCB3aWxsIGJlIG1haW50YWluZWQuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBkYXRhIHN0cnVjdHVyZSBuZWVkZWQgdG8gdW5wbHVnIHRoZSB2YWxpZGF0aW9uIGxheWVyCisgKiAgICAgICAgIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcnMuCisgKi8KK3htbFNjaGVtYVNBWFBsdWdQdHIKK3htbFNjaGVtYVNBWFBsdWcoeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQsCisJCSB4bWxTQVhIYW5kbGVyUHRyICpzYXgsIHZvaWQgKip1c2VyX2RhdGEpCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciByZXQ7CisgICAgeG1sU0FYSGFuZGxlclB0ciBvbGRfc2F4OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChzYXggPT0gTlVMTCkgfHwgKHVzZXJfZGF0YSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworCisgICAgLyoKKyAgICAgKiBXZSBvbmx5IGFsbG93IHRvIHBsdWcgaW50byBTQVgyIGV2ZW50IHN0cmVhbXMKKyAgICAgKi8KKyAgICBvbGRfc2F4ID0gKnNheDsKKyAgICBpZiAoKG9sZF9zYXggIT0gTlVMTCkgJiYgKG9sZF9zYXgtPmluaXRpYWxpemVkICE9IFhNTF9TQVgyX01BR0lDKSkKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIGlmICgob2xkX3NheCAhPSBOVUxMKSAmJgorICAgICAgICAob2xkX3NheC0+c3RhcnRFbGVtZW50TnMgPT0gTlVMTCkgJiYgKG9sZF9zYXgtPmVuZEVsZW1lbnROcyA9PSBOVUxMKSAmJgorICAgICAgICAoKG9sZF9zYXgtPnN0YXJ0RWxlbWVudCAhPSBOVUxMKSB8fCAob2xkX3NheC0+ZW5kRWxlbWVudCAhPSBOVUxMKSkpCisgICAgICAgIHJldHVybihOVUxMKTsKKworICAgIC8qCisgICAgICogZXZlcnl0aGluZyBzZWVtcyByaWdodCBhbGxvY2F0ZSB0aGUgbG9jYWwgZGF0YSBuZWVkZWQgZm9yIHRoYXQgbGF5ZXIKKyAgICAgKi8KKyAgICByZXQgPSAoeG1sU2NoZW1hU0FYUGx1Z1B0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFTQVhQbHVnU3RydWN0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYVNBWFBsdWdTdHJ1Y3QpKTsKKyAgICByZXQtPm1hZ2ljID0gWE1MX1NBWF9QTFVHX01BR0lDOworICAgIHJldC0+c2NoZW1hc19zYXguaW5pdGlhbGl6ZWQgPSBYTUxfU0FYMl9NQUdJQzsKKyAgICByZXQtPmN0eHQgPSBjdHh0OworICAgIHJldC0+dXNlcl9zYXhfcHRyID0gc2F4OworICAgIHJldC0+dXNlcl9zYXggPSBvbGRfc2F4OworICAgIGlmIChvbGRfc2F4ID09IE5VTEwpIHsKKyAgICAgICAgLyoKKwkgKiBnbyBkaXJlY3QsIG5vIG5lZWQgZm9yIHRoZSBzcGxpdCBibG9jayBhbmQgZnVuY3Rpb25zLgorCSAqLworCXJldC0+c2NoZW1hc19zYXguc3RhcnRFbGVtZW50TnMgPSB4bWxTY2hlbWFTQVhIYW5kbGVTdGFydEVsZW1lbnROczsKKwlyZXQtPnNjaGVtYXNfc2F4LmVuZEVsZW1lbnROcyA9IHhtbFNjaGVtYVNBWEhhbmRsZUVuZEVsZW1lbnROczsKKwkvKgorCSAqIE5vdGUgdGhhdCB3ZSB1c2UgdGhlIHNhbWUgdGV4dC1mdW5jdGlvbiBmb3IgYm90aCwgdG8gcHJldmVudAorCSAqIHRoZSBwYXJzZXIgZnJvbSB0ZXN0aW5nIGZvciBpZ25vcmFibGUgd2hpdGVzcGFjZS4KKwkgKi8KKwlyZXQtPnNjaGVtYXNfc2F4Lmlnbm9yYWJsZVdoaXRlc3BhY2UgPSB4bWxTY2hlbWFTQVhIYW5kbGVUZXh0OworCXJldC0+c2NoZW1hc19zYXguY2hhcmFjdGVycyA9IHhtbFNjaGVtYVNBWEhhbmRsZVRleHQ7CisKKwlyZXQtPnNjaGVtYXNfc2F4LmNkYXRhQmxvY2sgPSB4bWxTY2hlbWFTQVhIYW5kbGVDRGF0YVNlY3Rpb247CisJcmV0LT5zY2hlbWFzX3NheC5yZWZlcmVuY2UgPSB4bWxTY2hlbWFTQVhIYW5kbGVSZWZlcmVuY2U7CisKKwlyZXQtPnVzZXJfZGF0YSA9IGN0eHQ7CisJKnVzZXJfZGF0YSA9IGN0eHQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAvKgorICAgICAgICAqIGZvciBlYWNoIGNhbGxiYWNrIHVudXNlZCBieSBTY2hlbWFzIGluaXRpYWxpemUgaXQgdG8gdGhlIFNwbGl0CisJKiByb3V0aW5lIG9ubHkgaWYgbm9uIE5VTEwgaW4gdGhlIHVzZXIgYmxvY2ssIHRoaXMgY2FuIHNwZWVkIHVwCisJKiB0aGluZ3MgYXQgdGhlIFNBWCBsZXZlbC4KKwkqLworICAgICAgICBpZiAob2xkX3NheC0+aW50ZXJuYWxTdWJzZXQgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldC0+c2NoZW1hc19zYXguaW50ZXJuYWxTdWJzZXQgPSBpbnRlcm5hbFN1YnNldFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+aXNTdGFuZGFsb25lICE9IE5VTEwpCisgICAgICAgICAgICByZXQtPnNjaGVtYXNfc2F4LmlzU3RhbmRhbG9uZSA9IGlzU3RhbmRhbG9uZVNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+aGFzSW50ZXJuYWxTdWJzZXQgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldC0+c2NoZW1hc19zYXguaGFzSW50ZXJuYWxTdWJzZXQgPSBoYXNJbnRlcm5hbFN1YnNldFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+aGFzRXh0ZXJuYWxTdWJzZXQgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldC0+c2NoZW1hc19zYXguaGFzRXh0ZXJuYWxTdWJzZXQgPSBoYXNFeHRlcm5hbFN1YnNldFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+cmVzb2x2ZUVudGl0eSAhPSBOVUxMKQorICAgICAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5yZXNvbHZlRW50aXR5ID0gcmVzb2x2ZUVudGl0eVNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+Z2V0RW50aXR5ICE9IE5VTEwpCisgICAgICAgICAgICByZXQtPnNjaGVtYXNfc2F4LmdldEVudGl0eSA9IGdldEVudGl0eVNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+ZW50aXR5RGVjbCAhPSBOVUxMKQorICAgICAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5lbnRpdHlEZWNsID0gZW50aXR5RGVjbFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+bm90YXRpb25EZWNsICE9IE5VTEwpCisgICAgICAgICAgICByZXQtPnNjaGVtYXNfc2F4Lm5vdGF0aW9uRGVjbCA9IG5vdGF0aW9uRGVjbFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+YXR0cmlidXRlRGVjbCAhPSBOVUxMKQorICAgICAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5hdHRyaWJ1dGVEZWNsID0gYXR0cmlidXRlRGVjbFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+ZWxlbWVudERlY2wgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldC0+c2NoZW1hc19zYXguZWxlbWVudERlY2wgPSBlbGVtZW50RGVjbFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+dW5wYXJzZWRFbnRpdHlEZWNsICE9IE5VTEwpCisgICAgICAgICAgICByZXQtPnNjaGVtYXNfc2F4LnVucGFyc2VkRW50aXR5RGVjbCA9IHVucGFyc2VkRW50aXR5RGVjbFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+c2V0RG9jdW1lbnRMb2NhdG9yICE9IE5VTEwpCisgICAgICAgICAgICByZXQtPnNjaGVtYXNfc2F4LnNldERvY3VtZW50TG9jYXRvciA9IHNldERvY3VtZW50TG9jYXRvclNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+c3RhcnREb2N1bWVudCAhPSBOVUxMKQorICAgICAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5zdGFydERvY3VtZW50ID0gc3RhcnREb2N1bWVudFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+ZW5kRG9jdW1lbnQgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldC0+c2NoZW1hc19zYXguZW5kRG9jdW1lbnQgPSBlbmREb2N1bWVudFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+cHJvY2Vzc2luZ0luc3RydWN0aW9uICE9IE5VTEwpCisgICAgICAgICAgICByZXQtPnNjaGVtYXNfc2F4LnByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IHByb2Nlc3NpbmdJbnN0cnVjdGlvblNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+Y29tbWVudCAhPSBOVUxMKQorICAgICAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5jb21tZW50ID0gY29tbWVudFNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+d2FybmluZyAhPSBOVUxMKQorICAgICAgICAgICAgcmV0LT5zY2hlbWFzX3NheC53YXJuaW5nID0gd2FybmluZ1NwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+ZXJyb3IgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldC0+c2NoZW1hc19zYXguZXJyb3IgPSBlcnJvclNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+ZmF0YWxFcnJvciAhPSBOVUxMKQorICAgICAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5mYXRhbEVycm9yID0gZmF0YWxFcnJvclNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+Z2V0UGFyYW1ldGVyRW50aXR5ICE9IE5VTEwpCisgICAgICAgICAgICByZXQtPnNjaGVtYXNfc2F4LmdldFBhcmFtZXRlckVudGl0eSA9IGdldFBhcmFtZXRlckVudGl0eVNwbGl0OworICAgICAgICBpZiAob2xkX3NheC0+ZXh0ZXJuYWxTdWJzZXQgIT0gTlVMTCkKKyAgICAgICAgICAgIHJldC0+c2NoZW1hc19zYXguZXh0ZXJuYWxTdWJzZXQgPSBleHRlcm5hbFN1YnNldFNwbGl0OworCisJLyoKKwkgKiB0aGUgNiBzY2hlbWFzIGNhbGxiYWNrIGhhdmUgdG8gZ28gdG8gdGhlIHNwbGl0dGVyIGZ1bmN0aW9ucworCSAqIE5vdGUgdGhhdCB3ZSB1c2UgdGhlIHNhbWUgdGV4dC1mdW5jdGlvbiBmb3IgaWdub3JhYmxlV2hpdGVzcGFjZQorCSAqIGlmIHBvc3NpYmxlLCB0byBwcmV2ZW50IHRoZSBwYXJzZXIgZnJvbSB0ZXN0aW5nIGZvciBpZ25vcmFibGUKKwkgKiB3aGl0ZXNwYWNlLgorCSAqLworICAgICAgICByZXQtPnNjaGVtYXNfc2F4LmNoYXJhY3RlcnMgPSBjaGFyYWN0ZXJzU3BsaXQ7CisJaWYgKChvbGRfc2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlICE9IE5VTEwpICYmCisJICAgIChvbGRfc2F4LT5pZ25vcmFibGVXaGl0ZXNwYWNlICE9IG9sZF9zYXgtPmNoYXJhY3RlcnMpKQorCSAgICByZXQtPnNjaGVtYXNfc2F4Lmlnbm9yYWJsZVdoaXRlc3BhY2UgPSBpZ25vcmFibGVXaGl0ZXNwYWNlU3BsaXQ7CisJZWxzZQorCSAgICByZXQtPnNjaGVtYXNfc2F4Lmlnbm9yYWJsZVdoaXRlc3BhY2UgPSBjaGFyYWN0ZXJzU3BsaXQ7CisgICAgICAgIHJldC0+c2NoZW1hc19zYXguY2RhdGFCbG9jayA9IGNkYXRhQmxvY2tTcGxpdDsKKyAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5yZWZlcmVuY2UgPSByZWZlcmVuY2VTcGxpdDsKKyAgICAgICAgcmV0LT5zY2hlbWFzX3NheC5zdGFydEVsZW1lbnROcyA9IHN0YXJ0RWxlbWVudE5zU3BsaXQ7CisgICAgICAgIHJldC0+c2NoZW1hc19zYXguZW5kRWxlbWVudE5zID0gZW5kRWxlbWVudE5zU3BsaXQ7CisKKwlyZXQtPnVzZXJfZGF0YV9wdHIgPSB1c2VyX2RhdGE7CisJcmV0LT51c2VyX2RhdGEgPSAqdXNlcl9kYXRhOworCSp1c2VyX2RhdGEgPSByZXQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBwbHVnIHRoZSBwb2ludGVycyBiYWNrLgorICAgICAqLworICAgICpzYXggPSAmKHJldC0+c2NoZW1hc19zYXgpOworICAgIGN0eHQtPnNheCA9ICpzYXg7CisgICAgY3R4dC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQV9WQUxJRF9DVFhUX0ZMQUdfU1RSRUFNOworICAgIHhtbFNjaGVtYVByZVJ1bihjdHh0KTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFTQVhVbnBsdWc6CisgKiBAcGx1ZzogIGEgZGF0YSBzdHJ1Y3R1cmUgcmV0dXJuZWQgYnkgeG1sU2NoZW1hU0FYUGx1ZworICoKKyAqIFVucGx1ZyBhIFNBWCBiYXNlZCB2YWxpZGF0aW9uIGxheWVyIGluIGEgU0FYIHBhcnNpbmcgZXZlbnQgZmxvdy4KKyAqIFRoZSBvcmlnaW5hbCBwb2ludGVycyB1c2VkIGluIHRoZSBjYWxsIGFyZSByZXN0b3JlZC4KKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzIGFuZCAtMSBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKi8KK2ludAoreG1sU2NoZW1hU0FYVW5wbHVnKHhtbFNjaGVtYVNBWFBsdWdQdHIgcGx1ZykKK3sKKyAgICB4bWxTQVhIYW5kbGVyUHRyICpzYXg7CisgICAgdm9pZCAqKnVzZXJfZGF0YTsKKworICAgIGlmICgocGx1ZyA9PSBOVUxMKSB8fCAocGx1Zy0+bWFnaWMgIT0gWE1MX1NBWF9QTFVHX01BR0lDKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICBwbHVnLT5tYWdpYyA9IDA7CisKKyAgICB4bWxTY2hlbWFQb3N0UnVuKHBsdWctPmN0eHQpOworICAgIC8qIHJlc3RvcmUgdGhlIGRhdGEgKi8KKyAgICBzYXggPSBwbHVnLT51c2VyX3NheF9wdHI7CisgICAgKnNheCA9IHBsdWctPnVzZXJfc2F4OworICAgIGlmIChwbHVnLT51c2VyX3NheCAhPSBOVUxMKSB7CisJdXNlcl9kYXRhID0gcGx1Zy0+dXNlcl9kYXRhX3B0cjsKKwkqdXNlcl9kYXRhID0gcGx1Zy0+dXNlcl9kYXRhOworICAgIH0KKworICAgIC8qIGZyZWUgYW5kIHJldHVybiAqLworICAgIHhtbEZyZWUocGx1Zyk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkYXRlU3RyZWFtOgorICogQGN0eHQ6ICBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBpbnB1dDogIHRoZSBpbnB1dCB0byB1c2UgZm9yIHJlYWRpbmcgdGhlIGRhdGEKKyAqIEBlbmM6ICBhbiBvcHRpb25hbCBlbmNvZGluZyBpbmZvcm1hdGlvbgorICogQHNheDogIGEgU0FYIGhhbmRsZXIgZm9yIHRoZSByZXN1bHRpbmcgZXZlbnRzCisgKiBAdXNlcl9kYXRhOiAgdGhlIGNvbnRleHQgdG8gcHJvdmlkZSB0byB0aGUgU0FYIGhhbmRsZXIuCisgKgorICogVmFsaWRhdGUgYW4gaW5wdXQgYmFzZWQgb24gYSBmbG93IG9mIFNBWCBldmVudCBmcm9tIHRoZSBwYXJzZXIKKyAqIGFuZCBmb3J3YXJkIHRoZSBldmVudHMgdG8gdGhlIEBzYXggaGFuZGxlciB3aXRoIHRoZSBwcm92aWRlZCBAdXNlcl9kYXRhCisgKiB0aGUgdXNlciBwcm92aWRlZCBAc2F4IGhhbmRsZXIgbXVzdCBiZSBhIFNBWDIgb25lLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgZG9jdW1lbnQgaXMgc2NoZW1hcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlCisgKiAgICAgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0oeG1sU2NoZW1hVmFsaWRDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxQYXJzZXJJbnB1dEJ1ZmZlclB0ciBpbnB1dCwgeG1sQ2hhckVuY29kaW5nIGVuYywKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNBWEhhbmRsZXJQdHIgc2F4LCB2b2lkICp1c2VyX2RhdGEpCit7CisgICAgeG1sU2NoZW1hU0FYUGx1Z1B0ciBwbHVnID0gTlVMTDsKKyAgICB4bWxTQVhIYW5kbGVyUHRyIG9sZF9zYXggPSBOVUxMOworICAgIHhtbFBhcnNlckN0eHRQdHIgcGN0eHQgPSBOVUxMOworICAgIHhtbFBhcnNlcklucHV0UHRyIGlucHV0U3RyZWFtID0gTlVMTDsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChpbnB1dCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICAvKgorICAgICAqIHByZXBhcmUgdGhlIHBhcnNlcgorICAgICAqLworICAgIHBjdHh0ID0geG1sTmV3UGFyc2VyQ3R4dCgpOworICAgIGlmIChwY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKyAgICBvbGRfc2F4ID0gcGN0eHQtPnNheDsKKyAgICBwY3R4dC0+c2F4ID0gc2F4OworICAgIHBjdHh0LT51c2VyRGF0YSA9IHVzZXJfZGF0YTsKKyNpZiAwCisgICAgaWYgKG9wdGlvbnMpCisgICAgICAgIHhtbEN0eHRVc2VPcHRpb25zKHBjdHh0LCBvcHRpb25zKTsKKyNlbmRpZgorICAgIHBjdHh0LT5saW5lbnVtYmVycyA9IDE7CisKKyAgICBpbnB1dFN0cmVhbSA9IHhtbE5ld0lPSW5wdXRTdHJlYW0ocGN0eHQsIGlucHV0LCBlbmMpOzsKKyAgICBpZiAoaW5wdXRTdHJlYW0gPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtMTsKKwlnb3RvIGRvbmU7CisgICAgfQorICAgIGlucHV0UHVzaChwY3R4dCwgaW5wdXRTdHJlYW0pOworICAgIGN0eHQtPnBhcnNlckN0eHQgPSBwY3R4dDsKKyAgICBjdHh0LT5pbnB1dCA9IGlucHV0OworCisgICAgLyoKKyAgICAgKiBQbHVnIHRoZSB2YWxpZGF0aW9uIGFuZCBsYXVuY2ggdGhlIHBhcnNpbmcKKyAgICAgKi8KKyAgICBwbHVnID0geG1sU2NoZW1hU0FYUGx1ZyhjdHh0LCAmKHBjdHh0LT5zYXgpLCAmKHBjdHh0LT51c2VyRGF0YSkpOworICAgIGlmIChwbHVnID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gLTE7CisJZ290byBkb25lOworICAgIH0KKyAgICBjdHh0LT5pbnB1dCA9IGlucHV0OworICAgIGN0eHQtPmVuYyA9IGVuYzsKKyAgICBjdHh0LT5zYXggPSBwY3R4dC0+c2F4OworICAgIGN0eHQtPmZsYWdzIHw9IFhNTF9TQ0hFTUFfVkFMSURfQ1RYVF9GTEFHX1NUUkVBTTsKKyAgICByZXQgPSB4bWxTY2hlbWFWU3RhcnQoY3R4dCk7CisKKyAgICBpZiAoKHJldCA9PSAwKSAmJiAoISBjdHh0LT5wYXJzZXJDdHh0LT53ZWxsRm9ybWVkKSkgeworCXJldCA9IGN0eHQtPnBhcnNlckN0eHQtPmVyck5vOworCWlmIChyZXQgPT0gMCkKKwkgICAgcmV0ID0gMTsKKyAgICB9CisKK2RvbmU6CisgICAgY3R4dC0+cGFyc2VyQ3R4dCA9IE5VTEw7CisgICAgY3R4dC0+c2F4ID0gTlVMTDsKKyAgICBjdHh0LT5pbnB1dCA9IE5VTEw7CisgICAgaWYgKHBsdWcgIT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFTQVhVbnBsdWcocGx1Zyk7CisgICAgfQorICAgIC8qIGNsZWFudXAgKi8KKyAgICBpZiAocGN0eHQgIT0gTlVMTCkgeworCXBjdHh0LT5zYXggPSBvbGRfc2F4OworCXhtbEZyZWVQYXJzZXJDdHh0KHBjdHh0KTsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkYXRlRmlsZToKKyAqIEBjdHh0OiBhIHNjaGVtYSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEBmaWxlbmFtZTogdGhlIFVSSSBvZiB0aGUgaW5zdGFuY2UKKyAqIEBvcHRpb25zOiBhIGZ1dHVyZSBzZXQgb2Ygb3B0aW9ucywgY3VycmVudGx5IHVudXNlZAorICoKKyAqIERvIGEgc2NoZW1hcyB2YWxpZGF0aW9uIG9mIHRoZSBnaXZlbiByZXNvdXJjZSwgaXQgd2lsbCB1c2UgdGhlCisgKiBTQVggc3RyZWFtYWJsZSB2YWxpZGF0aW9uIGludGVybmFsbHkuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBkb2N1bWVudCBpcyB2YWxpZCwgYSBwb3NpdGl2ZSBlcnJvciBjb2RlCisgKiAgICAgbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hVmFsaWRhdGVGaWxlKHhtbFNjaGVtYVZhbGlkQ3R4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwKKwkJICAgICAgaW50IG9wdGlvbnMgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICBpbnQgcmV0OworICAgIHhtbFBhcnNlcklucHV0QnVmZmVyUHRyIGlucHV0OworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChmaWxlbmFtZSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisKKyAgICBpbnB1dCA9IHhtbFBhcnNlcklucHV0QnVmZmVyQ3JlYXRlRmlsZW5hbWUoZmlsZW5hbWUsCisJWE1MX0NIQVJfRU5DT0RJTkdfTk9ORSk7CisgICAgaWYgKGlucHV0ID09IE5VTEwpCisJcmV0dXJuICgtMSk7CisgICAgcmV0ID0geG1sU2NoZW1hVmFsaWRhdGVTdHJlYW0oY3R4dCwgaW5wdXQsIFhNTF9DSEFSX0VOQ09ESU5HX05PTkUsCisJTlVMTCwgTlVMTCk7CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkQ3R4dEdldFBhcnNlckN0eHQ6CisgKiBAY3R4dDogYSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0CisgKgorICogYWxsb3cgYWNjZXNzIHRvIHRoZSBwYXJzZXIgY29udGV4dCBvZiB0aGUgc2NoZW1hIHZhbGlkYXRpb24gY29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIHBhcnNlciBjb250ZXh0IG9mIHRoZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0IG9yIE5VTEwKKyAqICAgICAgICAgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworeG1sUGFyc2VyQ3R4dFB0cgoreG1sU2NoZW1hVmFsaWRDdHh0R2V0UGFyc2VyQ3R4dCh4bWxTY2hlbWFWYWxpZEN0eHRQdHIgY3R4dCkKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgcmV0dXJuIChjdHh0LT5wYXJzZXJDdHh0KTsKK30KKworI2RlZmluZSBib3R0b21feG1sc2NoZW1hcworI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZiAvKiBMSUJYTUxfU0NIRU1BU19FTkFCTEVEICovCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbHNjaGVtYXN0eXBlcy5jIGIvbGlieG1sMi0yLjcuNy94bWxzY2hlbWFzdHlwZXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2UyMWUxCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy94bWxzY2hlbWFzdHlwZXMuYwpAQCAtMCwwICsxLDYxMjcgQEAKKy8qCisgKiBzY2hlbWFzdHlwZXMuYyA6IGltcGxlbWVudGF0aW9uIG9mIHRoZSBYTUwgU2NoZW1hIERhdGF0eXBlcworICogICAgICAgICAgICAgZGVmaW5pdGlvbiBhbmQgdmFsaWRpdHkgY2hlY2tpbmcKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpZmRlZiBMSUJYTUxfU0NIRU1BU19FTkFCTEVECisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvaGFzaC5oPgorI2luY2x1ZGUgPGxpYnhtbC92YWxpZC5oPgorI2luY2x1ZGUgPGxpYnhtbC94cGF0aC5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKworI2luY2x1ZGUgPGxpYnhtbC94bWxzY2hlbWFzLmg+CisjaW5jbHVkZSA8bGlieG1sL3NjaGVtYXNJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg+CisKKyNpZmRlZiBIQVZFX01BVEhfSAorI2luY2x1ZGUgPG1hdGguaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkxPQVRfSAorI2luY2x1ZGUgPGZsb2F0Lmg+CisjZW5kaWYKKworI2RlZmluZSBERUJVRworCisjaWZuZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECitleHRlcm4gZG91YmxlIHhtbFhQYXRoTkFOOworZXh0ZXJuIGRvdWJsZSB4bWxYUGF0aFBJTkY7CitleHRlcm4gZG91YmxlIHhtbFhQYXRoTklORjsKKyNlbmRpZgorCisjZGVmaW5lIFRPRE8gCQkJCQkJCQlcCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCQkJCVwKKwkgICAgIlVuaW1wbGVtZW50ZWQgYmxvY2sgYXQgJXM6JWRcbiIsCQkJCVwKKyAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisKKyNkZWZpbmUgWE1MX1NDSEVNQVNfTkFNRVNQQUNFX05BTUUgXAorICAgIChjb25zdCB4bWxDaGFyICopImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorCisjZGVmaW5lIElTX1dTUF9SRVBMQUNFX0NIKGMpCSgoKChjKSA9PSAweDkpIHx8ICgoYykgPT0gMHhhKSkgfHwgXAorCQkJCSAoKGMpID09IDB4ZCkpCisKKyNkZWZpbmUgSVNfV1NQX1NQQUNFX0NIKGMpCSgoYykgPT0gMHgyMCkKKworI2RlZmluZSBJU19XU1BfQkxBTktfQ0goYykgSVNfQkxBTktfQ0goYykKKworLyogRGF0ZSB2YWx1ZSAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVZhbERhdGUgeG1sU2NoZW1hVmFsRGF0ZTsKK3R5cGVkZWYgeG1sU2NoZW1hVmFsRGF0ZSAqeG1sU2NoZW1hVmFsRGF0ZVB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hVmFsRGF0ZSB7CisgICAgbG9uZwkJeWVhcjsKKyAgICB1bnNpZ25lZCBpbnQJbW9uCTo0OwkvKiAxIDw9ICBtb24gICAgPD0gMTIgICAqLworICAgIHVuc2lnbmVkIGludAlkYXkJOjU7CS8qIDEgPD0gIGRheSAgICA8PSAzMSAgICovCisgICAgdW5zaWduZWQgaW50CWhvdXIJOjU7CS8qIDAgPD0gIGhvdXIgICA8PSAyMyAgICovCisgICAgdW5zaWduZWQgaW50CW1pbgk6NjsJLyogMCA8PSAgbWluICAgIDw9IDU5CSovCisgICAgZG91YmxlCQlzZWM7CisgICAgdW5zaWduZWQgaW50CXR6X2ZsYWcJOjE7CS8qIGlzIHR6byBleHBsaWNpdGVseSBzZXQ/ICovCisgICAgc2lnbmVkIGludAkJdHpvCToxMjsJLyogLTE0NDAgPD0gdHpvIDw9IDE0NDA7CisJCQkJCSAgIGN1cnJlbnRseSBvbmx5IC04NDAgdG8gKzg0MCBhcmUgbmVlZGVkICovCit9OworCisvKiBEdXJhdGlvbiB2YWx1ZSAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVZhbER1cmF0aW9uIHhtbFNjaGVtYVZhbER1cmF0aW9uOwordHlwZWRlZiB4bWxTY2hlbWFWYWxEdXJhdGlvbiAqeG1sU2NoZW1hVmFsRHVyYXRpb25QdHI7CitzdHJ1Y3QgX3htbFNjaGVtYVZhbER1cmF0aW9uIHsKKyAgICBsb25nCSAgICAgICAgbW9uOwkJLyogbW9uIHN0b3JlcyB5ZWFycyBhbHNvICovCisgICAgbG9uZyAgICAgICAgCWRheTsKKyAgICBkb3VibGUJCXNlYzsgICAgICAgICAgICAvKiBzZWMgc3RvcmVzIG1pbiBhbmQgaG91ciBhbHNvICovCit9OworCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hVmFsRGVjaW1hbCB4bWxTY2hlbWFWYWxEZWNpbWFsOwordHlwZWRlZiB4bWxTY2hlbWFWYWxEZWNpbWFsICp4bWxTY2hlbWFWYWxEZWNpbWFsUHRyOworc3RydWN0IF94bWxTY2hlbWFWYWxEZWNpbWFsIHsKKyAgICAvKiB3b3VsZCB1c2UgbG9uZyBsb25nIGJ1dCBub3QgcG9ydGFibGUgKi8KKyAgICB1bnNpZ25lZCBsb25nIGxvOworICAgIHVuc2lnbmVkIGxvbmcgbWk7CisgICAgdW5zaWduZWQgbG9uZyBoaTsKKyAgICB1bnNpZ25lZCBpbnQgZXh0cmE7CisgICAgdW5zaWduZWQgaW50IHNpZ246MTsKKyAgICB1bnNpZ25lZCBpbnQgZnJhYzo3OworICAgIHVuc2lnbmVkIGludCB0b3RhbDo4OworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVZhbFFOYW1lIHhtbFNjaGVtYVZhbFFOYW1lOwordHlwZWRlZiB4bWxTY2hlbWFWYWxRTmFtZSAqeG1sU2NoZW1hVmFsUU5hbWVQdHI7CitzdHJ1Y3QgX3htbFNjaGVtYVZhbFFOYW1lIHsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKnVyaTsKK307CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFWYWxIZXggeG1sU2NoZW1hVmFsSGV4OwordHlwZWRlZiB4bWxTY2hlbWFWYWxIZXggKnhtbFNjaGVtYVZhbEhleFB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hVmFsSGV4IHsKKyAgICB4bWxDaGFyICAgICAqc3RyOworICAgIHVuc2lnbmVkIGludCB0b3RhbDsKK307CisKK3R5cGVkZWYgc3RydWN0IF94bWxTY2hlbWFWYWxCYXNlNjQgeG1sU2NoZW1hVmFsQmFzZTY0OwordHlwZWRlZiB4bWxTY2hlbWFWYWxCYXNlNjQgKnhtbFNjaGVtYVZhbEJhc2U2NFB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hVmFsQmFzZTY0IHsKKyAgICB4bWxDaGFyICAgICAqc3RyOworICAgIHVuc2lnbmVkIGludCB0b3RhbDsKK307CisKK3N0cnVjdCBfeG1sU2NoZW1hVmFsIHsKKyAgICB4bWxTY2hlbWFWYWxUeXBlIHR5cGU7CisgICAgc3RydWN0IF94bWxTY2hlbWFWYWwgKm5leHQ7CisgICAgdW5pb24geworCXhtbFNjaGVtYVZhbERlY2ltYWwgICAgIGRlY2ltYWw7CisgICAgICAgIHhtbFNjaGVtYVZhbERhdGUgICAgICAgIGRhdGU7CisgICAgICAgIHhtbFNjaGVtYVZhbER1cmF0aW9uICAgIGR1cjsKKwl4bWxTY2hlbWFWYWxRTmFtZQlxbmFtZTsKKwl4bWxTY2hlbWFWYWxIZXgJCWhleDsKKwl4bWxTY2hlbWFWYWxCYXNlNjQJYmFzZTY0OworCWZsb2F0CQkJZjsKKwlkb3VibGUJCQlkOworCWludAkJCWI7CisJeG1sQ2hhciAgICAgICAgICAgICAgICAqc3RyOworICAgIH0gdmFsdWU7Cit9OworCitzdGF0aWMgaW50IHhtbFNjaGVtYVR5cGVzSW5pdGlhbGl6ZWQgPSAwOworc3RhdGljIHhtbEhhc2hUYWJsZVB0ciB4bWxTY2hlbWFUeXBlc0JhbmsgPSBOVUxMOworCisvKgorICogQmFzaWMgdHlwZXMKKyAqLworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZVN0cmluZ0RlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlQW55VHlwZURlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlRGVjaW1hbERlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlRGF0ZXRpbWVEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZURhdGVEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZVRpbWVEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZUdZZWFyRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVHWWVhck1vbnRoRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVHRGF5RGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVHTW9udGhEYXlEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZUdNb250aERlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlRHVyYXRpb25EZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZUZsb2F0RGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVCb29sZWFuRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVEb3VibGVEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZUhleEJpbmFyeURlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlQmFzZTY0QmluYXJ5RGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVBbnlVUklEZWYgPSBOVUxMOworCisvKgorICogRGVyaXZlZCB0eXBlcworICovCitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlUG9zaXRpdmVJbnRlZ2VyRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVOb25Qb3NpdGl2ZUludGVnZXJEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZU5lZ2F0aXZlSW50ZWdlckRlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlTm9uTmVnYXRpdmVJbnRlZ2VyRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVJbnRlZ2VyRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVMb25nRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVJbnREZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZVNob3J0RGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVCeXRlRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVVbnNpZ25lZExvbmdEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZVVuc2lnbmVkSW50RGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVVbnNpZ25lZFNob3J0RGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVVbnNpZ25lZEJ5dGVEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZU5vcm1TdHJpbmdEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZVRva2VuRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVMYW5ndWFnZURlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlTmFtZURlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlUU5hbWVEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZU5DTmFtZURlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlSWREZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZUlkcmVmRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVJZHJlZnNEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZUVudGl0eURlZiA9IE5VTEw7CitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0ciB4bWxTY2hlbWFUeXBlRW50aXRpZXNEZWYgPSBOVUxMOworc3RhdGljIHhtbFNjaGVtYVR5cGVQdHIgeG1sU2NoZW1hVHlwZU5vdGF0aW9uRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVObXRva2VuRGVmID0gTlVMTDsKK3N0YXRpYyB4bWxTY2hlbWFUeXBlUHRyIHhtbFNjaGVtYVR5cGVObXRva2Vuc0RlZiA9IE5VTEw7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICogCQkJRGF0YXR5cGUgZXJyb3IgaGFuZGxlcnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiB4bWxTY2hlbWFUeXBlRXJyTWVtb3J5OgorICogQGV4dHJhOiAgZXh0cmEgaW5mb3JtYXRpb25zCisgKgorICogSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgY29uZGl0aW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFUeXBlRXJyTWVtb3J5KHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgX194bWxTaW1wbGVFcnJvcihYTUxfRlJPTV9EQVRBVFlQRSwgWE1MX0VSUl9OT19NRU1PUlksIG5vZGUsIE5VTEwsIGV4dHJhKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAJCQlCYXNlIHR5cGVzIHN1cHBvcnQJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFNjaGVtYU5ld1ZhbHVlOgorICogQHR5cGU6ICB0aGUgdmFsdWUgdHlwZQorICoKKyAqIEFsbG9jYXRlIGEgbmV3IHNpbXBsZSB0eXBlIHZhbHVlCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFNjaGVtYVZhbFB0cgoreG1sU2NoZW1hTmV3VmFsdWUoeG1sU2NoZW1hVmFsVHlwZSB0eXBlKSB7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbHVlOworCisgICAgdmFsdWUgPSAoeG1sU2NoZW1hVmFsUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYVZhbCkpOworICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQodmFsdWUsIDAsIHNpemVvZih4bWxTY2hlbWFWYWwpKTsKKyAgICB2YWx1ZS0+dHlwZSA9IHR5cGU7CisgICAgcmV0dXJuKHZhbHVlKTsKK30KKworc3RhdGljIHhtbFNjaGVtYUZhY2V0UHRyCit4bWxTY2hlbWFOZXdNaW5MZW5ndGhGYWNldChpbnQgdmFsdWUpCit7CisgICAgeG1sU2NoZW1hRmFjZXRQdHIgcmV0OworCisgICAgcmV0ID0geG1sU2NoZW1hTmV3RmFjZXQoKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXQtPnR5cGUgPSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSDsKKyAgICByZXQtPnZhbCA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX05OSU5URUdFUik7CisgICAgcmV0LT52YWwtPnZhbHVlLmRlY2ltYWwubG8gPSB2YWx1ZTsKKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qCisgKiB4bWxTY2hlbWFJbml0QmFzaWNUeXBlOgorICogQG5hbWU6ICB0aGUgdHlwZSBuYW1lCisgKiBAdHlwZTogIHRoZSB2YWx1ZSB0eXBlIGFzc29jaWF0ZWQKKyAqCisgKiBJbml0aWFsaXplIG9uZSBwcmltaXRpdmUgYnVpbHQtaW4gdHlwZQorICovCitzdGF0aWMgeG1sU2NoZW1hVHlwZVB0cgoreG1sU2NoZW1hSW5pdEJhc2ljVHlwZShjb25zdCBjaGFyICpuYW1lLCB4bWxTY2hlbWFWYWxUeXBlIHR5cGUsIAorCQkgICAgICAgeG1sU2NoZW1hVHlwZVB0ciBiYXNlVHlwZSkgeworICAgIHhtbFNjaGVtYVR5cGVQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFNjaGVtYVR5cGVQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hVHlwZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFUeXBlRXJyTWVtb3J5KE5VTEwsICJjb3VsZCBub3QgaW5pdGlhbGl6ZSBiYXNpYyB0eXBlcyIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCwgc2l6ZW9mKHhtbFNjaGVtYVR5cGUpKTsKKyAgICByZXQtPm5hbWUgPSAoY29uc3QgeG1sQ2hhciAqKW5hbWU7CisgICAgcmV0LT50YXJnZXROYW1lc3BhY2UgPSBYTUxfU0NIRU1BU19OQU1FU1BBQ0VfTkFNRTsKKyAgICByZXQtPnR5cGUgPSBYTUxfU0NIRU1BX1RZUEVfQkFTSUM7CisgICAgcmV0LT5iYXNlVHlwZSA9IGJhc2VUeXBlOwkKKyAgICByZXQtPmNvbnRlbnRUeXBlID0gWE1MX1NDSEVNQV9DT05URU5UX0JBU0lDOworICAgIC8qCisgICAgKiBQcmltaXRpdmUgdHlwZXMuCisgICAgKi8KKyAgICBzd2l0Y2ggKHR5cGUpIHsJCQorCWNhc2UgWE1MX1NDSEVNQVNfU1RSSU5HOiAgICAgICAgICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfREVDSU1BTDogICAgCisJY2FzZSBYTUxfU0NIRU1BU19EQVRFOiAgICAKKwljYXNlIFhNTF9TQ0hFTUFTX0RBVEVUSU1FOiAgICAKKwljYXNlIFhNTF9TQ0hFTUFTX1RJTUU6ICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfR1lFQVI6ICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfR1lFQVJNT05USDogICAgCisJY2FzZSBYTUxfU0NIRU1BU19HTU9OVEg6ICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfR01PTlRIREFZOiAgICAKKwljYXNlIFhNTF9TQ0hFTUFTX0dEQVk6ICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfRFVSQVRJT046ICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfRkxPQVQ6ICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfRE9VQkxFOiAgICAKKwljYXNlIFhNTF9TQ0hFTUFTX0JPT0xFQU46ICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfQU5ZVVJJOiAgICAKKwljYXNlIFhNTF9TQ0hFTUFTX0hFWEJJTkFSWTogICAgCisJY2FzZSBYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlk6CQorCWNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6CQorCWNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046CQorCSAgICByZXQtPmZsYWdzIHw9IFhNTF9TQ0hFTUFTX1RZUEVfQlVJTFRJTl9QUklNSVRJVkU7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIGJyZWFrOworICAgIH0KKyAgICAvKgorICAgICogU2V0IHZhcmlldHkuCisgICAgKi8KKyAgICBzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFTX0FOWVRZUEU6CisJY2FzZSBYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFOgorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFTX0lEUkVGUzoKKwljYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU5TOgorCWNhc2UgWE1MX1NDSEVNQVNfRU5USVRJRVM6CisJICAgIHJldC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0xJU1Q7CisJICAgIHJldC0+ZmFjZXRzID0geG1sU2NoZW1hTmV3TWluTGVuZ3RoRmFjZXQoMSk7CisJICAgIHJldC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9IQVNfRkFDRVRTOwkgICAgCisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHJldC0+ZmxhZ3MgfD0gWE1MX1NDSEVNQVNfVFlQRV9WQVJJRVRZX0FUT01JQzsKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHhtbEhhc2hBZGRFbnRyeTIoeG1sU2NoZW1hVHlwZXNCYW5rLCByZXQtPm5hbWUsCisJICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX05BTUVTUEFDRV9OQU1FLCByZXQpOworICAgIHJldC0+YnVpbHRJblR5cGUgPSB0eXBlOworICAgIHJldHVybihyZXQpOworfQorCisvKgorKiBXQVJOSU5HOiBUaG9zZSB0eXBlIHJlc2lkZSBub3JtYWxseSBpbiB4bWxzY2hlbWFzLmMgYnV0IGFyZQorKiByZWRlZmluZWQgaGVyZSBsb2NhbGx5IGluIG9kZXIgb2YgYmVpbmcgYWJsZSB0byB1c2UgdGhlbSBmb3IgeHM6YW55VHlwZS0KKyogVE9ETzogUmVtb3ZlIHRob3NlIGRlZmluaXRpb24gaWYgd2UgbW92ZSB0aGUgdHlwZXMgdG8gYSBoZWFkZXIgZmlsZS4KKyogVE9ETzogQWx3YXlzIGtlZXAgdGhvc2Ugc3RydWN0cyB1cC10by1kYXRlIHdpdGggdGhlIG9yaWdpbmFscy4KKyovCisjZGVmaW5lIFVOQk9VTkRFRCAoMSA8PCAzMCkKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYVRyZWVJdGVtIHhtbFNjaGVtYVRyZWVJdGVtOwordHlwZWRlZiB4bWxTY2hlbWFUcmVlSXRlbSAqeG1sU2NoZW1hVHJlZUl0ZW1QdHI7CitzdHJ1Y3QgX3htbFNjaGVtYVRyZWVJdGVtIHsKKyAgICB4bWxTY2hlbWFUeXBlVHlwZSB0eXBlOworICAgIHhtbFNjaGVtYUFubm90UHRyIGFubm90OworICAgIHhtbFNjaGVtYVRyZWVJdGVtUHRyIG5leHQ7CisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgY2hpbGRyZW47Cit9OworCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hUGFydGljbGUgeG1sU2NoZW1hUGFydGljbGU7Cit0eXBlZGVmIHhtbFNjaGVtYVBhcnRpY2xlICp4bWxTY2hlbWFQYXJ0aWNsZVB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hUGFydGljbGUgeworICAgIHhtbFNjaGVtYVR5cGVUeXBlIHR5cGU7CisgICAgeG1sU2NoZW1hQW5ub3RQdHIgYW5ub3Q7CisgICAgeG1sU2NoZW1hVHJlZUl0ZW1QdHIgbmV4dDsKKyAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBjaGlsZHJlbjsKKyAgICBpbnQgbWluT2NjdXJzOworICAgIGludCBtYXhPY2N1cnM7CisgICAgeG1sTm9kZVB0ciBub2RlOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFNjaGVtYU1vZGVsR3JvdXAgeG1sU2NoZW1hTW9kZWxHcm91cDsKK3R5cGVkZWYgeG1sU2NoZW1hTW9kZWxHcm91cCAqeG1sU2NoZW1hTW9kZWxHcm91cFB0cjsKK3N0cnVjdCBfeG1sU2NoZW1hTW9kZWxHcm91cCB7CisgICAgeG1sU2NoZW1hVHlwZVR5cGUgdHlwZTsKKyAgICB4bWxTY2hlbWFBbm5vdFB0ciBhbm5vdDsKKyAgICB4bWxTY2hlbWFUcmVlSXRlbVB0ciBuZXh0OworICAgIHhtbFNjaGVtYVRyZWVJdGVtUHRyIGNoaWxkcmVuOworICAgIHhtbE5vZGVQdHIgbm9kZTsKK307CisKK3N0YXRpYyB4bWxTY2hlbWFQYXJ0aWNsZVB0cgoreG1sU2NoZW1hQWRkUGFydGljbGUodm9pZCkKK3sKKyAgICB4bWxTY2hlbWFQYXJ0aWNsZVB0ciByZXQgPSBOVUxMOworCisgICAgcmV0ID0gKHhtbFNjaGVtYVBhcnRpY2xlUHRyKQorCXhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hUGFydGljbGUpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKwl4bWxTY2hlbWFUeXBlRXJyTWVtb3J5KE5VTEwsICJhbGxvY2F0aW5nIHBhcnRpY2xlIGNvbXBvbmVudCIpOworCXJldHVybiAoTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIHNpemVvZih4bWxTY2hlbWFQYXJ0aWNsZSkpOworICAgIHJldC0+dHlwZSA9IFhNTF9TQ0hFTUFfVFlQRV9QQVJUSUNMRTsKKyAgICByZXQtPm1pbk9jY3VycyA9IDE7CisgICAgcmV0LT5tYXhPY2N1cnMgPSAxOworICAgIHJldHVybiAocmV0KTsKK30KKworLyoKKyAqIHhtbFNjaGVtYUluaXRUeXBlczoKKyAqCisgKiBJbml0aWFsaXplIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeQorICovCit2b2lkCit4bWxTY2hlbWFJbml0VHlwZXModm9pZCkKK3sKKyAgICBpZiAoeG1sU2NoZW1hVHlwZXNJbml0aWFsaXplZCAhPSAwKQorICAgICAgICByZXR1cm47CisgICAgeG1sU2NoZW1hVHlwZXNCYW5rID0geG1sSGFzaENyZWF0ZSg0MCk7CisKKyAgICAKKyAgICAvKgorICAgICogMy40LjcgQnVpbHQtaW4gQ29tcGxleCBUeXBlIERlZmluaXRpb24KKyAgICAqLworICAgIHhtbFNjaGVtYVR5cGVBbnlUeXBlRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiYW55VHlwZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX0FOWVRZUEUsIAorCQkJCQkJICAgICBOVUxMKTsKKyAgICB4bWxTY2hlbWFUeXBlQW55VHlwZURlZi0+YmFzZVR5cGUgPSB4bWxTY2hlbWFUeXBlQW55VHlwZURlZjsKKyAgICB4bWxTY2hlbWFUeXBlQW55VHlwZURlZi0+Y29udGVudFR5cGUgPSBYTUxfU0NIRU1BX0NPTlRFTlRfTUlYRUQ7CisgICAgLyoKKyAgICAqIEluaXQgdGhlIGNvbnRlbnQgdHlwZS4KKyAgICAqLworICAgIHhtbFNjaGVtYVR5cGVBbnlUeXBlRGVmLT5jb250ZW50VHlwZSA9IFhNTF9TQ0hFTUFfQ09OVEVOVF9NSVhFRDsgICAgCisgICAgeworCXhtbFNjaGVtYVBhcnRpY2xlUHRyIHBhcnRpY2xlOworCXhtbFNjaGVtYU1vZGVsR3JvdXBQdHIgc2VxdWVuY2U7CisJeG1sU2NoZW1hV2lsZGNhcmRQdHIgd2lsZDsKKwkvKiBGaXJzdCBwYXJ0aWNsZS4gKi8KKwlwYXJ0aWNsZSA9IHhtbFNjaGVtYUFkZFBhcnRpY2xlKCk7CisJaWYgKHBhcnRpY2xlID09IE5VTEwpCisJICAgIHJldHVybjsKKwl4bWxTY2hlbWFUeXBlQW55VHlwZURlZi0+c3VidHlwZXMgPSAoeG1sU2NoZW1hVHlwZVB0cikgcGFydGljbGU7CisJLyogU2VxdWVuY2UgbW9kZWwgZ3JvdXAuICovCisJc2VxdWVuY2UgPSAoeG1sU2NoZW1hTW9kZWxHcm91cFB0cikKKwkgICAgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFNb2RlbEdyb3VwKSk7CisJaWYgKHNlcXVlbmNlID09IE5VTEwpIHsKKwkgICAgeG1sU2NoZW1hVHlwZUVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBtb2RlbCBncm91cCBjb21wb25lbnQiKTsKKwkgICAgcmV0dXJuOworCX0KKwltZW1zZXQoc2VxdWVuY2UsIDAsIHNpemVvZih4bWxTY2hlbWFNb2RlbEdyb3VwKSk7CisJc2VxdWVuY2UtPnR5cGUgPSBYTUxfU0NIRU1BX1RZUEVfU0VRVUVOQ0U7CQorCXBhcnRpY2xlLT5jaGlsZHJlbiA9ICh4bWxTY2hlbWFUcmVlSXRlbVB0cikgc2VxdWVuY2U7CisJLyogU2Vjb25kIHBhcnRpY2xlLiAqLworCXBhcnRpY2xlID0geG1sU2NoZW1hQWRkUGFydGljbGUoKTsKKwlpZiAocGFydGljbGUgPT0gTlVMTCkKKwkgICAgcmV0dXJuOworCXBhcnRpY2xlLT5taW5PY2N1cnMgPSAwOworCXBhcnRpY2xlLT5tYXhPY2N1cnMgPSBVTkJPVU5ERUQ7CisJc2VxdWVuY2UtPmNoaWxkcmVuID0gKHhtbFNjaGVtYVRyZWVJdGVtUHRyKSBwYXJ0aWNsZTsKKwkvKiBUaGUgd2lsZGNhcmQgKi8KKwl3aWxkID0gKHhtbFNjaGVtYVdpbGRjYXJkUHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFNjaGVtYVdpbGRjYXJkKSk7CisJaWYgKHdpbGQgPT0gTlVMTCkgeworCSAgICB4bWxTY2hlbWFUeXBlRXJyTWVtb3J5KE5VTEwsICJhbGxvY2F0aW5nIHdpbGRjYXJkIGNvbXBvbmVudCIpOworCSAgICByZXR1cm47CisJfQorCW1lbXNldCh3aWxkLCAwLCBzaXplb2YoeG1sU2NoZW1hV2lsZGNhcmQpKTsKKwl3aWxkLT50eXBlID0gWE1MX1NDSEVNQV9UWVBFX0FOWTsKKwl3aWxkLT5hbnkgPSAxOwkKKwl3aWxkLT5wcm9jZXNzQ29udGVudHMgPSBYTUxfU0NIRU1BU19BTllfTEFYOwkKKwlwYXJ0aWNsZS0+Y2hpbGRyZW4gPSAoeG1sU2NoZW1hVHJlZUl0ZW1QdHIpIHdpbGQ7ICAgIAorCS8qCisJKiBDcmVhdGUgdGhlIGF0dHJpYnV0ZSB3aWxkY2FyZC4KKwkqLworCXdpbGQgPSAoeG1sU2NoZW1hV2lsZGNhcmRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sU2NoZW1hV2lsZGNhcmQpKTsKKwlpZiAod2lsZCA9PSBOVUxMKSB7CisJICAgIHhtbFNjaGVtYVR5cGVFcnJNZW1vcnkoTlVMTCwgImNvdWxkIG5vdCBjcmVhdGUgYW4gYXR0cmlidXRlICIKKwkJIndpbGRjYXJkIG9uIGFueVR5cGUiKTsKKwkgICAgcmV0dXJuOworCX0KKwltZW1zZXQod2lsZCwgMCwgc2l6ZW9mKHhtbFNjaGVtYVdpbGRjYXJkKSk7CisJd2lsZC0+YW55ID0gMTsKKwl3aWxkLT5wcm9jZXNzQ29udGVudHMgPSBYTUxfU0NIRU1BU19BTllfTEFYOwkKKwl4bWxTY2hlbWFUeXBlQW55VHlwZURlZi0+YXR0cmlidXRlV2lsZGNhcmQgPSB3aWxkOworICAgIH0KKyAgICB4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoImFueVNpbXBsZVR5cGUiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSwKKwkJCQkJCQkgICB4bWxTY2hlbWFUeXBlQW55VHlwZURlZik7CisgICAgLyoKKyAgICAqIHByaW1pdGl2ZSBkYXRhdHlwZXMKKyAgICAqLworICAgIHhtbFNjaGVtYVR5cGVTdHJpbmdEZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJzdHJpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX1NUUklORywKKwkJCQkJCSAgICB4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZik7CisgICAgeG1sU2NoZW1hVHlwZURlY2ltYWxEZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJkZWNpbWFsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfREVDSU1BTCwKKwkJCQkJCSAgICAgeG1sU2NoZW1hVHlwZUFueVNpbXBsZVR5cGVEZWYpOworICAgIHhtbFNjaGVtYVR5cGVEYXRlRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiZGF0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX0RBVEUsCisJCQkJCQkgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlRGF0ZXRpbWVEZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJkYXRlVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19EQVRFVElNRSwKKwkJCQkJCSAgICAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlVGltZURlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoInRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19USU1FLAorCQkJCQkJICB4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZik7CisgICAgeG1sU2NoZW1hVHlwZUdZZWFyRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiZ1llYXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfR1lFQVIsCisJCQkJCQkgICB4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZik7CisgICAgeG1sU2NoZW1hVHlwZUdZZWFyTW9udGhEZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJnWWVhck1vbnRoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfR1lFQVJNT05USCwKKwkJCQkJCQl4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZik7CisgICAgeG1sU2NoZW1hVHlwZUdNb250aERlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoImdNb250aCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfR01PTlRILAorCQkJCQkJICAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlR01vbnRoRGF5RGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiZ01vbnRoRGF5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19HTU9OVEhEQVksCisJCQkJCQkgICAgICAgeG1sU2NoZW1hVHlwZUFueVNpbXBsZVR5cGVEZWYpOworICAgIHhtbFNjaGVtYVR5cGVHRGF5RGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiZ0RheSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX0dEQVksCisJCQkJCQkgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlRHVyYXRpb25EZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJkdXJhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19EVVJBVElPTiwKKwkJCQkJCSAgICAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlRmxvYXREZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJmbG9hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19GTE9BVCwKKwkJCQkJCSAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlRG91YmxlRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiZG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19ET1VCTEUsCisJCQkJCQkgICAgeG1sU2NoZW1hVHlwZUFueVNpbXBsZVR5cGVEZWYpOworICAgIHhtbFNjaGVtYVR5cGVCb29sZWFuRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiYm9vbGVhbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX0JPT0xFQU4sCisJCQkJCQkgICAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlQW55VVJJRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiYW55VVJJIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19BTllVUkksCisJCQkJCQkgICAgeG1sU2NoZW1hVHlwZUFueVNpbXBsZVR5cGVEZWYpOworICAgIHhtbFNjaGVtYVR5cGVIZXhCaW5hcnlEZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJoZXhCaW5hcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19IRVhCSU5BUlksCisJCQkJCQkgICAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlQmFzZTY0QmluYXJ5RGVmCisgICAgICAgID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiYmFzZTY0QmluYXJ5IiwgWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZLAorCXhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlTm90YXRpb25EZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJOT1RBVElPTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfTk9UQVRJT04sCisJCQkJCQkgICAgeG1sU2NoZW1hVHlwZUFueVNpbXBsZVR5cGVEZWYpOyAgICAKKyAgICB4bWxTY2hlbWFUeXBlUU5hbWVEZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJRTmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19RTkFNRSwKKwkJCQkJCSAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKworICAgIC8qCisgICAgICogZGVyaXZlZCBkYXRhdHlwZXMKKyAgICAgKi8KKyAgICB4bWxTY2hlbWFUeXBlSW50ZWdlckRlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoImludGVnZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19JTlRFR0VSLAorCQkJCQkJICAgICB4bWxTY2hlbWFUeXBlRGVjaW1hbERlZik7CisgICAgeG1sU2NoZW1hVHlwZU5vblBvc2l0aXZlSW50ZWdlckRlZiA9CisgICAgICAgIHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoIm5vblBvc2l0aXZlSW50ZWdlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfTlBJTlRFR0VSLAorCQkJICAgICAgIHhtbFNjaGVtYVR5cGVJbnRlZ2VyRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlTmVnYXRpdmVJbnRlZ2VyRGVmID0KKyAgICAgICAgeG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgibmVnYXRpdmVJbnRlZ2VyIiwgWE1MX1NDSEVNQVNfTklOVEVHRVIsCisJeG1sU2NoZW1hVHlwZU5vblBvc2l0aXZlSW50ZWdlckRlZik7CisgICAgeG1sU2NoZW1hVHlwZUxvbmdEZWYgPQorICAgICAgICB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJsb25nIiwgWE1MX1NDSEVNQVNfTE9ORywKKwl4bWxTY2hlbWFUeXBlSW50ZWdlckRlZik7CisgICAgeG1sU2NoZW1hVHlwZUludERlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoImludCIsIFhNTF9TQ0hFTUFTX0lOVCwKKwl4bWxTY2hlbWFUeXBlTG9uZ0RlZik7CisgICAgeG1sU2NoZW1hVHlwZVNob3J0RGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgic2hvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfU0hPUlQsCisJCQkJCQkgICB4bWxTY2hlbWFUeXBlSW50RGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlQnl0ZURlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoImJ5dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19CWVRFLAorCQkJCQkJICB4bWxTY2hlbWFUeXBlU2hvcnREZWYpOworICAgIHhtbFNjaGVtYVR5cGVOb25OZWdhdGl2ZUludGVnZXJEZWYgPQorICAgICAgICB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJub25OZWdhdGl2ZUludGVnZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX05OSU5URUdFUiwKKwkJCSAgICAgICB4bWxTY2hlbWFUeXBlSW50ZWdlckRlZik7CisgICAgeG1sU2NoZW1hVHlwZVVuc2lnbmVkTG9uZ0RlZiA9CisgICAgICAgIHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoInVuc2lnbmVkTG9uZyIsIFhNTF9TQ0hFTUFTX1VMT05HLAorCXhtbFNjaGVtYVR5cGVOb25OZWdhdGl2ZUludGVnZXJEZWYpOworICAgIHhtbFNjaGVtYVR5cGVVbnNpZ25lZEludERlZiA9CisgICAgICAgIHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoInVuc2lnbmVkSW50IiwgWE1MX1NDSEVNQVNfVUlOVCwKKwl4bWxTY2hlbWFUeXBlVW5zaWduZWRMb25nRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlVW5zaWduZWRTaG9ydERlZiA9CisgICAgICAgIHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoInVuc2lnbmVkU2hvcnQiLCBYTUxfU0NIRU1BU19VU0hPUlQsCisJeG1sU2NoZW1hVHlwZVVuc2lnbmVkSW50RGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlVW5zaWduZWRCeXRlRGVmID0KKyAgICAgICAgeG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgidW5zaWduZWRCeXRlIiwgWE1MX1NDSEVNQVNfVUJZVEUsCisJeG1sU2NoZW1hVHlwZVVuc2lnbmVkU2hvcnREZWYpOworICAgIHhtbFNjaGVtYVR5cGVQb3NpdGl2ZUludGVnZXJEZWYgPQorICAgICAgICB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJwb3NpdGl2ZUludGVnZXIiLCBYTUxfU0NIRU1BU19QSU5URUdFUiwKKwl4bWxTY2hlbWFUeXBlTm9uTmVnYXRpdmVJbnRlZ2VyRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlTm9ybVN0cmluZ0RlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoIm5vcm1hbGl6ZWRTdHJpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19OT1JNU1RSSU5HLAorCQkJCQkJCXhtbFNjaGVtYVR5cGVTdHJpbmdEZWYpOworICAgIHhtbFNjaGVtYVR5cGVUb2tlbkRlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoInRva2VuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX1RPS0VOLAorCQkJCQkJICAgeG1sU2NoZW1hVHlwZU5vcm1TdHJpbmdEZWYpOworICAgIHhtbFNjaGVtYVR5cGVMYW5ndWFnZURlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoImxhbmd1YWdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX0xBTkdVQUdFLAorCQkJCQkJICAgICAgeG1sU2NoZW1hVHlwZVRva2VuRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlTmFtZURlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoIk5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19OQU1FLAorCQkJCQkJICB4bWxTY2hlbWFUeXBlVG9rZW5EZWYpOworICAgIHhtbFNjaGVtYVR5cGVObXRva2VuRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiTk1UT0tFTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX05NVE9LRU4sCisJCQkJCQkgICAgIHhtbFNjaGVtYVR5cGVUb2tlbkRlZik7CisgICAgeG1sU2NoZW1hVHlwZU5DTmFtZURlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoIk5DTmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfTkNOQU1FLAorCQkJCQkJICAgIHhtbFNjaGVtYVR5cGVOYW1lRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlSWREZWYgPSB4bWxTY2hlbWFJbml0QmFzaWNUeXBlKCJJRCIsIFhNTF9TQ0hFTUFTX0lELAorCQkJCQkJICAgIHhtbFNjaGVtYVR5cGVOQ05hbWVEZWYpOworICAgIHhtbFNjaGVtYVR5cGVJZHJlZkRlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoIklEUkVGIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9TQ0hFTUFTX0lEUkVGLAorCQkJCQkJICAgeG1sU2NoZW1hVHlwZU5DTmFtZURlZik7ICAgICAgICAKKyAgICB4bWxTY2hlbWFUeXBlRW50aXR5RGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiRU5USVRZIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU0NIRU1BU19FTlRJVFksCisJCQkJCQkgICAgeG1sU2NoZW1hVHlwZU5DTmFtZURlZik7CisgICAgLyoKKyAgICAqIERlcml2ZWQgbGlzdCB0eXBlcy4KKyAgICAqLworICAgIC8qIEVOVElUSUVTICovCisgICAgeG1sU2NoZW1hVHlwZUVudGl0aWVzRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiRU5USVRJRVMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfRU5USVRJRVMsCisJCQkJCQkgICAgICB4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZik7CisgICAgeG1sU2NoZW1hVHlwZUVudGl0aWVzRGVmLT5zdWJ0eXBlcyA9IHhtbFNjaGVtYVR5cGVFbnRpdHlEZWY7CisgICAgLyogSURSRUZTICovCisgICAgeG1sU2NoZW1hVHlwZUlkcmVmc0RlZiA9IHhtbFNjaGVtYUluaXRCYXNpY1R5cGUoIklEUkVGUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfSURSRUZTLAorCQkJCQkJICAgIHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKyAgICB4bWxTY2hlbWFUeXBlSWRyZWZzRGVmLT5zdWJ0eXBlcyA9IHhtbFNjaGVtYVR5cGVJZHJlZkRlZjsKKworICAgIC8qIE5NVE9LRU5TICovCisgICAgeG1sU2NoZW1hVHlwZU5tdG9rZW5zRGVmID0geG1sU2NoZW1hSW5pdEJhc2ljVHlwZSgiTk1UT0tFTlMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1NDSEVNQVNfTk1UT0tFTlMsCisJCQkJCQkgICAgICB4bWxTY2hlbWFUeXBlQW55U2ltcGxlVHlwZURlZik7CisgICAgeG1sU2NoZW1hVHlwZU5tdG9rZW5zRGVmLT5zdWJ0eXBlcyA9IHhtbFNjaGVtYVR5cGVObXRva2VuRGVmOworCisgICAgeG1sU2NoZW1hVHlwZXNJbml0aWFsaXplZCA9IDE7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ2xlYW51cFR5cGVzOgorICoKKyAqIENsZWFudXAgdGhlIGRlZmF1bHQgWE1MIFNjaGVtYXMgdHlwZSBsaWJyYXJ5CisgKi8KK3ZvaWQJCit4bWxTY2hlbWFDbGVhbnVwVHlwZXModm9pZCkgeworICAgIGlmICh4bWxTY2hlbWFUeXBlc0luaXRpYWxpemVkID09IDApCisJcmV0dXJuOworICAgIC8qCisgICAgKiBGcmVlIHhzOmFueVR5cGUuCisgICAgKi8KKyAgICB7CisJeG1sU2NoZW1hUGFydGljbGVQdHIgcGFydGljbGU7CisJLyogQXR0cmlidXRlIHdpbGRjYXJkLiAqLworCXhtbFNjaGVtYUZyZWVXaWxkY2FyZCh4bWxTY2hlbWFUeXBlQW55VHlwZURlZi0+YXR0cmlidXRlV2lsZGNhcmQpOworCS8qIENvbnRlbnQgdHlwZS4gKi8KKwlwYXJ0aWNsZSA9ICh4bWxTY2hlbWFQYXJ0aWNsZVB0cikgeG1sU2NoZW1hVHlwZUFueVR5cGVEZWYtPnN1YnR5cGVzOworCS8qIFdpbGRjYXJkLiAqLworCXhtbFNjaGVtYUZyZWVXaWxkY2FyZCgoeG1sU2NoZW1hV2lsZGNhcmRQdHIpIAorCSAgICBwYXJ0aWNsZS0+Y2hpbGRyZW4tPmNoaWxkcmVuLT5jaGlsZHJlbik7CisJeG1sRnJlZSgoeG1sU2NoZW1hUGFydGljbGVQdHIpIHBhcnRpY2xlLT5jaGlsZHJlbi0+Y2hpbGRyZW4pOworCS8qIFNlcXVlbmNlIG1vZGVsIGdyb3VwLiAqLworCXhtbEZyZWUoKHhtbFNjaGVtYU1vZGVsR3JvdXBQdHIpIHBhcnRpY2xlLT5jaGlsZHJlbik7CisJeG1sRnJlZSgoeG1sU2NoZW1hUGFydGljbGVQdHIpIHBhcnRpY2xlKTsKKwl4bWxTY2hlbWFUeXBlQW55VHlwZURlZi0+c3VidHlwZXMgPSBOVUxMOwkKKyAgICB9CisgICAgeG1sSGFzaEZyZWUoeG1sU2NoZW1hVHlwZXNCYW5rLCAoeG1sSGFzaERlYWxsb2NhdG9yKSB4bWxTY2hlbWFGcmVlVHlwZSk7CisgICAgeG1sU2NoZW1hVHlwZXNJbml0aWFsaXplZCA9IDA7Cit9CisKKy8qKgorICogeG1sU2NoZW1hSXNCdWlsdEluVHlwZUZhY2V0OgorICogQHR5cGU6IHRoZSBidWlsdC1pbiB0eXBlCisgKiBAZmFjZXRUeXBlOiAgdGhlIGZhY2V0IHR5cGUKKyAqCisgKiBFdmFsdWF0ZXMgaWYgYSBzcGVjaWZpYyBmYWNldCBjYW4gYmUKKyAqIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhIHR5cGUuCisgKgorICogUmV0dXJucyAxIGlmIHRoZSBmYWNldCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBnaXZlbiBidWlsdC1pbiB0eXBlLAorICogMCBvdGhlcndpc2UgYW5kIC0xIGluIGNhc2UgdGhlIHR5cGUgaXMgbm90IGEgYnVpbHQtaW4gdHlwZS4KKyAqLworaW50Cit4bWxTY2hlbWFJc0J1aWx0SW5UeXBlRmFjZXQoeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCBpbnQgZmFjZXRUeXBlKQoreworICAgIGlmICh0eXBlID09IE5VTEwpCisJcmV0dXJuICgtMSk7CisgICAgaWYgKHR5cGUtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKQorCXJldHVybiAoLTEpOworICAgIHN3aXRjaCAodHlwZS0+YnVpbHRJblR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFTX0JPT0xFQU46CisJICAgIGlmICgoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTikgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0UpKQorCQlyZXR1cm4gKDEpOworCSAgICBlbHNlCisJCXJldHVybiAoMCk7CQorCWNhc2UgWE1MX1NDSEVNQVNfU1RSSU5HOgorCWNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046CisJY2FzZSBYTUxfU0NIRU1BU19RTkFNRToKKwljYXNlIFhNTF9TQ0hFTUFTX0FOWVVSSToJICAgIAorCWNhc2UgWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZOiAgICAKKwljYXNlIFhNTF9TQ0hFTUFTX0hFWEJJTkFSWToKKwkgICAgaWYgKChmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEgpIHx8CisJCShmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEgpIHx8CisJCShmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEgpIHx8CisJCShmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOKSB8fAorCQkoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfRU5VTUVSQVRJT04pIHx8CisJCShmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFKSkKKwkJcmV0dXJuICgxKTsKKwkgICAgZWxzZQorCQlyZXR1cm4gKDApOworCWNhc2UgWE1MX1NDSEVNQVNfREVDSU1BTDoKKwkgICAgaWYgKChmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUykgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX0ZSQUNUSU9ORElHSVRTKSB8fAorCQkoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTikgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX1dISVRFU1BBQ0UpIHx8CisJCShmYWNldFR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9FTlVNRVJBVElPTikgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRSkgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01BWEVYQ0xVU0lWRSkgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRSkgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRSkpCisJCXJldHVybiAoMSk7CisJICAgIGVsc2UKKwkJcmV0dXJuICgwKTsgCisJY2FzZSBYTUxfU0NIRU1BU19USU1FOgorCWNhc2UgWE1MX1NDSEVNQVNfR0RBWTogCisJY2FzZSBYTUxfU0NIRU1BU19HTU9OVEg6CisJY2FzZSBYTUxfU0NIRU1BU19HTU9OVEhEQVk6IAorCWNhc2UgWE1MX1NDSEVNQVNfR1lFQVI6IAorCWNhc2UgWE1MX1NDSEVNQVNfR1lFQVJNT05USDoKKwljYXNlIFhNTF9TQ0hFTUFTX0RBVEU6CisJY2FzZSBYTUxfU0NIRU1BU19EQVRFVElNRToKKwljYXNlIFhNTF9TQ0hFTUFTX0RVUkFUSU9OOgorCWNhc2UgWE1MX1NDSEVNQVNfRkxPQVQ6CisJY2FzZSBYTUxfU0NIRU1BU19ET1VCTEU6CisJICAgIGlmICgoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfUEFUVEVSTikgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OKSB8fAorCQkoZmFjZXRUeXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfV0hJVEVTUEFDRSkgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01BWElOQ0xVU0lWRSkgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01BWEVYQ0xVU0lWRSkgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTklOQ0xVU0lWRSkgfHwKKwkJKGZhY2V0VHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkVYQ0xVU0lWRSkpCisJCXJldHVybiAoMSk7CisJICAgIGVsc2UKKwkJcmV0dXJuICgwKTsJICAgIAkJCQkgCisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hR2V0QnVpbHRJblR5cGU6CisgKiBAdHlwZTogIHRoZSB0eXBlIG9mIHRoZSBidWlsdCBpbiB0eXBlCisgKgorICogR2l2ZXMgeW91IHRoZSB0eXBlIHN0cnVjdCBmb3IgYSBidWlsdC1pbgorICogdHlwZSBieSBpdHMgdHlwZSBpZC4KKyAqCisgKiBSZXR1cm5zIHRoZSB0eXBlIGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZS4KKyAqLworeG1sU2NoZW1hVHlwZVB0cgoreG1sU2NoZW1hR2V0QnVpbHRJblR5cGUoeG1sU2NoZW1hVmFsVHlwZSB0eXBlKQoreworICAgIGlmICh4bWxTY2hlbWFUeXBlc0luaXRpYWxpemVkID09IDApCisJeG1sU2NoZW1hSW5pdFR5cGVzKCk7CisgICAgc3dpdGNoICh0eXBlKSB7CisJCisJY2FzZSBYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVBbnlTaW1wbGVUeXBlRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX1NUUklORzoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlU3RyaW5nRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX05PUk1TVFJJTkc6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZU5vcm1TdHJpbmdEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfREVDSU1BTDoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlRGVjaW1hbERlZik7CisJY2FzZSBYTUxfU0NIRU1BU19USU1FOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVUaW1lRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX0dEQVk6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZUdEYXlEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfR01PTlRIOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVHTW9udGhEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfR01PTlRIREFZOgorICAgIAkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlR01vbnRoRGF5RGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX0dZRUFSOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVHWWVhckRlZik7CisJY2FzZSBYTUxfU0NIRU1BU19HWUVBUk1PTlRIOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVHWWVhck1vbnRoRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX0RBVEU6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZURhdGVEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfREFURVRJTUU6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZURhdGV0aW1lRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX0RVUkFUSU9OOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVEdXJhdGlvbkRlZik7CisJY2FzZSBYTUxfU0NIRU1BU19GTE9BVDoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlRmxvYXREZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfRE9VQkxFOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVEb3VibGVEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfQk9PTEVBTjoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlQm9vbGVhbkRlZik7CisJY2FzZSBYTUxfU0NIRU1BU19UT0tFTjoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlVG9rZW5EZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfTEFOR1VBR0U6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZUxhbmd1YWdlRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU46CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZU5tdG9rZW5EZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfTk1UT0tFTlM6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZU5tdG9rZW5zRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX05BTUU6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZU5hbWVEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZVFOYW1lRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX05DTkFNRToKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlTkNOYW1lRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX0lEOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVJZERlZik7CisJY2FzZSBYTUxfU0NIRU1BU19JRFJFRjoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlSWRyZWZEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfSURSRUZTOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVJZHJlZnNEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfRU5USVRZOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVFbnRpdHlEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfRU5USVRJRVM6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZUVudGl0aWVzRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX05PVEFUSU9OOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVOb3RhdGlvbkRlZik7CisJY2FzZSBYTUxfU0NIRU1BU19BTllVUkk6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZUFueVVSSURlZik7CisJY2FzZSBYTUxfU0NIRU1BU19JTlRFR0VSOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVJbnRlZ2VyRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX05QSU5URUdFUjoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlTm9uUG9zaXRpdmVJbnRlZ2VyRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX05JTlRFR0VSOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVOZWdhdGl2ZUludGVnZXJEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfTk5JTlRFR0VSOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVOb25OZWdhdGl2ZUludGVnZXJEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfUElOVEVHRVI6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZVBvc2l0aXZlSW50ZWdlckRlZik7CisJY2FzZSBYTUxfU0NIRU1BU19JTlQ6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZUludERlZik7CisJY2FzZSBYTUxfU0NIRU1BU19VSU5UOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVVbnNpZ25lZEludERlZik7CisJY2FzZSBYTUxfU0NIRU1BU19MT05HOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVMb25nRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX1VMT05HOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVVbnNpZ25lZExvbmdEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfU0hPUlQ6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZVNob3J0RGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX1VTSE9SVDoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlVW5zaWduZWRTaG9ydERlZik7CisJY2FzZSBYTUxfU0NIRU1BU19CWVRFOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVCeXRlRGVmKTsKKwljYXNlIFhNTF9TQ0hFTUFTX1VCWVRFOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVVbnNpZ25lZEJ5dGVEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfSEVYQklOQVJZOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVIZXhCaW5hcnlEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZOgorCSAgICByZXR1cm4gKHhtbFNjaGVtYVR5cGVCYXNlNjRCaW5hcnlEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfQU5ZVFlQRToKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlQW55VHlwZURlZik7CSAgICAKKwlkZWZhdWx0OgorCSAgICByZXR1cm4gKE5VTEwpOworICAgIH0KK30KKworLyoqCisgKiB4bWxTY2hlbWFWYWx1ZUFwcGVuZDoKKyAqIEBwcmV2OiB0aGUgdmFsdWUKKyAqIEBjdXI6IHRoZSB2YWx1ZSB0byBiZSBhcHBlbmRlZAorICoKKyAqIEFwcGVuZHMgYSBuZXh0IHNpYmxpbmcgdG8gYSBsaXN0IG9mIGNvbXB1dGVkIHZhbHVlcy4KKyAqCisgKiBSZXR1cm5zIDAgaWYgc3VjY2VlZGVkIGFuZCAtMSBvbiBBUEkgZXJyb3JzLgorICovCitpbnQKK3htbFNjaGVtYVZhbHVlQXBwZW5kKHhtbFNjaGVtYVZhbFB0ciBwcmV2LCB4bWxTY2hlbWFWYWxQdHIgY3VyKSB7CisKKyAgICBpZiAoKHByZXYgPT0gTlVMTCkgfHwgKGN1ciA9PSBOVUxMKSkKKwlyZXR1cm4gKC0xKTsKKyAgICBwcmV2LT5uZXh0ID0gY3VyOworICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsdWVHZXROZXh0OgorICogQGN1cjogdGhlIHZhbHVlCisgKgorICogQWNjZXNzb3IgZm9yIHRoZSBuZXh0IHNpYmxpbmcgb2YgYSBsaXN0IG9mIGNvbXB1dGVkIHZhbHVlcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IHZhbHVlIG9yIE5VTEwgaWYgdGhlcmUgd2FzIG5vbmUsIG9yIG9uCisgKiAgICAgICAgIEFQSSBlcnJvcnMuCisgKi8KK3htbFNjaGVtYVZhbFB0cgoreG1sU2NoZW1hVmFsdWVHZXROZXh0KHhtbFNjaGVtYVZhbFB0ciBjdXIpIHsKKworICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm4gKE5VTEwpOworICAgIHJldHVybiAoY3VyLT5uZXh0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nOgorICogQHZhbDogdGhlIHZhbHVlCisgKgorICogQWNjZXNzb3IgZm9yIHRoZSBzdHJpbmcgdmFsdWUgb2YgYSBjb21wdXRlZCB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBzdHJpbmcgdmFsdWUgb3IgTlVMTCBpZiB0aGVyZSB3YXMgbm9uZSwgb3Igb24KKyAqICAgICAgICAgQVBJIGVycm9ycy4KKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxTY2hlbWFWYWx1ZUdldEFzU3RyaW5nKHhtbFNjaGVtYVZhbFB0ciB2YWwpCit7ICAgIAorICAgIGlmICh2YWwgPT0gTlVMTCkKKwlyZXR1cm4gKE5VTEwpOworICAgIHN3aXRjaCAodmFsLT50eXBlKSB7CisJY2FzZSBYTUxfU0NIRU1BU19TVFJJTkc6CisJY2FzZSBYTUxfU0NIRU1BU19OT1JNU1RSSU5HOgorCWNhc2UgWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRToKKwljYXNlIFhNTF9TQ0hFTUFTX1RPS0VOOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0xBTkdVQUdFOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU46CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTkFNRToKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OQ05BTUU6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfSUQ6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfSURSRUY6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfRU5USVRZOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0FOWVVSSToKKwkgICAgcmV0dXJuIChCQURfQ0FTVCB2YWwtPnZhbHVlLnN0cik7CisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAoTlVMTCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsdWVHZXRBc0Jvb2xlYW46CisgKiBAdmFsOiB0aGUgdmFsdWUKKyAqCisgKiBBY2Nlc3NvciBmb3IgdGhlIGJvb2xlYW4gdmFsdWUgb2YgYSBjb21wdXRlZCB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSBhbmQgMCBpZiBmYWxzZSwgb3IgaW4gY2FzZSBvZiBhbiBlcnJvci4gSG1tLgorICovCitpbnQKK3htbFNjaGVtYVZhbHVlR2V0QXNCb29sZWFuKHhtbFNjaGVtYVZhbFB0ciB2YWwpCit7ICAgIAorICAgIGlmICgodmFsID09IE5VTEwpIHx8ICh2YWwtPnR5cGUgIT0gWE1MX1NDSEVNQVNfQk9PTEVBTikpCisJcmV0dXJuICgwKTsKKyAgICByZXR1cm4gKHZhbC0+dmFsdWUuYik7Cit9CisKKy8qKgorICogeG1sU2NoZW1hTmV3U3RyaW5nVmFsdWU6CisgKiBAdHlwZTogIHRoZSB2YWx1ZSB0eXBlCisgKiBAdmFsdWU6ICB0aGUgdmFsdWUKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBzaW1wbGUgdHlwZSB2YWx1ZS4gVGhlIHR5cGUgY2FuIGJlIAorICogb2YgWE1MX1NDSEVNQVNfU1RSSU5HLiAKKyAqIFdBUk5JTkc6IFRoaXMgb25lIGlzIGludGVuZGVkIHRvIGJlIGV4cGFuZGVkIGZvciBvdGhlcgorICogc3RyaW5nIGJhc2VkIHR5cGVzLiBXZSBuZWVkIHRoaXMgZm9yIGFueVNpbXBsZVR5cGUgYXMgd2VsbC4KKyAqIFRoZSBnaXZlbiB2YWx1ZSBpcyBjb25zdW1lZCBhbmQgZnJlZWQgd2l0aCB0aGUgc3RydWN0LgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXcgdmFsdWUgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFNjaGVtYVZhbFB0cgoreG1sU2NoZW1hTmV3U3RyaW5nVmFsdWUoeG1sU2NoZW1hVmFsVHlwZSB0eXBlLAorCQkJY29uc3QgeG1sQ2hhciAqdmFsdWUpCit7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsKKworICAgIGlmICh0eXBlICE9IFhNTF9TQ0hFTUFTX1NUUklORykKKwlyZXR1cm4oTlVMTCk7CisgICAgdmFsID0gKHhtbFNjaGVtYVZhbFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxTY2hlbWFWYWwpKTsKKyAgICBpZiAodmFsID09IE5VTEwpIHsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldCh2YWwsIDAsIHNpemVvZih4bWxTY2hlbWFWYWwpKTsKKyAgICB2YWwtPnR5cGUgPSB0eXBlOworICAgIHZhbC0+dmFsdWUuc3RyID0gKHhtbENoYXIgKikgdmFsdWU7CisgICAgcmV0dXJuKHZhbCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hTmV3Tk9UQVRJT05WYWx1ZToKKyAqIEBuYW1lOiAgdGhlIG5vdGF0aW9uIG5hbWUKKyAqIEBuczogdGhlIG5vdGF0aW9uIG5hbWVzcGFjZSBuYW1lIG9yIE5VTEwKKyAqCisgKiBBbGxvY2F0ZSBhIG5ldyBOT1RBVElPTiB2YWx1ZS4KKyAqIFRoZSBnaXZlbiB2YWx1ZXMgYXJlIGNvbnN1bWVkIGFuZCBmcmVlZCB3aXRoIHRoZSBzdHJ1Y3QuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5ldyB2YWx1ZSBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sU2NoZW1hVmFsUHRyCit4bWxTY2hlbWFOZXdOT1RBVElPTlZhbHVlKGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkgIGNvbnN0IHhtbENoYXIgKm5zKQoreworICAgIHhtbFNjaGVtYVZhbFB0ciB2YWw7CisKKyAgICB2YWwgPSB4bWxTY2hlbWFOZXdWYWx1ZShYTUxfU0NIRU1BU19OT1RBVElPTik7CisgICAgaWYgKHZhbCA9PSBOVUxMKQorCXJldHVybiAoTlVMTCk7CisKKyAgICB2YWwtPnZhbHVlLnFuYW1lLm5hbWUgPSAoeG1sQ2hhciAqKW5hbWU7CisgICAgaWYgKG5zICE9IE5VTEwpCisJdmFsLT52YWx1ZS5xbmFtZS51cmkgPSAoeG1sQ2hhciAqKW5zOworICAgIHJldHVybih2YWwpOworfQorCisvKioKKyAqIHhtbFNjaGVtYU5ld1FOYW1lVmFsdWU6CisgKiBAbmFtZXNwYWNlTmFtZTogdGhlIG5hbWVzcGFjZSBuYW1lCisgKiBAbG9jYWxOYW1lOiB0aGUgbG9jYWwgbmFtZQorICoKKyAqIEFsbG9jYXRlIGEgbmV3IFFOYW1lIHZhbHVlLgorICogVGhlIGdpdmVuIHZhbHVlcyBhcmUgY29uc3VtZWQgYW5kIGZyZWVkIHdpdGggdGhlIHN0cnVjdC4KKyAqCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3IHZhbHVlIG9yIE5VTEwgaW4gY2FzZSBvZiBhbiBlcnJvci4KKyAqLworeG1sU2NoZW1hVmFsUHRyCit4bWxTY2hlbWFOZXdRTmFtZVZhbHVlKGNvbnN0IHhtbENoYXIgKm5hbWVzcGFjZU5hbWUsCisJCSAgICAgICBjb25zdCB4bWxDaGFyICpsb2NhbE5hbWUpCit7CisgICAgeG1sU2NoZW1hVmFsUHRyIHZhbDsKKworICAgIHZhbCA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX1FOQU1FKTsKKyAgICBpZiAodmFsID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKworICAgIHZhbC0+dmFsdWUucW5hbWUubmFtZSA9ICh4bWxDaGFyICopIGxvY2FsTmFtZTsKKyAgICB2YWwtPnZhbHVlLnFuYW1lLnVyaSA9ICh4bWxDaGFyICopIG5hbWVzcGFjZU5hbWU7CisgICAgcmV0dXJuKHZhbCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hRnJlZVZhbHVlOgorICogQHZhbHVlOiAgdGhlIHZhbHVlIHRvIGZyZWUKKyAqCisgKiBDbGVhbnVwIHRoZSBkZWZhdWx0IFhNTCBTY2hlbWFzIHR5cGUgbGlicmFyeQorICovCit2b2lkCQoreG1sU2NoZW1hRnJlZVZhbHVlKHhtbFNjaGVtYVZhbFB0ciB2YWx1ZSkgeworICAgIHhtbFNjaGVtYVZhbFB0ciBwcmV2OworCisgICAgd2hpbGUgKHZhbHVlICE9IE5VTEwpIHsJCisJc3dpdGNoICh2YWx1ZS0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX1NUUklORzoKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19OT1JNU1RSSU5HOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX1RPS0VOOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0xBTkdVQUdFOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU46CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTk1UT0tFTlM6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTkFNRToKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19OQ05BTUU6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfSUQ6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfSURSRUY6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfSURSRUZTOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0VOVElUWToKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19FTlRJVElFUzogICAgICAgIAorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0FOWVVSSToKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19BTllTSU1QTEVUWVBFOgorCQlpZiAodmFsdWUtPnZhbHVlLnN0ciAhPSBOVUxMKQorCQkgICAgeG1sRnJlZSh2YWx1ZS0+dmFsdWUuc3RyKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6CisJCWlmICh2YWx1ZS0+dmFsdWUucW5hbWUudXJpICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKHZhbHVlLT52YWx1ZS5xbmFtZS51cmkpOworCQlpZiAodmFsdWUtPnZhbHVlLnFuYW1lLm5hbWUgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUodmFsdWUtPnZhbHVlLnFuYW1lLm5hbWUpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19IRVhCSU5BUlk6CisJCWlmICh2YWx1ZS0+dmFsdWUuaGV4LnN0ciAhPSBOVUxMKQorCQkgICAgeG1sRnJlZSh2YWx1ZS0+dmFsdWUuaGV4LnN0cik7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWToKKwkJaWYgKHZhbHVlLT52YWx1ZS5iYXNlNjQuc3RyICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKHZhbHVlLT52YWx1ZS5iYXNlNjQuc3RyKTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlwcmV2ID0gdmFsdWU7CisJdmFsdWUgPSB2YWx1ZS0+bmV4dDsKKwl4bWxGcmVlKHByZXYpOworICAgIH0gICAgCit9CisKKy8qKgorICogeG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGU6CisgKiBAbmFtZTogdGhlIHR5cGUgbmFtZQorICogQG5zOiAgdGhlIFVSSSBvZiB0aGUgbmFtZXNwYWNlIHVzdWFsbHkgImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgorICoKKyAqIExvb2t1cCBhIHR5cGUgaW4gdGhlIGRlZmF1bHQgWE1MIFNjaGVtYXMgdHlwZSBsaWJyYXJ5CisgKgorICogUmV0dXJucyB0aGUgdHlwZSBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UKKyAqLworeG1sU2NoZW1hVHlwZVB0cgoreG1sU2NoZW1hR2V0UHJlZGVmaW5lZFR5cGUoY29uc3QgeG1sQ2hhciAqbmFtZSwgY29uc3QgeG1sQ2hhciAqbnMpIHsKKyAgICBpZiAoeG1sU2NoZW1hVHlwZXNJbml0aWFsaXplZCA9PSAwKQorCXhtbFNjaGVtYUluaXRUeXBlcygpOworICAgIGlmIChuYW1lID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHJldHVybigoeG1sU2NoZW1hVHlwZVB0cikgeG1sSGFzaExvb2t1cDIoeG1sU2NoZW1hVHlwZXNCYW5rLCBuYW1lLCBucykpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlOgorICogQHR5cGU6IHRoZSBidWlsdC1pbiBzaW1wbGUgdHlwZS4KKyAqCisgKiBMb29rdXAgZnVuY3Rpb24KKyAqCisgKiBSZXR1cm5zIHRoZSBpdGVtIHR5cGUgb2YgQHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgYnVpbHQtaW4gZGF0YXR5cGUKKyAqIGhpZXJhcmNoeSBvZiBYTUwgU2NoZW1hIFBhcnQgMjogRGF0YXR5cGVzLCBvciBOVUxMIGluIGNhc2Ugb2YgYW4gZXJyb3IuCisgKi8KK3htbFNjaGVtYVR5cGVQdHIKK3htbFNjaGVtYUdldEJ1aWx0SW5MaXN0U2ltcGxlVHlwZUl0ZW1UeXBlKHhtbFNjaGVtYVR5cGVQdHIgdHlwZSkKK3sKKyAgICBpZiAoKHR5cGUgPT0gTlVMTCkgfHwgKHR5cGUtPnR5cGUgIT0gWE1MX1NDSEVNQV9UWVBFX0JBU0lDKSkKKwlyZXR1cm4gKE5VTEwpOworICAgIHN3aXRjaCAodHlwZS0+YnVpbHRJblR5cGUpIHsKKwljYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU5TOiAKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlTm10b2tlbkRlZiApOworCWNhc2UgWE1MX1NDSEVNQVNfSURSRUZTOiAKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFUeXBlSWRyZWZEZWYpOworCWNhc2UgWE1MX1NDSEVNQVNfRU5USVRJRVM6CisJICAgIHJldHVybiAoeG1sU2NoZW1hVHlwZUVudGl0eURlZik7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJKgorICoJCUNvbnZlbmllbmNlIG1hY3JvcyBhbmQgZnVuY3Rpb25zCQkqCisgKgkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgSVNfVFpPX0NIQVIoYykJCQkJCQlcCisJKChjID09IDApIHx8IChjID09ICdaJykgfHwgKGMgPT0gJysnKSB8fCAoYyA9PSAnLScpKQorCisjZGVmaW5lIFZBTElEX1lFQVIoeXIpICAgICAgICAgICh5ciAhPSAwKQorI2RlZmluZSBWQUxJRF9NT05USChtb24pICAgICAgICAoKG1vbiA+PSAxKSAmJiAobW9uIDw9IDEyKSkKKy8qIFZBTElEX0RBWSBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4gbW9udGggaXMgdW5rbm93biAqLworI2RlZmluZSBWQUxJRF9EQVkoZGF5KSAgICAgICAgICAoKGRheSA+PSAxKSAmJiAoZGF5IDw9IDMxKSkKKyNkZWZpbmUgVkFMSURfSE9VUihocikgICAgICAgICAgKChociA+PSAwKSAmJiAoaHIgPD0gMjMpKQorI2RlZmluZSBWQUxJRF9NSU4obWluKSAgICAgICAgICAoKG1pbiA+PSAwKSAmJiAobWluIDw9IDU5KSkKKyNkZWZpbmUgVkFMSURfU0VDKHNlYykgICAgICAgICAgKChzZWMgPj0gMCkgJiYgKHNlYyA8IDYwKSkKKyNkZWZpbmUgVkFMSURfVFpPKHR6bykgICAgICAgICAgKCh0em8gPiAtODQwKSAmJiAodHpvIDwgODQwKSkKKyNkZWZpbmUgSVNfTEVBUCh5KQkJCQkJCVwKKwkoKCh5ICUgNCA9PSAwKSAmJiAoeSAlIDEwMCAhPSAwKSkgfHwgKHkgJSA0MDAgPT0gMCkpCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZGF5c0luTW9udGhbMTJdID0KKwl7IDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzEgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZGF5c0luTW9udGhMZWFwWzEyXSA9CisJeyAzMSwgMjksIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxIH07CisKKyNkZWZpbmUgTUFYX0RBWUlOTU9OVEgoeXIsbW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChJU19MRUFQKHlyKSA/IGRheXNJbk1vbnRoTGVhcFttb24gLSAxXSA6IGRheXNJbk1vbnRoW21vbiAtIDFdKQorCisjZGVmaW5lIFZBTElEX01EQVkoZHQpCQkJCQkJXAorCShJU19MRUFQKGR0LT55ZWFyKSA/CQkJCSAgICAgICAgXAorCSAgICAoZHQtPmRheSA8PSBkYXlzSW5Nb250aExlYXBbZHQtPm1vbiAtIDFdKSA6CSAgICAgICAgXAorCSAgICAoZHQtPmRheSA8PSBkYXlzSW5Nb250aFtkdC0+bW9uIC0gMV0pKQorCisjZGVmaW5lIFZBTElEX0RBVEUoZHQpCQkJCQkJXAorCShWQUxJRF9ZRUFSKGR0LT55ZWFyKSAmJiBWQUxJRF9NT05USChkdC0+bW9uKSAmJiBWQUxJRF9NREFZKGR0KSkKKworI2RlZmluZSBWQUxJRF9USU1FKGR0KQkJCQkJCVwKKwkoVkFMSURfSE9VUihkdC0+aG91cikgJiYgVkFMSURfTUlOKGR0LT5taW4pICYmCQlcCisJIFZBTElEX1NFQyhkdC0+c2VjKSAmJiBWQUxJRF9UWk8oZHQtPnR6bykpCisKKyNkZWZpbmUgVkFMSURfREFURVRJTUUoZHQpCQkJCQlcCisJKFZBTElEX0RBVEUoZHQpICYmIFZBTElEX1RJTUUoZHQpKQorCisjZGVmaW5lIFNFQ1NfUEVSX01JTiAgICAgICAgICAgICg2MCkKKyNkZWZpbmUgU0VDU19QRVJfSE9VUiAgICAgICAgICAgKDYwICogU0VDU19QRVJfTUlOKQorI2RlZmluZSBTRUNTX1BFUl9EQVkgICAgICAgICAgICAoMjQgKiBTRUNTX1BFUl9IT1VSKQorCitzdGF0aWMgY29uc3QgbG9uZyBkYXlJblllYXJCeU1vbnRoWzEyXSA9CisJeyAwLCAzMSwgNTksIDkwLCAxMjAsIDE1MSwgMTgxLCAyMTIsIDI0MywgMjczLCAzMDQsIDMzNCB9Oworc3RhdGljIGNvbnN0IGxvbmcgZGF5SW5MZWFwWWVhckJ5TW9udGhbMTJdID0KKwl7IDAsIDMxLCA2MCwgOTEsIDEyMSwgMTUyLCAxODIsIDIxMywgMjQ0LCAyNzQsIDMwNSwgMzM1IH07CisKKyNkZWZpbmUgREFZX0lOX1lFQVIoZGF5LCBtb250aCwgeWVhcikJCQkJXAorICAgICAgICAoKElTX0xFQVAoeWVhcikgPwkJCQkJXAorICAgICAgICAgICAgICAgIGRheUluTGVhcFllYXJCeU1vbnRoW21vbnRoIC0gMV0gOgkJXAorICAgICAgICAgICAgICAgIGRheUluWWVhckJ5TW9udGhbbW9udGggLSAxXSkgKyBkYXkpCisKKyNpZmRlZiBERUJVRworI2RlZmluZSBERUJVR19EQVRFKGR0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAidHlwZT0lbyAlMDRsZC0lMDJ1LSUwMnVUJTAydTolMDJ1OiUwM2YiLCAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkdC0+dHlwZSxkdC0+dmFsdWUuZGF0ZS55ZWFyLGR0LT52YWx1ZS5kYXRlLm1vbiwgICAgICAgICAgICAgICAgXAorICAgICAgICBkdC0+dmFsdWUuZGF0ZS5kYXksZHQtPnZhbHVlLmRhdGUuaG91cixkdC0+dmFsdWUuZGF0ZS5taW4sICAgICAgXAorICAgICAgICBkdC0+dmFsdWUuZGF0ZS5zZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChkdC0+dmFsdWUuZGF0ZS50el9mbGFnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoZHQtPnZhbHVlLmRhdGUudHpvICE9IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICIlKzA1ZFxuIixkdC0+dmFsdWUuZGF0ZS50em8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJaXG4iKTsgICAgICAgICAgICAgXAorICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwiXG4iKQorI2Vsc2UKKyNkZWZpbmUgREVCVUdfREFURShkdCkKKyNlbmRpZgorCisvKioKKyAqIF94bWxTY2hlbWFQYXJzZUdZZWFyOgorICogQGR0OiAgcG9pbnRlciB0byBhIGRhdGUgc3RydWN0dXJlCisgKiBAc3RyOiBwb2ludGVyIHRvIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlcyBhIHhzOmdZZWFyIHdpdGhvdXQgdGltZSB6b25lIGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUKKyAqIGZpZWxkIG9mIHRoZSBAZHQgc3RydWN0dXJlLiBAc3RyIGlzIHVwZGF0ZWQgdG8gcG9pbnQganVzdCBhZnRlciB0aGUKKyAqIHhzOmdZZWFyLiBJdCBpcyBzdXBwb3NlZCB0aGF0IEBkdC0+eWVhciBpcyBiaWcgZW5vdWdoIHRvIGNvbnRhaW4KKyAqIHRoZSB5ZWFyLgorICoKKyAqIFJldHVybnMgMCBvciB0aGUgZXJyb3IgY29kZQorICovCitzdGF0aWMgaW50CitfeG1sU2NoZW1hUGFyc2VHWWVhciAoeG1sU2NoZW1hVmFsRGF0ZVB0ciBkdCwgY29uc3QgeG1sQ2hhciAqKnN0cikgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9ICpzdHIsICpmaXJzdENoYXI7CisgICAgaW50IGlzbmVnID0gMCwgZGlnY250ID0gMDsKKworICAgIGlmICgoKCpjdXIgPCAnMCcpIHx8ICgqY3VyID4gJzknKSkgJiYKKwkoKmN1ciAhPSAnLScpICYmICgqY3VyICE9ICcrJykpCisJcmV0dXJuIC0xOworCisgICAgaWYgKCpjdXIgPT0gJy0nKSB7CisJaXNuZWcgPSAxOworCWN1cisrOworICAgIH0KKworICAgIGZpcnN0Q2hhciA9IGN1cjsKKworICAgIHdoaWxlICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpIHsKKwlkdC0+eWVhciA9IGR0LT55ZWFyICogMTAgKyAoKmN1ciAtICcwJyk7CisJY3VyKys7CisJZGlnY250Kys7CisgICAgfQorCisgICAgLyogeWVhciBtdXN0IGJlIGF0IGxlYXN0IDQgZGlnaXRzIChDQ1lZKTsgb3ZlciA0CisgICAgICogZGlnaXRzIGNhbm5vdCBoYXZlIGEgbGVhZGluZyB6ZXJvLiAqLworICAgIGlmICgoZGlnY250IDwgNCkgfHwgKChkaWdjbnQgPiA0KSAmJiAoKmZpcnN0Q2hhciA9PSAnMCcpKSkKKwlyZXR1cm4gMTsKKworICAgIGlmIChpc25lZykKKwlkdC0+eWVhciA9IC0gZHQtPnllYXI7CisKKyAgICBpZiAoIVZBTElEX1lFQVIoZHQtPnllYXIpKQorCXJldHVybiAyOworCisgICAgKnN0ciA9IGN1cjsKKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiBQQVJTRV8yX0RJR0lUUzoKKyAqIEBudW06ICB0aGUgaW50ZWdlciB0byBmaWxsIGluCisgKiBAY3VyOiAgYW4gI3htbENoYXIgKgorICogQGludmFsaWQ6IGFuIGludGVnZXIKKyAqCisgKiBQYXJzZXMgYSAyLWRpZ2l0cyBpbnRlZ2VyIGFuZCB1cGRhdGVzIEBudW0gd2l0aCB0aGUgdmFsdWUuIEBjdXIgaXMKKyAqIHVwZGF0ZWQgdG8gcG9pbnQganVzdCBhZnRlciB0aGUgaW50ZWdlci4KKyAqIEluIGNhc2Ugb2YgZXJyb3IsIEBpbnZhbGlkIGlzIHNldCB0byAlVFJVRSwgdmFsdWVzIG9mIEBudW0gYW5kCisgKiBAY3VyIGFyZSB1bmRlZmluZWQuCisgKi8KKyNkZWZpbmUgUEFSU0VfMl9ESUdJVFMobnVtLCBjdXIsIGludmFsaWQpCQkJXAorCWlmICgoY3VyWzBdIDwgJzAnKSB8fCAoY3VyWzBdID4gJzknKSB8fAkJCVwKKwkgICAgKGN1clsxXSA8ICcwJykgfHwgKGN1clsxXSA+ICc5JykpCQkJXAorCSAgICBpbnZhbGlkID0gMTsJCQkJCVwKKwllbHNlCQkJCQkJCVwKKwkgICAgbnVtID0gKGN1clswXSAtICcwJykgKiAxMCArIChjdXJbMV0gLSAnMCcpOwkJXAorCWN1ciArPSAyOworCisvKioKKyAqIFBBUlNFX0ZMT0FUOgorICogQG51bTogIHRoZSBkb3VibGUgdG8gZmlsbCBpbgorICogQGN1cjogIGFuICN4bWxDaGFyICoKKyAqIEBpbnZhbGlkOiBhbiBpbnRlZ2VyCisgKgorICogUGFyc2VzIGEgZmxvYXQgYW5kIHVwZGF0ZXMgQG51bSB3aXRoIHRoZSB2YWx1ZS4gQGN1ciBpcworICogdXBkYXRlZCB0byBwb2ludCBqdXN0IGFmdGVyIHRoZSBmbG9hdC4gVGhlIGZsb2F0IG11c3QgaGF2ZSBhCisgKiAyLWRpZ2l0cyBpbnRlZ2VyIHBhcnQgYW5kIG1heSBvciBtYXkgbm90IGhhdmUgYSBkZWNpbWFsIHBhcnQuCisgKiBJbiBjYXNlIG9mIGVycm9yLCBAaW52YWxpZCBpcyBzZXQgdG8gJVRSVUUsIHZhbHVlcyBvZiBAbnVtIGFuZAorICogQGN1ciBhcmUgdW5kZWZpbmVkLgorICovCisjZGVmaW5lIFBBUlNFX0ZMT0FUKG51bSwgY3VyLCBpbnZhbGlkKQkJCQlcCisJUEFSU0VfMl9ESUdJVFMobnVtLCBjdXIsIGludmFsaWQpOwkJCVwKKwlpZiAoIWludmFsaWQgJiYgKCpjdXIgPT0gJy4nKSkgewkJCVwKKwkgICAgZG91YmxlIG11bHQgPSAxOwkJCQkgICAgICAgIFwKKwkgICAgY3VyKys7CQkJCQkJXAorCSAgICBpZiAoKCpjdXIgPCAnMCcpIHx8ICgqY3VyID4gJzknKSkJCQlcCisJCWludmFsaWQgPSAxOwkJCQkJXAorCSAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CQlcCisJCW11bHQgLz0gMTA7CQkJCQlcCisJCW51bSArPSAoKmN1ciAtICcwJykgKiBtdWx0OwkJCVwKKwkJY3VyKys7CQkJCQkJXAorCSAgICB9CQkJCQkJCVwKKwl9CisKKy8qKgorICogX3htbFNjaGVtYVBhcnNlR01vbnRoOgorICogQGR0OiAgcG9pbnRlciB0byBhIGRhdGUgc3RydWN0dXJlCisgKiBAc3RyOiBwb2ludGVyIHRvIHRoZSBzdHJpbmcgdG8gYW5hbHl6ZQorICoKKyAqIFBhcnNlcyBhIHhzOmdNb250aCB3aXRob3V0IHRpbWUgem9uZSBhbmQgZmlsbHMgaW4gdGhlIGFwcHJvcHJpYXRlCisgKiBmaWVsZCBvZiB0aGUgQGR0IHN0cnVjdHVyZS4gQHN0ciBpcyB1cGRhdGVkIHRvIHBvaW50IGp1c3QgYWZ0ZXIgdGhlCisgKiB4czpnTW9udGguCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK194bWxTY2hlbWFQYXJzZUdNb250aCAoeG1sU2NoZW1hVmFsRGF0ZVB0ciBkdCwgY29uc3QgeG1sQ2hhciAqKnN0cikgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9ICpzdHI7CisgICAgaW50IHJldCA9IDA7CisgICAgdW5zaWduZWQgaW50IHZhbHVlID0gMDsKKworICAgIFBBUlNFXzJfRElHSVRTKHZhbHVlLCBjdXIsIHJldCk7CisgICAgaWYgKHJldCAhPSAwKQorCXJldHVybiByZXQ7CisKKyAgICBpZiAoIVZBTElEX01PTlRIKHZhbHVlKSkKKwlyZXR1cm4gMjsKKworICAgIGR0LT5tb24gPSB2YWx1ZTsKKworICAgICpzdHIgPSBjdXI7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogX3htbFNjaGVtYVBhcnNlR0RheToKKyAqIEBkdDogIHBvaW50ZXIgdG8gYSBkYXRlIHN0cnVjdHVyZQorICogQHN0cjogcG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZXMgYSB4czpnRGF5IHdpdGhvdXQgdGltZSB6b25lIGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUKKyAqIGZpZWxkIG9mIHRoZSBAZHQgc3RydWN0dXJlLiBAc3RyIGlzIHVwZGF0ZWQgdG8gcG9pbnQganVzdCBhZnRlciB0aGUKKyAqIHhzOmdEYXkuCisgKgorICogUmV0dXJucyAwIG9yIHRoZSBlcnJvciBjb2RlCisgKi8KK3N0YXRpYyBpbnQKK194bWxTY2hlbWFQYXJzZUdEYXkgKHhtbFNjaGVtYVZhbERhdGVQdHIgZHQsIGNvbnN0IHhtbENoYXIgKipzdHIpIHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIgPSAqc3RyOworICAgIGludCByZXQgPSAwOworICAgIHVuc2lnbmVkIGludCB2YWx1ZSA9IDA7CisKKyAgICBQQVJTRV8yX0RJR0lUUyh2YWx1ZSwgY3VyLCByZXQpOworICAgIGlmIChyZXQgIT0gMCkKKwlyZXR1cm4gcmV0OworCisgICAgaWYgKCFWQUxJRF9EQVkodmFsdWUpKQorCXJldHVybiAyOworCisgICAgZHQtPmRheSA9IHZhbHVlOworICAgICpzdHIgPSBjdXI7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogX3htbFNjaGVtYVBhcnNlVGltZToKKyAqIEBkdDogIHBvaW50ZXIgdG8gYSBkYXRlIHN0cnVjdHVyZQorICogQHN0cjogcG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZXMgYSB4czp0aW1lIHdpdGhvdXQgdGltZSB6b25lIGFuZCBmaWxscyBpbiB0aGUgYXBwcm9wcmlhdGUKKyAqIGZpZWxkcyBvZiB0aGUgQGR0IHN0cnVjdHVyZS4gQHN0ciBpcyB1cGRhdGVkIHRvIHBvaW50IGp1c3QgYWZ0ZXIgdGhlCisgKiB4czp0aW1lLgorICogSW4gY2FzZSBvZiBlcnJvciwgdmFsdWVzIG9mIEBkdCBmaWVsZHMgYXJlIHVuZGVmaW5lZC4KKyAqCisgKiBSZXR1cm5zIDAgb3IgdGhlIGVycm9yIGNvZGUKKyAqLworc3RhdGljIGludAorX3htbFNjaGVtYVBhcnNlVGltZSAoeG1sU2NoZW1hVmFsRGF0ZVB0ciBkdCwgY29uc3QgeG1sQ2hhciAqKnN0cikgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9ICpzdHI7ICAgIAorICAgIGludCByZXQgPSAwOworICAgIGludCB2YWx1ZSA9IDA7CisKKyAgICBQQVJTRV8yX0RJR0lUUyh2YWx1ZSwgY3VyLCByZXQpOworICAgIGlmIChyZXQgIT0gMCkKKwlyZXR1cm4gcmV0OyAgICAKKyAgICBpZiAoKmN1ciAhPSAnOicpCisJcmV0dXJuIDE7CisgICAgaWYgKCFWQUxJRF9IT1VSKHZhbHVlKSkKKwlyZXR1cm4gMjsKKyAgICBjdXIrKzsKKworICAgIC8qIHRoZSAnOicgaW5zdXJlcyB0aGlzIHN0cmluZyBpcyB4czp0aW1lICovCisgICAgZHQtPmhvdXIgPSB2YWx1ZTsKKworICAgIFBBUlNFXzJfRElHSVRTKHZhbHVlLCBjdXIsIHJldCk7CisgICAgaWYgKHJldCAhPSAwKQorCXJldHVybiByZXQ7CisgICAgaWYgKCFWQUxJRF9NSU4odmFsdWUpKQorCXJldHVybiAyOworICAgIGR0LT5taW4gPSB2YWx1ZTsKKworICAgIGlmICgqY3VyICE9ICc6JykKKwlyZXR1cm4gMTsKKyAgICBjdXIrKzsKKworICAgIFBBUlNFX0ZMT0FUKGR0LT5zZWMsIGN1ciwgcmV0KTsKKyAgICBpZiAocmV0ICE9IDApCisJcmV0dXJuIHJldDsKKworICAgIGlmICgoIVZBTElEX1NFQyhkdC0+c2VjKSkgfHwgKCFWQUxJRF9UWk8oZHQtPnR6bykpKQorCXJldHVybiAyOworCisgICAgKnN0ciA9IGN1cjsKKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiBfeG1sU2NoZW1hUGFyc2VUaW1lWm9uZToKKyAqIEBkdDogIHBvaW50ZXIgdG8gYSBkYXRlIHN0cnVjdHVyZQorICogQHN0cjogcG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGFuYWx5emUKKyAqCisgKiBQYXJzZXMgYSB0aW1lIHpvbmUgd2l0aG91dCB0aW1lIHpvbmUgYW5kIGZpbGxzIGluIHRoZSBhcHByb3ByaWF0ZQorICogZmllbGQgb2YgdGhlIEBkdCBzdHJ1Y3R1cmUuIEBzdHIgaXMgdXBkYXRlZCB0byBwb2ludCBqdXN0IGFmdGVyIHRoZQorICogdGltZSB6b25lLgorICoKKyAqIFJldHVybnMgMCBvciB0aGUgZXJyb3IgY29kZQorICovCitzdGF0aWMgaW50CitfeG1sU2NoZW1hUGFyc2VUaW1lWm9uZSAoeG1sU2NoZW1hVmFsRGF0ZVB0ciBkdCwgY29uc3QgeG1sQ2hhciAqKnN0cikgeworICAgIGNvbnN0IHhtbENoYXIgKmN1cjsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmIChzdHIgPT0gTlVMTCkKKwlyZXR1cm4gLTE7CisgICAgY3VyID0gKnN0cjsKKworICAgIHN3aXRjaCAoKmN1cikgeworICAgIGNhc2UgMDoKKwlkdC0+dHpfZmxhZyA9IDA7CisJZHQtPnR6byA9IDA7CisJYnJlYWs7CisKKyAgICBjYXNlICdaJzoKKwlkdC0+dHpfZmxhZyA9IDE7CisJZHQtPnR6byA9IDA7CisJY3VyKys7CisJYnJlYWs7CisKKyAgICBjYXNlICcrJzoKKyAgICBjYXNlICctJzogeworCWludCBpc25lZyA9IDAsIHRtcCA9IDA7CisJaXNuZWcgPSAoKmN1ciA9PSAnLScpOworCisJY3VyKys7CisKKwlQQVJTRV8yX0RJR0lUUyh0bXAsIGN1ciwgcmV0KTsKKwlpZiAocmV0ICE9IDApCisJICAgIHJldHVybiByZXQ7CisJaWYgKCFWQUxJRF9IT1VSKHRtcCkpCisJICAgIHJldHVybiAyOworCisJaWYgKCpjdXIgIT0gJzonKQorCSAgICByZXR1cm4gMTsKKwljdXIrKzsKKworCWR0LT50em8gPSB0bXAgKiA2MDsKKworCVBBUlNFXzJfRElHSVRTKHRtcCwgY3VyLCByZXQpOworCWlmIChyZXQgIT0gMCkKKwkgICAgcmV0dXJuIHJldDsKKwlpZiAoIVZBTElEX01JTih0bXApKQorCSAgICByZXR1cm4gMjsKKworCWR0LT50em8gKz0gdG1wOworCWlmIChpc25lZykKKwkgICAgZHQtPnR6byA9IC0gZHQtPnR6bzsKKworCWlmICghVkFMSURfVFpPKGR0LT50em8pKQorCSAgICByZXR1cm4gMjsKKworCWR0LT50el9mbGFnID0gMTsKKwlicmVhazsKKyAgICAgIH0KKyAgICBkZWZhdWx0OgorCXJldHVybiAxOworICAgIH0KKworICAgICpzdHIgPSBjdXI7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogX3htbFNjaGVtYUJhc2U2NERlY29kZToKKyAqIEBjaDogYSBjaGFyYWN0ZXIKKyAqCisgKiBDb252ZXJ0cyBhIGJhc2U2NCBlbmNvZGVkIGNoYXJhY3RlciB0byBpdHMgYmFzZSA2NCB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIDAtNjMgKHZhbHVlKSwgNjQgKHBhZCksIG9yIC0xIChub3QgcmVjb2duaXplZCkKKyAqLworc3RhdGljIGludAorX3htbFNjaGVtYUJhc2U2NERlY29kZSAoY29uc3QgeG1sQ2hhciBjaCkgeworICAgIGlmICgoJ0EnIDw9IGNoKSAmJiAoY2ggPD0gJ1onKSkgcmV0dXJuIGNoIC0gJ0EnOworICAgIGlmICgoJ2EnIDw9IGNoKSAmJiAoY2ggPD0gJ3onKSkgcmV0dXJuIGNoIC0gJ2EnICsgMjY7CisgICAgaWYgKCgnMCcgPD0gY2gpICYmIChjaCA8PSAnOScpKSByZXR1cm4gY2ggLSAnMCcgKyA1MjsKKyAgICBpZiAoJysnID09IGNoKSByZXR1cm4gNjI7CisgICAgaWYgKCcvJyA9PSBjaCkgcmV0dXJuIDYzOworICAgIGlmICgnPScgPT0gY2gpIHJldHVybiA2NDsKKyAgICByZXR1cm4gLTE7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJKgorICoJWE1MIFNjaGVtYSBEYXRlcy9UaW1lcyBEYXRhdHlwZXMgSGFuZGxpbmcJCSoKKyAqCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBQQVJTRV9ESUdJVFM6CisgKiBAbnVtOiAgdGhlIGludGVnZXIgdG8gZmlsbCBpbgorICogQGN1cjogIGFuICN4bWxDaGFyICoKKyAqIEBudW1fdHlwZTogYW4gaW50ZWdlciBmbGFnCisgKgorICogUGFyc2VzIGEgZGlnaXRzIGludGVnZXIgYW5kIHVwZGF0ZXMgQG51bSB3aXRoIHRoZSB2YWx1ZS4gQGN1ciBpcworICogdXBkYXRlZCB0byBwb2ludCBqdXN0IGFmdGVyIHRoZSBpbnRlZ2VyLgorICogSW4gY2FzZSBvZiBlcnJvciwgQG51bV90eXBlIGlzIHNldCB0byAtMSwgdmFsdWVzIG9mIEBudW0gYW5kCisgKiBAY3VyIGFyZSB1bmRlZmluZWQuCisgKi8KKyNkZWZpbmUgUEFSU0VfRElHSVRTKG51bSwgY3VyLCBudW1fdHlwZSkJICAgICAgICAgICAgICAgIFwKKwlpZiAoKCpjdXIgPCAnMCcpIHx8ICgqY3VyID4gJzknKSkJCQlcCisJICAgIG51bV90eXBlID0gLTE7CQkJCQlcCisgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CQlcCisJICAgICAgICBudW0gPSBudW0gKiAxMCArICgqY3VyIC0gJzAnKTsJCSAgICAgICAgXAorCSAgICAgICAgY3VyKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgfQorCisvKioKKyAqIFBBUlNFX05VTToKKyAqIEBudW06ICB0aGUgZG91YmxlIHRvIGZpbGwgaW4KKyAqIEBjdXI6ICBhbiAjeG1sQ2hhciAqCisgKiBAbnVtX3R5cGU6IGFuIGludGVnZXIgZmxhZworICoKKyAqIFBhcnNlcyBhIGZsb2F0IG9yIGludGVnZXIgYW5kIHVwZGF0ZXMgQG51bSB3aXRoIHRoZSB2YWx1ZS4gQGN1ciBpcworICogdXBkYXRlZCB0byBwb2ludCBqdXN0IGFmdGVyIHRoZSBudW1iZXIuIElmIHRoZSBudW1iZXIgaXMgYSBmbG9hdCwKKyAqIHRoZW4gaXQgbXVzdCBoYXZlIGFuIGludGVnZXIgcGFydCBhbmQgYSBkZWNpbWFsIHBhcnQ7IEBudW1fdHlwZSB3aWxsCisgKiBiZSBzZXQgdG8gMS4gSWYgdGhlcmUgaXMgbm8gZGVjaW1hbCBwYXJ0LCBAbnVtX3R5cGUgaXMgc2V0IHRvIHplcm8uCisgKiBJbiBjYXNlIG9mIGVycm9yLCBAbnVtX3R5cGUgaXMgc2V0IHRvIC0xLCB2YWx1ZXMgb2YgQG51bSBhbmQKKyAqIEBjdXIgYXJlIHVuZGVmaW5lZC4KKyAqLworI2RlZmluZSBQQVJTRV9OVU0obnVtLCBjdXIsIG51bV90eXBlKQkJCQlcCisgICAgICAgIG51bSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCVBBUlNFX0RJR0lUUyhudW0sIGN1ciwgbnVtX3R5cGUpOwkgICAgICAgICAgICAgICAgXAorCWlmICghbnVtX3R5cGUgJiYgKCpjdXIgPT0gJy4nKSkgewkJCVwKKwkgICAgZG91YmxlIG11bHQgPSAxOwkJCQkgICAgICAgIFwKKwkgICAgY3VyKys7CQkJCQkJXAorCSAgICBpZiAoKCpjdXIgPCAnMCcpIHx8ICgqY3VyID4gJzknKSkJCQlcCisJCW51bV90eXBlID0gLTE7CQkJCQlcCisgICAgICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG51bV90eXBlID0gMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkgICAgd2hpbGUgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkgewkJXAorCQltdWx0IC89IDEwOwkJCQkJXAorCQludW0gKz0gKCpjdXIgLSAnMCcpICogbXVsdDsJCQlcCisJCWN1cisrOwkJCQkJCVwKKwkgICAgfQkJCQkJCQlcCisJfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkYXRlRGF0ZXM6CisgKiBAdHlwZTogdGhlIGV4cGVjdGVkIHR5cGUgb3IgWE1MX1NDSEVNQVNfVU5LTk9XTgorICogQGRhdGVUaW1lOiAgc3RyaW5nIHRvIGFuYWx5emUKKyAqIEB2YWw6ICB0aGUgcmV0dXJuIGNvbXB1dGVkIHZhbHVlCisgKgorICogQ2hlY2sgdGhhdCBAZGF0ZVRpbWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2Ygb25lIG9mIHRoZSBkYXRlIHR5cGVzLgorICogaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWYWxpZGF0ZURhdGVzICh4bWxTY2hlbWFWYWxUeXBlIHR5cGUsCisJICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmRhdGVUaW1lLCB4bWxTY2hlbWFWYWxQdHIgKnZhbCwKKwkJCWludCBjb2xsYXBzZSkgeworICAgIHhtbFNjaGVtYVZhbFB0ciBkdDsKKyAgICBpbnQgcmV0OworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IGRhdGVUaW1lOworCisjZGVmaW5lIFJFVFVSTl9UWVBFX0lGX1ZBTElEKHQpCQkJCQlcCisgICAgaWYgKElTX1RaT19DSEFSKCpjdXIpKSB7CQkJCQlcCisJcmV0ID0gX3htbFNjaGVtYVBhcnNlVGltZVpvbmUoJihkdC0+dmFsdWUuZGF0ZSksICZjdXIpOwlcCisJaWYgKHJldCA9PSAwKSB7CQkJCQkJXAorCSAgICBpZiAoKmN1ciAhPSAwKQkJCQkJXAorCQlnb3RvIGVycm9yOwkJCQkJXAorCSAgICBkdC0+dHlwZSA9IHQ7CQkJCQlcCisJICAgIGdvdG8gZG9uZTsJCQkJCQlcCisJfQkJCQkJCQlcCisgICAgfQorCisgICAgaWYgKGRhdGVUaW1lID09IE5VTEwpCisJcmV0dXJuIC0xOworCisgICAgaWYgKGNvbGxhcHNlKQorCXdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsKKworICAgIGlmICgoKmN1ciAhPSAnLScpICYmICgqY3VyIDwgJzAnKSAmJiAoKmN1ciA+ICc5JykpCisJcmV0dXJuIDE7CisKKyAgICBkdCA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX1VOS05PV04pOworICAgIGlmIChkdCA9PSBOVUxMKQorCXJldHVybiAtMTsKKworICAgIGlmICgoY3VyWzBdID09ICctJykgJiYgKGN1clsxXSA9PSAnLScpKSB7CisJLyoKKwkgKiBJdCdzIGFuIGluY29tcGxldGUgZGF0ZSAoeHM6Z01vbnRoRGF5LCB4czpnTW9udGggb3IKKwkgKiB4czpnRGF5KQorCSAqLworCWN1ciArPSAyOworCisJLyogaXMgaXQgYW4geHM6Z0RheT8gKi8KKwlpZiAoKmN1ciA9PSAnLScpIHsKKwkgICAgaWYgKHR5cGUgPT0gWE1MX1NDSEVNQVNfR01PTlRIKQorCQlnb3RvIGVycm9yOworCSAgKytjdXI7CisJICAgIHJldCA9IF94bWxTY2hlbWFQYXJzZUdEYXkoJihkdC0+dmFsdWUuZGF0ZSksICZjdXIpOworCSAgICBpZiAocmV0ICE9IDApCisJCWdvdG8gZXJyb3I7CisKKwkgICAgUkVUVVJOX1RZUEVfSUZfVkFMSUQoWE1MX1NDSEVNQVNfR0RBWSk7CisKKwkgICAgZ290byBlcnJvcjsKKwl9CisKKwkvKgorCSAqIGl0IHNob3VsZCBiZSBhbiB4czpnTW9udGhEYXkgb3IgeHM6Z01vbnRoCisJICovCisJcmV0ID0gX3htbFNjaGVtYVBhcnNlR01vbnRoKCYoZHQtPnZhbHVlLmRhdGUpLCAmY3VyKTsKKwlpZiAocmV0ICE9IDApCisJICAgIGdvdG8gZXJyb3I7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogYSAnLScgY2hhciBjb3VsZCBpbmRpY2F0ZSB0aGlzIHR5cGUgaXMgeHM6Z01vbnRoRGF5IG9yCisgICAgICAgICAqIGEgbmVnYXRpdmUgdGltZSB6b25lIG9mZnNldC4gQ2hlY2sgZm9yIHhzOmdNb250aERheSBmaXJzdC4KKyAgICAgICAgICogQWxzbyB0aGUgZmlyc3QgdGhyZWUgY2hhcidzIG9mIGEgbmVnYXRpdmUgdHpvICgtTU06U1MpIGNhbgorICAgICAgICAgKiBhcHBlYXIgdG8gYmUgYSB2YWxpZCBkYXk7IHNvIGV2ZW4gaWYgdGhlIGRheSBwb3J0aW9uCisgICAgICAgICAqIG9mIHRoZSB4czpnTW9udGhEYXkgdmVyaWZpZXMsIHdlIG11c3QgaW5zdXJlIGl0IHdhcyBub3QKKyAgICAgICAgICogYSB0em8uCisgICAgICAgICAqLworICAgICAgICBpZiAoKmN1ciA9PSAnLScpIHsKKyAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnJld25kID0gY3VyOworICAgICAgICAgICAgY3VyKys7CisKKyAgCSAgICByZXQgPSBfeG1sU2NoZW1hUGFyc2VHRGF5KCYoZHQtPnZhbHVlLmRhdGUpLCAmY3VyKTsKKyAgICAgICAgICAgIGlmICgocmV0ID09IDApICYmICgoKmN1ciA9PSAwKSB8fCAoKmN1ciAhPSAnOicpKSkgeworCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiB3ZSBjYW4gdXNlIHRoZSBWQUxJRF9NREFZIG1hY3JvIHRvIHZhbGlkYXRlIHRoZSBtb250aAorICAgICAgICAgICAgICAgICAqIGFuZCBkYXkgYmVjYXVzZSB0aGUgbGVhcCB5ZWFyIHRlc3Qgd2lsbCBmbGFnIHllYXIgemVybworICAgICAgICAgICAgICAgICAqIGFzIGEgbGVhcCB5ZWFyIChldmVuIHRob3VnaCB6ZXJvIGlzIGFuIGludmFsaWQgeWVhcikuCisJCSAqIEZVVFVSRSBUT0RPOiBaZXJvIHdpbGwgYmVjb21lIHZhbGlkIGluIFhNTCBTY2hlbWEgMS4xCisJCSAqIHByb2JhYmx5LgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmIChWQUxJRF9NREFZKCgmKGR0LT52YWx1ZS5kYXRlKSkpKSB7CisKKwkgICAgICAgICAgICBSRVRVUk5fVFlQRV9JRl9WQUxJRChYTUxfU0NIRU1BU19HTU9OVEhEQVkpOworCisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogbm90IHhzOmdNb250aERheSBzbyByZXdpbmQgYW5kIGNoZWNrIGlmIGp1c3QgeHM6Z01vbnRoCisgICAgICAgICAgICAgKiB3aXRoIGFuIG9wdGlvbmFsIHRpbWUgem9uZS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgY3VyID0gcmV3bmQ7CisgICAgICAgIH0KKworCVJFVFVSTl9UWVBFX0lGX1ZBTElEKFhNTF9TQ0hFTUFTX0dNT05USCk7CisKKwlnb3RvIGVycm9yOworICAgIH0KKworICAgIC8qCisgICAgICogSXQncyBhIHJpZ2h0LXRydW5jYXRlZCBkYXRlIG9yIGFuIHhzOnRpbWUuCisgICAgICogVHJ5IHRvIHBhcnNlIGFuIHhzOnRpbWUgdGhlbiBmYWxsYmFjayBvbiByaWdodC10cnVuY2F0ZWQgZGF0ZXMuCisgICAgICovCisgICAgaWYgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkgeworCXJldCA9IF94bWxTY2hlbWFQYXJzZVRpbWUoJihkdC0+dmFsdWUuZGF0ZSksICZjdXIpOworCWlmIChyZXQgPT0gMCkgeworCSAgICAvKiBpdCdzIGFuIHhzOnRpbWUgKi8KKwkgICAgUkVUVVJOX1RZUEVfSUZfVkFMSUQoWE1MX1NDSEVNQVNfVElNRSk7CisJfQorICAgIH0KKworICAgIC8qIGZhbGxiYWNrIG9uIGRhdGUgcGFyc2luZyAqLworICAgIGN1ciA9IGRhdGVUaW1lOworCisgICAgcmV0ID0gX3htbFNjaGVtYVBhcnNlR1llYXIoJihkdC0+dmFsdWUuZGF0ZSksICZjdXIpOworICAgIGlmIChyZXQgIT0gMCkKKwlnb3RvIGVycm9yOworCisgICAgLyogaXMgaXQgYW4geHM6Z1llYXI/ICovCisgICAgUkVUVVJOX1RZUEVfSUZfVkFMSUQoWE1MX1NDSEVNQVNfR1lFQVIpOworCisgICAgaWYgKCpjdXIgIT0gJy0nKQorCWdvdG8gZXJyb3I7CisgICAgY3VyKys7CisKKyAgICByZXQgPSBfeG1sU2NoZW1hUGFyc2VHTW9udGgoJihkdC0+dmFsdWUuZGF0ZSksICZjdXIpOworICAgIGlmIChyZXQgIT0gMCkKKwlnb3RvIGVycm9yOworCisgICAgLyogaXMgaXQgYW4geHM6Z1llYXJNb250aD8gKi8KKyAgICBSRVRVUk5fVFlQRV9JRl9WQUxJRChYTUxfU0NIRU1BU19HWUVBUk1PTlRIKTsKKworICAgIGlmICgqY3VyICE9ICctJykKKwlnb3RvIGVycm9yOworICAgIGN1cisrOworCisgICAgcmV0ID0gX3htbFNjaGVtYVBhcnNlR0RheSgmKGR0LT52YWx1ZS5kYXRlKSwgJmN1cik7CisgICAgaWYgKChyZXQgIT0gMCkgfHwgIVZBTElEX0RBVEUoKCYoZHQtPnZhbHVlLmRhdGUpKSkpCisJZ290byBlcnJvcjsKKworICAgIC8qIGlzIGl0IGFuIHhzOmRhdGU/ICovCisgICAgUkVUVVJOX1RZUEVfSUZfVkFMSUQoWE1MX1NDSEVNQVNfREFURSk7CisKKyAgICBpZiAoKmN1ciAhPSAnVCcpCisJZ290byBlcnJvcjsKKyAgICBjdXIrKzsKKworICAgIC8qIGl0IHNob3VsZCBiZSBhbiB4czpkYXRlVGltZSAqLworICAgIHJldCA9IF94bWxTY2hlbWFQYXJzZVRpbWUoJihkdC0+dmFsdWUuZGF0ZSksICZjdXIpOworICAgIGlmIChyZXQgIT0gMCkKKwlnb3RvIGVycm9yOworCisgICAgcmV0ID0gX3htbFNjaGVtYVBhcnNlVGltZVpvbmUoJihkdC0+dmFsdWUuZGF0ZSksICZjdXIpOworICAgIGlmIChjb2xsYXBzZSkKKwl3aGlsZSBJU19XU1BfQkxBTktfQ0goKmN1cikgY3VyKys7CisgICAgaWYgKChyZXQgIT0gMCkgfHwgKCpjdXIgIT0gMCkgfHwgKCEoVkFMSURfREFURVRJTUUoKCYoZHQtPnZhbHVlLmRhdGUpKSkpKSkKKwlnb3RvIGVycm9yOworCisKKyAgICBkdC0+dHlwZSA9IFhNTF9TQ0hFTUFTX0RBVEVUSU1FOworCitkb25lOgorI2lmIDEKKyAgICBpZiAoKHR5cGUgIT0gWE1MX1NDSEVNQVNfVU5LTk9XTikgJiYgKHR5cGUgIT0gZHQtPnR5cGUpKQorICAgICAgICBnb3RvIGVycm9yOworI2Vsc2UKKyAgICAvKgorICAgICAqIGluc3VyZSB0aGUgcGFyc2VkIHR5cGUgaXMgZXF1YWwgdG8gb3IgbGVzcyBzaWduaWZpY2FudCAocmlnaHQKKyAgICAgKiB0cnVuY2F0ZWQpIHRoYW4gdGhlIGRlc2lyZWQgdHlwZS4KKyAgICAgKi8KKyAgICBpZiAoKHR5cGUgIT0gWE1MX1NDSEVNQVNfVU5LTk9XTikgJiYgKHR5cGUgIT0gZHQtPnR5cGUpKSB7CisKKyAgICAgICAgLyogdGltZSBvbmx5IG1hdGNoZXMgdGltZSAqLworICAgICAgICBpZiAoKHR5cGUgPT0gWE1MX1NDSEVNQVNfVElNRSkgJiYgKGR0LT50eXBlID09IFhNTF9TQ0hFTUFTX1RJTUUpKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKworICAgICAgICBpZiAoKHR5cGUgPT0gWE1MX1NDSEVNQVNfREFURVRJTUUpICYmCisgICAgICAgICAgICAoKGR0LT50eXBlICE9IFhNTF9TQ0hFTUFTX0RBVEUpIHx8CisgICAgICAgICAgICAgKGR0LT50eXBlICE9IFhNTF9TQ0hFTUFTX0dZRUFSTU9OVEgpIHx8CisgICAgICAgICAgICAgKGR0LT50eXBlICE9IFhNTF9TQ0hFTUFTX0dZRUFSKSkpCisgICAgICAgICAgICBnb3RvIGVycm9yOworCisgICAgICAgIGlmICgodHlwZSA9PSBYTUxfU0NIRU1BU19EQVRFKSAmJgorICAgICAgICAgICAgKChkdC0+dHlwZSAhPSBYTUxfU0NIRU1BU19HWUVBUikgfHwKKyAgICAgICAgICAgICAoZHQtPnR5cGUgIT0gWE1MX1NDSEVNQVNfR1lFQVJNT05USCkpKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKworICAgICAgICBpZiAoKHR5cGUgPT0gWE1MX1NDSEVNQVNfR1lFQVJNT05USCkgJiYgKGR0LT50eXBlICE9IFhNTF9TQ0hFTUFTX0dZRUFSKSkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAgICAgaWYgKCh0eXBlID09IFhNTF9TQ0hFTUFTX0dNT05USERBWSkgJiYgKGR0LT50eXBlICE9IFhNTF9TQ0hFTUFTX0dNT05USCkpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKHZhbCAhPSBOVUxMKQorICAgICAgICAqdmFsID0gZHQ7CisgICAgZWxzZQorCXhtbFNjaGVtYUZyZWVWYWx1ZShkdCk7CisKKyAgICByZXR1cm4gMDsKKworZXJyb3I6CisgICAgaWYgKGR0ICE9IE5VTEwpCisJeG1sU2NoZW1hRnJlZVZhbHVlKGR0KTsKKyAgICByZXR1cm4gMTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFWYWxpZGF0ZUR1cmF0aW9uOgorICogQHR5cGU6IHRoZSBwcmVkZWZpbmVkIHR5cGUKKyAqIEBkdXJhdGlvbjogIHN0cmluZyB0byBhbmFseXplCisgKiBAdmFsOiAgdGhlIHJldHVybiBjb21wdXRlZCB2YWx1ZQorICoKKyAqIENoZWNrIHRoYXQgQGR1cmF0aW9uIGNvbmZvcm1zIHRvIHRoZSBsZXhpY2FsIHNwYWNlIG9mIHRoZSBkdXJhdGlvbiB0eXBlLgorICogaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWYWxpZGF0ZUR1cmF0aW9uICh4bWxTY2hlbWFUeXBlUHRyIHR5cGUgQVRUUklCVVRFX1VOVVNFRCwKKwkgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqZHVyYXRpb24sIHhtbFNjaGVtYVZhbFB0ciAqdmFsLAorCQkJICAgaW50IGNvbGxhcHNlKSB7CisgICAgY29uc3QgeG1sQ2hhciAgKmN1ciA9IGR1cmF0aW9uOworICAgIHhtbFNjaGVtYVZhbFB0ciBkdXI7CisgICAgaW50IGlzbmVnID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgc2VxID0gMDsKKyAgICBkb3VibGUgICAgICAgICBudW07CisgICAgaW50ICAgICAgICAgICAgbnVtX3R5cGUgPSAwOyAgLyogLTEgPSBpbnZhbGlkLCAwID0gaW50LCAxID0gZmxvYXRpbmcgKi8KKyAgICBjb25zdCB4bWxDaGFyICBkZXNpZ1tdICA9IHsnWScsICdNJywgJ0QnLCAnSCcsICdNJywgJ1MnfTsKKyAgICBjb25zdCBkb3VibGUgICBtdWx0aVtdICA9IHsgMC4wLCAwLjAsIDg2NDAwLjAsIDM2MDAuMCwgNjAuMCwgMS4wLCAwLjB9OworCisgICAgaWYgKGR1cmF0aW9uID09IE5VTEwpCisJcmV0dXJuIC0xOworCisgICAgaWYgKGNvbGxhcHNlKQorCXdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsKKworICAgIGlmICgqY3VyID09ICctJykgeworICAgICAgICBpc25lZyA9IDE7CisgICAgICAgIGN1cisrOworICAgIH0KKworICAgIC8qIGR1cmF0aW9uIG11c3Qgc3RhcnQgd2l0aCAnUCcgKGFmdGVyIHNpZ24pICovCisgICAgaWYgKCpjdXIrKyAhPSAnUCcpCisJcmV0dXJuIDE7CisKKyAgICBpZiAoKmN1ciA9PSAwKQorCXJldHVybiAxOworCisgICAgZHVyID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfRFVSQVRJT04pOworICAgIGlmIChkdXIgPT0gTlVMTCkKKwlyZXR1cm4gLTE7CisKKyAgICB3aGlsZSAoKmN1ciAhPSAwKSB7CisKKyAgICAgICAgLyogaW5wdXQgc3RyaW5nIHNob3VsZCBiZSBlbXB0eSBvciBpbnZhbGlkIGRhdGUvdGltZSBpdGVtICovCisgICAgICAgIGlmIChzZXEgPj0gc2l6ZW9mKGRlc2lnKSkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAgICAgLyogVCBkZXNpZ25hdG9yIG11c3QgYmUgcHJlc2VudCBmb3IgdGltZSBpdGVtcyAqLworICAgICAgICBpZiAoKmN1ciA9PSAnVCcpIHsKKyAgICAgICAgICAgIGlmIChzZXEgPD0gMykgeworICAgICAgICAgICAgICAgIHNlcSA9IDM7CisgICAgICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChzZXEgPT0gMykKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAgICAgLyogcGFyc2UgdGhlIG51bWJlciBwb3J0aW9uIG9mIHRoZSBpdGVtICovCisgICAgICAgIFBBUlNFX05VTShudW0sIGN1ciwgbnVtX3R5cGUpOworCisgICAgICAgIGlmICgobnVtX3R5cGUgPT0gLTEpIHx8ICgqY3VyID09IDApKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKworICAgICAgICAvKiB1cGRhdGUgZHVyYXRpb24gYmFzZWQgb24gaXRlbSB0eXBlICovCisgICAgICAgIHdoaWxlIChzZXEgPCBzaXplb2YoZGVzaWcpKSB7CisgICAgICAgICAgICBpZiAoKmN1ciA9PSBkZXNpZ1tzZXFdKSB7CisKKyAgICAgICAgICAgICAgICAvKiB2ZXJpZnkgbnVtZXJpYyB0eXBlOyBvbmx5IHNlY29uZHMgY2FuIGJlIGZsb2F0ICovCisgICAgICAgICAgICAgICAgaWYgKChudW1fdHlwZSAhPSAwKSAmJiAoc2VxIDwgKHNpemVvZihkZXNpZyktMSkpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworCisgICAgICAgICAgICAgICAgc3dpdGNoIChzZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgZHVyLT52YWx1ZS5kdXIubW9uID0gKGxvbmcpbnVtICogMTI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgZHVyLT52YWx1ZS5kdXIubW9uICs9IChsb25nKW51bTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCB0byBzZWNvbmRzIHVzaW5nIG11bHRpcGxpZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGR1ci0+dmFsdWUuZHVyLnNlYyArPSBudW0gKiBtdWx0aVtzZXFdOworICAgICAgICAgICAgICAgICAgICAgICAgc2VxKys7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgLyogZXhpdCBsb29wICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBubyBkYXRlIGRlc2lnbmF0b3JzIGZvdW5kPyAqLworICAgICAgICAgICAgaWYgKCgrK3NlcSA9PSAzKSB8fCAoc2VxID09IDYpKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKwljdXIrKzsKKwlpZiAoY29sbGFwc2UpCisJICAgIHdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsgICAgICAgIAorICAgIH0KKworICAgIGlmIChpc25lZykgeworICAgICAgICBkdXItPnZhbHVlLmR1ci5tb24gPSAtZHVyLT52YWx1ZS5kdXIubW9uOworICAgICAgICBkdXItPnZhbHVlLmR1ci5kYXkgPSAtZHVyLT52YWx1ZS5kdXIuZGF5OworICAgICAgICBkdXItPnZhbHVlLmR1ci5zZWMgPSAtZHVyLT52YWx1ZS5kdXIuc2VjOworICAgIH0KKworICAgIGlmICh2YWwgIT0gTlVMTCkKKyAgICAgICAgKnZhbCA9IGR1cjsKKyAgICBlbHNlCisJeG1sU2NoZW1hRnJlZVZhbHVlKGR1cik7CisKKyAgICByZXR1cm4gMDsKKworZXJyb3I6CisgICAgaWYgKGR1ciAhPSBOVUxMKQorCXhtbFNjaGVtYUZyZWVWYWx1ZShkdXIpOworICAgIHJldHVybiAxOworfQorCisvKioKKyAqIHhtbFNjaGVtYVN0cmlwOgorICogQHZhbHVlOiBhIHZhbHVlCisgKgorICogUmVtb3ZlcyB0aGUgbGVhZGluZyBhbmQgZW5kaW5nIHNwYWNlcyBvZiBhIHN0cmluZworICoKKyAqIFJldHVybnMgdGhlIG5ldyBzdHJpbmcgb3IgTlVMTCBpZiBubyBjaGFuZ2Ugd2FzIHJlcXVpcmVkLgorICovCitzdGF0aWMgeG1sQ2hhciAqCit4bWxTY2hlbWFTdHJpcChjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIGNvbnN0IHhtbENoYXIgKnN0YXJ0ID0gdmFsdWUsICplbmQsICpmOworCisgICAgaWYgKHZhbHVlID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICB3aGlsZSAoKCpzdGFydCAhPSAwKSAmJiAoSVNfQkxBTktfQ0goKnN0YXJ0KSkpIHN0YXJ0Kys7CisgICAgZW5kID0gc3RhcnQ7CisgICAgd2hpbGUgKCplbmQgIT0gMCkgZW5kKys7CisgICAgZiA9IGVuZDsKKyAgICBlbmQtLTsKKyAgICB3aGlsZSAoKGVuZCA+IHN0YXJ0KSAmJiAoSVNfQkxBTktfQ0goKmVuZCkpKSBlbmQtLTsKKyAgICBlbmQrKzsKKyAgICBpZiAoKHN0YXJ0ID09IHZhbHVlKSAmJiAoZiA9PSBlbmQpKSByZXR1cm4oTlVMTCk7CisgICAgcmV0dXJuKHhtbFN0cm5kdXAoc3RhcnQsIGVuZCAtIHN0YXJ0KSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2U6CisgKiBAdmFsdWU6IGEgdmFsdWUKKyAqCisgKiBSZXBsYWNlcyAweGQsIDB4OSBhbmQgMHhhIHdpdGggYSBzcGFjZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc3RyaW5nIG9yIE5VTEwgaWYgbm8gY2hhbmdlIHdhcyByZXF1aXJlZC4KKyAqLworeG1sQ2hhciAqCit4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZShjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IHZhbHVlOyAgICAKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMLCAqbWN1cjsgCisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgCisJcmV0dXJuKE5VTEwpOworICAgIAorICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAKKwkoKCgqY3VyKSAhPSAweGQpICYmICgoKmN1cikgIT0gMHg5KSAmJiAoKCpjdXIpICE9IDB4YSkpKSB7CisJY3VyKys7CisgICAgfQorICAgIGlmICgqY3VyID09IDApCisJcmV0dXJuIChOVUxMKTsKKyAgICByZXQgPSB4bWxTdHJkdXAodmFsdWUpOworICAgIC8qIFRPRE8gRklYTUU6IEkgZ3Vlc3MgZ2NjIHdpbGwgYmFyayBhdCB0aGlzLiAqLworICAgIG1jdXIgPSAoeG1sQ2hhciAqKSAgKHJldCArIChjdXIgLSB2YWx1ZSkpOworICAgIGRvIHsKKwlpZiAoICgoKm1jdXIpID09IDB4ZCkgfHwgKCgqbWN1cikgPT0gMHg5KSB8fCAoKCptY3VyKSA9PSAweGEpICkKKwkgICAgKm1jdXIgPSAnICc7CisJbWN1cisrOworICAgIH0gd2hpbGUgKCptY3VyICE9IDApOwkgICAgCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ29sbGFwc2VTdHJpbmc6CisgKiBAdmFsdWU6IGEgdmFsdWUKKyAqCisgKiBSZW1vdmVzIGFuZCBub3JtYWxpemUgd2hpdGUgc3BhY2VzIGluIHRoZSBzdHJpbmcKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgc3RyaW5nIG9yIE5VTEwgaWYgbm8gY2hhbmdlIHdhcyByZXF1aXJlZC4KKyAqLworeG1sQ2hhciAqCit4bWxTY2hlbWFDb2xsYXBzZVN0cmluZyhjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIGNvbnN0IHhtbENoYXIgKnN0YXJ0ID0gdmFsdWUsICplbmQsICpmOworICAgIHhtbENoYXIgKmc7CisgICAgaW50IGNvbCA9IDA7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHdoaWxlICgoKnN0YXJ0ICE9IDApICYmIChJU19CTEFOS19DSCgqc3RhcnQpKSkgc3RhcnQrKzsKKyAgICBlbmQgPSBzdGFydDsKKyAgICB3aGlsZSAoKmVuZCAhPSAwKSB7CisJaWYgKCgqZW5kID09ICcgJykgJiYgKElTX0JMQU5LX0NIKGVuZFsxXSkpKSB7CisJICAgIGNvbCA9IGVuZCAtIHN0YXJ0OworCSAgICBicmVhazsKKwl9IGVsc2UgaWYgKCgqZW5kID09IDB4YSkgfHwgKCplbmQgPT0gMHg5KSB8fCAoKmVuZCA9PSAweGQpKSB7CisJICAgIGNvbCA9IGVuZCAtIHN0YXJ0OworCSAgICBicmVhazsKKwl9CisJZW5kKys7CisgICAgfQorICAgIGlmIChjb2wgPT0gMCkgeworCWYgPSBlbmQ7CisJZW5kLS07CisJd2hpbGUgKChlbmQgPiBzdGFydCkgJiYgKElTX0JMQU5LX0NIKCplbmQpKSkgZW5kLS07CisJZW5kKys7CisJaWYgKChzdGFydCA9PSB2YWx1ZSkgJiYgKGYgPT0gZW5kKSkgcmV0dXJuKE5VTEwpOworCXJldHVybih4bWxTdHJuZHVwKHN0YXJ0LCBlbmQgLSBzdGFydCkpOworICAgIH0KKyAgICBzdGFydCA9IHhtbFN0cmR1cChzdGFydCk7CisgICAgaWYgKHN0YXJ0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBnID0gKHhtbENoYXIgKikgKHN0YXJ0ICsgY29sKTsKKyAgICBlbmQgPSBnOworICAgIHdoaWxlICgqZW5kICE9IDApIHsKKwlpZiAoSVNfQkxBTktfQ0goKmVuZCkpIHsKKwkgICAgZW5kKys7CisJICAgIHdoaWxlIChJU19CTEFOS19DSCgqZW5kKSkgZW5kKys7CisJICAgIGlmICgqZW5kICE9IDApCisJCSpnKysgPSAnICc7CisJfSBlbHNlCisJICAgICpnKysgPSAqZW5kKys7CisgICAgfQorICAgICpnID0gMDsKKyAgICByZXR1cm4oKHhtbENoYXIgKikgc3RhcnQpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbEF0b21pY0xpc3ROb2RlOgorICogQHR5cGU6IHRoZSBwcmVkZWZpbmVkIGF0b21pYyB0eXBlIGZvciBhIHRva2VuIGluIHRoZSBsaXN0CisgKiBAdmFsdWU6IHRoZSBsaXN0IHZhbHVlIHRvIGNoZWNrCisgKiBAcmV0OiAgdGhlIHJldHVybiBjb21wdXRlZCB2YWx1ZQorICogQG5vZGU6ICB0aGUgbm9kZSBjb250YWluaW5nIHRoZSB2YWx1ZQorICoKKyAqIENoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiB0aGUgcHJlZGVmaW5lZAorICogbGlzdCB0eXBlLiBpZiB0cnVlIGEgdmFsdWUgaXMgY29tcHV0ZWQgYW5kIHJldHVybmVkIGluIEByZXQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGlmIHRoaXMgdmFsaWRhdGVzLCBhIG5lZ2F0aXZlIGVycm9yIGNvZGUKKyAqICAgICAgICAgbnVtYmVyIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFWYWxBdG9taWNMaXN0Tm9kZSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUsIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCSAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFWYWxQdHIgKnJldCwgeG1sTm9kZVB0ciBub2RlKSB7CisgICAgeG1sQ2hhciAqdmFsLCAqY3VyLCAqZW5kdmFsOworICAgIGludCBuYl92YWx1ZXMgPSAwOworICAgIGludCB0bXAgPSAwOworCisgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICB2YWwgPSB4bWxTdHJkdXAodmFsdWUpOworICAgIGlmICh2YWwgPT0gTlVMTCkgeworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmIChyZXQgIT0gTlVMTCkgeworICAgICAgICAqcmV0ID0gTlVMTDsKKyAgICB9CisgICAgY3VyID0gdmFsOworICAgIC8qCisgICAgICogU3BsaXQgdGhlIGxpc3QKKyAgICAgKi8KKyAgICB3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpICpjdXIrKyA9IDA7CisgICAgd2hpbGUgKCpjdXIgIT0gMCkgeworCWlmIChJU19CTEFOS19DSCgqY3VyKSkgeworCSAgICAqY3VyID0gMDsKKwkgICAgY3VyKys7CisJICAgIHdoaWxlIChJU19CTEFOS19DSCgqY3VyKSkgKmN1cisrID0gMDsKKwl9IGVsc2UgeworCSAgICBuYl92YWx1ZXMrKzsKKwkgICAgY3VyKys7CisJICAgIHdoaWxlICgoKmN1ciAhPSAwKSAmJiAoIUlTX0JMQU5LX0NIKCpjdXIpKSkgY3VyKys7CisJfQorICAgIH0KKyAgICBpZiAobmJfdmFsdWVzID09IDApIHsKKwl4bWxGcmVlKHZhbCk7CisJcmV0dXJuKG5iX3ZhbHVlcyk7CisgICAgfQorICAgIGVuZHZhbCA9IGN1cjsKKyAgICBjdXIgPSB2YWw7CisgICAgd2hpbGUgKCgqY3VyID09IDApICYmIChjdXIgIT0gZW5kdmFsKSkgY3VyKys7CisgICAgd2hpbGUgKGN1ciAhPSBlbmR2YWwpIHsKKwl0bXAgPSB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSh0eXBlLCBjdXIsIE5VTEwsIG5vZGUpOworCWlmICh0bXAgIT0gMCkKKwkgICAgYnJlYWs7CisJd2hpbGUgKCpjdXIgIT0gMCkgY3VyKys7CisJd2hpbGUgKCgqY3VyID09IDApICYmIChjdXIgIT0gZW5kdmFsKSkgY3VyKys7CisgICAgfQorICAgIC8qIFRPRE8gd2hhdCByZXR1cm4gdmFsdWUgPyBjLmYuIGJ1ZyAjMTU4NjI4CisgICAgaWYgKHJldCAhPSBOVUxMKSB7CisJVE9ETworICAgIH0gKi8KKyAgICB4bWxGcmVlKHZhbCk7CisgICAgaWYgKHRtcCA9PSAwKQorCXJldHVybihuYl92YWx1ZXMpOworICAgIHJldHVybigtMSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hUGFyc2VVSW50OgorICogQHN0cjogcG9pbnRlciB0byB0aGUgc3RyaW5nIFIvVworICogQGxsbzogcG9pbnRlciB0byB0aGUgbG93IHJlc3VsdAorICogQGxtaTogcG9pbnRlciB0byB0aGUgbWlkIHJlc3VsdAorICogQGxoaTogcG9pbnRlciB0byB0aGUgaGlnaCByZXN1bHQKKyAqCisgKiBQYXJzZSBhbiB1bnNpZ25lZCBsb25nIGludG8gMyBmaWVsZHMuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBpbiB0aGUgbnVtYmVyIG9yCisgKiAtMSBpZiBvdmVyZmxvdyBvZiB0aGUgY2FwYWNpdHkgYW5kIC0yIGlmIGl0J3Mgbm90IGEgbnVtYmVyLgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFQYXJzZVVJbnQoY29uc3QgeG1sQ2hhciAqKnN0ciwgdW5zaWduZWQgbG9uZyAqbGxvLAorICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKmxtaSwgdW5zaWduZWQgbG9uZyAqbGhpKSB7CisgICAgdW5zaWduZWQgbG9uZyBsbyA9IDAsIG1pID0gMCwgaGkgPSAwOworICAgIGNvbnN0IHhtbENoYXIgKnRtcCwgKmN1ciA9ICpzdHI7CisgICAgaW50IHJldCA9IDAsIGkgPSAwOworCisgICAgaWYgKCEoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSkgCisgICAgICAgIHJldHVybigtMik7CisKKyAgICB3aGlsZSAoKmN1ciA9PSAnMCcpIHsgICAgICAgIC8qIGlnbm9yZSBsZWFkaW5nIHplcm9lcyAqLworICAgICAgICBjdXIrKzsKKyAgICB9CisgICAgdG1wID0gY3VyOworICAgIHdoaWxlICgoKnRtcCAhPSAwKSAmJiAoKnRtcCA+PSAnMCcpICYmICgqdG1wIDw9ICc5JykpIHsKKyAgICAgICAgaSsrO3RtcCsrO3JldCsrOworICAgIH0KKyAgICBpZiAoaSA+IDI0KSB7CisgICAgICAgICpzdHIgPSB0bXA7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorICAgIHdoaWxlIChpID4gMTYpIHsKKyAgICAgICAgaGkgPSBoaSAqIDEwICsgKCpjdXIrKyAtICcwJyk7CisgICAgICAgIGktLTsKKyAgICB9CisgICAgd2hpbGUgKGkgPiA4KSB7CisgICAgICAgIG1pID0gbWkgKiAxMCArICgqY3VyKysgLSAnMCcpOworICAgICAgICBpLS07CisgICAgfQorICAgIHdoaWxlIChpID4gMCkgeworICAgICAgICBsbyA9IGxvICogMTAgKyAoKmN1cisrIC0gJzAnKTsKKyAgICAgICAgaS0tOworICAgIH0KKworICAgICpzdHIgPSBjdXI7CisgICAgKmxsbyA9IGxvOworICAgICpsbWkgPSBtaTsKKyAgICAqbGhpID0gaGk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsQXRvbWljVHlwZToKKyAqIEB0eXBlOiB0aGUgcHJlZGVmaW5lZCB0eXBlCisgKiBAdmFsdWU6IHRoZSB2YWx1ZSB0byBjaGVjaworICogQHZhbDogIHRoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWUKKyAqIEBub2RlOiAgdGhlIG5vZGUgY29udGFpbmluZyB0aGUgdmFsdWUKKyAqIGZsYWdzOiAgZmxhZ3MgdG8gY29udHJvbCB0aGUgdmxpZGF0aW9uCisgKgorICogQ2hlY2sgdGhhdCBhIHZhbHVlIGNvbmZvcm1zIHRvIHRoZSBsZXhpY2FsIHNwYWNlIG9mIHRoZSBhdG9taWMgdHlwZS4KKyAqIGlmIHRydWUgYSB2YWx1ZSBpcyBjb21wdXRlZCBhbmQgcmV0dXJuZWQgaW4gQHZhbC4KKyAqIFRoaXMgY2hlY2tzIHRoZSB2YWx1ZSBzcGFjZSBmb3IgbGlzdCB0eXBlcyBhcyB3ZWxsIChJRFJFRlMsIE5NVE9LRU5TKS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlCisgKiAgICAgICAgIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hVmFsQXRvbWljVHlwZSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUsIGNvbnN0IHhtbENoYXIgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hVmFsUHRyICogdmFsLCB4bWxOb2RlUHRyIG5vZGUsIGludCBmbGFncywKKwkJICAgICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3MsCisJCSAgICAgICBpbnQgbm9ybU9uVGhlRmx5LCBpbnQgYXBwbHlOb3JtLCBpbnQgY3JlYXRlU3RyaW5nVmFsdWUpCit7CisgICAgeG1sU2NoZW1hVmFsUHRyIHY7CisgICAgeG1sQ2hhciAqbm9ybSA9IE5VTEw7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoeG1sU2NoZW1hVHlwZXNJbml0aWFsaXplZCA9PSAwKQorICAgICAgICB4bWxTY2hlbWFJbml0VHlwZXMoKTsKKyAgICBpZiAodHlwZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKC0xKTsKKworICAgIC8qCisgICAgICogdmFsaWRhdGluZyBhIG5vbiBleGlzdGFudCB0ZXh0IG5vZGUgaXMgc2ltaWxhciB0byB2YWxpZGF0aW5nCisgICAgICogYW4gZW1wdHkgb25lLgorICAgICAqLworICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgICAgICB2YWx1ZSA9IEJBRF9DQVNUICIiOworCisgICAgaWYgKHZhbCAhPSBOVUxMKQorICAgICAgICAqdmFsID0gTlVMTDsKKyAgICBpZiAoKGZsYWdzID09IDApICYmICh2YWx1ZSAhPSBOVUxMKSkgeworCisgICAgICAgIGlmICgodHlwZS0+YnVpbHRJblR5cGUgIT0gWE1MX1NDSEVNQVNfU1RSSU5HKSAmJgorCSAgKHR5cGUtPmJ1aWx0SW5UeXBlICE9IFhNTF9TQ0hFTUFTX0FOWVRZUEUpICYmIAorCSAgKHR5cGUtPmJ1aWx0SW5UeXBlICE9IFhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEUpKSB7CisJICAgIGlmICh0eXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19OT1JNU1RSSU5HKQorCQlub3JtID0geG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UodmFsdWUpOworICAgICAgICAgICAgZWxzZQorCQlub3JtID0geG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcodmFsdWUpOworICAgICAgICAgICAgaWYgKG5vcm0gIT0gTlVMTCkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG5vcm07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzd2l0Y2ggKHR5cGUtPmJ1aWx0SW5UeXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVU5LTk9XTjogICAgICAgICAgICAKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisJY2FzZSBYTUxfU0NIRU1BU19BTllUWVBFOgorCWNhc2UgWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRToKKwkgICAgaWYgKChjcmVhdGVTdHJpbmdWYWx1ZSkgJiYgKHZhbCAhPSBOVUxMKSkgeworCQl2ID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSk7CisJCWlmICh2ICE9IE5VTEwpIHsKKwkJICAgIHYtPnZhbHVlLnN0ciA9IHhtbFN0cmR1cCh2YWx1ZSk7CisJCSAgICAqdmFsID0gdjsKKwkJfSBlbHNlIHsKKwkJICAgIGdvdG8gZXJyb3I7CisJCX0JCQorCSAgICB9CisJICAgIGdvdG8gcmV0dXJuMDsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19TVFJJTkc6CQkKKwkgICAgaWYgKCEgbm9ybU9uVGhlRmx5KSB7CisJCWNvbnN0IHhtbENoYXIgKmN1ciA9IHZhbHVlOworCisJCWlmICh3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRSkgeworCQkgICAgd2hpbGUgKCpjdXIgIT0gMCkgeworCQkJaWYgKCgqY3VyID09IDB4ZCkgfHwgKCpjdXIgPT0gMHhhKSB8fCAoKmN1ciA9PSAweDkpKSB7CisJCQkgICAgZ290byByZXR1cm4xOworCQkJfSBlbHNlIHsKKwkJCSAgICBjdXIrKzsKKwkJCX0KKwkJICAgIH0KKwkJfSBlbHNlIGlmICh3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UpIHsKKwkJICAgIHdoaWxlICgqY3VyICE9IDApIHsKKwkJCWlmICgoKmN1ciA9PSAweGQpIHx8ICgqY3VyID09IDB4YSkgfHwgKCpjdXIgPT0gMHg5KSkgeworCQkJICAgIGdvdG8gcmV0dXJuMTsKKwkJCX0gZWxzZSBpZiBJU19XU1BfU1BBQ0VfQ0goKmN1cikgeworCQkJICAgIGN1cisrOworCQkJICAgIGlmIElTX1dTUF9TUEFDRV9DSCgqY3VyKQorCQkJCWdvdG8gcmV0dXJuMTsKKwkJCX0gZWxzZSB7CisJCQkgICAgY3VyKys7CisJCQl9CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICBpZiAoY3JlYXRlU3RyaW5nVmFsdWUgJiYgKHZhbCAhPSBOVUxMKSkgeworCQlpZiAoYXBwbHlOb3JtKSB7CisJCSAgICBpZiAod3MgPT0gWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFKQorCQkJbm9ybSA9IHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nKHZhbHVlKTsKKwkJICAgIGVsc2UgaWYgKHdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFKQorCQkJbm9ybSA9IHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlKHZhbHVlKTsKKwkJICAgIGlmIChub3JtICE9IE5VTEwpCisJCQl2YWx1ZSA9IG5vcm07CisJCX0KKwkJdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX1NUUklORyk7CisJCWlmICh2ICE9IE5VTEwpIHsKKwkJICAgIHYtPnZhbHVlLnN0ciA9IHhtbFN0cmR1cCh2YWx1ZSk7CisJCSAgICAqdmFsID0gdjsKKwkJfSBlbHNlIHsKKwkJICAgIGdvdG8gZXJyb3I7CisJCX0KKwkgICAgfQorICAgICAgICAgICAgZ290byByZXR1cm4wOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX05PUk1TVFJJTkc6eworCQlpZiAobm9ybU9uVGhlRmx5KSB7CisJCSAgICBpZiAoYXBwbHlOb3JtKSB7CisJCQlpZiAod3MgPT0gWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFKQorCQkJICAgIG5vcm0gPSB4bWxTY2hlbWFDb2xsYXBzZVN0cmluZyh2YWx1ZSk7CisJCQllbHNlCisJCQkgICAgbm9ybSA9IHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlKHZhbHVlKTsKKwkJCWlmIChub3JtICE9IE5VTEwpCisJCQkgICAgdmFsdWUgPSBub3JtOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisJCSAgICB3aGlsZSAoKmN1ciAhPSAwKSB7CisJCQlpZiAoKCpjdXIgPT0gMHhkKSB8fCAoKmN1ciA9PSAweGEpIHx8ICgqY3VyID09IDB4OSkpIHsKKwkJCSAgICBnb3RvIHJldHVybjE7CisJCQl9IGVsc2UgeworCQkJICAgIGN1cisrOworCQkJfQorCQkgICAgfQorCQl9CisgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHYgPSB4bWxTY2hlbWFOZXdWYWx1ZShYTUxfU0NIRU1BU19OT1JNU1RSSU5HKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuc3RyID0geG1sU3RyZHVwKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICp2YWwgPSB2OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIHJldHVybjA7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfREVDSU1BTDp7CisgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbiwgbmVnLCBpbnRlZywgaGFzTGVhZGluZ1plcm9lczsKKwkJeG1sQ2hhciBjdmFsWzI1XTsKKwkJeG1sQ2hhciAqY3B0ciA9IGN2YWw7CQkKKworICAgICAgICAgICAgICAgIGlmICgoY3VyID09IE5VTEwpIHx8ICgqY3VyID09IDApKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisKKwkJLyoKKwkJKiB4czpkZWNpbWFsIGhhcyBhIHdoaXRlc3BhY2UtZmFjZXQgdmFsdWUgb2YgJ2NvbGxhcHNlJy4KKwkJKi8KKwkJaWYgKG5vcm1PblRoZUZseSkKKwkJICAgIHdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsKKworCQkvKgorCQkqIEZpcnN0IHdlIGhhbmRsZSBhbiBvcHRpb25hbCBzaWduLgorCQkqLworCQluZWcgPSAwOworICAgICAgICAgICAgICAgIGlmICgqY3VyID09ICctJykgeworCQkgICAgbmVnID0gMTsKKyAgICAgICAgICAgICAgICAgICAgY3VyKys7CisJCX0gZWxzZSBpZiAoKmN1ciA9PSAnKycpCisgICAgICAgICAgICAgICAgICAgIGN1cisrOworCQkvKgorCQkqIERpc2FsbG93OiAiIiwgIi0iLCAiLSAiCisJCSovCisJCWlmICgqY3VyID09IDApCisJCSAgICBnb3RvIHJldHVybjE7CisJCS8qCisJCSAqIE5leHQgd2UgInByZS1wYXJzZSIgdGhlIG51bWJlciwgaW4gcHJlcGFyYXRpb24gZm9yIGNhbGxpbmcKKwkJICogdGhlIGNvbW1vbiByb3V0aW5lIHhtbFNjaGVtYVBhcnNlVUludC4gIFdlIGdldCByaWQgb2YgYW55CisJCSAqIGxlYWRpbmcgemVyb2VzIChiZWNhdXNlIHdlIGhhdmUgcmVzZXJ2ZWQgb25seSAyNSBjaGFycyksCisJCSAqIGFuZCBub3RlIHRoZSBwb3NpdGlvbiBvZiBhIGRlY2ltYWwgcG9pbnQuCisJCSAqLworCQlsZW4gPSAwOworCQlpbnRlZyA9IH4wdTsKKwkJaGFzTGVhZGluZ1plcm9lcyA9IDA7CisJCS8qCisJCSogU2tpcCBsZWFkaW5nIHplcm9lcy4KKwkJKi8KKwkJd2hpbGUgKCpjdXIgPT0gJzAnKSB7CisJCSAgICBjdXIrKzsKKwkJICAgIGhhc0xlYWRpbmdaZXJvZXMgPSAxOworCQl9CisJCWlmICgqY3VyICE9IDApIHsKKwkJICAgIGRvIHsKKwkJCWlmICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpIHsKKwkJCSAgICAqY3B0cisrID0gKmN1cisrOworCQkJICAgIGxlbisrOworCQkJfSBlbHNlIGlmICgqY3VyID09ICcuJykgeworCQkJICAgIGN1cisrOworCQkJICAgIGludGVnID0gbGVuOworCQkJICAgIGRvIHsKKwkJCQlpZiAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CisJCQkJICAgICpjcHRyKysgPSAqY3VyKys7CisJCQkJICAgIGxlbisrOworCQkJCX0gZWxzZQorCQkJCSAgICBicmVhazsKKwkJCSAgICB9IHdoaWxlIChsZW4gPCAyNCk7CisJCQkgICAgLyoKKwkJCSAgICAqIERpc2FsbG93ICIuIiBidXQgYWxsb3cgIjAwLiIKKwkJCSAgICAqLworCQkJICAgIGlmICgobGVuID09IDApICYmICghaGFzTGVhZGluZ1plcm9lcykpCisJCQkJZ290byByZXR1cm4xOworCQkJICAgIGJyZWFrOworCQkJfSBlbHNlCisJCQkgICAgYnJlYWs7CisJCSAgICB9IHdoaWxlIChsZW4gPCAyNCk7CisJCX0KKwkJaWYgKG5vcm1PblRoZUZseSkKKwkJICAgIHdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsKKwkJaWYgKCpjdXIgIT0gMCkKKwkJICAgIGdvdG8gcmV0dXJuMTsgLyogZXJyb3IgaWYgYW55IGV4dHJhbmVvdXMgY2hhcnMgKi8KKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX0RFQ0lNQUwpOworICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisJCQkvKgorCQkgCSogTm93IGV2YWx1YXRlIHRoZSBzaWduaWZpY2FudCBkaWdpdHMgb2YgdGhlIG51bWJlcgorCQkgCSovCisJCQlpZiAobGVuICE9IDApIHsKKwkJCSAgICAKKwkJCSAgICBpZiAoaW50ZWcgIT0gfjB1KSB7CisJCQkJLyoKKwkJCQkqIEdldCByaWQgb2YgdHJhaWxpbmcgemVyb2VzIGluIHRoZQorCQkJCSogZnJhY3Rpb25hbCBwYXJ0LgorCQkJCSovCisJCQkJd2hpbGUgKChsZW4gIT0gaW50ZWcpICYmICgqKGNwdHItMSkgPT0gJzAnKSkgeworCQkJCSAgICBjcHRyLS07CisJCQkJICAgIGxlbi0tOworCQkJCX0KKwkJCSAgICB9CisJCQkgICAgLyoKKwkJCSAgICAqIFRlcm1pbmF0ZSB0aGUgKHByZXBhcnNlZCkgc3RyaW5nLgorCQkJICAgICovCisJCQkgICAgaWYgKGxlbiAhPSAwKSB7CisJCQkJKmNwdHIgPSAwOworCQkJCWNwdHIgPSBjdmFsOworCisJCQkJeG1sU2NoZW1hUGFyc2VVSW50KChjb25zdCB4bWxDaGFyICoqKSZjcHRyLAorCQkJCSAgICAmdi0+dmFsdWUuZGVjaW1hbC5sbywKKwkJCQkgICAgJnYtPnZhbHVlLmRlY2ltYWwubWksCisJCQkJICAgICZ2LT52YWx1ZS5kZWNpbWFsLmhpKTsKKwkJCSAgICB9CisJCQl9CisJCQkvKgorCQkJKiBTZXQgdGhlIHRvdGFsIGRpZ2l0cyB0byAxIGlmIGEgemVybyB2YWx1ZS4KKwkJCSovCisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kZWNpbWFsLnNpZ24gPSBuZWc7CisJCQlpZiAobGVuID09IDApIHsKKwkJCSAgICAvKiBTcGVlZHVwIGZvciB6ZXJvIHZhbHVlcy4gKi8KKwkJCSAgICB2LT52YWx1ZS5kZWNpbWFsLnRvdGFsID0gMTsKKwkJCX0gZWxzZSB7CisJCQkgICAgdi0+dmFsdWUuZGVjaW1hbC50b3RhbCA9IGxlbjsKKwkJCSAgICBpZiAoaW50ZWcgPT0gfjB1KQorCQkJCXYtPnZhbHVlLmRlY2ltYWwuZnJhYyA9IDA7CisJCQkgICAgZWxzZQorCQkJCXYtPnZhbHVlLmRlY2ltYWwuZnJhYyA9IGxlbiAtIGludGVnOworCQkJfQorICAgICAgICAgICAgICAgICAgICAgICAgKnZhbCA9IHY7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ290byByZXR1cm4wOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX1RJTUU6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfR0RBWToKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HTU9OVEg6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfR01PTlRIREFZOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0dZRUFSOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0dZRUFSTU9OVEg6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfREFURToKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19EQVRFVElNRToKKyAgICAgICAgICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRGF0ZXModHlwZS0+YnVpbHRJblR5cGUsIHZhbHVlLCB2YWwsCisJCW5vcm1PblRoZUZseSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19EVVJBVElPTjoKKyAgICAgICAgICAgIHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRHVyYXRpb24odHlwZSwgdmFsdWUsIHZhbCwKKwkJbm9ybU9uVGhlRmx5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0ZMT0FUOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0RPVUJMRTp7CisgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisgICAgICAgICAgICAgICAgaW50IG5lZyA9IDA7CisKKwkJaWYgKG5vcm1PblRoZUZseSkKKwkJICAgIHdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsKKworICAgICAgICAgICAgICAgIGlmICgoY3VyWzBdID09ICdOJykgJiYgKGN1clsxXSA9PSAnYScpICYmIChjdXJbMl0gPT0gJ04nKSkgeworICAgICAgICAgICAgICAgICAgICBjdXIgKz0gMzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCpjdXIgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSB4bWxTY2hlbWFUeXBlRmxvYXREZWYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfRkxPQVQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuZiA9IChmbG9hdCkgeG1sWFBhdGhOQU47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hRnJlZVZhbHVlKHYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX0RPVUJMRSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kID0geG1sWFBhdGhOQU47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sU2NoZW1hRnJlZVZhbHVlKHYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICp2YWwgPSB2OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCpjdXIgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgIG5lZyA9IDE7CisgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKGN1clswXSA9PSAnSScpICYmIChjdXJbMV0gPT0gJ04nKSAmJiAoY3VyWzJdID09ICdGJykpIHsKKyAgICAgICAgICAgICAgICAgICAgY3VyICs9IDM7CisgICAgICAgICAgICAgICAgICAgIGlmICgqY3VyICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0geG1sU2NoZW1hVHlwZUZsb2F0RGVmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX0ZMT0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5mID0gKGZsb2F0KSB4bWxYUGF0aE5JTkY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmYgPSAoZmxvYXQpIHhtbFhQYXRoUElORjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFGcmVlVmFsdWUodik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfRE9VQkxFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kID0geG1sWFBhdGhOSU5GOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kID0geG1sWFBhdGhQSU5GOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYUZyZWVWYWx1ZSh2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAqdmFsID0gdjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgobmVnID09IDApICYmICgqY3VyID09ICcrJykpCisgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIGlmICgoY3VyWzBdID09IDApIHx8IChjdXJbMF0gPT0gJysnKSB8fCAoY3VyWzBdID09ICctJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CisgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKmN1ciA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpCisgICAgICAgICAgICAgICAgICAgICAgICBjdXIrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCgqY3VyID09ICdlJykgfHwgKCpjdXIgPT0gJ0UnKSkgeworICAgICAgICAgICAgICAgICAgICBjdXIrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgqY3VyID09ICctJykgfHwgKCpjdXIgPT0gJysnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKQorICAgICAgICAgICAgICAgICAgICAgICAgY3VyKys7CisgICAgICAgICAgICAgICAgfQorCQlpZiAobm9ybU9uVGhlRmx5KQorCQkgICAgd2hpbGUgSVNfV1NQX0JMQU5LX0NIKCpjdXIpIGN1cisrOworCisgICAgICAgICAgICAgICAgaWYgKCpjdXIgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgIGlmICh2YWwgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSB4bWxTY2hlbWFUeXBlRmxvYXREZWYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB4bWxTY2hlbWFOZXdWYWx1ZShYTUxfU0NIRU1BU19GTE9BVCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisJCQkgICAgLyoKKwkJCSAgICAqIFRPRE86IHNzY2FuZiBzZWVtcyBub3QgdG8gZ2l2ZSB0aGUgY29ycmVjdAorCQkJICAgICogdmFsdWUgZm9yIGV4dHJlbWVseSBoaWdoL2xvdyB2YWx1ZXMuCisJCQkgICAgKiBFLmcuICIxRS0xNDkiIHJlc3VsdHMgaW4gemVyby4KKwkJCSAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzc2NhbmYoKGNvbnN0IGNoYXIgKikgdmFsdWUsICIlZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmKHYtPnZhbHVlLmYpKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp2YWwgPSB2OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYUZyZWVWYWx1ZSh2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB4bWxTY2hlbWFOZXdWYWx1ZShYTUxfU0NIRU1BU19ET1VCTEUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gTlVMTCkgeworCQkJICAgIC8qCisJCQkgICAgKiBUT0RPOiBzc2NhbmYgc2VlbXMgbm90IHRvIGdpdmUgdGhlIGNvcnJlY3QKKwkJCSAgICAqIHZhbHVlIGZvciBleHRyZW1lbHkgaGlnaC9sb3cgdmFsdWVzLgorCQkJICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNzY2FuZigoY29uc3QgY2hhciAqKSB2YWx1ZSwgIiVsZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmKHYtPnZhbHVlLmQpKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp2YWwgPSB2OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFNjaGVtYUZyZWVWYWx1ZSh2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIHJldHVybjA7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfQk9PTEVBTjp7CisgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisKKwkJaWYgKG5vcm1PblRoZUZseSkgeworCQkgICAgd2hpbGUgSVNfV1NQX0JMQU5LX0NIKCpjdXIpIGN1cisrOworCQkgICAgaWYgKCpjdXIgPT0gJzAnKSB7CisJCQlyZXQgPSAwOworCQkJY3VyKys7CisJCSAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJzEnKSB7CisJCQlyZXQgPSAxOworCQkJY3VyKys7CisJCSAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJ3QnKSB7CisJCQljdXIrKzsKKwkJCWlmICgoKmN1cisrID09ICdyJykgJiYgKCpjdXIrKyA9PSAndScpICYmCisJCQkgICAgKCpjdXIrKyA9PSAnZScpKSB7CisJCQkgICAgcmV0ID0gMTsKKwkJCX0gZWxzZQorCQkJICAgIGdvdG8gcmV0dXJuMTsKKwkJICAgIH0gZWxzZSBpZiAoKmN1ciA9PSAnZicpIHsKKwkJCWN1cisrOworCQkJaWYgKCgqY3VyKysgPT0gJ2EnKSAmJiAoKmN1cisrID09ICdsJykgJiYKKwkJCSAgICAoKmN1cisrID09ICdzJykgJiYgKCpjdXIrKyA9PSAnZScpKSB7CisJCQkgICAgcmV0ID0gMDsKKwkJCX0gZWxzZQorCQkJICAgIGdvdG8gcmV0dXJuMTsKKwkJICAgIH0gZWxzZQorCQkJZ290byByZXR1cm4xOworCQkgICAgaWYgKCpjdXIgIT0gMCkgeworCQkJd2hpbGUgSVNfV1NQX0JMQU5LX0NIKCpjdXIpIGN1cisrOworCQkJaWYgKCpjdXIgIT0gMCkKKwkJCSAgICBnb3RvIHJldHVybjE7CisJCSAgICB9CisJCX0gZWxzZSB7CisJCSAgICBpZiAoKGN1clswXSA9PSAnMCcpICYmIChjdXJbMV0gPT0gMCkpCisJCQlyZXQgPSAwOworCQkgICAgZWxzZSBpZiAoKGN1clswXSA9PSAnMScpICYmIChjdXJbMV0gPT0gMCkpCisJCQlyZXQgPSAxOworCQkgICAgZWxzZSBpZiAoKGN1clswXSA9PSAndCcpICYmIChjdXJbMV0gPT0gJ3InKQorCQkJJiYgKGN1clsyXSA9PSAndScpICYmIChjdXJbM10gPT0gJ2UnKQorCQkJJiYgKGN1cls0XSA9PSAwKSkKKwkJCXJldCA9IDE7CisJCSAgICBlbHNlIGlmICgoY3VyWzBdID09ICdmJykgJiYgKGN1clsxXSA9PSAnYScpCisJCQkmJiAoY3VyWzJdID09ICdsJykgJiYgKGN1clszXSA9PSAncycpCisJCQkmJiAoY3VyWzRdID09ICdlJykgJiYgKGN1cls1XSA9PSAwKSkKKwkJCXJldCA9IDA7CisJCSAgICBlbHNlCisJCQlnb3RvIHJldHVybjE7CisJCX0KKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX0JPT0xFQU4pOworICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5iID0gcmV0OworICAgICAgICAgICAgICAgICAgICAgICAgKnZhbCA9IHY7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19UT0tFTjp7CisgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWU7CisKKwkJaWYgKCEgbm9ybU9uVGhlRmx5KSB7CisJCSAgICB3aGlsZSAoKmN1ciAhPSAwKSB7CisJCQlpZiAoKCpjdXIgPT0gMHhkKSB8fCAoKmN1ciA9PSAweGEpIHx8ICgqY3VyID09IDB4OSkpIHsKKwkJCSAgICBnb3RvIHJldHVybjE7CisJCQl9IGVsc2UgaWYgKCpjdXIgPT0gJyAnKSB7CisJCQkgICAgY3VyKys7CisJCQkgICAgaWYgKCpjdXIgPT0gMCkKKwkJCQlnb3RvIHJldHVybjE7CisJCQkgICAgaWYgKCpjdXIgPT0gJyAnKQorCQkJCWdvdG8gcmV0dXJuMTsKKwkJCX0gZWxzZSB7CisJCQkgICAgY3VyKys7CisJCQl9CisJCSAgICB9CQkgICAgCisJCX0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHYgPSB4bWxTY2hlbWFOZXdWYWx1ZShYTUxfU0NIRU1BU19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLnN0ciA9IHhtbFN0cmR1cCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAqdmFsID0gdjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ290byByZXR1cm4wOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0xBTkdVQUdFOgorCSAgICBpZiAobm9ybU9uVGhlRmx5KSB7CQkgICAgCisJCW5vcm0gPSB4bWxTY2hlbWFDb2xsYXBzZVN0cmluZyh2YWx1ZSk7CisJCWlmIChub3JtICE9IE5VTEwpCisJCSAgICB2YWx1ZSA9IG5vcm07CisJICAgIH0KKyAgICAgICAgICAgIGlmICh4bWxDaGVja0xhbmd1YWdlSUQodmFsdWUpID09IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX0xBTkdVQUdFKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuc3RyID0geG1sU3RyZHVwKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICp2YWwgPSB2OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIHJldHVybjA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTk1UT0tFTjoKKyAgICAgICAgICAgIGlmICh4bWxWYWxpZGF0ZU5NVG9rZW4odmFsdWUsIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX05NVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5zdHIgPSB4bWxTdHJkdXAodmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgKnZhbCA9IHY7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OTVRPS0VOUzoKKyAgICAgICAgICAgIHJldCA9IHhtbFNjaGVtYVZhbEF0b21pY0xpc3ROb2RlKHhtbFNjaGVtYVR5cGVObXRva2VuRGVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIHZhbCwgbm9kZSk7CisgICAgICAgICAgICBpZiAocmV0ID4gMCkKKyAgICAgICAgICAgICAgICByZXQgPSAwOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTkFNRToKKyAgICAgICAgICAgIHJldCA9IHhtbFZhbGlkYXRlTmFtZSh2YWx1ZSwgMSk7CisgICAgICAgICAgICBpZiAoKHJldCA9PSAwKSAmJiAodmFsICE9IE5VTEwpICYmICh2YWx1ZSAhPSBOVUxMKSkgeworCQl2ID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfTkFNRSk7CisJCWlmICh2ICE9IE5VTEwpIHsKKwkJICAgICBjb25zdCB4bWxDaGFyICpzdGFydCA9IHZhbHVlLCAqZW5kOworCQkgICAgIHdoaWxlIChJU19CTEFOS19DSCgqc3RhcnQpKSBzdGFydCsrOworCQkgICAgIGVuZCA9IHN0YXJ0OworCQkgICAgIHdoaWxlICgoKmVuZCAhPSAwKSAmJiAoIUlTX0JMQU5LX0NIKCplbmQpKSkgZW5kKys7CisJCSAgICAgdi0+dmFsdWUuc3RyID0geG1sU3RybmR1cChzdGFydCwgZW5kIC0gc3RhcnQpOworCQkgICAgKnZhbCA9IHY7CisJCX0gZWxzZSB7CisJCSAgICBnb3RvIGVycm9yOworCQl9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6eworICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKnVyaSA9IE5VTEw7CisgICAgICAgICAgICAgICAgeG1sQ2hhciAqbG9jYWwgPSBOVUxMOworCisgICAgICAgICAgICAgICAgcmV0ID0geG1sVmFsaWRhdGVRTmFtZSh2YWx1ZSwgMSk7CisJCWlmIChyZXQgIT0gMCkKKwkJICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbENoYXIgKnByZWZpeDsKKwkJICAgIHhtbE5zUHRyIG5zOworCisgICAgICAgICAgICAgICAgICAgIGxvY2FsID0geG1sU3BsaXRRTmFtZTIodmFsdWUsICZwcmVmaXgpOworCQkgICAgbnMgPSB4bWxTZWFyY2hOcyhub2RlLT5kb2MsIG5vZGUsIHByZWZpeCk7CisJCSAgICBpZiAoKG5zID09IE5VTEwpICYmIChwcmVmaXggIT0gTlVMTCkpIHsKKwkJCXhtbEZyZWUocHJlZml4KTsKKwkJCWlmIChsb2NhbCAhPSBOVUxMKQorCQkJICAgIHhtbEZyZWUobG9jYWwpOworCQkJZ290byByZXR1cm4xOworCQkgICAgfQorCQkgICAgaWYgKG5zICE9IE5VTEwpCisJCQl1cmkgPSBucy0+aHJlZjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShwcmVmaXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX1FOQU1FKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkgeworCQkJaWYgKGxvY2FsICE9IE5VTEwpCisJCQkgICAgeG1sRnJlZShsb2NhbCk7CisJCQlnb3RvIGVycm9yOworCQkgICAgfQorCQkgICAgaWYgKGxvY2FsICE9IE5VTEwpCisJCQl2LT52YWx1ZS5xbmFtZS5uYW1lID0gbG9jYWw7CisJCSAgICBlbHNlCisJCQl2LT52YWx1ZS5xbmFtZS5uYW1lID0geG1sU3RyZHVwKHZhbHVlKTsKKwkJICAgIGlmICh1cmkgIT0gTlVMTCkKKwkJCXYtPnZhbHVlLnFuYW1lLnVyaSA9IHhtbFN0cmR1cCh1cmkpOworCQkgICAgKnZhbCA9IHY7CisgICAgICAgICAgICAgICAgfSBlbHNlCisJCSAgICBpZiAobG9jYWwgIT0gTlVMTCkKKwkJCXhtbEZyZWUobG9jYWwpOworICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OQ05BTUU6CisgICAgICAgICAgICByZXQgPSB4bWxWYWxpZGF0ZU5DTmFtZSh2YWx1ZSwgMSk7CisgICAgICAgICAgICBpZiAoKHJldCA9PSAwKSAmJiAodmFsICE9IE5VTEwpKSB7CisgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX05DTkFNRSk7CisgICAgICAgICAgICAgICAgaWYgKHYgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5zdHIgPSB4bWxTdHJkdXAodmFsdWUpOworICAgICAgICAgICAgICAgICAgICAqdmFsID0gdjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19JRDoKKyAgICAgICAgICAgIHJldCA9IHhtbFZhbGlkYXRlTkNOYW1lKHZhbHVlLCAxKTsKKyAgICAgICAgICAgIGlmICgocmV0ID09IDApICYmICh2YWwgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICB2ID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfSUQpOworICAgICAgICAgICAgICAgIGlmICh2ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuc3RyID0geG1sU3RyZHVwKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgKnZhbCA9IHY7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKHJldCA9PSAwKSAmJiAobm9kZSAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgIChub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkpIHsKKyAgICAgICAgICAgICAgICB4bWxBdHRyUHRyIGF0dHIgPSAoeG1sQXR0clB0cikgbm9kZTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogTk9URTogdGhlIElEbmVzcyBtaWdodCBoYXZlIGFscmVhZHkgYmUgZGVjbGFyZWQgaW4gdGhlIERURAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmIChhdHRyLT5hdHlwZSAhPSBYTUxfQVRUUklCVVRFX0lEKSB7CisgICAgICAgICAgICAgICAgICAgIHhtbElEUHRyIHJlczsKKyAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqc3RyaXA7CisKKyAgICAgICAgICAgICAgICAgICAgc3RyaXAgPSB4bWxTY2hlbWFTdHJpcCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpcCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSB4bWxBZGRJRChOVUxMLCBub2RlLT5kb2MsIHN0cmlwLCBhdHRyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUoc3RyaXApOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHhtbEFkZElEKE5VTEwsIG5vZGUtPmRvYywgdmFsdWUsIGF0dHIpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyLT5hdHlwZSA9IFhNTF9BVFRSSUJVVEVfSUQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfSURSRUY6CisgICAgICAgICAgICByZXQgPSB4bWxWYWxpZGF0ZU5DTmFtZSh2YWx1ZSwgMSk7CisgICAgICAgICAgICBpZiAoKHJldCA9PSAwKSAmJiAodmFsICE9IE5VTEwpKSB7CisJCXYgPSB4bWxTY2hlbWFOZXdWYWx1ZShYTUxfU0NIRU1BU19JRFJFRik7CisJCWlmICh2ID09IE5VTEwpCisJCSAgICBnb3RvIGVycm9yOworCQl2LT52YWx1ZS5zdHIgPSB4bWxTdHJkdXAodmFsdWUpOworCQkqdmFsID0gdjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgocmV0ID09IDApICYmIChub2RlICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSkgeworICAgICAgICAgICAgICAgIHhtbEF0dHJQdHIgYXR0ciA9ICh4bWxBdHRyUHRyKSBub2RlOworICAgICAgICAgICAgICAgIHhtbENoYXIgKnN0cmlwOworCisgICAgICAgICAgICAgICAgc3RyaXAgPSB4bWxTY2hlbWFTdHJpcCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHN0cmlwICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sQWRkUmVmKE5VTEwsIG5vZGUtPmRvYywgc3RyaXAsIGF0dHIpOworICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKHN0cmlwKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeG1sQWRkUmVmKE5VTEwsIG5vZGUtPmRvYywgdmFsdWUsIGF0dHIpOworICAgICAgICAgICAgICAgIGF0dHItPmF0eXBlID0gWE1MX0FUVFJJQlVURV9JRFJFRjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19JRFJFRlM6CisgICAgICAgICAgICByZXQgPSB4bWxTY2hlbWFWYWxBdG9taWNMaXN0Tm9kZSh4bWxTY2hlbWFUeXBlSWRyZWZEZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgdmFsLCBub2RlKTsKKyAgICAgICAgICAgIGlmIChyZXQgPCAwKQorICAgICAgICAgICAgICAgIHJldCA9IDI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgIGlmICgocmV0ID09IDApICYmIChub2RlICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSkgeworICAgICAgICAgICAgICAgIHhtbEF0dHJQdHIgYXR0ciA9ICh4bWxBdHRyUHRyKSBub2RlOworCisgICAgICAgICAgICAgICAgYXR0ci0+YXR5cGUgPSBYTUxfQVRUUklCVVRFX0lEUkVGUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19FTlRJVFk6eworICAgICAgICAgICAgICAgIHhtbENoYXIgKnN0cmlwOworCisgICAgICAgICAgICAgICAgcmV0ID0geG1sVmFsaWRhdGVOQ05hbWUodmFsdWUsIDEpOworICAgICAgICAgICAgICAgIGlmICgobm9kZSA9PSBOVUxMKSB8fCAobm9kZS0+ZG9jID09IE5VTEwpKQorICAgICAgICAgICAgICAgICAgICByZXQgPSAzOworICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB4bWxFbnRpdHlQdHIgZW50OworCisgICAgICAgICAgICAgICAgICAgIHN0cmlwID0geG1sU2NoZW1hU3RyaXAodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaXAgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZW50ID0geG1sR2V0RG9jRW50aXR5KG5vZGUtPmRvYywgc3RyaXApOworICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShzdHJpcCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbnQgPSB4bWxHZXREb2NFbnRpdHkobm9kZS0+ZG9jLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChlbnQgPT0gTlVMTCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIChlbnQtPmV0eXBlICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0VYVEVSTkFMX0dFTkVSQUxfVU5QQVJTRURfRU5USVRZKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgocmV0ID09IDApICYmICh2YWwgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAgICAgVE9ETzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChyZXQgPT0gMCkgJiYgKG5vZGUgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSkgeworICAgICAgICAgICAgICAgICAgICB4bWxBdHRyUHRyIGF0dHIgPSAoeG1sQXR0clB0cikgbm9kZTsKKworICAgICAgICAgICAgICAgICAgICBhdHRyLT5hdHlwZSA9IFhNTF9BVFRSSUJVVEVfRU5USVRZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfRU5USVRJRVM6CisgICAgICAgICAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKG5vZGUtPmRvYyA9PSBOVUxMKSkKKyAgICAgICAgICAgICAgICBnb3RvIHJldHVybjM7CisgICAgICAgICAgICByZXQgPSB4bWxTY2hlbWFWYWxBdG9taWNMaXN0Tm9kZSh4bWxTY2hlbWFUeXBlRW50aXR5RGVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIHZhbCwgbm9kZSk7CisgICAgICAgICAgICBpZiAocmV0IDw9IDApCisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQgPSAwOworICAgICAgICAgICAgaWYgKChyZXQgPT0gMCkgJiYgKG5vZGUgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAobm9kZS0+dHlwZSA9PSBYTUxfQVRUUklCVVRFX05PREUpKSB7CisgICAgICAgICAgICAgICAgeG1sQXR0clB0ciBhdHRyID0gKHhtbEF0dHJQdHIpIG5vZGU7CisKKyAgICAgICAgICAgICAgICBhdHRyLT5hdHlwZSA9IFhNTF9BVFRSSUJVVEVfRU5USVRJRVM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046eworICAgICAgICAgICAgICAgIHhtbENoYXIgKnVyaSA9IE5VTEw7CisgICAgICAgICAgICAgICAgeG1sQ2hhciAqbG9jYWwgPSBOVUxMOworCisgICAgICAgICAgICAgICAgcmV0ID0geG1sVmFsaWRhdGVRTmFtZSh2YWx1ZSwgMSk7CisgICAgICAgICAgICAgICAgaWYgKChyZXQgPT0gMCkgJiYgKG5vZGUgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAgICAgeG1sQ2hhciAqcHJlZml4OworCisgICAgICAgICAgICAgICAgICAgIGxvY2FsID0geG1sU3BsaXRRTmFtZTIodmFsdWUsICZwcmVmaXgpOworICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5zUHRyIG5zOworCisgICAgICAgICAgICAgICAgICAgICAgICBucyA9IHhtbFNlYXJjaE5zKG5vZGUtPmRvYywgbm9kZSwgcHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChucyA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh2YWwgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmkgPSB4bWxTdHJkdXAobnMtPmhyZWYpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgobG9jYWwgIT0gTlVMTCkgJiYgKCh2YWwgPT0gTlVMTCkgfHwgKHJldCAhPSAwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxGcmVlKGxvY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZShwcmVmaXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKG5vZGUtPmRvYyA9PSBOVUxMKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gMzsKKyAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0geG1sVmFsaWRhdGVOb3RhdGlvblVzZShOVUxMLCBub2RlLT5kb2MsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChyZXQgPT0gMCkgJiYgKHZhbCAhPSBOVUxMKSkgeworICAgICAgICAgICAgICAgICAgICB2ID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfTk9UQVRJT04pOworICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWwgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5xbmFtZS5uYW1lID0gbG9jYWw7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUucW5hbWUubmFtZSA9IHhtbFN0cmR1cCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJpICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUucW5hbWUudXJpID0gdXJpOworCisgICAgICAgICAgICAgICAgICAgICAgICAqdmFsID0gdjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUobG9jYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVyaSAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUodXJpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0FOWVVSSTp7CQkKKyAgICAgICAgICAgICAgICBpZiAoKnZhbHVlICE9IDApIHsKKwkJICAgIHhtbFVSSVB0ciB1cmk7CisJCSAgICB4bWxDaGFyICp0bXB2YWwsICpjdXI7CisJCSAgICBpZiAobm9ybU9uVGhlRmx5KSB7CQkgICAgCisJCQlub3JtID0geG1sU2NoZW1hQ29sbGFwc2VTdHJpbmcodmFsdWUpOworCQkJaWYgKG5vcm0gIT0gTlVMTCkKKwkJCSAgICB2YWx1ZSA9IG5vcm07CisJCSAgICB9CisJCSAgICB0bXB2YWwgPSB4bWxTdHJkdXAodmFsdWUpOworCQkgICAgZm9yIChjdXIgPSB0bXB2YWw7ICpjdXI7ICsrY3VyKSB7CisJCQlpZiAoKmN1ciA8IDMyIHx8ICpjdXIgPj0gMTI3IHx8ICpjdXIgPT0gJyAnIHx8CisJCQkgICAgKmN1ciA9PSAnPCcgfHwgKmN1ciA9PSAnPicgfHwgKmN1ciA9PSAnIicgfHwKKwkJCSAgICAqY3VyID09ICd7JyB8fCAqY3VyID09ICd9JyB8fCAqY3VyID09ICd8JyB8fAorCQkJICAgICpjdXIgPT0gJ1xcJyB8fCAqY3VyID09ICdeJyB8fCAqY3VyID09ICdgJyB8fAorCQkJICAgICpjdXIgPT0gJ1wnJykKKwkJCSAgICAqY3VyID0gJ18nOworCQkgICAgfQorICAgICAgICAgICAgICAgICAgICB1cmkgPSB4bWxQYXJzZVVSSSgoY29uc3QgY2hhciAqKSB0bXB2YWwpOworCQkgICAgeG1sRnJlZSh0bXB2YWwpOworICAgICAgICAgICAgICAgICAgICBpZiAodXJpID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIHhtbEZyZWVVUkkodXJpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX0FOWVVSSSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5zdHIgPSB4bWxTdHJkdXAodmFsdWUpOworICAgICAgICAgICAgICAgICAgICAqdmFsID0gdjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ290byByZXR1cm4wOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0hFWEJJTkFSWTp7CisgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqY3VyID0gdmFsdWUsICpzdGFydDsKKyAgICAgICAgICAgICAgICB4bWxDaGFyICpiYXNlOworICAgICAgICAgICAgICAgIGludCB0b3RhbCwgaSA9IDA7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKworCQlpZiAobm9ybU9uVGhlRmx5KQorCQkgICAgd2hpbGUgSVNfV1NQX0JMQU5LX0NIKCpjdXIpIGN1cisrOworCisJCXN0YXJ0ID0gY3VyOworICAgICAgICAgICAgICAgIHdoaWxlICgoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAoKCpjdXIgPj0gJ0EnKSAmJiAoKmN1ciA8PSAnRicpKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAoKCpjdXIgPj0gJ2EnKSAmJiAoKmN1ciA8PSAnZicpKSkgeworICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIH0KKwkJaWYgKG5vcm1PblRoZUZseSkKKwkJICAgIHdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsKKworICAgICAgICAgICAgICAgIGlmICgqY3VyICE9IDApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICBpZiAoKGkgJSAyKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisKKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKworICAgICAgICAgICAgICAgICAgICB2ID0geG1sU2NoZW1hTmV3VmFsdWUoWE1MX1NDSEVNQVNfSEVYQklOQVJZKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisJCSAgICAvKgorCQkgICAgKiBDb3B5IG9ubHkgdGhlIG5vcm1hbGl6ZWQgcGllY2UuCisJCSAgICAqIENSSVRJQ0FMIFRPRE86IENoZWNrIHRoaXMuCisJCSAgICAqLworICAgICAgICAgICAgICAgICAgICBjdXIgPSB4bWxTdHJuZHVwKHN0YXJ0LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJCSAgICAgICAgeG1sU2NoZW1hVHlwZUVyck1lbW9yeShub2RlLCAiYWxsb2NhdGluZyBoZXhiaW4gZGF0YSIpOworICAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZSh2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHRvdGFsID0gaSAvIDI7ICAgICAgLyogbnVtYmVyIG9mIG9jdGV0cyAqLworCisgICAgICAgICAgICAgICAgICAgIGJhc2UgPSAoeG1sQ2hhciAqKSBjdXI7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKmJhc2UgPj0gJ2EnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICpiYXNlID0gKmJhc2UgLSAoJ2EnIC0gJ0EnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmhleC5zdHIgPSAoeG1sQ2hhciAqKSBjdXI7CisgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmhleC50b3RhbCA9IHRvdGFsOworICAgICAgICAgICAgICAgICAgICAqdmFsID0gdjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ290byByZXR1cm4wOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWTp7CisgICAgICAgICAgICAgICAgLyogSVNTVUU6CisgICAgICAgICAgICAgICAgICogCisgICAgICAgICAgICAgICAgICogSWdub3JlIGFsbCBzdHJheSBjaGFyYWN0ZXJzPyAoeWVzLCBjdXJyZW50bHkpCisgICAgICAgICAgICAgICAgICogV29ycnkgYWJvdXQgbG9uZyBsaW5lcz8gKG5vLCBjdXJyZW50bHkpCisgICAgICAgICAgICAgICAgICogCisgICAgICAgICAgICAgICAgICogcmZjMjA0NS50eHQ6CisgICAgICAgICAgICAgICAgICogCisgICAgICAgICAgICAgICAgICogIlRoZSBlbmNvZGVkIG91dHB1dCBzdHJlYW0gbXVzdCBiZSByZXByZXNlbnRlZCBpbiBsaW5lcyBvZgorICAgICAgICAgICAgICAgICAqIG5vIG1vcmUgdGhhbiA3NiBjaGFyYWN0ZXJzIGVhY2guICBBbGwgbGluZSBicmVha3Mgb3Igb3RoZXIKKyAgICAgICAgICAgICAgICAgKiBjaGFyYWN0ZXJzIG5vdCBmb3VuZCBpbiBUYWJsZSAxIG11c3QgYmUgaWdub3JlZCBieSBkZWNvZGluZworICAgICAgICAgICAgICAgICAqIHNvZnR3YXJlLiAgSW4gYmFzZTY0IGRhdGEsIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiB0aG9zZSBpbgorICAgICAgICAgICAgICAgICAqIFRhYmxlIDEsIGxpbmUgYnJlYWtzLCBhbmQgb3RoZXIgd2hpdGUgc3BhY2UgcHJvYmFibHkKKyAgICAgICAgICAgICAgICAgKiBpbmRpY2F0ZSBhIHRyYW5zbWlzc2lvbiBlcnJvciwgYWJvdXQgd2hpY2ggYSB3YXJuaW5nCisgICAgICAgICAgICAgICAgICogbWVzc2FnZSBvciBldmVuIGEgbWVzc2FnZSByZWplY3Rpb24gbWlnaHQgYmUgYXBwcm9wcmlhdGUKKyAgICAgICAgICAgICAgICAgKiB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMuIiAqLworICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IHZhbHVlOworICAgICAgICAgICAgICAgIHhtbENoYXIgKmJhc2U7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsLCBpID0gMCwgcGFkID0gMDsKKworICAgICAgICAgICAgICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworCisgICAgICAgICAgICAgICAgZm9yICg7ICpjdXI7ICsrY3VyKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkZWNjOworCisgICAgICAgICAgICAgICAgICAgIGRlY2MgPSBfeG1sU2NoZW1hQmFzZTY0RGVjb2RlKCpjdXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVjYyA8IDApIDsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVjYyA8IDY0KQorICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yICg7ICpjdXI7ICsrY3VyKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkZWNjOworCisgICAgICAgICAgICAgICAgICAgIGRlY2MgPSBfeG1sU2NoZW1hQmFzZTY0RGVjb2RlKCpjdXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVjYyA8IDApIDsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVjYyA8IDY0KQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVjYyA9PSA2NCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZCsrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIHJmYzIwNDUudHh0OiAiU3BlY2lhbCBwcm9jZXNzaW5nIGlzIHBlcmZvcm1lZCBpZiBmZXdlciB0aGFuCisgICAgICAgICAgICAgICAgICogMjQgYml0cyBhcmUgYXZhaWxhYmxlIGF0IHRoZSBlbmQgb2YgdGhlIGRhdGEgYmVpbmcgZW5jb2RlZC4KKyAgICAgICAgICAgICAgICAgKiBBIGZ1bGwgZW5jb2RpbmcgcXVhbnR1bSBpcyBhbHdheXMgY29tcGxldGVkIGF0IHRoZSBlbmQgb2YgYQorICAgICAgICAgICAgICAgICAqIGJvZHkuICBXaGVuIGZld2VyIHRoYW4gMjQgaW5wdXQgYml0cyBhcmUgYXZhaWxhYmxlIGluIGFuCisgICAgICAgICAgICAgICAgICogaW5wdXQgZ3JvdXAsIHplcm8gYml0cyBhcmUgYWRkZWQgKG9uIHRoZSByaWdodCkgdG8gZm9ybSBhbgorICAgICAgICAgICAgICAgICAqIGludGVncmFsIG51bWJlciBvZiA2LWJpdCBncm91cHMuICBQYWRkaW5nIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAgICAgICAgICogZGF0YSBpcyBwZXJmb3JtZWQgdXNpbmcgdGhlICI9IiBjaGFyYWN0ZXIuICBTaW5jZSBhbGwKKyAgICAgICAgICAgICAgICAgKiBiYXNlNjQgaW5wdXQgaXMgYW4gaW50ZWdyYWwgbnVtYmVyIG9mIG9jdGV0cywgb25seSB0aGUKKyAgICAgICAgICAgICAgICAgKiBmb2xsb3dpbmcgY2FzZXMgY2FuIGFyaXNlOiAoMSkgdGhlIGZpbmFsIHF1YW50dW0gb2YKKyAgICAgICAgICAgICAgICAgKiBlbmNvZGluZyBpbnB1dCBpcyBhbiBpbnRlZ3JhbCBtdWx0aXBsZSBvZiAyNCBiaXRzOyBoZXJlLAorICAgICAgICAgICAgICAgICAqIHRoZSBmaW5hbCB1bml0IG9mIGVuY29kZWQgb3V0cHV0IHdpbGwgYmUgYW4gaW50ZWdyYWwKKyAgICAgICAgICAgICAgICAgKiBtdWx0aXBsZSBvZmluZGVudDogU3RhbmRhcmQgaW5wdXQ6NzAxOiBXYXJuaW5nOm9sZCBzdHlsZQorCQkgKiBhc3NpZ25tZW50IGFtYmlndWl0eSBpbiAiPSoiLiAgQXNzdW1pbmcgIj0gKiIgNCBjaGFyYWN0ZXJzCisJCSAqIHdpdGggbm8gIj0iIHBhZGRpbmcsICgyKSB0aGUgZmluYWwKKyAgICAgICAgICAgICAgICAgKiBxdWFudHVtIG9mIGVuY29kaW5nIGlucHV0IGlzIGV4YWN0bHkgOCBiaXRzOyBoZXJlLCB0aGUKKyAgICAgICAgICAgICAgICAgKiBmaW5hbCB1bml0IG9mIGVuY29kZWQgb3V0cHV0IHdpbGwgYmUgdHdvIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgKiBmb2xsb3dlZCBieSB0d28gIj0iIHBhZGRpbmcgY2hhcmFjdGVycywgb3IgKDMpIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAqIHF1YW50dW0gb2YgZW5jb2RpbmcgaW5wdXQgaXMgZXhhY3RseSAxNiBiaXRzOyBoZXJlLCB0aGUKKyAgICAgICAgICAgICAgICAgKiBmaW5hbCB1bml0IG9mIGVuY29kZWQgb3V0cHV0IHdpbGwgYmUgdGhyZWUgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICAqIGZvbGxvd2VkIGJ5IG9uZSAiPSIgcGFkZGluZyBjaGFyYWN0ZXIuIiAqLworCisgICAgICAgICAgICAgICAgdG90YWwgPSAzICogKGkgLyA0KTsKKyAgICAgICAgICAgICAgICBpZiAocGFkID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgJSA0ICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWQgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGVjYzsKKworICAgICAgICAgICAgICAgICAgICBpZiAoaSAlIDQgIT0gMykKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChkZWNjID0gX3htbFNjaGVtYUJhc2U2NERlY29kZSgqY3VyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjYyA8IDApIHx8IChkZWNjID4gNjMpOworICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2MgPSBfeG1sU2NoZW1hQmFzZTY0RGVjb2RlKCpjdXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgLS1jdXI7CisgICAgICAgICAgICAgICAgICAgIC8qIDE2Yml0cyBpbiAyNGJpdHMgbWVhbnMgMiBwYWQgYml0czogbm5ubm5uIG5ubW1tbSBtbW1tMDAqLworICAgICAgICAgICAgICAgICAgICAvKiAwMDExMTEwMCAtPiAweDNjICovCisgICAgICAgICAgICAgICAgICAgIGlmIChkZWNjICYgfjB4M2MpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWQgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGVjYzsKKworICAgICAgICAgICAgICAgICAgICBpZiAoaSAlIDQgIT0gMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChkZWNjID0gX3htbFNjaGVtYUJhc2U2NERlY29kZSgqY3VyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjYyA8IDApIHx8IChkZWNjID4gNjMpOworICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2MgPSBfeG1sU2NoZW1hQmFzZTY0RGVjb2RlKCpjdXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgLS1jdXI7CisgICAgICAgICAgICAgICAgICAgIC8qIDhiaXRzIGluIDEyYml0cyBtZWFucyA0IHBhZCBiaXRzOiBubm5ubm4gbm4wMDAwICovCisgICAgICAgICAgICAgICAgICAgIC8qIDAwMTEwMDAwIC0+IDB4MzAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlY2MgJiB+MHgzMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworCisgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHYgPSB4bWxTY2hlbWFOZXdWYWx1ZShYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlkpOworICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgYmFzZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoKGkgKyBwYWQgKyAxKSAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhtbENoYXIpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2UgPT0gTlVMTCkgeworCQkgICAgICAgIHhtbFNjaGVtYVR5cGVFcnJNZW1vcnkobm9kZSwgImFsbG9jYXRpbmcgYmFzZTY0IGRhdGEiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWUodik7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuYmFzZTY0LnN0ciA9IGJhc2U7CisgICAgICAgICAgICAgICAgICAgIGZvciAoY3VyID0gdmFsdWU7ICpjdXI7ICsrY3VyKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF94bWxTY2hlbWFCYXNlNjREZWNvZGUoKmN1cikgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpiYXNlID0gKmN1cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2Jhc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICpiYXNlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuYmFzZTY0LnRvdGFsID0gdG90YWw7CisgICAgICAgICAgICAgICAgICAgICp2YWwgPSB2OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIHJldHVybjA7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfSU5URUdFUjoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19QSU5URUdFUjoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OUElOVEVHRVI6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTklOVEVHRVI6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTk5JTlRFR0VSOnsKKyAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpjdXIgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvLCBtaSwgaGk7CisgICAgICAgICAgICAgICAgaW50IHNpZ24gPSAwOworCisgICAgICAgICAgICAgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisJCWlmIChub3JtT25UaGVGbHkpCisJCSAgICB3aGlsZSBJU19XU1BfQkxBTktfQ0goKmN1cikgY3VyKys7CisgICAgICAgICAgICAgICAgaWYgKCpjdXIgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAxOworICAgICAgICAgICAgICAgICAgICBjdXIrKzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJysnKQorICAgICAgICAgICAgICAgICAgICBjdXIrKzsKKyAgICAgICAgICAgICAgICByZXQgPSB4bWxTY2hlbWFQYXJzZVVJbnQoJmN1ciwgJmxvLCAmbWksICZoaSk7CisgICAgICAgICAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKwkJaWYgKG5vcm1PblRoZUZseSkKKwkJICAgIHdoaWxlIElTX1dTUF9CTEFOS19DSCgqY3VyKSBjdXIrKzsKKyAgICAgICAgICAgICAgICBpZiAoKmN1ciAhPSAwKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUtPmJ1aWx0SW5UeXBlID09IFhNTF9TQ0hFTUFTX05QSU5URUdFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHNpZ24gPT0gMCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICgoaGkgIT0gMCkgfHwgKG1pICE9IDApIHx8IChsbyAhPSAwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19QSU5URUdFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbiA9PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICBpZiAoKGhpID09IDApICYmIChtaSA9PSAwKSAmJiAobG8gPT0gMCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19OSU5URUdFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbiA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICBpZiAoKGhpID09IDApICYmIChtaSA9PSAwKSAmJiAobG8gPT0gMCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19OTklOVEVHRVIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChzaWduID09IDEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoKGhpICE9IDApIHx8IChtaSAhPSAwKSB8fCAobG8gIT0gMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IHhtbFNjaGVtYU5ld1ZhbHVlKHR5cGUtPmJ1aWx0SW5UeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT0gTlVMTCkgeworCQkJaWYgKHJldCA9PSAwKQorCQkJICAgIHJldCsrOworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuZGVjaW1hbC5sbyA9IGxvOworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuZGVjaW1hbC5taSA9IG1pOworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuZGVjaW1hbC5oaSA9IGhpOworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuZGVjaW1hbC5zaWduID0gc2lnbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmRlY2ltYWwuZnJhYyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kZWNpbWFsLnRvdGFsID0gcmV0OworICAgICAgICAgICAgICAgICAgICAgICAgKnZhbCA9IHY7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ290byByZXR1cm4wOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0xPTkc6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfQllURToKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19TSE9SVDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19JTlQ6eworICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IHZhbHVlOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG8sIG1pLCBoaTsKKyAgICAgICAgICAgICAgICBpbnQgc2lnbiA9IDA7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICBpZiAoKmN1ciA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICAgICAgc2lnbiA9IDE7CisgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKmN1ciA9PSAnKycpCisgICAgICAgICAgICAgICAgICAgIGN1cisrOworICAgICAgICAgICAgICAgIHJldCA9IHhtbFNjaGVtYVBhcnNlVUludCgmY3VyLCAmbG8sICZtaSwgJmhpKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgIGlmICgqY3VyICE9IDApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfTE9ORykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaGkgPj0gOTIyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGkgPiA5MjIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pID49IDMzNzIwMzY4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pID4gMzM3MjAzNjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHNpZ24gPT0gMCkgJiYgKGxvID4gNTQ3NzU4MDcpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzaWduID09IDEpICYmIChsbyA+IDU0Nzc1ODA4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19JTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhpICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtaSA+PSAyMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pID4gMjEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzaWduID09IDApICYmIChsbyA+IDQ3NDgzNjQ3KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHNpZ24gPT0gMSkgJiYgKGxvID4gNDc0ODM2NDgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfU0hPUlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtaSAhPSAwKSB8fCAoaGkgIT0gMCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIGlmICgoc2lnbiA9PSAxKSAmJiAobG8gPiAzMjc2OCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIGlmICgoc2lnbiA9PSAwKSAmJiAobG8gPiAzMjc2NykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19CWVRFKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgobWkgIT0gMCkgfHwgKGhpICE9IDApKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICBpZiAoKHNpZ24gPT0gMSkgJiYgKGxvID4gMTI4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChzaWduID09IDApICYmIChsbyA+IDEyNykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWwgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB2ID0geG1sU2NoZW1hTmV3VmFsdWUodHlwZS0+YnVpbHRJblR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAodiAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kZWNpbWFsLmxvID0gbG87CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kZWNpbWFsLm1pID0gbWk7CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kZWNpbWFsLmhpID0gaGk7CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kZWNpbWFsLnNpZ24gPSBzaWduOworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuZGVjaW1hbC5mcmFjID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmRlY2ltYWwudG90YWwgPSByZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAqdmFsID0gdjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIHJldHVybjA7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVUlOVDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19VTE9ORzoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19VU0hPUlQ6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVUJZVEU6eworICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IHZhbHVlOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG8sIG1pLCBoaTsKKworICAgICAgICAgICAgICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgIHJldCA9IHhtbFNjaGVtYVBhcnNlVUludCgmY3VyLCAmbG8sICZtaSwgJmhpKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgIGlmICgqY3VyICE9IDApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfVUxPTkcpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhpID49IDE4NDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaSA+IDE4NDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pID49IDY3NDQwNzM3KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pID4gNjc0NDA3MzcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG8gPiA5NTUxNjE1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUtPmJ1aWx0SW5UeXBlID09IFhNTF9TQ0hFTUFTX1VJTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhpICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtaSA+PSA0MikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pID4gNDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvID4gOTQ5NjcyOTUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlLT5idWlsdEluVHlwZSA9PSBYTUxfU0NIRU1BU19VU0hPUlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtaSAhPSAwKSB8fCAoaGkgIT0gMCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIGlmIChsbyA+IDY1NTM1KQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXR1cm4xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS0+YnVpbHRJblR5cGUgPT0gWE1MX1NDSEVNQVNfVUJZVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtaSAhPSAwKSB8fCAoaGkgIT0gMCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHVybjE7CisgICAgICAgICAgICAgICAgICAgIGlmIChsbyA+IDI1NSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHYgPSB4bWxTY2hlbWFOZXdWYWx1ZSh0eXBlLT5idWlsdEluVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmRlY2ltYWwubG8gPSBsbzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmRlY2ltYWwubWkgPSBtaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmRlY2ltYWwuaGkgPSBoaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPnZhbHVlLmRlY2ltYWwuc2lnbiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB2LT52YWx1ZS5kZWNpbWFsLmZyYWMgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgdi0+dmFsdWUuZGVjaW1hbC50b3RhbCA9IHJldDsKKyAgICAgICAgICAgICAgICAgICAgICAgICp2YWwgPSB2OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuMDsKKyAgICAgICAgICAgIH0KKyAgICB9CisKKyAgZG9uZToKKyAgICBpZiAobm9ybSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKG5vcm0pOworICAgIHJldHVybiAocmV0KTsKKyAgcmV0dXJuMzoKKyAgICBpZiAobm9ybSAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKG5vcm0pOworICAgIHJldHVybiAoMyk7CisgIHJldHVybjE6CisgICAgaWYgKG5vcm0gIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShub3JtKTsKKyAgICByZXR1cm4gKDEpOworICByZXR1cm4wOgorICAgIGlmIChub3JtICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUobm9ybSk7CisgICAgcmV0dXJuICgwKTsKKyAgZXJyb3I6CisgICAgaWYgKG5vcm0gIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZShub3JtKTsKKyAgICByZXR1cm4gKC0xKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZToKKyAqIEB0eXBlOiB0aGUgcHJlZGVmaW5lZCB0eXBlCisgKiBAdmFsdWU6IHRoZSB2YWx1ZSB0byBjaGVjaworICogQHZhbDogIHRoZSByZXR1cm4gY29tcHV0ZWQgdmFsdWUKKyAqIEBub2RlOiAgdGhlIG5vZGUgY29udGFpbmluZyB0aGUgdmFsdWUKKyAqCisgKiBDaGVjayB0aGF0IGEgdmFsdWUgY29uZm9ybXMgdG8gdGhlIGxleGljYWwgc3BhY2Ugb2YgdGhlIHByZWRlZmluZWQgdHlwZS4KKyAqIGlmIHRydWUgYSB2YWx1ZSBpcyBjb21wdXRlZCBhbmQgcmV0dXJuZWQgaW4gQHZhbC4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhpcyB2YWxpZGF0ZXMsIGEgcG9zaXRpdmUgZXJyb3IgY29kZSBudW1iZXIgb3RoZXJ3aXNlCisgKiAgICAgICAgIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworaW50Cit4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSh4bWxTY2hlbWFUeXBlUHRyIHR5cGUsIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCSAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFWYWxQdHIgKnZhbCwgeG1sTm9kZVB0ciBub2RlKSB7CisgICAgcmV0dXJuKHhtbFNjaGVtYVZhbEF0b21pY1R5cGUodHlwZSwgdmFsdWUsIHZhbCwgbm9kZSwgMCwKKwlYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTiwgMSwgMSwgMCkpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbFByZWRlZlR5cGVOb2RlTm9Ob3JtOgorICogQHR5cGU6IHRoZSBwcmVkZWZpbmVkIHR5cGUKKyAqIEB2YWx1ZTogdGhlIHZhbHVlIHRvIGNoZWNrCisgKiBAdmFsOiAgdGhlIHJldHVybiBjb21wdXRlZCB2YWx1ZQorICogQG5vZGU6ICB0aGUgbm9kZSBjb250YWluaW5nIHRoZSB2YWx1ZQorICoKKyAqIENoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiB0aGUgcHJlZGVmaW5lZCB0eXBlLgorICogaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLgorICogVGhpcyBvbmUgZG9lcyBhcHBseSBhbnkgbm9ybWFsaXphdGlvbiB0byB0aGUgdmFsdWUuCisgKgorICogUmV0dXJucyAwIGlmIHRoaXMgdmFsaWRhdGVzLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUgbnVtYmVyIG90aGVyd2lzZQorICogICAgICAgICBhbmQgLTEgaW4gY2FzZSBvZiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hVmFsUHJlZGVmVHlwZU5vZGVOb05vcm0oeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkgeG1sU2NoZW1hVmFsUHRyICp2YWwsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIHJldHVybih4bWxTY2hlbWFWYWxBdG9taWNUeXBlKHR5cGUsIHZhbHVlLCB2YWwsIG5vZGUsIDEsCisJWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04sIDEsIDAsIDEpKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFWYWxpZGF0ZVByZWRlZmluZWRUeXBlOgorICogQHR5cGU6IHRoZSBwcmVkZWZpbmVkIHR5cGUKKyAqIEB2YWx1ZTogdGhlIHZhbHVlIHRvIGNoZWNrCisgKiBAdmFsOiAgdGhlIHJldHVybiBjb21wdXRlZCB2YWx1ZQorICoKKyAqIENoZWNrIHRoYXQgYSB2YWx1ZSBjb25mb3JtcyB0byB0aGUgbGV4aWNhbCBzcGFjZSBvZiB0aGUgcHJlZGVmaW5lZCB0eXBlLgorICogaWYgdHJ1ZSBhIHZhbHVlIGlzIGNvbXB1dGVkIGFuZCByZXR1cm5lZCBpbiBAdmFsLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGlzIHZhbGlkYXRlcywgYSBwb3NpdGl2ZSBlcnJvciBjb2RlIG51bWJlciBvdGhlcndpc2UKKyAqICAgICAgICAgYW5kIC0xIGluIGNhc2Ugb2YgaW50ZXJuYWwgb3IgQVBJIGVycm9yLgorICovCitpbnQKK3htbFNjaGVtYVZhbGlkYXRlUHJlZGVmaW5lZFR5cGUoeG1sU2NoZW1hVHlwZVB0ciB0eXBlLCBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICB4bWxTY2hlbWFWYWxQdHIgKnZhbCkgeworICAgIHJldHVybih4bWxTY2hlbWFWYWxQcmVkZWZUeXBlTm9kZSh0eXBlLCB2YWx1ZSwgdmFsLCBOVUxMKSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ29tcGFyZURlY2ltYWxzOgorICogQHg6ICBhIGZpcnN0IGRlY2ltYWwgdmFsdWUKKyAqIEB5OiAgYSBzZWNvbmQgZGVjaW1hbCB2YWx1ZQorICoKKyAqIENvbXBhcmUgMiBkZWNpbWFscworICoKKyAqIFJldHVybnMgLTEgaWYgeCA8IHksIDAgaWYgeCA9PSB5LCAxIGlmIHggPiB5IGFuZCAtMiBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK3htbFNjaGVtYUNvbXBhcmVEZWNpbWFscyh4bWxTY2hlbWFWYWxQdHIgeCwgeG1sU2NoZW1hVmFsUHRyIHkpCit7CisgICAgeG1sU2NoZW1hVmFsUHRyIHN3cDsKKyAgICBpbnQgb3JkZXIgPSAxLCBpbnRlZ3gsIGludGVneSwgZGxlbjsKKyAgICB1bnNpZ25lZCBsb25nIGhpLCBtaSwgbG87CisKKyAgICAvKgorICAgICAqIEZpcnN0IHRlc3Q6IElmIHggaXMgLXZlIGFuZCBub3QgemVybworICAgICAqLworICAgIGlmICgoeC0+dmFsdWUuZGVjaW1hbC5zaWduKSAmJiAKKwkoKHgtPnZhbHVlLmRlY2ltYWwubG8gIT0gMCkgfHwKKwkgKHgtPnZhbHVlLmRlY2ltYWwubWkgIT0gMCkgfHwKKwkgKHgtPnZhbHVlLmRlY2ltYWwuaGkgIT0gMCkpKSB7CisJLyoKKwkgKiBUaGVuIGlmIHkgaXMgLXZlIGFuZCBub3QgemVybyByZXZlcnNlIHRoZSBjb21wYXJlCisJICovCisJaWYgKCh5LT52YWx1ZS5kZWNpbWFsLnNpZ24pICYmCisJICAgICgoeS0+dmFsdWUuZGVjaW1hbC5sbyAhPSAwKSB8fAorCSAgICAgKHktPnZhbHVlLmRlY2ltYWwubWkgIT0gMCkgfHwKKwkgICAgICh5LT52YWx1ZS5kZWNpbWFsLmhpICE9IDApKSkKKwkgICAgb3JkZXIgPSAtMTsKKwkvKgorCSAqIE90aGVyd2lzZSAoeSA+PSAwKSB3ZSBoYXZlIHRoZSBhbnN3ZXIKKwkgKi8KKwllbHNlCisJICAgIHJldHVybiAoLTEpOworICAgIC8qCisgICAgICogSWYgeCBpcyBub3QgLXZlIGFuZCB5IGlzIC12ZSB3ZSBoYXZlIHRoZSBhbnN3ZXIKKyAgICAgKi8KKyAgICB9IGVsc2UgaWYgKCh5LT52YWx1ZS5kZWNpbWFsLnNpZ24pICYmCisJICAgICAgICgoeS0+dmFsdWUuZGVjaW1hbC5sbyAhPSAwKSB8fAorCQkoeS0+dmFsdWUuZGVjaW1hbC5taSAhPSAwKSB8fAorCQkoeS0+dmFsdWUuZGVjaW1hbC5oaSAhPSAwKSkpIHsKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBJZiBpdCdzIG5vdCBzaW1wbHkgZGV0ZXJtaW5lZCBieSBhIGRpZmZlcmVuY2UgaW4gc2lnbiwKKyAgICAgKiB0aGVuIHdlIG5lZWQgdG8gY29tcGFyZSB0aGUgYWN0dWFsIHZhbHVlcyBvZiB0aGUgdHdvIG51bXMuCisgICAgICogVG8gZG8gdGhpcywgd2Ugc3RhcnQgYnkgbG9va2luZyBhdCB0aGUgaW50ZWdyYWwgcGFydHMuCisgICAgICogSWYgdGhlIG51bWJlciBvZiBpbnRlZ3JhbCBkaWdpdHMgZGlmZmVyLCB0aGVuIHdlIGhhdmUgb3VyCisgICAgICogYW5zd2VyLgorICAgICAqLworICAgIGludGVneCA9IHgtPnZhbHVlLmRlY2ltYWwudG90YWwgLSB4LT52YWx1ZS5kZWNpbWFsLmZyYWM7CisgICAgaW50ZWd5ID0geS0+dmFsdWUuZGVjaW1hbC50b3RhbCAtIHktPnZhbHVlLmRlY2ltYWwuZnJhYzsKKyAgICAvKgorICAgICogTk9URTogV2UgY2hhbmdlZCB0aGUgInRvdGFsIiBmb3IgdmFsdWVzIGxpa2UgIjAuMSIKKyAgICAqICAgKG9yICItMC4xIiBvciAiLjEiKSB0byBiZSAxLCB3aGljaCB3YXMgMiBwcmV2aW91c2x5LgorICAgICogICBUaGVyZWZvcmUgdGhlIHNwZWNpYWwgY2FzZSwgd2hlbiBzdWNoIHZhbHVlcyBhcmUKKyAgICAqICAgY29tcGFyZWQgd2l0aCAwLCBuZWVkcyB0byBiZSBoYW5kbGVkIHNlcGFyYXRlbHk7CisgICAgKiAgIG90aGVyd2lzZSBhIHplcm8gd291bGQgYmUgcmVjb2duaXplZCBpbmNvcnJlY3RseSBhcworICAgICogICBncmVhdGVyIHRoYW4gdGhvc2UgdmFsdWVzLiBUaGlzIGhhcyB0aGUgbmljZSBzaWRlIGVmZmVjdAorICAgICogICB0aGF0IHdlIGdhaW4gYW4gb3ZlcmFsbCBvcHRpbWl6ZWQgY29tcGFyaXNvbiB3aXRoIHplcm9lcy4KKyAgICAqIE5vdGUgdGhhdCBhICIwIiBoYXMgYSAidG90YWwiIG9mIDEgYWxyZWFkeS4KKyAgICAqLworICAgIGlmIChpbnRlZ3ggPT0gMSkgeworCWlmICh4LT52YWx1ZS5kZWNpbWFsLmxvID09IDApIHsKKwkgICAgaWYgKGludGVneSAhPSAxKQorCQlyZXR1cm4gLW9yZGVyOworCSAgICBlbHNlIGlmICh5LT52YWx1ZS5kZWNpbWFsLmxvICE9IDApCisJCXJldHVybiAtb3JkZXI7CisJICAgIGVsc2UKKwkJcmV0dXJuKDApOworCX0KKyAgICB9CisgICAgaWYgKGludGVneSA9PSAxKSB7CisJaWYgKHktPnZhbHVlLmRlY2ltYWwubG8gPT0gMCkgeworCSAgICBpZiAoaW50ZWd4ICE9IDEpCisJCXJldHVybiBvcmRlcjsKKwkgICAgZWxzZSBpZiAoeC0+dmFsdWUuZGVjaW1hbC5sbyAhPSAwKQorCQlyZXR1cm4gb3JkZXI7CisJICAgIGVsc2UKKwkJcmV0dXJuKDApOworCX0KKyAgICB9CisKKyAgICBpZiAoaW50ZWd4ID4gaW50ZWd5KQorCXJldHVybiBvcmRlcjsKKyAgICBlbHNlIGlmIChpbnRlZ3kgPiBpbnRlZ3gpCisJcmV0dXJuIC1vcmRlcjsKKworICAgIC8qCisgICAgICogSWYgdGhlIG51bWJlciBvZiBpbnRlZ3JhbCBkaWdpdHMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbnVtYmVycywKKyAgICAgKiB0aGVuIHRoaW5ncyBnZXQgYSBsaXR0bGUgbW9yZSBjb21wbGljYXRlZC4gIFdlIG5lZWQgdG8gIm5vcm1hbGl6ZSIKKyAgICAgKiB0aGUgbnVtYmVycyBpbiBvcmRlciB0byBwcm9wZXJseSBjb21wYXJlIHRoZW0uICBUbyBkbyB0aGlzLCB3ZQorICAgICAqIGxvb2sgYXQgdGhlIHRvdGFsIGxlbmd0aCBvZiBlYWNoIG51bWJlciAobGVuZ3RoID0+IG51bWJlciBvZgorICAgICAqIHNpZ25pZmljYW50IGRpZ2l0cyksIGFuZCBkaXZpZGUgdGhlICJzaG9ydGVyIiBieSAxMCAoZGVjcmVhc2luZworICAgICAqIHRoZSBsZW5ndGgpIHVudGlsIHRoZXkgYXJlIG9mIGVxdWFsIGxlbmd0aC4KKyAgICAgKi8KKyAgICBkbGVuID0geC0+dmFsdWUuZGVjaW1hbC50b3RhbCAtIHktPnZhbHVlLmRlY2ltYWwudG90YWw7CisgICAgaWYgKGRsZW4gPCAwKSB7CS8qIHkgaGFzIG1vcmUgZGlnaXRzIHRoYW4geCAqLworCXN3cCA9IHg7CisJaGkgPSB5LT52YWx1ZS5kZWNpbWFsLmhpOworCW1pID0geS0+dmFsdWUuZGVjaW1hbC5taTsKKwlsbyA9IHktPnZhbHVlLmRlY2ltYWwubG87CisJZGxlbiA9IC1kbGVuOworCW9yZGVyID0gLW9yZGVyOworICAgIH0gZWxzZSB7CQkvKiB4IGhhcyBtb3JlIGRpZ2l0cyB0aGFuIHkgKi8KKwlzd3AgPSB5OworCWhpID0geC0+dmFsdWUuZGVjaW1hbC5oaTsKKwltaSA9IHgtPnZhbHVlLmRlY2ltYWwubWk7CisJbG8gPSB4LT52YWx1ZS5kZWNpbWFsLmxvOworICAgIH0KKyAgICB3aGlsZSAoZGxlbiA+IDgpIHsJLyogaW4gZWZmZWN0LCByaWdodCBzaGlmdCBieSAxMCoqOCAqLworCWxvID0gbWk7CisJbWkgPSBoaTsKKwloaSA9IDA7CisJZGxlbiAtPSA4OworICAgIH0KKyAgICB3aGlsZSAoZGxlbiA+IDApIHsKKwl1bnNpZ25lZCBsb25nIHJlbTEsIHJlbTI7CisJcmVtMSA9IChoaSAlIDEwKSAqIDEwMDAwMDAwMEw7CisJaGkgPSBoaSAvIDEwOworCXJlbTIgPSAobWkgJSAxMCkgKiAxMDAwMDAwMDBMOworCW1pID0gKG1pICsgcmVtMSkgLyAxMDsKKwlsbyA9IChsbyArIHJlbTIpIC8gMTA7CisJZGxlbi0tOworICAgIH0KKyAgICBpZiAoaGkgPiBzd3AtPnZhbHVlLmRlY2ltYWwuaGkpIHsKKwlyZXR1cm4gb3JkZXI7CisgICAgfSBlbHNlIGlmIChoaSA9PSBzd3AtPnZhbHVlLmRlY2ltYWwuaGkpIHsKKwlpZiAobWkgPiBzd3AtPnZhbHVlLmRlY2ltYWwubWkpIHsKKwkgICAgcmV0dXJuIG9yZGVyOworCX0gZWxzZSBpZiAobWkgPT0gc3dwLT52YWx1ZS5kZWNpbWFsLm1pKSB7CisJICAgIGlmIChsbyA+IHN3cC0+dmFsdWUuZGVjaW1hbC5sbykgeworCQlyZXR1cm4gb3JkZXI7CisJICAgIH0gZWxzZSBpZiAobG8gPT0gc3dwLT52YWx1ZS5kZWNpbWFsLmxvKSB7CisJCWlmICh4LT52YWx1ZS5kZWNpbWFsLnRvdGFsID09IHktPnZhbHVlLmRlY2ltYWwudG90YWwpIHsKKwkJICAgIHJldHVybiAwOworCQl9IGVsc2UgeworCQkgICAgcmV0dXJuIG9yZGVyOworCQl9CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybiAtb3JkZXI7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ29tcGFyZUR1cmF0aW9uczoKKyAqIEB4OiAgYSBmaXJzdCBkdXJhdGlvbiB2YWx1ZQorICogQHk6ICBhIHNlY29uZCBkdXJhdGlvbiB2YWx1ZQorICoKKyAqIENvbXBhcmUgMiBkdXJhdGlvbnMKKyAqCisgKiBSZXR1cm5zIC0xIGlmIHggPCB5LCAwIGlmIHggPT0geSwgMSBpZiB4ID4geSwgMiBpZiB4IDw+IHksIGFuZCAtMiBpbgorICogY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlRHVyYXRpb25zKHhtbFNjaGVtYVZhbFB0ciB4LCB4bWxTY2hlbWFWYWxQdHIgeSkKK3sKKyAgICBsb25nIGNhcnJ5LCBtb24sIGRheTsKKyAgICBkb3VibGUgc2VjOworICAgIGludCBpbnZlcnQgPSAxOworICAgIGxvbmcgeG1vbiwgeGRheSwgbXllYXIsIG1pbmRheSwgbWF4ZGF5OworICAgIHN0YXRpYyBjb25zdCBsb25nIGRheVJhbmdlIFsyXVsxMl0gPSB7CisgICAgICAgIHsgMCwgMjgsIDU5LCA4OSwgMTIwLCAxNTAsIDE4MSwgMjEyLCAyNDIsIDI3MywgMzAzLCAzMzQsIH0sCisgICAgICAgIHsgMCwgMzEsIDYyLCA5MiwgMTIzLCAxNTMsIDE4NCwgMjE1LCAyNDUsIDI3NiwgMzA2LCAzMzd9IH07CisKKyAgICBpZiAoKHggPT0gTlVMTCkgfHwgKHkgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAtMjsKKworICAgIC8qIG1vbnRocyAqLworICAgIG1vbiA9IHgtPnZhbHVlLmR1ci5tb24gLSB5LT52YWx1ZS5kdXIubW9uOworCisgICAgLyogc2Vjb25kcyAqLworICAgIHNlYyA9IHgtPnZhbHVlLmR1ci5zZWMgLSB5LT52YWx1ZS5kdXIuc2VjOworICAgIGNhcnJ5ID0gKGxvbmcpc2VjIC8gU0VDU19QRVJfREFZOworICAgIHNlYyAtPSAoZG91YmxlKShjYXJyeSAqIFNFQ1NfUEVSX0RBWSk7CisKKyAgICAvKiBkYXlzICovCisgICAgZGF5ID0geC0+dmFsdWUuZHVyLmRheSAtIHktPnZhbHVlLmR1ci5kYXkgKyBjYXJyeTsKKworICAgIC8qIGVhc3kgdGVzdCAqLworICAgIGlmIChtb24gPT0gMCkgeworICAgICAgICBpZiAoZGF5ID09IDApCisgICAgICAgICAgICBpZiAoc2VjID09IDAuMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNlYyA8IDAuMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGVsc2UgaWYgKGRheSA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmIChtb24gPiAwKSB7CisgICAgICAgIGlmICgoZGF5ID49IDApICYmIChzZWMgPj0gMC4wKSkKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHhtb24gPSBtb247CisgICAgICAgICAgICB4ZGF5ID0gLWRheTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoKGRheSA8PSAwKSAmJiAoc2VjIDw9IDAuMCkpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0gZWxzZSB7CisJaW52ZXJ0ID0gLTE7CisgICAgICAgIHhtb24gPSAtbW9uOworICAgICAgICB4ZGF5ID0gZGF5OworICAgIH0KKworICAgIG15ZWFyID0geG1vbiAvIDEyOworICAgIGlmIChteWVhciA9PSAwKSB7CisJbWluZGF5ID0gMDsKKwltYXhkYXkgPSAwOworICAgIH0gZWxzZSB7CisJbWF4ZGF5ID0gMzY2ICogKChteWVhciArIDMpIC8gNCkgKworCSAgICAgICAgIDM2NSAqICgobXllYXIgLSAxKSAlIDQpOworCW1pbmRheSA9IG1heGRheSAtIDE7CisgICAgfQorCisgICAgeG1vbiA9IHhtb24gJSAxMjsKKyAgICBtaW5kYXkgKz0gZGF5UmFuZ2VbMF1beG1vbl07CisgICAgbWF4ZGF5ICs9IGRheVJhbmdlWzFdW3htb25dOworCisgICAgaWYgKChtYXhkYXkgPT0gbWluZGF5KSAmJiAobWF4ZGF5ID09IHhkYXkpKQorCXJldHVybigwKTsgLyogY2FuIHRoaXMgcmVhbGx5IGhhcHBlbiA/ICovCisgICAgaWYgKG1heGRheSA8IHhkYXkpCisgICAgICAgIHJldHVybigtaW52ZXJ0KTsKKyAgICBpZiAobWluZGF5ID4geGRheSkKKyAgICAgICAgcmV0dXJuKGludmVydCk7CisKKyAgICAvKiBpbmRldGVybWluYXRlICovCisgICAgcmV0dXJuIDI7Cit9CisKKy8qCisgKiBtYWNyb3MgZm9yIGFkZGluZyBkYXRlL3RpbWVzIGFuZCBkdXJhdGlvbnMKKyAqLworI2RlZmluZSBGUVVPVElFTlQoYSxiKSAgICAgICAgICAgICAgICAgIChmbG9vcigoKGRvdWJsZSlhLyhkb3VibGUpYikpKQorI2RlZmluZSBNT0RVTE8oYSxiKSAgICAgICAgICAgICAgICAgICAgIChhIC0gRlFVT1RJRU5UKGEsYikgKiBiKQorI2RlZmluZSBGUVVPVElFTlRfUkFOR0UoYSxsb3csaGlnaCkgICAgIChGUVVPVElFTlQoKGEtbG93KSwoaGlnaC1sb3cpKSkKKyNkZWZpbmUgTU9EVUxPX1JBTkdFKGEsbG93LGhpZ2gpICAgICAgICAoKE1PRFVMTygoYS1sb3cpLChoaWdoLWxvdykpKStsb3cpCisKKy8qKgorICogeG1sU2NoZW1hRHVwVmFsOgorICogQHY6IHRoZSAjeG1sU2NoZW1hVmFsUHRyIHZhbHVlIHRvIGR1cGxpY2F0ZQorICoKKyAqIE1ha2VzIGEgY29weSBvZiBAdi4gVGhlIGNhbGxpbmcgcHJvZ3JhbSBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZworICogdGhlIHJldHVybmVkIHZhbHVlLgorICoKKyAqIHJldHVybnMgYSBwb2ludGVyIHRvIGEgZHVwbGljYXRlZCAjeG1sU2NoZW1hVmFsUHRyIG9yIE5VTEwgaWYgZXJyb3IuCisgKi8KK3N0YXRpYyB4bWxTY2hlbWFWYWxQdHIKK3htbFNjaGVtYUR1cFZhbCAoeG1sU2NoZW1hVmFsUHRyIHYpCit7CisgICAgeG1sU2NoZW1hVmFsUHRyIHJldCA9IHhtbFNjaGVtYU5ld1ZhbHVlKHYtPnR5cGUpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgCisgICAgbWVtY3B5KHJldCwgdiwgc2l6ZW9mKHhtbFNjaGVtYVZhbCkpOworICAgIHJldC0+bmV4dCA9IE5VTEw7CisgICAgcmV0dXJuIHJldDsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDb3B5VmFsdWU6CisgKiBAdmFsOiAgdGhlIHByZWNvbXB1dGVkIHZhbHVlIHRvIGJlIGNvcGllZAorICoKKyAqIENvcGllcyB0aGUgcHJlY29tcHV0ZWQgdmFsdWUuIFRoaXMgZHVwbGljYXRlcyBhbnkgc3RyaW5nIHdpdGhpbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBjb3B5IG9yIE5VTEwgaWYgYSBjb3B5IGZvciBhIGRhdGEtdHlwZSBpcyBub3QgaW1wbGVtZW50ZWQuCisgKi8KK3htbFNjaGVtYVZhbFB0cgoreG1sU2NoZW1hQ29weVZhbHVlKHhtbFNjaGVtYVZhbFB0ciB2YWwpCit7CisgICAgeG1sU2NoZW1hVmFsUHRyIHJldCA9IE5VTEwsIHByZXYgPSBOVUxMLCBjdXI7CisKKyAgICAvKgorICAgICogQ29weSB0aGUgc3RyaW5nIHZhbHVlcy4KKyAgICAqLworICAgIHdoaWxlICh2YWwgIT0gTlVMTCkgeworCXN3aXRjaCAodmFsLT50eXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfQU5ZVFlQRToKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19JRFJFRlM6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfRU5USVRJRVM6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTk1UT0tFTlM6CisJCXhtbFNjaGVtYUZyZWVWYWx1ZShyZXQpOworCQlyZXR1cm4gKE5VTEwpOworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0FOWVNJTVBMRVRZUEU6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfU1RSSU5HOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05PUk1TVFJJTkc6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfVE9LRU46CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTEFOR1VBR0U6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTkFNRToKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19OQ05BTUU6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfSUQ6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfSURSRUY6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfRU5USVRZOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU46CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfQU5ZVVJJOgorCQljdXIgPSB4bWxTY2hlbWFEdXBWYWwodmFsKTsKKwkJaWYgKHZhbC0+dmFsdWUuc3RyICE9IE5VTEwpCisJCSAgICBjdXItPnZhbHVlLnN0ciA9IHhtbFN0cmR1cChCQURfQ0FTVCB2YWwtPnZhbHVlLnN0cik7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX1FOQU1FOiAgICAgICAgCisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046CisJCWN1ciA9IHhtbFNjaGVtYUR1cFZhbCh2YWwpOworCQlpZiAodmFsLT52YWx1ZS5xbmFtZS5uYW1lICE9IE5VTEwpCisJCSAgICBjdXItPnZhbHVlLnFuYW1lLm5hbWUgPQorICAgICAgICAgICAgICAgICAgICB4bWxTdHJkdXAoQkFEX0NBU1QgdmFsLT52YWx1ZS5xbmFtZS5uYW1lKTsKKwkJaWYgKHZhbC0+dmFsdWUucW5hbWUudXJpICE9IE5VTEwpCisJCSAgICBjdXItPnZhbHVlLnFuYW1lLnVyaSA9CisgICAgICAgICAgICAgICAgICAgIHhtbFN0cmR1cChCQURfQ0FTVCB2YWwtPnZhbHVlLnFuYW1lLnVyaSk7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0hFWEJJTkFSWToKKwkJY3VyID0geG1sU2NoZW1hRHVwVmFsKHZhbCk7CisJCWlmICh2YWwtPnZhbHVlLmhleC5zdHIgIT0gTlVMTCkKKwkJICAgIGN1ci0+dmFsdWUuaGV4LnN0ciA9IHhtbFN0cmR1cChCQURfQ0FTVCB2YWwtPnZhbHVlLmhleC5zdHIpOworCQlicmVhazsKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlk6CisJCWN1ciA9IHhtbFNjaGVtYUR1cFZhbCh2YWwpOworCQlpZiAodmFsLT52YWx1ZS5iYXNlNjQuc3RyICE9IE5VTEwpCisJCSAgICBjdXItPnZhbHVlLmJhc2U2NC5zdHIgPQorICAgICAgICAgICAgICAgICAgICB4bWxTdHJkdXAoQkFEX0NBU1QgdmFsLT52YWx1ZS5iYXNlNjQuc3RyKTsKKwkJYnJlYWs7CisJICAgIGRlZmF1bHQ6CisJCWN1ciA9IHhtbFNjaGVtYUR1cFZhbCh2YWwpOworCQlicmVhazsKKwl9CisJaWYgKHJldCA9PSBOVUxMKQorCSAgICByZXQgPSBjdXI7CisJZWxzZQorCSAgICBwcmV2LT5uZXh0ID0gY3VyOworCXByZXYgPSBjdXI7CisJdmFsID0gdmFsLT5uZXh0OworICAgIH0KKyAgICByZXR1cm4gKHJldCk7Cit9CisKKy8qKgorICogX3htbFNjaGVtYURhdGVBZGQ6CisgKiBAZHQ6IGFuICN4bWxTY2hlbWFWYWxQdHIKKyAqIEBkdXI6IGFuICN4bWxTY2hlbWFWYWxQdHIgb2YgdHlwZSAjWFNfRFVSQVRJT04KKyAqCisgKiBDb21wdXRlIGEgbmV3IGRhdGUvdGltZSBmcm9tIEBkdCBhbmQgQGR1ci4gVGhpcyBmdW5jdGlvbiBhc3N1bWVzIEBkdAorICogaXMgZWl0aGVyICNYTUxfU0NIRU1BU19EQVRFVElNRSwgI1hNTF9TQ0hFTUFTX0RBVEUsICNYTUxfU0NIRU1BU19HWUVBUk1PTlRILAorICogb3IgI1hNTF9TQ0hFTUFTX0dZRUFSLiBUaGUgcmV0dXJuZWQgI3htbFNjaGVtYVZhbCBpcyB0aGUgc2FtZSB0eXBlIGFzCisgKiBAZHQuIFRoZSBjYWxsaW5nIHByb2dyYW0gaXMgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcgdGhlIHJldHVybmVkIHZhbHVlLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIGEgbmV3ICN4bWxTY2hlbWFWYWwgb3IgTlVMTCBpZiBlcnJvci4KKyAqLworc3RhdGljIHhtbFNjaGVtYVZhbFB0cgorX3htbFNjaGVtYURhdGVBZGQgKHhtbFNjaGVtYVZhbFB0ciBkdCwgeG1sU2NoZW1hVmFsUHRyIGR1cikKK3sKKyAgICB4bWxTY2hlbWFWYWxQdHIgcmV0LCB0bXA7CisgICAgbG9uZyBjYXJyeSwgdGVtcGRheXMsIHRlbXA7CisgICAgeG1sU2NoZW1hVmFsRGF0ZVB0ciByLCBkOworICAgIHhtbFNjaGVtYVZhbER1cmF0aW9uUHRyIHU7CisKKyAgICBpZiAoKGR0ID09IE5VTEwpIHx8IChkdXIgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0ID0geG1sU2NoZW1hTmV3VmFsdWUoZHQtPnR5cGUpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvKiBtYWtlIGEgY29weSBzbyB3ZSBkb24ndCBhbHRlciB0aGUgb3JpZ2luYWwgdmFsdWUgKi8KKyAgICB0bXAgPSB4bWxTY2hlbWFEdXBWYWwoZHQpOworICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICB4bWxTY2hlbWFGcmVlVmFsdWUocmV0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgciA9ICYocmV0LT52YWx1ZS5kYXRlKTsKKyAgICBkID0gJih0bXAtPnZhbHVlLmRhdGUpOworICAgIHUgPSAmKGR1ci0+dmFsdWUuZHVyKTsKKworICAgIC8qIG5vcm1hbGl6YXRpb24gKi8KKyAgICBpZiAoZC0+bW9uID09IDApCisgICAgICAgIGQtPm1vbiA9IDE7CisKKyAgICAvKiBub3JtYWxpemUgZm9yIHRpbWUgem9uZSBvZmZzZXQgKi8KKyAgICB1LT5zZWMgLT0gKGQtPnR6byAqIDYwKTsKKyAgICBkLT50em8gPSAwOworCisgICAgLyogbm9ybWFsaXphdGlvbiAqLworICAgIGlmIChkLT5kYXkgPT0gMCkKKyAgICAgICAgZC0+ZGF5ID0gMTsKKworICAgIC8qIG1vbnRoICovCisgICAgY2FycnkgID0gZC0+bW9uICsgdS0+bW9uOworICAgIHItPm1vbiA9ICh1bnNpZ25lZCBpbnQpIE1PRFVMT19SQU5HRShjYXJyeSwgMSwgMTMpOworICAgIGNhcnJ5ICA9IChsb25nKSBGUVVPVElFTlRfUkFOR0UoY2FycnksIDEsIDEzKTsKKworICAgIC8qIHllYXIgKG1heSBiZSBtb2RpZmllZCBsYXRlcikgKi8KKyAgICByLT55ZWFyID0gZC0+eWVhciArIGNhcnJ5OworICAgIGlmIChyLT55ZWFyID09IDApIHsKKyAgICAgICAgaWYgKGQtPnllYXIgPiAwKQorICAgICAgICAgICAgci0+eWVhci0tOworICAgICAgICBlbHNlCisgICAgICAgICAgICByLT55ZWFyKys7CisgICAgfQorCisgICAgLyogdGltZSB6b25lICovCisgICAgci0+dHpvICAgICA9IGQtPnR6bzsKKyAgICByLT50el9mbGFnID0gZC0+dHpfZmxhZzsKKworICAgIC8qIHNlY29uZHMgKi8KKyAgICByLT5zZWMgPSBkLT5zZWMgKyB1LT5zZWM7CisgICAgY2FycnkgID0gKGxvbmcpIEZRVU9USUVOVCgobG9uZylyLT5zZWMsIDYwKTsKKyAgICBpZiAoci0+c2VjICE9IDAuMCkgeworICAgICAgICByLT5zZWMgPSBNT0RVTE8oci0+c2VjLCA2MC4wKTsKKyAgICB9CisKKyAgICAvKiBtaW51dGUgKi8KKyAgICBjYXJyeSArPSBkLT5taW47CisgICAgci0+bWluID0gKHVuc2lnbmVkIGludCkgTU9EVUxPKGNhcnJ5LCA2MCk7CisgICAgY2FycnkgID0gKGxvbmcpIEZRVU9USUVOVChjYXJyeSwgNjApOworCisgICAgLyogaG91cnMgKi8KKyAgICBjYXJyeSAgKz0gZC0+aG91cjsKKyAgICByLT5ob3VyID0gKHVuc2lnbmVkIGludCkgTU9EVUxPKGNhcnJ5LCAyNCk7CisgICAgY2FycnkgICA9IChsb25nKUZRVU9USUVOVChjYXJyeSwgMjQpOworCisgICAgLyoKKyAgICAgKiBkYXlzCisgICAgICogTm90ZSB3ZSB1c2UgdGVtcGRheXMgYmVjYXVzZSB0aGUgdGVtcG9yYXJ5IHZhbHVlcyBtYXkgbmVlZCBtb3JlCisgICAgICogdGhhbiA1IGJpdHMKKyAgICAgKi8KKyAgICBpZiAoKFZBTElEX1lFQVIoci0+eWVhcikpICYmIChWQUxJRF9NT05USChyLT5tb24pKSAmJgorICAgICAgICAgICAgICAgICAgKGQtPmRheSA+IE1BWF9EQVlJTk1PTlRIKHItPnllYXIsIHItPm1vbikpKQorICAgICAgICB0ZW1wZGF5cyA9IE1BWF9EQVlJTk1PTlRIKHItPnllYXIsIHItPm1vbik7CisgICAgZWxzZSBpZiAoZC0+ZGF5IDwgMSkKKyAgICAgICAgdGVtcGRheXMgPSAxOworICAgIGVsc2UKKyAgICAgICAgdGVtcGRheXMgPSBkLT5kYXk7CisKKyAgICB0ZW1wZGF5cyArPSB1LT5kYXkgKyBjYXJyeTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICh0ZW1wZGF5cyA8IDEpIHsKKyAgICAgICAgICAgIGxvbmcgdG1vbiA9IChsb25nKSBNT0RVTE9fUkFOR0UoKGludClyLT5tb24tMSwgMSwgMTMpOworICAgICAgICAgICAgbG9uZyB0eXIgID0gci0+eWVhciArIChsb25nKUZRVU9USUVOVF9SQU5HRSgoaW50KXItPm1vbi0xLCAxLCAxMyk7CisgICAgICAgICAgICBpZiAodHlyID09IDApCisgICAgICAgICAgICAgICAgdHlyLS07CisJICAgIC8qCisJICAgICAqIENvdmVyaXR5IGRldGVjdGVkIGFuIG92ZXJydW4gaW4gZGF5c0luTW9udGggCisJICAgICAqIG9mIHNpemUgMTIgYXQgcG9zaXRpb24gMTIgd2l0aCBpbmRleCB2YXJpYWJsZSAiKChyKS0+bW9uIC0gMSkiCisJICAgICAqLworCSAgICBpZiAodG1vbiA8IDApCisJICAgICAgICB0bW9uID0gMDsKKwkgICAgaWYgKHRtb24gPiAxMikKKwkgICAgICAgIHRtb24gPSAxMjsKKyAgICAgICAgICAgIHRlbXBkYXlzICs9IE1BWF9EQVlJTk1PTlRIKHR5ciwgdG1vbik7CisgICAgICAgICAgICBjYXJyeSA9IC0xOworICAgICAgICB9IGVsc2UgaWYgKHRlbXBkYXlzID4gKGxvbmcpIE1BWF9EQVlJTk1PTlRIKHItPnllYXIsIHItPm1vbikpIHsKKyAgICAgICAgICAgIHRlbXBkYXlzID0gdGVtcGRheXMgLSBNQVhfREFZSU5NT05USChyLT55ZWFyLCByLT5tb24pOworICAgICAgICAgICAgY2FycnkgPSAxOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHRlbXAgPSByLT5tb24gKyBjYXJyeTsKKyAgICAgICAgci0+bW9uID0gKHVuc2lnbmVkIGludCkgTU9EVUxPX1JBTkdFKHRlbXAsIDEsIDEzKTsKKyAgICAgICAgci0+eWVhciA9IHItPnllYXIgKyAodW5zaWduZWQgaW50KSBGUVVPVElFTlRfUkFOR0UodGVtcCwgMSwgMTMpOworICAgICAgICBpZiAoci0+eWVhciA9PSAwKSB7CisgICAgICAgICAgICBpZiAodGVtcCA8IDEpCisgICAgICAgICAgICAgICAgci0+eWVhci0tOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHItPnllYXIrKzsKKwl9CisgICAgfQorICAgIAorICAgIHItPmRheSA9IHRlbXBkYXlzOworCisgICAgLyoKKyAgICAgKiBhZGp1c3QgdGhlIGRhdGUvdGltZSB0eXBlIHRvIHRoZSBkYXRlIHZhbHVlcworICAgICAqLworICAgIGlmIChyZXQtPnR5cGUgIT0gWE1MX1NDSEVNQVNfREFURVRJTUUpIHsKKyAgICAgICAgaWYgKChyLT5ob3VyKSB8fCAoci0+bWluKSB8fCAoci0+c2VjKSkKKyAgICAgICAgICAgIHJldC0+dHlwZSA9IFhNTF9TQ0hFTUFTX0RBVEVUSU1FOworICAgICAgICBlbHNlIGlmIChyZXQtPnR5cGUgIT0gWE1MX1NDSEVNQVNfREFURSkgeworICAgICAgICAgICAgaWYgKChyLT5tb24gIT0gMSkgJiYgKHItPmRheSAhPSAxKSkKKyAgICAgICAgICAgICAgICByZXQtPnR5cGUgPSBYTUxfU0NIRU1BU19EQVRFOworICAgICAgICAgICAgZWxzZSBpZiAoKHJldC0+dHlwZSAhPSBYTUxfU0NIRU1BU19HWUVBUk1PTlRIKSAmJiAoci0+bW9uICE9IDEpKQorICAgICAgICAgICAgICAgIHJldC0+dHlwZSA9IFhNTF9TQ0hFTUFTX0dZRUFSTU9OVEg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB4bWxTY2hlbWFGcmVlVmFsdWUodG1wKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qKgorICogeG1sU2NoZW1hRGF0ZU5vcm1hbGl6ZToKKyAqIEBkdDogYW4gI3htbFNjaGVtYVZhbFB0ciBvZiBhIGRhdGUvdGltZSB0eXBlIHZhbHVlLgorICogQG9mZnNldDogbnVtYmVyIG9mIHNlY29uZHMgdG8gYWRqdXN0IEBkdCBieS4KKyAqCisgKiBOb3JtYWxpemUgQGR0IHRvIEdNVCB0aW1lLiBUaGUgQG9mZnNldCBwYXJhbWV0ZXIgaXMgc3VidHJhY3RlZCBmcm9tCisgKiB0aGUgcmV0dXJuIHZhbHVlIGlzIGEgdGltZS16b25lIG9mZnNldCBpcyBwcmVzZW50IG9uIEBkdC4KKyAqCisgKiBSZXR1cm5zIGEgbm9ybWFsaXplZCBjb3B5IG9mIEBkdCBvciBOVUxMIGlmIGVycm9yLgorICovCitzdGF0aWMgeG1sU2NoZW1hVmFsUHRyCit4bWxTY2hlbWFEYXRlTm9ybWFsaXplICh4bWxTY2hlbWFWYWxQdHIgZHQsIGRvdWJsZSBvZmZzZXQpCit7CisgICAgeG1sU2NoZW1hVmFsUHRyIGR1ciwgcmV0OworCisgICAgaWYgKGR0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKCgoZHQtPnR5cGUgIT0gWE1MX1NDSEVNQVNfVElNRSkgJiYKKyAgICAgICAgIChkdC0+dHlwZSAhPSBYTUxfU0NIRU1BU19EQVRFVElNRSkgJiYKKwkgKGR0LT50eXBlICE9IFhNTF9TQ0hFTUFTX0RBVEUpKSB8fCAoZHQtPnZhbHVlLmRhdGUudHpvID09IDApKQorICAgICAgICByZXR1cm4geG1sU2NoZW1hRHVwVmFsKGR0KTsKKworICAgIGR1ciA9IHhtbFNjaGVtYU5ld1ZhbHVlKFhNTF9TQ0hFTUFTX0RVUkFUSU9OKTsKKyAgICBpZiAoZHVyID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZHVyLT52YWx1ZS5kYXRlLnNlYyAtPSBvZmZzZXQ7CisKKyAgICByZXQgPSBfeG1sU2NoZW1hRGF0ZUFkZChkdCwgZHVyKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgeG1sU2NoZW1hRnJlZVZhbHVlKGR1cik7CisKKyAgICAvKiByZXQtPnZhbHVlLmRhdGUudHpvID0gMDsgKi8KKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIF94bWxTY2hlbWFEYXRlQ2FzdFlNVG9EYXlzOgorICogQGR0OiBhbiAjeG1sU2NoZW1hVmFsUHRyCisgKgorICogQ29udmVydCBtb24gYW5kIHllYXIgb2YgQGR0IHRvIHRvdGFsIG51bWJlciBvZiBkYXlzLiBUYWtlIHRoZSAKKyAqIG51bWJlciBvZiB5ZWFycyBzaW5jZSAob3IgYmVmb3JlKSAxIEFEIGFuZCBhZGQgdGhlIG51bWJlciBvZiBsZWFwCisgKiB5ZWFycy4gVGhpcyBpcyBhIGZ1bmN0aW9uICBiZWNhdXNlIG5lZ2F0aXZlCisgKiB5ZWFycyBtdXN0IGJlIGhhbmRsZWQgYSBsaXR0bGUgZGlmZmVyZW50bHkgYW5kIHRoZXJlIGlzIG5vIHplcm8geWVhci4KKyAqCisgKiBSZXR1cm5zIG51bWJlciBvZiBkYXlzLgorICovCitzdGF0aWMgbG9uZworX3htbFNjaGVtYURhdGVDYXN0WU1Ub0RheXMgKGNvbnN0IHhtbFNjaGVtYVZhbFB0ciBkdCkKK3sKKyAgICBsb25nIHJldDsKKyAgICBpbnQgbW9uOworCisgICAgbW9uID0gZHQtPnZhbHVlLmRhdGUubW9uOworICAgIGlmIChtb24gPD0gMCkgbW9uID0gMTsgLyogbm9ybWFsaXphdGlvbiAqLworCisgICAgaWYgKGR0LT52YWx1ZS5kYXRlLnllYXIgPD0gMCkKKyAgICAgICAgcmV0ID0gKGR0LT52YWx1ZS5kYXRlLnllYXIgKiAzNjUpICsKKyAgICAgICAgICAgICAgKCgoZHQtPnZhbHVlLmRhdGUueWVhcisxKS80KS0oKGR0LT52YWx1ZS5kYXRlLnllYXIrMSkvMTAwKSsKKyAgICAgICAgICAgICAgICgoZHQtPnZhbHVlLmRhdGUueWVhcisxKS80MDApKSArCisgICAgICAgICAgICAgIERBWV9JTl9ZRUFSKDAsIG1vbiwgZHQtPnZhbHVlLmRhdGUueWVhcik7CisgICAgZWxzZQorICAgICAgICByZXQgPSAoKGR0LT52YWx1ZS5kYXRlLnllYXItMSkgKiAzNjUpICsKKyAgICAgICAgICAgICAgKCgoZHQtPnZhbHVlLmRhdGUueWVhci0xKS80KS0oKGR0LT52YWx1ZS5kYXRlLnllYXItMSkvMTAwKSsKKyAgICAgICAgICAgICAgICgoZHQtPnZhbHVlLmRhdGUueWVhci0xKS80MDApKSArCisgICAgICAgICAgICAgIERBWV9JTl9ZRUFSKDAsIG1vbiwgZHQtPnZhbHVlLmRhdGUueWVhcik7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIFRJTUVfVE9fTlVNQkVSOgorICogQGR0OiAgYW4gI3htbFNjaGVtYVZhbFB0cgorICoKKyAqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIGluIHRoZSB0aW1lIHBvcnRpb24gb2YgQGR0LgorICoKKyAqIFJldHVybnMgc2Vjb25kcy4KKyAqLworI2RlZmluZSBUSU1FX1RPX05VTUJFUihkdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKChkb3VibGUpKChkdC0+dmFsdWUuZGF0ZS5ob3VyICogU0VDU19QRVJfSE9VUikgKyAgIFwKKyAgICAgICAgICAgICAgKGR0LT52YWx1ZS5kYXRlLm1pbiAqIFNFQ1NfUEVSX01JTikgKwlcCisgICAgICAgICAgICAgIChkdC0+dmFsdWUuZGF0ZS50em8gKiBTRUNTX1BFUl9NSU4pKSArCVwKKyAgICAgICAgICAgICAgIGR0LT52YWx1ZS5kYXRlLnNlYykKKworLyoqCisgKiB4bWxTY2hlbWFDb21wYXJlRGF0ZXM6CisgKiBAeDogIGEgZmlyc3QgZGF0ZS90aW1lIHZhbHVlCisgKiBAeTogIGEgc2Vjb25kIGRhdGUvdGltZSB2YWx1ZQorICoKKyAqIENvbXBhcmUgMiBkYXRlL3RpbWVzCisgKgorICogUmV0dXJucyAtMSBpZiB4IDwgeSwgMCBpZiB4ID09IHksIDEgaWYgeCA+IHksIDIgaWYgeCA8PiB5LCBhbmQgLTIgaW4KKyAqIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ29tcGFyZURhdGVzICh4bWxTY2hlbWFWYWxQdHIgeCwgeG1sU2NoZW1hVmFsUHRyIHkpCit7CisgICAgdW5zaWduZWQgY2hhciB4bWFzaywgeW1hc2ssIHhvcl9tYXNrLCBhbmRfbWFzazsKKyAgICB4bWxTY2hlbWFWYWxQdHIgcDEsIHAyLCBxMSwgcTI7CisgICAgbG9uZyBwMWQsIHAyZCwgcTFkLCBxMmQ7CisKKyAgICBpZiAoKHggPT0gTlVMTCkgfHwgKHkgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAtMjsKKworICAgIGlmICh4LT52YWx1ZS5kYXRlLnR6X2ZsYWcpIHsKKworICAgICAgICBpZiAoIXktPnZhbHVlLmRhdGUudHpfZmxhZykgeworICAgICAgICAgICAgcDEgPSB4bWxTY2hlbWFEYXRlTm9ybWFsaXplKHgsIDApOworICAgICAgICAgICAgcDFkID0gX3htbFNjaGVtYURhdGVDYXN0WU1Ub0RheXMocDEpICsgcDEtPnZhbHVlLmRhdGUuZGF5OworICAgICAgICAgICAgLyogbm9ybWFsaXplIHkgKyAxNDowMCAqLworICAgICAgICAgICAgcTEgPSB4bWxTY2hlbWFEYXRlTm9ybWFsaXplKHksICgxNCAqIFNFQ1NfUEVSX0hPVVIpKTsKKworICAgICAgICAgICAgcTFkID0gX3htbFNjaGVtYURhdGVDYXN0WU1Ub0RheXMocTEpICsgcTEtPnZhbHVlLmRhdGUuZGF5OworICAgICAgICAgICAgaWYgKHAxZCA8IHExZCkgeworCQl4bWxTY2hlbWFGcmVlVmFsdWUocDEpOworCQl4bWxTY2hlbWFGcmVlVmFsdWUocTEpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKwkgICAgfSBlbHNlIGlmIChwMWQgPT0gcTFkKSB7CisgICAgICAgICAgICAgICAgZG91YmxlIHNlYzsKKworICAgICAgICAgICAgICAgIHNlYyA9IFRJTUVfVE9fTlVNQkVSKHAxKSAtIFRJTUVfVE9fTlVNQkVSKHExKTsKKyAgICAgICAgICAgICAgICBpZiAoc2VjIDwgMC4wKSB7CisJCSAgICB4bWxTY2hlbWFGcmVlVmFsdWUocDEpOworCQkgICAgeG1sU2NoZW1hRnJlZVZhbHVlKHExKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworCQl9IGVsc2UgeworCQkgICAgaW50IHJldCA9IDA7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbGl6ZSB5IC0gMTQ6MDAgKi8KKyAgICAgICAgICAgICAgICAgICAgcTIgPSB4bWxTY2hlbWFEYXRlTm9ybWFsaXplKHksIC0oMTQgKiBTRUNTX1BFUl9IT1VSKSk7CisgICAgICAgICAgICAgICAgICAgIHEyZCA9IF94bWxTY2hlbWFEYXRlQ2FzdFlNVG9EYXlzKHEyKSArIHEyLT52YWx1ZS5kYXRlLmRheTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHAxZCA+IHEyZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHAxZCA9PSBxMmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlYyA9IFRJTUVfVE9fTlVNQkVSKHAxKSAtIFRJTUVfVE9fTlVNQkVSKHEyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWMgPiAwLjApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAyOyAvKiBpbmRldGVybWluYXRlICovCisgICAgICAgICAgICAgICAgICAgIH0KKwkJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZShwMSk7CisJCSAgICB4bWxTY2hlbWFGcmVlVmFsdWUocTEpOworCQkgICAgeG1sU2NoZW1hRnJlZVZhbHVlKHEyKTsKKwkJICAgIGlmIChyZXQgIT0gMCkKKwkJICAgICAgICByZXR1cm4ocmV0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworCQl4bWxTY2hlbWFGcmVlVmFsdWUocDEpOworCQl4bWxTY2hlbWFGcmVlVmFsdWUocTEpOworCSAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHktPnZhbHVlLmRhdGUudHpfZmxhZykgeworICAgICAgICBxMSA9IHhtbFNjaGVtYURhdGVOb3JtYWxpemUoeSwgMCk7CisgICAgICAgIHExZCA9IF94bWxTY2hlbWFEYXRlQ2FzdFlNVG9EYXlzKHExKSArIHExLT52YWx1ZS5kYXRlLmRheTsKKworICAgICAgICAvKiBub3JtYWxpemUgeCAtIDE0OjAwICovCisgICAgICAgIHAxID0geG1sU2NoZW1hRGF0ZU5vcm1hbGl6ZSh4LCAtKDE0ICogU0VDU19QRVJfSE9VUikpOworICAgICAgICBwMWQgPSBfeG1sU2NoZW1hRGF0ZUNhc3RZTVRvRGF5cyhwMSkgKyBwMS0+dmFsdWUuZGF0ZS5kYXk7CisKKyAgICAgICAgaWYgKHAxZCA8IHExZCkgeworCSAgICB4bWxTY2hlbWFGcmVlVmFsdWUocDEpOworCSAgICB4bWxTY2hlbWFGcmVlVmFsdWUocTEpOworICAgICAgICAgICAgcmV0dXJuIC0xOworCX0gZWxzZSBpZiAocDFkID09IHExZCkgeworICAgICAgICAgICAgZG91YmxlIHNlYzsKKworICAgICAgICAgICAgc2VjID0gVElNRV9UT19OVU1CRVIocDEpIC0gVElNRV9UT19OVU1CRVIocTEpOworICAgICAgICAgICAgaWYgKHNlYyA8IDAuMCkgeworCQl4bWxTY2hlbWFGcmVlVmFsdWUocDEpOworCQl4bWxTY2hlbWFGcmVlVmFsdWUocTEpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGludCByZXQgPSAwOworICAgICAgICAgICAgICAgIC8qIG5vcm1hbGl6ZSB4ICsgMTQ6MDAgKi8KKyAgICAgICAgICAgICAgICBwMiA9IHhtbFNjaGVtYURhdGVOb3JtYWxpemUoeCwgKDE0ICogU0VDU19QRVJfSE9VUikpOworICAgICAgICAgICAgICAgIHAyZCA9IF94bWxTY2hlbWFEYXRlQ2FzdFlNVG9EYXlzKHAyKSArIHAyLT52YWx1ZS5kYXRlLmRheTsKKworICAgICAgICAgICAgICAgIGlmIChwMmQgPiBxMWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gMTsKKwkJfSBlbHNlIGlmIChwMmQgPT0gcTFkKSB7CisgICAgICAgICAgICAgICAgICAgIHNlYyA9IFRJTUVfVE9fTlVNQkVSKHAyKSAtIFRJTUVfVE9fTlVNQkVSKHExKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNlYyA+IDAuMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDI7IC8qIGluZGV0ZXJtaW5hdGUgKi8KKyAgICAgICAgICAgICAgICB9CisJCXhtbFNjaGVtYUZyZWVWYWx1ZShwMSk7CisJCXhtbFNjaGVtYUZyZWVWYWx1ZShxMSk7CisJCXhtbFNjaGVtYUZyZWVWYWx1ZShwMik7CisJCWlmIChyZXQgIT0gMCkKKwkJICAgIHJldHVybihyZXQpOworICAgICAgICAgICAgfQorCX0gZWxzZSB7CisJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZShwMSk7CisJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZShxMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIGlmIHRoZSBzYW1lIHR5cGUgdGhlbiBjYWxjdWxhdGUgdGhlIGRpZmZlcmVuY2UKKyAgICAgKi8KKyAgICBpZiAoeC0+dHlwZSA9PSB5LT50eXBlKSB7CisgICAgICAgIGludCByZXQgPSAwOworICAgICAgICBxMSA9IHhtbFNjaGVtYURhdGVOb3JtYWxpemUoeSwgMCk7CisgICAgICAgIHExZCA9IF94bWxTY2hlbWFEYXRlQ2FzdFlNVG9EYXlzKHExKSArIHExLT52YWx1ZS5kYXRlLmRheTsKKworICAgICAgICBwMSA9IHhtbFNjaGVtYURhdGVOb3JtYWxpemUoeCwgMCk7CisgICAgICAgIHAxZCA9IF94bWxTY2hlbWFEYXRlQ2FzdFlNVG9EYXlzKHAxKSArIHAxLT52YWx1ZS5kYXRlLmRheTsKKworICAgICAgICBpZiAocDFkIDwgcTFkKSB7CisgICAgICAgICAgICByZXQgPSAtMTsKKwl9IGVsc2UgaWYgKHAxZCA+IHExZCkgeworICAgICAgICAgICAgcmV0ID0gMTsKKwl9IGVsc2UgeworICAgICAgICAgICAgZG91YmxlIHNlYzsKKworICAgICAgICAgICAgc2VjID0gVElNRV9UT19OVU1CRVIocDEpIC0gVElNRV9UT19OVU1CRVIocTEpOworICAgICAgICAgICAgaWYgKHNlYyA8IDAuMCkKKyAgICAgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNlYyA+IDAuMCkKKyAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgCisgICAgICAgIH0KKwl4bWxTY2hlbWFGcmVlVmFsdWUocDEpOworCXhtbFNjaGVtYUZyZWVWYWx1ZShxMSk7CisgICAgICAgIHJldHVybihyZXQpOworICAgIH0KKworICAgIHN3aXRjaCAoeC0+dHlwZSkgeworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0RBVEVUSU1FOgorICAgICAgICAgICAgeG1hc2sgPSAweGY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19EQVRFOgorICAgICAgICAgICAgeG1hc2sgPSAweDc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HWUVBUjoKKyAgICAgICAgICAgIHhtYXNrID0gMHgxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfR01PTlRIOgorICAgICAgICAgICAgeG1hc2sgPSAweDI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HREFZOgorICAgICAgICAgICAgeG1hc2sgPSAweDM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HWUVBUk1PTlRIOgorICAgICAgICAgICAgeG1hc2sgPSAweDM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HTU9OVEhEQVk6CisgICAgICAgICAgICB4bWFzayA9IDB4NjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX1RJTUU6CisgICAgICAgICAgICB4bWFzayA9IDB4ODsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgeG1hc2sgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh5LT50eXBlKSB7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfREFURVRJTUU6CisgICAgICAgICAgICB5bWFzayA9IDB4ZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0RBVEU6CisgICAgICAgICAgICB5bWFzayA9IDB4NzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0dZRUFSOgorICAgICAgICAgICAgeW1hc2sgPSAweDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HTU9OVEg6CisgICAgICAgICAgICB5bWFzayA9IDB4MjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0dEQVk6CisgICAgICAgICAgICB5bWFzayA9IDB4MzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0dZRUFSTU9OVEg6CisgICAgICAgICAgICB5bWFzayA9IDB4MzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0dNT05USERBWToKKyAgICAgICAgICAgIHltYXNrID0gMHg2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVElNRToKKyAgICAgICAgICAgIHltYXNrID0gMHg4OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB5bWFzayA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICB4b3JfbWFzayA9IHhtYXNrIF4geW1hc2s7ICAgICAgICAgICAvKiBtYXJrIHR5cGUgZGlmZmVyZW5jZXMgKi8KKyAgICBhbmRfbWFzayA9IHhtYXNrICYgeW1hc2s7ICAgICAgICAgICAvKiBtYXJrIGZpZWxkIHNwZWNpZmljYXRpb24gKi8KKworICAgIC8qIHllYXIgKi8KKyAgICBpZiAoeG9yX21hc2sgJiAxKQorICAgICAgICByZXR1cm4gMjsgLyogaW5kZXRlcm1pbmF0ZSAqLworICAgIGVsc2UgaWYgKGFuZF9tYXNrICYgMSkgeworICAgICAgICBpZiAoeC0+dmFsdWUuZGF0ZS55ZWFyIDwgeS0+dmFsdWUuZGF0ZS55ZWFyKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBlbHNlIGlmICh4LT52YWx1ZS5kYXRlLnllYXIgPiB5LT52YWx1ZS5kYXRlLnllYXIpCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAvKiBtb250aCAqLworICAgIGlmICh4b3JfbWFzayAmIDIpCisgICAgICAgIHJldHVybiAyOyAvKiBpbmRldGVybWluYXRlICovCisgICAgZWxzZSBpZiAoYW5kX21hc2sgJiAyKSB7CisgICAgICAgIGlmICh4LT52YWx1ZS5kYXRlLm1vbiA8IHktPnZhbHVlLmRhdGUubW9uKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBlbHNlIGlmICh4LT52YWx1ZS5kYXRlLm1vbiA+IHktPnZhbHVlLmRhdGUubW9uKQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgLyogZGF5ICovCisgICAgaWYgKHhvcl9tYXNrICYgNCkKKyAgICAgICAgcmV0dXJuIDI7IC8qIGluZGV0ZXJtaW5hdGUgKi8KKyAgICBlbHNlIGlmIChhbmRfbWFzayAmIDQpIHsKKyAgICAgICAgaWYgKHgtPnZhbHVlLmRhdGUuZGF5IDwgeS0+dmFsdWUuZGF0ZS5kYXkpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGVsc2UgaWYgKHgtPnZhbHVlLmRhdGUuZGF5ID4geS0+dmFsdWUuZGF0ZS5kYXkpCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAvKiB0aW1lICovCisgICAgaWYgKHhvcl9tYXNrICYgOCkKKyAgICAgICAgcmV0dXJuIDI7IC8qIGluZGV0ZXJtaW5hdGUgKi8KKyAgICBlbHNlIGlmIChhbmRfbWFzayAmIDgpIHsKKyAgICAgICAgaWYgKHgtPnZhbHVlLmRhdGUuaG91ciA8IHktPnZhbHVlLmRhdGUuaG91cikKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgZWxzZSBpZiAoeC0+dmFsdWUuZGF0ZS5ob3VyID4geS0+dmFsdWUuZGF0ZS5ob3VyKQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGVsc2UgaWYgKHgtPnZhbHVlLmRhdGUubWluIDwgeS0+dmFsdWUuZGF0ZS5taW4pCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGVsc2UgaWYgKHgtPnZhbHVlLmRhdGUubWluID4geS0+dmFsdWUuZGF0ZS5taW4pCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgZWxzZSBpZiAoeC0+dmFsdWUuZGF0ZS5zZWMgPCB5LT52YWx1ZS5kYXRlLnNlYykKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgZWxzZSBpZiAoeC0+dmFsdWUuZGF0ZS5zZWMgPiB5LT52YWx1ZS5kYXRlLnNlYykKKyAgICAgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNvbXBhcmVQcmVzZXJ2ZVJlcGxhY2VTdHJpbmdzOgorICogQHg6ICBhIGZpcnN0IHN0cmluZyB2YWx1ZQorICogQHk6ICBhIHNlY29uZCBzdHJpbmcgdmFsdWUKKyAqIEBpbnZlcnQ6IGludmVydHMgdGhlIHJlc3VsdCBpZiB4IDwgeSBvciB4ID4geS4KKyAqCisgKiBDb21wYXJlIDIgc3RyaW5nIGZvciB0aGVpciBub3JtYWxpemVkIHZhbHVlcy4KKyAqIEB4IGlzIGEgc3RyaW5nIHdpdGggd2hpdGVzcGFjZSBvZiAicHJlc2VydmUiLCBAeSBpcworICogYSBzdHJpbmcgd2l0aCBhIHdoaXRlc3BhY2Ugb2YgInJlcGxhY2UiLiBJLmUuIEB4IGNvdWxkCisgKiBiZSBhbiAieHNkOnN0cmluZyIgYW5kIEB5IGFuICJ4c2Q6bm9ybWFsaXplZFN0cmluZyIuCisgKgorICogUmV0dXJucyAtMSBpZiB4IDwgeSwgMCBpZiB4ID09IHksIDEgaWYgeCA+IHksIGFuZCAtMiBpbgorICogY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlUHJlc2VydmVSZXBsYWNlU3RyaW5ncyhjb25zdCB4bWxDaGFyICp4LAorCQkJCSAgICAgICBjb25zdCB4bWxDaGFyICp5LAorCQkJCSAgICAgICBpbnQgaW52ZXJ0KQoreworICAgIGludCB0bXA7CisgICAgCisgICAgd2hpbGUgKCgqeCAhPSAwKSAmJiAoKnkgIT0gMCkpIHsKKwlpZiAoSVNfV1NQX1JFUExBQ0VfQ0goKnkpKSB7CisJICAgIGlmICghIElTX1dTUF9TUEFDRV9DSCgqeCkpIHsKKwkJaWYgKCgqeCAtIDB4MjApIDwgMCkgeworCQkgICAgaWYgKGludmVydCkKKwkJCXJldHVybigxKTsKKwkJICAgIGVsc2UKKwkJCXJldHVybigtMSk7CisJCX0gZWxzZSB7CisJCSAgICBpZiAoaW52ZXJ0KQorCQkJcmV0dXJuKC0xKTsKKwkJICAgIGVsc2UKKwkJCXJldHVybigxKTsKKwkJfQorCSAgICB9CSAgICAKKwl9IGVsc2UgeworCSAgICB0bXAgPSAqeCAtICp5OworCSAgICBpZiAodG1wIDwgMCkgeworCQlpZiAoaW52ZXJ0KQorCQkgICAgcmV0dXJuKDEpOworCQllbHNlCisJCSAgICByZXR1cm4oLTEpOworCSAgICB9CisJICAgIGlmICh0bXAgPiAwKSB7CisJCWlmIChpbnZlcnQpCisJCSAgICByZXR1cm4oLTEpOworCQllbHNlCisJCSAgICByZXR1cm4oMSk7CisJICAgIH0KKwl9CisJeCsrOworCXkrKzsKKyAgICB9CisgICAgaWYgKCp4ICE9IDApIHsKKwlpZiAoaW52ZXJ0KQorCSAgICByZXR1cm4oLTEpOworCWVsc2UKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICBpZiAoKnkgIT0gMCkgeworCWlmIChpbnZlcnQpCisJICAgIHJldHVybigxKTsKKwllbHNlCisJICAgIHJldHVybigtMSk7CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFDb21wYXJlUHJlc2VydmVDb2xsYXBzZVN0cmluZ3M6CisgKiBAeDogIGEgZmlyc3Qgc3RyaW5nIHZhbHVlCisgKiBAeTogIGEgc2Vjb25kIHN0cmluZyB2YWx1ZQorICoKKyAqIENvbXBhcmUgMiBzdHJpbmcgZm9yIHRoZWlyIG5vcm1hbGl6ZWQgdmFsdWVzLgorICogQHggaXMgYSBzdHJpbmcgd2l0aCB3aGl0ZXNwYWNlIG9mICJwcmVzZXJ2ZSIsIEB5IGlzCisgKiBhIHN0cmluZyB3aXRoIGEgd2hpdGVzcGFjZSBvZiAiY29sbGFwc2UiLiBJLmUuIEB4IGNvdWxkCisgKiBiZSBhbiAieHNkOnN0cmluZyIgYW5kIEB5IGFuICJ4c2Q6bm9ybWFsaXplZFN0cmluZyIuCisgKgorICogUmV0dXJucyAtMSBpZiB4IDwgeSwgMCBpZiB4ID09IHksIDEgaWYgeCA+IHksIGFuZCAtMiBpbgorICogY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlUHJlc2VydmVDb2xsYXBzZVN0cmluZ3MoY29uc3QgeG1sQ2hhciAqeCwKKwkJCQkgICAgICAgIGNvbnN0IHhtbENoYXIgKnksCisJCQkJCWludCBpbnZlcnQpCit7CisgICAgaW50IHRtcDsKKworICAgIC8qIAorICAgICogU2tpcCBsZWFkaW5nIGJsYW5rIGNoYXJzIG9mIHRoZSBjb2xsYXBzZWQgc3RyaW5nLgorICAgICovCisgICAgd2hpbGUgSVNfV1NQX0JMQU5LX0NIKCp5KQorCXkrKzsKKworICAgIHdoaWxlICgoKnggIT0gMCkgJiYgKCp5ICE9IDApKSB7CisJaWYgSVNfV1NQX0JMQU5LX0NIKCp5KSB7CisJICAgIGlmICghIElTX1dTUF9TUEFDRV9DSCgqeCkpIHsKKwkJLyoKKwkJKiBUaGUgeXYgY2hhcmFjdGVyIHdvdWxkIGhhdmUgYmVlbiByZXBsYWNlZCB0byAweDIwLgorCQkqLworCQlpZiAoKCp4IC0gMHgyMCkgPCAwKSB7CisJCSAgICBpZiAoaW52ZXJ0KQorCQkJcmV0dXJuKDEpOworCQkgICAgZWxzZQorCQkJcmV0dXJuKC0xKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmIChpbnZlcnQpCisJCQlyZXR1cm4oLTEpOworCQkgICAgZWxzZQorCQkJcmV0dXJuKDEpOworCQl9CisJICAgIH0KKwkgICAgeCsrOworCSAgICB5Kys7CisJICAgIC8qCisJICAgICogU2tpcCBjb250aWd1b3VzIGJsYW5rIGNoYXJzIG9mIHRoZSBjb2xsYXBzZWQgc3RyaW5nLgorCSAgICAqLworCSAgICB3aGlsZSBJU19XU1BfQkxBTktfQ0goKnkpCisJCXkrKzsKKwl9IGVsc2UgeworCSAgICB0bXAgPSAqeCsrIC0gKnkrKzsKKwkgICAgaWYgKHRtcCA8IDApIHsKKwkJaWYgKGludmVydCkKKwkJICAgIHJldHVybigxKTsKKwkJZWxzZQorCQkgICAgcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICBpZiAodG1wID4gMCkgeworCQlpZiAoaW52ZXJ0KQorCQkgICAgcmV0dXJuKC0xKTsKKwkJZWxzZQorCQkgICAgcmV0dXJuKDEpOworCSAgICB9CisJfQorICAgIH0KKyAgICBpZiAoKnggIT0gMCkgeworCSBpZiAoaW52ZXJ0KQorCSAgICAgcmV0dXJuKC0xKTsKKwkgZWxzZQorCSAgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICBpZiAoKnkgIT0gMCkgeworCS8qCisJKiBTa2lwIHRyYWlsaW5nIGJsYW5rIGNoYXJzIG9mIHRoZSBjb2xsYXBzZWQgc3RyaW5nLgorCSovCisJd2hpbGUgSVNfV1NQX0JMQU5LX0NIKCp5KQorCSAgICB5Kys7CisJaWYgKCp5ICE9IDApIHsKKwkgICAgaWYgKGludmVydCkKKwkJcmV0dXJuKDEpOworCSAgICBlbHNlCisJCXJldHVybigtMSk7CisJfQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ29tcGFyZVByZXNlcnZlQ29sbGFwc2VTdHJpbmdzOgorICogQHg6ICBhIGZpcnN0IHN0cmluZyB2YWx1ZQorICogQHk6ICBhIHNlY29uZCBzdHJpbmcgdmFsdWUKKyAqCisgKiBDb21wYXJlIDIgc3RyaW5nIGZvciB0aGVpciBub3JtYWxpemVkIHZhbHVlcy4KKyAqIEB4IGlzIGEgc3RyaW5nIHdpdGggd2hpdGVzcGFjZSBvZiAicHJlc2VydmUiLCBAeSBpcworICogYSBzdHJpbmcgd2l0aCBhIHdoaXRlc3BhY2Ugb2YgImNvbGxhcHNlIi4gSS5lLiBAeCBjb3VsZAorICogYmUgYW4gInhzZDpzdHJpbmciIGFuZCBAeSBhbiAieHNkOm5vcm1hbGl6ZWRTdHJpbmciLgorICoKKyAqIFJldHVybnMgLTEgaWYgeCA8IHksIDAgaWYgeCA9PSB5LCAxIGlmIHggPiB5LCBhbmQgLTIgaW4KKyAqIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hQ29tcGFyZVJlcGxhY2VDb2xsYXBzZVN0cmluZ3MoY29uc3QgeG1sQ2hhciAqeCwKKwkJCQkgICAgICAgY29uc3QgeG1sQ2hhciAqeSwKKwkJCQkgICAgICAgaW50IGludmVydCkKK3sKKyAgICBpbnQgdG1wOworCisgICAgLyogCisgICAgKiBTa2lwIGxlYWRpbmcgYmxhbmsgY2hhcnMgb2YgdGhlIGNvbGxhcHNlZCBzdHJpbmcuCisgICAgKi8KKyAgICB3aGlsZSBJU19XU1BfQkxBTktfQ0goKnkpCisJeSsrOworICAgIAorICAgIHdoaWxlICgoKnggIT0gMCkgJiYgKCp5ICE9IDApKSB7CisJaWYgSVNfV1NQX0JMQU5LX0NIKCp5KSB7CisJICAgIGlmICghIElTX1dTUF9CTEFOS19DSCgqeCkpIHsKKwkJLyoKKwkJKiBUaGUgeXYgY2hhcmFjdGVyIHdvdWxkIGhhdmUgYmVlbiByZXBsYWNlZCB0byAweDIwLgorCQkqLworCQlpZiAoKCp4IC0gMHgyMCkgPCAwKSB7CisJCSAgICBpZiAoaW52ZXJ0KQorCQkJcmV0dXJuKDEpOworCQkgICAgZWxzZQorCQkJcmV0dXJuKC0xKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmIChpbnZlcnQpCisJCQlyZXR1cm4oLTEpOworCQkgICAgZWxzZQorCQkJcmV0dXJuKDEpOworCQl9CisJICAgIH0KKwkgICAgeCsrOworCSAgICB5Kys7CSAgICAKKwkgICAgLyogCisJICAgICogU2tpcCBjb250aWd1b3VzIGJsYW5rIGNoYXJzIG9mIHRoZSBjb2xsYXBzZWQgc3RyaW5nLgorCSAgICAqLworCSAgICB3aGlsZSBJU19XU1BfQkxBTktfQ0goKnkpCisJCXkrKzsKKwl9IGVsc2UgeworCSAgICBpZiBJU19XU1BfQkxBTktfQ0goKngpIHsKKwkJLyoKKwkJKiBUaGUgeHYgY2hhcmFjdGVyIHdvdWxkIGhhdmUgYmVlbiByZXBsYWNlZCB0byAweDIwLgorCQkqLworCQlpZiAoKDB4MjAgLSAqeSkgPCAwKSB7CisJCSAgICBpZiAoaW52ZXJ0KQorCQkJcmV0dXJuKDEpOworCQkgICAgZWxzZQorCQkJcmV0dXJuKC0xKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmIChpbnZlcnQpCisJCQlyZXR1cm4oLTEpOworCQkgICAgZWxzZQorCQkJcmV0dXJuKDEpOworCQl9CisJICAgIH0KKwkgICAgdG1wID0gKngrKyAtICp5Kys7CisJICAgIGlmICh0bXAgPCAwKQorCQlyZXR1cm4oLTEpOworCSAgICBpZiAodG1wID4gMCkKKwkJcmV0dXJuKDEpOworCX0KKyAgICB9CisgICAgaWYgKCp4ICE9IDApIHsKKwkgaWYgKGludmVydCkKKwkgICAgIHJldHVybigtMSk7CisJIGVsc2UKKwkgICAgIHJldHVybigxKTsKKyAgICB9ICAgCisgICAgaWYgKCp5ICE9IDApIHsKKwkvKgorCSogU2tpcCB0cmFpbGluZyBibGFuayBjaGFycyBvZiB0aGUgY29sbGFwc2VkIHN0cmluZy4KKwkqLworCXdoaWxlIElTX1dTUF9CTEFOS19DSCgqeSkKKwkgICAgeSsrOworCWlmICgqeSAhPSAwKSB7CisJICAgIGlmIChpbnZlcnQpCisJCXJldHVybigxKTsKKwkgICAgZWxzZQorCQlyZXR1cm4oLTEpOworCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisKKy8qKgorICogeG1sU2NoZW1hQ29tcGFyZVJlcGxhY2VkU3RyaW5nczoKKyAqIEB4OiAgYSBmaXJzdCBzdHJpbmcgdmFsdWUKKyAqIEB5OiAgYSBzZWNvbmQgc3RyaW5nIHZhbHVlCisgKgorICogQ29tcGFyZSAyIHN0cmluZyBmb3IgdGhlaXIgbm9ybWFsaXplZCB2YWx1ZXMuCisgKgorICogUmV0dXJucyAtMSBpZiB4IDwgeSwgMCBpZiB4ID09IHksIDEgaWYgeCA+IHksIGFuZCAtMiBpbgorICogY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlUmVwbGFjZWRTdHJpbmdzKGNvbnN0IHhtbENoYXIgKngsCisJCQkJY29uc3QgeG1sQ2hhciAqeSkKK3sKKyAgICBpbnQgdG1wOworICAgCisgICAgd2hpbGUgKCgqeCAhPSAwKSAmJiAoKnkgIT0gMCkpIHsKKwlpZiBJU19XU1BfQkxBTktfQ0goKnkpIHsKKwkgICAgaWYgKCEgSVNfV1NQX0JMQU5LX0NIKCp4KSkgeworCQlpZiAoKCp4IC0gMHgyMCkgPCAwKQorICAgIAkJICAgIHJldHVybigtMSk7CisJCWVsc2UKKwkJICAgIHJldHVybigxKTsKKwkgICAgfQkgICAgCisJfSBlbHNlIHsKKwkgICAgaWYgSVNfV1NQX0JMQU5LX0NIKCp4KSB7CisJCWlmICgoMHgyMCAtICp5KSA8IDApCisgICAgCQkgICAgcmV0dXJuKC0xKTsKKwkJZWxzZQorCQkgICAgcmV0dXJuKDEpOworCSAgICB9CisJICAgIHRtcCA9ICp4IC0gKnk7CisJICAgIGlmICh0bXAgPCAwKQorICAgIAkJcmV0dXJuKC0xKTsKKwkgICAgaWYgKHRtcCA+IDApCisgICAgCQlyZXR1cm4oMSk7CisJfQorCXgrKzsKKwl5Kys7CisgICAgfQorICAgIGlmICgqeCAhPSAwKQorICAgICAgICByZXR1cm4oMSk7CisgICAgaWYgKCp5ICE9IDApCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNvbXBhcmVOb3JtU3RyaW5nczoKKyAqIEB4OiAgYSBmaXJzdCBzdHJpbmcgdmFsdWUKKyAqIEB5OiAgYSBzZWNvbmQgc3RyaW5nIHZhbHVlCisgKgorICogQ29tcGFyZSAyIHN0cmluZyBmb3IgdGhlaXIgbm9ybWFsaXplZCB2YWx1ZXMuCisgKgorICogUmV0dXJucyAtMSBpZiB4IDwgeSwgMCBpZiB4ID09IHksIDEgaWYgeCA+IHksIGFuZCAtMiBpbgorICogY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlTm9ybVN0cmluZ3MoY29uc3QgeG1sQ2hhciAqeCwKKwkJCSAgICBjb25zdCB4bWxDaGFyICp5KSB7CisgICAgaW50IHRtcDsKKyAgICAKKyAgICB3aGlsZSAoSVNfQkxBTktfQ0goKngpKSB4Kys7CisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCp5KSkgeSsrOworICAgIHdoaWxlICgoKnggIT0gMCkgJiYgKCp5ICE9IDApKSB7CisJaWYgKElTX0JMQU5LX0NIKCp4KSkgeworCSAgICBpZiAoIUlTX0JMQU5LX0NIKCp5KSkgeworCQl0bXAgPSAqeCAtICp5OworCQlyZXR1cm4odG1wKTsKKwkgICAgfQorCSAgICB3aGlsZSAoSVNfQkxBTktfQ0goKngpKSB4Kys7CisJICAgIHdoaWxlIChJU19CTEFOS19DSCgqeSkpIHkrKzsKKwl9IGVsc2UgeworCSAgICB0bXAgPSAqeCsrIC0gKnkrKzsKKwkgICAgaWYgKHRtcCA8IDApCisJCXJldHVybigtMSk7CisJICAgIGlmICh0bXAgPiAwKQorCQlyZXR1cm4oMSk7CisJfQorICAgIH0KKyAgICBpZiAoKnggIT0gMCkgeworCXdoaWxlIChJU19CTEFOS19DSCgqeCkpIHgrKzsKKwlpZiAoKnggIT0gMCkKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICBpZiAoKnkgIT0gMCkgeworCXdoaWxlIChJU19CTEFOS19DSCgqeSkpIHkrKzsKKwlpZiAoKnkgIT0gMCkKKwkgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNvbXBhcmVGbG9hdHM6CisgKiBAeDogIGEgZmlyc3QgZmxvYXQgb3IgZG91YmxlIHZhbHVlCisgKiBAeTogIGEgc2Vjb25kIGZsb2F0IG9yIGRvdWJsZSB2YWx1ZQorICoKKyAqIENvbXBhcmUgMiB2YWx1ZXMKKyAqCisgKiBSZXR1cm5zIC0xIGlmIHggPCB5LCAwIGlmIHggPT0geSwgMSBpZiB4ID4geSwgMiBpZiB4IDw+IHksIGFuZCAtMiBpbgorICogY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlRmxvYXRzKHhtbFNjaGVtYVZhbFB0ciB4LCB4bWxTY2hlbWFWYWxQdHIgeSkgeworICAgIGRvdWJsZSBkMSwgZDI7CisKKyAgICBpZiAoKHggPT0gTlVMTCkgfHwgKHkgPT0gTlVMTCkpCisJcmV0dXJuKC0yKTsKKworICAgIC8qCisgICAgICogQ2FzdCBldmVyeXRoaW5nIHRvIGRvdWJsZXMuCisgICAgICovCisgICAgaWYgKHgtPnR5cGUgPT0gWE1MX1NDSEVNQVNfRE9VQkxFKQorCWQxID0geC0+dmFsdWUuZDsKKyAgICBlbHNlIGlmICh4LT50eXBlID09IFhNTF9TQ0hFTUFTX0ZMT0FUKQorCWQxID0geC0+dmFsdWUuZjsKKyAgICBlbHNlCisJcmV0dXJuKC0yKTsKKworICAgIGlmICh5LT50eXBlID09IFhNTF9TQ0hFTUFTX0RPVUJMRSkKKwlkMiA9IHktPnZhbHVlLmQ7CisgICAgZWxzZSBpZiAoeS0+dHlwZSA9PSBYTUxfU0NIRU1BU19GTE9BVCkKKwlkMiA9IHktPnZhbHVlLmY7CisgICAgZWxzZQorCXJldHVybigtMik7CisKKyAgICAvKgorICAgICAqIENoZWNrIGZvciBzcGVjaWFsIGNhc2VzLgorICAgICAqLworICAgIGlmICh4bWxYUGF0aElzTmFOKGQxKSkgeworCWlmICh4bWxYUGF0aElzTmFOKGQyKSkKKwkgICAgcmV0dXJuKDApOworCXJldHVybigxKTsKKyAgICB9CisgICAgaWYgKHhtbFhQYXRoSXNOYU4oZDIpKQorCXJldHVybigtMSk7CisgICAgaWYgKGQxID09IHhtbFhQYXRoUElORikgeworCWlmIChkMiA9PSB4bWxYUGF0aFBJTkYpCisJICAgIHJldHVybigwKTsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICBpZiAoZDIgPT0geG1sWFBhdGhQSU5GKQorICAgICAgICByZXR1cm4oLTEpOworICAgIGlmIChkMSA9PSB4bWxYUGF0aE5JTkYpIHsKKwlpZiAoZDIgPT0geG1sWFBhdGhOSU5GKQorCSAgICByZXR1cm4oMCk7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorICAgIGlmIChkMiA9PSB4bWxYUGF0aE5JTkYpCisgICAgICAgIHJldHVybigxKTsKKworICAgIC8qCisgICAgICogYmFzaWMgdGVzdHMsIHRoZSBsYXN0IG9uZSB3ZSBzaG91bGQgaGF2ZSBlcXVhbGl0eSwgYnV0CisgICAgICogcG9ydGFiaWxpdHkgaXMgbW9yZSBpbXBvcnRhbnQgdGhhbiBzcGVlZCBhbmQgaGFuZGxpbmcKKyAgICAgKiBOYU4gb3IgSW5mIGluIGEgcG9ydGFibGUgd2F5IGlzIGFsd2F5cyBhIGNoYWxsZW5nZSwgc28gLi4uCisgICAgICovCisgICAgaWYgKGQxIDwgZDIpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoZDEgPiBkMikKKwlyZXR1cm4oMSk7CisgICAgaWYgKGQxID09IGQyKQorCXJldHVybigwKTsKKyAgICByZXR1cm4oMik7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ29tcGFyZVZhbHVlczoKKyAqIEB4OiAgYSBmaXJzdCB2YWx1ZQorICogQHh2YWx1ZTogdGhlIGZpcnN0IHZhbHVlIGFzIGEgc3RyaW5nIChvcHRpb25hbCkKKyAqIEB4d3RzcDogdGhlIHdoaXRlc3BhY2UgdHlwZQorICogQHk6ICBhIHNlY29uZCB2YWx1ZQorICogQHh2YWx1ZTogdGhlIHNlY29uZCB2YWx1ZSBhcyBhIHN0cmluZyAob3B0aW9uYWwpCisgKiBAeXd0c3A6IHRoZSB3aGl0ZXNwYWNlIHR5cGUKKyAqCisgKiBDb21wYXJlIDIgdmFsdWVzCisgKgorICogUmV0dXJucyAtMSBpZiB4IDwgeSwgMCBpZiB4ID09IHksIDEgaWYgeCA+IHksIDIgaWYgeCA8PiB5LCAzIGlmIG5vdAorICogY29tcGFyYWJsZSBhbmQgLTIgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlVmFsdWVzSW50ZXJuYWwoeG1sU2NoZW1hVmFsVHlwZSB4dHlwZSwKKwkJCSAgICAgICB4bWxTY2hlbWFWYWxQdHIgeCwKKwkJCSAgICAgICBjb25zdCB4bWxDaGFyICp4dmFsdWUsCisJCQkgICAgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB4d3MsCisJCQkgICAgICAgeG1sU2NoZW1hVmFsVHlwZSB5dHlwZSwKKwkJCSAgICAgICB4bWxTY2hlbWFWYWxQdHIgeSwKKwkJCSAgICAgICBjb25zdCB4bWxDaGFyICp5dmFsdWUsCisJCQkgICAgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB5d3MpCit7CisgICAgc3dpdGNoICh4dHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQVNfVU5LTk9XTjoKKwljYXNlIFhNTF9TQ0hFTUFTX0FOWVRZUEU6CisJICAgIHJldHVybigtMik7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfSU5URUdFUjoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OUElOVEVHRVI6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTklOVEVHRVI6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTk5JTlRFR0VSOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX1BJTlRFR0VSOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0lOVDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19VSU5UOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0xPTkc6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVUxPTkc6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfU0hPUlQ6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVVNIT1JUOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0JZVEU6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVUJZVEU6CisJY2FzZSBYTUxfU0NIRU1BU19ERUNJTUFMOgorCSAgICBpZiAoKHggPT0gTlVMTCkgfHwgKHkgPT0gTlVMTCkpCisJCXJldHVybigtMik7CisJICAgIGlmICh5dHlwZSA9PSB4dHlwZSkKKwkJcmV0dXJuKHhtbFNjaGVtYUNvbXBhcmVEZWNpbWFscyh4LCB5KSk7CisJICAgIGlmICgoeXR5cGUgPT0gWE1MX1NDSEVNQVNfREVDSU1BTCkgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX0lOVEVHRVIpIHx8CisJCSh5dHlwZSA9PSBYTUxfU0NIRU1BU19OUElOVEVHRVIpIHx8CisJCSh5dHlwZSA9PSBYTUxfU0NIRU1BU19OSU5URUdFUikgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX05OSU5URUdFUikgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX1BJTlRFR0VSKSB8fAorCQkoeXR5cGUgPT0gWE1MX1NDSEVNQVNfSU5UKSB8fAorCQkoeXR5cGUgPT0gWE1MX1NDSEVNQVNfVUlOVCkgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX0xPTkcpIHx8CisJCSh5dHlwZSA9PSBYTUxfU0NIRU1BU19VTE9ORykgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX1NIT1JUKSB8fAorCQkoeXR5cGUgPT0gWE1MX1NDSEVNQVNfVVNIT1JUKSB8fAorCQkoeXR5cGUgPT0gWE1MX1NDSEVNQVNfQllURSkgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX1VCWVRFKSkKKwkJcmV0dXJuKHhtbFNjaGVtYUNvbXBhcmVEZWNpbWFscyh4LCB5KSk7CisJICAgIHJldHVybigtMik7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfRFVSQVRJT046CisJICAgIGlmICgoeCA9PSBOVUxMKSB8fCAoeSA9PSBOVUxMKSkKKwkJcmV0dXJuKC0yKTsKKwkgICAgaWYgKHl0eXBlID09IFhNTF9TQ0hFTUFTX0RVUkFUSU9OKQorICAgICAgICAgICAgICAgIHJldHVybih4bWxTY2hlbWFDb21wYXJlRHVyYXRpb25zKHgsIHkpKTsKKyAgICAgICAgICAgIHJldHVybigtMik7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVElNRToKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HREFZOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0dNT05USDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HTU9OVEhEQVk6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfR1lFQVI6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfR1lFQVJNT05USDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19EQVRFOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0RBVEVUSU1FOgorCSAgICBpZiAoKHggPT0gTlVMTCkgfHwgKHkgPT0gTlVMTCkpCisJCXJldHVybigtMik7CisgICAgICAgICAgICBpZiAoKHl0eXBlID09IFhNTF9TQ0hFTUFTX0RBVEVUSU1FKSAgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfVElNRSkgICAgICB8fAorICAgICAgICAgICAgICAgICh5dHlwZSA9PSBYTUxfU0NIRU1BU19HREFZKSAgICAgIHx8CisgICAgICAgICAgICAgICAgKHl0eXBlID09IFhNTF9TQ0hFTUFTX0dNT05USCkgICAgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfR01PTlRIREFZKSB8fAorICAgICAgICAgICAgICAgICh5dHlwZSA9PSBYTUxfU0NIRU1BU19HWUVBUikgICAgIHx8CisgICAgICAgICAgICAgICAgKHl0eXBlID09IFhNTF9TQ0hFTUFTX0RBVEUpICAgICAgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfR1lFQVJNT05USCkpCisgICAgICAgICAgICAgICAgcmV0dXJuICh4bWxTY2hlbWFDb21wYXJlRGF0ZXMoeCwgeSkpOworICAgICAgICAgICAgcmV0dXJuICgtMik7CisJLyogCisJKiBOb3RlIHRoYXQgd2Ugd2lsbCBzdXBwb3J0IGNvbXBhcmlzb24gb2Ygc3RyaW5nIHR5cGVzIGFnYWluc3QKKwkqIGFueVNpbXBsZVR5cGUgYXMgd2VsbC4KKwkqLworCWNhc2UgWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRToKKwljYXNlIFhNTF9TQ0hFTUFTX1NUUklORzoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OT1JNU1RSSU5HOgkJCisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVE9LRU46CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTEFOR1VBR0U6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTk1UT0tFTjoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OQU1FOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX05DTkFNRToKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19JRDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19JRFJFRjoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19FTlRJVFk6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfQU5ZVVJJOgorCXsKKwkgICAgY29uc3QgeG1sQ2hhciAqeHYsICp5djsKKworCSAgICBpZiAoeCA9PSBOVUxMKQorCQl4diA9IHh2YWx1ZTsKKwkgICAgZWxzZQorCQl4diA9IHgtPnZhbHVlLnN0cjsKKwkgICAgaWYgKHkgPT0gTlVMTCkKKwkJeXYgPSB5dmFsdWU7CisJICAgIGVsc2UKKwkJeXYgPSB5LT52YWx1ZS5zdHI7CisJICAgIC8qCisJICAgICogVE9ETzogQ29tcGFyZSB0aG9zZSBhZ2FpbnN0IFFOYW1lLgorCSAgICAqLworCSAgICBpZiAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfUU5BTUUpIHsJCQorCQlUT0RPCisJCWlmICh5ID09IE5VTEwpCisJCSAgICByZXR1cm4oLTIpOyAgICAKKwkJcmV0dXJuICgtMik7CisJICAgIH0KKyAgICAgICAgICAgIGlmICgoeXR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZU0lNUExFVFlQRSkgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX1NUUklORykgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX05PUk1TVFJJTkcpIHx8CisgICAgICAgICAgICAgICAgKHl0eXBlID09IFhNTF9TQ0hFTUFTX1RPS0VOKSB8fAorICAgICAgICAgICAgICAgICh5dHlwZSA9PSBYTUxfU0NIRU1BU19MQU5HVUFHRSkgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfTk1UT0tFTikgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfTkFNRSkgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfTkNOQU1FKSB8fAorICAgICAgICAgICAgICAgICh5dHlwZSA9PSBYTUxfU0NIRU1BU19JRCkgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfSURSRUYpIHx8CisgICAgICAgICAgICAgICAgKHl0eXBlID09IFhNTF9TQ0hFTUFTX0VOVElUWSkgfHwKKyAgICAgICAgICAgICAgICAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfQU5ZVVJJKSkgeworCisJCWlmICh4d3MgPT0gWE1MX1NDSEVNQV9XSElURVNQQUNFX1BSRVNFUlZFKSB7CisKKwkJICAgIGlmICh5d3MgPT0gWE1MX1NDSEVNQV9XSElURVNQQUNFX1BSRVNFUlZFKSB7CisJCQkvKiBUT0RPOiBXaGF0IGFib3V0IHggPCB5IG9yIHggPiB5LiAqLworCQkJaWYgKHhtbFN0ckVxdWFsKHh2LCB5dikpCisJCQkgICAgcmV0dXJuICgwKTsKKwkJCWVsc2UgCisJCQkgICAgcmV0dXJuICgyKTsKKwkJICAgIH0gZWxzZSBpZiAoeXdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFKQorCQkJcmV0dXJuICh4bWxTY2hlbWFDb21wYXJlUHJlc2VydmVSZXBsYWNlU3RyaW5ncyh4diwgeXYsIDApKTsKKwkJICAgIGVsc2UgaWYgKHl3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UpCisJCQlyZXR1cm4gKHhtbFNjaGVtYUNvbXBhcmVQcmVzZXJ2ZUNvbGxhcHNlU3RyaW5ncyh4diwgeXYsIDApKTsKKworCQl9IGVsc2UgaWYgKHh3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRSkgeworCisJCSAgICBpZiAoeXdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRSkKKwkJCXJldHVybiAoeG1sU2NoZW1hQ29tcGFyZVByZXNlcnZlUmVwbGFjZVN0cmluZ3MoeXYsIHh2LCAxKSk7CisJCSAgICBpZiAoeXdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFKQorCQkJcmV0dXJuICh4bWxTY2hlbWFDb21wYXJlUmVwbGFjZWRTdHJpbmdzKHh2LCB5dikpOworCQkgICAgaWYgKHl3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UpCisJCQlyZXR1cm4gKHhtbFNjaGVtYUNvbXBhcmVSZXBsYWNlQ29sbGFwc2VTdHJpbmdzKHh2LCB5diwgMCkpOworCisJCX0gZWxzZSBpZiAoeHdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSkgeworCisJCSAgICBpZiAoeXdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRSkKKwkJCXJldHVybiAoeG1sU2NoZW1hQ29tcGFyZVByZXNlcnZlQ29sbGFwc2VTdHJpbmdzKHl2LCB4diwgMSkpOworCQkgICAgaWYgKHl3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfUkVQTEFDRSkKKwkJCXJldHVybiAoeG1sU2NoZW1hQ29tcGFyZVJlcGxhY2VDb2xsYXBzZVN0cmluZ3MoeXYsIHh2LCAxKSk7CisJCSAgICBpZiAoeXdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSkKKwkJCXJldHVybiAoeG1sU2NoZW1hQ29tcGFyZU5vcm1TdHJpbmdzKHh2LCB5dikpOworCQl9IGVsc2UKKwkJICAgIHJldHVybiAoLTIpOworICAgICAgICAgICAgICAgIAorCSAgICB9CisgICAgICAgICAgICByZXR1cm4gKC0yKTsKKwl9CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6CisJY2FzZSBYTUxfU0NIRU1BU19OT1RBVElPTjoKKwkgICAgaWYgKCh4ID09IE5VTEwpIHx8ICh5ID09IE5VTEwpKQorCQlyZXR1cm4oLTIpOworICAgICAgICAgICAgaWYgKCh5dHlwZSA9PSBYTUxfU0NIRU1BU19RTkFNRSkgfHwKKwkJKHl0eXBlID09IFhNTF9TQ0hFTUFTX05PVEFUSU9OKSkgeworCQlpZiAoKHhtbFN0ckVxdWFsKHgtPnZhbHVlLnFuYW1lLm5hbWUsIHktPnZhbHVlLnFuYW1lLm5hbWUpKSAmJgorCQkgICAgKHhtbFN0ckVxdWFsKHgtPnZhbHVlLnFuYW1lLnVyaSwgeS0+dmFsdWUucW5hbWUudXJpKSkpCisJCSAgICByZXR1cm4oMCk7CisJCXJldHVybigyKTsKKwkgICAgfQorCSAgICByZXR1cm4gKC0yKTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19GTE9BVDoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19ET1VCTEU6CisJICAgIGlmICgoeCA9PSBOVUxMKSB8fCAoeSA9PSBOVUxMKSkKKwkJcmV0dXJuKC0yKTsKKyAgICAgICAgICAgIGlmICgoeXR5cGUgPT0gWE1MX1NDSEVNQVNfRkxPQVQpIHx8CisgICAgICAgICAgICAgICAgKHl0eXBlID09IFhNTF9TQ0hFTUFTX0RPVUJMRSkpCisgICAgICAgICAgICAgICAgcmV0dXJuICh4bWxTY2hlbWFDb21wYXJlRmxvYXRzKHgsIHkpKTsKKyAgICAgICAgICAgIHJldHVybiAoLTIpOworICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0JPT0xFQU46CisJICAgIGlmICgoeCA9PSBOVUxMKSB8fCAoeSA9PSBOVUxMKSkKKwkJcmV0dXJuKC0yKTsKKyAgICAgICAgICAgIGlmICh5dHlwZSA9PSBYTUxfU0NIRU1BU19CT09MRUFOKSB7CisJCWlmICh4LT52YWx1ZS5iID09IHktPnZhbHVlLmIpCisJCSAgICByZXR1cm4oMCk7CisJCWlmICh4LT52YWx1ZS5iID09IDApCisJCSAgICByZXR1cm4oLTEpOworCQlyZXR1cm4oMSk7CisJICAgIH0KKwkgICAgcmV0dXJuICgtMik7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfSEVYQklOQVJZOgorCSAgICBpZiAoKHggPT0gTlVMTCkgfHwgKHkgPT0gTlVMTCkpCisJCXJldHVybigtMik7CisgICAgICAgICAgICBpZiAoeXR5cGUgPT0gWE1MX1NDSEVNQVNfSEVYQklOQVJZKSB7CisJICAgICAgICBpZiAoeC0+dmFsdWUuaGV4LnRvdGFsID09IHktPnZhbHVlLmhleC50b3RhbCkgeworCQkgICAgaW50IHJldCA9IHhtbFN0cmNtcCh4LT52YWx1ZS5oZXguc3RyLCB5LT52YWx1ZS5oZXguc3RyKTsKKwkJICAgIGlmIChyZXQgPiAwKQorCQkJcmV0dXJuKDEpOworCQkgICAgZWxzZSBpZiAocmV0ID09IDApCisJCQlyZXR1cm4oMCk7CisJCX0KKwkJZWxzZSBpZiAoeC0+dmFsdWUuaGV4LnRvdGFsID4geS0+dmFsdWUuaGV4LnRvdGFsKQorCQkgICAgcmV0dXJuKDEpOworCisJCXJldHVybigtMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKC0yKTsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlk6CisJICAgIGlmICgoeCA9PSBOVUxMKSB8fCAoeSA9PSBOVUxMKSkKKwkJcmV0dXJuKC0yKTsKKyAgICAgICAgICAgIGlmICh5dHlwZSA9PSBYTUxfU0NIRU1BU19CQVNFNjRCSU5BUlkpIHsKKyAgICAgICAgICAgICAgICBpZiAoeC0+dmFsdWUuYmFzZTY0LnRvdGFsID09IHktPnZhbHVlLmJhc2U2NC50b3RhbCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmV0ID0geG1sU3RyY21wKHgtPnZhbHVlLmJhc2U2NC5zdHIsCisJCSAgICAgICAgICAgICAgICAgICAgICAgIHktPnZhbHVlLmJhc2U2NC5zdHIpOworICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybigxKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmV0ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4oMCk7CisJCSAgICBlbHNlCisJCSAgICAgICAgcmV0dXJuKC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoeC0+dmFsdWUuYmFzZTY0LnRvdGFsID4geS0+dmFsdWUuYmFzZTY0LnRvdGFsKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4oMSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByZXR1cm4oLTEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICgtMik7ICAgIAorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0lEUkVGUzoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19FTlRJVElFUzoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OTVRPS0VOUzoKKwkgICAgVE9ETworCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIC0yOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXM6CisgKiBAeDogIGEgZmlyc3QgdmFsdWUKKyAqIEB5OiAgYSBzZWNvbmQgdmFsdWUKKyAqCisgKiBDb21wYXJlIDIgdmFsdWVzCisgKgorICogUmV0dXJucyAtMSBpZiB4IDwgeSwgMCBpZiB4ID09IHksIDEgaWYgeCA+IHksIDIgaWYgeCA8PiB5LCBhbmQgLTIgaW4KKyAqIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxTY2hlbWFDb21wYXJlVmFsdWVzKHhtbFNjaGVtYVZhbFB0ciB4LCB4bWxTY2hlbWFWYWxQdHIgeSkgeworICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgeHdzLCB5d3M7CisKKyAgICBpZiAoKHggPT0gTlVMTCkgfHwgKHkgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMik7CisgICAgaWYgKHgtPnR5cGUgPT0gWE1MX1NDSEVNQVNfU1RSSU5HKQorCXh3cyA9IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRTsKKyAgICBlbHNlIGlmICh4LT50eXBlID09IFhNTF9TQ0hFTUFTX05PUk1TVFJJTkcpCisgICAgICAgIHh3cyA9IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFOworICAgIGVsc2UKKyAgICAgICAgeHdzID0gWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFOworCisgICAgaWYgKHktPnR5cGUgPT0gWE1MX1NDSEVNQVNfU1RSSU5HKQorCXl3cyA9IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9QUkVTRVJWRTsKKyAgICBlbHNlIGlmICh4LT50eXBlID09IFhNTF9TQ0hFTUFTX05PUk1TVFJJTkcpCisgICAgICAgIHl3cyA9IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFOworICAgIGVsc2UKKyAgICAgICAgeXdzID0gWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFOworCisgICAgcmV0dXJuKHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNJbnRlcm5hbCh4LT50eXBlLCB4LCBOVUxMLCB4d3MsIHktPnR5cGUsCisJeSwgTlVMTCwgeXdzKSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwOgorICogQHg6ICBhIGZpcnN0IHZhbHVlCisgKiBAeHdzOiB0aGUgd2hpdGVzcGFjZSB2YWx1ZSBvZiB4CisgKiBAeTogIGEgc2Vjb25kIHZhbHVlCisgKiBAeXdzOiB0aGUgd2hpdGVzcGFjZSB2YWx1ZSBvZiB5CisgKgorICogQ29tcGFyZSAyIHZhbHVlcworICoKKyAqIFJldHVybnMgLTEgaWYgeCA8IHksIDAgaWYgeCA9PSB5LCAxIGlmIHggPiB5LCAyIGlmIHggPD4geSwgYW5kIC0yIGluCisgKiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sU2NoZW1hQ29tcGFyZVZhbHVlc1dodHNwKHhtbFNjaGVtYVZhbFB0ciB4LAorCQkJICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgeHdzLAorCQkJICAgIHhtbFNjaGVtYVZhbFB0ciB5LAorCQkJICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgeXdzKQoreworICAgIGlmICgoeCA9PSBOVUxMKSB8fCAoeSA9PSBOVUxMKSkKKwlyZXR1cm4oLTIpOworICAgIHJldHVybih4bWxTY2hlbWFDb21wYXJlVmFsdWVzSW50ZXJuYWwoeC0+dHlwZSwgeCwgTlVMTCwgeHdzLCB5LT50eXBlLAorCXksIE5VTEwsIHl3cykpOworfQorCisvKioKKyAqIHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNXaHRzcEV4dDoKKyAqIEB4OiAgYSBmaXJzdCB2YWx1ZQorICogQHh3czogdGhlIHdoaXRlc3BhY2UgdmFsdWUgb2YgeAorICogQHk6ICBhIHNlY29uZCB2YWx1ZQorICogQHl3czogdGhlIHdoaXRlc3BhY2UgdmFsdWUgb2YgeQorICoKKyAqIENvbXBhcmUgMiB2YWx1ZXMKKyAqCisgKiBSZXR1cm5zIC0xIGlmIHggPCB5LCAwIGlmIHggPT0geSwgMSBpZiB4ID4geSwgMiBpZiB4IDw+IHksIGFuZCAtMiBpbgorICogY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3BFeHQoeG1sU2NoZW1hVmFsVHlwZSB4dHlwZSwKKwkJCSAgICAgICB4bWxTY2hlbWFWYWxQdHIgeCwKKwkJCSAgICAgICBjb25zdCB4bWxDaGFyICp4dmFsdWUsCisJCQkgICAgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB4d3MsCisJCQkgICAgICAgeG1sU2NoZW1hVmFsVHlwZSB5dHlwZSwKKwkJCSAgICAgICB4bWxTY2hlbWFWYWxQdHIgeSwKKwkJCSAgICAgICBjb25zdCB4bWxDaGFyICp5dmFsdWUsCisJCQkgICAgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB5d3MpCit7CisgICAgcmV0dXJuKHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXNJbnRlcm5hbCh4dHlwZSwgeCwgeHZhbHVlLCB4d3MsIHl0eXBlLCB5LAorCXl2YWx1ZSwgeXdzKSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hTm9ybUxlbjoKKyAqIEB2YWx1ZTogIGEgc3RyaW5nCisgKgorICogQ29tcHV0ZXMgdGhlIFVURjggbGVuZ3RoIG9mIHRoZSBub3JtYWxpemVkIHZhbHVlIG9mIHRoZSBzdHJpbmcKKyAqCisgKiBSZXR1cm5zIHRoZSBsZW5ndGggb3IgLTEgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hTm9ybUxlbihjb25zdCB4bWxDaGFyICp2YWx1ZSkgeworICAgIGNvbnN0IHhtbENoYXIgKnV0ZjsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgdXRmID0gdmFsdWU7CisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCp1dGYpKSB1dGYrKzsKKyAgICB3aGlsZSAoKnV0ZiAhPSAwKSB7CisJaWYgKHV0ZlswXSAmIDB4ODApIHsKKwkgICAgaWYgKCh1dGZbMV0gJiAweGMwKSAhPSAweDgwKQorCQlyZXR1cm4oLTEpOworCSAgICBpZiAoKHV0ZlswXSAmIDB4ZTApID09IDB4ZTApIHsKKwkJaWYgKCh1dGZbMl0gJiAweGMwKSAhPSAweDgwKQorCQkgICAgcmV0dXJuKC0xKTsKKwkJaWYgKCh1dGZbMF0gJiAweGYwKSA9PSAweGYwKSB7CisJCSAgICBpZiAoKHV0ZlswXSAmIDB4ZjgpICE9IDB4ZjAgfHwgKHV0ZlszXSAmIDB4YzApICE9IDB4ODApCisJCQlyZXR1cm4oLTEpOworCQkgICAgdXRmICs9IDQ7CisJCX0gZWxzZSB7CisJCSAgICB1dGYgKz0gMzsKKwkJfQorCSAgICB9IGVsc2UgeworCQl1dGYgKz0gMjsKKwkgICAgfQorCX0gZWxzZSBpZiAoSVNfQkxBTktfQ0goKnV0ZikpIHsKKwkgICAgd2hpbGUgKElTX0JMQU5LX0NIKCp1dGYpKSB1dGYrKzsKKwkgICAgaWYgKCp1dGYgPT0gMCkKKwkJYnJlYWs7CisJfSBlbHNlIHsKKwkgICAgdXRmKys7CisJfQorCXJldCsrOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZzoKKyAqIEBmYWNldDogYW4gc2NoZW1hcyB0eXBlIGZhY2V0CisgKgorICogRXh0cmFjdCB0aGUgdmFsdWUgb2YgYSBmYWNldAorICoKKyAqIFJldHVybnMgdGhlIHZhbHVlIGFzIGEgbG9uZworICovCit1bnNpZ25lZCBsb25nCit4bWxTY2hlbWFHZXRGYWNldFZhbHVlQXNVTG9uZyh4bWxTY2hlbWFGYWNldFB0ciBmYWNldCkKK3sKKyAgICAvKgorICAgICogVE9ETzogQ2hlY2sgaWYgdGhpcyBpcyBhIGRlY2ltYWwuCisgICAgKi8KKyAgICBpZiAoZmFjZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuICgodW5zaWduZWQgbG9uZykgZmFjZXQtPnZhbC0+dmFsdWUuZGVjaW1hbC5sbyk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsaWRhdGVMaXN0U2ltcGxlVHlwZUZhY2V0OgorICogQGZhY2V0OiAgdGhlIGZhY2V0IHRvIGNoZWNrCisgKiBAdmFsdWU6ICB0aGUgbGV4aWNhbCByZXByIG9mIHRoZSB2YWx1ZSB0byB2YWxpZGF0ZQorICogQGFjdHVhbExlbjogIHRoZSBudW1iZXIgb2YgbGlzdCBpdGVtcworICogQGV4cGVjdGVkTGVuOiB0aGUgcmVzdWx0aW5nIGV4cGVjdGVkIG51bWJlciBvZiBsaXN0IGl0ZW1zCisgKgorICogQ2hlY2tzIHRoZSB2YWx1ZSBvZiBhIGxpc3Qgc2ltcGxlIHR5cGUgYWdhaW5zdCBhIGZhY2V0LgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZQorICogbnVtYmVyIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBlcnJvci4KKyAqLworaW50Cit4bWxTY2hlbWFWYWxpZGF0ZUxpc3RTaW1wbGVUeXBlRmFjZXQoeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQsCisJCQkJICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCQkgICAgIHVuc2lnbmVkIGxvbmcgYWN0dWFsTGVuLAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyAqZXhwZWN0ZWRMZW4pCit7CisgICAgaWYgKGZhY2V0ID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgLyoKKyAgICAqIFRPRE86IENoZWNrIGlmIHRoaXMgd2lsbCB3b3JrIHdpdGggbGFyZ2UgbnVtYmVycy4KKyAgICAqIChjb21wYXJlIHZhbHVlLmRlY2ltYWwubWkgYW5kIHZhbHVlLmRlY2ltYWwuaGkgYXMgd2VsbD8pLgorICAgICovCisgICAgaWYgKGZhY2V0LT50eXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIKSB7CisJaWYgKGFjdHVhbExlbiAhPSBmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmxvKSB7CisJICAgIGlmIChleHBlY3RlZExlbiAhPSBOVUxMKQorCQkqZXhwZWN0ZWRMZW4gPSBmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmxvOworCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFWX0NWQ19MRU5HVEhfVkFMSUQpOworCX0JCisgICAgfSBlbHNlIGlmIChmYWNldC0+dHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSCkgeworCWlmIChhY3R1YWxMZW4gPCBmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmxvKSB7CisJICAgIGlmIChleHBlY3RlZExlbiAhPSBOVUxMKQorCQkqZXhwZWN0ZWRMZW4gPSBmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmxvOworCSAgICByZXR1cm4gKFhNTF9TQ0hFTUFWX0NWQ19NSU5MRU5HVEhfVkFMSUQpOworCX0KKyAgICB9IGVsc2UgaWYgKGZhY2V0LT50eXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIKSB7CisJaWYgKGFjdHVhbExlbiA+IGZhY2V0LT52YWwtPnZhbHVlLmRlY2ltYWwubG8pIHsKKwkgICAgaWYgKGV4cGVjdGVkTGVuICE9IE5VTEwpCisJCSpleHBlY3RlZExlbiA9IGZhY2V0LT52YWwtPnZhbHVlLmRlY2ltYWwubG87CisJICAgIHJldHVybiAoWE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRCk7CisJfQorICAgIH0gZWxzZQorCS8qIAorCSogTk9URTogVGhhdCB3ZSBjYW4gcGFzcyBOVUxMIGFzIHhtbFNjaGVtYVZhbFB0ciB0byAKKwkqIHhtbFNjaGVtYVZhbGlkYXRlRmFjZXQsIHNpbmNlIHRoZSByZW1haW5pbmcgZmFjZXQgdHlwZXMKKwkqIGFyZTogWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOLCBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OLiAKKwkqLworCXJldHVybih4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0KE5VTEwsIGZhY2V0LCB2YWx1ZSwgTlVMTCkpOyAgIAorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldDoKKyAqIEB0eXBlOiAgdGhlIGJ1aWx0LWluIHR5cGUKKyAqIEBmYWNldDogIHRoZSBmYWNldCB0byBjaGVjaworICogQHZhbHVlOiAgdGhlIGxleGljYWwgcmVwci4gb2YgdGhlIHZhbHVlIHRvIGJlIHZhbGlkYXRlZAorICogQHZhbDogIHRoZSBwcmVjb21wdXRlZCB2YWx1ZQorICogQHdzOiB0aGUgd2hpdGVzcGFjZSB0eXBlIG9mIHRoZSB2YWx1ZQorICogQGxlbmd0aDogdGhlIGFjdHVhbCBsZW5ndGggb2YgdGhlIHZhbHVlCisgKgorICogQ2hlY2thIGEgdmFsdWUgYWdhaW5zdCBhICJsZW5ndGgiLCAibWluTGVuZ3RoIiBhbmQgIm1heExlbmd0aCIgCisgKiBmYWNldDsgc2V0cyBAbGVuZ3RoIHRvIHRoZSBjb21wdXRlZCBsZW5ndGggb2YgQHZhbHVlLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQsIGEgcG9zaXRpdmUgZXJyb3IgY29kZQorICogb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGFuIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldEludGVybmFsKHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0LAorCQkJCSAgICAgeG1sU2NoZW1hVHlwZVR5cGUgdmFsVHlwZSwKKwkJCQkgICAgIGNvbnN0IHhtbENoYXIgKnZhbHVlLAorCQkJCSAgICAgeG1sU2NoZW1hVmFsUHRyIHZhbCwJCQkJICAgICAKKwkJCQkgICAgIHVuc2lnbmVkIGxvbmcgKmxlbmd0aCwKKwkJCQkgICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3MpICAKK3sKKyAgICB1bnNpZ25lZCBpbnQgbGVuID0gMDsKKworICAgIGlmICgobGVuZ3RoID09IE5VTEwpIHx8IChmYWNldCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuICgtMSk7CisgICAgKmxlbmd0aCA9IDA7CisgICAgaWYgKChmYWNldC0+dHlwZSAhPSBYTUxfU0NIRU1BX0ZBQ0VUX0xFTkdUSCkgJiYKKwkoZmFjZXQtPnR5cGUgIT0gWE1MX1NDSEVNQV9GQUNFVF9NQVhMRU5HVEgpICYmCisJKGZhY2V0LT50eXBlICE9IFhNTF9TQ0hFTUFfRkFDRVRfTUlOTEVOR1RIKSkKKwlyZXR1cm4gKC0xKTsKKwkKKyAgICAvKgorICAgICogVE9ETzogbGVuZ3RoLCBtYXhMZW5ndGggYW5kIG1pbkxlbmd0aCBtdXN0IGJlIG9mIHR5cGUKKyAgICAqIG5vbk5lZ2F0aXZlSW50ZWdlciBvbmx5LiBDaGVjayBpZiBkZWNpbWFsIGlzIHVzZWQgc29tZWhvdy4KKyAgICAqLworICAgIGlmICgoZmFjZXQtPnZhbCA9PSBOVUxMKSB8fAorCSgoZmFjZXQtPnZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19ERUNJTUFMKSAmJgorCSAoZmFjZXQtPnZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19OTklOVEVHRVIpKSB8fAorCShmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmZyYWMgIT0gMCkpIHsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBpZiAoKHZhbCAhPSBOVUxMKSAmJiAodmFsLT50eXBlID09IFhNTF9TQ0hFTUFTX0hFWEJJTkFSWSkpCisJbGVuID0gdmFsLT52YWx1ZS5oZXgudG90YWw7CisgICAgZWxzZSBpZiAoKHZhbCAhPSBOVUxMKSAmJiAodmFsLT50eXBlID09IFhNTF9TQ0hFTUFTX0JBU0U2NEJJTkFSWSkpCisJbGVuID0gdmFsLT52YWx1ZS5iYXNlNjQudG90YWw7CisgICAgZWxzZSB7CisJc3dpdGNoICh2YWxUeXBlKSB7CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfU1RSSU5HOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05PUk1TVFJJTkc6CisJCWlmICh3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTikgeworCQkgICAgLyoKKwkJICAgICogVGhpcyBpcyB0byBlbnN1cmUgQVBJIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkCisJCSAgICAqIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQoKS4gQW55d2F5LCB0aGlzIHdhcyBhbmQKKwkJICAgICogaXMgbm90IHRoZSBjb3JyZWN0IGhhbmRsaW5nLgorCQkgICAgKiBUT0RPOiBHZXQgcmlkIG9mIHRoaXMgY2FzZSBzb21laG93LgorCQkgICAgKi8KKwkJICAgIGlmICh2YWxUeXBlID09IFhNTF9TQ0hFTUFTX1NUUklORykKKwkJCWxlbiA9IHhtbFVURjhTdHJsZW4odmFsdWUpOworCQkgICAgZWxzZQorCQkJbGVuID0geG1sU2NoZW1hTm9ybUxlbih2YWx1ZSk7CisJCX0gZWxzZSBpZiAodmFsdWUgIT0gTlVMTCkgeworCQkgICAgaWYgKHdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSkKKwkJCWxlbiA9IHhtbFNjaGVtYU5vcm1MZW4odmFsdWUpOworCQkgICAgZWxzZQorCQkgICAgLyogCisJCSAgICAqIFNob3VsZCBiZSBPSyBmb3IgInByZXNlcnZlIiBhcyB3ZWxsLgorCQkgICAgKi8KKwkJICAgIGxlbiA9IHhtbFVURjhTdHJsZW4odmFsdWUpOworCQl9CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0lEUkVGOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX1RPS0VOOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0xBTkdVQUdFOgorCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU46CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfTkFNRToKKwkgICAgY2FzZSBYTUxfU0NIRU1BU19OQ05BTUU6CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfSUQ6CQkKKwkJLyoKKwkJKiBGSVhNRTogV2hhdCBleGFjdGx5IHRvIGRvIHdpdGggYW55VVJJPworCQkqLworCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0FOWVVSSToKKwkJaWYgKHZhbHVlICE9IE5VTEwpCisJCSAgICBsZW4gPSB4bWxTY2hlbWFOb3JtTGVuKHZhbHVlKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6CisgCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05PVEFUSU9OOgorIAkJLyoKKwkJKiBGb3IgUU5hbWUgYW5kIE5PVEFUSU9OLCB0aG9zZSBmYWNldHMgYXJlCisJCSogZGVwcmVjYXRlZCBhbmQgc2hvdWxkIGJlIGlnbm9yZWQuCisgCQkqLworCQlyZXR1cm4gKDApOworCSAgICBkZWZhdWx0OgorCQlUT0RPCisJfQorICAgIH0KKyAgICAqbGVuZ3RoID0gKHVuc2lnbmVkIGxvbmcpIGxlbjsKKyAgICAvKgorICAgICogVE9ETzogUmV0dXJuIHRoZSB3aG9sZSBleHBlY3RlZCB2YWx1ZSwgaS5lLiAibG8iLCAibWkiIGFuZCAiaGkiLgorICAgICovCisgICAgaWYgKGZhY2V0LT50eXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIKSB7CisJaWYgKGxlbiAhPSBmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmxvKQorCSAgICByZXR1cm4oWE1MX1NDSEVNQVZfQ1ZDX0xFTkdUSF9WQUxJRCk7CisgICAgfSBlbHNlIGlmIChmYWNldC0+dHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSCkgeworCWlmIChsZW4gPCBmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmxvKQorCSAgICByZXR1cm4oWE1MX1NDSEVNQVZfQ1ZDX01JTkxFTkdUSF9WQUxJRCk7CisgICAgfSBlbHNlIHsKKwlpZiAobGVuID4gZmFjZXQtPnZhbC0+dmFsdWUuZGVjaW1hbC5sbykKKwkgICAgcmV0dXJuKFhNTF9TQ0hFTUFWX0NWQ19NQVhMRU5HVEhfVkFMSUQpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gKDApOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXQ6CisgKiBAdHlwZTogIHRoZSBidWlsdC1pbiB0eXBlCisgKiBAZmFjZXQ6ICB0aGUgZmFjZXQgdG8gY2hlY2sKKyAqIEB2YWx1ZTogIHRoZSBsZXhpY2FsIHJlcHIuIG9mIHRoZSB2YWx1ZSB0byBiZSB2YWxpZGF0ZWQKKyAqIEB2YWw6ICB0aGUgcHJlY29tcHV0ZWQgdmFsdWUKKyAqIEBsZW5ndGg6IHRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRoZSB2YWx1ZQorICoKKyAqIENoZWNrYSBhIHZhbHVlIGFnYWluc3QgYSAibGVuZ3RoIiwgIm1pbkxlbmd0aCIgYW5kICJtYXhMZW5ndGgiIAorICogZmFjZXQ7IHNldHMgQGxlbmd0aCB0byB0aGUgY29tcHV0ZWQgbGVuZ3RoIG9mIEB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldCh4bWxTY2hlbWFUeXBlUHRyIHR5cGUsIAorCQkJICAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldCwKKwkJCSAgICAgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCQkgICAgIHhtbFNjaGVtYVZhbFB0ciB2YWwsCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgKmxlbmd0aCkgIAoreworICAgIGlmICh0eXBlID09IE5VTEwpCisgICAgICAgIHJldHVybigtMSk7CisgICAgcmV0dXJuICh4bWxTY2hlbWFWYWxpZGF0ZUxlbmd0aEZhY2V0SW50ZXJuYWwoZmFjZXQsCisJdHlwZS0+YnVpbHRJblR5cGUsIHZhbHVlLCB2YWwsIGxlbmd0aCwKKwlYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTikpOworfQorCisvKioKKyAqIHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRXaHRzcDogCisgKiBAZmFjZXQ6ICB0aGUgZmFjZXQgdG8gY2hlY2sKKyAqIEB2YWxUeXBlOiAgdGhlIGJ1aWx0LWluIHR5cGUKKyAqIEB2YWx1ZTogIHRoZSBsZXhpY2FsIHJlcHIuIG9mIHRoZSB2YWx1ZSB0byBiZSB2YWxpZGF0ZWQKKyAqIEB2YWw6ICB0aGUgcHJlY29tcHV0ZWQgdmFsdWUKKyAqIEB3czogdGhlIHdoaXRlc3BhY2UgdHlwZSBvZiB0aGUgdmFsdWUKKyAqIEBsZW5ndGg6IHRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRoZSB2YWx1ZQorICoKKyAqIENoZWNrYSBhIHZhbHVlIGFnYWluc3QgYSAibGVuZ3RoIiwgIm1pbkxlbmd0aCIgYW5kICJtYXhMZW5ndGgiIAorICogZmFjZXQ7IHNldHMgQGxlbmd0aCB0byB0aGUgY29tcHV0ZWQgbGVuZ3RoIG9mIEB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqIG90aGVyd2lzZSBhbmQgLTEgaW4gY2FzZSBvZiBhbiBpbnRlcm5hbCBvciBBUEkgZXJyb3IuCisgKi8KK2ludAoreG1sU2NoZW1hVmFsaWRhdGVMZW5ndGhGYWNldFdodHNwKHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0LAorCQkJCSAgeG1sU2NoZW1hVmFsVHlwZSB2YWxUeXBlLAorCQkJCSAgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCQkJICB4bWxTY2hlbWFWYWxQdHIgdmFsLAorCQkJCSAgdW5zaWduZWQgbG9uZyAqbGVuZ3RoLAorCQkJCSAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB3cykKK3sKKyAgICByZXR1cm4gKHhtbFNjaGVtYVZhbGlkYXRlTGVuZ3RoRmFjZXRJbnRlcm5hbChmYWNldCwgdmFsVHlwZSwgdmFsdWUsIHZhbCwKKwlsZW5ndGgsIHdzKSk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsaWRhdGVGYWNldEludGVybmFsOgorICogQGZhY2V0OiAgdGhlIGZhY2V0IHRvIGNoZWNrCisgKiBAZndzOiB0aGUgd2hpdGVzcGFjZSB0eXBlIG9mIHRoZSBmYWNldCdzIHZhbHVlCisgKiBAdmFsVHlwZTogdGhlIGJ1aWx0LWluIHR5cGUgb2YgdGhlIHZhbHVlCisgKiBAdmFsdWU6ICB0aGUgbGV4aWNhbCByZXByIG9mIHRoZSB2YWx1ZSB0byB2YWxpZGF0ZQorICogQHZhbDogIHRoZSBwcmVjb21wdXRlZCB2YWx1ZQorICogQHdzOiB0aGUgd2hpdGVzcGFjZSB0eXBlIG9mIHRoZSB2YWx1ZQorICoKKyAqIENoZWNrIGEgdmFsdWUgYWdhaW5zdCBhIGZhY2V0IGNvbmRpdGlvbgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgZWxlbWVudCBpcyBzY2hlbWFzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqICAgICBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworc3RhdGljIGludAoreG1sU2NoZW1hVmFsaWRhdGVGYWNldEludGVybmFsKHhtbFNjaGVtYUZhY2V0UHRyIGZhY2V0LAorCQkJICAgICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgZndzLAorCQkJICAgICAgIHhtbFNjaGVtYVZhbFR5cGUgdmFsVHlwZSwJCQkgICAgICAgCisJCQkgICAgICAgY29uc3QgeG1sQ2hhciAqdmFsdWUsCisJCQkgICAgICAgeG1sU2NoZW1hVmFsUHRyIHZhbCwKKwkJCSAgICAgICB4bWxTY2hlbWFXaGl0ZXNwYWNlVmFsdWVUeXBlIHdzKQoreworICAgIGludCByZXQ7CisKKyAgICBpZiAoZmFjZXQgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgc3dpdGNoIChmYWNldC0+dHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9QQVRURVJOOgorCSAgICAvKiAKKwkgICAgKiBOT1RFIHRoYXQgZm9yIHBhdHRlcm5zLCB0aGUgQHZhbHVlIG5lZWRzIHRvIGJlIHRoZSBub3JtYWxpemVkCisJICAgICogdmFsdWUsICpub3QqIHRoZSBsZXhpY2FsIGluaXRpYWwgdmFsdWUgb3IgdGhlIGNhbm9uaWNhbCB2YWx1ZS4KKwkgICAgKi8KKwkgICAgaWYgKHZhbHVlID09IE5VTEwpCisJCXJldHVybigtMSk7CisJICAgIHJldCA9IHhtbFJlZ2V4cEV4ZWMoZmFjZXQtPnJlZ2V4cCwgdmFsdWUpOworCSAgICBpZiAocmV0ID09IDEpCisJCXJldHVybigwKTsKKwkgICAgaWYgKHJldCA9PSAwKQorCQlyZXR1cm4oWE1MX1NDSEVNQVZfQ1ZDX1BBVFRFUk5fVkFMSUQpOworCSAgICByZXR1cm4ocmV0KTsKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUFYRVhDTFVTSVZFOgorCSAgICByZXQgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKHZhbCwgZmFjZXQtPnZhbCk7CisJICAgIGlmIChyZXQgPT0gLTIpCisJCXJldHVybigtMSk7CisJICAgIGlmIChyZXQgPT0gLTEpCisJCXJldHVybigwKTsKKwkgICAgcmV0dXJuKFhNTF9TQ0hFTUFWX0NWQ19NQVhFWENMVVNJVkVfVkFMSUQpOworCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NQVhJTkNMVVNJVkU6CisJICAgIHJldCA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXModmFsLCBmYWNldC0+dmFsKTsKKwkgICAgaWYgKHJldCA9PSAtMikKKwkJcmV0dXJuKC0xKTsKKwkgICAgaWYgKChyZXQgPT0gLTEpIHx8IChyZXQgPT0gMCkpCisJCXJldHVybigwKTsKKwkgICAgcmV0dXJuKFhNTF9TQ0hFTUFWX0NWQ19NQVhJTkNMVVNJVkVfVkFMSUQpOworCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5FWENMVVNJVkU6CisJICAgIHJldCA9IHhtbFNjaGVtYUNvbXBhcmVWYWx1ZXModmFsLCBmYWNldC0+dmFsKTsKKwkgICAgaWYgKHJldCA9PSAtMikKKwkJcmV0dXJuKC0xKTsKKwkgICAgaWYgKHJldCA9PSAxKQorCQlyZXR1cm4oMCk7CisJICAgIHJldHVybihYTUxfU0NIRU1BVl9DVkNfTUlORVhDTFVTSVZFX1ZBTElEKTsKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUlOSU5DTFVTSVZFOgorCSAgICByZXQgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzKHZhbCwgZmFjZXQtPnZhbCk7CisJICAgIGlmIChyZXQgPT0gLTIpCisJCXJldHVybigtMSk7CisJICAgIGlmICgocmV0ID09IDEpIHx8IChyZXQgPT0gMCkpCisJCXJldHVybigwKTsKKwkgICAgcmV0dXJuKFhNTF9TQ0hFTUFWX0NWQ19NSU5JTkNMVVNJVkVfVkFMSUQpOworCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9XSElURVNQQUNFOgorCSAgICAvKiBUT0RPIHdoaXRlc3BhY2VzICovCisJICAgIC8qCisJICAgICogTk9URTogV2hpdGVzcGFjZSBzaG91bGQgYmUgaGFuZGxlZCB0byBub3JtYWxpemUKKwkgICAgKiB0aGUgdmFsdWUgdG8gYmUgdmFsaWRhdGVkIGFnYWluc3QgYSB0aGUgZmFjZXRzOworCSAgICAqIG5vdCB0byBub3JtYWxpemUgdGhlIHZhbHVlIGluLWJldHdlZW4uCisJICAgICovCisJICAgIHJldHVybigwKTsKKwljYXNlICBYTUxfU0NIRU1BX0ZBQ0VUX0VOVU1FUkFUSU9OOgorCSAgICBpZiAod3MgPT0gWE1MX1NDSEVNQV9XSElURVNQQUNFX1VOS05PV04pIHsKKwkJLyoKKwkJKiBUaGlzIGlzIHRvIGVuc3VyZSBBUEkgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQKKwkJKiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0KCkuCisJCSogVE9ETzogR2V0IHJpZCBvZiB0aGlzIGNhc2UuCisJCSovCisJCWlmICgoZmFjZXQtPnZhbHVlICE9IE5VTEwpICYmCisJCSAgICAoeG1sU3RyRXF1YWwoZmFjZXQtPnZhbHVlLCB2YWx1ZSkpKQorCQkgICAgcmV0dXJuKDApOworCSAgICB9IGVsc2UgeworCQlyZXQgPSB4bWxTY2hlbWFDb21wYXJlVmFsdWVzV2h0c3BFeHQoZmFjZXQtPnZhbC0+dHlwZSwKKwkJICAgIGZhY2V0LT52YWwsIGZhY2V0LT52YWx1ZSwgZndzLCB2YWxUeXBlLCB2YWwsCisJCSAgICB2YWx1ZSwgd3MpOworCQlpZiAocmV0ID09IC0yKQorCQkgICAgcmV0dXJuKC0xKTsKKwkJaWYgKHJldCA9PSAwKQorCQkgICAgcmV0dXJuKDApOworCSAgICB9CisJICAgIHJldHVybihYTUxfU0NIRU1BVl9DVkNfRU5VTUVSQVRJT05fVkFMSUQpOworCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9MRU5HVEg6CisJICAgIC8qCisJICAgICogU1BFQyAoMS4zKSAiaWYge3ByaW1pdGl2ZSB0eXBlIGRlZmluaXRpb259IGlzIFFOYW1lIG9yIE5PVEFUSU9OLAorCSAgICAqIHRoZW4gYW55IHt2YWx1ZX0gaXMgZmFjZXQtdmFsaWQuIgorCSAgICAqLworCSAgICBpZiAoKHZhbFR5cGUgPT0gWE1MX1NDSEVNQVNfUU5BTUUpIHx8CisJCSh2YWxUeXBlID09IFhNTF9TQ0hFTUFTX05PVEFUSU9OKSkKKwkJcmV0dXJuICgwKTsKKwkgICAgLyogTm8gYnJlYWsgb24gcHVycG9zZS4gKi8KKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfTUFYTEVOR1RIOgorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9NSU5MRU5HVEg6IHsKKwkgICAgdW5zaWduZWQgaW50IGxlbiA9IDA7CisKKwkgICAgaWYgKCh2YWxUeXBlID09IFhNTF9TQ0hFTUFTX1FOQU1FKSB8fAorCQkodmFsVHlwZSA9PSBYTUxfU0NIRU1BU19OT1RBVElPTikpCisJCXJldHVybiAoMCk7CisJICAgIC8qCisJICAgICogVE9ETzogbGVuZ3RoLCBtYXhMZW5ndGggYW5kIG1pbkxlbmd0aCBtdXN0IGJlIG9mIHR5cGUKKwkgICAgKiBub25OZWdhdGl2ZUludGVnZXIgb25seS4gQ2hlY2sgaWYgZGVjaW1hbCBpcyB1c2VkIHNvbWVob3cuCisJICAgICovCisJICAgIGlmICgoZmFjZXQtPnZhbCA9PSBOVUxMKSB8fAorCQkoKGZhY2V0LT52YWwtPnR5cGUgIT0gWE1MX1NDSEVNQVNfREVDSU1BTCkgJiYKKwkJIChmYWNldC0+dmFsLT50eXBlICE9IFhNTF9TQ0hFTUFTX05OSU5URUdFUikpIHx8CisJCShmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmZyYWMgIT0gMCkpIHsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICBpZiAoKHZhbCAhPSBOVUxMKSAmJiAodmFsLT50eXBlID09IFhNTF9TQ0hFTUFTX0hFWEJJTkFSWSkpCisJCWxlbiA9IHZhbC0+dmFsdWUuaGV4LnRvdGFsOworCSAgICBlbHNlIGlmICgodmFsICE9IE5VTEwpICYmICh2YWwtPnR5cGUgPT0gWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZKSkKKwkJbGVuID0gdmFsLT52YWx1ZS5iYXNlNjQudG90YWw7CisJICAgIGVsc2UgeworCQlzd2l0Y2ggKHZhbFR5cGUpIHsKKwkJICAgIGNhc2UgWE1MX1NDSEVNQVNfU1RSSU5HOgorCQkgICAgY2FzZSBYTUxfU0NIRU1BU19OT1JNU1RSSU5HOgkJCQorCQkJaWYgKHdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOKSB7CisJCQkgICAgLyoKKwkJCSAgICAqIFRoaXMgaXMgdG8gZW5zdXJlIEFQSSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZAorCQkJICAgICogeG1sU2NoZW1hVmFsaWRhdGVGYWNldCgpLiBBbnl3YXksIHRoaXMgd2FzIGFuZAorCQkJICAgICogaXMgbm90IHRoZSBjb3JyZWN0IGhhbmRsaW5nLgorCQkJICAgICogVE9ETzogR2V0IHJpZCBvZiB0aGlzIGNhc2Ugc29tZWhvdy4KKwkJCSAgICAqLworCQkJICAgIGlmICh2YWxUeXBlID09IFhNTF9TQ0hFTUFTX1NUUklORykKKwkJCQlsZW4gPSB4bWxVVEY4U3RybGVuKHZhbHVlKTsKKwkJCSAgICBlbHNlCisJCQkJbGVuID0geG1sU2NoZW1hTm9ybUxlbih2YWx1ZSk7CisJCQl9IGVsc2UgaWYgKHZhbHVlICE9IE5VTEwpIHsKKwkJCSAgICBpZiAod3MgPT0gWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFKQorCQkJCWxlbiA9IHhtbFNjaGVtYU5vcm1MZW4odmFsdWUpOworCQkJICAgIGVsc2UKKwkJCQkvKiAKKwkJCQkqIFNob3VsZCBiZSBPSyBmb3IgInByZXNlcnZlIiBhcyB3ZWxsLgorCQkJCSovCisJCQkJbGVuID0geG1sVVRGOFN0cmxlbih2YWx1ZSk7CisJCQl9CisJCQlicmVhazsKKwkgICAgCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0lEUkVGOgkJICAgIAorCQkgICAgY2FzZSBYTUxfU0NIRU1BU19UT0tFTjoKKwkJICAgIGNhc2UgWE1MX1NDSEVNQVNfTEFOR1VBR0U6CisJCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05NVE9LRU46CisJCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05BTUU6CisJCSAgICBjYXNlIFhNTF9TQ0hFTUFTX05DTkFNRToKKwkJICAgIGNhc2UgWE1MX1NDSEVNQVNfSUQ6CisJCSAgICBjYXNlIFhNTF9TQ0hFTUFTX0FOWVVSSToKKwkJCWlmICh2YWx1ZSAhPSBOVUxMKQorCQkgICAgCSAgICBsZW4gPSB4bWxTY2hlbWFOb3JtTGVuKHZhbHVlKTsKKwkJICAgIAlicmVhazsJCSAgIAorCQkgICAgZGVmYXVsdDoKKwkJICAgICAgICBUT0RPCisJICAgIAl9CisJICAgIH0KKwkgICAgaWYgKGZhY2V0LT50eXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfTEVOR1RIKSB7CisJCWlmIChsZW4gIT0gZmFjZXQtPnZhbC0+dmFsdWUuZGVjaW1hbC5sbykKKwkJICAgIHJldHVybihYTUxfU0NIRU1BVl9DVkNfTEVOR1RIX1ZBTElEKTsKKwkgICAgfSBlbHNlIGlmIChmYWNldC0+dHlwZSA9PSBYTUxfU0NIRU1BX0ZBQ0VUX01JTkxFTkdUSCkgeworCQlpZiAobGVuIDwgZmFjZXQtPnZhbC0+dmFsdWUuZGVjaW1hbC5sbykKKwkJICAgIHJldHVybihYTUxfU0NIRU1BVl9DVkNfTUlOTEVOR1RIX1ZBTElEKTsKKwkgICAgfSBlbHNlIHsKKwkJaWYgKGxlbiA+IGZhY2V0LT52YWwtPnZhbHVlLmRlY2ltYWwubG8pCisJCSAgICByZXR1cm4oWE1MX1NDSEVNQVZfQ1ZDX01BWExFTkdUSF9WQUxJRCk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJfQorCWNhc2UgWE1MX1NDSEVNQV9GQUNFVF9UT1RBTERJR0lUUzoKKwljYXNlIFhNTF9TQ0hFTUFfRkFDRVRfRlJBQ1RJT05ESUdJVFM6CisKKwkgICAgaWYgKChmYWNldC0+dmFsID09IE5VTEwpIHx8CisJCSgoZmFjZXQtPnZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19QSU5URUdFUikgJiYKKwkJIChmYWNldC0+dmFsLT50eXBlICE9IFhNTF9TQ0hFTUFTX05OSU5URUdFUikpIHx8CisJCShmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmZyYWMgIT0gMCkpIHsKKwkJcmV0dXJuKC0xKTsKKwkgICAgfQorCSAgICBpZiAoKHZhbCA9PSBOVUxMKSB8fAorCQkoKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19ERUNJTUFMKSAmJgorCQkgKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19JTlRFR0VSKSAmJgorCQkgKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19OUElOVEVHRVIpICYmCisJCSAodmFsLT50eXBlICE9IFhNTF9TQ0hFTUFTX05JTlRFR0VSKSAmJgorCQkgKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19OTklOVEVHRVIpICYmCisJCSAodmFsLT50eXBlICE9IFhNTF9TQ0hFTUFTX1BJTlRFR0VSKSAmJgorCQkgKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19JTlQpICYmCisJCSAodmFsLT50eXBlICE9IFhNTF9TQ0hFTUFTX1VJTlQpICYmCisJCSAodmFsLT50eXBlICE9IFhNTF9TQ0hFTUFTX0xPTkcpICYmCisJCSAodmFsLT50eXBlICE9IFhNTF9TQ0hFTUFTX1VMT05HKSAmJgorCQkgKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19TSE9SVCkgJiYKKwkJICh2YWwtPnR5cGUgIT0gWE1MX1NDSEVNQVNfVVNIT1JUKSAmJgorCQkgKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19CWVRFKSAmJgorCQkgKHZhbC0+dHlwZSAhPSBYTUxfU0NIRU1BU19VQllURSkpKSB7CisJCXJldHVybigtMSk7CisJICAgIH0KKwkgICAgaWYgKGZhY2V0LT50eXBlID09IFhNTF9TQ0hFTUFfRkFDRVRfVE9UQUxESUdJVFMpIHsKKwkgICAgICAgIGlmICh2YWwtPnZhbHVlLmRlY2ltYWwudG90YWwgPiBmYWNldC0+dmFsLT52YWx1ZS5kZWNpbWFsLmxvKQorCSAgICAgICAgICAgIHJldHVybihYTUxfU0NIRU1BVl9DVkNfVE9UQUxESUdJVFNfVkFMSUQpOworCisJICAgIH0gZWxzZSBpZiAoZmFjZXQtPnR5cGUgPT0gWE1MX1NDSEVNQV9GQUNFVF9GUkFDVElPTkRJR0lUUykgeworCSAgICAgICAgaWYgKHZhbC0+dmFsdWUuZGVjaW1hbC5mcmFjID4gZmFjZXQtPnZhbC0+dmFsdWUuZGVjaW1hbC5sbykKKwkJICAgIHJldHVybihYTUxfU0NIRU1BVl9DVkNfRlJBQ1RJT05ESUdJVFNfVkFMSUQpOworCSAgICB9CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIFRPRE8KKyAgICB9CisgICAgcmV0dXJuKDApOworCit9CisKKy8qKgorICogeG1sU2NoZW1hVmFsaWRhdGVGYWNldDoKKyAqIEBiYXNlOiAgdGhlIGJhc2UgdHlwZQorICogQGZhY2V0OiAgdGhlIGZhY2V0IHRvIGNoZWNrCisgKiBAdmFsdWU6ICB0aGUgbGV4aWNhbCByZXByIG9mIHRoZSB2YWx1ZSB0byB2YWxpZGF0ZQorICogQHZhbDogIHRoZSBwcmVjb21wdXRlZCB2YWx1ZQorICoKKyAqIENoZWNrIGEgdmFsdWUgYWdhaW5zdCBhIGZhY2V0IGNvbmRpdGlvbgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgZWxlbWVudCBpcyBzY2hlbWFzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqICAgICBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworaW50Cit4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0KHhtbFNjaGVtYVR5cGVQdHIgYmFzZSwKKwkgICAgICAgICAgICAgICB4bWxTY2hlbWFGYWNldFB0ciBmYWNldCwKKwkgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJICAgICAgIHhtbFNjaGVtYVZhbFB0ciB2YWwpCit7CisgICAgLyoKKyAgICAqIFRoaXMgdHJpZXMgdG8gZW5zdXJlIEFQSSBjb21wYXRpYmlsaXR5IHJlZ2FyZGluZyB0aGUgb2xkCisgICAgKiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0KCkgYW5kIHRoZSBuZXcgeG1sU2NoZW1hVmFsaWRhdGVGYWNldEludGVybmFsKCkgYW5kCisgICAgKiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AoKS4KKyAgICAqLworICAgIGlmICh2YWwgIT0gTlVMTCkKKwlyZXR1cm4oeG1sU2NoZW1hVmFsaWRhdGVGYWNldEludGVybmFsKGZhY2V0LAorCSAgICBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTiwgdmFsLT50eXBlLCB2YWx1ZSwgdmFsLAorCSAgICBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTikpOworICAgIGVsc2UgaWYgKGJhc2UgIT0gTlVMTCkKKwlyZXR1cm4oeG1sU2NoZW1hVmFsaWRhdGVGYWNldEludGVybmFsKGZhY2V0LAorCSAgICBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTiwgYmFzZS0+YnVpbHRJblR5cGUsIHZhbHVlLCB2YWwsCisJICAgIFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9VTktOT1dOKSk7CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3A6CisgKiBAZmFjZXQ6ICB0aGUgZmFjZXQgdG8gY2hlY2sKKyAqIEBmd3M6IHRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIGZhY2V0J3MgdmFsdWUKKyAqIEB2YWxUeXBlOiB0aGUgYnVpbHQtaW4gdHlwZSBvZiB0aGUgdmFsdWUKKyAqIEB2YWx1ZTogIHRoZSBsZXhpY2FsIChvciBub3JtYWxpemVkIGZvciBwYXR0ZXJuKSByZXByIG9mIHRoZSB2YWx1ZSB0byB2YWxpZGF0ZQorICogQHZhbDogIHRoZSBwcmVjb21wdXRlZCB2YWx1ZQorICogQHdzOiB0aGUgd2hpdGVzcGFjZSB0eXBlIG9mIHRoZSB2YWx1ZQorICoKKyAqIENoZWNrIGEgdmFsdWUgYWdhaW5zdCBhIGZhY2V0IGNvbmRpdGlvbi4gVGhpcyB0YWtlcyB2YWx1ZSBub3JtYWxpemF0aW9uCisgKiBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCB3aGl0ZXNwYWNlIHR5cGVzIGludG8gYWNjb3VudC4KKyAqIE5vdGUgdGhhdCBAdmFsdWUgbmVlZHMgdG8gYmUgdGhlICpub3JtYWxpemVkKiB2YWx1ZSBpZiB0aGUgZmFjZXQKKyAqIGlzIG9mIHR5cGUgInBhdHRlcm4iLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgZWxlbWVudCBpcyBzY2hlbWFzIHZhbGlkLCBhIHBvc2l0aXZlIGVycm9yIGNvZGUKKyAqICAgICBudW1iZXIgb3RoZXJ3aXNlIGFuZCAtMSBpbiBjYXNlIG9mIGludGVybmFsIG9yIEFQSSBlcnJvci4KKyAqLworaW50Cit4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0V2h0c3AoeG1sU2NoZW1hRmFjZXRQdHIgZmFjZXQsCisJCQkgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSBmd3MsCisJCQkgICAgeG1sU2NoZW1hVmFsVHlwZSB2YWxUeXBlLAkJCSAgICAKKwkJCSAgICBjb25zdCB4bWxDaGFyICp2YWx1ZSwKKwkJCSAgICB4bWxTY2hlbWFWYWxQdHIgdmFsLAorCQkJICAgIHhtbFNjaGVtYVdoaXRlc3BhY2VWYWx1ZVR5cGUgd3MpCit7CisgICAgIHJldHVybih4bWxTY2hlbWFWYWxpZGF0ZUZhY2V0SW50ZXJuYWwoZmFjZXQsIGZ3cywgdmFsVHlwZSwKKwkgdmFsdWUsIHZhbCwgd3MpKTsKK30KKworI2lmIDAKKyNpZm5kZWYgREJMX0RJRworI2RlZmluZSBEQkxfRElHIDE2CisjZW5kaWYKKyNpZm5kZWYgREJMX0VQU0lMT04KKyNkZWZpbmUgREJMX0VQU0lMT04gMUUtOQorI2VuZGlmCisKKyNkZWZpbmUgSU5URUdFUl9ESUdJVFMgREJMX0RJRworI2RlZmluZSBGUkFDVElPTl9ESUdJVFMgKERCTF9ESUcgKyAxKQorI2RlZmluZSBFWFBPTkVOVF9ESUdJVFMgKDMgKyAyKQorCisvKioKKyAqIHhtbFhQYXRoRm9ybWF0TnVtYmVyOgorICogQG51bWJlcjogICAgIG51bWJlciB0byBmb3JtYXQKKyAqIEBidWZmZXI6ICAgICBvdXRwdXQgYnVmZmVyCisgKiBAYnVmZmVyc2l6ZTogc2l6ZSBvZiBvdXRwdXQgYnVmZmVyCisgKgorICogQ29udmVydCB0aGUgbnVtYmVyIGludG8gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxTY2hlbWFGb3JtYXRGbG9hdChkb3VibGUgbnVtYmVyLCBjaGFyIGJ1ZmZlcltdLCBpbnQgYnVmZmVyc2l6ZSkKK3sKKyAgICBzd2l0Y2ggKHhtbFhQYXRoSXNJbmYobnVtYmVyKSkgeworICAgIGNhc2UgMToKKwlpZiAoYnVmZmVyc2l6ZSA+IChpbnQpc2l6ZW9mKCJJTkYiKSkKKwkgICAgc25wcmludGYoYnVmZmVyLCBidWZmZXJzaXplLCAiSU5GIik7CisJYnJlYWs7CisgICAgY2FzZSAtMToKKwlpZiAoYnVmZmVyc2l6ZSA+IChpbnQpc2l6ZW9mKCItSU5GIikpCisJICAgIHNucHJpbnRmKGJ1ZmZlciwgYnVmZmVyc2l6ZSwgIi1JTkYiKTsKKwlicmVhazsKKyAgICBkZWZhdWx0OgorCWlmICh4bWxYUGF0aElzTmFOKG51bWJlcikpIHsKKwkgICAgaWYgKGJ1ZmZlcnNpemUgPiAoaW50KXNpemVvZigiTmFOIikpCisJCXNucHJpbnRmKGJ1ZmZlciwgYnVmZmVyc2l6ZSwgIk5hTiIpOworCX0gZWxzZSBpZiAobnVtYmVyID09IDApIHsKKwkgICAgc25wcmludGYoYnVmZmVyLCBidWZmZXJzaXplLCAiMC4wRTAiKTsKKwl9IGVsc2UgeworCSAgICAvKiAzIGlzIHNpZ24sIGRlY2ltYWwgcG9pbnQsIGFuZCB0ZXJtaW5hdGluZyB6ZXJvICovCisJICAgIGNoYXIgd29ya1tEQkxfRElHICsgRVhQT05FTlRfRElHSVRTICsgM107CisJICAgIGludCBpbnRlZ2VyX3BsYWNlLCBmcmFjdGlvbl9wbGFjZTsKKwkgICAgY2hhciAqcHRyOworCSAgICBjaGFyICphZnRlcl9mcmFjdGlvbjsKKwkgICAgZG91YmxlIGFic29sdXRlX3ZhbHVlOworCSAgICBpbnQgc2l6ZTsKKworCSAgICBhYnNvbHV0ZV92YWx1ZSA9IGZhYnMobnVtYmVyKTsKKworCSAgICAvKgorCSAgICAgKiBSZXN1bHQgaXMgaW4gd29yaywgYW5kIGFmdGVyX2ZyYWN0aW9uIHBvaW50cworCSAgICAgKiBqdXN0IHBhc3QgdGhlIGZyYWN0aW9uYWwgcGFydC4KKwkgICAgICogVXNlIHNjaWVudGlmaWMgbm90YXRpb24gCisJICAgICovCisJICAgIGludGVnZXJfcGxhY2UgPSBEQkxfRElHICsgRVhQT05FTlRfRElHSVRTICsgMTsKKwkgICAgZnJhY3Rpb25fcGxhY2UgPSBEQkxfRElHIC0gMTsKKwkgICAgc25wcmludGYod29yaywgc2l6ZW9mKHdvcmspLCIlKi4qZSIsCisJCWludGVnZXJfcGxhY2UsIGZyYWN0aW9uX3BsYWNlLCBudW1iZXIpOworCSAgICBhZnRlcl9mcmFjdGlvbiA9IHN0cmNocih3b3JrICsgREJMX0RJRywgJ2UnKTsJICAgIAorCSAgICAvKiBSZW1vdmUgZnJhY3Rpb25hbCB0cmFpbGluZyB6ZXJvZXMgKi8KKwkgICAgcHRyID0gYWZ0ZXJfZnJhY3Rpb247CisJICAgIHdoaWxlICgqKC0tcHRyKSA9PSAnMCcpCisJCTsKKwkgICAgaWYgKCpwdHIgIT0gJy4nKQorCSAgICAgICAgcHRyKys7CisJICAgIHdoaWxlICgoKnB0cisrID0gKmFmdGVyX2ZyYWN0aW9uKyspICE9IDApOworCisJICAgIC8qIEZpbmFsbHkgY29weSByZXN1bHQgYmFjayB0byBjYWxsZXIgKi8KKwkgICAgc2l6ZSA9IHN0cmxlbih3b3JrKSArIDE7CisJICAgIGlmIChzaXplID4gYnVmZmVyc2l6ZSkgeworCQl3b3JrW2J1ZmZlcnNpemUgLSAxXSA9IDA7CisJCXNpemUgPSBidWZmZXJzaXplOworCSAgICB9CisJICAgIG1lbW1vdmUoYnVmZmVyLCB3b3JrLCBzaXplKTsKKwl9CisJYnJlYWs7CisgICAgfQorfQorI2VuZGlmCisKKy8qKgorICogeG1sU2NoZW1hR2V0Q2Fub25WYWx1ZToKKyAqIEB2YWw6IHRoZSBwcmVjb21wdXRlZCB2YWx1ZQorICogQHJldFZhbHVlOiB0aGUgcmV0dXJuZWQgdmFsdWUKKyAqCisgKiBHZXQgYSB0aGUgY29ub25pY2FsIGxleGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLgorICogVGhlIGNhbGxlciBoYXMgdG8gRlJFRSB0aGUgcmV0dXJuZWQgcmV0VmFsdWUuCisgKgorICogV0FSTklORzogU29tZSB2YWx1ZSB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQsIHJlc3VsdGluZworICogaW4gYSBAcmV0VmFsdWUgb2YgIj8/PyIuCisgKiAKKyAqIFRPRE86IFhNTCBTY2hlbWEgMS4wIGRvZXMgbm90IGRlZmluZSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb25zCisgKiBmb3I6IGR1cmF0aW9uLCBnWWVhck1vbnRoLCBnWWVhciwgZ01vbnRoRGF5LCBnTW9udGgsIGdEYXksCisgKiBhbnlVUkksIFFOYW1lLCBOT1RBVElPTi4gVGhpcyB3aWxsIGJlIGZpeGVkIGluIFhNTCBTY2hlbWEgMS4xLgorICoKKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHZhbHVlIGNvdWxkIGJlIGJ1aWx0LCAxIGlmIHRoZSB2YWx1ZSB0eXBlIGlzCisgKiBub3Qgc3VwcG9ydGVkIHlldCBhbmQgLTEgaW4gY2FzZSBvZiBBUEkgZXJyb3JzLgorICovCitpbnQKK3htbFNjaGVtYUdldENhbm9uVmFsdWUoeG1sU2NoZW1hVmFsUHRyIHZhbCwgY29uc3QgeG1sQ2hhciAqKnJldFZhbHVlKQoreworICAgIGlmICgocmV0VmFsdWUgPT0gTlVMTCkgfHwgKHZhbCA9PSBOVUxMKSkKKwlyZXR1cm4gKC0xKTsKKyAgICAqcmV0VmFsdWUgPSBOVUxMOworICAgIHN3aXRjaCAodmFsLT50eXBlKSB7CisJY2FzZSBYTUxfU0NIRU1BU19TVFJJTkc6CisJICAgIGlmICh2YWwtPnZhbHVlLnN0ciA9PSBOVUxMKQorCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAoQkFEX0NBU1QgIiIpOworCSAgICBlbHNlCisJCSpyZXRWYWx1ZSA9IAorCQkgICAgQkFEX0NBU1QgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIHZhbC0+dmFsdWUuc3RyKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BU19OT1JNU1RSSU5HOgorCSAgICBpZiAodmFsLT52YWx1ZS5zdHIgPT0gTlVMTCkKKwkJKnJldFZhbHVlID0gQkFEX0NBU1QgeG1sU3RyZHVwKEJBRF9DQVNUICIiKTsKKwkgICAgZWxzZSB7CisJCSpyZXRWYWx1ZSA9IHhtbFNjaGVtYVdoaXRlU3BhY2VSZXBsYWNlKAorCQkgICAgKGNvbnN0IHhtbENoYXIgKikgdmFsLT52YWx1ZS5zdHIpOworCQlpZiAoKCpyZXRWYWx1ZSkgPT0gTlVMTCkKKwkJICAgICpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cCgKKwkJCShjb25zdCB4bWxDaGFyICopIHZhbC0+dmFsdWUuc3RyKTsKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFTX1RPS0VOOgorCWNhc2UgWE1MX1NDSEVNQVNfTEFOR1VBR0U6CisJY2FzZSBYTUxfU0NIRU1BU19OTVRPS0VOOgorCWNhc2UgWE1MX1NDSEVNQVNfTkFNRToJCisJY2FzZSBYTUxfU0NIRU1BU19OQ05BTUU6CisJY2FzZSBYTUxfU0NIRU1BU19JRDoKKwljYXNlIFhNTF9TQ0hFTUFTX0lEUkVGOgorCWNhc2UgWE1MX1NDSEVNQVNfRU5USVRZOgorCWNhc2UgWE1MX1NDSEVNQVNfTk9UQVRJT046IC8qIFVuY2xlYXIgKi8KKwljYXNlIFhNTF9TQ0hFTUFTX0FOWVVSSTogICAvKiBVbmNsZWFyICovCisJICAgIGlmICh2YWwtPnZhbHVlLnN0ciA9PSBOVUxMKQorCQlyZXR1cm4gKC0xKTsKKwkgICAgKnJldFZhbHVlID0gCisJCUJBRF9DQVNUIHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nKEJBRF9DQVNUIHZhbC0+dmFsdWUuc3RyKTsKKwkgICAgaWYgKCpyZXRWYWx1ZSA9PSBOVUxMKQorCQkqcmV0VmFsdWUgPSAKKwkJICAgIEJBRF9DQVNUIHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSB2YWwtPnZhbHVlLnN0cik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQVNfUU5BTUU6CisJICAgIC8qIFRPRE86IFVuY2xlYXIgaW4gWE1MIFNjaGVtYSAxLjAuICovCisJICAgIGlmICh2YWwtPnZhbHVlLnFuYW1lLnVyaSA9PSBOVUxMKSB7CisJCSpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cChCQURfQ0FTVCB2YWwtPnZhbHVlLnFuYW1lLm5hbWUpOworCQlyZXR1cm4gKDApOworCSAgICB9IGVsc2UgeworCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAoQkFEX0NBU1QgInsiKTsKKwkJKnJldFZhbHVlID0gQkFEX0NBU1QgeG1sU3RyY2F0KCh4bWxDaGFyICopICgqcmV0VmFsdWUpLAorCQkgICAgQkFEX0NBU1QgdmFsLT52YWx1ZS5xbmFtZS51cmkpOworCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJjYXQoKHhtbENoYXIgKikgKCpyZXRWYWx1ZSksCisJCSAgICBCQURfQ0FTVCAifSIpOworCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJjYXQoKHhtbENoYXIgKikgKCpyZXRWYWx1ZSksCisJCSAgICBCQURfQ0FTVCB2YWwtPnZhbHVlLnFuYW1lLnVyaSk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BU19ERUNJTUFMOgorCSAgICAvKgorCSAgICAqIFRPRE86IExvb2tvdXQgZm9yIGEgbW9yZSBzaW1wbGUgaW1wbGVtZW50YXRpb24uCisJICAgICovCisJICAgIGlmICgodmFsLT52YWx1ZS5kZWNpbWFsLnRvdGFsID09IDEpICYmIAorCQkodmFsLT52YWx1ZS5kZWNpbWFsLmxvID09IDApKSB7CisJCSpyZXRWYWx1ZSA9IHhtbFN0cmR1cChCQURfQ0FTVCAiMC4wIik7CisJICAgIH0gZWxzZSB7CisJCXhtbFNjaGVtYVZhbERlY2ltYWwgZGVjID0gdmFsLT52YWx1ZS5kZWNpbWFsOworCQlpbnQgYnVmc2l6ZTsKKwkJY2hhciAqYnVmID0gTlVMTCwgKm9mZnM7CisKKwkJLyogQWRkIHJvb20gZm9yIHRoZSBkZWNpbWFsIHBvaW50IGFzIHdlbGwuICovCisJCWJ1ZnNpemUgPSBkZWMudG90YWwgKyAyOworCQlpZiAoZGVjLnNpZ24pCisJCSAgICBidWZzaXplKys7CisJCS8qIEFkZCByb29tIGZvciBsZWFkaW5nL3RyYWlsaW5nIHplcm8uICovCisJCWlmICgoZGVjLmZyYWMgPT0gMCkgfHwgKGRlYy5mcmFjID09IGRlYy50b3RhbCkpCisJCSAgICBidWZzaXplKys7CisJCWJ1ZiA9IHhtbE1hbGxvYyhidWZzaXplKTsKKwkJaWYgKGJ1ZiA9PSBOVUxMKQorCQkgICAgcmV0dXJuKC0xKTsKKwkJb2ZmcyA9IGJ1ZjsKKwkJaWYgKGRlYy5zaWduKQorCQkgICAgKm9mZnMrKyA9ICctJzsKKwkJaWYgKGRlYy5mcmFjID09IGRlYy50b3RhbCkgeworCQkgICAgKm9mZnMrKyA9ICcwJzsKKwkJICAgICpvZmZzKysgPSAnLic7CisJCX0KKwkJaWYgKGRlYy5oaSAhPSAwKQorCQkgICAgc25wcmludGYob2ZmcywgYnVmc2l6ZSAtIChvZmZzIC0gYnVmKSwKKwkJCSIlbHUlbHUlbHUiLCBkZWMuaGksIGRlYy5taSwgZGVjLmxvKTsKKwkJZWxzZSBpZiAoZGVjLm1pICE9IDApCisJCSAgICBzbnByaW50ZihvZmZzLCBidWZzaXplIC0gKG9mZnMgLSBidWYpLAorCQkJIiVsdSVsdSIsIGRlYy5taSwgZGVjLmxvKTsKKwkJZWxzZQorCQkgICAgc25wcmludGYob2ZmcywgYnVmc2l6ZSAtIChvZmZzIC0gYnVmKSwKKwkJCSIlbHUiLCBkZWMubG8pOworCQkJCisJCWlmIChkZWMuZnJhYyAhPSAwKSB7CisJCSAgICBpZiAoZGVjLmZyYWMgIT0gZGVjLnRvdGFsKSB7CisJCQlpbnQgZGlmZiA9IGRlYy50b3RhbCAtIGRlYy5mcmFjOworCQkJLyoKKwkJCSogSW5zZXJ0IHRoZSBkZWNpbWFsIHBvaW50LgorCQkJKi8KKwkJCW1lbW1vdmUob2ZmcyArIGRpZmYgKyAxLCBvZmZzICsgZGlmZiwgZGVjLmZyYWMgKzEpOworCQkJb2Zmc1tkaWZmXSA9ICcuJzsKKwkJICAgIH0gZWxzZSB7CisJCQl1bnNpZ25lZCBpbnQgaSA9IDA7CisJCQkvKgorCQkJKiBJbnNlcnQgbWlzc2luZyB6ZXJvZXMgYmVoaW5kIHRoZSBkZWNpbWFsIHBvaW50LgorCQkJKi8JCQkKKwkJCXdoaWxlICgqKG9mZnMgKyBpKSAhPSAwKQorCQkJICAgIGkrKzsKKwkJCWlmIChpIDwgZGVjLnRvdGFsKSB7CisJCQkgICAgbWVtbW92ZShvZmZzICsgKGRlYy50b3RhbCAtIGkpLCBvZmZzLCBpICsxKTsKKwkJCSAgICBtZW1zZXQob2ZmcywgJzAnLCBkZWMudG90YWwgLSBpKTsKKwkJCX0KKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIC8qCisJCSAgICAqIEFwcGVuZCBkZWNpbWFsIHBvaW50IGFuZCB6ZXJvLgorCQkgICAgKi8KKwkJICAgIG9mZnMgPSBidWYgKyBidWZzaXplIC0gMTsKKwkJICAgICpvZmZzLS0gPSAwOworCQkgICAgKm9mZnMtLSA9ICcwJzsKKwkJICAgICpvZmZzLS0gPSAnLic7CisJCX0KKwkJKnJldFZhbHVlID0gQkFEX0NBU1QgYnVmOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQVNfSU5URUdFUjoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19QSU5URUdFUjoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19OUElOVEVHRVI6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTklOVEVHRVI6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfTk5JTlRFR0VSOgorCWNhc2UgWE1MX1NDSEVNQVNfTE9ORzoKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19CWVRFOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX1NIT1JUOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX0lOVDoKKwljYXNlIFhNTF9TQ0hFTUFTX1VJTlQ6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVUxPTkc6CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfVVNIT1JUOgorICAgICAgICBjYXNlIFhNTF9TQ0hFTUFTX1VCWVRFOgorCSAgICBpZiAoKHZhbC0+dmFsdWUuZGVjaW1hbC50b3RhbCA9PSAxKSAmJgorCQkodmFsLT52YWx1ZS5kZWNpbWFsLmxvID09IDApKQorCQkqcmV0VmFsdWUgPSB4bWxTdHJkdXAoQkFEX0NBU1QgIjAiKTsKKwkgICAgZWxzZSB7CisJCXhtbFNjaGVtYVZhbERlY2ltYWwgZGVjID0gdmFsLT52YWx1ZS5kZWNpbWFsOworCQlpbnQgYnVmc2l6ZSA9IGRlYy50b3RhbCArIDE7CisKKwkJLyogQWRkIHJvb20gZm9yIHRoZSBkZWNpbWFsIHBvaW50IGFzIHdlbGwuICovCisJCWlmIChkZWMuc2lnbikKKwkJICAgIGJ1ZnNpemUrKzsKKwkJKnJldFZhbHVlID0geG1sTWFsbG9jKGJ1ZnNpemUpOworCQlpZiAoKnJldFZhbHVlID09IE5VTEwpCisJCSAgICByZXR1cm4oLTEpOworCQlpZiAoZGVjLmhpICE9IDApIHsKKwkJICAgIGlmIChkZWMuc2lnbikKKwkJCXNucHJpbnRmKChjaGFyICopICpyZXRWYWx1ZSwgYnVmc2l6ZSwKKwkJCSAgICAiLSVsdSVsdSVsdSIsIGRlYy5oaSwgZGVjLm1pLCBkZWMubG8pOworCQkgICAgZWxzZQorCQkJc25wcmludGYoKGNoYXIgKikgKnJldFZhbHVlLCBidWZzaXplLAorCQkJICAgICIlbHUlbHUlbHUiLCBkZWMuaGksIGRlYy5taSwgZGVjLmxvKTsKKwkJfSBlbHNlIGlmIChkZWMubWkgIT0gMCkgeworCQkgICAgaWYgKGRlYy5zaWduKQorCQkJc25wcmludGYoKGNoYXIgKikgKnJldFZhbHVlLCBidWZzaXplLAorCQkJICAgICItJWx1JWx1IiwgZGVjLm1pLCBkZWMubG8pOworCQkgICAgZWxzZQorCQkJc25wcmludGYoKGNoYXIgKikgKnJldFZhbHVlLCBidWZzaXplLAorCQkJICAgICIlbHUlbHUiLCBkZWMubWksIGRlYy5sbyk7CisJCX0gZWxzZSB7CisJCSAgICBpZiAoZGVjLnNpZ24pCisJCQlzbnByaW50ZigoY2hhciAqKSAqcmV0VmFsdWUsIGJ1ZnNpemUsICItJWx1IiwgZGVjLmxvKTsKKwkJICAgIGVsc2UKKwkJCXNucHJpbnRmKChjaGFyICopICpyZXRWYWx1ZSwgYnVmc2l6ZSwgIiVsdSIsIGRlYy5sbyk7CisJCX0KKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFTX0JPT0xFQU46CisJICAgIGlmICh2YWwtPnZhbHVlLmIpCisJCSpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cChCQURfQ0FTVCAidHJ1ZSIpOworCSAgICBlbHNlCisJCSpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cChCQURfQ0FTVCAiZmFsc2UiKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BU19EVVJBVElPTjogeworCQljaGFyIGJ1ZlsxMDBdOworCQl1bnNpZ25lZCBsb25nIHllYXI7CisJCXVuc2lnbmVkIGxvbmcgbW9uLCBkYXksIGhvdXIgPSAwLCBtaW4gPSAwOworCQlkb3VibGUgc2VjID0gMCwgbGVmdDsKKworCQkvKiBUT0RPOiBVbmNsZWFyIGluIFhNTCBTY2hlbWEgMS4wICovCisJCS8qCisJCSogVE9ETzogVGhpcyByZXN1bHRzIGluIGEgbm9ybWFsaXplZCBvdXRwdXQgb2YgdGhlIHZhbHVlCisJCSogLSB3aGljaCBpcyBOT1QgY29uZm9ybWFudCB0byB0aGUgc3BlYyAtCisJCSogc2luY2UgdGhlIGV4YWN0IHZhbHVlcyBvZiBlYWNoIHByb3BlcnR5IGFyZSBub3QKKwkJKiByZWNvdmVyYWJsZS4gVGhpbmsgYWJvdXQgZXh0ZW5kaW5nIHRoZSBzdHJ1Y3R1cmUgdG8KKwkJKiBwcm92aWRlIGEgZmllbGQgZm9yIGV2ZXJ5IHByb3BlcnR5LgorCQkqLworCQl5ZWFyID0gKHVuc2lnbmVkIGxvbmcpIEZRVU9USUVOVChsYWJzKHZhbC0+dmFsdWUuZHVyLm1vbiksIDEyKTsKKwkJbW9uID0gbGFicyh2YWwtPnZhbHVlLmR1ci5tb24pIC0gMTIgKiB5ZWFyOworCisJCWRheSA9ICh1bnNpZ25lZCBsb25nKSBGUVVPVElFTlQoZmFicyh2YWwtPnZhbHVlLmR1ci5zZWMpLCA4NjQwMCk7CisJCWxlZnQgPSBmYWJzKHZhbC0+dmFsdWUuZHVyLnNlYykgLSBkYXkgKiA4NjQwMDsKKwkJaWYgKGxlZnQgPiAwKSB7CisJCSAgICBob3VyID0gKHVuc2lnbmVkIGxvbmcpIEZRVU9USUVOVChsZWZ0LCAzNjAwKTsKKwkJICAgIGxlZnQgPSBsZWZ0IC0gKGhvdXIgKiAzNjAwKTsKKwkJICAgIGlmIChsZWZ0ID4gMCkgeworCQkJbWluID0gKHVuc2lnbmVkIGxvbmcpIEZRVU9USUVOVChsZWZ0LCA2MCk7CisJCQlzZWMgPSBsZWZ0IC0gKG1pbiAqIDYwKTsKKwkJICAgIH0KKwkJfQorCQlpZiAoKHZhbC0+dmFsdWUuZHVyLm1vbiA8IDApIHx8ICh2YWwtPnZhbHVlLmR1ci5zZWMgPCAwKSkKKwkJICAgIHNucHJpbnRmKGJ1ZiwgMTAwLCAiUCVsdVklbHVNJWx1RFQlbHVIJWx1TSUuMTRnUyIsCisJCQl5ZWFyLCBtb24sIGRheSwgaG91ciwgbWluLCBzZWMpOworCQllbHNlCisJCSAgICBzbnByaW50ZihidWYsIDEwMCwgIi1QJWx1WSVsdU0lbHVEVCVsdUglbHVNJS4xNGdTIiwKKwkJCXllYXIsIG1vbiwgZGF5LCBob3VyLCBtaW4sIHNlYyk7CisJCSpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cChCQURfQ0FTVCBidWYpOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQVNfR1lFQVI6IHsKKwkJY2hhciBidWZbMzBdOworCQkvKiBUT0RPOiBVbmNsZWFyIGluIFhNTCBTY2hlbWEgMS4wICovCisJCS8qIFRPRE86IFdoYXQgdG8gZG8gd2l0aCB0aGUgdGltZXpvbmU/ICovCisJCXNucHJpbnRmKGJ1ZiwgMzAsICIlMDRsZCIsIHZhbC0+dmFsdWUuZGF0ZS55ZWFyKTsKKwkJKnJldFZhbHVlID0gQkFEX0NBU1QgeG1sU3RyZHVwKEJBRF9DQVNUIGJ1Zik7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BU19HTU9OVEg6IHsKKwkJLyogVE9ETzogVW5jbGVhciBpbiBYTUwgU2NoZW1hIDEuMCAqLworCQkvKiBUT0RPOiBXaGF0IHRvIGRvIHdpdGggdGhlIHRpbWV6b25lPyAqLworCQkqcmV0VmFsdWUgPSB4bWxNYWxsb2MoNik7CisJCWlmICgqcmV0VmFsdWUgPT0gTlVMTCkKKwkJICAgIHJldHVybigtMSk7CisJCXNucHJpbnRmKChjaGFyICopICpyZXRWYWx1ZSwgNiwgIi0tJTAydSIsCisJCSAgICB2YWwtPnZhbHVlLmRhdGUubW9uKTsKKwkgICAgfQorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HREFZOiB7CisJCS8qIFRPRE86IFVuY2xlYXIgaW4gWE1MIFNjaGVtYSAxLjAgKi8KKwkJLyogVE9ETzogV2hhdCB0byBkbyB3aXRoIHRoZSB0aW1lem9uZT8gKi8KKwkJKnJldFZhbHVlID0geG1sTWFsbG9jKDYpOworCQlpZiAoKnJldFZhbHVlID09IE5VTEwpCisJCSAgICByZXR1cm4oLTEpOworCQlzbnByaW50ZigoY2hhciAqKSAqcmV0VmFsdWUsIDYsICItLS0lMDJ1IiwKKwkJICAgIHZhbC0+dmFsdWUuZGF0ZS5kYXkpOworCSAgICB9CisJICAgIGJyZWFrOyAgICAgICAgCisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfR01PTlRIREFZOiB7CisJCS8qIFRPRE86IFVuY2xlYXIgaW4gWE1MIFNjaGVtYSAxLjAgKi8KKwkJLyogVE9ETzogV2hhdCB0byBkbyB3aXRoIHRoZSB0aW1lem9uZT8gKi8KKwkJKnJldFZhbHVlID0geG1sTWFsbG9jKDgpOworCQlpZiAoKnJldFZhbHVlID09IE5VTEwpCisJCSAgICByZXR1cm4oLTEpOworCQlzbnByaW50ZigoY2hhciAqKSAqcmV0VmFsdWUsIDgsICItLSUwMnUtJTAydSIsCisJCSAgICB2YWwtPnZhbHVlLmRhdGUubW9uLCB2YWwtPnZhbHVlLmRhdGUuZGF5KTsKKwkgICAgfQorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19HWUVBUk1PTlRIOiB7CisJCWNoYXIgYnVmWzM1XTsKKwkJLyogVE9ETzogVW5jbGVhciBpbiBYTUwgU2NoZW1hIDEuMCAqLworCQkvKiBUT0RPOiBXaGF0IHRvIGRvIHdpdGggdGhlIHRpbWV6b25lPyAqLworCQlpZiAodmFsLT52YWx1ZS5kYXRlLnllYXIgPCAwKQorCQkgICAgc25wcmludGYoYnVmLCAzNSwgIi0lMDRsZC0lMDJ1IiwKKwkJCWxhYnModmFsLT52YWx1ZS5kYXRlLnllYXIpLCAKKwkJCXZhbC0+dmFsdWUuZGF0ZS5tb24pOworCQllbHNlCisJCSAgICBzbnByaW50ZihidWYsIDM1LCAiJTA0bGQtJTAydSIsCisJCQl2YWwtPnZhbHVlLmRhdGUueWVhciwgdmFsLT52YWx1ZS5kYXRlLm1vbik7CisJCSpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cChCQURfQ0FTVCBidWYpOworCSAgICB9CisJICAgIGJyZWFrOwkJCisJY2FzZSBYTUxfU0NIRU1BU19USU1FOgorCSAgICB7CisJCWNoYXIgYnVmWzMwXTsKKworCQlpZiAodmFsLT52YWx1ZS5kYXRlLnR6X2ZsYWcpIHsKKwkJICAgIHhtbFNjaGVtYVZhbFB0ciBub3JtOworCisJCSAgICBub3JtID0geG1sU2NoZW1hRGF0ZU5vcm1hbGl6ZSh2YWwsIDApOworCQkgICAgaWYgKG5vcm0gPT0gTlVMTCkKKwkJCXJldHVybiAoLTEpOworCQkgICAgLyogCisJCSAgICAqIFRPRE86IENoZWNrIGlmICIlLjE0ZyIgaXMgcG9ydGFibGUuCQkgICAgCisJCSAgICAqLworCQkgICAgc25wcmludGYoYnVmLCAzMCwKKwkJCSIlMDJ1OiUwMnU6JTAyLjE0Z1oiLAorCQkJbm9ybS0+dmFsdWUuZGF0ZS5ob3VyLAorCQkJbm9ybS0+dmFsdWUuZGF0ZS5taW4sCisJCQlub3JtLT52YWx1ZS5kYXRlLnNlYyk7CisJCSAgICB4bWxTY2hlbWFGcmVlVmFsdWUobm9ybSk7CisJCX0gZWxzZSB7CisJCSAgICBzbnByaW50ZihidWYsIDMwLAorCQkJIiUwMnU6JTAydTolMDIuMTRnIiwKKwkJCXZhbC0+dmFsdWUuZGF0ZS5ob3VyLAorCQkJdmFsLT52YWx1ZS5kYXRlLm1pbiwKKwkJCXZhbC0+dmFsdWUuZGF0ZS5zZWMpOworCQl9CisJCSpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cChCQURfQ0FTVCBidWYpOworCSAgICB9CSAgICAKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1NDSEVNQVNfREFURToKKwkgICAgeworCQljaGFyIGJ1ZlszMF07CisKKwkJaWYgKHZhbC0+dmFsdWUuZGF0ZS50el9mbGFnKSB7CisJCSAgICB4bWxTY2hlbWFWYWxQdHIgbm9ybTsKKworCQkgICAgbm9ybSA9IHhtbFNjaGVtYURhdGVOb3JtYWxpemUodmFsLCAwKTsKKwkJICAgIGlmIChub3JtID09IE5VTEwpCisJCQlyZXR1cm4gKC0xKTsKKwkJICAgIC8qCisJCSAgICAqIFRPRE86IEFwcGVuZCB0aGUgY2Fub25pY2FsIHZhbHVlIG9mIHRoZQorCQkgICAgKiByZWNvdmVyYWJsZSB0aW1lem9uZSBhbmQgbm90ICJaIi4KKwkJICAgICovCisJCSAgICBzbnByaW50ZihidWYsIDMwLAorCQkJIiUwNGxkOiUwMnU6JTAydVoiLAorCQkJbm9ybS0+dmFsdWUuZGF0ZS55ZWFyLCBub3JtLT52YWx1ZS5kYXRlLm1vbiwKKwkJCW5vcm0tPnZhbHVlLmRhdGUuZGF5KTsKKwkJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZShub3JtKTsKKwkJfSBlbHNlIHsKKwkJICAgIHNucHJpbnRmKGJ1ZiwgMzAsCisJCQkiJTA0bGQ6JTAydTolMDJ1IiwKKwkJCXZhbC0+dmFsdWUuZGF0ZS55ZWFyLCB2YWwtPnZhbHVlLmRhdGUubW9uLAorCQkJdmFsLT52YWx1ZS5kYXRlLmRheSk7CisJCX0KKwkJKnJldFZhbHVlID0gQkFEX0NBU1QgeG1sU3RyZHVwKEJBRF9DQVNUIGJ1Zik7CisJICAgIH0JICAgIAorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfU0NIRU1BU19EQVRFVElNRToKKwkgICAgeworCQljaGFyIGJ1Zls1MF07CisKKwkJaWYgKHZhbC0+dmFsdWUuZGF0ZS50el9mbGFnKSB7CisJCSAgICB4bWxTY2hlbWFWYWxQdHIgbm9ybTsKKworCQkgICAgbm9ybSA9IHhtbFNjaGVtYURhdGVOb3JtYWxpemUodmFsLCAwKTsKKwkJICAgIGlmIChub3JtID09IE5VTEwpCisJCQlyZXR1cm4gKC0xKTsKKwkJICAgIC8qCisJCSAgICAqIFRPRE86IENoZWNrIGlmICIlLjE0ZyIgaXMgcG9ydGFibGUuCisJCSAgICAqLworCQkgICAgc25wcmludGYoYnVmLCA1MCwKKwkJCSIlMDRsZDolMDJ1OiUwMnVUJTAydTolMDJ1OiUwMi4xNGdaIiwKKwkJCW5vcm0tPnZhbHVlLmRhdGUueWVhciwgbm9ybS0+dmFsdWUuZGF0ZS5tb24sCisJCQlub3JtLT52YWx1ZS5kYXRlLmRheSwgbm9ybS0+dmFsdWUuZGF0ZS5ob3VyLAorCQkJbm9ybS0+dmFsdWUuZGF0ZS5taW4sIG5vcm0tPnZhbHVlLmRhdGUuc2VjKTsKKwkJICAgIHhtbFNjaGVtYUZyZWVWYWx1ZShub3JtKTsKKwkJfSBlbHNlIHsKKwkJICAgIHNucHJpbnRmKGJ1ZiwgNTAsCisJCQkiJTA0bGQ6JTAydTolMDJ1VCUwMnU6JTAydTolMDIuMTRnIiwKKwkJCXZhbC0+dmFsdWUuZGF0ZS55ZWFyLCB2YWwtPnZhbHVlLmRhdGUubW9uLAorCQkJdmFsLT52YWx1ZS5kYXRlLmRheSwgdmFsLT52YWx1ZS5kYXRlLmhvdXIsCisJCQl2YWwtPnZhbHVlLmRhdGUubWluLCB2YWwtPnZhbHVlLmRhdGUuc2VjKTsKKwkJfQorCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAoQkFEX0NBU1QgYnVmKTsKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFTX0hFWEJJTkFSWToKKwkgICAgKnJldFZhbHVlID0gQkFEX0NBU1QgeG1sU3RyZHVwKEJBRF9DQVNUIHZhbC0+dmFsdWUuaGV4LnN0cik7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1NDSEVNQVNfQkFTRTY0QklOQVJZOgorCSAgICAvKgorCSAgICAqIFRPRE86IElzIHRoZSBmb2xsb3dpbmcgc3BlYyBwaWVjZSBpbXBsZW1lbnRlZD86CisJICAgICogU1BFQzogIk5vdGU6IEZvciBzb21lIHZhbHVlcyB0aGUgY2Fub25pY2FsIGZvcm0gZGVmaW5lZAorCSAgICAqIGFib3ZlIGRvZXMgbm90IGNvbmZvcm0gdG8gW1JGQyAyMDQ1XSwgd2hpY2ggcmVxdWlyZXMgYnJlYWtpbmcKKwkgICAgKiB3aXRoIGxpbmVmZWVkcyBhdCBhcHByb3ByaWF0ZSBpbnRlcnZhbHMuIgorCSAgICAqLworCSAgICAqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAoQkFEX0NBU1QgdmFsLT52YWx1ZS5iYXNlNjQuc3RyKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfU0NIRU1BU19GTE9BVDogeworCQljaGFyIGJ1ZlszMF07CQkKKwkJLyogCisJCSogfG18IDwgMTY3NzcyMTYsIC0xNDkgPD0gZSA8PSAxMDQuCisJCSogVE9ETzogSGFuZGxlLCBOYU4sIElORiwgLUlORi4gVGhlIGZvcm1hdCBpcyBub3QKKwkJKiB5ZXQgY29uZm9ybWFudC4gVGhlIGMgdHlwZSBmbG9hdCBkb2VzIG5vdCBjb3ZlcgorCQkqIHRoZSB3aG9sZSByYW5nZS4KKwkJKi8KKwkJc25wcmludGYoYnVmLCAzMCwgIiUwMS4xNGUiLCB2YWwtPnZhbHVlLmYpOworCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAoQkFEX0NBU1QgYnVmKTsKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFTX0RPVUJMRTogeworCQljaGFyIGJ1Zls0MF07CisJCS8qIHxtfCA8IDkwMDcxOTkyNTQ3NDA5OTIsIC0xMDc1IDw9IGUgPD0gOTcwICovCisJCS8qCisJCSogVE9ETzogSGFuZGxlLCBOYU4sIElORiwgLUlORi4gVGhlIGZvcm1hdCBpcyBub3QKKwkJKiB5ZXQgY29uZm9ybWFudC4gVGhlIGMgdHlwZSBmbG9hdCBkb2VzIG5vdCBjb3ZlcgorCQkqIHRoZSB3aG9sZSByYW5nZS4KKwkJKi8KKwkJc25wcmludGYoYnVmLCA0MCwgIiUwMS4xNGUiLCB2YWwtPnZhbHVlLmQpOworCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAoQkFEX0NBU1QgYnVmKTsKKwkgICAgfQorCSAgICBicmVhazsJCisJZGVmYXVsdDoKKwkgICAgKnJldFZhbHVlID0gQkFEX0NBU1QgeG1sU3RyZHVwKEJBRF9DQVNUICI/Pz8iKTsKKwkgICAgcmV0dXJuICgxKTsKKyAgICB9CisgICAgaWYgKCpyZXRWYWx1ZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3A6CisgKiBAdmFsOiB0aGUgcHJlY29tcHV0ZWQgdmFsdWUKKyAqIEByZXRWYWx1ZTogdGhlIHJldHVybmVkIHZhbHVlCisgKiBAd3M6IHRoZSB3aGl0ZXNwYWNlIHR5cGUgb2YgdGhlIHZhbHVlCisgKgorICogR2V0IGEgdGhlIGNvbm9uaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUuCisgKiBUaGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSByZXR1cm5lZCBAcmV0VmFsdWUuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSB2YWx1ZSBjb3VsZCBiZSBidWlsdCwgMSBpZiB0aGUgdmFsdWUgdHlwZSBpcworICogbm90IHN1cHBvcnRlZCB5ZXQgYW5kIC0xIGluIGNhc2Ugb2YgQVBJIGVycm9ycy4KKyAqLworaW50Cit4bWxTY2hlbWFHZXRDYW5vblZhbHVlV2h0c3AoeG1sU2NoZW1hVmFsUHRyIHZhbCwKKwkJCSAgICBjb25zdCB4bWxDaGFyICoqcmV0VmFsdWUsCisJCQkgICAgeG1sU2NoZW1hV2hpdGVzcGFjZVZhbHVlVHlwZSB3cykKK3sKKyAgICBpZiAoKHJldFZhbHVlID09IE5VTEwpIHx8ICh2YWwgPT0gTlVMTCkpCisJcmV0dXJuICgtMSk7CisgICAgaWYgKCh3cyA9PSBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfVU5LTk9XTikgfHwKKwkod3MgPiBYTUxfU0NIRU1BX1dISVRFU1BBQ0VfQ09MTEFQU0UpKQorCXJldHVybiAoLTEpOworCisgICAgKnJldFZhbHVlID0gTlVMTDsKKyAgICBzd2l0Y2ggKHZhbC0+dHlwZSkgeworCWNhc2UgWE1MX1NDSEVNQVNfU1RSSU5HOgorCSAgICBpZiAodmFsLT52YWx1ZS5zdHIgPT0gTlVMTCkKKwkJKnJldFZhbHVlID0gQkFEX0NBU1QgeG1sU3RyZHVwKEJBRF9DQVNUICIiKTsKKwkgICAgZWxzZSBpZiAod3MgPT0gWE1MX1NDSEVNQV9XSElURVNQQUNFX0NPTExBUFNFKQorCQkqcmV0VmFsdWUgPSB4bWxTY2hlbWFDb2xsYXBzZVN0cmluZyh2YWwtPnZhbHVlLnN0cik7CisJICAgIGVsc2UgaWYgKHdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9SRVBMQUNFKQorCQkqcmV0VmFsdWUgPSB4bWxTY2hlbWFXaGl0ZVNwYWNlUmVwbGFjZSh2YWwtPnZhbHVlLnN0cik7CisJICAgIGlmICgoKnJldFZhbHVlKSA9PSBOVUxMKQorCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAodmFsLT52YWx1ZS5zdHIpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9TQ0hFTUFTX05PUk1TVFJJTkc6CisJICAgIGlmICh2YWwtPnZhbHVlLnN0ciA9PSBOVUxMKQorCQkqcmV0VmFsdWUgPSBCQURfQ0FTVCB4bWxTdHJkdXAoQkFEX0NBU1QgIiIpOworCSAgICBlbHNlIHsKKwkJaWYgKHdzID09IFhNTF9TQ0hFTUFfV0hJVEVTUEFDRV9DT0xMQVBTRSkKKwkJICAgICpyZXRWYWx1ZSA9IHhtbFNjaGVtYUNvbGxhcHNlU3RyaW5nKHZhbC0+dmFsdWUuc3RyKTsKKwkJZWxzZQorCQkgICAgKnJldFZhbHVlID0geG1sU2NoZW1hV2hpdGVTcGFjZVJlcGxhY2UodmFsLT52YWx1ZS5zdHIpOworCQlpZiAoKCpyZXRWYWx1ZSkgPT0gTlVMTCkKKwkJICAgICpyZXRWYWx1ZSA9IEJBRF9DQVNUIHhtbFN0cmR1cCh2YWwtPnZhbHVlLnN0cik7CisJICAgIH0KKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuICh4bWxTY2hlbWFHZXRDYW5vblZhbHVlKHZhbCwgcmV0VmFsdWUpKTsKKyAgICB9ICAgIAorICAgIHJldHVybiAoMCk7Cit9CisKKy8qKgorICogeG1sU2NoZW1hR2V0VmFsVHlwZToKKyAqIEB2YWw6IGEgc2NoZW1hcyB2YWx1ZQorICoKKyAqIEFjY2Vzc29yIGZvciB0aGUgdHlwZSBvZiBhIHZhbHVlCisgKgorICogUmV0dXJucyB0aGUgeG1sU2NoZW1hVmFsVHlwZSBvZiB0aGUgdmFsdWUKKyAqLworeG1sU2NoZW1hVmFsVHlwZQoreG1sU2NoZW1hR2V0VmFsVHlwZSh4bWxTY2hlbWFWYWxQdHIgdmFsKQoreworICAgIGlmICh2YWwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKFhNTF9TQ0hFTUFTX1VOS05PV04pOworICAgIHJldHVybiAodmFsLT50eXBlKTsKK30KKworI2RlZmluZSBib3R0b21feG1sc2NoZW1hc3R5cGVzCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgorI2VuZGlmIC8qIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQgKi8KZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcveG1sc3RyaW5nLmMgYi9saWJ4bWwyLTIuNy43L3htbHN0cmluZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMGYyNDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3htbHN0cmluZy5jCkBAIC0wLDAgKzEsOTg0IEBACisvKgorICogc3RyaW5nLmMgOiBhbiBYTUwgc3RyaW5nIHV0aWxpdGllcyBtb2R1bGUKKyAqCisgKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB2YXJpb3VzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcKKyAqIHRoZSB4bWxDaGFyKiB0eXBlLiBBbGwgZnVuY3Rpb25zIG5hbWVkIHhtbFN0ciogaGF2ZSBiZWVuIG1vdmVkIGhlcmUKKyAqIGZyb20gdGhlIHBhcnNlci5jIGZpbGUgKHRoZWlyIG9yaWdpbmFsIGhvbWUpLiAKKyAqCisgKiBTZWUgQ29weXJpZ2h0IGZvciB0aGUgc3RhdHVzIG9mIHRoaXMgc29mdHdhcmUuCisgKgorICogVVRGOCBzdHJpbmcgcm91dGluZXMgZnJvbToKKyAqIFdpbGxpYW0gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgorICoKKyAqIGRhbmllbEB2ZWlsbGFyZC5jb20KKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGlieG1sL3htbG1lbW9yeS5oPgorI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXJJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc3RyaW5nLmg+CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgIENvbW1vZGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHhtbENoYXJzICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sU3RybmR1cDoKKyAqIEBjdXI6ICB0aGUgaW5wdXQgeG1sQ2hhciAqCisgKiBAbGVuOiAgdGhlIGxlbiBvZiBAY3VyCisgKgorICogYSBzdHJuZHVwIGZvciBhcnJheSBvZiB4bWxDaGFyJ3MKKyAqCisgKiBSZXR1cm5zIGEgbmV3IHhtbENoYXIgKiBvciBOVUxMCisgKi8KK3htbENoYXIgKgoreG1sU3RybmR1cChjb25zdCB4bWxDaGFyICpjdXIsIGludCBsZW4pIHsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgCisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKGxlbiA8IDApKSByZXR1cm4oTlVMTCk7CisgICAgcmV0ID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKChsZW4gKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1jcHkocmV0LCBjdXIsIGxlbiAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgcmV0W2xlbl0gPSAwOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFN0cmR1cDoKKyAqIEBjdXI6ICB0aGUgaW5wdXQgeG1sQ2hhciAqCisgKgorICogYSBzdHJkdXAgZm9yIGFycmF5IG9mIHhtbENoYXIncy4gU2luY2UgdGhleSBhcmUgc3VwcG9zZWQgdG8gYmUKKyAqIGVuY29kZWQgaW4gVVRGLTggb3IgYW4gZW5jb2Rpbmcgd2l0aCA4Yml0IGJhc2VkIGNoYXJzLCB3ZSBhc3N1bWUKKyAqIGEgdGVybWluYXRpb24gbWFyayBvZiAnMCcuCisgKgorICogUmV0dXJucyBhIG5ldyB4bWxDaGFyICogb3IgTlVMTAorICovCit4bWxDaGFyICoKK3htbFN0cmR1cChjb25zdCB4bWxDaGFyICpjdXIpIHsKKyAgICBjb25zdCB4bWxDaGFyICpwID0gY3VyOworCisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgd2hpbGUgKCpwICE9IDApIHArKzsgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLworICAgIHJldHVybih4bWxTdHJuZHVwKGN1ciwgcCAtIGN1cikpOworfQorCisvKioKKyAqIHhtbENoYXJTdHJuZHVwOgorICogQGN1cjogIHRoZSBpbnB1dCBjaGFyICoKKyAqIEBsZW46ICB0aGUgbGVuIG9mIEBjdXIKKyAqCisgKiBhIHN0cm5kdXAgZm9yIGNoYXIncyB0byB4bWxDaGFyJ3MKKyAqCisgKiBSZXR1cm5zIGEgbmV3IHhtbENoYXIgKiBvciBOVUxMCisgKi8KKworeG1sQ2hhciAqCit4bWxDaGFyU3RybmR1cChjb25zdCBjaGFyICpjdXIsIGludCBsZW4pIHsKKyAgICBpbnQgaTsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgCisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKGxlbiA8IDApKSByZXR1cm4oTlVMTCk7CisgICAgcmV0ID0gKHhtbENoYXIgKikgeG1sTWFsbG9jQXRvbWljKChsZW4gKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBmb3IgKGkgPSAwO2kgPCBsZW47aSsrKSB7CisgICAgICAgIHJldFtpXSA9ICh4bWxDaGFyKSBjdXJbaV07CisgICAgICAgIGlmIChyZXRbaV0gPT0gMCkgcmV0dXJuKHJldCk7CisgICAgfQorICAgIHJldFtsZW5dID0gMDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxDaGFyU3RyZHVwOgorICogQGN1cjogIHRoZSBpbnB1dCBjaGFyICoKKyAqCisgKiBhIHN0cmR1cCBmb3IgY2hhcidzIHRvIHhtbENoYXIncworICoKKyAqIFJldHVybnMgYSBuZXcgeG1sQ2hhciAqIG9yIE5VTEwKKyAqLworCit4bWxDaGFyICoKK3htbENoYXJTdHJkdXAoY29uc3QgY2hhciAqY3VyKSB7CisgICAgY29uc3QgY2hhciAqcCA9IGN1cjsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIHdoaWxlICgqcCAhPSAnXDAnKSBwKys7IC8qIG5vbiBpbnB1dCBjb25zdW1pbmcgKi8KKyAgICByZXR1cm4oeG1sQ2hhclN0cm5kdXAoY3VyLCBwIC0gY3VyKSk7Cit9CisKKy8qKgorICogeG1sU3RyY21wOgorICogQHN0cjE6ICB0aGUgZmlyc3QgeG1sQ2hhciAqCisgKiBAc3RyMjogIHRoZSBzZWNvbmQgeG1sQ2hhciAqCisgKgorICogYSBzdHJjbXAgZm9yIHhtbENoYXIncworICoKKyAqIFJldHVybnMgdGhlIGludGVnZXIgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uCisgKi8KKworaW50Cit4bWxTdHJjbXAoY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMikgeworICAgIHJlZ2lzdGVyIGludCB0bXA7CisKKyAgICBpZiAoc3RyMSA9PSBzdHIyKSByZXR1cm4oMCk7CisgICAgaWYgKHN0cjEgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoc3RyMiA9PSBOVUxMKSByZXR1cm4oMSk7CisgICAgZG8geworICAgICAgICB0bXAgPSAqc3RyMSsrIC0gKnN0cjI7CisgICAgICAgIGlmICh0bXAgIT0gMCkgcmV0dXJuKHRtcCk7CisgICAgfSB3aGlsZSAoKnN0cjIrKyAhPSAwKTsKKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiB4bWxTdHJFcXVhbDoKKyAqIEBzdHIxOiAgdGhlIGZpcnN0IHhtbENoYXIgKgorICogQHN0cjI6ICB0aGUgc2Vjb25kIHhtbENoYXIgKgorICoKKyAqIENoZWNrIGlmIGJvdGggc3RyaW5ncyBhcmUgZXF1YWwgb2YgaGF2ZSBzYW1lIGNvbnRlbnQuCisgKiBTaG91bGQgYmUgYSBiaXQgbW9yZSByZWFkYWJsZSBhbmQgZmFzdGVyIHRoYW4geG1sU3RyY21wKCkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdGhleSBhcmUgZXF1YWwsIDAgaWYgdGhleSBhcmUgZGlmZmVyZW50CisgKi8KKworaW50Cit4bWxTdHJFcXVhbChjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyKSB7CisgICAgaWYgKHN0cjEgPT0gc3RyMikgcmV0dXJuKDEpOworICAgIGlmIChzdHIxID09IE5VTEwpIHJldHVybigwKTsKKyAgICBpZiAoc3RyMiA9PSBOVUxMKSByZXR1cm4oMCk7CisgICAgZG8geworICAgICAgICBpZiAoKnN0cjErKyAhPSAqc3RyMikgcmV0dXJuKDApOworICAgIH0gd2hpbGUgKCpzdHIyKyspOworICAgIHJldHVybigxKTsKK30KKworLyoqCisgKiB4bWxTdHJRRXF1YWw6CisgKiBAcHJlZjogIHRoZSBwcmVmaXggb2YgdGhlIFFOYW1lCisgKiBAbmFtZTogIHRoZSBsb2NhbG5hbWUgb2YgdGhlIFFOYW1lCisgKiBAc3RyOiAgdGhlIHNlY29uZCB4bWxDaGFyICoKKyAqCisgKiBDaGVjayBpZiBhIFFOYW1lIGlzIEVxdWFsIHRvIGEgZ2l2ZW4gc3RyaW5nIAorICoKKyAqIFJldHVybnMgMSBpZiB0aGV5IGFyZSBlcXVhbCwgMCBpZiB0aGV5IGFyZSBkaWZmZXJlbnQKKyAqLworCitpbnQKK3htbFN0clFFcXVhbChjb25zdCB4bWxDaGFyICpwcmVmLCBjb25zdCB4bWxDaGFyICpuYW1lLCBjb25zdCB4bWxDaGFyICpzdHIpIHsKKyAgICBpZiAocHJlZiA9PSBOVUxMKSByZXR1cm4oeG1sU3RyRXF1YWwobmFtZSwgc3RyKSk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgcmV0dXJuKDApOworICAgIGlmIChzdHIgPT0gTlVMTCkgcmV0dXJuKDApOworCisgICAgZG8geworICAgICAgICBpZiAoKnByZWYrKyAhPSAqc3RyKSByZXR1cm4oMCk7CisgICAgfSB3aGlsZSAoKCpzdHIrKykgJiYgKCpwcmVmKSk7CisgICAgaWYgKCpzdHIrKyAhPSAnOicpIHJldHVybigwKTsKKyAgICBkbyB7CisgICAgICAgIGlmICgqbmFtZSsrICE9ICpzdHIpIHJldHVybigwKTsKKyAgICB9IHdoaWxlICgqc3RyKyspOworICAgIHJldHVybigxKTsKK30KKworLyoqCisgKiB4bWxTdHJuY21wOgorICogQHN0cjE6ICB0aGUgZmlyc3QgeG1sQ2hhciAqCisgKiBAc3RyMjogIHRoZSBzZWNvbmQgeG1sQ2hhciAqCisgKiBAbGVuOiAgdGhlIG1heCBjb21wYXJpc29uIGxlbmd0aAorICoKKyAqIGEgc3RybmNtcCBmb3IgeG1sQ2hhcidzCisgKgorICogUmV0dXJucyB0aGUgaW50ZWdlciByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24KKyAqLworCitpbnQKK3htbFN0cm5jbXAoY29uc3QgeG1sQ2hhciAqc3RyMSwgY29uc3QgeG1sQ2hhciAqc3RyMiwgaW50IGxlbikgeworICAgIHJlZ2lzdGVyIGludCB0bXA7CisKKyAgICBpZiAobGVuIDw9IDApIHJldHVybigwKTsKKyAgICBpZiAoc3RyMSA9PSBzdHIyKSByZXR1cm4oMCk7CisgICAgaWYgKHN0cjEgPT0gTlVMTCkgcmV0dXJuKC0xKTsKKyAgICBpZiAoc3RyMiA9PSBOVUxMKSByZXR1cm4oMSk7CisjaWZkZWYgX19HTlVDX18KKyAgICB0bXAgPSBzdHJuY21wKChjb25zdCBjaGFyICopc3RyMSwgKGNvbnN0IGNoYXIgKilzdHIyLCBsZW4pOworICAgIHJldHVybiB0bXA7CisjZWxzZQorICAgIGRvIHsKKyAgICAgICAgdG1wID0gKnN0cjErKyAtICpzdHIyOworICAgICAgICBpZiAodG1wICE9IDAgfHwgLS1sZW4gPT0gMCkgcmV0dXJuKHRtcCk7CisgICAgfSB3aGlsZSAoKnN0cjIrKyAhPSAwKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitzdGF0aWMgY29uc3QgeG1sQ2hhciBjYXNlbWFwWzI1Nl0gPSB7CisgICAgMHgwMCwweDAxLDB4MDIsMHgwMywweDA0LDB4MDUsMHgwNiwweDA3LAorICAgIDB4MDgsMHgwOSwweDBBLDB4MEIsMHgwQywweDBELDB4MEUsMHgwRiwKKyAgICAweDEwLDB4MTEsMHgxMiwweDEzLDB4MTQsMHgxNSwweDE2LDB4MTcsCisgICAgMHgxOCwweDE5LDB4MUEsMHgxQiwweDFDLDB4MUQsMHgxRSwweDFGLAorICAgIDB4MjAsMHgyMSwweDIyLDB4MjMsMHgyNCwweDI1LDB4MjYsMHgyNywKKyAgICAweDI4LDB4MjksMHgyQSwweDJCLDB4MkMsMHgyRCwweDJFLDB4MkYsCisgICAgMHgzMCwweDMxLDB4MzIsMHgzMywweDM0LDB4MzUsMHgzNiwweDM3LAorICAgIDB4MzgsMHgzOSwweDNBLDB4M0IsMHgzQywweDNELDB4M0UsMHgzRiwKKyAgICAweDQwLDB4NjEsMHg2MiwweDYzLDB4NjQsMHg2NSwweDY2LDB4NjcsCisgICAgMHg2OCwweDY5LDB4NkEsMHg2QiwweDZDLDB4NkQsMHg2RSwweDZGLAorICAgIDB4NzAsMHg3MSwweDcyLDB4NzMsMHg3NCwweDc1LDB4NzYsMHg3NywKKyAgICAweDc4LDB4NzksMHg3QSwweDdCLDB4NUMsMHg1RCwweDVFLDB4NUYsCisgICAgMHg2MCwweDYxLDB4NjIsMHg2MywweDY0LDB4NjUsMHg2NiwweDY3LAorICAgIDB4NjgsMHg2OSwweDZBLDB4NkIsMHg2QywweDZELDB4NkUsMHg2RiwKKyAgICAweDcwLDB4NzEsMHg3MiwweDczLDB4NzQsMHg3NSwweDc2LDB4NzcsCisgICAgMHg3OCwweDc5LDB4N0EsMHg3QiwweDdDLDB4N0QsMHg3RSwweDdGLAorICAgIDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywKKyAgICAweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsCisgICAgMHg5MCwweDkxLDB4OTIsMHg5MywweDk0LDB4OTUsMHg5NiwweDk3LAorICAgIDB4OTgsMHg5OSwweDlBLDB4OUIsMHg5QywweDlELDB4OUUsMHg5RiwKKyAgICAweEEwLDB4QTEsMHhBMiwweEEzLDB4QTQsMHhBNSwweEE2LDB4QTcsCisgICAgMHhBOCwweEE5LDB4QUEsMHhBQiwweEFDLDB4QUQsMHhBRSwweEFGLAorICAgIDB4QjAsMHhCMSwweEIyLDB4QjMsMHhCNCwweEI1LDB4QjYsMHhCNywKKyAgICAweEI4LDB4QjksMHhCQSwweEJCLDB4QkMsMHhCRCwweEJFLDB4QkYsCisgICAgMHhDMCwweEMxLDB4QzIsMHhDMywweEM0LDB4QzUsMHhDNiwweEM3LAorICAgIDB4QzgsMHhDOSwweENBLDB4Q0IsMHhDQywweENELDB4Q0UsMHhDRiwKKyAgICAweEQwLDB4RDEsMHhEMiwweEQzLDB4RDQsMHhENSwweEQ2LDB4RDcsCisgICAgMHhEOCwweEQ5LDB4REEsMHhEQiwweERDLDB4REQsMHhERSwweERGLAorICAgIDB4RTAsMHhFMSwweEUyLDB4RTMsMHhFNCwweEU1LDB4RTYsMHhFNywKKyAgICAweEU4LDB4RTksMHhFQSwweEVCLDB4RUMsMHhFRCwweEVFLDB4RUYsCisgICAgMHhGMCwweEYxLDB4RjIsMHhGMywweEY0LDB4RjUsMHhGNiwweEY3LAorICAgIDB4RjgsMHhGOSwweEZBLDB4RkIsMHhGQywweEZELDB4RkUsMHhGRgorfTsKKworLyoqCisgKiB4bWxTdHJjYXNlY21wOgorICogQHN0cjE6ICB0aGUgZmlyc3QgeG1sQ2hhciAqCisgKiBAc3RyMjogIHRoZSBzZWNvbmQgeG1sQ2hhciAqCisgKgorICogYSBzdHJjYXNlY21wIGZvciB4bWxDaGFyJ3MKKyAqCisgKiBSZXR1cm5zIHRoZSBpbnRlZ2VyIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbgorICovCisKK2ludAoreG1sU3RyY2FzZWNtcChjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyKSB7CisgICAgcmVnaXN0ZXIgaW50IHRtcDsKKworICAgIGlmIChzdHIxID09IHN0cjIpIHJldHVybigwKTsKKyAgICBpZiAoc3RyMSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChzdHIyID09IE5VTEwpIHJldHVybigxKTsKKyAgICBkbyB7CisgICAgICAgIHRtcCA9IGNhc2VtYXBbKnN0cjErK10gLSBjYXNlbWFwWypzdHIyXTsKKyAgICAgICAgaWYgKHRtcCAhPSAwKSByZXR1cm4odG1wKTsKKyAgICB9IHdoaWxlICgqc3RyMisrICE9IDApOworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHhtbFN0cm5jYXNlY21wOgorICogQHN0cjE6ICB0aGUgZmlyc3QgeG1sQ2hhciAqCisgKiBAc3RyMjogIHRoZSBzZWNvbmQgeG1sQ2hhciAqCisgKiBAbGVuOiAgdGhlIG1heCBjb21wYXJpc29uIGxlbmd0aAorICoKKyAqIGEgc3RybmNhc2VjbXAgZm9yIHhtbENoYXIncworICoKKyAqIFJldHVybnMgdGhlIGludGVnZXIgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uCisgKi8KKworaW50Cit4bWxTdHJuY2FzZWNtcChjb25zdCB4bWxDaGFyICpzdHIxLCBjb25zdCB4bWxDaGFyICpzdHIyLCBpbnQgbGVuKSB7CisgICAgcmVnaXN0ZXIgaW50IHRtcDsKKworICAgIGlmIChsZW4gPD0gMCkgcmV0dXJuKDApOworICAgIGlmIChzdHIxID09IHN0cjIpIHJldHVybigwKTsKKyAgICBpZiAoc3RyMSA9PSBOVUxMKSByZXR1cm4oLTEpOworICAgIGlmIChzdHIyID09IE5VTEwpIHJldHVybigxKTsKKyAgICBkbyB7CisgICAgICAgIHRtcCA9IGNhc2VtYXBbKnN0cjErK10gLSBjYXNlbWFwWypzdHIyXTsKKyAgICAgICAgaWYgKHRtcCAhPSAwIHx8IC0tbGVuID09IDApIHJldHVybih0bXApOworICAgIH0gd2hpbGUgKCpzdHIyKysgIT0gMCk7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogeG1sU3RyY2hyOgorICogQHN0cjogIHRoZSB4bWxDaGFyICogYXJyYXkKKyAqIEB2YWw6ICB0aGUgeG1sQ2hhciB0byBzZWFyY2gKKyAqCisgKiBhIHN0cmNociBmb3IgeG1sQ2hhcidzCisgKgorICogUmV0dXJucyB0aGUgeG1sQ2hhciAqIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBOVUxMLgorICovCisKK2NvbnN0IHhtbENoYXIgKgoreG1sU3RyY2hyKGNvbnN0IHhtbENoYXIgKnN0ciwgeG1sQ2hhciB2YWwpIHsKKyAgICBpZiAoc3RyID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICB3aGlsZSAoKnN0ciAhPSAwKSB7IC8qIG5vbiBpbnB1dCBjb25zdW1pbmcgKi8KKyAgICAgICAgaWYgKCpzdHIgPT0gdmFsKSByZXR1cm4oKHhtbENoYXIgKikgc3RyKTsKKyAgICAgICAgc3RyKys7CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxTdHJzdHI6CisgKiBAc3RyOiAgdGhlIHhtbENoYXIgKiBhcnJheSAoaGF5c3RhY2spCisgKiBAdmFsOiAgdGhlIHhtbENoYXIgdG8gc2VhcmNoIChuZWVkbGUpCisgKgorICogYSBzdHJzdHIgZm9yIHhtbENoYXIncworICoKKyAqIFJldHVybnMgdGhlIHhtbENoYXIgKiBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb3IgTlVMTC4KKyAqLworCitjb25zdCB4bWxDaGFyICoKK3htbFN0cnN0cihjb25zdCB4bWxDaGFyICpzdHIsIGNvbnN0IHhtbENoYXIgKnZhbCkgeworICAgIGludCBuOworICAgIAorICAgIGlmIChzdHIgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmICh2YWwgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIG4gPSB4bWxTdHJsZW4odmFsKTsKKworICAgIGlmIChuID09IDApIHJldHVybihzdHIpOworICAgIHdoaWxlICgqc3RyICE9IDApIHsgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLworICAgICAgICBpZiAoKnN0ciA9PSAqdmFsKSB7CisgICAgICAgICAgICBpZiAoIXhtbFN0cm5jbXAoc3RyLCB2YWwsIG4pKSByZXR1cm4oKGNvbnN0IHhtbENoYXIgKikgc3RyKTsKKyAgICAgICAgfQorICAgICAgICBzdHIrKzsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFN0cmNhc2VzdHI6CisgKiBAc3RyOiAgdGhlIHhtbENoYXIgKiBhcnJheSAoaGF5c3RhY2spCisgKiBAdmFsOiAgdGhlIHhtbENoYXIgdG8gc2VhcmNoIChuZWVkbGUpCisgKgorICogYSBjYXNlLWlnbm9yaW5nIHN0cnN0ciBmb3IgeG1sQ2hhcidzCisgKgorICogUmV0dXJucyB0aGUgeG1sQ2hhciAqIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBOVUxMLgorICovCisKK2NvbnN0IHhtbENoYXIgKgoreG1sU3RyY2FzZXN0cihjb25zdCB4bWxDaGFyICpzdHIsIGNvbnN0IHhtbENoYXIgKnZhbCkgeworICAgIGludCBuOworICAgIAorICAgIGlmIChzdHIgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmICh2YWwgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIG4gPSB4bWxTdHJsZW4odmFsKTsKKworICAgIGlmIChuID09IDApIHJldHVybihzdHIpOworICAgIHdoaWxlICgqc3RyICE9IDApIHsgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLworICAgICAgICBpZiAoY2FzZW1hcFsqc3RyXSA9PSBjYXNlbWFwWyp2YWxdKQorICAgICAgICAgICAgaWYgKCF4bWxTdHJuY2FzZWNtcChzdHIsIHZhbCwgbikpIHJldHVybihzdHIpOworICAgICAgICBzdHIrKzsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFN0cnN1YjoKKyAqIEBzdHI6ICB0aGUgeG1sQ2hhciAqIGFycmF5IChoYXlzdGFjaykKKyAqIEBzdGFydDogIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhciAoemVybyBiYXNlZCkKKyAqIEBsZW46ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdWJzdHJpbmcKKyAqCisgKiBFeHRyYWN0IGEgc3Vic3RyaW5nIG9mIGEgZ2l2ZW4gc3RyaW5nCisgKgorICogUmV0dXJucyB0aGUgeG1sQ2hhciAqIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBOVUxMLgorICovCisKK3htbENoYXIgKgoreG1sU3Ryc3ViKGNvbnN0IHhtbENoYXIgKnN0ciwgaW50IHN0YXJ0LCBpbnQgbGVuKSB7CisgICAgaW50IGk7CisgICAgCisgICAgaWYgKHN0ciA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKHN0YXJ0IDwgMCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChsZW4gPCAwKSByZXR1cm4oTlVMTCk7CisKKyAgICBmb3IgKGkgPSAwO2kgPCBzdGFydDtpKyspIHsKKyAgICAgICAgaWYgKCpzdHIgPT0gMCkgcmV0dXJuKE5VTEwpOworICAgICAgICBzdHIrKzsKKyAgICB9CisgICAgaWYgKCpzdHIgPT0gMCkgcmV0dXJuKE5VTEwpOworICAgIHJldHVybih4bWxTdHJuZHVwKHN0ciwgbGVuKSk7Cit9CisKKy8qKgorICogeG1sU3RybGVuOgorICogQHN0cjogIHRoZSB4bWxDaGFyICogYXJyYXkKKyAqCisgKiBsZW5ndGggb2YgYSB4bWxDaGFyJ3Mgc3RyaW5nCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHhtbENoYXIgY29udGFpbmVkIGluIHRoZSBBUlJBWS4KKyAqLworCitpbnQKK3htbFN0cmxlbihjb25zdCB4bWxDaGFyICpzdHIpIHsKKyAgICBpbnQgbGVuID0gMDsKKworICAgIGlmIChzdHIgPT0gTlVMTCkgcmV0dXJuKDApOworICAgIHdoaWxlICgqc3RyICE9IDApIHsgLyogbm9uIGlucHV0IGNvbnN1bWluZyAqLworICAgICAgICBzdHIrKzsKKyAgICAgICAgbGVuKys7CisgICAgfQorICAgIHJldHVybihsZW4pOworfQorCisvKioKKyAqIHhtbFN0cm5jYXQ6CisgKiBAY3VyOiAgdGhlIG9yaWdpbmFsIHhtbENoYXIgKiBhcnJheQorICogQGFkZDogIHRoZSB4bWxDaGFyICogYXJyYXkgYWRkZWQKKyAqIEBsZW46ICB0aGUgbGVuZ3RoIG9mIEBhZGQKKyAqCisgKiBhIHN0cm5jYXQgZm9yIGFycmF5IG9mIHhtbENoYXIncywgaXQgd2lsbCBleHRlbmQgQGN1ciB3aXRoIHRoZSBsZW4KKyAqIGZpcnN0IGJ5dGVzIG9mIEBhZGQuIE5vdGUgdGhhdCBpZiBAbGVuIDwgMCB0aGVuIHRoaXMgaXMgYW4gQVBJIGVycm9yCisgKiBhbmQgTlVMTCB3aWxsIGJlIHJldHVybmVkLgorICoKKyAqIFJldHVybnMgYSBuZXcgeG1sQ2hhciAqLCB0aGUgb3JpZ2luYWwgQGN1ciBpcyByZWFsbG9jYXRlZCBpZiBuZWVkZWQKKyAqIGFuZCBzaG91bGQgbm90IGJlIGZyZWVkCisgKi8KKworeG1sQ2hhciAqCit4bWxTdHJuY2F0KHhtbENoYXIgKmN1ciwgY29uc3QgeG1sQ2hhciAqYWRkLCBpbnQgbGVuKSB7CisgICAgaW50IHNpemU7CisgICAgeG1sQ2hhciAqcmV0OworCisgICAgaWYgKChhZGQgPT0gTlVMTCkgfHwgKGxlbiA9PSAwKSkKKyAgICAgICAgcmV0dXJuKGN1cik7CisgICAgaWYgKGxlbiA8IDApCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHhtbFN0cm5kdXAoYWRkLCBsZW4pKTsKKworICAgIHNpemUgPSB4bWxTdHJsZW4oY3VyKTsKKyAgICByZXQgPSAoeG1sQ2hhciAqKSB4bWxSZWFsbG9jKGN1ciwgKHNpemUgKyBsZW4gKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEVyck1lbW9yeShOVUxMLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuKGN1cik7CisgICAgfQorICAgIG1lbWNweSgmcmV0W3NpemVdLCBhZGQsIGxlbiAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgcmV0W3NpemUgKyBsZW5dID0gMDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTdHJuY2F0TmV3OgorICogQHN0cjE6ICBmaXJzdCB4bWxDaGFyIHN0cmluZworICogQHN0cjI6ICBzZWNvbmQgeG1sQ2hhciBzdHJpbmcKKyAqIEBsZW46ICB0aGUgbGVuIG9mIEBzdHIyIG9yIDwgMAorICoKKyAqIHNhbWUgYXMgeG1sU3RybmNhdCwgYnV0IGNyZWF0ZXMgYSBuZXcgc3RyaW5nLiAgVGhlIG9yaWdpbmFsCisgKiB0d28gc3RyaW5ncyBhcmUgbm90IGZyZWVkLiBJZiBAbGVuIGlzIDwgMCB0aGVuIHRoZSBsZW5ndGgKKyAqIHdpbGwgYmUgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5LgorICoKKyAqIFJldHVybnMgYSBuZXcgeG1sQ2hhciAqIG9yIE5VTEwKKyAqLworeG1sQ2hhciAqCit4bWxTdHJuY2F0TmV3KGNvbnN0IHhtbENoYXIgKnN0cjEsIGNvbnN0IHhtbENoYXIgKnN0cjIsIGludCBsZW4pIHsKKyAgICBpbnQgc2l6ZTsKKyAgICB4bWxDaGFyICpyZXQ7CisKKyAgICBpZiAobGVuIDwgMCkKKyAgICAgICAgbGVuID0geG1sU3RybGVuKHN0cjIpOworICAgIGlmICgoc3RyMiA9PSBOVUxMKSB8fCAobGVuID09IDApKQorICAgICAgICByZXR1cm4oeG1sU3RyZHVwKHN0cjEpKTsKKyAgICBpZiAoc3RyMSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oeG1sU3RybmR1cChzdHIyLCBsZW4pKTsKKworICAgIHNpemUgPSB4bWxTdHJsZW4oc3RyMSk7CisgICAgcmV0ID0gKHhtbENoYXIgKikgeG1sTWFsbG9jKChzaXplICsgbGVuICsgMSkgKiBzaXplb2YoeG1sQ2hhcikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxFcnJNZW1vcnkoTlVMTCwgTlVMTCk7CisgICAgICAgIHJldHVybih4bWxTdHJuZHVwKHN0cjEsIHNpemUpKTsKKyAgICB9CisgICAgbWVtY3B5KHJldCwgc3RyMSwgc2l6ZSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgbWVtY3B5KCZyZXRbc2l6ZV0sIHN0cjIsIGxlbiAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgcmV0W3NpemUgKyBsZW5dID0gMDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxTdHJjYXQ6CisgKiBAY3VyOiAgdGhlIG9yaWdpbmFsIHhtbENoYXIgKiBhcnJheQorICogQGFkZDogIHRoZSB4bWxDaGFyICogYXJyYXkgYWRkZWQKKyAqCisgKiBhIHN0cmNhdCBmb3IgYXJyYXkgb2YgeG1sQ2hhcidzLiBTaW5jZSB0aGV5IGFyZSBzdXBwb3NlZCB0byBiZQorICogZW5jb2RlZCBpbiBVVEYtOCBvciBhbiBlbmNvZGluZyB3aXRoIDhiaXQgYmFzZWQgY2hhcnMsIHdlIGFzc3VtZQorICogYSB0ZXJtaW5hdGlvbiBtYXJrIG9mICcwJy4KKyAqCisgKiBSZXR1cm5zIGEgbmV3IHhtbENoYXIgKiBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgc3RyaW5nLgorICovCit4bWxDaGFyICoKK3htbFN0cmNhdCh4bWxDaGFyICpjdXIsIGNvbnN0IHhtbENoYXIgKmFkZCkgeworICAgIGNvbnN0IHhtbENoYXIgKnAgPSBhZGQ7CisKKyAgICBpZiAoYWRkID09IE5VTEwpIHJldHVybihjdXIpOworICAgIGlmIChjdXIgPT0gTlVMTCkgCisgICAgICAgIHJldHVybih4bWxTdHJkdXAoYWRkKSk7CisKKyAgICB3aGlsZSAoKnAgIT0gMCkgcCsrOyAvKiBub24gaW5wdXQgY29uc3VtaW5nICovCisgICAgcmV0dXJuKHhtbFN0cm5jYXQoY3VyLCBhZGQsIHAgLSBhZGQpKTsKK30KKworLyoqCisgKiB4bWxTdHJQcmludGY6CisgKiBAYnVmOiAgIHRoZSByZXN1bHQgYnVmZmVyLgorICogQGxlbjogICB0aGUgcmVzdWx0IGJ1ZmZlciBsZW5ndGguCisgKiBAbXNnOiAgIHRoZSBtZXNzYWdlIHdpdGggcHJpbnRmIGZvcm1hdHRpbmcuCisgKiBALi4uOiAgIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlLgorICoKKyAqIEZvcm1hdHMgQG1zZyBhbmQgcGxhY2VzIHJlc3VsdCBpbnRvIEBidWYuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy4KKyAqLworaW50IFhNTENERUNMIAoreG1sU3RyUHJpbnRmKHhtbENoYXIgKmJ1ZiwgaW50IGxlbiwgY29uc3QgeG1sQ2hhciAqbXNnLCAuLi4pIHsKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgaW50IHJldDsKKyAgICAKKyAgICBpZigoYnVmID09IE5VTEwpIHx8IChtc2cgPT0gTlVMTCkpIHsKKyAgICAgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgCisgICAgdmFfc3RhcnQoYXJncywgbXNnKTsKKyAgICByZXQgPSB2c25wcmludGYoKGNoYXIgKikgYnVmLCBsZW4sIChjb25zdCBjaGFyICopIG1zZywgYXJncyk7CisgICAgdmFfZW5kKGFyZ3MpOworICAgIGJ1ZltsZW4gLSAxXSA9IDA7IC8qIGJlIHNhZmUgISAqLworICAgIAorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFN0clZQcmludGY6CisgKiBAYnVmOiAgIHRoZSByZXN1bHQgYnVmZmVyLgorICogQGxlbjogICB0aGUgcmVzdWx0IGJ1ZmZlciBsZW5ndGguCisgKiBAbXNnOiAgIHRoZSBtZXNzYWdlIHdpdGggcHJpbnRmIGZvcm1hdHRpbmcuCisgKiBAYXA6ICAgIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBtZXNzYWdlLgorICoKKyAqIEZvcm1hdHMgQG1zZyBhbmQgcGxhY2VzIHJlc3VsdCBpbnRvIEBidWYuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd3JpdHRlbiB0byBAYnVmIG9yIC0xIGlmIGFuIGVycm9yIG9jY3Vycy4KKyAqLworaW50IAoreG1sU3RyVlByaW50Zih4bWxDaGFyICpidWYsIGludCBsZW4sIGNvbnN0IHhtbENoYXIgKm1zZywgdmFfbGlzdCBhcCkgeworICAgIGludCByZXQ7CisgICAgCisgICAgaWYoKGJ1ZiA9PSBOVUxMKSB8fCAobXNnID09IE5VTEwpKSB7CisgICAgICAgIHJldHVybigtMSk7CisgICAgfQorICAgIAorICAgIHJldCA9IHZzbnByaW50ZigoY2hhciAqKSBidWYsIGxlbiwgKGNvbnN0IGNoYXIgKikgbXNnLCBhcCk7CisgICAgYnVmW2xlbiAtIDFdID0gMDsgLyogYmUgc2FmZSAhICovCisgICAgCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICBHZW5lcmljIFVURjggaGFuZGxpbmcgcm91dGluZXMgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIEZyb20gcmZjMjA0NDogZW5jb2Rpbmcgb2YgdGhlIFVuaWNvZGUgdmFsdWVzIG9uIFVURi04OiAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFVDUy00IHJhbmdlIChoZXguKSAgICAgICAgICAgVVRGLTggb2N0ZXQgc2VxdWVuY2UgKGJpbmFyeSkgICAgICAgICAgICoKKyAqIDAwMDAgMDAwMC0wMDAwIDAwN0YgICAweHh4eHh4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIDAwMDAgMDA4MC0wMDAwIDA3RkYgICAxMTB4eHh4eCAxMHh4eHh4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIDAwMDAgMDgwMC0wMDAwIEZGRkYgICAxMTEweHh4eCAxMHh4eHh4eCAxMHh4eHh4eCAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIEkgaG9wZSB3ZSB3b24ndCB1c2UgdmFsdWVzID4gMHhGRkZGIGFueXRpbWUgc29vbiAhICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqCisgKiB4bWxVVEY4U2l6ZToKKyAqIEB1dGY6IHBvaW50ZXIgdG8gdGhlIFVURjggY2hhcmFjdGVyCisgKgorICogY2FsY3VsYXRlcyB0aGUgaW50ZXJuYWwgc2l6ZSBvZiBhIFVURjggY2hhcmFjdGVyCisgKgorICogcmV0dXJucyB0aGUgbnVtYmVycyBvZiBieXRlcyBpbiB0aGUgY2hhcmFjdGVyLCAtMSBvbiBmb3JtYXQgZXJyb3IKKyAqLworaW50Cit4bWxVVEY4U2l6ZShjb25zdCB4bWxDaGFyICp1dGYpIHsKKyAgICB4bWxDaGFyIG1hc2s7CisgICAgaW50IGxlbjsKKworICAgIGlmICh1dGYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmICgqdXRmIDwgMHg4MCkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgLyogY2hlY2sgdmFsaWQgVVRGOCBjaGFyYWN0ZXIgKi8KKyAgICBpZiAoISgqdXRmICYgMHg0MCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICAvKiBkZXRlcm1pbmUgbnVtYmVyIG9mIGJ5dGVzIGluIGNoYXIgKi8KKyAgICBsZW4gPSAyOworICAgIGZvciAobWFzaz0weDIwOyBtYXNrICE9IDA7IG1hc2s+Pj0xKSB7CisgICAgICAgIGlmICghKCp1dGYgJiBtYXNrKSkKKyAgICAgICAgICAgIHJldHVybiBsZW47CisgICAgICAgIGxlbisrOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisKKy8qKgorICogeG1sVVRGOENoYXJjbXA6CisgKiBAdXRmMTogcG9pbnRlciB0byBmaXJzdCBVVEY4IGNoYXIKKyAqIEB1dGYyOiBwb2ludGVyIHRvIHNlY29uZCBVVEY4IGNoYXIKKyAqCisgKiBjb21wYXJlcyB0aGUgdHdvIFVDUzQgdmFsdWVzCisgKgorICogcmV0dXJucyByZXN1bHQgb2YgdGhlIGNvbXBhcmUgYXMgd2l0aCB4bWxTdHJuY21wCisgKi8KK2ludAoreG1sVVRGOENoYXJjbXAoY29uc3QgeG1sQ2hhciAqdXRmMSwgY29uc3QgeG1sQ2hhciAqdXRmMikgeworCisgICAgaWYgKHV0ZjEgPT0gTlVMTCApIHsKKyAgICAgICAgaWYgKHV0ZjIgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHJldHVybiB4bWxTdHJuY21wKHV0ZjEsIHV0ZjIsIHhtbFVURjhTaXplKHV0ZjEpKTsKK30KKworLyoqCisgKiB4bWxVVEY4U3RybGVuOgorICogQHV0ZjogIGEgc2VxdWVuY2Ugb2YgVVRGLTggZW5jb2RlZCBieXRlcworICoKKyAqIGNvbXB1dGUgdGhlIGxlbmd0aCBvZiBhbiBVVEY4IHN0cmluZywgaXQgZG9lc24ndCBkbyBhIGZ1bGwgVVRGOAorICogY2hlY2tpbmcgb2YgdGhlIGNvbnRlbnQgb2YgdGhlIHN0cmluZy4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxVVEY4U3RybGVuKGNvbnN0IHhtbENoYXIgKnV0ZikgeworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKHV0ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4oLTEpOworCisgICAgd2hpbGUgKCp1dGYgIT0gMCkgeworICAgICAgICBpZiAodXRmWzBdICYgMHg4MCkgeworICAgICAgICAgICAgaWYgKCh1dGZbMV0gJiAweGMwKSAhPSAweDgwKQorICAgICAgICAgICAgICAgIHJldHVybigtMSk7CisgICAgICAgICAgICBpZiAoKHV0ZlswXSAmIDB4ZTApID09IDB4ZTApIHsKKyAgICAgICAgICAgICAgICBpZiAoKHV0ZlsyXSAmIDB4YzApICE9IDB4ODApCisgICAgICAgICAgICAgICAgICAgIHJldHVybigtMSk7CisgICAgICAgICAgICAgICAgaWYgKCh1dGZbMF0gJiAweGYwKSA9PSAweGYwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgodXRmWzBdICYgMHhmOCkgIT0gMHhmMCB8fCAodXRmWzNdICYgMHhjMCkgIT0gMHg4MCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybigtMSk7CisgICAgICAgICAgICAgICAgICAgIHV0ZiArPSA0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHV0ZiArPSAzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdXRmICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB1dGYrKzsKKyAgICAgICAgfQorICAgICAgICByZXQrKzsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sR2V0VVRGOENoYXI6CisgKiBAdXRmOiAgYSBzZXF1ZW5jZSBvZiBVVEYtOCBlbmNvZGVkIGJ5dGVzCisgKiBAbGVuOiAgYSBwb2ludGVyIHRvIHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyBwcmVzZW50IGluCisgKiAgICAgICAgdGhlIHNlcXVlbmNlLiAgVGhpcyBpcyB1c2VkIHRvIGFzc3VyZSB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAqICAgICAgICBpcyBjb21wbGV0ZWx5IGNvbnRhaW5lZCB3aXRoaW4gdGhlIHNlcXVlbmNlLgorICoKKyAqIFJlYWQgdGhlIGZpcnN0IFVURjggY2hhcmFjdGVyIGZyb20gQHV0ZgorICoKKyAqIFJldHVybnMgdGhlIGNoYXIgdmFsdWUgb3IgLTEgaW4gY2FzZSBvZiBlcnJvciwgYW5kIHNldHMgKmxlbiB0bworICogICAgICAgIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGJ5dGVzIGNvbnN1bWVkICgwIGluIGNhc2Ugb2YgZXJyb3IpCisgKi8KK2ludAoreG1sR2V0VVRGOENoYXIoY29uc3QgdW5zaWduZWQgY2hhciAqdXRmLCBpbnQgKmxlbikgeworICAgIHVuc2lnbmVkIGludCBjOworCisgICAgaWYgKHV0ZiA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworICAgIGlmIChsZW4gPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBpZiAoKmxlbiA8IDEpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICBjID0gdXRmWzBdOworICAgIGlmIChjICYgMHg4MCkgeworICAgICAgICBpZiAoKmxlbiA8IDIpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBpZiAoKHV0ZlsxXSAmIDB4YzApICE9IDB4ODApCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBpZiAoKGMgJiAweGUwKSA9PSAweGUwKSB7CisgICAgICAgICAgICBpZiAoKmxlbiA8IDMpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGlmICgodXRmWzJdICYgMHhjMCkgIT0gMHg4MCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgaWYgKChjICYgMHhmMCkgPT0gMHhmMCkgeworICAgICAgICAgICAgICAgIGlmICgqbGVuIDwgNCkKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICBpZiAoKGMgJiAweGY4KSAhPSAweGYwIHx8ICh1dGZbM10gJiAweGMwKSAhPSAweDgwKQorICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICpsZW4gPSA0OworICAgICAgICAgICAgICAgIC8qIDQtYnl0ZSBjb2RlICovCisgICAgICAgICAgICAgICAgYyA9ICh1dGZbMF0gJiAweDcpIDw8IDE4OworICAgICAgICAgICAgICAgIGMgfD0gKHV0ZlsxXSAmIDB4M2YpIDw8IDEyOworICAgICAgICAgICAgICAgIGMgfD0gKHV0ZlsyXSAmIDB4M2YpIDw8IDY7CisgICAgICAgICAgICAgICAgYyB8PSB1dGZbM10gJiAweDNmOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgLyogMy1ieXRlIGNvZGUgKi8KKyAgICAgICAgICAgICAgICAqbGVuID0gMzsKKyAgICAgICAgICAgICAgICBjID0gKHV0ZlswXSAmIDB4ZikgPDwgMTI7CisgICAgICAgICAgICAgICAgYyB8PSAodXRmWzFdICYgMHgzZikgPDwgNjsKKyAgICAgICAgICAgICAgICBjIHw9IHV0ZlsyXSAmIDB4M2Y7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgLyogMi1ieXRlIGNvZGUgKi8KKyAgICAgICAgICAgICpsZW4gPSAyOworICAgICAgICAgICAgYyA9ICh1dGZbMF0gJiAweDFmKSA8PCA2OworICAgICAgICAgICAgYyB8PSB1dGZbMV0gJiAweDNmOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyogMS1ieXRlIGNvZGUgKi8KKyAgICAgICAgKmxlbiA9IDE7CisgICAgfQorICAgIHJldHVybihjKTsKKworZXJyb3I6CisgICAgaWYgKGxlbiAhPSBOVUxMKQorCSpsZW4gPSAwOworICAgIHJldHVybigtMSk7Cit9CisKKy8qKgorICogeG1sQ2hlY2tVVEY4OgorICogQHV0ZjogUG9pbnRlciB0byBwdXRhdGl2ZSBVVEYtOCBlbmNvZGVkIHN0cmluZy4KKyAqCisgKiBDaGVja3MgQHV0ZiBmb3IgYmVpbmcgdmFsaWQgVVRGLTguIEB1dGYgaXMgYXNzdW1lZCB0byBiZQorICogbnVsbC10ZXJtaW5hdGVkLiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBzdXBlci1zdHJpY3QsIGFzIGl0IHdpbGwKKyAqIGFsbG93IGxvbmdlciBVVEYtOCBzZXF1ZW5jZXMgdGhhbiBuZWNlc3NhcnkuIE5vdGUgdGhhdCBKYXZhIGlzCisgKiBjYXBhYmxlIG9mIHByb2R1Y2luZyB0aGVzZSBzZXF1ZW5jZXMgaWYgcHJvdm9rZWQuIEFsc28gbm90ZSwgdGhpcworICogcm91dGluZSBjaGVja3MgZm9yIHRoZSA0LWJ5dGUgbWF4aW11bSBzaXplLCBidXQgZG9lcyBub3QgY2hlY2sgZm9yCisgKiAweDEwZmZmZiBtYXhpbXVtIHZhbHVlLgorICoKKyAqIFJldHVybiB2YWx1ZTogdHJ1ZSBpZiBAdXRmIGlzIHZhbGlkLgorICoqLworaW50Cit4bWxDaGVja1VURjgoY29uc3QgdW5zaWduZWQgY2hhciAqdXRmKQoreworICAgIGludCBpeDsKKyAgICB1bnNpZ25lZCBjaGFyIGM7CisKKyAgICBpZiAodXRmID09IE5VTEwpCisgICAgICAgIHJldHVybigwKTsKKyAgICAvKgorICAgICAqIHV0ZiBpcyBhIHN0cmluZyBvZiAxLCAyLCAzIG9yIDQgYnl0ZXMuICBUaGUgdmFsaWQgc3RyaW5ncworICAgICAqIGFyZSBhcyBmb2xsb3dzIChpbiAiYml0IGZvcm1hdCIpOgorICAgICAqICAgIDB4eHh4eHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCAxLWJ5dGUKKyAgICAgKiAgICAxMTB4eHh4eCAxMHh4eHh4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgMi1ieXRlCisgICAgICogICAgMTExMHh4eHggMTB4eHh4eHggMTB4eHh4eHggICAgICAgICAgICAgICAgICAgIHZhbGlkIDMtYnl0ZQorICAgICAqICAgIDExMTEweHh4IDEweHh4eHh4IDEweHh4eHh4IDEweHh4eHh4ICAgICAgICAgICB2YWxpZCA0LWJ5dGUKKyAgICAgKi8KKyAgICBmb3IgKGl4ID0gMDsgKGMgPSB1dGZbaXhdKTspIHsgICAgICAvKiBzdHJpbmcgaXMgMC10ZXJtaW5hdGVkICovCisgICAgICAgIGlmICgoYyAmIDB4ODApID09IDB4MDApIHsJLyogMS1ieXRlIGNvZGUsIHN0YXJ0cyB3aXRoIDEwICovCisgICAgICAgICAgICBpeCsrOworCX0gZWxzZSBpZiAoKGMgJiAweGUwKSA9PSAweGMwKSB7LyogMi1ieXRlIGNvZGUsIHN0YXJ0cyB3aXRoIDExMCAqLworCSAgICBpZiAoKHV0ZltpeCsxXSAmIDB4YzAgKSAhPSAweDgwKQorCSAgICAgICAgcmV0dXJuIDA7CisJICAgIGl4ICs9IDI7CisJfSBlbHNlIGlmICgoYyAmIDB4ZjApID09IDB4ZTApIHsvKiAzLWJ5dGUgY29kZSwgc3RhcnRzIHdpdGggMTExMCAqLworCSAgICBpZiAoKCh1dGZbaXgrMV0gJiAweGMwKSAhPSAweDgwKSB8fAorCSAgICAgICAgKCh1dGZbaXgrMl0gJiAweGMwKSAhPSAweDgwKSkKKwkJICAgIHJldHVybiAwOworCSAgICBpeCArPSAzOworCX0gZWxzZSBpZiAoKGMgJiAweGY4KSA9PSAweGYwKSB7LyogNC1ieXRlIGNvZGUsIHN0YXJ0cyB3aXRoIDExMTEwICovCisJICAgIGlmICgoKHV0ZltpeCsxXSAmIDB4YzApICE9IDB4ODApIHx8CisJICAgICAgICAoKHV0ZltpeCsyXSAmIDB4YzApICE9IDB4ODApIHx8CisJCSgodXRmW2l4KzNdICYgMHhjMCkgIT0gMHg4MCkpCisJCSAgICByZXR1cm4gMDsKKwkgICAgaXggKz0gNDsKKwl9IGVsc2UJCQkJLyogdW5rbm93biBlbmNvZGluZyAqLworCSAgICByZXR1cm4gMDsKKyAgICAgIH0KKyAgICAgIHJldHVybigxKTsKK30KKworLyoqCisgKiB4bWxVVEY4U3Ryc2l6ZToKKyAqIEB1dGY6ICBhIHNlcXVlbmNlIG9mIFVURi04IGVuY29kZWQgYnl0ZXMKKyAqIEBsZW46ICB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIGFycmF5CisgKgorICogc3RvcmFnZSBzaXplIG9mIGFuIFVURjggc3RyaW5nCisgKiB0aGUgYmVoYXZpb3VyIGlzIG5vdCBnYXJhbnRlZWQgaWYgdGhlIGlucHV0IHN0cmluZyBpcyBub3QgVVRGLTgKKyAqCisgKiBSZXR1cm5zIHRoZSBzdG9yYWdlIHNpemUgb2YKKyAqIHRoZSBmaXJzdCAnbGVuJyBjaGFyYWN0ZXJzIG9mIEFSUkFZCisgKi8KKworaW50Cit4bWxVVEY4U3Ryc2l6ZShjb25zdCB4bWxDaGFyICp1dGYsIGludCBsZW4pIHsKKyAgICBjb25zdCB4bWxDaGFyICAgKnB0cj11dGY7CisgICAgeG1sQ2hhciAgICAgICAgIGNoOworCisgICAgaWYgKHV0ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4oMCk7CisKKyAgICBpZiAobGVuIDw9IDApCisgICAgICAgIHJldHVybigwKTsKKworICAgIHdoaWxlICggbGVuLS0gPiAwKSB7CisgICAgICAgIGlmICggISpwdHIgKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmICggKGNoID0gKnB0cisrKSAmIDB4ODApCisgICAgICAgICAgICB3aGlsZSAoKGNoPDw9MSkgJiAweDgwICkgeworICAgICAgICAgICAgICAgIHB0cisrOworCQlpZiAoKnB0ciA9PSAwKSBicmVhazsKKwkgICAgfQorICAgIH0KKyAgICByZXR1cm4gKHB0ciAtIHV0Zik7Cit9CisKKworLyoqCisgKiB4bWxVVEY4U3RybmR1cDoKKyAqIEB1dGY6ICB0aGUgaW5wdXQgVVRGOCAqCisgKiBAbGVuOiAgdGhlIGxlbiBvZiBAdXRmIChpbiBjaGFycykKKyAqCisgKiBhIHN0cm5kdXAgZm9yIGFycmF5IG9mIFVURjgncworICoKKyAqIFJldHVybnMgYSBuZXcgVVRGOCAqIG9yIE5VTEwKKyAqLworeG1sQ2hhciAqCit4bWxVVEY4U3RybmR1cChjb25zdCB4bWxDaGFyICp1dGYsIGludCBsZW4pIHsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgaW50IGk7CisgICAgCisgICAgaWYgKCh1dGYgPT0gTlVMTCkgfHwgKGxlbiA8IDApKSByZXR1cm4oTlVMTCk7CisgICAgaSA9IHhtbFVURjhTdHJzaXplKHV0ZiwgbGVuKTsKKyAgICByZXQgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMoKGkgKyAxKSAqIHNpemVvZih4bWxDaGFyKSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICJtYWxsb2Mgb2YgJWxkIGJ5dGUgZmFpbGVkXG4iLAorICAgICAgICAgICAgICAgIChsZW4gKyAxKSAqIChsb25nKXNpemVvZih4bWxDaGFyKSk7CisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtY3B5KHJldCwgdXRmLCBpICogc2l6ZW9mKHhtbENoYXIpKTsKKyAgICByZXRbaV0gPSAwOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFVURjhTdHJwb3M6CisgKiBAdXRmOiAgdGhlIGlucHV0IFVURjggKgorICogQHBvczogIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBVVEY4IGNoYXIgKGluIGNoYXJzKQorICoKKyAqIGEgZnVuY3Rpb24gdG8gcHJvdmlkZSB0aGUgZXF1aXZhbGVudCBvZiBmZXRjaGluZyBhCisgKiBjaGFyYWN0ZXIgZnJvbSBhIHN0cmluZyBhcnJheQorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBVVEY4IGNoYXJhY3RlciBvciBOVUxMCisgKi8KK2NvbnN0IHhtbENoYXIgKgoreG1sVVRGOFN0cnBvcyhjb25zdCB4bWxDaGFyICp1dGYsIGludCBwb3MpIHsKKyAgICB4bWxDaGFyIGNoOworCisgICAgaWYgKHV0ZiA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKHBvcyA8IDApCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICB3aGlsZSAocG9zLS0pIHsKKyAgICAgICAgaWYgKChjaD0qdXRmKyspID09IDApIHJldHVybihOVUxMKTsKKyAgICAgICAgaWYgKCBjaCAmIDB4ODAgKSB7CisgICAgICAgICAgICAvKiBpZiBub3Qgc2ltcGxlIGFzY2lpLCB2ZXJpZnkgcHJvcGVyIGZvcm1hdCAqLworICAgICAgICAgICAgaWYgKCAoY2ggJiAweGMwKSAhPSAweGMwICkKKyAgICAgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgICAgICAgICAvKiB0aGVuIHNraXAgb3ZlciByZW1haW5pbmcgYnl0ZXMgZm9yIHRoaXMgY2hhciAqLworICAgICAgICAgICAgd2hpbGUgKCAoY2ggPDw9IDEpICYgMHg4MCApCisgICAgICAgICAgICAgICAgaWYgKCAoKnV0ZisrICYgMHhjMCkgIT0gMHg4MCApCisgICAgICAgICAgICAgICAgICAgIHJldHVybihOVUxMKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4oKHhtbENoYXIgKil1dGYpOworfQorCisvKioKKyAqIHhtbFVURjhTdHJsb2M6CisgKiBAdXRmOiAgdGhlIGlucHV0IFVURjggKgorICogQHV0ZmNoYXI6ICB0aGUgVVRGOCBjaGFyYWN0ZXIgdG8gYmUgZm91bmQKKyAqCisgKiBhIGZ1bmN0aW9uIHRvIHByb3ZpZGUgdGhlIHJlbGF0aXZlIGxvY2F0aW9uIG9mIGEgVVRGOCBjaGFyCisgKgorICogUmV0dXJucyB0aGUgcmVsYXRpdmUgY2hhcmFjdGVyIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGNoYXIKKyAqIG9yIC0xIGlmIG5vdCBmb3VuZAorICovCitpbnQKK3htbFVURjhTdHJsb2MoY29uc3QgeG1sQ2hhciAqdXRmLCBjb25zdCB4bWxDaGFyICp1dGZjaGFyKSB7CisgICAgaW50IGksIHNpemU7CisgICAgeG1sQ2hhciBjaDsKKworICAgIGlmICh1dGY9PU5VTEwgfHwgdXRmY2hhcj09TlVMTCkgcmV0dXJuIC0xOworICAgIHNpemUgPSB4bWxVVEY4U3Ryc2l6ZSh1dGZjaGFyLCAxKTsKKyAgICAgICAgZm9yKGk9MDsgKGNoPSp1dGYpICE9IDA7IGkrKykgeworICAgICAgICAgICAgaWYgKHhtbFN0cm5jbXAodXRmLCB1dGZjaGFyLCBzaXplKT09MCkKKyAgICAgICAgICAgICAgICByZXR1cm4oaSk7CisgICAgICAgICAgICB1dGYrKzsKKyAgICAgICAgICAgIGlmICggY2ggJiAweDgwICkgeworICAgICAgICAgICAgICAgIC8qIGlmIG5vdCBzaW1wbGUgYXNjaWksIHZlcmlmeSBwcm9wZXIgZm9ybWF0ICovCisgICAgICAgICAgICAgICAgaWYgKCAoY2ggJiAweGMwKSAhPSAweGMwICkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuKC0xKTsKKyAgICAgICAgICAgICAgICAvKiB0aGVuIHNraXAgb3ZlciByZW1haW5pbmcgYnl0ZXMgZm9yIHRoaXMgY2hhciAqLworICAgICAgICAgICAgICAgIHdoaWxlICggKGNoIDw8PSAxKSAmIDB4ODAgKQorICAgICAgICAgICAgICAgICAgICBpZiAoICgqdXRmKysgJiAweGMwKSAhPSAweDgwICkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybigtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIHJldHVybigtMSk7Cit9CisvKioKKyAqIHhtbFVURjhTdHJzdWI6CisgKiBAdXRmOiAgYSBzZXF1ZW5jZSBvZiBVVEYtOCBlbmNvZGVkIGJ5dGVzCisgKiBAc3RhcnQ6IHJlbGF0aXZlIHBvcyBvZiBmaXJzdCBjaGFyCisgKiBAbGVuOiAgIHRvdGFsIG51bWJlciB0byBjb3B5CisgKgorICogQ3JlYXRlIGEgc3Vic3RyaW5nIGZyb20gYSBnaXZlbiBVVEYtOCBzdHJpbmcKKyAqIE5vdGU6ICBwb3NpdGlvbnMgYXJlIGdpdmVuIGluIHVuaXRzIG9mIFVURi04IGNoYXJzCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBuZXdseSBjcmVhdGVkIHN0cmluZworICogb3IgTlVMTCBpZiBhbnkgcHJvYmxlbQorICovCisKK3htbENoYXIgKgoreG1sVVRGOFN0cnN1Yihjb25zdCB4bWxDaGFyICp1dGYsIGludCBzdGFydCwgaW50IGxlbikgeworICAgIGludCAgICAgICAgICAgIGk7CisgICAgeG1sQ2hhciBjaDsKKworICAgIGlmICh1dGYgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworICAgIGlmIChzdGFydCA8IDApIHJldHVybihOVUxMKTsKKyAgICBpZiAobGVuIDwgMCkgcmV0dXJuKE5VTEwpOworCisgICAgLyoKKyAgICAgKiBTa2lwIG92ZXIgYW55IGxlYWRpbmcgY2hhcnMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCBzdGFydDtpKyspIHsKKyAgICAgICAgaWYgKChjaD0qdXRmKyspID09IDApIHJldHVybihOVUxMKTsKKyAgICAgICAgaWYgKCBjaCAmIDB4ODAgKSB7CisgICAgICAgICAgICAvKiBpZiBub3Qgc2ltcGxlIGFzY2lpLCB2ZXJpZnkgcHJvcGVyIGZvcm1hdCAqLworICAgICAgICAgICAgaWYgKCAoY2ggJiAweGMwKSAhPSAweGMwICkKKyAgICAgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisgICAgICAgICAgICAvKiB0aGVuIHNraXAgb3ZlciByZW1haW5pbmcgYnl0ZXMgZm9yIHRoaXMgY2hhciAqLworICAgICAgICAgICAgd2hpbGUgKCAoY2ggPDw9IDEpICYgMHg4MCApCisgICAgICAgICAgICAgICAgaWYgKCAoKnV0ZisrICYgMHhjMCkgIT0gMHg4MCApCisgICAgICAgICAgICAgICAgICAgIHJldHVybihOVUxMKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybih4bWxVVEY4U3RybmR1cCh1dGYsIGxlbikpOworfQorCisjZGVmaW5lIGJvdHRvbV94bWxzdHJpbmcKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3htbHVuaWNvZGUuYyBiL2xpYnhtbDItMi43LjcveG1sdW5pY29kZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MGQwZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3htbHVuaWNvZGUuYwpAQCAtMCwwICsxLDMxNzkgQEAKKy8qCisgKiB4bWx1bmljb2RlLmM6IHRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIEFQSXMKKyAqCisgKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUKKyAqIFVDUyBkZXNjcmlwdGlvbiBmaWxlcyBvZiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UKKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLzQuMC1VcGRhdGUxL1VDRC00LjAuMS5odG1sCisgKiB1c2luZyB0aGUgZ2VuVW5pY29kZS5weSBQeXRob24gc2NyaXB0LgorICoKKyAqIEdlbmVyYXRpb24gZGF0ZTogTW9uIE1hciAyNyAxMTowOTo1MiAyMDA2CisgKiBTb3VyY2VzOiBCbG9ja3MtNC4wLjEudHh0IFVuaWNvZGVEYXRhLTQuMC4xLnR4dAorICogRGFuaWVsIFZlaWxsYXJkIDx2ZWlsbGFyZEByZWRoYXQuY29tPgorICovCisKKyNkZWZpbmUgSU5fTElCWE1MCisjaW5jbHVkZSAibGlieG1sLmgiCisKKyNpZmRlZiBMSUJYTUxfVU5JQ09ERV9FTkFCTEVECisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpYnhtbC94bWx1bmljb2RlLmg+CisjaW5jbHVkZSA8bGlieG1sL2NodmFsaWQuaD4KKwordHlwZWRlZiBpbnQgKHhtbEludEZ1bmMpKGludCk7CS8qIGp1c3QgdG8ga2VlcCBvbmUncyBtaW5kIHVudHdpc3RlZCAqLworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgY29uc3QgY2hhciAqcmFuZ2VuYW1lOworICAgIHhtbEludEZ1bmMgKmZ1bmM7Cit9IHhtbFVuaWNvZGVSYW5nZTsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhtbFVuaWNvZGVSYW5nZSAqdGFibGU7CisgICAgaW50CQkgICAgbnVtZW50cmllczsKK30geG1sVW5pY29kZU5hbWVUYWJsZTsKKworCitzdGF0aWMgeG1sSW50RnVuYyAqeG1sVW5pY29kZUxvb2t1cCh4bWxVbmljb2RlTmFtZVRhYmxlICp0cHRyLCBjb25zdCBjaGFyICp0bmFtZSk7CisKK3N0YXRpYyB4bWxVbmljb2RlUmFuZ2UgeG1sVW5pY29kZUJsb2Nrc1tdID0geworICB7IkFlZ2Vhbk51bWJlcnMiLCB4bWxVQ1NJc0FlZ2Vhbk51bWJlcnN9LAorICB7IkFscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyIsIHhtbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zfSwKKyAgeyJBcmFiaWMiLCB4bWxVQ1NJc0FyYWJpY30sCisgIHsiQXJhYmljUHJlc2VudGF0aW9uRm9ybXMtQSIsIHhtbFVDU0lzQXJhYmljUHJlc2VudGF0aW9uRm9ybXNBfSwKKyAgeyJBcmFiaWNQcmVzZW50YXRpb25Gb3Jtcy1CIiwgeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0J9LAorICB7IkFybWVuaWFuIiwgeG1sVUNTSXNBcm1lbmlhbn0sCisgIHsiQXJyb3dzIiwgeG1sVUNTSXNBcnJvd3N9LAorICB7IkJhc2ljTGF0aW4iLCB4bWxVQ1NJc0Jhc2ljTGF0aW59LAorICB7IkJlbmdhbGkiLCB4bWxVQ1NJc0JlbmdhbGl9LAorICB7IkJsb2NrRWxlbWVudHMiLCB4bWxVQ1NJc0Jsb2NrRWxlbWVudHN9LAorICB7IkJvcG9tb2ZvIiwgeG1sVUNTSXNCb3BvbW9mb30sCisgIHsiQm9wb21vZm9FeHRlbmRlZCIsIHhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZH0sCisgIHsiQm94RHJhd2luZyIsIHhtbFVDU0lzQm94RHJhd2luZ30sCisgIHsiQnJhaWxsZVBhdHRlcm5zIiwgeG1sVUNTSXNCcmFpbGxlUGF0dGVybnN9LAorICB7IkJ1aGlkIiwgeG1sVUNTSXNCdWhpZH0sCisgIHsiQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMiLCB4bWxVQ1NJc0J5emFudGluZU11c2ljYWxTeW1ib2xzfSwKKyAgeyJDSktDb21wYXRpYmlsaXR5IiwgeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5fSwKKyAgeyJDSktDb21wYXRpYmlsaXR5Rm9ybXMiLCB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3Jtc30sCisgIHsiQ0pLQ29tcGF0aWJpbGl0eUlkZW9ncmFwaHMiLCB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzfSwKKyAgeyJDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQiLCB4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudH0sCisgIHsiQ0pLUmFkaWNhbHNTdXBwbGVtZW50IiwgeG1sVUNTSXNDSktSYWRpY2Fsc1N1cHBsZW1lbnR9LAorICB7IkNKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbiIsIHhtbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9ufSwKKyAgeyJDSktVbmlmaWVkSWRlb2dyYXBocyIsIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHN9LAorICB7IkNKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQSIsIHhtbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BfSwKKyAgeyJDSktVbmlmaWVkSWRlb2dyYXBoc0V4dGVuc2lvbkIiLCB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQn0sCisgIHsiQ2hlcm9rZWUiLCB4bWxVQ1NJc0NoZXJva2VlfSwKKyAgeyJDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzIiwgeG1sVUNTSXNDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzfSwKKyAgeyJDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyIsIHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHN9LAorICB7IkNvbWJpbmluZ0hhbGZNYXJrcyIsIHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzfSwKKyAgeyJDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMiLCB4bWxVQ1NJc0NvbWJpbmluZ01hcmtzZm9yU3ltYm9sc30sCisgIHsiQ29udHJvbFBpY3R1cmVzIiwgeG1sVUNTSXNDb250cm9sUGljdHVyZXN9LAorICB7IkN1cnJlbmN5U3ltYm9scyIsIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzfSwKKyAgeyJDeXByaW90U3lsbGFiYXJ5IiwgeG1sVUNTSXNDeXByaW90U3lsbGFiYXJ5fSwKKyAgeyJDeXJpbGxpYyIsIHhtbFVDU0lzQ3lyaWxsaWN9LAorICB7IkN5cmlsbGljU3VwcGxlbWVudCIsIHhtbFVDU0lzQ3lyaWxsaWNTdXBwbGVtZW50fSwKKyAgeyJEZXNlcmV0IiwgeG1sVUNTSXNEZXNlcmV0fSwKKyAgeyJEZXZhbmFnYXJpIiwgeG1sVUNTSXNEZXZhbmFnYXJpfSwKKyAgeyJEaW5nYmF0cyIsIHhtbFVDU0lzRGluZ2JhdHN9LAorICB7IkVuY2xvc2VkQWxwaGFudW1lcmljcyIsIHhtbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzfSwKKyAgeyJFbmNsb3NlZENKS0xldHRlcnNhbmRNb250aHMiLCB4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRoc30sCisgIHsiRXRoaW9waWMiLCB4bWxVQ1NJc0V0aGlvcGljfSwKKyAgeyJHZW5lcmFsUHVuY3R1YXRpb24iLCB4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbn0sCisgIHsiR2VvbWV0cmljU2hhcGVzIiwgeG1sVUNTSXNHZW9tZXRyaWNTaGFwZXN9LAorICB7Ikdlb3JnaWFuIiwgeG1sVUNTSXNHZW9yZ2lhbn0sCisgIHsiR290aGljIiwgeG1sVUNTSXNHb3RoaWN9LAorICB7IkdyZWVrIiwgeG1sVUNTSXNHcmVla30sCisgIHsiR3JlZWtFeHRlbmRlZCIsIHhtbFVDU0lzR3JlZWtFeHRlbmRlZH0sCisgIHsiR3JlZWthbmRDb3B0aWMiLCB4bWxVQ1NJc0dyZWVrYW5kQ29wdGljfSwKKyAgeyJHdWphcmF0aSIsIHhtbFVDU0lzR3VqYXJhdGl9LAorICB7Ikd1cm11a2hpIiwgeG1sVUNTSXNHdXJtdWtoaX0sCisgIHsiSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMiLCB4bWxVQ1NJc0hhbGZ3aWR0aGFuZEZ1bGx3aWR0aEZvcm1zfSwKKyAgeyJIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyIsIHhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW99LAorICB7Ikhhbmd1bEphbW8iLCB4bWxVQ1NJc0hhbmd1bEphbW99LAorICB7Ikhhbmd1bFN5bGxhYmxlcyIsIHhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzfSwKKyAgeyJIYW51bm9vIiwgeG1sVUNTSXNIYW51bm9vfSwKKyAgeyJIZWJyZXciLCB4bWxVQ1NJc0hlYnJld30sCisgIHsiSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIiwgeG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXN9LAorICB7IkhpZ2hTdXJyb2dhdGVzIiwgeG1sVUNTSXNIaWdoU3Vycm9nYXRlc30sCisgIHsiSGlyYWdhbmEiLCB4bWxVQ1NJc0hpcmFnYW5hfSwKKyAgeyJJUEFFeHRlbnNpb25zIiwgeG1sVUNTSXNJUEFFeHRlbnNpb25zfSwKKyAgeyJJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyIsIHhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnN9LAorICB7IkthbmJ1biIsIHhtbFVDU0lzS2FuYnVufSwKKyAgeyJLYW5neGlSYWRpY2FscyIsIHhtbFVDU0lzS2FuZ3hpUmFkaWNhbHN9LAorICB7Ikthbm5hZGEiLCB4bWxVQ1NJc0thbm5hZGF9LAorICB7IkthdGFrYW5hIiwgeG1sVUNTSXNLYXRha2FuYX0sCisgIHsiS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMiLCB4bWxVQ1NJc0thdGFrYW5hUGhvbmV0aWNFeHRlbnNpb25zfSwKKyAgeyJLaG1lciIsIHhtbFVDU0lzS2htZXJ9LAorICB7IktobWVyU3ltYm9scyIsIHhtbFVDU0lzS2htZXJTeW1ib2xzfSwKKyAgeyJMYW8iLCB4bWxVQ1NJc0xhb30sCisgIHsiTGF0aW4tMVN1cHBsZW1lbnQiLCB4bWxVQ1NJc0xhdGluMVN1cHBsZW1lbnR9LAorICB7IkxhdGluRXh0ZW5kZWQtQSIsIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEF9LAorICB7IkxhdGluRXh0ZW5kZWQtQiIsIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEJ9LAorICB7IkxhdGluRXh0ZW5kZWRBZGRpdGlvbmFsIiwgeG1sVUNTSXNMYXRpbkV4dGVuZGVkQWRkaXRpb25hbH0sCisgIHsiTGV0dGVybGlrZVN5bWJvbHMiLCB4bWxVQ1NJc0xldHRlcmxpa2VTeW1ib2xzfSwKKyAgeyJMaW1idSIsIHhtbFVDU0lzTGltYnV9LAorICB7IkxpbmVhckJJZGVvZ3JhbXMiLCB4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXN9LAorICB7IkxpbmVhckJTeWxsYWJhcnkiLCB4bWxVQ1NJc0xpbmVhckJTeWxsYWJhcnl9LAorICB7Ikxvd1N1cnJvZ2F0ZXMiLCB4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXN9LAorICB7Ik1hbGF5YWxhbSIsIHhtbFVDU0lzTWFsYXlhbGFtfSwKKyAgeyJNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIiwgeG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzfSwKKyAgeyJNYXRoZW1hdGljYWxPcGVyYXRvcnMiLCB4bWxVQ1NJc01hdGhlbWF0aWNhbE9wZXJhdG9yc30sCisgIHsiTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHMtQSIsIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBfSwKKyAgeyJNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9scy1CIiwgeG1sVUNTSXNNaXNjZWxsYW5lb3VzTWF0aGVtYXRpY2FsU3ltYm9sc0J9LAorICB7Ik1pc2NlbGxhbmVvdXNTeW1ib2xzIiwgeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc30sCisgIHsiTWlzY2VsbGFuZW91c1N5bWJvbHNhbmRBcnJvd3MiLCB4bWxVQ1NJc01pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzfSwKKyAgeyJNaXNjZWxsYW5lb3VzVGVjaG5pY2FsIiwgeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsfSwKKyAgeyJNb25nb2xpYW4iLCB4bWxVQ1NJc01vbmdvbGlhbn0sCisgIHsiTXVzaWNhbFN5bWJvbHMiLCB4bWxVQ1NJc011c2ljYWxTeW1ib2xzfSwKKyAgeyJNeWFubWFyIiwgeG1sVUNTSXNNeWFubWFyfSwKKyAgeyJOdW1iZXJGb3JtcyIsIHhtbFVDU0lzTnVtYmVyRm9ybXN9LAorICB7Ik9naGFtIiwgeG1sVUNTSXNPZ2hhbX0sCisgIHsiT2xkSXRhbGljIiwgeG1sVUNTSXNPbGRJdGFsaWN9LAorICB7Ik9wdGljYWxDaGFyYWN0ZXJSZWNvZ25pdGlvbiIsIHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9ufSwKKyAgeyJPcml5YSIsIHhtbFVDU0lzT3JpeWF9LAorICB7Ik9zbWFueWEiLCB4bWxVQ1NJc09zbWFueWF9LAorICB7IlBob25ldGljRXh0ZW5zaW9ucyIsIHhtbFVDU0lzUGhvbmV0aWNFeHRlbnNpb25zfSwKKyAgeyJQcml2YXRlVXNlIiwgeG1sVUNTSXNQcml2YXRlVXNlfSwKKyAgeyJQcml2YXRlVXNlQXJlYSIsIHhtbFVDU0lzUHJpdmF0ZVVzZUFyZWF9LAorICB7IlJ1bmljIiwgeG1sVUNTSXNSdW5pY30sCisgIHsiU2hhdmlhbiIsIHhtbFVDU0lzU2hhdmlhbn0sCisgIHsiU2luaGFsYSIsIHhtbFVDU0lzU2luaGFsYX0sCisgIHsiU21hbGxGb3JtVmFyaWFudHMiLCB4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzfSwKKyAgeyJTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzIiwgeG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzfSwKKyAgeyJTcGVjaWFscyIsIHhtbFVDU0lzU3BlY2lhbHN9LAorICB7IlN1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHMiLCB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHN9LAorICB7IlN1cHBsZW1lbnRhbEFycm93cy1BIiwgeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NBfSwKKyAgeyJTdXBwbGVtZW50YWxBcnJvd3MtQiIsIHhtbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQn0sCisgIHsiU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzIiwgeG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnN9LAorICB7IlN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1BIiwgeG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBfSwKKyAgeyJTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWEtQiIsIHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQn0sCisgIHsiU3lyaWFjIiwgeG1sVUNTSXNTeXJpYWN9LAorICB7IlRhZ2Fsb2ciLCB4bWxVQ1NJc1RhZ2Fsb2d9LAorICB7IlRhZ2JhbndhIiwgeG1sVUNTSXNUYWdiYW53YX0sCisgIHsiVGFncyIsIHhtbFVDU0lzVGFnc30sCisgIHsiVGFpTGUiLCB4bWxVQ1NJc1RhaUxlfSwKKyAgeyJUYWlYdWFuSmluZ1N5bWJvbHMiLCB4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9sc30sCisgIHsiVGFtaWwiLCB4bWxVQ1NJc1RhbWlsfSwKKyAgeyJUZWx1Z3UiLCB4bWxVQ1NJc1RlbHVndX0sCisgIHsiVGhhYW5hIiwgeG1sVUNTSXNUaGFhbmF9LAorICB7IlRoYWkiLCB4bWxVQ1NJc1RoYWl9LAorICB7IlRpYmV0YW4iLCB4bWxVQ1NJc1RpYmV0YW59LAorICB7IlVnYXJpdGljIiwgeG1sVUNTSXNVZ2FyaXRpY30sCisgIHsiVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyIsIHhtbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljc30sCisgIHsiVmFyaWF0aW9uU2VsZWN0b3JzIiwgeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnN9LAorICB7IlZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnQiLCB4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9yc1N1cHBsZW1lbnR9LAorICB7IllpUmFkaWNhbHMiLCB4bWxVQ1NJc1lpUmFkaWNhbHN9LAorICB7IllpU3lsbGFibGVzIiwgeG1sVUNTSXNZaVN5bGxhYmxlc30sCisgIHsiWWlqaW5nSGV4YWdyYW1TeW1ib2xzIiwgeG1sVUNTSXNZaWppbmdIZXhhZ3JhbVN5bWJvbHN9fTsKKworc3RhdGljIHhtbFVuaWNvZGVSYW5nZSB4bWxVbmljb2RlQ2F0c1tdID0geworICB7IkMiLCB4bWxVQ1NJc0NhdEN9LAorICB7IkNjIiwgeG1sVUNTSXNDYXRDY30sCisgIHsiQ2YiLCB4bWxVQ1NJc0NhdENmfSwKKyAgeyJDbyIsIHhtbFVDU0lzQ2F0Q299LAorICB7IkNzIiwgeG1sVUNTSXNDYXRDc30sCisgIHsiTCIsIHhtbFVDU0lzQ2F0TH0sCisgIHsiTGwiLCB4bWxVQ1NJc0NhdExsfSwKKyAgeyJMbSIsIHhtbFVDU0lzQ2F0TG19LAorICB7IkxvIiwgeG1sVUNTSXNDYXRMb30sCisgIHsiTHQiLCB4bWxVQ1NJc0NhdEx0fSwKKyAgeyJMdSIsIHhtbFVDU0lzQ2F0THV9LAorICB7Ik0iLCB4bWxVQ1NJc0NhdE19LAorICB7Ik1jIiwgeG1sVUNTSXNDYXRNY30sCisgIHsiTWUiLCB4bWxVQ1NJc0NhdE1lfSwKKyAgeyJNbiIsIHhtbFVDU0lzQ2F0TW59LAorICB7Ik4iLCB4bWxVQ1NJc0NhdE59LAorICB7Ik5kIiwgeG1sVUNTSXNDYXROZH0sCisgIHsiTmwiLCB4bWxVQ1NJc0NhdE5sfSwKKyAgeyJObyIsIHhtbFVDU0lzQ2F0Tm99LAorICB7IlAiLCB4bWxVQ1NJc0NhdFB9LAorICB7IlBjIiwgeG1sVUNTSXNDYXRQY30sCisgIHsiUGQiLCB4bWxVQ1NJc0NhdFBkfSwKKyAgeyJQZSIsIHhtbFVDU0lzQ2F0UGV9LAorICB7IlBmIiwgeG1sVUNTSXNDYXRQZn0sCisgIHsiUGkiLCB4bWxVQ1NJc0NhdFBpfSwKKyAgeyJQbyIsIHhtbFVDU0lzQ2F0UG99LAorICB7IlBzIiwgeG1sVUNTSXNDYXRQc30sCisgIHsiUyIsIHhtbFVDU0lzQ2F0U30sCisgIHsiU2MiLCB4bWxVQ1NJc0NhdFNjfSwKKyAgeyJTayIsIHhtbFVDU0lzQ2F0U2t9LAorICB7IlNtIiwgeG1sVUNTSXNDYXRTbX0sCisgIHsiU28iLCB4bWxVQ1NJc0NhdFNvfSwKKyAgeyJaIiwgeG1sVUNTSXNDYXRafSwKKyAgeyJabCIsIHhtbFVDU0lzQ2F0Wmx9LAorICB7IlpwIiwgeG1sVUNTSXNDYXRacH0sCisgIHsiWnMiLCB4bWxVQ1NJc0NhdFpzfX07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxDU1tdID0ge3sweDAsIDB4MWZ9LCB7MHg3ZiwgMHg5Zn0sIAorICAgIHsweGFkLCAweGFkfSwgezB4NjAwLCAweDYwM30sIHsweDZkZCwgMHg2ZGR9LCB7MHg3MGYsIDB4NzBmfSwgCisgICAgezB4MTdiNCwgMHgxN2I1fSwgezB4MjAwYiwgMHgyMDBmfSwgezB4MjAyYSwgMHgyMDJlfSwgezB4MjA2MCwgMHgyMDYzfSwgCisgICAgezB4MjA2YSwgMHgyMDZmfSwgezB4ZDgwMCwgMHhkODAwfSwgezB4ZGI3ZiwgMHhkYjgwfSwgezB4ZGJmZiwgMHhkYzAwfSwgCisgICAgezB4ZGZmZiwgMHhlMDAwfSwgezB4ZjhmZiwgMHhmOGZmfSwgezB4ZmVmZiwgMHhmZWZmfSwgezB4ZmZmOSwgMHhmZmZifSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbENMW10gPSB7ezB4MWQxNzMsIDB4MWQxN2F9LCB7MHhlMDAwMSwgMHhlMDAwMX0sIAorICAgIHsweGUwMDIwLCAweGUwMDdmfSwgezB4ZjAwMDAsIDB4ZjAwMDB9LCB7MHhmZmZmZCwgMHhmZmZmZH0sIAorICAgIHsweDEwMDAwMCwgMHgxMDAwMDB9LCB7MHgxMGZmZmQsIDB4MTBmZmZkfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxDRyA9IHsxOCw3LHhtbENTLHhtbENMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbENmU1tdID0ge3sweGFkLCAweGFkfSwgezB4NjAwLCAweDYwM30sIAorICAgIHsweDZkZCwgMHg2ZGR9LCB7MHg3MGYsIDB4NzBmfSwgezB4MTdiNCwgMHgxN2I1fSwgezB4MjAwYiwgMHgyMDBmfSwgCisgICAgezB4MjAyYSwgMHgyMDJlfSwgezB4MjA2MCwgMHgyMDYzfSwgezB4MjA2YSwgMHgyMDZmfSwgezB4ZmVmZiwgMHhmZWZmfSwgCisgICAgezB4ZmZmOSwgMHhmZmZifSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbENmTFtdID0ge3sweDFkMTczLCAweDFkMTdhfSwgezB4ZTAwMDEsIDB4ZTAwMDF9LCAKKyAgICB7MHhlMDAyMCwgMHhlMDA3Zn0gfTsKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgeG1sQ2ZHID0gezExLDMseG1sQ2ZTLHhtbENmTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxMU1tdID0ge3sweDQxLCAweDVhfSwgezB4NjEsIDB4N2F9LCAKKyAgICB7MHhhYSwgMHhhYX0sIHsweGI1LCAweGI1fSwgezB4YmEsIDB4YmF9LCB7MHhjMCwgMHhkNn0sIHsweGQ4LCAweGY2fSwgCisgICAgezB4ZjgsIDB4MjM2fSwgezB4MjUwLCAweDJjMX0sIHsweDJjNiwgMHgyZDF9LCB7MHgyZTAsIDB4MmU0fSwgCisgICAgezB4MmVlLCAweDJlZX0sIHsweDM3YSwgMHgzN2F9LCB7MHgzODYsIDB4Mzg2fSwgezB4Mzg4LCAweDM4YX0sIAorICAgIHsweDM4YywgMHgzOGN9LCB7MHgzOGUsIDB4M2ExfSwgezB4M2EzLCAweDNjZX0sIHsweDNkMCwgMHgzZjV9LCAKKyAgICB7MHgzZjcsIDB4M2ZifSwgezB4NDAwLCAweDQ4MX0sIHsweDQ4YSwgMHg0Y2V9LCB7MHg0ZDAsIDB4NGY1fSwgCisgICAgezB4NGY4LCAweDRmOX0sIHsweDUwMCwgMHg1MGZ9LCB7MHg1MzEsIDB4NTU2fSwgezB4NTU5LCAweDU1OX0sIAorICAgIHsweDU2MSwgMHg1ODd9LCB7MHg1ZDAsIDB4NWVhfSwgezB4NWYwLCAweDVmMn0sIHsweDYyMSwgMHg2M2F9LCAKKyAgICB7MHg2NDAsIDB4NjRhfSwgezB4NjZlLCAweDY2Zn0sIHsweDY3MSwgMHg2ZDN9LCB7MHg2ZDUsIDB4NmQ1fSwgCisgICAgezB4NmU1LCAweDZlNn0sIHsweDZlZSwgMHg2ZWZ9LCB7MHg2ZmEsIDB4NmZjfSwgezB4NmZmLCAweDZmZn0sIAorICAgIHsweDcxMCwgMHg3MTB9LCB7MHg3MTIsIDB4NzJmfSwgezB4NzRkLCAweDc0Zn0sIHsweDc4MCwgMHg3YTV9LCAKKyAgICB7MHg3YjEsIDB4N2IxfSwgezB4OTA0LCAweDkzOX0sIHsweDkzZCwgMHg5M2R9LCB7MHg5NTAsIDB4OTUwfSwgCisgICAgezB4OTU4LCAweDk2MX0sIHsweDk4NSwgMHg5OGN9LCB7MHg5OGYsIDB4OTkwfSwgezB4OTkzLCAweDlhOH0sIAorICAgIHsweDlhYSwgMHg5YjB9LCB7MHg5YjIsIDB4OWIyfSwgezB4OWI2LCAweDliOX0sIHsweDliZCwgMHg5YmR9LCAKKyAgICB7MHg5ZGMsIDB4OWRkfSwgezB4OWRmLCAweDllMX0sIHsweDlmMCwgMHg5ZjF9LCB7MHhhMDUsIDB4YTBhfSwgCisgICAgezB4YTBmLCAweGExMH0sIHsweGExMywgMHhhMjh9LCB7MHhhMmEsIDB4YTMwfSwgezB4YTMyLCAweGEzM30sIAorICAgIHsweGEzNSwgMHhhMzZ9LCB7MHhhMzgsIDB4YTM5fSwgezB4YTU5LCAweGE1Y30sIHsweGE1ZSwgMHhhNWV9LCAKKyAgICB7MHhhNzIsIDB4YTc0fSwgezB4YTg1LCAweGE4ZH0sIHsweGE4ZiwgMHhhOTF9LCB7MHhhOTMsIDB4YWE4fSwgCisgICAgezB4YWFhLCAweGFiMH0sIHsweGFiMiwgMHhhYjN9LCB7MHhhYjUsIDB4YWI5fSwgezB4YWJkLCAweGFiZH0sIAorICAgIHsweGFkMCwgMHhhZDB9LCB7MHhhZTAsIDB4YWUxfSwgezB4YjA1LCAweGIwY30sIHsweGIwZiwgMHhiMTB9LCAKKyAgICB7MHhiMTMsIDB4YjI4fSwgezB4YjJhLCAweGIzMH0sIHsweGIzMiwgMHhiMzN9LCB7MHhiMzUsIDB4YjM5fSwgCisgICAgezB4YjNkLCAweGIzZH0sIHsweGI1YywgMHhiNWR9LCB7MHhiNWYsIDB4YjYxfSwgezB4YjcxLCAweGI3MX0sIAorICAgIHsweGI4MywgMHhiODN9LCB7MHhiODUsIDB4YjhhfSwgezB4YjhlLCAweGI5MH0sIHsweGI5MiwgMHhiOTV9LCAKKyAgICB7MHhiOTksIDB4YjlhfSwgezB4YjljLCAweGI5Y30sIHsweGI5ZSwgMHhiOWZ9LCB7MHhiYTMsIDB4YmE0fSwgCisgICAgezB4YmE4LCAweGJhYX0sIHsweGJhZSwgMHhiYjV9LCB7MHhiYjcsIDB4YmI5fSwgezB4YzA1LCAweGMwY30sIAorICAgIHsweGMwZSwgMHhjMTB9LCB7MHhjMTIsIDB4YzI4fSwgezB4YzJhLCAweGMzM30sIHsweGMzNSwgMHhjMzl9LCAKKyAgICB7MHhjNjAsIDB4YzYxfSwgezB4Yzg1LCAweGM4Y30sIHsweGM4ZSwgMHhjOTB9LCB7MHhjOTIsIDB4Y2E4fSwgCisgICAgezB4Y2FhLCAweGNiM30sIHsweGNiNSwgMHhjYjl9LCB7MHhjYmQsIDB4Y2JkfSwgezB4Y2RlLCAweGNkZX0sIAorICAgIHsweGNlMCwgMHhjZTF9LCB7MHhkMDUsIDB4ZDBjfSwgezB4ZDBlLCAweGQxMH0sIHsweGQxMiwgMHhkMjh9LCAKKyAgICB7MHhkMmEsIDB4ZDM5fSwgezB4ZDYwLCAweGQ2MX0sIHsweGQ4NSwgMHhkOTZ9LCB7MHhkOWEsIDB4ZGIxfSwgCisgICAgezB4ZGIzLCAweGRiYn0sIHsweGRiZCwgMHhkYmR9LCB7MHhkYzAsIDB4ZGM2fSwgezB4ZTAxLCAweGUzMH0sIAorICAgIHsweGUzMiwgMHhlMzN9LCB7MHhlNDAsIDB4ZTQ2fSwgezB4ZTgxLCAweGU4Mn0sIHsweGU4NCwgMHhlODR9LCAKKyAgICB7MHhlODcsIDB4ZTg4fSwgezB4ZThhLCAweGU4YX0sIHsweGU4ZCwgMHhlOGR9LCB7MHhlOTQsIDB4ZTk3fSwgCisgICAgezB4ZTk5LCAweGU5Zn0sIHsweGVhMSwgMHhlYTN9LCB7MHhlYTUsIDB4ZWE1fSwgezB4ZWE3LCAweGVhN30sIAorICAgIHsweGVhYSwgMHhlYWJ9LCB7MHhlYWQsIDB4ZWIwfSwgezB4ZWIyLCAweGViM30sIHsweGViZCwgMHhlYmR9LCAKKyAgICB7MHhlYzAsIDB4ZWM0fSwgezB4ZWM2LCAweGVjNn0sIHsweGVkYywgMHhlZGR9LCB7MHhmMDAsIDB4ZjAwfSwgCisgICAgezB4ZjQwLCAweGY0N30sIHsweGY0OSwgMHhmNmF9LCB7MHhmODgsIDB4ZjhifSwgezB4MTAwMCwgMHgxMDIxfSwgCisgICAgezB4MTAyMywgMHgxMDI3fSwgezB4MTAyOSwgMHgxMDJhfSwgezB4MTA1MCwgMHgxMDU1fSwgezB4MTBhMCwgMHgxMGM1fSwgCisgICAgezB4MTBkMCwgMHgxMGY4fSwgezB4MTEwMCwgMHgxMTU5fSwgezB4MTE1ZiwgMHgxMWEyfSwgezB4MTFhOCwgMHgxMWY5fSwgCisgICAgezB4MTIwMCwgMHgxMjA2fSwgezB4MTIwOCwgMHgxMjQ2fSwgezB4MTI0OCwgMHgxMjQ4fSwgezB4MTI0YSwgMHgxMjRkfSwgCisgICAgezB4MTI1MCwgMHgxMjU2fSwgezB4MTI1OCwgMHgxMjU4fSwgezB4MTI1YSwgMHgxMjVkfSwgezB4MTI2MCwgMHgxMjg2fSwgCisgICAgezB4MTI4OCwgMHgxMjg4fSwgezB4MTI4YSwgMHgxMjhkfSwgezB4MTI5MCwgMHgxMmFlfSwgezB4MTJiMCwgMHgxMmIwfSwgCisgICAgezB4MTJiMiwgMHgxMmI1fSwgezB4MTJiOCwgMHgxMmJlfSwgezB4MTJjMCwgMHgxMmMwfSwgezB4MTJjMiwgMHgxMmM1fSwgCisgICAgezB4MTJjOCwgMHgxMmNlfSwgezB4MTJkMCwgMHgxMmQ2fSwgezB4MTJkOCwgMHgxMmVlfSwgezB4MTJmMCwgMHgxMzBlfSwgCisgICAgezB4MTMxMCwgMHgxMzEwfSwgezB4MTMxMiwgMHgxMzE1fSwgezB4MTMxOCwgMHgxMzFlfSwgezB4MTMyMCwgMHgxMzQ2fSwgCisgICAgezB4MTM0OCwgMHgxMzVhfSwgezB4MTNhMCwgMHgxM2Y0fSwgezB4MTQwMSwgMHgxNjZjfSwgezB4MTY2ZiwgMHgxNjc2fSwgCisgICAgezB4MTY4MSwgMHgxNjlhfSwgezB4MTZhMCwgMHgxNmVhfSwgezB4MTcwMCwgMHgxNzBjfSwgezB4MTcwZSwgMHgxNzExfSwgCisgICAgezB4MTcyMCwgMHgxNzMxfSwgezB4MTc0MCwgMHgxNzUxfSwgezB4MTc2MCwgMHgxNzZjfSwgezB4MTc2ZSwgMHgxNzcwfSwgCisgICAgezB4MTc4MCwgMHgxN2IzfSwgezB4MTdkNywgMHgxN2Q3fSwgezB4MTdkYywgMHgxN2RjfSwgezB4MTgyMCwgMHgxODc3fSwgCisgICAgezB4MTg4MCwgMHgxOGE4fSwgezB4MTkwMCwgMHgxOTFjfSwgezB4MTk1MCwgMHgxOTZkfSwgezB4MTk3MCwgMHgxOTc0fSwgCisgICAgezB4MWQwMCwgMHgxZDZifSwgezB4MWUwMCwgMHgxZTlifSwgezB4MWVhMCwgMHgxZWY5fSwgezB4MWYwMCwgMHgxZjE1fSwgCisgICAgezB4MWYxOCwgMHgxZjFkfSwgezB4MWYyMCwgMHgxZjQ1fSwgezB4MWY0OCwgMHgxZjRkfSwgezB4MWY1MCwgMHgxZjU3fSwgCisgICAgezB4MWY1OSwgMHgxZjU5fSwgezB4MWY1YiwgMHgxZjVifSwgezB4MWY1ZCwgMHgxZjVkfSwgezB4MWY1ZiwgMHgxZjdkfSwgCisgICAgezB4MWY4MCwgMHgxZmI0fSwgezB4MWZiNiwgMHgxZmJjfSwgezB4MWZiZSwgMHgxZmJlfSwgezB4MWZjMiwgMHgxZmM0fSwgCisgICAgezB4MWZjNiwgMHgxZmNjfSwgezB4MWZkMCwgMHgxZmQzfSwgezB4MWZkNiwgMHgxZmRifSwgezB4MWZlMCwgMHgxZmVjfSwgCisgICAgezB4MWZmMiwgMHgxZmY0fSwgezB4MWZmNiwgMHgxZmZjfSwgezB4MjA3MSwgMHgyMDcxfSwgezB4MjA3ZiwgMHgyMDdmfSwgCisgICAgezB4MjEwMiwgMHgyMTAyfSwgezB4MjEwNywgMHgyMTA3fSwgezB4MjEwYSwgMHgyMTEzfSwgezB4MjExNSwgMHgyMTE1fSwgCisgICAgezB4MjExOSwgMHgyMTFkfSwgezB4MjEyNCwgMHgyMTI0fSwgezB4MjEyNiwgMHgyMTI2fSwgezB4MjEyOCwgMHgyMTI4fSwgCisgICAgezB4MjEyYSwgMHgyMTJkfSwgezB4MjEyZiwgMHgyMTMxfSwgezB4MjEzMywgMHgyMTM5fSwgezB4MjEzZCwgMHgyMTNmfSwgCisgICAgezB4MjE0NSwgMHgyMTQ5fSwgezB4MzAwNSwgMHgzMDA2fSwgezB4MzAzMSwgMHgzMDM1fSwgezB4MzAzYiwgMHgzMDNjfSwgCisgICAgezB4MzA0MSwgMHgzMDk2fSwgezB4MzA5ZCwgMHgzMDlmfSwgezB4MzBhMSwgMHgzMGZhfSwgezB4MzBmYywgMHgzMGZmfSwgCisgICAgezB4MzEwNSwgMHgzMTJjfSwgezB4MzEzMSwgMHgzMThlfSwgezB4MzFhMCwgMHgzMWI3fSwgezB4MzFmMCwgMHgzMWZmfSwgCisgICAgezB4MzQwMCwgMHgzNDAwfSwgezB4NGRiNSwgMHg0ZGI1fSwgezB4NGUwMCwgMHg0ZTAwfSwgezB4OWZhNSwgMHg5ZmE1fSwgCisgICAgezB4YTAwMCwgMHhhNDhjfSwgezB4YWMwMCwgMHhhYzAwfSwgezB4ZDdhMywgMHhkN2EzfSwgezB4ZjkwMCwgMHhmYTJkfSwgCisgICAgezB4ZmEzMCwgMHhmYTZhfSwgezB4ZmIwMCwgMHhmYjA2fSwgezB4ZmIxMywgMHhmYjE3fSwgezB4ZmIxZCwgMHhmYjFkfSwgCisgICAgezB4ZmIxZiwgMHhmYjI4fSwgezB4ZmIyYSwgMHhmYjM2fSwgezB4ZmIzOCwgMHhmYjNjfSwgezB4ZmIzZSwgMHhmYjNlfSwgCisgICAgezB4ZmI0MCwgMHhmYjQxfSwgezB4ZmI0MywgMHhmYjQ0fSwgezB4ZmI0NiwgMHhmYmIxfSwgezB4ZmJkMywgMHhmZDNkfSwgCisgICAgezB4ZmQ1MCwgMHhmZDhmfSwgezB4ZmQ5MiwgMHhmZGM3fSwgezB4ZmRmMCwgMHhmZGZifSwgezB4ZmU3MCwgMHhmZTc0fSwgCisgICAgezB4ZmU3NiwgMHhmZWZjfSwgezB4ZmYyMSwgMHhmZjNhfSwgezB4ZmY0MSwgMHhmZjVhfSwgezB4ZmY2NiwgMHhmZmJlfSwgCisgICAgezB4ZmZjMiwgMHhmZmM3fSwgezB4ZmZjYSwgMHhmZmNmfSwgezB4ZmZkMiwgMHhmZmQ3fSwgezB4ZmZkYSwgMHhmZmRjfSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbExMW10gPSB7ezB4MTAwMDAsIDB4MTAwMGJ9LCB7MHgxMDAwZCwgMHgxMDAyNn0sIAorICAgIHsweDEwMDI4LCAweDEwMDNhfSwgezB4MTAwM2MsIDB4MTAwM2R9LCB7MHgxMDAzZiwgMHgxMDA0ZH0sIAorICAgIHsweDEwMDUwLCAweDEwMDVkfSwgezB4MTAwODAsIDB4MTAwZmF9LCB7MHgxMDMwMCwgMHgxMDMxZX0sIAorICAgIHsweDEwMzMwLCAweDEwMzQ5fSwgezB4MTAzODAsIDB4MTAzOWR9LCB7MHgxMDQwMCwgMHgxMDQ5ZH0sIAorICAgIHsweDEwODAwLCAweDEwODA1fSwgezB4MTA4MDgsIDB4MTA4MDh9LCB7MHgxMDgwYSwgMHgxMDgzNX0sIAorICAgIHsweDEwODM3LCAweDEwODM4fSwgezB4MTA4M2MsIDB4MTA4M2N9LCB7MHgxMDgzZiwgMHgxMDgzZn0sIAorICAgIHsweDFkNDAwLCAweDFkNDU0fSwgezB4MWQ0NTYsIDB4MWQ0OWN9LCB7MHgxZDQ5ZSwgMHgxZDQ5Zn0sIAorICAgIHsweDFkNGEyLCAweDFkNGEyfSwgezB4MWQ0YTUsIDB4MWQ0YTZ9LCB7MHgxZDRhOSwgMHgxZDRhY30sIAorICAgIHsweDFkNGFlLCAweDFkNGI5fSwgezB4MWQ0YmIsIDB4MWQ0YmJ9LCB7MHgxZDRiZCwgMHgxZDRjM30sIAorICAgIHsweDFkNGM1LCAweDFkNTA1fSwgezB4MWQ1MDcsIDB4MWQ1MGF9LCB7MHgxZDUwZCwgMHgxZDUxNH0sIAorICAgIHsweDFkNTE2LCAweDFkNTFjfSwgezB4MWQ1MWUsIDB4MWQ1Mzl9LCB7MHgxZDUzYiwgMHgxZDUzZX0sIAorICAgIHsweDFkNTQwLCAweDFkNTQ0fSwgezB4MWQ1NDYsIDB4MWQ1NDZ9LCB7MHgxZDU0YSwgMHgxZDU1MH0sIAorICAgIHsweDFkNTUyLCAweDFkNmEzfSwgezB4MWQ2YTgsIDB4MWQ2YzB9LCB7MHgxZDZjMiwgMHgxZDZkYX0sIAorICAgIHsweDFkNmRjLCAweDFkNmZhfSwgezB4MWQ2ZmMsIDB4MWQ3MTR9LCB7MHgxZDcxNiwgMHgxZDczNH0sIAorICAgIHsweDFkNzM2LCAweDFkNzRlfSwgezB4MWQ3NTAsIDB4MWQ3NmV9LCB7MHgxZDc3MCwgMHgxZDc4OH0sIAorICAgIHsweDFkNzhhLCAweDFkN2E4fSwgezB4MWQ3YWEsIDB4MWQ3YzJ9LCB7MHgxZDdjNCwgMHgxZDdjOX0sIAorICAgIHsweDIwMDAwLCAweDIwMDAwfSwgezB4MmE2ZDYsIDB4MmE2ZDZ9LCB7MHgyZjgwMCwgMHgyZmExZH0gfTsKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgeG1sTEcgPSB7Mjc5LDUwLHhtbExTLHhtbExMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbExsU1tdID0ge3sweDYxLCAweDdhfSwgezB4YWEsIDB4YWF9LCAKKyAgICB7MHhiNSwgMHhiNX0sIHsweGJhLCAweGJhfSwgezB4ZGYsIDB4ZjZ9LCB7MHhmOCwgMHhmZn0sIHsweDEwMSwgMHgxMDF9LCAKKyAgICB7MHgxMDMsIDB4MTAzfSwgezB4MTA1LCAweDEwNX0sIHsweDEwNywgMHgxMDd9LCB7MHgxMDksIDB4MTA5fSwgCisgICAgezB4MTBiLCAweDEwYn0sIHsweDEwZCwgMHgxMGR9LCB7MHgxMGYsIDB4MTBmfSwgezB4MTExLCAweDExMX0sIAorICAgIHsweDExMywgMHgxMTN9LCB7MHgxMTUsIDB4MTE1fSwgezB4MTE3LCAweDExN30sIHsweDExOSwgMHgxMTl9LCAKKyAgICB7MHgxMWIsIDB4MTFifSwgezB4MTFkLCAweDExZH0sIHsweDExZiwgMHgxMWZ9LCB7MHgxMjEsIDB4MTIxfSwgCisgICAgezB4MTIzLCAweDEyM30sIHsweDEyNSwgMHgxMjV9LCB7MHgxMjcsIDB4MTI3fSwgezB4MTI5LCAweDEyOX0sIAorICAgIHsweDEyYiwgMHgxMmJ9LCB7MHgxMmQsIDB4MTJkfSwgezB4MTJmLCAweDEyZn0sIHsweDEzMSwgMHgxMzF9LCAKKyAgICB7MHgxMzMsIDB4MTMzfSwgezB4MTM1LCAweDEzNX0sIHsweDEzNywgMHgxMzh9LCB7MHgxM2EsIDB4MTNhfSwgCisgICAgezB4MTNjLCAweDEzY30sIHsweDEzZSwgMHgxM2V9LCB7MHgxNDAsIDB4MTQwfSwgezB4MTQyLCAweDE0Mn0sIAorICAgIHsweDE0NCwgMHgxNDR9LCB7MHgxNDYsIDB4MTQ2fSwgezB4MTQ4LCAweDE0OX0sIHsweDE0YiwgMHgxNGJ9LCAKKyAgICB7MHgxNGQsIDB4MTRkfSwgezB4MTRmLCAweDE0Zn0sIHsweDE1MSwgMHgxNTF9LCB7MHgxNTMsIDB4MTUzfSwgCisgICAgezB4MTU1LCAweDE1NX0sIHsweDE1NywgMHgxNTd9LCB7MHgxNTksIDB4MTU5fSwgezB4MTViLCAweDE1Yn0sIAorICAgIHsweDE1ZCwgMHgxNWR9LCB7MHgxNWYsIDB4MTVmfSwgezB4MTYxLCAweDE2MX0sIHsweDE2MywgMHgxNjN9LCAKKyAgICB7MHgxNjUsIDB4MTY1fSwgezB4MTY3LCAweDE2N30sIHsweDE2OSwgMHgxNjl9LCB7MHgxNmIsIDB4MTZifSwgCisgICAgezB4MTZkLCAweDE2ZH0sIHsweDE2ZiwgMHgxNmZ9LCB7MHgxNzEsIDB4MTcxfSwgezB4MTczLCAweDE3M30sIAorICAgIHsweDE3NSwgMHgxNzV9LCB7MHgxNzcsIDB4MTc3fSwgezB4MTdhLCAweDE3YX0sIHsweDE3YywgMHgxN2N9LCAKKyAgICB7MHgxN2UsIDB4MTgwfSwgezB4MTgzLCAweDE4M30sIHsweDE4NSwgMHgxODV9LCB7MHgxODgsIDB4MTg4fSwgCisgICAgezB4MThjLCAweDE4ZH0sIHsweDE5MiwgMHgxOTJ9LCB7MHgxOTUsIDB4MTk1fSwgezB4MTk5LCAweDE5Yn0sIAorICAgIHsweDE5ZSwgMHgxOWV9LCB7MHgxYTEsIDB4MWExfSwgezB4MWEzLCAweDFhM30sIHsweDFhNSwgMHgxYTV9LCAKKyAgICB7MHgxYTgsIDB4MWE4fSwgezB4MWFhLCAweDFhYn0sIHsweDFhZCwgMHgxYWR9LCB7MHgxYjAsIDB4MWIwfSwgCisgICAgezB4MWI0LCAweDFiNH0sIHsweDFiNiwgMHgxYjZ9LCB7MHgxYjksIDB4MWJhfSwgezB4MWJkLCAweDFiZn0sIAorICAgIHsweDFjNiwgMHgxYzZ9LCB7MHgxYzksIDB4MWM5fSwgezB4MWNjLCAweDFjY30sIHsweDFjZSwgMHgxY2V9LCAKKyAgICB7MHgxZDAsIDB4MWQwfSwgezB4MWQyLCAweDFkMn0sIHsweDFkNCwgMHgxZDR9LCB7MHgxZDYsIDB4MWQ2fSwgCisgICAgezB4MWQ4LCAweDFkOH0sIHsweDFkYSwgMHgxZGF9LCB7MHgxZGMsIDB4MWRkfSwgezB4MWRmLCAweDFkZn0sIAorICAgIHsweDFlMSwgMHgxZTF9LCB7MHgxZTMsIDB4MWUzfSwgezB4MWU1LCAweDFlNX0sIHsweDFlNywgMHgxZTd9LCAKKyAgICB7MHgxZTksIDB4MWU5fSwgezB4MWViLCAweDFlYn0sIHsweDFlZCwgMHgxZWR9LCB7MHgxZWYsIDB4MWYwfSwgCisgICAgezB4MWYzLCAweDFmM30sIHsweDFmNSwgMHgxZjV9LCB7MHgxZjksIDB4MWY5fSwgezB4MWZiLCAweDFmYn0sIAorICAgIHsweDFmZCwgMHgxZmR9LCB7MHgxZmYsIDB4MWZmfSwgezB4MjAxLCAweDIwMX0sIHsweDIwMywgMHgyMDN9LCAKKyAgICB7MHgyMDUsIDB4MjA1fSwgezB4MjA3LCAweDIwN30sIHsweDIwOSwgMHgyMDl9LCB7MHgyMGIsIDB4MjBifSwgCisgICAgezB4MjBkLCAweDIwZH0sIHsweDIwZiwgMHgyMGZ9LCB7MHgyMTEsIDB4MjExfSwgezB4MjEzLCAweDIxM30sIAorICAgIHsweDIxNSwgMHgyMTV9LCB7MHgyMTcsIDB4MjE3fSwgezB4MjE5LCAweDIxOX0sIHsweDIxYiwgMHgyMWJ9LCAKKyAgICB7MHgyMWQsIDB4MjFkfSwgezB4MjFmLCAweDIxZn0sIHsweDIyMSwgMHgyMjF9LCB7MHgyMjMsIDB4MjIzfSwgCisgICAgezB4MjI1LCAweDIyNX0sIHsweDIyNywgMHgyMjd9LCB7MHgyMjksIDB4MjI5fSwgezB4MjJiLCAweDIyYn0sIAorICAgIHsweDIyZCwgMHgyMmR9LCB7MHgyMmYsIDB4MjJmfSwgezB4MjMxLCAweDIzMX0sIHsweDIzMywgMHgyMzZ9LCAKKyAgICB7MHgyNTAsIDB4MmFmfSwgezB4MzkwLCAweDM5MH0sIHsweDNhYywgMHgzY2V9LCB7MHgzZDAsIDB4M2QxfSwgCisgICAgezB4M2Q1LCAweDNkN30sIHsweDNkOSwgMHgzZDl9LCB7MHgzZGIsIDB4M2RifSwgezB4M2RkLCAweDNkZH0sIAorICAgIHsweDNkZiwgMHgzZGZ9LCB7MHgzZTEsIDB4M2UxfSwgezB4M2UzLCAweDNlM30sIHsweDNlNSwgMHgzZTV9LCAKKyAgICB7MHgzZTcsIDB4M2U3fSwgezB4M2U5LCAweDNlOX0sIHsweDNlYiwgMHgzZWJ9LCB7MHgzZWQsIDB4M2VkfSwgCisgICAgezB4M2VmLCAweDNmM30sIHsweDNmNSwgMHgzZjV9LCB7MHgzZjgsIDB4M2Y4fSwgezB4M2ZiLCAweDNmYn0sIAorICAgIHsweDQzMCwgMHg0NWZ9LCB7MHg0NjEsIDB4NDYxfSwgezB4NDYzLCAweDQ2M30sIHsweDQ2NSwgMHg0NjV9LCAKKyAgICB7MHg0NjcsIDB4NDY3fSwgezB4NDY5LCAweDQ2OX0sIHsweDQ2YiwgMHg0NmJ9LCB7MHg0NmQsIDB4NDZkfSwgCisgICAgezB4NDZmLCAweDQ2Zn0sIHsweDQ3MSwgMHg0NzF9LCB7MHg0NzMsIDB4NDczfSwgezB4NDc1LCAweDQ3NX0sIAorICAgIHsweDQ3NywgMHg0Nzd9LCB7MHg0NzksIDB4NDc5fSwgezB4NDdiLCAweDQ3Yn0sIHsweDQ3ZCwgMHg0N2R9LCAKKyAgICB7MHg0N2YsIDB4NDdmfSwgezB4NDgxLCAweDQ4MX0sIHsweDQ4YiwgMHg0OGJ9LCB7MHg0OGQsIDB4NDhkfSwgCisgICAgezB4NDhmLCAweDQ4Zn0sIHsweDQ5MSwgMHg0OTF9LCB7MHg0OTMsIDB4NDkzfSwgezB4NDk1LCAweDQ5NX0sIAorICAgIHsweDQ5NywgMHg0OTd9LCB7MHg0OTksIDB4NDk5fSwgezB4NDliLCAweDQ5Yn0sIHsweDQ5ZCwgMHg0OWR9LCAKKyAgICB7MHg0OWYsIDB4NDlmfSwgezB4NGExLCAweDRhMX0sIHsweDRhMywgMHg0YTN9LCB7MHg0YTUsIDB4NGE1fSwgCisgICAgezB4NGE3LCAweDRhN30sIHsweDRhOSwgMHg0YTl9LCB7MHg0YWIsIDB4NGFifSwgezB4NGFkLCAweDRhZH0sIAorICAgIHsweDRhZiwgMHg0YWZ9LCB7MHg0YjEsIDB4NGIxfSwgezB4NGIzLCAweDRiM30sIHsweDRiNSwgMHg0YjV9LCAKKyAgICB7MHg0YjcsIDB4NGI3fSwgezB4NGI5LCAweDRiOX0sIHsweDRiYiwgMHg0YmJ9LCB7MHg0YmQsIDB4NGJkfSwgCisgICAgezB4NGJmLCAweDRiZn0sIHsweDRjMiwgMHg0YzJ9LCB7MHg0YzQsIDB4NGM0fSwgezB4NGM2LCAweDRjNn0sIAorICAgIHsweDRjOCwgMHg0Yzh9LCB7MHg0Y2EsIDB4NGNhfSwgezB4NGNjLCAweDRjY30sIHsweDRjZSwgMHg0Y2V9LCAKKyAgICB7MHg0ZDEsIDB4NGQxfSwgezB4NGQzLCAweDRkM30sIHsweDRkNSwgMHg0ZDV9LCB7MHg0ZDcsIDB4NGQ3fSwgCisgICAgezB4NGQ5LCAweDRkOX0sIHsweDRkYiwgMHg0ZGJ9LCB7MHg0ZGQsIDB4NGRkfSwgezB4NGRmLCAweDRkZn0sIAorICAgIHsweDRlMSwgMHg0ZTF9LCB7MHg0ZTMsIDB4NGUzfSwgezB4NGU1LCAweDRlNX0sIHsweDRlNywgMHg0ZTd9LCAKKyAgICB7MHg0ZTksIDB4NGU5fSwgezB4NGViLCAweDRlYn0sIHsweDRlZCwgMHg0ZWR9LCB7MHg0ZWYsIDB4NGVmfSwgCisgICAgezB4NGYxLCAweDRmMX0sIHsweDRmMywgMHg0ZjN9LCB7MHg0ZjUsIDB4NGY1fSwgezB4NGY5LCAweDRmOX0sIAorICAgIHsweDUwMSwgMHg1MDF9LCB7MHg1MDMsIDB4NTAzfSwgezB4NTA1LCAweDUwNX0sIHsweDUwNywgMHg1MDd9LCAKKyAgICB7MHg1MDksIDB4NTA5fSwgezB4NTBiLCAweDUwYn0sIHsweDUwZCwgMHg1MGR9LCB7MHg1MGYsIDB4NTBmfSwgCisgICAgezB4NTYxLCAweDU4N30sIHsweDFkMDAsIDB4MWQyYn0sIHsweDFkNjIsIDB4MWQ2Yn0sIHsweDFlMDEsIDB4MWUwMX0sIAorICAgIHsweDFlMDMsIDB4MWUwM30sIHsweDFlMDUsIDB4MWUwNX0sIHsweDFlMDcsIDB4MWUwN30sIHsweDFlMDksIDB4MWUwOX0sIAorICAgIHsweDFlMGIsIDB4MWUwYn0sIHsweDFlMGQsIDB4MWUwZH0sIHsweDFlMGYsIDB4MWUwZn0sIHsweDFlMTEsIDB4MWUxMX0sIAorICAgIHsweDFlMTMsIDB4MWUxM30sIHsweDFlMTUsIDB4MWUxNX0sIHsweDFlMTcsIDB4MWUxN30sIHsweDFlMTksIDB4MWUxOX0sIAorICAgIHsweDFlMWIsIDB4MWUxYn0sIHsweDFlMWQsIDB4MWUxZH0sIHsweDFlMWYsIDB4MWUxZn0sIHsweDFlMjEsIDB4MWUyMX0sIAorICAgIHsweDFlMjMsIDB4MWUyM30sIHsweDFlMjUsIDB4MWUyNX0sIHsweDFlMjcsIDB4MWUyN30sIHsweDFlMjksIDB4MWUyOX0sIAorICAgIHsweDFlMmIsIDB4MWUyYn0sIHsweDFlMmQsIDB4MWUyZH0sIHsweDFlMmYsIDB4MWUyZn0sIHsweDFlMzEsIDB4MWUzMX0sIAorICAgIHsweDFlMzMsIDB4MWUzM30sIHsweDFlMzUsIDB4MWUzNX0sIHsweDFlMzcsIDB4MWUzN30sIHsweDFlMzksIDB4MWUzOX0sIAorICAgIHsweDFlM2IsIDB4MWUzYn0sIHsweDFlM2QsIDB4MWUzZH0sIHsweDFlM2YsIDB4MWUzZn0sIHsweDFlNDEsIDB4MWU0MX0sIAorICAgIHsweDFlNDMsIDB4MWU0M30sIHsweDFlNDUsIDB4MWU0NX0sIHsweDFlNDcsIDB4MWU0N30sIHsweDFlNDksIDB4MWU0OX0sIAorICAgIHsweDFlNGIsIDB4MWU0Yn0sIHsweDFlNGQsIDB4MWU0ZH0sIHsweDFlNGYsIDB4MWU0Zn0sIHsweDFlNTEsIDB4MWU1MX0sIAorICAgIHsweDFlNTMsIDB4MWU1M30sIHsweDFlNTUsIDB4MWU1NX0sIHsweDFlNTcsIDB4MWU1N30sIHsweDFlNTksIDB4MWU1OX0sIAorICAgIHsweDFlNWIsIDB4MWU1Yn0sIHsweDFlNWQsIDB4MWU1ZH0sIHsweDFlNWYsIDB4MWU1Zn0sIHsweDFlNjEsIDB4MWU2MX0sIAorICAgIHsweDFlNjMsIDB4MWU2M30sIHsweDFlNjUsIDB4MWU2NX0sIHsweDFlNjcsIDB4MWU2N30sIHsweDFlNjksIDB4MWU2OX0sIAorICAgIHsweDFlNmIsIDB4MWU2Yn0sIHsweDFlNmQsIDB4MWU2ZH0sIHsweDFlNmYsIDB4MWU2Zn0sIHsweDFlNzEsIDB4MWU3MX0sIAorICAgIHsweDFlNzMsIDB4MWU3M30sIHsweDFlNzUsIDB4MWU3NX0sIHsweDFlNzcsIDB4MWU3N30sIHsweDFlNzksIDB4MWU3OX0sIAorICAgIHsweDFlN2IsIDB4MWU3Yn0sIHsweDFlN2QsIDB4MWU3ZH0sIHsweDFlN2YsIDB4MWU3Zn0sIHsweDFlODEsIDB4MWU4MX0sIAorICAgIHsweDFlODMsIDB4MWU4M30sIHsweDFlODUsIDB4MWU4NX0sIHsweDFlODcsIDB4MWU4N30sIHsweDFlODksIDB4MWU4OX0sIAorICAgIHsweDFlOGIsIDB4MWU4Yn0sIHsweDFlOGQsIDB4MWU4ZH0sIHsweDFlOGYsIDB4MWU4Zn0sIHsweDFlOTEsIDB4MWU5MX0sIAorICAgIHsweDFlOTMsIDB4MWU5M30sIHsweDFlOTUsIDB4MWU5Yn0sIHsweDFlYTEsIDB4MWVhMX0sIHsweDFlYTMsIDB4MWVhM30sIAorICAgIHsweDFlYTUsIDB4MWVhNX0sIHsweDFlYTcsIDB4MWVhN30sIHsweDFlYTksIDB4MWVhOX0sIHsweDFlYWIsIDB4MWVhYn0sIAorICAgIHsweDFlYWQsIDB4MWVhZH0sIHsweDFlYWYsIDB4MWVhZn0sIHsweDFlYjEsIDB4MWViMX0sIHsweDFlYjMsIDB4MWViM30sIAorICAgIHsweDFlYjUsIDB4MWViNX0sIHsweDFlYjcsIDB4MWViN30sIHsweDFlYjksIDB4MWViOX0sIHsweDFlYmIsIDB4MWViYn0sIAorICAgIHsweDFlYmQsIDB4MWViZH0sIHsweDFlYmYsIDB4MWViZn0sIHsweDFlYzEsIDB4MWVjMX0sIHsweDFlYzMsIDB4MWVjM30sIAorICAgIHsweDFlYzUsIDB4MWVjNX0sIHsweDFlYzcsIDB4MWVjN30sIHsweDFlYzksIDB4MWVjOX0sIHsweDFlY2IsIDB4MWVjYn0sIAorICAgIHsweDFlY2QsIDB4MWVjZH0sIHsweDFlY2YsIDB4MWVjZn0sIHsweDFlZDEsIDB4MWVkMX0sIHsweDFlZDMsIDB4MWVkM30sIAorICAgIHsweDFlZDUsIDB4MWVkNX0sIHsweDFlZDcsIDB4MWVkN30sIHsweDFlZDksIDB4MWVkOX0sIHsweDFlZGIsIDB4MWVkYn0sIAorICAgIHsweDFlZGQsIDB4MWVkZH0sIHsweDFlZGYsIDB4MWVkZn0sIHsweDFlZTEsIDB4MWVlMX0sIHsweDFlZTMsIDB4MWVlM30sIAorICAgIHsweDFlZTUsIDB4MWVlNX0sIHsweDFlZTcsIDB4MWVlN30sIHsweDFlZTksIDB4MWVlOX0sIHsweDFlZWIsIDB4MWVlYn0sIAorICAgIHsweDFlZWQsIDB4MWVlZH0sIHsweDFlZWYsIDB4MWVlZn0sIHsweDFlZjEsIDB4MWVmMX0sIHsweDFlZjMsIDB4MWVmM30sIAorICAgIHsweDFlZjUsIDB4MWVmNX0sIHsweDFlZjcsIDB4MWVmN30sIHsweDFlZjksIDB4MWVmOX0sIHsweDFmMDAsIDB4MWYwN30sIAorICAgIHsweDFmMTAsIDB4MWYxNX0sIHsweDFmMjAsIDB4MWYyN30sIHsweDFmMzAsIDB4MWYzN30sIHsweDFmNDAsIDB4MWY0NX0sIAorICAgIHsweDFmNTAsIDB4MWY1N30sIHsweDFmNjAsIDB4MWY2N30sIHsweDFmNzAsIDB4MWY3ZH0sIHsweDFmODAsIDB4MWY4N30sIAorICAgIHsweDFmOTAsIDB4MWY5N30sIHsweDFmYTAsIDB4MWZhN30sIHsweDFmYjAsIDB4MWZiNH0sIHsweDFmYjYsIDB4MWZiN30sIAorICAgIHsweDFmYmUsIDB4MWZiZX0sIHsweDFmYzIsIDB4MWZjNH0sIHsweDFmYzYsIDB4MWZjN30sIHsweDFmZDAsIDB4MWZkM30sIAorICAgIHsweDFmZDYsIDB4MWZkN30sIHsweDFmZTAsIDB4MWZlN30sIHsweDFmZjIsIDB4MWZmNH0sIHsweDFmZjYsIDB4MWZmN30sIAorICAgIHsweDIwNzEsIDB4MjA3MX0sIHsweDIwN2YsIDB4MjA3Zn0sIHsweDIxMGEsIDB4MjEwYX0sIHsweDIxMGUsIDB4MjEwZn0sIAorICAgIHsweDIxMTMsIDB4MjExM30sIHsweDIxMmYsIDB4MjEyZn0sIHsweDIxMzQsIDB4MjEzNH0sIHsweDIxMzksIDB4MjEzOX0sIAorICAgIHsweDIxM2QsIDB4MjEzZH0sIHsweDIxNDYsIDB4MjE0OX0sIHsweGZiMDAsIDB4ZmIwNn0sIHsweGZiMTMsIDB4ZmIxN30sIAorICAgIHsweGZmNDEsIDB4ZmY1YX0gfTsKK3N0YXRpYyBjb25zdCB4bWxDaExSYW5nZSB4bWxMbExbXSA9IHt7MHgxMDQyOCwgMHgxMDQ0Zn0sIHsweDFkNDFhLCAweDFkNDMzfSwgCisgICAgezB4MWQ0NGUsIDB4MWQ0NTR9LCB7MHgxZDQ1NiwgMHgxZDQ2N30sIHsweDFkNDgyLCAweDFkNDlifSwgCisgICAgezB4MWQ0YjYsIDB4MWQ0Yjl9LCB7MHgxZDRiYiwgMHgxZDRiYn0sIHsweDFkNGJkLCAweDFkNGMzfSwgCisgICAgezB4MWQ0YzUsIDB4MWQ0Y2Z9LCB7MHgxZDRlYSwgMHgxZDUwM30sIHsweDFkNTFlLCAweDFkNTM3fSwgCisgICAgezB4MWQ1NTIsIDB4MWQ1NmJ9LCB7MHgxZDU4NiwgMHgxZDU5Zn0sIHsweDFkNWJhLCAweDFkNWQzfSwgCisgICAgezB4MWQ1ZWUsIDB4MWQ2MDd9LCB7MHgxZDYyMiwgMHgxZDYzYn0sIHsweDFkNjU2LCAweDFkNjZmfSwgCisgICAgezB4MWQ2OGEsIDB4MWQ2YTN9LCB7MHgxZDZjMiwgMHgxZDZkYX0sIHsweDFkNmRjLCAweDFkNmUxfSwgCisgICAgezB4MWQ2ZmMsIDB4MWQ3MTR9LCB7MHgxZDcxNiwgMHgxZDcxYn0sIHsweDFkNzM2LCAweDFkNzRlfSwgCisgICAgezB4MWQ3NTAsIDB4MWQ3NTV9LCB7MHgxZDc3MCwgMHgxZDc4OH0sIHsweDFkNzhhLCAweDFkNzhmfSwgCisgICAgezB4MWQ3YWEsIDB4MWQ3YzJ9LCB7MHgxZDdjNCwgMHgxZDdjOX0gfTsKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgeG1sTGxHID0gezM5NiwyOCx4bWxMbFMseG1sTGxMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbExtU1tdID0ge3sweDJiMCwgMHgyYzF9LCB7MHgyYzYsIDB4MmQxfSwgCisgICAgezB4MmUwLCAweDJlNH0sIHsweDJlZSwgMHgyZWV9LCB7MHgzN2EsIDB4MzdhfSwgezB4NTU5LCAweDU1OX0sIAorICAgIHsweDY0MCwgMHg2NDB9LCB7MHg2ZTUsIDB4NmU2fSwgezB4ZTQ2LCAweGU0Nn0sIHsweGVjNiwgMHhlYzZ9LCAKKyAgICB7MHgxN2Q3LCAweDE3ZDd9LCB7MHgxODQzLCAweDE4NDN9LCB7MHgxZDJjLCAweDFkNjF9LCB7MHgzMDA1LCAweDMwMDV9LCAKKyAgICB7MHgzMDMxLCAweDMwMzV9LCB7MHgzMDNiLCAweDMwM2J9LCB7MHgzMDlkLCAweDMwOWV9LCB7MHgzMGZjLCAweDMwZmV9LCAKKyAgICB7MHhmZjcwLCAweGZmNzB9LCB7MHhmZjllLCAweGZmOWZ9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbExtRyA9IHsyMCwwLHhtbExtUyxOVUxMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbExvU1tdID0ge3sweDFiYiwgMHgxYmJ9LCB7MHgxYzAsIDB4MWMzfSwgCisgICAgezB4NWQwLCAweDVlYX0sIHsweDVmMCwgMHg1ZjJ9LCB7MHg2MjEsIDB4NjNhfSwgezB4NjQxLCAweDY0YX0sIAorICAgIHsweDY2ZSwgMHg2NmZ9LCB7MHg2NzEsIDB4NmQzfSwgezB4NmQ1LCAweDZkNX0sIHsweDZlZSwgMHg2ZWZ9LCAKKyAgICB7MHg2ZmEsIDB4NmZjfSwgezB4NmZmLCAweDZmZn0sIHsweDcxMCwgMHg3MTB9LCB7MHg3MTIsIDB4NzJmfSwgCisgICAgezB4NzRkLCAweDc0Zn0sIHsweDc4MCwgMHg3YTV9LCB7MHg3YjEsIDB4N2IxfSwgezB4OTA0LCAweDkzOX0sIAorICAgIHsweDkzZCwgMHg5M2R9LCB7MHg5NTAsIDB4OTUwfSwgezB4OTU4LCAweDk2MX0sIHsweDk4NSwgMHg5OGN9LCAKKyAgICB7MHg5OGYsIDB4OTkwfSwgezB4OTkzLCAweDlhOH0sIHsweDlhYSwgMHg5YjB9LCB7MHg5YjIsIDB4OWIyfSwgCisgICAgezB4OWI2LCAweDliOX0sIHsweDliZCwgMHg5YmR9LCB7MHg5ZGMsIDB4OWRkfSwgezB4OWRmLCAweDllMX0sIAorICAgIHsweDlmMCwgMHg5ZjF9LCB7MHhhMDUsIDB4YTBhfSwgezB4YTBmLCAweGExMH0sIHsweGExMywgMHhhMjh9LCAKKyAgICB7MHhhMmEsIDB4YTMwfSwgezB4YTMyLCAweGEzM30sIHsweGEzNSwgMHhhMzZ9LCB7MHhhMzgsIDB4YTM5fSwgCisgICAgezB4YTU5LCAweGE1Y30sIHsweGE1ZSwgMHhhNWV9LCB7MHhhNzIsIDB4YTc0fSwgezB4YTg1LCAweGE4ZH0sIAorICAgIHsweGE4ZiwgMHhhOTF9LCB7MHhhOTMsIDB4YWE4fSwgezB4YWFhLCAweGFiMH0sIHsweGFiMiwgMHhhYjN9LCAKKyAgICB7MHhhYjUsIDB4YWI5fSwgezB4YWJkLCAweGFiZH0sIHsweGFkMCwgMHhhZDB9LCB7MHhhZTAsIDB4YWUxfSwgCisgICAgezB4YjA1LCAweGIwY30sIHsweGIwZiwgMHhiMTB9LCB7MHhiMTMsIDB4YjI4fSwgezB4YjJhLCAweGIzMH0sIAorICAgIHsweGIzMiwgMHhiMzN9LCB7MHhiMzUsIDB4YjM5fSwgezB4YjNkLCAweGIzZH0sIHsweGI1YywgMHhiNWR9LCAKKyAgICB7MHhiNWYsIDB4YjYxfSwgezB4YjcxLCAweGI3MX0sIHsweGI4MywgMHhiODN9LCB7MHhiODUsIDB4YjhhfSwgCisgICAgezB4YjhlLCAweGI5MH0sIHsweGI5MiwgMHhiOTV9LCB7MHhiOTksIDB4YjlhfSwgezB4YjljLCAweGI5Y30sIAorICAgIHsweGI5ZSwgMHhiOWZ9LCB7MHhiYTMsIDB4YmE0fSwgezB4YmE4LCAweGJhYX0sIHsweGJhZSwgMHhiYjV9LCAKKyAgICB7MHhiYjcsIDB4YmI5fSwgezB4YzA1LCAweGMwY30sIHsweGMwZSwgMHhjMTB9LCB7MHhjMTIsIDB4YzI4fSwgCisgICAgezB4YzJhLCAweGMzM30sIHsweGMzNSwgMHhjMzl9LCB7MHhjNjAsIDB4YzYxfSwgezB4Yzg1LCAweGM4Y30sIAorICAgIHsweGM4ZSwgMHhjOTB9LCB7MHhjOTIsIDB4Y2E4fSwgezB4Y2FhLCAweGNiM30sIHsweGNiNSwgMHhjYjl9LCAKKyAgICB7MHhjYmQsIDB4Y2JkfSwgezB4Y2RlLCAweGNkZX0sIHsweGNlMCwgMHhjZTF9LCB7MHhkMDUsIDB4ZDBjfSwgCisgICAgezB4ZDBlLCAweGQxMH0sIHsweGQxMiwgMHhkMjh9LCB7MHhkMmEsIDB4ZDM5fSwgezB4ZDYwLCAweGQ2MX0sIAorICAgIHsweGQ4NSwgMHhkOTZ9LCB7MHhkOWEsIDB4ZGIxfSwgezB4ZGIzLCAweGRiYn0sIHsweGRiZCwgMHhkYmR9LCAKKyAgICB7MHhkYzAsIDB4ZGM2fSwgezB4ZTAxLCAweGUzMH0sIHsweGUzMiwgMHhlMzN9LCB7MHhlNDAsIDB4ZTQ1fSwgCisgICAgezB4ZTgxLCAweGU4Mn0sIHsweGU4NCwgMHhlODR9LCB7MHhlODcsIDB4ZTg4fSwgezB4ZThhLCAweGU4YX0sIAorICAgIHsweGU4ZCwgMHhlOGR9LCB7MHhlOTQsIDB4ZTk3fSwgezB4ZTk5LCAweGU5Zn0sIHsweGVhMSwgMHhlYTN9LCAKKyAgICB7MHhlYTUsIDB4ZWE1fSwgezB4ZWE3LCAweGVhN30sIHsweGVhYSwgMHhlYWJ9LCB7MHhlYWQsIDB4ZWIwfSwgCisgICAgezB4ZWIyLCAweGViM30sIHsweGViZCwgMHhlYmR9LCB7MHhlYzAsIDB4ZWM0fSwgezB4ZWRjLCAweGVkZH0sIAorICAgIHsweGYwMCwgMHhmMDB9LCB7MHhmNDAsIDB4ZjQ3fSwgezB4ZjQ5LCAweGY2YX0sIHsweGY4OCwgMHhmOGJ9LCAKKyAgICB7MHgxMDAwLCAweDEwMjF9LCB7MHgxMDIzLCAweDEwMjd9LCB7MHgxMDI5LCAweDEwMmF9LCB7MHgxMDUwLCAweDEwNTV9LCAKKyAgICB7MHgxMGQwLCAweDEwZjh9LCB7MHgxMTAwLCAweDExNTl9LCB7MHgxMTVmLCAweDExYTJ9LCB7MHgxMWE4LCAweDExZjl9LCAKKyAgICB7MHgxMjAwLCAweDEyMDZ9LCB7MHgxMjA4LCAweDEyNDZ9LCB7MHgxMjQ4LCAweDEyNDh9LCB7MHgxMjRhLCAweDEyNGR9LCAKKyAgICB7MHgxMjUwLCAweDEyNTZ9LCB7MHgxMjU4LCAweDEyNTh9LCB7MHgxMjVhLCAweDEyNWR9LCB7MHgxMjYwLCAweDEyODZ9LCAKKyAgICB7MHgxMjg4LCAweDEyODh9LCB7MHgxMjhhLCAweDEyOGR9LCB7MHgxMjkwLCAweDEyYWV9LCB7MHgxMmIwLCAweDEyYjB9LCAKKyAgICB7MHgxMmIyLCAweDEyYjV9LCB7MHgxMmI4LCAweDEyYmV9LCB7MHgxMmMwLCAweDEyYzB9LCB7MHgxMmMyLCAweDEyYzV9LCAKKyAgICB7MHgxMmM4LCAweDEyY2V9LCB7MHgxMmQwLCAweDEyZDZ9LCB7MHgxMmQ4LCAweDEyZWV9LCB7MHgxMmYwLCAweDEzMGV9LCAKKyAgICB7MHgxMzEwLCAweDEzMTB9LCB7MHgxMzEyLCAweDEzMTV9LCB7MHgxMzE4LCAweDEzMWV9LCB7MHgxMzIwLCAweDEzNDZ9LCAKKyAgICB7MHgxMzQ4LCAweDEzNWF9LCB7MHgxM2EwLCAweDEzZjR9LCB7MHgxNDAxLCAweDE2NmN9LCB7MHgxNjZmLCAweDE2NzZ9LCAKKyAgICB7MHgxNjgxLCAweDE2OWF9LCB7MHgxNmEwLCAweDE2ZWF9LCB7MHgxNzAwLCAweDE3MGN9LCB7MHgxNzBlLCAweDE3MTF9LCAKKyAgICB7MHgxNzIwLCAweDE3MzF9LCB7MHgxNzQwLCAweDE3NTF9LCB7MHgxNzYwLCAweDE3NmN9LCB7MHgxNzZlLCAweDE3NzB9LCAKKyAgICB7MHgxNzgwLCAweDE3YjN9LCB7MHgxN2RjLCAweDE3ZGN9LCB7MHgxODIwLCAweDE4NDJ9LCB7MHgxODQ0LCAweDE4Nzd9LCAKKyAgICB7MHgxODgwLCAweDE4YTh9LCB7MHgxOTAwLCAweDE5MWN9LCB7MHgxOTUwLCAweDE5NmR9LCB7MHgxOTcwLCAweDE5NzR9LCAKKyAgICB7MHgyMTM1LCAweDIxMzh9LCB7MHgzMDA2LCAweDMwMDZ9LCB7MHgzMDNjLCAweDMwM2N9LCB7MHgzMDQxLCAweDMwOTZ9LCAKKyAgICB7MHgzMDlmLCAweDMwOWZ9LCB7MHgzMGExLCAweDMwZmF9LCB7MHgzMGZmLCAweDMwZmZ9LCB7MHgzMTA1LCAweDMxMmN9LCAKKyAgICB7MHgzMTMxLCAweDMxOGV9LCB7MHgzMWEwLCAweDMxYjd9LCB7MHgzMWYwLCAweDMxZmZ9LCB7MHgzNDAwLCAweDM0MDB9LCAKKyAgICB7MHg0ZGI1LCAweDRkYjV9LCB7MHg0ZTAwLCAweDRlMDB9LCB7MHg5ZmE1LCAweDlmYTV9LCB7MHhhMDAwLCAweGE0OGN9LCAKKyAgICB7MHhhYzAwLCAweGFjMDB9LCB7MHhkN2EzLCAweGQ3YTN9LCB7MHhmOTAwLCAweGZhMmR9LCB7MHhmYTMwLCAweGZhNmF9LCAKKyAgICB7MHhmYjFkLCAweGZiMWR9LCB7MHhmYjFmLCAweGZiMjh9LCB7MHhmYjJhLCAweGZiMzZ9LCB7MHhmYjM4LCAweGZiM2N9LCAKKyAgICB7MHhmYjNlLCAweGZiM2V9LCB7MHhmYjQwLCAweGZiNDF9LCB7MHhmYjQzLCAweGZiNDR9LCB7MHhmYjQ2LCAweGZiYjF9LCAKKyAgICB7MHhmYmQzLCAweGZkM2R9LCB7MHhmZDUwLCAweGZkOGZ9LCB7MHhmZDkyLCAweGZkYzd9LCB7MHhmZGYwLCAweGZkZmJ9LCAKKyAgICB7MHhmZTcwLCAweGZlNzR9LCB7MHhmZTc2LCAweGZlZmN9LCB7MHhmZjY2LCAweGZmNmZ9LCB7MHhmZjcxLCAweGZmOWR9LCAKKyAgICB7MHhmZmEwLCAweGZmYmV9LCB7MHhmZmMyLCAweGZmYzd9LCB7MHhmZmNhLCAweGZmY2Z9LCB7MHhmZmQyLCAweGZmZDd9LCAKKyAgICB7MHhmZmRhLCAweGZmZGN9IH07CitzdGF0aWMgY29uc3QgeG1sQ2hMUmFuZ2UgeG1sTG9MW10gPSB7ezB4MTAwMDAsIDB4MTAwMGJ9LCB7MHgxMDAwZCwgMHgxMDAyNn0sIAorICAgIHsweDEwMDI4LCAweDEwMDNhfSwgezB4MTAwM2MsIDB4MTAwM2R9LCB7MHgxMDAzZiwgMHgxMDA0ZH0sIAorICAgIHsweDEwMDUwLCAweDEwMDVkfSwgezB4MTAwODAsIDB4MTAwZmF9LCB7MHgxMDMwMCwgMHgxMDMxZX0sIAorICAgIHsweDEwMzMwLCAweDEwMzQ5fSwgezB4MTAzODAsIDB4MTAzOWR9LCB7MHgxMDQ1MCwgMHgxMDQ5ZH0sIAorICAgIHsweDEwODAwLCAweDEwODA1fSwgezB4MTA4MDgsIDB4MTA4MDh9LCB7MHgxMDgwYSwgMHgxMDgzNX0sIAorICAgIHsweDEwODM3LCAweDEwODM4fSwgezB4MTA4M2MsIDB4MTA4M2N9LCB7MHgxMDgzZiwgMHgxMDgzZn0sIAorICAgIHsweDIwMDAwLCAweDIwMDAwfSwgezB4MmE2ZDYsIDB4MmE2ZDZ9LCB7MHgyZjgwMCwgMHgyZmExZH0gfTsKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgeG1sTG9HID0gezIxMSwyMCx4bWxMb1MseG1sTG9MfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbEx0U1tdID0ge3sweDFjNSwgMHgxYzV9LCB7MHgxYzgsIDB4MWM4fSwgCisgICAgezB4MWNiLCAweDFjYn0sIHsweDFmMiwgMHgxZjJ9LCB7MHgxZjg4LCAweDFmOGZ9LCB7MHgxZjk4LCAweDFmOWZ9LCAKKyAgICB7MHgxZmE4LCAweDFmYWZ9LCB7MHgxZmJjLCAweDFmYmN9LCB7MHgxZmNjLCAweDFmY2N9LCB7MHgxZmZjLCAweDFmZmN9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbEx0RyA9IHsxMCwwLHhtbEx0UyxOVUxMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbEx1U1tdID0ge3sweDQxLCAweDVhfSwgezB4YzAsIDB4ZDZ9LCAKKyAgICB7MHhkOCwgMHhkZX0sIHsweDEwMCwgMHgxMDB9LCB7MHgxMDIsIDB4MTAyfSwgezB4MTA0LCAweDEwNH0sIAorICAgIHsweDEwNiwgMHgxMDZ9LCB7MHgxMDgsIDB4MTA4fSwgezB4MTBhLCAweDEwYX0sIHsweDEwYywgMHgxMGN9LCAKKyAgICB7MHgxMGUsIDB4MTBlfSwgezB4MTEwLCAweDExMH0sIHsweDExMiwgMHgxMTJ9LCB7MHgxMTQsIDB4MTE0fSwgCisgICAgezB4MTE2LCAweDExNn0sIHsweDExOCwgMHgxMTh9LCB7MHgxMWEsIDB4MTFhfSwgezB4MTFjLCAweDExY30sIAorICAgIHsweDExZSwgMHgxMWV9LCB7MHgxMjAsIDB4MTIwfSwgezB4MTIyLCAweDEyMn0sIHsweDEyNCwgMHgxMjR9LCAKKyAgICB7MHgxMjYsIDB4MTI2fSwgezB4MTI4LCAweDEyOH0sIHsweDEyYSwgMHgxMmF9LCB7MHgxMmMsIDB4MTJjfSwgCisgICAgezB4MTJlLCAweDEyZX0sIHsweDEzMCwgMHgxMzB9LCB7MHgxMzIsIDB4MTMyfSwgezB4MTM0LCAweDEzNH0sIAorICAgIHsweDEzNiwgMHgxMzZ9LCB7MHgxMzksIDB4MTM5fSwgezB4MTNiLCAweDEzYn0sIHsweDEzZCwgMHgxM2R9LCAKKyAgICB7MHgxM2YsIDB4MTNmfSwgezB4MTQxLCAweDE0MX0sIHsweDE0MywgMHgxNDN9LCB7MHgxNDUsIDB4MTQ1fSwgCisgICAgezB4MTQ3LCAweDE0N30sIHsweDE0YSwgMHgxNGF9LCB7MHgxNGMsIDB4MTRjfSwgezB4MTRlLCAweDE0ZX0sIAorICAgIHsweDE1MCwgMHgxNTB9LCB7MHgxNTIsIDB4MTUyfSwgezB4MTU0LCAweDE1NH0sIHsweDE1NiwgMHgxNTZ9LCAKKyAgICB7MHgxNTgsIDB4MTU4fSwgezB4MTVhLCAweDE1YX0sIHsweDE1YywgMHgxNWN9LCB7MHgxNWUsIDB4MTVlfSwgCisgICAgezB4MTYwLCAweDE2MH0sIHsweDE2MiwgMHgxNjJ9LCB7MHgxNjQsIDB4MTY0fSwgezB4MTY2LCAweDE2Nn0sIAorICAgIHsweDE2OCwgMHgxNjh9LCB7MHgxNmEsIDB4MTZhfSwgezB4MTZjLCAweDE2Y30sIHsweDE2ZSwgMHgxNmV9LCAKKyAgICB7MHgxNzAsIDB4MTcwfSwgezB4MTcyLCAweDE3Mn0sIHsweDE3NCwgMHgxNzR9LCB7MHgxNzYsIDB4MTc2fSwgCisgICAgezB4MTc4LCAweDE3OX0sIHsweDE3YiwgMHgxN2J9LCB7MHgxN2QsIDB4MTdkfSwgezB4MTgxLCAweDE4Mn0sIAorICAgIHsweDE4NCwgMHgxODR9LCB7MHgxODYsIDB4MTg3fSwgezB4MTg5LCAweDE4Yn0sIHsweDE4ZSwgMHgxOTF9LCAKKyAgICB7MHgxOTMsIDB4MTk0fSwgezB4MTk2LCAweDE5OH0sIHsweDE5YywgMHgxOWR9LCB7MHgxOWYsIDB4MWEwfSwgCisgICAgezB4MWEyLCAweDFhMn0sIHsweDFhNCwgMHgxYTR9LCB7MHgxYTYsIDB4MWE3fSwgezB4MWE5LCAweDFhOX0sIAorICAgIHsweDFhYywgMHgxYWN9LCB7MHgxYWUsIDB4MWFmfSwgezB4MWIxLCAweDFiM30sIHsweDFiNSwgMHgxYjV9LCAKKyAgICB7MHgxYjcsIDB4MWI4fSwgezB4MWJjLCAweDFiY30sIHsweDFjNCwgMHgxYzR9LCB7MHgxYzcsIDB4MWM3fSwgCisgICAgezB4MWNhLCAweDFjYX0sIHsweDFjZCwgMHgxY2R9LCB7MHgxY2YsIDB4MWNmfSwgezB4MWQxLCAweDFkMX0sIAorICAgIHsweDFkMywgMHgxZDN9LCB7MHgxZDUsIDB4MWQ1fSwgezB4MWQ3LCAweDFkN30sIHsweDFkOSwgMHgxZDl9LCAKKyAgICB7MHgxZGIsIDB4MWRifSwgezB4MWRlLCAweDFkZX0sIHsweDFlMCwgMHgxZTB9LCB7MHgxZTIsIDB4MWUyfSwgCisgICAgezB4MWU0LCAweDFlNH0sIHsweDFlNiwgMHgxZTZ9LCB7MHgxZTgsIDB4MWU4fSwgezB4MWVhLCAweDFlYX0sIAorICAgIHsweDFlYywgMHgxZWN9LCB7MHgxZWUsIDB4MWVlfSwgezB4MWYxLCAweDFmMX0sIHsweDFmNCwgMHgxZjR9LCAKKyAgICB7MHgxZjYsIDB4MWY4fSwgezB4MWZhLCAweDFmYX0sIHsweDFmYywgMHgxZmN9LCB7MHgxZmUsIDB4MWZlfSwgCisgICAgezB4MjAwLCAweDIwMH0sIHsweDIwMiwgMHgyMDJ9LCB7MHgyMDQsIDB4MjA0fSwgezB4MjA2LCAweDIwNn0sIAorICAgIHsweDIwOCwgMHgyMDh9LCB7MHgyMGEsIDB4MjBhfSwgezB4MjBjLCAweDIwY30sIHsweDIwZSwgMHgyMGV9LCAKKyAgICB7MHgyMTAsIDB4MjEwfSwgezB4MjEyLCAweDIxMn0sIHsweDIxNCwgMHgyMTR9LCB7MHgyMTYsIDB4MjE2fSwgCisgICAgezB4MjE4LCAweDIxOH0sIHsweDIxYSwgMHgyMWF9LCB7MHgyMWMsIDB4MjFjfSwgezB4MjFlLCAweDIxZX0sIAorICAgIHsweDIyMCwgMHgyMjB9LCB7MHgyMjIsIDB4MjIyfSwgezB4MjI0LCAweDIyNH0sIHsweDIyNiwgMHgyMjZ9LCAKKyAgICB7MHgyMjgsIDB4MjI4fSwgezB4MjJhLCAweDIyYX0sIHsweDIyYywgMHgyMmN9LCB7MHgyMmUsIDB4MjJlfSwgCisgICAgezB4MjMwLCAweDIzMH0sIHsweDIzMiwgMHgyMzJ9LCB7MHgzODYsIDB4Mzg2fSwgezB4Mzg4LCAweDM4YX0sIAorICAgIHsweDM4YywgMHgzOGN9LCB7MHgzOGUsIDB4MzhmfSwgezB4MzkxLCAweDNhMX0sIHsweDNhMywgMHgzYWJ9LCAKKyAgICB7MHgzZDIsIDB4M2Q0fSwgezB4M2Q4LCAweDNkOH0sIHsweDNkYSwgMHgzZGF9LCB7MHgzZGMsIDB4M2RjfSwgCisgICAgezB4M2RlLCAweDNkZX0sIHsweDNlMCwgMHgzZTB9LCB7MHgzZTIsIDB4M2UyfSwgezB4M2U0LCAweDNlNH0sIAorICAgIHsweDNlNiwgMHgzZTZ9LCB7MHgzZTgsIDB4M2U4fSwgezB4M2VhLCAweDNlYX0sIHsweDNlYywgMHgzZWN9LCAKKyAgICB7MHgzZWUsIDB4M2VlfSwgezB4M2Y0LCAweDNmNH0sIHsweDNmNywgMHgzZjd9LCB7MHgzZjksIDB4M2ZhfSwgCisgICAgezB4NDAwLCAweDQyZn0sIHsweDQ2MCwgMHg0NjB9LCB7MHg0NjIsIDB4NDYyfSwgezB4NDY0LCAweDQ2NH0sIAorICAgIHsweDQ2NiwgMHg0NjZ9LCB7MHg0NjgsIDB4NDY4fSwgezB4NDZhLCAweDQ2YX0sIHsweDQ2YywgMHg0NmN9LCAKKyAgICB7MHg0NmUsIDB4NDZlfSwgezB4NDcwLCAweDQ3MH0sIHsweDQ3MiwgMHg0NzJ9LCB7MHg0NzQsIDB4NDc0fSwgCisgICAgezB4NDc2LCAweDQ3Nn0sIHsweDQ3OCwgMHg0Nzh9LCB7MHg0N2EsIDB4NDdhfSwgezB4NDdjLCAweDQ3Y30sIAorICAgIHsweDQ3ZSwgMHg0N2V9LCB7MHg0ODAsIDB4NDgwfSwgezB4NDhhLCAweDQ4YX0sIHsweDQ4YywgMHg0OGN9LCAKKyAgICB7MHg0OGUsIDB4NDhlfSwgezB4NDkwLCAweDQ5MH0sIHsweDQ5MiwgMHg0OTJ9LCB7MHg0OTQsIDB4NDk0fSwgCisgICAgezB4NDk2LCAweDQ5Nn0sIHsweDQ5OCwgMHg0OTh9LCB7MHg0OWEsIDB4NDlhfSwgezB4NDljLCAweDQ5Y30sIAorICAgIHsweDQ5ZSwgMHg0OWV9LCB7MHg0YTAsIDB4NGEwfSwgezB4NGEyLCAweDRhMn0sIHsweDRhNCwgMHg0YTR9LCAKKyAgICB7MHg0YTYsIDB4NGE2fSwgezB4NGE4LCAweDRhOH0sIHsweDRhYSwgMHg0YWF9LCB7MHg0YWMsIDB4NGFjfSwgCisgICAgezB4NGFlLCAweDRhZX0sIHsweDRiMCwgMHg0YjB9LCB7MHg0YjIsIDB4NGIyfSwgezB4NGI0LCAweDRiNH0sIAorICAgIHsweDRiNiwgMHg0YjZ9LCB7MHg0YjgsIDB4NGI4fSwgezB4NGJhLCAweDRiYX0sIHsweDRiYywgMHg0YmN9LCAKKyAgICB7MHg0YmUsIDB4NGJlfSwgezB4NGMwLCAweDRjMX0sIHsweDRjMywgMHg0YzN9LCB7MHg0YzUsIDB4NGM1fSwgCisgICAgezB4NGM3LCAweDRjN30sIHsweDRjOSwgMHg0Yzl9LCB7MHg0Y2IsIDB4NGNifSwgezB4NGNkLCAweDRjZH0sIAorICAgIHsweDRkMCwgMHg0ZDB9LCB7MHg0ZDIsIDB4NGQyfSwgezB4NGQ0LCAweDRkNH0sIHsweDRkNiwgMHg0ZDZ9LCAKKyAgICB7MHg0ZDgsIDB4NGQ4fSwgezB4NGRhLCAweDRkYX0sIHsweDRkYywgMHg0ZGN9LCB7MHg0ZGUsIDB4NGRlfSwgCisgICAgezB4NGUwLCAweDRlMH0sIHsweDRlMiwgMHg0ZTJ9LCB7MHg0ZTQsIDB4NGU0fSwgezB4NGU2LCAweDRlNn0sIAorICAgIHsweDRlOCwgMHg0ZTh9LCB7MHg0ZWEsIDB4NGVhfSwgezB4NGVjLCAweDRlY30sIHsweDRlZSwgMHg0ZWV9LCAKKyAgICB7MHg0ZjAsIDB4NGYwfSwgezB4NGYyLCAweDRmMn0sIHsweDRmNCwgMHg0ZjR9LCB7MHg0ZjgsIDB4NGY4fSwgCisgICAgezB4NTAwLCAweDUwMH0sIHsweDUwMiwgMHg1MDJ9LCB7MHg1MDQsIDB4NTA0fSwgezB4NTA2LCAweDUwNn0sIAorICAgIHsweDUwOCwgMHg1MDh9LCB7MHg1MGEsIDB4NTBhfSwgezB4NTBjLCAweDUwY30sIHsweDUwZSwgMHg1MGV9LCAKKyAgICB7MHg1MzEsIDB4NTU2fSwgezB4MTBhMCwgMHgxMGM1fSwgezB4MWUwMCwgMHgxZTAwfSwgezB4MWUwMiwgMHgxZTAyfSwgCisgICAgezB4MWUwNCwgMHgxZTA0fSwgezB4MWUwNiwgMHgxZTA2fSwgezB4MWUwOCwgMHgxZTA4fSwgezB4MWUwYSwgMHgxZTBhfSwgCisgICAgezB4MWUwYywgMHgxZTBjfSwgezB4MWUwZSwgMHgxZTBlfSwgezB4MWUxMCwgMHgxZTEwfSwgezB4MWUxMiwgMHgxZTEyfSwgCisgICAgezB4MWUxNCwgMHgxZTE0fSwgezB4MWUxNiwgMHgxZTE2fSwgezB4MWUxOCwgMHgxZTE4fSwgezB4MWUxYSwgMHgxZTFhfSwgCisgICAgezB4MWUxYywgMHgxZTFjfSwgezB4MWUxZSwgMHgxZTFlfSwgezB4MWUyMCwgMHgxZTIwfSwgezB4MWUyMiwgMHgxZTIyfSwgCisgICAgezB4MWUyNCwgMHgxZTI0fSwgezB4MWUyNiwgMHgxZTI2fSwgezB4MWUyOCwgMHgxZTI4fSwgezB4MWUyYSwgMHgxZTJhfSwgCisgICAgezB4MWUyYywgMHgxZTJjfSwgezB4MWUyZSwgMHgxZTJlfSwgezB4MWUzMCwgMHgxZTMwfSwgezB4MWUzMiwgMHgxZTMyfSwgCisgICAgezB4MWUzNCwgMHgxZTM0fSwgezB4MWUzNiwgMHgxZTM2fSwgezB4MWUzOCwgMHgxZTM4fSwgezB4MWUzYSwgMHgxZTNhfSwgCisgICAgezB4MWUzYywgMHgxZTNjfSwgezB4MWUzZSwgMHgxZTNlfSwgezB4MWU0MCwgMHgxZTQwfSwgezB4MWU0MiwgMHgxZTQyfSwgCisgICAgezB4MWU0NCwgMHgxZTQ0fSwgezB4MWU0NiwgMHgxZTQ2fSwgezB4MWU0OCwgMHgxZTQ4fSwgezB4MWU0YSwgMHgxZTRhfSwgCisgICAgezB4MWU0YywgMHgxZTRjfSwgezB4MWU0ZSwgMHgxZTRlfSwgezB4MWU1MCwgMHgxZTUwfSwgezB4MWU1MiwgMHgxZTUyfSwgCisgICAgezB4MWU1NCwgMHgxZTU0fSwgezB4MWU1NiwgMHgxZTU2fSwgezB4MWU1OCwgMHgxZTU4fSwgezB4MWU1YSwgMHgxZTVhfSwgCisgICAgezB4MWU1YywgMHgxZTVjfSwgezB4MWU1ZSwgMHgxZTVlfSwgezB4MWU2MCwgMHgxZTYwfSwgezB4MWU2MiwgMHgxZTYyfSwgCisgICAgezB4MWU2NCwgMHgxZTY0fSwgezB4MWU2NiwgMHgxZTY2fSwgezB4MWU2OCwgMHgxZTY4fSwgezB4MWU2YSwgMHgxZTZhfSwgCisgICAgezB4MWU2YywgMHgxZTZjfSwgezB4MWU2ZSwgMHgxZTZlfSwgezB4MWU3MCwgMHgxZTcwfSwgezB4MWU3MiwgMHgxZTcyfSwgCisgICAgezB4MWU3NCwgMHgxZTc0fSwgezB4MWU3NiwgMHgxZTc2fSwgezB4MWU3OCwgMHgxZTc4fSwgezB4MWU3YSwgMHgxZTdhfSwgCisgICAgezB4MWU3YywgMHgxZTdjfSwgezB4MWU3ZSwgMHgxZTdlfSwgezB4MWU4MCwgMHgxZTgwfSwgezB4MWU4MiwgMHgxZTgyfSwgCisgICAgezB4MWU4NCwgMHgxZTg0fSwgezB4MWU4NiwgMHgxZTg2fSwgezB4MWU4OCwgMHgxZTg4fSwgezB4MWU4YSwgMHgxZThhfSwgCisgICAgezB4MWU4YywgMHgxZThjfSwgezB4MWU4ZSwgMHgxZThlfSwgezB4MWU5MCwgMHgxZTkwfSwgezB4MWU5MiwgMHgxZTkyfSwgCisgICAgezB4MWU5NCwgMHgxZTk0fSwgezB4MWVhMCwgMHgxZWEwfSwgezB4MWVhMiwgMHgxZWEyfSwgezB4MWVhNCwgMHgxZWE0fSwgCisgICAgezB4MWVhNiwgMHgxZWE2fSwgezB4MWVhOCwgMHgxZWE4fSwgezB4MWVhYSwgMHgxZWFhfSwgezB4MWVhYywgMHgxZWFjfSwgCisgICAgezB4MWVhZSwgMHgxZWFlfSwgezB4MWViMCwgMHgxZWIwfSwgezB4MWViMiwgMHgxZWIyfSwgezB4MWViNCwgMHgxZWI0fSwgCisgICAgezB4MWViNiwgMHgxZWI2fSwgezB4MWViOCwgMHgxZWI4fSwgezB4MWViYSwgMHgxZWJhfSwgezB4MWViYywgMHgxZWJjfSwgCisgICAgezB4MWViZSwgMHgxZWJlfSwgezB4MWVjMCwgMHgxZWMwfSwgezB4MWVjMiwgMHgxZWMyfSwgezB4MWVjNCwgMHgxZWM0fSwgCisgICAgezB4MWVjNiwgMHgxZWM2fSwgezB4MWVjOCwgMHgxZWM4fSwgezB4MWVjYSwgMHgxZWNhfSwgezB4MWVjYywgMHgxZWNjfSwgCisgICAgezB4MWVjZSwgMHgxZWNlfSwgezB4MWVkMCwgMHgxZWQwfSwgezB4MWVkMiwgMHgxZWQyfSwgezB4MWVkNCwgMHgxZWQ0fSwgCisgICAgezB4MWVkNiwgMHgxZWQ2fSwgezB4MWVkOCwgMHgxZWQ4fSwgezB4MWVkYSwgMHgxZWRhfSwgezB4MWVkYywgMHgxZWRjfSwgCisgICAgezB4MWVkZSwgMHgxZWRlfSwgezB4MWVlMCwgMHgxZWUwfSwgezB4MWVlMiwgMHgxZWUyfSwgezB4MWVlNCwgMHgxZWU0fSwgCisgICAgezB4MWVlNiwgMHgxZWU2fSwgezB4MWVlOCwgMHgxZWU4fSwgezB4MWVlYSwgMHgxZWVhfSwgezB4MWVlYywgMHgxZWVjfSwgCisgICAgezB4MWVlZSwgMHgxZWVlfSwgezB4MWVmMCwgMHgxZWYwfSwgezB4MWVmMiwgMHgxZWYyfSwgezB4MWVmNCwgMHgxZWY0fSwgCisgICAgezB4MWVmNiwgMHgxZWY2fSwgezB4MWVmOCwgMHgxZWY4fSwgezB4MWYwOCwgMHgxZjBmfSwgezB4MWYxOCwgMHgxZjFkfSwgCisgICAgezB4MWYyOCwgMHgxZjJmfSwgezB4MWYzOCwgMHgxZjNmfSwgezB4MWY0OCwgMHgxZjRkfSwgezB4MWY1OSwgMHgxZjU5fSwgCisgICAgezB4MWY1YiwgMHgxZjVifSwgezB4MWY1ZCwgMHgxZjVkfSwgezB4MWY1ZiwgMHgxZjVmfSwgezB4MWY2OCwgMHgxZjZmfSwgCisgICAgezB4MWZiOCwgMHgxZmJifSwgezB4MWZjOCwgMHgxZmNifSwgezB4MWZkOCwgMHgxZmRifSwgezB4MWZlOCwgMHgxZmVjfSwgCisgICAgezB4MWZmOCwgMHgxZmZifSwgezB4MjEwMiwgMHgyMTAyfSwgezB4MjEwNywgMHgyMTA3fSwgezB4MjEwYiwgMHgyMTBkfSwgCisgICAgezB4MjExMCwgMHgyMTEyfSwgezB4MjExNSwgMHgyMTE1fSwgezB4MjExOSwgMHgyMTFkfSwgezB4MjEyNCwgMHgyMTI0fSwgCisgICAgezB4MjEyNiwgMHgyMTI2fSwgezB4MjEyOCwgMHgyMTI4fSwgezB4MjEyYSwgMHgyMTJkfSwgezB4MjEzMCwgMHgyMTMxfSwgCisgICAgezB4MjEzMywgMHgyMTMzfSwgezB4MjEzZSwgMHgyMTNmfSwgezB4MjE0NSwgMHgyMTQ1fSwgezB4ZmYyMSwgMHhmZjNhfSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbEx1TFtdID0ge3sweDEwNDAwLCAweDEwNDI3fSwgezB4MWQ0MDAsIDB4MWQ0MTl9LCAKKyAgICB7MHgxZDQzNCwgMHgxZDQ0ZH0sIHsweDFkNDY4LCAweDFkNDgxfSwgezB4MWQ0OWMsIDB4MWQ0OWN9LCAKKyAgICB7MHgxZDQ5ZSwgMHgxZDQ5Zn0sIHsweDFkNGEyLCAweDFkNGEyfSwgezB4MWQ0YTUsIDB4MWQ0YTZ9LCAKKyAgICB7MHgxZDRhOSwgMHgxZDRhY30sIHsweDFkNGFlLCAweDFkNGI1fSwgezB4MWQ0ZDAsIDB4MWQ0ZTl9LCAKKyAgICB7MHgxZDUwNCwgMHgxZDUwNX0sIHsweDFkNTA3LCAweDFkNTBhfSwgezB4MWQ1MGQsIDB4MWQ1MTR9LCAKKyAgICB7MHgxZDUxNiwgMHgxZDUxY30sIHsweDFkNTM4LCAweDFkNTM5fSwgezB4MWQ1M2IsIDB4MWQ1M2V9LCAKKyAgICB7MHgxZDU0MCwgMHgxZDU0NH0sIHsweDFkNTQ2LCAweDFkNTQ2fSwgezB4MWQ1NGEsIDB4MWQ1NTB9LCAKKyAgICB7MHgxZDU2YywgMHgxZDU4NX0sIHsweDFkNWEwLCAweDFkNWI5fSwgezB4MWQ1ZDQsIDB4MWQ1ZWR9LCAKKyAgICB7MHgxZDYwOCwgMHgxZDYyMX0sIHsweDFkNjNjLCAweDFkNjU1fSwgezB4MWQ2NzAsIDB4MWQ2ODl9LCAKKyAgICB7MHgxZDZhOCwgMHgxZDZjMH0sIHsweDFkNmUyLCAweDFkNmZhfSwgezB4MWQ3MWMsIDB4MWQ3MzR9LCAKKyAgICB7MHgxZDc1NiwgMHgxZDc2ZX0sIHsweDFkNzkwLCAweDFkN2E4fSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxMdUcgPSB7MzkwLDMxLHhtbEx1Uyx4bWxMdUx9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sTVNbXSA9IHt7MHgzMDAsIDB4MzU3fSwgezB4MzVkLCAweDM2Zn0sIAorICAgIHsweDQ4MywgMHg0ODZ9LCB7MHg0ODgsIDB4NDg5fSwgezB4NTkxLCAweDVhMX0sIHsweDVhMywgMHg1Yjl9LCAKKyAgICB7MHg1YmIsIDB4NWJkfSwgezB4NWJmLCAweDViZn0sIHsweDVjMSwgMHg1YzJ9LCB7MHg1YzQsIDB4NWM0fSwgCisgICAgezB4NjEwLCAweDYxNX0sIHsweDY0YiwgMHg2NTh9LCB7MHg2NzAsIDB4NjcwfSwgezB4NmQ2LCAweDZkY30sIAorICAgIHsweDZkZSwgMHg2ZTR9LCB7MHg2ZTcsIDB4NmU4fSwgezB4NmVhLCAweDZlZH0sIHsweDcxMSwgMHg3MTF9LCAKKyAgICB7MHg3MzAsIDB4NzRhfSwgezB4N2E2LCAweDdiMH0sIHsweDkwMSwgMHg5MDN9LCB7MHg5M2MsIDB4OTNjfSwgCisgICAgezB4OTNlLCAweDk0ZH0sIHsweDk1MSwgMHg5NTR9LCB7MHg5NjIsIDB4OTYzfSwgezB4OTgxLCAweDk4M30sIAorICAgIHsweDliYywgMHg5YmN9LCB7MHg5YmUsIDB4OWM0fSwgezB4OWM3LCAweDljOH0sIHsweDljYiwgMHg5Y2R9LCAKKyAgICB7MHg5ZDcsIDB4OWQ3fSwgezB4OWUyLCAweDllM30sIHsweGEwMSwgMHhhMDN9LCB7MHhhM2MsIDB4YTNjfSwgCisgICAgezB4YTNlLCAweGE0Mn0sIHsweGE0NywgMHhhNDh9LCB7MHhhNGIsIDB4YTRkfSwgezB4YTcwLCAweGE3MX0sIAorICAgIHsweGE4MSwgMHhhODN9LCB7MHhhYmMsIDB4YWJjfSwgezB4YWJlLCAweGFjNX0sIHsweGFjNywgMHhhYzl9LCAKKyAgICB7MHhhY2IsIDB4YWNkfSwgezB4YWUyLCAweGFlM30sIHsweGIwMSwgMHhiMDN9LCB7MHhiM2MsIDB4YjNjfSwgCisgICAgezB4YjNlLCAweGI0M30sIHsweGI0NywgMHhiNDh9LCB7MHhiNGIsIDB4YjRkfSwgezB4YjU2LCAweGI1N30sIAorICAgIHsweGI4MiwgMHhiODJ9LCB7MHhiYmUsIDB4YmMyfSwgezB4YmM2LCAweGJjOH0sIHsweGJjYSwgMHhiY2R9LCAKKyAgICB7MHhiZDcsIDB4YmQ3fSwgezB4YzAxLCAweGMwM30sIHsweGMzZSwgMHhjNDR9LCB7MHhjNDYsIDB4YzQ4fSwgCisgICAgezB4YzRhLCAweGM0ZH0sIHsweGM1NSwgMHhjNTZ9LCB7MHhjODIsIDB4YzgzfSwgezB4Y2JjLCAweGNiY30sIAorICAgIHsweGNiZSwgMHhjYzR9LCB7MHhjYzYsIDB4Y2M4fSwgezB4Y2NhLCAweGNjZH0sIHsweGNkNSwgMHhjZDZ9LCAKKyAgICB7MHhkMDIsIDB4ZDAzfSwgezB4ZDNlLCAweGQ0M30sIHsweGQ0NiwgMHhkNDh9LCB7MHhkNGEsIDB4ZDRkfSwgCisgICAgezB4ZDU3LCAweGQ1N30sIHsweGQ4MiwgMHhkODN9LCB7MHhkY2EsIDB4ZGNhfSwgezB4ZGNmLCAweGRkNH0sIAorICAgIHsweGRkNiwgMHhkZDZ9LCB7MHhkZDgsIDB4ZGRmfSwgezB4ZGYyLCAweGRmM30sIHsweGUzMSwgMHhlMzF9LCAKKyAgICB7MHhlMzQsIDB4ZTNhfSwgezB4ZTQ3LCAweGU0ZX0sIHsweGViMSwgMHhlYjF9LCB7MHhlYjQsIDB4ZWI5fSwgCisgICAgezB4ZWJiLCAweGViY30sIHsweGVjOCwgMHhlY2R9LCB7MHhmMTgsIDB4ZjE5fSwgezB4ZjM1LCAweGYzNX0sIAorICAgIHsweGYzNywgMHhmMzd9LCB7MHhmMzksIDB4ZjM5fSwgezB4ZjNlLCAweGYzZn0sIHsweGY3MSwgMHhmODR9LCAKKyAgICB7MHhmODYsIDB4Zjg3fSwgezB4ZjkwLCAweGY5N30sIHsweGY5OSwgMHhmYmN9LCB7MHhmYzYsIDB4ZmM2fSwgCisgICAgezB4MTAyYywgMHgxMDMyfSwgezB4MTAzNiwgMHgxMDM5fSwgezB4MTA1NiwgMHgxMDU5fSwgezB4MTcxMiwgMHgxNzE0fSwgCisgICAgezB4MTczMiwgMHgxNzM0fSwgezB4MTc1MiwgMHgxNzUzfSwgezB4MTc3MiwgMHgxNzczfSwgezB4MTdiNiwgMHgxN2QzfSwgCisgICAgezB4MTdkZCwgMHgxN2RkfSwgezB4MTgwYiwgMHgxODBkfSwgezB4MThhOSwgMHgxOGE5fSwgezB4MTkyMCwgMHgxOTJifSwgCisgICAgezB4MTkzMCwgMHgxOTNifSwgezB4MjBkMCwgMHgyMGVhfSwgezB4MzAyYSwgMHgzMDJmfSwgezB4MzA5OSwgMHgzMDlhfSwgCisgICAgezB4ZmIxZSwgMHhmYjFlfSwgezB4ZmUwMCwgMHhmZTBmfSwgezB4ZmUyMCwgMHhmZTIzfSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbE1MW10gPSB7ezB4MWQxNjUsIDB4MWQxNjl9LCB7MHgxZDE2ZCwgMHgxZDE3Mn0sIAorICAgIHsweDFkMTdiLCAweDFkMTgyfSwgezB4MWQxODUsIDB4MWQxOGJ9LCB7MHgxZDFhYSwgMHgxZDFhZH0sIAorICAgIHsweGUwMTAwLCAweGUwMWVmfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxNRyA9IHsxMTMsNix4bWxNUyx4bWxNTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxNY1NbXSA9IHt7MHg5MDMsIDB4OTAzfSwgezB4OTNlLCAweDk0MH0sIAorICAgIHsweDk0OSwgMHg5NGN9LCB7MHg5ODIsIDB4OTgzfSwgezB4OWJlLCAweDljMH0sIHsweDljNywgMHg5Yzh9LCAKKyAgICB7MHg5Y2IsIDB4OWNjfSwgezB4OWQ3LCAweDlkN30sIHsweGEwMywgMHhhMDN9LCB7MHhhM2UsIDB4YTQwfSwgCisgICAgezB4YTgzLCAweGE4M30sIHsweGFiZSwgMHhhYzB9LCB7MHhhYzksIDB4YWM5fSwgezB4YWNiLCAweGFjY30sIAorICAgIHsweGIwMiwgMHhiMDN9LCB7MHhiM2UsIDB4YjNlfSwgezB4YjQwLCAweGI0MH0sIHsweGI0NywgMHhiNDh9LCAKKyAgICB7MHhiNGIsIDB4YjRjfSwgezB4YjU3LCAweGI1N30sIHsweGJiZSwgMHhiYmZ9LCB7MHhiYzEsIDB4YmMyfSwgCisgICAgezB4YmM2LCAweGJjOH0sIHsweGJjYSwgMHhiY2N9LCB7MHhiZDcsIDB4YmQ3fSwgezB4YzAxLCAweGMwM30sIAorICAgIHsweGM0MSwgMHhjNDR9LCB7MHhjODIsIDB4YzgzfSwgezB4Y2JlLCAweGNiZX0sIHsweGNjMCwgMHhjYzR9LCAKKyAgICB7MHhjYzcsIDB4Y2M4fSwgezB4Y2NhLCAweGNjYn0sIHsweGNkNSwgMHhjZDZ9LCB7MHhkMDIsIDB4ZDAzfSwgCisgICAgezB4ZDNlLCAweGQ0MH0sIHsweGQ0NiwgMHhkNDh9LCB7MHhkNGEsIDB4ZDRjfSwgezB4ZDU3LCAweGQ1N30sIAorICAgIHsweGQ4MiwgMHhkODN9LCB7MHhkY2YsIDB4ZGQxfSwgezB4ZGQ4LCAweGRkZn0sIHsweGRmMiwgMHhkZjN9LCAKKyAgICB7MHhmM2UsIDB4ZjNmfSwgezB4ZjdmLCAweGY3Zn0sIHsweDEwMmMsIDB4MTAyY30sIHsweDEwMzEsIDB4MTAzMX0sIAorICAgIHsweDEwMzgsIDB4MTAzOH0sIHsweDEwNTYsIDB4MTA1N30sIHsweDE3YjYsIDB4MTdiNn0sIHsweDE3YmUsIDB4MTdjNX0sIAorICAgIHsweDE3YzcsIDB4MTdjOH0sIHsweDE5MjMsIDB4MTkyNn0sIHsweDE5MjksIDB4MTkyYn0sIHsweDE5MzAsIDB4MTkzMX0sIAorICAgIHsweDE5MzMsIDB4MTkzOH0gfTsKK3N0YXRpYyBjb25zdCB4bWxDaExSYW5nZSB4bWxNY0xbXSA9IHt7MHgxZDE2NSwgMHgxZDE2Nn0sIHsweDFkMTZkLCAweDFkMTcyfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxNY0cgPSB7NTUsMix4bWxNY1MseG1sTWNMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbE1uU1tdID0ge3sweDMwMCwgMHgzNTd9LCB7MHgzNWQsIDB4MzZmfSwgCisgICAgezB4NDgzLCAweDQ4Nn0sIHsweDU5MSwgMHg1YTF9LCB7MHg1YTMsIDB4NWI5fSwgezB4NWJiLCAweDViZH0sIAorICAgIHsweDViZiwgMHg1YmZ9LCB7MHg1YzEsIDB4NWMyfSwgezB4NWM0LCAweDVjNH0sIHsweDYxMCwgMHg2MTV9LCAKKyAgICB7MHg2NGIsIDB4NjU4fSwgezB4NjcwLCAweDY3MH0sIHsweDZkNiwgMHg2ZGN9LCB7MHg2ZGYsIDB4NmU0fSwgCisgICAgezB4NmU3LCAweDZlOH0sIHsweDZlYSwgMHg2ZWR9LCB7MHg3MTEsIDB4NzExfSwgezB4NzMwLCAweDc0YX0sIAorICAgIHsweDdhNiwgMHg3YjB9LCB7MHg5MDEsIDB4OTAyfSwgezB4OTNjLCAweDkzY30sIHsweDk0MSwgMHg5NDh9LCAKKyAgICB7MHg5NGQsIDB4OTRkfSwgezB4OTUxLCAweDk1NH0sIHsweDk2MiwgMHg5NjN9LCB7MHg5ODEsIDB4OTgxfSwgCisgICAgezB4OWJjLCAweDliY30sIHsweDljMSwgMHg5YzR9LCB7MHg5Y2QsIDB4OWNkfSwgezB4OWUyLCAweDllM30sIAorICAgIHsweGEwMSwgMHhhMDJ9LCB7MHhhM2MsIDB4YTNjfSwgezB4YTQxLCAweGE0Mn0sIHsweGE0NywgMHhhNDh9LCAKKyAgICB7MHhhNGIsIDB4YTRkfSwgezB4YTcwLCAweGE3MX0sIHsweGE4MSwgMHhhODJ9LCB7MHhhYmMsIDB4YWJjfSwgCisgICAgezB4YWMxLCAweGFjNX0sIHsweGFjNywgMHhhYzh9LCB7MHhhY2QsIDB4YWNkfSwgezB4YWUyLCAweGFlM30sIAorICAgIHsweGIwMSwgMHhiMDF9LCB7MHhiM2MsIDB4YjNjfSwgezB4YjNmLCAweGIzZn0sIHsweGI0MSwgMHhiNDN9LCAKKyAgICB7MHhiNGQsIDB4YjRkfSwgezB4YjU2LCAweGI1Nn0sIHsweGI4MiwgMHhiODJ9LCB7MHhiYzAsIDB4YmMwfSwgCisgICAgezB4YmNkLCAweGJjZH0sIHsweGMzZSwgMHhjNDB9LCB7MHhjNDYsIDB4YzQ4fSwgezB4YzRhLCAweGM0ZH0sIAorICAgIHsweGM1NSwgMHhjNTZ9LCB7MHhjYmMsIDB4Y2JjfSwgezB4Y2JmLCAweGNiZn0sIHsweGNjNiwgMHhjYzZ9LCAKKyAgICB7MHhjY2MsIDB4Y2NkfSwgezB4ZDQxLCAweGQ0M30sIHsweGQ0ZCwgMHhkNGR9LCB7MHhkY2EsIDB4ZGNhfSwgCisgICAgezB4ZGQyLCAweGRkNH0sIHsweGRkNiwgMHhkZDZ9LCB7MHhlMzEsIDB4ZTMxfSwgezB4ZTM0LCAweGUzYX0sIAorICAgIHsweGU0NywgMHhlNGV9LCB7MHhlYjEsIDB4ZWIxfSwgezB4ZWI0LCAweGViOX0sIHsweGViYiwgMHhlYmN9LCAKKyAgICB7MHhlYzgsIDB4ZWNkfSwgezB4ZjE4LCAweGYxOX0sIHsweGYzNSwgMHhmMzV9LCB7MHhmMzcsIDB4ZjM3fSwgCisgICAgezB4ZjM5LCAweGYzOX0sIHsweGY3MSwgMHhmN2V9LCB7MHhmODAsIDB4Zjg0fSwgezB4Zjg2LCAweGY4N30sIAorICAgIHsweGY5MCwgMHhmOTd9LCB7MHhmOTksIDB4ZmJjfSwgezB4ZmM2LCAweGZjNn0sIHsweDEwMmQsIDB4MTAzMH0sIAorICAgIHsweDEwMzIsIDB4MTAzMn0sIHsweDEwMzYsIDB4MTAzN30sIHsweDEwMzksIDB4MTAzOX0sIHsweDEwNTgsIDB4MTA1OX0sIAorICAgIHsweDE3MTIsIDB4MTcxNH0sIHsweDE3MzIsIDB4MTczNH0sIHsweDE3NTIsIDB4MTc1M30sIHsweDE3NzIsIDB4MTc3M30sIAorICAgIHsweDE3YjcsIDB4MTdiZH0sIHsweDE3YzYsIDB4MTdjNn0sIHsweDE3YzksIDB4MTdkM30sIHsweDE3ZGQsIDB4MTdkZH0sIAorICAgIHsweDE4MGIsIDB4MTgwZH0sIHsweDE4YTksIDB4MThhOX0sIHsweDE5MjAsIDB4MTkyMn0sIHsweDE5MjcsIDB4MTkyOH0sIAorICAgIHsweDE5MzIsIDB4MTkzMn0sIHsweDE5MzksIDB4MTkzYn0sIHsweDIwZDAsIDB4MjBkY30sIHsweDIwZTEsIDB4MjBlMX0sIAorICAgIHsweDIwZTUsIDB4MjBlYX0sIHsweDMwMmEsIDB4MzAyZn0sIHsweDMwOTksIDB4MzA5YX0sIHsweGZiMWUsIDB4ZmIxZX0sIAorICAgIHsweGZlMDAsIDB4ZmUwZn0sIHsweGZlMjAsIDB4ZmUyM30gfTsKK3N0YXRpYyBjb25zdCB4bWxDaExSYW5nZSB4bWxNbkxbXSA9IHt7MHgxZDE2NywgMHgxZDE2OX0sIHsweDFkMTdiLCAweDFkMTgyfSwgCisgICAgezB4MWQxODUsIDB4MWQxOGJ9LCB7MHgxZDFhYSwgMHgxZDFhZH0sIHsweGUwMTAwLCAweGUwMWVmfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxNbkcgPSB7MTA4LDUseG1sTW5TLHhtbE1uTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxOU1tdID0ge3sweDMwLCAweDM5fSwgezB4YjIsIDB4YjN9LCAKKyAgICB7MHhiOSwgMHhiOX0sIHsweGJjLCAweGJlfSwgezB4NjYwLCAweDY2OX0sIHsweDZmMCwgMHg2Zjl9LCAKKyAgICB7MHg5NjYsIDB4OTZmfSwgezB4OWU2LCAweDllZn0sIHsweDlmNCwgMHg5Zjl9LCB7MHhhNjYsIDB4YTZmfSwgCisgICAgezB4YWU2LCAweGFlZn0sIHsweGI2NiwgMHhiNmZ9LCB7MHhiZTcsIDB4YmYyfSwgezB4YzY2LCAweGM2Zn0sIAorICAgIHsweGNlNiwgMHhjZWZ9LCB7MHhkNjYsIDB4ZDZmfSwgezB4ZTUwLCAweGU1OX0sIHsweGVkMCwgMHhlZDl9LCAKKyAgICB7MHhmMjAsIDB4ZjMzfSwgezB4MTA0MCwgMHgxMDQ5fSwgezB4MTM2OSwgMHgxMzdjfSwgezB4MTZlZSwgMHgxNmYwfSwgCisgICAgezB4MTdlMCwgMHgxN2U5fSwgezB4MTdmMCwgMHgxN2Y5fSwgezB4MTgxMCwgMHgxODE5fSwgezB4MTk0NiwgMHgxOTRmfSwgCisgICAgezB4MjA3MCwgMHgyMDcwfSwgezB4MjA3NCwgMHgyMDc5fSwgezB4MjA4MCwgMHgyMDg5fSwgezB4MjE1MywgMHgyMTgzfSwgCisgICAgezB4MjQ2MCwgMHgyNDlifSwgezB4MjRlYSwgMHgyNGZmfSwgezB4Mjc3NiwgMHgyNzkzfSwgezB4MzAwNywgMHgzMDA3fSwgCisgICAgezB4MzAyMSwgMHgzMDI5fSwgezB4MzAzOCwgMHgzMDNhfSwgezB4MzE5MiwgMHgzMTk1fSwgezB4MzIyMCwgMHgzMjI5fSwgCisgICAgezB4MzI1MSwgMHgzMjVmfSwgezB4MzI4MCwgMHgzMjg5fSwgezB4MzJiMSwgMHgzMmJmfSwgezB4ZmYxMCwgMHhmZjE5fSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbE5MW10gPSB7ezB4MTAxMDcsIDB4MTAxMzN9LCB7MHgxMDMyMCwgMHgxMDMyM30sIAorICAgIHsweDEwMzRhLCAweDEwMzRhfSwgezB4MTA0YTAsIDB4MTA0YTl9LCB7MHgxZDdjZSwgMHgxZDdmZn0gfTsKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgeG1sTkcgPSB7NDIsNSx4bWxOUyx4bWxOTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxOZFNbXSA9IHt7MHgzMCwgMHgzOX0sIHsweDY2MCwgMHg2Njl9LCAKKyAgICB7MHg2ZjAsIDB4NmY5fSwgezB4OTY2LCAweDk2Zn0sIHsweDllNiwgMHg5ZWZ9LCB7MHhhNjYsIDB4YTZmfSwgCisgICAgezB4YWU2LCAweGFlZn0sIHsweGI2NiwgMHhiNmZ9LCB7MHhiZTcsIDB4YmVmfSwgezB4YzY2LCAweGM2Zn0sIAorICAgIHsweGNlNiwgMHhjZWZ9LCB7MHhkNjYsIDB4ZDZmfSwgezB4ZTUwLCAweGU1OX0sIHsweGVkMCwgMHhlZDl9LCAKKyAgICB7MHhmMjAsIDB4ZjI5fSwgezB4MTA0MCwgMHgxMDQ5fSwgezB4MTM2OSwgMHgxMzcxfSwgezB4MTdlMCwgMHgxN2U5fSwgCisgICAgezB4MTgxMCwgMHgxODE5fSwgezB4MTk0NiwgMHgxOTRmfSwgezB4ZmYxMCwgMHhmZjE5fSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbE5kTFtdID0ge3sweDEwNGEwLCAweDEwNGE5fSwgezB4MWQ3Y2UsIDB4MWQ3ZmZ9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbE5kRyA9IHsyMSwyLHhtbE5kUyx4bWxOZEx9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sTm9TW10gPSB7ezB4YjIsIDB4YjN9LCB7MHhiOSwgMHhiOX0sIAorICAgIHsweGJjLCAweGJlfSwgezB4OWY0LCAweDlmOX0sIHsweGJmMCwgMHhiZjJ9LCB7MHhmMmEsIDB4ZjMzfSwgCisgICAgezB4MTM3MiwgMHgxMzdjfSwgezB4MTdmMCwgMHgxN2Y5fSwgezB4MjA3MCwgMHgyMDcwfSwgezB4MjA3NCwgMHgyMDc5fSwgCisgICAgezB4MjA4MCwgMHgyMDg5fSwgezB4MjE1MywgMHgyMTVmfSwgezB4MjQ2MCwgMHgyNDlifSwgezB4MjRlYSwgMHgyNGZmfSwgCisgICAgezB4Mjc3NiwgMHgyNzkzfSwgezB4MzE5MiwgMHgzMTk1fSwgezB4MzIyMCwgMHgzMjI5fSwgezB4MzI1MSwgMHgzMjVmfSwgCisgICAgezB4MzI4MCwgMHgzMjg5fSwgezB4MzJiMSwgMHgzMmJmfSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbE5vTFtdID0ge3sweDEwMTA3LCAweDEwMTMzfSwgezB4MTAzMjAsIDB4MTAzMjN9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbE5vRyA9IHsyMCwyLHhtbE5vUyx4bWxOb0x9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sUFNbXSA9IHt7MHgyMSwgMHgyM30sIHsweDI1LCAweDJhfSwgCisgICAgezB4MmMsIDB4MmZ9LCB7MHgzYSwgMHgzYn0sIHsweDNmLCAweDQwfSwgezB4NWIsIDB4NWR9LCB7MHg1ZiwgMHg1Zn0sIAorICAgIHsweDdiLCAweDdifSwgezB4N2QsIDB4N2R9LCB7MHhhMSwgMHhhMX0sIHsweGFiLCAweGFifSwgezB4YjcsIDB4Yjd9LCAKKyAgICB7MHhiYiwgMHhiYn0sIHsweGJmLCAweGJmfSwgezB4MzdlLCAweDM3ZX0sIHsweDM4NywgMHgzODd9LCAKKyAgICB7MHg1NWEsIDB4NTVmfSwgezB4NTg5LCAweDU4YX0sIHsweDViZSwgMHg1YmV9LCB7MHg1YzAsIDB4NWMwfSwgCisgICAgezB4NWMzLCAweDVjM30sIHsweDVmMywgMHg1ZjR9LCB7MHg2MGMsIDB4NjBkfSwgezB4NjFiLCAweDYxYn0sIAorICAgIHsweDYxZiwgMHg2MWZ9LCB7MHg2NmEsIDB4NjZkfSwgezB4NmQ0LCAweDZkNH0sIHsweDcwMCwgMHg3MGR9LCAKKyAgICB7MHg5NjQsIDB4OTY1fSwgezB4OTcwLCAweDk3MH0sIHsweGRmNCwgMHhkZjR9LCB7MHhlNGYsIDB4ZTRmfSwgCisgICAgezB4ZTVhLCAweGU1Yn0sIHsweGYwNCwgMHhmMTJ9LCB7MHhmM2EsIDB4ZjNkfSwgezB4Zjg1LCAweGY4NX0sIAorICAgIHsweDEwNGEsIDB4MTA0Zn0sIHsweDEwZmIsIDB4MTBmYn0sIHsweDEzNjEsIDB4MTM2OH0sIHsweDE2NmQsIDB4MTY2ZX0sIAorICAgIHsweDE2OWIsIDB4MTY5Y30sIHsweDE2ZWIsIDB4MTZlZH0sIHsweDE3MzUsIDB4MTczNn0sIHsweDE3ZDQsIDB4MTdkNn0sIAorICAgIHsweDE3ZDgsIDB4MTdkYX0sIHsweDE4MDAsIDB4MTgwYX0sIHsweDE5NDQsIDB4MTk0NX0sIHsweDIwMTAsIDB4MjAyN30sIAorICAgIHsweDIwMzAsIDB4MjA0M30sIHsweDIwNDUsIDB4MjA1MX0sIHsweDIwNTMsIDB4MjA1NH0sIHsweDIwNTcsIDB4MjA1N30sIAorICAgIHsweDIwN2QsIDB4MjA3ZX0sIHsweDIwOGQsIDB4MjA4ZX0sIHsweDIzMjksIDB4MjMyYX0sIHsweDIzYjQsIDB4MjNiNn0sIAorICAgIHsweDI3NjgsIDB4Mjc3NX0sIHsweDI3ZTYsIDB4MjdlYn0sIHsweDI5ODMsIDB4Mjk5OH0sIHsweDI5ZDgsIDB4MjlkYn0sIAorICAgIHsweDI5ZmMsIDB4MjlmZH0sIHsweDMwMDEsIDB4MzAwM30sIHsweDMwMDgsIDB4MzAxMX0sIHsweDMwMTQsIDB4MzAxZn0sIAorICAgIHsweDMwMzAsIDB4MzAzMH0sIHsweDMwM2QsIDB4MzAzZH0sIHsweDMwYTAsIDB4MzBhMH0sIHsweDMwZmIsIDB4MzBmYn0sIAorICAgIHsweGZkM2UsIDB4ZmQzZn0sIHsweGZlMzAsIDB4ZmU1Mn0sIHsweGZlNTQsIDB4ZmU2MX0sIHsweGZlNjMsIDB4ZmU2M30sIAorICAgIHsweGZlNjgsIDB4ZmU2OH0sIHsweGZlNmEsIDB4ZmU2Yn0sIHsweGZmMDEsIDB4ZmYwM30sIHsweGZmMDUsIDB4ZmYwYX0sIAorICAgIHsweGZmMGMsIDB4ZmYwZn0sIHsweGZmMWEsIDB4ZmYxYn0sIHsweGZmMWYsIDB4ZmYyMH0sIHsweGZmM2IsIDB4ZmYzZH0sIAorICAgIHsweGZmM2YsIDB4ZmYzZn0sIHsweGZmNWIsIDB4ZmY1Yn0sIHsweGZmNWQsIDB4ZmY1ZH0sIHsweGZmNWYsIDB4ZmY2NX0gfTsKK3N0YXRpYyBjb25zdCB4bWxDaExSYW5nZSB4bWxQTFtdID0ge3sweDEwMTAwLCAweDEwMTAxfSwgezB4MTAzOWYsIDB4MTAzOWZ9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbFBHID0gezg0LDIseG1sUFMseG1sUEx9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sUGRTW10gPSB7ezB4MmQsIDB4MmR9LCB7MHg1OGEsIDB4NThhfSwgCisgICAgezB4MTgwNiwgMHgxODA2fSwgezB4MjAxMCwgMHgyMDE1fSwgezB4MzAxYywgMHgzMDFjfSwgezB4MzAzMCwgMHgzMDMwfSwgCisgICAgezB4MzBhMCwgMHgzMGEwfSwgezB4ZmUzMSwgMHhmZTMyfSwgezB4ZmU1OCwgMHhmZTU4fSwgezB4ZmU2MywgMHhmZTYzfSwgCisgICAgezB4ZmYwZCwgMHhmZjBkfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxQZEcgPSB7MTEsMCx4bWxQZFMsTlVMTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxQZVNbXSA9IHt7MHgyOSwgMHgyOX0sIHsweDVkLCAweDVkfSwgCisgICAgezB4N2QsIDB4N2R9LCB7MHhmM2IsIDB4ZjNifSwgezB4ZjNkLCAweGYzZH0sIHsweDE2OWMsIDB4MTY5Y30sIAorICAgIHsweDIwNDYsIDB4MjA0Nn0sIHsweDIwN2UsIDB4MjA3ZX0sIHsweDIwOGUsIDB4MjA4ZX0sIHsweDIzMmEsIDB4MjMyYX0sIAorICAgIHsweDIzYjUsIDB4MjNiNX0sIHsweDI3NjksIDB4Mjc2OX0sIHsweDI3NmIsIDB4Mjc2Yn0sIHsweDI3NmQsIDB4Mjc2ZH0sIAorICAgIHsweDI3NmYsIDB4Mjc2Zn0sIHsweDI3NzEsIDB4Mjc3MX0sIHsweDI3NzMsIDB4Mjc3M30sIHsweDI3NzUsIDB4Mjc3NX0sIAorICAgIHsweDI3ZTcsIDB4MjdlN30sIHsweDI3ZTksIDB4MjdlOX0sIHsweDI3ZWIsIDB4MjdlYn0sIHsweDI5ODQsIDB4Mjk4NH0sIAorICAgIHsweDI5ODYsIDB4Mjk4Nn0sIHsweDI5ODgsIDB4Mjk4OH0sIHsweDI5OGEsIDB4Mjk4YX0sIHsweDI5OGMsIDB4Mjk4Y30sIAorICAgIHsweDI5OGUsIDB4Mjk4ZX0sIHsweDI5OTAsIDB4Mjk5MH0sIHsweDI5OTIsIDB4Mjk5Mn0sIHsweDI5OTQsIDB4Mjk5NH0sIAorICAgIHsweDI5OTYsIDB4Mjk5Nn0sIHsweDI5OTgsIDB4Mjk5OH0sIHsweDI5ZDksIDB4MjlkOX0sIHsweDI5ZGIsIDB4MjlkYn0sIAorICAgIHsweDI5ZmQsIDB4MjlmZH0sIHsweDMwMDksIDB4MzAwOX0sIHsweDMwMGIsIDB4MzAwYn0sIHsweDMwMGQsIDB4MzAwZH0sIAorICAgIHsweDMwMGYsIDB4MzAwZn0sIHsweDMwMTEsIDB4MzAxMX0sIHsweDMwMTUsIDB4MzAxNX0sIHsweDMwMTcsIDB4MzAxN30sIAorICAgIHsweDMwMTksIDB4MzAxOX0sIHsweDMwMWIsIDB4MzAxYn0sIHsweDMwMWUsIDB4MzAxZn0sIHsweGZkM2YsIDB4ZmQzZn0sIAorICAgIHsweGZlMzYsIDB4ZmUzNn0sIHsweGZlMzgsIDB4ZmUzOH0sIHsweGZlM2EsIDB4ZmUzYX0sIHsweGZlM2MsIDB4ZmUzY30sIAorICAgIHsweGZlM2UsIDB4ZmUzZX0sIHsweGZlNDAsIDB4ZmU0MH0sIHsweGZlNDIsIDB4ZmU0Mn0sIHsweGZlNDQsIDB4ZmU0NH0sIAorICAgIHsweGZlNDgsIDB4ZmU0OH0sIHsweGZlNWEsIDB4ZmU1YX0sIHsweGZlNWMsIDB4ZmU1Y30sIHsweGZlNWUsIDB4ZmU1ZX0sIAorICAgIHsweGZmMDksIDB4ZmYwOX0sIHsweGZmM2QsIDB4ZmYzZH0sIHsweGZmNWQsIDB4ZmY1ZH0sIHsweGZmNjAsIDB4ZmY2MH0sIAorICAgIHsweGZmNjMsIDB4ZmY2M30gfTsKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgeG1sUGVHID0gezYzLDAseG1sUGVTLE5VTEx9OworCitzdGF0aWMgY29uc3QgeG1sQ2hTUmFuZ2UgeG1sUG9TW10gPSB7ezB4MjEsIDB4MjN9LCB7MHgyNSwgMHgyN30sIAorICAgIHsweDJhLCAweDJhfSwgezB4MmMsIDB4MmN9LCB7MHgyZSwgMHgyZn0sIHsweDNhLCAweDNifSwgezB4M2YsIDB4NDB9LCAKKyAgICB7MHg1YywgMHg1Y30sIHsweGExLCAweGExfSwgezB4YjcsIDB4Yjd9LCB7MHhiZiwgMHhiZn0sIHsweDM3ZSwgMHgzN2V9LCAKKyAgICB7MHgzODcsIDB4Mzg3fSwgezB4NTVhLCAweDU1Zn0sIHsweDU4OSwgMHg1ODl9LCB7MHg1YmUsIDB4NWJlfSwgCisgICAgezB4NWMwLCAweDVjMH0sIHsweDVjMywgMHg1YzN9LCB7MHg1ZjMsIDB4NWY0fSwgezB4NjBjLCAweDYwZH0sIAorICAgIHsweDYxYiwgMHg2MWJ9LCB7MHg2MWYsIDB4NjFmfSwgezB4NjZhLCAweDY2ZH0sIHsweDZkNCwgMHg2ZDR9LCAKKyAgICB7MHg3MDAsIDB4NzBkfSwgezB4OTY0LCAweDk2NX0sIHsweDk3MCwgMHg5NzB9LCB7MHhkZjQsIDB4ZGY0fSwgCisgICAgezB4ZTRmLCAweGU0Zn0sIHsweGU1YSwgMHhlNWJ9LCB7MHhmMDQsIDB4ZjEyfSwgezB4Zjg1LCAweGY4NX0sIAorICAgIHsweDEwNGEsIDB4MTA0Zn0sIHsweDEwZmIsIDB4MTBmYn0sIHsweDEzNjEsIDB4MTM2OH0sIHsweDE2NmQsIDB4MTY2ZX0sIAorICAgIHsweDE2ZWIsIDB4MTZlZH0sIHsweDE3MzUsIDB4MTczNn0sIHsweDE3ZDQsIDB4MTdkNn0sIHsweDE3ZDgsIDB4MTdkYX0sIAorICAgIHsweDE4MDAsIDB4MTgwNX0sIHsweDE4MDcsIDB4MTgwYX0sIHsweDE5NDQsIDB4MTk0NX0sIHsweDIwMTYsIDB4MjAxN30sIAorICAgIHsweDIwMjAsIDB4MjAyN30sIHsweDIwMzAsIDB4MjAzOH0sIHsweDIwM2IsIDB4MjAzZX0sIHsweDIwNDEsIDB4MjA0M30sIAorICAgIHsweDIwNDcsIDB4MjA1MX0sIHsweDIwNTMsIDB4MjA1M30sIHsweDIwNTcsIDB4MjA1N30sIHsweDIzYjYsIDB4MjNiNn0sIAorICAgIHsweDMwMDEsIDB4MzAwM30sIHsweDMwM2QsIDB4MzAzZH0sIHsweGZlMzAsIDB4ZmUzMH0sIHsweGZlNDUsIDB4ZmU0Nn0sIAorICAgIHsweGZlNDksIDB4ZmU0Y30sIHsweGZlNTAsIDB4ZmU1Mn0sIHsweGZlNTQsIDB4ZmU1N30sIHsweGZlNWYsIDB4ZmU2MX0sIAorICAgIHsweGZlNjgsIDB4ZmU2OH0sIHsweGZlNmEsIDB4ZmU2Yn0sIHsweGZmMDEsIDB4ZmYwM30sIHsweGZmMDUsIDB4ZmYwN30sIAorICAgIHsweGZmMGEsIDB4ZmYwYX0sIHsweGZmMGMsIDB4ZmYwY30sIHsweGZmMGUsIDB4ZmYwZn0sIHsweGZmMWEsIDB4ZmYxYn0sIAorICAgIHsweGZmMWYsIDB4ZmYyMH0sIHsweGZmM2MsIDB4ZmYzY30sIHsweGZmNjEsIDB4ZmY2MX0sIHsweGZmNjQsIDB4ZmY2NH0gfTsKK3N0YXRpYyBjb25zdCB4bWxDaExSYW5nZSB4bWxQb0xbXSA9IHt7MHgxMDEwMCwgMHgxMDEwMX0sIHsweDEwMzlmLCAweDEwMzlmfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxQb0cgPSB7NzIsMix4bWxQb1MseG1sUG9MfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbFBzU1tdID0ge3sweDI4LCAweDI4fSwgezB4NWIsIDB4NWJ9LCAKKyAgICB7MHg3YiwgMHg3Yn0sIHsweGYzYSwgMHhmM2F9LCB7MHhmM2MsIDB4ZjNjfSwgezB4MTY5YiwgMHgxNjlifSwgCisgICAgezB4MjAxYSwgMHgyMDFhfSwgezB4MjAxZSwgMHgyMDFlfSwgezB4MjA0NSwgMHgyMDQ1fSwgezB4MjA3ZCwgMHgyMDdkfSwgCisgICAgezB4MjA4ZCwgMHgyMDhkfSwgezB4MjMyOSwgMHgyMzI5fSwgezB4MjNiNCwgMHgyM2I0fSwgezB4Mjc2OCwgMHgyNzY4fSwgCisgICAgezB4Mjc2YSwgMHgyNzZhfSwgezB4Mjc2YywgMHgyNzZjfSwgezB4Mjc2ZSwgMHgyNzZlfSwgezB4Mjc3MCwgMHgyNzcwfSwgCisgICAgezB4Mjc3MiwgMHgyNzcyfSwgezB4Mjc3NCwgMHgyNzc0fSwgezB4MjdlNiwgMHgyN2U2fSwgezB4MjdlOCwgMHgyN2U4fSwgCisgICAgezB4MjdlYSwgMHgyN2VhfSwgezB4Mjk4MywgMHgyOTgzfSwgezB4Mjk4NSwgMHgyOTg1fSwgezB4Mjk4NywgMHgyOTg3fSwgCisgICAgezB4Mjk4OSwgMHgyOTg5fSwgezB4Mjk4YiwgMHgyOThifSwgezB4Mjk4ZCwgMHgyOThkfSwgezB4Mjk4ZiwgMHgyOThmfSwgCisgICAgezB4Mjk5MSwgMHgyOTkxfSwgezB4Mjk5MywgMHgyOTkzfSwgezB4Mjk5NSwgMHgyOTk1fSwgezB4Mjk5NywgMHgyOTk3fSwgCisgICAgezB4MjlkOCwgMHgyOWQ4fSwgezB4MjlkYSwgMHgyOWRhfSwgezB4MjlmYywgMHgyOWZjfSwgezB4MzAwOCwgMHgzMDA4fSwgCisgICAgezB4MzAwYSwgMHgzMDBhfSwgezB4MzAwYywgMHgzMDBjfSwgezB4MzAwZSwgMHgzMDBlfSwgezB4MzAxMCwgMHgzMDEwfSwgCisgICAgezB4MzAxNCwgMHgzMDE0fSwgezB4MzAxNiwgMHgzMDE2fSwgezB4MzAxOCwgMHgzMDE4fSwgezB4MzAxYSwgMHgzMDFhfSwgCisgICAgezB4MzAxZCwgMHgzMDFkfSwgezB4ZmQzZSwgMHhmZDNlfSwgezB4ZmUzNSwgMHhmZTM1fSwgezB4ZmUzNywgMHhmZTM3fSwgCisgICAgezB4ZmUzOSwgMHhmZTM5fSwgezB4ZmUzYiwgMHhmZTNifSwgezB4ZmUzZCwgMHhmZTNkfSwgezB4ZmUzZiwgMHhmZTNmfSwgCisgICAgezB4ZmU0MSwgMHhmZTQxfSwgezB4ZmU0MywgMHhmZTQzfSwgezB4ZmU0NywgMHhmZTQ3fSwgezB4ZmU1OSwgMHhmZTU5fSwgCisgICAgezB4ZmU1YiwgMHhmZTVifSwgezB4ZmU1ZCwgMHhmZTVkfSwgezB4ZmYwOCwgMHhmZjA4fSwgezB4ZmYzYiwgMHhmZjNifSwgCisgICAgezB4ZmY1YiwgMHhmZjVifSwgezB4ZmY1ZiwgMHhmZjVmfSwgezB4ZmY2MiwgMHhmZjYyfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxQc0cgPSB7NjUsMCx4bWxQc1MsTlVMTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxTU1tdID0ge3sweDI0LCAweDI0fSwgezB4MmIsIDB4MmJ9LCAKKyAgICB7MHgzYywgMHgzZX0sIHsweDVlLCAweDVlfSwgezB4NjAsIDB4NjB9LCB7MHg3YywgMHg3Y30sIHsweDdlLCAweDdlfSwgCisgICAgezB4YTIsIDB4YTl9LCB7MHhhYywgMHhhY30sIHsweGFlLCAweGIxfSwgezB4YjQsIDB4YjR9LCB7MHhiNiwgMHhiNn0sIAorICAgIHsweGI4LCAweGI4fSwgezB4ZDcsIDB4ZDd9LCB7MHhmNywgMHhmN30sIHsweDJjMiwgMHgyYzV9LCAKKyAgICB7MHgyZDIsIDB4MmRmfSwgezB4MmU1LCAweDJlZH0sIHsweDJlZiwgMHgyZmZ9LCB7MHgzNzQsIDB4Mzc1fSwgCisgICAgezB4Mzg0LCAweDM4NX0sIHsweDNmNiwgMHgzZjZ9LCB7MHg0ODIsIDB4NDgyfSwgezB4NjBlLCAweDYwZn0sIAorICAgIHsweDZlOSwgMHg2ZTl9LCB7MHg2ZmQsIDB4NmZlfSwgezB4OWYyLCAweDlmM30sIHsweDlmYSwgMHg5ZmF9LCAKKyAgICB7MHhhZjEsIDB4YWYxfSwgezB4YjcwLCAweGI3MH0sIHsweGJmMywgMHhiZmF9LCB7MHhlM2YsIDB4ZTNmfSwgCisgICAgezB4ZjAxLCAweGYwM30sIHsweGYxMywgMHhmMTd9LCB7MHhmMWEsIDB4ZjFmfSwgezB4ZjM0LCAweGYzNH0sIAorICAgIHsweGYzNiwgMHhmMzZ9LCB7MHhmMzgsIDB4ZjM4fSwgezB4ZmJlLCAweGZjNX0sIHsweGZjNywgMHhmY2N9LCAKKyAgICB7MHhmY2YsIDB4ZmNmfSwgezB4MTdkYiwgMHgxN2RifSwgezB4MTk0MCwgMHgxOTQwfSwgezB4MTllMCwgMHgxOWZmfSwgCisgICAgezB4MWZiZCwgMHgxZmJkfSwgezB4MWZiZiwgMHgxZmMxfSwgezB4MWZjZCwgMHgxZmNmfSwgezB4MWZkZCwgMHgxZmRmfSwgCisgICAgezB4MWZlZCwgMHgxZmVmfSwgezB4MWZmZCwgMHgxZmZlfSwgezB4MjA0NCwgMHgyMDQ0fSwgezB4MjA1MiwgMHgyMDUyfSwgCisgICAgezB4MjA3YSwgMHgyMDdjfSwgezB4MjA4YSwgMHgyMDhjfSwgezB4MjBhMCwgMHgyMGIxfSwgezB4MjEwMCwgMHgyMTAxfSwgCisgICAgezB4MjEwMywgMHgyMTA2fSwgezB4MjEwOCwgMHgyMTA5fSwgezB4MjExNCwgMHgyMTE0fSwgezB4MjExNiwgMHgyMTE4fSwgCisgICAgezB4MjExZSwgMHgyMTIzfSwgezB4MjEyNSwgMHgyMTI1fSwgezB4MjEyNywgMHgyMTI3fSwgezB4MjEyOSwgMHgyMTI5fSwgCisgICAgezB4MjEyZSwgMHgyMTJlfSwgezB4MjEzMiwgMHgyMTMyfSwgezB4MjEzYSwgMHgyMTNifSwgezB4MjE0MCwgMHgyMTQ0fSwgCisgICAgezB4MjE0YSwgMHgyMTRifSwgezB4MjE5MCwgMHgyMzI4fSwgezB4MjMyYiwgMHgyM2IzfSwgezB4MjNiNywgMHgyM2QwfSwgCisgICAgezB4MjQwMCwgMHgyNDI2fSwgezB4MjQ0MCwgMHgyNDRhfSwgezB4MjQ5YywgMHgyNGU5fSwgezB4MjUwMCwgMHgyNjE3fSwgCisgICAgezB4MjYxOSwgMHgyNjdkfSwgezB4MjY4MCwgMHgyNjkxfSwgezB4MjZhMCwgMHgyNmExfSwgezB4MjcwMSwgMHgyNzA0fSwgCisgICAgezB4MjcwNiwgMHgyNzA5fSwgezB4MjcwYywgMHgyNzI3fSwgezB4MjcyOSwgMHgyNzRifSwgezB4Mjc0ZCwgMHgyNzRkfSwgCisgICAgezB4Mjc0ZiwgMHgyNzUyfSwgezB4Mjc1NiwgMHgyNzU2fSwgezB4Mjc1OCwgMHgyNzVlfSwgezB4Mjc2MSwgMHgyNzY3fSwgCisgICAgezB4Mjc5NCwgMHgyNzk0fSwgezB4Mjc5OCwgMHgyN2FmfSwgezB4MjdiMSwgMHgyN2JlfSwgezB4MjdkMCwgMHgyN2U1fSwgCisgICAgezB4MjdmMCwgMHgyOTgyfSwgezB4Mjk5OSwgMHgyOWQ3fSwgezB4MjlkYywgMHgyOWZifSwgezB4MjlmZSwgMHgyYjBkfSwgCisgICAgezB4MmU4MCwgMHgyZTk5fSwgezB4MmU5YiwgMHgyZWYzfSwgezB4MmYwMCwgMHgyZmQ1fSwgezB4MmZmMCwgMHgyZmZifSwgCisgICAgezB4MzAwNCwgMHgzMDA0fSwgezB4MzAxMiwgMHgzMDEzfSwgezB4MzAyMCwgMHgzMDIwfSwgezB4MzAzNiwgMHgzMDM3fSwgCisgICAgezB4MzAzZSwgMHgzMDNmfSwgezB4MzA5YiwgMHgzMDljfSwgezB4MzE5MCwgMHgzMTkxfSwgezB4MzE5NiwgMHgzMTlmfSwgCisgICAgezB4MzIwMCwgMHgzMjFlfSwgezB4MzIyYSwgMHgzMjQzfSwgezB4MzI1MCwgMHgzMjUwfSwgezB4MzI2MCwgMHgzMjdkfSwgCisgICAgezB4MzI3ZiwgMHgzMjdmfSwgezB4MzI4YSwgMHgzMmIwfSwgezB4MzJjMCwgMHgzMmZlfSwgezB4MzMwMCwgMHgzM2ZmfSwgCisgICAgezB4NGRjMCwgMHg0ZGZmfSwgezB4YTQ5MCwgMHhhNGM2fSwgezB4ZmIyOSwgMHhmYjI5fSwgezB4ZmRmYywgMHhmZGZkfSwgCisgICAgezB4ZmU2MiwgMHhmZTYyfSwgezB4ZmU2NCwgMHhmZTY2fSwgezB4ZmU2OSwgMHhmZTY5fSwgezB4ZmYwNCwgMHhmZjA0fSwgCisgICAgezB4ZmYwYiwgMHhmZjBifSwgezB4ZmYxYywgMHhmZjFlfSwgezB4ZmYzZSwgMHhmZjNlfSwgezB4ZmY0MCwgMHhmZjQwfSwgCisgICAgezB4ZmY1YywgMHhmZjVjfSwgezB4ZmY1ZSwgMHhmZjVlfSwgezB4ZmZlMCwgMHhmZmU2fSwgezB4ZmZlOCwgMHhmZmVlfSwgCisgICAgezB4ZmZmYywgMHhmZmZkfSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbFNMW10gPSB7ezB4MTAxMDIsIDB4MTAxMDJ9LCB7MHgxMDEzNywgMHgxMDEzZn0sIAorICAgIHsweDFkMDAwLCAweDFkMGY1fSwgezB4MWQxMDAsIDB4MWQxMjZ9LCB7MHgxZDEyYSwgMHgxZDE2NH0sIAorICAgIHsweDFkMTZhLCAweDFkMTZjfSwgezB4MWQxODMsIDB4MWQxODR9LCB7MHgxZDE4YywgMHgxZDFhOX0sIAorICAgIHsweDFkMWFlLCAweDFkMWRkfSwgezB4MWQzMDAsIDB4MWQzNTZ9LCB7MHgxZDZjMSwgMHgxZDZjMX0sIAorICAgIHsweDFkNmRiLCAweDFkNmRifSwgezB4MWQ2ZmIsIDB4MWQ2ZmJ9LCB7MHgxZDcxNSwgMHgxZDcxNX0sIAorICAgIHsweDFkNzM1LCAweDFkNzM1fSwgezB4MWQ3NGYsIDB4MWQ3NGZ9LCB7MHgxZDc2ZiwgMHgxZDc2Zn0sIAorICAgIHsweDFkNzg5LCAweDFkNzg5fSwgezB4MWQ3YTksIDB4MWQ3YTl9LCB7MHgxZDdjMywgMHgxZDdjM30gfTsKK3N0YXRpYyB4bWxDaFJhbmdlR3JvdXAgeG1sU0cgPSB7MTMzLDIwLHhtbFNTLHhtbFNMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbFNjU1tdID0ge3sweDI0LCAweDI0fSwgezB4YTIsIDB4YTV9LCAKKyAgICB7MHg5ZjIsIDB4OWYzfSwgezB4YWYxLCAweGFmMX0sIHsweGJmOSwgMHhiZjl9LCB7MHhlM2YsIDB4ZTNmfSwgCisgICAgezB4MTdkYiwgMHgxN2RifSwgezB4MjBhMCwgMHgyMGIxfSwgezB4ZmRmYywgMHhmZGZjfSwgezB4ZmU2OSwgMHhmZTY5fSwgCisgICAgezB4ZmYwNCwgMHhmZjA0fSwgezB4ZmZlMCwgMHhmZmUxfSwgezB4ZmZlNSwgMHhmZmU2fSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxTY0cgPSB7MTMsMCx4bWxTY1MsTlVMTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxTa1NbXSA9IHt7MHg1ZSwgMHg1ZX0sIHsweDYwLCAweDYwfSwgCisgICAgezB4YTgsIDB4YTh9LCB7MHhhZiwgMHhhZn0sIHsweGI0LCAweGI0fSwgezB4YjgsIDB4Yjh9LCB7MHgyYzIsIDB4MmM1fSwgCisgICAgezB4MmQyLCAweDJkZn0sIHsweDJlNSwgMHgyZWR9LCB7MHgyZWYsIDB4MmZmfSwgezB4Mzc0LCAweDM3NX0sIAorICAgIHsweDM4NCwgMHgzODV9LCB7MHgxZmJkLCAweDFmYmR9LCB7MHgxZmJmLCAweDFmYzF9LCB7MHgxZmNkLCAweDFmY2Z9LCAKKyAgICB7MHgxZmRkLCAweDFmZGZ9LCB7MHgxZmVkLCAweDFmZWZ9LCB7MHgxZmZkLCAweDFmZmV9LCB7MHgzMDliLCAweDMwOWN9LCAKKyAgICB7MHhmZjNlLCAweGZmM2V9LCB7MHhmZjQwLCAweGZmNDB9LCB7MHhmZmUzLCAweGZmZTN9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbFNrRyA9IHsyMiwwLHhtbFNrUyxOVUxMfTsKKworc3RhdGljIGNvbnN0IHhtbENoU1JhbmdlIHhtbFNtU1tdID0ge3sweDJiLCAweDJifSwgezB4M2MsIDB4M2V9LCAKKyAgICB7MHg3YywgMHg3Y30sIHsweDdlLCAweDdlfSwgezB4YWMsIDB4YWN9LCB7MHhiMSwgMHhiMX0sIHsweGQ3LCAweGQ3fSwgCisgICAgezB4ZjcsIDB4Zjd9LCB7MHgzZjYsIDB4M2Y2fSwgezB4MjA0NCwgMHgyMDQ0fSwgezB4MjA1MiwgMHgyMDUyfSwgCisgICAgezB4MjA3YSwgMHgyMDdjfSwgezB4MjA4YSwgMHgyMDhjfSwgezB4MjE0MCwgMHgyMTQ0fSwgezB4MjE0YiwgMHgyMTRifSwgCisgICAgezB4MjE5MCwgMHgyMTk0fSwgezB4MjE5YSwgMHgyMTlifSwgezB4MjFhMCwgMHgyMWEwfSwgezB4MjFhMywgMHgyMWEzfSwgCisgICAgezB4MjFhNiwgMHgyMWE2fSwgezB4MjFhZSwgMHgyMWFlfSwgezB4MjFjZSwgMHgyMWNmfSwgezB4MjFkMiwgMHgyMWQyfSwgCisgICAgezB4MjFkNCwgMHgyMWQ0fSwgezB4MjFmNCwgMHgyMmZmfSwgezB4MjMwOCwgMHgyMzBifSwgezB4MjMyMCwgMHgyMzIxfSwgCisgICAgezB4MjM3YywgMHgyMzdjfSwgezB4MjM5YiwgMHgyM2IzfSwgezB4MjViNywgMHgyNWI3fSwgezB4MjVjMSwgMHgyNWMxfSwgCisgICAgezB4MjVmOCwgMHgyNWZmfSwgezB4MjY2ZiwgMHgyNjZmfSwgezB4MjdkMCwgMHgyN2U1fSwgezB4MjdmMCwgMHgyN2ZmfSwgCisgICAgezB4MjkwMCwgMHgyOTgyfSwgezB4Mjk5OSwgMHgyOWQ3fSwgezB4MjlkYywgMHgyOWZifSwgezB4MjlmZSwgMHgyYWZmfSwgCisgICAgezB4ZmIyOSwgMHhmYjI5fSwgezB4ZmU2MiwgMHhmZTYyfSwgezB4ZmU2NCwgMHhmZTY2fSwgezB4ZmYwYiwgMHhmZjBifSwgCisgICAgezB4ZmYxYywgMHhmZjFlfSwgezB4ZmY1YywgMHhmZjVjfSwgezB4ZmY1ZSwgMHhmZjVlfSwgezB4ZmZlMiwgMHhmZmUyfSwgCisgICAgezB4ZmZlOSwgMHhmZmVjfSB9Oworc3RhdGljIGNvbnN0IHhtbENoTFJhbmdlIHhtbFNtTFtdID0ge3sweDFkNmMxLCAweDFkNmMxfSwgezB4MWQ2ZGIsIDB4MWQ2ZGJ9LCAKKyAgICB7MHgxZDZmYiwgMHgxZDZmYn0sIHsweDFkNzE1LCAweDFkNzE1fSwgezB4MWQ3MzUsIDB4MWQ3MzV9LCAKKyAgICB7MHgxZDc0ZiwgMHgxZDc0Zn0sIHsweDFkNzZmLCAweDFkNzZmfSwgezB4MWQ3ODksIDB4MWQ3ODl9LCAKKyAgICB7MHgxZDdhOSwgMHgxZDdhOX0sIHsweDFkN2MzLCAweDFkN2MzfSB9Oworc3RhdGljIHhtbENoUmFuZ2VHcm91cCB4bWxTbUcgPSB7NDgsMTAseG1sU21TLHhtbFNtTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxTb1NbXSA9IHt7MHhhNiwgMHhhN30sIHsweGE5LCAweGE5fSwgCisgICAgezB4YWUsIDB4YWV9LCB7MHhiMCwgMHhiMH0sIHsweGI2LCAweGI2fSwgezB4NDgyLCAweDQ4Mn0sIAorICAgIHsweDYwZSwgMHg2MGZ9LCB7MHg2ZTksIDB4NmU5fSwgezB4NmZkLCAweDZmZX0sIHsweDlmYSwgMHg5ZmF9LCAKKyAgICB7MHhiNzAsIDB4YjcwfSwgezB4YmYzLCAweGJmOH0sIHsweGJmYSwgMHhiZmF9LCB7MHhmMDEsIDB4ZjAzfSwgCisgICAgezB4ZjEzLCAweGYxN30sIHsweGYxYSwgMHhmMWZ9LCB7MHhmMzQsIDB4ZjM0fSwgezB4ZjM2LCAweGYzNn0sIAorICAgIHsweGYzOCwgMHhmMzh9LCB7MHhmYmUsIDB4ZmM1fSwgezB4ZmM3LCAweGZjY30sIHsweGZjZiwgMHhmY2Z9LCAKKyAgICB7MHgxOTQwLCAweDE5NDB9LCB7MHgxOWUwLCAweDE5ZmZ9LCB7MHgyMTAwLCAweDIxMDF9LCB7MHgyMTAzLCAweDIxMDZ9LCAKKyAgICB7MHgyMTA4LCAweDIxMDl9LCB7MHgyMTE0LCAweDIxMTR9LCB7MHgyMTE2LCAweDIxMTh9LCB7MHgyMTFlLCAweDIxMjN9LCAKKyAgICB7MHgyMTI1LCAweDIxMjV9LCB7MHgyMTI3LCAweDIxMjd9LCB7MHgyMTI5LCAweDIxMjl9LCB7MHgyMTJlLCAweDIxMmV9LCAKKyAgICB7MHgyMTMyLCAweDIxMzJ9LCB7MHgyMTNhLCAweDIxM2J9LCB7MHgyMTRhLCAweDIxNGF9LCB7MHgyMTk1LCAweDIxOTl9LCAKKyAgICB7MHgyMTljLCAweDIxOWZ9LCB7MHgyMWExLCAweDIxYTJ9LCB7MHgyMWE0LCAweDIxYTV9LCB7MHgyMWE3LCAweDIxYWR9LCAKKyAgICB7MHgyMWFmLCAweDIxY2R9LCB7MHgyMWQwLCAweDIxZDF9LCB7MHgyMWQzLCAweDIxZDN9LCB7MHgyMWQ1LCAweDIxZjN9LCAKKyAgICB7MHgyMzAwLCAweDIzMDd9LCB7MHgyMzBjLCAweDIzMWZ9LCB7MHgyMzIyLCAweDIzMjh9LCB7MHgyMzJiLCAweDIzN2J9LCAKKyAgICB7MHgyMzdkLCAweDIzOWF9LCB7MHgyM2I3LCAweDIzZDB9LCB7MHgyNDAwLCAweDI0MjZ9LCB7MHgyNDQwLCAweDI0NGF9LCAKKyAgICB7MHgyNDljLCAweDI0ZTl9LCB7MHgyNTAwLCAweDI1YjZ9LCB7MHgyNWI4LCAweDI1YzB9LCB7MHgyNWMyLCAweDI1Zjd9LCAKKyAgICB7MHgyNjAwLCAweDI2MTd9LCB7MHgyNjE5LCAweDI2NmV9LCB7MHgyNjcwLCAweDI2N2R9LCB7MHgyNjgwLCAweDI2OTF9LCAKKyAgICB7MHgyNmEwLCAweDI2YTF9LCB7MHgyNzAxLCAweDI3MDR9LCB7MHgyNzA2LCAweDI3MDl9LCB7MHgyNzBjLCAweDI3Mjd9LCAKKyAgICB7MHgyNzI5LCAweDI3NGJ9LCB7MHgyNzRkLCAweDI3NGR9LCB7MHgyNzRmLCAweDI3NTJ9LCB7MHgyNzU2LCAweDI3NTZ9LCAKKyAgICB7MHgyNzU4LCAweDI3NWV9LCB7MHgyNzYxLCAweDI3Njd9LCB7MHgyNzk0LCAweDI3OTR9LCB7MHgyNzk4LCAweDI3YWZ9LCAKKyAgICB7MHgyN2IxLCAweDI3YmV9LCB7MHgyODAwLCAweDI4ZmZ9LCB7MHgyYjAwLCAweDJiMGR9LCB7MHgyZTgwLCAweDJlOTl9LCAKKyAgICB7MHgyZTliLCAweDJlZjN9LCB7MHgyZjAwLCAweDJmZDV9LCB7MHgyZmYwLCAweDJmZmJ9LCB7MHgzMDA0LCAweDMwMDR9LCAKKyAgICB7MHgzMDEyLCAweDMwMTN9LCB7MHgzMDIwLCAweDMwMjB9LCB7MHgzMDM2LCAweDMwMzd9LCB7MHgzMDNlLCAweDMwM2Z9LCAKKyAgICB7MHgzMTkwLCAweDMxOTF9LCB7MHgzMTk2LCAweDMxOWZ9LCB7MHgzMjAwLCAweDMyMWV9LCB7MHgzMjJhLCAweDMyNDN9LCAKKyAgICB7MHgzMjUwLCAweDMyNTB9LCB7MHgzMjYwLCAweDMyN2R9LCB7MHgzMjdmLCAweDMyN2Z9LCB7MHgzMjhhLCAweDMyYjB9LCAKKyAgICB7MHgzMmMwLCAweDMyZmV9LCB7MHgzMzAwLCAweDMzZmZ9LCB7MHg0ZGMwLCAweDRkZmZ9LCB7MHhhNDkwLCAweGE0YzZ9LCAKKyAgICB7MHhmZGZkLCAweGZkZmR9LCB7MHhmZmU0LCAweGZmZTR9LCB7MHhmZmU4LCAweGZmZTh9LCB7MHhmZmVkLCAweGZmZWV9LCAKKyAgICB7MHhmZmZjLCAweGZmZmR9IH07CitzdGF0aWMgY29uc3QgeG1sQ2hMUmFuZ2UgeG1sU29MW10gPSB7ezB4MTAxMDIsIDB4MTAxMDJ9LCB7MHgxMDEzNywgMHgxMDEzZn0sIAorICAgIHsweDFkMDAwLCAweDFkMGY1fSwgezB4MWQxMDAsIDB4MWQxMjZ9LCB7MHgxZDEyYSwgMHgxZDE2NH0sIAorICAgIHsweDFkMTZhLCAweDFkMTZjfSwgezB4MWQxODMsIDB4MWQxODR9LCB7MHgxZDE4YywgMHgxZDFhOX0sIAorICAgIHsweDFkMWFlLCAweDFkMWRkfSwgezB4MWQzMDAsIDB4MWQzNTZ9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbFNvRyA9IHsxMDMsMTAseG1sU29TLHhtbFNvTH07CisKK3N0YXRpYyBjb25zdCB4bWxDaFNSYW5nZSB4bWxaU1tdID0ge3sweDIwLCAweDIwfSwgezB4YTAsIDB4YTB9LCAKKyAgICB7MHgxNjgwLCAweDE2ODB9LCB7MHgxODBlLCAweDE4MGV9LCB7MHgyMDAwLCAweDIwMGF9LCB7MHgyMDI4LCAweDIwMjl9LCAKKyAgICB7MHgyMDJmLCAweDIwMmZ9LCB7MHgyMDVmLCAweDIwNWZ9LCB7MHgzMDAwLCAweDMwMDB9IH07CitzdGF0aWMgeG1sQ2hSYW5nZUdyb3VwIHhtbFpHID0gezksMCx4bWxaUyxOVUxMfTsKKworc3RhdGljIHhtbFVuaWNvZGVOYW1lVGFibGUgeG1sVW5pY29kZUJsb2NrVGJsID0ge3htbFVuaWNvZGVCbG9ja3MsIDEyOH07CitzdGF0aWMgeG1sVW5pY29kZU5hbWVUYWJsZSB4bWxVbmljb2RlQ2F0VGJsID0ge3htbFVuaWNvZGVDYXRzLCAzNn07CisKKy8qKgorICogeG1sVW5pY29kZUxvb2t1cDoKKyAqIEB0cHRyOiBwb2ludGVyIHRvIHRoZSBuYW1lIHRhYmxlCisgKiBAbmFtZTogbmFtZSB0byBiZSBmb3VuZAorICoKKyAqIGJpbmFyeSB0YWJsZSBsb29rdXAgZm9yIHVzZXItc3VwcGxpZWQgbmFtZQorICoKKyAqIFJldHVybnMgcG9pbnRlciB0byByYW5nZSBmdW5jdGlvbiBpZiBmb3VuZCwgb3RoZXJ3aXNlIE5VTEwKKyAqLworc3RhdGljIHhtbEludEZ1bmMKKyp4bWxVbmljb2RlTG9va3VwKHhtbFVuaWNvZGVOYW1lVGFibGUgKnRwdHIsIGNvbnN0IGNoYXIgKnRuYW1lKSB7CisgICAgaW50IGxvdywgaGlnaCwgbWlkLCBjbXA7CisgICAgeG1sVW5pY29kZVJhbmdlICpzcHRyOworCisgICAgaWYgKCh0cHRyID09IE5VTEwpIHx8ICh0bmFtZSA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworCisgICAgbG93ID0gMDsKKyAgICBoaWdoID0gdHB0ci0+bnVtZW50cmllcyAtIDE7CisgICAgc3B0ciA9IHRwdHItPnRhYmxlOworICAgIHdoaWxlIChsb3cgPD0gaGlnaCkgeworCW1pZCA9IChsb3cgKyBoaWdoKSAvIDI7CisJaWYgKChjbXA9c3RyY21wKHRuYW1lLCBzcHRyW21pZF0ucmFuZ2VuYW1lKSkgPT0gMCkKKwkgICAgcmV0dXJuIChzcHRyW21pZF0uZnVuYyk7CisJaWYgKGNtcCA8IDApCisJICAgIGhpZ2ggPSBtaWQgLSAxOworCWVsc2UKKwkgICAgbG93ID0gbWlkICsgMTsKKyAgICB9CisgICAgcmV0dXJuIChOVUxMKTsgICAgCit9CisKKy8qKgorICogeG1sVUNTSXNBZWdlYW5OdW1iZXJzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQWVnZWFuTnVtYmVycyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQWVnZWFuTnVtYmVycyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxMDEwMCkgJiYgKGNvZGUgPD0gMHgxMDEzRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0FscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFscGhhYmV0aWNQcmVzZW50YXRpb25Gb3JtcyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQWxwaGFiZXRpY1ByZXNlbnRhdGlvbkZvcm1zKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweEZCMDApICYmIChjb2RlIDw9IDB4RkI0RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0FyYWJpYzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFyYWJpYyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQXJhYmljKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDA2MDApICYmIChjb2RlIDw9IDB4MDZGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEFyYWJpY1ByZXNlbnRhdGlvbkZvcm1zLUEgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0FyYWJpY1ByZXNlbnRhdGlvbkZvcm1zQShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhGQjUwKSAmJiAoY29kZSA8PSAweEZERkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0I6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcmFiaWNQcmVzZW50YXRpb25Gb3Jtcy1CIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNBcmFiaWNQcmVzZW50YXRpb25Gb3Jtc0IoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4RkU3MCkgJiYgKGNvZGUgPD0gMHhGRUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQXJtZW5pYW46CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBBcm1lbmlhbiBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQXJtZW5pYW4oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDUzMCkgJiYgKGNvZGUgPD0gMHgwNThGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQXJyb3dzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQXJyb3dzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNBcnJvd3MoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjE5MCkgJiYgKGNvZGUgPD0gMHgyMUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQmFzaWNMYXRpbjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJhc2ljTGF0aW4gVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0Jhc2ljTGF0aW4oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDAwMCkgJiYgKGNvZGUgPD0gMHgwMDdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQmVuZ2FsaToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJlbmdhbGkgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0JlbmdhbGkoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDk4MCkgJiYgKGNvZGUgPD0gMHgwOUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQmxvY2tFbGVtZW50czoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJsb2NrRWxlbWVudHMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0Jsb2NrRWxlbWVudHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjU4MCkgJiYgKGNvZGUgPD0gMHgyNTlGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQm9wb21vZm86CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCb3BvbW9mbyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQm9wb21vZm8oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MzEwMCkgJiYgKGNvZGUgPD0gMHgzMTJGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQm9wb21vZm9FeHRlbmRlZDoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJvcG9tb2ZvRXh0ZW5kZWQgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0JvcG9tb2ZvRXh0ZW5kZWQoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MzFBMCkgJiYgKGNvZGUgPD0gMHgzMUJGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQm94RHJhd2luZzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEJveERyYXdpbmcgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0JveERyYXdpbmcoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjUwMCkgJiYgKGNvZGUgPD0gMHgyNTdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQnJhaWxsZVBhdHRlcm5zOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQnJhaWxsZVBhdHRlcm5zIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNCcmFpbGxlUGF0dGVybnMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjgwMCkgJiYgKGNvZGUgPD0gMHgyOEZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQnVoaWQ6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCdWhpZCBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQnVoaWQoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTc0MCkgJiYgKGNvZGUgPD0gMHgxNzVGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBCeXphbnRpbmVNdXNpY2FsU3ltYm9scyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQnl6YW50aW5lTXVzaWNhbFN5bWJvbHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MUQwMDApICYmIChjb2RlIDw9IDB4MUQwRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5OgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLQ29tcGF0aWJpbGl0eSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ0pLQ29tcGF0aWJpbGl0eShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgzMzAwKSAmJiAoY29kZSA8PSAweDMzRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5Rm9ybXM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktDb21wYXRpYmlsaXR5Rm9ybXMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlGb3JtcyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhGRTMwKSAmJiAoY29kZSA8PSAweEZFNEYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBocyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhGOTAwKSAmJiAoY29kZSA8PSAweEZBRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQ6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDSktDb21wYXRpYmlsaXR5SWRlb2dyYXBoc1N1cHBsZW1lbnQgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NKS0NvbXBhdGliaWxpdHlJZGVvZ3JhcGhzU3VwcGxlbWVudChpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgyRjgwMCkgJiYgKGNvZGUgPD0gMHgyRkExRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NKS1JhZGljYWxzU3VwcGxlbWVudDoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1JhZGljYWxzU3VwcGxlbWVudCBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ0pLUmFkaWNhbHNTdXBwbGVtZW50KGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDJFODApICYmIChjb2RlIDw9IDB4MkVGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1N5bWJvbHNhbmRQdW5jdHVhdGlvbiBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ0pLU3ltYm9sc2FuZFB1bmN0dWF0aW9uKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDMwMDApICYmIChjb2RlIDw9IDB4MzAzRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ0pLVW5pZmllZElkZW9ncmFwaHMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDRFMDApICYmIChjb2RlIDw9IDB4OUZGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25BKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDM0MDApICYmIChjb2RlIDw9IDB4NERCRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENKS1VuaWZpZWRJZGVvZ3JhcGhzRXh0ZW5zaW9uQiBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ0pLVW5pZmllZElkZW9ncmFwaHNFeHRlbnNpb25CKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDIwMDAwKSAmJiAoY29kZSA8PSAweDJBNkRGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2hlcm9rZWU6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDaGVyb2tlZSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2hlcm9rZWUoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTNBMCkgJiYgKGNvZGUgPD0gMHgxM0ZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3MoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDMwMCkgJiYgKGNvZGUgPD0gMHgwMzZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzZm9yU3ltYm9scyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ29tYmluaW5nRGlhY3JpdGljYWxNYXJrc2ZvclN5bWJvbHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjBEMCkgJiYgKGNvZGUgPD0gMHgyMEZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ29tYmluaW5nSGFsZk1hcmtzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ29tYmluaW5nSGFsZk1hcmtzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDb21iaW5pbmdIYWxmTWFya3MoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4RkUyMCkgJiYgKGNvZGUgPD0gMHhGRTJGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ29tYmluaW5nTWFya3Nmb3JTeW1ib2xzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDb21iaW5pbmdNYXJrc2ZvclN5bWJvbHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjBEMCkgJiYgKGNvZGUgPD0gMHgyMEZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ29udHJvbFBpY3R1cmVzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ29udHJvbFBpY3R1cmVzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDb250cm9sUGljdHVyZXMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjQwMCkgJiYgKGNvZGUgPD0gMHgyNDNGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ3VycmVuY3lTeW1ib2xzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3VycmVuY3lTeW1ib2xzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDdXJyZW5jeVN5bWJvbHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjBBMCkgJiYgKGNvZGUgPD0gMHgyMENGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ3lwcmlvdFN5bGxhYmFyeToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEN5cHJpb3RTeWxsYWJhcnkgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0N5cHJpb3RTeWxsYWJhcnkoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTA4MDApICYmIChjb2RlIDw9IDB4MTA4M0YpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDeXJpbGxpYzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEN5cmlsbGljIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDeXJpbGxpYyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgwNDAwKSAmJiAoY29kZSA8PSAweDA0RkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDeXJpbGxpY1N1cHBsZW1lbnQ6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDeXJpbGxpY1N1cHBsZW1lbnQgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0N5cmlsbGljU3VwcGxlbWVudChpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgwNTAwKSAmJiAoY29kZSA8PSAweDA1MkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNEZXNlcmV0OgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRGVzZXJldCBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzRGVzZXJldChpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxMDQwMCkgJiYgKGNvZGUgPD0gMHgxMDQ0RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0RldmFuYWdhcmk6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBEZXZhbmFnYXJpIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNEZXZhbmFnYXJpKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDA5MDApICYmIChjb2RlIDw9IDB4MDk3RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0RpbmdiYXRzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRGluZ2JhdHMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0RpbmdiYXRzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDI3MDApICYmIChjb2RlIDw9IDB4MjdCRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0VuY2xvc2VkQWxwaGFudW1lcmljczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEVuY2xvc2VkQWxwaGFudW1lcmljcyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzRW5jbG9zZWRBbHBoYW51bWVyaWNzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDI0NjApICYmIChjb2RlIDw9IDB4MjRGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0VuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRoczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEVuY2xvc2VkQ0pLTGV0dGVyc2FuZE1vbnRocyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzRW5jbG9zZWRDSktMZXR0ZXJzYW5kTW9udGhzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDMyMDApICYmIChjb2RlIDw9IDB4MzJGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0V0aGlvcGljOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgRXRoaW9waWMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0V0aGlvcGljKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDEyMDApICYmIChjb2RlIDw9IDB4MTM3RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0dlbmVyYWxQdW5jdHVhdGlvbjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdlbmVyYWxQdW5jdHVhdGlvbiBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzR2VuZXJhbFB1bmN0dWF0aW9uKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDIwMDApICYmIChjb2RlIDw9IDB4MjA2RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0dlb21ldHJpY1NoYXBlczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdlb21ldHJpY1NoYXBlcyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzR2VvbWV0cmljU2hhcGVzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDI1QTApICYmIChjb2RlIDw9IDB4MjVGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0dlb3JnaWFuOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgR2VvcmdpYW4gVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0dlb3JnaWFuKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDEwQTApICYmIChjb2RlIDw9IDB4MTBGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0dvdGhpYzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdvdGhpYyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzR290aGljKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDEwMzMwKSAmJiAoY29kZSA8PSAweDEwMzRGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzR3JlZWs6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHcmVlayBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzR3JlZWsoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDM3MCkgJiYgKGNvZGUgPD0gMHgwM0ZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzR3JlZWtFeHRlbmRlZDoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEdyZWVrRXh0ZW5kZWQgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0dyZWVrRXh0ZW5kZWQoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MUYwMCkgJiYgKGNvZGUgPD0gMHgxRkZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzR3JlZWthbmRDb3B0aWM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHcmVla2FuZENvcHRpYyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzR3JlZWthbmRDb3B0aWMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDM3MCkgJiYgKGNvZGUgPD0gMHgwM0ZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzR3VqYXJhdGk6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHdWphcmF0aSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzR3VqYXJhdGkoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEE4MCkgJiYgKGNvZGUgPD0gMHgwQUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzR3VybXVraGk6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBHdXJtdWtoaSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzR3VybXVraGkoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEEwMCkgJiYgKGNvZGUgPD0gMHgwQTdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIYWxmd2lkdGhhbmRGdWxsd2lkdGhGb3JtcyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzSGFsZndpZHRoYW5kRnVsbHdpZHRoRm9ybXMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4RkYwMCkgJiYgKGNvZGUgPD0gMHhGRkVGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW86CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIYW5ndWxDb21wYXRpYmlsaXR5SmFtbyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzSGFuZ3VsQ29tcGF0aWJpbGl0eUphbW8oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MzEzMCkgJiYgKGNvZGUgPD0gMHgzMThGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGFuZ3VsSmFtbzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbmd1bEphbW8gVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0hhbmd1bEphbW8oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTEwMCkgJiYgKGNvZGUgPD0gMHgxMUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGFuZ3VsU3lsbGFibGVzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGFuZ3VsU3lsbGFibGVzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNIYW5ndWxTeWxsYWJsZXMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4QUMwMCkgJiYgKGNvZGUgPD0gMHhEN0FGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGFudW5vbzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEhhbnVub28gVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0hhbnVub28oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTcyMCkgJiYgKGNvZGUgPD0gMHgxNzNGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGVicmV3OgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGVicmV3IFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNIZWJyZXcoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDU5MCkgJiYgKGNvZGUgPD0gMHgwNUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgSGlnaFByaXZhdGVVc2VTdXJyb2dhdGVzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNIaWdoUHJpdmF0ZVVzZVN1cnJvZ2F0ZXMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4REI4MCkgJiYgKGNvZGUgPD0gMHhEQkZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGlnaFN1cnJvZ2F0ZXM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIaWdoU3Vycm9nYXRlcyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzSGlnaFN1cnJvZ2F0ZXMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4RDgwMCkgJiYgKGNvZGUgPD0gMHhEQjdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSGlyYWdhbmE6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBIaXJhZ2FuYSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzSGlyYWdhbmEoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MzA0MCkgJiYgKGNvZGUgPD0gMHgzMDlGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSVBBRXh0ZW5zaW9uczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIElQQUV4dGVuc2lvbnMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0lQQUV4dGVuc2lvbnMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDI1MCkgJiYgKGNvZGUgPD0gMHgwMkFGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBJZGVvZ3JhcGhpY0Rlc2NyaXB0aW9uQ2hhcmFjdGVycyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzSWRlb2dyYXBoaWNEZXNjcmlwdGlvbkNoYXJhY3RlcnMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MkZGMCkgJiYgKGNvZGUgPD0gMHgyRkZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzS2FuYnVuOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2FuYnVuIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNLYW5idW4oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MzE5MCkgJiYgKGNvZGUgPD0gMHgzMTlGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzS2FuZ3hpUmFkaWNhbHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLYW5neGlSYWRpY2FscyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzS2FuZ3hpUmFkaWNhbHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MkYwMCkgJiYgKGNvZGUgPD0gMHgyRkRGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzS2FubmFkYToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEthbm5hZGEgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0thbm5hZGEoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEM4MCkgJiYgKGNvZGUgPD0gMHgwQ0ZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzS2F0YWthbmE6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLYXRha2FuYSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzS2F0YWthbmEoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MzBBMCkgJiYgKGNvZGUgPD0gMHgzMEZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLYXRha2FuYVBob25ldGljRXh0ZW5zaW9ucyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzS2F0YWthbmFQaG9uZXRpY0V4dGVuc2lvbnMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MzFGMCkgJiYgKGNvZGUgPD0gMHgzMUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzS2htZXI6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBLaG1lciBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzS2htZXIoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTc4MCkgJiYgKGNvZGUgPD0gMHgxN0ZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzS2htZXJTeW1ib2xzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgS2htZXJTeW1ib2xzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNLaG1lclN5bWJvbHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTlFMCkgJiYgKGNvZGUgPD0gMHgxOUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTGFvOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGFvIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNMYW8oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEU4MCkgJiYgKGNvZGUgPD0gMHgwRUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTGF0aW4xU3VwcGxlbWVudDoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExhdGluLTFTdXBwbGVtZW50IFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNMYXRpbjFTdXBwbGVtZW50KGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDAwODApICYmIChjb2RlIDw9IDB4MDBGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0xhdGluRXh0ZW5kZWRBOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGF0aW5FeHRlbmRlZC1BIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNMYXRpbkV4dGVuZGVkQShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgwMTAwKSAmJiAoY29kZSA8PSAweDAxN0YpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNMYXRpbkV4dGVuZGVkQjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExhdGluRXh0ZW5kZWQtQiBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTGF0aW5FeHRlbmRlZEIoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDE4MCkgJiYgKGNvZGUgPD0gMHgwMjRGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWw6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMYXRpbkV4dGVuZGVkQWRkaXRpb25hbCBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTGF0aW5FeHRlbmRlZEFkZGl0aW9uYWwoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MUUwMCkgJiYgKGNvZGUgPD0gMHgxRUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTGV0dGVybGlrZVN5bWJvbHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMZXR0ZXJsaWtlU3ltYm9scyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTGV0dGVybGlrZVN5bWJvbHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjEwMCkgJiYgKGNvZGUgPD0gMHgyMTRGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTGltYnU6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMaW1idSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTGltYnUoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTkwMCkgJiYgKGNvZGUgPD0gMHgxOTRGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTGluZWFyQklkZW9ncmFtczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExpbmVhckJJZGVvZ3JhbXMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0xpbmVhckJJZGVvZ3JhbXMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTAwODApICYmIChjb2RlIDw9IDB4MTAwRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNMaW5lYXJCU3lsbGFiYXJ5OgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTGluZWFyQlN5bGxhYmFyeSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTGluZWFyQlN5bGxhYmFyeShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxMDAwMCkgJiYgKGNvZGUgPD0gMHgxMDA3RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0xvd1N1cnJvZ2F0ZXM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMb3dTdXJyb2dhdGVzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNMb3dTdXJyb2dhdGVzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweERDMDApICYmIChjb2RlIDw9IDB4REZGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc01hbGF5YWxhbToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1hbGF5YWxhbSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTWFsYXlhbGFtKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDBEMDApICYmIChjb2RlIDw9IDB4MEQ3RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc01hdGhlbWF0aWNhbEFscGhhbnVtZXJpY1N5bWJvbHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNNYXRoZW1hdGljYWxBbHBoYW51bWVyaWNTeW1ib2xzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDFENDAwKSAmJiAoY29kZSA8PSAweDFEN0ZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTWF0aGVtYXRpY2FsT3BlcmF0b3JzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWF0aGVtYXRpY2FsT3BlcmF0b3JzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNNYXRoZW1hdGljYWxPcGVyYXRvcnMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjIwMCkgJiYgKGNvZGUgPD0gMHgyMkZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHMtQSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTWlzY2VsbGFuZW91c01hdGhlbWF0aWNhbFN5bWJvbHNBKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDI3QzApICYmIChjb2RlIDw9IDB4MjdFRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzLUIgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc01pc2NlbGxhbmVvdXNNYXRoZW1hdGljYWxTeW1ib2xzQihpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgyOTgwKSAmJiAoY29kZSA8PSAweDI5RkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNTeW1ib2xzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9scyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgyNjAwKSAmJiAoY29kZSA8PSAweDI2RkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93czoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1pc2NlbGxhbmVvdXNTeW1ib2xzYW5kQXJyb3dzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNNaXNjZWxsYW5lb3VzU3ltYm9sc2FuZEFycm93cyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgyQjAwKSAmJiAoY29kZSA8PSAweDJCRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNNaXNjZWxsYW5lb3VzVGVjaG5pY2FsOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWlzY2VsbGFuZW91c1RlY2huaWNhbCBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzTWlzY2VsbGFuZW91c1RlY2huaWNhbChpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgyMzAwKSAmJiAoY29kZSA8PSAweDIzRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNNb25nb2xpYW46CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNb25nb2xpYW4gVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc01vbmdvbGlhbihpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxODAwKSAmJiAoY29kZSA8PSAweDE4QUYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNNdXNpY2FsU3ltYm9sczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE11c2ljYWxTeW1ib2xzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNNdXNpY2FsU3ltYm9scyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxRDEwMCkgJiYgKGNvZGUgPD0gMHgxRDFGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc015YW5tYXI6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNeWFubWFyIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNNeWFubWFyKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDEwMDApICYmIChjb2RlIDw9IDB4MTA5RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc051bWJlckZvcm1zOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTnVtYmVyRm9ybXMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc051bWJlckZvcm1zKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDIxNTApICYmIChjb2RlIDw9IDB4MjE4RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc09naGFtOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgT2doYW0gVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc09naGFtKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDE2ODApICYmIChjb2RlIDw9IDB4MTY5RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc09sZEl0YWxpYzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE9sZEl0YWxpYyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzT2xkSXRhbGljKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDEwMzAwKSAmJiAoY29kZSA8PSAweDEwMzJGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgT3B0aWNhbENoYXJhY3RlclJlY29nbml0aW9uIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNPcHRpY2FsQ2hhcmFjdGVyUmVjb2duaXRpb24oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjQ0MCkgJiYgKGNvZGUgPD0gMHgyNDVGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzT3JpeWE6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBPcml5YSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzT3JpeWEoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEIwMCkgJiYgKGNvZGUgPD0gMHgwQjdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzT3NtYW55YToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE9zbWFueWEgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc09zbWFueWEoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTA0ODApICYmIChjb2RlIDw9IDB4MTA0QUYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNQaG9uZXRpY0V4dGVuc2lvbnM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQaG9uZXRpY0V4dGVuc2lvbnMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1Bob25ldGljRXh0ZW5zaW9ucyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxRDAwKSAmJiAoY29kZSA8PSAweDFEN0YpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNQcml2YXRlVXNlOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUHJpdmF0ZVVzZSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzUHJpdmF0ZVVzZShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhFMDAwKSAmJiAoY29kZSA8PSAweEY4RkYpKSB8fAorICAgICAgICAgICAoKGNvZGUgPj0gMHhGMDAwMCkgJiYgKGNvZGUgPD0gMHhGRkZGRikpIHx8CisgICAgICAgICAgICgoY29kZSA+PSAweDEwMDAwMCkgJiYgKGNvZGUgPD0gMHgxMEZGRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNQcml2YXRlVXNlQXJlYToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFByaXZhdGVVc2VBcmVhIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNQcml2YXRlVXNlQXJlYShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhFMDAwKSAmJiAoY29kZSA8PSAweEY4RkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNSdW5pYzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFJ1bmljIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNSdW5pYyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxNkEwKSAmJiAoY29kZSA8PSAweDE2RkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNTaGF2aWFuOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU2hhdmlhbiBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzU2hhdmlhbihpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxMDQ1MCkgJiYgKGNvZGUgPD0gMHgxMDQ3RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1NpbmhhbGE6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTaW5oYWxhIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNTaW5oYWxhKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDBEODApICYmIChjb2RlIDw9IDB4MERGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU21hbGxGb3JtVmFyaWFudHMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1NtYWxsRm9ybVZhcmlhbnRzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweEZFNTApICYmIChjb2RlIDw9IDB4RkU2RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1NwYWNpbmdNb2RpZmllckxldHRlcnM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNTcGFjaW5nTW9kaWZpZXJMZXR0ZXJzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDAyQjApICYmIChjb2RlIDw9IDB4MDJGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1NwZWNpYWxzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3BlY2lhbHMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1NwZWNpYWxzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweEZGRjApICYmIChjb2RlIDw9IDB4RkZGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1N1cGVyc2NyaXB0c2FuZFN1YnNjcmlwdHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNTdXBlcnNjcmlwdHNhbmRTdWJzY3JpcHRzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDIwNzApICYmIChjb2RlIDw9IDB4MjA5RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0E6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTdXBwbGVtZW50YWxBcnJvd3MtQSBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzU3VwcGxlbWVudGFsQXJyb3dzQShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgyN0YwKSAmJiAoY29kZSA8PSAweDI3RkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNTdXBwbGVtZW50YWxBcnJvd3NCOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3VwcGxlbWVudGFsQXJyb3dzLUIgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1N1cHBsZW1lbnRhbEFycm93c0IoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MjkwMCkgJiYgKGNvZGUgPD0gMHgyOTdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU3VwcGxlbWVudGFsTWF0aGVtYXRpY2FsT3BlcmF0b3JzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNTdXBwbGVtZW50YWxNYXRoZW1hdGljYWxPcGVyYXRvcnMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MkEwMCkgJiYgKGNvZGUgPD0gMHgyQUZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1BIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFBKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweEYwMDAwKSAmJiAoY29kZSA8PSAweEZGRkZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzU3VwcGxlbWVudGFyeVByaXZhdGVVc2VBcmVhQjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFN1cHBsZW1lbnRhcnlQcml2YXRlVXNlQXJlYS1CIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNTdXBwbGVtZW50YXJ5UHJpdmF0ZVVzZUFyZWFCKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDEwMDAwMCkgJiYgKGNvZGUgPD0gMHgxMEZGRkYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNTeXJpYWM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTeXJpYWMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1N5cmlhYyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgwNzAwKSAmJiAoY29kZSA8PSAweDA3NEYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNUYWdhbG9nOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFnYWxvZyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzVGFnYWxvZyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxNzAwKSAmJiAoY29kZSA8PSAweDE3MUYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNUYWdiYW53YToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhZ2JhbndhIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNUYWdiYW53YShpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxNzYwKSAmJiAoY29kZSA8PSAweDE3N0YpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNUYWdzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFncyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzVGFncyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhFMDAwMCkgJiYgKGNvZGUgPD0gMHhFMDA3RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1RhaUxlOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGFpTGUgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1RhaUxlKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDE5NTApICYmIChjb2RlIDw9IDB4MTk3RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1RhaVh1YW5KaW5nU3ltYm9sczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRhaVh1YW5KaW5nU3ltYm9scyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzVGFpWHVhbkppbmdTeW1ib2xzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDFEMzAwKSAmJiAoY29kZSA8PSAweDFEMzVGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzVGFtaWw6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBUYW1pbCBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzVGFtaWwoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEI4MCkgJiYgKGNvZGUgPD0gMHgwQkZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzVGVsdWd1OgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGVsdWd1IFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNUZWx1Z3UoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEMwMCkgJiYgKGNvZGUgPD0gMHgwQzdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzVGhhYW5hOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVGhhYW5hIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNUaGFhbmEoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MDc4MCkgJiYgKGNvZGUgPD0gMHgwN0JGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzVGhhaToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRoYWkgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1RoYWkoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEUwMCkgJiYgKGNvZGUgPD0gMHgwRTdGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzVGliZXRhbjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFRpYmV0YW4gVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1RpYmV0YW4oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MEYwMCkgJiYgKGNvZGUgPD0gMHgwRkZGKSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzVWdhcml0aWM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBVZ2FyaXRpYyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzVWdhcml0aWMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKChjb2RlID49IDB4MTAzODApICYmIChjb2RlIDw9IDB4MTAzOUYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNVbmlmaWVkQ2FuYWRpYW5BYm9yaWdpbmFsU3lsbGFiaWNzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzVW5pZmllZENhbmFkaWFuQWJvcmlnaW5hbFN5bGxhYmljcyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxNDAwKSAmJiAoY29kZSA8PSAweDE2N0YpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBWYXJpYXRpb25TZWxlY3RvcnMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1ZhcmlhdGlvblNlbGVjdG9ycyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhGRTAwKSAmJiAoY29kZSA8PSAweEZFMEYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNWYXJpYXRpb25TZWxlY3RvcnNTdXBwbGVtZW50OgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudCBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzVmFyaWF0aW9uU2VsZWN0b3JzU3VwcGxlbWVudChpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHhFMDEwMCkgJiYgKGNvZGUgPD0gMHhFMDFFRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1lpUmFkaWNhbHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBZaVJhZGljYWxzIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNZaVJhZGljYWxzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweEE0OTApICYmIChjb2RlIDw9IDB4QTRDRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1lpU3lsbGFibGVzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWWlTeWxsYWJsZXMgVUNTIEJsb2NrCisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc1lpU3lsbGFibGVzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweEEwMDApICYmIChjb2RlIDw9IDB4QTQ4RikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc1lpamluZ0hleGFncmFtU3ltYm9sczoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFlpamluZ0hleGFncmFtU3ltYm9scyBVQ1MgQmxvY2sKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzWWlqaW5nSGV4YWdyYW1TeW1ib2xzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDREQzApICYmIChjb2RlIDw9IDB4NERGRikpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0Jsb2NrOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKiBAYmxvY2s6IFVDUyBibG9jayBuYW1lCisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgdGhlIFVDUyBCbG9jaworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlLCAwIGlmIGZhbHNlIGFuZCAtMSBvbiB1bmtub3duIGJsb2NrCisgKi8KK2ludAoreG1sVUNTSXNCbG9jayhpbnQgY29kZSwgY29uc3QgY2hhciAqYmxvY2spIHsKKyAgICB4bWxJbnRGdW5jICpmdW5jOworCisgICAgZnVuYyA9IHhtbFVuaWNvZGVMb29rdXAoJnhtbFVuaWNvZGVCbG9ja1RibCwgYmxvY2spOworICAgIGlmIChmdW5jID09IE5VTEwpCisJcmV0dXJuICgtMSk7CisgICAgcmV0dXJuIChmdW5jKGNvZGUpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdEM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBDIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRDKGludCBjb2RlKSB7CisgICAgcmV0dXJuKHhtbENoYXJJblJhbmdlKCh1bnNpZ25lZCBpbnQpY29kZSwgJnhtbENHKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRDYzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENjIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRDYyhpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgwKSAmJiAoY29kZSA8PSAweDFmKSkgfHwKKyAgICAgICAgICAgKChjb2RlID49IDB4N2YpICYmIChjb2RlIDw9IDB4OWYpKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRDZjoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIENmIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRDZihpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxDZkcpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdENvOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ28gVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdENvKGludCBjb2RlKSB7CisgICAgcmV0dXJuKChjb2RlID09IDB4ZTAwMCkgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHhmOGZmKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweGYwMDAwKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweGZmZmZkKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweDEwMDAwMCkgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHgxMGZmZmQpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdENzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgQ3MgVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdENzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKChjb2RlID09IDB4ZDgwMCkgfHwKKyAgICAgICAgICAgKChjb2RlID49IDB4ZGI3ZikgJiYgKGNvZGUgPD0gMHhkYjgwKSkgfHwKKyAgICAgICAgICAgKChjb2RlID49IDB4ZGJmZikgJiYgKGNvZGUgPD0gMHhkYzAwKSkgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHhkZmZmKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRMOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTCBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0TChpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxMRykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0TGw6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMbCBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0TGwoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sTGxHKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRMbToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIExtIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRMbShpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxMbUcpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdExvOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTG8gVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdExvKGludCBjb2RlKSB7CisgICAgcmV0dXJuKHhtbENoYXJJblJhbmdlKCh1bnNpZ25lZCBpbnQpY29kZSwgJnhtbExvRykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0THQ6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBMdCBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0THQoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sTHRHKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRMdToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIEx1IFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRMdShpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxMdUcpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdE06CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRNKGludCBjb2RlKSB7CisgICAgcmV0dXJuKHhtbENoYXJJblJhbmdlKCh1bnNpZ25lZCBpbnQpY29kZSwgJnhtbE1HKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRNYzoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE1jIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRNYyhpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxNY0cpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdE1lOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTWUgVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdE1lKGludCBjb2RlKSB7CisgICAgcmV0dXJuKCgoY29kZSA+PSAweDQ4OCkgJiYgKGNvZGUgPD0gMHg0ODkpKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweDZkZSkgfHwKKyAgICAgICAgICAgKChjb2RlID49IDB4MjBkZCkgJiYgKGNvZGUgPD0gMHgyMGUwKSkgfHwKKyAgICAgICAgICAgKChjb2RlID49IDB4MjBlMikgJiYgKGNvZGUgPD0gMHgyMGU0KSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0TW46CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBNbiBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0TW4oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sTW5HKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXROOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTiBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0TihpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxORykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0TmQ6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBOZCBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0TmQoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sTmRHKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRObDoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIE5sIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRObChpbnQgY29kZSkgeworICAgIHJldHVybigoKGNvZGUgPj0gMHgxNmVlKSAmJiAoY29kZSA8PSAweDE2ZjApKSB8fAorICAgICAgICAgICAoKGNvZGUgPj0gMHgyMTYwKSAmJiAoY29kZSA8PSAweDIxODMpKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweDMwMDcpIHx8CisgICAgICAgICAgICgoY29kZSA+PSAweDMwMjEpICYmIChjb2RlIDw9IDB4MzAyOSkpIHx8CisgICAgICAgICAgICgoY29kZSA+PSAweDMwMzgpICYmIChjb2RlIDw9IDB4MzAzYSkpIHx8CisgICAgICAgICAgIChjb2RlID09IDB4MTAzNGEpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdE5vOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgTm8gVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdE5vKGludCBjb2RlKSB7CisgICAgcmV0dXJuKHhtbENoYXJJblJhbmdlKCh1bnNpZ25lZCBpbnQpY29kZSwgJnhtbE5vRykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0UDoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFAgVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdFAoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sUEcpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdFBjOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGMgVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdFBjKGludCBjb2RlKSB7CisgICAgcmV0dXJuKChjb2RlID09IDB4NWYpIHx8CisgICAgICAgICAgICgoY29kZSA+PSAweDIwM2YpICYmIChjb2RlIDw9IDB4MjA0MCkpIHx8CisgICAgICAgICAgIChjb2RlID09IDB4MjA1NCkgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHgzMGZiKSB8fAorICAgICAgICAgICAoKGNvZGUgPj0gMHhmZTMzKSAmJiAoY29kZSA8PSAweGZlMzQpKSB8fAorICAgICAgICAgICAoKGNvZGUgPj0gMHhmZTRkKSAmJiAoY29kZSA8PSAweGZlNGYpKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweGZmM2YpIHx8CisgICAgICAgICAgIChjb2RlID09IDB4ZmY2NSkpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0UGQ6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQZCBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0UGQoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sUGRHKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRQZToKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFBlIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRQZShpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxQZUcpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdFBmOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGYgVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdFBmKGludCBjb2RlKSB7CisgICAgcmV0dXJuKChjb2RlID09IDB4YmIpIHx8CisgICAgICAgICAgIChjb2RlID09IDB4MjAxOSkgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHgyMDFkKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweDIwM2EpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdFBpOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUGkgVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdFBpKGludCBjb2RlKSB7CisgICAgcmV0dXJuKChjb2RlID09IDB4YWIpIHx8CisgICAgICAgICAgIChjb2RlID09IDB4MjAxOCkgfHwKKyAgICAgICAgICAgKChjb2RlID49IDB4MjAxYikgJiYgKGNvZGUgPD0gMHgyMDFjKSkgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHgyMDFmKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweDIwMzkpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdFBvOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUG8gVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdFBvKGludCBjb2RlKSB7CisgICAgcmV0dXJuKHhtbENoYXJJblJhbmdlKCh1bnNpZ25lZCBpbnQpY29kZSwgJnhtbFBvRykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0UHM6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBQcyBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0UHMoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sUHNHKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRTOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgUyBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0UyhpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxTRykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0U2M6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTYyBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0U2MoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sU2NHKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRTazoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFNrIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRTayhpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxTa0cpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdFNtOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgU20gVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdFNtKGludCBjb2RlKSB7CisgICAgcmV0dXJuKHhtbENoYXJJblJhbmdlKCh1bnNpZ25lZCBpbnQpY29kZSwgJnhtbFNtRykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0U286CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBTbyBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0U28oaW50IGNvZGUpIHsKKyAgICByZXR1cm4oeG1sQ2hhckluUmFuZ2UoKHVuc2lnbmVkIGludCljb2RlLCAmeG1sU29HKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRaOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWiBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0WihpbnQgY29kZSkgeworICAgIHJldHVybih4bWxDaGFySW5SYW5nZSgodW5zaWduZWQgaW50KWNvZGUsICZ4bWxaRykpOworfQorCisvKioKKyAqIHhtbFVDU0lzQ2F0Wmw6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBabCBVQ1MgQ2F0ZWdvcnkKKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFVDU0lzQ2F0WmwoaW50IGNvZGUpIHsKKyAgICByZXR1cm4oKGNvZGUgPT0gMHgyMDI4KSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXRacDoKKyAqIEBjb2RlOiBVQ1MgY29kZSBwb2ludAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBwYXJ0IG9mIFpwIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sVUNTSXNDYXRacChpbnQgY29kZSkgeworICAgIHJldHVybigoY29kZSA9PSAweDIwMjkpKTsKK30KKworLyoqCisgKiB4bWxVQ1NJc0NhdFpzOgorICogQGNvZGU6IFVDUyBjb2RlIHBvaW50CisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgWnMgVUNTIENhdGVnb3J5CisgKgorICogUmV0dXJucyAxIGlmIHRydWUgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxVQ1NJc0NhdFpzKGludCBjb2RlKSB7CisgICAgcmV0dXJuKChjb2RlID09IDB4MjApIHx8CisgICAgICAgICAgIChjb2RlID09IDB4YTApIHx8CisgICAgICAgICAgIChjb2RlID09IDB4MTY4MCkgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHgxODBlKSB8fAorICAgICAgICAgICAoKGNvZGUgPj0gMHgyMDAwKSAmJiAoY29kZSA8PSAweDIwMGEpKSB8fAorICAgICAgICAgICAoY29kZSA9PSAweDIwMmYpIHx8CisgICAgICAgICAgIChjb2RlID09IDB4MjA1ZikgfHwKKyAgICAgICAgICAgKGNvZGUgPT0gMHgzMDAwKSk7Cit9CisKKy8qKgorICogeG1sVUNTSXNDYXQ6CisgKiBAY29kZTogVUNTIGNvZGUgcG9pbnQKKyAqIEBjYXQ6IFVDUyBDYXRlZ29yeSBuYW1lCisgKgorICogQ2hlY2sgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIHBhcnQgb2YgdGhlIFVDUyBDYXRlZ29yeQorICoKKyAqIFJldHVybnMgMSBpZiB0cnVlLCAwIGlmIGZhbHNlIGFuZCAtMSBvbiB1bmtub3duIGNhdGVnb3J5CisgKi8KK2ludAoreG1sVUNTSXNDYXQoaW50IGNvZGUsIGNvbnN0IGNoYXIgKmNhdCkgeworICAgIHhtbEludEZ1bmMgKmZ1bmM7CisKKyAgICBmdW5jID0geG1sVW5pY29kZUxvb2t1cCgmeG1sVW5pY29kZUNhdFRibCwgY2F0KTsKKyAgICBpZiAoZnVuYyA9PSBOVUxMKQorCXJldHVybiAoLTEpOworICAgIHJldHVybiAoZnVuYyhjb2RlKSk7Cit9CisKKyNkZWZpbmUgYm90dG9tX3htbHVuaWNvZGUKKyNpbmNsdWRlICJlbGZnY2NoYWNrLmgiCisjZW5kaWYgLyogTElCWE1MX1VOSUNPREVfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvbGlieG1sMi0yLjcuNy94bWx3cml0ZXIuYyBiL2xpYnhtbDItMi43LjcveG1sd3JpdGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFiMTVlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveG1sd3JpdGVyLmMKQEAgLTAsMCArMSw0NzEzIEBACisKKy8qCisgKiB4bWx3cml0ZXIuYzogWE1MIHRleHQgd3JpdGVyIGltcGxlbWVudGF0aW9uCisgKgorICogRm9yIGxpY2Vuc2UgYW5kIGRpc2NsYWltZXIgc2VlIHRoZSBsaWNlbnNlIGFuZCBkaXNjbGFpbWVyIG9mCisgKiBsaWJ4bWwyLgorICoKKyAqIGFsZnJlZEBtaWNrYXV0c2NoLmRlCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGxpYnhtbC94bWxtZW1vcnkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGlieG1sL3VyaS5oPgorI2luY2x1ZGUgPGxpYnhtbC9IVE1MdHJlZS5oPgorCisjaWZkZWYgTElCWE1MX1dSSVRFUl9FTkFCTEVECisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sd3JpdGVyLmg+CisKKyNkZWZpbmUgQjY0TElORUxFTiA3MgorI2RlZmluZSBCNjRDUkxGICJcclxuIgorCisvKgorICogVGhlIGZvbGxvd2luZyBWQV9DT1BZIHdhcyBjb2RlZCBmb2xsb3dpbmcgYW4gZXhhbXBsZSBpbgorICogdGhlIFNhbWJhIHByb2plY3QuICBJdCBtYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIHNvbWUKKyAqIGVzb3RlcmljIGltcGxlbWVudGF0aW9ucyBvZiB2YV9saXN0IChpLmUuIGl0IG1heSBuZWVkCisgKiBzb21ldGhpbmcgaW52b2x2aW5nIGEgbWVtY3B5KSBidXQgKGhvcGVmdWxseSkgd2lsbCBiZQorICogc3VmZmljaWVudCBmb3IgbGlieG1sMi4KKyAqLworI2lmbmRlZiBWQV9DT1BZCisgICNpZmRlZiBIQVZFX1ZBX0NPUFkKKyAgICAjZGVmaW5lIFZBX0NPUFkoZGVzdCwgc3JjKSB2YV9jb3B5KGRlc3QsIHNyYykKKyAgI2Vsc2UKKyAgICAjaWZkZWYgSEFWRV9fX1ZBX0NPUFkKKyAgICAgICNkZWZpbmUgVkFfQ09QWShkZXN0LHNyYykgX192YV9jb3B5KGRlc3QsIHNyYykKKyAgICAjZWxzZQorICAgICAgI2RlZmluZSBWQV9DT1BZKGRlc3Qsc3JjKSAoZGVzdCkgPSAoc3JjKQorICAgICNlbmRpZgorICAjZW5kaWYKKyNlbmRpZgorCisvKgorICogVHlwZXMgYXJlIGtlcHQgcHJpdmF0ZQorICovCit0eXBlZGVmIGVudW0geworICAgIFhNTF9URVhUV1JJVEVSX05PTkUgPSAwLAorICAgIFhNTF9URVhUV1JJVEVSX05BTUUsCisgICAgWE1MX1RFWFRXUklURVJfQVRUUklCVVRFLAorICAgIFhNTF9URVhUV1JJVEVSX1RFWFQsCisgICAgWE1MX1RFWFRXUklURVJfUEksCisgICAgWE1MX1RFWFRXUklURVJfUElfVEVYVCwKKyAgICBYTUxfVEVYVFdSSVRFUl9DREFUQSwKKyAgICBYTUxfVEVYVFdSSVRFUl9EVEQsCisgICAgWE1MX1RFWFRXUklURVJfRFREX1RFWFQsCisgICAgWE1MX1RFWFRXUklURVJfRFREX0VMRU0sCisgICAgWE1MX1RFWFRXUklURVJfRFREX0VMRU1fVEVYVCwKKyAgICBYTUxfVEVYVFdSSVRFUl9EVERfQVRUTCwKKyAgICBYTUxfVEVYVFdSSVRFUl9EVERfQVRUTF9URVhULAorICAgIFhNTF9URVhUV1JJVEVSX0RURF9FTlRZLCAgICAvKiBlbnRpdHkgKi8KKyAgICBYTUxfVEVYVFdSSVRFUl9EVERfRU5UWV9URVhULAorICAgIFhNTF9URVhUV1JJVEVSX0RURF9QRU5ULCAgICAvKiBwYXJhbWV0ZXIgZW50aXR5ICovCisgICAgWE1MX1RFWFRXUklURVJfQ09NTUVOVAorfSB4bWxUZXh0V3JpdGVyU3RhdGU7CisKK3R5cGVkZWYgc3RydWN0IF94bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeTsKKworc3RydWN0IF94bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSB7CisgICAgeG1sQ2hhciAqbmFtZTsKKyAgICB4bWxUZXh0V3JpdGVyU3RhdGUgc3RhdGU7Cit9OworCit0eXBlZGVmIHN0cnVjdCBfeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSB4bWxUZXh0V3JpdGVyTnNTdGFja0VudHJ5Oworc3RydWN0IF94bWxUZXh0V3JpdGVyTnNTdGFja0VudHJ5IHsKKyAgICB4bWxDaGFyICpwcmVmaXg7CisgICAgeG1sQ2hhciAqdXJpOworICAgIHhtbExpbmtQdHIgZWxlbTsKK307CisKK3N0cnVjdCBfeG1sVGV4dFdyaXRlciB7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dDsgICAgIC8qIG91dHB1dCBidWZmZXIgKi8KKyAgICB4bWxMaXN0UHRyIG5vZGVzOyAgICAgICAgICAgLyogZWxlbWVudCBuYW1lIHN0YWNrICovCisgICAgeG1sTGlzdFB0ciBuc3N0YWNrOyAgICAgICAgIC8qIG5hbWUgc3BhY2VzIHN0YWNrICovCisgICAgaW50IGxldmVsOworICAgIGludCBpbmRlbnQ7ICAgICAgICAgICAgICAgICAvKiBlbmFibGUgaW5kZW50ICovCisgICAgaW50IGRvaW5kZW50OyAgICAgICAgICAgICAgIC8qIGludGVybmFsIGluZGVudCBmbGFnICovCisgICAgeG1sQ2hhciAqaWNoYXI7ICAgICAgICAgICAgIC8qIGluZGVudCBjaGFyYWN0ZXIgKi8KKyAgICBjaGFyIHFjaGFyOyAgICAgICAgICAgICAgICAgLyogY2hhcmFjdGVyIHVzZWQgZm9yIHF1b3RpbmcgYXR0cmlidXRlIHZhbHVlcyAqLworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKyAgICBpbnQgbm9fZG9jX2ZyZWU7CisgICAgeG1sRG9jUHRyIGRvYzsKK307CisKK3N0YXRpYyB2b2lkIHhtbEZyZWVUZXh0V3JpdGVyU3RhY2tFbnRyeSh4bWxMaW5rUHRyIGxrKTsKK3N0YXRpYyBpbnQgeG1sQ21wVGV4dFdyaXRlclN0YWNrRW50cnkoY29uc3Qgdm9pZCAqZGF0YTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmRhdGExKTsKK3N0YXRpYyBpbnQgeG1sVGV4dFdyaXRlck91dHB1dE5TRGVjbCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcik7CitzdGF0aWMgdm9pZCB4bWxGcmVlVGV4dFdyaXRlck5zU3RhY2tFbnRyeSh4bWxMaW5rUHRyIGxrKTsKK3N0YXRpYyBpbnQgeG1sQ21wVGV4dFdyaXRlck5zU3RhY2tFbnRyeShjb25zdCB2b2lkICpkYXRhMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpkYXRhMSk7CitzdGF0aWMgaW50IHhtbFRleHRXcml0ZXJXcml0ZURvY0NhbGxiYWNrKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzdHIsIGludCBsZW4pOworc3RhdGljIGludCB4bWxUZXh0V3JpdGVyQ2xvc2VEb2NDYWxsYmFjayh2b2lkICpjb250ZXh0KTsKKworc3RhdGljIHhtbENoYXIgKnhtbFRleHRXcml0ZXJWU3ByaW50Zihjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncHRyKTsKK3N0YXRpYyBpbnQgeG1sT3V0cHV0QnVmZmVyV3JpdGVCYXNlNjQoeG1sT3V0cHV0QnVmZmVyUHRyIG91dCwgaW50IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSk7CitzdGF0aWMgdm9pZCB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudENhbGxiYWNrKHZvaWQgKmN0eCk7CitzdGF0aWMgaW50IHhtbFRleHRXcml0ZXJXcml0ZUluZGVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcik7CitzdGF0aWMgaW50CisgIHhtbFRleHRXcml0ZXJIYW5kbGVTdGF0ZURlcGVuZGVuY2llcyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICogcCk7CisKKy8qKgorICogeG1sV3JpdGVyRXJyTXNnOgorICogQGN0eHQ6ICBhIHdyaXRlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqCisgKiBIYW5kbGUgYSB3cml0ZXIgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFdyaXRlckVyck1zZyh4bWxUZXh0V3JpdGVyUHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZykKK3sKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisJX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGN0eHQtPmN0eHQsCisJICAgICAgICAgICAgTlVMTCwgWE1MX0ZST01fV1JJVEVSLCBlcnJvciwgWE1MX0VSUl9GQVRBTCwKKwkJICAgIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDAsICIlcyIsIG1zZyk7CisgICAgfSBlbHNlIHsKKwlfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgWE1MX0ZST01fV1JJVEVSLCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgMCwgIiVzIiwgbXNnKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sV3JpdGVyRXJyTXNnSW50OgorICogQGN0eHQ6ICBhIHdyaXRlciBjb250ZXh0CisgKiBAZXJyb3I6ICB0aGUgZXJyb3IgbnVtYmVyCisgKiBAbXNnOiAgdGhlIGVycm9yIG1lc3NhZ2UKKyAqIEB2YWw6ICBhbiBpbnQKKyAqCisgKiBIYW5kbGUgYSB3cml0ZXIgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFdyaXRlckVyck1zZ0ludCh4bWxUZXh0V3JpdGVyUHRyIGN0eHQsIHhtbFBhcnNlckVycm9ycyBlcnJvciwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgaW50IHZhbCkKK3sKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisJX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIGN0eHQtPmN0eHQsCisJICAgICAgICAgICAgTlVMTCwgWE1MX0ZST01fV1JJVEVSLCBlcnJvciwgWE1MX0VSUl9GQVRBTCwKKwkJICAgIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIHZhbCwgMCwgbXNnLCB2YWwpOworICAgIH0gZWxzZSB7CisJX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFhNTF9GUk9NX1dSSVRFUiwgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfRkFUQUwsIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIHZhbCwgMCwgbXNnLCB2YWwpOworICAgIH0KK30KKworLyoqCisgKiB4bWxOZXdUZXh0V3JpdGVyOgorICogQG91dDogIGFuIHhtbE91dHB1dEJ1ZmZlclB0cgorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxOZXdUZXh0V3JpdGVyIHN0cnVjdHVyZSB1c2luZyBhbiB4bWxPdXRwdXRCdWZmZXJQdHIKKyAqIE5PVEU6IHRoZSBAb3V0IHBhcmFtZXRlciB3aWxsIGJlIGRlYWxsb2NhdGVkIHdoZW4gdGhlIHdyaXRlciBpcyBjbG9zZWQKKyAqICAgICAgIChpZiB0aGUgY2FsbCBzdWNjZWVkLikKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgeG1sVGV4dFdyaXRlclB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sVGV4dFdyaXRlclB0cgoreG1sTmV3VGV4dFdyaXRlcih4bWxPdXRwdXRCdWZmZXJQdHIgb3V0KQoreworICAgIHhtbFRleHRXcml0ZXJQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFRleHRXcml0ZXJQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sVGV4dFdyaXRlcikpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTmV3VGV4dFdyaXRlciA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAsIChzaXplX3QpIHNpemVvZih4bWxUZXh0V3JpdGVyKSk7CisKKyAgICByZXQtPm5vZGVzID0geG1sTGlzdENyZWF0ZSgoeG1sTGlzdERlYWxsb2NhdG9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWVUZXh0V3JpdGVyU3RhY2tFbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sTGlzdERhdGFDb21wYXJlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENtcFRleHRXcml0ZXJTdGFja0VudHJ5KTsKKyAgICBpZiAocmV0LT5ub2RlcyA9PSBOVUxMKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxOZXdUZXh0V3JpdGVyIDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICB4bWxGcmVlKHJldCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldC0+bnNzdGFjayA9IHhtbExpc3RDcmVhdGUoKHhtbExpc3REZWFsbG9jYXRvcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbEZyZWVUZXh0V3JpdGVyTnNTdGFja0VudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbExpc3REYXRhQ29tcGFyZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbENtcFRleHRXcml0ZXJOc1N0YWNrRW50cnkpOworICAgIGlmIChyZXQtPm5zc3RhY2sgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTmV3VGV4dFdyaXRlciA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgeG1sTGlzdERlbGV0ZShyZXQtPm5vZGVzKTsKKyAgICAgICAgeG1sRnJlZShyZXQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXQtPm91dCA9IG91dDsKKyAgICByZXQtPmljaGFyID0geG1sU3RyZHVwKEJBRF9DQVNUICIgIik7CisgICAgcmV0LT5xY2hhciA9ICciJzsKKworICAgIGlmICghcmV0LT5pY2hhcikgeworICAgICAgICB4bWxMaXN0RGVsZXRlKHJldC0+bm9kZXMpOworICAgICAgICB4bWxMaXN0RGVsZXRlKHJldC0+bnNzdGFjayk7CisgICAgICAgIHhtbEZyZWUocmV0KTsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKE5VTEwsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE5ld1RleHRXcml0ZXIgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldC0+ZG9jID0geG1sTmV3RG9jKE5VTEwpOworCisgICAgcmV0LT5ub19kb2NfZnJlZSA9IDA7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIHhtbE5ld1RleHRXcml0ZXJGaWxlbmFtZToKKyAqIEB1cmk6ICB0aGUgVVJJIG9mIHRoZSByZXNvdXJjZSBmb3IgdGhlIG91dHB1dAorICogQGNvbXByZXNzaW9uOiAgY29tcHJlc3MgdGhlIG91dHB1dD8KKyAqCisgKiBDcmVhdGUgYSBuZXcgeG1sTmV3VGV4dFdyaXRlciBzdHJ1Y3R1cmUgd2l0aCBAdXJpIGFzIG91dHB1dAorICoKKyAqIFJldHVybnMgdGhlIG5ldyB4bWxUZXh0V3JpdGVyUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxUZXh0V3JpdGVyUHRyCit4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUoY29uc3QgY2hhciAqdXJpLCBpbnQgY29tcHJlc3Npb24pCit7CisgICAgeG1sVGV4dFdyaXRlclB0ciByZXQ7CisgICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dDsKKworICAgIG91dCA9IHhtbE91dHB1dEJ1ZmZlckNyZWF0ZUZpbGVuYW1lKHVyaSwgTlVMTCwgY29tcHJlc3Npb24pOworICAgIGlmIChvdXQgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0lPX0VJTywKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUgOiBjYW5ub3Qgb3BlbiB1cmlcbiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXQgPSB4bWxOZXdUZXh0V3JpdGVyKG91dCk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxOZXdUZXh0V3JpdGVyRmlsZW5hbWUgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlckNsb3NlKG91dCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldC0+aW5kZW50ID0gMDsKKyAgICByZXQtPmRvaW5kZW50ID0gMDsKKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIHhtbE5ld1RleHRXcml0ZXJNZW1vcnk6CisgKiBAYnVmOiAgeG1sQnVmZmVyUHRyCisgKiBAY29tcHJlc3Npb246ICBjb21wcmVzcyB0aGUgb3V0cHV0PworICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxOZXdUZXh0V3JpdGVyIHN0cnVjdHVyZSB3aXRoIEBidWYgYXMgb3V0cHV0CisgKiBUT0RPOiBoYW5kbGUgY29tcHJlc3Npb24KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgeG1sVGV4dFdyaXRlclB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworeG1sVGV4dFdyaXRlclB0cgoreG1sTmV3VGV4dFdyaXRlck1lbW9yeSh4bWxCdWZmZXJQdHIgYnVmLCBpbnQgY29tcHJlc3Npb24gQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHJldDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgb3V0OworCisvKjo6dG9kbyBoYW5kbGUgY29tcHJlc3Npb24gKi8KKyAgICBvdXQgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVCdWZmZXIoYnVmLCBOVUxMKTsKKworICAgIGlmIChvdXQgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTmV3VGV4dFdyaXRlck1lbW9yeSA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0ID0geG1sTmV3VGV4dFdyaXRlcihvdXQpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTmV3VGV4dFdyaXRlck1lbW9yeSA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyQ2xvc2Uob3V0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLyoqCisgKiB4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcjoKKyAqIEBjdHh0OiB4bWxQYXJzZXJDdHh0UHRyIHRvIGhvbGQgdGhlIG5ldyBYTUwgZG9jdW1lbnQgdHJlZQorICogQGNvbXByZXNzaW9uOiAgY29tcHJlc3MgdGhlIG91dHB1dD8KKyAqCisgKiBDcmVhdGUgYSBuZXcgeG1sTmV3VGV4dFdyaXRlciBzdHJ1Y3R1cmUgd2l0aCBAY3R4dCBhcyBvdXRwdXQKKyAqIE5PVEU6IHRoZSBAY3R4dCBjb250ZXh0IHdpbGwgYmUgZnJlZWQgd2l0aCB0aGUgcmVzdWx0aW5nIHdyaXRlcgorICogICAgICAgKGlmIHRoZSBjYWxsIHN1Y2NlZWRzKS4KKyAqIFRPRE86IGhhbmRsZSBjb21wcmVzc2lvbgorICoKKyAqIFJldHVybnMgdGhlIG5ldyB4bWxUZXh0V3JpdGVyUHRyIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCit4bWxUZXh0V3JpdGVyUHRyCit4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlcih4bWxQYXJzZXJDdHh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcHJlc3Npb24gQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgICB4bWxUZXh0V3JpdGVyUHRyIHJldDsKKyAgICB4bWxPdXRwdXRCdWZmZXJQdHIgb3V0OworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciA6IGludmFsaWQgY29udGV4dCFcbiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBvdXQgPSB4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTygoeG1sT3V0cHV0V3JpdGVDYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxUZXh0V3JpdGVyV3JpdGVEb2NDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1sT3V0cHV0Q2xvc2VDYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxUZXh0V3JpdGVyQ2xvc2VEb2NDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBjdHh0LCBOVUxMKTsKKyAgICBpZiAob3V0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKE5VTEwsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIgOiBlcnJvciBhdCB4bWxPdXRwdXRCdWZmZXJDcmVhdGVJTyFcbiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXQgPSB4bWxOZXdUZXh0V3JpdGVyKG91dCk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyIDogZXJyb3IgYXQgeG1sTmV3VGV4dFdyaXRlciFcbiIpOworICAgICAgICB4bWxPdXRwdXRCdWZmZXJDbG9zZShvdXQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXQtPmN0eHQgPSBjdHh0OworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoqCisgKiB4bWxOZXdUZXh0V3JpdGVyRG9jOgorICogQGRvYzogYWRkcmVzcyBvZiBhIHhtbERvY1B0ciB0byBob2xkIHRoZSBuZXcgWE1MIGRvY3VtZW50IHRyZWUKKyAqIEBjb21wcmVzc2lvbjogIGNvbXByZXNzIHRoZSBvdXRwdXQ/CisgKgorICogQ3JlYXRlIGEgbmV3IHhtbE5ld1RleHRXcml0ZXIgc3RydWN0dXJlIHdpdGggQCpkb2MgYXMgb3V0cHV0CisgKgorICogUmV0dXJucyB0aGUgbmV3IHhtbFRleHRXcml0ZXJQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFRleHRXcml0ZXJQdHIKK3htbE5ld1RleHRXcml0ZXJEb2MoeG1sRG9jUHRyICogZG9jLCBpbnQgY29tcHJlc3Npb24pCit7CisgICAgeG1sVGV4dFdyaXRlclB0ciByZXQ7CisgICAgeG1sU0FYSGFuZGxlciBzYXhIYW5kbGVyOworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dDsKKworICAgIG1lbXNldCgmc2F4SGFuZGxlciwgJ1wwJywgc2l6ZW9mKHNheEhhbmRsZXIpKTsKKyAgICB4bWxTQVgySW5pdERlZmF1bHRTQVhIYW5kbGVyKCZzYXhIYW5kbGVyLCAxKTsKKyAgICBzYXhIYW5kbGVyLnN0YXJ0RG9jdW1lbnQgPSB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudENhbGxiYWNrOworICAgIHNheEhhbmRsZXIuc3RhcnRFbGVtZW50ID0geG1sU0FYMlN0YXJ0RWxlbWVudDsKKyAgICBzYXhIYW5kbGVyLmVuZEVsZW1lbnQgPSB4bWxTQVgyRW5kRWxlbWVudDsKKworICAgIGN0eHQgPSB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCgmc2F4SGFuZGxlciwgTlVMTCwgTlVMTCwgMCwgTlVMTCk7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAieG1sTmV3VGV4dFdyaXRlckRvYyA6IGVycm9yIGF0IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0IVxuIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICAvKgorICAgICAqIEZvciBzb21lIHJlYXNvbiB0aGlzIHNlZW1zIHRvIGNvbXBsZXRlbHkgYnJlYWsgaWYgbm9kZSBuYW1lcworICAgICAqIGFyZSBpbnRlcm5lZC4KKyAgICAgKi8KKyAgICBjdHh0LT5kaWN0TmFtZXMgPSAwOworCisgICAgY3R4dC0+bXlEb2MgPSB4bWxOZXdEb2MoQkFEX0NBU1QgWE1MX0RFRkFVTFRfVkVSU0lPTik7CisgICAgaWYgKGN0eHQtPm15RG9jID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE5ld1RleHRXcml0ZXJEb2MgOiBlcnJvciBhdCB4bWxOZXdEb2MhXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0ID0geG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIoY3R4dCwgY29tcHJlc3Npb24pOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlRG9jKGN0eHQtPm15RG9jKTsKKyAgICAgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICJ4bWxOZXdUZXh0V3JpdGVyRG9jIDogZXJyb3IgYXQgeG1sTmV3VGV4dFdyaXRlclB1c2hQYXJzZXIhXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgeG1sU2V0RG9jQ29tcHJlc3NNb2RlKGN0eHQtPm15RG9jLCBjb21wcmVzc2lvbik7CisKKyAgICBpZiAoZG9jICE9IE5VTEwpIHsKKyAgICAgICAgKmRvYyA9IGN0eHQtPm15RG9jOworCXJldC0+bm9fZG9jX2ZyZWUgPSAxOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qKgorICogeG1sTmV3VGV4dFdyaXRlclRyZWU6CisgKiBAZG9jOiB4bWxEb2NQdHIKKyAqIEBub2RlOiB4bWxOb2RlUHRyIG9yIE5VTEwgZm9yIGRvYy0+Y2hpbGRyZW4KKyAqIEBjb21wcmVzc2lvbjogIGNvbXByZXNzIHRoZSBvdXRwdXQ/CisgKgorICogQ3JlYXRlIGEgbmV3IHhtbE5ld1RleHRXcml0ZXIgc3RydWN0dXJlIHdpdGggQGRvYyBhcyBvdXRwdXQKKyAqIHN0YXJ0aW5nIGF0IEBub2RlCisgKgorICogUmV0dXJucyB0aGUgbmV3IHhtbFRleHRXcml0ZXJQdHIgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3htbFRleHRXcml0ZXJQdHIKK3htbE5ld1RleHRXcml0ZXJUcmVlKHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgbm9kZSwgaW50IGNvbXByZXNzaW9uKQoreworICAgIHhtbFRleHRXcml0ZXJQdHIgcmV0OworICAgIHhtbFNBWEhhbmRsZXIgc2F4SGFuZGxlcjsKKyAgICB4bWxQYXJzZXJDdHh0UHRyIGN0eHQ7CisKKyAgICBpZiAoZG9jID09IE5VTEwpIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKE5VTEwsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sTmV3VGV4dFdyaXRlclRyZWUgOiBpbnZhbGlkIGRvY3VtZW50IHRyZWUhXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbWVtc2V0KCZzYXhIYW5kbGVyLCAnXDAnLCBzaXplb2Yoc2F4SGFuZGxlcikpOworICAgIHhtbFNBWDJJbml0RGVmYXVsdFNBWEhhbmRsZXIoJnNheEhhbmRsZXIsIDEpOworICAgIHNheEhhbmRsZXIuc3RhcnREb2N1bWVudCA9IHhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50Q2FsbGJhY2s7CisgICAgc2F4SGFuZGxlci5zdGFydEVsZW1lbnQgPSB4bWxTQVgyU3RhcnRFbGVtZW50OworICAgIHNheEhhbmRsZXIuZW5kRWxlbWVudCA9IHhtbFNBWDJFbmRFbGVtZW50OworCisgICAgY3R4dCA9IHhtbENyZWF0ZVB1c2hQYXJzZXJDdHh0KCZzYXhIYW5kbGVyLCBOVUxMLCBOVUxMLCAwLCBOVUxMKTsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE5ld1RleHRXcml0ZXJEb2MgOiBlcnJvciBhdCB4bWxDcmVhdGVQdXNoUGFyc2VyQ3R4dCFcbiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgLyoKKyAgICAgKiBGb3Igc29tZSByZWFzb24gdGhpcyBzZWVtcyB0byBjb21wbGV0ZWx5IGJyZWFrIGlmIG5vZGUgbmFtZXMKKyAgICAgKiBhcmUgaW50ZXJuZWQuCisgICAgICovCisgICAgY3R4dC0+ZGljdE5hbWVzID0gMDsKKworICAgIHJldCA9IHhtbE5ld1RleHRXcml0ZXJQdXNoUGFyc2VyKGN0eHQsIGNvbXByZXNzaW9uKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZVBhcnNlckN0eHQoY3R4dCk7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbE5ld1RleHRXcml0ZXJEb2MgOiBlcnJvciBhdCB4bWxOZXdUZXh0V3JpdGVyUHVzaFBhcnNlciFcbiIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBjdHh0LT5teURvYyA9IGRvYzsKKyAgICBjdHh0LT5ub2RlID0gbm9kZTsKKyAgICByZXQtPm5vX2RvY19mcmVlID0gMTsKKworICAgIHhtbFNldERvY0NvbXByZXNzTW9kZShkb2MsIGNvbXByZXNzaW9uKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qKgorICogeG1sRnJlZVRleHRXcml0ZXI6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqCisgKiBEZWFsbG9jYXRlIGFsbCB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgdG8gdGhlIHdyaXRlcgorICovCit2b2lkCit4bWxGcmVlVGV4dFdyaXRlcih4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpZiAod3JpdGVyID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh3cml0ZXItPm91dCAhPSBOVUxMKQorICAgICAgICB4bWxPdXRwdXRCdWZmZXJDbG9zZSh3cml0ZXItPm91dCk7CisKKyAgICBpZiAod3JpdGVyLT5ub2RlcyAhPSBOVUxMKQorICAgICAgICB4bWxMaXN0RGVsZXRlKHdyaXRlci0+bm9kZXMpOworCisgICAgaWYgKHdyaXRlci0+bnNzdGFjayAhPSBOVUxMKQorICAgICAgICB4bWxMaXN0RGVsZXRlKHdyaXRlci0+bnNzdGFjayk7CisKKyAgICBpZiAod3JpdGVyLT5jdHh0ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKCh3cml0ZXItPmN0eHQtPm15RG9jICE9IE5VTEwpICYmICh3cml0ZXItPm5vX2RvY19mcmVlID09IDApKSB7CisJICAgIHhtbEZyZWVEb2Mod3JpdGVyLT5jdHh0LT5teURvYyk7CisJICAgIHdyaXRlci0+Y3R4dC0+bXlEb2MgPSBOVUxMOworCX0KKyAgICAgICAgeG1sRnJlZVBhcnNlckN0eHQod3JpdGVyLT5jdHh0KTsKKyAgICB9CisKKyAgICBpZiAod3JpdGVyLT5kb2MgIT0gTlVMTCkKKyAgICAgICAgeG1sRnJlZURvYyh3cml0ZXItPmRvYyk7CisKKyAgICBpZiAod3JpdGVyLT5pY2hhciAhPSBOVUxMKQorICAgICAgICB4bWxGcmVlKHdyaXRlci0+aWNoYXIpOworICAgIHhtbEZyZWUod3JpdGVyKTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQHZlcnNpb246ICB0aGUgeG1sIHZlcnNpb24gKCIxLjAiKSBvciBOVUxMIGZvciBkZWZhdWx0ICgiMS4wIikKKyAqIEBlbmNvZGluZzogIHRoZSBlbmNvZGluZyBvciBOVUxMIGZvciBkZWZhdWx0CisgKiBAc3RhbmRhbG9uZTogInllcyIgb3IgIm5vIiBvciBOVUxMIGZvciBkZWZhdWx0CisgKgorICogU3RhcnQgYSBuZXcgeG1sIGRvY3VtZW50CisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgY2hhciAqdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICpzdGFuZGFsb25lKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sQ2hhckVuY29kaW5nSGFuZGxlclB0ciBlbmNvZGVyOworCisgICAgaWYgKCh3cml0ZXIgPT0gTlVMTCkgfHwgKHdyaXRlci0+b3V0ID09IE5VTEwpKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQgOiBpbnZhbGlkIHdyaXRlciFcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKChsayAhPSBOVUxMKSAmJiAoeG1sTGlua0dldERhdGEobGspICE9IE5VTEwpKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnQgOiBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGVuY29kZXIgPSBOVUxMOworICAgIGlmIChlbmNvZGluZyAhPSBOVUxMKSB7CisgICAgICAgIGVuY29kZXIgPSB4bWxGaW5kQ2hhckVuY29kaW5nSGFuZGxlcihlbmNvZGluZyk7CisgICAgICAgIGlmIChlbmNvZGVyID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyU3RhcnREb2N1bWVudCA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHdyaXRlci0+b3V0LT5lbmNvZGVyID0gZW5jb2RlcjsKKyAgICBpZiAoZW5jb2RlciAhPSBOVUxMKSB7CisJaWYgKHdyaXRlci0+b3V0LT5jb252ID09IE5VTEwpIHsKKwkgICAgd3JpdGVyLT5vdXQtPmNvbnYgPSB4bWxCdWZmZXJDcmVhdGVTaXplKDQwMDApOworCX0KKyAgICAgICAgeG1sQ2hhckVuY091dEZ1bmMoZW5jb2Rlciwgd3JpdGVyLT5vdXQtPmNvbnYsIE5VTEwpOworICAgICAgICBpZiAoKHdyaXRlci0+ZG9jICE9IE5VTEwpICYmICh3cml0ZXItPmRvYy0+ZW5jb2RpbmcgPT0gTlVMTCkpCisgICAgICAgICAgICB3cml0ZXItPmRvYy0+ZW5jb2RpbmcgPSB4bWxTdHJkdXAoKHhtbENoYXIgKil3cml0ZXItPm91dC0+ZW5jb2Rlci0+bmFtZSk7CisgICAgfSBlbHNlCisgICAgICAgIHdyaXRlci0+b3V0LT5jb252ID0gTlVMTDsKKworICAgIHN1bSA9IDA7CisgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIjw/eG1sIHZlcnNpb249Iik7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBpZiAodmVyc2lvbiAhPSAwKQorICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCB2ZXJzaW9uKTsKKyAgICBlbHNlCisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICIxLjAiKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGUod3JpdGVyLT5vdXQsIDEsICZ3cml0ZXItPnFjaGFyKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGlmICh3cml0ZXItPm91dC0+ZW5jb2RlciAhPSAwKSB7CisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICIgZW5jb2Rpbmc9Iik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgIGNvdW50ID0KKyAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLT5vdXQtPmVuY29kZXItPm5hbWUpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGUod3JpdGVyLT5vdXQsIDEsICZ3cml0ZXItPnFjaGFyKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIGlmIChzdGFuZGFsb25lICE9IDApIHsKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIiBzdGFuZGFsb25lPSIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGUod3JpdGVyLT5vdXQsIDEsICZ3cml0ZXItPnFjaGFyKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCBzdGFuZGFsb25lKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICB9CisKKyAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPz5cbiIpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJFbmREb2N1bWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIEVuZCBhbiB4bWwgZG9jdW1lbnQuIEFsbCBvcGVuIGVsZW1lbnRzIGFyZSBjbG9zZWQsIGFuZAorICogdGhlIGNvbnRlbnQgaXMgZmx1c2hlZCB0byB0aGUgb3V0cHV0LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJFbmREb2N1bWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlckVuZERvY3VtZW50IDogaW52YWxpZCB3cml0ZXIhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHN1bSA9IDA7CisgICAgd2hpbGUgKChsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5vZGVzKSkgIT0gTlVMTCkgeworICAgICAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICAgICAgaWYgKHAgPT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX05BTUU6CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0FUVFJJQlVURToKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfVEVYVDoKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfUEk6CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX1BJX1RFWFQ6CisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kUEkod3JpdGVyKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9DREFUQToKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmRDREFUQSh3cml0ZXIpOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURDoKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX1RFWFQ6CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9FTEVNOgorICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfRUxFTV9URVhUOgorICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfQVRUTDoKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0FUVExfVEVYVDoKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0VOVFk6CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9FTlRZX1RFWFQ6CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9QRU5UOgorICAgICAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZERURCh3cml0ZXIpOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0NPTU1FTlQ6CisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kQ29tbWVudCh3cml0ZXIpOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCF3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHN1bSArPSB4bWxUZXh0V3JpdGVyRmx1c2god3JpdGVyKTsKKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIFN0YXJ0IGFuIHhtbCBjb21tZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCA6IGludmFsaWQgd3JpdGVyIVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBzdW0gPSAwOworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayAhPSAwKSB7CisgICAgICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgeG1sTGlua0dldERhdGEobGspOworICAgICAgICBpZiAocCAhPSAwKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9URVhUOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfTk9ORToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OQU1FOgorICAgICAgICAgICAgICAgICAgICAvKiBPdXRwdXQgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyAqLworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJPdXRwdXROU0RlY2wod3JpdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfVEVYVDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcCA9ICh4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqKQorICAgICAgICB4bWxNYWxsb2Moc2l6ZW9mKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5KSk7CisgICAgaWYgKHAgPT0gMCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50IDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcC0+bmFtZSA9IE5VTEw7CisgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9DT01NRU5UOworCisgICAgeG1sTGlzdFB1c2hGcm9udCh3cml0ZXItPm5vZGVzLCBwKTsKKworICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJXcml0ZUluZGVudCh3cml0ZXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIjwhLS0iKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyRW5kQ29tbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIEVuZCB0aGUgY3VycmVudCB4bWwgY29tZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlckVuZENvbW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJFbmRDb21tZW50IDogaW52YWxpZCB3cml0ZXIhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayA9PSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlckVuZENvbW1lbnQgOiBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgeG1sTGlua0dldERhdGEobGspOworICAgIGlmIChwID09IDApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1bSA9IDA7CisgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0NPTU1FTlQ6CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiLS0+Iik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHhtbExpc3RQb3BGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQ6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQKKyAqCisgKiBXcml0ZSBhbiB4bWwgY29tbWVudC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQgWE1MQ0RFQ0wKK3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdENvbW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQoreworICAgIGludCByYzsKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDb21tZW50KHdyaXRlciwgZm9ybWF0LCBhcCk7CisKKyAgICB2YV9lbmQoYXApOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q29tbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBAYXJncHRyOiAgcG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LgorICoKKyAqIFdyaXRlIGFuIHhtbCBjb21tZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENvbW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncHRyKQoreworICAgIGludCByYzsKKyAgICB4bWxDaGFyICpidWY7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwpIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0Q29tbWVudCA6IGludmFsaWQgd3JpdGVyIVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBidWYgPSB4bWxUZXh0V3JpdGVyVlNwcmludGYoZm9ybWF0LCBhcmdwdHIpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVDb21tZW50KHdyaXRlciwgYnVmKTsKKworICAgIHhtbEZyZWUoYnVmKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQGNvbnRlbnQ6ICBjb21tZW50IHN0cmluZworICoKKyAqIFdyaXRlIGFuIHhtbCBjb21tZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlQ29tbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgeG1sQ2hhciAqIGNvbnRlbnQpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisKKyAgICBzdW0gPSAwOworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlclN0YXJ0Q29tbWVudCh3cml0ZXIpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcod3JpdGVyLCBjb250ZW50KTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZENvbW1lbnQod3JpdGVyKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIGVsZW1lbnQgbmFtZQorICoKKyAqIFN0YXJ0IGFuIHhtbCBlbGVtZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgeG1sQ2hhciAqIG5hbWUpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICgod3JpdGVyID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpIHx8ICgqbmFtZSA9PSAnXDAnKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3VtID0gMDsKKyAgICBsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICBpZiAobGsgIT0gMCkgeworICAgICAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICAgICAgaWYgKHAgIT0gMCkgeworICAgICAgICAgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfUEk6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9QSV9URVhUOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OT05FOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkJCQljYXNlIFhNTF9URVhUV1JJVEVSX0FUVFJJQlVURToKKwkJCQkJY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlKHdyaXRlcik7CisJCQkJCWlmIChjb3VudCA8IDApCisJCQkJCQlyZXR1cm4gLTE7CisJCQkJCXN1bSArPSBjb3VudDsKKwkJCQkJLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX05BTUU6CisgICAgICAgICAgICAgICAgICAgIC8qIE91dHB1dCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zICovCisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlck91dHB1dE5TRGVjbCh3cml0ZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI+Iik7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdyaXRlci0+aW5kZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9URVhUOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikKKyAgICAgICAgeG1sTWFsbG9jKHNpemVvZih4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSkpOworICAgIGlmIChwID09IDApIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHAtPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisgICAgaWYgKHAtPm5hbWUgPT0gMCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50IDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICB4bWxGcmVlKHApOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfTkFNRTsKKworICAgIHhtbExpc3RQdXNoRnJvbnQod3JpdGVyLT5ub2RlcywgcCk7CisKKyAgICBpZiAod3JpdGVyLT5pbmRlbnQpIHsKKyAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVJbmRlbnQod3JpdGVyKTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI8Iik7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBjb3VudCA9CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAoY29uc3QgY2hhciAqKSBwLT5uYW1lKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyU3RhcnRFbGVtZW50TlM6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBwcmVmaXg6ICBuYW1lc3BhY2UgcHJlZml4IG9yIE5VTEwKKyAqIEBuYW1lOiAgZWxlbWVudCBsb2NhbCBuYW1lCisgKiBAbmFtZXNwYWNlVVJJOiAgbmFtZXNwYWNlIFVSSSBvciBOVUxMCisgKgorICogU3RhcnQgYW4geG1sIGVsZW1lbnQgd2l0aCBuYW1lc3BhY2Ugc3VwcG9ydC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJTdGFydEVsZW1lbnROUyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4LCBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZXNwYWNlVVJJKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbENoYXIgKmJ1ZjsKKworICAgIGlmICgod3JpdGVyID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpIHx8ICgqbmFtZSA9PSAnXDAnKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgYnVmID0gTlVMTDsKKyAgICBpZiAocHJlZml4ICE9IDApIHsKKyAgICAgICAgYnVmID0geG1sU3RyZHVwKHByZWZpeCk7CisgICAgICAgIGJ1ZiA9IHhtbFN0cmNhdChidWYsIEJBRF9DQVNUICI6Iik7CisgICAgfQorICAgIGJ1ZiA9IHhtbFN0cmNhdChidWYsIG5hbWUpOworCisgICAgc3VtID0gMDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJTdGFydEVsZW1lbnQod3JpdGVyLCBidWYpOworICAgIHhtbEZyZWUoYnVmKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgaWYgKG5hbWVzcGFjZVVSSSAhPSAwKSB7CisgICAgICAgIHhtbFRleHRXcml0ZXJOc1N0YWNrRW50cnkgKnAgPSAoeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSAqKSAKKyAgICAgICAgeG1sTWFsbG9jKHNpemVvZih4bWxUZXh0V3JpdGVyTnNTdGFja0VudHJ5KSk7CisgICAgICAgIGlmIChwID09IDApIHsKKyAgICAgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TIDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgYnVmID0geG1sU3RyZHVwKEJBRF9DQVNUICJ4bWxucyIpOworICAgICAgICBpZiAocHJlZml4ICE9IDApIHsKKyAgICAgICAgICAgIGJ1ZiA9IHhtbFN0cmNhdChidWYsIEJBRF9DQVNUICI6Iik7CisgICAgICAgICAgICBidWYgPSB4bWxTdHJjYXQoYnVmLCBwcmVmaXgpOworICAgICAgICB9CisKKyAgICAgICAgcC0+cHJlZml4ID0gYnVmOworICAgICAgICBwLT51cmkgPSB4bWxTdHJkdXAobmFtZXNwYWNlVVJJKTsKKyAgICAgICAgaWYgKHAtPnVyaSA9PSAwKSB7CisgICAgICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TIDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICAgICAgeG1sRnJlZShwKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBwLT5lbGVtID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworCisgICAgICAgIHhtbExpc3RQdXNoRnJvbnQod3JpdGVyLT5uc3N0YWNrLCBwKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJFbmRFbGVtZW50OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKgorICogRW5kIHRoZSBjdXJyZW50IHhtbCBlbGVtZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlckVuZEVsZW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrID09IDApIHsKKyAgICAgICAgeG1sTGlzdERlbGV0ZSh3cml0ZXItPm5zc3RhY2spOworICAgICAgICB3cml0ZXItPm5zc3RhY2sgPSBOVUxMOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcCA9ICh4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqKSB4bWxMaW5rR2V0RGF0YShsayk7CisgICAgaWYgKHAgPT0gMCkgeworICAgICAgICB4bWxMaXN0RGVsZXRlKHdyaXRlci0+bnNzdGFjayk7CisgICAgICAgIHdyaXRlci0+bnNzdGFjayA9IE5VTEw7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBzdW0gPSAwOworICAgIHN3aXRjaCAocC0+c3RhdGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9BVFRSSUJVVEU6CisgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUod3JpdGVyKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApIHsKKyAgICAgICAgICAgICAgICB4bWxMaXN0RGVsZXRlKHdyaXRlci0+bnNzdGFjayk7CisgICAgICAgICAgICAgICAgd3JpdGVyLT5uc3N0YWNrID0gTlVMTDsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLworICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX05BTUU6CisgICAgICAgICAgICAvKiBPdXRwdXQgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyAqLworICAgICAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyT3V0cHV0TlNEZWNsKHdyaXRlcik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICAgICAgaWYgKHdyaXRlci0+aW5kZW50KSAvKiBuZXh0IGVsZW1lbnQgbmVlZHMgaW5kZW50ICovCisgICAgICAgICAgICAgICAgd3JpdGVyLT5kb2luZGVudCA9IDE7CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiLz4iKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfVEVYVDoKKyAgICAgICAgICAgIGlmICgod3JpdGVyLT5pbmRlbnQpICYmICh3cml0ZXItPmRvaW5kZW50KSkgeworICAgICAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlcldyaXRlSW5kZW50KHdyaXRlcik7CisgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgIHdyaXRlci0+ZG9pbmRlbnQgPSAxOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgd3JpdGVyLT5kb2luZGVudCA9IDE7CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPC8iKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgcC0+bmFtZSk7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI+Iik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHhtbExpc3RQb3BGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJGdWxsRW5kRWxlbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIEVuZCB0aGUgY3VycmVudCB4bWwgZWxlbWVudC4gV3JpdGVzIGFuIGVuZCB0YWcgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBlbXB0eQorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlckZ1bGxFbmRFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIHN3aXRjaCAocC0+c3RhdGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9BVFRSSUJVVEU6CisgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUod3JpdGVyKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OQU1FOgorICAgICAgICAgICAgLyogT3V0cHV0IG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgKi8KKyAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlck91dHB1dE5TRGVjbCh3cml0ZXIpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI+Iik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGlmICh3cml0ZXItPmluZGVudCkKKyAgICAgICAgICAgICAgICB3cml0ZXItPmRvaW5kZW50ID0gMDsKKyAgICAgICAgICAgIC8qIGZhbGx0aHJvdWdoICovCisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfVEVYVDoKKyAgICAgICAgICAgIGlmICgod3JpdGVyLT5pbmRlbnQpICYmICh3cml0ZXItPmRvaW5kZW50KSkgeworICAgICAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlcldyaXRlSW5kZW50KHdyaXRlcik7CisgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgIHdyaXRlci0+ZG9pbmRlbnQgPSAxOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgd3JpdGVyLT5kb2luZGVudCA9IDE7CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPC8iKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgcC0+bmFtZSk7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI+Iik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHhtbExpc3RQb3BGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdzoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdAorICoKKyAqIFdyaXRlIGEgZm9ybWF0dGVkIHJhdyB4bWwgdGV4dC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQgWE1MQ0RFQ0wKK3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdFJhdyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgY2hhciAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikKK3sKKyAgICBpbnQgcmM7CisgICAgdmFfbGlzdCBhcDsKKworICAgIHZhX3N0YXJ0KGFwLCBmb3JtYXQpOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3KHdyaXRlciwgZm9ybWF0LCBhcCk7CisKKyAgICB2YV9lbmQoYXApOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UmF3OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEBhcmdwdHI6ICBwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuCisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgcmF3IHhtbCB0ZXh0LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdFJhdyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgY2hhciAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3B0cikKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sQ2hhciAqYnVmOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBidWYgPSB4bWxUZXh0V3JpdGVyVlNwcmludGYoZm9ybWF0LCBhcmdwdHIpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVSYXcod3JpdGVyLCBidWYpOworCisgICAgeG1sRnJlZShidWYpOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW46CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBjb250ZW50OiAgdGV4dCBzdHJpbmcKKyAqIEBsZW46ICBsZW5ndGggb2YgdGhlIHRleHQgc3RyaW5nCisgKgorICogV3JpdGUgYW4geG1sIHRleHQuCisgKiBUT0RPOiB3aGF0IGFib3V0IGVudGl0aWVzIGFuZCBzcGVjaWFsIGNoYXJzPz8KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZVJhd0xlbih4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgeG1sQ2hhciAqIGNvbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlcldyaXRlUmF3TGVuIDogaW52YWxpZCB3cml0ZXIhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICgoY29udGVudCA9PSBOVUxMKSB8fCAobGVuIDwgMCkpIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4gOiBpbnZhbGlkIGNvbnRlbnQhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHN1bSA9IDA7CisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrICE9IDApIHsKKyAgICAgICAgcCA9ICh4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqKSB4bWxMaW5rR2V0RGF0YShsayk7CisgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckhhbmRsZVN0YXRlRGVwZW5kZW5jaWVzKHdyaXRlciwgcCk7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICB9CisKKyAgICBpZiAod3JpdGVyLT5pbmRlbnQpCisgICAgICAgIHdyaXRlci0+ZG9pbmRlbnQgPSAwOworCisgICAgaWYgKGNvbnRlbnQgIT0gTlVMTCkgeworICAgICAgICBjb3VudCA9CisgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgbGVuLCAoY29uc3QgY2hhciAqKSBjb250ZW50KTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlUmF3OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAY29udGVudDogIHRleHQgc3RyaW5nCisgKgorICogV3JpdGUgYSByYXcgeG1sIHRleHQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVSYXcoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIHJldHVybiB4bWxUZXh0V3JpdGVyV3JpdGVSYXdMZW4od3JpdGVyLCBjb250ZW50LCB4bWxTdHJsZW4oY29udGVudCkpOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFN0cmluZzoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdAorICoKKyAqIFdyaXRlIGEgZm9ybWF0dGVkIHhtbCB0ZXh0LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludCBYTUxDREVDTAoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0U3RyaW5nKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLCBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKQoreworICAgIGludCByYzsKKyAgICB2YV9saXN0IGFwOworCisgICAgaWYgKCh3cml0ZXIgPT0gTlVMTCkgfHwgKGZvcm1hdCA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmcod3JpdGVyLCBmb3JtYXQsIGFwKTsKKworICAgIHZhX2VuZChhcCk7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmc6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQGFyZ3B0cjogIHBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4KKyAqCisgKiBXcml0ZSBhIGZvcm1hdHRlZCB4bWwgdGV4dC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRTdHJpbmcoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCBhcmdwdHIpCit7CisgICAgaW50IHJjOworICAgIHhtbENoYXIgKmJ1ZjsKKworICAgIGlmICgod3JpdGVyID09IE5VTEwpIHx8IChmb3JtYXQgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGJ1ZiA9IHhtbFRleHRXcml0ZXJWU3ByaW50Zihmb3JtYXQsIGFyZ3B0cik7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZyh3cml0ZXIsIGJ1Zik7CisKKyAgICB4bWxGcmVlKGJ1Zik7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZzoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQGNvbnRlbnQ6ICB0ZXh0IHN0cmluZworICoKKyAqIFdyaXRlIGFuIHhtbCB0ZXh0LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlU3RyaW5nKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLCBjb25zdCB4bWxDaGFyICogY29udGVudCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworICAgIHhtbENoYXIgKmJ1ZjsKKworICAgIGlmICgod3JpdGVyID09IE5VTEwpIHx8IChjb250ZW50ID09IE5VTEwpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGJ1ZiA9ICh4bWxDaGFyICopIGNvbnRlbnQ7CisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrICE9IDApIHsKKyAgICAgICAgcCA9ICh4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqKSB4bWxMaW5rR2V0RGF0YShsayk7CisgICAgICAgIGlmIChwICE9IDApIHsKKyAgICAgICAgICAgIHN3aXRjaCAocC0+c3RhdGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX05BTUU6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9URVhUOgorI2lmIDAKKyAgICAgICAgICAgICAgICAgICAgYnVmID0gTlVMTDsKKwkJICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlRXNjYXBlKHdyaXRlci0+b3V0LCBjb250ZW50LCBOVUxMKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBidWYgPSB4bWxFbmNvZGVTcGVjaWFsQ2hhcnMoTlVMTCwgY29udGVudCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfQVRUUklCVVRFOgorICAgICAgICAgICAgICAgICAgICBidWYgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICB4bWxBdHRyU2VyaWFsaXplVHh0Q29udGVudCh3cml0ZXItPm91dC0+YnVmZmVyLCB3cml0ZXItPmRvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgY29udGVudCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCQlkZWZhdWx0OgorCQkgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoYnVmICE9IE5VTEwpIHsKKyAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVSYXcod3JpdGVyLCBidWYpOworCisgICAgICAgIGlmIChidWYgIT0gY29udGVudCkgICAgIC8qIGJ1ZiB3YXMgYWxsb2NhdGVkIGJ5IHVzLCBzbyBmcmVlIGl0ICovCisgICAgICAgICAgICB4bWxGcmVlKGJ1Zik7CisKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sT3V0cHV0QnVmZmVyV3JpdGVCYXNlNjQ6CisgKiBAb3V0OiB0aGUgeG1sT3V0cHV0QnVmZmVyUHRyCisgKiBAZGF0YTogICBiaW5hcnkgZGF0YQorICogQGxlbjogIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gZW5jb2RlCisgKgorICogV3JpdGUgYmFzZTY0IGVuY29kZWQgZGF0YSB0byBhbiB4bWxPdXRwdXRCdWZmZXIuCisgKiBBZGFwdGVkIGZyb20gSm9obiBXYWxrZXIncyBiYXNlNjQuYyAoaHR0cDovL3d3dy5mb3VybWlsYWIuY2gvKS4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxPdXRwdXRCdWZmZXJXcml0ZUJhc2U2NCh4bWxPdXRwdXRCdWZmZXJQdHIgb3V0LCBpbnQgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSkKK3sKKyAgICBzdGF0aWMgdW5zaWduZWQgY2hhciBkdGFibGVbNjRdID0KKyAgICAgICAgICAgIHsnQScsJ0InLCdDJywnRCcsJ0UnLCdGJywnRycsJ0gnLCdJJywnSicsJ0snLCdMJywnTScsCisJICAgICAnTicsJ08nLCdQJywnUScsJ1InLCdTJywnVCcsJ1UnLCdWJywnVycsJ1gnLCdZJywnWicsCisJICAgICAnYScsJ2InLCdjJywnZCcsJ2UnLCdmJywnZycsJ2gnLCdpJywnaicsJ2snLCdsJywnbScsCisJICAgICAnbicsJ28nLCdwJywncScsJ3InLCdzJywndCcsJ3UnLCd2JywndycsJ3gnLCd5JywneicsCisJICAgICAnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNicsJzcnLCc4JywnOScsJysnLCcvJ307CisKKyAgICBpbnQgaTsKKyAgICBpbnQgbGluZWxlbjsKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKworICAgIGlmICgob3V0ID09IE5VTEwpIHx8IChsZW4gPCAwKSB8fCAoZGF0YSA9PSBOVUxMKSkKKyAgICAgICAgcmV0dXJuKC0xKTsKKworICAgIGxpbmVsZW4gPSAwOworICAgIHN1bSA9IDA7CisKKyAgICBpID0gMDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICB1bnNpZ25lZCBjaGFyIGlncm91cFszXTsKKyAgICAgICAgdW5zaWduZWQgY2hhciBvZ3JvdXBbNF07CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgbjsKKworICAgICAgICBpZ3JvdXBbMF0gPSBpZ3JvdXBbMV0gPSBpZ3JvdXBbMl0gPSAwOworICAgICAgICBmb3IgKG4gPSAwOyBuIDwgMyAmJiBpIDwgbGVuOyBuKyssIGkrKykgeworICAgICAgICAgICAgYyA9IGRhdGFbaV07CisgICAgICAgICAgICBpZ3JvdXBbbl0gPSAodW5zaWduZWQgY2hhcikgYzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID4gMCkgeworICAgICAgICAgICAgb2dyb3VwWzBdID0gZHRhYmxlW2lncm91cFswXSA+PiAyXTsKKyAgICAgICAgICAgIG9ncm91cFsxXSA9IGR0YWJsZVsoKGlncm91cFswXSAmIDMpIDw8IDQpIHwgKGlncm91cFsxXSA+PiA0KV07CisgICAgICAgICAgICBvZ3JvdXBbMl0gPQorICAgICAgICAgICAgICAgIGR0YWJsZVsoKGlncm91cFsxXSAmIDB4RikgPDwgMikgfCAoaWdyb3VwWzJdID4+IDYpXTsKKyAgICAgICAgICAgIG9ncm91cFszXSA9IGR0YWJsZVtpZ3JvdXBbMl0gJiAweDNGXTsKKworICAgICAgICAgICAgaWYgKG4gPCAzKSB7CisgICAgICAgICAgICAgICAgb2dyb3VwWzNdID0gJz0nOworICAgICAgICAgICAgICAgIGlmIChuIDwgMikgeworICAgICAgICAgICAgICAgICAgICBvZ3JvdXBbMl0gPSAnPSc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGluZWxlbiA+PSBCNjRMSU5FTEVOKSB7CisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZShvdXQsIDIsIEI2NENSTEYpOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICBsaW5lbGVuID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGUob3V0LCA0LCAoY29uc3QgY2hhciAqKSBvZ3JvdXApOworICAgICAgICAgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICAgICAgbGluZWxlbiArPSA0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGkgPj0gbGVuKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVCYXNlNjQ6CisgKiBAd3JpdGVyOiB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQGRhdGE6ICAgYmluYXJ5IGRhdGEKKyAqIEBzdGFydDogIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIGRhdGEgb2YgdGhlIGZpcnN0IGJ5dGUgdG8gZW5jb2RlCisgKiBAbGVuOiAgdGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGUKKyAqCisgKiBXcml0ZSBhbiBiYXNlNjQgZW5jb2RlZCB4bWwgdGV4dC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZUJhc2U2NCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgY2hhciAqZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIGludCBsZW4pCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICgod3JpdGVyID09IE5VTEwpIHx8IChkYXRhID09IE5VTEwpIHx8IChzdGFydCA8IDApIHx8IChsZW4gPCAwKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3VtID0gMDsKKyAgICBsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICBpZiAobGsgIT0gMCkgeworICAgICAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICAgICAgaWYgKHAgIT0gMCkgeworICAgICAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVySGFuZGxlU3RhdGVEZXBlbmRlbmNpZXMod3JpdGVyLCBwKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdyaXRlci0+aW5kZW50KQorICAgICAgICB3cml0ZXItPmRvaW5kZW50ID0gMDsKKworICAgIGNvdW50ID0KKyAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVCYXNlNjQod3JpdGVyLT5vdXQsIGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIgKikgZGF0YSArIHN0YXJ0KTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxPdXRwdXRCdWZmZXJXcml0ZUJpbkhleDoKKyAqIEBvdXQ6IHRoZSB4bWxPdXRwdXRCdWZmZXJQdHIKKyAqIEBkYXRhOiAgIGJpbmFyeSBkYXRhCisgKiBAbGVuOiAgdGhlIG51bWJlciBvZiBieXRlcyB0byBlbmNvZGUKKyAqCisgKiBXcml0ZSBocXggZW5jb2RlZCBkYXRhIHRvIGFuIHhtbE91dHB1dEJ1ZmZlci4KKyAqIDo6dG9kbworICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSAKKyAqIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIGludAoreG1sT3V0cHV0QnVmZmVyV3JpdGVCaW5IZXgoeG1sT3V0cHV0QnVmZmVyUHRyIG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgc3RhdGljIGNoYXIgaGV4WzE2XSA9IAorICAgIAl7JzAnLCcxJywnMicsJzMnLCc0JywnNScsJzYnLCc3JywnOCcsJzknLCdBJywnQicsJ0MnLCdEJywnRScsJ0YnfTsKKyAgICBpbnQgaTsKKworICAgIGlmICgob3V0ID09IE5VTEwpIHx8IChkYXRhID09IE5VTEwpIHx8IChsZW4gPCAwKSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgc3VtID0gMDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgY291bnQgPQorICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGUob3V0LCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgJmhleFtkYXRhW2ldID4+IDRdKTsKKyAgICAgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgIGNvdW50ID0KKyAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlKG91dCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopICZoZXhbZGF0YVtpXSAmIDB4Rl0pOworICAgICAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICB9CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUJpbkhleDoKKyAqIEB3cml0ZXI6IHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAZGF0YTogICBiaW5hcnkgZGF0YQorICogQHN0YXJ0OiAgdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgZGF0YSBvZiB0aGUgZmlyc3QgYnl0ZSB0byBlbmNvZGUKKyAqIEBsZW46ICB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGVuY29kZQorICoKKyAqIFdyaXRlIGEgQmluSGV4IGVuY29kZWQgeG1sIHRleHQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVCaW5IZXgoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGNvbnN0IGNoYXIgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCBpbnQgbGVuKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBpZiAoKHdyaXRlciA9PSBOVUxMKSB8fCAoZGF0YSA9PSBOVUxMKSB8fCAoc3RhcnQgPCAwKSB8fCAobGVuIDwgMCkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1bSA9IDA7CisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrICE9IDApIHsKKyAgICAgICAgcCA9ICh4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqKSB4bWxMaW5rR2V0RGF0YShsayk7CisgICAgICAgIGlmIChwICE9IDApIHsKKyAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckhhbmRsZVN0YXRlRGVwZW5kZW5jaWVzKHdyaXRlciwgcCk7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh3cml0ZXItPmluZGVudCkKKyAgICAgICAgd3JpdGVyLT5kb2luZGVudCA9IDA7CisKKyAgICBjb3VudCA9CisgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlQmluSGV4KHdyaXRlci0+b3V0LCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopIGRhdGEgKyBzdGFydCk7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIGVsZW1lbnQgbmFtZQorICoKKyAqIFN0YXJ0IGFuIHhtbCBhdHRyaWJ1dGUuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGUoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGNvbnN0IHhtbENoYXIgKiBuYW1lKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBpZiAoKHdyaXRlciA9PSBOVUxMKSB8fCAobmFtZSA9PSBOVUxMKSB8fCAoKm5hbWUgPT0gJ1wwJykpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1bSA9IDA7CisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrID09IDApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgeG1sTGlua0dldERhdGEobGspOworICAgIGlmIChwID09IDApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN3aXRjaCAocC0+c3RhdGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9BVFRSSUJVVEU6CisgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUod3JpdGVyKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OQU1FOgorICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIiAiKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgY291bnQgPQorICAgICAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICopIG5hbWUpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPSIpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfQVRUUklCVVRFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUzoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQHByZWZpeDogIG5hbWVzcGFjZSBwcmVmaXggb3IgTlVMTAorICogQG5hbWU6ICBlbGVtZW50IGxvY2FsIG5hbWUKKyAqIEBuYW1lc3BhY2VVUkk6ICBuYW1lc3BhY2UgVVJJIG9yIE5VTEwKKyAqCisgKiBTdGFydCBhbiB4bWwgYXR0cmlidXRlIHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwcmVmaXgsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxDaGFyICpidWY7CisgICAgeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICgod3JpdGVyID09IE5VTEwpIHx8IChuYW1lID09IE5VTEwpIHx8ICgqbmFtZSA9PSAnXDAnKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgLyogSGFuZGxlIG5hbWVzcGFjZSBmaXJzdCBpbiBjYXNlIG9mIGVycm9yICovCisgICAgaWYgKG5hbWVzcGFjZVVSSSAhPSAwKSB7CisgICAgICAgIHhtbFRleHRXcml0ZXJOc1N0YWNrRW50cnkgbnNlbnRyeSwgKmN1cm5zOworCisgICAgICAgIGJ1ZiA9IHhtbFN0cmR1cChCQURfQ0FTVCAieG1sbnMiKTsKKyAgICAgICAgaWYgKHByZWZpeCAhPSAwKSB7CisgICAgICAgICAgICBidWYgPSB4bWxTdHJjYXQoYnVmLCBCQURfQ0FTVCAiOiIpOworICAgICAgICAgICAgYnVmID0geG1sU3RyY2F0KGJ1ZiwgcHJlZml4KTsKKyAgICAgICAgfQorCisgICAgICAgIG5zZW50cnkucHJlZml4ID0gYnVmOworICAgICAgICBuc2VudHJ5LnVyaSA9ICh4bWxDaGFyICopbmFtZXNwYWNlVVJJOworICAgICAgICBuc2VudHJ5LmVsZW0gPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisKKyAgICAgICAgY3VybnMgPSAoeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSAqKXhtbExpc3RTZWFyY2god3JpdGVyLT5uc3N0YWNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikmbnNlbnRyeSk7CisgICAgICAgIGlmICgoY3VybnMgIT0gTlVMTCkpIHsKKyAgICAgICAgICAgIHhtbEZyZWUoYnVmKTsKKyAgICAgICAgICAgIGlmICh4bWxTdHJjbXAoY3VybnMtPnVyaSwgbmFtZXNwYWNlVVJJKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLyogTmFtZXNwYWNlIGFscmVhZHkgZGVmaW5lZCBvbiBlbGVtZW50IHNraXAgKi8KKyAgICAgICAgICAgICAgICBidWYgPSBOVUxMOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBQcmVmaXggbWlzbWF0Y2ggc28gZXJyb3Igb3V0ICovCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogRG8gbm90IGFkZCBuYW1lc3BhY2UgZGVjbCB0byBsaXN0IC0gaXQgaXMgYWxyZWFkeSB0aGVyZSAqLworICAgICAgICBpZiAoYnVmICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHAgPSAoeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSAqKQorICAgICAgICAgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSkpOworICAgICAgICAgICAgaWYgKHAgPT0gMCkgeworICAgICAgICAgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLAorCQkJCQkJCQkgICAgICAgICJ4bWxUZXh0V3JpdGVyU3RhcnRBdHRyaWJ1dGVOUyA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHAtPnByZWZpeCA9IGJ1ZjsKKyAgICAgICAgICAgIHAtPnVyaSA9IHhtbFN0cmR1cChuYW1lc3BhY2VVUkkpOworICAgICAgICAgICAgaWYgKHAtPnVyaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgICAgICAgICAgeG1sRnJlZShwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwLT5lbGVtID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworCisgICAgICAgICAgICB4bWxMaXN0UHVzaEZyb250KHdyaXRlci0+bnNzdGFjaywgcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBidWYgPSBOVUxMOworICAgIGlmIChwcmVmaXggIT0gMCkgeworICAgICAgICBidWYgPSB4bWxTdHJkdXAocHJlZml4KTsKKyAgICAgICAgYnVmID0geG1sU3RyY2F0KGJ1ZiwgQkFEX0NBU1QgIjoiKTsKKyAgICB9CisgICAgYnVmID0geG1sU3RyY2F0KGJ1ZiwgbmFtZSk7CisKKyAgICBzdW0gPSAwOworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlKHdyaXRlciwgYnVmKTsKKyAgICB4bWxGcmVlKGJ1Zik7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZToKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIEVuZCB0aGUgY3VycmVudCB4bWwgZWxlbWVudC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJFbmRBdHRyaWJ1dGUoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrID09IDApIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgeG1sTGlua0dldERhdGEobGspOworICAgIGlmIChwID09IDApIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHN1bSA9IDA7CisgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0FUVFJJQlVURToKKyAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfTkFNRTsKKworICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0QXR0cmlidXRlOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIGF0dHJpYnV0ZSBuYW1lCisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0CisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGF0dHJpYnV0ZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQgWE1MQ0RFQ0wKK3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwgY29uc3QgY2hhciAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikKK3sKKyAgICBpbnQgcmM7CisgICAgdmFfbGlzdCBhcDsKKworICAgIHZhX3N0YXJ0KGFwLCBmb3JtYXQpOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlKHdyaXRlciwgbmFtZSwgZm9ybWF0LCBhcCk7CisKKyAgICB2YV9lbmQoYXApOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0QXR0cmlidXRlOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIGF0dHJpYnV0ZSBuYW1lCisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEBhcmdwdHI6ICBwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuCisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGF0dHJpYnV0ZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGUoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncHRyKQoreworICAgIGludCByYzsKKyAgICB4bWxDaGFyICpidWY7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGJ1ZiA9IHhtbFRleHRXcml0ZXJWU3ByaW50Zihmb3JtYXQsIGFyZ3B0cik7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZSh3cml0ZXIsIG5hbWUsIGJ1Zik7CisKKyAgICB4bWxGcmVlKGJ1Zik7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUF0dHJpYnV0ZToKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQG5hbWU6ICBhdHRyaWJ1dGUgbmFtZQorICogQGNvbnRlbnQ6ICBhdHRyaWJ1dGUgY29udGVudAorICoKKyAqIFdyaXRlIGFuIHhtbCBhdHRyaWJ1dGUuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGUoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworCisgICAgc3VtID0gMDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJTdGFydEF0dHJpYnV0ZSh3cml0ZXIsIG5hbWUpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcod3JpdGVyLCBjb250ZW50KTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSh3cml0ZXIpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAcHJlZml4OiAgbmFtZXNwYWNlIHByZWZpeAorICogQG5hbWU6ICBhdHRyaWJ1dGUgbG9jYWwgbmFtZQorICogQG5hbWVzcGFjZVVSSTogIG5hbWVzcGFjZSBVUkkKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQKKyAqCisgKiBXcml0ZSBhIGZvcm1hdHRlZCB4bWwgYXR0cmlidXRlLndpdGggbmFtZXNwYWNlIHN1cHBvcnQKKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQgWE1MQ0RFQ0wKK3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEF0dHJpYnV0ZU5TKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQoreworICAgIGludCByYzsKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyh3cml0ZXIsIHByZWZpeCwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVUkksIGZvcm1hdCwgYXApOworCisgICAgdmFfZW5kKGFwKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEF0dHJpYnV0ZU5TOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAcHJlZml4OiAgbmFtZXNwYWNlIHByZWZpeAorICogQG5hbWU6ICBhdHRyaWJ1dGUgbG9jYWwgbmFtZQorICogQG5hbWVzcGFjZVVSSTogIG5hbWVzcGFjZSBVUkkKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQGFyZ3B0cjogIHBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4KKyAqCisgKiBXcml0ZSBhIGZvcm1hdHRlZCB4bWwgYXR0cmlidXRlLndpdGggbmFtZXNwYWNlIHN1cHBvcnQKKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRBdHRyaWJ1dGVOUyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3B0cikKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sQ2hhciAqYnVmOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBidWYgPSB4bWxUZXh0V3JpdGVyVlNwcmludGYoZm9ybWF0LCBhcmdwdHIpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyh3cml0ZXIsIHByZWZpeCwgbmFtZSwgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmKTsKKworICAgIHhtbEZyZWUoYnVmKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlTlM6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBwcmVmaXg6ICBuYW1lc3BhY2UgcHJlZml4CisgKiBAbmFtZTogIGF0dHJpYnV0ZSBsb2NhbCBuYW1lCisgKiBAbmFtZXNwYWNlVVJJOiAgbmFtZXNwYWNlIFVSSQorICogQGNvbnRlbnQ6ICBhdHRyaWJ1dGUgY29udGVudAorICoKKyAqIFdyaXRlIGFuIHhtbCBhdHRyaWJ1dGUuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVBdHRyaWJ1dGVOUyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwcmVmaXgsIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworCisgICAgaWYgKCh3cml0ZXIgPT0gTlVMTCkgfHwgKG5hbWUgPT0gTlVMTCkgfHwgKCpuYW1lID09ICdcMCcpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlclN0YXJ0QXR0cmlidXRlTlMod3JpdGVyLCBwcmVmaXgsIG5hbWUsIG5hbWVzcGFjZVVSSSk7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZyh3cml0ZXIsIGNvbnRlbnQpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlKHdyaXRlcik7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQG5hbWU6ICBlbGVtZW50IG5hbWUKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQKKyAqCisgKiBXcml0ZSBhIGZvcm1hdHRlZCB4bWwgZWxlbWVudC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQgWE1MQ0RFQ0wKK3htbFRleHRXcml0ZXJXcml0ZUZvcm1hdEVsZW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLCBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikKK3sKKyAgICBpbnQgcmM7CisgICAgdmFfbGlzdCBhcDsKKworICAgIHZhX3N0YXJ0KGFwLCBmb3JtYXQpOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCh3cml0ZXIsIG5hbWUsIGZvcm1hdCwgYXApOworCisgICAgdmFfZW5kKGFwKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnQ6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgZWxlbWVudCBuYW1lCisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEBhcmdwdHI6ICBwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuCisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgeG1sIGVsZW1lbnQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLCBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3B0cikKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sQ2hhciAqYnVmOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBidWYgPSB4bWxUZXh0V3JpdGVyVlNwcmludGYoZm9ybWF0LCBhcmdwdHIpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHdyaXRlciwgbmFtZSwgYnVmKTsKKworICAgIHhtbEZyZWUoYnVmKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRWxlbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQG5hbWU6ICBlbGVtZW50IG5hbWUKKyAqIEBjb250ZW50OiAgZWxlbWVudCBjb250ZW50CisgKgorICogV3JpdGUgYW4geG1sIGVsZW1lbnQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLCBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIGNvbnRlbnQpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisKKyAgICBzdW0gPSAwOworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudCh3cml0ZXIsIG5hbWUpOworICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZyh3cml0ZXIsIGNvbnRlbnQpOworICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmRFbGVtZW50KHdyaXRlcik7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRFbGVtZW50TlM6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBwcmVmaXg6ICBuYW1lc3BhY2UgcHJlZml4CisgKiBAbmFtZTogIGVsZW1lbnQgbG9jYWwgbmFtZQorICogQG5hbWVzcGFjZVVSSTogIG5hbWVzcGFjZSBVUkkKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQKKyAqCisgKiBXcml0ZSBhIGZvcm1hdHRlZCB4bWwgZWxlbWVudCB3aXRoIG5hbWVzcGFjZSBzdXBwb3J0LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludCBYTUxDREVDTAoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RWxlbWVudE5TKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKK3sKKyAgICBpbnQgcmM7CisgICAgdmFfbGlzdCBhcDsKKworICAgIHZhX3N0YXJ0KGFwLCBmb3JtYXQpOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TKHdyaXRlciwgcHJlZml4LCBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVUkksIGZvcm1hdCwgYXApOworCisgICAgdmFfZW5kKGFwKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdEVsZW1lbnROUzoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQHByZWZpeDogIG5hbWVzcGFjZSBwcmVmaXgKKyAqIEBuYW1lOiAgZWxlbWVudCBsb2NhbCBuYW1lCisgKiBAbmFtZXNwYWNlVVJJOiAgbmFtZXNwYWNlIFVSSQorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBAYXJncHRyOiAgcG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LgorICoKKyAqIFdyaXRlIGEgZm9ybWF0dGVkIHhtbCBlbGVtZW50IHdpdGggbmFtZXNwYWNlIHN1cHBvcnQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RWxlbWVudE5TKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3B0cikKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sQ2hhciAqYnVmOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBidWYgPSB4bWxUZXh0V3JpdGVyVlNwcmludGYoZm9ybWF0LCBhcmdwdHIpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlMod3JpdGVyLCBwcmVmaXgsIG5hbWUsIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYpOworCisgICAgeG1sRnJlZShidWYpOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVFbGVtZW50TlM6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBwcmVmaXg6ICBuYW1lc3BhY2UgcHJlZml4CisgKiBAbmFtZTogIGVsZW1lbnQgbG9jYWwgbmFtZQorICogQG5hbWVzcGFjZVVSSTogIG5hbWVzcGFjZSBVUkkKKyAqIEBjb250ZW50OiAgZWxlbWVudCBjb250ZW50CisgKgorICogV3JpdGUgYW4geG1sIGVsZW1lbnQgd2l0aCBuYW1lc3BhY2Ugc3VwcG9ydC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZUVsZW1lbnROUyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHJlZml4LCBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworCisgICAgaWYgKCh3cml0ZXIgPT0gTlVMTCkgfHwgKG5hbWUgPT0gTlVMTCkgfHwgKCpuYW1lID09ICdcMCcpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGNvdW50ID0KKyAgICAgICAgeG1sVGV4dFdyaXRlclN0YXJ0RWxlbWVudE5TKHdyaXRlciwgcHJlZml4LCBuYW1lLCBuYW1lc3BhY2VVUkkpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcod3JpdGVyLCBjb250ZW50KTsKKyAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kRWxlbWVudCh3cml0ZXIpOworICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlclN0YXJ0UEk6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEB0YXJnZXQ6ICBQSSB0YXJnZXQKKyAqCisgKiBTdGFydCBhbiB4bWwgUEkuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyU3RhcnRQSSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgeG1sQ2hhciAqIHRhcmdldCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKCh3cml0ZXIgPT0gTlVMTCkgfHwgKHRhcmdldCA9PSBOVUxMKSB8fCAoKnRhcmdldCA9PSAnXDAnKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKHhtbFN0cmNhc2VjbXAodGFyZ2V0LCAoY29uc3QgeG1sQ2hhciAqKSAieG1sIikgPT0gMCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydFBJIDogdGFyZ2V0IG5hbWUgW1h4XVtNbV1bTGxdIGlzIHJlc2VydmVkIGZvciB4bWwgc3RhbmRhcmRpemF0aW9uIVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBzdW0gPSAwOworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayAhPSAwKSB7CisgICAgICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgeG1sTGlua0dldERhdGEobGspOworICAgICAgICBpZiAocCAhPSAwKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9BVFRSSUJVVEU6CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZEF0dHJpYnV0ZSh3cml0ZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgICAgIC8qIGZhbGx0aHJvdWdoICovCisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OQU1FOgorICAgICAgICAgICAgICAgICAgICAvKiBPdXRwdXQgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyAqLworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJPdXRwdXROU0RlY2wod3JpdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfVEVYVDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OT05FOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfVEVYVDoKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9QSToKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX1BJX1RFWFQ6CisgICAgICAgICAgICAgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0UEkgOiBuZXN0ZWQgUEkhXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikKKyAgICAgICAgeG1sTWFsbG9jKHNpemVvZih4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSkpOworICAgIGlmIChwID09IDApIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0UEkgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwLT5uYW1lID0geG1sU3RyZHVwKHRhcmdldCk7CisgICAgaWYgKHAtPm5hbWUgPT0gMCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyU3RhcnRQSSA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgeG1sRnJlZShwKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBwLT5zdGF0ZSA9IFhNTF9URVhUV1JJVEVSX1BJOworCisgICAgeG1sTGlzdFB1c2hGcm9udCh3cml0ZXItPm5vZGVzLCBwKTsKKworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI8PyIpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisgICAgY291bnQgPQorICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgKGNvbnN0IGNoYXIgKikgcC0+bmFtZSk7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlckVuZFBJOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKgorICogRW5kIHRoZSBjdXJyZW50IHhtbCBQSS4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJFbmRQSSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICBpZiAobGsgPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHN1bSA9IDA7CisgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX1BJOgorICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX1BJX1RFWFQ6CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPz4iKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKHdyaXRlci0+aW5kZW50KSB7CisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICJcbiIpOworICAgICAgCWlmIChjb3VudCA8IDApCisgICAgICAgCXJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHhtbExpc3RQb3BGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdFBJOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAdGFyZ2V0OiAgUEkgdGFyZ2V0CisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0CisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgUEkuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50IFhNTENERUNMCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRQSSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgeG1sQ2hhciAqIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQoreworICAgIGludCByYzsKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRQSSh3cml0ZXIsIHRhcmdldCwgZm9ybWF0LCBhcCk7CisKKyAgICB2YV9lbmQoYXApOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEk6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEB0YXJnZXQ6ICBQSSB0YXJnZXQKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQGFyZ3B0cjogIHBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4KKyAqCisgKiBXcml0ZSBhIGZvcm1hdHRlZCB4bWwgUEkuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0UEkoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHRhcmdldCwgY29uc3QgY2hhciAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXJncHRyKQoreworICAgIGludCByYzsKKyAgICB4bWxDaGFyICpidWY7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGJ1ZiA9IHhtbFRleHRXcml0ZXJWU3ByaW50Zihmb3JtYXQsIGFyZ3B0cik7CisgICAgaWYgKGJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVBJKHdyaXRlciwgdGFyZ2V0LCBidWYpOworCisgICAgeG1sRnJlZShidWYpOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVQSToKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQHRhcmdldDogIFBJIHRhcmdldAorICogQGNvbnRlbnQ6ICBQSSBjb250ZW50CisgKgorICogV3JpdGUgYW4geG1sIFBJLgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlUEkoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGNvbnN0IHhtbENoYXIgKiB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogY29udGVudCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKworICAgIHN1bSA9IDA7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyU3RhcnRQSSh3cml0ZXIsIHRhcmdldCk7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGlmIChjb250ZW50ICE9IDApIHsKKyAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcod3JpdGVyLCBjb250ZW50KTsKKyAgICAgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZFBJKHdyaXRlcik7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyU3RhcnRDREFUQToKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIFN0YXJ0IGFuIHhtbCBDREFUQSBzZWN0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlclN0YXJ0Q0RBVEEoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3VtID0gMDsKKyAgICBsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICBpZiAobGsgIT0gMCkgeworICAgICAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICAgICAgaWYgKHAgIT0gMCkgeworICAgICAgICAgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfTk9ORToKKwkJY2FzZSBYTUxfVEVYVFdSSVRFUl9URVhUOgorICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfUEk6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9QSV9URVhUOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0FUVFJJQlVURToKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kQXR0cmlidXRlKHdyaXRlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX05BTUU6CisgICAgICAgICAgICAgICAgICAgIC8qIE91dHB1dCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zICovCisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlck91dHB1dE5TRGVjbCh3cml0ZXIpOworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI+Iik7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICAgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9URVhUOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0NEQVRBOgorICAgICAgICAgICAgICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydENEQVRBIDogQ0RBVEEgbm90IGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0IVxuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkpKTsKKyAgICBpZiAocCA9PSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydENEQVRBIDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcC0+bmFtZSA9IE5VTEw7CisgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9DREFUQTsKKworICAgIHhtbExpc3RQdXNoRnJvbnQod3JpdGVyLT5ub2RlcywgcCk7CisKKyAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPCFbQ0RBVEFbIik7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlckVuZENEQVRBOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKgorICogRW5kIGFuIHhtbCBDREFUQSBzZWN0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlckVuZENEQVRBKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIHN3aXRjaCAocC0+c3RhdGUpIHsKKyAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9DREFUQToKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICJdXT4iKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgeG1sTGlzdFBvcEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0Q0RBVEE6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQC4uLjogIGV4dHJhIHBhcmFtZXRlcnMgZm9yIHRoZSBmb3JtYXQKKyAqCisgKiBXcml0ZSBhIGZvcm1hdHRlZCB4bWwgQ0RBVEEuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50IFhNTENERUNMCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXRDREFUQSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgY2hhciAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKQoreworICAgIGludCByYzsKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXRDREFUQSh3cml0ZXIsIGZvcm1hdCwgYXApOworCisgICAgdmFfZW5kKGFwKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEBhcmdwdHI6ICBwb2ludGVyIHRvIHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuCisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgeG1sIENEQVRBLgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdENEQVRBKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLCBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcmdwdHIpCit7CisgICAgaW50IHJjOworICAgIHhtbENoYXIgKmJ1ZjsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgYnVmID0geG1sVGV4dFdyaXRlclZTcHJpbnRmKGZvcm1hdCwgYXJncHRyKTsKKyAgICBpZiAoYnVmID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEod3JpdGVyLCBidWYpOworCisgICAgeG1sRnJlZShidWYpOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVDREFUQToKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQGNvbnRlbnQ6ICBDREFUQSBjb250ZW50CisgKgorICogV3JpdGUgYW4geG1sIENEQVRBLgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlQ0RBVEEoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworCisgICAgc3VtID0gMDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJTdGFydENEQVRBKHdyaXRlcik7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGlmIChjb250ZW50ICE9IDApIHsKKyAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcod3JpdGVyLCBjb250ZW50KTsKKyAgICAgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZENEQVRBKHdyaXRlcik7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyU3RhcnREVEQ6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIERURAorICogQHB1YmlkOiAgdGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXIKKyAqIEBzeXNpZDogIHRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFRECisgKgorICogU3RhcnQgYW4geG1sIERURC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJTdGFydERURCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHViaWQsIGNvbnN0IHhtbENoYXIgKiBzeXNpZCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMIHx8IG5hbWUgPT0gTlVMTCB8fCAqbmFtZSA9PSAnXDAnKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmICgobGsgIT0gTlVMTCkgJiYgKHhtbExpbmtHZXREYXRhKGxrKSAhPSBOVUxMKSkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydERURCA6IERURCBhbGxvd2VkIG9ubHkgaW4gcHJvbG9nIVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkpKTsKKyAgICBpZiAocCA9PSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydERURCA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHAtPm5hbWUgPSB4bWxTdHJkdXAobmFtZSk7CisgICAgaWYgKHAtPm5hbWUgPT0gMCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyU3RhcnREVEQgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgIHhtbEZyZWUocCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9EVEQ7CisKKyAgICB4bWxMaXN0UHVzaEZyb250KHdyaXRlci0+bm9kZXMsIHApOworCisgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIjwhRE9DVFlQRSAiKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsIChjb25zdCBjaGFyICopIG5hbWUpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICBpZiAocHViaWQgIT0gMCkgeworICAgICAgICBpZiAoc3lzaWQgPT0gMCkgeworICAgICAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RFREIDogc3lzdGVtIGlkZW50aWZpZXIgbmVlZGVkIVxuIik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpZiAod3JpdGVyLT5pbmRlbnQpCisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAiXG4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgIiAiKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworCisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICJQVUJMSUMgIik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICBjb3VudCA9CisgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgKGNvbnN0IGNoYXIgKikgcHViaWQpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgaWYgKHN5c2lkICE9IDApIHsKKyAgICAgICAgaWYgKHB1YmlkID09IDApIHsKKyAgICAgICAgICAgIGlmICh3cml0ZXItPmluZGVudCkKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAiXG4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAiICIpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiU1lTVEVNICIpOworICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgIH0gZWxzZSB7CisJCQlpZiAod3JpdGVyLT5pbmRlbnQpCisgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4gICAgICAgIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgIiAiKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICB9CisKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisKKyAgICAgICAgY291bnQgPQorICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsIChjb25zdCBjaGFyICopIHN5c2lkKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworCisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGUod3JpdGVyLT5vdXQsIDEsICZ3cml0ZXItPnFjaGFyKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlckVuZERURDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIEVuZCBhbiB4bWwgRFRELgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlckVuZERURCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgbG9vcDsKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGxvb3AgPSAxOworICAgIHdoaWxlIChsb29wKSB7CisgICAgICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgICAgICBpZiAobGsgPT0gTlVMTCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICAgICAgaWYgKHAgPT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9URVhUOgorICAgICAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICJdIik7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVEQ6CisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIj4iKTsKKworICAgICAgICAgICAgICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICJcbiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHhtbExpc3RQb3BGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0VMRU06CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9FTEVNX1RFWFQ6CisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCh3cml0ZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfQVRUTDoKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0FUVExfVEVYVDoKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0KHdyaXRlcik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9FTlRZOgorICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfUEVOVDoKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0VOVFlfVEVYVDoKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkod3JpdGVyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfQ09NTUVOVDoKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmRDb21tZW50KHdyaXRlcik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGxvb3AgPSAwOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBEVEQKKyAqIEBwdWJpZDogIHRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyCisgKiBAc3lzaWQ6ICB0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURAorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdAorICoKKyAqIFdyaXRlIGEgRFREIHdpdGggYSBmb3JtYXR0ZWQgbWFya3VwIGRlY2xhcmF0aW9ucyBwYXJ0LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludCBYTUxDREVDTAoreG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFREKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwdWJpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3lzaWQsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQoreworICAgIGludCByYzsKKyAgICB2YV9saXN0IGFwOworCisgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CisKKyAgICByYyA9IHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQod3JpdGVyLCBuYW1lLCBwdWJpZCwgc3lzaWQsIGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXApOworCisgICAgdmFfZW5kKGFwKTsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERURDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgRFRECisgKiBAcHViaWQ6ICB0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcgorICogQHN5c2lkOiAgdGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQKKyAqIEBmb3JtYXQ6ICBmb3JtYXQgc3RyaW5nIChzZWUgcHJpbnRmKQorICogQGFyZ3B0cjogIHBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4KKyAqCisgKiBXcml0ZSBhIERURCB3aXRoIGEgZm9ybWF0dGVkIG1hcmt1cCBkZWNsYXJhdGlvbnMgcGFydC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVEQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHViaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3B0cikKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sQ2hhciAqYnVmOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBidWYgPSB4bWxUZXh0V3JpdGVyVlNwcmludGYoZm9ybWF0LCBhcmdwdHIpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVEVEQod3JpdGVyLCBuYW1lLCBwdWJpZCwgc3lzaWQsIGJ1Zik7CisKKyAgICB4bWxGcmVlKGJ1Zik7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZURURDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgRFRECisgKiBAcHViaWQ6ICB0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcgorICogQHN5c2lkOiAgdGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQKKyAqIEBzdWJzZXQ6ICBzdHJpbmcgY29udGVudCBvZiB0aGUgRFRECisgKgorICogV3JpdGUgYSBEVEQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVEVEQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHB1YmlkLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXNpZCwgY29uc3QgeG1sQ2hhciAqIHN1YnNldCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKworICAgIHN1bSA9IDA7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyU3RhcnREVEQod3JpdGVyLCBuYW1lLCBwdWJpZCwgc3lzaWQpOworICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBpZiAoc3Vic2V0ICE9IDApIHsKKyAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcod3JpdGVyLCBzdWJzZXQpOworICAgICAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICB9CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kRFREKHdyaXRlcik7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudAorICoKKyAqIFN0YXJ0IGFuIHhtbCBEVEQgZWxlbWVudC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGNvbnN0IHhtbENoYXIgKiBuYW1lKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwgfHwgbmFtZSA9PSBOVUxMIHx8ICpuYW1lID09ICdcMCcpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1bSA9IDA7CisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrID09IDApIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgeG1sTGlua0dldERhdGEobGspOworICAgIGlmIChwICE9IDApIHsKKyAgICAgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVEQ6CisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIiBbIik7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICBpZiAod3JpdGVyLT5pbmRlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIlxuIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9EVERfVEVYVDsKKyAgICAgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfVEVYVDoKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfTk9ORToKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgcCA9ICh4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqKQorICAgICAgICB4bWxNYWxsb2Moc2l6ZW9mKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5KSk7CisgICAgaWYgKHAgPT0gMCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxUZXh0V3JpdGVyU3RhcnREVERFbGVtZW50IDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcC0+bmFtZSA9IHhtbFN0cmR1cChuYW1lKTsKKyAgICBpZiAocC0+bmFtZSA9PSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgIHhtbEZyZWUocCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9EVERfRUxFTTsKKworICAgIHhtbExpc3RQdXNoRnJvbnQod3JpdGVyLT5ub2RlcywgcCk7CisKKyAgICBpZiAod3JpdGVyLT5pbmRlbnQpIHsKKyAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVJbmRlbnQod3JpdGVyKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI8IUVMRU1FTlQgIik7CisgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKyAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAoY29uc3QgY2hhciAqKSBuYW1lKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIEVuZCBhbiB4bWwgRFREIGVsZW1lbnQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyRW5kRFRERWxlbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0VMRU06CisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0VMRU1fVEVYVDoKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI+Iik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHhtbExpc3RQb3BGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREVsZW1lbnQ6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIERURCBlbGVtZW50CisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0CisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgRFREIGVsZW1lbnQuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50IFhNTENERUNMCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERFbGVtZW50KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCit7CisgICAgaW50IHJjOworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgZm9ybWF0KTsKKworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQod3JpdGVyLCBuYW1lLCBmb3JtYXQsIGFwKTsKKworICAgIHZhX2VuZChhcCk7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERFbGVtZW50OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBEVEQgZWxlbWVudAorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBAYXJncHRyOiAgcG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LgorICoKKyAqIFdyaXRlIGEgZm9ybWF0dGVkIERURCBlbGVtZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREVsZW1lbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCBhcmdwdHIpCit7CisgICAgaW50IHJjOworICAgIHhtbENoYXIgKmJ1ZjsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgYnVmID0geG1sVGV4dFdyaXRlclZTcHJpbnRmKGZvcm1hdCwgYXJncHRyKTsKKyAgICBpZiAoYnVmID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudCh3cml0ZXIsIG5hbWUsIGJ1Zik7CisKKyAgICB4bWxGcmVlKGJ1Zik7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZURUREVsZW1lbnQ6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIERURCBlbGVtZW50CisgKiBAY29udGVudDogIGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQKKyAqCisgKiBXcml0ZSBhIERURCBlbGVtZW50LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlRFRERWxlbWVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworCisgICAgaWYgKGNvbnRlbnQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3VtID0gMDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQod3JpdGVyLCBuYW1lKTsKKyAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZyh3cml0ZXIsIGNvbnRlbnQpOworICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZERUREVsZW1lbnQod3JpdGVyKTsKKyAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3Q6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUCisgKgorICogU3RhcnQgYW4geG1sIERURCBBVFRMSVNULgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgeG1sQ2hhciAqIG5hbWUpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCB8fCBuYW1lID09IE5VTEwgfHwgKm5hbWUgPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3VtID0gMDsKKyAgICBsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICBpZiAobGsgPT0gMCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcCA9ICh4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqKSB4bWxMaW5rR2V0RGF0YShsayk7CisgICAgaWYgKHAgIT0gMCkgeworICAgICAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURDoKKyAgICAgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiIFsiKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwLT5zdGF0ZSA9IFhNTF9URVhUV1JJVEVSX0RURF9URVhUOworICAgICAgICAgICAgICAgIC8qIGZhbGx0aHJvdWdoICovCisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9URVhUOgorICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OT05FOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkpKTsKKyAgICBpZiAocCA9PSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3QgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwLT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworICAgIGlmIChwLT5uYW1lID09IDApIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RFREQXR0bGlzdCA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgeG1sRnJlZShwKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBwLT5zdGF0ZSA9IFhNTF9URVhUV1JJVEVSX0RURF9BVFRMOworCisgICAgeG1sTGlzdFB1c2hGcm9udCh3cml0ZXItPm5vZGVzLCBwKTsKKworICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJXcml0ZUluZGVudCh3cml0ZXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIjwhQVRUTElTVCAiKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsIChjb25zdCBjaGFyICopIG5hbWUpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJFbmREVERBdHRsaXN0OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKgorICogRW5kIGFuIHhtbCBEVEQgYXR0cmlidXRlIGxpc3QuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyRW5kRFREQXR0bGlzdCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0FUVEw6CisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0FUVExfVEVYVDoKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI+Iik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICh3cml0ZXItPmluZGVudCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiXG4iKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHhtbExpc3RQb3BGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZUZvcm1hdERUREF0dGxpc3Q6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUCisgKiBAZm9ybWF0OiAgZm9ybWF0IHN0cmluZyAoc2VlIHByaW50ZikKKyAqIEAuLi46ICBleHRyYSBwYXJhbWV0ZXJzIGZvciB0aGUgZm9ybWF0CisgKgorICogV3JpdGUgYSBmb3JtYXR0ZWQgRFREIEFUVExJU1QuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50IFhNTENERUNMCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERBdHRsaXN0KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCit7CisgICAgaW50IHJjOworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgZm9ybWF0KTsKKworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3Qod3JpdGVyLCBuYW1lLCBmb3JtYXQsIGFwKTsKKworICAgIHZhX2VuZChhcCk7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZVZGb3JtYXREVERBdHRsaXN0OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVAorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBAYXJncHRyOiAgcG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LgorICoKKyAqIFdyaXRlIGEgZm9ybWF0dGVkIERURCBBVFRMSVNULgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREF0dGxpc3QoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCBhcmdwdHIpCit7CisgICAgaW50IHJjOworICAgIHhtbENoYXIgKmJ1ZjsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgYnVmID0geG1sVGV4dFdyaXRlclZTcHJpbnRmKGZvcm1hdCwgYXJncHRyKTsKKyAgICBpZiAoYnVmID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCh3cml0ZXIsIG5hbWUsIGJ1Zik7CisKKyAgICB4bWxGcmVlKGJ1Zik7CisgICAgcmV0dXJuIHJjOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZURUREF0dGxpc3Q6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIERURCBBVFRMSVNUCisgKiBAY29udGVudDogIGNvbnRlbnQgb2YgdGhlIEFUVExJU1QKKyAqCisgKiBXcml0ZSBhIERURCBBVFRMSVNULgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlRFREQXR0bGlzdCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworCisgICAgaWYgKGNvbnRlbnQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3VtID0gMDsKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJTdGFydERUREF0dGxpc3Qod3JpdGVyLCBuYW1lKTsKKyAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJXcml0ZVN0cmluZyh3cml0ZXIsIGNvbnRlbnQpOworICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlckVuZERUREF0dGxpc3Qod3JpdGVyKTsKKyAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJTdGFydERUREVudGl0eToKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQHBlOiAgVFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90CisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBEVEQgQVRUTElTVAorICoKKyAqIFN0YXJ0IGFuIHhtbCBEVEQgQVRUTElTVC4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJTdGFydERUREVudGl0eSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGUsIGNvbnN0IHhtbENoYXIgKiBuYW1lKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwgfHwgbmFtZSA9PSBOVUxMIHx8ICpuYW1lID09ICdcMCcpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1bSA9IDA7CisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrICE9IDApIHsKKworICAgICAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICAgICAgaWYgKHAgIT0gMCkgeworICAgICAgICAgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREOgorICAgICAgICAgICAgICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiIFsiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgICAgICAgICBpZiAod3JpdGVyLT5pbmRlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwLT5zdGF0ZSA9IFhNTF9URVhUV1JJVEVSX0RURF9URVhUOworICAgICAgICAgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLworICAgICAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX1RFWFQ6CisgICAgICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OT05FOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopCisgICAgICAgIHhtbE1hbGxvYyhzaXplb2YoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkpKTsKKyAgICBpZiAocCA9PSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJTdGFydERUREVsZW1lbnQgOiBvdXQgb2YgbWVtb3J5IVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwLT5uYW1lID0geG1sU3RyZHVwKG5hbWUpOworICAgIGlmIChwLT5uYW1lID09IDApIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKHdyaXRlciwgWE1MX0VSUl9OT19NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclN0YXJ0RFRERWxlbWVudCA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgeG1sRnJlZShwKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChwZSAhPSAwKQorICAgICAgICBwLT5zdGF0ZSA9IFhNTF9URVhUV1JJVEVSX0RURF9QRU5UOworICAgIGVsc2UKKyAgICAgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9EVERfRU5UWTsKKworICAgIHhtbExpc3RQdXNoRnJvbnQod3JpdGVyLT5ub2RlcywgcCk7CisKKyAgICBpZiAod3JpdGVyLT5pbmRlbnQpIHsKKyAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVJbmRlbnQod3JpdGVyKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICI8IUVOVElUWSAiKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgaWYgKHBlICE9IDApIHsKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIiUgIik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICB9CisKKyAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAoY29uc3QgY2hhciAqKSBuYW1lKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKgorICogRW5kIGFuIHhtbCBEVEQgZW50aXR5LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlckVuZERUREVudGl0eSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKyAgICB4bWxMaW5rUHRyIGxrOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGxrID0geG1sTGlzdEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIGlmIChsayA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0VOVFlfVEVYVDoKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGUod3JpdGVyLT5vdXQsIDEsICZ3cml0ZXItPnFjaGFyKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9FTlRZOgorICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9QRU5UOgorICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIj4iKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKHdyaXRlci0+aW5kZW50KSB7CisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICJcbiIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgeG1sTGlzdFBvcEZyb250KHdyaXRlci0+bm9kZXMpOworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBwZTogIFRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdAorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eQorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBALi4uOiAgZXh0cmEgcGFyYW1ldGVycyBmb3IgdGhlIGZvcm1hdAorICoKKyAqIFdyaXRlIGEgZm9ybWF0dGVkIERURCBpbnRlcm5hbCBlbnRpdHkuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50IFhNTENERUNMCit4bWxUZXh0V3JpdGVyV3JpdGVGb3JtYXREVERJbnRlcm5hbEVudGl0eSh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCit7CisgICAgaW50IHJjOworICAgIHZhX2xpc3QgYXA7CisKKyAgICB2YV9zdGFydChhcCwgZm9ybWF0KTsKKworICAgIHJjID0geG1sVGV4dFdyaXRlcldyaXRlVkZvcm1hdERUREludGVybmFsRW50aXR5KHdyaXRlciwgcGUsIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCBhcCk7CisKKyAgICB2YV9lbmQoYXApOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHk6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBwZTogIFRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdAorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eQorICogQGZvcm1hdDogIGZvcm1hdCBzdHJpbmcgKHNlZSBwcmludGYpCisgKiBAYXJncHRyOiAgcG9pbnRlciB0byB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LgorICoKKyAqIFdyaXRlIGEgZm9ybWF0dGVkIERURCBpbnRlcm5hbCBlbnRpdHkuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVWRm9ybWF0RFRESW50ZXJuYWxFbnRpdHkoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3B0cikKK3sKKyAgICBpbnQgcmM7CisgICAgeG1sQ2hhciAqYnVmOworCisgICAgaWYgKHdyaXRlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBidWYgPSB4bWxUZXh0V3JpdGVyVlNwcmludGYoZm9ybWF0LCBhcmdwdHIpOworICAgIGlmIChidWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSB4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSh3cml0ZXIsIHBlLCBuYW1lLCBidWYpOworCisgICAgeG1sRnJlZShidWYpOworICAgIHJldHVybiByYzsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFbnRpdHk6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBwZTogIFRSVUUgaWYgdGhpcyBpcyBhIHBhcmFtZXRlciBlbnRpdHksIEZBTFNFIGlmIG5vdAorICogQG5hbWU6ICB0aGUgbmFtZSBvZiB0aGUgRFREIGVudGl0eQorICogQHB1YmlkOiAgdGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXIKKyAqIEBzeXNpZDogIHRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFRECisgKiBAbmRhdGFpZDogIHRoZSB4bWwgbm90YXRpb24gbmFtZS4KKyAqIEBjb250ZW50OiAgY29udGVudCBvZiB0aGUgZW50aXR5CisgKgorICogV3JpdGUgYSBEVEQgZW50aXR5LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlRFRERW50aXR5KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHViaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIHN5c2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBuZGF0YWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBjb250ZW50KQoreworICAgIGlmICgoY29udGVudCA9PSBOVUxMKSAmJiAocHViaWQgPT0gTlVMTCkgJiYgKHN5c2lkID09IE5VTEwpKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKChwZSAhPSAwKSAmJiAobmRhdGFpZCAhPSBOVUxMKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKChwdWJpZCA9PSBOVUxMKSAmJiAoc3lzaWQgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiB4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eSh3cml0ZXIsIHBlLCBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCk7CisKKyAgICByZXR1cm4geG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHkod3JpdGVyLCBwZSwgbmFtZSwgcHViaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2lkLCBuZGF0YWlkKTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVEVERJbnRlcm5hbEVudGl0eToKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQHBlOiAgVFJVRSBpZiB0aGlzIGlzIGEgcGFyYW1ldGVyIGVudGl0eSwgRkFMU0UgaWYgbm90CisgKiBAbmFtZTogIHRoZSBuYW1lIG9mIHRoZSBEVEQgZW50aXR5CisgKiBAY29udGVudDogIGNvbnRlbnQgb2YgdGhlIGVudGl0eQorICoKKyAqIFdyaXRlIGEgRFREIGludGVybmFsIGVudGl0eS4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZURUREludGVybmFsRW50aXR5KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogY29udGVudCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKworICAgIGlmICgobmFtZSA9PSBOVUxMKSB8fCAoKm5hbWUgPT0gJ1wwJykgfHwgKGNvbnRlbnQgPT0gTlVMTCkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1bSA9IDA7CisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkod3JpdGVyLCBwZSwgbmFtZSk7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyV3JpdGVTdHJpbmcod3JpdGVyLCBjb250ZW50KTsKKyAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICBjb3VudCA9IHhtbFRleHRXcml0ZXJFbmREVERFbnRpdHkod3JpdGVyKTsKKyAgICBpZiAoY291bnQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5OgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAcGU6ICBUUlVFIGlmIHRoaXMgaXMgYSBwYXJhbWV0ZXIgZW50aXR5LCBGQUxTRSBpZiBub3QKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIERURCBlbnRpdHkKKyAqIEBwdWJpZDogIHRoZSBwdWJsaWMgaWRlbnRpZmllciwgd2hpY2ggaXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIHN5c3RlbSBpZGVudGlmaWVyCisgKiBAc3lzaWQ6ICB0aGUgc3lzdGVtIGlkZW50aWZpZXIsIHdoaWNoIGlzIHRoZSBVUkkgb2YgdGhlIERURAorICogQG5kYXRhaWQ6ICB0aGUgeG1sIG5vdGF0aW9uIG5hbWUuCisgKgorICogV3JpdGUgYSBEVEQgZXh0ZXJuYWwgZW50aXR5LiBUaGUgZW50aXR5IG11c3QgaGF2ZSBiZWVuIHN0YXJ0ZWQgd2l0aCB4bWxUZXh0V3JpdGVyU3RhcnREVERFbnRpdHkKKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5KHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHViaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogc3lzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmRhdGFpZCkKK3sKKyAgICBpbnQgY291bnQ7CisgICAgaW50IHN1bTsKKworICAgIGlmICgoKHB1YmlkID09IE5VTEwpICYmIChzeXNpZCA9PSBOVUxMKSkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoKHBlICE9IDApICYmIChuZGF0YWlkICE9IE5VTEwpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdW0gPSAwOworICAgIGNvdW50ID0geG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5KHdyaXRlciwgcGUsIG5hbWUpOworICAgIGlmIChjb3VudCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHN1bSArPSBjb3VudDsKKworICAgIGNvdW50ID0KKyAgICAgICAgeG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHlDb250ZW50cyh3cml0ZXIsIHB1YmlkLCBzeXNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGF0YWlkKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyRW5kRFRERW50aXR5KHdyaXRlcik7CisgICAgaWYgKGNvdW50ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzOgorICogQHdyaXRlcjogIHRoZSB4bWxUZXh0V3JpdGVyUHRyCisgKiBAcHViaWQ6ICB0aGUgcHVibGljIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllcgorICogQHN5c2lkOiAgdGhlIHN5c3RlbSBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgVVJJIG9mIHRoZSBEVEQKKyAqIEBuZGF0YWlkOiAgdGhlIHhtbCBub3RhdGlvbiBuYW1lLgorICoKKyAqIFdyaXRlIHRoZSBjb250ZW50cyBvZiBhIERURCBleHRlcm5hbCBlbnRpdHkuCisgKgorICogUmV0dXJucyB0aGUgYnl0ZXMgd3JpdHRlbiAobWF5IGJlIDAgYmVjYXVzZSBvZiBidWZmZXJpbmcpIG9yIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxUZXh0V3JpdGVyV3JpdGVEVERFeHRlcm5hbEVudGl0eUNvbnRlbnRzKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogcHViaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBzeXNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqIG5kYXRhaWQpCit7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisgICAgeG1sTGlua1B0ciBsazsKKyAgICB4bWxUZXh0V3JpdGVyU3RhY2tFbnRyeSAqcDsKKworICAgIGlmICh3cml0ZXIgPT0gTlVMTCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM6IHhtbFRleHRXcml0ZXJQdHIgaW52YWxpZCFcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgc3VtID0gMDsKKyAgICBsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5vZGVzKTsKKyAgICBpZiAobGsgPT0gMCkgeworICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM6IHlvdSBtdXN0IGNhbGwgeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5IGJlZm9yZSB0aGUgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzd2l0Y2ggKHAtPnN0YXRlKSB7CisgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0VOVFk6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfUEVOVDoKKyAgICAgICAgICAgIGlmIChuZGF0YWlkICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB4bWxXcml0ZXJFcnJNc2cod3JpdGVyLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlcldyaXRlRFRERXh0ZXJuYWxFbnRpdHlDb250ZW50czogbm90YXRpb24gbm90IGFsbG93ZWQgd2l0aCBwYXJhbWV0ZXIgZW50aXRpZXMhXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM6IHlvdSBtdXN0IGNhbGwgeG1sVGV4dFdyaXRlclN0YXJ0RFRERW50aXR5IGJlZm9yZSB0aGUgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIVxuIik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKHB1YmlkICE9IDApIHsKKyAgICAgICAgaWYgKHN5c2lkID09IDApIHsKKyAgICAgICAgICAgIHhtbFdyaXRlckVyck1zZyh3cml0ZXIsIFhNTF9FUlJfSU5URVJOQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJXcml0ZURUREV4dGVybmFsRW50aXR5Q29udGVudHM6IHN5c3RlbSBpZGVudGlmaWVyIG5lZWRlZCFcbiIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIiBQVUJMSUMgIik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICBjb3VudCA9CisgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgKGNvbnN0IGNoYXIgKikgcHViaWQpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgaWYgKHN5c2lkICE9IDApIHsKKyAgICAgICAgaWYgKHB1YmlkID09IDApIHsKKyAgICAgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICIgU1lTVEVNIik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICIgIik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKworICAgICAgICBjb3VudCA9CisgICAgICAgICAgICB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgKGNvbnN0IGNoYXIgKikgc3lzaWQpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgaWYgKG5kYXRhaWQgIT0gTlVMTCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiIE5EQVRBICIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisKKyAgICAgICAgY291bnQgPQorICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKSBuZGF0YWlkKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgIH0KKworICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb246CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBuYW1lOiAgdGhlIG5hbWUgb2YgdGhlIHhtbCBub3RhdGlvbgorICogQHB1YmlkOiAgdGhlIHB1YmxpYyBpZGVudGlmaWVyLCB3aGljaCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3lzdGVtIGlkZW50aWZpZXIKKyAqIEBzeXNpZDogIHRoZSBzeXN0ZW0gaWRlbnRpZmllciwgd2hpY2ggaXMgdGhlIFVSSSBvZiB0aGUgRFRECisgKgorICogV3JpdGUgYSBEVEQgZW50aXR5LgorICoKKyAqIFJldHVybnMgdGhlIGJ5dGVzIHdyaXR0ZW4gKG1heSBiZSAwIGJlY2F1c2Ugb2YgYnVmZmVyaW5nKSBvciAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sVGV4dFdyaXRlcldyaXRlRFRETm90YXRpb24oeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKiBwdWJpZCwgY29uc3QgeG1sQ2hhciAqIHN5c2lkKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwgfHwgbmFtZSA9PSBOVUxMIHx8ICpuYW1lID09ICdcMCcpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1bSA9IDA7CisgICAgbGsgPSB4bWxMaXN0RnJvbnQod3JpdGVyLT5ub2Rlcyk7CisgICAgaWYgKGxrID09IDApIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgeG1sTGlua0dldERhdGEobGspOworICAgIGlmIChwICE9IDApIHsKKyAgICAgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVEQ6CisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIiBbIik7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICBpZiAod3JpdGVyLT5pbmRlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIlxuIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9EVERfVEVYVDsKKyAgICAgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfVEVYVDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdyaXRlci0+aW5kZW50KSB7CisgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlcldyaXRlSW5kZW50KHdyaXRlcik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICB9CisKKyAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiPCFOT1RBVElPTiAiKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsIChjb25zdCBjaGFyICopIG5hbWUpOworICAgIGlmIChjb3VudCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBzdW0gKz0gY291bnQ7CisKKyAgICBpZiAocHViaWQgIT0gMCkgeworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAiIFBVQkxJQyAiKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgY291bnQgPQorICAgICAgICAgICAgeG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsIChjb25zdCBjaGFyICopIHB1YmlkKTsKKyAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlcldyaXRlKHdyaXRlci0+b3V0LCAxLCAmd3JpdGVyLT5xY2hhcik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICB9CisKKyAgICBpZiAoc3lzaWQgIT0gMCkgeworICAgICAgICBpZiAocHViaWQgPT0gMCkgeworICAgICAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIiBTWVNURU0iKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICB9CisgICAgICAgIGNvdW50ID0geG1sT3V0cHV0QnVmZmVyV3JpdGVTdHJpbmcod3JpdGVyLT5vdXQsICIgIik7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgICAgIGNvdW50ID0KKyAgICAgICAgICAgIHhtbE91dHB1dEJ1ZmZlcldyaXRlU3RyaW5nKHdyaXRlci0+b3V0LCAoY29uc3QgY2hhciAqKSBzeXNpZCk7CisgICAgICAgIGlmIChjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZSh3cml0ZXItPm91dCwgMSwgJndyaXRlci0+cWNoYXIpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgIj4iKTsKKyAgICBpZiAoY291bnQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgc3VtICs9IGNvdW50OworCisgICAgcmV0dXJuIHN1bTsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyRmx1c2g6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqCisgKiBGbHVzaCB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqCisgKiBSZXR1cm5zIHRoZSBieXRlcyB3cml0dGVuIChtYXkgYmUgMCBiZWNhdXNlIG9mIGJ1ZmZlcmluZykgb3IgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitpbnQKK3htbFRleHRXcml0ZXJGbHVzaCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgY291bnQ7CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmICh3cml0ZXItPm91dCA9PSBOVUxMKQorICAgICAgICBjb3VudCA9IDA7CisgICAgZWxzZQorICAgICAgICBjb3VudCA9IHhtbE91dHB1dEJ1ZmZlckZsdXNoKHdyaXRlci0+b3V0KTsKKworICAgIHJldHVybiBjb3VudDsKK30KKworLyoqCisgKiBtaXNjCisgKi8KKworLyoqCisgKiB4bWxGcmVlVGV4dFdyaXRlclN0YWNrRW50cnk6CisgKiBAbGs6ICB0aGUgeG1sTGlua1B0cgorICoKKyAqIEZyZWUgY2FsbGJhY2sgZm9yIHRoZSB4bWxMaXN0LgorICovCitzdGF0aWMgdm9pZAoreG1sRnJlZVRleHRXcml0ZXJTdGFja0VudHJ5KHhtbExpbmtQdHIgbGspCit7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnA7CisKKyAgICBwID0gKHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocC0+bmFtZSAhPSAwKQorICAgICAgICB4bWxGcmVlKHAtPm5hbWUpOworICAgIHhtbEZyZWUocCk7Cit9CisKKy8qKgorICogeG1sQ21wVGV4dFdyaXRlclN0YWNrRW50cnk6CisgKiBAZGF0YTA6ICB0aGUgZmlyc3QgZGF0YQorICogQGRhdGExOiAgdGhlIHNlY29uZCBkYXRhCisgKgorICogQ29tcGFyZSBjYWxsYmFjayBmb3IgdGhlIHhtbExpc3QuCisgKgorICogUmV0dXJucyAtMSwgMCwgMQorICovCitzdGF0aWMgaW50Cit4bWxDbXBUZXh0V3JpdGVyU3RhY2tFbnRyeShjb25zdCB2b2lkICpkYXRhMCwgY29uc3Qgdm9pZCAqZGF0YTEpCit7CisgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKnAwOworICAgIHhtbFRleHRXcml0ZXJTdGFja0VudHJ5ICpwMTsKKworICAgIGlmIChkYXRhMCA9PSBkYXRhMSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoZGF0YTAgPT0gMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKGRhdGExID09IDApCisgICAgICAgIHJldHVybiAxOworCisgICAgcDAgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgZGF0YTA7CisgICAgcDEgPSAoeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKikgZGF0YTE7CisKKyAgICByZXR1cm4geG1sU3RyY21wKHAwLT5uYW1lLCBwMS0+bmFtZSk7Cit9CisKKy8qKgorICogbWlzYworICovCisKKy8qKgorICogeG1sVGV4dFdyaXRlck91dHB1dE5TRGVjbDoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICoKKyAqIE91dHB1dCB0aGUgY3VycmVudCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zLgorICovCitzdGF0aWMgaW50Cit4bWxUZXh0V3JpdGVyT3V0cHV0TlNEZWNsKHhtbFRleHRXcml0ZXJQdHIgd3JpdGVyKQoreworICAgIHhtbExpbmtQdHIgbGs7CisgICAgeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSAqbnA7CisgICAgaW50IGNvdW50OworICAgIGludCBzdW07CisKKyAgICBzdW0gPSAwOworICAgIHdoaWxlICgheG1sTGlzdEVtcHR5KHdyaXRlci0+bnNzdGFjaykpIHsKKyAgICAgICAgeG1sQ2hhciAqbmFtZXNwYWNlVVJJID0gTlVMTDsKKyAgICAgICAgeG1sQ2hhciAqcHJlZml4ID0gTlVMTDsKKworICAgICAgICBsayA9IHhtbExpc3RGcm9udCh3cml0ZXItPm5zc3RhY2spOworICAgICAgICBucCA9ICh4bWxUZXh0V3JpdGVyTnNTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKworICAgICAgICBpZiAobnAgIT0gMCkgeworICAgICAgICAgICAgbmFtZXNwYWNlVVJJID0geG1sU3RyZHVwKG5wLT51cmkpOworICAgICAgICAgICAgcHJlZml4ID0geG1sU3RyZHVwKG5wLT5wcmVmaXgpOworICAgICAgICB9CisKKyAgICAgICAgeG1sTGlzdFBvcEZyb250KHdyaXRlci0+bnNzdGFjayk7CisKKyAgICAgICAgaWYgKG5wICE9IDApIHsKKyAgICAgICAgICAgIGNvdW50ID0geG1sVGV4dFdyaXRlcldyaXRlQXR0cmlidXRlKHdyaXRlciwgcHJlZml4LCBuYW1lc3BhY2VVUkkpOworICAgICAgICAgICAgeG1sRnJlZShuYW1lc3BhY2VVUkkpOworICAgICAgICAgICAgeG1sRnJlZShwcmVmaXgpOworCisgICAgICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgeG1sTGlzdERlbGV0ZSh3cml0ZXItPm5zc3RhY2spOworICAgICAgICAgICAgICAgIHdyaXRlci0+bnNzdGFjayA9IE5VTEw7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3VtICs9IGNvdW50OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdW07Cit9CisKKy8qKgorICogeG1sRnJlZVRleHRXcml0ZXJOc1N0YWNrRW50cnk6CisgKiBAbGs6ICB0aGUgeG1sTGlua1B0cgorICoKKyAqIEZyZWUgY2FsbGJhY2sgZm9yIHRoZSB4bWxMaXN0LgorICovCitzdGF0aWMgdm9pZAoreG1sRnJlZVRleHRXcml0ZXJOc1N0YWNrRW50cnkoeG1sTGlua1B0ciBsaykKK3sKKyAgICB4bWxUZXh0V3JpdGVyTnNTdGFja0VudHJ5ICpwOworCisgICAgcCA9ICh4bWxUZXh0V3JpdGVyTnNTdGFja0VudHJ5ICopIHhtbExpbmtHZXREYXRhKGxrKTsKKyAgICBpZiAocCA9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocC0+cHJlZml4ICE9IDApCisgICAgICAgIHhtbEZyZWUocC0+cHJlZml4KTsKKyAgICBpZiAocC0+dXJpICE9IDApCisgICAgICAgIHhtbEZyZWUocC0+dXJpKTsKKworICAgIHhtbEZyZWUocCk7Cit9CisKKy8qKgorICogeG1sQ21wVGV4dFdyaXRlck5zU3RhY2tFbnRyeToKKyAqIEBkYXRhMDogIHRoZSBmaXJzdCBkYXRhCisgKiBAZGF0YTE6ICB0aGUgc2Vjb25kIGRhdGEKKyAqCisgKiBDb21wYXJlIGNhbGxiYWNrIGZvciB0aGUgeG1sTGlzdC4KKyAqCisgKiBSZXR1cm5zIC0xLCAwLCAxCisgKi8KK3N0YXRpYyBpbnQKK3htbENtcFRleHRXcml0ZXJOc1N0YWNrRW50cnkoY29uc3Qgdm9pZCAqZGF0YTAsIGNvbnN0IHZvaWQgKmRhdGExKQoreworICAgIHhtbFRleHRXcml0ZXJOc1N0YWNrRW50cnkgKnAwOworICAgIHhtbFRleHRXcml0ZXJOc1N0YWNrRW50cnkgKnAxOworICAgIGludCByYzsKKworICAgIGlmIChkYXRhMCA9PSBkYXRhMSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoZGF0YTAgPT0gMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKGRhdGExID09IDApCisgICAgICAgIHJldHVybiAxOworCisgICAgcDAgPSAoeG1sVGV4dFdyaXRlck5zU3RhY2tFbnRyeSAqKSBkYXRhMDsKKyAgICBwMSA9ICh4bWxUZXh0V3JpdGVyTnNTdGFja0VudHJ5ICopIGRhdGExOworCisgICAgcmMgPSB4bWxTdHJjbXAocDAtPnByZWZpeCwgcDEtPnByZWZpeCk7CisKKyAgICBpZiAoKHJjICE9IDApIHx8IChwMC0+ZWxlbSAhPSBwMS0+ZWxlbSkpCisgICAgICAgIHJjID0gLTE7CisKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qKgorICogeG1sVGV4dFdyaXRlcldyaXRlRG9jQ2FsbGJhY2s6CisgKiBAY29udGV4dDogIHRoZSB4bWxCdWZmZXJQdHIKKyAqIEBzdHI6ICB0aGUgZGF0YSB0byB3cml0ZQorICogQGxlbjogIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEKKyAqCisgKiBXcml0ZSBjYWxsYmFjayBmb3IgdGhlIHhtbE91dHB1dEJ1ZmZlciB3aXRoIHRhcmdldCB4bWxCdWZmZXIKKyAqCisgKiBSZXR1cm5zIC0xLCAwLCAxCisgKi8KK3N0YXRpYyBpbnQKK3htbFRleHRXcml0ZXJXcml0ZURvY0NhbGxiYWNrKHZvaWQgKmNvbnRleHQsIGNvbnN0IHhtbENoYXIgKiBzdHIsIGludCBsZW4pCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGNvbnRleHQ7CisgICAgaW50IHJjOworCisgICAgaWYgKChyYyA9IHhtbFBhcnNlQ2h1bmsoY3R4dCwgKGNvbnN0IGNoYXIgKikgc3RyLCBsZW4sIDApKSAhPSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZ0ludChOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJXcml0ZURvY0NhbGxiYWNrIDogWE1MIGVycm9yICVkICFcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICByYyk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gbGVuOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJDbG9zZURvY0NhbGxiYWNrOgorICogQGNvbnRleHQ6ICB0aGUgeG1sQnVmZmVyUHRyCisgKgorICogQ2xvc2UgY2FsbGJhY2sgZm9yIHRoZSB4bWxPdXRwdXRCdWZmZXIgd2l0aCB0YXJnZXQgeG1sQnVmZmVyCisgKgorICogUmV0dXJucyAtMSwgMCwgMQorICovCitzdGF0aWMgaW50Cit4bWxUZXh0V3JpdGVyQ2xvc2VEb2NDYWxsYmFjayh2b2lkICpjb250ZXh0KQoreworICAgIHhtbFBhcnNlckN0eHRQdHIgY3R4dCA9ICh4bWxQYXJzZXJDdHh0UHRyKSBjb250ZXh0OworICAgIGludCByYzsKKworICAgIGlmICgocmMgPSB4bWxQYXJzZUNodW5rKGN0eHQsIE5VTEwsIDAsIDEpKSAhPSAwKSB7CisgICAgICAgIHhtbFdyaXRlckVyck1zZ0ludChOVUxMLCBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJXcml0ZURvY0NhbGxiYWNrIDogWE1MIGVycm9yICVkICFcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICByYyk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyVlNwcmludGY6CisgKiBAZm9ybWF0OiAgc2VlIHByaW50ZgorICogQGFyZ3B0cjogIHBvaW50ZXIgdG8gdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgdmFyaWFibGUgYXJndW1lbnQgbGlzdC4KKyAqCisgKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBmb3JtYXR0ZWQgb3V0cHV0CisgKgorICogUmV0dXJucyBhIG5ldyB4bWxDaGFyIGJ1ZmZlciB3aXRoIHRoZSBkYXRhIG9yIE5VTEwgb24gZXJyb3IuIFRoaXMgYnVmZmVyIG11c3QgYmUgZnJlZWQuCisgKi8KK3N0YXRpYyB4bWxDaGFyICoKK3htbFRleHRXcml0ZXJWU3ByaW50Zihjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncHRyKQoreworICAgIGludCBzaXplOworICAgIGludCBjb3VudDsKKyAgICB4bWxDaGFyICpidWY7CisgICAgdmFfbGlzdCBsb2Nhcmc7CisKKyAgICBzaXplID0gQlVGU0laOworICAgIGJ1ZiA9ICh4bWxDaGFyICopIHhtbE1hbGxvYyhzaXplKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyAgICAgICAgeG1sV3JpdGVyRXJyTXNnKE5VTEwsIFhNTF9FUlJfTk9fTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgInhtbFRleHRXcml0ZXJWU3ByaW50ZiA6IG91dCBvZiBtZW1vcnkhXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgVkFfQ09QWShsb2NhcmcsIGFyZ3B0cik7CisgICAgd2hpbGUgKCgoY291bnQgPSB2c25wcmludGYoKGNoYXIgKikgYnVmLCBzaXplLCBmb3JtYXQsIGxvY2FyZykpIDwgMCkKKyAgICAgICAgICAgfHwgKGNvdW50ID09IHNpemUgLSAxKSB8fCAoY291bnQgPT0gc2l6ZSkgfHwgKGNvdW50ID4gc2l6ZSkpIHsKKwl2YV9lbmQobG9jYXJnKTsKKyAgICAgICAgeG1sRnJlZShidWYpOworICAgICAgICBzaXplICs9IEJVRlNJWjsKKyAgICAgICAgYnVmID0gKHhtbENoYXIgKikgeG1sTWFsbG9jKHNpemUpOworICAgICAgICBpZiAoYnVmID09IE5VTEwpIHsKKyAgICAgICAgICAgIHhtbFdyaXRlckVyck1zZyhOVUxMLCBYTUxfRVJSX05PX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieG1sVGV4dFdyaXRlclZTcHJpbnRmIDogb3V0IG9mIG1lbW9yeSFcbiIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKwlWQV9DT1BZKGxvY2FyZywgYXJncHRyKTsKKyAgICB9CisgICAgdmFfZW5kKGxvY2FyZyk7CisKKyAgICByZXR1cm4gYnVmOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJTdGFydERvY3VtZW50Q2FsbGJhY2s6CisgKiBAY3R4OiB0aGUgdXNlciBkYXRhIChYTUwgcGFyc2VyIGNvbnRleHQpCisgKgorICogY2FsbGVkIGF0IHRoZSBzdGFydCBvZiBkb2N1bWVudCBwcm9jZXNzaW5nLgorICovCitzdGF0aWMgdm9pZAoreG1sVGV4dFdyaXRlclN0YXJ0RG9jdW1lbnRDYWxsYmFjayh2b2lkICpjdHgpCit7CisgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gKHhtbFBhcnNlckN0eHRQdHIpIGN0eDsKKyAgICB4bWxEb2NQdHIgZG9jOworCisgICAgaWYgKGN0eHQtPmh0bWwpIHsKKyNpZmRlZiBMSUJYTUxfSFRNTF9FTkFCTEVECisgICAgICAgIGlmIChjdHh0LT5teURvYyA9PSBOVUxMKQorICAgICAgICAgICAgY3R4dC0+bXlEb2MgPSBodG1sTmV3RG9jTm9EdEQoTlVMTCwgTlVMTCk7CisgICAgICAgIGlmIChjdHh0LT5teURvYyA9PSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lcnJvciAhPSBOVUxMKSkKKyAgICAgICAgICAgICAgICBjdHh0LT5zYXgtPmVycm9yKGN0eHQtPnVzZXJEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNBWC5zdGFydERvY3VtZW50KCk6IG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgY3R4dC0+ZXJyTm8gPSBYTUxfRVJSX05PX01FTU9SWTsKKyAgICAgICAgICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKyAgICAgICAgICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZWxzZQorICAgICAgICB4bWxXcml0ZXJFcnJNc2coTlVMTCwgWE1MX0VSUl9JTlRFUk5BTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJsaWJ4bWwyIGJ1aWx0IHdpdGhvdXQgSFRNTCBzdXBwb3J0XG4iKTsKKyAgICAgICAgY3R4dC0+ZXJyTm8gPSBYTUxfRVJSX0lOVEVSTkFMX0VSUk9SOworICAgICAgICBjdHh0LT5pbnN0YXRlID0gWE1MX1BBUlNFUl9FT0Y7CisgICAgICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgICAgICByZXR1cm47CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICBkb2MgPSBjdHh0LT5teURvYzsKKyAgICAgICAgaWYgKGRvYyA9PSBOVUxMKQorICAgICAgICAgICAgZG9jID0gY3R4dC0+bXlEb2MgPSB4bWxOZXdEb2MoY3R4dC0+dmVyc2lvbik7CisgICAgICAgIGlmIChkb2MgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKGRvYy0+Y2hpbGRyZW4gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGlmIChjdHh0LT5lbmNvZGluZyAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBkb2MtPmVuY29kaW5nID0geG1sU3RyZHVwKGN0eHQtPmVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvYy0+ZW5jb2RpbmcgPSBOVUxMOworICAgICAgICAgICAgICAgIGRvYy0+c3RhbmRhbG9uZSA9IGN0eHQtPnN0YW5kYWxvbmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoKGN0eHQtPnNheCAhPSBOVUxMKSAmJiAoY3R4dC0+c2F4LT5lcnJvciAhPSBOVUxMKSkKKyAgICAgICAgICAgICAgICBjdHh0LT5zYXgtPmVycm9yKGN0eHQtPnVzZXJEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNBWC5zdGFydERvY3VtZW50KCk6IG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgY3R4dC0+ZXJyTm8gPSBYTUxfRVJSX05PX01FTU9SWTsKKyAgICAgICAgICAgIGN0eHQtPmluc3RhdGUgPSBYTUxfUEFSU0VSX0VPRjsKKyAgICAgICAgICAgIGN0eHQtPmRpc2FibGVTQVggPSAxOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGlmICgoY3R4dC0+bXlEb2MgIT0gTlVMTCkgJiYgKGN0eHQtPm15RG9jLT5VUkwgPT0gTlVMTCkgJiYKKyAgICAgICAgKGN0eHQtPmlucHV0ICE9IE5VTEwpICYmIChjdHh0LT5pbnB1dC0+ZmlsZW5hbWUgIT0gTlVMTCkpIHsKKyAgICAgICAgY3R4dC0+bXlEb2MtPlVSTCA9CisgICAgICAgICAgICB4bWxDYW5vbmljUGF0aCgoY29uc3QgeG1sQ2hhciAqKSBjdHh0LT5pbnB1dC0+ZmlsZW5hbWUpOworICAgICAgICBpZiAoY3R4dC0+bXlEb2MtPlVSTCA9PSBOVUxMKQorICAgICAgICAgICAgY3R4dC0+bXlEb2MtPlVSTCA9CisgICAgICAgICAgICAgICAgeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIGN0eHQtPmlucHV0LT5maWxlbmFtZSk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJTZXRJbmRlbnQ6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBpbmRlbnQ6ICBkbyBpbmRlbnRhdGlvbj8KKyAqCisgKiBTZXQgaW5kZW50YXRpb24gb3V0cHV0LiBpbmRlbnQgPSAwIGRvIG5vdCBpbmRlbnRhdGlvbi4gaW5kZW50ID4gMCBkbyBpbmRlbnRhdGlvbi4KKyAqCisgKiBSZXR1cm5zIC0xIG9uIGVycm9yIG9yIDAgb3RoZXJ3aXNlLgorICovCitpbnQKK3htbFRleHRXcml0ZXJTZXRJbmRlbnQoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsIGludCBpbmRlbnQpCit7CisgICAgaWYgKCh3cml0ZXIgPT0gTlVMTCkgfHwgKGluZGVudCA8IDApKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICB3cml0ZXItPmluZGVudCA9IGluZGVudDsKKyAgICB3cml0ZXItPmRvaW5kZW50ID0gMTsKKworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJTZXRJbmRlbnRTdHJpbmc6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqIEBzdHI6ICB0aGUgeG1sQ2hhciBzdHJpbmcKKyAqCisgKiBTZXQgc3RyaW5nIGluZGVudGF0aW9uLgorICoKKyAqIFJldHVybnMgLTEgb24gZXJyb3Igb3IgMCBvdGhlcndpc2UuCisgKi8KK2ludAoreG1sVGV4dFdyaXRlclNldEluZGVudFN0cmluZyh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlciwgY29uc3QgeG1sQ2hhciAqIHN0cikKK3sKKyAgICBpZiAoKHdyaXRlciA9PSBOVUxMKSB8fCAoIXN0cikpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmICh3cml0ZXItPmljaGFyICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWUod3JpdGVyLT5pY2hhcik7CisgICAgd3JpdGVyLT5pY2hhciA9IHhtbFN0cmR1cChzdHIpOworCisgICAgaWYgKCF3cml0ZXItPmljaGFyKQorICAgICAgICByZXR1cm4gLTE7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gMDsKK30KKworLyoqCisgKiB4bWxUZXh0V3JpdGVyV3JpdGVJbmRlbnQ6CisgKiBAd3JpdGVyOiAgdGhlIHhtbFRleHRXcml0ZXJQdHIKKyAqCisgKiBXcml0ZSBpbmRlbnQgc3RyaW5nLgorICoKKyAqIFJldHVybnMgLTEgb24gZXJyb3Igb3IgdGhlIG51bWJlciBvZiBzdHJpbmdzIHdyaXR0ZW4uCisgKi8KK3N0YXRpYyBpbnQKK3htbFRleHRXcml0ZXJXcml0ZUluZGVudCh4bWxUZXh0V3JpdGVyUHRyIHdyaXRlcikKK3sKKyAgICBpbnQgbGtzaXplOworICAgIGludCBpOworICAgIGludCByZXQ7CisKKyAgICBsa3NpemUgPSB4bWxMaXN0U2l6ZSh3cml0ZXItPm5vZGVzKTsKKyAgICBpZiAobGtzaXplIDwgMSkKKyAgICAgICAgcmV0dXJuICgtMSk7ICAgICAgICAgICAgLyogbGlzdCBpcyBlbXB0eSAqLworICAgIGZvciAoaSA9IDA7IGkgPCAobGtzaXplIC0gMSk7IGkrKykgeworICAgICAgICByZXQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikgd3JpdGVyLT5pY2hhcik7CisgICAgICAgIGlmIChyZXQgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICB9CisKKyAgICByZXR1cm4gKGxrc2l6ZSAtIDEpOworfQorCisvKioKKyAqIHhtbFRleHRXcml0ZXJIYW5kbGVTdGF0ZURlcGVuZGVuY2llczoKKyAqIEB3cml0ZXI6ICB0aGUgeG1sVGV4dFdyaXRlclB0cgorICogQHA6ICB0aGUgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkKKyAqCisgKiBXcml0ZSBzdGF0ZSBkZXBlbmRlbnQgc3RyaW5ncy4KKyAqCisgKiBSZXR1cm5zIC0xIG9uIGVycm9yIG9yIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB3cml0dGVuLgorICovCitzdGF0aWMgaW50Cit4bWxUZXh0V3JpdGVySGFuZGxlU3RhdGVEZXBlbmRlbmNpZXMoeG1sVGV4dFdyaXRlclB0ciB3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sVGV4dFdyaXRlclN0YWNrRW50cnkgKiBwKQoreworICAgIGludCBjb3VudDsKKyAgICBpbnQgc3VtOworICAgIGNoYXIgZXh0cmFbM107CisKKyAgICBpZiAod3JpdGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmIChwID09IE5VTEwpCisgICAgICAgIHJldHVybiAwOworCisgICAgc3VtID0gMDsKKyAgICBleHRyYVswXSA9IGV4dHJhWzFdID0gZXh0cmFbMl0gPSAnXDAnOworICAgIGlmIChwICE9IDApIHsKKyAgICAgICAgc3VtID0gMDsKKyAgICAgICAgc3dpdGNoIChwLT5zdGF0ZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9OQU1FOgorICAgICAgICAgICAgICAgIC8qIE91dHB1dCBuYW1lc3BhY2UgZGVjbGFyYXRpb25zICovCisgICAgICAgICAgICAgICAgY291bnQgPSB4bWxUZXh0V3JpdGVyT3V0cHV0TlNEZWNsKHdyaXRlcik7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIHN1bSArPSBjb3VudDsKKyAgICAgICAgICAgICAgICBleHRyYVswXSA9ICc+JzsKKyAgICAgICAgICAgICAgICBwLT5zdGF0ZSA9IFhNTF9URVhUV1JJVEVSX1RFWFQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX1BJOgorICAgICAgICAgICAgICAgIGV4dHJhWzBdID0gJyAnOworICAgICAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfUElfVEVYVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREOgorICAgICAgICAgICAgICAgIGV4dHJhWzBdID0gJyAnOworICAgICAgICAgICAgICAgIGV4dHJhWzFdID0gJ1snOworICAgICAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfRFREX1RFWFQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUV1JJVEVSX0RURF9FTEVNOgorICAgICAgICAgICAgICAgIGV4dHJhWzBdID0gJyAnOworICAgICAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfRFREX0VMRU1fVEVYVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX0FUVEw6CisgICAgICAgICAgICAgICAgZXh0cmFbMF0gPSAnICc7CisgICAgICAgICAgICAgICAgcC0+c3RhdGUgPSBYTUxfVEVYVFdSSVRFUl9EVERfQVRUTF9URVhUOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBYTUxfVEVYVFdSSVRFUl9EVERfRU5UWToKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRXUklURVJfRFREX1BFTlQ6CisgICAgICAgICAgICAgICAgZXh0cmFbMF0gPSAnICc7CisgICAgICAgICAgICAgICAgZXh0cmFbMV0gPSB3cml0ZXItPnFjaGFyOworICAgICAgICAgICAgICAgIHAtPnN0YXRlID0gWE1MX1RFWFRXUklURVJfRFREX0VOVFlfVEVYVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoKmV4dHJhICE9ICdcMCcpIHsKKyAgICAgICAgY291bnQgPSB4bWxPdXRwdXRCdWZmZXJXcml0ZVN0cmluZyh3cml0ZXItPm91dCwgZXh0cmEpOworICAgICAgICBpZiAoY291bnQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzdW0gKz0gY291bnQ7CisgICAgfQorCisgICAgcmV0dXJuIHN1bTsKK30KKworI2RlZmluZSBib3R0b21feG1sd3JpdGVyCisjaW5jbHVkZSAiZWxmZ2NjaGFjay5oIgorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3hwYXRoLmMgYi9saWJ4bWwyLTIuNy43L3hwYXRoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ4MmM0MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveHBhdGguYwpAQCAtMCwwICsxLDE1MTM3IEBACisvKgorICogeHBhdGguYzogWE1MIFBhdGggTGFuZ3VhZ2UgaW1wbGVtZW50YXRpb24KKyAqICAgICAgICAgIFhQYXRoIGlzIGEgbGFuZ3VhZ2UgZm9yIGFkZHJlc3NpbmcgcGFydHMgb2YgYW4gWE1MIGRvY3VtZW50LAorICogICAgICAgICAgZGVzaWduZWQgdG8gYmUgdXNlZCBieSBib3RoIFhTTFQgYW5kIFhQb2ludGVyCisgKmYKKyAqIFJlZmVyZW5jZTogVzNDIFJlY29tbWVuZGF0aW9uIDE2IE5vdmVtYmVyIDE5OTkKKyAqICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNgorICogUHVibGljIHJlZmVyZW5jZToKKyAqICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aAorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZQorICoKKyAqIEF1dGhvcjogZGFuaWVsQHZlaWxsYXJkLmNvbQorICoKKyAqLworCisjZGVmaW5lIElOX0xJQlhNTAorI2luY2x1ZGUgImxpYnhtbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZmRlZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX01BVEhfSAorI2luY2x1ZGUgPG1hdGguaD4KKyNlbmRpZgorI2lmZGVmIEhBVkVfRkxPQVRfSAorI2luY2x1ZGUgPGZsb2F0Lmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0NUWVBFX0gKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TSUdOQUxfSAorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3RyZWUuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvdmFsaWQuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGguaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VySW50ZXJuYWxzLmg+CisjaW5jbHVkZSA8bGlieG1sL2hhc2guaD4KKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3hwb2ludGVyLmg+CisjZW5kaWYKKyNpZmRlZiBMSUJYTUxfREVCVUdfRU5BQkxFRAorI2luY2x1ZGUgPGxpYnhtbC9kZWJ1Z1hNTC5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGlieG1sL3htbGVycm9yLmg+CisjaW5jbHVkZSA8bGlieG1sL3RocmVhZHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorI2lmZGVmIExJQlhNTF9QQVRURVJOX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwvcGF0dGVybi5oPgorI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfUEFUVEVSTl9FTkFCTEVECisjZGVmaW5lIFhQQVRIX1NUUkVBTUlORworI2VuZGlmCisKKyNkZWZpbmUgVE9ETwkJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJVbmltcGxlbWVudGVkIGJsb2NrIGF0ICVzOiVkXG4iLAkJCQlcCisgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworCisvKgorKiBYUF9PUFRJTUlaRURfTk9OX0VMRU1fQ09NUEFSSVNPTjoKKyogSWYgZGVmaW5lZCwgdGhpcyB3aWxsIHVzZSB4bWxYUGF0aENtcE5vZGVzRXh0KCkgaW5zdGVhZCBvZgorKiB4bWxYUGF0aENtcE5vZGVzKCkuIFRoZSBuZXcgZnVuY3Rpb24gaXMgb3B0aW1pemVkIGNvbXBhcmlzb24gb2YKKyogbm9uLWVsZW1lbnQgbm9kZXM7IGFjdHVhbGx5IGl0IHdpbGwgc3BlZWQgdXAgY29tcGFyaXNvbiBvbmx5IGlmCisqIHhtbFhQYXRoT3JkZXJEb2NFbGVtcygpIHdhcyBjYWxsZWQgaW4gb3JkZXIgdG8gaW5kZXggdGhlIGVsZW1lbnRzIG9mCisqIGEgdHJlZSBpbiBkb2N1bWVudCBvcmRlcjsgTGlieHNsdCBkb2VzIHN1Y2ggYW4gaW5kZXhpbmcsIHRodXMgaXQgd2lsbAorKiBiZW5lZml0IGZyb20gdGhpcyBvcHRpbWl6YXRpb24uCisqLworI2RlZmluZSBYUF9PUFRJTUlaRURfTk9OX0VMRU1fQ09NUEFSSVNPTgorCisvKgorKiBYUF9PUFRJTUlaRURfRklMVEVSX0ZJUlNUOgorKiBJZiBkZWZpbmVkLCB0aGlzIHdpbGwgb3B0aW1pemUgZXhwcmVzc2lvbnMgbGlrZSAia2V5KCdmb28nLCAndmFsJylbYl1bMV0iCisqIGluIGEgd2F5LCB0aGF0IGl0IHN0b3AgZXZhbHVhdGlvbiBhdCB0aGUgZmlyc3Qgbm9kZS4KKyovCisjZGVmaW5lIFhQX09QVElNSVpFRF9GSUxURVJfRklSU1QKKworLyoKKyogWFBfREVCVUdfT0JKX1VTQUdFOgorKiBJbnRlcm5hbCBmbGFnIHRvIGVuYWJsZSB0cmFja2luZyBvZiBob3cgbXVjaCBYUGF0aCBvYmplY3RzIGhhdmUgYmVlbgorKiBjcmVhdGVkLgorKi8KKy8qICNkZWZpbmUgWFBfREVCVUdfT0JKX1VTQUdFICovCisKKy8qCisgKiBUT0RPOgorICogVGhlcmUgYXJlIGEgZmV3IHNwb3RzIHdoZXJlIHNvbWUgdGVzdHMgYXJlIGRvbmUgd2hpY2ggZGVwZW5kIHVwb24gYXNjaWkKKyAqIGRhdGEuICBUaGVzZSBzaG91bGQgYmUgZW5oYW5jZWQgZm9yIGZ1bGwgVVRGOCBzdXBwb3J0IChzZWUgcGFydGljdWxhcmx5CisgKiBhbnkgdXNlIG9mIHRoZSBtYWNyb3MgSVNfQVNDSUlfQ0hBUkFDVEVSIGFuZCBJU19BU0NJSV9ESUdJVCkKKyAqLworCisjaWYgZGVmaW5lZChMSUJYTUxfWFBBVEhfRU5BQkxFRCkgfHwgZGVmaW5lZChMSUJYTUxfU0NIRU1BU19FTkFCTEVEKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJRmxvYXRpbmcgcG9pbnQgc3R1ZmYJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIFRSSU9fUkVQTEFDRV9TVERJTworI2RlZmluZSBUUklPX1BVQkxJQyBzdGF0aWMKKyNlbmRpZgorI2luY2x1ZGUgInRyaW9uYW4uYyIKKworLyoKKyAqIFRoZSBsYWNrIG9mIHBvcnRhYmlsaXR5IG9mIHRoaXMgc2VjdGlvbiBvZiB0aGUgbGliYyBpcyBhbm5veWluZyAhCisgKi8KK2RvdWJsZSB4bWxYUGF0aE5BTiA9IDA7Citkb3VibGUgeG1sWFBhdGhQSU5GID0gMTsKK2RvdWJsZSB4bWxYUGF0aE5JTkYgPSAtMTsKK3N0YXRpYyBkb3VibGUgeG1sWFBhdGhOWkVSTyA9IDA7IC8qIG5vdCBleHBvcnRlZCBmcm9tIGhlYWRlcnMgKi8KK3N0YXRpYyBpbnQgeG1sWFBhdGhJbml0aWFsaXplZCA9IDA7CisKKy8qKgorICogeG1sWFBhdGhJbml0OgorICoKKyAqIEluaXRpYWxpemUgdGhlIFhQYXRoIGVudmlyb25tZW50CisgKi8KK3ZvaWQKK3htbFhQYXRoSW5pdCh2b2lkKSB7CisgICAgaWYgKHhtbFhQYXRoSW5pdGlhbGl6ZWQpIHJldHVybjsKKworICAgIHhtbFhQYXRoUElORiA9IHRyaW9fcGluZigpOworICAgIHhtbFhQYXRoTklORiA9IHRyaW9fbmluZigpOworICAgIHhtbFhQYXRoTkFOID0gdHJpb19uYW4oKTsKKyAgICB4bWxYUGF0aE5aRVJPID0gdHJpb19uemVybygpOworCisgICAgeG1sWFBhdGhJbml0aWFsaXplZCA9IDE7Cit9CisKKy8qKgorICogeG1sWFBhdGhJc05hTjoKKyAqIEB2YWw6ICBhIGRvdWJsZSB2YWx1ZQorICoKKyAqIFByb3ZpZGVzIGEgcG9ydGFibGUgaXNuYW4oKSBmdW5jdGlvbiB0byBkZXRlY3Qgd2hldGhlciBhIGRvdWJsZQorICogaXMgYSBOb3RhTnVtYmVyLiBCYXNlZCBvbiB0cmlvIGNvZGUKKyAqIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvY3RyaW8vCisgKgorICogUmV0dXJucyAxIGlmIHRoZSB2YWx1ZSBpcyBhIE5hTiwgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxYUGF0aElzTmFOKGRvdWJsZSB2YWwpIHsKKyAgICByZXR1cm4odHJpb19pc25hbih2YWwpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aElzSW5mOgorICogQHZhbDogIGEgZG91YmxlIHZhbHVlCisgKgorICogUHJvdmlkZXMgYSBwb3J0YWJsZSBpc2luZigpIGZ1bmN0aW9uIHRvIGRldGVjdCB3aGV0aGVyIGEgZG91YmxlCisgKiBpcyBhICtJbmZpbml0ZSBvciAtSW5maW5pdGUuIEJhc2VkIG9uIHRyaW8gY29kZQorICogaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9jdHJpby8KKyAqCisgKiBSZXR1cm5zIDEgdmkgdGhlIHZhbHVlIGlzICtJbmZpbml0ZSwgLTEgaWYgLUluZmluaXRlLCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFhQYXRoSXNJbmYoZG91YmxlIHZhbCkgeworICAgIHJldHVybih0cmlvX2lzaW5mKHZhbCkpOworfQorCisjZW5kaWYgLyogU0NIRU1BUyBvciBYUEFUSCAqLworI2lmZGVmIExJQlhNTF9YUEFUSF9FTkFCTEVECisvKioKKyAqIHhtbFhQYXRoR2V0U2lnbjoKKyAqIEB2YWw6ICBhIGRvdWJsZSB2YWx1ZQorICoKKyAqIFByb3ZpZGVzIGEgcG9ydGFibGUgZnVuY3Rpb24gdG8gZGV0ZWN0IHRoZSBzaWduIG9mIGEgZG91YmxlCisgKiBNb2RpZmllZCBmcm9tIHRyaW8gY29kZQorICogaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9jdHJpby8KKyAqCisgKiBSZXR1cm5zIDEgaWYgdGhlIHZhbHVlIGlzIE5lZ2F0aXZlLCAwIGlmIHBvc2l0aXZlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQYXRoR2V0U2lnbihkb3VibGUgdmFsKSB7CisgICAgcmV0dXJuKHRyaW9fc2lnbmJpdCh2YWwpKTsKK30KKworCisvKgorICogVE9ETzogd2hlbiBjb21wYXRpYmlsaXR5IGFsbG93cyByZW1vdmUgYWxsICJmYWtlIG5vZGUgbGlieHNsdCIgc3RyaW5ncworICogICAgICAgdGhlIHRlc3Qgc2hvdWxkIGp1c3QgYmUgbmFtZVswXSA9ICcgJworICovCisjaWZkZWYgREVCVUdfWFBBVEhfRVhQUkVTU0lPTgorI2RlZmluZSBERUJVR19TVEVQCisjZGVmaW5lIERFQlVHX0VYUFIKKyNkZWZpbmUgREVCVUdfRVZBTF9DT1VOVFMKKyNlbmRpZgorCitzdGF0aWMgeG1sTnMgeG1sWFBhdGhYTUxOYW1lc3BhY2VTdHJ1Y3QgPSB7CisgICAgTlVMTCwKKyAgICBYTUxfTkFNRVNQQUNFX0RFQ0wsCisgICAgWE1MX1hNTF9OQU1FU1BBQ0UsCisgICAgQkFEX0NBU1QgInhtbCIsCisgICAgTlVMTCwKKyAgICBOVUxMCit9Oworc3RhdGljIHhtbE5zUHRyIHhtbFhQYXRoWE1MTmFtZXNwYWNlID0gJnhtbFhQYXRoWE1MTmFtZXNwYWNlU3RydWN0OworI2lmbmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKy8qCisgKiBPcHRpbWl6ZXIgaXMgZGlzYWJsZWQgb25seSB3aGVuIHRocmVhZGVkIGFwcHMgYXJlIGRldGVjdGVkIHdoaWxlCisgKiB0aGUgbGlicmFyeSBhaW4ndCBjb21waWxlZCBmb3IgdGhyZWFkIHNhZmV0eS4KKyAqLworc3RhdGljIGludCB4bWxYUGF0aERpc2FibGVPcHRpbWl6ZXIgPSAwOworI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlFcnJvciBoYW5kbGluZyByb3V0aW5lcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogWFBfRVJST1JOVUxMOgorICogQFg6ICB0aGUgZXJyb3IgY29kZQorICoKKyAqIE1hY3JvIHRvIHJhaXNlIGFuIFhQYXRoIGVycm9yIGFuZCByZXR1cm4gTlVMTC4KKyAqLworI2RlZmluZSBYUF9FUlJPUk5VTEwoWCkJCQkJCQkJXAorICAgIHsgeG1sWFBhdGhFcnIoY3R4dCwgWCk7IHJldHVybihOVUxMKTsgfQorCisvKgorICogVGhlIGFycmF5IHhtbFhQYXRoRXJyb3JNZXNzYWdlcyBjb3JyZXNwb25kcyB0byB0aGUgZW51bSB4bWxYUGF0aEVycm9yCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICp4bWxYUGF0aEVycm9yTWVzc2FnZXNbXSA9IHsKKyAgICAiT2tcbiIsCisgICAgIk51bWJlciBlbmNvZGluZ1xuIiwKKyAgICAiVW5maW5pc2hlZCBsaXRlcmFsXG4iLAorICAgICJTdGFydCBvZiBsaXRlcmFsXG4iLAorICAgICJFeHBlY3RlZCAkIGZvciB2YXJpYWJsZSByZWZlcmVuY2VcbiIsCisgICAgIlVuZGVmaW5lZCB2YXJpYWJsZVxuIiwKKyAgICAiSW52YWxpZCBwcmVkaWNhdGVcbiIsCisgICAgIkludmFsaWQgZXhwcmVzc2lvblxuIiwKKyAgICAiTWlzc2luZyBjbG9zaW5nIGN1cmx5IGJyYWNlXG4iLAorICAgICJVbnJlZ2lzdGVyZWQgZnVuY3Rpb25cbiIsCisgICAgIkludmFsaWQgb3BlcmFuZFxuIiwKKyAgICAiSW52YWxpZCB0eXBlXG4iLAorICAgICJJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHNcbiIsCisgICAgIkludmFsaWQgY29udGV4dCBzaXplXG4iLAorICAgICJJbnZhbGlkIGNvbnRleHQgcG9zaXRpb25cbiIsCisgICAgIk1lbW9yeSBhbGxvY2F0aW9uIGVycm9yXG4iLAorICAgICJTeW50YXggZXJyb3JcbiIsCisgICAgIlJlc291cmNlIGVycm9yXG4iLAorICAgICJTdWIgcmVzb3VyY2UgZXJyb3JcbiIsCisgICAgIlVuZGVmaW5lZCBuYW1lc3BhY2UgcHJlZml4XG4iLAorICAgICJFbmNvZGluZyBlcnJvclxuIiwKKyAgICAiQ2hhciBvdXQgb2YgWE1MIHJhbmdlXG4iLAorICAgICJJbnZhbGlkIG9yIGluY29tcGxldGUgY29udGV4dFxuIiwKKyAgICAiPz8gVW5rbm93biBlcnJvciA/P1xuIgkvKiBNdXN0IGJlIGxhc3QgaW4gdGhlIGxpc3QhICovCit9OworI2RlZmluZSBNQVhFUlJOTyAoKGludCkoc2l6ZW9mKHhtbFhQYXRoRXJyb3JNZXNzYWdlcykgLwlcCisJCSAgIHNpemVvZih4bWxYUGF0aEVycm9yTWVzc2FnZXNbMF0pKSAtIDEpCisvKioKKyAqIHhtbFhQYXRoRXJyTWVtb3J5OgorICogQGN0eHQ6ICBhbiBYUGF0aCBjb250ZXh0CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSByZWRlZmluaXRpb24gb2YgYXR0cmlidXRlIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aEVyck1lbW9yeSh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworICAgICAgICBpZiAoZXh0cmEpIHsKKyAgICAgICAgICAgIHhtbENoYXIgYnVmWzIwMF07CisKKyAgICAgICAgICAgIHhtbFN0clByaW50ZihidWYsIDIwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBCQURfQ0FTVCAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIDogJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEpOworICAgICAgICAgICAgY3R4dC0+bGFzdEVycm9yLm1lc3NhZ2UgPSAoY2hhciAqKSB4bWxTdHJkdXAoYnVmKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGN0eHQtPmxhc3RFcnJvci5tZXNzYWdlID0gKGNoYXIgKikKKwkgICAgICAgeG1sU3RyZHVwKEJBRF9DQVNUICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICB9CisgICAgICAgIGN0eHQtPmxhc3RFcnJvci5kb21haW4gPSBYTUxfRlJPTV9YUEFUSDsKKyAgICAgICAgY3R4dC0+bGFzdEVycm9yLmNvZGUgPSBYTUxfRVJSX05PX01FTU9SWTsKKwlpZiAoY3R4dC0+ZXJyb3IgIT0gTlVMTCkKKwkgICAgY3R4dC0+ZXJyb3IoY3R4dC0+dXNlckRhdGEsICZjdHh0LT5sYXN0RXJyb3IpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChleHRyYSkKKyAgICAgICAgICAgIF9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIFhNTF9GUk9NX1hQQVRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FUlJfTk9fTUVNT1JZLCBYTUxfRVJSX0ZBVEFMLCBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLCBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQgOiAlc1xuIiwgZXh0cmEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBYTUxfRlJPTV9YUEFUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfRVJSX05PX01FTU9SWSwgWE1MX0VSUl9GQVRBTCwgTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBOVUxMLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOworICAgIH0KK30KKworLyoqCisgKiB4bWxYUGF0aFBFcnJNZW1vcnk6CisgKiBAY3R4dDogIGFuIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSByZWRlZmluaXRpb24gb2YgYXR0cmlidXRlIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aFBFcnJNZW1vcnkoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmV4dHJhKQoreworICAgIGlmIChjdHh0ID09IE5VTEwpCisJeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgZXh0cmEpOworICAgIGVsc2UgeworCWN0eHQtPmVycm9yID0gWFBBVEhfTUVNT1JZX0VSUk9SOworCXhtbFhQYXRoRXJyTWVtb3J5KGN0eHQtPmNvbnRleHQsIGV4dHJhKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sWFBhdGhFcnI6CisgKiBAY3R4dDogIGEgWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqIEBlcnJvcjogIHRoZSBlcnJvciBjb2RlCisgKgorICogSGFuZGxlIGFuIFhQYXRoIGVycm9yCisgKi8KK3ZvaWQKK3htbFhQYXRoRXJyKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgZXJyb3IpCit7CisgICAgaWYgKChlcnJvciA8IDApIHx8IChlcnJvciA+IE1BWEVSUk5PKSkKKwllcnJvciA9IE1BWEVSUk5POworICAgIGlmIChjdHh0ID09IE5VTEwpIHsKKwlfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwKKwkJCU5VTEwsIE5VTEwsIFhNTF9GUk9NX1hQQVRILAorCQkJZXJyb3IgKyBYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSyAtIFhQQVRIX0VYUFJFU1NJT05fT0ssCisJCQlYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorCQkJTlVMTCwgTlVMTCwgTlVMTCwgMCwgMCwKKwkJCSIlcyIsIHhtbFhQYXRoRXJyb3JNZXNzYWdlc1tlcnJvcl0pOworCXJldHVybjsKKyAgICB9CisgICAgY3R4dC0+ZXJyb3IgPSBlcnJvcjsKKyAgICBpZiAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSB7CisJX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsCisJCQlOVUxMLCBOVUxMLCBYTUxfRlJPTV9YUEFUSCwKKwkJCWVycm9yICsgWE1MX1hQQVRIX0VYUFJFU1NJT05fT0sgLSBYUEFUSF9FWFBSRVNTSU9OX09LLAorCQkJWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKwkJCShjb25zdCBjaGFyICopIGN0eHQtPmJhc2UsIE5VTEwsIE5VTEwsCisJCQljdHh0LT5jdXIgLSBjdHh0LT5iYXNlLCAwLAorCQkJIiVzIiwgeG1sWFBhdGhFcnJvck1lc3NhZ2VzW2Vycm9yXSk7CisJcmV0dXJuOworICAgIH0KKworICAgIC8qIGNsZWFudXAgY3VycmVudCBsYXN0IGVycm9yICovCisgICAgeG1sUmVzZXRFcnJvcigmY3R4dC0+Y29udGV4dC0+bGFzdEVycm9yKTsKKworICAgIGN0eHQtPmNvbnRleHQtPmxhc3RFcnJvci5kb21haW4gPSBYTUxfRlJPTV9YUEFUSDsKKyAgICBjdHh0LT5jb250ZXh0LT5sYXN0RXJyb3IuY29kZSA9IGVycm9yICsgWE1MX1hQQVRIX0VYUFJFU1NJT05fT0sgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgWFBBVEhfRVhQUkVTU0lPTl9PSzsKKyAgICBjdHh0LT5jb250ZXh0LT5sYXN0RXJyb3IubGV2ZWwgPSBYTUxfRVJSX0VSUk9SOworICAgIGN0eHQtPmNvbnRleHQtPmxhc3RFcnJvci5zdHIxID0gKGNoYXIgKikgeG1sU3RyZHVwKGN0eHQtPmJhc2UpOworICAgIGN0eHQtPmNvbnRleHQtPmxhc3RFcnJvci5pbnQxID0gY3R4dC0+Y3VyIC0gY3R4dC0+YmFzZTsKKyAgICBjdHh0LT5jb250ZXh0LT5sYXN0RXJyb3Iubm9kZSA9IGN0eHQtPmNvbnRleHQtPmRlYnVnTm9kZTsKKyAgICBpZiAoY3R4dC0+Y29udGV4dC0+ZXJyb3IgIT0gTlVMTCkgeworCWN0eHQtPmNvbnRleHQtPmVycm9yKGN0eHQtPmNvbnRleHQtPnVzZXJEYXRhLAorCSAgICAgICAgICAgICAgICAgICAgICZjdHh0LT5jb250ZXh0LT5sYXN0RXJyb3IpOworICAgIH0gZWxzZSB7CisJX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsCisJCQlOVUxMLCBjdHh0LT5jb250ZXh0LT5kZWJ1Z05vZGUsIFhNTF9GUk9NX1hQQVRILAorCQkJZXJyb3IgKyBYTUxfWFBBVEhfRVhQUkVTU0lPTl9PSyAtIFhQQVRIX0VYUFJFU1NJT05fT0ssCisJCQlYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorCQkJKGNvbnN0IGNoYXIgKikgY3R4dC0+YmFzZSwgTlVMTCwgTlVMTCwKKwkJCWN0eHQtPmN1ciAtIGN0eHQtPmJhc2UsIDAsCisJCQkiJXMiLCB4bWxYUGF0aEVycm9yTWVzc2FnZXNbZXJyb3JdKTsKKyAgICB9CisKK30KKworLyoqCisgKiB4bWxYUGF0aGVycm9yOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBmaWxlOiAgdGhlIGZpbGUgbmFtZQorICogQGxpbmU6ICB0aGUgbGluZSBudW1iZXIKKyAqIEBubzogIHRoZSBlcnJvciBudW1iZXIKKyAqCisgKiBGb3JtYXRzIGFuIGVycm9yIG1lc3NhZ2UuCisgKi8KK3ZvaWQKK3htbFhQYXRoZXJyb3IoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKmZpbGUgQVRUUklCVVRFX1VOVVNFRCwKKyAgICAgICAgICAgICAgaW50IGxpbmUgQVRUUklCVVRFX1VOVVNFRCwgaW50IG5vKSB7CisgICAgeG1sWFBhdGhFcnIoY3R4dCwgbm8pOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJVXRpbGl0aWVzCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeHNsdFBvaW50ZXJMaXN0OgorICoKKyAqIFBvaW50ZXItbGlzdCBmb3IgdmFyaW91cyBwdXJwb3Nlcy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX3htbFBvaW50ZXJMaXN0IHhtbFBvaW50ZXJMaXN0OwordHlwZWRlZiB4bWxQb2ludGVyTGlzdCAqeG1sUG9pbnRlckxpc3RQdHI7CitzdHJ1Y3QgX3htbFBvaW50ZXJMaXN0IHsKKyAgICB2b2lkICoqaXRlbXM7CisgICAgaW50IG51bWJlcjsKKyAgICBpbnQgc2l6ZTsKK307CisvKgorKiBUT0RPOiBTaW5jZSBzdWNoIGEgbGlzdC1oYW5kbGluZyBpcyB1c2VkIGluIHhtbHNjaGVtYXMuYyBhbmQgbGlieHNsdAorKiBhbmQgaGVyZSwgd2Ugc2hvdWxkIG1ha2UgdGhlIGZ1bmN0aW9ucyBwdWJsaWMuCisqLworc3RhdGljIGludAoreG1sUG9pbnRlckxpc3RBZGRTaXplKHhtbFBvaW50ZXJMaXN0UHRyIGxpc3QsCisJCSAgICAgICB2b2lkICppdGVtLAorCQkgICAgICAgaW50IGluaXRpYWxTaXplKQoreworICAgIGlmIChsaXN0LT5pdGVtcyA9PSBOVUxMKSB7CisJaWYgKGluaXRpYWxTaXplIDw9IDApCisJICAgIGluaXRpYWxTaXplID0gMTsKKwlsaXN0LT5pdGVtcyA9ICh2b2lkICoqKSB4bWxNYWxsb2MoCisJICAgIGluaXRpYWxTaXplICogc2l6ZW9mKHZvaWQgKikpOworCWlmIChsaXN0LT5pdGVtcyA9PSBOVUxMKSB7CisJICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsCisJCSJ4bWxQb2ludGVyTGlzdENyZWF0ZTogYWxsb2NhdGluZyBpdGVtXG4iKTsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisJbGlzdC0+bnVtYmVyID0gMDsKKwlsaXN0LT5zaXplID0gaW5pdGlhbFNpemU7CisgICAgfSBlbHNlIGlmIChsaXN0LT5zaXplIDw9IGxpc3QtPm51bWJlcikgeworCWxpc3QtPnNpemUgKj0gMjsKKwlsaXN0LT5pdGVtcyA9ICh2b2lkICoqKSB4bWxSZWFsbG9jKGxpc3QtPml0ZW1zLAorCSAgICBsaXN0LT5zaXplICogc2l6ZW9mKHZvaWQgKikpOworCWlmIChsaXN0LT5pdGVtcyA9PSBOVUxMKSB7CisJICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsCisJCSJ4bWxQb2ludGVyTGlzdENyZWF0ZTogcmUtYWxsb2NhdGluZyBpdGVtXG4iKTsKKwkgICAgbGlzdC0+c2l6ZSA9IDA7CisJICAgIHJldHVybigtMSk7CisJfQorICAgIH0KKyAgICBsaXN0LT5pdGVtc1tsaXN0LT5udW1iZXIrK10gPSBpdGVtOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4c2x0UG9pbnRlckxpc3RDcmVhdGU6CisgKgorICogQ3JlYXRlcyBhbiB4c2x0UG9pbnRlckxpc3Qgc3RydWN0dXJlLgorICoKKyAqIFJldHVybnMgYSB4c2x0UG9pbnRlckxpc3Qgc3RydWN0dXJlIG9yIE5VTEwgaW4gY2FzZSBvZiBhbiBlcnJvci4KKyAqLworc3RhdGljIHhtbFBvaW50ZXJMaXN0UHRyCit4bWxQb2ludGVyTGlzdENyZWF0ZShpbnQgaW5pdGlhbFNpemUpCit7CisgICAgeG1sUG9pbnRlckxpc3RQdHIgcmV0OworCisgICAgcmV0ID0geG1sTWFsbG9jKHNpemVvZih4bWxQb2ludGVyTGlzdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworCXhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsCisJICAgICJ4bWxQb2ludGVyTGlzdENyZWF0ZTogYWxsb2NhdGluZyBpdGVtXG4iKTsKKwlyZXR1cm4gKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwLCBzaXplb2YoeG1sUG9pbnRlckxpc3QpKTsKKyAgICBpZiAoaW5pdGlhbFNpemUgPiAwKSB7CisJeG1sUG9pbnRlckxpc3RBZGRTaXplKHJldCwgTlVMTCwgaW5pdGlhbFNpemUpOworCXJldC0+bnVtYmVyID0gMDsKKyAgICB9CisgICAgcmV0dXJuIChyZXQpOworfQorCisvKioKKyAqIHhzbHRQb2ludGVyTGlzdEZyZWU6CisgKgorICogRnJlZXMgdGhlIHhzbHRQb2ludGVyTGlzdCBzdHJ1Y3R1cmUuIFRoaXMgZG9lcyBub3QgZnJlZQorICogdGhlIGNvbnRlbnQgb2YgdGhlIGxpc3QuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxQb2ludGVyTGlzdEZyZWUoeG1sUG9pbnRlckxpc3RQdHIgbGlzdCkKK3sKKyAgICBpZiAobGlzdCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBpZiAobGlzdC0+aXRlbXMgIT0gTlVMTCkKKwl4bWxGcmVlKGxpc3QtPml0ZW1zKTsKKyAgICB4bWxGcmVlKGxpc3QpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJUGFyc2VyIFR5cGVzCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBUeXBlcyBhcmUgcHJpdmF0ZToKKyAqLworCit0eXBlZGVmIGVudW0geworICAgIFhQQVRIX09QX0VORD0wLAorICAgIFhQQVRIX09QX0FORCwKKyAgICBYUEFUSF9PUF9PUiwKKyAgICBYUEFUSF9PUF9FUVVBTCwKKyAgICBYUEFUSF9PUF9DTVAsCisgICAgWFBBVEhfT1BfUExVUywKKyAgICBYUEFUSF9PUF9NVUxULAorICAgIFhQQVRIX09QX1VOSU9OLAorICAgIFhQQVRIX09QX1JPT1QsCisgICAgWFBBVEhfT1BfTk9ERSwKKyAgICBYUEFUSF9PUF9SRVNFVCwgLyogMTAgKi8KKyAgICBYUEFUSF9PUF9DT0xMRUNULAorICAgIFhQQVRIX09QX1ZBTFVFLCAvKiAxMiAqLworICAgIFhQQVRIX09QX1ZBUklBQkxFLAorICAgIFhQQVRIX09QX0ZVTkNUSU9OLAorICAgIFhQQVRIX09QX0FSRywKKyAgICBYUEFUSF9PUF9QUkVESUNBVEUsCisgICAgWFBBVEhfT1BfRklMVEVSLCAvKiAxNyAqLworICAgIFhQQVRIX09QX1NPUlQgLyogMTggKi8KKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisgICAgLFhQQVRIX09QX1JBTkdFVE8KKyNlbmRpZgorfSB4bWxYUGF0aE9wOworCit0eXBlZGVmIGVudW0geworICAgIEFYSVNfQU5DRVNUT1IgPSAxLAorICAgIEFYSVNfQU5DRVNUT1JfT1JfU0VMRiwKKyAgICBBWElTX0FUVFJJQlVURSwKKyAgICBBWElTX0NISUxELAorICAgIEFYSVNfREVTQ0VOREFOVCwKKyAgICBBWElTX0RFU0NFTkRBTlRfT1JfU0VMRiwKKyAgICBBWElTX0ZPTExPV0lORywKKyAgICBBWElTX0ZPTExPV0lOR19TSUJMSU5HLAorICAgIEFYSVNfTkFNRVNQQUNFLAorICAgIEFYSVNfUEFSRU5ULAorICAgIEFYSVNfUFJFQ0VESU5HLAorICAgIEFYSVNfUFJFQ0VESU5HX1NJQkxJTkcsCisgICAgQVhJU19TRUxGCit9IHhtbFhQYXRoQXhpc1ZhbDsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBOT0RFX1RFU1RfTk9ORSA9IDAsCisgICAgTk9ERV9URVNUX1RZUEUgPSAxLAorICAgIE5PREVfVEVTVF9QSSA9IDIsCisgICAgTk9ERV9URVNUX0FMTCA9IDMsCisgICAgTk9ERV9URVNUX05TID0gNCwKKyAgICBOT0RFX1RFU1RfTkFNRSA9IDUKK30geG1sWFBhdGhUZXN0VmFsOworCit0eXBlZGVmIGVudW0geworICAgIE5PREVfVFlQRV9OT0RFID0gMCwKKyAgICBOT0RFX1RZUEVfQ09NTUVOVCA9IFhNTF9DT01NRU5UX05PREUsCisgICAgTk9ERV9UWVBFX1RFWFQgPSBYTUxfVEVYVF9OT0RFLAorICAgIE5PREVfVFlQRV9QSSA9IFhNTF9QSV9OT0RFCit9IHhtbFhQYXRoVHlwZVZhbDsKKworI2RlZmluZSBYUF9SRVdSSVRFX0RPU19DSElMRF9FTEVNIDEKKwordHlwZWRlZiBzdHJ1Y3QgX3htbFhQYXRoU3RlcE9wIHhtbFhQYXRoU3RlcE9wOwordHlwZWRlZiB4bWxYUGF0aFN0ZXBPcCAqeG1sWFBhdGhTdGVwT3BQdHI7CitzdHJ1Y3QgX3htbFhQYXRoU3RlcE9wIHsKKyAgICB4bWxYUGF0aE9wIG9wOwkJLyogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG9wZXJhdGlvbiAqLworICAgIGludCBjaDE7CQkJLyogRmlyc3QgY2hpbGQgKi8KKyAgICBpbnQgY2gyOwkJCS8qIFNlY29uZCBjaGlsZCAqLworICAgIGludCB2YWx1ZTsKKyAgICBpbnQgdmFsdWUyOworICAgIGludCB2YWx1ZTM7CisgICAgdm9pZCAqdmFsdWU0OworICAgIHZvaWQgKnZhbHVlNTsKKyAgICB2b2lkICpjYWNoZTsKKyAgICB2b2lkICpjYWNoZVVSSTsKKyAgICBpbnQgcmV3cml0ZVR5cGU7Cit9OworCitzdHJ1Y3QgX3htbFhQYXRoQ29tcEV4cHIgeworICAgIGludCBuYlN0ZXA7CQkJLyogTnVtYmVyIG9mIHN0ZXBzIGluIHRoaXMgZXhwcmVzc2lvbiAqLworICAgIGludCBtYXhTdGVwOwkJLyogTWF4aW11bSBudW1iZXIgb2Ygc3RlcHMgYWxsb2NhdGVkICovCisgICAgeG1sWFBhdGhTdGVwT3AgKnN0ZXBzOwkvKiBvcHMgZm9yIGNvbXB1dGF0aW9uIG9mIHRoaXMgZXhwcmVzc2lvbiAqLworICAgIGludCBsYXN0OwkJCS8qIGluZGV4IG9mIGxhc3Qgc3RlcCBpbiBleHByZXNzaW9uICovCisgICAgeG1sQ2hhciAqZXhwcjsJCS8qIHRoZSBleHByZXNzaW9uIGJlaW5nIGNvbXB1dGVkICovCisgICAgeG1sRGljdFB0ciBkaWN0OwkJLyogdGhlIGRpY3Rpb25uYXJ5IHRvIHVzZSBpZiBhbnkgKi8KKyNpZmRlZiBERUJVR19FVkFMX0NPVU5UUworICAgIGludCBuYjsKKyAgICB4bWxDaGFyICpzdHJpbmc7CisjZW5kaWYKKyNpZmRlZiBYUEFUSF9TVFJFQU1JTkcKKyAgICB4bWxQYXR0ZXJuUHRyIHN0cmVhbTsKKyNlbmRpZgorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCUZvcndhcmQgZGVjbGFyYXRpb25zCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aEZyZWVWYWx1ZVRyZWUoeG1sTm9kZVNldFB0ciBvYmopOworc3RhdGljIHZvaWQKK3htbFhQYXRoUmVsZWFzZU9iamVjdCh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgeG1sWFBhdGhPYmplY3RQdHIgb2JqKTsKK3N0YXRpYyBpbnQKK3htbFhQYXRoQ29tcE9wRXZhbEZpcnN0KHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhTdGVwT3BQdHIgb3AsIHhtbE5vZGVQdHIgKmZpcnN0KTsKK3N0YXRpYyBpbnQKK3htbFhQYXRoQ29tcE9wRXZhbFRvQm9vbGVhbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkJCSAgICB4bWxYUGF0aFN0ZXBPcFB0ciBvcCwKKwkJCSAgICBpbnQgaXNQcmVkaWNhdGUpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJUGFyc2VyIFR5cGUgZnVuY3Rpb25zCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxYUGF0aE5ld0NvbXBFeHByOgorICoKKyAqIENyZWF0ZSBhIG5ldyBYcGF0aCBjb21wb25lbnQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBhbGxvY2F0ZWQgeG1sWFBhdGhDb21wRXhwclB0ciBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbFhQYXRoQ29tcEV4cHJQdHIKK3htbFhQYXRoTmV3Q29tcEV4cHIodm9pZCkgeworICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY3VyOworCisgICAgY3VyID0gKHhtbFhQYXRoQ29tcEV4cHJQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhDb21wRXhwcikpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiYWxsb2NhdGluZyBjb21wb25lbnRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KGN1ciwgMCwgc2l6ZW9mKHhtbFhQYXRoQ29tcEV4cHIpKTsKKyAgICBjdXItPm1heFN0ZXAgPSAxMDsKKyAgICBjdXItPm5iU3RlcCA9IDA7CisgICAgY3VyLT5zdGVwcyA9ICh4bWxYUGF0aFN0ZXBPcCAqKSB4bWxNYWxsb2MoY3VyLT5tYXhTdGVwICoKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih4bWxYUGF0aFN0ZXBPcCkpOworICAgIGlmIChjdXItPnN0ZXBzID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImFsbG9jYXRpbmcgc3RlcHNcbiIpOworCXhtbEZyZWUoY3VyKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChjdXItPnN0ZXBzLCAwLCBjdXItPm1heFN0ZXAgKiBzaXplb2YoeG1sWFBhdGhTdGVwT3ApKTsKKyAgICBjdXItPmxhc3QgPSAtMTsKKyNpZmRlZiBERUJVR19FVkFMX0NPVU5UUworICAgIGN1ci0+bmIgPSAwOworI2VuZGlmCisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sWFBhdGhGcmVlQ29tcEV4cHI6CisgKiBAY29tcDogIGFuIFhQQVRIIGNvbXAKKyAqCisgKiBGcmVlIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IEBjb21wCisgKi8KK3ZvaWQKK3htbFhQYXRoRnJlZUNvbXBFeHByKHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcCkKK3sKKyAgICB4bWxYUGF0aFN0ZXBPcFB0ciBvcDsKKyAgICBpbnQgaTsKKworICAgIGlmIChjb21wID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoY29tcC0+ZGljdCA9PSBOVUxMKSB7CisJZm9yIChpID0gMDsgaSA8IGNvbXAtPm5iU3RlcDsgaSsrKSB7CisJICAgIG9wID0gJmNvbXAtPnN0ZXBzW2ldOworCSAgICBpZiAob3AtPnZhbHVlNCAhPSBOVUxMKSB7CisJCWlmIChvcC0+b3AgPT0gWFBBVEhfT1BfVkFMVUUpCisJCSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob3AtPnZhbHVlNCk7CisJCWVsc2UKKwkJICAgIHhtbEZyZWUob3AtPnZhbHVlNCk7CisJICAgIH0KKwkgICAgaWYgKG9wLT52YWx1ZTUgIT0gTlVMTCkKKwkJeG1sRnJlZShvcC0+dmFsdWU1KTsKKwl9CisgICAgfSBlbHNlIHsKKwlmb3IgKGkgPSAwOyBpIDwgY29tcC0+bmJTdGVwOyBpKyspIHsKKwkgICAgb3AgPSAmY29tcC0+c3RlcHNbaV07CisJICAgIGlmIChvcC0+dmFsdWU0ICE9IE5VTEwpIHsKKwkJaWYgKG9wLT5vcCA9PSBYUEFUSF9PUF9WQUxVRSkKKwkJICAgIHhtbFhQYXRoRnJlZU9iamVjdChvcC0+dmFsdWU0KTsKKwkgICAgfQorCX0KKyAgICAgICAgeG1sRGljdEZyZWUoY29tcC0+ZGljdCk7CisgICAgfQorICAgIGlmIChjb21wLT5zdGVwcyAhPSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWUoY29tcC0+c3RlcHMpOworICAgIH0KKyNpZmRlZiBERUJVR19FVkFMX0NPVU5UUworICAgIGlmIChjb21wLT5zdHJpbmcgIT0gTlVMTCkgeworICAgICAgICB4bWxGcmVlKGNvbXAtPnN0cmluZyk7CisgICAgfQorI2VuZGlmCisjaWZkZWYgWFBBVEhfU1RSRUFNSU5HCisgICAgaWYgKGNvbXAtPnN0cmVhbSAhPSBOVUxMKSB7CisgICAgICAgIHhtbEZyZWVQYXR0ZXJuTGlzdChjb21wLT5zdHJlYW0pOworICAgIH0KKyNlbmRpZgorICAgIGlmIChjb21wLT5leHByICE9IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShjb21wLT5leHByKTsKKyAgICB9CisKKyAgICB4bWxGcmVlKGNvbXApOworfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcEV4cHJBZGQ6CisgKiBAY29tcDogIHRoZSBjb21waWxlZCBleHByZXNzaW9uCisgKiBAY2gxOiBmaXJzdCBjaGlsZCBpbmRleAorICogQGNoMjogc2Vjb25kIGNoaWxkIGluZGV4CisgKiBAb3A6ICBhbiBvcAorICogQHZhbHVlOiAgdGhlIGZpcnN0IGludCB2YWx1ZQorICogQHZhbHVlMjogIHRoZSBzZWNvbmQgaW50IHZhbHVlCisgKiBAdmFsdWUzOiAgdGhlIHRoaXJkIGludCB2YWx1ZQorICogQHZhbHVlNDogIHRoZSBmaXJzdCBzdHJpbmcgdmFsdWUKKyAqIEB2YWx1ZTU6ICB0aGUgc2Vjb25kIHN0cmluZyB2YWx1ZQorICoKKyAqIEFkZCBhIHN0ZXAgdG8gYW4gWFBhdGggQ29tcGlsZWQgRXhwcmVzc2lvbgorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCB0aGUgaW5kZXggb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQYXRoQ29tcEV4cHJBZGQoeG1sWFBhdGhDb21wRXhwclB0ciBjb21wLCBpbnQgY2gxLCBpbnQgY2gyLAorICAgeG1sWFBhdGhPcCBvcCwgaW50IHZhbHVlLAorICAgaW50IHZhbHVlMiwgaW50IHZhbHVlMywgdm9pZCAqdmFsdWU0LCB2b2lkICp2YWx1ZTUpIHsKKyAgICBpZiAoY29tcC0+bmJTdGVwID49IGNvbXAtPm1heFN0ZXApIHsKKwl4bWxYUGF0aFN0ZXBPcCAqcmVhbDsKKworCWNvbXAtPm1heFN0ZXAgKj0gMjsKKwlyZWFsID0gKHhtbFhQYXRoU3RlcE9wICopIHhtbFJlYWxsb2MoY29tcC0+c3RlcHMsCisJCSAgICAgICAgICAgICAgICAgICAgICBjb21wLT5tYXhTdGVwICogc2l6ZW9mKHhtbFhQYXRoU3RlcE9wKSk7CisJaWYgKHJlYWwgPT0gTlVMTCkgeworCSAgICBjb21wLT5tYXhTdGVwIC89IDI7CisJICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJhZGRpbmcgc3RlcFxuIik7CisJICAgIHJldHVybigtMSk7CisJfQorCWNvbXAtPnN0ZXBzID0gcmVhbDsKKyAgICB9CisgICAgY29tcC0+bGFzdCA9IGNvbXAtPm5iU3RlcDsKKyAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLnJld3JpdGVUeXBlID0gMDsKKyAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLmNoMSA9IGNoMTsKKyAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLmNoMiA9IGNoMjsKKyAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLm9wID0gb3A7CisgICAgY29tcC0+c3RlcHNbY29tcC0+bmJTdGVwXS52YWx1ZSA9IHZhbHVlOworICAgIGNvbXAtPnN0ZXBzW2NvbXAtPm5iU3RlcF0udmFsdWUyID0gdmFsdWUyOworICAgIGNvbXAtPnN0ZXBzW2NvbXAtPm5iU3RlcF0udmFsdWUzID0gdmFsdWUzOworICAgIGlmICgoY29tcC0+ZGljdCAhPSBOVUxMKSAmJgorICAgICAgICAoKG9wID09IFhQQVRIX09QX0ZVTkNUSU9OKSB8fCAob3AgPT0gWFBBVEhfT1BfVkFSSUFCTEUpIHx8CisJIChvcCA9PSBYUEFUSF9PUF9DT0xMRUNUKSkpIHsKKyAgICAgICAgaWYgKHZhbHVlNCAhPSBOVUxMKSB7CisJICAgIGNvbXAtPnN0ZXBzW2NvbXAtPm5iU3RlcF0udmFsdWU0ID0gKHhtbENoYXIgKikKKwkgICAgICAgICh2b2lkICopeG1sRGljdExvb2t1cChjb21wLT5kaWN0LCB2YWx1ZTQsIC0xKTsKKwkgICAgeG1sRnJlZSh2YWx1ZTQpOworCX0gZWxzZQorCSAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLnZhbHVlNCA9IE5VTEw7CisgICAgICAgIGlmICh2YWx1ZTUgIT0gTlVMTCkgeworCSAgICBjb21wLT5zdGVwc1tjb21wLT5uYlN0ZXBdLnZhbHVlNSA9ICh4bWxDaGFyICopCisJICAgICAgICAodm9pZCAqKXhtbERpY3RMb29rdXAoY29tcC0+ZGljdCwgdmFsdWU1LCAtMSk7CisJICAgIHhtbEZyZWUodmFsdWU1KTsKKwl9IGVsc2UKKwkgICAgY29tcC0+c3RlcHNbY29tcC0+bmJTdGVwXS52YWx1ZTUgPSBOVUxMOworICAgIH0gZWxzZSB7CisJY29tcC0+c3RlcHNbY29tcC0+bmJTdGVwXS52YWx1ZTQgPSB2YWx1ZTQ7CisJY29tcC0+c3RlcHNbY29tcC0+bmJTdGVwXS52YWx1ZTUgPSB2YWx1ZTU7CisgICAgfQorICAgIGNvbXAtPnN0ZXBzW2NvbXAtPm5iU3RlcF0uY2FjaGUgPSBOVUxMOworICAgIHJldHVybihjb21wLT5uYlN0ZXArKyk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wU3dhcDoKKyAqIEBjb21wOiAgdGhlIGNvbXBpbGVkIGV4cHJlc3Npb24KKyAqIEBvcDogb3BlcmF0aW9uIGluZGV4CisgKgorICogU3dhcHMgMiBvcGVyYXRpb25zIGluIHRoZSBjb21waWxlZCBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBTd2FwKHhtbFhQYXRoU3RlcE9wUHRyIG9wKSB7CisgICAgaW50IHRtcDsKKworI2lmbmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyAgICAvKgorICAgICAqIFNpbmNlIHRoaXMgbWFuaXB1bGF0ZXMgcG9zc2libHkgc2hhcmVkIHZhcmlhYmxlcywgdGhpcyBpcworICAgICAqIGRpc2FibGVkIGlmIG9uZSBkZXRlY3RzIHRoYXQgdGhlIGxpYnJhcnkgaXMgdXNlZCBpbiBhIG11bHRpdGhyZWFkZWQKKyAgICAgKiBhcHBsaWNhdGlvbgorICAgICAqLworICAgIGlmICh4bWxYUGF0aERpc2FibGVPcHRpbWl6ZXIpCisJcmV0dXJuOworI2VuZGlmCisKKyAgICB0bXAgPSBvcC0+Y2gxOworICAgIG9wLT5jaDEgPSBvcC0+Y2gyOworICAgIG9wLT5jaDIgPSB0bXA7Cit9CisKKyNkZWZpbmUgUFVTSF9GVUxMX0VYUFIob3AsIG9wMSwgb3AyLCB2YWwsIHZhbDIsIHZhbDMsIHZhbDQsIHZhbDUpCVwKKyAgICB4bWxYUGF0aENvbXBFeHByQWRkKGN0eHQtPmNvbXAsIChvcDEpLCAob3AyKSwJCQlcCisJICAgICAgICAgICAgICAgIChvcCksICh2YWwpLCAodmFsMiksICh2YWwzKSwgKHZhbDQpLCAodmFsNSkpCisjZGVmaW5lIFBVU0hfTE9OR19FWFBSKG9wLCB2YWwsIHZhbDIsIHZhbDMsIHZhbDQsIHZhbDUpCQkJXAorICAgIHhtbFhQYXRoQ29tcEV4cHJBZGQoY3R4dC0+Y29tcCwgY3R4dC0+Y29tcC0+bGFzdCwgLTEsCQlcCisJICAgICAgICAgICAgICAgIChvcCksICh2YWwpLCAodmFsMiksICh2YWwzKSwgKHZhbDQpLCAodmFsNSkpCisKKyNkZWZpbmUgUFVTSF9MRUFWRV9FWFBSKG9wLCB2YWwsIHZhbDIpCQkJCQlcCit4bWxYUGF0aENvbXBFeHByQWRkKGN0eHQtPmNvbXAsIC0xLCAtMSwgKG9wKSwgKHZhbCksICh2YWwyKSwgMCAsTlVMTCAsTlVMTCkKKworI2RlZmluZSBQVVNIX1VOQVJZX0VYUFIob3AsIGNoLCB2YWwsIHZhbDIpCQkJCVwKK3htbFhQYXRoQ29tcEV4cHJBZGQoY3R4dC0+Y29tcCwgKGNoKSwgLTEsIChvcCksICh2YWwpLCAodmFsMiksIDAgLE5VTEwgLE5VTEwpCisKKyNkZWZpbmUgUFVTSF9CSU5BUllfRVhQUihvcCwgY2gxLCBjaDIsIHZhbCwgdmFsMikJCQlcCit4bWxYUGF0aENvbXBFeHByQWRkKGN0eHQtPmNvbXAsIChjaDEpLCAoY2gyKSwgKG9wKSwJCQlcCisJCQkodmFsKSwgKHZhbDIpLCAwICxOVUxMICxOVUxMKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlYUGF0aCBvYmplY3QgY2FjaGUgc3RydWN0dXJlcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qICNkZWZpbmUgWFBfREVGQVVMVF9DQUNIRV9PTiAqLworCisjZGVmaW5lIFhQX0hBU19DQUNIRShjKSAoKGMgIT0gTlVMTCkgJiYgKChjKS0+Y2FjaGUgIT0gTlVMTCkpCisKK3R5cGVkZWYgc3RydWN0IF94bWxYUGF0aENvbnRleHRDYWNoZSB4bWxYUGF0aENvbnRleHRDYWNoZTsKK3R5cGVkZWYgeG1sWFBhdGhDb250ZXh0Q2FjaGUgKnhtbFhQYXRoQ29udGV4dENhY2hlUHRyOworc3RydWN0IF94bWxYUGF0aENvbnRleHRDYWNoZSB7CisgICAgeG1sUG9pbnRlckxpc3RQdHIgbm9kZXNldE9ianM7ICAvKiBjb250YWlucyB4bWxYUGF0aE9iamVjdFB0ciAqLworICAgIHhtbFBvaW50ZXJMaXN0UHRyIHN0cmluZ09ianM7ICAgLyogY29udGFpbnMgeG1sWFBhdGhPYmplY3RQdHIgKi8KKyAgICB4bWxQb2ludGVyTGlzdFB0ciBib29sZWFuT2JqczsgIC8qIGNvbnRhaW5zIHhtbFhQYXRoT2JqZWN0UHRyICovCisgICAgeG1sUG9pbnRlckxpc3RQdHIgbnVtYmVyT2JqczsgICAvKiBjb250YWlucyB4bWxYUGF0aE9iamVjdFB0ciAqLworICAgIHhtbFBvaW50ZXJMaXN0UHRyIG1pc2NPYmpzOyAgICAgLyogY29udGFpbnMgeG1sWFBhdGhPYmplY3RQdHIgKi8KKyAgICBpbnQgbWF4Tm9kZXNldDsKKyAgICBpbnQgbWF4U3RyaW5nOworICAgIGludCBtYXhCb29sZWFuOworICAgIGludCBtYXhOdW1iZXI7CisgICAgaW50IG1heE1pc2M7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisgICAgaW50IGRiZ0NhY2hlZEFsbDsKKyAgICBpbnQgZGJnQ2FjaGVkTm9kZXNldDsKKyAgICBpbnQgZGJnQ2FjaGVkU3RyaW5nOworICAgIGludCBkYmdDYWNoZWRCb29sOworICAgIGludCBkYmdDYWNoZWROdW1iZXI7CisgICAgaW50IGRiZ0NhY2hlZFBvaW50OworICAgIGludCBkYmdDYWNoZWRSYW5nZTsKKyAgICBpbnQgZGJnQ2FjaGVkTG9jc2V0OworICAgIGludCBkYmdDYWNoZWRVc2VyczsKKyAgICBpbnQgZGJnQ2FjaGVkWFNMVFRyZWU7CisgICAgaW50IGRiZ0NhY2hlZFVuZGVmaW5lZDsKKworCisgICAgaW50IGRiZ1JldXNlZEFsbDsKKyAgICBpbnQgZGJnUmV1c2VkTm9kZXNldDsKKyAgICBpbnQgZGJnUmV1c2VkU3RyaW5nOworICAgIGludCBkYmdSZXVzZWRCb29sOworICAgIGludCBkYmdSZXVzZWROdW1iZXI7CisgICAgaW50IGRiZ1JldXNlZFBvaW50OworICAgIGludCBkYmdSZXVzZWRSYW5nZTsKKyAgICBpbnQgZGJnUmV1c2VkTG9jc2V0OworICAgIGludCBkYmdSZXVzZWRVc2VyczsKKyAgICBpbnQgZGJnUmV1c2VkWFNMVFRyZWU7CisgICAgaW50IGRiZ1JldXNlZFVuZGVmaW5lZDsKKworI2VuZGlmCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlEZWJ1Z2dpbmcgcmVsYXRlZCBmdW5jdGlvbnMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFNUUkFOR0UJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJJbnRlcm5hbCBlcnJvciBhdCAlczolZFxuIiwJCQkJXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECitzdGF0aWMgdm9pZAoreG1sWFBhdGhEZWJ1Z0R1bXBOb2RlKEZJTEUgKm91dHB1dCwgeG1sTm9kZVB0ciBjdXIsIGludCBkZXB0aCkgeworICAgIGludCBpOworICAgIGNoYXIgc2hpZnRbMTAwXTsKKworICAgIGZvciAoaSA9IDA7KChpIDwgZGVwdGgpICYmIChpIDwgMjUpKTtpKyspCisgICAgICAgIHNoaWZ0WzIgKiBpXSA9IHNoaWZ0WzIgKiBpICsgMV0gPSAnICc7CisgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9IDA7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJZnByaW50ZihvdXRwdXQsICIlcyIsIHNoaWZ0KTsKKwlmcHJpbnRmKG91dHB1dCwgIk5vZGUgaXMgTlVMTCAhXG4iKTsKKwlyZXR1cm47CisKKyAgICB9CisKKyAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKwkgICAgIChjdXItPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpIHsKKwlmcHJpbnRmKG91dHB1dCwgIiVzIiwgc2hpZnQpOworCWZwcmludGYob3V0cHV0LCAiIC9cbiIpOworICAgIH0gZWxzZSBpZiAoY3VyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkKKwl4bWxEZWJ1Z0R1bXBBdHRyKG91dHB1dCwgKHhtbEF0dHJQdHIpY3VyLCBkZXB0aCk7CisgICAgZWxzZQorCXhtbERlYnVnRHVtcE9uZU5vZGUob3V0cHV0LCBjdXIsIGRlcHRoKTsKK30KK3N0YXRpYyB2b2lkCit4bWxYUGF0aERlYnVnRHVtcE5vZGVMaXN0KEZJTEUgKm91dHB1dCwgeG1sTm9kZVB0ciBjdXIsIGludCBkZXB0aCkgeworICAgIHhtbE5vZGVQdHIgdG1wOworICAgIGludCBpOworICAgIGNoYXIgc2hpZnRbMTAwXTsKKworICAgIGZvciAoaSA9IDA7KChpIDwgZGVwdGgpICYmIChpIDwgMjUpKTtpKyspCisgICAgICAgIHNoaWZ0WzIgKiBpXSA9IHNoaWZ0WzIgKiBpICsgMV0gPSAnICc7CisgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9IDA7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJZnByaW50ZihvdXRwdXQsICIlcyIsIHNoaWZ0KTsKKwlmcHJpbnRmKG91dHB1dCwgIk5vZGUgaXMgTlVMTCAhXG4iKTsKKwlyZXR1cm47CisKKyAgICB9CisKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwl0bXAgPSBjdXI7CisJY3VyID0gY3VyLT5uZXh0OworCXhtbERlYnVnRHVtcE9uZU5vZGUob3V0cHV0LCB0bXAsIGRlcHRoKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4bWxYUGF0aERlYnVnRHVtcE5vZGVTZXQoRklMRSAqb3V0cHV0LCB4bWxOb2RlU2V0UHRyIGN1ciwgaW50IGRlcHRoKSB7CisgICAgaW50IGk7CisgICAgY2hhciBzaGlmdFsxMDBdOworCisgICAgZm9yIChpID0gMDsoKGkgPCBkZXB0aCkgJiYgKGkgPCAyNSkpO2krKykKKyAgICAgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9ICcgJzsKKyAgICBzaGlmdFsyICogaV0gPSBzaGlmdFsyICogaSArIDFdID0gMDsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCWZwcmludGYob3V0cHV0LCAiJXMiLCBzaGlmdCk7CisJZnByaW50ZihvdXRwdXQsICJOb2RlU2V0IGlzIE5VTEwgIVxuIik7CisJcmV0dXJuOworCisgICAgfQorCisgICAgaWYgKGN1ciAhPSBOVUxMKSB7CisJZnByaW50ZihvdXRwdXQsICJTZXQgY29udGFpbnMgJWQgbm9kZXM6XG4iLCBjdXItPm5vZGVOcik7CisJZm9yIChpID0gMDtpIDwgY3VyLT5ub2RlTnI7aSsrKSB7CisJICAgIGZwcmludGYob3V0cHV0LCAiJXMiLCBzaGlmdCk7CisJICAgIGZwcmludGYob3V0cHV0LCAiJWQiLCBpICsgMSk7CisJICAgIHhtbFhQYXRoRGVidWdEdW1wTm9kZShvdXRwdXQsIGN1ci0+bm9kZVRhYltpXSwgZGVwdGggKyAxKTsKKwl9CisgICAgfQorfQorCitzdGF0aWMgdm9pZAoreG1sWFBhdGhEZWJ1Z0R1bXBWYWx1ZVRyZWUoRklMRSAqb3V0cHV0LCB4bWxOb2RlU2V0UHRyIGN1ciwgaW50IGRlcHRoKSB7CisgICAgaW50IGk7CisgICAgY2hhciBzaGlmdFsxMDBdOworCisgICAgZm9yIChpID0gMDsoKGkgPCBkZXB0aCkgJiYgKGkgPCAyNSkpO2krKykKKyAgICAgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9ICcgJzsKKyAgICBzaGlmdFsyICogaV0gPSBzaGlmdFsyICogaSArIDFdID0gMDsKKworICAgIGlmICgoY3VyID09IE5VTEwpIHx8IChjdXItPm5vZGVOciA9PSAwKSB8fCAoY3VyLT5ub2RlVGFiWzBdID09IE5VTEwpKSB7CisJZnByaW50ZihvdXRwdXQsICIlcyIsIHNoaWZ0KTsKKwlmcHJpbnRmKG91dHB1dCwgIlZhbHVlIFRyZWUgaXMgTlVMTCAhXG4iKTsKKwlyZXR1cm47CisKKyAgICB9CisKKyAgICBmcHJpbnRmKG91dHB1dCwgIiVzIiwgc2hpZnQpOworICAgIGZwcmludGYob3V0cHV0LCAiJWQiLCBpICsgMSk7CisgICAgeG1sWFBhdGhEZWJ1Z0R1bXBOb2RlTGlzdChvdXRwdXQsIGN1ci0+bm9kZVRhYlswXS0+Y2hpbGRyZW4sIGRlcHRoICsgMSk7Cit9CisjaWYgZGVmaW5lZChMSUJYTUxfWFBUUl9FTkFCTEVEKQorc3RhdGljIHZvaWQKK3htbFhQYXRoRGVidWdEdW1wTG9jYXRpb25TZXQoRklMRSAqb3V0cHV0LCB4bWxMb2NhdGlvblNldFB0ciBjdXIsIGludCBkZXB0aCkgeworICAgIGludCBpOworICAgIGNoYXIgc2hpZnRbMTAwXTsKKworICAgIGZvciAoaSA9IDA7KChpIDwgZGVwdGgpICYmIChpIDwgMjUpKTtpKyspCisgICAgICAgIHNoaWZ0WzIgKiBpXSA9IHNoaWZ0WzIgKiBpICsgMV0gPSAnICc7CisgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9IDA7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwlmcHJpbnRmKG91dHB1dCwgIiVzIiwgc2hpZnQpOworCWZwcmludGYob3V0cHV0LCAiTG9jYXRpb25TZXQgaXMgTlVMTCAhXG4iKTsKKwlyZXR1cm47CisKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwO2kgPCBjdXItPmxvY05yO2krKykgeworCWZwcmludGYob3V0cHV0LCAiJXMiLCBzaGlmdCk7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiJWQgOiAiLCBpICsgMSk7CisJeG1sWFBhdGhEZWJ1Z0R1bXBPYmplY3Qob3V0cHV0LCBjdXItPmxvY1RhYltpXSwgZGVwdGggKyAxKTsKKyAgICB9Cit9CisjZW5kaWYgLyogTElCWE1MX1hQVFJfRU5BQkxFRCAqLworCisvKioKKyAqIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0OgorICogQG91dHB1dDogIHRoZSBGSUxFICogdG8gZHVtcCB0aGUgb3V0cHV0CisgKiBAY3VyOiAgdGhlIG9iamVjdCB0byBpbnNwZWN0CisgKiBAZGVwdGg6ICBpbmRlbnRhdGlvbiBsZXZlbAorICoKKyAqIER1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIG9iamVjdCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzCisgKi8KK3ZvaWQKK3htbFhQYXRoRGVidWdEdW1wT2JqZWN0KEZJTEUgKm91dHB1dCwgeG1sWFBhdGhPYmplY3RQdHIgY3VyLCBpbnQgZGVwdGgpIHsKKyAgICBpbnQgaTsKKyAgICBjaGFyIHNoaWZ0WzEwMF07CisKKyAgICBpZiAob3V0cHV0ID09IE5VTEwpIHJldHVybjsKKworICAgIGZvciAoaSA9IDA7KChpIDwgZGVwdGgpICYmIChpIDwgMjUpKTtpKyspCisgICAgICAgIHNoaWZ0WzIgKiBpXSA9IHNoaWZ0WzIgKiBpICsgMV0gPSAnICc7CisgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9IDA7CisKKworICAgIGZwcmludGYob3V0cHV0LCAiJXMiLCBzaGlmdCk7CisKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgZW1wdHkgKE5VTEwpXG4iKTsKKwlyZXR1cm47CisgICAgfQorICAgIHN3aXRjaChjdXItPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYUEFUSF9VTkRFRklORUQ6CisJICAgIGZwcmludGYob3V0cHV0LCAiT2JqZWN0IGlzIHVuaW5pdGlhbGl6ZWRcbiIpOworCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9OT0RFU0VUOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIk9iamVjdCBpcyBhIE5vZGUgU2V0IDpcbiIpOworCSAgICB4bWxYUGF0aERlYnVnRHVtcE5vZGVTZXQob3V0cHV0LCBjdXItPm5vZGVzZXR2YWwsIGRlcHRoKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJICAgIGZwcmludGYob3V0cHV0LCAiT2JqZWN0IGlzIGFuIFhTTFQgdmFsdWUgdHJlZSA6XG4iKTsKKwkgICAgeG1sWFBhdGhEZWJ1Z0R1bXBWYWx1ZVRyZWUob3V0cHV0LCBjdXItPm5vZGVzZXR2YWwsIGRlcHRoKTsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfQk9PTEVBTjoKKwkgICAgZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSBCb29sZWFuIDogIik7CisJICAgIGlmIChjdXItPmJvb2x2YWwpIGZwcmludGYob3V0cHV0LCAidHJ1ZVxuIik7CisJICAgIGVsc2UgZnByaW50ZihvdXRwdXQsICJmYWxzZVxuIik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX05VTUJFUjoKKwkgICAgc3dpdGNoICh4bWxYUGF0aElzSW5mKGN1ci0+ZmxvYXR2YWwpKSB7CisJICAgIGNhc2UgMToKKwkJZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSBudW1iZXIgOiBJbmZpbml0eVxuIik7CisJCWJyZWFrOworCSAgICBjYXNlIC0xOgorCQlmcHJpbnRmKG91dHB1dCwgIk9iamVjdCBpcyBhIG51bWJlciA6IC1JbmZpbml0eVxuIik7CisJCWJyZWFrOworCSAgICBkZWZhdWx0OgorCQlpZiAoeG1sWFBhdGhJc05hTihjdXItPmZsb2F0dmFsKSkgeworCQkgICAgZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSBudW1iZXIgOiBOYU5cbiIpOworCQl9IGVsc2UgaWYgKGN1ci0+ZmxvYXR2YWwgPT0gMCAmJiB4bWxYUGF0aEdldFNpZ24oY3VyLT5mbG9hdHZhbCkgIT0gMCkgeworCQkgICAgZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSBudW1iZXIgOiAwXG4iKTsKKwkJfSBlbHNlIHsKKwkJICAgIGZwcmludGYob3V0cHV0LCAiT2JqZWN0IGlzIGEgbnVtYmVyIDogJTBnXG4iLCBjdXItPmZsb2F0dmFsKTsKKwkJfQorCSAgICB9CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX1NUUklORzoKKwkgICAgZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSBzdHJpbmcgOiAiKTsKKwkgICAgeG1sRGVidWdEdW1wU3RyaW5nKG91dHB1dCwgY3VyLT5zdHJpbmd2YWwpOworCSAgICBmcHJpbnRmKG91dHB1dCwgIlxuIik7CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfUE9JTlQ6CisJICAgIGZwcmludGYob3V0cHV0LCAiT2JqZWN0IGlzIGEgcG9pbnQgOiBpbmRleCAlZCBpbiBub2RlIiwgY3VyLT5pbmRleCk7CisJICAgIHhtbFhQYXRoRGVidWdEdW1wTm9kZShvdXRwdXQsICh4bWxOb2RlUHRyKSBjdXItPnVzZXIsIGRlcHRoICsgMSk7CisJICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9SQU5HRToKKwkgICAgaWYgKChjdXItPnVzZXIyID09IE5VTEwpIHx8CisJCSgoY3VyLT51c2VyMiA9PSBjdXItPnVzZXIpICYmIChjdXItPmluZGV4ID09IGN1ci0+aW5kZXgyKSkpIHsKKwkJZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSBjb2xsYXBzZWQgcmFuZ2UgOlxuIik7CisJCWZwcmludGYob3V0cHV0LCAiJXMiLCBzaGlmdCk7CisJCWlmIChjdXItPmluZGV4ID49IDApCisJCSAgICBmcHJpbnRmKG91dHB1dCwgImluZGV4ICVkIGluICIsIGN1ci0+aW5kZXgpOworCQlmcHJpbnRmKG91dHB1dCwgIm5vZGVcbiIpOworCQl4bWxYUGF0aERlYnVnRHVtcE5vZGUob3V0cHV0LCAoeG1sTm9kZVB0cikgY3VyLT51c2VyLAorCQkJICAgICAgICAgICAgICBkZXB0aCArIDEpOworCSAgICB9IGVsc2UgIHsKKwkJZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSByYW5nZSA6XG4iKTsKKwkJZnByaW50ZihvdXRwdXQsICIlcyIsIHNoaWZ0KTsKKwkJZnByaW50ZihvdXRwdXQsICJGcm9tICIpOworCQlpZiAoY3VyLT5pbmRleCA+PSAwKQorCQkgICAgZnByaW50ZihvdXRwdXQsICJpbmRleCAlZCBpbiAiLCBjdXItPmluZGV4KTsKKwkJZnByaW50ZihvdXRwdXQsICJub2RlXG4iKTsKKwkJeG1sWFBhdGhEZWJ1Z0R1bXBOb2RlKG91dHB1dCwgKHhtbE5vZGVQdHIpIGN1ci0+dXNlciwKKwkJCSAgICAgICAgICAgICAgZGVwdGggKyAxKTsKKwkJZnByaW50ZihvdXRwdXQsICIlcyIsIHNoaWZ0KTsKKwkJZnByaW50ZihvdXRwdXQsICJUbyAiKTsKKwkJaWYgKGN1ci0+aW5kZXgyID49IDApCisJCSAgICBmcHJpbnRmKG91dHB1dCwgImluZGV4ICVkIGluICIsIGN1ci0+aW5kZXgyKTsKKwkJZnByaW50ZihvdXRwdXQsICJub2RlXG4iKTsKKwkJeG1sWFBhdGhEZWJ1Z0R1bXBOb2RlKG91dHB1dCwgKHhtbE5vZGVQdHIpIGN1ci0+dXNlcjIsCisJCQkgICAgICAgICAgICAgIGRlcHRoICsgMSk7CisJCWZwcmludGYob3V0cHV0LCAiXG4iKTsKKwkgICAgfQorCSAgICBicmVhazsKKwljYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOgorI2lmIGRlZmluZWQoTElCWE1MX1hQVFJfRU5BQkxFRCkKKwkgICAgZnByaW50ZihvdXRwdXQsICJPYmplY3QgaXMgYSBMb2NhdGlvbiBTZXQ6XG4iKTsKKwkgICAgeG1sWFBhdGhEZWJ1Z0R1bXBMb2NhdGlvblNldChvdXRwdXQsCisJCSAgICAoeG1sTG9jYXRpb25TZXRQdHIpIGN1ci0+dXNlciwgZGVwdGgpOworI2VuZGlmCisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfVVNFUlM6CisJICAgIGZwcmludGYob3V0cHV0LCAiT2JqZWN0IGlzIHVzZXIgZGVmaW5lZFxuIik7CisJICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3htbFhQYXRoRGVidWdEdW1wU3RlcE9wKEZJTEUgKm91dHB1dCwgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wLAorCSAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoU3RlcE9wUHRyIG9wLCBpbnQgZGVwdGgpIHsKKyAgICBpbnQgaTsKKyAgICBjaGFyIHNoaWZ0WzEwMF07CisKKyAgICBmb3IgKGkgPSAwOygoaSA8IGRlcHRoKSAmJiAoaSA8IDI1KSk7aSsrKQorICAgICAgICBzaGlmdFsyICogaV0gPSBzaGlmdFsyICogaSArIDFdID0gJyAnOworICAgIHNoaWZ0WzIgKiBpXSA9IHNoaWZ0WzIgKiBpICsgMV0gPSAwOworCisgICAgZnByaW50ZihvdXRwdXQsICIlcyIsIHNoaWZ0KTsKKyAgICBpZiAob3AgPT0gTlVMTCkgeworCWZwcmludGYob3V0cHV0LCAiU3RlcCBpcyBOVUxMXG4iKTsKKwlyZXR1cm47CisgICAgfQorICAgIHN3aXRjaCAob3AtPm9wKSB7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfRU5EOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIkVORCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9BTkQ6CisJICAgIGZwcmludGYob3V0cHV0LCAiQU5EIik7IGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX09QX09SOgorCSAgICBmcHJpbnRmKG91dHB1dCwgIk9SIik7IGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX09QX0VRVUFMOgorCSAgICAgaWYgKG9wLT52YWx1ZSkKKwkJIGZwcmludGYob3V0cHV0LCAiRVFVQUwgPSIpOworCSAgICAgZWxzZQorCQkgZnByaW50ZihvdXRwdXQsICJFUVVBTCAhPSIpOworCSAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfQ01QOgorCSAgICAgaWYgKG9wLT52YWx1ZSkKKwkJIGZwcmludGYob3V0cHV0LCAiQ01QIDwiKTsKKwkgICAgIGVsc2UKKwkJIGZwcmludGYob3V0cHV0LCAiQ01QID4iKTsKKwkgICAgIGlmICghb3AtPnZhbHVlMikKKwkJIGZwcmludGYob3V0cHV0LCAiPSIpOworCSAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfUExVUzoKKwkgICAgIGlmIChvcC0+dmFsdWUgPT0gMCkKKwkJIGZwcmludGYob3V0cHV0LCAiUExVUyAtIik7CisJICAgICBlbHNlIGlmIChvcC0+dmFsdWUgPT0gMSkKKwkJIGZwcmludGYob3V0cHV0LCAiUExVUyArIik7CisJICAgICBlbHNlIGlmIChvcC0+dmFsdWUgPT0gMikKKwkJIGZwcmludGYob3V0cHV0LCAiUExVUyB1bmFyeSAtIik7CisJICAgICBlbHNlIGlmIChvcC0+dmFsdWUgPT0gMykKKwkJIGZwcmludGYob3V0cHV0LCAiUExVUyB1bmFyeSAtIC0iKTsKKwkgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX09QX01VTFQ6CisJICAgICBpZiAob3AtPnZhbHVlID09IDApCisJCSBmcHJpbnRmKG91dHB1dCwgIk1VTFQgKiIpOworCSAgICAgZWxzZSBpZiAob3AtPnZhbHVlID09IDEpCisJCSBmcHJpbnRmKG91dHB1dCwgIk1VTFQgZGl2Iik7CisJICAgICBlbHNlCisJCSBmcHJpbnRmKG91dHB1dCwgIk1VTFQgbW9kIik7CisJICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9VTklPTjoKKwkgICAgIGZwcmludGYob3V0cHV0LCAiVU5JT04iKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfUk9PVDoKKwkgICAgIGZwcmludGYob3V0cHV0LCAiUk9PVCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9OT0RFOgorCSAgICAgZnByaW50ZihvdXRwdXQsICJOT0RFIik7IGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX09QX1JFU0VUOgorCSAgICAgZnByaW50ZihvdXRwdXQsICJSRVNFVCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9TT1JUOgorCSAgICAgZnByaW50ZihvdXRwdXQsICJTT1JUIik7IGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX09QX0NPTExFQ1Q6IHsKKwkgICAgeG1sWFBhdGhBeGlzVmFsIGF4aXMgPSAoeG1sWFBhdGhBeGlzVmFsKW9wLT52YWx1ZTsKKwkgICAgeG1sWFBhdGhUZXN0VmFsIHRlc3QgPSAoeG1sWFBhdGhUZXN0VmFsKW9wLT52YWx1ZTI7CisJICAgIHhtbFhQYXRoVHlwZVZhbCB0eXBlID0gKHhtbFhQYXRoVHlwZVZhbClvcC0+dmFsdWUzOworCSAgICBjb25zdCB4bWxDaGFyICpwcmVmaXggPSBvcC0+dmFsdWU0OworCSAgICBjb25zdCB4bWxDaGFyICpuYW1lID0gb3AtPnZhbHVlNTsKKworCSAgICBmcHJpbnRmKG91dHB1dCwgIkNPTExFQ1QgIik7CisJICAgIHN3aXRjaCAoYXhpcykgeworCQljYXNlIEFYSVNfQU5DRVNUT1I6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAnYW5jZXN0b3JzJyAiKTsgYnJlYWs7CisJCWNhc2UgQVhJU19BTkNFU1RPUl9PUl9TRUxGOgorCQkgICAgZnByaW50ZihvdXRwdXQsICIgJ2FuY2VzdG9ycy1vci1zZWxmJyAiKTsgYnJlYWs7CisJCWNhc2UgQVhJU19BVFRSSUJVVEU6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAnYXR0cmlidXRlcycgIik7IGJyZWFrOworCQljYXNlIEFYSVNfQ0hJTEQ6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAnY2hpbGQnICIpOyBicmVhazsKKwkJY2FzZSBBWElTX0RFU0NFTkRBTlQ6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAnZGVzY2VuZGFudCcgIik7IGJyZWFrOworCQljYXNlIEFYSVNfREVTQ0VOREFOVF9PUl9TRUxGOgorCQkgICAgZnByaW50ZihvdXRwdXQsICIgJ2Rlc2NlbmRhbnQtb3Itc2VsZicgIik7IGJyZWFrOworCQljYXNlIEFYSVNfRk9MTE9XSU5HOgorCQkgICAgZnByaW50ZihvdXRwdXQsICIgJ2ZvbGxvd2luZycgIik7IGJyZWFrOworCQljYXNlIEFYSVNfRk9MTE9XSU5HX1NJQkxJTkc6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAnZm9sbG93aW5nLXNpYmxpbmdzJyAiKTsgYnJlYWs7CisJCWNhc2UgQVhJU19OQU1FU1BBQ0U6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAnbmFtZXNwYWNlJyAiKTsgYnJlYWs7CisJCWNhc2UgQVhJU19QQVJFTlQ6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAncGFyZW50JyAiKTsgYnJlYWs7CisJCWNhc2UgQVhJU19QUkVDRURJTkc6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiAncHJlY2VkaW5nJyAiKTsgYnJlYWs7CisJCWNhc2UgQVhJU19QUkVDRURJTkdfU0lCTElORzoKKwkJICAgIGZwcmludGYob3V0cHV0LCAiICdwcmVjZWRpbmctc2libGluZycgIik7IGJyZWFrOworCQljYXNlIEFYSVNfU0VMRjoKKwkJICAgIGZwcmludGYob3V0cHV0LCAiICdzZWxmJyAiKTsgYnJlYWs7CisJICAgIH0KKwkgICAgc3dpdGNoICh0ZXN0KSB7CisgICAgICAgICAgICAgICAgY2FzZSBOT0RFX1RFU1RfTk9ORToKKwkJICAgIGZwcmludGYob3V0cHV0LCAiJ25vbmUnICIpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5PREVfVEVTVF9UWVBFOgorCQkgICAgZnByaW50ZihvdXRwdXQsICIndHlwZScgIik7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTk9ERV9URVNUX1BJOgorCQkgICAgZnByaW50ZihvdXRwdXQsICInUEknICIpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5PREVfVEVTVF9BTEw6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIidhbGwnICIpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5PREVfVEVTVF9OUzoKKwkJICAgIGZwcmludGYob3V0cHV0LCAiJ25hbWVzcGFjZScgIik7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTk9ERV9URVNUX05BTUU6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIiduYW1lJyAiKTsgYnJlYWs7CisJICAgIH0KKwkgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBOT0RFX1RZUEVfTk9ERToKKwkJICAgIGZwcmludGYob3V0cHV0LCAiJ25vZGUnICIpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5PREVfVFlQRV9DT01NRU5UOgorCQkgICAgZnByaW50ZihvdXRwdXQsICInY29tbWVudCcgIik7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTk9ERV9UWVBFX1RFWFQ6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIid0ZXh0JyAiKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOT0RFX1RZUEVfUEk6CisJCSAgICBmcHJpbnRmKG91dHB1dCwgIidQSScgIik7IGJyZWFrOworCSAgICB9CisJICAgIGlmIChwcmVmaXggIT0gTlVMTCkKKwkJZnByaW50ZihvdXRwdXQsICIlczoiLCBwcmVmaXgpOworCSAgICBpZiAobmFtZSAhPSBOVUxMKQorCQlmcHJpbnRmKG91dHB1dCwgIiVzIiwgKGNvbnN0IGNoYXIgKikgbmFtZSk7CisJICAgIGJyZWFrOworCisgICAgICAgIH0KKwljYXNlIFhQQVRIX09QX1ZBTFVFOiB7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iamVjdCA9ICh4bWxYUGF0aE9iamVjdFB0cikgb3AtPnZhbHVlNDsKKworCSAgICBmcHJpbnRmKG91dHB1dCwgIkVMRU0gIik7CisJICAgIHhtbFhQYXRoRGVidWdEdW1wT2JqZWN0KG91dHB1dCwgb2JqZWN0LCAwKTsKKwkgICAgZ290byBmaW5pc2g7CisJfQorCWNhc2UgWFBBVEhfT1BfVkFSSUFCTEU6IHsKKwkgICAgY29uc3QgeG1sQ2hhciAqcHJlZml4ID0gb3AtPnZhbHVlNTsKKwkgICAgY29uc3QgeG1sQ2hhciAqbmFtZSA9IG9wLT52YWx1ZTQ7CisKKwkgICAgaWYgKHByZWZpeCAhPSBOVUxMKQorCQlmcHJpbnRmKG91dHB1dCwgIlZBUklBQkxFICVzOiVzIiwgcHJlZml4LCBuYW1lKTsKKwkgICAgZWxzZQorCQlmcHJpbnRmKG91dHB1dCwgIlZBUklBQkxFICVzIiwgbmFtZSk7CisJICAgIGJyZWFrOworCX0KKwljYXNlIFhQQVRIX09QX0ZVTkNUSU9OOiB7CisJICAgIGludCBuYmFyZ3MgPSBvcC0+dmFsdWU7CisJICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCA9IG9wLT52YWx1ZTU7CisJICAgIGNvbnN0IHhtbENoYXIgKm5hbWUgPSBvcC0+dmFsdWU0OworCisJICAgIGlmIChwcmVmaXggIT0gTlVMTCkKKwkJZnByaW50ZihvdXRwdXQsICJGVU5DVElPTiAlczolcyglZCBhcmdzKSIsCisJCQlwcmVmaXgsIG5hbWUsIG5iYXJncyk7CisJICAgIGVsc2UKKwkJZnByaW50ZihvdXRwdXQsICJGVU5DVElPTiAlcyglZCBhcmdzKSIsIG5hbWUsIG5iYXJncyk7CisJICAgIGJyZWFrOworCX0KKyAgICAgICAgY2FzZSBYUEFUSF9PUF9BUkc6IGZwcmludGYob3V0cHV0LCAiQVJHIik7IGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX09QX1BSRURJQ0FURTogZnByaW50ZihvdXRwdXQsICJQUkVESUNBVEUiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfRklMVEVSOiBmcHJpbnRmKG91dHB1dCwgIkZJTFRFUiIpOyBicmVhazsKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisgICAgICAgIGNhc2UgWFBBVEhfT1BfUkFOR0VUTzogZnByaW50ZihvdXRwdXQsICJSQU5HRVRPIik7IGJyZWFrOworI2VuZGlmCisJZGVmYXVsdDoKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICJVTktOT1dOICVkXG4iLCBvcC0+b3ApOyByZXR1cm47CisgICAgfQorICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKK2ZpbmlzaDoKKyAgICBpZiAob3AtPmNoMSA+PSAwKQorCXhtbFhQYXRoRGVidWdEdW1wU3RlcE9wKG91dHB1dCwgY29tcCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdLCBkZXB0aCArIDEpOworICAgIGlmIChvcC0+Y2gyID49IDApCisJeG1sWFBhdGhEZWJ1Z0R1bXBTdGVwT3Aob3V0cHV0LCBjb21wLCAmY29tcC0+c3RlcHNbb3AtPmNoMl0sIGRlcHRoICsgMSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhEZWJ1Z0R1bXBDb21wRXhwcjoKKyAqIEBvdXRwdXQ6ICB0aGUgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAY29tcDogIHRoZSBwcmVjb21waWxlZCBYUGF0aCBleHByZXNzaW9uCisgKiBAZGVwdGg6ICB0aGUgaW5kZW50YXRpb24gbGV2ZWwuCisgKgorICogRHVtcHMgdGhlIHRyZWUgb2YgdGhlIGNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24uCisgKi8KK3ZvaWQKK3htbFhQYXRoRGVidWdEdW1wQ29tcEV4cHIoRklMRSAqb3V0cHV0LCB4bWxYUGF0aENvbXBFeHByUHRyIGNvbXAsCisJICAgICAgICAgICAgICAgICAgaW50IGRlcHRoKSB7CisgICAgaW50IGk7CisgICAgY2hhciBzaGlmdFsxMDBdOworCisgICAgaWYgKChvdXRwdXQgPT0gTlVMTCkgfHwgKGNvbXAgPT0gTlVMTCkpIHJldHVybjsKKworICAgIGZvciAoaSA9IDA7KChpIDwgZGVwdGgpICYmIChpIDwgMjUpKTtpKyspCisgICAgICAgIHNoaWZ0WzIgKiBpXSA9IHNoaWZ0WzIgKiBpICsgMV0gPSAnICc7CisgICAgc2hpZnRbMiAqIGldID0gc2hpZnRbMiAqIGkgKyAxXSA9IDA7CisKKyAgICBmcHJpbnRmKG91dHB1dCwgIiVzIiwgc2hpZnQpOworCisgICAgZnByaW50ZihvdXRwdXQsICJDb21waWxlZCBFeHByZXNzaW9uIDogJWQgZWxlbWVudHNcbiIsCisJICAgIGNvbXAtPm5iU3RlcCk7CisgICAgaSA9IGNvbXAtPmxhc3Q7CisgICAgeG1sWFBhdGhEZWJ1Z0R1bXBTdGVwT3Aob3V0cHV0LCBjb21wLCAmY29tcC0+c3RlcHNbaV0sIGRlcHRoICsgMSk7Cit9CisKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKworLyoKKyogWFBhdGggb2JqZWN0IHVzYWdlIHJlbGF0ZWQgZGVidWdnaW5nIHZhcmlhYmxlcy4KKyovCitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpDb3VudGVyVW5kZWZpbmVkID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJOb2Rlc2V0ID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJCb29sID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJOdW1iZXIgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqQ291bnRlclN0cmluZyA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpDb3VudGVyUG9pbnQgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqQ291bnRlclJhbmdlID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJMb2NzZXQgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqQ291bnRlclVzZXJzID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJYU0xUVHJlZSA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpDb3VudGVyQWxsID0gMDsKKworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqVG90YWxVbmRlZmluZWQgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqVG90YWxOb2Rlc2V0ID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09ialRvdGFsQm9vbCA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpUb3RhbE51bWJlciA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpUb3RhbFN0cmluZyA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpUb3RhbFBvaW50ID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09ialRvdGFsUmFuZ2UgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqVG90YWxMb2NzZXQgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqVG90YWxVc2VycyA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpUb3RhbFhTTFRUcmVlID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09ialRvdGFsQWxsID0gMDsKKworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqTWF4VW5kZWZpbmVkID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iak1heE5vZGVzZXQgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqTWF4Qm9vbCA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpNYXhOdW1iZXIgPSAwOworc3RhdGljIGludCB4bWxYUGF0aERlYnVnT2JqTWF4U3RyaW5nID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iak1heFBvaW50ID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iak1heFJhbmdlID0gMDsKK3N0YXRpYyBpbnQgeG1sWFBhdGhEZWJ1Z09iak1heExvY3NldCA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpNYXhVc2VycyA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpNYXhYU0xUVHJlZSA9IDA7CitzdGF0aWMgaW50IHhtbFhQYXRoRGVidWdPYmpNYXhBbGwgPSAwOworCisvKiBSRVZJU0lUIFRPRE86IE1ha2UgdGhpcyBzdGF0aWMgd2hlbiBjb21taXR0aW5nICovCitzdGF0aWMgdm9pZAoreG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVzZXQoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQpCit7CisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCWlmIChjdHh0LT5jYWNoZSAhPSBOVUxMKSB7CisJICAgIHhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlID0KKwkJKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZTsKKworCSAgICBjYWNoZS0+ZGJnQ2FjaGVkQWxsID0gMDsKKwkgICAgY2FjaGUtPmRiZ0NhY2hlZE5vZGVzZXQgPSAwOworCSAgICBjYWNoZS0+ZGJnQ2FjaGVkU3RyaW5nID0gMDsKKwkgICAgY2FjaGUtPmRiZ0NhY2hlZEJvb2wgPSAwOworCSAgICBjYWNoZS0+ZGJnQ2FjaGVkTnVtYmVyID0gMDsKKwkgICAgY2FjaGUtPmRiZ0NhY2hlZFBvaW50ID0gMDsKKwkgICAgY2FjaGUtPmRiZ0NhY2hlZFJhbmdlID0gMDsKKwkgICAgY2FjaGUtPmRiZ0NhY2hlZExvY3NldCA9IDA7CisJICAgIGNhY2hlLT5kYmdDYWNoZWRVc2VycyA9IDA7CisJICAgIGNhY2hlLT5kYmdDYWNoZWRYU0xUVHJlZSA9IDA7CisJICAgIGNhY2hlLT5kYmdDYWNoZWRVbmRlZmluZWQgPSAwOworCisJICAgIGNhY2hlLT5kYmdSZXVzZWRBbGwgPSAwOworCSAgICBjYWNoZS0+ZGJnUmV1c2VkTm9kZXNldCA9IDA7CisJICAgIGNhY2hlLT5kYmdSZXVzZWRTdHJpbmcgPSAwOworCSAgICBjYWNoZS0+ZGJnUmV1c2VkQm9vbCA9IDA7CisJICAgIGNhY2hlLT5kYmdSZXVzZWROdW1iZXIgPSAwOworCSAgICBjYWNoZS0+ZGJnUmV1c2VkUG9pbnQgPSAwOworCSAgICBjYWNoZS0+ZGJnUmV1c2VkUmFuZ2UgPSAwOworCSAgICBjYWNoZS0+ZGJnUmV1c2VkTG9jc2V0ID0gMDsKKwkgICAgY2FjaGUtPmRiZ1JldXNlZFVzZXJzID0gMDsKKwkgICAgY2FjaGUtPmRiZ1JldXNlZFhTTFRUcmVlID0gMDsKKwkgICAgY2FjaGUtPmRiZ1JldXNlZFVuZGVmaW5lZCA9IDA7CisJfQorICAgIH0KKworICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyVW5kZWZpbmVkID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlck5vZGVzZXQgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyQm9vbCA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJOdW1iZXIgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyU3RyaW5nID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlclBvaW50ID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlclJhbmdlID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlckxvY3NldCA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJVc2VycyA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJYU0xUVHJlZSA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJBbGwgPSAwOworCisgICAgeG1sWFBhdGhEZWJ1Z09ialRvdGFsVW5kZWZpbmVkID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqVG90YWxOb2Rlc2V0ID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqVG90YWxCb29sID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqVG90YWxOdW1iZXIgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpUb3RhbFN0cmluZyA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09ialRvdGFsUG9pbnQgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpUb3RhbFJhbmdlID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqVG90YWxMb2NzZXQgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpUb3RhbFVzZXJzID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqVG90YWxYU0xUVHJlZSA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09ialRvdGFsQWxsID0gMDsKKworICAgIHhtbFhQYXRoRGVidWdPYmpNYXhVbmRlZmluZWQgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpNYXhOb2Rlc2V0ID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqTWF4Qm9vbCA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iak1heE51bWJlciA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iak1heFN0cmluZyA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iak1heFBvaW50ID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqTWF4UmFuZ2UgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpNYXhMb2NzZXQgPSAwOworICAgIHhtbFhQYXRoRGVidWdPYmpNYXhVc2VycyA9IDA7CisgICAgeG1sWFBhdGhEZWJ1Z09iak1heFhTTFRUcmVlID0gMDsKKyAgICB4bWxYUGF0aERlYnVnT2JqTWF4QWxsID0gMDsKKworfQorCitzdGF0aWMgdm9pZAoreG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCQkJICAgICAgeG1sWFBhdGhPYmplY3RUeXBlIG9ialR5cGUpCit7CisgICAgaW50IGlzQ2FjaGVkID0gMDsKKworICAgIGlmIChjdHh0ICE9IE5VTEwpIHsKKwlpZiAoY3R4dC0+Y2FjaGUgIT0gTlVMTCkgeworCSAgICB4bWxYUGF0aENvbnRleHRDYWNoZVB0ciBjYWNoZSA9CisJCSh4bWxYUGF0aENvbnRleHRDYWNoZVB0cikgY3R4dC0+Y2FjaGU7CisKKwkgICAgaXNDYWNoZWQgPSAxOworCisJICAgIGNhY2hlLT5kYmdSZXVzZWRBbGwrKzsKKwkgICAgc3dpdGNoIChvYmpUeXBlKSB7CisJCWNhc2UgWFBBVEhfVU5ERUZJTkVEOgorCQkgICAgY2FjaGUtPmRiZ1JldXNlZFVuZGVmaW5lZCsrOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfTk9ERVNFVDoKKwkJICAgIGNhY2hlLT5kYmdSZXVzZWROb2Rlc2V0Kys7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9CT09MRUFOOgorCQkgICAgY2FjaGUtPmRiZ1JldXNlZEJvb2wrKzsKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX05VTUJFUjoKKwkJICAgIGNhY2hlLT5kYmdSZXVzZWROdW1iZXIrKzsKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX1NUUklORzoKKwkJICAgIGNhY2hlLT5kYmdSZXVzZWRTdHJpbmcrKzsKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX1BPSU5UOgorCQkgICAgY2FjaGUtPmRiZ1JldXNlZFBvaW50Kys7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9SQU5HRToKKwkJICAgIGNhY2hlLT5kYmdSZXVzZWRSYW5nZSsrOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJCSAgICBjYWNoZS0+ZGJnUmV1c2VkTG9jc2V0Kys7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9VU0VSUzoKKwkJICAgIGNhY2hlLT5kYmdSZXVzZWRVc2VycysrOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCQkgICAgY2FjaGUtPmRiZ1JldXNlZFhTTFRUcmVlKys7CisJCSAgICBicmVhazsKKwkJZGVmYXVsdDoKKwkJICAgIGJyZWFrOworCSAgICB9CisJfQorICAgIH0KKworICAgIHN3aXRjaCAob2JqVHlwZSkgeworCWNhc2UgWFBBVEhfVU5ERUZJTkVEOgorCSAgICBpZiAoISBpc0NhY2hlZCkKKwkJeG1sWFBhdGhEZWJ1Z09ialRvdGFsVW5kZWZpbmVkKys7CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyVW5kZWZpbmVkKys7CisJICAgIGlmICh4bWxYUGF0aERlYnVnT2JqQ291bnRlclVuZGVmaW5lZCA+CisJCXhtbFhQYXRoRGVidWdPYmpNYXhVbmRlZmluZWQpCisJCXhtbFhQYXRoRGVidWdPYmpNYXhVbmRlZmluZWQgPQorCQkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJVbmRlZmluZWQ7CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfTk9ERVNFVDoKKwkgICAgaWYgKCEgaXNDYWNoZWQpCisJCXhtbFhQYXRoRGVidWdPYmpUb3RhbE5vZGVzZXQrKzsKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJOb2Rlc2V0Kys7CisJICAgIGlmICh4bWxYUGF0aERlYnVnT2JqQ291bnRlck5vZGVzZXQgPgorCQl4bWxYUGF0aERlYnVnT2JqTWF4Tm9kZXNldCkKKwkJeG1sWFBhdGhEZWJ1Z09iak1heE5vZGVzZXQgPQorCQkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJOb2Rlc2V0OworCSAgICBicmVhazsKKwljYXNlIFhQQVRIX0JPT0xFQU46CisJICAgIGlmICghIGlzQ2FjaGVkKQorCQl4bWxYUGF0aERlYnVnT2JqVG90YWxCb29sKys7CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyQm9vbCsrOworCSAgICBpZiAoeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJCb29sID4KKwkJeG1sWFBhdGhEZWJ1Z09iak1heEJvb2wpCisJCXhtbFhQYXRoRGVidWdPYmpNYXhCb29sID0KKwkJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyQm9vbDsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9OVU1CRVI6CisJICAgIGlmICghIGlzQ2FjaGVkKQorCQl4bWxYUGF0aERlYnVnT2JqVG90YWxOdW1iZXIrKzsKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJOdW1iZXIrKzsKKwkgICAgaWYgKHhtbFhQYXRoRGVidWdPYmpDb3VudGVyTnVtYmVyID4KKwkJeG1sWFBhdGhEZWJ1Z09iak1heE51bWJlcikKKwkJeG1sWFBhdGhEZWJ1Z09iak1heE51bWJlciA9CisJCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlck51bWJlcjsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9TVFJJTkc6CisJICAgIGlmICghIGlzQ2FjaGVkKQorCQl4bWxYUGF0aERlYnVnT2JqVG90YWxTdHJpbmcrKzsKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJTdHJpbmcrKzsKKwkgICAgaWYgKHhtbFhQYXRoRGVidWdPYmpDb3VudGVyU3RyaW5nID4KKwkJeG1sWFBhdGhEZWJ1Z09iak1heFN0cmluZykKKwkJeG1sWFBhdGhEZWJ1Z09iak1heFN0cmluZyA9CisJCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlclN0cmluZzsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgaWYgKCEgaXNDYWNoZWQpCisJCXhtbFhQYXRoRGVidWdPYmpUb3RhbFBvaW50Kys7CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyUG9pbnQrKzsKKwkgICAgaWYgKHhtbFhQYXRoRGVidWdPYmpDb3VudGVyUG9pbnQgPgorCQl4bWxYUGF0aERlYnVnT2JqTWF4UG9pbnQpCisJCXhtbFhQYXRoRGVidWdPYmpNYXhQb2ludCA9CisJCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlclBvaW50OworCSAgICBicmVhazsKKwljYXNlIFhQQVRIX1JBTkdFOgorCSAgICBpZiAoISBpc0NhY2hlZCkKKwkJeG1sWFBhdGhEZWJ1Z09ialRvdGFsUmFuZ2UrKzsKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJSYW5nZSsrOworCSAgICBpZiAoeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJSYW5nZSA+CisJCXhtbFhQYXRoRGVidWdPYmpNYXhSYW5nZSkKKwkJeG1sWFBhdGhEZWJ1Z09iak1heFJhbmdlID0KKwkJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyUmFuZ2U7CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJICAgIGlmICghIGlzQ2FjaGVkKQorCQl4bWxYUGF0aERlYnVnT2JqVG90YWxMb2NzZXQrKzsKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJMb2NzZXQrKzsKKwkgICAgaWYgKHhtbFhQYXRoRGVidWdPYmpDb3VudGVyTG9jc2V0ID4KKwkJeG1sWFBhdGhEZWJ1Z09iak1heExvY3NldCkKKwkJeG1sWFBhdGhEZWJ1Z09iak1heExvY3NldCA9CisJCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlckxvY3NldDsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9VU0VSUzoKKwkgICAgaWYgKCEgaXNDYWNoZWQpCisJCXhtbFhQYXRoRGVidWdPYmpUb3RhbFVzZXJzKys7CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyVXNlcnMrKzsKKwkgICAgaWYgKHhtbFhQYXRoRGVidWdPYmpDb3VudGVyVXNlcnMgPgorCQl4bWxYUGF0aERlYnVnT2JqTWF4VXNlcnMpCisJCXhtbFhQYXRoRGVidWdPYmpNYXhVc2VycyA9CisJCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlclVzZXJzOworCSAgICBicmVhazsKKwljYXNlIFhQQVRIX1hTTFRfVFJFRToKKwkgICAgaWYgKCEgaXNDYWNoZWQpCisJCXhtbFhQYXRoRGVidWdPYmpUb3RhbFhTTFRUcmVlKys7CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyWFNMVFRyZWUrKzsKKwkgICAgaWYgKHhtbFhQYXRoRGVidWdPYmpDb3VudGVyWFNMVFRyZWUgPgorCQl4bWxYUGF0aERlYnVnT2JqTWF4WFNMVFRyZWUpCisJCXhtbFhQYXRoRGVidWdPYmpNYXhYU0xUVHJlZSA9CisJCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlclhTTFRUcmVlOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICB9CisgICAgaWYgKCEgaXNDYWNoZWQpCisJeG1sWFBhdGhEZWJ1Z09ialRvdGFsQWxsKys7CisgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJBbGwrKzsKKyAgICBpZiAoeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJBbGwgPgorCXhtbFhQYXRoRGVidWdPYmpNYXhBbGwpCisJeG1sWFBhdGhEZWJ1Z09iak1heEFsbCA9CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyQWxsOworfQorCitzdGF0aWMgdm9pZAoreG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVsZWFzZWQoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsCisJCQkgICAgICB4bWxYUGF0aE9iamVjdFR5cGUgb2JqVHlwZSkKK3sKKyAgICBpbnQgaXNDYWNoZWQgPSAwOworCisgICAgaWYgKGN0eHQgIT0gTlVMTCkgeworCWlmIChjdHh0LT5jYWNoZSAhPSBOVUxMKSB7CisJICAgIHhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlID0KKwkJKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZTsKKworCSAgICBpc0NhY2hlZCA9IDE7CisKKwkgICAgY2FjaGUtPmRiZ0NhY2hlZEFsbCsrOworCSAgICBzd2l0Y2ggKG9ialR5cGUpIHsKKwkJY2FzZSBYUEFUSF9VTkRFRklORUQ6CisJCSAgICBjYWNoZS0+ZGJnQ2FjaGVkVW5kZWZpbmVkKys7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9OT0RFU0VUOgorCQkgICAgY2FjaGUtPmRiZ0NhY2hlZE5vZGVzZXQrKzsKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX0JPT0xFQU46CisJCSAgICBjYWNoZS0+ZGJnQ2FjaGVkQm9vbCsrOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfTlVNQkVSOgorCQkgICAgY2FjaGUtPmRiZ0NhY2hlZE51bWJlcisrOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfU1RSSU5HOgorCQkgICAgY2FjaGUtPmRiZ0NhY2hlZFN0cmluZysrOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfUE9JTlQ6CisJCSAgICBjYWNoZS0+ZGJnQ2FjaGVkUG9pbnQrKzsKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX1JBTkdFOgorCQkgICAgY2FjaGUtPmRiZ0NhY2hlZFJhbmdlKys7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKwkJICAgIGNhY2hlLT5kYmdDYWNoZWRMb2NzZXQrKzsKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX1VTRVJTOgorCQkgICAgY2FjaGUtPmRiZ0NhY2hlZFVzZXJzKys7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJCSAgICBjYWNoZS0+ZGJnQ2FjaGVkWFNMVFRyZWUrKzsKKwkJICAgIGJyZWFrOworCQlkZWZhdWx0OgorCQkgICAgYnJlYWs7CisJICAgIH0KKworCX0KKyAgICB9CisgICAgc3dpdGNoIChvYmpUeXBlKSB7CisJY2FzZSBYUEFUSF9VTkRFRklORUQ6CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyVW5kZWZpbmVkLS07CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfTk9ERVNFVDoKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJOb2Rlc2V0LS07CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfQk9PTEVBTjoKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJCb29sLS07CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfTlVNQkVSOgorCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlck51bWJlci0tOworCSAgICBicmVhazsKKwljYXNlIFhQQVRIX1NUUklORzoKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJTdHJpbmctLTsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJQb2ludC0tOworCSAgICBicmVhazsKKwljYXNlIFhQQVRIX1JBTkdFOgorCSAgICB4bWxYUGF0aERlYnVnT2JqQ291bnRlclJhbmdlLS07CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyTG9jc2V0LS07CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfVVNFUlM6CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyVXNlcnMtLTsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyWFNMVFRyZWUtLTsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHhtbFhQYXRoRGVidWdPYmpDb3VudGVyQWxsLS07Cit9CisKKy8qIFJFVklTSVQgVE9ETzogTWFrZSB0aGlzIHN0YXRpYyB3aGVuIGNvbW1pdHRpbmcgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aERlYnVnT2JqVXNhZ2VEaXNwbGF5KHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KQoreworICAgIGludCByZXFBbGwsIHJlcU5vZGVzZXQsIHJlcVN0cmluZywgcmVxQm9vbCwgcmVxTnVtYmVyLAorCXJlcVhTTFRUcmVlLCByZXFVbmRlZmluZWQ7CisgICAgaW50IGNhQWxsID0gMCwgY2FOb2Rlc2V0ID0gMCwgY2FTdHJpbmcgPSAwLCBjYUJvb2wgPSAwLAorCWNhTnVtYmVyID0gMCwgY2FYU0xUVHJlZSA9IDAsIGNhVW5kZWZpbmVkID0gMDsKKyAgICBpbnQgcmVBbGwgPSAwLCByZU5vZGVzZXQgPSAwLCByZVN0cmluZyA9IDAsIHJlQm9vbCA9IDAsCisJcmVOdW1iZXIgPSAwLCByZVhTTFRUcmVlID0gMCwgcmVVbmRlZmluZWQgPSAwOworICAgIGludCBsZWZ0T2JqcyA9IHhtbFhQYXRoRGVidWdPYmpDb3VudGVyQWxsOworCisgICAgcmVxQWxsID0geG1sWFBhdGhEZWJ1Z09ialRvdGFsQWxsOworICAgIHJlcU5vZGVzZXQgPSB4bWxYUGF0aERlYnVnT2JqVG90YWxOb2Rlc2V0OworICAgIHJlcVN0cmluZyA9IHhtbFhQYXRoRGVidWdPYmpUb3RhbFN0cmluZzsKKyAgICByZXFCb29sID0geG1sWFBhdGhEZWJ1Z09ialRvdGFsQm9vbDsKKyAgICByZXFOdW1iZXIgPSB4bWxYUGF0aERlYnVnT2JqVG90YWxOdW1iZXI7CisgICAgcmVxWFNMVFRyZWUgPSB4bWxYUGF0aERlYnVnT2JqVG90YWxYU0xUVHJlZTsKKyAgICByZXFVbmRlZmluZWQgPSB4bWxYUGF0aERlYnVnT2JqVG90YWxVbmRlZmluZWQ7CisKKyAgICBwcmludGYoIiMgWFBhdGggb2JqZWN0IHVzYWdlOlxuIik7CisKKyAgICBpZiAoY3R4dCAhPSBOVUxMKSB7CisJaWYgKGN0eHQtPmNhY2hlICE9IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhDb250ZXh0Q2FjaGVQdHIgY2FjaGUgPQorCQkoeG1sWFBhdGhDb250ZXh0Q2FjaGVQdHIpIGN0eHQtPmNhY2hlOworCisJICAgIHJlQWxsID0gY2FjaGUtPmRiZ1JldXNlZEFsbDsKKwkgICAgcmVxQWxsICs9IHJlQWxsOworCSAgICByZU5vZGVzZXQgPSBjYWNoZS0+ZGJnUmV1c2VkTm9kZXNldDsKKwkgICAgcmVxTm9kZXNldCArPSByZU5vZGVzZXQ7CisJICAgIHJlU3RyaW5nID0gY2FjaGUtPmRiZ1JldXNlZFN0cmluZzsKKwkgICAgcmVxU3RyaW5nICs9IHJlU3RyaW5nOworCSAgICByZUJvb2wgPSBjYWNoZS0+ZGJnUmV1c2VkQm9vbDsKKwkgICAgcmVxQm9vbCArPSByZUJvb2w7CisJICAgIHJlTnVtYmVyID0gY2FjaGUtPmRiZ1JldXNlZE51bWJlcjsKKwkgICAgcmVxTnVtYmVyICs9IHJlTnVtYmVyOworCSAgICByZVhTTFRUcmVlID0gY2FjaGUtPmRiZ1JldXNlZFhTTFRUcmVlOworCSAgICByZXFYU0xUVHJlZSArPSByZVhTTFRUcmVlOworCSAgICByZVVuZGVmaW5lZCA9IGNhY2hlLT5kYmdSZXVzZWRVbmRlZmluZWQ7CisJICAgIHJlcVVuZGVmaW5lZCArPSByZVVuZGVmaW5lZDsKKworCSAgICBjYUFsbCA9IGNhY2hlLT5kYmdDYWNoZWRBbGw7CisJICAgIGNhQm9vbCA9IGNhY2hlLT5kYmdDYWNoZWRCb29sOworCSAgICBjYU5vZGVzZXQgPSBjYWNoZS0+ZGJnQ2FjaGVkTm9kZXNldDsKKwkgICAgY2FTdHJpbmcgPSBjYWNoZS0+ZGJnQ2FjaGVkU3RyaW5nOworCSAgICBjYU51bWJlciA9IGNhY2hlLT5kYmdDYWNoZWROdW1iZXI7CisJICAgIGNhWFNMVFRyZWUgPSBjYWNoZS0+ZGJnQ2FjaGVkWFNMVFRyZWU7CisJICAgIGNhVW5kZWZpbmVkID0gY2FjaGUtPmRiZ0NhY2hlZFVuZGVmaW5lZDsKKworCSAgICBpZiAoY2FjaGUtPm5vZGVzZXRPYmpzKQorCQlsZWZ0T2JqcyAtPSBjYWNoZS0+bm9kZXNldE9ianMtPm51bWJlcjsKKwkgICAgaWYgKGNhY2hlLT5zdHJpbmdPYmpzKQorCQlsZWZ0T2JqcyAtPSBjYWNoZS0+c3RyaW5nT2Jqcy0+bnVtYmVyOworCSAgICBpZiAoY2FjaGUtPmJvb2xlYW5PYmpzKQorCQlsZWZ0T2JqcyAtPSBjYWNoZS0+Ym9vbGVhbk9ianMtPm51bWJlcjsKKwkgICAgaWYgKGNhY2hlLT5udW1iZXJPYmpzKQorCQlsZWZ0T2JqcyAtPSBjYWNoZS0+bnVtYmVyT2Jqcy0+bnVtYmVyOworCSAgICBpZiAoY2FjaGUtPm1pc2NPYmpzKQorCQlsZWZ0T2JqcyAtPSBjYWNoZS0+bWlzY09ianMtPm51bWJlcjsKKwl9CisgICAgfQorCisgICAgcHJpbnRmKCIjIGFsbFxuIik7CisgICAgcHJpbnRmKCIjICAgdG90YWwgIDogJWRcbiIsIHJlcUFsbCk7CisgICAgcHJpbnRmKCIjICAgbGVmdCAgOiAlZFxuIiwgbGVmdE9ianMpOworICAgIHByaW50ZigiIyAgIGNyZWF0ZWQ6ICVkXG4iLCB4bWxYUGF0aERlYnVnT2JqVG90YWxBbGwpOworICAgIHByaW50ZigiIyAgIHJldXNlZCA6ICVkXG4iLCByZUFsbCk7CisgICAgcHJpbnRmKCIjICAgbWF4ICAgIDogJWRcbiIsIHhtbFhQYXRoRGVidWdPYmpNYXhBbGwpOworCisgICAgcHJpbnRmKCIjIG5vZGUtc2V0c1xuIik7CisgICAgcHJpbnRmKCIjICAgdG90YWwgIDogJWRcbiIsIHJlcU5vZGVzZXQpOworICAgIHByaW50ZigiIyAgIGNyZWF0ZWQ6ICVkXG4iLCB4bWxYUGF0aERlYnVnT2JqVG90YWxOb2Rlc2V0KTsKKyAgICBwcmludGYoIiMgICByZXVzZWQgOiAlZFxuIiwgcmVOb2Rlc2V0KTsKKyAgICBwcmludGYoIiMgICBtYXggICAgOiAlZFxuIiwgeG1sWFBhdGhEZWJ1Z09iak1heE5vZGVzZXQpOworCisgICAgcHJpbnRmKCIjIHN0cmluZ3NcbiIpOworICAgIHByaW50ZigiIyAgIHRvdGFsICA6ICVkXG4iLCByZXFTdHJpbmcpOworICAgIHByaW50ZigiIyAgIGNyZWF0ZWQ6ICVkXG4iLCB4bWxYUGF0aERlYnVnT2JqVG90YWxTdHJpbmcpOworICAgIHByaW50ZigiIyAgIHJldXNlZCA6ICVkXG4iLCByZVN0cmluZyk7CisgICAgcHJpbnRmKCIjICAgbWF4ICAgIDogJWRcbiIsIHhtbFhQYXRoRGVidWdPYmpNYXhTdHJpbmcpOworCisgICAgcHJpbnRmKCIjIGJvb2xlYW5zXG4iKTsKKyAgICBwcmludGYoIiMgICB0b3RhbCAgOiAlZFxuIiwgcmVxQm9vbCk7CisgICAgcHJpbnRmKCIjICAgY3JlYXRlZDogJWRcbiIsIHhtbFhQYXRoRGVidWdPYmpUb3RhbEJvb2wpOworICAgIHByaW50ZigiIyAgIHJldXNlZCA6ICVkXG4iLCByZUJvb2wpOworICAgIHByaW50ZigiIyAgIG1heCAgICA6ICVkXG4iLCB4bWxYUGF0aERlYnVnT2JqTWF4Qm9vbCk7CisKKyAgICBwcmludGYoIiMgbnVtYmVyc1xuIik7CisgICAgcHJpbnRmKCIjICAgdG90YWwgIDogJWRcbiIsIHJlcU51bWJlcik7CisgICAgcHJpbnRmKCIjICAgY3JlYXRlZDogJWRcbiIsIHhtbFhQYXRoRGVidWdPYmpUb3RhbE51bWJlcik7CisgICAgcHJpbnRmKCIjICAgcmV1c2VkIDogJWRcbiIsIHJlTnVtYmVyKTsKKyAgICBwcmludGYoIiMgICBtYXggICAgOiAlZFxuIiwgeG1sWFBhdGhEZWJ1Z09iak1heE51bWJlcik7CisKKyAgICBwcmludGYoIiMgWFNMVCByZXN1bHQgdHJlZSBmcmFnbWVudHNcbiIpOworICAgIHByaW50ZigiIyAgIHRvdGFsICA6ICVkXG4iLCByZXFYU0xUVHJlZSk7CisgICAgcHJpbnRmKCIjICAgY3JlYXRlZDogJWRcbiIsIHhtbFhQYXRoRGVidWdPYmpUb3RhbFhTTFRUcmVlKTsKKyAgICBwcmludGYoIiMgICByZXVzZWQgOiAlZFxuIiwgcmVYU0xUVHJlZSk7CisgICAgcHJpbnRmKCIjICAgbWF4ICAgIDogJWRcbiIsIHhtbFhQYXRoRGVidWdPYmpNYXhYU0xUVHJlZSk7CisKKyAgICBwcmludGYoIiMgdW5kZWZpbmVkXG4iKTsKKyAgICBwcmludGYoIiMgICB0b3RhbCAgOiAlZFxuIiwgcmVxVW5kZWZpbmVkKTsKKyAgICBwcmludGYoIiMgICBjcmVhdGVkOiAlZFxuIiwgeG1sWFBhdGhEZWJ1Z09ialRvdGFsVW5kZWZpbmVkKTsKKyAgICBwcmludGYoIiMgICByZXVzZWQgOiAlZFxuIiwgcmVVbmRlZmluZWQpOworICAgIHByaW50ZigiIyAgIG1heCAgICA6ICVkXG4iLCB4bWxYUGF0aERlYnVnT2JqTWF4VW5kZWZpbmVkKTsKKworfQorCisjZW5kaWYgLyogWFBfREVCVUdfT0JKX1VTQUdFICovCisKKyNlbmRpZiAvKiBMSUJYTUxfREVCVUdfRU5BQkxFRCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJWFBhdGggb2JqZWN0IGNhY2hpbmcJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhQYXRoTmV3Q2FjaGU6CisgKgorICogQ3JlYXRlIGEgbmV3IG9iamVjdCBjYWNoZQorICoKKyAqIFJldHVybnMgdGhlIHhtbFhQYXRoQ2FjaGUganVzdCBhbGxvY2F0ZWQuCisgKi8KK3N0YXRpYyB4bWxYUGF0aENvbnRleHRDYWNoZVB0cgoreG1sWFBhdGhOZXdDYWNoZSh2b2lkKQoreworICAgIHhtbFhQYXRoQ29udGV4dENhY2hlUHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aENvbnRleHRDYWNoZVB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aENvbnRleHRDYWNoZSkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgb2JqZWN0IGNhY2hlXG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhDb250ZXh0Q2FjaGUpKTsKKyAgICByZXQtPm1heE5vZGVzZXQgPSAxMDA7CisgICAgcmV0LT5tYXhTdHJpbmcgPSAxMDA7CisgICAgcmV0LT5tYXhCb29sZWFuID0gMTAwOworICAgIHJldC0+bWF4TnVtYmVyID0gMTAwOworICAgIHJldC0+bWF4TWlzYyA9IDEwMDsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIHZvaWQKK3htbFhQYXRoQ2FjaGVGcmVlT2JqZWN0TGlzdCh4bWxQb2ludGVyTGlzdFB0ciBsaXN0KQoreworICAgIGludCBpOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iajsKKworICAgIGlmIChsaXN0ID09IE5VTEwpCisJcmV0dXJuOworCisgICAgZm9yIChpID0gMDsgaSA8IGxpc3QtPm51bWJlcjsgaSsrKSB7CisJb2JqID0gbGlzdC0+aXRlbXNbaV07CisJLyoKKwkqIE5vdGUgdGhhdCBpdCBpcyBhbHJlYWR5IGFzc3VyZWQgdGhhdCB3ZSBkb24ndCBuZWVkIHRvCisJKiBsb29rIG91dCBmb3IgbmFtZXNwYWNlIG5vZGVzIGluIHRoZSBub2RlLXNldC4KKwkqLworCWlmIChvYmotPm5vZGVzZXR2YWwgIT0gTlVMTCkgeworCSAgICBpZiAob2JqLT5ub2Rlc2V0dmFsLT5ub2RlVGFiICE9IE5VTEwpCisJCXhtbEZyZWUob2JqLT5ub2Rlc2V0dmFsLT5ub2RlVGFiKTsKKwkgICAgeG1sRnJlZShvYmotPm5vZGVzZXR2YWwpOworCX0KKwl4bWxGcmVlKG9iaik7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisJeG1sWFBhdGhEZWJ1Z09iakNvdW50ZXJBbGwtLTsKKyNlbmRpZgorICAgIH0KKyAgICB4bWxQb2ludGVyTGlzdEZyZWUobGlzdCk7Cit9CisKK3N0YXRpYyB2b2lkCit4bWxYUGF0aEZyZWVDYWNoZSh4bWxYUGF0aENvbnRleHRDYWNoZVB0ciBjYWNoZSkKK3sKKyAgICBpZiAoY2FjaGUgPT0gTlVMTCkKKwlyZXR1cm47CisgICAgaWYgKGNhY2hlLT5ub2Rlc2V0T2JqcykKKwl4bWxYUGF0aENhY2hlRnJlZU9iamVjdExpc3QoY2FjaGUtPm5vZGVzZXRPYmpzKTsKKyAgICBpZiAoY2FjaGUtPnN0cmluZ09ianMpCisJeG1sWFBhdGhDYWNoZUZyZWVPYmplY3RMaXN0KGNhY2hlLT5zdHJpbmdPYmpzKTsKKyAgICBpZiAoY2FjaGUtPmJvb2xlYW5PYmpzKQorCXhtbFhQYXRoQ2FjaGVGcmVlT2JqZWN0TGlzdChjYWNoZS0+Ym9vbGVhbk9ianMpOworICAgIGlmIChjYWNoZS0+bnVtYmVyT2JqcykKKwl4bWxYUGF0aENhY2hlRnJlZU9iamVjdExpc3QoY2FjaGUtPm51bWJlck9ianMpOworICAgIGlmIChjYWNoZS0+bWlzY09ianMpCisJeG1sWFBhdGhDYWNoZUZyZWVPYmplY3RMaXN0KGNhY2hlLT5taXNjT2Jqcyk7CisgICAgeG1sRnJlZShjYWNoZSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb250ZXh0U2V0Q2FjaGU6CisgKgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQGFjdGl2ZTogZW5hYmxlcy9kaXNhYmxlcyAoY3JlYXRlcy9mcmVlcykgdGhlIGNhY2hlCisgKiBAdmFsdWU6IGEgdmFsdWUgd2l0aCBzZW1hbnRpY3MgZGVwZW5kYW50IG9uIEBvcHRpb25zCisgKiBAb3B0aW9uczogb3B0aW9ucyAoY3VycmVudGx5IG9ubHkgdGhlIHZhbHVlIDAgaXMgdXNlZCkKKyAqCisgKiBDcmVhdGVzL2ZyZWVzIGFuIG9iamVjdCBjYWNoZSBvbiB0aGUgWFBhdGggY29udGV4dC4KKyAqIElmIGFjdGl2YXRlcyBYUGF0aCBvYmplY3RzICh4bWxYUGF0aE9iamVjdCkgd2lsbCBiZSBjYWNoZWQgaW50ZXJuYWxseQorICogdG8gYmUgcmV1c2VkLgorICogQG9wdGlvbnM6CisgKiAgIDA6IFRoaXMgd2lsbCBzZXQgdGhlIFhQYXRoIG9iamVjdCBjYWNoaW5nOgorICogICAgICBAdmFsdWU6CisgKiAgICAgICAgVGhpcyB3aWxsIHNldCB0aGUgbWF4aW11bSBudW1iZXIgb2YgWFBhdGggb2JqZWN0cworICogICAgICAgIHRvIGJlIGNhY2hlZCBwZXIgc2xvdAorICogICAgICAgIFRoZXJlIGFyZSA1IHNsb3RzIGZvcjogbm9kZS1zZXQsIHN0cmluZywgbnVtYmVyLCBib29sZWFuLCBhbmQKKyAqICAgICAgICBtaXNjIG9iamVjdHMuIFVzZSA8MCBmb3IgdGhlIGRlZmF1bHQgbnVtYmVyICgxMDApLgorICogICBPdGhlciB2YWx1ZXMgZm9yIEBvcHRpb25zIGhhdmUgY3VycmVudGx5IG5vIGVmZmVjdC4KKyAqCisgKiBSZXR1cm5zIDAgaWYgdGhlIHNldHRpbmcgc3VjY2VlZGVkLCBhbmQgLTEgb24gQVBJIG9yIGludGVybmFsIGVycm9ycy4KKyAqLworaW50Cit4bWxYUGF0aENvbnRleHRTZXRDYWNoZSh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwKKwkJCWludCBhY3RpdmUsCisJCQlpbnQgdmFsdWUsCisJCQlpbnQgb3B0aW9ucykKK3sKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKGFjdGl2ZSkgeworCXhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlOworCisJaWYgKGN0eHQtPmNhY2hlID09IE5VTEwpIHsKKwkgICAgY3R4dC0+Y2FjaGUgPSB4bWxYUGF0aE5ld0NhY2hlKCk7CisJICAgIGlmIChjdHh0LT5jYWNoZSA9PSBOVUxMKQorCQlyZXR1cm4oLTEpOworCX0KKwljYWNoZSA9ICh4bWxYUGF0aENvbnRleHRDYWNoZVB0cikgY3R4dC0+Y2FjaGU7CisJaWYgKG9wdGlvbnMgPT0gMCkgeworCSAgICBpZiAodmFsdWUgPCAwKQorCQl2YWx1ZSA9IDEwMDsKKwkgICAgY2FjaGUtPm1heE5vZGVzZXQgPSB2YWx1ZTsKKwkgICAgY2FjaGUtPm1heFN0cmluZyA9IHZhbHVlOworCSAgICBjYWNoZS0+bWF4TnVtYmVyID0gdmFsdWU7CisJICAgIGNhY2hlLT5tYXhCb29sZWFuID0gdmFsdWU7CisJICAgIGNhY2hlLT5tYXhNaXNjID0gdmFsdWU7CisJfQorICAgIH0gZWxzZSBpZiAoY3R4dC0+Y2FjaGUgIT0gTlVMTCkgeworCXhtbFhQYXRoRnJlZUNhY2hlKCh4bWxYUGF0aENvbnRleHRDYWNoZVB0cikgY3R4dC0+Y2FjaGUpOworCWN0eHQtPmNhY2hlID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVXcmFwTm9kZVNldDoKKyAqIEBjdHh0OiB0aGUgWFBhdGggY29udGV4dAorICogQHZhbDogIHRoZSBOb2RlUHRyIHZhbHVlCisgKgorICogVGhpcyBpcyB0aGUgY2FjaGVkIHZlcnNpb24gb2YgeG1sWFBhdGhXcmFwTm9kZVNldCgpLgorICogV3JhcCB0aGUgTm9kZXNldCBAdmFsIGluIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyCisgKgorICogUmV0dXJucyB0aGUgY3JlYXRlZCBvciByZXVzZWQgb2JqZWN0LgorICovCitzdGF0aWMgeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQYXRoQ2FjaGVXcmFwTm9kZVNldCh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgeG1sTm9kZVNldFB0ciB2YWwpCit7CisgICAgaWYgKChjdHh0ICE9IE5VTEwpICYmIChjdHh0LT5jYWNoZSAhPSBOVUxMKSkgeworCXhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlID0KKwkgICAgKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZTsKKworCWlmICgoY2FjaGUtPm1pc2NPYmpzICE9IE5VTEwpICYmCisJICAgIChjYWNoZS0+bWlzY09ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworCSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpCisJCWNhY2hlLT5taXNjT2Jqcy0+aXRlbXNbLS1jYWNoZS0+bWlzY09ianMtPm51bWJlcl07CisJICAgIHJldC0+dHlwZSA9IFhQQVRIX05PREVTRVQ7CisJICAgIHJldC0+bm9kZXNldHZhbCA9IHZhbDsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwkgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKGN0eHQsIFhQQVRIX05PREVTRVQpOworI2VuZGlmCisJICAgIHJldHVybihyZXQpOworCX0KKyAgICB9CisKKyAgICByZXR1cm4oeG1sWFBhdGhXcmFwTm9kZVNldCh2YWwpKTsKKworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVXcmFwU3RyaW5nOgorICogQGN0eHQ6IHRoZSBYUGF0aCBjb250ZXh0CisgKiBAdmFsOiAgdGhlIHhtbENoYXIgKiB2YWx1ZQorICoKKyAqIFRoaXMgaXMgdGhlIGNhY2hlZCB2ZXJzaW9uIG9mIHhtbFhQYXRoV3JhcFN0cmluZygpLgorICogV3JhcHMgdGhlIEB2YWwgc3RyaW5nIGludG8gYW4gWFBhdGggb2JqZWN0LgorICoKKyAqIFJldHVybnMgdGhlIGNyZWF0ZWQgb3IgcmV1c2VkIG9iamVjdC4KKyAqLworc3RhdGljIHhtbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aENhY2hlV3JhcFN0cmluZyh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgeG1sQ2hhciAqdmFsKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+Y2FjaGUgIT0gTlVMTCkpIHsKKwl4bWxYUGF0aENvbnRleHRDYWNoZVB0ciBjYWNoZSA9ICh4bWxYUGF0aENvbnRleHRDYWNoZVB0cikgY3R4dC0+Y2FjaGU7CisKKwlpZiAoKGNhY2hlLT5zdHJpbmdPYmpzICE9IE5VTEwpICYmCisJICAgIChjYWNoZS0+c3RyaW5nT2Jqcy0+bnVtYmVyICE9IDApKQorCXsKKworCSAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKwkgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKQorCQljYWNoZS0+c3RyaW5nT2Jqcy0+aXRlbXNbLS1jYWNoZS0+c3RyaW5nT2Jqcy0+bnVtYmVyXTsKKwkgICAgcmV0LT50eXBlID0gWFBBVEhfU1RSSU5HOworCSAgICByZXQtPnN0cmluZ3ZhbCA9IHZhbDsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwkgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKGN0eHQsIFhQQVRIX1NUUklORyk7CisjZW5kaWYKKwkgICAgcmV0dXJuKHJldCk7CisJfSBlbHNlIGlmICgoY2FjaGUtPm1pc2NPYmpzICE9IE5VTEwpICYmCisJICAgIChjYWNoZS0+bWlzY09ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKwkgICAgLyoKKwkgICAgKiBGYWxsYmFjayB0byBtaXNjLWNhY2hlLgorCSAgICAqLworCSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpCisJCWNhY2hlLT5taXNjT2Jqcy0+aXRlbXNbLS1jYWNoZS0+bWlzY09ianMtPm51bWJlcl07CisKKwkgICAgcmV0LT50eXBlID0gWFBBVEhfU1RSSU5HOworCSAgICByZXQtPnN0cmluZ3ZhbCA9IHZhbDsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwkgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKGN0eHQsIFhQQVRIX1NUUklORyk7CisjZW5kaWYKKwkgICAgcmV0dXJuKHJldCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oeG1sWFBhdGhXcmFwU3RyaW5nKHZhbCkpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVOZXdOb2RlU2V0OgorICogQGN0eHQ6IHRoZSBYUGF0aCBjb250ZXh0CisgKiBAdmFsOiAgdGhlIE5vZGVQdHIgdmFsdWUKKyAqCisgKiBUaGlzIGlzIHRoZSBjYWNoZWQgdmVyc2lvbiBvZiB4bWxYUGF0aE5ld05vZGVTZXQoKS4KKyAqIEFjcXVpcmUgYW4geG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBOb2RlU2V0IGFuZCBpbml0aWFsaXplCisgKiBpdCB3aXRoIHRoZSBzaW5nbGUgTm9kZSBAdmFsCisgKgorICogUmV0dXJucyB0aGUgY3JlYXRlZCBvciByZXVzZWQgb2JqZWN0LgorICovCitzdGF0aWMgeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQYXRoQ2FjaGVOZXdOb2RlU2V0KHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIHZhbCkKK3sKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmNhY2hlKSkgeworCXhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlID0gKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZTsKKworCWlmICgoY2FjaGUtPm5vZGVzZXRPYmpzICE9IE5VTEwpICYmCisJICAgIChjYWNoZS0+bm9kZXNldE9ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKwkgICAgLyoKKwkgICAgKiBVc2UgdGhlIG5vZHNldC1jYWNoZS4KKwkgICAgKi8KKwkgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKQorCQljYWNoZS0+bm9kZXNldE9ianMtPml0ZW1zWy0tY2FjaGUtPm5vZGVzZXRPYmpzLT5udW1iZXJdOworCSAgICByZXQtPnR5cGUgPSBYUEFUSF9OT0RFU0VUOworCSAgICByZXQtPmJvb2x2YWwgPSAwOworCSAgICBpZiAodmFsKSB7CisJCWlmICgocmV0LT5ub2Rlc2V0dmFsLT5ub2RlTWF4ID09IDApIHx8CisJCSAgICAodmFsLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkpCisJCXsKKwkJICAgIHhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZShyZXQtPm5vZGVzZXR2YWwsIHZhbCk7CisJCX0gZWxzZSB7CisJCSAgICByZXQtPm5vZGVzZXR2YWwtPm5vZGVUYWJbMF0gPSB2YWw7CisJCSAgICByZXQtPm5vZGVzZXR2YWwtPm5vZGVOciA9IDE7CisJCX0KKwkgICAgfQorI2lmZGVmIFhQX0RFQlVHX09CSl9VU0FHRQorCSAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoY3R4dCwgWFBBVEhfTk9ERVNFVCk7CisjZW5kaWYKKwkgICAgcmV0dXJuKHJldCk7CisJfSBlbHNlIGlmICgoY2FjaGUtPm1pc2NPYmpzICE9IE5VTEwpICYmCisJICAgIChjYWNoZS0+bWlzY09ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKwkgICAgLyoKKwkgICAgKiBGYWxsYmFjayB0byBtaXNjLWNhY2hlLgorCSAgICAqLworCisJICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikKKwkJY2FjaGUtPm1pc2NPYmpzLT5pdGVtc1stLWNhY2hlLT5taXNjT2Jqcy0+bnVtYmVyXTsKKworCSAgICByZXQtPnR5cGUgPSBYUEFUSF9OT0RFU0VUOworCSAgICByZXQtPmJvb2x2YWwgPSAwOworCSAgICByZXQtPm5vZGVzZXR2YWwgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGUodmFsKTsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwkgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKGN0eHQsIFhQQVRIX05PREVTRVQpOworI2VuZGlmCisJICAgIHJldHVybihyZXQpOworCX0KKyAgICB9CisgICAgcmV0dXJuKHhtbFhQYXRoTmV3Tm9kZVNldCh2YWwpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhY2hlTmV3Q1N0cmluZzoKKyAqIEBjdHh0OiB0aGUgWFBhdGggY29udGV4dAorICogQHZhbDogIHRoZSBjaGFyICogdmFsdWUKKyAqCisgKiBUaGlzIGlzIHRoZSBjYWNoZWQgdmVyc2lvbiBvZiB4bWxYUGF0aE5ld0NTdHJpbmcoKS4KKyAqIEFjcXVpcmUgYW4geG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBzdHJpbmcgYW5kIG9mIHZhbHVlIEB2YWwKKyAqCisgKiBSZXR1cm5zIHRoZSBjcmVhdGVkIG9yIHJldXNlZCBvYmplY3QuCisgKi8KK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhDYWNoZU5ld0NTdHJpbmcoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIGNvbnN0IGNoYXIgKnZhbCkKK3sKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmNhY2hlKSkgeworCXhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlID0gKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZTsKKworCWlmICgoY2FjaGUtPnN0cmluZ09ianMgIT0gTlVMTCkgJiYKKwkgICAgKGNhY2hlLT5zdHJpbmdPYmpzLT5udW1iZXIgIT0gMCkpCisJeworCSAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKwkgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKQorCQljYWNoZS0+c3RyaW5nT2Jqcy0+aXRlbXNbLS1jYWNoZS0+c3RyaW5nT2Jqcy0+bnVtYmVyXTsKKworCSAgICByZXQtPnR5cGUgPSBYUEFUSF9TVFJJTkc7CisJICAgIHJldC0+c3RyaW5ndmFsID0geG1sU3RyZHVwKEJBRF9DQVNUIHZhbCk7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisJICAgIHhtbFhQYXRoRGVidWdPYmpVc2FnZVJlcXVlc3RlZChjdHh0LCBYUEFUSF9TVFJJTkcpOworI2VuZGlmCisJICAgIHJldHVybihyZXQpOworCX0gZWxzZSBpZiAoKGNhY2hlLT5taXNjT2JqcyAhPSBOVUxMKSAmJgorCSAgICAoY2FjaGUtPm1pc2NPYmpzLT5udW1iZXIgIT0gMCkpCisJeworCSAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKwkgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKQorCQljYWNoZS0+bWlzY09ianMtPml0ZW1zWy0tY2FjaGUtPm1pc2NPYmpzLT5udW1iZXJdOworCisJICAgIHJldC0+dHlwZSA9IFhQQVRIX1NUUklORzsKKwkgICAgcmV0LT5zdHJpbmd2YWwgPSB4bWxTdHJkdXAoQkFEX0NBU1QgdmFsKTsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwkgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKGN0eHQsIFhQQVRIX1NUUklORyk7CisjZW5kaWYKKwkgICAgcmV0dXJuKHJldCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oeG1sWFBhdGhOZXdDU3RyaW5nKHZhbCkpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVOZXdTdHJpbmc6CisgKiBAY3R4dDogdGhlIFhQYXRoIGNvbnRleHQKKyAqIEB2YWw6ICB0aGUgeG1sQ2hhciAqIHZhbHVlCisgKgorICogVGhpcyBpcyB0aGUgY2FjaGVkIHZlcnNpb24gb2YgeG1sWFBhdGhOZXdTdHJpbmcoKS4KKyAqIEFjcXVpcmUgYW4geG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBzdHJpbmcgYW5kIG9mIHZhbHVlIEB2YWwKKyAqCisgKiBSZXR1cm5zIHRoZSBjcmVhdGVkIG9yIHJldXNlZCBvYmplY3QuCisgKi8KK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhDYWNoZU5ld1N0cmluZyh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqdmFsKQoreworICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+Y2FjaGUpKSB7CisJeG1sWFBhdGhDb250ZXh0Q2FjaGVQdHIgY2FjaGUgPSAoeG1sWFBhdGhDb250ZXh0Q2FjaGVQdHIpIGN0eHQtPmNhY2hlOworCisJaWYgKChjYWNoZS0+c3RyaW5nT2JqcyAhPSBOVUxMKSAmJgorCSAgICAoY2FjaGUtPnN0cmluZ09ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworCSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpCisJCWNhY2hlLT5zdHJpbmdPYmpzLT5pdGVtc1stLWNhY2hlLT5zdHJpbmdPYmpzLT5udW1iZXJdOworCSAgICByZXQtPnR5cGUgPSBYUEFUSF9TVFJJTkc7CisJICAgIGlmICh2YWwgIT0gTlVMTCkKKwkJcmV0LT5zdHJpbmd2YWwgPSB4bWxTdHJkdXAodmFsKTsKKwkgICAgZWxzZQorCQlyZXQtPnN0cmluZ3ZhbCA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSIiKTsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwkgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKGN0eHQsIFhQQVRIX1NUUklORyk7CisjZW5kaWYKKwkgICAgcmV0dXJuKHJldCk7CisJfSBlbHNlIGlmICgoY2FjaGUtPm1pc2NPYmpzICE9IE5VTEwpICYmCisJICAgIChjYWNoZS0+bWlzY09ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworCSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpCisJCWNhY2hlLT5taXNjT2Jqcy0+aXRlbXNbLS1jYWNoZS0+bWlzY09ianMtPm51bWJlcl07CisKKwkgICAgcmV0LT50eXBlID0gWFBBVEhfU1RSSU5HOworCSAgICBpZiAodmFsICE9IE5VTEwpCisJCXJldC0+c3RyaW5ndmFsID0geG1sU3RyZHVwKHZhbCk7CisJICAgIGVsc2UKKwkJcmV0LT5zdHJpbmd2YWwgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikiIik7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisJICAgIHhtbFhQYXRoRGVidWdPYmpVc2FnZVJlcXVlc3RlZChjdHh0LCBYUEFUSF9TVFJJTkcpOworI2VuZGlmCisJICAgIHJldHVybihyZXQpOworCX0KKyAgICB9CisgICAgcmV0dXJuKHhtbFhQYXRoTmV3U3RyaW5nKHZhbCkpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVOZXdCb29sZWFuOgorICogQGN0eHQ6IHRoZSBYUGF0aCBjb250ZXh0CisgKiBAdmFsOiAgdGhlIGJvb2xlYW4gdmFsdWUKKyAqCisgKiBUaGlzIGlzIHRoZSBjYWNoZWQgdmVyc2lvbiBvZiB4bWxYUGF0aE5ld0Jvb2xlYW4oKS4KKyAqIEFjcXVpcmVzIGFuIHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgYm9vbGVhbiBhbmQgb2YgdmFsdWUgQHZhbAorICoKKyAqIFJldHVybnMgdGhlIGNyZWF0ZWQgb3IgcmV1c2VkIG9iamVjdC4KKyAqLworc3RhdGljIHhtbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aENhY2hlTmV3Qm9vbGVhbih4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgaW50IHZhbCkKK3sKKyAgICBpZiAoKGN0eHQgIT0gTlVMTCkgJiYgKGN0eHQtPmNhY2hlKSkgeworCXhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlID0gKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZTsKKworCWlmICgoY2FjaGUtPmJvb2xlYW5PYmpzICE9IE5VTEwpICYmCisJICAgIChjYWNoZS0+Ym9vbGVhbk9ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworCSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpCisJCWNhY2hlLT5ib29sZWFuT2Jqcy0+aXRlbXNbLS1jYWNoZS0+Ym9vbGVhbk9ianMtPm51bWJlcl07CisJICAgIHJldC0+dHlwZSA9IFhQQVRIX0JPT0xFQU47CisJICAgIHJldC0+Ym9vbHZhbCA9ICh2YWwgIT0gMCk7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisJICAgIHhtbFhQYXRoRGVidWdPYmpVc2FnZVJlcXVlc3RlZChjdHh0LCBYUEFUSF9CT09MRUFOKTsKKyNlbmRpZgorCSAgICByZXR1cm4ocmV0KTsKKwl9IGVsc2UgaWYgKChjYWNoZS0+bWlzY09ianMgIT0gTlVMTCkgJiYKKwkgICAgKGNhY2hlLT5taXNjT2Jqcy0+bnVtYmVyICE9IDApKQorCXsKKwkgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisJICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikKKwkJY2FjaGUtPm1pc2NPYmpzLT5pdGVtc1stLWNhY2hlLT5taXNjT2Jqcy0+bnVtYmVyXTsKKworCSAgICByZXQtPnR5cGUgPSBYUEFUSF9CT09MRUFOOworCSAgICByZXQtPmJvb2x2YWwgPSAodmFsICE9IDApOworI2lmZGVmIFhQX0RFQlVHX09CSl9VU0FHRQorCSAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoY3R4dCwgWFBBVEhfQk9PTEVBTik7CisjZW5kaWYKKwkgICAgcmV0dXJuKHJldCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oeG1sWFBhdGhOZXdCb29sZWFuKHZhbCkpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVOZXdGbG9hdDoKKyAqIEBjdHh0OiB0aGUgWFBhdGggY29udGV4dAorICogQHZhbDogIHRoZSBkb3VibGUgdmFsdWUKKyAqCisgKiBUaGlzIGlzIHRoZSBjYWNoZWQgdmVyc2lvbiBvZiB4bWxYUGF0aE5ld0Zsb2F0KCkuCisgKiBBY3F1aXJlcyBhbiB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIGRvdWJsZSBhbmQgb2YgdmFsdWUgQHZhbAorICoKKyAqIFJldHVybnMgdGhlIGNyZWF0ZWQgb3IgcmV1c2VkIG9iamVjdC4KKyAqLworc3RhdGljIHhtbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aENhY2hlTmV3RmxvYXQoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIGRvdWJsZSB2YWwpCit7CisgICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+Y2FjaGUpKSB7CisJeG1sWFBhdGhDb250ZXh0Q2FjaGVQdHIgY2FjaGUgPSAoeG1sWFBhdGhDb250ZXh0Q2FjaGVQdHIpIGN0eHQtPmNhY2hlOworCisJaWYgKChjYWNoZS0+bnVtYmVyT2JqcyAhPSBOVUxMKSAmJgorCSAgICAoY2FjaGUtPm51bWJlck9ianMtPm51bWJlciAhPSAwKSkKKwl7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworCSAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpCisJCWNhY2hlLT5udW1iZXJPYmpzLT5pdGVtc1stLWNhY2hlLT5udW1iZXJPYmpzLT5udW1iZXJdOworCSAgICByZXQtPnR5cGUgPSBYUEFUSF9OVU1CRVI7CisJICAgIHJldC0+ZmxvYXR2YWwgPSB2YWw7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisJICAgIHhtbFhQYXRoRGVidWdPYmpVc2FnZVJlcXVlc3RlZChjdHh0LCBYUEFUSF9OVU1CRVIpOworI2VuZGlmCisJICAgIHJldHVybihyZXQpOworCX0gZWxzZSBpZiAoKGNhY2hlLT5taXNjT2JqcyAhPSBOVUxMKSAmJgorCSAgICAoY2FjaGUtPm1pc2NPYmpzLT5udW1iZXIgIT0gMCkpCisJeworCSAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKwkgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKQorCQljYWNoZS0+bWlzY09ianMtPml0ZW1zWy0tY2FjaGUtPm1pc2NPYmpzLT5udW1iZXJdOworCisJICAgIHJldC0+dHlwZSA9IFhQQVRIX05VTUJFUjsKKwkgICAgcmV0LT5mbG9hdHZhbCA9IHZhbDsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwkgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKGN0eHQsIFhQQVRIX05VTUJFUik7CisjZW5kaWYKKwkgICAgcmV0dXJuKHJldCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oeG1sWFBhdGhOZXdGbG9hdCh2YWwpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhY2hlQ29udmVydFN0cmluZzoKKyAqIEBjdHh0OiB0aGUgWFBhdGggY29udGV4dAorICogQHZhbDogIGFuIFhQYXRoIG9iamVjdAorICoKKyAqIFRoaXMgaXMgdGhlIGNhY2hlZCB2ZXJzaW9uIG9mIHhtbFhQYXRoQ29udmVydFN0cmluZygpLgorICogQ29udmVydHMgYW4gZXhpc3Rpbmcgb2JqZWN0IHRvIGl0cyBzdHJpbmcoKSBlcXVpdmFsZW50CisgKgorICogUmV0dXJucyBhIGNyZWF0ZWQgb3IgcmV1c2VkIG9iamVjdCwgdGhlIG9sZCBvbmUgaXMgZnJlZWQgKGNhY2hlZCkKKyAqICAgICAgICAgKG9yIHRoZSBvcGVyYXRpb24gaXMgZG9uZSBkaXJlY3RseSBvbiBAdmFsKQorICovCisKK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhDYWNoZUNvbnZlcnRTdHJpbmcoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkgeworICAgIHhtbENoYXIgKnJlcyA9IE5VTEw7CisKKyAgICBpZiAodmFsID09IE5VTEwpCisJcmV0dXJuKHhtbFhQYXRoQ2FjaGVOZXdDU3RyaW5nKGN0eHQsICIiKSk7CisKKyAgICBzd2l0Y2ggKHZhbC0+dHlwZSkgeworICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorI2lmZGVmIERFQlVHX0VYUFIKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlNUUklORzogdW5kZWZpbmVkXG4iKTsKKyNlbmRpZgorCWJyZWFrOworICAgIGNhc2UgWFBBVEhfTk9ERVNFVDoKKyAgICBjYXNlIFhQQVRIX1hTTFRfVFJFRToKKwlyZXMgPSB4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcodmFsLT5ub2Rlc2V0dmFsKTsKKwlicmVhazsKKyAgICBjYXNlIFhQQVRIX1NUUklORzoKKwlyZXR1cm4odmFsKTsKKyAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisJcmVzID0geG1sWFBhdGhDYXN0Qm9vbGVhblRvU3RyaW5nKHZhbC0+Ym9vbHZhbCk7CisJYnJlYWs7CisgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisJcmVzID0geG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmcodmFsLT5mbG9hdHZhbCk7CisJYnJlYWs7CisgICAgY2FzZSBYUEFUSF9VU0VSUzoKKyAgICBjYXNlIFhQQVRIX1BPSU5UOgorICAgIGNhc2UgWFBBVEhfUkFOR0U6CisgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKwlUT0RPOworCWJyZWFrOworICAgIH0KKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dCwgdmFsKTsKKyAgICBpZiAocmVzID09IE5VTEwpCisJcmV0dXJuKHhtbFhQYXRoQ2FjaGVOZXdDU3RyaW5nKGN0eHQsICIiKSk7CisgICAgcmV0dXJuKHhtbFhQYXRoQ2FjaGVXcmFwU3RyaW5nKGN0eHQsIHJlcykpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVPYmplY3RDb3B5OgorICogQGN0eHQ6IHRoZSBYUGF0aCBjb250ZXh0CisgKiBAdmFsOiAgdGhlIG9yaWdpbmFsIG9iamVjdAorICoKKyAqIFRoaXMgaXMgdGhlIGNhY2hlZCB2ZXJzaW9uIG9mIHhtbFhQYXRoT2JqZWN0Q29weSgpLgorICogQWNxdWlyZSBhIGNvcHkgb2YgYSBnaXZlbiBvYmplY3QKKyAqCisgKiBSZXR1cm5zIGEgY3JlYXRlZCBvciByZXVzZWQgY3JlYXRlZCBvYmplY3QuCisgKi8KK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhDYWNoZU9iamVjdENvcHkoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkKK3sKKyAgICBpZiAodmFsID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKFhQX0hBU19DQUNIRShjdHh0KSkgeworCXN3aXRjaCAodmFsLT50eXBlKSB7CisJICAgIGNhc2UgWFBBVEhfTk9ERVNFVDoKKwkJcmV0dXJuKHhtbFhQYXRoQ2FjaGVXcmFwTm9kZVNldChjdHh0LAorCQkgICAgeG1sWFBhdGhOb2RlU2V0TWVyZ2UoTlVMTCwgdmFsLT5ub2Rlc2V0dmFsKSkpOworCSAgICBjYXNlIFhQQVRIX1NUUklORzoKKwkJcmV0dXJuKHhtbFhQYXRoQ2FjaGVOZXdTdHJpbmcoY3R4dCwgdmFsLT5zdHJpbmd2YWwpKTsKKwkgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCQlyZXR1cm4oeG1sWFBhdGhDYWNoZU5ld0Jvb2xlYW4oY3R4dCwgdmFsLT5ib29sdmFsKSk7CisJICAgIGNhc2UgWFBBVEhfTlVNQkVSOgorCQlyZXR1cm4oeG1sWFBhdGhDYWNoZU5ld0Zsb2F0KGN0eHQsIHZhbC0+ZmxvYXR2YWwpKTsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorICAgIH0KKyAgICByZXR1cm4oeG1sWFBhdGhPYmplY3RDb3B5KHZhbCkpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVDb252ZXJ0Qm9vbGVhbjoKKyAqIEBjdHh0OiB0aGUgWFBhdGggY29udGV4dAorICogQHZhbDogIGFuIFhQYXRoIG9iamVjdAorICoKKyAqIFRoaXMgaXMgdGhlIGNhY2hlZCB2ZXJzaW9uIG9mIHhtbFhQYXRoQ29udmVydEJvb2xlYW4oKS4KKyAqIENvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgYm9vbGVhbigpIGVxdWl2YWxlbnQKKyAqCisgKiBSZXR1cm5zIGEgY3JlYXRlZCBvciByZXVzZWQgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbgorICogICAgICAgICBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpCisgKi8KK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhDYWNoZUNvbnZlcnRCb29sZWFuKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCB4bWxYUGF0aE9iamVjdFB0ciB2YWwpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKyAgICBpZiAodmFsID09IE5VTEwpCisJcmV0dXJuKHhtbFhQYXRoQ2FjaGVOZXdCb29sZWFuKGN0eHQsIDApKTsKKyAgICBpZiAodmFsLT50eXBlID09IFhQQVRIX0JPT0xFQU4pCisJcmV0dXJuKHZhbCk7CisgICAgcmV0ID0geG1sWFBhdGhDYWNoZU5ld0Jvb2xlYW4oY3R4dCwgeG1sWFBhdGhDYXN0VG9Cb29sZWFuKHZhbCkpOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LCB2YWwpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FjaGVDb252ZXJ0TnVtYmVyOgorICogQGN0eHQ6IHRoZSBYUGF0aCBjb250ZXh0CisgKiBAdmFsOiAgYW4gWFBhdGggb2JqZWN0CisgKgorICogVGhpcyBpcyB0aGUgY2FjaGVkIHZlcnNpb24gb2YgeG1sWFBhdGhDb252ZXJ0TnVtYmVyKCkuCisgKiBDb252ZXJ0cyBhbiBleGlzdGluZyBvYmplY3QgdG8gaXRzIG51bWJlcigpIGVxdWl2YWxlbnQKKyAqCisgKiBSZXR1cm5zIGEgY3JlYXRlZCBvciByZXVzZWQgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbgorICogICAgICAgICBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpCisgKi8KK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhDYWNoZUNvbnZlcnROdW1iZXIoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIGlmICh2YWwgPT0gTlVMTCkKKwlyZXR1cm4oeG1sWFBhdGhDYWNoZU5ld0Zsb2F0KGN0eHQsIDAuMCkpOworICAgIGlmICh2YWwtPnR5cGUgPT0gWFBBVEhfTlVNQkVSKQorCXJldHVybih2YWwpOworICAgIHJldCA9IHhtbFhQYXRoQ2FjaGVOZXdGbG9hdChjdHh0LCB4bWxYUGF0aENhc3RUb051bWJlcih2YWwpKTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dCwgdmFsKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUGFyc2VyIHN0YWNrcyByZWxhdGVkIGZ1bmN0aW9ucyBhbmQgbWFjcm9zCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogdmFsdWVQb3A6CisgKiBAY3R4dDogYW4gWFBhdGggZXZhbHVhdGlvbiBjb250ZXh0CisgKgorICogUG9wcyB0aGUgdG9wIFhQYXRoIG9iamVjdCBmcm9tIHRoZSB2YWx1ZSBzdGFjaworICoKKyAqIFJldHVybnMgdGhlIFhQYXRoIG9iamVjdCBqdXN0IHJlbW92ZWQKKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3ZhbHVlUG9wKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KQoreworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+dmFsdWVOciA8PSAwKSkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICBjdHh0LT52YWx1ZU5yLS07CisgICAgaWYgKGN0eHQtPnZhbHVlTnIgPiAwKQorICAgICAgICBjdHh0LT52YWx1ZSA9IGN0eHQtPnZhbHVlVGFiW2N0eHQtPnZhbHVlTnIgLSAxXTsKKyAgICBlbHNlCisgICAgICAgIGN0eHQtPnZhbHVlID0gTlVMTDsKKyAgICByZXQgPSBjdHh0LT52YWx1ZVRhYltjdHh0LT52YWx1ZU5yXTsKKyAgICBjdHh0LT52YWx1ZVRhYltjdHh0LT52YWx1ZU5yXSA9IE5VTEw7CisgICAgcmV0dXJuIChyZXQpOworfQorLyoqCisgKiB2YWx1ZVB1c2g6CisgKiBAY3R4dDogIGFuIFhQYXRoIGV2YWx1YXRpb24gY29udGV4dAorICogQHZhbHVlOiAgdGhlIFhQYXRoIG9iamVjdAorICoKKyAqIFB1c2hlcyBhIG5ldyBYUGF0aCBvYmplY3Qgb24gdG9wIG9mIHRoZSB2YWx1ZSBzdGFjaworICoKKyAqIHJldHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyBvbiB0aGUgdmFsdWUgc3RhY2sKKyAqLworaW50Cit2YWx1ZVB1c2goeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoT2JqZWN0UHRyIHZhbHVlKQoreworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAodmFsdWUgPT0gTlVMTCkpIHJldHVybigtMSk7CisgICAgaWYgKGN0eHQtPnZhbHVlTnIgPj0gY3R4dC0+dmFsdWVNYXgpIHsKKyAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgKnRtcDsKKworICAgICAgICB0bXAgPSAoeG1sWFBhdGhPYmplY3RQdHIgKikgeG1sUmVhbGxvYyhjdHh0LT52YWx1ZVRhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiBjdHh0LT52YWx1ZU1heCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY3R4dC0+dmFsdWVUYWJbMF0pKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgInJlYWxsb2MgZmFpbGVkICFcbiIpOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgfQorICAgICAgICBjdHh0LT52YWx1ZU1heCAqPSAyOworCWN0eHQtPnZhbHVlVGFiID0gdG1wOworICAgIH0KKyAgICBjdHh0LT52YWx1ZVRhYltjdHh0LT52YWx1ZU5yXSA9IHZhbHVlOworICAgIGN0eHQtPnZhbHVlID0gdmFsdWU7CisgICAgcmV0dXJuIChjdHh0LT52YWx1ZU5yKyspOworfQorCisvKioKKyAqIHhtbFhQYXRoUG9wQm9vbGVhbjoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQb3BzIGEgYm9vbGVhbiBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuCisgKiBDaGVjayBlcnJvciB3aXRoICN4bWxYUGF0aENoZWNrRXJyb3IuCisgKgorICogUmV0dXJucyB0aGUgYm9vbGVhbgorICovCitpbnQKK3htbFhQYXRoUG9wQm9vbGVhbiAoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBvYmo7CisgICAgaW50IHJldDsKKworICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworCXhtbFhQYXRoU2V0RXJyb3IoY3R4dCwgWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmIChvYmotPnR5cGUgIT0gWFBBVEhfQk9PTEVBTikKKwlyZXQgPSB4bWxYUGF0aENhc3RUb0Jvb2xlYW4ob2JqKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG9iai0+Ym9vbHZhbDsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgb2JqKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aFBvcE51bWJlcjoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQb3BzIGEgbnVtYmVyIGZyb20gdGhlIHN0YWNrLCBoYW5kbGluZyBjb252ZXJzaW9uIGlmIG5lZWRlZC4KKyAqIENoZWNrIGVycm9yIHdpdGggI3htbFhQYXRoQ2hlY2tFcnJvci4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIKKyAqLworZG91YmxlCit4bWxYUGF0aFBvcE51bWJlciAoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBvYmo7CisgICAgZG91YmxlIHJldDsKKworICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworCXhtbFhQYXRoU2V0RXJyb3IoY3R4dCwgWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmIChvYmotPnR5cGUgIT0gWFBBVEhfTlVNQkVSKQorCXJldCA9IHhtbFhQYXRoQ2FzdFRvTnVtYmVyKG9iaik7CisgICAgZWxzZQorICAgICAgICByZXQgPSBvYmotPmZsb2F0dmFsOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBvYmopOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoUG9wU3RyaW5nOgorICogQGN0eHQ6ICBhbiBYUGF0aCBwYXJzZXIgY29udGV4dAorICoKKyAqIFBvcHMgYSBzdHJpbmcgZnJvbSB0aGUgc3RhY2ssIGhhbmRsaW5nIGNvbnZlcnNpb24gaWYgbmVlZGVkLgorICogQ2hlY2sgZXJyb3Igd2l0aCAjeG1sWFBhdGhDaGVja0Vycm9yLgorICoKKyAqIFJldHVybnMgdGhlIHN0cmluZworICovCit4bWxDaGFyICoKK3htbFhQYXRoUG9wU3RyaW5nICh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iajsKKyAgICB4bWxDaGFyICogcmV0OworCisgICAgb2JqID0gdmFsdWVQb3AoY3R4dCk7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisJeG1sWFBhdGhTZXRFcnJvcihjdHh0LCBYUEFUSF9JTlZBTElEX09QRVJBTkQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgcmV0ID0geG1sWFBhdGhDYXN0VG9TdHJpbmcob2JqKTsJLyogdGhpcyBkb2VzIHJlcXVpcmVkIHN0cmR1cCAqLworICAgIC8qIFRPRE86IG5lZWRzIHJlZmFjdG9yaW5nIHNvbWV3aGVyZSBlbHNlICovCisgICAgaWYgKG9iai0+c3RyaW5ndmFsID09IHJldCkKKwlvYmotPnN0cmluZ3ZhbCA9IE5VTEw7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIG9iaik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhQb3BOb2RlU2V0OgorICogQGN0eHQ6ICBhbiBYUGF0aCBwYXJzZXIgY29udGV4dAorICoKKyAqIFBvcHMgYSBub2RlLXNldCBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuCisgKiBDaGVjayBlcnJvciB3aXRoICN4bWxYUGF0aENoZWNrRXJyb3IuCisgKgorICogUmV0dXJucyB0aGUgbm9kZS1zZXQKKyAqLworeG1sTm9kZVNldFB0cgoreG1sWFBhdGhQb3BOb2RlU2V0ICh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iajsKKyAgICB4bWxOb2RlU2V0UHRyIHJldDsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICBpZiAoY3R4dC0+dmFsdWUgPT0gTlVMTCkgeworCXhtbFhQYXRoU2V0RXJyb3IoY3R4dCwgWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICgheG1sWFBhdGhTdGFja0lzTm9kZVNldChjdHh0KSkgeworCXhtbFhQYXRoU2V0VHlwZUVycm9yKGN0eHQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgb2JqID0gdmFsdWVQb3AoY3R4dCk7CisgICAgcmV0ID0gb2JqLT5ub2Rlc2V0dmFsOworI2lmIDAKKyAgICAvKiB0byBmaXggbWVtb3J5IGxlYWsgb2Ygbm90IGNsZWFyaW5nIG9iai0+dXNlciAqLworICAgIGlmIChvYmotPmJvb2x2YWwgJiYgb2JqLT51c2VyICE9IE5VTEwpCisgICAgICAgIHhtbEZyZWVOb2RlTGlzdCgoeG1sTm9kZVB0cikgb2JqLT51c2VyKTsKKyNlbmRpZgorICAgIG9iai0+bm9kZXNldHZhbCA9IE5VTEw7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIG9iaik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhQb3BFeHRlcm5hbDoKKyAqIEBjdHh0OiAgYW4gWFBhdGggcGFyc2VyIGNvbnRleHQKKyAqCisgKiBQb3BzIGFuIGV4dGVybmFsIG9iamVjdCBmcm9tIHRoZSBzdGFjaywgaGFuZGxpbmcgY29udmVyc2lvbiBpZiBuZWVkZWQuCisgKiBDaGVjayBlcnJvciB3aXRoICN4bWxYUGF0aENoZWNrRXJyb3IuCisgKgorICogUmV0dXJucyB0aGUgb2JqZWN0CisgKi8KK3ZvaWQgKgoreG1sWFBhdGhQb3BFeHRlcm5hbCAoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBvYmo7CisgICAgdm9pZCAqIHJldDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+dmFsdWUgPT0gTlVMTCkpIHsKKwl4bWxYUGF0aFNldEVycm9yKGN0eHQsIFhQQVRIX0lOVkFMSURfT1BFUkFORCk7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBpZiAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfVVNFUlMpIHsKKwl4bWxYUGF0aFNldFR5cGVFcnJvcihjdHh0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgIHJldCA9IG9iai0+dXNlcjsKKyAgICBvYmotPnVzZXIgPSBOVUxMOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBvYmopOworICAgIHJldHVybihyZXQpOworfQorCisvKgorICogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGNvbnRlbnQuIFRob3NlIHNob3VsZCBiZSB1c2VkIG9ubHkgYnkgdGhlIHBhcnNlciwKKyAqIGFuZCBub3QgZXhwb3J0ZWQuCisgKgorICogRGlydHkgbWFjcm9zLCBpLmUuIG9uZSBuZWVkIHRvIG1ha2UgYXNzdW1wdGlvbiBvbiB0aGUgY29udGV4dCB0byB1c2UgdGhlbQorICoKKyAqICAgQ1VSX1BUUiByZXR1cm4gdGhlIGN1cnJlbnQgcG9pbnRlciB0byB0aGUgeG1sQ2hhciB0byBiZSBwYXJzZWQuCisgKiAgIENVUiAgICAgcmV0dXJucyB0aGUgY3VycmVudCB4bWxDaGFyIHZhbHVlLCBpLmUuIGEgOCBiaXQgdmFsdWUKKyAqICAgICAgICAgICBpbiBJU08tTGF0aW4gb3IgVVRGLTguCisgKiAgICAgICAgICAgVGhpcyBzaG91bGQgYmUgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBwYXJzZXIKKyAqICAgICAgICAgICBvbmx5IHRvIGNvbXBhcmUgdG8gQVNDSUkgdmFsdWVzIG90aGVyd2lzZSBpdCB3b3VsZCBicmVhayB3aGVuCisgKiAgICAgICAgICAgcnVubmluZyB3aXRoIFVURi04IGVuY29kaW5nLgorICogICBOWFQobikgIHJldHVybnMgdGhlIG4ndGggbmV4dCB4bWxDaGFyLiBTYW1lIGFzIENVUiBpcyBzaG91bGQgYmUgdXNlZCBvbmx5CisgKiAgICAgICAgICAgdG8gY29tcGFyZSBvbiBBU0NJSSBiYXNlZCBzdWJzdHJpbmcuCisgKiAgIFNLSVAobikgU2tpcCBuIHhtbENoYXIsIGFuZCBtdXN0IGFsc28gYmUgdXNlZCBvbmx5IHRvIHNraXAgQVNDSUkgZGVmaW5lZAorICogICAgICAgICAgIHN0cmluZ3Mgd2l0aGluIHRoZSBwYXJzZXIuCisgKiAgIENVUlJFTlQgUmV0dXJucyB0aGUgY3VycmVudCBjaGFyIHZhbHVlLCB3aXRoIHRoZSBmdWxsIGRlY29kaW5nIG9mCisgKiAgICAgICAgICAgVVRGLTggaWYgd2UgYXJlIHVzaW5nIHRoaXMgbW9kZS4gSXQgcmV0dXJucyBhbiBpbnQuCisgKiAgIE5FWFQgICAgU2tpcCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIsIHRoaXMgZG9lcyB0aGUgcHJvcGVyIGRlY29kaW5nCisgKiAgICAgICAgICAgaW4gVVRGLTggbW9kZS4gSXQgYWxzbyBwb3AtdXAgdW5maW5pc2hlZCBlbnRpdGllcyBvbiB0aGUgZmx5LgorICogICAgICAgICAgIEl0IHJldHVybnMgdGhlIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgeG1sQ2hhci4KKyAqLworCisjZGVmaW5lIENVUiAoKmN0eHQtPmN1cikKKyNkZWZpbmUgU0tJUCh2YWwpIGN0eHQtPmN1ciArPSAodmFsKQorI2RlZmluZSBOWFQodmFsKSBjdHh0LT5jdXJbKHZhbCldCisjZGVmaW5lIENVUl9QVFIgY3R4dC0+Y3VyCisjZGVmaW5lIENVUl9DSEFSKGwpIHhtbFhQYXRoQ3VycmVudENoYXIoY3R4dCwgJmwpCisKKyNkZWZpbmUgQ09QWV9CVUYobCxiLGksdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChsID09IDEpIGJbaSsrXSA9ICh4bWxDaGFyKSB2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZWxzZSBpICs9IHhtbENvcHlDaGFyKGwsJmJbaV0sdikKKworI2RlZmluZSBORVhUTChsKSAgY3R4dC0+Y3VyICs9IGwKKworI2RlZmluZSBTS0lQX0JMQU5LUwkJCQkJCQlcCisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCooY3R4dC0+Y3VyKSkpIE5FWFQKKworI2RlZmluZSBDVVJSRU5UICgqY3R4dC0+Y3VyKQorI2RlZmluZSBORVhUICgoKmN0eHQtPmN1cikgPyAgY3R4dC0+Y3VyKys6IGN0eHQtPmN1cikKKworCisjaWZuZGVmIERCTF9ESUcKKyNkZWZpbmUgREJMX0RJRyAxNgorI2VuZGlmCisjaWZuZGVmIERCTF9FUFNJTE9OCisjZGVmaW5lIERCTF9FUFNJTE9OIDFFLTkKKyNlbmRpZgorCisjZGVmaW5lIFVQUEVSX0RPVUJMRSAxRTkKKyNkZWZpbmUgTE9XRVJfRE9VQkxFIDFFLTUKKyNkZWZpbmUJTE9XRVJfRE9VQkxFX0VYUCA1CisKKyNkZWZpbmUgSU5URUdFUl9ESUdJVFMgREJMX0RJRworI2RlZmluZSBGUkFDVElPTl9ESUdJVFMgKERCTF9ESUcgKyAxICsgKExPV0VSX0RPVUJMRV9FWFApKQorI2RlZmluZSBFWFBPTkVOVF9ESUdJVFMgKDMgKyAyKQorCisvKioKKyAqIHhtbFhQYXRoRm9ybWF0TnVtYmVyOgorICogQG51bWJlcjogICAgIG51bWJlciB0byBmb3JtYXQKKyAqIEBidWZmZXI6ICAgICBvdXRwdXQgYnVmZmVyCisgKiBAYnVmZmVyc2l6ZTogc2l6ZSBvZiBvdXRwdXQgYnVmZmVyCisgKgorICogQ29udmVydCB0aGUgbnVtYmVyIGludG8gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aEZvcm1hdE51bWJlcihkb3VibGUgbnVtYmVyLCBjaGFyIGJ1ZmZlcltdLCBpbnQgYnVmZmVyc2l6ZSkKK3sKKyAgICBzd2l0Y2ggKHhtbFhQYXRoSXNJbmYobnVtYmVyKSkgeworICAgIGNhc2UgMToKKwlpZiAoYnVmZmVyc2l6ZSA+IChpbnQpc2l6ZW9mKCJJbmZpbml0eSIpKQorCSAgICBzbnByaW50ZihidWZmZXIsIGJ1ZmZlcnNpemUsICJJbmZpbml0eSIpOworCWJyZWFrOworICAgIGNhc2UgLTE6CisJaWYgKGJ1ZmZlcnNpemUgPiAoaW50KXNpemVvZigiLUluZmluaXR5IikpCisJICAgIHNucHJpbnRmKGJ1ZmZlciwgYnVmZmVyc2l6ZSwgIi1JbmZpbml0eSIpOworCWJyZWFrOworICAgIGRlZmF1bHQ6CisJaWYgKHhtbFhQYXRoSXNOYU4obnVtYmVyKSkgeworCSAgICBpZiAoYnVmZmVyc2l6ZSA+IChpbnQpc2l6ZW9mKCJOYU4iKSkKKwkJc25wcmludGYoYnVmZmVyLCBidWZmZXJzaXplLCAiTmFOIik7CisJfSBlbHNlIGlmIChudW1iZXIgPT0gMCAmJiB4bWxYUGF0aEdldFNpZ24obnVtYmVyKSAhPSAwKSB7CisJICAgIHNucHJpbnRmKGJ1ZmZlciwgYnVmZmVyc2l6ZSwgIjAiKTsKKwl9IGVsc2UgaWYgKG51bWJlciA9PSAoKGludCkgbnVtYmVyKSkgeworCSAgICBjaGFyIHdvcmtbMzBdOworCSAgICBjaGFyICpwdHIsICpjdXI7CisJICAgIGludCB2YWx1ZSA9IChpbnQpIG51bWJlcjsKKworICAgICAgICAgICAgcHRyID0gJmJ1ZmZlclswXTsKKwkgICAgaWYgKHZhbHVlID09IDApIHsKKwkJKnB0cisrID0gJzAnOworCSAgICB9IGVsc2UgeworCQlzbnByaW50Zih3b3JrLCAyOSwgIiVkIiwgdmFsdWUpOworCQljdXIgPSAmd29ya1swXTsKKwkJd2hpbGUgKCgqY3VyKSAmJiAocHRyIC0gYnVmZmVyIDwgYnVmZmVyc2l6ZSkpIHsKKwkJICAgICpwdHIrKyA9ICpjdXIrKzsKKwkJfQorCSAgICB9CisJICAgIGlmIChwdHIgLSBidWZmZXIgPCBidWZmZXJzaXplKSB7CisJCSpwdHIgPSAwOworCSAgICB9IGVsc2UgaWYgKGJ1ZmZlcnNpemUgPiAwKSB7CisJCXB0ci0tOworCQkqcHRyID0gMDsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIC8qCisJICAgICAgRm9yIHRoZSBkaW1lbnNpb24gb2Ygd29yaywKKwkgICAgICAgICAgREJMX0RJRyBpcyBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisJCSAgRVhQT05FTlQgaXMgb25seSBuZWVkZWQgZm9yICJzY2llbnRpZmljIG5vdGF0aW9uIgorCSAgICAgICAgICAzIGlzIHNpZ24sIGRlY2ltYWwgcG9pbnQsIGFuZCB0ZXJtaW5hdGluZyB6ZXJvCisJCSAgTE9XRVJfRE9VQkxFX0VYUCBpcyBtYXggbnVtYmVyIG9mIGxlYWRpbmcgemVyb2VzIGluIGZyYWN0aW9uCisJICAgICAgTm90ZSB0aGF0IHRoaXMgZGltZW5zaW9uIGlzIHNsaWdodGx5IChhIGZldyBjaGFyYWN0ZXJzKQorCSAgICAgIGxhcmdlciB0aGFuIGFjdHVhbGx5IG5lY2Vzc2FyeS4KKwkgICAgKi8KKwkgICAgY2hhciB3b3JrW0RCTF9ESUcgKyBFWFBPTkVOVF9ESUdJVFMgKyAzICsgTE9XRVJfRE9VQkxFX0VYUF07CisJICAgIGludCBpbnRlZ2VyX3BsYWNlLCBmcmFjdGlvbl9wbGFjZTsKKwkgICAgY2hhciAqcHRyOworCSAgICBjaGFyICphZnRlcl9mcmFjdGlvbjsKKwkgICAgZG91YmxlIGFic29sdXRlX3ZhbHVlOworCSAgICBpbnQgc2l6ZTsKKworCSAgICBhYnNvbHV0ZV92YWx1ZSA9IGZhYnMobnVtYmVyKTsKKworCSAgICAvKgorCSAgICAgKiBGaXJzdCBjaG9vc2UgZm9ybWF0IC0gc2NpZW50aWZpYyBvciByZWd1bGFyIGZsb2F0aW5nIHBvaW50LgorCSAgICAgKiBJbiBlaXRoZXIgY2FzZSwgcmVzdWx0IGlzIGluIHdvcmssIGFuZCBhZnRlcl9mcmFjdGlvbiBwb2ludHMKKwkgICAgICoganVzdCBwYXN0IHRoZSBmcmFjdGlvbmFsIHBhcnQuCisJICAgICovCisJICAgIGlmICggKChhYnNvbHV0ZV92YWx1ZSA+IFVQUEVSX0RPVUJMRSkgfHwKKwkJICAoYWJzb2x1dGVfdmFsdWUgPCBMT1dFUl9ET1VCTEUpKSAmJgorCQkgKGFic29sdXRlX3ZhbHVlICE9IDAuMCkgKSB7CisJCS8qIFVzZSBzY2llbnRpZmljIG5vdGF0aW9uICovCisJCWludGVnZXJfcGxhY2UgPSBEQkxfRElHICsgRVhQT05FTlRfRElHSVRTICsgMTsKKwkJZnJhY3Rpb25fcGxhY2UgPSBEQkxfRElHIC0gMTsKKwkJc2l6ZSA9IHNucHJpbnRmKHdvcmssIHNpemVvZih3b3JrKSwiJSouKmUiLAorCQkJIGludGVnZXJfcGxhY2UsIGZyYWN0aW9uX3BsYWNlLCBudW1iZXIpOworCQl3aGlsZSAoKHNpemUgPiAwKSAmJiAod29ya1tzaXplXSAhPSAnZScpKSBzaXplLS07CisKKwkgICAgfQorCSAgICBlbHNlIHsKKwkJLyogVXNlIHJlZ3VsYXIgbm90YXRpb24gKi8KKwkJaWYgKGFic29sdXRlX3ZhbHVlID4gMC4wKSB7CisJCSAgICBpbnRlZ2VyX3BsYWNlID0gKGludClsb2cxMChhYnNvbHV0ZV92YWx1ZSk7CisJCSAgICBpZiAoaW50ZWdlcl9wbGFjZSA+IDApCisJCSAgICAgICAgZnJhY3Rpb25fcGxhY2UgPSBEQkxfRElHIC0gaW50ZWdlcl9wbGFjZSAtIDE7CisJCSAgICBlbHNlCisJCSAgICAgICAgZnJhY3Rpb25fcGxhY2UgPSBEQkxfRElHIC0gaW50ZWdlcl9wbGFjZTsKKwkJfSBlbHNlIHsKKwkJICAgIGZyYWN0aW9uX3BsYWNlID0gMTsKKwkJfQorCQlzaXplID0gc25wcmludGYod29yaywgc2l6ZW9mKHdvcmspLCAiJTAuKmYiLAorCQkJCWZyYWN0aW9uX3BsYWNlLCBudW1iZXIpOworCSAgICB9CisKKwkgICAgLyogUmVtb3ZlIGZyYWN0aW9uYWwgdHJhaWxpbmcgemVyb2VzICovCisJICAgIGFmdGVyX2ZyYWN0aW9uID0gd29yayArIHNpemU7CisJICAgIHB0ciA9IGFmdGVyX2ZyYWN0aW9uOworCSAgICB3aGlsZSAoKigtLXB0cikgPT0gJzAnKQorCQk7CisJICAgIGlmICgqcHRyICE9ICcuJykKKwkgICAgICAgIHB0cisrOworCSAgICB3aGlsZSAoKCpwdHIrKyA9ICphZnRlcl9mcmFjdGlvbisrKSAhPSAwKTsKKworCSAgICAvKiBGaW5hbGx5IGNvcHkgcmVzdWx0IGJhY2sgdG8gY2FsbGVyICovCisJICAgIHNpemUgPSBzdHJsZW4od29yaykgKyAxOworCSAgICBpZiAoc2l6ZSA+IGJ1ZmZlcnNpemUpIHsKKwkJd29ya1tidWZmZXJzaXplIC0gMV0gPSAwOworCQlzaXplID0gYnVmZmVyc2l6ZTsKKwkgICAgfQorCSAgICBtZW1tb3ZlKGJ1ZmZlciwgd29yaywgc2l6ZSk7CisJfQorCWJyZWFrOworICAgIH0KK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQkJUm91dGluZXMgdG8gaGFuZGxlIE5vZGVTZXRzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhQYXRoT3JkZXJEb2NFbGVtczoKKyAqIEBkb2M6ICBhbiBpbnB1dCBkb2N1bWVudAorICoKKyAqIENhbGwgdGhpcyByb3V0aW5lIHRvIHNwZWVkIHVwIFhQYXRoIGNvbXB1dGF0aW9uIG9uIHN0YXRpYyBkb2N1bWVudHMuCisgKiBUaGlzIHN0YW1wcyBhbGwgdGhlIGVsZW1lbnQgbm9kZXMgd2l0aCB0aGUgZG9jdW1lbnQgb3JkZXIKKyAqIExpa2UgZm9yIGxpbmUgaW5mb3JtYXRpb24sIHRoZSBvcmRlciBpcyBrZXB0IGluIHRoZSBlbGVtZW50LT5jb250ZW50CisgKiBmaWVsZCwgdGhlIHZhbHVlIHN0b3JlZCBpcyBhY3R1YWxseSAtIHRoZSBub2RlIG51bWJlciAoc3RhcnRpbmcgYXQgLTEpCisgKiB0byBiZSBhYmxlIHRvIGRpZmZlcmVudGlhdGUgZnJvbSBsaW5lIG51bWJlcnMuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGZvdW5kIGluIHRoZSBkb2N1bWVudCBvciAtMSBpbiBjYXNlCisgKiAgICBvZiBlcnJvci4KKyAqLworbG9uZworeG1sWFBhdGhPcmRlckRvY0VsZW1zKHhtbERvY1B0ciBkb2MpIHsKKyAgICBsb25nIGNvdW50ID0gMDsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGlmIChkb2MgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgIGN1ciA9IGRvYy0+Y2hpbGRyZW47CisgICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJICAgIGN1ci0+Y29udGVudCA9ICh2b2lkICopICgtKCsrY291bnQpKTsKKwkgICAgaWYgKGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkgeworCQljdXIgPSBjdXItPmNoaWxkcmVuOworCQljb250aW51ZTsKKwkgICAgfQorCX0KKwlpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCSAgICBjb250aW51ZTsKKwl9CisJZG8geworCSAgICBjdXIgPSBjdXItPnBhcmVudDsKKwkgICAgaWYgKGN1ciA9PSBOVUxMKQorCQlicmVhazsKKwkgICAgaWYgKGN1ciA9PSAoeG1sTm9kZVB0cikgZG9jKSB7CisJCWN1ciA9IE5VTEw7CisJCWJyZWFrOworCSAgICB9CisJICAgIGlmIChjdXItPm5leHQgIT0gTlVMTCkgeworCQljdXIgPSBjdXItPm5leHQ7CisJCWJyZWFrOworCSAgICB9CisJfSB3aGlsZSAoY3VyICE9IE5VTEwpOworICAgIH0KKyAgICByZXR1cm4oY291bnQpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ21wTm9kZXM6CisgKiBAbm9kZTE6ICB0aGUgZmlyc3Qgbm9kZQorICogQG5vZGUyOiAgdGhlIHNlY29uZCBub2RlCisgKgorICogQ29tcGFyZSB0d28gbm9kZXMgdy5yLnQgZG9jdW1lbnQgb3JkZXIKKyAqCisgKiBSZXR1cm5zIC0yIGluIGNhc2Ugb2YgZXJyb3IgMSBpZiBmaXJzdCBwb2ludCA8IHNlY29uZCBwb2ludCwgMCBpZgorICogICAgICAgICBpdCdzIHRoZSBzYW1lIG5vZGUsIC0xIG90aGVyd2lzZQorICovCitpbnQKK3htbFhQYXRoQ21wTm9kZXMoeG1sTm9kZVB0ciBub2RlMSwgeG1sTm9kZVB0ciBub2RlMikgeworICAgIGludCBkZXB0aDEsIGRlcHRoMjsKKyAgICBpbnQgYXR0cjEgPSAwLCBhdHRyMiA9IDA7CisgICAgeG1sTm9kZVB0ciBhdHRyTm9kZTEgPSBOVUxMLCBhdHRyTm9kZTIgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY3VyLCByb290OworCisgICAgaWYgKChub2RlMSA9PSBOVUxMKSB8fCAobm9kZTIgPT0gTlVMTCkpCisJcmV0dXJuKC0yKTsKKyAgICAvKgorICAgICAqIGEgY291cGxlIG9mIG9wdGltaXphdGlvbnMgd2hpY2ggd2lsbCBhdm9pZCBjb21wdXRhdGlvbnMgaW4gbW9zdCBjYXNlcworICAgICAqLworICAgIGlmIChub2RlMSA9PSBub2RlMikJCS8qIHRyaXZpYWwgY2FzZSAqLworCXJldHVybigwKTsKKyAgICBpZiAobm9kZTEtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJYXR0cjEgPSAxOworCWF0dHJOb2RlMSA9IG5vZGUxOworCW5vZGUxID0gbm9kZTEtPnBhcmVudDsKKyAgICB9CisgICAgaWYgKG5vZGUyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCWF0dHIyID0gMTsKKwlhdHRyTm9kZTIgPSBub2RlMjsKKwlub2RlMiA9IG5vZGUyLT5wYXJlbnQ7CisgICAgfQorICAgIGlmIChub2RlMSA9PSBub2RlMikgeworCWlmIChhdHRyMSA9PSBhdHRyMikgeworCSAgICAvKiBub3QgcmVxdWlyZWQsIGJ1dCB3ZSBrZWVwIGF0dHJpYnV0ZXMgaW4gb3JkZXIgKi8KKwkgICAgaWYgKGF0dHIxICE9IDApIHsKKwkgICAgICAgIGN1ciA9IGF0dHJOb2RlMi0+cHJldjsKKwkJd2hpbGUgKGN1ciAhPSBOVUxMKSB7CisJCSAgICBpZiAoY3VyID09IGF0dHJOb2RlMSkKKwkJICAgICAgICByZXR1cm4gKDEpOworCQkgICAgY3VyID0gY3VyLT5wcmV2OworCQl9CisJCXJldHVybiAoLTEpOworCSAgICB9CisJICAgIHJldHVybigwKTsKKwl9CisJaWYgKGF0dHIyID09IDEpCisJICAgIHJldHVybigxKTsKKwlyZXR1cm4oLTEpOworICAgIH0KKyAgICBpZiAoKG5vZGUxLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgfHwKKyAgICAgICAgKG5vZGUyLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkpCisJcmV0dXJuKDEpOworICAgIGlmIChub2RlMSA9PSBub2RlMi0+cHJldikKKwlyZXR1cm4oMSk7CisgICAgaWYgKG5vZGUxID09IG5vZGUyLT5uZXh0KQorCXJldHVybigtMSk7CisKKyAgICAvKgorICAgICAqIFNwZWVkdXAgdXNpbmcgZG9jdW1lbnQgb3JkZXIgaWYgYXZhaWxibGUuCisgICAgICovCisgICAgaWYgKChub2RlMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCShub2RlMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCSgwID4gKGxvbmcpIG5vZGUxLT5jb250ZW50KSAmJgorCSgwID4gKGxvbmcpIG5vZGUyLT5jb250ZW50KSAmJgorCShub2RlMS0+ZG9jID09IG5vZGUyLT5kb2MpKSB7CisJbG9uZyBsMSwgbDI7CisKKwlsMSA9IC0oKGxvbmcpIG5vZGUxLT5jb250ZW50KTsKKwlsMiA9IC0oKGxvbmcpIG5vZGUyLT5jb250ZW50KTsKKwlpZiAobDEgPCBsMikKKwkgICAgcmV0dXJuKDEpOworCWlmIChsMSA+IGwyKQorCSAgICByZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogY29tcHV0ZSBkZXB0aCB0byByb290CisgICAgICovCisgICAgZm9yIChkZXB0aDIgPSAwLCBjdXIgPSBub2RlMjtjdXItPnBhcmVudCAhPSBOVUxMO2N1ciA9IGN1ci0+cGFyZW50KSB7CisJaWYgKGN1ciA9PSBub2RlMSkKKwkgICAgcmV0dXJuKDEpOworCWRlcHRoMisrOworICAgIH0KKyAgICByb290ID0gY3VyOworICAgIGZvciAoZGVwdGgxID0gMCwgY3VyID0gbm9kZTE7Y3VyLT5wYXJlbnQgIT0gTlVMTDtjdXIgPSBjdXItPnBhcmVudCkgeworCWlmIChjdXIgPT0gbm9kZTIpCisJICAgIHJldHVybigtMSk7CisJZGVwdGgxKys7CisgICAgfQorICAgIC8qCisgICAgICogRGlzdGluY3QgZG9jdW1lbnQgKG9yIGRpc3RpbmN0IGVudGl0aWVzIDotKCApIGNhc2UuCisgICAgICovCisgICAgaWYgKHJvb3QgIT0gY3VyKSB7CisJcmV0dXJuKC0yKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBnZXQgdGhlIG5lYXJlc3QgY29tbW9uIGFuY2VzdG9yLgorICAgICAqLworICAgIHdoaWxlIChkZXB0aDEgPiBkZXB0aDIpIHsKKwlkZXB0aDEtLTsKKwlub2RlMSA9IG5vZGUxLT5wYXJlbnQ7CisgICAgfQorICAgIHdoaWxlIChkZXB0aDIgPiBkZXB0aDEpIHsKKwlkZXB0aDItLTsKKwlub2RlMiA9IG5vZGUyLT5wYXJlbnQ7CisgICAgfQorICAgIHdoaWxlIChub2RlMS0+cGFyZW50ICE9IG5vZGUyLT5wYXJlbnQpIHsKKwlub2RlMSA9IG5vZGUxLT5wYXJlbnQ7CisJbm9kZTIgPSBub2RlMi0+cGFyZW50OworCS8qIHNob3VsZCBub3QgaGFwcGVuIGJ1dCBqdXN0IGluIGNhc2UgLi4uICovCisJaWYgKChub2RlMSA9PSBOVUxMKSB8fCAobm9kZTIgPT0gTlVMTCkpCisJICAgIHJldHVybigtMik7CisgICAgfQorICAgIC8qCisgICAgICogRmluZCB3aG8ncyBmaXJzdC4KKyAgICAgKi8KKyAgICBpZiAobm9kZTEgPT0gbm9kZTItPnByZXYpCisJcmV0dXJuKDEpOworICAgIGlmIChub2RlMSA9PSBub2RlMi0+bmV4dCkKKwlyZXR1cm4oLTEpOworICAgIC8qCisgICAgICogU3BlZWR1cCB1c2luZyBkb2N1bWVudCBvcmRlciBpZiBhdmFpbGJsZS4KKyAgICAgKi8KKyAgICBpZiAoKG5vZGUxLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJKG5vZGUyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJKDAgPiAobG9uZykgbm9kZTEtPmNvbnRlbnQpICYmCisJKDAgPiAobG9uZykgbm9kZTItPmNvbnRlbnQpICYmCisJKG5vZGUxLT5kb2MgPT0gbm9kZTItPmRvYykpIHsKKwlsb25nIGwxLCBsMjsKKworCWwxID0gLSgobG9uZykgbm9kZTEtPmNvbnRlbnQpOworCWwyID0gLSgobG9uZykgbm9kZTItPmNvbnRlbnQpOworCWlmIChsMSA8IGwyKQorCSAgICByZXR1cm4oMSk7CisJaWYgKGwxID4gbDIpCisJICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgZm9yIChjdXIgPSBub2RlMS0+bmV4dDtjdXIgIT0gTlVMTDtjdXIgPSBjdXItPm5leHQpCisJaWYgKGN1ciA9PSBub2RlMikKKwkgICAgcmV0dXJuKDEpOworICAgIHJldHVybigtMSk7IC8qIGFzc3VtZSB0aGVyZSBpcyBubyBzaWJsaW5nIGxpc3QgY29ycnVwdGlvbiAqLworfQorCisjaWZkZWYgWFBfT1BUSU1JWkVEX05PTl9FTEVNX0NPTVBBUklTT04KKy8qKgorICogeG1sWFBhdGhDbXBOb2Rlc0V4dDoKKyAqIEBub2RlMTogIHRoZSBmaXJzdCBub2RlCisgKiBAbm9kZTI6ICB0aGUgc2Vjb25kIG5vZGUKKyAqCisgKiBDb21wYXJlIHR3byBub2RlcyB3LnIudCBkb2N1bWVudCBvcmRlci4KKyAqIFRoaXMgb25lIGlzIG9wdGltaXplZCBmb3IgaGFuZGxpbmcgb2Ygbm9uLWVsZW1lbnQgbm9kZXMuCisgKgorICogUmV0dXJucyAtMiBpbiBjYXNlIG9mIGVycm9yIDEgaWYgZmlyc3QgcG9pbnQgPCBzZWNvbmQgcG9pbnQsIDAgaWYKKyAqICAgICAgICAgaXQncyB0aGUgc2FtZSBub2RlLCAtMSBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sWFBhdGhDbXBOb2Rlc0V4dCh4bWxOb2RlUHRyIG5vZGUxLCB4bWxOb2RlUHRyIG5vZGUyKSB7CisgICAgaW50IGRlcHRoMSwgZGVwdGgyOworICAgIGludCBtaXNjID0gMCwgcHJlY2VkZW5jZTEgPSAwLCBwcmVjZWRlbmNlMiA9IDA7CisgICAgeG1sTm9kZVB0ciBtaXNjTm9kZTEgPSBOVUxMLCBtaXNjTm9kZTIgPSBOVUxMOworICAgIHhtbE5vZGVQdHIgY3VyLCByb290OworICAgIGxvbmcgbDEsIGwyOworCisgICAgaWYgKChub2RlMSA9PSBOVUxMKSB8fCAobm9kZTIgPT0gTlVMTCkpCisJcmV0dXJuKC0yKTsKKworICAgIGlmIChub2RlMSA9PSBub2RlMikKKwlyZXR1cm4oMCk7CisKKyAgICAvKgorICAgICAqIGEgY291cGxlIG9mIG9wdGltaXphdGlvbnMgd2hpY2ggd2lsbCBhdm9pZCBjb21wdXRhdGlvbnMgaW4gbW9zdCBjYXNlcworICAgICAqLworICAgIHN3aXRjaCAobm9kZTEtPnR5cGUpIHsKKwljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIGlmIChub2RlMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJCWlmICgoMCA+IChsb25nKSBub2RlMS0+Y29udGVudCkgJiYgLyogVE9ETzogV291bGQgYSAhPSAwIHN1ZmZpY2UgaGVyZT8gKi8KKwkJICAgICgwID4gKGxvbmcpIG5vZGUyLT5jb250ZW50KSAmJgorCQkgICAgKG5vZGUxLT5kb2MgPT0gbm9kZTItPmRvYykpCisJCXsKKwkJICAgIGwxID0gLSgobG9uZykgbm9kZTEtPmNvbnRlbnQpOworCQkgICAgbDIgPSAtKChsb25nKSBub2RlMi0+Y29udGVudCk7CisJCSAgICBpZiAobDEgPCBsMikKKwkJCXJldHVybigxKTsKKwkJICAgIGlmIChsMSA+IGwyKQorCQkJcmV0dXJuKC0xKTsKKwkJfSBlbHNlCisJCSAgICBnb3RvIHR1cnRsZV9jb21wYXJpc29uOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICBwcmVjZWRlbmNlMSA9IDE7IC8qIGVsZW1lbnQgaXMgb3duZXIgKi8KKwkgICAgbWlzY05vZGUxID0gbm9kZTE7CisJICAgIG5vZGUxID0gbm9kZTEtPnBhcmVudDsKKwkgICAgbWlzYyA9IDE7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1RFWFRfTk9ERToKKwljYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCWNhc2UgWE1MX1BJX05PREU6IHsKKwkgICAgbWlzY05vZGUxID0gbm9kZTE7CisJICAgIC8qCisJICAgICogRmluZCBuZWFyZXN0IGVsZW1lbnQgbm9kZS4KKwkgICAgKi8KKwkgICAgaWYgKG5vZGUxLT5wcmV2ICE9IE5VTEwpIHsKKwkJZG8geworCQkgICAgbm9kZTEgPSBub2RlMS0+cHJldjsKKwkJICAgIGlmIChub2RlMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB7CisJCQlwcmVjZWRlbmNlMSA9IDM7IC8qIGVsZW1lbnQgaW4gcHJldi1zaWJsIGF4aXMgKi8KKwkJCWJyZWFrOworCQkgICAgfQorCQkgICAgaWYgKG5vZGUxLT5wcmV2ID09IE5VTEwpIHsKKwkJCXByZWNlZGVuY2UxID0gMjsgLyogZWxlbWVudCBpcyBwYXJlbnQgKi8KKwkJCS8qCisJCQkqIFVSR0VOVCBUT0RPOiBBcmUgdGhlcmUgYW55IGNhc2VzLCB3aGVyZSB0aGUKKwkJCSogcGFyZW50IG9mIHN1Y2ggYSBub2RlIGlzIG5vdCBhbiBlbGVtZW50IG5vZGU/CisJCQkqLworCQkJbm9kZTEgPSBub2RlMS0+cGFyZW50OworCQkJYnJlYWs7CisJCSAgICB9CisJCX0gd2hpbGUgKDEpOworCSAgICB9IGVsc2UgeworCQlwcmVjZWRlbmNlMSA9IDI7IC8qIGVsZW1lbnQgaXMgcGFyZW50ICovCisJCW5vZGUxID0gbm9kZTEtPnBhcmVudDsKKwkgICAgfQorCSAgICBpZiAoKG5vZGUxID09IE5VTEwpIHx8IChub2RlMS0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCQkoMCA8PSAobG9uZykgbm9kZTEtPmNvbnRlbnQpKSB7CisJCS8qCisJCSogRmFsbGJhY2sgZm9yIHdoYXRldmVyIGNhc2UuCisJCSovCisJCW5vZGUxID0gbWlzY05vZGUxOworCQlwcmVjZWRlbmNlMSA9IDA7CisJICAgIH0gZWxzZQorCQltaXNjID0gMTsKKwl9CisJICAgIGJyZWFrOworCWNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorCSAgICAvKgorCSAgICAqIFRPRE86IHdoeSBkbyB3ZSByZXR1cm4gMSBmb3IgbmFtZXNwYWNlIG5vZGVzPworCSAgICAqLworCSAgICByZXR1cm4oMSk7CisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAobm9kZTItPnR5cGUpIHsKKwljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIGJyZWFrOworCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICBwcmVjZWRlbmNlMiA9IDE7IC8qIGVsZW1lbnQgaXMgb3duZXIgKi8KKwkgICAgbWlzY05vZGUyID0gbm9kZTI7CisJICAgIG5vZGUyID0gbm9kZTItPnBhcmVudDsKKwkgICAgbWlzYyA9IDE7CisJICAgIGJyZWFrOworCWNhc2UgWE1MX1RFWFRfTk9ERToKKwljYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCWNhc2UgWE1MX1BJX05PREU6IHsKKwkgICAgbWlzY05vZGUyID0gbm9kZTI7CisJICAgIGlmIChub2RlMi0+cHJldiAhPSBOVUxMKSB7CisJCWRvIHsKKwkJICAgIG5vZGUyID0gbm9kZTItPnByZXY7CisJCSAgICBpZiAobm9kZTItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCQkJcHJlY2VkZW5jZTIgPSAzOyAvKiBlbGVtZW50IGluIHByZXYtc2libCBheGlzICovCisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIGlmIChub2RlMi0+cHJldiA9PSBOVUxMKSB7CisJCQlwcmVjZWRlbmNlMiA9IDI7IC8qIGVsZW1lbnQgaXMgcGFyZW50ICovCisJCQlub2RlMiA9IG5vZGUyLT5wYXJlbnQ7CisJCQlicmVhazsKKwkJICAgIH0KKwkJfSB3aGlsZSAoMSk7CisJICAgIH0gZWxzZSB7CisJCXByZWNlZGVuY2UyID0gMjsgLyogZWxlbWVudCBpcyBwYXJlbnQgKi8KKwkJbm9kZTIgPSBub2RlMi0+cGFyZW50OworCSAgICB9CisJICAgIGlmICgobm9kZTIgPT0gTlVMTCkgfHwgKG5vZGUyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpIHx8CisJCSgwIDw9IChsb25nKSBub2RlMS0+Y29udGVudCkpCisJICAgIHsKKwkJbm9kZTIgPSBtaXNjTm9kZTI7CisJCXByZWNlZGVuY2UyID0gMDsKKwkgICAgfSBlbHNlCisJCW1pc2MgPSAxOworCX0KKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJICAgIHJldHVybigxKTsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICB9CisgICAgaWYgKG1pc2MpIHsKKwlpZiAobm9kZTEgPT0gbm9kZTIpIHsKKwkgICAgaWYgKHByZWNlZGVuY2UxID09IHByZWNlZGVuY2UyKSB7CisJCS8qCisJCSogVGhlIHVnbHkgY2FzZTsgYnV0IG5vcm1hbGx5IHRoZXJlIGFyZW4ndCBtYW55CisJCSogYWRqYWNlbnQgbm9uLWVsZW1lbnQgbm9kZXMgYXJvdW5kLgorCQkqLworCQljdXIgPSBtaXNjTm9kZTItPnByZXY7CisJCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCQkgICAgaWYgKGN1ciA9PSBtaXNjTm9kZTEpCisJCQlyZXR1cm4oMSk7CisJCSAgICBpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpCisJCQlyZXR1cm4oLTEpOworCQkgICAgY3VyID0gY3VyLT5wcmV2OworCQl9CisJCXJldHVybiAoLTEpOworCSAgICB9IGVsc2UgeworCQkvKgorCQkqIEV2YWx1YXRlIGJhc2VkIG9uIGhpZ2hlciBwcmVjZWRlbmNlIHdydCB0byB0aGUgZWxlbWVudC4KKwkJKiBUT0RPOiBUaGlzIGFzc3VtZXMgYXR0cmlidXRlcyBhcmUgc29ydGVkIGJlZm9yZSBjb250ZW50LgorCQkqICAgSXMgdGhpcyAxMDAlIGNvcnJlY3Q/CisJCSovCisJCWlmIChwcmVjZWRlbmNlMSA8IHByZWNlZGVuY2UyKQorCQkgICAgcmV0dXJuKDEpOworCQllbHNlCisJCSAgICByZXR1cm4oLTEpOworCSAgICB9CisJfQorCS8qCisJKiBTcGVjaWFsIGNhc2U6IE9uZSBvZiB0aGUgaGVscGVyLWVsZW1lbnRzIGlzIGNvbnRhaW5lZCBieSB0aGUgb3RoZXIuCisJKiA8Zm9vPgorCSogICA8bm9kZTI+CisJKiAgICAgPG5vZGUxPlRleHQtMShwcmVjZWRlbmNlMSA9PSAyKTwvbm9kZTE+CisJKiAgIDwvbm9kZTI+CisJKiAgIFRleHQtNihwcmVjZWRlbmNlMiA9PSAzKQorCSogPC9mb28+CisJKi8KKwlpZiAoKHByZWNlZGVuY2UyID09IDMpICYmIChwcmVjZWRlbmNlMSA+IDEpKSB7CisJICAgIGN1ciA9IG5vZGUxLT5wYXJlbnQ7CisJICAgIHdoaWxlIChjdXIpIHsKKwkJaWYgKGN1ciA9PSBub2RlMikKKwkJICAgIHJldHVybigxKTsKKwkJY3VyID0gY3VyLT5wYXJlbnQ7CisJICAgIH0KKwl9CisJaWYgKChwcmVjZWRlbmNlMSA9PSAzKSAmJiAocHJlY2VkZW5jZTIgPiAxKSkgeworCSAgICBjdXIgPSBub2RlMi0+cGFyZW50OworCSAgICB3aGlsZSAoY3VyKSB7CisJCWlmIChjdXIgPT0gbm9kZTEpCisJCSAgICByZXR1cm4oLTEpOworCQljdXIgPSBjdXItPnBhcmVudDsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFNwZWVkdXAgdXNpbmcgZG9jdW1lbnQgb3JkZXIgaWYgYXZhaWxibGUuCisgICAgICovCisgICAgaWYgKChub2RlMS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCShub2RlMi0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCSgwID4gKGxvbmcpIG5vZGUxLT5jb250ZW50KSAmJgorCSgwID4gKGxvbmcpIG5vZGUyLT5jb250ZW50KSAmJgorCShub2RlMS0+ZG9jID09IG5vZGUyLT5kb2MpKSB7CisKKwlsMSA9IC0oKGxvbmcpIG5vZGUxLT5jb250ZW50KTsKKwlsMiA9IC0oKGxvbmcpIG5vZGUyLT5jb250ZW50KTsKKwlpZiAobDEgPCBsMikKKwkgICAgcmV0dXJuKDEpOworCWlmIChsMSA+IGwyKQorCSAgICByZXR1cm4oLTEpOworICAgIH0KKwordHVydGxlX2NvbXBhcmlzb246CisKKyAgICBpZiAobm9kZTEgPT0gbm9kZTItPnByZXYpCisJcmV0dXJuKDEpOworICAgIGlmIChub2RlMSA9PSBub2RlMi0+bmV4dCkKKwlyZXR1cm4oLTEpOworICAgIC8qCisgICAgICogY29tcHV0ZSBkZXB0aCB0byByb290CisgICAgICovCisgICAgZm9yIChkZXB0aDIgPSAwLCBjdXIgPSBub2RlMjtjdXItPnBhcmVudCAhPSBOVUxMO2N1ciA9IGN1ci0+cGFyZW50KSB7CisJaWYgKGN1ciA9PSBub2RlMSkKKwkgICAgcmV0dXJuKDEpOworCWRlcHRoMisrOworICAgIH0KKyAgICByb290ID0gY3VyOworICAgIGZvciAoZGVwdGgxID0gMCwgY3VyID0gbm9kZTE7Y3VyLT5wYXJlbnQgIT0gTlVMTDtjdXIgPSBjdXItPnBhcmVudCkgeworCWlmIChjdXIgPT0gbm9kZTIpCisJICAgIHJldHVybigtMSk7CisJZGVwdGgxKys7CisgICAgfQorICAgIC8qCisgICAgICogRGlzdGluY3QgZG9jdW1lbnQgKG9yIGRpc3RpbmN0IGVudGl0aWVzIDotKCApIGNhc2UuCisgICAgICovCisgICAgaWYgKHJvb3QgIT0gY3VyKSB7CisJcmV0dXJuKC0yKTsKKyAgICB9CisgICAgLyoKKyAgICAgKiBnZXQgdGhlIG5lYXJlc3QgY29tbW9uIGFuY2VzdG9yLgorICAgICAqLworICAgIHdoaWxlIChkZXB0aDEgPiBkZXB0aDIpIHsKKwlkZXB0aDEtLTsKKwlub2RlMSA9IG5vZGUxLT5wYXJlbnQ7CisgICAgfQorICAgIHdoaWxlIChkZXB0aDIgPiBkZXB0aDEpIHsKKwlkZXB0aDItLTsKKwlub2RlMiA9IG5vZGUyLT5wYXJlbnQ7CisgICAgfQorICAgIHdoaWxlIChub2RlMS0+cGFyZW50ICE9IG5vZGUyLT5wYXJlbnQpIHsKKwlub2RlMSA9IG5vZGUxLT5wYXJlbnQ7CisJbm9kZTIgPSBub2RlMi0+cGFyZW50OworCS8qIHNob3VsZCBub3QgaGFwcGVuIGJ1dCBqdXN0IGluIGNhc2UgLi4uICovCisJaWYgKChub2RlMSA9PSBOVUxMKSB8fCAobm9kZTIgPT0gTlVMTCkpCisJICAgIHJldHVybigtMik7CisgICAgfQorICAgIC8qCisgICAgICogRmluZCB3aG8ncyBmaXJzdC4KKyAgICAgKi8KKyAgICBpZiAobm9kZTEgPT0gbm9kZTItPnByZXYpCisJcmV0dXJuKDEpOworICAgIGlmIChub2RlMSA9PSBub2RlMi0+bmV4dCkKKwlyZXR1cm4oLTEpOworICAgIC8qCisgICAgICogU3BlZWR1cCB1c2luZyBkb2N1bWVudCBvcmRlciBpZiBhdmFpbGJsZS4KKyAgICAgKi8KKyAgICBpZiAoKG5vZGUxLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJKG5vZGUyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJKDAgPiAobG9uZykgbm9kZTEtPmNvbnRlbnQpICYmCisJKDAgPiAobG9uZykgbm9kZTItPmNvbnRlbnQpICYmCisJKG5vZGUxLT5kb2MgPT0gbm9kZTItPmRvYykpIHsKKworCWwxID0gLSgobG9uZykgbm9kZTEtPmNvbnRlbnQpOworCWwyID0gLSgobG9uZykgbm9kZTItPmNvbnRlbnQpOworCWlmIChsMSA8IGwyKQorCSAgICByZXR1cm4oMSk7CisJaWYgKGwxID4gbDIpCisJICAgIHJldHVybigtMSk7CisgICAgfQorCisgICAgZm9yIChjdXIgPSBub2RlMS0+bmV4dDtjdXIgIT0gTlVMTDtjdXIgPSBjdXItPm5leHQpCisJaWYgKGN1ciA9PSBub2RlMikKKwkgICAgcmV0dXJuKDEpOworICAgIHJldHVybigtMSk7IC8qIGFzc3VtZSB0aGVyZSBpcyBubyBzaWJsaW5nIGxpc3QgY29ycnVwdGlvbiAqLworfQorI2VuZGlmIC8qIFhQX09QVElNSVpFRF9OT05fRUxFTV9DT01QQVJJU09OICovCisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0U29ydDoKKyAqIEBzZXQ6ICB0aGUgbm9kZSBzZXQKKyAqCisgKiBTb3J0IHRoZSBub2RlIHNldCBpbiBkb2N1bWVudCBvcmRlcgorICovCit2b2lkCit4bWxYUGF0aE5vZGVTZXRTb3J0KHhtbE5vZGVTZXRQdHIgc2V0KSB7CisgICAgaW50IGksIGosIGluY3IsIGxlbjsKKyAgICB4bWxOb2RlUHRyIHRtcDsKKworICAgIGlmIChzZXQgPT0gTlVMTCkKKwlyZXR1cm47CisKKyAgICAvKiBVc2UgU2hlbGwncyBzb3J0IHRvIHNvcnQgdGhlIG5vZGUtc2V0ICovCisgICAgbGVuID0gc2V0LT5ub2RlTnI7CisgICAgZm9yIChpbmNyID0gbGVuIC8gMjsgaW5jciA+IDA7IGluY3IgLz0gMikgeworCWZvciAoaSA9IGluY3I7IGkgPCBsZW47IGkrKykgeworCSAgICBqID0gaSAtIGluY3I7CisJICAgIHdoaWxlIChqID49IDApIHsKKyNpZmRlZiBYUF9PUFRJTUlaRURfTk9OX0VMRU1fQ09NUEFSSVNPTgorCQlpZiAoeG1sWFBhdGhDbXBOb2Rlc0V4dChzZXQtPm5vZGVUYWJbal0sCisJCQlzZXQtPm5vZGVUYWJbaiArIGluY3JdKSA9PSAtMSkKKyNlbHNlCisJCWlmICh4bWxYUGF0aENtcE5vZGVzKHNldC0+bm9kZVRhYltqXSwKKwkJCXNldC0+bm9kZVRhYltqICsgaW5jcl0pID09IC0xKQorI2VuZGlmCisJCXsKKwkJICAgIHRtcCA9IHNldC0+bm9kZVRhYltqXTsKKwkJICAgIHNldC0+bm9kZVRhYltqXSA9IHNldC0+bm9kZVRhYltqICsgaW5jcl07CisJCSAgICBzZXQtPm5vZGVUYWJbaiArIGluY3JdID0gdG1wOworCQkgICAgaiAtPSBpbmNyOworCQl9IGVsc2UKKwkJICAgIGJyZWFrOworCSAgICB9CisJfQorICAgIH0KK30KKworI2RlZmluZSBYTUxfTk9ERVNFVF9ERUZBVUxUCTEwCisvKioKKyAqIHhtbFhQYXRoTm9kZVNldER1cE5zOgorICogQG5vZGU6ICB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIG5hbWVzcGFjZSBYUGF0aCBub2RlCisgKiBAbnM6ICB0aGUgbGlieG1sIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBub2RlLgorICoKKyAqIE5hbWVzcGFjZSBub2RlIGluIGxpYnhtbCBkb24ndCBtYXRjaCB0aGUgWFBhdGggc2VtYW50aWMuIEluIGEgbm9kZSBzZXQKKyAqIHRoZSBuYW1lc3BhY2Ugbm9kZXMgYXJlIGR1cGxpY2F0ZWQgYW5kIHRoZSBuZXh0IHBvaW50ZXIgaXMgc2V0IHRvIHRoZQorICogcGFyZW50IG5vZGUgaW4gdGhlIFhQYXRoIHNlbWFudGljLgorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCitzdGF0aWMgeG1sTm9kZVB0cgoreG1sWFBhdGhOb2RlU2V0RHVwTnMoeG1sTm9kZVB0ciBub2RlLCB4bWxOc1B0ciBucykgeworICAgIHhtbE5zUHRyIGN1cjsKKworICAgIGlmICgobnMgPT0gTlVMTCkgfHwgKG5zLT50eXBlICE9IFhNTF9OQU1FU1BBQ0VfREVDTCkpCisJcmV0dXJuKE5VTEwpOworICAgIGlmICgobm9kZSA9PSBOVUxMKSB8fCAobm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCXJldHVybigoeG1sTm9kZVB0cikgbnMpOworCisgICAgLyoKKyAgICAgKiBBbGxvY2F0ZSBhIG5ldyBOYW1lc3BhY2UgYW5kIGZpbGwgdGhlIGZpZWxkcy4KKyAgICAgKi8KKyAgICBjdXIgPSAoeG1sTnNQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTnMpKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImR1cGxpY2F0aW5nIG5hbWVzcGFjZVxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQoY3VyLCAwLCBzaXplb2YoeG1sTnMpKTsKKyAgICBjdXItPnR5cGUgPSBYTUxfTkFNRVNQQUNFX0RFQ0w7CisgICAgaWYgKG5zLT5ocmVmICE9IE5VTEwpCisJY3VyLT5ocmVmID0geG1sU3RyZHVwKG5zLT5ocmVmKTsKKyAgICBpZiAobnMtPnByZWZpeCAhPSBOVUxMKQorCWN1ci0+cHJlZml4ID0geG1sU3RyZHVwKG5zLT5wcmVmaXgpOworICAgIGN1ci0+bmV4dCA9ICh4bWxOc1B0cikgbm9kZTsKKyAgICByZXR1cm4oKHhtbE5vZGVQdHIpIGN1cik7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0RnJlZU5zOgorICogQG5zOiAgdGhlIFhQYXRoIG5hbWVzcGFjZSBub2RlIGZvdW5kIGluIGEgbm9kZXNldC4KKyAqCisgKiBOYW1lc3BhY2Ugbm9kZXMgaW4gbGlieG1sIGRvbid0IG1hdGNoIHRoZSBYUGF0aCBzZW1hbnRpYy4gSW4gYSBub2RlIHNldAorICogdGhlIG5hbWVzcGFjZSBub2RlcyBhcmUgZHVwbGljYXRlZCBhbmQgdGhlIG5leHQgcG9pbnRlciBpcyBzZXQgdG8gdGhlCisgKiBwYXJlbnQgbm9kZSBpbiB0aGUgWFBhdGggc2VtYW50aWMuIENoZWNrIGlmIHN1Y2ggYSBub2RlIG5lZWRzIHRvIGJlIGZyZWVkCisgKi8KK3ZvaWQKK3htbFhQYXRoTm9kZVNldEZyZWVOcyh4bWxOc1B0ciBucykgeworICAgIGlmICgobnMgPT0gTlVMTCkgfHwgKG5zLT50eXBlICE9IFhNTF9OQU1FU1BBQ0VfREVDTCkpCisJcmV0dXJuOworCisgICAgaWYgKChucy0+bmV4dCAhPSBOVUxMKSAmJiAobnMtPm5leHQtPnR5cGUgIT0gWE1MX05BTUVTUEFDRV9ERUNMKSkgeworCWlmIChucy0+aHJlZiAhPSBOVUxMKQorCSAgICB4bWxGcmVlKCh4bWxDaGFyICopbnMtPmhyZWYpOworCWlmIChucy0+cHJlZml4ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoKHhtbENoYXIgKilucy0+cHJlZml4KTsKKwl4bWxGcmVlKG5zKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0Q3JlYXRlOgorICogQHZhbDogIGFuIGluaXRpYWwgeG1sTm9kZVB0ciwgb3IgTlVMTAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxOb2RlU2V0UHRyIG9mIHR5cGUgZG91YmxlIGFuZCBvZiB2YWx1ZSBAdmFsCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgKi8KK3htbE5vZGVTZXRQdHIKK3htbFhQYXRoTm9kZVNldENyZWF0ZSh4bWxOb2RlUHRyIHZhbCkgeworICAgIHhtbE5vZGVTZXRQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbE5vZGVTZXRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sTm9kZVNldCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgbm9kZXNldFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbE5vZGVTZXQpKTsKKyAgICBpZiAodmFsICE9IE5VTEwpIHsKKyAgICAgICAgcmV0LT5ub2RlVGFiID0gKHhtbE5vZGVQdHIgKikgeG1sTWFsbG9jKFhNTF9OT0RFU0VUX0RFRkFVTFQgKgorCQkJCQkgICAgIHNpemVvZih4bWxOb2RlUHRyKSk7CisJaWYgKHJldC0+bm9kZVRhYiA9PSBOVUxMKSB7CisJICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJjcmVhdGluZyBub2Rlc2V0XG4iKTsKKwkgICAgeG1sRnJlZShyZXQpOworCSAgICByZXR1cm4oTlVMTCk7CisJfQorCW1lbXNldChyZXQtPm5vZGVUYWIsIDAgLAorCSAgICAgICBYTUxfTk9ERVNFVF9ERUZBVUxUICogKHNpemVfdCkgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKyAgICAgICAgcmV0LT5ub2RlTWF4ID0gWE1MX05PREVTRVRfREVGQVVMVDsKKwlpZiAodmFsLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCSAgICB4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgdmFsOworCisJICAgIHJldC0+bm9kZVRhYltyZXQtPm5vZGVOcisrXSA9CisJCXhtbFhQYXRoTm9kZVNldER1cE5zKCh4bWxOb2RlUHRyKSBucy0+bmV4dCwgbnMpOworCX0gZWxzZQorCSAgICByZXQtPm5vZGVUYWJbcmV0LT5ub2RlTnIrK10gPSB2YWw7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTm9kZVNldENyZWF0ZVNpemU6CisgKiBAc2l6ZTogIHRoZSBpbml0aWFsIHNpemUgb2YgdGhlIHNldAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxOb2RlU2V0UHRyIG9mIHR5cGUgZG91YmxlIGFuZCBvZiB2YWx1ZSBAdmFsCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgKi8KK3N0YXRpYyB4bWxOb2RlU2V0UHRyCit4bWxYUGF0aE5vZGVTZXRDcmVhdGVTaXplKGludCBzaXplKSB7CisgICAgeG1sTm9kZVNldFB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sTm9kZVNldFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxOb2RlU2V0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJjcmVhdGluZyBub2Rlc2V0XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sTm9kZVNldCkpOworICAgIGlmIChzaXplIDwgWE1MX05PREVTRVRfREVGQVVMVCkKKwlzaXplID0gWE1MX05PREVTRVRfREVGQVVMVDsKKyAgICByZXQtPm5vZGVUYWIgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2Moc2l6ZSAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisgICAgaWYgKHJldC0+bm9kZVRhYiA9PSBOVUxMKSB7CisJeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImNyZWF0aW5nIG5vZGVzZXRcbiIpOworCXhtbEZyZWUocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQtPm5vZGVUYWIsIDAgLCBzaXplICogKHNpemVfdCkgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKyAgICByZXQtPm5vZGVNYXggPSBzaXplOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTm9kZVNldENvbnRhaW5zOgorICogQGN1cjogIHRoZSBub2RlLXNldAorICogQHZhbDogIHRoZSBub2RlCisgKgorICogY2hlY2tzIHdoZXRoZXIgQGN1ciBjb250YWlucyBAdmFsCisgKgorICogUmV0dXJucyB0cnVlICgxKSBpZiBAY3VyIGNvbnRhaW5zIEB2YWwsIGZhbHNlICgwKSBvdGhlcndpc2UKKyAqLworaW50Cit4bWxYUGF0aE5vZGVTZXRDb250YWlucyAoeG1sTm9kZVNldFB0ciBjdXIsIHhtbE5vZGVQdHIgdmFsKSB7CisgICAgaW50IGk7CisKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAodmFsID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgaWYgKHZhbC0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwlmb3IgKGkgPSAwOyBpIDwgY3VyLT5ub2RlTnI7IGkrKykgeworCSAgICBpZiAoY3VyLT5ub2RlVGFiW2ldLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCQl4bWxOc1B0ciBuczEsIG5zMjsKKworCQluczEgPSAoeG1sTnNQdHIpIHZhbDsKKwkJbnMyID0gKHhtbE5zUHRyKSBjdXItPm5vZGVUYWJbaV07CisJCWlmIChuczEgPT0gbnMyKQorCQkgICAgcmV0dXJuKDEpOworCQlpZiAoKG5zMS0+bmV4dCAhPSBOVUxMKSAmJiAobnMyLT5uZXh0ID09IG5zMS0+bmV4dCkgJiYKKwkgICAgICAgICAgICAoeG1sU3RyRXF1YWwobnMxLT5wcmVmaXgsIG5zMi0+cHJlZml4KSkpCisJCSAgICByZXR1cm4oMSk7CisJICAgIH0KKwl9CisgICAgfSBlbHNlIHsKKwlmb3IgKGkgPSAwOyBpIDwgY3VyLT5ub2RlTnI7IGkrKykgeworCSAgICBpZiAoY3VyLT5ub2RlVGFiW2ldID09IHZhbCkKKwkJcmV0dXJuKDEpOworCX0KKyAgICB9CisgICAgcmV0dXJuKDApOworfQorCisvKioKKyAqIHhtbFhQYXRoTm9kZVNldEFkZE5zOgorICogQGN1cjogIHRoZSBpbml0aWFsIG5vZGUgc2V0CisgKiBAbm9kZTogIHRoZSBob3N0aW5nIG5vZGUKKyAqIEBuczogIGEgdGhlIG5hbWVzcGFjZSBub2RlCisgKgorICogYWRkIGEgbmV3IG5hbWVzcGFjZSBub2RlIHRvIGFuIGV4aXN0aW5nIE5vZGVTZXQKKyAqLwordm9pZAoreG1sWFBhdGhOb2RlU2V0QWRkTnMoeG1sTm9kZVNldFB0ciBjdXIsIHhtbE5vZGVQdHIgbm9kZSwgeG1sTnNQdHIgbnMpIHsKKyAgICBpbnQgaTsKKworCisgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKG5zID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpIHx8CisgICAgICAgIChucy0+dHlwZSAhPSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHx8CisJKG5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkpCisJcmV0dXJuOworCisgICAgLyogQEAgd2l0aF9ucyB0byBjaGVjayB3aGV0aGVyIG5hbWVzcGFjZSBub2RlcyBzaG91bGQgYmUgbG9va2VkIGF0IEBAICovCisgICAgLyoKKyAgICAgKiBwcmV2ZW50IGR1cGxpY2F0ZXMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCBjdXItPm5vZGVOcjtpKyspIHsKKyAgICAgICAgaWYgKChjdXItPm5vZGVUYWJbaV0gIT0gTlVMTCkgJiYKKwkgICAgKGN1ci0+bm9kZVRhYltpXS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpICYmCisJICAgICgoKHhtbE5zUHRyKWN1ci0+bm9kZVRhYltpXSktPm5leHQgPT0gKHhtbE5zUHRyKSBub2RlKSAmJgorCSAgICAoeG1sU3RyRXF1YWwobnMtPnByZWZpeCwgKCh4bWxOc1B0ciljdXItPm5vZGVUYWJbaV0pLT5wcmVmaXgpKSkKKwkgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogZ3JvdyB0aGUgbm9kZVRhYiBpZiBuZWVkZWQKKyAgICAgKi8KKyAgICBpZiAoY3VyLT5ub2RlTWF4ID09IDApIHsKKyAgICAgICAgY3VyLT5ub2RlVGFiID0gKHhtbE5vZGVQdHIgKikgeG1sTWFsbG9jKFhNTF9OT0RFU0VUX0RFRkFVTFQgKgorCQkJCQkgICAgIHNpemVvZih4bWxOb2RlUHRyKSk7CisJaWYgKGN1ci0+bm9kZVRhYiA9PSBOVUxMKSB7CisJICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJncm93aW5nIG5vZGVzZXRcbiIpOworCSAgICByZXR1cm47CisJfQorCW1lbXNldChjdXItPm5vZGVUYWIsIDAgLAorCSAgICAgICBYTUxfTk9ERVNFVF9ERUZBVUxUICogKHNpemVfdCkgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKyAgICAgICAgY3VyLT5ub2RlTWF4ID0gWE1MX05PREVTRVRfREVGQVVMVDsKKyAgICB9IGVsc2UgaWYgKGN1ci0+bm9kZU5yID09IGN1ci0+bm9kZU1heCkgeworICAgICAgICB4bWxOb2RlUHRyICp0ZW1wOworCisgICAgICAgIGN1ci0+bm9kZU1heCAqPSAyOworCXRlbXAgPSAoeG1sTm9kZVB0ciAqKSB4bWxSZWFsbG9jKGN1ci0+bm9kZVRhYiwgY3VyLT5ub2RlTWF4ICoKKwkJCQkgICAgICBzaXplb2YoeG1sTm9kZVB0cikpOworCWlmICh0ZW1wID09IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImdyb3dpbmcgbm9kZXNldFxuIik7CisJICAgIHJldHVybjsKKwl9CisJY3VyLT5ub2RlVGFiID0gdGVtcDsKKyAgICB9CisgICAgY3VyLT5ub2RlVGFiW2N1ci0+bm9kZU5yKytdID0geG1sWFBhdGhOb2RlU2V0RHVwTnMobm9kZSwgbnMpOworfQorCisvKioKKyAqIHhtbFhQYXRoTm9kZVNldEFkZDoKKyAqIEBjdXI6ICB0aGUgaW5pdGlhbCBub2RlIHNldAorICogQHZhbDogIGEgbmV3IHhtbE5vZGVQdHIKKyAqCisgKiBhZGQgYSBuZXcgeG1sTm9kZVB0ciB0byBhbiBleGlzdGluZyBOb2RlU2V0CisgKi8KK3ZvaWQKK3htbFhQYXRoTm9kZVNldEFkZCh4bWxOb2RlU2V0UHRyIGN1ciwgeG1sTm9kZVB0ciB2YWwpIHsKKyAgICBpbnQgaTsKKworICAgIGlmICgoY3VyID09IE5VTEwpIHx8ICh2YWwgPT0gTlVMTCkpIHJldHVybjsKKworI2lmIDAKKyAgICBpZiAoKHZhbC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAodmFsLT5uYW1lWzBdID09ICcgJykpCisJcmV0dXJuOwkvKiBhbiBYU0xUIGZha2Ugbm9kZSAqLworI2VuZGlmCisKKyAgICAvKiBAQCB3aXRoX25zIHRvIGNoZWNrIHdoZXRoZXIgbmFtZXNwYWNlIG5vZGVzIHNob3VsZCBiZSBsb29rZWQgYXQgQEAgKi8KKyAgICAvKgorICAgICAqIHByZXZlbnQgZHVwbGNhdGVzCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgY3VyLT5ub2RlTnI7aSsrKQorICAgICAgICBpZiAoY3VyLT5ub2RlVGFiW2ldID09IHZhbCkgcmV0dXJuOworCisgICAgLyoKKyAgICAgKiBncm93IHRoZSBub2RlVGFiIGlmIG5lZWRlZAorICAgICAqLworICAgIGlmIChjdXItPm5vZGVNYXggPT0gMCkgeworICAgICAgICBjdXItPm5vZGVUYWIgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MoWE1MX05PREVTRVRfREVGQVVMVCAqCisJCQkJCSAgICAgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKwlpZiAoY3VyLT5ub2RlVGFiID09IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImdyb3dpbmcgbm9kZXNldFxuIik7CisJICAgIHJldHVybjsKKwl9CisJbWVtc2V0KGN1ci0+bm9kZVRhYiwgMCAsCisJICAgICAgIFhNTF9OT0RFU0VUX0RFRkFVTFQgKiAoc2l6ZV90KSBzaXplb2YoeG1sTm9kZVB0cikpOworICAgICAgICBjdXItPm5vZGVNYXggPSBYTUxfTk9ERVNFVF9ERUZBVUxUOworICAgIH0gZWxzZSBpZiAoY3VyLT5ub2RlTnIgPT0gY3VyLT5ub2RlTWF4KSB7CisgICAgICAgIHhtbE5vZGVQdHIgKnRlbXA7CisKKyAgICAgICAgY3VyLT5ub2RlTWF4ICo9IDI7CisJdGVtcCA9ICh4bWxOb2RlUHRyICopIHhtbFJlYWxsb2MoY3VyLT5ub2RlVGFiLCBjdXItPm5vZGVNYXggKgorCQkJCSAgICAgIHNpemVvZih4bWxOb2RlUHRyKSk7CisJaWYgKHRlbXAgPT0gTlVMTCkgeworCSAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiZ3Jvd2luZyBub2Rlc2V0XG4iKTsKKwkgICAgcmV0dXJuOworCX0KKwljdXItPm5vZGVUYWIgPSB0ZW1wOworICAgIH0KKyAgICBpZiAodmFsLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCXhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSB2YWw7CisKKwljdXItPm5vZGVUYWJbY3VyLT5ub2RlTnIrK10gPQorCSAgICB4bWxYUGF0aE5vZGVTZXREdXBOcygoeG1sTm9kZVB0cikgbnMtPm5leHQsIG5zKTsKKyAgICB9IGVsc2UKKwljdXItPm5vZGVUYWJbY3VyLT5ub2RlTnIrK10gPSB2YWw7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlOgorICogQGN1cjogIHRoZSBpbml0aWFsIG5vZGUgc2V0CisgKiBAdmFsOiAgYSBuZXcgeG1sTm9kZVB0cgorICoKKyAqIGFkZCBhIG5ldyB4bWxOb2RlUHRyIHRvIGFuIGV4aXN0aW5nIE5vZGVTZXQsIG9wdGltaXplZCB2ZXJzaW9uCisgKiB3aGVuIHdlIGFyZSBzdXJlIHRoZSBub2RlIGlzIG5vdCBhbHJlYWR5IGluIHRoZSBzZXQuCisgKi8KK3ZvaWQKK3htbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSh4bWxOb2RlU2V0UHRyIGN1ciwgeG1sTm9kZVB0ciB2YWwpIHsKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAodmFsID09IE5VTEwpKSByZXR1cm47CisKKyNpZiAwCisgICAgaWYgKCh2YWwtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYgKHZhbC0+bmFtZVswXSA9PSAnICcpKQorCXJldHVybjsJLyogYW4gWFNMVCBmYWtlIG5vZGUgKi8KKyNlbmRpZgorCisgICAgLyogQEAgd2l0aF9ucyB0byBjaGVjayB3aGV0aGVyIG5hbWVzcGFjZSBub2RlcyBzaG91bGQgYmUgbG9va2VkIGF0IEBAICovCisgICAgLyoKKyAgICAgKiBncm93IHRoZSBub2RlVGFiIGlmIG5lZWRlZAorICAgICAqLworICAgIGlmIChjdXItPm5vZGVNYXggPT0gMCkgeworICAgICAgICBjdXItPm5vZGVUYWIgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MoWE1MX05PREVTRVRfREVGQVVMVCAqCisJCQkJCSAgICAgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKwlpZiAoY3VyLT5ub2RlVGFiID09IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImdyb3dpbmcgbm9kZXNldFxuIik7CisJICAgIHJldHVybjsKKwl9CisJbWVtc2V0KGN1ci0+bm9kZVRhYiwgMCAsCisJICAgICAgIFhNTF9OT0RFU0VUX0RFRkFVTFQgKiAoc2l6ZV90KSBzaXplb2YoeG1sTm9kZVB0cikpOworICAgICAgICBjdXItPm5vZGVNYXggPSBYTUxfTk9ERVNFVF9ERUZBVUxUOworICAgIH0gZWxzZSBpZiAoY3VyLT5ub2RlTnIgPT0gY3VyLT5ub2RlTWF4KSB7CisgICAgICAgIHhtbE5vZGVQdHIgKnRlbXA7CisKKyAgICAgICAgY3VyLT5ub2RlTWF4ICo9IDI7CisJdGVtcCA9ICh4bWxOb2RlUHRyICopIHhtbFJlYWxsb2MoY3VyLT5ub2RlVGFiLCBjdXItPm5vZGVNYXggKgorCQkJCSAgICAgIHNpemVvZih4bWxOb2RlUHRyKSk7CisJaWYgKHRlbXAgPT0gTlVMTCkgeworCSAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiZ3Jvd2luZyBub2Rlc2V0XG4iKTsKKwkgICAgcmV0dXJuOworCX0KKwljdXItPm5vZGVUYWIgPSB0ZW1wOworICAgIH0KKyAgICBpZiAodmFsLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCXhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSB2YWw7CisKKwljdXItPm5vZGVUYWJbY3VyLT5ub2RlTnIrK10gPQorCSAgICB4bWxYUGF0aE5vZGVTZXREdXBOcygoeG1sTm9kZVB0cikgbnMtPm5leHQsIG5zKTsKKyAgICB9IGVsc2UKKwljdXItPm5vZGVUYWJbY3VyLT5ub2RlTnIrK10gPSB2YWw7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0TWVyZ2U6CisgKiBAdmFsMTogIHRoZSBmaXJzdCBOb2RlU2V0IG9yIE5VTEwKKyAqIEB2YWwyOiAgdGhlIHNlY29uZCBOb2RlU2V0CisgKgorICogTWVyZ2VzIHR3byBub2Rlc2V0cywgYWxsIG5vZGVzIGZyb20gQHZhbDIgYXJlIGFkZGVkIHRvIEB2YWwxCisgKiBpZiBAdmFsMSBpcyBOVUxMLCBhIG5ldyBzZXQgaXMgY3JlYXRlZCBhbmQgY29waWVkIGZyb20gQHZhbDIKKyAqCisgKiBSZXR1cm5zIEB2YWwxIG9uY2UgZXh0ZW5kZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCit4bWxOb2RlU2V0UHRyCit4bWxYUGF0aE5vZGVTZXRNZXJnZSh4bWxOb2RlU2V0UHRyIHZhbDEsIHhtbE5vZGVTZXRQdHIgdmFsMikgeworICAgIGludCBpLCBqLCBpbml0TnIsIHNraXA7CisgICAgeG1sTm9kZVB0ciBuMSwgbjI7CisKKyAgICBpZiAodmFsMiA9PSBOVUxMKSByZXR1cm4odmFsMSk7CisgICAgaWYgKHZhbDEgPT0gTlVMTCkgeworCXZhbDEgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGUoTlVMTCk7CisgICAgaWYgKHZhbDEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyNpZiAwCisJLyoKKwkqIFRPRE86IFRoZSBvcHRpbWl6YXRpb24gd29uJ3Qgd29yayBpbiBldmVyeSBjYXNlLCBzaW5jZQorCSogIHRob3NlIG5hc3R5IG5hbWVzcGFjZSBub2RlcyBuZWVkIHRvIGJlIGFkZGVkIHdpdGgKKwkqICB4bWxYUGF0aE5vZGVTZXREdXBOcygpIHRvIHRoZSBzZXQ7IHRodXMgYSBwdXJlCisJKiAgbWVtY3B5IGlzIG5vdCBwb3NzaWJsZS4KKwkqICBJZiB0aGVyZSB3YXMgYSBmbGFnIG9uIHRoZSBub2Rlc2V0dmFsLCBpbmRpY2F0aW5nIHRoYXQKKwkqICBzb21lIHRlbXBvcmFyeSBub2RlcyBhcmUgaW4sIHRoYXQgd291bGQgYmUgaGVscGZ1bGwuCisJKi8KKwkvKgorCSogT3B0aW1pemF0aW9uOiBDcmVhdGUgYW4gZXF1YWxseSBzaXplZCBub2RlLXNldAorCSogYW5kIG1lbWNweSB0aGUgY29udGVudC4KKwkqLworCXZhbDEgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGVTaXplKHZhbDItPm5vZGVOcik7CisJaWYgKHZhbDEgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCWlmICh2YWwyLT5ub2RlTnIgIT0gMCkgeworCSAgICBpZiAodmFsMi0+bm9kZU5yID09IDEpCisJCSoodmFsMS0+bm9kZVRhYikgPSAqKHZhbDItPm5vZGVUYWIpOworCSAgICBlbHNlIHsKKwkJbWVtY3B5KHZhbDEtPm5vZGVUYWIsIHZhbDItPm5vZGVUYWIsCisJCSAgICB2YWwyLT5ub2RlTnIgKiBzaXplb2YoeG1sTm9kZVB0cikpOworCSAgICB9CisJICAgIHZhbDEtPm5vZGVOciA9IHZhbDItPm5vZGVOcjsKKwl9CisJcmV0dXJuKHZhbDEpOworI2VuZGlmCisgICAgfQorCisgICAgLyogQEAgd2l0aF9ucyB0byBjaGVjayB3aGV0aGVyIG5hbWVzcGFjZSBub2RlcyBzaG91bGQgYmUgbG9va2VkIGF0IEBAICovCisgICAgaW5pdE5yID0gdmFsMS0+bm9kZU5yOworCisgICAgZm9yIChpID0gMDtpIDwgdmFsMi0+bm9kZU5yO2krKykgeworCW4yID0gdmFsMi0+bm9kZVRhYltpXTsKKwkvKgorCSAqIGNoZWNrIGFnYWluc3QgZHVwbGljYXRlcworCSAqLworCXNraXAgPSAwOworCWZvciAoaiA9IDA7IGogPCBpbml0TnI7IGorKykgeworCSAgICBuMSA9IHZhbDEtPm5vZGVUYWJbal07CisJICAgIGlmIChuMSA9PSBuMikgeworCQlza2lwID0gMTsKKwkJYnJlYWs7CisJICAgIH0gZWxzZSBpZiAoKG4xLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgJiYKKwkJICAgICAgIChuMi0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKSB7CisJCWlmICgoKCh4bWxOc1B0cikgbjEpLT5uZXh0ID09ICgoeG1sTnNQdHIpIG4yKS0+bmV4dCkgJiYKKwkJICAgICh4bWxTdHJFcXVhbCgoKHhtbE5zUHRyKSBuMSktPnByZWZpeCwKKwkJCSgoeG1sTnNQdHIpIG4yKS0+cHJlZml4KSkpCisJCXsKKwkJICAgIHNraXAgPSAxOworCQkgICAgYnJlYWs7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoc2tpcCkKKwkgICAgY29udGludWU7CisKKwkvKgorCSAqIGdyb3cgdGhlIG5vZGVUYWIgaWYgbmVlZGVkCisJICovCisJaWYgKHZhbDEtPm5vZGVNYXggPT0gMCkgeworCSAgICB2YWwxLT5ub2RlVGFiID0gKHhtbE5vZGVQdHIgKikgeG1sTWFsbG9jKFhNTF9OT0RFU0VUX0RFRkFVTFQgKgorCQkJCQkJICAgIHNpemVvZih4bWxOb2RlUHRyKSk7CisJICAgIGlmICh2YWwxLT5ub2RlVGFiID09IE5VTEwpIHsKKwkgICAgICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJtZXJnaW5nIG5vZGVzZXRcbiIpOworCQlyZXR1cm4oTlVMTCk7CisJICAgIH0KKwkgICAgbWVtc2V0KHZhbDEtPm5vZGVUYWIsIDAgLAorCQkgICBYTUxfTk9ERVNFVF9ERUZBVUxUICogKHNpemVfdCkgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKwkgICAgdmFsMS0+bm9kZU1heCA9IFhNTF9OT0RFU0VUX0RFRkFVTFQ7CisJfSBlbHNlIGlmICh2YWwxLT5ub2RlTnIgPT0gdmFsMS0+bm9kZU1heCkgeworCSAgICB4bWxOb2RlUHRyICp0ZW1wOworCisJICAgIHZhbDEtPm5vZGVNYXggKj0gMjsKKwkgICAgdGVtcCA9ICh4bWxOb2RlUHRyICopIHhtbFJlYWxsb2ModmFsMS0+bm9kZVRhYiwgdmFsMS0+bm9kZU1heCAqCisJCQkJCSAgICAgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKwkgICAgaWYgKHRlbXAgPT0gTlVMTCkgeworCSAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgIm1lcmdpbmcgbm9kZXNldFxuIik7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICB2YWwxLT5ub2RlVGFiID0gdGVtcDsKKwl9CisJaWYgKG4yLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCSAgICB4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgbjI7CisKKwkgICAgdmFsMS0+bm9kZVRhYlt2YWwxLT5ub2RlTnIrK10gPQorCQl4bWxYUGF0aE5vZGVTZXREdXBOcygoeG1sTm9kZVB0cikgbnMtPm5leHQsIG5zKTsKKwl9IGVsc2UKKwkgICAgdmFsMS0+bm9kZVRhYlt2YWwxLT5ub2RlTnIrK10gPSBuMjsKKyAgICB9CisKKyAgICByZXR1cm4odmFsMSk7Cit9CisKKyNpZiAwIC8qIHhtbFhQYXRoTm9kZVNldE1lcmdlVW5pcXVlKCkgaXMgY3VycmVudGx5IG5vdCB1c2VkIGFueW1vcmUgKi8KKy8qKgorICogeG1sWFBhdGhOb2RlU2V0TWVyZ2VVbmlxdWU6CisgKiBAdmFsMTogIHRoZSBmaXJzdCBOb2RlU2V0IG9yIE5VTEwKKyAqIEB2YWwyOiAgdGhlIHNlY29uZCBOb2RlU2V0CisgKgorICogTWVyZ2VzIHR3byBub2Rlc2V0cywgYWxsIG5vZGVzIGZyb20gQHZhbDIgYXJlIGFkZGVkIHRvIEB2YWwxCisgKiBpZiBAdmFsMSBpcyBOVUxMLCBhIG5ldyBzZXQgaXMgY3JlYXRlZCBhbmQgY29waWVkIGZyb20gQHZhbDIKKyAqCisgKiBSZXR1cm5zIEB2YWwxIG9uY2UgZXh0ZW5kZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sTm9kZVNldFB0cgoreG1sWFBhdGhOb2RlU2V0TWVyZ2VVbmlxdWUoeG1sTm9kZVNldFB0ciB2YWwxLCB4bWxOb2RlU2V0UHRyIHZhbDIpIHsKKyAgICBpbnQgaTsKKworICAgIGlmICh2YWwyID09IE5VTEwpIHJldHVybih2YWwxKTsKKyAgICBpZiAodmFsMSA9PSBOVUxMKSB7CisJdmFsMSA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKyAgICB9CisgICAgaWYgKHZhbDEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKworICAgIC8qIEBAIHdpdGhfbnMgdG8gY2hlY2sgd2hldGhlciBuYW1lc3BhY2Ugbm9kZXMgc2hvdWxkIGJlIGxvb2tlZCBhdCBAQCAqLworCisgICAgZm9yIChpID0gMDtpIDwgdmFsMi0+bm9kZU5yO2krKykgeworCS8qCisJICogZ3JvdyB0aGUgbm9kZVRhYiBpZiBuZWVkZWQKKwkgKi8KKwlpZiAodmFsMS0+bm9kZU1heCA9PSAwKSB7CisJICAgIHZhbDEtPm5vZGVUYWIgPSAoeG1sTm9kZVB0ciAqKSB4bWxNYWxsb2MoWE1MX05PREVTRVRfREVGQVVMVCAqCisJCQkJCQkgICAgc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKwkgICAgaWYgKHZhbDEtPm5vZGVUYWIgPT0gTlVMTCkgeworCSAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgIm1lcmdpbmcgbm9kZXNldFxuIik7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBtZW1zZXQodmFsMS0+bm9kZVRhYiwgMCAsCisJCSAgIFhNTF9OT0RFU0VUX0RFRkFVTFQgKiAoc2l6ZV90KSBzaXplb2YoeG1sTm9kZVB0cikpOworCSAgICB2YWwxLT5ub2RlTWF4ID0gWE1MX05PREVTRVRfREVGQVVMVDsKKwl9IGVsc2UgaWYgKHZhbDEtPm5vZGVOciA9PSB2YWwxLT5ub2RlTWF4KSB7CisJICAgIHhtbE5vZGVQdHIgKnRlbXA7CisKKwkgICAgdmFsMS0+bm9kZU1heCAqPSAyOworCSAgICB0ZW1wID0gKHhtbE5vZGVQdHIgKikgeG1sUmVhbGxvYyh2YWwxLT5ub2RlVGFiLCB2YWwxLT5ub2RlTWF4ICoKKwkJCQkJICAgICBzaXplb2YoeG1sTm9kZVB0cikpOworCSAgICBpZiAodGVtcCA9PSBOVUxMKSB7CisJICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAibWVyZ2luZyBub2Rlc2V0XG4iKTsKKwkJcmV0dXJuKE5VTEwpOworCSAgICB9CisJICAgIHZhbDEtPm5vZGVUYWIgPSB0ZW1wOworCX0KKwlpZiAodmFsMi0+bm9kZVRhYltpXS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKwkgICAgeG1sTnNQdHIgbnMgPSAoeG1sTnNQdHIpIHZhbDItPm5vZGVUYWJbaV07CisKKwkgICAgdmFsMS0+bm9kZVRhYlt2YWwxLT5ub2RlTnIrK10gPQorCQl4bWxYUGF0aE5vZGVTZXREdXBOcygoeG1sTm9kZVB0cikgbnMtPm5leHQsIG5zKTsKKwl9IGVsc2UKKwkgICAgdmFsMS0+bm9kZVRhYlt2YWwxLT5ub2RlTnIrK10gPSB2YWwyLT5ub2RlVGFiW2ldOworICAgIH0KKworICAgIHJldHVybih2YWwxKTsKK30KKyNlbmRpZiAvKiB4bWxYUGF0aE5vZGVTZXRNZXJnZVVuaXF1ZSgpIGlzIGN1cnJlbnRseSBub3QgdXNlZCBhbnltb3JlICovCisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0TWVyZ2VBbmRDbGVhcjoKKyAqIEBzZXQxOiAgdGhlIGZpcnN0IE5vZGVTZXQgb3IgTlVMTAorICogQHNldDI6ICB0aGUgc2Vjb25kIE5vZGVTZXQKKyAqIEBoYXNTZXQyTnNOb2RlczogMSBpZiBzZXQyIGNvbnRhaW5zIG5hbWVzcGFjZXMgbm9kZXMKKyAqCisgKiBNZXJnZXMgdHdvIG5vZGVzZXRzLCBhbGwgbm9kZXMgZnJvbSBAc2V0MiBhcmUgYWRkZWQgdG8gQHNldDEKKyAqIGlmIEBzZXQxIGlzIE5VTEwsIGEgbmV3IHNldCBpcyBjcmVhdGVkIGFuZCBjb3BpZWQgZnJvbSBAc2V0Mi4KKyAqIENoZWNrcyBmb3IgZHVwbGljYXRlIG5vZGVzLiBDbGVhcnMgc2V0Mi4KKyAqCisgKiBSZXR1cm5zIEBzZXQxIG9uY2UgZXh0ZW5kZWQgb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yLgorICovCitzdGF0aWMgeG1sTm9kZVNldFB0cgoreG1sWFBhdGhOb2RlU2V0TWVyZ2VBbmRDbGVhcih4bWxOb2RlU2V0UHRyIHNldDEsIHhtbE5vZGVTZXRQdHIgc2V0MiwKKwkJCSAgICAgaW50IGhhc051bGxFbnRyaWVzKQoreworICAgIGlmICgoc2V0MSA9PSBOVUxMKSAmJiAoaGFzTnVsbEVudHJpZXMgPT0gMCkpIHsKKwkvKgorCSogTm90ZSB0aGF0IGRvaW5nIGEgbWVtY3B5IG9mIHRoZSBsaXN0LCBuYW1lc3BhY2Ugbm9kZXMgYXJlCisJKiBqdXN0IGFzc2lnbmVkIHRvIHNldDEsIHNpbmNlIHNldDIgaXMgY2xlYXJlZCBhbnl3YXkuCisJKi8KKwlzZXQxID0geG1sWFBhdGhOb2RlU2V0Q3JlYXRlU2l6ZShzZXQyLT5ub2RlTnIpOworCWlmIChzZXQxID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKwlpZiAoc2V0Mi0+bm9kZU5yICE9IDApIHsKKwkgICAgbWVtY3B5KHNldDEtPm5vZGVUYWIsIHNldDItPm5vZGVUYWIsCisJCXNldDItPm5vZGVOciAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisJICAgIHNldDEtPm5vZGVOciA9IHNldDItPm5vZGVOcjsKKwl9CisgICAgfSBlbHNlIHsKKwlpbnQgaSwgaiwgaW5pdE5iU2V0MTsKKwl4bWxOb2RlUHRyIG4xLCBuMjsKKworCWlmIChzZXQxID09IE5VTEwpCisgICAgICAgICAgICBzZXQxID0geG1sWFBhdGhOb2RlU2V0Q3JlYXRlKE5VTEwpOworICAgICAgICBpZiAoc2V0MSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKworCWluaXROYlNldDEgPSBzZXQxLT5ub2RlTnI7CisJZm9yIChpID0gMDtpIDwgc2V0Mi0+bm9kZU5yO2krKykgeworCSAgICBuMiA9IHNldDItPm5vZGVUYWJbaV07CisJICAgIC8qCisJICAgICogU2tpcCBOVUxMZWQgZW50cmllcy4KKwkgICAgKi8KKwkgICAgaWYgKG4yID09IE5VTEwpCisJCWNvbnRpbnVlOworCSAgICAvKgorCSAgICAqIFNraXAgZHVwbGljYXRlcy4KKwkgICAgKi8KKwkgICAgZm9yIChqID0gMDsgaiA8IGluaXROYlNldDE7IGorKykgeworCQluMSA9IHNldDEtPm5vZGVUYWJbal07CisJCWlmIChuMSA9PSBuMikgeworCQkgICAgZ290byBza2lwX25vZGU7CisJCX0gZWxzZSBpZiAoKG4xLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgJiYKKwkJICAgIChuMi0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCQl7CisJCSAgICBpZiAoKCgoeG1sTnNQdHIpIG4xKS0+bmV4dCA9PSAoKHhtbE5zUHRyKSBuMiktPm5leHQpICYmCisJCQkoeG1sU3RyRXF1YWwoKCh4bWxOc1B0cikgbjEpLT5wcmVmaXgsCisJCQkoKHhtbE5zUHRyKSBuMiktPnByZWZpeCkpKQorCQkgICAgeworCQkJLyoKKwkJCSogRnJlZSB0aGUgbmFtZXNwYWNlIG5vZGUuCisJCQkqLworCQkJc2V0Mi0+bm9kZVRhYltpXSA9IE5VTEw7CisJCQl4bWxYUGF0aE5vZGVTZXRGcmVlTnMoKHhtbE5zUHRyKSBuMik7CisJCQlnb3RvIHNraXBfbm9kZTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJICAgIC8qCisJICAgICogZ3JvdyB0aGUgbm9kZVRhYiBpZiBuZWVkZWQKKwkgICAgKi8KKwkgICAgaWYgKHNldDEtPm5vZGVNYXggPT0gMCkgeworCQlzZXQxLT5ub2RlVGFiID0gKHhtbE5vZGVQdHIgKikgeG1sTWFsbG9jKAorCQkgICAgWE1MX05PREVTRVRfREVGQVVMVCAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisJCWlmIChzZXQxLT5ub2RlVGFiID09IE5VTEwpIHsKKwkJICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJtZXJnaW5nIG5vZGVzZXRcbiIpOworCQkgICAgcmV0dXJuKE5VTEwpOworCQl9CisJCW1lbXNldChzZXQxLT5ub2RlVGFiLCAwLAorCQkgICAgWE1MX05PREVTRVRfREVGQVVMVCAqIChzaXplX3QpIHNpemVvZih4bWxOb2RlUHRyKSk7CisJCXNldDEtPm5vZGVNYXggPSBYTUxfTk9ERVNFVF9ERUZBVUxUOworCSAgICB9IGVsc2UgaWYgKHNldDEtPm5vZGVOciA+PSBzZXQxLT5ub2RlTWF4KSB7CisJCXhtbE5vZGVQdHIgKnRlbXA7CisKKwkJc2V0MS0+bm9kZU1heCAqPSAyOworCQl0ZW1wID0gKHhtbE5vZGVQdHIgKikgeG1sUmVhbGxvYygKKwkJICAgIHNldDEtPm5vZGVUYWIsIHNldDEtPm5vZGVNYXggKiBzaXplb2YoeG1sTm9kZVB0cikpOworCQlpZiAodGVtcCA9PSBOVUxMKSB7CisJCSAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAibWVyZ2luZyBub2Rlc2V0XG4iKTsKKwkJICAgIHJldHVybihOVUxMKTsKKwkJfQorCQlzZXQxLT5ub2RlVGFiID0gdGVtcDsKKwkgICAgfQorCSAgICBpZiAobjItPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJCXhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSBuMjsKKworCQlzZXQxLT5ub2RlVGFiW3NldDEtPm5vZGVOcisrXSA9CisJCSAgICB4bWxYUGF0aE5vZGVTZXREdXBOcygoeG1sTm9kZVB0cikgbnMtPm5leHQsIG5zKTsKKwkgICAgfSBlbHNlCisJCXNldDEtPm5vZGVUYWJbc2V0MS0+bm9kZU5yKytdID0gbjI7Citza2lwX25vZGU6CisJICAgIHt9CisJfQorICAgIH0KKyAgICBzZXQyLT5ub2RlTnIgPSAwOworICAgIHJldHVybihzZXQxKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5vZGVTZXRNZXJnZUFuZENsZWFyTm9EdXBsczoKKyAqIEBzZXQxOiAgdGhlIGZpcnN0IE5vZGVTZXQgb3IgTlVMTAorICogQHNldDI6ICB0aGUgc2Vjb25kIE5vZGVTZXQKKyAqIEBoYXNTZXQyTnNOb2RlczogMSBpZiBzZXQyIGNvbnRhaW5zIG5hbWVzcGFjZXMgbm9kZXMKKyAqCisgKiBNZXJnZXMgdHdvIG5vZGVzZXRzLCBhbGwgbm9kZXMgZnJvbSBAc2V0MiBhcmUgYWRkZWQgdG8gQHNldDEKKyAqIGlmIEBzZXQxIGlzIE5VTEwsIGEgbmV3IHNldCBpcyBjcmVhdGVkIGFuZCBjb3BpZWQgZnJvbSBAc2V0Mi4KKyAqIERvZXNuJ3QgY2hhY2sgZm9yIGR1cGxpY2F0ZSBub2Rlcy4gQ2xlYXJzIHNldDIuCisgKgorICogUmV0dXJucyBAc2V0MSBvbmNlIGV4dGVuZGVkIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqLworc3RhdGljIHhtbE5vZGVTZXRQdHIKK3htbFhQYXRoTm9kZVNldE1lcmdlQW5kQ2xlYXJOb0R1cGxzKHhtbE5vZGVTZXRQdHIgc2V0MSwgeG1sTm9kZVNldFB0ciBzZXQyLAorCQkJCSAgICBpbnQgaGFzTnVsbEVudHJpZXMpCit7CisgICAgaWYgKHNldDIgPT0gTlVMTCkKKwlyZXR1cm4oc2V0MSk7CisgICAgaWYgKChzZXQxID09IE5VTEwpICYmIChoYXNOdWxsRW50cmllcyA9PSAwKSkgeworCS8qCisJKiBOb3RlIHRoYXQgZG9pbmcgYSBtZW1jcHkgb2YgdGhlIGxpc3QsIG5hbWVzcGFjZSBub2RlcyBhcmUKKwkqIGp1c3QgYXNzaWduZWQgdG8gc2V0MSwgc2luY2Ugc2V0MiBpcyBjbGVhcmVkIGFueXdheS4KKwkqLworCXNldDEgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGVTaXplKHNldDItPm5vZGVOcik7CisJaWYgKHNldDEgPT0gTlVMTCkKKwkgICAgcmV0dXJuKE5VTEwpOworCWlmIChzZXQyLT5ub2RlTnIgIT0gMCkgeworCSAgICBtZW1jcHkoc2V0MS0+bm9kZVRhYiwgc2V0Mi0+bm9kZVRhYiwKKwkJc2V0Mi0+bm9kZU5yICogc2l6ZW9mKHhtbE5vZGVQdHIpKTsKKwkgICAgc2V0MS0+bm9kZU5yID0gc2V0Mi0+bm9kZU5yOworCX0KKyAgICB9IGVsc2UgeworCWludCBpOworCXhtbE5vZGVQdHIgbjI7CisKKwlpZiAoc2V0MSA9PSBOVUxMKQorCSAgICBzZXQxID0geG1sWFBhdGhOb2RlU2V0Q3JlYXRlKE5VTEwpOworICAgICAgICBpZiAoc2V0MSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKworCWZvciAoaSA9IDA7aSA8IHNldDItPm5vZGVOcjtpKyspIHsKKwkgICAgbjIgPSBzZXQyLT5ub2RlVGFiW2ldOworCSAgICAvKgorCSAgICAqIFNraXAgTlVMTGVkIGVudHJpZXMuCisJICAgICovCisJICAgIGlmIChuMiA9PSBOVUxMKQorCQljb250aW51ZTsKKwkgICAgaWYgKHNldDEtPm5vZGVNYXggPT0gMCkgeworCQlzZXQxLT5ub2RlVGFiID0gKHhtbE5vZGVQdHIgKikgeG1sTWFsbG9jKAorCQkgICAgWE1MX05PREVTRVRfREVGQVVMVCAqIHNpemVvZih4bWxOb2RlUHRyKSk7CisJCWlmIChzZXQxLT5ub2RlVGFiID09IE5VTEwpIHsKKwkJICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJtZXJnaW5nIG5vZGVzZXRcbiIpOworCQkgICAgcmV0dXJuKE5VTEwpOworCQl9CisJCW1lbXNldChzZXQxLT5ub2RlVGFiLCAwLAorCQkgICAgWE1MX05PREVTRVRfREVGQVVMVCAqIChzaXplX3QpIHNpemVvZih4bWxOb2RlUHRyKSk7CisJCXNldDEtPm5vZGVNYXggPSBYTUxfTk9ERVNFVF9ERUZBVUxUOworCSAgICB9IGVsc2UgaWYgKHNldDEtPm5vZGVOciA+PSBzZXQxLT5ub2RlTWF4KSB7CisJCXhtbE5vZGVQdHIgKnRlbXA7CisKKwkJc2V0MS0+bm9kZU1heCAqPSAyOworCQl0ZW1wID0gKHhtbE5vZGVQdHIgKikgeG1sUmVhbGxvYygKKwkJICAgIHNldDEtPm5vZGVUYWIsIHNldDEtPm5vZGVNYXggKiBzaXplb2YoeG1sTm9kZVB0cikpOworCQlpZiAodGVtcCA9PSBOVUxMKSB7CisJCSAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAibWVyZ2luZyBub2Rlc2V0XG4iKTsKKwkJICAgIHJldHVybihOVUxMKTsKKwkJfQorCQlzZXQxLT5ub2RlVGFiID0gdGVtcDsKKwkgICAgfQorCSAgICBzZXQxLT5ub2RlVGFiW3NldDEtPm5vZGVOcisrXSA9IG4yOworCX0KKyAgICB9CisgICAgc2V0Mi0+bm9kZU5yID0gMDsKKyAgICByZXR1cm4oc2V0MSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0RGVsOgorICogQGN1cjogIHRoZSBpbml0aWFsIG5vZGUgc2V0CisgKiBAdmFsOiAgYW4geG1sTm9kZVB0cgorICoKKyAqIFJlbW92ZXMgYW4geG1sTm9kZVB0ciBmcm9tIGFuIGV4aXN0aW5nIE5vZGVTZXQKKyAqLwordm9pZAoreG1sWFBhdGhOb2RlU2V0RGVsKHhtbE5vZGVTZXRQdHIgY3VyLCB4bWxOb2RlUHRyIHZhbCkgeworICAgIGludCBpOworCisgICAgaWYgKGN1ciA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKHZhbCA9PSBOVUxMKSByZXR1cm47CisKKyAgICAvKgorICAgICAqIGZpbmQgbm9kZSBpbiBub2RlVGFiCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgY3VyLT5ub2RlTnI7aSsrKQorICAgICAgICBpZiAoY3VyLT5ub2RlVGFiW2ldID09IHZhbCkgYnJlYWs7CisKKyAgICBpZiAoaSA+PSBjdXItPm5vZGVOcikgewkvKiBub3QgZm91bmQgKi8KKyNpZmRlZiBERUJVRworICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkgICAgICAgICJ4bWxYUGF0aE5vZGVTZXREZWw6IE5vZGUgJXMgd2Fzbid0IGZvdW5kIGluIE5vZGVMaXN0XG4iLAorCQl2YWwtPm5hbWUpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKChjdXItPm5vZGVUYWJbaV0gIT0gTlVMTCkgJiYKKwkoY3VyLT5ub2RlVGFiW2ldLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkpCisJeG1sWFBhdGhOb2RlU2V0RnJlZU5zKCh4bWxOc1B0cikgY3VyLT5ub2RlVGFiW2ldKTsKKyAgICBjdXItPm5vZGVOci0tOworICAgIGZvciAoO2kgPCBjdXItPm5vZGVOcjtpKyspCisgICAgICAgIGN1ci0+bm9kZVRhYltpXSA9IGN1ci0+bm9kZVRhYltpICsgMV07CisgICAgY3VyLT5ub2RlVGFiW2N1ci0+bm9kZU5yXSA9IE5VTEw7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb2RlU2V0UmVtb3ZlOgorICogQGN1cjogIHRoZSBpbml0aWFsIG5vZGUgc2V0CisgKiBAdmFsOiAgdGhlIGluZGV4IHRvIHJlbW92ZQorICoKKyAqIFJlbW92ZXMgYW4gZW50cnkgZnJvbSBhbiBleGlzdGluZyBOb2RlU2V0IGxpc3QuCisgKi8KK3ZvaWQKK3htbFhQYXRoTm9kZVNldFJlbW92ZSh4bWxOb2RlU2V0UHRyIGN1ciwgaW50IHZhbCkgeworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmICh2YWwgPj0gY3VyLT5ub2RlTnIpIHJldHVybjsKKyAgICBpZiAoKGN1ci0+bm9kZVRhYlt2YWxdICE9IE5VTEwpICYmCisJKGN1ci0+bm9kZVRhYlt2YWxdLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkpCisJeG1sWFBhdGhOb2RlU2V0RnJlZU5zKCh4bWxOc1B0cikgY3VyLT5ub2RlVGFiW3ZhbF0pOworICAgIGN1ci0+bm9kZU5yLS07CisgICAgZm9yICg7dmFsIDwgY3VyLT5ub2RlTnI7dmFsKyspCisgICAgICAgIGN1ci0+bm9kZVRhYlt2YWxdID0gY3VyLT5ub2RlVGFiW3ZhbCArIDFdOworICAgIGN1ci0+bm9kZVRhYltjdXItPm5vZGVOcl0gPSBOVUxMOworfQorCisvKioKKyAqIHhtbFhQYXRoRnJlZU5vZGVTZXQ6CisgKiBAb2JqOiAgdGhlIHhtbE5vZGVTZXRQdHIgdG8gZnJlZQorICoKKyAqIEZyZWUgdGhlIE5vZGVTZXQgY29tcG91bmQgKG5vdCB0aGUgYWN0dWFsIG5vZGVzICEpLgorICovCit2b2lkCit4bWxYUGF0aEZyZWVOb2RlU2V0KHhtbE5vZGVTZXRQdHIgb2JqKSB7CisgICAgaWYgKG9iaiA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKG9iai0+bm9kZVRhYiAhPSBOVUxMKSB7CisJaW50IGk7CisKKwkvKiBAQCB3aXRoX25zIHRvIGNoZWNrIHdoZXRoZXIgbmFtZXNwYWNlIG5vZGVzIHNob3VsZCBiZSBsb29rZWQgYXQgQEAgKi8KKwlmb3IgKGkgPSAwO2kgPCBvYmotPm5vZGVOcjtpKyspCisJICAgIGlmICgob2JqLT5ub2RlVGFiW2ldICE9IE5VTEwpICYmCisJCShvYmotPm5vZGVUYWJbaV0tPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwkJeG1sWFBhdGhOb2RlU2V0RnJlZU5zKCh4bWxOc1B0cikgb2JqLT5ub2RlVGFiW2ldKTsKKwl4bWxGcmVlKG9iai0+bm9kZVRhYik7CisgICAgfQorICAgIHhtbEZyZWUob2JqKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5vZGVTZXRDbGVhcjoKKyAqIEBzZXQ6ICB0aGUgbm9kZSBzZXQgdG8gY2xlYXIKKyAqCisgKiBDbGVhcnMgdGhlIGxpc3QgZnJvbSBhbGwgdGVtcG9yYXJ5IFhQYXRoIG9iamVjdHMgKGUuZy4gbmFtZXNwYWNlIG5vZGVzCisgKiBhcmUgZmVlZCksIGJ1dCBkb2VzICpub3QqIGZyZWUgdGhlIGxpc3QgaXRzZWxmLiBTZXRzIHRoZSBsZW5ndGggb2YgdGhlCisgKiBsaXN0IHRvIDAuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aE5vZGVTZXRDbGVhcih4bWxOb2RlU2V0UHRyIHNldCwgaW50IGhhc05zTm9kZXMpCit7CisgICAgaWYgKChzZXQgPT0gTlVMTCkgfHwgKHNldC0+bm9kZU5yIDw9IDApKQorCXJldHVybjsKKyAgICBlbHNlIGlmIChoYXNOc05vZGVzKSB7CisJaW50IGk7CisJeG1sTm9kZVB0ciBub2RlOworCisJZm9yIChpID0gMDsgaSA8IHNldC0+bm9kZU5yOyBpKyspIHsKKwkgICAgbm9kZSA9IHNldC0+bm9kZVRhYltpXTsKKwkgICAgaWYgKChub2RlICE9IE5VTEwpICYmCisJCShub2RlLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkpCisJCXhtbFhQYXRoTm9kZVNldEZyZWVOcygoeG1sTnNQdHIpIG5vZGUpOworCX0KKyAgICB9CisgICAgc2V0LT5ub2RlTnIgPSAwOworfQorCisvKioKKyAqIHhtbFhQYXRoTm9kZVNldENsZWFyRnJvbVBvczoKKyAqIEBzZXQ6IHRoZSBub2RlIHNldCB0byBiZSBjbGVhcmVkCisgKiBAcG9zOiB0aGUgc3RhcnQgcG9zaXRpb24gdG8gY2xlYXIgZnJvbQorICoKKyAqIENsZWFycyB0aGUgbGlzdCBmcm9tIHRlbXBvcmFyeSBYUGF0aCBvYmplY3RzIChlLmcuIG5hbWVzcGFjZSBub2RlcworICogYXJlIGZlZWQpIHN0YXJ0aW5nIHdpdGggdGhlIGVudHJ5IGF0IEBwb3MsIGJ1dCBkb2VzICpub3QqIGZyZWUgdGhlIGxpc3QKKyAqIGl0c2VsZi4gU2V0cyB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0IHRvIEBwb3MuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aE5vZGVTZXRDbGVhckZyb21Qb3MoeG1sTm9kZVNldFB0ciBzZXQsIGludCBwb3MsIGludCBoYXNOc05vZGVzKQoreworICAgIGlmICgoc2V0ID09IE5VTEwpIHx8IChzZXQtPm5vZGVOciA8PSAwKSB8fCAocG9zID49IHNldC0+bm9kZU5yKSkKKwlyZXR1cm47CisgICAgZWxzZSBpZiAoKGhhc05zTm9kZXMpKSB7CisJaW50IGk7CisJeG1sTm9kZVB0ciBub2RlOworCisJZm9yIChpID0gcG9zOyBpIDwgc2V0LT5ub2RlTnI7IGkrKykgeworCSAgICBub2RlID0gc2V0LT5ub2RlVGFiW2ldOworCSAgICBpZiAoKG5vZGUgIT0gTlVMTCkgJiYKKwkJKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwkJeG1sWFBhdGhOb2RlU2V0RnJlZU5zKCh4bWxOc1B0cikgbm9kZSk7CisJfQorICAgIH0KKyAgICBzZXQtPm5vZGVOciA9IHBvczsKK30KKworLyoqCisgKiB4bWxYUGF0aEZyZWVWYWx1ZVRyZWU6CisgKiBAb2JqOiAgdGhlIHhtbE5vZGVTZXRQdHIgdG8gZnJlZQorICoKKyAqIEZyZWUgdGhlIE5vZGVTZXQgY29tcG91bmQgYW5kIHRoZSBhY3R1YWwgdHJlZSwgdGhpcyBpcyBkaWZmZXJlbnQKKyAqIGZyb20geG1sWFBhdGhGcmVlTm9kZVNldCgpCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aEZyZWVWYWx1ZVRyZWUoeG1sTm9kZVNldFB0ciBvYmopIHsKKyAgICBpbnQgaTsKKworICAgIGlmIChvYmogPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKG9iai0+bm9kZVRhYiAhPSBOVUxMKSB7CisJZm9yIChpID0gMDtpIDwgb2JqLT5ub2RlTnI7aSsrKSB7CisJICAgIGlmIChvYmotPm5vZGVUYWJbaV0gIT0gTlVMTCkgeworCQlpZiAob2JqLT5ub2RlVGFiW2ldLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkgeworCQkgICAgeG1sWFBhdGhOb2RlU2V0RnJlZU5zKCh4bWxOc1B0cikgb2JqLT5ub2RlVGFiW2ldKTsKKwkJfSBlbHNlIHsKKwkJICAgIHhtbEZyZWVOb2RlTGlzdChvYmotPm5vZGVUYWJbaV0pOworCQl9CisJICAgIH0KKwl9CisJeG1sRnJlZShvYmotPm5vZGVUYWIpOworICAgIH0KKyAgICB4bWxGcmVlKG9iaik7Cit9CisKKyNpZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVkKERFQlVHX1NURVApCisvKioKKyAqIHhtbEdlbmVyaWNFcnJvckNvbnRleHROb2RlU2V0OgorICogQG91dHB1dDogIGEgRklMRSAqIGZvciB0aGUgb3V0cHV0CisgKiBAb2JqOiAgdGhlIHhtbE5vZGVTZXRQdHIgdG8gZGlzcGxheQorICoKKyAqIFF1aWNrIGRpc3BsYXkgb2YgYSBOb2RlU2V0CisgKi8KK3ZvaWQKK3htbEdlbmVyaWNFcnJvckNvbnRleHROb2RlU2V0KEZJTEUgKm91dHB1dCwgeG1sTm9kZVNldFB0ciBvYmopIHsKKyAgICBpbnQgaTsKKworICAgIGlmIChvdXRwdXQgPT0gTlVMTCkgb3V0cHV0ID0geG1sR2VuZXJpY0Vycm9yQ29udGV4dDsKKyAgICBpZiAob2JqID09IE5VTEwpICB7CisgICAgICAgIGZwcmludGYob3V0cHV0LCAiTm9kZVNldCA9PSBOVUxMICFcbiIpOworCXJldHVybjsKKyAgICB9CisgICAgaWYgKG9iai0+bm9kZU5yID09IDApIHsKKyAgICAgICAgZnByaW50ZihvdXRwdXQsICJOb2RlU2V0IGlzIGVtcHR5XG4iKTsKKwlyZXR1cm47CisgICAgfQorICAgIGlmIChvYmotPm5vZGVUYWIgPT0gTlVMTCkgeworCWZwcmludGYob3V0cHV0LCAiIG5vZGVUYWIgPT0gTlVMTCAhXG4iKTsKKwlyZXR1cm47CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBvYmotPm5vZGVOcjsgaSsrKSB7CisgICAgICAgIGlmIChvYmotPm5vZGVUYWJbaV0gPT0gTlVMTCkgeworCSAgICBmcHJpbnRmKG91dHB1dCwgIiBOVUxMICFcbiIpOworCSAgICByZXR1cm47CisgICAgICAgIH0KKwlpZiAoKG9iai0+bm9kZVRhYltpXS0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKwkgICAgKG9iai0+bm9kZVRhYltpXS0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkKKwkgICAgZnByaW50ZihvdXRwdXQsICIgLyIpOworCWVsc2UgaWYgKG9iai0+bm9kZVRhYltpXS0+bmFtZSA9PSBOVUxMKQorCSAgICBmcHJpbnRmKG91dHB1dCwgIiBub25hbWUhIik7CisJZWxzZSBmcHJpbnRmKG91dHB1dCwgIiAlcyIsIG9iai0+bm9kZVRhYltpXS0+bmFtZSk7CisgICAgfQorICAgIGZwcmludGYob3V0cHV0LCAiXG4iKTsKK30KKyNlbmRpZgorCisvKioKKyAqIHhtbFhQYXRoTmV3Tm9kZVNldDoKKyAqIEB2YWw6ICB0aGUgTm9kZVB0ciB2YWx1ZQorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIE5vZGVTZXQgYW5kIGluaXRpYWxpemUKKyAqIGl0IHdpdGggdGhlIHNpbmdsZSBOb2RlIEB2YWwKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQYXRoTmV3Tm9kZVNldCh4bWxOb2RlUHRyIHZhbCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgbm9kZXNldFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgcmV0LT50eXBlID0gWFBBVEhfTk9ERVNFVDsKKyAgICByZXQtPmJvb2x2YWwgPSAwOworICAgIHJldC0+bm9kZXNldHZhbCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZSh2YWwpOworICAgIC8qIEBAIHdpdGhfbnMgdG8gY2hlY2sgd2hldGhlciBuYW1lc3BhY2Ugbm9kZXMgc2hvdWxkIGJlIGxvb2tlZCBhdCBAQCAqLworI2lmZGVmIFhQX0RFQlVHX09CSl9VU0FHRQorICAgIHhtbFhQYXRoRGVidWdPYmpVc2FnZVJlcXVlc3RlZChOVUxMLCBYUEFUSF9OT0RFU0VUKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV3VmFsdWVUcmVlOgorICogQHZhbDogIHRoZSBOb2RlUHRyIHZhbHVlCisgKgorICogQ3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgVmFsdWUgVHJlZSAoWFNMVCkgYW5kIGluaXRpYWxpemUKKyAqIGl0IHdpdGggdGhlIHRyZWUgcm9vdCBAdmFsCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aE5ld1ZhbHVlVHJlZSh4bWxOb2RlUHRyIHZhbCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgcmVzdWx0IHZhbHVlIHRyZWVcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1hTTFRfVFJFRTsKKyAgICByZXQtPmJvb2x2YWwgPSAxOworICAgIHJldC0+dXNlciA9ICh2b2lkICopIHZhbDsKKyAgICByZXQtPm5vZGVzZXR2YWwgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGUodmFsKTsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKyAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoTlVMTCwgWFBBVEhfWFNMVF9UUkVFKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV3Tm9kZVNldExpc3Q6CisgKiBAdmFsOiAgYW4gZXhpc3RpbmcgTm9kZVNldAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIE5vZGVTZXQgYW5kIGluaXRpYWxpemUKKyAqIGl0IHdpdGggdGhlIE5vZGVzZXQgQHZhbAorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhOZXdOb2RlU2V0TGlzdCh4bWxOb2RlU2V0UHRyIHZhbCkKK3sKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisgICAgaW50IGk7CisKKyAgICBpZiAodmFsID09IE5VTEwpCisgICAgICAgIHJldCA9IE5VTEw7CisgICAgZWxzZSBpZiAodmFsLT5ub2RlVGFiID09IE5VTEwpCisgICAgICAgIHJldCA9IHhtbFhQYXRoTmV3Tm9kZVNldChOVUxMKTsKKyAgICBlbHNlIHsKKyAgICAgICAgcmV0ID0geG1sWFBhdGhOZXdOb2RlU2V0KHZhbC0+bm9kZVRhYlswXSk7CisgICAgICAgIGlmIChyZXQpCisgICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDwgdmFsLT5ub2RlTnI7ICsraSkKKyAgICAgICAgICAgICAgICB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUocmV0LT5ub2Rlc2V0dmFsLCB2YWwtPm5vZGVUYWJbaV0pOworICAgIH0KKworICAgIHJldHVybiAocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aFdyYXBOb2RlU2V0OgorICogQHZhbDogIHRoZSBOb2RlUHRyIHZhbHVlCisgKgorICogV3JhcCB0aGUgTm9kZXNldCBAdmFsIGluIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aFdyYXBOb2RlU2V0KHhtbE5vZGVTZXRQdHIgdmFsKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJjcmVhdGluZyBub2RlIHNldCBvYmplY3RcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX05PREVTRVQ7CisgICAgcmV0LT5ub2Rlc2V0dmFsID0gdmFsOworI2lmZGVmIFhQX0RFQlVHX09CSl9VU0FHRQorICAgIHhtbFhQYXRoRGVidWdPYmpVc2FnZVJlcXVlc3RlZChOVUxMLCBYUEFUSF9OT0RFU0VUKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoRnJlZU5vZGVTZXRMaXN0OgorICogQG9iajogIGFuIGV4aXN0aW5nIE5vZGVTZXRMaXN0IG9iamVjdAorICoKKyAqIEZyZWUgdXAgdGhlIHhtbFhQYXRoT2JqZWN0UHRyIEBvYmogYnV0IGRvbid0IGRlYWxsb2NhdGUgdGhlIG9iamVjdHMgaW4KKyAqIHRoZSBsaXN0IGNvbnRyYXJ5IHRvIHhtbFhQYXRoRnJlZU9iamVjdCgpLgorICovCit2b2lkCit4bWxYUGF0aEZyZWVOb2RlU2V0TGlzdCh4bWxYUGF0aE9iamVjdFB0ciBvYmopIHsKKyAgICBpZiAob2JqID09IE5VTEwpIHJldHVybjsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKyAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZWxlYXNlZChOVUxMLCBvYmotPnR5cGUpOworI2VuZGlmCisgICAgeG1sRnJlZShvYmopOworfQorCisvKioKKyAqIHhtbFhQYXRoRGlmZmVyZW5jZToKKyAqIEBub2RlczE6ICBhIG5vZGUtc2V0CisgKiBAbm9kZXMyOiAgYSBub2RlLXNldAorICoKKyAqIEltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaWZmZXJlbmNlKCkgZnVuY3Rpb246CisgKiAgICBub2RlLXNldCBzZXQ6ZGlmZmVyZW5jZSAobm9kZS1zZXQsIG5vZGUtc2V0KQorICoKKyAqIFJldHVybnMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIG5vZGUgc2V0cywgb3Igbm9kZXMxIGlmCisgKiAgICAgICAgIG5vZGVzMiBpcyBlbXB0eQorICovCit4bWxOb2RlU2V0UHRyCit4bWxYUGF0aERpZmZlcmVuY2UgKHhtbE5vZGVTZXRQdHIgbm9kZXMxLCB4bWxOb2RlU2V0UHRyIG5vZGVzMikgeworICAgIHhtbE5vZGVTZXRQdHIgcmV0OworICAgIGludCBpLCBsMTsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMikpCisJcmV0dXJuKG5vZGVzMSk7CisKKyAgICByZXQgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGUoTlVMTCk7CisgICAgaWYgKHhtbFhQYXRoTm9kZVNldElzRW1wdHkobm9kZXMxKSkKKwlyZXR1cm4ocmV0KTsKKworICAgIGwxID0geG1sWFBhdGhOb2RlU2V0R2V0TGVuZ3RoKG5vZGVzMSk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbDE7IGkrKykgeworCWN1ciA9IHhtbFhQYXRoTm9kZVNldEl0ZW0obm9kZXMxLCBpKTsKKwlpZiAoIXhtbFhQYXRoTm9kZVNldENvbnRhaW5zKG5vZGVzMiwgY3VyKSkKKwkgICAgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKHJldCwgY3VyKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhJbnRlcnNlY3Rpb246CisgKiBAbm9kZXMxOiAgYSBub2RlLXNldAorICogQG5vZGVzMjogIGEgbm9kZS1zZXQKKyAqCisgKiBJbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgaW50ZXJzZWN0aW9uKCkgZnVuY3Rpb246CisgKiAgICBub2RlLXNldCBzZXQ6aW50ZXJzZWN0aW9uIChub2RlLXNldCwgbm9kZS1zZXQpCisgKgorICogUmV0dXJucyBhIG5vZGUgc2V0IGNvbXByaXNpbmcgdGhlIG5vZGVzIHRoYXQgYXJlIHdpdGhpbiBib3RoIHRoZQorICogICAgICAgICBub2RlIHNldHMgcGFzc2VkIGFzIGFyZ3VtZW50cworICovCit4bWxOb2RlU2V0UHRyCit4bWxYUGF0aEludGVyc2VjdGlvbiAoeG1sTm9kZVNldFB0ciBub2RlczEsIHhtbE5vZGVTZXRQdHIgbm9kZXMyKSB7CisgICAgeG1sTm9kZVNldFB0ciByZXQgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGUoTlVMTCk7CisgICAgaW50IGksIGwxOworICAgIHhtbE5vZGVQdHIgY3VyOworCisgICAgaWYgKHJldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4ocmV0KTsKKyAgICBpZiAoeG1sWFBhdGhOb2RlU2V0SXNFbXB0eShub2RlczEpKQorCXJldHVybihyZXQpOworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMikpCisJcmV0dXJuKHJldCk7CisKKyAgICBsMSA9IHhtbFhQYXRoTm9kZVNldEdldExlbmd0aChub2RlczEpOworCisgICAgZm9yIChpID0gMDsgaSA8IGwxOyBpKyspIHsKKwljdXIgPSB4bWxYUGF0aE5vZGVTZXRJdGVtKG5vZGVzMSwgaSk7CisJaWYgKHhtbFhQYXRoTm9kZVNldENvbnRhaW5zKG5vZGVzMiwgY3VyKSkKKwkgICAgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKHJldCwgY3VyKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhEaXN0aW5jdFNvcnRlZDoKKyAqIEBub2RlczogIGEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcgorICoKKyAqIEltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBkaXN0aW5jdCgpIGZ1bmN0aW9uOgorICogICAgbm9kZS1zZXQgc2V0OmRpc3RpbmN0IChub2RlLXNldCkKKyAqCisgKiBSZXR1cm5zIGEgc3Vic2V0IG9mIHRoZSBub2RlcyBjb250YWluZWQgaW4gQG5vZGVzLCBvciBAbm9kZXMgaWYKKyAqICAgICAgICAgaXQgaXMgZW1wdHkKKyAqLworeG1sTm9kZVNldFB0cgoreG1sWFBhdGhEaXN0aW5jdFNvcnRlZCAoeG1sTm9kZVNldFB0ciBub2RlcykgeworICAgIHhtbE5vZGVTZXRQdHIgcmV0OworICAgIHhtbEhhc2hUYWJsZVB0ciBoYXNoOworICAgIGludCBpLCBsOworICAgIHhtbENoYXIgKiBzdHJ2YWw7CisgICAgeG1sTm9kZVB0ciBjdXI7CisKKyAgICBpZiAoeG1sWFBhdGhOb2RlU2V0SXNFbXB0eShub2RlcykpCisJcmV0dXJuKG5vZGVzKTsKKworICAgIHJldCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybihyZXQpOworICAgIGwgPSB4bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgobm9kZXMpOworICAgIGhhc2ggPSB4bWxIYXNoQ3JlYXRlIChsKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7CisJY3VyID0geG1sWFBhdGhOb2RlU2V0SXRlbShub2RlcywgaSk7CisJc3RydmFsID0geG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nKGN1cik7CisJaWYgKHhtbEhhc2hMb29rdXAoaGFzaCwgc3RydmFsKSA9PSBOVUxMKSB7CisJICAgIHhtbEhhc2hBZGRFbnRyeShoYXNoLCBzdHJ2YWwsIHN0cnZhbCk7CisJICAgIHhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZShyZXQsIGN1cik7CisJfSBlbHNlIHsKKwkgICAgeG1sRnJlZShzdHJ2YWwpOworCX0KKyAgICB9CisgICAgeG1sSGFzaEZyZWUoaGFzaCwgKHhtbEhhc2hEZWFsbG9jYXRvcikgeG1sRnJlZSk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhEaXN0aW5jdDoKKyAqIEBub2RlczogIGEgbm9kZS1zZXQKKyAqCisgKiBJbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgZGlzdGluY3QoKSBmdW5jdGlvbjoKKyAqICAgIG5vZGUtc2V0IHNldDpkaXN0aW5jdCAobm9kZS1zZXQpCisgKiBAbm9kZXMgaXMgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyLCB0aGVuICNleHNsU2V0c0Rpc3RpbmN0U29ydGVkCisgKiBpcyBjYWxsZWQgd2l0aCB0aGUgc29ydGVkIG5vZGUtc2V0CisgKgorICogUmV0dXJucyBhIHN1YnNldCBvZiB0aGUgbm9kZXMgY29udGFpbmVkIGluIEBub2Rlcywgb3IgQG5vZGVzIGlmCisgKiAgICAgICAgIGl0IGlzIGVtcHR5CisgKi8KK3htbE5vZGVTZXRQdHIKK3htbFhQYXRoRGlzdGluY3QgKHhtbE5vZGVTZXRQdHIgbm9kZXMpIHsKKyAgICBpZiAoeG1sWFBhdGhOb2RlU2V0SXNFbXB0eShub2RlcykpCisJcmV0dXJuKG5vZGVzKTsKKworICAgIHhtbFhQYXRoTm9kZVNldFNvcnQobm9kZXMpOworICAgIHJldHVybih4bWxYUGF0aERpc3RpbmN0U29ydGVkKG5vZGVzKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhIYXNTYW1lTm9kZXM6CisgKiBAbm9kZXMxOiAgYSBub2RlLXNldAorICogQG5vZGVzMjogIGEgbm9kZS1zZXQKKyAqCisgKiBJbXBsZW1lbnRzIHRoZSBFWFNMVCAtIFNldHMgaGFzLXNhbWUtbm9kZXMgZnVuY3Rpb246CisgKiAgICBib29sZWFuIHNldDpoYXMtc2FtZS1ub2RlKG5vZGUtc2V0LCBub2RlLXNldCkKKyAqCisgKiBSZXR1cm5zIHRydWUgKDEpIGlmIEBub2RlczEgc2hhcmVzIGFueSBub2RlIHdpdGggQG5vZGVzMiwgZmFsc2UgKDApCisgKiAgICAgICAgIG90aGVyd2lzZQorICovCitpbnQKK3htbFhQYXRoSGFzU2FtZU5vZGVzICh4bWxOb2RlU2V0UHRyIG5vZGVzMSwgeG1sTm9kZVNldFB0ciBub2RlczIpIHsKKyAgICBpbnQgaSwgbDsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMSkgfHwKKwl4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMikpCisJcmV0dXJuKDApOworCisgICAgbCA9IHhtbFhQYXRoTm9kZVNldEdldExlbmd0aChub2RlczEpOworICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHsKKwljdXIgPSB4bWxYUGF0aE5vZGVTZXRJdGVtKG5vZGVzMSwgaSk7CisJaWYgKHhtbFhQYXRoTm9kZVNldENvbnRhaW5zKG5vZGVzMiwgY3VyKSkKKwkgICAgcmV0dXJuKDEpOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZDoKKyAqIEBub2RlczogYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyCisgKiBAbm9kZTogYSBub2RlCisgKgorICogSW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGxlYWRpbmcoKSBmdW5jdGlvbjoKKyAqICAgIG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpCisgKgorICogUmV0dXJucyB0aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgcHJlY2VkZSBAbm9kZSBpbiBkb2N1bWVudCBvcmRlciwKKyAqICAgICAgICAgQG5vZGVzIGlmIEBub2RlIGlzIE5VTEwgb3IgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzCisgKiAgICAgICAgIGRvZXNuJ3QgY29udGFpbiBAbm9kZQorICovCit4bWxOb2RlU2V0UHRyCit4bWxYUGF0aE5vZGVMZWFkaW5nU29ydGVkICh4bWxOb2RlU2V0UHRyIG5vZGVzLCB4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICBpbnQgaSwgbDsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICB4bWxOb2RlU2V0UHRyIHJldDsKKworICAgIGlmIChub2RlID09IE5VTEwpCisJcmV0dXJuKG5vZGVzKTsKKworICAgIHJldCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybihyZXQpOworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzKSB8fAorCSgheG1sWFBhdGhOb2RlU2V0Q29udGFpbnMobm9kZXMsIG5vZGUpKSkKKwlyZXR1cm4ocmV0KTsKKworICAgIGwgPSB4bWxYUGF0aE5vZGVTZXRHZXRMZW5ndGgobm9kZXMpOworICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHsKKwljdXIgPSB4bWxYUGF0aE5vZGVTZXRJdGVtKG5vZGVzLCBpKTsKKwlpZiAoY3VyID09IG5vZGUpCisJICAgIGJyZWFrOworCXhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZShyZXQsIGN1cik7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTm9kZUxlYWRpbmc6CisgKiBAbm9kZXM6ICBhIG5vZGUtc2V0CisgKiBAbm9kZTogIGEgbm9kZQorICoKKyAqIEltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyBsZWFkaW5nKCkgZnVuY3Rpb246CisgKiAgICBub2RlLXNldCBzZXQ6bGVhZGluZyAobm9kZS1zZXQsIG5vZGUtc2V0KQorICogQG5vZGVzIGlzIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciwgdGhlbiAjZXhzbFNldHNOb2RlTGVhZGluZ1NvcnRlZAorICogaXMgY2FsbGVkLgorICoKKyAqIFJldHVybnMgdGhlIG5vZGVzIGluIEBub2RlcyB0aGF0IHByZWNlZGUgQG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsCisgKiAgICAgICAgIEBub2RlcyBpZiBAbm9kZSBpcyBOVUxMIG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlcworICogICAgICAgICBkb2Vzbid0IGNvbnRhaW4gQG5vZGUKKyAqLworeG1sTm9kZVNldFB0cgoreG1sWFBhdGhOb2RlTGVhZGluZyAoeG1sTm9kZVNldFB0ciBub2RlcywgeG1sTm9kZVB0ciBub2RlKSB7CisgICAgeG1sWFBhdGhOb2RlU2V0U29ydChub2Rlcyk7CisgICAgcmV0dXJuKHhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQobm9kZXMsIG5vZGUpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aExlYWRpbmdTb3J0ZWQ6CisgKiBAbm9kZXMxOiAgYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyCisgKiBAbm9kZXMyOiAgYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyCisgKgorICogSW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGxlYWRpbmcoKSBmdW5jdGlvbjoKKyAqICAgIG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpCisgKgorICogUmV0dXJucyB0aGUgbm9kZXMgaW4gQG5vZGVzMSB0aGF0IHByZWNlZGUgdGhlIGZpcnN0IG5vZGUgaW4gQG5vZGVzMgorICogICAgICAgICBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzMSBpZiBAbm9kZXMyIGlzIE5VTEwgb3IgZW1wdHkgb3IKKyAqICAgICAgICAgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzMSBkb2Vzbid0IGNvbnRhaW4gQG5vZGVzMgorICovCit4bWxOb2RlU2V0UHRyCit4bWxYUGF0aExlYWRpbmdTb3J0ZWQgKHhtbE5vZGVTZXRQdHIgbm9kZXMxLCB4bWxOb2RlU2V0UHRyIG5vZGVzMikgeworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMikpCisJcmV0dXJuKG5vZGVzMSk7CisgICAgcmV0dXJuKHhtbFhQYXRoTm9kZUxlYWRpbmdTb3J0ZWQobm9kZXMxLAorCQkJCSAgICAgeG1sWFBhdGhOb2RlU2V0SXRlbShub2RlczIsIDEpKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhMZWFkaW5nOgorICogQG5vZGVzMTogIGEgbm9kZS1zZXQKKyAqIEBub2RlczI6ICBhIG5vZGUtc2V0CisgKgorICogSW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIGxlYWRpbmcoKSBmdW5jdGlvbjoKKyAqICAgIG5vZGUtc2V0IHNldDpsZWFkaW5nIChub2RlLXNldCwgbm9kZS1zZXQpCisgKiBAbm9kZXMxIGFuZCBAbm9kZXMyIGFyZSBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4KKyAqICNleHNsU2V0c0xlYWRpbmdTb3J0ZWQgaXMgY2FsbGVkLgorICoKKyAqIFJldHVybnMgdGhlIG5vZGVzIGluIEBub2RlczEgdGhhdCBwcmVjZWRlIHRoZSBmaXJzdCBub2RlIGluIEBub2RlczIKKyAqICAgICAgICAgaW4gZG9jdW1lbnQgb3JkZXIsIEBub2RlczEgaWYgQG5vZGVzMiBpcyBOVUxMIG9yIGVtcHR5IG9yCisgKiAgICAgICAgIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlczEgZG9lc24ndCBjb250YWluIEBub2RlczIKKyAqLworeG1sTm9kZVNldFB0cgoreG1sWFBhdGhMZWFkaW5nICh4bWxOb2RlU2V0UHRyIG5vZGVzMSwgeG1sTm9kZVNldFB0ciBub2RlczIpIHsKKyAgICBpZiAoeG1sWFBhdGhOb2RlU2V0SXNFbXB0eShub2RlczIpKQorCXJldHVybihub2RlczEpOworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMSkpCisJcmV0dXJuKHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKSk7CisgICAgeG1sWFBhdGhOb2RlU2V0U29ydChub2RlczEpOworICAgIHhtbFhQYXRoTm9kZVNldFNvcnQobm9kZXMyKTsKKyAgICByZXR1cm4oeG1sWFBhdGhOb2RlTGVhZGluZ1NvcnRlZChub2RlczEsCisJCQkJICAgICB4bWxYUGF0aE5vZGVTZXRJdGVtKG5vZGVzMiwgMSkpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5vZGVUcmFpbGluZ1NvcnRlZDoKKyAqIEBub2RlczogYSBub2RlLXNldCwgc29ydGVkIGJ5IGRvY3VtZW50IG9yZGVyCisgKiBAbm9kZTogYSBub2RlCisgKgorICogSW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIHRyYWlsaW5nKCkgZnVuY3Rpb246CisgKiAgICBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCkKKyAqCisgKiBSZXR1cm5zIHRoZSBub2RlcyBpbiBAbm9kZXMgdGhhdCBmb2xsb3cgQG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsCisgKiAgICAgICAgIEBub2RlcyBpZiBAbm9kZSBpcyBOVUxMIG9yIGFuIGVtcHR5IG5vZGUtc2V0IGlmIEBub2RlcworICogICAgICAgICBkb2Vzbid0IGNvbnRhaW4gQG5vZGUKKyAqLworeG1sTm9kZVNldFB0cgoreG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQgKHhtbE5vZGVTZXRQdHIgbm9kZXMsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGludCBpLCBsOworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIHhtbE5vZGVTZXRQdHIgcmV0OworCisgICAgaWYgKG5vZGUgPT0gTlVMTCkKKwlyZXR1cm4obm9kZXMpOworCisgICAgcmV0ID0geG1sWFBhdGhOb2RlU2V0Q3JlYXRlKE5VTEwpOworICAgIGlmIChyZXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHJldCk7CisgICAgaWYgKHhtbFhQYXRoTm9kZVNldElzRW1wdHkobm9kZXMpIHx8CisJKCF4bWxYUGF0aE5vZGVTZXRDb250YWlucyhub2Rlcywgbm9kZSkpKQorCXJldHVybihyZXQpOworCisgICAgbCA9IHhtbFhQYXRoTm9kZVNldEdldExlbmd0aChub2Rlcyk7CisgICAgZm9yIChpID0gbCAtIDE7IGkgPj0gMDsgaS0tKSB7CisJY3VyID0geG1sWFBhdGhOb2RlU2V0SXRlbShub2RlcywgaSk7CisJaWYgKGN1ciA9PSBub2RlKQorCSAgICBicmVhazsKKwl4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUocmV0LCBjdXIpOworICAgIH0KKyAgICB4bWxYUGF0aE5vZGVTZXRTb3J0KHJldCk7CS8qIGJ1ZyA0MTM0NTEgKi8KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5vZGVUcmFpbGluZzoKKyAqIEBub2RlczogIGEgbm9kZS1zZXQKKyAqIEBub2RlOiAgYSBub2RlCisgKgorICogSW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIHRyYWlsaW5nKCkgZnVuY3Rpb246CisgKiAgICBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCkKKyAqIEBub2RlcyBpcyBzb3J0ZWQgYnkgZG9jdW1lbnQgb3JkZXIsIHRoZW4gI3htbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkCisgKiBpcyBjYWxsZWQuCisgKgorICogUmV0dXJucyB0aGUgbm9kZXMgaW4gQG5vZGVzIHRoYXQgZm9sbG93IEBub2RlIGluIGRvY3VtZW50IG9yZGVyLAorICogICAgICAgICBAbm9kZXMgaWYgQG5vZGUgaXMgTlVMTCBvciBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMKKyAqICAgICAgICAgZG9lc24ndCBjb250YWluIEBub2RlCisgKi8KK3htbE5vZGVTZXRQdHIKK3htbFhQYXRoTm9kZVRyYWlsaW5nICh4bWxOb2RlU2V0UHRyIG5vZGVzLCB4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICB4bWxYUGF0aE5vZGVTZXRTb3J0KG5vZGVzKTsKKyAgICByZXR1cm4oeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQobm9kZXMsIG5vZGUpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFRyYWlsaW5nU29ydGVkOgorICogQG5vZGVzMTogIGEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcgorICogQG5vZGVzMjogIGEgbm9kZS1zZXQsIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlcgorICoKKyAqIEltcGxlbWVudHMgdGhlIEVYU0xUIC0gU2V0cyB0cmFpbGluZygpIGZ1bmN0aW9uOgorICogICAgbm9kZS1zZXQgc2V0OnRyYWlsaW5nIChub2RlLXNldCwgbm9kZS1zZXQpCisgKgorICogUmV0dXJucyB0aGUgbm9kZXMgaW4gQG5vZGVzMSB0aGF0IGZvbGxvdyB0aGUgZmlyc3Qgbm9kZSBpbiBAbm9kZXMyCisgKiAgICAgICAgIGluIGRvY3VtZW50IG9yZGVyLCBAbm9kZXMxIGlmIEBub2RlczIgaXMgTlVMTCBvciBlbXB0eSBvcgorICogICAgICAgICBhbiBlbXB0eSBub2RlLXNldCBpZiBAbm9kZXMxIGRvZXNuJ3QgY29udGFpbiBAbm9kZXMyCisgKi8KK3htbE5vZGVTZXRQdHIKK3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQgKHhtbE5vZGVTZXRQdHIgbm9kZXMxLCB4bWxOb2RlU2V0UHRyIG5vZGVzMikgeworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMikpCisJcmV0dXJuKG5vZGVzMSk7CisgICAgcmV0dXJuKHhtbFhQYXRoTm9kZVRyYWlsaW5nU29ydGVkKG5vZGVzMSwKKwkJCQkgICAgICB4bWxYUGF0aE5vZGVTZXRJdGVtKG5vZGVzMiwgMCkpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFRyYWlsaW5nOgorICogQG5vZGVzMTogIGEgbm9kZS1zZXQKKyAqIEBub2RlczI6ICBhIG5vZGUtc2V0CisgKgorICogSW1wbGVtZW50cyB0aGUgRVhTTFQgLSBTZXRzIHRyYWlsaW5nKCkgZnVuY3Rpb246CisgKiAgICBub2RlLXNldCBzZXQ6dHJhaWxpbmcgKG5vZGUtc2V0LCBub2RlLXNldCkKKyAqIEBub2RlczEgYW5kIEBub2RlczIgYXJlIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciwgdGhlbgorICogI3htbFhQYXRoVHJhaWxpbmdTb3J0ZWQgaXMgY2FsbGVkLgorICoKKyAqIFJldHVybnMgdGhlIG5vZGVzIGluIEBub2RlczEgdGhhdCBmb2xsb3cgdGhlIGZpcnN0IG5vZGUgaW4gQG5vZGVzMgorICogICAgICAgICBpbiBkb2N1bWVudCBvcmRlciwgQG5vZGVzMSBpZiBAbm9kZXMyIGlzIE5VTEwgb3IgZW1wdHkgb3IKKyAqICAgICAgICAgYW4gZW1wdHkgbm9kZS1zZXQgaWYgQG5vZGVzMSBkb2Vzbid0IGNvbnRhaW4gQG5vZGVzMgorICovCit4bWxOb2RlU2V0UHRyCit4bWxYUGF0aFRyYWlsaW5nICh4bWxOb2RlU2V0UHRyIG5vZGVzMSwgeG1sTm9kZVNldFB0ciBub2RlczIpIHsKKyAgICBpZiAoeG1sWFBhdGhOb2RlU2V0SXNFbXB0eShub2RlczIpKQorCXJldHVybihub2RlczEpOworICAgIGlmICh4bWxYUGF0aE5vZGVTZXRJc0VtcHR5KG5vZGVzMSkpCisJcmV0dXJuKHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKSk7CisgICAgeG1sWFBhdGhOb2RlU2V0U29ydChub2RlczEpOworICAgIHhtbFhQYXRoTm9kZVNldFNvcnQobm9kZXMyKTsKKyAgICByZXR1cm4oeG1sWFBhdGhOb2RlVHJhaWxpbmdTb3J0ZWQobm9kZXMxLAorCQkJCSAgICAgIHhtbFhQYXRoTm9kZVNldEl0ZW0obm9kZXMyLCAwKSkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlSb3V0aW5lcyB0byBoYW5kbGUgZXh0cmEgZnVuY3Rpb25zCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhQYXRoUmVnaXN0ZXJGdW5jOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQG5hbWU6ICB0aGUgZnVuY3Rpb24gbmFtZQorICogQGY6ICB0aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gb3IgTlVMTAorICoKKyAqIFJlZ2lzdGVyIGEgbmV3IGZ1bmN0aW9uLiBJZiBAZiBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzIHRoZSBmdW5jdGlvbgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxYUGF0aFJlZ2lzdGVyRnVuYyh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJICAgICB4bWxYUGF0aEZ1bmN0aW9uIGYpIHsKKyAgICByZXR1cm4oeG1sWFBhdGhSZWdpc3RlckZ1bmNOUyhjdHh0LCBuYW1lLCBOVUxMLCBmKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhSZWdpc3RlckZ1bmNOUzoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIGZ1bmN0aW9uIG5hbWUKKyAqIEBuc191cmk6ICB0aGUgZnVuY3Rpb24gbmFtZXNwYWNlIFVSSQorICogQGY6ICB0aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gb3IgTlVMTAorICoKKyAqIFJlZ2lzdGVyIGEgbmV3IGZ1bmN0aW9uLiBJZiBAZiBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzIHRoZSBmdW5jdGlvbgorICoKKyAqIFJldHVybnMgMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsIC0xIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworaW50Cit4bWxYUGF0aFJlZ2lzdGVyRnVuY05TKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkgICAgICAgY29uc3QgeG1sQ2hhciAqbnNfdXJpLCB4bWxYUGF0aEZ1bmN0aW9uIGYpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworCisgICAgaWYgKGN0eHQtPmZ1bmNIYXNoID09IE5VTEwpCisJY3R4dC0+ZnVuY0hhc2ggPSB4bWxIYXNoQ3JlYXRlKDApOworICAgIGlmIChjdHh0LT5mdW5jSGFzaCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKGYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHhtbEhhc2hSZW1vdmVFbnRyeTIoY3R4dC0+ZnVuY0hhc2gsIG5hbWUsIG5zX3VyaSwgTlVMTCkpOworICAgIHJldHVybih4bWxIYXNoQWRkRW50cnkyKGN0eHQtPmZ1bmNIYXNoLCBuYW1lLCBuc191cmksIFhNTF9DQVNUX0ZQVFIoZikpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFJlZ2lzdGVyRnVuY0xvb2t1cDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGNvbnRleHQKKyAqIEBmOiAgdGhlIGxvb2t1cCBmdW5jdGlvbgorICogQGZ1bmNDdHh0OiAgdGhlIGxvb2t1cCBkYXRhCisgKgorICogUmVnaXN0ZXJzIGFuIGV4dGVybmFsIG1lY2hhbmlzbSB0byBkbyBmdW5jdGlvbiBsb29rdXAuCisgKi8KK3ZvaWQKK3htbFhQYXRoUmVnaXN0ZXJGdW5jTG9va3VwICh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwKKwkJCSAgICB4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIGYsCisJCQkgICAgdm9pZCAqZnVuY0N0eHQpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybjsKKyAgICBjdHh0LT5mdW5jTG9va3VwRnVuYyA9IGY7CisgICAgY3R4dC0+ZnVuY0xvb2t1cERhdGEgPSBmdW5jQ3R4dDsKK30KKworLyoqCisgKiB4bWxYUGF0aEZ1bmN0aW9uTG9va3VwOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQG5hbWU6ICB0aGUgZnVuY3Rpb24gbmFtZQorICoKKyAqIFNlYXJjaCBpbiB0aGUgRnVuY3Rpb24gYXJyYXkgb2YgdGhlIGNvbnRleHQgZm9yIHRoZSBnaXZlbgorICogZnVuY3Rpb24uCisgKgorICogUmV0dXJucyB0aGUgeG1sWFBhdGhGdW5jdGlvbiBvciBOVUxMIGlmIG5vdCBmb3VuZAorICovCit4bWxYUGF0aEZ1bmN0aW9uCit4bWxYUGF0aEZ1bmN0aW9uTG9va3VwKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpuYW1lKSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4gKE5VTEwpOworCisgICAgaWYgKGN0eHQtPmZ1bmNMb29rdXBGdW5jICE9IE5VTEwpIHsKKwl4bWxYUGF0aEZ1bmN0aW9uIHJldDsKKwl4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIGY7CisKKwlmID0gY3R4dC0+ZnVuY0xvb2t1cEZ1bmM7CisJcmV0ID0gZihjdHh0LT5mdW5jTG9va3VwRGF0YSwgbmFtZSwgTlVMTCk7CisJaWYgKHJldCAhPSBOVUxMKQorCSAgICByZXR1cm4ocmV0KTsKKyAgICB9CisgICAgcmV0dXJuKHhtbFhQYXRoRnVuY3Rpb25Mb29rdXBOUyhjdHh0LCBuYW1lLCBOVUxMKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQG5hbWU6ICB0aGUgZnVuY3Rpb24gbmFtZQorICogQG5zX3VyaTogIHRoZSBmdW5jdGlvbiBuYW1lc3BhY2UgVVJJCisgKgorICogU2VhcmNoIGluIHRoZSBGdW5jdGlvbiBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuCisgKiBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxYUGF0aEZ1bmN0aW9uIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KK3htbFhQYXRoRnVuY3Rpb24KK3htbFhQYXRoRnVuY3Rpb25Mb29rdXBOUyh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqbmFtZSwKKwkJCSBjb25zdCB4bWxDaGFyICpuc191cmkpIHsKKyAgICB4bWxYUGF0aEZ1bmN0aW9uIHJldDsKKworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChuYW1lID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKGN0eHQtPmZ1bmNMb29rdXBGdW5jICE9IE5VTEwpIHsKKwl4bWxYUGF0aEZ1bmNMb29rdXBGdW5jIGY7CisKKwlmID0gY3R4dC0+ZnVuY0xvb2t1cEZ1bmM7CisJcmV0ID0gZihjdHh0LT5mdW5jTG9va3VwRGF0YSwgbmFtZSwgbnNfdXJpKTsKKwlpZiAocmV0ICE9IE5VTEwpCisJICAgIHJldHVybihyZXQpOworICAgIH0KKworICAgIGlmIChjdHh0LT5mdW5jSGFzaCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIFhNTF9DQVNUX0ZQVFIocmV0KSA9IHhtbEhhc2hMb29rdXAyKGN0eHQtPmZ1bmNIYXNoLCBuYW1lLCBuc191cmkpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGNvbnRleHQKKyAqCisgKiBDbGVhbnVwIHRoZSBYUGF0aCBjb250ZXh0IGRhdGEgYXNzb2NpYXRlZCB0byByZWdpc3RlcmVkIGZ1bmN0aW9ucworICovCit2b2lkCit4bWxYUGF0aFJlZ2lzdGVyZWRGdW5jc0NsZWFudXAoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybjsKKworICAgIHhtbEhhc2hGcmVlKGN0eHQtPmZ1bmNIYXNoLCBOVUxMKTsKKyAgICBjdHh0LT5mdW5jSGFzaCA9IE5VTEw7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlSb3V0aW5lcyB0byBoYW5kbGUgVmFyaWFibGVzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZToKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIHZhcmlhYmxlIG5hbWUKKyAqIEB2YWx1ZTogIHRoZSB2YXJpYWJsZSB2YWx1ZSBvciBOVUxMCisgKgorICogUmVnaXN0ZXIgYSBuZXcgdmFyaWFibGUgdmFsdWUuIElmIEB2YWx1ZSBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzCisgKiB0aGUgdmFyaWFibGUKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpuYW1lLAorCQkJIHhtbFhQYXRoT2JqZWN0UHRyIHZhbHVlKSB7CisgICAgcmV0dXJuKHhtbFhQYXRoUmVnaXN0ZXJWYXJpYWJsZU5TKGN0eHQsIG5hbWUsIE5VTEwsIHZhbHVlKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlM6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBjb250ZXh0CisgKiBAbmFtZTogIHRoZSB2YXJpYWJsZSBuYW1lCisgKiBAbnNfdXJpOiAgdGhlIHZhcmlhYmxlIG5hbWVzcGFjZSBVUkkKKyAqIEB2YWx1ZTogIHRoZSB2YXJpYWJsZSB2YWx1ZSBvciBOVUxMCisgKgorICogUmVnaXN0ZXIgYSBuZXcgdmFyaWFibGUgdmFsdWUuIElmIEB2YWx1ZSBpcyBOVUxMIGl0IHVucmVnaXN0ZXJzCisgKiB0aGUgdmFyaWFibGUKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTlMoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkgICBjb25zdCB4bWxDaGFyICpuc191cmksCisJCQkgICB4bWxYUGF0aE9iamVjdFB0ciB2YWx1ZSkgeworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorCXJldHVybigtMSk7CisKKyAgICBpZiAoY3R4dC0+dmFySGFzaCA9PSBOVUxMKQorCWN0eHQtPnZhckhhc2ggPSB4bWxIYXNoQ3JlYXRlKDApOworICAgIGlmIChjdHh0LT52YXJIYXNoID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuKHhtbEhhc2hSZW1vdmVFbnRyeTIoY3R4dC0+dmFySGFzaCwgbmFtZSwgbnNfdXJpLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxIYXNoRGVhbGxvY2F0b3IpeG1sWFBhdGhGcmVlT2JqZWN0KSk7CisgICAgcmV0dXJuKHhtbEhhc2hVcGRhdGVFbnRyeTIoY3R4dC0+dmFySGFzaCwgbmFtZSwgbnNfdXJpLAorCQkJICAgICAgICh2b2lkICopIHZhbHVlLAorCQkJICAgICAgICh4bWxIYXNoRGVhbGxvY2F0b3IpeG1sWFBhdGhGcmVlT2JqZWN0KSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQGY6ICB0aGUgbG9va3VwIGZ1bmN0aW9uCisgKiBAZGF0YTogIHRoZSBsb29rdXAgZGF0YQorICoKKyAqIHJlZ2lzdGVyIGFuIGV4dGVybmFsIG1lY2hhbmlzbSB0byBkbyB2YXJpYWJsZSBsb29rdXAKKyAqLwordm9pZAoreG1sWFBhdGhSZWdpc3RlclZhcmlhYmxlTG9va3VwKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LAorCSB4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyBmLCB2b2lkICpkYXRhKSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm47CisgICAgY3R4dC0+dmFyTG9va3VwRnVuYyA9IGY7CisgICAgY3R4dC0+dmFyTG9va3VwRGF0YSA9IGRhdGE7Cit9CisKKy8qKgorICogeG1sWFBhdGhWYXJpYWJsZUxvb2t1cDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGNvbnRleHQKKyAqIEBuYW1lOiAgdGhlIHZhcmlhYmxlIG5hbWUKKyAqCisgKiBTZWFyY2ggaW4gdGhlIFZhcmlhYmxlIGFycmF5IG9mIHRoZSBjb250ZXh0IGZvciB0aGUgZ2l2ZW4KKyAqIHZhcmlhYmxlIHZhbHVlLgorICoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvciBOVUxMIGlmIG5vdCBmb3VuZAorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhWYXJpYWJsZUxvb2t1cCh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCwgY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisgICAgaWYgKGN0eHQtPnZhckxvb2t1cEZ1bmMgIT0gTlVMTCkgeworCXhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworCXJldCA9ICgoeG1sWFBhdGhWYXJpYWJsZUxvb2t1cEZ1bmMpY3R4dC0+dmFyTG9va3VwRnVuYykKKwkgICAgICAgIChjdHh0LT52YXJMb29rdXBEYXRhLCBuYW1lLCBOVUxMKTsKKwlyZXR1cm4ocmV0KTsKKyAgICB9CisgICAgcmV0dXJuKHhtbFhQYXRoVmFyaWFibGVMb29rdXBOUyhjdHh0LCBuYW1lLCBOVUxMKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhWYXJpYWJsZUxvb2t1cE5TOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQG5hbWU6ICB0aGUgdmFyaWFibGUgbmFtZQorICogQG5zX3VyaTogIHRoZSB2YXJpYWJsZSBuYW1lc3BhY2UgVVJJCisgKgorICogU2VhcmNoIGluIHRoZSBWYXJpYWJsZSBhcnJheSBvZiB0aGUgY29udGV4dCBmb3IgdGhlIGdpdmVuCisgKiB2YXJpYWJsZSB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIHRoZSBhIGNvcHkgb2YgdGhlIHZhbHVlIG9yIE5VTEwgaWYgbm90IGZvdW5kCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKm5hbWUsCisJCQkgY29uc3QgeG1sQ2hhciAqbnNfdXJpKSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICBpZiAoY3R4dC0+dmFyTG9va3VwRnVuYyAhPSBOVUxMKSB7CisJeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisJcmV0ID0gKCh4bWxYUGF0aFZhcmlhYmxlTG9va3VwRnVuYyljdHh0LT52YXJMb29rdXBGdW5jKQorCSAgICAgICAgKGN0eHQtPnZhckxvb2t1cERhdGEsIG5hbWUsIG5zX3VyaSk7CisJaWYgKHJldCAhPSBOVUxMKSByZXR1cm4ocmV0KTsKKyAgICB9CisKKyAgICBpZiAoY3R4dC0+dmFySGFzaCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIHJldHVybih4bWxYUGF0aENhY2hlT2JqZWN0Q29weShjdHh0LCAoeG1sWFBhdGhPYmplY3RQdHIpCisJCXhtbEhhc2hMb29rdXAyKGN0eHQtPnZhckhhc2gsIG5hbWUsIG5zX3VyaSkpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICoKKyAqIENsZWFudXAgdGhlIFhQYXRoIGNvbnRleHQgZGF0YSBhc3NvY2lhdGVkIHRvIHJlZ2lzdGVyZWQgdmFyaWFibGVzCisgKi8KK3ZvaWQKK3htbFhQYXRoUmVnaXN0ZXJlZFZhcmlhYmxlc0NsZWFudXAoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybjsKKworICAgIHhtbEhhc2hGcmVlKGN0eHQtPnZhckhhc2gsICh4bWxIYXNoRGVhbGxvY2F0b3IpeG1sWFBhdGhGcmVlT2JqZWN0KTsKKyAgICBjdHh0LT52YXJIYXNoID0gTlVMTDsKK30KKworLyoqCisgKiB4bWxYUGF0aFJlZ2lzdGVyTnM6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBjb250ZXh0CisgKiBAcHJlZml4OiAgdGhlIG5hbWVzcGFjZSBwcmVmaXggY2Fubm90IGJlIE5VTEwgb3IgZW1wdHkgc3RyaW5nCisgKiBAbnNfdXJpOiAgdGhlIG5hbWVzcGFjZSBuYW1lCisgKgorICogUmVnaXN0ZXIgYSBuZXcgbmFtZXNwYWNlLiBJZiBAbnNfdXJpIGlzIE5VTEwgaXQgdW5yZWdpc3RlcnMKKyAqIHRoZSBuYW1lc3BhY2UKKyAqCisgKiBSZXR1cm5zIDAgaW4gY2FzZSBvZiBzdWNjZXNzLCAtMSBpbiBjYXNlIG9mIGVycm9yCisgKi8KK2ludAoreG1sWFBhdGhSZWdpc3Rlck5zKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpwcmVmaXgsCisJCQkgICBjb25zdCB4bWxDaGFyICpuc191cmkpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHByZWZpeCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHByZWZpeFswXSA9PSAwKQorCXJldHVybigtMSk7CisKKyAgICBpZiAoY3R4dC0+bnNIYXNoID09IE5VTEwpCisJY3R4dC0+bnNIYXNoID0geG1sSGFzaENyZWF0ZSgxMCk7CisgICAgaWYgKGN0eHQtPm5zSGFzaCA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKG5zX3VyaSA9PSBOVUxMKQorICAgICAgICByZXR1cm4oeG1sSGFzaFJlbW92ZUVudHJ5KGN0eHQtPm5zSGFzaCwgcHJlZml4LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbEhhc2hEZWFsbG9jYXRvcil4bWxGcmVlKSk7CisgICAgcmV0dXJuKHhtbEhhc2hVcGRhdGVFbnRyeShjdHh0LT5uc0hhc2gsIHByZWZpeCwgKHZvaWQgKikgeG1sU3RyZHVwKG5zX3VyaSksCisJCQkgICAgICAoeG1sSGFzaERlYWxsb2NhdG9yKXhtbEZyZWUpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5zTG9va3VwOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQHByZWZpeDogIHRoZSBuYW1lc3BhY2UgcHJlZml4IHZhbHVlCisgKgorICogU2VhcmNoIGluIHRoZSBuYW1lc3BhY2UgZGVjbGFyYXRpb24gYXJyYXkgb2YgdGhlIGNvbnRleHQgZm9yIHRoZSBnaXZlbgorICogbmFtZXNwYWNlIG5hbWUgYXNzb2NpYXRlZCB0byB0aGUgZ2l2ZW4gcHJlZml4CisgKgorICogUmV0dXJucyB0aGUgdmFsdWUgb3IgTlVMTCBpZiBub3QgZm91bmQKKyAqLworY29uc3QgeG1sQ2hhciAqCit4bWxYUGF0aE5zTG9va3VwKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpwcmVmaXgpIHsKKyAgICBpZiAoY3R4dCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworCisjaWZkZWYgWE1MX1hNTF9OQU1FU1BBQ0UKKyAgICBpZiAoeG1sU3RyRXF1YWwocHJlZml4LCAoY29uc3QgeG1sQ2hhciAqKSAieG1sIikpCisJcmV0dXJuKFhNTF9YTUxfTkFNRVNQQUNFKTsKKyNlbmRpZgorCisgICAgaWYgKGN0eHQtPm5hbWVzcGFjZXMgIT0gTlVMTCkgeworCWludCBpOworCisJZm9yIChpID0gMDtpIDwgY3R4dC0+bnNOcjtpKyspIHsKKwkgICAgaWYgKChjdHh0LT5uYW1lc3BhY2VzW2ldICE9IE5VTEwpICYmCisJCSh4bWxTdHJFcXVhbChjdHh0LT5uYW1lc3BhY2VzW2ldLT5wcmVmaXgsIHByZWZpeCkpKQorCQlyZXR1cm4oY3R4dC0+bmFtZXNwYWNlc1tpXS0+aHJlZik7CisJfQorICAgIH0KKworICAgIHJldHVybigoY29uc3QgeG1sQ2hhciAqKSB4bWxIYXNoTG9va3VwKGN0eHQtPm5zSGFzaCwgcHJlZml4KSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICoKKyAqIENsZWFudXAgdGhlIFhQYXRoIGNvbnRleHQgZGF0YSBhc3NvY2lhdGVkIHRvIHJlZ2lzdGVyZWQgdmFyaWFibGVzCisgKi8KK3ZvaWQKK3htbFhQYXRoUmVnaXN0ZXJlZE5zQ2xlYW51cCh4bWxYUGF0aENvbnRleHRQdHIgY3R4dCkgeworICAgIGlmIChjdHh0ID09IE5VTEwpCisJcmV0dXJuOworCisgICAgeG1sSGFzaEZyZWUoY3R4dC0+bnNIYXNoLCAoeG1sSGFzaERlYWxsb2NhdG9yKXhtbEZyZWUpOworICAgIGN0eHQtPm5zSGFzaCA9IE5VTEw7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlSb3V0aW5lcyB0byBoYW5kbGUgVmFsdWVzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBBbGxvY2F0aW9ucyBhcmUgdGVycmlibGUsIG9uZSBuZWVkcyB0byBvcHRpbWl6ZSBhbGwgdGhpcyAhISEgKi8KKworLyoqCisgKiB4bWxYUGF0aE5ld0Zsb2F0OgorICogQHZhbDogIHRoZSBkb3VibGUgdmFsdWUKKyAqCisgKiBDcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBkb3VibGUgYW5kIG9mIHZhbHVlIEB2YWwKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQYXRoTmV3RmxvYXQoZG91YmxlIHZhbCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgZmxvYXQgb2JqZWN0XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICByZXQtPnR5cGUgPSBYUEFUSF9OVU1CRVI7CisgICAgcmV0LT5mbG9hdHZhbCA9IHZhbDsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKyAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoTlVMTCwgWFBBVEhfTlVNQkVSKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV3Qm9vbGVhbjoKKyAqIEB2YWw6ICB0aGUgYm9vbGVhbiB2YWx1ZQorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIGJvb2xlYW4gYW5kIG9mIHZhbHVlIEB2YWwKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQYXRoTmV3Qm9vbGVhbihpbnQgdmFsKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJjcmVhdGluZyBib29sZWFuIG9iamVjdFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgcmV0LT50eXBlID0gWFBBVEhfQk9PTEVBTjsKKyAgICByZXQtPmJvb2x2YWwgPSAodmFsICE9IDApOworI2lmZGVmIFhQX0RFQlVHX09CSl9VU0FHRQorICAgIHhtbFhQYXRoRGVidWdPYmpVc2FnZVJlcXVlc3RlZChOVUxMLCBYUEFUSF9CT09MRUFOKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV3U3RyaW5nOgorICogQHZhbDogIHRoZSB4bWxDaGFyICogdmFsdWUKKyAqCisgKiBDcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBzdHJpbmcgYW5kIG9mIHZhbHVlIEB2YWwKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQYXRoTmV3U3RyaW5nKGNvbnN0IHhtbENoYXIgKnZhbCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgc3RyaW5nIG9iamVjdFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgcmV0LT50eXBlID0gWFBBVEhfU1RSSU5HOworICAgIGlmICh2YWwgIT0gTlVMTCkKKwlyZXQtPnN0cmluZ3ZhbCA9IHhtbFN0cmR1cCh2YWwpOworICAgIGVsc2UKKwlyZXQtPnN0cmluZ3ZhbCA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSIiKTsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKyAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoTlVMTCwgWFBBVEhfU1RSSU5HKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoV3JhcFN0cmluZzoKKyAqIEB2YWw6ICB0aGUgeG1sQ2hhciAqIHZhbHVlCisgKgorICogV3JhcHMgdGhlIEB2YWwgc3RyaW5nIGludG8gYW4gWFBhdGggb2JqZWN0LgorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhXcmFwU3RyaW5nICh4bWxDaGFyICp2YWwpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImNyZWF0aW5nIHN0cmluZyBvYmplY3RcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1NUUklORzsKKyAgICByZXQtPnN0cmluZ3ZhbCA9IHZhbDsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKyAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoTlVMTCwgWFBBVEhfU1RSSU5HKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV3Q1N0cmluZzoKKyAqIEB2YWw6ICB0aGUgY2hhciAqIHZhbHVlCisgKgorICogQ3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgc3RyaW5nIGFuZCBvZiB2YWx1ZSBAdmFsCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aE5ld0NTdHJpbmcoY29uc3QgY2hhciAqdmFsKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFhQYXRoRXJyTWVtb3J5KE5VTEwsICJjcmVhdGluZyBzdHJpbmcgb2JqZWN0XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICByZXQtPnR5cGUgPSBYUEFUSF9TVFJJTkc7CisgICAgcmV0LT5zdHJpbmd2YWwgPSB4bWxTdHJkdXAoQkFEX0NBU1QgdmFsKTsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKyAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoTlVMTCwgWFBBVEhfU1RSSU5HKTsKKyNlbmRpZgorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoV3JhcENTdHJpbmc6CisgKiBAdmFsOiAgdGhlIGNoYXIgKiB2YWx1ZQorICoKKyAqIFdyYXBzIGEgc3RyaW5nIGludG8gYW4gWFBhdGggb2JqZWN0LgorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhXcmFwQ1N0cmluZyAoY2hhciAqIHZhbCkgeworICAgIHJldHVybih4bWxYUGF0aFdyYXBTdHJpbmcoKHhtbENoYXIgKikodmFsKSkpOworfQorCisvKioKKyAqIHhtbFhQYXRoV3JhcEV4dGVybmFsOgorICogQHZhbDogIHRoZSB1c2VyIGRhdGEKKyAqCisgKiBXcmFwcyB0aGUgQHZhbCBkYXRhIGludG8gYW4gWFBhdGggb2JqZWN0LgorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhXcmFwRXh0ZXJuYWwgKHZvaWQgKnZhbCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgdXNlciBvYmplY3RcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1VTRVJTOworICAgIHJldC0+dXNlciA9IHZhbDsKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKyAgICB4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZXF1ZXN0ZWQoTlVMTCwgWFBBVEhfVVNFUlMpOworI2VuZGlmCisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhPYmplY3RDb3B5OgorICogQHZhbDogIHRoZSBvcmlnaW5hbCBvYmplY3QKKyAqCisgKiBhbGxvY2F0ZSBhIG5ldyBjb3B5IG9mIGEgZ2l2ZW4gb2JqZWN0CisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aE9iamVjdENvcHkoeG1sWFBhdGhPYmplY3RQdHIgdmFsKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgaWYgKHZhbCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY29weWluZyBvYmplY3RcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtY3B5KHJldCwgdmFsICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVxdWVzdGVkKE5VTEwsIHZhbC0+dHlwZSk7CisjZW5kaWYKKyAgICBzd2l0Y2ggKHZhbC0+dHlwZSkgeworCWNhc2UgWFBBVEhfQk9PTEVBTjoKKwljYXNlIFhQQVRIX05VTUJFUjoKKwljYXNlIFhQQVRIX1BPSU5UOgorCWNhc2UgWFBBVEhfUkFOR0U6CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfU1RSSU5HOgorCSAgICByZXQtPnN0cmluZ3ZhbCA9IHhtbFN0cmR1cCh2YWwtPnN0cmluZ3ZhbCk7CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfWFNMVF9UUkVFOgorI2lmIDAKKy8qCisgIFJlbW92ZWQgMTEgSnVseSAyMDA0IC0gdGhlIGN1cnJlbnQgaGFuZGxpbmcgb2YgeHNsdCB0bXBSVlQgbm9kZXMgbWVhbnMgdGhhdAorICB0aGlzIHByZXZpb3VzIGhhbmRsaW5nIGlzIG5vIGxvbmdlciBjb3JyZWN0LCBhbmQgY2FuIGNhdXNlIHNvbWUgc2VyaW91cworICBwcm9ibGVtcyAocmVmLiBidWcgMTQ1NTQ3KQorKi8KKwkgICAgaWYgKCh2YWwtPm5vZGVzZXR2YWwgIT0gTlVMTCkgJiYKKwkJKHZhbC0+bm9kZXNldHZhbC0+bm9kZVRhYiAhPSBOVUxMKSkgeworCQl4bWxOb2RlUHRyIGN1ciwgdG1wOworCQl4bWxEb2NQdHIgdG9wOworCisJCXJldC0+Ym9vbHZhbCA9IDE7CisJCXRvcCA9ICB4bWxOZXdEb2MoTlVMTCk7CisJCXRvcC0+bmFtZSA9IChjaGFyICopCisJCSAgICB4bWxTdHJkdXAodmFsLT5ub2Rlc2V0dmFsLT5ub2RlVGFiWzBdLT5uYW1lKTsKKwkJcmV0LT51c2VyID0gdG9wOworCQlpZiAodG9wICE9IE5VTEwpIHsKKwkJICAgIHRvcC0+ZG9jID0gdG9wOworCQkgICAgY3VyID0gdmFsLT5ub2Rlc2V0dmFsLT5ub2RlVGFiWzBdLT5jaGlsZHJlbjsKKwkJICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCQkJdG1wID0geG1sRG9jQ29weU5vZGUoY3VyLCB0b3AsIDEpOworCQkJeG1sQWRkQ2hpbGQoKHhtbE5vZGVQdHIpIHRvcCwgdG1wKTsKKwkJCWN1ciA9IGN1ci0+bmV4dDsKKwkJICAgIH0KKwkJfQorCisJCXJldC0+bm9kZXNldHZhbCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZSgoeG1sTm9kZVB0cikgdG9wKTsKKwkgICAgfSBlbHNlCisJCXJldC0+bm9kZXNldHZhbCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKwkgICAgLyogRGVhbGxvY2F0ZSB0aGUgY29waWVkIHRyZWUgdmFsdWUgKi8KKwkgICAgYnJlYWs7CisjZW5kaWYKKwljYXNlIFhQQVRIX05PREVTRVQ6CisJICAgIHJldC0+bm9kZXNldHZhbCA9IHhtbFhQYXRoTm9kZVNldE1lcmdlKE5VTEwsIHZhbC0+bm9kZXNldHZhbCk7CisJICAgIC8qIERvIG5vdCBkZWFsbG9jYXRlIHRoZSBjb3BpZWQgdHJlZSB2YWx1ZSAqLworCSAgICByZXQtPmJvb2x2YWwgPSAwOworCSAgICBicmVhazsKKwljYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOgorI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKKwl7CisJICAgIHhtbExvY2F0aW9uU2V0UHRyIGxvYyA9IHZhbC0+dXNlcjsKKwkgICAgcmV0LT51c2VyID0gKHZvaWQgKikgeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2UoTlVMTCwgbG9jKTsKKwkgICAgYnJlYWs7CisJfQorI2VuZGlmCisgICAgICAgIGNhc2UgWFBBVEhfVVNFUlM6CisJICAgIHJldC0+dXNlciA9IHZhbC0+dXNlcjsKKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJ4bWxYUGF0aE9iamVjdENvcHk6IHVuc3VwcG9ydGVkIHR5cGUgJWRcbiIsCisJCSAgICB2YWwtPnR5cGUpOworCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhGcmVlT2JqZWN0OgorICogQG9iajogIHRoZSBvYmplY3QgdG8gZnJlZQorICoKKyAqIEZyZWUgdXAgYW4geG1sWFBhdGhPYmplY3RQdHIgb2JqZWN0LgorICovCit2b2lkCit4bWxYUGF0aEZyZWVPYmplY3QoeG1sWFBhdGhPYmplY3RQdHIgb2JqKSB7CisgICAgaWYgKG9iaiA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKChvYmotPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKG9iai0+dHlwZSA9PSBYUEFUSF9YU0xUX1RSRUUpKSB7CisJaWYgKG9iai0+Ym9vbHZhbCkgeworI2lmIDAKKwkgICAgaWYgKG9iai0+dXNlciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgeG1sWFBhdGhGcmVlTm9kZVNldChvYmotPm5vZGVzZXR2YWwpOworCQl4bWxGcmVlTm9kZUxpc3QoKHhtbE5vZGVQdHIpIG9iai0+dXNlcik7CisJICAgIH0gZWxzZQorI2VuZGlmCisJICAgIG9iai0+dHlwZSA9IFhQQVRIX1hTTFRfVFJFRTsgLyogVE9ETzogSnVzdCBmb3IgZGVidWdnaW5nLiAqLworCSAgICBpZiAob2JqLT5ub2Rlc2V0dmFsICE9IE5VTEwpCisJCXhtbFhQYXRoRnJlZVZhbHVlVHJlZShvYmotPm5vZGVzZXR2YWwpOworCX0gZWxzZSB7CisJICAgIGlmIChvYmotPm5vZGVzZXR2YWwgIT0gTlVMTCkKKwkJeG1sWFBhdGhGcmVlTm9kZVNldChvYmotPm5vZGVzZXR2YWwpOworCX0KKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisgICAgfSBlbHNlIGlmIChvYmotPnR5cGUgPT0gWFBBVEhfTE9DQVRJT05TRVQpIHsKKwlpZiAob2JqLT51c2VyICE9IE5VTEwpCisJICAgIHhtbFhQdHJGcmVlTG9jYXRpb25TZXQob2JqLT51c2VyKTsKKyNlbmRpZgorICAgIH0gZWxzZSBpZiAob2JqLT50eXBlID09IFhQQVRIX1NUUklORykgeworCWlmIChvYmotPnN0cmluZ3ZhbCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKG9iai0+c3RyaW5ndmFsKTsKKyAgICB9CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisgICAgeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVsZWFzZWQoTlVMTCwgb2JqLT50eXBlKTsKKyNlbmRpZgorICAgIHhtbEZyZWUob2JqKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFJlbGVhc2VPYmplY3Q6CisgKiBAb2JqOiAgdGhlIHhtbFhQYXRoT2JqZWN0UHRyIHRvIGZyZWUgb3IgdG8gY2FjaGUKKyAqCisgKiBEZXBlbmRpbmcgb24gdGhlIHN0YXRlIG9mIHRoZSBjYWNoZSB0aGlzIGZyZWVzIHRoZSBnaXZlbgorICogWFBhdGggb2JqZWN0IG9yIHN0b3JlcyBpdCBpbiB0aGUgY2FjaGUuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aFJlbGVhc2VPYmplY3QoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoT2JqZWN0UHRyIG9iaikKK3sKKyNkZWZpbmUgWFBfQ0FDSEVfQUREKHNsLCBvKSBpZiAoc2wgPT0gTlVMTCkgeyBcCisJc2wgPSB4bWxQb2ludGVyTGlzdENyZWF0ZSgxMCk7IGlmIChzbCA9PSBOVUxMKSBnb3RvIGZyZWVfb2JqOyB9IFwKKyAgICBpZiAoeG1sUG9pbnRlckxpc3RBZGRTaXplKHNsLCBvYmosIDApID09IC0xKSBnb3RvIGZyZWVfb2JqOworCisjZGVmaW5lIFhQX0NBQ0hFX1dBTlRTKHNsLCBuKSAoKHNsID09IE5VTEwpIHx8ICgoc2wpLT5udW1iZXIgPCBuKSkKKworICAgIGlmIChvYmogPT0gTlVMTCkKKwlyZXR1cm47CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jYWNoZSA9PSBOVUxMKSkgeworCSB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKyAgICB9IGVsc2UgeworCXhtbFhQYXRoQ29udGV4dENhY2hlUHRyIGNhY2hlID0KKwkgICAgKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZTsKKworCXN3aXRjaCAob2JqLT50eXBlKSB7CisJICAgIGNhc2UgWFBBVEhfTk9ERVNFVDoKKwkgICAgY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJCWlmIChvYmotPm5vZGVzZXR2YWwgIT0gTlVMTCkgeworCQkgICAgaWYgKG9iai0+Ym9vbHZhbCkgeworCQkJLyoKKwkJCSogSXQgbG9va3MgbGlrZSB0aGUgQGJvb2x2YWwgaXMgdXNlZCBmb3IKKwkJCSogZXZhbHVhdGlvbiBpZiB0aGlzIGFuIFhTTFQgUmVzdWx0IFRyZWUgRnJhZ21lbnQuCisJCQkqIFRPRE86IENoZWNrIGlmIHRoaXMgYXNzdW1wdGlvbiBpcyBjb3JyZWN0LgorCQkJKi8KKwkJCW9iai0+dHlwZSA9IFhQQVRIX1hTTFRfVFJFRTsgLyoganVzdCBmb3IgZGVidWdnaW5nICovCisJCQl4bWxYUGF0aEZyZWVWYWx1ZVRyZWUob2JqLT5ub2Rlc2V0dmFsKTsKKwkJCW9iai0+bm9kZXNldHZhbCA9IE5VTEw7CisJCSAgICB9IGVsc2UgaWYgKChvYmotPm5vZGVzZXR2YWwtPm5vZGVNYXggPD0gNDApICYmCisJCQkoWFBfQ0FDSEVfV0FOVFMoY2FjaGUtPm5vZGVzZXRPYmpzLAorCQkJCQljYWNoZS0+bWF4Tm9kZXNldCkpKQorCQkgICAgeworCQkJWFBfQ0FDSEVfQUREKGNhY2hlLT5ub2Rlc2V0T2Jqcywgb2JqKTsKKwkJCWdvdG8gb2JqX2NhY2hlZDsKKwkJICAgIH0gZWxzZSB7CisJCQl4bWxYUGF0aEZyZWVOb2RlU2V0KG9iai0+bm9kZXNldHZhbCk7CisJCQlvYmotPm5vZGVzZXR2YWwgPSBOVUxMOworCQkgICAgfQorCQl9CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX1NUUklORzoKKwkJaWYgKG9iai0+c3RyaW5ndmFsICE9IE5VTEwpCisJCSAgICB4bWxGcmVlKG9iai0+c3RyaW5ndmFsKTsKKworCQlpZiAoWFBfQ0FDSEVfV0FOVFMoY2FjaGUtPnN0cmluZ09ianMsIGNhY2hlLT5tYXhTdHJpbmcpKSB7CisJCSAgICBYUF9DQUNIRV9BREQoY2FjaGUtPnN0cmluZ09ianMsIG9iaik7CisJCSAgICBnb3RvIG9ial9jYWNoZWQ7CisJCX0KKwkJYnJlYWs7CisJICAgIGNhc2UgWFBBVEhfQk9PTEVBTjoKKwkJaWYgKFhQX0NBQ0hFX1dBTlRTKGNhY2hlLT5ib29sZWFuT2JqcywgY2FjaGUtPm1heEJvb2xlYW4pKSB7CisJCSAgICBYUF9DQUNIRV9BREQoY2FjaGUtPmJvb2xlYW5PYmpzLCBvYmopOworCQkgICAgZ290byBvYmpfY2FjaGVkOworCQl9CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX05VTUJFUjoKKwkJaWYgKFhQX0NBQ0hFX1dBTlRTKGNhY2hlLT5udW1iZXJPYmpzLCBjYWNoZS0+bWF4TnVtYmVyKSkgeworCQkgICAgWFBfQ0FDSEVfQUREKGNhY2hlLT5udW1iZXJPYmpzLCBvYmopOworCQkgICAgZ290byBvYmpfY2FjaGVkOworCQl9CisJCWJyZWFrOworI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKKwkgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKwkJaWYgKG9iai0+dXNlciAhPSBOVUxMKSB7CisJCSAgICB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0KG9iai0+dXNlcik7CisJCX0KKwkJZ290byBmcmVlX29iajsKKyNlbmRpZgorCSAgICBkZWZhdWx0OgorCQlnb3RvIGZyZWVfb2JqOworCX0KKworCS8qCisJKiBGYWxsYmFjayB0byBhZGRpbmcgdG8gdGhlIG1pc2Mtb2JqZWN0cyBzbG90LgorCSovCisJaWYgKFhQX0NBQ0hFX1dBTlRTKGNhY2hlLT5taXNjT2JqcywgY2FjaGUtPm1heE1pc2MpKSB7CisJICAgIFhQX0NBQ0hFX0FERChjYWNoZS0+bWlzY09ianMsIG9iaik7CisJfSBlbHNlCisJICAgIGdvdG8gZnJlZV9vYmo7CisKK29ial9jYWNoZWQ6CisKKyNpZmRlZiBYUF9ERUJVR19PQkpfVVNBR0UKKwl4bWxYUGF0aERlYnVnT2JqVXNhZ2VSZWxlYXNlZChjdHh0LCBvYmotPnR5cGUpOworI2VuZGlmCisKKwlpZiAob2JqLT5ub2Rlc2V0dmFsICE9IE5VTEwpIHsKKwkgICAgeG1sTm9kZVNldFB0ciB0bXBzZXQgPSBvYmotPm5vZGVzZXR2YWw7CisKKwkgICAgLyoKKwkgICAgKiBUT0RPOiBEdWUgdG8gdGhvc2UgbmFzdHkgbnMtbm9kZXMsIHdlIG5lZWQgdG8gdHJhdmVyc2UKKwkgICAgKiAgdGhlIGxpc3QgYW5kIGZyZWUgdGhlIG5zLW5vZGVzLgorCSAgICAqIFVSR0VOVCBUT0RPOiBDaGVjayBpZiBpdCdzIGFjdHVhbGx5IHNsb3dpbmcgdGhpbmdzIGRvd24uCisJICAgICogIE1heWJlIHdlIHNob3VsZG4ndCB0cnkgdG8gcHJlc2VydmUgdGhlIGxpc3QuCisJICAgICovCisJICAgIGlmICh0bXBzZXQtPm5vZGVOciA+IDEpIHsKKwkJaW50IGk7CisJCXhtbE5vZGVQdHIgbm9kZTsKKworCQlmb3IgKGkgPSAwOyBpIDwgdG1wc2V0LT5ub2RlTnI7IGkrKykgeworCQkgICAgbm9kZSA9IHRtcHNldC0+bm9kZVRhYltpXTsKKwkJICAgIGlmICgobm9kZSAhPSBOVUxMKSAmJgorCQkJKG5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwkJICAgIHsKKwkJCXhtbFhQYXRoTm9kZVNldEZyZWVOcygoeG1sTnNQdHIpIG5vZGUpOworCQkgICAgfQorCQl9CisJICAgIH0gZWxzZSBpZiAodG1wc2V0LT5ub2RlTnIgPT0gMSkgeworCQlpZiAoKHRtcHNldC0+bm9kZVRhYlswXSAhPSBOVUxMKSAmJgorCQkgICAgKHRtcHNldC0+bm9kZVRhYlswXS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCQkgICAgeG1sWFBhdGhOb2RlU2V0RnJlZU5zKCh4bWxOc1B0cikgdG1wc2V0LT5ub2RlVGFiWzBdKTsKKwkgICAgfQorCSAgICB0bXBzZXQtPm5vZGVOciA9IDA7CisJICAgIG1lbXNldChvYmosIDAsIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworCSAgICBvYmotPm5vZGVzZXR2YWwgPSB0bXBzZXQ7CisJfSBlbHNlCisJICAgIG1lbXNldChvYmosIDAsIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworCisJcmV0dXJuOworCitmcmVlX29iajoKKwkvKgorCSogQ2FjaGUgaXMgZnVsbDsgZnJlZSB0aGUgb2JqZWN0LgorCSovCisJaWYgKG9iai0+bm9kZXNldHZhbCAhPSBOVUxMKQorCSAgICB4bWxYUGF0aEZyZWVOb2RlU2V0KG9iai0+bm9kZXNldHZhbCk7CisjaWZkZWYgWFBfREVCVUdfT0JKX1VTQUdFCisJeG1sWFBhdGhEZWJ1Z09ialVzYWdlUmVsZWFzZWQoTlVMTCwgb2JqLT50eXBlKTsKKyNlbmRpZgorCXhtbEZyZWUob2JqKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlUeXBlIENhc3RpbmcgUm91dGluZXMJCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZzoKKyAqIEB2YWw6ICBhIGJvb2xlYW4KKyAqCisgKiBDb252ZXJ0cyBhIGJvb2xlYW4gdG8gaXRzIHN0cmluZyB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZy4KKyAqLworeG1sQ2hhciAqCit4bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmcgKGludCB2YWwpIHsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgaWYgKHZhbCkKKwlyZXQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgInRydWUiKTsKKyAgICBlbHNlCisJcmV0ID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopICJmYWxzZSIpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nOgorICogQHZhbDogIGEgbnVtYmVyCisgKgorICogQ29udmVydHMgYSBudW1iZXIgdG8gaXRzIHN0cmluZyB2YWx1ZS4KKyAqCisgKiBSZXR1cm5zIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZy4KKyAqLworeG1sQ2hhciAqCit4bWxYUGF0aENhc3ROdW1iZXJUb1N0cmluZyAoZG91YmxlIHZhbCkgeworICAgIHhtbENoYXIgKnJldDsKKyAgICBzd2l0Y2ggKHhtbFhQYXRoSXNJbmYodmFsKSkgeworICAgIGNhc2UgMToKKwlyZXQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgIkluZmluaXR5Iik7CisJYnJlYWs7CisgICAgY2FzZSAtMToKKwlyZXQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgIi1JbmZpbml0eSIpOworCWJyZWFrOworICAgIGRlZmF1bHQ6CisJaWYgKHhtbFhQYXRoSXNOYU4odmFsKSkgeworCSAgICByZXQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgIk5hTiIpOworCX0gZWxzZSBpZiAodmFsID09IDAgJiYgeG1sWFBhdGhHZXRTaWduKHZhbCkgIT0gMCkgeworCSAgICByZXQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgIjAiKTsKKwl9IGVsc2UgeworCSAgICAvKiBjb3VsZCBiZSBpbXByb3ZlZCAqLworCSAgICBjaGFyIGJ1ZlsxMDBdOworCSAgICB4bWxYUGF0aEZvcm1hdE51bWJlcih2YWwsIGJ1ZiwgOTkpOworCSAgICBidWZbOTldID0gMDsKKwkgICAgcmV0ID0geG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopIGJ1Zik7CisJfQorICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmc6CisgKiBAbm9kZTogIGEgbm9kZQorICoKKyAqIENvbnZlcnRzIGEgbm9kZSB0byBpdHMgc3RyaW5nIHZhbHVlLgorICoKKyAqIFJldHVybnMgYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nLgorICovCit4bWxDaGFyICoKK3htbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyAoeG1sTm9kZVB0ciBub2RlKSB7Cit4bWxDaGFyICpyZXQ7CisgICAgaWYgKChyZXQgPSB4bWxOb2RlR2V0Q29udGVudChub2RlKSkgPT0gTlVMTCkKKwlyZXQgPSB4bWxTdHJkdXAoKGNvbnN0IHhtbENoYXIgKikgIiIpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZzoKKyAqIEBuczogIGEgbm9kZS1zZXQKKyAqCisgKiBDb252ZXJ0cyBhIG5vZGUtc2V0IHRvIGl0cyBzdHJpbmcgdmFsdWUuCisgKgorICogUmV0dXJucyBhIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcuCisgKi8KK3htbENoYXIgKgoreG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nICh4bWxOb2RlU2V0UHRyIG5zKSB7CisgICAgaWYgKChucyA9PSBOVUxMKSB8fCAobnMtPm5vZGVOciA9PSAwKSB8fCAobnMtPm5vZGVUYWIgPT0gTlVMTCkpCisJcmV0dXJuKHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSAiIikpOworCisgICAgaWYgKG5zLT5ub2RlTnIgPiAxKQorCXhtbFhQYXRoTm9kZVNldFNvcnQobnMpOworICAgIHJldHVybih4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcobnMtPm5vZGVUYWJbMF0pKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhc3RUb1N0cmluZzoKKyAqIEB2YWw6ICBhbiBYUGF0aCBvYmplY3QKKyAqCisgKiBDb252ZXJ0cyBhbiBleGlzdGluZyBvYmplY3QgdG8gaXRzIHN0cmluZygpIGVxdWl2YWxlbnQKKyAqCisgKiBSZXR1cm5zIHRoZSBhbGxvY2F0ZWQgc3RyaW5nIHZhbHVlIG9mIHRoZSBvYmplY3QsIE5VTEwgaW4gY2FzZSBvZiBlcnJvci4KKyAqICAgICAgICAgSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIHN0cmluZyBtZW1vcnkgd2l0aCB4bWxGcmVlKCkuCisgKi8KK3htbENoYXIgKgoreG1sWFBhdGhDYXN0VG9TdHJpbmcoeG1sWFBhdGhPYmplY3RQdHIgdmFsKSB7CisgICAgeG1sQ2hhciAqcmV0ID0gTlVMTDsKKworICAgIGlmICh2YWwgPT0gTlVMTCkKKwlyZXR1cm4oeG1sU3RyZHVwKChjb25zdCB4bWxDaGFyICopICIiKSk7CisgICAgc3dpdGNoICh2YWwtPnR5cGUpIHsKKwljYXNlIFhQQVRIX1VOREVGSU5FRDoKKyNpZmRlZiBERUJVR19FWFBSCisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiU3RyaW5nOiB1bmRlZmluZWRcbiIpOworI2VuZGlmCisJICAgIHJldCA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSAiIik7CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisgICAgICAgIGNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCSAgICByZXQgPSB4bWxYUGF0aENhc3ROb2RlU2V0VG9TdHJpbmcodmFsLT5ub2Rlc2V0dmFsKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9TVFJJTkc6CisJICAgIHJldHVybih4bWxTdHJkdXAodmFsLT5zdHJpbmd2YWwpKTsKKyAgICAgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCSAgICByZXQgPSB4bWxYUGF0aENhc3RCb29sZWFuVG9TdHJpbmcodmFsLT5ib29sdmFsKTsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9OVU1CRVI6IHsKKwkgICAgcmV0ID0geG1sWFBhdGhDYXN0TnVtYmVyVG9TdHJpbmcodmFsLT5mbG9hdHZhbCk7CisJICAgIGJyZWFrOworCX0KKwljYXNlIFhQQVRIX1VTRVJTOgorCWNhc2UgWFBBVEhfUE9JTlQ6CisJY2FzZSBYUEFUSF9SQU5HRToKKwljYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOgorCSAgICBUT0RPCisJICAgIHJldCA9IHhtbFN0cmR1cCgoY29uc3QgeG1sQ2hhciAqKSAiIik7CisJICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbnZlcnRTdHJpbmc6CisgKiBAdmFsOiAgYW4gWFBhdGggb2JqZWN0CisgKgorICogQ29udmVydHMgYW4gZXhpc3Rpbmcgb2JqZWN0IHRvIGl0cyBzdHJpbmcoKSBlcXVpdmFsZW50CisgKgorICogUmV0dXJucyB0aGUgbmV3IG9iamVjdCwgdGhlIG9sZCBvbmUgaXMgZnJlZWQgKG9yIHRoZSBvcGVyYXRpb24KKyAqICAgICAgICAgaXMgZG9uZSBkaXJlY3RseSBvbiBAdmFsKQorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhDb252ZXJ0U3RyaW5nKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkgeworICAgIHhtbENoYXIgKnJlcyA9IE5VTEw7CisKKyAgICBpZiAodmFsID09IE5VTEwpCisJcmV0dXJuKHhtbFhQYXRoTmV3Q1N0cmluZygiIikpOworCisgICAgc3dpdGNoICh2YWwtPnR5cGUpIHsKKyAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKyNpZmRlZiBERUJVR19FWFBSCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJTVFJJTkc6IHVuZGVmaW5lZFxuIik7CisjZW5kaWYKKwlicmVhazsKKyAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisgICAgY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJcmVzID0geG1sWFBhdGhDYXN0Tm9kZVNldFRvU3RyaW5nKHZhbC0+bm9kZXNldHZhbCk7CisJYnJlYWs7CisgICAgY2FzZSBYUEFUSF9TVFJJTkc6CisJcmV0dXJuKHZhbCk7CisgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCXJlcyA9IHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub1N0cmluZyh2YWwtPmJvb2x2YWwpOworCWJyZWFrOworICAgIGNhc2UgWFBBVEhfTlVNQkVSOgorCXJlcyA9IHhtbFhQYXRoQ2FzdE51bWJlclRvU3RyaW5nKHZhbC0+ZmxvYXR2YWwpOworCWJyZWFrOworICAgIGNhc2UgWFBBVEhfVVNFUlM6CisgICAgY2FzZSBYUEFUSF9QT0lOVDoKKyAgICBjYXNlIFhQQVRIX1JBTkdFOgorICAgIGNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJVE9ETzsKKwlicmVhazsKKyAgICB9CisgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHZhbCk7CisgICAgaWYgKHJlcyA9PSBOVUxMKQorCXJldHVybih4bWxYUGF0aE5ld0NTdHJpbmcoIiIpKTsKKyAgICByZXR1cm4oeG1sWFBhdGhXcmFwU3RyaW5nKHJlcykpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcjoKKyAqIEB2YWw6ICBhIGJvb2xlYW4KKyAqCisgKiBDb252ZXJ0cyBhIGJvb2xlYW4gdG8gaXRzIG51bWJlciB2YWx1ZQorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciB2YWx1ZQorICovCitkb3VibGUKK3htbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcihpbnQgdmFsKSB7CisgICAgaWYgKHZhbCkKKwlyZXR1cm4oMS4wKTsKKyAgICByZXR1cm4oMC4wKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcjoKKyAqIEB2YWw6ICBhIHN0cmluZworICoKKyAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGl0cyBudW1iZXIgdmFsdWUKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgdmFsdWUKKyAqLworZG91YmxlCit4bWxYUGF0aENhc3RTdHJpbmdUb051bWJlcihjb25zdCB4bWxDaGFyICogdmFsKSB7CisgICAgcmV0dXJuKHhtbFhQYXRoU3RyaW5nRXZhbE51bWJlcih2YWwpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXI6CisgKiBAbm9kZTogIGEgbm9kZQorICoKKyAqIENvbnZlcnRzIGEgbm9kZSB0byBpdHMgbnVtYmVyIHZhbHVlCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIHZhbHVlCisgKi8KK2RvdWJsZQoreG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyICh4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICB4bWxDaGFyICpzdHJ2YWw7CisgICAgZG91YmxlIHJldDsKKworICAgIGlmIChub2RlID09IE5VTEwpCisJcmV0dXJuKHhtbFhQYXRoTkFOKTsKKyAgICBzdHJ2YWwgPSB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcobm9kZSk7CisgICAgaWYgKHN0cnZhbCA9PSBOVUxMKQorCXJldHVybih4bWxYUGF0aE5BTik7CisgICAgcmV0ID0geG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIoc3RydmFsKTsKKyAgICB4bWxGcmVlKHN0cnZhbCk7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhc3ROb2RlU2V0VG9OdW1iZXI6CisgKiBAbnM6ICBhIG5vZGUtc2V0CisgKgorICogQ29udmVydHMgYSBub2RlLXNldCB0byBpdHMgbnVtYmVyIHZhbHVlCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIHZhbHVlCisgKi8KK2RvdWJsZQoreG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyICh4bWxOb2RlU2V0UHRyIG5zKSB7CisgICAgeG1sQ2hhciAqc3RyOworICAgIGRvdWJsZSByZXQ7CisKKyAgICBpZiAobnMgPT0gTlVMTCkKKwlyZXR1cm4oeG1sWFBhdGhOQU4pOworICAgIHN0ciA9IHhtbFhQYXRoQ2FzdE5vZGVTZXRUb1N0cmluZyhucyk7CisgICAgcmV0ID0geG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIoc3RyKTsKKyAgICB4bWxGcmVlKHN0cik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDYXN0VG9OdW1iZXI6CisgKiBAdmFsOiAgYW4gWFBhdGggb2JqZWN0CisgKgorICogQ29udmVydHMgYW4gWFBhdGggb2JqZWN0IHRvIGl0cyBudW1iZXIgdmFsdWUKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgdmFsdWUKKyAqLworZG91YmxlCit4bWxYUGF0aENhc3RUb051bWJlcih4bWxYUGF0aE9iamVjdFB0ciB2YWwpIHsKKyAgICBkb3VibGUgcmV0ID0gMC4wOworCisgICAgaWYgKHZhbCA9PSBOVUxMKQorCXJldHVybih4bWxYUGF0aE5BTik7CisgICAgc3dpdGNoICh2YWwtPnR5cGUpIHsKKyAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKyNpZmRlZiBERUdVQl9FWFBSCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJOVU1CRVI6IHVuZGVmaW5lZFxuIik7CisjZW5kaWYKKwlyZXQgPSB4bWxYUGF0aE5BTjsKKwlicmVhazsKKyAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisgICAgY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJcmV0ID0geG1sWFBhdGhDYXN0Tm9kZVNldFRvTnVtYmVyKHZhbC0+bm9kZXNldHZhbCk7CisJYnJlYWs7CisgICAgY2FzZSBYUEFUSF9TVFJJTkc6CisJcmV0ID0geG1sWFBhdGhDYXN0U3RyaW5nVG9OdW1iZXIodmFsLT5zdHJpbmd2YWwpOworCWJyZWFrOworICAgIGNhc2UgWFBBVEhfTlVNQkVSOgorCXJldCA9IHZhbC0+ZmxvYXR2YWw7CisJYnJlYWs7CisgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCXJldCA9IHhtbFhQYXRoQ2FzdEJvb2xlYW5Ub051bWJlcih2YWwtPmJvb2x2YWwpOworCWJyZWFrOworICAgIGNhc2UgWFBBVEhfVVNFUlM6CisgICAgY2FzZSBYUEFUSF9QT0lOVDoKKyAgICBjYXNlIFhQQVRIX1JBTkdFOgorICAgIGNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJVE9ETzsKKwlyZXQgPSB4bWxYUGF0aE5BTjsKKwlicmVhazsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb252ZXJ0TnVtYmVyOgorICogQHZhbDogIGFuIFhQYXRoIG9iamVjdAorICoKKyAqIENvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgbnVtYmVyKCkgZXF1aXZhbGVudAorICoKKyAqIFJldHVybnMgdGhlIG5ldyBvYmplY3QsIHRoZSBvbGQgb25lIGlzIGZyZWVkIChvciB0aGUgb3BlcmF0aW9uCisgKiAgICAgICAgIGlzIGRvbmUgZGlyZWN0bHkgb24gQHZhbCkKKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQYXRoQ29udmVydE51bWJlcih4bWxYUGF0aE9iamVjdFB0ciB2YWwpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKyAgICBpZiAodmFsID09IE5VTEwpCisJcmV0dXJuKHhtbFhQYXRoTmV3RmxvYXQoMC4wKSk7CisgICAgaWYgKHZhbC0+dHlwZSA9PSBYUEFUSF9OVU1CRVIpCisJcmV0dXJuKHZhbCk7CisgICAgcmV0ID0geG1sWFBhdGhOZXdGbG9hdCh4bWxYUGF0aENhc3RUb051bWJlcih2YWwpKTsKKyAgICB4bWxYUGF0aEZyZWVPYmplY3QodmFsKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW46CisgKiBAdmFsOiAgYSBudW1iZXIKKyAqCisgKiBDb252ZXJ0cyBhIG51bWJlciB0byBpdHMgYm9vbGVhbiB2YWx1ZQorICoKKyAqIFJldHVybnMgdGhlIGJvb2xlYW4gdmFsdWUKKyAqLworaW50Cit4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4gKGRvdWJsZSB2YWwpIHsKKyAgICAgaWYgKHhtbFhQYXRoSXNOYU4odmFsKSB8fCAodmFsID09IDAuMCkpCisJIHJldHVybigwKTsKKyAgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbjoKKyAqIEB2YWw6ICBhIHN0cmluZworICoKKyAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGl0cyBib29sZWFuIHZhbHVlCisgKgorICogUmV0dXJucyB0aGUgYm9vbGVhbiB2YWx1ZQorICovCitpbnQKK3htbFhQYXRoQ2FzdFN0cmluZ1RvQm9vbGVhbiAoY29uc3QgeG1sQ2hhciAqdmFsKSB7CisgICAgaWYgKCh2YWwgPT0gTlVMTCkgfHwgKHhtbFN0cmxlbih2YWwpID09IDApKQorCXJldHVybigwKTsKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDYXN0Tm9kZVNldFRvQm9vbGVhbjoKKyAqIEBuczogIGEgbm9kZS1zZXQKKyAqCisgKiBDb252ZXJ0cyBhIG5vZGUtc2V0IHRvIGl0cyBib29sZWFuIHZhbHVlCisgKgorICogUmV0dXJucyB0aGUgYm9vbGVhbiB2YWx1ZQorICovCitpbnQKK3htbFhQYXRoQ2FzdE5vZGVTZXRUb0Jvb2xlYW4gKHhtbE5vZGVTZXRQdHIgbnMpIHsKKyAgICBpZiAoKG5zID09IE5VTEwpIHx8IChucy0+bm9kZU5yID09IDApKQorCXJldHVybigwKTsKKyAgICByZXR1cm4oMSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDYXN0VG9Cb29sZWFuOgorICogQHZhbDogIGFuIFhQYXRoIG9iamVjdAorICoKKyAqIENvbnZlcnRzIGFuIFhQYXRoIG9iamVjdCB0byBpdHMgYm9vbGVhbiB2YWx1ZQorICoKKyAqIFJldHVybnMgdGhlIGJvb2xlYW4gdmFsdWUKKyAqLworaW50Cit4bWxYUGF0aENhc3RUb0Jvb2xlYW4gKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkgeworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKHZhbCA9PSBOVUxMKQorCXJldHVybigwKTsKKyAgICBzd2l0Y2ggKHZhbC0+dHlwZSkgeworICAgIGNhc2UgWFBBVEhfVU5ERUZJTkVEOgorI2lmZGVmIERFQlVHX0VYUFIKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkJPT0xFQU46IHVuZGVmaW5lZFxuIik7CisjZW5kaWYKKwlyZXQgPSAwOworCWJyZWFrOworICAgIGNhc2UgWFBBVEhfTk9ERVNFVDoKKyAgICBjYXNlIFhQQVRIX1hTTFRfVFJFRToKKwlyZXQgPSB4bWxYUGF0aENhc3ROb2RlU2V0VG9Cb29sZWFuKHZhbC0+bm9kZXNldHZhbCk7CisJYnJlYWs7CisgICAgY2FzZSBYUEFUSF9TVFJJTkc6CisJcmV0ID0geG1sWFBhdGhDYXN0U3RyaW5nVG9Cb29sZWFuKHZhbC0+c3RyaW5ndmFsKTsKKwlicmVhazsKKyAgICBjYXNlIFhQQVRIX05VTUJFUjoKKwlyZXQgPSB4bWxYUGF0aENhc3ROdW1iZXJUb0Jvb2xlYW4odmFsLT5mbG9hdHZhbCk7CisJYnJlYWs7CisgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCXJldCA9IHZhbC0+Ym9vbHZhbDsKKwlicmVhazsKKyAgICBjYXNlIFhQQVRIX1VTRVJTOgorICAgIGNhc2UgWFBBVEhfUE9JTlQ6CisgICAgY2FzZSBYUEFUSF9SQU5HRToKKyAgICBjYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOgorCVRPRE87CisJcmV0ID0gMDsKKwlicmVhazsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKworLyoqCisgKiB4bWxYUGF0aENvbnZlcnRCb29sZWFuOgorICogQHZhbDogIGFuIFhQYXRoIG9iamVjdAorICoKKyAqIENvbnZlcnRzIGFuIGV4aXN0aW5nIG9iamVjdCB0byBpdHMgYm9vbGVhbigpIGVxdWl2YWxlbnQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LCB0aGUgb2xkIG9uZSBpcyBmcmVlZCAob3IgdGhlIG9wZXJhdGlvbgorICogICAgICAgICBpcyBkb25lIGRpcmVjdGx5IG9uIEB2YWwpCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aENvbnZlcnRCb29sZWFuKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIGlmICh2YWwgPT0gTlVMTCkKKwlyZXR1cm4oeG1sWFBhdGhOZXdCb29sZWFuKDApKTsKKyAgICBpZiAodmFsLT50eXBlID09IFhQQVRIX0JPT0xFQU4pCisJcmV0dXJuKHZhbCk7CisgICAgcmV0ID0geG1sWFBhdGhOZXdCb29sZWFuKHhtbFhQYXRoQ2FzdFRvQm9vbGVhbih2YWwpKTsKKyAgICB4bWxYUGF0aEZyZWVPYmplY3QodmFsKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUm91dGluZXMgdG8gaGFuZGxlIFhQYXRoIGNvbnRleHRzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhQYXRoTmV3Q29udGV4dDoKKyAqIEBkb2M6ICB0aGUgWE1MIGRvY3VtZW50CisgKgorICogQ3JlYXRlIGEgbmV3IHhtbFhQYXRoQ29udGV4dAorICoKKyAqIFJldHVybnMgdGhlIHhtbFhQYXRoQ29udGV4dCBqdXN0IGFsbG9jYXRlZC4gVGhlIGNhbGxlciB3aWxsIG5lZWQgdG8gZnJlZSBpdC4KKyAqLworeG1sWFBhdGhDb250ZXh0UHRyCit4bWxYUGF0aE5ld0NvbnRleHQoeG1sRG9jUHRyIGRvYykgeworICAgIHhtbFhQYXRoQ29udGV4dFB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sWFBhdGhDb250ZXh0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoQ29udGV4dCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY3JlYXRpbmcgY29udGV4dFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoQ29udGV4dCkpOworICAgIHJldC0+ZG9jID0gZG9jOworICAgIHJldC0+bm9kZSA9IE5VTEw7CisKKyAgICByZXQtPnZhckhhc2ggPSBOVUxMOworCisgICAgcmV0LT5uYl90eXBlcyA9IDA7CisgICAgcmV0LT5tYXhfdHlwZXMgPSAwOworICAgIHJldC0+dHlwZXMgPSBOVUxMOworCisgICAgcmV0LT5mdW5jSGFzaCA9IHhtbEhhc2hDcmVhdGUoMCk7CisKKyAgICByZXQtPm5iX2F4aXMgPSAwOworICAgIHJldC0+bWF4X2F4aXMgPSAwOworICAgIHJldC0+YXhpcyA9IE5VTEw7CisKKyAgICByZXQtPm5zSGFzaCA9IE5VTEw7CisgICAgcmV0LT51c2VyID0gTlVMTDsKKworICAgIHJldC0+Y29udGV4dFNpemUgPSAtMTsKKyAgICByZXQtPnByb3hpbWl0eVBvc2l0aW9uID0gLTE7CisKKyNpZmRlZiBYUF9ERUZBVUxUX0NBQ0hFX09OCisgICAgaWYgKHhtbFhQYXRoQ29udGV4dFNldENhY2hlKHJldCwgMSwgLTEsIDApID09IC0xKSB7CisJeG1sWFBhdGhGcmVlQ29udGV4dChyZXQpOworCXJldHVybihOVUxMKTsKKyAgICB9CisjZW5kaWYKKworICAgIHhtbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMocmV0KTsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoRnJlZUNvbnRleHQ6CisgKiBAY3R4dDogIHRoZSBjb250ZXh0IHRvIGZyZWUKKyAqCisgKiBGcmVlIHVwIGFuIHhtbFhQYXRoQ29udGV4dAorICovCit2b2lkCit4bWxYUGF0aEZyZWVDb250ZXh0KHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KSB7CisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKGN0eHQtPmNhY2hlICE9IE5VTEwpCisJeG1sWFBhdGhGcmVlQ2FjaGUoKHhtbFhQYXRoQ29udGV4dENhY2hlUHRyKSBjdHh0LT5jYWNoZSk7CisgICAgeG1sWFBhdGhSZWdpc3RlcmVkTnNDbGVhbnVwKGN0eHQpOworICAgIHhtbFhQYXRoUmVnaXN0ZXJlZEZ1bmNzQ2xlYW51cChjdHh0KTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyZWRWYXJpYWJsZXNDbGVhbnVwKGN0eHQpOworICAgIHhtbFJlc2V0RXJyb3IoJmN0eHQtPmxhc3RFcnJvcik7CisgICAgeG1sRnJlZShjdHh0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJUm91dGluZXMgdG8gaGFuZGxlIFhQYXRoIHBhcnNlciBjb250ZXh0cwkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIENIRUNLX0NUWFQoY3R4dCkJCQkJCQlcCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgewkJCQkJCVwKKwlfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwJCQkJXAorCQlOVUxMLCBOVUxMLCBYTUxfRlJPTV9YUEFUSCwJCQkJXAorCQlYTUxfRVJSX0lOVEVSTkFMX0VSUk9SLCBYTUxfRVJSX0ZBVEFMLAkJCVwKKwkJX19GSUxFX18sIF9fTElORV9fLAkJCQkJXAorCQlOVUxMLCBOVUxMLCBOVUxMLCAwLCAwLAkJCQkJXAorCQkiTlVMTCBjb250ZXh0IHBvaW50ZXJcbiIpOwkJCQlcCisJcmV0dXJuKE5VTEwpOwkJCQkJCQlcCisgICAgfQkJCQkJCQkJCVwKKworI2RlZmluZSBDSEVDS19DVFhUX05FRyhjdHh0KQkJCQkJCVwKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSB7CQkJCQkJXAorCV9feG1sUmFpc2VFcnJvcihOVUxMLCBOVUxMLCBOVUxMLAkJCQlcCisJCU5VTEwsIE5VTEwsIFhNTF9GUk9NX1hQQVRILAkJCQlcCisJCVhNTF9FUlJfSU5URVJOQUxfRVJST1IsIFhNTF9FUlJfRkFUQUwsCQkJXAorCQlfX0ZJTEVfXywgX19MSU5FX18sCQkJCQlcCisJCU5VTEwsIE5VTEwsIE5VTEwsIDAsIDAsCQkJCQlcCisJCSJOVUxMIGNvbnRleHQgcG9pbnRlclxuIik7CQkJCVwKKwlyZXR1cm4oLTEpOwkJCQkJCQlcCisgICAgfQkJCQkJCQkJCVwKKworCisjZGVmaW5lIENIRUNLX0NPTlRFWFQoY3R4dCkJCQkJCQlcCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5kb2MgPT0gTlVMTCkgfHwJCQlcCisgICAgICAgIChjdHh0LT5kb2MtPmNoaWxkcmVuID09IE5VTEwpKSB7CQkJCVwKKwl4bWxYUGF0aGVycm9yKGN0eHQsIF9fRklMRV9fLCBfX0xJTkVfXywgWFBBVEhfSU5WQUxJRF9DVFhUKTsJXAorCXJldHVybihOVUxMKTsJCQkJCQkJXAorICAgIH0KKworCisvKioKKyAqIHhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dDoKKyAqIEBzdHI6ICB0aGUgWFBhdGggZXhwcmVzc2lvbgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aFBhcnNlckNvbnRleHQKKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxYUGF0aFBhcnNlckNvbnRleHQganVzdCBhbGxvY2F0ZWQuCisgKi8KK3htbFhQYXRoUGFyc2VyQ29udGV4dFB0cgoreG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0KGNvbnN0IHhtbENoYXIgKnN0ciwgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aFBhcnNlckNvbnRleHQpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoY3R4dCwgImNyZWF0aW5nIHBhcnNlciBjb250ZXh0XG4iKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhQYXJzZXJDb250ZXh0KSk7CisgICAgcmV0LT5jdXIgPSByZXQtPmJhc2UgPSBzdHI7CisgICAgcmV0LT5jb250ZXh0ID0gY3R4dDsKKworICAgIHJldC0+Y29tcCA9IHhtbFhQYXRoTmV3Q29tcEV4cHIoKTsKKyAgICBpZiAocmV0LT5jb21wID09IE5VTEwpIHsKKwl4bWxGcmVlKHJldC0+dmFsdWVUYWIpOworCXhtbEZyZWUocmV0KTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmICgoY3R4dCAhPSBOVUxMKSAmJiAoY3R4dC0+ZGljdCAhPSBOVUxMKSkgeworICAgICAgICByZXQtPmNvbXAtPmRpY3QgPSBjdHh0LT5kaWN0OworCXhtbERpY3RSZWZlcmVuY2UocmV0LT5jb21wLT5kaWN0KTsKKyAgICB9CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBQYXJzZXJDb250ZXh0OgorICogQGNvbXA6ICB0aGUgWFBhdGggY29tcGlsZWQgZXhwcmVzc2lvbgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aFBhcnNlckNvbnRleHQgd2hlbiBwcm9jZXNzaW5nIGEgY29tcGlsZWQgZXhwcmVzc2lvbgorICoKKyAqIFJldHVybnMgdGhlIHhtbFhQYXRoUGFyc2VyQ29udGV4dCBqdXN0IGFsbG9jYXRlZC4KKyAqLworc3RhdGljIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0cgoreG1sWFBhdGhDb21wUGFyc2VyQ29udGV4dCh4bWxYUGF0aENvbXBFeHByUHRyIGNvbXAsIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhQYXJzZXJDb250ZXh0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFhQYXRoRXJyTWVtb3J5KGN0eHQsICJjcmVhdGluZyBldmFsdWF0aW9uIGNvbnRleHRcbiIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aFBhcnNlckNvbnRleHQpKTsKKworICAgIC8qIEFsbG9jYXRlIHRoZSB2YWx1ZSBzdGFjayAqLworICAgIHJldC0+dmFsdWVUYWIgPSAoeG1sWFBhdGhPYmplY3RQdHIgKikKKyAgICAgICAgICAgICAgICAgICAgIHhtbE1hbGxvYygxMCAqIHNpemVvZih4bWxYUGF0aE9iamVjdFB0cikpOworICAgIGlmIChyZXQtPnZhbHVlVGFiID09IE5VTEwpIHsKKwl4bWxGcmVlKHJldCk7CisJeG1sWFBhdGhFcnJNZW1vcnkoY3R4dCwgImNyZWF0aW5nIGV2YWx1YXRpb24gY29udGV4dFxuIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXQtPnZhbHVlTnIgPSAwOworICAgIHJldC0+dmFsdWVNYXggPSAxMDsKKyAgICByZXQtPnZhbHVlID0gTlVMTDsKKworICAgIHJldC0+Y29udGV4dCA9IGN0eHQ7CisgICAgcmV0LT5jb21wID0gY29tcDsKKworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQ6CisgKiBAY3R4dDogIHRoZSBjb250ZXh0IHRvIGZyZWUKKyAqCisgKiBGcmVlIHVwIGFuIHhtbFhQYXRoUGFyc2VyQ29udGV4dAorICovCit2b2lkCit4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0KHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgaWYgKGN0eHQtPnZhbHVlVGFiICE9IE5VTEwpIHsKKyAgICAgICAgeG1sRnJlZShjdHh0LT52YWx1ZVRhYik7CisgICAgfQorICAgIGlmIChjdHh0LT5jb21wICE9IE5VTEwpIHsKKyNpZmRlZiBYUEFUSF9TVFJFQU1JTkcKKwlpZiAoY3R4dC0+Y29tcC0+c3RyZWFtICE9IE5VTEwpIHsKKwkgICAgeG1sRnJlZVBhdHRlcm5MaXN0KGN0eHQtPmNvbXAtPnN0cmVhbSk7CisJICAgIGN0eHQtPmNvbXAtPnN0cmVhbSA9IE5VTEw7CisJfQorI2VuZGlmCisJeG1sWFBhdGhGcmVlQ29tcEV4cHIoY3R4dC0+Y29tcCk7CisgICAgfQorICAgIHhtbEZyZWUoY3R4dCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCVRoZSBpbXBsaWNpdCBjb3JlIGZ1bmN0aW9uIGxpYnJhcnkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sWFBhdGhOb2RlVmFsSGFzaDoKKyAqIEBub2RlOiAgYSBub2RlIHBvaW50ZXIKKyAqCisgKiBGdW5jdGlvbiBjb21wdXRpbmcgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBub2RlLAorICogdXNlZCB0byBzcGVlZCB1cCBjb21wYXJpc29ucworICoKKyAqIFJldHVybnMgYW4gaW50IHVzYWJsZSBhcyBhIGhhc2gKKyAqLworc3RhdGljIHVuc2lnbmVkIGludAoreG1sWFBhdGhOb2RlVmFsSGFzaCh4bWxOb2RlUHRyIG5vZGUpIHsKKyAgICBpbnQgbGVuID0gMjsKKyAgICBjb25zdCB4bWxDaGFyICogc3RyaW5nID0gTlVMTDsKKyAgICB4bWxOb2RlUHRyIHRtcCA9IE5VTEw7CisgICAgdW5zaWduZWQgaW50IHJldCA9IDA7CisKKyAgICBpZiAobm9kZSA9PSBOVUxMKQorCXJldHVybigwKTsKKworICAgIGlmIChub2RlLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB7CisJdG1wID0geG1sRG9jR2V0Um9vdEVsZW1lbnQoKHhtbERvY1B0cikgbm9kZSk7CisJaWYgKHRtcCA9PSBOVUxMKQorCSAgICBub2RlID0gbm9kZS0+Y2hpbGRyZW47CisJZWxzZQorCSAgICBub2RlID0gdG1wOworCisJaWYgKG5vZGUgPT0gTlVMTCkKKwkgICAgcmV0dXJuKDApOworICAgIH0KKworICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworCWNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwljYXNlIFhNTF9QSV9OT0RFOgorCWNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwljYXNlIFhNTF9URVhUX05PREU6CisJICAgIHN0cmluZyA9IG5vZGUtPmNvbnRlbnQ7CisJICAgIGlmIChzdHJpbmcgPT0gTlVMTCkKKwkJcmV0dXJuKDApOworCSAgICBpZiAoc3RyaW5nWzBdID09IDApCisJCXJldHVybigwKTsKKwkgICAgcmV0dXJuKCgodW5zaWduZWQgaW50KSBzdHJpbmdbMF0pICsKKwkJICAgKCgodW5zaWduZWQgaW50KSBzdHJpbmdbMV0pIDw8IDgpKTsKKwljYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwkgICAgc3RyaW5nID0gKCh4bWxOc1B0cilub2RlKS0+aHJlZjsKKwkgICAgaWYgKHN0cmluZyA9PSBOVUxMKQorCQlyZXR1cm4oMCk7CisJICAgIGlmIChzdHJpbmdbMF0gPT0gMCkKKwkJcmV0dXJuKDApOworCSAgICByZXR1cm4oKCh1bnNpZ25lZCBpbnQpIHN0cmluZ1swXSkgKworCQkgICAoKCh1bnNpZ25lZCBpbnQpIHN0cmluZ1sxXSkgPDwgOCkpOworCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCSAgICB0bXAgPSAoKHhtbEF0dHJQdHIpIG5vZGUpLT5jaGlsZHJlbjsKKwkgICAgYnJlYWs7CisJY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCSAgICB0bXAgPSBub2RlLT5jaGlsZHJlbjsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuKDApOworICAgIH0KKyAgICB3aGlsZSAodG1wICE9IE5VTEwpIHsKKwlzd2l0Y2ggKHRtcC0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisJICAgIGNhc2UgWE1MX1BJX05PREU6CisJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorCQlzdHJpbmcgPSB0bXAtPmNvbnRlbnQ7CisJCWJyZWFrOworCSAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwkJc3RyaW5nID0gKCh4bWxOc1B0cil0bXApLT5ocmVmOworCQlicmVhazsKKwkgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCWlmICgoc3RyaW5nICE9IE5VTEwpICYmIChzdHJpbmdbMF0gIT0gMCkpIHsKKwkgICAgaWYgKGxlbiA9PSAxKSB7CisJCXJldHVybihyZXQgKyAoKCh1bnNpZ25lZCBpbnQpIHN0cmluZ1swXSkgPDwgOCkpOworCSAgICB9CisJICAgIGlmIChzdHJpbmdbMV0gPT0gMCkgeworCQlsZW4gPSAxOworCQlyZXQgPSAodW5zaWduZWQgaW50KSBzdHJpbmdbMF07CisJICAgIH0gZWxzZSB7CisJCXJldHVybigoKHVuc2lnbmVkIGludCkgc3RyaW5nWzBdKSArCisJCSAgICAgICAoKCh1bnNpZ25lZCBpbnQpIHN0cmluZ1sxXSkgPDwgOCkpOworCSAgICB9CisJfQorCS8qCisJICogU2tpcCB0byBuZXh0IG5vZGUKKwkgKi8KKwlpZiAoKHRtcC0+Y2hpbGRyZW4gIT0gTlVMTCkgJiYgKHRtcC0+dHlwZSAhPSBYTUxfRFREX05PREUpKSB7CisJICAgIGlmICh0bXAtPmNoaWxkcmVuLT50eXBlICE9IFhNTF9FTlRJVFlfREVDTCkgeworCQl0bXAgPSB0bXAtPmNoaWxkcmVuOworCQljb250aW51ZTsKKwkgICAgfQorCX0KKwlpZiAodG1wID09IG5vZGUpCisJICAgIGJyZWFrOworCisJaWYgKHRtcC0+bmV4dCAhPSBOVUxMKSB7CisJICAgIHRtcCA9IHRtcC0+bmV4dDsKKwkgICAgY29udGludWU7CisJfQorCisJZG8geworCSAgICB0bXAgPSB0bXAtPnBhcmVudDsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKQorCQlicmVhazsKKwkgICAgaWYgKHRtcCA9PSBub2RlKSB7CisJCXRtcCA9IE5VTEw7CisJCWJyZWFrOworCSAgICB9CisJICAgIGlmICh0bXAtPm5leHQgIT0gTlVMTCkgeworCQl0bXAgPSB0bXAtPm5leHQ7CisJCWJyZWFrOworCSAgICB9CisJfSB3aGlsZSAodG1wICE9IE5VTEwpOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aFN0cmluZ0hhc2g6CisgKiBAc3RyaW5nOiAgYSBzdHJpbmcKKyAqCisgKiBGdW5jdGlvbiBjb21wdXRpbmcgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBub2RlLAorICogdXNlZCB0byBzcGVlZCB1cCBjb21wYXJpc29ucworICoKKyAqIFJldHVybnMgYW4gaW50IHVzYWJsZSBhcyBhIGhhc2gKKyAqLworc3RhdGljIHVuc2lnbmVkIGludAoreG1sWFBhdGhTdHJpbmdIYXNoKGNvbnN0IHhtbENoYXIgKiBzdHJpbmcpIHsKKyAgICBpZiAoc3RyaW5nID09IE5VTEwpCisJcmV0dXJuKCh1bnNpZ25lZCBpbnQpIDApOworICAgIGlmIChzdHJpbmdbMF0gPT0gMCkKKwlyZXR1cm4oMCk7CisgICAgcmV0dXJuKCgodW5zaWduZWQgaW50KSBzdHJpbmdbMF0pICsKKwkgICAoKCh1bnNpZ25lZCBpbnQpIHN0cmluZ1sxXSkgPDwgOCkpOworfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcGFyZU5vZGVTZXRGbG9hdDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAaW5mOiAgbGVzcyB0aGFuICgxKSBvciBncmVhdGVyIHRoYW4gKDApCisgKiBAc3RyaWN0OiAgaXMgdGhlIGNvbXBhcmlzb24gc3RyaWN0CisgKiBAYXJnOiAgdGhlIG5vZGUgc2V0CisgKiBAZjogIHRoZSB2YWx1ZQorICoKKyAqIEltcGxlbWVudCB0aGUgY29tcGFyZSBvcGVyYXRpb24gYmV0d2VlbiBhIG5vZGVzZXQgYW5kIGEgbnVtYmVyCisgKiAgICAgQG5zIDwgQHZhbCAgICAoMSwgMSwgLi4uCisgKiAgICAgQG5zIDw9IEB2YWwgICAoMSwgMCwgLi4uCisgKiAgICAgQG5zID4gQHZhbCAgICAoMCwgMSwgLi4uCisgKiAgICAgQG5zID49IEB2YWwgICAoMCwgMCwgLi4uCisgKgorICogSWYgb25lIG9iamVjdCB0byBiZSBjb21wYXJlZCBpcyBhIG5vZGUtc2V0IGFuZCB0aGUgb3RoZXIgaXMgYSBudW1iZXIsCisgKiB0aGVuIHRoZSBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGVyZSBpcyBhIG5vZGUgaW4gdGhlCisgKiBub2RlLXNldCBzdWNoIHRoYXQgdGhlIHJlc3VsdCBvZiBwZXJmb3JtaW5nIHRoZSBjb21wYXJpc29uIG9uIHRoZSBudW1iZXIKKyAqIHRvIGJlIGNvbXBhcmVkIGFuZCBvbiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdGhlIHN0cmluZy12YWx1ZSBvZiB0aGF0CisgKiBub2RlIHRvIGEgbnVtYmVyIHVzaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24gaXMgdHJ1ZS4KKyAqCisgKiBSZXR1cm5zIDAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3QuCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQYXRoQ29tcGFyZU5vZGVTZXRGbG9hdCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IGluZiwgaW50IHN0cmljdCwKKwkgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoT2JqZWN0UHRyIGFyZywgeG1sWFBhdGhPYmplY3RQdHIgZikgeworICAgIGludCBpLCByZXQgPSAwOworICAgIHhtbE5vZGVTZXRQdHIgbnM7CisgICAgeG1sQ2hhciAqc3RyMjsKKworICAgIGlmICgoZiA9PSBOVUxMKSB8fCAoYXJnID09IE5VTEwpIHx8CisJKChhcmctPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkgJiYgKGFyZy0+dHlwZSAhPSBYUEFUSF9YU0xUX1RSRUUpKSkgeworCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcpOworCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBmKTsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKyAgICBucyA9IGFyZy0+bm9kZXNldHZhbDsKKyAgICBpZiAobnMgIT0gTlVMTCkgeworCWZvciAoaSA9IDA7aSA8IG5zLT5ub2RlTnI7aSsrKSB7CisJICAgICBzdHIyID0geG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nKG5zLT5ub2RlVGFiW2ldKTsKKwkgICAgIGlmIChzdHIyICE9IE5VTEwpIHsKKwkJIHZhbHVlUHVzaChjdHh0LAorCQkJICAgeG1sWFBhdGhDYWNoZU5ld1N0cmluZyhjdHh0LT5jb250ZXh0LCBzdHIyKSk7CisJCSB4bWxGcmVlKHN0cjIpOworCQkgeG1sWFBhdGhOdW1iZXJGdW5jdGlvbihjdHh0LCAxKTsKKwkJIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlT2JqZWN0Q29weShjdHh0LT5jb250ZXh0LCBmKSk7CisJCSByZXQgPSB4bWxYUGF0aENvbXBhcmVWYWx1ZXMoY3R4dCwgaW5mLCBzdHJpY3QpOworCQkgaWYgKHJldCkKKwkJICAgICBicmVhazsKKwkgICAgIH0KKwl9CisgICAgfQorICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcpOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBmKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBhcmVOb2RlU2V0U3RyaW5nOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBpbmY6ICBsZXNzIHRoYW4gKDEpIG9yIGdyZWF0ZXIgdGhhbiAoMCkKKyAqIEBzdHJpY3Q6ICBpcyB0aGUgY29tcGFyaXNvbiBzdHJpY3QKKyAqIEBhcmc6ICB0aGUgbm9kZSBzZXQKKyAqIEBzOiAgdGhlIHZhbHVlCisgKgorICogSW1wbGVtZW50IHRoZSBjb21wYXJlIG9wZXJhdGlvbiBiZXR3ZWVuIGEgbm9kZXNldCBhbmQgYSBzdHJpbmcKKyAqICAgICBAbnMgPCBAdmFsICAgICgxLCAxLCAuLi4KKyAqICAgICBAbnMgPD0gQHZhbCAgICgxLCAwLCAuLi4KKyAqICAgICBAbnMgPiBAdmFsICAgICgwLCAxLCAuLi4KKyAqICAgICBAbnMgPj0gQHZhbCAgICgwLCAwLCAuLi4KKyAqCisgKiBJZiBvbmUgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIGlzIGEgbm9kZS1zZXQgYW5kIHRoZSBvdGhlciBpcyBhIHN0cmluZywKKyAqIHRoZW4gdGhlIGNvbXBhcmlzb24gd2lsbCBiZSB0cnVlIGlmIGFuZCBvbmx5IGlmIHRoZXJlIGlzIGEgbm9kZSBpbgorICogdGhlIG5vZGUtc2V0IHN1Y2ggdGhhdCB0aGUgcmVzdWx0IG9mIHBlcmZvcm1pbmcgdGhlIGNvbXBhcmlzb24gb24gdGhlCisgKiBzdHJpbmctdmFsdWUgb2YgdGhlIG5vZGUgYW5kIHRoZSBvdGhlciBzdHJpbmcgaXMgdHJ1ZS4KKyAqCisgKiBSZXR1cm5zIDAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3QuCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQYXRoQ29tcGFyZU5vZGVTZXRTdHJpbmcoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBpbmYsIGludCBzdHJpY3QsCisJICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE9iamVjdFB0ciBhcmcsIHhtbFhQYXRoT2JqZWN0UHRyIHMpIHsKKyAgICBpbnQgaSwgcmV0ID0gMDsKKyAgICB4bWxOb2RlU2V0UHRyIG5zOworICAgIHhtbENoYXIgKnN0cjI7CisKKyAgICBpZiAoKHMgPT0gTlVMTCkgfHwgKGFyZyA9PSBOVUxMKSB8fAorCSgoYXJnLT50eXBlICE9IFhQQVRIX05PREVTRVQpICYmIChhcmctPnR5cGUgIT0gWFBBVEhfWFNMVF9UUkVFKSkpIHsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgYXJnKTsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgcyk7CisgICAgICAgIHJldHVybigwKTsKKyAgICB9CisgICAgbnMgPSBhcmctPm5vZGVzZXR2YWw7CisgICAgaWYgKG5zICE9IE5VTEwpIHsKKwlmb3IgKGkgPSAwO2kgPCBucy0+bm9kZU5yO2krKykgeworCSAgICAgc3RyMiA9IHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyhucy0+bm9kZVRhYltpXSk7CisJICAgICBpZiAoc3RyMiAhPSBOVUxMKSB7CisJCSB2YWx1ZVB1c2goY3R4dCwKKwkJCSAgIHhtbFhQYXRoQ2FjaGVOZXdTdHJpbmcoY3R4dC0+Y29udGV4dCwgc3RyMikpOworCQkgeG1sRnJlZShzdHIyKTsKKwkJIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlT2JqZWN0Q29weShjdHh0LT5jb250ZXh0LCBzKSk7CisJCSByZXQgPSB4bWxYUGF0aENvbXBhcmVWYWx1ZXMoY3R4dCwgaW5mLCBzdHJpY3QpOworCQkgaWYgKHJldCkKKwkJICAgICBicmVhazsKKwkgICAgIH0KKwl9CisgICAgfQorICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcpOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBzKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBhcmVOb2RlU2V0czoKKyAqIEBpbmY6ICBsZXNzIHRoYW4gKDEpIG9yIGdyZWF0ZXIgdGhhbiAoMCkKKyAqIEBzdHJpY3Q6ICBpcyB0aGUgY29tcGFyaXNvbiBzdHJpY3QKKyAqIEBhcmcxOiAgdGhlIGZpcnN0IG5vZGUgc2V0IG9iamVjdAorICogQGFyZzI6ICB0aGUgc2Vjb25kIG5vZGUgc2V0IG9iamVjdAorICoKKyAqIEltcGxlbWVudCB0aGUgY29tcGFyZSBvcGVyYXRpb24gb24gbm9kZXNldHM6CisgKgorICogSWYgYm90aCBvYmplY3RzIHRvIGJlIGNvbXBhcmVkIGFyZSBub2RlLXNldHMsIHRoZW4gdGhlIGNvbXBhcmlzb24KKyAqIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGVyZSBpcyBhIG5vZGUgaW4gdGhlIGZpcnN0IG5vZGUtc2V0CisgKiBhbmQgYSBub2RlIGluIHRoZSBzZWNvbmQgbm9kZS1zZXQgc3VjaCB0aGF0IHRoZSByZXN1bHQgb2YgcGVyZm9ybWluZworICogdGhlIGNvbXBhcmlzb24gb24gdGhlIHN0cmluZy12YWx1ZXMgb2YgdGhlIHR3byBub2RlcyBpcyB0cnVlLgorICogLi4uLgorICogV2hlbiBuZWl0aGVyIG9iamVjdCB0byBiZSBjb21wYXJlZCBpcyBhIG5vZGUtc2V0IGFuZCB0aGUgb3BlcmF0b3IKKyAqIGlzIDw9LCA8LCA+PSBvciA+LCB0aGVuIHRoZSBvYmplY3RzIGFyZSBjb21wYXJlZCBieSBjb252ZXJ0aW5nIGJvdGgKKyAqIG9iamVjdHMgdG8gbnVtYmVycyBhbmQgY29tcGFyaW5nIHRoZSBudW1iZXJzIGFjY29yZGluZyB0byBJRUVFIDc1NC4KKyAqIC4uLi4KKyAqIFRoZSBudW1iZXIgZnVuY3Rpb24gY29udmVydHMgaXRzIGFyZ3VtZW50IHRvIGEgbnVtYmVyIGFzIGZvbGxvd3M6CisgKiAgLSBhIHN0cmluZyB0aGF0IGNvbnNpc3RzIG9mIG9wdGlvbmFsIHdoaXRlc3BhY2UgZm9sbG93ZWQgYnkgYW4KKyAqICAgIG9wdGlvbmFsIG1pbnVzIHNpZ24gZm9sbG93ZWQgYnkgYSBOdW1iZXIgZm9sbG93ZWQgYnkgd2hpdGVzcGFjZQorICogICAgaXMgY29udmVydGVkIHRvIHRoZSBJRUVFIDc1NCBudW1iZXIgdGhhdCBpcyBuZWFyZXN0IChhY2NvcmRpbmcKKyAqICAgIHRvIHRoZSBJRUVFIDc1NCByb3VuZC10by1uZWFyZXN0IHJ1bGUpIHRvIHRoZSBtYXRoZW1hdGljYWwgdmFsdWUKKyAqICAgIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmc7IGFueSBvdGhlciBzdHJpbmcgaXMgY29udmVydGVkIHRvIE5hTgorICoKKyAqIENvbmNsdXNpb24gYWxsIG5vZGVzIG5lZWQgdG8gYmUgY29udmVydGVkIGZpcnN0IHRvIHRoZWlyIHN0cmluZyB2YWx1ZQorICogYW5kIHRoZW4gdGhlIGNvbXBhcmlzb24gbXVzdCBiZSBkb25lIHdoZW4gcG9zc2libGUKKyAqLworc3RhdGljIGludAoreG1sWFBhdGhDb21wYXJlTm9kZVNldHMoaW50IGluZiwgaW50IHN0cmljdCwKKwkgICAgICAgICAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgYXJnMSwgeG1sWFBhdGhPYmplY3RQdHIgYXJnMikgeworICAgIGludCBpLCBqLCBpbml0ID0gMDsKKyAgICBkb3VibGUgdmFsMTsKKyAgICBkb3VibGUgKnZhbHVlczI7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sTm9kZVNldFB0ciBuczE7CisgICAgeG1sTm9kZVNldFB0ciBuczI7CisKKyAgICBpZiAoKGFyZzEgPT0gTlVMTCkgfHwKKwkoKGFyZzEtPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkgJiYgKGFyZzEtPnR5cGUgIT0gWFBBVEhfWFNMVF9UUkVFKSkpIHsKKwl4bWxYUGF0aEZyZWVPYmplY3QoYXJnMik7CisgICAgICAgIHJldHVybigwKTsKKyAgICB9CisgICAgaWYgKChhcmcyID09IE5VTEwpIHx8CisJKChhcmcyLT50eXBlICE9IFhQQVRIX05PREVTRVQpICYmIChhcmcyLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpKSB7CisJeG1sWFBhdGhGcmVlT2JqZWN0KGFyZzEpOworCXhtbFhQYXRoRnJlZU9iamVjdChhcmcyKTsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKworICAgIG5zMSA9IGFyZzEtPm5vZGVzZXR2YWw7CisgICAgbnMyID0gYXJnMi0+bm9kZXNldHZhbDsKKworICAgIGlmICgobnMxID09IE5VTEwpIHx8IChuczEtPm5vZGVOciA8PSAwKSkgeworCXhtbFhQYXRoRnJlZU9iamVjdChhcmcxKTsKKwl4bWxYUGF0aEZyZWVPYmplY3QoYXJnMik7CisJcmV0dXJuKDApOworICAgIH0KKyAgICBpZiAoKG5zMiA9PSBOVUxMKSB8fCAobnMyLT5ub2RlTnIgPD0gMCkpIHsKKwl4bWxYUGF0aEZyZWVPYmplY3QoYXJnMSk7CisJeG1sWFBhdGhGcmVlT2JqZWN0KGFyZzIpOworCXJldHVybigwKTsKKyAgICB9CisKKyAgICB2YWx1ZXMyID0gKGRvdWJsZSAqKSB4bWxNYWxsb2MobnMyLT5ub2RlTnIgKiBzaXplb2YoZG91YmxlKSk7CisgICAgaWYgKHZhbHVlczIgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY29tcGFyaW5nIG5vZGVzZXRzXG4iKTsKKwl4bWxYUGF0aEZyZWVPYmplY3QoYXJnMSk7CisJeG1sWFBhdGhGcmVlT2JqZWN0KGFyZzIpOworCXJldHVybigwKTsKKyAgICB9CisgICAgZm9yIChpID0gMDtpIDwgbnMxLT5ub2RlTnI7aSsrKSB7CisJdmFsMSA9IHhtbFhQYXRoQ2FzdE5vZGVUb051bWJlcihuczEtPm5vZGVUYWJbaV0pOworCWlmICh4bWxYUGF0aElzTmFOKHZhbDEpKQorCSAgICBjb250aW51ZTsKKwlmb3IgKGogPSAwO2ogPCBuczItPm5vZGVOcjtqKyspIHsKKwkgICAgaWYgKGluaXQgPT0gMCkgeworCQl2YWx1ZXMyW2pdID0geG1sWFBhdGhDYXN0Tm9kZVRvTnVtYmVyKG5zMi0+bm9kZVRhYltqXSk7CisJICAgIH0KKwkgICAgaWYgKHhtbFhQYXRoSXNOYU4odmFsdWVzMltqXSkpCisJCWNvbnRpbnVlOworCSAgICBpZiAoaW5mICYmIHN0cmljdCkKKwkJcmV0ID0gKHZhbDEgPCB2YWx1ZXMyW2pdKTsKKwkgICAgZWxzZSBpZiAoaW5mICYmICFzdHJpY3QpCisJCXJldCA9ICh2YWwxIDw9IHZhbHVlczJbal0pOworCSAgICBlbHNlIGlmICghaW5mICYmIHN0cmljdCkKKwkJcmV0ID0gKHZhbDEgPiB2YWx1ZXMyW2pdKTsKKwkgICAgZWxzZSBpZiAoIWluZiAmJiAhc3RyaWN0KQorCQlyZXQgPSAodmFsMSA+PSB2YWx1ZXMyW2pdKTsKKwkgICAgaWYgKHJldCkKKwkJYnJlYWs7CisJfQorCWlmIChyZXQpCisJICAgIGJyZWFrOworCWluaXQgPSAxOworICAgIH0KKyAgICB4bWxGcmVlKHZhbHVlczIpOworICAgIHhtbFhQYXRoRnJlZU9iamVjdChhcmcxKTsKKyAgICB4bWxYUGF0aEZyZWVPYmplY3QoYXJnMik7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wYXJlTm9kZVNldFZhbHVlOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBpbmY6ICBsZXNzIHRoYW4gKDEpIG9yIGdyZWF0ZXIgdGhhbiAoMCkKKyAqIEBzdHJpY3Q6ICBpcyB0aGUgY29tcGFyaXNvbiBzdHJpY3QKKyAqIEBhcmc6ICB0aGUgbm9kZSBzZXQKKyAqIEB2YWw6ICB0aGUgdmFsdWUKKyAqCisgKiBJbXBsZW1lbnQgdGhlIGNvbXBhcmUgb3BlcmF0aW9uIGJldHdlZW4gYSBub2Rlc2V0IGFuZCBhIHZhbHVlCisgKiAgICAgQG5zIDwgQHZhbCAgICAoMSwgMSwgLi4uCisgKiAgICAgQG5zIDw9IEB2YWwgICAoMSwgMCwgLi4uCisgKiAgICAgQG5zID4gQHZhbCAgICAoMCwgMSwgLi4uCisgKiAgICAgQG5zID49IEB2YWwgICAoMCwgMCwgLi4uCisgKgorICogSWYgb25lIG9iamVjdCB0byBiZSBjb21wYXJlZCBpcyBhIG5vZGUtc2V0IGFuZCB0aGUgb3RoZXIgaXMgYSBib29sZWFuLAorICogdGhlbiB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIHJlc3VsdCBvZiBwZXJmb3JtaW5nCisgKiB0aGUgY29tcGFyaXNvbiBvbiB0aGUgYm9vbGVhbiBhbmQgb24gdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nCisgKiB0aGUgbm9kZS1zZXQgdG8gYSBib29sZWFuIHVzaW5nIHRoZSBib29sZWFuIGZ1bmN0aW9uIGlzIHRydWUuCisgKgorICogUmV0dXJucyAwIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0LgorICovCitzdGF0aWMgaW50Cit4bWxYUGF0aENvbXBhcmVOb2RlU2V0VmFsdWUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBpbmYsIGludCBzdHJpY3QsCisJICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE9iamVjdFB0ciBhcmcsIHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkgeworICAgIGlmICgodmFsID09IE5VTEwpIHx8IChhcmcgPT0gTlVMTCkgfHwKKwkoKGFyZy0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSAmJiAoYXJnLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpKQorICAgICAgICByZXR1cm4oMCk7CisKKyAgICBzd2l0Y2godmFsLT50eXBlKSB7CisgICAgICAgIGNhc2UgWFBBVEhfTlVNQkVSOgorCSAgICByZXR1cm4oeG1sWFBhdGhDb21wYXJlTm9kZVNldEZsb2F0KGN0eHQsIGluZiwgc3RyaWN0LCBhcmcsIHZhbCkpOworICAgICAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisgICAgICAgIGNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCSAgICByZXR1cm4oeG1sWFBhdGhDb21wYXJlTm9kZVNldHMoaW5mLCBzdHJpY3QsIGFyZywgdmFsKSk7CisgICAgICAgIGNhc2UgWFBBVEhfU1RSSU5HOgorCSAgICByZXR1cm4oeG1sWFBhdGhDb21wYXJlTm9kZVNldFN0cmluZyhjdHh0LCBpbmYsIHN0cmljdCwgYXJnLCB2YWwpKTsKKyAgICAgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCSAgICB2YWx1ZVB1c2goY3R4dCwgYXJnKTsKKwkgICAgeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24oY3R4dCwgMSk7CisJICAgIHZhbHVlUHVzaChjdHh0LCB2YWwpOworCSAgICByZXR1cm4oeG1sWFBhdGhDb21wYXJlVmFsdWVzKGN0eHQsIGluZiwgc3RyaWN0KSk7CisJZGVmYXVsdDoKKwkgICAgVE9ETworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhFcXVhbE5vZGVTZXRTdHJpbmc6CisgKiBAYXJnOiAgdGhlIG5vZGVzZXQgb2JqZWN0IGFyZ3VtZW50CisgKiBAc3RyOiAgdGhlIHN0cmluZyB0byBjb21wYXJlIHRvLgorICogQG5lcTogIGZsYWcgdG8gc2hvdyB3aGV0aGVyIGZvciAnPScgKDApIG9yICchPScgKDEpCisgKgorICogSW1wbGVtZW50IHRoZSBlcXVhbCBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0cyBjb250ZW50OiBAYXJnMSA9PSBAYXJnMgorICogSWYgb25lIG9iamVjdCB0byBiZSBjb21wYXJlZCBpcyBhIG5vZGUtc2V0IGFuZCB0aGUgb3RoZXIgaXMgYSBzdHJpbmcsCisgKiB0aGVuIHRoZSBjb21wYXJpc29uIHdpbGwgYmUgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGVyZSBpcyBhIG5vZGUgaW4KKyAqIHRoZSBub2RlLXNldCBzdWNoIHRoYXQgdGhlIHJlc3VsdCBvZiBwZXJmb3JtaW5nIHRoZSBjb21wYXJpc29uIG9uIHRoZQorICogc3RyaW5nLXZhbHVlIG9mIHRoZSBub2RlIGFuZCB0aGUgb3RoZXIgc3RyaW5nIGlzIHRydWUuCisgKgorICogUmV0dXJucyAwIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0LgorICovCitzdGF0aWMgaW50Cit4bWxYUGF0aEVxdWFsTm9kZVNldFN0cmluZyh4bWxYUGF0aE9iamVjdFB0ciBhcmcsIGNvbnN0IHhtbENoYXIgKiBzdHIsIGludCBuZXEpCit7CisgICAgaW50IGk7CisgICAgeG1sTm9kZVNldFB0ciBuczsKKyAgICB4bWxDaGFyICpzdHIyOworICAgIHVuc2lnbmVkIGludCBoYXNoOworCisgICAgaWYgKChzdHIgPT0gTlVMTCkgfHwgKGFyZyA9PSBOVUxMKSB8fAorICAgICAgICAoKGFyZy0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSAmJiAoYXJnLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpKQorICAgICAgICByZXR1cm4gKDApOworICAgIG5zID0gYXJnLT5ub2Rlc2V0dmFsOworICAgIC8qCisgICAgICogQSBOVUxMIG5vZGVzZXQgY29tcGFyZWQgd2l0aCBhIHN0cmluZyBpcyBhbHdheXMgZmFsc2UKKyAgICAgKiAoc2luY2UgdGhlcmUgaXMgbm8gbm9kZSBlcXVhbCwgYW5kIG5vIG5vZGUgbm90IGVxdWFsKQorICAgICAqLworICAgIGlmICgobnMgPT0gTlVMTCkgfHwgKG5zLT5ub2RlTnIgPD0gMCkgKQorICAgICAgICByZXR1cm4gKDApOworICAgIGhhc2ggPSB4bWxYUGF0aFN0cmluZ0hhc2goc3RyKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnMtPm5vZGVOcjsgaSsrKSB7CisgICAgICAgIGlmICh4bWxYUGF0aE5vZGVWYWxIYXNoKG5zLT5ub2RlVGFiW2ldKSA9PSBoYXNoKSB7CisgICAgICAgICAgICBzdHIyID0geG1sTm9kZUdldENvbnRlbnQobnMtPm5vZGVUYWJbaV0pOworICAgICAgICAgICAgaWYgKChzdHIyICE9IE5VTEwpICYmICh4bWxTdHJFcXVhbChzdHIsIHN0cjIpKSkgeworICAgICAgICAgICAgICAgIHhtbEZyZWUoc3RyMik7CisJCWlmIChuZXEpCisJCSAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKDEpOworCSAgICB9IGVsc2UgaWYgKChzdHIyID09IE5VTEwpICYmICh4bWxTdHJFcXVhbChzdHIsIEJBRF9DQVNUICIiKSkpIHsKKwkJaWYgKG5lcSkKKwkJICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHJldHVybiAoMSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5lcSkgeworCQlpZiAoc3RyMiAhPSBOVUxMKQorCQkgICAgeG1sRnJlZShzdHIyKTsKKwkJcmV0dXJuICgxKTsKKwkgICAgfQorICAgICAgICAgICAgaWYgKHN0cjIgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICB4bWxGcmVlKHN0cjIpOworICAgICAgICB9IGVsc2UgaWYgKG5lcSkKKwkgICAgcmV0dXJuICgxKTsKKyAgICB9CisgICAgcmV0dXJuICgwKTsKK30KKworLyoqCisgKiB4bWxYUGF0aEVxdWFsTm9kZVNldEZsb2F0OgorICogQGFyZzogIHRoZSBub2Rlc2V0IG9iamVjdCBhcmd1bWVudAorICogQGY6ICB0aGUgZmxvYXQgdG8gY29tcGFyZSB0bworICogQG5lcTogIGZsYWcgdG8gc2hvdyB3aGV0aGVyIHRvIGNvbXBhcmUgJz0nICgwKSBvciAnIT0nICgxKQorICoKKyAqIEltcGxlbWVudCB0aGUgZXF1YWwgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHMgY29udGVudDogQGFyZzEgPT0gQGFyZzIKKyAqIElmIG9uZSBvYmplY3QgdG8gYmUgY29tcGFyZWQgaXMgYSBub2RlLXNldCBhbmQgdGhlIG90aGVyIGlzIGEgbnVtYmVyLAorICogdGhlbiB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgYSBub2RlIGluCisgKiB0aGUgbm9kZS1zZXQgc3VjaCB0aGF0IHRoZSByZXN1bHQgb2YgcGVyZm9ybWluZyB0aGUgY29tcGFyaXNvbiBvbiB0aGUKKyAqIG51bWJlciB0byBiZSBjb21wYXJlZCBhbmQgb24gdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIHRoZSBzdHJpbmctdmFsdWUKKyAqIG9mIHRoYXQgbm9kZSB0byBhIG51bWJlciB1c2luZyB0aGUgbnVtYmVyIGZ1bmN0aW9uIGlzIHRydWUuCisgKgorICogUmV0dXJucyAwIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0LgorICovCitzdGF0aWMgaW50Cit4bWxYUGF0aEVxdWFsTm9kZVNldEZsb2F0KHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorICAgIHhtbFhQYXRoT2JqZWN0UHRyIGFyZywgZG91YmxlIGYsIGludCBuZXEpIHsKKyAgaW50IGksIHJldD0wOworICB4bWxOb2RlU2V0UHRyIG5zOworICB4bWxDaGFyICpzdHIyOworICB4bWxYUGF0aE9iamVjdFB0ciB2YWw7CisgIGRvdWJsZSB2OworCisgICAgaWYgKChhcmcgPT0gTlVMTCkgfHwKKwkoKGFyZy0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSAmJiAoYXJnLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpKQorICAgICAgICByZXR1cm4oMCk7CisKKyAgICBucyA9IGFyZy0+bm9kZXNldHZhbDsKKyAgICBpZiAobnMgIT0gTlVMTCkgeworCWZvciAoaT0wO2k8bnMtPm5vZGVOcjtpKyspIHsKKwkgICAgc3RyMiA9IHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyhucy0+bm9kZVRhYltpXSk7CisJICAgIGlmIChzdHIyICE9IE5VTEwpIHsKKwkJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdTdHJpbmcoY3R4dC0+Y29udGV4dCwgc3RyMikpOworCQl4bWxGcmVlKHN0cjIpOworCQl4bWxYUGF0aE51bWJlckZ1bmN0aW9uKGN0eHQsIDEpOworCQl2YWwgPSB2YWx1ZVBvcChjdHh0KTsKKwkJdiA9IHZhbC0+ZmxvYXR2YWw7CisJCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCB2YWwpOworCQlpZiAoIXhtbFhQYXRoSXNOYU4odikpIHsKKwkJICAgIGlmICgoIW5lcSkgJiYgKHY9PWYpKSB7CisJCQlyZXQgPSAxOworCQkJYnJlYWs7CisJCSAgICB9IGVsc2UgaWYgKChuZXEpICYmICh2IT1mKSkgeworCQkJcmV0ID0gMTsKKwkJCWJyZWFrOworCQkgICAgfQorCQl9IGVsc2UgewkvKiBOYU4gaXMgdW5lcXVhbCB0byBhbnkgdmFsdWUgKi8KKwkJICAgIGlmIChuZXEpCisJCQlyZXQgPSAxOworCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgICAgcmV0dXJuKHJldCk7Cit9CisKKworLyoqCisgKiB4bWxYUGF0aEVxdWFsTm9kZVNldHM6CisgKiBAYXJnMTogIGZpcnN0IG5vZGVzZXQgb2JqZWN0IGFyZ3VtZW50CisgKiBAYXJnMjogIHNlY29uZCBub2Rlc2V0IG9iamVjdCBhcmd1bWVudAorICogQG5lcTogICBmbGFnIHRvIHNob3cgd2hldGhlciB0byB0ZXN0ICc9JyAoMCkgb3IgJyE9JyAoMSkKKyAqCisgKiBJbXBsZW1lbnQgdGhlIGVxdWFsIC8gbm90IGVxdWFsIG9wZXJhdGlvbiBvbiBYUGF0aCBub2Rlc2V0czoKKyAqIEBhcmcxID09IEBhcmcyICBvciAgQGFyZzEgIT0gQGFyZzIKKyAqIElmIGJvdGggb2JqZWN0cyB0byBiZSBjb21wYXJlZCBhcmUgbm9kZS1zZXRzLCB0aGVuIHRoZSBjb21wYXJpc29uCisgKiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgYSBub2RlIGluIHRoZSBmaXJzdCBub2RlLXNldCBhbmQKKyAqIGEgbm9kZSBpbiB0aGUgc2Vjb25kIG5vZGUtc2V0IHN1Y2ggdGhhdCB0aGUgcmVzdWx0IG9mIHBlcmZvcm1pbmcgdGhlCisgKiBjb21wYXJpc29uIG9uIHRoZSBzdHJpbmctdmFsdWVzIG9mIHRoZSB0d28gbm9kZXMgaXMgdHJ1ZS4KKyAqCisgKiAobmVlZGxlc3MgdG8gc2F5LCB0aGlzIGlzIGEgY29zdGx5IG9wZXJhdGlvbikKKyAqCisgKiBSZXR1cm5zIDAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3QuCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQYXRoRXF1YWxOb2RlU2V0cyh4bWxYUGF0aE9iamVjdFB0ciBhcmcxLCB4bWxYUGF0aE9iamVjdFB0ciBhcmcyLCBpbnQgbmVxKSB7CisgICAgaW50IGksIGo7CisgICAgdW5zaWduZWQgaW50ICpoYXNoczE7CisgICAgdW5zaWduZWQgaW50ICpoYXNoczI7CisgICAgeG1sQ2hhciAqKnZhbHVlczE7CisgICAgeG1sQ2hhciAqKnZhbHVlczI7CisgICAgaW50IHJldCA9IDA7CisgICAgeG1sTm9kZVNldFB0ciBuczE7CisgICAgeG1sTm9kZVNldFB0ciBuczI7CisKKyAgICBpZiAoKGFyZzEgPT0gTlVMTCkgfHwKKwkoKGFyZzEtPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkgJiYgKGFyZzEtPnR5cGUgIT0gWFBBVEhfWFNMVF9UUkVFKSkpCisgICAgICAgIHJldHVybigwKTsKKyAgICBpZiAoKGFyZzIgPT0gTlVMTCkgfHwKKwkoKGFyZzItPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkgJiYgKGFyZzItPnR5cGUgIT0gWFBBVEhfWFNMVF9UUkVFKSkpCisgICAgICAgIHJldHVybigwKTsKKworICAgIG5zMSA9IGFyZzEtPm5vZGVzZXR2YWw7CisgICAgbnMyID0gYXJnMi0+bm9kZXNldHZhbDsKKworICAgIGlmICgobnMxID09IE5VTEwpIHx8IChuczEtPm5vZGVOciA8PSAwKSkKKwlyZXR1cm4oMCk7CisgICAgaWYgKChuczIgPT0gTlVMTCkgfHwgKG5zMi0+bm9kZU5yIDw9IDApKQorCXJldHVybigwKTsKKworICAgIC8qCisgICAgICogZm9yIGVxdWFsLCBjaGVjayBpZiB0aGVyZSBpcyBhIG5vZGUgcGVydGFpbmluZyB0byBib3RoIHNldHMKKyAgICAgKi8KKyAgICBpZiAobmVxID09IDApCisJZm9yIChpID0gMDtpIDwgbnMxLT5ub2RlTnI7aSsrKQorCSAgICBmb3IgKGogPSAwO2ogPCBuczItPm5vZGVOcjtqKyspCisJCWlmIChuczEtPm5vZGVUYWJbaV0gPT0gbnMyLT5ub2RlVGFiW2pdKQorCQkgICAgcmV0dXJuKDEpOworCisgICAgdmFsdWVzMSA9ICh4bWxDaGFyICoqKSB4bWxNYWxsb2MobnMxLT5ub2RlTnIgKiBzaXplb2YoeG1sQ2hhciAqKSk7CisgICAgaWYgKHZhbHVlczEgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY29tcGFyaW5nIG5vZGVzZXRzXG4iKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGhhc2hzMSA9ICh1bnNpZ25lZCBpbnQgKikgeG1sTWFsbG9jKG5zMS0+bm9kZU5yICogc2l6ZW9mKHVuc2lnbmVkIGludCkpOworICAgIGlmIChoYXNoczEgPT0gTlVMTCkgeworICAgICAgICB4bWxYUGF0aEVyck1lbW9yeShOVUxMLCAiY29tcGFyaW5nIG5vZGVzZXRzXG4iKTsKKwl4bWxGcmVlKHZhbHVlczEpOworCXJldHVybigwKTsKKyAgICB9CisgICAgbWVtc2V0KHZhbHVlczEsIDAsIG5zMS0+bm9kZU5yICogc2l6ZW9mKHhtbENoYXIgKikpOworICAgIHZhbHVlczIgPSAoeG1sQ2hhciAqKikgeG1sTWFsbG9jKG5zMi0+bm9kZU5yICogc2l6ZW9mKHhtbENoYXIgKikpOworICAgIGlmICh2YWx1ZXMyID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImNvbXBhcmluZyBub2Rlc2V0c1xuIik7CisJeG1sRnJlZShoYXNoczEpOworCXhtbEZyZWUodmFsdWVzMSk7CisJcmV0dXJuKDApOworICAgIH0KKyAgICBoYXNoczIgPSAodW5zaWduZWQgaW50ICopIHhtbE1hbGxvYyhuczItPm5vZGVOciAqIHNpemVvZih1bnNpZ25lZCBpbnQpKTsKKyAgICBpZiAoaGFzaHMyID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFBhdGhFcnJNZW1vcnkoTlVMTCwgImNvbXBhcmluZyBub2Rlc2V0c1xuIik7CisJeG1sRnJlZShoYXNoczEpOworCXhtbEZyZWUodmFsdWVzMSk7CisJeG1sRnJlZSh2YWx1ZXMyKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIG1lbXNldCh2YWx1ZXMyLCAwLCBuczItPm5vZGVOciAqIHNpemVvZih4bWxDaGFyICopKTsKKyAgICBmb3IgKGkgPSAwO2kgPCBuczEtPm5vZGVOcjtpKyspIHsKKwloYXNoczFbaV0gPSB4bWxYUGF0aE5vZGVWYWxIYXNoKG5zMS0+bm9kZVRhYltpXSk7CisJZm9yIChqID0gMDtqIDwgbnMyLT5ub2RlTnI7aisrKSB7CisJICAgIGlmIChpID09IDApCisJCWhhc2hzMltqXSA9IHhtbFhQYXRoTm9kZVZhbEhhc2gobnMyLT5ub2RlVGFiW2pdKTsKKwkgICAgaWYgKGhhc2hzMVtpXSAhPSBoYXNoczJbal0pIHsKKwkJaWYgKG5lcSkgeworCQkgICAgcmV0ID0gMTsKKwkJICAgIGJyZWFrOworCQl9CisJICAgIH0KKwkgICAgZWxzZSB7CisJCWlmICh2YWx1ZXMxW2ldID09IE5VTEwpCisJCSAgICB2YWx1ZXMxW2ldID0geG1sTm9kZUdldENvbnRlbnQobnMxLT5ub2RlVGFiW2ldKTsKKwkJaWYgKHZhbHVlczJbal0gPT0gTlVMTCkKKwkJICAgIHZhbHVlczJbal0gPSB4bWxOb2RlR2V0Q29udGVudChuczItPm5vZGVUYWJbal0pOworCQlyZXQgPSB4bWxTdHJFcXVhbCh2YWx1ZXMxW2ldLCB2YWx1ZXMyW2pdKSBeIG5lcTsKKwkJaWYgKHJldCkKKwkJICAgIGJyZWFrOworCSAgICB9CisJfQorCWlmIChyZXQpCisJICAgIGJyZWFrOworICAgIH0KKyAgICBmb3IgKGkgPSAwO2kgPCBuczEtPm5vZGVOcjtpKyspCisJaWYgKHZhbHVlczFbaV0gIT0gTlVMTCkKKwkgICAgeG1sRnJlZSh2YWx1ZXMxW2ldKTsKKyAgICBmb3IgKGogPSAwO2ogPCBuczItPm5vZGVOcjtqKyspCisJaWYgKHZhbHVlczJbal0gIT0gTlVMTCkKKwkgICAgeG1sRnJlZSh2YWx1ZXMyW2pdKTsKKyAgICB4bWxGcmVlKHZhbHVlczEpOworICAgIHhtbEZyZWUodmFsdWVzMik7CisgICAgeG1sRnJlZShoYXNoczEpOworICAgIHhtbEZyZWUoaGFzaHMyKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworc3RhdGljIGludAoreG1sWFBhdGhFcXVhbFZhbHVlc0NvbW1vbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKyAgeG1sWFBhdGhPYmplY3RQdHIgYXJnMSwgeG1sWFBhdGhPYmplY3RQdHIgYXJnMikgeworICAgIGludCByZXQgPSAwOworICAgIC8qCisgICAgICpBdCB0aGlzIHBvaW50IHdlIGFyZSBhc3N1cmVkIG5laXRoZXIgYXJnMSBub3IgYXJnMgorICAgICAqaXMgYSBub2Rlc2V0LCBzbyB3ZSBjYW4ganVzdCBwaWNrIHRoZSBhcHByb3ByaWF0ZSByb3V0aW5lLgorICAgICAqLworICAgIHN3aXRjaCAoYXJnMS0+dHlwZSkgeworICAgICAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKyNpZmRlZiBERUJVR19FWFBSCisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkgICAgIkVxdWFsOiB1bmRlZmluZWRcbiIpOworI2VuZGlmCisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisJICAgIHN3aXRjaCAoYXJnMi0+dHlwZSkgeworCSAgICAgICAgY2FzZSBYUEFUSF9VTkRFRklORUQ6CisjaWZkZWYgREVCVUdfRVhQUgorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkVxdWFsOiB1bmRlZmluZWRcbiIpOworI2VuZGlmCisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9CT09MRUFOOgorI2lmZGVmIERFQlVHX0VYUFIKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJFcXVhbDogJWQgYm9vbGVhbiAlZCBcbiIsCisJCQkgICAgYXJnMS0+Ym9vbHZhbCwgYXJnMi0+Ym9vbHZhbCk7CisjZW5kaWYKKwkJICAgIHJldCA9IChhcmcxLT5ib29sdmFsID09IGFyZzItPmJvb2x2YWwpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfTlVNQkVSOgorCQkgICAgcmV0ID0gKGFyZzEtPmJvb2x2YWwgPT0KKwkJCSAgIHhtbFhQYXRoQ2FzdE51bWJlclRvQm9vbGVhbihhcmcyLT5mbG9hdHZhbCkpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfU1RSSU5HOgorCQkgICAgaWYgKChhcmcyLT5zdHJpbmd2YWwgPT0gTlVMTCkgfHwKKwkJCShhcmcyLT5zdHJpbmd2YWxbMF0gPT0gMCkpIHJldCA9IDA7CisJCSAgICBlbHNlCisJCQlyZXQgPSAxOworCQkgICAgcmV0ID0gKGFyZzEtPmJvb2x2YWwgPT0gcmV0KTsKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX1VTRVJTOgorCQljYXNlIFhQQVRIX1BPSU5UOgorCQljYXNlIFhQQVRIX1JBTkdFOgorCQljYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOgorCQkgICAgVE9ETworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfTk9ERVNFVDoKKwkJY2FzZSBYUEFUSF9YU0xUX1RSRUU6CisJCSAgICBicmVhazsKKwkgICAgfQorCSAgICBicmVhazsKKyAgICAgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisJICAgIHN3aXRjaCAoYXJnMi0+dHlwZSkgeworCSAgICAgICAgY2FzZSBYUEFUSF9VTkRFRklORUQ6CisjaWZkZWYgREVCVUdfRVhQUgorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIkVxdWFsOiB1bmRlZmluZWRcbiIpOworI2VuZGlmCisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9CT09MRUFOOgorCQkgICAgcmV0ID0gKGFyZzItPmJvb2x2YWw9PQorCQkJICAgeG1sWFBhdGhDYXN0TnVtYmVyVG9Cb29sZWFuKGFyZzEtPmZsb2F0dmFsKSk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9TVFJJTkc6CisJCSAgICB2YWx1ZVB1c2goY3R4dCwgYXJnMik7CisJCSAgICB4bWxYUGF0aE51bWJlckZ1bmN0aW9uKGN0eHQsIDEpOworCQkgICAgYXJnMiA9IHZhbHVlUG9wKGN0eHQpOworCQkgICAgLyogbm8gYnJlYWsgb24gcHVycG9zZSAqLworCQljYXNlIFhQQVRIX05VTUJFUjoKKwkJICAgIC8qIEhhbmQgY2hlY2sgTmFOIGFuZCBJbmZpbml0eSBlcXVhbGl0aWVzICovCisJCSAgICBpZiAoeG1sWFBhdGhJc05hTihhcmcxLT5mbG9hdHZhbCkgfHwKKwkJCSAgICB4bWxYUGF0aElzTmFOKGFyZzItPmZsb2F0dmFsKSkgeworCQkgICAgICAgIHJldCA9IDA7CisJCSAgICB9IGVsc2UgaWYgKHhtbFhQYXRoSXNJbmYoYXJnMS0+ZmxvYXR2YWwpID09IDEpIHsKKwkJICAgICAgICBpZiAoeG1sWFBhdGhJc0luZihhcmcyLT5mbG9hdHZhbCkgPT0gMSkKKwkJCSAgICByZXQgPSAxOworCQkJZWxzZQorCQkJICAgIHJldCA9IDA7CisJCSAgICB9IGVsc2UgaWYgKHhtbFhQYXRoSXNJbmYoYXJnMS0+ZmxvYXR2YWwpID09IC0xKSB7CisJCQlpZiAoeG1sWFBhdGhJc0luZihhcmcyLT5mbG9hdHZhbCkgPT0gLTEpCisJCQkgICAgcmV0ID0gMTsKKwkJCWVsc2UKKwkJCSAgICByZXQgPSAwOworCQkgICAgfSBlbHNlIGlmICh4bWxYUGF0aElzSW5mKGFyZzItPmZsb2F0dmFsKSA9PSAxKSB7CisJCQlpZiAoeG1sWFBhdGhJc0luZihhcmcxLT5mbG9hdHZhbCkgPT0gMSkKKwkJCSAgICByZXQgPSAxOworCQkJZWxzZQorCQkJICAgIHJldCA9IDA7CisJCSAgICB9IGVsc2UgaWYgKHhtbFhQYXRoSXNJbmYoYXJnMi0+ZmxvYXR2YWwpID09IC0xKSB7CisJCQlpZiAoeG1sWFBhdGhJc0luZihhcmcxLT5mbG9hdHZhbCkgPT0gLTEpCisJCQkgICAgcmV0ID0gMTsKKwkJCWVsc2UKKwkJCSAgICByZXQgPSAwOworCQkgICAgfSBlbHNlIHsKKwkJICAgICAgICByZXQgPSAoYXJnMS0+ZmxvYXR2YWwgPT0gYXJnMi0+ZmxvYXR2YWwpOworCQkgICAgfQorCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfVVNFUlM6CisJCWNhc2UgWFBBVEhfUE9JTlQ6CisJCWNhc2UgWFBBVEhfUkFOR0U6CisJCWNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJCSAgICBUT0RPCisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9OT0RFU0VUOgorCQljYXNlIFhQQVRIX1hTTFRfVFJFRToKKwkJICAgIGJyZWFrOworCSAgICB9CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhQQVRIX1NUUklORzoKKwkgICAgc3dpdGNoIChhcmcyLT50eXBlKSB7CisJICAgICAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKyNpZmRlZiBERUJVR19FWFBSCisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiRXF1YWw6IHVuZGVmaW5lZFxuIik7CisjZW5kaWYKKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX0JPT0xFQU46CisJCSAgICBpZiAoKGFyZzEtPnN0cmluZ3ZhbCA9PSBOVUxMKSB8fAorCQkJKGFyZzEtPnN0cmluZ3ZhbFswXSA9PSAwKSkgcmV0ID0gMDsKKwkJICAgIGVsc2UKKwkJCXJldCA9IDE7CisJCSAgICByZXQgPSAoYXJnMi0+Ym9vbHZhbCA9PSByZXQpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfU1RSSU5HOgorCQkgICAgcmV0ID0geG1sU3RyRXF1YWwoYXJnMS0+c3RyaW5ndmFsLCBhcmcyLT5zdHJpbmd2YWwpOworCQkgICAgYnJlYWs7CisJCWNhc2UgWFBBVEhfTlVNQkVSOgorCQkgICAgdmFsdWVQdXNoKGN0eHQsIGFyZzEpOworCQkgICAgeG1sWFBhdGhOdW1iZXJGdW5jdGlvbihjdHh0LCAxKTsKKwkJICAgIGFyZzEgPSB2YWx1ZVBvcChjdHh0KTsKKwkJICAgIC8qIEhhbmQgY2hlY2sgTmFOIGFuZCBJbmZpbml0eSBlcXVhbGl0aWVzICovCisJCSAgICBpZiAoeG1sWFBhdGhJc05hTihhcmcxLT5mbG9hdHZhbCkgfHwKKwkJCSAgICB4bWxYUGF0aElzTmFOKGFyZzItPmZsb2F0dmFsKSkgeworCQkgICAgICAgIHJldCA9IDA7CisJCSAgICB9IGVsc2UgaWYgKHhtbFhQYXRoSXNJbmYoYXJnMS0+ZmxvYXR2YWwpID09IDEpIHsKKwkJCWlmICh4bWxYUGF0aElzSW5mKGFyZzItPmZsb2F0dmFsKSA9PSAxKQorCQkJICAgIHJldCA9IDE7CisJCQllbHNlCisJCQkgICAgcmV0ID0gMDsKKwkJICAgIH0gZWxzZSBpZiAoeG1sWFBhdGhJc0luZihhcmcxLT5mbG9hdHZhbCkgPT0gLTEpIHsKKwkJCWlmICh4bWxYUGF0aElzSW5mKGFyZzItPmZsb2F0dmFsKSA9PSAtMSkKKwkJCSAgICByZXQgPSAxOworCQkJZWxzZQorCQkJICAgIHJldCA9IDA7CisJCSAgICB9IGVsc2UgaWYgKHhtbFhQYXRoSXNJbmYoYXJnMi0+ZmxvYXR2YWwpID09IDEpIHsKKwkJCWlmICh4bWxYUGF0aElzSW5mKGFyZzEtPmZsb2F0dmFsKSA9PSAxKQorCQkJICAgIHJldCA9IDE7CisJCQllbHNlCisJCQkgICAgcmV0ID0gMDsKKwkJICAgIH0gZWxzZSBpZiAoeG1sWFBhdGhJc0luZihhcmcyLT5mbG9hdHZhbCkgPT0gLTEpIHsKKwkJCWlmICh4bWxYUGF0aElzSW5mKGFyZzEtPmZsb2F0dmFsKSA9PSAtMSkKKwkJCSAgICByZXQgPSAxOworCQkJZWxzZQorCQkJICAgIHJldCA9IDA7CisJCSAgICB9IGVsc2UgeworCQkgICAgICAgIHJldCA9IChhcmcxLT5mbG9hdHZhbCA9PSBhcmcyLT5mbG9hdHZhbCk7CisJCSAgICB9CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9VU0VSUzoKKwkJY2FzZSBYUEFUSF9QT0lOVDoKKwkJY2FzZSBYUEFUSF9SQU5HRToKKwkJY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKwkJICAgIFRPRE8KKwkJICAgIGJyZWFrOworCQljYXNlIFhQQVRIX05PREVTRVQ6CisJCWNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCQkgICAgYnJlYWs7CisJICAgIH0KKwkgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWFBBVEhfVVNFUlM6CisJY2FzZSBYUEFUSF9QT0lOVDoKKwljYXNlIFhQQVRIX1JBTkdFOgorCWNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJICAgIFRPRE8KKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9OT0RFU0VUOgorCWNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCSAgICBicmVhazsKKyAgICB9CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZzEpOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aEVxdWFsVmFsdWVzOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiBJbXBsZW1lbnQgdGhlIGVxdWFsIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzIGNvbnRlbnQ6IEBhcmcxID09IEBhcmcyCisgKgorICogUmV0dXJucyAwIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0LgorICovCitpbnQKK3htbFhQYXRoRXF1YWxWYWx1ZXMoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBhcmcxLCBhcmcyLCBhcmd0bXA7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRleHQgPT0gTlVMTCkpIHJldHVybigwKTsKKyAgICBhcmcyID0gdmFsdWVQb3AoY3R4dCk7CisgICAgYXJnMSA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmICgoYXJnMSA9PSBOVUxMKSB8fCAoYXJnMiA9PSBOVUxMKSkgeworCWlmIChhcmcxICE9IE5VTEwpCisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcxKTsKKwllbHNlCisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKwlYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKyAgICB9CisKKyAgICBpZiAoYXJnMSA9PSBhcmcyKSB7CisjaWZkZWYgREVCVUdfRVhQUgorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkVxdWFsOiBieSBwb2ludGVyXG4iKTsKKyNlbmRpZgorCXhtbFhQYXRoRnJlZU9iamVjdChhcmcxKTsKKyAgICAgICAgcmV0dXJuKDEpOworICAgIH0KKworICAgIC8qCisgICAgICpJZiBlaXRoZXIgYXJndW1lbnQgaXMgYSBub2Rlc2V0LCBpdCdzIGEgJ3NwZWNpYWwgY2FzZScKKyAgICAgKi8KKyAgICBpZiAoKGFyZzItPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKGFyZzItPnR5cGUgPT0gWFBBVEhfWFNMVF9UUkVFKSB8fAorICAgICAgKGFyZzEtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKGFyZzEtPnR5cGUgPT0gWFBBVEhfWFNMVF9UUkVFKSkgeworCS8qCisJICpIYWNrIGl0IHRvIGFzc3VyZSBhcmcxIGlzIHRoZSBub2Rlc2V0CisJICovCisJaWYgKChhcmcxLT50eXBlICE9IFhQQVRIX05PREVTRVQpICYmIChhcmcxLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpIHsKKwkJYXJndG1wID0gYXJnMjsKKwkJYXJnMiA9IGFyZzE7CisJCWFyZzEgPSBhcmd0bXA7CisJfQorCXN3aXRjaCAoYXJnMi0+dHlwZSkgeworCSAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKyNpZmRlZiBERUJVR19FWFBSCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIkVxdWFsOiB1bmRlZmluZWRcbiIpOworI2VuZGlmCisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisJICAgIGNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCQlyZXQgPSB4bWxYUGF0aEVxdWFsTm9kZVNldHMoYXJnMSwgYXJnMiwgMCk7CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisJCWlmICgoYXJnMS0+bm9kZXNldHZhbCA9PSBOVUxMKSB8fAorCQkgIChhcmcxLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPT0gMCkpIHJldCA9IDA7CisJCWVsc2UKKwkJICAgIHJldCA9IDE7CisJCXJldCA9IChyZXQgPT0gYXJnMi0+Ym9vbHZhbCk7CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX05VTUJFUjoKKwkJcmV0ID0geG1sWFBhdGhFcXVhbE5vZGVTZXRGbG9hdChjdHh0LCBhcmcxLCBhcmcyLT5mbG9hdHZhbCwgMCk7CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX1NUUklORzoKKwkJcmV0ID0geG1sWFBhdGhFcXVhbE5vZGVTZXRTdHJpbmcoYXJnMSwgYXJnMi0+c3RyaW5ndmFsLCAwKTsKKwkJYnJlYWs7CisJICAgIGNhc2UgWFBBVEhfVVNFUlM6CisJICAgIGNhc2UgWFBBVEhfUE9JTlQ6CisJICAgIGNhc2UgWFBBVEhfUkFOR0U6CisJICAgIGNhc2UgWFBBVEhfTE9DQVRJT05TRVQ6CisJCVRPRE8KKwkJYnJlYWs7CisJfQorCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcxKTsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgYXJnMik7CisJcmV0dXJuKHJldCk7CisgICAgfQorCisgICAgcmV0dXJuICh4bWxYUGF0aEVxdWFsVmFsdWVzQ29tbW9uKGN0eHQsIGFyZzEsIGFyZzIpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5vdEVxdWFsVmFsdWVzOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiBJbXBsZW1lbnQgdGhlIGVxdWFsIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzIGNvbnRlbnQ6IEBhcmcxID09IEBhcmcyCisgKgorICogUmV0dXJucyAwIG9yIDEgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0LgorICovCitpbnQKK3htbFhQYXRoTm90RXF1YWxWYWx1ZXMoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBhcmcxLCBhcmcyLCBhcmd0bXA7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRleHQgPT0gTlVMTCkpIHJldHVybigwKTsKKyAgICBhcmcyID0gdmFsdWVQb3AoY3R4dCk7CisgICAgYXJnMSA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmICgoYXJnMSA9PSBOVUxMKSB8fCAoYXJnMiA9PSBOVUxMKSkgeworCWlmIChhcmcxICE9IE5VTEwpCisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcxKTsKKwllbHNlCisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKwlYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKyAgICB9CisKKyAgICBpZiAoYXJnMSA9PSBhcmcyKSB7CisjaWZkZWYgREVCVUdfRVhQUgorICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIk5vdEVxdWFsOiBieSBwb2ludGVyXG4iKTsKKyNlbmRpZgorCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcxKTsKKyAgICAgICAgcmV0dXJuKDApOworICAgIH0KKworICAgIC8qCisgICAgICpJZiBlaXRoZXIgYXJndW1lbnQgaXMgYSBub2Rlc2V0LCBpdCdzIGEgJ3NwZWNpYWwgY2FzZScKKyAgICAgKi8KKyAgICBpZiAoKGFyZzItPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKGFyZzItPnR5cGUgPT0gWFBBVEhfWFNMVF9UUkVFKSB8fAorICAgICAgKGFyZzEtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKGFyZzEtPnR5cGUgPT0gWFBBVEhfWFNMVF9UUkVFKSkgeworCS8qCisJICpIYWNrIGl0IHRvIGFzc3VyZSBhcmcxIGlzIHRoZSBub2Rlc2V0CisJICovCisJaWYgKChhcmcxLT50eXBlICE9IFhQQVRIX05PREVTRVQpICYmIChhcmcxLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpIHsKKwkJYXJndG1wID0gYXJnMjsKKwkJYXJnMiA9IGFyZzE7CisJCWFyZzEgPSBhcmd0bXA7CisJfQorCXN3aXRjaCAoYXJnMi0+dHlwZSkgeworCSAgICBjYXNlIFhQQVRIX1VOREVGSU5FRDoKKyNpZmRlZiBERUJVR19FWFBSCisJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJIk5vdEVxdWFsOiB1bmRlZmluZWRcbiIpOworI2VuZGlmCisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX05PREVTRVQ6CisJICAgIGNhc2UgWFBBVEhfWFNMVF9UUkVFOgorCQlyZXQgPSB4bWxYUGF0aEVxdWFsTm9kZVNldHMoYXJnMSwgYXJnMiwgMSk7CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX0JPT0xFQU46CisJCWlmICgoYXJnMS0+bm9kZXNldHZhbCA9PSBOVUxMKSB8fAorCQkgIChhcmcxLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPT0gMCkpIHJldCA9IDA7CisJCWVsc2UKKwkJICAgIHJldCA9IDE7CisJCXJldCA9IChyZXQgIT0gYXJnMi0+Ym9vbHZhbCk7CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX05VTUJFUjoKKwkJcmV0ID0geG1sWFBhdGhFcXVhbE5vZGVTZXRGbG9hdChjdHh0LCBhcmcxLCBhcmcyLT5mbG9hdHZhbCwgMSk7CisJCWJyZWFrOworCSAgICBjYXNlIFhQQVRIX1NUUklORzoKKwkJcmV0ID0geG1sWFBhdGhFcXVhbE5vZGVTZXRTdHJpbmcoYXJnMSwgYXJnMi0+c3RyaW5ndmFsLDEpOworCQlicmVhazsKKwkgICAgY2FzZSBYUEFUSF9VU0VSUzoKKwkgICAgY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgY2FzZSBYUEFUSF9SQU5HRToKKwkgICAgY2FzZSBYUEFUSF9MT0NBVElPTlNFVDoKKwkJVE9ETworCQlicmVhazsKKwl9CisJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZzEpOworCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKwlyZXR1cm4ocmV0KTsKKyAgICB9CisKKyAgICByZXR1cm4gKCF4bWxYUGF0aEVxdWFsVmFsdWVzQ29tbW9uKGN0eHQsIGFyZzEsIGFyZzIpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBhcmVWYWx1ZXM6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGluZjogIGxlc3MgdGhhbiAoMSkgb3IgZ3JlYXRlciB0aGFuICgwKQorICogQHN0cmljdDogIGlzIHRoZSBjb21wYXJpc29uIHN0cmljdAorICoKKyAqIEltcGxlbWVudCB0aGUgY29tcGFyZSBvcGVyYXRpb24gb24gWFBhdGggb2JqZWN0czoKKyAqICAgICBAYXJnMSA8IEBhcmcyICAgICgxLCAxLCAuLi4KKyAqICAgICBAYXJnMSA8PSBAYXJnMiAgICgxLCAwLCAuLi4KKyAqICAgICBAYXJnMSA+IEBhcmcyICAgICgwLCAxLCAuLi4KKyAqICAgICBAYXJnMSA+PSBAYXJnMiAgICgwLCAwLCAuLi4KKyAqCisgKiBXaGVuIG5laXRoZXIgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIGlzIGEgbm9kZS1zZXQgYW5kIHRoZSBvcGVyYXRvciBpcworICogPD0sIDwsID49LCA+LCB0aGVuIHRoZSBvYmplY3RzIGFyZSBjb21wYXJlZCBieSBjb252ZXJ0ZWQgYm90aCBvYmplY3RzCisgKiB0byBudW1iZXJzIGFuZCBjb21wYXJpbmcgdGhlIG51bWJlcnMgYWNjb3JkaW5nIHRvIElFRUUgNzU0LiBUaGUgPAorICogY29tcGFyaXNvbiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGZpcnN0IG51bWJlciBpcyBsZXNzIHRoYW4gdGhlCisgKiBzZWNvbmQgbnVtYmVyLiBUaGUgPD0gY29tcGFyaXNvbiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGZpcnN0CisgKiBudW1iZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZWNvbmQgbnVtYmVyLiBUaGUgPiBjb21wYXJpc29uCisgKiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGZpcnN0IG51bWJlciBpcyBncmVhdGVyIHRoYW4gdGhlIHNlY29uZAorICogbnVtYmVyLiBUaGUgPj0gY29tcGFyaXNvbiB3aWxsIGJlIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlIGZpcnN0IG51bWJlcgorICogaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZWNvbmQgbnVtYmVyLgorICoKKyAqIFJldHVybnMgMSBpZiB0aGUgY29tcGFyaXNvbiBzdWNjZWVkZWQsIDAgaWYgaXQgZmFpbGVkCisgKi8KK2ludAoreG1sWFBhdGhDb21wYXJlVmFsdWVzKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgaW5mLCBpbnQgc3RyaWN0KSB7CisgICAgaW50IHJldCA9IDAsIGFyZzFpID0gMCwgYXJnMmkgPSAwOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGFyZzEsIGFyZzI7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRleHQgPT0gTlVMTCkpIHJldHVybigwKTsKKyAgICBhcmcyID0gdmFsdWVQb3AoY3R4dCk7CisgICAgYXJnMSA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmICgoYXJnMSA9PSBOVUxMKSB8fCAoYXJnMiA9PSBOVUxMKSkgeworCWlmIChhcmcxICE9IE5VTEwpCisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcxKTsKKwllbHNlCisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKwlYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKyAgICB9CisKKyAgICBpZiAoKGFyZzItPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKGFyZzItPnR5cGUgPT0gWFBBVEhfWFNMVF9UUkVFKSB8fAorICAgICAgKGFyZzEtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKGFyZzEtPnR5cGUgPT0gWFBBVEhfWFNMVF9UUkVFKSkgeworCS8qCisJICogSWYgZWl0aGVyIGFyZ3VtZW50IGlzIGEgWFBBVEhfTk9ERVNFVCBvciBYUEFUSF9YU0xUX1RSRUUgdGhlIHR3byBhcmd1bWVudHMKKwkgKiBhcmUgbm90IGZyZWVkIGZyb20gd2l0aGluIHRoaXMgcm91dGluZTsgdGhleSB3aWxsIGJlIGZyZWVkIGZyb20gdGhlCisJICogY2FsbGVkIHJvdXRpbmUsIGUuZy4geG1sWFBhdGhDb21wYXJlTm9kZVNldHMgb3IgeG1sWFBhdGhDb21wYXJlTm9kZVNldFZhbHVlCisJICovCisJaWYgKCgoYXJnMi0+dHlwZSA9PSBYUEFUSF9OT0RFU0VUKSB8fCAoYXJnMi0+dHlwZSA9PSBYUEFUSF9YU0xUX1RSRUUpKSAmJgorCSAgKChhcmcxLT50eXBlID09IFhQQVRIX05PREVTRVQpIHx8IChhcmcxLT50eXBlID09IFhQQVRIX1hTTFRfVFJFRSkpKXsKKwkgICAgcmV0ID0geG1sWFBhdGhDb21wYXJlTm9kZVNldHMoaW5mLCBzdHJpY3QsIGFyZzEsIGFyZzIpOworCX0gZWxzZSB7CisJICAgIGlmICgoYXJnMS0+dHlwZSA9PSBYUEFUSF9OT0RFU0VUKSB8fCAoYXJnMS0+dHlwZSA9PSBYUEFUSF9YU0xUX1RSRUUpKSB7CisJCXJldCA9IHhtbFhQYXRoQ29tcGFyZU5vZGVTZXRWYWx1ZShjdHh0LCBpbmYsIHN0cmljdCwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnMSwgYXJnMik7CisJICAgIH0gZWxzZSB7CisJCXJldCA9IHhtbFhQYXRoQ29tcGFyZU5vZGVTZXRWYWx1ZShjdHh0LCAhaW5mLCBzdHJpY3QsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzIsIGFyZzEpOworCSAgICB9CisJfQorCXJldHVybihyZXQpOworICAgIH0KKworICAgIGlmIChhcmcxLT50eXBlICE9IFhQQVRIX05VTUJFUikgeworCXZhbHVlUHVzaChjdHh0LCBhcmcxKTsKKwl4bWxYUGF0aE51bWJlckZ1bmN0aW9uKGN0eHQsIDEpOworCWFyZzEgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICB9CisgICAgaWYgKGFyZzEtPnR5cGUgIT0gWFBBVEhfTlVNQkVSKSB7CisJeG1sWFBhdGhGcmVlT2JqZWN0KGFyZzEpOworCXhtbFhQYXRoRnJlZU9iamVjdChhcmcyKTsKKwlYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKyAgICB9CisgICAgaWYgKGFyZzItPnR5cGUgIT0gWFBBVEhfTlVNQkVSKSB7CisJdmFsdWVQdXNoKGN0eHQsIGFyZzIpOworCXhtbFhQYXRoTnVtYmVyRnVuY3Rpb24oY3R4dCwgMSk7CisJYXJnMiA9IHZhbHVlUG9wKGN0eHQpOworICAgIH0KKyAgICBpZiAoYXJnMi0+dHlwZSAhPSBYUEFUSF9OVU1CRVIpIHsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgYXJnMSk7CisJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZzIpOworCVhQX0VSUk9SMChYUEFUSF9JTlZBTElEX09QRVJBTkQpOworICAgIH0KKyAgICAvKgorICAgICAqIEFkZCB0ZXN0cyBmb3IgaW5maW5pdHkgYW5kIG5hbgorICAgICAqID0+IGZlZWRiYWNrIG9uIDMuNCBmb3IgSW5mIGFuZCBOYU4KKyAgICAgKi8KKyAgICAvKiBIYW5kIGNoZWNrIE5hTiBhbmQgSW5maW5pdHkgY29tcGFyaXNvbnMgKi8KKyAgICBpZiAoeG1sWFBhdGhJc05hTihhcmcxLT5mbG9hdHZhbCkgfHwgeG1sWFBhdGhJc05hTihhcmcyLT5mbG9hdHZhbCkpIHsKKwlyZXQ9MDsKKyAgICB9IGVsc2UgeworCWFyZzFpPXhtbFhQYXRoSXNJbmYoYXJnMS0+ZmxvYXR2YWwpOworCWFyZzJpPXhtbFhQYXRoSXNJbmYoYXJnMi0+ZmxvYXR2YWwpOworCWlmIChpbmYgJiYgc3RyaWN0KSB7CisJICAgIGlmICgoYXJnMWkgPT0gLTEgJiYgYXJnMmkgIT0gLTEpIHx8CisJCShhcmcyaSA9PSAxICYmIGFyZzFpICE9IDEpKSB7CisJCXJldCA9IDE7CisJICAgIH0gZWxzZSBpZiAoYXJnMWkgPT0gMCAmJiBhcmcyaSA9PSAwKSB7CisJCXJldCA9IChhcmcxLT5mbG9hdHZhbCA8IGFyZzItPmZsb2F0dmFsKTsKKwkgICAgfSBlbHNlIHsKKwkJcmV0ID0gMDsKKwkgICAgfQorCX0KKwllbHNlIGlmIChpbmYgJiYgIXN0cmljdCkgeworCSAgICBpZiAoYXJnMWkgPT0gLTEgfHwgYXJnMmkgPT0gMSkgeworCQlyZXQgPSAxOworCSAgICB9IGVsc2UgaWYgKGFyZzFpID09IDAgJiYgYXJnMmkgPT0gMCkgeworCQlyZXQgPSAoYXJnMS0+ZmxvYXR2YWwgPD0gYXJnMi0+ZmxvYXR2YWwpOworCSAgICB9IGVsc2UgeworCQlyZXQgPSAwOworCSAgICB9CisJfQorCWVsc2UgaWYgKCFpbmYgJiYgc3RyaWN0KSB7CisJICAgIGlmICgoYXJnMWkgPT0gMSAmJiBhcmcyaSAhPSAxKSB8fAorCQkoYXJnMmkgPT0gLTEgJiYgYXJnMWkgIT0gLTEpKSB7CisJCXJldCA9IDE7CisJICAgIH0gZWxzZSBpZiAoYXJnMWkgPT0gMCAmJiBhcmcyaSA9PSAwKSB7CisJCXJldCA9IChhcmcxLT5mbG9hdHZhbCA+IGFyZzItPmZsb2F0dmFsKTsKKwkgICAgfSBlbHNlIHsKKwkJcmV0ID0gMDsKKwkgICAgfQorCX0KKwllbHNlIGlmICghaW5mICYmICFzdHJpY3QpIHsKKwkgICAgaWYgKGFyZzFpID09IDEgfHwgYXJnMmkgPT0gLTEpIHsKKwkJcmV0ID0gMTsKKwkgICAgfSBlbHNlIGlmIChhcmcxaSA9PSAwICYmIGFyZzJpID09IDApIHsKKwkJcmV0ID0gKGFyZzEtPmZsb2F0dmFsID49IGFyZzItPmZsb2F0dmFsKTsKKwkgICAgfSBlbHNlIHsKKwkJcmV0ID0gMDsKKwkgICAgfQorCX0KKyAgICB9CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZzEpOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aFZhbHVlRmxpcFNpZ246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqIEltcGxlbWVudCB0aGUgdW5hcnkgLSBvcGVyYXRpb24gb24gYW4gWFBhdGggb2JqZWN0CisgKiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmCisgKiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uCisgKi8KK3ZvaWQKK3htbFhQYXRoVmFsdWVGbGlwU2lnbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkgcmV0dXJuOworICAgIENBU1RfVE9fTlVNQkVSOworICAgIENIRUNLX1RZUEUoWFBBVEhfTlVNQkVSKTsKKyAgICBpZiAoeG1sWFBhdGhJc05hTihjdHh0LT52YWx1ZS0+ZmxvYXR2YWwpKQorICAgICAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWw9eG1sWFBhdGhOQU47CisgICAgZWxzZSBpZiAoeG1sWFBhdGhJc0luZihjdHh0LT52YWx1ZS0+ZmxvYXR2YWwpID09IDEpCisgICAgICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbD14bWxYUGF0aE5JTkY7CisgICAgZWxzZSBpZiAoeG1sWFBhdGhJc0luZihjdHh0LT52YWx1ZS0+ZmxvYXR2YWwpID09IC0xKQorICAgICAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWw9eG1sWFBhdGhQSU5GOworICAgIGVsc2UgaWYgKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9PSAwKSB7CisgICAgICAgIGlmICh4bWxYUGF0aEdldFNpZ24oY3R4dC0+dmFsdWUtPmZsb2F0dmFsKSA9PSAwKQorCSAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSB4bWxYUGF0aE5aRVJPOworCWVsc2UKKwkgICAgY3R4dC0+dmFsdWUtPmZsb2F0dmFsID0gMDsKKyAgICB9CisgICAgZWxzZQorICAgICAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSAtIGN0eHQtPnZhbHVlLT5mbG9hdHZhbDsKK30KKworLyoqCisgKiB4bWxYUGF0aEFkZFZhbHVlczoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogSW1wbGVtZW50IHRoZSBhZGQgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHM6CisgKiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmCisgKiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uCisgKi8KK3ZvaWQKK3htbFhQYXRoQWRkVmFsdWVzKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgYXJnOworICAgIGRvdWJsZSB2YWw7CisKKyAgICBhcmcgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBpZiAoYXJnID09IE5VTEwpCisJWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9PUEVSQU5EKTsKKyAgICB2YWwgPSB4bWxYUGF0aENhc3RUb051bWJlcihhcmcpOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcpOworICAgIENBU1RfVE9fTlVNQkVSOworICAgIENIRUNLX1RZUEUoWFBBVEhfTlVNQkVSKTsKKyAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgKz0gdmFsOworfQorCisvKioKKyAqIHhtbFhQYXRoU3ViVmFsdWVzOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiBJbXBsZW1lbnQgdGhlIHN1YnRyYWN0aW9uIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzOgorICogVGhlIG51bWVyaWMgb3BlcmF0b3JzIGNvbnZlcnQgdGhlaXIgb3BlcmFuZHMgdG8gbnVtYmVycyBhcyBpZgorICogYnkgY2FsbGluZyB0aGUgbnVtYmVyIGZ1bmN0aW9uLgorICovCit2b2lkCit4bWxYUGF0aFN1YlZhbHVlcyh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGFyZzsKKyAgICBkb3VibGUgdmFsOworCisgICAgYXJnID0gdmFsdWVQb3AoY3R4dCk7CisgICAgaWYgKGFyZyA9PSBOVUxMKQorCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfT1BFUkFORCk7CisgICAgdmFsID0geG1sWFBhdGhDYXN0VG9OdW1iZXIoYXJnKTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgYXJnKTsKKyAgICBDQVNUX1RPX05VTUJFUjsKKyAgICBDSEVDS19UWVBFKFhQQVRIX05VTUJFUik7CisgICAgY3R4dC0+dmFsdWUtPmZsb2F0dmFsIC09IHZhbDsKK30KKworLyoqCisgKiB4bWxYUGF0aE11bHRWYWx1ZXM6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqIEltcGxlbWVudCB0aGUgbXVsdGlwbHkgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHM6CisgKiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmCisgKiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uCisgKi8KK3ZvaWQKK3htbFhQYXRoTXVsdFZhbHVlcyh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGFyZzsKKyAgICBkb3VibGUgdmFsOworCisgICAgYXJnID0gdmFsdWVQb3AoY3R4dCk7CisgICAgaWYgKGFyZyA9PSBOVUxMKQorCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfT1BFUkFORCk7CisgICAgdmFsID0geG1sWFBhdGhDYXN0VG9OdW1iZXIoYXJnKTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgYXJnKTsKKyAgICBDQVNUX1RPX05VTUJFUjsKKyAgICBDSEVDS19UWVBFKFhQQVRIX05VTUJFUik7CisgICAgY3R4dC0+dmFsdWUtPmZsb2F0dmFsICo9IHZhbDsKK30KKworLyoqCisgKiB4bWxYUGF0aERpdlZhbHVlczoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogSW1wbGVtZW50IHRoZSBkaXYgb3BlcmF0aW9uIG9uIFhQYXRoIG9iamVjdHMgQGFyZzEgLyBAYXJnMjoKKyAqIFRoZSBudW1lcmljIG9wZXJhdG9ycyBjb252ZXJ0IHRoZWlyIG9wZXJhbmRzIHRvIG51bWJlcnMgYXMgaWYKKyAqIGJ5IGNhbGxpbmcgdGhlIG51bWJlciBmdW5jdGlvbi4KKyAqLwordm9pZAoreG1sWFBhdGhEaXZWYWx1ZXMoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBhcmc7CisgICAgZG91YmxlIHZhbDsKKworICAgIGFyZyA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmIChhcmcgPT0gTlVMTCkKKwlYUF9FUlJPUihYUEFUSF9JTlZBTElEX09QRVJBTkQpOworICAgIHZhbCA9IHhtbFhQYXRoQ2FzdFRvTnVtYmVyKGFyZyk7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZyk7CisgICAgQ0FTVF9UT19OVU1CRVI7CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9OVU1CRVIpOworICAgIGlmICh4bWxYUGF0aElzTmFOKHZhbCkgfHwgeG1sWFBhdGhJc05hTihjdHh0LT52YWx1ZS0+ZmxvYXR2YWwpKQorCWN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IHhtbFhQYXRoTkFOOworICAgIGVsc2UgaWYgKHZhbCA9PSAwICYmIHhtbFhQYXRoR2V0U2lnbih2YWwpICE9IDApIHsKKwlpZiAoY3R4dC0+dmFsdWUtPmZsb2F0dmFsID09IDApCisJICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IHhtbFhQYXRoTkFOOworCWVsc2UgaWYgKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA+IDApCisJICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IHhtbFhQYXRoTklORjsKKwllbHNlIGlmIChjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPCAwKQorCSAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSB4bWxYUGF0aFBJTkY7CisgICAgfQorICAgIGVsc2UgaWYgKHZhbCA9PSAwKSB7CisJaWYgKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9PSAwKQorCSAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSB4bWxYUGF0aE5BTjsKKwllbHNlIGlmIChjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPiAwKQorCSAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSB4bWxYUGF0aFBJTkY7CisJZWxzZSBpZiAoY3R4dC0+dmFsdWUtPmZsb2F0dmFsIDwgMCkKKwkgICAgY3R4dC0+dmFsdWUtPmZsb2F0dmFsID0geG1sWFBhdGhOSU5GOworICAgIH0gZWxzZQorCWN0eHQtPnZhbHVlLT5mbG9hdHZhbCAvPSB2YWw7Cit9CisKKy8qKgorICogeG1sWFBhdGhNb2RWYWx1ZXM6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqIEltcGxlbWVudCB0aGUgbW9kIG9wZXJhdGlvbiBvbiBYUGF0aCBvYmplY3RzOiBAYXJnMSAvIEBhcmcyCisgKiBUaGUgbnVtZXJpYyBvcGVyYXRvcnMgY29udmVydCB0aGVpciBvcGVyYW5kcyB0byBudW1iZXJzIGFzIGlmCisgKiBieSBjYWxsaW5nIHRoZSBudW1iZXIgZnVuY3Rpb24uCisgKi8KK3ZvaWQKK3htbFhQYXRoTW9kVmFsdWVzKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgYXJnOworICAgIGRvdWJsZSBhcmcxLCBhcmcyOworCisgICAgYXJnID0gdmFsdWVQb3AoY3R4dCk7CisgICAgaWYgKGFyZyA9PSBOVUxMKQorCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfT1BFUkFORCk7CisgICAgYXJnMiA9IHhtbFhQYXRoQ2FzdFRvTnVtYmVyKGFyZyk7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZyk7CisgICAgQ0FTVF9UT19OVU1CRVI7CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9OVU1CRVIpOworICAgIGFyZzEgPSBjdHh0LT52YWx1ZS0+ZmxvYXR2YWw7CisgICAgaWYgKGFyZzIgPT0gMCkKKwljdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSB4bWxYUGF0aE5BTjsKKyAgICBlbHNlIHsKKwljdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSBmbW9kKGFyZzEsIGFyZzIpOworICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJVGhlIHRyYXZlcnNhbCBmdW5jdGlvbnMJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIEEgdHJhdmVyc2FsIGZ1bmN0aW9uIGVudW1lcmF0ZXMgbm9kZXMgYWxvbmcgYW4gYXhpcy4KKyAqIEluaXRpYWxseSBpdCBtdXN0IGJlIGNhbGxlZCB3aXRoIE5VTEwsIGFuZCBpdCBpbmRpY2F0ZXMKKyAqIHRlcm1pbmF0aW9uIG9uIHRoZSBheGlzIGJ5IHJldHVybmluZyBOVUxMLgorICovCit0eXBlZGVmIHhtbE5vZGVQdHIgKCp4bWxYUGF0aFRyYXZlcnNhbEZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKTsKKworLyoKKyAqIHhtbFhQYXRoVHJhdmVyc2FsRnVuY3Rpb25FeHQ6CisgKiBBIHRyYXZlcnNhbCBmdW5jdGlvbiBlbnVtZXJhdGVzIG5vZGVzIGFsb25nIGFuIGF4aXMuCisgKiBJbml0aWFsbHkgaXQgbXVzdCBiZSBjYWxsZWQgd2l0aCBOVUxMLCBhbmQgaXQgaW5kaWNhdGVzCisgKiB0ZXJtaW5hdGlvbiBvbiB0aGUgYXhpcyBieSByZXR1cm5pbmcgTlVMTC4KKyAqIFRoZSBjb250ZXh0IG5vZGUgb2YgdGhlIHRyYXZlcnNhbCBpcyBzcGVjaWZpZWQgdmlhIEBjb250ZXh0Tm9kZS4KKyAqLwordHlwZWRlZiB4bWxOb2RlUHRyICgqeG1sWFBhdGhUcmF2ZXJzYWxGdW5jdGlvbkV4dCkKKyAgICAgICAgICAgICAgICAgICAgKHhtbE5vZGVQdHIgY3VyLCB4bWxOb2RlUHRyIGNvbnRleHROb2RlKTsKKworLyoKKyAqIHhtbFhQYXRoTm9kZVNldE1lcmdlRnVuY3Rpb246CisgKiBVc2VkIGZvciBtZXJnaW5nIG5vZGUgc2V0cyBpbiB4bWxYUGF0aENvbGxlY3RBbmRUZXN0KCkuCisgKi8KK3R5cGVkZWYgeG1sTm9kZVNldFB0ciAoKnhtbFhQYXRoTm9kZVNldE1lcmdlRnVuY3Rpb24pCisJCSAgICAoeG1sTm9kZVNldFB0ciwgeG1sTm9kZVNldFB0ciwgaW50KTsKKworCisvKioKKyAqIHhtbFhQYXRoTmV4dFNlbGY6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbAorICoKKyAqIFRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJzZWxmIiBkaXJlY3Rpb24KKyAqIFRoZSBzZWxmIGF4aXMgY29udGFpbnMganVzdCB0aGUgY29udGV4dCBub2RlIGl0c2VsZgorICoKKyAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzCisgKi8KK3htbE5vZGVQdHIKK3htbFhQYXRoTmV4dFNlbGYoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oY3R4dC0+Y29udGV4dC0+bm9kZSk7CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV4dENoaWxkOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwKKyAqCisgKiBUcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiY2hpbGQiIGRpcmVjdGlvbgorICogVGhlIGNoaWxkIGF4aXMgY29udGFpbnMgdGhlIGNoaWxkcmVuIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIuCisgKgorICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMKKyAqLworeG1sTm9kZVB0cgoreG1sWFBhdGhOZXh0Q2hpbGQoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJaWYgKGN0eHQtPmNvbnRleHQtPm5vZGUgPT0gTlVMTCkgcmV0dXJuKE5VTEwpOworCXN3aXRjaCAoY3R4dC0+Y29udGV4dC0+bm9kZS0+dHlwZSkgeworICAgICAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfTk9UQVRJT05fTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorCQlyZXR1cm4oY3R4dC0+Y29udGV4dC0+bm9kZS0+Y2hpbGRyZW4pOworICAgICAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJICAgIGNhc2UgWE1MX0RPQ0JfRE9DVU1FTlRfTk9ERToKKyNlbmRpZgorCQlyZXR1cm4oKCh4bWxEb2NQdHIpIGN0eHQtPmNvbnRleHQtPm5vZGUpLT5jaGlsZHJlbik7CisJICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKwkgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisJICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorCSAgICBjYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwkgICAgY2FzZSBYTUxfWElOQ0xVREVfRU5EOgorCQlyZXR1cm4oTlVMTCk7CisJfQorCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKChjdXItPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHx8CisgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpCisJcmV0dXJuKE5VTEwpOworICAgIHJldHVybihjdXItPm5leHQpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV4dENoaWxkRWxlbWVudDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsCisgKgorICogVHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgImNoaWxkIiBkaXJlY3Rpb24gYW5kIG5vZGVzIG9mIHR5cGUgZWxlbWVudC4KKyAqIFRoZSBjaGlsZCBheGlzIGNvbnRhaW5zIHRoZSBjaGlsZHJlbiBvZiB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLgorICoKKyAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzCisgKi8KK3N0YXRpYyB4bWxOb2RlUHRyCit4bWxYUGF0aE5leHRDaGlsZEVsZW1lbnQoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJY3VyID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKwlpZiAoY3VyID09IE5VTEwpIHJldHVybihOVUxMKTsKKwkvKgorCSogR2V0IHRoZSBmaXJzdCBlbGVtZW50IGNoaWxkLgorCSovCisJc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwkgICAgY2FzZSBYTUxfRE9DVU1FTlRfRlJBR19OT0RFOgorCSAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6IC8qIFVSR0VOVCBUT0RPOiBlbnRpZnktcmVmcyBhcyB3ZWxsPyAqLworICAgICAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisJCWN1ciA9IGN1ci0+Y2hpbGRyZW47CisJCWlmIChjdXIgIT0gTlVMTCkgeworCQkgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKQorCQkJcmV0dXJuKGN1cik7CisJCSAgICBkbyB7CisJCQljdXIgPSBjdXItPm5leHQ7CisJCSAgICB9IHdoaWxlICgoY3VyICE9IE5VTEwpICYmCisJCQkoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKTsKKwkJICAgIHJldHVybihjdXIpOworCQl9CisJCXJldHVybihOVUxMKTsKKyAgICAgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCSAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwkJcmV0dXJuKHhtbERvY0dldFJvb3RFbGVtZW50KCh4bWxEb2NQdHIpIGN1cikpOworCSAgICBkZWZhdWx0OgorCQlyZXR1cm4oTlVMTCk7CisJfQorCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgLyoKKyAgICAqIEdldCB0aGUgbmV4dCBzaWJsaW5nIGVsZW1lbnQgbm9kZS4KKyAgICAqLworICAgIHN3aXRjaCAoY3VyLT50eXBlKSB7CisJY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCWNhc2UgWE1MX1RFWFRfTk9ERToKKwljYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJY2FzZSBYTUxfRU5USVRZX05PREU6CisJY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCWNhc2UgWE1MX1BJX05PREU6CisJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCWNhc2UgWE1MX1hJTkNMVURFX0VORDoKKwkgICAgYnJlYWs7CisJLyogY2FzZSBYTUxfRFREX05PREU6ICovIC8qIFVSR0VOVCBUT0RPOiBEVEQtbm9kZSBhcyB3ZWxsPyAqLworCWRlZmF1bHQ6CisJICAgIHJldHVybihOVUxMKTsKKyAgICB9CisgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisJaWYgKGN1ci0+bmV4dC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKQorCSAgICByZXR1cm4oY3VyLT5uZXh0KTsKKwljdXIgPSBjdXItPm5leHQ7CisJZG8geworCSAgICBjdXIgPSBjdXItPm5leHQ7CisJfSB3aGlsZSAoKGN1ciAhPSBOVUxMKSAmJiAoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpKTsKKwlyZXR1cm4oY3VyKTsKKyAgICB9CisgICAgcmV0dXJuKE5VTEwpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGZFbGVtUGFyZW50OgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwKKyAqCisgKiBUcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiZGVzY2VuZGFudC1vci1zZWxmIiBheGlzLgorICogQWRkaXRpb25hbGx5IGl0IHJldHVybnMgb25seSBub2RlcyB3aGljaCBjYW4gYmUgcGFyZW50cyBvZgorICogZWxlbWVudCBub2Rlcy4KKyAqCisgKgorICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMKKyAqLworc3RhdGljIHhtbE5vZGVQdHIKK3htbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGZFbGVtUGFyZW50KHhtbE5vZGVQdHIgY3VyLAorCQkJCSAgICAgICB4bWxOb2RlUHRyIGNvbnRleHROb2RlKQoreworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCWlmIChjb250ZXh0Tm9kZSA9PSBOVUxMKQorCSAgICByZXR1cm4oTlVMTCk7CisJc3dpdGNoIChjb250ZXh0Tm9kZS0+dHlwZSkgeworCSAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCSAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwkgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgkgICAgCisJCXJldHVybihjb250ZXh0Tm9kZSk7CisJICAgIGRlZmF1bHQ6CisJCXJldHVybihOVUxMKTsKKwl9CisJcmV0dXJuKE5VTEwpOworICAgIH0gZWxzZSB7CisJeG1sTm9kZVB0ciBzdGFydCA9IGN1cjsKKworCXdoaWxlIChjdXIgIT0gTlVMTCkgeworCSAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworCQljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJCS8qIFRPRE86IE9LIHRvIGhhdmUgWEluY2x1ZGUgaGVyZT8gKi8KKwkJY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJCWNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkJICAgIGlmIChjdXIgIT0gc3RhcnQpCisJCQlyZXR1cm4oY3VyKTsKKwkJICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkJCWN1ciA9IGN1ci0+Y2hpbGRyZW47CisJCQljb250aW51ZTsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCQkvKiBOb3Qgc3VyZSBpZiB3ZSBuZWVkIHRob3NlIGhlcmUuICovCisJCWNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCQljYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwkJY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorCQkgICAgaWYgKGN1ciAhPSBzdGFydCkKKwkJCXJldHVybihjdXIpOworCQkgICAgcmV0dXJuKHhtbERvY0dldFJvb3RFbGVtZW50KCh4bWxEb2NQdHIpIGN1cikpOworCQlkZWZhdWx0OgorCQkgICAgYnJlYWs7CisJICAgIH0KKworbmV4dF9zaWJsaW5nOgorCSAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoY3VyID09IGNvbnRleHROb2RlKSkKKwkJcmV0dXJuKE5VTEwpOworCSAgICBpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKwkJY3VyID0gY3VyLT5uZXh0OworCSAgICB9IGVsc2UgeworCQljdXIgPSBjdXItPnBhcmVudDsKKwkJZ290byBuZXh0X3NpYmxpbmc7CisJICAgIH0KKwl9CisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5leHREZXNjZW5kYW50OgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwKKyAqCisgKiBUcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiZGVzY2VuZGFudCIgZGlyZWN0aW9uCisgKiB0aGUgZGVzY2VuZGFudCBheGlzIGNvbnRhaW5zIHRoZSBkZXNjZW5kYW50cyBvZiB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50CisgKiBvcmRlcjsgYSBkZXNjZW5kYW50IGlzIGEgY2hpbGQgb3IgYSBjaGlsZCBvZiBhIGNoaWxkIGFuZCBzbyBvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcworICovCit4bWxOb2RlUHRyCit4bWxYUGF0aE5leHREZXNjZW5kYW50KHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cikgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCWlmIChjdHh0LT5jb250ZXh0LT5ub2RlID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKwlpZiAoKGN0eHQtPmNvbnRleHQtPm5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB8fAorCSAgICAoY3R4dC0+Y29udGV4dC0+bm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCSAgICByZXR1cm4oTlVMTCk7CisKKyAgICAgICAgaWYgKGN0eHQtPmNvbnRleHQtPm5vZGUgPT0gKHhtbE5vZGVQdHIpIGN0eHQtPmNvbnRleHQtPmRvYykKKwkgICAgcmV0dXJuKGN0eHQtPmNvbnRleHQtPmRvYy0+Y2hpbGRyZW4pOworICAgICAgICByZXR1cm4oY3R4dC0+Y29udGV4dC0+bm9kZS0+Y2hpbGRyZW4pOworICAgIH0KKworICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKwkvKgorCSAqIERvIG5vdCBkZXNjZW5kIG9uIGVudGl0aWVzIGRlY2xhcmF0aW9ucworCSAqLworCWlmIChjdXItPmNoaWxkcmVuLT50eXBlICE9IFhNTF9FTlRJVFlfREVDTCkgeworCSAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCSAgICAvKgorCSAgICAgKiBTa2lwIERURHMKKwkgICAgICovCisJICAgIGlmIChjdXItPnR5cGUgIT0gWE1MX0RURF9OT0RFKQorCQlyZXR1cm4oY3VyKTsKKwl9CisgICAgfQorCisgICAgaWYgKGN1ciA9PSBjdHh0LT5jb250ZXh0LT5ub2RlKSByZXR1cm4oTlVMTCk7CisKKyAgICB3aGlsZSAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKwljdXIgPSBjdXItPm5leHQ7CisJaWYgKChjdXItPnR5cGUgIT0gWE1MX0VOVElUWV9ERUNMKSAmJgorCSAgICAoY3VyLT50eXBlICE9IFhNTF9EVERfTk9ERSkpCisJICAgIHJldHVybihjdXIpOworICAgIH0KKworICAgIGRvIHsKKyAgICAgICAgY3VyID0gY3VyLT5wYXJlbnQ7CisJaWYgKGN1ciA9PSBOVUxMKSBicmVhazsKKwlpZiAoY3VyID09IGN0eHQtPmNvbnRleHQtPm5vZGUpIHJldHVybihOVUxMKTsKKwlpZiAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCSAgICByZXR1cm4oY3VyKTsKKwl9CisgICAgfSB3aGlsZSAoY3VyICE9IE5VTEwpOworICAgIHJldHVybihjdXIpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGY6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbAorICoKKyAqIFRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJkZXNjZW5kYW50LW9yLXNlbGYiIGRpcmVjdGlvbgorICogdGhlIGRlc2NlbmRhbnQtb3Itc2VsZiBheGlzIGNvbnRhaW5zIHRoZSBjb250ZXh0IG5vZGUgYW5kIHRoZSBkZXNjZW5kYW50cworICogb2YgdGhlIGNvbnRleHQgbm9kZSBpbiBkb2N1bWVudCBvcmRlcjsgdGh1cyB0aGUgY29udGV4dCBub2RlIGlzIHRoZSBmaXJzdAorICogbm9kZSBvbiB0aGUgYXhpcywgYW5kIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgY29udGV4dCBub2RlIGlzIHRoZSBzZWNvbmQgbm9kZQorICogb24gdGhlIGF4aXMKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcworICovCit4bWxOb2RlUHRyCit4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cikgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCWlmIChjdHh0LT5jb250ZXh0LT5ub2RlID09IE5VTEwpCisJICAgIHJldHVybihOVUxMKTsKKwlpZiAoKGN0eHQtPmNvbnRleHQtPm5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB8fAorCSAgICAoY3R4dC0+Y29udGV4dC0+bm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCSAgICByZXR1cm4oTlVMTCk7CisgICAgICAgIHJldHVybihjdHh0LT5jb250ZXh0LT5ub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4oeG1sWFBhdGhOZXh0RGVzY2VuZGFudChjdHh0LCBjdXIpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5leHRQYXJlbnQ6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbAorICoKKyAqIFRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJwYXJlbnQiIGRpcmVjdGlvbgorICogVGhlIHBhcmVudCBheGlzIGNvbnRhaW5zIHRoZSBwYXJlbnQgb2YgdGhlIGNvbnRleHQgbm9kZSwgaWYgdGhlcmUgaXMgb25lLgorICoKKyAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzCisgKi8KK3htbE5vZGVQdHIKK3htbFhQYXRoTmV4dFBhcmVudCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRleHQgPT0gTlVMTCkpIHJldHVybihOVUxMKTsKKyAgICAvKgorICAgICAqIHRoZSBwYXJlbnQgb2YgYW4gYXR0cmlidXRlIG9yIG5hbWVzcGFjZSBub2RlIGlzIHRoZSBlbGVtZW50CisgICAgICogdG8gd2hpY2ggdGhlIGF0dHJpYnV0ZSBvciBuYW1lc3BhY2Ugbm9kZSBpcyBhdHRhY2hlZAorICAgICAqIE5hbWVzcGFjZSBoYW5kbGluZyAhISEKKyAgICAgKi8KKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKwlpZiAoY3R4dC0+Y29udGV4dC0+bm9kZSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisJc3dpdGNoIChjdHh0LT5jb250ZXh0LT5ub2RlLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9URVhUX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9FTlRJVFlfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX1BJX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRFREX05PREU6CisJICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKwkgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisJICAgIGNhc2UgWE1MX1hJTkNMVURFX1NUQVJUOgorCSAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorCQlpZiAoY3R4dC0+Y29udGV4dC0+bm9kZS0+cGFyZW50ID09IE5VTEwpCisJCSAgICByZXR1cm4oKHhtbE5vZGVQdHIpIGN0eHQtPmNvbnRleHQtPmRvYyk7CisJCWlmICgoY3R4dC0+Y29udGV4dC0+bm9kZS0+cGFyZW50LT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpICYmCisJCSAgICAoKGN0eHQtPmNvbnRleHQtPm5vZGUtPnBhcmVudC0+bmFtZVswXSA9PSAnICcpIHx8CisJCSAgICAgKHhtbFN0ckVxdWFsKGN0eHQtPmNvbnRleHQtPm5vZGUtPnBhcmVudC0+bmFtZSwKKwkJCQkgQkFEX0NBU1QgImZha2Ugbm9kZSBsaWJ4c2x0IikpKSkKKwkJICAgIHJldHVybihOVUxMKTsKKwkJcmV0dXJuKGN0eHQtPmNvbnRleHQtPm5vZGUtPnBhcmVudCk7CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERTogeworCQl4bWxBdHRyUHRyIGF0dCA9ICh4bWxBdHRyUHRyKSBjdHh0LT5jb250ZXh0LT5ub2RlOworCisJCXJldHVybihhdHQtPnBhcmVudCk7CisJICAgIH0KKyAgICAgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCSAgICBjYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKyAgICAgICAgICAgICAgICByZXR1cm4oTlVMTCk7CisJICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOiB7CisJCXhtbE5zUHRyIG5zID0gKHhtbE5zUHRyKSBjdHh0LT5jb250ZXh0LT5ub2RlOworCisJCWlmICgobnMtPm5leHQgIT0gTlVMTCkgJiYKKwkJICAgIChucy0+bmV4dC0+dHlwZSAhPSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCQkgICAgcmV0dXJuKCh4bWxOb2RlUHRyKSBucy0+bmV4dCk7CisgICAgICAgICAgICAgICAgcmV0dXJuKE5VTEwpOworCSAgICB9CisJfQorICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhOZXh0QW5jZXN0b3I6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbAorICoKKyAqIFRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJhbmNlc3RvciIgZGlyZWN0aW9uCisgKiB0aGUgYW5jZXN0b3IgYXhpcyBjb250YWlucyB0aGUgYW5jZXN0b3JzIG9mIHRoZSBjb250ZXh0IG5vZGU7IHRoZSBhbmNlc3RvcnMKKyAqIG9mIHRoZSBjb250ZXh0IG5vZGUgY29uc2lzdCBvZiB0aGUgcGFyZW50IG9mIGNvbnRleHQgbm9kZSBhbmQgdGhlIHBhcmVudCdzCisgKiBwYXJlbnQgYW5kIHNvIG9uOyB0aGUgbm9kZXMgYXJlIG9yZGVyZWQgaW4gcmV2ZXJzZSBkb2N1bWVudCBvcmRlcjsgdGh1cyB0aGUKKyAqIHBhcmVudCBpcyB0aGUgZmlyc3Qgbm9kZSBvbiB0aGUgYXhpcywgYW5kIHRoZSBwYXJlbnQncyBwYXJlbnQgaXMgdGhlIHNlY29uZAorICogbm9kZSBvbiB0aGUgYXhpcworICoKKyAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzCisgKi8KK3htbE5vZGVQdHIKK3htbFhQYXRoTmV4dEFuY2VzdG9yKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cikgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworICAgIC8qCisgICAgICogdGhlIHBhcmVudCBvZiBhbiBhdHRyaWJ1dGUgb3IgbmFtZXNwYWNlIG5vZGUgaXMgdGhlIGVsZW1lbnQKKyAgICAgKiB0byB3aGljaCB0aGUgYXR0cmlidXRlIG9yIG5hbWVzcGFjZSBub2RlIGlzIGF0dGFjaGVkCisgICAgICogISEhISEhISEhISEhIQorICAgICAqLworICAgIGlmIChjdXIgPT0gTlVMTCkgeworCWlmIChjdHh0LT5jb250ZXh0LT5ub2RlID09IE5VTEwpIHJldHVybihOVUxMKTsKKwlzd2l0Y2ggKGN0eHQtPmNvbnRleHQtPm5vZGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfUElfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkgICAgY2FzZSBYTUxfRFREX05PREU6CisJICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKwkgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisJICAgIGNhc2UgWE1MX0VOVElUWV9ERUNMOgorICAgICAgICAgICAgY2FzZSBYTUxfTk9UQVRJT05fTk9ERToKKwkgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKwkJaWYgKGN0eHQtPmNvbnRleHQtPm5vZGUtPnBhcmVudCA9PSBOVUxMKQorCQkgICAgcmV0dXJuKCh4bWxOb2RlUHRyKSBjdHh0LT5jb250ZXh0LT5kb2MpOworCQlpZiAoKGN0eHQtPmNvbnRleHQtPm5vZGUtPnBhcmVudC0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCQkgICAgKChjdHh0LT5jb250ZXh0LT5ub2RlLT5wYXJlbnQtPm5hbWVbMF0gPT0gJyAnKSB8fAorCQkgICAgICh4bWxTdHJFcXVhbChjdHh0LT5jb250ZXh0LT5ub2RlLT5wYXJlbnQtPm5hbWUsCisJCQkJIEJBRF9DQVNUICJmYWtlIG5vZGUgbGlieHNsdCIpKSkpCisJCSAgICByZXR1cm4oTlVMTCk7CisJCXJldHVybihjdHh0LT5jb250ZXh0LT5ub2RlLT5wYXJlbnQpOworICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6IHsKKwkJeG1sQXR0clB0ciB0bXAgPSAoeG1sQXR0clB0cikgY3R4dC0+Y29udGV4dC0+bm9kZTsKKworCQlyZXR1cm4odG1wLT5wYXJlbnQpOworCSAgICB9CisgICAgICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfRlJBR19OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKwkgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisgICAgICAgICAgICAgICAgcmV0dXJuKE5VTEwpOworCSAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDogeworCQl4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgY3R4dC0+Y29udGV4dC0+bm9kZTsKKworCQlpZiAoKG5zLT5uZXh0ICE9IE5VTEwpICYmCisJCSAgICAobnMtPm5leHQtPnR5cGUgIT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwkJICAgIHJldHVybigoeG1sTm9kZVB0cikgbnMtPm5leHQpOworCQkvKiBCYWQsIGhvdyBkaWQgdGhhdCBuYW1lc3BhY2UgZW5kIHVwIGhlcmUgPyAqLworICAgICAgICAgICAgICAgIHJldHVybihOVUxMKTsKKwkgICAgfQorCX0KKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIGlmIChjdXIgPT0gY3R4dC0+Y29udGV4dC0+ZG9jLT5jaGlsZHJlbikKKwlyZXR1cm4oKHhtbE5vZGVQdHIpIGN0eHQtPmNvbnRleHQtPmRvYyk7CisgICAgaWYgKGN1ciA9PSAoeG1sTm9kZVB0cikgY3R4dC0+Y29udGV4dC0+ZG9jKQorCXJldHVybihOVUxMKTsKKyAgICBzd2l0Y2ggKGN1ci0+dHlwZSkgeworCWNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwljYXNlIFhNTF9URVhUX05PREU6CisJY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorCWNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwljYXNlIFhNTF9FTlRJVFlfTk9ERToKKwljYXNlIFhNTF9QSV9OT0RFOgorCWNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwljYXNlIFhNTF9OT1RBVElPTl9OT0RFOgorCWNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX0RFQ0w6CisgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKwljYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwljYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJICAgIGlmIChjdXItPnBhcmVudCA9PSBOVUxMKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIGlmICgoY3VyLT5wYXJlbnQtPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgJiYKKwkJKChjdXItPnBhcmVudC0+bmFtZVswXSA9PSAnICcpIHx8CisJCSAoeG1sU3RyRXF1YWwoY3VyLT5wYXJlbnQtPm5hbWUsCisJCQkgICAgICBCQURfQ0FTVCAiZmFrZSBub2RlIGxpYnhzbHQiKSkpKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIHJldHVybihjdXItPnBhcmVudCk7CisJY2FzZSBYTUxfQVRUUklCVVRFX05PREU6IHsKKwkgICAgeG1sQXR0clB0ciBhdHQgPSAoeG1sQXR0clB0cikgY3R4dC0+Y29udGV4dC0+bm9kZTsKKworCSAgICByZXR1cm4oYXR0LT5wYXJlbnQpOworCX0KKwljYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDogeworCSAgICB4bWxOc1B0ciBucyA9ICh4bWxOc1B0cikgY3R4dC0+Y29udGV4dC0+bm9kZTsKKworCSAgICBpZiAoKG5zLT5uZXh0ICE9IE5VTEwpICYmCisJICAgICAgICAobnMtPm5leHQtPnR5cGUgIT0gWE1MX05BTUVTUEFDRV9ERUNMKSkKKwkgICAgICAgIHJldHVybigoeG1sTm9kZVB0cikgbnMtPm5leHQpOworCSAgICAvKiBCYWQsIGhvdyBkaWQgdGhhdCBuYW1lc3BhY2UgZW5kIHVwIGhlcmUgPyAqLworICAgICAgICAgICAgcmV0dXJuKE5VTEwpOworCX0KKwljYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorCWNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKwljYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisJY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorI2lmZGVmIExJQlhNTF9ET0NCX0VOQUJMRUQKKwljYXNlIFhNTF9ET0NCX0RPQ1VNRU5UX05PREU6CisjZW5kaWYKKwkgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGY6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbAorICoKKyAqIFRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJhbmNlc3Rvci1vci1zZWxmIiBkaXJlY3Rpb24KKyAqIGhlIGFuY2VzdG9yLW9yLXNlbGYgYXhpcyBjb250YWlucyB0aGUgY29udGV4dCBub2RlIGFuZCBhbmNlc3RvcnMgb2YKKyAqIHRoZSBjb250ZXh0IG5vZGUgaW4gcmV2ZXJzZSBkb2N1bWVudCBvcmRlcjsgdGh1cyB0aGUgY29udGV4dCBub2RlIGlzCisgKiB0aGUgZmlyc3Qgbm9kZSBvbiB0aGUgYXhpcywgYW5kIHRoZSBjb250ZXh0IG5vZGUncyBwYXJlbnQgdGhlIHNlY29uZDsKKyAqIHBhcmVudCBoZXJlIGlzIGRlZmluZWQgdGhlIHNhbWUgYXMgd2l0aCB0aGUgcGFyZW50IGF4aXMuCisgKgorICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMKKyAqLworeG1sTm9kZVB0cgoreG1sWFBhdGhOZXh0QW5jZXN0b3JPclNlbGYoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4oY3R4dC0+Y29udGV4dC0+bm9kZSk7CisgICAgcmV0dXJuKHhtbFhQYXRoTmV4dEFuY2VzdG9yKGN0eHQsIGN1cikpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmc6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGN1cjogIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIHRyYXZlcnNhbAorICoKKyAqIFRyYXZlcnNhbCBmdW5jdGlvbiBmb3IgdGhlICJmb2xsb3dpbmctc2libGluZyIgZGlyZWN0aW9uCisgKiBUaGUgZm9sbG93aW5nLXNpYmxpbmcgYXhpcyBjb250YWlucyB0aGUgZm9sbG93aW5nIHNpYmxpbmdzIG9mIHRoZSBjb250ZXh0CisgKiBub2RlIGluIGRvY3VtZW50IG9yZGVyLgorICoKKyAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzCisgKi8KK3htbE5vZGVQdHIKK3htbFhQYXRoTmV4dEZvbGxvd2luZ1NpYmxpbmcoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKChjdHh0LT5jb250ZXh0LT5ub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgfHwKKwkoY3R4dC0+Y29udGV4dC0+bm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoY3VyID09ICh4bWxOb2RlUHRyKSBjdHh0LT5jb250ZXh0LT5kb2MpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybihjdHh0LT5jb250ZXh0LT5ub2RlLT5uZXh0KTsKKyAgICByZXR1cm4oY3VyLT5uZXh0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5leHRQcmVjZWRpbmdTaWJsaW5nOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwKKyAqCisgKiBUcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAicHJlY2VkaW5nLXNpYmxpbmciIGRpcmVjdGlvbgorICogVGhlIHByZWNlZGluZy1zaWJsaW5nIGF4aXMgY29udGFpbnMgdGhlIHByZWNlZGluZyBzaWJsaW5ncyBvZiB0aGUgY29udGV4dAorICogbm9kZSBpbiByZXZlcnNlIGRvY3VtZW50IG9yZGVyOyB0aGUgZmlyc3QgcHJlY2VkaW5nIHNpYmxpbmcgaXMgZmlyc3Qgb24gdGhlCisgKiBheGlzOyB0aGUgc2libGluZyBwcmVjZWRpbmcgdGhhdCBub2RlIGlzIHRoZSBzZWNvbmQgb24gdGhlIGF4aXMgYW5kIHNvIG9uLgorICoKKyAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBmb2xsb3dpbmcgdGhhdCBheGlzCisgKi8KK3htbE5vZGVQdHIKK3htbFhQYXRoTmV4dFByZWNlZGluZ1NpYmxpbmcoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKChjdHh0LT5jb250ZXh0LT5ub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgfHwKKwkoY3R4dC0+Y29udGV4dC0+bm9kZS0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoY3VyID09ICh4bWxOb2RlUHRyKSBjdHh0LT5jb250ZXh0LT5kb2MpCisgICAgICAgIHJldHVybihOVUxMKTsKKyAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgIHJldHVybihjdHh0LT5jb250ZXh0LT5ub2RlLT5wcmV2KTsKKyAgICBpZiAoKGN1ci0+cHJldiAhPSBOVUxMKSAmJiAoY3VyLT5wcmV2LT50eXBlID09IFhNTF9EVERfTk9ERSkpIHsKKwljdXIgPSBjdXItPnByZXY7CisJaWYgKGN1ciA9PSBOVUxMKQorCSAgICByZXR1cm4oY3R4dC0+Y29udGV4dC0+bm9kZS0+cHJldik7CisgICAgfQorICAgIHJldHVybihjdXItPnByZXYpOworfQorCisvKioKKyAqIHhtbFhQYXRoTmV4dEZvbGxvd2luZzoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsCisgKgorICogVHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgImZvbGxvd2luZyIgZGlyZWN0aW9uCisgKiBUaGUgZm9sbG93aW5nIGF4aXMgY29udGFpbnMgYWxsIG5vZGVzIGluIHRoZSBzYW1lIGRvY3VtZW50IGFzIHRoZSBjb250ZXh0CisgKiBub2RlIHRoYXQgYXJlIGFmdGVyIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsIGV4Y2x1ZGluZyBhbnkKKyAqIGRlc2NlbmRhbnRzIGFuZCBleGNsdWRpbmcgYXR0cmlidXRlIG5vZGVzIGFuZCBuYW1lc3BhY2Ugbm9kZXM7IHRoZSBub2RlcworICogYXJlIG9yZGVyZWQgaW4gZG9jdW1lbnQgb3JkZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcworICovCit4bWxOb2RlUHRyCit4bWxYUGF0aE5leHRGb2xsb3dpbmcoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN1ciAhPSBOVUxMICYmIGN1ci0+Y2hpbGRyZW4gIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIGN1ci0+Y2hpbGRyZW4gOworICAgIGlmIChjdXIgPT0gTlVMTCkgY3VyID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybihOVUxMKSA7IC8qIEVSUk9SICovCisgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSByZXR1cm4oY3VyLT5uZXh0KSA7CisgICAgZG8geworICAgICAgICBjdXIgPSBjdXItPnBhcmVudDsKKyAgICAgICAgaWYgKGN1ciA9PSBOVUxMKSBicmVhazsKKyAgICAgICAgaWYgKGN1ciA9PSAoeG1sTm9kZVB0cikgY3R4dC0+Y29udGV4dC0+ZG9jKSByZXR1cm4oTlVMTCk7CisgICAgICAgIGlmIChjdXItPm5leHQgIT0gTlVMTCkgcmV0dXJuKGN1ci0+bmV4dCk7CisgICAgfSB3aGlsZSAoY3VyICE9IE5VTEwpOworICAgIHJldHVybihjdXIpOworfQorCisvKgorICogeG1sWFBhdGhJc0FuY2VzdG9yOgorICogQGFuY2VzdG9yOiAgdGhlIGFuY2VzdG9yIG5vZGUKKyAqIEBub2RlOiAgdGhlIGN1cnJlbnQgbm9kZQorICoKKyAqIENoZWNrIHRoYXQgQGFuY2VzdG9yIGlzIGEgQG5vZGUncyBhbmNlc3RvcgorICoKKyAqIHJldHVybnMgMSBpZiBAYW5jZXN0b3IgaXMgYSBAbm9kZSdzIGFuY2VzdG9yLCAwIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGludAoreG1sWFBhdGhJc0FuY2VzdG9yKHhtbE5vZGVQdHIgYW5jZXN0b3IsIHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGlmICgoYW5jZXN0b3IgPT0gTlVMTCkgfHwgKG5vZGUgPT0gTlVMTCkpIHJldHVybigwKTsKKyAgICAvKiBub2RlcyBuZWVkIHRvIGJlIGluIHRoZSBzYW1lIGRvY3VtZW50ICovCisgICAgaWYgKGFuY2VzdG9yLT5kb2MgIT0gbm9kZS0+ZG9jKSByZXR1cm4oMCk7CisgICAgLyogYXZvaWQgc2VhcmNoaW5nIGlmIGFuY2VzdG9yIG9yIG5vZGUgaXMgdGhlIHJvb3Qgbm9kZSAqLworICAgIGlmIChhbmNlc3RvciA9PSAoeG1sTm9kZVB0cikgbm9kZS0+ZG9jKSByZXR1cm4oMSk7CisgICAgaWYgKG5vZGUgPT0gKHhtbE5vZGVQdHIpIGFuY2VzdG9yLT5kb2MpIHJldHVybigwKTsKKyAgICB3aGlsZSAobm9kZS0+cGFyZW50ICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKG5vZGUtPnBhcmVudCA9PSBhbmNlc3RvcikKKyAgICAgICAgICAgIHJldHVybigxKTsKKwlub2RlID0gbm9kZS0+cGFyZW50OworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhOZXh0UHJlY2VkaW5nOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBjdXI6ICB0aGUgY3VycmVudCBub2RlIGluIHRoZSB0cmF2ZXJzYWwKKyAqCisgKiBUcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAicHJlY2VkaW5nIiBkaXJlY3Rpb24KKyAqIHRoZSBwcmVjZWRpbmcgYXhpcyBjb250YWlucyBhbGwgbm9kZXMgaW4gdGhlIHNhbWUgZG9jdW1lbnQgYXMgdGhlIGNvbnRleHQKKyAqIG5vZGUgdGhhdCBhcmUgYmVmb3JlIHRoZSBjb250ZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIsIGV4Y2x1ZGluZyBhbnkKKyAqIGFuY2VzdG9ycyBhbmQgZXhjbHVkaW5nIGF0dHJpYnV0ZSBub2RlcyBhbmQgbmFtZXNwYWNlIG5vZGVzOyB0aGUgbm9kZXMgYXJlCisgKiBvcmRlcmVkIGluIHJldmVyc2UgZG9jdW1lbnQgb3JkZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcworICovCit4bWxOb2RlUHRyCit4bWxYUGF0aE5leHRQcmVjZWRpbmcoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKQoreworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgY3VyID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuIChOVUxMKTsKKyAgICBpZiAoKGN1ci0+cHJldiAhPSBOVUxMKSAmJiAoY3VyLT5wcmV2LT50eXBlID09IFhNTF9EVERfTk9ERSkpCisJY3VyID0gY3VyLT5wcmV2OworICAgIGRvIHsKKyAgICAgICAgaWYgKGN1ci0+cHJldiAhPSBOVUxMKSB7CisgICAgICAgICAgICBmb3IgKGN1ciA9IGN1ci0+cHJldjsgY3VyLT5sYXN0ICE9IE5VTEw7IGN1ciA9IGN1ci0+bGFzdCkgOworICAgICAgICAgICAgcmV0dXJuIChjdXIpOworICAgICAgICB9CisKKyAgICAgICAgY3VyID0gY3VyLT5wYXJlbnQ7CisgICAgICAgIGlmIChjdXIgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgICAgIGlmIChjdXIgPT0gY3R4dC0+Y29udGV4dC0+ZG9jLT5jaGlsZHJlbikKKyAgICAgICAgICAgIHJldHVybiAoTlVMTCk7CisgICAgfSB3aGlsZSAoeG1sWFBhdGhJc0FuY2VzdG9yKGN1ciwgY3R4dC0+Y29udGV4dC0+bm9kZSkpOworICAgIHJldHVybiAoY3VyKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5leHRQcmVjZWRpbmdJbnRlcm5hbDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgbm9kZSBpbiB0aGUgdHJhdmVyc2FsCisgKgorICogVHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgInByZWNlZGluZyIgZGlyZWN0aW9uCisgKiB0aGUgcHJlY2VkaW5nIGF4aXMgY29udGFpbnMgYWxsIG5vZGVzIGluIHRoZSBzYW1lIGRvY3VtZW50IGFzIHRoZSBjb250ZXh0CisgKiBub2RlIHRoYXQgYXJlIGJlZm9yZSB0aGUgY29udGV4dCBub2RlIGluIGRvY3VtZW50IG9yZGVyLCBleGNsdWRpbmcgYW55CisgKiBhbmNlc3RvcnMgYW5kIGV4Y2x1ZGluZyBhdHRyaWJ1dGUgbm9kZXMgYW5kIG5hbWVzcGFjZSBub2RlczsgdGhlIG5vZGVzIGFyZQorICogb3JkZXJlZCBpbiByZXZlcnNlIGRvY3VtZW50IG9yZGVyCisgKiBUaGlzIGlzIGEgZmFzdGVyIGltcGxlbWVudGF0aW9uIGJ1dCBpbnRlcm5hbCBvbmx5IHNpbmNlIGl0IHJlcXVpcmVzIGEKKyAqIHN0YXRlIGtlcHQgaW4gdGhlIHBhcnNlciBjb250ZXh0OiBjdHh0LT5hbmNlc3Rvci4KKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcworICovCitzdGF0aWMgeG1sTm9kZVB0cgoreG1sWFBhdGhOZXh0UHJlY2VkaW5nSW50ZXJuYWwoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxOb2RlUHRyIGN1cikKK3sKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRleHQgPT0gTlVMTCkpIHJldHVybihOVUxMKTsKKyAgICBpZiAoY3VyID09IE5VTEwpIHsKKyAgICAgICAgY3VyID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKyAgICAgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKwlpZiAoY3VyLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkKKwkgICAgY3VyID0gKHhtbE5vZGVQdHIpKCh4bWxOc1B0ciljdXIpLT5uZXh0OworICAgICAgICBjdHh0LT5hbmNlc3RvciA9IGN1ci0+cGFyZW50OworICAgIH0KKyAgICBpZiAoKGN1ci0+cHJldiAhPSBOVUxMKSAmJiAoY3VyLT5wcmV2LT50eXBlID09IFhNTF9EVERfTk9ERSkpCisJY3VyID0gY3VyLT5wcmV2OworICAgIHdoaWxlIChjdXItPnByZXYgPT0gTlVMTCkgeworICAgICAgICBjdXIgPSBjdXItPnBhcmVudDsKKyAgICAgICAgaWYgKGN1ciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgaWYgKGN1ciA9PSBjdHh0LT5jb250ZXh0LT5kb2MtPmNoaWxkcmVuKQorICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICAgICAgaWYgKGN1ciAhPSBjdHh0LT5hbmNlc3RvcikKKyAgICAgICAgICAgIHJldHVybiAoY3VyKTsKKyAgICAgICAgY3R4dC0+YW5jZXN0b3IgPSBjdXItPnBhcmVudDsKKyAgICB9CisgICAgY3VyID0gY3VyLT5wcmV2OworICAgIHdoaWxlIChjdXItPmxhc3QgIT0gTlVMTCkKKyAgICAgICAgY3VyID0gY3VyLT5sYXN0OworICAgIHJldHVybiAoY3VyKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5leHROYW1lc3BhY2U6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGN1cjogIHRoZSBjdXJyZW50IGF0dHJpYnV0ZSBpbiB0aGUgdHJhdmVyc2FsCisgKgorICogVHJhdmVyc2FsIGZ1bmN0aW9uIGZvciB0aGUgIm5hbWVzcGFjZSIgZGlyZWN0aW9uCisgKiB0aGUgbmFtZXNwYWNlIGF4aXMgY29udGFpbnMgdGhlIG5hbWVzcGFjZSBub2RlcyBvZiB0aGUgY29udGV4dCBub2RlOworICogdGhlIG9yZGVyIG9mIG5vZGVzIG9uIHRoaXMgYXhpcyBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkOyB0aGUgYXhpcyB3aWxsCisgKiBiZSBlbXB0eSB1bmxlc3MgdGhlIGNvbnRleHQgbm9kZSBpcyBhbiBlbGVtZW50CisgKgorICogV2Uga2VlcCB0aGUgWE1MIG5hbWVzcGFjZSBub2RlIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCisgKgorICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IGZvbGxvd2luZyB0aGF0IGF4aXMKKyAqLworeG1sTm9kZVB0cgoreG1sWFBhdGhOZXh0TmFtZXNwYWNlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxOb2RlUHRyIGN1cikgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkgcmV0dXJuKE5VTEwpOworICAgIGlmIChjdHh0LT5jb250ZXh0LT5ub2RlLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpIHJldHVybihOVUxMKTsKKyAgICBpZiAoY3R4dC0+Y29udGV4dC0+dG1wTnNMaXN0ID09IE5VTEwgJiYgY3VyICE9ICh4bWxOb2RlUHRyKSB4bWxYUGF0aFhNTE5hbWVzcGFjZSkgeworICAgICAgICBpZiAoY3R4dC0+Y29udGV4dC0+dG1wTnNMaXN0ICE9IE5VTEwpCisJICAgIHhtbEZyZWUoY3R4dC0+Y29udGV4dC0+dG1wTnNMaXN0KTsKKwljdHh0LT5jb250ZXh0LT50bXBOc0xpc3QgPQorCSAgICB4bWxHZXROc0xpc3QoY3R4dC0+Y29udGV4dC0+ZG9jLCBjdHh0LT5jb250ZXh0LT5ub2RlKTsKKwljdHh0LT5jb250ZXh0LT50bXBOc05yID0gMDsKKwlpZiAoY3R4dC0+Y29udGV4dC0+dG1wTnNMaXN0ICE9IE5VTEwpIHsKKwkgICAgd2hpbGUgKGN0eHQtPmNvbnRleHQtPnRtcE5zTGlzdFtjdHh0LT5jb250ZXh0LT50bXBOc05yXSAhPSBOVUxMKSB7CisJCWN0eHQtPmNvbnRleHQtPnRtcE5zTnIrKzsKKwkgICAgfQorCX0KKwlyZXR1cm4oKHhtbE5vZGVQdHIpIHhtbFhQYXRoWE1MTmFtZXNwYWNlKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmNvbnRleHQtPnRtcE5zTnIgPiAwKSB7CisJcmV0dXJuICh4bWxOb2RlUHRyKWN0eHQtPmNvbnRleHQtPnRtcE5zTGlzdFstLWN0eHQtPmNvbnRleHQtPnRtcE5zTnJdOworICAgIH0gZWxzZSB7CisJaWYgKGN0eHQtPmNvbnRleHQtPnRtcE5zTGlzdCAhPSBOVUxMKQorCSAgICB4bWxGcmVlKGN0eHQtPmNvbnRleHQtPnRtcE5zTGlzdCk7CisJY3R4dC0+Y29udGV4dC0+dG1wTnNMaXN0ID0gTlVMTDsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoTmV4dEF0dHJpYnV0ZToKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgdGhlIGN1cnJlbnQgYXR0cmlidXRlIGluIHRoZSB0cmF2ZXJzYWwKKyAqCisgKiBUcmF2ZXJzYWwgZnVuY3Rpb24gZm9yIHRoZSAiYXR0cmlidXRlIiBkaXJlY3Rpb24KKyAqIFRPRE86IHN1cHBvcnQgRFREIGluaGVyaXRlZCBkZWZhdWx0IGF0dHJpYnV0ZXMKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgZm9sbG93aW5nIHRoYXQgYXhpcworICovCit4bWxOb2RlUHRyCit4bWxYUGF0aE5leHRBdHRyaWJ1dGUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbE5vZGVQdHIgY3VyKSB7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKGN0eHQtPmNvbnRleHQtPm5vZGUgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGN0eHQtPmNvbnRleHQtPm5vZGUtPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisgICAgICAgIGlmIChjdHh0LT5jb250ZXh0LT5ub2RlID09ICh4bWxOb2RlUHRyKSBjdHh0LT5jb250ZXh0LT5kb2MpCisJICAgIHJldHVybihOVUxMKTsKKyAgICAgICAgcmV0dXJuKCh4bWxOb2RlUHRyKWN0eHQtPmNvbnRleHQtPm5vZGUtPnByb3BlcnRpZXMpOworICAgIH0KKyAgICByZXR1cm4oKHhtbE5vZGVQdHIpY3VyLT5uZXh0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJTm9kZVRlc3QgRnVuY3Rpb25zCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgSVNfRlVOQ1RJT04JCQkyMDAKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlJbXBsaWNpdCB0cmVlIGNvcmUgZnVuY3Rpb24gbGlicmFyeQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiB4bWxYUGF0aFJvb3Q6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqIEluaXRpYWxpemUgdGhlIGNvbnRleHQgdG8gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50CisgKi8KK3ZvaWQKK3htbFhQYXRoUm9vdCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkKKwlyZXR1cm47CisgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9ICh4bWxOb2RlUHRyKSBjdHh0LT5jb250ZXh0LT5kb2M7CisgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdOb2RlU2V0KGN0eHQtPmNvbnRleHQsCisJY3R4dC0+Y29udGV4dC0+bm9kZSkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgkJCQkJCQkJCSoKKyAqCQlUaGUgZXhwbGljaXQgY29yZSBmdW5jdGlvbiBsaWJyYXJ5CQkJKgorICpodHRwOi8vd3d3LnczLm9yZy9TdHlsZS9YU0wvR3JvdXAvMTk5OS8wNy94cGF0aC0xOTk5MDcwNS5odG1sI2NvcmVsaWIJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKgorICogeG1sWFBhdGhMYXN0RnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIGxhc3QoKSBYUGF0aCBmdW5jdGlvbgorICogICAgbnVtYmVyIGxhc3QoKQorICogVGhlIGxhc3QgZnVuY3Rpb24gcmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBjb250ZXh0IG5vZGUgbGlzdC4KKyAqLwordm9pZAoreG1sWFBhdGhMYXN0RnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIENIRUNLX0FSSVRZKDApOworICAgIGlmIChjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA+PSAwKSB7CisJdmFsdWVQdXNoKGN0eHQsCisJICAgIHhtbFhQYXRoQ2FjaGVOZXdGbG9hdChjdHh0LT5jb250ZXh0LAorCQkoZG91YmxlKSBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSkpOworI2lmZGVmIERFQlVHX0VYUFIKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJImxhc3QoKSA6ICVkXG4iLCBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSk7CisjZW5kaWYKKyAgICB9IGVsc2UgeworCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfQ1RYVF9TSVpFKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sWFBhdGhQb3NpdGlvbkZ1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBwb3NpdGlvbigpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBudW1iZXIgcG9zaXRpb24oKQorICogVGhlIHBvc2l0aW9uIGZ1bmN0aW9uIHJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250ZXh0IG5vZGUgaW4gdGhlCisgKiBjb250ZXh0IG5vZGUgbGlzdC4gVGhlIGZpcnN0IHBvc2l0aW9uIGlzIDEsIGFuZCBzbyB0aGUgbGFzdCBwb3NpdGlvbgorICogd2lsbCBiZSBlcXVhbCB0byBsYXN0KCkuCisgKi8KK3ZvaWQKK3htbFhQYXRoUG9zaXRpb25GdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgQ0hFQ0tfQVJJVFkoMCk7CisgICAgaWYgKGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID49IDApIHsKKwl2YWx1ZVB1c2goY3R4dCwKKwkgICAgICB4bWxYUGF0aENhY2hlTmV3RmxvYXQoY3R4dC0+Y29udGV4dCwKKwkJKGRvdWJsZSkgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24pKTsKKyNpZmRlZiBERUJVR19FWFBSCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJwb3NpdGlvbigpIDogJWRcbiIsCisJCWN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uKTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisJWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9DVFhUX1BPU0lUSU9OKTsKKyAgICB9Cit9CisKKy8qKgorICogeG1sWFBhdGhDb3VudEZ1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBjb3VudCgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBudW1iZXIgY291bnQobm9kZS1zZXQpCisgKi8KK3ZvaWQKK3htbFhQYXRoQ291bnRGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgY3VyOworCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgaWYgKChjdHh0LT52YWx1ZSA9PSBOVUxMKSB8fAorCSgoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkgJiYKKwkgKGN0eHQtPnZhbHVlLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpKQorCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfVFlQRSk7CisgICAgY3VyID0gdmFsdWVQb3AoY3R4dCk7CisKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoY3VyLT5ub2Rlc2V0dmFsID09IE5VTEwpKQorCXZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3RmxvYXQoY3R4dC0+Y29udGV4dCwgKGRvdWJsZSkgMCkpOworICAgIGVsc2UgaWYgKChjdXItPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKGN1ci0+dHlwZSA9PSBYUEFUSF9YU0xUX1RSRUUpKSB7CisJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdGbG9hdChjdHh0LT5jb250ZXh0LAorCSAgICAoZG91YmxlKSBjdXItPm5vZGVzZXR2YWwtPm5vZGVOcikpOworICAgIH0gZWxzZSB7CisJaWYgKChjdXItPm5vZGVzZXR2YWwtPm5vZGVOciAhPSAxKSB8fAorCSAgICAoY3VyLT5ub2Rlc2V0dmFsLT5ub2RlVGFiID09IE5VTEwpKSB7CisJICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3RmxvYXQoY3R4dC0+Y29udGV4dCwgKGRvdWJsZSkgMCkpOworCX0gZWxzZSB7CisJICAgIHhtbE5vZGVQdHIgdG1wOworCSAgICBpbnQgaSA9IDA7CisKKwkgICAgdG1wID0gY3VyLT5ub2Rlc2V0dmFsLT5ub2RlVGFiWzBdOworCSAgICBpZiAodG1wICE9IE5VTEwpIHsKKwkJdG1wID0gdG1wLT5jaGlsZHJlbjsKKwkJd2hpbGUgKHRtcCAhPSBOVUxMKSB7CisJCSAgICB0bXAgPSB0bXAtPm5leHQ7CisJCSAgICBpKys7CisJCX0KKwkgICAgfQorCSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld0Zsb2F0KGN0eHQtPmNvbnRleHQsIChkb3VibGUpIGkpKTsKKwl9CisgICAgfQorICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBjdXIpOworfQorCisvKioKKyAqIHhtbFhQYXRoR2V0RWxlbWVudHNCeUlkczoKKyAqIEBkb2M6ICB0aGUgZG9jdW1lbnQKKyAqIEBpZHM6ICBhIHdoaXRlc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YgSURzCisgKgorICogU2VsZWN0cyBlbGVtZW50cyBieSB0aGVpciB1bmlxdWUgSUQuCisgKgorICogUmV0dXJucyBhIG5vZGUtc2V0IG9mIHNlbGVjdGVkIGVsZW1lbnRzLgorICovCitzdGF0aWMgeG1sTm9kZVNldFB0cgoreG1sWFBhdGhHZXRFbGVtZW50c0J5SWRzICh4bWxEb2NQdHIgZG9jLCBjb25zdCB4bWxDaGFyICppZHMpIHsKKyAgICB4bWxOb2RlU2V0UHRyIHJldDsKKyAgICBjb25zdCB4bWxDaGFyICpjdXIgPSBpZHM7CisgICAgeG1sQ2hhciAqSUQ7CisgICAgeG1sQXR0clB0ciBhdHRyOworICAgIHhtbE5vZGVQdHIgZWxlbSA9IE5VTEw7CisKKyAgICBpZiAoaWRzID09IE5VTEwpIHJldHVybihOVUxMKTsKKworICAgIHJldCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKyAgICBpZiAocmV0ID09IE5VTEwpCisgICAgICAgIHJldHVybihyZXQpOworCisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKSBjdXIrKzsKKyAgICB3aGlsZSAoKmN1ciAhPSAwKSB7CisJd2hpbGUgKCghSVNfQkxBTktfQ0goKmN1cikpICYmICgqY3VyICE9IDApKQorCSAgICBjdXIrKzsKKworICAgICAgICBJRCA9IHhtbFN0cm5kdXAoaWRzLCBjdXIgLSBpZHMpOworCWlmIChJRCAhPSBOVUxMKSB7CisJICAgIC8qCisJICAgICAqIFdlIHVzZWQgdG8gY2hlY2sgdGhlIGZhY3QgdGhhdCB0aGUgdmFsdWUgcGFzc2VkCisJICAgICAqIHdhcyBhbiBOQ05hbWUsIGJ1dCB0aGlzIGdlbmVyYXRlZCBtdWNoIHRyb3VibGVzIGZvcgorCSAgICAgKiBtZSBhbmQgQWxla3NleSBTYW5pbiwgcGVvcGxlIGJsYXRhbnRseSB2aW9sYXRlZCB0aGF0CisJICAgICAqIGNvbnN0YWludCwgbGlrZSBWaXNhM0Qgc3BlYy4KKwkgICAgICogaWYgKHhtbFZhbGlkYXRlTkNOYW1lKElELCAxKSA9PSAwKQorCSAgICAgKi8KKwkgICAgYXR0ciA9IHhtbEdldElEKGRvYywgSUQpOworCSAgICBpZiAoYXR0ciAhPSBOVUxMKSB7CisJCWlmIChhdHRyLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkKKwkJICAgIGVsZW0gPSBhdHRyLT5wYXJlbnQ7CisJCWVsc2UgaWYgKGF0dHItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkJICAgIGVsZW0gPSAoeG1sTm9kZVB0cikgYXR0cjsKKwkJZWxzZQorCQkgICAgZWxlbSA9IE5VTEw7CisJCWlmIChlbGVtICE9IE5VTEwpCisJCSAgICB4bWxYUGF0aE5vZGVTZXRBZGQocmV0LCBlbGVtKTsKKwkgICAgfQorCSAgICB4bWxGcmVlKElEKTsKKwl9CisKKwl3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworCWlkcyA9IGN1cjsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhJZEZ1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBpZCgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBub2RlLXNldCBpZChvYmplY3QpCisgKiBUaGUgaWQgZnVuY3Rpb24gc2VsZWN0cyBlbGVtZW50cyBieSB0aGVpciB1bmlxdWUgSUQKKyAqIChzZWUgWzUuMi4xIFVuaXF1ZSBJRHNdKS4gV2hlbiB0aGUgYXJndW1lbnQgdG8gaWQgaXMgb2YgdHlwZSBub2RlLXNldCwKKyAqIHRoZW4gdGhlIHJlc3VsdCBpcyB0aGUgdW5pb24gb2YgdGhlIHJlc3VsdCBvZiBhcHBseWluZyBpZCB0byB0aGUKKyAqIHN0cmluZyB2YWx1ZSBvZiBlYWNoIG9mIHRoZSBub2RlcyBpbiB0aGUgYXJndW1lbnQgbm9kZS1zZXQuIFdoZW4gdGhlCisgKiBhcmd1bWVudCB0byBpZCBpcyBvZiBhbnkgb3RoZXIgdHlwZSwgdGhlIGFyZ3VtZW50IGlzIGNvbnZlcnRlZCB0byBhCisgKiBzdHJpbmcgYXMgaWYgYnkgYSBjYWxsIHRvIHRoZSBzdHJpbmcgZnVuY3Rpb247IHRoZSBzdHJpbmcgaXMgc3BsaXQKKyAqIGludG8gYSB3aGl0ZXNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIHRva2VucyAod2hpdGVzcGFjZSBpcyBhbnkgc2VxdWVuY2UKKyAqIG9mIGNoYXJhY3RlcnMgbWF0Y2hpbmcgdGhlIHByb2R1Y3Rpb24gUyk7IHRoZSByZXN1bHQgaXMgYSBub2RlLXNldAorICogY29udGFpbmluZyB0aGUgZWxlbWVudHMgaW4gdGhlIHNhbWUgZG9jdW1lbnQgYXMgdGhlIGNvbnRleHQgbm9kZSB0aGF0CisgKiBoYXZlIGEgdW5pcXVlIElEIGVxdWFsIHRvIGFueSBvZiB0aGUgdG9rZW5zIGluIHRoZSBsaXN0LgorICovCit2b2lkCit4bWxYUGF0aElkRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIHhtbENoYXIgKnRva2VuczsKKyAgICB4bWxOb2RlU2V0UHRyIHJldDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBvYmo7CisKKyAgICBDSEVDS19BUklUWSgxKTsKKyAgICBvYmogPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBpZiAob2JqID09IE5VTEwpIFhQX0VSUk9SKFhQQVRIX0lOVkFMSURfT1BFUkFORCk7CisgICAgaWYgKChvYmotPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgfHwgKG9iai0+dHlwZSA9PSBYUEFUSF9YU0xUX1RSRUUpKSB7CisJeG1sTm9kZVNldFB0ciBuczsKKwlpbnQgaTsKKworCXJldCA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogRklYTUUgLS0gaW4gYW4gb3V0LW9mLW1lbW9yeSBjb25kaXRpb24gdGhpcyB3aWxsIGJlaGF2ZSBiYWRseS4KKyAgICAgICAgICogVGhlIHNvbHV0aW9uIGlzIG5vdCBjbGVhciAtLSB3ZSBhbHJlYWR5IHBvcHBlZCBhbiBpdGVtIGZyb20KKyAgICAgICAgICogY3R4dCwgc28gdGhlIG9iamVjdCBpcyBpbiBhIGNvcnJ1cHQgc3RhdGUuCisgICAgICAgICAqLworCisJaWYgKG9iai0+bm9kZXNldHZhbCAhPSBOVUxMKSB7CisJICAgIGZvciAoaSA9IDA7IGkgPCBvYmotPm5vZGVzZXR2YWwtPm5vZGVOcjsgaSsrKSB7CisJCXRva2VucyA9CisJCSAgICB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcob2JqLT5ub2Rlc2V0dmFsLT5ub2RlVGFiW2ldKTsKKwkJbnMgPSB4bWxYUGF0aEdldEVsZW1lbnRzQnlJZHMoY3R4dC0+Y29udGV4dC0+ZG9jLCB0b2tlbnMpOworCQlyZXQgPSB4bWxYUGF0aE5vZGVTZXRNZXJnZShyZXQsIG5zKTsKKwkJeG1sWFBhdGhGcmVlTm9kZVNldChucyk7CisJCWlmICh0b2tlbnMgIT0gTlVMTCkKKwkJICAgIHhtbEZyZWUodG9rZW5zKTsKKwkgICAgfQorCX0KKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgb2JqKTsKKwl2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZVdyYXBOb2RlU2V0KGN0eHQtPmNvbnRleHQsIHJldCkpOworCXJldHVybjsKKyAgICB9CisgICAgb2JqID0geG1sWFBhdGhDYWNoZUNvbnZlcnRTdHJpbmcoY3R4dC0+Y29udGV4dCwgb2JqKTsKKyAgICByZXQgPSB4bWxYUGF0aEdldEVsZW1lbnRzQnlJZHMoY3R4dC0+Y29udGV4dC0+ZG9jLCBvYmotPnN0cmluZ3ZhbCk7CisgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVXcmFwTm9kZVNldChjdHh0LT5jb250ZXh0LCByZXQpKTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgb2JqKTsKKyAgICByZXR1cm47Cit9CisKKy8qKgorICogeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgbG9jYWwtbmFtZSgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBzdHJpbmcgbG9jYWwtbmFtZShub2RlLXNldD8pCisgKiBUaGUgbG9jYWwtbmFtZSBmdW5jdGlvbiByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGxvY2FsIHBhcnQKKyAqIG9mIHRoZSBuYW1lIG9mIHRoZSBub2RlIGluIHRoZSBhcmd1bWVudCBub2RlLXNldCB0aGF0IGlzIGZpcnN0IGluCisgKiBkb2N1bWVudCBvcmRlci4gSWYgdGhlIG5vZGUtc2V0IGlzIGVtcHR5IG9yIHRoZSBmaXJzdCBub2RlIGhhcyBubworICogbmFtZSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCBpdAorICogZGVmYXVsdHMgdG8gdGhlIGNvbnRleHQgbm9kZS4KKyAqLwordm9pZAoreG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgY3VyOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKG5hcmdzID09IDApIHsKKwl2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoY3R4dC0+Y29udGV4dCwKKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSkpOworCW5hcmdzID0gMTsKKyAgICB9CisKKyAgICBDSEVDS19BUklUWSgxKTsKKyAgICBpZiAoKGN0eHQtPnZhbHVlID09IE5VTEwpIHx8CisJKChjdHh0LT52YWx1ZS0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSAmJgorCSAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfWFNMVF9UUkVFKSkpCisJWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9UWVBFKTsKKyAgICBjdXIgPSB2YWx1ZVBvcChjdHh0KTsKKworICAgIGlmICgoY3VyLT5ub2Rlc2V0dmFsID09IE5VTEwpIHx8IChjdXItPm5vZGVzZXR2YWwtPm5vZGVOciA9PSAwKSkgeworCXZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Q1N0cmluZyhjdHh0LT5jb250ZXh0LCAiIikpOworICAgIH0gZWxzZSB7CisJaW50IGkgPSAwOyAvKiBTaG91bGQgYmUgZmlyc3QgaW4gZG9jdW1lbnQgb3JkZXIgISEhISEgKi8KKwlzd2l0Y2ggKGN1ci0+bm9kZXNldHZhbC0+bm9kZVRhYltpXS0+dHlwZSkgeworCWNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwljYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwljYXNlIFhNTF9QSV9OT0RFOgorCSAgICBpZiAoY3VyLT5ub2Rlc2V0dmFsLT5ub2RlVGFiW2ldLT5uYW1lWzBdID09ICcgJykKKwkJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdDU3RyaW5nKGN0eHQtPmNvbnRleHQsICIiKSk7CisJICAgIGVsc2UKKwkJdmFsdWVQdXNoKGN0eHQsCisJCSAgICAgIHhtbFhQYXRoQ2FjaGVOZXdTdHJpbmcoY3R4dC0+Y29udGV4dCwKKwkJCWN1ci0+bm9kZXNldHZhbC0+bm9kZVRhYltpXS0+bmFtZSkpOworCSAgICBicmVhazsKKwljYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwkgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdTdHJpbmcoY3R4dC0+Y29udGV4dCwKKwkJCSgoeG1sTnNQdHIpY3VyLT5ub2Rlc2V0dmFsLT5ub2RlVGFiW2ldKS0+cHJlZml4KSk7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Q1N0cmluZyhjdHh0LT5jb250ZXh0LCAiIikpOworCX0KKyAgICB9CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGN1cik7Cit9CisKKy8qKgorICogeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgbmFtZXNwYWNlLXVyaSgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBzdHJpbmcgbmFtZXNwYWNlLXVyaShub2RlLXNldD8pCisgKiBUaGUgbmFtZXNwYWNlLXVyaSBmdW5jdGlvbiByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgKiBuYW1lc3BhY2UgVVJJIG9mIHRoZSBleHBhbmRlZCBuYW1lIG9mIHRoZSBub2RlIGluIHRoZSBhcmd1bWVudAorICogbm9kZS1zZXQgdGhhdCBpcyBmaXJzdCBpbiBkb2N1bWVudCBvcmRlci4gSWYgdGhlIG5vZGUtc2V0IGlzIGVtcHR5LAorICogdGhlIGZpcnN0IG5vZGUgaGFzIG5vIG5hbWUsIG9yIHRoZSBleHBhbmRlZCBuYW1lIGhhcyBubyBuYW1lc3BhY2UKKyAqIFVSSSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCBpdAorICogZGVmYXVsdHMgdG8gdGhlIGNvbnRleHQgbm9kZS4KKyAqLwordm9pZAoreG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgY3VyOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOworCisgICAgaWYgKG5hcmdzID09IDApIHsKKwl2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoY3R4dC0+Y29udGV4dCwKKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSkpOworCW5hcmdzID0gMTsKKyAgICB9CisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgaWYgKChjdHh0LT52YWx1ZSA9PSBOVUxMKSB8fAorCSgoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkgJiYKKwkgKGN0eHQtPnZhbHVlLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpKQorCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfVFlQRSk7CisgICAgY3VyID0gdmFsdWVQb3AoY3R4dCk7CisKKyAgICBpZiAoKGN1ci0+bm9kZXNldHZhbCA9PSBOVUxMKSB8fCAoY3VyLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPT0gMCkpIHsKKwl2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld0NTdHJpbmcoY3R4dC0+Y29udGV4dCwgIiIpKTsKKyAgICB9IGVsc2UgeworCWludCBpID0gMDsgLyogU2hvdWxkIGJlIGZpcnN0IGluIGRvY3VtZW50IG9yZGVyICEhISEhICovCisJc3dpdGNoIChjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV0tPnR5cGUpIHsKKwljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJICAgIGlmIChjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV0tPm5zID09IE5VTEwpCisJCXZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Q1N0cmluZyhjdHh0LT5jb250ZXh0LCAiIikpOworCSAgICBlbHNlCisJCXZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3U3RyaW5nKGN0eHQtPmNvbnRleHQsCisJCQkgIGN1ci0+bm9kZXNldHZhbC0+bm9kZVRhYltpXS0+bnMtPmhyZWYpKTsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdDU3RyaW5nKGN0eHQtPmNvbnRleHQsICIiKSk7CisJfQorICAgIH0KKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgY3VyKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE5hbWVGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgbmFtZSgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBzdHJpbmcgbmFtZShub2RlLXNldD8pCisgKiBUaGUgbmFtZSBmdW5jdGlvbiByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBRTmFtZSByZXByZXNlbnRpbmcKKyAqIHRoZSBuYW1lIG9mIHRoZSBub2RlIGluIHRoZSBhcmd1bWVudCBub2RlLXNldCB0aGF0IGlzIGZpcnN0IGluIGRvY3VtZW50CisgKiBvcmRlci4gVGhlIFFOYW1lIG11c3QgcmVwcmVzZW50IHRoZSBuYW1lIHdpdGggcmVzcGVjdCB0byB0aGUgbmFtZXNwYWNlCisgKiBkZWNsYXJhdGlvbnMgaW4gZWZmZWN0IG9uIHRoZSBub2RlIHdob3NlIG5hbWUgaXMgYmVpbmcgcmVwcmVzZW50ZWQuCisgKiBUeXBpY2FsbHksIHRoaXMgd2lsbCBiZSB0aGUgZm9ybSBpbiB3aGljaCB0aGUgbmFtZSBvY2N1cnJlZCBpbiB0aGUgWE1MCisgKiBzb3VyY2UuIFRoaXMgbmVlZCBub3QgYmUgdGhlIGNhc2UgaWYgdGhlcmUgYXJlIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMKKyAqIGluIGVmZmVjdCBvbiB0aGUgbm9kZSB0aGF0IGFzc29jaWF0ZSBtdWx0aXBsZSBwcmVmaXhlcyB3aXRoIHRoZSBzYW1lCisgKiBuYW1lc3BhY2UuIEhvd2V2ZXIsIGFuIGltcGxlbWVudGF0aW9uIG1heSBpbmNsdWRlIGluZm9ybWF0aW9uIGFib3V0CisgKiB0aGUgb3JpZ2luYWwgcHJlZml4IGluIGl0cyByZXByZXNlbnRhdGlvbiBvZiBub2RlczsgaW4gdGhpcyBjYXNlLCBhbgorICogaW1wbGVtZW50YXRpb24gY2FuIGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBzdHJpbmcgaXMgYWx3YXlzIHRoZSBzYW1lCisgKiBhcyB0aGUgUU5hbWUgdXNlZCBpbiB0aGUgWE1MIHNvdXJjZS4gSWYgdGhlIGFyZ3VtZW50IGl0IG9taXR0ZWQgaXQKKyAqIGRlZmF1bHRzIHRvIHRoZSBjb250ZXh0IG5vZGUuCisgKiBMaWJ4bWwga2VlcCB0aGUgb3JpZ2luYWwgcHJlZml4IHNvIHRoZSAicmVhbCBxdWFsaWZpZWQgbmFtZSIgdXNlZCBpcworICogcmV0dXJuZWQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aE5hbWVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKQoreworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGN1cjsKKworICAgIGlmIChuYXJncyA9PSAwKSB7CisJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdOb2RlU2V0KGN0eHQtPmNvbnRleHQsCisJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUpKTsKKyAgICAgICAgbmFyZ3MgPSAxOworICAgIH0KKworICAgIENIRUNLX0FSSVRZKDEpOworICAgIGlmICgoY3R4dC0+dmFsdWUgPT0gTlVMTCkgfHwKKyAgICAgICAgKChjdHh0LT52YWx1ZS0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSAmJgorICAgICAgICAgKGN0eHQtPnZhbHVlLT50eXBlICE9IFhQQVRIX1hTTFRfVFJFRSkpKQorICAgICAgICBYUF9FUlJPUihYUEFUSF9JTlZBTElEX1RZUEUpOworICAgIGN1ciA9IHZhbHVlUG9wKGN0eHQpOworCisgICAgaWYgKChjdXItPm5vZGVzZXR2YWwgPT0gTlVMTCkgfHwgKGN1ci0+bm9kZXNldHZhbC0+bm9kZU5yID09IDApKSB7CisgICAgICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Q1N0cmluZyhjdHh0LT5jb250ZXh0LCAiIikpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludCBpID0gMDsgICAgICAgICAgICAgIC8qIFNob3VsZCBiZSBmaXJzdCBpbiBkb2N1bWVudCBvcmRlciAhISEhISAqLworCisgICAgICAgIHN3aXRjaCAoY3VyLT5ub2Rlc2V0dmFsLT5ub2RlVGFiW2ldLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkJaWYgKGN1ci0+bm9kZXNldHZhbC0+bm9kZVRhYltpXS0+bmFtZVswXSA9PSAnICcpCisJCSAgICB2YWx1ZVB1c2goY3R4dCwKKwkJCXhtbFhQYXRoQ2FjaGVOZXdDU3RyaW5nKGN0eHQtPmNvbnRleHQsICIiKSk7CisJCWVsc2UgaWYgKChjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV0tPm5zID09IE5VTEwpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgKGN1ci0+bm9kZXNldHZhbC0+bm9kZVRhYltpXS0+bnMtPnByZWZpeCA9PSBOVUxMKSkgeworCQkgICAgdmFsdWVQdXNoKGN0eHQsCisJCSAgICAgICAgeG1sWFBhdGhDYWNoZU5ld1N0cmluZyhjdHh0LT5jb250ZXh0LAorCQkJICAgIGN1ci0+bm9kZXNldHZhbC0+bm9kZVRhYltpXS0+bmFtZSkpOworCQl9IGVsc2UgeworCQkgICAgeG1sQ2hhciAqZnVsbG5hbWU7CisKKwkJICAgIGZ1bGxuYW1lID0geG1sQnVpbGRRTmFtZShjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV0tPm5hbWUsCisJCQkJICAgICBjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV0tPm5zLT5wcmVmaXgsCisJCQkJICAgICBOVUxMLCAwKTsKKwkJICAgIGlmIChmdWxsbmFtZSA9PSBjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV0tPm5hbWUpCisJCQlmdWxsbmFtZSA9IHhtbFN0cmR1cChjdXItPm5vZGVzZXR2YWwtPm5vZGVUYWJbaV0tPm5hbWUpOworCQkgICAgaWYgKGZ1bGxuYW1lID09IE5VTEwpIHsKKwkJCVhQX0VSUk9SKFhQQVRIX01FTU9SWV9FUlJPUik7CisJCSAgICB9CisJCSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZVdyYXBTdHJpbmcoCisJCQljdHh0LT5jb250ZXh0LCBmdWxsbmFtZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisJCXZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Tm9kZVNldChjdHh0LT5jb250ZXh0LAorCQkgICAgY3VyLT5ub2Rlc2V0dmFsLT5ub2RlVGFiW2ldKSk7CisgICAgICAgICAgICAgICAgeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbihjdHh0LCAxKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgY3VyKTsKK30KKworCisvKioKKyAqIHhtbFhQYXRoU3RyaW5nRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIHN0cmluZygpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBzdHJpbmcgc3RyaW5nKG9iamVjdD8pCisgKiBUaGUgc3RyaW5nIGZ1bmN0aW9uIGNvbnZlcnRzIGFuIG9iamVjdCB0byBhIHN0cmluZyBhcyBmb2xsb3dzOgorICogICAgLSBBIG5vZGUtc2V0IGlzIGNvbnZlcnRlZCB0byBhIHN0cmluZyBieSByZXR1cm5pbmcgdGhlIHZhbHVlIG9mCisgKiAgICAgIHRoZSBub2RlIGluIHRoZSBub2RlLXNldCB0aGF0IGlzIGZpcnN0IGluIGRvY3VtZW50IG9yZGVyLgorICogICAgICBJZiB0aGUgbm9kZS1zZXQgaXMgZW1wdHksIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC4KKyAqICAgIC0gQSBudW1iZXIgaXMgY29udmVydGVkIHRvIGEgc3RyaW5nIGFzIGZvbGxvd3MKKyAqICAgICAgKyBOYU4gaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgTmFOCisgKiAgICAgICsgcG9zaXRpdmUgemVybyBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyAwCisgKiAgICAgICsgbmVnYXRpdmUgemVybyBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyAwCisgKiAgICAgICsgcG9zaXRpdmUgaW5maW5pdHkgaXMgY29udmVydGVkIHRvIHRoZSBzdHJpbmcgSW5maW5pdHkKKyAqICAgICAgKyBuZWdhdGl2ZSBpbmZpbml0eSBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyAtSW5maW5pdHkKKyAqICAgICAgKyBpZiB0aGUgbnVtYmVyIGlzIGFuIGludGVnZXIsIHRoZSBudW1iZXIgaXMgcmVwcmVzZW50ZWQgaW4KKyAqICAgICAgICBkZWNpbWFsIGZvcm0gYXMgYSBOdW1iZXIgd2l0aCBubyBkZWNpbWFsIHBvaW50IGFuZCBubyBsZWFkaW5nCisgKiAgICAgICAgemVyb3MsIHByZWNlZGVkIGJ5IGEgbWludXMgc2lnbiAoLSkgaWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZQorICogICAgICArIG90aGVyd2lzZSwgdGhlIG51bWJlciBpcyByZXByZXNlbnRlZCBpbiBkZWNpbWFsIGZvcm0gYXMgYQorICogICAgICAgIE51bWJlciBpbmNsdWRpbmcgYSBkZWNpbWFsIHBvaW50IHdpdGggYXQgbGVhc3Qgb25lIGRpZ2l0CisgKiAgICAgICAgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGFuZCBhdCBsZWFzdCBvbmUgZGlnaXQgYWZ0ZXIgdGhlCisgKiAgICAgICAgZGVjaW1hbCBwb2ludCwgcHJlY2VkZWQgYnkgYSBtaW51cyBzaWduICgtKSBpZiB0aGUgbnVtYmVyCisgKiAgICAgICAgaXMgbmVnYXRpdmU7IHRoZXJlIG11c3QgYmUgbm8gbGVhZGluZyB6ZXJvcyBiZWZvcmUgdGhlIGRlY2ltYWwKKyAqICAgICAgICBwb2ludCBhcGFydCBwb3NzaWJseSBmcm9tIHRoZSBvbmUgcmVxdWlyZWQgZGlnaXQgaW1tZWRpYXRlbHkKKyAqICAgICAgICBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQ7IGJleW9uZCB0aGUgb25lIHJlcXVpcmVkIGRpZ2l0CisgKiAgICAgICAgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQgdGhlcmUgbXVzdCBiZSBhcyBtYW55LCBidXQgb25seSBhcworICogICAgICAgIG1hbnksIG1vcmUgZGlnaXRzIGFzIGFyZSBuZWVkZWQgdG8gdW5pcXVlbHkgZGlzdGluZ3Vpc2ggdGhlCisgKiAgICAgICAgbnVtYmVyIGZyb20gYWxsIG90aGVyIElFRUUgNzU0IG51bWVyaWMgdmFsdWVzLgorICogICAgLSBUaGUgYm9vbGVhbiBmYWxzZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyBmYWxzZS4KKyAqICAgICAgVGhlIGJvb2xlYW4gdHJ1ZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gdGhlIHN0cmluZyB0cnVlLgorICoKKyAqIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBhIG5vZGUtc2V0IHdpdGggdGhlCisgKiBjb250ZXh0IG5vZGUgYXMgaXRzIG9ubHkgbWVtYmVyLgorICovCit2b2lkCit4bWxYUGF0aFN0cmluZ0Z1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBjdXI7CisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm47CisgICAgaWYgKG5hcmdzID09IDApIHsKKyAgICB2YWx1ZVB1c2goY3R4dCwKKwl4bWxYUGF0aENhY2hlV3JhcFN0cmluZyhjdHh0LT5jb250ZXh0LAorCSAgICB4bWxYUGF0aENhc3ROb2RlVG9TdHJpbmcoY3R4dC0+Y29udGV4dC0+bm9kZSkpKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgY3VyID0gdmFsdWVQb3AoY3R4dCk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSBYUF9FUlJPUihYUEFUSF9JTlZBTElEX09QRVJBTkQpOworICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlQ29udmVydFN0cmluZyhjdHh0LT5jb250ZXh0LCBjdXIpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFN0cmluZ0xlbmd0aEZ1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBzdHJpbmctbGVuZ3RoKCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIG51bWJlciBzdHJpbmctbGVuZ3RoKHN0cmluZz8pCisgKiBUaGUgc3RyaW5nLWxlbmd0aCByZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nCisgKiAoc2VlIFszLjYgU3RyaW5nc10pLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8KKyAqIHRoZSBjb250ZXh0IG5vZGUgY29udmVydGVkIHRvIGEgc3RyaW5nLCBpbiBvdGhlciB3b3JkcyB0aGUgdmFsdWUKKyAqIG9mIHRoZSBjb250ZXh0IG5vZGUuCisgKi8KK3ZvaWQKK3htbFhQYXRoU3RyaW5nTGVuZ3RoRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGN1cjsKKworICAgIGlmIChuYXJncyA9PSAwKSB7CisgICAgICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y29udGV4dCA9PSBOVUxMKSkKKwkgICAgcmV0dXJuOworCWlmIChjdHh0LT5jb250ZXh0LT5ub2RlID09IE5VTEwpIHsKKwkgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdGbG9hdChjdHh0LT5jb250ZXh0LCAwKSk7CisJfSBlbHNlIHsKKwkgICAgeG1sQ2hhciAqY29udGVudDsKKworCSAgICBjb250ZW50ID0geG1sWFBhdGhDYXN0Tm9kZVRvU3RyaW5nKGN0eHQtPmNvbnRleHQtPm5vZGUpOworCSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld0Zsb2F0KGN0eHQtPmNvbnRleHQsCisJCXhtbFVURjhTdHJsZW4oY29udGVudCkpKTsKKwkgICAgeG1sRnJlZShjb250ZW50KTsKKwl9CisJcmV0dXJuOworICAgIH0KKyAgICBDSEVDS19BUklUWSgxKTsKKyAgICBDQVNUX1RPX1NUUklORzsKKyAgICBDSEVDS19UWVBFKFhQQVRIX1NUUklORyk7CisgICAgY3VyID0gdmFsdWVQb3AoY3R4dCk7CisgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdGbG9hdChjdHh0LT5jb250ZXh0LAorCXhtbFVURjhTdHJsZW4oY3VyLT5zdHJpbmd2YWwpKSk7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGN1cik7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb25jYXRGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgY29uY2F0KCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIHN0cmluZyBjb25jYXQoc3RyaW5nLCBzdHJpbmcsIHN0cmluZyopCisgKiBUaGUgY29uY2F0IGZ1bmN0aW9uIHJldHVybnMgdGhlIGNvbmNhdGVuYXRpb24gb2YgaXRzIGFyZ3VtZW50cy4KKyAqLwordm9pZAoreG1sWFBhdGhDb25jYXRGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgY3VyLCBuZXdvYmo7CisgICAgeG1sQ2hhciAqdG1wOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChuYXJncyA8IDIpIHsKKwlDSEVDS19BUklUWSgyKTsKKyAgICB9CisKKyAgICBDQVNUX1RPX1NUUklORzsKKyAgICBjdXIgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAoY3VyLT50eXBlICE9IFhQQVRIX1NUUklORykpIHsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgY3VyKTsKKwlyZXR1cm47CisgICAgfQorICAgIG5hcmdzLS07CisKKyAgICB3aGlsZSAobmFyZ3MgPiAwKSB7CisJQ0FTVF9UT19TVFJJTkc7CisJbmV3b2JqID0gdmFsdWVQb3AoY3R4dCk7CisJaWYgKChuZXdvYmogPT0gTlVMTCkgfHwgKG5ld29iai0+dHlwZSAhPSBYUEFUSF9TVFJJTkcpKSB7CisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBuZXdvYmopOworCSAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgY3VyKTsKKwkgICAgWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9UWVBFKTsKKwl9CisJdG1wID0geG1sU3RyY2F0KG5ld29iai0+c3RyaW5ndmFsLCBjdXItPnN0cmluZ3ZhbCk7CisJbmV3b2JqLT5zdHJpbmd2YWwgPSBjdXItPnN0cmluZ3ZhbDsKKwljdXItPnN0cmluZ3ZhbCA9IHRtcDsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgbmV3b2JqKTsKKwluYXJncy0tOworICAgIH0KKyAgICB2YWx1ZVB1c2goY3R4dCwgY3VyKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIGNvbnRhaW5zKCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIGJvb2xlYW4gY29udGFpbnMoc3RyaW5nLCBzdHJpbmcpCisgKiBUaGUgY29udGFpbnMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcKKyAqIGNvbnRhaW5zIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nLCBhbmQgb3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuCisgKi8KK3ZvaWQKK3htbFhQYXRoQ29udGFpbnNGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgaGF5LCBuZWVkbGU7CisKKyAgICBDSEVDS19BUklUWSgyKTsKKyAgICBDQVNUX1RPX1NUUklORzsKKyAgICBDSEVDS19UWVBFKFhQQVRIX1NUUklORyk7CisgICAgbmVlZGxlID0gdmFsdWVQb3AoY3R4dCk7CisgICAgQ0FTVF9UT19TVFJJTkc7CisgICAgaGF5ID0gdmFsdWVQb3AoY3R4dCk7CisKKyAgICBpZiAoKGhheSA9PSBOVUxMKSB8fCAoaGF5LT50eXBlICE9IFhQQVRIX1NUUklORykpIHsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgaGF5KTsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgbmVlZGxlKTsKKwlYUF9FUlJPUihYUEFUSF9JTlZBTElEX1RZUEUpOworICAgIH0KKyAgICBpZiAoeG1sU3Ryc3RyKGhheS0+c3RyaW5ndmFsLCBuZWVkbGUtPnN0cmluZ3ZhbCkpCisJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdCb29sZWFuKGN0eHQtPmNvbnRleHQsIDEpKTsKKyAgICBlbHNlCisJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdCb29sZWFuKGN0eHQtPmNvbnRleHQsIDApKTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgaGF5KTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgbmVlZGxlKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFN0YXJ0c1dpdGhGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgc3RhcnRzLXdpdGgoKSBYUGF0aCBmdW5jdGlvbgorICogICAgYm9vbGVhbiBzdGFydHMtd2l0aChzdHJpbmcsIHN0cmluZykKKyAqIFRoZSBzdGFydHMtd2l0aCBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZworICogc3RhcnRzIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcsIGFuZCBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS4KKyAqLwordm9pZAoreG1sWFBhdGhTdGFydHNXaXRoRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGhheSwgbmVlZGxlOworICAgIGludCBuOworCisgICAgQ0hFQ0tfQVJJVFkoMik7CisgICAgQ0FTVF9UT19TVFJJTkc7CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9TVFJJTkcpOworICAgIG5lZWRsZSA9IHZhbHVlUG9wKGN0eHQpOworICAgIENBU1RfVE9fU1RSSU5HOworICAgIGhheSA9IHZhbHVlUG9wKGN0eHQpOworCisgICAgaWYgKChoYXkgPT0gTlVMTCkgfHwgKGhheS0+dHlwZSAhPSBYUEFUSF9TVFJJTkcpKSB7CisJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGhheSk7CisJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIG5lZWRsZSk7CisJWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9UWVBFKTsKKyAgICB9CisgICAgbiA9IHhtbFN0cmxlbihuZWVkbGUtPnN0cmluZ3ZhbCk7CisgICAgaWYgKHhtbFN0cm5jbXAoaGF5LT5zdHJpbmd2YWwsIG5lZWRsZS0+c3RyaW5ndmFsLCBuKSkKKyAgICAgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdCb29sZWFuKGN0eHQtPmNvbnRleHQsIDApKTsKKyAgICBlbHNlCisgICAgICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Qm9vbGVhbihjdHh0LT5jb250ZXh0LCAxKSk7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGhheSk7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIG5lZWRsZSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhTdWJzdHJpbmdGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgc3Vic3RyaW5nKCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIHN0cmluZyBzdWJzdHJpbmcoc3RyaW5nLCBudW1iZXIsIG51bWJlcj8pCisgKiBUaGUgc3Vic3RyaW5nIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1YnN0cmluZyBvZiB0aGUgZmlyc3QgYXJndW1lbnQKKyAqIHN0YXJ0aW5nIGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgaW4gdGhlIHNlY29uZCBhcmd1bWVudCB3aXRoCisgKiBsZW5ndGggc3BlY2lmaWVkIGluIHRoZSB0aGlyZCBhcmd1bWVudC4gRm9yIGV4YW1wbGUsCisgKiBzdWJzdHJpbmcoIjEyMzQ1IiwyLDMpIHJldHVybnMgIjIzNCIuIElmIHRoZSB0aGlyZCBhcmd1bWVudCBpcyBub3QKKyAqIHNwZWNpZmllZCwgaXQgcmV0dXJucyB0aGUgc3Vic3RyaW5nIHN0YXJ0aW5nIGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQKKyAqIGluIHRoZSBzZWNvbmQgYXJndW1lbnQgYW5kIGNvbnRpbnVpbmcgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLiBGb3IKKyAqIGV4YW1wbGUsIHN1YnN0cmluZygiMTIzNDUiLDIpIHJldHVybnMgIjIzNDUiLiAgTW9yZSBwcmVjaXNlbHksIGVhY2gKKyAqIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIChzZWUgWzMuNiBTdHJpbmdzXSkgaXMgY29uc2lkZXJlZCB0byBoYXZlIGEKKyAqIG51bWVyaWMgcG9zaXRpb246IHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIDEsIHRoZSBwb3NpdGlvbgorICogb2YgdGhlIHNlY29uZCBjaGFyYWN0ZXIgaXMgMiBhbmQgc28gb24uIFRoZSByZXR1cm5lZCBzdWJzdHJpbmcgY29udGFpbnMKKyAqIHRob3NlIGNoYXJhY3RlcnMgZm9yIHdoaWNoIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGlzIGdyZWF0ZXIgdGhhbgorICogb3IgZXF1YWwgdG8gdGhlIHNlY29uZCBhcmd1bWVudCBhbmQsIGlmIHRoZSB0aGlyZCBhcmd1bWVudCBpcyBzcGVjaWZpZWQsCisgKiBsZXNzIHRoYW4gdGhlIHN1bSBvZiB0aGUgc2Vjb25kIGFuZCB0aGlyZCBhcmd1bWVudHM7IHRoZSBjb21wYXJpc29ucworICogYW5kIGFkZGl0aW9uIHVzZWQgZm9yIHRoZSBhYm92ZSBmb2xsb3cgdGhlIHN0YW5kYXJkIElFRUUgNzU0IHJ1bGVzLiBUaHVzOgorICogIC0gc3Vic3RyaW5nKCIxMjM0NSIsIDEuNSwgMi42KSByZXR1cm5zICIyMzQiCisgKiAgLSBzdWJzdHJpbmcoIjEyMzQ1IiwgMCwgMykgcmV0dXJucyAiMTIiCisgKiAgLSBzdWJzdHJpbmcoIjEyMzQ1IiwgMCBkaXYgMCwgMykgcmV0dXJucyAiIgorICogIC0gc3Vic3RyaW5nKCIxMjM0NSIsIDEsIDAgZGl2IDApIHJldHVybnMgIiIKKyAqICAtIHN1YnN0cmluZygiMTIzNDUiLCAtNDIsIDEgZGl2IDApIHJldHVybnMgIjEyMzQ1IgorICogIC0gc3Vic3RyaW5nKCIxMjM0NSIsIC0xIGRpdiAwLCAxIGRpdiAwKSByZXR1cm5zICIiCisgKi8KK3ZvaWQKK3htbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHN0ciwgc3RhcnQsIGxlbjsKKyAgICBkb3VibGUgbGU9MCwgaW47CisgICAgaW50IGksIGwsIG07CisgICAgeG1sQ2hhciAqcmV0OworCisgICAgaWYgKG5hcmdzIDwgMikgeworCUNIRUNLX0FSSVRZKDIpOworICAgIH0KKyAgICBpZiAobmFyZ3MgPiAzKSB7CisJQ0hFQ0tfQVJJVFkoMyk7CisgICAgfQorICAgIC8qCisgICAgICogdGFrZSBjYXJlIG9mIHBvc3NpYmxlIGxhc3QgKHBvc2l0aW9uKSBhcmd1bWVudAorICAgICovCisgICAgaWYgKG5hcmdzID09IDMpIHsKKwlDQVNUX1RPX05VTUJFUjsKKwlDSEVDS19UWVBFKFhQQVRIX05VTUJFUik7CisJbGVuID0gdmFsdWVQb3AoY3R4dCk7CisJbGUgPSBsZW4tPmZsb2F0dmFsOworCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBsZW4pOworICAgIH0KKworICAgIENBU1RfVE9fTlVNQkVSOworICAgIENIRUNLX1RZUEUoWFBBVEhfTlVNQkVSKTsKKyAgICBzdGFydCA9IHZhbHVlUG9wKGN0eHQpOworICAgIGluID0gc3RhcnQtPmZsb2F0dmFsOworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBzdGFydCk7CisgICAgQ0FTVF9UT19TVFJJTkc7CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9TVFJJTkcpOworICAgIHN0ciA9IHZhbHVlUG9wKGN0eHQpOworICAgIG0gPSB4bWxVVEY4U3RybGVuKChjb25zdCB1bnNpZ25lZCBjaGFyICopc3RyLT5zdHJpbmd2YWwpOworCisgICAgLyoKKyAgICAgKiBJZiBsYXN0IHBvcyBub3QgcHJlc2VudCwgY2FsY3VsYXRlIGxhc3QgcG9zaXRpb24KKyAgICAqLworICAgIGlmIChuYXJncyAhPSAzKSB7CisJbGUgPSAoZG91YmxlKW07CisJaWYgKGluIDwgMS4wKQorCSAgICBpbiA9IDEuMDsKKyAgICB9CisKKyAgICAvKiBOZWVkIHRvIGNoZWNrIGZvciB0aGUgc3BlY2lhbCBjYXNlcyB3aGVyZSBlaXRoZXIKKyAgICAgKiB0aGUgaW5kZXggaXMgTmFOLCB0aGUgbGVuZ3RoIGlzIE5hTiwgb3IgYm90aAorICAgICAqIGFyZ3VtZW50cyBhcmUgaW5maW5pdHkgKHJlbHlpbmcgb24gSW5mICsgLUluZiA9IE5hTikKKyAgICAgKi8KKyAgICBpZiAoIXhtbFhQYXRoSXNJbmYoaW4pICYmICF4bWxYUGF0aElzTmFOKGluICsgbGUpKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1lZXQgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgc3BlYywgdGhlIGFyZ3VtZW50cworCSAqIG11c3QgYmUgY29udmVydGVkIHRvIGludGVnZXIgZm9ybWF0IGJlZm9yZQorCSAqIGluaXRpYWwgaW5kZXggY2FsY3VsYXRpb25zIGFyZSBkb25lCisgICAgICAgICAqCisgICAgICAgICAqIEZpcnN0IHdlIGdvIHRvIGludGVnZXIgZm9ybSwgcm91bmRpbmcgdXAKKwkgKiBhbmQgY2hlY2tpbmcgZm9yIHNwZWNpYWwgY2FzZXMKKyAgICAgICAgICovCisgICAgICAgIGkgPSAoaW50KSBpbjsKKyAgICAgICAgaWYgKCgoZG91YmxlKWkpKzAuNSA8PSBpbikgaSsrOworCisJaWYgKHhtbFhQYXRoSXNJbmYobGUpID09IDEpIHsKKwkgICAgbCA9IG07CisJICAgIGlmIChpIDwgMSkKKwkJaSA9IDE7CisJfQorCWVsc2UgaWYgKHhtbFhQYXRoSXNJbmYobGUpID09IC0xIHx8IGxlIDwgMC4wKQorCSAgICBsID0gMDsKKwllbHNlIHsKKwkgICAgbCA9IChpbnQpIGxlOworCSAgICBpZiAoKChkb3VibGUpbCkrMC41IDw9IGxlKSBsKys7CisJfQorCisJLyogTm93IHdlIG5vcm1hbGl6ZSBpbmlkaWNlcyAqLworICAgICAgICBpIC09IDE7CisgICAgICAgIGwgKz0gaTsKKyAgICAgICAgaWYgKGkgPCAwKQorICAgICAgICAgICAgaSA9IDA7CisgICAgICAgIGlmIChsID4gbSkKKyAgICAgICAgICAgIGwgPSBtOworCisgICAgICAgIC8qIG51bWJlciBvZiBjaGFycyB0byBjb3B5ICovCisgICAgICAgIGwgLT0gaTsKKworICAgICAgICByZXQgPSB4bWxVVEY4U3Ryc3ViKHN0ci0+c3RyaW5ndmFsLCBpLCBsKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldCA9IE5VTEw7CisgICAgfQorICAgIGlmIChyZXQgPT0gTlVMTCkKKwl2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld0NTdHJpbmcoY3R4dC0+Y29udGV4dCwgIiIpKTsKKyAgICBlbHNlIHsKKwl2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld1N0cmluZyhjdHh0LT5jb250ZXh0LCByZXQpKTsKKwl4bWxGcmVlKHJldCk7CisgICAgfQorICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBzdHIpOworfQorCisvKioKKyAqIHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIHN1YnN0cmluZy1iZWZvcmUoKSBYUGF0aCBmdW5jdGlvbgorICogICAgc3RyaW5nIHN1YnN0cmluZy1iZWZvcmUoc3RyaW5nLCBzdHJpbmcpCisgKiBUaGUgc3Vic3RyaW5nLWJlZm9yZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdWJzdHJpbmcgb2YgdGhlIGZpcnN0CisgKiBhcmd1bWVudCBzdHJpbmcgdGhhdCBwcmVjZWRlcyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc2Vjb25kCisgKiBhcmd1bWVudCBzdHJpbmcgaW4gdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZywgb3IgdGhlIGVtcHR5IHN0cmluZworICogaWYgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyBkb2VzIG5vdCBjb250YWluIHRoZSBzZWNvbmQgYXJndW1lbnQKKyAqIHN0cmluZy4gRm9yIGV4YW1wbGUsIHN1YnN0cmluZy1iZWZvcmUoIjE5OTkvMDQvMDEiLCIvIikgcmV0dXJucyAxOTk5LgorICovCit2b2lkCit4bWxYUGF0aFN1YnN0cmluZ0JlZm9yZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgeG1sWFBhdGhPYmplY3RQdHIgc3RyOworICB4bWxYUGF0aE9iamVjdFB0ciBmaW5kOworICB4bWxCdWZmZXJQdHIgdGFyZ2V0OworICBjb25zdCB4bWxDaGFyICpwb2ludDsKKyAgaW50IG9mZnNldDsKKworICBDSEVDS19BUklUWSgyKTsKKyAgQ0FTVF9UT19TVFJJTkc7CisgIGZpbmQgPSB2YWx1ZVBvcChjdHh0KTsKKyAgQ0FTVF9UT19TVFJJTkc7CisgIHN0ciA9IHZhbHVlUG9wKGN0eHQpOworCisgIHRhcmdldCA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICBpZiAodGFyZ2V0KSB7CisgICAgcG9pbnQgPSB4bWxTdHJzdHIoc3RyLT5zdHJpbmd2YWwsIGZpbmQtPnN0cmluZ3ZhbCk7CisgICAgaWYgKHBvaW50KSB7CisgICAgICBvZmZzZXQgPSAoaW50KShwb2ludCAtIHN0ci0+c3RyaW5ndmFsKTsKKyAgICAgIHhtbEJ1ZmZlckFkZCh0YXJnZXQsIHN0ci0+c3RyaW5ndmFsLCBvZmZzZXQpOworICAgIH0KKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld1N0cmluZyhjdHh0LT5jb250ZXh0LAorCXhtbEJ1ZmZlckNvbnRlbnQodGFyZ2V0KSkpOworICAgIHhtbEJ1ZmZlckZyZWUodGFyZ2V0KTsKKyAgfQorICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgc3RyKTsKKyAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGZpbmQpOworfQorCisvKioKKyAqIHhtbFhQYXRoU3Vic3RyaW5nQWZ0ZXJGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgc3Vic3RyaW5nLWFmdGVyKCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIHN0cmluZyBzdWJzdHJpbmctYWZ0ZXIoc3RyaW5nLCBzdHJpbmcpCisgKiBUaGUgc3Vic3RyaW5nLWFmdGVyIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1YnN0cmluZyBvZiB0aGUgZmlyc3QKKyAqIGFyZ3VtZW50IHN0cmluZyB0aGF0IGZvbGxvd3MgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIHNlY29uZAorICogYXJndW1lbnQgc3RyaW5nIGluIHRoZSBmaXJzdCBhcmd1bWVudCBzdHJpbmcsIG9yIHRoZSBlbXB0eSBzdHJpbmdpCisgKiBpZiB0aGUgZmlyc3QgYXJndW1lbnQgc3RyaW5nIGRvZXMgbm90IGNvbnRhaW4gdGhlIHNlY29uZCBhcmd1bWVudAorICogc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3Vic3RyaW5nLWFmdGVyKCIxOTk5LzA0LzAxIiwiLyIpIHJldHVybnMgMDQvMDEsCisgKiBhbmQgc3Vic3RyaW5nLWFmdGVyKCIxOTk5LzA0LzAxIiwiMTkiKSByZXR1cm5zIDk5LzA0LzAxLgorICovCit2b2lkCit4bWxYUGF0aFN1YnN0cmluZ0FmdGVyRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICB4bWxYUGF0aE9iamVjdFB0ciBzdHI7CisgIHhtbFhQYXRoT2JqZWN0UHRyIGZpbmQ7CisgIHhtbEJ1ZmZlclB0ciB0YXJnZXQ7CisgIGNvbnN0IHhtbENoYXIgKnBvaW50OworICBpbnQgb2Zmc2V0OworCisgIENIRUNLX0FSSVRZKDIpOworICBDQVNUX1RPX1NUUklORzsKKyAgZmluZCA9IHZhbHVlUG9wKGN0eHQpOworICBDQVNUX1RPX1NUUklORzsKKyAgc3RyID0gdmFsdWVQb3AoY3R4dCk7CisKKyAgdGFyZ2V0ID0geG1sQnVmZmVyQ3JlYXRlKCk7CisgIGlmICh0YXJnZXQpIHsKKyAgICBwb2ludCA9IHhtbFN0cnN0cihzdHItPnN0cmluZ3ZhbCwgZmluZC0+c3RyaW5ndmFsKTsKKyAgICBpZiAocG9pbnQpIHsKKyAgICAgIG9mZnNldCA9IChpbnQpKHBvaW50IC0gc3RyLT5zdHJpbmd2YWwpICsgeG1sU3RybGVuKGZpbmQtPnN0cmluZ3ZhbCk7CisgICAgICB4bWxCdWZmZXJBZGQodGFyZ2V0LCAmc3RyLT5zdHJpbmd2YWxbb2Zmc2V0XSwKKwkJICAgeG1sU3RybGVuKHN0ci0+c3RyaW5ndmFsKSAtIG9mZnNldCk7CisgICAgfQorICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3U3RyaW5nKGN0eHQtPmNvbnRleHQsCisJeG1sQnVmZmVyQ29udGVudCh0YXJnZXQpKSk7CisgICAgeG1sQnVmZmVyRnJlZSh0YXJnZXQpOworICB9CisgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBzdHIpOworICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgZmluZCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb3JtYWxpemVGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgbm9ybWFsaXplLXNwYWNlKCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIHN0cmluZyBub3JtYWxpemUtc3BhY2Uoc3RyaW5nPykKKyAqIFRoZSBub3JtYWxpemUtc3BhY2UgZnVuY3Rpb24gcmV0dXJucyB0aGUgYXJndW1lbnQgc3RyaW5nIHdpdGggd2hpdGUKKyAqIHNwYWNlIG5vcm1hbGl6ZWQgYnkgc3RyaXBwaW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UKKyAqIGFuZCByZXBsYWNpbmcgc2VxdWVuY2VzIG9mIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBieSBhIHNpbmdsZQorICogc3BhY2UuIFdoaXRlc3BhY2UgY2hhcmFjdGVycyBhcmUgdGhlIHNhbWUgYWxsb3dlZCBieSB0aGUgUyBwcm9kdWN0aW9uCisgKiBpbiBYTUwuIElmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB0aGUgY29udGV4dAorICogbm9kZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcsIGluIG90aGVyIHdvcmRzIHRoZSB2YWx1ZSBvZiB0aGUgY29udGV4dCBub2RlLgorICovCit2b2lkCit4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgeG1sWFBhdGhPYmplY3RQdHIgb2JqID0gTlVMTDsKKyAgeG1sQ2hhciAqc291cmNlID0gTlVMTDsKKyAgeG1sQnVmZmVyUHRyIHRhcmdldDsKKyAgeG1sQ2hhciBibGFuazsKKworICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm47CisgIGlmIChuYXJncyA9PSAwKSB7CisgICAgLyogVXNlIGN1cnJlbnQgY29udGV4dCBub2RlICovCisgICAgICB2YWx1ZVB1c2goY3R4dCwKKwkgIHhtbFhQYXRoQ2FjaGVXcmFwU3RyaW5nKGN0eHQtPmNvbnRleHQsCisJICAgIHhtbFhQYXRoQ2FzdE5vZGVUb1N0cmluZyhjdHh0LT5jb250ZXh0LT5ub2RlKSkpOworICAgIG5hcmdzID0gMTsKKyAgfQorCisgIENIRUNLX0FSSVRZKDEpOworICBDQVNUX1RPX1NUUklORzsKKyAgQ0hFQ0tfVFlQRShYUEFUSF9TVFJJTkcpOworICBvYmogPSB2YWx1ZVBvcChjdHh0KTsKKyAgc291cmNlID0gb2JqLT5zdHJpbmd2YWw7CisKKyAgdGFyZ2V0ID0geG1sQnVmZmVyQ3JlYXRlKCk7CisgIGlmICh0YXJnZXQgJiYgc291cmNlKSB7CisKKyAgICAvKiBTa2lwIGxlYWRpbmcgd2hpdGVzcGFjZXMgKi8KKyAgICB3aGlsZSAoSVNfQkxBTktfQ0goKnNvdXJjZSkpCisgICAgICBzb3VyY2UrKzsKKworICAgIC8qIENvbGxhcHNlIGludGVybWVkaWF0ZSB3aGl0ZXNwYWNlcywgYW5kIHNraXAgdHJhaWxpbmcgd2hpdGVzcGFjZXMgKi8KKyAgICBibGFuayA9IDA7CisgICAgd2hpbGUgKCpzb3VyY2UpIHsKKyAgICAgIGlmIChJU19CTEFOS19DSCgqc291cmNlKSkgeworCWJsYW5rID0gMHgyMDsKKyAgICAgIH0gZWxzZSB7CisJaWYgKGJsYW5rKSB7CisJICB4bWxCdWZmZXJBZGQodGFyZ2V0LCAmYmxhbmssIDEpOworCSAgYmxhbmsgPSAwOworCX0KKwl4bWxCdWZmZXJBZGQodGFyZ2V0LCBzb3VyY2UsIDEpOworICAgICAgfQorICAgICAgc291cmNlKys7CisgICAgfQorICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3U3RyaW5nKGN0eHQtPmNvbnRleHQsCisJeG1sQnVmZmVyQ29udGVudCh0YXJnZXQpKSk7CisgICAgeG1sQnVmZmVyRnJlZSh0YXJnZXQpOworICB9CisgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBvYmopOworfQorCisvKioKKyAqIHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIHRyYW5zbGF0ZSgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBzdHJpbmcgdHJhbnNsYXRlKHN0cmluZywgc3RyaW5nLCBzdHJpbmcpCisgKiBUaGUgdHJhbnNsYXRlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGZpcnN0IGFyZ3VtZW50IHN0cmluZyB3aXRoCisgKiBvY2N1cnJlbmNlcyBvZiBjaGFyYWN0ZXJzIGluIHRoZSBzZWNvbmQgYXJndW1lbnQgc3RyaW5nIHJlcGxhY2VkCisgKiBieSB0aGUgY2hhcmFjdGVyIGF0IHRoZSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZSB0aGlyZCBhcmd1bWVudAorICogc3RyaW5nLiBGb3IgZXhhbXBsZSwgdHJhbnNsYXRlKCJiYXIiLCJhYmMiLCJBQkMiKSByZXR1cm5zIHRoZSBzdHJpbmcKKyAqIEJBci4gSWYgdGhlcmUgaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIHNlY29uZCBhcmd1bWVudCBzdHJpbmcgd2l0aCBubworICogY2hhcmFjdGVyIGF0IGEgY29ycmVzcG9uZGluZyBwb3NpdGlvbiBpbiB0aGUgdGhpcmQgYXJndW1lbnQgc3RyaW5nCisgKiAoYmVjYXVzZSB0aGUgc2Vjb25kIGFyZ3VtZW50IHN0cmluZyBpcyBsb25nZXIgdGhhbiB0aGUgdGhpcmQgYXJndW1lbnQKKyAqIHN0cmluZyksIHRoZW4gb2NjdXJyZW5jZXMgb2YgdGhhdCBjaGFyYWN0ZXIgaW4gdGhlIGZpcnN0IGFyZ3VtZW50CisgKiBzdHJpbmcgYXJlIHJlbW92ZWQuIEZvciBleGFtcGxlLCB0cmFuc2xhdGUoIi0tYWFhLS0iLCJhYmMtIiwiQUJDIikKKyAqIHJldHVybnMgIkFBQSIuIElmIGEgY2hhcmFjdGVyIG9jY3VycyBtb3JlIHRoYW4gb25jZSBpbiBzZWNvbmQKKyAqIGFyZ3VtZW50IHN0cmluZywgdGhlbiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBkZXRlcm1pbmVzIHRoZSByZXBsYWNlbWVudAorICogY2hhcmFjdGVyLiBJZiB0aGUgdGhpcmQgYXJndW1lbnQgc3RyaW5nIGlzIGxvbmdlciB0aGFuIHRoZSBzZWNvbmQKKyAqIGFyZ3VtZW50IHN0cmluZywgdGhlbiBleGNlc3MgY2hhcmFjdGVycyBhcmUgaWdub3JlZC4KKyAqLwordm9pZAoreG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgc3RyOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGZyb207CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdG87CisgICAgeG1sQnVmZmVyUHRyIHRhcmdldDsKKyAgICBpbnQgb2Zmc2V0LCBtYXg7CisgICAgeG1sQ2hhciBjaDsKKyAgICBjb25zdCB4bWxDaGFyICpwb2ludDsKKyAgICB4bWxDaGFyICpjcHRyOworCisgICAgQ0hFQ0tfQVJJVFkoMyk7CisKKyAgICBDQVNUX1RPX1NUUklORzsKKyAgICB0byA9IHZhbHVlUG9wKGN0eHQpOworICAgIENBU1RfVE9fU1RSSU5HOworICAgIGZyb20gPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBDQVNUX1RPX1NUUklORzsKKyAgICBzdHIgPSB2YWx1ZVBvcChjdHh0KTsKKworICAgIHRhcmdldCA9IHhtbEJ1ZmZlckNyZWF0ZSgpOworICAgIGlmICh0YXJnZXQpIHsKKwltYXggPSB4bWxVVEY4U3RybGVuKHRvLT5zdHJpbmd2YWwpOworCWZvciAoY3B0ciA9IHN0ci0+c3RyaW5ndmFsOyAoY2g9KmNwdHIpOyApIHsKKwkgICAgb2Zmc2V0ID0geG1sVVRGOFN0cmxvYyhmcm9tLT5zdHJpbmd2YWwsIGNwdHIpOworCSAgICBpZiAob2Zmc2V0ID49IDApIHsKKwkJaWYgKG9mZnNldCA8IG1heCkgeworCQkgICAgcG9pbnQgPSB4bWxVVEY4U3RycG9zKHRvLT5zdHJpbmd2YWwsIG9mZnNldCk7CisJCSAgICBpZiAocG9pbnQpCisJCQl4bWxCdWZmZXJBZGQodGFyZ2V0LCBwb2ludCwgeG1sVVRGOFN0cnNpemUocG9pbnQsIDEpKTsKKwkJfQorCSAgICB9IGVsc2UKKwkJeG1sQnVmZmVyQWRkKHRhcmdldCwgY3B0ciwgeG1sVVRGOFN0cnNpemUoY3B0ciwgMSkpOworCisJICAgIC8qIFN0ZXAgdG8gbmV4dCBjaGFyYWN0ZXIgaW4gaW5wdXQgKi8KKwkgICAgY3B0cisrOworCSAgICBpZiAoIGNoICYgMHg4MCApIHsKKwkJLyogaWYgbm90IHNpbXBsZSBhc2NpaSwgdmVyaWZ5IHByb3BlciBmb3JtYXQgKi8KKwkJaWYgKCAoY2ggJiAweGMwKSAhPSAweGMwICkgeworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkieG1sWFBhdGhUcmFuc2xhdGVGdW5jdGlvbjogSW52YWxpZCBVVEY4IHN0cmluZ1xuIik7CisJCSAgICBicmVhazsKKwkJfQorCQkvKiB0aGVuIHNraXAgb3ZlciByZW1haW5pbmcgYnl0ZXMgZm9yIHRoaXMgY2hhciAqLworCQl3aGlsZSAoIChjaCA8PD0gMSkgJiAweDgwICkKKwkJICAgIGlmICggKCpjcHRyKysgJiAweGMwKSAhPSAweDgwICkgeworCQkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgInhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb246IEludmFsaWQgVVRGOCBzdHJpbmdcbiIpOworCQkJYnJlYWs7CisJCSAgICB9CisJCWlmIChjaCAmIDB4ODApIC8qIG11c3QgaGF2ZSBoYWQgZXJyb3IgZW5jb3VudGVyZWQgKi8KKwkJICAgIGJyZWFrOworCSAgICB9CisJfQorICAgIH0KKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld1N0cmluZyhjdHh0LT5jb250ZXh0LAorCXhtbEJ1ZmZlckNvbnRlbnQodGFyZ2V0KSkpOworICAgIHhtbEJ1ZmZlckZyZWUodGFyZ2V0KTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgc3RyKTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgZnJvbSk7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHRvKTsKK30KKworLyoqCisgKiB4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgYm9vbGVhbigpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBib29sZWFuIGJvb2xlYW4ob2JqZWN0KQorICogVGhlIGJvb2xlYW4gZnVuY3Rpb24gY29udmVydHMgaXRzIGFyZ3VtZW50IHRvIGEgYm9vbGVhbiBhcyBmb2xsb3dzOgorICogICAgLSBhIG51bWJlciBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmIGl0IGlzIG5laXRoZXIgcG9zaXRpdmUgb3IKKyAqICAgICAgbmVnYXRpdmUgemVybyBub3IgTmFOCisgKiAgICAtIGEgbm9kZS1zZXQgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiBpdCBpcyBub24tZW1wdHkKKyAqICAgIC0gYSBzdHJpbmcgaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiBpdHMgbGVuZ3RoIGlzIG5vbi16ZXJvCisgKi8KK3ZvaWQKK3htbFhQYXRoQm9vbGVhbkZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBjdXI7CisKKyAgICBDSEVDS19BUklUWSgxKTsKKyAgICBjdXIgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBpZiAoY3VyID09IE5VTEwpIFhQX0VSUk9SKFhQQVRIX0lOVkFMSURfT1BFUkFORCk7CisgICAgY3VyID0geG1sWFBhdGhDYWNoZUNvbnZlcnRCb29sZWFuKGN0eHQtPmNvbnRleHQsIGN1cik7CisgICAgdmFsdWVQdXNoKGN0eHQsIGN1cik7Cit9CisKKy8qKgorICogeG1sWFBhdGhOb3RGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgbm90KCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIGJvb2xlYW4gbm90KGJvb2xlYW4pCisgKiBUaGUgbm90IGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBpZiBpdHMgYXJndW1lbnQgaXMgZmFsc2UsCisgKiBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgorICovCit2b2lkCit4bWxYUGF0aE5vdEZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICBDSEVDS19BUklUWSgxKTsKKyAgICBDQVNUX1RPX0JPT0xFQU47CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9CT09MRUFOKTsKKyAgICBjdHh0LT52YWx1ZS0+Ym9vbHZhbCA9ICEgY3R4dC0+dmFsdWUtPmJvb2x2YWw7Cit9CisKKy8qKgorICogeG1sWFBhdGhUcnVlRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIHRydWUoKSBYUGF0aCBmdW5jdGlvbgorICogICAgYm9vbGVhbiB0cnVlKCkKKyAqLwordm9pZAoreG1sWFBhdGhUcnVlRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIENIRUNLX0FSSVRZKDApOworICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Qm9vbGVhbihjdHh0LT5jb250ZXh0LCAxKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhGYWxzZUZ1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBmYWxzZSgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBib29sZWFuIGZhbHNlKCkKKyAqLwordm9pZAoreG1sWFBhdGhGYWxzZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICBDSEVDS19BUklUWSgwKTsKKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld0Jvb2xlYW4oY3R4dC0+Y29udGV4dCwgMCkpOworfQorCisvKioKKyAqIHhtbFhQYXRoTGFuZ0Z1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBsYW5nKCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIGJvb2xlYW4gbGFuZyhzdHJpbmcpCisgKiBUaGUgbGFuZyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCisgKiBsYW5ndWFnZSBvZiB0aGUgY29udGV4dCBub2RlIGFzIHNwZWNpZmllZCBieSB4bWw6bGFuZyBhdHRyaWJ1dGVzCisgKiBpcyB0aGUgc2FtZSBhcyBvciBpcyBhIHN1Ymxhbmd1YWdlIG9mIHRoZSBsYW5ndWFnZSBzcGVjaWZpZWQgYnkKKyAqIHRoZSBhcmd1bWVudCBzdHJpbmcuIFRoZSBsYW5ndWFnZSBvZiB0aGUgY29udGV4dCBub2RlIGlzIGRldGVybWluZWQKKyAqIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgeG1sOmxhbmcgYXR0cmlidXRlIG9uIHRoZSBjb250ZXh0IG5vZGUsIG9yLCBpZgorICogdGhlIGNvbnRleHQgbm9kZSBoYXMgbm8geG1sOmxhbmcgYXR0cmlidXRlLCBieSB0aGUgdmFsdWUgb2YgdGhlCisgKiB4bWw6bGFuZyBhdHRyaWJ1dGUgb24gdGhlIG5lYXJlc3QgYW5jZXN0b3Igb2YgdGhlIGNvbnRleHQgbm9kZSB0aGF0CisgKiBoYXMgYW4geG1sOmxhbmcgYXR0cmlidXRlLiBJZiB0aGVyZSBpcyBubyBzdWNoIGF0dHJpYnV0ZSwgdGhlbiBsYW5nCisgKiByZXR1cm5zIGZhbHNlLiBJZiB0aGVyZSBpcyBzdWNoIGFuIGF0dHJpYnV0ZSwgdGhlbiBsYW5nIHJldHVybnMKKyAqIHRydWUgaWYgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgYXJndW1lbnQgaWdub3JpbmcgY2FzZSwKKyAqIG9yIGlmIHRoZXJlIGlzIHNvbWUgc3VmZml4IHN0YXJ0aW5nIHdpdGggLSBzdWNoIHRoYXQgdGhlIGF0dHJpYnV0ZQorICogdmFsdWUgaXMgZXF1YWwgdG8gdGhlIGFyZ3VtZW50IGlnbm9yaW5nIHRoYXQgc3VmZml4IG9mIHRoZSBhdHRyaWJ1dGUKKyAqIHZhbHVlIGFuZCBpZ25vcmluZyBjYXNlLgorICovCit2b2lkCit4bWxYUGF0aExhbmdGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdmFsID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICp0aGVMYW5nID0gTlVMTDsKKyAgICBjb25zdCB4bWxDaGFyICpsYW5nOworICAgIGludCByZXQgPSAwOworICAgIGludCBpOworCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgQ0FTVF9UT19TVFJJTkc7CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9TVFJJTkcpOworICAgIHZhbCA9IHZhbHVlUG9wKGN0eHQpOworICAgIGxhbmcgPSB2YWwtPnN0cmluZ3ZhbDsKKyAgICB0aGVMYW5nID0geG1sTm9kZUdldExhbmcoY3R4dC0+Y29udGV4dC0+bm9kZSk7CisgICAgaWYgKCh0aGVMYW5nICE9IE5VTEwpICYmIChsYW5nICE9IE5VTEwpKSB7CisgICAgICAgIGZvciAoaSA9IDA7bGFuZ1tpXSAhPSAwO2krKykKKwkgICAgaWYgKHRvdXBwZXIobGFuZ1tpXSkgIT0gdG91cHBlcih0aGVMYW5nW2ldKSkKKwkgICAgICAgIGdvdG8gbm90X2VxdWFsOworCWlmICgodGhlTGFuZ1tpXSA9PSAwKSB8fCAodGhlTGFuZ1tpXSA9PSAnLScpKQorCSAgICByZXQgPSAxOworICAgIH0KK25vdF9lcXVhbDoKKyAgICBpZiAodGhlTGFuZyAhPSBOVUxMKQorCXhtbEZyZWUoKHZvaWQgKil0aGVMYW5nKTsKKworICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCB2YWwpOworICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Qm9vbGVhbihjdHh0LT5jb250ZXh0LCByZXQpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aE51bWJlckZ1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBudW1iZXIoKSBYUGF0aCBmdW5jdGlvbgorICogICAgbnVtYmVyIG51bWJlcihvYmplY3Q/KQorICovCit2b2lkCit4bWxYUGF0aE51bWJlckZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBjdXI7CisgICAgZG91YmxlIHJlczsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAobmFyZ3MgPT0gMCkgeworCWlmIChjdHh0LT5jb250ZXh0LT5ub2RlID09IE5VTEwpIHsKKwkgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdGbG9hdChjdHh0LT5jb250ZXh0LCAwLjApKTsKKwl9IGVsc2UgeworCSAgICB4bWxDaGFyKiBjb250ZW50ID0geG1sTm9kZUdldENvbnRlbnQoY3R4dC0+Y29udGV4dC0+bm9kZSk7CisKKwkgICAgcmVzID0geG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyKGNvbnRlbnQpOworCSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld0Zsb2F0KGN0eHQtPmNvbnRleHQsIHJlcykpOworCSAgICB4bWxGcmVlKGNvbnRlbnQpOworCX0KKwlyZXR1cm47CisgICAgfQorCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgY3VyID0gdmFsdWVQb3AoY3R4dCk7CisgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVDb252ZXJ0TnVtYmVyKGN0eHQtPmNvbnRleHQsIGN1cikpOworfQorCisvKioKKyAqIHhtbFhQYXRoU3VtRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIHN1bSgpIFhQYXRoIGZ1bmN0aW9uCisgKiAgICBudW1iZXIgc3VtKG5vZGUtc2V0KQorICogVGhlIHN1bSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdW0gb2YgdGhlIHZhbHVlcyBvZiB0aGUgbm9kZXMgaW4KKyAqIHRoZSBhcmd1bWVudCBub2RlLXNldC4KKyAqLwordm9pZAoreG1sWFBhdGhTdW1GdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgY3VyOworICAgIGludCBpOworICAgIGRvdWJsZSByZXMgPSAwLjA7CisKKyAgICBDSEVDS19BUklUWSgxKTsKKyAgICBpZiAoKGN0eHQtPnZhbHVlID09IE5VTEwpIHx8CisJKChjdHh0LT52YWx1ZS0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSAmJgorCSAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfWFNMVF9UUkVFKSkpCisJWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9UWVBFKTsKKyAgICBjdXIgPSB2YWx1ZVBvcChjdHh0KTsKKworICAgIGlmICgoY3VyLT5ub2Rlc2V0dmFsICE9IE5VTEwpICYmIChjdXItPm5vZGVzZXR2YWwtPm5vZGVOciAhPSAwKSkgeworCWZvciAoaSA9IDA7IGkgPCBjdXItPm5vZGVzZXR2YWwtPm5vZGVOcjsgaSsrKSB7CisJICAgIHJlcyArPSB4bWxYUGF0aENhc3ROb2RlVG9OdW1iZXIoY3VyLT5ub2Rlc2V0dmFsLT5ub2RlVGFiW2ldKTsKKwl9CisgICAgfQorICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3RmxvYXQoY3R4dC0+Y29udGV4dCwgcmVzKSk7CisgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGN1cik7Cit9CisKKy8qCisgKiBUbyBhc3N1cmUgd29ya2luZyBjb2RlIG9uIG11bHRpcGxlIHBsYXRmb3Jtcywgd2Ugd2FudCB0byBvbmx5IGRlcGVuZAorICogdXBvbiB0aGUgY2hhcmFjdGVyaXN0aWMgdHJ1bmNhdGlvbiBvZiBjb252ZXJ0aW5nIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUKKyAqIHRvIGFuIGludGVnZXIuICBVbmZvcnR1bmF0ZWx5LCBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbnQgc3RvcmFnZSBzaXplcworICogb2Ygb3VyIGludGVybmFsIGZsb2F0aW5nIHBvaW50IHZhbHVlIChkb3VibGUpIGFuZCBpbnRlZ2VyIChpbnQpLCB3ZQorICogY2FuJ3QgZGlyZWN0bHkgY29udmVydCAoc2VlIGJ1ZyAzMDExNjIpLiAgVGhpcyBtYWNybyBpcyBhIG1lc3N5CisgKiAnd29ya2Fyb3VuZCcKKyAqLworI2RlZmluZSBYVFJVTkMoZiwgdikgICAgICAgICAgICBcCisgICAgZiA9IGZtb2QoKHYpLCBJTlRfTUFYKTsgICAgIFwKKyAgICBmID0gKHYpIC0gKGYpICsgKGRvdWJsZSkoKGludCkoZikpOworCisvKioKKyAqIHhtbFhQYXRoRmxvb3JGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgZmxvb3IoKSBYUGF0aCBmdW5jdGlvbgorICogICAgbnVtYmVyIGZsb29yKG51bWJlcikKKyAqIFRoZSBmbG9vciBmdW5jdGlvbiByZXR1cm5zIHRoZSBsYXJnZXN0IChjbG9zZXN0IHRvIHBvc2l0aXZlIGluZmluaXR5KQorICogbnVtYmVyIHRoYXQgaXMgbm90IGdyZWF0ZXIgdGhhbiB0aGUgYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci4KKyAqLwordm9pZAoreG1sWFBhdGhGbG9vckZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICBkb3VibGUgZjsKKworICAgIENIRUNLX0FSSVRZKDEpOworICAgIENBU1RfVE9fTlVNQkVSOworICAgIENIRUNLX1RZUEUoWFBBVEhfTlVNQkVSKTsKKworICAgIFhUUlVOQyhmLCBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwpOworICAgIGlmIChmICE9IGN0eHQtPnZhbHVlLT5mbG9hdHZhbCkgeworCWlmIChjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPiAwKQorCSAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSBmOworCWVsc2UKKwkgICAgY3R4dC0+dmFsdWUtPmZsb2F0dmFsID0gZiAtIDE7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzCisgKgorICogSW1wbGVtZW50IHRoZSBjZWlsaW5nKCkgWFBhdGggZnVuY3Rpb24KKyAqICAgIG51bWJlciBjZWlsaW5nKG51bWJlcikKKyAqIFRoZSBjZWlsaW5nIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNtYWxsZXN0IChjbG9zZXN0IHRvIG5lZ2F0aXZlIGluZmluaXR5KQorICogbnVtYmVyIHRoYXQgaXMgbm90IGxlc3MgdGhhbiB0aGUgYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci4KKyAqLwordm9pZAoreG1sWFBhdGhDZWlsaW5nRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIGRvdWJsZSBmOworCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgQ0FTVF9UT19OVU1CRVI7CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9OVU1CRVIpOworCisjaWYgMAorICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IGNlaWwoY3R4dC0+dmFsdWUtPmZsb2F0dmFsKTsKKyNlbHNlCisgICAgWFRSVU5DKGYsIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCk7CisgICAgaWYgKGYgIT0gY3R4dC0+dmFsdWUtPmZsb2F0dmFsKSB7CisJaWYgKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA+IDApCisJICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IGYgKyAxOworCWVsc2UgeworCSAgICBpZiAoY3R4dC0+dmFsdWUtPmZsb2F0dmFsIDwgMCAmJiBmID09IDApCisJICAgICAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSB4bWxYUGF0aE5aRVJPOworCSAgICBlbHNlCisJICAgICAgICBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPSBmOworCX0KKworICAgIH0KKyNlbmRpZgorfQorCisvKioKKyAqIHhtbFhQYXRoUm91bmRGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cworICoKKyAqIEltcGxlbWVudCB0aGUgcm91bmQoKSBYUGF0aCBmdW5jdGlvbgorICogICAgbnVtYmVyIHJvdW5kKG51bWJlcikKKyAqIFRoZSByb3VuZCBmdW5jdGlvbiByZXR1cm5zIHRoZSBudW1iZXIgdGhhdCBpcyBjbG9zZXN0IHRvIHRoZQorICogYXJndW1lbnQgYW5kIHRoYXQgaXMgYW4gaW50ZWdlci4gSWYgdGhlcmUgYXJlIHR3byBzdWNoIG51bWJlcnMsCisgKiB0aGVuIHRoZSBvbmUgdGhhdCBpcyBldmVuIGlzIHJldHVybmVkLgorICovCit2b2lkCit4bWxYUGF0aFJvdW5kRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIGRvdWJsZSBmOworCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgQ0FTVF9UT19OVU1CRVI7CisgICAgQ0hFQ0tfVFlQRShYUEFUSF9OVU1CRVIpOworCisgICAgaWYgKCh4bWxYUGF0aElzTmFOKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCkpIHx8CisJKHhtbFhQYXRoSXNJbmYoY3R4dC0+dmFsdWUtPmZsb2F0dmFsKSA9PSAxKSB8fAorCSh4bWxYUGF0aElzSW5mKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCkgPT0gLTEpIHx8CisJKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9PSAwLjApKQorCXJldHVybjsKKworICAgIFhUUlVOQyhmLCBjdHh0LT52YWx1ZS0+ZmxvYXR2YWwpOworICAgIGlmIChjdHh0LT52YWx1ZS0+ZmxvYXR2YWwgPCAwKSB7CisJaWYgKGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA8IGYgLSAwLjUpCisJICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IGYgLSAxOworCWVsc2UKKwkgICAgY3R4dC0+dmFsdWUtPmZsb2F0dmFsID0gZjsKKwlpZiAoY3R4dC0+dmFsdWUtPmZsb2F0dmFsID09IDApCisJICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IHhtbFhQYXRoTlpFUk87CisgICAgfSBlbHNlIHsKKwlpZiAoY3R4dC0+dmFsdWUtPmZsb2F0dmFsIDwgZiArIDAuNSkKKwkgICAgY3R4dC0+dmFsdWUtPmZsb2F0dmFsID0gZjsKKwllbHNlCisJICAgIGN0eHQtPnZhbHVlLT5mbG9hdHZhbCA9IGYgKyAxOworICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVRoZSBQYXJzZXIJCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIGEgZmV3IGZvcndhcmQgZGVjbGFyYXRpb25zIHNpbmNlIHdlIHVzZSBhIHJlY3Vyc2l2ZSBjYWxsIGJhc2VkCisgKiBpbXBsZW1lbnRhdGlvbi4KKyAqLworc3RhdGljIHZvaWQgeG1sWFBhdGhDb21waWxlRXhwcih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IHNvcnQpOworc3RhdGljIHZvaWQgeG1sWFBhdGhDb21wUHJlZGljYXRlKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgZmlsdGVyKTsKK3N0YXRpYyB2b2lkIHhtbFhQYXRoQ29tcExvY2F0aW9uUGF0aCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitzdGF0aWMgdm9pZCB4bWxYUGF0aENvbXBSZWxhdGl2ZUxvY2F0aW9uUGF0aCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCk7CitzdGF0aWMgeG1sQ2hhciAqIHhtbFhQYXRoUGFyc2VOYW1lQ29tcGxleCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHF1YWxpZmllZCk7CisKKy8qKgorICogeG1sWFBhdGhDdXJyZW50Q2hhcjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIHBhcnNlciBjb250ZXh0CisgKiBAY3VyOiAgcG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjaGFyCisgKiBAbGVuOiAgcG9pbnRlciB0byB0aGUgbGVuZ3RoIG9mIHRoZSBjaGFyIHJlYWQKKyAqCisgKiBUaGUgY3VycmVudCBjaGFyIHZhbHVlLCBpZiB1c2luZyBVVEYtOCB0aGlzIG1heSBhY3R1YWxseSBzcGFuIG11bHRpcGxlCisgKiBieXRlcyBpbiB0aGUgaW5wdXQgYnVmZmVyLgorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2hhciB2YWx1ZSBhbmQgaXRzIGxlbmd0aAorICovCisKK3N0YXRpYyBpbnQKK3htbFhQYXRoQ3VycmVudENoYXIoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCAqbGVuKSB7CisgICAgdW5zaWduZWQgY2hhciBjOworICAgIHVuc2lnbmVkIGludCB2YWw7CisgICAgY29uc3QgeG1sQ2hhciAqY3VyOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkKKwlyZXR1cm4oMCk7CisgICAgY3VyID0gY3R4dC0+Y3VyOworCisgICAgLyoKKyAgICAgKiBXZSBhcmUgc3VwcG9zZWQgdG8gaGFuZGxlIFVURjgsIGNoZWNrIGl0J3MgdmFsaWQKKyAgICAgKiBGcm9tIHJmYzIwNDQ6IGVuY29kaW5nIG9mIHRoZSBVbmljb2RlIHZhbHVlcyBvbiBVVEYtODoKKyAgICAgKgorICAgICAqIFVDUy00IHJhbmdlIChoZXguKSAgICAgICAgICAgVVRGLTggb2N0ZXQgc2VxdWVuY2UgKGJpbmFyeSkKKyAgICAgKiAwMDAwIDAwMDAtMDAwMCAwMDdGICAgMHh4eHh4eHgKKyAgICAgKiAwMDAwIDAwODAtMDAwMCAwN0ZGICAgMTEweHh4eHggMTB4eHh4eHgKKyAgICAgKiAwMDAwIDA4MDAtMDAwMCBGRkZGICAgMTExMHh4eHggMTB4eHh4eHggMTB4eHh4eHgKKyAgICAgKgorICAgICAqIENoZWNrIGZvciB0aGUgMHgxMTAwMDAgbGltaXQgdG9vCisgICAgICovCisgICAgYyA9ICpjdXI7CisgICAgaWYgKGMgJiAweDgwKSB7CisJaWYgKChjdXJbMV0gJiAweGMwKSAhPSAweDgwKQorCSAgICBnb3RvIGVuY29kaW5nX2Vycm9yOworCWlmICgoYyAmIDB4ZTApID09IDB4ZTApIHsKKworCSAgICBpZiAoKGN1clsyXSAmIDB4YzApICE9IDB4ODApCisJCWdvdG8gZW5jb2RpbmdfZXJyb3I7CisJICAgIGlmICgoYyAmIDB4ZjApID09IDB4ZjApIHsKKwkJaWYgKCgoYyAmIDB4ZjgpICE9IDB4ZjApIHx8CisJCSAgICAoKGN1clszXSAmIDB4YzApICE9IDB4ODApKQorCQkgICAgZ290byBlbmNvZGluZ19lcnJvcjsKKwkJLyogNC1ieXRlIGNvZGUgKi8KKwkJKmxlbiA9IDQ7CisJCXZhbCA9IChjdXJbMF0gJiAweDcpIDw8IDE4OworCQl2YWwgfD0gKGN1clsxXSAmIDB4M2YpIDw8IDEyOworCQl2YWwgfD0gKGN1clsyXSAmIDB4M2YpIDw8IDY7CisJCXZhbCB8PSBjdXJbM10gJiAweDNmOworCSAgICB9IGVsc2UgeworCSAgICAgIC8qIDMtYnl0ZSBjb2RlICovCisJCSpsZW4gPSAzOworCQl2YWwgPSAoY3VyWzBdICYgMHhmKSA8PCAxMjsKKwkJdmFsIHw9IChjdXJbMV0gJiAweDNmKSA8PCA2OworCQl2YWwgfD0gY3VyWzJdICYgMHgzZjsKKwkgICAgfQorCX0gZWxzZSB7CisJICAvKiAyLWJ5dGUgY29kZSAqLworCSAgICAqbGVuID0gMjsKKwkgICAgdmFsID0gKGN1clswXSAmIDB4MWYpIDw8IDY7CisJICAgIHZhbCB8PSBjdXJbMV0gJiAweDNmOworCX0KKwlpZiAoIUlTX0NIQVIodmFsKSkgeworCSAgICBYUF9FUlJPUjAoWFBBVEhfSU5WQUxJRF9DSEFSX0VSUk9SKTsKKwl9CisJcmV0dXJuKHZhbCk7CisgICAgfSBlbHNlIHsKKwkvKiAxLWJ5dGUgY29kZSAqLworCSpsZW4gPSAxOworCXJldHVybigoaW50KSAqY3VyKTsKKyAgICB9CitlbmNvZGluZ19lcnJvcjoKKyAgICAvKgorICAgICAqIElmIHdlIGRldGVjdCBhbiBVVEY4IGVycm9yIHRoYXQgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUKKyAgICAgKiBpbnB1dCBlbmNvZGluZyBkaWRuJ3QgZ2V0IHByb3Blcmx5IGFkdmVydGlzZWQgaW4gdGhlCisgICAgICogZGVjbGFyYXRpb24gaGVhZGVyLiBSZXBvcnQgdGhlIGVycm9yIGFuZCBzd2l0Y2ggdGhlIGVuY29kaW5nCisgICAgICogdG8gSVNPLUxhdGluLTEgKGlmIHlvdSBkb24ndCBsaWtlIHRoaXMgcG9saWN5LCBqdXN0IGRlY2xhcmUgdGhlCisgICAgICogZW5jb2RpbmcgISkKKyAgICAgKi8KKyAgICAqbGVuID0gMDsKKyAgICBYUF9FUlJPUjAoWFBBVEhfRU5DT0RJTkdfRVJST1IpOworfQorCisvKioKKyAqIHhtbFhQYXRoUGFyc2VOQ05hbWU6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqIHBhcnNlIGFuIFhNTCBuYW1lc3BhY2Ugbm9uIHF1YWxpZmllZCBuYW1lLgorICoKKyAqIFtOUyAzXSBOQ05hbWUgOjo9IChMZXR0ZXIgfCAnXycpIChOQ05hbWVDaGFyKSoKKyAqCisgKiBbTlMgNF0gTkNOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAnLicgfCAnLScgfCAnXycgfAorICogICAgICAgICAgICAgICAgICAgICAgIENvbWJpbmluZ0NoYXIgfCBFeHRlbmRlcgorICoKKyAqIFJldHVybnMgdGhlIG5hbWVzcGFjZSBuYW1lIG9yIE5VTEwKKyAqLworCit4bWxDaGFyICoKK3htbFhQYXRoUGFyc2VOQ05hbWUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICppbjsKKyAgICB4bWxDaGFyICpyZXQ7CisgICAgaW50IGNvdW50ID0gMDsKKworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAoY3R4dC0+Y3VyID09IE5VTEwpKSByZXR1cm4oTlVMTCk7CisgICAgLyoKKyAgICAgKiBBY2NlbGVyYXRvciBmb3Igc2ltcGxlIEFTQ0lJIG5hbWVzCisgICAgICovCisgICAgaW4gPSBjdHh0LT5jdXI7CisgICAgaWYgKCgoKmluID49IDB4NjEpICYmICgqaW4gPD0gMHg3QSkpIHx8CisJKCgqaW4gPj0gMHg0MSkgJiYgKCppbiA8PSAweDVBKSkgfHwKKwkoKmluID09ICdfJykpIHsKKwlpbisrOworCXdoaWxlICgoKCppbiA+PSAweDYxKSAmJiAoKmluIDw9IDB4N0EpKSB8fAorCSAgICAgICAoKCppbiA+PSAweDQxKSAmJiAoKmluIDw9IDB4NUEpKSB8fAorCSAgICAgICAoKCppbiA+PSAweDMwKSAmJiAoKmluIDw9IDB4MzkpKSB8fAorCSAgICAgICAoKmluID09ICdfJykgfHwgKCppbiA9PSAnLicpIHx8CisJICAgICAgICgqaW4gPT0gJy0nKSkKKwkgICAgaW4rKzsKKwlpZiAoKCppbiA9PSAnICcpIHx8ICgqaW4gPT0gJz4nKSB8fCAoKmluID09ICcvJykgfHwKKyAgICAgICAgICAgICgqaW4gPT0gJ1snKSB8fCAoKmluID09ICddJykgfHwgKCppbiA9PSAnOicpIHx8CisgICAgICAgICAgICAoKmluID09ICdAJykgfHwgKCppbiA9PSAnKicpKSB7CisJICAgIGNvdW50ID0gaW4gLSBjdHh0LT5jdXI7CisJICAgIGlmIChjb3VudCA9PSAwKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIHJldCA9IHhtbFN0cm5kdXAoY3R4dC0+Y3VyLCBjb3VudCk7CisJICAgIGN0eHQtPmN1ciA9IGluOworCSAgICByZXR1cm4ocmV0KTsKKwl9CisgICAgfQorICAgIHJldHVybih4bWxYUGF0aFBhcnNlTmFtZUNvbXBsZXgoY3R4dCwgMCkpOworfQorCisKKy8qKgorICogeG1sWFBhdGhQYXJzZVFOYW1lOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqIEBwcmVmaXg6ICBhIHhtbENoYXIgKioKKyAqCisgKiBwYXJzZSBhbiBYTUwgcXVhbGlmaWVkIG5hbWUKKyAqCisgKiBbTlMgNV0gUU5hbWUgOjo9IChQcmVmaXggJzonKT8gTG9jYWxQYXJ0CisgKgorICogW05TIDZdIFByZWZpeCA6Oj0gTkNOYW1lCisgKgorICogW05TIDddIExvY2FsUGFydCA6Oj0gTkNOYW1lCisgKgorICogUmV0dXJucyB0aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgbG9jYWwgcGFydCwgYW5kIHByZWZpeCBpcyB1cGRhdGVkCisgKiAgIHRvIGdldCB0aGUgUHJlZml4IGlmIGFueS4KKyAqLworCitzdGF0aWMgeG1sQ2hhciAqCit4bWxYUGF0aFBhcnNlUU5hbWUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbENoYXIgKipwcmVmaXgpIHsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworCisgICAgKnByZWZpeCA9IE5VTEw7CisgICAgcmV0ID0geG1sWFBhdGhQYXJzZU5DTmFtZShjdHh0KTsKKyAgICBpZiAocmV0ICYmIENVUiA9PSAnOicpIHsKKyAgICAgICAgKnByZWZpeCA9IHJldDsKKwlORVhUOworCXJldCA9IHhtbFhQYXRoUGFyc2VOQ05hbWUoY3R4dCk7CisgICAgfQorICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQYXRoUGFyc2VOYW1lOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiBwYXJzZSBhbiBYTUwgbmFtZQorICoKKyAqIFs0XSBOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAnLicgfCAnLScgfCAnXycgfCAnOicgfAorICogICAgICAgICAgICAgICAgICBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXIKKyAqCisgKiBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSoKKyAqCisgKiBSZXR1cm5zIHRoZSBuYW1lc3BhY2UgbmFtZSBvciBOVUxMCisgKi8KKworeG1sQ2hhciAqCit4bWxYUGF0aFBhcnNlTmFtZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIGNvbnN0IHhtbENoYXIgKmluOworICAgIHhtbENoYXIgKnJldDsKKyAgICBpbnQgY291bnQgPSAwOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jdXIgPT0gTlVMTCkpIHJldHVybihOVUxMKTsKKyAgICAvKgorICAgICAqIEFjY2VsZXJhdG9yIGZvciBzaW1wbGUgQVNDSUkgbmFtZXMKKyAgICAgKi8KKyAgICBpbiA9IGN0eHQtPmN1cjsKKyAgICBpZiAoKCgqaW4gPj0gMHg2MSkgJiYgKCppbiA8PSAweDdBKSkgfHwKKwkoKCppbiA+PSAweDQxKSAmJiAoKmluIDw9IDB4NUEpKSB8fAorCSgqaW4gPT0gJ18nKSB8fCAoKmluID09ICc6JykpIHsKKwlpbisrOworCXdoaWxlICgoKCppbiA+PSAweDYxKSAmJiAoKmluIDw9IDB4N0EpKSB8fAorCSAgICAgICAoKCppbiA+PSAweDQxKSAmJiAoKmluIDw9IDB4NUEpKSB8fAorCSAgICAgICAoKCppbiA+PSAweDMwKSAmJiAoKmluIDw9IDB4MzkpKSB8fAorCSAgICAgICAoKmluID09ICdfJykgfHwgKCppbiA9PSAnLScpIHx8CisJICAgICAgICgqaW4gPT0gJzonKSB8fCAoKmluID09ICcuJykpCisJICAgIGluKys7CisJaWYgKCgqaW4gPiAwKSAmJiAoKmluIDwgMHg4MCkpIHsKKwkgICAgY291bnQgPSBpbiAtIGN0eHQtPmN1cjsKKwkgICAgcmV0ID0geG1sU3RybmR1cChjdHh0LT5jdXIsIGNvdW50KTsKKwkgICAgY3R4dC0+Y3VyID0gaW47CisJICAgIHJldHVybihyZXQpOworCX0KKyAgICB9CisgICAgcmV0dXJuKHhtbFhQYXRoUGFyc2VOYW1lQ29tcGxleChjdHh0LCAxKSk7Cit9CisKK3N0YXRpYyB4bWxDaGFyICoKK3htbFhQYXRoUGFyc2VOYW1lQ29tcGxleCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IHF1YWxpZmllZCkgeworICAgIHhtbENoYXIgYnVmW1hNTF9NQVhfTkFNRUxFTiArIDVdOworICAgIGludCBsZW4gPSAwLCBsOworICAgIGludCBjOworCisgICAgLyoKKyAgICAgKiBIYW5kbGVyIGZvciBtb3JlIGNvbXBsZXggY2FzZXMKKyAgICAgKi8KKyAgICBjID0gQ1VSX0NIQVIobCk7CisgICAgaWYgKChjID09ICcgJykgfHwgKGMgPT0gJz4nKSB8fCAoYyA9PSAnLycpIHx8IC8qIGFjY2VsZXJhdG9ycyAqLworICAgICAgICAoYyA9PSAnWycpIHx8IChjID09ICddJykgfHwgKGMgPT0gJ0AnKSB8fCAvKiBhY2NlbGVyYXRvcnMgKi8KKyAgICAgICAgKGMgPT0gJyonKSB8fCAvKiBhY2NlbGVyYXRvcnMgKi8KKwkoIUlTX0xFVFRFUihjKSAmJiAoYyAhPSAnXycpICYmCisgICAgICAgICAoKHF1YWxpZmllZCkgJiYgKGMgIT0gJzonKSkpKSB7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIHdoaWxlICgoYyAhPSAnICcpICYmIChjICE9ICc+JykgJiYgKGMgIT0gJy8nKSAmJiAvKiB0ZXN0IGJpZ25hbWUueG1sICovCisJICAgKChJU19MRVRURVIoYykpIHx8IChJU19ESUdJVChjKSkgfHwKKyAgICAgICAgICAgIChjID09ICcuJykgfHwgKGMgPT0gJy0nKSB8fAorCSAgICAoYyA9PSAnXycpIHx8ICgocXVhbGlmaWVkKSAmJiAoYyA9PSAnOicpKSB8fAorCSAgICAoSVNfQ09NQklOSU5HKGMpKSB8fAorCSAgICAoSVNfRVhURU5ERVIoYykpKSkgeworCUNPUFlfQlVGKGwsYnVmLGxlbixjKTsKKwlORVhUTChsKTsKKwljID0gQ1VSX0NIQVIobCk7CisJaWYgKGxlbiA+PSBYTUxfTUFYX05BTUVMRU4pIHsKKwkgICAgLyoKKwkgICAgICogT2theSBzb21lb25lIG1hbmFnZWQgdG8gbWFrZSBhIGh1Z2UgbmFtZSwgc28gaGUncyByZWFkeSB0byBwYXkKKwkgICAgICogZm9yIHRoZSBwcm9jZXNzaW5nIHNwZWVkLgorCSAgICAgKi8KKwkgICAgeG1sQ2hhciAqYnVmZmVyOworCSAgICBpbnQgbWF4ID0gbGVuICogMjsKKworCSAgICBidWZmZXIgPSAoeG1sQ2hhciAqKSB4bWxNYWxsb2NBdG9taWMobWF4ICogc2l6ZW9mKHhtbENoYXIpKTsKKwkgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CisJCVhQX0VSUk9STlVMTChYUEFUSF9NRU1PUllfRVJST1IpOworCSAgICB9CisJICAgIG1lbWNweShidWZmZXIsIGJ1ZiwgbGVuKTsKKwkgICAgd2hpbGUgKChJU19MRVRURVIoYykpIHx8IChJU19ESUdJVChjKSkgfHwgLyogdGVzdCBiaWduYW1lLnhtbCAqLworCQkgICAoYyA9PSAnLicpIHx8IChjID09ICctJykgfHwKKwkJICAgKGMgPT0gJ18nKSB8fCAoKHF1YWxpZmllZCkgJiYgKGMgPT0gJzonKSkgfHwKKwkJICAgKElTX0NPTUJJTklORyhjKSkgfHwKKwkJICAgKElTX0VYVEVOREVSKGMpKSkgeworCQlpZiAobGVuICsgMTAgPiBtYXgpIHsKKwkJICAgIG1heCAqPSAyOworCQkgICAgYnVmZmVyID0gKHhtbENoYXIgKikgeG1sUmVhbGxvYyhidWZmZXIsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ICogc2l6ZW9mKHhtbENoYXIpKTsKKwkJICAgIGlmIChidWZmZXIgPT0gTlVMTCkgeworCQkJWFBfRVJST1JOVUxMKFhQQVRIX01FTU9SWV9FUlJPUik7CisJCSAgICB9CisJCX0KKwkJQ09QWV9CVUYobCxidWZmZXIsbGVuLGMpOworCQlORVhUTChsKTsKKwkJYyA9IENVUl9DSEFSKGwpOworCSAgICB9CisJICAgIGJ1ZmZlcltsZW5dID0gMDsKKwkgICAgcmV0dXJuKGJ1ZmZlcik7CisJfQorICAgIH0KKyAgICBpZiAobGVuID09IDApCisJcmV0dXJuKE5VTEwpOworICAgIHJldHVybih4bWxTdHJuZHVwKGJ1ZiwgbGVuKSk7Cit9CisKKyNkZWZpbmUgTUFYX0ZSQUMgMjAKKworLyoKKyAqIFRoZXNlIGFyZSB1c2VkIGFzIGRpdmlzb3JzIGZvciB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIGEgbnVtYmVyLgorICogU2luY2UgdGhlIHRhYmxlIGluY2x1ZGVzIDEuMCAocmVwcmVzZW50aW5nICcwJyBmcmFjdGlvbmFsIGRpZ2l0cyksCisgKiBpdCBtdXN0IGJlIGRpbWVuc2lvbmVkIGF0IE1BWF9GUkFDKzEgKGJ1ZyAxMzM5MjEpCisgKi8KK3N0YXRpYyBkb3VibGUgbXlfcG93MTBbTUFYX0ZSQUMrMV0gPSB7CisgICAgMS4wLCAxMC4wLCAxMDAuMCwgMTAwMC4wLCAxMDAwMC4wLAorICAgIDEwMDAwMC4wLCAxMDAwMDAwLjAsIDEwMDAwMDAwLjAsIDEwMDAwMDAwMC4wLCAxMDAwMDAwMDAwLjAsCisgICAgMTAwMDAwMDAwMDAuMCwgMTAwMDAwMDAwMDAwLjAsIDEwMDAwMDAwMDAwMDAuMCwgMTAwMDAwMDAwMDAwMDAuMCwKKyAgICAxMDAwMDAwMDAwMDAwMDAuMCwKKyAgICAxMDAwMDAwMDAwMDAwMDAwLjAsIDEwMDAwMDAwMDAwMDAwMDAwLjAsIDEwMDAwMDAwMDAwMDAwMDAwMC4wLAorICAgIDEwMDAwMDAwMDAwMDAwMDAwMDAuMCwgMTAwMDAwMDAwMDAwMDAwMDAwMDAuMCwgMTAwMDAwMDAwMDAwMDAwMDAwMDAwLjAKK307CisKKy8qKgorICogeG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyOgorICogQHN0cjogIEEgc3RyaW5nIHRvIHNjYW4KKyAqCisgKiAgWzMwYV0gIEZsb2F0ICA6Oj0gTnVtYmVyICgnZScgRGlnaXRzPyk/CisgKgorICogIFszMF0gICBOdW1iZXIgOjo9ICAgRGlnaXRzICgnLicgRGlnaXRzPyk/CisgKiAgICAgICAgICAgICAgICAgICAgfCAnLicgRGlnaXRzCisgKiAgWzMxXSAgIERpZ2l0cyA6Oj0gICBbMC05XSsKKyAqCisgKiBDb21waWxlIGEgTnVtYmVyIGluIHRoZSBzdHJpbmcKKyAqIEluIGNvbXBsZW1lbnQgb2YgdGhlIE51bWJlciBleHByZXNzaW9uLCB0aGlzIGZ1bmN0aW9uIGFsc28gaGFuZGxlcworICogbmVnYXRpdmUgdmFsdWVzIDogJy0nIE51bWJlci4KKyAqCisgKiBSZXR1cm5zIHRoZSBkb3VibGUgdmFsdWUuCisgKi8KK2RvdWJsZQoreG1sWFBhdGhTdHJpbmdFdmFsTnVtYmVyKGNvbnN0IHhtbENoYXIgKnN0cikgeworICAgIGNvbnN0IHhtbENoYXIgKmN1ciA9IHN0cjsKKyAgICBkb3VibGUgcmV0OworICAgIGludCBvayA9IDA7CisgICAgaW50IGlzbmVnID0gMDsKKyAgICBpbnQgZXhwb25lbnQgPSAwOworICAgIGludCBpc19leHBvbmVudF9uZWdhdGl2ZSA9IDA7CisjaWZkZWYgX19HTlVDX18KKyAgICB1bnNpZ25lZCBsb25nIHRtcCA9IDA7CisgICAgZG91YmxlIHRlbXA7CisjZW5kaWYKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybigwKTsKKyAgICB3aGlsZSAoSVNfQkxBTktfQ0goKmN1cikpIGN1cisrOworICAgIGlmICgoKmN1ciAhPSAnLicpICYmICgoKmN1ciA8ICcwJykgfHwgKCpjdXIgPiAnOScpKSAmJiAoKmN1ciAhPSAnLScpKSB7CisgICAgICAgIHJldHVybih4bWxYUGF0aE5BTik7CisgICAgfQorICAgIGlmICgqY3VyID09ICctJykgeworCWlzbmVnID0gMTsKKwljdXIrKzsKKyAgICB9CisKKyNpZmRlZiBfX0dOVUNfXworICAgIC8qCisgICAgICogdG1wL3RlbXAgaXMgYSB3b3JrYXJvdW5kIGFnYWluc3QgYSBnY2MgY29tcGlsZXIgYnVnCisgICAgICogaHR0cDovL3ZlaWxsYXJkLmNvbS9nY2MuYnVnCisgICAgICovCisgICAgcmV0ID0gMDsKKyAgICB3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSB7CisJcmV0ID0gcmV0ICogMTA7CisJdG1wID0gKCpjdXIgLSAnMCcpOworCW9rID0gMTsKKwljdXIrKzsKKwl0ZW1wID0gKGRvdWJsZSkgdG1wOworCXJldCA9IHJldCArIHRlbXA7CisgICAgfQorI2Vsc2UKKyAgICByZXQgPSAwOworICAgIHdoaWxlICgoKmN1ciA+PSAnMCcpICYmICgqY3VyIDw9ICc5JykpIHsKKwlyZXQgPSByZXQgKiAxMCArICgqY3VyIC0gJzAnKTsKKwlvayA9IDE7CisJY3VyKys7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoKmN1ciA9PSAnLicpIHsKKwlpbnQgdiwgZnJhYyA9IDA7CisJZG91YmxlIGZyYWN0aW9uID0gMDsKKworICAgICAgICBjdXIrKzsKKwlpZiAoKCgqY3VyIDwgJzAnKSB8fCAoKmN1ciA+ICc5JykpICYmICghb2spKSB7CisJICAgIHJldHVybih4bWxYUGF0aE5BTik7CisJfQorCXdoaWxlICgoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKSAmJiAoZnJhYyA8IE1BWF9GUkFDKSkgeworCSAgICB2ID0gKCpjdXIgLSAnMCcpOworCSAgICBmcmFjdGlvbiA9IGZyYWN0aW9uICogMTAgKyB2OworCSAgICBmcmFjID0gZnJhYyArIDE7CisJICAgIGN1cisrOworCX0KKwlmcmFjdGlvbiAvPSBteV9wb3cxMFtmcmFjXTsKKwlyZXQgPSByZXQgKyBmcmFjdGlvbjsKKwl3aGlsZSAoKCpjdXIgPj0gJzAnKSAmJiAoKmN1ciA8PSAnOScpKQorCSAgICBjdXIrKzsKKyAgICB9CisgICAgaWYgKCgqY3VyID09ICdlJykgfHwgKCpjdXIgPT0gJ0UnKSkgeworICAgICAgY3VyKys7CisgICAgICBpZiAoKmN1ciA9PSAnLScpIHsKKwlpc19leHBvbmVudF9uZWdhdGl2ZSA9IDE7CisJY3VyKys7CisgICAgICB9IGVsc2UgaWYgKCpjdXIgPT0gJysnKSB7CisgICAgICAgIGN1cisrOworICAgICAgfQorICAgICAgd2hpbGUgKCgqY3VyID49ICcwJykgJiYgKCpjdXIgPD0gJzknKSkgeworCWV4cG9uZW50ID0gZXhwb25lbnQgKiAxMCArICgqY3VyIC0gJzAnKTsKKwljdXIrKzsKKyAgICAgIH0KKyAgICB9CisgICAgd2hpbGUgKElTX0JMQU5LX0NIKCpjdXIpKSBjdXIrKzsKKyAgICBpZiAoKmN1ciAhPSAwKSByZXR1cm4oeG1sWFBhdGhOQU4pOworICAgIGlmIChpc25lZykgcmV0ID0gLXJldDsKKyAgICBpZiAoaXNfZXhwb25lbnRfbmVnYXRpdmUpIGV4cG9uZW50ID0gLWV4cG9uZW50OworICAgIHJldCAqPSBwb3coMTAuMCwgKGRvdWJsZSlleHBvbmVudCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wTnVtYmVyOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWzMwXSAgIE51bWJlciA6Oj0gICBEaWdpdHMgKCcuJyBEaWdpdHM/KT8KKyAqICAgICAgICAgICAgICAgICAgICB8ICcuJyBEaWdpdHMKKyAqICBbMzFdICAgRGlnaXRzIDo6PSAgIFswLTldKworICoKKyAqIENvbXBpbGUgYSBOdW1iZXIsIHRoZW4gcHVzaCBpdCBvbiB0aGUgc3RhY2sKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBOdW1iZXIoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpCit7CisgICAgZG91YmxlIHJldCA9IDAuMDsKKyAgICBkb3VibGUgbXVsdCA9IDE7CisgICAgaW50IG9rID0gMDsKKyAgICBpbnQgZXhwb25lbnQgPSAwOworICAgIGludCBpc19leHBvbmVudF9uZWdhdGl2ZSA9IDA7CisjaWZkZWYgX19HTlVDX18KKyAgICB1bnNpZ25lZCBsb25nIHRtcCA9IDA7CisgICAgZG91YmxlIHRlbXA7CisjZW5kaWYKKworICAgIENIRUNLX0VSUk9SOworICAgIGlmICgoQ1VSICE9ICcuJykgJiYgKChDVVIgPCAnMCcpIHx8IChDVVIgPiAnOScpKSkgeworICAgICAgICBYUF9FUlJPUihYUEFUSF9OVU1CRVJfRVJST1IpOworICAgIH0KKyNpZmRlZiBfX0dOVUNfXworICAgIC8qCisgICAgICogdG1wL3RlbXAgaXMgYSB3b3JrYXJvdW5kIGFnYWluc3QgYSBnY2MgY29tcGlsZXIgYnVnCisgICAgICogaHR0cDovL3ZlaWxsYXJkLmNvbS9nY2MuYnVnCisgICAgICovCisgICAgcmV0ID0gMDsKKyAgICB3aGlsZSAoKENVUiA+PSAnMCcpICYmIChDVVIgPD0gJzknKSkgeworCXJldCA9IHJldCAqIDEwOworCXRtcCA9IChDVVIgLSAnMCcpOworICAgICAgICBvayA9IDE7CisgICAgICAgIE5FWFQ7CisJdGVtcCA9IChkb3VibGUpIHRtcDsKKwlyZXQgPSByZXQgKyB0ZW1wOworICAgIH0KKyNlbHNlCisgICAgcmV0ID0gMDsKKyAgICB3aGlsZSAoKENVUiA+PSAnMCcpICYmIChDVVIgPD0gJzknKSkgeworCXJldCA9IHJldCAqIDEwICsgKENVUiAtICcwJyk7CisJb2sgPSAxOworCU5FWFQ7CisgICAgfQorI2VuZGlmCisgICAgaWYgKENVUiA9PSAnLicpIHsKKyAgICAgICAgTkVYVDsKKyAgICAgICAgaWYgKCgoQ1VSIDwgJzAnKSB8fCAoQ1VSID4gJzknKSkgJiYgKCFvaykpIHsKKyAgICAgICAgICAgIFhQX0VSUk9SKFhQQVRIX05VTUJFUl9FUlJPUik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKChDVVIgPj0gJzAnKSAmJiAoQ1VSIDw9ICc5JykpIHsKKyAgICAgICAgICAgIG11bHQgLz0gMTA7CisgICAgICAgICAgICByZXQgPSByZXQgKyAoQ1VSIC0gJzAnKSAqIG11bHQ7CisgICAgICAgICAgICBORVhUOworICAgICAgICB9CisgICAgfQorICAgIGlmICgoQ1VSID09ICdlJykgfHwgKENVUiA9PSAnRScpKSB7CisgICAgICAgIE5FWFQ7CisgICAgICAgIGlmIChDVVIgPT0gJy0nKSB7CisgICAgICAgICAgICBpc19leHBvbmVudF9uZWdhdGl2ZSA9IDE7CisgICAgICAgICAgICBORVhUOworICAgICAgICB9IGVsc2UgaWYgKENVUiA9PSAnKycpIHsKKwkgICAgTkVYVDsKKwl9CisgICAgICAgIHdoaWxlICgoQ1VSID49ICcwJykgJiYgKENVUiA8PSAnOScpKSB7CisgICAgICAgICAgICBleHBvbmVudCA9IGV4cG9uZW50ICogMTAgKyAoQ1VSIC0gJzAnKTsKKyAgICAgICAgICAgIE5FWFQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzX2V4cG9uZW50X25lZ2F0aXZlKQorICAgICAgICAgICAgZXhwb25lbnQgPSAtZXhwb25lbnQ7CisgICAgICAgIHJldCAqPSBwb3coMTAuMCwgKGRvdWJsZSkgZXhwb25lbnQpOworICAgIH0KKyAgICBQVVNIX0xPTkdfRVhQUihYUEFUSF9PUF9WQUxVRSwgWFBBVEhfTlVNQkVSLCAwLCAwLAorICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ2FjaGVOZXdGbG9hdChjdHh0LT5jb250ZXh0LCByZXQpLCBOVUxMKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFBhcnNlTGl0ZXJhbDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYSBMaXRlcmFsCisgKgorICogIFsyOV0gICBMaXRlcmFsIDo6PSAgICciJyBbXiJdKiAnIicKKyAqICAgICAgICAgICAgICAgICAgICB8ICInIiBbXiddKiAiJyIKKyAqCisgKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3VuZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IKKyAqLworc3RhdGljIHhtbENoYXIgKgoreG1sWFBhdGhQYXJzZUxpdGVyYWwoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpxOworICAgIHhtbENoYXIgKnJldCA9IE5VTEw7CisKKyAgICBpZiAoQ1VSID09ICciJykgeworICAgICAgICBORVhUOworCXEgPSBDVVJfUFRSOworCXdoaWxlICgoSVNfQ0hBUl9DSChDVVIpKSAmJiAoQ1VSICE9ICciJykpCisJICAgIE5FWFQ7CisJaWYgKCFJU19DSEFSX0NIKENVUikpIHsKKwkgICAgWFBfRVJST1JOVUxMKFhQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUik7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sU3RybmR1cChxLCBDVVJfUFRSIC0gcSk7CisJICAgIE5FWFQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnXCcnKSB7CisgICAgICAgIE5FWFQ7CisJcSA9IENVUl9QVFI7CisJd2hpbGUgKChJU19DSEFSX0NIKENVUikpICYmIChDVVIgIT0gJ1wnJykpCisJICAgIE5FWFQ7CisJaWYgKCFJU19DSEFSX0NIKENVUikpIHsKKwkgICAgWFBfRVJST1JOVUxMKFhQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUik7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sU3RybmR1cChxLCBDVVJfUFRSIC0gcSk7CisJICAgIE5FWFQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworCVhQX0VSUk9STlVMTChYUEFUSF9TVEFSVF9MSVRFUkFMX0VSUk9SKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wTGl0ZXJhbDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYSBMaXRlcmFsIGFuZCBwdXNoIGl0IG9uIHRoZSBzdGFjay4KKyAqCisgKiAgWzI5XSAgIExpdGVyYWwgOjo9ICAgJyInIFteIl0qICciJworICogICAgICAgICAgICAgICAgICAgIHwgIiciIFteJ10qICInIgorICoKKyAqIFRPRE86IHhtbFhQYXRoQ29tcExpdGVyYWwgbWVtb3J5IGFsbG9jYXRpb24gY291bGQgYmUgaW1wcm92ZWQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBMaXRlcmFsKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgY29uc3QgeG1sQ2hhciAqcTsKKyAgICB4bWxDaGFyICpyZXQgPSBOVUxMOworCisgICAgaWYgKENVUiA9PSAnIicpIHsKKyAgICAgICAgTkVYVDsKKwlxID0gQ1VSX1BUUjsKKwl3aGlsZSAoKElTX0NIQVJfQ0goQ1VSKSkgJiYgKENVUiAhPSAnIicpKQorCSAgICBORVhUOworCWlmICghSVNfQ0hBUl9DSChDVVIpKSB7CisJICAgIFhQX0VSUk9SKFhQQVRIX1VORklOSVNIRURfTElURVJBTF9FUlJPUik7CisJfSBlbHNlIHsKKwkgICAgcmV0ID0geG1sU3RybmR1cChxLCBDVVJfUFRSIC0gcSk7CisJICAgIE5FWFQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnXCcnKSB7CisgICAgICAgIE5FWFQ7CisJcSA9IENVUl9QVFI7CisJd2hpbGUgKChJU19DSEFSX0NIKENVUikpICYmIChDVVIgIT0gJ1wnJykpCisJICAgIE5FWFQ7CisJaWYgKCFJU19DSEFSX0NIKENVUikpIHsKKwkgICAgWFBfRVJST1IoWFBBVEhfVU5GSU5JU0hFRF9MSVRFUkFMX0VSUk9SKTsKKwl9IGVsc2UgeworCSAgICByZXQgPSB4bWxTdHJuZHVwKHEsIENVUl9QVFIgLSBxKTsKKwkgICAgTkVYVDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisJWFBfRVJST1IoWFBBVEhfU1RBUlRfTElURVJBTF9FUlJPUik7CisgICAgfQorICAgIGlmIChyZXQgPT0gTlVMTCkgcmV0dXJuOworICAgIFBVU0hfTE9OR19FWFBSKFhQQVRIX09QX1ZBTFVFLCBYUEFUSF9TVFJJTkcsIDAsIDAsCisJICAgICAgICAgICB4bWxYUGF0aENhY2hlTmV3U3RyaW5nKGN0eHQtPmNvbnRleHQsIHJldCksIE5VTEwpOworICAgIHhtbEZyZWUocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBWYXJpYWJsZVJlZmVyZW5jZToKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYSBWYXJpYWJsZVJlZmVyZW5jZSwgZXZhbHVhdGUgaXQgYW5kIHB1c2ggaXQgb24gdGhlIHN0YWNrLgorICoKKyAqIFRoZSB2YXJpYWJsZSBiaW5kaW5ncyBjb25zaXN0IG9mIGEgbWFwcGluZyBmcm9tIHZhcmlhYmxlIG5hbWVzCisgKiB0byB2YXJpYWJsZSB2YWx1ZXMuIFRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIGlzIGFuIG9iamVjdCwgd2hpY2ggY2FuIGJlCisgKiBvZiBhbnkgb2YgdGhlIHR5cGVzIHRoYXQgYXJlIHBvc3NpYmxlIGZvciB0aGUgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwKKyAqIGFuZCBtYXkgYWxzbyBiZSBvZiBhZGRpdGlvbmFsIHR5cGVzIG5vdCBzcGVjaWZpZWQgaGVyZS4KKyAqCisgKiBFYXJseSBldmFsdWF0aW9uIGlzIHBvc3NpYmxlIHNpbmNlOgorICogVGhlIHZhcmlhYmxlIGJpbmRpbmdzIFsuLi5dIHVzZWQgdG8gZXZhbHVhdGUgYSBzdWJleHByZXNzaW9uIGFyZQorICogYWx3YXlzIHRoZSBzYW1lIGFzIHRob3NlIHVzZWQgdG8gZXZhbHVhdGUgdGhlIGNvbnRhaW5pbmcgZXhwcmVzc2lvbi4KKyAqCisgKiAgWzM2XSAgIFZhcmlhYmxlUmVmZXJlbmNlIDo6PSAgICckJyBRTmFtZQorICovCitzdGF0aWMgdm9pZAoreG1sWFBhdGhDb21wVmFyaWFibGVSZWZlcmVuY2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKnByZWZpeDsKKworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgIT0gJyQnKSB7CisJWFBfRVJST1IoWFBBVEhfVkFSSUFCTEVfUkVGX0VSUk9SKTsKKyAgICB9CisgICAgTkVYVDsKKyAgICBuYW1lID0geG1sWFBhdGhQYXJzZVFOYW1lKGN0eHQsICZwcmVmaXgpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwlYUF9FUlJPUihYUEFUSF9WQVJJQUJMRV9SRUZfRVJST1IpOworICAgIH0KKyAgICBjdHh0LT5jb21wLT5sYXN0ID0gLTE7CisgICAgUFVTSF9MT05HX0VYUFIoWFBBVEhfT1BfVkFSSUFCTEUsIDAsIDAsIDAsCisJICAgICAgICAgICBuYW1lLCBwcmVmaXgpOworICAgIFNLSVBfQkxBTktTOworICAgIGlmICgoY3R4dC0+Y29udGV4dCAhPSBOVUxMKSAmJiAoY3R4dC0+Y29udGV4dC0+ZmxhZ3MgJiBYTUxfWFBBVEhfTk9WQVIpKSB7CisJWFBfRVJST1IoWFBBVEhfVU5ERUZfVkFSSUFCTEVfRVJST1IpOworICAgIH0KK30KKworLyoqCisgKiB4bWxYUGF0aElzTm9kZVR5cGU6CisgKiBAbmFtZTogIGEgbmFtZSBzdHJpbmcKKyAqCisgKiBJcyB0aGUgbmFtZSBnaXZlbiBhIE5vZGVUeXBlIG9uZS4KKyAqCisgKiAgWzM4XSAgIE5vZGVUeXBlIDo6PSAgICdjb21tZW50JworICogICAgICAgICAgICAgICAgICAgIHwgJ3RleHQnCisgKiAgICAgICAgICAgICAgICAgICAgfCAncHJvY2Vzc2luZy1pbnN0cnVjdGlvbicKKyAqICAgICAgICAgICAgICAgICAgICB8ICdub2RlJworICoKKyAqIFJldHVybnMgMSBpZiB0cnVlIDAgb3RoZXJ3aXNlCisgKi8KK2ludAoreG1sWFBhdGhJc05vZGVUeXBlKGNvbnN0IHhtbENoYXIgKm5hbWUpIHsKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorCXJldHVybigwKTsKKworICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAibm9kZSIpKQorCXJldHVybigxKTsKKyAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgInRleHQiKSkKKwlyZXR1cm4oMSk7CisgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJjb21tZW50IikpCisJcmV0dXJuKDEpOworICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAicHJvY2Vzc2luZy1pbnN0cnVjdGlvbiIpKQorCXJldHVybigxKTsKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wRnVuY3Rpb25DYWxsOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWzE2XSAgIEZ1bmN0aW9uQ2FsbCA6Oj0gICBGdW5jdGlvbk5hbWUgJygnICggQXJndW1lbnQgKCAnLCcgQXJndW1lbnQpKik/ICcpJworICogIFsxN10gICBBcmd1bWVudCA6Oj0gICBFeHByCisgKgorICogQ29tcGlsZSBhIGZ1bmN0aW9uIGNhbGwsIHRoZSBldmFsdWF0aW9uIG9mIGFsbCBhcmd1bWVudHMgYXJlCisgKiBwdXNoZWQgb24gdGhlIHN0YWNrCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBGdW5jdGlvbkNhbGwoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxDaGFyICpuYW1lOworICAgIHhtbENoYXIgKnByZWZpeDsKKyAgICBpbnQgbmJhcmdzID0gMDsKKyAgICBpbnQgc29ydCA9IDE7CisKKyAgICBuYW1lID0geG1sWFBhdGhQYXJzZVFOYW1lKGN0eHQsICZwcmVmaXgpOworICAgIGlmIChuYW1lID09IE5VTEwpIHsKKwl4bWxGcmVlKHByZWZpeCk7CisJWFBfRVJST1IoWFBBVEhfRVhQUl9FUlJPUik7CisgICAgfQorICAgIFNLSVBfQkxBTktTOworI2lmZGVmIERFQlVHX0VYUFIKKyAgICBpZiAocHJlZml4ID09IE5VTEwpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJDYWxsaW5nIGZ1bmN0aW9uICVzXG4iLAorCQkJbmFtZSk7CisgICAgZWxzZQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiQ2FsbGluZyBmdW5jdGlvbiAlczolc1xuIiwKKwkJCXByZWZpeCwgbmFtZSk7CisjZW5kaWYKKworICAgIGlmIChDVVIgIT0gJygnKSB7CisJWFBfRVJST1IoWFBBVEhfRVhQUl9FUlJPUik7CisgICAgfQorICAgIE5FWFQ7CisgICAgU0tJUF9CTEFOS1M7CisKKyAgICAvKgorICAgICogT3B0aW1pemF0aW9uIGZvciBjb3VudCgpOiB3ZSBkb24ndCBuZWVkIHRoZSBub2RlLXNldCB0byBiZSBzb3J0ZWQuCisgICAgKi8KKyAgICBpZiAoKHByZWZpeCA9PSBOVUxMKSAmJiAobmFtZVswXSA9PSAnYycpICYmCisJeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgImNvdW50IikpCisgICAgeworCXNvcnQgPSAwOworICAgIH0KKyAgICBjdHh0LT5jb21wLT5sYXN0ID0gLTE7CisgICAgaWYgKENVUiAhPSAnKScpIHsKKwl3aGlsZSAoQ1VSICE9IDApIHsKKwkgICAgaW50IG9wMSA9IGN0eHQtPmNvbXAtPmxhc3Q7CisJICAgIGN0eHQtPmNvbXAtPmxhc3QgPSAtMTsKKwkgICAgeG1sWFBhdGhDb21waWxlRXhwcihjdHh0LCBzb3J0KTsKKwkgICAgaWYgKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spIHsKKwkJeG1sRnJlZShuYW1lKTsKKwkJeG1sRnJlZShwcmVmaXgpOworCQlyZXR1cm47CisJICAgIH0KKwkgICAgUFVTSF9CSU5BUllfRVhQUihYUEFUSF9PUF9BUkcsIG9wMSwgY3R4dC0+Y29tcC0+bGFzdCwgMCwgMCk7CisJICAgIG5iYXJncysrOworCSAgICBpZiAoQ1VSID09ICcpJykgYnJlYWs7CisJICAgIGlmIChDVVIgIT0gJywnKSB7CisJCVhQX0VSUk9SKFhQQVRIX0VYUFJfRVJST1IpOworCSAgICB9CisJICAgIE5FWFQ7CisJICAgIFNLSVBfQkxBTktTOworCX0KKyAgICB9CisgICAgUFVTSF9MT05HX0VYUFIoWFBBVEhfT1BfRlVOQ1RJT04sIG5iYXJncywgMCwgMCwKKwkgICAgICAgICAgIG5hbWUsIHByZWZpeCk7CisgICAgTkVYVDsKKyAgICBTS0lQX0JMQU5LUzsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBQcmltYXJ5RXhwcjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogIFsxNV0gICBQcmltYXJ5RXhwciA6Oj0gICBWYXJpYWJsZVJlZmVyZW5jZQorICogICAgICAgICAgICAgICAgfCAnKCcgRXhwciAnKScKKyAqICAgICAgICAgICAgICAgIHwgTGl0ZXJhbAorICogICAgICAgICAgICAgICAgfCBOdW1iZXIKKyAqICAgICAgICAgICAgICAgIHwgRnVuY3Rpb25DYWxsCisgKgorICogQ29tcGlsZSBhIHByaW1hcnkgZXhwcmVzc2lvbi4KKyAqLworc3RhdGljIHZvaWQKK3htbFhQYXRoQ29tcFByaW1hcnlFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgU0tJUF9CTEFOS1M7CisgICAgaWYgKENVUiA9PSAnJCcpIHhtbFhQYXRoQ29tcFZhcmlhYmxlUmVmZXJlbmNlKGN0eHQpOworICAgIGVsc2UgaWYgKENVUiA9PSAnKCcpIHsKKwlORVhUOworCVNLSVBfQkxBTktTOworCXhtbFhQYXRoQ29tcGlsZUV4cHIoY3R4dCwgMSk7CisJQ0hFQ0tfRVJST1I7CisJaWYgKENVUiAhPSAnKScpIHsKKwkgICAgWFBfRVJST1IoWFBBVEhfRVhQUl9FUlJPUik7CisJfQorCU5FWFQ7CisJU0tJUF9CTEFOS1M7CisgICAgfSBlbHNlIGlmIChJU19BU0NJSV9ESUdJVChDVVIpIHx8IChDVVIgPT0gJy4nICYmIElTX0FTQ0lJX0RJR0lUKE5YVCgxKSkpKSB7CisJeG1sWFBhdGhDb21wTnVtYmVyKGN0eHQpOworICAgIH0gZWxzZSBpZiAoKENVUiA9PSAnXCcnKSB8fCAoQ1VSID09ICciJykpIHsKKwl4bWxYUGF0aENvbXBMaXRlcmFsKGN0eHQpOworICAgIH0gZWxzZSB7CisJeG1sWFBhdGhDb21wRnVuY3Rpb25DYWxsKGN0eHQpOworICAgIH0KKyAgICBTS0lQX0JMQU5LUzsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBGaWx0ZXJFeHByOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWzIwXSAgIEZpbHRlckV4cHIgOjo9ICAgUHJpbWFyeUV4cHIKKyAqICAgICAgICAgICAgICAgfCBGaWx0ZXJFeHByIFByZWRpY2F0ZQorICoKKyAqIENvbXBpbGUgYSBmaWx0ZXIgZXhwcmVzc2lvbi4KKyAqIFNxdWFyZSBicmFja2V0cyBhcmUgdXNlZCB0byBmaWx0ZXIgZXhwcmVzc2lvbnMgaW4gdGhlIHNhbWUgd2F5IHRoYXQKKyAqIHRoZXkgYXJlIHVzZWQgaW4gbG9jYXRpb24gcGF0aHMuIEl0IGlzIGFuIGVycm9yIGlmIHRoZSBleHByZXNzaW9uIHRvCisgKiBiZSBmaWx0ZXJlZCBkb2VzIG5vdCBldmFsdWF0ZSB0byBhIG5vZGUtc2V0LiBUaGUgY29udGV4dCBub2RlIGxpc3QKKyAqIHVzZWQgZm9yIGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24gaW4gc3F1YXJlIGJyYWNrZXRzIGlzIHRoZSBub2RlLXNldAorICogdG8gYmUgZmlsdGVyZWQgbGlzdGVkIGluIGRvY3VtZW50IG9yZGVyLgorICovCisKK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBGaWx0ZXJFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sWFBhdGhDb21wUHJpbWFyeUV4cHIoY3R4dCk7CisgICAgQ0hFQ0tfRVJST1I7CisgICAgU0tJUF9CTEFOS1M7CisKKyAgICB3aGlsZSAoQ1VSID09ICdbJykgeworCXhtbFhQYXRoQ29tcFByZWRpY2F0ZShjdHh0LCAxKTsKKwlTS0lQX0JMQU5LUzsKKyAgICB9CisKKworfQorCisvKioKKyAqIHhtbFhQYXRoU2Nhbk5hbWU6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqIFRyaWNrZXJ5OiBwYXJzZSBhbiBYTUwgbmFtZSBidXQgd2l0aG91dCBjb25zdW1pbmcgdGhlIGlucHV0IGZsb3cKKyAqIE5lZWRlZCB0byBhdm9pZCBpbnNhbml0eSBpbiB0aGUgcGFyc2VyIHN0YXRlLgorICoKKyAqIFs0XSBOYW1lQ2hhciA6Oj0gTGV0dGVyIHwgRGlnaXQgfCAnLicgfCAnLScgfCAnXycgfCAnOicgfAorICogICAgICAgICAgICAgICAgICBDb21iaW5pbmdDaGFyIHwgRXh0ZW5kZXIKKyAqCisgKiBbNV0gTmFtZSA6Oj0gKExldHRlciB8ICdfJyB8ICc6JykgKE5hbWVDaGFyKSoKKyAqCisgKiBbNl0gTmFtZXMgOjo9IE5hbWUgKFMgTmFtZSkqCisgKgorICogUmV0dXJucyB0aGUgTmFtZSBwYXJzZWQgb3IgTlVMTAorICovCisKK3N0YXRpYyB4bWxDaGFyICoKK3htbFhQYXRoU2Nhbk5hbWUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBpbnQgbGVuID0gMCwgbDsKKyAgICBpbnQgYzsKKyAgICBjb25zdCB4bWxDaGFyICpjdXI7CisgICAgeG1sQ2hhciAqcmV0OworCisgICAgY3VyID0gY3R4dC0+Y3VyOworCisgICAgYyA9IENVUl9DSEFSKGwpOworICAgIGlmICgoYyA9PSAnICcpIHx8IChjID09ICc+JykgfHwgKGMgPT0gJy8nKSB8fCAvKiBhY2NlbGVyYXRvcnMgKi8KKwkoIUlTX0xFVFRFUihjKSAmJiAoYyAhPSAnXycpICYmCisgICAgICAgICAoYyAhPSAnOicpKSkgeworCXJldHVybihOVUxMKTsKKyAgICB9CisKKyAgICB3aGlsZSAoKGMgIT0gJyAnKSAmJiAoYyAhPSAnPicpICYmIChjICE9ICcvJykgJiYgLyogdGVzdCBiaWduYW1lLnhtbCAqLworCSAgICgoSVNfTEVUVEVSKGMpKSB8fCAoSVNfRElHSVQoYykpIHx8CisgICAgICAgICAgICAoYyA9PSAnLicpIHx8IChjID09ICctJykgfHwKKwkgICAgKGMgPT0gJ18nKSB8fCAoYyA9PSAnOicpIHx8CisJICAgIChJU19DT01CSU5JTkcoYykpIHx8CisJICAgIChJU19FWFRFTkRFUihjKSkpKSB7CisJbGVuICs9IGw7CisJTkVYVEwobCk7CisJYyA9IENVUl9DSEFSKGwpOworICAgIH0KKyAgICByZXQgPSB4bWxTdHJuZHVwKGN1ciwgY3R4dC0+Y3VyIC0gY3VyKTsKKyAgICBjdHh0LT5jdXIgPSBjdXI7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wUGF0aEV4cHI6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqICBbMTldICAgUGF0aEV4cHIgOjo9ICAgTG9jYXRpb25QYXRoCisgKiAgICAgICAgICAgICAgIHwgRmlsdGVyRXhwcgorICogICAgICAgICAgICAgICB8IEZpbHRlckV4cHIgJy8nIFJlbGF0aXZlTG9jYXRpb25QYXRoCisgKiAgICAgICAgICAgICAgIHwgRmlsdGVyRXhwciAnLy8nIFJlbGF0aXZlTG9jYXRpb25QYXRoCisgKgorICogQ29tcGlsZSBhIHBhdGggZXhwcmVzc2lvbi4KKyAqIFRoZSAvIG9wZXJhdG9yIGFuZCAvLyBvcGVyYXRvcnMgY29tYmluZSBhbiBhcmJpdHJhcnkgZXhwcmVzc2lvbgorICogYW5kIGEgcmVsYXRpdmUgbG9jYXRpb24gcGF0aC4gSXQgaXMgYW4gZXJyb3IgaWYgdGhlIGV4cHJlc3Npb24KKyAqIGRvZXMgbm90IGV2YWx1YXRlIHRvIGEgbm9kZS1zZXQuCisgKiBUaGUgLyBvcGVyYXRvciBkb2VzIGNvbXBvc2l0aW9uIGluIHRoZSBzYW1lIHdheSBhcyB3aGVuIC8gaXMKKyAqIHVzZWQgaW4gYSBsb2NhdGlvbiBwYXRoLiBBcyBpbiBsb2NhdGlvbiBwYXRocywgLy8gaXMgc2hvcnQgZm9yCisgKiAvZGVzY2VuZGFudC1vci1zZWxmOjpub2RlKCkvLgorICovCisKK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBQYXRoRXhwcih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIGludCBsYyA9IDE7ICAgICAgICAgICAvKiBTaG91bGQgd2UgYnJhbmNoIHRvIExvY2F0aW9uUGF0aCA/ICAgICAgICAgKi8KKyAgICB4bWxDaGFyICpuYW1lID0gTlVMTDsgLyogd2UgbWF5IGhhdmUgdG8gcHJlcGFyc2UgYSBuYW1lIHRvIGZpbmQgb3V0ICovCisKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoKENVUiA9PSAnJCcpIHx8IChDVVIgPT0gJygnKSB8fAorCShJU19BU0NJSV9ESUdJVChDVVIpKSB8fAorICAgICAgICAoQ1VSID09ICdcJycpIHx8IChDVVIgPT0gJyInKSB8fAorCShDVVIgPT0gJy4nICYmIElTX0FTQ0lJX0RJR0lUKE5YVCgxKSkpKSB7CisJbGMgPSAwOworICAgIH0gZWxzZSBpZiAoQ1VSID09ICcqJykgeworCS8qIHJlbGF0aXZlIG9yIGFic29sdXRlIGxvY2F0aW9uIHBhdGggKi8KKwlsYyA9IDE7CisgICAgfSBlbHNlIGlmIChDVVIgPT0gJy8nKSB7CisJLyogcmVsYXRpdmUgb3IgYWJzb2x1dGUgbG9jYXRpb24gcGF0aCAqLworCWxjID0gMTsKKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnQCcpIHsKKwkvKiByZWxhdGl2ZSBhYmJyZXZpYXRlZCBhdHRyaWJ1dGUgbG9jYXRpb24gcGF0aCAqLworCWxjID0gMTsKKyAgICB9IGVsc2UgaWYgKENVUiA9PSAnLicpIHsKKwkvKiByZWxhdGl2ZSBhYmJyZXZpYXRlZCBhdHRyaWJ1dGUgbG9jYXRpb24gcGF0aCAqLworCWxjID0gMTsKKyAgICB9IGVsc2UgeworCS8qCisJICogUHJvYmxlbSBpcyBmaW5kaW5nIGlmIHdlIGhhdmUgYSBuYW1lIGhlcmUgd2hldGhlciBpdCdzOgorCSAqICAgLSBhIG5vZGV0eXBlCisJICogICAtIGEgZnVuY3Rpb24gY2FsbCBpbiB3aGljaCBjYXNlIGl0J3MgZm9sbG93ZWQgYnkgJygnCisJICogICAtIGFuIGF4aXMgaW4gd2hpY2ggY2FzZSBpdCdzIGZvbGxvd2VkIGJ5ICc6JworCSAqICAgLSBhIGVsZW1lbnQgbmFtZQorCSAqIFdlIGRvIGFuIGEgcHJpb3JpIGFuYWx5c2lzIGhlcmUgcmF0aGVyIHRoYW4gaGF2aW5nIHRvCisJICogbWFpbnRhaW4gcGFyc2VkIHRva2VuIGNvbnRlbnQgdGhyb3VnaCB0aGUgcmVjdXJzaXZlIGZ1bmN0aW9uCisJICogY2FsbHMuIFRoaXMgbG9va3MgdWdsaWVyIGJ1dCBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8KKwkgKiByZWFkL3dyaXRlL2RlYnVnLgorCSAqLworCVNLSVBfQkxBTktTOworCW5hbWUgPSB4bWxYUGF0aFNjYW5OYW1lKGN0eHQpOworCWlmICgobmFtZSAhPSBOVUxMKSAmJiAoeG1sU3Ryc3RyKG5hbWUsICh4bWxDaGFyICopICI6OiIpICE9IE5VTEwpKSB7CisjaWZkZWYgREVCVUdfU1RFUAorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJICAgICJQYXRoRXhwcjogQXhpc1xuIik7CisjZW5kaWYKKwkgICAgbGMgPSAxOworCSAgICB4bWxGcmVlKG5hbWUpOworCX0gZWxzZSBpZiAobmFtZSAhPSBOVUxMKSB7CisJICAgIGludCBsZW4gPXhtbFN0cmxlbihuYW1lKTsKKworCisJICAgIHdoaWxlIChOWFQobGVuKSAhPSAwKSB7CisJCWlmIChOWFQobGVuKSA9PSAnLycpIHsKKwkJICAgIC8qIGVsZW1lbnQgbmFtZSAqLworI2lmZGVmIERFQlVHX1NURVAKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJQYXRoRXhwcjogQWJiclJlbExvY2F0aW9uXG4iKTsKKyNlbmRpZgorCQkgICAgbGMgPSAxOworCQkgICAgYnJlYWs7CisJCX0gZWxzZSBpZiAoSVNfQkxBTktfQ0goTlhUKGxlbikpKSB7CisJCSAgICAvKiBpZ25vcmUgYmxhbmtzICovCisJCSAgICA7CisJCX0gZWxzZSBpZiAoTlhUKGxlbikgPT0gJzonKSB7CisjaWZkZWYgREVCVUdfU1RFUAorCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgIlBhdGhFeHByOiBBYmJyUmVsTG9jYXRpb25cbiIpOworI2VuZGlmCisJCSAgICBsYyA9IDE7CisJCSAgICBicmVhazsKKwkJfSBlbHNlIGlmICgoTlhUKGxlbikgPT0gJygnKSkgeworCQkgICAgLyogTm90ZSBUeXBlIG9yIEZ1bmN0aW9uICovCisJCSAgICBpZiAoeG1sWFBhdGhJc05vZGVUeXBlKG5hbWUpKSB7CisjaWZkZWYgREVCVUdfU1RFUAorCQkgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJCSJQYXRoRXhwcjogVHlwZSBzZWFyY2hcbiIpOworI2VuZGlmCisJCQlsYyA9IDE7CisJCSAgICB9IGVsc2UgeworI2lmZGVmIERFQlVHX1NURVAKKwkJICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkiUGF0aEV4cHI6IGZ1bmN0aW9uIGNhbGxcbiIpOworI2VuZGlmCisJCQlsYyA9IDA7CisJCSAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCQl9IGVsc2UgaWYgKChOWFQobGVuKSA9PSAnWycpKSB7CisJCSAgICAvKiBlbGVtZW50IG5hbWUgKi8KKyNpZmRlZiBERUJVR19TVEVQCisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiUGF0aEV4cHI6IEFiYnJSZWxMb2NhdGlvblxuIik7CisjZW5kaWYKKwkJICAgIGxjID0gMTsKKwkJICAgIGJyZWFrOworCQl9IGVsc2UgaWYgKChOWFQobGVuKSA9PSAnPCcpIHx8IChOWFQobGVuKSA9PSAnPicpIHx8CisJCQkgICAoTlhUKGxlbikgPT0gJz0nKSkgeworCQkgICAgbGMgPSAxOworCQkgICAgYnJlYWs7CisJCX0gZWxzZSB7CisJCSAgICBsYyA9IDE7CisJCSAgICBicmVhazsKKwkJfQorCQlsZW4rKzsKKwkgICAgfQorCSAgICBpZiAoTlhUKGxlbikgPT0gMCkgeworI2lmZGVmIERFQlVHX1NURVAKKwkJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkiUGF0aEV4cHI6IEFiYnJSZWxMb2NhdGlvblxuIik7CisjZW5kaWYKKwkJLyogZWxlbWVudCBuYW1lICovCisJCWxjID0gMTsKKwkgICAgfQorCSAgICB4bWxGcmVlKG5hbWUpOworCX0gZWxzZSB7CisJICAgIC8qIG1ha2Ugc3VyZSBhbGwgY2FzZXMgYXJlIGNvdmVyZWQgZXhwbGljaXRseSAqLworCSAgICBYUF9FUlJPUihYUEFUSF9FWFBSX0VSUk9SKTsKKwl9CisgICAgfQorCisgICAgaWYgKGxjKSB7CisJaWYgKENVUiA9PSAnLycpIHsKKwkgICAgUFVTSF9MRUFWRV9FWFBSKFhQQVRIX09QX1JPT1QsIDAsIDApOworCX0gZWxzZSB7CisJICAgIFBVU0hfTEVBVkVfRVhQUihYUEFUSF9PUF9OT0RFLCAwLCAwKTsKKwl9CisJeG1sWFBhdGhDb21wTG9jYXRpb25QYXRoKGN0eHQpOworICAgIH0gZWxzZSB7CisJeG1sWFBhdGhDb21wRmlsdGVyRXhwcihjdHh0KTsKKwlDSEVDS19FUlJPUjsKKwlpZiAoKENVUiA9PSAnLycpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCSAgICBTS0lQKDIpOworCSAgICBTS0lQX0JMQU5LUzsKKworCSAgICBQVVNIX0xPTkdfRVhQUihYUEFUSF9PUF9DT0xMRUNULCBBWElTX0RFU0NFTkRBTlRfT1JfU0VMRiwKKwkJICAgIE5PREVfVEVTVF9UWVBFLCBOT0RFX1RZUEVfTk9ERSwgTlVMTCwgTlVMTCk7CisJICAgIFBVU0hfVU5BUllfRVhQUihYUEFUSF9PUF9SRVNFVCwgY3R4dC0+Y29tcC0+bGFzdCwgMSwgMCk7CisKKwkgICAgeG1sWFBhdGhDb21wUmVsYXRpdmVMb2NhdGlvblBhdGgoY3R4dCk7CisJfSBlbHNlIGlmIChDVVIgPT0gJy8nKSB7CisJICAgIHhtbFhQYXRoQ29tcFJlbGF0aXZlTG9jYXRpb25QYXRoKGN0eHQpOworCX0KKyAgICB9CisgICAgU0tJUF9CTEFOS1M7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wVW5pb25FeHByOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWzE4XSAgIFVuaW9uRXhwciA6Oj0gICBQYXRoRXhwcgorICogICAgICAgICAgICAgICB8IFVuaW9uRXhwciAnfCcgUGF0aEV4cHIKKyAqCisgKiBDb21waWxlIGFuIHVuaW9uIGV4cHJlc3Npb24uCisgKi8KKworc3RhdGljIHZvaWQKK3htbFhQYXRoQ29tcFVuaW9uRXhwcih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworICAgIHhtbFhQYXRoQ29tcFBhdGhFeHByKGN0eHQpOworICAgIENIRUNLX0VSUk9SOworICAgIFNLSVBfQkxBTktTOworICAgIHdoaWxlIChDVVIgPT0gJ3wnKSB7CisJaW50IG9wMSA9IGN0eHQtPmNvbXAtPmxhc3Q7CisJUFVTSF9MRUFWRV9FWFBSKFhQQVRIX09QX05PREUsIDAsIDApOworCisJTkVYVDsKKwlTS0lQX0JMQU5LUzsKKwl4bWxYUGF0aENvbXBQYXRoRXhwcihjdHh0KTsKKworCVBVU0hfQklOQVJZX0VYUFIoWFBBVEhfT1BfVU5JT04sIG9wMSwgY3R4dC0+Y29tcC0+bGFzdCwgMCwgMCk7CisKKwlTS0lQX0JMQU5LUzsKKyAgICB9Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21wVW5hcnlFeHByOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWzI3XSAgIFVuYXJ5RXhwciA6Oj0gICBVbmlvbkV4cHIKKyAqICAgICAgICAgICAgICAgICAgIHwgJy0nIFVuYXJ5RXhwcgorICoKKyAqIENvbXBpbGUgYW4gdW5hcnkgZXhwcmVzc2lvbi4KKyAqLworCitzdGF0aWMgdm9pZAoreG1sWFBhdGhDb21wVW5hcnlFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgaW50IG1pbnVzID0gMDsKKyAgICBpbnQgZm91bmQgPSAwOworCisgICAgU0tJUF9CTEFOS1M7CisgICAgd2hpbGUgKENVUiA9PSAnLScpIHsKKyAgICAgICAgbWludXMgPSAxIC0gbWludXM7CisJZm91bmQgPSAxOworCU5FWFQ7CisJU0tJUF9CTEFOS1M7CisgICAgfQorCisgICAgeG1sWFBhdGhDb21wVW5pb25FeHByKGN0eHQpOworICAgIENIRUNLX0VSUk9SOworICAgIGlmIChmb3VuZCkgeworCWlmIChtaW51cykKKwkgICAgUFVTSF9VTkFSWV9FWFBSKFhQQVRIX09QX1BMVVMsIGN0eHQtPmNvbXAtPmxhc3QsIDIsIDApOworCWVsc2UKKwkgICAgUFVTSF9VTkFSWV9FWFBSKFhQQVRIX09QX1BMVVMsIGN0eHQtPmNvbXAtPmxhc3QsIDMsIDApOworICAgIH0KK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBNdWx0aXBsaWNhdGl2ZUV4cHI6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqICBbMjZdICAgTXVsdGlwbGljYXRpdmVFeHByIDo6PSAgIFVuYXJ5RXhwcgorICogICAgICAgICAgICAgICAgICAgfCBNdWx0aXBsaWNhdGl2ZUV4cHIgTXVsdGlwbHlPcGVyYXRvciBVbmFyeUV4cHIKKyAqICAgICAgICAgICAgICAgICAgIHwgTXVsdGlwbGljYXRpdmVFeHByICdkaXYnIFVuYXJ5RXhwcgorICogICAgICAgICAgICAgICAgICAgfCBNdWx0aXBsaWNhdGl2ZUV4cHIgJ21vZCcgVW5hcnlFeHByCisgKiAgWzM0XSAgIE11bHRpcGx5T3BlcmF0b3IgOjo9ICAgJyonCisgKgorICogQ29tcGlsZSBhbiBBZGRpdGl2ZSBleHByZXNzaW9uLgorICovCisKK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBNdWx0aXBsaWNhdGl2ZUV4cHIoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aENvbXBVbmFyeUV4cHIoY3R4dCk7CisgICAgQ0hFQ0tfRVJST1I7CisgICAgU0tJUF9CTEFOS1M7CisgICAgd2hpbGUgKChDVVIgPT0gJyonKSB8fAorICAgICAgICAgICAoKENVUiA9PSAnZCcpICYmIChOWFQoMSkgPT0gJ2knKSAmJiAoTlhUKDIpID09ICd2JykpIHx8CisgICAgICAgICAgICgoQ1VSID09ICdtJykgJiYgKE5YVCgxKSA9PSAnbycpICYmIChOWFQoMikgPT0gJ2QnKSkpIHsKKwlpbnQgb3AgPSAtMTsKKwlpbnQgb3AxID0gY3R4dC0+Y29tcC0+bGFzdDsKKworICAgICAgICBpZiAoQ1VSID09ICcqJykgeworCSAgICBvcCA9IDA7CisJICAgIE5FWFQ7CisJfSBlbHNlIGlmIChDVVIgPT0gJ2QnKSB7CisJICAgIG9wID0gMTsKKwkgICAgU0tJUCgzKTsKKwl9IGVsc2UgaWYgKENVUiA9PSAnbScpIHsKKwkgICAgb3AgPSAyOworCSAgICBTS0lQKDMpOworCX0KKwlTS0lQX0JMQU5LUzsKKyAgICAgICAgeG1sWFBhdGhDb21wVW5hcnlFeHByKGN0eHQpOworCUNIRUNLX0VSUk9SOworCVBVU0hfQklOQVJZX0VYUFIoWFBBVEhfT1BfTVVMVCwgb3AxLCBjdHh0LT5jb21wLT5sYXN0LCBvcCwgMCk7CisJU0tJUF9CTEFOS1M7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcEFkZGl0aXZlRXhwcjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogIFsyNV0gICBBZGRpdGl2ZUV4cHIgOjo9ICAgTXVsdGlwbGljYXRpdmVFeHByCisgKiAgICAgICAgICAgICAgICAgICB8IEFkZGl0aXZlRXhwciAnKycgTXVsdGlwbGljYXRpdmVFeHByCisgKiAgICAgICAgICAgICAgICAgICB8IEFkZGl0aXZlRXhwciAnLScgTXVsdGlwbGljYXRpdmVFeHByCisgKgorICogQ29tcGlsZSBhbiBBZGRpdGl2ZSBleHByZXNzaW9uLgorICovCisKK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBBZGRpdGl2ZUV4cHIoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKworICAgIHhtbFhQYXRoQ29tcE11bHRpcGxpY2F0aXZlRXhwcihjdHh0KTsKKyAgICBDSEVDS19FUlJPUjsKKyAgICBTS0lQX0JMQU5LUzsKKyAgICB3aGlsZSAoKENVUiA9PSAnKycpIHx8IChDVVIgPT0gJy0nKSkgeworCWludCBwbHVzOworCWludCBvcDEgPSBjdHh0LT5jb21wLT5sYXN0OworCisgICAgICAgIGlmIChDVVIgPT0gJysnKSBwbHVzID0gMTsKKwllbHNlIHBsdXMgPSAwOworCU5FWFQ7CisJU0tJUF9CTEFOS1M7CisgICAgICAgIHhtbFhQYXRoQ29tcE11bHRpcGxpY2F0aXZlRXhwcihjdHh0KTsKKwlDSEVDS19FUlJPUjsKKwlQVVNIX0JJTkFSWV9FWFBSKFhQQVRIX09QX1BMVVMsIG9wMSwgY3R4dC0+Y29tcC0+bGFzdCwgcGx1cywgMCk7CisJU0tJUF9CTEFOS1M7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcFJlbGF0aW9uYWxFeHByOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWzI0XSAgIFJlbGF0aW9uYWxFeHByIDo6PSAgIEFkZGl0aXZlRXhwcgorICogICAgICAgICAgICAgICAgIHwgUmVsYXRpb25hbEV4cHIgJzwnIEFkZGl0aXZlRXhwcgorICogICAgICAgICAgICAgICAgIHwgUmVsYXRpb25hbEV4cHIgJz4nIEFkZGl0aXZlRXhwcgorICogICAgICAgICAgICAgICAgIHwgUmVsYXRpb25hbEV4cHIgJzw9JyBBZGRpdGl2ZUV4cHIKKyAqICAgICAgICAgICAgICAgICB8IFJlbGF0aW9uYWxFeHByICc+PScgQWRkaXRpdmVFeHByCisgKgorICogIEEgPD0gQiA+IEMgaXMgYWxsb3dlZCA/IEFuc3dlciBmcm9tIEphbWVzLCB5ZXMgd2l0aAorICogIChBZGRpdGl2ZUV4cHIgPD0gQWRkaXRpdmVFeHByKSA+IEFkZGl0aXZlRXhwcgorICogIHdoaWNoIGlzIGJhc2ljYWxseSB3aGF0IGdvdCBpbXBsZW1lbnRlZC4KKyAqCisgKiBDb21waWxlIGEgUmVsYXRpb25hbCBleHByZXNzaW9uLCB0aGVuIHB1c2ggdGhlIHJlc3VsdAorICogb24gdGhlIHN0YWNrCisgKi8KKworc3RhdGljIHZvaWQKK3htbFhQYXRoQ29tcFJlbGF0aW9uYWxFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sWFBhdGhDb21wQWRkaXRpdmVFeHByKGN0eHQpOworICAgIENIRUNLX0VSUk9SOworICAgIFNLSVBfQkxBTktTOworICAgIHdoaWxlICgoQ1VSID09ICc8JykgfHwKKyAgICAgICAgICAgKENVUiA9PSAnPicpIHx8CisgICAgICAgICAgICgoQ1VSID09ICc8JykgJiYgKE5YVCgxKSA9PSAnPScpKSB8fAorICAgICAgICAgICAoKENVUiA9PSAnPicpICYmIChOWFQoMSkgPT0gJz0nKSkpIHsKKwlpbnQgaW5mLCBzdHJpY3Q7CisJaW50IG9wMSA9IGN0eHQtPmNvbXAtPmxhc3Q7CisKKyAgICAgICAgaWYgKENVUiA9PSAnPCcpIGluZiA9IDE7CisJZWxzZSBpbmYgPSAwOworCWlmIChOWFQoMSkgPT0gJz0nKSBzdHJpY3QgPSAwOworCWVsc2Ugc3RyaWN0ID0gMTsKKwlORVhUOworCWlmICghc3RyaWN0KSBORVhUOworCVNLSVBfQkxBTktTOworICAgICAgICB4bWxYUGF0aENvbXBBZGRpdGl2ZUV4cHIoY3R4dCk7CisJQ0hFQ0tfRVJST1I7CisJUFVTSF9CSU5BUllfRVhQUihYUEFUSF9PUF9DTVAsIG9wMSwgY3R4dC0+Y29tcC0+bGFzdCwgaW5mLCBzdHJpY3QpOworCVNLSVBfQkxBTktTOworICAgIH0KK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBFcXVhbGl0eUV4cHI6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqICBbMjNdICAgRXF1YWxpdHlFeHByIDo6PSAgIFJlbGF0aW9uYWxFeHByCisgKiAgICAgICAgICAgICAgICAgfCBFcXVhbGl0eUV4cHIgJz0nIFJlbGF0aW9uYWxFeHByCisgKiAgICAgICAgICAgICAgICAgfCBFcXVhbGl0eUV4cHIgJyE9JyBSZWxhdGlvbmFsRXhwcgorICoKKyAqICBBICE9IEIgIT0gQyBpcyBhbGxvd2VkID8gQW5zd2VyIGZyb20gSmFtZXMsIHllcyB3aXRoCisgKiAgKFJlbGF0aW9uYWxFeHByID0gUmVsYXRpb25hbEV4cHIpID0gUmVsYXRpb25hbEV4cHIKKyAqICAoUmVsYXRpb25hbEV4cHIgIT0gUmVsYXRpb25hbEV4cHIpICE9IFJlbGF0aW9uYWxFeHByCisgKiAgd2hpY2ggaXMgYmFzaWNhbGx5IHdoYXQgZ290IGltcGxlbWVudGVkLgorICoKKyAqIENvbXBpbGUgYW4gRXF1YWxpdHkgZXhwcmVzc2lvbi4KKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBFcXVhbGl0eUV4cHIoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICB4bWxYUGF0aENvbXBSZWxhdGlvbmFsRXhwcihjdHh0KTsKKyAgICBDSEVDS19FUlJPUjsKKyAgICBTS0lQX0JMQU5LUzsKKyAgICB3aGlsZSAoKENVUiA9PSAnPScpIHx8ICgoQ1VSID09ICchJykgJiYgKE5YVCgxKSA9PSAnPScpKSkgeworCWludCBlcTsKKwlpbnQgb3AxID0gY3R4dC0+Y29tcC0+bGFzdDsKKworICAgICAgICBpZiAoQ1VSID09ICc9JykgZXEgPSAxOworCWVsc2UgZXEgPSAwOworCU5FWFQ7CisJaWYgKCFlcSkgTkVYVDsKKwlTS0lQX0JMQU5LUzsKKyAgICAgICAgeG1sWFBhdGhDb21wUmVsYXRpb25hbEV4cHIoY3R4dCk7CisJQ0hFQ0tfRVJST1I7CisJUFVTSF9CSU5BUllfRVhQUihYUEFUSF9PUF9FUVVBTCwgb3AxLCBjdHh0LT5jb21wLT5sYXN0LCBlcSwgMCk7CisJU0tJUF9CTEFOS1M7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcEFuZEV4cHI6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqICBbMjJdICAgQW5kRXhwciA6Oj0gICBFcXVhbGl0eUV4cHIKKyAqICAgICAgICAgICAgICAgICB8IEFuZEV4cHIgJ2FuZCcgRXF1YWxpdHlFeHByCisgKgorICogQ29tcGlsZSBhbiBBTkQgZXhwcmVzc2lvbi4KKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBBbmRFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sWFBhdGhDb21wRXF1YWxpdHlFeHByKGN0eHQpOworICAgIENIRUNLX0VSUk9SOworICAgIFNLSVBfQkxBTktTOworICAgIHdoaWxlICgoQ1VSID09ICdhJykgJiYgKE5YVCgxKSA9PSAnbicpICYmIChOWFQoMikgPT0gJ2QnKSkgeworCWludCBvcDEgPSBjdHh0LT5jb21wLT5sYXN0OworICAgICAgICBTS0lQKDMpOworCVNLSVBfQkxBTktTOworICAgICAgICB4bWxYUGF0aENvbXBFcXVhbGl0eUV4cHIoY3R4dCk7CisJQ0hFQ0tfRVJST1I7CisJUFVTSF9CSU5BUllfRVhQUihYUEFUSF9PUF9BTkQsIG9wMSwgY3R4dC0+Y29tcC0+bGFzdCwgMCwgMCk7CisJU0tJUF9CTEFOS1M7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcGlsZUV4cHI6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICoKKyAqICBbMTRdICAgRXhwciA6Oj0gICBPckV4cHIKKyAqICBbMjFdICAgT3JFeHByIDo6PSAgIEFuZEV4cHIKKyAqICAgICAgICAgICAgICAgICB8IE9yRXhwciAnb3InIEFuZEV4cHIKKyAqCisgKiBQYXJzZSBhbmQgY29tcGlsZSBhbiBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBpbGVFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgc29ydCkgeworICAgIHhtbFhQYXRoQ29tcEFuZEV4cHIoY3R4dCk7CisgICAgQ0hFQ0tfRVJST1I7CisgICAgU0tJUF9CTEFOS1M7CisgICAgd2hpbGUgKChDVVIgPT0gJ28nKSAmJiAoTlhUKDEpID09ICdyJykpIHsKKwlpbnQgb3AxID0gY3R4dC0+Y29tcC0+bGFzdDsKKyAgICAgICAgU0tJUCgyKTsKKwlTS0lQX0JMQU5LUzsKKyAgICAgICAgeG1sWFBhdGhDb21wQW5kRXhwcihjdHh0KTsKKwlDSEVDS19FUlJPUjsKKwlQVVNIX0JJTkFSWV9FWFBSKFhQQVRIX09QX09SLCBvcDEsIGN0eHQtPmNvbXAtPmxhc3QsIDAsIDApOworCVNLSVBfQkxBTktTOworICAgIH0KKyAgICBpZiAoKHNvcnQpICYmIChjdHh0LT5jb21wLT5zdGVwc1tjdHh0LT5jb21wLT5sYXN0XS5vcCAhPSBYUEFUSF9PUF9WQUxVRSkpIHsKKwkvKiBtb3JlIG9wcyBjb3VsZCBiZSBvcHRpbWl6ZWQgdG9vICovCisJLyoKKwkqIFRoaXMgaXMgdGhlIG1haW4gcGxhY2UgdG8gZWxpbWluYXRlIHNvcnRpbmcgZm9yCisJKiBvcGVyYXRpb25zIHdoaWNoIGRvbid0IHJlcXVpcmUgYSBzb3J0ZWQgbm9kZS1zZXQuCisJKiBFLmcuIGNvdW50KCkuCisJKi8KKwlQVVNIX1VOQVJZX0VYUFIoWFBBVEhfT1BfU09SVCwgY3R4dC0+Y29tcC0+bGFzdCAsIDAsIDApOworICAgIH0KK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBQcmVkaWNhdGU6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQGZpbHRlcjogIGFjdCBhcyBhIGZpbHRlcgorICoKKyAqICBbOF0gICBQcmVkaWNhdGUgOjo9ICAgJ1snIFByZWRpY2F0ZUV4cHIgJ10nCisgKiAgWzldICAgUHJlZGljYXRlRXhwciA6Oj0gICBFeHByCisgKgorICogQ29tcGlsZSBhIHByZWRpY2F0ZSBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBQcmVkaWNhdGUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBmaWx0ZXIpIHsKKyAgICBpbnQgb3AxID0gY3R4dC0+Y29tcC0+bGFzdDsKKworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgIT0gJ1snKSB7CisJWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IpOworICAgIH0KKyAgICBORVhUOworICAgIFNLSVBfQkxBTktTOworCisgICAgY3R4dC0+Y29tcC0+bGFzdCA9IC0xOworICAgIC8qCisgICAgKiBUaGlzIGNhbGwgdG8geG1sWFBhdGhDb21waWxlRXhwcigpIHdpbGwgZGVhY3RpdmF0ZSBzb3J0aW5nCisgICAgKiBvZiB0aGUgcHJlZGljYXRlIHJlc3VsdC4KKyAgICAqIFRPRE86IFNvcnRpbmcgaXMgc3RpbGwgYWN0aXZhdGVkIGZvciBmaWx0ZXJzLCBzaW5jZSBJJ20gbm90CisgICAgKiAgc3VyZSBpZiBuZWVkZWQuIE5vcm1hbGx5IHNvcnRpbmcgc2hvdWxkIG5vdCBiZSBuZWVkZWQsIHNpbmNlCisgICAgKiAgYSBmaWx0ZXIgY2FuIG9ubHkgZGltaW5pc2ggdGhlIG51bWJlciBvZiBpdGVtcyBpbiBhIHNlcXVlbmNlLAorICAgICogIGJ1dCB3b24ndCBjaGFuZ2UgaXRzIG9yZGVyOyBzbyBpZiB0aGUgaW5pdGlhbCBzZXF1ZW5jZSBpcyBzb3J0ZWQsCisgICAgKiAgc3Vic2VxdWVudCBzb3J0aW5nIGlzIG5vdCBuZWVkZWQuCisgICAgKi8KKyAgICBpZiAoISBmaWx0ZXIpCisJeG1sWFBhdGhDb21waWxlRXhwcihjdHh0LCAwKTsKKyAgICBlbHNlCisJeG1sWFBhdGhDb21waWxlRXhwcihjdHh0LCAxKTsKKyAgICBDSEVDS19FUlJPUjsKKworICAgIGlmIChDVVIgIT0gJ10nKSB7CisJWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9QUkVESUNBVEVfRVJST1IpOworICAgIH0KKworICAgIGlmIChmaWx0ZXIpCisJUFVTSF9CSU5BUllfRVhQUihYUEFUSF9PUF9GSUxURVIsIG9wMSwgY3R4dC0+Y29tcC0+bGFzdCwgMCwgMCk7CisgICAgZWxzZQorCVBVU0hfQklOQVJZX0VYUFIoWFBBVEhfT1BfUFJFRElDQVRFLCBvcDEsIGN0eHQtPmNvbXAtPmxhc3QsIDAsIDApOworCisgICAgTkVYVDsKKyAgICBTS0lQX0JMQU5LUzsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBOb2RlVGVzdDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAdGVzdDogIHBvaW50ZXIgdG8gYSB4bWxYUGF0aFRlc3RWYWwKKyAqIEB0eXBlOiAgcG9pbnRlciB0byBhIHhtbFhQYXRoVHlwZVZhbAorICogQHByZWZpeDogIHBsYWNlaG9sZGVyIGZvciBhIHBvc3NpYmxlIG5hbWUgcHJlZml4CisgKgorICogWzddIE5vZGVUZXN0IDo6PSAgIE5hbWVUZXN0CisgKgkJICAgIHwgTm9kZVR5cGUgJygnICcpJworICoJCSAgICB8ICdwcm9jZXNzaW5nLWluc3RydWN0aW9uJyAnKCcgTGl0ZXJhbCAnKScKKyAqCisgKiBbMzddIE5hbWVUZXN0IDo6PSAgJyonCisgKgkJICAgIHwgTkNOYW1lICc6JyAnKicKKyAqCQkgICAgfCBRTmFtZQorICogWzM4XSBOb2RlVHlwZSA6Oj0gJ2NvbW1lbnQnCisgKgkJICAgfCAndGV4dCcKKyAqCQkgICB8ICdwcm9jZXNzaW5nLWluc3RydWN0aW9uJworICoJCSAgIHwgJ25vZGUnCisgKgorICogUmV0dXJucyB0aGUgbmFtZSBmb3VuZCBhbmQgdXBkYXRlcyBAdGVzdCwgQHR5cGUgYW5kIEBwcmVmaXggYXBwcm9wcmlhdGVseQorICovCitzdGF0aWMgeG1sQ2hhciAqCit4bWxYUGF0aENvbXBOb2RlVGVzdCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgeG1sWFBhdGhUZXN0VmFsICp0ZXN0LAorCSAgICAgICAgICAgICB4bWxYUGF0aFR5cGVWYWwgKnR5cGUsIGNvbnN0IHhtbENoYXIgKipwcmVmaXgsCisJCSAgICAgeG1sQ2hhciAqbmFtZSkgeworICAgIGludCBibGFua3M7CisKKyAgICBpZiAoKHRlc3QgPT0gTlVMTCkgfHwgKHR5cGUgPT0gTlVMTCkgfHwgKHByZWZpeCA9PSBOVUxMKSkgeworCVNUUkFOR0U7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICAqdHlwZSA9ICh4bWxYUGF0aFR5cGVWYWwpIDA7CisgICAgKnRlc3QgPSAoeG1sWFBhdGhUZXN0VmFsKSAwOworICAgICpwcmVmaXggPSBOVUxMOworICAgIFNLSVBfQkxBTktTOworCisgICAgaWYgKChuYW1lID09IE5VTEwpICYmIChDVVIgPT0gJyonKSkgeworCS8qCisJICogQWxsIGVsZW1lbnRzCisJICovCisJTkVYVDsKKwkqdGVzdCA9IE5PREVfVEVTVF9BTEw7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmIChuYW1lID09IE5VTEwpCisJbmFtZSA9IHhtbFhQYXRoUGFyc2VOQ05hbWUoY3R4dCk7CisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworCVhQX0VSUk9STlVMTChYUEFUSF9FWFBSX0VSUk9SKTsKKyAgICB9CisKKyAgICBibGFua3MgPSBJU19CTEFOS19DSChDVVIpOworICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgPT0gJygnKSB7CisJTkVYVDsKKwkvKgorCSAqIE5vZGVUeXBlIG9yIFBJIHNlYXJjaAorCSAqLworCWlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAiY29tbWVudCIpKQorCSAgICAqdHlwZSA9IE5PREVfVFlQRV9DT01NRU5UOworCWVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJub2RlIikpCisJICAgICp0eXBlID0gTk9ERV9UWVBFX05PREU7CisJZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgInByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24iKSkKKwkgICAgKnR5cGUgPSBOT0RFX1RZUEVfUEk7CisJZWxzZSBpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgInRleHQiKSkKKwkgICAgKnR5cGUgPSBOT0RFX1RZUEVfVEVYVDsKKwllbHNlIHsKKwkgICAgaWYgKG5hbWUgIT0gTlVMTCkKKwkJeG1sRnJlZShuYW1lKTsKKwkgICAgWFBfRVJST1JOVUxMKFhQQVRIX0VYUFJfRVJST1IpOworCX0KKworCSp0ZXN0ID0gTk9ERV9URVNUX1RZUEU7CisKKwlTS0lQX0JMQU5LUzsKKwlpZiAoKnR5cGUgPT0gTk9ERV9UWVBFX1BJKSB7CisJICAgIC8qCisJICAgICAqIFNwZWNpZmljIGNhc2U6IHNlYXJjaCBhIFBJIGJ5IG5hbWUuCisJICAgICAqLworCSAgICBpZiAobmFtZSAhPSBOVUxMKQorCQl4bWxGcmVlKG5hbWUpOworCSAgICBuYW1lID0gTlVMTDsKKwkgICAgaWYgKENVUiAhPSAnKScpIHsKKwkJbmFtZSA9IHhtbFhQYXRoUGFyc2VMaXRlcmFsKGN0eHQpOworCQlDSEVDS19FUlJPUiBOVUxMOworCQkqdGVzdCA9IE5PREVfVEVTVF9QSTsKKwkJU0tJUF9CTEFOS1M7CisJICAgIH0KKwl9CisJaWYgKENVUiAhPSAnKScpIHsKKwkgICAgaWYgKG5hbWUgIT0gTlVMTCkKKwkJeG1sRnJlZShuYW1lKTsKKwkgICAgWFBfRVJST1JOVUxMKFhQQVRIX1VOQ0xPU0VEX0VSUk9SKTsKKwl9CisJTkVYVDsKKwlyZXR1cm4obmFtZSk7CisgICAgfQorICAgICp0ZXN0ID0gTk9ERV9URVNUX05BTUU7CisgICAgaWYgKCghYmxhbmtzKSAmJiAoQ1VSID09ICc6JykpIHsKKwlORVhUOworCisJLyoKKwkgKiBTaW5jZSBjdXJyZW50bHkgdGhlIHBhcnNlciBjb250ZXh0IGRvbid0IGhhdmUgYQorCSAqIG5hbWVzcGFjZSBsaXN0IGFzc29jaWF0ZWQ6CisJICogVGhlIG5hbWVzcGFjZSBuYW1lIGZvciB0aGlzIHByZWZpeCBjYW4gYmUgY29tcHV0ZWQKKwkgKiBvbmx5IGF0IGV2YWx1YXRpb24gdGltZS4gVGhlIGNvbXBpbGF0aW9uIGlzIGRvbmUKKwkgKiBvdXRzaWRlIG9mIGFueSBjb250ZXh0LgorCSAqLworI2lmIDAKKwkqcHJlZml4ID0geG1sWFBhdGhOc0xvb2t1cChjdHh0LT5jb250ZXh0LCBuYW1lKTsKKwlpZiAobmFtZSAhPSBOVUxMKQorCSAgICB4bWxGcmVlKG5hbWUpOworCWlmICgqcHJlZml4ID09IE5VTEwpIHsKKwkgICAgWFBfRVJST1IwKFhQQVRIX1VOREVGX1BSRUZJWF9FUlJPUik7CisJfQorI2Vsc2UKKwkqcHJlZml4ID0gbmFtZTsKKyNlbmRpZgorCisJaWYgKENVUiA9PSAnKicpIHsKKwkgICAgLyoKKwkgICAgICogQWxsIGVsZW1lbnRzCisJICAgICAqLworCSAgICBORVhUOworCSAgICAqdGVzdCA9IE5PREVfVEVTVF9BTEw7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisKKwluYW1lID0geG1sWFBhdGhQYXJzZU5DTmFtZShjdHh0KTsKKwlpZiAobmFtZSA9PSBOVUxMKSB7CisJICAgIFhQX0VSUk9STlVMTChYUEFUSF9FWFBSX0VSUk9SKTsKKwl9CisgICAgfQorICAgIHJldHVybihuYW1lKTsKK30KKworLyoqCisgKiB4bWxYUGF0aElzQXhpc05hbWU6CisgKiBAbmFtZTogIGEgcHJlcGFyc2VkIG5hbWUgdG9rZW4KKyAqCisgKiBbNl0gQXhpc05hbWUgOjo9ICAgJ2FuY2VzdG9yJworICogICAgICAgICAgICAgICAgICB8ICdhbmNlc3Rvci1vci1zZWxmJworICogICAgICAgICAgICAgICAgICB8ICdhdHRyaWJ1dGUnCisgKiAgICAgICAgICAgICAgICAgIHwgJ2NoaWxkJworICogICAgICAgICAgICAgICAgICB8ICdkZXNjZW5kYW50JworICogICAgICAgICAgICAgICAgICB8ICdkZXNjZW5kYW50LW9yLXNlbGYnCisgKiAgICAgICAgICAgICAgICAgIHwgJ2ZvbGxvd2luZycKKyAqICAgICAgICAgICAgICAgICAgfCAnZm9sbG93aW5nLXNpYmxpbmcnCisgKiAgICAgICAgICAgICAgICAgIHwgJ25hbWVzcGFjZScKKyAqICAgICAgICAgICAgICAgICAgfCAncGFyZW50JworICogICAgICAgICAgICAgICAgICB8ICdwcmVjZWRpbmcnCisgKiAgICAgICAgICAgICAgICAgIHwgJ3ByZWNlZGluZy1zaWJsaW5nJworICogICAgICAgICAgICAgICAgICB8ICdzZWxmJworICoKKyAqIFJldHVybnMgdGhlIGF4aXMgb3IgMAorICovCitzdGF0aWMgeG1sWFBhdGhBeGlzVmFsCit4bWxYUGF0aElzQXhpc05hbWUoY29uc3QgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbFhQYXRoQXhpc1ZhbCByZXQgPSAoeG1sWFBhdGhBeGlzVmFsKSAwOworICAgIHN3aXRjaCAobmFtZVswXSkgeworCWNhc2UgJ2EnOgorCSAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgImFuY2VzdG9yIikpCisJCXJldCA9IEFYSVNfQU5DRVNUT1I7CisJICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAiYW5jZXN0b3Itb3Itc2VsZiIpKQorCQlyZXQgPSBBWElTX0FOQ0VTVE9SX09SX1NFTEY7CisJICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAiYXR0cmlidXRlIikpCisJCXJldCA9IEFYSVNfQVRUUklCVVRFOworCSAgICBicmVhazsKKwljYXNlICdjJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJjaGlsZCIpKQorCQlyZXQgPSBBWElTX0NISUxEOworCSAgICBicmVhazsKKwljYXNlICdkJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJkZXNjZW5kYW50IikpCisJCXJldCA9IEFYSVNfREVTQ0VOREFOVDsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJkZXNjZW5kYW50LW9yLXNlbGYiKSkKKwkJcmV0ID0gQVhJU19ERVNDRU5EQU5UX09SX1NFTEY7CisJICAgIGJyZWFrOworCWNhc2UgJ2YnOgorCSAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgImZvbGxvd2luZyIpKQorCQlyZXQgPSBBWElTX0ZPTExPV0lORzsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJmb2xsb3dpbmctc2libGluZyIpKQorCQlyZXQgPSBBWElTX0ZPTExPV0lOR19TSUJMSU5HOworCSAgICBicmVhazsKKwljYXNlICduJzoKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJuYW1lc3BhY2UiKSkKKwkJcmV0ID0gQVhJU19OQU1FU1BBQ0U7CisJICAgIGJyZWFrOworCWNhc2UgJ3AnOgorCSAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgInBhcmVudCIpKQorCQlyZXQgPSBBWElTX1BBUkVOVDsKKwkgICAgaWYgKHhtbFN0ckVxdWFsKG5hbWUsIEJBRF9DQVNUICJwcmVjZWRpbmciKSkKKwkJcmV0ID0gQVhJU19QUkVDRURJTkc7CisJICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAicHJlY2VkaW5nLXNpYmxpbmciKSkKKwkJcmV0ID0gQVhJU19QUkVDRURJTkdfU0lCTElORzsKKwkgICAgYnJlYWs7CisJY2FzZSAncyc6CisJICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBCQURfQ0FTVCAic2VsZiIpKQorCQlyZXQgPSBBWElTX1NFTEY7CisJICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBTdGVwOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiBbNF0gU3RlcCA6Oj0gICBBeGlzU3BlY2lmaWVyIE5vZGVUZXN0IFByZWRpY2F0ZSoKKyAqICAgICAgICAgICAgICAgICAgfCBBYmJyZXZpYXRlZFN0ZXAKKyAqCisgKiBbMTJdIEFiYnJldmlhdGVkU3RlcCA6Oj0gICAnLicgfCAnLi4nCisgKgorICogWzVdIEF4aXNTcGVjaWZpZXIgOjo9IEF4aXNOYW1lICc6OicKKyAqICAgICAgICAgICAgICAgICAgfCBBYmJyZXZpYXRlZEF4aXNTcGVjaWZpZXIKKyAqCisgKiBbMTNdIEFiYnJldmlhdGVkQXhpc1NwZWNpZmllciA6Oj0gJ0AnPworICoKKyAqIE1vZGlmaWVkIGZvciBYUHRyIHJhbmdlIHN1cHBvcnQgYXM6CisgKgorICogIFs0eHB0cl0gU3RlcCA6Oj0gQXhpc1NwZWNpZmllciBOb2RlVGVzdCBQcmVkaWNhdGUqCisgKiAgICAgICAgICAgICAgICAgICAgIHwgQWJicmV2aWF0ZWRTdGVwCisgKiAgICAgICAgICAgICAgICAgICAgIHwgJ3JhbmdlLXRvJyAnKCcgRXhwciAnKScgUHJlZGljYXRlKgorICoKKyAqIENvbXBpbGUgb25lIHN0ZXAgaW4gYSBMb2NhdGlvbiBQYXRoCisgKiBBIGxvY2F0aW9uIHN0ZXAgb2YgLiBpcyBzaG9ydCBmb3Igc2VsZjo6bm9kZSgpLiBUaGlzIGlzCisgKiBwYXJ0aWN1bGFybHkgdXNlZnVsIGluIGNvbmp1bmN0aW9uIHdpdGggLy8uIEZvciBleGFtcGxlLCB0aGUKKyAqIGxvY2F0aW9uIHBhdGggLi8vcGFyYSBpcyBzaG9ydCBmb3IKKyAqIHNlbGY6Om5vZGUoKS9kZXNjZW5kYW50LW9yLXNlbGY6Om5vZGUoKS9jaGlsZDo6cGFyYQorICogYW5kIHNvIHdpbGwgc2VsZWN0IGFsbCBwYXJhIGRlc2NlbmRhbnQgZWxlbWVudHMgb2YgdGhlIGNvbnRleHQKKyAqIG5vZGUuCisgKiBTaW1pbGFybHksIGEgbG9jYXRpb24gc3RlcCBvZiAuLiBpcyBzaG9ydCBmb3IgcGFyZW50Ojpub2RlKCkuCisgKiBGb3IgZXhhbXBsZSwgLi4vdGl0bGUgaXMgc2hvcnQgZm9yIHBhcmVudDo6bm9kZSgpL2NoaWxkOjp0aXRsZQorICogYW5kIHNvIHdpbGwgc2VsZWN0IHRoZSB0aXRsZSBjaGlsZHJlbiBvZiB0aGUgcGFyZW50IG9mIHRoZSBjb250ZXh0CisgKiBub2RlLgorICovCitzdGF0aWMgdm9pZAoreG1sWFBhdGhDb21wU3RlcCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCkgeworI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKKyAgICBpbnQgcmFuZ2V0byA9IDA7CisgICAgaW50IG9wMiA9IC0xOworI2VuZGlmCisKKyAgICBTS0lQX0JMQU5LUzsKKyAgICBpZiAoKENVUiA9PSAnLicpICYmIChOWFQoMSkgPT0gJy4nKSkgeworCVNLSVAoMik7CisJU0tJUF9CTEFOS1M7CisJUFVTSF9MT05HX0VYUFIoWFBBVEhfT1BfQ09MTEVDVCwgQVhJU19QQVJFTlQsCisJCSAgICBOT0RFX1RFU1RfVFlQRSwgTk9ERV9UWVBFX05PREUsIE5VTEwsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoQ1VSID09ICcuJykgeworCU5FWFQ7CisJU0tJUF9CTEFOS1M7CisgICAgfSBlbHNlIHsKKwl4bWxDaGFyICpuYW1lID0gTlVMTDsKKwljb25zdCB4bWxDaGFyICpwcmVmaXggPSBOVUxMOworCXhtbFhQYXRoVGVzdFZhbCB0ZXN0ID0gKHhtbFhQYXRoVGVzdFZhbCkgMDsKKwl4bWxYUGF0aEF4aXNWYWwgYXhpcyA9ICh4bWxYUGF0aEF4aXNWYWwpIDA7CisJeG1sWFBhdGhUeXBlVmFsIHR5cGUgPSAoeG1sWFBhdGhUeXBlVmFsKSAwOworCWludCBvcDE7CisKKwkvKgorCSAqIFRoZSBtb2RpZmljYXRpb24gbmVlZGVkIGZvciBYUG9pbnRlciBjaGFuZ2UgdG8gdGhlIHByb2R1Y3Rpb24KKwkgKi8KKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisJaWYgKGN0eHQtPnhwdHIpIHsKKwkgICAgbmFtZSA9IHhtbFhQYXRoUGFyc2VOQ05hbWUoY3R4dCk7CisJICAgIGlmICgobmFtZSAhPSBOVUxMKSAmJiAoeG1sU3RyRXF1YWwobmFtZSwgQkFEX0NBU1QgInJhbmdlLXRvIikpKSB7CisgICAgICAgICAgICAgICAgb3AyID0gY3R4dC0+Y29tcC0+bGFzdDsKKwkJeG1sRnJlZShuYW1lKTsKKwkJU0tJUF9CTEFOS1M7CisJCWlmIChDVVIgIT0gJygnKSB7CisJCSAgICBYUF9FUlJPUihYUEFUSF9FWFBSX0VSUk9SKTsKKwkJfQorCQlORVhUOworCQlTS0lQX0JMQU5LUzsKKworCQl4bWxYUGF0aENvbXBpbGVFeHByKGN0eHQsIDEpOworCQkvKiBQVVNIX0JJTkFSWV9FWFBSKFhQQVRIX09QX1JBTkdFVE8sIG9wMiwgY3R4dC0+Y29tcC0+bGFzdCwgMCwgMCk7ICovCisJCUNIRUNLX0VSUk9SOworCisJCVNLSVBfQkxBTktTOworCQlpZiAoQ1VSICE9ICcpJykgeworCQkgICAgWFBfRVJST1IoWFBBVEhfRVhQUl9FUlJPUik7CisJCX0KKwkJTkVYVDsKKwkJcmFuZ2V0byA9IDE7CisJCWdvdG8gZXZhbF9wcmVkaWNhdGVzOworCSAgICB9CisJfQorI2VuZGlmCisJaWYgKENVUiA9PSAnKicpIHsKKwkgICAgYXhpcyA9IEFYSVNfQ0hJTEQ7CisJfSBlbHNlIHsKKwkgICAgaWYgKG5hbWUgPT0gTlVMTCkKKwkJbmFtZSA9IHhtbFhQYXRoUGFyc2VOQ05hbWUoY3R4dCk7CisJICAgIGlmIChuYW1lICE9IE5VTEwpIHsKKwkJYXhpcyA9IHhtbFhQYXRoSXNBeGlzTmFtZShuYW1lKTsKKwkJaWYgKGF4aXMgIT0gMCkgeworCQkgICAgU0tJUF9CTEFOS1M7CisJCSAgICBpZiAoKENVUiA9PSAnOicpICYmIChOWFQoMSkgPT0gJzonKSkgeworCQkJU0tJUCgyKTsKKwkJCXhtbEZyZWUobmFtZSk7CisJCQluYW1lID0gTlVMTDsKKwkJICAgIH0gZWxzZSB7CisJCQkvKiBhbiBlbGVtZW50IG5hbWUgY2FuIGNvbmZsaWN0IHdpdGggYW4gYXhpcyBvbmUgOi1cICovCisJCQlheGlzID0gQVhJU19DSElMRDsKKwkJICAgIH0KKwkJfSBlbHNlIHsKKwkJICAgIGF4aXMgPSBBWElTX0NISUxEOworCQl9CisJICAgIH0gZWxzZSBpZiAoQ1VSID09ICdAJykgeworCQlORVhUOworCQlheGlzID0gQVhJU19BVFRSSUJVVEU7CisJICAgIH0gZWxzZSB7CisJCWF4aXMgPSBBWElTX0NISUxEOworCSAgICB9CisJfQorCisJQ0hFQ0tfRVJST1I7CisKKwluYW1lID0geG1sWFBhdGhDb21wTm9kZVRlc3QoY3R4dCwgJnRlc3QsICZ0eXBlLCAmcHJlZml4LCBuYW1lKTsKKwlpZiAodGVzdCA9PSAwKQorCSAgICByZXR1cm47CisKKyAgICAgICAgaWYgKChwcmVmaXggIT0gTlVMTCkgJiYgKGN0eHQtPmNvbnRleHQgIT0gTlVMTCkgJiYKKwkgICAgKGN0eHQtPmNvbnRleHQtPmZsYWdzICYgWE1MX1hQQVRIX0NIRUNLTlMpKSB7CisJICAgIGlmICh4bWxYUGF0aE5zTG9va3VwKGN0eHQtPmNvbnRleHQsIHByZWZpeCkgPT0gTlVMTCkgeworCQl4bWxYUGF0aEVycihjdHh0LCBYUEFUSF9VTkRFRl9QUkVGSVhfRVJST1IpOworCSAgICB9CisJfQorI2lmZGVmIERFQlVHX1NURVAKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJIkJhc2lzIDogY29tcHV0aW5nIG5ldyBzZXRcbiIpOworI2VuZGlmCisKKyNpZmRlZiBERUJVR19TVEVQCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJCYXNpcyA6ICIpOworCWlmIChjdHh0LT52YWx1ZSA9PSBOVUxMKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIm5vIHZhbHVlXG4iKTsKKwllbHNlIGlmIChjdHh0LT52YWx1ZS0+bm9kZXNldHZhbCA9PSBOVUxMKQorCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIkVtcHR5XG4iKTsKKwllbHNlCisJICAgIHhtbEdlbmVyaWNFcnJvckNvbnRleHROb2RlU2V0KHN0ZG91dCwgY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwpOworI2VuZGlmCisKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECitldmFsX3ByZWRpY2F0ZXM6CisjZW5kaWYKKwlvcDEgPSBjdHh0LT5jb21wLT5sYXN0OworCWN0eHQtPmNvbXAtPmxhc3QgPSAtMTsKKworCVNLSVBfQkxBTktTOworCXdoaWxlIChDVVIgPT0gJ1snKSB7CisJICAgIHhtbFhQYXRoQ29tcFByZWRpY2F0ZShjdHh0LCAwKTsKKwl9CisKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisJaWYgKHJhbmdldG8pIHsKKwkgICAgUFVTSF9CSU5BUllfRVhQUihYUEFUSF9PUF9SQU5HRVRPLCBvcDIsIG9wMSwgMCwgMCk7CisJfSBlbHNlCisjZW5kaWYKKwkgICAgUFVTSF9GVUxMX0VYUFIoWFBBVEhfT1BfQ09MTEVDVCwgb3AxLCBjdHh0LT5jb21wLT5sYXN0LCBheGlzLAorCQkJICAgdGVzdCwgdHlwZSwgKHZvaWQgKilwcmVmaXgsICh2b2lkICopbmFtZSk7CisKKyAgICB9CisjaWZkZWYgREVCVUdfU1RFUAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiU3RlcCA6ICIpOworICAgIGlmIChjdHh0LT52YWx1ZSA9PSBOVUxMKQorCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAibm8gdmFsdWVcbiIpOworICAgIGVsc2UgaWYgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsID09IE5VTEwpCisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJFbXB0eVxuIik7CisgICAgZWxzZQorCXhtbEdlbmVyaWNFcnJvckNvbnRleHROb2RlU2V0KHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCWN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsKTsKKyNlbmRpZgorfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcFJlbGF0aXZlTG9jYXRpb25QYXRoOgorICogQGN0eHQ6ICB0aGUgWFBhdGggUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWzNdICAgUmVsYXRpdmVMb2NhdGlvblBhdGggOjo9ICAgU3RlcAorICogICAgICAgICAgICAgICAgICAgICB8IFJlbGF0aXZlTG9jYXRpb25QYXRoICcvJyBTdGVwCisgKiAgICAgICAgICAgICAgICAgICAgIHwgQWJicmV2aWF0ZWRSZWxhdGl2ZUxvY2F0aW9uUGF0aAorICogIFsxMV0gIEFiYnJldmlhdGVkUmVsYXRpdmVMb2NhdGlvblBhdGggOjo9ICAgUmVsYXRpdmVMb2NhdGlvblBhdGggJy8vJyBTdGVwCisgKgorICogQ29tcGlsZSBhIHJlbGF0aXZlIGxvY2F0aW9uIHBhdGguCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aENvbXBSZWxhdGl2ZUxvY2F0aW9uUGF0aAorKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgU0tJUF9CTEFOS1M7CisgICAgaWYgKChDVVIgPT0gJy8nKSAmJiAoTlhUKDEpID09ICcvJykpIHsKKwlTS0lQKDIpOworCVNLSVBfQkxBTktTOworCVBVU0hfTE9OR19FWFBSKFhQQVRIX09QX0NPTExFQ1QsIEFYSVNfREVTQ0VOREFOVF9PUl9TRUxGLAorCQkgICAgICAgICBOT0RFX1RFU1RfVFlQRSwgTk9ERV9UWVBFX05PREUsIE5VTEwsIE5VTEwpOworICAgIH0gZWxzZSBpZiAoQ1VSID09ICcvJykgeworCSAgICBORVhUOworCVNLSVBfQkxBTktTOworICAgIH0KKyAgICB4bWxYUGF0aENvbXBTdGVwKGN0eHQpOworICAgIENIRUNLX0VSUk9SOworICAgIFNLSVBfQkxBTktTOworICAgIHdoaWxlIChDVVIgPT0gJy8nKSB7CisJaWYgKChDVVIgPT0gJy8nKSAmJiAoTlhUKDEpID09ICcvJykpIHsKKwkgICAgU0tJUCgyKTsKKwkgICAgU0tJUF9CTEFOS1M7CisJICAgIFBVU0hfTE9OR19FWFBSKFhQQVRIX09QX0NPTExFQ1QsIEFYSVNfREVTQ0VOREFOVF9PUl9TRUxGLAorCQkJICAgICBOT0RFX1RFU1RfVFlQRSwgTk9ERV9UWVBFX05PREUsIE5VTEwsIE5VTEwpOworCSAgICB4bWxYUGF0aENvbXBTdGVwKGN0eHQpOworCX0gZWxzZSBpZiAoQ1VSID09ICcvJykgeworCSAgICBORVhUOworCSAgICBTS0lQX0JMQU5LUzsKKwkgICAgeG1sWFBhdGhDb21wU3RlcChjdHh0KTsKKwl9CisJU0tJUF9CTEFOS1M7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcExvY2F0aW9uUGF0aDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogIFsxXSAgIExvY2F0aW9uUGF0aCA6Oj0gICBSZWxhdGl2ZUxvY2F0aW9uUGF0aAorICogICAgICAgICAgICAgICAgICAgICB8IEFic29sdXRlTG9jYXRpb25QYXRoCisgKiAgWzJdICAgQWJzb2x1dGVMb2NhdGlvblBhdGggOjo9ICAgJy8nIFJlbGF0aXZlTG9jYXRpb25QYXRoPworICogICAgICAgICAgICAgICAgICAgICB8IEFiYnJldmlhdGVkQWJzb2x1dGVMb2NhdGlvblBhdGgKKyAqICBbMTBdICAgQWJicmV2aWF0ZWRBYnNvbHV0ZUxvY2F0aW9uUGF0aCA6Oj0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vJyBSZWxhdGl2ZUxvY2F0aW9uUGF0aAorICoKKyAqIENvbXBpbGUgYSBsb2NhdGlvbiBwYXRoCisgKgorICogLy8gaXMgc2hvcnQgZm9yIC9kZXNjZW5kYW50LW9yLXNlbGY6Om5vZGUoKS8uIEZvciBleGFtcGxlLAorICogLy9wYXJhIGlzIHNob3J0IGZvciAvZGVzY2VuZGFudC1vci1zZWxmOjpub2RlKCkvY2hpbGQ6OnBhcmEgYW5kCisgKiBzbyB3aWxsIHNlbGVjdCBhbnkgcGFyYSBlbGVtZW50IGluIHRoZSBkb2N1bWVudCAoZXZlbiBhIHBhcmEgZWxlbWVudAorICogdGhhdCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgd2lsbCBiZSBzZWxlY3RlZCBieSAvL3BhcmEgc2luY2UgdGhlCisgKiBkb2N1bWVudCBlbGVtZW50IG5vZGUgaXMgYSBjaGlsZCBvZiB0aGUgcm9vdCBub2RlKTsgZGl2Ly9wYXJhIGlzCisgKiBzaG9ydCBmb3IgZGl2L2Rlc2NlbmRhbnQtb3Itc2VsZjo6bm9kZSgpL2NoaWxkOjpwYXJhIGFuZCBzbyB3aWxsCisgKiBzZWxlY3QgYWxsIHBhcmEgZGVzY2VuZGFudHMgb2YgZGl2IGNoaWxkcmVuLgorICovCitzdGF0aWMgdm9pZAoreG1sWFBhdGhDb21wTG9jYXRpb25QYXRoKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisgICAgU0tJUF9CTEFOS1M7CisgICAgaWYgKENVUiAhPSAnLycpIHsKKyAgICAgICAgeG1sWFBhdGhDb21wUmVsYXRpdmVMb2NhdGlvblBhdGgoY3R4dCk7CisgICAgfSBlbHNlIHsKKwl3aGlsZSAoQ1VSID09ICcvJykgeworCSAgICBpZiAoKENVUiA9PSAnLycpICYmIChOWFQoMSkgPT0gJy8nKSkgeworCQlTS0lQKDIpOworCQlTS0lQX0JMQU5LUzsKKwkJUFVTSF9MT05HX0VYUFIoWFBBVEhfT1BfQ09MTEVDVCwgQVhJU19ERVNDRU5EQU5UX09SX1NFTEYsCisJCQkgICAgIE5PREVfVEVTVF9UWVBFLCBOT0RFX1RZUEVfTk9ERSwgTlVMTCwgTlVMTCk7CisJCXhtbFhQYXRoQ29tcFJlbGF0aXZlTG9jYXRpb25QYXRoKGN0eHQpOworCSAgICB9IGVsc2UgaWYgKENVUiA9PSAnLycpIHsKKwkJTkVYVDsKKwkJU0tJUF9CTEFOS1M7CisJCWlmICgoQ1VSICE9IDAgKSAmJgorCQkgICAgKChJU19BU0NJSV9MRVRURVIoQ1VSKSkgfHwgKENVUiA9PSAnXycpIHx8IChDVVIgPT0gJy4nKSB8fAorCQkgICAgIChDVVIgPT0gJ0AnKSB8fCAoQ1VSID09ICcqJykpKQorCQkgICAgeG1sWFBhdGhDb21wUmVsYXRpdmVMb2NhdGlvblBhdGgoY3R4dCk7CisJICAgIH0KKwkgICAgQ0hFQ0tfRVJST1I7CisJfQorICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJWFBhdGggcHJlY29tcGlsZWQgZXhwcmVzc2lvbiBldmFsdWF0aW9uCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50Cit4bWxYUGF0aENvbXBPcEV2YWwoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoU3RlcE9wUHRyIG9wKTsKKworI2lmZGVmIERFQlVHX1NURVAKK3N0YXRpYyB2b2lkCit4bWxYUGF0aERlYnVnRHVtcFN0ZXBBeGlzKHhtbFhQYXRoU3RlcE9wUHRyIG9wLAorCQkJICBpbnQgbmJOb2RlcykKK3sKKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIm5ldyBzdGVwIDogIik7CisgICAgc3dpdGNoIChvcC0+dmFsdWUpIHsKKyAgICAgICAgY2FzZSBBWElTX0FOQ0VTVE9SOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJheGlzICdhbmNlc3RvcnMnICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19BTkNFU1RPUl9PUl9TRUxGOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF4aXMgJ2FuY2VzdG9ycy1vci1zZWxmJyAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfQVRUUklCVVRFOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJheGlzICdhdHRyaWJ1dGVzJyAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfQ0hJTEQ6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImF4aXMgJ2NoaWxkJyAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfREVTQ0VOREFOVDoKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiYXhpcyAnZGVzY2VuZGFudCcgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWElTX0RFU0NFTkRBTlRfT1JfU0VMRjoKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJheGlzICdkZXNjZW5kYW50LW9yLXNlbGYnICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19GT0xMT1dJTkc6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImF4aXMgJ2ZvbGxvd2luZycgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWElTX0ZPTExPV0lOR19TSUJMSU5HOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF4aXMgJ2ZvbGxvd2luZy1zaWJsaW5ncycgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWElTX05BTUVTUEFDRToKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiYXhpcyAnbmFtZXNwYWNlJyAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfUEFSRU5UOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJheGlzICdwYXJlbnQnICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19QUkVDRURJTkc6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgImF4aXMgJ3ByZWNlZGluZycgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWElTX1BSRUNFRElOR19TSUJMSU5HOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF4aXMgJ3ByZWNlZGluZy1zaWJsaW5nJyAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfU0VMRjoKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiYXhpcyAnc2VsZicgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJIiBjb250ZXh0IGNvbnRhaW5zICVkIG5vZGVzXG4iLCBuYk5vZGVzKTsKKyAgICBzd2l0Y2ggKG9wLT52YWx1ZTIpIHsKKyAgICAgICAgY2FzZSBOT0RFX1RFU1RfTk9ORToKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgIHNlYXJjaGluZyBmb3Igbm9uZSAhISFcbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTk9ERV9URVNUX1RZUEU6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICBzZWFyY2hpbmcgZm9yIHR5cGUgJWRcbiIsIG9wLT52YWx1ZTMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTk9ERV9URVNUX1BJOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgc2VhcmNoaW5nIGZvciBQSSAhISFcbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTk9ERV9URVNUX0FMTDoKKyAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgIHNlYXJjaGluZyBmb3IgKlxuIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOT0RFX1RFU1RfTlM6CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICBzZWFyY2hpbmcgZm9yIG5hbWVzcGFjZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+dmFsdWU1KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5PREVfVEVTVF9OQU1FOgorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgc2VhcmNoaW5nIGZvciBuYW1lICVzXG4iLCBvcC0+dmFsdWU1KTsKKyAgICAgICAgICAgIGlmIChvcC0+dmFsdWU0KQorICAgICAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICB3aXRoIG5hbWVzcGFjZSAlc1xuIiwgb3AtPnZhbHVlNCk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJUZXN0aW5nIDogIik7Cit9CisjZW5kaWYgLyogREVCVUdfU1RFUCAqLworCitzdGF0aWMgaW50Cit4bWxYUGF0aENvbXBPcEV2YWxQcmVkaWNhdGUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQkgICAgeG1sWFBhdGhTdGVwT3BQdHIgb3AsCisJCQkgICAgeG1sTm9kZVNldFB0ciBzZXQsCisJCQkgICAgaW50IGNvbnRleHRTaXplLAorCQkJICAgIGludCBoYXNOc05vZGVzKQoreworICAgIGlmIChvcC0+Y2gxICE9IC0xKSB7CisJeG1sWFBhdGhDb21wRXhwclB0ciBjb21wID0gY3R4dC0+Y29tcDsKKwkvKgorCSogUHJvY2VzcyBpbm5lciBwcmVkaWNhdGVzIGZpcnN0LgorCSovCisJaWYgKGNvbXAtPnN0ZXBzW29wLT5jaDFdLm9wICE9IFhQQVRIX09QX1BSRURJQ0FURSkgeworCSAgICAvKgorCSAgICAqIFRPRE86IHJhaXNlIGFuIGludGVybmFsIGVycm9yLgorCSAgICAqLworCX0KKwljb250ZXh0U2l6ZSA9IHhtbFhQYXRoQ29tcE9wRXZhbFByZWRpY2F0ZShjdHh0LAorCSAgICAmY29tcC0+c3RlcHNbb3AtPmNoMV0sIHNldCwgY29udGV4dFNpemUsIGhhc05zTm9kZXMpOworCUNIRUNLX0VSUk9SMDsKKwlpZiAoY29udGV4dFNpemUgPD0gMCkKKwkgICAgcmV0dXJuKDApOworICAgIH0KKyAgICBpZiAob3AtPmNoMiAhPSAtMSkgeworCXhtbFhQYXRoQ29udGV4dFB0ciB4cGN0eHQgPSBjdHh0LT5jb250ZXh0OworCXhtbE5vZGVQdHIgY29udGV4dE5vZGUsIG9sZENvbnRleHROb2RlOworCXhtbERvY1B0ciBvbGRDb250ZXh0RG9jOworCWludCBpLCByZXMsIGNvbnRleHRQb3MgPSAwLCBuZXdDb250ZXh0U2l6ZTsKKwl4bWxYUGF0aFN0ZXBPcFB0ciBleHByT3A7CisJeG1sWFBhdGhPYmplY3RQdHIgY29udGV4dE9iaiA9IE5VTEwsIGV4cHJSZXMgPSBOVUxMOworCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorCS8qCisJKiBVUkdFTlQgVE9ETzogQ2hlY2sgdGhlIGZvbGxvd2luZzoKKwkqICBXZSBkb24ndCBleHBlY3QgbG9jYXRpb24gc2V0cyBpZiBldmFsdWF0aW5nIHByZWRpYXRlcywgcmlnaHQ/CisJKiAgT25seSBmaWx0ZXJzIHNob3VsZCBleHBlY3QgbG9jYXRpb24gc2V0cywgcmlnaHQ/CisJKi8KKyNlbmRpZgorCS8qCisJKiBTUEVDIFhQYXRoIDEuMDoKKwkqICAiRm9yIGVhY2ggbm9kZSBpbiB0aGUgbm9kZS1zZXQgdG8gYmUgZmlsdGVyZWQsIHRoZQorCSogIFByZWRpY2F0ZUV4cHIgaXMgZXZhbHVhdGVkIHdpdGggdGhhdCBub2RlIGFzIHRoZQorCSogIGNvbnRleHQgbm9kZSwgd2l0aCB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZQorCSogIG5vZGUtc2V0IGFzIHRoZSBjb250ZXh0IHNpemUsIGFuZCB3aXRoIHRoZSBwcm94aW1pdHkKKwkqICBwb3NpdGlvbiBvZiB0aGUgbm9kZSBpbiB0aGUgbm9kZS1zZXQgd2l0aCByZXNwZWN0IHRvCisJKiAgdGhlIGF4aXMgYXMgdGhlIGNvbnRleHQgcG9zaXRpb247IgorCSogQG9sZHNldCBpcyB0aGUgbm9kZS1zZXQiIHRvIGJlIGZpbHRlcmVkLgorCSoKKwkqIFNQRUMgWFBhdGggMS4wOgorCSogICJvbmx5IHByZWRpY2F0ZXMgY2hhbmdlIHRoZSBjb250ZXh0IHBvc2l0aW9uIGFuZAorCSogIGNvbnRleHQgc2l6ZSAoc2VlIFsyLjQgUHJlZGljYXRlc10pLiIKKwkqIEV4YW1wbGU6CisJKiAgIG5vZGUtc2V0ICBjb250ZXh0IHBvcworCSogICAgbkEgICAgICAgICAxCisJKiAgICBuQiAgICAgICAgIDIKKwkqICAgIG5DICAgICAgICAgMworCSogICBBZnRlciBhcHBseWluZyBwcmVkaWNhdGUgW3Bvc2l0aW9uKCkgPiAxXSA6CisJKiAgIG5vZGUtc2V0ICBjb250ZXh0IHBvcworCSogICAgbkIgICAgICAgICAxCisJKiAgICBuQyAgICAgICAgIDIKKwkqLworCW9sZENvbnRleHROb2RlID0geHBjdHh0LT5ub2RlOworCW9sZENvbnRleHREb2MgPSB4cGN0eHQtPmRvYzsKKwkvKgorCSogR2V0IHRoZSBleHByZXNzaW9uIG9mIHRoaXMgcHJlZGljYXRlLgorCSovCisJZXhwck9wID0gJmN0eHQtPmNvbXAtPnN0ZXBzW29wLT5jaDJdOworCW5ld0NvbnRleHRTaXplID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgc2V0LT5ub2RlTnI7IGkrKykgeworCSAgICBpZiAoc2V0LT5ub2RlVGFiW2ldID09IE5VTEwpCisJCWNvbnRpbnVlOworCisJICAgIGNvbnRleHROb2RlID0gc2V0LT5ub2RlVGFiW2ldOworCSAgICB4cGN0eHQtPm5vZGUgPSBjb250ZXh0Tm9kZTsKKwkgICAgeHBjdHh0LT5jb250ZXh0U2l6ZSA9IGNvbnRleHRTaXplOworCSAgICB4cGN0eHQtPnByb3hpbWl0eVBvc2l0aW9uID0gKytjb250ZXh0UG9zOworCisJICAgIC8qCisJICAgICogQWxzbyBzZXQgdGhlIHhwYXRoIGRvY3VtZW50IGluIGNhc2UgdGhpbmdzIGxpa2UKKwkgICAgKiBrZXkoKSBhcmUgZXZhbHVhdGVkIGluIHRoZSBwcmVkaWNhdGUuCisJICAgICovCisJICAgIGlmICgoY29udGV4dE5vZGUtPnR5cGUgIT0gWE1MX05BTUVTUEFDRV9ERUNMKSAmJgorCQkoY29udGV4dE5vZGUtPmRvYyAhPSBOVUxMKSkKKwkJeHBjdHh0LT5kb2MgPSBjb250ZXh0Tm9kZS0+ZG9jOworCSAgICAvKgorCSAgICAqIEV2YWx1YXRlIHRoZSBwcmVkaWNhdGUgZXhwcmVzc2lvbiB3aXRoIDEgY29udGV4dCBub2RlCisJICAgICogYXQgYSB0aW1lOyB0aGlzIG5vZGUgaXMgcGFja2FnZWQgaW50byBhIG5vZGUgc2V0OyB0aGlzCisJICAgICogbm9kZSBzZXQgaXMgaGFuZGVkIG92ZXIgdG8gdGhlIGV2YWx1YXRpb24gbWVjaGFuaXNtLgorCSAgICAqLworCSAgICBpZiAoY29udGV4dE9iaiA9PSBOVUxMKQorCQljb250ZXh0T2JqID0geG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoeHBjdHh0LCBjb250ZXh0Tm9kZSk7CisJICAgIGVsc2UKKwkJeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKGNvbnRleHRPYmotPm5vZGVzZXR2YWwsCisJCSAgICBjb250ZXh0Tm9kZSk7CisKKwkgICAgdmFsdWVQdXNoKGN0eHQsIGNvbnRleHRPYmopOworCisJICAgIHJlcyA9IHhtbFhQYXRoQ29tcE9wRXZhbFRvQm9vbGVhbihjdHh0LCBleHByT3AsIDEpOworCisJICAgIGlmICgoY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSykgfHwgKHJlcyA9PSAtMSkpIHsKKwkJeG1sWFBhdGhOb2RlU2V0Q2xlYXIoc2V0LCBoYXNOc05vZGVzKTsKKwkJbmV3Q29udGV4dFNpemUgPSAwOworCQlnb3RvIGV2YWx1YXRpb25fZXhpdDsKKwkgICAgfQorCisJICAgIGlmIChyZXMgIT0gMCkgeworCQluZXdDb250ZXh0U2l6ZSsrOworCSAgICB9IGVsc2UgeworCQkvKgorCQkqIFJlbW92ZSB0aGUgZW50cnkgZnJvbSB0aGUgaW5pdGlhbCBub2RlIHNldC4KKwkJKi8KKwkJc2V0LT5ub2RlVGFiW2ldID0gTlVMTDsKKwkJaWYgKGNvbnRleHROb2RlLT50eXBlID09IFhNTF9OQU1FU1BBQ0VfREVDTCkKKwkJICAgIHhtbFhQYXRoTm9kZVNldEZyZWVOcygoeG1sTnNQdHIpIGNvbnRleHROb2RlKTsKKwkgICAgfQorCSAgICBpZiAoY3R4dC0+dmFsdWUgPT0gY29udGV4dE9iaikgeworCQkvKgorCQkqIERvbid0IGZyZWUgdGhlIHRlbXBvcmFyeSBYUGF0aCBvYmplY3QgaG9sZGluZyB0aGUKKwkJKiBjb250ZXh0IG5vZGUsIGluIG9yZGVyIHRvIGF2b2lkIG1hc3NpdmUgcmVjcmVhdGlvbgorCQkqIGluc2lkZSB0aGlzIGxvb3AuCisJCSovCisJCXZhbHVlUG9wKGN0eHQpOworCQl4bWxYUGF0aE5vZGVTZXRDbGVhcihjb250ZXh0T2JqLT5ub2Rlc2V0dmFsLCBoYXNOc05vZGVzKTsKKwkgICAgfSBlbHNlIHsKKwkJLyoKKwkJKiBUT0RPOiBUaGUgb2JqZWN0IHdhcyBsb3N0IGluIHRoZSBldmFsdWF0aW9uIG1hY2hpbmVyeS4KKwkJKiAgQ2FuIHRoaXMgaGFwcGVuPyBNYXliZSBpbiBpbnRlcm5hbC1lcnJvciBjYXNlcy4KKwkJKi8KKwkJY29udGV4dE9iaiA9IE5VTEw7CisJICAgIH0KKwl9CisKKwlpZiAoY29udGV4dE9iaiAhPSBOVUxMKSB7CisJICAgIGlmIChjdHh0LT52YWx1ZSA9PSBjb250ZXh0T2JqKQorCQl2YWx1ZVBvcChjdHh0KTsKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KHhwY3R4dCwgY29udGV4dE9iaik7CisJfQorZXZhbHVhdGlvbl9leGl0OgorCWlmIChleHByUmVzICE9IE5VTEwpCisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBleHByUmVzKTsKKwkvKgorCSogUmVzZXQvaW52YWxpZGF0ZSB0aGUgY29udGV4dC4KKwkqLworCXhwY3R4dC0+bm9kZSA9IG9sZENvbnRleHROb2RlOworCXhwY3R4dC0+ZG9jID0gb2xkQ29udGV4dERvYzsKKwl4cGN0eHQtPmNvbnRleHRTaXplID0gLTE7CisJeHBjdHh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IC0xOworCXJldHVybihuZXdDb250ZXh0U2l6ZSk7CisgICAgfQorICAgIHJldHVybihjb250ZXh0U2l6ZSk7Cit9CisKK3N0YXRpYyBpbnQKK3htbFhQYXRoQ29tcE9wRXZhbFBvc2l0aW9uYWxQcmVkaWNhdGUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQkJICAgICAgeG1sWFBhdGhTdGVwT3BQdHIgb3AsCisJCQkJICAgICAgeG1sTm9kZVNldFB0ciBzZXQsCisJCQkJICAgICAgaW50IGNvbnRleHRTaXplLAorCQkJCSAgICAgIGludCBtaW5Qb3MsCisJCQkJICAgICAgaW50IG1heFBvcywKKwkJCQkgICAgICBpbnQgaGFzTnNOb2RlcykKK3sKKyAgICBpZiAob3AtPmNoMSAhPSAtMSkgeworCXhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcCA9IGN0eHQtPmNvbXA7CisJaWYgKGNvbXAtPnN0ZXBzW29wLT5jaDFdLm9wICE9IFhQQVRIX09QX1BSRURJQ0FURSkgeworCSAgICAvKgorCSAgICAqIFRPRE86IHJhaXNlIGFuIGludGVybmFsIGVycm9yLgorCSAgICAqLworCX0KKwljb250ZXh0U2l6ZSA9IHhtbFhQYXRoQ29tcE9wRXZhbFByZWRpY2F0ZShjdHh0LAorCSAgICAmY29tcC0+c3RlcHNbb3AtPmNoMV0sIHNldCwgY29udGV4dFNpemUsIGhhc05zTm9kZXMpOworCUNIRUNLX0VSUk9SMDsKKwlpZiAoY29udGV4dFNpemUgPD0gMCkKKwkgICAgcmV0dXJuKDApOworICAgIH0KKyAgICAvKgorICAgICogQ2hlY2sgaWYgdGhlIG5vZGUgc2V0IGNvbnRhaW5zIGEgc3VmZmljaWVudCBudW1iZXIgb2Ygbm9kZXMgZm9yCisgICAgKiB0aGUgcmVxdWVzdGVkIHJhbmdlLgorICAgICovCisgICAgaWYgKGNvbnRleHRTaXplIDwgbWluUG9zKSB7CisJeG1sWFBhdGhOb2RlU2V0Q2xlYXIoc2V0LCBoYXNOc05vZGVzKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIGlmIChvcC0+Y2gyID09IC0xKSB7CisJLyoKKwkqIFRPRE86IENhbiB0aGlzIGV2ZXIgaGFwcGVuPworCSovCisJcmV0dXJuIChjb250ZXh0U2l6ZSk7CisgICAgfSBlbHNlIHsKKwl4bWxEb2NQdHIgb2xkQ29udGV4dERvYzsKKwlpbnQgaSwgcG9zID0gMCwgbmV3Q29udGV4dFNpemUgPSAwLCBjb250ZXh0UG9zID0gMCwgcmVzOworCXhtbFhQYXRoU3RlcE9wUHRyIGV4cHJPcDsKKwl4bWxYUGF0aE9iamVjdFB0ciBjb250ZXh0T2JqID0gTlVMTCwgZXhwclJlcyA9IE5VTEw7CisJeG1sTm9kZVB0ciBvbGRDb250ZXh0Tm9kZSwgY29udGV4dE5vZGUgPSBOVUxMOworCXhtbFhQYXRoQ29udGV4dFB0ciB4cGN0eHQgPSBjdHh0LT5jb250ZXh0OworCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorCSAgICAvKgorCSAgICAqIFVSR0VOVCBUT0RPOiBDaGVjayB0aGUgZm9sbG93aW5nOgorCSAgICAqICBXZSBkb24ndCBleHBlY3QgbG9jYXRpb24gc2V0cyBpZiBldmFsdWF0aW5nIHByZWRpYXRlcywgcmlnaHQ/CisJICAgICogIE9ubHkgZmlsdGVycyBzaG91bGQgZXhwZWN0IGxvY2F0aW9uIHNldHMsIHJpZ2h0PworCSovCisjZW5kaWYgLyogTElCWE1MX1hQVFJfRU5BQkxFRCAqLworCisJLyoKKwkqIFNhdmUgb2xkIGNvbnRleHQuCisJKi8KKwlvbGRDb250ZXh0Tm9kZSA9IHhwY3R4dC0+bm9kZTsKKwlvbGRDb250ZXh0RG9jID0geHBjdHh0LT5kb2M7CisJLyoKKwkqIEdldCB0aGUgZXhwcmVzc2lvbiBvZiB0aGlzIHByZWRpY2F0ZS4KKwkqLworCWV4cHJPcCA9ICZjdHh0LT5jb21wLT5zdGVwc1tvcC0+Y2gyXTsKKwlmb3IgKGkgPSAwOyBpIDwgc2V0LT5ub2RlTnI7IGkrKykgeworCSAgICBpZiAoc2V0LT5ub2RlVGFiW2ldID09IE5VTEwpCisJCWNvbnRpbnVlOworCisJICAgIGNvbnRleHROb2RlID0gc2V0LT5ub2RlVGFiW2ldOworCSAgICB4cGN0eHQtPm5vZGUgPSBjb250ZXh0Tm9kZTsKKwkgICAgeHBjdHh0LT5jb250ZXh0U2l6ZSA9IGNvbnRleHRTaXplOworCSAgICB4cGN0eHQtPnByb3hpbWl0eVBvc2l0aW9uID0gKytjb250ZXh0UG9zOworCisJICAgIC8qCisJICAgICogSW5pdGlhbGl6ZSB0aGUgbmV3IHNldC4KKwkgICAgKiBBbHNvIHNldCB0aGUgeHBhdGggZG9jdW1lbnQgaW4gY2FzZSB0aGluZ3MgbGlrZQorCSAgICAqIGtleSgpIGV2YWx1YXRpb24gYXJlIGF0dGVtcHRlZCBvbiB0aGUgcHJlZGljYXRlCisJICAgICovCisJICAgIGlmICgoY29udGV4dE5vZGUtPnR5cGUgIT0gWE1MX05BTUVTUEFDRV9ERUNMKSAmJgorCQkoY29udGV4dE5vZGUtPmRvYyAhPSBOVUxMKSkKKwkJeHBjdHh0LT5kb2MgPSBjb250ZXh0Tm9kZS0+ZG9jOworCSAgICAvKgorCSAgICAqIEV2YWx1YXRlIHRoZSBwcmVkaWNhdGUgZXhwcmVzc2lvbiB3aXRoIDEgY29udGV4dCBub2RlCisJICAgICogYXQgYSB0aW1lOyB0aGlzIG5vZGUgaXMgcGFja2FnZWQgaW50byBhIG5vZGUgc2V0OyB0aGlzCisJICAgICogbm9kZSBzZXQgaXMgaGFuZGVkIG92ZXIgdG8gdGhlIGV2YWx1YXRpb24gbWVjaGFuaXNtLgorCSAgICAqLworCSAgICBpZiAoY29udGV4dE9iaiA9PSBOVUxMKQorCQljb250ZXh0T2JqID0geG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoeHBjdHh0LCBjb250ZXh0Tm9kZSk7CisJICAgIGVsc2UKKwkJeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKGNvbnRleHRPYmotPm5vZGVzZXR2YWwsCisJCSAgICBjb250ZXh0Tm9kZSk7CisKKwkgICAgdmFsdWVQdXNoKGN0eHQsIGNvbnRleHRPYmopOworCSAgICByZXMgPSB4bWxYUGF0aENvbXBPcEV2YWxUb0Jvb2xlYW4oY3R4dCwgZXhwck9wLCAxKTsKKworCSAgICBpZiAoKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spIHx8IChyZXMgPT0gLTEpKSB7CisJICAgICAgICB4bWxYUGF0aE9iamVjdFB0ciB0bXA7CisJCS8qIHBvcCB0aGUgcmVzdWx0ICovCisJCXRtcCA9IHZhbHVlUG9wKGN0eHQpOworCQl4bWxYUGF0aFJlbGVhc2VPYmplY3QoeHBjdHh0LCB0bXApOworCQkvKiB0aGVuIHBvcCBvZmYgY29udGV4dE9iaiwgd2hpY2ggd2lsbCBiZSBmcmVlZCBsYXRlciAqLworCQl2YWx1ZVBvcChjdHh0KTsKKwkJZ290byBldmFsdWF0aW9uX2Vycm9yOworCSAgICB9CisKKwkgICAgaWYgKHJlcykKKwkJcG9zKys7CisKKwkgICAgaWYgKHJlcyAmJiAocG9zID49IG1pblBvcykgJiYgKHBvcyA8PSBtYXhQb3MpKSB7CisJCS8qCisJCSogRml0cyBpbiB0aGUgcmVxdWVzdGVkIHJhbmdlLgorCQkqLworCQluZXdDb250ZXh0U2l6ZSsrOworCQlpZiAobWluUG9zID09IG1heFBvcykgeworCQkgICAgLyoKKwkJICAgICogT25seSAxIG5vZGUgd2FzIHJlcXVlc3RlZC4KKwkJICAgICovCisJCSAgICBpZiAoY29udGV4dE5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKSB7CisJCQkvKgorCQkJKiBBcyBhbHdheXM6IHRha2UgY2FyZSBvZiB0aG9zZSBuYXN0eQorCQkJKiBuYW1lc3BhY2Ugbm9kZXMuCisJCQkqLworCQkJc2V0LT5ub2RlVGFiW2ldID0gTlVMTDsKKwkJICAgIH0KKwkJICAgIHhtbFhQYXRoTm9kZVNldENsZWFyKHNldCwgaGFzTnNOb2Rlcyk7CisJCSAgICBzZXQtPm5vZGVOciA9IDE7CisJCSAgICBzZXQtPm5vZGVUYWJbMF0gPSBjb250ZXh0Tm9kZTsKKwkJICAgIGdvdG8gZXZhbHVhdGlvbl9leGl0OworCQl9CisJCWlmIChwb3MgPT0gbWF4UG9zKSB7CisJCSAgICAvKgorCQkgICAgKiBXZSBhcmUgZG9uZS4KKwkJICAgICovCisJCSAgICB4bWxYUGF0aE5vZGVTZXRDbGVhckZyb21Qb3Moc2V0LCBpICsxLCBoYXNOc05vZGVzKTsKKwkJICAgIGdvdG8gZXZhbHVhdGlvbl9leGl0OworCQl9CisJICAgIH0gZWxzZSB7CisJCS8qCisJCSogUmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBpbml0aWFsIG5vZGUgc2V0LgorCQkqLworCQlzZXQtPm5vZGVUYWJbaV0gPSBOVUxMOworCQlpZiAoY29udGV4dE5vZGUtPnR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKQorCQkgICAgeG1sWFBhdGhOb2RlU2V0RnJlZU5zKCh4bWxOc1B0cikgY29udGV4dE5vZGUpOworCSAgICB9CisJICAgIGlmIChleHByUmVzICE9IE5VTEwpIHsKKwkJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGV4cHJSZXMpOworCQlleHByUmVzID0gTlVMTDsKKwkgICAgfQorCSAgICBpZiAoY3R4dC0+dmFsdWUgPT0gY29udGV4dE9iaikgeworCQkvKgorCQkqIERvbid0IGZyZWUgdGhlIHRlbXBvcmFyeSBYUGF0aCBvYmplY3QgaG9sZGluZyB0aGUKKwkJKiBjb250ZXh0IG5vZGUsIGluIG9yZGVyIHRvIGF2b2lkIG1hc3NpdmUgcmVjcmVhdGlvbgorCQkqIGluc2lkZSB0aGlzIGxvb3AuCisJCSovCisJCXZhbHVlUG9wKGN0eHQpOworCQl4bWxYUGF0aE5vZGVTZXRDbGVhcihjb250ZXh0T2JqLT5ub2Rlc2V0dmFsLCBoYXNOc05vZGVzKTsKKwkgICAgfSBlbHNlIHsKKwkJLyoKKwkJKiBUaGUgb2JqZWN0IHdhcyBsb3N0IGluIHRoZSBldmFsdWF0aW9uIG1hY2hpbmVyeS4KKwkJKiBDYW4gdGhpcyBoYXBwZW4/IE1heWJlIGluIGNhc2Ugb2YgaW50ZXJuYWwtZXJyb3JzLgorCQkqLworCQljb250ZXh0T2JqID0gTlVMTDsKKwkgICAgfQorCX0KKwlnb3RvIGV2YWx1YXRpb25fZXhpdDsKKworZXZhbHVhdGlvbl9lcnJvcjoKKwl4bWxYUGF0aE5vZGVTZXRDbGVhcihzZXQsIGhhc05zTm9kZXMpOworCW5ld0NvbnRleHRTaXplID0gMDsKKworZXZhbHVhdGlvbl9leGl0OgorCWlmIChjb250ZXh0T2JqICE9IE5VTEwpIHsKKwkgICAgaWYgKGN0eHQtPnZhbHVlID09IGNvbnRleHRPYmopCisJCXZhbHVlUG9wKGN0eHQpOworCSAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoeHBjdHh0LCBjb250ZXh0T2JqKTsKKwl9CisJaWYgKGV4cHJSZXMgIT0gTlVMTCkKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGV4cHJSZXMpOworCS8qCisJKiBSZXNldC9pbnZhbGlkYXRlIHRoZSBjb250ZXh0LgorCSovCisJeHBjdHh0LT5ub2RlID0gb2xkQ29udGV4dE5vZGU7CisJeHBjdHh0LT5kb2MgPSBvbGRDb250ZXh0RG9jOworCXhwY3R4dC0+Y29udGV4dFNpemUgPSAtMTsKKwl4cGN0eHQtPnByb3hpbWl0eVBvc2l0aW9uID0gLTE7CisJcmV0dXJuKG5ld0NvbnRleHRTaXplKTsKKyAgICB9CisgICAgcmV0dXJuKGNvbnRleHRTaXplKTsKK30KKworc3RhdGljIGludAoreG1sWFBhdGhJc1Bvc2l0aW9uYWxQcmVkaWNhdGUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQkgICAgeG1sWFBhdGhTdGVwT3BQdHIgb3AsCisJCQkgICAgaW50ICptYXhQb3MpCit7CisKKyAgICB4bWxYUGF0aFN0ZXBPcFB0ciBleHByT3A7CisKKyAgICAvKgorICAgICogQklHIE5PVEU6IFRoaXMgaXMgbm90IGludGVuZGVkIGZvciBYUEFUSF9PUF9GSUxURVIgeWV0IQorICAgICovCisKKyAgICAvKgorICAgICogSWYgbm90IC0xLCB0aGVuIGNoMSB3aWxsIHBvaW50IHRvOgorICAgICogMSkgRm9yIHByZWRpY2F0ZXMgKFhQQVRIX09QX1BSRURJQ0FURSk6CisgICAgKiAgICAtIGFuIGlubmVyIHByZWRpY2F0ZSBvcGVyYXRvcgorICAgICogMikgRm9yIGZpbHRlcnMgKFhQQVRIX09QX0ZJTFRFUik6CisgICAgKiAgICAtIGFuIGlubmVyIGZpbHRlciBvcGVyYXRlciBPUgorICAgICogICAgLSBhbiBleHByZXNzaW9uIHNlbGVjdGluZyB0aGUgbm9kZSBzZXQuCisgICAgKiAgICAgIEUuZy4gImtleSgnYScsICdiJykiIG9yICIoLy9mb28gfCAvL2JhcikiLgorICAgICovCisgICAgaWYgKChvcC0+b3AgIT0gWFBBVEhfT1BfUFJFRElDQVRFKSAmJiAob3AtPm9wICE9IFhQQVRIX09QX0ZJTFRFUikpCisJcmV0dXJuKDApOworCisgICAgaWYgKG9wLT5jaDIgIT0gLTEpIHsKKwlleHByT3AgPSAmY3R4dC0+Y29tcC0+c3RlcHNbb3AtPmNoMl07CisgICAgfSBlbHNlCisJcmV0dXJuKDApOworCisgICAgaWYgKChleHByT3AgIT0gTlVMTCkgJiYKKwkoZXhwck9wLT5vcCA9PSBYUEFUSF9PUF9WQUxVRSkgJiYKKwkoZXhwck9wLT52YWx1ZTQgIT0gTlVMTCkgJiYKKwkoKCh4bWxYUGF0aE9iamVjdFB0cikgZXhwck9wLT52YWx1ZTQpLT50eXBlID09IFhQQVRIX05VTUJFUikpCisgICAgeworCS8qCisJKiBXZSBoYXZlIGEgIltuXSIgcHJlZGljYXRlIGhlcmUuCisJKiBUT0RPOiBVbmZvcnR1bmF0ZWx5IHRoaXMgc2ltcGxpc3RpYyB0ZXN0IGhlcmUgaXMgbm90CisJKiBhYmxlIHRvIGRldGVjdCBhIHBvc2l0aW9uKCkgcHJlZGljYXRlIGluIGNvbXBvdW5kCisJKiBleHByZXNzaW9ucyBsaWtlICJbQGF0dHIgPSAnYSIgYW5kIHBvc2l0aW9uKCkgPSAxXSwKKwkqIGFuZCBldmVuIG5vdCB0aGUgdXNhZ2Ugb2YgcG9zaXRpb24oKSBpbgorCSogIltwb3NpdGlvbigpID0gMV0iOyB0aHVzIC0gb2J2aW91c2x5IC0gYSBwb3NpdGlvbi1yYW5nZSwKKwkqIGxpa2UgaXQgIltwb3NpdGlvbigpIDwgNV0iLCBpcyBhbHNvIG5vdCBkZXRlY3RlZC4KKwkqIE1heWJlIHdlIGNvdWxkIHJld3JpdGUgdGhlIEFTVCB0byBlYXNlIHRoZSBvcHRpbWl6YXRpb24uCisJKi8KKwkqbWF4UG9zID0gKGludCkgKCh4bWxYUGF0aE9iamVjdFB0cikgZXhwck9wLT52YWx1ZTQpLT5mbG9hdHZhbDsKKworCWlmICgoKHhtbFhQYXRoT2JqZWN0UHRyKSBleHByT3AtPnZhbHVlNCktPmZsb2F0dmFsID09CisJICAgIChmbG9hdCkgKm1heFBvcykKKwl7CisJICAgIHJldHVybigxKTsKKwl9CisgICAgfQorICAgIHJldHVybigwKTsKK30KKworc3RhdGljIGludAoreG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3QoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aFN0ZXBPcFB0ciBvcCwKKwkJCSAgIHhtbE5vZGVQdHIgKiBmaXJzdCwgeG1sTm9kZVB0ciAqIGxhc3QsCisJCQkgICBpbnQgdG9Cb29sKQoreworCisjZGVmaW5lIFhQX1RFU1RfSElUIFwKKyAgICBpZiAoaGFzQXhpc1JhbmdlICE9IDApIHsgXAorCWlmICgrK3BvcyA9PSBtYXhQb3MpIHsgXAorCSAgICBhZGROb2RlKHNlcSwgY3VyKTsgXAorCWdvdG8gYXhpc19yYW5nZV9lbmQ7IH0gXAorICAgIH0gZWxzZSB7IFwKKwlhZGROb2RlKHNlcSwgY3VyKTsgXAorCWlmIChicmVha09uRmlyc3RIaXQpIGdvdG8gZmlyc3RfaGl0OyB9CisKKyNkZWZpbmUgWFBfVEVTVF9ISVRfTlMgXAorICAgIGlmIChoYXNBeGlzUmFuZ2UgIT0gMCkgeyBcCisJaWYgKCsrcG9zID09IG1heFBvcykgeyBcCisJICAgIGhhc05zTm9kZXMgPSAxOyBcCisJICAgIHhtbFhQYXRoTm9kZVNldEFkZE5zKHNlcSwgeHBjdHh0LT5ub2RlLCAoeG1sTnNQdHIpIGN1cik7IFwKKwlnb3RvIGF4aXNfcmFuZ2VfZW5kOyB9IFwKKyAgICB9IGVsc2UgeyBcCisJaGFzTnNOb2RlcyA9IDE7IFwKKwl4bWxYUGF0aE5vZGVTZXRBZGROcyhzZXEsIFwKKwl4cGN0eHQtPm5vZGUsICh4bWxOc1B0cikgY3VyKTsgXAorCWlmIChicmVha09uRmlyc3RIaXQpIGdvdG8gZmlyc3RfaGl0OyB9CisKKyAgICB4bWxYUGF0aEF4aXNWYWwgYXhpcyA9ICh4bWxYUGF0aEF4aXNWYWwpIG9wLT52YWx1ZTsKKyAgICB4bWxYUGF0aFRlc3RWYWwgdGVzdCA9ICh4bWxYUGF0aFRlc3RWYWwpIG9wLT52YWx1ZTI7CisgICAgeG1sWFBhdGhUeXBlVmFsIHR5cGUgPSAoeG1sWFBhdGhUeXBlVmFsKSBvcC0+dmFsdWUzOworICAgIGNvbnN0IHhtbENoYXIgKnByZWZpeCA9IG9wLT52YWx1ZTQ7CisgICAgY29uc3QgeG1sQ2hhciAqbmFtZSA9IG9wLT52YWx1ZTU7CisgICAgY29uc3QgeG1sQ2hhciAqVVJJID0gTlVMTDsKKworI2lmZGVmIERFQlVHX1NURVAKKyAgICBpbnQgbmJNYXRjaGVzID0gMCwgcHJldk1hdGNoZXMgPSAwOworI2VuZGlmCisgICAgaW50IHRvdGFsID0gMCwgaGFzTnNOb2RlcyA9IDA7CisgICAgLyogVGhlIHBvcHBlZCBvYmplY3QgaG9sZGluZyB0aGUgY29udGV4dCBub2RlcyAqLworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iajsKKyAgICAvKiBUaGUgc2V0IG9mIGNvbnRleHQgbm9kZXMgZm9yIHRoZSBub2RlIHRlc3RzICovCisgICAgeG1sTm9kZVNldFB0ciBjb250ZXh0U2VxOworICAgIGludCBjb250ZXh0SWR4OworICAgIHhtbE5vZGVQdHIgY29udGV4dE5vZGU7CisgICAgLyogVGhlIGNvbnRleHQgbm9kZSBmb3IgYSBjb21wb3VuZCB0cmF2ZXJzYWwgKi8KKyAgICB4bWxOb2RlUHRyIG91dGVyQ29udGV4dE5vZGU7CisgICAgLyogVGhlIGZpbmFsIHJlc3VsdGluZyBub2RlIHNldCB3cnQgdG8gYWxsIGNvbnRleHQgbm9kZXMgKi8KKyAgICB4bWxOb2RlU2V0UHRyIG91dFNlcTsKKyAgICAvKgorICAgICogVGhlIHRlbXBvcmFyeSByZXN1bHRpbmcgbm9kZSBzZXQgd3J0IDEgY29udGV4dCBub2RlLgorICAgICogVXNlZCB0byBmZWVkIHByZWRpY2F0ZSBldmFsdWF0aW9uLgorICAgICovCisgICAgeG1sTm9kZVNldFB0ciBzZXE7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgLyogRmlyc3QgcHJlZGljYXRlIG9wZXJhdG9yICovCisgICAgeG1sWFBhdGhTdGVwT3BQdHIgcHJlZE9wOworICAgIGludCBtYXhQb3M7IC8qIFRoZSByZXF1ZXN0ZWQgcG9zaXRpb24oKSAod2hlbiBhICJbbl0iIHByZWRpY2F0ZSkgKi8KKyAgICBpbnQgaGFzUHJlZGljYXRlUmFuZ2UsIGhhc0F4aXNSYW5nZSwgcG9zLCBzaXplLCBuZXdTaXplOworICAgIGludCBicmVha09uRmlyc3RIaXQ7CisKKyAgICB4bWxYUGF0aFRyYXZlcnNhbEZ1bmN0aW9uIG5leHQgPSBOVUxMOworICAgIC8qIGNvbXBvdW5kIGF4aXMgdHJhdmVyc2FsICovCisgICAgeG1sWFBhdGhUcmF2ZXJzYWxGdW5jdGlvbkV4dCBvdXRlck5leHQgPSBOVUxMOworICAgIHZvaWQgKCphZGROb2RlKSAoeG1sTm9kZVNldFB0ciwgeG1sTm9kZVB0cik7CisgICAgeG1sWFBhdGhOb2RlU2V0TWVyZ2VGdW5jdGlvbiBtZXJnZUFuZENsZWFyOworICAgIHhtbE5vZGVQdHIgb2xkQ29udGV4dE5vZGU7CisgICAgeG1sWFBhdGhDb250ZXh0UHRyIHhwY3R4dCA9IGN0eHQtPmNvbnRleHQ7CisKKworICAgIENIRUNLX1RZUEUwKFhQQVRIX05PREVTRVQpOworICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgIC8qCisgICAgKiBTZXR1cCBuYW1lc3BhY2VzLgorICAgICovCisgICAgaWYgKHByZWZpeCAhPSBOVUxMKSB7CisgICAgICAgIFVSSSA9IHhtbFhQYXRoTnNMb29rdXAoeHBjdHh0LCBwcmVmaXgpOworICAgICAgICBpZiAoVVJJID09IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KHhwY3R4dCwgb2JqKTsKKyAgICAgICAgICAgIFhQX0VSUk9SMChYUEFUSF9VTkRFRl9QUkVGSVhfRVJST1IpOworCX0KKyAgICB9CisgICAgLyoKKyAgICAqIFNldHVwIGF4aXMuCisgICAgKgorICAgICogTUFZQkUgRlVUVVJFIFRPRE86IG1lcmdpbmcgb3B0aW1pemF0aW9uczoKKyAgICAqIC0gSWYgdGhlIG5vZGVzIHRvIGJlIHRyYXZlcnNlZCB3cnQgdG8gdGhlIGluaXRpYWwgbm9kZXMgYW5kCisgICAgKiAgIHRoZSBjdXJyZW50IGF4aXMgY2Fubm90IG92ZXJsYXAsIHRoZW4gd2UgY291bGQgYXZvaWQgc2VhcmNoaW5nCisgICAgKiAgIGZvciBkdXBsaWNhdGVzIGR1cmluZyB0aGUgbWVyZ2UuCisgICAgKiAgIEJ1dCB0aGUgcXVlc3Rpb24gaXMgaG93L3doZW4gdG8gZXZhbHVhdGUgaWYgdGhleSBjYW5ub3Qgb3ZlcmxhcC4KKyAgICAqICAgRXhhbXBsZTogaWYgd2Uga25vdyB0aGF0IGZvciB0d28gaW5pdGlhbCBub2RlcywgdGhlIG9uZSBpcworICAgICogICBub3QgaW4gdGhlIGFuY2VzdG9yLW9yLXNlbGYgYXhpcyBvZiB0aGUgb3RoZXIsIHRoZW4gd2UgY291bGQgc2FmZWx5CisgICAgKiAgIGF2b2lkIGEgZHVwbGljYXRlLWF3YXJlIG1lcmdlLCBpZiB0aGUgYXhpcyB0byBiZSB0cmF2ZXJzZWQgaXMgZS5nLgorICAgICogICB0aGUgZGVzY2VuZGFudC1vci1zZWxmIGF4aXMuCisgICAgKi8KKyAgICBtZXJnZUFuZENsZWFyID0geG1sWFBhdGhOb2RlU2V0TWVyZ2VBbmRDbGVhcjsKKyAgICBzd2l0Y2ggKGF4aXMpIHsKKyAgICAgICAgY2FzZSBBWElTX0FOQ0VTVE9SOgorICAgICAgICAgICAgZmlyc3QgPSBOVUxMOworICAgICAgICAgICAgbmV4dCA9IHhtbFhQYXRoTmV4dEFuY2VzdG9yOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19BTkNFU1RPUl9PUl9TRUxGOgorICAgICAgICAgICAgZmlyc3QgPSBOVUxMOworICAgICAgICAgICAgbmV4dCA9IHhtbFhQYXRoTmV4dEFuY2VzdG9yT3JTZWxmOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19BVFRSSUJVVEU6CisgICAgICAgICAgICBmaXJzdCA9IE5VTEw7CisJICAgIGxhc3QgPSBOVUxMOworICAgICAgICAgICAgbmV4dCA9IHhtbFhQYXRoTmV4dEF0dHJpYnV0ZTsKKwkgICAgbWVyZ2VBbmRDbGVhciA9IHhtbFhQYXRoTm9kZVNldE1lcmdlQW5kQ2xlYXJOb0R1cGxzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19DSElMRDoKKwkgICAgbGFzdCA9IE5VTEw7CisJICAgIGlmIChvcC0+cmV3cml0ZVR5cGUgPT0gWFBfUkVXUklURV9ET1NfQ0hJTERfRUxFTSkgeworCQkvKgorCQkqIFRoaXMgaXRlcmF0b3Igd2lsbCBnaXZlIHVzIG9ubHkgbm9kZXMgd2hpY2ggY2FuCisJCSogaG9sZCBlbGVtZW50IG5vZGVzLgorCQkqLworCQlvdXRlck5leHQgPSB4bWxYUGF0aE5leHREZXNjZW5kYW50T3JTZWxmRWxlbVBhcmVudDsKKwkgICAgfQorCSAgICBpZiAoKCh0ZXN0ID09IE5PREVfVEVTVF9OQU1FKSB8fCAodGVzdCA9PSBOT0RFX1RFU1RfQUxMKSkgJiYKKwkJKHR5cGUgPT0gTk9ERV9UWVBFX05PREUpKQorCSAgICB7CisJCS8qCisJCSogT3B0aW1pemF0aW9uIGlmIGFuIGVsZW1lbnQgbm9kZSB0eXBlIGlzICdlbGVtZW50Jy4KKwkJKi8KKwkJbmV4dCA9IHhtbFhQYXRoTmV4dENoaWxkRWxlbWVudDsKKwkgICAgfSBlbHNlCisJCW5leHQgPSB4bWxYUGF0aE5leHRDaGlsZDsKKwkgICAgbWVyZ2VBbmRDbGVhciA9IHhtbFhQYXRoTm9kZVNldE1lcmdlQW5kQ2xlYXJOb0R1cGxzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19ERVNDRU5EQU5UOgorCSAgICBsYXN0ID0gTlVMTDsKKyAgICAgICAgICAgIG5leHQgPSB4bWxYUGF0aE5leHREZXNjZW5kYW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19ERVNDRU5EQU5UX09SX1NFTEY6CisJICAgIGxhc3QgPSBOVUxMOworICAgICAgICAgICAgbmV4dCA9IHhtbFhQYXRoTmV4dERlc2NlbmRhbnRPclNlbGY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWElTX0ZPTExPV0lORzoKKwkgICAgbGFzdCA9IE5VTEw7CisgICAgICAgICAgICBuZXh0ID0geG1sWFBhdGhOZXh0Rm9sbG93aW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhJU19GT0xMT1dJTkdfU0lCTElORzoKKwkgICAgbGFzdCA9IE5VTEw7CisgICAgICAgICAgICBuZXh0ID0geG1sWFBhdGhOZXh0Rm9sbG93aW5nU2libGluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfTkFNRVNQQUNFOgorICAgICAgICAgICAgZmlyc3QgPSBOVUxMOworCSAgICBsYXN0ID0gTlVMTDsKKyAgICAgICAgICAgIG5leHQgPSAoeG1sWFBhdGhUcmF2ZXJzYWxGdW5jdGlvbikgeG1sWFBhdGhOZXh0TmFtZXNwYWNlOworCSAgICBtZXJnZUFuZENsZWFyID0geG1sWFBhdGhOb2RlU2V0TWVyZ2VBbmRDbGVhck5vRHVwbHM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWElTX1BBUkVOVDoKKyAgICAgICAgICAgIGZpcnN0ID0gTlVMTDsKKyAgICAgICAgICAgIG5leHQgPSB4bWxYUGF0aE5leHRQYXJlbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWElTX1BSRUNFRElORzoKKyAgICAgICAgICAgIGZpcnN0ID0gTlVMTDsKKyAgICAgICAgICAgIG5leHQgPSB4bWxYUGF0aE5leHRQcmVjZWRpbmdJbnRlcm5hbDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfUFJFQ0VESU5HX1NJQkxJTkc6CisgICAgICAgICAgICBmaXJzdCA9IE5VTEw7CisgICAgICAgICAgICBuZXh0ID0geG1sWFBhdGhOZXh0UHJlY2VkaW5nU2libGluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYSVNfU0VMRjoKKyAgICAgICAgICAgIGZpcnN0ID0gTlVMTDsKKwkgICAgbGFzdCA9IE5VTEw7CisgICAgICAgICAgICBuZXh0ID0geG1sWFBhdGhOZXh0U2VsZjsKKwkgICAgbWVyZ2VBbmRDbGVhciA9IHhtbFhQYXRoTm9kZVNldE1lcmdlQW5kQ2xlYXJOb0R1cGxzOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisjaWZkZWYgREVCVUdfU1RFUAorICAgIHhtbFhQYXRoRGVidWdEdW1wU3RlcEF4aXMob3AsCisJKG9iai0+bm9kZXNldHZhbCAhPSBOVUxMKSA/IG9iai0+bm9kZXNldHZhbC0+bm9kZU5yIDogMCk7CisjZW5kaWYKKworICAgIGlmIChuZXh0ID09IE5VTEwpIHsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoeHBjdHh0LCBvYmopOworICAgICAgICByZXR1cm4oMCk7CisgICAgfQorICAgIGNvbnRleHRTZXEgPSBvYmotPm5vZGVzZXR2YWw7CisgICAgaWYgKChjb250ZXh0U2VxID09IE5VTEwpIHx8IChjb250ZXh0U2VxLT5ub2RlTnIgPD0gMCkpIHsKKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoeHBjdHh0LCBvYmopOworICAgICAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZVdyYXBOb2RlU2V0KHhwY3R4dCwgTlVMTCkpOworICAgICAgICByZXR1cm4oMCk7CisgICAgfQorICAgIC8qCisgICAgKiBQcmVkaWNhdGUgb3B0aW1pemF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICogSWYgdGhpcyBzdGVwIGhhcyBhIGxhc3QgcHJlZGljYXRlLCB3aGljaCBjb250YWlucyBhIHBvc2l0aW9uKCksCisgICAgKiB0aGVuIHdlJ2xsIG9wdGltaXplIChhbHRob3VnaCBub3QgZXhhY3RseSAicG9zaXRpb24oKSIsIGJ1dCBvbmx5CisgICAgKiB0aGUgIHNob3J0LWhhbmQgZm9ybSwgaS5lLiwgIltuXSIuCisgICAgKgorICAgICogRXhhbXBsZSAtIGV4cHJlc3Npb24gIi9mb29bcGFyZW50OjpiYXJdWzFdIjoKKyAgICAqCisgICAgKiBDT0xMRUNUICdjaGlsZCcgJ25hbWUnICdub2RlJyBmb28gICAgLS0gb3AgKHdlIGFyZSBoZXJlKQorICAgICogICBST09UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIG9wLT5jaDEKKyAgICAqICAgUFJFRElDQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBvcC0+Y2gyIChwcmVkT3ApCisgICAgKiAgICAgUFJFRElDQVRFICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBwcmVkT3AtPmNoMSA9IFtwYXJlbnQ6OmJhcl0KKyAgICAqICAgICAgIFNPUlQKKyAgICAqICAgICAgICAgQ09MTEVDVCAgJ3BhcmVudCcgJ25hbWUnICdub2RlJyBiYXIKKyAgICAqICAgICAgICAgICBOT0RFCisgICAgKiAgICAgRUxFTSBPYmplY3QgaXMgYSBudW1iZXIgOiAxICAgICAgICAtLSBwcmVkT3AtPmNoMiA9IFsxXQorICAgICoKKyAgICAqLworICAgIG1heFBvcyA9IDA7CisgICAgcHJlZE9wID0gTlVMTDsKKyAgICBoYXNQcmVkaWNhdGVSYW5nZSA9IDA7CisgICAgaGFzQXhpc1JhbmdlID0gMDsKKyAgICBpZiAob3AtPmNoMiAhPSAtMSkgeworCS8qCisJKiBUaGVyZSdzIGF0IGxlYXN0IG9uZSBwcmVkaWNhdGUuIDE2ID09IFhQQVRIX09QX1BSRURJQ0FURQorCSovCisJcHJlZE9wID0gJmN0eHQtPmNvbXAtPnN0ZXBzW29wLT5jaDJdOworCWlmICh4bWxYUGF0aElzUG9zaXRpb25hbFByZWRpY2F0ZShjdHh0LCBwcmVkT3AsICZtYXhQb3MpKSB7CisJICAgIGlmIChwcmVkT3AtPmNoMSAhPSAtMSkgeworCQkvKgorCQkqIFVzZSB0aGUgbmV4dCBpbm5lciBwcmVkaWNhdGUgb3BlcmF0b3IuCisJCSovCisJCXByZWRPcCA9ICZjdHh0LT5jb21wLT5zdGVwc1twcmVkT3AtPmNoMV07CisJCWhhc1ByZWRpY2F0ZVJhbmdlID0gMTsKKwkgICAgfSBlbHNlIHsKKwkJLyoKKwkJKiBUaGVyZSdzIG5vIG90aGVyIHByZWRpY2F0ZSB0aGFuIHRoZSBbbl0gcHJlZGljYXRlLgorCQkqLworCQlwcmVkT3AgPSBOVUxMOworCQloYXNBeGlzUmFuZ2UgPSAxOworCSAgICB9CisJfQorICAgIH0KKyAgICBicmVha09uRmlyc3RIaXQgPSAoKHRvQm9vbCkgJiYgKHByZWRPcCA9PSBOVUxMKSkgPyAxIDogMDsKKyAgICAvKgorICAgICogQXhpcyB0cmF2ZXJzYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAqLworICAgIC8qCisgICAgICogMi4zIE5vZGUgVGVzdHMKKyAgICAgKiAgLSBGb3IgdGhlIGF0dHJpYnV0ZSBheGlzLCB0aGUgcHJpbmNpcGFsIG5vZGUgdHlwZSBpcyBhdHRyaWJ1dGUuCisgICAgICogIC0gRm9yIHRoZSBuYW1lc3BhY2UgYXhpcywgdGhlIHByaW5jaXBhbCBub2RlIHR5cGUgaXMgbmFtZXNwYWNlLgorICAgICAqICAtIEZvciBvdGhlciBheGVzLCB0aGUgcHJpbmNpcGFsIG5vZGUgdHlwZSBpcyBlbGVtZW50LgorICAgICAqCisgICAgICogQSBub2RlIHRlc3QgKiBpcyB0cnVlIGZvciBhbnkgbm9kZSBvZiB0aGUKKyAgICAgKiBwcmluY2lwYWwgbm9kZSB0eXBlLiBGb3IgZXhhbXBsZSwgY2hpbGQ6Oiogd2lsbAorICAgICAqIHNlbGVjdCBhbGwgZWxlbWVudCBjaGlsZHJlbiBvZiB0aGUgY29udGV4dCBub2RlCisgICAgICovCisgICAgb2xkQ29udGV4dE5vZGUgPSB4cGN0eHQtPm5vZGU7CisgICAgYWRkTm9kZSA9IHhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZTsKKyAgICBvdXRTZXEgPSBOVUxMOworICAgIHNlcSA9IE5VTEw7CisgICAgb3V0ZXJDb250ZXh0Tm9kZSA9IE5VTEw7CisgICAgY29udGV4dE5vZGUgPSBOVUxMOworICAgIGNvbnRleHRJZHggPSAwOworCisKKyAgICB3aGlsZSAoKGNvbnRleHRJZHggPCBjb250ZXh0U2VxLT5ub2RlTnIpIHx8IChjb250ZXh0Tm9kZSAhPSBOVUxMKSkgeworCWlmIChvdXRlck5leHQgIT0gTlVMTCkgeworCSAgICAvKgorCSAgICAqIFRoaXMgaXMgYSBjb21wb3VuZCB0cmF2ZXJzYWwuCisJICAgICovCisJICAgIGlmIChjb250ZXh0Tm9kZSA9PSBOVUxMKSB7CisJCS8qCisJCSogU2V0IHRoZSBjb250ZXh0IGZvciB0aGUgb3V0ZXIgdHJhdmVyc2FsLgorCQkqLworCQlvdXRlckNvbnRleHROb2RlID0gY29udGV4dFNlcS0+bm9kZVRhYltjb250ZXh0SWR4KytdOworCQljb250ZXh0Tm9kZSA9IG91dGVyTmV4dChOVUxMLCBvdXRlckNvbnRleHROb2RlKTsKKwkgICAgfSBlbHNlCisJCWNvbnRleHROb2RlID0gb3V0ZXJOZXh0KGNvbnRleHROb2RlLCBvdXRlckNvbnRleHROb2RlKTsKKwkgICAgaWYgKGNvbnRleHROb2RlID09IE5VTEwpCisJCWNvbnRpbnVlOworCSAgICAvKgorCSAgICAqIFNldCB0aGUgY29udGV4dCBmb3IgdGhlIG1haW4gdHJhdmVyc2FsLgorCSAgICAqLworCSAgICB4cGN0eHQtPm5vZGUgPSBjb250ZXh0Tm9kZTsKKwl9IGVsc2UKKwkgICAgeHBjdHh0LT5ub2RlID0gY29udGV4dFNlcS0+bm9kZVRhYltjb250ZXh0SWR4KytdOworCisJaWYgKHNlcSA9PSBOVUxMKSB7CisJICAgIHNlcSA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKwkgICAgaWYgKHNlcSA9PSBOVUxMKSB7CisJCXRvdGFsID0gMDsKKwkJZ290byBlcnJvcjsKKwkgICAgfQorCX0KKwkvKgorCSogVHJhdmVyc2UgdGhlIGF4aXMgYW5kIHRlc3QgdGhlIG5vZGVzLgorCSovCisJcG9zID0gMDsKKwljdXIgPSBOVUxMOworCWhhc05zTm9kZXMgPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICBjdXIgPSBuZXh0KGN0eHQsIGN1cik7CisgICAgICAgICAgICBpZiAoY3VyID09IE5VTEwpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKwkgICAgLyoKKwkgICAgKiBRVUVTVElPTiBUT0RPOiBXaGF0IGRvZXMgdGhlICJmaXJzdCIgYW5kICJsYXN0IiBzdHVmZiBkbz8KKwkgICAgKi8KKyAgICAgICAgICAgIGlmICgoZmlyc3QgIT0gTlVMTCkgJiYgKCpmaXJzdCAhPSBOVUxMKSkgeworCQlpZiAoKmZpcnN0ID09IGN1cikKKwkJICAgIGJyZWFrOworCQlpZiAoKCh0b3RhbCAlIDI1NikgPT0gMCkgJiYKKyNpZmRlZiBYUF9PUFRJTUlaRURfTk9OX0VMRU1fQ09NUEFSSVNPTgorCQkgICAgKHhtbFhQYXRoQ21wTm9kZXNFeHQoKmZpcnN0LCBjdXIpID49IDApKQorI2Vsc2UKKwkJICAgICh4bWxYUGF0aENtcE5vZGVzKCpmaXJzdCwgY3VyKSA+PSAwKSkKKyNlbmRpZgorCQl7CisJCSAgICBicmVhazsKKwkJfQorCSAgICB9CisJICAgIGlmICgobGFzdCAhPSBOVUxMKSAmJiAoKmxhc3QgIT0gTlVMTCkpIHsKKwkJaWYgKCpsYXN0ID09IGN1cikKKwkJICAgIGJyZWFrOworCQlpZiAoKCh0b3RhbCAlIDI1NikgPT0gMCkgJiYKKyNpZmRlZiBYUF9PUFRJTUlaRURfTk9OX0VMRU1fQ09NUEFSSVNPTgorCQkgICAgKHhtbFhQYXRoQ21wTm9kZXNFeHQoY3VyLCAqbGFzdCkgPj0gMCkpCisjZWxzZQorCQkgICAgKHhtbFhQYXRoQ21wTm9kZXMoY3VyLCAqbGFzdCkgPj0gMCkpCisjZW5kaWYKKwkJeworCQkgICAgYnJlYWs7CisJCX0KKwkgICAgfQorCisgICAgICAgICAgICB0b3RhbCsrOworCisjaWZkZWYgREVCVUdfU1RFUAorICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICIgJXMiLCBjdXItPm5hbWUpOworI2VuZGlmCisKKwkgICAgc3dpdGNoICh0ZXN0KSB7CisgICAgICAgICAgICAgICAgY2FzZSBOT0RFX1RFU1RfTk9ORToKKwkJICAgIHRvdGFsID0gMDsKKyAgICAgICAgICAgICAgICAgICAgU1RSQU5HRQorCQkgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICBjYXNlIE5PREVfVEVTVF9UWVBFOgorCQkgICAgLyoKKwkJICAgICogVE9ETzogRG9uJ3Qgd2UgbmVlZCB0byB1c2UKKwkJICAgICogIHhtbFhQYXRoTm9kZVNldEFkZE5zKCkgZm9yIG5hbWVzcGFjZSBub2RlcyBoZXJlPworCQkgICAgKiAgU3VycHJpc2luZ2x5LCBzb21lIGMxNG4gdGVzdHMgZmFpbCwgaWYgd2UgZG8gdGhpcy4KKwkJICAgICovCisJCSAgICBpZiAodHlwZSA9PSBOT0RFX1RZUEVfTk9ERSkgeworCQkJc3dpdGNoIChjdXItPnR5cGUpIHsKKwkJCSAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorCQkJICAgIGNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERToKKyNpZmRlZiBMSUJYTUxfRE9DQl9FTkFCTEVECisJCQkgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisJCQkgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCQkJICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCQkJICAgIGNhc2UgWE1MX1BJX05PREU6CisJCQkgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCQkJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkJCSAgICBjYXNlIFhNTF9URVhUX05PREU6CisJCQkgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisJCQkJWFBfVEVTVF9ISVQKKwkJCQlicmVhazsKKwkJCSAgICBkZWZhdWx0OgorCQkJCWJyZWFrOworCQkJfQorCQkgICAgfSBlbHNlIGlmIChjdXItPnR5cGUgPT0gdHlwZSkgeworCQkJaWYgKHR5cGUgPT0gWE1MX05BTUVTUEFDRV9ERUNMKQorCQkJICAgIFhQX1RFU1RfSElUX05TCisJCQllbHNlCisJCQkgICAgWFBfVEVTVF9ISVQKKwkJICAgIH0gZWxzZSBpZiAoKHR5cGUgPT0gTk9ERV9UWVBFX1RFWFQpICYmCisJCQkgKGN1ci0+dHlwZSA9PSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFKSkKKwkJICAgIHsKKwkJCVhQX1RFU1RfSElUCisJCSAgICB9CisJCSAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5PREVfVEVTVF9QSToKKyAgICAgICAgICAgICAgICAgICAgaWYgKChjdXItPnR5cGUgPT0gWE1MX1BJX05PREUpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoKG5hbWUgPT0gTlVMTCkgfHwgeG1sU3RyRXF1YWwobmFtZSwgY3VyLT5uYW1lKSkpCisJCSAgICB7CisJCQlYUF9URVNUX0hJVAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTk9ERV9URVNUX0FMTDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF4aXMgPT0gQVhJU19BVFRSSUJVVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKQorCQkJeworCQkJICAgIFhQX1RFU1RfSElUCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXhpcyA9PSBBWElTX05BTUVTUEFDRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpCisJCQl7CisJCQkgICAgWFBfVEVTVF9ISVRfTlMKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXggPT0gTlVMTCkKKwkJCSAgICB7CisJCQkJWFBfVEVTVF9ISVQKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGN1ci0+bnMgIT0gTlVMTCkgJiYKKwkJCQkoeG1sU3RyRXF1YWwoVVJJLCBjdXItPm5zLT5ocmVmKSkpCisJCQkgICAgeworCQkJCVhQX1RFU1RfSElUCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTk9ERV9URVNUX05TOnsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRPRE87CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgTk9ERV9URVNUX05BTUU6CisgICAgICAgICAgICAgICAgICAgIGlmIChheGlzID09IEFYSVNfQVRUUklCVVRFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyLT50eXBlICE9IFhNTF9BVFRSSUJVVEVfTk9ERSkKKwkJCSAgICBicmVhazsKKwkJICAgIH0gZWxzZSBpZiAoYXhpcyA9PSBBWElTX05BTUVTUEFDRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ci0+dHlwZSAhPSBYTUxfTkFNRVNQQUNFX0RFQ0wpCisJCQkgICAgYnJlYWs7CisJCSAgICB9IGVsc2UgeworCQkgICAgICAgIGlmIChjdXItPnR5cGUgIT0gWE1MX0VMRU1FTlRfTk9ERSkKKwkJCSAgICBicmVhazsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeG1sU3RyRXF1YWwobmFtZSwgY3VyLT5uYW1lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXItPm5zID09IE5VTEwpCisJCQkJICAgIHsKKwkJCQkJWFBfVEVTVF9ISVQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoY3VyLT5ucyAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4bWxTdHJFcXVhbChVUkksIGN1ci0+bnMtPmhyZWYpKSkKKwkJCQkgICAgeworCQkJCQlYUF9URVNUX0hJVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxBdHRyUHRyIGF0dHIgPSAoeG1sQXR0clB0cikgY3VyOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCBhdHRyLT5uYW1lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChhdHRyLT5ucyA9PSBOVUxMKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXR0ci0+bnMtPnByZWZpeCA9PSBOVUxMKSkKKwkJCQkJeworCQkJCQkgICAgWFBfVEVTVF9ISVQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoYXR0ci0+bnMgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsKFVSSSwKKwkJCQkJICAgICAgYXR0ci0+bnMtPmhyZWYpKSkKKwkJCQkJeworCQkJCQkgICAgWFBfVEVTVF9ISVQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBYTUxfTkFNRVNQQUNFX0RFQ0w6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ci0+dHlwZSA9PSBYTUxfTkFNRVNQQUNFX0RFQ0wpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sTnNQdHIgbnMgPSAoeG1sTnNQdHIpIGN1cjsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKG5zLT5wcmVmaXggIT0gTlVMTCkgJiYgKG5hbWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICh4bWxTdHJFcXVhbChucy0+cHJlZml4LCBuYW1lKSkpCisJCQkJeworCQkJCSAgICBYUF9URVNUX0hJVF9OUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgfSAvKiBzd2l0Y2godGVzdCkgKi8KKyAgICAgICAgfSB3aGlsZSAoY3VyICE9IE5VTEwpOworCisJZ290byBhcHBseV9wcmVkaWNhdGVzOworCitheGlzX3JhbmdlX2VuZDogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKwkvKgorCSogV2UgaGF2ZSBhICIvZm9vW25dIiwgYW5kIHBvc2l0aW9uKCkgPSBuIHdhcyByZWFjaGVkLgorCSogTm90ZSB0aGF0IHdlIGNhbiBoYXZlIGFzIHdlbGwgIi9mb28vOjpwYXJlbnQ6OmZvb1sxXSIsIHNvCisJKiBhIGR1cGxpY2F0ZS1hd2FyZSBtZXJnZSBpcyBzdGlsbCBuZWVkZWQuCisJKiBNZXJnZSB3aXRoIHRoZSByZXN1bHQuCisJKi8KKwlpZiAob3V0U2VxID09IE5VTEwpIHsKKwkgICAgb3V0U2VxID0gc2VxOworCSAgICBzZXEgPSBOVUxMOworCX0gZWxzZQorCSAgICBvdXRTZXEgPSBtZXJnZUFuZENsZWFyKG91dFNlcSwgc2VxLCAwKTsKKwkvKgorCSogQnJlYWsgaWYgb25seSBhIHRydWUvZmFsc2UgcmVzdWx0IHdhcyByZXF1ZXN0ZWQuCisJKi8KKwlpZiAodG9Cb29sKQorCSAgICBicmVhazsKKwljb250aW51ZTsKKworZmlyc3RfaGl0OiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisJLyoKKwkqIEJyZWFrIGlmIG9ubHkgYSB0cnVlL2ZhbHNlIHJlc3VsdCB3YXMgcmVxdWVzdGVkIGFuZAorCSogbm8gcHJlZGljYXRlcyBleGlzdGVkIGFuZCBhIG5vZGUgdGVzdCBzdWNjZWVkZWQuCisJKi8KKwlpZiAob3V0U2VxID09IE5VTEwpIHsKKwkgICAgb3V0U2VxID0gc2VxOworCSAgICBzZXEgPSBOVUxMOworCX0gZWxzZQorCSAgICBvdXRTZXEgPSBtZXJnZUFuZENsZWFyKG91dFNlcSwgc2VxLCAwKTsKKwlicmVhazsKKworI2lmZGVmIERFQlVHX1NURVAKKwlpZiAoc2VxICE9IE5VTEwpCisJICAgIG5iTWF0Y2hlcyArPSBzZXEtPm5vZGVOcjsKKyNlbmRpZgorCithcHBseV9wcmVkaWNhdGVzOiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAgICAgLyoKKwkqIEFwcGx5IHByZWRpY2F0ZXMuCisJKi8KKyAgICAgICAgaWYgKChwcmVkT3AgIT0gTlVMTCkgJiYgKHNlcS0+bm9kZU5yID4gMCkpIHsKKwkgICAgLyoKKwkgICAgKiBFLmcuIHdoZW4gd2UgaGF2ZSBhICIvZm9vW3NvbWUgZXhwcmVzc2lvbl1bbl0iLgorCSAgICAqLwkgICAgCisJICAgIC8qCisJICAgICogUVVFU1RJT04gVE9ETzogVGhlIG9sZCBwcmVkaWNhdGUgZXZhbHVhdGlvbiB0b29rIGludG8KKwkgICAgKiAgYWNjb3VudCBsb2NhdGlvbi1zZXRzLgorCSAgICAqICAoRS5nLiBjdHh0LT52YWx1ZS0+dHlwZSA9PSBYUEFUSF9MT0NBVElPTlNFVCkKKwkgICAgKiAgRG8gd2UgZXhwZWN0IHN1Y2ggYSBzZXQgaGVyZT8KKwkgICAgKiAgQWxsIHdoYXQgSSBsZWFybmVkIG5vdyBmcm9tIHRoZSBldmFsdWF0aW9uIHNlbWFudGljcworCSAgICAqICBkb2VzIG5vdCBpbmRpY2F0ZSB0aGF0IGEgbG9jYXRpb24tc2V0IHdpbGwgYmUgcHJvY2Vzc2VkCisJICAgICogIGhlcmUsIHNvIHRoaXMgbG9va3MgT0suCisJICAgICovCSAgICAKKwkgICAgLyoKKwkgICAgKiBJdGVyYXRlIG92ZXIgYWxsIHByZWRpY2F0ZXMsIHN0YXJ0aW5nIHdpdGggdGhlIG91dGVybW9zdAorCSAgICAqIHByZWRpY2F0ZS4KKwkgICAgKiBUT0RPOiBQcm9ibGVtOiB3ZSBjYW5ub3QgZXhlY3V0ZSB0aGUgaW5uZXIgcHJlZGljYXRlcyBmaXJzdAorCSAgICAqICBzaW5jZSB3ZSBjYW5ub3QgZ28gYmFjayAqdXAqIHRoZSBvcGVyYXRvciB0cmVlIQorCSAgICAqICBPcHRpb25zIHdlIGhhdmU6CisJICAgICogIDEpIFVzZSBvZiByZWN1cnNpdmUgZnVuY3Rpb25zIChsaWtlIGlzIGl0IGN1cnJlbnRseSBkb25lCisJICAgICogICAgIHZpYSB4bWxYUGF0aENvbXBPcEV2YWwoKSkKKwkgICAgKiAgMikgQWRkIGEgcHJlZGljYXRlIGV2YWx1YXRpb24gaW5mb3JtYXRpb24gc3RhY2sgdG8gdGhlCisJICAgICogICAgIGNvbnRleHQgc3RydWN0CisJICAgICogIDMpIENoYW5nZSB0aGUgd2F5IHRoZSBvcGVyYXRvcnMgYXJlIGxpbmtlZDsgd2UgbmVlZCBhCisJICAgICogICAgICJwYXJlbnQiIGZpZWxkIG9uIHhtbFhQYXRoU3RlcE9wCisJICAgICoKKwkgICAgKiBGb3IgdGhlIG1vbWVudCwgSSdsbCB0cnkgdG8gc29sdmUgdGhpcyB3aXRoIGEgcmVjdXJzaXZlCisJICAgICogZnVuY3Rpb246IHhtbFhQYXRoQ29tcE9wRXZhbFByZWRpY2F0ZSgpLgorCSAgICAqLworCSAgICBzaXplID0gc2VxLT5ub2RlTnI7CisJICAgIGlmIChoYXNQcmVkaWNhdGVSYW5nZSAhPSAwKQorCQluZXdTaXplID0geG1sWFBhdGhDb21wT3BFdmFsUG9zaXRpb25hbFByZWRpY2F0ZShjdHh0LAorCQkgICAgcHJlZE9wLCBzZXEsIHNpemUsIG1heFBvcywgbWF4UG9zLCBoYXNOc05vZGVzKTsKKwkgICAgZWxzZQorCQluZXdTaXplID0geG1sWFBhdGhDb21wT3BFdmFsUHJlZGljYXRlKGN0eHQsCisJCSAgICBwcmVkT3AsIHNlcSwgc2l6ZSwgaGFzTnNOb2Rlcyk7CisKKwkgICAgaWYgKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spIHsKKwkJdG90YWwgPSAwOworCQlnb3RvIGVycm9yOworCSAgICB9CisJICAgIC8qCisJICAgICogQWRkIHRoZSBmaWx0ZXJlZCBzZXQgb2Ygbm9kZXMgdG8gdGhlIHJlc3VsdCBub2RlIHNldC4KKwkgICAgKi8KKwkgICAgaWYgKG5ld1NpemUgPT0gMCkgeworCQkvKgorCQkqIFRoZSBwcmVkaWNhdGVzIGZpbHRlcmVkIGFsbCBub2RlcyBvdXQuCisJCSovCisJCXhtbFhQYXRoTm9kZVNldENsZWFyKHNlcSwgaGFzTnNOb2Rlcyk7CisJICAgIH0gZWxzZSBpZiAoc2VxLT5ub2RlTnIgPiAwKSB7CisJCS8qCisJCSogQWRkIHRvIHJlc3VsdCBzZXQuCisJCSovCisJCWlmIChvdXRTZXEgPT0gTlVMTCkgeworCQkgICAgaWYgKHNpemUgIT0gbmV3U2l6ZSkgeworCQkJLyoKKwkJCSogV2UgbmVlZCB0byBtZXJnZSBhbmQgY2xlYXIgaGVyZSwgc2luY2UKKwkJCSogdGhlIHNlcXVlbmNlIHdpbGwgY29udGFpbmVkIE5VTExlZCBlbnRyaWVzLgorCQkJKi8KKwkJCW91dFNlcSA9IG1lcmdlQW5kQ2xlYXIoTlVMTCwgc2VxLCAxKTsKKwkJICAgIH0gZWxzZSB7CisJCQlvdXRTZXEgPSBzZXE7CisJCQlzZXEgPSBOVUxMOworCQkgICAgfQorCQl9IGVsc2UKKwkJICAgIG91dFNlcSA9IG1lcmdlQW5kQ2xlYXIob3V0U2VxLCBzZXEsCisJCQkoc2l6ZSAhPSBuZXdTaXplKSA/IDE6IDApOworCQkvKgorCQkqIEJyZWFrIGlmIG9ubHkgYSB0cnVlL2ZhbHNlIHJlc3VsdCB3YXMgcmVxdWVzdGVkLgorCQkqLworCQlpZiAodG9Cb29sKQorCQkgICAgYnJlYWs7CisJICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzZXEtPm5vZGVOciA+IDApIHsKKwkgICAgLyoKKwkgICAgKiBBZGQgdG8gcmVzdWx0IHNldC4KKwkgICAgKi8KKwkgICAgaWYgKG91dFNlcSA9PSBOVUxMKSB7CisJCW91dFNlcSA9IHNlcTsKKwkJc2VxID0gTlVMTDsKKwkgICAgfSBlbHNlIHsKKwkJb3V0U2VxID0gbWVyZ2VBbmRDbGVhcihvdXRTZXEsIHNlcSwgMCk7CisJICAgIH0KKwl9CisgICAgfQorCitlcnJvcjoKKyAgICBpZiAoKG9iai0+Ym9vbHZhbCkgJiYgKG9iai0+dXNlciAhPSBOVUxMKSkgeworCS8qCisJKiBRVUVTVElPTiBUT0RPOiBXaGF0IGRvZXMgdGhpcyBkbyBhbmQgd2h5PworCSogVE9ETzogRG8gd2UgaGF2ZSB0byBkbyB0aGlzIGFsc28gZm9yIHRoZSAiZXJyb3IiCisJKiBjbGVhbnVwIGZ1cnRoZXIgZG93bj8KKwkqLworCWN0eHQtPnZhbHVlLT5ib29sdmFsID0gMTsKKwljdHh0LT52YWx1ZS0+dXNlciA9IG9iai0+dXNlcjsKKwlvYmotPnVzZXIgPSBOVUxMOworCW9iai0+Ym9vbHZhbCA9IDA7CisgICAgfQorICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdCh4cGN0eHQsIG9iaik7CisKKyAgICAvKgorICAgICogRW5zdXJlIHdlIHJldHVybiBhdCBsZWFzdCBhbiBlbXRweSBzZXQuCisgICAgKi8KKyAgICBpZiAob3V0U2VxID09IE5VTEwpIHsKKwlpZiAoKHNlcSAhPSBOVUxMKSAmJiAoc2VxLT5ub2RlTnIgPT0gMCkpCisJICAgIG91dFNlcSA9IHNlcTsKKwllbHNlCisJICAgIG91dFNlcSA9IHhtbFhQYXRoTm9kZVNldENyZWF0ZShOVUxMKTsKKyAgICAgICAgLyogWFhYIHdoYXQgaWYgeG1sWFBhdGhOb2RlU2V0Q3JlYXRlIHJldHVybmVkIE5VTEwgaGVyZT8gKi8KKyAgICB9CisgICAgaWYgKChzZXEgIT0gTlVMTCkgJiYgKHNlcSAhPSBvdXRTZXEpKSB7CisJIHhtbFhQYXRoRnJlZU5vZGVTZXQoc2VxKTsKKyAgICB9CisgICAgLyoKKyAgICAqIEhhbmQgb3ZlciB0aGUgcmVzdWx0LiBCZXR0ZXIgdG8gcHVzaCB0aGUgc2V0IGFsc28gaW4KKyAgICAqIGNhc2Ugb2YgZXJyb3JzLgorICAgICovCisgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVXcmFwTm9kZVNldCh4cGN0eHQsIG91dFNlcSkpOworICAgIC8qCisgICAgKiBSZXNldCB0aGUgY29udGV4dCBub2RlLgorICAgICovCisgICAgeHBjdHh0LT5ub2RlID0gb2xkQ29udGV4dE5vZGU7CisKKyNpZmRlZiBERUJVR19TVEVQCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJIlxuRXhhbWluZWQgJWQgbm9kZXMsIGZvdW5kICVkIG5vZGVzIGF0IHRoYXQgc3RlcFxuIiwKKwl0b3RhbCwgbmJNYXRjaGVzKTsKKyNlbmRpZgorCisgICAgcmV0dXJuKHRvdGFsKTsKK30KKworc3RhdGljIGludAoreG1sWFBhdGhDb21wT3BFdmFsRmlsdGVyRmlyc3QoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisJCQkgICAgICB4bWxYUGF0aFN0ZXBPcFB0ciBvcCwgeG1sTm9kZVB0ciAqIGZpcnN0KTsKKworLyoqCisgKiB4bWxYUGF0aENvbXBPcEV2YWxGaXJzdDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIHBhcnNlciBjb250ZXh0IHdpdGggdGhlIGNvbXBpbGVkIGV4cHJlc3Npb24KKyAqIEBvcDogIGFuIFhQYXRoIGNvbXBpbGVkIG9wZXJhdGlvbgorICogQGZpcnN0OiAgdGhlIGZpcnN0IGVsZW0gZm91bmQgc28gZmFyCisgKgorICogRXZhbHVhdGUgdGhlIFByZWNvbXBpbGVkIFhQYXRoIG9wZXJhdGlvbiBzZWFyY2hpbmcgb25seSB0aGUgZmlyc3QKKyAqIGVsZW1lbnQgaW4gZG9jdW1lbnQgb3JkZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZXhhbWluZWQgb2JqZWN0cy4KKyAqLworc3RhdGljIGludAoreG1sWFBhdGhDb21wT3BFdmFsRmlyc3QoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aFN0ZXBPcFB0ciBvcCwgeG1sTm9kZVB0ciAqIGZpcnN0KQoreworICAgIGludCB0b3RhbCA9IDAsIGN1cjsKKyAgICB4bWxYUGF0aENvbXBFeHByUHRyIGNvbXA7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgYXJnMSwgYXJnMjsKKworICAgIENIRUNLX0VSUk9SMDsKKyAgICBjb21wID0gY3R4dC0+Y29tcDsKKyAgICBzd2l0Y2ggKG9wLT5vcCkgeworICAgICAgICBjYXNlIFhQQVRIX09QX0VORDoKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfVU5JT046CisgICAgICAgICAgICB0b3RhbCA9CisgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsRmlyc3QoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KTsKKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgaWYgKChjdHh0LT52YWx1ZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgICYmIChjdHh0LT52YWx1ZS0+dHlwZSA9PSBYUEFUSF9OT0RFU0VUKQorICAgICAgICAgICAgICAgICYmIChjdHh0LT52YWx1ZS0+bm9kZXNldHZhbCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICYmIChjdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZU5yID49IDEpKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBsaW1pdCB0cmVlIHRyYXZlcnNpbmcgdG8gZmlyc3Qgbm9kZSBpbiB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICovCisJCS8qCisJCSogT1BUSU1JWkUgVE9ETzogVGhpcyBpbXBsaWNpdGVseSBzb3J0cworCQkqICB0aGUgcmVzdWx0LCBldmVuIGlmIG5vdCBuZWVkZWQuIEUuZy4gaWYgdGhlIGFyZ3VtZW50CisJCSogIG9mIHRoZSBjb3VudCgpIGZ1bmN0aW9uLCBubyBzb3J0aW5nIGlzIG5lZWRlZC4KKwkJKiBPUFRJTUlaRSBUT0RPOiBIb3cgZG8gd2Uga25vdyBpZiB0aGUgbm9kZS1saXN0IHdhc24ndAorCQkqICBhcmVhZHkgc29ydGVkPworCQkqLworCQlpZiAoY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwtPm5vZGVOciA+IDEpCisJCSAgICB4bWxYUGF0aE5vZGVTZXRTb3J0KGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsKTsKKyAgICAgICAgICAgICAgICAqZmlyc3QgPSBjdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZVRhYlswXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1ciA9CisgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsRmlyc3QoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KTsKKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgQ0hFQ0tfVFlQRTAoWFBBVEhfTk9ERVNFVCk7CisgICAgICAgICAgICBhcmcyID0gdmFsdWVQb3AoY3R4dCk7CisKKyAgICAgICAgICAgIENIRUNLX1RZUEUwKFhQQVRIX05PREVTRVQpOworICAgICAgICAgICAgYXJnMSA9IHZhbHVlUG9wKGN0eHQpOworCisgICAgICAgICAgICBhcmcxLT5ub2Rlc2V0dmFsID0geG1sWFBhdGhOb2RlU2V0TWVyZ2UoYXJnMS0+bm9kZXNldHZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcyLT5ub2Rlc2V0dmFsKTsKKyAgICAgICAgICAgIHZhbHVlUHVzaChjdHh0LCBhcmcxKTsKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZzIpOworICAgICAgICAgICAgLyogb3B0aW1pemVyICovCisJICAgIGlmICh0b3RhbCA+IGN1cikKKwkJeG1sWFBhdGhDb21wU3dhcChvcCk7CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsICsgY3VyKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9ST09UOgorICAgICAgICAgICAgeG1sWFBhdGhSb290KGN0eHQpOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9OT0RFOgorICAgICAgICAgICAgaWYgKG9wLT5jaDEgIT0gLTEpCisgICAgICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIGlmIChvcC0+Y2gyICE9IC0xKQorICAgICAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworCSAgICBDSEVDS19FUlJPUjA7CisJICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlTmV3Tm9kZVNldChjdHh0LT5jb250ZXh0LAorCQljdHh0LT5jb250ZXh0LT5ub2RlKSk7CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9SRVNFVDoKKyAgICAgICAgICAgIGlmIChvcC0+Y2gxICE9IC0xKQorICAgICAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICBpZiAob3AtPmNoMiAhPSAtMSkKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9DT0xMRUNUOnsKKyAgICAgICAgICAgICAgICBpZiAob3AtPmNoMSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisKKyAgICAgICAgICAgICAgICB0b3RhbCA9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworCQlDSEVDS19FUlJPUjA7CisKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aE5vZGVDb2xsZWN0QW5kVGVzdChjdHh0LCBvcCwgZmlyc3QsIE5VTEwsIDApOworICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhQQVRIX09QX1ZBTFVFOgorICAgICAgICAgICAgdmFsdWVQdXNoKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDYWNoZU9iamVjdENvcHkoY3R4dC0+Y29udGV4dCwKKwkJCSh4bWxYUGF0aE9iamVjdFB0cikgb3AtPnZhbHVlNCkpOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9TT1JUOgorICAgICAgICAgICAgaWYgKG9wLT5jaDEgIT0gLTEpCisgICAgICAgICAgICAgICAgdG90YWwgKz0KKyAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsRmlyc3QoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIGlmICgoY3R4dC0+dmFsdWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAmJiAoY3R4dC0+dmFsdWUtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkKKyAgICAgICAgICAgICAgICAmJiAoY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwgIT0gTlVMTCkKKwkJJiYgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPiAxKSkKKyAgICAgICAgICAgICAgICB4bWxYUGF0aE5vZGVTZXRTb3J0KGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsKTsKKyAgICAgICAgICAgIHJldHVybiAodG90YWwpOworI2lmZGVmIFhQX09QVElNSVpFRF9GSUxURVJfRklSU1QKKwljYXNlIFhQQVRIX09QX0ZJTFRFUjoKKyAgICAgICAgICAgICAgICB0b3RhbCA9KyB4bWxYUGF0aENvbXBPcEV2YWxGaWx0ZXJGaXJzdChjdHh0LCBvcCwgZmlyc3QpOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAoeG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsIG9wKSk7CisgICAgfQorfQorCisvKioKKyAqIHhtbFhQYXRoQ29tcE9wRXZhbExhc3Q6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBwYXJzZXIgY29udGV4dCB3aXRoIHRoZSBjb21waWxlZCBleHByZXNzaW9uCisgKiBAb3A6ICBhbiBYUGF0aCBjb21waWxlZCBvcGVyYXRpb24KKyAqIEBsYXN0OiAgdGhlIGxhc3QgZWxlbSBmb3VuZCBzbyBmYXIKKyAqCisgKiBFdmFsdWF0ZSB0aGUgUHJlY29tcGlsZWQgWFBhdGggb3BlcmF0aW9uIHNlYXJjaGluZyBvbmx5IHRoZSBsYXN0CisgKiBlbGVtZW50IGluIGRvY3VtZW50IG9yZGVyCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIHRyYXZlcnNlZAorICovCitzdGF0aWMgaW50Cit4bWxYUGF0aENvbXBPcEV2YWxMYXN0KHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxYUGF0aFN0ZXBPcFB0ciBvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgeG1sTm9kZVB0ciAqIGxhc3QpCit7CisgICAgaW50IHRvdGFsID0gMCwgY3VyOworICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBhcmcxLCBhcmcyOworICAgIHhtbE5vZGVQdHIgYmFrOworICAgIHhtbERvY1B0ciBiYWtkOworICAgIGludCBwcDsKKyAgICBpbnQgY3M7CisKKyAgICBDSEVDS19FUlJPUjA7CisgICAgY29tcCA9IGN0eHQtPmNvbXA7CisgICAgc3dpdGNoIChvcC0+b3ApIHsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9FTkQ6CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICBjYXNlIFhQQVRIX09QX1VOSU9OOgorCSAgICBiYWtkID0gY3R4dC0+Y29udGV4dC0+ZG9jOworCSAgICBiYWsgPSBjdHh0LT5jb250ZXh0LT5ub2RlOworCSAgICBwcCA9IGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uOworCSAgICBjcyA9IGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplOworICAgICAgICAgICAgdG90YWwgPQorICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbExhc3QoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdLCBsYXN0KTsKKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgaWYgKChjdHh0LT52YWx1ZSAhPSBOVUxMKQorICAgICAgICAgICAgICAgICYmIChjdHh0LT52YWx1ZS0+dHlwZSA9PSBYUEFUSF9OT0RFU0VUKQorICAgICAgICAgICAgICAgICYmIChjdHh0LT52YWx1ZS0+bm9kZXNldHZhbCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICYmIChjdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZU5yID49IDEpKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBsaW1pdCB0cmVlIHRyYXZlcnNpbmcgdG8gZmlyc3Qgbm9kZSBpbiB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICovCisJCWlmIChjdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZU5yID4gMSkKKwkJICAgIHhtbFhQYXRoTm9kZVNldFNvcnQoY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwpOworICAgICAgICAgICAgICAgICpsYXN0ID0KKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwtPm5vZGVUYWJbY3R4dC0+dmFsdWUtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rlc2V0dmFsLT5ub2RlTnIgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxXTsKKyAgICAgICAgICAgIH0KKwkgICAgY3R4dC0+Y29udGV4dC0+ZG9jID0gYmFrZDsKKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IGJhazsKKwkgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSBwcDsKKwkgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSBjczsKKyAgICAgICAgICAgIGN1ciA9CisgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsTGFzdChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMl0sIGxhc3QpOworCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICBpZiAoKGN0eHQtPnZhbHVlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgJiYgKGN0eHQtPnZhbHVlLT50eXBlID09IFhQQVRIX05PREVTRVQpCisgICAgICAgICAgICAgICAgJiYgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsICE9IE5VTEwpCisgICAgICAgICAgICAgICAgJiYgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPj0gMSkpIHsgLyogVE9ETzogTk9QID8gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENIRUNLX1RZUEUwKFhQQVRIX05PREVTRVQpOworICAgICAgICAgICAgYXJnMiA9IHZhbHVlUG9wKGN0eHQpOworCisgICAgICAgICAgICBDSEVDS19UWVBFMChYUEFUSF9OT0RFU0VUKTsKKyAgICAgICAgICAgIGFyZzEgPSB2YWx1ZVBvcChjdHh0KTsKKworICAgICAgICAgICAgYXJnMS0+bm9kZXNldHZhbCA9IHhtbFhQYXRoTm9kZVNldE1lcmdlKGFyZzEtPm5vZGVzZXR2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnMi0+bm9kZXNldHZhbCk7CisgICAgICAgICAgICB2YWx1ZVB1c2goY3R4dCwgYXJnMSk7CisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKyAgICAgICAgICAgIC8qIG9wdGltaXplciAqLworCSAgICBpZiAodG90YWwgPiBjdXIpCisJCXhtbFhQYXRoQ29tcFN3YXAob3ApOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCArIGN1cik7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfUk9PVDoKKyAgICAgICAgICAgIHhtbFhQYXRoUm9vdChjdHh0KTsKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfTk9ERToKKyAgICAgICAgICAgIGlmIChvcC0+Y2gxICE9IC0xKQorICAgICAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICBpZiAob3AtPmNoMiAhPSAtMSkKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKwkgICAgQ0hFQ0tfRVJST1IwOworCSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoY3R4dC0+Y29udGV4dCwKKwkJY3R4dC0+Y29udGV4dC0+bm9kZSkpOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfUkVTRVQ6CisgICAgICAgICAgICBpZiAob3AtPmNoMSAhPSAtMSkKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgaWYgKG9wLT5jaDIgIT0gLTEpCisgICAgICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfQ09MTEVDVDp7CisgICAgICAgICAgICAgICAgaWYgKG9wLT5jaDEgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCk7CisKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKwkJQ0hFQ0tfRVJST1IwOworCisgICAgICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3QoY3R4dCwgb3AsIE5VTEwsIGxhc3QsIDApOworICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIFhQQVRIX09QX1ZBTFVFOgorICAgICAgICAgICAgdmFsdWVQdXNoKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDYWNoZU9iamVjdENvcHkoY3R4dC0+Y29udGV4dCwKKwkJCSh4bWxYUGF0aE9iamVjdFB0cikgb3AtPnZhbHVlNCkpOworICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9TT1JUOgorICAgICAgICAgICAgaWYgKG9wLT5jaDEgIT0gLTEpCisgICAgICAgICAgICAgICAgdG90YWwgKz0KKyAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsTGFzdChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIGlmICgoY3R4dC0+dmFsdWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAmJiAoY3R4dC0+dmFsdWUtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkKKyAgICAgICAgICAgICAgICAmJiAoY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwgIT0gTlVMTCkKKwkJJiYgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPiAxKSkKKyAgICAgICAgICAgICAgICB4bWxYUGF0aE5vZGVTZXRTb3J0KGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsKTsKKyAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICh4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgb3ApKTsKKyAgICB9Cit9CisKKyNpZmRlZiBYUF9PUFRJTUlaRURfRklMVEVSX0ZJUlNUCitzdGF0aWMgaW50Cit4bWxYUGF0aENvbXBPcEV2YWxGaWx0ZXJGaXJzdCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwKKwkJCSAgICAgIHhtbFhQYXRoU3RlcE9wUHRyIG9wLCB4bWxOb2RlUHRyICogZmlyc3QpCit7CisgICAgaW50IHRvdGFsID0gMDsKKyAgICB4bWxYUGF0aENvbXBFeHByUHRyIGNvbXA7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iajsKKyAgICB4bWxOb2RlU2V0UHRyIG9sZHNldDsKKyAgICB4bWxOb2RlUHRyIG9sZG5vZGU7CisgICAgeG1sRG9jUHRyIG9sZERvYzsKKyAgICBpbnQgaTsKKworICAgIENIRUNLX0VSUk9SMDsKKyAgICBjb21wID0gY3R4dC0+Y29tcDsKKyAgICAvKgorICAgICogT3B0aW1pemF0aW9uIGZvciAoKVtsYXN0KCldIHNlbGVjdGlvbiBpLmUuIHRoZSBsYXN0IGVsZW0KKyAgICAqLworICAgIGlmICgob3AtPmNoMSAhPSAtMSkgJiYgKG9wLT5jaDIgIT0gLTEpICYmCisJKGNvbXAtPnN0ZXBzW29wLT5jaDFdLm9wID09IFhQQVRIX09QX1NPUlQpICYmCisJKGNvbXAtPnN0ZXBzW29wLT5jaDJdLm9wID09IFhQQVRIX09QX1NPUlQpKSB7CisJaW50IGYgPSBjb21wLT5zdGVwc1tvcC0+Y2gyXS5jaDE7CisKKwlpZiAoKGYgIT0gLTEpICYmCisJICAgIChjb21wLT5zdGVwc1tmXS5vcCA9PSBYUEFUSF9PUF9GVU5DVElPTikgJiYKKwkgICAgKGNvbXAtPnN0ZXBzW2ZdLnZhbHVlNSA9PSBOVUxMKSAmJgorCSAgICAoY29tcC0+c3RlcHNbZl0udmFsdWUgPT0gMCkgJiYKKwkgICAgKGNvbXAtPnN0ZXBzW2ZdLnZhbHVlNCAhPSBOVUxMKSAmJgorCSAgICAoeG1sU3RyRXF1YWwKKwkgICAgKGNvbXAtPnN0ZXBzW2ZdLnZhbHVlNCwgQkFEX0NBU1QgImxhc3QiKSkpIHsKKwkgICAgeG1sTm9kZVB0ciBsYXN0ID0gTlVMTDsKKworCSAgICB0b3RhbCArPQorCQl4bWxYUGF0aENvbXBPcEV2YWxMYXN0KGN0eHQsCisJCSAgICAmY29tcC0+c3RlcHNbb3AtPmNoMV0sCisJCSAgICAmbGFzdCk7CisJICAgIENIRUNLX0VSUk9SMDsKKwkgICAgLyoKKwkgICAgKiBUaGUgbm9kZXNldCBzaG91bGQgYmUgaW4gZG9jdW1lbnQgb3JkZXIsCisJICAgICogS2VlcCBvbmx5IHRoZSBsYXN0IHZhbHVlCisJICAgICovCisJICAgIGlmICgoY3R4dC0+dmFsdWUgIT0gTlVMTCkgJiYKKwkJKGN0eHQtPnZhbHVlLT50eXBlID09IFhQQVRIX05PREVTRVQpICYmCisJCShjdHh0LT52YWx1ZS0+bm9kZXNldHZhbCAhPSBOVUxMKSAmJgorCQkoY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwtPm5vZGVUYWIgIT0gTlVMTCkgJiYKKwkJKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPiAxKSkgeworCQljdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZVRhYlswXSA9CisJCSAgICBjdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZVRhYltjdHh0LT4KKwkJICAgIHZhbHVlLT4KKwkJICAgIG5vZGVzZXR2YWwtPgorCQkgICAgbm9kZU5yIC0KKwkJICAgIDFdOworCQljdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZU5yID0gMTsKKwkJKmZpcnN0ID0gKihjdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZVRhYik7CisJICAgIH0KKwkgICAgcmV0dXJuICh0b3RhbCk7CisJfQorICAgIH0KKworICAgIGlmIChvcC0+Y2gxICE9IC0xKQorCXRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworICAgIENIRUNLX0VSUk9SMDsKKyAgICBpZiAob3AtPmNoMiA9PSAtMSkKKwlyZXR1cm4gKHRvdGFsKTsKKyAgICBpZiAoY3R4dC0+dmFsdWUgPT0gTlVMTCkKKwlyZXR1cm4gKHRvdGFsKTsKKworI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKKyAgICBvbGRub2RlID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKyAgICAvKgorICAgICogSHVtIGFyZSB3ZSBmaWx0ZXJpbmcgdGhlIHJlc3VsdCBvZiBhbiBYUG9pbnRlciBleHByZXNzaW9uCisgICAgKi8KKyAgICBpZiAoY3R4dC0+dmFsdWUtPnR5cGUgPT0gWFBBVEhfTE9DQVRJT05TRVQpIHsKKwl4bWxYUGF0aE9iamVjdFB0ciB0bXAgPSBOVUxMOworCXhtbExvY2F0aW9uU2V0UHRyIG5ld2xvY3NldCA9IE5VTEw7CisJeG1sTG9jYXRpb25TZXRQdHIgb2xkbG9jc2V0OworCisJLyoKKwkqIEV4dHJhY3QgdGhlIG9sZCBsb2NzZXQsIGFuZCB0aGVuIGV2YWx1YXRlIHRoZSByZXN1bHQgb2YgdGhlCisJKiBleHByZXNzaW9uIGZvciBhbGwgdGhlIGVsZW1lbnQgaW4gdGhlIGxvY3NldC4gdXNlIGl0IHRvIGdyb3cKKwkqIHVwIGEgbmV3IGxvY3NldC4KKwkqLworCUNIRUNLX1RZUEUwKFhQQVRIX0xPQ0FUSU9OU0VUKTsKKwlvYmogPSB2YWx1ZVBvcChjdHh0KTsKKwlvbGRsb2NzZXQgPSBvYmotPnVzZXI7CisJY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisKKwlpZiAoKG9sZGxvY3NldCA9PSBOVUxMKSB8fCAob2xkbG9jc2V0LT5sb2NOciA9PSAwKSkgeworCSAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IDA7CisJICAgIGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gMDsKKwkgICAgaWYgKG9wLT5jaDIgIT0gLTEpCisJCXRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworCSAgICByZXMgPSB2YWx1ZVBvcChjdHh0KTsKKwkgICAgaWYgKHJlcyAhPSBOVUxMKSB7CisJCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCByZXMpOworCSAgICB9CisJICAgIHZhbHVlUHVzaChjdHh0LCBvYmopOworCSAgICBDSEVDS19FUlJPUjA7CisJICAgIHJldHVybiAodG90YWwpOworCX0KKwluZXdsb2NzZXQgPSB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUoTlVMTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgb2xkbG9jc2V0LT5sb2NOcjsgaSsrKSB7CisJICAgIC8qCisJICAgICogUnVuIHRoZSBldmFsdWF0aW9uIHdpdGggYSBub2RlIGxpc3QgbWFkZSBvZiBhCisJICAgICogc2luZ2xlIGl0ZW0gaW4gdGhlIG5vZGVsb2NzZXQuCisJICAgICovCisJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBvbGRsb2NzZXQtPmxvY1RhYltpXS0+dXNlcjsKKwkgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSBvbGRsb2NzZXQtPmxvY05yOworCSAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IGkgKyAxOworCSAgICBpZiAodG1wID09IE5VTEwpIHsKKwkJdG1wID0geG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoY3R4dC0+Y29udGV4dCwKKwkJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUpOworCSAgICB9IGVsc2UgeworCQl4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUodG1wLT5ub2Rlc2V0dmFsLAorCQkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSk7CisJICAgIH0KKwkgICAgdmFsdWVQdXNoKGN0eHQsIHRtcCk7CisJICAgIGlmIChvcC0+Y2gyICE9IC0xKQorCQl0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKwkgICAgaWYgKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spIHsKKwkJeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisJCXJldHVybigwKTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIFRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRpb24gbmVlZCB0byBiZSB0ZXN0ZWQgdG8KKwkgICAgKiBkZWNpZGVkIHdoZXRoZXIgdGhlIGZpbHRlciBzdWNjZWVkZWQgb3Igbm90CisJICAgICovCisJICAgIHJlcyA9IHZhbHVlUG9wKGN0eHQpOworCSAgICBpZiAoeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdChjdHh0LCByZXMpKSB7CisJCXhtbFhQdHJMb2NhdGlvblNldEFkZChuZXdsb2NzZXQsCisJCSAgICB4bWxYUGF0aENhY2hlT2JqZWN0Q29weShjdHh0LT5jb250ZXh0LAorCQkJb2xkbG9jc2V0LT5sb2NUYWJbaV0pKTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIENsZWFudXAKKwkgICAgKi8KKwkgICAgaWYgKHJlcyAhPSBOVUxMKSB7CisJCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCByZXMpOworCSAgICB9CisJICAgIGlmIChjdHh0LT52YWx1ZSA9PSB0bXApIHsKKwkJdmFsdWVQb3AoY3R4dCk7CisJCXhtbFhQYXRoTm9kZVNldENsZWFyKHRtcC0+bm9kZXNldHZhbCwgMSk7CisJCS8qCisJCSogUkVWSVNJVCBUT0RPOiBEb24ndCBjcmVhdGUgYSB0ZW1wb3Jhcnkgbm9kZXNldAorCQkqIGZvciBldmVybHkgaXRlcmF0aW9uLgorCQkqLworCQkvKiBPTEQ6IHhtbFhQYXRoRnJlZU9iamVjdChyZXMpOyAqLworCSAgICB9IGVsc2UKKwkJdG1wID0gTlVMTDsKKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisJICAgIC8qCisJICAgICogT25seSBwdXQgdGhlIGZpcnN0IG5vZGUgaW4gdGhlIHJlc3VsdCwgdGhlbiBsZWF2ZS4KKwkgICAgKi8KKwkgICAgaWYgKG5ld2xvY3NldC0+bG9jTnIgPiAwKSB7CisJCSpmaXJzdCA9ICh4bWxOb2RlUHRyKSBvbGRsb2NzZXQtPmxvY1RhYltpXS0+dXNlcjsKKwkJYnJlYWs7CisJICAgIH0KKwl9CisJaWYgKHRtcCAhPSBOVUxMKSB7CisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCB0bXApOworCX0KKwkvKgorCSogVGhlIHJlc3VsdCBpcyB1c2VkIGFzIHRoZSBuZXcgZXZhbHVhdGlvbiBsb2NzZXQuCisJKi8KKwl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgb2JqKTsKKwljdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKKwljdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IC0xOworCWN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gLTE7CisJdmFsdWVQdXNoKGN0eHQsIHhtbFhQdHJXcmFwTG9jYXRpb25TZXQobmV3bG9jc2V0KSk7CisJY3R4dC0+Y29udGV4dC0+bm9kZSA9IG9sZG5vZGU7CisJcmV0dXJuICh0b3RhbCk7CisgICAgfQorI2VuZGlmIC8qIExJQlhNTF9YUFRSX0VOQUJMRUQgKi8KKworICAgIC8qCisgICAgKiBFeHRyYWN0IHRoZSBvbGQgc2V0LCBhbmQgdGhlbiBldmFsdWF0ZSB0aGUgcmVzdWx0IG9mIHRoZQorICAgICogZXhwcmVzc2lvbiBmb3IgYWxsIHRoZSBlbGVtZW50IGluIHRoZSBzZXQuIHVzZSBpdCB0byBncm93CisgICAgKiB1cCBhIG5ldyBzZXQuCisgICAgKi8KKyAgICBDSEVDS19UWVBFMChYUEFUSF9OT0RFU0VUKTsKKyAgICBvYmogPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBvbGRzZXQgPSBvYmotPm5vZGVzZXR2YWw7CisKKyAgICBvbGRub2RlID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKyAgICBvbGREb2MgPSBjdHh0LT5jb250ZXh0LT5kb2M7CisgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisKKyAgICBpZiAoKG9sZHNldCA9PSBOVUxMKSB8fCAob2xkc2V0LT5ub2RlTnIgPT0gMCkpIHsKKwljdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IDA7CisJY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSAwOworCS8qIFFVRVNUSU9OIFRPRE86IFdoeSB3YXMgdGhpcyBjb2RlIGNvbW1lbnRlZCBvdXQ/CisJICAgIGlmIChvcC0+Y2gyICE9IC0xKQorCQl0b3RhbCArPQorCQkgICAgeG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsCisJCQkmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworCSAgICBDSEVDS19FUlJPUjA7CisJICAgIHJlcyA9IHZhbHVlUG9wKGN0eHQpOworCSAgICBpZiAocmVzICE9IE5VTEwpCisJCXhtbFhQYXRoRnJlZU9iamVjdChyZXMpOworCSovCisJdmFsdWVQdXNoKGN0eHQsIG9iaik7CisJY3R4dC0+Y29udGV4dC0+bm9kZSA9IG9sZG5vZGU7CisJQ0hFQ0tfRVJST1IwOworICAgIH0gZWxzZSB7CisJeG1sTm9kZVNldFB0ciBuZXdzZXQ7CisJeG1sWFBhdGhPYmplY3RQdHIgdG1wID0gTlVMTDsKKwkvKgorCSogSW5pdGlhbGl6ZSB0aGUgbmV3IHNldC4KKwkqIEFsc28gc2V0IHRoZSB4cGF0aCBkb2N1bWVudCBpbiBjYXNlIHRoaW5ncyBsaWtlCisJKiBrZXkoKSBldmFsdWF0aW9uIGFyZSBhdHRlbXB0ZWQgb24gdGhlIHByZWRpY2F0ZQorCSovCisJbmV3c2V0ID0geG1sWFBhdGhOb2RlU2V0Q3JlYXRlKE5VTEwpOworICAgICAgICAvKiBYWFggd2hhdCBpZiB4bWxYUGF0aE5vZGVTZXRDcmVhdGUgcmV0dXJuZWQgTlVMTD8gKi8KKworCWZvciAoaSA9IDA7IGkgPCBvbGRzZXQtPm5vZGVOcjsgaSsrKSB7CisJICAgIC8qCisJICAgICogUnVuIHRoZSBldmFsdWF0aW9uIHdpdGggYSBub2RlIGxpc3QgbWFkZSBvZgorCSAgICAqIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIG5vZGVzZXQuCisJICAgICovCisJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBvbGRzZXQtPm5vZGVUYWJbaV07CisJICAgIGlmICgob2xkc2V0LT5ub2RlVGFiW2ldLT50eXBlICE9IFhNTF9OQU1FU1BBQ0VfREVDTCkgJiYKKwkJKG9sZHNldC0+bm9kZVRhYltpXS0+ZG9jICE9IE5VTEwpKQorCQljdHh0LT5jb250ZXh0LT5kb2MgPSBvbGRzZXQtPm5vZGVUYWJbaV0tPmRvYzsKKwkgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisJCXRtcCA9IHhtbFhQYXRoQ2FjaGVOZXdOb2RlU2V0KGN0eHQtPmNvbnRleHQsCisJCSAgICBjdHh0LT5jb250ZXh0LT5ub2RlKTsKKwkgICAgfSBlbHNlIHsKKwkJeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKHRtcC0+bm9kZXNldHZhbCwKKwkJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUpOworCSAgICB9CisJICAgIHZhbHVlUHVzaChjdHh0LCB0bXApOworCSAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IG9sZHNldC0+bm9kZU5yOworCSAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IGkgKyAxOworCSAgICBpZiAob3AtPmNoMiAhPSAtMSkKKwkJdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJICAgIGlmIChjdHh0LT5lcnJvciAhPSBYUEFUSF9FWFBSRVNTSU9OX09LKSB7CisJCXhtbFhQYXRoRnJlZU5vZGVTZXQobmV3c2V0KTsKKwkJeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisJCXJldHVybigwKTsKKwkgICAgfQorCSAgICAvKgorCSAgICAqIFRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRpb24gbmVlZHMgdG8gYmUgdGVzdGVkIHRvCisJICAgICogZGVjaWRlIHdoZXRoZXIgdGhlIGZpbHRlciBzdWNjZWVkZWQgb3Igbm90CisJICAgICovCisJICAgIHJlcyA9IHZhbHVlUG9wKGN0eHQpOworCSAgICBpZiAoeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdChjdHh0LCByZXMpKSB7CisJCXhtbFhQYXRoTm9kZVNldEFkZChuZXdzZXQsIG9sZHNldC0+bm9kZVRhYltpXSk7CisJICAgIH0KKwkgICAgLyoKKwkgICAgKiBDbGVhbnVwCisJICAgICovCisJICAgIGlmIChyZXMgIT0gTlVMTCkgeworCQl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgcmVzKTsKKwkgICAgfQorCSAgICBpZiAoY3R4dC0+dmFsdWUgPT0gdG1wKSB7CisJCXZhbHVlUG9wKGN0eHQpOworCQkvKgorCQkqIERvbid0IGZyZWUgdGhlIHRlbXBvcmFyeSBub2Rlc2V0CisJCSogaW4gb3JkZXIgdG8gYXZvaWQgbWFzc2l2ZSByZWNyZWF0aW9uIGluc2lkZSB0aGlzCisJCSogbG9vcC4KKwkJKi8KKwkJeG1sWFBhdGhOb2RlU2V0Q2xlYXIodG1wLT5ub2Rlc2V0dmFsLCAxKTsKKwkgICAgfSBlbHNlCisJCXRtcCA9IE5VTEw7CisJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworCSAgICAvKgorCSAgICAqIE9ubHkgcHV0IHRoZSBmaXJzdCBub2RlIGluIHRoZSByZXN1bHQsIHRoZW4gbGVhdmUuCisJICAgICovCisJICAgIGlmIChuZXdzZXQtPm5vZGVOciA+IDApIHsKKwkJKmZpcnN0ID0gKihuZXdzZXQtPm5vZGVUYWIpOworCQlicmVhazsKKwkgICAgfQorCX0KKwlpZiAodG1wICE9IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHRtcCk7CisJfQorCS8qCisJKiBUaGUgcmVzdWx0IGlzIHVzZWQgYXMgdGhlIG5ldyBldmFsdWF0aW9uIHNldC4KKwkqLworCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBvYmopOworCWN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworCWN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplID0gLTE7CisJY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSAtMTsKKwkvKiBtYXkgd2FudCB0byBtb3ZlIHRoaXMgcGFzdCB0aGUgJ30nIGxhdGVyICovCisJY3R4dC0+Y29udGV4dC0+ZG9jID0gb2xkRG9jOworCXZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aENhY2hlV3JhcE5vZGVTZXQoY3R4dC0+Y29udGV4dCwgbmV3c2V0KSk7CisgICAgfQorICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBvbGRub2RlOworICAgIHJldHVybih0b3RhbCk7Cit9CisjZW5kaWYgLyogWFBfT1BUSU1JWkVEX0ZJTFRFUl9GSVJTVCAqLworCisvKioKKyAqIHhtbFhQYXRoQ29tcE9wRXZhbDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIHBhcnNlciBjb250ZXh0IHdpdGggdGhlIGNvbXBpbGVkIGV4cHJlc3Npb24KKyAqIEBvcDogIGFuIFhQYXRoIGNvbXBpbGVkIG9wZXJhdGlvbgorICoKKyAqIEV2YWx1YXRlIHRoZSBQcmVjb21waWxlZCBYUGF0aCBvcGVyYXRpb24KKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBub2RlcyB0cmF2ZXJzZWQKKyAqLworc3RhdGljIGludAoreG1sWFBhdGhDb21wT3BFdmFsKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxYUGF0aFN0ZXBPcFB0ciBvcCkKK3sKKyAgICBpbnQgdG90YWwgPSAwOworICAgIGludCBlcXVhbCwgcmV0OworICAgIHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBhcmcxLCBhcmcyOworICAgIHhtbE5vZGVQdHIgYmFrOworICAgIHhtbERvY1B0ciBiYWtkOworICAgIGludCBwcDsKKyAgICBpbnQgY3M7CisKKyAgICBDSEVDS19FUlJPUjA7CisgICAgY29tcCA9IGN0eHQtPmNvbXA7CisgICAgc3dpdGNoIChvcC0+b3ApIHsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9FTkQ6CisgICAgICAgICAgICByZXR1cm4gKDApOworICAgICAgICBjYXNlIFhQQVRIX09QX0FORDoKKwkgICAgYmFrZCA9IGN0eHQtPmNvbnRleHQtPmRvYzsKKwkgICAgYmFrID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKwkgICAgcHAgPSBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbjsKKwkgICAgY3MgPSBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZTsKKyAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICB4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbihjdHh0LCAxKTsKKyAgICAgICAgICAgIGlmICgoY3R4dC0+dmFsdWUgPT0gTlVMTCkgfHwgKGN0eHQtPnZhbHVlLT5ib29sdmFsID09IDApKQorICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICAgICAgYXJnMiA9IHZhbHVlUG9wKGN0eHQpOworCSAgICBjdHh0LT5jb250ZXh0LT5kb2MgPSBiYWtkOworCSAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gYmFrOworCSAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IHBwOworCSAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IGNzOworICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJICAgIGlmIChjdHh0LT5lcnJvcikgeworCQl4bWxYUGF0aEZyZWVPYmplY3QoYXJnMik7CisJCXJldHVybigwKTsKKwkgICAgfQorICAgICAgICAgICAgeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24oY3R4dCwgMSk7CisgICAgICAgICAgICBhcmcxID0gdmFsdWVQb3AoY3R4dCk7CisgICAgICAgICAgICBhcmcxLT5ib29sdmFsICY9IGFyZzItPmJvb2x2YWw7CisgICAgICAgICAgICB2YWx1ZVB1c2goY3R4dCwgYXJnMSk7CisJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBhcmcyKTsKKyAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICBjYXNlIFhQQVRIX09QX09SOgorCSAgICBiYWtkID0gY3R4dC0+Y29udGV4dC0+ZG9jOworCSAgICBiYWsgPSBjdHh0LT5jb250ZXh0LT5ub2RlOworCSAgICBwcCA9IGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uOworCSAgICBjcyA9IGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplOworICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIHhtbFhQYXRoQm9vbGVhbkZ1bmN0aW9uKGN0eHQsIDEpOworICAgICAgICAgICAgaWYgKChjdHh0LT52YWx1ZSA9PSBOVUxMKSB8fCAoY3R4dC0+dmFsdWUtPmJvb2x2YWwgPT0gMSkpCisgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgICAgICBhcmcyID0gdmFsdWVQb3AoY3R4dCk7CisJICAgIGN0eHQtPmNvbnRleHQtPmRvYyA9IGJha2Q7CisJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBiYWs7CisJICAgIGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gcHA7CisJICAgIGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplID0gY3M7CisgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKwkgICAgaWYgKGN0eHQtPmVycm9yKSB7CisJCXhtbFhQYXRoRnJlZU9iamVjdChhcmcyKTsKKwkJcmV0dXJuKDApOworCSAgICB9CisgICAgICAgICAgICB4bWxYUGF0aEJvb2xlYW5GdW5jdGlvbihjdHh0LCAxKTsKKyAgICAgICAgICAgIGFyZzEgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICAgICAgICAgIGFyZzEtPmJvb2x2YWwgfD0gYXJnMi0+Ym9vbHZhbDsKKyAgICAgICAgICAgIHZhbHVlUHVzaChjdHh0LCBhcmcxKTsKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIGFyZzIpOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfRVFVQUw6CisJICAgIGJha2QgPSBjdHh0LT5jb250ZXh0LT5kb2M7CisJICAgIGJhayA9IGN0eHQtPmNvbnRleHQtPm5vZGU7CisJICAgIHBwID0gY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb247CisJICAgIGNzID0gY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemU7CisgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKwkgICAgQ0hFQ0tfRVJST1IwOworCSAgICBjdHh0LT5jb250ZXh0LT5kb2MgPSBiYWtkOworCSAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gYmFrOworCSAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IHBwOworCSAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IGNzOworICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKwkgICAgaWYgKG9wLT52YWx1ZSkKKwkJZXF1YWwgPSB4bWxYUGF0aEVxdWFsVmFsdWVzKGN0eHQpOworCSAgICBlbHNlCisJCWVxdWFsID0geG1sWFBhdGhOb3RFcXVhbFZhbHVlcyhjdHh0KTsKKwkgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoQ2FjaGVOZXdCb29sZWFuKGN0eHQtPmNvbnRleHQsIGVxdWFsKSk7CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9DTVA6CisJICAgIGJha2QgPSBjdHh0LT5jb250ZXh0LT5kb2M7CisJICAgIGJhayA9IGN0eHQtPmNvbnRleHQtPm5vZGU7CisJICAgIHBwID0gY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb247CisJICAgIGNzID0gY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemU7CisgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKwkgICAgQ0hFQ0tfRVJST1IwOworCSAgICBjdHh0LT5jb250ZXh0LT5kb2MgPSBiYWtkOworCSAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gYmFrOworCSAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IHBwOworCSAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IGNzOworICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIHJldCA9IHhtbFhQYXRoQ29tcGFyZVZhbHVlcyhjdHh0LCBvcC0+dmFsdWUsIG9wLT52YWx1ZTIpOworCSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld0Jvb2xlYW4oY3R4dC0+Y29udGV4dCwgcmV0KSk7CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9QTFVTOgorCSAgICBiYWtkID0gY3R4dC0+Y29udGV4dC0+ZG9jOworCSAgICBiYWsgPSBjdHh0LT5jb250ZXh0LT5ub2RlOworCSAgICBwcCA9IGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uOworCSAgICBjcyA9IGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplOworICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIGlmIChvcC0+Y2gyICE9IC0xKSB7CisJCWN0eHQtPmNvbnRleHQtPmRvYyA9IGJha2Q7CisJCWN0eHQtPmNvbnRleHQtPm5vZGUgPSBiYWs7CisJCWN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gcHA7CisJCWN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplID0gY3M7CisgICAgICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJICAgIH0KKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgaWYgKG9wLT52YWx1ZSA9PSAwKQorICAgICAgICAgICAgICAgIHhtbFhQYXRoU3ViVmFsdWVzKGN0eHQpOworICAgICAgICAgICAgZWxzZSBpZiAob3AtPnZhbHVlID09IDEpCisgICAgICAgICAgICAgICAgeG1sWFBhdGhBZGRWYWx1ZXMoY3R4dCk7CisgICAgICAgICAgICBlbHNlIGlmIChvcC0+dmFsdWUgPT0gMikKKyAgICAgICAgICAgICAgICB4bWxYUGF0aFZhbHVlRmxpcFNpZ24oY3R4dCk7CisgICAgICAgICAgICBlbHNlIGlmIChvcC0+dmFsdWUgPT0gMykgeworICAgICAgICAgICAgICAgIENBU1RfVE9fTlVNQkVSOworICAgICAgICAgICAgICAgIENIRUNLX1RZUEUwKFhQQVRIX05VTUJFUik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9NVUxUOgorCSAgICBiYWtkID0gY3R4dC0+Y29udGV4dC0+ZG9jOworCSAgICBiYWsgPSBjdHh0LT5jb250ZXh0LT5ub2RlOworCSAgICBwcCA9IGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uOworCSAgICBjcyA9IGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplOworICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKwkgICAgY3R4dC0+Y29udGV4dC0+ZG9jID0gYmFrZDsKKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IGJhazsKKwkgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSBwcDsKKwkgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSBjczsKKyAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICBpZiAob3AtPnZhbHVlID09IDApCisgICAgICAgICAgICAgICAgeG1sWFBhdGhNdWx0VmFsdWVzKGN0eHQpOworICAgICAgICAgICAgZWxzZSBpZiAob3AtPnZhbHVlID09IDEpCisgICAgICAgICAgICAgICAgeG1sWFBhdGhEaXZWYWx1ZXMoY3R4dCk7CisgICAgICAgICAgICBlbHNlIGlmIChvcC0+dmFsdWUgPT0gMikKKyAgICAgICAgICAgICAgICB4bWxYUGF0aE1vZFZhbHVlcyhjdHh0KTsKKyAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICBjYXNlIFhQQVRIX09QX1VOSU9OOgorCSAgICBiYWtkID0gY3R4dC0+Y29udGV4dC0+ZG9jOworCSAgICBiYWsgPSBjdHh0LT5jb250ZXh0LT5ub2RlOworCSAgICBwcCA9IGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uOworCSAgICBjcyA9IGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplOworICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKwkgICAgY3R4dC0+Y29udGV4dC0+ZG9jID0gYmFrZDsKKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IGJhazsKKwkgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSBwcDsKKwkgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSBjczsKKyAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICBDSEVDS19UWVBFMChYUEFUSF9OT0RFU0VUKTsKKyAgICAgICAgICAgIGFyZzIgPSB2YWx1ZVBvcChjdHh0KTsKKworICAgICAgICAgICAgQ0hFQ0tfVFlQRTAoWFBBVEhfTk9ERVNFVCk7CisgICAgICAgICAgICBhcmcxID0gdmFsdWVQb3AoY3R4dCk7CisKKwkgICAgaWYgKChhcmcxLT5ub2Rlc2V0dmFsID09IE5VTEwpIHx8CisJCSgoYXJnMi0+bm9kZXNldHZhbCAhPSBOVUxMKSAmJgorCQkgKGFyZzItPm5vZGVzZXR2YWwtPm5vZGVOciAhPSAwKSkpCisJICAgIHsKKwkJYXJnMS0+bm9kZXNldHZhbCA9IHhtbFhQYXRoTm9kZVNldE1lcmdlKGFyZzEtPm5vZGVzZXR2YWwsCisJCQkJCQkJYXJnMi0+bm9kZXNldHZhbCk7CisJICAgIH0KKworICAgICAgICAgICAgdmFsdWVQdXNoKGN0eHQsIGFyZzEpOworCSAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgYXJnMik7CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9ST09UOgorICAgICAgICAgICAgeG1sWFBhdGhSb290KGN0eHQpOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfTk9ERToKKyAgICAgICAgICAgIGlmIChvcC0+Y2gxICE9IC0xKQorICAgICAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICBpZiAob3AtPmNoMiAhPSAtMSkKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKwkgICAgQ0hFQ0tfRVJST1IwOworCSAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoY3R4dC0+Y29udGV4dCwKKwkJY3R4dC0+Y29udGV4dC0+bm9kZSkpOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfUkVTRVQ6CisgICAgICAgICAgICBpZiAob3AtPmNoMSAhPSAtMSkKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgaWYgKG9wLT5jaDIgIT0gLTEpCisgICAgICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgIGNhc2UgWFBBVEhfT1BfQ09MTEVDVDp7CisgICAgICAgICAgICAgICAgaWYgKG9wLT5jaDEgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworCisgICAgICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7CisJCUNIRUNLX0VSUk9SMDsKKworICAgICAgICAgICAgICAgIHRvdGFsICs9IHhtbFhQYXRoTm9kZUNvbGxlY3RBbmRUZXN0KGN0eHQsIG9wLCBOVUxMLCBOVUxMLCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYUEFUSF9PUF9WQUxVRToKKyAgICAgICAgICAgIHZhbHVlUHVzaChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ2FjaGVPYmplY3RDb3B5KGN0eHQtPmNvbnRleHQsCisJCQkoeG1sWFBhdGhPYmplY3RQdHIpIG9wLT52YWx1ZTQpKTsKKyAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICBjYXNlIFhQQVRIX09QX1ZBUklBQkxFOnsKKwkJeG1sWFBhdGhPYmplY3RQdHIgdmFsOworCisgICAgICAgICAgICAgICAgaWYgKG9wLT5jaDEgIT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKyAgICAgICAgICAgICAgICBpZiAob3AtPnZhbHVlNSA9PSBOVUxMKSB7CisJCSAgICB2YWwgPSB4bWxYUGF0aFZhcmlhYmxlTG9va3VwKGN0eHQtPmNvbnRleHQsIG9wLT52YWx1ZTQpOworCQkgICAgaWYgKHZhbCA9PSBOVUxMKSB7CisJCQljdHh0LT5lcnJvciA9IFhQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SOworCQkJcmV0dXJuKDApOworCQkgICAgfQorICAgICAgICAgICAgICAgICAgICB2YWx1ZVB1c2goY3R4dCwgdmFsKTsKKwkJfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgeG1sQ2hhciAqVVJJOworCisgICAgICAgICAgICAgICAgICAgIFVSSSA9IHhtbFhQYXRoTnNMb29rdXAoY3R4dC0+Y29udGV4dCwgb3AtPnZhbHVlNSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVUkkgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAieG1sWFBhdGhDb21wT3BFdmFsOiB2YXJpYWJsZSAlcyBib3VuZCB0byB1bmRlZmluZWQgcHJlZml4ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgb3AtPnZhbHVlNCwgKGNoYXIgKilvcC0+dmFsdWU1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICAgICAgICAgICAgICB9CisJCSAgICB2YWwgPSB4bWxYUGF0aFZhcmlhYmxlTG9va3VwTlMoY3R4dC0+Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+dmFsdWU0LCBVUkkpOworCQkgICAgaWYgKHZhbCA9PSBOVUxMKSB7CisJCQljdHh0LT5lcnJvciA9IFhQQVRIX1VOREVGX1ZBUklBQkxFX0VSUk9SOworCQkJcmV0dXJuKDApOworCQkgICAgfQorICAgICAgICAgICAgICAgICAgICB2YWx1ZVB1c2goY3R4dCwgdmFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgWFBBVEhfT1BfRlVOQ1RJT046eworICAgICAgICAgICAgICAgIHhtbFhQYXRoRnVuY3Rpb24gZnVuYzsKKyAgICAgICAgICAgICAgICBjb25zdCB4bWxDaGFyICpvbGRGdW5jLCAqb2xkRnVuY1VSSTsKKwkJaW50IGk7CisKKyAgICAgICAgICAgICAgICBpZiAob3AtPmNoMSAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworCQlpZiAoY3R4dC0+dmFsdWVOciA8IG9wLT52YWx1ZSkgeworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJCQkgICAgInhtbFhQYXRoQ29tcE9wRXZhbDogcGFyYW1ldGVyIGVycm9yXG4iKTsKKwkJICAgIGN0eHQtPmVycm9yID0gWFBBVEhfSU5WQUxJRF9PUEVSQU5EOworCQkgICAgcmV0dXJuICh0b3RhbCk7CisJCX0KKwkJZm9yIChpID0gMDsgaSA8IG9wLT52YWx1ZTsgaSsrKQorCQkgICAgaWYgKGN0eHQtPnZhbHVlVGFiWyhjdHh0LT52YWx1ZU5yIC0gMSkgLSBpXSA9PSBOVUxMKSB7CisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkieG1sWFBhdGhDb21wT3BFdmFsOiBwYXJhbWV0ZXIgZXJyb3JcbiIpOworCQkJY3R4dC0+ZXJyb3IgPSBYUEFUSF9JTlZBTElEX09QRVJBTkQ7CisJCQlyZXR1cm4gKHRvdGFsKTsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob3AtPmNhY2hlICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIFhNTF9DQVNUX0ZQVFIoZnVuYykgPSBvcC0+Y2FjaGU7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHhtbENoYXIgKlVSSSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wLT52YWx1ZTUgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoRnVuY3Rpb25Mb29rdXAoY3R4dC0+Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLT52YWx1ZTQpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFVSSSA9IHhtbFhQYXRoTnNMb29rdXAoY3R4dC0+Y29udGV4dCwgb3AtPnZhbHVlNSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVJJID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICJ4bWxYUGF0aENvbXBPcEV2YWw6IGZ1bmN0aW9uICVzIGJvdW5kIHRvIHVuZGVmaW5lZCBwcmVmaXggJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKW9wLT52YWx1ZTQsIChjaGFyICopb3AtPnZhbHVlNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0geG1sWFBhdGhGdW5jdGlvbkxvb2t1cE5TKGN0eHQtPmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLT52YWx1ZTQsIFVSSSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4bWxYUGF0aENvbXBPcEV2YWw6IGZ1bmN0aW9uICVzIG5vdCBmb3VuZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKW9wLT52YWx1ZTQpOworICAgICAgICAgICAgICAgICAgICAgICAgWFBfRVJST1IwKFhQQVRIX1VOS05PV05fRlVOQ19FUlJPUik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3AtPmNhY2hlID0gWE1MX0NBU1RfRlBUUihmdW5jKTsKKyAgICAgICAgICAgICAgICAgICAgb3AtPmNhY2hlVVJJID0gKHZvaWQgKikgVVJJOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGRGdW5jID0gY3R4dC0+Y29udGV4dC0+ZnVuY3Rpb247CisgICAgICAgICAgICAgICAgb2xkRnVuY1VSSSA9IGN0eHQtPmNvbnRleHQtPmZ1bmN0aW9uVVJJOworICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPmZ1bmN0aW9uID0gb3AtPnZhbHVlNDsKKyAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5mdW5jdGlvblVSSSA9IG9wLT5jYWNoZVVSSTsKKyAgICAgICAgICAgICAgICBmdW5jKGN0eHQsIG9wLT52YWx1ZSk7CisgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+ZnVuY3Rpb24gPSBvbGRGdW5jOworICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPmZ1bmN0aW9uVVJJID0gb2xkRnVuY1VSSTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYUEFUSF9PUF9BUkc6CisJICAgIGJha2QgPSBjdHh0LT5jb250ZXh0LT5kb2M7CisJICAgIGJhayA9IGN0eHQtPmNvbnRleHQtPm5vZGU7CisJICAgIHBwID0gY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb247CisJICAgIGNzID0gY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemU7CisgICAgICAgICAgICBpZiAob3AtPmNoMSAhPSAtMSkKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKwkgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSBjczsKKwkgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSBwcDsKKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IGJhazsKKwkgICAgY3R4dC0+Y29udGV4dC0+ZG9jID0gYmFrZDsKKwkgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgaWYgKG9wLT5jaDIgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKwkgICAgICAgIGN0eHQtPmNvbnRleHQtPmRvYyA9IGJha2Q7CisJICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gYmFrOworCSAgICAgICAgQ0hFQ0tfRVJST1IwOworCSAgICB9CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9PUF9QUkVESUNBVEU6CisgICAgICAgIGNhc2UgWFBBVEhfT1BfRklMVEVSOnsKKyAgICAgICAgICAgICAgICB4bWxYUGF0aE9iamVjdFB0ciByZXM7CisgICAgICAgICAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgb2JqLCB0bXA7CisgICAgICAgICAgICAgICAgeG1sTm9kZVNldFB0ciBuZXdzZXQgPSBOVUxMOworICAgICAgICAgICAgICAgIHhtbE5vZGVTZXRQdHIgb2xkc2V0OworICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgb2xkbm9kZTsKKwkJeG1sRG9jUHRyIG9sZERvYzsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogT3B0aW1pemF0aW9uIGZvciAoKVsxXSBzZWxlY3Rpb24gaS5lLiB0aGUgZmlyc3QgZWxlbQorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmICgob3AtPmNoMSAhPSAtMSkgJiYgKG9wLT5jaDIgIT0gLTEpICYmCisjaWZkZWYgWFBfT1BUSU1JWkVEX0ZJTFRFUl9GSVJTVAorCQkgICAgLyoKKwkJICAgICogRklMVEVSIFRPRE86IENhbiB3ZSBhc3N1bWUgdGhhdCB0aGUgaW5uZXIgcHJvY2Vzc2luZworCQkgICAgKiAgd2lsbCByZXN1bHQgaW4gYW4gb3JkZXJlZCBsaXN0IGlmIHdlIGhhdmUgYW4KKwkJICAgICogIFhQQVRIX09QX0ZJTFRFUj8KKwkJICAgICogIFdoYXQgYWJvdXQgYW4gYWRkaXRpb25hbCBmaWVsZCBvciBmbGFnIG9uCisJCSAgICAqICB4bWxYUGF0aE9iamVjdCBsaWtlIEBzb3J0ZWQgPyBUaGlzIHdheSB3ZSB3b3VsbidkIG5lZWQKKwkJICAgICogIHRvIGFzc3VtZSBhbnl0aGluZywgc28gaXQgd291bGQgYmUgbW9yZSByb2J1c3QgYW5kCisJCSAgICAqICBlYXNpZXIgdG8gb3B0aW1pemUuCisJCSAgICAqLworICAgICAgICAgICAgICAgICAgICAoKGNvbXAtPnN0ZXBzW29wLT5jaDFdLm9wID09IFhQQVRIX09QX1NPUlQpIHx8IC8qIDE4ICovCisJCSAgICAgKGNvbXAtPnN0ZXBzW29wLT5jaDFdLm9wID09IFhQQVRIX09QX0ZJTFRFUikpICYmIC8qIDE3ICovCisjZWxzZQorCQkgICAgKGNvbXAtPnN0ZXBzW29wLT5jaDFdLm9wID09IFhQQVRIX09QX1NPUlQpICYmCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgKGNvbXAtPnN0ZXBzW29wLT5jaDJdLm9wID09IFhQQVRIX09QX1ZBTFVFKSkgeyAvKiAxMiAqLworICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE9iamVjdFB0ciB2YWw7CisKKyAgICAgICAgICAgICAgICAgICAgdmFsID0gY29tcC0+c3RlcHNbb3AtPmNoMl0udmFsdWU0OworICAgICAgICAgICAgICAgICAgICBpZiAoKHZhbCAhPSBOVUxMKSAmJiAodmFsLT50eXBlID09IFhQQVRIX05VTUJFUikgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICh2YWwtPmZsb2F0dmFsID09IDEuMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgZmlyc3QgPSBOVUxMOworCisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCArPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbEZpcnN0KGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPnN0ZXBzW29wLT5jaDFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaXJzdCk7CisJCQlDSEVDS19FUlJPUjA7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlIG5vZGVzZXQgc2hvdWxkIGJlIGluIGRvY3VtZW50IG9yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICogS2VlcCBvbmx5IHRoZSBmaXJzdCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGN0eHQtPnZhbHVlICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPnZhbHVlLT50eXBlID09IFhQQVRIX05PREVTRVQpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPiAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT52YWx1ZS0+bm9kZXNldHZhbC0+bm9kZU5yID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogT3B0aW1pemF0aW9uIGZvciAoKVtsYXN0KCldIHNlbGVjdGlvbiBpLmUuIHRoZSBsYXN0IGVsZW0KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoKG9wLT5jaDEgIT0gLTEpICYmIChvcC0+Y2gyICE9IC0xKSAmJgorICAgICAgICAgICAgICAgICAgICAoY29tcC0+c3RlcHNbb3AtPmNoMV0ub3AgPT0gWFBBVEhfT1BfU09SVCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGNvbXAtPnN0ZXBzW29wLT5jaDJdLm9wID09IFhQQVRIX09QX1NPUlQpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBmID0gY29tcC0+c3RlcHNbb3AtPmNoMl0uY2gxOworCisgICAgICAgICAgICAgICAgICAgIGlmICgoZiAhPSAtMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChjb21wLT5zdGVwc1tmXS5vcCA9PSBYUEFUSF9PUF9GVU5DVElPTikgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChjb21wLT5zdGVwc1tmXS52YWx1ZTUgPT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChjb21wLT5zdGVwc1tmXS52YWx1ZSA9PSAwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXAtPnN0ZXBzW2ZdLnZhbHVlNCAhPSBOVUxMKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKHhtbFN0ckVxdWFsCisgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXAtPnN0ZXBzW2ZdLnZhbHVlNCwgQkFEX0NBU1QgImxhc3QiKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbE5vZGVQdHIgbGFzdCA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsTGFzdChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPnN0ZXBzW29wLT5jaDFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmxhc3QpOworCQkJQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSBub2Rlc2V0IHNob3VsZCBiZSBpbiBkb2N1bWVudCBvcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEtlZXAgb25seSB0aGUgbGFzdCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGN0eHQtPnZhbHVlICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPnZhbHVlLT50eXBlID09IFhQQVRIX05PREVTRVQpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlVGFiICE9IE5VTEwpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPiAxKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlVGFiWzBdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwtPm5vZGVUYWJbY3R4dC0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXNldHZhbC0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVOciAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisJCS8qCisJCSogUHJvY2VzcyBpbm5lciBwcmVkaWNhdGVzIGZpcnN0LgorCQkqIEV4YW1wbGUgImluZGV4W3BhcmVudDo6Ym9va11bMV0iOgorCQkqIC4uLgorCQkqICAgUFJFRElDQVRFICAgPC0tIHdlIGFyZSBoZXJlICJbMV0iCisJCSogICAgIFBSRURJQ0FURSA8LS0gcHJvY2VzcyAiW3BhcmVudDo6Ym9va10iIGZpcnN0CisJCSogICAgICAgU09SVAorCQkqICAgICAgICAgQ09MTEVDVCAgJ3BhcmVudCcgJ25hbWUnICdub2RlJyBib29rCisJCSogICAgICAgICAgIE5PREUKKwkJKiAgICAgRUxFTSBPYmplY3QgaXMgYSBudW1iZXIgOiAxCisJCSovCisgICAgICAgICAgICAgICAgaWYgKG9wLT5jaDEgIT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9CisgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKwkJQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgICAgIGlmIChvcC0+Y2gyID09IC0xKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgICAgICAgICBpZiAoY3R4dC0+dmFsdWUgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisKKyAgICAgICAgICAgICAgICBvbGRub2RlID0gY3R4dC0+Y29udGV4dC0+bm9kZTsKKworI2lmZGVmIExJQlhNTF9YUFRSX0VOQUJMRUQKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEh1bSBhcmUgd2UgZmlsdGVyaW5nIHRoZSByZXN1bHQgb2YgYW4gWFBvaW50ZXIgZXhwcmVzc2lvbgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmIChjdHh0LT52YWx1ZS0+dHlwZSA9PSBYUEFUSF9MT0NBVElPTlNFVCkgeworICAgICAgICAgICAgICAgICAgICB4bWxMb2NhdGlvblNldFB0ciBuZXdsb2NzZXQgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICB4bWxMb2NhdGlvblNldFB0ciBvbGRsb2NzZXQ7CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogRXh0cmFjdCB0aGUgb2xkIGxvY3NldCwgYW5kIHRoZW4gZXZhbHVhdGUgdGhlIHJlc3VsdCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICogZXhwcmVzc2lvbiBmb3IgYWxsIHRoZSBlbGVtZW50IGluIHRoZSBsb2NzZXQuIHVzZSBpdCB0byBncm93CisgICAgICAgICAgICAgICAgICAgICAqIHVwIGEgbmV3IGxvY3NldC4KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIENIRUNLX1RZUEUwKFhQQVRIX0xPQ0FUSU9OU0VUKTsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gdmFsdWVQb3AoY3R4dCk7CisgICAgICAgICAgICAgICAgICAgIG9sZGxvY3NldCA9IG9iai0+dXNlcjsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKChvbGRsb2NzZXQgPT0gTlVMTCkgfHwgKG9sZGxvY3NldC0+bG9jTnIgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcC0+Y2gyICE9IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHZhbHVlUG9wKGN0eHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBOVUxMKSB7CisJCQkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHJlcyk7CisJCQl9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVB1c2goY3R4dCwgb2JqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5ld2xvY3NldCA9IHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZShOVUxMKTsKKworICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb2xkbG9jc2V0LT5sb2NOcjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogUnVuIHRoZSBldmFsdWF0aW9uIHdpdGggYSBub2RlIGxpc3QgbWFkZSBvZiBhCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaW5nbGUgaXRlbSBpbiB0aGUgbm9kZWxvY3NldC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IG9sZGxvY3NldC0+bG9jVGFiW2ldLT51c2VyOworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSBvbGRsb2NzZXQtPmxvY05yOworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSBpICsgMTsKKwkJCXRtcCA9IHhtbFhQYXRoQ2FjaGVOZXdOb2RlU2V0KGN0eHQtPmNvbnRleHQsCisJCQkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVB1c2goY3R4dCwgdG1wKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wLT5jaDIgIT0gLTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworCQkJaWYgKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spIHsKKwkJCSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKwkJCSAgICByZXR1cm4oMCk7CisJCQl9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0aW9uIG5lZWQgdG8gYmUgdGVzdGVkIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBkZWNpZGVkIHdoZXRoZXIgdGhlIGZpbHRlciBzdWNjZWVkZWQgb3Igbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHZhbHVlUG9wKGN0eHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQoY3R4dCwgcmVzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQdHJMb2NhdGlvblNldEFkZChuZXdsb2NzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoT2JqZWN0Q29weQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2xkbG9jc2V0LT5sb2NUYWJbaV0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIENsZWFudXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBOVUxMKSB7CisJCQkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHJlcyk7CisJCQl9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3R4dC0+dmFsdWUgPT0gdG1wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gdmFsdWVQb3AoY3R4dCk7CisJCQkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHJlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogVGhlIHJlc3VsdCBpcyB1c2VkIGFzIHRoZSBuZXcgZXZhbHVhdGlvbiBsb2NzZXQuCisgICAgICAgICAgICAgICAgICAgICAqLworCQkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIG9iaik7CisgICAgICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IC0xOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IC0xOworICAgICAgICAgICAgICAgICAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFB0cldyYXBMb2NhdGlvblNldChuZXdsb2NzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IG9sZG5vZGU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAodG90YWwpOworICAgICAgICAgICAgICAgIH0KKyNlbmRpZiAvKiBMSUJYTUxfWFBUUl9FTkFCTEVEICovCisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEV4dHJhY3QgdGhlIG9sZCBzZXQsIGFuZCB0aGVuIGV2YWx1YXRlIHRoZSByZXN1bHQgb2YgdGhlCisgICAgICAgICAgICAgICAgICogZXhwcmVzc2lvbiBmb3IgYWxsIHRoZSBlbGVtZW50IGluIHRoZSBzZXQuIHVzZSBpdCB0byBncm93CisgICAgICAgICAgICAgICAgICogdXAgYSBuZXcgc2V0LgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIENIRUNLX1RZUEUwKFhQQVRIX05PREVTRVQpOworICAgICAgICAgICAgICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgICAgICAgICAgICAgIG9sZHNldCA9IG9iai0+bm9kZXNldHZhbDsKKworICAgICAgICAgICAgICAgIG9sZG5vZGUgPSBjdHh0LT5jb250ZXh0LT5ub2RlOworCQlvbGREb2MgPSBjdHh0LT5jb250ZXh0LT5kb2M7CisgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICBpZiAoKG9sZHNldCA9PSBOVUxMKSB8fCAob2xkc2V0LT5ub2RlTnIgPT0gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSAwOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IDA7CisvKgorICAgICAgICAgICAgICAgICAgICBpZiAob3AtPmNoMiAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJCSAgICBDSEVDS19FUlJPUjA7CisgICAgICAgICAgICAgICAgICAgIHJlcyA9IHZhbHVlUG9wKGN0eHQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aEZyZWVPYmplY3QocmVzKTsKKyovCisgICAgICAgICAgICAgICAgICAgIHZhbHVlUHVzaChjdHh0LCBvYmopOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gb2xkbm9kZTsKKyAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisJCSAgICB0bXAgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBJbml0aWFsaXplIHRoZSBuZXcgc2V0LgorCQkgICAgICogQWxzbyBzZXQgdGhlIHhwYXRoIGRvY3VtZW50IGluIGNhc2UgdGhpbmdzIGxpa2UKKwkJICAgICAqIGtleSgpIGV2YWx1YXRpb24gYXJlIGF0dGVtcHRlZCBvbiB0aGUgcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBuZXdzZXQgPSB4bWxYUGF0aE5vZGVTZXRDcmVhdGUoTlVMTCk7CisJCSAgICAvKgorCQkgICAgKiBTUEVDIFhQYXRoIDEuMDoKKwkJICAgICogICJGb3IgZWFjaCBub2RlIGluIHRoZSBub2RlLXNldCB0byBiZSBmaWx0ZXJlZCwgdGhlCisJCSAgICAqICBQcmVkaWNhdGVFeHByIGlzIGV2YWx1YXRlZCB3aXRoIHRoYXQgbm9kZSBhcyB0aGUKKwkJICAgICogIGNvbnRleHQgbm9kZSwgd2l0aCB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZQorCQkgICAgKiAgbm9kZS1zZXQgYXMgdGhlIGNvbnRleHQgc2l6ZSwgYW5kIHdpdGggdGhlIHByb3hpbWl0eQorCQkgICAgKiAgcG9zaXRpb24gb2YgdGhlIG5vZGUgaW4gdGhlIG5vZGUtc2V0IHdpdGggcmVzcGVjdCB0bworCQkgICAgKiAgdGhlIGF4aXMgYXMgdGhlIGNvbnRleHQgcG9zaXRpb247IgorCQkgICAgKiBAb2xkc2V0IGlzIHRoZSBub2RlLXNldCIgdG8gYmUgZmlsdGVyZWQuCisJCSAgICAqCisJCSAgICAqIFNQRUMgWFBhdGggMS4wOgorCQkgICAgKiAgIm9ubHkgcHJlZGljYXRlcyBjaGFuZ2UgdGhlIGNvbnRleHQgcG9zaXRpb24gYW5kCisJCSAgICAqICBjb250ZXh0IHNpemUgKHNlZSBbMi40IFByZWRpY2F0ZXNdKS4iCisJCSAgICAqIEV4YW1wbGU6CisJCSAgICAqICAgbm9kZS1zZXQgIGNvbnRleHQgcG9zCisJCSAgICAqICAgIG5BICAgICAgICAgMQorCQkgICAgKiAgICBuQiAgICAgICAgIDIKKwkJICAgICogICAgbkMgICAgICAgICAzCisJCSAgICAqICAgQWZ0ZXIgYXBwbHlpbmcgcHJlZGljYXRlIFtwb3NpdGlvbigpID4gMV0gOgorCQkgICAgKiAgIG5vZGUtc2V0ICBjb250ZXh0IHBvcworCQkgICAgKiAgICBuQiAgICAgICAgIDEKKwkJICAgICogICAgbkMgICAgICAgICAyCisJCSAgICAqCisJCSAgICAqIHJlbW92ZWQgdGhlIGZpcnN0IG5vZGUgaW4gdGhlIG5vZGUtc2V0LCB0aGVuCisJCSAgICAqIHRoZSBjb250ZXh0IHBvc2l0aW9uIG9mIHRoZQorCQkgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG9sZHNldC0+bm9kZU5yOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBSdW4gdGhlIGV2YWx1YXRpb24gd2l0aCBhIG5vZGUgbGlzdCBtYWRlIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhIHNpbmdsZSBpdGVtIGluIHRoZSBub2Rlc2V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gb2xkc2V0LT5ub2RlVGFiW2ldOworCQkJaWYgKChvbGRzZXQtPm5vZGVUYWJbaV0tPnR5cGUgIT0gWE1MX05BTUVTUEFDRV9ERUNMKSAmJgorCQkJICAgIChvbGRzZXQtPm5vZGVUYWJbaV0tPmRvYyAhPSBOVUxMKSkKKwkJICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+ZG9jID0gb2xkc2V0LT5ub2RlVGFiW2ldLT5kb2M7CisJCQlpZiAodG1wID09IE5VTEwpIHsKKwkJCSAgICB0bXAgPSB4bWxYUGF0aENhY2hlTmV3Tm9kZVNldChjdHh0LT5jb250ZXh0LAorCQkJCWN0eHQtPmNvbnRleHQtPm5vZGUpOworCQkJfSBlbHNlIHsKKwkJCSAgICB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUodG1wLT5ub2Rlc2V0dmFsLAorCQkJCWN0eHQtPmNvbnRleHQtPm5vZGUpOworCQkJfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVQdXNoKGN0eHQsIHRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IG9sZHNldC0+bm9kZU5yOworICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSBpICsgMTsKKwkJCS8qCisJCQkqIEV2YWx1YXRlIHRoZSBwcmVkaWNhdGUgYWdhaW5zdCB0aGUgY29udGV4dCBub2RlLgorCQkJKiBDYW4vc2hvdWxkIHdlIG9wdGltaXplIHBvc2l0aW9uKCkgcHJlZGljYXRlcworCQkJKiBoZXJlIChlLmcuICJbMV0iKT8KKwkJCSovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AtPmNoMiAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCArPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJCQlpZiAoY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSykgeworCQkJICAgIHhtbFhQYXRoRnJlZU5vZGVTZXQobmV3c2V0KTsKKwkJCSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKwkJCSAgICByZXR1cm4oMCk7CisJCQl9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0aW9uIG5lZWRzIHRvIGJlIHRlc3RlZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICogZGVjaWRlIHdoZXRoZXIgdGhlIGZpbHRlciBzdWNjZWVkZWQgb3Igbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwkJCS8qCisJCQkqIE9QVElNSVpFIFRPRE86IENhbiB3ZSB1c2UKKwkJCSogeG1sWFBhdGhOb2RlU2V0QWRkKlVuaXF1ZSgpKiBpbnN0ZWFkPworCQkJKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHZhbHVlUG9wKGN0eHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQoY3R4dCwgcmVzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoTm9kZVNldEFkZChuZXdzZXQsIG9sZHNldC0+bm9kZVRhYltpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBDbGVhbnVwCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gTlVMTCkgeworCQkJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCByZXMpOworCQkJfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN0eHQtPnZhbHVlID09IHRtcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlUG9wKGN0eHQpOworCQkJICAgIHhtbFhQYXRoTm9kZVNldENsZWFyKHRtcC0+bm9kZXNldHZhbCwgMSk7CisJCQkgICAgLyoKKwkJCSAgICAqIERvbid0IGZyZWUgdGhlIHRlbXBvcmFyeSBub2Rlc2V0CisJCQkgICAgKiBpbiBvcmRlciB0byBhdm9pZCBtYXNzaXZlIHJlY3JlYXRpb24gaW5zaWRlIHRoaXMKKwkJCSAgICAqIGxvb3AuCisJCQkgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorCQkJICAgIHRtcCA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgaWYgKHRtcCAhPSBOVUxMKQorCQkJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHRtcCk7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIFRoZSByZXN1bHQgaXMgdXNlZCBhcyB0aGUgbmV3IGV2YWx1YXRpb24gc2V0LgorICAgICAgICAgICAgICAgICAgICAgKi8KKwkJICAgIHhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCBvYmopOworICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSAtMTsKKwkJICAgIC8qIG1heSB3YW50IHRvIG1vdmUgdGhpcyBwYXN0IHRoZSAnfScgbGF0ZXIgKi8KKwkJICAgIGN0eHQtPmNvbnRleHQtPmRvYyA9IG9sZERvYzsKKwkJICAgIHZhbHVlUHVzaChjdHh0LAorCQkJeG1sWFBhdGhDYWNoZVdyYXBOb2RlU2V0KGN0eHQtPmNvbnRleHQsIG5ld3NldCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gb2xkbm9kZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBYUEFUSF9PUF9TT1JUOgorICAgICAgICAgICAgaWYgKG9wLT5jaDEgIT0gLTEpCisgICAgICAgICAgICAgICAgdG90YWwgKz0geG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tvcC0+Y2gxXSk7CisJICAgIENIRUNLX0VSUk9SMDsKKyAgICAgICAgICAgIGlmICgoY3R4dC0+dmFsdWUgIT0gTlVMTCkgJiYKKyAgICAgICAgICAgICAgICAoY3R4dC0+dmFsdWUtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgJiYKKyAgICAgICAgICAgICAgICAoY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwgIT0gTlVMTCkgJiYKKwkJKGN0eHQtPnZhbHVlLT5ub2Rlc2V0dmFsLT5ub2RlTnIgPiAxKSkKKwkgICAgeworICAgICAgICAgICAgICAgIHhtbFhQYXRoTm9kZVNldFNvcnQoY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWwpOworCSAgICB9CisgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisgICAgICAgIGNhc2UgWFBBVEhfT1BfUkFOR0VUTzp7CisgICAgICAgICAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgcmFuZ2U7CisgICAgICAgICAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzLCBvYmo7CisgICAgICAgICAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgdG1wOworICAgICAgICAgICAgICAgIHhtbExvY2F0aW9uU2V0UHRyIG5ld2xvY3NldCA9IE5VTEw7CisJCSAgICB4bWxMb2NhdGlvblNldFB0ciBvbGRsb2NzZXQ7CisgICAgICAgICAgICAgICAgeG1sTm9kZVNldFB0ciBvbGRzZXQ7CisgICAgICAgICAgICAgICAgaW50IGksIGo7CisKKyAgICAgICAgICAgICAgICBpZiAob3AtPmNoMSAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY29tcC0+c3RlcHNbb3AtPmNoMV0pOworICAgICAgICAgICAgICAgIGlmIChvcC0+Y2gyID09IC0xKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHRvdGFsKTsKKworICAgICAgICAgICAgICAgIGlmIChjdHh0LT52YWx1ZS0+dHlwZSA9PSBYUEFUSF9MT0NBVElPTlNFVCkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBFeHRyYWN0IHRoZSBvbGQgbG9jc2V0LCBhbmQgdGhlbiBldmFsdWF0ZSB0aGUgcmVzdWx0IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgKiBleHByZXNzaW9uIGZvciBhbGwgdGhlIGVsZW1lbnQgaW4gdGhlIGxvY3NldC4gdXNlIGl0IHRvIGdyb3cKKyAgICAgICAgICAgICAgICAgICAgICogdXAgYSBuZXcgbG9jc2V0LgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfVFlQRTAoWFBBVEhfTE9DQVRJT05TRVQpOworICAgICAgICAgICAgICAgICAgICBvYmogPSB2YWx1ZVBvcChjdHh0KTsKKyAgICAgICAgICAgICAgICAgICAgb2xkbG9jc2V0ID0gb2JqLT51c2VyOworCisgICAgICAgICAgICAgICAgICAgIGlmICgob2xkbG9jc2V0ID09IE5VTEwpIHx8IChvbGRsb2NzZXQtPmxvY05yID09IDApKSB7CisJCSAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCArPSB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gdmFsdWVQb3AoY3R4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IE5VTEwpIHsKKwkJCSAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgcmVzKTsKKwkJCX0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlUHVzaChjdHh0LCBvYmopOworICAgICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVJST1IwOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbmV3bG9jc2V0ID0geG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKE5VTEwpOworCisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBvbGRsb2NzZXQtPmxvY05yOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBSdW4gdGhlIGV2YWx1YXRpb24gd2l0aCBhIG5vZGUgbGlzdCBtYWRlIG9mIGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHNpbmdsZSBpdGVtIGluIHRoZSBub2RlbG9jc2V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gb2xkbG9jc2V0LT5sb2NUYWJbaV0tPnVzZXI7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IG9sZGxvY3NldC0+bG9jTnI7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IGkgKyAxOworCQkJdG1wID0geG1sWFBhdGhDYWNoZU5ld05vZGVTZXQoY3R4dC0+Y29udGV4dCwKKwkJCSAgICBjdHh0LT5jb250ZXh0LT5ub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlUHVzaChjdHh0LCB0bXApOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AtPmNoMiAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCArPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aENvbXBPcEV2YWwoY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wLT5zdGVwc1tvcC0+Y2gyXSk7CisJCQlpZiAoY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSykgeworCQkJICAgIHhtbFhQYXRoRnJlZU9iamVjdChvYmopOworCQkJICAgIHJldHVybigwKTsKKwkJCX0KKworICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gdmFsdWVQb3AoY3R4dCk7CisJCQlpZiAocmVzLT50eXBlID09IFhQQVRIX0xPQ0FUSU9OU0VUKSB7CisJCQkgICAgeG1sTG9jYXRpb25TZXRQdHIgcmxvYyA9CisJCQkgICAgICAgICh4bWxMb2NhdGlvblNldFB0cilyZXMtPnVzZXI7CisJCQkgICAgZm9yIChqPTA7IGo8cmxvYy0+bG9jTnI7IGorKykgeworCQkJICAgICAgICByYW5nZSA9IHhtbFhQdHJOZXdSYW5nZSgKKwkJCQkgIG9sZGxvY3NldC0+bG9jVGFiW2ldLT51c2VyLAorCQkJCSAgb2xkbG9jc2V0LT5sb2NUYWJbaV0tPmluZGV4LAorCQkJCSAgcmxvYy0+bG9jVGFiW2pdLT51c2VyMiwKKwkJCQkgIHJsb2MtPmxvY1RhYltqXS0+aW5kZXgyKTsKKwkJCQlpZiAocmFuZ2UgIT0gTlVMTCkgeworCQkJCSAgICB4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3bG9jc2V0LCByYW5nZSk7CisJCQkJfQorCQkJICAgIH0KKwkJCX0gZWxzZSB7CisJCQkgICAgcmFuZ2UgPSB4bWxYUHRyTmV3UmFuZ2VOb2RlT2JqZWN0KAorCQkJCSh4bWxOb2RlUHRyKW9sZGxvY3NldC0+bG9jVGFiW2ldLT51c2VyLCByZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYW5nZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQdHJMb2NhdGlvblNldEFkZChuZXdsb2NzZXQscmFuZ2UpOworCQkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIENsZWFudXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBOVUxMKSB7CisJCQkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHJlcyk7CisJCQl9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3R4dC0+dmFsdWUgPT0gdG1wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gdmFsdWVQb3AoY3R4dCk7CisJCQkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHJlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICB9CisJCX0gZWxzZSB7CS8qIE5vdCBhIGxvY2F0aW9uIHNldCAqLworICAgICAgICAgICAgICAgICAgICBDSEVDS19UWVBFMChYUEFUSF9OT0RFU0VUKTsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gdmFsdWVQb3AoY3R4dCk7CisgICAgICAgICAgICAgICAgICAgIG9sZHNldCA9IG9iai0+bm9kZXNldHZhbDsKKyAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgICAgICAgbmV3bG9jc2V0ID0geG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKE5VTEwpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChvbGRzZXQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG9sZHNldC0+bm9kZU5yOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFJ1biB0aGUgZXZhbHVhdGlvbiB3aXRoIGEgbm9kZSBsaXN0IG1hZGUgb2YgYSBzaW5nbGUgaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGluIHRoZSBub2Rlc2V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBvbGRzZXQtPm5vZGVUYWJbaV07CisJCQkgICAgLyoKKwkJCSAgICAqIE9QVElNSVpFIFRPRE86IEF2b2lkIHJlY3JlYXRpb24gZm9yIGV2ZXJ5IGl0ZXJhdGlvbi4KKwkJCSAgICAqLworCQkJICAgIHRtcCA9IHhtbFhQYXRoQ2FjaGVOZXdOb2RlU2V0KGN0eHQtPmNvbnRleHQsCisJCQkJY3R4dC0+Y29udGV4dC0+bm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVQdXNoKGN0eHQsIHRtcCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AtPmNoMiAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXAtPnN0ZXBzW29wLT5jaDJdKTsKKwkJCSAgICBpZiAoY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSykgeworCQkJCXhtbFhQYXRoRnJlZU9iamVjdChvYmopOworCQkJCXJldHVybigwKTsKKwkJCSAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3Qob2xkc2V0LT5ub2RlVGFiW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3bG9jc2V0LCByYW5nZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBDbGVhbnVwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBOVUxMKSB7CisJCQkJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHJlcyk7CisJCQkgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHh0LT52YWx1ZSA9PSB0bXApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gdmFsdWVQb3AoY3R4dCk7CisJCQkJeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQtPmNvbnRleHQsIHJlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoZSByZXN1bHQgaXMgdXNlZCBhcyB0aGUgbmV3IGV2YWx1YXRpb24gc2V0LgorICAgICAgICAgICAgICAgICAqLworCQl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgb2JqKTsKKyAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKKyAgICAgICAgICAgICAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IC0xOworICAgICAgICAgICAgICAgIGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gLTE7CisgICAgICAgICAgICAgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQdHJXcmFwTG9jYXRpb25TZXQobmV3bG9jc2V0KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuICh0b3RhbCk7CisgICAgICAgICAgICB9CisjZW5kaWYgLyogTElCWE1MX1hQVFJfRU5BQkxFRCAqLworICAgIH0KKyAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIlhQYXRoOiB1bmtub3duIHByZWNvbXBpbGVkIG9wZXJhdGlvbiAlZFxuIiwgb3AtPm9wKTsKKyAgICByZXR1cm4gKHRvdGFsKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBPcEV2YWxUb0Jvb2xlYW46CisgKiBAY3R4dDogIHRoZSBYUGF0aCBwYXJzZXIgY29udGV4dAorICoKKyAqIEV2YWx1YXRlcyBpZiB0aGUgZXhwcmVzc2lvbiBldmFsdWF0ZXMgdG8gdHJ1ZS4KKyAqCisgKiBSZXR1cm5zIDEgaWYgdHJ1ZSwgMCBpZiBmYWxzZSBhbmQgLTEgb24gQVBJIG9yIGludGVybmFsIGVycm9ycy4KKyAqLworc3RhdGljIGludAoreG1sWFBhdGhDb21wT3BFdmFsVG9Cb29sZWFuKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LAorCQkJICAgIHhtbFhQYXRoU3RlcE9wUHRyIG9wLAorCQkJICAgIGludCBpc1ByZWRpY2F0ZSkKK3sKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXNPYmogPSBOVUxMOworCitzdGFydDoKKyAgICAvKiBjb21wID0gY3R4dC0+Y29tcDsgKi8KKyAgICBzd2l0Y2ggKG9wLT5vcCkgeworICAgICAgICBjYXNlIFhQQVRIX09QX0VORDoKKyAgICAgICAgICAgIHJldHVybiAoMCk7CisJY2FzZSBYUEFUSF9PUF9WQUxVRToKKwkgICAgcmVzT2JqID0gKHhtbFhQYXRoT2JqZWN0UHRyKSBvcC0+dmFsdWU0OworCSAgICBpZiAoaXNQcmVkaWNhdGUpCisJCXJldHVybih4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0KGN0eHQsIHJlc09iaikpOworCSAgICByZXR1cm4oeG1sWFBhdGhDYXN0VG9Cb29sZWFuKHJlc09iaikpOworCWNhc2UgWFBBVEhfT1BfU09SVDoKKwkgICAgLyoKKwkgICAgKiBXZSBkb24ndCBuZWVkIHNvcnRpbmcgZm9yIGJvb2xlYW4gcmVzdWx0cy4gU2tpcCB0aGlzIG9uZS4KKwkgICAgKi8KKyAgICAgICAgICAgIGlmIChvcC0+Y2gxICE9IC0xKSB7CisJCW9wID0gJmN0eHQtPmNvbXAtPnN0ZXBzW29wLT5jaDFdOworCQlnb3RvIHN0YXJ0OworCSAgICB9CisJICAgIHJldHVybigwKTsKKwljYXNlIFhQQVRIX09QX0NPTExFQ1Q6CisJICAgIGlmIChvcC0+Y2gxID09IC0xKQorCQlyZXR1cm4oMCk7CisKKyAgICAgICAgICAgIHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCAmY3R4dC0+Y29tcC0+c3RlcHNbb3AtPmNoMV0pOworCSAgICBpZiAoY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSykKKwkJcmV0dXJuKC0xKTsKKworICAgICAgICAgICAgeG1sWFBhdGhOb2RlQ29sbGVjdEFuZFRlc3QoY3R4dCwgb3AsIE5VTEwsIE5VTEwsIDEpOworCSAgICBpZiAoY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSykKKwkJcmV0dXJuKC0xKTsKKworCSAgICByZXNPYmogPSB2YWx1ZVBvcChjdHh0KTsKKwkgICAgaWYgKHJlc09iaiA9PSBOVUxMKQorCQlyZXR1cm4oLTEpOworCSAgICBicmVhazsKKwlkZWZhdWx0OgorCSAgICAvKgorCSAgICAqIEZhbGxiYWNrIHRvIGNhbGwgeG1sWFBhdGhDb21wT3BFdmFsKCkuCisJICAgICovCisJICAgIHhtbFhQYXRoQ29tcE9wRXZhbChjdHh0LCBvcCk7CisJICAgIGlmIChjdHh0LT5lcnJvciAhPSBYUEFUSF9FWFBSRVNTSU9OX09LKQorCQlyZXR1cm4oLTEpOworCisJICAgIHJlc09iaiA9IHZhbHVlUG9wKGN0eHQpOworCSAgICBpZiAocmVzT2JqID09IE5VTEwpCisJCXJldHVybigtMSk7CisJICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChyZXNPYmopIHsKKwlpbnQgcmVzOworCisJaWYgKHJlc09iai0+dHlwZSA9PSBYUEFUSF9CT09MRUFOKSB7CisJICAgIHJlcyA9IHJlc09iai0+Ym9vbHZhbDsKKwl9IGVsc2UgaWYgKGlzUHJlZGljYXRlKSB7CisJICAgIC8qCisJICAgICogRm9yIHByZWRpY2F0ZXMgYSByZXN1bHQgb2YgdHlwZSAibnVtYmVyIiBpcyBoYW5kbGVkCisJICAgICogZGlmZmVyZW50bHk6CisJICAgICogU1BFQyBYUGF0aCAxLjA6CisJICAgICogIklmIHRoZSByZXN1bHQgaXMgYSBudW1iZXIsIHRoZSByZXN1bHQgd2lsbCBiZSBjb252ZXJ0ZWQKKwkgICAgKiAgdG8gdHJ1ZSBpZiB0aGUgbnVtYmVyIGlzIGVxdWFsIHRvIHRoZSBjb250ZXh0IHBvc2l0aW9uCisJICAgICogIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBmYWxzZSBvdGhlcndpc2U7IgorCSAgICAqLworCSAgICByZXMgPSB4bWxYUGF0aEV2YWx1YXRlUHJlZGljYXRlUmVzdWx0KGN0eHQsIHJlc09iaik7CisJfSBlbHNlIHsKKwkgICAgcmVzID0geG1sWFBhdGhDYXN0VG9Cb29sZWFuKHJlc09iaik7CisJfQorCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LT5jb250ZXh0LCByZXNPYmopOworCXJldHVybihyZXMpOworICAgIH0KKworICAgIHJldHVybigwKTsKK30KKworI2lmZGVmIFhQQVRIX1NUUkVBTUlORworLyoqCisgKiB4bWxYUGF0aFJ1blN0cmVhbUV2YWw6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBwYXJzZXIgY29udGV4dCB3aXRoIHRoZSBjb21waWxlZCBleHByZXNzaW9uCisgKgorICogRXZhbHVhdGUgdGhlIFByZWNvbXBpbGVkIFN0cmVhbWFibGUgWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KKyAqLworc3RhdGljIGludAoreG1sWFBhdGhSdW5TdHJlYW1FdmFsKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCB4bWxQYXR0ZXJuUHRyIGNvbXAsCisJCSAgICAgIHhtbFhQYXRoT2JqZWN0UHRyICpyZXN1bHRTZXEsIGludCB0b0Jvb2wpCit7CisgICAgaW50IG1heF9kZXB0aCwgbWluX2RlcHRoOworICAgIGludCBmcm9tX3Jvb3Q7CisgICAgaW50IHJldCwgZGVwdGg7CisgICAgaW50IGV2YWxfYWxsX25vZGVzOworICAgIHhtbE5vZGVQdHIgY3VyID0gTlVMTCwgbGltaXQgPSBOVUxMOworICAgIHhtbFN0cmVhbUN0eHRQdHIgcGF0c3RyZWFtID0gTlVMTDsKKworICAgIGludCBuYl9ub2RlcyA9IDA7CisKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGNvbXAgPT0gTlVMTCkpCisgICAgICAgIHJldHVybigtMSk7CisgICAgbWF4X2RlcHRoID0geG1sUGF0dGVybk1heERlcHRoKGNvbXApOworICAgIGlmIChtYXhfZGVwdGggPT0gLTEpCisgICAgICAgIHJldHVybigtMSk7CisgICAgaWYgKG1heF9kZXB0aCA9PSAtMikKKyAgICAgICAgbWF4X2RlcHRoID0gMTAwMDA7CisgICAgbWluX2RlcHRoID0geG1sUGF0dGVybk1pbkRlcHRoKGNvbXApOworICAgIGlmIChtaW5fZGVwdGggPT0gLTEpCisgICAgICAgIHJldHVybigtMSk7CisgICAgZnJvbV9yb290ID0geG1sUGF0dGVybkZyb21Sb290KGNvbXApOworICAgIGlmIChmcm9tX3Jvb3QgPCAwKQorICAgICAgICByZXR1cm4oLTEpOworI2lmIDAKKyAgICBwcmludGYoInN0cmVhbSBldmFsOiBkZXB0aCAlZCBmcm9tIHJvb3QgJWRcbiIsIG1heF9kZXB0aCwgZnJvbV9yb290KTsKKyNlbmRpZgorCisgICAgaWYgKCEgdG9Cb29sKSB7CisJaWYgKHJlc3VsdFNlcSA9PSBOVUxMKQorCSAgICByZXR1cm4oLTEpOworCSpyZXN1bHRTZXEgPSB4bWxYUGF0aENhY2hlTmV3Tm9kZVNldChjdHh0LCBOVUxMKTsKKwlpZiAoKnJlc3VsdFNlcSA9PSBOVUxMKQorCSAgICByZXR1cm4oLTEpOworICAgIH0KKworICAgIC8qCisgICAgICogaGFuZGxlIHRoZSBzcGVjaWFsIGNhc2VzIG9mICIvIiBhbWQgIi4iIGJlaW5nIG1hdGNoZWQKKyAgICAgKi8KKyAgICBpZiAobWluX2RlcHRoID09IDApIHsKKwlpZiAoZnJvbV9yb290KSB7CisJICAgIC8qIFNlbGVjdCAiLyIgKi8KKwkgICAgaWYgKHRvQm9vbCkKKwkJcmV0dXJuKDEpOworCSAgICB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUoKCpyZXN1bHRTZXEpLT5ub2Rlc2V0dmFsLAorCQkoeG1sTm9kZVB0cikgY3R4dC0+ZG9jKTsKKwl9IGVsc2UgeworCSAgICAvKiBTZWxlY3QgInNlbGY6Om5vZGUoKSIgKi8KKwkgICAgaWYgKHRvQm9vbCkKKwkJcmV0dXJuKDEpOworCSAgICB4bWxYUGF0aE5vZGVTZXRBZGRVbmlxdWUoKCpyZXN1bHRTZXEpLT5ub2Rlc2V0dmFsLCBjdHh0LT5ub2RlKTsKKwl9CisgICAgfQorICAgIGlmIChtYXhfZGVwdGggPT0gMCkgeworCXJldHVybigwKTsKKyAgICB9CisKKyAgICBpZiAoZnJvbV9yb290KSB7CisgICAgICAgIGN1ciA9ICh4bWxOb2RlUHRyKWN0eHQtPmRvYzsKKyAgICB9IGVsc2UgaWYgKGN0eHQtPm5vZGUgIT0gTlVMTCkgeworICAgICAgICBzd2l0Y2ggKGN0eHQtPm5vZGUtPnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9GUkFHX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorICAgICAgICAgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisJICAgICAgICBjdXIgPSBjdHh0LT5ub2RlOworCQlicmVhazsKKyAgICAgICAgICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfVEVYVF9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRU5USVRZX05PREU6CisgICAgICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfTk9UQVRJT05fTk9ERToKKyAgICAgICAgICAgIGNhc2UgWE1MX0RURF9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgY2FzZSBYTUxfRUxFTUVOVF9ERUNMOgorICAgICAgICAgICAgY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisgICAgICAgICAgICBjYXNlIFhNTF9FTlRJVFlfREVDTDoKKyAgICAgICAgICAgIGNhc2UgWE1MX05BTUVTUEFDRV9ERUNMOgorICAgICAgICAgICAgY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisgICAgICAgICAgICBjYXNlIFhNTF9YSU5DTFVERV9FTkQ6CisJCWJyZWFrOworCX0KKwlsaW1pdCA9IGN1cjsKKyAgICB9CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybigwKTsKKyAgICB9CisKKyAgICBwYXRzdHJlYW0gPSB4bWxQYXR0ZXJuR2V0U3RyZWFtQ3R4dChjb21wKTsKKyAgICBpZiAocGF0c3RyZWFtID09IE5VTEwpIHsKKwkvKgorCSogUVVFU1RJT04gVE9ETzogSXMgdGhpcyBhbiBlcnJvcj8KKwkqLworCXJldHVybigwKTsKKyAgICB9CisKKyAgICBldmFsX2FsbF9ub2RlcyA9IHhtbFN0cmVhbVdhbnRzQW55Tm9kZShwYXRzdHJlYW0pOworCisgICAgaWYgKGZyb21fcm9vdCkgeworCXJldCA9IHhtbFN0cmVhbVB1c2gocGF0c3RyZWFtLCBOVUxMLCBOVUxMKTsKKwlpZiAocmV0IDwgMCkgeworCX0gZWxzZSBpZiAocmV0ID09IDEpIHsKKwkgICAgaWYgKHRvQm9vbCkKKwkJZ290byByZXR1cm5fMTsKKwkgICAgeG1sWFBhdGhOb2RlU2V0QWRkVW5pcXVlKCgqcmVzdWx0U2VxKS0+bm9kZXNldHZhbCwgY3VyKTsKKwl9CisgICAgfQorICAgIGRlcHRoID0gMDsKKyAgICBnb3RvIHNjYW5fY2hpbGRyZW47CituZXh0X25vZGU6CisgICAgZG8geworICAgICAgICBuYl9ub2RlcysrOworCisJc3dpdGNoIChjdXItPnR5cGUpIHsKKwkgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCSAgICBjYXNlIFhNTF9URVhUX05PREU6CisJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkgICAgY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCSAgICBjYXNlIFhNTF9QSV9OT0RFOgorCQlpZiAoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHsKKwkJICAgIHJldCA9IHhtbFN0cmVhbVB1c2gocGF0c3RyZWFtLCBjdXItPm5hbWUsCisJCQkJKGN1ci0+bnMgPyBjdXItPm5zLT5ocmVmIDogTlVMTCkpOworCQl9IGVsc2UgaWYgKGV2YWxfYWxsX25vZGVzKQorCQkgICAgcmV0ID0geG1sU3RyZWFtUHVzaE5vZGUocGF0c3RyZWFtLCBOVUxMLCBOVUxMLCBjdXItPnR5cGUpOworCQllbHNlCisJCSAgICBicmVhazsKKworCQlpZiAocmV0IDwgMCkgeworCQkgICAgLyogTk9QLiAqLworCQl9IGVsc2UgaWYgKHJldCA9PSAxKSB7CisJCSAgICBpZiAodG9Cb29sKQorCQkJZ290byByZXR1cm5fMTsKKwkJICAgIHhtbFhQYXRoTm9kZVNldEFkZFVuaXF1ZSgoKnJlc3VsdFNlcSktPm5vZGVzZXR2YWwsIGN1cik7CisJCX0KKwkJaWYgKChjdXItPmNoaWxkcmVuID09IE5VTEwpIHx8IChkZXB0aCA+PSBtYXhfZGVwdGgpKSB7CisJCSAgICByZXQgPSB4bWxTdHJlYW1Qb3AocGF0c3RyZWFtKTsKKwkJICAgIHdoaWxlIChjdXItPm5leHQgIT0gTlVMTCkgeworCQkJY3VyID0gY3VyLT5uZXh0OworCQkJaWYgKChjdXItPnR5cGUgIT0gWE1MX0VOVElUWV9ERUNMKSAmJgorCQkJICAgIChjdXItPnR5cGUgIT0gWE1MX0RURF9OT0RFKSkKKwkJCSAgICBnb3RvIG5leHRfbm9kZTsKKwkJICAgIH0KKwkJfQorCSAgICBkZWZhdWx0OgorCQlicmVhazsKKwl9CisKK3NjYW5fY2hpbGRyZW46CisJaWYgKChjdXItPmNoaWxkcmVuICE9IE5VTEwpICYmIChkZXB0aCA8IG1heF9kZXB0aCkpIHsKKwkgICAgLyoKKwkgICAgICogRG8gbm90IGRlc2NlbmQgb24gZW50aXRpZXMgZGVjbGFyYXRpb25zCisJICAgICAqLworCSAgICBpZiAoY3VyLT5jaGlsZHJlbi0+dHlwZSAhPSBYTUxfRU5USVRZX0RFQ0wpIHsKKwkJY3VyID0gY3VyLT5jaGlsZHJlbjsKKwkJZGVwdGgrKzsKKwkJLyoKKwkJICogU2tpcCBEVERzCisJCSAqLworCQlpZiAoY3VyLT50eXBlICE9IFhNTF9EVERfTk9ERSkKKwkJICAgIGNvbnRpbnVlOworCSAgICB9CisJfQorCisJaWYgKGN1ciA9PSBsaW1pdCkKKwkgICAgYnJlYWs7CisKKwl3aGlsZSAoY3VyLT5uZXh0ICE9IE5VTEwpIHsKKwkgICAgY3VyID0gY3VyLT5uZXh0OworCSAgICBpZiAoKGN1ci0+dHlwZSAhPSBYTUxfRU5USVRZX0RFQ0wpICYmCisJCShjdXItPnR5cGUgIT0gWE1MX0RURF9OT0RFKSkKKwkJZ290byBuZXh0X25vZGU7CisJfQorCisJZG8geworCSAgICBjdXIgPSBjdXItPnBhcmVudDsKKwkgICAgZGVwdGgtLTsKKwkgICAgaWYgKChjdXIgPT0gTlVMTCkgfHwgKGN1ciA9PSBsaW1pdCkpCisJICAgICAgICBnb3RvIGRvbmU7CisJICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0VMRU1FTlRfTk9ERSkgeworCQlyZXQgPSB4bWxTdHJlYW1Qb3AocGF0c3RyZWFtKTsKKwkgICAgfSBlbHNlIGlmICgoZXZhbF9hbGxfbm9kZXMpICYmCisJCSgoY3VyLT50eXBlID09IFhNTF9URVhUX05PREUpIHx8CisJCSAoY3VyLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpIHx8CisJCSAoY3VyLT50eXBlID09IFhNTF9DT01NRU5UX05PREUpIHx8CisJCSAoY3VyLT50eXBlID09IFhNTF9QSV9OT0RFKSkpCisJICAgIHsKKwkJcmV0ID0geG1sU3RyZWFtUG9wKHBhdHN0cmVhbSk7CisJICAgIH0KKwkgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisJCWN1ciA9IGN1ci0+bmV4dDsKKwkJYnJlYWs7CisJICAgIH0KKwl9IHdoaWxlIChjdXIgIT0gTlVMTCk7CisKKyAgICB9IHdoaWxlICgoY3VyICE9IE5VTEwpICYmIChkZXB0aCA+PSAwKSk7CisKK2RvbmU6CisKKyNpZiAwCisgICAgcHJpbnRmKCJzdHJlYW0gZXZhbDogY2hlY2tlZCAlZCBub2RlcyBzZWxlY3RlZCAlZFxuIiwKKyAgICAgICAgICAgbmJfbm9kZXMsIHJldE9iai0+bm9kZXNldHZhbC0+bm9kZU5yKTsKKyNlbmRpZgorCisgICAgaWYgKHBhdHN0cmVhbSkKKwl4bWxGcmVlU3RyZWFtQ3R4dChwYXRzdHJlYW0pOworICAgIHJldHVybigwKTsKKworcmV0dXJuXzE6CisgICAgaWYgKHBhdHN0cmVhbSkKKwl4bWxGcmVlU3RyZWFtQ3R4dChwYXRzdHJlYW0pOworICAgIHJldHVybigxKTsKK30KKyNlbmRpZiAvKiBYUEFUSF9TVFJFQU1JTkcgKi8KKworLyoqCisgKiB4bWxYUGF0aFJ1bkV2YWw6CisgKiBAY3R4dDogIHRoZSBYUGF0aCBwYXJzZXIgY29udGV4dCB3aXRoIHRoZSBjb21waWxlZCBleHByZXNzaW9uCisgKiBAdG9Cb29sOiAgZXZhbHVhdGUgdG8gYSBib29sZWFuIHJlc3VsdAorICoKKyAqIEV2YWx1YXRlIHRoZSBQcmVjb21waWxlZCBYUGF0aCBleHByZXNzaW9uIGluIHRoZSBnaXZlbiBjb250ZXh0LgorICovCitzdGF0aWMgaW50Cit4bWxYUGF0aFJ1bkV2YWwoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCB0b0Jvb2wpCit7CisgICAgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wOworCisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb21wID09IE5VTEwpKQorCXJldHVybigtMSk7CisKKyAgICBpZiAoY3R4dC0+dmFsdWVUYWIgPT0gTlVMTCkgeworCS8qIEFsbG9jYXRlIHRoZSB2YWx1ZSBzdGFjayAqLworCWN0eHQtPnZhbHVlVGFiID0gKHhtbFhQYXRoT2JqZWN0UHRyICopCisJCQkgeG1sTWFsbG9jKDEwICogc2l6ZW9mKHhtbFhQYXRoT2JqZWN0UHRyKSk7CisJaWYgKGN0eHQtPnZhbHVlVGFiID09IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhQRXJyTWVtb3J5KGN0eHQsICJjcmVhdGluZyBldmFsdWF0aW9uIGNvbnRleHRcbiIpOworCSAgICB4bWxGcmVlKGN0eHQpOworCX0KKwljdHh0LT52YWx1ZU5yID0gMDsKKwljdHh0LT52YWx1ZU1heCA9IDEwOworCWN0eHQtPnZhbHVlID0gTlVMTDsKKyAgICB9CisjaWZkZWYgWFBBVEhfU1RSRUFNSU5HCisgICAgaWYgKGN0eHQtPmNvbXAtPnN0cmVhbSkgeworCWludCByZXM7CisKKwlpZiAodG9Cb29sKSB7CisJICAgIC8qCisJICAgICogRXZhbHVhdGlvbiB0byBib29sZWFuIHJlc3VsdC4KKwkgICAgKi8KKwkgICAgcmVzID0geG1sWFBhdGhSdW5TdHJlYW1FdmFsKGN0eHQtPmNvbnRleHQsCisJCWN0eHQtPmNvbXAtPnN0cmVhbSwgTlVMTCwgMSk7CisJICAgIGlmIChyZXMgIT0gLTEpCisJCXJldHVybihyZXMpOworCX0gZWxzZSB7CisJICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlc09iaiA9IE5VTEw7CisKKwkgICAgLyoKKwkgICAgKiBFdmFsdWF0aW9uIHRvIGEgc2VxdWVuY2UuCisJICAgICovCisJICAgIHJlcyA9IHhtbFhQYXRoUnVuU3RyZWFtRXZhbChjdHh0LT5jb250ZXh0LAorCQljdHh0LT5jb21wLT5zdHJlYW0sICZyZXNPYmosIDApOworCisJICAgIGlmICgocmVzICE9IC0xKSAmJiAocmVzT2JqICE9IE5VTEwpKSB7CisJCXZhbHVlUHVzaChjdHh0LCByZXNPYmopOworCQlyZXR1cm4oMCk7CisJICAgIH0KKwkgICAgaWYgKHJlc09iaiAhPSBOVUxMKQorCQl4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgcmVzT2JqKTsKKwl9CisJLyoKKwkqIFFVRVNUSU9OIFRPRE86IFRoaXMgZmFsbHMgYmFjayB0byBub3JtYWwgWFBhdGggZXZhbHVhdGlvbgorCSogaWYgcmVzID09IC0xLiBJcyB0aGlzIGludGVuZGVkPworCSovCisgICAgfQorI2VuZGlmCisgICAgY29tcCA9IGN0eHQtPmNvbXA7CisgICAgaWYgKGNvbXAtPmxhc3QgPCAwKSB7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCisJICAgICJ4bWxYUGF0aFJ1bkV2YWw6IGxhc3QgaXMgbGVzcyB0aGFuIHplcm9cbiIpOworCXJldHVybigtMSk7CisgICAgfQorICAgIGlmICh0b0Jvb2wpCisJcmV0dXJuKHhtbFhQYXRoQ29tcE9wRXZhbFRvQm9vbGVhbihjdHh0LAorCSAgICAmY29tcC0+c3RlcHNbY29tcC0+bGFzdF0sIDApKTsKKyAgICBlbHNlCisJeG1sWFBhdGhDb21wT3BFdmFsKGN0eHQsICZjb21wLT5zdGVwc1tjb21wLT5sYXN0XSk7CisKKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlQdWJsaWMgaW50ZXJmYWNlcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sWFBhdGhFdmFsUHJlZGljYXRlOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQHJlczogIHRoZSBQcmVkaWNhdGUgRXhwcmVzc2lvbiBldmFsdWF0aW9uIHJlc3VsdAorICoKKyAqIEV2YWx1YXRlIGEgcHJlZGljYXRlIHJlc3VsdCBmb3IgdGhlIGN1cnJlbnQgbm9kZS4KKyAqIEEgUHJlZGljYXRlRXhwciBpcyBldmFsdWF0ZWQgYnkgZXZhbHVhdGluZyB0aGUgRXhwciBhbmQgY29udmVydGluZworICogdGhlIHJlc3VsdCB0byBhIGJvb2xlYW4uIElmIHRoZSByZXN1bHQgaXMgYSBudW1iZXIsIHRoZSByZXN1bHQgd2lsbAorICogYmUgY29udmVydGVkIHRvIHRydWUgaWYgdGhlIG51bWJlciBpcyBlcXVhbCB0byB0aGUgcG9zaXRpb24gb2YgdGhlCisgKiBjb250ZXh0IG5vZGUgaW4gdGhlIGNvbnRleHQgbm9kZSBsaXN0IChhcyByZXR1cm5lZCBieSB0aGUgcG9zaXRpb24KKyAqIGZ1bmN0aW9uKSBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gZmFsc2Ugb3RoZXJ3aXNlOyBpZiB0aGUgcmVzdWx0CisgKiBpcyBub3QgYSBudW1iZXIsIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlIGNvbnZlcnRlZCBhcyBpZiBieSBhIGNhbGwKKyAqIHRvIHRoZSBib29sZWFuIGZ1bmN0aW9uLgorICoKKyAqIFJldHVybnMgMSBpZiBwcmVkaWNhdGUgaXMgdHJ1ZSwgMCBvdGhlcndpc2UKKyAqLworaW50Cit4bWxYUGF0aEV2YWxQcmVkaWNhdGUoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoT2JqZWN0UHRyIHJlcykgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAocmVzID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgc3dpdGNoIChyZXMtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCSAgICByZXR1cm4ocmVzLT5ib29sdmFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisJICAgIHJldHVybihyZXMtPmZsb2F0dmFsID09IGN0eHQtPnByb3hpbWl0eVBvc2l0aW9uKTsKKyAgICAgICAgY2FzZSBYUEFUSF9OT0RFU0VUOgorICAgICAgICBjYXNlIFhQQVRIX1hTTFRfVFJFRToKKwkgICAgaWYgKHJlcy0+bm9kZXNldHZhbCA9PSBOVUxMKQorCQlyZXR1cm4oMCk7CisJICAgIHJldHVybihyZXMtPm5vZGVzZXR2YWwtPm5vZGVOciAhPSAwKTsKKyAgICAgICAgY2FzZSBYUEFUSF9TVFJJTkc6CisJICAgIHJldHVybigocmVzLT5zdHJpbmd2YWwgIT0gTlVMTCkgJiYKKwkgICAgICAgICAgICh4bWxTdHJsZW4ocmVzLT5zdHJpbmd2YWwpICE9IDApKTsKKyAgICAgICAgZGVmYXVsdDoKKwkgICAgU1RSQU5HRQorICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWFBhdGhFdmFsdWF0ZVByZWRpY2F0ZVJlc3VsdDoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKiBAcmVzOiAgdGhlIFByZWRpY2F0ZSBFeHByZXNzaW9uIGV2YWx1YXRpb24gcmVzdWx0CisgKgorICogRXZhbHVhdGUgYSBwcmVkaWNhdGUgcmVzdWx0IGZvciB0aGUgY3VycmVudCBub2RlLgorICogQSBQcmVkaWNhdGVFeHByIGlzIGV2YWx1YXRlZCBieSBldmFsdWF0aW5nIHRoZSBFeHByIGFuZCBjb252ZXJ0aW5nCisgKiB0aGUgcmVzdWx0IHRvIGEgYm9vbGVhbi4gSWYgdGhlIHJlc3VsdCBpcyBhIG51bWJlciwgdGhlIHJlc3VsdCB3aWxsCisgKiBiZSBjb252ZXJ0ZWQgdG8gdHJ1ZSBpZiB0aGUgbnVtYmVyIGlzIGVxdWFsIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUKKyAqIGNvbnRleHQgbm9kZSBpbiB0aGUgY29udGV4dCBub2RlIGxpc3QgKGFzIHJldHVybmVkIGJ5IHRoZSBwb3NpdGlvbgorICogZnVuY3Rpb24pIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBmYWxzZSBvdGhlcndpc2U7IGlmIHRoZSByZXN1bHQKKyAqIGlzIG5vdCBhIG51bWJlciwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgY29udmVydGVkIGFzIGlmIGJ5IGEgY2FsbAorICogdG8gdGhlIGJvb2xlYW4gZnVuY3Rpb24uCisgKgorICogUmV0dXJucyAxIGlmIHByZWRpY2F0ZSBpcyB0cnVlLCAwIG90aGVyd2lzZQorICovCitpbnQKK3htbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlcykgeworICAgIGlmICgoY3R4dCA9PSBOVUxMKSB8fCAocmVzID09IE5VTEwpKSByZXR1cm4oMCk7CisgICAgc3dpdGNoIChyZXMtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYUEFUSF9CT09MRUFOOgorCSAgICByZXR1cm4ocmVzLT5ib29sdmFsKTsKKyAgICAgICAgY2FzZSBYUEFUSF9OVU1CRVI6CisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pIHx8IChkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPT0gMTIwMCkpCisJICAgIHJldHVybigocmVzLT5mbG9hdHZhbCA9PSBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbikgJiYKKwkgICAgICAgICAgICgheG1sWFBhdGhJc05hTihyZXMtPmZsb2F0dmFsKSkpOyAvKiBNU0MgcGJtIE1hcmsgVmFrb2MgISovCisjZWxzZQorCSAgICByZXR1cm4ocmVzLT5mbG9hdHZhbCA9PSBjdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbik7CisjZW5kaWYKKyAgICAgICAgY2FzZSBYUEFUSF9OT0RFU0VUOgorICAgICAgICBjYXNlIFhQQVRIX1hTTFRfVFJFRToKKwkgICAgaWYgKHJlcy0+bm9kZXNldHZhbCA9PSBOVUxMKQorCQlyZXR1cm4oMCk7CisJICAgIHJldHVybihyZXMtPm5vZGVzZXR2YWwtPm5vZGVOciAhPSAwKTsKKyAgICAgICAgY2FzZSBYUEFUSF9TVFJJTkc6CisJICAgIHJldHVybigocmVzLT5zdHJpbmd2YWwgIT0gTlVMTCkgJiYgKHJlcy0+c3RyaW5ndmFsWzBdICE9IDApKTsKKyNpZmRlZiBMSUJYTUxfWFBUUl9FTkFCTEVECisJY2FzZSBYUEFUSF9MT0NBVElPTlNFVDp7CisJICAgIHhtbExvY2F0aW9uU2V0UHRyIHB0ciA9IHJlcy0+dXNlcjsKKwkgICAgaWYgKHB0ciA9PSBOVUxMKQorCSAgICAgICAgcmV0dXJuKDApOworCSAgICByZXR1cm4gKHB0ci0+bG9jTnIgIT0gMCk7CisJICAgIH0KKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorCSAgICBTVFJBTkdFCisgICAgfQorICAgIHJldHVybigwKTsKK30KKworI2lmZGVmIFhQQVRIX1NUUkVBTUlORworLyoqCisgKiB4bWxYUGF0aFRyeVN0cmVhbUNvbXBpbGU6CisgKiBAY3R4dDogYW4gWFBhdGggY29udGV4dAorICogQHN0cjogIHRoZSBYUGF0aCBleHByZXNzaW9uCisgKgorICogVHJ5IHRvIGNvbXBpbGUgdGhlIFhQYXRoIGV4cHJlc3Npb24gYXMgYSBzdHJlYW1hYmxlIHN1YnNldC4KKyAqCisgKiBSZXR1cm5zIHRoZSBjb21waWxlZCBleHByZXNzaW9uIG9yIE5VTEwgaWYgZmFpbGVkIHRvIGNvbXBpbGUuCisgKi8KK3N0YXRpYyB4bWxYUGF0aENvbXBFeHByUHRyCit4bWxYUGF0aFRyeVN0cmVhbUNvbXBpbGUoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsIGNvbnN0IHhtbENoYXIgKnN0cikgeworICAgIC8qCisgICAgICogT3B0aW1pemF0aW9uOiB1c2Ugc3RyZWFtaW5nIHBhdHRlcm5zIHdoZW4gdGhlIFhQYXRoIGV4cHJlc3Npb24gY2FuCisgICAgICogYmUgY29tcGlsZWQgdG8gYSBzdHJlYW0gbG9va3VwCisgICAgICovCisgICAgeG1sUGF0dGVyblB0ciBzdHJlYW07CisgICAgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wOworICAgIHhtbERpY3RQdHIgZGljdCA9IE5VTEw7CisgICAgY29uc3QgeG1sQ2hhciAqKm5hbWVzcGFjZXMgPSBOVUxMOworICAgIHhtbE5zUHRyIG5zOworICAgIGludCBpLCBqOworCisgICAgaWYgKCgheG1sU3RyY2hyKHN0ciwgJ1snKSkgJiYgKCF4bWxTdHJjaHIoc3RyLCAnKCcpKSAmJgorICAgICAgICAoIXhtbFN0cmNocihzdHIsICdAJykpKSB7CisJY29uc3QgeG1sQ2hhciAqdG1wOworCisJLyoKKwkgKiBXZSBkb24ndCB0cnkgdG8gaGFuZGxlIGV4cHJlc3Npb25zIHVzaW5nIHRoZSB2ZXJib3NlIGF4aXMKKwkgKiBzcGVjaWZpZXJzICgiOjoiKSwganVzdCB0aGUgc2ltcGxpZWQgZm9ybSBhdCB0aGlzIHBvaW50LgorCSAqIEFkZGl0aW9uYWxseSwgaWYgdGhlcmUgaXMgbm8gbGlzdCBvZiBuYW1lc3BhY2VzIGF2YWlsYWJsZSBhbmQKKwkgKiAgdGhlcmUncyBhICI6IiBpbiB0aGUgZXhwcmVzc2lvbiwgaW5kaWNhdGluZyBhIHByZWZpeGVkIFFOYW1lLAorCSAqICB0aGVuIHdlIHdvbid0IHRyeSB0byBjb21waWxlIGVpdGhlci4geG1sUGF0dGVybmNvbXBpbGUoKSBuZWVkcworCSAqICB0byBoYXZlIGEgbGlzdCBvZiBuYW1lc3BhY2VzIGF0IGNvbXBpbGF0aW9uIHRpbWUgaW4gb3JkZXIgdG8KKwkgKiAgY29tcGlsZSBwcmVmaXhlZCBuYW1lIHRlc3RzLgorCSAqLworCXRtcCA9IHhtbFN0cmNocihzdHIsICc6Jyk7CisJaWYgKCh0bXAgIT0gTlVMTCkgJiYKKwkgICAgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5uc05yID09IDApIHx8ICh0bXBbMV0gPT0gJzonKSkpCisJICAgIHJldHVybihOVUxMKTsKKworCWlmIChjdHh0ICE9IE5VTEwpIHsKKwkgICAgZGljdCA9IGN0eHQtPmRpY3Q7CisJICAgIGlmIChjdHh0LT5uc05yID4gMCkgeworCQluYW1lc3BhY2VzID0geG1sTWFsbG9jKDIgKiAoY3R4dC0+bnNOciArIDEpICogc2l6ZW9mKHhtbENoYXIqKSk7CisJCWlmIChuYW1lc3BhY2VzID09IE5VTEwpIHsKKwkJICAgIHhtbFhQYXRoRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIG5hbWVzcGFjZXMgYXJyYXlcbiIpOworCQkgICAgcmV0dXJuKE5VTEwpOworCQl9CisJCWZvciAoaSA9IDAsIGogPSAwOyAoaiA8IGN0eHQtPm5zTnIpOyBqKyspIHsKKwkJICAgIG5zID0gY3R4dC0+bmFtZXNwYWNlc1tqXTsKKwkJICAgIG5hbWVzcGFjZXNbaSsrXSA9IG5zLT5ocmVmOworCQkgICAgbmFtZXNwYWNlc1tpKytdID0gbnMtPnByZWZpeDsKKwkJfQorCQluYW1lc3BhY2VzW2krK10gPSBOVUxMOworCQluYW1lc3BhY2VzW2ldID0gTlVMTDsKKwkgICAgfQorCX0KKworCXN0cmVhbSA9IHhtbFBhdHRlcm5jb21waWxlKHN0ciwgZGljdCwgWE1MX1BBVFRFUk5fWFBBVEgsCisJCQkmbmFtZXNwYWNlc1swXSk7CisJaWYgKG5hbWVzcGFjZXMgIT0gTlVMTCkgeworCSAgICB4bWxGcmVlKCh4bWxDaGFyICoqKW5hbWVzcGFjZXMpOworCX0KKwlpZiAoKHN0cmVhbSAhPSBOVUxMKSAmJiAoeG1sUGF0dGVyblN0cmVhbWFibGUoc3RyZWFtKSA9PSAxKSkgeworCSAgICBjb21wID0geG1sWFBhdGhOZXdDb21wRXhwcigpOworCSAgICBpZiAoY29tcCA9PSBOVUxMKSB7CisJCXhtbFhQYXRoRXJyTWVtb3J5KGN0eHQsICJhbGxvY2F0aW5nIHN0cmVhbWFibGUgZXhwcmVzc2lvblxuIik7CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorCSAgICBjb21wLT5zdHJlYW0gPSBzdHJlYW07CisJICAgIGNvbXAtPmRpY3QgPSBkaWN0OworCSAgICBpZiAoY29tcC0+ZGljdCkKKwkJeG1sRGljdFJlZmVyZW5jZShjb21wLT5kaWN0KTsKKwkgICAgcmV0dXJuKGNvbXApOworCX0KKwl4bWxGcmVlUGF0dGVybihzdHJlYW0pOworICAgIH0KKyAgICByZXR1cm4oTlVMTCk7Cit9CisjZW5kaWYgLyogWFBBVEhfU1RSRUFNSU5HICovCisKK3N0YXRpYyBpbnQKK3htbFhQYXRoQ2FuUmV3cml0ZURvc0V4cHJlc3Npb24oeG1sQ2hhciAqZXhwcikKK3sKKyAgICBpZiAoZXhwciA9PSBOVUxMKQorCXJldHVybigwKTsKKyAgICBkbyB7CisgICAgICAgIGlmICgoKmV4cHIgPT0gJy8nKSAmJiAoKigrK2V4cHIpID09ICcvJykpCisJICAgIHJldHVybigxKTsKKyAgICB9IHdoaWxlICgqZXhwcisrKTsKKyAgICByZXR1cm4oMCk7Cit9CitzdGF0aWMgdm9pZAoreG1sWFBhdGhSZXdyaXRlRE9TRXhwcmVzc2lvbih4bWxYUGF0aENvbXBFeHByUHRyIGNvbXAsIHhtbFhQYXRoU3RlcE9wUHRyIG9wKQoreworICAgIC8qCisgICAgKiBUcnkgdG8gcmV3cml0ZSAiZGVzY2VuZGFudC1vci1zZWxmOjpub2RlKCkvZm9vIiB0byBhbiBvcHRpbWl6ZWQKKyAgICAqIGludGVybmFsIHJlcHJlc2VudGF0aW9uLgorICAgICovCisgICAgaWYgKG9wLT5jaDEgIT0gLTEpIHsKKwlpZiAoKG9wLT5vcCA9PSBYUEFUSF9PUF9DT0xMRUNUIC8qIDExICovKSAmJgorCSAgICAoKHhtbFhQYXRoQXhpc1ZhbCkgb3AtPnZhbHVlID09IEFYSVNfQ0hJTEQgLyogNCAqLykgJiYKKwkgICAgKCh4bWxYUGF0aFRlc3RWYWwpIG9wLT52YWx1ZTIgPT0gTk9ERV9URVNUX05BTUUgLyogNSAqLykgJiYKKwkgICAgKCh4bWxYUGF0aFR5cGVWYWwpIG9wLT52YWx1ZTMgPT0gTk9ERV9UWVBFX05PREUgLyogMCAqLykpCisJeworCSAgICAvKgorCSAgICAqIFRoaXMgaXMgYSAiY2hpbGQ6OmZvbyIKKwkgICAgKi8KKwkgICAgeG1sWFBhdGhTdGVwT3BQdHIgcHJldm9wID0gJmNvbXAtPnN0ZXBzW29wLT5jaDFdOworCisJICAgIGlmICgocHJldm9wLT5vcCA9PSBYUEFUSF9PUF9DT0xMRUNUIC8qIDExICovKSAmJgorCQkocHJldm9wLT5jaDEgIT0gLTEpICYmCisJCSgoeG1sWFBhdGhBeGlzVmFsKSBwcmV2b3AtPnZhbHVlID09CisJCSAgICBBWElTX0RFU0NFTkRBTlRfT1JfU0VMRikgJiYKKwkJKHByZXZvcC0+Y2gyID09IC0xKSAmJgorCQkoKHhtbFhQYXRoVGVzdFZhbCkgcHJldm9wLT52YWx1ZTIgPT0gTk9ERV9URVNUX1RZUEUpICYmCisJCSgoeG1sWFBhdGhUeXBlVmFsKSBwcmV2b3AtPnZhbHVlMyA9PSBOT0RFX1RZUEVfTk9ERSkgJiYKKwkJKGNvbXAtPnN0ZXBzW3ByZXZvcC0+Y2gxXS5vcCA9PSBYUEFUSF9PUF9ST09UKSkKKwkgICAgeworCQkvKgorCQkqIFRoaXMgaXMgYSAiL2Rlc2NlbmRhbnQtb3Itc2VsZjo6bm9kZSgpIiB3aXRob3V0IHByZWRpY2F0ZXMuCisJCSogRWxpbWluYXRlIGl0LgorCQkqLworCQlvcC0+Y2gxID0gcHJldm9wLT5jaDE7CisJCW9wLT5yZXdyaXRlVHlwZSA9IFhQX1JFV1JJVEVfRE9TX0NISUxEX0VMRU07CisJICAgIH0KKwl9CisJaWYgKG9wLT5jaDEgIT0gLTEpCisJICAgIHhtbFhQYXRoUmV3cml0ZURPU0V4cHJlc3Npb24oY29tcCwgJmNvbXAtPnN0ZXBzW29wLT5jaDFdKTsKKyAgICB9CisgICAgaWYgKG9wLT5jaDIgIT0gLTEpCisJeG1sWFBhdGhSZXdyaXRlRE9TRXhwcmVzc2lvbihjb21wLCAmY29tcC0+c3RlcHNbb3AtPmNoMl0pOworfQorCisvKioKKyAqIHhtbFhQYXRoQ3R4dENvbXBpbGU6CisgKiBAY3R4dDogYW4gWFBhdGggY29udGV4dAorICogQHN0cjogIHRoZSBYUGF0aCBleHByZXNzaW9uCisgKgorICogQ29tcGlsZSBhbiBYUGF0aCBleHByZXNzaW9uCisgKgorICogUmV0dXJucyB0aGUgeG1sWFBhdGhDb21wRXhwclB0ciByZXN1bHRpbmcgZnJvbSB0aGUgY29tcGlsYXRpb24gb3IgTlVMTC4KKyAqICAgICAgICAgdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LgorICovCit4bWxYUGF0aENvbXBFeHByUHRyCit4bWxYUGF0aEN0eHRDb21waWxlKHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0LCBjb25zdCB4bWxDaGFyICpzdHIpIHsKKyAgICB4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgcGN0eHQ7CisgICAgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wOworCisjaWZkZWYgWFBBVEhfU1RSRUFNSU5HCisgICAgY29tcCA9IHhtbFhQYXRoVHJ5U3RyZWFtQ29tcGlsZShjdHh0LCBzdHIpOworICAgIGlmIChjb21wICE9IE5VTEwpCisgICAgICAgIHJldHVybihjb21wKTsKKyNlbmRpZgorCisgICAgeG1sWFBhdGhJbml0KCk7CisKKyAgICBwY3R4dCA9IHhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dChzdHIsIGN0eHQpOworICAgIGlmIChwY3R4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB4bWxYUGF0aENvbXBpbGVFeHByKHBjdHh0LCAxKTsKKworICAgIGlmKCBwY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSyApCisgICAgeworICAgICAgICB4bWxYUGF0aEZyZWVQYXJzZXJDb250ZXh0KHBjdHh0KTsKKyAgICAgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIGlmICgqcGN0eHQtPmN1ciAhPSAwKSB7CisJLyoKKwkgKiBhbGVrc2V5OiBpbiBzb21lIGNhc2VzIHRoaXMgbGluZSBwcmludHMgKnNlY29uZCogZXJyb3IgbWVzc2FnZQorCSAqIChzZWUgYnVnICM3ODg1OCkgYW5kIHByb2JhYmx5IHRoaXMgc2hvdWxkIGJlIGZpeGVkLgorCSAqIEhvd2V2ZXIsIHdlIGFyZSBub3Qgc3VyZSB0aGF0IGFsbCBlcnJvciBtZXNzYWdlcyBhcmUgcHJpbnRlZAorCSAqIG91dCBpbiBvdGhlciBwbGFjZXMuIEl0J3Mgbm90IGNyaXRpY2FsIHNvIHdlIGxlYXZlIGl0IGFzLWlzIGZvciBub3cKKwkgKi8KKwl4bWxYUGF0aGVycm9yKHBjdHh0LCBfX0ZJTEVfXywgX19MSU5FX18sIFhQQVRIX0VYUFJfRVJST1IpOworCWNvbXAgPSBOVUxMOworICAgIH0gZWxzZSB7CisJY29tcCA9IHBjdHh0LT5jb21wOworCXBjdHh0LT5jb21wID0gTlVMTDsKKyAgICB9CisgICAgeG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dChwY3R4dCk7CisKKyAgICBpZiAoY29tcCAhPSBOVUxMKSB7CisJY29tcC0+ZXhwciA9IHhtbFN0cmR1cChzdHIpOworI2lmZGVmIERFQlVHX0VWQUxfQ09VTlRTCisJY29tcC0+c3RyaW5nID0geG1sU3RyZHVwKHN0cik7CisJY29tcC0+bmIgPSAwOworI2VuZGlmCisJaWYgKChjb21wLT5leHByICE9IE5VTEwpICYmCisJICAgIChjb21wLT5uYlN0ZXAgPiAyKSAmJgorCSAgICAoY29tcC0+bGFzdCA+PSAwKSAmJgorCSAgICAoeG1sWFBhdGhDYW5SZXdyaXRlRG9zRXhwcmVzc2lvbihjb21wLT5leHByKSA9PSAxKSkKKwl7CisJICAgIHhtbFhQYXRoUmV3cml0ZURPU0V4cHJlc3Npb24oY29tcCwgJmNvbXAtPnN0ZXBzW2NvbXAtPmxhc3RdKTsKKwl9CisgICAgfQorICAgIHJldHVybihjb21wKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBpbGU6CisgKiBAc3RyOiAgdGhlIFhQYXRoIGV4cHJlc3Npb24KKyAqCisgKiBDb21waWxlIGFuIFhQYXRoIGV4cHJlc3Npb24KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxYUGF0aENvbXBFeHByUHRyIHJlc3VsdGluZyBmcm9tIHRoZSBjb21waWxhdGlvbiBvciBOVUxMLgorICogICAgICAgICB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuCisgKi8KK3htbFhQYXRoQ29tcEV4cHJQdHIKK3htbFhQYXRoQ29tcGlsZShjb25zdCB4bWxDaGFyICpzdHIpIHsKKyAgICByZXR1cm4oeG1sWFBhdGhDdHh0Q29tcGlsZShOVUxMLCBzdHIpKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBpbGVkRXZhbEludGVybmFsOgorICogQGNvbXA6ICB0aGUgY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICogQHJlc09iajogdGhlIHJlc3VsdGluZyBYUGF0aCBvYmplY3Qgb3IgTlVMTAorICogQHRvQm9vbDogMSBpZiBvbmx5IGEgYm9vbGVhbiByZXN1bHQgaXMgcmVxdWVzdGVkCisgKgorICogRXZhbHVhdGUgdGhlIFByZWNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGdpdmVuIGNvbnRleHQuCisgKiBUaGUgY2FsbGVyIGhhcyB0byBmcmVlIEByZXNPYmouCisgKgorICogUmV0dXJucyB0aGUgeG1sWFBhdGhPYmplY3RQdHIgcmVzdWx0aW5nIGZyb20gdGhlIGV2YWx1YXRpb24gb3IgTlVMTC4KKyAqICAgICAgICAgdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LgorICovCitzdGF0aWMgaW50Cit4bWxYUGF0aENvbXBpbGVkRXZhbEludGVybmFsKHhtbFhQYXRoQ29tcEV4cHJQdHIgY29tcCwKKwkJCSAgICAgeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQsCisJCQkgICAgIHhtbFhQYXRoT2JqZWN0UHRyICpyZXNPYmosCisJCQkgICAgIGludCB0b0Jvb2wpCit7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIHBjdHh0OworI2lmbmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyAgICBzdGF0aWMgaW50IHJlZW50YW5jZSA9IDA7CisjZW5kaWYKKyAgICBpbnQgcmVzOworCisgICAgQ0hFQ0tfQ1RYVF9ORUcoY3R4dCkKKworICAgIGlmIChjb21wID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICB4bWxYUGF0aEluaXQoKTsKKworI2lmbmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyAgICByZWVudGFuY2UrKzsKKyAgICBpZiAocmVlbnRhbmNlID4gMSkKKwl4bWxYUGF0aERpc2FibGVPcHRpbWl6ZXIgPSAxOworI2VuZGlmCisKKyNpZmRlZiBERUJVR19FVkFMX0NPVU5UUworICAgIGNvbXAtPm5iKys7CisgICAgaWYgKChjb21wLT5zdHJpbmcgIT0gTlVMTCkgJiYgKGNvbXAtPm5iID4gMTAwKSkgeworCWZwcmludGYoc3RkZXJyLCAiMTAwIHggJXNcbiIsIGNvbXAtPnN0cmluZyk7CisJY29tcC0+bmIgPSAwOworICAgIH0KKyNlbmRpZgorICAgIHBjdHh0ID0geG1sWFBhdGhDb21wUGFyc2VyQ29udGV4dChjb21wLCBjdHh0KTsKKyAgICByZXMgPSB4bWxYUGF0aFJ1bkV2YWwocGN0eHQsIHRvQm9vbCk7CisKKyAgICBpZiAocmVzT2JqKSB7CisJaWYgKHBjdHh0LT52YWx1ZSA9PSBOVUxMKSB7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sWFBhdGhDb21waWxlZEV2YWw6IGV2YWx1YXRpb24gZmFpbGVkXG4iKTsKKwkgICAgKnJlc09iaiA9IE5VTEw7CisJfSBlbHNlIHsKKwkgICAgKnJlc09iaiA9IHZhbHVlUG9wKHBjdHh0KTsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAqIFBvcCBhbGwgcmVtYWluaW5nIG9iamVjdHMgZnJvbSB0aGUgc3RhY2suCisgICAgKi8KKyAgICBpZiAocGN0eHQtPnZhbHVlTnIgPiAwKSB7CisJeG1sWFBhdGhPYmplY3RQdHIgdG1wOworCWludCBzdGFjayA9IDA7CisKKwlkbyB7CisJICAgIHRtcCA9IHZhbHVlUG9wKHBjdHh0KTsKKwkgICAgaWYgKHRtcCAhPSBOVUxMKSB7CisJCXN0YWNrKys7CisJCXhtbFhQYXRoUmVsZWFzZU9iamVjdChjdHh0LCB0bXApOworCSAgICB9CisJfSB3aGlsZSAodG1wICE9IE5VTEwpOworCWlmICgoc3RhY2sgIT0gMCkgJiYKKwkgICAgKCh0b0Jvb2wpIHx8ICgocmVzT2JqKSAmJiAoKnJlc09iaikpKSkKKwl7CisJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sWFBhdGhDb21waWxlZEV2YWw6ICVkIG9iamVjdHMgbGVmdCBvbiB0aGUgc3RhY2suXG4iLAorCQlzdGFjayk7CisJfQorICAgIH0KKworICAgIGlmICgocGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spICYmIChyZXNPYmopICYmICgqcmVzT2JqKSkgeworCXhtbFhQYXRoRnJlZU9iamVjdCgqcmVzT2JqKTsKKwkqcmVzT2JqID0gTlVMTDsKKyAgICB9CisgICAgcGN0eHQtPmNvbXAgPSBOVUxMOworICAgIHhtbFhQYXRoRnJlZVBhcnNlckNvbnRleHQocGN0eHQpOworI2lmbmRlZiBMSUJYTUxfVEhSRUFEX0VOQUJMRUQKKyAgICByZWVudGFuY2UtLTsKKyNlbmRpZgorCisgICAgcmV0dXJuKHJlcyk7Cit9CisKKy8qKgorICogeG1sWFBhdGhDb21waWxlZEV2YWw6CisgKiBAY29tcDogIHRoZSBjb21waWxlZCBYUGF0aCBleHByZXNzaW9uCisgKiBAY3R4OiAgdGhlIFhQYXRoIGNvbnRleHQKKyAqCisgKiBFdmFsdWF0ZSB0aGUgUHJlY29tcGlsZWQgWFBhdGggZXhwcmVzc2lvbiBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KKyAqCisgKiBSZXR1cm5zIHRoZSB4bWxYUGF0aE9iamVjdFB0ciByZXN1bHRpbmcgZnJvbSB0aGUgZXZhbHVhdGlvbiBvciBOVUxMLgorICogICAgICAgICB0aGUgY2FsbGVyIGhhcyB0byBmcmVlIHRoZSBvYmplY3QuCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUGF0aENvbXBpbGVkRXZhbCh4bWxYUGF0aENvbXBFeHByUHRyIGNvbXAsIHhtbFhQYXRoQ29udGV4dFB0ciBjdHgpCit7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzID0gTlVMTDsKKworICAgIHhtbFhQYXRoQ29tcGlsZWRFdmFsSW50ZXJuYWwoY29tcCwgY3R4LCAmcmVzLCAwKTsKKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqCisgKiB4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbjoKKyAqIEBjb21wOiAgdGhlIGNvbXBpbGVkIFhQYXRoIGV4cHJlc3Npb24KKyAqIEBjdHh0OiAgdGhlIFhQYXRoIGNvbnRleHQKKyAqCisgKiBBcHBsaWVzIHRoZSBYUGF0aCBib29sZWFuKCkgZnVuY3Rpb24gb24gdGhlIHJlc3VsdCBvZiB0aGUgZ2l2ZW4KKyAqIGNvbXBpbGVkIGV4cHJlc3Npb24uCisgKgorICogUmV0dXJucyAxIGlmIHRoZSBleHByZXNzaW9uIGV2YWx1YXRlZCB0byB0cnVlLCAwIGlmIHRvIGZhbHNlIGFuZAorICogICAgICAgICAtMSBpbiBBUEkgYW5kIGludGVybmFsIGVycm9ycy4KKyAqLworaW50Cit4bWxYUGF0aENvbXBpbGVkRXZhbFRvQm9vbGVhbih4bWxYUGF0aENvbXBFeHByUHRyIGNvbXAsCisJCQkgICAgICB4bWxYUGF0aENvbnRleHRQdHIgY3R4dCkKK3sKKyAgICByZXR1cm4oeG1sWFBhdGhDb21waWxlZEV2YWxJbnRlcm5hbChjb21wLCBjdHh0LCBOVUxMLCAxKSk7Cit9CisKKy8qKgorICogeG1sWFBhdGhFdmFsRXhwcjoKKyAqIEBjdHh0OiAgdGhlIFhQYXRoIFBhcnNlciBjb250ZXh0CisgKgorICogUGFyc2UgYW5kIGV2YWx1YXRlIGFuIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGdpdmVuIGNvbnRleHQsCisgKiB0aGVuIHB1c2ggdGhlIHJlc3VsdCBvbiB0aGUgY29udGV4dCBzdGFjaworICovCit2b2lkCit4bWxYUGF0aEV2YWxFeHByKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0KSB7CisjaWZkZWYgWFBBVEhfU1RSRUFNSU5HCisgICAgeG1sWFBhdGhDb21wRXhwclB0ciBjb21wOworI2VuZGlmCisKKyAgICBpZiAoY3R4dCA9PSBOVUxMKSByZXR1cm47CisKKyNpZmRlZiBYUEFUSF9TVFJFQU1JTkcKKyAgICBjb21wID0geG1sWFBhdGhUcnlTdHJlYW1Db21waWxlKGN0eHQtPmNvbnRleHQsIGN0eHQtPmJhc2UpOworICAgIGlmIChjb21wICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGN0eHQtPmNvbXAgIT0gTlVMTCkKKwkgICAgeG1sWFBhdGhGcmVlQ29tcEV4cHIoY3R4dC0+Y29tcCk7CisgICAgICAgIGN0eHQtPmNvbXAgPSBjb21wOworCWlmIChjdHh0LT5jdXIgIT0gTlVMTCkKKwkgICAgd2hpbGUgKCpjdHh0LT5jdXIgIT0gMCkgY3R4dC0+Y3VyKys7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisJeG1sWFBhdGhDb21waWxlRXhwcihjdHh0LCAxKTsKKwkvKgorCSogSW4gdGhpcyBzY2VuYXJpbyB0aGUgZXhwcmVzc2lvbiBzdHJpbmcgd2lsbCBzaXQgaW4gY3R4dC0+YmFzZS4KKwkqLworCWlmICgoY3R4dC0+ZXJyb3IgPT0gWFBBVEhfRVhQUkVTU0lPTl9PSykgJiYKKwkgICAgKGN0eHQtPmNvbXAgIT0gTlVMTCkgJiYKKwkgICAgKGN0eHQtPmJhc2UgIT0gTlVMTCkgJiYKKwkgICAgKGN0eHQtPmNvbXAtPm5iU3RlcCA+IDIpICYmCisJICAgIChjdHh0LT5jb21wLT5sYXN0ID49IDApICYmCisJICAgICh4bWxYUGF0aENhblJld3JpdGVEb3NFeHByZXNzaW9uKCh4bWxDaGFyICopIGN0eHQtPmJhc2UpID09IDEpKQorCXsKKwkgICAgeG1sWFBhdGhSZXdyaXRlRE9TRXhwcmVzc2lvbihjdHh0LT5jb21wLAorCQkmY3R4dC0+Y29tcC0+c3RlcHNbY3R4dC0+Y29tcC0+bGFzdF0pOworCX0KKyAgICB9CisgICAgQ0hFQ0tfRVJST1I7CisgICAgeG1sWFBhdGhSdW5FdmFsKGN0eHQsIDApOworfQorCisvKioKKyAqIHhtbFhQYXRoRXZhbDoKKyAqIEBzdHI6ICB0aGUgWFBhdGggZXhwcmVzc2lvbgorICogQGN0eDogIHRoZSBYUGF0aCBjb250ZXh0CisgKgorICogRXZhbHVhdGUgdGhlIFhQYXRoIExvY2F0aW9uIFBhdGggaW4gdGhlIGdpdmVuIGNvbnRleHQuCisgKgorICogUmV0dXJucyB0aGUgeG1sWFBhdGhPYmplY3RQdHIgcmVzdWx0aW5nIGZyb20gdGhlIGV2YWx1YXRpb24gb3IgTlVMTC4KKyAqICAgICAgICAgdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhFdmFsKGNvbnN0IHhtbENoYXIgKnN0ciwgeG1sWFBhdGhDb250ZXh0UHRyIGN0eCkgeworICAgIHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0OworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlcywgdG1wLCBpbml0ID0gTlVMTDsKKyAgICBpbnQgc3RhY2sgPSAwOworCisgICAgQ0hFQ0tfQ1RYVChjdHgpCisKKyAgICB4bWxYUGF0aEluaXQoKTsKKworICAgIGN0eHQgPSB4bWxYUGF0aE5ld1BhcnNlckNvbnRleHQoc3RyLCBjdHgpOworICAgIGlmIChjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHhtbFhQYXRoRXZhbEV4cHIoY3R4dCk7CisKKyAgICBpZiAoY3R4dC0+dmFsdWUgPT0gTlVMTCkgeworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkieG1sWFBhdGhFdmFsOiBldmFsdWF0aW9uIGZhaWxlZFxuIik7CisJcmVzID0gTlVMTDsKKyAgICB9IGVsc2UgaWYgKCgqY3R4dC0+Y3VyICE9IDApICYmIChjdHh0LT5jb21wICE9IE5VTEwpCisjaWZkZWYgWFBBVEhfU1RSRUFNSU5HCisgICAgICAgICAgICAmJiAoY3R4dC0+Y29tcC0+c3RyZWFtID09IE5VTEwpCisjZW5kaWYKKwkgICAgICApIHsKKwl4bWxYUGF0aGVycm9yKGN0eHQsIF9fRklMRV9fLCBfX0xJTkVfXywgWFBBVEhfRVhQUl9FUlJPUik7CisJcmVzID0gTlVMTDsKKyAgICB9IGVsc2UgeworCXJlcyA9IHZhbHVlUG9wKGN0eHQpOworICAgIH0KKworICAgIGRvIHsKKyAgICAgICAgdG1wID0gdmFsdWVQb3AoY3R4dCk7CisJaWYgKHRtcCAhPSBOVUxMKSB7CisJICAgIGlmICh0bXAgIT0gaW5pdCkKKwkJc3RhY2srKzsKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eCwgdG1wKTsKKyAgICAgICAgfQorICAgIH0gd2hpbGUgKHRtcCAhPSBOVUxMKTsKKyAgICBpZiAoKHN0YWNrICE9IDApICYmIChyZXMgIT0gTlVMTCkpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbFhQYXRoRXZhbDogJWQgb2JqZWN0IGxlZnQgb24gdGhlIHN0YWNrXG4iLAorCSAgICAgICAgc3RhY2spOworICAgIH0KKyAgICBpZiAoY3R4dC0+ZXJyb3IgIT0gWFBBVEhfRVhQUkVTU0lPTl9PSykgeworCXhtbFhQYXRoRnJlZU9iamVjdChyZXMpOworCXJlcyA9IE5VTEw7CisgICAgfQorCisgICAgeG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dChjdHh0KTsKKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqCisgKiB4bWxYUGF0aEV2YWxFeHByZXNzaW9uOgorICogQHN0cjogIHRoZSBYUGF0aCBleHByZXNzaW9uCisgKiBAY3R4dDogIHRoZSBYUGF0aCBjb250ZXh0CisgKgorICogRXZhbHVhdGUgdGhlIFhQYXRoIGV4cHJlc3Npb24gaW4gdGhlIGdpdmVuIGNvbnRleHQuCisgKgorICogUmV0dXJucyB0aGUgeG1sWFBhdGhPYmplY3RQdHIgcmVzdWx0aW5nIGZyb20gdGhlIGV2YWx1YXRpb24gb3IgTlVMTC4KKyAqICAgICAgICAgdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFBhdGhFdmFsRXhwcmVzc2lvbihjb25zdCB4bWxDaGFyICpzdHIsIHhtbFhQYXRoQ29udGV4dFB0ciBjdHh0KSB7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIHBjdHh0OworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJlcywgdG1wOworICAgIGludCBzdGFjayA9IDA7CisKKyAgICBDSEVDS19DVFhUKGN0eHQpCisKKyAgICB4bWxYUGF0aEluaXQoKTsKKworICAgIHBjdHh0ID0geG1sWFBhdGhOZXdQYXJzZXJDb250ZXh0KHN0ciwgY3R4dCk7CisgICAgaWYgKHBjdHh0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHhtbFhQYXRoRXZhbEV4cHIocGN0eHQpOworCisgICAgaWYgKCgqcGN0eHQtPmN1ciAhPSAwKSB8fCAocGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spKSB7CisJeG1sWFBhdGhlcnJvcihwY3R4dCwgX19GSUxFX18sIF9fTElORV9fLCBYUEFUSF9FWFBSX0VSUk9SKTsKKwlyZXMgPSBOVUxMOworICAgIH0gZWxzZSB7CisJcmVzID0gdmFsdWVQb3AocGN0eHQpOworICAgIH0KKyAgICBkbyB7CisgICAgICAgIHRtcCA9IHZhbHVlUG9wKHBjdHh0KTsKKwlpZiAodG1wICE9IE5VTEwpIHsKKwkgICAgeG1sWFBhdGhSZWxlYXNlT2JqZWN0KGN0eHQsIHRtcCk7CisJICAgIHN0YWNrKys7CisJfQorICAgIH0gd2hpbGUgKHRtcCAhPSBOVUxMKTsKKyAgICBpZiAoKHN0YWNrICE9IDApICYmIChyZXMgIT0gTlVMTCkpIHsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJInhtbFhQYXRoRXZhbEV4cHJlc3Npb246ICVkIG9iamVjdCBsZWZ0IG9uIHRoZSBzdGFja1xuIiwKKwkgICAgICAgIHN0YWNrKTsKKyAgICB9CisgICAgeG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dChwY3R4dCk7CisgICAgcmV0dXJuKHJlcyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJRXh0cmEgZnVuY3Rpb25zIG5vdCBwZXJ0YWluaW5nIHRvIHRoZSBYUGF0aCBzcGVjCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioKKyAqIHhtbFhQYXRoRXNjYXBlVXJpRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUGF0aCBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMKKyAqCisgKiBJbXBsZW1lbnQgdGhlIGVzY2FwZS11cmkoKSBYUGF0aCBmdW5jdGlvbgorICogICAgc3RyaW5nIGVzY2FwZS11cmkoc3RyaW5nICRzdHIsIGJvb2wgJGVzY2FwZS1yZXNlcnZlZCkKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgdGhlIFVSSSBlc2NhcGluZyBydWxlcyBkZWZpbmVkIGluIHNlY3Rpb24gMiBvZiBbUkZDCisgKiAyMzk2XSB0byB0aGUgc3RyaW5nIHN1cHBsaWVkIGFzICR1cmktcGFydCwgd2hpY2ggdHlwaWNhbGx5IHJlcHJlc2VudHMgYWxsCisgKiBvciBwYXJ0IG9mIGEgVVJJLiBUaGUgZWZmZWN0IG9mIHRoZSBmdW5jdGlvbiBpcyB0byByZXBsYWNlIGFueSBzcGVjaWFsCisgKiBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZyBieSBhbiBlc2NhcGUgc2VxdWVuY2Ugb2YgdGhlIGZvcm0gJXh4JXl5Li4uLAorICogd2hlcmUgeHh5eS4uLiBpcyB0aGUgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9jdGV0cyB1c2VkIHRvCisgKiByZXByZXNlbnQgdGhlIGNoYXJhY3RlciBpbiBVVEYtOC4KKyAqCisgKiBUaGUgc2V0IG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgZXNjYXBlZCBkZXBlbmRzIG9uIHRoZSBzZXR0aW5nIG9mIHRoZQorICogYm9vbGVhbiBhcmd1bWVudCAkZXNjYXBlLXJlc2VydmVkLgorICoKKyAqIElmICRlc2NhcGUtcmVzZXJ2ZWQgaXMgdHJ1ZSwgYWxsIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQgb3RoZXIgdGhhbiBsb3dlcgorICogY2FzZSBsZXR0ZXJzIGEteiwgdXBwZXIgY2FzZSBsZXR0ZXJzIEEtWiwgZGlnaXRzIDAtOSwgYW5kIHRoZSBjaGFyYWN0ZXJzCisgKiByZWZlcnJlZCB0byBpbiBbUkZDIDIzOTZdIGFzICJtYXJrcyI6IHNwZWNpZmljYWxseSwgIi0iIHwgIl8iIHwgIi4iIHwgIiEiCisgKiB8ICJ+IiB8ICIqIiB8ICInIiB8ICIoIiB8ICIpIi4gVGhlICIlIiBjaGFyYWN0ZXIgaXRzZWxmIGlzIGVzY2FwZWQgb25seQorICogaWYgaXQgaXMgbm90IGZvbGxvd2VkIGJ5IHR3byBoZXhhZGVjaW1hbCBkaWdpdHMgKHRoYXQgaXMsIDAtOSwgYS1mLCBhbmQKKyAqIEEtRikuCisgKgorICogSWYgJGVzY2FwZS1yZXNlcnZlZCBpcyBmYWxzZSwgdGhlIGJlaGF2aW9yIGRpZmZlcnMgaW4gdGhhdCBjaGFyYWN0ZXJzCisgKiByZWZlcnJlZCB0byBpbiBbUkZDIDIzOTZdIGFzIHJlc2VydmVkIGNoYXJhY3RlcnMgYXJlIG5vdCBlc2NhcGVkLiBUaGVzZQorICogY2hhcmFjdGVycyBhcmUgIjsiIHwgIi8iIHwgIj8iIHwgIjoiIHwgIkAiIHwgIiYiIHwgIj0iIHwgIisiIHwgIiQiIHwgIiwiLgorICoKKyAqIFtSRkMgMjM5Nl0gZG9lcyBub3QgZGVmaW5lIHdoZXRoZXIgZXNjYXBlZCBVUklzIHNob3VsZCB1c2UgbG93ZXIgY2FzZSBvcgorICogdXBwZXIgY2FzZSBmb3IgaGV4YWRlY2ltYWwgZGlnaXRzLiBUbyBlbnN1cmUgdGhhdCBlc2NhcGVkIFVSSXMgY2FuIGJlCisgKiBjb21wYXJlZCB1c2luZyBzdHJpbmcgY29tcGFyaXNvbiBmdW5jdGlvbnMsIHRoaXMgZnVuY3Rpb24gbXVzdCBhbHdheXMgdXNlCisgKiB0aGUgdXBwZXItY2FzZSBsZXR0ZXJzIEEtRi4KKyAqCisgKiBHZW5lcmFsbHksICRlc2NhcGUtcmVzZXJ2ZWQgc2hvdWxkIGJlIHNldCB0byB0cnVlIHdoZW4gZXNjYXBpbmcgYSBzdHJpbmcKKyAqIHRoYXQgaXMgdG8gZm9ybSBhIHNpbmdsZSBwYXJ0IG9mIGEgVVJJLCBhbmQgdG8gZmFsc2Ugd2hlbiBlc2NhcGluZyBhbgorICogZW50aXJlIFVSSSBvciBVUkkgcmVmZXJlbmNlLgorICoKKyAqIEluIHRoZSBjYXNlIG9mIG5vbi1hc2NpaSBjaGFyYWN0ZXJzLCB0aGUgc3RyaW5nIGlzIGVuY29kZWQgYWNjb3JkaW5nIHRvCisgKiB1dGYtOCBhbmQgdGhlbiBjb252ZXJ0ZWQgYWNjb3JkaW5nIHRvIFJGQyAyMzk2LgorICoKKyAqIEV4YW1wbGVzCisgKiAgeGY6ZXNjYXBlLXVyaSAoImdvcGhlcjovL3NwaW5hbHRhcC5taWNyby51bW4uZWR1LzAwL1dlYXRoZXIvQ2FsaWZvcm5pYS9Mb3MlMjBBbmdlbGVzI29jZWFuIiksIHRydWUoKSkKKyAqICByZXR1cm5zICJnb3BoZXIlM0ElMkYlMkZzcGluYWx0YXAubWljcm8udW1uLmVkdSUyRjAwJTJGV2VhdGhlciUyRkNhbGlmb3JuaWElMkZMb3MlMjBBbmdlbGVzJTIzb2NlYW4iCisgKiAgeGY6ZXNjYXBlLXVyaSAoImdvcGhlcjovL3NwaW5hbHRhcC5taWNyby51bW4uZWR1LzAwL1dlYXRoZXIvQ2FsaWZvcm5pYS9Mb3MlMjBBbmdlbGVzI29jZWFuIiksIGZhbHNlKCkpCisgKiAgcmV0dXJucyAiZ29waGVyOi8vc3BpbmFsdGFwLm1pY3JvLnVtbi5lZHUvMDAvV2VhdGhlci9DYWxpZm9ybmlhL0xvcyUyMEFuZ2VsZXMlMjNvY2VhbiIKKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUGF0aEVzY2FwZVVyaUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBzdHI7CisgICAgaW50IGVzY2FwZV9yZXNlcnZlZDsKKyAgICB4bWxCdWZmZXJQdHIgdGFyZ2V0OworICAgIHhtbENoYXIgKmNwdHI7CisgICAgeG1sQ2hhciBlc2NhcGVbNF07CisKKyAgICBDSEVDS19BUklUWSgyKTsKKworICAgIGVzY2FwZV9yZXNlcnZlZCA9IHhtbFhQYXRoUG9wQm9vbGVhbihjdHh0KTsKKworICAgIENBU1RfVE9fU1RSSU5HOworICAgIHN0ciA9IHZhbHVlUG9wKGN0eHQpOworCisgICAgdGFyZ2V0ID0geG1sQnVmZmVyQ3JlYXRlKCk7CisKKyAgICBlc2NhcGVbMF0gPSAnJSc7CisgICAgZXNjYXBlWzNdID0gMDsKKworICAgIGlmICh0YXJnZXQpIHsKKwlmb3IgKGNwdHIgPSBzdHItPnN0cmluZ3ZhbDsgKmNwdHI7IGNwdHIrKykgeworCSAgICBpZiAoKCpjcHRyID49ICdBJyAmJiAqY3B0ciA8PSAnWicpIHx8CisJCSgqY3B0ciA+PSAnYScgJiYgKmNwdHIgPD0gJ3onKSB8fAorCQkoKmNwdHIgPj0gJzAnICYmICpjcHRyIDw9ICc5JykgfHwKKwkJKmNwdHIgPT0gJy0nIHx8ICpjcHRyID09ICdfJyB8fCAqY3B0ciA9PSAnLicgfHwKKwkJKmNwdHIgPT0gJyEnIHx8ICpjcHRyID09ICd+JyB8fCAqY3B0ciA9PSAnKicgfHwKKwkJKmNwdHIgPT0gJ1wnJ3x8ICpjcHRyID09ICcoJyB8fCAqY3B0ciA9PSAnKScgfHwKKwkJKCpjcHRyID09ICclJyAmJgorCQkgKChjcHRyWzFdID49ICdBJyAmJiBjcHRyWzFdIDw9ICdGJykgfHwKKwkJICAoY3B0clsxXSA+PSAnYScgJiYgY3B0clsxXSA8PSAnZicpIHx8CisJCSAgKGNwdHJbMV0gPj0gJzAnICYmIGNwdHJbMV0gPD0gJzknKSkgJiYKKwkJICgoY3B0clsyXSA+PSAnQScgJiYgY3B0clsyXSA8PSAnRicpIHx8CisJCSAgKGNwdHJbMl0gPj0gJ2EnICYmIGNwdHJbMl0gPD0gJ2YnKSB8fAorCQkgIChjcHRyWzJdID49ICcwJyAmJiBjcHRyWzJdIDw9ICc5JykpKSB8fAorCQkoIWVzY2FwZV9yZXNlcnZlZCAmJgorCQkgKCpjcHRyID09ICc7JyB8fCAqY3B0ciA9PSAnLycgfHwgKmNwdHIgPT0gJz8nIHx8CisJCSAgKmNwdHIgPT0gJzonIHx8ICpjcHRyID09ICdAJyB8fCAqY3B0ciA9PSAnJicgfHwKKwkJICAqY3B0ciA9PSAnPScgfHwgKmNwdHIgPT0gJysnIHx8ICpjcHRyID09ICckJyB8fAorCQkgICpjcHRyID09ICcsJykpKSB7CisJCXhtbEJ1ZmZlckFkZCh0YXJnZXQsIGNwdHIsIDEpOworCSAgICB9IGVsc2UgeworCQlpZiAoKCpjcHRyID4+IDQpIDwgMTApCisJCSAgICBlc2NhcGVbMV0gPSAnMCcgKyAoKmNwdHIgPj4gNCk7CisJCWVsc2UKKwkJICAgIGVzY2FwZVsxXSA9ICdBJyAtIDEwICsgKCpjcHRyID4+IDQpOworCQlpZiAoKCpjcHRyICYgMHhGKSA8IDEwKQorCQkgICAgZXNjYXBlWzJdID0gJzAnICsgKCpjcHRyICYgMHhGKTsKKwkJZWxzZQorCQkgICAgZXNjYXBlWzJdID0gJ0EnIC0gMTAgKyAoKmNwdHIgJiAweEYpOworCisJCXhtbEJ1ZmZlckFkZCh0YXJnZXQsICZlc2NhcGVbMF0sIDMpOworCSAgICB9CisJfQorICAgIH0KKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFBhdGhDYWNoZU5ld1N0cmluZyhjdHh0LT5jb250ZXh0LAorCXhtbEJ1ZmZlckNvbnRlbnQodGFyZ2V0KSkpOworICAgIHhtbEJ1ZmZlckZyZWUodGFyZ2V0KTsKKyAgICB4bWxYUGF0aFJlbGVhc2VPYmplY3QoY3R4dC0+Y29udGV4dCwgc3RyKTsKK30KKworLyoqCisgKiB4bWxYUGF0aFJlZ2lzdGVyQWxsRnVuY3Rpb25zOgorICogQGN0eHQ6ICB0aGUgWFBhdGggY29udGV4dAorICoKKyAqIFJlZ2lzdGVycyBhbGwgZGVmYXVsdCBYUGF0aCBmdW5jdGlvbnMgaW4gdGhpcyBjb250ZXh0CisgKi8KK3ZvaWQKK3htbFhQYXRoUmVnaXN0ZXJBbGxGdW5jdGlvbnMoeG1sWFBhdGhDb250ZXh0UHRyIGN0eHQpCit7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKikiYm9vbGVhbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhCb29sZWFuRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopImNlaWxpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ2VpbGluZ0Z1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJjb3VudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhDb3VudEZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJjb25jYXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoQ29uY2F0RnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopImNvbnRhaW5zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aENvbnRhaW5zRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopImlkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aElkRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopImZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aEZhbHNlRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopImZsb29yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aEZsb29yRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopImxhc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoTGFzdEZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJsYW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aExhbmdGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKikibG9jYWwtbmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhMb2NhbE5hbWVGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKikibm90IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE5vdEZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJuYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE5hbWVGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKikibmFtZXNwYWNlLXVyaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhOYW1lc3BhY2VVUklGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKikibm9ybWFsaXplLXNwYWNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aE5vcm1hbGl6ZUZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJudW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoTnVtYmVyRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopInBvc2l0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aFBvc2l0aW9uRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopInJvdW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aFJvdW5kRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopInN0cmluZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhTdHJpbmdGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKikic3RyaW5nLWxlbmd0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhTdHJpbmdMZW5ndGhGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMoY3R4dCwgKGNvbnN0IHhtbENoYXIgKikic3RhcnRzLXdpdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoU3RhcnRzV2l0aEZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJzdWJzdHJpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoU3Vic3RyaW5nRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopInN1YnN0cmluZy1iZWZvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoU3Vic3RyaW5nQmVmb3JlRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopInN1YnN0cmluZy1hZnRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgeG1sWFBhdGhTdWJzdHJpbmdBZnRlckZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJzdW0iLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoU3VtRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKGN0eHQsIChjb25zdCB4bWxDaGFyICopInRydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoVHJ1ZUZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJ0cmFuc2xhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhtbFhQYXRoVHJhbnNsYXRlRnVuY3Rpb24pOworCisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmNOUyhjdHh0LCAoY29uc3QgeG1sQ2hhciAqKSJlc2NhcGUtdXJpIiwKKwkgKGNvbnN0IHhtbENoYXIgKikiaHR0cDovL3d3dy53My5vcmcvMjAwMi8wOC94cXVlcnktZnVuY3Rpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4bWxYUGF0aEVzY2FwZVVyaUZ1bmN0aW9uKTsKK30KKworI2VuZGlmIC8qIExJQlhNTF9YUEFUSF9FTkFCTEVEICovCisjZGVmaW5lIGJvdHRvbV94cGF0aAorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcveHBvaW50ZXIuYyBiL2xpYnhtbDItMi43LjcveHBvaW50ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTQyZDAyCi0tLSAvZGV2L251bGwKKysrIGIvbGlieG1sMi0yLjcuNy94cG9pbnRlci5jCkBAIC0wLDAgKzEsMzAxMSBAQAorLyoKKyAqIHhwb2ludGVyLmMgOiBDb2RlIHRvIGhhbmRsZSBYTUwgUG9pbnRlcgorICoKKyAqIEJhc2UgaW1wbGVtZW50YXRpb24gd2FzIG1hZGUgYWNjb3JkaW5nbHkgdG8KKyAqIFczQyBDYW5kaWRhdGUgUmVjb21tZW5kYXRpb24gNyBKdW5lIDIwMDAKKyAqIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDAvQ1IteHB0ci0yMDAwMDYwNworICoKKyAqIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBlbGVtZW50KCkgc2NoZW1lIGRlc2NyaWJlZCBpbjoKKyAqIFczQyBQcm9wb3NlZCBSZWNvbW1lbmRhdGlvbiAxMyBOb3ZlbWJlciAyMDAyCisgKiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAyL1BSLXhwdHItZWxlbWVudC0yMDAyMTExMy8gIAorICoKKyAqIFNlZSBDb3B5cmlnaHQgZm9yIHRoZSBzdGF0dXMgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBkYW5pZWxAdmVpbGxhcmQuY29tCisgKi8KKworI2RlZmluZSBJTl9MSUJYTUwKKyNpbmNsdWRlICJsaWJ4bWwuaCIKKworLyoKKyAqIFRPRE86IGJldHRlciBoYW5kbGluZyBvZiBlcnJvciBjYXNlcywgdGhlIGZ1bGwgZXhwcmVzc2lvbiBzaG91bGQKKyAqICAgICAgIGJlIHBhcnNlZCBiZWZvcmVoYW5kIGluc3RlYWQgb2YgYSBwcm9ncmVzc2l2ZSBldmFsdWF0aW9uCisgKiBUT0RPOiBBY2Nlc3MgaW50byBlbnRpdGllcyByZWZlcmVuY2VzIGFyZSBub3Qgc3VwcG9ydGVkIG5vdyAuLi4KKyAqICAgICAgIG5lZWQgYSBzdGFydCB0byBiZSBhYmxlIHRvIHBvcCBvdXQgb2YgZW50aXRpZXMgcmVmcyBzaW5jZQorICogICAgICAgcGFyZW50IGlzIHRoZSBlbmRpdHkgZGVjbGFyYXRpb24sIG5vdCB0aGUgcmVmLgorICovCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBvaW50ZXIuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sbWVtb3J5Lmg+CisjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgorI2luY2x1ZGUgPGxpYnhtbC91cmkuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGguaD4KKyNpbmNsdWRlIDxsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sZXJyb3IuaD4KKyNpbmNsdWRlIDxsaWJ4bWwvZ2xvYmFscy5oPgorCisjaWZkZWYgTElCWE1MX1hQVFJfRU5BQkxFRAorCisvKiBBZGQgc3VwcG9ydCBvZiB0aGUgeG1sbnMoKSB4cG9pbnRlciBzY2hlbWUgdG8gaW5pdGlhbGl6ZSB0aGUgbmFtZXNwYWNlcyAqLworI2RlZmluZSBYUFRSX1hNTE5TX1NDSEVNRQorCisvKiAjZGVmaW5lIERFQlVHX1JBTkdFUyAqLworI2lmZGVmIERFQlVHX1JBTkdFUworI2lmZGVmIExJQlhNTF9ERUJVR19FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL2RlYnVnWE1MLmg+CisjZW5kaWYKKyNlbmRpZgorCisjZGVmaW5lIFRPRE8gCQkJCQkJCQlcCisgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCQkJCVwKKwkgICAgIlVuaW1wbGVtZW50ZWQgYmxvY2sgYXQgJXM6JWRcbiIsCQkJCVwKKyAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisKKyNkZWZpbmUgU1RSQU5HRSAJCQkJCQkJXAorICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAkJCQlcCisJICAgICJJbnRlcm5hbCBlcnJvciBhdCAlczolZFxuIiwJCQkJXAorICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKiAJCVNvbWUgZmFjdG9yaXplZCBlcnJvciByb3V0aW5lcwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sWFB0ckVyck1lbW9yeToKKyAqIEBleHRyYTogIGV4dHJhIGluZm9ybWF0aW9ucworICoKKyAqIEhhbmRsZSBhIHJlZGVmaW5pdGlvbiBvZiBhdHRyaWJ1dGUgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK3htbFhQdHJFcnJNZW1vcnkoY29uc3QgY2hhciAqZXh0cmEpCit7CisgICAgX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFhNTF9GUk9NX1hQT0lOVEVSLAorCQkgICAgWE1MX0VSUl9OT19NRU1PUlksIFhNTF9FUlJfRVJST1IsIE5VTEwsIDAsIGV4dHJhLAorCQkgICAgTlVMTCwgTlVMTCwgMCwgMCwKKwkJICAgICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQgOiAlc1xuIiwgZXh0cmEpOworfQorCisvKioKKyAqIHhtbFhQdHJFcnI6CisgKiBAY3R4dDogIGFuIFhQVFIgZXZhbHVhdGlvbiBjb250ZXh0CisgKiBAZXh0cmE6ICBleHRyYSBpbmZvcm1hdGlvbnMKKyAqCisgKiBIYW5kbGUgYSByZWRlZmluaXRpb24gb2YgYXR0cmlidXRlIGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUHRyRXJyKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgZXJyb3IsCisgICAgICAgICAgIGNvbnN0IGNoYXIgKiBtc2csIGNvbnN0IHhtbENoYXIgKmV4dHJhKQoreworICAgIGlmIChjdHh0ICE9IE5VTEwpCisgICAgICAgIGN0eHQtPmVycm9yID0gZXJyb3I7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpKSB7CisJX194bWxSYWlzZUVycm9yKE5VTEwsIE5VTEwsIE5VTEwsCisJCQlOVUxMLCBOVUxMLCBYTUxfRlJPTV9YUE9JTlRFUiwgZXJyb3IsCisJCQlYTUxfRVJSX0VSUk9SLCBOVUxMLCAwLAorCQkJKGNvbnN0IGNoYXIgKikgZXh0cmEsIE5VTEwsIE5VTEwsIDAsIDAsCisJCQltc2csIGV4dHJhKTsKKwlyZXR1cm47CisgICAgfQorICAgIGN0eHQtPmNvbnRleHQtPmxhc3RFcnJvci5kb21haW4gPSBYTUxfRlJPTV9YUE9JTlRFUjsKKyAgICBjdHh0LT5jb250ZXh0LT5sYXN0RXJyb3IuY29kZSA9IGVycm9yOworICAgIGN0eHQtPmNvbnRleHQtPmxhc3RFcnJvci5sZXZlbCA9IFhNTF9FUlJfRVJST1I7CisgICAgY3R4dC0+Y29udGV4dC0+bGFzdEVycm9yLnN0cjEgPSAoY2hhciAqKSB4bWxTdHJkdXAoY3R4dC0+YmFzZSk7CisgICAgY3R4dC0+Y29udGV4dC0+bGFzdEVycm9yLmludDEgPSBjdHh0LT5jdXIgLSBjdHh0LT5iYXNlOworICAgIGN0eHQtPmNvbnRleHQtPmxhc3RFcnJvci5ub2RlID0gY3R4dC0+Y29udGV4dC0+ZGVidWdOb2RlOworICAgIGlmIChjdHh0LT5jb250ZXh0LT5lcnJvciAhPSBOVUxMKSB7CisJY3R4dC0+Y29udGV4dC0+ZXJyb3IoY3R4dC0+Y29udGV4dC0+dXNlckRhdGEsCisJICAgICAgICAgICAgICAgICAgICAgJmN0eHQtPmNvbnRleHQtPmxhc3RFcnJvcik7CisgICAgfSBlbHNlIHsKKwlfX3htbFJhaXNlRXJyb3IoTlVMTCwgTlVMTCwgTlVMTCwKKwkJCU5VTEwsIGN0eHQtPmNvbnRleHQtPmRlYnVnTm9kZSwgWE1MX0ZST01fWFBPSU5URVIsCisJCQllcnJvciwgWE1MX0VSUl9FUlJPUiwgTlVMTCwgMCwKKwkJCShjb25zdCBjaGFyICopIGV4dHJhLCAoY29uc3QgY2hhciAqKSBjdHh0LT5iYXNlLCBOVUxMLAorCQkJY3R4dC0+Y3VyIC0gY3R4dC0+YmFzZSwgMCwKKwkJCW1zZywgZXh0cmEpOworICAgIH0KK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJQSBmZXcgaGVscGVyIGZ1bmN0aW9ucyBmb3IgY2hpbGQgc2VxdWVuY2VzCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiB4bWxYUHRyQWR2YW5jZU5vZGUgaXMgYSBwcml2YXRlIGZ1bmN0aW9uLCBidXQgdXNlZCBieSB4aW5jbHVkZS5jICovCit4bWxOb2RlUHRyIHhtbFhQdHJBZHZhbmNlTm9kZSh4bWxOb2RlUHRyIGN1ciwgaW50ICpsZXZlbCk7CisvKioKKyAqIHhtbFhQdHJHZXRBcml0eToKKyAqIEBjdXI6ICB0aGUgbm9kZQorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGlsZCBmb3IgYW4gZWxlbWVudCwgLTEgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxYUHRyR2V0QXJpdHkoeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpbnQgaTsKKyAgICBpZiAoY3VyID09IE5VTEwpIAorCXJldHVybigtMSk7CisgICAgY3VyID0gY3VyLT5jaGlsZHJlbjsKKyAgICBmb3IgKGkgPSAwO2N1ciAhPSBOVUxMO2N1ciA9IGN1ci0+bmV4dCkgeworCWlmICgoY3VyLT50eXBlID09IFhNTF9FTEVNRU5UX05PREUpIHx8CisJICAgIChjdXItPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHx8CisJICAgIChjdXItPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpIHsKKwkgICAgaSsrOworCX0KKyAgICB9CisgICAgcmV0dXJuKGkpOworfQorCisvKioKKyAqIHhtbFhQdHJHZXRJbmRleDoKKyAqIEBjdXI6ICB0aGUgbm9kZQorICoKKyAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBub2RlIGluIGl0cyBwYXJlbnQgY2hpbGRyZW4gbGlzdCwgLTEKKyAqICAgICAgICAgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgaW50Cit4bWxYUHRyR2V0SW5kZXgoeG1sTm9kZVB0ciBjdXIpIHsKKyAgICBpbnQgaTsKKyAgICBpZiAoY3VyID09IE5VTEwpIAorCXJldHVybigtMSk7CisgICAgZm9yIChpID0gMTtjdXIgIT0gTlVMTDtjdXIgPSBjdXItPnByZXYpIHsKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCSAgICAoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorCSAgICAoY3VyLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSB7CisJICAgIGkrKzsKKwl9CisgICAgfQorICAgIHJldHVybihpKTsKK30KKworLyoqCisgKiB4bWxYUHRyR2V0TnRoQ2hpbGQ6CisgKiBAY3VyOiAgdGhlIG5vZGUKKyAqIEBubzogIHRoZSBjaGlsZCBudW1iZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBAbm8ndGggZWxlbWVudCBjaGlsZCBvZiBAY3VyIG9yIE5VTEwKKyAqLworc3RhdGljIHhtbE5vZGVQdHIKK3htbFhQdHJHZXROdGhDaGlsZCh4bWxOb2RlUHRyIGN1ciwgaW50IG5vKSB7CisgICAgaW50IGk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSAKKwlyZXR1cm4oY3VyKTsKKyAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworICAgIGZvciAoaSA9IDA7aSA8PSBubztjdXIgPSBjdXItPm5leHQpIHsKKwlpZiAoY3VyID09IE5VTEwpIAorCSAgICByZXR1cm4oY3VyKTsKKwlpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCSAgICAoY3VyLT50eXBlID09IFhNTF9ET0NVTUVOVF9OT0RFKSB8fAorCSAgICAoY3VyLT50eXBlID09IFhNTF9IVE1MX0RPQ1VNRU5UX05PREUpKSB7CisJICAgIGkrKzsKKwkgICAgaWYgKGkgPT0gbm8pCisJCWJyZWFrOworCX0KKyAgICB9CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCUhhbmRsaW5nIG9mIFhQb2ludGVyIHNwZWNpZmljIHR5cGVzCQkJKgorICoJCQkJCQkJCQkqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIHhtbFhQdHJDbXBQb2ludHM6CisgKiBAbm9kZTE6ICB0aGUgZmlyc3Qgbm9kZQorICogQGluZGV4MTogIHRoZSBmaXJzdCBpbmRleAorICogQG5vZGUyOiAgdGhlIHNlY29uZCBub2RlCisgKiBAaW5kZXgyOiAgdGhlIHNlY29uZCBpbmRleAorICoKKyAqIENvbXBhcmUgdHdvIHBvaW50cyB3LnIudCBkb2N1bWVudCBvcmRlcgorICoKKyAqIFJldHVybnMgLTIgaW4gY2FzZSBvZiBlcnJvciAxIGlmIGZpcnN0IHBvaW50IDwgc2Vjb25kIHBvaW50LCAwIGlmCisgKiAgICAgICAgIHRoYXQncyB0aGUgc2FtZSBwb2ludCwgLTEgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQdHJDbXBQb2ludHMoeG1sTm9kZVB0ciBub2RlMSwgaW50IGluZGV4MSwgeG1sTm9kZVB0ciBub2RlMiwgaW50IGluZGV4MikgeworICAgIGlmICgobm9kZTEgPT0gTlVMTCkgfHwgKG5vZGUyID09IE5VTEwpKQorCXJldHVybigtMik7CisgICAgLyoKKyAgICAgKiBhIGNvdXBsZSBvZiBvcHRpbWl6YXRpb25zIHdoaWNoIHdpbGwgYXZvaWQgY29tcHV0YXRpb25zIGluIG1vc3QgY2FzZXMKKyAgICAgKi8KKyAgICBpZiAobm9kZTEgPT0gbm9kZTIpIHsKKwlpZiAoaW5kZXgxIDwgaW5kZXgyKQorCSAgICByZXR1cm4oMSk7CisJaWYgKGluZGV4MSA+IGluZGV4MikKKwkgICAgcmV0dXJuKC0xKTsKKwlyZXR1cm4oMCk7CisgICAgfQorICAgIHJldHVybih4bWxYUGF0aENtcE5vZGVzKG5vZGUxLCBub2RlMikpOworfQorCisvKioKKyAqIHhtbFhQdHJOZXdQb2ludDoKKyAqIEBub2RlOiAgdGhlIHhtbE5vZGVQdHIKKyAqIEBpbmR4OiAgdGhlIGluZHggd2l0aGluIHRoZSBub2RlCisgKgorICogQ3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgcG9pbnQKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworc3RhdGljIHhtbFhQYXRoT2JqZWN0UHRyCit4bWxYUHRyTmV3UG9pbnQoeG1sTm9kZVB0ciBub2RlLCBpbnQgaW5keCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIGlmIChub2RlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChpbmR4IDwgMCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyBwb2ludCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1BPSU5UOworICAgIHJldC0+dXNlciA9ICh2b2lkICopIG5vZGU7CisgICAgcmV0LT5pbmRleCA9IGluZHg7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFB0clJhbmdlQ2hlY2tPcmRlcjoKKyAqIEByYW5nZTogIGFuIG9iamVjdCByYW5nZQorICoKKyAqIE1ha2Ugc3VyZSB0aGUgcG9pbnRzIGluIHRoZSByYW5nZSBhcmUgaW4gdGhlIHJpZ2h0IG9yZGVyCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHhtbFhQYXRoT2JqZWN0UHRyIHJhbmdlKSB7CisgICAgaW50IHRtcDsKKyAgICB4bWxOb2RlUHRyIHRtcDI7CisgICAgaWYgKHJhbmdlID09IE5VTEwpCisJcmV0dXJuOworICAgIGlmIChyYW5nZS0+dHlwZSAhPSBYUEFUSF9SQU5HRSkKKwlyZXR1cm47CisgICAgaWYgKHJhbmdlLT51c2VyMiA9PSBOVUxMKQorCXJldHVybjsKKyAgICB0bXAgPSB4bWxYUHRyQ21wUG9pbnRzKHJhbmdlLT51c2VyLCByYW5nZS0+aW5kZXgsCisJICAgICAgICAgICAgICAgICAgICAgcmFuZ2UtPnVzZXIyLCByYW5nZS0+aW5kZXgyKTsKKyAgICBpZiAodG1wID09IC0xKSB7CisJdG1wMiA9IHJhbmdlLT51c2VyOworCXJhbmdlLT51c2VyID0gcmFuZ2UtPnVzZXIyOworCXJhbmdlLT51c2VyMiA9IHRtcDI7CisJdG1wID0gcmFuZ2UtPmluZGV4OworCXJhbmdlLT5pbmRleCA9IHJhbmdlLT5pbmRleDI7CisJcmFuZ2UtPmluZGV4MiA9IHRtcDsKKyAgICB9Cit9CisKKy8qKgorICogeG1sWFB0clJhbmdlc0VxdWFsOgorICogQHJhbmdlMTogIHRoZSBmaXJzdCByYW5nZQorICogQHJhbmdlMjogIHRoZSBzZWNvbmQgcmFuZ2UKKyAqCisgKiBDb21wYXJlIHR3byByYW5nZXMKKyAqCisgKiBSZXR1cm5zIDEgaWYgZXF1YWwsIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQdHJSYW5nZXNFcXVhbCh4bWxYUGF0aE9iamVjdFB0ciByYW5nZTEsIHhtbFhQYXRoT2JqZWN0UHRyIHJhbmdlMikgeworICAgIGlmIChyYW5nZTEgPT0gcmFuZ2UyKQorCXJldHVybigxKTsKKyAgICBpZiAoKHJhbmdlMSA9PSBOVUxMKSB8fCAocmFuZ2UyID09IE5VTEwpKQorCXJldHVybigwKTsKKyAgICBpZiAocmFuZ2UxLT50eXBlICE9IHJhbmdlMi0+dHlwZSkKKwlyZXR1cm4oMCk7CisgICAgaWYgKHJhbmdlMS0+dHlwZSAhPSBYUEFUSF9SQU5HRSkKKwlyZXR1cm4oMCk7CisgICAgaWYgKHJhbmdlMS0+dXNlciAhPSByYW5nZTItPnVzZXIpCisJcmV0dXJuKDApOworICAgIGlmIChyYW5nZTEtPmluZGV4ICE9IHJhbmdlMi0+aW5kZXgpCisJcmV0dXJuKDApOworICAgIGlmIChyYW5nZTEtPnVzZXIyICE9IHJhbmdlMi0+dXNlcjIpCisJcmV0dXJuKDApOworICAgIGlmIChyYW5nZTEtPmluZGV4MiAhPSByYW5nZTItPmluZGV4MikKKwlyZXR1cm4oMCk7CisgICAgcmV0dXJuKDEpOworfQorCisvKioKKyAqIHhtbFhQdHJOZXdSYW5nZToKKyAqIEBzdGFydDogIHRoZSBzdGFydGluZyBub2RlCisgKiBAc3RhcnRpbmRleDogIHRoZSBzdGFydCBpbmRleAorICogQGVuZDogIHRoZSBlbmRpbmcgcG9pbnQKKyAqIEBlbmRpbmRleDogIHRoZSBlbmRpbmcgaW5kZXgKKyAqCisgKiBDcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSByYW5nZQorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFB0ck5ld1JhbmdlKHhtbE5vZGVQdHIgc3RhcnQsIGludCBzdGFydGluZGV4LAorCSAgICAgICAgeG1sTm9kZVB0ciBlbmQsIGludCBlbmRpbmRleCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIGlmIChzdGFydCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoZW5kID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChzdGFydGluZGV4IDwgMCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGVuZGluZGV4IDwgMCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOworICAgIHJldC0+dXNlciA9IHN0YXJ0OworICAgIHJldC0+aW5kZXggPSBzdGFydGluZGV4OworICAgIHJldC0+dXNlcjIgPSBlbmQ7CisgICAgcmV0LT5pbmRleDIgPSBlbmRpbmRleDsKKyAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFB0ck5ld1JhbmdlUG9pbnRzOgorICogQHN0YXJ0OiAgdGhlIHN0YXJ0aW5nIHBvaW50CisgKiBAZW5kOiAgdGhlIGVuZGluZyBwb2ludAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHJhbmdlIHVzaW5nIDIgUG9pbnRzCisgKgorICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgKi8KK3htbFhQYXRoT2JqZWN0UHRyCit4bWxYUHRyTmV3UmFuZ2VQb2ludHMoeG1sWFBhdGhPYmplY3RQdHIgc3RhcnQsIHhtbFhQYXRoT2JqZWN0UHRyIGVuZCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIGlmIChzdGFydCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoZW5kID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChzdGFydC0+dHlwZSAhPSBYUEFUSF9QT0lOVCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGVuZC0+dHlwZSAhPSBYUEFUSF9QT0lOVCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOworICAgIHJldC0+dXNlciA9IHN0YXJ0LT51c2VyOworICAgIHJldC0+aW5kZXggPSBzdGFydC0+aW5kZXg7CisgICAgcmV0LT51c2VyMiA9IGVuZC0+dXNlcjsKKyAgICByZXQtPmluZGV4MiA9IGVuZC0+aW5kZXg7CisgICAgeG1sWFB0clJhbmdlQ2hlY2tPcmRlcihyZXQpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQdHJOZXdSYW5nZVBvaW50Tm9kZToKKyAqIEBzdGFydDogIHRoZSBzdGFydGluZyBwb2ludAorICogQGVuZDogIHRoZSBlbmRpbmcgbm9kZQorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHJhbmdlIGZyb20gYSBwb2ludCB0byBhIG5vZGUKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQdHJOZXdSYW5nZVBvaW50Tm9kZSh4bWxYUGF0aE9iamVjdFB0ciBzdGFydCwgeG1sTm9kZVB0ciBlbmQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKyAgICBpZiAoc3RhcnQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGVuZCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoc3RhcnQtPnR5cGUgIT0gWFBBVEhfUE9JTlQpCisJcmV0dXJuKE5VTEwpOworCisgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgcmFuZ2UiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICByZXQtPnR5cGUgPSBYUEFUSF9SQU5HRTsKKyAgICByZXQtPnVzZXIgPSBzdGFydC0+dXNlcjsKKyAgICByZXQtPmluZGV4ID0gc3RhcnQtPmluZGV4OworICAgIHJldC0+dXNlcjIgPSBlbmQ7CisgICAgcmV0LT5pbmRleDIgPSAtMTsKKyAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50OgorICogQHN0YXJ0OiAgdGhlIHN0YXJ0aW5nIG5vZGUKKyAqIEBlbmQ6ICB0aGUgZW5kaW5nIHBvaW50CisgKgorICogQ3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgcmFuZ2UgZnJvbSBhIG5vZGUgdG8gYSBwb2ludAorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFB0ck5ld1JhbmdlTm9kZVBvaW50KHhtbE5vZGVQdHIgc3RhcnQsIHhtbFhQYXRoT2JqZWN0UHRyIGVuZCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIGlmIChzdGFydCA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoZW5kID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChzdGFydC0+dHlwZSAhPSBYUEFUSF9QT0lOVCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKGVuZC0+dHlwZSAhPSBYUEFUSF9QT0lOVCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOworICAgIHJldC0+dXNlciA9IHN0YXJ0OworICAgIHJldC0+aW5kZXggPSAtMTsKKyAgICByZXQtPnVzZXIyID0gZW5kLT51c2VyOworICAgIHJldC0+aW5kZXgyID0gZW5kLT5pbmRleDsKKyAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFB0ck5ld1JhbmdlTm9kZXM6CisgKiBAc3RhcnQ6ICB0aGUgc3RhcnRpbmcgbm9kZQorICogQGVuZDogIHRoZSBlbmRpbmcgbm9kZQorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIHJhbmdlIHVzaW5nIDIgbm9kZXMKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQdHJOZXdSYW5nZU5vZGVzKHhtbE5vZGVQdHIgc3RhcnQsIHhtbE5vZGVQdHIgZW5kKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgaWYgKHN0YXJ0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChlbmQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOworICAgIHJldC0+dXNlciA9IHN0YXJ0OworICAgIHJldC0+aW5kZXggPSAtMTsKKyAgICByZXQtPnVzZXIyID0gZW5kOworICAgIHJldC0+aW5kZXgyID0gLTE7CisgICAgeG1sWFB0clJhbmdlQ2hlY2tPcmRlcihyZXQpOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQdHJOZXdDb2xsYXBzZWRSYW5nZToKKyAqIEBzdGFydDogIHRoZSBzdGFydGluZyBhbmQgZW5kaW5nIG5vZGUKKyAqCisgKiBDcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSByYW5nZSB1c2luZyBhIHNpbmdsZSBub2RlcworICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlKHhtbE5vZGVQdHIgc3RhcnQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKyAgICBpZiAoc3RhcnQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyByYW5nZSIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX1JBTkdFOworICAgIHJldC0+dXNlciA9IHN0YXJ0OworICAgIHJldC0+aW5kZXggPSAtMTsKKyAgICByZXQtPnVzZXIyID0gTlVMTDsKKyAgICByZXQtPmluZGV4MiA9IC0xOworICAgIHJldHVybihyZXQpOworfQorCisvKioKKyAqIHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3Q6CisgKiBAc3RhcnQ6ICB0aGUgc3RhcnRpbmcgbm9kZQorICogQGVuZDogIHRoZSBlbmRpbmcgb2JqZWN0CisgKgorICogQ3JlYXRlIGEgbmV3IHhtbFhQYXRoT2JqZWN0UHRyIG9mIHR5cGUgcmFuZ2UgZnJvbSBhIG5vdCB0byBhbiBvYmplY3QKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQdHJOZXdSYW5nZU5vZGVPYmplY3QoeG1sTm9kZVB0ciBzdGFydCwgeG1sWFBhdGhPYmplY3RQdHIgZW5kKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgaWYgKHN0YXJ0ID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChlbmQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgc3dpdGNoIChlbmQtPnR5cGUpIHsKKwljYXNlIFhQQVRIX1BPSU5UOgorCWNhc2UgWFBBVEhfUkFOR0U6CisJICAgIGJyZWFrOworCWNhc2UgWFBBVEhfTk9ERVNFVDoKKwkgICAgLyoKKwkgICAgICogRW1wdHkgc2V0IC4uLiAKKwkgICAgICovCisJICAgIGlmIChlbmQtPm5vZGVzZXR2YWwtPm5vZGVOciA8PSAwKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIGJyZWFrOworCWRlZmF1bHQ6CisJICAgIC8qIFRPRE8gKi8KKwkgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIHJhbmdlIik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgcmV0LT50eXBlID0gWFBBVEhfUkFOR0U7CisgICAgcmV0LT51c2VyID0gc3RhcnQ7CisgICAgcmV0LT5pbmRleCA9IC0xOworICAgIHN3aXRjaCAoZW5kLT50eXBlKSB7CisJY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgcmV0LT51c2VyMiA9IGVuZC0+dXNlcjsKKwkgICAgcmV0LT5pbmRleDIgPSBlbmQtPmluZGV4OworCSAgICBicmVhazsKKwljYXNlIFhQQVRIX1JBTkdFOgorCSAgICByZXQtPnVzZXIyID0gZW5kLT51c2VyMjsKKwkgICAgcmV0LT5pbmRleDIgPSBlbmQtPmluZGV4MjsKKwkgICAgYnJlYWs7CisJY2FzZSBYUEFUSF9OT0RFU0VUOiB7CisJICAgIHJldC0+dXNlcjIgPSBlbmQtPm5vZGVzZXR2YWwtPm5vZGVUYWJbZW5kLT5ub2Rlc2V0dmFsLT5ub2RlTnIgLSAxXTsKKwkgICAgcmV0LT5pbmRleDIgPSAtMTsKKwkgICAgYnJlYWs7CisJfQorCWRlZmF1bHQ6CisJICAgIFNUUkFOR0UKKwkgICAgcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICB4bWxYUHRyUmFuZ2VDaGVja09yZGVyKHJldCk7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKyNkZWZpbmUgWE1MX1JBTkdFU0VUX0RFRkFVTFQJMTAKKworLyoqCisgKiB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGU6CisgKiBAdmFsOiAgYW4gaW5pdGlhbCB4bWxYUGF0aE9iamVjdFB0ciwgb3IgTlVMTAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxMb2NhdGlvblNldFB0ciBvZiB0eXBlIGRvdWJsZSBhbmQgb2YgdmFsdWUgQHZhbAorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxMb2NhdGlvblNldFB0cgoreG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKHhtbFhQYXRoT2JqZWN0UHRyIHZhbCkgeworICAgIHhtbExvY2F0aW9uU2V0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxMb2NhdGlvblNldFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxMb2NhdGlvblNldCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIGxvY2F0aW9uc2V0Iik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbExvY2F0aW9uU2V0KSk7CisgICAgaWYgKHZhbCAhPSBOVUxMKSB7CisgICAgICAgIHJldC0+bG9jVGFiID0gKHhtbFhQYXRoT2JqZWN0UHRyICopIHhtbE1hbGxvYyhYTUxfUkFOR0VTRVRfREVGQVVMVCAqCisJCQkJCSAgICAgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0UHRyKSk7CisJaWYgKHJldC0+bG9jVGFiID09IE5VTEwpIHsKKwkgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyBsb2NhdGlvbnNldCIpOworCSAgICB4bWxGcmVlKHJldCk7CisJICAgIHJldHVybihOVUxMKTsKKwl9CisJbWVtc2V0KHJldC0+bG9jVGFiLCAwICwKKwkgICAgICAgWE1MX1JBTkdFU0VUX0RFRkFVTFQgKiAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3RQdHIpKTsKKyAgICAgICAgcmV0LT5sb2NNYXggPSBYTUxfUkFOR0VTRVRfREVGQVVMVDsKKwlyZXQtPmxvY1RhYltyZXQtPmxvY05yKytdID0gdmFsOworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUHRyTG9jYXRpb25TZXRBZGQ6CisgKiBAY3VyOiAgdGhlIGluaXRpYWwgcmFuZ2Ugc2V0CisgKiBAdmFsOiAgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIKKyAqCisgKiBhZGQgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgdG8gYW4gZXhpc3RpbmcgTG9jYXRpb25TZXQKKyAqIElmIHRoZSBsb2NhdGlvbiBhbHJlYWR5IGV4aXN0IGluIHRoZSBzZXQgQHZhbCBpcyBmcmVlZC4KKyAqLwordm9pZAoreG1sWFB0ckxvY2F0aW9uU2V0QWRkKHhtbExvY2F0aW9uU2V0UHRyIGN1ciwgeG1sWFBhdGhPYmplY3RQdHIgdmFsKSB7CisgICAgaW50IGk7CisKKyAgICBpZiAoKGN1ciA9PSBOVUxMKSB8fCAodmFsID09IE5VTEwpKSByZXR1cm47CisKKyAgICAvKgorICAgICAqIGNoZWNrIGFnYWluc3QgZG91YmxvbnMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwO2kgPCBjdXItPmxvY05yO2krKykgeworCWlmICh4bWxYUHRyUmFuZ2VzRXF1YWwoY3VyLT5sb2NUYWJbaV0sIHZhbCkpIHsKKwkgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHZhbCk7CisJICAgIHJldHVybjsKKwl9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBncm93IHRoZSBsb2NUYWIgaWYgbmVlZGVkCisgICAgICovCisgICAgaWYgKGN1ci0+bG9jTWF4ID09IDApIHsKKyAgICAgICAgY3VyLT5sb2NUYWIgPSAoeG1sWFBhdGhPYmplY3RQdHIgKikgeG1sTWFsbG9jKFhNTF9SQU5HRVNFVF9ERUZBVUxUICoKKwkJCQkJICAgICBzaXplb2YoeG1sWFBhdGhPYmplY3RQdHIpKTsKKwlpZiAoY3VyLT5sb2NUYWIgPT0gTlVMTCkgeworCSAgICB4bWxYUHRyRXJyTWVtb3J5KCJhZGRpbmcgbG9jYXRpb24gdG8gc2V0Iik7CisJICAgIHJldHVybjsKKwl9CisJbWVtc2V0KGN1ci0+bG9jVGFiLCAwICwKKwkgICAgICAgWE1MX1JBTkdFU0VUX0RFRkFVTFQgKiAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3RQdHIpKTsKKyAgICAgICAgY3VyLT5sb2NNYXggPSBYTUxfUkFOR0VTRVRfREVGQVVMVDsKKyAgICB9IGVsc2UgaWYgKGN1ci0+bG9jTnIgPT0gY3VyLT5sb2NNYXgpIHsKKyAgICAgICAgeG1sWFBhdGhPYmplY3RQdHIgKnRlbXA7CisKKyAgICAgICAgY3VyLT5sb2NNYXggKj0gMjsKKwl0ZW1wID0gKHhtbFhQYXRoT2JqZWN0UHRyICopIHhtbFJlYWxsb2MoY3VyLT5sb2NUYWIsIGN1ci0+bG9jTWF4ICoKKwkJCQkgICAgICBzaXplb2YoeG1sWFBhdGhPYmplY3RQdHIpKTsKKwlpZiAodGVtcCA9PSBOVUxMKSB7CisJICAgIHhtbFhQdHJFcnJNZW1vcnkoImFkZGluZyBsb2NhdGlvbiB0byBzZXQiKTsKKwkgICAgcmV0dXJuOworCX0KKwljdXItPmxvY1RhYiA9IHRlbXA7CisgICAgfQorICAgIGN1ci0+bG9jVGFiW2N1ci0+bG9jTnIrK10gPSB2YWw7Cit9CisKKy8qKgorICogeG1sWFB0ckxvY2F0aW9uU2V0TWVyZ2U6CisgKiBAdmFsMTogIHRoZSBmaXJzdCBMb2NhdGlvblNldAorICogQHZhbDI6ICB0aGUgc2Vjb25kIExvY2F0aW9uU2V0CisgKgorICogTWVyZ2VzIHR3byByYW5nZXNldHMsIGFsbCByYW5nZXMgZnJvbSBAdmFsMiBhcmUgYWRkZWQgdG8gQHZhbDEKKyAqCisgKiBSZXR1cm5zIHZhbDEgb25jZSBleHRlbmRlZCBvciBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuCisgKi8KK3htbExvY2F0aW9uU2V0UHRyCit4bWxYUHRyTG9jYXRpb25TZXRNZXJnZSh4bWxMb2NhdGlvblNldFB0ciB2YWwxLCB4bWxMb2NhdGlvblNldFB0ciB2YWwyKSB7CisgICAgaW50IGk7CisKKyAgICBpZiAodmFsMSA9PSBOVUxMKSByZXR1cm4oTlVMTCk7CisgICAgaWYgKHZhbDIgPT0gTlVMTCkgcmV0dXJuKHZhbDEpOworCisgICAgLyoKKyAgICAgKiAhISEhISB0aGlzIGNhbiBiZSBvcHRpbWl6ZWQgYSBsb3QsIGtub3dpbmcgdGhhdCBib3RoCisgICAgICogICAgICAgdmFsMSBhbmQgdmFsMiBhbHJlYWR5IGhhdmUgdW5pY2l0eSBvZiB0aGVpciB2YWx1ZXMuCisgICAgICovCisKKyAgICBmb3IgKGkgPSAwO2kgPCB2YWwyLT5sb2NOcjtpKyspCisgICAgICAgIHhtbFhQdHJMb2NhdGlvblNldEFkZCh2YWwxLCB2YWwyLT5sb2NUYWJbaV0pOworCisgICAgcmV0dXJuKHZhbDEpOworfQorCisvKioKKyAqIHhtbFhQdHJMb2NhdGlvblNldERlbDoKKyAqIEBjdXI6ICB0aGUgaW5pdGlhbCByYW5nZSBzZXQKKyAqIEB2YWw6ICBhbiB4bWxYUGF0aE9iamVjdFB0cgorICoKKyAqIFJlbW92ZXMgYW4geG1sWFBhdGhPYmplY3RQdHIgZnJvbSBhbiBleGlzdGluZyBMb2NhdGlvblNldAorICovCit2b2lkCit4bWxYUHRyTG9jYXRpb25TZXREZWwoeG1sTG9jYXRpb25TZXRQdHIgY3VyLCB4bWxYUGF0aE9iamVjdFB0ciB2YWwpIHsKKyAgICBpbnQgaTsKKworICAgIGlmIChjdXIgPT0gTlVMTCkgcmV0dXJuOworICAgIGlmICh2YWwgPT0gTlVMTCkgcmV0dXJuOworCisgICAgLyoKKyAgICAgKiBjaGVjayBhZ2FpbnN0IGRvdWJsb25zCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgY3VyLT5sb2NOcjtpKyspCisgICAgICAgIGlmIChjdXItPmxvY1RhYltpXSA9PSB2YWwpIGJyZWFrOworCisgICAgaWYgKGkgPj0gY3VyLT5sb2NOcikgeworI2lmZGVmIERFQlVHCisgICAgICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAKKwkgICAgICAgICJ4bWxYUHRyTG9jYXRpb25TZXREZWw6IFJhbmdlIHdhc24ndCBmb3VuZCBpbiBSYW5nZUxpc3RcbiIpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY3VyLT5sb2NOci0tOworICAgIGZvciAoO2kgPCBjdXItPmxvY05yO2krKykKKyAgICAgICAgY3VyLT5sb2NUYWJbaV0gPSBjdXItPmxvY1RhYltpICsgMV07CisgICAgY3VyLT5sb2NUYWJbY3VyLT5sb2NOcl0gPSBOVUxMOworfQorCisvKioKKyAqIHhtbFhQdHJMb2NhdGlvblNldFJlbW92ZToKKyAqIEBjdXI6ICB0aGUgaW5pdGlhbCByYW5nZSBzZXQKKyAqIEB2YWw6ICB0aGUgaW5kZXggdG8gcmVtb3ZlCisgKgorICogUmVtb3ZlcyBhbiBlbnRyeSBmcm9tIGFuIGV4aXN0aW5nIExvY2F0aW9uU2V0IGxpc3QuCisgKi8KK3ZvaWQKK3htbFhQdHJMb2NhdGlvblNldFJlbW92ZSh4bWxMb2NhdGlvblNldFB0ciBjdXIsIGludCB2YWwpIHsKKyAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybjsKKyAgICBpZiAodmFsID49IGN1ci0+bG9jTnIpIHJldHVybjsKKyAgICBjdXItPmxvY05yLS07CisgICAgZm9yICg7dmFsIDwgY3VyLT5sb2NOcjt2YWwrKykKKyAgICAgICAgY3VyLT5sb2NUYWJbdmFsXSA9IGN1ci0+bG9jVGFiW3ZhbCArIDFdOworICAgIGN1ci0+bG9jVGFiW2N1ci0+bG9jTnJdID0gTlVMTDsKK30KKworLyoqCisgKiB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0OgorICogQG9iajogIHRoZSB4bWxMb2NhdGlvblNldFB0ciB0byBmcmVlCisgKgorICogRnJlZSB0aGUgTG9jYXRpb25TZXQgY29tcG91bmQgKG5vdCB0aGUgYWN0dWFsIHJhbmdlcyAhKS4KKyAqLwordm9pZAoreG1sWFB0ckZyZWVMb2NhdGlvblNldCh4bWxMb2NhdGlvblNldFB0ciBvYmopIHsKKyAgICBpbnQgaTsKKworICAgIGlmIChvYmogPT0gTlVMTCkgcmV0dXJuOworICAgIGlmIChvYmotPmxvY1RhYiAhPSBOVUxMKSB7CisJZm9yIChpID0gMDtpIDwgb2JqLT5sb2NOcjsgaSsrKSB7CisgICAgICAgICAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqLT5sb2NUYWJbaV0pOworCX0KKwl4bWxGcmVlKG9iai0+bG9jVGFiKTsKKyAgICB9CisgICAgeG1sRnJlZShvYmopOworfQorCisvKioKKyAqIHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVzOgorICogQHN0YXJ0OiAgdGhlIHN0YXJ0IE5vZGVQdHIgdmFsdWUKKyAqIEBlbmQ6ICB0aGUgZW5kIE5vZGVQdHIgdmFsdWUgb3IgTlVMTAorICoKKyAqIENyZWF0ZSBhIG5ldyB4bWxYUGF0aE9iamVjdFB0ciBvZiB0eXBlIExvY2F0aW9uU2V0IGFuZCBpbml0aWFsaXplCisgKiBpdCB3aXRoIHRoZSBzaW5nbGUgcmFuZ2UgbWFkZSBvZiB0aGUgdHdvIG5vZGVzIEBzdGFydCBhbmQgQGVuZAorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMoeG1sTm9kZVB0ciBzdGFydCwgeG1sTm9kZVB0ciBlbmQpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXQ7CisKKyAgICByZXQgPSAoeG1sWFBhdGhPYmplY3RQdHIpIHhtbE1hbGxvYyhzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyBsb2NhdGlvbnNldCIpOworCXJldHVybihOVUxMKTsKKyAgICB9CisgICAgbWVtc2V0KHJldCwgMCAsIChzaXplX3QpIHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIHJldC0+dHlwZSA9IFhQQVRIX0xPQ0FUSU9OU0VUOworICAgIGlmIChlbmQgPT0gTlVMTCkKKwlyZXQtPnVzZXIgPSB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUoeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlKHN0YXJ0KSk7CisgICAgZWxzZQorCXJldC0+dXNlciA9IHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZSh4bWxYUHRyTmV3UmFuZ2VOb2RlcyhzdGFydCxlbmQpKTsKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0OgorICogQHNldDogIGEgbm9kZSBzZXQKKyAqCisgKiBDcmVhdGUgYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIgb2YgdHlwZSBMb2NhdGlvblNldCBhbmQgaW5pdGlhbGl6ZQorICogaXQgd2l0aCBhbGwgdGhlIG5vZGVzIGZyb20gQHNldAorICoKKyAqIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZVNldCh4bWxOb2RlU2V0UHRyIHNldCkgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJldDsKKworICAgIHJldCA9ICh4bWxYUGF0aE9iamVjdFB0cikgeG1sTWFsbG9jKHNpemVvZih4bWxYUGF0aE9iamVjdCkpOworICAgIGlmIChyZXQgPT0gTlVMTCkgeworICAgICAgICB4bWxYUHRyRXJyTWVtb3J5KCJhbGxvY2F0aW5nIGxvY2F0aW9uc2V0Iik7CisJcmV0dXJuKE5VTEwpOworICAgIH0KKyAgICBtZW1zZXQocmV0LCAwICwgKHNpemVfdCkgc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgcmV0LT50eXBlID0gWFBBVEhfTE9DQVRJT05TRVQ7CisgICAgaWYgKHNldCAhPSBOVUxMKSB7CisJaW50IGk7CisJeG1sTG9jYXRpb25TZXRQdHIgbmV3c2V0OworCisJbmV3c2V0ID0geG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKE5VTEwpOworCWlmIChuZXdzZXQgPT0gTlVMTCkKKwkgICAgcmV0dXJuKHJldCk7CisKKwlmb3IgKGkgPSAwO2kgPCBzZXQtPm5vZGVOcjtpKyspCisJICAgIHhtbFhQdHJMb2NhdGlvblNldEFkZChuZXdzZXQsCisJCSAgICAgICAgeG1sWFB0ck5ld0NvbGxhcHNlZFJhbmdlKHNldC0+bm9kZVRhYltpXSkpOworCisJcmV0LT51c2VyID0gKHZvaWQgKikgbmV3c2V0OworICAgIH0KKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUHRyV3JhcExvY2F0aW9uU2V0OgorICogQHZhbDogIHRoZSBMb2NhdGlvblNldCB2YWx1ZQorICoKKyAqIFdyYXAgdGhlIExvY2F0aW9uU2V0IEB2YWwgaW4gYSBuZXcgeG1sWFBhdGhPYmplY3RQdHIKKyAqCisgKiBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAqLworeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQdHJXcmFwTG9jYXRpb25TZXQoeG1sTG9jYXRpb25TZXRQdHIgdmFsKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmV0OworCisgICAgcmV0ID0gKHhtbFhQYXRoT2JqZWN0UHRyKSB4bWxNYWxsb2Moc2l6ZW9mKHhtbFhQYXRoT2JqZWN0KSk7CisgICAgaWYgKHJldCA9PSBOVUxMKSB7CisgICAgICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgbG9jYXRpb25zZXQiKTsKKwlyZXR1cm4oTlVMTCk7CisgICAgfQorICAgIG1lbXNldChyZXQsIDAgLCAoc2l6ZV90KSBzaXplb2YoeG1sWFBhdGhPYmplY3QpKTsKKyAgICByZXQtPnR5cGUgPSBYUEFUSF9MT0NBVElPTlNFVDsKKyAgICByZXQtPnVzZXIgPSAodm9pZCAqKSB2YWw7CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlUaGUgcGFyc2VyCQkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyB2b2lkIHhtbFhQdHJFdmFsQ2hpbGRTZXEoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbENoYXIgKm5hbWUpOworCisvKgorICogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGNvbnRlbnQuIFRob3NlIHNob3VsZCBiZSB1c2VkIG9ubHkgYnkgdGhlIHBhcnNlciwKKyAqIGFuZCBub3QgZXhwb3J0ZWQuCisgKgorICogRGlydHkgbWFjcm9zLCBpLmUuIG9uZSBuZWVkIHRvIG1ha2UgYXNzdW1wdGlvbiBvbiB0aGUgY29udGV4dCB0byB1c2UgdGhlbQorICoKKyAqICAgQ1VSX1BUUiByZXR1cm4gdGhlIGN1cnJlbnQgcG9pbnRlciB0byB0aGUgeG1sQ2hhciB0byBiZSBwYXJzZWQuCisgKiAgIENVUiAgICAgcmV0dXJucyB0aGUgY3VycmVudCB4bWxDaGFyIHZhbHVlLCBpLmUuIGEgOCBiaXQgdmFsdWUKKyAqICAgICAgICAgICBpbiBJU08tTGF0aW4gb3IgVVRGLTguCisgKiAgICAgICAgICAgVGhpcyBzaG91bGQgYmUgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBwYXJzZXIKKyAqICAgICAgICAgICBvbmx5IHRvIGNvbXBhcmUgdG8gQVNDSUkgdmFsdWVzIG90aGVyd2lzZSBpdCB3b3VsZCBicmVhayB3aGVuCisgKiAgICAgICAgICAgcnVubmluZyB3aXRoIFVURi04IGVuY29kaW5nLgorICogICBOWFQobikgIHJldHVybnMgdGhlIG4ndGggbmV4dCB4bWxDaGFyLiBTYW1lIGFzIENVUiBpcyBzaG91bGQgYmUgdXNlZCBvbmx5CisgKiAgICAgICAgICAgdG8gY29tcGFyZSBvbiBBU0NJSSBiYXNlZCBzdWJzdHJpbmcuCisgKiAgIFNLSVAobikgU2tpcCBuIHhtbENoYXIsIGFuZCBtdXN0IGFsc28gYmUgdXNlZCBvbmx5IHRvIHNraXAgQVNDSUkgZGVmaW5lZAorICogICAgICAgICAgIHN0cmluZ3Mgd2l0aGluIHRoZSBwYXJzZXIuCisgKiAgIENVUlJFTlQgUmV0dXJucyB0aGUgY3VycmVudCBjaGFyIHZhbHVlLCB3aXRoIHRoZSBmdWxsIGRlY29kaW5nIG9mCisgKiAgICAgICAgICAgVVRGLTggaWYgd2UgYXJlIHVzaW5nIHRoaXMgbW9kZS4gSXQgcmV0dXJucyBhbiBpbnQuCisgKiAgIE5FWFQgICAgU2tpcCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIsIHRoaXMgZG9lcyB0aGUgcHJvcGVyIGRlY29kaW5nCisgKiAgICAgICAgICAgaW4gVVRGLTggbW9kZS4gSXQgYWxzbyBwb3AtdXAgdW5maW5pc2hlZCBlbnRpdGllcyBvbiB0aGUgZmx5LgorICogICAgICAgICAgIEl0IHJldHVybnMgdGhlIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgeG1sQ2hhci4KKyAqLworCisjZGVmaW5lIENVUiAoKmN0eHQtPmN1cikKKyNkZWZpbmUgU0tJUCh2YWwpIGN0eHQtPmN1ciArPSAodmFsKQorI2RlZmluZSBOWFQodmFsKSBjdHh0LT5jdXJbKHZhbCldCisjZGVmaW5lIENVUl9QVFIgY3R4dC0+Y3VyCisKKyNkZWZpbmUgU0tJUF9CTEFOS1MgCQkJCQkJCVwKKyAgICB3aGlsZSAoSVNfQkxBTktfQ0goKihjdHh0LT5jdXIpKSkgTkVYVAorCisjZGVmaW5lIENVUlJFTlQgKCpjdHh0LT5jdXIpCisjZGVmaW5lIE5FWFQgKCgqY3R4dC0+Y3VyKSA/ICBjdHh0LT5jdXIrKzogY3R4dC0+Y3VyKQorCisvKgorICogeG1sWFB0ckdldENoaWxkTm86CisgKiBAY3R4dDogIHRoZSBYUG9pbnRlciBQYXJzZXIgY29udGV4dAorICogQGluZGV4OiAgdGhlIGNoaWxkIG51bWJlcgorICoKKyAqIE1vdmUgdGhlIGN1cnJlbnQgbm9kZSBvZiB0aGUgbm9kZXNldCBvbiB0aGUgc3RhY2sgdG8gdGhlCisgKiBnaXZlbiBjaGlsZCBpZiBmb3VuZAorICovCitzdGF0aWMgdm9pZAoreG1sWFB0ckdldENoaWxkTm8oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBpbmR4KSB7CisgICAgeG1sTm9kZVB0ciBjdXIgPSBOVUxMOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iajsKKyAgICB4bWxOb2RlU2V0UHRyIG9sZHNldDsKKworICAgIENIRUNLX1RZUEUoWFBBVEhfTk9ERVNFVCk7CisgICAgb2JqID0gdmFsdWVQb3AoY3R4dCk7CisgICAgb2xkc2V0ID0gb2JqLT5ub2Rlc2V0dmFsOworICAgIGlmICgoaW5keCA8PSAwKSB8fCAob2xkc2V0ID09IE5VTEwpIHx8IChvbGRzZXQtPm5vZGVOciAhPSAxKSkgeworCXhtbFhQYXRoRnJlZU9iamVjdChvYmopOworCXZhbHVlUHVzaChjdHh0LCB4bWxYUGF0aE5ld05vZGVTZXQoTlVMTCkpOworCXJldHVybjsKKyAgICB9CisgICAgY3VyID0geG1sWFB0ckdldE50aENoaWxkKG9sZHNldC0+bm9kZVRhYlswXSwgaW5keCk7CisgICAgaWYgKGN1ciA9PSBOVUxMKSB7CisJeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoTmV3Tm9kZVNldChOVUxMKSk7CisJcmV0dXJuOworICAgIH0KKyAgICBvbGRzZXQtPm5vZGVUYWJbMF0gPSBjdXI7CisgICAgdmFsdWVQdXNoKGN0eHQsIG9iaik7Cit9CisKKy8qKgorICogeG1sWFB0ckV2YWxYUHRyUGFydDoKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBwcmVwYXJzZWQgU2NoZW1lIGZvciB0aGUgWFB0clBhcnQKKyAqIAorICogWFB0clBhcnQgOjo9ICd4cG9pbnRlcicgJygnIFhQdHJFeHByICcpJworICogICAgICAgICAgICB8IFNjaGVtZSAnKCcgU2NoZW1lU3BlY2lmaWNFeHByICcpJworICoKKyAqIFNjaGVtZSAgIDo6PSAgTkNOYW1lIC0gJ3hwb2ludGVyJyBbVkM6IE5vbi1YUG9pbnRlciBzY2hlbWVzXQorICoKKyAqIFNjaGVtZVNwZWNpZmljRXhwciA6Oj0gU3RyaW5nV2l0aEJhbGFuY2VkUGFyZW5zCisgKgorICogU3RyaW5nV2l0aEJhbGFuY2VkUGFyZW5zIDo6PSAgCisgKiAgICAgICAgICAgICAgW14oKV0qICgnKCcgU3RyaW5nV2l0aEJhbGFuY2VkUGFyZW5zICcpJyBbXigpXSopKgorICogICAgICAgICAgICAgIFtWQzogUGFyZW50aGVzaXMgZXNjYXBpbmddCisgKgorICogWFB0ckV4cHIgOjo9IEV4cHIgW1ZDOiBQYXJlbnRoZXNpcyBlc2NhcGluZ10KKyAqCisgKiBWQzogUGFyZW50aGVzaXMgZXNjYXBpbmc6CisgKiAgIFRoZSBlbmQgb2YgYW4gWFBvaW50ZXIgcGFydCBpcyBzaWduYWxlZCBieSB0aGUgcmlnaHQgcGFyZW50aGVzaXMgIikiCisgKiAgIGNoYXJhY3RlciB0aGF0IGlzIGJhbGFuY2VkIHdpdGggdGhlIGxlZnQgcGFyZW50aGVzaXMgIigiIGNoYXJhY3RlcgorICogICB0aGF0IGJlZ2FuIHRoZSBwYXJ0LiBBbnkgdW5iYWxhbmNlZCBwYXJlbnRoZXNpcyBjaGFyYWN0ZXIgaW5zaWRlIHRoZQorICogICBleHByZXNzaW9uLCBldmVuIHdpdGhpbiBsaXRlcmFscywgbXVzdCBiZSBlc2NhcGVkIHdpdGggYSBjaXJjdW1mbGV4ICheKQorICogICBjaGFyYWN0ZXIgcHJlY2VkaW5nIGl0LiBJZiB0aGUgZXhwcmVzc2lvbiBjb250YWlucyBhbnkgbGl0ZXJhbAorICogICBvY2N1cnJlbmNlcyBvZiB0aGUgY2lyY3VtZmxleCwgZWFjaCBtdXN0IGJlIGVzY2FwZWQgd2l0aCBhbiBhZGRpdGlvbmFsCisgKiAgIGNpcmN1bWZsZXggKHRoYXQgaXMsIF5eKS4gSWYgdGhlIHVuZXNjYXBlZCBwYXJlbnRoZXNlcyBpbiB0aGUgZXhwcmVzc2lvbgorICogICBhcmUgbm90IGJhbGFuY2VkLCBhIHN5bnRheCBlcnJvciByZXN1bHRzLgorICoKKyAqIFBhcnNlIGFuZCBldmFsdWF0ZSBhbiBYUHRyUGFydC4gQmFzaWNhbGx5IGl0IGdlbmVyYXRlcyB0aGUgdW5lc2NhcGVkCisgKiBzdHJpbmcgYW5kIGlmIHRoZSBzY2hlbWUgaXMgJ3hwb2ludGVyJyBpdCB3aWxsIGNhbGwgdGhlIFhQYXRoIGludGVycHJldGVyLgorICogCisgKiBUT0RPOiB0aGVyZSBpcyBubyBuZXcgc2NoZW1lIHJlZ2lzdHJhdGlvbiBtZWNoYW5pc20KKyAqLworCitzdGF0aWMgdm9pZAoreG1sWFB0ckV2YWxYUHRyUGFydCh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgeG1sQ2hhciAqbmFtZSkgeworICAgIHhtbENoYXIgKmJ1ZmZlciwgKmN1cjsKKyAgICBpbnQgbGVuOworICAgIGludCBsZXZlbDsKKworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgbmFtZSA9IHhtbFhQYXRoUGFyc2VOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpCisJWFBfRVJST1IoWFBBVEhfRVhQUl9FUlJPUik7CisKKyAgICBpZiAoQ1VSICE9ICcoJykKKwlYUF9FUlJPUihYUEFUSF9FWFBSX0VSUk9SKTsKKyAgICBORVhUOworICAgIGxldmVsID0gMTsKKworICAgIGxlbiA9IHhtbFN0cmxlbihjdHh0LT5jdXIpOworICAgIGxlbisrOworICAgIGJ1ZmZlciA9ICh4bWxDaGFyICopIHhtbE1hbGxvY0F0b21pYyhsZW4gKiBzaXplb2YgKHhtbENoYXIpKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgeG1sWFB0ckVyck1lbW9yeSgiYWxsb2NhdGluZyBidWZmZXIiKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgY3VyID0gYnVmZmVyOworICAgIHdoaWxlIChDVVIgIT0gMCkgeworCWlmIChDVVIgPT0gJyknKSB7CisJICAgIGxldmVsLS07CisJICAgIGlmIChsZXZlbCA9PSAwKSB7CisJCU5FWFQ7CisJCWJyZWFrOworCSAgICB9CisJICAgICpjdXIrKyA9IENVUjsKKwl9IGVsc2UgaWYgKENVUiA9PSAnKCcpIHsKKwkgICAgbGV2ZWwrKzsKKwkgICAgKmN1cisrID0gQ1VSOworCX0gZWxzZSBpZiAoQ1VSID09ICdeJykgeworCSAgICBORVhUOworCSAgICBpZiAoKENVUiA9PSAnKScpIHx8IChDVVIgPT0gJygnKSB8fCAoQ1VSID09ICdeJykpIHsKKwkJKmN1cisrID0gQ1VSOworCSAgICB9IGVsc2UgeworCQkqY3VyKysgPSAnXic7CisJCSpjdXIrKyA9IENVUjsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgICpjdXIrKyA9IENVUjsKKwl9CisJTkVYVDsKKyAgICB9CisgICAgKmN1ciA9IDA7CisKKyAgICBpZiAoKGxldmVsICE9IDApICYmIChDVVIgPT0gMCkpIHsKKwl4bWxGcmVlKGJ1ZmZlcik7CisJWFBfRVJST1IoWFBUUl9TWU5UQVhfRVJST1IpOworICAgIH0KKworICAgIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoeG1sQ2hhciAqKSAieHBvaW50ZXIiKSkgeworCWNvbnN0IHhtbENoYXIgKmxlZnQgPSBDVVJfUFRSOworCisJQ1VSX1BUUiA9IGJ1ZmZlcjsKKwkvKgorCSAqIFRvIGV2YWx1YXRlIGFuIHhwb2ludGVyIHNjaGVtZSBlbGVtZW50ICg0LjMpIHdlIG5lZWQ6CisJICogICBjb250ZXh0IGluaXRpYWxpemVkIHRvIHRoZSByb290CisJICogICBjb250ZXh0IHBvc2l0aW9uIGluaXRhbGl6ZWQgdG8gMQorCSAqICAgY29udGV4dCBzaXplIGluaXRpYWxpemVkIHRvIDEKKwkgKi8KKwljdHh0LT5jb250ZXh0LT5ub2RlID0gKHhtbE5vZGVQdHIpY3R4dC0+Y29udGV4dC0+ZG9jOworCWN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gMTsKKwljdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IDE7CisJeG1sWFBhdGhFdmFsRXhwcihjdHh0KTsKKwlDVVJfUFRSPWxlZnQ7CisgICAgfSBlbHNlIGlmICh4bWxTdHJFcXVhbChuYW1lLCAoeG1sQ2hhciAqKSAiZWxlbWVudCIpKSB7CisJY29uc3QgeG1sQ2hhciAqbGVmdCA9IENVUl9QVFI7CisJeG1sQ2hhciAqbmFtZTI7CisKKwlDVVJfUFRSID0gYnVmZmVyOworCWlmIChidWZmZXJbMF0gPT0gJy8nKSB7CisJICAgIHhtbFhQYXRoUm9vdChjdHh0KTsKKwkgICAgeG1sWFB0ckV2YWxDaGlsZFNlcShjdHh0LCBOVUxMKTsKKwl9IGVsc2UgeworCSAgICBuYW1lMiA9IHhtbFhQYXRoUGFyc2VOYW1lKGN0eHQpOworCSAgICBpZiAobmFtZTIgPT0gTlVMTCkgeworCQlDVVJfUFRSID0gbGVmdDsKKwkJeG1sRnJlZShidWZmZXIpOworCQlYUF9FUlJPUihYUEFUSF9FWFBSX0VSUk9SKTsKKwkgICAgfQorCSAgICB4bWxYUHRyRXZhbENoaWxkU2VxKGN0eHQsIG5hbWUyKTsKKwl9CisJQ1VSX1BUUiA9IGxlZnQ7CisjaWZkZWYgWFBUUl9YTUxOU19TQ0hFTUUKKyAgICB9IGVsc2UgaWYgKHhtbFN0ckVxdWFsKG5hbWUsICh4bWxDaGFyICopICJ4bWxucyIpKSB7CisJY29uc3QgeG1sQ2hhciAqbGVmdCA9IENVUl9QVFI7CisJeG1sQ2hhciAqcHJlZml4OworCXhtbENoYXIgKlVSSTsKKwl4bWxVUklQdHIgdmFsdWU7CisKKwlDVVJfUFRSID0gYnVmZmVyOworICAgICAgICBwcmVmaXggPSB4bWxYUGF0aFBhcnNlTkNOYW1lKGN0eHQpOworCWlmIChwcmVmaXggPT0gTlVMTCkgeworCSAgICB4bWxGcmVlKGJ1ZmZlcik7CisJICAgIHhtbEZyZWUobmFtZSk7CisJICAgIFhQX0VSUk9SKFhQVFJfU1lOVEFYX0VSUk9SKTsKKwl9CisJU0tJUF9CTEFOS1M7CisJaWYgKENVUiAhPSAnPScpIHsKKwkgICAgeG1sRnJlZShwcmVmaXgpOworCSAgICB4bWxGcmVlKGJ1ZmZlcik7CisJICAgIHhtbEZyZWUobmFtZSk7CisJICAgIFhQX0VSUk9SKFhQVFJfU1lOVEFYX0VSUk9SKTsKKwl9CisJTkVYVDsKKwlTS0lQX0JMQU5LUzsKKwkvKiBAQCBjaGVjayBlc2NhcGluZyBpbiB0aGUgWFBvaW50ZXIgV0QgKi8KKworCXZhbHVlID0geG1sUGFyc2VVUkkoKGNvbnN0IGNoYXIgKiljdHh0LT5jdXIpOworCWlmICh2YWx1ZSA9PSBOVUxMKSB7CisJICAgIHhtbEZyZWUocHJlZml4KTsKKwkgICAgeG1sRnJlZShidWZmZXIpOworCSAgICB4bWxGcmVlKG5hbWUpOworCSAgICBYUF9FUlJPUihYUFRSX1NZTlRBWF9FUlJPUik7CisJfQorCVVSSSA9IHhtbFNhdmVVcmkodmFsdWUpOworCXhtbEZyZWVVUkkodmFsdWUpOworCWlmIChVUkkgPT0gTlVMTCkgeworCSAgICB4bWxGcmVlKHByZWZpeCk7CisJICAgIHhtbEZyZWUoYnVmZmVyKTsKKwkgICAgeG1sRnJlZShuYW1lKTsKKwkgICAgWFBfRVJST1IoWFBBVEhfTUVNT1JZX0VSUk9SKTsKKwl9CisJCisJeG1sWFBhdGhSZWdpc3Rlck5zKGN0eHQtPmNvbnRleHQsIHByZWZpeCwgVVJJKTsKKwlDVVJfUFRSID0gbGVmdDsKKwl4bWxGcmVlKFVSSSk7CisJeG1sRnJlZShwcmVmaXgpOworI2VuZGlmIC8qIFhQVFJfWE1MTlNfU0NIRU1FICovCisgICAgfSBlbHNlIHsKKyAgICAgICAgeG1sWFB0ckVycihjdHh0LCBYTUxfWFBUUl9VTktOT1dOX1NDSEVNRSwKKwkJICAgInVuc3VwcG9ydGVkIHNjaGVtZSAnJXMnXG4iLCBuYW1lKTsKKyAgICB9CisgICAgeG1sRnJlZShidWZmZXIpOworICAgIHhtbEZyZWUobmFtZSk7Cit9CisKKy8qKgorICogeG1sWFB0ckV2YWxGdWxsWFB0cjoKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbmFtZTogIHRoZSBwcmVwYXJzZWQgU2NoZW1lIGZvciB0aGUgZmlyc3QgWFB0clBhcnQKKyAqCisgKiBGdWxsWFB0ciA6Oj0gWFB0clBhcnQgKFM/IFhQdHJQYXJ0KSoKKyAqCisgKiBBcyB0aGUgc3BlY3Mgc2F5czoKKyAqIC0tLS0tLS0tLS0tCisgKiBXaGVuIG11bHRpcGxlIFhQdHJQYXJ0cyBhcmUgcHJvdmlkZWQsIHRoZXkgbXVzdCBiZSBldmFsdWF0ZWQgaW4KKyAqIGxlZnQtdG8tcmlnaHQgb3JkZXIuIElmIGV2YWx1YXRpb24gb2Ygb25lIHBhcnQgZmFpbHMsIHRoZSBuZXh0aQorICogaXMgZXZhbHVhdGVkLiBUaGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgY2F1c2UgWFBvaW50ZXIgcGFydCBmYWlsdXJlOgorICoKKyAqIC0gQW4gdW5rbm93biBzY2hlbWUKKyAqIC0gQSBzY2hlbWUgdGhhdCBkb2VzIG5vdCBsb2NhdGUgYW55IHN1Yi1yZXNvdXJjZSBwcmVzZW50IGluIHRoZSByZXNvdXJjZQorICogLSBBIHNjaGVtZSB0aGF0IGlzIG5vdCBhcHBsaWNhYmxlIHRvIHRoZSBtZWRpYSB0eXBlIG9mIHRoZSByZXNvdXJjZQorICoKKyAqIFRoZSBYUG9pbnRlciBhcHBsaWNhdGlvbiBtdXN0IGNvbnN1bWUgYSBmYWlsZWQgWFBvaW50ZXIgcGFydCBhbmQKKyAqIGF0dGVtcHQgdG8gZXZhbHVhdGUgdGhlIG5leHQgb25lLCBpZiBhbnkuIFRoZSByZXN1bHQgb2YgdGhlIGZpcnN0CisgKiBYUG9pbnRlciBwYXJ0IHdob3NlIGV2YWx1YXRpb24gc3VjY2VlZHMgaXMgdGFrZW4gdG8gYmUgdGhlIGZyYWdtZW50CisgKiBsb2NhdGVkIGJ5IHRoZSBYUG9pbnRlciBhcyBhIHdob2xlLiBJZiBhbGwgdGhlIHBhcnRzIGZhaWwsIHRoZSByZXN1bHQKKyAqIGZvciB0aGUgWFBvaW50ZXIgYXMgYSB3aG9sZSBpcyBhIHN1Yi1yZXNvdXJjZSBlcnJvci4KKyAqIC0tLS0tLS0tLS0tCisgKgorICogUGFyc2UgYW5kIGV2YWx1YXRlIGEgRnVsbCBYUHRyIGkuZS4gcG9zc2libHkgYSBjYXNjYWRlIG9mIFhQYXRoIGJhc2VkCisgKiBleHByZXNzaW9ucyBvciBvdGhlciBzY2hlbWVzLgorICovCitzdGF0aWMgdm9pZAoreG1sWFB0ckV2YWxGdWxsWFB0cih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgeG1sQ2hhciAqbmFtZSkgeworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgbmFtZSA9IHhtbFhQYXRoUGFyc2VOYW1lKGN0eHQpOworICAgIGlmIChuYW1lID09IE5VTEwpCisJWFBfRVJST1IoWFBBVEhfRVhQUl9FUlJPUik7CisgICAgd2hpbGUgKG5hbWUgIT0gTlVMTCkgeworCWN0eHQtPmVycm9yID0gWFBBVEhfRVhQUkVTU0lPTl9PSzsKKwl4bWxYUHRyRXZhbFhQdHJQYXJ0KGN0eHQsIG5hbWUpOworCisJLyogaW4gY2FzZSBvZiBzeW50YXggZXJyb3IsIGJyZWFrIGhlcmUgKi8KKwlpZiAoKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spICYmCisgICAgICAgICAgICAoY3R4dC0+ZXJyb3IgIT0gWE1MX1hQVFJfVU5LTk9XTl9TQ0hFTUUpKQorCSAgICByZXR1cm47CisKKwkvKgorCSAqIElmIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhIG5vbi1lbXB0eSBub2Rlc2V0CisJICogb3IgbG9jYXRpb24gc2V0LCByZXR1cm4gaGVyZS4KKwkgKi8KKwlpZiAoY3R4dC0+dmFsdWUgIT0gTlVMTCkgeworCSAgICB4bWxYUGF0aE9iamVjdFB0ciBvYmogPSBjdHh0LT52YWx1ZTsKKworCSAgICBzd2l0Y2ggKG9iai0+dHlwZSkgeworCQljYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOiB7CisJCSAgICB4bWxMb2NhdGlvblNldFB0ciBsb2MgPSBjdHh0LT52YWx1ZS0+dXNlcjsKKwkJICAgIGlmICgobG9jICE9IE5VTEwpICYmIChsb2MtPmxvY05yID4gMCkpCisJCQlyZXR1cm47CisJCSAgICBicmVhazsKKwkJfQorCQljYXNlIFhQQVRIX05PREVTRVQ6IHsKKwkJICAgIHhtbE5vZGVTZXRQdHIgbG9jID0gY3R4dC0+dmFsdWUtPm5vZGVzZXR2YWw7CisJCSAgICBpZiAoKGxvYyAhPSBOVUxMKSAmJiAobG9jLT5ub2RlTnIgPiAwKSkKKwkJCXJldHVybjsKKwkJICAgIGJyZWFrOworCQl9CisJCWRlZmF1bHQ6CisJCSAgICBicmVhazsKKwkgICAgfQorCisJICAgIC8qCisJICAgICAqIEV2YWx1YXRpbmcgdG8gaW1wcm9wZXIgdmFsdWVzIGlzIGVxdWl2YWxlbnQgdG8KKwkgICAgICogYSBzdWItcmVzb3VyY2UgZXJyb3IsIGNsZWFuLXVwIHRoZSBzdGFjaworCSAgICAgKi8KKwkgICAgZG8geworCQlvYmogPSB2YWx1ZVBvcChjdHh0KTsKKwkJaWYgKG9iaiAhPSBOVUxMKSB7CisJCSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKwkJfQorCSAgICB9IHdoaWxlIChvYmogIT0gTlVMTCk7CisJfQorCisJLyoKKwkgKiBJcyB0aGVyZSBhbm90aGVyIFhQb2ludGVyIHBhcnQuCisJICovCisJU0tJUF9CTEFOS1M7CisJbmFtZSA9IHhtbFhQYXRoUGFyc2VOYW1lKGN0eHQpOworICAgIH0KK30KKworLyoqCisgKiB4bWxYUHRyRXZhbENoaWxkU2VxOgorICogQGN0eHQ6ICB0aGUgWFBvaW50ZXIgUGFyc2VyIGNvbnRleHQKKyAqIEBuYW1lOiAgYSBwb3NzaWJsZSBJRCBuYW1lIG9mIHRoZSBjaGlsZCBzZXF1ZW5jZQorICoKKyAqICBDaGlsZFNlcSA6Oj0gJy8xJyAoJy8nIFswLTldKikqCisgKiAgICAgICAgICAgICB8IE5hbWUgKCcvJyBbMC05XSopKworICoKKyAqIFBhcnNlIGFuZCBldmFsdWF0ZSBhIENoaWxkIFNlcXVlbmNlLiBUaGlzIHJvdXRpbmUgYWxzbyBoYW5kbGUgdGhlCisgKiBjYXNlIG9mIGEgQmFyZSBOYW1lIHVzZWQgdG8gZ2V0IGEgZG9jdW1lbnQgSUQuCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUHRyRXZhbENoaWxkU2VxKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCB4bWxDaGFyICpuYW1lKSB7CisgICAgLyoKKyAgICAgKiBYUG9pbnRlciBkb24ndCBhbGxvdyBieSBzeW50YXggdG8gYWRkcmVzcyBpbiBtdXRpcm9vdGVkIHRyZWVzCisgICAgICogdGhpcyBtaWdodCBwcm92ZSB1c2VmdWwgaW4gc29tZSBjYXNlcywgd2FybiBhYm91dCBpdC4KKyAgICAgKi8KKyAgICBpZiAoKG5hbWUgPT0gTlVMTCkgJiYgKENVUiA9PSAnLycpICYmIChOWFQoMSkgIT0gJzEnKSkgeworICAgICAgICB4bWxYUHRyRXJyKGN0eHQsIFhNTF9YUFRSX0NISUxEU0VRX1NUQVJULAorCQkgICAid2FybmluZzogQ2hpbGRTZXEgbm90IHN0YXJ0aW5nIGJ5IC8xXG4iLCBOVUxMKTsKKyAgICB9CisKKyAgICBpZiAobmFtZSAhPSBOVUxMKSB7CisJdmFsdWVQdXNoKGN0eHQsIHhtbFhQYXRoTmV3U3RyaW5nKG5hbWUpKTsKKwl4bWxGcmVlKG5hbWUpOworCXhtbFhQYXRoSWRGdW5jdGlvbihjdHh0LCAxKTsKKwlDSEVDS19FUlJPUjsKKyAgICB9CisKKyAgICB3aGlsZSAoQ1VSID09ICcvJykgeworCWludCBjaGlsZCA9IDA7CisJTkVYVDsKKyAgICAgICAgCisJd2hpbGUgKChDVVIgPj0gJzAnKSAmJiAoQ1VSIDw9ICc5JykpIHsKKwkgICAgY2hpbGQgPSBjaGlsZCAqIDEwICsgKENVUiAtICcwJyk7CisJICAgIE5FWFQ7CisJfQorCXhtbFhQdHJHZXRDaGlsZE5vKGN0eHQsIGNoaWxkKTsKKyAgICB9Cit9CisKKworLyoqCisgKiB4bWxYUHRyRXZhbFhQb2ludGVyOgorICogQGN0eHQ6ICB0aGUgWFBvaW50ZXIgUGFyc2VyIGNvbnRleHQKKyAqCisgKiAgWFBvaW50ZXIgOjo9IE5hbWUKKyAqICAgICAgICAgICAgIHwgQ2hpbGRTZXEKKyAqICAgICAgICAgICAgIHwgRnVsbFhQdHIKKyAqCisgKiBQYXJzZSBhbmQgZXZhbHVhdGUgYW4gWFBvaW50ZXIKKyAqLworc3RhdGljIHZvaWQKK3htbFhQdHJFdmFsWFBvaW50ZXIoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBpZiAoY3R4dC0+dmFsdWVUYWIgPT0gTlVMTCkgeworCS8qIEFsbG9jYXRlIHRoZSB2YWx1ZSBzdGFjayAqLworCWN0eHQtPnZhbHVlVGFiID0gKHhtbFhQYXRoT2JqZWN0UHRyICopIAorCQkJIHhtbE1hbGxvYygxMCAqIHNpemVvZih4bWxYUGF0aE9iamVjdFB0cikpOworCWlmIChjdHh0LT52YWx1ZVRhYiA9PSBOVUxMKSB7CisJICAgIHhtbFhQdHJFcnJNZW1vcnkoImFsbG9jYXRpbmcgZXZhbHVhdGlvbiBjb250ZXh0Iik7CisJICAgIHJldHVybjsKKwl9CisJY3R4dC0+dmFsdWVOciA9IDA7CisJY3R4dC0+dmFsdWVNYXggPSAxMDsKKwljdHh0LT52YWx1ZSA9IE5VTEw7CisgICAgfQorICAgIFNLSVBfQkxBTktTOworICAgIGlmIChDVVIgPT0gJy8nKSB7CisJeG1sWFBhdGhSb290KGN0eHQpOworICAgICAgICB4bWxYUHRyRXZhbENoaWxkU2VxKGN0eHQsIE5VTEwpOworICAgIH0gZWxzZSB7CisJeG1sQ2hhciAqbmFtZTsKKworCW5hbWUgPSB4bWxYUGF0aFBhcnNlTmFtZShjdHh0KTsKKwlpZiAobmFtZSA9PSBOVUxMKQorCSAgICBYUF9FUlJPUihYUEFUSF9FWFBSX0VSUk9SKTsKKwlpZiAoQ1VSID09ICcoJykgeworCSAgICB4bWxYUHRyRXZhbEZ1bGxYUHRyKGN0eHQsIG5hbWUpOworCSAgICAvKiBTaG9ydCBldmFsdWF0aW9uICovCisJICAgIHJldHVybjsKKwl9IGVsc2UgeworCSAgICAvKiB0aGlzIGhhbmRsZSBib3RoIEJhcmUgTmFtZXMgYW5kIENoaWxkIFNlcXVlbmNlcyAqLworCSAgICB4bWxYUHRyRXZhbENoaWxkU2VxKGN0eHQsIG5hbWUpOworCX0KKyAgICB9CisgICAgU0tJUF9CTEFOS1M7CisgICAgaWYgKENVUiAhPSAwKQorCVhQX0VSUk9SKFhQQVRIX0VYUFJfRVJST1IpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCQkJCQkJCQkJKgorICoJCQlHZW5lcmFsIHJvdXRpbmVzCQkJCSoKKyAqCQkJCQkJCQkJKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljCit2b2lkIHhtbFhQdHJTdHJpbmdSYW5nZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpOworc3RhdGljCit2b2lkIHhtbFhQdHJTdGFydFBvaW50RnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncyk7CitzdGF0aWMKK3ZvaWQgeG1sWFB0ckVuZFBvaW50RnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncyk7CitzdGF0aWMKK3ZvaWQgeG1sWFB0ckhlcmVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKTsKK3N0YXRpYwordm9pZCB4bWxYUHRyT3JpZ2luRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncyk7CitzdGF0aWMKK3ZvaWQgeG1sWFB0clJhbmdlSW5zaWRlRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncyk7CitzdGF0aWMKK3ZvaWQgeG1sWFB0clJhbmdlRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncyk7CisKKy8qKgorICogeG1sWFB0ck5ld0NvbnRleHQ6CisgKiBAZG9jOiAgdGhlIFhNTCBkb2N1bWVudAorICogQGhlcmU6ICB0aGUgbm9kZSB0aGF0IGRpcmVjdGx5IGNvbnRhaW5zIHRoZSBYUG9pbnRlciBiZWluZyBldmFsdWF0ZWQgb3IgTlVMTAorICogQG9yaWdpbjogIHRoZSBlbGVtZW50IGZyb20gd2hpY2ggYSB1c2VyIG9yIHByb2dyYW0gaW5pdGlhdGVkIHRyYXZlcnNhbCBvZgorICogICAgICAgICAgIHRoZSBsaW5rLCBvciBOVUxMLgorICoKKyAqIENyZWF0ZSBhIG5ldyBYUG9pbnRlciBjb250ZXh0CisgKgorICogUmV0dXJucyB0aGUgeG1sWFBhdGhDb250ZXh0IGp1c3QgYWxsb2NhdGVkLgorICovCit4bWxYUGF0aENvbnRleHRQdHIKK3htbFhQdHJOZXdDb250ZXh0KHhtbERvY1B0ciBkb2MsIHhtbE5vZGVQdHIgaGVyZSwgeG1sTm9kZVB0ciBvcmlnaW4pIHsKKyAgICB4bWxYUGF0aENvbnRleHRQdHIgcmV0OworCisgICAgcmV0ID0geG1sWFBhdGhOZXdDb250ZXh0KGRvYyk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorCXJldHVybihyZXQpOworICAgIHJldC0+eHB0ciA9IDE7CisgICAgcmV0LT5oZXJlID0gaGVyZTsKKyAgICByZXQtPm9yaWdpbiA9IG9yaWdpbjsKKworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKHJldCwgKHhtbENoYXIgKikicmFuZ2UtdG8iLAorCSAgICAgICAgICAgICAgICAgeG1sWFB0clJhbmdlVG9GdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMocmV0LCAoeG1sQ2hhciAqKSJyYW5nZSIsCisJICAgICAgICAgICAgICAgICB4bWxYUHRyUmFuZ2VGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMocmV0LCAoeG1sQ2hhciAqKSJyYW5nZS1pbnNpZGUiLAorCSAgICAgICAgICAgICAgICAgeG1sWFB0clJhbmdlSW5zaWRlRnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKHJldCwgKHhtbENoYXIgKikic3RyaW5nLXJhbmdlIiwKKwkgICAgICAgICAgICAgICAgIHhtbFhQdHJTdHJpbmdSYW5nZUZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhyZXQsICh4bWxDaGFyICopInN0YXJ0LXBvaW50IiwKKwkgICAgICAgICAgICAgICAgIHhtbFhQdHJTdGFydFBvaW50RnVuY3Rpb24pOworICAgIHhtbFhQYXRoUmVnaXN0ZXJGdW5jKHJldCwgKHhtbENoYXIgKikiZW5kLXBvaW50IiwKKwkgICAgICAgICAgICAgICAgIHhtbFhQdHJFbmRQb2ludEZ1bmN0aW9uKTsKKyAgICB4bWxYUGF0aFJlZ2lzdGVyRnVuYyhyZXQsICh4bWxDaGFyICopImhlcmUiLAorCSAgICAgICAgICAgICAgICAgeG1sWFB0ckhlcmVGdW5jdGlvbik7CisgICAgeG1sWFBhdGhSZWdpc3RlckZ1bmMocmV0LCAoeG1sQ2hhciAqKSIgb3JpZ2luIiwKKwkgICAgICAgICAgICAgICAgIHhtbFhQdHJPcmlnaW5GdW5jdGlvbik7CisKKyAgICByZXR1cm4ocmV0KTsKK30KKworLyoqCisgKiB4bWxYUHRyRXZhbDoKKyAqIEBzdHI6ICB0aGUgWFBvaW50ZXIgZXhwcmVzc2lvbgorICogQGN0eDogIHRoZSBYUG9pbnRlciBjb250ZXh0CisgKgorICogRXZhbHVhdGUgdGhlIFhQYXRoIExvY2F0aW9uIFBhdGggaW4gdGhlIGdpdmVuIGNvbnRleHQuCisgKgorICogUmV0dXJucyB0aGUgeG1sWFBhdGhPYmplY3RQdHIgcmVzdWx0aW5nIGZyb20gdGhlIGV2YWx1YXRpb24gb3IgTlVMTC4KKyAqICAgICAgICAgdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgb2JqZWN0LgorICovCit4bWxYUGF0aE9iamVjdFB0cgoreG1sWFB0ckV2YWwoY29uc3QgeG1sQ2hhciAqc3RyLCB4bWxYUGF0aENvbnRleHRQdHIgY3R4KSB7CisgICAgeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQ7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzID0gTlVMTCwgdG1wOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIGluaXQgPSBOVUxMOworICAgIGludCBzdGFjayA9IDA7CisKKyAgICB4bWxYUGF0aEluaXQoKTsKKworICAgIGlmICgoY3R4ID09IE5VTEwpIHx8IChzdHIgPT0gTlVMTCkpCisJcmV0dXJuKE5VTEwpOworCisgICAgY3R4dCA9IHhtbFhQYXRoTmV3UGFyc2VyQ29udGV4dChzdHIsIGN0eCk7CisgICAgY3R4dC0+eHB0ciA9IDE7CisgICAgeG1sWFB0ckV2YWxYUG9pbnRlcihjdHh0KTsKKworICAgIGlmICgoY3R4dC0+dmFsdWUgIT0gTlVMTCkgJiYKKwkoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkgJiYKKwkoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTE9DQVRJT05TRVQpKSB7CisgICAgICAgIHhtbFhQdHJFcnIoY3R4dCwgWE1MX1hQVFJfRVZBTF9GQUlMRUQsCisJCSJ4bWxYUHRyRXZhbDogZXZhbHVhdGlvbiBmYWlsZWQgdG8gcmV0dXJuIGEgbm9kZSBzZXRcbiIsCisJCSAgIE5VTEwpOworICAgIH0gZWxzZSB7CisJcmVzID0gdmFsdWVQb3AoY3R4dCk7CisgICAgfQorCisgICAgZG8geworICAgICAgICB0bXAgPSB2YWx1ZVBvcChjdHh0KTsKKwlpZiAodG1wICE9IE5VTEwpIHsKKwkgICAgaWYgKHRtcCAhPSBpbml0KSB7CisJCWlmICh0bXAtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgeworCQkgICAgLyoKKwkJICAgICAqIEV2YWx1YXRpb24gbWF5IHB1c2ggYSByb290IG5vZGVzZXQgd2hpY2ggaXMgdW51c2VkCisJCSAgICAgKi8KKwkJICAgIHhtbE5vZGVTZXRQdHIgc2V0OyAKKwkJICAgIHNldCA9IHRtcC0+bm9kZXNldHZhbDsKKwkJICAgIGlmICgoc2V0LT5ub2RlTnIgIT0gMSkgfHwKKwkJCShzZXQtPm5vZGVUYWJbMF0gIT0gKHhtbE5vZGVQdHIpIGN0eC0+ZG9jKSkKKwkJCXN0YWNrKys7CisJCX0gZWxzZQorCQkgICAgc3RhY2srKzsgICAgCisJICAgIH0KKwkgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHRtcCk7CisgICAgICAgIH0KKyAgICB9IHdoaWxlICh0bXAgIT0gTlVMTCk7CisgICAgaWYgKHN0YWNrICE9IDApIHsKKyAgICAgICAgeG1sWFB0ckVycihjdHh0LCBYTUxfWFBUUl9FWFRSQV9PQkpFQ1RTLAorCQkgICAieG1sWFB0ckV2YWw6IG9iamVjdChzKSBsZWZ0IG9uIHRoZSBldmFsIHN0YWNrXG4iLAorCQkgICBOVUxMKTsKKyAgICB9CisgICAgaWYgKGN0eHQtPmVycm9yICE9IFhQQVRIX0VYUFJFU1NJT05fT0spIHsKKwl4bWxYUGF0aEZyZWVPYmplY3QocmVzKTsKKwlyZXMgPSBOVUxMOworICAgIH0KKyAgICAgICAgCisgICAgeG1sWFBhdGhGcmVlUGFyc2VyQ29udGV4dChjdHh0KTsKKyAgICByZXR1cm4ocmVzKTsKK30KKworLyoqCisgKiB4bWxYUHRyQnVpbGRSYW5nZU5vZGVMaXN0OgorICogQHJhbmdlOiAgYSByYW5nZSBvYmplY3QKKyAqCisgKiBCdWlsZCBhIG5vZGUgbGlzdCB0cmVlIGNvcHkgb2YgdGhlIHJhbmdlCisgKgorICogUmV0dXJucyBhbiB4bWxOb2RlUHRyIGxpc3Qgb3IgTlVMTC4KKyAqICAgICAgICAgdGhlIGNhbGxlciBoYXMgdG8gZnJlZSB0aGUgbm9kZSB0cmVlLgorICovCitzdGF0aWMgeG1sTm9kZVB0cgoreG1sWFB0ckJ1aWxkUmFuZ2VOb2RlTGlzdCh4bWxYUGF0aE9iamVjdFB0ciByYW5nZSkgeworICAgIC8qIHBvaW50ZXJzIHRvIGdlbmVyYXRlZCBub2RlcyAqLworICAgIHhtbE5vZGVQdHIgbGlzdCA9IE5VTEwsIGxhc3QgPSBOVUxMLCBwYXJlbnQgPSBOVUxMLCB0bXA7CisgICAgLyogcG9pbnRlcnMgdG8gdHJhdmVyc2FsIG5vZGVzICovCisgICAgeG1sTm9kZVB0ciBzdGFydCwgY3VyLCBlbmQ7CisgICAgaW50IGluZGV4MSwgaW5kZXgyOworCisgICAgaWYgKHJhbmdlID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChyYW5nZS0+dHlwZSAhPSBYUEFUSF9SQU5HRSkKKwlyZXR1cm4oTlVMTCk7CisgICAgc3RhcnQgPSAoeG1sTm9kZVB0cikgcmFuZ2UtPnVzZXI7CisKKyAgICBpZiAoc3RhcnQgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgZW5kID0gcmFuZ2UtPnVzZXIyOworICAgIGlmIChlbmQgPT0gTlVMTCkKKwlyZXR1cm4oeG1sQ29weU5vZGUoc3RhcnQsIDEpKTsKKworICAgIGN1ciA9IHN0YXJ0OworICAgIGluZGV4MSA9IHJhbmdlLT5pbmRleDsKKyAgICBpbmRleDIgPSByYW5nZS0+aW5kZXgyOworICAgIHdoaWxlIChjdXIgIT0gTlVMTCkgeworCWlmIChjdXIgPT0gZW5kKSB7CisJICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX1RFWFRfTk9ERSkgeworCQljb25zdCB4bWxDaGFyICpjb250ZW50ID0gY3VyLT5jb250ZW50OworCQlpbnQgbGVuOworCisJCWlmIChjb250ZW50ID09IE5VTEwpIHsKKwkJICAgIHRtcCA9IHhtbE5ld1RleHRMZW4oTlVMTCwgMCk7CisJCX0gZWxzZSB7CisJCSAgICBsZW4gPSBpbmRleDI7CisJCSAgICBpZiAoKGN1ciA9PSBzdGFydCkgJiYgKGluZGV4MSA+IDEpKSB7CisJCQljb250ZW50ICs9IChpbmRleDEgLSAxKTsKKwkJCWxlbiAtPSAoaW5kZXgxIC0gMSk7CisJCQlpbmRleDEgPSAwOworCQkgICAgfSBlbHNlIHsKKwkJCWxlbiA9IGluZGV4MjsKKwkJICAgIH0KKwkJICAgIHRtcCA9IHhtbE5ld1RleHRMZW4oY29udGVudCwgbGVuKTsKKwkJfQorCQkvKiBzaW5nbGUgc3ViIHRleHQgbm9kZSBzZWxlY3Rpb24gKi8KKwkJaWYgKGxpc3QgPT0gTlVMTCkKKwkJICAgIHJldHVybih0bXApOworCQkvKiBwcnVuZSBhbmQgcmV0dXJuIGZ1bGwgc2V0ICovCisJCWlmIChsYXN0ICE9IE5VTEwpCisJCSAgICB4bWxBZGROZXh0U2libGluZyhsYXN0LCB0bXApOworCQllbHNlIAorCQkgICAgeG1sQWRkQ2hpbGQocGFyZW50LCB0bXApOworCQlyZXR1cm4obGlzdCk7CisJICAgIH0gZWxzZSB7CisJCXRtcCA9IHhtbENvcHlOb2RlKGN1ciwgMCk7CisJCWlmIChsaXN0ID09IE5VTEwpCisJCSAgICBsaXN0ID0gdG1wOworCQllbHNlIHsKKwkJICAgIGlmIChsYXN0ICE9IE5VTEwpCisJCQl4bWxBZGROZXh0U2libGluZyhsYXN0LCB0bXApOworCQkgICAgZWxzZQorCQkJeG1sQWRkQ2hpbGQocGFyZW50LCB0bXApOworCQl9CisJCWxhc3QgPSBOVUxMOworCQlwYXJlbnQgPSB0bXA7CisKKwkJaWYgKGluZGV4MiA+IDEpIHsKKwkJICAgIGVuZCA9IHhtbFhQdHJHZXROdGhDaGlsZChjdXIsIGluZGV4MiAtIDEpOworCQkgICAgaW5kZXgyID0gMDsKKwkJfQorCQlpZiAoKGN1ciA9PSBzdGFydCkgJiYgKGluZGV4MSA+IDEpKSB7CisJCSAgICBjdXIgPSB4bWxYUHRyR2V0TnRoQ2hpbGQoY3VyLCBpbmRleDEgLSAxKTsKKwkJICAgIGluZGV4MSA9IDA7CisJCX0gZWxzZSB7CisJCSAgICBjdXIgPSBjdXItPmNoaWxkcmVuOworCQl9CisJCS8qCisJCSAqIE5vdyBnYXRoZXIgdGhlIHJlbWFpbmluZyBub2RlcyBmcm9tIGN1ciB0byBlbmQKKwkJICovCisJCWNvbnRpbnVlOyAvKiB3aGlsZSAqLworCSAgICB9CisJfSBlbHNlIGlmICgoY3VyID09IHN0YXJ0KSAmJgorCQkgICAobGlzdCA9PSBOVUxMKSAvKiBsb29rcyBzdXBlcmZsdW91cyBidXQgLi4uICovICkgeworCSAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfVEVYVF9OT0RFKSB8fAorCQkoY3VyLT50eXBlID09IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisJCWNvbnN0IHhtbENoYXIgKmNvbnRlbnQgPSBjdXItPmNvbnRlbnQ7CisKKwkJaWYgKGNvbnRlbnQgPT0gTlVMTCkgeworCQkgICAgdG1wID0geG1sTmV3VGV4dExlbihOVUxMLCAwKTsKKwkJfSBlbHNlIHsKKwkJICAgIGlmIChpbmRleDEgPiAxKSB7CisJCQljb250ZW50ICs9IChpbmRleDEgLSAxKTsKKwkJICAgIH0KKwkJICAgIHRtcCA9IHhtbE5ld1RleHQoY29udGVudCk7CisJCX0KKwkJbGFzdCA9IGxpc3QgPSB0bXA7CisJICAgIH0gZWxzZSB7CisJCWlmICgoY3VyID09IHN0YXJ0KSAmJiAoaW5kZXgxID4gMSkpIHsKKwkJICAgIHRtcCA9IHhtbENvcHlOb2RlKGN1ciwgMCk7CisJCSAgICBsaXN0ID0gdG1wOworCQkgICAgcGFyZW50ID0gdG1wOworCQkgICAgbGFzdCA9IE5VTEw7CisJCSAgICBjdXIgPSB4bWxYUHRyR2V0TnRoQ2hpbGQoY3VyLCBpbmRleDEgLSAxKTsKKwkJICAgIGluZGV4MSA9IDA7CisJCSAgICAvKgorCQkgICAgICogTm93IGdhdGhlciB0aGUgcmVtYWluaW5nIG5vZGVzIGZyb20gY3VyIHRvIGVuZAorCQkgICAgICovCisJCSAgICBjb250aW51ZTsgLyogd2hpbGUgKi8KKwkJfQorCQl0bXAgPSB4bWxDb3B5Tm9kZShjdXIsIDEpOworCQlsaXN0ID0gdG1wOworCQlwYXJlbnQgPSBOVUxMOworCQlsYXN0ID0gdG1wOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgdG1wID0gTlVMTDsKKwkgICAgc3dpdGNoIChjdXItPnR5cGUpIHsKKwkJY2FzZSBYTUxfRFREX05PREU6CisJCWNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKwkJY2FzZSBYTUxfQVRUUklCVVRFX0RFQ0w6CisJCWNhc2UgWE1MX0VOVElUWV9OT0RFOgorCQkgICAgLyogRG8gbm90IGNvcHkgRFREIGluZm9ybWF0aW9ucyAqLworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0VOVElUWV9ERUNMOgorCQkgICAgVE9ETyAvKiBoYW5kbGUgY3Jvc3NpbmcgZW50aXRpZXMgLT4gc3RhY2sgbmVlZGVkICovCisJCSAgICBicmVhazsKKwkJY2FzZSBYTUxfWElOQ0xVREVfU1RBUlQ6CisJCWNhc2UgWE1MX1hJTkNMVURFX0VORDoKKwkJICAgIC8qIGRvbid0IGNvbnNpZGVyIGl0IHBhcnQgb2YgdGhlIHRyZWUgY29udGVudCAqLworCQkgICAgYnJlYWs7CisJCWNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCQkgICAgLyogSHVtbSwgc2hvdWxkIG5vdCBoYXBwZW4gISAqLworCQkgICAgU1RSQU5HRQorCQkgICAgYnJlYWs7CisJCWRlZmF1bHQ6CisJCSAgICB0bXAgPSB4bWxDb3B5Tm9kZShjdXIsIDEpOworCQkgICAgYnJlYWs7CisJICAgIH0KKwkgICAgaWYgKHRtcCAhPSBOVUxMKSB7CisJCWlmICgobGlzdCA9PSBOVUxMKSB8fCAoKGxhc3QgPT0gTlVMTCkgJiYgKHBhcmVudCA9PSBOVUxMKSkpICB7CisJCSAgICBTVFJBTkdFCisJCSAgICByZXR1cm4oTlVMTCk7CisJCX0KKwkJaWYgKGxhc3QgIT0gTlVMTCkKKwkJICAgIHhtbEFkZE5leHRTaWJsaW5nKGxhc3QsIHRtcCk7CisJCWVsc2UgeworCQkgICAgeG1sQWRkQ2hpbGQocGFyZW50LCB0bXApOworCQkgICAgbGFzdCA9IHRtcDsKKwkJfQorCSAgICB9CisJfQorCS8qCisJICogU2tpcCB0byBuZXh0IG5vZGUgaW4gZG9jdW1lbnQgb3JkZXIKKwkgKi8KKwlpZiAoKGxpc3QgPT0gTlVMTCkgfHwgKChsYXN0ID09IE5VTEwpICYmIChwYXJlbnQgPT0gTlVMTCkpKSAgeworCSAgICBTVFJBTkdFCisJICAgIHJldHVybihOVUxMKTsKKwl9CisJY3VyID0geG1sWFB0ckFkdmFuY2VOb2RlKGN1ciwgTlVMTCk7CisgICAgfQorICAgIHJldHVybihsaXN0KTsKK30KKworLyoqCisgKiB4bWxYUHRyQnVpbGROb2RlTGlzdDoKKyAqIEBvYmo6ICB0aGUgWFBvaW50ZXIgcmVzdWx0IGZyb20gdGhlIGV2YWx1YXRpb24uCisgKgorICogQnVpbGQgYSBub2RlIGxpc3QgdHJlZSBjb3B5IG9mIHRoZSBYUG9pbnRlciByZXN1bHQuCisgKiBUaGlzIHdpbGwgZHJvcCBBdHRyaWJ1dGVzIGFuZCBOYW1lc3BhY2UgZGVjbGFyYXRpb25zLgorICoKKyAqIFJldHVybnMgYW4geG1sTm9kZVB0ciBsaXN0IG9yIE5VTEwuCisgKiAgICAgICAgIHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUgdGhlIG5vZGUgdHJlZS4KKyAqLworeG1sTm9kZVB0cgoreG1sWFB0ckJ1aWxkTm9kZUxpc3QoeG1sWFBhdGhPYmplY3RQdHIgb2JqKSB7CisgICAgeG1sTm9kZVB0ciBsaXN0ID0gTlVMTCwgbGFzdCA9IE5VTEw7CisgICAgaW50IGk7CisKKyAgICBpZiAob2JqID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIHN3aXRjaCAob2JqLT50eXBlKSB7CisgICAgICAgIGNhc2UgWFBBVEhfTk9ERVNFVDogeworCSAgICB4bWxOb2RlU2V0UHRyIHNldCA9IG9iai0+bm9kZXNldHZhbDsKKwkgICAgaWYgKHNldCA9PSBOVUxMKQorCQlyZXR1cm4oTlVMTCk7CisJICAgIGZvciAoaSA9IDA7aSA8IHNldC0+bm9kZU5yO2krKykgeworCQlpZiAoc2V0LT5ub2RlVGFiW2ldID09IE5VTEwpCisJCSAgICBjb250aW51ZTsKKwkJc3dpdGNoIChzZXQtPm5vZGVUYWJbaV0tPnR5cGUpIHsKKwkJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERToKKwkJICAgIGNhc2UgWE1MX0VMRU1FTlRfTk9ERToKKwkJICAgIGNhc2UgWE1MX0VOVElUWV9SRUZfTk9ERToKKwkJICAgIGNhc2UgWE1MX0VOVElUWV9OT0RFOgorCQkgICAgY2FzZSBYTUxfUElfTk9ERToKKwkJICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkJICAgIGNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisJCSAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6CisjaWZkZWYgTElCWE1MX0RPQ0JfRU5BQkxFRAorCQkgICAgY2FzZSBYTUxfRE9DQl9ET0NVTUVOVF9OT0RFOgorI2VuZGlmCisJCSAgICBjYXNlIFhNTF9YSU5DTFVERV9TVEFSVDoKKwkJICAgIGNhc2UgWE1MX1hJTkNMVURFX0VORDoKKwkJCWJyZWFrOworCQkgICAgY2FzZSBYTUxfQVRUUklCVVRFX05PREU6CisJCSAgICBjYXNlIFhNTF9OQU1FU1BBQ0VfREVDTDoKKwkJICAgIGNhc2UgWE1MX0RPQ1VNRU5UX1RZUEVfTk9ERToKKwkJICAgIGNhc2UgWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERToKKwkJICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJCSAgICBjYXNlIFhNTF9EVERfTk9ERToKKwkJICAgIGNhc2UgWE1MX0VMRU1FTlRfREVDTDoKKwkJICAgIGNhc2UgWE1MX0FUVFJJQlVURV9ERUNMOgorCQkgICAgY2FzZSBYTUxfRU5USVRZX0RFQ0w6CisJCQljb250aW51ZTsgLyogZm9yICovCisJCX0KKwkJaWYgKGxhc3QgPT0gTlVMTCkKKwkJICAgIGxpc3QgPSBsYXN0ID0geG1sQ29weU5vZGUoc2V0LT5ub2RlVGFiW2ldLCAxKTsKKwkJZWxzZSB7CisJCSAgICB4bWxBZGROZXh0U2libGluZyhsYXN0LCB4bWxDb3B5Tm9kZShzZXQtPm5vZGVUYWJbaV0sIDEpKTsKKwkJICAgIGlmIChsYXN0LT5uZXh0ICE9IE5VTEwpCisJCQlsYXN0ID0gbGFzdC0+bmV4dDsKKwkJfQorCSAgICB9CisJICAgIGJyZWFrOworCX0KKwljYXNlIFhQQVRIX0xPQ0FUSU9OU0VUOiB7CisJICAgIHhtbExvY2F0aW9uU2V0UHRyIHNldCA9ICh4bWxMb2NhdGlvblNldFB0cikgb2JqLT51c2VyOworCSAgICBpZiAoc2V0ID09IE5VTEwpCisJCXJldHVybihOVUxMKTsKKwkgICAgZm9yIChpID0gMDtpIDwgc2V0LT5sb2NOcjtpKyspIHsKKwkJaWYgKGxhc3QgPT0gTlVMTCkKKwkJICAgIGxpc3QgPSBsYXN0ID0geG1sWFB0ckJ1aWxkTm9kZUxpc3Qoc2V0LT5sb2NUYWJbaV0pOworCQllbHNlCisJCSAgICB4bWxBZGROZXh0U2libGluZyhsYXN0LAorCQkJICAgIHhtbFhQdHJCdWlsZE5vZGVMaXN0KHNldC0+bG9jVGFiW2ldKSk7CisJCWlmIChsYXN0ICE9IE5VTEwpIHsKKwkJICAgIHdoaWxlIChsYXN0LT5uZXh0ICE9IE5VTEwpCisJCQlsYXN0ID0gbGFzdC0+bmV4dDsKKwkJfQorCSAgICB9CisJICAgIGJyZWFrOworCX0KKwljYXNlIFhQQVRIX1JBTkdFOgorCSAgICByZXR1cm4oeG1sWFB0ckJ1aWxkUmFuZ2VOb2RlTGlzdChvYmopKTsKKwljYXNlIFhQQVRIX1BPSU5UOgorCSAgICByZXR1cm4oeG1sQ29weU5vZGUob2JqLT51c2VyLCAwKSk7CisJZGVmYXVsdDoKKwkgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybihsaXN0KTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkqCisgKgkJCVhQb2ludGVyIGZ1bmN0aW9ucwkJCQkqCisgKgkJCQkJCQkJCSoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogeG1sWFB0ck5iTG9jQ2hpbGRyZW46CisgKiBAbm9kZTogIGFuIHhtbE5vZGVQdHIKKyAqCisgKiBDb3VudCB0aGUgbnVtYmVyIG9mIGxvY2F0aW9uIGNoaWxkcmVuIG9mIEBub2RlIG9yIHRoZSBsZW5ndGggb2YgdGhlCisgKiBzdHJpbmcgdmFsdWUgaW4gY2FzZSBvZiB0ZXh0L1BJL0NvbW1lbnRzIG5vZGVzCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxvY2F0aW9uIGNoaWxkcmVuCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQdHJOYkxvY0NoaWxkcmVuKHhtbE5vZGVQdHIgbm9kZSkgeworICAgIGludCByZXQgPSAwOworICAgIGlmIChub2RlID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBzd2l0Y2ggKG5vZGUtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9ET0NVTUVOVF9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTEVNRU5UX05PREU6CisJICAgIG5vZGUgPSBub2RlLT5jaGlsZHJlbjsKKwkgICAgd2hpbGUgKG5vZGUgIT0gTlVMTCkgeworCQlpZiAobm9kZS0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKQorCQkgICAgcmV0Kys7CisJCW5vZGUgPSBub2RlLT5uZXh0OworCSAgICB9CisJICAgIGJyZWFrOworICAgICAgICBjYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkgICAgcmV0dXJuKC0xKTsKKworICAgICAgICBjYXNlIFhNTF9QSV9OT0RFOgorICAgICAgICBjYXNlIFhNTF9DT01NRU5UX05PREU6CisgICAgICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKyAgICAgICAgY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICBjYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJICAgIHJldCA9IHhtbFN0cmxlbihub2RlLT5jb250ZW50KTsKKwkgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgcmV0dXJuKC0xKTsKKyAgICB9CisgICAgcmV0dXJuKHJldCk7Cit9CisKKy8qKgorICogeG1sWFB0ckhlcmVGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3MKKyAqCisgKiBGdW5jdGlvbiBpbXBsZW1lbnRpbmcgaGVyZSgpIG9wZXJhdGlvbiAKKyAqIGFzIGRlc2NyaWJlZCBpbiA1LjQuMworICovCitzdGF0aWMgdm9pZAoreG1sWFB0ckhlcmVGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgQ0hFQ0tfQVJJVFkoMCk7CisKKyAgICBpZiAoY3R4dC0+Y29udGV4dC0+aGVyZSA9PSBOVUxMKQorCVhQX0VSUk9SKFhQVFJfU1lOVEFYX0VSUk9SKTsKKyAgICAKKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMoY3R4dC0+Y29udGV4dC0+aGVyZSwgTlVMTCkpOworfQorCisvKioKKyAqIHhtbFhQdHJPcmlnaW5GdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3MKKyAqCisgKiBGdW5jdGlvbiBpbXBsZW1lbnRpbmcgb3JpZ2luKCkgb3BlcmF0aW9uIAorICogYXMgZGVzY3JpYmVkIGluIDUuNC4zCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUHRyT3JpZ2luRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIENIRUNLX0FSSVRZKDApOworCisgICAgaWYgKGN0eHQtPmNvbnRleHQtPm9yaWdpbiA9PSBOVUxMKQorCVhQX0VSUk9SKFhQVFJfU1lOVEFYX0VSUk9SKTsKKyAgICAKKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFB0ck5ld0xvY2F0aW9uU2V0Tm9kZXMoY3R4dC0+Y29udGV4dC0+b3JpZ2luLCBOVUxMKSk7Cit9CisKKy8qKgorICogeG1sWFB0clN0YXJ0UG9pbnRGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3MKKyAqCisgKiBGdW5jdGlvbiBpbXBsZW1lbnRpbmcgc3RhcnQtcG9pbnQoKSBvcGVyYXRpb24gCisgKiBhcyBkZXNjcmliZWQgaW4gNS40LjMKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqIGxvY2F0aW9uLXNldCBzdGFydC1wb2ludChsb2NhdGlvbi1zZXQpCisgKgorICogRm9yIGVhY2ggbG9jYXRpb24geCBpbiB0aGUgYXJndW1lbnQgbG9jYXRpb24tc2V0LCBzdGFydC1wb2ludCBhZGRzIGEKKyAqIGxvY2F0aW9uIG9mIHR5cGUgcG9pbnQgdG8gdGhlIHJlc3VsdCBsb2NhdGlvbi1zZXQuIFRoYXQgcG9pbnQgcmVwcmVzZW50cworICogdGhlIHN0YXJ0IHBvaW50IG9mIGxvY2F0aW9uIHggYW5kIGlzIGRldGVybWluZWQgYnkgdGhlIGZvbGxvd2luZyBydWxlczoKKyAqCisgKiAtIElmIHggaXMgb2YgdHlwZSBwb2ludCwgdGhlIHN0YXJ0IHBvaW50IGlzIHguCisgKiAtIElmIHggaXMgb2YgdHlwZSByYW5nZSwgdGhlIHN0YXJ0IHBvaW50IGlzIHRoZSBzdGFydCBwb2ludCBvZiB4LgorICogLSBJZiB4IGlzIG9mIHR5cGUgcm9vdCwgZWxlbWVudCwgdGV4dCwgY29tbWVudCwgb3IgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiwKKyAqIC0gdGhlIGNvbnRhaW5lciBub2RlIG9mIHRoZSBzdGFydCBwb2ludCBpcyB4IGFuZCB0aGUgaW5kZXggaXMgMC4KKyAqIC0gSWYgeCBpcyBvZiB0eXBlIGF0dHJpYnV0ZSBvciBuYW1lc3BhY2UsIHRoZSBmdW5jdGlvbiBtdXN0IHNpZ25hbCBhCisgKiAgIHN5bnRheCBlcnJvci4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUHRyU3RhcnRQb2ludEZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB0bXAsIG9iaiwgcG9pbnQ7CisgICAgeG1sTG9jYXRpb25TZXRQdHIgbmV3c2V0ID0gTlVMTDsKKyAgICB4bWxMb2NhdGlvblNldFB0ciBvbGRzZXQgPSBOVUxMOworCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgaWYgKChjdHh0LT52YWx1ZSA9PSBOVUxMKSB8fAorCSgoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTE9DQVRJT05TRVQpICYmCisJIChjdHh0LT52YWx1ZS0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSkpCisgICAgICAgIFhQX0VSUk9SKFhQQVRIX0lOVkFMSURfVFlQRSkKKworICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmIChvYmotPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgeworCS8qCisJICogRmlyc3QgY29udmVydCB0byBhIGxvY2F0aW9uIHNldAorCSAqLworCXRtcCA9IHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQob2JqLT5ub2Rlc2V0dmFsKTsKKwl4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKwlvYmogPSB0bXA7CisgICAgfQorCisgICAgbmV3c2V0ID0geG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKE5VTEwpOworICAgIGlmIChuZXdzZXQgPT0gTlVMTCkgeworCXhtbFhQYXRoRnJlZU9iamVjdChvYmopOworICAgICAgICBYUF9FUlJPUihYUEFUSF9NRU1PUllfRVJST1IpOworICAgIH0KKyAgICBvbGRzZXQgPSAoeG1sTG9jYXRpb25TZXRQdHIpIG9iai0+dXNlcjsKKyAgICBpZiAob2xkc2V0ICE9IE5VTEwpIHsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBvbGRzZXQtPmxvY05yOyBpKyspIHsKKwkgICAgdG1wID0gb2xkc2V0LT5sb2NUYWJbaV07CisJICAgIGlmICh0bXAgPT0gTlVMTCkKKwkJY29udGludWU7CisJICAgIHBvaW50ID0gTlVMTDsKKwkgICAgc3dpdGNoICh0bXAtPnR5cGUpIHsKKwkJY2FzZSBYUEFUSF9QT0lOVDoKKwkJICAgIHBvaW50ID0geG1sWFB0ck5ld1BvaW50KHRtcC0+dXNlciwgdG1wLT5pbmRleCk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9SQU5HRTogeworCQkgICAgeG1sTm9kZVB0ciBub2RlID0gdG1wLT51c2VyOworCQkgICAgaWYgKG5vZGUgIT0gTlVMTCkgeworCQkJaWYgKG5vZGUtPnR5cGUgPT0gWE1MX0FUVFJJQlVURV9OT0RFKSB7CisJCQkgICAgLyogVE9ETzogTmFtZXNwYWNlIE5vZGVzID8/PyAqLworCQkJICAgIHhtbFhQYXRoRnJlZU9iamVjdChvYmopOworCQkJICAgIHhtbFhQdHJGcmVlTG9jYXRpb25TZXQobmV3c2V0KTsKKwkJCSAgICBYUF9FUlJPUihYUFRSX1NZTlRBWF9FUlJPUik7CisJCQl9CisJCQlwb2ludCA9IHhtbFhQdHJOZXdQb2ludChub2RlLCB0bXAtPmluZGV4KTsKKwkJICAgIH0KKwkJICAgIGJyZWFrOworCSAgICAgICAgfQorCQlkZWZhdWx0OgorCQkgICAgLyoqKiBTaG91bGQgd2UgcmFpc2UgYW4gZXJyb3IgPworCQkgICAgeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisJCSAgICB4bWxYUGF0aEZyZWVPYmplY3QobmV3c2V0KTsKKwkJICAgIFhQX0VSUk9SKFhQQVRIX0lOVkFMSURfVFlQRSkKKwkJICAgICoqKi8KKwkJICAgIGJyZWFrOworCSAgICB9CisgICAgICAgICAgICBpZiAocG9pbnQgIT0gTlVMTCkKKwkJeG1sWFB0ckxvY2F0aW9uU2V0QWRkKG5ld3NldCwgcG9pbnQpOworCX0KKyAgICB9CisgICAgeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisgICAgdmFsdWVQdXNoKGN0eHQsIHhtbFhQdHJXcmFwTG9jYXRpb25TZXQobmV3c2V0KSk7Cit9CisKKy8qKgorICogeG1sWFB0ckVuZFBvaW50RnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUG9pbnRlciBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmdzCisgKgorICogRnVuY3Rpb24gaW1wbGVtZW50aW5nIGVuZC1wb2ludCgpIG9wZXJhdGlvbiAKKyAqIGFzIGRlc2NyaWJlZCBpbiA1LjQuMworICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogbG9jYXRpb24tc2V0IGVuZC1wb2ludChsb2NhdGlvbi1zZXQpCisgKgorICogRm9yIGVhY2ggbG9jYXRpb24geCBpbiB0aGUgYXJndW1lbnQgbG9jYXRpb24tc2V0LCBlbmQtcG9pbnQgYWRkcyBhCisgKiBsb2NhdGlvbiBvZiB0eXBlIHBvaW50IHRvIHRoZSByZXN1bHQgbG9jYXRpb24tc2V0LiBUaGF0IHBvaW50IHJlcHJlc2VudHMKKyAqIHRoZSBlbmQgcG9pbnQgb2YgbG9jYXRpb24geCBhbmQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgZm9sbG93aW5nIHJ1bGVzOgorICoKKyAqIC0gSWYgeCBpcyBvZiB0eXBlIHBvaW50LCB0aGUgcmVzdWx0aW5nIHBvaW50IGlzIHguCisgKiAtIElmIHggaXMgb2YgdHlwZSByYW5nZSwgdGhlIHJlc3VsdGluZyBwb2ludCBpcyB0aGUgZW5kIHBvaW50IG9mIHguCisgKiAtIElmIHggaXMgb2YgdHlwZSByb290IG9yIGVsZW1lbnQsIHRoZSBjb250YWluZXIgbm9kZSBvZiB0aGUgcmVzdWx0aW5nCisgKiAgIHBvaW50IGlzIHggYW5kIHRoZSBpbmRleCBpcyB0aGUgbnVtYmVyIG9mIGxvY2F0aW9uIGNoaWxkcmVuIG9mIHguCisgKiAtIElmIHggaXMgb2YgdHlwZSB0ZXh0LCBjb21tZW50LCBvciBwcm9jZXNzaW5nIGluc3RydWN0aW9uLCB0aGUgY29udGFpbmVyCisgKiAgIG5vZGUgb2YgdGhlIHJlc3VsdGluZyBwb2ludCBpcyB4IGFuZCB0aGUgaW5kZXggaXMgdGhlIGxlbmd0aCBvZiB0aGUKKyAqICAgc3RyaW5nLXZhbHVlIG9mIHguCisgKiAtIElmIHggaXMgb2YgdHlwZSBhdHRyaWJ1dGUgb3IgbmFtZXNwYWNlLCB0aGUgZnVuY3Rpb24gbXVzdCBzaWduYWwgYQorICogICBzeW50YXggZXJyb3IuCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUHRyRW5kUG9pbnRGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgdG1wLCBvYmosIHBvaW50OworICAgIHhtbExvY2F0aW9uU2V0UHRyIG5ld3NldCA9IE5VTEw7CisgICAgeG1sTG9jYXRpb25TZXRQdHIgb2xkc2V0ID0gTlVMTDsKKworICAgIENIRUNLX0FSSVRZKDEpOworICAgIGlmICgoY3R4dC0+dmFsdWUgPT0gTlVMTCkgfHwKKwkoKGN0eHQtPnZhbHVlLT50eXBlICE9IFhQQVRIX0xPQ0FUSU9OU0VUKSAmJgorCSAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkpKQorICAgICAgICBYUF9FUlJPUihYUEFUSF9JTlZBTElEX1RZUEUpCisKKyAgICBvYmogPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBpZiAob2JqLT50eXBlID09IFhQQVRIX05PREVTRVQpIHsKKwkvKgorCSAqIEZpcnN0IGNvbnZlcnQgdG8gYSBsb2NhdGlvbiBzZXQKKwkgKi8KKwl0bXAgPSB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0KG9iai0+bm9kZXNldHZhbCk7CisJeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisJb2JqID0gdG1wOworICAgIH0KKworICAgIG5ld3NldCA9IHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZShOVUxMKTsKKyAgICBvbGRzZXQgPSAoeG1sTG9jYXRpb25TZXRQdHIpIG9iai0+dXNlcjsKKyAgICBpZiAob2xkc2V0ICE9IE5VTEwpIHsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBvbGRzZXQtPmxvY05yOyBpKyspIHsKKwkgICAgdG1wID0gb2xkc2V0LT5sb2NUYWJbaV07CisJICAgIGlmICh0bXAgPT0gTlVMTCkKKwkJY29udGludWU7CisJICAgIHBvaW50ID0gTlVMTDsKKwkgICAgc3dpdGNoICh0bXAtPnR5cGUpIHsKKwkJY2FzZSBYUEFUSF9QT0lOVDoKKwkJICAgIHBvaW50ID0geG1sWFB0ck5ld1BvaW50KHRtcC0+dXNlciwgdG1wLT5pbmRleCk7CisJCSAgICBicmVhazsKKwkJY2FzZSBYUEFUSF9SQU5HRTogeworCQkgICAgeG1sTm9kZVB0ciBub2RlID0gdG1wLT51c2VyMjsKKwkJICAgIGlmIChub2RlICE9IE5VTEwpIHsKKwkJCWlmIChub2RlLT50eXBlID09IFhNTF9BVFRSSUJVVEVfTk9ERSkgeworCQkJICAgIC8qIFRPRE86IE5hbWVzcGFjZSBOb2RlcyA/Pz8gKi8KKwkJCSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKwkJCSAgICB4bWxYUHRyRnJlZUxvY2F0aW9uU2V0KG5ld3NldCk7CisJCQkgICAgWFBfRVJST1IoWFBUUl9TWU5UQVhfRVJST1IpOworCQkJfQorCQkJcG9pbnQgPSB4bWxYUHRyTmV3UG9pbnQobm9kZSwgdG1wLT5pbmRleDIpOworCQkgICAgfSBlbHNlIGlmICh0bXAtPnVzZXIgPT0gTlVMTCkgeworCQkJcG9pbnQgPSB4bWxYUHRyTmV3UG9pbnQobm9kZSwKKwkJCQkgICAgICAgeG1sWFB0ck5iTG9jQ2hpbGRyZW4obm9kZSkpOworCQkgICAgfQorCQkgICAgYnJlYWs7CisJICAgICAgICB9CisJCWRlZmF1bHQ6CisJCSAgICAvKioqIFNob3VsZCB3ZSByYWlzZSBhbiBlcnJvciA/CisJCSAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKwkJICAgIHhtbFhQYXRoRnJlZU9iamVjdChuZXdzZXQpOworCQkgICAgWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9UWVBFKQorCQkgICAgKioqLworCQkgICAgYnJlYWs7CisJICAgIH0KKyAgICAgICAgICAgIGlmIChwb2ludCAhPSBOVUxMKQorCQl4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3c2V0LCBwb2ludCk7CisJfQorICAgIH0KKyAgICB4bWxYUGF0aEZyZWVPYmplY3Qob2JqKTsKKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFB0cldyYXBMb2NhdGlvblNldChuZXdzZXQpKTsKK30KKworCisvKioKKyAqIHhtbFhQdHJDb3ZlcmluZ1JhbmdlOgorICogQGN0eHQ6ICB0aGUgWFBvaW50ZXIgUGFyc2VyIGNvbnRleHQKKyAqIEBsb2M6ICB0aGUgbG9jYXRpb24gZm9yIHdoaWNoIHRoZSBjb3ZlcmluZyByYW5nZSBtdXN0IGJlIGNvbXB1dGVkCisgKgorICogQSBjb3ZlcmluZyByYW5nZSBpcyBhIHJhbmdlIHRoYXQgd2hvbGx5IGVuY29tcGFzc2VzIGEgbG9jYXRpb24KKyAqIFNlY3Rpb24gNS4zLjMuIENvdmVyaW5nIFJhbmdlcyBmb3IgQWxsIExvY2F0aW9uIFR5cGVzCisgKiAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIveHB0ciNOMjI2NworICoKKyAqIFJldHVybnMgYSBuZXcgbG9jYXRpb24gb3IgTlVMTCBpbiBjYXNlIG9mIGVycm9yCisgKi8KK3N0YXRpYyB4bWxYUGF0aE9iamVjdFB0cgoreG1sWFB0ckNvdmVyaW5nUmFuZ2UoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIHhtbFhQYXRoT2JqZWN0UHRyIGxvYykgeworICAgIGlmIChsb2MgPT0gTlVMTCkKKwlyZXR1cm4oTlVMTCk7CisgICAgaWYgKChjdHh0ID09IE5VTEwpIHx8IChjdHh0LT5jb250ZXh0ID09IE5VTEwpIHx8CisJKGN0eHQtPmNvbnRleHQtPmRvYyA9PSBOVUxMKSkKKwlyZXR1cm4oTlVMTCk7CisgICAgc3dpdGNoIChsb2MtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgcmV0dXJuKHhtbFhQdHJOZXdSYW5nZShsb2MtPnVzZXIsIGxvYy0+aW5kZXgsCisJCQkgICAgICAgICAgIGxvYy0+dXNlciwgbG9jLT5pbmRleCkpOworICAgICAgICBjYXNlIFhQQVRIX1JBTkdFOgorCSAgICBpZiAobG9jLT51c2VyMiAhPSBOVUxMKSB7CisJCXJldHVybih4bWxYUHRyTmV3UmFuZ2UobG9jLT51c2VyLCBsb2MtPmluZGV4LAorCQkJICAgICAgICAgICAgICBsb2MtPnVzZXIyLCBsb2MtPmluZGV4MikpOworCSAgICB9IGVsc2UgeworCQl4bWxOb2RlUHRyIG5vZGUgPSAoeG1sTm9kZVB0cikgbG9jLT51c2VyOworCQlpZiAobm9kZSA9PSAoeG1sTm9kZVB0cikgY3R4dC0+Y29udGV4dC0+ZG9jKSB7CisJCSAgICByZXR1cm4oeG1sWFB0ck5ld1JhbmdlKG5vZGUsIDAsIG5vZGUsCisJCQkJCSAgIHhtbFhQdHJHZXRBcml0eShub2RlKSkpOworCQl9IGVsc2UgeworCQkgICAgc3dpdGNoIChub2RlLT50eXBlKSB7CisJCQljYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkJCS8qICEhISBvdXIgbW9kZWwgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gWFBhdGggKi8KKwkJCSAgICByZXR1cm4oeG1sWFB0ck5ld1JhbmdlKG5vZGUsIDAsIG5vZGUsCisJCQkJCSAgICAgICAgICAgeG1sWFB0ckdldEFyaXR5KG5vZGUpKSk7CisJCQljYXNlIFhNTF9FTEVNRU5UX05PREU6CisJCQljYXNlIFhNTF9URVhUX05PREU6CisJCQljYXNlIFhNTF9DREFUQV9TRUNUSU9OX05PREU6CisJCQljYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJCQljYXNlIFhNTF9QSV9OT0RFOgorCQkJY2FzZSBYTUxfQ09NTUVOVF9OT0RFOgorCQkJY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKwkJCWNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJCQljYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6IHsKKwkJCSAgICBpbnQgaW5keCA9IHhtbFhQdHJHZXRJbmRleChub2RlKTsKKwkJCSAgICAgCisJCQkgICAgbm9kZSA9IG5vZGUtPnBhcmVudDsKKwkJCSAgICByZXR1cm4oeG1sWFB0ck5ld1JhbmdlKG5vZGUsIGluZHggLSAxLAorCQkJCQkgICAgICAgICAgIG5vZGUsIGluZHggKyAxKSk7CisJCQl9CisJCQlkZWZhdWx0OgorCQkJICAgIHJldHVybihOVUxMKTsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJZGVmYXVsdDoKKwkgICAgVE9ETyAvKiBtaXNzZWQgb25lIGNhc2UgPz8/ICovCisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxYUHRyUmFuZ2VGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3MKKyAqCisgKiBGdW5jdGlvbiBpbXBsZW1lbnRpbmcgdGhlIHJhbmdlKCkgZnVuY3Rpb24gNS40LjMKKyAqICBsb2NhdGlvbi1zZXQgcmFuZ2UobG9jYXRpb24tc2V0ICkKKyAqCisgKiAgVGhlIHJhbmdlIGZ1bmN0aW9uIHJldHVybnMgcmFuZ2VzIGNvdmVyaW5nIHRoZSBsb2NhdGlvbnMgaW4KKyAqICB0aGUgYXJndW1lbnQgbG9jYXRpb24tc2V0LiBGb3IgZWFjaCBsb2NhdGlvbiB4IGluIHRoZSBhcmd1bWVudAorICogIGxvY2F0aW9uLXNldCwgYSByYW5nZSBsb2NhdGlvbiByZXByZXNlbnRpbmcgdGhlIGNvdmVyaW5nIHJhbmdlIG9mCisgKiAgeCBpcyBhZGRlZCB0byB0aGUgcmVzdWx0IGxvY2F0aW9uLXNldC4KKyAqLworc3RhdGljIHZvaWQKK3htbFhQdHJSYW5nZUZ1bmN0aW9uKHhtbFhQYXRoUGFyc2VyQ29udGV4dFB0ciBjdHh0LCBpbnQgbmFyZ3MpIHsKKyAgICBpbnQgaTsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBzZXQ7CisgICAgeG1sTG9jYXRpb25TZXRQdHIgb2xkc2V0OworICAgIHhtbExvY2F0aW9uU2V0UHRyIG5ld3NldDsKKworICAgIENIRUNLX0FSSVRZKDEpOworICAgIGlmICgoY3R4dC0+dmFsdWUgPT0gTlVMTCkgfHwKKwkoKGN0eHQtPnZhbHVlLT50eXBlICE9IFhQQVRIX0xPQ0FUSU9OU0VUKSAmJgorCSAoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTk9ERVNFVCkpKQorICAgICAgICBYUF9FUlJPUihYUEFUSF9JTlZBTElEX1RZUEUpCisKKyAgICBzZXQgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBpZiAoc2V0LT50eXBlID09IFhQQVRIX05PREVTRVQpIHsKKwl4bWxYUGF0aE9iamVjdFB0ciB0bXA7CisKKwkvKgorCSAqIEZpcnN0IGNvbnZlcnQgdG8gYSBsb2NhdGlvbiBzZXQKKwkgKi8KKwl0bXAgPSB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0KHNldC0+bm9kZXNldHZhbCk7CisJeG1sWFBhdGhGcmVlT2JqZWN0KHNldCk7CisJc2V0ID0gdG1wOworICAgIH0KKyAgICBvbGRzZXQgPSAoeG1sTG9jYXRpb25TZXRQdHIpIHNldC0+dXNlcjsKKworICAgIC8qCisgICAgICogVGhlIGxvb3AgaXMgdG8gY29tcHV0ZSB0aGUgY292ZXJpbmcgcmFuZ2UgZm9yIGVhY2ggaXRlbSBhbmQgYWRkIGl0CisgICAgICovCisgICAgbmV3c2V0ID0geG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKE5VTEwpOworICAgIGZvciAoaSA9IDA7aSA8IG9sZHNldC0+bG9jTnI7aSsrKSB7CisJeG1sWFB0ckxvY2F0aW9uU2V0QWRkKG5ld3NldCwKKwkJeG1sWFB0ckNvdmVyaW5nUmFuZ2UoY3R4dCwgb2xkc2V0LT5sb2NUYWJbaV0pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFNhdmUgdGhlIG5ldyB2YWx1ZSBhbmQgY2xlYW51cAorICAgICAqLworICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUHRyV3JhcExvY2F0aW9uU2V0KG5ld3NldCkpOworICAgIHhtbFhQYXRoRnJlZU9iamVjdChzZXQpOworfQorCisvKioKKyAqIHhtbFhQdHJJbnNpZGVSYW5nZToKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbG9jOiAgdGhlIGxvY2F0aW9uIGZvciB3aGljaCB0aGUgaW5zaWRlIHJhbmdlIG11c3QgYmUgY29tcHV0ZWQKKyAqCisgKiBBIGluc2lkZSByYW5nZSBpcyBhIHJhbmdlIGRlc2NyaWJlZCBpbiB0aGUgcmFuZ2UtaW5zaWRlKCkgZGVzY3JpcHRpb24KKyAqCisgKiBSZXR1cm5zIGEgbmV3IGxvY2F0aW9uIG9yIE5VTEwgaW4gY2FzZSBvZiBlcnJvcgorICovCitzdGF0aWMgeG1sWFBhdGhPYmplY3RQdHIKK3htbFhQdHJJbnNpZGVSYW5nZSh4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgeG1sWFBhdGhPYmplY3RQdHIgbG9jKSB7CisgICAgaWYgKGxvYyA9PSBOVUxMKQorCXJldHVybihOVUxMKTsKKyAgICBpZiAoKGN0eHQgPT0gTlVMTCkgfHwgKGN0eHQtPmNvbnRleHQgPT0gTlVMTCkgfHwKKwkoY3R4dC0+Y29udGV4dC0+ZG9jID09IE5VTEwpKQorCXJldHVybihOVUxMKTsKKyAgICBzd2l0Y2ggKGxvYy0+dHlwZSkgeworICAgICAgICBjYXNlIFhQQVRIX1BPSU5UOiB7CisJICAgIHhtbE5vZGVQdHIgbm9kZSA9ICh4bWxOb2RlUHRyKSBsb2MtPnVzZXI7CisJICAgIHN3aXRjaCAobm9kZS0+dHlwZSkgeworCQljYXNlIFhNTF9QSV9OT0RFOgorCQljYXNlIFhNTF9DT01NRU5UX05PREU6CisJCWNhc2UgWE1MX1RFWFRfTk9ERToKKwkJY2FzZSBYTUxfQ0RBVEFfU0VDVElPTl9OT0RFOiB7CisJCSAgICBpZiAobm9kZS0+Y29udGVudCA9PSBOVUxMKSB7CisJCQlyZXR1cm4oeG1sWFB0ck5ld1JhbmdlKG5vZGUsIDAsIG5vZGUsIDApKTsKKwkJICAgIH0gZWxzZSB7CisJCQlyZXR1cm4oeG1sWFB0ck5ld1JhbmdlKG5vZGUsIDAsIG5vZGUsCisJCQkJCSAgICAgICB4bWxTdHJsZW4obm9kZS0+Y29udGVudCkpKTsKKwkJICAgIH0KKwkJfQorCQljYXNlIFhNTF9BVFRSSUJVVEVfTk9ERToKKwkJY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCQljYXNlIFhNTF9FTlRJVFlfUkVGX05PREU6CisJCWNhc2UgWE1MX0RPQ1VNRU5UX05PREU6CisJCWNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJCWNhc2UgWE1MX0hUTUxfRE9DVU1FTlRfTk9ERTogeworCQkgICAgcmV0dXJuKHhtbFhQdHJOZXdSYW5nZShub2RlLCAwLCBub2RlLAorCQkJCQkgICB4bWxYUHRyR2V0QXJpdHkobm9kZSkpKTsKKwkJfQorCQlkZWZhdWx0OgorCQkgICAgYnJlYWs7CisJICAgIH0KKwkgICAgcmV0dXJuKE5VTEwpOworCX0KKyAgICAgICAgY2FzZSBYUEFUSF9SQU5HRTogeworCSAgICB4bWxOb2RlUHRyIG5vZGUgPSAoeG1sTm9kZVB0cikgbG9jLT51c2VyOworCSAgICBpZiAobG9jLT51c2VyMiAhPSBOVUxMKSB7CisJCXJldHVybih4bWxYUHRyTmV3UmFuZ2Uobm9kZSwgbG9jLT5pbmRleCwKKwkJCSAgICAgICAgICAgICAgIGxvYy0+dXNlcjIsIGxvYy0+aW5kZXgyKSk7CisJICAgIH0gZWxzZSB7CisJCXN3aXRjaCAobm9kZS0+dHlwZSkgeworCQkgICAgY2FzZSBYTUxfUElfTk9ERToKKwkJICAgIGNhc2UgWE1MX0NPTU1FTlRfTk9ERToKKwkJICAgIGNhc2UgWE1MX1RFWFRfTk9ERToKKwkJICAgIGNhc2UgWE1MX0NEQVRBX1NFQ1RJT05fTk9ERTogeworCQkJaWYgKG5vZGUtPmNvbnRlbnQgPT0gTlVMTCkgeworCQkJICAgIHJldHVybih4bWxYUHRyTmV3UmFuZ2Uobm9kZSwgMCwgbm9kZSwgMCkpOworCQkJfSBlbHNlIHsKKwkJCSAgICByZXR1cm4oeG1sWFB0ck5ld1JhbmdlKG5vZGUsIDAsIG5vZGUsCisJCQkJCQkgICB4bWxTdHJsZW4obm9kZS0+Y29udGVudCkpKTsKKwkJCX0KKwkJICAgIH0KKwkJICAgIGNhc2UgWE1MX0FUVFJJQlVURV9OT0RFOgorCQkgICAgY2FzZSBYTUxfRUxFTUVOVF9OT0RFOgorCQkgICAgY2FzZSBYTUxfRU5USVRZX1JFRl9OT0RFOgorCQkgICAgY2FzZSBYTUxfRE9DVU1FTlRfTk9ERToKKwkJICAgIGNhc2UgWE1MX05PVEFUSU9OX05PREU6CisJCSAgICBjYXNlIFhNTF9IVE1MX0RPQ1VNRU5UX05PREU6IHsKKwkJCXJldHVybih4bWxYUHRyTmV3UmFuZ2Uobm9kZSwgMCwgbm9kZSwKKwkJCQkJICAgICAgIHhtbFhQdHJHZXRBcml0eShub2RlKSkpOworCQkgICAgfQorCQkgICAgZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCXJldHVybihOVUxMKTsKKwkgICAgfQorICAgICAgICB9CisJZGVmYXVsdDoKKwkgICAgVE9ETyAvKiBtaXNzZWQgb25lIGNhc2UgPz8/ICovCisgICAgfQorICAgIHJldHVybihOVUxMKTsKK30KKworLyoqCisgKiB4bWxYUHRyUmFuZ2VJbnNpZGVGdW5jdGlvbjoKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKiBAbmFyZ3M6ICB0aGUgbnVtYmVyIG9mIGFyZ3MKKyAqCisgKiBGdW5jdGlvbiBpbXBsZW1lbnRpbmcgdGhlIHJhbmdlLWluc2lkZSgpIGZ1bmN0aW9uIDUuNC4zCisgKiAgbG9jYXRpb24tc2V0IHJhbmdlLWluc2lkZShsb2NhdGlvbi1zZXQgKQorICoKKyAqICBUaGUgcmFuZ2UtaW5zaWRlIGZ1bmN0aW9uIHJldHVybnMgcmFuZ2VzIGNvdmVyaW5nIHRoZSBjb250ZW50cyBvZgorICogIHRoZSBsb2NhdGlvbnMgaW4gdGhlIGFyZ3VtZW50IGxvY2F0aW9uLXNldC4gRm9yIGVhY2ggbG9jYXRpb24geCBpbgorICogIHRoZSBhcmd1bWVudCBsb2NhdGlvbi1zZXQsIGEgcmFuZ2UgbG9jYXRpb24gaXMgYWRkZWQgdG8gdGhlIHJlc3VsdAorICogIGxvY2F0aW9uLXNldC4gSWYgeCBpcyBhIHJhbmdlIGxvY2F0aW9uLCB0aGVuIHggaXMgYWRkZWQgdG8gdGhlCisgKiAgcmVzdWx0IGxvY2F0aW9uLXNldC4gSWYgeCBpcyBub3QgYSByYW5nZSBsb2NhdGlvbiwgdGhlbiB4IGlzIHVzZWQKKyAqICBhcyB0aGUgY29udGFpbmVyIGxvY2F0aW9uIG9mIHRoZSBzdGFydCBhbmQgZW5kIHBvaW50cyBvZiB0aGUgcmFuZ2UKKyAqICBsb2NhdGlvbiB0byBiZSBhZGRlZDsgdGhlIGluZGV4IG9mIHRoZSBzdGFydCBwb2ludCBvZiB0aGUgcmFuZ2UgaXMKKyAqICB6ZXJvOyBpZiB0aGUgZW5kIHBvaW50IGlzIGEgY2hhcmFjdGVyIHBvaW50IHRoZW4gaXRzIGluZGV4IGlzIHRoZQorICogIGxlbmd0aCBvZiB0aGUgc3RyaW5nLXZhbHVlIG9mIHgsIGFuZCBvdGhlcndpc2UgaXMgdGhlIG51bWJlciBvZgorICogIGxvY2F0aW9uIGNoaWxkcmVuIG9mIHguCisgKgorICovCitzdGF0aWMgdm9pZAoreG1sWFB0clJhbmdlSW5zaWRlRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIGludCBpOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHNldDsKKyAgICB4bWxMb2NhdGlvblNldFB0ciBvbGRzZXQ7CisgICAgeG1sTG9jYXRpb25TZXRQdHIgbmV3c2V0OworCisgICAgQ0hFQ0tfQVJJVFkoMSk7CisgICAgaWYgKChjdHh0LT52YWx1ZSA9PSBOVUxMKSB8fAorCSgoY3R4dC0+dmFsdWUtPnR5cGUgIT0gWFBBVEhfTE9DQVRJT05TRVQpICYmCisJIChjdHh0LT52YWx1ZS0+dHlwZSAhPSBYUEFUSF9OT0RFU0VUKSkpCisgICAgICAgIFhQX0VSUk9SKFhQQVRIX0lOVkFMSURfVFlQRSkKKworICAgIHNldCA9IHZhbHVlUG9wKGN0eHQpOworICAgIGlmIChzZXQtPnR5cGUgPT0gWFBBVEhfTk9ERVNFVCkgeworCXhtbFhQYXRoT2JqZWN0UHRyIHRtcDsKKworCS8qCisJICogRmlyc3QgY29udmVydCB0byBhIGxvY2F0aW9uIHNldAorCSAqLworCXRtcCA9IHhtbFhQdHJOZXdMb2NhdGlvblNldE5vZGVTZXQoc2V0LT5ub2Rlc2V0dmFsKTsKKwl4bWxYUGF0aEZyZWVPYmplY3Qoc2V0KTsKKwlzZXQgPSB0bXA7CisgICAgfQorICAgIG9sZHNldCA9ICh4bWxMb2NhdGlvblNldFB0cikgc2V0LT51c2VyOworCisgICAgLyoKKyAgICAgKiBUaGUgbG9vcCBpcyB0byBjb21wdXRlIHRoZSBjb3ZlcmluZyByYW5nZSBmb3IgZWFjaCBpdGVtIGFuZCBhZGQgaXQKKyAgICAgKi8KKyAgICBuZXdzZXQgPSB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUoTlVMTCk7CisgICAgZm9yIChpID0gMDtpIDwgb2xkc2V0LT5sb2NOcjtpKyspIHsKKwl4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3c2V0LAorCQl4bWxYUHRySW5zaWRlUmFuZ2UoY3R4dCwgb2xkc2V0LT5sb2NUYWJbaV0pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFNhdmUgdGhlIG5ldyB2YWx1ZSBhbmQgY2xlYW51cAorICAgICAqLworICAgIHZhbHVlUHVzaChjdHh0LCB4bWxYUHRyV3JhcExvY2F0aW9uU2V0KG5ld3NldCkpOworICAgIHhtbFhQYXRoRnJlZU9iamVjdChzZXQpOworfQorCisvKioKKyAqIHhtbFhQdHJSYW5nZVRvRnVuY3Rpb246CisgKiBAY3R4dDogIHRoZSBYUG9pbnRlciBQYXJzZXIgY29udGV4dAorICogQG5hcmdzOiAgdGhlIG51bWJlciBvZiBhcmdzCisgKgorICogSW1wbGVtZW50IHRoZSByYW5nZS10bygpIFhQb2ludGVyIGZ1bmN0aW9uCisgKi8KK3ZvaWQKK3htbFhQdHJSYW5nZVRvRnVuY3Rpb24oeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQsIGludCBuYXJncykgeworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHJhbmdlOworICAgIGNvbnN0IHhtbENoYXIgKmN1cjsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciByZXMsIG9iajsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciB0bXA7CisgICAgeG1sTG9jYXRpb25TZXRQdHIgbmV3c2V0ID0gTlVMTDsKKyAgICB4bWxOb2RlU2V0UHRyIG9sZHNldDsKKyAgICBpbnQgaTsKKworICAgIGlmIChjdHh0ID09IE5VTEwpIHJldHVybjsKKyAgICBDSEVDS19BUklUWSgxKTsKKyAgICAvKgorICAgICAqIFNhdmUgdGhlIGV4cHJlc3Npb24gcG9pbnRlciBzaW5jZSB3ZSB3aWxsIGhhdmUgdG8gZXZhbHVhdGUKKyAgICAgKiBpdCBtdWx0aXBsZSB0aW1lcy4gSW5pdGlhbGl6ZSB0aGUgbmV3IHNldC4KKyAgICAgKi8KKyAgICBDSEVDS19UWVBFKFhQQVRIX05PREVTRVQpOworICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgIG9sZHNldCA9IG9iai0+bm9kZXNldHZhbDsKKyAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKKworICAgIGN1ciA9IGN0eHQtPmN1cjsKKyAgICBuZXdzZXQgPSB4bWxYUHRyTG9jYXRpb25TZXRDcmVhdGUoTlVMTCk7CisgICAgCisgICAgZm9yIChpID0gMDsgaSA8IG9sZHNldC0+bm9kZU5yOyBpKyspIHsKKwljdHh0LT5jdXIgPSBjdXI7CisKKwkvKgorCSAqIFJ1biB0aGUgZXZhbHVhdGlvbiB3aXRoIGEgbm9kZSBsaXN0IG1hZGUgb2YgYSBzaW5nbGUgaXRlbQorCSAqIGluIHRoZSBub2Rlc2V0LgorCSAqLworCWN0eHQtPmNvbnRleHQtPm5vZGUgPSBvbGRzZXQtPm5vZGVUYWJbaV07CisJdG1wID0geG1sWFBhdGhOZXdOb2RlU2V0KGN0eHQtPmNvbnRleHQtPm5vZGUpOworCXZhbHVlUHVzaChjdHh0LCB0bXApOworCisJeG1sWFBhdGhFdmFsRXhwcihjdHh0KTsKKwlDSEVDS19FUlJPUjsKKworCS8qCisJICogVGhlIHJlc3VsdCBvZiB0aGUgZXZhbHVhdGlvbiBuZWVkIHRvIGJlIHRlc3RlZCB0bworCSAqIGRlY2lkZWQgd2hldGhlciB0aGUgZmlsdGVyIHN1Y2NlZWRlZCBvciBub3QKKwkgKi8KKwlyZXMgPSB2YWx1ZVBvcChjdHh0KTsKKwlyYW5nZSA9IHhtbFhQdHJOZXdSYW5nZU5vZGVPYmplY3Qob2xkc2V0LT5ub2RlVGFiW2ldLCByZXMpOworCWlmIChyYW5nZSAhPSBOVUxMKSB7CisJICAgIHhtbFhQdHJMb2NhdGlvblNldEFkZChuZXdzZXQsIHJhbmdlKTsKKwl9CisKKwkvKgorCSAqIENsZWFudXAKKwkgKi8KKwlpZiAocmVzICE9IE5VTEwpCisJICAgIHhtbFhQYXRoRnJlZU9iamVjdChyZXMpOworCWlmIChjdHh0LT52YWx1ZSA9PSB0bXApIHsKKwkgICAgcmVzID0gdmFsdWVQb3AoY3R4dCk7CisJICAgIHhtbFhQYXRoRnJlZU9iamVjdChyZXMpOworCX0KKwkKKwljdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZSByZXN1bHQgaXMgdXNlZCBhcyB0aGUgbmV3IGV2YWx1YXRpb24gc2V0LgorICAgICAqLworICAgIHhtbFhQYXRoRnJlZU9iamVjdChvYmopOworICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworICAgIGN0eHQtPmNvbnRleHQtPmNvbnRleHRTaXplID0gLTE7CisgICAgY3R4dC0+Y29udGV4dC0+cHJveGltaXR5UG9zaXRpb24gPSAtMTsKKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFB0cldyYXBMb2NhdGlvblNldChuZXdzZXQpKTsKK30KKworLyoqCisgKiB4bWxYUHRyQWR2YW5jZU5vZGU6CisgKiBAY3VyOiAgdGhlIG5vZGUKKyAqIEBsZXZlbDogaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQgdG8gc2hvdyBsZXZlbCBpbiB0cmVlCisgKgorICogQWR2YW5jZSB0byB0aGUgbmV4dCBlbGVtZW50IG9yIHRleHQgbm9kZSBpbiBkb2N1bWVudCBvcmRlcgorICogVE9ETzogYWRkIGEgc3RhY2sgZm9yIGVudGVyaW5nL2V4aXRpbmcgZW50aXRpZXMgCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgb3RoZXJ3aXNlCisgKi8KK3htbE5vZGVQdHIKK3htbFhQdHJBZHZhbmNlTm9kZSh4bWxOb2RlUHRyIGN1ciwgaW50ICpsZXZlbCkgeworbmV4dDoKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuKE5VTEwpOworICAgIGlmIChjdXItPmNoaWxkcmVuICE9IE5VTEwpIHsKKyAgICAgICAgY3VyID0gY3VyLT5jaGlsZHJlbiA7CisJaWYgKGxldmVsICE9IE5VTEwpCisJICAgICgqbGV2ZWwpKys7CisJZ290byBmb3VuZDsKKyAgICB9Citza2lwOgkJLyogVGhpcyBsYWJlbCBzaG91bGQgb25seSBiZSBuZWVkZWQgaWYgc29tZXRoaW5nIGlzIHdyb25nISAqLworICAgIGlmIChjdXItPm5leHQgIT0gTlVMTCkgeworCWN1ciA9IGN1ci0+bmV4dDsKKwlnb3RvIGZvdW5kOworICAgIH0KKyAgICBkbyB7CisgICAgICAgIGN1ciA9IGN1ci0+cGFyZW50OworCWlmIChsZXZlbCAhPSBOVUxMKQorCSAgICAoKmxldmVsKS0tOworICAgICAgICBpZiAoY3VyID09IE5VTEwpIHJldHVybihOVUxMKTsKKyAgICAgICAgaWYgKGN1ci0+bmV4dCAhPSBOVUxMKSB7CisJICAgIGN1ciA9IGN1ci0+bmV4dDsKKwkgICAgZ290byBmb3VuZDsKKwl9CisgICAgfSB3aGlsZSAoY3VyICE9IE5VTEwpOworCitmb3VuZDoKKyAgICBpZiAoKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJgorCShjdXItPnR5cGUgIT0gWE1MX1RFWFRfTk9ERSkgJiYKKwkoY3VyLT50eXBlICE9IFhNTF9ET0NVTUVOVF9OT0RFKSAmJgorCShjdXItPnR5cGUgIT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkgJiYKKwkoY3VyLT50eXBlICE9IFhNTF9DREFUQV9TRUNUSU9OX05PREUpKSB7CisJICAgIGlmIChjdXItPnR5cGUgPT0gWE1MX0VOVElUWV9SRUZfTk9ERSkgewkvKiBTaG91bGRuJ3QgaGFwcGVuICovCisJCVRPRE8KKwkJZ290byBza2lwOworCSAgICB9CisJICAgIGdvdG8gbmV4dDsKKwl9CisgICAgcmV0dXJuKGN1cik7Cit9CisKKy8qKgorICogeG1sWFB0ckFkdmFuY2VDaGFyOgorICogQG5vZGU6ICB0aGUgbm9kZQorICogQGluZHg6ICB0aGUgaW5keAorICogQGJ5dGVzOiAgdGhlIG51bWJlciBvZiBieXRlcworICoKKyAqIEFkdmFuY2UgYSBwb2ludCBvZiB0aGUgYXNzb2NpYXRlZCBudW1iZXIgb2YgYnl0ZXMgKG5vdCBVVEY4IGNoYXJzKQorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxYUHRyQWR2YW5jZUNoYXIoeG1sTm9kZVB0ciAqbm9kZSwgaW50ICppbmR4LCBpbnQgYnl0ZXMpIHsKKyAgICB4bWxOb2RlUHRyIGN1cjsKKyAgICBpbnQgcG9zOworICAgIGludCBsZW47CisKKyAgICBpZiAoKG5vZGUgPT0gTlVMTCkgfHwgKGluZHggPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBjdXIgPSAqbm9kZTsKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBwb3MgPSAqaW5keDsKKworICAgIHdoaWxlIChieXRlcyA+PSAwKSB7CisJLyoKKwkgKiBGaXJzdCBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJzdCB0ZXh0IG5vZGUKKwkgKiBjb3JyZXNwb25kaW5nIHRvIHRoaXMgcG9pbnQKKwkgKi8KKwl3aGlsZSAoKGN1ciAhPSBOVUxMKSAmJgorCSAgICAgICAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCSAgICAgICAgKGN1ci0+dHlwZSA9PSBYTUxfRE9DVU1FTlRfTk9ERSkgfHwKKwkgICAgICAgIChjdXItPnR5cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkpKSB7CisJICAgIGlmIChwb3MgPiAwKSB7CisJCWN1ciA9IHhtbFhQdHJHZXROdGhDaGlsZChjdXIsIHBvcyk7CisJCXBvcyA9IDA7CisJICAgIH0gZWxzZSB7CisJCWN1ciA9IHhtbFhQdHJBZHZhbmNlTm9kZShjdXIsIE5VTEwpOworCQlwb3MgPSAwOworCSAgICB9CisJfQorCisJaWYgKGN1ciA9PSBOVUxMKSB7CisJICAgICpub2RlID0gTlVMTDsKKwkgICAgKmluZHggPSAwOworCSAgICByZXR1cm4oLTEpOworCX0KKworCS8qCisJICogaWYgdGhlcmUgaXMgbm8gbW92ZSBuZWVkZWQgcmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlLgorCSAqLworCWlmIChwb3MgPT0gMCkgcG9zID0gMTsKKwlpZiAoYnl0ZXMgPT0gMCkgeworCSAgICAqbm9kZSA9IGN1cjsKKwkgICAgKmluZHggPSBwb3M7CisJICAgIHJldHVybigwKTsKKwl9CisJLyoKKwkgKiBXZSBzaG91bGQgaGF2ZSBhIHRleHQgKG9yIGNkYXRhKSBub2RlIC4uLiAKKwkgKi8KKwlsZW4gPSAwOworCWlmICgoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisgICAgICAgICAgICAoY3VyLT5jb250ZW50ICE9IE5VTEwpKSB7CisJICAgIGxlbiA9IHhtbFN0cmxlbihjdXItPmNvbnRlbnQpOworCX0KKwlpZiAocG9zID4gbGVuKSB7CisJICAgIC8qIFN0cmFuZ2UsIHRoZSBpbmR4IGluIHRoZSB0ZXh0IG5vZGUgaXMgZ3JlYXRlciB0aGFuIGl0J3MgbGVuICovCisJICAgIFNUUkFOR0UKKwkgICAgcG9zID0gbGVuOworCX0KKwlpZiAocG9zICsgYnl0ZXMgPj0gbGVuKSB7CisJICAgIGJ5dGVzIC09IChsZW4gLSBwb3MpOworCSAgICBjdXIgPSB4bWxYUHRyQWR2YW5jZU5vZGUoY3VyLCBOVUxMKTsKKwkgICAgcG9zID0gMDsKKwl9IGVsc2UgaWYgKHBvcyArIGJ5dGVzIDwgbGVuKSB7CisJICAgIHBvcyArPSBieXRlczsKKwkgICAgKm5vZGUgPSBjdXI7CisJICAgICppbmR4ID0gcG9zOworCSAgICByZXR1cm4oMCk7CisJfQorICAgIH0KKyAgICByZXR1cm4oLTEpOworfQorCisvKioKKyAqIHhtbFhQdHJNYXRjaFN0cmluZzoKKyAqIEBzdHJpbmc6ICB0aGUgc3RyaW5nIHRvIHNlYXJjaAorICogQHN0YXJ0OiAgdGhlIHN0YXJ0IHRleHRub2RlCisgKiBAc3RhcnRpbmRleDogIHRoZSBzdGFydCBpbmRleAorICogQGVuZDogIHRoZSBlbmQgdGV4dG5vZGUgSU4vT1VUCisgKiBAZW5kaW5kZXg6ICB0aGUgZW5kIGluZGV4IElOL09VVAorICoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGRvY3VtZW50IGNvbnRhaW5zIEBzdHJpbmcgYXQgdGhlIHBvc2l0aW9uCisgKiAoQHN0YXJ0LCBAc3RhcnRpbmRleCkgYW5kIGxpbWl0ZWQgYnkgdGhlIChAZW5kLCBAZW5kaW5kZXgpIHBvaW50CisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgaWYgbm90IGZvdW5kLCAxIGlmIGZvdW5kIGluIHdoaWNoIGNhc2UKKyAqICAgICAgICAgICAgKEBzdGFydCwgQHN0YXJ0aW5kZXgpIHdpbGwgaW5kaWNhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBiZWdpbm5pbmcKKyAqICAgICAgICAgICAgb2YgdGhlIHJhbmdlIGFuZCAoQGVuZCwgQGVuZGluZGV4KSB3aWxsIGluZGljYXRlIHRoZSBlbmQKKyAqICAgICAgICAgICAgb2YgdGhlIHJhbmdlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQdHJNYXRjaFN0cmluZyhjb25zdCB4bWxDaGFyICpzdHJpbmcsIHhtbE5vZGVQdHIgc3RhcnQsIGludCBzdGFydGluZGV4LAorCSAgICAgICAgICAgIHhtbE5vZGVQdHIgKmVuZCwgaW50ICplbmRpbmRleCkgeworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGludCBwb3M7IC8qIDAgYmFzZWQgKi8KKyAgICBpbnQgbGVuOyAvKiBpbiBieXRlcyAqLworICAgIGludCBzdHJpbmdsZW47IC8qIGluIGJ5dGVzICovCisgICAgaW50IG1hdGNoOworCisgICAgaWYgKHN0cmluZyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKHN0YXJ0ID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBpZiAoKGVuZCA9PSBOVUxMKSB8fCAoZW5kaW5kZXggPT0gTlVMTCkpCisJcmV0dXJuKC0xKTsKKyAgICBjdXIgPSBzdGFydDsKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBwb3MgPSBzdGFydGluZGV4IC0gMTsKKyAgICBzdHJpbmdsZW4gPSB4bWxTdHJsZW4oc3RyaW5nKTsKKworICAgIHdoaWxlIChzdHJpbmdsZW4gPiAwKSB7CisJaWYgKChjdXIgPT0gKmVuZCkgJiYgKHBvcyArIHN0cmluZ2xlbiA+ICplbmRpbmRleCkpCisJICAgIHJldHVybigwKTsKKworCWlmICgoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmIChjdXItPmNvbnRlbnQgIT0gTlVMTCkpIHsKKwkgICAgbGVuID0geG1sU3RybGVuKGN1ci0+Y29udGVudCk7CisJICAgIGlmIChsZW4gPj0gcG9zICsgc3RyaW5nbGVuKSB7CisJCW1hdGNoID0gKCF4bWxTdHJuY21wKCZjdXItPmNvbnRlbnRbcG9zXSwgc3RyaW5nLCBzdHJpbmdsZW4pKTsKKwkJaWYgKG1hdGNoKSB7CisjaWZkZWYgREVCVUdfUkFOR0VTCisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiZm91bmQgcmFuZ2UgJWQgYnl0ZXMgYXQgaW5kZXggJWQgb2YgLT4iLAorCQkJICAgIHN0cmluZ2xlbiwgcG9zICsgMSk7CisJCSAgICB4bWxEZWJ1Z0R1bXBTdHJpbmcoc3Rkb3V0LCBjdXItPmNvbnRlbnQpOworCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJcbiIpOworI2VuZGlmCisJCSAgICAqZW5kID0gY3VyOworCQkgICAgKmVuZGluZGV4ID0gcG9zICsgc3RyaW5nbGVuOworCQkgICAgcmV0dXJuKDEpOworCQl9IGVsc2UgeworCQkgICAgcmV0dXJuKDApOworCQl9CisJICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHN1YiA9IGxlbiAtIHBvczsKKwkJbWF0Y2ggPSAoIXhtbFN0cm5jbXAoJmN1ci0+Y29udGVudFtwb3NdLCBzdHJpbmcsIHN1YikpOworCQlpZiAobWF0Y2gpIHsKKyNpZmRlZiBERUJVR19SQU5HRVMKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkJICAgICJmb3VuZCBzdWJyYW5nZSAlZCBieXRlcyBhdCBpbmRleCAlZCBvZiAtPiIsCisJCQkgICAgc3ViLCBwb3MgKyAxKTsKKwkJICAgIHhtbERlYnVnRHVtcFN0cmluZyhzdGRvdXQsIGN1ci0+Y29udGVudCk7CisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlxuIik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nID0gJnN0cmluZ1tzdWJdOworCQkgICAgc3RyaW5nbGVuIC09IHN1YjsKKwkJfSBlbHNlIHsKKwkJICAgIHJldHVybigwKTsKKwkJfQorCSAgICB9CisJfQorCWN1ciA9IHhtbFhQdHJBZHZhbmNlTm9kZShjdXIsIE5VTEwpOworCWlmIChjdXIgPT0gTlVMTCkKKwkgICAgcmV0dXJuKDApOworCXBvcyA9IDA7CisgICAgfQorICAgIHJldHVybigxKTsKK30KKworLyoqCisgKiB4bWxYUHRyU2VhcmNoU3RyaW5nOgorICogQHN0cmluZzogIHRoZSBzdHJpbmcgdG8gc2VhcmNoCisgKiBAc3RhcnQ6ICB0aGUgc3RhcnQgdGV4dG5vZGUgSU4vT1VUCisgKiBAc3RhcnRpbmRleDogIHRoZSBzdGFydCBpbmRleCBJTi9PVVQKKyAqIEBlbmQ6ICB0aGUgZW5kIHRleHRub2RlCisgKiBAZW5kaW5kZXg6ICB0aGUgZW5kIGluZGV4CisgKgorICogU2VhcmNoIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgQHN0cmluZyB3aXRoaW4gdGhlIGRvY3VtZW50IGNvbnRlbnQKKyAqIHVudGlsIHRoZSAoQGVuZCwgQGVuZGluZGV4KSBwb2ludCBpcyByZWFjaGVkCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgaWYgbm90IGZvdW5kLCAxIGlmIGZvdW5kIGluIHdoaWNoIGNhc2UKKyAqICAgICAgICAgICAgKEBzdGFydCwgQHN0YXJ0aW5kZXgpIHdpbGwgaW5kaWNhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBiZWdpbm5pbmcKKyAqICAgICAgICAgICAgb2YgdGhlIHJhbmdlIGFuZCAoQGVuZCwgQGVuZGluZGV4KSB3aWxsIGluZGljYXRlIHRoZSBlbmQKKyAqICAgICAgICAgICAgb2YgdGhlIHJhbmdlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQdHJTZWFyY2hTdHJpbmcoY29uc3QgeG1sQ2hhciAqc3RyaW5nLCB4bWxOb2RlUHRyICpzdGFydCwgaW50ICpzdGFydGluZGV4LAorCSAgICAgICAgICAgIHhtbE5vZGVQdHIgKmVuZCwgaW50ICplbmRpbmRleCkgeworICAgIHhtbE5vZGVQdHIgY3VyOworICAgIGNvbnN0IHhtbENoYXIgKnN0cjsKKyAgICBpbnQgcG9zOyAvKiAwIGJhc2VkICovCisgICAgaW50IGxlbjsgLyogaW4gYnl0ZXMgKi8KKyAgICB4bWxDaGFyIGZpcnN0OworCisgICAgaWYgKHN0cmluZyA9PSBOVUxMKQorCXJldHVybigtMSk7CisgICAgaWYgKChzdGFydCA9PSBOVUxMKSB8fCAoc3RhcnRpbmRleCA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGlmICgoZW5kID09IE5VTEwpIHx8IChlbmRpbmRleCA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGN1ciA9ICpzdGFydDsKKyAgICBpZiAoY3VyID09IE5VTEwpCisJcmV0dXJuKC0xKTsKKyAgICBwb3MgPSAqc3RhcnRpbmRleCAtIDE7CisgICAgZmlyc3QgPSBzdHJpbmdbMF07CisKKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoKGN1ci0+dHlwZSAhPSBYTUxfRUxFTUVOVF9OT0RFKSAmJiAoY3VyLT5jb250ZW50ICE9IE5VTEwpKSB7CisJICAgIGxlbiA9IHhtbFN0cmxlbihjdXItPmNvbnRlbnQpOworCSAgICB3aGlsZSAocG9zIDw9IGxlbikgeworCQlpZiAoZmlyc3QgIT0gMCkgeworCQkgICAgc3RyID0geG1sU3RyY2hyKCZjdXItPmNvbnRlbnRbcG9zXSwgZmlyc3QpOworCQkgICAgaWYgKHN0ciAhPSBOVUxMKSB7CisJCQlwb3MgPSAoc3RyIC0gKHhtbENoYXIgKikoY3VyLT5jb250ZW50KSk7CisjaWZkZWYgREVCVUdfUkFOR0VTCisJCQl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCQkiZm91bmQgJyVjJyBhdCBpbmRleCAlZCBvZiAtPiIsCisJCQkJZmlyc3QsIHBvcyArIDEpOworCQkJeG1sRGVidWdEdW1wU3RyaW5nKHN0ZG91dCwgY3VyLT5jb250ZW50KTsKKwkJCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiXG4iKTsKKyNlbmRpZgorCQkJaWYgKHhtbFhQdHJNYXRjaFN0cmluZyhzdHJpbmcsIGN1ciwgcG9zICsgMSwKKwkJCQkJICAgICAgIGVuZCwgZW5kaW5kZXgpKSB7CisJCQkgICAgKnN0YXJ0ID0gY3VyOworCQkJICAgICpzdGFydGluZGV4ID0gcG9zICsgMTsKKwkJCSAgICByZXR1cm4oMSk7CisJCQl9CisJCQlwb3MrKzsKKwkJICAgIH0gZWxzZSB7CisJCQlwb3MgPSBsZW4gKyAxOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgLyoKKwkJICAgICAqIEFuIGVtcHR5IHN0cmluZyBpcyBjb25zaWRlcmVkIHRvIG1hdGNoIGJlZm9yZSBlYWNoCisJCSAgICAgKiBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZy12YWx1ZSBhbmQgYWZ0ZXIgdGhlIGZpbmFsCisJCSAgICAgKiBjaGFyYWN0ZXIuIAorCQkgICAgICovCisjaWZkZWYgREVCVUdfUkFOR0VTCisJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJCSAgICAiZm91bmQgJycgYXQgaW5kZXggJWQgb2YgLT4iLAorCQkJICAgIHBvcyArIDEpOworCQkgICAgeG1sRGVidWdEdW1wU3RyaW5nKHN0ZG91dCwgY3VyLT5jb250ZW50KTsKKwkJICAgIHhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LCAiXG4iKTsKKyNlbmRpZgorCQkgICAgKnN0YXJ0ID0gY3VyOworCQkgICAgKnN0YXJ0aW5kZXggPSBwb3MgKyAxOworCQkgICAgKmVuZCA9IGN1cjsKKwkJICAgICplbmRpbmRleCA9IHBvcyArIDE7CisJCSAgICByZXR1cm4oMSk7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoKGN1ciA9PSAqZW5kKSAmJiAocG9zID49ICplbmRpbmRleCkpCisJICAgIHJldHVybigwKTsKKwljdXIgPSB4bWxYUHRyQWR2YW5jZU5vZGUoY3VyLCBOVUxMKTsKKwlpZiAoY3VyID09IE5VTEwpCisJICAgIHJldHVybigwKTsKKwlwb3MgPSAxOworICAgIH0KKyAgICByZXR1cm4oMCk7Cit9CisKKy8qKgorICogeG1sWFB0ckdldExhc3RDaGFyOgorICogQG5vZGU6ICB0aGUgbm9kZQorICogQGluZGV4OiAgdGhlIGluZGV4CisgKgorICogQ29tcHV0ZXMgdGhlIHBvaW50IGNvb3JkaW5hdGVzIG9mIHRoZSBsYXN0IGNoYXIgb2YgdGhpcyBwb2ludAorICoKKyAqIFJldHVybnMgLTEgaW4gY2FzZSBvZiBmYWlsdXJlLCAwIG90aGVyd2lzZQorICovCitzdGF0aWMgaW50Cit4bWxYUHRyR2V0TGFzdENoYXIoeG1sTm9kZVB0ciAqbm9kZSwgaW50ICppbmR4KSB7CisgICAgeG1sTm9kZVB0ciBjdXI7CisgICAgaW50IHBvcywgbGVuID0gMDsKKworICAgIGlmICgobm9kZSA9PSBOVUxMKSB8fCAoaW5keCA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworICAgIGN1ciA9ICpub2RlOworICAgIHBvcyA9ICppbmR4OworCisgICAgaWYgKGN1ciA9PSBOVUxMKQorCXJldHVybigtMSk7CisKKyAgICBpZiAoKGN1ci0+dHlwZSA9PSBYTUxfRUxFTUVOVF9OT0RFKSB8fAorCShjdXItPnR5cGUgPT0gWE1MX0RPQ1VNRU5UX05PREUpIHx8CisJKGN1ci0+dHlwZSA9PSBYTUxfSFRNTF9ET0NVTUVOVF9OT0RFKSkgeworCWlmIChwb3MgPiAwKSB7CisJICAgIGN1ciA9IHhtbFhQdHJHZXROdGhDaGlsZChjdXIsIHBvcyk7CisJfQorICAgIH0KKyAgICB3aGlsZSAoY3VyICE9IE5VTEwpIHsKKwlpZiAoY3VyLT5sYXN0ICE9IE5VTEwpCisJICAgIGN1ciA9IGN1ci0+bGFzdDsKKwllbHNlIGlmICgoY3VyLT50eXBlICE9IFhNTF9FTEVNRU5UX05PREUpICYmCisJICAgICAgICAgKGN1ci0+Y29udGVudCAhPSBOVUxMKSkgeworCSAgICBsZW4gPSB4bWxTdHJsZW4oY3VyLT5jb250ZW50KTsKKwkgICAgYnJlYWs7CisJfSBlbHNlIHsKKwkgICAgcmV0dXJuKC0xKTsKKwl9CisgICAgfQorICAgIGlmIChjdXIgPT0gTlVMTCkKKwlyZXR1cm4oLTEpOworICAgICpub2RlID0gY3VyOworICAgICppbmR4ID0gbGVuOworICAgIHJldHVybigwKTsKK30KKworLyoqCisgKiB4bWxYUHRyR2V0U3RhcnRQb2ludDoKKyAqIEBvYmo6ICBhbiByYW5nZQorICogQG5vZGU6ICB0aGUgcmVzdWx0aW5nIG5vZGUKKyAqIEBpbmR4OiAgdGhlIHJlc3VsdGluZyBpbmRleAorICoKKyAqIHJlYWQgdGhlIG9iamVjdCBhbmQgcmV0dXJuIHRoZSBzdGFydCBwb2ludCBjb29yZGluYXRlcy4KKyAqCisgKiBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZmFpbHVyZSwgMCBvdGhlcndpc2UKKyAqLworc3RhdGljIGludAoreG1sWFB0ckdldFN0YXJ0UG9pbnQoeG1sWFBhdGhPYmplY3RQdHIgb2JqLCB4bWxOb2RlUHRyICpub2RlLCBpbnQgKmluZHgpIHsKKyAgICBpZiAoKG9iaiA9PSBOVUxMKSB8fCAobm9kZSA9PSBOVUxMKSB8fCAoaW5keCA9PSBOVUxMKSkKKwlyZXR1cm4oLTEpOworCisgICAgc3dpdGNoIChvYmotPnR5cGUpIHsKKyAgICAgICAgY2FzZSBYUEFUSF9QT0lOVDoKKwkgICAgKm5vZGUgPSBvYmotPnVzZXI7CisJICAgIGlmIChvYmotPmluZGV4IDw9IDApCisJCSppbmR4ID0gMDsKKwkgICAgZWxzZQorCQkqaW5keCA9IG9iai0+aW5kZXg7CisJICAgIHJldHVybigwKTsKKyAgICAgICAgY2FzZSBYUEFUSF9SQU5HRToKKwkgICAgKm5vZGUgPSBvYmotPnVzZXI7CisJICAgIGlmIChvYmotPmluZGV4IDw9IDApCisJCSppbmR4ID0gMDsKKwkgICAgZWxzZQorCQkqaW5keCA9IG9iai0+aW5kZXg7CisJICAgIHJldHVybigwKTsKKwlkZWZhdWx0OgorCSAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuKC0xKTsKK30KKworLyoqCisgKiB4bWxYUHRyR2V0RW5kUG9pbnQ6CisgKiBAb2JqOiAgYW4gcmFuZ2UKKyAqIEBub2RlOiAgdGhlIHJlc3VsdGluZyBub2RlCisgKiBAaW5keDogIHRoZSByZXN1bHRpbmcgaW5keAorICoKKyAqIHJlYWQgdGhlIG9iamVjdCBhbmQgcmV0dXJuIHRoZSBlbmQgcG9pbnQgY29vcmRpbmF0ZXMuCisgKgorICogUmV0dXJucyAtMSBpbiBjYXNlIG9mIGZhaWx1cmUsIDAgb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBpbnQKK3htbFhQdHJHZXRFbmRQb2ludCh4bWxYUGF0aE9iamVjdFB0ciBvYmosIHhtbE5vZGVQdHIgKm5vZGUsIGludCAqaW5keCkgeworICAgIGlmICgob2JqID09IE5VTEwpIHx8IChub2RlID09IE5VTEwpIHx8IChpbmR4ID09IE5VTEwpKQorCXJldHVybigtMSk7CisKKyAgICBzd2l0Y2ggKG9iai0+dHlwZSkgeworICAgICAgICBjYXNlIFhQQVRIX1BPSU5UOgorCSAgICAqbm9kZSA9IG9iai0+dXNlcjsKKwkgICAgaWYgKG9iai0+aW5kZXggPD0gMCkKKwkJKmluZHggPSAwOworCSAgICBlbHNlCisJCSppbmR4ID0gb2JqLT5pbmRleDsKKwkgICAgcmV0dXJuKDApOworICAgICAgICBjYXNlIFhQQVRIX1JBTkdFOgorCSAgICAqbm9kZSA9IG9iai0+dXNlcjsKKwkgICAgaWYgKG9iai0+aW5kZXggPD0gMCkKKwkJKmluZHggPSAwOworCSAgICBlbHNlCisJCSppbmR4ID0gb2JqLT5pbmRleDsKKwkgICAgcmV0dXJuKDApOworCWRlZmF1bHQ6CisJICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4oLTEpOworfQorCisvKioKKyAqIHhtbFhQdHJTdHJpbmdSYW5nZUZ1bmN0aW9uOgorICogQGN0eHQ6ICB0aGUgWFBvaW50ZXIgUGFyc2VyIGNvbnRleHQKKyAqIEBuYXJnczogIHRoZSBudW1iZXIgb2YgYXJncworICoKKyAqIEZ1bmN0aW9uIGltcGxlbWVudGluZyB0aGUgc3RyaW5nLXJhbmdlKCkgZnVuY3Rpb24KKyAqIHJhbmdlIGFzIGRlc2NyaWJlZCBpbiA1LjQuMiAKKyAqCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFtEZWZpbml0aW9uOiBGb3IgZWFjaCBsb2NhdGlvbiBpbiB0aGUgbG9jYXRpb24tc2V0IGFyZ3VtZW50LAorICogc3RyaW5nLXJhbmdlIHJldHVybnMgYSBzZXQgb2Ygc3RyaW5nIHJhbmdlcywgYSBzZXQgb2Ygc3Vic3RyaW5ncyBpbiBhCisgKiBzdHJpbmcuIFNwZWNpZmljYWxseSwgdGhlIHN0cmluZy12YWx1ZSBvZiB0aGUgbG9jYXRpb24gaXMgc2VhcmNoZWQgZm9yCisgKiBzdWJzdHJpbmdzIHRoYXQgbWF0Y2ggdGhlIHN0cmluZyBhcmd1bWVudCwgYW5kIHRoZSByZXN1bHRpbmcgbG9jYXRpb24tc2V0CisgKiB3aWxsIGNvbnRhaW4gYSByYW5nZSBsb2NhdGlvbiBmb3IgZWFjaCBub24tb3ZlcmxhcHBpbmcgbWF0Y2guXQorICogQW4gZW1wdHkgc3RyaW5nIGlzIGNvbnNpZGVyZWQgdG8gbWF0Y2ggYmVmb3JlIGVhY2ggY2hhcmFjdGVyIG9mIHRoZQorICogc3RyaW5nLXZhbHVlIGFuZCBhZnRlciB0aGUgZmluYWwgY2hhcmFjdGVyLiBXaGl0ZXNwYWNlIGluIGEgc3RyaW5nCisgKiBpcyBtYXRjaGVkIGxpdGVyYWxseSwgd2l0aCBubyBub3JtYWxpemF0aW9uIGV4Y2VwdCB0aGF0IHByb3ZpZGVkIGJ5CisgKiBYTUwgZm9yIGxpbmUgZW5kcy4gVGhlIHRoaXJkIGFyZ3VtZW50IGdpdmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QKKyAqIGNoYXJhY3RlciB0byBiZSBpbiB0aGUgcmVzdWx0aW5nIHJhbmdlLCByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlCisgKiBtYXRjaC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMSwgd2hpY2ggbWFrZXMgdGhlIHJhbmdlIHN0YXJ0IGltbWVkaWF0ZWx5CisgKiBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgbWF0Y2hlZCBzdHJpbmcuIFRoZSBmb3VydGggYXJndW1lbnQKKyAqIGdpdmVzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2U7IHRoZSBkZWZhdWx0IGlzIHRoYXQgdGhlCisgKiByYW5nZSBleHRlbmRzIHRvIHRoZSBlbmQgb2YgdGhlIG1hdGNoZWQgc3RyaW5nLgorICoKKyAqIEVsZW1lbnQgYm91bmRhcmllcywgYXMgd2VsbCBhcyBlbnRpcmUgZW1iZWRkZWQgbm9kZXMgc3VjaCBhcyBwcm9jZXNzaW5nCisgKiBpbnN0cnVjdGlvbnMgYW5kIGNvbW1lbnRzLCBhcmUgaWdub3JlZCBhcyBkZWZpbmVkIGluIFtYUGF0aF0uCisgKgorICogSWYgdGhlIHN0cmluZyBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIG5vdCBmb3VuZCBpbiB0aGUgc3RyaW5nLXZhbHVlCisgKiBvZiB0aGUgbG9jYXRpb24sIG9yIGlmIGEgdmFsdWUgaW4gdGhlIHRoaXJkIG9yIGZvdXJ0aCBhcmd1bWVudCBpbmRpY2F0ZXMKKyAqIGEgc3RyaW5nIHRoYXQgaXMgYmV5b25kIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIHRoZSBkb2N1bWVudCwgdGhlCisgKiBleHByZXNzaW9uIGZhaWxzLgorICoKKyAqIFRoZSBwb2ludHMgb2YgdGhlIHJhbmdlLWxvY2F0aW9ucyBpbiB0aGUgcmV0dXJuZWQgbG9jYXRpb24tc2V0IHdpbGwKKyAqIGFsbCBiZSBjaGFyYWN0ZXIgcG9pbnRzLgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCit4bWxYUHRyU3RyaW5nUmFuZ2VGdW5jdGlvbih4bWxYUGF0aFBhcnNlckNvbnRleHRQdHIgY3R4dCwgaW50IG5hcmdzKSB7CisgICAgaW50IGksIHN0YXJ0aW5kZXgsIGVuZGluZGV4ID0gMCwgZmVuZGluZGV4OworICAgIHhtbE5vZGVQdHIgc3RhcnQsIGVuZCA9IDAsIGZlbmQ7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgc2V0OworICAgIHhtbExvY2F0aW9uU2V0UHRyIG9sZHNldDsKKyAgICB4bWxMb2NhdGlvblNldFB0ciBuZXdzZXQ7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgc3RyaW5nOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIHBvc2l0aW9uID0gTlVMTDsKKyAgICB4bWxYUGF0aE9iamVjdFB0ciBudW1iZXIgPSBOVUxMOworICAgIGludCBmb3VuZCwgcG9zID0gMCwgbnVtID0gMDsKKworICAgIC8qCisgICAgICogR3JhYiB0aGUgYXJndW1lbnRzCisgICAgICovCisgICAgaWYgKChuYXJncyA8IDIpIHx8IChuYXJncyA+IDQpKQorCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfQVJJVFkpOworCisgICAgaWYgKG5hcmdzID49IDQpIHsKKwlDSEVDS19UWVBFKFhQQVRIX05VTUJFUik7CisJbnVtYmVyID0gdmFsdWVQb3AoY3R4dCk7CisJaWYgKG51bWJlciAhPSBOVUxMKQorCSAgICBudW0gPSAoaW50KSBudW1iZXItPmZsb2F0dmFsOworICAgIH0KKyAgICBpZiAobmFyZ3MgPj0gMykgeworCUNIRUNLX1RZUEUoWFBBVEhfTlVNQkVSKTsKKwlwb3NpdGlvbiA9IHZhbHVlUG9wKGN0eHQpOworCWlmIChwb3NpdGlvbiAhPSBOVUxMKQorCSAgICBwb3MgPSAoaW50KSBwb3NpdGlvbi0+ZmxvYXR2YWw7CisgICAgfQorICAgIENIRUNLX1RZUEUoWFBBVEhfU1RSSU5HKTsKKyAgICBzdHJpbmcgPSB2YWx1ZVBvcChjdHh0KTsKKyAgICBpZiAoKGN0eHQtPnZhbHVlID09IE5VTEwpIHx8CisJKChjdHh0LT52YWx1ZS0+dHlwZSAhPSBYUEFUSF9MT0NBVElPTlNFVCkgJiYKKwkgKGN0eHQtPnZhbHVlLT50eXBlICE9IFhQQVRIX05PREVTRVQpKSkKKyAgICAgICAgWFBfRVJST1IoWFBBVEhfSU5WQUxJRF9UWVBFKQorCisgICAgc2V0ID0gdmFsdWVQb3AoY3R4dCk7CisgICAgbmV3c2V0ID0geG1sWFB0ckxvY2F0aW9uU2V0Q3JlYXRlKE5VTEwpOworICAgIGlmIChzZXQtPm5vZGVzZXR2YWwgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICBpZiAoc2V0LT50eXBlID09IFhQQVRIX05PREVTRVQpIHsKKwl4bWxYUGF0aE9iamVjdFB0ciB0bXA7CisKKwkvKgorCSAqIEZpcnN0IGNvbnZlcnQgdG8gYSBsb2NhdGlvbiBzZXQKKwkgKi8KKwl0bXAgPSB4bWxYUHRyTmV3TG9jYXRpb25TZXROb2RlU2V0KHNldC0+bm9kZXNldHZhbCk7CisJeG1sWFBhdGhGcmVlT2JqZWN0KHNldCk7CisJc2V0ID0gdG1wOworICAgIH0KKyAgICBvbGRzZXQgPSAoeG1sTG9jYXRpb25TZXRQdHIpIHNldC0+dXNlcjsKKworICAgIC8qCisgICAgICogVGhlIGxvb3AgaXMgdG8gc2VhcmNoIGZvciBlYWNoIGVsZW1lbnQgaW4gdGhlIGxvY2F0aW9uIHNldAorICAgICAqIHRoZSBsaXN0IG9mIGxvY2F0aW9uIHNldCBjb3JyZXNwb25kaW5nIHRvIHRoYXQgc2VhcmNoCisgICAgICovCisgICAgZm9yIChpID0gMDtpIDwgb2xkc2V0LT5sb2NOcjtpKyspIHsKKyNpZmRlZiBERUJVR19SQU5HRVMKKwl4bWxYUGF0aERlYnVnRHVtcE9iamVjdChzdGRvdXQsIG9sZHNldC0+bG9jVGFiW2ldLCAwKTsKKyNlbmRpZgorCisJeG1sWFB0ckdldFN0YXJ0UG9pbnQob2xkc2V0LT5sb2NUYWJbaV0sICZzdGFydCwgJnN0YXJ0aW5kZXgpOworCXhtbFhQdHJHZXRFbmRQb2ludChvbGRzZXQtPmxvY1RhYltpXSwgJmVuZCwgJmVuZGluZGV4KTsKKwl4bWxYUHRyQWR2YW5jZUNoYXIoJnN0YXJ0LCAmc3RhcnRpbmRleCwgMCk7CisJeG1sWFB0ckdldExhc3RDaGFyKCZlbmQsICZlbmRpbmRleCk7CisKKyNpZmRlZiBERUJVR19SQU5HRVMKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKKwkJImZyb20gaW5kZXggJWQgb2YgLT4iLCBzdGFydGluZGV4KTsKKwl4bWxEZWJ1Z0R1bXBTdHJpbmcoc3Rkb3V0LCBzdGFydC0+Y29udGVudCk7CisJeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsICJcbiIpOworCXhtbEdlbmVyaWNFcnJvcih4bWxHZW5lcmljRXJyb3JDb250ZXh0LAorCQkidG8gaW5kZXggJWQgb2YgLT4iLCBlbmRpbmRleCk7CisJeG1sRGVidWdEdW1wU3RyaW5nKHN0ZG91dCwgZW5kLT5jb250ZW50KTsKKwl4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwgIlxuIik7CisjZW5kaWYKKwlkbyB7CisgICAgICAgICAgICBmZW5kID0gZW5kOworICAgICAgICAgICAgZmVuZGluZGV4ID0gZW5kaW5kZXg7CisJICAgIGZvdW5kID0geG1sWFB0clNlYXJjaFN0cmluZyhzdHJpbmctPnN0cmluZ3ZhbCwgJnN0YXJ0LCAmc3RhcnRpbmRleCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgJmZlbmQsICZmZW5kaW5kZXgpOworCSAgICBpZiAoZm91bmQgPT0gMSkgeworCQlpZiAocG9zaXRpb24gPT0gTlVMTCkgeworCQkgICAgeG1sWFB0ckxvY2F0aW9uU2V0QWRkKG5ld3NldCwKKwkJCSB4bWxYUHRyTmV3UmFuZ2Uoc3RhcnQsIHN0YXJ0aW5kZXgsIGZlbmQsIGZlbmRpbmRleCkpOworCQl9IGVsc2UgaWYgKHhtbFhQdHJBZHZhbmNlQ2hhcigmc3RhcnQsICZzdGFydGluZGV4LAorCQkJICAgICAgICAgICAgICAgICAgICAgIHBvcyAtIDEpID09IDApIHsKKwkJICAgIGlmICgobnVtYmVyICE9IE5VTEwpICYmIChudW0gPiAwKSkgeworCQkJaW50IHJpbmR4OworCQkJeG1sTm9kZVB0ciByZW5kOworCQkJcmVuZCA9IHN0YXJ0OworCQkJcmluZHggPSBzdGFydGluZGV4IC0gMTsKKwkJCWlmICh4bWxYUHRyQWR2YW5jZUNoYXIoJnJlbmQsICZyaW5keCwKKwkJCQkgICAgICAgICAgICAgICBudW0pID09IDApIHsKKwkJCSAgICB4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3c2V0LAorCQkJCQl4bWxYUHRyTmV3UmFuZ2Uoc3RhcnQsIHN0YXJ0aW5kZXgsCisJCQkJCQkJcmVuZCwgcmluZHgpKTsKKwkJCX0KKwkJICAgIH0gZWxzZSBpZiAoKG51bWJlciAhPSBOVUxMKSAmJiAobnVtIDw9IDApKSB7CisJCQl4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3c2V0LAorCQkJCSAgICB4bWxYUHRyTmV3UmFuZ2Uoc3RhcnQsIHN0YXJ0aW5kZXgsCisJCQkJCQkgICAgc3RhcnQsIHN0YXJ0aW5kZXgpKTsKKwkJICAgIH0gZWxzZSB7CisJCQl4bWxYUHRyTG9jYXRpb25TZXRBZGQobmV3c2V0LAorCQkJCSAgICB4bWxYUHRyTmV3UmFuZ2Uoc3RhcnQsIHN0YXJ0aW5kZXgsCisJCQkJCQkgICAgZmVuZCwgZmVuZGluZGV4KSk7CisJCSAgICB9CisJCX0KKwkJc3RhcnQgPSBmZW5kOworCQlzdGFydGluZGV4ID0gZmVuZGluZGV4OworCQlpZiAoc3RyaW5nLT5zdHJpbmd2YWxbMF0gPT0gMCkKKwkJICAgIHN0YXJ0aW5kZXgrKzsKKwkgICAgfQorCX0gd2hpbGUgKGZvdW5kID09IDEpOworICAgIH0KKworICAgIC8qCisgICAgICogU2F2ZSB0aGUgbmV3IHZhbHVlIGFuZCBjbGVhbnVwCisgICAgICovCitlcnJvcjoKKyAgICB2YWx1ZVB1c2goY3R4dCwgeG1sWFB0cldyYXBMb2NhdGlvblNldChuZXdzZXQpKTsKKyAgICB4bWxYUGF0aEZyZWVPYmplY3Qoc2V0KTsKKyAgICB4bWxYUGF0aEZyZWVPYmplY3Qoc3RyaW5nKTsKKyAgICBpZiAocG9zaXRpb24pIHhtbFhQYXRoRnJlZU9iamVjdChwb3NpdGlvbik7CisgICAgaWYgKG51bWJlcikgeG1sWFBhdGhGcmVlT2JqZWN0KG51bWJlcik7Cit9CisKKy8qKgorICogeG1sWFB0ckV2YWxSYW5nZVByZWRpY2F0ZToKKyAqIEBjdHh0OiAgdGhlIFhQb2ludGVyIFBhcnNlciBjb250ZXh0CisgKgorICogIFs4XSAgIFByZWRpY2F0ZSA6Oj0gICAnWycgUHJlZGljYXRlRXhwciAnXScKKyAqICBbOV0gICBQcmVkaWNhdGVFeHByIDo6PSAgIEV4cHIgCisgKgorICogRXZhbHVhdGUgYSBwcmVkaWNhdGUgYXMgaW4geG1sWFBhdGhFdmFsUHJlZGljYXRlKCkgYnV0IGZvcgorICogYSBMb2NhdGlvbiBTZXQgaW5zdGVhZCBvZiBhIG5vZGUgc2V0CisgKi8KK3ZvaWQKK3htbFhQdHJFdmFsUmFuZ2VQcmVkaWNhdGUoeG1sWFBhdGhQYXJzZXJDb250ZXh0UHRyIGN0eHQpIHsKKyAgICBjb25zdCB4bWxDaGFyICpjdXI7CisgICAgeG1sWFBhdGhPYmplY3RQdHIgcmVzOworICAgIHhtbFhQYXRoT2JqZWN0UHRyIG9iaiwgdG1wOworICAgIHhtbExvY2F0aW9uU2V0UHRyIG5ld3NldCA9IE5VTEw7CisgICAgeG1sTG9jYXRpb25TZXRQdHIgb2xkc2V0OworICAgIGludCBpOworCisgICAgaWYgKGN0eHQgPT0gTlVMTCkgcmV0dXJuOworCisgICAgU0tJUF9CTEFOS1M7CisgICAgaWYgKENVUiAhPSAnWycpIHsKKwlYUF9FUlJPUihYUEFUSF9JTlZBTElEX1BSRURJQ0FURV9FUlJPUik7CisgICAgfQorICAgIE5FWFQ7CisgICAgU0tJUF9CTEFOS1M7CisKKyAgICAvKgorICAgICAqIEV4dHJhY3QgdGhlIG9sZCBzZXQsIGFuZCB0aGVuIGV2YWx1YXRlIHRoZSByZXN1bHQgb2YgdGhlCisgICAgICogZXhwcmVzc2lvbiBmb3IgYWxsIHRoZSBlbGVtZW50IGluIHRoZSBzZXQuIHVzZSBpdCB0byBncm93CisgICAgICogdXAgYSBuZXcgc2V0LgorICAgICAqLworICAgIENIRUNLX1RZUEUoWFBBVEhfTE9DQVRJT05TRVQpOworICAgIG9iaiA9IHZhbHVlUG9wKGN0eHQpOworICAgIG9sZHNldCA9IG9iai0+dXNlcjsKKyAgICBjdHh0LT5jb250ZXh0LT5ub2RlID0gTlVMTDsKKworICAgIGlmICgob2xkc2V0ID09IE5VTEwpIHx8IChvbGRzZXQtPmxvY05yID09IDApKSB7CisJY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSAwOworCWN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gMDsKKwl4bWxYUGF0aEV2YWxFeHByKGN0eHQpOworCXJlcyA9IHZhbHVlUG9wKGN0eHQpOworCWlmIChyZXMgIT0gTlVMTCkKKwkgICAgeG1sWFBhdGhGcmVlT2JqZWN0KHJlcyk7CisJdmFsdWVQdXNoKGN0eHQsIG9iaik7CisJQ0hFQ0tfRVJST1I7CisgICAgfSBlbHNlIHsKKwkvKgorCSAqIFNhdmUgdGhlIGV4cHJlc3Npb24gcG9pbnRlciBzaW5jZSB3ZSB3aWxsIGhhdmUgdG8gZXZhbHVhdGUKKwkgKiBpdCBtdWx0aXBsZSB0aW1lcy4gSW5pdGlhbGl6ZSB0aGUgbmV3IHNldC4KKwkgKi8KKyAgICAgICAgY3VyID0gY3R4dC0+Y3VyOworCW5ld3NldCA9IHhtbFhQdHJMb2NhdGlvblNldENyZWF0ZShOVUxMKTsKKwkKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG9sZHNldC0+bG9jTnI7IGkrKykgeworCSAgICBjdHh0LT5jdXIgPSBjdXI7CisKKwkgICAgLyoKKwkgICAgICogUnVuIHRoZSBldmFsdWF0aW9uIHdpdGggYSBub2RlIGxpc3QgbWFkZSBvZiBhIHNpbmdsZSBpdGVtCisJICAgICAqIGluIHRoZSBub2Rlc2V0LgorCSAgICAgKi8KKwkgICAgY3R4dC0+Y29udGV4dC0+bm9kZSA9IG9sZHNldC0+bG9jVGFiW2ldLT51c2VyOworCSAgICB0bXAgPSB4bWxYUGF0aE5ld05vZGVTZXQoY3R4dC0+Y29udGV4dC0+bm9kZSk7CisJICAgIHZhbHVlUHVzaChjdHh0LCB0bXApOworCSAgICBjdHh0LT5jb250ZXh0LT5jb250ZXh0U2l6ZSA9IG9sZHNldC0+bG9jTnI7CisJICAgIGN0eHQtPmNvbnRleHQtPnByb3hpbWl0eVBvc2l0aW9uID0gaSArIDE7CisKKwkgICAgeG1sWFBhdGhFdmFsRXhwcihjdHh0KTsKKwkgICAgQ0hFQ0tfRVJST1I7CisKKwkgICAgLyoKKwkgICAgICogVGhlIHJlc3VsdCBvZiB0aGUgZXZhbHVhdGlvbiBuZWVkIHRvIGJlIHRlc3RlZCB0bworCSAgICAgKiBkZWNpZGVkIHdoZXRoZXIgdGhlIGZpbHRlciBzdWNjZWVkZWQgb3Igbm90CisJICAgICAqLworCSAgICByZXMgPSB2YWx1ZVBvcChjdHh0KTsKKwkgICAgaWYgKHhtbFhQYXRoRXZhbHVhdGVQcmVkaWNhdGVSZXN1bHQoY3R4dCwgcmVzKSkgeworCSAgICAgICAgeG1sWFB0ckxvY2F0aW9uU2V0QWRkKG5ld3NldCwKKwkJCXhtbFhQYXRoT2JqZWN0Q29weShvbGRzZXQtPmxvY1RhYltpXSkpOworCSAgICB9CisKKwkgICAgLyoKKwkgICAgICogQ2xlYW51cAorCSAgICAgKi8KKwkgICAgaWYgKHJlcyAhPSBOVUxMKQorCQl4bWxYUGF0aEZyZWVPYmplY3QocmVzKTsKKwkgICAgaWYgKGN0eHQtPnZhbHVlID09IHRtcCkgeworCQlyZXMgPSB2YWx1ZVBvcChjdHh0KTsKKwkJeG1sWFBhdGhGcmVlT2JqZWN0KHJlcyk7CisJICAgIH0KKwkgICAgCisJICAgIGN0eHQtPmNvbnRleHQtPm5vZGUgPSBOVUxMOworCX0KKworCS8qCisJICogVGhlIHJlc3VsdCBpcyB1c2VkIGFzIHRoZSBuZXcgZXZhbHVhdGlvbiBzZXQuCisJICovCisJeG1sWFBhdGhGcmVlT2JqZWN0KG9iaik7CisJY3R4dC0+Y29udGV4dC0+bm9kZSA9IE5VTEw7CisJY3R4dC0+Y29udGV4dC0+Y29udGV4dFNpemUgPSAtMTsKKwljdHh0LT5jb250ZXh0LT5wcm94aW1pdHlQb3NpdGlvbiA9IC0xOworCXZhbHVlUHVzaChjdHh0LCB4bWxYUHRyV3JhcExvY2F0aW9uU2V0KG5ld3NldCkpOworICAgIH0KKyAgICBpZiAoQ1VSICE9ICddJykgeworCVhQX0VSUk9SKFhQQVRIX0lOVkFMSURfUFJFRElDQVRFX0VSUk9SKTsKKyAgICB9CisKKyAgICBORVhUOworICAgIFNLSVBfQkxBTktTOworfQorCisjZGVmaW5lIGJvdHRvbV94cG9pbnRlcgorI2luY2x1ZGUgImVsZmdjY2hhY2suaCIKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3hzdGMvTWFrZWZpbGUuYW0gYi9saWJ4bWwyLTIuNy43L3hzdGMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY2YThkZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveHN0Yy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDEzMiBAQAorIworIyBEZWZpbml0aW9uIGZvciB0aGUgdGVzdHMgZnJvbSBXM0MKKyMKK1BZU0NSSVBUUz1uaXN0LXRlc3QucHkgbXMtdGVzdC5weSBzdW4tdGVzdC5weQorVEVTVERJUj1UZXN0cworVEVTVERJUlM9JChURVNURElSKS9tc3hzZHRlc3QgJChURVNURElSKS9zdW50ZXN0ICQoVEVTVERJUikvRGF0YXR5cGVzCitUQVJCQUxMPXhzdHMtMjAwMi0wMS0xNi50YXIuZ3oKK1RBUkJBTExfMj14c3RzLTIwMDQtMDEtMTQudGFyLmd6CitUU05BTUU9eG1sc2NoZW1hMjAwMi0wMS0xNgorVFNOQU1FXzI9eG1sc2NoZW1hMjAwNC0wMS0xNAorVEFSQkFMTFVSTD1odHRwOi8vd3d3LnczLm9yZy9YTUwvMjAwNC94bWwtc2NoZW1hLXRlc3Qtc3VpdGUvJChUU05BTUUpLyQoVEFSQkFMTCkKK1RBUkJBTExVUkxfMj1odHRwOi8vd3d3LnczLm9yZy9YTUwvMjAwNC94bWwtc2NoZW1hLXRlc3Qtc3VpdGUvJChUU05BTUVfMikvJChUQVJCQUxMXzIpCitNU1RFU1RERUY9TVNYTUxTY2hlbWExLTAtMjAwMjAxMTYudGVzdFNldAorU1VOVEVTVERFRj1TdW5YTUxTY2hlbWExLTAtMjAwMjAxMTYudGVzdFNldAorTklTVFRFU1RERUY9TklTVFhNTFNjaGVtYTEtMC0yMDAyMDExNi50ZXN0U2V0CitOSVNUVEVTVERFRl8yPU5JU1RYTUxTY2hlbWFEYXRhdHlwZXMudGVzdFNldAorCisjCisjIFRoZSBsb2NhbCBkYXRhIGFuZCBzY3JpcHRzCisjCitFWFRSQV9ESVNUPXhzdGMucHkgeHN0Yy10by1weXRob24ueHNsCisjCisjIE5vdGhpbmcgaXMgZG9uZSBieSBtYWtlLCBvbmx5IG1ha2UgdGVzdHMgYW5kCisjIG9ubHkgaWYgUHl0aG9uIGFuZCBTY2hlbWFzIGFyZSBlbmFibGVkLgorIworYWxsOgorCisjCisjIFJ1bGUgdG8gbG9hZCB0aGUgdGVzdCBkZXNjcmlwdGlvbiBhbmQgZXh0cmFjdCB0aGUgaW5mb3JtYXRpb25zCisjCiskKFRFU1RESVJTKSBUZXN0cy9NZXRhZGF0YS8kKE5JU1RURVNUREVGXzIpIFRlc3RzL01ldGFkYXRhLyQoTVNUVEVTVERFRikgVGVzdHMvTWV0YWRhdGEvJChTVU5URVNUREVGKToKKwktQChpZiBbICEgLWQgVGVzdHMgXSA7IHRoZW4gXAorCSAgIG1rZGlyIFRlc3RzIDsgXAorCSAgIGZpKQorCS1AKGlmIFsgISAtZiAkKFRBUkJBTExfMikgXSA7IHRoZW4gXAorCSAgIGlmIFsgLWYgJChzcmNkaXIpLyQoVEFSQkFMTF8yKSBdIDsgdGhlbiBcCisJICAgJChMTl9TKSAkKHNyY2RpcikvJChUQVJCQUxMXzIpICQoVEFSQkFMTF8yKSA7IGVsc2UgXAorCSAgIGVjaG8gIk1pc3NpbmcgdGhlIHRlc3Qgc3VpdGUgZGVzY3JpcHRpb24gKDIwMDQtMDEtMTQpLCB0cnlpbmcgdG8gZmV0Y2ggaXQiIDtcCisJICAgaWYgWyAteCAiJChXR0VUKSIgXSA7IHRoZW4gXAorCSAgICQoV0dFVCkgJChUQVJCQUxMVVJMXzIpIDsgXAorCSAgIGVsc2UgZWNobyAiRG9udCcga25vdyBob3cgdG8gZmV0Y2ggJChUQVJCQUxMVVJMXzIpIiA7IGZpIDsgZmkgOyBmaSkKKwktQChpZiBbIC1mICQoVEFSQkFMTF8yKSBdIDsgdGhlbiBcCisJICAgZWNobyAtbiAiZXh0cmFjdGluZyB0ZXN0IGRhdGEgKE5JU1QpLi4uIiA7IFwKKwkgICAkKFRBUikgLXh6ZiAkKFRBUkJBTExfMikgLS13aWxkY2FyZHMgJyovRGF0YXR5cGVzJyAnKi9NZXRhZGF0YS8kKE5JU1RURVNUREVGXzIpJyA7IFwKKwkgICBlY2hvICJkb25lIiA7IFwKKwkgICBmaSkKKwktQChpZiBbICEgLWYgJChUQVJCQUxMKSBdIDsgdGhlbiBcCisJICAgaWYgWyAtZiAkKHNyY2RpcikvJChUQVJCQUxMKSBdIDsgdGhlbiBcCisJICAgJChMTl9TKSAkKHNyY2RpcikvJChUQVJCQUxMKSAkKFRBUkJBTEwpIDsgZWxzZSBcCisJICAgZWNobyAiTWlzc2luZyB0aGUgdGVzdCBzdWl0ZSBkZXNjcmlwdGlvbiAoMjAwMi0wMS0xNiksIHRyeWluZyB0byBmZXRjaCBpdCIgO1wKKwkgICBpZiBbIC14ICIkKFdHRVQpIiBdIDsgdGhlbiBcCisJICAgJChXR0VUKSAkKFRBUkJBTExVUkwpIDsgXAorCSAgIGVsc2UgZWNobyAiRG9udCcga25vdyBob3cgdG8gZmV0Y2ggJChUQVJCQUxMVVJMKSIgOyBmaSA7IGZpIDsgZmkpCisJLUAoaWYgWyAtZiAkKFRBUkJBTEwpIF0gOyB0aGVuIFwKKwkgICBlY2hvIC1uICJleHRyYWN0aW5nIHRlc3QgZGF0YSAoU3VuLCBNaWNyb3NvZnQpLi4uIiA7IFwKKwkgICAkKFRBUikgLUMgVGVzdHMgLXh6ZiAkKFRBUkJBTEwpIC0td2lsZGNhcmRzICcqL3N1bnRlc3QnICcqL21zeHNkdGVzdCcgJyovJChNU1RFU1RERUYpJyAnKi8kKFNVTlRFU1RERUYpJyA7IFwKKwkgICBpZiBbIC1kIFRlc3RzL3N1bnRlc3QgXSA7IHRoZW4gcm0gLXIgVGVzdHMvc3VudGVzdCA7IGZpIDsgXAorCSAgIGlmIFsgLWQgVGVzdHMvbXN4c2R0ZXN0IF0gOyB0aGVuIHJtIC1yIFRlc3RzL21zeHNkdGVzdCA7IGZpIDsgXAorCSAgIG12IFRlc3RzL3htbHNjaGVtYTIwMDItMDEtMTYvKiBUZXN0cyA7IFwKKwkgICBtdiBUZXN0cy8qLnRlc3RTZXQgVGVzdHMvTWV0YWRhdGEgOyBcCisJICAgcm0gLXIgVGVzdHMveG1sc2NoZW1hMjAwMi0wMS0xNiA7IFwKKwkgICBlY2hvICJkb25lIiA7IFwKKwkgICBmaSkKKworIworIyBUaGUgcHl0aG9uIHRlc3RzIGFyZSBnZW5lcmF0ZWQgdmlhIFhTTFQKKyMKK25pc3QtdGVzdC5weTogVGVzdHMvTWV0YWRhdGEvJChOSVNUVEVTVERFRl8yKSB4c3RjLXRvLXB5dGhvbi54c2wKKwktQChpZiBbIC14ICQoWFNMVFBST0MpIF0gOyB0aGVuIFwKKwkgIGVjaG8gIlJlYnVpbGRpbmcgc2NyaXB0IChOSVNUKSIgJEAgOyBcCisJICAkKFhTTFRQUk9DKSAtLW5vbmV0IC0tc3RyaW5ncGFyYW0gdmVuZG9yIE5JU1QtMiBcCisJICAgICAgICAgICAgICAgICAgICAgJChzcmNkaXIpL3hzdGMtdG8tcHl0aG9uLnhzbCBcCisJICAgICAgICAgICAgICAgICAgICAgJChzcmNkaXIpL1Rlc3RzL01ldGFkYXRhLyQoTklTVFRFU1RERUZfMikgPiAkQCA7IFwKKwkgIGNobW9kICt4ICRAIDsgZmkgKQorCittcy10ZXN0LnB5OiBUZXN0cy9NZXRhZGF0YS8kKE1TVFRFU1RERUYpIHhzdGMtdG8tcHl0aG9uLnhzbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyBzY3JpcHQgKE1pY3Jvc29mdCkiICRAIDsgXAorCSAgJChYU0xUUFJPQykgLS1ub25ldCAtLXN0cmluZ3BhcmFtIHZlbmRvciBNUyBcCisJICAgICAgICAgICAgICAgICAgICAgJChzcmNkaXIpL3hzdGMtdG8tcHl0aG9uLnhzbCBcCisJICAgICAgICAgICAgICAgICAgICAgJChzcmNkaXIpL1Rlc3RzL01ldGFkYXRhLyQoTVNURVNUREVGKSA+ICRAIDsgXAorCSAgY2htb2QgK3ggJEAgOyBmaSApCisKK3N1bi10ZXN0LnB5OiBUZXN0cy9NZXRhZGF0YS8kKFNVTlRFU1RERUYpIHhzdGMtdG8tcHl0aG9uLnhzbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyBzY3JpcHQgKFN1bikiICRAIDsgXAorCSAgJChYU0xUUFJPQykgLS1ub25ldCAtLXN0cmluZ3BhcmFtIHZlbmRvciBTVU4gXAorCSAgICAgICAgICAgICAgICAgICAgICQoc3JjZGlyKS94c3RjLXRvLXB5dGhvbi54c2wgXAorCSAgICAgICAgICAgICAgICAgICAgICQoc3JjZGlyKS9UZXN0cy9NZXRhZGF0YS8kKFNVTlRFU1RERUYpID4gJEAgOyBcCisJICBjaG1vZCAreCAkQCA7IGZpICkKKworIworIyBUaGUgYWN0dWFsIHRlc3QgcnVuIGlmIHByZXNlbnQuIFBZVEhPTlBBVEggaXMgdXBkYXRlZCB0byBtYWtlIHN1cmUKKyMgd2UgcnVuIHRoZSB2ZXJzaW9uIGZyb20gdGhlIGxvYWNsIGJ1aWxkIGFuZCBub3QgcHJlaW5zdGFsbGVkIGJpbmRpbmdzCisjCitweXRlc3RzOiAkKFBZU0NSSVBUUykgJChURVNURElSUykKKwktQChpZiBbIC14IG5pc3QtdGVzdC5weSAtYSAtZCAkKFRFU1RESVIpL0RhdGF0eXBlcyBdIDsgdGhlbiAJCVwKKwkgICBlY2hvICIjIyBSdW5uaW5nIFhNTCBTY2hlbWEgdGVzdHMgKE5JU1QpIjsJCQlcCisJICAgUFlUSE9OUEFUSD0iLi4vcHl0aG9uOi4uL3B5dGhvbi8ubGliczouLjouLi8ubGliczokJFBZVEhPTlBBVEgiIDtcCisJICAgZXhwb3J0IFBZVEhPTlBBVEg7CQkJCQkJXAorCSAgIExEX0xJQlJBUllfUEFUSD0iJCh0b3BfYnVpbGRkaXIpLy5saWJzOiQkTERfTElCUkFSWV9QQVRIIiA7CVwKKwkgICBleHBvcnQgTERfTElCUkFSWV9QQVRIOwkJCQkJXAorCSAgICQoQ0hFQ0tFUikgJChQWVRIT04pIG5pc3QtdGVzdC5weSAtcyAtYiAkKHNyY2RpcikgOyBmaSkKKwktQChpZiBbIC14IHN1bi10ZXN0LnB5IC1hIC1kICQoVEVTVERJUikvc3VudGVzdCBdIDsgdGhlbiAJCQlcCisJICAgZWNobyAiIyMgUnVubmluZyBTY2hlbWEgdGVzdHMgKFN1bikiOwkJCQlcCisJICAgUFlUSE9OUEFUSD0iLi4vcHl0aG9uOi4uL3B5dGhvbi8ubGliczouLjouLi8ubGliczokJFBZVEhPTlBBVEgiIDtcCisJICAgZXhwb3J0IFBZVEhPTlBBVEg7CQkJCQkJXAorCSAgIExEX0xJQlJBUllfUEFUSD0iJCh0b3BfYnVpbGRkaXIpLy5saWJzOiQkTERfTElCUkFSWV9QQVRIIiA7CVwKKwkgICBleHBvcnQgTERfTElCUkFSWV9QQVRIOwkJCQkJXAorCSAgICQoQ0hFQ0tFUikgJChQWVRIT04pIHN1bi10ZXN0LnB5IC1zIC1iICQoc3JjZGlyKSA7IGZpKQorCS1AKGlmIFsgLXggbXMtdGVzdC5weSAtYSAtZCAkKFRFU1RESVIpL21zeHNkdGVzdCBdIDsgdGhlbiAJCQlcCisJICAgZWNobyAiIyMgUnVubmluZyBTY2hlbWEgdGVzdHMgKE1pY3Jvc29mdCkiOwkJCVwKKwkgICBQWVRIT05QQVRIPSIuLi9weXRob246Li4vcHl0aG9uLy5saWJzOi4uOi4uLy5saWJzOiQkUFlUSE9OUEFUSCIgO1wKKwkgICBleHBvcnQgUFlUSE9OUEFUSDsJCQkJCQlcCisJICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvLmxpYnM6JCRMRF9MSUJSQVJZX1BBVEgiIDsJXAorCSAgIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEg7CQkJCQlcCisJICAgJChDSEVDS0VSKSAkKFBZVEhPTikgbXMtdGVzdC5weSAtcyAtYiAkKHNyY2RpcikgOyBmaSkKKwordGVzdHM6CisJLUAoaWYgWyAteCAkKFBZVEhPTikgXSA7IHRoZW4gCQkJCQlcCisJICAgJChNQUtFKSBNQUtFRkxBR1MrPS0tc2lsZW50IHB5dGVzdHMgOyBmaSk7CisKKyMKKyMgSGVhdnksIHdvcmtzIHdlbGwgb25seSBvbiBSSEVMMworIwordmFsZ3JpbmQ6CisJLUAoaWYgWyAteCAkKFBZVEhPTikgXSA7IHRoZW4gCQkJCQlcCisJICAgZWNobyAnIyMgUnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZCcgOwlcCisJICAgJChNQUtFKSBDSEVDS0VSPSd2YWxncmluZCAtcScgTUFLRUZMQUdTKz0tLXNpbGVudCBweXRlc3RzIDsgZmkpOworCitDTEVBTkZJTEVTPSQoUFlTQ1JJUFRTKSB0ZXN0LmxvZworCmRpZmYgLS1naXQgYS9saWJ4bWwyLTIuNy43L3hzdGMvTWFrZWZpbGUuaW4gYi9saWJ4bWwyLTIuNy43L3hzdGMvTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNlOGE4OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveHN0Yy9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDU5MSBAQAorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKK1ZQQVRIID0gQHNyY2RpckAKK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACitwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACitwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CitpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCitpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCit0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCitOT1JNQUxfSU5TVEFMTCA9IDoKK1BSRV9JTlNUQUxMID0gOgorUE9TVF9JTlNUQUxMID0gOgorTk9STUFMX1VOSU5TVEFMTCA9IDoKK1BSRV9VTklOU1RBTEwgPSA6CitQT1NUX1VOSU5TVEFMTCA9IDoKK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACitob3N0X3RyaXBsZXQgPSBAaG9zdEAKK3N1YmRpciA9IHhzdGMKK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbgorQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvbTQvbGlidG9vbC5tNCBcCisJJCh0b3Bfc3JjZGlyKS9tNC9sdG9wdGlvbnMubTQgJCh0b3Bfc3JjZGlyKS9tNC9sdHN1Z2FyLm00IFwKKwkkKHRvcF9zcmNkaXIpL200L2x0dmVyc2lvbi5tNCAkKHRvcF9zcmNkaXIpL200L2x0fm9ic29sZXRlLm00IFwKKwkkKHRvcF9zcmNkaXIpL2FjaW5jbHVkZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5pbgorYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKwkkKEFDTE9DQUxfTTQpCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5oCitDT05GSUdfQ0xFQU5fRklMRVMgPQorQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK1NPVVJDRVMgPQorRElTVF9TT1VSQ0VTID0KK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCitBQ0xPQ0FMID0gQEFDTE9DQUxACitBTVRBUiA9IEBBTVRBUkAKK0FSID0gQEFSQAorQVMgPSBAQVNACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0JBU0VfVEhSRUFEX0xJQlMgPSBAQkFTRV9USFJFQURfTElCU0AKK0MxNE5fT0JKID0gQEMxNE5fT0JKQAorQ0FUQUxPR19PQkogPSBAQ0FUQUxPR19PQkpACitDQyA9IEBDQ0AKK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACitDRkxBR1MgPSBAQ0ZMQUdTQAorQ1BQID0gQENQUEAKK0NQUEZMQUdTID0gQENQUEZMQUdTQAorQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKK0NZR1dJTl9FWFRSQV9MREZMQUdTID0gQENZR1dJTl9FWFRSQV9MREZMQUdTQAorQ1lHV0lOX0VYVFJBX1BZVEhPTl9MSUJBREQgPSBAQ1lHV0lOX0VYVFJBX1BZVEhPTl9MSUJBRERACitERUJVR19PQkogPSBAREVCVUdfT0JKQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0RMTFRPT0wgPSBARExMVE9PTEAKK0RPQ0JfT0JKID0gQERPQ0JfT0JKQAorRFNZTVVUSUwgPSBARFNZTVVUSUxACitEVU1QQklOID0gQERVTVBCSU5ACitFQ0hPX0MgPSBARUNIT19DQAorRUNIT19OID0gQEVDSE9fTkAKK0VDSE9fVCA9IEBFQ0hPX1RACitFR1JFUCA9IEBFR1JFUEAKK0VYRUVYVCA9IEBFWEVFWFRACitGR1JFUCA9IEBGR1JFUEAKK0ZUUF9PQkogPSBARlRQX09CSkAKK0dSRVAgPSBAR1JFUEAKK0hBVkVfSVNJTkYgPSBASEFWRV9JU0lORkAKK0hBVkVfSVNOQU4gPSBASEFWRV9JU05BTkAKK0hUTUxfRElSID0gQEhUTUxfRElSQAorSFRNTF9PQkogPSBASFRNTF9PQkpACitIVFRQX09CSiA9IEBIVFRQX09CSkAKK0lDT05WX0xJQlMgPSBASUNPTlZfTElCU0AKK0lOU1RBTEwgPSBASU5TVEFMTEAKK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACitJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorTEQgPSBATERACitMREZMQUdTID0gQExERkxBR1NACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSUJUT09MID0gQExJQlRPT0xACitMSUJYTUxfTUFKT1JfVkVSU0lPTiA9IEBMSUJYTUxfTUFKT1JfVkVSU0lPTkAKK0xJQlhNTF9NSUNST19WRVJTSU9OID0gQExJQlhNTF9NSUNST19WRVJTSU9OQAorTElCWE1MX01JTk9SX1ZFUlNJT04gPSBATElCWE1MX01JTk9SX1ZFUlNJT05ACitMSUJYTUxfVkVSU0lPTiA9IEBMSUJYTUxfVkVSU0lPTkAKK0xJQlhNTF9WRVJTSU9OX0VYVFJBID0gQExJQlhNTF9WRVJTSU9OX0VYVFJBQAorTElCWE1MX1ZFUlNJT05fSU5GTyA9IEBMSUJYTUxfVkVSU0lPTl9JTkZPQAorTElCWE1MX1ZFUlNJT05fTlVNQkVSID0gQExJQlhNTF9WRVJTSU9OX05VTUJFUkAKK0xJUE8gPSBATElQT0AKK0xOX1MgPSBATE5fU0AKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01LRElSX1AgPSBATUtESVJfUEAKK01PRFVMRV9FWFRFTlNJT04gPSBATU9EVUxFX0VYVEVOU0lPTkAKK01PRFVMRV9QTEFURk9STV9MSUJTID0gQE1PRFVMRV9QTEFURk9STV9MSUJTQAorTVYgPSBATVZACitNX0xJQlMgPSBATV9MSUJTQAorTk0gPSBATk1ACitOTUVESVQgPSBATk1FRElUQAorT0JKRFVNUCA9IEBPQkpEVU1QQAorT0JKRVhUID0gQE9CSkVYVEAKK09UT09MID0gQE9UT09MQAorT1RPT0w2NCA9IEBPVE9PTDY0QAorUEFDS0FHRSA9IEBQQUNLQUdFQAorUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorUEVSTCA9IEBQRVJMQAorUFlUSE9OID0gQFBZVEhPTkAKK1BZVEhPTl9JTkNMVURFUyA9IEBQWVRIT05fSU5DTFVERVNACitQWVRIT05fTElCUyA9IEBQWVRIT05fTElCU0AKK1BZVEhPTl9TSVRFX1BBQ0tBR0VTID0gQFBZVEhPTl9TSVRFX1BBQ0tBR0VTQAorUFlUSE9OX1NVQkRJUiA9IEBQWVRIT05fU1VCRElSQAorUFlUSE9OX1RFU1RTID0gQFBZVEhPTl9URVNUU0AKK1BZVEhPTl9WRVJTSU9OID0gQFBZVEhPTl9WRVJTSU9OQAorUkFOTElCID0gQFJBTkxJQkAKK1JETF9MSUJTID0gQFJETF9MSUJTQAorUkVBREVSX1RFU1QgPSBAUkVBREVSX1RFU1RACitSRUxEQVRFID0gQFJFTERBVEVACitSTSA9IEBSTUAKK1NFRCA9IEBTRURACitTRVRfTUFLRSA9IEBTRVRfTUFLRUAKK1NIRUxMID0gQFNIRUxMQAorU1RBVElDX0JJTkFSSUVTID0gQFNUQVRJQ19CSU5BUklFU0AKK1NUUklQID0gQFNUUklQQAorVEFSID0gQFRBUkAKK1RFU1RfQzE0TiA9IEBURVNUX0MxNE5ACitURVNUX0NBVEFMT0cgPSBAVEVTVF9DQVRBTE9HQAorVEVTVF9ERUJVRyA9IEBURVNUX0RFQlVHQAorVEVTVF9IVE1MID0gQFRFU1RfSFRNTEAKK1RFU1RfTU9EVUxFUyA9IEBURVNUX01PRFVMRVNACitURVNUX1BBVFRFUk4gPSBAVEVTVF9QQVRURVJOQAorVEVTVF9QSFRNTCA9IEBURVNUX1BIVE1MQAorVEVTVF9QVVNIID0gQFRFU1RfUFVTSEAKK1RFU1RfUkVHRVhQUyA9IEBURVNUX1JFR0VYUFNACitURVNUX1NBWCA9IEBURVNUX1NBWEAKK1RFU1RfU0NIRU1BUyA9IEBURVNUX1NDSEVNQVNACitURVNUX1NDSEVNQVRST04gPSBAVEVTVF9TQ0hFTUFUUk9OQAorVEVTVF9USFJFQURTID0gQFRFU1RfVEhSRUFEU0AKK1RFU1RfVkFMSUQgPSBAVEVTVF9WQUxJREAKK1RFU1RfVlRJTUUgPSBAVEVTVF9WVElNRUAKK1RFU1RfWElOQ0xVREUgPSBAVEVTVF9YSU5DTFVERUAKK1RFU1RfWFBBVEggPSBAVEVTVF9YUEFUSEAKK1RFU1RfWFBUUiA9IEBURVNUX1hQVFJACitUSFJFQURTX1czMiA9IEBUSFJFQURTX1czMkAKK1RIUkVBRF9DRkxBR1MgPSBAVEhSRUFEX0NGTEFHU0AKK1RIUkVBRF9MSUJTID0gQFRIUkVBRF9MSUJTQAorVSA9IEBVQAorVkVSU0lPTiA9IEBWRVJTSU9OQAorVkVSU0lPTl9TQ1JJUFRfRkxBR1MgPSBAVkVSU0lPTl9TQ1JJUFRfRkxBR1NACitXR0VUID0gQFdHRVRACitXSU4zMl9FWFRSQV9MREZMQUdTID0gQFdJTjMyX0VYVFJBX0xERkxBR1NACitXSU4zMl9FWFRSQV9MSUJBREQgPSBAV0lOMzJfRVhUUkFfTElCQUREQAorV0lUSF9DMTROID0gQFdJVEhfQzE0TkAKK1dJVEhfQ0FUQUxPRyA9IEBXSVRIX0NBVEFMT0dACitXSVRIX0RFQlVHID0gQFdJVEhfREVCVUdACitXSVRIX0RPQ0IgPSBAV0lUSF9ET0NCQAorV0lUSF9GVFAgPSBAV0lUSF9GVFBACitXSVRIX0hUTUwgPSBAV0lUSF9IVE1MQAorV0lUSF9IVFRQID0gQFdJVEhfSFRUUEAKK1dJVEhfSUNPTlYgPSBAV0lUSF9JQ09OVkAKK1dJVEhfSVNPODg1OVggPSBAV0lUSF9JU084ODU5WEAKK1dJVEhfTEVHQUNZID0gQFdJVEhfTEVHQUNZQAorV0lUSF9NRU1fREVCVUcgPSBAV0lUSF9NRU1fREVCVUdACitXSVRIX01PRFVMRVMgPSBAV0lUSF9NT0RVTEVTQAorV0lUSF9PVVRQVVQgPSBAV0lUSF9PVVRQVVRACitXSVRIX1BBVFRFUk4gPSBAV0lUSF9QQVRURVJOQAorV0lUSF9QVVNIID0gQFdJVEhfUFVTSEAKK1dJVEhfUkVBREVSID0gQFdJVEhfUkVBREVSQAorV0lUSF9SRUdFWFBTID0gQFdJVEhfUkVHRVhQU0AKK1dJVEhfUlVOX0RFQlVHID0gQFdJVEhfUlVOX0RFQlVHQAorV0lUSF9TQVgxID0gQFdJVEhfU0FYMUAKK1dJVEhfU0NIRU1BUyA9IEBXSVRIX1NDSEVNQVNACitXSVRIX1NDSEVNQVRST04gPSBAV0lUSF9TQ0hFTUFUUk9OQAorV0lUSF9USFJFQURTID0gQFdJVEhfVEhSRUFEU0AKK1dJVEhfVFJFRSA9IEBXSVRIX1RSRUVACitXSVRIX1RSSU8gPSBAV0lUSF9UUklPQAorV0lUSF9WQUxJRCA9IEBXSVRIX1ZBTElEQAorV0lUSF9XUklURVIgPSBAV0lUSF9XUklURVJACitXSVRIX1hJTkNMVURFID0gQFdJVEhfWElOQ0xVREVACitXSVRIX1hQQVRIID0gQFdJVEhfWFBBVEhACitXSVRIX1hQVFIgPSBAV0lUSF9YUFRSQAorV0lUSF9aTElCID0gQFdJVEhfWkxJQkAKK1hJTkNMVURFX09CSiA9IEBYSU5DTFVERV9PQkpACitYTUxMSU5UID0gQFhNTExJTlRACitYTUxfQ0ZMQUdTID0gQFhNTF9DRkxBR1NACitYTUxfSU5DTFVERURJUiA9IEBYTUxfSU5DTFVERURJUkAKK1hNTF9MSUJESVIgPSBAWE1MX0xJQkRJUkAKK1hNTF9MSUJTID0gQFhNTF9MSUJTQAorWE1MX0xJQlRPT0xMSUJTID0gQFhNTF9MSUJUT09MTElCU0AKK1hQQVRIX09CSiA9IEBYUEFUSF9PQkpACitYUFRSX09CSiA9IEBYUFRSX09CSkAKK1hTTFRQUk9DID0gQFhTTFRQUk9DQAorWl9DRkxBR1MgPSBAWl9DRkxBR1NACitaX0xJQlMgPSBAWl9MSUJTQAorYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACitkb2NkaXIgPSBAZG9jZGlyQAorZHZpZGlyID0gQGR2aWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2h0bWxkaXIgPSBAaHRtbGRpckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorbHRfRUNITyA9IEBsdF9FQ0hPQAorbWFuZGlyID0gQG1hbmRpckAKK21rZGlyX3AgPSBAbWtkaXJfcEAKK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKK3BkZmRpciA9IEBwZGZkaXJACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorcHNkaXIgPSBAcHNkaXJACitweXRob25kaXIgPSBAcHl0aG9uZGlyQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzcmNkaXIgPSBAc3JjZGlyQAorc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAordGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisKKyMKKyMgRGVmaW5pdGlvbiBmb3IgdGhlIHRlc3RzIGZyb20gVzNDCisjCitQWVNDUklQVFMgPSBuaXN0LXRlc3QucHkgbXMtdGVzdC5weSBzdW4tdGVzdC5weQorVEVTVERJUiA9IFRlc3RzCitURVNURElSUyA9ICQoVEVTVERJUikvbXN4c2R0ZXN0ICQoVEVTVERJUikvc3VudGVzdCAkKFRFU1RESVIpL0RhdGF0eXBlcworVEFSQkFMTCA9IHhzdHMtMjAwMi0wMS0xNi50YXIuZ3oKK1RBUkJBTExfMiA9IHhzdHMtMjAwNC0wMS0xNC50YXIuZ3oKK1RTTkFNRSA9IHhtbHNjaGVtYTIwMDItMDEtMTYKK1RTTkFNRV8yID0geG1sc2NoZW1hMjAwNC0wMS0xNAorVEFSQkFMTFVSTCA9IGh0dHA6Ly93d3cudzMub3JnL1hNTC8yMDA0L3htbC1zY2hlbWEtdGVzdC1zdWl0ZS8kKFRTTkFNRSkvJChUQVJCQUxMKQorVEFSQkFMTFVSTF8yID0gaHR0cDovL3d3dy53My5vcmcvWE1MLzIwMDQveG1sLXNjaGVtYS10ZXN0LXN1aXRlLyQoVFNOQU1FXzIpLyQoVEFSQkFMTF8yKQorTVNURVNUREVGID0gTVNYTUxTY2hlbWExLTAtMjAwMjAxMTYudGVzdFNldAorU1VOVEVTVERFRiA9IFN1blhNTFNjaGVtYTEtMC0yMDAyMDExNi50ZXN0U2V0CitOSVNUVEVTVERFRiA9IE5JU1RYTUxTY2hlbWExLTAtMjAwMjAxMTYudGVzdFNldAorTklTVFRFU1RERUZfMiA9IE5JU1RYTUxTY2hlbWFEYXRhdHlwZXMudGVzdFNldAorCisjCisjIFRoZSBsb2NhbCBkYXRhIGFuZCBzY3JpcHRzCisjCitFWFRSQV9ESVNUID0geHN0Yy5weSB4c3RjLXRvLXB5dGhvbi54c2wKK0NMRUFORklMRVMgPSAkKFBZU0NSSVBUUykgdGVzdC5sb2cKK2FsbDogYWxsLWFtCisKKy5TVUZGSVhFUzoKKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorCSAgICAgIGV4aXQgMTs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgeHN0Yy9NYWtlZmlsZSc7IFwKKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisJICAkKEFVVE9NQUtFKSAtLWdudSB4c3RjL01ha2VmaWxlCisuUFJFQ0lPVVM6IE1ha2VmaWxlCitNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisJQGNhc2UgJyQ/JyBpbiBcCisJICAqY29uZmlnLnN0YXR1cyopIFwKKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorCSAgKikgXAorCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisJZXNhYzsKKworJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCiskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKworbW9zdGx5Y2xlYW4tbGlidG9vbDoKKwktcm0gLWYgKi5sbworCitjbGVhbi1saWJ0b29sOgorCS1ybSAtcmYgLmxpYnMgX2xpYnMKK3RhZ3M6IFRBR1MKK1RBR1M6CisKK2N0YWdzOiBDVEFHUworQ1RBR1M6CisKKworZGlzdGRpcjogJChESVNURklMRVMpCisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorCQkJICAgc29ydCAtdWAgOzsgXAorCWVzYWM7IFwKKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisJICAgIGZpOyBcCisJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKwkgICAgZmk7IFwKKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorCSAgZWxzZSBcCisJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisJICAgIHx8IGV4aXQgMTsgXAorCSAgZmk7IFwKKwlkb25lCitjaGVjay1hbTogYWxsLWFtCitjaGVjazogY2hlY2stYW0KK2FsbC1hbTogTWFrZWZpbGUKK2luc3RhbGxkaXJzOgoraW5zdGFsbDogaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoQ0xFQU5GSUxFUykKKworZGlzdGNsZWFuLWdlbmVyaWM6CisJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisKK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKworZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKwktcm0gLWYgTWFrZWZpbGUKK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKworZHZpOiBkdmktYW0KKworZHZpLWFtOgorCitodG1sOiBodG1sLWFtCisKK2h0bWwtYW06CisKK2luZm86IGluZm8tYW0KKworaW5mby1hbToKKworaW5zdGFsbC1kYXRhLWFtOgorCitpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKworaW5zdGFsbC1kdmktYW06CisKK2luc3RhbGwtZXhlYy1hbToKKworaW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKworaW5zdGFsbC1odG1sLWFtOgorCitpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorCitpbnN0YWxsLWluZm8tYW06CisKK2luc3RhbGwtbWFuOgorCitpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKworaW5zdGFsbC1wZGYtYW06CisKK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKworaW5zdGFsbC1wcy1hbToKKworaW5zdGFsbGNoZWNrLWFtOgorCittYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06CisKKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKworLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAorCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAorCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisKKyMKKyMgTm90aGluZyBpcyBkb25lIGJ5IG1ha2UsIG9ubHkgbWFrZSB0ZXN0cyBhbmQKKyMgb25seSBpZiBQeXRob24gYW5kIFNjaGVtYXMgYXJlIGVuYWJsZWQuCisjCithbGw6CisKKyMKKyMgUnVsZSB0byBsb2FkIHRoZSB0ZXN0IGRlc2NyaXB0aW9uIGFuZCBleHRyYWN0IHRoZSBpbmZvcm1hdGlvbnMKKyMKKyQoVEVTVERJUlMpIFRlc3RzL01ldGFkYXRhLyQoTklTVFRFU1RERUZfMikgVGVzdHMvTWV0YWRhdGEvJChNU1RURVNUREVGKSBUZXN0cy9NZXRhZGF0YS8kKFNVTlRFU1RERUYpOgorCS1AKGlmIFsgISAtZCBUZXN0cyBdIDsgdGhlbiBcCisJICAgbWtkaXIgVGVzdHMgOyBcCisJICAgZmkpCisJLUAoaWYgWyAhIC1mICQoVEFSQkFMTF8yKSBdIDsgdGhlbiBcCisJICAgaWYgWyAtZiAkKHNyY2RpcikvJChUQVJCQUxMXzIpIF0gOyB0aGVuIFwKKwkgICAkKExOX1MpICQoc3JjZGlyKS8kKFRBUkJBTExfMikgJChUQVJCQUxMXzIpIDsgZWxzZSBcCisJICAgZWNobyAiTWlzc2luZyB0aGUgdGVzdCBzdWl0ZSBkZXNjcmlwdGlvbiAoMjAwNC0wMS0xNCksIHRyeWluZyB0byBmZXRjaCBpdCIgO1wKKwkgICBpZiBbIC14ICIkKFdHRVQpIiBdIDsgdGhlbiBcCisJICAgJChXR0VUKSAkKFRBUkJBTExVUkxfMikgOyBcCisJICAgZWxzZSBlY2hvICJEb250JyBrbm93IGhvdyB0byBmZXRjaCAkKFRBUkJBTExVUkxfMikiIDsgZmkgOyBmaSA7IGZpKQorCS1AKGlmIFsgLWYgJChUQVJCQUxMXzIpIF0gOyB0aGVuIFwKKwkgICBlY2hvIC1uICJleHRyYWN0aW5nIHRlc3QgZGF0YSAoTklTVCkuLi4iIDsgXAorCSAgICQoVEFSKSAteHpmICQoVEFSQkFMTF8yKSAtLXdpbGRjYXJkcyAnKi9EYXRhdHlwZXMnICcqL01ldGFkYXRhLyQoTklTVFRFU1RERUZfMiknIDsgXAorCSAgIGVjaG8gImRvbmUiIDsgXAorCSAgIGZpKQorCS1AKGlmIFsgISAtZiAkKFRBUkJBTEwpIF0gOyB0aGVuIFwKKwkgICBpZiBbIC1mICQoc3JjZGlyKS8kKFRBUkJBTEwpIF0gOyB0aGVuIFwKKwkgICAkKExOX1MpICQoc3JjZGlyKS8kKFRBUkJBTEwpICQoVEFSQkFMTCkgOyBlbHNlIFwKKwkgICBlY2hvICJNaXNzaW5nIHRoZSB0ZXN0IHN1aXRlIGRlc2NyaXB0aW9uICgyMDAyLTAxLTE2KSwgdHJ5aW5nIHRvIGZldGNoIGl0IiA7XAorCSAgIGlmIFsgLXggIiQoV0dFVCkiIF0gOyB0aGVuIFwKKwkgICAkKFdHRVQpICQoVEFSQkFMTFVSTCkgOyBcCisJICAgZWxzZSBlY2hvICJEb250JyBrbm93IGhvdyB0byBmZXRjaCAkKFRBUkJBTExVUkwpIiA7IGZpIDsgZmkgOyBmaSkKKwktQChpZiBbIC1mICQoVEFSQkFMTCkgXSA7IHRoZW4gXAorCSAgIGVjaG8gLW4gImV4dHJhY3RpbmcgdGVzdCBkYXRhIChTdW4sIE1pY3Jvc29mdCkuLi4iIDsgXAorCSAgICQoVEFSKSAtQyBUZXN0cyAteHpmICQoVEFSQkFMTCkgLS13aWxkY2FyZHMgJyovc3VudGVzdCcgJyovbXN4c2R0ZXN0JyAnKi8kKE1TVEVTVERFRiknICcqLyQoU1VOVEVTVERFRiknIDsgXAorCSAgIGlmIFsgLWQgVGVzdHMvc3VudGVzdCBdIDsgdGhlbiBybSAtciBUZXN0cy9zdW50ZXN0IDsgZmkgOyBcCisJICAgaWYgWyAtZCBUZXN0cy9tc3hzZHRlc3QgXSA7IHRoZW4gcm0gLXIgVGVzdHMvbXN4c2R0ZXN0IDsgZmkgOyBcCisJICAgbXYgVGVzdHMveG1sc2NoZW1hMjAwMi0wMS0xNi8qIFRlc3RzIDsgXAorCSAgIG12IFRlc3RzLyoudGVzdFNldCBUZXN0cy9NZXRhZGF0YSA7IFwKKwkgICBybSAtciBUZXN0cy94bWxzY2hlbWEyMDAyLTAxLTE2IDsgXAorCSAgIGVjaG8gImRvbmUiIDsgXAorCSAgIGZpKQorCisjCisjIFRoZSBweXRob24gdGVzdHMgYXJlIGdlbmVyYXRlZCB2aWEgWFNMVAorIworbmlzdC10ZXN0LnB5OiBUZXN0cy9NZXRhZGF0YS8kKE5JU1RURVNUREVGXzIpIHhzdGMtdG8tcHl0aG9uLnhzbAorCS1AKGlmIFsgLXggJChYU0xUUFJPQykgXSA7IHRoZW4gXAorCSAgZWNobyAiUmVidWlsZGluZyBzY3JpcHQgKE5JU1QpIiAkQCA7IFwKKwkgICQoWFNMVFBST0MpIC0tbm9uZXQgLS1zdHJpbmdwYXJhbSB2ZW5kb3IgTklTVC0yIFwKKwkgICAgICAgICAgICAgICAgICAgICAkKHNyY2RpcikveHN0Yy10by1weXRob24ueHNsIFwKKwkgICAgICAgICAgICAgICAgICAgICAkKHNyY2RpcikvVGVzdHMvTWV0YWRhdGEvJChOSVNUVEVTVERFRl8yKSA+ICRAIDsgXAorCSAgY2htb2QgK3ggJEAgOyBmaSApCisKK21zLXRlc3QucHk6IFRlc3RzL01ldGFkYXRhLyQoTVNUVEVTVERFRikgeHN0Yy10by1weXRob24ueHNsCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICBlY2hvICJSZWJ1aWxkaW5nIHNjcmlwdCAoTWljcm9zb2Z0KSIgJEAgOyBcCisJICAkKFhTTFRQUk9DKSAtLW5vbmV0IC0tc3RyaW5ncGFyYW0gdmVuZG9yIE1TIFwKKwkgICAgICAgICAgICAgICAgICAgICAkKHNyY2RpcikveHN0Yy10by1weXRob24ueHNsIFwKKwkgICAgICAgICAgICAgICAgICAgICAkKHNyY2RpcikvVGVzdHMvTWV0YWRhdGEvJChNU1RFU1RERUYpID4gJEAgOyBcCisJICBjaG1vZCAreCAkQCA7IGZpICkKKworc3VuLXRlc3QucHk6IFRlc3RzL01ldGFkYXRhLyQoU1VOVEVTVERFRikgeHN0Yy10by1weXRob24ueHNsCisJLUAoaWYgWyAteCAkKFhTTFRQUk9DKSBdIDsgdGhlbiBcCisJICBlY2hvICJSZWJ1aWxkaW5nIHNjcmlwdCAoU3VuKSIgJEAgOyBcCisJICAkKFhTTFRQUk9DKSAtLW5vbmV0IC0tc3RyaW5ncGFyYW0gdmVuZG9yIFNVTiBcCisJICAgICAgICAgICAgICAgICAgICAgJChzcmNkaXIpL3hzdGMtdG8tcHl0aG9uLnhzbCBcCisJICAgICAgICAgICAgICAgICAgICAgJChzcmNkaXIpL1Rlc3RzL01ldGFkYXRhLyQoU1VOVEVTVERFRikgPiAkQCA7IFwKKwkgIGNobW9kICt4ICRAIDsgZmkgKQorCisjCisjIFRoZSBhY3R1YWwgdGVzdCBydW4gaWYgcHJlc2VudC4gUFlUSE9OUEFUSCBpcyB1cGRhdGVkIHRvIG1ha2Ugc3VyZQorIyB3ZSBydW4gdGhlIHZlcnNpb24gZnJvbSB0aGUgbG9hY2wgYnVpbGQgYW5kIG5vdCBwcmVpbnN0YWxsZWQgYmluZGluZ3MKKyMKK3B5dGVzdHM6ICQoUFlTQ1JJUFRTKSAkKFRFU1RESVJTKQorCS1AKGlmIFsgLXggbmlzdC10ZXN0LnB5IC1hIC1kICQoVEVTVERJUikvRGF0YXR5cGVzIF0gOyB0aGVuIAkJXAorCSAgIGVjaG8gIiMjIFJ1bm5pbmcgWE1MIFNjaGVtYSB0ZXN0cyAoTklTVCkiOwkJCVwKKwkgICBQWVRIT05QQVRIPSIuLi9weXRob246Li4vcHl0aG9uLy5saWJzOi4uOi4uLy5saWJzOiQkUFlUSE9OUEFUSCIgO1wKKwkgICBleHBvcnQgUFlUSE9OUEFUSDsJCQkJCQlcCisJICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvLmxpYnM6JCRMRF9MSUJSQVJZX1BBVEgiIDsJXAorCSAgIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEg7CQkJCQlcCisJICAgJChDSEVDS0VSKSAkKFBZVEhPTikgbmlzdC10ZXN0LnB5IC1zIC1iICQoc3JjZGlyKSA7IGZpKQorCS1AKGlmIFsgLXggc3VuLXRlc3QucHkgLWEgLWQgJChURVNURElSKS9zdW50ZXN0IF0gOyB0aGVuIAkJCVwKKwkgICBlY2hvICIjIyBSdW5uaW5nIFNjaGVtYSB0ZXN0cyAoU3VuKSI7CQkJCVwKKwkgICBQWVRIT05QQVRIPSIuLi9weXRob246Li4vcHl0aG9uLy5saWJzOi4uOi4uLy5saWJzOiQkUFlUSE9OUEFUSCIgO1wKKwkgICBleHBvcnQgUFlUSE9OUEFUSDsJCQkJCQlcCisJICAgTERfTElCUkFSWV9QQVRIPSIkKHRvcF9idWlsZGRpcikvLmxpYnM6JCRMRF9MSUJSQVJZX1BBVEgiIDsJXAorCSAgIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEg7CQkJCQlcCisJICAgJChDSEVDS0VSKSAkKFBZVEhPTikgc3VuLXRlc3QucHkgLXMgLWIgJChzcmNkaXIpIDsgZmkpCisJLUAoaWYgWyAteCBtcy10ZXN0LnB5IC1hIC1kICQoVEVTVERJUikvbXN4c2R0ZXN0IF0gOyB0aGVuIAkJCVwKKwkgICBlY2hvICIjIyBSdW5uaW5nIFNjaGVtYSB0ZXN0cyAoTWljcm9zb2Z0KSI7CQkJXAorCSAgIFBZVEhPTlBBVEg9Ii4uL3B5dGhvbjouLi9weXRob24vLmxpYnM6Li46Li4vLmxpYnM6JCRQWVRIT05QQVRIIiA7XAorCSAgIGV4cG9ydCBQWVRIT05QQVRIOwkJCQkJCVwKKwkgICBMRF9MSUJSQVJZX1BBVEg9IiQodG9wX2J1aWxkZGlyKS8ubGliczokJExEX0xJQlJBUllfUEFUSCIgOwlcCisJICAgZXhwb3J0IExEX0xJQlJBUllfUEFUSDsJCQkJCVwKKwkgICAkKENIRUNLRVIpICQoUFlUSE9OKSBtcy10ZXN0LnB5IC1zIC1iICQoc3JjZGlyKSA7IGZpKQorCit0ZXN0czoKKwktQChpZiBbIC14ICQoUFlUSE9OKSBdIDsgdGhlbiAJCQkJCVwKKwkgICAkKE1BS0UpIE1BS0VGTEFHUys9LS1zaWxlbnQgcHl0ZXN0cyA7IGZpKTsKKworIworIyBIZWF2eSwgd29ya3Mgd2VsbCBvbmx5IG9uIFJIRUwzCisjCit2YWxncmluZDoKKwktQChpZiBbIC14ICQoUFlUSE9OKSBdIDsgdGhlbiAJCQkJCVwKKwkgICBlY2hvICcjIyBSdW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kJyA7CVwKKwkgICAkKE1BS0UpIENIRUNLRVI9J3ZhbGdyaW5kIC1xJyBNQUtFRkxBR1MrPS0tc2lsZW50IHB5dGVzdHMgOyBmaSk7CisKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcveHN0Yy94c3RjLXRvLXB5dGhvbi54c2wgYi9saWJ4bWwyLTIuNy43L3hzdGMveHN0Yy10by1weXRob24ueHNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc4ZDU1Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLTIuNy43L3hzdGMveHN0Yy10by1weXRob24ueHNsCkBAIC0wLDAgKzEsMTE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4NCis8eHNsOnN0eWxlc2hlZXQgDQorCXhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIg0KKwl4bWxuczp0cz0iVGVzdFN1aXRlIiB2ZXJzaW9uPSIxLjAiDQorCXhtbG5zOnhsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCisJPHhzbDpwYXJhbSBuYW1lPSJ2ZW5kb3IiIHNlbGVjdD0iJ05JU1QnIi8+DQorICAgIDx4c2w6b3V0cHV0IG1ldGhvZD0idGV4dCIvPiAgIA0KKw0KKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4NCisgICAgICAgIDx4c2w6dGV4dD4jIS91c3IvYmluL3B5dGhvbiAtdQ0KKyMgLSotIGNvZGluZzogVVRGLTggLSotDQorIw0KKyMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBXM0MgdGVzdCBzdWl0ZSBkZXNjcmlwdGlvbiBmaWxlLg0KKyMNCisNCitpbXBvcnQgeHN0Yw0KK2Zyb20geHN0YyBpbXBvcnQgWFNUQ1Rlc3RSdW5uZXIsIFhTVENUZXN0R3JvdXAsIFhTVENTY2hlbWFUZXN0LCBYU1RDSW5zdGFuY2VUZXN0DQorDQoreHN0Yy52ZW5kb3IgPSAiPC94c2w6dGV4dD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHZlbmRvciIvPjx4c2w6dGV4dD4iDQorDQorciA9IFhTVENUZXN0UnVubmVyKCkNCisNCisjIEdyb3VwIGRlZmluaXRpb25zLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKzwveHNsOnRleHQ+DQorCQkgICAgICANCisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0idHM6dGVzdFNldC90czp0ZXN0R3JvdXAiIG1vZGU9Imdyb3VwLWRlZiIvPg0KKzx4c2w6dGV4dD4NCisNCisjIFRlc3QgZGVmaW5pdGlvbnMuDQorDQorPC94c2w6dGV4dD4NCisJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0idHM6dGVzdFNldC90czp0ZXN0R3JvdXAiIG1vZGU9InRlc3QtZGVmIi8+DQorICAgICAgICA8eHNsOnRleHQ+DQorICAgICAgICAgICANCityLnJ1bigpICAgIA0KKw0KKzwveHNsOnRleHQ+DQorICAgICAgICAgICAgDQorICAgIDwveHNsOnRlbXBsYXRlPiAgICAgICANCisNCisJPCEtLSBncm91cE5hbWUsIGRlc2NyIC0tPg0KKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0czp0ZXN0R3JvdXAiIG1vZGU9Imdyb3VwLWRlZiI+DQorCQk8eHNsOnRleHQ+ci5hZGRHcm91cChYU1RDVGVzdEdyb3VwKCI8L3hzbDp0ZXh0Pg0KKwkJPCEtLSBncm91cCAtLT4NCisJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjx4c2w6dGV4dD4iLCAiPC94c2w6dGV4dD4NCisJCTwhLS0gbWFpbiBzY2hlbWEgLS0+DQorCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0idHM6c2NoZW1hVGVzdFsxXS90czpzY2hlbWFEb2N1bWVudC9AeGw6aHJlZiIvPjx4c2w6dGV4dD4iLCAiIiI8L3hzbDp0ZXh0Pg0KKwkJPCEtLSBncm91cC1kZXNjcmlwdGlvbiAtLT4NCisJCTx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzdHIiPg0KKwkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJzdHIiIHNlbGVjdD0idHM6YW5ub3RhdGlvbi90czpkb2N1bWVudGF0aW9uL3RleHQoKSIvPg0KKwkJPC94c2w6Y2FsbC10ZW1wbGF0ZT4NCisJCTx4c2w6dGV4dD4iIiIpKQ0KKzwveHNsOnRleHQ+DQorCTwveHNsOnRlbXBsYXRlPg0KKwkNCisJPHhzbDp0ZW1wbGF0ZSBuYW1lPSJzdHIiPg0KKwkJPHhzbDpwYXJhbSBuYW1lPSJzdHIiLz4NCisJCTx4c2w6Y2hvb3NlPg0KKwkJCTx4c2w6d2hlbiB0ZXN0PSJjb250YWlucygkc3RyLCAnJnF1b3Q7JykiPg0KKwkJCQk8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3RyIj4NCisJCQkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJzdHIiIHNlbGVjdD0ic3Vic3RyaW5nLWJlZm9yZSgkc3RyLCAnJnF1b3Q7JykiLz4NCisJCQkJPC94c2w6Y2FsbC10ZW1wbGF0ZT4NCisJCQkJPHhzbDp0ZXh0Pic8L3hzbDp0ZXh0Pg0KKwkJCQk8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3RyIj4NCisJCQkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJzdHIiIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKCRzdHIsICcmcXVvdDsnKSIvPg0KKwkJCQk8L3hzbDpjYWxsLXRlbXBsYXRlPg0KKwkJCQ0KKwkJCTwveHNsOndoZW4+DQorCQkJPHhzbDpvdGhlcndpc2U+DQorCQkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkc3RyIi8+DQorCQkJPC94c2w6b3RoZXJ3aXNlPg0KKwkJPC94c2w6Y2hvb3NlPg0KKwk8L3hzbDp0ZW1wbGF0ZT4NCisNCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idHM6dGVzdEdyb3VwIiBtb2RlPSJ0ZXN0LWRlZiI+CSAgICANCisJCTx4c2w6cGFyYW0gbmFtZT0iZ3JvdXAiIHNlbGVjdD0iQG5hbWUiLz4NCisJCTx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJ0czpzY2hlbWFUZXN0Ij4NCisJCQk8IS0tIGdyb3VwTmFtZSwgaXNTY2hlbWEsIE5hbWUsIEFjY2VwdGVkLCBGaWxlLCBWYWwsIERlc2NyIC0tPg0KKwkJCTx4c2w6dGV4dD5yLmFkZFRlc3QoWFNUQ1NjaGVtYVRlc3QoIjwveHNsOnRleHQ+DQorCQkJPCEtLSBncm91cCAtLT4NCisJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGdyb3VwIi8+PHhzbDp0ZXh0PiIsICI8L3hzbDp0ZXh0Pg0KKwkJCTwhLS0gdGVzdC1uYW1lIC0tPg0KKwkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjx4c2w6dGV4dD4iLCA8L3hzbDp0ZXh0Pg0KKwkJCTwhLS0gYWNjZXB0ZWQgLS0+DQorCQkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im51bWJlcih0czpjdXJyZW50L0BzdGF0dXMgPSAnYWNjZXB0ZWQnKSIvPjx4c2w6dGV4dD4sICI8L3hzbDp0ZXh0Pg0KKwkJCTwhLS0gZmlsZW5hbWUgLS0+CQkJDQorCQkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InRzOnNjaGVtYURvY3VtZW50L0B4bDpocmVmIi8+PHhzbDp0ZXh0PiIsIDwveHNsOnRleHQ+DQorCQkJPCEtLSB2YWxpZGl0eSAtLT4NCisJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibnVtYmVyKHRzOmV4cGVjdGVkL0B2YWxpZGl0eSA9ICd2YWxpZCcpIi8+PHhzbDp0ZXh0PiwgIjwveHNsOnRleHQ+DQorCQkJPCEtLSB0ZXN0LWRlc2NyaXB0aW9uIC0tPg0KKwkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0czphbm5vdGF0aW9uL3RzOmRvY3VtZW50YXRpb24vdGV4dCgpIi8+PHhzbDp0ZXh0PiIpKQ0KKzwveHNsOnRleHQ+DQorCQk8L3hzbDpmb3ItZWFjaD4NCisJCTx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJ0czppbnN0YW5jZVRlc3QiPg0KKwkJCTwhLS0gZ3JvdXBOYW1lLCBpc1NjaGVtYSwgTmFtZSwgQWNjZXB0ZWQsIEZpbGUsIFZhbCwgRGVzY3IgLS0+DQorCQkJPHhzbDp0ZXh0PnIuYWRkVGVzdChYU1RDSW5zdGFuY2VUZXN0KCI8L3hzbDp0ZXh0Pg0KKwkJCTwhLS0gZ3JvdXAgLS0+DQorCQkJPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRncm91cCIvPjx4c2w6dGV4dD4iLCAiPC94c2w6dGV4dD4NCisJCQk8IS0tIHRlc3QtbmFtZSAtLT4NCisJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48eHNsOnRleHQ+IiwgPC94c2w6dGV4dD4NCisJCQk8IS0tIGFjY2VwdGVkIC0tPg0KKwkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJudW1iZXIodHM6Y3VycmVudC9Ac3RhdHVzID0gJ2FjY2VwdGVkJykiLz48eHNsOnRleHQ+LCAiPC94c2w6dGV4dD4NCisJCQk8IS0tIGZpbGVuYW1lIC0tPgkJCQ0KKwkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0czppbnN0YW5jZURvY3VtZW50L0B4bDpocmVmIi8+PHhzbDp0ZXh0PiIsIDwveHNsOnRleHQ+DQorCQkJPCEtLSB2YWxpZGl0eSAtLT4NCisJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibnVtYmVyKHRzOmV4cGVjdGVkL0B2YWxpZGl0eSA9ICd2YWxpZCcpIi8+PHhzbDp0ZXh0PiwgIjwveHNsOnRleHQ+DQorCQkJPCEtLSB0ZXN0LWRlc2NyaXB0aW9uIC0tPg0KKwkJCTx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0czphbm5vdGF0aW9uL3RzOmRvY3VtZW50YXRpb24vdGV4dCgpIi8+PHhzbDp0ZXh0PiIpKQ0KKzwveHNsOnRleHQ+DQorCQk8L3hzbDpmb3ItZWFjaD4NCisJPC94c2w6dGVtcGxhdGU+ICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICANCis8L3hzbDpzdHlsZXNoZWV0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2xpYnhtbDItMi43LjcveHN0Yy94c3RjLnB5IGIvbGlieG1sMi0yLjcuNy94c3RjL3hzdGMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2EwMTFiYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDItMi43LjcveHN0Yy94c3RjLnB5CkBAIC0wLDAgKzEsNjkzIEBACisjIS91c3IvYmluL2VudiBweXRob24KKworIworIyBUaGlzIGlzIHRoZSBNUyBzdWJzZXQgb2YgdGhlIFczQyB0ZXN0IHN1aXRlIGZvciBYTUwgU2NoZW1hcy4KKyMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBNUyBXM2MgdGVzdCBzdWl0ZSBkZXNjcmlwdGlvbiBmaWxlLgorIworCitpbXBvcnQgc3lzLCBvcworaW1wb3J0IGV4Y2VwdGlvbnMsIG9wdHBhcnNlCitpbXBvcnQgbGlieG1sMgorCitvcGEgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQorCitvcGEuYWRkX29wdGlvbigiLWIiLCAiLS1iYXNlIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImJhc2VEaXIiLAorCQkJICAgZGVmYXVsdD0iIiwKKwkJCSAgIGhlbHA9IiIiVGhlIGJhc2UgZGlyZWN0b3J5OyBpLmUuIHRoZSBwYXJlbnQgZm9sZGVyIG9mIHRoZQorCQkJICAgIm5pc3R0ZXN0IiwgInN1bnRlc3QiIGFuZCAibXN4c2R0ZXN0IiBkaXJlY3Rvcmllcy4iIiIpCisKK29wYS5hZGRfb3B0aW9uKCItbyIsICItLW91dCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJsb2dGaWxlIiwKKwkJCSAgIGRlZmF1bHQ9InRlc3QubG9nIiwKKwkJCSAgIGhlbHA9IlRoZSBmaWxlcGF0aCBvZiB0aGUgbG9nIGZpbGUgdG8gYmUgY3JlYXRlZCIpCisKK29wYS5hZGRfb3B0aW9uKCItLWxvZyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImVuYWJsZUxvZyIsCisJCQkgICBkZWZhdWx0PUZhbHNlLAorCQkJICAgaGVscD0iQ3JlYXRlIHRoZSBsb2cgZmlsZSIpCisKK29wYS5hZGRfb3B0aW9uKCItLW5vLXRlc3Qtb3V0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iZGlzYWJsZVRlc3RTdGRPdXQiLAorCQkJICAgZGVmYXVsdD1GYWxzZSwKKwkJCSAgIGhlbHA9IkRvbid0IG91dHB1dCB0ZXN0IHJlc3VsdHMiKQorCitvcGEuYWRkX29wdGlvbigiLXMiLCAiLS1zaWxlbnQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJzaWxlbnQiLCBkZWZhdWx0PUZhbHNlLAorCQkJICAgaGVscD0iRGlzYWJsZXMgZGlzcGxheSBvZiBhbGwgdGVzdHMiKQorCitvcGEuYWRkX29wdGlvbigiLXYiLCAiLS12ZXJib3NlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0idmVyYm9zZSIsCisJCQkgICBkZWZhdWx0PUZhbHNlLAorCQkJICAgaGVscD0iRGlzcGxheXMgYWxsIHRlc3RzIChvbmx5IGlmIC0tc2lsZW50IGlzIG5vdCBzZXQpIikKKworb3BhLmFkZF9vcHRpb24oIi14IiwgIi0tbWF4IiwgdHlwZT0iaW50IiwgZGVzdD0ibWF4VGVzdENvdW50IiwKKwkJCSAgIGRlZmF1bHQ9Ii0xIiwKKwkJCSAgIGhlbHA9IlRoZSBtYXhpbXVtIG51bWJlciBvZiB0ZXN0cyB0byBiZSBydW4iKQorCitvcGEuYWRkX29wdGlvbigiLXQiLCAiLS10ZXN0IiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0ic2luZ2xlVGVzdCIsCisJCQkgICBkZWZhdWx0PU5vbmUsCisJCQkgICBoZWxwPSJSdW5zIHRoZSBzcGVjaWZpZWQgdGVzdCBvbmx5IikKKwkJCSAgIAorb3BhLmFkZF9vcHRpb24oIi0tdHN3IiwgIi0tdGVzdC1zdGFydHMtd2l0aCIsIHR5cGU9InN0cmluZyIsIGRlc3Q9InRlc3RTdGFydHNXaXRoIiwKKwkJCSAgIGRlZmF1bHQ9Tm9uZSwKKwkJCSAgIGhlbHA9IlJ1bnMgdGhlIHNwZWNpZmllZCB0ZXN0KHMpLCBzdGFydGluZyB3aXRoIHRoZSBnaXZlbiBzdHJpbmciKQorCitvcGEuYWRkX29wdGlvbigiLS1yaWVvIiwgIi0tcmVwb3J0LWludGVybmFsLWVycm9ycy1vbmx5IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKwkJCSAgIGRlc3Q9InJlcG9ydEludGVybmFsRXJyT25seSIsIGRlZmF1bHQ9RmFsc2UsCisJCQkgICBoZWxwPSJEaXNwbGF5IGVycm9uZW91cyB0ZXN0cyBvZiB0eXBlICdpbnRlcm5hbCcgb25seSIpCisKK29wYS5hZGRfb3B0aW9uKCItLXJ1ZW8iLCAiLS1yZXBvcnQtdW5pbXBsZW1lbnRlZC1lcnJvcnMtb25seSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisJCQkgICBkZXN0PSJyZXBvcnRVbmltcGxFcnJPbmx5IiwgZGVmYXVsdD1GYWxzZSwKKwkJCSAgIGhlbHA9IkRpc3BsYXkgZXJyb25lb3VzIHRlc3RzIG9mIHR5cGUgJ3VuaW1wbGVtZW50ZWQnIG9ubHkiKQorCitvcGEuYWRkX29wdGlvbigiLS1ybWxlbyIsICItLXJlcG9ydC1tZW0tbGVhay1lcnJvcnMtb25seSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisJCQkgICBkZXN0PSJyZXBvcnRNZW1MZWFrRXJyT25seSIsIGRlZmF1bHQ9RmFsc2UsCisJCQkgICBoZWxwPSJEaXNwbGF5IGVycm9uZW91cyB0ZXN0cyBvZiB0eXBlICdtZW1vcnkgbGVhaycgb25seSIpCisKK29wYS5hZGRfb3B0aW9uKCItYyIsICItLWNvbWJpbmVzIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iY29tYmluZXMiLAorCQkJICAgZGVmYXVsdD1Ob25lLAorCQkJICAgaGVscD0iQ29tYmluZXMgdG8gYmUgcnVuIChhbGwgaWYgb21pdHRlZCkiKQorCQkJICAgCitvcGEuYWRkX29wdGlvbigiLS1jc3ciLCAiLS1jc3ciLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJjb21iaW5lU3RhcnRzV2l0aCIsCisJCQkgICBkZWZhdWx0PU5vbmUsCisJCQkgICBoZWxwPSJDb21iaW5lcyB0byBiZSBydW4gKGFsbCBpZiBvbWl0dGVkKSIpCQkJICAgCisKK29wYS5hZGRfb3B0aW9uKCItLXJjIiwgIi0tcmVwb3J0LWNvbWJpbmVzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKwkJCSAgIGRlc3Q9InJlcG9ydENvbWJpbmVzIiwgZGVmYXVsdD1GYWxzZSwKKwkJCSAgIGhlbHA9IkRpc3BsYXkgY29tYmluZSByZXBvcnRzIikKKworb3BhLmFkZF9vcHRpb24oIi0tcmVjIiwgIi0tcmVwb3J0LWVyci1jb21iaW5lcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisJCQkgICBkZXN0PSJyZXBvcnRFcnJDb21iaW5lcyIsIGRlZmF1bHQ9RmFsc2UsCisJCQkgICBoZWxwPSJEaXNwbGF5IGVycm9uZW91cyBjb21iaW5lIHJlcG9ydHMgb25seSIpCisKK29wYS5hZGRfb3B0aW9uKCItLWRlYnVnIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKwkJCSAgIGRlc3Q9ImRlYnVnRW5hYmxlZCIsIGRlZmF1bHQ9RmFsc2UsCisJCQkgICBoZWxwPSJEaXNwbGF5cyBkZWJ1ZyBtZXNzYWdlcyIpCisKK29wYS5hZGRfb3B0aW9uKCItLWluZm8iLCBhY3Rpb249InN0b3JlX3RydWUiLAorCQkJICAgZGVzdD0iaW5mbyIsIGRlZmF1bHQ9RmFsc2UsCisJCQkgICBoZWxwPSJEaXNwbGF5cyBpbmZvIG9uIHRoZSBzdWl0ZSBvbmx5LiBEb2VzIG5vdCBydW4gYW55IHRlc3QuIikKK29wYS5hZGRfb3B0aW9uKCItLXNheCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisJCQkgICBkZXN0PSJ2YWxpZGF0aW9uU0FYIiwgZGVmYXVsdD1GYWxzZSwKKwkJCSAgIGhlbHA9IlVzZSBTQVgyLWRyaXZlbiB2YWxpZGF0aW9uLiIpCitvcGEuYWRkX29wdGlvbigiLS10biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisJCQkgICBkZXN0PSJkaXNwbGF5VGVzdE5hbWUiLCBkZWZhdWx0PUZhbHNlLAorCQkJICAgaGVscD0iRGlzcGxheSB0aGUgdGVzdCBuYW1lIGluIGV2ZXJ5IGNhc2UuIikKKworKG9wdGlvbnMsIGFyZ3MpID0gb3BhLnBhcnNlX2FyZ3MoKQorCitpZiBvcHRpb25zLmNvbWJpbmVzIGlzIG5vdCBOb25lOgorCW9wdGlvbnMuY29tYmluZXMgPSBvcHRpb25zLmNvbWJpbmVzLnNwbGl0KCkKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRoZSB2YXJzIGJlbG93IGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgY2hhbmdlZC4KKyMKKworbXNnU2NoZW1hTm90VmFsaWRCdXRTaG91bGQgPSAgIlRoZSBzY2hlbWEgc2hvdWxkIGJlIHZhbGlkLiIKK21zZ1NjaGVtYVZhbGlkQnV0U2hvdWxkTm90ID0gIlRoZSBzY2hlbWEgc2hvdWxkIGJlIGludmFsaWQuIgorbXNnSW5zdGFuY2VOb3RWYWxpZEJ1dFNob3VsZCA9ICJUaGUgaW5zdGFuY2Ugc2hvdWxkIGJlIHZhbGlkLiIKK21zZ0luc3RhbmNlVmFsaWRCdXRTaG91bGROb3QgPSAiVGhlIGluc3RhbmNlIHNob3VsZCBiZSBpbnZhbGlkLiIKK3ZlbmRvck5JU1QgPSAiTklTVCIKK3ZlbmRvck5JU1RfMiA9ICJOSVNULTIiCit2ZW5kb3JTVU4gID0gIlNVTiIKK3ZlbmRvck1TICAgPSAiTVMiCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSGVscGVyIGZ1bmN0aW9ucy4KKyMKK3ZlbmRvciA9IE5vbmUKKworZGVmIGhhbmRsZUVycm9yKHRlc3QsIG1zZyk6CisJZ2xvYmFsIG9wdGlvbnMKKwlpZiBub3Qgb3B0aW9ucy5zaWxlbnQ6CisJCXRlc3QuYWRkTGliTG9nKCInJXMnICAgTElCOiAlcyIgJSAodGVzdC5uYW1lLCBtc2cpKQorCWlmIG1zZy5maW5kKCJVbmltcGxlbWVudGVkIikgPiAtMToKKwkJdGVzdC5mYWlsVW5pbXBsZW1lbnRlZCgpCisJZWxpZiBtc2cuZmluZCgiSW50ZXJuYWwiKSA+IC0xOgorCQl0ZXN0LmZhaWxJbnRlcm5hbCgpCisJCQorCQorZGVmIGZpeEZpbGVOYW1lcyhmaWxlTmFtZSk6CisJaWYgKGZpbGVOYW1lIGlzIE5vbmUpIG9yIChmaWxlTmFtZSA9PSAiIik6CisJCXJldHVybiAiIgorCWRpcnMgPSBmaWxlTmFtZS5zcGxpdCgiLyIpCisJaWYgZGlyc1sxXSAhPSAiVGVzdHMiOgorCQlmaWxlTmFtZSA9IG9zLnBhdGguam9pbigiLiIsICJUZXN0cyIpCisJCWZvciBkaXIgaW4gZGlyc1sxOl06CisJCQlmaWxlTmFtZSA9IG9zLnBhdGguam9pbihmaWxlTmFtZSwgZGlyKQkKKwlyZXR1cm4gZmlsZU5hbWUKKworY2xhc3MgWFNUQ1Rlc3RHcm91cDoKKwlkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc2NoZW1hRmlsZU5hbWUsIGRlc2NyKToKKwkJZ2xvYmFsIHZlbmRvciwgdmVuZG9yTklTVF8yCisJCXNlbGYubmFtZSA9IG5hbWUKKwkJc2VsZi5kZXNjciA9IGRlc2NyCisJCXNlbGYubWFpblNjaGVtYSA9IFRydWUKKwkJc2VsZi5zY2hlbWFGaWxlTmFtZSA9IGZpeEZpbGVOYW1lcyhzY2hlbWFGaWxlTmFtZSkKKwkJc2VsZi5zY2hlbWFQYXJzZWQgPSBGYWxzZQorCQlzZWxmLnNjaGVtYVRyaWVkID0gRmFsc2UKKworCWRlZiBzZXRTY2hlbWEoc2VsZiwgc2NoZW1hRmlsZU5hbWUsIHBhcnNlZCk6CisJCWlmIG5vdCBzZWxmLm1haW5TY2hlbWE6CQkJCisJCQlyZXR1cm4KKwkJc2VsZi5tYWluU2NoZW1hID0gRmFsc2UKKwkJc2VsZi5zY2hlbWFQYXJzZWQgPSBwYXJzZWQKKwkJc2VsZi5zY2hlbWFUcmllZCA9IFRydWUKKworY2xhc3MgWFNUQ1Rlc3RDYXNlOgorCisJCSAgICMgPCEtLSBncm91cE5hbWUsIE5hbWUsIEFjY2VwdGVkLCBGaWxlLCBWYWwsIERlc2NyCisJZGVmIF9faW5pdF9fKHNlbGYsIGlzU2NoZW1hLCBncm91cE5hbWUsIG5hbWUsIGFjY2VwdGVkLCBmaWxlLCB2YWwsIGRlc2NyKToKKwkJZ2xvYmFsIG9wdGlvbnMKKwkJIworCQkjIENvbnN0cnVjdG9yLgorCQkjCisJCXNlbGYudGVzdFJ1bm5lciA9IE5vbmUKKwkJc2VsZi5pc1NjaGVtYSA9IGlzU2NoZW1hCisJCXNlbGYuZ3JvdXBOYW1lID0gZ3JvdXBOYW1lCisJCXNlbGYubmFtZSA9IG5hbWUKKwkJc2VsZi5hY2NlcHRlZCA9IGFjY2VwdGVkCQkKKwkJc2VsZi5maWxlTmFtZSA9IGZpeEZpbGVOYW1lcyhmaWxlKQorCQlzZWxmLnZhbCA9IHZhbAorCQlzZWxmLmRlc2NyID0gZGVzY3IKKwkJc2VsZi5mYWlsZWQgPSBGYWxzZQorCQlzZWxmLmNvbWJpbmVOYW1lID0gTm9uZQorCisJCXNlbGYubG9nID0gW10KKwkJc2VsZi5saWJMb2cgPSBbXQorCQlzZWxmLmluaXRpYWxNZW1Vc2VkID0gMAorCQlzZWxmLm1lbUxlYWsgPSAwCisJCXNlbGYuZXhjZXB0ZWQgPSBGYWxzZQorCQlzZWxmLmJhZCA9IEZhbHNlCisJCXNlbGYudW5pbXBsZW1lbnRlZCA9IEZhbHNlCisJCXNlbGYuaW50ZXJuYWxFcnIgPSBGYWxzZQorCQlzZWxmLm5vU2NoZW1hRXJyID0gRmFsc2UKKwkJc2VsZi5mYWlsZWQgPSBGYWxzZQorCQkjCisJCSMgSW5pdCB0aGUgbG9nLgorCQkjCisJCWlmIG5vdCBvcHRpb25zLnNpbGVudDoKKwkJCWlmIHNlbGYuZGVzY3IgaXMgbm90IE5vbmU6CisJCQkJc2VsZi5sb2cuYXBwZW5kKCInJXMnICAgZGVzY3I6ICVzXG4iICUgKHNlbGYubmFtZSwgc2VsZi5kZXNjcikpCQkKKwkJCXNlbGYubG9nLmFwcGVuZCgiJyVzJyAgIGV4cCB2YWxpZGl0eTogJWRcbiIgJSAoc2VsZi5uYW1lLCBzZWxmLnZhbCkpCisKKwlkZWYgaW5pdFRlc3Qoc2VsZiwgcnVubmVyKToKKwkJZ2xvYmFsIHZlbmRvck5JU1QsIHZlbmRvclNVTiwgdmVuZG9yTVMsIHZlbmRvck5JU1RfMiwgb3B0aW9ucywgdmVuZG9yCisJCSMKKwkJIyBHZXQgdGhlIHRlc3QtZ3JvdXAuCisJCSMKKwkJc2VsZi5ydW5uZXIgPSBydW5uZXIKKwkJc2VsZi5ncm91cCA9IHJ1bm5lci5nZXRHcm91cChzZWxmLmdyb3VwTmFtZSkJCQkJCisJCWlmIHZlbmRvciA9PSB2ZW5kb3JNUyBvciB2ZW5kb3IgPT0gdmVuZG9yU1VOOgorCQkJIworCQkJIyBVc2UgdGhlIGxhc3QgZ2l2ZW4gZGlyZWN0b3J5IGZvciB0aGUgY29tYmluZSBuYW1lLgorCQkJIworCQkJZGlycyA9IHNlbGYuZmlsZU5hbWUuc3BsaXQoIi8iKQorCQkJc2VsZi5jb21iaW5lTmFtZSA9IGRpcnNbbGVuKGRpcnMpIC0yXQkJCQkJCisJCWVsaWYgdmVuZG9yID09IHZlbmRvck5JU1Q6CisJCQkjCisJCQkjIE5JU1QgZmlsZXMgYXJlIG5hbWVkIGluIHRoZSBmb2xsb3dpbmcgZm9ybToKKwkJCSMgIk5JU1RTY2hlbWEtc2hvcnQtcGF0dGVybi0xLnhzZCIKKwkJCSMJCQkJCQkKKwkJCXRva2VucyA9IHNlbGYubmFtZS5zcGxpdCgiLSIpCisJCQlzZWxmLmNvbWJpbmVOYW1lID0gdG9rZW5zWzFdCisJCWVsaWYgdmVuZG9yID09IHZlbmRvck5JU1RfMjoKKwkJCSMKKwkJCSMgR3JvdXAtbmFtZXMgaGF2ZSB0aGUgZm9ybTogImF0b21pYy1ub3JtYWxpemVkU3RyaW5nLWxlbmd0aC0xIgorCQkJIworCQkJdG9rZW5zID0gc2VsZi5ncm91cE5hbWUuc3BsaXQoIi0iKQorCQkJc2VsZi5jb21iaW5lTmFtZSA9ICIlcy0lcyIgJSAodG9rZW5zWzBdLCB0b2tlbnNbMV0pCisJCWVsc2U6CisJCQlzZWxmLmNvbWJpbmVOYW1lID0gInVua293biIKKwkJCXJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbXB1dGUgdGhlIGNvbWJpbmUgbmFtZSBvZiBhIHRlc3QuIikKKwkJaWYgKG5vdCBvcHRpb25zLnNpbGVudCkgYW5kIChzZWxmLmdyb3VwLmRlc2NyIGlzIG5vdCBOb25lKToKKwkJCXNlbGYubG9nLmFwcGVuZCgiJyVzJyAgIGdyb3VwLWRlc2NyOiAlc1xuIiAlIChzZWxmLm5hbWUsIHNlbGYuZ3JvdXAuZGVzY3IpKQorCQkKKworCWRlZiBhZGRMaWJMb2coc2VsZiwgbXNnKToJCQorCQkiIiJUaGlzIG9uZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IHRoZSBlcnJvciBoYW5kbGVyCisJCWZ1bmN0aW9uIiIiCisJCWdsb2JhbCBvcHRpb25zCQkKKwkJaWYgbm90IG9wdGlvbnMuc2lsZW50OgorCQkJc2VsZi5saWJMb2cuYXBwZW5kKG1zZykKKworCWRlZiBmYWlsKHNlbGYsIG1zZyk6CisJCWdsb2JhbCBvcHRpb25zCisJCXNlbGYuZmFpbGVkID0gVHJ1ZQorCQlpZiBub3Qgb3B0aW9ucy5zaWxlbnQ6CisJCQlzZWxmLmxvZy5hcHBlbmQoIiclcycgKCBGQUlMRUQ6ICVzXG4iICUgKHNlbGYubmFtZSwgbXNnKSkKKworCWRlZiBmYWlsTm9TY2hlbWEoc2VsZik6CisJCWdsb2JhbCBvcHRpb25zCisJCXNlbGYuZmFpbGVkID0gVHJ1ZQorCQlzZWxmLm5vU2NoZW1hRXJyID0gVHJ1ZQorCQlpZiBub3Qgb3B0aW9ucy5zaWxlbnQ6CisJCQlzZWxmLmxvZy5hcHBlbmQoIiclcycgWCBOTy1TQ0hFTUFcbiIgJSAoc2VsZi5uYW1lKSkKKworCWRlZiBmYWlsSW50ZXJuYWwoc2VsZik6CisJCWdsb2JhbCBvcHRpb25zCisJCXNlbGYuZmFpbGVkID0gVHJ1ZQorCQlzZWxmLmludGVybmFsRXJyID0gVHJ1ZQorCQlpZiBub3Qgb3B0aW9ucy5zaWxlbnQ6CisJCQlzZWxmLmxvZy5hcHBlbmQoIiclcycgKiBJTlRFUk5BTFxuIiAlIHNlbGYubmFtZSkKKworCWRlZiBmYWlsVW5pbXBsZW1lbnRlZChzZWxmKToKKwkJZ2xvYmFsIG9wdGlvbnMKKwkJc2VsZi5mYWlsZWQgPSBUcnVlCisJCXNlbGYudW5pbXBsZW1lbnRlZCA9IFRydWUKKwkJaWYgbm90IG9wdGlvbnMuc2lsZW50OgorCQkJc2VsZi5sb2cuYXBwZW5kKCInJXMnID8gVU5JTVBMRU1FTlRFRFxuIiAlIHNlbGYubmFtZSkKKworCWRlZiBmYWlsQ3JpdGljYWwoc2VsZiwgbXNnKToKKwkJZ2xvYmFsIG9wdGlvbnMKKwkJc2VsZi5mYWlsZWQgPSBUcnVlCisJCXNlbGYuYmFkID0gVHJ1ZQorCQlpZiBub3Qgb3B0aW9ucy5zaWxlbnQ6CisJCQlzZWxmLmxvZy5hcHBlbmQoIiclcycgISBCQUQ6ICVzXG4iICUgKHNlbGYubmFtZSwgbXNnKSkKKworCWRlZiBmYWlsRXhjZXB0KHNlbGYsIGUpOgorCQlnbG9iYWwgb3B0aW9ucworCQlzZWxmLmZhaWxlZCA9IFRydWUKKwkJc2VsZi5leGNlcHRlZCA9IFRydWUKKwkJaWYgbm90IG9wdGlvbnMuc2lsZW50OgorCQkJc2VsZi5sb2cuYXBwZW5kKCInJXMnICMgRVhDRVBUSU9OOiAlc1xuIiAlIChzZWxmLm5hbWUsIGUuX19zdHJfXygpKSkKKworCWRlZiBzZXRVcChzZWxmKToKKwkJIworCQkjIFNldCB1cCBMaWJ4bWwyLgorCQkjCisJCXNlbGYuaW5pdGlhbE1lbVVzZWQgPSBsaWJ4bWwyLmRlYnVnTWVtb3J5KDEpCisJCWxpYnhtbDIuaW5pdFBhcnNlcigpCisJCWxpYnhtbDIubGluZU51bWJlcnNEZWZhdWx0KDEpCisJCWxpYnhtbDIucmVnaXN0ZXJFcnJvckhhbmRsZXIoaGFuZGxlRXJyb3IsIHNlbGYpCisKKwlkZWYgdGVhckRvd24oc2VsZik6CisJCWxpYnhtbDIuc2NoZW1hQ2xlYW51cFR5cGVzKCkKKwkJbGlieG1sMi5jbGVhbnVwUGFyc2VyKCkKKwkJc2VsZi5tZW1MZWFrID0gbGlieG1sMi5kZWJ1Z01lbW9yeSgxKSAtIHNlbGYuaW5pdGlhbE1lbVVzZWQKKworCWRlZiBpc0lPRXJyb3Ioc2VsZiwgZmlsZSwgZG9jVHlwZSk6CisJCWVyciA9IE5vbmUKKwkJdHJ5OgorCQkJZXJyID0gbGlieG1sMi5sYXN0RXJyb3IoKQorCQlleGNlcHQ6CisJCQkjIFN1cHByZXNzIGV4Y2VwdGlvbnMuCisJCQlwYXNzCisJCWlmIChlcnIgaXMgTm9uZSk6CisJCQlyZXR1cm4gRmFsc2UKKwkJaWYgZXJyLmRvbWFpbigpID09IGxpYnhtbDIuWE1MX0ZST01fSU86CisJCQlzZWxmLmZhaWxDcml0aWNhbCgiZmFpbGVkIHRvIGFjY2VzcyB0aGUgJXMgcmVzb3VyY2UgJyVzJ1xuIiAlIChkb2NUeXBlLCBmaWxlKSkKKworCWRlZiBkZWJ1Z01zZyhzZWxmLCBtc2cpOgorCQlnbG9iYWwgb3B0aW9ucworCQlpZiBvcHRpb25zLmRlYnVnRW5hYmxlZDoKKwkJCXN5cy5zdGRvdXQud3JpdGUoIiclcycgICBERUJVRzogJXNcbiIgJSAoc2VsZi5uYW1lLCBtc2cpKQorCisJZGVmIGZpbmFsaXplKHNlbGYpOgorCQlnbG9iYWwgb3B0aW9ucworCQkiIiJBZGRzIGFkZGl0aW9uYWwgaW5mbyB0byB0aGUgbG9nLiIiIgorCQkjCisJCSMgQWRkIGxpYnhtbDIgbWVzc2FnZXMuCisJCSMKKwkJaWYgbm90IG9wdGlvbnMuc2lsZW50OgorCQkJc2VsZi5sb2cuZXh0ZW5kKHNlbGYubGliTG9nKQorCQkJIworCQkJIyBBZGQgbWVtb3J5IGxlYWtzLgorCQkJIworCQkJaWYgc2VsZi5tZW1MZWFrICE9IDA6CisJCQkJc2VsZi5sb2cuYXBwZW5kKCIlcyArIG1lbW9yeSBsZWFrOiAlZCBieXRlc1xuIiAlIChzZWxmLm5hbWUsIHNlbGYubWVtTGVhaykpCisKKwlkZWYgcnVuKHNlbGYpOgorCQkiIiJSdW5zIGEgdGVzdC4iIiIKKwkJZ2xvYmFsIG9wdGlvbnMKKworCQkjI2ZpbGVQYXRoID0gb3MucGF0aC5qb2luKG9wdGlvbnMuYmFzZURpciwgc2VsZi5maWxlTmFtZSkKKwkJIyBmaWxlUGF0aCA9ICIlcy8lcy8lcy8lcyIgJSAob3B0aW9ucy5iYXNlRGlyLCBzZWxmLnRlc3RfRm9sZGVyLCBzZWxmLnNjaGVtYV9Gb2xkZXIsIHNlbGYuc2NoZW1hX0ZpbGUpCisJCWlmIG9wdGlvbnMuZGlzcGxheVRlc3ROYW1lOgorCQkJc3lzLnN0ZG91dC53cml0ZSgiJyVzJ1xuIiAlIHNlbGYubmFtZSkKKwkJdHJ5OgorCQkJc2VsZi52YWxpZGF0ZSgpCisJCWV4Y2VwdCAoRXhjZXB0aW9uLCBsaWJ4bWwyLnBhcnNlckVycm9yLCBsaWJ4bWwyLnRyZWVFcnJvciksIGU6CisJCQlzZWxmLmZhaWxFeGNlcHQoZSkKKwkJCQorZGVmIHBhcnNlU2NoZW1hKGZpbGVOYW1lKToKKwlzY2hlbWEgPSBOb25lCisJY3R4dCA9IGxpYnhtbDIuc2NoZW1hTmV3UGFyc2VyQ3R4dChmaWxlTmFtZSkKKwl0cnk6CisJCXRyeToKKwkJCXNjaGVtYSA9IGN0eHQuc2NoZW1hUGFyc2UoKQorCQlleGNlcHQ6CisJCQlwYXNzCisJZmluYWxseToJCQorCQlkZWwgY3R4dAorCQlyZXR1cm4gc2NoZW1hCisJCQkJCisKK2NsYXNzIFhTVENTY2hlbWFUZXN0KFhTVENUZXN0Q2FzZSk6CisKKwlkZWYgX19pbml0X18oc2VsZiwgZ3JvdXBOYW1lLCBuYW1lLCBhY2NlcHRlZCwgZmlsZSwgdmFsLCBkZXNjcik6CisJCVhTVENUZXN0Q2FzZS5fX2luaXRfXyhzZWxmLCAxLCBncm91cE5hbWUsIG5hbWUsIGFjY2VwdGVkLCBmaWxlLCB2YWwsIGRlc2NyKQorCisJZGVmIHZhbGlkYXRlKHNlbGYpOgorCQlnbG9iYWwgbXNnU2NoZW1hTm90VmFsaWRCdXRTaG91bGQsIG1zZ1NjaGVtYVZhbGlkQnV0U2hvdWxkTm90CisJCXNjaGVtYSA9IE5vbmUKKwkJZmlsZVBhdGggPSBzZWxmLmZpbGVOYW1lCisJCSMgb3MucGF0aC5qb2luKG9wdGlvbnMuYmFzZURpciwgc2VsZi5maWxlTmFtZSkKKwkJdmFsaWQgPSAwCisJCXRyeToKKwkJCSMKKwkJCSMgUGFyc2UgdGhlIHNjaGVtYS4KKwkJCSMKKwkJCXNlbGYuZGVidWdNc2coImxvYWRpbmcgc2NoZW1hOiAlcyIgJSBmaWxlUGF0aCkKKwkJCXNjaGVtYSA9IHBhcnNlU2NoZW1hKGZpbGVQYXRoKQorCQkJc2VsZi5kZWJ1Z01zZygiYWZ0ZXIgbG9hZGluZyBzY2hlbWEiKQkJCQkJCQorCQkJaWYgc2NoZW1hIGlzIE5vbmU6CisJCQkJc2VsZi5kZWJ1Z01zZygic2NoZW1hIGlzIE5vbmUiKQorCQkJCXNlbGYuZGVidWdNc2coImNoZWNraW5nIGZvciBJTyBlcnJvcnMuLi4iKQorCQkJCWlmIHNlbGYuaXNJT0Vycm9yKGZpbGUsICJzY2hlbWEiKToKKwkJCQkJcmV0dXJuCisJCQlzZWxmLmRlYnVnTXNnKCJjaGVja2luZyBzY2hlbWEgcmVzdWx0IikKKwkJCWlmIChzY2hlbWEgaXMgTm9uZSBhbmQgc2VsZi52YWwpIG9yIChzY2hlbWEgaXMgbm90IE5vbmUgYW5kIHNlbGYudmFsID09IDApOgorCQkJCXNlbGYuZGVidWdNc2coInNjaGVtYSByZXN1bHQgaXMgQkFEIikKKwkJCQlpZiAoc2NoZW1hID09IE5vbmUpOgorCQkJCQlzZWxmLmZhaWwobXNnU2NoZW1hTm90VmFsaWRCdXRTaG91bGQpCisJCQkJZWxzZToKKwkJCQkJc2VsZi5mYWlsKG1zZ1NjaGVtYVZhbGlkQnV0U2hvdWxkTm90KQorCQkJZWxzZToKKwkJCQlzZWxmLmRlYnVnTXNnKCJzY2hlbWEgcmVzdWx0IGlzIE9LIikKKwkJZmluYWxseToKKwkJCXNlbGYuZ3JvdXAuc2V0U2NoZW1hKHNlbGYuZmlsZU5hbWUsIHNjaGVtYSBpcyBub3QgTm9uZSkKKwkJCWRlbCBzY2hlbWEKKworY2xhc3MgWFNUQ0luc3RhbmNlVGVzdChYU1RDVGVzdENhc2UpOgorCisJZGVmIF9faW5pdF9fKHNlbGYsIGdyb3VwTmFtZSwgbmFtZSwgYWNjZXB0ZWQsIGZpbGUsIHZhbCwgZGVzY3IpOgorCQlYU1RDVGVzdENhc2UuX19pbml0X18oc2VsZiwgMCwgZ3JvdXBOYW1lLCBuYW1lLCBhY2NlcHRlZCwgZmlsZSwgdmFsLCBkZXNjcikKKworCWRlZiB2YWxpZGF0ZShzZWxmKToKKwkJaW5zdGFuY2UgPSBOb25lCisJCXNjaGVtYSA9IE5vbmUKKwkJZmlsZVBhdGggPSBzZWxmLmZpbGVOYW1lCisJCSMgb3MucGF0aC5qb2luKG9wdGlvbnMuYmFzZURpciwgc2VsZi5maWxlTmFtZSkKKworCQlpZiBub3Qgc2VsZi5ncm91cC5zY2hlbWFQYXJzZWQgYW5kIHNlbGYuZ3JvdXAuc2NoZW1hVHJpZWQ6CisJCQlzZWxmLmZhaWxOb1NjaGVtYSgpCisJCQlyZXR1cm4KKwkJCQkJCisJCXNlbGYuZGVidWdNc2coImxvYWRpbmcgaW5zdGFuY2U6ICVzIiAlIGZpbGVQYXRoKQorCQlwYXJzZXJDdHh0ID0gbGlieG1sMi5uZXdQYXJzZXJDdHh0KCkKKwkJaWYgKHBhcnNlckN0eHQgaXMgTm9uZSk6CisJCQkjIFRPRE86IElzIHRoaXMgb25lIG5lY2Vzc2FyeSwgb3Igd2lsbCBhbiBleGNlcHRpb24KKwkJCSMgYmUgYWxyZWFkeSByYWlzZWQ/CisJCQlyYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjcmVhdGUgdGhlIGluc3RhbmNlIHBhcnNlciBjb250ZXh0LiIpCisJCWlmIG5vdCBvcHRpb25zLnZhbGlkYXRpb25TQVg6CisJCQl0cnk6CisJCQkJdHJ5OgorCQkJCQlpbnN0YW5jZSA9IHBhcnNlckN0eHQuY3R4dFJlYWRGaWxlKGZpbGVQYXRoLCBOb25lLCBsaWJ4bWwyLlhNTF9QQVJTRV9OT1dBUk5JTkcpCisJCQkJZXhjZXB0OgorCQkJCQkjIFN1cHByZXNzIGV4Y2VwdGlvbnMuCisJCQkJCXBhc3MKKwkJCWZpbmFsbHk6CisJCQkJZGVsIHBhcnNlckN0eHQKKwkJCXNlbGYuZGVidWdNc2coImFmdGVyIGxvYWRpbmcgaW5zdGFuY2UiKQorCQkJaWYgaW5zdGFuY2UgaXMgTm9uZToKKwkJCQlzZWxmLmRlYnVnTXNnKCJpbnN0YW5jZSBpcyBOb25lIikKKwkJCQlzZWxmLmZhaWxDcml0aWNhbCgiRmFpbGVkIHRvIHBhcnNlIHRoZSBpbnN0YW5jZSBmb3IgdW5rbm93biByZWFzb25zLiIpCisJCQkJcmV0dXJuCQkKKwkJdHJ5OgorCQkJIworCQkJIyBWYWxpZGF0ZSB0aGUgaW5zdGFuY2UuCisJCQkjCisJCQlzZWxmLmRlYnVnTXNnKCJsb2FkaW5nIHNjaGVtYTogJXMiICUgc2VsZi5ncm91cC5zY2hlbWFGaWxlTmFtZSkKKwkJCXNjaGVtYSA9IHBhcnNlU2NoZW1hKHNlbGYuZ3JvdXAuc2NoZW1hRmlsZU5hbWUpCisJCQl0cnk6CisJCQkJdmFsaWRhdGlvbkN0eHQgPSBzY2hlbWEuc2NoZW1hTmV3VmFsaWRDdHh0KCkKKwkJCQkjdmFsaWRhdGlvbkN0eHQgPSBsaWJ4bWwyLnNjaGVtYU5ld1ZhbGlkQ3R4dChOb25lKQorCQkJCWlmICh2YWxpZGF0aW9uQ3R4dCBpcyBOb25lKToKKwkJCQkJc2VsZi5mYWlsQ3JpdGljYWwoIkNvdWxkIG5vdCBjcmVhdGUgdGhlIHZhbGlkYXRpb24gY29udGV4dC4iKQorCQkJCQlyZXR1cm4KKwkJCQl0cnk6CisJCQkJCXNlbGYuZGVidWdNc2coInZhbGlkYXRpbmcgaW5zdGFuY2UiKQorCQkJCQlpZiBvcHRpb25zLnZhbGlkYXRpb25TQVg6CisJCQkJCQlpbnN0YW5jZV9FcnIgPSB2YWxpZGF0aW9uQ3R4dC5zY2hlbWFWYWxpZGF0ZUZpbGUoZmlsZVBhdGgsIDApCisJCQkJCWVsc2U6CisJCQkJCQlpbnN0YW5jZV9FcnIgPSB2YWxpZGF0aW9uQ3R4dC5zY2hlbWFWYWxpZGF0ZURvYyhpbnN0YW5jZSkKKwkJCQkJc2VsZi5kZWJ1Z01zZygiYWZ0ZXIgaW5zdGFuY2UgdmFsaWRhdGlvbiIpCisJCQkJCXNlbGYuZGVidWdNc2coImluc3RhbmNlLWVycjogJWQiICUgaW5zdGFuY2VfRXJyKQorCQkJCQlpZiAoaW5zdGFuY2VfRXJyICE9IDAgYW5kIHNlbGYudmFsID09IDEpIG9yIChpbnN0YW5jZV9FcnIgPT0gMCBhbmQgc2VsZi52YWwgPT0gMCk6CisJCQkJCQlzZWxmLmRlYnVnTXNnKCJpbnN0YW5jZSByZXN1bHQgaXMgQkFEIikKKwkJCQkJCWlmIChpbnN0YW5jZV9FcnIgIT0gMCk6CisJCQkJCQkJc2VsZi5mYWlsKG1zZ0luc3RhbmNlTm90VmFsaWRCdXRTaG91bGQpCisJCQkJCQllbHNlOgorCQkJCQkJCXNlbGYuZmFpbChtc2dJbnN0YW5jZVZhbGlkQnV0U2hvdWxkTm90KQorCisJCQkJCWVsc2U6CisJCQkJCQkJCXNlbGYuZGVidWdNc2coImluc3RhbmNlIHJlc3VsdCBpcyBPSyIpCisJCQkJZmluYWxseToKKwkJCQkJZGVsIHZhbGlkYXRpb25DdHh0CisJCQlmaW5hbGx5OgorCQkJCWRlbCBzY2hlbWEKKwkJZmluYWxseToKKwkJCWlmIGluc3RhbmNlIGlzIG5vdCBOb25lOgorCQkJCWluc3RhbmNlLmZyZWVEb2MoKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgcnVubmVyIGNsYXNzLgorIworCitjbGFzcyBYU1RDVGVzdFJ1bm5lcjoKKworCUNOVF9UT1RBTCA9IDAKKwlDTlRfUkFOID0gMQorCUNOVF9TVUNDRUVERUQgPSAyCisJQ05UX0ZBSUxFRCA9IDMKKwlDTlRfVU5JTVBMRU1FTlRFRCA9IDQKKwlDTlRfSU5URVJOQUwgPSA1CisJQ05UX0JBRCA9IDYKKwlDTlRfRVhDRVBURUQgPSA3CisJQ05UX01FTUxFQUsgPSA4CisJQ05UX05PU0NIRU1BID0gOQorCUNOVF9OT1RBQ0NFUFRFRCA9IDEwCisJQ05UX1NDSEVNQV9URVNUID0gMTEKKworCWRlZiBfX2luaXRfXyhzZWxmKToKKwkJc2VsZi5sb2dGaWxlID0gTm9uZQorCQlzZWxmLmNvdW50ZXJzID0gc2VsZi5jcmVhdGVDb3VudGVycygpCisJCXNlbGYudGVzdExpc3QgPSBbXQorCQlzZWxmLmNvbWJpbmVzUmFuID0ge30KKwkJc2VsZi5ncm91cHMgPSB7fQorCQlzZWxmLmN1ckdyb3VwID0gTm9uZQorCisJZGVmIGNyZWF0ZUNvdW50ZXJzKHNlbGYpOgorCQljb3VudGVycyA9IHtzZWxmLkNOVF9UT1RBTDowLCBzZWxmLkNOVF9SQU46MCwgc2VsZi5DTlRfU1VDQ0VFREVEOjAsCisJCXNlbGYuQ05UX0ZBSUxFRDowLCBzZWxmLkNOVF9VTklNUExFTUVOVEVEOjAsIHNlbGYuQ05UX0lOVEVSTkFMOjAsIHNlbGYuQ05UX0JBRDowLAorCQlzZWxmLkNOVF9FWENFUFRFRDowLCBzZWxmLkNOVF9NRU1MRUFLOjAsIHNlbGYuQ05UX05PU0NIRU1BOjAsIHNlbGYuQ05UX05PVEFDQ0VQVEVEOjAsCisJCXNlbGYuQ05UX1NDSEVNQV9URVNUOjB9CisKKwkJcmV0dXJuIGNvdW50ZXJzCisKKwlkZWYgYWRkVGVzdChzZWxmLCB0ZXN0KToKKwkJc2VsZi50ZXN0TGlzdC5hcHBlbmQodGVzdCkKKwkJdGVzdC5pbml0VGVzdChzZWxmKQorCisJZGVmIGdldEdyb3VwKHNlbGYsIGdyb3VwTmFtZSk6CisJCXJldHVybiBzZWxmLmdyb3Vwc1tncm91cE5hbWVdCisKKwlkZWYgYWRkR3JvdXAoc2VsZiwgZ3JvdXApOgorCQlzZWxmLmdyb3Vwc1tncm91cC5uYW1lXSA9IGdyb3VwCisKKwlkZWYgdXBkYXRlQ291bnRlcnMoc2VsZiwgdGVzdCwgY291bnRlcnMpOgorCQlpZiB0ZXN0Lm1lbUxlYWsgIT0gMDoKKwkJCWNvdW50ZXJzW3NlbGYuQ05UX01FTUxFQUtdICs9IDEKKwkJaWYgbm90IHRlc3QuZmFpbGVkOgorCQkJY291bnRlcnNbc2VsZi5DTlRfU1VDQ0VFREVEXSArPTEKKwkJaWYgdGVzdC5mYWlsZWQ6CisJCQljb3VudGVyc1tzZWxmLkNOVF9GQUlMRURdICs9IDEKKwkJaWYgdGVzdC5iYWQ6CisJCQljb3VudGVyc1tzZWxmLkNOVF9CQURdICs9IDEKKwkJaWYgdGVzdC51bmltcGxlbWVudGVkOgorCQkJY291bnRlcnNbc2VsZi5DTlRfVU5JTVBMRU1FTlRFRF0gKz0gMQorCQlpZiB0ZXN0LmludGVybmFsRXJyOgorCQkJY291bnRlcnNbc2VsZi5DTlRfSU5URVJOQUxdICs9IDEKKwkJaWYgdGVzdC5ub1NjaGVtYUVycjoKKwkJCWNvdW50ZXJzW3NlbGYuQ05UX05PU0NIRU1BXSArPSAxCisJCWlmIHRlc3QuZXhjZXB0ZWQ6CisJCQljb3VudGVyc1tzZWxmLkNOVF9FWENFUFRFRF0gKz0gMQorCQlpZiBub3QgdGVzdC5hY2NlcHRlZDoKKwkJCWNvdW50ZXJzW3NlbGYuQ05UX05PVEFDQ0VQVEVEXSArPSAxCisJCWlmIHRlc3QuaXNTY2hlbWE6CisJCQljb3VudGVyc1tzZWxmLkNOVF9TQ0hFTUFfVEVTVF0gKz0gMQorCQlyZXR1cm4gY291bnRlcnMKKworCWRlZiBkaXNwbGF5UmVzdWx0cyhzZWxmLCBvdXQsIGFsbCwgY29tYk5hbWUsIGNvdW50ZXJzKToKKwkJb3V0LndyaXRlKCJcbiIpCisJCWlmIGFsbDoKKwkJCWlmIG9wdGlvbnMuY29tYmluZXMgaXMgbm90IE5vbmU6CisJCQkJb3V0LndyaXRlKCJjb21iaW5lKHMpOiAlc1xuIiAlIHN0cihvcHRpb25zLmNvbWJpbmVzKSkKKwkJZWxpZiBjb21iTmFtZSBpcyBub3QgTm9uZToKKwkJCW91dC53cml0ZSgiY29tYmluZSA6ICVzXG4iICUgY29tYk5hbWUpCisJCW91dC53cml0ZSgiICB0b3RhbCAgICAgICAgICAgOiAlZFxuIiAlIGNvdW50ZXJzW3NlbGYuQ05UX1RPVEFMXSkKKwkJaWYgYWxsIG9yIG9wdGlvbnMuY29tYmluZXMgaXMgbm90IE5vbmU6CisJCQlvdXQud3JpdGUoIiAgcmFuICAgICAgICAgICAgIDogJWRcbiIgJSBjb3VudGVyc1tzZWxmLkNOVF9SQU5dKQorCQkJb3V0LndyaXRlKCIgICAgKHNjaGVtYXRhKSAgICA6ICVkXG4iICUgY291bnRlcnNbc2VsZi5DTlRfU0NIRU1BX1RFU1RdKQorCQkjIG91dC53cml0ZSgiICAgIHN1Y2NlZWRlZCAgICAgICA6ICVkXG4iICUgY291bnRlcnNbc2VsZi5DTlRfU1VDQ0VFREVEXSkKKwkJb3V0LndyaXRlKCIgIG5vdCBhY2NlcHRlZCAgICA6ICVkXG4iICUgY291bnRlcnNbc2VsZi5DTlRfTk9UQUNDRVBURURdKQorCQlpZiBjb3VudGVyc1tzZWxmLkNOVF9GQUlMRURdID4gMDoJCSAgICAKKwkJCW91dC53cml0ZSgiICAgIGZhaWxlZCAgICAgICAgICAgICAgICAgIDogJWRcbiIgJSBjb3VudGVyc1tzZWxmLkNOVF9GQUlMRURdKQorCQkJb3V0LndyaXRlKCIgICAgIC0+IGludGVybmFsICAgICAgICAgICAgOiAlZFxuIiAlIGNvdW50ZXJzW3NlbGYuQ05UX0lOVEVSTkFMXSkKKwkJCW91dC53cml0ZSgiICAgICAtPiB1bmltcGwuICAgICAgICAgICAgIDogJWRcbiIgJSBjb3VudGVyc1tzZWxmLkNOVF9VTklNUExFTUVOVEVEXSkKKwkJCW91dC53cml0ZSgiICAgICAtPiBza2lwLWludmFsaWQtc2NoZW1hIDogJWRcbiIgJSBjb3VudGVyc1tzZWxmLkNOVF9OT1NDSEVNQV0pCisJCQlvdXQud3JpdGUoIiAgICAgLT4gYmFkICAgICAgICAgICAgICAgICA6ICVkXG4iICUgY291bnRlcnNbc2VsZi5DTlRfQkFEXSkKKwkJCW91dC53cml0ZSgiICAgICAtPiBleGNlcHRpb25zICAgICAgICAgIDogJWRcbiIgJSBjb3VudGVyc1tzZWxmLkNOVF9FWENFUFRFRF0pCisJCQlvdXQud3JpdGUoIiAgICBtZW1vcnkgbGVha3MgICAgICAgICAgICA6ICVkXG4iICUgY291bnRlcnNbc2VsZi5DTlRfTUVNTEVBS10pCisKKwlkZWYgZGlzcGxheVNob3J0UmVzdWx0cyhzZWxmLCBvdXQsIGFsbCwgY29tYk5hbWUsIGNvdW50ZXJzKToKKwkJb3V0LndyaXRlKCJSYW4gJWQgb2YgJWQgdGVzdHMgKCVkIHNjaGVtYXRhKToiICUgKGNvdW50ZXJzW3NlbGYuQ05UX1JBTl0sCisJCQkJICBjb3VudGVyc1tzZWxmLkNOVF9UT1RBTF0sIGNvdW50ZXJzW3NlbGYuQ05UX1NDSEVNQV9URVNUXSkpCisJCSMgb3V0LndyaXRlKCIgICAgc3VjY2VlZGVkICAgICAgIDogJWRcbiIgJSBjb3VudGVyc1tzZWxmLkNOVF9TVUNDRUVERURdKQorCQlpZiBjb3VudGVyc1tzZWxmLkNOVF9OT1RBQ0NFUFRFRF0gPiAwOgorCQkJb3V0LndyaXRlKCIgJWQgbm90IGFjY2VwdGVkIiAlIChjb3VudGVyc1tzZWxmLkNOVF9OT1RBQ0NFUFRFRF0pKQorCQlpZiBjb3VudGVyc1tzZWxmLkNOVF9GQUlMRURdID4gMCBvciBjb3VudGVyc1tzZWxmLkNOVF9NRU1MRUFLXSA+IDA6CisJCQlpZiBjb3VudGVyc1tzZWxmLkNOVF9GQUlMRURdID4gMDoKKwkJCQlvdXQud3JpdGUoIiAlZCBmYWlsZWQiICUgKGNvdW50ZXJzW3NlbGYuQ05UX0ZBSUxFRF0pKQorCQkJCW91dC53cml0ZSgiICgiKQorCQkJCWlmIGNvdW50ZXJzW3NlbGYuQ05UX0lOVEVSTkFMXSA+IDA6CisJCQkJCW91dC53cml0ZSgiICVkIGludGVybmFsIiAlIChjb3VudGVyc1tzZWxmLkNOVF9JTlRFUk5BTF0pKQorCQkJCWlmIGNvdW50ZXJzW3NlbGYuQ05UX1VOSU1QTEVNRU5URURdID4gMDoKKwkJCQkJb3V0LndyaXRlKCIgJWQgdW5pbXBsZW1lbnRlZCIgJSAoY291bnRlcnNbc2VsZi5DTlRfVU5JTVBMRU1FTlRFRF0pKQorCQkJCWlmIGNvdW50ZXJzW3NlbGYuQ05UX05PU0NIRU1BXSA+IDA6CisJCQkJCW91dC53cml0ZSgiICVkIHNraXAtaW52YWxpZC1zY2hlbWEiICUgKGNvdW50ZXJzW3NlbGYuQ05UX05PU0NIRU1BXSkpCisJCQkJaWYgY291bnRlcnNbc2VsZi5DTlRfQkFEXSA+IDA6CisJCQkJCW91dC53cml0ZSgiICVkIGJhZCIgJSAoY291bnRlcnNbc2VsZi5DTlRfQkFEXSkpCisJCQkJaWYgY291bnRlcnNbc2VsZi5DTlRfRVhDRVBURURdID4gMDoKKwkJCQkJb3V0LndyaXRlKCIgJWQgZXhjZXB0aW9uIiAlIChjb3VudGVyc1tzZWxmLkNOVF9FWENFUFRFRF0pKQorCQkJCW91dC53cml0ZSgiICkiKQorCQkJaWYgY291bnRlcnNbc2VsZi5DTlRfTUVNTEVBS10gPiAwOgorCQkJCW91dC53cml0ZSgiICVkIGxlYWtzIiAlIChjb3VudGVyc1tzZWxmLkNOVF9NRU1MRUFLXSkpCQkJCisJCQlvdXQud3JpdGUoIlxuIikKKwkJZWxzZToKKwkJCW91dC53cml0ZSgiIGFsbCBwYXNzZWRcbiIpCisKKwlkZWYgcmVwb3J0Q29tYmluZShzZWxmLCBjb21iTmFtZSk6CisJCWdsb2JhbCBvcHRpb25zCisKKwkJY291bnRlcnMgPSBzZWxmLmNyZWF0ZUNvdW50ZXJzKCkKKwkJIworCQkjIENvbXB1dGUgZXZhbHVhdGlvbiBjb3VudGVycy4KKwkJIworCQlmb3IgdGVzdCBpbiBzZWxmLmNvbWJpbmVzUmFuW2NvbWJOYW1lXToKKwkJCWNvdW50ZXJzW3NlbGYuQ05UX1RPVEFMXSArPSAxCisJCQljb3VudGVyc1tzZWxmLkNOVF9SQU5dICs9IDEKKwkJCWNvdW50ZXJzID0gc2VsZi51cGRhdGVDb3VudGVycyh0ZXN0LCBjb3VudGVycykKKwkJaWYgb3B0aW9ucy5yZXBvcnRFcnJDb21iaW5lcyBhbmQgKGNvdW50ZXJzW3NlbGYuQ05UX0ZBSUxFRF0gPT0gMCkgYW5kIChjb3VudGVyc1tzZWxmLkNOVF9NRU1MRUFLXSA9PSAwKToKKwkJCXBhc3MKKwkJZWxzZToKKwkJCWlmIG9wdGlvbnMuZW5hYmxlTG9nOgorCQkJCXNlbGYuZGlzcGxheVJlc3VsdHMoc2VsZi5sb2dGaWxlLCBGYWxzZSwgY29tYk5hbWUsIGNvdW50ZXJzKQkJCQkKKwkJCXNlbGYuZGlzcGxheVJlc3VsdHMoc3lzLnN0ZG91dCwgRmFsc2UsIGNvbWJOYW1lLCBjb3VudGVycykKKworCWRlZiBkaXNwbGF5VGVzdExvZyhzZWxmLCB0ZXN0KToKKwkJc3lzLnN0ZG91dC53cml0ZWxpbmVzKHRlc3QubG9nKQorCQlzeXMuc3Rkb3V0LndyaXRlKCJ+fn5+fn5+fn5+XG4iKQorCisJZGVmIHJlcG9ydFRlc3Qoc2VsZiwgdGVzdCk6CisJCWdsb2JhbCBvcHRpb25zCisKKwkJZXJyb3IgPSB0ZXN0LmZhaWxlZCBvciB0ZXN0Lm1lbUxlYWsgIT0gMAorCQkjCisJCSMgT25seSBlcnJvbmVvdXMgdGVzdHMgd2lsbCBiZSB3cml0dGVuIHRvIHRoZSBsb2csCisJCSMgZXhjZXB0IEB2ZXJib3NlIGlzIHN3aXRjaGVkIG9uLgorCQkjCisJCWlmIG9wdGlvbnMuZW5hYmxlTG9nIGFuZCAob3B0aW9ucy52ZXJib3NlIG9yIGVycm9yKToKKwkJCXNlbGYubG9nRmlsZS53cml0ZWxpbmVzKHRlc3QubG9nKQorCQkJc2VsZi5sb2dGaWxlLndyaXRlKCJ+fn5+fn5+fn5+XG4iKQorCQkjCisJCSMgaWYgbm90IEBzaWxlbnQsIG9ubHkgZXJyb25lb3VzIHRlc3RzIHdpbGwgYmUKKwkJIyB3cml0dGVuIHRvIHN0ZG91dCwgZXhjZXB0IEB2ZXJib3NlIGlzIHN3aXRjaGVkIG9uLgorCQkjCisJCWlmIG5vdCBvcHRpb25zLnNpbGVudDoKKwkJCWlmIG9wdGlvbnMucmVwb3J0SW50ZXJuYWxFcnJPbmx5IGFuZCB0ZXN0LmludGVybmFsRXJyOgorCQkJCXNlbGYuZGlzcGxheVRlc3RMb2codGVzdCkKKwkJCWlmIG9wdGlvbnMucmVwb3J0TWVtTGVha0Vyck9ubHkgYW5kIHRlc3QubWVtTGVhayAhPSAwOgorCQkJCXNlbGYuZGlzcGxheVRlc3RMb2codGVzdCkKKwkJCWlmIG9wdGlvbnMucmVwb3J0VW5pbXBsRXJyT25seSBhbmQgdGVzdC51bmltcGxlbWVudGVkOgorCQkJCXNlbGYuZGlzcGxheVRlc3RMb2codGVzdCkKKwkJCWlmIChvcHRpb25zLnZlcmJvc2Ugb3IgZXJyb3IpIGFuZCAobm90IG9wdGlvbnMucmVwb3J0SW50ZXJuYWxFcnJPbmx5KSBhbmQgKG5vdCBvcHRpb25zLnJlcG9ydE1lbUxlYWtFcnJPbmx5KSBhbmQgKG5vdCBvcHRpb25zLnJlcG9ydFVuaW1wbEVyck9ubHkpOgorCQkJCXNlbGYuZGlzcGxheVRlc3RMb2codGVzdCkKKworCisJZGVmIGFkZFRvQ29tYmluZXMoc2VsZiwgdGVzdCk6CisJCWZvdW5kID0gRmFsc2UKKwkJaWYgc2VsZi5jb21iaW5lc1Jhbi5oYXNfa2V5KHRlc3QuY29tYmluZU5hbWUpOgorCQkJc2VsZi5jb21iaW5lc1Jhblt0ZXN0LmNvbWJpbmVOYW1lXS5hcHBlbmQodGVzdCkKKwkJZWxzZToKKwkJCXNlbGYuY29tYmluZXNSYW5bdGVzdC5jb21iaW5lTmFtZV0gPSBbdGVzdF0KKworCWRlZiBydW4oc2VsZik6CisKKwkJZ2xvYmFsIG9wdGlvbnMKKworCQlpZiBvcHRpb25zLmluZm86CisJCQlmb3IgdGVzdCBpbiBzZWxmLnRlc3RMaXN0OgorCQkJCXNlbGYuYWRkVG9Db21iaW5lcyh0ZXN0KQorCQkJc3lzLnN0ZG91dC53cml0ZSgiQ29tYmluZXM6ICVkXG4iICUgbGVuKHNlbGYuY29tYmluZXNSYW4pKQorCQkJc3lzLnN0ZG91dC53cml0ZSgiJXNcbiIgJSBzZWxmLmNvbWJpbmVzUmFuLmtleXMoKSkKKwkJCXJldHVybgorCisJCWlmIG9wdGlvbnMuZW5hYmxlTG9nOgorCQkJc2VsZi5sb2dGaWxlID0gb3BlbihvcHRpb25zLmxvZ0ZpbGUsICJ3IikKKwkJdHJ5OgorCQkJZm9yIHRlc3QgaW4gc2VsZi50ZXN0TGlzdDoKKwkJCQlzZWxmLmNvdW50ZXJzW3NlbGYuQ05UX1RPVEFMXSArPSAxCisJCQkJIworCQkJCSMgRmlsdGVyIHRlc3RzLgorCQkJCSMKKwkJCQlpZiBvcHRpb25zLnNpbmdsZVRlc3QgaXMgbm90IE5vbmUgYW5kIG9wdGlvbnMuc2luZ2xlVGVzdCAhPSAiIjoKKwkJCQkJaWYgKHRlc3QubmFtZSAhPSBvcHRpb25zLnNpbmdsZVRlc3QpOgorCQkJCQkJY29udGludWUKKwkJCQllbGlmIG9wdGlvbnMuY29tYmluZXMgaXMgbm90IE5vbmU6CisJCQkJCWlmIG5vdCBvcHRpb25zLmNvbWJpbmVzLl9fY29udGFpbnNfXyh0ZXN0LmNvbWJpbmVOYW1lKToKKwkJCQkJCWNvbnRpbnVlCisJCQkJZWxpZiBvcHRpb25zLnRlc3RTdGFydHNXaXRoIGlzIG5vdCBOb25lOgorCQkJCQlpZiBub3QgdGVzdC5uYW1lLnN0YXJ0c3dpdGgob3B0aW9ucy50ZXN0U3RhcnRzV2l0aCk6CisJCQkJCQljb250aW51ZQorCQkJCWVsaWYgb3B0aW9ucy5jb21iaW5lU3RhcnRzV2l0aCBpcyBub3QgTm9uZToKKwkJCQkJaWYgbm90IHRlc3QuY29tYmluZU5hbWUuc3RhcnRzd2l0aChvcHRpb25zLmNvbWJpbmVTdGFydHNXaXRoKToKKwkJCQkJCWNvbnRpbnVlCisJCQkJCisJCQkJaWYgb3B0aW9ucy5tYXhUZXN0Q291bnQgIT0gLTEgYW5kIHNlbGYuY291bnRlcnNbc2VsZi5DTlRfUkFOXSA+PSBvcHRpb25zLm1heFRlc3RDb3VudDoKKwkJCQkJYnJlYWsKKwkJCQlzZWxmLmNvdW50ZXJzW3NlbGYuQ05UX1JBTl0gKz0gMQorCQkJCSMKKwkJCQkjIFJ1biB0aGUgdGhpbmcsIGRhbW1pdC4KKwkJCQkjCisJCQkJdHJ5OgorCQkJCQl0ZXN0LnNldFVwKCkKKwkJCQkJdHJ5OgorCQkJCQkJdGVzdC5ydW4oKQorCQkJCQlmaW5hbGx5OgorCQkJCQkJdGVzdC50ZWFyRG93bigpCisJCQkJZmluYWxseToKKwkJCQkJIworCQkJCQkjIEV2YWx1YXRlLgorCQkJCQkjCisJCQkJCXRlc3QuZmluYWxpemUoKQorCQkJCQlzZWxmLnJlcG9ydFRlc3QodGVzdCkKKwkJCQkJaWYgb3B0aW9ucy5yZXBvcnRDb21iaW5lcyBvciBvcHRpb25zLnJlcG9ydEVyckNvbWJpbmVzOgorCQkJCQkJc2VsZi5hZGRUb0NvbWJpbmVzKHRlc3QpCisJCQkJCXNlbGYuY291bnRlcnMgPSBzZWxmLnVwZGF0ZUNvdW50ZXJzKHRlc3QsIHNlbGYuY291bnRlcnMpCisJCWZpbmFsbHk6CisJCQlpZiBvcHRpb25zLnJlcG9ydENvbWJpbmVzIG9yIG9wdGlvbnMucmVwb3J0RXJyQ29tYmluZXM6CisJCQkJIworCQkJCSMgQnVpbGQgYSByZXBvcnQgZm9yIGV2ZXJ5IHNpbmdsZSBjb21iaW5lLgorCQkJCSMKKwkJCQkjIFRPRE86IEhvdyB0byBzb3J0IGEgZGljdD8KKwkJCQkjCisJCQkJc2VsZi5jb21iaW5lc1Jhbi5rZXlzKCkuc29ydChOb25lKQorCQkJCWZvciBrZXkgaW4gc2VsZi5jb21iaW5lc1Jhbi5rZXlzKCk6CisJCQkJCXNlbGYucmVwb3J0Q29tYmluZShrZXkpCisKKwkJCSMKKwkJCSMgRGlzcGxheSB0aGUgZmluYWwgcmVwb3J0LgorCQkJIworCQkJaWYgb3B0aW9ucy5zaWxlbnQ6CisJCQkJc2VsZi5kaXNwbGF5U2hvcnRSZXN1bHRzKHN5cy5zdGRvdXQsIFRydWUsIE5vbmUsIHNlbGYuY291bnRlcnMpCisJCQllbHNlOgorCQkJCXN5cy5zdGRvdXQud3JpdGUoIj09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIikKKwkJCQlzZWxmLmRpc3BsYXlSZXN1bHRzKHN5cy5zdGRvdXQsIFRydWUsIE5vbmUsIHNlbGYuY291bnRlcnMpCmRpZmYgLS1naXQgYS9saWJ4bWwyLnRhci5neiBiL2xpYnhtbDIudGFyLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MzBhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLnRhci5negpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9saWJ4bWwyLnVybCBiL2xpYnhtbDIudXJsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyZjNlYWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJ4bWwyLnVybApAQCAtMCwwICsxIEBACitmdHA6Ly94bWxzb2Z0Lm9yZy9saWJ4bWwyL2xpYnhtbDItMi43LjcudGFyLmd6CmRpZmYgLS1naXQgYS9saWJ4bWwyLnZlcnNpb24gYi9saWJ4bWwyLnZlcnNpb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY3ZGE5OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnhtbDIudmVyc2lvbgpAQCAtMCwwICsxIEBACisyLjcuNwo=